aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-02-10 16:44:39 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:39 +0300
commite9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch)
tree64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/tools
parent2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff)
downloadydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/tools')
-rw-r--r--contrib/tools/bison/ya.make4
-rw-r--r--contrib/tools/cython/.dist-info/METADATA120
-rw-r--r--contrib/tools/cython/.dist-info/entry_points.txt10
-rw-r--r--contrib/tools/cython/.dist-info/top_level.txt6
-rw-r--r--contrib/tools/cython/CHANGES.rst986
-rw-r--r--contrib/tools/cython/COPYING.txt38
-rw-r--r--contrib/tools/cython/Cython/Build/Cythonize.py4
-rw-r--r--contrib/tools/cython/Cython/Build/Dependencies.py68
-rw-r--r--contrib/tools/cython/Cython/Build/Inline.py88
-rw-r--r--contrib/tools/cython/Cython/Build/IpythonMagic.py46
-rw-r--r--contrib/tools/cython/Cython/Build/Tests/TestInline.py42
-rw-r--r--contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py20
-rw-r--r--contrib/tools/cython/Cython/Compiler/Buffer.py10
-rw-r--r--contrib/tools/cython/Cython/Compiler/Builtin.py2
-rw-r--r--contrib/tools/cython/Cython/Compiler/Code.pxd2
-rw-r--r--contrib/tools/cython/Cython/Compiler/Code.py92
-rw-r--r--contrib/tools/cython/Cython/Compiler/ExprNodes.py304
-rw-r--r--contrib/tools/cython/Cython/Compiler/FlowControl.py36
-rw-r--r--contrib/tools/cython/Cython/Compiler/FusedNode.py28
-rw-r--r--contrib/tools/cython/Cython/Compiler/MemoryView.py8
-rw-r--r--contrib/tools/cython/Cython/Compiler/ModuleNode.py102
-rw-r--r--contrib/tools/cython/Cython/Compiler/Nodes.py122
-rw-r--r--contrib/tools/cython/Cython/Compiler/Optimize.py56
-rw-r--r--contrib/tools/cython/Cython/Compiler/Options.py2
-rw-r--r--contrib/tools/cython/Cython/Compiler/ParseTreeTransforms.py8
-rw-r--r--contrib/tools/cython/Cython/Compiler/Parsing.pxd4
-rw-r--r--contrib/tools/cython/Cython/Compiler/Parsing.py56
-rw-r--r--contrib/tools/cython/Cython/Compiler/PyrexTypes.py12
-rw-r--r--contrib/tools/cython/Cython/Compiler/Pythran.py26
-rw-r--r--contrib/tools/cython/Cython/Compiler/Scanning.pxd2
-rw-r--r--contrib/tools/cython/Cython/Compiler/Scanning.py32
-rw-r--r--contrib/tools/cython/Cython/Compiler/StringEncoding.py56
-rw-r--r--contrib/tools/cython/Cython/Compiler/Symtab.py12
-rw-r--r--contrib/tools/cython/Cython/Compiler/Tests/TestBuffer.py22
-rw-r--r--contrib/tools/cython/Cython/Compiler/Tests/TestMemView.py2
-rw-r--r--contrib/tools/cython/Cython/Compiler/Tests/TestParseTreeTransforms.py2
-rw-r--r--contrib/tools/cython/Cython/Compiler/Tests/TestStringEncoding.py88
-rw-r--r--contrib/tools/cython/Cython/Compiler/Tests/TestTreeFragment.py10
-rw-r--r--contrib/tools/cython/Cython/Compiler/TreePath.py22
-rw-r--r--contrib/tools/cython/Cython/Compiler/TypeSlots.py10
-rw-r--r--contrib/tools/cython/Cython/Compiler/Visitor.py2
-rw-r--r--contrib/tools/cython/Cython/Coverage.py18
-rw-r--r--contrib/tools/cython/Cython/Distutils/old_build_ext.py10
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/array.pxd4
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/buffer.pxd6
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/cellobject.pxd70
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/codecs.pxd242
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/conversion.pxd72
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/datetime.pxd6
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/genobject.pxd50
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/iterobject.pxd48
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/longintrepr.pxd12
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/memoryview.pxd100
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/number.pxd28
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/pycapsule.pxd12
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/pylifecycle.pxd4
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/slice.pxd46
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/unicode.pxd24
-rw-r--r--contrib/tools/cython/Cython/Includes/libc/math.pxd12
-rw-r--r--contrib/tools/cython/Cython/Includes/libcpp/string.pxd292
-rw-r--r--contrib/tools/cython/Cython/Includes/libcpp/unordered_map.pxd2
-rw-r--r--contrib/tools/cython/Cython/Includes/libcpp/utility.pxd30
-rw-r--r--contrib/tools/cython/Cython/Includes/numpy/__init__.pxd8
-rw-r--r--contrib/tools/cython/Cython/Includes/posix/fcntl.pxd2
-rw-r--r--contrib/tools/cython/Cython/Shadow.py6
-rw-r--r--contrib/tools/cython/Cython/Tests/xmlrunner.py12
-rw-r--r--contrib/tools/cython/Cython/Utility/AsyncGen.c72
-rw-r--r--contrib/tools/cython/Cython/Utility/Buffer.c22
-rw-r--r--contrib/tools/cython/Cython/Utility/Builtins.c16
-rw-r--r--contrib/tools/cython/Cython/Utility/Coroutine.c204
-rw-r--r--contrib/tools/cython/Cython/Utility/CppConvert.pyx2
-rw-r--r--contrib/tools/cython/Cython/Utility/CythonFunction.c220
-rw-r--r--contrib/tools/cython/Cython/Utility/Embed.c18
-rw-r--r--contrib/tools/cython/Cython/Utility/Exceptions.c44
-rw-r--r--contrib/tools/cython/Cython/Utility/ExtensionTypes.c172
-rw-r--r--contrib/tools/cython/Cython/Utility/FunctionArguments.c8
-rw-r--r--contrib/tools/cython/Cython/Utility/ImportExport.c14
-rw-r--r--contrib/tools/cython/Cython/Utility/MemoryView.pyx16
-rw-r--r--contrib/tools/cython/Cython/Utility/MemoryView_C.c74
-rw-r--r--contrib/tools/cython/Cython/Utility/ModuleSetupCode.c258
-rw-r--r--contrib/tools/cython/Cython/Utility/ObjectHandling.c80
-rw-r--r--contrib/tools/cython/Cython/Utility/Optimize.c8
-rw-r--r--contrib/tools/cython/Cython/Utility/Overflow.c58
-rw-r--r--contrib/tools/cython/Cython/Utility/Profile.c154
-rw-r--r--contrib/tools/cython/Cython/Utility/StringTools.c88
-rw-r--r--contrib/tools/cython/Cython/Utility/TypeConversion.c102
-rw-r--r--contrib/tools/cython/Cython/Utility/arrayarray.h8
-rw-r--r--contrib/tools/cython/Cython/Utils.py38
-rw-r--r--contrib/tools/cython/LICENSE.txt352
-rwxr-xr-xcontrib/tools/cython/cython.py2
-rw-r--r--contrib/tools/cython/ya.make18
-rw-r--r--contrib/tools/protoc/bin/ya.make2
-rw-r--r--contrib/tools/python/ya.make4
-rw-r--r--contrib/tools/python3/lib/py/ya.make12
-rw-r--r--contrib/tools/python3/src/Include/Python-ast.h514
-rw-r--r--contrib/tools/python3/src/Include/Python.h36
-rw-r--r--contrib/tools/python3/src/Include/abstract.h58
-rw-r--r--contrib/tools/python3/src/Include/asdl.h6
-rw-r--r--contrib/tools/python3/src/Include/ast.h20
-rw-r--r--contrib/tools/python3/src/Include/boolobject.h2
-rw-r--r--contrib/tools/python3/src/Include/bytearrayobject.h8
-rw-r--r--contrib/tools/python3/src/Include/bytesobject.h10
-rw-r--r--contrib/tools/python3/src/Include/cellobject.h2
-rw-r--r--contrib/tools/python3/src/Include/ceval.h58
-rw-r--r--contrib/tools/python3/src/Include/classobject.h6
-rw-r--r--contrib/tools/python3/src/Include/code.h8
-rw-r--r--contrib/tools/python3/src/Include/compile.h54
-rw-r--r--contrib/tools/python3/src/Include/complexobject.h2
-rw-r--r--contrib/tools/python3/src/Include/context.h6
-rw-r--r--contrib/tools/python3/src/Include/cpython/abstract.h768
-rw-r--r--contrib/tools/python3/src/Include/cpython/bytearrayobject.h40
-rw-r--r--contrib/tools/python3/src/Include/cpython/bytesobject.h236
-rw-r--r--contrib/tools/python3/src/Include/cpython/ceval.h76
-rw-r--r--contrib/tools/python3/src/Include/cpython/code.h330
-rw-r--r--contrib/tools/python3/src/Include/cpython/dictobject.h184
-rw-r--r--contrib/tools/python3/src/Include/cpython/fileobject.h48
-rw-r--r--contrib/tools/python3/src/Include/cpython/fileutils.h330
-rw-r--r--contrib/tools/python3/src/Include/cpython/frameobject.h168
-rw-r--r--contrib/tools/python3/src/Include/cpython/import.h100
-rw-r--r--contrib/tools/python3/src/Include/cpython/initconfig.h924
-rw-r--r--contrib/tools/python3/src/Include/cpython/interpreteridobject.h38
-rw-r--r--contrib/tools/python3/src/Include/cpython/listobject.h86
-rw-r--r--contrib/tools/python3/src/Include/cpython/methodobject.h70
-rw-r--r--contrib/tools/python3/src/Include/cpython/object.h1108
-rw-r--r--contrib/tools/python3/src/Include/cpython/objimpl.h290
-rw-r--r--contrib/tools/python3/src/Include/cpython/pyerrors.h400
-rw-r--r--contrib/tools/python3/src/Include/cpython/pylifecycle.h144
-rw-r--r--contrib/tools/python3/src/Include/cpython/pymem.h216
-rw-r--r--contrib/tools/python3/src/Include/cpython/pystate.h522
-rw-r--r--contrib/tools/python3/src/Include/cpython/sysmodule.h48
-rw-r--r--contrib/tools/python3/src/Include/cpython/traceback.h44
-rw-r--r--contrib/tools/python3/src/Include/cpython/tupleobject.h72
-rw-r--r--contrib/tools/python3/src/Include/cpython/unicodeobject.h2474
-rw-r--r--contrib/tools/python3/src/Include/datetime.h24
-rw-r--r--contrib/tools/python3/src/Include/descrobject.h2
-rw-r--r--contrib/tools/python3/src/Include/dictobject.h64
-rw-r--r--contrib/tools/python3/src/Include/exports.h60
-rw-r--r--contrib/tools/python3/src/Include/fileobject.h26
-rw-r--r--contrib/tools/python3/src/Include/fileutils.h6
-rw-r--r--contrib/tools/python3/src/Include/floatobject.h2
-rw-r--r--contrib/tools/python3/src/Include/frameobject.h12
-rw-r--r--contrib/tools/python3/src/Include/funcobject.h8
-rw-r--r--contrib/tools/python3/src/Include/genericaliasobject.h28
-rw-r--r--contrib/tools/python3/src/Include/genobject.h24
-rw-r--r--contrib/tools/python3/src/Include/graminit.h86
-rw-r--r--contrib/tools/python3/src/Include/grammar.h12
-rw-r--r--contrib/tools/python3/src/Include/import.h6
-rw-r--r--contrib/tools/python3/src/Include/internal/pegen_interface.h92
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_abstract.h44
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_accu.h78
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_atomic.h1114
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_bytes_methods.h146
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_byteswap.h176
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_call.h78
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_ceval.h216
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_code.h54
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_condvar.h190
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_context.h84
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_dtoa.h46
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_fileutils.h132
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_gc.h358
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_getopt.h44
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_gil.h100
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_hamt.h232
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_hashtable.h296
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_import.h44
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_initconfig.h334
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_interp.h384
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_object.h246
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_pathconfig.h144
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_pyerrors.h180
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_pyhash.h20
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_pylifecycle.h228
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_pymem.h208
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_pystate.h276
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_runtime.h288
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_sysmodule.h48
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_traceback.h194
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_tupleobject.h38
-rw-r--r--contrib/tools/python3/src/Include/internal/pycore_warnings.h50
-rw-r--r--contrib/tools/python3/src/Include/interpreteridobject.h34
-rw-r--r--contrib/tools/python3/src/Include/intrcheck.h2
-rw-r--r--contrib/tools/python3/src/Include/iterobject.h4
-rw-r--r--contrib/tools/python3/src/Include/listobject.h32
-rw-r--r--contrib/tools/python3/src/Include/longobject.h54
-rw-r--r--contrib/tools/python3/src/Include/memoryobject.h2
-rw-r--r--contrib/tools/python3/src/Include/methodobject.h50
-rw-r--r--contrib/tools/python3/src/Include/modsupport.h52
-rw-r--r--contrib/tools/python3/src/Include/moduleobject.h6
-rw-r--r--contrib/tools/python3/src/Include/node.h10
-rw-r--r--contrib/tools/python3/src/Include/object.h314
-rw-r--r--contrib/tools/python3/src/Include/objimpl.h78
-rw-r--r--contrib/tools/python3/src/Include/odictobject.h12
-rw-r--r--contrib/tools/python3/src/Include/opcode.h28
-rw-r--r--contrib/tools/python3/src/Include/osdefs.h8
-rw-r--r--contrib/tools/python3/src/Include/parsetok.h12
-rw-r--r--contrib/tools/python3/src/Include/patchlevel.h6
-rw-r--r--contrib/tools/python3/src/Include/picklebufobject.h62
-rw-r--r--contrib/tools/python3/src/Include/py_curses.h2
-rw-r--r--contrib/tools/python3/src/Include/pycapsule.h2
-rw-r--r--contrib/tools/python3/src/Include/pyconfig-linux.h234
-rw-r--r--contrib/tools/python3/src/Include/pyconfig-osx.h230
-rw-r--r--contrib/tools/python3/src/Include/pyconfig.h6
-rw-r--r--contrib/tools/python3/src/Include/pyctype.h12
-rw-r--r--contrib/tools/python3/src/Include/pydtrace.h6
-rw-r--r--contrib/tools/python3/src/Include/pyerrors.h34
-rw-r--r--contrib/tools/python3/src/Include/pyfpe.h6
-rw-r--r--contrib/tools/python3/src/Include/pyframe.h44
-rw-r--r--contrib/tools/python3/src/Include/pyhash.h8
-rw-r--r--contrib/tools/python3/src/Include/pylifecycle.h32
-rw-r--r--contrib/tools/python3/src/Include/pymacro.h74
-rw-r--r--contrib/tools/python3/src/Include/pymath.h18
-rw-r--r--contrib/tools/python3/src/Include/pymem.h8
-rw-r--r--contrib/tools/python3/src/Include/pyport.h288
-rw-r--r--contrib/tools/python3/src/Include/pystate.h116
-rw-r--r--contrib/tools/python3/src/Include/pystrhex.h6
-rw-r--r--contrib/tools/python3/src/Include/pythonrun.h86
-rw-r--r--contrib/tools/python3/src/Include/pythread.h52
-rw-r--r--contrib/tools/python3/src/Include/pytime.h8
-rw-r--r--contrib/tools/python3/src/Include/rangeobject.h2
-rw-r--r--contrib/tools/python3/src/Include/setobject.h10
-rw-r--r--contrib/tools/python3/src/Include/sliceobject.h8
-rw-r--r--contrib/tools/python3/src/Include/structseq.h2
-rw-r--r--contrib/tools/python3/src/Include/symtable.h16
-rw-r--r--contrib/tools/python3/src/Include/sysmodule.h6
-rw-r--r--contrib/tools/python3/src/Include/token.h30
-rw-r--r--contrib/tools/python3/src/Include/traceback.h12
-rw-r--r--contrib/tools/python3/src/Include/tracemalloc.h76
-rw-r--r--contrib/tools/python3/src/Include/tupleobject.h8
-rw-r--r--contrib/tools/python3/src/Include/typeslots.h10
-rw-r--r--contrib/tools/python3/src/Include/unicodeobject.h32
-rw-r--r--contrib/tools/python3/src/Include/weakrefobject.h6
-rw-r--r--contrib/tools/python3/src/LICENSE52
-rw-r--r--contrib/tools/python3/src/Lib/__future__.py32
-rw-r--r--contrib/tools/python3/src/Lib/_aix_support.py182
-rw-r--r--contrib/tools/python3/src/Lib/_bootsubprocess.py194
-rw-r--r--contrib/tools/python3/src/Lib/_collections_abc.py248
-rw-r--r--contrib/tools/python3/src/Lib/_osx_support.py194
-rw-r--r--contrib/tools/python3/src/Lib/_py_abc.py2
-rw-r--r--contrib/tools/python3/src/Lib/_pydecimal.py12
-rw-r--r--contrib/tools/python3/src/Lib/_pyio.py198
-rw-r--r--contrib/tools/python3/src/Lib/_strptime.py4
-rw-r--r--contrib/tools/python3/src/Lib/_threading_local.py4
-rw-r--r--contrib/tools/python3/src/Lib/_weakrefset.py26
-rw-r--r--contrib/tools/python3/src/Lib/abc.py52
-rw-r--r--contrib/tools/python3/src/Lib/aifc.py2
-rw-r--r--contrib/tools/python3/src/Lib/antigravity.py2
-rw-r--r--contrib/tools/python3/src/Lib/argparse.py298
-rw-r--r--contrib/tools/python3/src/Lib/ast.py2636
-rw-r--r--contrib/tools/python3/src/Lib/asynchat.py2
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/__init__.py8
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/__main__.py250
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/base_events.py454
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/base_futures.py44
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/base_subprocess.py10
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/base_tasks.py28
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/coroutines.py8
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/events.py70
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/exceptions.py116
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/futures.py102
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/locks.py82
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/proactor_events.py398
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/protocols.py20
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/queues.py16
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/runners.py12
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/selector_events.py332
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/sslproto.py38
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/staggered.py298
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/streams.py192
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/subprocess.py50
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/tasks.py408
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/threads.py50
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/transports.py44
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/trsock.py412
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/unix_events.py778
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/windows_events.py166
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/windows_utils.py4
-rw-r--r--contrib/tools/python3/src/Lib/asyncore.py4
-rw-r--r--contrib/tools/python3/src/Lib/base64.py6
-rw-r--r--contrib/tools/python3/src/Lib/bdb.py14
-rw-r--r--contrib/tools/python3/src/Lib/binhex.py70
-rw-r--r--contrib/tools/python3/src/Lib/bisect.py8
-rw-r--r--contrib/tools/python3/src/Lib/bz2.py26
-rw-r--r--contrib/tools/python3/src/Lib/cProfile.py38
-rw-r--r--contrib/tools/python3/src/Lib/calendar.py12
-rw-r--r--contrib/tools/python3/src/Lib/cgi.py52
-rw-r--r--contrib/tools/python3/src/Lib/cgitb.py12
-rw-r--r--contrib/tools/python3/src/Lib/code.py2
-rw-r--r--contrib/tools/python3/src/Lib/codecs.py44
-rw-r--r--contrib/tools/python3/src/Lib/codeop.py54
-rw-r--r--contrib/tools/python3/src/Lib/collections/__init__.py796
-rw-r--r--contrib/tools/python3/src/Lib/collections/abc.py2
-rw-r--r--contrib/tools/python3/src/Lib/compileall.py390
-rw-r--r--contrib/tools/python3/src/Lib/concurrent/futures/__init__.py2
-rw-r--r--contrib/tools/python3/src/Lib/concurrent/futures/_base.py100
-rw-r--r--contrib/tools/python3/src/Lib/concurrent/futures/process.py644
-rw-r--r--contrib/tools/python3/src/Lib/concurrent/futures/thread.py114
-rw-r--r--contrib/tools/python3/src/Lib/configparser.py22
-rw-r--r--contrib/tools/python3/src/Lib/contextlib.py134
-rw-r--r--contrib/tools/python3/src/Lib/copy.py26
-rw-r--r--contrib/tools/python3/src/Lib/copyreg.py26
-rw-r--r--contrib/tools/python3/src/Lib/crypt.py38
-rw-r--r--contrib/tools/python3/src/Lib/csv.py4
-rw-r--r--contrib/tools/python3/src/Lib/ctypes/__init__.py54
-rw-r--r--contrib/tools/python3/src/Lib/ctypes/_aix.py6
-rw-r--r--contrib/tools/python3/src/Lib/ctypes/macholib/dyld.py28
-rw-r--r--contrib/tools/python3/src/Lib/ctypes/util.py50
-rw-r--r--contrib/tools/python3/src/Lib/curses/__init__.py2
-rw-r--r--contrib/tools/python3/src/Lib/dataclasses.py178
-rw-r--r--contrib/tools/python3/src/Lib/datetime.py268
-rw-r--r--contrib/tools/python3/src/Lib/dbm/__init__.py4
-rw-r--r--contrib/tools/python3/src/Lib/dbm/dumb.py16
-rw-r--r--contrib/tools/python3/src/Lib/difflib.py50
-rw-r--r--contrib/tools/python3/src/Lib/dis.py44
-rw-r--r--contrib/tools/python3/src/Lib/distutils/_msvccompiler.py32
-rw-r--r--contrib/tools/python3/src/Lib/distutils/archive_util.py22
-rw-r--r--contrib/tools/python3/src/Lib/distutils/bcppcompiler.py4
-rw-r--r--contrib/tools/python3/src/Lib/distutils/ccompiler.py10
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/bdist_msi.py42
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/bdist_rpm.py6
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/bdist_wininst.py98
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/build.py2
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/build_ext.py78
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/build_py.py6
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/check.py20
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/config.py34
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/install.py8
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/sdist.py14
-rw-r--r--contrib/tools/python3/src/Lib/distutils/command/upload.py56
-rw-r--r--contrib/tools/python3/src/Lib/distutils/msvc9compiler.py4
-rw-r--r--contrib/tools/python3/src/Lib/distutils/msvccompiler.py2
-rw-r--r--contrib/tools/python3/src/Lib/distutils/spawn.py132
-rw-r--r--contrib/tools/python3/src/Lib/distutils/sysconfig.py38
-rw-r--r--contrib/tools/python3/src/Lib/distutils/unixccompiler.py8
-rw-r--r--contrib/tools/python3/src/Lib/distutils/util.py70
-rw-r--r--contrib/tools/python3/src/Lib/distutils/version.py8
-rw-r--r--contrib/tools/python3/src/Lib/doctest.py28
-rw-r--r--contrib/tools/python3/src/Lib/email/_header_value_parser.py454
-rw-r--r--contrib/tools/python3/src/Lib/email/_parseaddr.py28
-rw-r--r--contrib/tools/python3/src/Lib/email/charset.py2
-rw-r--r--contrib/tools/python3/src/Lib/email/contentmanager.py18
-rw-r--r--contrib/tools/python3/src/Lib/email/feedparser.py2
-rw-r--r--contrib/tools/python3/src/Lib/email/generator.py10
-rw-r--r--contrib/tools/python3/src/Lib/email/header.py2
-rw-r--r--contrib/tools/python3/src/Lib/email/headerregistry.py62
-rw-r--r--contrib/tools/python3/src/Lib/email/message.py32
-rw-r--r--contrib/tools/python3/src/Lib/email/policy.py4
-rw-r--r--contrib/tools/python3/src/Lib/email/utils.py10
-rw-r--r--contrib/tools/python3/src/Lib/encodings/__init__.py4
-rw-r--r--contrib/tools/python3/src/Lib/encodings/aliases.py8
-rw-r--r--contrib/tools/python3/src/Lib/encodings/punycode.py2
-rw-r--r--contrib/tools/python3/src/Lib/encodings/raw_unicode_escape.py10
-rw-r--r--contrib/tools/python3/src/Lib/encodings/unicode_escape.py10
-rw-r--r--contrib/tools/python3/src/Lib/encodings/uu_codec.py8
-rw-r--r--contrib/tools/python3/src/Lib/ensurepip/__init__.py60
-rw-r--r--contrib/tools/python3/src/Lib/enum.py592
-rw-r--r--contrib/tools/python3/src/Lib/filecmp.py18
-rw-r--r--contrib/tools/python3/src/Lib/fileinput.py42
-rw-r--r--contrib/tools/python3/src/Lib/fnmatch.py126
-rw-r--r--contrib/tools/python3/src/Lib/fractions.py116
-rw-r--r--contrib/tools/python3/src/Lib/ftplib.py70
-rw-r--r--contrib/tools/python3/src/Lib/functools.py450
-rw-r--r--contrib/tools/python3/src/Lib/genericpath.py20
-rw-r--r--contrib/tools/python3/src/Lib/getpass.py4
-rw-r--r--contrib/tools/python3/src/Lib/gettext.py334
-rw-r--r--contrib/tools/python3/src/Lib/glob.py18
-rw-r--r--contrib/tools/python3/src/Lib/graphlib.py492
-rw-r--r--contrib/tools/python3/src/Lib/gzip.py130
-rw-r--r--contrib/tools/python3/src/Lib/hashlib.py54
-rw-r--r--contrib/tools/python3/src/Lib/heapq.py8
-rw-r--r--contrib/tools/python3/src/Lib/hmac.py132
-rw-r--r--contrib/tools/python3/src/Lib/html/parser.py4
-rw-r--r--contrib/tools/python3/src/Lib/http/__init__.py26
-rw-r--r--contrib/tools/python3/src/Lib/http/client.py272
-rw-r--r--contrib/tools/python3/src/Lib/http/cookiejar.py36
-rw-r--r--contrib/tools/python3/src/Lib/http/cookies.py10
-rw-r--r--contrib/tools/python3/src/Lib/http/server.py130
-rw-r--r--contrib/tools/python3/src/Lib/imaplib.py122
-rw-r--r--contrib/tools/python3/src/Lib/imghdr.py2
-rw-r--r--contrib/tools/python3/src/Lib/importlib/__init__.py4
-rw-r--r--contrib/tools/python3/src/Lib/importlib/_bootstrap.py236
-rw-r--r--contrib/tools/python3/src/Lib/importlib/_bootstrap_external.py432
-rw-r--r--contrib/tools/python3/src/Lib/importlib/_common.py124
-rw-r--r--contrib/tools/python3/src/Lib/importlib/abc.py174
-rw-r--r--contrib/tools/python3/src/Lib/importlib/metadata.py1190
-rw-r--r--contrib/tools/python3/src/Lib/importlib/resources.py122
-rw-r--r--contrib/tools/python3/src/Lib/importlib/util.py4
-rw-r--r--contrib/tools/python3/src/Lib/inspect.py346
-rw-r--r--contrib/tools/python3/src/Lib/io.py6
-rw-r--r--contrib/tools/python3/src/Lib/ipaddress.py350
-rw-r--r--contrib/tools/python3/src/Lib/json/__init__.py6
-rw-r--r--contrib/tools/python3/src/Lib/json/encoder.py8
-rw-r--r--contrib/tools/python3/src/Lib/json/tool.py106
-rw-r--r--contrib/tools/python3/src/Lib/keyword.py106
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/__init__.py16
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixer_util.py2
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixes/fix_apply.py2
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixes/fix_filter.py14
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixes/fix_intern.py2
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixes/fix_metaclass.py4
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixes/fix_paren.py2
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixes/fix_reload.py2
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/fixes/fix_urllib.py2
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/main.py14
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/pgen2/grammar.py6
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/pgen2/parse.py6
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/pgen2/token.py4
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/pgen2/tokenize.py14
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/pygram.py6
-rw-r--r--contrib/tools/python3/src/Lib/lib2to3/refactor.py24
-rw-r--r--contrib/tools/python3/src/Lib/linecache.py44
-rw-r--r--contrib/tools/python3/src/Lib/locale.py12
-rw-r--r--contrib/tools/python3/src/Lib/logging/__init__.py360
-rw-r--r--contrib/tools/python3/src/Lib/logging/config.py34
-rw-r--r--contrib/tools/python3/src/Lib/logging/handlers.py226
-rw-r--r--contrib/tools/python3/src/Lib/lzma.py24
-rw-r--r--contrib/tools/python3/src/Lib/mailbox.py12
-rw-r--r--contrib/tools/python3/src/Lib/mailcap.py2
-rw-r--r--contrib/tools/python3/src/Lib/mimetypes.py286
-rw-r--r--contrib/tools/python3/src/Lib/modulefinder.py158
-rw-r--r--contrib/tools/python3/src/Lib/msilib/__init__.py4
-rw-r--r--contrib/tools/python3/src/Lib/msilib/schema.py2
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/__init__.py4
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/connection.py56
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/context.py24
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/dummy/__init__.py2
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/forkserver.py60
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/heap.py182
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/managers.py358
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/pool.py398
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/popen_fork.py16
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/popen_forkserver.py10
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_posix.py18
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_win32.py18
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/process.py144
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/queues.py44
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/reduction.py14
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/resource_sharer.py6
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/resource_tracker.py462
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/shared_memory.py1064
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/spawn.py34
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/synchronize.py10
-rw-r--r--contrib/tools/python3/src/Lib/multiprocessing/util.py146
-rw-r--r--contrib/tools/python3/src/Lib/nntplib.py108
-rw-r--r--contrib/tools/python3/src/Lib/ntpath.py320
-rw-r--r--contrib/tools/python3/src/Lib/nturl2path.py18
-rw-r--r--contrib/tools/python3/src/Lib/numbers.py12
-rw-r--r--contrib/tools/python3/src/Lib/opcode.py40
-rw-r--r--contrib/tools/python3/src/Lib/operator.py12
-rw-r--r--contrib/tools/python3/src/Lib/optparse.py2
-rw-r--r--contrib/tools/python3/src/Lib/os.py176
-rw-r--r--contrib/tools/python3/src/Lib/pathlib.py438
-rw-r--r--contrib/tools/python3/src/Lib/pdb.py136
-rw-r--r--contrib/tools/python3/src/Lib/pickle.py452
-rw-r--r--contrib/tools/python3/src/Lib/pickletools.py158
-rw-r--r--contrib/tools/python3/src/Lib/pkgutil.py142
-rw-r--r--contrib/tools/python3/src/Lib/platform.py426
-rw-r--r--contrib/tools/python3/src/Lib/plistlib.py174
-rw-r--r--contrib/tools/python3/src/Lib/poplib.py12
-rw-r--r--contrib/tools/python3/src/Lib/posixpath.py18
-rw-r--r--contrib/tools/python3/src/Lib/pprint.py118
-rw-r--r--contrib/tools/python3/src/Lib/profile.py66
-rw-r--r--contrib/tools/python3/src/Lib/pstats.py122
-rw-r--r--contrib/tools/python3/src/Lib/pty.py4
-rw-r--r--contrib/tools/python3/src/Lib/py_compile.py24
-rw-r--r--contrib/tools/python3/src/Lib/pyclbr.py12
-rw-r--r--contrib/tools/python3/src/Lib/pydoc.py350
-rw-r--r--contrib/tools/python3/src/Lib/pydoc_data/topics.py4518
-rw-r--r--contrib/tools/python3/src/Lib/queue.py12
-rw-r--r--contrib/tools/python3/src/Lib/quopri.py8
-rw-r--r--contrib/tools/python3/src/Lib/random.py750
-rw-r--r--contrib/tools/python3/src/Lib/re.py74
-rw-r--r--contrib/tools/python3/src/Lib/rlcompleter.py26
-rw-r--r--contrib/tools/python3/src/Lib/runpy.py16
-rw-r--r--contrib/tools/python3/src/Lib/secrets.py2
-rw-r--r--contrib/tools/python3/src/Lib/selectors.py64
-rw-r--r--contrib/tools/python3/src/Lib/shlex.py36
-rw-r--r--contrib/tools/python3/src/Lib/shutil.py802
-rw-r--r--contrib/tools/python3/src/Lib/signal.py42
-rw-r--r--contrib/tools/python3/src/Lib/site.py38
-rw-r--r--contrib/tools/python3/src/Lib/smtpd.py4
-rw-r--r--contrib/tools/python3/src/Lib/smtplib.py84
-rw-r--r--contrib/tools/python3/src/Lib/sndhdr.py2
-rw-r--r--contrib/tools/python3/src/Lib/socket.py440
-rw-r--r--contrib/tools/python3/src/Lib/socketserver.py82
-rw-r--r--contrib/tools/python3/src/Lib/sqlite3/__init__.py68
-rw-r--r--contrib/tools/python3/src/Lib/sre_compile.py20
-rw-r--r--contrib/tools/python3/src/Lib/sre_constants.py2
-rw-r--r--contrib/tools/python3/src/Lib/sre_parse.py104
-rw-r--r--contrib/tools/python3/src/Lib/ssl.py440
-rw-r--r--contrib/tools/python3/src/Lib/stat.py34
-rw-r--r--contrib/tools/python3/src/Lib/statistics.py1054
-rw-r--r--contrib/tools/python3/src/Lib/string.py62
-rw-r--r--contrib/tools/python3/src/Lib/subprocess.py942
-rw-r--r--contrib/tools/python3/src/Lib/sunau.py2
-rw-r--r--contrib/tools/python3/src/Lib/symbol.py116
-rw-r--r--contrib/tools/python3/src/Lib/symtable.py54
-rw-r--r--contrib/tools/python3/src/Lib/sysconfig.py60
-rw-r--r--contrib/tools/python3/src/Lib/tarfile.py218
-rw-r--r--contrib/tools/python3/src/Lib/telnetlib.py4
-rw-r--r--contrib/tools/python3/src/Lib/tempfile.py146
-rw-r--r--contrib/tools/python3/src/Lib/textwrap.py6
-rw-r--r--contrib/tools/python3/src/Lib/threading.py622
-rw-r--r--contrib/tools/python3/src/Lib/timeit.py4
-rw-r--r--contrib/tools/python3/src/Lib/token.py126
-rw-r--r--contrib/tools/python3/src/Lib/tokenize.py44
-rw-r--r--contrib/tools/python3/src/Lib/trace.py76
-rw-r--r--contrib/tools/python3/src/Lib/traceback.py150
-rw-r--r--contrib/tools/python3/src/Lib/tracemalloc.py68
-rw-r--r--contrib/tools/python3/src/Lib/turtle.py34
-rw-r--r--contrib/tools/python3/src/Lib/types.py26
-rw-r--r--contrib/tools/python3/src/Lib/typing.py2336
-rw-r--r--contrib/tools/python3/src/Lib/unittest/__init__.py42
-rw-r--r--contrib/tools/python3/src/Lib/unittest/_log.py138
-rw-r--r--contrib/tools/python3/src/Lib/unittest/async_case.py336
-rw-r--r--contrib/tools/python3/src/Lib/unittest/case.py276
-rw-r--r--contrib/tools/python3/src/Lib/unittest/mock.py1406
-rw-r--r--contrib/tools/python3/src/Lib/unittest/result.py2
-rw-r--r--contrib/tools/python3/src/Lib/unittest/runner.py18
-rw-r--r--contrib/tools/python3/src/Lib/unittest/suite.py196
-rw-r--r--contrib/tools/python3/src/Lib/urllib/parse.py394
-rw-r--r--contrib/tools/python3/src/Lib/urllib/request.py292
-rw-r--r--contrib/tools/python3/src/Lib/urllib/response.py8
-rw-r--r--contrib/tools/python3/src/Lib/urllib/robotparser.py40
-rw-r--r--contrib/tools/python3/src/Lib/uu.py14
-rw-r--r--contrib/tools/python3/src/Lib/uuid.py426
-rw-r--r--contrib/tools/python3/src/Lib/venv/__init__.py208
-rw-r--r--contrib/tools/python3/src/Lib/warnings.py30
-rw-r--r--contrib/tools/python3/src/Lib/wave.py16
-rw-r--r--contrib/tools/python3/src/Lib/weakref.py158
-rw-r--r--contrib/tools/python3/src/Lib/webbrowser.py58
-rw-r--r--contrib/tools/python3/src/Lib/wsgiref/handlers.py32
-rw-r--r--contrib/tools/python3/src/Lib/wsgiref/simple_server.py4
-rw-r--r--contrib/tools/python3/src/Lib/wsgiref/util.py20
-rw-r--r--contrib/tools/python3/src/Lib/wsgiref/validate.py4
-rw-r--r--contrib/tools/python3/src/Lib/xml/dom/expatbuilder.py8
-rw-r--r--contrib/tools/python3/src/Lib/xml/dom/minidom.py86
-rw-r--r--contrib/tools/python3/src/Lib/xml/dom/pulldom.py14
-rw-r--r--contrib/tools/python3/src/Lib/xml/etree/ElementInclude.py102
-rw-r--r--contrib/tools/python3/src/Lib/xml/etree/ElementPath.py206
-rw-r--r--contrib/tools/python3/src/Lib/xml/etree/ElementTree.py1050
-rw-r--r--contrib/tools/python3/src/Lib/xml/etree/__init__.py2
-rw-r--r--contrib/tools/python3/src/Lib/xml/sax/__init__.py10
-rw-r--r--contrib/tools/python3/src/Lib/xml/sax/expatreader.py14
-rw-r--r--contrib/tools/python3/src/Lib/xml/sax/saxutils.py6
-rw-r--r--contrib/tools/python3/src/Lib/xmlrpc/client.py82
-rw-r--r--contrib/tools/python3/src/Lib/xmlrpc/server.py8
-rw-r--r--contrib/tools/python3/src/Lib/zipfile.py800
-rw-r--r--contrib/tools/python3/src/Lib/zipimport.py1584
-rw-r--r--contrib/tools/python3/src/Lib/zoneinfo/__init__.py62
-rw-r--r--contrib/tools/python3/src/Lib/zoneinfo/_common.py330
-rw-r--r--contrib/tools/python3/src/Lib/zoneinfo/_tzpath.py350
-rw-r--r--contrib/tools/python3/src/Lib/zoneinfo/_zoneinfo.py1504
-rw-r--r--contrib/tools/python3/src/Modules/_abc.c270
-rw-r--r--contrib/tools/python3/src/Modules/_asynciomodule.c900
-rw-r--r--contrib/tools/python3/src/Modules/_bisectmodule.c220
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/blake2b_impl.c24
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/blake2module.c8
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/blake2s_impl.c24
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/clinic/blake2b_impl.c.h326
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/clinic/blake2s_impl.c.h326
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2-config.h20
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2-dispatch.c1154
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2-impl.h102
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2-kat.h32934
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2.h208
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse2.h18
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse41.h18
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2b-ref.c140
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2b-round.h28
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2b-test.c86
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2b.c198
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2bp-test.c88
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2bp.c548
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse2.h18
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse41.h18
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-xop.h26
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2s-ref.c152
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2s-round.h28
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2s-test.c86
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2s.c188
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2sp-test.c86
-rw-r--r--contrib/tools/python3/src/Modules/_blake2/impl/blake2sp.c548
-rw-r--r--contrib/tools/python3/src/Modules/_bz2module.c54
-rw-r--r--contrib/tools/python3/src/Modules/_codecsmodule.c196
-rw-r--r--contrib/tools/python3/src/Modules/_collectionsmodule.c672
-rw-r--r--contrib/tools/python3/src/Modules/_contextvarsmodule.c58
-rw-r--r--contrib/tools/python3/src/Modules/_cryptmodule.c160
-rw-r--r--contrib/tools/python3/src/Modules/_csv.c288
-rw-r--r--contrib/tools/python3/src/Modules/_ctypes/_ctypes.c854
-rw-r--r--contrib/tools/python3/src/Modules/_ctypes/callbacks.c166
-rw-r--r--contrib/tools/python3/src/Modules/_ctypes/callproc.c640
-rw-r--r--contrib/tools/python3/src/Modules/_ctypes/cfield.c164
-rw-r--r--contrib/tools/python3/src/Modules/_ctypes/ctypes.h32
-rw-r--r--contrib/tools/python3/src/Modules/_ctypes/stgdict.c624
-rw-r--r--contrib/tools/python3/src/Modules/_datetimemodule.c796
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/_decimal.c442
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.c12
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/bits.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.c2
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.h12
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/context.c10
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.c4
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.c12
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.c10
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.c10
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.c14
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/io.c58
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.c712
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.h18
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/mpd_io.h16
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.c540
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.h82
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.c10
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.h10
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.c12
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.c12
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.h8
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/typearith.h12
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/umodarith.h12
-rw-r--r--contrib/tools/python3/src/Modules/_decimal/libmpdec/vccompat.h18
-rw-r--r--contrib/tools/python3/src/Modules/_elementtree.c1438
-rw-r--r--contrib/tools/python3/src/Modules/_functoolsmodule.c374
-rw-r--r--contrib/tools/python3/src/Modules/_hashopenssl.c3414
-rw-r--r--contrib/tools/python3/src/Modules/_heapqmodule.c340
-rw-r--r--contrib/tools/python3/src/Modules/_io/_iomodule.c150
-rw-r--r--contrib/tools/python3/src/Modules/_io/_iomodule.h6
-rw-r--r--contrib/tools/python3/src/Modules/_io/bufferedio.c174
-rw-r--r--contrib/tools/python3/src/Modules/_io/bytesio.c154
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/_iomodule.c.h340
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/bufferedio.c.h466
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/bytesio.c.h190
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/fileio.c.h182
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/iobase.c.h94
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/stringio.c.h156
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/textio.c.h452
-rw-r--r--contrib/tools/python3/src/Modules/_io/clinic/winconsoleio.c.h134
-rw-r--r--contrib/tools/python3/src/Modules/_io/fileio.c68
-rw-r--r--contrib/tools/python3/src/Modules/_io/iobase.c74
-rw-r--r--contrib/tools/python3/src/Modules/_io/stringio.c24
-rw-r--r--contrib/tools/python3/src/Modules/_io/textio.c540
-rw-r--r--contrib/tools/python3/src/Modules/_io/winconsoleio.c20
-rw-r--r--contrib/tools/python3/src/Modules/_json.c452
-rw-r--r--contrib/tools/python3/src/Modules/_localemodule.c276
-rw-r--r--contrib/tools/python3/src/Modules/_lsprof.c150
-rw-r--r--contrib/tools/python3/src/Modules/_math.c2
-rw-r--r--contrib/tools/python3/src/Modules/_multiprocessing/clinic/posixshmem.c.h266
-rw-r--r--contrib/tools/python3/src/Modules/_multiprocessing/posixshmem.c260
-rw-r--r--contrib/tools/python3/src/Modules/_multiprocessing/semaphore.c42
-rw-r--r--contrib/tools/python3/src/Modules/_opcode.c42
-rw-r--r--contrib/tools/python3/src/Modules/_operator.c158
-rw-r--r--contrib/tools/python3/src/Modules/_peg_parser.c306
-rw-r--r--contrib/tools/python3/src/Modules/_pickle.c1490
-rw-r--r--contrib/tools/python3/src/Modules/_posixsubprocess.c466
-rw-r--r--contrib/tools/python3/src/Modules/_queuemodule.c16
-rw-r--r--contrib/tools/python3/src/Modules/_randommodule.c398
-rw-r--r--contrib/tools/python3/src/Modules/_scproxy.c8
-rw-r--r--contrib/tools/python3/src/Modules/_sha3/clinic/sha3module.c.h166
-rw-r--r--contrib/tools/python3/src/Modules/_sha3/sha3module.c82
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/cache.c28
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/cache.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/connection.c402
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/connection.h10
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/cursor.c200
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/cursor.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/microprotocols.c92
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/microprotocols.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/module.c38
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/module.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.c6
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/row.c82
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/row.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/statement.c56
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/statement.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/util.h2
-rw-r--r--contrib/tools/python3/src/Modules/_sqlite/ya.make8
-rw-r--r--contrib/tools/python3/src/Modules/_sre.c120
-rw-r--r--contrib/tools/python3/src/Modules/_ssl.c1034
-rw-r--r--contrib/tools/python3/src/Modules/_ssl/debughelpers.c446
-rw-r--r--contrib/tools/python3/src/Modules/_ssl_data.h10130
-rw-r--r--contrib/tools/python3/src/Modules/_ssl_data_111.h13050
-rw-r--r--contrib/tools/python3/src/Modules/_ssl_data_300.h16870
-rw-r--r--contrib/tools/python3/src/Modules/_stat.c272
-rw-r--r--contrib/tools/python3/src/Modules/_statisticsmodule.c302
-rw-r--r--contrib/tools/python3/src/Modules/_struct.c486
-rw-r--r--contrib/tools/python3/src/Modules/_threadmodule.c630
-rw-r--r--contrib/tools/python3/src/Modules/_tracemalloc.c908
-rw-r--r--contrib/tools/python3/src/Modules/_weakref.c80
-rw-r--r--contrib/tools/python3/src/Modules/_winapi.c532
-rw-r--r--contrib/tools/python3/src/Modules/_xxsubinterpretersmodule.c5312
-rw-r--r--contrib/tools/python3/src/Modules/_xxtestfuzz/_xxtestfuzz.c2
-rw-r--r--contrib/tools/python3/src/Modules/_xxtestfuzz/fuzzer.c764
-rw-r--r--contrib/tools/python3/src/Modules/_zoneinfo.c5448
-rw-r--r--contrib/tools/python3/src/Modules/arraymodule.c204
-rw-r--r--contrib/tools/python3/src/Modules/atexitmodule.c56
-rw-r--r--contrib/tools/python3/src/Modules/audioop.c244
-rw-r--r--contrib/tools/python3/src/Modules/binascii.c504
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/_codecs_cn.c44
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/cjkcodecs.h46
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/clinic/multibytecodec.c.h448
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/mappings_cn.h2
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/mappings_jisx0213_pair.h2
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/mappings_jp.h2
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/mappings_kr.h4
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.c394
-rw-r--r--contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.h20
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_abc.c.h26
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_asynciomodule.c.h452
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_bisectmodule.c.h612
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_bz2module.c.h114
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_codecsmodule.c.h3384
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_collectionsmodule.c.h152
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_cryptmodule.c.h58
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_curses_panel.c.h676
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_cursesmodule.c.h9306
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_datetimemodule.c.h156
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_dbmmodule.c.h84
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_elementtree.c.h626
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_gdbmmodule.c.h114
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_hashopenssl.c.h2716
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_heapqmodule.c.h344
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_lzmamodule.c.h184
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_opcode.c.h68
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_operator.c.h398
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_pickle.c.h680
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_queuemodule.c.h96
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_randommodule.c.h234
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_sre.c.h1022
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_ssl.c.h706
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_statisticsmodule.c.h136
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_struct.c.h210
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_tkinter.c.h630
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_tracemalloc.c.h72
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_weakref.c.h18
-rw-r--r--contrib/tools/python3/src/Modules/clinic/_winapi.c.h344
-rw-r--r--contrib/tools/python3/src/Modules/clinic/arraymodule.c.h208
-rw-r--r--contrib/tools/python3/src/Modules/clinic/audioop.c.h1344
-rw-r--r--contrib/tools/python3/src/Modules/clinic/binascii.c.h624
-rw-r--r--contrib/tools/python3/src/Modules/clinic/cmathmodule.c.h276
-rw-r--r--contrib/tools/python3/src/Modules/clinic/fcntlmodule.c.h190
-rw-r--r--contrib/tools/python3/src/Modules/clinic/gcmodule.c.h138
-rw-r--r--contrib/tools/python3/src/Modules/clinic/grpmodule.c.h40
-rw-r--r--contrib/tools/python3/src/Modules/clinic/itertoolsmodule.c.h1290
-rw-r--r--contrib/tools/python3/src/Modules/clinic/mathmodule.c.h838
-rw-r--r--contrib/tools/python3/src/Modules/clinic/md5module.c.h60
-rw-r--r--contrib/tools/python3/src/Modules/clinic/posixmodule.c.h6928
-rw-r--r--contrib/tools/python3/src/Modules/clinic/pwdmodule.c.h24
-rw-r--r--contrib/tools/python3/src/Modules/clinic/pyexpat.c.h298
-rw-r--r--contrib/tools/python3/src/Modules/clinic/resource.c.h54
-rw-r--r--contrib/tools/python3/src/Modules/clinic/selectmodule.c.h2444
-rw-r--r--contrib/tools/python3/src/Modules/clinic/sha1module.c.h60
-rw-r--r--contrib/tools/python3/src/Modules/clinic/sha256module.c.h118
-rw-r--r--contrib/tools/python3/src/Modules/clinic/sha512module.c.h118
-rw-r--r--contrib/tools/python3/src/Modules/clinic/signalmodule.c.h680
-rw-r--r--contrib/tools/python3/src/Modules/clinic/spwdmodule.c.h14
-rw-r--r--contrib/tools/python3/src/Modules/clinic/symtablemodule.c.h48
-rw-r--r--contrib/tools/python3/src/Modules/clinic/unicodedata.c.h436
-rw-r--r--contrib/tools/python3/src/Modules/clinic/zlibmodule.c.h728
-rw-r--r--contrib/tools/python3/src/Modules/cmathmodule.c18
-rw-r--r--contrib/tools/python3/src/Modules/config.c32
-rw-r--r--contrib/tools/python3/src/Modules/errnomodule.c670
-rw-r--r--contrib/tools/python3/src/Modules/faulthandler.c364
-rw-r--r--contrib/tools/python3/src/Modules/fcntlmodule.c86
-rw-r--r--contrib/tools/python3/src/Modules/gcmodule.c2264
-rw-r--r--contrib/tools/python3/src/Modules/getbuildinfo.c6
-rw-r--r--contrib/tools/python3/src/Modules/getpath.c2320
-rw-r--r--contrib/tools/python3/src/Modules/grpmodule.c302
-rw-r--r--contrib/tools/python3/src/Modules/hashlib.h2
-rw-r--r--contrib/tools/python3/src/Modules/itertoolsmodule.c1008
-rw-r--r--contrib/tools/python3/src/Modules/main.c878
-rw-r--r--contrib/tools/python3/src/Modules/mathmodule.c2606
-rw-r--r--contrib/tools/python3/src/Modules/md5module.c28
-rw-r--r--contrib/tools/python3/src/Modules/mmapmodule.c474
-rw-r--r--contrib/tools/python3/src/Modules/overlapped.c732
-rw-r--r--contrib/tools/python3/src/Modules/parsermodule.c140
-rw-r--r--contrib/tools/python3/src/Modules/posixmodule.c7072
-rw-r--r--contrib/tools/python3/src/Modules/posixmodule.h18
-rw-r--r--contrib/tools/python3/src/Modules/pwdmodule.c302
-rw-r--r--contrib/tools/python3/src/Modules/pyexpat.c612
-rw-r--r--contrib/tools/python3/src/Modules/resource.c164
-rw-r--r--contrib/tools/python3/src/Modules/selectmodule.c1518
-rw-r--r--contrib/tools/python3/src/Modules/sha1module.c26
-rw-r--r--contrib/tools/python3/src/Modules/sha256module.c50
-rw-r--r--contrib/tools/python3/src/Modules/sha512module.c56
-rw-r--r--contrib/tools/python3/src/Modules/signalmodule.c960
-rw-r--r--contrib/tools/python3/src/Modules/socketmodule.c1250
-rw-r--r--contrib/tools/python3/src/Modules/socketmodule.h136
-rw-r--r--contrib/tools/python3/src/Modules/sre.h14
-rw-r--r--contrib/tools/python3/src/Modules/sre_lib.h36
-rw-r--r--contrib/tools/python3/src/Modules/symtablemodule.c38
-rw-r--r--contrib/tools/python3/src/Modules/syslogmodule.c162
-rw-r--r--contrib/tools/python3/src/Modules/termios.c182
-rw-r--r--contrib/tools/python3/src/Modules/timemodule.c826
-rw-r--r--contrib/tools/python3/src/Modules/unicodedata.c314
-rw-r--r--contrib/tools/python3/src/Modules/unicodedata_db.h6000
-rw-r--r--contrib/tools/python3/src/Modules/unicodename_db.h56542
-rw-r--r--contrib/tools/python3/src/Modules/winreparse.h10
-rw-r--r--contrib/tools/python3/src/Modules/ya.make30
-rw-r--r--contrib/tools/python3/src/Modules/zlibmodule.c332
-rw-r--r--contrib/tools/python3/src/Objects/abstract.c640
-rw-r--r--contrib/tools/python3/src/Objects/accu.c2
-rw-r--r--contrib/tools/python3/src/Objects/boolobject.c6
-rw-r--r--contrib/tools/python3/src/Objects/bytearrayobject.c358
-rw-r--r--contrib/tools/python3/src/Objects/bytes_methods.c30
-rw-r--r--contrib/tools/python3/src/Objects/bytesobject.c398
-rw-r--r--contrib/tools/python3/src/Objects/call.c920
-rw-r--r--contrib/tools/python3/src/Objects/capsule.c6
-rw-r--r--contrib/tools/python3/src/Objects/cellobject.c90
-rw-r--r--contrib/tools/python3/src/Objects/classobject.c184
-rw-r--r--contrib/tools/python3/src/Objects/clinic/bytearrayobject.c.h860
-rw-r--r--contrib/tools/python3/src/Objects/clinic/bytesobject.c.h778
-rw-r--r--contrib/tools/python3/src/Objects/clinic/codeobject.c.h512
-rw-r--r--contrib/tools/python3/src/Objects/clinic/complexobject.c.h38
-rw-r--r--contrib/tools/python3/src/Objects/clinic/descrobject.c.h76
-rw-r--r--contrib/tools/python3/src/Objects/clinic/dictobject.c.h200
-rw-r--r--contrib/tools/python3/src/Objects/clinic/enumobject.c.h32
-rw-r--r--contrib/tools/python3/src/Objects/clinic/floatobject.c.h192
-rw-r--r--contrib/tools/python3/src/Objects/clinic/funcobject.c.h70
-rw-r--r--contrib/tools/python3/src/Objects/clinic/listobject.c.h202
-rw-r--r--contrib/tools/python3/src/Objects/clinic/longobject.c.h230
-rw-r--r--contrib/tools/python3/src/Objects/clinic/memoryobject.c.h148
-rw-r--r--contrib/tools/python3/src/Objects/clinic/moduleobject.c.h42
-rw-r--r--contrib/tools/python3/src/Objects/clinic/odictobject.c.h108
-rw-r--r--contrib/tools/python3/src/Objects/clinic/structseq.c.h28
-rw-r--r--contrib/tools/python3/src/Objects/clinic/tupleobject.c.h46
-rw-r--r--contrib/tools/python3/src/Objects/clinic/typeobject.c.h28
-rw-r--r--contrib/tools/python3/src/Objects/clinic/unicodeobject.c.h816
-rw-r--r--contrib/tools/python3/src/Objects/codeobject.c596
-rw-r--r--contrib/tools/python3/src/Objects/complexobject.c60
-rw-r--r--contrib/tools/python3/src/Objects/descrobject.c930
-rw-r--r--contrib/tools/python3/src/Objects/dictobject.c1642
-rw-r--r--contrib/tools/python3/src/Objects/enumobject.c44
-rw-r--r--contrib/tools/python3/src/Objects/exceptions.c652
-rw-r--r--contrib/tools/python3/src/Objects/fileobject.c182
-rw-r--r--contrib/tools/python3/src/Objects/floatobject.c212
-rw-r--r--contrib/tools/python3/src/Objects/frameobject.c1068
-rw-r--r--contrib/tools/python3/src/Objects/funcobject.c210
-rw-r--r--contrib/tools/python3/src/Objects/genericaliasobject.c1310
-rw-r--r--contrib/tools/python3/src/Objects/genobject.c278
-rw-r--r--contrib/tools/python3/src/Objects/interpreteridobject.c576
-rw-r--r--contrib/tools/python3/src/Objects/iterobject.c28
-rw-r--r--contrib/tools/python3/src/Objects/listobject.c554
-rw-r--r--contrib/tools/python3/src/Objects/longobject.c1258
-rw-r--r--contrib/tools/python3/src/Objects/memoryobject.c248
-rw-r--r--contrib/tools/python3/src/Objects/methodobject.c602
-rw-r--r--contrib/tools/python3/src/Objects/moduleobject.c184
-rw-r--r--contrib/tools/python3/src/Objects/namespaceobject.c22
-rw-r--r--contrib/tools/python3/src/Objects/object.c1140
-rw-r--r--contrib/tools/python3/src/Objects/obmalloc.c1050
-rw-r--r--contrib/tools/python3/src/Objects/odictobject.c350
-rw-r--r--contrib/tools/python3/src/Objects/picklebufobject.c438
-rw-r--r--contrib/tools/python3/src/Objects/rangeobject.c212
-rw-r--r--contrib/tools/python3/src/Objects/setobject.c396
-rw-r--r--contrib/tools/python3/src/Objects/sliceobject.c26
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/asciilib.h2
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/clinic/transmogrify.h.h554
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/codecs.h92
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/ctype.h28
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/eq.h10
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/fastsearch.h4
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/find_max_char.h2
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/join.h84
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/localeutil.h2
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/split.h2
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/transmogrify.h160
-rw-r--r--contrib/tools/python3/src/Objects/stringlib/unicode_format.h24
-rw-r--r--contrib/tools/python3/src/Objects/structseq.c516
-rw-r--r--contrib/tools/python3/src/Objects/tupleobject.c388
-rw-r--r--contrib/tools/python3/src/Objects/typeobject.c2216
-rw-r--r--contrib/tools/python3/src/Objects/typeslots.inc4
-rw-r--r--contrib/tools/python3/src/Objects/unicodeobject.c3402
-rw-r--r--contrib/tools/python3/src/Objects/unicodetype_db.h2484
-rw-r--r--contrib/tools/python3/src/Objects/weakrefobject.c272
-rw-r--r--contrib/tools/python3/src/PC/clinic/msvcrtmodule.c.h270
-rw-r--r--contrib/tools/python3/src/PC/clinic/winreg.c.h118
-rw-r--r--contrib/tools/python3/src/PC/clinic/winsound.c.h116
-rw-r--r--contrib/tools/python3/src/PC/dl_nt.c2
-rw-r--r--contrib/tools/python3/src/PC/errmap.h274
-rw-r--r--contrib/tools/python3/src/PC/getpathp.c722
-rw-r--r--contrib/tools/python3/src/PC/msvcrtmodule.c24
-rw-r--r--contrib/tools/python3/src/PC/pyconfig.h42
-rw-r--r--contrib/tools/python3/src/PC/python_ver_rc.h4
-rw-r--r--contrib/tools/python3/src/PC/winreg.c386
-rw-r--r--contrib/tools/python3/src/Parser/acceler.c16
-rw-r--r--contrib/tools/python3/src/Parser/grammar1.c6
-rw-r--r--contrib/tools/python3/src/Parser/listnode.c32
-rw-r--r--contrib/tools/python3/src/Parser/myreadline.c190
-rw-r--r--contrib/tools/python3/src/Parser/node.c52
-rw-r--r--contrib/tools/python3/src/Parser/parser.c64
-rw-r--r--contrib/tools/python3/src/Parser/parser.h20
-rw-r--r--contrib/tools/python3/src/Parser/parsetok.c330
-rw-r--r--contrib/tools/python3/src/Parser/pegen/parse.c51188
-rw-r--r--contrib/tools/python3/src/Parser/pegen/parse_string.c2458
-rw-r--r--contrib/tools/python3/src/Parser/pegen/parse_string.h92
-rw-r--r--contrib/tools/python3/src/Parser/pegen/peg_api.c108
-rw-r--r--contrib/tools/python3/src/Parser/pegen/pegen.c4560
-rw-r--r--contrib/tools/python3/src/Parser/pegen/pegen.h614
-rw-r--r--contrib/tools/python3/src/Parser/token.c486
-rw-r--r--contrib/tools/python3/src/Parser/tokenizer.c688
-rw-r--r--contrib/tools/python3/src/Parser/tokenizer.h50
-rw-r--r--contrib/tools/python3/src/Programs/_freeze_importlib.c78
-rw-r--r--contrib/tools/python3/src/Programs/python.c2
-rw-r--r--contrib/tools/python3/src/Python/Python-ast.c10050
-rw-r--r--contrib/tools/python3/src/Python/_warnings.c602
-rw-r--r--contrib/tools/python3/src/Python/ast.c2418
-rw-r--r--contrib/tools/python3/src/Python/ast_opt.c178
-rw-r--r--contrib/tools/python3/src/Python/ast_unparse.c242
-rw-r--r--contrib/tools/python3/src/Python/bltinmodule.c450
-rw-r--r--contrib/tools/python3/src/Python/bootstrap_hash.c88
-rw-r--r--contrib/tools/python3/src/Python/ceval.c3820
-rw-r--r--contrib/tools/python3/src/Python/ceval_gil.h320
-rw-r--r--contrib/tools/python3/src/Python/clinic/_warnings.c.h82
-rw-r--r--contrib/tools/python3/src/Python/clinic/bltinmodule.c.h436
-rw-r--r--contrib/tools/python3/src/Python/clinic/context.c.h104
-rw-r--r--contrib/tools/python3/src/Python/clinic/import.c.h152
-rw-r--r--contrib/tools/python3/src/Python/clinic/marshal.c.h78
-rw-r--r--contrib/tools/python3/src/Python/clinic/sysmodule.c.h1830
-rw-r--r--contrib/tools/python3/src/Python/clinic/traceback.c.h62
-rw-r--r--contrib/tools/python3/src/Python/codecs.c172
-rw-r--r--contrib/tools/python3/src/Python/compile.c3216
-rw-r--r--contrib/tools/python3/src/Python/condvar.h28
-rw-r--r--contrib/tools/python3/src/Python/context.c194
-rw-r--r--contrib/tools/python3/src/Python/dtoa.c76
-rw-r--r--contrib/tools/python3/src/Python/dynload_shlib.c16
-rw-r--r--contrib/tools/python3/src/Python/dynload_win.c40
-rw-r--r--contrib/tools/python3/src/Python/errors.c1514
-rw-r--r--contrib/tools/python3/src/Python/fileutils.c1160
-rw-r--r--contrib/tools/python3/src/Python/formatter_unicode.c84
-rw-r--r--contrib/tools/python3/src/Python/frozen.c32
-rw-r--r--contrib/tools/python3/src/Python/frozenmain.c30
-rw-r--r--contrib/tools/python3/src/Python/future.c8
-rw-r--r--contrib/tools/python3/src/Python/getargs.c914
-rw-r--r--contrib/tools/python3/src/Python/getcopyright.c2
-rw-r--r--contrib/tools/python3/src/Python/getopt.c70
-rw-r--r--contrib/tools/python3/src/Python/graminit.c3588
-rw-r--r--contrib/tools/python3/src/Python/hamt.c44
-rw-r--r--contrib/tools/python3/src/Python/hashtable.c834
-rw-r--r--contrib/tools/python3/src/Python/import.c968
-rw-r--r--contrib/tools/python3/src/Python/importdl.c20
-rw-r--r--contrib/tools/python3/src/Python/importlib.h3614
-rw-r--r--contrib/tools/python3/src/Python/importlib_external.h5646
-rw-r--r--contrib/tools/python3/src/Python/importlib_zipimport.h2158
-rw-r--r--contrib/tools/python3/src/Python/initconfig.c5530
-rw-r--r--contrib/tools/python3/src/Python/marshal.c298
-rw-r--r--contrib/tools/python3/src/Python/modsupport.c84
-rw-r--r--contrib/tools/python3/src/Python/mysnprintf.c44
-rw-r--r--contrib/tools/python3/src/Python/mystrtoul.c6
-rw-r--r--contrib/tools/python3/src/Python/opcode_targets.h46
-rw-r--r--contrib/tools/python3/src/Python/pathconfig.c1046
-rw-r--r--contrib/tools/python3/src/Python/peephole.c172
-rw-r--r--contrib/tools/python3/src/Python/preconfig.c1936
-rw-r--r--contrib/tools/python3/src/Python/pyarena.c6
-rw-r--r--contrib/tools/python3/src/Python/pyhash.c36
-rw-r--r--contrib/tools/python3/src/Python/pylifecycle.c2512
-rw-r--r--contrib/tools/python3/src/Python/pymath.c30
-rw-r--r--contrib/tools/python3/src/Python/pystate.c2340
-rw-r--r--contrib/tools/python3/src/Python/pystrcmp.c22
-rw-r--r--contrib/tools/python3/src/Python/pystrhex.c284
-rw-r--r--contrib/tools/python3/src/Python/pystrtod.c12
-rw-r--r--contrib/tools/python3/src/Python/pythonrun.c1058
-rw-r--r--contrib/tools/python3/src/Python/pytime.c92
-rw-r--r--contrib/tools/python3/src/Python/structmember.c2
-rw-r--r--contrib/tools/python3/src/Python/symtable.c494
-rw-r--r--contrib/tools/python3/src/Python/sysmodule.c2818
-rw-r--r--contrib/tools/python3/src/Python/thread.c6
-rw-r--r--contrib/tools/python3/src/Python/thread_nt.h76
-rw-r--r--contrib/tools/python3/src/Python/thread_pthread.h360
-rw-r--r--contrib/tools/python3/src/Python/traceback.c170
-rw-r--r--contrib/tools/python3/src/ya.make32
-rw-r--r--contrib/tools/python3/ya.make8
-rw-r--r--contrib/tools/yasm/ya.make4
979 files changed, 241226 insertions, 241226 deletions
diff --git a/contrib/tools/bison/ya.make b/contrib/tools/bison/ya.make
index 929bdd97fd..26f5d96df1 100644
--- a/contrib/tools/bison/ya.make
+++ b/contrib/tools/bison/ya.make
@@ -1,5 +1,5 @@
-VERSION(3.0)
-
+VERSION(3.0)
+
RECURSE(
bison
gnulib
diff --git a/contrib/tools/cython/.dist-info/METADATA b/contrib/tools/cython/.dist-info/METADATA
index 0f1cf42980..fd1785959a 100644
--- a/contrib/tools/cython/.dist-info/METADATA
+++ b/contrib/tools/cython/.dist-info/METADATA
@@ -1,60 +1,60 @@
-Metadata-Version: 2.1
-Name: Cython
-Version: 0.29.27
-Summary: The Cython compiler for writing C extensions for the Python language.
-Home-page: http://cython.org/
-Author: Robert Bradshaw, Stefan Behnel, Dag Seljebotn, Greg Ewing, et al.
-Author-email: cython-devel@python.org
-License: Apache
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Apache Software License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
-Classifier: Programming Language :: Python :: 3.10
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Programming Language :: C
-Classifier: Programming Language :: Cython
-Classifier: Topic :: Software Development :: Code Generators
-Classifier: Topic :: Software Development :: Compilers
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*
-License-File: LICENSE.txt
-License-File: COPYING.txt
-
-The Cython language makes writing C extensions for the Python language as
-easy as Python itself. Cython is a source code translator based on Pyrex_,
-but supports more cutting edge functionality and optimizations.
-
-The Cython language is a superset of the Python language (almost all Python
-code is also valid Cython code), but Cython additionally supports optional
-static typing to natively call C functions, operate with C++ classes and
-declare fast C types on variables and class attributes. This allows the
-compiler to generate very efficient C code from Cython code.
-
-This makes Cython the ideal language for writing glue code for external
-C/C++ libraries, and for fast C modules that speed up the execution of
-Python code.
-
-Note that for one-time builds, e.g. for CI/testing, on platforms that are not
-covered by one of the wheel packages provided on PyPI *and* the pure Python wheel
-that we provide is not used, it is substantially faster than a full source build
-to install an uncompiled (slower) version of Cython with::
-
- pip install Cython --install-option="--no-cython-compile"
-
-.. _Pyrex: http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
-
-
+Metadata-Version: 2.1
+Name: Cython
+Version: 0.29.27
+Summary: The Cython compiler for writing C extensions for the Python language.
+Home-page: http://cython.org/
+Author: Robert Bradshaw, Stefan Behnel, Dag Seljebotn, Greg Ewing, et al.
+Author-email: cython-devel@python.org
+License: Apache
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Programming Language :: C
+Classifier: Programming Language :: Cython
+Classifier: Topic :: Software Development :: Code Generators
+Classifier: Topic :: Software Development :: Compilers
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*
+License-File: LICENSE.txt
+License-File: COPYING.txt
+
+The Cython language makes writing C extensions for the Python language as
+easy as Python itself. Cython is a source code translator based on Pyrex_,
+but supports more cutting edge functionality and optimizations.
+
+The Cython language is a superset of the Python language (almost all Python
+code is also valid Cython code), but Cython additionally supports optional
+static typing to natively call C functions, operate with C++ classes and
+declare fast C types on variables and class attributes. This allows the
+compiler to generate very efficient C code from Cython code.
+
+This makes Cython the ideal language for writing glue code for external
+C/C++ libraries, and for fast C modules that speed up the execution of
+Python code.
+
+Note that for one-time builds, e.g. for CI/testing, on platforms that are not
+covered by one of the wheel packages provided on PyPI *and* the pure Python wheel
+that we provide is not used, it is substantially faster than a full source build
+to install an uncompiled (slower) version of Cython with::
+
+ pip install Cython --install-option="--no-cython-compile"
+
+.. _Pyrex: http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
+
+
diff --git a/contrib/tools/cython/.dist-info/entry_points.txt b/contrib/tools/cython/.dist-info/entry_points.txt
index d35e343d4d..696613646a 100644
--- a/contrib/tools/cython/.dist-info/entry_points.txt
+++ b/contrib/tools/cython/.dist-info/entry_points.txt
@@ -1,5 +1,5 @@
-[console_scripts]
-cygdb = Cython.Debugger.Cygdb:main
-cython = Cython.Compiler.Main:setuptools_main
-cythonize = Cython.Build.Cythonize:main
-
+[console_scripts]
+cygdb = Cython.Debugger.Cygdb:main
+cython = Cython.Compiler.Main:setuptools_main
+cythonize = Cython.Build.Cythonize:main
+
diff --git a/contrib/tools/cython/.dist-info/top_level.txt b/contrib/tools/cython/.dist-info/top_level.txt
index e75ee8909c..48cccd7fc2 100644
--- a/contrib/tools/cython/.dist-info/top_level.txt
+++ b/contrib/tools/cython/.dist-info/top_level.txt
@@ -1,3 +1,3 @@
-Cython
-cython
-pyximport
+Cython
+cython
+pyximport
diff --git a/contrib/tools/cython/CHANGES.rst b/contrib/tools/cython/CHANGES.rst
index 8ceddddffb..77d8d6262f 100644
--- a/contrib/tools/cython/CHANGES.rst
+++ b/contrib/tools/cython/CHANGES.rst
@@ -2,498 +2,498 @@
Cython Changelog
================
-0.29.27 (2022-01-28)
-====================
-
-Features added
---------------
-
-* The ``cythonize`` command has a new option ``-M`` to generate ``.dep`` dependency
- files for the compilation unit. This can be used by external build tools to track
- these dependencies.
- Patch by Evgeni Burovski. (Github issue #1214)
-
-Bugs fixed
-----------
-
-* Compilation failures on PyPy were resolved.
- Patches by Matti Picus. (Github issues #4509, #4517)
-
-* Calls to ``range()`` with more than three arguments did not fail.
- Original patch by Max Bachmann. (Github issue #4550)
-
-* Some C compiler warnings about missing type struct initialisers in Py3.10 were resolved.
-
-* Cython no longer warns about using OpenMP 3.0 features since they are now
- considered generally available.
-
-
-0.29.26 (2021-12-16)
-====================
-
-Bugs fixed
-----------
-
-* An incompatibility with CPython 3.11.0a3 was resolved.
- (Github issue #4499)
-
-* The ``in`` operator failed on literal lists with starred expressions.
- Patch by Arvind Natarajan. (Github issue #3938)
-
-* A C compiler warning in PyPy about a missing struct field initialisation was resolved.
-
-
-0.29.25 (2021-12-06)
-====================
-
-Bugs fixed
-----------
-
-* Several incompatibilities with CPython 3.11 were resolved.
- Patches by David Woods, Victor Stinner, Thomas Caswell.
- (Github issues #4411, #4414, #4415, #4416, #4420, #4428, #4473, #4479, #4480)
-
-* Some C compiler warnings were resolved.
- Patches by Lisandro Dalcin and others. (Github issue #4439)
-
-* C++ ``std::move()`` should only be used automatically in MSVC versions that support it.
- Patch by Max Bachmann. (Github issue #4191)
-
- * The ``Py_hash_t`` type failed to accept arbitrary "index" values.
- (Github issue #2752)
-
-* Avoid copying unaligned 16-bit values since some platforms require them to be aligned.
- Use memcpy() instead to let the C compiler decide how to do it.
- (Github issue #4343)
-
-* Cython crashed on invalid truthiness tests on C++ types without ``operator bool``.
- Patch by David Woods. (Github issue #4348)
-
-* The declaration of ``PyUnicode_CompareWithASCIIString()`` in ``cpython.unicode`` was incorrect.
- Patch by Max Bachmann. (Github issue #4344)
-
-
-0.29.24 (2021-07-14)
-====================
-
-Bugs fixed
-----------
-
-* Inline functions in pxd files that used memory views could lead to invalid
- C code if the module that imported from them does not use memory views.
- Patch by David Woods. (Github issue #1415)
-
-* Several declarations in ``libcpp.string`` were added and corrected.
- Patch by Janek Bevendorff. (Github issue #4268)
-
-* Pickling unbound Cython compiled methods failed.
- Patch by Pierre Glaser. (Github issue #2972)
-
-* The tracing code was adapted to work with CPython 3.10.
-
-* The optimised ``in`` operator failed on unicode strings in Py3.9 and later
- that were constructed from an external ``wchar_t`` source.
- Also, related C compiler warnings about deprecated C-API usage were resolved.
- (Github issue #3925)
-
-* Some compiler crashes were resolved.
- Patch by David Woods. (Github issues #4214, #2811)
-
-* An incorrect warning about 'unused' generator expressions was removed.
- (GIthub issue #1699)
-
-* The attributes ``gen.gi_frame`` and ``coro.cr_frame`` of Cython compiled
- generators and coroutines now return an actual frame object for introspection,
- instead of ``None``.
- (Github issue #2306)
-
-
-0.29.23 (2021-04-14)
-====================
-
-Bugs fixed
-----------
-
-* Some problems with Python 3.10 were resolved.
- Patches by Victor Stinner and David Woods. (Github issues #4046, #4100)
-
-* An incorrect "optimisation" was removed that allowed changes to a keyword
- dict to leak into keyword arguments passed into a function.
- Patch by Peng Weikang. (Github issue #3227)
-
-* Multiplied str constants could end up as bytes constants with language_level=2.
- Patch by Alphadelta14 and David Woods. (Github issue #3951)
-
-* ``PY_SSIZE_T_CLEAN`` does not get defined any more if it is already defined.
- Patch by Andrew Jones. (Github issue #4104)
-
-
-0.29.22 (2021-02-20)
-====================
-
-Features added
---------------
-
-* Some declarations were added to the provided pxd includes.
- Patches by Zackery Spytz and John Kirkham.
- (Github issues #3811, #3882, #3899, #3901)
-
-Bugs fixed
-----------
-
-* A crash when calling certain functions in Py3.9 and later was resolved.
- (Github issue #3917)
-
-* ``const`` memory views of structs failed to compile.
- (Github issue #2251)
-
-* ``const`` template declarations could not be nested.
- Patch by Ashwin Srinath. (Github issue #1355)
-
-* The declarations in the ``cpython.pycapsule`` module were missing their
- ``const`` modifiers and generated incorrect C code.
- Patch by Warren Weckesser. (Github issue #3964)
-
-* Casts to memory views failed for fused dtypes.
- Patch by David Woods. (Github issue #3881)
-
-* ``repr()`` was assumed to return ``str`` instead of ``unicode`` with ``language_level=3``.
- (Github issue #3736)
-
-* Calling ``cpdef`` functions from cimported modules crashed the compiler.
- Patch by David Woods. (Github issue #4000)
-
-* Cython no longer validates the ABI size of the NumPy classes it compiled against.
- See the discussion in https://github.com/numpy/numpy/pull/432
-
-* A C compiler warning about enum value casting was resolved in GCC.
- (Github issue #2749)
-
-* Coverage reporting in the annotated HTML file failed in Py3.9.
- Patch by Nick Pope. (Github issue #3865)
-
-* The embedding code now reports Python errors as exit status.
-
-* Long type declarations could lead to (harmless) random changes in the
- C file when used in auto-generated Python wrappers or pickled classes.
-
-Other changes
--------------
-
-* Variables defined as ``cpdef`` now generate a warning since this
- is currently useless and thus does not do what users would expect.
- Patch by David Woods. (Github issue #3959)
-
-
-0.29.21 (2020-07-09)
-====================
-
-Bugs fixed
-----------
-
-* Fix a regression in 0.29.20 where ``__div__`` failed to be found in extension types.
- (Github issue #3688)
-
-* Fix a regression in 0.29.20 where a call inside of a finally clause could fail to compile.
- Patch by David Woods. (Github issue #3712)
-
-* Zero-sized buffers could fail to validate as C/Fortran-contiguous.
- Patch by Clemens Hofreither. (Github issue #2093)
-
-* ``exec()`` did not allow recent Python syntax features in Py3.8+ due to
- https://bugs.python.org/issue35975.
- (Github issue #3695)
-
-* Binding staticmethods of Cython functions were not behaving like Python methods in Py3.
- Patch by Jeroen Demeyer and Michał Górny. (Github issue #3106)
-
-* Pythran calls to NumPy methods no longer generate useless method lookup code.
-
-* The ``PyUnicode_GET_LENGTH()`` macro was missing from the ``cpython.*`` declarations.
- Patch by Thomas Caswell. (Github issue #3692)
-
-* The deprecated ``PyUnicode_*()`` C-API functions are no longer used, except for Unicode
- strings that contain lone surrogates. Unicode strings that contain non-BMP characters
- or surrogate pairs now generate different C code on 16-bit Python 2.x Unicode deployments
- (such as MS-Windows). Generating the C code on Python 3.x is recommended in this case.
- Original patches by Inada Naoki and Victor Stinner. (Github issues #3677, #3721, #3697)
-
-* Some template parameters were missing from the C++ ``std::unordered_map`` declaration.
- Patch by will. (Github issue #3685)
-
-* Several internal code generation issues regarding temporary variables were resolved.
- (Github issue #3708)
-
-
-0.29.20 (2020-06-10)
-====================
-
-Bugs fixed
-----------
-
-* Nested try-except statements with multiple ``return`` statements could crash
- due to incorrect deletion of the ``except as`` target variable.
- (Github issue #3666)
-
-* The ``@classmethod`` decorator no longer rejects unknown input from other decorators.
- Patch by David Woods. (Github issue #3660)
-
-* Fused types could leak into unrelated usages.
- Patch by David Woods. (Github issue #3642)
-
-* Now uses ``Py_SET_SIZE()`` and ``Py_SET_REFCNT()`` in Py3.9+ to avoid low-level
- write access to these object fields.
- Patch by Victor Stinner. (Github issue #3639)
-
-* The built-in ``abs()`` function could lead to undefined behaviour when used on
- the negative-most value of a signed C integer type.
- Patch by Serge Guelton. (Github issue #1911)
-
-* Usages of ``sizeof()`` and ``typeid()`` on uninitialised variables no longer
- produce a warning.
- Patch by Celelibi. (Github issue #3575)
-
-* The C++ ``typeid()`` function was allowed in C mode.
- Patch by Celelibi. (Github issue #3637)
-
-* The error position reported for errors found in f-strings was misleading.
- (Github issue #3674)
-
-* The new ``c_api_binop_methods`` directive was added for forward compatibility, but can
- only be set to True (the current default value). It can be disabled in Cython 3.0.
-
-
-0.29.19 (2020-05-20)
-====================
-
-Bugs fixed
-----------
-
-* A typo in Windows specific code in 0.29.18 was fixed that broke "libc.math".
- (Github issue #3622)
-
-* A platform specific test failure in 0.29.18 was fixed.
- Patch by smutch. (Github issue #3620)
-
-
-0.29.18 (2020-05-18)
-====================
-
-Bugs fixed
-----------
-
-* Exception position reporting could run into race conditions on threaded code.
- It now uses function-local variables again.
-
-* Error handling early in the module init code could lead to a crash.
-
-* Error handling in ``cython.array`` creation was improved to avoid calling
- C-API functions with an error held.
-
-* A memory corruption was fixed when garbage collection was triggered during calls
- to ``PyType_Ready()`` of extension type subclasses.
- (Github issue #3603)
-
-* Memory view slicing generated unused error handling code which could negatively
- impact the C compiler optimisations for parallel OpenMP code etc. Also, it is
- now helped by static branch hints.
- (Github issue #2987)
-
-* Cython's built-in OpenMP functions were not translated inside of call arguments.
- Original patch by Celelibi and David Woods. (Github issue #3594)
-
-* Complex buffer item types of structs of arrays could fail to validate.
- Patch by Leo and smutch. (Github issue #1407)
-
-* Decorators were not allowed on nested `async def` functions.
- (Github issue #1462)
-
-* C-tuples could use invalid C struct casting.
- Patch by MegaIng. (Github issue #3038)
-
-* Optimised ``%d`` string formatting into f-strings failed on float values.
- (Github issue #3092)
-
-* Optimised aligned string formatting (``%05s``, ``%-5s``) failed.
- (Github issue #3476)
-
-* When importing the old Cython ``build_ext`` integration with distutils, the
- additional command line arguments leaked into the regular command.
- Patch by Kamekameha. (Github issue #2209)
-
-* When using the ``CYTHON_NO_PYINIT_EXPORT`` option in C++, the module init function
- was not declared as ``extern "C"``.
- (Github issue #3414)
-
-* Three missing timedelta access macros were added in ``cpython.datetime``.
-
-* The signature of the NumPy C-API function ``PyArray_SearchSorted()`` was fixed.
- Patch by Brock Mendel. (Github issue #3606)
-
-
-0.29.17 (2020-04-26)
-====================
-
-Features added
---------------
-
-* ``std::move()`` is now available from ``libcpp.utility``.
- Patch by Omer Ozarslan. (Github issue #2169)
-
-* The ``@cython.binding`` decorator is available in Python code.
- (Github issue #3505)
-
-Bugs fixed
-----------
-
-* Creating an empty unicode slice with large bounds could crash.
- Patch by Sam Sneddon. (Github issue #3531)
-
-* Decoding an empty bytes/char* slice with large bounds could crash.
- Patch by Sam Sneddon. (Github issue #3534)
-
-* Re-importing a Cython extension no longer raises the error
- "``__reduce_cython__ not found``".
- (Github issue #3545)
-
-* Unused C-tuples could generate incorrect code in 0.29.16.
- Patch by Kirk Meyer. (Github issue #3543)
-
-* Creating a fused function attached it to the garbage collector before it
- was fully initialised, thus risking crashes in rare failure cases.
- Original patch by achernomorov. (Github issue #3215)
-
-* Temporary buffer indexing variables were not released and could show up in
- C compiler warnings, e.g. in generators.
- Patch by David Woods. (Github issues #3430, #3522)
-
-* The compilation cache in ``cython.inline("…")`` failed to take the language
- level into account.
- Patch by will-ca. (Github issue #3419)
-
-* The deprecated ``PyUnicode_GET_SIZE()`` function is no longer used in Py3.
-
-
-0.29.16 (2020-03-24)
-====================
-
-Bugs fixed
-----------
-
-* Temporary internal variables in nested prange loops could leak into other
- threads. Patch by Frank Schlimbach. (Github issue #3348)
-
-* Default arguments on fused functions could crash.
- Patch by David Woods. (Github issue #3370)
-
-* C-tuples declared in ``.pxd`` files could generate incomplete C code.
- Patch by Kirk Meyer. (Github issue #1427)
-
-* Fused functions were not always detected and optimised as Cython
- implemented functions.
- Patch by David Woods. (Github issue #3384)
-
-* Valid Python object concatenation of (iterable) strings to non-strings
- could fail with an exception.
- Patch by David Woods. (Github issue #3433)
-
-* Using C functions as temporary values lead to invalid C code.
- Original patch by David Woods. (Github issue #3418)
-
-* Fix an unhandled C++ exception in comparisons.
- Patch by David Woods. (Github issue #3361)
-
-* Fix deprecated import of "imp" module.
- Patch by Matti Picus. (Github issue #3350)
-
-* Fix compatibility with Pythran 0.9.6 and later.
- Patch by Serge Guelton. (Github issue #3308)
-
-* The ``_Py_PyAtExit()`` function in ``cpython.pylifecycle`` was misdeclared.
- Patch by Zackery Spytz. (Github issue #3382)
-
-* Several missing declarations in ``cpython.*`` were added.
- Patches by Zackery Spytz. (Github issue #3452, #3421, #3411, #3402)
-
-* A declaration for ``libc.math.fpclassify()`` was added.
- Patch by Zackery Spytz. (Github issue #2514)
-
-* Avoid "undeclared" warning about automatically generated pickle methods.
- Patch by David Woods. (Github issue #3353)
-
-* Avoid C compiler warning about unreachable code in ``prange()``.
-
-* Some C compiler warnings in PyPy were resolved.
- Patch by Matti Picus. (Github issue #3437)
-
-
-0.29.15 (2020-02-06)
-====================
-
-Bugs fixed
-----------
-
-* Crash when returning a temporary Python object from an async-def function.
- (Github issue #3337)
-
-* Crash when using ``**kwargs`` in generators.
- Patch by David Woods. (Github issue #3265)
-
-* Double reference free in ``__class__`` cell handling for ``super()`` calls.
- (Github issue #3246)
-
-* Compile error when using ``*args`` as Python class bases.
- (Github issue #3338)
-
-* Import failure in IPython 7.11.
- (Github issue #3297)
-
-* Fixed C name collision in the auto-pickle code.
- Patch by ThePrez. (Github issue #3238)
-
-* Deprecated import failed in Python 3.9.
- (Github issue #3266)
-
-
-0.29.14 (2019-11-01)
-====================
-
-Bugs fixed
-----------
-
-* The generated code failed to initialise the ``tp_print`` slot in CPython 3.8.
- Patches by Pablo Galindo and Orivej Desh. (Github issues #3171, #3201)
-
-* ``?`` for ``bool`` was missing from the supported NumPy dtypes.
- Patch by Max Klein. (Github issue #2675)
-
-* ``await`` was not allowed inside of f-strings.
- Patch by Dmitro Getz. (Github issue #2877)
-
-* Coverage analysis failed for projects where the code resides in separate
- source sub-directories.
- Patch by Antonio Valentino. (Github issue #1985)
-
-* An incorrect compiler warning was fixed in automatic C++ string conversions.
- Patch by Gerion Entrup. (Github issue #3108)
-
-* Error reports in the Jupyter notebook showed unhelpful stack traces.
- Patch by Matthew Edwards (Github issue #3196).
-
-* ``Python.h`` is now also included explicitly from ``public`` header files.
- (Github issue #3133).
-
-* Distutils builds with ``--parallel`` did not work when using Cython's
- deprecated ``build_ext`` command.
- Patch by Alphadelta14 (Github issue #3187).
-
-Other changes
--------------
-
-* The ``PyMemoryView_*()`` C-API is available in ``cpython.memoryview``.
- Patch by Nathan Manville. (Github issue #2541)
-
-
+0.29.27 (2022-01-28)
+====================
+
+Features added
+--------------
+
+* The ``cythonize`` command has a new option ``-M`` to generate ``.dep`` dependency
+ files for the compilation unit. This can be used by external build tools to track
+ these dependencies.
+ Patch by Evgeni Burovski. (Github issue #1214)
+
+Bugs fixed
+----------
+
+* Compilation failures on PyPy were resolved.
+ Patches by Matti Picus. (Github issues #4509, #4517)
+
+* Calls to ``range()`` with more than three arguments did not fail.
+ Original patch by Max Bachmann. (Github issue #4550)
+
+* Some C compiler warnings about missing type struct initialisers in Py3.10 were resolved.
+
+* Cython no longer warns about using OpenMP 3.0 features since they are now
+ considered generally available.
+
+
+0.29.26 (2021-12-16)
+====================
+
+Bugs fixed
+----------
+
+* An incompatibility with CPython 3.11.0a3 was resolved.
+ (Github issue #4499)
+
+* The ``in`` operator failed on literal lists with starred expressions.
+ Patch by Arvind Natarajan. (Github issue #3938)
+
+* A C compiler warning in PyPy about a missing struct field initialisation was resolved.
+
+
+0.29.25 (2021-12-06)
+====================
+
+Bugs fixed
+----------
+
+* Several incompatibilities with CPython 3.11 were resolved.
+ Patches by David Woods, Victor Stinner, Thomas Caswell.
+ (Github issues #4411, #4414, #4415, #4416, #4420, #4428, #4473, #4479, #4480)
+
+* Some C compiler warnings were resolved.
+ Patches by Lisandro Dalcin and others. (Github issue #4439)
+
+* C++ ``std::move()`` should only be used automatically in MSVC versions that support it.
+ Patch by Max Bachmann. (Github issue #4191)
+
+ * The ``Py_hash_t`` type failed to accept arbitrary "index" values.
+ (Github issue #2752)
+
+* Avoid copying unaligned 16-bit values since some platforms require them to be aligned.
+ Use memcpy() instead to let the C compiler decide how to do it.
+ (Github issue #4343)
+
+* Cython crashed on invalid truthiness tests on C++ types without ``operator bool``.
+ Patch by David Woods. (Github issue #4348)
+
+* The declaration of ``PyUnicode_CompareWithASCIIString()`` in ``cpython.unicode`` was incorrect.
+ Patch by Max Bachmann. (Github issue #4344)
+
+
+0.29.24 (2021-07-14)
+====================
+
+Bugs fixed
+----------
+
+* Inline functions in pxd files that used memory views could lead to invalid
+ C code if the module that imported from them does not use memory views.
+ Patch by David Woods. (Github issue #1415)
+
+* Several declarations in ``libcpp.string`` were added and corrected.
+ Patch by Janek Bevendorff. (Github issue #4268)
+
+* Pickling unbound Cython compiled methods failed.
+ Patch by Pierre Glaser. (Github issue #2972)
+
+* The tracing code was adapted to work with CPython 3.10.
+
+* The optimised ``in`` operator failed on unicode strings in Py3.9 and later
+ that were constructed from an external ``wchar_t`` source.
+ Also, related C compiler warnings about deprecated C-API usage were resolved.
+ (Github issue #3925)
+
+* Some compiler crashes were resolved.
+ Patch by David Woods. (Github issues #4214, #2811)
+
+* An incorrect warning about 'unused' generator expressions was removed.
+ (GIthub issue #1699)
+
+* The attributes ``gen.gi_frame`` and ``coro.cr_frame`` of Cython compiled
+ generators and coroutines now return an actual frame object for introspection,
+ instead of ``None``.
+ (Github issue #2306)
+
+
+0.29.23 (2021-04-14)
+====================
+
+Bugs fixed
+----------
+
+* Some problems with Python 3.10 were resolved.
+ Patches by Victor Stinner and David Woods. (Github issues #4046, #4100)
+
+* An incorrect "optimisation" was removed that allowed changes to a keyword
+ dict to leak into keyword arguments passed into a function.
+ Patch by Peng Weikang. (Github issue #3227)
+
+* Multiplied str constants could end up as bytes constants with language_level=2.
+ Patch by Alphadelta14 and David Woods. (Github issue #3951)
+
+* ``PY_SSIZE_T_CLEAN`` does not get defined any more if it is already defined.
+ Patch by Andrew Jones. (Github issue #4104)
+
+
+0.29.22 (2021-02-20)
+====================
+
+Features added
+--------------
+
+* Some declarations were added to the provided pxd includes.
+ Patches by Zackery Spytz and John Kirkham.
+ (Github issues #3811, #3882, #3899, #3901)
+
+Bugs fixed
+----------
+
+* A crash when calling certain functions in Py3.9 and later was resolved.
+ (Github issue #3917)
+
+* ``const`` memory views of structs failed to compile.
+ (Github issue #2251)
+
+* ``const`` template declarations could not be nested.
+ Patch by Ashwin Srinath. (Github issue #1355)
+
+* The declarations in the ``cpython.pycapsule`` module were missing their
+ ``const`` modifiers and generated incorrect C code.
+ Patch by Warren Weckesser. (Github issue #3964)
+
+* Casts to memory views failed for fused dtypes.
+ Patch by David Woods. (Github issue #3881)
+
+* ``repr()`` was assumed to return ``str`` instead of ``unicode`` with ``language_level=3``.
+ (Github issue #3736)
+
+* Calling ``cpdef`` functions from cimported modules crashed the compiler.
+ Patch by David Woods. (Github issue #4000)
+
+* Cython no longer validates the ABI size of the NumPy classes it compiled against.
+ See the discussion in https://github.com/numpy/numpy/pull/432
+
+* A C compiler warning about enum value casting was resolved in GCC.
+ (Github issue #2749)
+
+* Coverage reporting in the annotated HTML file failed in Py3.9.
+ Patch by Nick Pope. (Github issue #3865)
+
+* The embedding code now reports Python errors as exit status.
+
+* Long type declarations could lead to (harmless) random changes in the
+ C file when used in auto-generated Python wrappers or pickled classes.
+
+Other changes
+-------------
+
+* Variables defined as ``cpdef`` now generate a warning since this
+ is currently useless and thus does not do what users would expect.
+ Patch by David Woods. (Github issue #3959)
+
+
+0.29.21 (2020-07-09)
+====================
+
+Bugs fixed
+----------
+
+* Fix a regression in 0.29.20 where ``__div__`` failed to be found in extension types.
+ (Github issue #3688)
+
+* Fix a regression in 0.29.20 where a call inside of a finally clause could fail to compile.
+ Patch by David Woods. (Github issue #3712)
+
+* Zero-sized buffers could fail to validate as C/Fortran-contiguous.
+ Patch by Clemens Hofreither. (Github issue #2093)
+
+* ``exec()`` did not allow recent Python syntax features in Py3.8+ due to
+ https://bugs.python.org/issue35975.
+ (Github issue #3695)
+
+* Binding staticmethods of Cython functions were not behaving like Python methods in Py3.
+ Patch by Jeroen Demeyer and Michał Górny. (Github issue #3106)
+
+* Pythran calls to NumPy methods no longer generate useless method lookup code.
+
+* The ``PyUnicode_GET_LENGTH()`` macro was missing from the ``cpython.*`` declarations.
+ Patch by Thomas Caswell. (Github issue #3692)
+
+* The deprecated ``PyUnicode_*()`` C-API functions are no longer used, except for Unicode
+ strings that contain lone surrogates. Unicode strings that contain non-BMP characters
+ or surrogate pairs now generate different C code on 16-bit Python 2.x Unicode deployments
+ (such as MS-Windows). Generating the C code on Python 3.x is recommended in this case.
+ Original patches by Inada Naoki and Victor Stinner. (Github issues #3677, #3721, #3697)
+
+* Some template parameters were missing from the C++ ``std::unordered_map`` declaration.
+ Patch by will. (Github issue #3685)
+
+* Several internal code generation issues regarding temporary variables were resolved.
+ (Github issue #3708)
+
+
+0.29.20 (2020-06-10)
+====================
+
+Bugs fixed
+----------
+
+* Nested try-except statements with multiple ``return`` statements could crash
+ due to incorrect deletion of the ``except as`` target variable.
+ (Github issue #3666)
+
+* The ``@classmethod`` decorator no longer rejects unknown input from other decorators.
+ Patch by David Woods. (Github issue #3660)
+
+* Fused types could leak into unrelated usages.
+ Patch by David Woods. (Github issue #3642)
+
+* Now uses ``Py_SET_SIZE()`` and ``Py_SET_REFCNT()`` in Py3.9+ to avoid low-level
+ write access to these object fields.
+ Patch by Victor Stinner. (Github issue #3639)
+
+* The built-in ``abs()`` function could lead to undefined behaviour when used on
+ the negative-most value of a signed C integer type.
+ Patch by Serge Guelton. (Github issue #1911)
+
+* Usages of ``sizeof()`` and ``typeid()`` on uninitialised variables no longer
+ produce a warning.
+ Patch by Celelibi. (Github issue #3575)
+
+* The C++ ``typeid()`` function was allowed in C mode.
+ Patch by Celelibi. (Github issue #3637)
+
+* The error position reported for errors found in f-strings was misleading.
+ (Github issue #3674)
+
+* The new ``c_api_binop_methods`` directive was added for forward compatibility, but can
+ only be set to True (the current default value). It can be disabled in Cython 3.0.
+
+
+0.29.19 (2020-05-20)
+====================
+
+Bugs fixed
+----------
+
+* A typo in Windows specific code in 0.29.18 was fixed that broke "libc.math".
+ (Github issue #3622)
+
+* A platform specific test failure in 0.29.18 was fixed.
+ Patch by smutch. (Github issue #3620)
+
+
+0.29.18 (2020-05-18)
+====================
+
+Bugs fixed
+----------
+
+* Exception position reporting could run into race conditions on threaded code.
+ It now uses function-local variables again.
+
+* Error handling early in the module init code could lead to a crash.
+
+* Error handling in ``cython.array`` creation was improved to avoid calling
+ C-API functions with an error held.
+
+* A memory corruption was fixed when garbage collection was triggered during calls
+ to ``PyType_Ready()`` of extension type subclasses.
+ (Github issue #3603)
+
+* Memory view slicing generated unused error handling code which could negatively
+ impact the C compiler optimisations for parallel OpenMP code etc. Also, it is
+ now helped by static branch hints.
+ (Github issue #2987)
+
+* Cython's built-in OpenMP functions were not translated inside of call arguments.
+ Original patch by Celelibi and David Woods. (Github issue #3594)
+
+* Complex buffer item types of structs of arrays could fail to validate.
+ Patch by Leo and smutch. (Github issue #1407)
+
+* Decorators were not allowed on nested `async def` functions.
+ (Github issue #1462)
+
+* C-tuples could use invalid C struct casting.
+ Patch by MegaIng. (Github issue #3038)
+
+* Optimised ``%d`` string formatting into f-strings failed on float values.
+ (Github issue #3092)
+
+* Optimised aligned string formatting (``%05s``, ``%-5s``) failed.
+ (Github issue #3476)
+
+* When importing the old Cython ``build_ext`` integration with distutils, the
+ additional command line arguments leaked into the regular command.
+ Patch by Kamekameha. (Github issue #2209)
+
+* When using the ``CYTHON_NO_PYINIT_EXPORT`` option in C++, the module init function
+ was not declared as ``extern "C"``.
+ (Github issue #3414)
+
+* Three missing timedelta access macros were added in ``cpython.datetime``.
+
+* The signature of the NumPy C-API function ``PyArray_SearchSorted()`` was fixed.
+ Patch by Brock Mendel. (Github issue #3606)
+
+
+0.29.17 (2020-04-26)
+====================
+
+Features added
+--------------
+
+* ``std::move()`` is now available from ``libcpp.utility``.
+ Patch by Omer Ozarslan. (Github issue #2169)
+
+* The ``@cython.binding`` decorator is available in Python code.
+ (Github issue #3505)
+
+Bugs fixed
+----------
+
+* Creating an empty unicode slice with large bounds could crash.
+ Patch by Sam Sneddon. (Github issue #3531)
+
+* Decoding an empty bytes/char* slice with large bounds could crash.
+ Patch by Sam Sneddon. (Github issue #3534)
+
+* Re-importing a Cython extension no longer raises the error
+ "``__reduce_cython__ not found``".
+ (Github issue #3545)
+
+* Unused C-tuples could generate incorrect code in 0.29.16.
+ Patch by Kirk Meyer. (Github issue #3543)
+
+* Creating a fused function attached it to the garbage collector before it
+ was fully initialised, thus risking crashes in rare failure cases.
+ Original patch by achernomorov. (Github issue #3215)
+
+* Temporary buffer indexing variables were not released and could show up in
+ C compiler warnings, e.g. in generators.
+ Patch by David Woods. (Github issues #3430, #3522)
+
+* The compilation cache in ``cython.inline("…")`` failed to take the language
+ level into account.
+ Patch by will-ca. (Github issue #3419)
+
+* The deprecated ``PyUnicode_GET_SIZE()`` function is no longer used in Py3.
+
+
+0.29.16 (2020-03-24)
+====================
+
+Bugs fixed
+----------
+
+* Temporary internal variables in nested prange loops could leak into other
+ threads. Patch by Frank Schlimbach. (Github issue #3348)
+
+* Default arguments on fused functions could crash.
+ Patch by David Woods. (Github issue #3370)
+
+* C-tuples declared in ``.pxd`` files could generate incomplete C code.
+ Patch by Kirk Meyer. (Github issue #1427)
+
+* Fused functions were not always detected and optimised as Cython
+ implemented functions.
+ Patch by David Woods. (Github issue #3384)
+
+* Valid Python object concatenation of (iterable) strings to non-strings
+ could fail with an exception.
+ Patch by David Woods. (Github issue #3433)
+
+* Using C functions as temporary values lead to invalid C code.
+ Original patch by David Woods. (Github issue #3418)
+
+* Fix an unhandled C++ exception in comparisons.
+ Patch by David Woods. (Github issue #3361)
+
+* Fix deprecated import of "imp" module.
+ Patch by Matti Picus. (Github issue #3350)
+
+* Fix compatibility with Pythran 0.9.6 and later.
+ Patch by Serge Guelton. (Github issue #3308)
+
+* The ``_Py_PyAtExit()`` function in ``cpython.pylifecycle`` was misdeclared.
+ Patch by Zackery Spytz. (Github issue #3382)
+
+* Several missing declarations in ``cpython.*`` were added.
+ Patches by Zackery Spytz. (Github issue #3452, #3421, #3411, #3402)
+
+* A declaration for ``libc.math.fpclassify()`` was added.
+ Patch by Zackery Spytz. (Github issue #2514)
+
+* Avoid "undeclared" warning about automatically generated pickle methods.
+ Patch by David Woods. (Github issue #3353)
+
+* Avoid C compiler warning about unreachable code in ``prange()``.
+
+* Some C compiler warnings in PyPy were resolved.
+ Patch by Matti Picus. (Github issue #3437)
+
+
+0.29.15 (2020-02-06)
+====================
+
+Bugs fixed
+----------
+
+* Crash when returning a temporary Python object from an async-def function.
+ (Github issue #3337)
+
+* Crash when using ``**kwargs`` in generators.
+ Patch by David Woods. (Github issue #3265)
+
+* Double reference free in ``__class__`` cell handling for ``super()`` calls.
+ (Github issue #3246)
+
+* Compile error when using ``*args`` as Python class bases.
+ (Github issue #3338)
+
+* Import failure in IPython 7.11.
+ (Github issue #3297)
+
+* Fixed C name collision in the auto-pickle code.
+ Patch by ThePrez. (Github issue #3238)
+
+* Deprecated import failed in Python 3.9.
+ (Github issue #3266)
+
+
+0.29.14 (2019-11-01)
+====================
+
+Bugs fixed
+----------
+
+* The generated code failed to initialise the ``tp_print`` slot in CPython 3.8.
+ Patches by Pablo Galindo and Orivej Desh. (Github issues #3171, #3201)
+
+* ``?`` for ``bool`` was missing from the supported NumPy dtypes.
+ Patch by Max Klein. (Github issue #2675)
+
+* ``await`` was not allowed inside of f-strings.
+ Patch by Dmitro Getz. (Github issue #2877)
+
+* Coverage analysis failed for projects where the code resides in separate
+ source sub-directories.
+ Patch by Antonio Valentino. (Github issue #1985)
+
+* An incorrect compiler warning was fixed in automatic C++ string conversions.
+ Patch by Gerion Entrup. (Github issue #3108)
+
+* Error reports in the Jupyter notebook showed unhelpful stack traces.
+ Patch by Matthew Edwards (Github issue #3196).
+
+* ``Python.h`` is now also included explicitly from ``public`` header files.
+ (Github issue #3133).
+
+* Distutils builds with ``--parallel`` did not work when using Cython's
+ deprecated ``build_ext`` command.
+ Patch by Alphadelta14 (Github issue #3187).
+
+Other changes
+-------------
+
+* The ``PyMemoryView_*()`` C-API is available in ``cpython.memoryview``.
+ Patch by Nathan Manville. (Github issue #2541)
+
+
0.29.13 (2019-07-26)
====================
@@ -852,7 +852,7 @@ Features added
In this case, it is also automatically mapped to ``%r`` in Python 2.x.
* New C macro ``CYTHON_HEX_VERSION`` to access Cython's version in the same style as
- ``PY_VERSION_HEX``.
+ ``PY_VERSION_HEX``.
* Constants in ``libc.math`` are now declared as ``const`` to simplify their handling.
diff --git a/contrib/tools/cython/COPYING.txt b/contrib/tools/cython/COPYING.txt
index 9d881d1df4..1a05a211a0 100644
--- a/contrib/tools/cython/COPYING.txt
+++ b/contrib/tools/cython/COPYING.txt
@@ -1,19 +1,19 @@
-The original Pyrex code as of 2006-04 is licensed under the following
-license: "Copyright stuff: Pyrex is free of restrictions. You may use,
-redistribute, modify and distribute modified versions."
-
-------------------
-
-Cython, which derives from Pyrex, is licensed under the Apache 2.0
-Software License. More precisely, all modifications and new code
-made to go from Pyrex to Cython are so licensed.
-
-See LICENSE.txt for more details.
-
-------------------
-
-The output of a Cython compilation is NOT considered a derivative
-work of Cython. Specifically, though the compilation process may
-embed snippets of varying lengths into the final output, these
-snippets, as embedded in the output, do not encumber the resulting
-output with any license restrictions.
+The original Pyrex code as of 2006-04 is licensed under the following
+license: "Copyright stuff: Pyrex is free of restrictions. You may use,
+redistribute, modify and distribute modified versions."
+
+------------------
+
+Cython, which derives from Pyrex, is licensed under the Apache 2.0
+Software License. More precisely, all modifications and new code
+made to go from Pyrex to Cython are so licensed.
+
+See LICENSE.txt for more details.
+
+------------------
+
+The output of a Cython compilation is NOT considered a derivative
+work of Cython. Specifically, though the compilation process may
+embed snippets of varying lengths into the final output, these
+snippets, as embedded in the output, do not encumber the resulting
+output with any license restrictions.
diff --git a/contrib/tools/cython/Cython/Build/Cythonize.py b/contrib/tools/cython/Cython/Build/Cythonize.py
index 13a6637f41..c85b6eabab 100644
--- a/contrib/tools/cython/Cython/Build/Cythonize.py
+++ b/contrib/tools/cython/Cython/Build/Cythonize.py
@@ -103,7 +103,7 @@ def cython_compile(path_pattern, options):
compile_time_env=options.compile_time_env,
force=options.force,
quiet=options.quiet,
- depfile=options.depfile,
+ depfile=options.depfile,
**options.options)
if ext_modules and options.build:
@@ -195,7 +195,7 @@ def parse_args(args):
help='increase Python compatibility by ignoring some compile time errors')
parser.add_option('-k', '--keep-going', dest='keep_going', action='store_true',
help='compile as much as possible, ignore compilation failures')
- parser.add_option('-M', '--depfile', action='store_true', help='produce depfiles for the sources')
+ parser.add_option('-M', '--depfile', action='store_true', help='produce depfiles for the sources')
options, args = parser.parse_args(args)
if not args:
diff --git a/contrib/tools/cython/Cython/Build/Dependencies.py b/contrib/tools/cython/Cython/Build/Dependencies.py
index 0799ea0351..7eb55e2607 100644
--- a/contrib/tools/cython/Cython/Build/Dependencies.py
+++ b/contrib/tools/cython/Cython/Build/Dependencies.py
@@ -19,11 +19,11 @@ from distutils.util import strtobool
import zipfile
try:
- from collections.abc import Iterable
-except ImportError:
- from collections import Iterable
-
-try:
+ from collections.abc import Iterable
+except ImportError:
+ from collections import Iterable
+
+try:
import gzip
gzip_open = gzip.open
gzip_ext = '.gz'
@@ -322,8 +322,8 @@ def strip_string_literals(code, prefix='__Pyx_L'):
in_quote = False
hash_mark = single_q = double_q = -1
code_len = len(code)
- quote_type = None
- quote_len = -1
+ quote_type = None
+ quote_len = -1
while True:
if hash_mark < q:
@@ -755,7 +755,7 @@ def create_extension_list(patterns, exclude=None, ctx=None, aliases=None, quiet=
exclude = []
if patterns is None:
return [], {}
- elif isinstance(patterns, basestring) or not isinstance(patterns, Iterable):
+ elif isinstance(patterns, basestring) or not isinstance(patterns, Iterable):
patterns = [patterns]
explicit_modules = set([m.name for m in patterns if isinstance(m, Extension)])
seen = set()
@@ -911,8 +911,8 @@ def cythonize(module_list, exclude=None, nthreads=0, aliases=None, quiet=False,
variable called ``foo`` as a string, and then call
``cythonize(..., aliases={'MY_HEADERS': foo})``.
- :param quiet: If True, Cython won't print error, warning, or status messages during the
- compilation.
+ :param quiet: If True, Cython won't print error, warning, or status messages during the
+ compilation.
:param force: Forces the recompilation of the Cython modules, even if the timestamps
don't indicate that a recompilation is necessary.
@@ -944,8 +944,8 @@ def cythonize(module_list, exclude=None, nthreads=0, aliases=None, quiet=False,
:param compiler_directives: Allow to set compiler directives in the ``setup.py`` like this:
``compiler_directives={'embedsignature': True}``.
See :ref:`compiler-directives`.
-
- :param depfile: produce depfiles for the sources if True.
+
+ :param depfile: produce depfiles for the sources if True.
"""
if exclude is None:
exclude = []
@@ -954,8 +954,8 @@ def cythonize(module_list, exclude=None, nthreads=0, aliases=None, quiet=False,
if 'common_utility_include_dir' in options:
safe_makedirs(options['common_utility_include_dir'])
- depfile = options.pop('depfile', None)
-
+ depfile = options.pop('depfile', None)
+
if pythran is None:
pythran_options = None
else:
@@ -1027,26 +1027,26 @@ def cythonize(module_list, exclude=None, nthreads=0, aliases=None, quiet=False,
dir = os.path.dirname(c_file)
safe_makedirs_once(dir)
- # write out the depfile, if requested
- if depfile:
- dependencies = deps.all_dependencies(source)
- src_base_dir, _ = os.path.split(source)
- if not src_base_dir.endswith(os.sep):
- src_base_dir += os.sep
- # paths below the base_dir are relative, otherwise absolute
- paths = []
- for fname in dependencies:
- if (fname.startswith(src_base_dir) or
- fname.startswith('.' + os.path.sep)):
- paths.append(os.path.relpath(fname, src_base_dir))
- else:
- paths.append(os.path.abspath(fname))
-
- depline = os.path.split(c_file)[1] + ": \\\n "
- depline += " \\\n ".join(paths) + "\n"
- with open(c_file+'.dep', 'w') as outfile:
- outfile.write(depline)
-
+ # write out the depfile, if requested
+ if depfile:
+ dependencies = deps.all_dependencies(source)
+ src_base_dir, _ = os.path.split(source)
+ if not src_base_dir.endswith(os.sep):
+ src_base_dir += os.sep
+ # paths below the base_dir are relative, otherwise absolute
+ paths = []
+ for fname in dependencies:
+ if (fname.startswith(src_base_dir) or
+ fname.startswith('.' + os.path.sep)):
+ paths.append(os.path.relpath(fname, src_base_dir))
+ else:
+ paths.append(os.path.abspath(fname))
+
+ depline = os.path.split(c_file)[1] + ": \\\n "
+ depline += " \\\n ".join(paths) + "\n"
+ with open(c_file+'.dep', 'w') as outfile:
+ outfile.write(depline)
+
if os.path.exists(c_file):
c_timestamp = os.path.getmtime(c_file)
else:
diff --git a/contrib/tools/cython/Cython/Build/Inline.py b/contrib/tools/cython/Cython/Build/Inline.py
index 80a88c67a7..db6d2640a5 100644
--- a/contrib/tools/cython/Cython/Build/Inline.py
+++ b/contrib/tools/cython/Cython/Build/Inline.py
@@ -1,31 +1,31 @@
from __future__ import absolute_import
-import hashlib
-import inspect
-import os
-import re
-import sys
+import hashlib
+import inspect
+import os
+import re
+import sys
from distutils.core import Distribution, Extension
from distutils.command.build_ext import build_ext
import Cython
-from ..Compiler.Main import Context, default_options
+from ..Compiler.Main import Context, default_options
-from ..Compiler.Visitor import CythonTransform, EnvTransform
-from ..Compiler.ParseTreeTransforms import SkipDeclarations
+from ..Compiler.Visitor import CythonTransform, EnvTransform
+from ..Compiler.ParseTreeTransforms import SkipDeclarations
from ..Compiler.TreeFragment import parse_from_strings
from ..Compiler.StringEncoding import _unicode
from .Dependencies import strip_string_literals, cythonize, cached_function
-from ..Compiler import Pipeline
+from ..Compiler import Pipeline
from ..Utils import get_cython_cache_dir
import cython as cython_module
-IS_PY3 = sys.version_info >= (3,)
-
+IS_PY3 = sys.version_info >= (3,)
+
# A utility function to convert user-supplied ASCII strings to unicode.
-if not IS_PY3:
+if not IS_PY3:
def to_unicode(s):
if isinstance(s, bytes):
return s.decode('ascii')
@@ -34,18 +34,18 @@ if not IS_PY3:
else:
to_unicode = lambda x: x
-if sys.version_info < (3, 5):
- import imp
- def load_dynamic(name, module_path):
- return imp.load_dynamic(name, module_path)
-else:
- import importlib.util as _importlib_util
- def load_dynamic(name, module_path):
- spec = _importlib_util.spec_from_file_location(name, module_path)
- module = _importlib_util.module_from_spec(spec)
- # sys.modules[name] = module
- spec.loader.exec_module(module)
- return module
+if sys.version_info < (3, 5):
+ import imp
+ def load_dynamic(name, module_path):
+ return imp.load_dynamic(name, module_path)
+else:
+ import importlib.util as _importlib_util
+ def load_dynamic(name, module_path):
+ spec = _importlib_util.spec_from_file_location(name, module_path)
+ module = _importlib_util.module_from_spec(spec)
+ # sys.modules[name] = module
+ spec.loader.exec_module(module)
+ return module
class UnboundSymbols(EnvTransform, SkipDeclarations):
def __init__(self):
@@ -131,7 +131,7 @@ def _create_context(cython_include_dirs):
_cython_inline_cache = {}
_cython_inline_default_context = _create_context(('.',))
-
+
def _populate_unbound(kwds, unbound_symbols, locals=None, globals=None):
for symbol in unbound_symbols:
if symbol not in kwds:
@@ -148,12 +148,12 @@ def _populate_unbound(kwds, unbound_symbols, locals=None, globals=None):
else:
print("Couldn't find %r" % symbol)
-
-def _inline_key(orig_code, arg_sigs, language_level):
- key = orig_code, arg_sigs, sys.version_info, sys.executable, language_level, Cython.__version__
- return hashlib.sha1(_unicode(key).encode('utf-8')).hexdigest()
-
-
+
+def _inline_key(orig_code, arg_sigs, language_level):
+ key = orig_code, arg_sigs, sys.version_info, sys.executable, language_level, Cython.__version__
+ return hashlib.sha1(_unicode(key).encode('utf-8')).hexdigest()
+
+
def cython_inline(code, get_type=unsafe_type,
lib_dir=os.path.join(get_cython_cache_dir(), 'inline'),
cython_include_dirs=None, cython_compiler_directives=None,
@@ -163,20 +163,20 @@ def cython_inline(code, get_type=unsafe_type,
get_type = lambda x: 'object'
ctx = _create_context(tuple(cython_include_dirs)) if cython_include_dirs else _cython_inline_default_context
- cython_compiler_directives = dict(cython_compiler_directives) if cython_compiler_directives else {}
- if language_level is None and 'language_level' not in cython_compiler_directives:
- language_level = '3str'
- if language_level is not None:
- cython_compiler_directives['language_level'] = language_level
-
+ cython_compiler_directives = dict(cython_compiler_directives) if cython_compiler_directives else {}
+ if language_level is None and 'language_level' not in cython_compiler_directives:
+ language_level = '3str'
+ if language_level is not None:
+ cython_compiler_directives['language_level'] = language_level
+
# Fast path if this has been called in this session.
_unbound_symbols = _cython_inline_cache.get(code)
if _unbound_symbols is not None:
_populate_unbound(kwds, _unbound_symbols, locals, globals)
args = sorted(kwds.items())
arg_sigs = tuple([(get_type(value, ctx), arg) for arg, value in args])
- key_hash = _inline_key(code, arg_sigs, language_level)
- invoke = _cython_inline_cache.get((code, arg_sigs, key_hash))
+ key_hash = _inline_key(code, arg_sigs, language_level)
+ invoke = _cython_inline_cache.get((code, arg_sigs, key_hash))
if invoke is not None:
arg_list = [arg[1] for arg in args]
return invoke(*arg_list)
@@ -204,8 +204,8 @@ def cython_inline(code, get_type=unsafe_type,
del kwds[name]
arg_names = sorted(kwds)
arg_sigs = tuple([(get_type(kwds[arg], ctx), arg) for arg in arg_names])
- key_hash = _inline_key(orig_code, arg_sigs, language_level)
- module_name = "_cython_inline_" + key_hash
+ key_hash = _inline_key(orig_code, arg_sigs, language_level)
+ module_name = "_cython_inline_" + key_hash
if module_name in sys.modules:
module = sys.modules[module_name]
@@ -270,13 +270,13 @@ def __invoke(%(params)s):
build_extension.build_lib = lib_dir
build_extension.run()
- module = load_dynamic(module_name, module_path)
+ module = load_dynamic(module_name, module_path)
- _cython_inline_cache[orig_code, arg_sigs, key_hash] = module.__invoke
+ _cython_inline_cache[orig_code, arg_sigs, key_hash] = module.__invoke
arg_list = [kwds[arg] for arg in arg_names]
return module.__invoke(*arg_list)
-
+
# Cached suffix used by cython_inline above. None should get
# overridden with actual value upon the first cython_inline invocation
cython_inline.so_ext = None
diff --git a/contrib/tools/cython/Cython/Build/IpythonMagic.py b/contrib/tools/cython/Cython/Build/IpythonMagic.py
index a96889dc8a..7abb97ec70 100644
--- a/contrib/tools/cython/Cython/Build/IpythonMagic.py
+++ b/contrib/tools/cython/Cython/Build/IpythonMagic.py
@@ -56,8 +56,8 @@ import copy
import distutils.log
import textwrap
-IO_ENCODING = sys.getfilesystemencoding()
-IS_PY2 = sys.version_info[0] < 3
+IO_ENCODING = sys.getfilesystemencoding()
+IS_PY2 = sys.version_info[0] < 3
try:
reload
@@ -102,14 +102,14 @@ PGO_CONFIG = {
PGO_CONFIG['mingw32'] = PGO_CONFIG['gcc']
-if IS_PY2:
- def encode_fs(name):
- return name if isinstance(name, bytes) else name.encode(IO_ENCODING)
-else:
- def encode_fs(name):
- return name
-
-
+if IS_PY2:
+ def encode_fs(name):
+ return name if isinstance(name, bytes) else name.encode(IO_ENCODING)
+else:
+ def encode_fs(name):
+ return name
+
+
@magics_class
class CythonMagics(Magics):
@@ -315,7 +315,7 @@ class CythonMagics(Magics):
key += (time.time(),)
if args.name:
- module_name = str(args.name) # no-op in Py3
+ module_name = str(args.name) # no-op in Py3
else:
module_name = "_cython_magic_" + hashlib.md5(str(key).encode('utf-8')).hexdigest()
html_file = os.path.join(lib_dir, module_name + '.html')
@@ -331,9 +331,9 @@ class CythonMagics(Magics):
extension = None
if need_cythonize:
extensions = self._cythonize(module_name, code, lib_dir, args, quiet=args.quiet)
- if extensions is None:
- # Compilation failed and printed error message
- return None
+ if extensions is None:
+ # Compilation failed and printed error message
+ return None
assert len(extensions) == 1
extension = extensions[0]
self._code_cache[key] = module_name
@@ -341,12 +341,12 @@ class CythonMagics(Magics):
if args.pgo:
self._profile_pgo_wrapper(extension, lib_dir)
- try:
- self._build_extension(extension, lib_dir, pgo_step_name='use' if args.pgo else None,
- quiet=args.quiet)
- except distutils.errors.CompileError:
- # Build failed and printed error message
- return None
+ try:
+ self._build_extension(extension, lib_dir, pgo_step_name='use' if args.pgo else None,
+ quiet=args.quiet)
+ except distutils.errors.CompileError:
+ # Build failed and printed error message
+ return None
module = imp.load_dynamic(module_name, module_path)
self._import_all(module)
@@ -415,7 +415,7 @@ class CythonMagics(Magics):
def _cythonize(self, module_name, code, lib_dir, args, quiet=True):
pyx_file = os.path.join(lib_dir, module_name + '.pyx')
- pyx_file = encode_fs(pyx_file)
+ pyx_file = encode_fs(pyx_file)
c_include_dirs = args.include
c_src_files = list(map(str, args.src))
@@ -535,10 +535,10 @@ class CythonMagics(Magics):
build_extension = _build_ext(dist)
build_extension.finalize_options()
if temp_dir:
- temp_dir = encode_fs(temp_dir)
+ temp_dir = encode_fs(temp_dir)
build_extension.build_temp = temp_dir
if lib_dir:
- lib_dir = encode_fs(lib_dir)
+ lib_dir = encode_fs(lib_dir)
build_extension.build_lib = lib_dir
if extension is not None:
build_extension.extensions = [extension]
diff --git a/contrib/tools/cython/Cython/Build/Tests/TestInline.py b/contrib/tools/cython/Cython/Build/Tests/TestInline.py
index 9676e202ae..d209488083 100644
--- a/contrib/tools/cython/Cython/Build/Tests/TestInline.py
+++ b/contrib/tools/cython/Cython/Build/Tests/TestInline.py
@@ -24,10 +24,10 @@ class TestInline(CythonTest):
self.test_kwds['lib_dir'] = lib_dir
def test_simple(self):
- self.assertEqual(inline("return 1+2", **self.test_kwds), 3)
+ self.assertEqual(inline("return 1+2", **self.test_kwds), 3)
def test_types(self):
- self.assertEqual(inline("""
+ self.assertEqual(inline("""
cimport cython
return cython.typeof(a), cython.typeof(b)
""", a=1.0, b=[], **self.test_kwds), ('double', 'list object'))
@@ -35,13 +35,13 @@ class TestInline(CythonTest):
def test_locals(self):
a = 1
b = 2
- self.assertEqual(inline("return a+b", **self.test_kwds), 3)
+ self.assertEqual(inline("return a+b", **self.test_kwds), 3)
def test_globals(self):
- self.assertEqual(inline("return global_value + 1", **self.test_kwds), global_value + 1)
+ self.assertEqual(inline("return global_value + 1", **self.test_kwds), global_value + 1)
def test_no_return(self):
- self.assertEqual(inline("""
+ self.assertEqual(inline("""
a = 1
cdef double b = 2
cdef c = []
@@ -49,7 +49,7 @@ class TestInline(CythonTest):
def test_def_node(self):
foo = inline("def foo(x): return x * x", **self.test_kwds)['foo']
- self.assertEqual(foo(7), 49)
+ self.assertEqual(foo(7), 49)
def test_class_ref(self):
class Type(object):
@@ -64,7 +64,7 @@ class TestInline(CythonTest):
c = cy.declare(cy.pointer(cy.float), &b)
return b
""", a=3, **self.test_kwds)
- self.assertEqual(type(b), float)
+ self.assertEqual(type(b), float)
def test_compiler_directives(self):
self.assertEqual(
@@ -74,23 +74,23 @@ class TestInline(CythonTest):
6
)
- def test_lang_version(self):
- # GH-3419. Caching for inline code didn't always respect compiler directives.
- inline_divcode = "def f(int a, int b): return a/b"
- self.assertEqual(
- inline(inline_divcode, language_level=2)['f'](5,2),
- 2
- )
- self.assertEqual(
- inline(inline_divcode, language_level=3)['f'](5,2),
- 2.5
- )
-
+ def test_lang_version(self):
+ # GH-3419. Caching for inline code didn't always respect compiler directives.
+ inline_divcode = "def f(int a, int b): return a/b"
+ self.assertEqual(
+ inline(inline_divcode, language_level=2)['f'](5,2),
+ 2
+ )
+ self.assertEqual(
+ inline(inline_divcode, language_level=3)['f'](5,2),
+ 2.5
+ )
+
if has_numpy:
def test_numpy(self):
import numpy
a = numpy.ndarray((10, 20))
a[0,0] = 10
- self.assertEqual(safe_type(a), 'numpy.ndarray[numpy.float64_t, ndim=2]')
- self.assertEqual(inline("return a[0,0]", a=a, **self.test_kwds), 10.0)
+ self.assertEqual(safe_type(a), 'numpy.ndarray[numpy.float64_t, ndim=2]')
+ self.assertEqual(inline("return a[0,0]", a=a, **self.test_kwds), 10.0)
diff --git a/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py b/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py
index d27c5717e6..24213091b2 100644
--- a/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py
+++ b/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py
@@ -28,24 +28,24 @@ try:
except ImportError:
pass
-code = u"""\
+code = u"""\
def f(x):
return 2*x
-"""
+"""
-cython3_code = u"""\
+cython3_code = u"""\
def f(int x):
return 2 / x
def call(x):
return f(*(x,))
-"""
+"""
-pgo_cython3_code = cython3_code + u"""\
+pgo_cython3_code = cython3_code + u"""\
def main():
for _ in range(100): call(5)
main()
-"""
+"""
if sys.platform == 'win32':
@@ -154,10 +154,10 @@ class TestIPythonMagic(CythonTest):
@skip_win32('Skip on Windows')
def test_extlibs(self):
ip = self._ip
- code = u"""
+ code = u"""
from libc.math cimport sin
x = sin(0.0)
- """
+ """
ip.user_ns['x'] = 1
ip.run_cell_magic('cython', '-l m', code)
self.assertEqual(ip.user_ns['x'], 0)
@@ -195,11 +195,11 @@ x = sin(0.0)
ip.run_cell_magic('cython', '--verbose', code)
ip.ex('g = f(10)')
self.assertEqual(ip.user_ns['g'], 20.0)
- self.assertEqual([verbose_log.INFO, verbose_log.DEBUG, verbose_log.INFO],
+ self.assertEqual([verbose_log.INFO, verbose_log.DEBUG, verbose_log.INFO],
verbose_log.thresholds)
with mock_distutils() as normal_log:
ip.run_cell_magic('cython', '', code)
ip.ex('g = f(10)')
self.assertEqual(ip.user_ns['g'], 20.0)
- self.assertEqual([normal_log.INFO], normal_log.thresholds)
+ self.assertEqual([normal_log.INFO], normal_log.thresholds)
diff --git a/contrib/tools/cython/Cython/Compiler/Buffer.py b/contrib/tools/cython/Cython/Compiler/Buffer.py
index 9603235611..c62a24f568 100644
--- a/contrib/tools/cython/Cython/Compiler/Buffer.py
+++ b/contrib/tools/cython/Cython/Compiler/Buffer.py
@@ -668,11 +668,11 @@ def get_type_information_cname(code, dtype, maxdepth=None):
if dtype.is_simple_buffer_dtype():
structinfo_name = "NULL"
elif dtype.is_struct:
- struct_scope = dtype.scope
- if dtype.is_const:
- struct_scope = struct_scope.const_base_type_scope
- # Must pre-call all used types in order not to recurse during utility code writing.
- fields = struct_scope.var_entries
+ struct_scope = dtype.scope
+ if dtype.is_const:
+ struct_scope = struct_scope.const_base_type_scope
+ # Must pre-call all used types in order not to recurse during utility code writing.
+ fields = struct_scope.var_entries
assert len(fields) > 0
types = [get_type_information_cname(code, f.type, maxdepth - 1)
for f in fields]
diff --git a/contrib/tools/cython/Cython/Compiler/Builtin.py b/contrib/tools/cython/Cython/Compiler/Builtin.py
index 3dc6698721..5fa717507d 100644
--- a/contrib/tools/cython/Cython/Compiler/Builtin.py
+++ b/contrib/tools/cython/Cython/Compiler/Builtin.py
@@ -203,7 +203,7 @@ builtin_function_table = [
#('raw_input', "", "", ""),
#('reduce', "", "", ""),
BuiltinFunction('reload', "O", "O", "PyImport_ReloadModule"),
- BuiltinFunction('repr', "O", "O", "PyObject_Repr"), # , builtin_return_type='str'), # add in Cython 3.1
+ BuiltinFunction('repr', "O", "O", "PyObject_Repr"), # , builtin_return_type='str'), # add in Cython 3.1
#('round', "", "", ""),
BuiltinFunction('setattr', "OOO", "r", "PyObject_SetAttr"),
#('sum', "", "", ""),
diff --git a/contrib/tools/cython/Cython/Compiler/Code.pxd b/contrib/tools/cython/Cython/Compiler/Code.pxd
index c07cc415e1..acad0c1cf4 100644
--- a/contrib/tools/cython/Cython/Compiler/Code.pxd
+++ b/contrib/tools/cython/Cython/Compiler/Code.pxd
@@ -48,7 +48,7 @@ cdef class FunctionState:
cdef public list temps_allocated
cdef public dict temps_free
cdef public dict temps_used_type
- cdef public set zombie_temps
+ cdef public set zombie_temps
cdef public size_t temp_counter
cdef public list collect_temps_stack
diff --git a/contrib/tools/cython/Cython/Compiler/Code.py b/contrib/tools/cython/Cython/Compiler/Code.py
index 3120deb795..f43c4b2b8e 100644
--- a/contrib/tools/cython/Cython/Compiler/Code.py
+++ b/contrib/tools/cython/Cython/Compiler/Code.py
@@ -280,7 +280,7 @@ class UtilityCodeBase(object):
_, ext = os.path.splitext(path)
if ext in ('.pyx', '.py', '.pxd', '.pxi'):
comment = '#'
- strip_comments = partial(re.compile(r'^\s*#(?!\s*cython\s*:).*').sub, '')
+ strip_comments = partial(re.compile(r'^\s*#(?!\s*cython\s*:).*').sub, '')
rstrip = StringEncoding._unicode.rstrip
else:
comment = '/'
@@ -501,11 +501,11 @@ class UtilityCode(UtilityCodeBase):
def specialize(self, pyrex_type=None, **data):
# Dicts aren't hashable...
- name = self.name
+ name = self.name
if pyrex_type is not None:
data['type'] = pyrex_type.empty_declaration_code()
data['type_name'] = pyrex_type.specialization_name()
- name = "%s[%s]" % (name, data['type_name'])
+ name = "%s[%s]" % (name, data['type_name'])
key = tuple(sorted(data.items()))
try:
return self._cache[key]
@@ -521,9 +521,9 @@ class UtilityCode(UtilityCodeBase):
self.none_or_sub(self.init, data),
self.none_or_sub(self.cleanup, data),
requires,
- self.proto_block,
- name,
- )
+ self.proto_block,
+ name,
+ )
self.specialize_list.append(s)
return s
@@ -547,7 +547,7 @@ class UtilityCode(UtilityCodeBase):
impl = re.sub(r'PY(IDENT|UNICODE)\("([^"]+)"\)', externalise, impl)
assert 'PYIDENT(' not in impl and 'PYUNICODE(' not in impl
- return True, impl
+ return True, impl
def inject_unbound_methods(self, impl, output):
"""Replace 'UNBOUND_METHOD(type, "name")' by a constant Python identifier cname.
@@ -570,7 +570,7 @@ class UtilityCode(UtilityCodeBase):
r'\)', externalise, impl)
assert 'CALL_UNBOUND_METHOD(' not in impl
- return True, impl
+ return True, impl
def wrap_c_strings(self, impl):
"""Replace CSTRING('''xyz''') by a C compatible string
@@ -722,10 +722,10 @@ class FunctionState(object):
self.can_trace = False
self.gil_owned = True
- self.temps_allocated = [] # of (name, type, manage_ref, static)
- self.temps_free = {} # (type, manage_ref) -> list of free vars with same type/managed status
- self.temps_used_type = {} # name -> (type, manage_ref)
- self.zombie_temps = set() # temps that must not be reused after release
+ self.temps_allocated = [] # of (name, type, manage_ref, static)
+ self.temps_free = {} # (type, manage_ref) -> list of free vars with same type/managed status
+ self.temps_used_type = {} # name -> (type, manage_ref)
+ self.zombie_temps = set() # temps that must not be reused after release
self.temp_counter = 0
self.closure_temps = None
@@ -740,20 +740,20 @@ class FunctionState(object):
self.should_declare_error_indicator = False
self.uses_error_indicator = False
- # safety checks
-
- def validate_exit(self):
- # validate that all allocated temps have been freed
- if self.temps_allocated:
- leftovers = self.temps_in_use()
- if leftovers:
- msg = "TEMPGUARD: Temps left over at end of '%s': %s" % (self.scope.name, ', '.join([
- '%s [%s]' % (name, ctype)
- for name, ctype, is_pytemp in sorted(leftovers)]),
- )
- #print(msg)
- raise RuntimeError(msg)
-
+ # safety checks
+
+ def validate_exit(self):
+ # validate that all allocated temps have been freed
+ if self.temps_allocated:
+ leftovers = self.temps_in_use()
+ if leftovers:
+ msg = "TEMPGUARD: Temps left over at end of '%s': %s" % (self.scope.name, ', '.join([
+ '%s [%s]' % (name, ctype)
+ for name, ctype, is_pytemp in sorted(leftovers)]),
+ )
+ #print(msg)
+ raise RuntimeError(msg)
+
# labels
def new_label(self, name=None):
@@ -823,7 +823,7 @@ class FunctionState(object):
# temp handling
- def allocate_temp(self, type, manage_ref, static=False, reusable=True):
+ def allocate_temp(self, type, manage_ref, static=False, reusable=True):
"""
Allocates a temporary (which may create a new one or get a previously
allocated and released one of the same type). Type is simply registered
@@ -842,24 +842,24 @@ class FunctionState(object):
This is only used when allocating backing store for a module-level
C array literals.
- if reusable=False, the temp will not be reused after release.
-
+ if reusable=False, the temp will not be reused after release.
+
A C string referring to the variable is returned.
"""
if type.is_const and not type.is_reference:
type = type.const_base_type
elif type.is_reference and not type.is_fake_reference:
type = type.ref_base_type
- elif type.is_cfunction:
- from . import PyrexTypes
- type = PyrexTypes.c_ptr_type(type) # A function itself isn't an l-value
+ elif type.is_cfunction:
+ from . import PyrexTypes
+ type = PyrexTypes.c_ptr_type(type) # A function itself isn't an l-value
if not type.is_pyobject and not type.is_memoryviewslice:
# Make manage_ref canonical, so that manage_ref will always mean
# a decref is needed.
manage_ref = False
freelist = self.temps_free.get((type, manage_ref))
- if reusable and freelist is not None and freelist[0]:
+ if reusable and freelist is not None and freelist[0]:
result = freelist[0].pop()
freelist[1].remove(result)
else:
@@ -868,11 +868,11 @@ class FunctionState(object):
result = "%s%d" % (Naming.codewriter_temp_prefix, self.temp_counter)
if result not in self.names_taken: break
self.temps_allocated.append((result, type, manage_ref, static))
- if not reusable:
- self.zombie_temps.add(result)
+ if not reusable:
+ self.zombie_temps.add(result)
self.temps_used_type[result] = (type, manage_ref)
if DebugFlags.debug_temp_code_comments:
- self.owner.putln("/* %s allocated (%s)%s */" % (result, type, "" if reusable else " - zombie"))
+ self.owner.putln("/* %s allocated (%s)%s */" % (result, type, "" if reusable else " - zombie"))
if self.collect_temps_stack:
self.collect_temps_stack[-1].add((result, type))
@@ -891,12 +891,12 @@ class FunctionState(object):
self.temps_free[(type, manage_ref)] = freelist
if name in freelist[1]:
raise RuntimeError("Temp %s freed twice!" % name)
- if name not in self.zombie_temps:
- freelist[0].append(name)
+ if name not in self.zombie_temps:
+ freelist[0].append(name)
freelist[1].add(name)
if DebugFlags.debug_temp_code_comments:
- self.owner.putln("/* %s released %s*/" % (
- name, " - zombie" if name in self.zombie_temps else ""))
+ self.owner.putln("/* %s released %s*/" % (
+ name, " - zombie" if name in self.zombie_temps else ""))
def temps_in_use(self):
"""Return a list of (cname,type,manage_ref) tuples of temp names and their type
@@ -2366,18 +2366,18 @@ class CCodeWriter(object):
self.funcstate.should_declare_error_indicator = True
if used:
self.funcstate.uses_error_indicator = True
- return "__PYX_MARK_ERR_POS(%s, %s)" % (
+ return "__PYX_MARK_ERR_POS(%s, %s)" % (
self.lookup_filename(pos[0]),
- pos[1])
+ pos[1])
- def error_goto(self, pos, used=True):
+ def error_goto(self, pos, used=True):
lbl = self.funcstate.error_label
self.funcstate.use_label(lbl)
if pos is None:
return 'goto %s;' % lbl
- self.funcstate.should_declare_error_indicator = True
- if used:
- self.funcstate.uses_error_indicator = True
+ self.funcstate.should_declare_error_indicator = True
+ if used:
+ self.funcstate.uses_error_indicator = True
return "__PYX_ERR(%s, %s, %s)" % (
self.lookup_filename(pos[0]),
pos[1],
diff --git a/contrib/tools/cython/Cython/Compiler/ExprNodes.py b/contrib/tools/cython/Cython/Compiler/ExprNodes.py
index 94f30d7e7a..4a402f8126 100644
--- a/contrib/tools/cython/Cython/Compiler/ExprNodes.py
+++ b/contrib/tools/cython/Cython/Compiler/ExprNodes.py
@@ -1012,11 +1012,11 @@ class ExprNode(Node):
return self
elif type.is_pyobject or type.is_int or type.is_ptr or type.is_float:
return CoerceToBooleanNode(self, env)
- elif type.is_cpp_class and type.scope and type.scope.lookup("operator bool"):
+ elif type.is_cpp_class and type.scope and type.scope.lookup("operator bool"):
return SimpleCallNode(
self.pos,
function=AttributeNode(
- self.pos, obj=self, attribute=StringEncoding.EncodedString('operator bool')),
+ self.pos, obj=self, attribute=StringEncoding.EncodedString('operator bool')),
args=[]).analyse_types(env)
elif type.is_ctuple:
bool_value = len(type.components) == 0
@@ -1623,23 +1623,23 @@ class UnicodeNode(ConstNode):
def generate_evaluation_code(self, code):
if self.type.is_pyobject:
- # FIXME: this should go away entirely!
- # Since string_contains_lone_surrogates() returns False for surrogate pairs in Py2/UCS2,
- # Py2 can generate different code from Py3 here. Let's hope we get away with claiming that
- # the processing of surrogate pairs in code was always ambiguous and lead to different results
- # on P16/32bit Unicode platforms.
- if StringEncoding.string_contains_lone_surrogates(self.value):
- # lone (unpaired) surrogates are not really portable and cannot be
+ # FIXME: this should go away entirely!
+ # Since string_contains_lone_surrogates() returns False for surrogate pairs in Py2/UCS2,
+ # Py2 can generate different code from Py3 here. Let's hope we get away with claiming that
+ # the processing of surrogate pairs in code was always ambiguous and lead to different results
+ # on P16/32bit Unicode platforms.
+ if StringEncoding.string_contains_lone_surrogates(self.value):
+ # lone (unpaired) surrogates are not really portable and cannot be
# decoded by the UTF-8 codec in Py3.3
self.result_code = code.get_py_const(py_object_type, 'ustring')
- data_cname = code.get_string_const(
- StringEncoding.BytesLiteral(self.value.encode('unicode_escape')))
+ data_cname = code.get_string_const(
+ StringEncoding.BytesLiteral(self.value.encode('unicode_escape')))
const_code = code.get_cached_constants_writer(self.result_code)
if const_code is None:
return # already initialised
const_code.mark_pos(self.pos)
const_code.putln(
- "%s = PyUnicode_DecodeUnicodeEscape(%s, sizeof(%s) - 1, NULL); %s" % (
+ "%s = PyUnicode_DecodeUnicodeEscape(%s, sizeof(%s) - 1, NULL); %s" % (
self.result_code,
data_cname,
data_cname,
@@ -3228,7 +3228,7 @@ class FormattedValueNode(ExprNode):
# {}-delimited portions of an f-string
#
# value ExprNode The expression itself
- # conversion_char str or None Type conversion (!s, !r, !a, or none, or 'd' for integer conversion)
+ # conversion_char str or None Type conversion (!s, !r, !a, or none, or 'd' for integer conversion)
# format_spec JoinedStrNode or None Format string passed to __format__
# c_format_spec str or None If not None, formatting can be done at the C level
@@ -3242,7 +3242,7 @@ class FormattedValueNode(ExprNode):
's': 'PyObject_Unicode',
'r': 'PyObject_Repr',
'a': 'PyObject_ASCII', # NOTE: mapped to PyObject_Repr() in Py2
- 'd': '__Pyx_PyNumber_IntOrLong', # NOTE: internal mapping for '%d' formatting
+ 'd': '__Pyx_PyNumber_IntOrLong', # NOTE: internal mapping for '%d' formatting
}.get
def may_be_none(self):
@@ -4207,9 +4207,9 @@ class BufferIndexNode(_IndexingBaseNode):
# Whether we're assigning to a buffer (in that case it needs to be writable)
writable_needed = False
- # Any indexing temp variables that we need to clean up.
- index_temps = ()
-
+ # Any indexing temp variables that we need to clean up.
+ index_temps = ()
+
def analyse_target_types(self, env):
self.analyse_types(env, getting=False)
@@ -4294,7 +4294,7 @@ class BufferIndexNode(_IndexingBaseNode):
warning(self.pos, "Use boundscheck(False) for faster access", level=1)
# Assign indices to temps of at least (s)size_t to allow further index calculations.
- self.index_temps = index_temps = [self.get_index_in_temp(code,ivar) for ivar in self.indices]
+ self.index_temps = index_temps = [self.get_index_in_temp(code,ivar) for ivar in self.indices]
# Generate buffer access code using these temps
from . import Buffer
@@ -4340,7 +4340,7 @@ class BufferIndexNode(_IndexingBaseNode):
pythran_indexing_code(self.indices),
op,
rhs.pythran_result()))
- code.funcstate.release_temp(obj)
+ code.funcstate.release_temp(obj)
return
# Used from generate_assignment_code and InPlaceAssignmentNode
@@ -4381,13 +4381,13 @@ class BufferIndexNode(_IndexingBaseNode):
code.putln("%s = (PyObject *) *%s;" % (self.result(), self.buffer_ptr_code))
code.putln("__Pyx_INCREF((PyObject*)%s);" % self.result())
- def free_subexpr_temps(self, code):
- for temp in self.index_temps:
- code.funcstate.release_temp(temp)
- self.index_temps = ()
- super(BufferIndexNode, self).free_subexpr_temps(code)
+ def free_subexpr_temps(self, code):
+ for temp in self.index_temps:
+ code.funcstate.release_temp(temp)
+ self.index_temps = ()
+ super(BufferIndexNode, self).free_subexpr_temps(code)
+
-
class MemoryViewIndexNode(BufferIndexNode):
is_memview_index = True
@@ -4662,7 +4662,7 @@ class MemoryCopyNode(ExprNode):
self.dst.generate_evaluation_code(code)
self._generate_assignment_code(rhs, code)
self.dst.generate_disposal_code(code)
- self.dst.free_temps(code)
+ self.dst.free_temps(code)
rhs.generate_disposal_code(code)
rhs.free_temps(code)
@@ -5479,7 +5479,7 @@ class CallNode(ExprNode):
func_type = self.function_type()
if func_type.is_pyobject:
self.gil_error()
- elif not func_type.is_error and not getattr(func_type, 'nogil', False):
+ elif not func_type.is_error and not getattr(func_type, 'nogil', False):
self.gil_error()
gil_message = "Calling gil-requiring function"
@@ -5566,7 +5566,7 @@ class SimpleCallNode(CallNode):
env.add_include_file(pythran_get_func_include_file(function))
return NumPyMethodCallNode.from_node(
self,
- function_cname=pythran_functor(function),
+ function_cname=pythran_functor(function),
arg_tuple=self.arg_tuple,
type=PythranExpr(pythran_func_type(function, self.arg_tuple.args)),
)
@@ -5847,17 +5847,17 @@ class SimpleCallNode(CallNode):
if function.is_name or function.is_attribute:
code.globalstate.use_entry_utility_code(function.entry)
- abs_function_cnames = ('abs', 'labs', '__Pyx_abs_longlong')
- is_signed_int = self.type.is_int and self.type.signed
- if self.overflowcheck and is_signed_int and function.result() in abs_function_cnames:
- code.globalstate.use_utility_code(UtilityCode.load_cached("Common", "Overflow.c"))
- code.putln('if (unlikely(%s == __PYX_MIN(%s))) {\
- PyErr_SetString(PyExc_OverflowError,\
- "Trying to take the absolute value of the most negative integer is not defined."); %s; }' % (
- self.args[0].result(),
- self.args[0].type.empty_declaration_code(),
- code.error_goto(self.pos)))
-
+ abs_function_cnames = ('abs', 'labs', '__Pyx_abs_longlong')
+ is_signed_int = self.type.is_int and self.type.signed
+ if self.overflowcheck and is_signed_int and function.result() in abs_function_cnames:
+ code.globalstate.use_utility_code(UtilityCode.load_cached("Common", "Overflow.c"))
+ code.putln('if (unlikely(%s == __PYX_MIN(%s))) {\
+ PyErr_SetString(PyExc_OverflowError,\
+ "Trying to take the absolute value of the most negative integer is not defined."); %s; }' % (
+ self.args[0].result(),
+ self.args[0].type.empty_declaration_code(),
+ code.error_goto(self.pos)))
+
if not function.type.is_pyobject or len(self.arg_tuple.args) > 1 or (
self.arg_tuple.args and self.arg_tuple.is_literal):
super(SimpleCallNode, self).generate_evaluation_code(code)
@@ -5960,7 +5960,7 @@ class SimpleCallNode(CallNode):
self.result() if self.type.is_pyobject else None,
func_type.exception_value, self.nogil)
else:
- if exc_checks:
+ if exc_checks:
goto_error = code.error_goto_if(" && ".join(exc_checks), self.pos)
else:
goto_error = ""
@@ -5971,13 +5971,13 @@ class SimpleCallNode(CallNode):
code.funcstate.release_temp(self.opt_arg_struct)
-class NumPyMethodCallNode(ExprNode):
+class NumPyMethodCallNode(ExprNode):
# Pythran call to a NumPy function or method.
#
- # function_cname string the function/method to call
- # arg_tuple TupleNode the arguments as an args tuple
+ # function_cname string the function/method to call
+ # arg_tuple TupleNode the arguments as an args tuple
- subexprs = ['arg_tuple']
+ subexprs = ['arg_tuple']
is_temp = True
may_return_none = True
@@ -5995,7 +5995,7 @@ class NumPyMethodCallNode(ExprNode):
code.putln("new (&%s) decltype(%s){%s{}(%s)};" % (
self.result(),
self.result(),
- self.function_cname,
+ self.function_cname,
", ".join(a.pythran_result() for a in args)))
@@ -6049,7 +6049,7 @@ class PyMethodCallNode(SimpleCallNode):
# not an attribute itself, but might have been assigned from one (e.g. bound method)
for assignment in self.function.cf_state:
value = assignment.rhs
- if value and value.is_attribute and value.obj.type and value.obj.type.is_pyobject:
+ if value and value.is_attribute and value.obj.type and value.obj.type.is_pyobject:
if attribute_is_likely_method(value):
likely_method = 'likely'
break
@@ -6669,7 +6669,7 @@ class MergedDictNode(ExprNode):
return dict_type
def analyse_types(self, env):
- self.keyword_args = [
+ self.keyword_args = [
arg.analyse_types(env).coerce_to_pyobject(env).as_none_safe_node(
# FIXME: CPython's error message starts with the runtime function name
'argument after ** must be a mapping, not NoneType')
@@ -6842,11 +6842,11 @@ class AttributeNode(ExprNode):
# FIXME: this is way too redundant with analyse_types()
node = self.analyse_as_cimported_attribute_node(env, target=False)
if node is not None:
- if node.entry.type and node.entry.type.is_cfunction:
- # special-case - function converted to pointer
- return PyrexTypes.CPtrType(node.entry.type)
- else:
- return node.entry.type
+ if node.entry.type and node.entry.type.is_cfunction:
+ # special-case - function converted to pointer
+ return PyrexTypes.CPtrType(node.entry.type)
+ else:
+ return node.entry.type
node = self.analyse_as_type_attribute(env)
if node is not None:
return node.entry.type
@@ -7279,8 +7279,8 @@ class AttributeNode(ExprNode):
self.member.upper(),
self.obj.result_as(self.obj.type),
rhs.result_as(self.ctype())))
- rhs.generate_disposal_code(code)
- rhs.free_temps(code)
+ rhs.generate_disposal_code(code)
+ rhs.free_temps(code)
else:
select_code = self.result()
if self.type.is_pyobject and self.use_managed_ref:
@@ -8131,16 +8131,16 @@ class ListNode(SequenceNode):
return t
def allocate_temp_result(self, code):
- if self.type.is_array:
- if self.in_module_scope:
- self.temp_code = code.funcstate.allocate_temp(
- self.type, manage_ref=False, static=True, reusable=False)
- else:
- # To be valid C++, we must allocate the memory on the stack
- # manually and be sure not to reuse it for something else.
- # Yes, this means that we leak a temp array variable.
- self.temp_code = code.funcstate.allocate_temp(
- self.type, manage_ref=False, reusable=False)
+ if self.type.is_array:
+ if self.in_module_scope:
+ self.temp_code = code.funcstate.allocate_temp(
+ self.type, manage_ref=False, static=True, reusable=False)
+ else:
+ # To be valid C++, we must allocate the memory on the stack
+ # manually and be sure not to reuse it for something else.
+ # Yes, this means that we leak a temp array variable.
+ self.temp_code = code.funcstate.allocate_temp(
+ self.type, manage_ref=False, reusable=False)
else:
SequenceNode.allocate_temp_result(self, code)
@@ -8955,11 +8955,11 @@ class ClassNode(ExprNode, ModuleNameMixin):
# a name, tuple of bases and class dictionary.
#
# name EncodedString Name of the class
- # class_def_node PyClassDefNode PyClassDefNode defining this class
+ # class_def_node PyClassDefNode PyClassDefNode defining this class
# doc ExprNode or None Doc string
# module_name EncodedString Name of defining module
- subexprs = ['doc']
+ subexprs = ['doc']
type = py_object_type
is_temp = True
@@ -8980,13 +8980,13 @@ class ClassNode(ExprNode, ModuleNameMixin):
gil_message = "Constructing Python class"
def generate_result_code(self, code):
- class_def_node = self.class_def_node
+ class_def_node = self.class_def_node
cname = code.intern_identifier(self.name)
if self.doc:
code.put_error_if_neg(self.pos,
'PyDict_SetItem(%s, %s, %s)' % (
- class_def_node.dict.py_result(),
+ class_def_node.dict.py_result(),
code.intern_identifier(
StringEncoding.EncodedString("__doc__")),
self.doc.py_result()))
@@ -8995,8 +8995,8 @@ class ClassNode(ExprNode, ModuleNameMixin):
code.putln(
'%s = __Pyx_CreateClass(%s, %s, %s, %s, %s); %s' % (
self.result(),
- class_def_node.bases.py_result(),
- class_def_node.dict.py_result(),
+ class_def_node.bases.py_result(),
+ class_def_node.dict.py_result(),
cname,
qualname,
py_mod_name,
@@ -9011,7 +9011,7 @@ class Py3ClassNode(ExprNode):
#
# name EncodedString Name of the class
# module_name EncodedString Name of defining module
- # class_def_node PyClassDefNode PyClassDefNode defining this class
+ # class_def_node PyClassDefNode PyClassDefNode defining this class
# calculate_metaclass bool should call CalculateMetaclass()
# allow_py2_metaclass bool should look for Py2 metaclass
@@ -9034,10 +9034,10 @@ class Py3ClassNode(ExprNode):
def generate_result_code(self, code):
code.globalstate.use_utility_code(UtilityCode.load_cached("Py3ClassCreate", "ObjectHandling.c"))
cname = code.intern_identifier(self.name)
- class_def_node = self.class_def_node
- mkw = class_def_node.mkw.py_result() if class_def_node.mkw else 'NULL'
- if class_def_node.metaclass:
- metaclass = class_def_node.metaclass.py_result()
+ class_def_node = self.class_def_node
+ mkw = class_def_node.mkw.py_result() if class_def_node.mkw else 'NULL'
+ if class_def_node.metaclass:
+ metaclass = class_def_node.metaclass.py_result()
else:
metaclass = "((PyObject*)&__Pyx_DefaultClassType)"
code.putln(
@@ -9045,8 +9045,8 @@ class Py3ClassNode(ExprNode):
self.result(),
metaclass,
cname,
- class_def_node.bases.py_result(),
- class_def_node.dict.py_result(),
+ class_def_node.bases.py_result(),
+ class_def_node.dict.py_result(),
mkw,
self.calculate_metaclass,
self.allow_py2_metaclass,
@@ -9057,7 +9057,7 @@ class Py3ClassNode(ExprNode):
class PyClassMetaclassNode(ExprNode):
# Helper class holds Python3 metaclass object
#
- # class_def_node PyClassDefNode PyClassDefNode defining this class
+ # class_def_node PyClassDefNode PyClassDefNode defining this class
subexprs = []
@@ -9070,38 +9070,38 @@ class PyClassMetaclassNode(ExprNode):
return True
def generate_result_code(self, code):
- bases = self.class_def_node.bases
- mkw = self.class_def_node.mkw
- if mkw:
+ bases = self.class_def_node.bases
+ mkw = self.class_def_node.mkw
+ if mkw:
code.globalstate.use_utility_code(
UtilityCode.load_cached("Py3MetaclassGet", "ObjectHandling.c"))
call = "__Pyx_Py3MetaclassGet(%s, %s)" % (
- bases.result(),
- mkw.result())
+ bases.result(),
+ mkw.result())
else:
code.globalstate.use_utility_code(
UtilityCode.load_cached("CalculateMetaclass", "ObjectHandling.c"))
call = "__Pyx_CalculateMetaclass(NULL, %s)" % (
- bases.result())
+ bases.result())
code.putln(
"%s = %s; %s" % (
self.result(), call,
code.error_goto_if_null(self.result(), self.pos)))
code.put_gotref(self.py_result())
-
+
class PyClassNamespaceNode(ExprNode, ModuleNameMixin):
# Helper class holds Python3 namespace object
#
# All this are not owned by this node
- # class_def_node PyClassDefNode PyClassDefNode defining this class
+ # class_def_node PyClassDefNode PyClassDefNode defining this class
# doc ExprNode or None Doc string (owned)
subexprs = ['doc']
def analyse_types(self, env):
if self.doc:
- self.doc = self.doc.analyse_types(env).coerce_to_pyobject(env)
+ self.doc = self.doc.analyse_types(env).coerce_to_pyobject(env)
self.type = py_object_type
self.is_temp = 1
return self
@@ -9113,16 +9113,16 @@ class PyClassNamespaceNode(ExprNode, ModuleNameMixin):
cname = code.intern_identifier(self.name)
py_mod_name = self.get_py_mod_name(code)
qualname = self.get_py_qualified_name(code)
- class_def_node = self.class_def_node
- null = "(PyObject *) NULL"
- doc_code = self.doc.result() if self.doc else null
- mkw = class_def_node.mkw.py_result() if class_def_node.mkw else null
- metaclass = class_def_node.metaclass.py_result() if class_def_node.metaclass else null
+ class_def_node = self.class_def_node
+ null = "(PyObject *) NULL"
+ doc_code = self.doc.result() if self.doc else null
+ mkw = class_def_node.mkw.py_result() if class_def_node.mkw else null
+ metaclass = class_def_node.metaclass.py_result() if class_def_node.metaclass else null
code.putln(
"%s = __Pyx_Py3MetaclassPrepare(%s, %s, %s, %s, %s, %s, %s); %s" % (
self.result(),
metaclass,
- class_def_node.bases.result(),
+ class_def_node.bases.result(),
cname,
qualname,
mkw,
@@ -9142,20 +9142,20 @@ class ClassCellInjectorNode(ExprNode):
def analyse_expressions(self, env):
return self
- def generate_result_code(self, code):
- assert self.is_active
- code.putln(
- '%s = PyList_New(0); %s' % (
- self.result(),
- code.error_goto_if_null(self.result(), self.pos)))
- code.put_gotref(self.result())
+ def generate_result_code(self, code):
+ assert self.is_active
+ code.putln(
+ '%s = PyList_New(0); %s' % (
+ self.result(),
+ code.error_goto_if_null(self.result(), self.pos)))
+ code.put_gotref(self.result())
def generate_injection_code(self, code, classobj_cname):
- assert self.is_active
- code.globalstate.use_utility_code(
- UtilityCode.load_cached("CyFunctionClassCell", "CythonFunction.c"))
- code.put_error_if_neg(self.pos, '__Pyx_CyFunction_InitClassCell(%s, %s)' % (
- self.result(), classobj_cname))
+ assert self.is_active
+ code.globalstate.use_utility_code(
+ UtilityCode.load_cached("CyFunctionClassCell", "CythonFunction.c"))
+ code.put_error_if_neg(self.pos, '__Pyx_CyFunction_InitClassCell(%s, %s)' % (
+ self.result(), classobj_cname))
class ClassCellNode(ExprNode):
@@ -9404,11 +9404,11 @@ class PyCFunctionNode(ExprNode, ModuleNameMixin):
if self.specialized_cpdefs or self.is_specialization:
code.globalstate.use_utility_code(
UtilityCode.load_cached("FusedFunction", "CythonFunction.c"))
- constructor = "__pyx_FusedFunction_New"
+ constructor = "__pyx_FusedFunction_New"
else:
code.globalstate.use_utility_code(
UtilityCode.load_cached("CythonFunction", "CythonFunction.c"))
- constructor = "__Pyx_CyFunction_New"
+ constructor = "__Pyx_CyFunction_New"
if self.code_object:
code_object_result = self.code_object.py_result()
@@ -10707,20 +10707,20 @@ class CythonArrayNode(ExprNode):
code.putln(code.error_goto(self.operand.pos))
code.putln("}")
- code.putln("%s = __pyx_format_from_typeinfo(&%s); %s" % (
- format_temp,
- type_info,
- code.error_goto_if_null(format_temp, self.pos),
- ))
- code.put_gotref(format_temp)
-
+ code.putln("%s = __pyx_format_from_typeinfo(&%s); %s" % (
+ format_temp,
+ type_info,
+ code.error_goto_if_null(format_temp, self.pos),
+ ))
+ code.put_gotref(format_temp)
+
buildvalue_fmt = " __PYX_BUILD_PY_SSIZE_T " * len(shapes)
- code.putln('%s = Py_BuildValue((char*) "(" %s ")", %s); %s' % (
- shapes_temp,
- buildvalue_fmt,
- ", ".join(shapes),
- code.error_goto_if_null(shapes_temp, self.pos),
- ))
+ code.putln('%s = Py_BuildValue((char*) "(" %s ")", %s); %s' % (
+ shapes_temp,
+ buildvalue_fmt,
+ ", ".join(shapes),
+ code.error_goto_if_null(shapes_temp, self.pos),
+ ))
code.put_gotref(shapes_temp)
tup = (self.result(), shapes_temp, itemsize, format_temp,
@@ -10875,10 +10875,10 @@ class TypeidNode(ExprNode):
typeinfo_entry = typeinfo_module.lookup('type_info')
return PyrexTypes.CFakeReferenceType(PyrexTypes.c_const_type(typeinfo_entry.type))
- cpp_message = 'typeid operator'
-
+ cpp_message = 'typeid operator'
+
def analyse_types(self, env):
- self.cpp_check(env)
+ self.cpp_check(env)
type_info = self.get_type_info_type(env)
if not type_info:
self.error("The 'libcpp.typeinfo' module must be cimported to use the typeid() operator")
@@ -11415,24 +11415,24 @@ class AddNode(NumBinopNode):
self, type1, type2)
def py_operation_function(self, code):
- type1, type2 = self.operand1.type, self.operand2.type
-
- if type1 is unicode_type or type2 is unicode_type:
- if type1 in (unicode_type, str_type) and type2 in (unicode_type, str_type):
- is_unicode_concat = True
- elif isinstance(self.operand1, FormattedValueNode) or isinstance(self.operand2, FormattedValueNode):
- # Assume that even if we don't know the second type, it's going to be a string.
- is_unicode_concat = True
+ type1, type2 = self.operand1.type, self.operand2.type
+
+ if type1 is unicode_type or type2 is unicode_type:
+ if type1 in (unicode_type, str_type) and type2 in (unicode_type, str_type):
+ is_unicode_concat = True
+ elif isinstance(self.operand1, FormattedValueNode) or isinstance(self.operand2, FormattedValueNode):
+ # Assume that even if we don't know the second type, it's going to be a string.
+ is_unicode_concat = True
else:
- # Operation depends on the second type.
- is_unicode_concat = False
-
- if is_unicode_concat:
- if self.operand1.may_be_none() or self.operand2.may_be_none():
- return '__Pyx_PyUnicode_ConcatSafe'
- else:
- return '__Pyx_PyUnicode_Concat'
-
+ # Operation depends on the second type.
+ is_unicode_concat = False
+
+ if is_unicode_concat:
+ if self.operand1.may_be_none() or self.operand2.may_be_none():
+ return '__Pyx_PyUnicode_ConcatSafe'
+ else:
+ return '__Pyx_PyUnicode_Concat'
+
return super(AddNode, self).py_operation_function(code)
@@ -12515,8 +12515,8 @@ class CmpNode(object):
result_code if self.type.is_pyobject else None,
self.exception_value,
self.in_nogil_context)
- else:
- code.putln(statement)
+ else:
+ code.putln(statement)
def c_operator(self, op):
if op == 'is':
@@ -12976,7 +12976,7 @@ class CoerceToMemViewSliceNode(CoercionNode):
self.is_temp = 1
self.use_managed_ref = True
self.arg = arg
- self.type.create_from_py_utility_code(env)
+ self.type.create_from_py_utility_code(env)
def generate_result_code(self, code):
code.putln(self.type.from_py_call_code(
@@ -13079,19 +13079,19 @@ class PyTypeTestNode(CoercionNode):
def generate_post_assignment_code(self, code):
self.arg.generate_post_assignment_code(code)
- def allocate_temp_result(self, code):
- pass
-
- def release_temp_result(self, code):
- pass
-
+ def allocate_temp_result(self, code):
+ pass
+
+ def release_temp_result(self, code):
+ pass
+
def free_temps(self, code):
self.arg.free_temps(code)
- def free_subexpr_temps(self, code):
- self.arg.free_subexpr_temps(code)
+ def free_subexpr_temps(self, code):
+ self.arg.free_subexpr_temps(code)
+
-
class NoneCheckNode(CoercionNode):
# This node is used to check that a Python object is not None and
# raises an appropriate exception (as specified by the creating
diff --git a/contrib/tools/cython/Cython/Compiler/FlowControl.py b/contrib/tools/cython/Cython/Compiler/FlowControl.py
index 2f5002d14d..df04471f90 100644
--- a/contrib/tools/cython/Cython/Compiler/FlowControl.py
+++ b/contrib/tools/cython/Cython/Compiler/FlowControl.py
@@ -884,12 +884,12 @@ class ControlFlowAnalysis(CythonTransform):
self.mark_position(node)
return node
- def visit_SizeofVarNode(self, node):
- return node
-
- def visit_TypeidNode(self, node):
- return node
-
+ def visit_SizeofVarNode(self, node):
+ return node
+
+ def visit_TypeidNode(self, node):
+ return node
+
def visit_IfStatNode(self, node):
next_block = self.flow.newblock()
parent = self.flow.block
@@ -1232,18 +1232,18 @@ class ControlFlowAnalysis(CythonTransform):
self.mark_position(node)
self.visitchildren(node)
- outer_exception_handlers = iter(self.flow.exceptions[::-1])
- for handler in outer_exception_handlers:
- if handler.finally_enter:
- self.flow.block.add_child(handler.finally_enter)
- if handler.finally_exit:
- # 'return' goes to function exit, or to the next outer 'finally' clause
- exit_point = self.flow.exit_point
- for next_handler in outer_exception_handlers:
- if next_handler.finally_enter:
- exit_point = next_handler.finally_enter
- break
- handler.finally_exit.add_child(exit_point)
+ outer_exception_handlers = iter(self.flow.exceptions[::-1])
+ for handler in outer_exception_handlers:
+ if handler.finally_enter:
+ self.flow.block.add_child(handler.finally_enter)
+ if handler.finally_exit:
+ # 'return' goes to function exit, or to the next outer 'finally' clause
+ exit_point = self.flow.exit_point
+ for next_handler in outer_exception_handlers:
+ if next_handler.finally_enter:
+ exit_point = next_handler.finally_enter
+ break
+ handler.finally_exit.add_child(exit_point)
break
else:
if self.flow.block:
diff --git a/contrib/tools/cython/Cython/Compiler/FusedNode.py b/contrib/tools/cython/Cython/Compiler/FusedNode.py
index f31b74e7a6..26d6ffd3d6 100644
--- a/contrib/tools/cython/Cython/Compiler/FusedNode.py
+++ b/contrib/tools/cython/Cython/Compiler/FusedNode.py
@@ -507,22 +507,22 @@ class FusedCFuncDefNode(StatListNode):
ndarray = __Pyx_ImportNumPyArrayTypeIfAvailable()
""")
- seen_typedefs = set()
+ seen_typedefs = set()
seen_int_dtypes = set()
for buffer_type in all_buffer_types:
dtype = buffer_type.dtype
- dtype_name = self._dtype_name(dtype)
+ dtype_name = self._dtype_name(dtype)
if dtype.is_typedef:
- if dtype_name not in seen_typedefs:
- seen_typedefs.add(dtype_name)
- decl_code.putln(
- 'ctypedef %s %s "%s"' % (dtype.resolve(), dtype_name,
- dtype.empty_declaration_code()))
+ if dtype_name not in seen_typedefs:
+ seen_typedefs.add(dtype_name)
+ decl_code.putln(
+ 'ctypedef %s %s "%s"' % (dtype.resolve(), dtype_name,
+ dtype.empty_declaration_code()))
if buffer_type.dtype.is_int:
if str(dtype) not in seen_int_dtypes:
seen_int_dtypes.add(str(dtype))
- pyx_code.context.update(dtype_name=dtype_name,
+ pyx_code.context.update(dtype_name=dtype_name,
dtype_type=self._dtype_type(dtype))
pyx_code.local_variable_declarations.put_chunk(
u"""
@@ -878,23 +878,23 @@ class FusedCFuncDefNode(StatListNode):
(self.resulting_fused_function.result(),
self.__signatures__.result()))
code.put_giveref(self.__signatures__.result())
- self.__signatures__.generate_post_assignment_code(code)
- self.__signatures__.free_temps(code)
+ self.__signatures__.generate_post_assignment_code(code)
+ self.__signatures__.free_temps(code)
self.fused_func_assignment.generate_execution_code(code)
# Dispose of results
self.resulting_fused_function.generate_disposal_code(code)
- self.resulting_fused_function.free_temps(code)
+ self.resulting_fused_function.free_temps(code)
self.defaults_tuple.generate_disposal_code(code)
- self.defaults_tuple.free_temps(code)
+ self.defaults_tuple.free_temps(code)
self.code_object.generate_disposal_code(code)
- self.code_object.free_temps(code)
+ self.code_object.free_temps(code)
for default in self.defaults:
if default is not None:
default.generate_disposal_code(code)
- default.free_temps(code)
+ default.free_temps(code)
def annotate(self, code):
for stat in self.stats:
diff --git a/contrib/tools/cython/Cython/Compiler/MemoryView.py b/contrib/tools/cython/Cython/Compiler/MemoryView.py
index fc46861dc1..0406d6c716 100644
--- a/contrib/tools/cython/Cython/Compiler/MemoryView.py
+++ b/contrib/tools/cython/Cython/Compiler/MemoryView.py
@@ -307,7 +307,7 @@ class MemoryViewSliceBufferEntry(Buffer.BufferEntry):
util_name = "SimpleSlice"
else:
util_name = "ToughSlice"
- d['error_goto'] = code.error_goto(index.pos)
+ d['error_goto'] = code.error_goto(index.pos)
new_ndim += 1
else:
@@ -325,10 +325,10 @@ class MemoryViewSliceBufferEntry(Buffer.BufferEntry):
d = dict(
locals(),
wraparound=int(directives['wraparound']),
- boundscheck=int(directives['boundscheck']),
+ boundscheck=int(directives['boundscheck']),
)
- if d['boundscheck']:
- d['error_goto'] = code.error_goto(index.pos)
+ if d['boundscheck']:
+ d['error_goto'] = code.error_goto(index.pos)
util_name = "SliceIndex"
_, impl = TempitaUtilityCode.load_as_string(util_name, "MemoryView_C.c", context=d)
diff --git a/contrib/tools/cython/Cython/Compiler/ModuleNode.py b/contrib/tools/cython/Cython/Compiler/ModuleNode.py
index b30be60dfe..cd7166408e 100644
--- a/contrib/tools/cython/Cython/Compiler/ModuleNode.py
+++ b/contrib/tools/cython/Cython/Compiler/ModuleNode.py
@@ -176,7 +176,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
h_guard = Naming.h_guard_prefix + self.api_name(env)
h_code.put_h_guard(h_guard)
h_code.putln("")
- h_code.putln('#include "Python.h"')
+ h_code.putln('#include "Python.h"')
self.generate_type_header_code(h_types, h_code)
if options.capi_reexport_cincludes:
self.generate_includes(env, [], h_code)
@@ -430,11 +430,11 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
except ImportError:
import xml.etree.ElementTree as ET
coverage_xml = ET.parse(coverage_xml_filename).getroot()
- if hasattr(coverage_xml, 'iter'):
- iterator = coverage_xml.iter() # Python 2.7 & 3.2+
- else:
- iterator = coverage_xml.getiterator()
- for el in iterator:
+ if hasattr(coverage_xml, 'iter'):
+ iterator = coverage_xml.iter() # Python 2.7 & 3.2+
+ else:
+ iterator = coverage_xml.getiterator()
+ for el in iterator:
el.tail = None # save some memory
else:
coverage_xml = None
@@ -580,17 +580,17 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
for entry in vtabslot_list:
self.generate_objstruct_predeclaration(entry.type, code)
vtabslot_entries = set(vtabslot_list)
- ctuple_names = set()
+ ctuple_names = set()
for module in modules:
definition = module is env
- type_entries = []
- for entry in module.type_entries:
- if entry.type.is_ctuple and entry.used:
- if entry.name not in ctuple_names:
- ctuple_names.add(entry.name)
+ type_entries = []
+ for entry in module.type_entries:
+ if entry.type.is_ctuple and entry.used:
+ if entry.name not in ctuple_names:
+ ctuple_names.add(entry.name)
type_entries.append(entry)
- elif definition or entry.defined_in_pxd:
- type_entries.append(entry)
+ elif definition or entry.defined_in_pxd:
+ type_entries.append(entry)
type_entries = [t for t in type_entries if t not in vtabslot_entries]
self.generate_type_header_code(type_entries, code)
for entry in vtabslot_list:
@@ -635,10 +635,10 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln(json.dumps(metadata, indent=4, sort_keys=True))
code.putln("END: Cython Metadata */")
code.putln("")
-
- code.putln("#ifndef PY_SSIZE_T_CLEAN")
+
+ code.putln("#ifndef PY_SSIZE_T_CLEAN")
code.putln("#define PY_SSIZE_T_CLEAN")
- code.putln("#endif /* PY_SSIZE_T_CLEAN */")
+ code.putln("#endif /* PY_SSIZE_T_CLEAN */")
for inc in sorted(env.c_includes.values(), key=IncludeCode.sortkey):
if inc.location == inc.INITIAL:
@@ -666,19 +666,19 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
self._put_setup_code(code, "PythonCompatibility")
self._put_setup_code(code, "MathInitCode")
- # Using "(void)cname" to prevent "unused" warnings.
+ # Using "(void)cname" to prevent "unused" warnings.
if options.c_line_in_traceback:
- cinfo = "%s = %s; (void)%s; " % (Naming.clineno_cname, Naming.line_c_macro, Naming.clineno_cname)
+ cinfo = "%s = %s; (void)%s; " % (Naming.clineno_cname, Naming.line_c_macro, Naming.clineno_cname)
else:
cinfo = ""
- code.putln("#define __PYX_MARK_ERR_POS(f_index, lineno) \\")
- code.putln(" { %s = %s[f_index]; (void)%s; %s = lineno; (void)%s; %s}" % (
- Naming.filename_cname, Naming.filetable_cname, Naming.filename_cname,
- Naming.lineno_cname, Naming.lineno_cname,
- cinfo
- ))
- code.putln("#define __PYX_ERR(f_index, lineno, Ln_error) \\")
- code.putln(" { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }")
+ code.putln("#define __PYX_MARK_ERR_POS(f_index, lineno) \\")
+ code.putln(" { %s = %s[f_index]; (void)%s; %s = lineno; (void)%s; %s}" % (
+ Naming.filename_cname, Naming.filetable_cname, Naming.filename_cname,
+ Naming.lineno_cname, Naming.lineno_cname,
+ cinfo
+ ))
+ code.putln("#define __PYX_ERR(f_index, lineno, Ln_error) \\")
+ code.putln(" { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }")
code.putln("")
self.generate_extern_c_macro_definition(code)
@@ -1236,10 +1236,10 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
type = entry.type
scope = type.scope
if scope: # could be None if there was an error
- if not scope.directives['c_api_binop_methods']:
- error(self.pos,
- "The 'c_api_binop_methods' directive is only supported for forward compatibility"
- " and must be True.")
+ if not scope.directives['c_api_binop_methods']:
+ error(self.pos,
+ "The 'c_api_binop_methods' directive is only supported for forward compatibility"
+ " and must be True.")
self.generate_exttype_vtable(scope, code)
self.generate_new_function(scope, code, entry)
self.generate_dealloc_function(scope, code)
@@ -1571,11 +1571,11 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln("{")
code.putln("PyObject *etype, *eval, *etb;")
code.putln("PyErr_Fetch(&etype, &eval, &etb);")
- # increase the refcount while we are calling into user code
- # to prevent recursive deallocation
- code.putln("__Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);")
+ # increase the refcount while we are calling into user code
+ # to prevent recursive deallocation
+ code.putln("__Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);")
code.putln("%s(o);" % entry.func_cname)
- code.putln("__Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);")
+ code.putln("__Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);")
code.putln("PyErr_Restore(etype, eval, etb);")
code.putln("}")
@@ -2315,7 +2315,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.exit_cfunc_scope() # done with labels
def generate_module_init_func(self, imported_modules, env, options, code):
- subfunction = self.mod_init_subfunction(self.pos, self.scope, code)
+ subfunction = self.mod_init_subfunction(self.pos, self.scope, code)
code.enter_cfunc_scope(self.scope)
code.putln("")
@@ -2413,8 +2413,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.put_error_if_neg(self.pos, "_import_array()")
code.putln("/*--- Threads initialization code ---*/")
- code.putln("#if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 "
- "&& defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS")
+ code.putln("#if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 "
+ "&& defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS")
code.putln("PyEval_InitThreads();")
code.putln("#endif")
@@ -2441,10 +2441,10 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
if Options.cache_builtins:
code.putln("/*--- Builtin init code ---*/")
- code.put_error_if_neg(self.pos, "__Pyx_InitCachedBuiltins()")
+ code.put_error_if_neg(self.pos, "__Pyx_InitCachedBuiltins()")
code.putln("/*--- Constants init code ---*/")
- code.put_error_if_neg(self.pos, "__Pyx_InitCachedConstants()")
+ code.put_error_if_neg(self.pos, "__Pyx_InitCachedConstants()")
code.putln("/*--- Global type/function init code ---*/")
@@ -2535,7 +2535,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.exit_cfunc_scope()
- def mod_init_subfunction(self, pos, scope, orig_code):
+ def mod_init_subfunction(self, pos, scope, orig_code):
"""
Return a context manager that allows deviating the module init code generation
into a separate function and instead inserts a call to it.
@@ -2591,8 +2591,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln("")
if needs_error_handling:
- self.call_code.putln(
- self.call_code.error_goto_if_neg("%s()" % self.cfunc_name, pos))
+ self.call_code.putln(
+ self.call_code.error_goto_if_neg("%s()" % self.cfunc_name, pos))
else:
self.call_code.putln("(void)%s();" % self.cfunc_name)
self.call_code = None
@@ -2671,8 +2671,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln('static void %s(CYTHON_UNUSED PyObject *self) {' %
Naming.cleanup_cname)
- code.enter_cfunc_scope(env)
-
+ code.enter_cfunc_scope(env)
+
if Options.generate_cleanup_code >= 2:
code.putln("/*--- Global cleanup code ---*/")
rev_entries = list(env.var_entries)
@@ -2962,7 +2962,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
module.qualified_name,
temp,
code.error_goto(self.pos)))
- code.put_gotref(temp)
+ code.put_gotref(temp)
for entry in entries:
if env is module:
cname = entry.cname
@@ -2973,8 +2973,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
'if (__Pyx_ImportVoidPtr(%s, "%s", (void **)&%s, "%s") < 0) %s' % (
temp, entry.name, cname, signature,
code.error_goto(self.pos)))
- code.put_decref_clear(temp, py_object_type)
- code.funcstate.release_temp(temp)
+ code.put_decref_clear(temp, py_object_type)
+ code.funcstate.release_temp(temp)
def generate_c_function_import_code_for_module(self, module, env, code):
# Generate import code for all exported C functions in a cimported module.
@@ -2992,7 +2992,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
module.qualified_name,
temp,
code.error_goto(self.pos)))
- code.put_gotref(temp)
+ code.put_gotref(temp)
for entry in entries:
code.putln(
'if (__Pyx_ImportFunction(%s, "%s", (void (**)(void))&%s, "%s") < 0) %s' % (
@@ -3001,8 +3001,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
entry.cname,
entry.type.signature_string(),
code.error_goto(self.pos)))
- code.put_decref_clear(temp, py_object_type)
- code.funcstate.release_temp(temp)
+ code.put_decref_clear(temp, py_object_type)
+ code.funcstate.release_temp(temp)
def generate_type_init_code(self, env, code):
# Generate type import code for extern extension types
diff --git a/contrib/tools/cython/Cython/Compiler/Nodes.py b/contrib/tools/cython/Cython/Compiler/Nodes.py
index 8c7952e804..6436c5002d 100644
--- a/contrib/tools/cython/Cython/Compiler/Nodes.py
+++ b/contrib/tools/cython/Cython/Compiler/Nodes.py
@@ -1048,8 +1048,8 @@ class CSimpleBaseTypeNode(CBaseTypeNode):
type = PyrexTypes.TemplatePlaceholderType(self.name)
else:
error(self.pos, "'%s' is not a type identifier" % self.name)
- if type and type.is_fused and env.fused_to_specific:
- type = type.specialize(env.fused_to_specific)
+ if type and type.is_fused and env.fused_to_specific:
+ type = type.specialize(env.fused_to_specific)
if self.complex:
if not type.is_numeric or type.is_complex:
error(self.pos, "can only complexify c numeric types")
@@ -1382,9 +1382,9 @@ class CVarDefNode(StatNode):
self.entry.type.create_to_py_utility_code(env)
self.entry.create_wrapper = True
else:
- if self.overridable:
- warning(self.pos, "cpdef variables will not be supported in Cython 3; "
- "currently they are no different from cdef variables", 2)
+ if self.overridable:
+ warning(self.pos, "cpdef variables will not be supported in Cython 3; "
+ "currently they are no different from cdef variables", 2)
if self.directive_locals:
error(self.pos, "Decorators can only be followed by functions")
self.entry = dest_scope.declare_var(
@@ -3235,14 +3235,14 @@ class DefNode(FuncDefNode):
def put_into_closure(entry):
if entry.in_closure:
code.putln('%s = %s;' % (entry.cname, entry.original_cname))
- if entry.xdecref_cleanup:
- # mostly applies to the starstar arg - this can sometimes be NULL
- # so must be xincrefed instead
- code.put_var_xincref(entry)
- code.put_var_xgiveref(entry)
- else:
- code.put_var_incref(entry)
- code.put_var_giveref(entry)
+ if entry.xdecref_cleanup:
+ # mostly applies to the starstar arg - this can sometimes be NULL
+ # so must be xincrefed instead
+ code.put_var_xincref(entry)
+ code.put_var_xgiveref(entry)
+ else:
+ code.put_var_incref(entry)
+ code.put_var_giveref(entry)
for arg in self.args:
put_into_closure(arg.entry)
for arg in self.star_arg, self.starstar_arg:
@@ -4156,10 +4156,10 @@ class GeneratorBodyDefNode(DefNode):
cname=cname, visibility='private')
entry.func_cname = cname
entry.qualified_name = EncodedString(self.name)
- # Work-around for https://github.com/cython/cython/issues/1699
- # We don't currently determine whether the generator entry is used or not,
- # so mark it as used to avoid false warnings.
- entry.used = True
+ # Work-around for https://github.com/cython/cython/issues/1699
+ # We don't currently determine whether the generator entry is used or not,
+ # so mark it as used to avoid false warnings.
+ entry.used = True
self.entry = entry
def analyse_declarations(self, env):
@@ -4511,22 +4511,22 @@ class PyClassDefNode(ClassDefNode):
pass # no base classes => no inherited metaclass
else:
self.metaclass = ExprNodes.PyClassMetaclassNode(
- pos, class_def_node=self)
+ pos, class_def_node=self)
needs_metaclass_calculation = False
else:
needs_metaclass_calculation = True
self.dict = ExprNodes.PyClassNamespaceNode(
- pos, name=name, doc=doc_node, class_def_node=self)
+ pos, name=name, doc=doc_node, class_def_node=self)
self.classobj = ExprNodes.Py3ClassNode(
- pos, name=name, class_def_node=self, doc=doc_node,
+ pos, name=name, class_def_node=self, doc=doc_node,
calculate_metaclass=needs_metaclass_calculation,
allow_py2_metaclass=allow_py2_metaclass)
else:
# no bases, no metaclass => old style class creation
self.dict = ExprNodes.DictNode(pos, key_value_pairs=[])
self.classobj = ExprNodes.ClassNode(
- pos, name=name, class_def_node=self, doc=doc_node)
+ pos, name=name, class_def_node=self, doc=doc_node)
self.target = ExprNodes.NameNode(pos, name=name)
self.class_cell = ExprNodes.ClassCellInjectorNode(self.pos)
@@ -4544,7 +4544,7 @@ class PyClassDefNode(ClassDefNode):
visibility='private',
module_name=None,
class_name=self.name,
- bases=self.bases or ExprNodes.TupleNode(self.pos, args=[]),
+ bases=self.bases or ExprNodes.TupleNode(self.pos, args=[]),
decorators=self.decorators,
body=self.body,
in_pxd=False,
@@ -4568,10 +4568,10 @@ class PyClassDefNode(ClassDefNode):
args=[class_result])
self.decorators = None
self.class_result = class_result
- if self.bases:
- self.bases.analyse_declarations(env)
- if self.mkw:
- self.mkw.analyse_declarations(env)
+ if self.bases:
+ self.bases.analyse_declarations(env)
+ if self.mkw:
+ self.mkw.analyse_declarations(env)
self.class_result.analyse_declarations(env)
self.target.analyse_target_declaration(env)
cenv = self.create_scope(env)
@@ -4582,8 +4582,8 @@ class PyClassDefNode(ClassDefNode):
def analyse_expressions(self, env):
if self.bases:
self.bases = self.bases.analyse_expressions(env)
- if self.mkw:
- self.mkw = self.mkw.analyse_expressions(env)
+ if self.mkw:
+ self.mkw = self.mkw.analyse_expressions(env)
if self.metaclass:
self.metaclass = self.metaclass.analyse_expressions(env)
self.dict = self.dict.analyse_expressions(env)
@@ -4610,22 +4610,22 @@ class PyClassDefNode(ClassDefNode):
self.metaclass.generate_evaluation_code(code)
self.dict.generate_evaluation_code(code)
cenv.namespace_cname = cenv.class_obj_cname = self.dict.result()
-
- class_cell = self.class_cell
- if class_cell is not None and not class_cell.is_active:
- class_cell = None
-
- if class_cell is not None:
- class_cell.generate_evaluation_code(code)
+
+ class_cell = self.class_cell
+ if class_cell is not None and not class_cell.is_active:
+ class_cell = None
+
+ if class_cell is not None:
+ class_cell.generate_evaluation_code(code)
self.body.generate_execution_code(code)
self.class_result.generate_evaluation_code(code)
- if class_cell is not None:
- class_cell.generate_injection_code(
- code, self.class_result.result())
- if class_cell is not None:
- class_cell.generate_disposal_code(code)
- class_cell.free_temps(code)
-
+ if class_cell is not None:
+ class_cell.generate_injection_code(
+ code, self.class_result.result())
+ if class_cell is not None:
+ class_cell.generate_disposal_code(code)
+ class_cell.free_temps(code)
+
cenv.namespace_cname = cenv.class_obj_cname = self.classobj.result()
self.target.generate_assignment_code(self.class_result, code)
self.dict.generate_disposal_code(code)
@@ -5876,7 +5876,7 @@ class DelStatNode(StatNode):
arg.generate_evaluation_code(code)
code.putln("delete %s;" % arg.result())
arg.generate_disposal_code(code)
- arg.free_temps(code)
+ arg.free_temps(code)
# else error reported earlier
def annotate(self, code):
@@ -6005,7 +6005,7 @@ class ReturnStatNode(StatNode):
rhs=value,
code=code,
have_gil=self.in_nogil_context)
- value.generate_post_assignment_code(code)
+ value.generate_post_assignment_code(code)
elif self.in_generator:
# return value == raise StopIteration(value), but uncatchable
code.globalstate.use_utility_code(
@@ -6019,7 +6019,7 @@ class ReturnStatNode(StatNode):
code.putln("%s = %s;" % (
Naming.retval_cname,
value.result_as(self.return_type)))
- value.generate_post_assignment_code(code)
+ value.generate_post_assignment_code(code)
value.free_temps(code)
else:
if self.return_type.is_pyobject:
@@ -6421,8 +6421,8 @@ class SwitchStatNode(StatNode):
# generate the switch statement, so shouldn't be bothered).
code.putln("default: break;")
code.putln("}")
- self.test.generate_disposal_code(code)
- self.test.free_temps(code)
+ self.test.generate_disposal_code(code)
+ self.test.free_temps(code)
def generate_function_definitions(self, env, code):
self.test.generate_function_definitions(env, code)
@@ -7688,8 +7688,8 @@ class TryFinallyStatNode(StatNode):
code.funcstate.release_temp(ret_temp)
if self.in_generator:
self.put_error_uncatcher(code, exc_vars)
- for cname in exc_vars:
- code.funcstate.release_temp(cname)
+ for cname in exc_vars:
+ code.funcstate.release_temp(cname)
if not self.finally_clause.is_terminator:
code.put_goto(old_label)
@@ -8786,11 +8786,11 @@ class ParallelStatNode(StatNode, ParallelNode):
self.begin_of_parallel_control_block_point = None
self.begin_of_parallel_control_block_point_after_decls = None
- if self.num_threads is not None:
- # FIXME: is it the right place? should not normally produce code.
- self.num_threads.generate_disposal_code(code)
- self.num_threads.free_temps(code)
-
+ if self.num_threads is not None:
+ # FIXME: is it the right place? should not normally produce code.
+ self.num_threads.generate_disposal_code(code)
+ self.num_threads.free_temps(code)
+
# Firstly, always prefer errors over returning, continue or break
if self.error_label_used:
c.putln("const char *%s = NULL; int %s = 0, %s = 0;" % self.parallel_pos_info)
@@ -9132,7 +9132,7 @@ class ParallelRangeNode(ParallelStatNode):
# TODO: check if the step is 0 and if so, raise an exception in a
# 'with gil' block. For now, just abort
- code.putln("if ((%(step)s == 0)) abort();" % fmt_dict)
+ code.putln("if ((%(step)s == 0)) abort();" % fmt_dict)
self.setup_parallel_control_flow_block(code) # parallel control flow block
@@ -9166,7 +9166,7 @@ class ParallelRangeNode(ParallelStatNode):
# And finally, release our privates and write back any closure
# variables
- for temp in start_stop_step + (self.chunksize,):
+ for temp in start_stop_step + (self.chunksize,):
if temp is not None:
temp.generate_disposal_code(code)
temp.free_temps(code)
@@ -9253,15 +9253,15 @@ class ParallelRangeNode(ParallelStatNode):
code.putln("%(target)s = (%(target_type)s)(%(start)s + %(step)s * %(i)s);" % fmt_dict)
self.initialize_privates_to_nan(code, exclude=self.target.entry)
- if self.is_parallel and not self.is_nested_prange:
- # nested pranges are not omp'ified, temps go to outer loops
+ if self.is_parallel and not self.is_nested_prange:
+ # nested pranges are not omp'ified, temps go to outer loops
code.funcstate.start_collecting_temps()
self.body.generate_execution_code(code)
self.trap_parallel_exit(code, should_flush=True)
- if self.is_parallel and not self.is_nested_prange:
- # nested pranges are not omp'ified, temps go to outer loops
- self.privatize_temps(code)
+ if self.is_parallel and not self.is_nested_prange:
+ # nested pranges are not omp'ified, temps go to outer loops
+ self.privatize_temps(code)
if self.breaking_label_used:
# Put a guard around the loop body in case return, break or
diff --git a/contrib/tools/cython/Cython/Compiler/Optimize.py b/contrib/tools/cython/Cython/Compiler/Optimize.py
index 65924b4a51..3cb77efe2c 100644
--- a/contrib/tools/cython/Cython/Compiler/Optimize.py
+++ b/contrib/tools/cython/Cython/Compiler/Optimize.py
@@ -285,7 +285,7 @@ class IterationTransform(Visitor.EnvTransform):
return self._transform_reversed_iteration(node, iterable)
# range() iteration?
- if Options.convert_range and 1 <= arg_count <= 3 and (
+ if Options.convert_range and 1 <= arg_count <= 3 and (
iterable.self is None and
function.is_name and function.name in ('range', 'xrange') and
function.entry and function.entry.is_builtin):
@@ -1347,10 +1347,10 @@ class FlattenInListTransform(Visitor.VisitorTransform, SkipDeclarations):
# note: lhs may have side effects
return node
- if any([arg.is_starred for arg in args]):
- # Starred arguments do not directly translate to comparisons or "in" tests.
- return node
-
+ if any([arg.is_starred for arg in args]):
+ # Starred arguments do not directly translate to comparisons or "in" tests.
+ return node
+
lhs = UtilNodes.ResultRefNode(node.operand1)
conds = []
@@ -4255,7 +4255,7 @@ class ConstantFolding(Visitor.VisitorTransform, SkipDeclarations):
string_node.unicode_value = encoded_string(
string_node.unicode_value * multiplier,
string_node.unicode_value.encoding)
- build_string = encoded_string if string_node.value.is_unicode else bytes_literal
+ build_string = encoded_string if string_node.value.is_unicode else bytes_literal
elif isinstance(string_node, ExprNodes.UnicodeNode):
if string_node.bytes_value is not None:
string_node.bytes_value = bytes_literal(
@@ -4263,14 +4263,14 @@ class ConstantFolding(Visitor.VisitorTransform, SkipDeclarations):
string_node.bytes_value.encoding)
else:
assert False, "unknown string node type: %s" % type(string_node)
- string_node.value = build_string(
+ string_node.value = build_string(
string_node.value * multiplier,
string_node.value.encoding)
- # follow constant-folding and use unicode_value in preference
- if isinstance(string_node, ExprNodes.StringNode) and string_node.unicode_value is not None:
- string_node.constant_result = string_node.unicode_value
- else:
- string_node.constant_result = string_node.value
+ # follow constant-folding and use unicode_value in preference
+ if isinstance(string_node, ExprNodes.StringNode) and string_node.unicode_value is not None:
+ string_node.constant_result = string_node.unicode_value
+ else:
+ string_node.constant_result = string_node.value
return string_node
def _calculate_constant_seq(self, node, sequence_node, factor):
@@ -4302,10 +4302,10 @@ class ConstantFolding(Visitor.VisitorTransform, SkipDeclarations):
return self.visit_BinopNode(node)
_parse_string_format_regex = (
- u'(%(?:' # %...
- u'(?:[-0-9]+|[ ])?' # width (optional) or space prefix fill character (optional)
- u'(?:[.][0-9]+)?' # precision (optional)
- u')?.)' # format type (or something different for unsupported formats)
+ u'(%(?:' # %...
+ u'(?:[-0-9]+|[ ])?' # width (optional) or space prefix fill character (optional)
+ u'(?:[.][0-9]+)?' # precision (optional)
+ u')?.)' # format type (or something different for unsupported formats)
)
def _build_fstring(self, pos, ustring, format_args):
@@ -4337,25 +4337,25 @@ class ConstantFolding(Visitor.VisitorTransform, SkipDeclarations):
break
if format_type in u'asrfdoxX':
format_spec = s[1:]
- conversion_char = None
+ conversion_char = None
if format_type in u'doxX' and u'.' in format_spec:
# Precision is not allowed for integers in format(), but ok in %-formatting.
can_be_optimised = False
elif format_type in u'ars':
format_spec = format_spec[:-1]
- conversion_char = format_type
- if format_spec.startswith('0'):
- format_spec = '>' + format_spec[1:] # right-alignment '%05s' spells '{:>5}'
- elif format_type == u'd':
- # '%d' formatting supports float, but '{obj:d}' does not => convert to int first.
- conversion_char = 'd'
-
- if format_spec.startswith('-'):
- format_spec = '<' + format_spec[1:] # left-alignment '%-5s' spells '{:<5}'
-
+ conversion_char = format_type
+ if format_spec.startswith('0'):
+ format_spec = '>' + format_spec[1:] # right-alignment '%05s' spells '{:>5}'
+ elif format_type == u'd':
+ # '%d' formatting supports float, but '{obj:d}' does not => convert to int first.
+ conversion_char = 'd'
+
+ if format_spec.startswith('-'):
+ format_spec = '<' + format_spec[1:] # left-alignment '%-5s' spells '{:<5}'
+
substrings.append(ExprNodes.FormattedValueNode(
arg.pos, value=arg,
- conversion_char=conversion_char,
+ conversion_char=conversion_char,
format_spec=ExprNodes.UnicodeNode(
pos, value=EncodedString(format_spec), constant_result=format_spec)
if format_spec else None,
diff --git a/contrib/tools/cython/Cython/Compiler/Options.py b/contrib/tools/cython/Cython/Compiler/Options.py
index 4bd586ee41..b3ffbcd927 100644
--- a/contrib/tools/cython/Cython/Compiler/Options.py
+++ b/contrib/tools/cython/Cython/Compiler/Options.py
@@ -181,7 +181,7 @@ _directive_defaults = {
'auto_pickle': None,
'cdivision': False, # was True before 0.12
'cdivision_warnings': False,
- 'c_api_binop_methods': True,
+ 'c_api_binop_methods': True,
'overflowcheck': False,
'overflowcheck.fold': True,
'always_allow_keywords': False,
diff --git a/contrib/tools/cython/Cython/Compiler/ParseTreeTransforms.py b/contrib/tools/cython/Cython/Compiler/ParseTreeTransforms.py
index 18dfb49aa1..0da3670cae 100644
--- a/contrib/tools/cython/Cython/Compiler/ParseTreeTransforms.py
+++ b/contrib/tools/cython/Cython/Compiler/ParseTreeTransforms.py
@@ -1161,7 +1161,7 @@ class ParallelRangeTransform(CythonTransform, SkipDeclarations):
def visit_CallNode(self, node):
self.visit(node.function)
if not self.parallel_directive:
- self.visitchildren(node, exclude=('function',))
+ self.visitchildren(node, exclude=('function',))
return node
# We are a parallel directive, replace this node with the
@@ -1764,9 +1764,9 @@ if VALUE is not None:
},
level='c_class', pipeline=[NormalizeTree(None)]).substitute({})
pickle_func.analyse_declarations(node.scope)
- self.enter_scope(node, node.scope) # functions should be visited in the class scope
+ self.enter_scope(node, node.scope) # functions should be visited in the class scope
self.visit(pickle_func)
- self.exit_scope()
+ self.exit_scope()
node.body.stats.append(pickle_func)
def _handle_fused_def_decorators(self, old_decorators, env, node):
@@ -2877,7 +2877,7 @@ class GilCheck(VisitorTransform):
self.visitchildren(node, outer_attrs)
self.nogil = gil_state
- self.visitchildren(node, attrs=None, exclude=outer_attrs)
+ self.visitchildren(node, attrs=None, exclude=outer_attrs)
self.nogil = was_nogil
def visit_FuncDefNode(self, node):
diff --git a/contrib/tools/cython/Cython/Compiler/Parsing.pxd b/contrib/tools/cython/Cython/Compiler/Parsing.pxd
index ca9a3e85f4..25453b39ab 100644
--- a/contrib/tools/cython/Cython/Compiler/Parsing.pxd
+++ b/contrib/tools/cython/Cython/Compiler/Parsing.pxd
@@ -69,8 +69,8 @@ cdef bint check_for_non_ascii_characters(unicode string)
@cython.locals(systr=unicode, is_python3_source=bint, is_raw=bint)
cdef p_string_literal(PyrexScanner s, kind_override=*)
cdef _append_escape_sequence(kind, builder, unicode escape_sequence, PyrexScanner s)
-cdef tuple _f_string_error_pos(pos, string, Py_ssize_t i)
-@cython.locals(i=Py_ssize_t, size=Py_ssize_t, c=Py_UCS4, next_start=Py_ssize_t)
+cdef tuple _f_string_error_pos(pos, string, Py_ssize_t i)
+@cython.locals(i=Py_ssize_t, size=Py_ssize_t, c=Py_UCS4, next_start=Py_ssize_t)
cdef list p_f_string(PyrexScanner s, unicode_value, pos, bint is_raw)
@cython.locals(i=Py_ssize_t, size=Py_ssize_t, c=Py_UCS4, quote_char=Py_UCS4, NO_CHAR=Py_UCS4)
cdef tuple p_f_string_expr(PyrexScanner s, unicode_value, pos, Py_ssize_t starting_index, bint is_raw)
diff --git a/contrib/tools/cython/Cython/Compiler/Parsing.py b/contrib/tools/cython/Cython/Compiler/Parsing.py
index 40862bcee6..4d2f12a24a 100644
--- a/contrib/tools/cython/Cython/Compiler/Parsing.py
+++ b/contrib/tools/cython/Cython/Compiler/Parsing.py
@@ -882,7 +882,7 @@ def p_string_literal(s, kind_override=None):
pos = s.position()
is_python3_source = s.context.language_level >= 3
has_non_ascii_literal_characters = False
- string_start_pos = (pos[0], pos[1], pos[2] + len(s.systring))
+ string_start_pos = (pos[0], pos[1], pos[2] + len(s.systring))
kind_string = s.systring.rstrip('"\'').lower()
if len(kind_string) > 1:
if len(set(kind_string)) != len(kind_string):
@@ -966,7 +966,7 @@ def p_string_literal(s, kind_override=None):
s.error("bytes can only contain ASCII literal characters.", pos=pos)
bytes_value = None
if kind == 'f':
- unicode_value = p_f_string(s, unicode_value, string_start_pos, is_raw='r' in kind_string)
+ unicode_value = p_f_string(s, unicode_value, string_start_pos, is_raw='r' in kind_string)
s.next()
return (kind, bytes_value, unicode_value)
@@ -1038,10 +1038,10 @@ _parse_escape_sequences_raw, _parse_escape_sequences = [re.compile((
for is_raw in (True, False)]
-def _f_string_error_pos(pos, string, i):
- return (pos[0], pos[1], pos[2] + i + 1) # FIXME: handle newlines in string
-
-
+def _f_string_error_pos(pos, string, i):
+ return (pos[0], pos[1], pos[2] + i + 1) # FIXME: handle newlines in string
+
+
def p_f_string(s, unicode_value, pos, is_raw):
# Parses a PEP 498 f-string literal into a list of nodes. Nodes are either UnicodeNodes
# or FormattedValueNodes.
@@ -1055,7 +1055,7 @@ def p_f_string(s, unicode_value, pos, is_raw):
end = next_start
match = _parse_seq(unicode_value, next_start)
if match is None:
- error(_f_string_error_pos(pos, unicode_value, next_start), "Invalid escape sequence")
+ error(_f_string_error_pos(pos, unicode_value, next_start), "Invalid escape sequence")
next_start = match.end()
part = match.group()
@@ -1079,8 +1079,8 @@ def p_f_string(s, unicode_value, pos, is_raw):
if part == '}}':
builder.append('}')
else:
- error(_f_string_error_pos(pos, unicode_value, end),
- "f-string: single '}' is not allowed")
+ error(_f_string_error_pos(pos, unicode_value, end),
+ "f-string: single '}' is not allowed")
else:
builder.append(part)
@@ -1101,20 +1101,20 @@ def p_f_string_expr(s, unicode_value, pos, starting_index, is_raw):
nested_depth = 0
quote_char = NO_CHAR
in_triple_quotes = False
- backslash_reported = False
+ backslash_reported = False
while True:
if i >= size:
- break # error will be reported below
+ break # error will be reported below
c = unicode_value[i]
if quote_char != NO_CHAR:
if c == '\\':
- # avoid redundant error reports along '\' sequences
- if not backslash_reported:
- error(_f_string_error_pos(pos, unicode_value, i),
- "backslashes not allowed in f-strings")
- backslash_reported = True
+ # avoid redundant error reports along '\' sequences
+ if not backslash_reported:
+ error(_f_string_error_pos(pos, unicode_value, i),
+ "backslashes not allowed in f-strings")
+ backslash_reported = True
elif c == quote_char:
if in_triple_quotes:
if i + 2 < size and unicode_value[i + 1] == c and unicode_value[i + 2] == c:
@@ -1133,8 +1133,8 @@ def p_f_string_expr(s, unicode_value, pos, starting_index, is_raw):
elif nested_depth != 0 and c in '}])':
nested_depth -= 1
elif c == '#':
- error(_f_string_error_pos(pos, unicode_value, i),
- "format string cannot include #")
+ error(_f_string_error_pos(pos, unicode_value, i),
+ "format string cannot include #")
elif nested_depth == 0 and c in '!:}':
# allow != as a special case
if c == '!' and i + 1 < size and unicode_value[i + 1] == '=':
@@ -1150,13 +1150,13 @@ def p_f_string_expr(s, unicode_value, pos, starting_index, is_raw):
expr_pos = (pos[0], pos[1], pos[2] + starting_index + 2) # TODO: find exact code position (concat, multi-line, ...)
if not expr_str.strip():
- error(_f_string_error_pos(pos, unicode_value, starting_index),
- "empty expression not allowed in f-string")
+ error(_f_string_error_pos(pos, unicode_value, starting_index),
+ "empty expression not allowed in f-string")
if terminal_char == '!':
i += 1
if i + 2 > size:
- pass # error will be reported below
+ pass # error will be reported below
else:
conversion_char = unicode_value[i]
i += 1
@@ -1169,7 +1169,7 @@ def p_f_string_expr(s, unicode_value, pos, starting_index, is_raw):
start_format_spec = i + 1
while True:
if i >= size:
- break # error will be reported below
+ break # error will be reported below
c = unicode_value[i]
if not in_triple_quotes and not in_string:
if c == '{':
@@ -1191,9 +1191,9 @@ def p_f_string_expr(s, unicode_value, pos, starting_index, is_raw):
format_spec_str = unicode_value[start_format_spec:i]
if terminal_char != '}':
- error(_f_string_error_pos(pos, unicode_value, i),
- "missing '}' in format string expression" + (
- ", found '%s'" % terminal_char if terminal_char else ""))
+ error(_f_string_error_pos(pos, unicode_value, i),
+ "missing '}' in format string expression" + (
+ ", found '%s'" % terminal_char if terminal_char else ""))
# parse the expression as if it was surrounded by parentheses
buf = StringIO('(%s)' % expr_str)
@@ -1202,7 +1202,7 @@ def p_f_string_expr(s, unicode_value, pos, starting_index, is_raw):
# validate the conversion char
if conversion_char is not None and not ExprNodes.FormattedValueNode.find_conversion_func(conversion_char):
- error(expr_pos, "invalid conversion character '%s'" % conversion_char)
+ error(expr_pos, "invalid conversion character '%s'" % conversion_char)
# the format spec is itself treated like an f-string
if format_spec_str:
@@ -2254,7 +2254,7 @@ def p_statement(s, ctx, first_statement = 0):
s.error('decorator not allowed here')
s.level = ctx.level
decorators = p_decorators(s)
- if not ctx.allow_struct_enum_decorator and s.sy not in ('def', 'cdef', 'cpdef', 'class', 'async'):
+ if not ctx.allow_struct_enum_decorator and s.sy not in ('def', 'cdef', 'cpdef', 'class', 'async'):
if s.sy == 'IDENT' and s.systring == 'async':
pass # handled below
else:
@@ -2683,7 +2683,7 @@ def looking_at_expr(s):
s.put_back(*saved)
elif s.sy == '[':
s.next()
- is_type = s.sy == ']' or not looking_at_expr(s) # could be a nested template type
+ is_type = s.sy == ']' or not looking_at_expr(s) # could be a nested template type
s.put_back(*saved)
dotted_path.reverse()
diff --git a/contrib/tools/cython/Cython/Compiler/PyrexTypes.py b/contrib/tools/cython/Cython/Compiler/PyrexTypes.py
index eebd0306a6..3d4931cea6 100644
--- a/contrib/tools/cython/Cython/Compiler/PyrexTypes.py
+++ b/contrib/tools/cython/Cython/Compiler/PyrexTypes.py
@@ -5,7 +5,7 @@
from __future__ import absolute_import
import copy
-import hashlib
+import hashlib
import re
try:
@@ -4043,10 +4043,10 @@ class CTupleType(CType):
env.use_utility_code(self._convert_from_py_code)
return True
- def cast_code(self, expr_code):
- return expr_code
+ def cast_code(self, expr_code):
+ return expr_code
+
-
def c_tuple_type(components):
components = tuple(components)
cname = Naming.ctuple_type_prefix + type_list_identifier(components)
@@ -4740,5 +4740,5 @@ def type_identifier(type):
def cap_length(s, max_prefix=63, max_len=1024):
if len(s) <= max_prefix:
return s
- hash_prefix = hashlib.sha256(s.encode('ascii')).hexdigest()[:6]
- return '%s__%s__etc' % (hash_prefix, s[:max_len-17])
+ hash_prefix = hashlib.sha256(s.encode('ascii')).hexdigest()[:6]
+ return '%s__%s__etc' % (hash_prefix, s[:max_len-17])
diff --git a/contrib/tools/cython/Cython/Compiler/Pythran.py b/contrib/tools/cython/Cython/Compiler/Pythran.py
index 7fa3e0cbab..c02704a918 100644
--- a/contrib/tools/cython/Cython/Compiler/Pythran.py
+++ b/contrib/tools/cython/Cython/Compiler/Pythran.py
@@ -9,18 +9,18 @@ import cython
try:
import pythran
pythran_is_pre_0_9 = tuple(map(int, pythran.__version__.split('.')[0:2])) < (0, 9)
- pythran_is_pre_0_9_6 = tuple(map(int, pythran.__version__.split('.')[0:3])) < (0, 9, 6)
+ pythran_is_pre_0_9_6 = tuple(map(int, pythran.__version__.split('.')[0:3])) < (0, 9, 6)
except ImportError:
pythran = None
pythran_is_pre_0_9 = True
- pythran_is_pre_0_9_6 = True
+ pythran_is_pre_0_9_6 = True
+
+if pythran_is_pre_0_9_6:
+ pythran_builtins = '__builtin__'
+else:
+ pythran_builtins = 'builtins'
-if pythran_is_pre_0_9_6:
- pythran_builtins = '__builtin__'
-else:
- pythran_builtins = 'builtins'
-
# Pythran/Numpy specific operations
def has_np_pythran(env):
@@ -54,7 +54,7 @@ def pythran_type(Ty, ptype="ndarray"):
if Ty.is_pythran_expr:
return Ty.pythran_type
#if Ty.is_none:
- # return "decltype(pythonic::builtins::None)"
+ # return "decltype(pythonic::builtins::None)"
if Ty.is_numeric:
return Ty.sign_and_name()
raise ValueError("unsupported pythran type %s (%s)" % (Ty, type(Ty)))
@@ -89,9 +89,9 @@ def _index_type_code(index_with_type):
idx, index_type = index_with_type
if idx.is_slice:
n = 2 + int(not idx.step.is_none)
- return "pythonic::%s::functor::slice{}(%s)" % (
- pythran_builtins,
- ",".join(["0"]*n))
+ return "pythonic::%s::functor::slice{}(%s)" % (
+ pythran_builtins,
+ ",".join(["0"]*n))
elif index_type.is_int:
return "std::declval<%s>()" % index_type.sign_and_name()
elif index_type.is_pythran_expr:
@@ -163,7 +163,7 @@ def to_pythran(op, ptype=None):
if is_type(op_type, ["is_pythran_expr", "is_numeric", "is_float", "is_complex"]):
return op.result()
if op.is_none:
- return "pythonic::%s::None" % pythran_builtins
+ return "pythonic::%s::None" % pythran_builtins
if ptype is None:
ptype = pythran_type(op_type)
@@ -216,7 +216,7 @@ def include_pythran_generic(env):
env.add_include_file("pythonic/types/bool.hpp")
env.add_include_file("pythonic/types/ndarray.hpp")
env.add_include_file("pythonic/numpy/power.hpp")
- env.add_include_file("pythonic/%s/slice.hpp" % pythran_builtins)
+ env.add_include_file("pythonic/%s/slice.hpp" % pythran_builtins)
env.add_include_file("<new>") # for placement new
for i in (8, 16, 32, 64):
diff --git a/contrib/tools/cython/Cython/Compiler/Scanning.pxd b/contrib/tools/cython/Cython/Compiler/Scanning.pxd
index 20cd54b52a..59593f88a2 100644
--- a/contrib/tools/cython/Cython/Compiler/Scanning.pxd
+++ b/contrib/tools/cython/Cython/Compiler/Scanning.pxd
@@ -38,7 +38,7 @@ cdef class PyrexScanner(Scanner):
cdef public list indentation_stack
cdef public indentation_char
cdef public int bracket_nesting_level
- cdef readonly bint async_enabled
+ cdef readonly bint async_enabled
cdef public sy
cdef public systring
diff --git a/contrib/tools/cython/Cython/Compiler/Scanning.py b/contrib/tools/cython/Cython/Compiler/Scanning.py
index ea33eee7a2..c721bba69b 100644
--- a/contrib/tools/cython/Cython/Compiler/Scanning.py
+++ b/contrib/tools/cython/Cython/Compiler/Scanning.py
@@ -41,8 +41,8 @@ py_reserved_words = [
"global", "nonlocal", "def", "class", "print", "del", "pass", "break",
"continue", "return", "raise", "import", "exec", "try",
"except", "finally", "while", "if", "elif", "else", "for",
- "in", "assert", "and", "or", "not", "is", "lambda",
- "from", "yield", "with",
+ "in", "assert", "and", "or", "not", "is", "lambda",
+ "from", "yield", "with",
]
pyx_reserved_words = py_reserved_words + [
@@ -324,25 +324,25 @@ class PyrexScanner(Scanner):
def __init__(self, file, filename, parent_scanner=None,
scope=None, context=None, source_encoding=None, parse_comments=True, initial_pos=None):
Scanner.__init__(self, get_lexicon(), file, filename, initial_pos)
-
- if filename.is_python_file():
- self.in_python_file = True
- self.keywords = set(py_reserved_words)
- else:
- self.in_python_file = False
- self.keywords = set(pyx_reserved_words)
-
- self.async_enabled = 0
-
+
+ if filename.is_python_file():
+ self.in_python_file = True
+ self.keywords = set(py_reserved_words)
+ else:
+ self.in_python_file = False
+ self.keywords = set(pyx_reserved_words)
+
+ self.async_enabled = 0
+
if parent_scanner:
self.context = parent_scanner.context
self.included_files = parent_scanner.included_files
self.compile_time_env = parent_scanner.compile_time_env
self.compile_time_eval = parent_scanner.compile_time_eval
self.compile_time_expr = parent_scanner.compile_time_expr
-
- if parent_scanner.async_enabled:
- self.enter_async()
+
+ if parent_scanner.async_enabled:
+ self.enter_async()
else:
self.context = context
self.included_files = scope.included_files
@@ -357,7 +357,7 @@ class PyrexScanner(Scanner):
self.indentation_stack = [0]
self.indentation_char = None
self.bracket_nesting_level = 0
-
+
self.begin('INDENT')
self.sy = ''
self.next()
diff --git a/contrib/tools/cython/Cython/Compiler/StringEncoding.py b/contrib/tools/cython/Cython/Compiler/StringEncoding.py
index 4bbcd8a3d6..c37e8aab79 100644
--- a/contrib/tools/cython/Cython/Compiler/StringEncoding.py
+++ b/contrib/tools/cython/Cython/Compiler/StringEncoding.py
@@ -154,34 +154,34 @@ def string_contains_surrogates(ustring):
return False
-def string_contains_lone_surrogates(ustring):
- """
- Check if the unicode string contains lone surrogate code points
- on a CPython platform with wide (UCS-4) or narrow (UTF-16)
- Unicode, i.e. characters that would be spelled as two
- separate code units on a narrow platform, but that do not form a pair.
- """
- last_was_start = False
- unicode_uses_surrogate_encoding = sys.maxunicode == 65535
- for c in map(ord, ustring):
- # surrogates tend to be rare
- if c < 0xD800 or c > 0xDFFF:
- if last_was_start:
- return True
- elif not unicode_uses_surrogate_encoding:
- # on 32bit Unicode platforms, there is never a pair
- return True
- elif c <= 0xDBFF:
- if last_was_start:
- return True # lone start
- last_was_start = True
- else:
- if not last_was_start:
- return True # lone end
- last_was_start = False
- return last_was_start
-
-
+def string_contains_lone_surrogates(ustring):
+ """
+ Check if the unicode string contains lone surrogate code points
+ on a CPython platform with wide (UCS-4) or narrow (UTF-16)
+ Unicode, i.e. characters that would be spelled as two
+ separate code units on a narrow platform, but that do not form a pair.
+ """
+ last_was_start = False
+ unicode_uses_surrogate_encoding = sys.maxunicode == 65535
+ for c in map(ord, ustring):
+ # surrogates tend to be rare
+ if c < 0xD800 or c > 0xDFFF:
+ if last_was_start:
+ return True
+ elif not unicode_uses_surrogate_encoding:
+ # on 32bit Unicode platforms, there is never a pair
+ return True
+ elif c <= 0xDBFF:
+ if last_was_start:
+ return True # lone start
+ last_was_start = True
+ else:
+ if not last_was_start:
+ return True # lone end
+ last_was_start = False
+ return last_was_start
+
+
class BytesLiteral(_bytes):
# bytes subclass that is compatible with EncodedString
encoding = None
diff --git a/contrib/tools/cython/Cython/Compiler/Symtab.py b/contrib/tools/cython/Cython/Compiler/Symtab.py
index bbedbd8c41..7361a55aea 100644
--- a/contrib/tools/cython/Cython/Compiler/Symtab.py
+++ b/contrib/tools/cython/Cython/Compiler/Symtab.py
@@ -822,7 +822,7 @@ class Scope(object):
if overridable:
# names of cpdef functions can be used as variables and can be assigned to
var_entry = Entry(name, cname, py_object_type) # FIXME: cname?
- var_entry.qualified_name = self.qualify_name(name)
+ var_entry.qualified_name = self.qualify_name(name)
var_entry.is_variable = 1
var_entry.is_pyglobal = 1
var_entry.scope = entry.scope
@@ -1035,7 +1035,7 @@ class BuiltinScope(Scope):
else:
python_equiv = EncodedString(python_equiv)
var_entry = Entry(python_equiv, python_equiv, py_object_type)
- var_entry.qualified_name = self.qualify_name(name)
+ var_entry.qualified_name = self.qualify_name(name)
var_entry.is_variable = 1
var_entry.is_builtin = 1
var_entry.utility_code = utility_code
@@ -1059,7 +1059,7 @@ class BuiltinScope(Scope):
type = self.lookup('type').type, # make sure "type" is the first type declared...
pos = entry.pos,
cname = entry.type.typeptr_cname)
- var_entry.qualified_name = self.qualify_name(name)
+ var_entry.qualified_name = self.qualify_name(name)
var_entry.is_variable = 1
var_entry.is_cglobal = 1
var_entry.is_readonly = 1
@@ -1247,7 +1247,7 @@ class ModuleScope(Scope):
else:
entry.is_builtin = 1
entry.name = name
- entry.qualified_name = self.builtin_scope().qualify_name(name)
+ entry.qualified_name = self.builtin_scope().qualify_name(name)
return entry
def find_module(self, module_name, pos, relative_level=-1):
@@ -1711,7 +1711,7 @@ class ModuleScope(Scope):
type = Builtin.type_type,
pos = entry.pos,
cname = entry.type.typeptr_cname)
- var_entry.qualified_name = entry.qualified_name
+ var_entry.qualified_name = entry.qualified_name
var_entry.is_variable = 1
var_entry.is_cglobal = 1
var_entry.is_readonly = 1
@@ -2295,7 +2295,7 @@ class CClassScope(ClassScope):
entry = self.declare_cfunction(name, type, None, cname, visibility='extern',
utility_code=utility_code)
var_entry = Entry(name, name, py_object_type)
- var_entry.qualified_name = name
+ var_entry.qualified_name = name
var_entry.is_variable = 1
var_entry.is_builtin = 1
var_entry.utility_code = utility_code
diff --git a/contrib/tools/cython/Cython/Compiler/Tests/TestBuffer.py b/contrib/tools/cython/Cython/Compiler/Tests/TestBuffer.py
index 45f8c6b74f..1f69d96524 100644
--- a/contrib/tools/cython/Cython/Compiler/Tests/TestBuffer.py
+++ b/contrib/tools/cython/Cython/Compiler/Tests/TestBuffer.py
@@ -21,7 +21,7 @@ class TestBufferParsing(CythonTest):
def test_basic(self):
t = self.parse(u"cdef object[float, 4, ndim=2, foo=foo] x")
bufnode = t.stats[0].base_type
- self.assertTrue(isinstance(bufnode, TemplatedTypeNode))
+ self.assertTrue(isinstance(bufnode, TemplatedTypeNode))
self.assertEqual(2, len(bufnode.positional_args))
# print bufnode.dump()
# should put more here...
@@ -46,7 +46,7 @@ class TestBufferOptions(CythonTest):
def nonfatal_error(self, error):
# We're passing self as context to transform to trap this
self.error = error
- self.assertTrue(self.expect_error)
+ self.assertTrue(self.expect_error)
def parse_opts(self, opts, expect_error=False):
assert opts != ""
@@ -57,12 +57,12 @@ class TestBufferOptions(CythonTest):
vardef = root.stats[0].body.stats[0]
assert isinstance(vardef, CVarDefNode) # use normal assert as this is to validate the test code
buftype = vardef.base_type
- self.assertTrue(isinstance(buftype, TemplatedTypeNode))
- self.assertTrue(isinstance(buftype.base_type_node, CSimpleBaseTypeNode))
+ self.assertTrue(isinstance(buftype, TemplatedTypeNode))
+ self.assertTrue(isinstance(buftype.base_type_node, CSimpleBaseTypeNode))
self.assertEqual(u"object", buftype.base_type_node.name)
return buftype
else:
- self.assertTrue(len(root.stats[0].body.stats) == 0)
+ self.assertTrue(len(root.stats[0].body.stats) == 0)
def non_parse(self, expected_err, opts):
self.parse_opts(opts, expect_error=True)
@@ -71,14 +71,14 @@ class TestBufferOptions(CythonTest):
def __test_basic(self):
buf = self.parse_opts(u"unsigned short int, 3")
- self.assertTrue(isinstance(buf.dtype_node, CSimpleBaseTypeNode))
- self.assertTrue(buf.dtype_node.signed == 0 and buf.dtype_node.longness == -1)
+ self.assertTrue(isinstance(buf.dtype_node, CSimpleBaseTypeNode))
+ self.assertTrue(buf.dtype_node.signed == 0 and buf.dtype_node.longness == -1)
self.assertEqual(3, buf.ndim)
def __test_dict(self):
buf = self.parse_opts(u"ndim=3, dtype=unsigned short int")
- self.assertTrue(isinstance(buf.dtype_node, CSimpleBaseTypeNode))
- self.assertTrue(buf.dtype_node.signed == 0 and buf.dtype_node.longness == -1)
+ self.assertTrue(isinstance(buf.dtype_node, CSimpleBaseTypeNode))
+ self.assertTrue(buf.dtype_node.signed == 0 and buf.dtype_node.longness == -1)
self.assertEqual(3, buf.ndim)
def __test_ndim(self):
@@ -94,8 +94,8 @@ class TestBufferOptions(CythonTest):
cdef object[ndim=ndim, dtype=int] y
""", pipeline=[NormalizeTree(self), PostParse(self)]).root
stats = t.stats[0].body.stats
- self.assertTrue(stats[0].base_type.ndim == 3)
- self.assertTrue(stats[1].base_type.ndim == 3)
+ self.assertTrue(stats[0].base_type.ndim == 3)
+ self.assertTrue(stats[1].base_type.ndim == 3)
# add exotic and impossible combinations as they come along...
diff --git a/contrib/tools/cython/Cython/Compiler/Tests/TestMemView.py b/contrib/tools/cython/Cython/Compiler/Tests/TestMemView.py
index 237943d217..3792f26e99 100644
--- a/contrib/tools/cython/Cython/Compiler/Tests/TestMemView.py
+++ b/contrib/tools/cython/Cython/Compiler/Tests/TestMemView.py
@@ -48,7 +48,7 @@ class TestMemviewParsing(CythonTest):
def test_basic(self):
t = self.parse(u"cdef int[:] x")
memv_node = t.stats[0].base_type
- self.assertTrue(isinstance(memv_node, MemoryViewSliceTypeNode))
+ self.assertTrue(isinstance(memv_node, MemoryViewSliceTypeNode))
# we also test other similar declarations (buffers, anonymous C arrays)
# since the parsing has to distinguish between them.
diff --git a/contrib/tools/cython/Cython/Compiler/Tests/TestParseTreeTransforms.py b/contrib/tools/cython/Cython/Compiler/Tests/TestParseTreeTransforms.py
index 5917605ae1..234b45db5b 100644
--- a/contrib/tools/cython/Cython/Compiler/Tests/TestParseTreeTransforms.py
+++ b/contrib/tools/cython/Cython/Compiler/Tests/TestParseTreeTransforms.py
@@ -87,7 +87,7 @@ class TestNormalizeTree(TransformTest):
def test_pass_eliminated(self):
t = self.run_pipeline([NormalizeTree(None)], u"pass")
- self.assertTrue(len(t.stats) == 0)
+ self.assertTrue(len(t.stats) == 0)
class TestWithTransform(object): # (TransformTest): # Disabled!
diff --git a/contrib/tools/cython/Cython/Compiler/Tests/TestStringEncoding.py b/contrib/tools/cython/Cython/Compiler/Tests/TestStringEncoding.py
index de79469cfb..91d099333a 100644
--- a/contrib/tools/cython/Cython/Compiler/Tests/TestStringEncoding.py
+++ b/contrib/tools/cython/Cython/Compiler/Tests/TestStringEncoding.py
@@ -1,44 +1,44 @@
-# -*- coding: utf-8 -*-
-
-import sys
-import unittest
-
-import Cython.Compiler.StringEncoding as StringEncoding
-
-
-class StringEncodingTest(unittest.TestCase):
- """
- Test the StringEncoding module.
- """
- def test_string_contains_lone_surrogates(self):
- self.assertFalse(StringEncoding.string_contains_lone_surrogates(u"abc"))
- self.assertFalse(StringEncoding.string_contains_lone_surrogates(u"\uABCD"))
- self.assertFalse(StringEncoding.string_contains_lone_surrogates(u"\N{SNOWMAN}"))
-
- # This behaves differently in Py2 when freshly parsed and read from a .pyc file,
- # but it seems to be a marshalling bug in Py2, which doesn't hurt us in Cython.
- if sys.version_info[0] != 2:
- self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uD800\uDFFF"))
-
- # In Py2 with 16bit Unicode, the following is indistinguishable from the 32bit character.
- obfuscated_surrogate_pair = (u"\uDFFF" + "\uD800")[::-1]
- if sys.version_info[0] == 2 and sys.maxunicode == 65565:
- self.assertFalse(StringEncoding.string_contains_lone_surrogates(obfuscated_surrogate_pair))
- else:
- self.assertTrue(StringEncoding.string_contains_lone_surrogates(obfuscated_surrogate_pair))
-
- self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uD800"))
- self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uDFFF"))
- self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uDFFF\uD800"))
- self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uD800x\uDFFF"))
-
- def test_string_contains_surrogates(self):
- self.assertFalse(StringEncoding.string_contains_surrogates(u"abc"))
- self.assertFalse(StringEncoding.string_contains_surrogates(u"\uABCD"))
- self.assertFalse(StringEncoding.string_contains_surrogates(u"\N{SNOWMAN}"))
-
- self.assertTrue(StringEncoding.string_contains_surrogates(u"\uD800"))
- self.assertTrue(StringEncoding.string_contains_surrogates(u"\uDFFF"))
- self.assertTrue(StringEncoding.string_contains_surrogates(u"\uD800\uDFFF"))
- self.assertTrue(StringEncoding.string_contains_surrogates(u"\uDFFF\uD800"))
- self.assertTrue(StringEncoding.string_contains_surrogates(u"\uD800x\uDFFF"))
+# -*- coding: utf-8 -*-
+
+import sys
+import unittest
+
+import Cython.Compiler.StringEncoding as StringEncoding
+
+
+class StringEncodingTest(unittest.TestCase):
+ """
+ Test the StringEncoding module.
+ """
+ def test_string_contains_lone_surrogates(self):
+ self.assertFalse(StringEncoding.string_contains_lone_surrogates(u"abc"))
+ self.assertFalse(StringEncoding.string_contains_lone_surrogates(u"\uABCD"))
+ self.assertFalse(StringEncoding.string_contains_lone_surrogates(u"\N{SNOWMAN}"))
+
+ # This behaves differently in Py2 when freshly parsed and read from a .pyc file,
+ # but it seems to be a marshalling bug in Py2, which doesn't hurt us in Cython.
+ if sys.version_info[0] != 2:
+ self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uD800\uDFFF"))
+
+ # In Py2 with 16bit Unicode, the following is indistinguishable from the 32bit character.
+ obfuscated_surrogate_pair = (u"\uDFFF" + "\uD800")[::-1]
+ if sys.version_info[0] == 2 and sys.maxunicode == 65565:
+ self.assertFalse(StringEncoding.string_contains_lone_surrogates(obfuscated_surrogate_pair))
+ else:
+ self.assertTrue(StringEncoding.string_contains_lone_surrogates(obfuscated_surrogate_pair))
+
+ self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uD800"))
+ self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uDFFF"))
+ self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uDFFF\uD800"))
+ self.assertTrue(StringEncoding.string_contains_lone_surrogates(u"\uD800x\uDFFF"))
+
+ def test_string_contains_surrogates(self):
+ self.assertFalse(StringEncoding.string_contains_surrogates(u"abc"))
+ self.assertFalse(StringEncoding.string_contains_surrogates(u"\uABCD"))
+ self.assertFalse(StringEncoding.string_contains_surrogates(u"\N{SNOWMAN}"))
+
+ self.assertTrue(StringEncoding.string_contains_surrogates(u"\uD800"))
+ self.assertTrue(StringEncoding.string_contains_surrogates(u"\uDFFF"))
+ self.assertTrue(StringEncoding.string_contains_surrogates(u"\uD800\uDFFF"))
+ self.assertTrue(StringEncoding.string_contains_surrogates(u"\uDFFF\uD800"))
+ self.assertTrue(StringEncoding.string_contains_surrogates(u"\uD800x\uDFFF"))
diff --git a/contrib/tools/cython/Cython/Compiler/Tests/TestTreeFragment.py b/contrib/tools/cython/Cython/Compiler/Tests/TestTreeFragment.py
index 7f5a91bccf..9ee8da5478 100644
--- a/contrib/tools/cython/Cython/Compiler/Tests/TestTreeFragment.py
+++ b/contrib/tools/cython/Cython/Compiler/Tests/TestTreeFragment.py
@@ -23,7 +23,7 @@ class TestTreeFragments(CythonTest):
T = self.fragment(u"y + y").substitute({"y": NameNode(pos=None, name="x")})
self.assertEqual("x", T.stats[0].expr.operand1.name)
self.assertEqual("x", T.stats[0].expr.operand2.name)
- self.assertTrue(T.stats[0].expr.operand1 is not T.stats[0].expr.operand2)
+ self.assertTrue(T.stats[0].expr.operand1 is not T.stats[0].expr.operand2)
def test_substitution(self):
F = self.fragment(u"x = 4")
@@ -35,7 +35,7 @@ class TestTreeFragments(CythonTest):
F = self.fragment(u"PASS")
pass_stat = PassStatNode(pos=None)
T = F.substitute({"PASS" : pass_stat})
- self.assertTrue(isinstance(T.stats[0], PassStatNode), T)
+ self.assertTrue(isinstance(T.stats[0], PassStatNode), T)
def test_pos_is_transferred(self):
F = self.fragment(u"""
@@ -55,9 +55,9 @@ class TestTreeFragments(CythonTest):
""")
T = F.substitute(temps=[u"TMP"])
s = T.body.stats
- self.assertTrue(isinstance(s[0].expr, TempRefNode))
- self.assertTrue(isinstance(s[1].rhs, TempRefNode))
- self.assertTrue(s[0].expr.handle is s[1].rhs.handle)
+ self.assertTrue(isinstance(s[0].expr, TempRefNode))
+ self.assertTrue(isinstance(s[1].rhs, TempRefNode))
+ self.assertTrue(s[0].expr.handle is s[1].rhs.handle)
if __name__ == "__main__":
import unittest
diff --git a/contrib/tools/cython/Cython/Compiler/TreePath.py b/contrib/tools/cython/Cython/Compiler/TreePath.py
index 978f2f6c5c..8585905557 100644
--- a/contrib/tools/cython/Cython/Compiler/TreePath.py
+++ b/contrib/tools/cython/Cython/Compiler/TreePath.py
@@ -10,13 +10,13 @@ from __future__ import absolute_import
import re
import operator
-import sys
+import sys
+
+if sys.version_info[0] >= 3:
+ _unicode = str
+else:
+ _unicode = unicode
-if sys.version_info[0] >= 3:
- _unicode = str
-else:
- _unicode = unicode
-
path_tokenizer = re.compile(
r"("
r"'[^']*'|\"[^\"]*\"|"
@@ -173,11 +173,11 @@ def handle_attribute(next, token):
continue
if attr_value == value:
yield attr_value
- elif (isinstance(attr_value, bytes) and isinstance(value, _unicode) and
- attr_value == value.encode()):
- # allow a bytes-to-string comparison too
- yield attr_value
-
+ elif (isinstance(attr_value, bytes) and isinstance(value, _unicode) and
+ attr_value == value.encode()):
+ # allow a bytes-to-string comparison too
+ yield attr_value
+
return select
diff --git a/contrib/tools/cython/Cython/Compiler/TypeSlots.py b/contrib/tools/cython/Cython/Compiler/TypeSlots.py
index 2a0bccbe33..0b4ff67042 100644
--- a/contrib/tools/cython/Cython/Compiler/TypeSlots.py
+++ b/contrib/tools/cython/Cython/Compiler/TypeSlots.py
@@ -813,7 +813,7 @@ PyAsyncMethods = (
MethodSlot(unaryfunc, "am_await", "__await__"),
MethodSlot(unaryfunc, "am_aiter", "__aiter__"),
MethodSlot(unaryfunc, "am_anext", "__anext__"),
- EmptySlot("am_send", ifdef="PY_VERSION_HEX >= 0x030A00A3"),
+ EmptySlot("am_send", ifdef="PY_VERSION_HEX >= 0x030A00A3"),
)
#------------------------------------------------------------------------------------------
@@ -889,10 +889,10 @@ slot_table = (
EmptySlot("tp_del"),
EmptySlot("tp_version_tag"),
EmptySlot("tp_finalize", ifdef="PY_VERSION_HEX >= 0x030400a1"),
- EmptySlot("tp_vectorcall", ifdef="PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)"),
- EmptySlot("tp_print", ifdef="PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000"),
- # PyPy specific extension - only here to avoid C compiler warnings.
- EmptySlot("tp_pypy_flags", ifdef="CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000"),
+ EmptySlot("tp_vectorcall", ifdef="PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)"),
+ EmptySlot("tp_print", ifdef="PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000"),
+ # PyPy specific extension - only here to avoid C compiler warnings.
+ EmptySlot("tp_pypy_flags", ifdef="CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000"),
)
#------------------------------------------------------------------------------------------
diff --git a/contrib/tools/cython/Cython/Compiler/Visitor.py b/contrib/tools/cython/Cython/Compiler/Visitor.py
index 4cfa368b02..a35d13e1d0 100644
--- a/contrib/tools/cython/Cython/Compiler/Visitor.py
+++ b/contrib/tools/cython/Cython/Compiler/Visitor.py
@@ -198,7 +198,7 @@ class TreeVisitor(object):
return self._visitchildren(parent, attrs)
@cython.final
- @cython.locals(idx=cython.Py_ssize_t)
+ @cython.locals(idx=cython.Py_ssize_t)
def _visitchildren(self, parent, attrs):
"""
Visits the children of the given parent. If parent is None, returns
diff --git a/contrib/tools/cython/Cython/Coverage.py b/contrib/tools/cython/Cython/Coverage.py
index e699cfe4f4..5aa9df2ce0 100644
--- a/contrib/tools/cython/Cython/Coverage.py
+++ b/contrib/tools/cython/Cython/Coverage.py
@@ -33,14 +33,14 @@ def _find_c_source(base_path):
return None
-def _find_dep_file_path(main_file, file_path, relative_path_search=False):
+def _find_dep_file_path(main_file, file_path, relative_path_search=False):
abs_path = os.path.abspath(file_path)
- if not os.path.exists(abs_path) and (file_path.endswith('.pxi') or
- relative_path_search):
- # files are looked up relative to the main source file
- rel_file_path = os.path.join(os.path.dirname(main_file), file_path)
- if os.path.exists(rel_file_path):
- abs_path = os.path.abspath(rel_file_path)
+ if not os.path.exists(abs_path) and (file_path.endswith('.pxi') or
+ relative_path_search):
+ # files are looked up relative to the main source file
+ rel_file_path = os.path.join(os.path.dirname(main_file), file_path)
+ if os.path.exists(rel_file_path):
+ abs_path = os.path.abspath(rel_file_path)
# search sys.path for external locations if a valid file hasn't been found
if not os.path.exists(abs_path):
for sys_path in sys.path:
@@ -221,8 +221,8 @@ class Plugin(CoveragePlugin):
self._c_files_map = {}
for filename, code in code_lines.items():
- abs_path = _find_dep_file_path(c_file, filename,
- relative_path_search=True)
+ abs_path = _find_dep_file_path(c_file, filename,
+ relative_path_search=True)
self._c_files_map[abs_path] = (c_file, filename, code)
if sourcefile not in self._c_files_map:
diff --git a/contrib/tools/cython/Cython/Distutils/old_build_ext.py b/contrib/tools/cython/Cython/Distutils/old_build_ext.py
index 2560ef2449..aa2a1cf229 100644
--- a/contrib/tools/cython/Cython/Distutils/old_build_ext.py
+++ b/contrib/tools/cython/Cython/Distutils/old_build_ext.py
@@ -84,9 +84,9 @@ class old_build_ext(_build_ext.build_ext):
description = "build C/C++ and Cython extensions (compile/link to build directory)"
sep_by = _build_ext.build_ext.sep_by
- user_options = _build_ext.build_ext.user_options[:]
- boolean_options = _build_ext.build_ext.boolean_options[:]
- help_options = _build_ext.build_ext.help_options[:]
+ user_options = _build_ext.build_ext.user_options[:]
+ boolean_options = _build_ext.build_ext.boolean_options[:]
+ help_options = _build_ext.build_ext.help_options[:]
# Add the pyrex specific data.
user_options.extend([
@@ -191,8 +191,8 @@ class old_build_ext(_build_ext.build_ext):
for ext in self.extensions:
ext.sources = self.cython_sources(ext.sources, ext)
- # Call original build_extensions
- _build_ext.build_ext.build_extensions(self)
+ # Call original build_extensions
+ _build_ext.build_ext.build_extensions(self)
def cython_sources(self, sources, extension):
"""
diff --git a/contrib/tools/cython/Cython/Includes/cpython/array.pxd b/contrib/tools/cython/Cython/Includes/cpython/array.pxd
index f19264624a..19230a0a82 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/array.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/array.pxd
@@ -131,14 +131,14 @@ cdef inline array clone(array template, Py_ssize_t length, bint zero):
""" fast creation of a new array, given a template array.
type will be same as template.
if zero is true, new array will be initialized with zeroes."""
- cdef array op = newarrayobject(Py_TYPE(template), length, template.ob_descr)
+ cdef array op = newarrayobject(Py_TYPE(template), length, template.ob_descr)
if zero and op is not None:
memset(op.data.as_chars, 0, length * op.ob_descr.itemsize)
return op
cdef inline array copy(array self):
""" make a copy of an array. """
- cdef array op = newarrayobject(Py_TYPE(self), Py_SIZE(self), self.ob_descr)
+ cdef array op = newarrayobject(Py_TYPE(self), Py_SIZE(self), self.ob_descr)
memcpy(op.data.as_chars, self.data.as_chars, Py_SIZE(op) * op.ob_descr.itemsize)
return op
diff --git a/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd b/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd
index e9b4cefc45..3f1ada774a 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd
@@ -3,9 +3,9 @@
cdef extern from "Python.h":
cdef enum:
- PyBUF_MAX_NDIM
-
- cdef enum:
+ PyBUF_MAX_NDIM
+
+ cdef enum:
PyBUF_SIMPLE,
PyBUF_WRITABLE,
PyBUF_WRITEABLE, # backwards compatibility
diff --git a/contrib/tools/cython/Cython/Includes/cpython/cellobject.pxd b/contrib/tools/cython/Cython/Includes/cpython/cellobject.pxd
index fc3605ca4d..5e3dd3d63c 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/cellobject.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/cellobject.pxd
@@ -1,35 +1,35 @@
-from .object cimport PyObject
-
-cdef extern from "Python.h":
-
- ############################################################################
- # Cell Objects
- ############################################################################
-
- bint PyCell_Check(object ob)
- # Return true if ob is a cell object; ob must not be NULL.
-
- object PyCell_New(PyObject* ob)
- # Return value: New reference.
- # Create and return a new cell object containing the value ob. The
- # parameter may be NULL.
-
- object PyCell_Get(object cell)
- # Return value: New reference.
- # Return the contents of the cell object cell.
-
- object PyCell_GET(object cell)
- # Return value: Borrowed reference.
- # Return the contents of the cell object cell, but without checking that
- # cell is non-NULL and is a cell object.
-
- int PyCell_Set(object cell, PyObject* value) except? -1
- # Set the contents of the cell object cell to value. This releases the
- # reference to any current content of the cell. value may be NULL. cell
- # must be non-NULL; if it is not a cell object, -1 will be returned. On
- # success, 0 will be returned.
-
- void PyCell_SET(object cell, PyObject* value)
- # Sets the value of the cell object cell to value. No reference counts are
- # adjusted, and no checks are made for safety; cell must be non-NULL and
- # must be a cell object.
+from .object cimport PyObject
+
+cdef extern from "Python.h":
+
+ ############################################################################
+ # Cell Objects
+ ############################################################################
+
+ bint PyCell_Check(object ob)
+ # Return true if ob is a cell object; ob must not be NULL.
+
+ object PyCell_New(PyObject* ob)
+ # Return value: New reference.
+ # Create and return a new cell object containing the value ob. The
+ # parameter may be NULL.
+
+ object PyCell_Get(object cell)
+ # Return value: New reference.
+ # Return the contents of the cell object cell.
+
+ object PyCell_GET(object cell)
+ # Return value: Borrowed reference.
+ # Return the contents of the cell object cell, but without checking that
+ # cell is non-NULL and is a cell object.
+
+ int PyCell_Set(object cell, PyObject* value) except? -1
+ # Set the contents of the cell object cell to value. This releases the
+ # reference to any current content of the cell. value may be NULL. cell
+ # must be non-NULL; if it is not a cell object, -1 will be returned. On
+ # success, 0 will be returned.
+
+ void PyCell_SET(object cell, PyObject* value)
+ # Sets the value of the cell object cell to value. No reference counts are
+ # adjusted, and no checks are made for safety; cell must be non-NULL and
+ # must be a cell object.
diff --git a/contrib/tools/cython/Cython/Includes/cpython/codecs.pxd b/contrib/tools/cython/Cython/Includes/cpython/codecs.pxd
index dd57020bc1..f2ca7d2444 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/codecs.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/codecs.pxd
@@ -1,121 +1,121 @@
-cdef extern from "Python.h":
-
- ###########################################################################
- # Codec registry and support functions
- ###########################################################################
-
- int PyCodec_Register(object search_function)
- # Register a new codec search function.
-
- # As side effect, this tries to load the encodings package, if not yet
- # done, to make sure that it is always first in the list of search
- # functions.
-
- int PyCodec_KnownEncoding(const char *encoding)
- # Return 1 or 0 depending on whether there is a registered codec for the
- # given encoding. This function always succeeds.
-
- object PyCodec_Encode(object o, const char *encoding, const char *errors)
- # Return value: New reference.
- # Generic codec based encoding API.
-
- # o is passed through the encoder function found for the given encoding
- # using the error handling method defined by errors. errors may be NULL
- # to use the default method defined for the codec. Raises a LookupError
- # if no encoder can be found.
-
- object PyCodec_Decode(object o, const char *encoding, const char *errors)
- # Return value: New reference.
- # Generic codec based decoding API.
-
- # o is passed through the decoder function found for the given encoding
- # using the error handling method defined by errors. errors may be NULL
- # to use the default method defined for the codec. Raises a LookupError
- # if no encoder can be found.
-
-
- # Codec lookup API
-
- # In the following functions, the encoding string is looked up converted
- # to all lower-case characters, which makes encodings looked up through
- # this mechanism effectively case-insensitive. If no codec is found, a
- # KeyError is set and NULL returned.
-
- object PyCodec_Encoder(const char *encoding)
- # Return value: New reference.
- # Get an encoder function for the given encoding.
-
- object PyCodec_Decoder(const char *encoding)
- # Return value: New reference.
- # Get a decoder function for the given encoding.
-
- object PyCodec_IncrementalEncoder(const char *encoding, const char *errors)
- # Return value: New reference.
- # Get an IncrementalEncoder object for the given encoding.
-
- object PyCodec_IncrementalDecoder(const char *encoding, const char *errors)
- # Return value: New reference.
- # Get an IncrementalDecoder object for the given encoding.
-
- object PyCodec_StreamReader(const char *encoding, object stream, const char *errors)
- # Return value: New reference.
- # Get a StreamReader factory function for the given encoding.
-
- object PyCodec_StreamWriter(const char *encoding, object stream, const char *errors)
- # Return value: New reference.
- # Get a StreamWriter factory function for the given encoding.
-
-
- # Registry API for Unicode encoding error handlers
-
- int PyCodec_RegisterError(const char *name, object error) except? -1
- # Register the error handling callback function error under the given
- # name. This callback function will be called by a codec when it
- # encounters unencodable characters/undecodable bytes and name is
- # specified as the error parameter in the call to the encode/decode
- # function.
-
- # The callback gets a single argument, an instance of
- # UnicodeEncodeError, UnicodeDecodeError or UnicodeTranslateError that
- # holds information about the problematic sequence of characters or bytes
- # and their offset in the original string (see Unicode Exception Objects
- # for functions to extract this information). The callback must either
- # raise the given exception, or return a two-item tuple containing the
- # replacement for the problematic sequence, and an integer giving the
- # offset in the original string at which encoding/decoding should be
- # resumed.
-
- # Return 0 on success, -1 on error.
-
- object PyCodec_LookupError(const char *name)
- # Return value: New reference.
- # Lookup the error handling callback function registered under name. As a
- # special case NULL can be passed, in which case the error handling
- # callback for "strict" will be returned.
-
- object PyCodec_StrictErrors(object exc)
- # Return value: Always NULL.
- # Raise exc as an exception.
-
- object PyCodec_IgnoreErrors(object exc)
- # Return value: New reference.
- # Ignore the unicode error, skipping the faulty input.
-
- object PyCodec_ReplaceErrors(object exc)
- # Return value: New reference.
- # Replace the unicode encode error with "?" or "U+FFFD".
-
- object PyCodec_XMLCharRefReplaceErrors(object exc)
- # Return value: New reference.
- # Replace the unicode encode error with XML character references.
-
- object PyCodec_BackslashReplaceErrors(object exc)
- # Return value: New reference.
- # Replace the unicode encode error with backslash escapes ("\x", "\u"
- # and "\U").
-
- object PyCodec_NameReplaceErrors(object exc)
- # Return value: New reference.
- # Replace the unicode encode error with "\N{...}" escapes.
-
- # New in version 3.5.
+cdef extern from "Python.h":
+
+ ###########################################################################
+ # Codec registry and support functions
+ ###########################################################################
+
+ int PyCodec_Register(object search_function)
+ # Register a new codec search function.
+
+ # As side effect, this tries to load the encodings package, if not yet
+ # done, to make sure that it is always first in the list of search
+ # functions.
+
+ int PyCodec_KnownEncoding(const char *encoding)
+ # Return 1 or 0 depending on whether there is a registered codec for the
+ # given encoding. This function always succeeds.
+
+ object PyCodec_Encode(object o, const char *encoding, const char *errors)
+ # Return value: New reference.
+ # Generic codec based encoding API.
+
+ # o is passed through the encoder function found for the given encoding
+ # using the error handling method defined by errors. errors may be NULL
+ # to use the default method defined for the codec. Raises a LookupError
+ # if no encoder can be found.
+
+ object PyCodec_Decode(object o, const char *encoding, const char *errors)
+ # Return value: New reference.
+ # Generic codec based decoding API.
+
+ # o is passed through the decoder function found for the given encoding
+ # using the error handling method defined by errors. errors may be NULL
+ # to use the default method defined for the codec. Raises a LookupError
+ # if no encoder can be found.
+
+
+ # Codec lookup API
+
+ # In the following functions, the encoding string is looked up converted
+ # to all lower-case characters, which makes encodings looked up through
+ # this mechanism effectively case-insensitive. If no codec is found, a
+ # KeyError is set and NULL returned.
+
+ object PyCodec_Encoder(const char *encoding)
+ # Return value: New reference.
+ # Get an encoder function for the given encoding.
+
+ object PyCodec_Decoder(const char *encoding)
+ # Return value: New reference.
+ # Get a decoder function for the given encoding.
+
+ object PyCodec_IncrementalEncoder(const char *encoding, const char *errors)
+ # Return value: New reference.
+ # Get an IncrementalEncoder object for the given encoding.
+
+ object PyCodec_IncrementalDecoder(const char *encoding, const char *errors)
+ # Return value: New reference.
+ # Get an IncrementalDecoder object for the given encoding.
+
+ object PyCodec_StreamReader(const char *encoding, object stream, const char *errors)
+ # Return value: New reference.
+ # Get a StreamReader factory function for the given encoding.
+
+ object PyCodec_StreamWriter(const char *encoding, object stream, const char *errors)
+ # Return value: New reference.
+ # Get a StreamWriter factory function for the given encoding.
+
+
+ # Registry API for Unicode encoding error handlers
+
+ int PyCodec_RegisterError(const char *name, object error) except? -1
+ # Register the error handling callback function error under the given
+ # name. This callback function will be called by a codec when it
+ # encounters unencodable characters/undecodable bytes and name is
+ # specified as the error parameter in the call to the encode/decode
+ # function.
+
+ # The callback gets a single argument, an instance of
+ # UnicodeEncodeError, UnicodeDecodeError or UnicodeTranslateError that
+ # holds information about the problematic sequence of characters or bytes
+ # and their offset in the original string (see Unicode Exception Objects
+ # for functions to extract this information). The callback must either
+ # raise the given exception, or return a two-item tuple containing the
+ # replacement for the problematic sequence, and an integer giving the
+ # offset in the original string at which encoding/decoding should be
+ # resumed.
+
+ # Return 0 on success, -1 on error.
+
+ object PyCodec_LookupError(const char *name)
+ # Return value: New reference.
+ # Lookup the error handling callback function registered under name. As a
+ # special case NULL can be passed, in which case the error handling
+ # callback for "strict" will be returned.
+
+ object PyCodec_StrictErrors(object exc)
+ # Return value: Always NULL.
+ # Raise exc as an exception.
+
+ object PyCodec_IgnoreErrors(object exc)
+ # Return value: New reference.
+ # Ignore the unicode error, skipping the faulty input.
+
+ object PyCodec_ReplaceErrors(object exc)
+ # Return value: New reference.
+ # Replace the unicode encode error with "?" or "U+FFFD".
+
+ object PyCodec_XMLCharRefReplaceErrors(object exc)
+ # Return value: New reference.
+ # Replace the unicode encode error with XML character references.
+
+ object PyCodec_BackslashReplaceErrors(object exc)
+ # Return value: New reference.
+ # Replace the unicode encode error with backslash escapes ("\x", "\u"
+ # and "\U").
+
+ object PyCodec_NameReplaceErrors(object exc)
+ # Return value: New reference.
+ # Replace the unicode encode error with "\N{...}" escapes.
+
+ # New in version 3.5.
diff --git a/contrib/tools/cython/Cython/Includes/cpython/conversion.pxd b/contrib/tools/cython/Cython/Includes/cpython/conversion.pxd
index f779f52673..18e2c3d1a6 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/conversion.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/conversion.pxd
@@ -1,36 +1,36 @@
-# From https://docs.python.org/3/c-api/conversion.html
-
-from .object cimport PyObject
-
-cdef extern from "Python.h":
- ctypedef struct va_list
-
- int PyOS_snprintf(char *str, size_t size, const char *format, ...)
- # Output not more than size bytes to str according to the format
- # string format and the extra arguments. See the Unix man page snprintf(2).
-
- int PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
- # Output not more than size bytes to str according to the format
- # string format and the variable argument list va. Unix man page vsnprintf(2).
-
- double PyOS_string_to_double(const char *s, char **endptr, PyObject *overflow_exception) except? -1.0
- # Convert a string s to a double, raising a Python exception on failure. The set of
- # accepted strings corresponds to the set of strings accepted by Python’s float()
- # constructor, except that s must not have leading or trailing whitespace.
- # The conversion is independent of the current locale.
-
- enum:
- Py_DTSF_SIGN
- Py_DTSF_ADD_DOT_0
- Py_DTSF_ALT
-
- char* PyOS_double_to_string(double val, char format_code, int precision, int flags, int *ptype) except NULL
- # Convert a double val to a string using supplied format_code, precision, and flags.
-
- int PyOS_stricmp(const char *s1, const char *s2)
- # Case insensitive comparison of strings. The function works almost identically
- # to strcmp() except that it ignores the case.
-
- int PyOS_strnicmp(const char *s1, const char *s2, Py_ssize_t size)
- # Case insensitive comparison of strings. The function works almost identically
- # to strncmp() except that it ignores the case.
+# From https://docs.python.org/3/c-api/conversion.html
+
+from .object cimport PyObject
+
+cdef extern from "Python.h":
+ ctypedef struct va_list
+
+ int PyOS_snprintf(char *str, size_t size, const char *format, ...)
+ # Output not more than size bytes to str according to the format
+ # string format and the extra arguments. See the Unix man page snprintf(2).
+
+ int PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
+ # Output not more than size bytes to str according to the format
+ # string format and the variable argument list va. Unix man page vsnprintf(2).
+
+ double PyOS_string_to_double(const char *s, char **endptr, PyObject *overflow_exception) except? -1.0
+ # Convert a string s to a double, raising a Python exception on failure. The set of
+ # accepted strings corresponds to the set of strings accepted by Python’s float()
+ # constructor, except that s must not have leading or trailing whitespace.
+ # The conversion is independent of the current locale.
+
+ enum:
+ Py_DTSF_SIGN
+ Py_DTSF_ADD_DOT_0
+ Py_DTSF_ALT
+
+ char* PyOS_double_to_string(double val, char format_code, int precision, int flags, int *ptype) except NULL
+ # Convert a double val to a string using supplied format_code, precision, and flags.
+
+ int PyOS_stricmp(const char *s1, const char *s2)
+ # Case insensitive comparison of strings. The function works almost identically
+ # to strcmp() except that it ignores the case.
+
+ int PyOS_strnicmp(const char *s1, const char *s2, Py_ssize_t size)
+ # Case insensitive comparison of strings. The function works almost identically
+ # to strncmp() except that it ignores the case.
diff --git a/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd b/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd
index d3c80b07df..cd0f90719b 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd
@@ -90,9 +90,9 @@ cdef extern from "datetime.h":
int PyDateTime_TIME_GET_MICROSECOND(object o)
# Getters for timedelta (C macros).
- int PyDateTime_DELTA_GET_DAYS(object o)
- int PyDateTime_DELTA_GET_SECONDS(object o)
- int PyDateTime_DELTA_GET_MICROSECONDS(object o)
+ int PyDateTime_DELTA_GET_DAYS(object o)
+ int PyDateTime_DELTA_GET_SECONDS(object o)
+ int PyDateTime_DELTA_GET_MICROSECONDS(object o)
# PyDateTime CAPI object.
PyDateTime_CAPI *PyDateTimeAPI
diff --git a/contrib/tools/cython/Cython/Includes/cpython/genobject.pxd b/contrib/tools/cython/Cython/Includes/cpython/genobject.pxd
index 0dd63fbbf0..337b3cc0ad 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/genobject.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/genobject.pxd
@@ -1,25 +1,25 @@
-from .pystate cimport PyFrameObject
-
-cdef extern from "Python.h":
-
- ###########################################################################
- # Generator Objects
- ###########################################################################
-
- bint PyGen_Check(object ob)
- # Return true if ob is a generator object; ob must not be NULL.
-
- bint PyGen_CheckExact(object ob)
- # Return true if ob's type is PyGen_Type; ob must not be NULL.
-
- object PyGen_New(PyFrameObject *frame)
- # Return value: New reference.
- # Create and return a new generator object based on the frame object. A
- # reference to frame is stolen by this function. The argument must not be
- # NULL.
-
- object PyGen_NewWithQualName(PyFrameObject *frame, object name, object qualname)
- # Return value: New reference.
- # Create and return a new generator object based on the frame object, with
- # __name__ and __qualname__ set to name and qualname. A reference to frame
- # is stolen by this function. The frame argument must not be NULL.
+from .pystate cimport PyFrameObject
+
+cdef extern from "Python.h":
+
+ ###########################################################################
+ # Generator Objects
+ ###########################################################################
+
+ bint PyGen_Check(object ob)
+ # Return true if ob is a generator object; ob must not be NULL.
+
+ bint PyGen_CheckExact(object ob)
+ # Return true if ob's type is PyGen_Type; ob must not be NULL.
+
+ object PyGen_New(PyFrameObject *frame)
+ # Return value: New reference.
+ # Create and return a new generator object based on the frame object. A
+ # reference to frame is stolen by this function. The argument must not be
+ # NULL.
+
+ object PyGen_NewWithQualName(PyFrameObject *frame, object name, object qualname)
+ # Return value: New reference.
+ # Create and return a new generator object based on the frame object, with
+ # __name__ and __qualname__ set to name and qualname. A reference to frame
+ # is stolen by this function. The frame argument must not be NULL.
diff --git a/contrib/tools/cython/Cython/Includes/cpython/iterobject.pxd b/contrib/tools/cython/Cython/Includes/cpython/iterobject.pxd
index 8aa0387ca9..a70aeccb09 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/iterobject.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/iterobject.pxd
@@ -1,24 +1,24 @@
-cdef extern from "Python.h":
-
- ###########################################################################
- # Iterator Objects
- ###########################################################################
-
- bint PySeqIter_Check(object op)
- # Return true if the type of op is PySeqIter_Type.
-
- object PySeqIter_New(object seq)
- # Return value: New reference.
- # Return an iterator that works with a general sequence object, seq. The
- # iteration ends when the sequence raises IndexError for the subscripting
- # operation.
-
- bint PyCallIter_Check(object op)
- # Return true if the type of op is PyCallIter_Type.
-
- object PyCallIter_New(object callable, object sentinel)
- # Return value: New reference.
- # Return a new iterator. The first parameter, callable, can be any Python
- # callable object that can be called with no parameters; each call to it
- # should return the next item in the iteration. When callable returns a
- # value equal to sentinel, the iteration will be terminated.
+cdef extern from "Python.h":
+
+ ###########################################################################
+ # Iterator Objects
+ ###########################################################################
+
+ bint PySeqIter_Check(object op)
+ # Return true if the type of op is PySeqIter_Type.
+
+ object PySeqIter_New(object seq)
+ # Return value: New reference.
+ # Return an iterator that works with a general sequence object, seq. The
+ # iteration ends when the sequence raises IndexError for the subscripting
+ # operation.
+
+ bint PyCallIter_Check(object op)
+ # Return true if the type of op is PyCallIter_Type.
+
+ object PyCallIter_New(object callable, object sentinel)
+ # Return value: New reference.
+ # Return a new iterator. The first parameter, callable, can be any Python
+ # callable object that can be called with no parameters; each call to it
+ # should return the next item in the iteration. When callable returns a
+ # value equal to sentinel, the iteration will be terminated.
diff --git a/contrib/tools/cython/Cython/Includes/cpython/longintrepr.pxd b/contrib/tools/cython/Cython/Includes/cpython/longintrepr.pxd
index efae540d05..c38c1bff88 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/longintrepr.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/longintrepr.pxd
@@ -1,11 +1,11 @@
# Internals of the "long" type (Python 2) or "int" type (Python 3).
-cdef extern from "Python.h":
- """
- #if PY_MAJOR_VERSION < 3
- #include "longintrepr.h"
- #endif
- """
+cdef extern from "Python.h":
+ """
+ #if PY_MAJOR_VERSION < 3
+ #include "longintrepr.h"
+ #endif
+ """
ctypedef unsigned int digit
ctypedef int sdigit # Python >= 2.7 only
diff --git a/contrib/tools/cython/Cython/Includes/cpython/memoryview.pxd b/contrib/tools/cython/Cython/Includes/cpython/memoryview.pxd
index 8274f42af9..83a84e6f91 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/memoryview.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/memoryview.pxd
@@ -1,50 +1,50 @@
-cdef extern from "Python.h":
-
- ###########################################################################
- # MemoryView Objects
- ###########################################################################
- # A memoryview object exposes the C level buffer interface as a Python
- # object which can then be passed around like any other object
-
- object PyMemoryView_FromObject(object obj)
- # Return value: New reference.
- # Create a memoryview object from an object that provides the buffer
- # interface. If obj supports writable buffer exports, the memoryview object
- # will be read/write, otherwise it may be either read-only or read/write at
- # the discretion of the exporter.
-
- object PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
- # Return value: New reference.
- # Create a memoryview object using mem as the underlying buffer. flags can
- # be one of PyBUF_READ or PyBUF_WRITE.
- # New in version 3.3.
-
- object PyMemoryView_FromBuffer(Py_buffer *view)
- # Return value: New reference.
- # Create a memoryview object wrapping the given buffer structure view. For
- # simple byte buffers, PyMemoryView_FromMemory() is the preferred function.
-
- object PyMemoryView_GetContiguous(object obj,
- int buffertype,
- char order)
- # Return value: New reference.
- # Create a memoryview object to a contiguous chunk of memory (in either ‘C’
- # or ‘F’ortran order) from an object that defines the buffer interface. If
- # memory is contiguous, the memoryview object points to the original
- # memory. Otherwise, a copy is made and the memoryview points to a new
- # bytes object.
-
- bint PyMemoryView_Check(object obj)
- # Return true if the object obj is a memoryview object. It is not currently
- # allowed to create subclasses of memoryview.
-
- Py_buffer *PyMemoryView_GET_BUFFER(object mview)
- # Return a pointer to the memoryview’s private copy of the exporter’s
- # buffer. mview must be a memoryview instance; this macro doesn’t check its
- # type, you must do it yourself or you will risk crashes.
-
- Py_buffer *PyMemoryView_GET_BASE(object mview)
- # Return either a pointer to the exporting object that the memoryview is
- # based on or NULL if the memoryview has been created by one of the
- # functions PyMemoryView_FromMemory() or PyMemoryView_FromBuffer(). mview
- # must be a memoryview instance.
+cdef extern from "Python.h":
+
+ ###########################################################################
+ # MemoryView Objects
+ ###########################################################################
+ # A memoryview object exposes the C level buffer interface as a Python
+ # object which can then be passed around like any other object
+
+ object PyMemoryView_FromObject(object obj)
+ # Return value: New reference.
+ # Create a memoryview object from an object that provides the buffer
+ # interface. If obj supports writable buffer exports, the memoryview object
+ # will be read/write, otherwise it may be either read-only or read/write at
+ # the discretion of the exporter.
+
+ object PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
+ # Return value: New reference.
+ # Create a memoryview object using mem as the underlying buffer. flags can
+ # be one of PyBUF_READ or PyBUF_WRITE.
+ # New in version 3.3.
+
+ object PyMemoryView_FromBuffer(Py_buffer *view)
+ # Return value: New reference.
+ # Create a memoryview object wrapping the given buffer structure view. For
+ # simple byte buffers, PyMemoryView_FromMemory() is the preferred function.
+
+ object PyMemoryView_GetContiguous(object obj,
+ int buffertype,
+ char order)
+ # Return value: New reference.
+ # Create a memoryview object to a contiguous chunk of memory (in either ‘C’
+ # or ‘F’ortran order) from an object that defines the buffer interface. If
+ # memory is contiguous, the memoryview object points to the original
+ # memory. Otherwise, a copy is made and the memoryview points to a new
+ # bytes object.
+
+ bint PyMemoryView_Check(object obj)
+ # Return true if the object obj is a memoryview object. It is not currently
+ # allowed to create subclasses of memoryview.
+
+ Py_buffer *PyMemoryView_GET_BUFFER(object mview)
+ # Return a pointer to the memoryview’s private copy of the exporter’s
+ # buffer. mview must be a memoryview instance; this macro doesn’t check its
+ # type, you must do it yourself or you will risk crashes.
+
+ Py_buffer *PyMemoryView_GET_BASE(object mview)
+ # Return either a pointer to the exporting object that the memoryview is
+ # based on or NULL if the memoryview has been created by one of the
+ # functions PyMemoryView_FromMemory() or PyMemoryView_FromBuffer(). mview
+ # must be a memoryview instance.
diff --git a/contrib/tools/cython/Cython/Includes/cpython/number.pxd b/contrib/tools/cython/Cython/Includes/cpython/number.pxd
index df6c637c33..ded35c292a 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/number.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/number.pxd
@@ -27,13 +27,13 @@ cdef extern from "Python.h":
# failure. This is the equivalent of the Python expression "o1 *
# o2".
- object PyNumber_MatrixMultiply(object o1, object o2)
- # Return value: New reference.
- # Returns the result of matrix multiplication on o1 and o2, or
- # NULL on failure. This is the equivalent of the Python
- # expression "o1 @ o2".
- # New in version 3.5.
-
+ object PyNumber_MatrixMultiply(object o1, object o2)
+ # Return value: New reference.
+ # Returns the result of matrix multiplication on o1 and o2, or
+ # NULL on failure. This is the equivalent of the Python
+ # expression "o1 @ o2".
+ # New in version 3.5.
+
object PyNumber_Divide(object o1, object o2)
# Return value: New reference.
# Returns the result of dividing o1 by o2, or NULL on
@@ -140,13 +140,13 @@ cdef extern from "Python.h":
# failure. The operation is done in-place when o1 supports
# it. This is the equivalent of the Python statement "o1 *= o2".
- object PyNumber_InPlaceMatrixMultiply(object o1, object o2)
- # Return value: New reference.
- # Returns the result of matrix multiplication on o1 and o2, or
- # NULL on failure. The operation is done in-place when o1 supports
- # it. This is the equivalent of the Python statement "o1 @= o2".
- # New in version 3.5.
-
+ object PyNumber_InPlaceMatrixMultiply(object o1, object o2)
+ # Return value: New reference.
+ # Returns the result of matrix multiplication on o1 and o2, or
+ # NULL on failure. The operation is done in-place when o1 supports
+ # it. This is the equivalent of the Python statement "o1 @= o2".
+ # New in version 3.5.
+
object PyNumber_InPlaceDivide(object o1, object o2)
# Return value: New reference.
# Returns the result of dividing o1 by o2, or NULL on failure. The
diff --git a/contrib/tools/cython/Cython/Includes/cpython/pycapsule.pxd b/contrib/tools/cython/Cython/Includes/cpython/pycapsule.pxd
index 31aa5f5b7f..c3d12c7490 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/pycapsule.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/pycapsule.pxd
@@ -24,7 +24,7 @@ cdef extern from "Python.h":
# Return true if its argument is a PyCapsule.
- object PyCapsule_New(void *pointer, const char *name,
+ object PyCapsule_New(void *pointer, const char *name,
PyCapsule_Destructor destructor)
# Return value: New reference.
#
@@ -47,7 +47,7 @@ cdef extern from "Python.h":
# PyCapsule_Import().
- void* PyCapsule_GetPointer(object capsule, const char *name) except? NULL
+ void* PyCapsule_GetPointer(object capsule, const char *name) except? NULL
# Retrieve the pointer stored in the capsule. On failure, set an
# exception and return NULL.
#
@@ -66,7 +66,7 @@ cdef extern from "Python.h":
# or PyErr_Occurred() to disambiguate.
- const char* PyCapsule_GetName(object capsule) except? NULL
+ const char* PyCapsule_GetName(object capsule) except? NULL
# Return the current name stored in the capsule. On failure, set
# an exception and return NULL.
#
@@ -84,7 +84,7 @@ cdef extern from "Python.h":
# PyErr_Occurred() to disambiguate.
- bint PyCapsule_IsValid(object capsule, const char *name)
+ bint PyCapsule_IsValid(object capsule, const char *name)
# Determines whether or not capsule is a valid capsule. A valid
# capsule is non-NULL, passes PyCapsule_CheckExact(), has a
# non-NULL pointer stored in it, and its internal name matches the
@@ -114,7 +114,7 @@ cdef extern from "Python.h":
# failure.
- int PyCapsule_SetName(object capsule, const char *name) except -1
+ int PyCapsule_SetName(object capsule, const char *name) except -1
# Set the name inside capsule to name. If non-NULL, the name must
# outlive the capsule. If the previous name stored in the capsule
# was not NULL, no attempt is made to free it.
@@ -128,7 +128,7 @@ cdef extern from "Python.h":
# success. Return nonzero and set an exception on failure.
- void* PyCapsule_Import(const char *name, int no_block) except? NULL
+ void* PyCapsule_Import(const char *name, int no_block) except? NULL
# Import a pointer to a C object from a capsule attribute in a
# module. The name parameter should specify the full name to the
# attribute, as in module.attribute. The name stored in the
diff --git a/contrib/tools/cython/Cython/Includes/cpython/pylifecycle.pxd b/contrib/tools/cython/Cython/Includes/cpython/pylifecycle.pxd
index 919c18c487..2c71e37163 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/pylifecycle.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/pylifecycle.pxd
@@ -27,9 +27,9 @@ cdef extern from "Python.h":
void Py_EndInterpreter(PyThreadState *)
- # _Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
+ # _Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
# exit functions.
- void _Py_PyAtExit(void (*func)(object), object)
+ void _Py_PyAtExit(void (*func)(object), object)
int Py_AtExit(void (*func)())
void Py_Exit(int)
diff --git a/contrib/tools/cython/Cython/Includes/cpython/slice.pxd b/contrib/tools/cython/Cython/Includes/cpython/slice.pxd
index ea81cbc3fe..202dea716c 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/slice.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/slice.pxd
@@ -45,26 +45,26 @@ cdef extern from "Python.h":
#
# Changed in version 3.2: The parameter type for the slice parameter was
# PySliceObject* before.
-
- int PySlice_Unpack(object slice, Py_ssize_t *start, Py_ssize_t *stop,
- Py_ssize_t *step) except -1
- # Extract the start, stop and step data members from a slice object as C
- # integers. Silently reduce values larger than PY_SSIZE_T_MAX to
- # PY_SSIZE_T_MAX, silently boost the start and stop values less than
- # PY_SSIZE_T_MIN to PY_SSIZE_T_MIN, and silently boost the step values
- # less than -PY_SSIZE_T_MAX to -PY_SSIZE_T_MAX.
-
- # Return -1 on error, 0 on success.
-
- # New in version 3.6.1.
-
- Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start,
- Py_ssize_t *stop, Py_ssize_t step)
- # Adjust start/end slice indices assuming a sequence of the specified
- # length. Out of bounds indices are clipped in a manner consistent with
- # the handling of normal slices.
-
- # Return the length of the slice. Always successful. Doesn’t call Python
- # code.
-
- # New in version 3.6.1.
+
+ int PySlice_Unpack(object slice, Py_ssize_t *start, Py_ssize_t *stop,
+ Py_ssize_t *step) except -1
+ # Extract the start, stop and step data members from a slice object as C
+ # integers. Silently reduce values larger than PY_SSIZE_T_MAX to
+ # PY_SSIZE_T_MAX, silently boost the start and stop values less than
+ # PY_SSIZE_T_MIN to PY_SSIZE_T_MIN, and silently boost the step values
+ # less than -PY_SSIZE_T_MAX to -PY_SSIZE_T_MAX.
+
+ # Return -1 on error, 0 on success.
+
+ # New in version 3.6.1.
+
+ Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start,
+ Py_ssize_t *stop, Py_ssize_t step)
+ # Adjust start/end slice indices assuming a sequence of the specified
+ # length. Out of bounds indices are clipped in a manner consistent with
+ # the handling of normal slices.
+
+ # Return the length of the slice. Always successful. Doesn’t call Python
+ # code.
+
+ # New in version 3.6.1.
diff --git a/contrib/tools/cython/Cython/Includes/cpython/unicode.pxd b/contrib/tools/cython/Cython/Includes/cpython/unicode.pxd
index 6e412e3324..ad01ed64df 100644
--- a/contrib/tools/cython/Cython/Includes/cpython/unicode.pxd
+++ b/contrib/tools/cython/Cython/Includes/cpython/unicode.pxd
@@ -10,19 +10,19 @@ cdef extern from *:
# Return the size of the object. o has to be a PyUnicodeObject
# (not checked).
- #
- # Deprecated since version 3.3, will be removed in version 3.10:
- # Part of the old-style Unicode API, please migrate to using
- # PyUnicode_GET_LENGTH().
+ #
+ # Deprecated since version 3.3, will be removed in version 3.10:
+ # Part of the old-style Unicode API, please migrate to using
+ # PyUnicode_GET_LENGTH().
Py_ssize_t PyUnicode_GET_SIZE(object o)
- # Return the length of the Unicode string, in code points. o has
- # to be a Unicode object in the “canonical” representation (not
- # checked).
- #
- # New in version 3.3.
- Py_ssize_t PyUnicode_GET_LENGTH(object o)
-
+ # Return the length of the Unicode string, in code points. o has
+ # to be a Unicode object in the “canonical” representation (not
+ # checked).
+ #
+ # New in version 3.3.
+ Py_ssize_t PyUnicode_GET_LENGTH(object o)
+
# Return the size of the object's internal buffer in bytes. o has
# to be a PyUnicodeObject (not checked).
Py_ssize_t PyUnicode_GET_DATA_SIZE(object o)
@@ -226,7 +226,7 @@ cdef extern from *:
# equal, and greater than, respectively. It is best to pass only ASCII-encoded
# strings, but the function interprets the input string as ISO-8859-1 if it
# contains non-ASCII characters.
- int PyUnicode_CompareWithASCIIString(object uni, const char *string)
+ int PyUnicode_CompareWithASCIIString(object uni, const char *string)
# Rich compare two unicode strings and return one of the following:
#
diff --git a/contrib/tools/cython/Cython/Includes/libc/math.pxd b/contrib/tools/cython/Cython/Includes/libc/math.pxd
index eef987c73e..b002670b22 100644
--- a/contrib/tools/cython/Cython/Includes/libc/math.pxd
+++ b/contrib/tools/cython/Cython/Includes/libc/math.pxd
@@ -104,9 +104,9 @@ cdef extern from "<math.h>" nogil:
bint isnan(long double)
bint isnormal(long double)
bint signbit(long double)
- int fpclassify(long double)
- const int FP_NAN
- const int FP_INFINITE
- const int FP_ZERO
- const int FP_SUBNORMAL
- const int FP_NORMAL
+ int fpclassify(long double)
+ const int FP_NAN
+ const int FP_INFINITE
+ const int FP_ZERO
+ const int FP_SUBNORMAL
+ const int FP_NORMAL
diff --git a/contrib/tools/cython/Cython/Includes/libcpp/string.pxd b/contrib/tools/cython/Cython/Includes/libcpp/string.pxd
index 14fe5ede4b..a894144f1f 100644
--- a/contrib/tools/cython/Cython/Includes/libcpp/string.pxd
+++ b/contrib/tools/cython/Cython/Includes/libcpp/string.pxd
@@ -2,8 +2,8 @@
# deprecated cimport for backwards compatibility:
from libc.string cimport const_char
-cdef extern from "<string>" namespace "std::string" nogil:
- const size_t npos
+cdef extern from "<string>" namespace "std::string" nogil:
+ const size_t npos
cdef extern from "<string>" namespace "std" nogil:
cdef cppclass string:
@@ -11,12 +11,12 @@ cdef extern from "<string>" namespace "std" nogil:
cppclass iterator:
iterator()
char& operator*()
- iterator(iterator&)
+ iterator(iterator&)
iterator operator++()
iterator operator--()
bint operator==(iterator)
bint operator!=(iterator)
-
+
cppclass reverse_iterator:
char& operator*()
iterator operator++()
@@ -29,22 +29,22 @@ cdef extern from "<string>" namespace "std" nogil:
bint operator>(reverse_iterator)
bint operator<=(reverse_iterator)
bint operator>=(reverse_iterator)
-
+
cppclass const_iterator(iterator):
pass
-
+
cppclass const_reverse_iterator(reverse_iterator):
pass
- string() except +
- string(const string& s) except +
- string(const string& s, size_t pos) except +
- string(const string& s, size_t pos, size_t len) except +
- string(const char* s) except +
- string(const char* s, size_t n) except +
- string(size_t n, char c) except +
- string(iterator first, iterator last) except +
-
+ string() except +
+ string(const string& s) except +
+ string(const string& s, size_t pos) except +
+ string(const string& s, size_t pos, size_t len) except +
+ string(const char* s) except +
+ string(const char* s, size_t n) except +
+ string(size_t n, char c) except +
+ string(iterator first, iterator last) except +
+
iterator begin()
const_iterator const_begin "begin"()
iterator end()
@@ -59,123 +59,123 @@ cdef extern from "<string>" namespace "std" nogil:
size_t size()
size_t max_size()
size_t length()
- void resize(size_t) except +
- void resize(size_t, char) except +
- void shrink_to_fit() except +
+ void resize(size_t) except +
+ void resize(size_t, char) except +
+ void shrink_to_fit() except +
size_t capacity()
- void reserve(size_t) except +
+ void reserve(size_t) except +
void clear()
bint empty()
- iterator erase(iterator first, iterator last)
- iterator erase(iterator p)
- iterator erase(const_iterator first, const_iterator last)
- iterator erase(const_iterator p)
- string& erase(size_t pos, size_t len) except +
- string& erase(size_t pos) except +
- string& erase() except +
-
- char& at(size_t pos) except +
- char& operator[](size_t pos)
- char& front()
- char& back()
- int compare(const string& s)
- int compare(size_t pos, size_t len, const string& s) except +
- int compare(size_t pos, size_t len, const string& s, size_t subpos, size_t sublen) except +
- int compare(const char* s) except +
- int compare(size_t pos, size_t len, const char* s) except +
- int compare(size_t pos, size_t len, const char* s , size_t n) except +
-
- string& append(const string& s) except +
- string& append(const string& s, size_t subpos, size_t sublen) except +
- string& append(const char* s) except +
- string& append(const char* s, size_t n) except +
- string& append(size_t n, char c) except +
-
- void push_back(char c) except +
- void pop_back()
-
- string& assign(const string& s) except +
- string& assign(const string& s, size_t subpos, size_t sublen) except +
- string& assign(const char* s, size_t n) except +
- string& assign(const char* s) except +
- string& assign(size_t n, char c) except +
-
- string& insert(size_t pos, const string& s, size_t subpos, size_t sublen) except +
- string& insert(size_t pos, const string& s) except +
- string& insert(size_t pos, const char* s, size_t n) except +
- string& insert(size_t pos, const char* s) except +
- string& insert(size_t pos, size_t n, char c) except +
- void insert(iterator p, size_t n, char c) except +
- iterator insert(iterator p, char c) except +
-
- size_t copy(char* s, size_t len, size_t pos) except +
- size_t copy(char* s, size_t len) except +
-
- size_t find(const string& s, size_t pos)
- size_t find(const string& s)
- size_t find(const char* s, size_t pos, size_t n)
- size_t find(const char* s, size_t pos)
- size_t find(const char* s)
- size_t find(char c, size_t pos)
- size_t find(char c)
-
- size_t rfind(const string&, size_t pos)
- size_t rfind(const string&)
- size_t rfind(const char* s, size_t pos, size_t n)
- size_t rfind(const char* s, size_t pos)
- size_t rfind(const char* s)
- size_t rfind(char c, size_t pos)
+ iterator erase(iterator first, iterator last)
+ iterator erase(iterator p)
+ iterator erase(const_iterator first, const_iterator last)
+ iterator erase(const_iterator p)
+ string& erase(size_t pos, size_t len) except +
+ string& erase(size_t pos) except +
+ string& erase() except +
+
+ char& at(size_t pos) except +
+ char& operator[](size_t pos)
+ char& front()
+ char& back()
+ int compare(const string& s)
+ int compare(size_t pos, size_t len, const string& s) except +
+ int compare(size_t pos, size_t len, const string& s, size_t subpos, size_t sublen) except +
+ int compare(const char* s) except +
+ int compare(size_t pos, size_t len, const char* s) except +
+ int compare(size_t pos, size_t len, const char* s , size_t n) except +
+
+ string& append(const string& s) except +
+ string& append(const string& s, size_t subpos, size_t sublen) except +
+ string& append(const char* s) except +
+ string& append(const char* s, size_t n) except +
+ string& append(size_t n, char c) except +
+
+ void push_back(char c) except +
+ void pop_back()
+
+ string& assign(const string& s) except +
+ string& assign(const string& s, size_t subpos, size_t sublen) except +
+ string& assign(const char* s, size_t n) except +
+ string& assign(const char* s) except +
+ string& assign(size_t n, char c) except +
+
+ string& insert(size_t pos, const string& s, size_t subpos, size_t sublen) except +
+ string& insert(size_t pos, const string& s) except +
+ string& insert(size_t pos, const char* s, size_t n) except +
+ string& insert(size_t pos, const char* s) except +
+ string& insert(size_t pos, size_t n, char c) except +
+ void insert(iterator p, size_t n, char c) except +
+ iterator insert(iterator p, char c) except +
+
+ size_t copy(char* s, size_t len, size_t pos) except +
+ size_t copy(char* s, size_t len) except +
+
+ size_t find(const string& s, size_t pos)
+ size_t find(const string& s)
+ size_t find(const char* s, size_t pos, size_t n)
+ size_t find(const char* s, size_t pos)
+ size_t find(const char* s)
+ size_t find(char c, size_t pos)
+ size_t find(char c)
+
+ size_t rfind(const string&, size_t pos)
+ size_t rfind(const string&)
+ size_t rfind(const char* s, size_t pos, size_t n)
+ size_t rfind(const char* s, size_t pos)
+ size_t rfind(const char* s)
+ size_t rfind(char c, size_t pos)
size_t rfind(char c)
- size_t find_first_of(const string&, size_t pos)
- size_t find_first_of(const string&)
- size_t find_first_of(const char* s, size_t pos, size_t n)
- size_t find_first_of(const char* s, size_t pos)
- size_t find_first_of(const char* s)
- size_t find_first_of(char c, size_t pos)
+ size_t find_first_of(const string&, size_t pos)
+ size_t find_first_of(const string&)
+ size_t find_first_of(const char* s, size_t pos, size_t n)
+ size_t find_first_of(const char* s, size_t pos)
+ size_t find_first_of(const char* s)
+ size_t find_first_of(char c, size_t pos)
size_t find_first_of(char c)
- size_t find_first_not_of(const string& s, size_t pos)
- size_t find_first_not_of(const string& s)
- size_t find_first_not_of(const char* s, size_t pos, size_t n)
- size_t find_first_not_of(const char* s, size_t pos)
- size_t find_first_not_of(const char*)
- size_t find_first_not_of(char c, size_t pos)
+ size_t find_first_not_of(const string& s, size_t pos)
+ size_t find_first_not_of(const string& s)
+ size_t find_first_not_of(const char* s, size_t pos, size_t n)
+ size_t find_first_not_of(const char* s, size_t pos)
+ size_t find_first_not_of(const char*)
+ size_t find_first_not_of(char c, size_t pos)
size_t find_first_not_of(char c)
- size_t find_last_of(const string& s, size_t pos)
- size_t find_last_of(const string& s)
- size_t find_last_of(const char* s, size_t pos, size_t n)
- size_t find_last_of(const char* s, size_t pos)
- size_t find_last_of(const char* s)
- size_t find_last_of(char c, size_t pos)
+ size_t find_last_of(const string& s, size_t pos)
+ size_t find_last_of(const string& s)
+ size_t find_last_of(const char* s, size_t pos, size_t n)
+ size_t find_last_of(const char* s, size_t pos)
+ size_t find_last_of(const char* s)
+ size_t find_last_of(char c, size_t pos)
size_t find_last_of(char c)
- size_t find_last_not_of(const string& s, size_t pos)
- size_t find_last_not_of(const string& s)
- size_t find_last_not_of(const char* s, size_t pos, size_t n)
- size_t find_last_not_of(const char* s, size_t pos)
- size_t find_last_not_of(const char* s)
- size_t find_last_not_of(char c, size_t pos)
- size_t find_last_not_of(char c)
+ size_t find_last_not_of(const string& s, size_t pos)
+ size_t find_last_not_of(const string& s)
+ size_t find_last_not_of(const char* s, size_t pos, size_t n)
+ size_t find_last_not_of(const char* s, size_t pos)
+ size_t find_last_not_of(const char* s)
+ size_t find_last_not_of(char c, size_t pos)
+ size_t find_last_not_of(char c)
- string substr(size_t pos, size_t len) except +
- string substr(size_t pos) except +
+ string substr(size_t pos, size_t len) except +
+ string substr(size_t pos) except +
string substr()
#string& operator= (const string&)
#string& operator= (const char*)
#string& operator= (char)
- string operator+ (const string&) except +
- string operator+ (const char*) except +
+ string operator+ (const string&) except +
+ string operator+ (const char*) except +
bint operator==(const string&)
bint operator==(const char*)
- bint operator!= (const string&)
- bint operator!= (const char*)
+ bint operator!= (const string&)
+ bint operator!= (const char*)
bint operator< (const string&)
bint operator< (const char*)
@@ -188,40 +188,40 @@ cdef extern from "<string>" namespace "std" nogil:
bint operator>= (const string&)
bint operator>= (const char*)
-
-
- string to_string(int val) except +
- string to_string(long val) except +
- string to_string(long long val) except +
- string to_string(unsigned val) except +
- string to_string(size_t val) except +
- string to_string(ssize_t val) except +
- string to_string(unsigned long val) except +
- string to_string(unsigned long long val) except +
- string to_string(float val) except +
- string to_string(double val) except +
- string to_string(long double val) except +
-
- int stoi(const string& s, size_t* idx, int base) except +
- int stoi(const string& s, size_t* idx) except +
- int stoi(const string& s) except +
- long stol(const string& s, size_t* idx, int base) except +
- long stol(const string& s, size_t* idx) except +
- long stol(const string& s) except +
- long long stoll(const string& s, size_t* idx, int base) except +
- long long stoll(const string& s, size_t* idx) except +
- long long stoll(const string& s) except +
-
- unsigned long stoul(const string& s, size_t* idx, int base) except +
- unsigned long stoul(const string& s, size_t* idx) except +
- unsigned long stoul(const string& s) except +
- unsigned long long stoull(const string& s, size_t* idx, int base) except +
- unsigned long long stoull(const string& s, size_t* idx) except +
- unsigned long long stoull(const string& s) except +
-
- float stof(const string& s, size_t* idx) except +
- float stof(const string& s) except +
- double stod(const string& s, size_t* idx) except +
- double stod(const string& s) except +
- long double stold(const string& s, size_t* idx) except +
- long double stold(const string& s) except +
+
+
+ string to_string(int val) except +
+ string to_string(long val) except +
+ string to_string(long long val) except +
+ string to_string(unsigned val) except +
+ string to_string(size_t val) except +
+ string to_string(ssize_t val) except +
+ string to_string(unsigned long val) except +
+ string to_string(unsigned long long val) except +
+ string to_string(float val) except +
+ string to_string(double val) except +
+ string to_string(long double val) except +
+
+ int stoi(const string& s, size_t* idx, int base) except +
+ int stoi(const string& s, size_t* idx) except +
+ int stoi(const string& s) except +
+ long stol(const string& s, size_t* idx, int base) except +
+ long stol(const string& s, size_t* idx) except +
+ long stol(const string& s) except +
+ long long stoll(const string& s, size_t* idx, int base) except +
+ long long stoll(const string& s, size_t* idx) except +
+ long long stoll(const string& s) except +
+
+ unsigned long stoul(const string& s, size_t* idx, int base) except +
+ unsigned long stoul(const string& s, size_t* idx) except +
+ unsigned long stoul(const string& s) except +
+ unsigned long long stoull(const string& s, size_t* idx, int base) except +
+ unsigned long long stoull(const string& s, size_t* idx) except +
+ unsigned long long stoull(const string& s) except +
+
+ float stof(const string& s, size_t* idx) except +
+ float stof(const string& s) except +
+ double stod(const string& s, size_t* idx) except +
+ double stod(const string& s) except +
+ long double stold(const string& s, size_t* idx) except +
+ long double stold(const string& s) except +
diff --git a/contrib/tools/cython/Cython/Includes/libcpp/unordered_map.pxd b/contrib/tools/cython/Cython/Includes/libcpp/unordered_map.pxd
index 6b1e3793e7..a00fbbed28 100644
--- a/contrib/tools/cython/Cython/Includes/libcpp/unordered_map.pxd
+++ b/contrib/tools/cython/Cython/Includes/libcpp/unordered_map.pxd
@@ -1,7 +1,7 @@
from .utility cimport pair
cdef extern from "<unordered_map>" namespace "std" nogil:
- cdef cppclass unordered_map[T, U, HASH=*, PRED=*, ALLOCATOR=*]:
+ cdef cppclass unordered_map[T, U, HASH=*, PRED=*, ALLOCATOR=*]:
ctypedef T key_type
ctypedef U mapped_type
ctypedef pair[const T, U] value_type
diff --git a/contrib/tools/cython/Cython/Includes/libcpp/utility.pxd b/contrib/tools/cython/Cython/Includes/libcpp/utility.pxd
index 3dc02e9380..e0df69b166 100644
--- a/contrib/tools/cython/Cython/Includes/libcpp/utility.pxd
+++ b/contrib/tools/cython/Cython/Includes/libcpp/utility.pxd
@@ -13,18 +13,18 @@ cdef extern from "<utility>" namespace "std" nogil:
bint operator>(pair&, pair&)
bint operator<=(pair&, pair&)
bint operator>=(pair&, pair&)
-
-cdef extern from * namespace "cython_std" nogil:
- """
- #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
- // move should be defined for these versions of MSVC, but __cplusplus isn't set usefully
- #include <type_traits>
-
- namespace cython_std {
- template <typename T> typename std::remove_reference<T>::type&& move(T& t) noexcept { return std::move(t); }
- template <typename T> typename std::remove_reference<T>::type&& move(T&& t) noexcept { return std::move(t); }
- }
-
- #endif
- """
- cdef T move[T](T)
+
+cdef extern from * namespace "cython_std" nogil:
+ """
+ #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
+ // move should be defined for these versions of MSVC, but __cplusplus isn't set usefully
+ #include <type_traits>
+
+ namespace cython_std {
+ template <typename T> typename std::remove_reference<T>::type&& move(T& t) noexcept { return std::move(t); }
+ template <typename T> typename std::remove_reference<T>::type&& move(T&& t) noexcept { return std::move(t); }
+ }
+
+ #endif
+ """
+ cdef T move[T](T)
diff --git a/contrib/tools/cython/Cython/Includes/numpy/__init__.pxd b/contrib/tools/cython/Cython/Includes/numpy/__init__.pxd
index 4231e6cbd4..15700c05ef 100644
--- a/contrib/tools/cython/Cython/Includes/numpy/__init__.pxd
+++ b/contrib/tools/cython/Cython/Includes/numpy/__init__.pxd
@@ -226,11 +226,11 @@ cdef extern from "numpy/arrayobject.h":
# this field via the inline helper method PyDataType_SHAPE.
cdef PyArray_ArrayDescr* subarray
- ctypedef class numpy.flatiter [object PyArrayIterObject, check_size ignore]:
+ ctypedef class numpy.flatiter [object PyArrayIterObject, check_size ignore]:
# Use through macros
pass
- ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
+ ctypedef class numpy.broadcast [object PyArrayMultiIterObject, check_size ignore]:
# Use through macros
pass
@@ -685,7 +685,7 @@ cdef extern from "numpy/arrayobject.h":
object PyArray_Choose (ndarray, object, ndarray, NPY_CLIPMODE)
int PyArray_Sort (ndarray, int, NPY_SORTKIND)
object PyArray_ArgSort (ndarray, int, NPY_SORTKIND)
- object PyArray_SearchSorted (ndarray, object, NPY_SEARCHSIDE, PyObject*)
+ object PyArray_SearchSorted (ndarray, object, NPY_SEARCHSIDE, PyObject*)
object PyArray_ArgMax (ndarray, int, ndarray)
object PyArray_ArgMin (ndarray, int, ndarray)
object PyArray_Reshape (ndarray, object)
@@ -914,7 +914,7 @@ cdef extern from "numpy/ufuncobject.h":
ctypedef void (*PyUFuncGenericFunction) (char **, npy_intp *, npy_intp *, void *)
- ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
+ ctypedef class numpy.ufunc [object PyUFuncObject, check_size ignore]:
cdef:
int nin, nout, nargs
int identity
diff --git a/contrib/tools/cython/Cython/Includes/posix/fcntl.pxd b/contrib/tools/cython/Cython/Includes/posix/fcntl.pxd
index fe9fc5daf4..9afc33a368 100644
--- a/contrib/tools/cython/Cython/Includes/posix/fcntl.pxd
+++ b/contrib/tools/cython/Cython/Includes/posix/fcntl.pxd
@@ -24,7 +24,7 @@ cdef extern from "<fcntl.h>" nogil:
enum: SEEK_END
enum: O_CREAT
- enum: O_DIRECT
+ enum: O_DIRECT
enum: O_EXCL
enum: O_NOCTTY
enum: O_TRUNC
diff --git a/contrib/tools/cython/Cython/Shadow.py b/contrib/tools/cython/Cython/Shadow.py
index c76909db28..e7b9e4f612 100644
--- a/contrib/tools/cython/Cython/Shadow.py
+++ b/contrib/tools/cython/Cython/Shadow.py
@@ -1,7 +1,7 @@
# cython.* namespace for pure mode.
from __future__ import absolute_import
-__version__ = "0.29.27"
+__version__ = "0.29.27"
try:
from __builtin__ import basestring
@@ -123,9 +123,9 @@ overflowcheck.fold = optimization.use_switch = \
final = internal = type_version_tag = no_gc_clear = no_gc = _empty_decorator
-binding = lambda _: _empty_decorator
+binding = lambda _: _empty_decorator
+
-
_cython_inline = None
def inline(f, *args, **kwds):
if isinstance(f, basestring):
diff --git a/contrib/tools/cython/Cython/Tests/xmlrunner.py b/contrib/tools/cython/Cython/Tests/xmlrunner.py
index ee4dddb373..d6838aa22e 100644
--- a/contrib/tools/cython/Cython/Tests/xmlrunner.py
+++ b/contrib/tools/cython/Cython/Tests/xmlrunner.py
@@ -27,12 +27,12 @@ class TestSequenceFunctions(unittest.TestCase):
def test_choice(self):
element = random.choice(self.seq)
- self.assertTrue(element in self.seq)
+ self.assertTrue(element in self.seq)
def test_sample(self):
self.assertRaises(ValueError, random.sample, self.seq, 20)
for element in random.sample(self.seq, 5):
- self.assertTrue(element in self.seq)
+ self.assertTrue(element in self.seq)
if __name__ == '__main__':
unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports'))
@@ -43,7 +43,7 @@ from __future__ import absolute_import
import os
import sys
import time
-from unittest import TestResult, TextTestResult, TextTestRunner
+from unittest import TestResult, TextTestResult, TextTestRunner
import xml.dom.minidom
try:
from StringIO import StringIO
@@ -95,7 +95,7 @@ class _TestInfo(object):
self.err, self.test_method)
-class _XMLTestResult(TextTestResult):
+class _XMLTestResult(TextTestResult):
"""A test result class that can express test results in a XML report.
Used by XMLTestRunner.
@@ -103,7 +103,7 @@ class _XMLTestResult(TextTestResult):
def __init__(self, stream=sys.stderr, descriptions=1, verbosity=1,
elapsed_times=True):
"Create a new instance of _XMLTestResult."
- TextTestResult.__init__(self, stream, descriptions, verbosity)
+ TextTestResult.__init__(self, stream, descriptions, verbosity)
self.successes = []
self.callback = None
self.elapsed_times = elapsed_times
@@ -159,7 +159,7 @@ class _XMLTestResult(TextTestResult):
def stopTest(self, test):
"Called after execute each test method."
self._restore_standard_output()
- TextTestResult.stopTest(self, test)
+ TextTestResult.stopTest(self, test)
self.stop_time = time.time()
if self.callback and callable(self.callback):
diff --git a/contrib/tools/cython/Cython/Utility/AsyncGen.c b/contrib/tools/cython/Cython/Utility/AsyncGen.c
index 80017a8d77..9a11d6a129 100644
--- a/contrib/tools/cython/Cython/Utility/AsyncGen.c
+++ b/contrib/tools/cython/Cython/Utility/AsyncGen.c
@@ -350,10 +350,10 @@ static PyMethodDef __Pyx_async_gen_methods[] = {
static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_as_async = {
0, /* am_await */
PyObject_SelfIter, /* am_aiter */
- (unaryfunc)__Pyx_async_gen_anext, /* am_anext */
-#if PY_VERSION_HEX >= 0x030A00A3
- 0, /*am_send*/
-#endif
+ (unaryfunc)__Pyx_async_gen_anext, /* am_anext */
+#if PY_VERSION_HEX >= 0x030A00A3
+ 0, /*am_send*/
+#endif
};
#endif
@@ -424,15 +424,15 @@ static PyTypeObject __pyx_AsyncGenType_type = {
#elif PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
@@ -596,10 +596,10 @@ static PyMethodDef __Pyx_async_gen_asend_methods[] = {
static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_asend_as_async = {
PyObject_SelfIter, /* am_await */
0, /* am_aiter */
- 0, /* am_anext */
-#if PY_VERSION_HEX >= 0x030A00A3
- 0, /*am_send*/
-#endif
+ 0, /* am_anext */
+#if PY_VERSION_HEX >= 0x030A00A3
+ 0, /*am_send*/
+#endif
};
#endif
@@ -665,15 +665,15 @@ static PyTypeObject __pyx__PyAsyncGenASendType_type = {
#if PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
@@ -783,15 +783,15 @@ static PyTypeObject __pyx__PyAsyncGenWrappedValueType_type = {
#if PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
@@ -1006,10 +1006,10 @@ static PyMethodDef __Pyx_async_gen_athrow_methods[] = {
static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_athrow_as_async = {
PyObject_SelfIter, /* am_await */
0, /* am_aiter */
- 0, /* am_anext */
-#if PY_VERSION_HEX >= 0x030A00A3
- 0, /*am_send*/
-#endif
+ 0, /* am_anext */
+#if PY_VERSION_HEX >= 0x030A00A3
+ 0, /*am_send*/
+#endif
};
#endif
@@ -1074,15 +1074,15 @@ static PyTypeObject __pyx__PyAsyncGenAThrowType_type = {
#if PY_VERSION_HEX >= 0x030400a1
0, /* tp_finalize */
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
diff --git a/contrib/tools/cython/Cython/Utility/Buffer.c b/contrib/tools/cython/Cython/Utility/Buffer.c
index 18398e5233..3c7105fa35 100644
--- a/contrib/tools/cython/Cython/Utility/Buffer.c
+++ b/contrib/tools/cython/Cython/Utility/Buffer.c
@@ -298,7 +298,7 @@ static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
switch (ch) {
- case '?': return "'bool'";
+ case '?': return "'bool'";
case 'c': return "'char'";
case 'b': return "'signed char'";
case 'B': return "'unsigned char'";
@@ -343,7 +343,7 @@ static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
switch (ch) {
- case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
+ case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
case 'h': case 'H': return sizeof(short);
case 'i': case 'I': return sizeof(int);
case 'l': case 'L': return sizeof(long);
@@ -432,7 +432,7 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
case 'b': case 'h': case 'i':
case 'l': case 'q': case 's': case 'p':
return 'I';
- case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
+ case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
return 'U';
case 'f': case 'd': case 'g':
return (is_complex ? 'C' : 'R');
@@ -602,8 +602,8 @@ static PyObject *
__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
{
const char *ts = *tsp;
- int i = 0, number, ndim;
-
+ int i = 0, number, ndim;
+
++ts;
if (ctx->new_count != 1) {
PyErr_SetString(PyExc_ValueError,
@@ -614,9 +614,9 @@ __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
/* Process the previous element */
if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
- // store ndim now, as field advanced by __Pyx_BufFmt_ProcessTypeChunk call
- ndim = ctx->head->field->type->ndim;
-
+ // store ndim now, as field advanced by __Pyx_BufFmt_ProcessTypeChunk call
+ ndim = ctx->head->field->type->ndim;
+
/* Parse all numbers in the format string */
while (*ts && *ts != ')') {
// ignore space characters (not using isspace() due to C/C++ problem on MacOS-X)
@@ -755,12 +755,12 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha
return NULL;
}
CYTHON_FALLTHROUGH;
- case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
+ case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
case 'l': case 'L': case 'q': case 'Q':
case 'f': case 'd': case 'g':
case 'O': case 'p':
- if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
- (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
+ if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
+ (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
/* Continue pooling same type */
ctx->enc_count += ctx->new_count;
ctx->new_count = 1;
diff --git a/contrib/tools/cython/Cython/Utility/Builtins.c b/contrib/tools/cython/Cython/Utility/Builtins.c
index d47ad1d083..1ffb3bcebd 100644
--- a/contrib/tools/cython/Cython/Utility/Builtins.c
+++ b/contrib/tools/cython/Cython/Utility/Builtins.c
@@ -128,9 +128,9 @@ static PyObject* __Pyx_PyExec3(PyObject* o, PyObject* globals, PyObject* locals)
} else {
PyCompilerFlags cf;
cf.cf_flags = 0;
-#if PY_VERSION_HEX >= 0x030800A3
- cf.cf_feature_version = PY_MINOR_VERSION;
-#endif
+#if PY_VERSION_HEX >= 0x030800A3
+ cf.cf_feature_version = PY_MINOR_VERSION;
+#endif
if (PyUnicode_Check(o)) {
cf.cf_flags = PyCF_SOURCE_IS_UTF8;
s = PyUnicode_AsUTF8String(o);
@@ -282,8 +282,8 @@ static PyObject *__Pyx_PyLong_AbsNeg(PyObject *n) {
{
PyObject *copy = _PyLong_Copy((PyLongObject*)n);
if (likely(copy)) {
- // negate the size to swap the sign
- __Pyx_SET_SIZE(copy, -Py_SIZE(copy));
+ // negate the size to swap the sign
+ __Pyx_SET_SIZE(copy, -Py_SIZE(copy));
}
return copy;
}
@@ -333,7 +333,7 @@ static long __Pyx__PyObject_Ord(PyObject* c) {
} else {
// FIXME: support character buffers - but CPython doesn't support them either
PyErr_Format(PyExc_TypeError,
- "ord() expected string of length 1, but %.200s found", Py_TYPE(c)->tp_name);
+ "ord() expected string of length 1, but %.200s found", Py_TYPE(c)->tp_name);
return (long)(Py_UCS4)-1;
}
PyErr_Format(PyExc_TypeError,
@@ -496,9 +496,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) {
result = PyFrozenSet_New(it);
if (unlikely(!result))
return NULL;
- if ((PY_VERSION_HEX >= 0x031000A1) || likely(PySet_GET_SIZE(result)))
+ if ((PY_VERSION_HEX >= 0x031000A1) || likely(PySet_GET_SIZE(result)))
return result;
- // empty frozenset is a singleton (on Python <3.10)
+ // empty frozenset is a singleton (on Python <3.10)
// seems wasteful, but CPython does the same
Py_DECREF(result);
#endif
diff --git a/contrib/tools/cython/Cython/Utility/Coroutine.c b/contrib/tools/cython/Cython/Utility/Coroutine.c
index 82c00716d2..d26314083b 100644
--- a/contrib/tools/cython/Cython/Utility/Coroutine.c
+++ b/contrib/tools/cython/Cython/Utility/Coroutine.c
@@ -388,7 +388,7 @@ typedef struct {
PyObject *gi_qualname;
PyObject *gi_modulename;
PyObject *gi_code;
- PyObject *gi_frame;
+ PyObject *gi_frame;
int resume_label;
// using T_BOOL for property below requires char value
char is_running;
@@ -714,15 +714,15 @@ PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, i
PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback;
PyFrameObject *f = tb->tb_frame;
- assert(f->f_back == NULL);
- #if PY_VERSION_HEX >= 0x030B00A1
- // PyThreadState_GetFrame returns NULL if there isn't a current frame
- // which is a valid state so no need to check
- f->f_back = PyThreadState_GetFrame(tstate);
- #else
+ assert(f->f_back == NULL);
+ #if PY_VERSION_HEX >= 0x030B00A1
+ // PyThreadState_GetFrame returns NULL if there isn't a current frame
+ // which is a valid state so no need to check
+ f->f_back = PyThreadState_GetFrame(tstate);
+ #else
Py_XINCREF(tstate->frame);
f->f_back = tstate->frame;
- #endif
+ #endif
}
#endif
}
@@ -796,33 +796,33 @@ PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *re
return retval;
}
-#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+static CYTHON_INLINE
+PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
+#if PY_VERSION_HEX <= 0x030A00A1
+ return _PyGen_Send(gen, arg);
+#else
+ PyObject *result;
+ // PyIter_Send() asserts non-NULL arg
+ if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
+ if (PyAsyncGen_CheckExact(gen)) {
+ assert(result == Py_None);
+ PyErr_SetNone(PyExc_StopAsyncIteration);
+ }
+ else if (result == Py_None) {
+ PyErr_SetNone(PyExc_StopIteration);
+ }
+ else {
+ _PyGen_SetStopIterationValue(result);
+ }
+ Py_CLEAR(result);
+ }
+ return result;
+#endif
+}
+#endif
+
static CYTHON_INLINE
-PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
-#if PY_VERSION_HEX <= 0x030A00A1
- return _PyGen_Send(gen, arg);
-#else
- PyObject *result;
- // PyIter_Send() asserts non-NULL arg
- if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
- if (PyAsyncGen_CheckExact(gen)) {
- assert(result == Py_None);
- PyErr_SetNone(PyExc_StopAsyncIteration);
- }
- else if (result == Py_None) {
- PyErr_SetNone(PyExc_StopIteration);
- }
- else {
- _PyGen_SetStopIterationValue(result);
- }
- Py_CLEAR(result);
- }
- return result;
-#endif
-}
-#endif
-
-static CYTHON_INLINE
PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
PyObject *ret;
PyObject *val = NULL;
@@ -863,13 +863,13 @@ static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
// _PyGen_Send() is not exported before Py3.6
if (PyGen_CheckExact(yf)) {
- ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
+ ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
} else
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
// _PyGen_Send() is not exported before Py3.6
if (PyCoro_CheckExact(yf)) {
- ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
+ ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
} else
#endif
{
@@ -965,7 +965,7 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
// _PyGen_Send() is not exported before Py3.6
if (PyGen_CheckExact(yf)) {
- ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
+ ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
} else
#endif
#ifdef __Pyx_Coroutine_USED
@@ -1145,7 +1145,7 @@ static int __Pyx_Coroutine_clear(PyObject *self) {
}
#endif
Py_CLEAR(gen->gi_code);
- Py_CLEAR(gen->gi_frame);
+ Py_CLEAR(gen->gi_frame);
Py_CLEAR(gen->gi_name);
Py_CLEAR(gen->gi_qualname);
Py_CLEAR(gen->gi_modulename);
@@ -1166,7 +1166,7 @@ static void __Pyx_Coroutine_dealloc(PyObject *self) {
if (PyObject_CallFinalizerFromDealloc(self))
#else
Py_TYPE(gen)->tp_del(self);
- if (Py_REFCNT(self) > 0)
+ if (Py_REFCNT(self) > 0)
#endif
{
// resurrected. :(
@@ -1200,7 +1200,7 @@ static void __Pyx_Coroutine_del(PyObject *self) {
#if !CYTHON_USE_TP_FINALIZE
// Temporarily resurrect the object.
assert(self->ob_refcnt == 0);
- __Pyx_SET_REFCNT(self, 1);
+ __Pyx_SET_REFCNT(self, 1);
#endif
__Pyx_PyThreadState_assign
@@ -1281,7 +1281,7 @@ static void __Pyx_Coroutine_del(PyObject *self) {
#if !CYTHON_USE_TP_FINALIZE
// Undo the temporary resurrection; can't use DECREF here, it would
// cause a recursive call.
- assert(Py_REFCNT(self) > 0);
+ assert(Py_REFCNT(self) > 0);
if (--self->ob_refcnt == 0) {
// this is the normal path out
return;
@@ -1290,12 +1290,12 @@ static void __Pyx_Coroutine_del(PyObject *self) {
// close() resurrected it! Make it look like the original Py_DECREF
// never happened.
{
- Py_ssize_t refcnt = Py_REFCNT(self);
+ Py_ssize_t refcnt = Py_REFCNT(self);
_Py_NewReference(self);
- __Pyx_SET_REFCNT(self, refcnt);
+ __Pyx_SET_REFCNT(self, refcnt);
}
#if CYTHON_COMPILING_IN_CPYTHON
- assert(PyType_IS_GC(Py_TYPE(self)) &&
+ assert(PyType_IS_GC(Py_TYPE(self)) &&
_Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
// If Py_REF_DEBUG, _Py_NewReference bumped _Py_RefTotal, so
@@ -1378,31 +1378,31 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHO
return 0;
}
-
-static PyObject *
-__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
-{
- PyObject *frame = self->gi_frame;
- if (!frame) {
- if (unlikely(!self->gi_code)) {
- // Avoid doing something stupid, e.g. during garbage collection.
- Py_RETURN_NONE;
- }
- frame = (PyObject *) PyFrame_New(
- PyThreadState_Get(), /*PyThreadState *tstate,*/
- (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/
- $moddict_cname, /*PyObject *globals,*/
- 0 /*PyObject *locals*/
- );
- if (unlikely(!frame))
- return NULL;
- // keep the frame cached once it's created
- self->gi_frame = frame;
- }
- Py_INCREF(frame);
- return frame;
-}
-
+
+static PyObject *
+__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
+{
+ PyObject *frame = self->gi_frame;
+ if (!frame) {
+ if (unlikely(!self->gi_code)) {
+ // Avoid doing something stupid, e.g. during garbage collection.
+ Py_RETURN_NONE;
+ }
+ frame = (PyObject *) PyFrame_New(
+ PyThreadState_Get(), /*PyThreadState *tstate,*/
+ (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/
+ $moddict_cname, /*PyObject *globals,*/
+ 0 /*PyObject *locals*/
+ );
+ if (unlikely(!frame))
+ return NULL;
+ // keep the frame cached once it's created
+ self->gi_frame = frame;
+ }
+ Py_INCREF(frame);
+ return frame;
+}
+
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
PyObject *name, PyObject *qualname, PyObject *module_name) {
@@ -1437,7 +1437,7 @@ static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
gen->gi_modulename = module_name;
Py_XINCREF(code);
gen->gi_code = code;
- gen->gi_frame = NULL;
+ gen->gi_frame = NULL;
PyObject_GC_Track(gen);
return gen;
@@ -1558,15 +1558,15 @@ static PyTypeObject __pyx_CoroutineAwaitType_type = {
#if PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
#if PY_VERSION_HEX < 0x030500B1 || defined(__Pyx_IterableCoroutine_USED) || CYTHON_USE_ASYNC_SLOTS
@@ -1648,9 +1648,9 @@ static __Pyx_PyAsyncMethodsStruct __pyx_Coroutine_as_async = {
__Pyx_Coroutine_await, /*am_await*/
0, /*am_aiter*/
0, /*am_anext*/
-#if PY_VERSION_HEX >= 0x030A00A3
- 0, /*am_send*/
-#endif
+#if PY_VERSION_HEX >= 0x030A00A3
+ 0, /*am_send*/
+#endif
};
#endif
@@ -1721,15 +1721,15 @@ static PyTypeObject __pyx_CoroutineType_type = {
#elif PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
static int __pyx_Coroutine_init(void) {
@@ -1835,15 +1835,15 @@ static PyTypeObject __pyx_IterableCoroutineType_type = {
#if PY_VERSION_HEX >= 0x030400a1
__Pyx_Coroutine_del, /*tp_finalize*/
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
@@ -1884,8 +1884,8 @@ static PyGetSetDef __pyx_Generator_getsets[] = {
(char*) PyDoc_STR("name of the generator"), 0},
{(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
(char*) PyDoc_STR("qualified name of the generator"), 0},
- {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
- (char*) PyDoc_STR("Frame of the generator"), 0},
+ {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
+ (char*) PyDoc_STR("Frame of the generator"), 0},
{0, 0, 0, 0, 0}
};
@@ -1946,15 +1946,15 @@ static PyTypeObject __pyx_GeneratorType_type = {
#elif PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
static int __pyx_Generator_init(void) {
@@ -2351,9 +2351,9 @@ static PyTypeObject __Pyx__PyExc_StopAsyncIteration_type = {
#if PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
- 0, /*tp_pypy_flags*/
-#endif
+#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
+ 0, /*tp_pypy_flags*/
+#endif
};
#endif
diff --git a/contrib/tools/cython/Cython/Utility/CppConvert.pyx b/contrib/tools/cython/Cython/Utility/CppConvert.pyx
index a5c6edd483..5f7859dd0e 100644
--- a/contrib/tools/cython/Cython/Utility/CppConvert.pyx
+++ b/contrib/tools/cython/Cython/Utility/CppConvert.pyx
@@ -11,7 +11,7 @@ cdef extern from *:
@cname("{{cname}}")
cdef string {{cname}}(object o) except *:
- cdef Py_ssize_t length = 0
+ cdef Py_ssize_t length = 0
cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
return string(data, length)
diff --git a/contrib/tools/cython/Cython/Utility/CythonFunction.c b/contrib/tools/cython/Cython/Utility/CythonFunction.c
index f2bd802e27..d51b308a8d 100644
--- a/contrib/tools/cython/Cython/Utility/CythonFunction.c
+++ b/contrib/tools/cython/Cython/Utility/CythonFunction.c
@@ -1,5 +1,5 @@
-//////////////////// CythonFunctionShared.proto ////////////////////
+//////////////////// CythonFunctionShared.proto ////////////////////
#define __Pyx_CyFunction_USED 1
@@ -36,7 +36,7 @@ typedef struct {
// Dynamic default args and annotations
void *defaults;
int defaults_pyobjects;
- size_t defaults_size; // used by FusedFunction for copying defaults
+ size_t defaults_size; // used by FusedFunction for copying defaults
int flags;
// Defaults info
@@ -50,7 +50,7 @@ static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
-static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
+static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
int flags, PyObject* qualname,
PyObject *self,
PyObject *module, PyObject *globals,
@@ -69,8 +69,8 @@ static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
static int __pyx_CyFunction_init(void);
-
-//////////////////// CythonFunctionShared ////////////////////
+
+//////////////////// CythonFunctionShared ////////////////////
//@substitute: naming
//@requires: CommonStructures.c::FetchCommonType
////@requires: ObjectHandling.c::PyObjectGetAttrStr
@@ -426,8 +426,8 @@ static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
- Py_INCREF(m->func_qualname);
- return m->func_qualname;
+ Py_INCREF(m->func_qualname);
+ return m->func_qualname;
#else
return PyString_FromString(m->func.m_ml->ml_name);
#endif
@@ -445,9 +445,9 @@ static PyMethodDef __pyx_CyFunction_methods[] = {
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
-static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
- PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
- if (unlikely(op == NULL))
+static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
+ PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
+ if (unlikely(op == NULL))
return NULL;
op->flags = flags;
__Pyx_CyFunction_weakreflist(op) = NULL;
@@ -469,7 +469,7 @@ static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *
op->func_code = code;
// Dynamic Default args
op->defaults_pyobjects = 0;
- op->defaults_size = 0;
+ op->defaults_size = 0;
op->defaults = NULL;
op->defaults_tuple = NULL;
op->defaults_kwdict = NULL;
@@ -550,7 +550,7 @@ static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit,
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
-#if PY_MAJOR_VERSION < 3
+#if PY_MAJOR_VERSION < 3
__pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
@@ -566,7 +566,7 @@ static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObj
if (obj == Py_None)
obj = NULL;
-#endif
+#endif
return __Pyx_PyMethod_New(func, obj, type);
}
@@ -731,15 +731,15 @@ static PyTypeObject __pyx_CyFunctionType_type = {
#if PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
0, /*tp_print*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
+#endif
};
@@ -759,7 +759,7 @@ static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t
return PyErr_NoMemory();
memset(m->defaults, 0, size);
m->defaults_pyobjects = pyobjects;
- m->defaults_size = size;
+ m->defaults_size = size;
return m->defaults;
}
@@ -781,36 +781,36 @@ static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, Py
Py_INCREF(dict);
}
-
-//////////////////// CythonFunction.proto ////////////////////
-
-static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
- int flags, PyObject* qualname,
- PyObject *closure,
- PyObject *module, PyObject *globals,
- PyObject* code);
-
-//////////////////// CythonFunction ////////////////////
-//@requires: CythonFunctionShared
-
-static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
- PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
- PyObject *op = __Pyx_CyFunction_Init(
- PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
- ml, flags, qualname, closure, module, globals, code
- );
- if (likely(op)) {
- PyObject_GC_Track(op);
- }
- return op;
-}
-
-
+
+//////////////////// CythonFunction.proto ////////////////////
+
+static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
+ int flags, PyObject* qualname,
+ PyObject *closure,
+ PyObject *module, PyObject *globals,
+ PyObject* code);
+
+//////////////////// CythonFunction ////////////////////
+//@requires: CythonFunctionShared
+
+static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
+ PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
+ PyObject *op = __Pyx_CyFunction_Init(
+ PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
+ ml, flags, qualname, closure, module, globals, code
+ );
+ if (likely(op)) {
+ PyObject_GC_Track(op);
+ }
+ return op;
+}
+
+
//////////////////// CyFunctionClassCell.proto ////////////////////
static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj);/*proto*/
//////////////////// CyFunctionClassCell ////////////////////
-//@requires: CythonFunctionShared
+//@requires: CythonFunctionShared
static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj) {
Py_ssize_t i, count = PyList_GET_SIZE(cyfunctions);
@@ -833,9 +833,9 @@ static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *class
return 0;
}
-
+
//////////////////// FusedFunction.proto ////////////////////
-
+
typedef struct {
__pyx_CyFunctionObject func;
PyObject *__signatures__;
@@ -843,8 +843,8 @@ typedef struct {
PyObject *self;
} __pyx_FusedFunctionObject;
-static PyObject *__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
- PyObject *qualname, PyObject *closure,
+static PyObject *__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
+ PyObject *qualname, PyObject *closure,
PyObject *module, PyObject *globals,
PyObject *code);
@@ -855,27 +855,27 @@ static int __pyx_FusedFunction_init(void);
#define __Pyx_FusedFunction_USED
//////////////////// FusedFunction ////////////////////
-//@requires: CythonFunctionShared
+//@requires: CythonFunctionShared
static PyObject *
-__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
- PyObject *qualname, PyObject *closure,
+__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
+ PyObject *qualname, PyObject *closure,
PyObject *module, PyObject *globals,
PyObject *code)
{
- PyObject *op = __Pyx_CyFunction_Init(
- // __pyx_CyFunctionObject is correct below since that's the cast that we want.
- PyObject_GC_New(__pyx_CyFunctionObject, __pyx_FusedFunctionType),
- ml, flags, qualname, closure, module, globals, code
- );
- if (likely(op)) {
- __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) op;
- fusedfunc->__signatures__ = NULL;
- fusedfunc->type = NULL;
- fusedfunc->self = NULL;
- PyObject_GC_Track(op);
- }
- return op;
+ PyObject *op = __Pyx_CyFunction_Init(
+ // __pyx_CyFunctionObject is correct below since that's the cast that we want.
+ PyObject_GC_New(__pyx_CyFunctionObject, __pyx_FusedFunctionType),
+ ml, flags, qualname, closure, module, globals, code
+ );
+ if (likely(op)) {
+ __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) op;
+ fusedfunc->__signatures__ = NULL;
+ fusedfunc->type = NULL;
+ fusedfunc->self = NULL;
+ PyObject_GC_Track(op);
+ }
+ return op;
}
static void
@@ -925,7 +925,7 @@ __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type)
if (obj == Py_None)
obj = NULL;
- meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_New(
+ meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_New(
((PyCFunctionObject *) func)->m_ml,
((__pyx_CyFunctionObject *) func)->flags,
((__pyx_CyFunctionObject *) func)->func_qualname,
@@ -936,26 +936,26 @@ __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type)
if (!meth)
return NULL;
- // defaults needs copying fully rather than just copying the pointer
- // since otherwise it will be freed on destruction of meth despite
- // belonging to func rather than meth
- if (func->func.defaults) {
- PyObject **pydefaults;
- int i;
-
- if (!__Pyx_CyFunction_InitDefaults((PyObject*)meth,
- func->func.defaults_size,
- func->func.defaults_pyobjects)) {
- Py_XDECREF((PyObject*)meth);
- return NULL;
- }
- memcpy(meth->func.defaults, func->func.defaults, func->func.defaults_size);
-
- pydefaults = __Pyx_CyFunction_Defaults(PyObject *, meth);
- for (i = 0; i < meth->func.defaults_pyobjects; i++)
- Py_XINCREF(pydefaults[i]);
- }
-
+ // defaults needs copying fully rather than just copying the pointer
+ // since otherwise it will be freed on destruction of meth despite
+ // belonging to func rather than meth
+ if (func->func.defaults) {
+ PyObject **pydefaults;
+ int i;
+
+ if (!__Pyx_CyFunction_InitDefaults((PyObject*)meth,
+ func->func.defaults_size,
+ func->func.defaults_pyobjects)) {
+ Py_XDECREF((PyObject*)meth);
+ return NULL;
+ }
+ memcpy(meth->func.defaults, func->func.defaults, func->func.defaults_size);
+
+ pydefaults = __Pyx_CyFunction_Defaults(PyObject *, meth);
+ for (i = 0; i < meth->func.defaults_pyobjects; i++)
+ Py_XINCREF(pydefaults[i]);
+ }
+
Py_XINCREF(func->func.func_classobj);
meth->func.func_classobj = func->func.func_classobj;
@@ -1004,29 +1004,29 @@ __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx)
PyObject *sep = NULL;
int i;
- if (unlikely(!list))
+ if (unlikely(!list))
return NULL;
for (i = 0; i < n; i++) {
- int ret;
- PyObject *string;
+ int ret;
+ PyObject *string;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
PyObject *item = PyTuple_GET_ITEM(idx, i);
#else
- PyObject *item = PySequence_ITEM(idx, i); if (unlikely(!item)) goto __pyx_err;
+ PyObject *item = PySequence_ITEM(idx, i); if (unlikely(!item)) goto __pyx_err;
#endif
string = _obj_to_str(item);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
Py_DECREF(item);
#endif
- if (unlikely(!string)) goto __pyx_err;
- ret = PyList_Append(list, string);
+ if (unlikely(!string)) goto __pyx_err;
+ ret = PyList_Append(list, string);
Py_DECREF(string);
- if (unlikely(ret < 0)) goto __pyx_err;
+ if (unlikely(ret < 0)) goto __pyx_err;
}
sep = PyUnicode_FromString("|");
- if (likely(sep))
+ if (likely(sep))
signature = PyUnicode_Join(sep, list);
__pyx_err:
;
@@ -1140,7 +1140,7 @@ __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw)
PyErr_Format(PyExc_TypeError,
"First argument should be of type %.200s, got %.200s.",
((PyTypeObject *) binding_func->type)->tp_name,
- Py_TYPE(self)->tp_name);
+ Py_TYPE(self)->tp_name);
goto bad;
} else if (unlikely(is_instance == -1)) {
goto bad;
@@ -1242,7 +1242,7 @@ static PyTypeObject __pyx_FusedFunctionType_type = {
// __doc__ is None for the fused function type, but we need it to be
// a descriptor for the instance's __doc__, so rebuild descriptors in our subclass
__pyx_CyFunction_getsets, /*tp_getset*/
- // NOTE: tp_base may be changed later during module initialisation when importing CyFunction across modules.
+ // NOTE: tp_base may be changed later during module initialisation when importing CyFunction across modules.
&__pyx_CyFunctionType_type, /*tp_base*/
0, /*tp_dict*/
__pyx_FusedFunction_descr_get, /*tp_descr_get*/
@@ -1263,20 +1263,20 @@ static PyTypeObject __pyx_FusedFunctionType_type = {
#if PY_VERSION_HEX >= 0x030400a1
0, /*tp_finalize*/
#endif
-#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
+#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
0, /*tp_vectorcall*/
#endif
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
- 0, /*tp_print*/
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+ 0, /*tp_print*/
+#endif
+#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
+ 0, /*tp_pypy_flags*/
#endif
-#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000
- 0, /*tp_pypy_flags*/
-#endif
};
static int __pyx_FusedFunction_init(void) {
- // Set base from __Pyx_FetchCommonTypeFromSpec, in case it's different from the local static value.
- __pyx_FusedFunctionType_type.tp_base = __pyx_CyFunctionType;
+ // Set base from __Pyx_FetchCommonTypeFromSpec, in case it's different from the local static value.
+ __pyx_FusedFunctionType_type.tp_base = __pyx_CyFunctionType;
__pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type);
if (__pyx_FusedFunctionType == NULL) {
return -1;
@@ -1302,8 +1302,8 @@ static PyObject* __Pyx_Method_ClassMethod(PyObject *method) {
// special C-API function only in Pyston and PyPy >= 5.9
if (PyMethodDescr_Check(method))
#else
- #if PY_MAJOR_VERSION == 2
- // PyMethodDescr_Type is not exposed in the CPython C-API in Py2.
+ #if PY_MAJOR_VERSION == 2
+ // PyMethodDescr_Type is not exposed in the CPython C-API in Py2.
static PyTypeObject *methoddescr_type = NULL;
if (methoddescr_type == NULL) {
PyObject *meth = PyObject_GetAttrString((PyObject*)&PyList_Type, "append");
@@ -1311,9 +1311,9 @@ static PyObject* __Pyx_Method_ClassMethod(PyObject *method) {
methoddescr_type = Py_TYPE(meth);
Py_DECREF(meth);
}
- #else
- PyTypeObject *methoddescr_type = &PyMethodDescr_Type;
- #endif
+ #else
+ PyTypeObject *methoddescr_type = &PyMethodDescr_Type;
+ #endif
if (__Pyx_TypeCheck(method, methoddescr_type))
#endif
{
@@ -1331,7 +1331,7 @@ static PyObject* __Pyx_Method_ClassMethod(PyObject *method) {
// python classes
return PyClassMethod_New(PyMethod_GET_FUNCTION(method));
}
- else {
+ else {
return PyClassMethod_New(method);
}
}
diff --git a/contrib/tools/cython/Cython/Utility/Embed.c b/contrib/tools/cython/Cython/Utility/Embed.c
index 73ae274eaf..60da8f2330 100644
--- a/contrib/tools/cython/Cython/Utility/Embed.c
+++ b/contrib/tools/cython/Cython/Utility/Embed.c
@@ -66,12 +66,12 @@ static int __Pyx_main(int argc, wchar_t **argv) {
}
Py_XDECREF(m);
}
-#if PY_VERSION_HEX < 0x03060000
+#if PY_VERSION_HEX < 0x03060000
Py_Finalize();
-#else
- if (Py_FinalizeEx() < 0)
- return 2;
-#endif
+#else
+ if (Py_FinalizeEx() < 0)
+ return 2;
+#endif
return 0;
}
@@ -213,11 +213,11 @@ int
if (res == 0)
res = __Pyx_main(argc, argv_copy);
for (i = 0; i < argc; i++) {
-#if PY_VERSION_HEX < 0x03050000
+#if PY_VERSION_HEX < 0x03050000
free(argv_copy2[i]);
-#else
- PyMem_RawFree(argv_copy2[i]);
-#endif
+#else
+ PyMem_RawFree(argv_copy2[i]);
+#endif
}
free(argv_copy);
free(argv_copy2);
diff --git a/contrib/tools/cython/Cython/Utility/Exceptions.c b/contrib/tools/cython/Cython/Utility/Exceptions.c
index c550e38332..b0411f6956 100644
--- a/contrib/tools/cython/Cython/Utility/Exceptions.c
+++ b/contrib/tools/cython/Cython/Utility/Exceptions.c
@@ -647,7 +647,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);/*proto*/
//@substitute: naming
#ifndef CYTHON_CLINE_IN_TRACEBACK
-static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
PyObject *use_cline;
PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
@@ -681,8 +681,8 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int
}
if (!use_cline) {
c_line = 0;
- // No need to handle errors here when we reset the exception state just afterwards.
- (void) PyObject_SetAttr(${cython_runtime_cname}, PYIDENT("cline_in_traceback"), Py_False);
+ // No need to handle errors here when we reset the exception state just afterwards.
+ (void) PyObject_SetAttr(${cython_runtime_cname}, PYIDENT("cline_in_traceback"), Py_False);
}
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
c_line = 0;
@@ -709,33 +709,33 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line,
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
const char *funcname, int c_line,
int py_line, const char *filename) {
- PyCodeObject *py_code = NULL;
- PyObject *py_funcname = NULL;
- #if PY_MAJOR_VERSION < 3
- PyObject *py_srcfile = NULL;
+ PyCodeObject *py_code = NULL;
+ PyObject *py_funcname = NULL;
+ #if PY_MAJOR_VERSION < 3
+ PyObject *py_srcfile = NULL;
py_srcfile = PyString_FromString(filename);
- if (!py_srcfile) goto bad;
+ if (!py_srcfile) goto bad;
#endif
-
+
if (c_line) {
#if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, $cfilenm_cname, c_line);
- if (!py_funcname) goto bad;
+ if (!py_funcname) goto bad;
#else
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, $cfilenm_cname, c_line);
- if (!py_funcname) goto bad;
- funcname = PyUnicode_AsUTF8(py_funcname);
- if (!funcname) goto bad;
+ if (!py_funcname) goto bad;
+ funcname = PyUnicode_AsUTF8(py_funcname);
+ if (!funcname) goto bad;
#endif
}
else {
#if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromString(funcname);
- if (!py_funcname) goto bad;
+ if (!py_funcname) goto bad;
#endif
}
- #if PY_MAJOR_VERSION < 3
+ #if PY_MAJOR_VERSION < 3
py_code = __Pyx_PyCode_New(
0, /*int argcount,*/
0, /*int kwonlyargcount,*/
@@ -754,16 +754,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
$empty_bytes /*PyObject *lnotab*/
);
Py_DECREF(py_srcfile);
- #else
- py_code = PyCode_NewEmpty(filename, funcname, py_line);
- #endif
- Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
+ #else
+ py_code = PyCode_NewEmpty(filename, funcname, py_line);
+ #endif
+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
return py_code;
bad:
- Py_XDECREF(py_funcname);
- #if PY_MAJOR_VERSION < 3
+ Py_XDECREF(py_funcname);
+ #if PY_MAJOR_VERSION < 3
Py_XDECREF(py_srcfile);
- #endif
+ #endif
return NULL;
}
diff --git a/contrib/tools/cython/Cython/Utility/ExtensionTypes.c b/contrib/tools/cython/Cython/Utility/ExtensionTypes.c
index e5f16bcb33..0d8c41dee1 100644
--- a/contrib/tools/cython/Cython/Utility/ExtensionTypes.c
+++ b/contrib/tools/cython/Cython/Utility/ExtensionTypes.c
@@ -54,66 +54,66 @@ static int __Pyx_PyType_Ready(PyTypeObject *t) {
}
}
-#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
- {
- // Make sure GC does not pick up our non-heap type as heap type with this hack!
- // For details, see https://github.com/cython/cython/issues/3603
- PyObject *ret, *py_status;
- int gc_was_enabled;
- PyObject *gc = PyImport_Import(PYUNICODE("gc"));
- if (unlikely(!gc)) return -1;
- py_status = PyObject_CallMethodObjArgs(gc, PYUNICODE("isenabled"), NULL);
- if (unlikely(!py_status)) {
- Py_DECREF(gc);
- return -1;
- }
- gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
- Py_DECREF(py_status);
- if (gc_was_enabled > 0) {
- ret = PyObject_CallMethodObjArgs(gc, PYUNICODE("disable"), NULL);
- if (unlikely(!ret)) {
- Py_DECREF(gc);
- return -1;
- }
- Py_DECREF(ret);
- } else if (unlikely(gc_was_enabled == -1)) {
- Py_DECREF(gc);
- return -1;
- }
-
- // As of https://bugs.python.org/issue22079
- // PyType_Ready enforces that all bases of a non-heap type are
- // non-heap. We know that this is the case for the solid base but
- // other bases are heap allocated and are kept alive through the
- // tp_bases reference.
- // Other than this check, the Py_TPFLAGS_HEAPTYPE flag is unused
- // in PyType_Ready().
- t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
+#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
+ {
+ // Make sure GC does not pick up our non-heap type as heap type with this hack!
+ // For details, see https://github.com/cython/cython/issues/3603
+ PyObject *ret, *py_status;
+ int gc_was_enabled;
+ PyObject *gc = PyImport_Import(PYUNICODE("gc"));
+ if (unlikely(!gc)) return -1;
+ py_status = PyObject_CallMethodObjArgs(gc, PYUNICODE("isenabled"), NULL);
+ if (unlikely(!py_status)) {
+ Py_DECREF(gc);
+ return -1;
+ }
+ gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
+ Py_DECREF(py_status);
+ if (gc_was_enabled > 0) {
+ ret = PyObject_CallMethodObjArgs(gc, PYUNICODE("disable"), NULL);
+ if (unlikely(!ret)) {
+ Py_DECREF(gc);
+ return -1;
+ }
+ Py_DECREF(ret);
+ } else if (unlikely(gc_was_enabled == -1)) {
+ Py_DECREF(gc);
+ return -1;
+ }
+
+ // As of https://bugs.python.org/issue22079
+ // PyType_Ready enforces that all bases of a non-heap type are
+ // non-heap. We know that this is the case for the solid base but
+ // other bases are heap allocated and are kept alive through the
+ // tp_bases reference.
+ // Other than this check, the Py_TPFLAGS_HEAPTYPE flag is unused
+ // in PyType_Ready().
+ t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#endif
r = PyType_Ready(t);
-#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
- t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
-
- if (gc_was_enabled) {
- PyObject *t, *v, *tb;
- PyErr_Fetch(&t, &v, &tb);
- ret = PyObject_CallMethodObjArgs(gc, PYUNICODE("enable"), NULL);
- if (likely(ret || r == -1)) {
- Py_XDECREF(ret);
- // do not overwrite exceptions raised by PyType_Ready() above
- PyErr_Restore(t, v, tb);
- } else {
- // PyType_Ready() succeeded, but gc.enable() failed.
- Py_XDECREF(t);
- Py_XDECREF(v);
- Py_XDECREF(tb);
- r = -1;
- }
- }
- Py_DECREF(gc);
- }
+#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
+ t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
+
+ if (gc_was_enabled) {
+ PyObject *t, *v, *tb;
+ PyErr_Fetch(&t, &v, &tb);
+ ret = PyObject_CallMethodObjArgs(gc, PYUNICODE("enable"), NULL);
+ if (likely(ret || r == -1)) {
+ Py_XDECREF(ret);
+ // do not overwrite exceptions raised by PyType_Ready() above
+ PyErr_Restore(t, v, tb);
+ } else {
+ // PyType_Ready() succeeded, but gc.enable() failed.
+ Py_XDECREF(t);
+ Py_XDECREF(v);
+ Py_XDECREF(tb);
+ r = -1;
+ }
+ }
+ Py_DECREF(gc);
+ }
#endif
return r;
@@ -177,7 +177,7 @@ static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
static int __Pyx_setup_reduce(PyObject* type_obj);
/////////////// SetupReduce ///////////////
-//@requires: ObjectHandling.c::PyObjectGetAttrStrNoError
+//@requires: ObjectHandling.c::PyObjectGetAttrStrNoError
//@requires: ObjectHandling.c::PyObjectGetAttrStr
//@substitute: naming
@@ -212,61 +212,61 @@ static int __Pyx_setup_reduce(PyObject* type_obj) {
PyObject *setstate_cython = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
- if (_PyType_Lookup((PyTypeObject*)type_obj, PYIDENT("__getstate__"))) goto __PYX_GOOD;
+ if (_PyType_Lookup((PyTypeObject*)type_obj, PYIDENT("__getstate__"))) goto __PYX_GOOD;
#else
- if (PyObject_HasAttr(type_obj, PYIDENT("__getstate__"))) goto __PYX_GOOD;
+ if (PyObject_HasAttr(type_obj, PYIDENT("__getstate__"))) goto __PYX_GOOD;
#endif
#if CYTHON_USE_PYTYPE_LOOKUP
- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, PYIDENT("__reduce_ex__")); if (!object_reduce_ex) goto __PYX_BAD;
+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, PYIDENT("__reduce_ex__")); if (!object_reduce_ex) goto __PYX_BAD;
#else
- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, PYIDENT("__reduce_ex__")); if (!object_reduce_ex) goto __PYX_BAD;
+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, PYIDENT("__reduce_ex__")); if (!object_reduce_ex) goto __PYX_BAD;
#endif
- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, PYIDENT("__reduce_ex__")); if (unlikely(!reduce_ex)) goto __PYX_BAD;
+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, PYIDENT("__reduce_ex__")); if (unlikely(!reduce_ex)) goto __PYX_BAD;
if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
- object_reduce = _PyType_Lookup(&PyBaseObject_Type, PYIDENT("__reduce__")); if (!object_reduce) goto __PYX_BAD;
+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, PYIDENT("__reduce__")); if (!object_reduce) goto __PYX_BAD;
#else
- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, PYIDENT("__reduce__")); if (!object_reduce) goto __PYX_BAD;
+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, PYIDENT("__reduce__")); if (!object_reduce) goto __PYX_BAD;
#endif
- reduce = __Pyx_PyObject_GetAttrStr(type_obj, PYIDENT("__reduce__")); if (unlikely(!reduce)) goto __PYX_BAD;
+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, PYIDENT("__reduce__")); if (unlikely(!reduce)) goto __PYX_BAD;
if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, PYIDENT("__reduce_cython__"))) {
- reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, PYIDENT("__reduce_cython__"));
- if (likely(reduce_cython)) {
- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__reduce__"), reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__reduce_cython__")); if (unlikely(ret < 0)) goto __PYX_BAD;
- } else if (reduce == object_reduce || PyErr_Occurred()) {
- // Ignore if we're done, i.e. if 'reduce' already has the right name and the original is gone.
- // Otherwise: error.
- goto __PYX_BAD;
- }
+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, PYIDENT("__reduce_cython__"));
+ if (likely(reduce_cython)) {
+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__reduce__"), reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__reduce_cython__")); if (unlikely(ret < 0)) goto __PYX_BAD;
+ } else if (reduce == object_reduce || PyErr_Occurred()) {
+ // Ignore if we're done, i.e. if 'reduce' already has the right name and the original is gone.
+ // Otherwise: error.
+ goto __PYX_BAD;
+ }
setstate = __Pyx_PyObject_GetAttrStr(type_obj, PYIDENT("__setstate__"));
if (!setstate) PyErr_Clear();
if (!setstate || __Pyx_setup_reduce_is_named(setstate, PYIDENT("__setstate_cython__"))) {
- setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, PYIDENT("__setstate_cython__"));
- if (likely(setstate_cython)) {
- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__setstate__"), setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__setstate_cython__")); if (unlikely(ret < 0)) goto __PYX_BAD;
- } else if (!setstate || PyErr_Occurred()) {
- // Ignore if we're done, i.e. if 'setstate' already has the right name and the original is gone.
- // Otherwise: error.
- goto __PYX_BAD;
- }
+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, PYIDENT("__setstate_cython__"));
+ if (likely(setstate_cython)) {
+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__setstate__"), setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, PYIDENT("__setstate_cython__")); if (unlikely(ret < 0)) goto __PYX_BAD;
+ } else if (!setstate || PyErr_Occurred()) {
+ // Ignore if we're done, i.e. if 'setstate' already has the right name and the original is gone.
+ // Otherwise: error.
+ goto __PYX_BAD;
+ }
}
PyType_Modified((PyTypeObject*)type_obj);
}
}
- goto __PYX_GOOD;
+ goto __PYX_GOOD;
-__PYX_BAD:
+__PYX_BAD:
if (!PyErr_Occurred())
PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
ret = -1;
-__PYX_GOOD:
+__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
Py_XDECREF(object_reduce);
Py_XDECREF(object_reduce_ex);
diff --git a/contrib/tools/cython/Cython/Utility/FunctionArguments.c b/contrib/tools/cython/Cython/Utility/FunctionArguments.c
index e738a91e1c..8333d93666 100644
--- a/contrib/tools/cython/Cython/Utility/FunctionArguments.c
+++ b/contrib/tools/cython/Cython/Utility/FunctionArguments.c
@@ -211,7 +211,7 @@ static int __Pyx_ParseOptionalKeywords(
name = first_kw_arg;
#if PY_MAJOR_VERSION < 3
- if (likely(PyString_Check(key))) {
+ if (likely(PyString_Check(key))) {
while (*name) {
if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
&& _PyString_Eq(**name, key)) {
@@ -239,9 +239,9 @@ static int __Pyx_ParseOptionalKeywords(
while (*name) {
int cmp = (**name == key) ? 0 :
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
- (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
#endif
- // In Py2, we may need to convert the argument name from str to unicode for comparison.
+ // In Py2, we may need to convert the argument name from str to unicode for comparison.
PyUnicode_Compare(**name, key);
if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
if (cmp == 0) {
@@ -257,7 +257,7 @@ static int __Pyx_ParseOptionalKeywords(
while (argname != first_kw_arg) {
int cmp = (**argname == key) ? 0 :
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
- (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
#endif
// need to convert argument name from bytes to unicode for comparison
PyUnicode_Compare(**argname, key);
diff --git a/contrib/tools/cython/Cython/Utility/ImportExport.c b/contrib/tools/cython/Cython/Utility/ImportExport.c
index 5633bda97f..532ec326f6 100644
--- a/contrib/tools/cython/Cython/Utility/ImportExport.c
+++ b/contrib/tools/cython/Cython/Utility/ImportExport.c
@@ -46,8 +46,8 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
{
#if PY_MAJOR_VERSION >= 3
if (level == -1) {
- // Avoid C compiler warning if strchr() evaluates to false at compile time.
- if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
+ // Avoid C compiler warning if strchr() evaluates to false at compile time.
+ if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
/* try package relative import first */
module = PyImport_ImportModuleLevelObject(
name, global_dict, empty_dict, list, 1);
@@ -152,12 +152,12 @@ __Pyx_import_all_from(PyObject *locals, PyObject *v)
}
if (skip_leading_underscores &&
#if PY_MAJOR_VERSION < 3
- likely(PyString_Check(name)) &&
+ likely(PyString_Check(name)) &&
PyString_AS_STRING(name)[0] == '_')
#else
- likely(PyUnicode_Check(name)) &&
- likely(__Pyx_PyUnicode_GET_LENGTH(name)) &&
- __Pyx_PyUnicode_READ_CHAR(name, 0) == '_')
+ likely(PyUnicode_Check(name)) &&
+ likely(__Pyx_PyUnicode_GET_LENGTH(name)) &&
+ __Pyx_PyUnicode_READ_CHAR(name, 0) == '_')
#endif
{
Py_DECREF(name);
@@ -658,7 +658,7 @@ static int __Pyx_MergeVtables(PyTypeObject *type) {
base = base->tp_base;
}
}
- base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1));
+ base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1));
base_vtables[0] = unknown;
// Could do MRO resolution of individual methods in the future, assuming
// compatible vtables, but for now simply require a common vtable base.
diff --git a/contrib/tools/cython/Cython/Utility/MemoryView.pyx b/contrib/tools/cython/Cython/Utility/MemoryView.pyx
index d6a388c7e4..6ca5fab9ba 100644
--- a/contrib/tools/cython/Cython/Utility/MemoryView.pyx
+++ b/contrib/tools/cython/Cython/Utility/MemoryView.pyx
@@ -1050,7 +1050,7 @@ cdef memoryview_fromslice({{memviewslice_name}} memviewslice,
@cname('__pyx_memoryview_get_slice_from_memoryview')
cdef {{memviewslice_name}} *get_slice_from_memview(memoryview memview,
- {{memviewslice_name}} *mslice) except NULL:
+ {{memviewslice_name}} *mslice) except NULL:
cdef _memoryviewslice obj
if isinstance(memview, _memoryviewslice):
obj = memview
@@ -1176,10 +1176,10 @@ cdef void copy_strided_to_strided({{memviewslice_name}} *src,
@cname('__pyx_memoryview_slice_get_size')
cdef Py_ssize_t slice_get_size({{memviewslice_name}} *src, int ndim) nogil:
"Return the size of the memory occupied by the slice in number of bytes"
- cdef Py_ssize_t shape, size = src.memview.view.itemsize
+ cdef Py_ssize_t shape, size = src.memview.view.itemsize
- for shape in src.shape[:ndim]:
- size *= shape
+ for shape in src.shape[:ndim]:
+ size *= shape
return size
@@ -1196,11 +1196,11 @@ cdef Py_ssize_t fill_contig_strides_array(
if order == 'F':
for idx in range(ndim):
strides[idx] = stride
- stride *= shape[idx]
+ stride *= shape[idx]
else:
for idx in range(ndim - 1, -1, -1):
strides[idx] = stride
- stride *= shape[idx]
+ stride *= shape[idx]
return stride
@@ -1466,8 +1466,8 @@ cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type):
cdef bytes part, result
if type.typegroup == 'S':
- assert type.fields != NULL
- assert type.fields.type != NULL
+ assert type.fields != NULL
+ assert type.fields.type != NULL
if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT:
alignment = b'^'
diff --git a/contrib/tools/cython/Cython/Utility/MemoryView_C.c b/contrib/tools/cython/Cython/Utility/MemoryView_C.c
index c50819f4c8..0a5d8ee2c2 100644
--- a/contrib/tools/cython/Cython/Utility/MemoryView_C.c
+++ b/contrib/tools/cython/Cython/Utility/MemoryView_C.c
@@ -181,13 +181,13 @@ __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec)
if (buf->strides) {
if (spec & __Pyx_MEMVIEW_CONTIG) {
if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) {
- if (unlikely(buf->strides[dim] != sizeof(void *))) {
+ if (unlikely(buf->strides[dim] != sizeof(void *))) {
PyErr_Format(PyExc_ValueError,
"Buffer is not indirectly contiguous "
"in dimension %d.", dim);
goto fail;
}
- } else if (unlikely(buf->strides[dim] != buf->itemsize)) {
+ } else if (unlikely(buf->strides[dim] != buf->itemsize)) {
PyErr_SetString(PyExc_ValueError,
"Buffer and memoryview are not contiguous "
"in the same dimension.");
@@ -199,7 +199,7 @@ __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec)
Py_ssize_t stride = buf->strides[dim];
if (stride < 0)
stride = -stride;
- if (unlikely(stride < buf->itemsize)) {
+ if (unlikely(stride < buf->itemsize)) {
PyErr_SetString(PyExc_ValueError,
"Buffer and memoryview are not contiguous "
"in the same dimension.");
@@ -207,17 +207,17 @@ __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec)
}
}
} else {
- if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) {
+ if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) {
PyErr_Format(PyExc_ValueError,
"C-contiguous buffer is not contiguous in "
"dimension %d", dim);
goto fail;
- } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) {
+ } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) {
PyErr_Format(PyExc_ValueError,
"C-contiguous buffer is not indirect in "
"dimension %d", dim);
goto fail;
- } else if (unlikely(buf->suboffsets)) {
+ } else if (unlikely(buf->suboffsets)) {
PyErr_SetString(PyExc_ValueError,
"Buffer exposes suboffsets but no strides");
goto fail;
@@ -235,7 +235,7 @@ __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec
// Todo: without PyBUF_INDIRECT we may not have suboffset information, i.e., the
// ptr may not be set to NULL but may be uninitialized?
if (spec & __Pyx_MEMVIEW_DIRECT) {
- if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) {
+ if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) {
PyErr_Format(PyExc_ValueError,
"Buffer not compatible with direct access "
"in dimension %d.", dim);
@@ -244,7 +244,7 @@ __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec
}
if (spec & __Pyx_MEMVIEW_PTR) {
- if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) {
+ if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) {
PyErr_Format(PyExc_ValueError,
"Buffer is not indirectly accessible "
"in dimension %d.", dim);
@@ -265,7 +265,7 @@ __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag)
if (c_or_f_flag & __Pyx_IS_F_CONTIG) {
Py_ssize_t stride = 1;
for (i = 0; i < ndim; i++) {
- if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
+ if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
PyErr_SetString(PyExc_ValueError,
"Buffer not fortran contiguous.");
goto fail;
@@ -275,7 +275,7 @@ __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag)
} else if (c_or_f_flag & __Pyx_IS_C_CONTIG) {
Py_ssize_t stride = 1;
for (i = ndim - 1; i >- 1; i--) {
- if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
+ if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
PyErr_SetString(PyExc_ValueError,
"Buffer not C contiguous.");
goto fail;
@@ -322,7 +322,7 @@ static int __Pyx_ValidateAndInit_memviewslice(
}
buf = &memview->view;
- if (unlikely(buf->ndim != ndim)) {
+ if (unlikely(buf->ndim != ndim)) {
PyErr_Format(PyExc_ValueError,
"Buffer has wrong number of dimensions (expected %d, got %d)",
ndim, buf->ndim);
@@ -331,10 +331,10 @@ static int __Pyx_ValidateAndInit_memviewslice(
if (new_memview) {
__Pyx_BufFmt_Init(&ctx, stack, dtype);
- if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail;
+ if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail;
}
- if (unlikely((unsigned) buf->itemsize != dtype->size)) {
+ if (unlikely((unsigned) buf->itemsize != dtype->size)) {
PyErr_Format(PyExc_ValueError,
"Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) "
"does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)",
@@ -347,19 +347,19 @@ static int __Pyx_ValidateAndInit_memviewslice(
}
/* Check axes */
- if (buf->len > 0) {
- // 0-sized arrays do not undergo these checks since their strides are
- // irrelevant and they are always both C- and F-contiguous.
- for (i = 0; i < ndim; i++) {
- spec = axes_specs[i];
- if (unlikely(!__pyx_check_strides(buf, i, ndim, spec)))
- goto fail;
- if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec)))
- goto fail;
- }
-
- /* Check contiguity */
- if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)))
+ if (buf->len > 0) {
+ // 0-sized arrays do not undergo these checks since their strides are
+ // irrelevant and they are always both C- and F-contiguous.
+ for (i = 0; i < ndim; i++) {
+ spec = axes_specs[i];
+ if (unlikely(!__pyx_check_strides(buf, i, ndim, spec)))
+ goto fail;
+ if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec)))
+ goto fail;
+ }
+
+ /* Check contiguity */
+ if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)))
goto fail;
}
@@ -395,7 +395,7 @@ __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview,
Py_buffer *buf = &memview->view;
__Pyx_RefNannySetupContext("init_memviewslice", 0);
- if (unlikely(memviewslice->memview || memviewslice->data)) {
+ if (unlikely(memviewslice->memview || memviewslice->data)) {
PyErr_SetString(PyExc_ValueError,
"memviewslice is already initialized!");
goto fail;
@@ -489,16 +489,16 @@ __Pyx_INC_MEMVIEW({{memviewslice_name}} *memslice, int have_gil, int lineno)
{
int first_time;
struct {{memview_struct_name}} *memview = memslice->memview;
- if (unlikely(!memview || (PyObject *) memview == Py_None))
+ if (unlikely(!memview || (PyObject *) memview == Py_None))
return; /* allow uninitialized memoryview assignment */
- if (unlikely(__pyx_get_slice_count(memview) < 0))
+ if (unlikely(__pyx_get_slice_count(memview) < 0))
__pyx_fatalerror("Acquisition count is %d (line %d)",
__pyx_get_slice_count(memview), lineno);
first_time = __pyx_add_acquisition_count(memview) == 0;
- if (unlikely(first_time)) {
+ if (unlikely(first_time)) {
if (have_gil) {
Py_INCREF((PyObject *) memview);
} else {
@@ -514,20 +514,20 @@ static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW({{memviewslice_name}} *memslice,
int last_time;
struct {{memview_struct_name}} *memview = memslice->memview;
- if (unlikely(!memview || (PyObject *) memview == Py_None)) {
- // we do not ref-count None
+ if (unlikely(!memview || (PyObject *) memview == Py_None)) {
+ // we do not ref-count None
memslice->memview = NULL;
return;
}
- if (unlikely(__pyx_get_slice_count(memview) <= 0))
+ if (unlikely(__pyx_get_slice_count(memview) <= 0))
__pyx_fatalerror("Acquisition count is %d (line %d)",
__pyx_get_slice_count(memview), lineno);
last_time = __pyx_sub_acquisition_count(memview) == 1;
memslice->data = NULL;
-
- if (unlikely(last_time)) {
+
+ if (unlikely(last_time)) {
if (have_gil) {
Py_CLEAR(memslice->memview);
} else {
@@ -571,7 +571,7 @@ __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
__Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0);
for (i = 0; i < ndim; i++) {
- if (unlikely(from_mvs->suboffsets[i] >= 0)) {
+ if (unlikely(from_mvs->suboffsets[i] >= 0)) {
PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with "
"indirect dimensions (axis %d)", i);
goto fail;
@@ -861,7 +861,7 @@ if (unlikely(__pyx_memoryview_slice_memviewslice(
{{endif}}
{{if boundscheck}}
- if (unlikely(!__Pyx_is_valid_index(__pyx_tmp_idx, __pyx_tmp_shape))) {
+ if (unlikely(!__Pyx_is_valid_index(__pyx_tmp_idx, __pyx_tmp_shape))) {
{{if not have_gil}}
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
diff --git a/contrib/tools/cython/Cython/Utility/ModuleSetupCode.c b/contrib/tools/cython/Cython/Utility/ModuleSetupCode.c
index 8b524f8447..0c7059b354 100644
--- a/contrib/tools/cython/Cython/Utility/ModuleSetupCode.c
+++ b/contrib/tools/cython/Cython/Utility/ModuleSetupCode.c
@@ -4,11 +4,11 @@
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#pragma GCC diagnostic ignored "-Wunused-function"
-#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
-// Ignore tp_print initializer. Need for ya make -DUSE_SYSTEM_PYTHON=3.8
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
+// Ignore tp_print initializer. Need for ya make -DUSE_SYSTEM_PYTHON=3.8
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
#endif
-#endif
#include <stddef.h> /* For offsetof */
#ifndef offsetof
@@ -170,9 +170,9 @@
#ifndef CYTHON_USE_UNICODE_INTERNALS
#define CYTHON_USE_UNICODE_INTERNALS 1
#endif
- #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
- // Python 3.11a2 hid _PyLong_FormatAdvancedWriter and _PyFloat_FormatAdvancedWriter
- // therefore disable unicode writer until a better alternative appears
+ #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
+ // Python 3.11a2 hid _PyLong_FormatAdvancedWriter and _PyFloat_FormatAdvancedWriter
+ // therefore disable unicode writer until a better alternative appears
#undef CYTHON_USE_UNICODE_WRITER
#define CYTHON_USE_UNICODE_WRITER 0
#elif !defined(CYTHON_USE_UNICODE_WRITER)
@@ -191,9 +191,9 @@
#define CYTHON_FAST_THREAD_STATE 1
#endif
#ifndef CYTHON_FAST_PYCALL
- // Python 3.11 deleted localplus argument from frame object, which is used in our
- // fast_pycall code
- #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
+ // Python 3.11 deleted localplus argument from frame object, which is used in our
+ // fast_pycall code
+ #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
#endif
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
@@ -214,9 +214,9 @@
#endif
#if CYTHON_USE_PYLONG_INTERNALS
- #if PY_MAJOR_VERSION < 3
- #include "longintrepr.h"
- #endif
+ #if PY_MAJOR_VERSION < 3
+ #include "longintrepr.h"
+ #endif
/* These short defines can easily conflict with other code */
#undef SHIFT
#undef BASE
@@ -397,77 +397,77 @@ class __Pyx_FakeReference {
#define __Pyx_DefaultClassType PyClass_Type
#else
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
- #define __Pyx_DefaultClassType PyType_Type
-#if PY_VERSION_HEX >= 0x030B00A1
- static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
- PyObject *code, PyObject *c, PyObject* n, PyObject *v,
- PyObject *fv, PyObject *cell, PyObject* fn,
- PyObject *name, int fline, PyObject *lnos) {
- // TODO - currently written to be simple and work in limited API etc.
- // A more optimized version would be good
- PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
- PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
- const char *fn_cstr=NULL;
- const char *name_cstr=NULL;
- PyCodeObject* co=NULL;
- PyObject *type, *value, *traceback;
-
- // we must be able to call this while an exception is happening - thus clear then restore the state
- PyErr_Fetch(&type, &value, &traceback);
-
- if (!(kwds=PyDict_New())) goto end;
- if (!(argcount=PyLong_FromLong(a))) goto end;
- if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
- if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
- if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
- if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
- if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
- if (!(nlocals=PyLong_FromLong(l))) goto end;
- if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
- if (!(stacksize=PyLong_FromLong(s))) goto end;
- if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
- if (!(flags=PyLong_FromLong(f))) goto end;
- if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
- if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
- if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
- if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
- if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
- if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
- if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
- if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
-
- if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
- if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
- if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
-
- if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
- if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
- if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
-
- Py_XDECREF((PyObject*)co);
- co = (PyCodeObject*)call_result;
- call_result = NULL;
-
- if (0) {
- cleanup_code_too:
- Py_XDECREF((PyObject*)co);
- co = NULL;
- }
- end:
- Py_XDECREF(kwds);
- Py_XDECREF(argcount);
- Py_XDECREF(posonlyargcount);
- Py_XDECREF(kwonlyargcount);
- Py_XDECREF(nlocals);
- Py_XDECREF(stacksize);
- Py_XDECREF(replace);
- Py_XDECREF(call_result);
- Py_XDECREF(empty);
- if (type) {
- PyErr_Restore(type, value, traceback);
- }
- return co;
- }
+ #define __Pyx_DefaultClassType PyType_Type
+#if PY_VERSION_HEX >= 0x030B00A1
+ static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
+ PyObject *code, PyObject *c, PyObject* n, PyObject *v,
+ PyObject *fv, PyObject *cell, PyObject* fn,
+ PyObject *name, int fline, PyObject *lnos) {
+ // TODO - currently written to be simple and work in limited API etc.
+ // A more optimized version would be good
+ PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
+ PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
+ const char *fn_cstr=NULL;
+ const char *name_cstr=NULL;
+ PyCodeObject* co=NULL;
+ PyObject *type, *value, *traceback;
+
+ // we must be able to call this while an exception is happening - thus clear then restore the state
+ PyErr_Fetch(&type, &value, &traceback);
+
+ if (!(kwds=PyDict_New())) goto end;
+ if (!(argcount=PyLong_FromLong(a))) goto end;
+ if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
+ if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
+ if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
+ if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
+ if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
+ if (!(nlocals=PyLong_FromLong(l))) goto end;
+ if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
+ if (!(stacksize=PyLong_FromLong(s))) goto end;
+ if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
+ if (!(flags=PyLong_FromLong(f))) goto end;
+ if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
+ if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
+ if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
+ if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
+ if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
+ if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
+ if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
+ if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
+
+ if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
+ if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
+ if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
+
+ if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
+ if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
+ if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
+
+ Py_XDECREF((PyObject*)co);
+ co = (PyCodeObject*)call_result;
+ call_result = NULL;
+
+ if (0) {
+ cleanup_code_too:
+ Py_XDECREF((PyObject*)co);
+ co = NULL;
+ }
+ end:
+ Py_XDECREF(kwds);
+ Py_XDECREF(argcount);
+ Py_XDECREF(posonlyargcount);
+ Py_XDECREF(kwonlyargcount);
+ Py_XDECREF(nlocals);
+ Py_XDECREF(stacksize);
+ Py_XDECREF(replace);
+ Py_XDECREF(call_result);
+ Py_XDECREF(empty);
+ if (type) {
+ PyErr_Restore(type, value, traceback);
+ }
+ return co;
+ }
#else
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
@@ -607,15 +607,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
/* new Py3.3 unicode type (PEP 393) */
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
#define CYTHON_PEP393_ENABLED 1
-
- #if defined(PyUnicode_IS_READY)
+
+ #if defined(PyUnicode_IS_READY)
#define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ? \
0 : _PyUnicode_Ready((PyObject *)(op)))
- #else
- // Py3.12 / PEP-623 will remove wstr type unicode strings and all of the PyUnicode_READY() machinery.
- #define __Pyx_PyUnicode_READY(op) (0)
- #endif
-
+ #else
+ // Py3.12 / PEP-623 will remove wstr type unicode strings and all of the PyUnicode_READY() machinery.
+ #define __Pyx_PyUnicode_READY(op) (0)
+ #endif
+
#define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
#define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
#define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
@@ -623,17 +623,17 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
#define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
#define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
#define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch)
- #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
- #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
- // Avoid calling deprecated C-API functions in Py3.9+ that PEP-623 schedules for removal in Py3.12.
- // https://www.python.org/dev/peps/pep-0623/
- #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
- #else
+ #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
+ // Avoid calling deprecated C-API functions in Py3.9+ that PEP-623 schedules for removal in Py3.12.
+ // https://www.python.org/dev/peps/pep-0623/
+ #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
+ #else
#define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
- #endif
- #else
- #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
- #endif
+ #endif
+ #else
+ #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
+ #endif
#else
#define CYTHON_PEP393_ENABLED 0
#define PyUnicode_1BYTE_KIND 1
@@ -692,11 +692,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
#define PyString_Type PyUnicode_Type
#define PyString_Check PyUnicode_Check
#define PyString_CheckExact PyUnicode_CheckExact
- // PyPy3 used to define "PyObject_Unicode"
-#ifndef PyObject_Unicode
+ // PyPy3 used to define "PyObject_Unicode"
+#ifndef PyObject_Unicode
#define PyObject_Unicode PyObject_Str
#endif
-#endif
+#endif
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
@@ -710,15 +710,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
#define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
#endif
-
-#if PY_VERSION_HEX >= 0x030900A4
- #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
- #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
-#else
- #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
- #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
-#endif
-
+
+#if PY_VERSION_HEX >= 0x030900A4
+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
+#else
+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
+#endif
+
#if CYTHON_ASSUME_SAFE_MACROS
#define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
#else
@@ -757,14 +757,14 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
#if PY_VERSION_HEX < 0x030200A4
typedef long Py_hash_t;
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
- #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
+ #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
#else
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
- #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
+ #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
- #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
#else
#define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
@@ -805,22 +805,22 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
/////////////// PyModInitFuncType.proto ///////////////
-#ifndef CYTHON_NO_PYINIT_EXPORT
-#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
+#ifndef CYTHON_NO_PYINIT_EXPORT
+#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
-#elif PY_MAJOR_VERSION < 3
-// Py2: define this to void manually because PyMODINIT_FUNC adds __declspec(dllexport) to it's definition.
-#ifdef __cplusplus
-#define __Pyx_PyMODINIT_FUNC extern "C" void
-#else
+#elif PY_MAJOR_VERSION < 3
+// Py2: define this to void manually because PyMODINIT_FUNC adds __declspec(dllexport) to it's definition.
+#ifdef __cplusplus
+#define __Pyx_PyMODINIT_FUNC extern "C" void
+#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
-// Py3+: define this to PyObject * manually because PyMODINIT_FUNC adds __declspec(dllexport) to it's definition.
-#ifdef __cplusplus
-#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
-#else
+// Py3+: define this to PyObject * manually because PyMODINIT_FUNC adds __declspec(dllexport) to it's definition.
+#ifdef __cplusplus
+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
+#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif
@@ -1006,7 +1006,7 @@ typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* enc
/////////////// InitThreads.init ///////////////
-#if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0
+#if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0
PyEval_InitThreads();
#endif
@@ -1178,7 +1178,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
int new_max = __pyx_code_cache.max_count + 64;
entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
- __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
if (unlikely(!entries)) {
return;
}
diff --git a/contrib/tools/cython/Cython/Utility/ObjectHandling.c b/contrib/tools/cython/Cython/Utility/ObjectHandling.c
index 4888444085..c1b1c60bda 100644
--- a/contrib/tools/cython/Cython/Utility/ObjectHandling.c
+++ b/contrib/tools/cython/Cython/Utility/ObjectHandling.c
@@ -1040,7 +1040,7 @@ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
/////////////// CallableCheck.proto ///////////////
#if CYTHON_USE_TYPE_SLOTS && PY_MAJOR_VERSION >= 3
-#define __Pyx_PyCallable_Check(obj) (Py_TYPE(obj)->tp_call != NULL)
+#define __Pyx_PyCallable_Check(obj) (Py_TYPE(obj)->tp_call != NULL)
#else
#define __Pyx_PyCallable_Check(obj) PyCallable_Check(obj)
#endif
@@ -1361,41 +1361,41 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam
#endif
-/////////////// PyObjectGetAttrStrNoError.proto ///////////////
-
-static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);/*proto*/
-
-/////////////// PyObjectGetAttrStrNoError ///////////////
-//@requires: PyObjectGetAttrStr
-//@requires: Exceptions.c::PyThreadStateGet
-//@requires: Exceptions.c::PyErrFetchRestore
-//@requires: Exceptions.c::PyErrExceptionMatches
-
-static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
- __Pyx_PyThreadState_declare
- __Pyx_PyThreadState_assign
- if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
- __Pyx_PyErr_Clear();
-}
-
-static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
- PyObject *result;
-#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
- // _PyObject_GenericGetAttrWithDict() in CPython 3.7+ can avoid raising the AttributeError.
- // See https://bugs.python.org/issue32544
- PyTypeObject* tp = Py_TYPE(obj);
- if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
- return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
- }
-#endif
- result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
- if (unlikely(!result)) {
- __Pyx_PyObject_GetAttrStr_ClearAttributeError();
- }
- return result;
-}
-
-
+/////////////// PyObjectGetAttrStrNoError.proto ///////////////
+
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);/*proto*/
+
+/////////////// PyObjectGetAttrStrNoError ///////////////
+//@requires: PyObjectGetAttrStr
+//@requires: Exceptions.c::PyThreadStateGet
+//@requires: Exceptions.c::PyErrFetchRestore
+//@requires: Exceptions.c::PyErrExceptionMatches
+
+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
+ __Pyx_PyThreadState_declare
+ __Pyx_PyThreadState_assign
+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
+ __Pyx_PyErr_Clear();
+}
+
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
+ PyObject *result;
+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
+ // _PyObject_GenericGetAttrWithDict() in CPython 3.7+ can avoid raising the AttributeError.
+ // See https://bugs.python.org/issue32544
+ PyTypeObject* tp = Py_TYPE(obj);
+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
+ }
+#endif
+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
+ if (unlikely(!result)) {
+ __Pyx_PyObject_GetAttrStr_ClearAttributeError();
+ }
+ return result;
+}
+
+
/////////////// PyObjectGetAttrStr.proto ///////////////
#if CYTHON_USE_TYPE_SLOTS
@@ -1913,7 +1913,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
PyObject *result;
- ternaryfunc call = Py_TYPE(func)->tp_call;
+ ternaryfunc call = Py_TYPE(func)->tp_call;
if (unlikely(!call))
return PyObject_Call(func, arg, kw);
@@ -1991,7 +1991,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
-#if CYTHON_FAST_PYCALL
+#if CYTHON_FAST_PYCALL
// Initialised by module init code.
static size_t __pyx_pyframe_localsplus_offset = 0;
@@ -2006,7 +2006,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
(void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
#define __Pyx_PyFrame_GetLocalsplus(frame) \
(assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
-#endif // CYTHON_FAST_PYCALL
+#endif // CYTHON_FAST_PYCALL
#endif
@@ -2273,7 +2273,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec
// fast and simple case that we are optimising for
return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
- } else if (__Pyx_PyFastCFunction_Check(func)) {
+ } else if (__Pyx_PyFastCFunction_Check(func)) {
return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
}
diff --git a/contrib/tools/cython/Cython/Utility/Optimize.c b/contrib/tools/cython/Cython/Utility/Optimize.c
index b49144169d..d18c9b78ec 100644
--- a/contrib/tools/cython/Cython/Utility/Optimize.c
+++ b/contrib/tools/cython/Cython/Utility/Optimize.c
@@ -35,7 +35,7 @@ static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
Py_INCREF(x);
PyList_SET_ITEM(list, len, x);
- __Pyx_SET_SIZE(list, len + 1);
+ __Pyx_SET_SIZE(list, len + 1);
return 0;
}
return PyList_Append(list, x);
@@ -53,7 +53,7 @@ static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
if (likely(L->allocated > len)) {
Py_INCREF(x);
PyList_SET_ITEM(list, len, x);
- __Pyx_SET_SIZE(list, len + 1);
+ __Pyx_SET_SIZE(list, len + 1);
return 0;
}
return PyList_Append(list, x);
@@ -104,7 +104,7 @@ static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) {
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) {
/* Check that both the size is positive and no reallocation shrinking needs to be done. */
if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
- __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
+ __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
}
return CALL_UNBOUND_METHOD(PyList_Type, "pop", L);
@@ -167,7 +167,7 @@ static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t
}
if (likely(__Pyx_is_valid_index(cix, size))) {
PyObject* v = PyList_GET_ITEM(L, cix);
- __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
+ __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
size -= 1;
memmove(&PyList_GET_ITEM(L, cix), &PyList_GET_ITEM(L, cix+1), (size_t)(size-cix)*sizeof(PyObject*));
return v;
diff --git a/contrib/tools/cython/Cython/Utility/Overflow.c b/contrib/tools/cython/Cython/Utility/Overflow.c
index 02e41b84fc..0259c58f01 100644
--- a/contrib/tools/cython/Cython/Utility/Overflow.c
+++ b/contrib/tools/cython/Cython/Utility/Overflow.c
@@ -20,10 +20,10 @@ TODO: Conditionally support 128-bit with intmax_t?
/////////////// Common.proto ///////////////
static int __Pyx_check_twos_complement(void) {
- if ((-1 != ~0)) {
+ if ((-1 != ~0)) {
PyErr_SetString(PyExc_RuntimeError, "Two's complement required for overflow checks.");
return 1;
- } else if ((sizeof(short) == sizeof(int))) {
+ } else if ((sizeof(short) == sizeof(int))) {
PyErr_SetString(PyExc_RuntimeError, "sizeof(short) < sizeof(int) required for overflow checks.");
return 1;
} else {
@@ -31,11 +31,11 @@ static int __Pyx_check_twos_complement(void) {
}
}
-#define __PYX_IS_UNSIGNED(type) ((((type) -1) > 0))
-#define __PYX_SIGN_BIT(type) ((((unsigned type) 1) << (sizeof(type) * 8 - 1)))
-#define __PYX_HALF_MAX(type) ((((type) 1) << (sizeof(type) * 8 - 2)))
-#define __PYX_MIN(type) ((__PYX_IS_UNSIGNED(type) ? (type) 0 : 0 - __PYX_HALF_MAX(type) - __PYX_HALF_MAX(type)))
-#define __PYX_MAX(type) ((~__PYX_MIN(type)))
+#define __PYX_IS_UNSIGNED(type) ((((type) -1) > 0))
+#define __PYX_SIGN_BIT(type) ((((unsigned type) 1) << (sizeof(type) * 8 - 1)))
+#define __PYX_HALF_MAX(type) ((((type) 1) << (sizeof(type) * 8 - 2)))
+#define __PYX_MIN(type) ((__PYX_IS_UNSIGNED(type) ? (type) 0 : 0 - __PYX_HALF_MAX(type) - __PYX_HALF_MAX(type)))
+#define __PYX_MAX(type) ((~__PYX_MIN(type)))
#define __Pyx_add_no_overflow(a, b, overflow) ((a) + (b))
#define __Pyx_add_const_no_overflow(a, b, overflow) ((a) + (b))
@@ -82,13 +82,13 @@ static CYTHON_INLINE {{UINT}} __Pyx_sub_{{NAME}}_checking_overflow({{UINT}} a, {
}
static CYTHON_INLINE {{UINT}} __Pyx_mul_{{NAME}}_checking_overflow({{UINT}} a, {{UINT}} b, int *overflow) {
- if ((sizeof({{UINT}}) < sizeof(unsigned long))) {
+ if ((sizeof({{UINT}}) < sizeof(unsigned long))) {
unsigned long big_r = ((unsigned long) a) * ((unsigned long) b);
{{UINT}} r = ({{UINT}}) big_r;
*overflow |= big_r != r;
return r;
#ifdef HAVE_LONG_LONG
- } else if ((sizeof({{UINT}}) < sizeof(unsigned PY_LONG_LONG))) {
+ } else if ((sizeof({{UINT}}) < sizeof(unsigned PY_LONG_LONG))) {
unsigned PY_LONG_LONG big_r = ((unsigned PY_LONG_LONG) a) * ((unsigned PY_LONG_LONG) b);
{{UINT}} r = ({{UINT}}) big_r;
*overflow |= big_r != r;
@@ -138,13 +138,13 @@ static CYTHON_INLINE {{INT}} __Pyx_mul_const_{{NAME}}_checking_overflow({{INT}}
/////////////// BaseCaseSigned ///////////////
static CYTHON_INLINE {{INT}} __Pyx_add_{{NAME}}_checking_overflow({{INT}} a, {{INT}} b, int *overflow) {
- if ((sizeof({{INT}}) < sizeof(long))) {
+ if ((sizeof({{INT}}) < sizeof(long))) {
long big_r = ((long) a) + ((long) b);
{{INT}} r = ({{INT}}) big_r;
*overflow |= big_r != r;
return r;
#ifdef HAVE_LONG_LONG
- } else if ((sizeof({{INT}}) < sizeof(PY_LONG_LONG))) {
+ } else if ((sizeof({{INT}}) < sizeof(PY_LONG_LONG))) {
PY_LONG_LONG big_r = ((PY_LONG_LONG) a) + ((PY_LONG_LONG) b);
{{INT}} r = ({{INT}}) big_r;
*overflow |= big_r != r;
@@ -184,13 +184,13 @@ static CYTHON_INLINE {{INT}} __Pyx_sub_const_{{NAME}}_checking_overflow({{INT}}
}
static CYTHON_INLINE {{INT}} __Pyx_mul_{{NAME}}_checking_overflow({{INT}} a, {{INT}} b, int *overflow) {
- if ((sizeof({{INT}}) < sizeof(long))) {
+ if ((sizeof({{INT}}) < sizeof(long))) {
long big_r = ((long) a) * ((long) b);
{{INT}} r = ({{INT}}) big_r;
*overflow |= big_r != r;
return ({{INT}}) r;
#ifdef HAVE_LONG_LONG
- } else if ((sizeof({{INT}}) < sizeof(PY_LONG_LONG))) {
+ } else if ((sizeof({{INT}}) < sizeof(PY_LONG_LONG))) {
PY_LONG_LONG big_r = ((PY_LONG_LONG) a) * ((PY_LONG_LONG) b);
{{INT}} r = ({{INT}}) big_r;
*overflow |= big_r != r;
@@ -240,11 +240,11 @@ if (unlikely(__Pyx_check_sane_{{NAME}}())) {
/////////////// SizeCheck.proto ///////////////
static int __Pyx_check_sane_{{NAME}}(void) {
- if (((sizeof({{TYPE}}) <= sizeof(int)) ||
+ if (((sizeof({{TYPE}}) <= sizeof(int)) ||
#ifdef HAVE_LONG_LONG
- (sizeof({{TYPE}}) == sizeof(PY_LONG_LONG)) ||
+ (sizeof({{TYPE}}) == sizeof(PY_LONG_LONG)) ||
#endif
- (sizeof({{TYPE}}) == sizeof(long)))) {
+ (sizeof({{TYPE}}) == sizeof(long)))) {
return 0;
} else {
PyErr_Format(PyExc_RuntimeError, \
@@ -261,28 +261,28 @@ static CYTHON_INLINE {{TYPE}} __Pyx_{{BINOP}}_{{NAME}}_checking_overflow({{TYPE}
/////////////// Binop ///////////////
static CYTHON_INLINE {{TYPE}} __Pyx_{{BINOP}}_{{NAME}}_checking_overflow({{TYPE}} a, {{TYPE}} b, int *overflow) {
- if ((sizeof({{TYPE}}) < sizeof(int))) {
+ if ((sizeof({{TYPE}}) < sizeof(int))) {
return __Pyx_{{BINOP}}_no_overflow(a, b, overflow);
} else if (__PYX_IS_UNSIGNED({{TYPE}})) {
- if ((sizeof({{TYPE}}) == sizeof(unsigned int))) {
- return ({{TYPE}}) __Pyx_{{BINOP}}_unsigned_int_checking_overflow(a, b, overflow);
- } else if ((sizeof({{TYPE}}) == sizeof(unsigned long))) {
- return ({{TYPE}}) __Pyx_{{BINOP}}_unsigned_long_checking_overflow(a, b, overflow);
+ if ((sizeof({{TYPE}}) == sizeof(unsigned int))) {
+ return ({{TYPE}}) __Pyx_{{BINOP}}_unsigned_int_checking_overflow(a, b, overflow);
+ } else if ((sizeof({{TYPE}}) == sizeof(unsigned long))) {
+ return ({{TYPE}}) __Pyx_{{BINOP}}_unsigned_long_checking_overflow(a, b, overflow);
#ifdef HAVE_LONG_LONG
- } else if ((sizeof({{TYPE}}) == sizeof(unsigned PY_LONG_LONG))) {
- return ({{TYPE}}) __Pyx_{{BINOP}}_unsigned_long_long_checking_overflow(a, b, overflow);
+ } else if ((sizeof({{TYPE}}) == sizeof(unsigned PY_LONG_LONG))) {
+ return ({{TYPE}}) __Pyx_{{BINOP}}_unsigned_long_long_checking_overflow(a, b, overflow);
#endif
} else {
abort(); return 0; /* handled elsewhere */
}
} else {
- if ((sizeof({{TYPE}}) == sizeof(int))) {
- return ({{TYPE}}) __Pyx_{{BINOP}}_int_checking_overflow(a, b, overflow);
- } else if ((sizeof({{TYPE}}) == sizeof(long))) {
- return ({{TYPE}}) __Pyx_{{BINOP}}_long_checking_overflow(a, b, overflow);
+ if ((sizeof({{TYPE}}) == sizeof(int))) {
+ return ({{TYPE}}) __Pyx_{{BINOP}}_int_checking_overflow(a, b, overflow);
+ } else if ((sizeof({{TYPE}}) == sizeof(long))) {
+ return ({{TYPE}}) __Pyx_{{BINOP}}_long_checking_overflow(a, b, overflow);
#ifdef HAVE_LONG_LONG
- } else if ((sizeof({{TYPE}}) == sizeof(PY_LONG_LONG))) {
- return ({{TYPE}}) __Pyx_{{BINOP}}_long_long_checking_overflow(a, b, overflow);
+ } else if ((sizeof({{TYPE}}) == sizeof(PY_LONG_LONG))) {
+ return ({{TYPE}}) __Pyx_{{BINOP}}_long_long_checking_overflow(a, b, overflow);
#endif
} else {
abort(); return 0; /* handled elsewhere */
diff --git a/contrib/tools/cython/Cython/Utility/Profile.c b/contrib/tools/cython/Cython/Utility/Profile.c
index 57e2f0244c..921eb67529 100644
--- a/contrib/tools/cython/Cython/Utility/Profile.c
+++ b/contrib/tools/cython/Cython/Utility/Profile.c
@@ -47,58 +47,58 @@
#define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame)
#endif
- #define __Pyx_TraceDeclarations \
- static PyCodeObject *$frame_code_cname = NULL; \
- CYTHON_FRAME_MODIFIER PyFrameObject *$frame_cname = NULL; \
- int __Pyx_use_tracing = 0;
-
- #define __Pyx_TraceFrameInit(codeobj) \
- if (codeobj) $frame_code_cname = (PyCodeObject*) codeobj;
-
-#if PY_VERSION_HEX >= 0x030b00a2
- #define __Pyx_IsTracing(tstate, check_tracing, check_funcs) \
- (unlikely((tstate)->cframe->use_tracing) && \
- (!(check_tracing) || !(tstate)->tracing) && \
- (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
-
- #define __Pyx_EnterTracing(tstate) PyThreadState_EnterTracing(tstate)
-
- #define __Pyx_LeaveTracing(tstate) PyThreadState_LeaveTracing(tstate)
-
-#elif PY_VERSION_HEX >= 0x030a00b1
- #define __Pyx_IsTracing(tstate, check_tracing, check_funcs) \
- (unlikely((tstate)->cframe->use_tracing) && \
- (!(check_tracing) || !(tstate)->tracing) && \
- (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
-
- #define __Pyx_EnterTracing(tstate) \
- do { tstate->tracing++; tstate->cframe->use_tracing = 0; } while (0)
-
- #define __Pyx_LeaveTracing(tstate) \
- do { \
- tstate->tracing--; \
- tstate->cframe->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL) \
- || tstate->c_profilefunc != NULL); \
- } while (0)
-
-#else
- #define __Pyx_IsTracing(tstate, check_tracing, check_funcs) \
- (unlikely((tstate)->use_tracing) && \
- (!(check_tracing) || !(tstate)->tracing) && \
- (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
-
- #define __Pyx_EnterTracing(tstate) \
- do { tstate->tracing++; tstate->use_tracing = 0; } while (0)
-
- #define __Pyx_LeaveTracing(tstate) \
- do { \
- tstate->tracing--; \
- tstate->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL) \
- || tstate->c_profilefunc != NULL); \
- } while (0)
-
-#endif
-
+ #define __Pyx_TraceDeclarations \
+ static PyCodeObject *$frame_code_cname = NULL; \
+ CYTHON_FRAME_MODIFIER PyFrameObject *$frame_cname = NULL; \
+ int __Pyx_use_tracing = 0;
+
+ #define __Pyx_TraceFrameInit(codeobj) \
+ if (codeobj) $frame_code_cname = (PyCodeObject*) codeobj;
+
+#if PY_VERSION_HEX >= 0x030b00a2
+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs) \
+ (unlikely((tstate)->cframe->use_tracing) && \
+ (!(check_tracing) || !(tstate)->tracing) && \
+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
+
+ #define __Pyx_EnterTracing(tstate) PyThreadState_EnterTracing(tstate)
+
+ #define __Pyx_LeaveTracing(tstate) PyThreadState_LeaveTracing(tstate)
+
+#elif PY_VERSION_HEX >= 0x030a00b1
+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs) \
+ (unlikely((tstate)->cframe->use_tracing) && \
+ (!(check_tracing) || !(tstate)->tracing) && \
+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
+
+ #define __Pyx_EnterTracing(tstate) \
+ do { tstate->tracing++; tstate->cframe->use_tracing = 0; } while (0)
+
+ #define __Pyx_LeaveTracing(tstate) \
+ do { \
+ tstate->tracing--; \
+ tstate->cframe->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL) \
+ || tstate->c_profilefunc != NULL); \
+ } while (0)
+
+#else
+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs) \
+ (unlikely((tstate)->use_tracing) && \
+ (!(check_tracing) || !(tstate)->tracing) && \
+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc)))
+
+ #define __Pyx_EnterTracing(tstate) \
+ do { tstate->tracing++; tstate->use_tracing = 0; } while (0)
+
+ #define __Pyx_LeaveTracing(tstate) \
+ do { \
+ tstate->tracing--; \
+ tstate->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL) \
+ || tstate->c_profilefunc != NULL); \
+ } while (0)
+
+#endif
+
#ifdef WITH_THREAD
#define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error) \
if (nogil) { \
@@ -106,7 +106,7 @@
PyThreadState *tstate; \
PyGILState_STATE state = PyGILState_Ensure(); \
tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 1, 1)) { \
+ if (__Pyx_IsTracing(tstate, 1, 1)) { \
__Pyx_use_tracing = __Pyx_TraceSetupAndCall(&$frame_code_cname, &$frame_cname, tstate, funcname, srcfile, firstlineno); \
} \
PyGILState_Release(state); \
@@ -114,7 +114,7 @@
} \
} else { \
PyThreadState* tstate = PyThreadState_GET(); \
- if (__Pyx_IsTracing(tstate, 1, 1)) { \
+ if (__Pyx_IsTracing(tstate, 1, 1)) { \
__Pyx_use_tracing = __Pyx_TraceSetupAndCall(&$frame_code_cname, &$frame_cname, tstate, funcname, srcfile, firstlineno); \
if (unlikely(__Pyx_use_tracing < 0)) goto_error; \
} \
@@ -122,7 +122,7 @@
#else
#define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error) \
{ PyThreadState* tstate = PyThreadState_GET(); \
- if (__Pyx_IsTracing(tstate, 1, 1)) { \
+ if (__Pyx_IsTracing(tstate, 1, 1)) { \
__Pyx_use_tracing = __Pyx_TraceSetupAndCall(&$frame_code_cname, &$frame_cname, tstate, funcname, srcfile, firstlineno); \
if (unlikely(__Pyx_use_tracing < 0)) goto_error; \
} \
@@ -132,8 +132,8 @@
#define __Pyx_TraceException() \
if (likely(!__Pyx_use_tracing)); else { \
PyThreadState* tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 0, 1)) { \
- __Pyx_EnterTracing(tstate); \
+ if (__Pyx_IsTracing(tstate, 0, 1)) { \
+ __Pyx_EnterTracing(tstate); \
PyObject *exc_info = __Pyx_GetExceptionTuple(tstate); \
if (exc_info) { \
if (CYTHON_TRACE && tstate->c_tracefunc) \
@@ -143,20 +143,20 @@
tstate->c_profileobj, $frame_cname, PyTrace_EXCEPTION, exc_info); \
Py_DECREF(exc_info); \
} \
- __Pyx_LeaveTracing(tstate); \
+ __Pyx_LeaveTracing(tstate); \
} \
}
static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) {
PyObject *type, *value, *traceback;
__Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
- __Pyx_EnterTracing(tstate);
+ __Pyx_EnterTracing(tstate);
if (CYTHON_TRACE && tstate->c_tracefunc)
tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result);
if (tstate->c_profilefunc)
tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result);
CYTHON_FRAME_DEL(frame);
- __Pyx_LeaveTracing(tstate);
+ __Pyx_LeaveTracing(tstate);
__Pyx_ErrRestoreInState(tstate, type, value, traceback);
}
@@ -168,14 +168,14 @@
PyThreadState *tstate; \
PyGILState_STATE state = PyGILState_Ensure(); \
tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 0, 0)) { \
+ if (__Pyx_IsTracing(tstate, 0, 0)) { \
__Pyx_call_return_trace_func(tstate, $frame_cname, (PyObject*)result); \
} \
PyGILState_Release(state); \
} \
} else { \
PyThreadState* tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 0, 0)) { \
+ if (__Pyx_IsTracing(tstate, 0, 0)) { \
__Pyx_call_return_trace_func(tstate, $frame_cname, (PyObject*)result); \
} \
} \
@@ -184,7 +184,7 @@
#define __Pyx_TraceReturn(result, nogil) \
if (likely(!__Pyx_use_tracing)); else { \
PyThreadState* tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 0, 0)) { \
+ if (__Pyx_IsTracing(tstate, 0, 0)) { \
__Pyx_call_return_trace_func(tstate, $frame_cname, (PyObject*)result); \
} \
}
@@ -211,11 +211,11 @@
PyObject *type, *value, *traceback;
__Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
__Pyx_PyFrame_SetLineNumber(frame, lineno);
- __Pyx_EnterTracing(tstate);
-
+ __Pyx_EnterTracing(tstate);
+
ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL);
-
- __Pyx_LeaveTracing(tstate);
+
+ __Pyx_LeaveTracing(tstate);
if (likely(!ret)) {
__Pyx_ErrRestoreInState(tstate, type, value, traceback);
} else {
@@ -237,7 +237,7 @@
PyThreadState *tstate; \
PyGILState_STATE state = PyGILState_Ensure(); \
tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && $frame_cname->f_trace) { \
+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && $frame_cname->f_trace) { \
ret = __Pyx_call_line_trace_func(tstate, $frame_cname, lineno); \
} \
PyGILState_Release(state); \
@@ -246,7 +246,7 @@
} \
} else { \
PyThreadState* tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && $frame_cname->f_trace) { \
+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && $frame_cname->f_trace) { \
int ret = __Pyx_call_line_trace_func(tstate, $frame_cname, lineno); \
// XXX https://github.com/cython/cython/issues/2274 \
if (unlikely(ret)) { fprintf(stderr, "cython: line_trace_func returned %d\n", ret); } \
@@ -259,7 +259,7 @@
// mark error label as used to avoid compiler warnings \
if ((1)); else goto_error; \
PyThreadState* tstate = __Pyx_PyThreadState_Current; \
- if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && $frame_cname->f_trace) { \
+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && $frame_cname->f_trace) { \
int ret = __Pyx_call_line_trace_func(tstate, $frame_cname, lineno); \
// XXX https://github.com/cython/cython/issues/2274 \
if (unlikely(ret)) { fprintf(stderr, "cython: line_trace_func returned %d\n", ret); } \
@@ -306,23 +306,23 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code,
(*frame)->f_tstate = tstate;
#endif
}
- __Pyx_PyFrame_SetLineNumber(*frame, firstlineno);
-
+ __Pyx_PyFrame_SetLineNumber(*frame, firstlineno);
+
retval = 1;
- __Pyx_EnterTracing(tstate);
+ __Pyx_EnterTracing(tstate);
__Pyx_ErrFetchInState(tstate, &type, &value, &traceback);
-
+
#if CYTHON_TRACE
if (tstate->c_tracefunc)
retval = tstate->c_tracefunc(tstate->c_traceobj, *frame, PyTrace_CALL, NULL) == 0;
if (retval && tstate->c_profilefunc)
#endif
retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0;
-
- __Pyx_LeaveTracing(tstate);
+
+ __Pyx_LeaveTracing(tstate);
if (retval) {
__Pyx_ErrRestoreInState(tstate, type, value, traceback);
- return __Pyx_IsTracing(tstate, 0, 0) && retval;
+ return __Pyx_IsTracing(tstate, 0, 0) && retval;
} else {
Py_XDECREF(type);
Py_XDECREF(value);
diff --git a/contrib/tools/cython/Cython/Utility/StringTools.c b/contrib/tools/cython/Cython/Utility/StringTools.c
index 205bb7204f..2fdae812a0 100644
--- a/contrib/tools/cython/Cython/Utility/StringTools.c
+++ b/contrib/tools/cython/Cython/Utility/StringTools.c
@@ -66,19 +66,19 @@ static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 ch
//////////////////// PyUCS4InUnicode ////////////////////
-#if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
-
-#if PY_VERSION_HEX < 0x03090000
-#define __Pyx_PyUnicode_AS_UNICODE(op) PyUnicode_AS_UNICODE(op)
-#define __Pyx_PyUnicode_GET_SIZE(op) PyUnicode_GET_SIZE(op)
-#else
-// Avoid calling deprecated C-API functions in Py3.9+ that PEP-623 schedules for removal in Py3.12.
-// https://www.python.org/dev/peps/pep-0623/
-#define __Pyx_PyUnicode_AS_UNICODE(op) (((PyASCIIObject *)(op))->wstr)
-#define __Pyx_PyUnicode_GET_SIZE(op) ((PyCompactUnicodeObject *)(op))->wstr_length
-#endif
-
-#if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
+#if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
+
+#if PY_VERSION_HEX < 0x03090000
+#define __Pyx_PyUnicode_AS_UNICODE(op) PyUnicode_AS_UNICODE(op)
+#define __Pyx_PyUnicode_GET_SIZE(op) PyUnicode_GET_SIZE(op)
+#else
+// Avoid calling deprecated C-API functions in Py3.9+ that PEP-623 schedules for removal in Py3.12.
+// https://www.python.org/dev/peps/pep-0623/
+#define __Pyx_PyUnicode_AS_UNICODE(op) (((PyASCIIObject *)(op))->wstr)
+#define __Pyx_PyUnicode_GET_SIZE(op) ((PyCompactUnicodeObject *)(op))->wstr_length
+#endif
+
+#if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
static int __Pyx_PyUnicodeBufferContainsUCS4_SP(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
/* handle surrogate pairs for Py_UNICODE buffers in 16bit Unicode builds */
Py_UNICODE high_val, low_val;
@@ -90,7 +90,7 @@ static int __Pyx_PyUnicodeBufferContainsUCS4_SP(Py_UNICODE* buffer, Py_ssize_t l
}
return 0;
}
-#endif
+#endif
static int __Pyx_PyUnicodeBufferContainsUCS4_BMP(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
Py_UNICODE uchar;
@@ -101,15 +101,15 @@ static int __Pyx_PyUnicodeBufferContainsUCS4_BMP(Py_UNICODE* buffer, Py_ssize_t
}
return 0;
}
-#endif
+#endif
static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character) {
#if CYTHON_PEP393_ENABLED
const int kind = PyUnicode_KIND(unicode);
- #ifdef PyUnicode_WCHAR_KIND
- if (likely(kind != PyUnicode_WCHAR_KIND))
- #endif
- {
+ #ifdef PyUnicode_WCHAR_KIND
+ if (likely(kind != PyUnicode_WCHAR_KIND))
+ #endif
+ {
Py_ssize_t i;
const void* udata = PyUnicode_DATA(unicode);
const Py_ssize_t length = PyUnicode_GET_LENGTH(unicode);
@@ -118,29 +118,29 @@ static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 ch
}
return 0;
}
-#elif PY_VERSION_HEX >= 0x03090000
- #error Cannot use "UChar in Unicode" in Python 3.9 without PEP-393 unicode strings.
-#elif !defined(PyUnicode_AS_UNICODE)
- #error Cannot use "UChar in Unicode" in Python < 3.9 without Py_UNICODE support.
+#elif PY_VERSION_HEX >= 0x03090000
+ #error Cannot use "UChar in Unicode" in Python 3.9 without PEP-393 unicode strings.
+#elif !defined(PyUnicode_AS_UNICODE)
+ #error Cannot use "UChar in Unicode" in Python < 3.9 without Py_UNICODE support.
#endif
-
-#if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
-#if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
- if ((sizeof(Py_UNICODE) == 2) && unlikely(character > 65535)) {
+
+#if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
+#if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
+ if ((sizeof(Py_UNICODE) == 2) && unlikely(character > 65535)) {
return __Pyx_PyUnicodeBufferContainsUCS4_SP(
- __Pyx_PyUnicode_AS_UNICODE(unicode),
- __Pyx_PyUnicode_GET_SIZE(unicode),
+ __Pyx_PyUnicode_AS_UNICODE(unicode),
+ __Pyx_PyUnicode_GET_SIZE(unicode),
character);
- } else
-#endif
- {
+ } else
+#endif
+ {
return __Pyx_PyUnicodeBufferContainsUCS4_BMP(
- __Pyx_PyUnicode_AS_UNICODE(unicode),
- __Pyx_PyUnicode_GET_SIZE(unicode),
+ __Pyx_PyUnicode_AS_UNICODE(unicode),
+ __Pyx_PyUnicode_GET_SIZE(unicode),
character);
}
-#endif
+#endif
}
@@ -471,7 +471,7 @@ static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
/////////////// decode_c_string ///////////////
//@requires: IncludeStringH
//@requires: decode_c_string_utf16
-//@substitute: naming
+//@substitute: naming
/* duplicate code to avoid calling strlen() if start >= 0 and stop >= 0 */
static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
@@ -495,8 +495,8 @@ static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
if (stop < 0)
stop += length;
}
- if (unlikely(stop <= start))
- return __Pyx_NewRef($empty_unicode);
+ if (unlikely(stop <= start))
+ return __Pyx_NewRef($empty_unicode);
length = stop - start;
cstring += start;
if (decode_func) {
@@ -515,7 +515,7 @@ static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
/////////////// decode_c_bytes ///////////////
//@requires: decode_c_string_utf16
-//@substitute: naming
+//@substitute: naming
static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop,
@@ -532,8 +532,8 @@ static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
}
if (stop > length)
stop = length;
- if (unlikely(stop <= start))
- return __Pyx_NewRef($empty_unicode);
+ if (unlikely(stop <= start))
+ return __Pyx_NewRef($empty_unicode);
length = stop - start;
cstring += start;
if (decode_func) {
@@ -573,7 +573,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
PyObject* text, Py_ssize_t start, Py_ssize_t stop);
/////////////// PyUnicode_Substring ///////////////
-//@substitute: naming
+//@substitute: naming
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
PyObject* text, Py_ssize_t start, Py_ssize_t stop) {
@@ -589,8 +589,8 @@ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring(
stop += length;
else if (stop > length)
stop = length;
- if (stop <= start)
- return __Pyx_NewRef($empty_unicode);
+ if (stop <= start)
+ return __Pyx_NewRef($empty_unicode);
#if CYTHON_PEP393_ENABLED
return PyUnicode_FromKindAndData(PyUnicode_KIND(text),
PyUnicode_1BYTE_DATA(text) + start*PyUnicode_KIND(text), stop-start);
diff --git a/contrib/tools/cython/Cython/Utility/TypeConversion.c b/contrib/tools/cython/Cython/Utility/TypeConversion.c
index 759ac78274..7a7bf0f799 100644
--- a/contrib/tools/cython/Cython/Utility/TypeConversion.c
+++ b/contrib/tools/cython/Cython/Utility/TypeConversion.c
@@ -102,7 +102,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
-static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
@@ -421,25 +421,25 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
}
-static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
- if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
- return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
-#if PY_MAJOR_VERSION < 3
- } else if (likely(PyInt_CheckExact(o))) {
- return PyInt_AS_LONG(o);
-#endif
- } else {
- Py_ssize_t ival;
- PyObject *x;
- x = PyNumber_Index(o);
- if (!x) return -1;
- ival = PyInt_AsLong(x);
- Py_DECREF(x);
- return ival;
- }
-}
-
-
+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
+#if PY_MAJOR_VERSION < 3
+ } else if (likely(PyInt_CheckExact(o))) {
+ return PyInt_AS_LONG(o);
+#endif
+ } else {
+ Py_ssize_t ival;
+ PyObject *x;
+ x = PyNumber_Index(o);
+ if (!x) return -1;
+ ival = PyInt_AsLong(x);
+ Py_DECREF(x);
+ return ival;
+ }
+}
+
+
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
@@ -450,15 +450,15 @@ static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
}
-/////////////// GCCDiagnostics.proto ///////////////
-
-// GCC diagnostic pragmas were introduced in GCC 4.6
-// Used to silence conversion warnings that are ok but cannot be avoided.
-#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
-#define __Pyx_HAS_GCC_DIAGNOSTIC
-#endif
-
-
+/////////////// GCCDiagnostics.proto ///////////////
+
+// GCC diagnostic pragmas were introduced in GCC 4.6
+// Used to silence conversion warnings that are ok but cannot be avoided.
+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+#define __Pyx_HAS_GCC_DIAGNOSTIC
+#endif
+
+
/////////////// ToPyCTupleUtility.proto ///////////////
static PyObject* {{funcname}}({{struct_type_decl}});
@@ -645,17 +645,17 @@ static CYTHON_INLINE Py_UNICODE __Pyx_PyObject_AsPy_UNICODE(PyObject* x) {
static CYTHON_INLINE PyObject* {{TO_PY_FUNCTION}}({{TYPE}} value);
/////////////// CIntToPy ///////////////
-//@requires: GCCDiagnostics
+//@requires: GCCDiagnostics
static CYTHON_INLINE PyObject* {{TO_PY_FUNCTION}}({{TYPE}} value) {
-#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
const {{TYPE}} neg_one = ({{TYPE}}) -1, const_zero = ({{TYPE}}) 0;
-#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-#pragma GCC diagnostic pop
-#endif
+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
+#pragma GCC diagnostic pop
+#endif
const int is_unsigned = neg_one > const_zero;
if (is_unsigned) {
if (sizeof({{TYPE}}) < sizeof(long)) {
@@ -722,10 +722,10 @@ static const char DIGITS_HEX[2*16+1] = {
static CYTHON_INLINE PyObject* {{TO_PY_FUNCTION}}({{TYPE}} value, Py_ssize_t width, char padding_char, char format_char);
/////////////// CIntToPyUnicode ///////////////
-//@requires: StringTools.c::IncludeStringH
+//@requires: StringTools.c::IncludeStringH
//@requires: StringTools.c::BuildPyUnicode
//@requires: CIntToDigits
-//@requires: GCCDiagnostics
+//@requires: GCCDiagnostics
// NOTE: inlining because most arguments are constant, which collapses lots of code below
@@ -738,12 +738,12 @@ static CYTHON_INLINE PyObject* {{TO_PY_FUNCTION}}({{TYPE}} value, Py_ssize_t wid
Py_ssize_t length, ulength;
int prepend_sign, last_one_off;
{{TYPE}} remaining;
-#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
const {{TYPE}} neg_one = ({{TYPE}}) -1, const_zero = ({{TYPE}}) 0;
-#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
const int is_unsigned = neg_one > const_zero;
@@ -764,14 +764,14 @@ static CYTHON_INLINE PyObject* {{TO_PY_FUNCTION}}({{TYPE}} value, Py_ssize_t wid
digit_pos = abs((int)(remaining % (8*8)));
remaining = ({{TYPE}}) (remaining / (8*8));
dpos -= 2;
- memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2); /* copy 2 digits at a time, unaligned */
+ memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2); /* copy 2 digits at a time, unaligned */
last_one_off = (digit_pos < 8);
break;
case 'd':
digit_pos = abs((int)(remaining % (10*10)));
remaining = ({{TYPE}}) (remaining / (10*10));
dpos -= 2;
- memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2); /* copy 2 digits at a time, unaligned */
+ memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2); /* copy 2 digits at a time, unaligned */
last_one_off = (digit_pos < 10);
break;
case 'x':
@@ -870,19 +870,19 @@ static CYTHON_INLINE {{TYPE}} {{FROM_PY_FUNCTION}}(PyObject *);
/////////////// CIntFromPy ///////////////
//@requires: CIntFromPyVerify
-//@requires: GCCDiagnostics
+//@requires: GCCDiagnostics
{{py: from Cython.Utility import pylong_join }}
static CYTHON_INLINE {{TYPE}} {{FROM_PY_FUNCTION}}(PyObject *x) {
-#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
const {{TYPE}} neg_one = ({{TYPE}}) -1, const_zero = ({{TYPE}}) 0;
-#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-#pragma GCC diagnostic pop
-#endif
+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
+#pragma GCC diagnostic pop
+#endif
const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
if (likely(PyInt_Check(x))) {
diff --git a/contrib/tools/cython/Cython/Utility/arrayarray.h b/contrib/tools/cython/Cython/Utility/arrayarray.h
index 1eb1db1ec3..a9e4923785 100644
--- a/contrib/tools/cython/Cython/Utility/arrayarray.h
+++ b/contrib/tools/cython/Cython/Utility/arrayarray.h
@@ -88,7 +88,7 @@ static CYTHON_INLINE PyObject * newarrayobject(PyTypeObject *type, Py_ssize_t si
op->ob_descr = descr;
op->allocated = size;
op->weakreflist = NULL;
- __Pyx_SET_SIZE(op, size);
+ __Pyx_SET_SIZE(op, size);
if (size <= 0) {
op->data.ob_item = NULL;
}
@@ -116,7 +116,7 @@ static CYTHON_INLINE int resize(arrayobject *self, Py_ssize_t n) {
return -1;
}
self->data.ob_item = (char*) items;
- __Pyx_SET_SIZE(self, n);
+ __Pyx_SET_SIZE(self, n);
self->allocated = n;
return 0;
}
@@ -126,7 +126,7 @@ static CYTHON_INLINE int resize_smart(arrayobject *self, Py_ssize_t n) {
void *items = (void*) self->data.ob_item;
Py_ssize_t newsize;
if (n < self->allocated && n*4 > self->allocated) {
- __Pyx_SET_SIZE(self, n);
+ __Pyx_SET_SIZE(self, n);
return 0;
}
newsize = n + (n / 2) + 1;
@@ -140,7 +140,7 @@ static CYTHON_INLINE int resize_smart(arrayobject *self, Py_ssize_t n) {
return -1;
}
self->data.ob_item = (char*) items;
- __Pyx_SET_SIZE(self, n);
+ __Pyx_SET_SIZE(self, n);
self->allocated = newsize;
return 0;
}
diff --git a/contrib/tools/cython/Cython/Utils.py b/contrib/tools/cython/Cython/Utils.py
index c1159a3381..d59d67d78b 100644
--- a/contrib/tools/cython/Cython/Utils.py
+++ b/contrib/tools/cython/Cython/Utils.py
@@ -21,7 +21,7 @@ import re
import io
import codecs
import shutil
-import tempfile
+import tempfile
from contextlib import contextmanager
modification_time = os.path.getmtime
@@ -337,23 +337,23 @@ def get_cython_cache_dir():
def captured_fd(stream=2, encoding=None):
orig_stream = os.dup(stream) # keep copy of original stream
try:
- with tempfile.TemporaryFile(mode="a+b") as temp_file:
- def read_output(_output=[b'']):
- if not temp_file.closed:
- temp_file.seek(0)
- _output[0] = temp_file.read()
- return _output[0]
-
- os.dup2(temp_file.fileno(), stream) # replace stream by copy of pipe
- try:
- def get_output():
- result = read_output()
- return result.decode(encoding) if encoding else result
-
- yield get_output
- finally:
- os.dup2(orig_stream, stream) # restore original stream
- read_output() # keep the output in case it's used after closing the context manager
+ with tempfile.TemporaryFile(mode="a+b") as temp_file:
+ def read_output(_output=[b'']):
+ if not temp_file.closed:
+ temp_file.seek(0)
+ _output[0] = temp_file.read()
+ return _output[0]
+
+ os.dup2(temp_file.fileno(), stream) # replace stream by copy of pipe
+ try:
+ def get_output():
+ result = read_output()
+ return result.decode(encoding) if encoding else result
+
+ yield get_output
+ finally:
+ os.dup2(orig_stream, stream) # restore original stream
+ read_output() # keep the output in case it's used after closing the context manager
finally:
os.close(orig_stream)
@@ -427,7 +427,7 @@ def raise_error_if_module_name_forbidden(full_module_name):
def build_hex_version(version_string):
"""
- Parse and translate '4.3a1' into the readable hex representation '0x040300A1' (like PY_VERSION_HEX).
+ Parse and translate '4.3a1' into the readable hex representation '0x040300A1' (like PY_VERSION_HEX).
"""
# First, parse '4.12a1' into [4, 12, 0, 0xA01].
digits = []
diff --git a/contrib/tools/cython/LICENSE.txt b/contrib/tools/cython/LICENSE.txt
index c56ce93885..d9a10c0d8e 100644
--- a/contrib/tools/cython/LICENSE.txt
+++ b/contrib/tools/cython/LICENSE.txt
@@ -1,176 +1,176 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/contrib/tools/cython/cython.py b/contrib/tools/cython/cython.py
index 5b8909d64c..f4f1486ecf 100755
--- a/contrib/tools/cython/cython.py
+++ b/contrib/tools/cython/cython.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Change content of this file to change uids for cython programs - cython 0.29.27 r0
+# Change content of this file to change uids for cython programs - cython 0.29.27 r0
#
# Cython -- Main Program, generic
diff --git a/contrib/tools/cython/ya.make b/contrib/tools/cython/ya.make
index 55f1e28e55..fd19365234 100644
--- a/contrib/tools/cython/ya.make
+++ b/contrib/tools/cython/ya.make
@@ -1,9 +1,9 @@
-PY23_LIBRARY()
-
-OWNER(g:python-contrib)
-
-VERSION(0.29.27)
-
-LICENSE(Apache-2.0)
-
-END()
+PY23_LIBRARY()
+
+OWNER(g:python-contrib)
+
+VERSION(0.29.27)
+
+LICENSE(Apache-2.0)
+
+END()
diff --git a/contrib/tools/protoc/bin/ya.make b/contrib/tools/protoc/bin/ya.make
index 50c79e63ff..f9e74f5e4c 100644
--- a/contrib/tools/protoc/bin/ya.make
+++ b/contrib/tools/protoc/bin/ya.make
@@ -6,7 +6,7 @@ OWNER(
g:cpp-contrib
)
-LICENSE(BSD-3-Clause)
+LICENSE(BSD-3-Clause)
NO_COMPILER_WARNINGS()
diff --git a/contrib/tools/python/ya.make b/contrib/tools/python/ya.make
index 4d90ce6334..fc95aaca64 100644
--- a/contrib/tools/python/ya.make
+++ b/contrib/tools/python/ya.make
@@ -6,8 +6,8 @@ LICENSE(PSF-2.0)
VERSION(2.7.16)
-ORIGINAL_SOURCE(https://github.com/python/cpython)
-
+ORIGINAL_SOURCE(https://github.com/python/cpython)
+
PEERDIR(
contrib/tools/python/libpython
contrib/tools/python/src/Modules/_sqlite
diff --git a/contrib/tools/python3/lib/py/ya.make b/contrib/tools/python3/lib/py/ya.make
index bb5b23012e..8889a9dabd 100644
--- a/contrib/tools/python3/lib/py/ya.make
+++ b/contrib/tools/python3/lib/py/ya.make
@@ -12,7 +12,7 @@ SRCDIR(contrib/tools/python3/src/Lib)
NO_CHECK_IMPORTS(
antigravity
- asyncio.unix_events
+ asyncio.unix_events
asyncio.windows_events
asyncio.windows_utils
crypt
@@ -28,14 +28,14 @@ NO_CHECK_IMPORTS(
encodings.oem
lzma
msilib.*
- multiprocessing.popen_fork
- multiprocessing.popen_forkserver
- multiprocessing.popen_spawn_posix
+ multiprocessing.popen_fork
+ multiprocessing.popen_forkserver
+ multiprocessing.popen_spawn_posix
multiprocessing.popen_spawn_win32
sqlite3.*
turtle
- pty
- tty
+ pty
+ tty
)
NO_LINT()
diff --git a/contrib/tools/python3/src/Include/Python-ast.h b/contrib/tools/python3/src/Include/Python-ast.h
index f3f1aceb5d..e7afa1e657 100644
--- a/contrib/tools/python3/src/Include/Python-ast.h
+++ b/contrib/tools/python3/src/Include/Python-ast.h
@@ -1,23 +1,23 @@
/* File automatically generated by Parser/asdl_c.py. */
-#ifndef Py_PYTHON_AST_H
-#define Py_PYTHON_AST_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
+#ifndef Py_PYTHON_AST_H
+#define Py_PYTHON_AST_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_LIMITED_API
#include "asdl.h"
-#undef Yield /* undefine macro conflicting with <winbase.h> */
-
+#undef Yield /* undefine macro conflicting with <winbase.h> */
+
typedef struct _mod *mod_ty;
typedef struct _stmt *stmt_ty;
typedef struct _expr *expr_ty;
-typedef enum _expr_context { Load=1, Store=2, Del=3 } expr_context_ty;
+typedef enum _expr_context { Load=1, Store=2, Del=3 } expr_context_ty;
typedef enum _boolop { And=1, Or=2 } boolop_ty;
@@ -44,17 +44,17 @@ typedef struct _alias *alias_ty;
typedef struct _withitem *withitem_ty;
-typedef struct _type_ignore *type_ignore_ty;
+typedef struct _type_ignore *type_ignore_ty;
+
-
enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3,
- FunctionType_kind=4};
+ FunctionType_kind=4};
struct _mod {
enum _mod_kind kind;
union {
struct {
asdl_seq *body;
- asdl_seq *type_ignores;
+ asdl_seq *type_ignores;
} Module;
struct {
@@ -66,10 +66,10 @@ struct _mod {
} Expression;
struct {
- asdl_seq *argtypes;
- expr_ty returns;
- } FunctionType;
-
+ asdl_seq *argtypes;
+ expr_ty returns;
+ } FunctionType;
+
} v;
};
@@ -90,7 +90,7 @@ struct _stmt {
asdl_seq *body;
asdl_seq *decorator_list;
expr_ty returns;
- string type_comment;
+ string type_comment;
} FunctionDef;
struct {
@@ -99,7 +99,7 @@ struct _stmt {
asdl_seq *body;
asdl_seq *decorator_list;
expr_ty returns;
- string type_comment;
+ string type_comment;
} AsyncFunctionDef;
struct {
@@ -121,7 +121,7 @@ struct _stmt {
struct {
asdl_seq *targets;
expr_ty value;
- string type_comment;
+ string type_comment;
} Assign;
struct {
@@ -142,7 +142,7 @@ struct _stmt {
expr_ty iter;
asdl_seq *body;
asdl_seq *orelse;
- string type_comment;
+ string type_comment;
} For;
struct {
@@ -150,7 +150,7 @@ struct _stmt {
expr_ty iter;
asdl_seq *body;
asdl_seq *orelse;
- string type_comment;
+ string type_comment;
} AsyncFor;
struct {
@@ -168,13 +168,13 @@ struct _stmt {
struct {
asdl_seq *items;
asdl_seq *body;
- string type_comment;
+ string type_comment;
} With;
struct {
asdl_seq *items;
asdl_seq *body;
- string type_comment;
+ string type_comment;
} AsyncWith;
struct {
@@ -219,18 +219,18 @@ struct _stmt {
} v;
int lineno;
int col_offset;
- int end_lineno;
- int end_col_offset;
+ int end_lineno;
+ int end_col_offset;
};
-enum _expr_kind {BoolOp_kind=1, NamedExpr_kind=2, BinOp_kind=3, UnaryOp_kind=4,
- Lambda_kind=5, IfExp_kind=6, Dict_kind=7, Set_kind=8,
- ListComp_kind=9, SetComp_kind=10, DictComp_kind=11,
- GeneratorExp_kind=12, Await_kind=13, Yield_kind=14,
- YieldFrom_kind=15, Compare_kind=16, Call_kind=17,
- FormattedValue_kind=18, JoinedStr_kind=19, Constant_kind=20,
- Attribute_kind=21, Subscript_kind=22, Starred_kind=23,
- Name_kind=24, List_kind=25, Tuple_kind=26, Slice_kind=27};
+enum _expr_kind {BoolOp_kind=1, NamedExpr_kind=2, BinOp_kind=3, UnaryOp_kind=4,
+ Lambda_kind=5, IfExp_kind=6, Dict_kind=7, Set_kind=8,
+ ListComp_kind=9, SetComp_kind=10, DictComp_kind=11,
+ GeneratorExp_kind=12, Await_kind=13, Yield_kind=14,
+ YieldFrom_kind=15, Compare_kind=16, Call_kind=17,
+ FormattedValue_kind=18, JoinedStr_kind=19, Constant_kind=20,
+ Attribute_kind=21, Subscript_kind=22, Starred_kind=23,
+ Name_kind=24, List_kind=25, Tuple_kind=26, Slice_kind=27};
struct _expr {
enum _expr_kind kind;
union {
@@ -240,11 +240,11 @@ struct _expr {
} BoolOp;
struct {
- expr_ty target;
- expr_ty value;
- } NamedExpr;
-
- struct {
+ expr_ty target;
+ expr_ty value;
+ } NamedExpr;
+
+ struct {
expr_ty left;
operator_ty op;
expr_ty right;
@@ -332,7 +332,7 @@ struct _expr {
struct {
constant value;
- string kind;
+ string kind;
} Constant;
struct {
@@ -343,7 +343,7 @@ struct _expr {
struct {
expr_ty value;
- expr_ty slice;
+ expr_ty slice;
expr_context_ty ctx;
} Subscript;
@@ -374,10 +374,10 @@ struct _expr {
} Slice;
} v;
- int lineno;
- int col_offset;
- int end_lineno;
- int end_col_offset;
+ int lineno;
+ int col_offset;
+ int end_lineno;
+ int end_col_offset;
};
struct _comprehension {
@@ -400,12 +400,12 @@ struct _excepthandler {
} v;
int lineno;
int col_offset;
- int end_lineno;
- int end_col_offset;
+ int end_lineno;
+ int end_col_offset;
};
struct _arguments {
- asdl_seq *posonlyargs;
+ asdl_seq *posonlyargs;
asdl_seq *args;
arg_ty vararg;
asdl_seq *kwonlyargs;
@@ -417,20 +417,20 @@ struct _arguments {
struct _arg {
identifier arg;
expr_ty annotation;
- string type_comment;
+ string type_comment;
int lineno;
int col_offset;
- int end_lineno;
- int end_col_offset;
+ int end_lineno;
+ int end_col_offset;
};
struct _keyword {
identifier arg;
expr_ty value;
- int lineno;
- int col_offset;
- int end_lineno;
- int end_col_offset;
+ int lineno;
+ int col_offset;
+ int end_lineno;
+ int end_col_offset;
};
struct _alias {
@@ -443,255 +443,255 @@ struct _withitem {
expr_ty optional_vars;
};
-enum _type_ignore_kind {TypeIgnore_kind=1};
-struct _type_ignore {
- enum _type_ignore_kind kind;
- union {
- struct {
- int lineno;
- string tag;
- } TypeIgnore;
-
- } v;
-};
-
-
-// Note: these macros affect function definitions, not only call sites.
-#define Module(a0, a1, a2) _Py_Module(a0, a1, a2)
-mod_ty _Py_Module(asdl_seq * body, asdl_seq * type_ignores, PyArena *arena);
+enum _type_ignore_kind {TypeIgnore_kind=1};
+struct _type_ignore {
+ enum _type_ignore_kind kind;
+ union {
+ struct {
+ int lineno;
+ string tag;
+ } TypeIgnore;
+
+ } v;
+};
+
+
+// Note: these macros affect function definitions, not only call sites.
+#define Module(a0, a1, a2) _Py_Module(a0, a1, a2)
+mod_ty _Py_Module(asdl_seq * body, asdl_seq * type_ignores, PyArena *arena);
#define Interactive(a0, a1) _Py_Interactive(a0, a1)
mod_ty _Py_Interactive(asdl_seq * body, PyArena *arena);
#define Expression(a0, a1) _Py_Expression(a0, a1)
mod_ty _Py_Expression(expr_ty body, PyArena *arena);
-#define FunctionType(a0, a1, a2) _Py_FunctionType(a0, a1, a2)
-mod_ty _Py_FunctionType(asdl_seq * argtypes, expr_ty returns, PyArena *arena);
-#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+#define FunctionType(a0, a1, a2) _Py_FunctionType(a0, a1, a2)
+mod_ty _Py_FunctionType(asdl_seq * argtypes, expr_ty returns, PyArena *arena);
+#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
stmt_ty _Py_FunctionDef(identifier name, arguments_ty args, asdl_seq * body,
- asdl_seq * decorator_list, expr_ty returns, string
- type_comment, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+ asdl_seq * decorator_list, expr_ty returns, string
+ type_comment, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
stmt_ty _Py_AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq *
body, asdl_seq * decorator_list, expr_ty returns,
- string type_comment, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena
- *arena);
-#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
+ string type_comment, int lineno, int col_offset,
+ int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
stmt_ty _Py_ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords,
asdl_seq * body, asdl_seq * decorator_list, int lineno,
- int col_offset, int end_lineno, int end_col_offset,
- PyArena *arena);
-#define Return(a0, a1, a2, a3, a4, a5) _Py_Return(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_Return(expr_ty value, int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena);
-#define Delete(a0, a1, a2, a3, a4, a5) _Py_Delete(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_Delete(asdl_seq * targets, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Assign(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Assign(a0, a1, a2, a3, a4, a5, a6, a7)
-stmt_ty _Py_Assign(asdl_seq * targets, expr_ty value, string type_comment, int
- lineno, int col_offset, int end_lineno, int end_col_offset,
- PyArena *arena);
-#define AugAssign(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AugAssign(a0, a1, a2, a3, a4, a5, a6, a7)
+ int col_offset, int end_lineno, int end_col_offset,
+ PyArena *arena);
+#define Return(a0, a1, a2, a3, a4, a5) _Py_Return(a0, a1, a2, a3, a4, a5)
+stmt_ty _Py_Return(expr_ty value, int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena);
+#define Delete(a0, a1, a2, a3, a4, a5) _Py_Delete(a0, a1, a2, a3, a4, a5)
+stmt_ty _Py_Delete(asdl_seq * targets, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Assign(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Assign(a0, a1, a2, a3, a4, a5, a6, a7)
+stmt_ty _Py_Assign(asdl_seq * targets, expr_ty value, string type_comment, int
+ lineno, int col_offset, int end_lineno, int end_col_offset,
+ PyArena *arena);
+#define AugAssign(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AugAssign(a0, a1, a2, a3, a4, a5, a6, a7)
stmt_ty _Py_AugAssign(expr_ty target, operator_ty op, expr_ty value, int
- lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define AnnAssign(a0, a1, a2, a3, a4, a5, a6, a7, a8) _Py_AnnAssign(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+ lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define AnnAssign(a0, a1, a2, a3, a4, a5, a6, a7, a8) _Py_AnnAssign(a0, a1, a2, a3, a4, a5, a6, a7, a8)
stmt_ty _Py_AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int
- simple, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define For(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) _Py_For(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
+ simple, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define For(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) _Py_For(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
stmt_ty _Py_For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
- orelse, string type_comment, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define AsyncFor(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) _Py_AsyncFor(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
+ orelse, string type_comment, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define AsyncFor(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) _Py_AsyncFor(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
stmt_ty _Py_AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
- orelse, string type_comment, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena);
-#define While(a0, a1, a2, a3, a4, a5, a6, a7) _Py_While(a0, a1, a2, a3, a4, a5, a6, a7)
+ orelse, string type_comment, int lineno, int col_offset,
+ int end_lineno, int end_col_offset, PyArena *arena);
+#define While(a0, a1, a2, a3, a4, a5, a6, a7) _Py_While(a0, a1, a2, a3, a4, a5, a6, a7)
stmt_ty _Py_While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
- int col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define If(a0, a1, a2, a3, a4, a5, a6, a7) _Py_If(a0, a1, a2, a3, a4, a5, a6, a7)
+ int col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define If(a0, a1, a2, a3, a4, a5, a6, a7) _Py_If(a0, a1, a2, a3, a4, a5, a6, a7)
stmt_ty _Py_If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
- int col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define With(a0, a1, a2, a3, a4, a5, a6, a7) _Py_With(a0, a1, a2, a3, a4, a5, a6, a7)
-stmt_ty _Py_With(asdl_seq * items, asdl_seq * body, string type_comment, int
- lineno, int col_offset, int end_lineno, int end_col_offset,
+ int col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define With(a0, a1, a2, a3, a4, a5, a6, a7) _Py_With(a0, a1, a2, a3, a4, a5, a6, a7)
+stmt_ty _Py_With(asdl_seq * items, asdl_seq * body, string type_comment, int
+ lineno, int col_offset, int end_lineno, int end_col_offset,
PyArena *arena);
-#define AsyncWith(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AsyncWith(a0, a1, a2, a3, a4, a5, a6, a7)
-stmt_ty _Py_AsyncWith(asdl_seq * items, asdl_seq * body, string type_comment,
- int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Raise(a0, a1, a2, a3, a4, a5, a6) _Py_Raise(a0, a1, a2, a3, a4, a5, a6)
-stmt_ty _Py_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Try(a0, a1, a2, a3, a4, a5, a6, a7, a8) _Py_Try(a0, a1, a2, a3, a4, a5, a6, a7, a8)
+#define AsyncWith(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AsyncWith(a0, a1, a2, a3, a4, a5, a6, a7)
+stmt_ty _Py_AsyncWith(asdl_seq * items, asdl_seq * body, string type_comment,
+ int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Raise(a0, a1, a2, a3, a4, a5, a6) _Py_Raise(a0, a1, a2, a3, a4, a5, a6)
+stmt_ty _Py_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Try(a0, a1, a2, a3, a4, a5, a6, a7, a8) _Py_Try(a0, a1, a2, a3, a4, a5, a6, a7, a8)
stmt_ty _Py_Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse,
- asdl_seq * finalbody, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Assert(a0, a1, a2, a3, a4, a5, a6) _Py_Assert(a0, a1, a2, a3, a4, a5, a6)
-stmt_ty _Py_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Import(a0, a1, a2, a3, a4, a5) _Py_Import(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_Import(asdl_seq * names, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define ImportFrom(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ImportFrom(a0, a1, a2, a3, a4, a5, a6, a7)
+ asdl_seq * finalbody, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Assert(a0, a1, a2, a3, a4, a5, a6) _Py_Assert(a0, a1, a2, a3, a4, a5, a6)
+stmt_ty _Py_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Import(a0, a1, a2, a3, a4, a5) _Py_Import(a0, a1, a2, a3, a4, a5)
+stmt_ty _Py_Import(asdl_seq * names, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define ImportFrom(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ImportFrom(a0, a1, a2, a3, a4, a5, a6, a7)
stmt_ty _Py_ImportFrom(identifier module, asdl_seq * names, int level, int
- lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Global(a0, a1, a2, a3, a4, a5) _Py_Global(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_Global(asdl_seq * names, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Nonlocal(a0, a1, a2, a3, a4, a5) _Py_Nonlocal(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_Nonlocal(asdl_seq * names, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Expr(a0, a1, a2, a3, a4, a5) _Py_Expr(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_Expr(expr_ty value, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Pass(a0, a1, a2, a3, a4) _Py_Pass(a0, a1, a2, a3, a4)
-stmt_ty _Py_Pass(int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Break(a0, a1, a2, a3, a4) _Py_Break(a0, a1, a2, a3, a4)
-stmt_ty _Py_Break(int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Continue(a0, a1, a2, a3, a4) _Py_Continue(a0, a1, a2, a3, a4)
-stmt_ty _Py_Continue(int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define BoolOp(a0, a1, a2, a3, a4, a5, a6) _Py_BoolOp(a0, a1, a2, a3, a4, a5, a6)
+ lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Global(a0, a1, a2, a3, a4, a5) _Py_Global(a0, a1, a2, a3, a4, a5)
+stmt_ty _Py_Global(asdl_seq * names, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Nonlocal(a0, a1, a2, a3, a4, a5) _Py_Nonlocal(a0, a1, a2, a3, a4, a5)
+stmt_ty _Py_Nonlocal(asdl_seq * names, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Expr(a0, a1, a2, a3, a4, a5) _Py_Expr(a0, a1, a2, a3, a4, a5)
+stmt_ty _Py_Expr(expr_ty value, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Pass(a0, a1, a2, a3, a4) _Py_Pass(a0, a1, a2, a3, a4)
+stmt_ty _Py_Pass(int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Break(a0, a1, a2, a3, a4) _Py_Break(a0, a1, a2, a3, a4)
+stmt_ty _Py_Break(int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Continue(a0, a1, a2, a3, a4) _Py_Continue(a0, a1, a2, a3, a4)
+stmt_ty _Py_Continue(int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define BoolOp(a0, a1, a2, a3, a4, a5, a6) _Py_BoolOp(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena);
-#define NamedExpr(a0, a1, a2, a3, a4, a5, a6) _Py_NamedExpr(a0, a1, a2, a3, a4, a5, a6)
-expr_ty _Py_NamedExpr(expr_ty target, expr_ty value, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define BinOp(a0, a1, a2, a3, a4, a5, a6, a7) _Py_BinOp(a0, a1, a2, a3, a4, a5, a6, a7)
+ int end_lineno, int end_col_offset, PyArena *arena);
+#define NamedExpr(a0, a1, a2, a3, a4, a5, a6) _Py_NamedExpr(a0, a1, a2, a3, a4, a5, a6)
+expr_ty _Py_NamedExpr(expr_ty target, expr_ty value, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define BinOp(a0, a1, a2, a3, a4, a5, a6, a7) _Py_BinOp(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define UnaryOp(a0, a1, a2, a3, a4, a5, a6) _Py_UnaryOp(a0, a1, a2, a3, a4, a5, a6)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define UnaryOp(a0, a1, a2, a3, a4, a5, a6) _Py_UnaryOp(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena);
-#define Lambda(a0, a1, a2, a3, a4, a5, a6) _Py_Lambda(a0, a1, a2, a3, a4, a5, a6)
+ int end_lineno, int end_col_offset, PyArena *arena);
+#define Lambda(a0, a1, a2, a3, a4, a5, a6) _Py_Lambda(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena);
-#define IfExp(a0, a1, a2, a3, a4, a5, a6, a7) _Py_IfExp(a0, a1, a2, a3, a4, a5, a6, a7)
+ int end_lineno, int end_col_offset, PyArena *arena);
+#define IfExp(a0, a1, a2, a3, a4, a5, a6, a7) _Py_IfExp(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define Dict(a0, a1, a2, a3, a4, a5, a6) _Py_Dict(a0, a1, a2, a3, a4, a5, a6)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define Dict(a0, a1, a2, a3, a4, a5, a6) _Py_Dict(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_Dict(asdl_seq * keys, asdl_seq * values, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define Set(a0, a1, a2, a3, a4, a5) _Py_Set(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_Set(asdl_seq * elts, int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena);
-#define ListComp(a0, a1, a2, a3, a4, a5, a6) _Py_ListComp(a0, a1, a2, a3, a4, a5, a6)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define Set(a0, a1, a2, a3, a4, a5) _Py_Set(a0, a1, a2, a3, a4, a5)
+expr_ty _Py_Set(asdl_seq * elts, int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena);
+#define ListComp(a0, a1, a2, a3, a4, a5, a6) _Py_ListComp(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_ListComp(expr_ty elt, asdl_seq * generators, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define SetComp(a0, a1, a2, a3, a4, a5, a6) _Py_SetComp(a0, a1, a2, a3, a4, a5, a6)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define SetComp(a0, a1, a2, a3, a4, a5, a6) _Py_SetComp(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_SetComp(expr_ty elt, asdl_seq * generators, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define DictComp(a0, a1, a2, a3, a4, a5, a6, a7) _Py_DictComp(a0, a1, a2, a3, a4, a5, a6, a7)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define DictComp(a0, a1, a2, a3, a4, a5, a6, a7) _Py_DictComp(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int
- lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define GeneratorExp(a0, a1, a2, a3, a4, a5, a6) _Py_GeneratorExp(a0, a1, a2, a3, a4, a5, a6)
+ lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define GeneratorExp(a0, a1, a2, a3, a4, a5, a6) _Py_GeneratorExp(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int
- col_offset, int end_lineno, int end_col_offset,
- PyArena *arena);
-#define Await(a0, a1, a2, a3, a4, a5) _Py_Await(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_Await(expr_ty value, int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena);
-#define Yield(a0, a1, a2, a3, a4, a5) _Py_Yield(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_Yield(expr_ty value, int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena);
-#define YieldFrom(a0, a1, a2, a3, a4, a5) _Py_YieldFrom(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_YieldFrom(expr_ty value, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Compare(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Compare(a0, a1, a2, a3, a4, a5, a6, a7)
+ col_offset, int end_lineno, int end_col_offset,
+ PyArena *arena);
+#define Await(a0, a1, a2, a3, a4, a5) _Py_Await(a0, a1, a2, a3, a4, a5)
+expr_ty _Py_Await(expr_ty value, int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena);
+#define Yield(a0, a1, a2, a3, a4, a5) _Py_Yield(a0, a1, a2, a3, a4, a5)
+expr_ty _Py_Yield(expr_ty value, int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena);
+#define YieldFrom(a0, a1, a2, a3, a4, a5) _Py_YieldFrom(a0, a1, a2, a3, a4, a5)
+expr_ty _Py_YieldFrom(expr_ty value, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Compare(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Compare(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators,
- int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Call(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Call(a0, a1, a2, a3, a4, a5, a6, a7)
+ int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Call(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Call(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int
- lineno, int col_offset, int end_lineno, int end_col_offset,
- PyArena *arena);
-#define FormattedValue(a0, a1, a2, a3, a4, a5, a6, a7) _Py_FormattedValue(a0, a1, a2, a3, a4, a5, a6, a7)
+ lineno, int col_offset, int end_lineno, int end_col_offset,
+ PyArena *arena);
+#define FormattedValue(a0, a1, a2, a3, a4, a5, a6, a7) _Py_FormattedValue(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_FormattedValue(expr_ty value, int conversion, expr_ty format_spec,
- int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define JoinedStr(a0, a1, a2, a3, a4, a5) _Py_JoinedStr(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_JoinedStr(asdl_seq * values, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena);
-#define Constant(a0, a1, a2, a3, a4, a5, a6) _Py_Constant(a0, a1, a2, a3, a4, a5, a6)
-expr_ty _Py_Constant(constant value, string kind, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena);
-#define Attribute(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Attribute(a0, a1, a2, a3, a4, a5, a6, a7)
+ int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define JoinedStr(a0, a1, a2, a3, a4, a5) _Py_JoinedStr(a0, a1, a2, a3, a4, a5)
+expr_ty _Py_JoinedStr(asdl_seq * values, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena);
+#define Constant(a0, a1, a2, a3, a4, a5, a6) _Py_Constant(a0, a1, a2, a3, a4, a5, a6)
+expr_ty _Py_Constant(constant value, string kind, int lineno, int col_offset,
+ int end_lineno, int end_col_offset, PyArena *arena);
+#define Attribute(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Attribute(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int
- lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Subscript(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Subscript(a0, a1, a2, a3, a4, a5, a6, a7)
-expr_ty _Py_Subscript(expr_ty value, expr_ty slice, expr_context_ty ctx, int
- lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena);
-#define Starred(a0, a1, a2, a3, a4, a5, a6) _Py_Starred(a0, a1, a2, a3, a4, a5, a6)
+ lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Subscript(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Subscript(a0, a1, a2, a3, a4, a5, a6, a7)
+expr_ty _Py_Subscript(expr_ty value, expr_ty slice, expr_context_ty ctx, int
+ lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena);
+#define Starred(a0, a1, a2, a3, a4, a5, a6) _Py_Starred(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_Starred(expr_ty value, expr_context_ty ctx, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define Name(a0, a1, a2, a3, a4, a5, a6) _Py_Name(a0, a1, a2, a3, a4, a5, a6)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define Name(a0, a1, a2, a3, a4, a5, a6) _Py_Name(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_Name(identifier id, expr_context_ty ctx, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define List(a0, a1, a2, a3, a4, a5, a6) _Py_List(a0, a1, a2, a3, a4, a5, a6)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define List(a0, a1, a2, a3, a4, a5, a6) _Py_List(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_List(asdl_seq * elts, expr_context_ty ctx, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define Tuple(a0, a1, a2, a3, a4, a5, a6) _Py_Tuple(a0, a1, a2, a3, a4, a5, a6)
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define Tuple(a0, a1, a2, a3, a4, a5, a6) _Py_Tuple(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
-#define Slice(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Slice(a0, a1, a2, a3, a4, a5, a6, a7)
-expr_ty _Py_Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
+#define Slice(a0, a1, a2, a3, a4, a5, a6, a7) _Py_Slice(a0, a1, a2, a3, a4, a5, a6, a7)
+expr_ty _Py_Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
#define comprehension(a0, a1, a2, a3, a4) _Py_comprehension(a0, a1, a2, a3, a4)
comprehension_ty _Py_comprehension(expr_ty target, expr_ty iter, asdl_seq *
ifs, int is_async, PyArena *arena);
-#define ExceptHandler(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ExceptHandler(a0, a1, a2, a3, a4, a5, a6, a7)
+#define ExceptHandler(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ExceptHandler(a0, a1, a2, a3, a4, a5, a6, a7)
excepthandler_ty _Py_ExceptHandler(expr_ty type, identifier name, asdl_seq *
- body, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena
+ body, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena
*arena);
-#define arguments(a0, a1, a2, a3, a4, a5, a6, a7) _Py_arguments(a0, a1, a2, a3, a4, a5, a6, a7)
-arguments_ty _Py_arguments(asdl_seq * posonlyargs, asdl_seq * args, arg_ty
- vararg, asdl_seq * kwonlyargs, asdl_seq *
- kw_defaults, arg_ty kwarg, asdl_seq * defaults,
- PyArena *arena);
-#define arg(a0, a1, a2, a3, a4, a5, a6, a7) _Py_arg(a0, a1, a2, a3, a4, a5, a6, a7)
-arg_ty _Py_arg(identifier arg, expr_ty annotation, string type_comment, int
- lineno, int col_offset, int end_lineno, int end_col_offset,
+#define arguments(a0, a1, a2, a3, a4, a5, a6, a7) _Py_arguments(a0, a1, a2, a3, a4, a5, a6, a7)
+arguments_ty _Py_arguments(asdl_seq * posonlyargs, asdl_seq * args, arg_ty
+ vararg, asdl_seq * kwonlyargs, asdl_seq *
+ kw_defaults, arg_ty kwarg, asdl_seq * defaults,
+ PyArena *arena);
+#define arg(a0, a1, a2, a3, a4, a5, a6, a7) _Py_arg(a0, a1, a2, a3, a4, a5, a6, a7)
+arg_ty _Py_arg(identifier arg, expr_ty annotation, string type_comment, int
+ lineno, int col_offset, int end_lineno, int end_col_offset,
PyArena *arena);
-#define keyword(a0, a1, a2, a3, a4, a5, a6) _Py_keyword(a0, a1, a2, a3, a4, a5, a6)
-keyword_ty _Py_keyword(identifier arg, expr_ty value, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena
- *arena);
+#define keyword(a0, a1, a2, a3, a4, a5, a6) _Py_keyword(a0, a1, a2, a3, a4, a5, a6)
+keyword_ty _Py_keyword(identifier arg, expr_ty value, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
#define alias(a0, a1, a2) _Py_alias(a0, a1, a2)
alias_ty _Py_alias(identifier name, identifier asname, PyArena *arena);
#define withitem(a0, a1, a2) _Py_withitem(a0, a1, a2)
withitem_ty _Py_withitem(expr_ty context_expr, expr_ty optional_vars, PyArena
*arena);
-#define TypeIgnore(a0, a1, a2) _Py_TypeIgnore(a0, a1, a2)
-type_ignore_ty _Py_TypeIgnore(int lineno, string tag, PyArena *arena);
+#define TypeIgnore(a0, a1, a2) _Py_TypeIgnore(a0, a1, a2)
+type_ignore_ty _Py_TypeIgnore(int lineno, string tag, PyArena *arena);
PyObject* PyAST_mod2obj(mod_ty t);
mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
int PyAST_Check(PyObject* obj);
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PYTHON_AST_H */
+#endif /* !Py_LIMITED_API */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_PYTHON_AST_H */
diff --git a/contrib/tools/python3/src/Include/Python.h b/contrib/tools/python3/src/Include/Python.h
index 93bfdd7cb1..1c3399f607 100644
--- a/contrib/tools/python3/src/Include/Python.h
+++ b/contrib/tools/python3/src/Include/Python.h
@@ -32,7 +32,7 @@
#include <errno.h>
#endif
#include <stdlib.h>
-#ifndef MS_WINDOWS
+#ifndef MS_WINDOWS
#include <unistd.h>
#endif
@@ -50,22 +50,22 @@
#include "pyport.h"
#include "pymacro.h"
-/* A convenient way for code to know if sanitizers are enabled. */
+/* A convenient way for code to know if sanitizers are enabled. */
#if defined(__has_feature)
# if __has_feature(memory_sanitizer)
# if !defined(_Py_MEMORY_SANITIZER)
# define _Py_MEMORY_SANITIZER
# endif
# endif
-# if __has_feature(address_sanitizer)
-# if !defined(_Py_ADDRESS_SANITIZER)
-# define _Py_ADDRESS_SANITIZER
-# endif
-# endif
-#elif defined(__GNUC__)
-# if defined(__SANITIZE_ADDRESS__)
-# define _Py_ADDRESS_SANITIZER
-# endif
+# if __has_feature(address_sanitizer)
+# if !defined(_Py_ADDRESS_SANITIZER)
+# define _Py_ADDRESS_SANITIZER
+# endif
+# endif
+#elif defined(__GNUC__)
+# if defined(__SANITIZE_ADDRESS__)
+# define _Py_ADDRESS_SANITIZER
+# endif
#endif
/* Debug-mode build with pymalloc implies PYMALLOC_DEBUG.
@@ -110,25 +110,25 @@
#include "classobject.h"
#include "fileobject.h"
#include "pycapsule.h"
-#include "code.h"
-#include "pyframe.h"
+#include "code.h"
+#include "pyframe.h"
#include "traceback.h"
#include "sliceobject.h"
#include "cellobject.h"
#include "iterobject.h"
-#include <contrib/tools/python3/src/Include/cpython/initconfig.h>
+#include <contrib/tools/python3/src/Include/cpython/initconfig.h>
#include "genobject.h"
#include "descrobject.h"
-#include "genericaliasobject.h"
+#include "genericaliasobject.h"
#include "warnings.h"
#include "weakrefobject.h"
#include "structseq.h"
#include "namespaceobject.h"
-#include "picklebufobject.h"
+#include "picklebufobject.h"
#include "codecs.h"
#include "pyerrors.h"
-#include "pythread.h"
+#include "pythread.h"
#include "pystate.h"
#include "context.h"
@@ -153,6 +153,6 @@
#include "pystrcmp.h"
#include "fileutils.h"
#include "pyfpe.h"
-#include "tracemalloc.h"
+#include "tracemalloc.h"
#endif /* !Py_PYTHON_H */
diff --git a/contrib/tools/python3/src/Include/abstract.h b/contrib/tools/python3/src/Include/abstract.h
index 1cdafa3bec..d31d66e6b4 100644
--- a/contrib/tools/python3/src/Include/abstract.h
+++ b/contrib/tools/python3/src/Include/abstract.h
@@ -141,16 +141,16 @@ extern "C" {
#endif
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
-/* Call a callable Python object without any arguments */
-PyAPI_FUNC(PyObject *) PyObject_CallNoArgs(PyObject *func);
-#endif
-
-
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
+/* Call a callable Python object without any arguments */
+PyAPI_FUNC(PyObject *) PyObject_CallNoArgs(PyObject *func);
+#endif
+
+
/* Call a callable Python object 'callable' with arguments given by the
tuple 'args' and keywords arguments given by the dictionary 'kwargs'.
- 'args' must not be NULL, use an empty tuple if no arguments are
+ 'args' must not be NULL, use an empty tuple if no arguments are
needed. If no named arguments are needed, 'kwargs' can be NULL.
This is the equivalent of the Python expression:
@@ -160,9 +160,9 @@ PyAPI_FUNC(PyObject *) PyObject_Call(PyObject *callable,
/* Call a callable Python object 'callable', with arguments given by the
- tuple 'args'. If no arguments are needed, then 'args' can be NULL.
+ tuple 'args'. If no arguments are needed, then 'args' can be NULL.
- Returns the result of the call on success, or NULL on failure.
+ Returns the result of the call on success, or NULL on failure.
This is the equivalent of the Python expression:
callable(*args). */
@@ -318,20 +318,20 @@ PyAPI_FUNC(int) PyObject_DelItem(PyObject *o, PyObject *key);
/* Takes an arbitrary object which must support the (character, single segment)
buffer interface and returns a pointer to a read-only memory location
- usable as character based input for subsequent processing.
+ usable as character based input for subsequent processing.
Return 0 on success. buffer and buffer_len are only set in case no error
occurs. Otherwise, -1 is returned and an exception set. */
-Py_DEPRECATED(3.0)
+Py_DEPRECATED(3.0)
PyAPI_FUNC(int) PyObject_AsCharBuffer(PyObject *obj,
const char **buffer,
- Py_ssize_t *buffer_len);
+ Py_ssize_t *buffer_len);
/* Checks whether an arbitrary object supports the (character, single segment)
buffer interface.
Returns 1 on success, 0 on failure. */
-Py_DEPRECATED(3.0) PyAPI_FUNC(int) PyObject_CheckReadBuffer(PyObject *obj);
+Py_DEPRECATED(3.0) PyAPI_FUNC(int) PyObject_CheckReadBuffer(PyObject *obj);
/* Same as PyObject_AsCharBuffer() except that this API expects (readable,
single segment) buffer interface and returns a pointer to a read-only memory
@@ -339,10 +339,10 @@ Py_DEPRECATED(3.0) PyAPI_FUNC(int) PyObject_CheckReadBuffer(PyObject *obj);
0 is returned on success. buffer and buffer_len are only set in case no
error occurs. Otherwise, -1 is returned and an exception set. */
-Py_DEPRECATED(3.0)
+Py_DEPRECATED(3.0)
PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
const void **buffer,
- Py_ssize_t *buffer_len);
+ Py_ssize_t *buffer_len);
/* Takes an arbitrary object which must support the (writable, single segment)
buffer interface and returns a pointer to a writable memory location in
@@ -350,10 +350,10 @@ PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
Return 0 on success. buffer and buffer_len are only set in case no error
occurs. Otherwise, -1 is returned and an exception set. */
-Py_DEPRECATED(3.0)
+Py_DEPRECATED(3.0)
PyAPI_FUNC(int) PyObject_AsWriteBuffer(PyObject *obj,
void **buffer,
- Py_ssize_t *buffer_len);
+ Py_ssize_t *buffer_len);
/* === New Buffer API ============================================ */
@@ -371,11 +371,11 @@ PyAPI_FUNC(PyObject *) PyObject_Format(PyObject *obj,
returns itself. */
PyAPI_FUNC(PyObject *) PyObject_GetIter(PyObject *);
-/* Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.
+/* Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.
+
+ This function always succeeds. */
+PyAPI_FUNC(int) PyIter_Check(PyObject *);
- This function always succeeds. */
-PyAPI_FUNC(int) PyIter_Check(PyObject *);
-
/* Takes an iterator object and calls its tp_iternext slot,
returning the next value.
@@ -492,9 +492,9 @@ PyAPI_FUNC(PyObject *) PyNumber_Xor(PyObject *o1, PyObject *o2);
This is the equivalent of the Python expression: o1 | o2. */
PyAPI_FUNC(PyObject *) PyNumber_Or(PyObject *o1, PyObject *o2);
-/* Returns 1 if obj is an index integer (has the nb_index slot of the
- tp_as_number structure filled in), and 0 otherwise. */
-PyAPI_FUNC(int) PyIndex_Check(PyObject *);
+/* Returns 1 if obj is an index integer (has the nb_index slot of the
+ tp_as_number structure filled in), and 0 otherwise. */
+PyAPI_FUNC(int) PyIndex_Check(PyObject *);
/* Returns the object 'o' converted to a Python int, or NULL with an exception
raised on failure. */
@@ -702,7 +702,7 @@ PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m);
(PyList_Check(o) ? PyList_GET_ITEM(o, i) : PyTuple_GET_ITEM(o, i))
/* Return a pointer to the underlying item array for
- an object returned by PySequence_Fast */
+ an object returned by PySequence_Fast */
#define PySequence_Fast_ITEMS(sf) \
(PyList_Check(sf) ? ((PyListObject *)(sf))->ob_item \
: ((PyTupleObject *)(sf))->ob_item)
@@ -839,10 +839,10 @@ PyAPI_FUNC(int) PyObject_IsInstance(PyObject *object, PyObject *typeorclass);
PyAPI_FUNC(int) PyObject_IsSubclass(PyObject *object, PyObject *typeorclass);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_ABSTRACTOBJECT_H
-# include "cpython/abstract.h"
-# undef Py_CPYTHON_ABSTRACTOBJECT_H
-#endif
+# define Py_CPYTHON_ABSTRACTOBJECT_H
+# include "cpython/abstract.h"
+# undef Py_CPYTHON_ABSTRACTOBJECT_H
+#endif
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/asdl.h b/contrib/tools/python3/src/Include/asdl.h
index 98cfb705c0..e962560bcd 100644
--- a/contrib/tools/python3/src/Include/asdl.h
+++ b/contrib/tools/python3/src/Include/asdl.h
@@ -1,4 +1,4 @@
-#ifndef Py_LIMITED_API
+#ifndef Py_LIMITED_API
#ifndef Py_ASDL_H
#define Py_ASDL_H
@@ -35,7 +35,7 @@ asdl_int_seq *_Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena);
do { \
Py_ssize_t _asdl_i = (I); \
assert((S) != NULL); \
- assert(0 <= _asdl_i && _asdl_i < (S)->size); \
+ assert(0 <= _asdl_i && _asdl_i < (S)->size); \
(S)->elements[_asdl_i] = (V); \
} while (0)
#else
@@ -43,4 +43,4 @@ asdl_int_seq *_Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena);
#endif
#endif /* !Py_ASDL_H */
-#endif /* Py_LIMITED_API */
+#endif /* Py_LIMITED_API */
diff --git a/contrib/tools/python3/src/Include/ast.h b/contrib/tools/python3/src/Include/ast.h
index d9aa16c32d..a8c52af786 100644
--- a/contrib/tools/python3/src/Include/ast.h
+++ b/contrib/tools/python3/src/Include/ast.h
@@ -1,13 +1,13 @@
-#ifndef Py_LIMITED_API
+#ifndef Py_LIMITED_API
#ifndef Py_AST_H
#define Py_AST_H
#ifdef __cplusplus
extern "C" {
#endif
-#include "Python-ast.h" /* mod_ty */
-#include "node.h" /* node */
-
+#include "Python-ast.h" /* mod_ty */
+#include "node.h" /* node */
+
PyAPI_FUNC(int) PyAST_Validate(mod_ty);
PyAPI_FUNC(mod_ty) PyAST_FromNode(
const node *n,
@@ -23,13 +23,13 @@ PyAPI_FUNC(mod_ty) PyAST_FromNodeObject(
/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */
PyAPI_FUNC(PyObject *) _PyAST_ExprAsUnicode(expr_ty);
-/* Return the borrowed reference to the first literal string in the
- sequence of statements or NULL if it doesn't start from a literal string.
- Doesn't set exception. */
-PyAPI_FUNC(PyObject *) _PyAST_GetDocString(asdl_seq *);
-
+/* Return the borrowed reference to the first literal string in the
+ sequence of statements or NULL if it doesn't start from a literal string.
+ Doesn't set exception. */
+PyAPI_FUNC(PyObject *) _PyAST_GetDocString(asdl_seq *);
+
#ifdef __cplusplus
}
#endif
#endif /* !Py_AST_H */
-#endif /* !Py_LIMITED_API */
+#endif /* !Py_LIMITED_API */
diff --git a/contrib/tools/python3/src/Include/boolobject.h b/contrib/tools/python3/src/Include/boolobject.h
index d001face9f..bb8044a2b0 100644
--- a/contrib/tools/python3/src/Include/boolobject.h
+++ b/contrib/tools/python3/src/Include/boolobject.h
@@ -9,7 +9,7 @@ extern "C" {
PyAPI_DATA(PyTypeObject) PyBool_Type;
-#define PyBool_Check(x) Py_IS_TYPE(x, &PyBool_Type)
+#define PyBool_Check(x) Py_IS_TYPE(x, &PyBool_Type)
/* Py_False and Py_True are the only two bools in existence.
Don't forget to apply Py_INCREF() when returning either!!! */
diff --git a/contrib/tools/python3/src/Include/bytearrayobject.h b/contrib/tools/python3/src/Include/bytearrayobject.h
index b142773af0..9e95433f0f 100644
--- a/contrib/tools/python3/src/Include/bytearrayobject.h
+++ b/contrib/tools/python3/src/Include/bytearrayobject.h
@@ -24,7 +24,7 @@ PyAPI_DATA(PyTypeObject) PyByteArrayIter_Type;
/* Type check macros */
#define PyByteArray_Check(self) PyObject_TypeCheck(self, &PyByteArray_Type)
-#define PyByteArray_CheckExact(self) Py_IS_TYPE(self, &PyByteArray_Type)
+#define PyByteArray_CheckExact(self) Py_IS_TYPE(self, &PyByteArray_Type)
/* Direct API functions */
PyAPI_FUNC(PyObject *) PyByteArray_FromObject(PyObject *);
@@ -35,9 +35,9 @@ PyAPI_FUNC(char *) PyByteArray_AsString(PyObject *);
PyAPI_FUNC(int) PyByteArray_Resize(PyObject *, Py_ssize_t);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_BYTEARRAYOBJECT_H
-# include "cpython/bytearrayobject.h"
-# undef Py_CPYTHON_BYTEARRAYOBJECT_H
+# define Py_CPYTHON_BYTEARRAYOBJECT_H
+# include "cpython/bytearrayobject.h"
+# undef Py_CPYTHON_BYTEARRAYOBJECT_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/bytesobject.h b/contrib/tools/python3/src/Include/bytesobject.h
index ff500b6128..5062d8d123 100644
--- a/contrib/tools/python3/src/Include/bytesobject.h
+++ b/contrib/tools/python3/src/Include/bytesobject.h
@@ -32,7 +32,7 @@ PyAPI_DATA(PyTypeObject) PyBytesIter_Type;
#define PyBytes_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BYTES_SUBCLASS)
-#define PyBytes_CheckExact(op) Py_IS_TYPE(op, &PyBytes_Type)
+#define PyBytes_CheckExact(op) Py_IS_TYPE(op, &PyBytes_Type)
PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *);
@@ -71,10 +71,10 @@ PyAPI_FUNC(int) PyBytes_AsStringAndSize(
#define F_ZERO (1<<4)
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_BYTESOBJECT_H
-# include "cpython/bytesobject.h"
-# undef Py_CPYTHON_BYTESOBJECT_H
-#endif
+# define Py_CPYTHON_BYTESOBJECT_H
+# include "cpython/bytesobject.h"
+# undef Py_CPYTHON_BYTESOBJECT_H
+#endif
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/cellobject.h b/contrib/tools/python3/src/Include/cellobject.h
index cc15bc2e2a..f12aa90a42 100644
--- a/contrib/tools/python3/src/Include/cellobject.h
+++ b/contrib/tools/python3/src/Include/cellobject.h
@@ -13,7 +13,7 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyCell_Type;
-#define PyCell_Check(op) Py_IS_TYPE(op, &PyCell_Type)
+#define PyCell_Check(op) Py_IS_TYPE(op, &PyCell_Type)
PyAPI_FUNC(PyObject *) PyCell_New(PyObject *);
PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *);
diff --git a/contrib/tools/python3/src/Include/ceval.h b/contrib/tools/python3/src/Include/ceval.h
index 0de3800360..0f372e2044 100644
--- a/contrib/tools/python3/src/Include/ceval.h
+++ b/contrib/tools/python3/src/Include/ceval.h
@@ -8,30 +8,30 @@ extern "C" {
/* Interface to random parts in ceval.c */
/* PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction
- * and PyEval_CallMethod are deprecated. Since they are officially part of the
- * stable ABI (PEP 384), they must be kept for backward compatibility.
- * PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are
- * recommended to call a callable object.
+ * and PyEval_CallMethod are deprecated. Since they are officially part of the
+ * stable ABI (PEP 384), they must be kept for backward compatibility.
+ * PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are
+ * recommended to call a callable object.
*/
-Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords(
+Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords(
PyObject *callable,
PyObject *args,
PyObject *kwargs);
-/* Deprecated since PyEval_CallObjectWithKeywords is deprecated */
+/* Deprecated since PyEval_CallObjectWithKeywords is deprecated */
#define PyEval_CallObject(callable, arg) \
PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL)
-Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallFunction(
- PyObject *callable, const char *format, ...);
-Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallMethod(
- PyObject *obj, const char *name, const char *format, ...);
+Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallFunction(
+ PyObject *callable, const char *format, ...);
+Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallMethod(
+ PyObject *obj, const char *name, const char *format, ...);
PyAPI_FUNC(PyObject *) PyEval_GetBuiltins(void);
PyAPI_FUNC(PyObject *) PyEval_GetGlobals(void);
PyAPI_FUNC(PyObject *) PyEval_GetLocals(void);
-PyAPI_FUNC(PyFrameObject *) PyEval_GetFrame(void);
+PyAPI_FUNC(PyFrameObject *) PyEval_GetFrame(void);
PyAPI_FUNC(int) Py_AddPendingCall(int (*func)(void *), void *arg);
PyAPI_FUNC(int) Py_MakePendingCalls(void);
@@ -64,8 +64,8 @@ PyAPI_FUNC(int) Py_MakePendingCalls(void);
PyAPI_FUNC(void) Py_SetRecursionLimit(int);
PyAPI_FUNC(int) Py_GetRecursionLimit(void);
-PyAPI_FUNC(int) Py_EnterRecursiveCall(const char *where);
-PyAPI_FUNC(void) Py_LeaveRecursiveCall(void);
+PyAPI_FUNC(int) Py_EnterRecursiveCall(const char *where);
+PyAPI_FUNC(void) Py_LeaveRecursiveCall(void);
#define Py_ALLOW_RECURSION \
do { unsigned char _old = PyThreadState_GET()->recursion_critical;\
@@ -78,8 +78,8 @@ PyAPI_FUNC(void) Py_LeaveRecursiveCall(void);
PyAPI_FUNC(const char *) PyEval_GetFuncName(PyObject *);
PyAPI_FUNC(const char *) PyEval_GetFuncDesc(PyObject *);
-PyAPI_FUNC(PyObject *) PyEval_EvalFrame(PyFrameObject *);
-PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(PyFrameObject *f, int exc);
+PyAPI_FUNC(PyObject *) PyEval_EvalFrame(PyFrameObject *);
+PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(PyFrameObject *f, int exc);
/* Interface for threads.
@@ -126,14 +126,14 @@ PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(PyFrameObject *f, int exc);
PyAPI_FUNC(PyThreadState *) PyEval_SaveThread(void);
PyAPI_FUNC(void) PyEval_RestoreThread(PyThreadState *);
-Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
-Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
-/* PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.
- * They will be removed from this header file in the future version.
- * But they will be remained in ABI until Python 4.0.
- */
-Py_DEPRECATED(3.2) PyAPI_FUNC(void) PyEval_AcquireLock(void);
-Py_DEPRECATED(3.2) PyAPI_FUNC(void) PyEval_ReleaseLock(void);
+Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
+Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
+/* PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.
+ * They will be removed from this header file in the future version.
+ * But they will be remained in ABI until Python 4.0.
+ */
+Py_DEPRECATED(3.2) PyAPI_FUNC(void) PyEval_AcquireLock(void);
+Py_DEPRECATED(3.2) PyAPI_FUNC(void) PyEval_ReleaseLock(void);
PyAPI_FUNC(void) PyEval_AcquireThread(PyThreadState *tstate);
PyAPI_FUNC(void) PyEval_ReleaseThread(PyThreadState *tstate);
@@ -154,12 +154,12 @@ PyAPI_FUNC(void) PyEval_ReleaseThread(PyThreadState *tstate);
#define FVS_MASK 0x4
#define FVS_HAVE_SPEC 0x4
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_CEVAL_H
-# include "cpython/ceval.h"
-# undef Py_CPYTHON_CEVAL_H
-#endif
-
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_CEVAL_H
+# include "cpython/ceval.h"
+# undef Py_CPYTHON_CEVAL_H
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Include/classobject.h b/contrib/tools/python3/src/Include/classobject.h
index 19456a4f1b..1952f673b7 100644
--- a/contrib/tools/python3/src/Include/classobject.h
+++ b/contrib/tools/python3/src/Include/classobject.h
@@ -14,12 +14,12 @@ typedef struct {
PyObject *im_func; /* The callable object implementing the method */
PyObject *im_self; /* The instance it is bound to */
PyObject *im_weakreflist; /* List of weak references */
- vectorcallfunc vectorcall;
+ vectorcallfunc vectorcall;
} PyMethodObject;
PyAPI_DATA(PyTypeObject) PyMethod_Type;
-#define PyMethod_Check(op) Py_IS_TYPE(op, &PyMethod_Type)
+#define PyMethod_Check(op) Py_IS_TYPE(op, &PyMethod_Type)
PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *);
@@ -40,7 +40,7 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type;
-#define PyInstanceMethod_Check(op) Py_IS_TYPE(op, &PyInstanceMethod_Type)
+#define PyInstanceMethod_Check(op) Py_IS_TYPE(op, &PyInstanceMethod_Type)
PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *);
PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *);
diff --git a/contrib/tools/python3/src/Include/code.h b/contrib/tools/python3/src/Include/code.h
index 7ebaa83476..b9e23eb816 100644
--- a/contrib/tools/python3/src/Include/code.h
+++ b/contrib/tools/python3/src/Include/code.h
@@ -6,12 +6,12 @@
extern "C" {
#endif
-typedef struct PyCodeObject PyCodeObject;
+typedef struct PyCodeObject PyCodeObject;
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_CODE_H
-# include "cpython/code.h"
-# undef Py_CPYTHON_CODE_H
+# define Py_CPYTHON_CODE_H
+# include "cpython/code.h"
+# undef Py_CPYTHON_CODE_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/compile.h b/contrib/tools/python3/src/Include/compile.h
index dbf984853b..98adee3d19 100644
--- a/contrib/tools/python3/src/Include/compile.h
+++ b/contrib/tools/python3/src/Include/compile.h
@@ -9,9 +9,9 @@ extern "C" {
/* Public interface */
struct _node; /* Declare the existence of this type */
-#ifndef Py_BUILD_CORE
-Py_DEPRECATED(3.9)
-#endif
+#ifndef Py_BUILD_CORE
+Py_DEPRECATED(3.9)
+#endif
PyAPI_FUNC(PyCodeObject *) PyNode_Compile(struct _node *, const char *);
/* XXX (ncoghlan): Unprefixed type name in a public API! */
@@ -20,27 +20,27 @@ PyAPI_FUNC(PyCodeObject *) PyNode_Compile(struct _node *, const char *);
CO_FUTURE_UNICODE_LITERALS | CO_FUTURE_BARRY_AS_BDFL | \
CO_FUTURE_GENERATOR_STOP | CO_FUTURE_ANNOTATIONS)
#define PyCF_MASK_OBSOLETE (CO_NESTED)
-
-/* bpo-39562: CO_FUTURE_ and PyCF_ constants must be kept unique.
- PyCF_ constants can use bits from 0x0100 to 0x10000.
- CO_FUTURE_ constants use bits starting at 0x20000. */
+
+/* bpo-39562: CO_FUTURE_ and PyCF_ constants must be kept unique.
+ PyCF_ constants can use bits from 0x0100 to 0x10000.
+ CO_FUTURE_ constants use bits starting at 0x20000. */
#define PyCF_SOURCE_IS_UTF8 0x0100
#define PyCF_DONT_IMPLY_DEDENT 0x0200
#define PyCF_ONLY_AST 0x0400
#define PyCF_IGNORE_COOKIE 0x0800
-#define PyCF_TYPE_COMMENTS 0x1000
-#define PyCF_ALLOW_TOP_LEVEL_AWAIT 0x2000
-#define PyCF_COMPILE_MASK (PyCF_ONLY_AST | PyCF_ALLOW_TOP_LEVEL_AWAIT | \
- PyCF_TYPE_COMMENTS | PyCF_DONT_IMPLY_DEDENT)
+#define PyCF_TYPE_COMMENTS 0x1000
+#define PyCF_ALLOW_TOP_LEVEL_AWAIT 0x2000
+#define PyCF_COMPILE_MASK (PyCF_ONLY_AST | PyCF_ALLOW_TOP_LEVEL_AWAIT | \
+ PyCF_TYPE_COMMENTS | PyCF_DONT_IMPLY_DEDENT)
#ifndef Py_LIMITED_API
typedef struct {
int cf_flags; /* bitmask of CO_xxx flags relevant to future */
- int cf_feature_version; /* minor Python version (PyCF_ONLY_AST) */
+ int cf_feature_version; /* minor Python version (PyCF_ONLY_AST) */
} PyCompilerFlags;
-
-#define _PyCompilerFlags_INIT \
- (PyCompilerFlags){.cf_flags = 0, .cf_feature_version = PY_MINOR_VERSION}
+
+#define _PyCompilerFlags_INIT \
+ (PyCompilerFlags){.cf_flags = 0, .cf_feature_version = PY_MINOR_VERSION}
#endif
/* Future feature support */
@@ -89,28 +89,28 @@ PyAPI_FUNC(PyObject*) _Py_Mangle(PyObject *p, PyObject *name);
#define PY_INVALID_STACK_EFFECT INT_MAX
PyAPI_FUNC(int) PyCompile_OpcodeStackEffect(int opcode, int oparg);
-PyAPI_FUNC(int) PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int jump);
+PyAPI_FUNC(int) PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int jump);
-typedef struct {
- int optimize;
- int ff_features;
-} _PyASTOptimizeState;
+typedef struct {
+ int optimize;
+ int ff_features;
+} _PyASTOptimizeState;
+
+PyAPI_FUNC(int) _PyAST_Optimize(struct _mod *, PyArena *arena, _PyASTOptimizeState *state);
-PyAPI_FUNC(int) _PyAST_Optimize(struct _mod *, PyArena *arena, _PyASTOptimizeState *state);
-
#ifdef __cplusplus
}
#endif
#endif /* !Py_LIMITED_API */
-/* These definitions must match corresponding definitions in graminit.h. */
+/* These definitions must match corresponding definitions in graminit.h. */
#define Py_single_input 256
#define Py_file_input 257
#define Py_eval_input 258
-#define Py_func_type_input 345
+#define Py_func_type_input 345
+
+/* This doesn't need to match anything */
+#define Py_fstring_input 800
-/* This doesn't need to match anything */
-#define Py_fstring_input 800
-
#endif /* !Py_COMPILE_H */
diff --git a/contrib/tools/python3/src/Include/complexobject.h b/contrib/tools/python3/src/Include/complexobject.h
index fd4fa6240e..9221f9c51d 100644
--- a/contrib/tools/python3/src/Include/complexobject.h
+++ b/contrib/tools/python3/src/Include/complexobject.h
@@ -39,7 +39,7 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyComplex_Type;
#define PyComplex_Check(op) PyObject_TypeCheck(op, &PyComplex_Type)
-#define PyComplex_CheckExact(op) Py_IS_TYPE(op, &PyComplex_Type)
+#define PyComplex_CheckExact(op) Py_IS_TYPE(op, &PyComplex_Type)
#ifndef Py_LIMITED_API
PyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex);
diff --git a/contrib/tools/python3/src/Include/context.h b/contrib/tools/python3/src/Include/context.h
index e29a7d9198..4e5007089d 100644
--- a/contrib/tools/python3/src/Include/context.h
+++ b/contrib/tools/python3/src/Include/context.h
@@ -17,9 +17,9 @@ PyAPI_DATA(PyTypeObject) PyContextToken_Type;
typedef struct _pycontexttokenobject PyContextToken;
-#define PyContext_CheckExact(o) Py_IS_TYPE(o, &PyContext_Type)
-#define PyContextVar_CheckExact(o) Py_IS_TYPE(o, &PyContextVar_Type)
-#define PyContextToken_CheckExact(o) Py_IS_TYPE(o, &PyContextToken_Type)
+#define PyContext_CheckExact(o) Py_IS_TYPE(o, &PyContext_Type)
+#define PyContextVar_CheckExact(o) Py_IS_TYPE(o, &PyContextVar_Type)
+#define PyContextToken_CheckExact(o) Py_IS_TYPE(o, &PyContextToken_Type)
PyAPI_FUNC(PyObject *) PyContext_New(void);
diff --git a/contrib/tools/python3/src/Include/cpython/abstract.h b/contrib/tools/python3/src/Include/cpython/abstract.h
index 9a3737c42f..0f1304d26a 100644
--- a/contrib/tools/python3/src/Include/cpython/abstract.h
+++ b/contrib/tools/python3/src/Include/cpython/abstract.h
@@ -1,384 +1,384 @@
-#ifndef Py_CPYTHON_ABSTRACTOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* === Object Protocol ================================================== */
-
-#ifdef PY_SSIZE_T_CLEAN
-# define _PyObject_CallMethodId _PyObject_CallMethodId_SizeT
-#endif
-
-/* Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)
- format to a Python dictionary ("kwargs" dict).
-
- The type of kwnames keys is not checked. The final function getting
- arguments is responsible to check if all keys are strings, for example using
- PyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().
-
- Duplicate keys are merged using the last value. If duplicate keys must raise
- an exception, the caller is responsible to implement an explicit keys on
- kwnames. */
-PyAPI_FUNC(PyObject *) _PyStack_AsDict(
- PyObject *const *values,
- PyObject *kwnames);
-
-/* Suggested size (number of positional arguments) for arrays of PyObject*
- allocated on a C stack to avoid allocating memory on the heap memory. Such
- array is used to pass positional arguments to call functions of the
- PyObject_Vectorcall() family.
-
- The size is chosen to not abuse the C stack and so limit the risk of stack
- overflow. The size is also chosen to allow using the small stack for most
- function calls of the Python standard library. On 64-bit CPU, it allocates
- 40 bytes on the stack. */
-#define _PY_FASTCALL_SMALL_STACK 5
-
-PyAPI_FUNC(PyObject *) _Py_CheckFunctionResult(
- PyThreadState *tstate,
- PyObject *callable,
- PyObject *result,
- const char *where);
-
-/* === Vectorcall protocol (PEP 590) ============================= */
-
-/* Call callable using tp_call. Arguments are like PyObject_Vectorcall()
- or PyObject_FastCallDict() (both forms are supported),
- except that nargs is plainly the number of arguments without flags. */
-PyAPI_FUNC(PyObject *) _PyObject_MakeTpCall(
- PyThreadState *tstate,
- PyObject *callable,
- PyObject *const *args, Py_ssize_t nargs,
- PyObject *keywords);
-
-#define PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1))
-
-static inline Py_ssize_t
-PyVectorcall_NARGS(size_t n)
-{
- return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET;
-}
-
-static inline vectorcallfunc
-PyVectorcall_Function(PyObject *callable)
-{
- PyTypeObject *tp;
- Py_ssize_t offset;
- vectorcallfunc ptr;
-
- assert(callable != NULL);
- tp = Py_TYPE(callable);
- if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
- return NULL;
- }
- assert(PyCallable_Check(callable));
- offset = tp->tp_vectorcall_offset;
- assert(offset > 0);
- memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
- return ptr;
-}
-
-/* Call the callable object 'callable' with the "vectorcall" calling
- convention.
-
- args is a C array for positional arguments.
-
- nargsf is the number of positional arguments plus optionally the flag
- PY_VECTORCALL_ARGUMENTS_OFFSET which means that the caller is allowed to
- modify args[-1].
-
- kwnames is a tuple of keyword names. The values of the keyword arguments
- are stored in "args" after the positional arguments (note that the number
- of keyword arguments does not change nargsf). kwnames can also be NULL if
- there are no keyword arguments.
-
- keywords must only contain strings and all keys must be unique.
-
- Return the result on success. Raise an exception and return NULL on
- error. */
-static inline PyObject *
-_PyObject_VectorcallTstate(PyThreadState *tstate, PyObject *callable,
- PyObject *const *args, size_t nargsf,
- PyObject *kwnames)
-{
- vectorcallfunc func;
- PyObject *res;
-
- assert(kwnames == NULL || PyTuple_Check(kwnames));
- assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0);
-
- func = PyVectorcall_Function(callable);
- if (func == NULL) {
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- return _PyObject_MakeTpCall(tstate, callable, args, nargs, kwnames);
- }
- res = func(callable, args, nargsf, kwnames);
- return _Py_CheckFunctionResult(tstate, callable, res, NULL);
-}
-
-static inline PyObject *
-PyObject_Vectorcall(PyObject *callable, PyObject *const *args,
- size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = PyThreadState_GET();
- return _PyObject_VectorcallTstate(tstate, callable,
- args, nargsf, kwnames);
-}
-
-// Backwards compatibility aliases for API that was provisional in Python 3.8
-#define _PyObject_Vectorcall PyObject_Vectorcall
-#define _PyObject_VectorcallMethod PyObject_VectorcallMethod
-#define _PyObject_FastCallDict PyObject_VectorcallDict
-#define _PyVectorcall_Function PyVectorcall_Function
-#define _PyObject_CallOneArg PyObject_CallOneArg
-#define _PyObject_CallMethodNoArgs PyObject_CallMethodNoArgs
-#define _PyObject_CallMethodOneArg PyObject_CallMethodOneArg
-
-/* Same as PyObject_Vectorcall except that keyword arguments are passed as
- dict, which may be NULL if there are no keyword arguments. */
-PyAPI_FUNC(PyObject *) PyObject_VectorcallDict(
- PyObject *callable,
- PyObject *const *args,
- size_t nargsf,
- PyObject *kwargs);
-
-/* Call "callable" (which must support vectorcall) with positional arguments
- "tuple" and keyword arguments "dict". "dict" may also be NULL */
-PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict);
-
-static inline PyObject *
-_PyObject_FastCallTstate(PyThreadState *tstate, PyObject *func, PyObject *const *args, Py_ssize_t nargs)
-{
- return _PyObject_VectorcallTstate(tstate, func, args, (size_t)nargs, NULL);
-}
-
-/* Same as PyObject_Vectorcall except without keyword arguments */
-static inline PyObject *
-_PyObject_FastCall(PyObject *func, PyObject *const *args, Py_ssize_t nargs)
-{
- PyThreadState *tstate = PyThreadState_GET();
- return _PyObject_FastCallTstate(tstate, func, args, nargs);
-}
-
-/* Call a callable without any arguments
- Private static inline function variant of public function
- PyObject_CallNoArgs(). */
-static inline PyObject *
-_PyObject_CallNoArg(PyObject *func) {
- PyThreadState *tstate = PyThreadState_GET();
- return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL);
-}
-
-static inline PyObject *
-PyObject_CallOneArg(PyObject *func, PyObject *arg)
-{
- PyObject *_args[2];
- PyObject **args;
- PyThreadState *tstate;
- size_t nargsf;
-
- assert(arg != NULL);
- args = _args + 1; // For PY_VECTORCALL_ARGUMENTS_OFFSET
- args[0] = arg;
- tstate = PyThreadState_GET();
- nargsf = 1 | PY_VECTORCALL_ARGUMENTS_OFFSET;
- return _PyObject_VectorcallTstate(tstate, func, args, nargsf, NULL);
-}
-
-PyAPI_FUNC(PyObject *) PyObject_VectorcallMethod(
- PyObject *name, PyObject *const *args,
- size_t nargsf, PyObject *kwnames);
-
-static inline PyObject *
-PyObject_CallMethodNoArgs(PyObject *self, PyObject *name)
-{
- return PyObject_VectorcallMethod(name, &self,
- 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
-}
-
-static inline PyObject *
-PyObject_CallMethodOneArg(PyObject *self, PyObject *name, PyObject *arg)
-{
- PyObject *args[2] = {self, arg};
-
- assert(arg != NULL);
- return PyObject_VectorcallMethod(name, args,
- 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
-}
-
-/* Like PyObject_CallMethod(), but expect a _Py_Identifier*
- as the method name. */
-PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj,
- _Py_Identifier *name,
- const char *format, ...);
-
-PyAPI_FUNC(PyObject *) _PyObject_CallMethodId_SizeT(PyObject *obj,
- _Py_Identifier *name,
- const char *format,
- ...);
-
-PyAPI_FUNC(PyObject *) _PyObject_CallMethodIdObjArgs(
- PyObject *obj,
- struct _Py_Identifier *name,
- ...);
-
-static inline PyObject *
-_PyObject_VectorcallMethodId(
- _Py_Identifier *name, PyObject *const *args,
- size_t nargsf, PyObject *kwnames)
-{
- PyObject *oname = _PyUnicode_FromId(name); /* borrowed */
- if (!oname) {
- return NULL;
- }
- return PyObject_VectorcallMethod(oname, args, nargsf, kwnames);
-}
-
-static inline PyObject *
-_PyObject_CallMethodIdNoArgs(PyObject *self, _Py_Identifier *name)
-{
- return _PyObject_VectorcallMethodId(name, &self,
- 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
-}
-
-static inline PyObject *
-_PyObject_CallMethodIdOneArg(PyObject *self, _Py_Identifier *name, PyObject *arg)
-{
- PyObject *args[2] = {self, arg};
-
- assert(arg != NULL);
- return _PyObject_VectorcallMethodId(name, args,
- 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
-}
-
-PyAPI_FUNC(int) _PyObject_HasLen(PyObject *o);
-
-/* Guess the size of object 'o' using len(o) or o.__length_hint__().
- If neither of those return a non-negative value, then return the default
- value. If one of the calls fails, this function returns -1. */
-PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t);
-
-/* === New Buffer API ============================================ */
-
-/* Return 1 if the getbuffer function is available, otherwise return 0. */
-PyAPI_FUNC(int) PyObject_CheckBuffer(PyObject *obj);
-
-/* This is a C-API version of the getbuffer function call. It checks
- to make sure object has the required function pointer and issues the
- call.
-
- Returns -1 and raises an error on failure and returns 0 on success. */
-PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view,
- int flags);
-
-/* Get the memory area pointed to by the indices for the buffer given.
- Note that view->ndim is the assumed size of indices. */
-PyAPI_FUNC(void *) PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices);
-
-/* Return the implied itemsize of the data-format area from a
- struct-style description. */
-PyAPI_FUNC(Py_ssize_t) PyBuffer_SizeFromFormat(const char *format);
-
-/* Implementation in memoryobject.c */
-PyAPI_FUNC(int) PyBuffer_ToContiguous(void *buf, Py_buffer *view,
- Py_ssize_t len, char order);
-
-PyAPI_FUNC(int) PyBuffer_FromContiguous(Py_buffer *view, void *buf,
- Py_ssize_t len, char order);
-
-/* Copy len bytes of data from the contiguous chunk of memory
- pointed to by buf into the buffer exported by obj. Return
- 0 on success and return -1 and raise a PyBuffer_Error on
- error (i.e. the object does not have a buffer interface or
- it is not working).
-
- If fort is 'F', then if the object is multi-dimensional,
- then the data will be copied into the array in
- Fortran-style (first dimension varies the fastest). If
- fort is 'C', then the data will be copied into the array
- in C-style (last dimension varies the fastest). If fort
- is 'A', then it does not matter and the copy will be made
- in whatever way is more efficient. */
-PyAPI_FUNC(int) PyObject_CopyData(PyObject *dest, PyObject *src);
-
-/* Copy the data from the src buffer to the buffer of destination. */
-PyAPI_FUNC(int) PyBuffer_IsContiguous(const Py_buffer *view, char fort);
-
-/*Fill the strides array with byte-strides of a contiguous
- (Fortran-style if fort is 'F' or C-style otherwise)
- array of the given shape with the given number of bytes
- per element. */
-PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims,
- Py_ssize_t *shape,
- Py_ssize_t *strides,
- int itemsize,
- char fort);
-
-/* Fills in a buffer-info structure correctly for an exporter
- that can only share a contiguous chunk of memory of
- "unsigned bytes" of the given length.
-
- Returns 0 on success and -1 (with raising an error) on error. */
-PyAPI_FUNC(int) PyBuffer_FillInfo(Py_buffer *view, PyObject *o, void *buf,
- Py_ssize_t len, int readonly,
- int flags);
-
-/* Releases a Py_buffer obtained from getbuffer ParseTuple's "s*". */
-PyAPI_FUNC(void) PyBuffer_Release(Py_buffer *view);
-
-/* ==== Iterators ================================================ */
-
-#define PyIter_Check(obj) \
- (Py_TYPE(obj)->tp_iternext != NULL && \
- Py_TYPE(obj)->tp_iternext != &_PyObject_NextNotImplemented)
-
-/* === Sequence protocol ================================================ */
-
-/* Assume tp_as_sequence and sq_item exist and that 'i' does not
- need to be corrected for a negative index. */
-#define PySequence_ITEM(o, i)\
- ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) )
-
-#define PY_ITERSEARCH_COUNT 1
-#define PY_ITERSEARCH_INDEX 2
-#define PY_ITERSEARCH_CONTAINS 3
-
-/* Iterate over seq.
-
- Result depends on the operation:
-
- PY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if
- error.
- PY_ITERSEARCH_INDEX: return 0-based index of first occurrence of
- obj in seq; set ValueError and return -1 if none found;
- also return -1 on error.
- PY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on
- error. */
-PyAPI_FUNC(Py_ssize_t) _PySequence_IterSearch(PyObject *seq,
- PyObject *obj, int operation);
-
-/* === Mapping protocol ================================================= */
-
-PyAPI_FUNC(int) _PyObject_RealIsInstance(PyObject *inst, PyObject *cls);
-
-PyAPI_FUNC(int) _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls);
-
-PyAPI_FUNC(char *const *) _PySequence_BytesToCharpArray(PyObject* self);
-
-PyAPI_FUNC(void) _Py_FreeCharPArray(char *const array[]);
-
-/* For internal use by buffer API functions */
-PyAPI_FUNC(void) _Py_add_one_to_index_F(int nd, Py_ssize_t *index,
- const Py_ssize_t *shape);
-PyAPI_FUNC(void) _Py_add_one_to_index_C(int nd, Py_ssize_t *index,
- const Py_ssize_t *shape);
-
-/* Convert Python int to Py_ssize_t. Do nothing if the argument is None. */
-PyAPI_FUNC(int) _Py_convert_optional_to_ssize_t(PyObject *, void *);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_ABSTRACTOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* === Object Protocol ================================================== */
+
+#ifdef PY_SSIZE_T_CLEAN
+# define _PyObject_CallMethodId _PyObject_CallMethodId_SizeT
+#endif
+
+/* Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)
+ format to a Python dictionary ("kwargs" dict).
+
+ The type of kwnames keys is not checked. The final function getting
+ arguments is responsible to check if all keys are strings, for example using
+ PyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().
+
+ Duplicate keys are merged using the last value. If duplicate keys must raise
+ an exception, the caller is responsible to implement an explicit keys on
+ kwnames. */
+PyAPI_FUNC(PyObject *) _PyStack_AsDict(
+ PyObject *const *values,
+ PyObject *kwnames);
+
+/* Suggested size (number of positional arguments) for arrays of PyObject*
+ allocated on a C stack to avoid allocating memory on the heap memory. Such
+ array is used to pass positional arguments to call functions of the
+ PyObject_Vectorcall() family.
+
+ The size is chosen to not abuse the C stack and so limit the risk of stack
+ overflow. The size is also chosen to allow using the small stack for most
+ function calls of the Python standard library. On 64-bit CPU, it allocates
+ 40 bytes on the stack. */
+#define _PY_FASTCALL_SMALL_STACK 5
+
+PyAPI_FUNC(PyObject *) _Py_CheckFunctionResult(
+ PyThreadState *tstate,
+ PyObject *callable,
+ PyObject *result,
+ const char *where);
+
+/* === Vectorcall protocol (PEP 590) ============================= */
+
+/* Call callable using tp_call. Arguments are like PyObject_Vectorcall()
+ or PyObject_FastCallDict() (both forms are supported),
+ except that nargs is plainly the number of arguments without flags. */
+PyAPI_FUNC(PyObject *) _PyObject_MakeTpCall(
+ PyThreadState *tstate,
+ PyObject *callable,
+ PyObject *const *args, Py_ssize_t nargs,
+ PyObject *keywords);
+
+#define PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1))
+
+static inline Py_ssize_t
+PyVectorcall_NARGS(size_t n)
+{
+ return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET;
+}
+
+static inline vectorcallfunc
+PyVectorcall_Function(PyObject *callable)
+{
+ PyTypeObject *tp;
+ Py_ssize_t offset;
+ vectorcallfunc ptr;
+
+ assert(callable != NULL);
+ tp = Py_TYPE(callable);
+ if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
+ return NULL;
+ }
+ assert(PyCallable_Check(callable));
+ offset = tp->tp_vectorcall_offset;
+ assert(offset > 0);
+ memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
+ return ptr;
+}
+
+/* Call the callable object 'callable' with the "vectorcall" calling
+ convention.
+
+ args is a C array for positional arguments.
+
+ nargsf is the number of positional arguments plus optionally the flag
+ PY_VECTORCALL_ARGUMENTS_OFFSET which means that the caller is allowed to
+ modify args[-1].
+
+ kwnames is a tuple of keyword names. The values of the keyword arguments
+ are stored in "args" after the positional arguments (note that the number
+ of keyword arguments does not change nargsf). kwnames can also be NULL if
+ there are no keyword arguments.
+
+ keywords must only contain strings and all keys must be unique.
+
+ Return the result on success. Raise an exception and return NULL on
+ error. */
+static inline PyObject *
+_PyObject_VectorcallTstate(PyThreadState *tstate, PyObject *callable,
+ PyObject *const *args, size_t nargsf,
+ PyObject *kwnames)
+{
+ vectorcallfunc func;
+ PyObject *res;
+
+ assert(kwnames == NULL || PyTuple_Check(kwnames));
+ assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0);
+
+ func = PyVectorcall_Function(callable);
+ if (func == NULL) {
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ return _PyObject_MakeTpCall(tstate, callable, args, nargs, kwnames);
+ }
+ res = func(callable, args, nargsf, kwnames);
+ return _Py_CheckFunctionResult(tstate, callable, res, NULL);
+}
+
+static inline PyObject *
+PyObject_Vectorcall(PyObject *callable, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = PyThreadState_GET();
+ return _PyObject_VectorcallTstate(tstate, callable,
+ args, nargsf, kwnames);
+}
+
+// Backwards compatibility aliases for API that was provisional in Python 3.8
+#define _PyObject_Vectorcall PyObject_Vectorcall
+#define _PyObject_VectorcallMethod PyObject_VectorcallMethod
+#define _PyObject_FastCallDict PyObject_VectorcallDict
+#define _PyVectorcall_Function PyVectorcall_Function
+#define _PyObject_CallOneArg PyObject_CallOneArg
+#define _PyObject_CallMethodNoArgs PyObject_CallMethodNoArgs
+#define _PyObject_CallMethodOneArg PyObject_CallMethodOneArg
+
+/* Same as PyObject_Vectorcall except that keyword arguments are passed as
+ dict, which may be NULL if there are no keyword arguments. */
+PyAPI_FUNC(PyObject *) PyObject_VectorcallDict(
+ PyObject *callable,
+ PyObject *const *args,
+ size_t nargsf,
+ PyObject *kwargs);
+
+/* Call "callable" (which must support vectorcall) with positional arguments
+ "tuple" and keyword arguments "dict". "dict" may also be NULL */
+PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict);
+
+static inline PyObject *
+_PyObject_FastCallTstate(PyThreadState *tstate, PyObject *func, PyObject *const *args, Py_ssize_t nargs)
+{
+ return _PyObject_VectorcallTstate(tstate, func, args, (size_t)nargs, NULL);
+}
+
+/* Same as PyObject_Vectorcall except without keyword arguments */
+static inline PyObject *
+_PyObject_FastCall(PyObject *func, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyThreadState *tstate = PyThreadState_GET();
+ return _PyObject_FastCallTstate(tstate, func, args, nargs);
+}
+
+/* Call a callable without any arguments
+ Private static inline function variant of public function
+ PyObject_CallNoArgs(). */
+static inline PyObject *
+_PyObject_CallNoArg(PyObject *func) {
+ PyThreadState *tstate = PyThreadState_GET();
+ return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL);
+}
+
+static inline PyObject *
+PyObject_CallOneArg(PyObject *func, PyObject *arg)
+{
+ PyObject *_args[2];
+ PyObject **args;
+ PyThreadState *tstate;
+ size_t nargsf;
+
+ assert(arg != NULL);
+ args = _args + 1; // For PY_VECTORCALL_ARGUMENTS_OFFSET
+ args[0] = arg;
+ tstate = PyThreadState_GET();
+ nargsf = 1 | PY_VECTORCALL_ARGUMENTS_OFFSET;
+ return _PyObject_VectorcallTstate(tstate, func, args, nargsf, NULL);
+}
+
+PyAPI_FUNC(PyObject *) PyObject_VectorcallMethod(
+ PyObject *name, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames);
+
+static inline PyObject *
+PyObject_CallMethodNoArgs(PyObject *self, PyObject *name)
+{
+ return PyObject_VectorcallMethod(name, &self,
+ 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
+}
+
+static inline PyObject *
+PyObject_CallMethodOneArg(PyObject *self, PyObject *name, PyObject *arg)
+{
+ PyObject *args[2] = {self, arg};
+
+ assert(arg != NULL);
+ return PyObject_VectorcallMethod(name, args,
+ 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
+}
+
+/* Like PyObject_CallMethod(), but expect a _Py_Identifier*
+ as the method name. */
+PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj,
+ _Py_Identifier *name,
+ const char *format, ...);
+
+PyAPI_FUNC(PyObject *) _PyObject_CallMethodId_SizeT(PyObject *obj,
+ _Py_Identifier *name,
+ const char *format,
+ ...);
+
+PyAPI_FUNC(PyObject *) _PyObject_CallMethodIdObjArgs(
+ PyObject *obj,
+ struct _Py_Identifier *name,
+ ...);
+
+static inline PyObject *
+_PyObject_VectorcallMethodId(
+ _Py_Identifier *name, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames)
+{
+ PyObject *oname = _PyUnicode_FromId(name); /* borrowed */
+ if (!oname) {
+ return NULL;
+ }
+ return PyObject_VectorcallMethod(oname, args, nargsf, kwnames);
+}
+
+static inline PyObject *
+_PyObject_CallMethodIdNoArgs(PyObject *self, _Py_Identifier *name)
+{
+ return _PyObject_VectorcallMethodId(name, &self,
+ 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
+}
+
+static inline PyObject *
+_PyObject_CallMethodIdOneArg(PyObject *self, _Py_Identifier *name, PyObject *arg)
+{
+ PyObject *args[2] = {self, arg};
+
+ assert(arg != NULL);
+ return _PyObject_VectorcallMethodId(name, args,
+ 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
+}
+
+PyAPI_FUNC(int) _PyObject_HasLen(PyObject *o);
+
+/* Guess the size of object 'o' using len(o) or o.__length_hint__().
+ If neither of those return a non-negative value, then return the default
+ value. If one of the calls fails, this function returns -1. */
+PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t);
+
+/* === New Buffer API ============================================ */
+
+/* Return 1 if the getbuffer function is available, otherwise return 0. */
+PyAPI_FUNC(int) PyObject_CheckBuffer(PyObject *obj);
+
+/* This is a C-API version of the getbuffer function call. It checks
+ to make sure object has the required function pointer and issues the
+ call.
+
+ Returns -1 and raises an error on failure and returns 0 on success. */
+PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view,
+ int flags);
+
+/* Get the memory area pointed to by the indices for the buffer given.
+ Note that view->ndim is the assumed size of indices. */
+PyAPI_FUNC(void *) PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices);
+
+/* Return the implied itemsize of the data-format area from a
+ struct-style description. */
+PyAPI_FUNC(Py_ssize_t) PyBuffer_SizeFromFormat(const char *format);
+
+/* Implementation in memoryobject.c */
+PyAPI_FUNC(int) PyBuffer_ToContiguous(void *buf, Py_buffer *view,
+ Py_ssize_t len, char order);
+
+PyAPI_FUNC(int) PyBuffer_FromContiguous(Py_buffer *view, void *buf,
+ Py_ssize_t len, char order);
+
+/* Copy len bytes of data from the contiguous chunk of memory
+ pointed to by buf into the buffer exported by obj. Return
+ 0 on success and return -1 and raise a PyBuffer_Error on
+ error (i.e. the object does not have a buffer interface or
+ it is not working).
+
+ If fort is 'F', then if the object is multi-dimensional,
+ then the data will be copied into the array in
+ Fortran-style (first dimension varies the fastest). If
+ fort is 'C', then the data will be copied into the array
+ in C-style (last dimension varies the fastest). If fort
+ is 'A', then it does not matter and the copy will be made
+ in whatever way is more efficient. */
+PyAPI_FUNC(int) PyObject_CopyData(PyObject *dest, PyObject *src);
+
+/* Copy the data from the src buffer to the buffer of destination. */
+PyAPI_FUNC(int) PyBuffer_IsContiguous(const Py_buffer *view, char fort);
+
+/*Fill the strides array with byte-strides of a contiguous
+ (Fortran-style if fort is 'F' or C-style otherwise)
+ array of the given shape with the given number of bytes
+ per element. */
+PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims,
+ Py_ssize_t *shape,
+ Py_ssize_t *strides,
+ int itemsize,
+ char fort);
+
+/* Fills in a buffer-info structure correctly for an exporter
+ that can only share a contiguous chunk of memory of
+ "unsigned bytes" of the given length.
+
+ Returns 0 on success and -1 (with raising an error) on error. */
+PyAPI_FUNC(int) PyBuffer_FillInfo(Py_buffer *view, PyObject *o, void *buf,
+ Py_ssize_t len, int readonly,
+ int flags);
+
+/* Releases a Py_buffer obtained from getbuffer ParseTuple's "s*". */
+PyAPI_FUNC(void) PyBuffer_Release(Py_buffer *view);
+
+/* ==== Iterators ================================================ */
+
+#define PyIter_Check(obj) \
+ (Py_TYPE(obj)->tp_iternext != NULL && \
+ Py_TYPE(obj)->tp_iternext != &_PyObject_NextNotImplemented)
+
+/* === Sequence protocol ================================================ */
+
+/* Assume tp_as_sequence and sq_item exist and that 'i' does not
+ need to be corrected for a negative index. */
+#define PySequence_ITEM(o, i)\
+ ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) )
+
+#define PY_ITERSEARCH_COUNT 1
+#define PY_ITERSEARCH_INDEX 2
+#define PY_ITERSEARCH_CONTAINS 3
+
+/* Iterate over seq.
+
+ Result depends on the operation:
+
+ PY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if
+ error.
+ PY_ITERSEARCH_INDEX: return 0-based index of first occurrence of
+ obj in seq; set ValueError and return -1 if none found;
+ also return -1 on error.
+ PY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on
+ error. */
+PyAPI_FUNC(Py_ssize_t) _PySequence_IterSearch(PyObject *seq,
+ PyObject *obj, int operation);
+
+/* === Mapping protocol ================================================= */
+
+PyAPI_FUNC(int) _PyObject_RealIsInstance(PyObject *inst, PyObject *cls);
+
+PyAPI_FUNC(int) _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls);
+
+PyAPI_FUNC(char *const *) _PySequence_BytesToCharpArray(PyObject* self);
+
+PyAPI_FUNC(void) _Py_FreeCharPArray(char *const array[]);
+
+/* For internal use by buffer API functions */
+PyAPI_FUNC(void) _Py_add_one_to_index_F(int nd, Py_ssize_t *index,
+ const Py_ssize_t *shape);
+PyAPI_FUNC(void) _Py_add_one_to_index_C(int nd, Py_ssize_t *index,
+ const Py_ssize_t *shape);
+
+/* Convert Python int to Py_ssize_t. Do nothing if the argument is None. */
+PyAPI_FUNC(int) _Py_convert_optional_to_ssize_t(PyObject *, void *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/bytearrayobject.h b/contrib/tools/python3/src/Include/cpython/bytearrayobject.h
index 4969d5f807..569b0cd036 100644
--- a/contrib/tools/python3/src/Include/cpython/bytearrayobject.h
+++ b/contrib/tools/python3/src/Include/cpython/bytearrayobject.h
@@ -1,20 +1,20 @@
-#ifndef Py_CPYTHON_BYTEARRAYOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-/* Object layout */
-typedef struct {
- PyObject_VAR_HEAD
- Py_ssize_t ob_alloc; /* How many bytes allocated in ob_bytes */
- char *ob_bytes; /* Physical backing buffer */
- char *ob_start; /* Logical start inside ob_bytes */
- Py_ssize_t ob_exports; /* How many buffer exports */
-} PyByteArrayObject;
-
-/* Macros, trading safety for speed */
-#define PyByteArray_AS_STRING(self) \
- (assert(PyByteArray_Check(self)), \
- Py_SIZE(self) ? ((PyByteArrayObject *)(self))->ob_start : _PyByteArray_empty_string)
-#define PyByteArray_GET_SIZE(self) (assert(PyByteArray_Check(self)), Py_SIZE(self))
-
-PyAPI_DATA(char) _PyByteArray_empty_string[];
+#ifndef Py_CPYTHON_BYTEARRAYOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+/* Object layout */
+typedef struct {
+ PyObject_VAR_HEAD
+ Py_ssize_t ob_alloc; /* How many bytes allocated in ob_bytes */
+ char *ob_bytes; /* Physical backing buffer */
+ char *ob_start; /* Logical start inside ob_bytes */
+ Py_ssize_t ob_exports; /* How many buffer exports */
+} PyByteArrayObject;
+
+/* Macros, trading safety for speed */
+#define PyByteArray_AS_STRING(self) \
+ (assert(PyByteArray_Check(self)), \
+ Py_SIZE(self) ? ((PyByteArrayObject *)(self))->ob_start : _PyByteArray_empty_string)
+#define PyByteArray_GET_SIZE(self) (assert(PyByteArray_Check(self)), Py_SIZE(self))
+
+PyAPI_DATA(char) _PyByteArray_empty_string[];
diff --git a/contrib/tools/python3/src/Include/cpython/bytesobject.h b/contrib/tools/python3/src/Include/cpython/bytesobject.h
index 6eb7eb8f25..f284c5835d 100644
--- a/contrib/tools/python3/src/Include/cpython/bytesobject.h
+++ b/contrib/tools/python3/src/Include/cpython/bytesobject.h
@@ -1,118 +1,118 @@
-#ifndef Py_CPYTHON_BYTESOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-typedef struct {
- PyObject_VAR_HEAD
- Py_hash_t ob_shash;
- char ob_sval[1];
-
- /* Invariants:
- * ob_sval contains space for 'ob_size+1' elements.
- * ob_sval[ob_size] == 0.
- * ob_shash is the hash of the string or -1 if not computed yet.
- */
-} PyBytesObject;
-
-PyAPI_FUNC(int) _PyBytes_Resize(PyObject **, Py_ssize_t);
-PyAPI_FUNC(PyObject*) _PyBytes_FormatEx(
- const char *format,
- Py_ssize_t format_len,
- PyObject *args,
- int use_bytearray);
-PyAPI_FUNC(PyObject*) _PyBytes_FromHex(
- PyObject *string,
- int use_bytearray);
-
-/* Helper for PyBytes_DecodeEscape that detects invalid escape chars. */
-PyAPI_FUNC(PyObject *) _PyBytes_DecodeEscape(const char *, Py_ssize_t,
- const char *, const char **);
-
-/* Macro, trading safety for speed */
-#define PyBytes_AS_STRING(op) (assert(PyBytes_Check(op)), \
- (((PyBytesObject *)(op))->ob_sval))
-#define PyBytes_GET_SIZE(op) (assert(PyBytes_Check(op)),Py_SIZE(op))
-
-/* _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,
- x must be an iterable object. */
-PyAPI_FUNC(PyObject *) _PyBytes_Join(PyObject *sep, PyObject *x);
-
-
-/* The _PyBytesWriter structure is big: it contains an embedded "stack buffer".
- A _PyBytesWriter variable must be declared at the end of variables in a
- function to optimize the memory allocation on the stack. */
-typedef struct {
- /* bytes, bytearray or NULL (when the small buffer is used) */
- PyObject *buffer;
-
- /* Number of allocated size. */
- Py_ssize_t allocated;
-
- /* Minimum number of allocated bytes,
- incremented by _PyBytesWriter_Prepare() */
- Py_ssize_t min_size;
-
- /* If non-zero, use a bytearray instead of a bytes object for buffer. */
- int use_bytearray;
-
- /* If non-zero, overallocate the buffer (default: 0).
- This flag must be zero if use_bytearray is non-zero. */
- int overallocate;
-
- /* Stack buffer */
- int use_small_buffer;
- char small_buffer[512];
-} _PyBytesWriter;
-
-/* Initialize a bytes writer
-
- By default, the overallocation is disabled. Set the overallocate attribute
- to control the allocation of the buffer. */
-PyAPI_FUNC(void) _PyBytesWriter_Init(_PyBytesWriter *writer);
-
-/* Get the buffer content and reset the writer.
- Return a bytes object, or a bytearray object if use_bytearray is non-zero.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(PyObject *) _PyBytesWriter_Finish(_PyBytesWriter *writer,
- void *str);
-
-/* Deallocate memory of a writer (clear its internal buffer). */
-PyAPI_FUNC(void) _PyBytesWriter_Dealloc(_PyBytesWriter *writer);
-
-/* Allocate the buffer to write size bytes.
- Return the pointer to the beginning of buffer data.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(void*) _PyBytesWriter_Alloc(_PyBytesWriter *writer,
- Py_ssize_t size);
-
-/* Ensure that the buffer is large enough to write *size* bytes.
- Add size to the writer minimum size (min_size attribute).
-
- str is the current pointer inside the buffer.
- Return the updated current pointer inside the buffer.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(void*) _PyBytesWriter_Prepare(_PyBytesWriter *writer,
- void *str,
- Py_ssize_t size);
-
-/* Resize the buffer to make it larger.
- The new buffer may be larger than size bytes because of overallocation.
- Return the updated current pointer inside the buffer.
- Raise an exception and return NULL on error.
-
- Note: size must be greater than the number of allocated bytes in the writer.
-
- This function doesn't use the writer minimum size (min_size attribute).
-
- See also _PyBytesWriter_Prepare().
- */
-PyAPI_FUNC(void*) _PyBytesWriter_Resize(_PyBytesWriter *writer,
- void *str,
- Py_ssize_t size);
-
-/* Write bytes.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(void*) _PyBytesWriter_WriteBytes(_PyBytesWriter *writer,
- void *str,
- const void *bytes,
- Py_ssize_t size);
+#ifndef Py_CPYTHON_BYTESOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+typedef struct {
+ PyObject_VAR_HEAD
+ Py_hash_t ob_shash;
+ char ob_sval[1];
+
+ /* Invariants:
+ * ob_sval contains space for 'ob_size+1' elements.
+ * ob_sval[ob_size] == 0.
+ * ob_shash is the hash of the string or -1 if not computed yet.
+ */
+} PyBytesObject;
+
+PyAPI_FUNC(int) _PyBytes_Resize(PyObject **, Py_ssize_t);
+PyAPI_FUNC(PyObject*) _PyBytes_FormatEx(
+ const char *format,
+ Py_ssize_t format_len,
+ PyObject *args,
+ int use_bytearray);
+PyAPI_FUNC(PyObject*) _PyBytes_FromHex(
+ PyObject *string,
+ int use_bytearray);
+
+/* Helper for PyBytes_DecodeEscape that detects invalid escape chars. */
+PyAPI_FUNC(PyObject *) _PyBytes_DecodeEscape(const char *, Py_ssize_t,
+ const char *, const char **);
+
+/* Macro, trading safety for speed */
+#define PyBytes_AS_STRING(op) (assert(PyBytes_Check(op)), \
+ (((PyBytesObject *)(op))->ob_sval))
+#define PyBytes_GET_SIZE(op) (assert(PyBytes_Check(op)),Py_SIZE(op))
+
+/* _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,
+ x must be an iterable object. */
+PyAPI_FUNC(PyObject *) _PyBytes_Join(PyObject *sep, PyObject *x);
+
+
+/* The _PyBytesWriter structure is big: it contains an embedded "stack buffer".
+ A _PyBytesWriter variable must be declared at the end of variables in a
+ function to optimize the memory allocation on the stack. */
+typedef struct {
+ /* bytes, bytearray or NULL (when the small buffer is used) */
+ PyObject *buffer;
+
+ /* Number of allocated size. */
+ Py_ssize_t allocated;
+
+ /* Minimum number of allocated bytes,
+ incremented by _PyBytesWriter_Prepare() */
+ Py_ssize_t min_size;
+
+ /* If non-zero, use a bytearray instead of a bytes object for buffer. */
+ int use_bytearray;
+
+ /* If non-zero, overallocate the buffer (default: 0).
+ This flag must be zero if use_bytearray is non-zero. */
+ int overallocate;
+
+ /* Stack buffer */
+ int use_small_buffer;
+ char small_buffer[512];
+} _PyBytesWriter;
+
+/* Initialize a bytes writer
+
+ By default, the overallocation is disabled. Set the overallocate attribute
+ to control the allocation of the buffer. */
+PyAPI_FUNC(void) _PyBytesWriter_Init(_PyBytesWriter *writer);
+
+/* Get the buffer content and reset the writer.
+ Return a bytes object, or a bytearray object if use_bytearray is non-zero.
+ Raise an exception and return NULL on error. */
+PyAPI_FUNC(PyObject *) _PyBytesWriter_Finish(_PyBytesWriter *writer,
+ void *str);
+
+/* Deallocate memory of a writer (clear its internal buffer). */
+PyAPI_FUNC(void) _PyBytesWriter_Dealloc(_PyBytesWriter *writer);
+
+/* Allocate the buffer to write size bytes.
+ Return the pointer to the beginning of buffer data.
+ Raise an exception and return NULL on error. */
+PyAPI_FUNC(void*) _PyBytesWriter_Alloc(_PyBytesWriter *writer,
+ Py_ssize_t size);
+
+/* Ensure that the buffer is large enough to write *size* bytes.
+ Add size to the writer minimum size (min_size attribute).
+
+ str is the current pointer inside the buffer.
+ Return the updated current pointer inside the buffer.
+ Raise an exception and return NULL on error. */
+PyAPI_FUNC(void*) _PyBytesWriter_Prepare(_PyBytesWriter *writer,
+ void *str,
+ Py_ssize_t size);
+
+/* Resize the buffer to make it larger.
+ The new buffer may be larger than size bytes because of overallocation.
+ Return the updated current pointer inside the buffer.
+ Raise an exception and return NULL on error.
+
+ Note: size must be greater than the number of allocated bytes in the writer.
+
+ This function doesn't use the writer minimum size (min_size attribute).
+
+ See also _PyBytesWriter_Prepare().
+ */
+PyAPI_FUNC(void*) _PyBytesWriter_Resize(_PyBytesWriter *writer,
+ void *str,
+ Py_ssize_t size);
+
+/* Write bytes.
+ Raise an exception and return NULL on error. */
+PyAPI_FUNC(void*) _PyBytesWriter_WriteBytes(_PyBytesWriter *writer,
+ void *str,
+ const void *bytes,
+ Py_ssize_t size);
diff --git a/contrib/tools/python3/src/Include/cpython/ceval.h b/contrib/tools/python3/src/Include/cpython/ceval.h
index 6b37af7f59..e1922a677b 100644
--- a/contrib/tools/python3/src/Include/cpython/ceval.h
+++ b/contrib/tools/python3/src/Include/cpython/ceval.h
@@ -1,38 +1,38 @@
-#ifndef Py_CPYTHON_CEVAL_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
-PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
-PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
-PyAPI_FUNC(int) _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
-PyAPI_FUNC(int) _PyEval_GetCoroutineOriginTrackingDepth(void);
-PyAPI_FUNC(int) _PyEval_SetAsyncGenFirstiter(PyObject *);
-PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFirstiter(void);
-PyAPI_FUNC(int) _PyEval_SetAsyncGenFinalizer(PyObject *);
-PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFinalizer(void);
-
-/* Helper to look up a builtin object */
-PyAPI_FUNC(PyObject *) _PyEval_GetBuiltinId(_Py_Identifier *);
-/* Look at the current frame's (if any) code's co_flags, and turn on
- the corresponding compiler flags in cf->cf_flags. Return 1 if any
- flag was set, else return 0. */
-PyAPI_FUNC(int) PyEval_MergeCompilerFlags(PyCompilerFlags *cf);
-
-PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int exc);
-
-PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds);
-PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void);
-
-PyAPI_FUNC(Py_ssize_t) _PyEval_RequestCodeExtraIndex(freefunc);
-
-PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *);
-PyAPI_FUNC(int) _PyEval_SliceIndexNotNone(PyObject *, Py_ssize_t *);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_CEVAL_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
+PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
+PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
+PyAPI_FUNC(int) _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
+PyAPI_FUNC(int) _PyEval_GetCoroutineOriginTrackingDepth(void);
+PyAPI_FUNC(int) _PyEval_SetAsyncGenFirstiter(PyObject *);
+PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFirstiter(void);
+PyAPI_FUNC(int) _PyEval_SetAsyncGenFinalizer(PyObject *);
+PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFinalizer(void);
+
+/* Helper to look up a builtin object */
+PyAPI_FUNC(PyObject *) _PyEval_GetBuiltinId(_Py_Identifier *);
+/* Look at the current frame's (if any) code's co_flags, and turn on
+ the corresponding compiler flags in cf->cf_flags. Return 1 if any
+ flag was set, else return 0. */
+PyAPI_FUNC(int) PyEval_MergeCompilerFlags(PyCompilerFlags *cf);
+
+PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int exc);
+
+PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds);
+PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void);
+
+PyAPI_FUNC(Py_ssize_t) _PyEval_RequestCodeExtraIndex(freefunc);
+
+PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *);
+PyAPI_FUNC(int) _PyEval_SliceIndexNotNone(PyObject *, Py_ssize_t *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/code.h b/contrib/tools/python3/src/Include/cpython/code.h
index 93e532e6ec..cda28ac6ee 100644
--- a/contrib/tools/python3/src/Include/cpython/code.h
+++ b/contrib/tools/python3/src/Include/cpython/code.h
@@ -1,165 +1,165 @@
-#ifndef Py_CPYTHON_CODE_H
-# error "this header file must not be included directly"
-#endif
-
-typedef uint16_t _Py_CODEUNIT;
-
-#ifdef WORDS_BIGENDIAN
-# define _Py_OPCODE(word) ((word) >> 8)
-# define _Py_OPARG(word) ((word) & 255)
-#else
-# define _Py_OPCODE(word) ((word) & 255)
-# define _Py_OPARG(word) ((word) >> 8)
-#endif
-
-typedef struct _PyOpcache _PyOpcache;
-
-/* Bytecode object */
-struct PyCodeObject {
- PyObject_HEAD
- int co_argcount; /* #arguments, except *args */
- int co_posonlyargcount; /* #positional only arguments */
- int co_kwonlyargcount; /* #keyword only arguments */
- int co_nlocals; /* #local variables */
- int co_stacksize; /* #entries needed for evaluation stack */
- int co_flags; /* CO_..., see below */
- int co_firstlineno; /* first source line number */
- PyObject *co_code; /* instruction opcodes */
- PyObject *co_consts; /* list (constants used) */
- PyObject *co_names; /* list of strings (names used) */
- PyObject *co_varnames; /* tuple of strings (local variable names) */
- PyObject *co_freevars; /* tuple of strings (free variable names) */
- PyObject *co_cellvars; /* tuple of strings (cell variable names) */
- /* The rest aren't used in either hash or comparisons, except for co_name,
- used in both. This is done to preserve the name and line number
- for tracebacks and debuggers; otherwise, constant de-duplication
- would collapse identical functions/lambdas defined on different lines.
- */
- Py_ssize_t *co_cell2arg; /* Maps cell vars which are arguments. */
- PyObject *co_filename; /* unicode (where it was loaded from) */
- PyObject *co_name; /* unicode (name, for reference) */
- PyObject *co_lnotab; /* string (encoding addr<->lineno mapping) See
- Objects/lnotab_notes.txt for details. */
- void *co_zombieframe; /* for optimization only (see frameobject.c) */
- PyObject *co_weakreflist; /* to support weakrefs to code objects */
- /* Scratch space for extra data relating to the code object.
- Type is a void* to keep the format private in codeobject.c to force
- people to go through the proper APIs. */
- void *co_extra;
-
- /* Per opcodes just-in-time cache
- *
- * To reduce cache size, we use indirect mapping from opcode index to
- * cache object:
- * cache = co_opcache[co_opcache_map[next_instr - first_instr] - 1]
- */
-
- // co_opcache_map is indexed by (next_instr - first_instr).
- // * 0 means there is no cache for this opcode.
- // * n > 0 means there is cache in co_opcache[n-1].
- unsigned char *co_opcache_map;
- _PyOpcache *co_opcache;
- int co_opcache_flag; // used to determine when create a cache.
- unsigned char co_opcache_size; // length of co_opcache.
-};
-
-/* Masks for co_flags above */
-#define CO_OPTIMIZED 0x0001
-#define CO_NEWLOCALS 0x0002
-#define CO_VARARGS 0x0004
-#define CO_VARKEYWORDS 0x0008
-#define CO_NESTED 0x0010
-#define CO_GENERATOR 0x0020
-/* The CO_NOFREE flag is set if there are no free or cell variables.
- This information is redundant, but it allows a single flag test
- to determine whether there is any extra work to be done when the
- call frame it setup.
-*/
-#define CO_NOFREE 0x0040
-
-/* The CO_COROUTINE flag is set for coroutine functions (defined with
- ``async def`` keywords) */
-#define CO_COROUTINE 0x0080
-#define CO_ITERABLE_COROUTINE 0x0100
-#define CO_ASYNC_GENERATOR 0x0200
-
-/* bpo-39562: These constant values are changed in Python 3.9
- to prevent collision with compiler flags. CO_FUTURE_ and PyCF_
- constants must be kept unique. PyCF_ constants can use bits from
- 0x0100 to 0x10000. CO_FUTURE_ constants use bits starting at 0x20000. */
-#define CO_FUTURE_DIVISION 0x20000
-#define CO_FUTURE_ABSOLUTE_IMPORT 0x40000 /* do absolute imports by default */
-#define CO_FUTURE_WITH_STATEMENT 0x80000
-#define CO_FUTURE_PRINT_FUNCTION 0x100000
-#define CO_FUTURE_UNICODE_LITERALS 0x200000
-
-#define CO_FUTURE_BARRY_AS_BDFL 0x400000
-#define CO_FUTURE_GENERATOR_STOP 0x800000
-#define CO_FUTURE_ANNOTATIONS 0x1000000
-
-/* This value is found in the co_cell2arg array when the associated cell
- variable does not correspond to an argument. */
-#define CO_CELL_NOT_AN_ARG (-1)
-
-/* This should be defined if a future statement modifies the syntax.
- For example, when a keyword is added.
-*/
-#define PY_PARSER_REQUIRES_FUTURE_KEYWORD
-
-#define CO_MAXBLOCKS 20 /* Max static block nesting within a function */
-
-PyAPI_DATA(PyTypeObject) PyCode_Type;
-
-#define PyCode_Check(op) Py_IS_TYPE(op, &PyCode_Type)
-#define PyCode_GetNumFree(op) (PyTuple_GET_SIZE((op)->co_freevars))
-
-/* Public interface */
-PyAPI_FUNC(PyCodeObject *) PyCode_New(
- int, int, int, int, int, PyObject *, PyObject *,
- PyObject *, PyObject *, PyObject *, PyObject *,
- PyObject *, PyObject *, int, PyObject *);
-
-PyAPI_FUNC(PyCodeObject *) PyCode_NewWithPosOnlyArgs(
- int, int, int, int, int, int, PyObject *, PyObject *,
- PyObject *, PyObject *, PyObject *, PyObject *,
- PyObject *, PyObject *, int, PyObject *);
- /* same as struct above */
-
-/* Creates a new empty code object with the specified source location. */
-PyAPI_FUNC(PyCodeObject *)
-PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno);
-
-/* Return the line number associated with the specified bytecode index
- in this code object. If you just need the line number of a frame,
- use PyFrame_GetLineNumber() instead. */
-PyAPI_FUNC(int) PyCode_Addr2Line(PyCodeObject *, int);
-
-/* for internal use only */
-typedef struct _addr_pair {
- int ap_lower;
- int ap_upper;
-} PyAddrPair;
-
-/* Update *bounds to describe the first and one-past-the-last instructions in the
- same line as lasti. Return the number of that line.
-*/
-PyAPI_FUNC(int) _PyCode_CheckLineNumber(PyCodeObject* co,
- int lasti, PyAddrPair *bounds);
-
-/* Create a comparable key used to compare constants taking in account the
- * object type. It is used to make sure types are not coerced (e.g., float and
- * complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms
- *
- * Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)
- * depending on the type and the value. The type is the first item to not
- * compare bytes and str which can raise a BytesWarning exception. */
-PyAPI_FUNC(PyObject*) _PyCode_ConstantKey(PyObject *obj);
-
-PyAPI_FUNC(PyObject*) PyCode_Optimize(PyObject *code, PyObject* consts,
- PyObject *names, PyObject *lnotab);
-
-
-PyAPI_FUNC(int) _PyCode_GetExtra(PyObject *code, Py_ssize_t index,
- void **extra);
-PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index,
- void *extra);
+#ifndef Py_CPYTHON_CODE_H
+# error "this header file must not be included directly"
+#endif
+
+typedef uint16_t _Py_CODEUNIT;
+
+#ifdef WORDS_BIGENDIAN
+# define _Py_OPCODE(word) ((word) >> 8)
+# define _Py_OPARG(word) ((word) & 255)
+#else
+# define _Py_OPCODE(word) ((word) & 255)
+# define _Py_OPARG(word) ((word) >> 8)
+#endif
+
+typedef struct _PyOpcache _PyOpcache;
+
+/* Bytecode object */
+struct PyCodeObject {
+ PyObject_HEAD
+ int co_argcount; /* #arguments, except *args */
+ int co_posonlyargcount; /* #positional only arguments */
+ int co_kwonlyargcount; /* #keyword only arguments */
+ int co_nlocals; /* #local variables */
+ int co_stacksize; /* #entries needed for evaluation stack */
+ int co_flags; /* CO_..., see below */
+ int co_firstlineno; /* first source line number */
+ PyObject *co_code; /* instruction opcodes */
+ PyObject *co_consts; /* list (constants used) */
+ PyObject *co_names; /* list of strings (names used) */
+ PyObject *co_varnames; /* tuple of strings (local variable names) */
+ PyObject *co_freevars; /* tuple of strings (free variable names) */
+ PyObject *co_cellvars; /* tuple of strings (cell variable names) */
+ /* The rest aren't used in either hash or comparisons, except for co_name,
+ used in both. This is done to preserve the name and line number
+ for tracebacks and debuggers; otherwise, constant de-duplication
+ would collapse identical functions/lambdas defined on different lines.
+ */
+ Py_ssize_t *co_cell2arg; /* Maps cell vars which are arguments. */
+ PyObject *co_filename; /* unicode (where it was loaded from) */
+ PyObject *co_name; /* unicode (name, for reference) */
+ PyObject *co_lnotab; /* string (encoding addr<->lineno mapping) See
+ Objects/lnotab_notes.txt for details. */
+ void *co_zombieframe; /* for optimization only (see frameobject.c) */
+ PyObject *co_weakreflist; /* to support weakrefs to code objects */
+ /* Scratch space for extra data relating to the code object.
+ Type is a void* to keep the format private in codeobject.c to force
+ people to go through the proper APIs. */
+ void *co_extra;
+
+ /* Per opcodes just-in-time cache
+ *
+ * To reduce cache size, we use indirect mapping from opcode index to
+ * cache object:
+ * cache = co_opcache[co_opcache_map[next_instr - first_instr] - 1]
+ */
+
+ // co_opcache_map is indexed by (next_instr - first_instr).
+ // * 0 means there is no cache for this opcode.
+ // * n > 0 means there is cache in co_opcache[n-1].
+ unsigned char *co_opcache_map;
+ _PyOpcache *co_opcache;
+ int co_opcache_flag; // used to determine when create a cache.
+ unsigned char co_opcache_size; // length of co_opcache.
+};
+
+/* Masks for co_flags above */
+#define CO_OPTIMIZED 0x0001
+#define CO_NEWLOCALS 0x0002
+#define CO_VARARGS 0x0004
+#define CO_VARKEYWORDS 0x0008
+#define CO_NESTED 0x0010
+#define CO_GENERATOR 0x0020
+/* The CO_NOFREE flag is set if there are no free or cell variables.
+ This information is redundant, but it allows a single flag test
+ to determine whether there is any extra work to be done when the
+ call frame it setup.
+*/
+#define CO_NOFREE 0x0040
+
+/* The CO_COROUTINE flag is set for coroutine functions (defined with
+ ``async def`` keywords) */
+#define CO_COROUTINE 0x0080
+#define CO_ITERABLE_COROUTINE 0x0100
+#define CO_ASYNC_GENERATOR 0x0200
+
+/* bpo-39562: These constant values are changed in Python 3.9
+ to prevent collision with compiler flags. CO_FUTURE_ and PyCF_
+ constants must be kept unique. PyCF_ constants can use bits from
+ 0x0100 to 0x10000. CO_FUTURE_ constants use bits starting at 0x20000. */
+#define CO_FUTURE_DIVISION 0x20000
+#define CO_FUTURE_ABSOLUTE_IMPORT 0x40000 /* do absolute imports by default */
+#define CO_FUTURE_WITH_STATEMENT 0x80000
+#define CO_FUTURE_PRINT_FUNCTION 0x100000
+#define CO_FUTURE_UNICODE_LITERALS 0x200000
+
+#define CO_FUTURE_BARRY_AS_BDFL 0x400000
+#define CO_FUTURE_GENERATOR_STOP 0x800000
+#define CO_FUTURE_ANNOTATIONS 0x1000000
+
+/* This value is found in the co_cell2arg array when the associated cell
+ variable does not correspond to an argument. */
+#define CO_CELL_NOT_AN_ARG (-1)
+
+/* This should be defined if a future statement modifies the syntax.
+ For example, when a keyword is added.
+*/
+#define PY_PARSER_REQUIRES_FUTURE_KEYWORD
+
+#define CO_MAXBLOCKS 20 /* Max static block nesting within a function */
+
+PyAPI_DATA(PyTypeObject) PyCode_Type;
+
+#define PyCode_Check(op) Py_IS_TYPE(op, &PyCode_Type)
+#define PyCode_GetNumFree(op) (PyTuple_GET_SIZE((op)->co_freevars))
+
+/* Public interface */
+PyAPI_FUNC(PyCodeObject *) PyCode_New(
+ int, int, int, int, int, PyObject *, PyObject *,
+ PyObject *, PyObject *, PyObject *, PyObject *,
+ PyObject *, PyObject *, int, PyObject *);
+
+PyAPI_FUNC(PyCodeObject *) PyCode_NewWithPosOnlyArgs(
+ int, int, int, int, int, int, PyObject *, PyObject *,
+ PyObject *, PyObject *, PyObject *, PyObject *,
+ PyObject *, PyObject *, int, PyObject *);
+ /* same as struct above */
+
+/* Creates a new empty code object with the specified source location. */
+PyAPI_FUNC(PyCodeObject *)
+PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno);
+
+/* Return the line number associated with the specified bytecode index
+ in this code object. If you just need the line number of a frame,
+ use PyFrame_GetLineNumber() instead. */
+PyAPI_FUNC(int) PyCode_Addr2Line(PyCodeObject *, int);
+
+/* for internal use only */
+typedef struct _addr_pair {
+ int ap_lower;
+ int ap_upper;
+} PyAddrPair;
+
+/* Update *bounds to describe the first and one-past-the-last instructions in the
+ same line as lasti. Return the number of that line.
+*/
+PyAPI_FUNC(int) _PyCode_CheckLineNumber(PyCodeObject* co,
+ int lasti, PyAddrPair *bounds);
+
+/* Create a comparable key used to compare constants taking in account the
+ * object type. It is used to make sure types are not coerced (e.g., float and
+ * complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms
+ *
+ * Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)
+ * depending on the type and the value. The type is the first item to not
+ * compare bytes and str which can raise a BytesWarning exception. */
+PyAPI_FUNC(PyObject*) _PyCode_ConstantKey(PyObject *obj);
+
+PyAPI_FUNC(PyObject*) PyCode_Optimize(PyObject *code, PyObject* consts,
+ PyObject *names, PyObject *lnotab);
+
+
+PyAPI_FUNC(int) _PyCode_GetExtra(PyObject *code, Py_ssize_t index,
+ void **extra);
+PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index,
+ void *extra);
diff --git a/contrib/tools/python3/src/Include/cpython/dictobject.h b/contrib/tools/python3/src/Include/cpython/dictobject.h
index 29cd73080d..50f4c4a9e5 100644
--- a/contrib/tools/python3/src/Include/cpython/dictobject.h
+++ b/contrib/tools/python3/src/Include/cpython/dictobject.h
@@ -1,92 +1,92 @@
-#ifndef Py_CPYTHON_DICTOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _dictkeysobject PyDictKeysObject;
-
-/* The ma_values pointer is NULL for a combined table
- * or points to an array of PyObject* for a split table
- */
-typedef struct {
- PyObject_HEAD
-
- /* Number of items in the dictionary */
- Py_ssize_t ma_used;
-
- /* Dictionary version: globally unique, value change each time
- the dictionary is modified */
- uint64_t ma_version_tag;
-
- PyDictKeysObject *ma_keys;
-
- /* If ma_values is NULL, the table is "combined": keys and values
- are stored in ma_keys.
-
- If ma_values is not NULL, the table is split:
- keys are stored in ma_keys and values are stored in ma_values */
- PyObject **ma_values;
-} PyDictObject;
-
-PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key,
- Py_hash_t hash);
-PyAPI_FUNC(PyObject *) _PyDict_GetItemIdWithError(PyObject *dp,
- struct _Py_Identifier *key);
-PyAPI_FUNC(PyObject *) _PyDict_GetItemStringWithError(PyObject *, const char *);
-PyAPI_FUNC(PyObject *) PyDict_SetDefault(
- PyObject *mp, PyObject *key, PyObject *defaultobj);
-PyAPI_FUNC(int) _PyDict_SetItem_KnownHash(PyObject *mp, PyObject *key,
- PyObject *item, Py_hash_t hash);
-PyAPI_FUNC(int) _PyDict_DelItem_KnownHash(PyObject *mp, PyObject *key,
- Py_hash_t hash);
-PyAPI_FUNC(int) _PyDict_DelItemIf(PyObject *mp, PyObject *key,
- int (*predicate)(PyObject *value));
-PyDictKeysObject *_PyDict_NewKeysForClass(void);
-PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
-PyAPI_FUNC(int) _PyDict_Next(
- PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash);
-
-/* Get the number of items of a dictionary. */
-#define PyDict_GET_SIZE(mp) (assert(PyDict_Check(mp)),((PyDictObject *)mp)->ma_used)
-PyAPI_FUNC(int) _PyDict_Contains(PyObject *mp, PyObject *key, Py_hash_t hash);
-PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused);
-PyAPI_FUNC(void) _PyDict_MaybeUntrack(PyObject *mp);
-PyAPI_FUNC(int) _PyDict_HasOnlyStringKeys(PyObject *mp);
-Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys);
-PyAPI_FUNC(Py_ssize_t) _PyDict_SizeOf(PyDictObject *);
-PyAPI_FUNC(PyObject *) _PyDict_Pop(PyObject *, PyObject *, PyObject *);
-PyObject *_PyDict_Pop_KnownHash(PyObject *, PyObject *, Py_hash_t, PyObject *);
-PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *);
-#define _PyDict_HasSplitTable(d) ((d)->ma_values != NULL)
-
-/* Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,
- the first occurrence of a key wins, if override is 1, the last occurrence
- of a key wins, if override is 2, a KeyError with conflicting key as
- argument is raised.
-*/
-PyAPI_FUNC(int) _PyDict_MergeEx(PyObject *mp, PyObject *other, int override);
-PyAPI_FUNC(PyObject *) _PyDict_GetItemId(PyObject *dp, struct _Py_Identifier *key);
-PyAPI_FUNC(int) _PyDict_SetItemId(PyObject *dp, struct _Py_Identifier *key, PyObject *item);
-
-PyAPI_FUNC(int) _PyDict_DelItemId(PyObject *mp, struct _Py_Identifier *key);
-PyAPI_FUNC(void) _PyDict_DebugMallocStats(FILE *out);
-
-int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr, PyObject *name, PyObject *value);
-PyObject *_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *);
-
-/* _PyDictView */
-
-typedef struct {
- PyObject_HEAD
- PyDictObject *dv_dict;
-} _PyDictViewObject;
-
-PyAPI_FUNC(PyObject *) _PyDictView_New(PyObject *, PyTypeObject *);
-PyAPI_FUNC(PyObject *) _PyDictView_Intersect(PyObject* self, PyObject *other);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_DICTOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _dictkeysobject PyDictKeysObject;
+
+/* The ma_values pointer is NULL for a combined table
+ * or points to an array of PyObject* for a split table
+ */
+typedef struct {
+ PyObject_HEAD
+
+ /* Number of items in the dictionary */
+ Py_ssize_t ma_used;
+
+ /* Dictionary version: globally unique, value change each time
+ the dictionary is modified */
+ uint64_t ma_version_tag;
+
+ PyDictKeysObject *ma_keys;
+
+ /* If ma_values is NULL, the table is "combined": keys and values
+ are stored in ma_keys.
+
+ If ma_values is not NULL, the table is split:
+ keys are stored in ma_keys and values are stored in ma_values */
+ PyObject **ma_values;
+} PyDictObject;
+
+PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key,
+ Py_hash_t hash);
+PyAPI_FUNC(PyObject *) _PyDict_GetItemIdWithError(PyObject *dp,
+ struct _Py_Identifier *key);
+PyAPI_FUNC(PyObject *) _PyDict_GetItemStringWithError(PyObject *, const char *);
+PyAPI_FUNC(PyObject *) PyDict_SetDefault(
+ PyObject *mp, PyObject *key, PyObject *defaultobj);
+PyAPI_FUNC(int) _PyDict_SetItem_KnownHash(PyObject *mp, PyObject *key,
+ PyObject *item, Py_hash_t hash);
+PyAPI_FUNC(int) _PyDict_DelItem_KnownHash(PyObject *mp, PyObject *key,
+ Py_hash_t hash);
+PyAPI_FUNC(int) _PyDict_DelItemIf(PyObject *mp, PyObject *key,
+ int (*predicate)(PyObject *value));
+PyDictKeysObject *_PyDict_NewKeysForClass(void);
+PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
+PyAPI_FUNC(int) _PyDict_Next(
+ PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash);
+
+/* Get the number of items of a dictionary. */
+#define PyDict_GET_SIZE(mp) (assert(PyDict_Check(mp)),((PyDictObject *)mp)->ma_used)
+PyAPI_FUNC(int) _PyDict_Contains(PyObject *mp, PyObject *key, Py_hash_t hash);
+PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused);
+PyAPI_FUNC(void) _PyDict_MaybeUntrack(PyObject *mp);
+PyAPI_FUNC(int) _PyDict_HasOnlyStringKeys(PyObject *mp);
+Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys);
+PyAPI_FUNC(Py_ssize_t) _PyDict_SizeOf(PyDictObject *);
+PyAPI_FUNC(PyObject *) _PyDict_Pop(PyObject *, PyObject *, PyObject *);
+PyObject *_PyDict_Pop_KnownHash(PyObject *, PyObject *, Py_hash_t, PyObject *);
+PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *);
+#define _PyDict_HasSplitTable(d) ((d)->ma_values != NULL)
+
+/* Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,
+ the first occurrence of a key wins, if override is 1, the last occurrence
+ of a key wins, if override is 2, a KeyError with conflicting key as
+ argument is raised.
+*/
+PyAPI_FUNC(int) _PyDict_MergeEx(PyObject *mp, PyObject *other, int override);
+PyAPI_FUNC(PyObject *) _PyDict_GetItemId(PyObject *dp, struct _Py_Identifier *key);
+PyAPI_FUNC(int) _PyDict_SetItemId(PyObject *dp, struct _Py_Identifier *key, PyObject *item);
+
+PyAPI_FUNC(int) _PyDict_DelItemId(PyObject *mp, struct _Py_Identifier *key);
+PyAPI_FUNC(void) _PyDict_DebugMallocStats(FILE *out);
+
+int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr, PyObject *name, PyObject *value);
+PyObject *_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *);
+
+/* _PyDictView */
+
+typedef struct {
+ PyObject_HEAD
+ PyDictObject *dv_dict;
+} _PyDictViewObject;
+
+PyAPI_FUNC(PyObject *) _PyDictView_New(PyObject *, PyTypeObject *);
+PyAPI_FUNC(PyObject *) _PyDictView_Intersect(PyObject* self, PyObject *other);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/fileobject.h b/contrib/tools/python3/src/Include/cpython/fileobject.h
index c522cca1aa..3005ce1f00 100644
--- a/contrib/tools/python3/src/Include/cpython/fileobject.h
+++ b/contrib/tools/python3/src/Include/cpython/fileobject.h
@@ -1,24 +1,24 @@
-#ifndef Py_CPYTHON_FILEOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(char *) Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *);
-
-/* The std printer acts as a preliminary sys.stderr until the new io
- infrastructure is in place. */
-PyAPI_FUNC(PyObject *) PyFile_NewStdPrinter(int);
-PyAPI_DATA(PyTypeObject) PyStdPrinter_Type;
-
-typedef PyObject * (*Py_OpenCodeHookFunction)(PyObject *, void *);
-
-PyAPI_FUNC(PyObject *) PyFile_OpenCode(const char *utf8path);
-PyAPI_FUNC(PyObject *) PyFile_OpenCodeObject(PyObject *path);
-PyAPI_FUNC(int) PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_FILEOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(char *) Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *);
+
+/* The std printer acts as a preliminary sys.stderr until the new io
+ infrastructure is in place. */
+PyAPI_FUNC(PyObject *) PyFile_NewStdPrinter(int);
+PyAPI_DATA(PyTypeObject) PyStdPrinter_Type;
+
+typedef PyObject * (*Py_OpenCodeHookFunction)(PyObject *, void *);
+
+PyAPI_FUNC(PyObject *) PyFile_OpenCode(const char *utf8path);
+PyAPI_FUNC(PyObject *) PyFile_OpenCodeObject(PyObject *path);
+PyAPI_FUNC(int) PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/fileutils.h b/contrib/tools/python3/src/Include/cpython/fileutils.h
index 52d53756b2..e79d03e24f 100644
--- a/contrib/tools/python3/src/Include/cpython/fileutils.h
+++ b/contrib/tools/python3/src/Include/cpython/fileutils.h
@@ -1,165 +1,165 @@
-#ifndef Py_CPYTHON_FILEUTILS_H
-# error "this header file must not be included directly"
-#endif
-
-typedef enum {
- _Py_ERROR_UNKNOWN=0,
- _Py_ERROR_STRICT,
- _Py_ERROR_SURROGATEESCAPE,
- _Py_ERROR_REPLACE,
- _Py_ERROR_IGNORE,
- _Py_ERROR_BACKSLASHREPLACE,
- _Py_ERROR_SURROGATEPASS,
- _Py_ERROR_XMLCHARREFREPLACE,
- _Py_ERROR_OTHER
-} _Py_error_handler;
-
-PyAPI_FUNC(_Py_error_handler) _Py_GetErrorHandler(const char *errors);
-
-PyAPI_FUNC(int) _Py_DecodeLocaleEx(
- const char *arg,
- wchar_t **wstr,
- size_t *wlen,
- const char **reason,
- int current_locale,
- _Py_error_handler errors);
-
-PyAPI_FUNC(int) _Py_EncodeLocaleEx(
- const wchar_t *text,
- char **str,
- size_t *error_pos,
- const char **reason,
- int current_locale,
- _Py_error_handler errors);
-
-
-PyAPI_FUNC(PyObject *) _Py_device_encoding(int);
-
-#if defined(MS_WINDOWS) || defined(__APPLE__)
- /* On Windows, the count parameter of read() is an int (bpo-9015, bpo-9611).
- On macOS 10.13, read() and write() with more than INT_MAX bytes
- fail with EINVAL (bpo-24658). */
-# define _PY_READ_MAX INT_MAX
-# define _PY_WRITE_MAX INT_MAX
-#else
- /* write() should truncate the input to PY_SSIZE_T_MAX bytes,
- but it's safer to do it ourself to have a portable behaviour */
-# define _PY_READ_MAX PY_SSIZE_T_MAX
-# define _PY_WRITE_MAX PY_SSIZE_T_MAX
-#endif
-
-#ifdef MS_WINDOWS
-struct _Py_stat_struct {
- unsigned long st_dev;
- uint64_t st_ino;
- unsigned short st_mode;
- int st_nlink;
- int st_uid;
- int st_gid;
- unsigned long st_rdev;
- __int64 st_size;
- time_t st_atime;
- int st_atime_nsec;
- time_t st_mtime;
- int st_mtime_nsec;
- time_t st_ctime;
- int st_ctime_nsec;
- unsigned long st_file_attributes;
- unsigned long st_reparse_tag;
-};
-#else
-# define _Py_stat_struct stat
-#endif
-
-PyAPI_FUNC(int) _Py_fstat(
- int fd,
- struct _Py_stat_struct *status);
-
-PyAPI_FUNC(int) _Py_fstat_noraise(
- int fd,
- struct _Py_stat_struct *status);
-
-PyAPI_FUNC(int) _Py_stat(
- PyObject *path,
- struct stat *status);
-
-PyAPI_FUNC(int) _Py_open(
- const char *pathname,
- int flags);
-
-PyAPI_FUNC(int) _Py_open_noraise(
- const char *pathname,
- int flags);
-
-PyAPI_FUNC(FILE *) _Py_wfopen(
- const wchar_t *path,
- const wchar_t *mode);
-
-PyAPI_FUNC(FILE*) _Py_fopen(
- const char *pathname,
- const char *mode);
-
-PyAPI_FUNC(FILE*) _Py_fopen_obj(
- PyObject *path,
- const char *mode);
-
-PyAPI_FUNC(Py_ssize_t) _Py_read(
- int fd,
- void *buf,
- size_t count);
-
-PyAPI_FUNC(Py_ssize_t) _Py_write(
- int fd,
- const void *buf,
- size_t count);
-
-PyAPI_FUNC(Py_ssize_t) _Py_write_noraise(
- int fd,
- const void *buf,
- size_t count);
-
-#ifdef HAVE_READLINK
-PyAPI_FUNC(int) _Py_wreadlink(
- const wchar_t *path,
- wchar_t *buf,
- /* Number of characters of 'buf' buffer
- including the trailing NUL character */
- size_t buflen);
-#endif
-
-#ifdef HAVE_REALPATH
-PyAPI_FUNC(wchar_t*) _Py_wrealpath(
- const wchar_t *path,
- wchar_t *resolved_path,
- /* Number of characters of 'resolved_path' buffer
- including the trailing NUL character */
- size_t resolved_path_len);
-#endif
-
-#ifndef MS_WINDOWS
-PyAPI_FUNC(int) _Py_isabs(const wchar_t *path);
-#endif
-
-PyAPI_FUNC(int) _Py_abspath(const wchar_t *path, wchar_t **abspath_p);
-
-PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
- wchar_t *buf,
- /* Number of characters of 'buf' buffer
- including the trailing NUL character */
- size_t buflen);
-
-PyAPI_FUNC(int) _Py_get_inheritable(int fd);
-
-PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable,
- int *atomic_flag_works);
-
-PyAPI_FUNC(int) _Py_set_inheritable_async_safe(int fd, int inheritable,
- int *atomic_flag_works);
-
-PyAPI_FUNC(int) _Py_dup(int fd);
-
-#ifndef MS_WINDOWS
-PyAPI_FUNC(int) _Py_get_blocking(int fd);
-
-PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
-#endif /* !MS_WINDOWS */
+#ifndef Py_CPYTHON_FILEUTILS_H
+# error "this header file must not be included directly"
+#endif
+
+typedef enum {
+ _Py_ERROR_UNKNOWN=0,
+ _Py_ERROR_STRICT,
+ _Py_ERROR_SURROGATEESCAPE,
+ _Py_ERROR_REPLACE,
+ _Py_ERROR_IGNORE,
+ _Py_ERROR_BACKSLASHREPLACE,
+ _Py_ERROR_SURROGATEPASS,
+ _Py_ERROR_XMLCHARREFREPLACE,
+ _Py_ERROR_OTHER
+} _Py_error_handler;
+
+PyAPI_FUNC(_Py_error_handler) _Py_GetErrorHandler(const char *errors);
+
+PyAPI_FUNC(int) _Py_DecodeLocaleEx(
+ const char *arg,
+ wchar_t **wstr,
+ size_t *wlen,
+ const char **reason,
+ int current_locale,
+ _Py_error_handler errors);
+
+PyAPI_FUNC(int) _Py_EncodeLocaleEx(
+ const wchar_t *text,
+ char **str,
+ size_t *error_pos,
+ const char **reason,
+ int current_locale,
+ _Py_error_handler errors);
+
+
+PyAPI_FUNC(PyObject *) _Py_device_encoding(int);
+
+#if defined(MS_WINDOWS) || defined(__APPLE__)
+ /* On Windows, the count parameter of read() is an int (bpo-9015, bpo-9611).
+ On macOS 10.13, read() and write() with more than INT_MAX bytes
+ fail with EINVAL (bpo-24658). */
+# define _PY_READ_MAX INT_MAX
+# define _PY_WRITE_MAX INT_MAX
+#else
+ /* write() should truncate the input to PY_SSIZE_T_MAX bytes,
+ but it's safer to do it ourself to have a portable behaviour */
+# define _PY_READ_MAX PY_SSIZE_T_MAX
+# define _PY_WRITE_MAX PY_SSIZE_T_MAX
+#endif
+
+#ifdef MS_WINDOWS
+struct _Py_stat_struct {
+ unsigned long st_dev;
+ uint64_t st_ino;
+ unsigned short st_mode;
+ int st_nlink;
+ int st_uid;
+ int st_gid;
+ unsigned long st_rdev;
+ __int64 st_size;
+ time_t st_atime;
+ int st_atime_nsec;
+ time_t st_mtime;
+ int st_mtime_nsec;
+ time_t st_ctime;
+ int st_ctime_nsec;
+ unsigned long st_file_attributes;
+ unsigned long st_reparse_tag;
+};
+#else
+# define _Py_stat_struct stat
+#endif
+
+PyAPI_FUNC(int) _Py_fstat(
+ int fd,
+ struct _Py_stat_struct *status);
+
+PyAPI_FUNC(int) _Py_fstat_noraise(
+ int fd,
+ struct _Py_stat_struct *status);
+
+PyAPI_FUNC(int) _Py_stat(
+ PyObject *path,
+ struct stat *status);
+
+PyAPI_FUNC(int) _Py_open(
+ const char *pathname,
+ int flags);
+
+PyAPI_FUNC(int) _Py_open_noraise(
+ const char *pathname,
+ int flags);
+
+PyAPI_FUNC(FILE *) _Py_wfopen(
+ const wchar_t *path,
+ const wchar_t *mode);
+
+PyAPI_FUNC(FILE*) _Py_fopen(
+ const char *pathname,
+ const char *mode);
+
+PyAPI_FUNC(FILE*) _Py_fopen_obj(
+ PyObject *path,
+ const char *mode);
+
+PyAPI_FUNC(Py_ssize_t) _Py_read(
+ int fd,
+ void *buf,
+ size_t count);
+
+PyAPI_FUNC(Py_ssize_t) _Py_write(
+ int fd,
+ const void *buf,
+ size_t count);
+
+PyAPI_FUNC(Py_ssize_t) _Py_write_noraise(
+ int fd,
+ const void *buf,
+ size_t count);
+
+#ifdef HAVE_READLINK
+PyAPI_FUNC(int) _Py_wreadlink(
+ const wchar_t *path,
+ wchar_t *buf,
+ /* Number of characters of 'buf' buffer
+ including the trailing NUL character */
+ size_t buflen);
+#endif
+
+#ifdef HAVE_REALPATH
+PyAPI_FUNC(wchar_t*) _Py_wrealpath(
+ const wchar_t *path,
+ wchar_t *resolved_path,
+ /* Number of characters of 'resolved_path' buffer
+ including the trailing NUL character */
+ size_t resolved_path_len);
+#endif
+
+#ifndef MS_WINDOWS
+PyAPI_FUNC(int) _Py_isabs(const wchar_t *path);
+#endif
+
+PyAPI_FUNC(int) _Py_abspath(const wchar_t *path, wchar_t **abspath_p);
+
+PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
+ wchar_t *buf,
+ /* Number of characters of 'buf' buffer
+ including the trailing NUL character */
+ size_t buflen);
+
+PyAPI_FUNC(int) _Py_get_inheritable(int fd);
+
+PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable,
+ int *atomic_flag_works);
+
+PyAPI_FUNC(int) _Py_set_inheritable_async_safe(int fd, int inheritable,
+ int *atomic_flag_works);
+
+PyAPI_FUNC(int) _Py_dup(int fd);
+
+#ifndef MS_WINDOWS
+PyAPI_FUNC(int) _Py_get_blocking(int fd);
+
+PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
+#endif /* !MS_WINDOWS */
diff --git a/contrib/tools/python3/src/Include/cpython/frameobject.h b/contrib/tools/python3/src/Include/cpython/frameobject.h
index b303ad0558..36a51baae8 100644
--- a/contrib/tools/python3/src/Include/cpython/frameobject.h
+++ b/contrib/tools/python3/src/Include/cpython/frameobject.h
@@ -1,84 +1,84 @@
-/* Frame object interface */
-
-#ifndef Py_CPYTHON_FRAMEOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- int b_type; /* what kind of block this is */
- int b_handler; /* where to jump to find handler */
- int b_level; /* value stack level to pop to */
-} PyTryBlock;
-
-struct _frame {
- PyObject_VAR_HEAD
- struct _frame *f_back; /* previous frame, or NULL */
- PyCodeObject *f_code; /* code segment */
- PyObject *f_builtins; /* builtin symbol table (PyDictObject) */
- PyObject *f_globals; /* global symbol table (PyDictObject) */
- PyObject *f_locals; /* local symbol table (any mapping) */
- PyObject **f_valuestack; /* points after the last local */
- /* Next free slot in f_valuestack. Frame creation sets to f_valuestack.
- Frame evaluation usually NULLs it, but a frame that yields sets it
- to the current stack top. */
- PyObject **f_stacktop;
- PyObject *f_trace; /* Trace function */
- char f_trace_lines; /* Emit per-line trace events? */
- char f_trace_opcodes; /* Emit per-opcode trace events? */
-
- /* Borrowed reference to a generator, or NULL */
- PyObject *f_gen;
-
- int f_lasti; /* Last instruction if called */
- /* Call PyFrame_GetLineNumber() instead of reading this field
- directly. As of 2.3 f_lineno is only valid when tracing is
- active (i.e. when f_trace is set). At other times we use
- PyCode_Addr2Line to calculate the line from the current
- bytecode index. */
- int f_lineno; /* Current line number */
- int f_iblock; /* index in f_blockstack */
- char f_executing; /* whether the frame is still executing */
- PyTryBlock f_blockstack[CO_MAXBLOCKS]; /* for try and loop blocks */
- PyObject *f_localsplus[1]; /* locals+stack, dynamically sized */
-};
-
-
-/* Standard object interface */
-
-PyAPI_DATA(PyTypeObject) PyFrame_Type;
-
-#define PyFrame_Check(op) Py_IS_TYPE(op, &PyFrame_Type)
-
-PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
- PyObject *, PyObject *);
-
-/* only internal use */
-PyFrameObject* _PyFrame_New_NoTrack(PyThreadState *, PyCodeObject *,
- PyObject *, PyObject *);
-
-
-/* The rest of the interface is specific for frame objects */
-
-/* Block management functions */
-
-PyAPI_FUNC(void) PyFrame_BlockSetup(PyFrameObject *, int, int, int);
-PyAPI_FUNC(PyTryBlock *) PyFrame_BlockPop(PyFrameObject *);
-
-/* Conversions between "fast locals" and locals in dictionary */
-
-PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int);
-
-PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f);
-PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *);
-
-PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out);
-
-PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame);
-
-#ifdef __cplusplus
-}
-#endif
+/* Frame object interface */
+
+#ifndef Py_CPYTHON_FRAMEOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ int b_type; /* what kind of block this is */
+ int b_handler; /* where to jump to find handler */
+ int b_level; /* value stack level to pop to */
+} PyTryBlock;
+
+struct _frame {
+ PyObject_VAR_HEAD
+ struct _frame *f_back; /* previous frame, or NULL */
+ PyCodeObject *f_code; /* code segment */
+ PyObject *f_builtins; /* builtin symbol table (PyDictObject) */
+ PyObject *f_globals; /* global symbol table (PyDictObject) */
+ PyObject *f_locals; /* local symbol table (any mapping) */
+ PyObject **f_valuestack; /* points after the last local */
+ /* Next free slot in f_valuestack. Frame creation sets to f_valuestack.
+ Frame evaluation usually NULLs it, but a frame that yields sets it
+ to the current stack top. */
+ PyObject **f_stacktop;
+ PyObject *f_trace; /* Trace function */
+ char f_trace_lines; /* Emit per-line trace events? */
+ char f_trace_opcodes; /* Emit per-opcode trace events? */
+
+ /* Borrowed reference to a generator, or NULL */
+ PyObject *f_gen;
+
+ int f_lasti; /* Last instruction if called */
+ /* Call PyFrame_GetLineNumber() instead of reading this field
+ directly. As of 2.3 f_lineno is only valid when tracing is
+ active (i.e. when f_trace is set). At other times we use
+ PyCode_Addr2Line to calculate the line from the current
+ bytecode index. */
+ int f_lineno; /* Current line number */
+ int f_iblock; /* index in f_blockstack */
+ char f_executing; /* whether the frame is still executing */
+ PyTryBlock f_blockstack[CO_MAXBLOCKS]; /* for try and loop blocks */
+ PyObject *f_localsplus[1]; /* locals+stack, dynamically sized */
+};
+
+
+/* Standard object interface */
+
+PyAPI_DATA(PyTypeObject) PyFrame_Type;
+
+#define PyFrame_Check(op) Py_IS_TYPE(op, &PyFrame_Type)
+
+PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
+ PyObject *, PyObject *);
+
+/* only internal use */
+PyFrameObject* _PyFrame_New_NoTrack(PyThreadState *, PyCodeObject *,
+ PyObject *, PyObject *);
+
+
+/* The rest of the interface is specific for frame objects */
+
+/* Block management functions */
+
+PyAPI_FUNC(void) PyFrame_BlockSetup(PyFrameObject *, int, int, int);
+PyAPI_FUNC(PyTryBlock *) PyFrame_BlockPop(PyFrameObject *);
+
+/* Conversions between "fast locals" and locals in dictionary */
+
+PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int);
+
+PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f);
+PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *);
+
+PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out);
+
+PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/import.h b/contrib/tools/python3/src/Include/cpython/import.h
index c80856847c..c1b47121f1 100644
--- a/contrib/tools/python3/src/Include/cpython/import.h
+++ b/contrib/tools/python3/src/Include/cpython/import.h
@@ -1,50 +1,50 @@
-#ifndef Py_CPYTHON_IMPORT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyMODINIT_FUNC PyInit__imp(void);
-
-PyAPI_FUNC(int) _PyImport_IsInitialized(PyInterpreterState *);
-
-PyAPI_FUNC(PyObject *) _PyImport_GetModuleId(struct _Py_Identifier *name);
-PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module);
-PyAPI_FUNC(int) _PyImport_SetModuleString(const char *name, PyObject* module);
-
-PyAPI_FUNC(void) _PyImport_AcquireLock(void);
-PyAPI_FUNC(int) _PyImport_ReleaseLock(void);
-
-PyAPI_FUNC(PyObject *) _PyImport_FindExtensionObject(PyObject *, PyObject *);
-
-PyAPI_FUNC(int) _PyImport_FixupBuiltin(
- PyObject *mod,
- const char *name, /* UTF-8 encoded string */
- PyObject *modules
- );
-PyAPI_FUNC(int) _PyImport_FixupExtensionObject(PyObject*, PyObject *,
- PyObject *, PyObject *);
-
-struct _inittab {
- const char *name; /* ASCII encoded string */
- PyObject* (*initfunc)(void);
-};
-PyAPI_DATA(struct _inittab *) PyImport_Inittab;
-PyAPI_FUNC(int) PyImport_ExtendInittab(struct _inittab *newtab);
-
-struct _frozen {
- const char *name; /* ASCII encoded string */
- const unsigned char *code;
- int size;
-};
-
-/* Embedding apps may change this pointer to point to their favorite
- collection of frozen modules: */
-
-PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules;
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_IMPORT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyMODINIT_FUNC PyInit__imp(void);
+
+PyAPI_FUNC(int) _PyImport_IsInitialized(PyInterpreterState *);
+
+PyAPI_FUNC(PyObject *) _PyImport_GetModuleId(struct _Py_Identifier *name);
+PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module);
+PyAPI_FUNC(int) _PyImport_SetModuleString(const char *name, PyObject* module);
+
+PyAPI_FUNC(void) _PyImport_AcquireLock(void);
+PyAPI_FUNC(int) _PyImport_ReleaseLock(void);
+
+PyAPI_FUNC(PyObject *) _PyImport_FindExtensionObject(PyObject *, PyObject *);
+
+PyAPI_FUNC(int) _PyImport_FixupBuiltin(
+ PyObject *mod,
+ const char *name, /* UTF-8 encoded string */
+ PyObject *modules
+ );
+PyAPI_FUNC(int) _PyImport_FixupExtensionObject(PyObject*, PyObject *,
+ PyObject *, PyObject *);
+
+struct _inittab {
+ const char *name; /* ASCII encoded string */
+ PyObject* (*initfunc)(void);
+};
+PyAPI_DATA(struct _inittab *) PyImport_Inittab;
+PyAPI_FUNC(int) PyImport_ExtendInittab(struct _inittab *newtab);
+
+struct _frozen {
+ const char *name; /* ASCII encoded string */
+ const unsigned char *code;
+ int size;
+};
+
+/* Embedding apps may change this pointer to point to their favorite
+ collection of frozen modules: */
+
+PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/initconfig.h b/contrib/tools/python3/src/Include/cpython/initconfig.h
index 5a4009f553..0a256d4b5b 100644
--- a/contrib/tools/python3/src/Include/cpython/initconfig.h
+++ b/contrib/tools/python3/src/Include/cpython/initconfig.h
@@ -1,462 +1,462 @@
-#ifndef Py_PYCORECONFIG_H
-#define Py_PYCORECONFIG_H
-#ifndef Py_LIMITED_API
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* --- PyStatus ----------------------------------------------- */
-
-typedef struct {
- enum {
- _PyStatus_TYPE_OK=0,
- _PyStatus_TYPE_ERROR=1,
- _PyStatus_TYPE_EXIT=2
- } _type;
- const char *func;
- const char *err_msg;
- int exitcode;
-} PyStatus;
-
-PyAPI_FUNC(PyStatus) PyStatus_Ok(void);
-PyAPI_FUNC(PyStatus) PyStatus_Error(const char *err_msg);
-PyAPI_FUNC(PyStatus) PyStatus_NoMemory(void);
-PyAPI_FUNC(PyStatus) PyStatus_Exit(int exitcode);
-PyAPI_FUNC(int) PyStatus_IsError(PyStatus err);
-PyAPI_FUNC(int) PyStatus_IsExit(PyStatus err);
-PyAPI_FUNC(int) PyStatus_Exception(PyStatus err);
-
-/* --- PyWideStringList ------------------------------------------------ */
-
-typedef struct {
- /* If length is greater than zero, items must be non-NULL
- and all items strings must be non-NULL */
- Py_ssize_t length;
- wchar_t **items;
-} PyWideStringList;
-
-PyAPI_FUNC(PyStatus) PyWideStringList_Append(PyWideStringList *list,
- const wchar_t *item);
-PyAPI_FUNC(PyStatus) PyWideStringList_Insert(PyWideStringList *list,
- Py_ssize_t index,
- const wchar_t *item);
-
-
-/* --- PyPreConfig ----------------------------------------------- */
-
-typedef struct {
- int _config_init; /* _PyConfigInitEnum value */
-
- /* Parse Py_PreInitializeFromBytesArgs() arguments?
- See PyConfig.parse_argv */
- int parse_argv;
-
- /* If greater than 0, enable isolated mode: sys.path contains
- neither the script's directory nor the user's site-packages directory.
-
- Set to 1 by the -I command line option. If set to -1 (default), inherit
- Py_IsolatedFlag value. */
- int isolated;
-
- /* If greater than 0: use environment variables.
- Set to 0 by -E command line option. If set to -1 (default), it is
- set to !Py_IgnoreEnvironmentFlag. */
- int use_environment;
-
- /* Set the LC_CTYPE locale to the user preferred locale? If equals to 0,
- set coerce_c_locale and coerce_c_locale_warn to 0. */
- int configure_locale;
-
- /* Coerce the LC_CTYPE locale if it's equal to "C"? (PEP 538)
-
- Set to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.
- Set to 2 if the user preferred LC_CTYPE locale is "C".
-
- If it is equal to 1, LC_CTYPE locale is read to decide if it should be
- coerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2
- if the LC_CTYPE locale must be coerced.
-
- Disable by default (set to 0). Set it to -1 to let Python decide if it
- should be enabled or not. */
- int coerce_c_locale;
-
- /* Emit a warning if the LC_CTYPE locale is coerced?
-
- Set to 1 by PYTHONCOERCECLOCALE=warn.
-
- Disable by default (set to 0). Set it to -1 to let Python decide if it
- should be enabled or not. */
- int coerce_c_locale_warn;
-
-#ifdef MS_WINDOWS
- /* If greater than 1, use the "mbcs" encoding instead of the UTF-8
- encoding for the filesystem encoding.
-
- Set to 1 if the PYTHONLEGACYWINDOWSFSENCODING environment variable is
- set to a non-empty string. If set to -1 (default), inherit
- Py_LegacyWindowsFSEncodingFlag value.
-
- See PEP 529 for more details. */
- int legacy_windows_fs_encoding;
-#endif
-
- /* Enable UTF-8 mode? (PEP 540)
-
- Disabled by default (equals to 0).
-
- Set to 1 by "-X utf8" and "-X utf8=1" command line options.
- Set to 1 by PYTHONUTF8=1 environment variable.
-
- Set to 0 by "-X utf8=0" and PYTHONUTF8=0.
-
- If equals to -1, it is set to 1 if the LC_CTYPE locale is "C" or
- "POSIX", otherwise it is set to 0. Inherit Py_UTF8Mode value value. */
- int utf8_mode;
-
- /* If non-zero, enable the Python Development Mode.
-
- Set to 1 by the -X dev command line option. Set by the PYTHONDEVMODE
- environment variable. */
- int dev_mode;
-
- /* Memory allocator: PYTHONMALLOC env var.
- See PyMemAllocatorName for valid values. */
- int allocator;
-} PyPreConfig;
-
-PyAPI_FUNC(void) PyPreConfig_InitPythonConfig(PyPreConfig *config);
-PyAPI_FUNC(void) PyPreConfig_InitIsolatedConfig(PyPreConfig *config);
-
-
-/* --- PyConfig ---------------------------------------------- */
-
-typedef struct {
- int _config_init; /* _PyConfigInitEnum value */
-
- int isolated; /* Isolated mode? see PyPreConfig.isolated */
- int use_environment; /* Use environment variables? see PyPreConfig.use_environment */
- int dev_mode; /* Python Development Mode? See PyPreConfig.dev_mode */
-
- /* Install signal handlers? Yes by default. */
- int install_signal_handlers;
-
- int use_hash_seed; /* PYTHONHASHSEED=x */
- unsigned long hash_seed;
-
- /* Enable faulthandler?
- Set to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset. */
- int faulthandler;
-
- /* Enable PEG parser?
- 1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER */
- int _use_peg_parser;
-
- /* Enable tracemalloc?
- Set by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset */
- int tracemalloc;
-
- int import_time; /* PYTHONPROFILEIMPORTTIME, -X importtime */
- int show_ref_count; /* -X showrefcount */
- int dump_refs; /* PYTHONDUMPREFS */
- int malloc_stats; /* PYTHONMALLOCSTATS */
-
- /* Python filesystem encoding and error handler:
- sys.getfilesystemencoding() and sys.getfilesystemencodeerrors().
-
- Default encoding and error handler:
-
- * if Py_SetStandardStreamEncoding() has been called: they have the
- highest priority;
- * PYTHONIOENCODING environment variable;
- * The UTF-8 Mode uses UTF-8/surrogateescape;
- * If Python forces the usage of the ASCII encoding (ex: C locale
- or POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;
- * locale encoding: ANSI code page on Windows, UTF-8 on Android and
- VxWorks, LC_CTYPE locale encoding on other platforms;
- * On Windows, "surrogateescape" error handler;
- * "surrogateescape" error handler if the LC_CTYPE locale is "C" or "POSIX";
- * "surrogateescape" error handler if the LC_CTYPE locale has been coerced
- (PEP 538);
- * "strict" error handler.
-
- Supported error handlers: "strict", "surrogateescape" and
- "surrogatepass". The surrogatepass error handler is only supported
- if Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;
- it's only used on Windows.
-
- initfsencoding() updates the encoding to the Python codec name.
- For example, "ANSI_X3.4-1968" is replaced with "ascii".
-
- On Windows, sys._enablelegacywindowsfsencoding() sets the
- encoding/errors to mbcs/replace at runtime.
-
-
- See Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors.
- */
- wchar_t *filesystem_encoding;
- wchar_t *filesystem_errors;
-
- wchar_t *pycache_prefix; /* PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH */
- int parse_argv; /* Parse argv command line arguments? */
-
- /* Command line arguments (sys.argv).
-
- Set parse_argv to 1 to parse argv as Python command line arguments
- and then strip Python arguments from argv.
-
- If argv is empty, an empty string is added to ensure that sys.argv
- always exists and is never empty. */
- PyWideStringList argv;
-
- /* Program name:
-
- - If Py_SetProgramName() was called, use its value.
- - On macOS, use PYTHONEXECUTABLE environment variable if set.
- - If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__
- environment variable is set.
- - Use argv[0] if available and non-empty.
- - Use "python" on Windows, or "python3 on other platforms. */
- wchar_t *program_name;
-
- PyWideStringList xoptions; /* Command line -X options */
-
- /* Warnings options: lowest to highest priority. warnings.filters
- is built in the reverse order (highest to lowest priority). */
- PyWideStringList warnoptions;
-
- /* If equal to zero, disable the import of the module site and the
- site-dependent manipulations of sys.path that it entails. Also disable
- these manipulations if site is explicitly imported later (call
- site.main() if you want them to be triggered).
-
- Set to 0 by the -S command line option. If set to -1 (default), it is
- set to !Py_NoSiteFlag. */
- int site_import;
-
- /* Bytes warnings:
-
- * If equal to 1, issue a warning when comparing bytes or bytearray with
- str or bytes with int.
- * If equal or greater to 2, issue an error.
-
- Incremented by the -b command line option. If set to -1 (default), inherit
- Py_BytesWarningFlag value. */
- int bytes_warning;
-
- /* If greater than 0, enable inspect: when a script is passed as first
- argument or the -c option is used, enter interactive mode after
- executing the script or the command, even when sys.stdin does not appear
- to be a terminal.
-
- Incremented by the -i command line option. Set to 1 if the PYTHONINSPECT
- environment variable is non-empty. If set to -1 (default), inherit
- Py_InspectFlag value. */
- int inspect;
-
- /* If greater than 0: enable the interactive mode (REPL).
-
- Incremented by the -i command line option. If set to -1 (default),
- inherit Py_InteractiveFlag value. */
- int interactive;
-
- /* Optimization level.
-
- Incremented by the -O command line option. Set by the PYTHONOPTIMIZE
- environment variable. If set to -1 (default), inherit Py_OptimizeFlag
- value. */
- int optimization_level;
-
- /* If greater than 0, enable the debug mode: turn on parser debugging
- output (for expert only, depending on compilation options).
-
- Incremented by the -d command line option. Set by the PYTHONDEBUG
- environment variable. If set to -1 (default), inherit Py_DebugFlag
- value. */
- int parser_debug;
-
- /* If equal to 0, Python won't try to write ``.pyc`` files on the
- import of source modules.
-
- Set to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE
- environment variable. If set to -1 (default), it is set to
- !Py_DontWriteBytecodeFlag. */
- int write_bytecode;
-
- /* If greater than 0, enable the verbose mode: print a message each time a
- module is initialized, showing the place (filename or built-in module)
- from which it is loaded.
-
- If greater or equal to 2, print a message for each file that is checked
- for when searching for a module. Also provides information on module
- cleanup at exit.
-
- Incremented by the -v option. Set by the PYTHONVERBOSE environment
- variable. If set to -1 (default), inherit Py_VerboseFlag value. */
- int verbose;
-
- /* If greater than 0, enable the quiet mode: Don't display the copyright
- and version messages even in interactive mode.
-
- Incremented by the -q option. If set to -1 (default), inherit
- Py_QuietFlag value. */
- int quiet;
-
- /* If greater than 0, don't add the user site-packages directory to
- sys.path.
-
- Set to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE
- environment variable. If set to -1 (default), it is set to
- !Py_NoUserSiteDirectory. */
- int user_site_directory;
-
- /* If non-zero, configure C standard steams (stdio, stdout,
- stderr):
-
- - Set O_BINARY mode on Windows.
- - If buffered_stdio is equal to zero, make streams unbuffered.
- Otherwise, enable streams buffering if interactive is non-zero. */
- int configure_c_stdio;
-
- /* If equal to 0, enable unbuffered mode: force the stdout and stderr
- streams to be unbuffered.
-
- Set to 0 by the -u option. Set by the PYTHONUNBUFFERED environment
- variable.
- If set to -1 (default), it is set to !Py_UnbufferedStdioFlag. */
- int buffered_stdio;
-
- /* Encoding of sys.stdin, sys.stdout and sys.stderr.
- Value set from PYTHONIOENCODING environment variable and
- Py_SetStandardStreamEncoding() function.
- See also 'stdio_errors' attribute. */
- wchar_t *stdio_encoding;
-
- /* Error handler of sys.stdin and sys.stdout.
- Value set from PYTHONIOENCODING environment variable and
- Py_SetStandardStreamEncoding() function.
- See also 'stdio_encoding' attribute. */
- wchar_t *stdio_errors;
-
-#ifdef MS_WINDOWS
- /* If greater than zero, use io.FileIO instead of WindowsConsoleIO for sys
- standard streams.
-
- Set to 1 if the PYTHONLEGACYWINDOWSSTDIO environment variable is set to
- a non-empty string. If set to -1 (default), inherit
- Py_LegacyWindowsStdioFlag value.
-
- See PEP 528 for more details. */
- int legacy_windows_stdio;
-#endif
-
- /* Value of the --check-hash-based-pycs command line option:
-
- - "default" means the 'check_source' flag in hash-based pycs
- determines invalidation
- - "always" causes the interpreter to hash the source file for
- invalidation regardless of value of 'check_source' bit
- - "never" causes the interpreter to always assume hash-based pycs are
- valid
-
- The default value is "default".
-
- See PEP 552 "Deterministic pycs" for more details. */
- wchar_t *check_hash_pycs_mode;
-
- /* --- Path configuration inputs ------------ */
-
- /* If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.
- The parameter has no effect on Windows.
-
- If set to -1 (default), inherit !Py_FrozenFlag value. */
- int pathconfig_warnings;
-
- wchar_t *pythonpath_env; /* PYTHONPATH environment variable */
- wchar_t *home; /* PYTHONHOME environment variable,
- see also Py_SetPythonHome(). */
-
- /* --- Path configuration outputs ----------- */
-
- int module_search_paths_set; /* If non-zero, use module_search_paths */
- PyWideStringList module_search_paths; /* sys.path paths. Computed if
- module_search_paths_set is equal
- to zero. */
-
- wchar_t *executable; /* sys.executable */
- wchar_t *base_executable; /* sys._base_executable */
- wchar_t *prefix; /* sys.prefix */
- wchar_t *base_prefix; /* sys.base_prefix */
- wchar_t *exec_prefix; /* sys.exec_prefix */
- wchar_t *base_exec_prefix; /* sys.base_exec_prefix */
- wchar_t *platlibdir; /* sys.platlibdir */
-
- /* --- Parameter only used by Py_Main() ---------- */
-
- /* Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of
- "#!cmd". This is intended for a DOS specific hack only.
-
- Set by the -x command line option. */
- int skip_source_first_line;
-
- wchar_t *run_command; /* -c command line argument */
- wchar_t *run_module; /* -m command line argument */
- wchar_t *run_filename; /* Trailing command line argument without -c or -m */
-
- /* --- Private fields ---------------------------- */
-
- /* Install importlib? If set to 0, importlib is not initialized at all.
- Needed by freeze_importlib. */
- int _install_importlib;
-
- /* If equal to 0, stop Python initialization before the "main" phase */
- int _init_main;
-
- /* If non-zero, disallow threads, subprocesses, and fork.
- Default: 0. */
- int _isolated_interpreter;
-
- /* Original command line arguments. If _orig_argv is empty and _argv is
- not equal to [''], PyConfig_Read() copies the configuration 'argv' list
- into '_orig_argv' list before modifying 'argv' list (if parse_argv
- is non-zero).
-
- _PyConfig_Write() initializes Py_GetArgcArgv() to this list. */
- PyWideStringList _orig_argv;
-} PyConfig;
-
-PyAPI_FUNC(void) PyConfig_InitPythonConfig(PyConfig *config);
-PyAPI_FUNC(void) PyConfig_InitIsolatedConfig(PyConfig *config);
-PyAPI_FUNC(void) PyConfig_Clear(PyConfig *);
-PyAPI_FUNC(PyStatus) PyConfig_SetString(
- PyConfig *config,
- wchar_t **config_str,
- const wchar_t *str);
-PyAPI_FUNC(PyStatus) PyConfig_SetBytesString(
- PyConfig *config,
- wchar_t **config_str,
- const char *str);
-PyAPI_FUNC(PyStatus) PyConfig_Read(PyConfig *config);
-PyAPI_FUNC(PyStatus) PyConfig_SetBytesArgv(
- PyConfig *config,
- Py_ssize_t argc,
- char * const *argv);
-PyAPI_FUNC(PyStatus) PyConfig_SetArgv(PyConfig *config,
- Py_ssize_t argc,
- wchar_t * const *argv);
-PyAPI_FUNC(PyStatus) PyConfig_SetWideStringList(PyConfig *config,
- PyWideStringList *list,
- Py_ssize_t length, wchar_t **items);
-
-
-/* --- Helper functions --------------------------------------- */
-
-/* Get the original command line arguments, before Python modified them.
-
- See also PyConfig._orig_argv. */
-PyAPI_FUNC(void) Py_GetArgcArgv(int *argc, wchar_t ***argv);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_LIMITED_API */
-#endif /* !Py_PYCORECONFIG_H */
+#ifndef Py_PYCORECONFIG_H
+#define Py_PYCORECONFIG_H
+#ifndef Py_LIMITED_API
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* --- PyStatus ----------------------------------------------- */
+
+typedef struct {
+ enum {
+ _PyStatus_TYPE_OK=0,
+ _PyStatus_TYPE_ERROR=1,
+ _PyStatus_TYPE_EXIT=2
+ } _type;
+ const char *func;
+ const char *err_msg;
+ int exitcode;
+} PyStatus;
+
+PyAPI_FUNC(PyStatus) PyStatus_Ok(void);
+PyAPI_FUNC(PyStatus) PyStatus_Error(const char *err_msg);
+PyAPI_FUNC(PyStatus) PyStatus_NoMemory(void);
+PyAPI_FUNC(PyStatus) PyStatus_Exit(int exitcode);
+PyAPI_FUNC(int) PyStatus_IsError(PyStatus err);
+PyAPI_FUNC(int) PyStatus_IsExit(PyStatus err);
+PyAPI_FUNC(int) PyStatus_Exception(PyStatus err);
+
+/* --- PyWideStringList ------------------------------------------------ */
+
+typedef struct {
+ /* If length is greater than zero, items must be non-NULL
+ and all items strings must be non-NULL */
+ Py_ssize_t length;
+ wchar_t **items;
+} PyWideStringList;
+
+PyAPI_FUNC(PyStatus) PyWideStringList_Append(PyWideStringList *list,
+ const wchar_t *item);
+PyAPI_FUNC(PyStatus) PyWideStringList_Insert(PyWideStringList *list,
+ Py_ssize_t index,
+ const wchar_t *item);
+
+
+/* --- PyPreConfig ----------------------------------------------- */
+
+typedef struct {
+ int _config_init; /* _PyConfigInitEnum value */
+
+ /* Parse Py_PreInitializeFromBytesArgs() arguments?
+ See PyConfig.parse_argv */
+ int parse_argv;
+
+ /* If greater than 0, enable isolated mode: sys.path contains
+ neither the script's directory nor the user's site-packages directory.
+
+ Set to 1 by the -I command line option. If set to -1 (default), inherit
+ Py_IsolatedFlag value. */
+ int isolated;
+
+ /* If greater than 0: use environment variables.
+ Set to 0 by -E command line option. If set to -1 (default), it is
+ set to !Py_IgnoreEnvironmentFlag. */
+ int use_environment;
+
+ /* Set the LC_CTYPE locale to the user preferred locale? If equals to 0,
+ set coerce_c_locale and coerce_c_locale_warn to 0. */
+ int configure_locale;
+
+ /* Coerce the LC_CTYPE locale if it's equal to "C"? (PEP 538)
+
+ Set to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.
+ Set to 2 if the user preferred LC_CTYPE locale is "C".
+
+ If it is equal to 1, LC_CTYPE locale is read to decide if it should be
+ coerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2
+ if the LC_CTYPE locale must be coerced.
+
+ Disable by default (set to 0). Set it to -1 to let Python decide if it
+ should be enabled or not. */
+ int coerce_c_locale;
+
+ /* Emit a warning if the LC_CTYPE locale is coerced?
+
+ Set to 1 by PYTHONCOERCECLOCALE=warn.
+
+ Disable by default (set to 0). Set it to -1 to let Python decide if it
+ should be enabled or not. */
+ int coerce_c_locale_warn;
+
+#ifdef MS_WINDOWS
+ /* If greater than 1, use the "mbcs" encoding instead of the UTF-8
+ encoding for the filesystem encoding.
+
+ Set to 1 if the PYTHONLEGACYWINDOWSFSENCODING environment variable is
+ set to a non-empty string. If set to -1 (default), inherit
+ Py_LegacyWindowsFSEncodingFlag value.
+
+ See PEP 529 for more details. */
+ int legacy_windows_fs_encoding;
+#endif
+
+ /* Enable UTF-8 mode? (PEP 540)
+
+ Disabled by default (equals to 0).
+
+ Set to 1 by "-X utf8" and "-X utf8=1" command line options.
+ Set to 1 by PYTHONUTF8=1 environment variable.
+
+ Set to 0 by "-X utf8=0" and PYTHONUTF8=0.
+
+ If equals to -1, it is set to 1 if the LC_CTYPE locale is "C" or
+ "POSIX", otherwise it is set to 0. Inherit Py_UTF8Mode value value. */
+ int utf8_mode;
+
+ /* If non-zero, enable the Python Development Mode.
+
+ Set to 1 by the -X dev command line option. Set by the PYTHONDEVMODE
+ environment variable. */
+ int dev_mode;
+
+ /* Memory allocator: PYTHONMALLOC env var.
+ See PyMemAllocatorName for valid values. */
+ int allocator;
+} PyPreConfig;
+
+PyAPI_FUNC(void) PyPreConfig_InitPythonConfig(PyPreConfig *config);
+PyAPI_FUNC(void) PyPreConfig_InitIsolatedConfig(PyPreConfig *config);
+
+
+/* --- PyConfig ---------------------------------------------- */
+
+typedef struct {
+ int _config_init; /* _PyConfigInitEnum value */
+
+ int isolated; /* Isolated mode? see PyPreConfig.isolated */
+ int use_environment; /* Use environment variables? see PyPreConfig.use_environment */
+ int dev_mode; /* Python Development Mode? See PyPreConfig.dev_mode */
+
+ /* Install signal handlers? Yes by default. */
+ int install_signal_handlers;
+
+ int use_hash_seed; /* PYTHONHASHSEED=x */
+ unsigned long hash_seed;
+
+ /* Enable faulthandler?
+ Set to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset. */
+ int faulthandler;
+
+ /* Enable PEG parser?
+ 1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER */
+ int _use_peg_parser;
+
+ /* Enable tracemalloc?
+ Set by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset */
+ int tracemalloc;
+
+ int import_time; /* PYTHONPROFILEIMPORTTIME, -X importtime */
+ int show_ref_count; /* -X showrefcount */
+ int dump_refs; /* PYTHONDUMPREFS */
+ int malloc_stats; /* PYTHONMALLOCSTATS */
+
+ /* Python filesystem encoding and error handler:
+ sys.getfilesystemencoding() and sys.getfilesystemencodeerrors().
+
+ Default encoding and error handler:
+
+ * if Py_SetStandardStreamEncoding() has been called: they have the
+ highest priority;
+ * PYTHONIOENCODING environment variable;
+ * The UTF-8 Mode uses UTF-8/surrogateescape;
+ * If Python forces the usage of the ASCII encoding (ex: C locale
+ or POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;
+ * locale encoding: ANSI code page on Windows, UTF-8 on Android and
+ VxWorks, LC_CTYPE locale encoding on other platforms;
+ * On Windows, "surrogateescape" error handler;
+ * "surrogateescape" error handler if the LC_CTYPE locale is "C" or "POSIX";
+ * "surrogateescape" error handler if the LC_CTYPE locale has been coerced
+ (PEP 538);
+ * "strict" error handler.
+
+ Supported error handlers: "strict", "surrogateescape" and
+ "surrogatepass". The surrogatepass error handler is only supported
+ if Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;
+ it's only used on Windows.
+
+ initfsencoding() updates the encoding to the Python codec name.
+ For example, "ANSI_X3.4-1968" is replaced with "ascii".
+
+ On Windows, sys._enablelegacywindowsfsencoding() sets the
+ encoding/errors to mbcs/replace at runtime.
+
+
+ See Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors.
+ */
+ wchar_t *filesystem_encoding;
+ wchar_t *filesystem_errors;
+
+ wchar_t *pycache_prefix; /* PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH */
+ int parse_argv; /* Parse argv command line arguments? */
+
+ /* Command line arguments (sys.argv).
+
+ Set parse_argv to 1 to parse argv as Python command line arguments
+ and then strip Python arguments from argv.
+
+ If argv is empty, an empty string is added to ensure that sys.argv
+ always exists and is never empty. */
+ PyWideStringList argv;
+
+ /* Program name:
+
+ - If Py_SetProgramName() was called, use its value.
+ - On macOS, use PYTHONEXECUTABLE environment variable if set.
+ - If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__
+ environment variable is set.
+ - Use argv[0] if available and non-empty.
+ - Use "python" on Windows, or "python3 on other platforms. */
+ wchar_t *program_name;
+
+ PyWideStringList xoptions; /* Command line -X options */
+
+ /* Warnings options: lowest to highest priority. warnings.filters
+ is built in the reverse order (highest to lowest priority). */
+ PyWideStringList warnoptions;
+
+ /* If equal to zero, disable the import of the module site and the
+ site-dependent manipulations of sys.path that it entails. Also disable
+ these manipulations if site is explicitly imported later (call
+ site.main() if you want them to be triggered).
+
+ Set to 0 by the -S command line option. If set to -1 (default), it is
+ set to !Py_NoSiteFlag. */
+ int site_import;
+
+ /* Bytes warnings:
+
+ * If equal to 1, issue a warning when comparing bytes or bytearray with
+ str or bytes with int.
+ * If equal or greater to 2, issue an error.
+
+ Incremented by the -b command line option. If set to -1 (default), inherit
+ Py_BytesWarningFlag value. */
+ int bytes_warning;
+
+ /* If greater than 0, enable inspect: when a script is passed as first
+ argument or the -c option is used, enter interactive mode after
+ executing the script or the command, even when sys.stdin does not appear
+ to be a terminal.
+
+ Incremented by the -i command line option. Set to 1 if the PYTHONINSPECT
+ environment variable is non-empty. If set to -1 (default), inherit
+ Py_InspectFlag value. */
+ int inspect;
+
+ /* If greater than 0: enable the interactive mode (REPL).
+
+ Incremented by the -i command line option. If set to -1 (default),
+ inherit Py_InteractiveFlag value. */
+ int interactive;
+
+ /* Optimization level.
+
+ Incremented by the -O command line option. Set by the PYTHONOPTIMIZE
+ environment variable. If set to -1 (default), inherit Py_OptimizeFlag
+ value. */
+ int optimization_level;
+
+ /* If greater than 0, enable the debug mode: turn on parser debugging
+ output (for expert only, depending on compilation options).
+
+ Incremented by the -d command line option. Set by the PYTHONDEBUG
+ environment variable. If set to -1 (default), inherit Py_DebugFlag
+ value. */
+ int parser_debug;
+
+ /* If equal to 0, Python won't try to write ``.pyc`` files on the
+ import of source modules.
+
+ Set to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE
+ environment variable. If set to -1 (default), it is set to
+ !Py_DontWriteBytecodeFlag. */
+ int write_bytecode;
+
+ /* If greater than 0, enable the verbose mode: print a message each time a
+ module is initialized, showing the place (filename or built-in module)
+ from which it is loaded.
+
+ If greater or equal to 2, print a message for each file that is checked
+ for when searching for a module. Also provides information on module
+ cleanup at exit.
+
+ Incremented by the -v option. Set by the PYTHONVERBOSE environment
+ variable. If set to -1 (default), inherit Py_VerboseFlag value. */
+ int verbose;
+
+ /* If greater than 0, enable the quiet mode: Don't display the copyright
+ and version messages even in interactive mode.
+
+ Incremented by the -q option. If set to -1 (default), inherit
+ Py_QuietFlag value. */
+ int quiet;
+
+ /* If greater than 0, don't add the user site-packages directory to
+ sys.path.
+
+ Set to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE
+ environment variable. If set to -1 (default), it is set to
+ !Py_NoUserSiteDirectory. */
+ int user_site_directory;
+
+ /* If non-zero, configure C standard steams (stdio, stdout,
+ stderr):
+
+ - Set O_BINARY mode on Windows.
+ - If buffered_stdio is equal to zero, make streams unbuffered.
+ Otherwise, enable streams buffering if interactive is non-zero. */
+ int configure_c_stdio;
+
+ /* If equal to 0, enable unbuffered mode: force the stdout and stderr
+ streams to be unbuffered.
+
+ Set to 0 by the -u option. Set by the PYTHONUNBUFFERED environment
+ variable.
+ If set to -1 (default), it is set to !Py_UnbufferedStdioFlag. */
+ int buffered_stdio;
+
+ /* Encoding of sys.stdin, sys.stdout and sys.stderr.
+ Value set from PYTHONIOENCODING environment variable and
+ Py_SetStandardStreamEncoding() function.
+ See also 'stdio_errors' attribute. */
+ wchar_t *stdio_encoding;
+
+ /* Error handler of sys.stdin and sys.stdout.
+ Value set from PYTHONIOENCODING environment variable and
+ Py_SetStandardStreamEncoding() function.
+ See also 'stdio_encoding' attribute. */
+ wchar_t *stdio_errors;
+
+#ifdef MS_WINDOWS
+ /* If greater than zero, use io.FileIO instead of WindowsConsoleIO for sys
+ standard streams.
+
+ Set to 1 if the PYTHONLEGACYWINDOWSSTDIO environment variable is set to
+ a non-empty string. If set to -1 (default), inherit
+ Py_LegacyWindowsStdioFlag value.
+
+ See PEP 528 for more details. */
+ int legacy_windows_stdio;
+#endif
+
+ /* Value of the --check-hash-based-pycs command line option:
+
+ - "default" means the 'check_source' flag in hash-based pycs
+ determines invalidation
+ - "always" causes the interpreter to hash the source file for
+ invalidation regardless of value of 'check_source' bit
+ - "never" causes the interpreter to always assume hash-based pycs are
+ valid
+
+ The default value is "default".
+
+ See PEP 552 "Deterministic pycs" for more details. */
+ wchar_t *check_hash_pycs_mode;
+
+ /* --- Path configuration inputs ------------ */
+
+ /* If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.
+ The parameter has no effect on Windows.
+
+ If set to -1 (default), inherit !Py_FrozenFlag value. */
+ int pathconfig_warnings;
+
+ wchar_t *pythonpath_env; /* PYTHONPATH environment variable */
+ wchar_t *home; /* PYTHONHOME environment variable,
+ see also Py_SetPythonHome(). */
+
+ /* --- Path configuration outputs ----------- */
+
+ int module_search_paths_set; /* If non-zero, use module_search_paths */
+ PyWideStringList module_search_paths; /* sys.path paths. Computed if
+ module_search_paths_set is equal
+ to zero. */
+
+ wchar_t *executable; /* sys.executable */
+ wchar_t *base_executable; /* sys._base_executable */
+ wchar_t *prefix; /* sys.prefix */
+ wchar_t *base_prefix; /* sys.base_prefix */
+ wchar_t *exec_prefix; /* sys.exec_prefix */
+ wchar_t *base_exec_prefix; /* sys.base_exec_prefix */
+ wchar_t *platlibdir; /* sys.platlibdir */
+
+ /* --- Parameter only used by Py_Main() ---------- */
+
+ /* Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of
+ "#!cmd". This is intended for a DOS specific hack only.
+
+ Set by the -x command line option. */
+ int skip_source_first_line;
+
+ wchar_t *run_command; /* -c command line argument */
+ wchar_t *run_module; /* -m command line argument */
+ wchar_t *run_filename; /* Trailing command line argument without -c or -m */
+
+ /* --- Private fields ---------------------------- */
+
+ /* Install importlib? If set to 0, importlib is not initialized at all.
+ Needed by freeze_importlib. */
+ int _install_importlib;
+
+ /* If equal to 0, stop Python initialization before the "main" phase */
+ int _init_main;
+
+ /* If non-zero, disallow threads, subprocesses, and fork.
+ Default: 0. */
+ int _isolated_interpreter;
+
+ /* Original command line arguments. If _orig_argv is empty and _argv is
+ not equal to [''], PyConfig_Read() copies the configuration 'argv' list
+ into '_orig_argv' list before modifying 'argv' list (if parse_argv
+ is non-zero).
+
+ _PyConfig_Write() initializes Py_GetArgcArgv() to this list. */
+ PyWideStringList _orig_argv;
+} PyConfig;
+
+PyAPI_FUNC(void) PyConfig_InitPythonConfig(PyConfig *config);
+PyAPI_FUNC(void) PyConfig_InitIsolatedConfig(PyConfig *config);
+PyAPI_FUNC(void) PyConfig_Clear(PyConfig *);
+PyAPI_FUNC(PyStatus) PyConfig_SetString(
+ PyConfig *config,
+ wchar_t **config_str,
+ const wchar_t *str);
+PyAPI_FUNC(PyStatus) PyConfig_SetBytesString(
+ PyConfig *config,
+ wchar_t **config_str,
+ const char *str);
+PyAPI_FUNC(PyStatus) PyConfig_Read(PyConfig *config);
+PyAPI_FUNC(PyStatus) PyConfig_SetBytesArgv(
+ PyConfig *config,
+ Py_ssize_t argc,
+ char * const *argv);
+PyAPI_FUNC(PyStatus) PyConfig_SetArgv(PyConfig *config,
+ Py_ssize_t argc,
+ wchar_t * const *argv);
+PyAPI_FUNC(PyStatus) PyConfig_SetWideStringList(PyConfig *config,
+ PyWideStringList *list,
+ Py_ssize_t length, wchar_t **items);
+
+
+/* --- Helper functions --------------------------------------- */
+
+/* Get the original command line arguments, before Python modified them.
+
+ See also PyConfig._orig_argv. */
+PyAPI_FUNC(void) Py_GetArgcArgv(int *argc, wchar_t ***argv);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_LIMITED_API */
+#endif /* !Py_PYCORECONFIG_H */
diff --git a/contrib/tools/python3/src/Include/cpython/interpreteridobject.h b/contrib/tools/python3/src/Include/cpython/interpreteridobject.h
index a92a6545e4..67ec587354 100644
--- a/contrib/tools/python3/src/Include/cpython/interpreteridobject.h
+++ b/contrib/tools/python3/src/Include/cpython/interpreteridobject.h
@@ -1,19 +1,19 @@
-#ifndef Py_CPYTHON_INTERPRETERIDOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Interpreter ID Object */
-
-PyAPI_DATA(PyTypeObject) _PyInterpreterID_Type;
-
-PyAPI_FUNC(PyObject *) _PyInterpreterID_New(int64_t);
-PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *);
-PyAPI_FUNC(PyInterpreterState *) _PyInterpreterID_LookUp(PyObject *);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_INTERPRETERIDOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Interpreter ID Object */
+
+PyAPI_DATA(PyTypeObject) _PyInterpreterID_Type;
+
+PyAPI_FUNC(PyObject *) _PyInterpreterID_New(int64_t);
+PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *);
+PyAPI_FUNC(PyInterpreterState *) _PyInterpreterID_LookUp(PyObject *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/listobject.h b/contrib/tools/python3/src/Include/cpython/listobject.h
index b405b140a5..74fe3301a7 100644
--- a/contrib/tools/python3/src/Include/cpython/listobject.h
+++ b/contrib/tools/python3/src/Include/cpython/listobject.h
@@ -1,43 +1,43 @@
-#ifndef Py_CPYTHON_LISTOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- PyObject_VAR_HEAD
- /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */
- PyObject **ob_item;
-
- /* ob_item contains space for 'allocated' elements. The number
- * currently in use is ob_size.
- * Invariants:
- * 0 <= ob_size <= allocated
- * len(list) == ob_size
- * ob_item == NULL implies ob_size == allocated == 0
- * list.sort() temporarily sets allocated to -1 to detect mutations.
- *
- * Items must normally not be NULL, except during construction when
- * the list is not yet visible outside the function that builds it.
- */
- Py_ssize_t allocated;
-} PyListObject;
-
-PyAPI_FUNC(PyObject *) _PyList_Extend(PyListObject *, PyObject *);
-PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out);
-
-/* Macro, trading safety for speed */
-
-/* Cast argument to PyTupleObject* type. */
-#define _PyList_CAST(op) (assert(PyList_Check(op)), (PyListObject *)(op))
-
-#define PyList_GET_ITEM(op, i) (_PyList_CAST(op)->ob_item[i])
-#define PyList_SET_ITEM(op, i, v) (_PyList_CAST(op)->ob_item[i] = (v))
-#define PyList_GET_SIZE(op) Py_SIZE(_PyList_CAST(op))
-#define _PyList_ITEMS(op) (_PyList_CAST(op)->ob_item)
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_LISTOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ PyObject_VAR_HEAD
+ /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */
+ PyObject **ob_item;
+
+ /* ob_item contains space for 'allocated' elements. The number
+ * currently in use is ob_size.
+ * Invariants:
+ * 0 <= ob_size <= allocated
+ * len(list) == ob_size
+ * ob_item == NULL implies ob_size == allocated == 0
+ * list.sort() temporarily sets allocated to -1 to detect mutations.
+ *
+ * Items must normally not be NULL, except during construction when
+ * the list is not yet visible outside the function that builds it.
+ */
+ Py_ssize_t allocated;
+} PyListObject;
+
+PyAPI_FUNC(PyObject *) _PyList_Extend(PyListObject *, PyObject *);
+PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out);
+
+/* Macro, trading safety for speed */
+
+/* Cast argument to PyTupleObject* type. */
+#define _PyList_CAST(op) (assert(PyList_Check(op)), (PyListObject *)(op))
+
+#define PyList_GET_ITEM(op, i) (_PyList_CAST(op)->ob_item[i])
+#define PyList_SET_ITEM(op, i, v) (_PyList_CAST(op)->ob_item[i] = (v))
+#define PyList_GET_SIZE(op) Py_SIZE(_PyList_CAST(op))
+#define _PyList_ITEMS(op) (_PyList_CAST(op)->ob_item)
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/methodobject.h b/contrib/tools/python3/src/Include/cpython/methodobject.h
index f23dca0c6f..7ecbfe3b5e 100644
--- a/contrib/tools/python3/src/Include/cpython/methodobject.h
+++ b/contrib/tools/python3/src/Include/cpython/methodobject.h
@@ -1,35 +1,35 @@
-#ifndef Py_CPYTHON_METHODOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-PyAPI_DATA(PyTypeObject) PyCMethod_Type;
-
-#define PyCMethod_CheckExact(op) Py_IS_TYPE(op, &PyCMethod_Type)
-#define PyCMethod_Check(op) PyObject_TypeCheck(op, &PyCMethod_Type)
-
-/* Macros for direct access to these values. Type checks are *not*
- done, so use with care. */
-#define PyCFunction_GET_FUNCTION(func) \
- (((PyCFunctionObject *)func) -> m_ml -> ml_meth)
-#define PyCFunction_GET_SELF(func) \
- (((PyCFunctionObject *)func) -> m_ml -> ml_flags & METH_STATIC ? \
- NULL : ((PyCFunctionObject *)func) -> m_self)
-#define PyCFunction_GET_FLAGS(func) \
- (((PyCFunctionObject *)func) -> m_ml -> ml_flags)
-#define PyCFunction_GET_CLASS(func) \
- (((PyCFunctionObject *)func) -> m_ml -> ml_flags & METH_METHOD ? \
- ((PyCMethodObject *)func) -> mm_class : NULL)
-
-typedef struct {
- PyObject_HEAD
- PyMethodDef *m_ml; /* Description of the C function to call */
- PyObject *m_self; /* Passed as 'self' arg to the C func, can be NULL */
- PyObject *m_module; /* The __module__ attribute, can be anything */
- PyObject *m_weakreflist; /* List of weak references */
- vectorcallfunc vectorcall;
-} PyCFunctionObject;
-
-typedef struct {
- PyCFunctionObject func;
- PyTypeObject *mm_class; /* Class that defines this method */
-} PyCMethodObject;
+#ifndef Py_CPYTHON_METHODOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+PyAPI_DATA(PyTypeObject) PyCMethod_Type;
+
+#define PyCMethod_CheckExact(op) Py_IS_TYPE(op, &PyCMethod_Type)
+#define PyCMethod_Check(op) PyObject_TypeCheck(op, &PyCMethod_Type)
+
+/* Macros for direct access to these values. Type checks are *not*
+ done, so use with care. */
+#define PyCFunction_GET_FUNCTION(func) \
+ (((PyCFunctionObject *)func) -> m_ml -> ml_meth)
+#define PyCFunction_GET_SELF(func) \
+ (((PyCFunctionObject *)func) -> m_ml -> ml_flags & METH_STATIC ? \
+ NULL : ((PyCFunctionObject *)func) -> m_self)
+#define PyCFunction_GET_FLAGS(func) \
+ (((PyCFunctionObject *)func) -> m_ml -> ml_flags)
+#define PyCFunction_GET_CLASS(func) \
+ (((PyCFunctionObject *)func) -> m_ml -> ml_flags & METH_METHOD ? \
+ ((PyCMethodObject *)func) -> mm_class : NULL)
+
+typedef struct {
+ PyObject_HEAD
+ PyMethodDef *m_ml; /* Description of the C function to call */
+ PyObject *m_self; /* Passed as 'self' arg to the C func, can be NULL */
+ PyObject *m_module; /* The __module__ attribute, can be anything */
+ PyObject *m_weakreflist; /* List of weak references */
+ vectorcallfunc vectorcall;
+} PyCFunctionObject;
+
+typedef struct {
+ PyCFunctionObject func;
+ PyTypeObject *mm_class; /* Class that defines this method */
+} PyCMethodObject;
diff --git a/contrib/tools/python3/src/Include/cpython/object.h b/contrib/tools/python3/src/Include/cpython/object.h
index 6327414667..444f832f5b 100644
--- a/contrib/tools/python3/src/Include/cpython/object.h
+++ b/contrib/tools/python3/src/Include/cpython/object.h
@@ -1,554 +1,554 @@
-#ifndef Py_CPYTHON_OBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(void) _Py_NewReference(PyObject *op);
-
-#ifdef Py_TRACE_REFS
-/* Py_TRACE_REFS is such major surgery that we call external routines. */
-PyAPI_FUNC(void) _Py_ForgetReference(PyObject *);
-#endif
-
-/* Update the Python traceback of an object. This function must be called
- when a memory block is reused from a free list. */
-PyAPI_FUNC(int) _PyTraceMalloc_NewReference(PyObject *op);
-
-#ifdef Py_REF_DEBUG
-PyAPI_FUNC(Py_ssize_t) _Py_GetRefTotal(void);
-#endif
-
-
-/********************* String Literals ****************************************/
-/* This structure helps managing static strings. The basic usage goes like this:
- Instead of doing
-
- r = PyObject_CallMethod(o, "foo", "args", ...);
-
- do
-
- _Py_IDENTIFIER(foo);
- ...
- r = _PyObject_CallMethodId(o, &PyId_foo, "args", ...);
-
- PyId_foo is a static variable, either on block level or file level. On first
- usage, the string "foo" is interned, and the structures are linked. On interpreter
- shutdown, all strings are released.
-
- Alternatively, _Py_static_string allows choosing the variable name.
- _PyUnicode_FromId returns a borrowed reference to the interned string.
- _PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*.
-*/
-typedef struct _Py_Identifier {
- struct _Py_Identifier *next;
- const char* string;
- PyObject *object;
-} _Py_Identifier;
-
-#define _Py_static_string_init(value) { .next = NULL, .string = value, .object = NULL }
-#define _Py_static_string(varname, value) static _Py_Identifier varname = _Py_static_string_init(value)
-#define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname)
-
-/* buffer interface */
-typedef struct bufferinfo {
- void *buf;
- PyObject *obj; /* owned reference */
- Py_ssize_t len;
- Py_ssize_t itemsize; /* This is Py_ssize_t so it can be
- pointed to by strides in simple case.*/
- int readonly;
- int ndim;
- char *format;
- Py_ssize_t *shape;
- Py_ssize_t *strides;
- Py_ssize_t *suboffsets;
- void *internal;
-} Py_buffer;
-
-typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
-typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
-
-typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args,
- size_t nargsf, PyObject *kwnames);
-
-/* Maximum number of dimensions */
-#define PyBUF_MAX_NDIM 64
-
-/* Flags for getting buffers */
-#define PyBUF_SIMPLE 0
-#define PyBUF_WRITABLE 0x0001
-/* we used to include an E, backwards compatible alias */
-#define PyBUF_WRITEABLE PyBUF_WRITABLE
-#define PyBUF_FORMAT 0x0004
-#define PyBUF_ND 0x0008
-#define PyBUF_STRIDES (0x0010 | PyBUF_ND)
-#define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
-#define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
-#define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
-#define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
-
-#define PyBUF_CONTIG (PyBUF_ND | PyBUF_WRITABLE)
-#define PyBUF_CONTIG_RO (PyBUF_ND)
-
-#define PyBUF_STRIDED (PyBUF_STRIDES | PyBUF_WRITABLE)
-#define PyBUF_STRIDED_RO (PyBUF_STRIDES)
-
-#define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_WRITABLE | PyBUF_FORMAT)
-#define PyBUF_RECORDS_RO (PyBUF_STRIDES | PyBUF_FORMAT)
-
-#define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_WRITABLE | PyBUF_FORMAT)
-#define PyBUF_FULL_RO (PyBUF_INDIRECT | PyBUF_FORMAT)
-
-
-#define PyBUF_READ 0x100
-#define PyBUF_WRITE 0x200
-/* End buffer interface */
-
-
-typedef struct {
- /* Number implementations must check *both*
- arguments for proper type and implement the necessary conversions
- in the slot functions themselves. */
-
- binaryfunc nb_add;
- binaryfunc nb_subtract;
- binaryfunc nb_multiply;
- binaryfunc nb_remainder;
- binaryfunc nb_divmod;
- ternaryfunc nb_power;
- unaryfunc nb_negative;
- unaryfunc nb_positive;
- unaryfunc nb_absolute;
- inquiry nb_bool;
- unaryfunc nb_invert;
- binaryfunc nb_lshift;
- binaryfunc nb_rshift;
- binaryfunc nb_and;
- binaryfunc nb_xor;
- binaryfunc nb_or;
- unaryfunc nb_int;
- void *nb_reserved; /* the slot formerly known as nb_long */
- unaryfunc nb_float;
-
- binaryfunc nb_inplace_add;
- binaryfunc nb_inplace_subtract;
- binaryfunc nb_inplace_multiply;
- binaryfunc nb_inplace_remainder;
- ternaryfunc nb_inplace_power;
- binaryfunc nb_inplace_lshift;
- binaryfunc nb_inplace_rshift;
- binaryfunc nb_inplace_and;
- binaryfunc nb_inplace_xor;
- binaryfunc nb_inplace_or;
-
- binaryfunc nb_floor_divide;
- binaryfunc nb_true_divide;
- binaryfunc nb_inplace_floor_divide;
- binaryfunc nb_inplace_true_divide;
-
- unaryfunc nb_index;
-
- binaryfunc nb_matrix_multiply;
- binaryfunc nb_inplace_matrix_multiply;
-} PyNumberMethods;
-
-typedef struct {
- lenfunc sq_length;
- binaryfunc sq_concat;
- ssizeargfunc sq_repeat;
- ssizeargfunc sq_item;
- void *was_sq_slice;
- ssizeobjargproc sq_ass_item;
- void *was_sq_ass_slice;
- objobjproc sq_contains;
-
- binaryfunc sq_inplace_concat;
- ssizeargfunc sq_inplace_repeat;
-} PySequenceMethods;
-
-typedef struct {
- lenfunc mp_length;
- binaryfunc mp_subscript;
- objobjargproc mp_ass_subscript;
-} PyMappingMethods;
-
-typedef struct {
- unaryfunc am_await;
- unaryfunc am_aiter;
- unaryfunc am_anext;
-} PyAsyncMethods;
-
-typedef struct {
- getbufferproc bf_getbuffer;
- releasebufferproc bf_releasebuffer;
-} PyBufferProcs;
-
-/* Allow printfunc in the tp_vectorcall_offset slot for
- * backwards-compatibility */
-typedef Py_ssize_t printfunc;
-
-struct _typeobject {
- PyObject_VAR_HEAD
- const char *tp_name; /* For printing, in format "<module>.<name>" */
- Py_ssize_t tp_basicsize, tp_itemsize; /* For allocation */
-
- /* Methods to implement standard operations */
-
- destructor tp_dealloc;
- Py_ssize_t tp_vectorcall_offset;
- getattrfunc tp_getattr;
- setattrfunc tp_setattr;
- PyAsyncMethods *tp_as_async; /* formerly known as tp_compare (Python 2)
- or tp_reserved (Python 3) */
- reprfunc tp_repr;
-
- /* Method suites for standard classes */
-
- PyNumberMethods *tp_as_number;
- PySequenceMethods *tp_as_sequence;
- PyMappingMethods *tp_as_mapping;
-
- /* More standard operations (here for binary compatibility) */
-
- hashfunc tp_hash;
- ternaryfunc tp_call;
- reprfunc tp_str;
- getattrofunc tp_getattro;
- setattrofunc tp_setattro;
-
- /* Functions to access object as input/output buffer */
- PyBufferProcs *tp_as_buffer;
-
- /* Flags to define presence of optional/expanded features */
- unsigned long tp_flags;
-
- const char *tp_doc; /* Documentation string */
-
- /* Assigned meaning in release 2.0 */
- /* call function for all accessible objects */
- traverseproc tp_traverse;
-
- /* delete references to contained objects */
- inquiry tp_clear;
-
- /* Assigned meaning in release 2.1 */
- /* rich comparisons */
- richcmpfunc tp_richcompare;
-
- /* weak reference enabler */
- Py_ssize_t tp_weaklistoffset;
-
- /* Iterators */
- getiterfunc tp_iter;
- iternextfunc tp_iternext;
-
- /* Attribute descriptor and subclassing stuff */
- struct PyMethodDef *tp_methods;
- struct PyMemberDef *tp_members;
- struct PyGetSetDef *tp_getset;
- struct _typeobject *tp_base;
- PyObject *tp_dict;
- descrgetfunc tp_descr_get;
- descrsetfunc tp_descr_set;
- Py_ssize_t tp_dictoffset;
- initproc tp_init;
- allocfunc tp_alloc;
- newfunc tp_new;
- freefunc tp_free; /* Low-level free-memory routine */
- inquiry tp_is_gc; /* For PyObject_IS_GC */
- PyObject *tp_bases;
- PyObject *tp_mro; /* method resolution order */
- PyObject *tp_cache;
- PyObject *tp_subclasses;
- PyObject *tp_weaklist;
- destructor tp_del;
-
- /* Type attribute cache version tag. Added in version 2.6 */
- unsigned int tp_version_tag;
-
- destructor tp_finalize;
- vectorcallfunc tp_vectorcall;
-};
-
-/* The *real* layout of a type object when allocated on the heap */
-typedef struct _heaptypeobject {
- /* Note: there's a dependency on the order of these members
- in slotptr() in typeobject.c . */
- PyTypeObject ht_type;
- PyAsyncMethods as_async;
- PyNumberMethods as_number;
- PyMappingMethods as_mapping;
- PySequenceMethods as_sequence; /* as_sequence comes after as_mapping,
- so that the mapping wins when both
- the mapping and the sequence define
- a given operator (e.g. __getitem__).
- see add_operators() in typeobject.c . */
- PyBufferProcs as_buffer;
- PyObject *ht_name, *ht_slots, *ht_qualname;
- struct _dictkeysobject *ht_cached_keys;
- PyObject *ht_module;
- /* here are optional user slots, followed by the members. */
-} PyHeapTypeObject;
-
-/* access macro to the members which are floating "behind" the object */
-#define PyHeapType_GET_MEMBERS(etype) \
- ((PyMemberDef *)(((char *)etype) + Py_TYPE(etype)->tp_basicsize))
-
-PyAPI_FUNC(const char *) _PyType_Name(PyTypeObject *);
-PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *);
-PyAPI_FUNC(PyObject *) _PyType_LookupId(PyTypeObject *, _Py_Identifier *);
-PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, _Py_Identifier *);
-PyAPI_FUNC(PyTypeObject *) _PyType_CalculateMetaclass(PyTypeObject *, PyObject *);
-PyAPI_FUNC(PyObject *) _PyType_GetDocFromInternalDoc(const char *, const char *);
-PyAPI_FUNC(PyObject *) _PyType_GetTextSignatureFromInternalDoc(const char *, const char *);
-
-struct _Py_Identifier;
-PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int);
-PyAPI_FUNC(void) _Py_BreakPoint(void);
-PyAPI_FUNC(void) _PyObject_Dump(PyObject *);
-PyAPI_FUNC(int) _PyObject_IsFreed(PyObject *);
-
-PyAPI_FUNC(int) _PyObject_IsAbstract(PyObject *);
-PyAPI_FUNC(PyObject *) _PyObject_GetAttrId(PyObject *, struct _Py_Identifier *);
-PyAPI_FUNC(int) _PyObject_SetAttrId(PyObject *, struct _Py_Identifier *, PyObject *);
-PyAPI_FUNC(int) _PyObject_HasAttrId(PyObject *, struct _Py_Identifier *);
-/* Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which
- don't raise AttributeError.
-
- Return 1 and set *result != NULL if an attribute is found.
- Return 0 and set *result == NULL if an attribute is not found;
- an AttributeError is silenced.
- Return -1 and set *result == NULL if an error other than AttributeError
- is raised.
-*/
-PyAPI_FUNC(int) _PyObject_LookupAttr(PyObject *, PyObject *, PyObject **);
-PyAPI_FUNC(int) _PyObject_LookupAttrId(PyObject *, struct _Py_Identifier *, PyObject **);
-
-PyAPI_FUNC(int) _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
-
-PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *);
-PyAPI_FUNC(PyObject *) _PyObject_NextNotImplemented(PyObject *);
-PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *);
-PyAPI_FUNC(int) PyObject_CallFinalizerFromDealloc(PyObject *);
-
-/* Same as PyObject_Generic{Get,Set}Attr, but passing the attributes
- dict as the last parameter. */
-PyAPI_FUNC(PyObject *)
-_PyObject_GenericGetAttrWithDict(PyObject *, PyObject *, PyObject *, int);
-PyAPI_FUNC(int)
-_PyObject_GenericSetAttrWithDict(PyObject *, PyObject *,
- PyObject *, PyObject *);
-
-PyAPI_FUNC(PyObject *) _PyObject_FunctionStr(PyObject *);
-
-/* Safely decref `op` and set `op` to `op2`.
- *
- * As in case of Py_CLEAR "the obvious" code can be deadly:
- *
- * Py_DECREF(op);
- * op = op2;
- *
- * The safe way is:
- *
- * Py_SETREF(op, op2);
- *
- * That arranges to set `op` to `op2` _before_ decref'ing, so that any code
- * triggered as a side-effect of `op` getting torn down no longer believes
- * `op` points to a valid object.
- *
- * Py_XSETREF is a variant of Py_SETREF that uses Py_XDECREF instead of
- * Py_DECREF.
- */
-
-#define Py_SETREF(op, op2) \
- do { \
- PyObject *_py_tmp = _PyObject_CAST(op); \
- (op) = (op2); \
- Py_DECREF(_py_tmp); \
- } while (0)
-
-#define Py_XSETREF(op, op2) \
- do { \
- PyObject *_py_tmp = _PyObject_CAST(op); \
- (op) = (op2); \
- Py_XDECREF(_py_tmp); \
- } while (0)
-
-
-PyAPI_DATA(PyTypeObject) _PyNone_Type;
-PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type;
-
-/* Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.
- * Defined in object.c.
- */
-PyAPI_DATA(int) _Py_SwappedOp[];
-
-PyAPI_FUNC(void)
-_PyDebugAllocatorStats(FILE *out, const char *block_name, int num_blocks,
- size_t sizeof_block);
-PyAPI_FUNC(void)
-_PyObject_DebugTypeStats(FILE *out);
-
-/* Define a pair of assertion macros:
- _PyObject_ASSERT_FROM(), _PyObject_ASSERT_WITH_MSG() and _PyObject_ASSERT().
-
- These work like the regular C assert(), in that they will abort the
- process with a message on stderr if the given condition fails to hold,
- but compile away to nothing if NDEBUG is defined.
-
- However, before aborting, Python will also try to call _PyObject_Dump() on
- the given object. This may be of use when investigating bugs in which a
- particular object is corrupt (e.g. buggy a tp_visit method in an extension
- module breaking the garbage collector), to help locate the broken objects.
-
- The WITH_MSG variant allows you to supply an additional message that Python
- will attempt to print to stderr, after the object dump. */
-#ifdef NDEBUG
- /* No debugging: compile away the assertions: */
-# define _PyObject_ASSERT_FROM(obj, expr, msg, filename, lineno, func) \
- ((void)0)
-#else
- /* With debugging: generate checks: */
-# define _PyObject_ASSERT_FROM(obj, expr, msg, filename, lineno, func) \
- ((expr) \
- ? (void)(0) \
- : _PyObject_AssertFailed((obj), Py_STRINGIFY(expr), \
- (msg), (filename), (lineno), (func)))
-#endif
-
-#define _PyObject_ASSERT_WITH_MSG(obj, expr, msg) \
- _PyObject_ASSERT_FROM(obj, expr, msg, __FILE__, __LINE__, __func__)
-#define _PyObject_ASSERT(obj, expr) \
- _PyObject_ASSERT_WITH_MSG(obj, expr, NULL)
-
-#define _PyObject_ASSERT_FAILED_MSG(obj, msg) \
- _PyObject_AssertFailed((obj), NULL, (msg), __FILE__, __LINE__, __func__)
-
-/* Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,
- to avoid causing compiler/linker errors when building extensions without
- NDEBUG against a Python built with NDEBUG defined.
-
- msg, expr and function can be NULL. */
-PyAPI_FUNC(void) _Py_NO_RETURN _PyObject_AssertFailed(
- PyObject *obj,
- const char *expr,
- const char *msg,
- const char *file,
- int line,
- const char *function);
-
-/* Check if an object is consistent. For example, ensure that the reference
- counter is greater than or equal to 1, and ensure that ob_type is not NULL.
-
- Call _PyObject_AssertFailed() if the object is inconsistent.
-
- If check_content is zero, only check header fields: reduce the overhead.
-
- The function always return 1. The return value is just here to be able to
- write:
-
- assert(_PyObject_CheckConsistency(obj, 1)); */
-PyAPI_FUNC(int) _PyObject_CheckConsistency(
- PyObject *op,
- int check_content);
-
-
-/* Trashcan mechanism, thanks to Christian Tismer.
-
-When deallocating a container object, it's possible to trigger an unbounded
-chain of deallocations, as each Py_DECREF in turn drops the refcount on "the
-next" object in the chain to 0. This can easily lead to stack overflows,
-especially in threads (which typically have less stack space to work with).
-
-A container object can avoid this by bracketing the body of its tp_dealloc
-function with a pair of macros:
-
-static void
-mytype_dealloc(mytype *p)
-{
- ... declarations go here ...
-
- PyObject_GC_UnTrack(p); // must untrack first
- Py_TRASHCAN_BEGIN(p, mytype_dealloc)
- ... The body of the deallocator goes here, including all calls ...
- ... to Py_DECREF on contained objects. ...
- Py_TRASHCAN_END // there should be no code after this
-}
-
-CAUTION: Never return from the middle of the body! If the body needs to
-"get out early", put a label immediately before the Py_TRASHCAN_END
-call, and goto it. Else the call-depth counter (see below) will stay
-above 0 forever, and the trashcan will never get emptied.
-
-How it works: The BEGIN macro increments a call-depth counter. So long
-as this counter is small, the body of the deallocator is run directly without
-further ado. But if the counter gets large, it instead adds p to a list of
-objects to be deallocated later, skips the body of the deallocator, and
-resumes execution after the END macro. The tp_dealloc routine then returns
-without deallocating anything (and so unbounded call-stack depth is avoided).
-
-When the call stack finishes unwinding again, code generated by the END macro
-notices this, and calls another routine to deallocate all the objects that
-may have been added to the list of deferred deallocations. In effect, a
-chain of N deallocations is broken into (N-1)/(PyTrash_UNWIND_LEVEL-1) pieces,
-with the call stack never exceeding a depth of PyTrash_UNWIND_LEVEL.
-
-Since the tp_dealloc of a subclass typically calls the tp_dealloc of the base
-class, we need to ensure that the trashcan is only triggered on the tp_dealloc
-of the actual class being deallocated. Otherwise we might end up with a
-partially-deallocated object. To check this, the tp_dealloc function must be
-passed as second argument to Py_TRASHCAN_BEGIN().
-*/
-
-/* This is the old private API, invoked by the macros before 3.2.4.
- Kept for binary compatibility of extensions using the stable ABI. */
-PyAPI_FUNC(void) _PyTrash_deposit_object(PyObject*);
-PyAPI_FUNC(void) _PyTrash_destroy_chain(void);
-
-/* This is the old private API, invoked by the macros before 3.9.
- Kept for binary compatibility of extensions using the stable ABI. */
-PyAPI_FUNC(void) _PyTrash_thread_deposit_object(PyObject*);
-PyAPI_FUNC(void) _PyTrash_thread_destroy_chain(void);
-
-/* Forward declarations for PyThreadState */
-struct _ts;
-
-/* Python 3.9 private API, invoked by the macros below. */
-PyAPI_FUNC(int) _PyTrash_begin(struct _ts *tstate, PyObject *op);
-PyAPI_FUNC(void) _PyTrash_end(struct _ts *tstate);
-
-#define PyTrash_UNWIND_LEVEL 50
-
-#define Py_TRASHCAN_BEGIN_CONDITION(op, cond) \
- do { \
- PyThreadState *_tstate = NULL; \
- /* If "cond" is false, then _tstate remains NULL and the deallocator \
- * is run normally without involving the trashcan */ \
- if (cond) { \
- _tstate = PyThreadState_GET(); \
- if (_PyTrash_begin(_tstate, _PyObject_CAST(op))) { \
- break; \
- } \
- }
- /* The body of the deallocator is here. */
-#define Py_TRASHCAN_END \
- if (_tstate) { \
- _PyTrash_end(_tstate); \
- } \
- } while (0);
-
-#define Py_TRASHCAN_BEGIN(op, dealloc) \
- Py_TRASHCAN_BEGIN_CONDITION(op, \
- Py_TYPE(op)->tp_dealloc == (destructor)(dealloc))
-
-/* For backwards compatibility, these macros enable the trashcan
- * unconditionally */
-#define Py_TRASHCAN_SAFE_BEGIN(op) Py_TRASHCAN_BEGIN_CONDITION(op, 1)
-#define Py_TRASHCAN_SAFE_END(op) Py_TRASHCAN_END
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_OBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(void) _Py_NewReference(PyObject *op);
+
+#ifdef Py_TRACE_REFS
+/* Py_TRACE_REFS is such major surgery that we call external routines. */
+PyAPI_FUNC(void) _Py_ForgetReference(PyObject *);
+#endif
+
+/* Update the Python traceback of an object. This function must be called
+ when a memory block is reused from a free list. */
+PyAPI_FUNC(int) _PyTraceMalloc_NewReference(PyObject *op);
+
+#ifdef Py_REF_DEBUG
+PyAPI_FUNC(Py_ssize_t) _Py_GetRefTotal(void);
+#endif
+
+
+/********************* String Literals ****************************************/
+/* This structure helps managing static strings. The basic usage goes like this:
+ Instead of doing
+
+ r = PyObject_CallMethod(o, "foo", "args", ...);
+
+ do
+
+ _Py_IDENTIFIER(foo);
+ ...
+ r = _PyObject_CallMethodId(o, &PyId_foo, "args", ...);
+
+ PyId_foo is a static variable, either on block level or file level. On first
+ usage, the string "foo" is interned, and the structures are linked. On interpreter
+ shutdown, all strings are released.
+
+ Alternatively, _Py_static_string allows choosing the variable name.
+ _PyUnicode_FromId returns a borrowed reference to the interned string.
+ _PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*.
+*/
+typedef struct _Py_Identifier {
+ struct _Py_Identifier *next;
+ const char* string;
+ PyObject *object;
+} _Py_Identifier;
+
+#define _Py_static_string_init(value) { .next = NULL, .string = value, .object = NULL }
+#define _Py_static_string(varname, value) static _Py_Identifier varname = _Py_static_string_init(value)
+#define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname)
+
+/* buffer interface */
+typedef struct bufferinfo {
+ void *buf;
+ PyObject *obj; /* owned reference */
+ Py_ssize_t len;
+ Py_ssize_t itemsize; /* This is Py_ssize_t so it can be
+ pointed to by strides in simple case.*/
+ int readonly;
+ int ndim;
+ char *format;
+ Py_ssize_t *shape;
+ Py_ssize_t *strides;
+ Py_ssize_t *suboffsets;
+ void *internal;
+} Py_buffer;
+
+typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
+typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
+
+typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames);
+
+/* Maximum number of dimensions */
+#define PyBUF_MAX_NDIM 64
+
+/* Flags for getting buffers */
+#define PyBUF_SIMPLE 0
+#define PyBUF_WRITABLE 0x0001
+/* we used to include an E, backwards compatible alias */
+#define PyBUF_WRITEABLE PyBUF_WRITABLE
+#define PyBUF_FORMAT 0x0004
+#define PyBUF_ND 0x0008
+#define PyBUF_STRIDES (0x0010 | PyBUF_ND)
+#define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
+#define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
+#define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
+#define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
+
+#define PyBUF_CONTIG (PyBUF_ND | PyBUF_WRITABLE)
+#define PyBUF_CONTIG_RO (PyBUF_ND)
+
+#define PyBUF_STRIDED (PyBUF_STRIDES | PyBUF_WRITABLE)
+#define PyBUF_STRIDED_RO (PyBUF_STRIDES)
+
+#define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_WRITABLE | PyBUF_FORMAT)
+#define PyBUF_RECORDS_RO (PyBUF_STRIDES | PyBUF_FORMAT)
+
+#define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_WRITABLE | PyBUF_FORMAT)
+#define PyBUF_FULL_RO (PyBUF_INDIRECT | PyBUF_FORMAT)
+
+
+#define PyBUF_READ 0x100
+#define PyBUF_WRITE 0x200
+/* End buffer interface */
+
+
+typedef struct {
+ /* Number implementations must check *both*
+ arguments for proper type and implement the necessary conversions
+ in the slot functions themselves. */
+
+ binaryfunc nb_add;
+ binaryfunc nb_subtract;
+ binaryfunc nb_multiply;
+ binaryfunc nb_remainder;
+ binaryfunc nb_divmod;
+ ternaryfunc nb_power;
+ unaryfunc nb_negative;
+ unaryfunc nb_positive;
+ unaryfunc nb_absolute;
+ inquiry nb_bool;
+ unaryfunc nb_invert;
+ binaryfunc nb_lshift;
+ binaryfunc nb_rshift;
+ binaryfunc nb_and;
+ binaryfunc nb_xor;
+ binaryfunc nb_or;
+ unaryfunc nb_int;
+ void *nb_reserved; /* the slot formerly known as nb_long */
+ unaryfunc nb_float;
+
+ binaryfunc nb_inplace_add;
+ binaryfunc nb_inplace_subtract;
+ binaryfunc nb_inplace_multiply;
+ binaryfunc nb_inplace_remainder;
+ ternaryfunc nb_inplace_power;
+ binaryfunc nb_inplace_lshift;
+ binaryfunc nb_inplace_rshift;
+ binaryfunc nb_inplace_and;
+ binaryfunc nb_inplace_xor;
+ binaryfunc nb_inplace_or;
+
+ binaryfunc nb_floor_divide;
+ binaryfunc nb_true_divide;
+ binaryfunc nb_inplace_floor_divide;
+ binaryfunc nb_inplace_true_divide;
+
+ unaryfunc nb_index;
+
+ binaryfunc nb_matrix_multiply;
+ binaryfunc nb_inplace_matrix_multiply;
+} PyNumberMethods;
+
+typedef struct {
+ lenfunc sq_length;
+ binaryfunc sq_concat;
+ ssizeargfunc sq_repeat;
+ ssizeargfunc sq_item;
+ void *was_sq_slice;
+ ssizeobjargproc sq_ass_item;
+ void *was_sq_ass_slice;
+ objobjproc sq_contains;
+
+ binaryfunc sq_inplace_concat;
+ ssizeargfunc sq_inplace_repeat;
+} PySequenceMethods;
+
+typedef struct {
+ lenfunc mp_length;
+ binaryfunc mp_subscript;
+ objobjargproc mp_ass_subscript;
+} PyMappingMethods;
+
+typedef struct {
+ unaryfunc am_await;
+ unaryfunc am_aiter;
+ unaryfunc am_anext;
+} PyAsyncMethods;
+
+typedef struct {
+ getbufferproc bf_getbuffer;
+ releasebufferproc bf_releasebuffer;
+} PyBufferProcs;
+
+/* Allow printfunc in the tp_vectorcall_offset slot for
+ * backwards-compatibility */
+typedef Py_ssize_t printfunc;
+
+struct _typeobject {
+ PyObject_VAR_HEAD
+ const char *tp_name; /* For printing, in format "<module>.<name>" */
+ Py_ssize_t tp_basicsize, tp_itemsize; /* For allocation */
+
+ /* Methods to implement standard operations */
+
+ destructor tp_dealloc;
+ Py_ssize_t tp_vectorcall_offset;
+ getattrfunc tp_getattr;
+ setattrfunc tp_setattr;
+ PyAsyncMethods *tp_as_async; /* formerly known as tp_compare (Python 2)
+ or tp_reserved (Python 3) */
+ reprfunc tp_repr;
+
+ /* Method suites for standard classes */
+
+ PyNumberMethods *tp_as_number;
+ PySequenceMethods *tp_as_sequence;
+ PyMappingMethods *tp_as_mapping;
+
+ /* More standard operations (here for binary compatibility) */
+
+ hashfunc tp_hash;
+ ternaryfunc tp_call;
+ reprfunc tp_str;
+ getattrofunc tp_getattro;
+ setattrofunc tp_setattro;
+
+ /* Functions to access object as input/output buffer */
+ PyBufferProcs *tp_as_buffer;
+
+ /* Flags to define presence of optional/expanded features */
+ unsigned long tp_flags;
+
+ const char *tp_doc; /* Documentation string */
+
+ /* Assigned meaning in release 2.0 */
+ /* call function for all accessible objects */
+ traverseproc tp_traverse;
+
+ /* delete references to contained objects */
+ inquiry tp_clear;
+
+ /* Assigned meaning in release 2.1 */
+ /* rich comparisons */
+ richcmpfunc tp_richcompare;
+
+ /* weak reference enabler */
+ Py_ssize_t tp_weaklistoffset;
+
+ /* Iterators */
+ getiterfunc tp_iter;
+ iternextfunc tp_iternext;
+
+ /* Attribute descriptor and subclassing stuff */
+ struct PyMethodDef *tp_methods;
+ struct PyMemberDef *tp_members;
+ struct PyGetSetDef *tp_getset;
+ struct _typeobject *tp_base;
+ PyObject *tp_dict;
+ descrgetfunc tp_descr_get;
+ descrsetfunc tp_descr_set;
+ Py_ssize_t tp_dictoffset;
+ initproc tp_init;
+ allocfunc tp_alloc;
+ newfunc tp_new;
+ freefunc tp_free; /* Low-level free-memory routine */
+ inquiry tp_is_gc; /* For PyObject_IS_GC */
+ PyObject *tp_bases;
+ PyObject *tp_mro; /* method resolution order */
+ PyObject *tp_cache;
+ PyObject *tp_subclasses;
+ PyObject *tp_weaklist;
+ destructor tp_del;
+
+ /* Type attribute cache version tag. Added in version 2.6 */
+ unsigned int tp_version_tag;
+
+ destructor tp_finalize;
+ vectorcallfunc tp_vectorcall;
+};
+
+/* The *real* layout of a type object when allocated on the heap */
+typedef struct _heaptypeobject {
+ /* Note: there's a dependency on the order of these members
+ in slotptr() in typeobject.c . */
+ PyTypeObject ht_type;
+ PyAsyncMethods as_async;
+ PyNumberMethods as_number;
+ PyMappingMethods as_mapping;
+ PySequenceMethods as_sequence; /* as_sequence comes after as_mapping,
+ so that the mapping wins when both
+ the mapping and the sequence define
+ a given operator (e.g. __getitem__).
+ see add_operators() in typeobject.c . */
+ PyBufferProcs as_buffer;
+ PyObject *ht_name, *ht_slots, *ht_qualname;
+ struct _dictkeysobject *ht_cached_keys;
+ PyObject *ht_module;
+ /* here are optional user slots, followed by the members. */
+} PyHeapTypeObject;
+
+/* access macro to the members which are floating "behind" the object */
+#define PyHeapType_GET_MEMBERS(etype) \
+ ((PyMemberDef *)(((char *)etype) + Py_TYPE(etype)->tp_basicsize))
+
+PyAPI_FUNC(const char *) _PyType_Name(PyTypeObject *);
+PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *);
+PyAPI_FUNC(PyObject *) _PyType_LookupId(PyTypeObject *, _Py_Identifier *);
+PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, _Py_Identifier *);
+PyAPI_FUNC(PyTypeObject *) _PyType_CalculateMetaclass(PyTypeObject *, PyObject *);
+PyAPI_FUNC(PyObject *) _PyType_GetDocFromInternalDoc(const char *, const char *);
+PyAPI_FUNC(PyObject *) _PyType_GetTextSignatureFromInternalDoc(const char *, const char *);
+
+struct _Py_Identifier;
+PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int);
+PyAPI_FUNC(void) _Py_BreakPoint(void);
+PyAPI_FUNC(void) _PyObject_Dump(PyObject *);
+PyAPI_FUNC(int) _PyObject_IsFreed(PyObject *);
+
+PyAPI_FUNC(int) _PyObject_IsAbstract(PyObject *);
+PyAPI_FUNC(PyObject *) _PyObject_GetAttrId(PyObject *, struct _Py_Identifier *);
+PyAPI_FUNC(int) _PyObject_SetAttrId(PyObject *, struct _Py_Identifier *, PyObject *);
+PyAPI_FUNC(int) _PyObject_HasAttrId(PyObject *, struct _Py_Identifier *);
+/* Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which
+ don't raise AttributeError.
+
+ Return 1 and set *result != NULL if an attribute is found.
+ Return 0 and set *result == NULL if an attribute is not found;
+ an AttributeError is silenced.
+ Return -1 and set *result == NULL if an error other than AttributeError
+ is raised.
+*/
+PyAPI_FUNC(int) _PyObject_LookupAttr(PyObject *, PyObject *, PyObject **);
+PyAPI_FUNC(int) _PyObject_LookupAttrId(PyObject *, struct _Py_Identifier *, PyObject **);
+
+PyAPI_FUNC(int) _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
+
+PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *);
+PyAPI_FUNC(PyObject *) _PyObject_NextNotImplemented(PyObject *);
+PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *);
+PyAPI_FUNC(int) PyObject_CallFinalizerFromDealloc(PyObject *);
+
+/* Same as PyObject_Generic{Get,Set}Attr, but passing the attributes
+ dict as the last parameter. */
+PyAPI_FUNC(PyObject *)
+_PyObject_GenericGetAttrWithDict(PyObject *, PyObject *, PyObject *, int);
+PyAPI_FUNC(int)
+_PyObject_GenericSetAttrWithDict(PyObject *, PyObject *,
+ PyObject *, PyObject *);
+
+PyAPI_FUNC(PyObject *) _PyObject_FunctionStr(PyObject *);
+
+/* Safely decref `op` and set `op` to `op2`.
+ *
+ * As in case of Py_CLEAR "the obvious" code can be deadly:
+ *
+ * Py_DECREF(op);
+ * op = op2;
+ *
+ * The safe way is:
+ *
+ * Py_SETREF(op, op2);
+ *
+ * That arranges to set `op` to `op2` _before_ decref'ing, so that any code
+ * triggered as a side-effect of `op` getting torn down no longer believes
+ * `op` points to a valid object.
+ *
+ * Py_XSETREF is a variant of Py_SETREF that uses Py_XDECREF instead of
+ * Py_DECREF.
+ */
+
+#define Py_SETREF(op, op2) \
+ do { \
+ PyObject *_py_tmp = _PyObject_CAST(op); \
+ (op) = (op2); \
+ Py_DECREF(_py_tmp); \
+ } while (0)
+
+#define Py_XSETREF(op, op2) \
+ do { \
+ PyObject *_py_tmp = _PyObject_CAST(op); \
+ (op) = (op2); \
+ Py_XDECREF(_py_tmp); \
+ } while (0)
+
+
+PyAPI_DATA(PyTypeObject) _PyNone_Type;
+PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type;
+
+/* Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.
+ * Defined in object.c.
+ */
+PyAPI_DATA(int) _Py_SwappedOp[];
+
+PyAPI_FUNC(void)
+_PyDebugAllocatorStats(FILE *out, const char *block_name, int num_blocks,
+ size_t sizeof_block);
+PyAPI_FUNC(void)
+_PyObject_DebugTypeStats(FILE *out);
+
+/* Define a pair of assertion macros:
+ _PyObject_ASSERT_FROM(), _PyObject_ASSERT_WITH_MSG() and _PyObject_ASSERT().
+
+ These work like the regular C assert(), in that they will abort the
+ process with a message on stderr if the given condition fails to hold,
+ but compile away to nothing if NDEBUG is defined.
+
+ However, before aborting, Python will also try to call _PyObject_Dump() on
+ the given object. This may be of use when investigating bugs in which a
+ particular object is corrupt (e.g. buggy a tp_visit method in an extension
+ module breaking the garbage collector), to help locate the broken objects.
+
+ The WITH_MSG variant allows you to supply an additional message that Python
+ will attempt to print to stderr, after the object dump. */
+#ifdef NDEBUG
+ /* No debugging: compile away the assertions: */
+# define _PyObject_ASSERT_FROM(obj, expr, msg, filename, lineno, func) \
+ ((void)0)
+#else
+ /* With debugging: generate checks: */
+# define _PyObject_ASSERT_FROM(obj, expr, msg, filename, lineno, func) \
+ ((expr) \
+ ? (void)(0) \
+ : _PyObject_AssertFailed((obj), Py_STRINGIFY(expr), \
+ (msg), (filename), (lineno), (func)))
+#endif
+
+#define _PyObject_ASSERT_WITH_MSG(obj, expr, msg) \
+ _PyObject_ASSERT_FROM(obj, expr, msg, __FILE__, __LINE__, __func__)
+#define _PyObject_ASSERT(obj, expr) \
+ _PyObject_ASSERT_WITH_MSG(obj, expr, NULL)
+
+#define _PyObject_ASSERT_FAILED_MSG(obj, msg) \
+ _PyObject_AssertFailed((obj), NULL, (msg), __FILE__, __LINE__, __func__)
+
+/* Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,
+ to avoid causing compiler/linker errors when building extensions without
+ NDEBUG against a Python built with NDEBUG defined.
+
+ msg, expr and function can be NULL. */
+PyAPI_FUNC(void) _Py_NO_RETURN _PyObject_AssertFailed(
+ PyObject *obj,
+ const char *expr,
+ const char *msg,
+ const char *file,
+ int line,
+ const char *function);
+
+/* Check if an object is consistent. For example, ensure that the reference
+ counter is greater than or equal to 1, and ensure that ob_type is not NULL.
+
+ Call _PyObject_AssertFailed() if the object is inconsistent.
+
+ If check_content is zero, only check header fields: reduce the overhead.
+
+ The function always return 1. The return value is just here to be able to
+ write:
+
+ assert(_PyObject_CheckConsistency(obj, 1)); */
+PyAPI_FUNC(int) _PyObject_CheckConsistency(
+ PyObject *op,
+ int check_content);
+
+
+/* Trashcan mechanism, thanks to Christian Tismer.
+
+When deallocating a container object, it's possible to trigger an unbounded
+chain of deallocations, as each Py_DECREF in turn drops the refcount on "the
+next" object in the chain to 0. This can easily lead to stack overflows,
+especially in threads (which typically have less stack space to work with).
+
+A container object can avoid this by bracketing the body of its tp_dealloc
+function with a pair of macros:
+
+static void
+mytype_dealloc(mytype *p)
+{
+ ... declarations go here ...
+
+ PyObject_GC_UnTrack(p); // must untrack first
+ Py_TRASHCAN_BEGIN(p, mytype_dealloc)
+ ... The body of the deallocator goes here, including all calls ...
+ ... to Py_DECREF on contained objects. ...
+ Py_TRASHCAN_END // there should be no code after this
+}
+
+CAUTION: Never return from the middle of the body! If the body needs to
+"get out early", put a label immediately before the Py_TRASHCAN_END
+call, and goto it. Else the call-depth counter (see below) will stay
+above 0 forever, and the trashcan will never get emptied.
+
+How it works: The BEGIN macro increments a call-depth counter. So long
+as this counter is small, the body of the deallocator is run directly without
+further ado. But if the counter gets large, it instead adds p to a list of
+objects to be deallocated later, skips the body of the deallocator, and
+resumes execution after the END macro. The tp_dealloc routine then returns
+without deallocating anything (and so unbounded call-stack depth is avoided).
+
+When the call stack finishes unwinding again, code generated by the END macro
+notices this, and calls another routine to deallocate all the objects that
+may have been added to the list of deferred deallocations. In effect, a
+chain of N deallocations is broken into (N-1)/(PyTrash_UNWIND_LEVEL-1) pieces,
+with the call stack never exceeding a depth of PyTrash_UNWIND_LEVEL.
+
+Since the tp_dealloc of a subclass typically calls the tp_dealloc of the base
+class, we need to ensure that the trashcan is only triggered on the tp_dealloc
+of the actual class being deallocated. Otherwise we might end up with a
+partially-deallocated object. To check this, the tp_dealloc function must be
+passed as second argument to Py_TRASHCAN_BEGIN().
+*/
+
+/* This is the old private API, invoked by the macros before 3.2.4.
+ Kept for binary compatibility of extensions using the stable ABI. */
+PyAPI_FUNC(void) _PyTrash_deposit_object(PyObject*);
+PyAPI_FUNC(void) _PyTrash_destroy_chain(void);
+
+/* This is the old private API, invoked by the macros before 3.9.
+ Kept for binary compatibility of extensions using the stable ABI. */
+PyAPI_FUNC(void) _PyTrash_thread_deposit_object(PyObject*);
+PyAPI_FUNC(void) _PyTrash_thread_destroy_chain(void);
+
+/* Forward declarations for PyThreadState */
+struct _ts;
+
+/* Python 3.9 private API, invoked by the macros below. */
+PyAPI_FUNC(int) _PyTrash_begin(struct _ts *tstate, PyObject *op);
+PyAPI_FUNC(void) _PyTrash_end(struct _ts *tstate);
+
+#define PyTrash_UNWIND_LEVEL 50
+
+#define Py_TRASHCAN_BEGIN_CONDITION(op, cond) \
+ do { \
+ PyThreadState *_tstate = NULL; \
+ /* If "cond" is false, then _tstate remains NULL and the deallocator \
+ * is run normally without involving the trashcan */ \
+ if (cond) { \
+ _tstate = PyThreadState_GET(); \
+ if (_PyTrash_begin(_tstate, _PyObject_CAST(op))) { \
+ break; \
+ } \
+ }
+ /* The body of the deallocator is here. */
+#define Py_TRASHCAN_END \
+ if (_tstate) { \
+ _PyTrash_end(_tstate); \
+ } \
+ } while (0);
+
+#define Py_TRASHCAN_BEGIN(op, dealloc) \
+ Py_TRASHCAN_BEGIN_CONDITION(op, \
+ Py_TYPE(op)->tp_dealloc == (destructor)(dealloc))
+
+/* For backwards compatibility, these macros enable the trashcan
+ * unconditionally */
+#define Py_TRASHCAN_SAFE_BEGIN(op) Py_TRASHCAN_BEGIN_CONDITION(op, 1)
+#define Py_TRASHCAN_SAFE_END(op) Py_TRASHCAN_END
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/objimpl.h b/contrib/tools/python3/src/Include/cpython/objimpl.h
index b69dca71a2..b835936db7 100644
--- a/contrib/tools/python3/src/Include/cpython/objimpl.h
+++ b/contrib/tools/python3/src/Include/cpython/objimpl.h
@@ -1,145 +1,145 @@
-#ifndef Py_CPYTHON_OBJIMPL_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define _PyObject_SIZE(typeobj) ( (typeobj)->tp_basicsize )
-
-/* _PyObject_VAR_SIZE returns the number of bytes (as size_t) allocated for a
- vrbl-size object with nitems items, exclusive of gc overhead (if any). The
- value is rounded up to the closest multiple of sizeof(void *), in order to
- ensure that pointer fields at the end of the object are correctly aligned
- for the platform (this is of special importance for subclasses of, e.g.,
- str or int, so that pointers can be stored after the embedded data).
-
- Note that there's no memory wastage in doing this, as malloc has to
- return (at worst) pointer-aligned memory anyway.
-*/
-#if ((SIZEOF_VOID_P - 1) & SIZEOF_VOID_P) != 0
-# error "_PyObject_VAR_SIZE requires SIZEOF_VOID_P be a power of 2"
-#endif
-
-#define _PyObject_VAR_SIZE(typeobj, nitems) \
- _Py_SIZE_ROUND_UP((typeobj)->tp_basicsize + \
- (nitems)*(typeobj)->tp_itemsize, \
- SIZEOF_VOID_P)
-
-
-/* This example code implements an object constructor with a custom
- allocator, where PyObject_New is inlined, and shows the important
- distinction between two steps (at least):
- 1) the actual allocation of the object storage;
- 2) the initialization of the Python specific fields
- in this storage with PyObject_{Init, InitVar}.
-
- PyObject *
- YourObject_New(...)
- {
- PyObject *op;
-
- op = (PyObject *) Your_Allocator(_PyObject_SIZE(YourTypeStruct));
- if (op == NULL)
- return PyErr_NoMemory();
-
- PyObject_Init(op, &YourTypeStruct);
-
- op->ob_field = value;
- ...
- return op;
- }
-
- Note that in C++, the use of the new operator usually implies that
- the 1st step is performed automatically for you, so in a C++ class
- constructor you would start directly with PyObject_Init/InitVar. */
-
-
-/* Inline functions trading binary compatibility for speed:
- PyObject_INIT() is the fast version of PyObject_Init(), and
- PyObject_INIT_VAR() is the fast version of PyObject_InitVar().
-
- These inline functions must not be called with op=NULL. */
-static inline PyObject*
-_PyObject_INIT(PyObject *op, PyTypeObject *typeobj)
-{
- assert(op != NULL);
- Py_SET_TYPE(op, typeobj);
- if (PyType_GetFlags(typeobj) & Py_TPFLAGS_HEAPTYPE) {
- Py_INCREF(typeobj);
- }
- _Py_NewReference(op);
- return op;
-}
-
-#define PyObject_INIT(op, typeobj) \
- _PyObject_INIT(_PyObject_CAST(op), (typeobj))
-
-static inline PyVarObject*
-_PyObject_INIT_VAR(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size)
-{
- assert(op != NULL);
- Py_SET_SIZE(op, size);
- PyObject_INIT((PyObject *)op, typeobj);
- return op;
-}
-
-#define PyObject_INIT_VAR(op, typeobj, size) \
- _PyObject_INIT_VAR(_PyVarObject_CAST(op), (typeobj), (size))
-
-
-/* This function returns the number of allocated memory blocks, regardless of size */
-PyAPI_FUNC(Py_ssize_t) _Py_GetAllocatedBlocks(void);
-
-/* Macros */
-#ifdef WITH_PYMALLOC
-PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out);
-#endif
-
-
-typedef struct {
- /* user context passed as the first argument to the 2 functions */
- void *ctx;
-
- /* allocate an arena of size bytes */
- void* (*alloc) (void *ctx, size_t size);
-
- /* free an arena */
- void (*free) (void *ctx, void *ptr, size_t size);
-} PyObjectArenaAllocator;
-
-/* Get the arena allocator. */
-PyAPI_FUNC(void) PyObject_GetArenaAllocator(PyObjectArenaAllocator *allocator);
-
-/* Set the arena allocator. */
-PyAPI_FUNC(void) PyObject_SetArenaAllocator(PyObjectArenaAllocator *allocator);
-
-
-PyAPI_FUNC(Py_ssize_t) _PyGC_CollectNoFail(void);
-PyAPI_FUNC(Py_ssize_t) _PyGC_CollectIfEnabled(void);
-
-
-/* Test if an object implements the garbage collector protocol */
-PyAPI_FUNC(int) PyObject_IS_GC(PyObject *obj);
-
-
-/* Code built with Py_BUILD_CORE must include pycore_gc.h instead which
- defines a different _PyGC_FINALIZED() macro. */
-#ifndef Py_BUILD_CORE
- // Kept for backward compatibility with Python 3.8
-# define _PyGC_FINALIZED(o) PyObject_GC_IsFinalized(o)
-#endif
-
-PyAPI_FUNC(PyObject *) _PyObject_GC_Malloc(size_t size);
-PyAPI_FUNC(PyObject *) _PyObject_GC_Calloc(size_t size);
-
-
-/* Test if a type supports weak references */
-#define PyType_SUPPORTS_WEAKREFS(t) ((t)->tp_weaklistoffset > 0)
-
-PyAPI_FUNC(PyObject **) PyObject_GET_WEAKREFS_LISTPTR(PyObject *op);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_OBJIMPL_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define _PyObject_SIZE(typeobj) ( (typeobj)->tp_basicsize )
+
+/* _PyObject_VAR_SIZE returns the number of bytes (as size_t) allocated for a
+ vrbl-size object with nitems items, exclusive of gc overhead (if any). The
+ value is rounded up to the closest multiple of sizeof(void *), in order to
+ ensure that pointer fields at the end of the object are correctly aligned
+ for the platform (this is of special importance for subclasses of, e.g.,
+ str or int, so that pointers can be stored after the embedded data).
+
+ Note that there's no memory wastage in doing this, as malloc has to
+ return (at worst) pointer-aligned memory anyway.
+*/
+#if ((SIZEOF_VOID_P - 1) & SIZEOF_VOID_P) != 0
+# error "_PyObject_VAR_SIZE requires SIZEOF_VOID_P be a power of 2"
+#endif
+
+#define _PyObject_VAR_SIZE(typeobj, nitems) \
+ _Py_SIZE_ROUND_UP((typeobj)->tp_basicsize + \
+ (nitems)*(typeobj)->tp_itemsize, \
+ SIZEOF_VOID_P)
+
+
+/* This example code implements an object constructor with a custom
+ allocator, where PyObject_New is inlined, and shows the important
+ distinction between two steps (at least):
+ 1) the actual allocation of the object storage;
+ 2) the initialization of the Python specific fields
+ in this storage with PyObject_{Init, InitVar}.
+
+ PyObject *
+ YourObject_New(...)
+ {
+ PyObject *op;
+
+ op = (PyObject *) Your_Allocator(_PyObject_SIZE(YourTypeStruct));
+ if (op == NULL)
+ return PyErr_NoMemory();
+
+ PyObject_Init(op, &YourTypeStruct);
+
+ op->ob_field = value;
+ ...
+ return op;
+ }
+
+ Note that in C++, the use of the new operator usually implies that
+ the 1st step is performed automatically for you, so in a C++ class
+ constructor you would start directly with PyObject_Init/InitVar. */
+
+
+/* Inline functions trading binary compatibility for speed:
+ PyObject_INIT() is the fast version of PyObject_Init(), and
+ PyObject_INIT_VAR() is the fast version of PyObject_InitVar().
+
+ These inline functions must not be called with op=NULL. */
+static inline PyObject*
+_PyObject_INIT(PyObject *op, PyTypeObject *typeobj)
+{
+ assert(op != NULL);
+ Py_SET_TYPE(op, typeobj);
+ if (PyType_GetFlags(typeobj) & Py_TPFLAGS_HEAPTYPE) {
+ Py_INCREF(typeobj);
+ }
+ _Py_NewReference(op);
+ return op;
+}
+
+#define PyObject_INIT(op, typeobj) \
+ _PyObject_INIT(_PyObject_CAST(op), (typeobj))
+
+static inline PyVarObject*
+_PyObject_INIT_VAR(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size)
+{
+ assert(op != NULL);
+ Py_SET_SIZE(op, size);
+ PyObject_INIT((PyObject *)op, typeobj);
+ return op;
+}
+
+#define PyObject_INIT_VAR(op, typeobj, size) \
+ _PyObject_INIT_VAR(_PyVarObject_CAST(op), (typeobj), (size))
+
+
+/* This function returns the number of allocated memory blocks, regardless of size */
+PyAPI_FUNC(Py_ssize_t) _Py_GetAllocatedBlocks(void);
+
+/* Macros */
+#ifdef WITH_PYMALLOC
+PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out);
+#endif
+
+
+typedef struct {
+ /* user context passed as the first argument to the 2 functions */
+ void *ctx;
+
+ /* allocate an arena of size bytes */
+ void* (*alloc) (void *ctx, size_t size);
+
+ /* free an arena */
+ void (*free) (void *ctx, void *ptr, size_t size);
+} PyObjectArenaAllocator;
+
+/* Get the arena allocator. */
+PyAPI_FUNC(void) PyObject_GetArenaAllocator(PyObjectArenaAllocator *allocator);
+
+/* Set the arena allocator. */
+PyAPI_FUNC(void) PyObject_SetArenaAllocator(PyObjectArenaAllocator *allocator);
+
+
+PyAPI_FUNC(Py_ssize_t) _PyGC_CollectNoFail(void);
+PyAPI_FUNC(Py_ssize_t) _PyGC_CollectIfEnabled(void);
+
+
+/* Test if an object implements the garbage collector protocol */
+PyAPI_FUNC(int) PyObject_IS_GC(PyObject *obj);
+
+
+/* Code built with Py_BUILD_CORE must include pycore_gc.h instead which
+ defines a different _PyGC_FINALIZED() macro. */
+#ifndef Py_BUILD_CORE
+ // Kept for backward compatibility with Python 3.8
+# define _PyGC_FINALIZED(o) PyObject_GC_IsFinalized(o)
+#endif
+
+PyAPI_FUNC(PyObject *) _PyObject_GC_Malloc(size_t size);
+PyAPI_FUNC(PyObject *) _PyObject_GC_Calloc(size_t size);
+
+
+/* Test if a type supports weak references */
+#define PyType_SUPPORTS_WEAKREFS(t) ((t)->tp_weaklistoffset > 0)
+
+PyAPI_FUNC(PyObject **) PyObject_GET_WEAKREFS_LISTPTR(PyObject *op);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/pyerrors.h b/contrib/tools/python3/src/Include/cpython/pyerrors.h
index 9d55575a4f..9c87b53979 100644
--- a/contrib/tools/python3/src/Include/cpython/pyerrors.h
+++ b/contrib/tools/python3/src/Include/cpython/pyerrors.h
@@ -1,200 +1,200 @@
-#ifndef Py_CPYTHON_ERRORS_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Error objects */
-
-/* PyException_HEAD defines the initial segment of every exception class. */
-#define PyException_HEAD PyObject_HEAD PyObject *dict;\
- PyObject *args; PyObject *traceback;\
- PyObject *context; PyObject *cause;\
- char suppress_context;
-
-typedef struct {
- PyException_HEAD
-} PyBaseExceptionObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *msg;
- PyObject *filename;
- PyObject *lineno;
- PyObject *offset;
- PyObject *text;
- PyObject *print_file_and_line;
-} PySyntaxErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *msg;
- PyObject *name;
- PyObject *path;
-} PyImportErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *encoding;
- PyObject *object;
- Py_ssize_t start;
- Py_ssize_t end;
- PyObject *reason;
-} PyUnicodeErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *code;
-} PySystemExitObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *myerrno;
- PyObject *strerror;
- PyObject *filename;
- PyObject *filename2;
-#ifdef MS_WINDOWS
- PyObject *winerror;
-#endif
- Py_ssize_t written; /* only for BlockingIOError, -1 otherwise */
-} PyOSErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *value;
-} PyStopIterationObject;
-
-/* Compatibility typedefs */
-typedef PyOSErrorObject PyEnvironmentErrorObject;
-#ifdef MS_WINDOWS
-typedef PyOSErrorObject PyWindowsErrorObject;
-#endif
-
-/* Error handling definitions */
-
-PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *);
-PyAPI_FUNC(_PyErr_StackItem*) _PyErr_GetTopmostException(PyThreadState *tstate);
-PyAPI_FUNC(void) _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, PyObject **);
-
-/* Context manipulation (PEP 3134) */
-
-PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
-
-/* */
-
-#define PyExceptionClass_Name(x) (((PyTypeObject*)(x))->tp_name)
-
-/* Convenience functions */
-
-#ifdef MS_WINDOWS
-Py_DEPRECATED(3.3)
-PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename(
- PyObject *, const Py_UNICODE *);
-#endif /* MS_WINDOWS */
-
-/* Like PyErr_Format(), but saves current exception as __context__ and
- __cause__.
- */
-PyAPI_FUNC(PyObject *) _PyErr_FormatFromCause(
- PyObject *exception,
- const char *format, /* ASCII-encoded string */
- ...
- );
-
-#ifdef MS_WINDOWS
-/* XXX redeclare to use WSTRING */
-Py_DEPRECATED(3.3)
-PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithUnicodeFilename(
- int, const Py_UNICODE *);
-Py_DEPRECATED(3.3)
-PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithUnicodeFilename(
- PyObject *,int, const Py_UNICODE *);
-#endif
-
-/* In exceptions.c */
-
-/* Helper that attempts to replace the current exception with one of the
- * same type but with a prefix added to the exception text. The resulting
- * exception description looks like:
- *
- * prefix (exc_type: original_exc_str)
- *
- * Only some exceptions can be safely replaced. If the function determines
- * it isn't safe to perform the replacement, it will leave the original
- * unmodified exception in place.
- *
- * Returns a borrowed reference to the new exception (if any), NULL if the
- * existing exception was left in place.
- */
-PyAPI_FUNC(PyObject *) _PyErr_TrySetFromCause(
- const char *prefix_format, /* ASCII-encoded string */
- ...
- );
-
-/* In signalmodule.c */
-
-int PySignal_SetWakeupFd(int fd);
-PyAPI_FUNC(int) _PyErr_CheckSignals(void);
-
-/* Support for adding program text to SyntaxErrors */
-
-PyAPI_FUNC(void) PyErr_SyntaxLocationObject(
- PyObject *filename,
- int lineno,
- int col_offset);
-
-PyAPI_FUNC(PyObject *) PyErr_ProgramTextObject(
- PyObject *filename,
- int lineno);
-
-/* Create a UnicodeEncodeError object.
- *
- * TODO: This API will be removed in Python 3.11.
- */
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_Create(
- const char *encoding, /* UTF-8 encoded string */
- const Py_UNICODE *object,
- Py_ssize_t length,
- Py_ssize_t start,
- Py_ssize_t end,
- const char *reason /* UTF-8 encoded string */
- );
-
-/* Create a UnicodeTranslateError object.
- *
- * TODO: This API will be removed in Python 3.11.
- */
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_Create(
- const Py_UNICODE *object,
- Py_ssize_t length,
- Py_ssize_t start,
- Py_ssize_t end,
- const char *reason /* UTF-8 encoded string */
- );
-PyAPI_FUNC(PyObject *) _PyUnicodeTranslateError_Create(
- PyObject *object,
- Py_ssize_t start,
- Py_ssize_t end,
- const char *reason /* UTF-8 encoded string */
- );
-
-PyAPI_FUNC(void) _PyErr_WriteUnraisableMsg(
- const char *err_msg,
- PyObject *obj);
-
-PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFunc(
- const char *func,
- const char *message);
-
-PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFormat(
- const char *func,
- const char *format,
- ...);
-
-#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, message)
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_ERRORS_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Error objects */
+
+/* PyException_HEAD defines the initial segment of every exception class. */
+#define PyException_HEAD PyObject_HEAD PyObject *dict;\
+ PyObject *args; PyObject *traceback;\
+ PyObject *context; PyObject *cause;\
+ char suppress_context;
+
+typedef struct {
+ PyException_HEAD
+} PyBaseExceptionObject;
+
+typedef struct {
+ PyException_HEAD
+ PyObject *msg;
+ PyObject *filename;
+ PyObject *lineno;
+ PyObject *offset;
+ PyObject *text;
+ PyObject *print_file_and_line;
+} PySyntaxErrorObject;
+
+typedef struct {
+ PyException_HEAD
+ PyObject *msg;
+ PyObject *name;
+ PyObject *path;
+} PyImportErrorObject;
+
+typedef struct {
+ PyException_HEAD
+ PyObject *encoding;
+ PyObject *object;
+ Py_ssize_t start;
+ Py_ssize_t end;
+ PyObject *reason;
+} PyUnicodeErrorObject;
+
+typedef struct {
+ PyException_HEAD
+ PyObject *code;
+} PySystemExitObject;
+
+typedef struct {
+ PyException_HEAD
+ PyObject *myerrno;
+ PyObject *strerror;
+ PyObject *filename;
+ PyObject *filename2;
+#ifdef MS_WINDOWS
+ PyObject *winerror;
+#endif
+ Py_ssize_t written; /* only for BlockingIOError, -1 otherwise */
+} PyOSErrorObject;
+
+typedef struct {
+ PyException_HEAD
+ PyObject *value;
+} PyStopIterationObject;
+
+/* Compatibility typedefs */
+typedef PyOSErrorObject PyEnvironmentErrorObject;
+#ifdef MS_WINDOWS
+typedef PyOSErrorObject PyWindowsErrorObject;
+#endif
+
+/* Error handling definitions */
+
+PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *);
+PyAPI_FUNC(_PyErr_StackItem*) _PyErr_GetTopmostException(PyThreadState *tstate);
+PyAPI_FUNC(void) _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, PyObject **);
+
+/* Context manipulation (PEP 3134) */
+
+PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
+
+/* */
+
+#define PyExceptionClass_Name(x) (((PyTypeObject*)(x))->tp_name)
+
+/* Convenience functions */
+
+#ifdef MS_WINDOWS
+Py_DEPRECATED(3.3)
+PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename(
+ PyObject *, const Py_UNICODE *);
+#endif /* MS_WINDOWS */
+
+/* Like PyErr_Format(), but saves current exception as __context__ and
+ __cause__.
+ */
+PyAPI_FUNC(PyObject *) _PyErr_FormatFromCause(
+ PyObject *exception,
+ const char *format, /* ASCII-encoded string */
+ ...
+ );
+
+#ifdef MS_WINDOWS
+/* XXX redeclare to use WSTRING */
+Py_DEPRECATED(3.3)
+PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithUnicodeFilename(
+ int, const Py_UNICODE *);
+Py_DEPRECATED(3.3)
+PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithUnicodeFilename(
+ PyObject *,int, const Py_UNICODE *);
+#endif
+
+/* In exceptions.c */
+
+/* Helper that attempts to replace the current exception with one of the
+ * same type but with a prefix added to the exception text. The resulting
+ * exception description looks like:
+ *
+ * prefix (exc_type: original_exc_str)
+ *
+ * Only some exceptions can be safely replaced. If the function determines
+ * it isn't safe to perform the replacement, it will leave the original
+ * unmodified exception in place.
+ *
+ * Returns a borrowed reference to the new exception (if any), NULL if the
+ * existing exception was left in place.
+ */
+PyAPI_FUNC(PyObject *) _PyErr_TrySetFromCause(
+ const char *prefix_format, /* ASCII-encoded string */
+ ...
+ );
+
+/* In signalmodule.c */
+
+int PySignal_SetWakeupFd(int fd);
+PyAPI_FUNC(int) _PyErr_CheckSignals(void);
+
+/* Support for adding program text to SyntaxErrors */
+
+PyAPI_FUNC(void) PyErr_SyntaxLocationObject(
+ PyObject *filename,
+ int lineno,
+ int col_offset);
+
+PyAPI_FUNC(PyObject *) PyErr_ProgramTextObject(
+ PyObject *filename,
+ int lineno);
+
+/* Create a UnicodeEncodeError object.
+ *
+ * TODO: This API will be removed in Python 3.11.
+ */
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_Create(
+ const char *encoding, /* UTF-8 encoded string */
+ const Py_UNICODE *object,
+ Py_ssize_t length,
+ Py_ssize_t start,
+ Py_ssize_t end,
+ const char *reason /* UTF-8 encoded string */
+ );
+
+/* Create a UnicodeTranslateError object.
+ *
+ * TODO: This API will be removed in Python 3.11.
+ */
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_Create(
+ const Py_UNICODE *object,
+ Py_ssize_t length,
+ Py_ssize_t start,
+ Py_ssize_t end,
+ const char *reason /* UTF-8 encoded string */
+ );
+PyAPI_FUNC(PyObject *) _PyUnicodeTranslateError_Create(
+ PyObject *object,
+ Py_ssize_t start,
+ Py_ssize_t end,
+ const char *reason /* UTF-8 encoded string */
+ );
+
+PyAPI_FUNC(void) _PyErr_WriteUnraisableMsg(
+ const char *err_msg,
+ PyObject *obj);
+
+PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFunc(
+ const char *func,
+ const char *message);
+
+PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFormat(
+ const char *func,
+ const char *format,
+ ...);
+
+#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, message)
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/pylifecycle.h b/contrib/tools/python3/src/Include/cpython/pylifecycle.h
index ebb6f48b3c..eb523b82e1 100644
--- a/contrib/tools/python3/src/Include/cpython/pylifecycle.h
+++ b/contrib/tools/python3/src/Include/cpython/pylifecycle.h
@@ -1,72 +1,72 @@
-#ifndef Py_CPYTHON_PYLIFECYCLE_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Only used by applications that embed the interpreter and need to
- * override the standard encoding determination mechanism
- */
-PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding,
- const char *errors);
-
-/* PEP 432 Multi-phase initialization API (Private while provisional!) */
-
-PyAPI_FUNC(PyStatus) Py_PreInitialize(
- const PyPreConfig *src_config);
-PyAPI_FUNC(PyStatus) Py_PreInitializeFromBytesArgs(
- const PyPreConfig *src_config,
- Py_ssize_t argc,
- char **argv);
-PyAPI_FUNC(PyStatus) Py_PreInitializeFromArgs(
- const PyPreConfig *src_config,
- Py_ssize_t argc,
- wchar_t **argv);
-
-PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
-
-
-/* Initialization and finalization */
-
-PyAPI_FUNC(PyStatus) Py_InitializeFromConfig(
- const PyConfig *config);
-PyAPI_FUNC(PyStatus) _Py_InitializeMain(void);
-
-PyAPI_FUNC(int) Py_RunMain(void);
-
-
-PyAPI_FUNC(void) _Py_NO_RETURN Py_ExitStatusException(PyStatus err);
-
-/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
- * exit functions.
- */
-PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
-
-/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
-PyAPI_FUNC(void) _Py_RestoreSignals(void);
-
-PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
-
-PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
-
-PyAPI_FUNC(const char *) _Py_gitidentifier(void);
-PyAPI_FUNC(const char *) _Py_gitversion(void);
-
-PyAPI_FUNC(int) _Py_IsFinalizing(void);
-
-/* Random */
-PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
-PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
-
-/* Legacy locale support */
-PyAPI_FUNC(int) _Py_CoerceLegacyLocale(int warn);
-PyAPI_FUNC(int) _Py_LegacyLocaleDetected(int warn);
-PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
-
-PyAPI_FUNC(PyThreadState *) _Py_NewInterpreter(int isolated_subinterpreter);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_PYLIFECYCLE_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Only used by applications that embed the interpreter and need to
+ * override the standard encoding determination mechanism
+ */
+PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding,
+ const char *errors);
+
+/* PEP 432 Multi-phase initialization API (Private while provisional!) */
+
+PyAPI_FUNC(PyStatus) Py_PreInitialize(
+ const PyPreConfig *src_config);
+PyAPI_FUNC(PyStatus) Py_PreInitializeFromBytesArgs(
+ const PyPreConfig *src_config,
+ Py_ssize_t argc,
+ char **argv);
+PyAPI_FUNC(PyStatus) Py_PreInitializeFromArgs(
+ const PyPreConfig *src_config,
+ Py_ssize_t argc,
+ wchar_t **argv);
+
+PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
+
+
+/* Initialization and finalization */
+
+PyAPI_FUNC(PyStatus) Py_InitializeFromConfig(
+ const PyConfig *config);
+PyAPI_FUNC(PyStatus) _Py_InitializeMain(void);
+
+PyAPI_FUNC(int) Py_RunMain(void);
+
+
+PyAPI_FUNC(void) _Py_NO_RETURN Py_ExitStatusException(PyStatus err);
+
+/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
+ * exit functions.
+ */
+PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
+
+/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
+PyAPI_FUNC(void) _Py_RestoreSignals(void);
+
+PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
+
+PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
+
+PyAPI_FUNC(const char *) _Py_gitidentifier(void);
+PyAPI_FUNC(const char *) _Py_gitversion(void);
+
+PyAPI_FUNC(int) _Py_IsFinalizing(void);
+
+/* Random */
+PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
+PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
+
+/* Legacy locale support */
+PyAPI_FUNC(int) _Py_CoerceLegacyLocale(int warn);
+PyAPI_FUNC(int) _Py_LegacyLocaleDetected(int warn);
+PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
+
+PyAPI_FUNC(PyThreadState *) _Py_NewInterpreter(int isolated_subinterpreter);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/pymem.h b/contrib/tools/python3/src/Include/cpython/pymem.h
index fb225556a2..79f063b121 100644
--- a/contrib/tools/python3/src/Include/cpython/pymem.h
+++ b/contrib/tools/python3/src/Include/cpython/pymem.h
@@ -1,108 +1,108 @@
-#ifndef Py_CPYTHON_PYMEM_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(void *) PyMem_RawMalloc(size_t size);
-PyAPI_FUNC(void *) PyMem_RawCalloc(size_t nelem, size_t elsize);
-PyAPI_FUNC(void *) PyMem_RawRealloc(void *ptr, size_t new_size);
-PyAPI_FUNC(void) PyMem_RawFree(void *ptr);
-
-/* Try to get the allocators name set by _PyMem_SetupAllocators(). */
-PyAPI_FUNC(const char*) _PyMem_GetCurrentAllocatorName(void);
-
-PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
-
-/* strdup() using PyMem_RawMalloc() */
-PyAPI_FUNC(char *) _PyMem_RawStrdup(const char *str);
-
-/* strdup() using PyMem_Malloc() */
-PyAPI_FUNC(char *) _PyMem_Strdup(const char *str);
-
-/* wcsdup() using PyMem_RawMalloc() */
-PyAPI_FUNC(wchar_t*) _PyMem_RawWcsdup(const wchar_t *str);
-
-
-typedef enum {
- /* PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree() */
- PYMEM_DOMAIN_RAW,
-
- /* PyMem_Malloc(), PyMem_Realloc() and PyMem_Free() */
- PYMEM_DOMAIN_MEM,
-
- /* PyObject_Malloc(), PyObject_Realloc() and PyObject_Free() */
- PYMEM_DOMAIN_OBJ
-} PyMemAllocatorDomain;
-
-typedef enum {
- PYMEM_ALLOCATOR_NOT_SET = 0,
- PYMEM_ALLOCATOR_DEFAULT = 1,
- PYMEM_ALLOCATOR_DEBUG = 2,
- PYMEM_ALLOCATOR_MALLOC = 3,
- PYMEM_ALLOCATOR_MALLOC_DEBUG = 4,
-#ifdef WITH_PYMALLOC
- PYMEM_ALLOCATOR_PYMALLOC = 5,
- PYMEM_ALLOCATOR_PYMALLOC_DEBUG = 6,
-#endif
-} PyMemAllocatorName;
-
-
-typedef struct {
- /* user context passed as the first argument to the 4 functions */
- void *ctx;
-
- /* allocate a memory block */
- void* (*malloc) (void *ctx, size_t size);
-
- /* allocate a memory block initialized by zeros */
- void* (*calloc) (void *ctx, size_t nelem, size_t elsize);
-
- /* allocate or resize a memory block */
- void* (*realloc) (void *ctx, void *ptr, size_t new_size);
-
- /* release a memory block */
- void (*free) (void *ctx, void *ptr);
-} PyMemAllocatorEx;
-
-/* Get the memory block allocator of the specified domain. */
-PyAPI_FUNC(void) PyMem_GetAllocator(PyMemAllocatorDomain domain,
- PyMemAllocatorEx *allocator);
-
-/* Set the memory block allocator of the specified domain.
-
- The new allocator must return a distinct non-NULL pointer when requesting
- zero bytes.
-
- For the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL
- is not held when the allocator is called.
-
- If the new allocator is not a hook (don't call the previous allocator), the
- PyMem_SetupDebugHooks() function must be called to reinstall the debug hooks
- on top on the new allocator. */
-PyAPI_FUNC(void) PyMem_SetAllocator(PyMemAllocatorDomain domain,
- PyMemAllocatorEx *allocator);
-
-/* Setup hooks to detect bugs in the following Python memory allocator
- functions:
-
- - PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()
- - PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()
- - PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()
-
- Newly allocated memory is filled with the byte 0xCB, freed memory is filled
- with the byte 0xDB. Additional checks:
-
- - detect API violations, ex: PyObject_Free() called on a buffer allocated
- by PyMem_Malloc()
- - detect write before the start of the buffer (buffer underflow)
- - detect write after the end of the buffer (buffer overflow)
-
- The function does nothing if Python is not compiled is debug mode. */
-PyAPI_FUNC(void) PyMem_SetupDebugHooks(void);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_PYMEM_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(void *) PyMem_RawMalloc(size_t size);
+PyAPI_FUNC(void *) PyMem_RawCalloc(size_t nelem, size_t elsize);
+PyAPI_FUNC(void *) PyMem_RawRealloc(void *ptr, size_t new_size);
+PyAPI_FUNC(void) PyMem_RawFree(void *ptr);
+
+/* Try to get the allocators name set by _PyMem_SetupAllocators(). */
+PyAPI_FUNC(const char*) _PyMem_GetCurrentAllocatorName(void);
+
+PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
+
+/* strdup() using PyMem_RawMalloc() */
+PyAPI_FUNC(char *) _PyMem_RawStrdup(const char *str);
+
+/* strdup() using PyMem_Malloc() */
+PyAPI_FUNC(char *) _PyMem_Strdup(const char *str);
+
+/* wcsdup() using PyMem_RawMalloc() */
+PyAPI_FUNC(wchar_t*) _PyMem_RawWcsdup(const wchar_t *str);
+
+
+typedef enum {
+ /* PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree() */
+ PYMEM_DOMAIN_RAW,
+
+ /* PyMem_Malloc(), PyMem_Realloc() and PyMem_Free() */
+ PYMEM_DOMAIN_MEM,
+
+ /* PyObject_Malloc(), PyObject_Realloc() and PyObject_Free() */
+ PYMEM_DOMAIN_OBJ
+} PyMemAllocatorDomain;
+
+typedef enum {
+ PYMEM_ALLOCATOR_NOT_SET = 0,
+ PYMEM_ALLOCATOR_DEFAULT = 1,
+ PYMEM_ALLOCATOR_DEBUG = 2,
+ PYMEM_ALLOCATOR_MALLOC = 3,
+ PYMEM_ALLOCATOR_MALLOC_DEBUG = 4,
+#ifdef WITH_PYMALLOC
+ PYMEM_ALLOCATOR_PYMALLOC = 5,
+ PYMEM_ALLOCATOR_PYMALLOC_DEBUG = 6,
+#endif
+} PyMemAllocatorName;
+
+
+typedef struct {
+ /* user context passed as the first argument to the 4 functions */
+ void *ctx;
+
+ /* allocate a memory block */
+ void* (*malloc) (void *ctx, size_t size);
+
+ /* allocate a memory block initialized by zeros */
+ void* (*calloc) (void *ctx, size_t nelem, size_t elsize);
+
+ /* allocate or resize a memory block */
+ void* (*realloc) (void *ctx, void *ptr, size_t new_size);
+
+ /* release a memory block */
+ void (*free) (void *ctx, void *ptr);
+} PyMemAllocatorEx;
+
+/* Get the memory block allocator of the specified domain. */
+PyAPI_FUNC(void) PyMem_GetAllocator(PyMemAllocatorDomain domain,
+ PyMemAllocatorEx *allocator);
+
+/* Set the memory block allocator of the specified domain.
+
+ The new allocator must return a distinct non-NULL pointer when requesting
+ zero bytes.
+
+ For the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL
+ is not held when the allocator is called.
+
+ If the new allocator is not a hook (don't call the previous allocator), the
+ PyMem_SetupDebugHooks() function must be called to reinstall the debug hooks
+ on top on the new allocator. */
+PyAPI_FUNC(void) PyMem_SetAllocator(PyMemAllocatorDomain domain,
+ PyMemAllocatorEx *allocator);
+
+/* Setup hooks to detect bugs in the following Python memory allocator
+ functions:
+
+ - PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()
+ - PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()
+ - PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()
+
+ Newly allocated memory is filled with the byte 0xCB, freed memory is filled
+ with the byte 0xDB. Additional checks:
+
+ - detect API violations, ex: PyObject_Free() called on a buffer allocated
+ by PyMem_Malloc()
+ - detect write before the start of the buffer (buffer underflow)
+ - detect write after the end of the buffer (buffer overflow)
+
+ The function does nothing if Python is not compiled is debug mode. */
+PyAPI_FUNC(void) PyMem_SetupDebugHooks(void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/pystate.h b/contrib/tools/python3/src/Include/cpython/pystate.h
index 5d23d24448..0eb601fd7c 100644
--- a/contrib/tools/python3/src/Include/cpython/pystate.h
+++ b/contrib/tools/python3/src/Include/cpython/pystate.h
@@ -1,261 +1,261 @@
-#ifndef Py_CPYTHON_PYSTATE_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(int) _PyInterpreterState_RequiresIDRef(PyInterpreterState *);
-PyAPI_FUNC(void) _PyInterpreterState_RequireIDRef(PyInterpreterState *, int);
-
-PyAPI_FUNC(PyObject *) _PyInterpreterState_GetMainModule(PyInterpreterState *);
-
-/* State unique per thread */
-
-/* Py_tracefunc return -1 when raising an exception, or 0 for success. */
-typedef int (*Py_tracefunc)(PyObject *, PyFrameObject *, int, PyObject *);
-
-/* The following values are used for 'what' for tracefunc functions
- *
- * To add a new kind of trace event, also update "trace_init" in
- * Python/sysmodule.c to define the Python level event name
- */
-#define PyTrace_CALL 0
-#define PyTrace_EXCEPTION 1
-#define PyTrace_LINE 2
-#define PyTrace_RETURN 3
-#define PyTrace_C_CALL 4
-#define PyTrace_C_EXCEPTION 5
-#define PyTrace_C_RETURN 6
-#define PyTrace_OPCODE 7
-
-
-typedef struct _err_stackitem {
- /* This struct represents an entry on the exception stack, which is a
- * per-coroutine state. (Coroutine in the computer science sense,
- * including the thread and generators).
- * This ensures that the exception state is not impacted by "yields"
- * from an except handler.
- */
- PyObject *exc_type, *exc_value, *exc_traceback;
-
- struct _err_stackitem *previous_item;
-
-} _PyErr_StackItem;
-
-
-// The PyThreadState typedef is in Include/pystate.h.
-struct _ts {
- /* See Python/ceval.c for comments explaining most fields */
-
- struct _ts *prev;
- struct _ts *next;
- PyInterpreterState *interp;
-
- /* Borrowed reference to the current frame (it can be NULL) */
- PyFrameObject *frame;
- int recursion_depth;
- char overflowed; /* The stack has overflowed. Allow 50 more calls
- to handle the runtime error. */
- char recursion_critical; /* The current calls must not cause
- a stack overflow. */
- int stackcheck_counter;
-
- /* 'tracing' keeps track of the execution depth when tracing/profiling.
- This is to prevent the actual trace/profile code from being recorded in
- the trace/profile. */
- int tracing;
- int use_tracing;
-
- Py_tracefunc c_profilefunc;
- Py_tracefunc c_tracefunc;
- PyObject *c_profileobj;
- PyObject *c_traceobj;
-
- /* The exception currently being raised */
- PyObject *curexc_type;
- PyObject *curexc_value;
- PyObject *curexc_traceback;
-
- /* The exception currently being handled, if no coroutines/generators
- * are present. Always last element on the stack referred to be exc_info.
- */
- _PyErr_StackItem exc_state;
-
- /* Pointer to the top of the stack of the exceptions currently
- * being handled */
- _PyErr_StackItem *exc_info;
-
- PyObject *dict; /* Stores per-thread state */
-
- int gilstate_counter;
-
- PyObject *async_exc; /* Asynchronous exception to raise */
- unsigned long thread_id; /* Thread id where this tstate was created */
-
- int trash_delete_nesting;
- PyObject *trash_delete_later;
-
- /* Called when a thread state is deleted normally, but not when it
- * is destroyed after fork().
- * Pain: to prevent rare but fatal shutdown errors (issue 18808),
- * Thread.join() must wait for the join'ed thread's tstate to be unlinked
- * from the tstate chain. That happens at the end of a thread's life,
- * in pystate.c.
- * The obvious way doesn't quite work: create a lock which the tstate
- * unlinking code releases, and have Thread.join() wait to acquire that
- * lock. The problem is that we _are_ at the end of the thread's life:
- * if the thread holds the last reference to the lock, decref'ing the
- * lock will delete the lock, and that may trigger arbitrary Python code
- * if there's a weakref, with a callback, to the lock. But by this time
- * _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest
- * of C code can be allowed to run (in particular it must not be possible to
- * release the GIL).
- * So instead of holding the lock directly, the tstate holds a weakref to
- * the lock: that's the value of on_delete_data below. Decref'ing a
- * weakref is harmless.
- * on_delete points to _threadmodule.c's static release_sentinel() function.
- * After the tstate is unlinked, release_sentinel is called with the
- * weakref-to-lock (on_delete_data) argument, and release_sentinel releases
- * the indirectly held lock.
- */
- void (*on_delete)(void *);
- void *on_delete_data;
-
- int coroutine_origin_tracking_depth;
-
- PyObject *async_gen_firstiter;
- PyObject *async_gen_finalizer;
-
- PyObject *context;
- uint64_t context_ver;
-
- /* Unique thread state id. */
- uint64_t id;
-
- /* XXX signal handlers should also be here */
-
-};
-
-// Alias for backward compatibility with Python 3.8
-#define _PyInterpreterState_Get PyInterpreterState_Get
-
-PyAPI_FUNC(PyThreadState *) _PyThreadState_Prealloc(PyInterpreterState *);
-
-/* Similar to PyThreadState_Get(), but don't issue a fatal error
- * if it is NULL. */
-PyAPI_FUNC(PyThreadState *) _PyThreadState_UncheckedGet(void);
-
-PyAPI_FUNC(PyObject *) _PyThreadState_GetDict(PyThreadState *tstate);
-
-/* PyGILState */
-
-/* Helper/diagnostic function - return 1 if the current thread
- currently holds the GIL, 0 otherwise.
-
- The function returns 1 if _PyGILState_check_enabled is non-zero. */
-PyAPI_FUNC(int) PyGILState_Check(void);
-
-/* Get the single PyInterpreterState used by this process' GILState
- implementation.
-
- This function doesn't check for error. Return NULL before _PyGILState_Init()
- is called and after _PyGILState_Fini() is called.
-
- See also _PyInterpreterState_Get() and _PyInterpreterState_GET(). */
-PyAPI_FUNC(PyInterpreterState *) _PyGILState_GetInterpreterStateUnsafe(void);
-
-/* The implementation of sys._current_frames() Returns a dict mapping
- thread id to that thread's current frame.
-*/
-PyAPI_FUNC(PyObject *) _PyThread_CurrentFrames(void);
-
-/* Routines for advanced debuggers, requested by David Beazley.
- Don't use unless you know what you are doing! */
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Main(void);
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Head(void);
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Next(PyInterpreterState *);
-PyAPI_FUNC(PyThreadState *) PyInterpreterState_ThreadHead(PyInterpreterState *);
-PyAPI_FUNC(PyThreadState *) PyThreadState_Next(PyThreadState *);
-PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
-
-/* Frame evaluation API */
-
-typedef PyObject* (*_PyFrameEvalFunction)(PyThreadState *tstate, PyFrameObject *, int);
-
-PyAPI_FUNC(_PyFrameEvalFunction) _PyInterpreterState_GetEvalFrameFunc(
- PyInterpreterState *interp);
-PyAPI_FUNC(void) _PyInterpreterState_SetEvalFrameFunc(
- PyInterpreterState *interp,
- _PyFrameEvalFunction eval_frame);
-
-PyAPI_FUNC(const PyConfig*) _PyInterpreterState_GetConfig(PyInterpreterState *interp);
-
-// Get the configuration of the currrent interpreter.
-// The caller must hold the GIL.
-PyAPI_FUNC(const PyConfig*) _Py_GetConfig(void);
-
-
-/* cross-interpreter data */
-
-struct _xid;
-
-// _PyCrossInterpreterData is similar to Py_buffer as an effectively
-// opaque struct that holds data outside the object machinery. This
-// is necessary to pass safely between interpreters in the same process.
-typedef struct _xid {
- // data is the cross-interpreter-safe derivation of a Python object
- // (see _PyObject_GetCrossInterpreterData). It will be NULL if the
- // new_object func (below) encodes the data.
- void *data;
- // obj is the Python object from which the data was derived. This
- // is non-NULL only if the data remains bound to the object in some
- // way, such that the object must be "released" (via a decref) when
- // the data is released. In that case the code that sets the field,
- // likely a registered "crossinterpdatafunc", is responsible for
- // ensuring it owns the reference (i.e. incref).
- PyObject *obj;
- // interp is the ID of the owning interpreter of the original
- // object. It corresponds to the active interpreter when
- // _PyObject_GetCrossInterpreterData() was called. This should only
- // be set by the cross-interpreter machinery.
- //
- // We use the ID rather than the PyInterpreterState to avoid issues
- // with deleted interpreters. Note that IDs are never re-used, so
- // each one will always correspond to a specific interpreter
- // (whether still alive or not).
- int64_t interp;
- // new_object is a function that returns a new object in the current
- // interpreter given the data. The resulting object (a new
- // reference) will be equivalent to the original object. This field
- // is required.
- PyObject *(*new_object)(struct _xid *);
- // free is called when the data is released. If it is NULL then
- // nothing will be done to free the data. For some types this is
- // okay (e.g. bytes) and for those types this field should be set
- // to NULL. However, for most the data was allocated just for
- // cross-interpreter use, so it must be freed when
- // _PyCrossInterpreterData_Release is called or the memory will
- // leak. In that case, at the very least this field should be set
- // to PyMem_RawFree (the default if not explicitly set to NULL).
- // The call will happen with the original interpreter activated.
- void (*free)(void *);
-} _PyCrossInterpreterData;
-
-PyAPI_FUNC(int) _PyObject_GetCrossInterpreterData(PyObject *, _PyCrossInterpreterData *);
-PyAPI_FUNC(PyObject *) _PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *);
-PyAPI_FUNC(void) _PyCrossInterpreterData_Release(_PyCrossInterpreterData *);
-
-PyAPI_FUNC(int) _PyObject_CheckCrossInterpreterData(PyObject *);
-
-/* cross-interpreter data registry */
-
-typedef int (*crossinterpdatafunc)(PyObject *, struct _xid *);
-
-PyAPI_FUNC(int) _PyCrossInterpreterData_RegisterClass(PyTypeObject *, crossinterpdatafunc);
-PyAPI_FUNC(crossinterpdatafunc) _PyCrossInterpreterData_Lookup(PyObject *);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_PYSTATE_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(int) _PyInterpreterState_RequiresIDRef(PyInterpreterState *);
+PyAPI_FUNC(void) _PyInterpreterState_RequireIDRef(PyInterpreterState *, int);
+
+PyAPI_FUNC(PyObject *) _PyInterpreterState_GetMainModule(PyInterpreterState *);
+
+/* State unique per thread */
+
+/* Py_tracefunc return -1 when raising an exception, or 0 for success. */
+typedef int (*Py_tracefunc)(PyObject *, PyFrameObject *, int, PyObject *);
+
+/* The following values are used for 'what' for tracefunc functions
+ *
+ * To add a new kind of trace event, also update "trace_init" in
+ * Python/sysmodule.c to define the Python level event name
+ */
+#define PyTrace_CALL 0
+#define PyTrace_EXCEPTION 1
+#define PyTrace_LINE 2
+#define PyTrace_RETURN 3
+#define PyTrace_C_CALL 4
+#define PyTrace_C_EXCEPTION 5
+#define PyTrace_C_RETURN 6
+#define PyTrace_OPCODE 7
+
+
+typedef struct _err_stackitem {
+ /* This struct represents an entry on the exception stack, which is a
+ * per-coroutine state. (Coroutine in the computer science sense,
+ * including the thread and generators).
+ * This ensures that the exception state is not impacted by "yields"
+ * from an except handler.
+ */
+ PyObject *exc_type, *exc_value, *exc_traceback;
+
+ struct _err_stackitem *previous_item;
+
+} _PyErr_StackItem;
+
+
+// The PyThreadState typedef is in Include/pystate.h.
+struct _ts {
+ /* See Python/ceval.c for comments explaining most fields */
+
+ struct _ts *prev;
+ struct _ts *next;
+ PyInterpreterState *interp;
+
+ /* Borrowed reference to the current frame (it can be NULL) */
+ PyFrameObject *frame;
+ int recursion_depth;
+ char overflowed; /* The stack has overflowed. Allow 50 more calls
+ to handle the runtime error. */
+ char recursion_critical; /* The current calls must not cause
+ a stack overflow. */
+ int stackcheck_counter;
+
+ /* 'tracing' keeps track of the execution depth when tracing/profiling.
+ This is to prevent the actual trace/profile code from being recorded in
+ the trace/profile. */
+ int tracing;
+ int use_tracing;
+
+ Py_tracefunc c_profilefunc;
+ Py_tracefunc c_tracefunc;
+ PyObject *c_profileobj;
+ PyObject *c_traceobj;
+
+ /* The exception currently being raised */
+ PyObject *curexc_type;
+ PyObject *curexc_value;
+ PyObject *curexc_traceback;
+
+ /* The exception currently being handled, if no coroutines/generators
+ * are present. Always last element on the stack referred to be exc_info.
+ */
+ _PyErr_StackItem exc_state;
+
+ /* Pointer to the top of the stack of the exceptions currently
+ * being handled */
+ _PyErr_StackItem *exc_info;
+
+ PyObject *dict; /* Stores per-thread state */
+
+ int gilstate_counter;
+
+ PyObject *async_exc; /* Asynchronous exception to raise */
+ unsigned long thread_id; /* Thread id where this tstate was created */
+
+ int trash_delete_nesting;
+ PyObject *trash_delete_later;
+
+ /* Called when a thread state is deleted normally, but not when it
+ * is destroyed after fork().
+ * Pain: to prevent rare but fatal shutdown errors (issue 18808),
+ * Thread.join() must wait for the join'ed thread's tstate to be unlinked
+ * from the tstate chain. That happens at the end of a thread's life,
+ * in pystate.c.
+ * The obvious way doesn't quite work: create a lock which the tstate
+ * unlinking code releases, and have Thread.join() wait to acquire that
+ * lock. The problem is that we _are_ at the end of the thread's life:
+ * if the thread holds the last reference to the lock, decref'ing the
+ * lock will delete the lock, and that may trigger arbitrary Python code
+ * if there's a weakref, with a callback, to the lock. But by this time
+ * _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest
+ * of C code can be allowed to run (in particular it must not be possible to
+ * release the GIL).
+ * So instead of holding the lock directly, the tstate holds a weakref to
+ * the lock: that's the value of on_delete_data below. Decref'ing a
+ * weakref is harmless.
+ * on_delete points to _threadmodule.c's static release_sentinel() function.
+ * After the tstate is unlinked, release_sentinel is called with the
+ * weakref-to-lock (on_delete_data) argument, and release_sentinel releases
+ * the indirectly held lock.
+ */
+ void (*on_delete)(void *);
+ void *on_delete_data;
+
+ int coroutine_origin_tracking_depth;
+
+ PyObject *async_gen_firstiter;
+ PyObject *async_gen_finalizer;
+
+ PyObject *context;
+ uint64_t context_ver;
+
+ /* Unique thread state id. */
+ uint64_t id;
+
+ /* XXX signal handlers should also be here */
+
+};
+
+// Alias for backward compatibility with Python 3.8
+#define _PyInterpreterState_Get PyInterpreterState_Get
+
+PyAPI_FUNC(PyThreadState *) _PyThreadState_Prealloc(PyInterpreterState *);
+
+/* Similar to PyThreadState_Get(), but don't issue a fatal error
+ * if it is NULL. */
+PyAPI_FUNC(PyThreadState *) _PyThreadState_UncheckedGet(void);
+
+PyAPI_FUNC(PyObject *) _PyThreadState_GetDict(PyThreadState *tstate);
+
+/* PyGILState */
+
+/* Helper/diagnostic function - return 1 if the current thread
+ currently holds the GIL, 0 otherwise.
+
+ The function returns 1 if _PyGILState_check_enabled is non-zero. */
+PyAPI_FUNC(int) PyGILState_Check(void);
+
+/* Get the single PyInterpreterState used by this process' GILState
+ implementation.
+
+ This function doesn't check for error. Return NULL before _PyGILState_Init()
+ is called and after _PyGILState_Fini() is called.
+
+ See also _PyInterpreterState_Get() and _PyInterpreterState_GET(). */
+PyAPI_FUNC(PyInterpreterState *) _PyGILState_GetInterpreterStateUnsafe(void);
+
+/* The implementation of sys._current_frames() Returns a dict mapping
+ thread id to that thread's current frame.
+*/
+PyAPI_FUNC(PyObject *) _PyThread_CurrentFrames(void);
+
+/* Routines for advanced debuggers, requested by David Beazley.
+ Don't use unless you know what you are doing! */
+PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Main(void);
+PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Head(void);
+PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Next(PyInterpreterState *);
+PyAPI_FUNC(PyThreadState *) PyInterpreterState_ThreadHead(PyInterpreterState *);
+PyAPI_FUNC(PyThreadState *) PyThreadState_Next(PyThreadState *);
+PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
+
+/* Frame evaluation API */
+
+typedef PyObject* (*_PyFrameEvalFunction)(PyThreadState *tstate, PyFrameObject *, int);
+
+PyAPI_FUNC(_PyFrameEvalFunction) _PyInterpreterState_GetEvalFrameFunc(
+ PyInterpreterState *interp);
+PyAPI_FUNC(void) _PyInterpreterState_SetEvalFrameFunc(
+ PyInterpreterState *interp,
+ _PyFrameEvalFunction eval_frame);
+
+PyAPI_FUNC(const PyConfig*) _PyInterpreterState_GetConfig(PyInterpreterState *interp);
+
+// Get the configuration of the currrent interpreter.
+// The caller must hold the GIL.
+PyAPI_FUNC(const PyConfig*) _Py_GetConfig(void);
+
+
+/* cross-interpreter data */
+
+struct _xid;
+
+// _PyCrossInterpreterData is similar to Py_buffer as an effectively
+// opaque struct that holds data outside the object machinery. This
+// is necessary to pass safely between interpreters in the same process.
+typedef struct _xid {
+ // data is the cross-interpreter-safe derivation of a Python object
+ // (see _PyObject_GetCrossInterpreterData). It will be NULL if the
+ // new_object func (below) encodes the data.
+ void *data;
+ // obj is the Python object from which the data was derived. This
+ // is non-NULL only if the data remains bound to the object in some
+ // way, such that the object must be "released" (via a decref) when
+ // the data is released. In that case the code that sets the field,
+ // likely a registered "crossinterpdatafunc", is responsible for
+ // ensuring it owns the reference (i.e. incref).
+ PyObject *obj;
+ // interp is the ID of the owning interpreter of the original
+ // object. It corresponds to the active interpreter when
+ // _PyObject_GetCrossInterpreterData() was called. This should only
+ // be set by the cross-interpreter machinery.
+ //
+ // We use the ID rather than the PyInterpreterState to avoid issues
+ // with deleted interpreters. Note that IDs are never re-used, so
+ // each one will always correspond to a specific interpreter
+ // (whether still alive or not).
+ int64_t interp;
+ // new_object is a function that returns a new object in the current
+ // interpreter given the data. The resulting object (a new
+ // reference) will be equivalent to the original object. This field
+ // is required.
+ PyObject *(*new_object)(struct _xid *);
+ // free is called when the data is released. If it is NULL then
+ // nothing will be done to free the data. For some types this is
+ // okay (e.g. bytes) and for those types this field should be set
+ // to NULL. However, for most the data was allocated just for
+ // cross-interpreter use, so it must be freed when
+ // _PyCrossInterpreterData_Release is called or the memory will
+ // leak. In that case, at the very least this field should be set
+ // to PyMem_RawFree (the default if not explicitly set to NULL).
+ // The call will happen with the original interpreter activated.
+ void (*free)(void *);
+} _PyCrossInterpreterData;
+
+PyAPI_FUNC(int) _PyObject_GetCrossInterpreterData(PyObject *, _PyCrossInterpreterData *);
+PyAPI_FUNC(PyObject *) _PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *);
+PyAPI_FUNC(void) _PyCrossInterpreterData_Release(_PyCrossInterpreterData *);
+
+PyAPI_FUNC(int) _PyObject_CheckCrossInterpreterData(PyObject *);
+
+/* cross-interpreter data registry */
+
+typedef int (*crossinterpdatafunc)(PyObject *, struct _xid *);
+
+PyAPI_FUNC(int) _PyCrossInterpreterData_RegisterClass(PyTypeObject *, crossinterpdatafunc);
+PyAPI_FUNC(crossinterpdatafunc) _PyCrossInterpreterData_Lookup(PyObject *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/sysmodule.h b/contrib/tools/python3/src/Include/cpython/sysmodule.h
index f647940974..1802b5b300 100644
--- a/contrib/tools/python3/src/Include/cpython/sysmodule.h
+++ b/contrib/tools/python3/src/Include/cpython/sysmodule.h
@@ -1,24 +1,24 @@
-#ifndef Py_CPYTHON_SYSMODULE_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(PyObject *) _PySys_GetObjectId(_Py_Identifier *key);
-PyAPI_FUNC(int) _PySys_SetObjectId(_Py_Identifier *key, PyObject *);
-
-PyAPI_FUNC(size_t) _PySys_GetSizeOf(PyObject *);
-
-typedef int(*Py_AuditHookFunction)(const char *, PyObject *, void *);
-
-PyAPI_FUNC(int) PySys_Audit(
- const char *event,
- const char *argFormat,
- ...);
-PyAPI_FUNC(int) PySys_AddAuditHook(Py_AuditHookFunction, void*);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_SYSMODULE_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(PyObject *) _PySys_GetObjectId(_Py_Identifier *key);
+PyAPI_FUNC(int) _PySys_SetObjectId(_Py_Identifier *key, PyObject *);
+
+PyAPI_FUNC(size_t) _PySys_GetSizeOf(PyObject *);
+
+typedef int(*Py_AuditHookFunction)(const char *, PyObject *, void *);
+
+PyAPI_FUNC(int) PySys_Audit(
+ const char *event,
+ const char *argFormat,
+ ...);
+PyAPI_FUNC(int) PySys_AddAuditHook(Py_AuditHookFunction, void*);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/traceback.h b/contrib/tools/python3/src/Include/cpython/traceback.h
index 3e26e04a09..837470c3ba 100644
--- a/contrib/tools/python3/src/Include/cpython/traceback.h
+++ b/contrib/tools/python3/src/Include/cpython/traceback.h
@@ -1,22 +1,22 @@
-#ifndef Py_CPYTHON_TRACEBACK_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _traceback {
- PyObject_HEAD
- struct _traceback *tb_next;
- PyFrameObject *tb_frame;
- int tb_lasti;
- int tb_lineno;
-} PyTracebackObject;
-
-PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int);
-PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_TRACEBACK_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _traceback {
+ PyObject_HEAD
+ struct _traceback *tb_next;
+ PyFrameObject *tb_frame;
+ int tb_lasti;
+ int tb_lineno;
+} PyTracebackObject;
+
+PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int);
+PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/tupleobject.h b/contrib/tools/python3/src/Include/cpython/tupleobject.h
index f66628675c..1565f2a5c3 100644
--- a/contrib/tools/python3/src/Include/cpython/tupleobject.h
+++ b/contrib/tools/python3/src/Include/cpython/tupleobject.h
@@ -1,36 +1,36 @@
-#ifndef Py_CPYTHON_TUPLEOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- PyObject_VAR_HEAD
- /* ob_item contains space for 'ob_size' elements.
- Items must normally not be NULL, except during construction when
- the tuple is not yet visible outside the function that builds it. */
- PyObject *ob_item[1];
-} PyTupleObject;
-
-PyAPI_FUNC(int) _PyTuple_Resize(PyObject **, Py_ssize_t);
-PyAPI_FUNC(void) _PyTuple_MaybeUntrack(PyObject *);
-
-/* Macros trading safety for speed */
-
-/* Cast argument to PyTupleObject* type. */
-#define _PyTuple_CAST(op) (assert(PyTuple_Check(op)), (PyTupleObject *)(op))
-
-#define PyTuple_GET_SIZE(op) Py_SIZE(_PyTuple_CAST(op))
-
-#define PyTuple_GET_ITEM(op, i) (_PyTuple_CAST(op)->ob_item[i])
-
-/* Macro, *only* to be used to fill in brand new tuples */
-#define PyTuple_SET_ITEM(op, i, v) (_PyTuple_CAST(op)->ob_item[i] = v)
-
-PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_TUPLEOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ PyObject_VAR_HEAD
+ /* ob_item contains space for 'ob_size' elements.
+ Items must normally not be NULL, except during construction when
+ the tuple is not yet visible outside the function that builds it. */
+ PyObject *ob_item[1];
+} PyTupleObject;
+
+PyAPI_FUNC(int) _PyTuple_Resize(PyObject **, Py_ssize_t);
+PyAPI_FUNC(void) _PyTuple_MaybeUntrack(PyObject *);
+
+/* Macros trading safety for speed */
+
+/* Cast argument to PyTupleObject* type. */
+#define _PyTuple_CAST(op) (assert(PyTuple_Check(op)), (PyTupleObject *)(op))
+
+#define PyTuple_GET_SIZE(op) Py_SIZE(_PyTuple_CAST(op))
+
+#define PyTuple_GET_ITEM(op, i) (_PyTuple_CAST(op)->ob_item[i])
+
+/* Macro, *only* to be used to fill in brand new tuples */
+#define PyTuple_SET_ITEM(op, i, v) (_PyTuple_CAST(op)->ob_item[i] = v)
+
+PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/cpython/unicodeobject.h b/contrib/tools/python3/src/Include/cpython/unicodeobject.h
index c6dca2e3ec..1b460c9f18 100644
--- a/contrib/tools/python3/src/Include/cpython/unicodeobject.h
+++ b/contrib/tools/python3/src/Include/cpython/unicodeobject.h
@@ -1,1237 +1,1237 @@
-#ifndef Py_CPYTHON_UNICODEOBJECT_H
-# error "this header file must not be included directly"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Py_UNICODE was the native Unicode storage format (code unit) used by
- Python and represents a single Unicode element in the Unicode type.
- With PEP 393, Py_UNICODE is deprecated and replaced with a
- typedef to wchar_t. */
-#define PY_UNICODE_TYPE wchar_t
-/* Py_DEPRECATED(3.3) */ typedef wchar_t Py_UNICODE;
-
-/* --- Internal Unicode Operations ---------------------------------------- */
-
-/* Since splitting on whitespace is an important use case, and
- whitespace in most situations is solely ASCII whitespace, we
- optimize for the common case by using a quick look-up table
- _Py_ascii_whitespace (see below) with an inlined check.
-
- */
-#define Py_UNICODE_ISSPACE(ch) \
- ((Py_UCS4)(ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch))
-
-#define Py_UNICODE_ISLOWER(ch) _PyUnicode_IsLowercase(ch)
-#define Py_UNICODE_ISUPPER(ch) _PyUnicode_IsUppercase(ch)
-#define Py_UNICODE_ISTITLE(ch) _PyUnicode_IsTitlecase(ch)
-#define Py_UNICODE_ISLINEBREAK(ch) _PyUnicode_IsLinebreak(ch)
-
-#define Py_UNICODE_TOLOWER(ch) _PyUnicode_ToLowercase(ch)
-#define Py_UNICODE_TOUPPER(ch) _PyUnicode_ToUppercase(ch)
-#define Py_UNICODE_TOTITLE(ch) _PyUnicode_ToTitlecase(ch)
-
-#define Py_UNICODE_ISDECIMAL(ch) _PyUnicode_IsDecimalDigit(ch)
-#define Py_UNICODE_ISDIGIT(ch) _PyUnicode_IsDigit(ch)
-#define Py_UNICODE_ISNUMERIC(ch) _PyUnicode_IsNumeric(ch)
-#define Py_UNICODE_ISPRINTABLE(ch) _PyUnicode_IsPrintable(ch)
-
-#define Py_UNICODE_TODECIMAL(ch) _PyUnicode_ToDecimalDigit(ch)
-#define Py_UNICODE_TODIGIT(ch) _PyUnicode_ToDigit(ch)
-#define Py_UNICODE_TONUMERIC(ch) _PyUnicode_ToNumeric(ch)
-
-#define Py_UNICODE_ISALPHA(ch) _PyUnicode_IsAlpha(ch)
-
-#define Py_UNICODE_ISALNUM(ch) \
- (Py_UNICODE_ISALPHA(ch) || \
- Py_UNICODE_ISDECIMAL(ch) || \
- Py_UNICODE_ISDIGIT(ch) || \
- Py_UNICODE_ISNUMERIC(ch))
-
-Py_DEPRECATED(3.3) static inline void
-Py_UNICODE_COPY(Py_UNICODE *target, const Py_UNICODE *source, Py_ssize_t length) {
- memcpy(target, source, (size_t)(length) * sizeof(Py_UNICODE));
-}
-
-Py_DEPRECATED(3.3) static inline void
-Py_UNICODE_FILL(Py_UNICODE *target, Py_UNICODE value, Py_ssize_t length) {
- Py_ssize_t i;
- for (i = 0; i < length; i++) {
- target[i] = value;
- }
-}
-
-/* macros to work with surrogates */
-#define Py_UNICODE_IS_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDFFF)
-#define Py_UNICODE_IS_HIGH_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDBFF)
-#define Py_UNICODE_IS_LOW_SURROGATE(ch) (0xDC00 <= (ch) && (ch) <= 0xDFFF)
-/* Join two surrogate characters and return a single Py_UCS4 value. */
-#define Py_UNICODE_JOIN_SURROGATES(high, low) \
- (((((Py_UCS4)(high) & 0x03FF) << 10) | \
- ((Py_UCS4)(low) & 0x03FF)) + 0x10000)
-/* high surrogate = top 10 bits added to D800 */
-#define Py_UNICODE_HIGH_SURROGATE(ch) (0xD800 - (0x10000 >> 10) + ((ch) >> 10))
-/* low surrogate = bottom 10 bits added to DC00 */
-#define Py_UNICODE_LOW_SURROGATE(ch) (0xDC00 + ((ch) & 0x3FF))
-
-/* --- Unicode Type ------------------------------------------------------- */
-
-/* ASCII-only strings created through PyUnicode_New use the PyASCIIObject
- structure. state.ascii and state.compact are set, and the data
- immediately follow the structure. utf8_length and wstr_length can be found
- in the length field; the utf8 pointer is equal to the data pointer. */
-typedef struct {
- /* There are 4 forms of Unicode strings:
-
- - compact ascii:
-
- * structure = PyASCIIObject
- * test: PyUnicode_IS_COMPACT_ASCII(op)
- * kind = PyUnicode_1BYTE_KIND
- * compact = 1
- * ascii = 1
- * ready = 1
- * (length is the length of the utf8 and wstr strings)
- * (data starts just after the structure)
- * (since ASCII is decoded from UTF-8, the utf8 string are the data)
-
- - compact:
-
- * structure = PyCompactUnicodeObject
- * test: PyUnicode_IS_COMPACT(op) && !PyUnicode_IS_ASCII(op)
- * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or
- PyUnicode_4BYTE_KIND
- * compact = 1
- * ready = 1
- * ascii = 0
- * utf8 is not shared with data
- * utf8_length = 0 if utf8 is NULL
- * wstr is shared with data and wstr_length=length
- if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2
- or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_t)=4
- * wstr_length = 0 if wstr is NULL
- * (data starts just after the structure)
-
- - legacy string, not ready:
-
- * structure = PyUnicodeObject
- * test: kind == PyUnicode_WCHAR_KIND
- * length = 0 (use wstr_length)
- * hash = -1
- * kind = PyUnicode_WCHAR_KIND
- * compact = 0
- * ascii = 0
- * ready = 0
- * interned = SSTATE_NOT_INTERNED
- * wstr is not NULL
- * data.any is NULL
- * utf8 is NULL
- * utf8_length = 0
-
- - legacy string, ready:
-
- * structure = PyUnicodeObject structure
- * test: !PyUnicode_IS_COMPACT(op) && kind != PyUnicode_WCHAR_KIND
- * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or
- PyUnicode_4BYTE_KIND
- * compact = 0
- * ready = 1
- * data.any is not NULL
- * utf8 is shared and utf8_length = length with data.any if ascii = 1
- * utf8_length = 0 if utf8 is NULL
- * wstr is shared with data.any and wstr_length = length
- if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2
- or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_4)=4
- * wstr_length = 0 if wstr is NULL
-
- Compact strings use only one memory block (structure + characters),
- whereas legacy strings use one block for the structure and one block
- for characters.
-
- Legacy strings are created by PyUnicode_FromUnicode() and
- PyUnicode_FromStringAndSize(NULL, size) functions. They become ready
- when PyUnicode_READY() is called.
-
- See also _PyUnicode_CheckConsistency().
- */
- PyObject_HEAD
- Py_ssize_t length; /* Number of code points in the string */
- Py_hash_t hash; /* Hash value; -1 if not set */
- struct {
- /*
- SSTATE_NOT_INTERNED (0)
- SSTATE_INTERNED_MORTAL (1)
- SSTATE_INTERNED_IMMORTAL (2)
-
- If interned != SSTATE_NOT_INTERNED, the two references from the
- dictionary to this object are *not* counted in ob_refcnt.
- */
- unsigned int interned:2;
- /* Character size:
-
- - PyUnicode_WCHAR_KIND (0):
-
- * character type = wchar_t (16 or 32 bits, depending on the
- platform)
-
- - PyUnicode_1BYTE_KIND (1):
-
- * character type = Py_UCS1 (8 bits, unsigned)
- * all characters are in the range U+0000-U+00FF (latin1)
- * if ascii is set, all characters are in the range U+0000-U+007F
- (ASCII), otherwise at least one character is in the range
- U+0080-U+00FF
-
- - PyUnicode_2BYTE_KIND (2):
-
- * character type = Py_UCS2 (16 bits, unsigned)
- * all characters are in the range U+0000-U+FFFF (BMP)
- * at least one character is in the range U+0100-U+FFFF
-
- - PyUnicode_4BYTE_KIND (4):
-
- * character type = Py_UCS4 (32 bits, unsigned)
- * all characters are in the range U+0000-U+10FFFF
- * at least one character is in the range U+10000-U+10FFFF
- */
- unsigned int kind:3;
- /* Compact is with respect to the allocation scheme. Compact unicode
- objects only require one memory block while non-compact objects use
- one block for the PyUnicodeObject struct and another for its data
- buffer. */
- unsigned int compact:1;
- /* The string only contains characters in the range U+0000-U+007F (ASCII)
- and the kind is PyUnicode_1BYTE_KIND. If ascii is set and compact is
- set, use the PyASCIIObject structure. */
- unsigned int ascii:1;
- /* The ready flag indicates whether the object layout is initialized
- completely. This means that this is either a compact object, or
- the data pointer is filled out. The bit is redundant, and helps
- to minimize the test in PyUnicode_IS_READY(). */
- unsigned int ready:1;
- /* Padding to ensure that PyUnicode_DATA() is always aligned to
- 4 bytes (see issue #19537 on m68k). */
- unsigned int :24;
- } state;
- wchar_t *wstr; /* wchar_t representation (null-terminated) */
-} PyASCIIObject;
-
-/* Non-ASCII strings allocated through PyUnicode_New use the
- PyCompactUnicodeObject structure. state.compact is set, and the data
- immediately follow the structure. */
-typedef struct {
- PyASCIIObject _base;
- Py_ssize_t utf8_length; /* Number of bytes in utf8, excluding the
- * terminating \0. */
- char *utf8; /* UTF-8 representation (null-terminated) */
- Py_ssize_t wstr_length; /* Number of code points in wstr, possible
- * surrogates count as two code points. */
-} PyCompactUnicodeObject;
-
-/* Strings allocated through PyUnicode_FromUnicode(NULL, len) use the
- PyUnicodeObject structure. The actual string data is initially in the wstr
- block, and copied into the data block using _PyUnicode_Ready. */
-typedef struct {
- PyCompactUnicodeObject _base;
- union {
- void *any;
- Py_UCS1 *latin1;
- Py_UCS2 *ucs2;
- Py_UCS4 *ucs4;
- } data; /* Canonical, smallest-form Unicode buffer */
-} PyUnicodeObject;
-
-PyAPI_FUNC(int) _PyUnicode_CheckConsistency(
- PyObject *op,
- int check_content);
-
-/* Fast access macros */
-
-/* Returns the deprecated Py_UNICODE representation's size in code units
- (this includes surrogate pairs as 2 units).
- If the Py_UNICODE representation is not available, it will be computed
- on request. Use PyUnicode_GET_LENGTH() for the length in code points. */
-
-/* Py_DEPRECATED(3.3) */
-#define PyUnicode_GET_SIZE(op) \
- (assert(PyUnicode_Check(op)), \
- (((PyASCIIObject *)(op))->wstr) ? \
- PyUnicode_WSTR_LENGTH(op) : \
- ((void)PyUnicode_AsUnicode(_PyObject_CAST(op)),\
- assert(((PyASCIIObject *)(op))->wstr), \
- PyUnicode_WSTR_LENGTH(op)))
-
-/* Py_DEPRECATED(3.3) */
-#define PyUnicode_GET_DATA_SIZE(op) \
- (PyUnicode_GET_SIZE(op) * Py_UNICODE_SIZE)
-
-/* Alias for PyUnicode_AsUnicode(). This will create a wchar_t/Py_UNICODE
- representation on demand. Using this macro is very inefficient now,
- try to port your code to use the new PyUnicode_*BYTE_DATA() macros or
- use PyUnicode_WRITE() and PyUnicode_READ(). */
-
-/* Py_DEPRECATED(3.3) */
-#define PyUnicode_AS_UNICODE(op) \
- (assert(PyUnicode_Check(op)), \
- (((PyASCIIObject *)(op))->wstr) ? (((PyASCIIObject *)(op))->wstr) : \
- PyUnicode_AsUnicode(_PyObject_CAST(op)))
-
-/* Py_DEPRECATED(3.3) */
-#define PyUnicode_AS_DATA(op) \
- ((const char *)(PyUnicode_AS_UNICODE(op)))
-
-
-/* --- Flexible String Representation Helper Macros (PEP 393) -------------- */
-
-/* Values for PyASCIIObject.state: */
-
-/* Interning state. */
-#define SSTATE_NOT_INTERNED 0
-#define SSTATE_INTERNED_MORTAL 1
-#define SSTATE_INTERNED_IMMORTAL 2
-
-/* Return true if the string contains only ASCII characters, or 0 if not. The
- string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be
- ready. */
-#define PyUnicode_IS_ASCII(op) \
- (assert(PyUnicode_Check(op)), \
- assert(PyUnicode_IS_READY(op)), \
- ((PyASCIIObject*)op)->state.ascii)
-
-/* Return true if the string is compact or 0 if not.
- No type checks or Ready calls are performed. */
-#define PyUnicode_IS_COMPACT(op) \
- (((PyASCIIObject*)(op))->state.compact)
-
-/* Return true if the string is a compact ASCII string (use PyASCIIObject
- structure), or 0 if not. No type checks or Ready calls are performed. */
-#define PyUnicode_IS_COMPACT_ASCII(op) \
- (((PyASCIIObject*)op)->state.ascii && PyUnicode_IS_COMPACT(op))
-
-enum PyUnicode_Kind {
-/* String contains only wstr byte characters. This is only possible
- when the string was created with a legacy API and _PyUnicode_Ready()
- has not been called yet. */
- PyUnicode_WCHAR_KIND = 0,
-/* Return values of the PyUnicode_KIND() macro: */
- PyUnicode_1BYTE_KIND = 1,
- PyUnicode_2BYTE_KIND = 2,
- PyUnicode_4BYTE_KIND = 4
-};
-
-/* Return pointers to the canonical representation cast to unsigned char,
- Py_UCS2, or Py_UCS4 for direct character access.
- No checks are performed, use PyUnicode_KIND() before to ensure
- these will work correctly. */
-
-#define PyUnicode_1BYTE_DATA(op) ((Py_UCS1*)PyUnicode_DATA(op))
-#define PyUnicode_2BYTE_DATA(op) ((Py_UCS2*)PyUnicode_DATA(op))
-#define PyUnicode_4BYTE_DATA(op) ((Py_UCS4*)PyUnicode_DATA(op))
-
-/* Return one of the PyUnicode_*_KIND values defined above. */
-#define PyUnicode_KIND(op) \
- (assert(PyUnicode_Check(op)), \
- assert(PyUnicode_IS_READY(op)), \
- ((PyASCIIObject *)(op))->state.kind)
-
-/* Return a void pointer to the raw unicode buffer. */
-#define _PyUnicode_COMPACT_DATA(op) \
- (PyUnicode_IS_ASCII(op) ? \
- ((void*)((PyASCIIObject*)(op) + 1)) : \
- ((void*)((PyCompactUnicodeObject*)(op) + 1)))
-
-#define _PyUnicode_NONCOMPACT_DATA(op) \
- (assert(((PyUnicodeObject*)(op))->data.any), \
- ((((PyUnicodeObject *)(op))->data.any)))
-
-#define PyUnicode_DATA(op) \
- (assert(PyUnicode_Check(op)), \
- PyUnicode_IS_COMPACT(op) ? _PyUnicode_COMPACT_DATA(op) : \
- _PyUnicode_NONCOMPACT_DATA(op))
-
-/* In the access macros below, "kind" may be evaluated more than once.
- All other macro parameters are evaluated exactly once, so it is safe
- to put side effects into them (such as increasing the index). */
-
-/* Write into the canonical representation, this macro does not do any sanity
- checks and is intended for usage in loops. The caller should cache the
- kind and data pointers obtained from other macro calls.
- index is the index in the string (starts at 0) and value is the new
- code point value which should be written to that location. */
-#define PyUnicode_WRITE(kind, data, index, value) \
- do { \
- switch ((kind)) { \
- case PyUnicode_1BYTE_KIND: { \
- ((Py_UCS1 *)(data))[(index)] = (Py_UCS1)(value); \
- break; \
- } \
- case PyUnicode_2BYTE_KIND: { \
- ((Py_UCS2 *)(data))[(index)] = (Py_UCS2)(value); \
- break; \
- } \
- default: { \
- assert((kind) == PyUnicode_4BYTE_KIND); \
- ((Py_UCS4 *)(data))[(index)] = (Py_UCS4)(value); \
- } \
- } \
- } while (0)
-
-/* Read a code point from the string's canonical representation. No checks
- or ready calls are performed. */
-#define PyUnicode_READ(kind, data, index) \
- ((Py_UCS4) \
- ((kind) == PyUnicode_1BYTE_KIND ? \
- ((const Py_UCS1 *)(data))[(index)] : \
- ((kind) == PyUnicode_2BYTE_KIND ? \
- ((const Py_UCS2 *)(data))[(index)] : \
- ((const Py_UCS4 *)(data))[(index)] \
- ) \
- ))
-
-/* PyUnicode_READ_CHAR() is less efficient than PyUnicode_READ() because it
- calls PyUnicode_KIND() and might call it twice. For single reads, use
- PyUnicode_READ_CHAR, for multiple consecutive reads callers should
- cache kind and use PyUnicode_READ instead. */
-#define PyUnicode_READ_CHAR(unicode, index) \
- (assert(PyUnicode_Check(unicode)), \
- assert(PyUnicode_IS_READY(unicode)), \
- (Py_UCS4) \
- (PyUnicode_KIND((unicode)) == PyUnicode_1BYTE_KIND ? \
- ((const Py_UCS1 *)(PyUnicode_DATA((unicode))))[(index)] : \
- (PyUnicode_KIND((unicode)) == PyUnicode_2BYTE_KIND ? \
- ((const Py_UCS2 *)(PyUnicode_DATA((unicode))))[(index)] : \
- ((const Py_UCS4 *)(PyUnicode_DATA((unicode))))[(index)] \
- ) \
- ))
-
-/* Returns the length of the unicode string. The caller has to make sure that
- the string has it's canonical representation set before calling
- this macro. Call PyUnicode_(FAST_)Ready to ensure that. */
-#define PyUnicode_GET_LENGTH(op) \
- (assert(PyUnicode_Check(op)), \
- assert(PyUnicode_IS_READY(op)), \
- ((PyASCIIObject *)(op))->length)
-
-
-/* Fast check to determine whether an object is ready. Equivalent to
- PyUnicode_IS_COMPACT(op) || ((PyUnicodeObject*)(op))->data.any */
-
-#define PyUnicode_IS_READY(op) (((PyASCIIObject*)op)->state.ready)
-
-/* PyUnicode_READY() does less work than _PyUnicode_Ready() in the best
- case. If the canonical representation is not yet set, it will still call
- _PyUnicode_Ready().
- Returns 0 on success and -1 on errors. */
-#define PyUnicode_READY(op) \
- (assert(PyUnicode_Check(op)), \
- (PyUnicode_IS_READY(op) ? \
- 0 : _PyUnicode_Ready(_PyObject_CAST(op))))
-
-/* Return a maximum character value which is suitable for creating another
- string based on op. This is always an approximation but more efficient
- than iterating over the string. */
-#define PyUnicode_MAX_CHAR_VALUE(op) \
- (assert(PyUnicode_IS_READY(op)), \
- (PyUnicode_IS_ASCII(op) ? \
- (0x7f) : \
- (PyUnicode_KIND(op) == PyUnicode_1BYTE_KIND ? \
- (0xffU) : \
- (PyUnicode_KIND(op) == PyUnicode_2BYTE_KIND ? \
- (0xffffU) : \
- (0x10ffffU)))))
-
-Py_DEPRECATED(3.3)
-static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
- return PyUnicode_IS_COMPACT_ASCII(op) ?
- ((PyASCIIObject*)op)->length :
- ((PyCompactUnicodeObject*)op)->wstr_length;
-}
-#define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
-
-/* === Public API ========================================================= */
-
-/* --- Plain Py_UNICODE --------------------------------------------------- */
-
-/* With PEP 393, this is the recommended way to allocate a new unicode object.
- This function will allocate the object and its buffer in a single memory
- block. Objects created using this function are not resizable. */
-PyAPI_FUNC(PyObject*) PyUnicode_New(
- Py_ssize_t size, /* Number of code points in the new string */
- Py_UCS4 maxchar /* maximum code point value in the string */
- );
-
-/* Initializes the canonical string representation from the deprecated
- wstr/Py_UNICODE representation. This function is used to convert Unicode
- objects which were created using the old API to the new flexible format
- introduced with PEP 393.
-
- Don't call this function directly, use the public PyUnicode_READY() macro
- instead. */
-PyAPI_FUNC(int) _PyUnicode_Ready(
- PyObject *unicode /* Unicode object */
- );
-
-/* Get a copy of a Unicode string. */
-PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
- PyObject *unicode
- );
-
-/* Copy character from one unicode object into another, this function performs
- character conversion when necessary and falls back to memcpy() if possible.
-
- Fail if to is too small (smaller than *how_many* or smaller than
- len(from)-from_start), or if kind(from[from_start:from_start+how_many]) >
- kind(to), or if *to* has more than 1 reference.
-
- Return the number of written character, or return -1 and raise an exception
- on error.
-
- Pseudo-code:
-
- how_many = min(how_many, len(from) - from_start)
- to[to_start:to_start+how_many] = from[from_start:from_start+how_many]
- return how_many
-
- Note: The function doesn't write a terminating null character.
- */
-PyAPI_FUNC(Py_ssize_t) PyUnicode_CopyCharacters(
- PyObject *to,
- Py_ssize_t to_start,
- PyObject *from,
- Py_ssize_t from_start,
- Py_ssize_t how_many
- );
-
-/* Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so
- may crash if parameters are invalid (e.g. if the output string
- is too short). */
-PyAPI_FUNC(void) _PyUnicode_FastCopyCharacters(
- PyObject *to,
- Py_ssize_t to_start,
- PyObject *from,
- Py_ssize_t from_start,
- Py_ssize_t how_many
- );
-
-/* Fill a string with a character: write fill_char into
- unicode[start:start+length].
-
- Fail if fill_char is bigger than the string maximum character, or if the
- string has more than 1 reference.
-
- Return the number of written character, or return -1 and raise an exception
- on error. */
-PyAPI_FUNC(Py_ssize_t) PyUnicode_Fill(
- PyObject *unicode,
- Py_ssize_t start,
- Py_ssize_t length,
- Py_UCS4 fill_char
- );
-
-/* Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash
- if parameters are invalid (e.g. if length is longer than the string). */
-PyAPI_FUNC(void) _PyUnicode_FastFill(
- PyObject *unicode,
- Py_ssize_t start,
- Py_ssize_t length,
- Py_UCS4 fill_char
- );
-
-/* Create a Unicode Object from the Py_UNICODE buffer u of the given
- size.
-
- u may be NULL which causes the contents to be undefined. It is the
- user's responsibility to fill in the needed data afterwards. Note
- that modifying the Unicode object contents after construction is
- only allowed if u was set to NULL.
-
- The buffer is copied into the new object. */
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
- const Py_UNICODE *u, /* Unicode buffer */
- Py_ssize_t size /* size of buffer */
- );
-
-/* Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.
- Scan the string to find the maximum character. */
-PyAPI_FUNC(PyObject*) PyUnicode_FromKindAndData(
- int kind,
- const void *buffer,
- Py_ssize_t size);
-
-/* Create a new string from a buffer of ASCII characters.
- WARNING: Don't check if the string contains any non-ASCII character. */
-PyAPI_FUNC(PyObject*) _PyUnicode_FromASCII(
- const char *buffer,
- Py_ssize_t size);
-
-/* Compute the maximum character of the substring unicode[start:end].
- Return 127 for an empty string. */
-PyAPI_FUNC(Py_UCS4) _PyUnicode_FindMaxChar (
- PyObject *unicode,
- Py_ssize_t start,
- Py_ssize_t end);
-
-/* Return a read-only pointer to the Unicode object's internal
- Py_UNICODE buffer.
- If the wchar_t/Py_UNICODE representation is not yet available, this
- function will calculate it. */
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
- PyObject *unicode /* Unicode object */
- );
-
-/* Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string
- contains null characters. */
-Py_DEPRECATED(3.3) PyAPI_FUNC(const Py_UNICODE *) _PyUnicode_AsUnicode(
- PyObject *unicode /* Unicode object */
- );
-
-/* Return a read-only pointer to the Unicode object's internal
- Py_UNICODE buffer and save the length at size.
- If the wchar_t/Py_UNICODE representation is not yet available, this
- function will calculate it. */
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicodeAndSize(
- PyObject *unicode, /* Unicode object */
- Py_ssize_t *size /* location where to save the length */
- );
-
-/* Get the maximum ordinal for a Unicode character. */
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE) PyUnicode_GetMax(void);
-
-
-/* --- _PyUnicodeWriter API ----------------------------------------------- */
-
-typedef struct {
- PyObject *buffer;
- void *data;
- enum PyUnicode_Kind kind;
- Py_UCS4 maxchar;
- Py_ssize_t size;
- Py_ssize_t pos;
-
- /* minimum number of allocated characters (default: 0) */
- Py_ssize_t min_length;
-
- /* minimum character (default: 127, ASCII) */
- Py_UCS4 min_char;
-
- /* If non-zero, overallocate the buffer (default: 0). */
- unsigned char overallocate;
-
- /* If readonly is 1, buffer is a shared string (cannot be modified)
- and size is set to 0. */
- unsigned char readonly;
-} _PyUnicodeWriter ;
-
-/* Initialize a Unicode writer.
- *
- * By default, the minimum buffer size is 0 character and overallocation is
- * disabled. Set min_length, min_char and overallocate attributes to control
- * the allocation of the buffer. */
-PyAPI_FUNC(void)
-_PyUnicodeWriter_Init(_PyUnicodeWriter *writer);
-
-/* Prepare the buffer to write 'length' characters
- with the specified maximum character.
-
- Return 0 on success, raise an exception and return -1 on error. */
-#define _PyUnicodeWriter_Prepare(WRITER, LENGTH, MAXCHAR) \
- (((MAXCHAR) <= (WRITER)->maxchar \
- && (LENGTH) <= (WRITER)->size - (WRITER)->pos) \
- ? 0 \
- : (((LENGTH) == 0) \
- ? 0 \
- : _PyUnicodeWriter_PrepareInternal((WRITER), (LENGTH), (MAXCHAR))))
-
-/* Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro
- instead. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer,
- Py_ssize_t length, Py_UCS4 maxchar);
-
-/* Prepare the buffer to have at least the kind KIND.
- For example, kind=PyUnicode_2BYTE_KIND ensures that the writer will
- support characters in range U+000-U+FFFF.
-
- Return 0 on success, raise an exception and return -1 on error. */
-#define _PyUnicodeWriter_PrepareKind(WRITER, KIND) \
- (assert((KIND) != PyUnicode_WCHAR_KIND), \
- (KIND) <= (WRITER)->kind \
- ? 0 \
- : _PyUnicodeWriter_PrepareKindInternal((WRITER), (KIND)))
-
-/* Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()
- macro instead. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer,
- enum PyUnicode_Kind kind);
-
-/* Append a Unicode character.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteChar(_PyUnicodeWriter *writer,
- Py_UCS4 ch
- );
-
-/* Append a Unicode string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteStr(_PyUnicodeWriter *writer,
- PyObject *str /* Unicode string */
- );
-
-/* Append a substring of a Unicode string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteSubstring(_PyUnicodeWriter *writer,
- PyObject *str, /* Unicode string */
- Py_ssize_t start,
- Py_ssize_t end
- );
-
-/* Append an ASCII-encoded byte string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteASCIIString(_PyUnicodeWriter *writer,
- const char *str, /* ASCII-encoded byte string */
- Py_ssize_t len /* number of bytes, or -1 if unknown */
- );
-
-/* Append a latin1-encoded byte string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteLatin1String(_PyUnicodeWriter *writer,
- const char *str, /* latin1-encoded byte string */
- Py_ssize_t len /* length in bytes */
- );
-
-/* Get the value of the writer as a Unicode string. Clear the
- buffer of the writer. Raise an exception and return NULL
- on error. */
-PyAPI_FUNC(PyObject *)
-_PyUnicodeWriter_Finish(_PyUnicodeWriter *writer);
-
-/* Deallocate memory of a writer (clear its internal buffer). */
-PyAPI_FUNC(void)
-_PyUnicodeWriter_Dealloc(_PyUnicodeWriter *writer);
-
-
-/* Format the object based on the format_spec, as defined in PEP 3101
- (Advanced String Formatting). */
-PyAPI_FUNC(int) _PyUnicode_FormatAdvancedWriter(
- _PyUnicodeWriter *writer,
- PyObject *obj,
- PyObject *format_spec,
- Py_ssize_t start,
- Py_ssize_t end);
-
-/* --- Manage the default encoding ---------------------------------------- */
-
-/* Returns a pointer to the default encoding (UTF-8) of the
- Unicode object unicode and the size of the encoded representation
- in bytes stored in *size.
-
- In case of an error, no *size is set.
-
- This function caches the UTF-8 encoded string in the unicodeobject
- and subsequent calls will return the same string. The memory is released
- when the unicodeobject is deallocated.
-
- _PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to
- support the previous internal function with the same behaviour.
-*/
-
-PyAPI_FUNC(const char *) PyUnicode_AsUTF8AndSize(
- PyObject *unicode,
- Py_ssize_t *size);
-
-#define _PyUnicode_AsStringAndSize PyUnicode_AsUTF8AndSize
-
-/* Returns a pointer to the default encoding (UTF-8) of the
- Unicode object unicode.
-
- Like PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation
- in the unicodeobject.
-
- _PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to
- support the previous internal function with the same behaviour.
-
- Use of this API is DEPRECATED since no size information can be
- extracted from the returned data.
-*/
-
-PyAPI_FUNC(const char *) PyUnicode_AsUTF8(PyObject *unicode);
-
-#define _PyUnicode_AsString PyUnicode_AsUTF8
-
-/* --- Generic Codecs ----------------------------------------------------- */
-
-/* Encodes a Py_UNICODE buffer of the given size and returns a
- Python string object. */
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_Encode(
- const Py_UNICODE *s, /* Unicode char buffer */
- Py_ssize_t size, /* number of Py_UNICODE chars to encode */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- );
-
-/* --- UTF-7 Codecs ------------------------------------------------------- */
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF7(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- int base64SetO, /* Encode RFC2152 Set O characters in base64 */
- int base64WhiteSpace, /* Encode whitespace (sp, ht, nl, cr) in base64 */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF7(
- PyObject *unicode, /* Unicode object */
- int base64SetO, /* Encode RFC2152 Set O characters in base64 */
- int base64WhiteSpace, /* Encode whitespace (sp, ht, nl, cr) in base64 */
- const char *errors /* error handling */
- );
-
-/* --- UTF-8 Codecs ------------------------------------------------------- */
-
-PyAPI_FUNC(PyObject*) _PyUnicode_AsUTF8String(
- PyObject *unicode,
- const char *errors);
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF8(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- );
-
-/* --- UTF-32 Codecs ------------------------------------------------------ */
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF32(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- );
-
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF32(
- PyObject *object, /* Unicode object */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- );
-
-/* --- UTF-16 Codecs ------------------------------------------------------ */
-
-/* Returns a Python string object holding the UTF-16 encoded value of
- the Unicode data.
-
- If byteorder is not 0, output is written according to the following
- byte order:
-
- byteorder == -1: little endian
- byteorder == 0: native byte order (writes a BOM mark)
- byteorder == 1: big endian
-
- If byteorder is 0, the output string will always start with the
- Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is
- prepended.
-
- Note that Py_UNICODE data is being interpreted as UTF-16 reduced to
- UCS-2. This trick makes it possible to add full UTF-16 capabilities
- at a later point without compromising the APIs.
-
-*/
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF16(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- );
-
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF16(
- PyObject* unicode, /* Unicode object */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- );
-
-/* --- Unicode-Escape Codecs ---------------------------------------------- */
-
-/* Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding. */
-PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeStateful(
- const char *string, /* Unicode-Escape encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- Py_ssize_t *consumed /* bytes consumed */
-);
-/* Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape
- chars. */
-PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal(
- const char *string, /* Unicode-Escape encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- Py_ssize_t *consumed, /* bytes consumed */
- const char **first_invalid_escape /* on return, points to first
- invalid escaped char in
- string. */
-);
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUnicodeEscape(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length /* Number of Py_UNICODE chars to encode */
- );
-
-/* --- Raw-Unicode-Escape Codecs ------------------------------------------ */
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length /* Number of Py_UNICODE chars to encode */
- );
-
-/* Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding. */
-PyAPI_FUNC(PyObject*) _PyUnicode_DecodeRawUnicodeEscapeStateful(
- const char *string, /* Unicode-Escape encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- Py_ssize_t *consumed /* bytes consumed */
-);
-
-/* --- Latin-1 Codecs ----------------------------------------------------- */
-
-PyAPI_FUNC(PyObject*) _PyUnicode_AsLatin1String(
- PyObject* unicode,
- const char* errors);
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeLatin1(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- );
-
-/* --- ASCII Codecs ------------------------------------------------------- */
-
-PyAPI_FUNC(PyObject*) _PyUnicode_AsASCIIString(
- PyObject* unicode,
- const char* errors);
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeASCII(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- );
-
-/* --- Character Map Codecs ----------------------------------------------- */
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeCharmap(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- PyObject *mapping, /* encoding mapping */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeCharmap(
- PyObject *unicode, /* Unicode object */
- PyObject *mapping, /* encoding mapping */
- const char *errors /* error handling */
- );
-
-/* Translate a Py_UNICODE buffer of the given length by applying a
- character mapping table to it and return the resulting Unicode
- object.
-
- The mapping table must map Unicode ordinal integers to Unicode strings,
- Unicode ordinal integers or None (causing deletion of the character).
-
- Mapping tables may be dictionaries or sequences. Unmapped character
- ordinals (ones which cause a LookupError) are left untouched and
- are copied as-is.
-
-*/
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject *) PyUnicode_TranslateCharmap(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- PyObject *table, /* Translate table */
- const char *errors /* error handling */
- );
-
-/* --- MBCS codecs for Windows -------------------------------------------- */
-
-#ifdef MS_WINDOWS
-Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeMBCS(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- );
-#endif
-
-/* --- Decimal Encoder ---------------------------------------------------- */
-
-/* Takes a Unicode string holding a decimal value and writes it into
- an output buffer using standard ASCII digit codes.
-
- The output buffer has to provide at least length+1 bytes of storage
- area. The output string is 0-terminated.
-
- The encoder converts whitespace to ' ', decimal characters to their
- corresponding ASCII digit and all other Latin-1 characters except
- \0 as-is. Characters outside this range (Unicode ordinals 1-256)
- are treated as errors. This includes embedded NULL bytes.
-
- Error handling is defined by the errors argument:
-
- NULL or "strict": raise a ValueError
- "ignore": ignore the wrong characters (these are not copied to the
- output buffer)
- "replace": replaces illegal characters with '?'
-
- Returns 0 on success, -1 on failure.
-
-*/
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(int) PyUnicode_EncodeDecimal(
- Py_UNICODE *s, /* Unicode buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- char *output, /* Output buffer; must have size >= length */
- const char *errors /* error handling */
- );
-
-/* Transforms code points that have decimal digit property to the
- corresponding ASCII digit code points.
-
- Returns a new Unicode string on success, NULL on failure.
-*/
-
-Py_DEPRECATED(3.3)
-PyAPI_FUNC(PyObject*) PyUnicode_TransformDecimalToASCII(
- Py_UNICODE *s, /* Unicode buffer */
- Py_ssize_t length /* Number of Py_UNICODE chars to transform */
- );
-
-/* Coverts a Unicode object holding a decimal value to an ASCII string
- for using in int, float and complex parsers.
- Transforms code points that have decimal digit property to the
- corresponding ASCII digit code points. Transforms spaces to ASCII.
- Transforms code points starting from the first non-ASCII code point that
- is neither a decimal digit nor a space to the end into '?'. */
-
-PyAPI_FUNC(PyObject*) _PyUnicode_TransformDecimalAndSpaceToASCII(
- PyObject *unicode /* Unicode object */
- );
-
-/* --- Methods & Slots ---------------------------------------------------- */
-
-PyAPI_FUNC(PyObject *) _PyUnicode_JoinArray(
- PyObject *separator,
- PyObject *const *items,
- Py_ssize_t seqlen
- );
-
-/* Test whether a unicode is equal to ASCII identifier. Return 1 if true,
- 0 otherwise. The right argument must be ASCII identifier.
- Any error occurs inside will be cleared before return. */
-PyAPI_FUNC(int) _PyUnicode_EqualToASCIIId(
- PyObject *left, /* Left string */
- _Py_Identifier *right /* Right identifier */
- );
-
-/* Test whether a unicode is equal to ASCII string. Return 1 if true,
- 0 otherwise. The right argument must be ASCII-encoded string.
- Any error occurs inside will be cleared before return. */
-PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString(
- PyObject *left,
- const char *right /* ASCII-encoded string */
- );
-
-/* Externally visible for str.strip(unicode) */
-PyAPI_FUNC(PyObject *) _PyUnicode_XStrip(
- PyObject *self,
- int striptype,
- PyObject *sepobj
- );
-
-/* Using explicit passed-in values, insert the thousands grouping
- into the string pointed to by buffer. For the argument descriptions,
- see Objects/stringlib/localeutil.h */
-PyAPI_FUNC(Py_ssize_t) _PyUnicode_InsertThousandsGrouping(
- _PyUnicodeWriter *writer,
- Py_ssize_t n_buffer,
- PyObject *digits,
- Py_ssize_t d_pos,
- Py_ssize_t n_digits,
- Py_ssize_t min_width,
- const char *grouping,
- PyObject *thousands_sep,
- Py_UCS4 *maxchar);
-
-/* === Characters Type APIs =============================================== */
-
-/* Helper array used by Py_UNICODE_ISSPACE(). */
-
-PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
-
-/* These should not be used directly. Use the Py_UNICODE_IS* and
- Py_UNICODE_TO* macros instead.
-
- These APIs are implemented in Objects/unicodectype.c.
-
-*/
-
-PyAPI_FUNC(int) _PyUnicode_IsLowercase(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsUppercase(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsTitlecase(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsXidStart(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsXidContinue(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsWhitespace(
- const Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsLinebreak(
- const Py_UCS4 ch /* Unicode character */
- );
-
-/* Py_DEPRECATED(3.3) */ PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase(
- Py_UCS4 ch /* Unicode character */
- );
-
-/* Py_DEPRECATED(3.3) */ PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase(
- Py_UCS4 ch /* Unicode character */
- );
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToLowerFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToTitleFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToUpperFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToFoldedFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsCaseIgnorable(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsCased(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToDecimalDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(double) _PyUnicode_ToNumeric(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsDecimalDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsNumeric(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsPrintable(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsAlpha(
- Py_UCS4 ch /* Unicode character */
- );
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(size_t) Py_UNICODE_strlen(
- const Py_UNICODE *u
- );
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcpy(
- Py_UNICODE *s1,
- const Py_UNICODE *s2);
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcat(
- Py_UNICODE *s1, const Py_UNICODE *s2);
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strncpy(
- Py_UNICODE *s1,
- const Py_UNICODE *s2,
- size_t n);
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(int) Py_UNICODE_strcmp(
- const Py_UNICODE *s1,
- const Py_UNICODE *s2
- );
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(int) Py_UNICODE_strncmp(
- const Py_UNICODE *s1,
- const Py_UNICODE *s2,
- size_t n
- );
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strchr(
- const Py_UNICODE *s,
- Py_UNICODE c
- );
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strrchr(
- const Py_UNICODE *s,
- Py_UNICODE c
- );
-
-PyAPI_FUNC(PyObject*) _PyUnicode_FormatLong(PyObject *, int, int, int);
-
-/* Create a copy of a unicode string ending with a nul character. Return NULL
- and raise a MemoryError exception on memory allocation failure, otherwise
- return a new allocated buffer (use PyMem_Free() to free the buffer). */
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) PyUnicode_AsUnicodeCopy(
- PyObject *unicode
- );
-
-/* Return an interned Unicode object for an Identifier; may fail if there is no memory.*/
-PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*);
-
-/* Fast equality check when the inputs are known to be exact unicode types
- and where the hash values are equal (i.e. a very probable match) */
-PyAPI_FUNC(int) _PyUnicode_EQ(PyObject *, PyObject *);
-
-PyAPI_FUNC(Py_ssize_t) _PyUnicode_ScanIdentifier(PyObject *);
-
-#ifdef __cplusplus
-}
-#endif
+#ifndef Py_CPYTHON_UNICODEOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Py_UNICODE was the native Unicode storage format (code unit) used by
+ Python and represents a single Unicode element in the Unicode type.
+ With PEP 393, Py_UNICODE is deprecated and replaced with a
+ typedef to wchar_t. */
+#define PY_UNICODE_TYPE wchar_t
+/* Py_DEPRECATED(3.3) */ typedef wchar_t Py_UNICODE;
+
+/* --- Internal Unicode Operations ---------------------------------------- */
+
+/* Since splitting on whitespace is an important use case, and
+ whitespace in most situations is solely ASCII whitespace, we
+ optimize for the common case by using a quick look-up table
+ _Py_ascii_whitespace (see below) with an inlined check.
+
+ */
+#define Py_UNICODE_ISSPACE(ch) \
+ ((Py_UCS4)(ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch))
+
+#define Py_UNICODE_ISLOWER(ch) _PyUnicode_IsLowercase(ch)
+#define Py_UNICODE_ISUPPER(ch) _PyUnicode_IsUppercase(ch)
+#define Py_UNICODE_ISTITLE(ch) _PyUnicode_IsTitlecase(ch)
+#define Py_UNICODE_ISLINEBREAK(ch) _PyUnicode_IsLinebreak(ch)
+
+#define Py_UNICODE_TOLOWER(ch) _PyUnicode_ToLowercase(ch)
+#define Py_UNICODE_TOUPPER(ch) _PyUnicode_ToUppercase(ch)
+#define Py_UNICODE_TOTITLE(ch) _PyUnicode_ToTitlecase(ch)
+
+#define Py_UNICODE_ISDECIMAL(ch) _PyUnicode_IsDecimalDigit(ch)
+#define Py_UNICODE_ISDIGIT(ch) _PyUnicode_IsDigit(ch)
+#define Py_UNICODE_ISNUMERIC(ch) _PyUnicode_IsNumeric(ch)
+#define Py_UNICODE_ISPRINTABLE(ch) _PyUnicode_IsPrintable(ch)
+
+#define Py_UNICODE_TODECIMAL(ch) _PyUnicode_ToDecimalDigit(ch)
+#define Py_UNICODE_TODIGIT(ch) _PyUnicode_ToDigit(ch)
+#define Py_UNICODE_TONUMERIC(ch) _PyUnicode_ToNumeric(ch)
+
+#define Py_UNICODE_ISALPHA(ch) _PyUnicode_IsAlpha(ch)
+
+#define Py_UNICODE_ISALNUM(ch) \
+ (Py_UNICODE_ISALPHA(ch) || \
+ Py_UNICODE_ISDECIMAL(ch) || \
+ Py_UNICODE_ISDIGIT(ch) || \
+ Py_UNICODE_ISNUMERIC(ch))
+
+Py_DEPRECATED(3.3) static inline void
+Py_UNICODE_COPY(Py_UNICODE *target, const Py_UNICODE *source, Py_ssize_t length) {
+ memcpy(target, source, (size_t)(length) * sizeof(Py_UNICODE));
+}
+
+Py_DEPRECATED(3.3) static inline void
+Py_UNICODE_FILL(Py_UNICODE *target, Py_UNICODE value, Py_ssize_t length) {
+ Py_ssize_t i;
+ for (i = 0; i < length; i++) {
+ target[i] = value;
+ }
+}
+
+/* macros to work with surrogates */
+#define Py_UNICODE_IS_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDFFF)
+#define Py_UNICODE_IS_HIGH_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDBFF)
+#define Py_UNICODE_IS_LOW_SURROGATE(ch) (0xDC00 <= (ch) && (ch) <= 0xDFFF)
+/* Join two surrogate characters and return a single Py_UCS4 value. */
+#define Py_UNICODE_JOIN_SURROGATES(high, low) \
+ (((((Py_UCS4)(high) & 0x03FF) << 10) | \
+ ((Py_UCS4)(low) & 0x03FF)) + 0x10000)
+/* high surrogate = top 10 bits added to D800 */
+#define Py_UNICODE_HIGH_SURROGATE(ch) (0xD800 - (0x10000 >> 10) + ((ch) >> 10))
+/* low surrogate = bottom 10 bits added to DC00 */
+#define Py_UNICODE_LOW_SURROGATE(ch) (0xDC00 + ((ch) & 0x3FF))
+
+/* --- Unicode Type ------------------------------------------------------- */
+
+/* ASCII-only strings created through PyUnicode_New use the PyASCIIObject
+ structure. state.ascii and state.compact are set, and the data
+ immediately follow the structure. utf8_length and wstr_length can be found
+ in the length field; the utf8 pointer is equal to the data pointer. */
+typedef struct {
+ /* There are 4 forms of Unicode strings:
+
+ - compact ascii:
+
+ * structure = PyASCIIObject
+ * test: PyUnicode_IS_COMPACT_ASCII(op)
+ * kind = PyUnicode_1BYTE_KIND
+ * compact = 1
+ * ascii = 1
+ * ready = 1
+ * (length is the length of the utf8 and wstr strings)
+ * (data starts just after the structure)
+ * (since ASCII is decoded from UTF-8, the utf8 string are the data)
+
+ - compact:
+
+ * structure = PyCompactUnicodeObject
+ * test: PyUnicode_IS_COMPACT(op) && !PyUnicode_IS_ASCII(op)
+ * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or
+ PyUnicode_4BYTE_KIND
+ * compact = 1
+ * ready = 1
+ * ascii = 0
+ * utf8 is not shared with data
+ * utf8_length = 0 if utf8 is NULL
+ * wstr is shared with data and wstr_length=length
+ if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2
+ or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_t)=4
+ * wstr_length = 0 if wstr is NULL
+ * (data starts just after the structure)
+
+ - legacy string, not ready:
+
+ * structure = PyUnicodeObject
+ * test: kind == PyUnicode_WCHAR_KIND
+ * length = 0 (use wstr_length)
+ * hash = -1
+ * kind = PyUnicode_WCHAR_KIND
+ * compact = 0
+ * ascii = 0
+ * ready = 0
+ * interned = SSTATE_NOT_INTERNED
+ * wstr is not NULL
+ * data.any is NULL
+ * utf8 is NULL
+ * utf8_length = 0
+
+ - legacy string, ready:
+
+ * structure = PyUnicodeObject structure
+ * test: !PyUnicode_IS_COMPACT(op) && kind != PyUnicode_WCHAR_KIND
+ * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or
+ PyUnicode_4BYTE_KIND
+ * compact = 0
+ * ready = 1
+ * data.any is not NULL
+ * utf8 is shared and utf8_length = length with data.any if ascii = 1
+ * utf8_length = 0 if utf8 is NULL
+ * wstr is shared with data.any and wstr_length = length
+ if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2
+ or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_4)=4
+ * wstr_length = 0 if wstr is NULL
+
+ Compact strings use only one memory block (structure + characters),
+ whereas legacy strings use one block for the structure and one block
+ for characters.
+
+ Legacy strings are created by PyUnicode_FromUnicode() and
+ PyUnicode_FromStringAndSize(NULL, size) functions. They become ready
+ when PyUnicode_READY() is called.
+
+ See also _PyUnicode_CheckConsistency().
+ */
+ PyObject_HEAD
+ Py_ssize_t length; /* Number of code points in the string */
+ Py_hash_t hash; /* Hash value; -1 if not set */
+ struct {
+ /*
+ SSTATE_NOT_INTERNED (0)
+ SSTATE_INTERNED_MORTAL (1)
+ SSTATE_INTERNED_IMMORTAL (2)
+
+ If interned != SSTATE_NOT_INTERNED, the two references from the
+ dictionary to this object are *not* counted in ob_refcnt.
+ */
+ unsigned int interned:2;
+ /* Character size:
+
+ - PyUnicode_WCHAR_KIND (0):
+
+ * character type = wchar_t (16 or 32 bits, depending on the
+ platform)
+
+ - PyUnicode_1BYTE_KIND (1):
+
+ * character type = Py_UCS1 (8 bits, unsigned)
+ * all characters are in the range U+0000-U+00FF (latin1)
+ * if ascii is set, all characters are in the range U+0000-U+007F
+ (ASCII), otherwise at least one character is in the range
+ U+0080-U+00FF
+
+ - PyUnicode_2BYTE_KIND (2):
+
+ * character type = Py_UCS2 (16 bits, unsigned)
+ * all characters are in the range U+0000-U+FFFF (BMP)
+ * at least one character is in the range U+0100-U+FFFF
+
+ - PyUnicode_4BYTE_KIND (4):
+
+ * character type = Py_UCS4 (32 bits, unsigned)
+ * all characters are in the range U+0000-U+10FFFF
+ * at least one character is in the range U+10000-U+10FFFF
+ */
+ unsigned int kind:3;
+ /* Compact is with respect to the allocation scheme. Compact unicode
+ objects only require one memory block while non-compact objects use
+ one block for the PyUnicodeObject struct and another for its data
+ buffer. */
+ unsigned int compact:1;
+ /* The string only contains characters in the range U+0000-U+007F (ASCII)
+ and the kind is PyUnicode_1BYTE_KIND. If ascii is set and compact is
+ set, use the PyASCIIObject structure. */
+ unsigned int ascii:1;
+ /* The ready flag indicates whether the object layout is initialized
+ completely. This means that this is either a compact object, or
+ the data pointer is filled out. The bit is redundant, and helps
+ to minimize the test in PyUnicode_IS_READY(). */
+ unsigned int ready:1;
+ /* Padding to ensure that PyUnicode_DATA() is always aligned to
+ 4 bytes (see issue #19537 on m68k). */
+ unsigned int :24;
+ } state;
+ wchar_t *wstr; /* wchar_t representation (null-terminated) */
+} PyASCIIObject;
+
+/* Non-ASCII strings allocated through PyUnicode_New use the
+ PyCompactUnicodeObject structure. state.compact is set, and the data
+ immediately follow the structure. */
+typedef struct {
+ PyASCIIObject _base;
+ Py_ssize_t utf8_length; /* Number of bytes in utf8, excluding the
+ * terminating \0. */
+ char *utf8; /* UTF-8 representation (null-terminated) */
+ Py_ssize_t wstr_length; /* Number of code points in wstr, possible
+ * surrogates count as two code points. */
+} PyCompactUnicodeObject;
+
+/* Strings allocated through PyUnicode_FromUnicode(NULL, len) use the
+ PyUnicodeObject structure. The actual string data is initially in the wstr
+ block, and copied into the data block using _PyUnicode_Ready. */
+typedef struct {
+ PyCompactUnicodeObject _base;
+ union {
+ void *any;
+ Py_UCS1 *latin1;
+ Py_UCS2 *ucs2;
+ Py_UCS4 *ucs4;
+ } data; /* Canonical, smallest-form Unicode buffer */
+} PyUnicodeObject;
+
+PyAPI_FUNC(int) _PyUnicode_CheckConsistency(
+ PyObject *op,
+ int check_content);
+
+/* Fast access macros */
+
+/* Returns the deprecated Py_UNICODE representation's size in code units
+ (this includes surrogate pairs as 2 units).
+ If the Py_UNICODE representation is not available, it will be computed
+ on request. Use PyUnicode_GET_LENGTH() for the length in code points. */
+
+/* Py_DEPRECATED(3.3) */
+#define PyUnicode_GET_SIZE(op) \
+ (assert(PyUnicode_Check(op)), \
+ (((PyASCIIObject *)(op))->wstr) ? \
+ PyUnicode_WSTR_LENGTH(op) : \
+ ((void)PyUnicode_AsUnicode(_PyObject_CAST(op)),\
+ assert(((PyASCIIObject *)(op))->wstr), \
+ PyUnicode_WSTR_LENGTH(op)))
+
+/* Py_DEPRECATED(3.3) */
+#define PyUnicode_GET_DATA_SIZE(op) \
+ (PyUnicode_GET_SIZE(op) * Py_UNICODE_SIZE)
+
+/* Alias for PyUnicode_AsUnicode(). This will create a wchar_t/Py_UNICODE
+ representation on demand. Using this macro is very inefficient now,
+ try to port your code to use the new PyUnicode_*BYTE_DATA() macros or
+ use PyUnicode_WRITE() and PyUnicode_READ(). */
+
+/* Py_DEPRECATED(3.3) */
+#define PyUnicode_AS_UNICODE(op) \
+ (assert(PyUnicode_Check(op)), \
+ (((PyASCIIObject *)(op))->wstr) ? (((PyASCIIObject *)(op))->wstr) : \
+ PyUnicode_AsUnicode(_PyObject_CAST(op)))
+
+/* Py_DEPRECATED(3.3) */
+#define PyUnicode_AS_DATA(op) \
+ ((const char *)(PyUnicode_AS_UNICODE(op)))
+
+
+/* --- Flexible String Representation Helper Macros (PEP 393) -------------- */
+
+/* Values for PyASCIIObject.state: */
+
+/* Interning state. */
+#define SSTATE_NOT_INTERNED 0
+#define SSTATE_INTERNED_MORTAL 1
+#define SSTATE_INTERNED_IMMORTAL 2
+
+/* Return true if the string contains only ASCII characters, or 0 if not. The
+ string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be
+ ready. */
+#define PyUnicode_IS_ASCII(op) \
+ (assert(PyUnicode_Check(op)), \
+ assert(PyUnicode_IS_READY(op)), \
+ ((PyASCIIObject*)op)->state.ascii)
+
+/* Return true if the string is compact or 0 if not.
+ No type checks or Ready calls are performed. */
+#define PyUnicode_IS_COMPACT(op) \
+ (((PyASCIIObject*)(op))->state.compact)
+
+/* Return true if the string is a compact ASCII string (use PyASCIIObject
+ structure), or 0 if not. No type checks or Ready calls are performed. */
+#define PyUnicode_IS_COMPACT_ASCII(op) \
+ (((PyASCIIObject*)op)->state.ascii && PyUnicode_IS_COMPACT(op))
+
+enum PyUnicode_Kind {
+/* String contains only wstr byte characters. This is only possible
+ when the string was created with a legacy API and _PyUnicode_Ready()
+ has not been called yet. */
+ PyUnicode_WCHAR_KIND = 0,
+/* Return values of the PyUnicode_KIND() macro: */
+ PyUnicode_1BYTE_KIND = 1,
+ PyUnicode_2BYTE_KIND = 2,
+ PyUnicode_4BYTE_KIND = 4
+};
+
+/* Return pointers to the canonical representation cast to unsigned char,
+ Py_UCS2, or Py_UCS4 for direct character access.
+ No checks are performed, use PyUnicode_KIND() before to ensure
+ these will work correctly. */
+
+#define PyUnicode_1BYTE_DATA(op) ((Py_UCS1*)PyUnicode_DATA(op))
+#define PyUnicode_2BYTE_DATA(op) ((Py_UCS2*)PyUnicode_DATA(op))
+#define PyUnicode_4BYTE_DATA(op) ((Py_UCS4*)PyUnicode_DATA(op))
+
+/* Return one of the PyUnicode_*_KIND values defined above. */
+#define PyUnicode_KIND(op) \
+ (assert(PyUnicode_Check(op)), \
+ assert(PyUnicode_IS_READY(op)), \
+ ((PyASCIIObject *)(op))->state.kind)
+
+/* Return a void pointer to the raw unicode buffer. */
+#define _PyUnicode_COMPACT_DATA(op) \
+ (PyUnicode_IS_ASCII(op) ? \
+ ((void*)((PyASCIIObject*)(op) + 1)) : \
+ ((void*)((PyCompactUnicodeObject*)(op) + 1)))
+
+#define _PyUnicode_NONCOMPACT_DATA(op) \
+ (assert(((PyUnicodeObject*)(op))->data.any), \
+ ((((PyUnicodeObject *)(op))->data.any)))
+
+#define PyUnicode_DATA(op) \
+ (assert(PyUnicode_Check(op)), \
+ PyUnicode_IS_COMPACT(op) ? _PyUnicode_COMPACT_DATA(op) : \
+ _PyUnicode_NONCOMPACT_DATA(op))
+
+/* In the access macros below, "kind" may be evaluated more than once.
+ All other macro parameters are evaluated exactly once, so it is safe
+ to put side effects into them (such as increasing the index). */
+
+/* Write into the canonical representation, this macro does not do any sanity
+ checks and is intended for usage in loops. The caller should cache the
+ kind and data pointers obtained from other macro calls.
+ index is the index in the string (starts at 0) and value is the new
+ code point value which should be written to that location. */
+#define PyUnicode_WRITE(kind, data, index, value) \
+ do { \
+ switch ((kind)) { \
+ case PyUnicode_1BYTE_KIND: { \
+ ((Py_UCS1 *)(data))[(index)] = (Py_UCS1)(value); \
+ break; \
+ } \
+ case PyUnicode_2BYTE_KIND: { \
+ ((Py_UCS2 *)(data))[(index)] = (Py_UCS2)(value); \
+ break; \
+ } \
+ default: { \
+ assert((kind) == PyUnicode_4BYTE_KIND); \
+ ((Py_UCS4 *)(data))[(index)] = (Py_UCS4)(value); \
+ } \
+ } \
+ } while (0)
+
+/* Read a code point from the string's canonical representation. No checks
+ or ready calls are performed. */
+#define PyUnicode_READ(kind, data, index) \
+ ((Py_UCS4) \
+ ((kind) == PyUnicode_1BYTE_KIND ? \
+ ((const Py_UCS1 *)(data))[(index)] : \
+ ((kind) == PyUnicode_2BYTE_KIND ? \
+ ((const Py_UCS2 *)(data))[(index)] : \
+ ((const Py_UCS4 *)(data))[(index)] \
+ ) \
+ ))
+
+/* PyUnicode_READ_CHAR() is less efficient than PyUnicode_READ() because it
+ calls PyUnicode_KIND() and might call it twice. For single reads, use
+ PyUnicode_READ_CHAR, for multiple consecutive reads callers should
+ cache kind and use PyUnicode_READ instead. */
+#define PyUnicode_READ_CHAR(unicode, index) \
+ (assert(PyUnicode_Check(unicode)), \
+ assert(PyUnicode_IS_READY(unicode)), \
+ (Py_UCS4) \
+ (PyUnicode_KIND((unicode)) == PyUnicode_1BYTE_KIND ? \
+ ((const Py_UCS1 *)(PyUnicode_DATA((unicode))))[(index)] : \
+ (PyUnicode_KIND((unicode)) == PyUnicode_2BYTE_KIND ? \
+ ((const Py_UCS2 *)(PyUnicode_DATA((unicode))))[(index)] : \
+ ((const Py_UCS4 *)(PyUnicode_DATA((unicode))))[(index)] \
+ ) \
+ ))
+
+/* Returns the length of the unicode string. The caller has to make sure that
+ the string has it's canonical representation set before calling
+ this macro. Call PyUnicode_(FAST_)Ready to ensure that. */
+#define PyUnicode_GET_LENGTH(op) \
+ (assert(PyUnicode_Check(op)), \
+ assert(PyUnicode_IS_READY(op)), \
+ ((PyASCIIObject *)(op))->length)
+
+
+/* Fast check to determine whether an object is ready. Equivalent to
+ PyUnicode_IS_COMPACT(op) || ((PyUnicodeObject*)(op))->data.any */
+
+#define PyUnicode_IS_READY(op) (((PyASCIIObject*)op)->state.ready)
+
+/* PyUnicode_READY() does less work than _PyUnicode_Ready() in the best
+ case. If the canonical representation is not yet set, it will still call
+ _PyUnicode_Ready().
+ Returns 0 on success and -1 on errors. */
+#define PyUnicode_READY(op) \
+ (assert(PyUnicode_Check(op)), \
+ (PyUnicode_IS_READY(op) ? \
+ 0 : _PyUnicode_Ready(_PyObject_CAST(op))))
+
+/* Return a maximum character value which is suitable for creating another
+ string based on op. This is always an approximation but more efficient
+ than iterating over the string. */
+#define PyUnicode_MAX_CHAR_VALUE(op) \
+ (assert(PyUnicode_IS_READY(op)), \
+ (PyUnicode_IS_ASCII(op) ? \
+ (0x7f) : \
+ (PyUnicode_KIND(op) == PyUnicode_1BYTE_KIND ? \
+ (0xffU) : \
+ (PyUnicode_KIND(op) == PyUnicode_2BYTE_KIND ? \
+ (0xffffU) : \
+ (0x10ffffU)))))
+
+Py_DEPRECATED(3.3)
+static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
+ return PyUnicode_IS_COMPACT_ASCII(op) ?
+ ((PyASCIIObject*)op)->length :
+ ((PyCompactUnicodeObject*)op)->wstr_length;
+}
+#define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
+
+/* === Public API ========================================================= */
+
+/* --- Plain Py_UNICODE --------------------------------------------------- */
+
+/* With PEP 393, this is the recommended way to allocate a new unicode object.
+ This function will allocate the object and its buffer in a single memory
+ block. Objects created using this function are not resizable. */
+PyAPI_FUNC(PyObject*) PyUnicode_New(
+ Py_ssize_t size, /* Number of code points in the new string */
+ Py_UCS4 maxchar /* maximum code point value in the string */
+ );
+
+/* Initializes the canonical string representation from the deprecated
+ wstr/Py_UNICODE representation. This function is used to convert Unicode
+ objects which were created using the old API to the new flexible format
+ introduced with PEP 393.
+
+ Don't call this function directly, use the public PyUnicode_READY() macro
+ instead. */
+PyAPI_FUNC(int) _PyUnicode_Ready(
+ PyObject *unicode /* Unicode object */
+ );
+
+/* Get a copy of a Unicode string. */
+PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
+ PyObject *unicode
+ );
+
+/* Copy character from one unicode object into another, this function performs
+ character conversion when necessary and falls back to memcpy() if possible.
+
+ Fail if to is too small (smaller than *how_many* or smaller than
+ len(from)-from_start), or if kind(from[from_start:from_start+how_many]) >
+ kind(to), or if *to* has more than 1 reference.
+
+ Return the number of written character, or return -1 and raise an exception
+ on error.
+
+ Pseudo-code:
+
+ how_many = min(how_many, len(from) - from_start)
+ to[to_start:to_start+how_many] = from[from_start:from_start+how_many]
+ return how_many
+
+ Note: The function doesn't write a terminating null character.
+ */
+PyAPI_FUNC(Py_ssize_t) PyUnicode_CopyCharacters(
+ PyObject *to,
+ Py_ssize_t to_start,
+ PyObject *from,
+ Py_ssize_t from_start,
+ Py_ssize_t how_many
+ );
+
+/* Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so
+ may crash if parameters are invalid (e.g. if the output string
+ is too short). */
+PyAPI_FUNC(void) _PyUnicode_FastCopyCharacters(
+ PyObject *to,
+ Py_ssize_t to_start,
+ PyObject *from,
+ Py_ssize_t from_start,
+ Py_ssize_t how_many
+ );
+
+/* Fill a string with a character: write fill_char into
+ unicode[start:start+length].
+
+ Fail if fill_char is bigger than the string maximum character, or if the
+ string has more than 1 reference.
+
+ Return the number of written character, or return -1 and raise an exception
+ on error. */
+PyAPI_FUNC(Py_ssize_t) PyUnicode_Fill(
+ PyObject *unicode,
+ Py_ssize_t start,
+ Py_ssize_t length,
+ Py_UCS4 fill_char
+ );
+
+/* Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash
+ if parameters are invalid (e.g. if length is longer than the string). */
+PyAPI_FUNC(void) _PyUnicode_FastFill(
+ PyObject *unicode,
+ Py_ssize_t start,
+ Py_ssize_t length,
+ Py_UCS4 fill_char
+ );
+
+/* Create a Unicode Object from the Py_UNICODE buffer u of the given
+ size.
+
+ u may be NULL which causes the contents to be undefined. It is the
+ user's responsibility to fill in the needed data afterwards. Note
+ that modifying the Unicode object contents after construction is
+ only allowed if u was set to NULL.
+
+ The buffer is copied into the new object. */
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
+ const Py_UNICODE *u, /* Unicode buffer */
+ Py_ssize_t size /* size of buffer */
+ );
+
+/* Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.
+ Scan the string to find the maximum character. */
+PyAPI_FUNC(PyObject*) PyUnicode_FromKindAndData(
+ int kind,
+ const void *buffer,
+ Py_ssize_t size);
+
+/* Create a new string from a buffer of ASCII characters.
+ WARNING: Don't check if the string contains any non-ASCII character. */
+PyAPI_FUNC(PyObject*) _PyUnicode_FromASCII(
+ const char *buffer,
+ Py_ssize_t size);
+
+/* Compute the maximum character of the substring unicode[start:end].
+ Return 127 for an empty string. */
+PyAPI_FUNC(Py_UCS4) _PyUnicode_FindMaxChar (
+ PyObject *unicode,
+ Py_ssize_t start,
+ Py_ssize_t end);
+
+/* Return a read-only pointer to the Unicode object's internal
+ Py_UNICODE buffer.
+ If the wchar_t/Py_UNICODE representation is not yet available, this
+ function will calculate it. */
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
+ PyObject *unicode /* Unicode object */
+ );
+
+/* Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string
+ contains null characters. */
+Py_DEPRECATED(3.3) PyAPI_FUNC(const Py_UNICODE *) _PyUnicode_AsUnicode(
+ PyObject *unicode /* Unicode object */
+ );
+
+/* Return a read-only pointer to the Unicode object's internal
+ Py_UNICODE buffer and save the length at size.
+ If the wchar_t/Py_UNICODE representation is not yet available, this
+ function will calculate it. */
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicodeAndSize(
+ PyObject *unicode, /* Unicode object */
+ Py_ssize_t *size /* location where to save the length */
+ );
+
+/* Get the maximum ordinal for a Unicode character. */
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE) PyUnicode_GetMax(void);
+
+
+/* --- _PyUnicodeWriter API ----------------------------------------------- */
+
+typedef struct {
+ PyObject *buffer;
+ void *data;
+ enum PyUnicode_Kind kind;
+ Py_UCS4 maxchar;
+ Py_ssize_t size;
+ Py_ssize_t pos;
+
+ /* minimum number of allocated characters (default: 0) */
+ Py_ssize_t min_length;
+
+ /* minimum character (default: 127, ASCII) */
+ Py_UCS4 min_char;
+
+ /* If non-zero, overallocate the buffer (default: 0). */
+ unsigned char overallocate;
+
+ /* If readonly is 1, buffer is a shared string (cannot be modified)
+ and size is set to 0. */
+ unsigned char readonly;
+} _PyUnicodeWriter ;
+
+/* Initialize a Unicode writer.
+ *
+ * By default, the minimum buffer size is 0 character and overallocation is
+ * disabled. Set min_length, min_char and overallocate attributes to control
+ * the allocation of the buffer. */
+PyAPI_FUNC(void)
+_PyUnicodeWriter_Init(_PyUnicodeWriter *writer);
+
+/* Prepare the buffer to write 'length' characters
+ with the specified maximum character.
+
+ Return 0 on success, raise an exception and return -1 on error. */
+#define _PyUnicodeWriter_Prepare(WRITER, LENGTH, MAXCHAR) \
+ (((MAXCHAR) <= (WRITER)->maxchar \
+ && (LENGTH) <= (WRITER)->size - (WRITER)->pos) \
+ ? 0 \
+ : (((LENGTH) == 0) \
+ ? 0 \
+ : _PyUnicodeWriter_PrepareInternal((WRITER), (LENGTH), (MAXCHAR))))
+
+/* Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro
+ instead. */
+PyAPI_FUNC(int)
+_PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer,
+ Py_ssize_t length, Py_UCS4 maxchar);
+
+/* Prepare the buffer to have at least the kind KIND.
+ For example, kind=PyUnicode_2BYTE_KIND ensures that the writer will
+ support characters in range U+000-U+FFFF.
+
+ Return 0 on success, raise an exception and return -1 on error. */
+#define _PyUnicodeWriter_PrepareKind(WRITER, KIND) \
+ (assert((KIND) != PyUnicode_WCHAR_KIND), \
+ (KIND) <= (WRITER)->kind \
+ ? 0 \
+ : _PyUnicodeWriter_PrepareKindInternal((WRITER), (KIND)))
+
+/* Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()
+ macro instead. */
+PyAPI_FUNC(int)
+_PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer,
+ enum PyUnicode_Kind kind);
+
+/* Append a Unicode character.
+ Return 0 on success, raise an exception and return -1 on error. */
+PyAPI_FUNC(int)
+_PyUnicodeWriter_WriteChar(_PyUnicodeWriter *writer,
+ Py_UCS4 ch
+ );
+
+/* Append a Unicode string.
+ Return 0 on success, raise an exception and return -1 on error. */
+PyAPI_FUNC(int)
+_PyUnicodeWriter_WriteStr(_PyUnicodeWriter *writer,
+ PyObject *str /* Unicode string */
+ );
+
+/* Append a substring of a Unicode string.
+ Return 0 on success, raise an exception and return -1 on error. */
+PyAPI_FUNC(int)
+_PyUnicodeWriter_WriteSubstring(_PyUnicodeWriter *writer,
+ PyObject *str, /* Unicode string */
+ Py_ssize_t start,
+ Py_ssize_t end
+ );
+
+/* Append an ASCII-encoded byte string.
+ Return 0 on success, raise an exception and return -1 on error. */
+PyAPI_FUNC(int)
+_PyUnicodeWriter_WriteASCIIString(_PyUnicodeWriter *writer,
+ const char *str, /* ASCII-encoded byte string */
+ Py_ssize_t len /* number of bytes, or -1 if unknown */
+ );
+
+/* Append a latin1-encoded byte string.
+ Return 0 on success, raise an exception and return -1 on error. */
+PyAPI_FUNC(int)
+_PyUnicodeWriter_WriteLatin1String(_PyUnicodeWriter *writer,
+ const char *str, /* latin1-encoded byte string */
+ Py_ssize_t len /* length in bytes */
+ );
+
+/* Get the value of the writer as a Unicode string. Clear the
+ buffer of the writer. Raise an exception and return NULL
+ on error. */
+PyAPI_FUNC(PyObject *)
+_PyUnicodeWriter_Finish(_PyUnicodeWriter *writer);
+
+/* Deallocate memory of a writer (clear its internal buffer). */
+PyAPI_FUNC(void)
+_PyUnicodeWriter_Dealloc(_PyUnicodeWriter *writer);
+
+
+/* Format the object based on the format_spec, as defined in PEP 3101
+ (Advanced String Formatting). */
+PyAPI_FUNC(int) _PyUnicode_FormatAdvancedWriter(
+ _PyUnicodeWriter *writer,
+ PyObject *obj,
+ PyObject *format_spec,
+ Py_ssize_t start,
+ Py_ssize_t end);
+
+/* --- Manage the default encoding ---------------------------------------- */
+
+/* Returns a pointer to the default encoding (UTF-8) of the
+ Unicode object unicode and the size of the encoded representation
+ in bytes stored in *size.
+
+ In case of an error, no *size is set.
+
+ This function caches the UTF-8 encoded string in the unicodeobject
+ and subsequent calls will return the same string. The memory is released
+ when the unicodeobject is deallocated.
+
+ _PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to
+ support the previous internal function with the same behaviour.
+*/
+
+PyAPI_FUNC(const char *) PyUnicode_AsUTF8AndSize(
+ PyObject *unicode,
+ Py_ssize_t *size);
+
+#define _PyUnicode_AsStringAndSize PyUnicode_AsUTF8AndSize
+
+/* Returns a pointer to the default encoding (UTF-8) of the
+ Unicode object unicode.
+
+ Like PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation
+ in the unicodeobject.
+
+ _PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to
+ support the previous internal function with the same behaviour.
+
+ Use of this API is DEPRECATED since no size information can be
+ extracted from the returned data.
+*/
+
+PyAPI_FUNC(const char *) PyUnicode_AsUTF8(PyObject *unicode);
+
+#define _PyUnicode_AsString PyUnicode_AsUTF8
+
+/* --- Generic Codecs ----------------------------------------------------- */
+
+/* Encodes a Py_UNICODE buffer of the given size and returns a
+ Python string object. */
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_Encode(
+ const Py_UNICODE *s, /* Unicode char buffer */
+ Py_ssize_t size, /* number of Py_UNICODE chars to encode */
+ const char *encoding, /* encoding */
+ const char *errors /* error handling */
+ );
+
+/* --- UTF-7 Codecs ------------------------------------------------------- */
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF7(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* number of Py_UNICODE chars to encode */
+ int base64SetO, /* Encode RFC2152 Set O characters in base64 */
+ int base64WhiteSpace, /* Encode whitespace (sp, ht, nl, cr) in base64 */
+ const char *errors /* error handling */
+ );
+
+PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF7(
+ PyObject *unicode, /* Unicode object */
+ int base64SetO, /* Encode RFC2152 Set O characters in base64 */
+ int base64WhiteSpace, /* Encode whitespace (sp, ht, nl, cr) in base64 */
+ const char *errors /* error handling */
+ );
+
+/* --- UTF-8 Codecs ------------------------------------------------------- */
+
+PyAPI_FUNC(PyObject*) _PyUnicode_AsUTF8String(
+ PyObject *unicode,
+ const char *errors);
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF8(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* number of Py_UNICODE chars to encode */
+ const char *errors /* error handling */
+ );
+
+/* --- UTF-32 Codecs ------------------------------------------------------ */
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF32(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* number of Py_UNICODE chars to encode */
+ const char *errors, /* error handling */
+ int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
+ );
+
+PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF32(
+ PyObject *object, /* Unicode object */
+ const char *errors, /* error handling */
+ int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
+ );
+
+/* --- UTF-16 Codecs ------------------------------------------------------ */
+
+/* Returns a Python string object holding the UTF-16 encoded value of
+ the Unicode data.
+
+ If byteorder is not 0, output is written according to the following
+ byte order:
+
+ byteorder == -1: little endian
+ byteorder == 0: native byte order (writes a BOM mark)
+ byteorder == 1: big endian
+
+ If byteorder is 0, the output string will always start with the
+ Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is
+ prepended.
+
+ Note that Py_UNICODE data is being interpreted as UTF-16 reduced to
+ UCS-2. This trick makes it possible to add full UTF-16 capabilities
+ at a later point without compromising the APIs.
+
+*/
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF16(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* number of Py_UNICODE chars to encode */
+ const char *errors, /* error handling */
+ int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
+ );
+
+PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF16(
+ PyObject* unicode, /* Unicode object */
+ const char *errors, /* error handling */
+ int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
+ );
+
+/* --- Unicode-Escape Codecs ---------------------------------------------- */
+
+/* Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding. */
+PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeStateful(
+ const char *string, /* Unicode-Escape encoded string */
+ Py_ssize_t length, /* size of string */
+ const char *errors, /* error handling */
+ Py_ssize_t *consumed /* bytes consumed */
+);
+/* Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape
+ chars. */
+PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal(
+ const char *string, /* Unicode-Escape encoded string */
+ Py_ssize_t length, /* size of string */
+ const char *errors, /* error handling */
+ Py_ssize_t *consumed, /* bytes consumed */
+ const char **first_invalid_escape /* on return, points to first
+ invalid escaped char in
+ string. */
+);
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeUnicodeEscape(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length /* Number of Py_UNICODE chars to encode */
+ );
+
+/* --- Raw-Unicode-Escape Codecs ------------------------------------------ */
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length /* Number of Py_UNICODE chars to encode */
+ );
+
+/* Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding. */
+PyAPI_FUNC(PyObject*) _PyUnicode_DecodeRawUnicodeEscapeStateful(
+ const char *string, /* Unicode-Escape encoded string */
+ Py_ssize_t length, /* size of string */
+ const char *errors, /* error handling */
+ Py_ssize_t *consumed /* bytes consumed */
+);
+
+/* --- Latin-1 Codecs ----------------------------------------------------- */
+
+PyAPI_FUNC(PyObject*) _PyUnicode_AsLatin1String(
+ PyObject* unicode,
+ const char* errors);
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeLatin1(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
+ const char *errors /* error handling */
+ );
+
+/* --- ASCII Codecs ------------------------------------------------------- */
+
+PyAPI_FUNC(PyObject*) _PyUnicode_AsASCIIString(
+ PyObject* unicode,
+ const char* errors);
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeASCII(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
+ const char *errors /* error handling */
+ );
+
+/* --- Character Map Codecs ----------------------------------------------- */
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeCharmap(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
+ PyObject *mapping, /* encoding mapping */
+ const char *errors /* error handling */
+ );
+
+PyAPI_FUNC(PyObject*) _PyUnicode_EncodeCharmap(
+ PyObject *unicode, /* Unicode object */
+ PyObject *mapping, /* encoding mapping */
+ const char *errors /* error handling */
+ );
+
+/* Translate a Py_UNICODE buffer of the given length by applying a
+ character mapping table to it and return the resulting Unicode
+ object.
+
+ The mapping table must map Unicode ordinal integers to Unicode strings,
+ Unicode ordinal integers or None (causing deletion of the character).
+
+ Mapping tables may be dictionaries or sequences. Unmapped character
+ ordinals (ones which cause a LookupError) are left untouched and
+ are copied as-is.
+
+*/
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject *) PyUnicode_TranslateCharmap(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
+ PyObject *table, /* Translate table */
+ const char *errors /* error handling */
+ );
+
+/* --- MBCS codecs for Windows -------------------------------------------- */
+
+#ifdef MS_WINDOWS
+Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeMBCS(
+ const Py_UNICODE *data, /* Unicode char buffer */
+ Py_ssize_t length, /* number of Py_UNICODE chars to encode */
+ const char *errors /* error handling */
+ );
+#endif
+
+/* --- Decimal Encoder ---------------------------------------------------- */
+
+/* Takes a Unicode string holding a decimal value and writes it into
+ an output buffer using standard ASCII digit codes.
+
+ The output buffer has to provide at least length+1 bytes of storage
+ area. The output string is 0-terminated.
+
+ The encoder converts whitespace to ' ', decimal characters to their
+ corresponding ASCII digit and all other Latin-1 characters except
+ \0 as-is. Characters outside this range (Unicode ordinals 1-256)
+ are treated as errors. This includes embedded NULL bytes.
+
+ Error handling is defined by the errors argument:
+
+ NULL or "strict": raise a ValueError
+ "ignore": ignore the wrong characters (these are not copied to the
+ output buffer)
+ "replace": replaces illegal characters with '?'
+
+ Returns 0 on success, -1 on failure.
+
+*/
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(int) PyUnicode_EncodeDecimal(
+ Py_UNICODE *s, /* Unicode buffer */
+ Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
+ char *output, /* Output buffer; must have size >= length */
+ const char *errors /* error handling */
+ );
+
+/* Transforms code points that have decimal digit property to the
+ corresponding ASCII digit code points.
+
+ Returns a new Unicode string on success, NULL on failure.
+*/
+
+Py_DEPRECATED(3.3)
+PyAPI_FUNC(PyObject*) PyUnicode_TransformDecimalToASCII(
+ Py_UNICODE *s, /* Unicode buffer */
+ Py_ssize_t length /* Number of Py_UNICODE chars to transform */
+ );
+
+/* Coverts a Unicode object holding a decimal value to an ASCII string
+ for using in int, float and complex parsers.
+ Transforms code points that have decimal digit property to the
+ corresponding ASCII digit code points. Transforms spaces to ASCII.
+ Transforms code points starting from the first non-ASCII code point that
+ is neither a decimal digit nor a space to the end into '?'. */
+
+PyAPI_FUNC(PyObject*) _PyUnicode_TransformDecimalAndSpaceToASCII(
+ PyObject *unicode /* Unicode object */
+ );
+
+/* --- Methods & Slots ---------------------------------------------------- */
+
+PyAPI_FUNC(PyObject *) _PyUnicode_JoinArray(
+ PyObject *separator,
+ PyObject *const *items,
+ Py_ssize_t seqlen
+ );
+
+/* Test whether a unicode is equal to ASCII identifier. Return 1 if true,
+ 0 otherwise. The right argument must be ASCII identifier.
+ Any error occurs inside will be cleared before return. */
+PyAPI_FUNC(int) _PyUnicode_EqualToASCIIId(
+ PyObject *left, /* Left string */
+ _Py_Identifier *right /* Right identifier */
+ );
+
+/* Test whether a unicode is equal to ASCII string. Return 1 if true,
+ 0 otherwise. The right argument must be ASCII-encoded string.
+ Any error occurs inside will be cleared before return. */
+PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString(
+ PyObject *left,
+ const char *right /* ASCII-encoded string */
+ );
+
+/* Externally visible for str.strip(unicode) */
+PyAPI_FUNC(PyObject *) _PyUnicode_XStrip(
+ PyObject *self,
+ int striptype,
+ PyObject *sepobj
+ );
+
+/* Using explicit passed-in values, insert the thousands grouping
+ into the string pointed to by buffer. For the argument descriptions,
+ see Objects/stringlib/localeutil.h */
+PyAPI_FUNC(Py_ssize_t) _PyUnicode_InsertThousandsGrouping(
+ _PyUnicodeWriter *writer,
+ Py_ssize_t n_buffer,
+ PyObject *digits,
+ Py_ssize_t d_pos,
+ Py_ssize_t n_digits,
+ Py_ssize_t min_width,
+ const char *grouping,
+ PyObject *thousands_sep,
+ Py_UCS4 *maxchar);
+
+/* === Characters Type APIs =============================================== */
+
+/* Helper array used by Py_UNICODE_ISSPACE(). */
+
+PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
+
+/* These should not be used directly. Use the Py_UNICODE_IS* and
+ Py_UNICODE_TO* macros instead.
+
+ These APIs are implemented in Objects/unicodectype.c.
+
+*/
+
+PyAPI_FUNC(int) _PyUnicode_IsLowercase(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsUppercase(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsTitlecase(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsXidStart(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsXidContinue(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsWhitespace(
+ const Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsLinebreak(
+ const Py_UCS4 ch /* Unicode character */
+ );
+
+/* Py_DEPRECATED(3.3) */ PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+/* Py_DEPRECATED(3.3) */ PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_ToLowerFull(
+ Py_UCS4 ch, /* Unicode character */
+ Py_UCS4 *res
+ );
+
+PyAPI_FUNC(int) _PyUnicode_ToTitleFull(
+ Py_UCS4 ch, /* Unicode character */
+ Py_UCS4 *res
+ );
+
+PyAPI_FUNC(int) _PyUnicode_ToUpperFull(
+ Py_UCS4 ch, /* Unicode character */
+ Py_UCS4 *res
+ );
+
+PyAPI_FUNC(int) _PyUnicode_ToFoldedFull(
+ Py_UCS4 ch, /* Unicode character */
+ Py_UCS4 *res
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsCaseIgnorable(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsCased(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_ToDecimalDigit(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_ToDigit(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(double) _PyUnicode_ToNumeric(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsDecimalDigit(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsDigit(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsNumeric(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsPrintable(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+PyAPI_FUNC(int) _PyUnicode_IsAlpha(
+ Py_UCS4 ch /* Unicode character */
+ );
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(size_t) Py_UNICODE_strlen(
+ const Py_UNICODE *u
+ );
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcpy(
+ Py_UNICODE *s1,
+ const Py_UNICODE *s2);
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcat(
+ Py_UNICODE *s1, const Py_UNICODE *s2);
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strncpy(
+ Py_UNICODE *s1,
+ const Py_UNICODE *s2,
+ size_t n);
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(int) Py_UNICODE_strcmp(
+ const Py_UNICODE *s1,
+ const Py_UNICODE *s2
+ );
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(int) Py_UNICODE_strncmp(
+ const Py_UNICODE *s1,
+ const Py_UNICODE *s2,
+ size_t n
+ );
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strchr(
+ const Py_UNICODE *s,
+ Py_UNICODE c
+ );
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strrchr(
+ const Py_UNICODE *s,
+ Py_UNICODE c
+ );
+
+PyAPI_FUNC(PyObject*) _PyUnicode_FormatLong(PyObject *, int, int, int);
+
+/* Create a copy of a unicode string ending with a nul character. Return NULL
+ and raise a MemoryError exception on memory allocation failure, otherwise
+ return a new allocated buffer (use PyMem_Free() to free the buffer). */
+
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) PyUnicode_AsUnicodeCopy(
+ PyObject *unicode
+ );
+
+/* Return an interned Unicode object for an Identifier; may fail if there is no memory.*/
+PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*);
+
+/* Fast equality check when the inputs are known to be exact unicode types
+ and where the hash values are equal (i.e. a very probable match) */
+PyAPI_FUNC(int) _PyUnicode_EQ(PyObject *, PyObject *);
+
+PyAPI_FUNC(Py_ssize_t) _PyUnicode_ScanIdentifier(PyObject *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/contrib/tools/python3/src/Include/datetime.h b/contrib/tools/python3/src/Include/datetime.h
index a0c2355f5c..5d9f2558f9 100644
--- a/contrib/tools/python3/src/Include/datetime.h
+++ b/contrib/tools/python3/src/Include/datetime.h
@@ -180,11 +180,11 @@ typedef struct {
#define PyDateTime_CAPSULE_NAME "datetime.datetime_CAPI"
-/* This block is only used as part of the public API and should not be
- * included in _datetimemodule.c, which does not use the C API capsule.
- * See bpo-35081 for more details.
- * */
-#ifndef _PY_DATETIME_IMPL
+/* This block is only used as part of the public API and should not be
+ * included in _datetimemodule.c, which does not use the C API capsule.
+ * See bpo-35081 for more details.
+ * */
+#ifndef _PY_DATETIME_IMPL
/* Define global variable for the C API and a macro for setting it. */
static PyDateTime_CAPI *PyDateTimeAPI = NULL;
@@ -196,21 +196,21 @@ static PyDateTime_CAPI *PyDateTimeAPI = NULL;
/* Macros for type checking when not building the Python core. */
#define PyDate_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateType)
-#define PyDate_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateType)
+#define PyDate_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateType)
#define PyDateTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateTimeType)
-#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateTimeType)
+#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateTimeType)
#define PyTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TimeType)
-#define PyTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TimeType)
+#define PyTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TimeType)
#define PyDelta_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DeltaType)
-#define PyDelta_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DeltaType)
+#define PyDelta_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DeltaType)
#define PyTZInfo_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TZInfoType)
-#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TZInfoType)
+#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TZInfoType)
+
-
/* Macros for accessing constructors in a simplified fashion. */
#define PyDate_FromDate(year, month, day) \
PyDateTimeAPI->Date_FromDate(year, month, day, PyDateTimeAPI->DateType)
@@ -250,7 +250,7 @@ static PyDateTime_CAPI *PyDateTimeAPI = NULL;
PyDateTimeAPI->Date_FromTimestamp( \
(PyObject*) (PyDateTimeAPI->DateType), args)
-#endif /* !defined(_PY_DATETIME_IMPL) */
+#endif /* !defined(_PY_DATETIME_IMPL) */
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/descrobject.h b/contrib/tools/python3/src/Include/descrobject.h
index bee44b5443..ead269d1d2 100644
--- a/contrib/tools/python3/src/Include/descrobject.h
+++ b/contrib/tools/python3/src/Include/descrobject.h
@@ -53,7 +53,7 @@ typedef struct {
typedef struct {
PyDescr_COMMON;
PyMethodDef *d_method;
- vectorcallfunc vectorcall;
+ vectorcallfunc vectorcall;
} PyMethodDescrObject;
typedef struct {
diff --git a/contrib/tools/python3/src/Include/dictobject.h b/contrib/tools/python3/src/Include/dictobject.h
index 13c377fbab..c88b0aa0a5 100644
--- a/contrib/tools/python3/src/Include/dictobject.h
+++ b/contrib/tools/python3/src/Include/dictobject.h
@@ -16,7 +16,7 @@ PyAPI_DATA(PyTypeObject) PyDict_Type;
#define PyDict_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_DICT_SUBCLASS)
-#define PyDict_CheckExact(op) Py_IS_TYPE(op, &PyDict_Type)
+#define PyDict_CheckExact(op) Py_IS_TYPE(op, &PyDict_Type)
PyAPI_FUNC(PyObject *) PyDict_New(void);
PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key);
@@ -42,8 +42,8 @@ PyAPI_FUNC(int) PyDict_Update(PyObject *mp, PyObject *other);
dict.update(other) is equivalent to PyDict_Merge(dict, other, 1).
*/
PyAPI_FUNC(int) PyDict_Merge(PyObject *mp,
- PyObject *other,
- int override);
+ PyObject *other,
+ int override);
/* PyDict_MergeFromSeq2 updates/merges from an iterable object producing
iterable objects of length 2. If override is true, the last occurrence
@@ -51,41 +51,41 @@ PyAPI_FUNC(int) PyDict_Merge(PyObject *mp,
is equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1).
*/
PyAPI_FUNC(int) PyDict_MergeFromSeq2(PyObject *d,
- PyObject *seq2,
- int override);
+ PyObject *seq2,
+ int override);
PyAPI_FUNC(PyObject *) PyDict_GetItemString(PyObject *dp, const char *key);
PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);
-/* Dictionary (keys, values, items) views */
-
-PyAPI_DATA(PyTypeObject) PyDictKeys_Type;
-PyAPI_DATA(PyTypeObject) PyDictValues_Type;
-PyAPI_DATA(PyTypeObject) PyDictItems_Type;
-
-#define PyDictKeys_Check(op) PyObject_TypeCheck(op, &PyDictKeys_Type)
-#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type)
-#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type)
-/* This excludes Values, since they are not sets. */
-# define PyDictViewSet_Check(op) \
- (PyDictKeys_Check(op) || PyDictItems_Check(op))
-
-/* Dictionary (key, value, items) iterators */
-
-PyAPI_DATA(PyTypeObject) PyDictIterKey_Type;
-PyAPI_DATA(PyTypeObject) PyDictIterValue_Type;
-PyAPI_DATA(PyTypeObject) PyDictIterItem_Type;
-
-PyAPI_DATA(PyTypeObject) PyDictRevIterKey_Type;
-PyAPI_DATA(PyTypeObject) PyDictRevIterItem_Type;
-PyAPI_DATA(PyTypeObject) PyDictRevIterValue_Type;
-
-
+/* Dictionary (keys, values, items) views */
+
+PyAPI_DATA(PyTypeObject) PyDictKeys_Type;
+PyAPI_DATA(PyTypeObject) PyDictValues_Type;
+PyAPI_DATA(PyTypeObject) PyDictItems_Type;
+
+#define PyDictKeys_Check(op) PyObject_TypeCheck(op, &PyDictKeys_Type)
+#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type)
+#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type)
+/* This excludes Values, since they are not sets. */
+# define PyDictViewSet_Check(op) \
+ (PyDictKeys_Check(op) || PyDictItems_Check(op))
+
+/* Dictionary (key, value, items) iterators */
+
+PyAPI_DATA(PyTypeObject) PyDictIterKey_Type;
+PyAPI_DATA(PyTypeObject) PyDictIterValue_Type;
+PyAPI_DATA(PyTypeObject) PyDictIterItem_Type;
+
+PyAPI_DATA(PyTypeObject) PyDictRevIterKey_Type;
+PyAPI_DATA(PyTypeObject) PyDictRevIterItem_Type;
+PyAPI_DATA(PyTypeObject) PyDictRevIterValue_Type;
+
+
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_DICTOBJECT_H
-# include "cpython/dictobject.h"
-# undef Py_CPYTHON_DICTOBJECT_H
+# define Py_CPYTHON_DICTOBJECT_H
+# include "cpython/dictobject.h"
+# undef Py_CPYTHON_DICTOBJECT_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/exports.h b/contrib/tools/python3/src/Include/exports.h
index 12b9d32908..fc1a5c5ead 100644
--- a/contrib/tools/python3/src/Include/exports.h
+++ b/contrib/tools/python3/src/Include/exports.h
@@ -1,30 +1,30 @@
-#ifndef Py_EXPORTS_H
-#define Py_EXPORTS_H
-
-#if defined(_WIN32) || defined(__CYGWIN__)
- #define Py_IMPORTED_SYMBOL __declspec(dllimport)
- #define Py_EXPORTED_SYMBOL __declspec(dllexport)
- #define Py_LOCAL_SYMBOL
-#else
-/*
- * If we only ever used gcc >= 5, we could use __has_attribute(visibility)
- * as a cross-platform way to determine if visibility is supported. However,
- * we may still need to support gcc >= 4, as some Ubuntu LTS and Centos versions
- * have 4 < gcc < 5.
- */
- #ifndef __has_attribute
- #define __has_attribute(x) 0 // Compatibility with non-clang compilers.
- #endif
- #if (defined(__GNUC__) && (__GNUC__ >= 4)) ||\
- (defined(__clang__) && __has_attribute(visibility))
- #define Py_IMPORTED_SYMBOL __attribute__ ((visibility ("default")))
- #define Py_EXPORTED_SYMBOL __attribute__ ((visibility ("default")))
- #define Py_LOCAL_SYMBOL __attribute__ ((visibility ("hidden")))
- #else
- #define Py_IMPORTED_SYMBOL
- #define Py_EXPORTED_SYMBOL
- #define Py_LOCAL_SYMBOL
- #endif
-#endif
-
-#endif /* Py_EXPORTS_H */
+#ifndef Py_EXPORTS_H
+#define Py_EXPORTS_H
+
+#if defined(_WIN32) || defined(__CYGWIN__)
+ #define Py_IMPORTED_SYMBOL __declspec(dllimport)
+ #define Py_EXPORTED_SYMBOL __declspec(dllexport)
+ #define Py_LOCAL_SYMBOL
+#else
+/*
+ * If we only ever used gcc >= 5, we could use __has_attribute(visibility)
+ * as a cross-platform way to determine if visibility is supported. However,
+ * we may still need to support gcc >= 4, as some Ubuntu LTS and Centos versions
+ * have 4 < gcc < 5.
+ */
+ #ifndef __has_attribute
+ #define __has_attribute(x) 0 // Compatibility with non-clang compilers.
+ #endif
+ #if (defined(__GNUC__) && (__GNUC__ >= 4)) ||\
+ (defined(__clang__) && __has_attribute(visibility))
+ #define Py_IMPORTED_SYMBOL __attribute__ ((visibility ("default")))
+ #define Py_EXPORTED_SYMBOL __attribute__ ((visibility ("default")))
+ #define Py_LOCAL_SYMBOL __attribute__ ((visibility ("hidden")))
+ #else
+ #define Py_IMPORTED_SYMBOL
+ #define Py_EXPORTED_SYMBOL
+ #define Py_LOCAL_SYMBOL
+ #endif
+#endif
+
+#endif /* Py_EXPORTS_H */
diff --git a/contrib/tools/python3/src/Include/fileobject.h b/contrib/tools/python3/src/Include/fileobject.h
index 4175867518..6ec2994aa8 100644
--- a/contrib/tools/python3/src/Include/fileobject.h
+++ b/contrib/tools/python3/src/Include/fileobject.h
@@ -20,15 +20,15 @@ PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *);
If non-NULL, this is different than the default encoding for strings
*/
PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding;
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
-PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors;
-#endif
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
+PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors;
+#endif
PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding;
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
-PyAPI_DATA(int) Py_UTF8Mode;
-#endif
-
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
+PyAPI_DATA(int) Py_UTF8Mode;
+#endif
+
/* A routine to check if a file descriptor can be select()-ed. */
#ifdef _MSC_VER
/* On Windows, any socket fd can be select()-ed, no matter how high */
@@ -37,12 +37,12 @@ PyAPI_DATA(int) Py_UTF8Mode;
#define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE)
#endif
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_FILEOBJECT_H
-# include "cpython/fileobject.h"
-# undef Py_CPYTHON_FILEOBJECT_H
-#endif
-
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_FILEOBJECT_H
+# include "cpython/fileobject.h"
+# undef Py_CPYTHON_FILEOBJECT_H
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Include/fileutils.h b/contrib/tools/python3/src/Include/fileutils.h
index 205696cd5c..12bd071c49 100644
--- a/contrib/tools/python3/src/Include/fileutils.h
+++ b/contrib/tools/python3/src/Include/fileutils.h
@@ -19,9 +19,9 @@ PyAPI_FUNC(char*) _Py_EncodeLocaleRaw(
#endif
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_FILEUTILS_H
-# include "cpython/fileutils.h"
-# undef Py_CPYTHON_FILEUTILS_H
+# define Py_CPYTHON_FILEUTILS_H
+# include "cpython/fileutils.h"
+# undef Py_CPYTHON_FILEUTILS_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/floatobject.h b/contrib/tools/python3/src/Include/floatobject.h
index aff179db87..e994aa8f29 100644
--- a/contrib/tools/python3/src/Include/floatobject.h
+++ b/contrib/tools/python3/src/Include/floatobject.h
@@ -21,7 +21,7 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyFloat_Type;
#define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type)
-#define PyFloat_CheckExact(op) Py_IS_TYPE(op, &PyFloat_Type)
+#define PyFloat_CheckExact(op) Py_IS_TYPE(op, &PyFloat_Type)
#ifdef Py_NAN
#define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN)
diff --git a/contrib/tools/python3/src/Include/frameobject.h b/contrib/tools/python3/src/Include/frameobject.h
index 7d778ef3ef..c118af1201 100644
--- a/contrib/tools/python3/src/Include/frameobject.h
+++ b/contrib/tools/python3/src/Include/frameobject.h
@@ -6,13 +6,13 @@
extern "C" {
#endif
-#include "pyframe.h"
+#include "pyframe.h"
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_FRAMEOBJECT_H
-# include "cpython/frameobject.h"
-# undef Py_CPYTHON_FRAMEOBJECT_H
-#endif
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_FRAMEOBJECT_H
+# include "cpython/frameobject.h"
+# undef Py_CPYTHON_FRAMEOBJECT_H
+#endif
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/funcobject.h b/contrib/tools/python3/src/Include/funcobject.h
index 6a48de8912..c5cc9d261a 100644
--- a/contrib/tools/python3/src/Include/funcobject.h
+++ b/contrib/tools/python3/src/Include/funcobject.h
@@ -32,7 +32,7 @@ typedef struct {
PyObject *func_module; /* The __module__ attribute, can be anything */
PyObject *func_annotations; /* Annotations, a dict or NULL */
PyObject *func_qualname; /* The qualified name */
- vectorcallfunc vectorcall;
+ vectorcallfunc vectorcall;
/* Invariant:
* func_closure contains the bindings for func_code->co_freevars, so
@@ -43,7 +43,7 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyFunction_Type;
-#define PyFunction_Check(op) Py_IS_TYPE(op, &PyFunction_Type)
+#define PyFunction_Check(op) Py_IS_TYPE(op, &PyFunction_Type)
PyAPI_FUNC(PyObject *) PyFunction_New(PyObject *, PyObject *);
PyAPI_FUNC(PyObject *) PyFunction_NewWithQualName(PyObject *, PyObject *, PyObject *);
@@ -60,10 +60,10 @@ PyAPI_FUNC(PyObject *) PyFunction_GetAnnotations(PyObject *);
PyAPI_FUNC(int) PyFunction_SetAnnotations(PyObject *, PyObject *);
#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall(
+PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall(
PyObject *func,
PyObject *const *stack,
- size_t nargsf,
+ size_t nargsf,
PyObject *kwnames);
#endif
diff --git a/contrib/tools/python3/src/Include/genericaliasobject.h b/contrib/tools/python3/src/Include/genericaliasobject.h
index 7f5b903155..cf002976b2 100644
--- a/contrib/tools/python3/src/Include/genericaliasobject.h
+++ b/contrib/tools/python3/src/Include/genericaliasobject.h
@@ -1,14 +1,14 @@
-// Implementation of PEP 585: support list[int] etc.
-#ifndef Py_GENERICALIASOBJECT_H
-#define Py_GENERICALIASOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(PyObject *) Py_GenericAlias(PyObject *, PyObject *);
-PyAPI_DATA(PyTypeObject) Py_GenericAliasType;
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_GENERICALIASOBJECT_H */
+// Implementation of PEP 585: support list[int] etc.
+#ifndef Py_GENERICALIASOBJECT_H
+#define Py_GENERICALIASOBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(PyObject *) Py_GenericAlias(PyObject *, PyObject *);
+PyAPI_DATA(PyTypeObject) Py_GenericAliasType;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_GENERICALIASOBJECT_H */
diff --git a/contrib/tools/python3/src/Include/genobject.h b/contrib/tools/python3/src/Include/genobject.h
index f4f8f7ec8f..8ffd15646f 100644
--- a/contrib/tools/python3/src/Include/genobject.h
+++ b/contrib/tools/python3/src/Include/genobject.h
@@ -8,14 +8,14 @@
extern "C" {
#endif
-#include "pystate.h" /* _PyErr_StackItem */
-
+#include "pystate.h" /* _PyErr_StackItem */
+
/* _PyGenObject_HEAD defines the initial segment of generator
and coroutine objects. */
#define _PyGenObject_HEAD(prefix) \
PyObject_HEAD \
/* Note: gi_frame can be NULL if the generator is "finished" */ \
- PyFrameObject *prefix##_frame; \
+ PyFrameObject *prefix##_frame; \
/* True if generator is being executed. */ \
char prefix##_running; \
/* The code object backing the generator */ \
@@ -36,10 +36,10 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyGen_Type;
#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type)
-#define PyGen_CheckExact(op) Py_IS_TYPE(op, &PyGen_Type)
+#define PyGen_CheckExact(op) Py_IS_TYPE(op, &PyGen_Type)
-PyAPI_FUNC(PyObject *) PyGen_New(PyFrameObject *);
-PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *,
+PyAPI_FUNC(PyObject *) PyGen_New(PyFrameObject *);
+PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *,
PyObject *name, PyObject *qualname);
PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *);
PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **);
@@ -56,9 +56,9 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyCoro_Type;
PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type;
-#define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type)
+#define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type)
PyObject *_PyCoro_GetAwaitableIter(PyObject *o);
-PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *,
+PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *,
PyObject *name, PyObject *qualname);
/* Asynchronous Generators */
@@ -75,8 +75,8 @@ typedef struct {
/* Flag is set to 1 when aclose() is called for the first time, or
when a StopAsyncIteration exception is raised. */
int ag_closed;
-
- int ag_running_async;
+
+ int ag_running_async;
} PyAsyncGenObject;
PyAPI_DATA(PyTypeObject) PyAsyncGen_Type;
@@ -84,10 +84,10 @@ PyAPI_DATA(PyTypeObject) _PyAsyncGenASend_Type;
PyAPI_DATA(PyTypeObject) _PyAsyncGenWrappedValue_Type;
PyAPI_DATA(PyTypeObject) _PyAsyncGenAThrow_Type;
-PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *,
+PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *,
PyObject *name, PyObject *qualname);
-#define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type)
+#define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type)
PyObject *_PyAsyncGenValueWrapperNew(PyObject *);
diff --git a/contrib/tools/python3/src/Include/graminit.h b/contrib/tools/python3/src/Include/graminit.h
index 9b6650da5c..d1027b7a74 100644
--- a/contrib/tools/python3/src/Include/graminit.h
+++ b/contrib/tools/python3/src/Include/graminit.h
@@ -49,46 +49,46 @@
#define with_item 302
#define except_clause 303
#define suite 304
-#define namedexpr_test 305
-#define test 306
-#define test_nocond 307
-#define lambdef 308
-#define lambdef_nocond 309
-#define or_test 310
-#define and_test 311
-#define not_test 312
-#define comparison 313
-#define comp_op 314
-#define star_expr 315
-#define expr 316
-#define xor_expr 317
-#define and_expr 318
-#define shift_expr 319
-#define arith_expr 320
-#define term 321
-#define factor 322
-#define power 323
-#define atom_expr 324
-#define atom 325
-#define testlist_comp 326
-#define trailer 327
-#define subscriptlist 328
-#define subscript 329
-#define sliceop 330
-#define exprlist 331
-#define testlist 332
-#define dictorsetmaker 333
-#define classdef 334
-#define arglist 335
-#define argument 336
-#define comp_iter 337
-#define sync_comp_for 338
-#define comp_for 339
-#define comp_if 340
-#define encoding_decl 341
-#define yield_expr 342
-#define yield_arg 343
-#define func_body_suite 344
-#define func_type_input 345
-#define func_type 346
-#define typelist 347
+#define namedexpr_test 305
+#define test 306
+#define test_nocond 307
+#define lambdef 308
+#define lambdef_nocond 309
+#define or_test 310
+#define and_test 311
+#define not_test 312
+#define comparison 313
+#define comp_op 314
+#define star_expr 315
+#define expr 316
+#define xor_expr 317
+#define and_expr 318
+#define shift_expr 319
+#define arith_expr 320
+#define term 321
+#define factor 322
+#define power 323
+#define atom_expr 324
+#define atom 325
+#define testlist_comp 326
+#define trailer 327
+#define subscriptlist 328
+#define subscript 329
+#define sliceop 330
+#define exprlist 331
+#define testlist 332
+#define dictorsetmaker 333
+#define classdef 334
+#define arglist 335
+#define argument 336
+#define comp_iter 337
+#define sync_comp_for 338
+#define comp_for 339
+#define comp_if 340
+#define encoding_decl 341
+#define yield_expr 342
+#define yield_arg 343
+#define func_body_suite 344
+#define func_type_input 345
+#define func_type 346
+#define typelist 347
diff --git a/contrib/tools/python3/src/Include/grammar.h b/contrib/tools/python3/src/Include/grammar.h
index 0021d0d623..4b66b1e9b9 100644
--- a/contrib/tools/python3/src/Include/grammar.h
+++ b/contrib/tools/python3/src/Include/grammar.h
@@ -13,7 +13,7 @@ extern "C" {
typedef struct {
int lb_type;
- const char *lb_str;
+ const char *lb_str;
} label;
#define EMPTY 0 /* Label number 0 is by definition the empty label */
@@ -22,7 +22,7 @@ typedef struct {
typedef struct {
int ll_nlabels;
- const label *ll_label;
+ const label *ll_label;
} labellist;
/* An arc from one state to another */
@@ -36,7 +36,7 @@ typedef struct {
typedef struct {
int s_narcs;
- const arc *s_arc; /* Array of arcs */
+ const arc *s_arc; /* Array of arcs */
/* Optional accelerators */
int s_lower; /* Lowest label index */
@@ -59,14 +59,14 @@ typedef struct {
typedef struct {
int g_ndfas;
- const dfa *g_dfa; /* Array of DFAs */
- const labellist g_ll;
+ const dfa *g_dfa; /* Array of DFAs */
+ const labellist g_ll;
int g_start; /* Start symbol of the grammar */
int g_accel; /* Set if accelerators present */
} grammar;
/* FUNCTIONS */
-const dfa *PyGrammar_FindDFA(grammar *g, int type);
+const dfa *PyGrammar_FindDFA(grammar *g, int type);
const char *PyGrammar_LabelRepr(label *lb);
void PyGrammar_AddAccelerators(grammar *g);
void PyGrammar_RemoveAccelerators(grammar *);
diff --git a/contrib/tools/python3/src/Include/import.h b/contrib/tools/python3/src/Include/import.h
index 0594c07cb1..aeef3efd0b 100644
--- a/contrib/tools/python3/src/Include/import.h
+++ b/contrib/tools/python3/src/Include/import.h
@@ -87,9 +87,9 @@ PyAPI_FUNC(int) PyImport_AppendInittab(
);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_IMPORT_H
-# include "cpython/import.h"
-# undef Py_CPYTHON_IMPORT_H
+# define Py_CPYTHON_IMPORT_H
+# include "cpython/import.h"
+# undef Py_CPYTHON_IMPORT_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/internal/pegen_interface.h b/contrib/tools/python3/src/Include/internal/pegen_interface.h
index 07178f3ab2..ee4c77ec00 100644
--- a/contrib/tools/python3/src/Include/internal/pegen_interface.h
+++ b/contrib/tools/python3/src/Include/internal/pegen_interface.h
@@ -1,46 +1,46 @@
-#ifndef Py_PEGENINTERFACE
-#define Py_PEGENINTERFACE
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "Python.h"
-#include "Python-ast.h"
-
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromString(
- const char *str,
- const char *filename,
- int mode,
- PyCompilerFlags *flags,
- PyArena *arena);
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromStringObject(
- const char *str,
- PyObject* filename,
- int mode,
- PyCompilerFlags *flags,
- PyArena *arena);
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromFileObject(
- FILE *fp,
- PyObject *filename_ob,
- int mode,
- const char *enc,
- const char *ps1,
- const char *ps2,
- PyCompilerFlags *flags,
- int *errcode,
- PyArena *arena);
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromFilename(
- const char *filename,
- int mode,
- PyCompilerFlags *flags,
- PyArena *arena);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PEGENINTERFACE*/
+#ifndef Py_PEGENINTERFACE
+#define Py_PEGENINTERFACE
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "Python.h"
+#include "Python-ast.h"
+
+PyAPI_FUNC(mod_ty) PyPegen_ASTFromString(
+ const char *str,
+ const char *filename,
+ int mode,
+ PyCompilerFlags *flags,
+ PyArena *arena);
+PyAPI_FUNC(mod_ty) PyPegen_ASTFromStringObject(
+ const char *str,
+ PyObject* filename,
+ int mode,
+ PyCompilerFlags *flags,
+ PyArena *arena);
+PyAPI_FUNC(mod_ty) PyPegen_ASTFromFileObject(
+ FILE *fp,
+ PyObject *filename_ob,
+ int mode,
+ const char *enc,
+ const char *ps1,
+ const char *ps2,
+ PyCompilerFlags *flags,
+ int *errcode,
+ PyArena *arena);
+PyAPI_FUNC(mod_ty) PyPegen_ASTFromFilename(
+ const char *filename,
+ int mode,
+ PyCompilerFlags *flags,
+ PyArena *arena);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_PEGENINTERFACE*/
diff --git a/contrib/tools/python3/src/Include/internal/pycore_abstract.h b/contrib/tools/python3/src/Include/internal/pycore_abstract.h
index 8537b16288..b791bf2432 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_abstract.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_abstract.h
@@ -1,22 +1,22 @@
-#ifndef Py_INTERNAL_ABSTRACT_H
-#define Py_INTERNAL_ABSTRACT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-// Fast inlined version of PyIndex_Check()
-static inline int
-_PyIndex_Check(PyObject *obj)
-{
- PyNumberMethods *tp_as_number = Py_TYPE(obj)->tp_as_number;
- return (tp_as_number != NULL && tp_as_number->nb_index != NULL);
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_ABSTRACT_H */
+#ifndef Py_INTERNAL_ABSTRACT_H
+#define Py_INTERNAL_ABSTRACT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+// Fast inlined version of PyIndex_Check()
+static inline int
+_PyIndex_Check(PyObject *obj)
+{
+ PyNumberMethods *tp_as_number = Py_TYPE(obj)->tp_as_number;
+ return (tp_as_number != NULL && tp_as_number->nb_index != NULL);
+}
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_ABSTRACT_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_accu.h b/contrib/tools/python3/src/Include/internal/pycore_accu.h
index 66551bb10b..d346222e4d 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_accu.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_accu.h
@@ -1,39 +1,39 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_INTERNAL_ACCU_H
-#define Py_INTERNAL_ACCU_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*** This is a private API for use by the interpreter and the stdlib.
- *** Its definition may be changed or removed at any moment.
- ***/
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/*
- * A two-level accumulator of unicode objects that avoids both the overhead
- * of keeping a huge number of small separate objects, and the quadratic
- * behaviour of using a naive repeated concatenation scheme.
- */
-
-#undef small /* defined by some Windows headers */
-
-typedef struct {
- PyObject *large; /* A list of previously accumulated large strings */
- PyObject *small; /* Pending small strings */
-} _PyAccu;
-
-PyAPI_FUNC(int) _PyAccu_Init(_PyAccu *acc);
-PyAPI_FUNC(int) _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode);
-PyAPI_FUNC(PyObject *) _PyAccu_FinishAsList(_PyAccu *acc);
-PyAPI_FUNC(PyObject *) _PyAccu_Finish(_PyAccu *acc);
-PyAPI_FUNC(void) _PyAccu_Destroy(_PyAccu *acc);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_ACCU_H */
-#endif /* !Py_LIMITED_API */
+#ifndef Py_LIMITED_API
+#ifndef Py_INTERNAL_ACCU_H
+#define Py_INTERNAL_ACCU_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*** This is a private API for use by the interpreter and the stdlib.
+ *** Its definition may be changed or removed at any moment.
+ ***/
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/*
+ * A two-level accumulator of unicode objects that avoids both the overhead
+ * of keeping a huge number of small separate objects, and the quadratic
+ * behaviour of using a naive repeated concatenation scheme.
+ */
+
+#undef small /* defined by some Windows headers */
+
+typedef struct {
+ PyObject *large; /* A list of previously accumulated large strings */
+ PyObject *small; /* Pending small strings */
+} _PyAccu;
+
+PyAPI_FUNC(int) _PyAccu_Init(_PyAccu *acc);
+PyAPI_FUNC(int) _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode);
+PyAPI_FUNC(PyObject *) _PyAccu_FinishAsList(_PyAccu *acc);
+PyAPI_FUNC(PyObject *) _PyAccu_Finish(_PyAccu *acc);
+PyAPI_FUNC(void) _PyAccu_Destroy(_PyAccu *acc);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_ACCU_H */
+#endif /* !Py_LIMITED_API */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_atomic.h b/contrib/tools/python3/src/Include/internal/pycore_atomic.h
index 3159d444c6..1d5c562167 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_atomic.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_atomic.h
@@ -1,557 +1,557 @@
-#ifndef Py_ATOMIC_H
-#define Py_ATOMIC_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "dynamic_annotations.h" /* _Py_ANNOTATE_MEMORY_ORDER */
-#include "pyconfig.h"
-
-#if defined(HAVE_STD_ATOMIC)
-#include <stdatomic.h>
-#endif
-
-
-#if defined(_MSC_VER)
-#include <intrin.h>
-#if defined(_M_IX86) || defined(_M_X64)
-# include <immintrin.h>
-#endif
-#endif
-
-/* This is modeled after the atomics interface from C1x, according to
- * the draft at
- * http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1425.pdf.
- * Operations and types are named the same except with a _Py_ prefix
- * and have the same semantics.
- *
- * Beware, the implementations here are deep magic.
- */
-
-#if defined(HAVE_STD_ATOMIC)
-
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed = memory_order_relaxed,
- _Py_memory_order_acquire = memory_order_acquire,
- _Py_memory_order_release = memory_order_release,
- _Py_memory_order_acq_rel = memory_order_acq_rel,
- _Py_memory_order_seq_cst = memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- atomic_uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- atomic_int _value;
-} _Py_atomic_int;
-
-#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) \
- atomic_signal_fence(ORDER)
-
-#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) \
- atomic_thread_fence(ORDER)
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- atomic_store_explicit(&((ATOMIC_VAL)->_value), NEW_VAL, ORDER)
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- atomic_load_explicit(&((ATOMIC_VAL)->_value), ORDER)
-
-/* Use builtin atomic operations in GCC >= 4.7 */
-#elif defined(HAVE_BUILTIN_ATOMIC)
-
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed = __ATOMIC_RELAXED,
- _Py_memory_order_acquire = __ATOMIC_ACQUIRE,
- _Py_memory_order_release = __ATOMIC_RELEASE,
- _Py_memory_order_acq_rel = __ATOMIC_ACQ_REL,
- _Py_memory_order_seq_cst = __ATOMIC_SEQ_CST
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- int _value;
-} _Py_atomic_int;
-
-#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) \
- __atomic_signal_fence(ORDER)
-
-#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) \
- __atomic_thread_fence(ORDER)
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- (assert((ORDER) == __ATOMIC_RELAXED \
- || (ORDER) == __ATOMIC_SEQ_CST \
- || (ORDER) == __ATOMIC_RELEASE), \
- __atomic_store_n(&((ATOMIC_VAL)->_value), NEW_VAL, ORDER))
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- (assert((ORDER) == __ATOMIC_RELAXED \
- || (ORDER) == __ATOMIC_SEQ_CST \
- || (ORDER) == __ATOMIC_ACQUIRE \
- || (ORDER) == __ATOMIC_CONSUME), \
- __atomic_load_n(&((ATOMIC_VAL)->_value), ORDER))
-
-/* Only support GCC (for expression statements) and x86 (for simple
- * atomic semantics) and MSVC x86/x64/ARM */
-#elif defined(__GNUC__) && (defined(__i386__) || defined(__amd64))
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- int _value;
-} _Py_atomic_int;
-
-
-static __inline__ void
-_Py_atomic_signal_fence(_Py_memory_order order)
-{
- if (order != _Py_memory_order_relaxed)
- __asm__ volatile("":::"memory");
-}
-
-static __inline__ void
-_Py_atomic_thread_fence(_Py_memory_order order)
-{
- if (order != _Py_memory_order_relaxed)
- __asm__ volatile("mfence":::"memory");
-}
-
-/* Tell the race checker about this operation's effects. */
-static __inline__ void
-_Py_ANNOTATE_MEMORY_ORDER(const volatile void *address, _Py_memory_order order)
-{
- (void)address; /* shut up -Wunused-parameter */
- switch(order) {
- case _Py_memory_order_release:
- case _Py_memory_order_acq_rel:
- case _Py_memory_order_seq_cst:
- _Py_ANNOTATE_HAPPENS_BEFORE(address);
- break;
- case _Py_memory_order_relaxed:
- case _Py_memory_order_acquire:
- break;
- }
- switch(order) {
- case _Py_memory_order_acquire:
- case _Py_memory_order_acq_rel:
- case _Py_memory_order_seq_cst:
- _Py_ANNOTATE_HAPPENS_AFTER(address);
- break;
- case _Py_memory_order_relaxed:
- case _Py_memory_order_release:
- break;
- }
-}
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- __extension__ ({ \
- __typeof__(ATOMIC_VAL) atomic_val = ATOMIC_VAL; \
- __typeof__(atomic_val->_value) new_val = NEW_VAL;\
- volatile __typeof__(new_val) *volatile_data = &atomic_val->_value; \
- _Py_memory_order order = ORDER; \
- _Py_ANNOTATE_MEMORY_ORDER(atomic_val, order); \
- \
- /* Perform the operation. */ \
- _Py_ANNOTATE_IGNORE_WRITES_BEGIN(); \
- switch(order) { \
- case _Py_memory_order_release: \
- _Py_atomic_signal_fence(_Py_memory_order_release); \
- /* fallthrough */ \
- case _Py_memory_order_relaxed: \
- *volatile_data = new_val; \
- break; \
- \
- case _Py_memory_order_acquire: \
- case _Py_memory_order_acq_rel: \
- case _Py_memory_order_seq_cst: \
- __asm__ volatile("xchg %0, %1" \
- : "+r"(new_val) \
- : "m"(atomic_val->_value) \
- : "memory"); \
- break; \
- } \
- _Py_ANNOTATE_IGNORE_WRITES_END(); \
- })
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- __extension__ ({ \
- __typeof__(ATOMIC_VAL) atomic_val = ATOMIC_VAL; \
- __typeof__(atomic_val->_value) result; \
- volatile __typeof__(result) *volatile_data = &atomic_val->_value; \
- _Py_memory_order order = ORDER; \
- _Py_ANNOTATE_MEMORY_ORDER(atomic_val, order); \
- \
- /* Perform the operation. */ \
- _Py_ANNOTATE_IGNORE_READS_BEGIN(); \
- switch(order) { \
- case _Py_memory_order_release: \
- case _Py_memory_order_acq_rel: \
- case _Py_memory_order_seq_cst: \
- /* Loads on x86 are not releases by default, so need a */ \
- /* thread fence. */ \
- _Py_atomic_thread_fence(_Py_memory_order_release); \
- break; \
- default: \
- /* No fence */ \
- break; \
- } \
- result = *volatile_data; \
- switch(order) { \
- case _Py_memory_order_acquire: \
- case _Py_memory_order_acq_rel: \
- case _Py_memory_order_seq_cst: \
- /* Loads on x86 are automatically acquire operations so */ \
- /* can get by with just a compiler fence. */ \
- _Py_atomic_signal_fence(_Py_memory_order_acquire); \
- break; \
- default: \
- /* No fence */ \
- break; \
- } \
- _Py_ANNOTATE_IGNORE_READS_END(); \
- result; \
- })
-
-#elif defined(_MSC_VER)
-/* _Interlocked* functions provide a full memory barrier and are therefore
- enough for acq_rel and seq_cst. If the HLE variants aren't available
- in hardware they will fall back to a full memory barrier as well.
-
- This might affect performance but likely only in some very specific and
- hard to meassure scenario.
-*/
-#if defined(_M_IX86) || defined(_M_X64)
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- volatile uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- volatile int _value;
-} _Py_atomic_int;
-
-
-#if defined(_M_X64)
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange64_HLEAcquire((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)(NEW_VAL)); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange64_HLERelease((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)(NEW_VAL)); \
- break; \
- default: \
- _InterlockedExchange64((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)(NEW_VAL)); \
- break; \
- }
-#else
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) ((void)0);
-#endif
-
-#define _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange_HLEAcquire((volatile long*)&((ATOMIC_VAL)->_value), (int)(NEW_VAL)); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange_HLERelease((volatile long*)&((ATOMIC_VAL)->_value), (int)(NEW_VAL)); \
- break; \
- default: \
- _InterlockedExchange((volatile long*)&((ATOMIC_VAL)->_value), (int)(NEW_VAL)); \
- break; \
- }
-
-#if defined(_M_X64)
-/* This has to be an intptr_t for now.
- gil_created() uses -1 as a sentinel value, if this returns
- a uintptr_t it will do an unsigned compare and crash
-*/
-inline intptr_t _Py_atomic_load_64bit_impl(volatile uintptr_t* value, int order) {
- __int64 old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_HLEAcquire((volatile __int64*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_HLERelease((volatile __int64*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64((volatile __int64*)value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) \
- _Py_atomic_load_64bit_impl((volatile uintptr_t*)&((ATOMIC_VAL)->_value), (ORDER))
-
-#else
-#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) ((ATOMIC_VAL)->_value)
-#endif
-
-inline int _Py_atomic_load_32bit_impl(volatile int* value, int order) {
- long old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_HLEAcquire((volatile long*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_HLERelease((volatile long*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange((volatile long*)value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#define _Py_atomic_load_32bit(ATOMIC_VAL, ORDER) \
- _Py_atomic_load_32bit_impl((volatile int*)&((ATOMIC_VAL)->_value), (ORDER))
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- if (sizeof((ATOMIC_VAL)->_value) == 8) { \
- _Py_atomic_store_64bit((ATOMIC_VAL), NEW_VAL, ORDER) } else { \
- _Py_atomic_store_32bit((ATOMIC_VAL), NEW_VAL, ORDER) }
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- ( \
- sizeof((ATOMIC_VAL)->_value) == 8 ? \
- _Py_atomic_load_64bit((ATOMIC_VAL), ORDER) : \
- _Py_atomic_load_32bit((ATOMIC_VAL), ORDER) \
- )
-#elif defined(_M_ARM) || defined(_M_ARM64)
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- volatile uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- volatile int _value;
-} _Py_atomic_int;
-
-
-#if defined(_M_ARM64)
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange64_acq((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)NEW_VAL); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange64_rel((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)NEW_VAL); \
- break; \
- default: \
- _InterlockedExchange64((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)NEW_VAL); \
- break; \
- }
-#else
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) ((void)0);
-#endif
-
-#define _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange_acq((volatile long*)&((ATOMIC_VAL)->_value), (int)NEW_VAL); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange_rel((volatile long*)&((ATOMIC_VAL)->_value), (int)NEW_VAL); \
- break; \
- default: \
- _InterlockedExchange((volatile long*)&((ATOMIC_VAL)->_value), (int)NEW_VAL); \
- break; \
- }
-
-#if defined(_M_ARM64)
-/* This has to be an intptr_t for now.
- gil_created() uses -1 as a sentinel value, if this returns
- a uintptr_t it will do an unsigned compare and crash
-*/
-inline intptr_t _Py_atomic_load_64bit_impl(volatile uintptr_t* value, int order) {
- uintptr_t old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_acq(value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_rel(value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64(value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) \
- _Py_atomic_load_64bit_impl((volatile uintptr_t*)&((ATOMIC_VAL)->_value), (ORDER))
-
-#else
-#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) ((ATOMIC_VAL)->_value)
-#endif
-
-inline int _Py_atomic_load_32bit_impl(volatile int* value, int order) {
- int old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_acq(value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_rel(value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange(value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#define _Py_atomic_load_32bit(ATOMIC_VAL, ORDER) \
- _Py_atomic_load_32bit_impl((volatile int*)&((ATOMIC_VAL)->_value), (ORDER))
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- if (sizeof((ATOMIC_VAL)->_value) == 8) { \
- _Py_atomic_store_64bit((ATOMIC_VAL), (NEW_VAL), (ORDER)) } else { \
- _Py_atomic_store_32bit((ATOMIC_VAL), (NEW_VAL), (ORDER)) }
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- ( \
- sizeof((ATOMIC_VAL)->_value) == 8 ? \
- _Py_atomic_load_64bit((ATOMIC_VAL), (ORDER)) : \
- _Py_atomic_load_32bit((ATOMIC_VAL), (ORDER)) \
- )
-#endif
-#else /* !gcc x86 !_msc_ver */
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- int _value;
-} _Py_atomic_int;
-/* Fall back to other compilers and processors by assuming that simple
- volatile accesses are atomic. This is false, so people should port
- this. */
-#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) ((void)0)
-#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) ((void)0)
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- ((ATOMIC_VAL)->_value = NEW_VAL)
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- ((ATOMIC_VAL)->_value)
-#endif
-
-/* Standardized shortcuts. */
-#define _Py_atomic_store(ATOMIC_VAL, NEW_VAL) \
- _Py_atomic_store_explicit((ATOMIC_VAL), (NEW_VAL), _Py_memory_order_seq_cst)
-#define _Py_atomic_load(ATOMIC_VAL) \
- _Py_atomic_load_explicit((ATOMIC_VAL), _Py_memory_order_seq_cst)
-
-/* Python-local extensions */
-
-#define _Py_atomic_store_relaxed(ATOMIC_VAL, NEW_VAL) \
- _Py_atomic_store_explicit((ATOMIC_VAL), (NEW_VAL), _Py_memory_order_relaxed)
-#define _Py_atomic_load_relaxed(ATOMIC_VAL) \
- _Py_atomic_load_explicit((ATOMIC_VAL), _Py_memory_order_relaxed)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* Py_ATOMIC_H */
+#ifndef Py_ATOMIC_H
+#define Py_ATOMIC_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "dynamic_annotations.h" /* _Py_ANNOTATE_MEMORY_ORDER */
+#include "pyconfig.h"
+
+#if defined(HAVE_STD_ATOMIC)
+#include <stdatomic.h>
+#endif
+
+
+#if defined(_MSC_VER)
+#include <intrin.h>
+#if defined(_M_IX86) || defined(_M_X64)
+# include <immintrin.h>
+#endif
+#endif
+
+/* This is modeled after the atomics interface from C1x, according to
+ * the draft at
+ * http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1425.pdf.
+ * Operations and types are named the same except with a _Py_ prefix
+ * and have the same semantics.
+ *
+ * Beware, the implementations here are deep magic.
+ */
+
+#if defined(HAVE_STD_ATOMIC)
+
+typedef enum _Py_memory_order {
+ _Py_memory_order_relaxed = memory_order_relaxed,
+ _Py_memory_order_acquire = memory_order_acquire,
+ _Py_memory_order_release = memory_order_release,
+ _Py_memory_order_acq_rel = memory_order_acq_rel,
+ _Py_memory_order_seq_cst = memory_order_seq_cst
+} _Py_memory_order;
+
+typedef struct _Py_atomic_address {
+ atomic_uintptr_t _value;
+} _Py_atomic_address;
+
+typedef struct _Py_atomic_int {
+ atomic_int _value;
+} _Py_atomic_int;
+
+#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) \
+ atomic_signal_fence(ORDER)
+
+#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) \
+ atomic_thread_fence(ORDER)
+
+#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ atomic_store_explicit(&((ATOMIC_VAL)->_value), NEW_VAL, ORDER)
+
+#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
+ atomic_load_explicit(&((ATOMIC_VAL)->_value), ORDER)
+
+/* Use builtin atomic operations in GCC >= 4.7 */
+#elif defined(HAVE_BUILTIN_ATOMIC)
+
+typedef enum _Py_memory_order {
+ _Py_memory_order_relaxed = __ATOMIC_RELAXED,
+ _Py_memory_order_acquire = __ATOMIC_ACQUIRE,
+ _Py_memory_order_release = __ATOMIC_RELEASE,
+ _Py_memory_order_acq_rel = __ATOMIC_ACQ_REL,
+ _Py_memory_order_seq_cst = __ATOMIC_SEQ_CST
+} _Py_memory_order;
+
+typedef struct _Py_atomic_address {
+ uintptr_t _value;
+} _Py_atomic_address;
+
+typedef struct _Py_atomic_int {
+ int _value;
+} _Py_atomic_int;
+
+#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) \
+ __atomic_signal_fence(ORDER)
+
+#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) \
+ __atomic_thread_fence(ORDER)
+
+#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ (assert((ORDER) == __ATOMIC_RELAXED \
+ || (ORDER) == __ATOMIC_SEQ_CST \
+ || (ORDER) == __ATOMIC_RELEASE), \
+ __atomic_store_n(&((ATOMIC_VAL)->_value), NEW_VAL, ORDER))
+
+#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
+ (assert((ORDER) == __ATOMIC_RELAXED \
+ || (ORDER) == __ATOMIC_SEQ_CST \
+ || (ORDER) == __ATOMIC_ACQUIRE \
+ || (ORDER) == __ATOMIC_CONSUME), \
+ __atomic_load_n(&((ATOMIC_VAL)->_value), ORDER))
+
+/* Only support GCC (for expression statements) and x86 (for simple
+ * atomic semantics) and MSVC x86/x64/ARM */
+#elif defined(__GNUC__) && (defined(__i386__) || defined(__amd64))
+typedef enum _Py_memory_order {
+ _Py_memory_order_relaxed,
+ _Py_memory_order_acquire,
+ _Py_memory_order_release,
+ _Py_memory_order_acq_rel,
+ _Py_memory_order_seq_cst
+} _Py_memory_order;
+
+typedef struct _Py_atomic_address {
+ uintptr_t _value;
+} _Py_atomic_address;
+
+typedef struct _Py_atomic_int {
+ int _value;
+} _Py_atomic_int;
+
+
+static __inline__ void
+_Py_atomic_signal_fence(_Py_memory_order order)
+{
+ if (order != _Py_memory_order_relaxed)
+ __asm__ volatile("":::"memory");
+}
+
+static __inline__ void
+_Py_atomic_thread_fence(_Py_memory_order order)
+{
+ if (order != _Py_memory_order_relaxed)
+ __asm__ volatile("mfence":::"memory");
+}
+
+/* Tell the race checker about this operation's effects. */
+static __inline__ void
+_Py_ANNOTATE_MEMORY_ORDER(const volatile void *address, _Py_memory_order order)
+{
+ (void)address; /* shut up -Wunused-parameter */
+ switch(order) {
+ case _Py_memory_order_release:
+ case _Py_memory_order_acq_rel:
+ case _Py_memory_order_seq_cst:
+ _Py_ANNOTATE_HAPPENS_BEFORE(address);
+ break;
+ case _Py_memory_order_relaxed:
+ case _Py_memory_order_acquire:
+ break;
+ }
+ switch(order) {
+ case _Py_memory_order_acquire:
+ case _Py_memory_order_acq_rel:
+ case _Py_memory_order_seq_cst:
+ _Py_ANNOTATE_HAPPENS_AFTER(address);
+ break;
+ case _Py_memory_order_relaxed:
+ case _Py_memory_order_release:
+ break;
+ }
+}
+
+#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ __extension__ ({ \
+ __typeof__(ATOMIC_VAL) atomic_val = ATOMIC_VAL; \
+ __typeof__(atomic_val->_value) new_val = NEW_VAL;\
+ volatile __typeof__(new_val) *volatile_data = &atomic_val->_value; \
+ _Py_memory_order order = ORDER; \
+ _Py_ANNOTATE_MEMORY_ORDER(atomic_val, order); \
+ \
+ /* Perform the operation. */ \
+ _Py_ANNOTATE_IGNORE_WRITES_BEGIN(); \
+ switch(order) { \
+ case _Py_memory_order_release: \
+ _Py_atomic_signal_fence(_Py_memory_order_release); \
+ /* fallthrough */ \
+ case _Py_memory_order_relaxed: \
+ *volatile_data = new_val; \
+ break; \
+ \
+ case _Py_memory_order_acquire: \
+ case _Py_memory_order_acq_rel: \
+ case _Py_memory_order_seq_cst: \
+ __asm__ volatile("xchg %0, %1" \
+ : "+r"(new_val) \
+ : "m"(atomic_val->_value) \
+ : "memory"); \
+ break; \
+ } \
+ _Py_ANNOTATE_IGNORE_WRITES_END(); \
+ })
+
+#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
+ __extension__ ({ \
+ __typeof__(ATOMIC_VAL) atomic_val = ATOMIC_VAL; \
+ __typeof__(atomic_val->_value) result; \
+ volatile __typeof__(result) *volatile_data = &atomic_val->_value; \
+ _Py_memory_order order = ORDER; \
+ _Py_ANNOTATE_MEMORY_ORDER(atomic_val, order); \
+ \
+ /* Perform the operation. */ \
+ _Py_ANNOTATE_IGNORE_READS_BEGIN(); \
+ switch(order) { \
+ case _Py_memory_order_release: \
+ case _Py_memory_order_acq_rel: \
+ case _Py_memory_order_seq_cst: \
+ /* Loads on x86 are not releases by default, so need a */ \
+ /* thread fence. */ \
+ _Py_atomic_thread_fence(_Py_memory_order_release); \
+ break; \
+ default: \
+ /* No fence */ \
+ break; \
+ } \
+ result = *volatile_data; \
+ switch(order) { \
+ case _Py_memory_order_acquire: \
+ case _Py_memory_order_acq_rel: \
+ case _Py_memory_order_seq_cst: \
+ /* Loads on x86 are automatically acquire operations so */ \
+ /* can get by with just a compiler fence. */ \
+ _Py_atomic_signal_fence(_Py_memory_order_acquire); \
+ break; \
+ default: \
+ /* No fence */ \
+ break; \
+ } \
+ _Py_ANNOTATE_IGNORE_READS_END(); \
+ result; \
+ })
+
+#elif defined(_MSC_VER)
+/* _Interlocked* functions provide a full memory barrier and are therefore
+ enough for acq_rel and seq_cst. If the HLE variants aren't available
+ in hardware they will fall back to a full memory barrier as well.
+
+ This might affect performance but likely only in some very specific and
+ hard to meassure scenario.
+*/
+#if defined(_M_IX86) || defined(_M_X64)
+typedef enum _Py_memory_order {
+ _Py_memory_order_relaxed,
+ _Py_memory_order_acquire,
+ _Py_memory_order_release,
+ _Py_memory_order_acq_rel,
+ _Py_memory_order_seq_cst
+} _Py_memory_order;
+
+typedef struct _Py_atomic_address {
+ volatile uintptr_t _value;
+} _Py_atomic_address;
+
+typedef struct _Py_atomic_int {
+ volatile int _value;
+} _Py_atomic_int;
+
+
+#if defined(_M_X64)
+#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ switch (ORDER) { \
+ case _Py_memory_order_acquire: \
+ _InterlockedExchange64_HLEAcquire((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)(NEW_VAL)); \
+ break; \
+ case _Py_memory_order_release: \
+ _InterlockedExchange64_HLERelease((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)(NEW_VAL)); \
+ break; \
+ default: \
+ _InterlockedExchange64((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)(NEW_VAL)); \
+ break; \
+ }
+#else
+#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) ((void)0);
+#endif
+
+#define _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ switch (ORDER) { \
+ case _Py_memory_order_acquire: \
+ _InterlockedExchange_HLEAcquire((volatile long*)&((ATOMIC_VAL)->_value), (int)(NEW_VAL)); \
+ break; \
+ case _Py_memory_order_release: \
+ _InterlockedExchange_HLERelease((volatile long*)&((ATOMIC_VAL)->_value), (int)(NEW_VAL)); \
+ break; \
+ default: \
+ _InterlockedExchange((volatile long*)&((ATOMIC_VAL)->_value), (int)(NEW_VAL)); \
+ break; \
+ }
+
+#if defined(_M_X64)
+/* This has to be an intptr_t for now.
+ gil_created() uses -1 as a sentinel value, if this returns
+ a uintptr_t it will do an unsigned compare and crash
+*/
+inline intptr_t _Py_atomic_load_64bit_impl(volatile uintptr_t* value, int order) {
+ __int64 old;
+ switch (order) {
+ case _Py_memory_order_acquire:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange64_HLEAcquire((volatile __int64*)value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_release:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange64_HLERelease((volatile __int64*)value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_relaxed:
+ old = *value;
+ break;
+ default:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange64((volatile __int64*)value, old, old) != old);
+ break;
+ }
+ }
+ return old;
+}
+
+#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) \
+ _Py_atomic_load_64bit_impl((volatile uintptr_t*)&((ATOMIC_VAL)->_value), (ORDER))
+
+#else
+#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) ((ATOMIC_VAL)->_value)
+#endif
+
+inline int _Py_atomic_load_32bit_impl(volatile int* value, int order) {
+ long old;
+ switch (order) {
+ case _Py_memory_order_acquire:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange_HLEAcquire((volatile long*)value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_release:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange_HLERelease((volatile long*)value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_relaxed:
+ old = *value;
+ break;
+ default:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange((volatile long*)value, old, old) != old);
+ break;
+ }
+ }
+ return old;
+}
+
+#define _Py_atomic_load_32bit(ATOMIC_VAL, ORDER) \
+ _Py_atomic_load_32bit_impl((volatile int*)&((ATOMIC_VAL)->_value), (ORDER))
+
+#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ if (sizeof((ATOMIC_VAL)->_value) == 8) { \
+ _Py_atomic_store_64bit((ATOMIC_VAL), NEW_VAL, ORDER) } else { \
+ _Py_atomic_store_32bit((ATOMIC_VAL), NEW_VAL, ORDER) }
+
+#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
+ ( \
+ sizeof((ATOMIC_VAL)->_value) == 8 ? \
+ _Py_atomic_load_64bit((ATOMIC_VAL), ORDER) : \
+ _Py_atomic_load_32bit((ATOMIC_VAL), ORDER) \
+ )
+#elif defined(_M_ARM) || defined(_M_ARM64)
+typedef enum _Py_memory_order {
+ _Py_memory_order_relaxed,
+ _Py_memory_order_acquire,
+ _Py_memory_order_release,
+ _Py_memory_order_acq_rel,
+ _Py_memory_order_seq_cst
+} _Py_memory_order;
+
+typedef struct _Py_atomic_address {
+ volatile uintptr_t _value;
+} _Py_atomic_address;
+
+typedef struct _Py_atomic_int {
+ volatile int _value;
+} _Py_atomic_int;
+
+
+#if defined(_M_ARM64)
+#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ switch (ORDER) { \
+ case _Py_memory_order_acquire: \
+ _InterlockedExchange64_acq((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)NEW_VAL); \
+ break; \
+ case _Py_memory_order_release: \
+ _InterlockedExchange64_rel((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)NEW_VAL); \
+ break; \
+ default: \
+ _InterlockedExchange64((__int64 volatile*)&((ATOMIC_VAL)->_value), (__int64)NEW_VAL); \
+ break; \
+ }
+#else
+#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) ((void)0);
+#endif
+
+#define _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ switch (ORDER) { \
+ case _Py_memory_order_acquire: \
+ _InterlockedExchange_acq((volatile long*)&((ATOMIC_VAL)->_value), (int)NEW_VAL); \
+ break; \
+ case _Py_memory_order_release: \
+ _InterlockedExchange_rel((volatile long*)&((ATOMIC_VAL)->_value), (int)NEW_VAL); \
+ break; \
+ default: \
+ _InterlockedExchange((volatile long*)&((ATOMIC_VAL)->_value), (int)NEW_VAL); \
+ break; \
+ }
+
+#if defined(_M_ARM64)
+/* This has to be an intptr_t for now.
+ gil_created() uses -1 as a sentinel value, if this returns
+ a uintptr_t it will do an unsigned compare and crash
+*/
+inline intptr_t _Py_atomic_load_64bit_impl(volatile uintptr_t* value, int order) {
+ uintptr_t old;
+ switch (order) {
+ case _Py_memory_order_acquire:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange64_acq(value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_release:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange64_rel(value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_relaxed:
+ old = *value;
+ break;
+ default:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange64(value, old, old) != old);
+ break;
+ }
+ }
+ return old;
+}
+
+#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) \
+ _Py_atomic_load_64bit_impl((volatile uintptr_t*)&((ATOMIC_VAL)->_value), (ORDER))
+
+#else
+#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) ((ATOMIC_VAL)->_value)
+#endif
+
+inline int _Py_atomic_load_32bit_impl(volatile int* value, int order) {
+ int old;
+ switch (order) {
+ case _Py_memory_order_acquire:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange_acq(value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_release:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange_rel(value, old, old) != old);
+ break;
+ }
+ case _Py_memory_order_relaxed:
+ old = *value;
+ break;
+ default:
+ {
+ do {
+ old = *value;
+ } while(_InterlockedCompareExchange(value, old, old) != old);
+ break;
+ }
+ }
+ return old;
+}
+
+#define _Py_atomic_load_32bit(ATOMIC_VAL, ORDER) \
+ _Py_atomic_load_32bit_impl((volatile int*)&((ATOMIC_VAL)->_value), (ORDER))
+
+#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ if (sizeof((ATOMIC_VAL)->_value) == 8) { \
+ _Py_atomic_store_64bit((ATOMIC_VAL), (NEW_VAL), (ORDER)) } else { \
+ _Py_atomic_store_32bit((ATOMIC_VAL), (NEW_VAL), (ORDER)) }
+
+#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
+ ( \
+ sizeof((ATOMIC_VAL)->_value) == 8 ? \
+ _Py_atomic_load_64bit((ATOMIC_VAL), (ORDER)) : \
+ _Py_atomic_load_32bit((ATOMIC_VAL), (ORDER)) \
+ )
+#endif
+#else /* !gcc x86 !_msc_ver */
+typedef enum _Py_memory_order {
+ _Py_memory_order_relaxed,
+ _Py_memory_order_acquire,
+ _Py_memory_order_release,
+ _Py_memory_order_acq_rel,
+ _Py_memory_order_seq_cst
+} _Py_memory_order;
+
+typedef struct _Py_atomic_address {
+ uintptr_t _value;
+} _Py_atomic_address;
+
+typedef struct _Py_atomic_int {
+ int _value;
+} _Py_atomic_int;
+/* Fall back to other compilers and processors by assuming that simple
+ volatile accesses are atomic. This is false, so people should port
+ this. */
+#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) ((void)0)
+#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) ((void)0)
+#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
+ ((ATOMIC_VAL)->_value = NEW_VAL)
+#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
+ ((ATOMIC_VAL)->_value)
+#endif
+
+/* Standardized shortcuts. */
+#define _Py_atomic_store(ATOMIC_VAL, NEW_VAL) \
+ _Py_atomic_store_explicit((ATOMIC_VAL), (NEW_VAL), _Py_memory_order_seq_cst)
+#define _Py_atomic_load(ATOMIC_VAL) \
+ _Py_atomic_load_explicit((ATOMIC_VAL), _Py_memory_order_seq_cst)
+
+/* Python-local extensions */
+
+#define _Py_atomic_store_relaxed(ATOMIC_VAL, NEW_VAL) \
+ _Py_atomic_store_explicit((ATOMIC_VAL), (NEW_VAL), _Py_memory_order_relaxed)
+#define _Py_atomic_load_relaxed(ATOMIC_VAL) \
+ _Py_atomic_load_explicit((ATOMIC_VAL), _Py_memory_order_relaxed)
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* Py_ATOMIC_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_bytes_methods.h b/contrib/tools/python3/src/Include/internal/pycore_bytes_methods.h
index ec7469d322..11e8ab20e9 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_bytes_methods.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_bytes_methods.h
@@ -1,73 +1,73 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_BYTES_CTYPE_H
-#define Py_BYTES_CTYPE_H
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/*
- * The internal implementation behind PyBytes (bytes) and PyByteArray (bytearray)
- * methods of the given names, they operate on ASCII byte strings.
- */
-extern PyObject* _Py_bytes_isspace(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isalpha(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isalnum(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isascii(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isdigit(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_islower(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isupper(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_istitle(const char *cptr, Py_ssize_t len);
-
-/* These store their len sized answer in the given preallocated *result arg. */
-extern void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len);
-extern void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len);
-extern void _Py_bytes_title(char *result, const char *s, Py_ssize_t len);
-extern void _Py_bytes_capitalize(char *result, const char *s, Py_ssize_t len);
-extern void _Py_bytes_swapcase(char *result, const char *s, Py_ssize_t len);
-
-extern PyObject *_Py_bytes_find(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_index(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_rfind(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_rindex(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_count(const char *str, Py_ssize_t len, PyObject *args);
-extern int _Py_bytes_contains(const char *str, Py_ssize_t len, PyObject *arg);
-extern PyObject *_Py_bytes_startswith(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_endswith(const char *str, Py_ssize_t len, PyObject *args);
-
-/* The maketrans() static method. */
-extern PyObject* _Py_bytes_maketrans(Py_buffer *frm, Py_buffer *to);
-
-/* Shared __doc__ strings. */
-extern const char _Py_isspace__doc__[];
-extern const char _Py_isalpha__doc__[];
-extern const char _Py_isalnum__doc__[];
-extern const char _Py_isascii__doc__[];
-extern const char _Py_isdigit__doc__[];
-extern const char _Py_islower__doc__[];
-extern const char _Py_isupper__doc__[];
-extern const char _Py_istitle__doc__[];
-extern const char _Py_lower__doc__[];
-extern const char _Py_upper__doc__[];
-extern const char _Py_title__doc__[];
-extern const char _Py_capitalize__doc__[];
-extern const char _Py_swapcase__doc__[];
-extern const char _Py_count__doc__[];
-extern const char _Py_find__doc__[];
-extern const char _Py_index__doc__[];
-extern const char _Py_rfind__doc__[];
-extern const char _Py_rindex__doc__[];
-extern const char _Py_startswith__doc__[];
-extern const char _Py_endswith__doc__[];
-extern const char _Py_maketrans__doc__[];
-extern const char _Py_expandtabs__doc__[];
-extern const char _Py_ljust__doc__[];
-extern const char _Py_rjust__doc__[];
-extern const char _Py_center__doc__[];
-extern const char _Py_zfill__doc__[];
-
-/* this is needed because some docs are shared from the .o, not static */
-#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
-
-#endif /* !Py_BYTES_CTYPE_H */
-#endif /* !Py_LIMITED_API */
+#ifndef Py_LIMITED_API
+#ifndef Py_BYTES_CTYPE_H
+#define Py_BYTES_CTYPE_H
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/*
+ * The internal implementation behind PyBytes (bytes) and PyByteArray (bytearray)
+ * methods of the given names, they operate on ASCII byte strings.
+ */
+extern PyObject* _Py_bytes_isspace(const char *cptr, Py_ssize_t len);
+extern PyObject* _Py_bytes_isalpha(const char *cptr, Py_ssize_t len);
+extern PyObject* _Py_bytes_isalnum(const char *cptr, Py_ssize_t len);
+extern PyObject* _Py_bytes_isascii(const char *cptr, Py_ssize_t len);
+extern PyObject* _Py_bytes_isdigit(const char *cptr, Py_ssize_t len);
+extern PyObject* _Py_bytes_islower(const char *cptr, Py_ssize_t len);
+extern PyObject* _Py_bytes_isupper(const char *cptr, Py_ssize_t len);
+extern PyObject* _Py_bytes_istitle(const char *cptr, Py_ssize_t len);
+
+/* These store their len sized answer in the given preallocated *result arg. */
+extern void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len);
+extern void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len);
+extern void _Py_bytes_title(char *result, const char *s, Py_ssize_t len);
+extern void _Py_bytes_capitalize(char *result, const char *s, Py_ssize_t len);
+extern void _Py_bytes_swapcase(char *result, const char *s, Py_ssize_t len);
+
+extern PyObject *_Py_bytes_find(const char *str, Py_ssize_t len, PyObject *args);
+extern PyObject *_Py_bytes_index(const char *str, Py_ssize_t len, PyObject *args);
+extern PyObject *_Py_bytes_rfind(const char *str, Py_ssize_t len, PyObject *args);
+extern PyObject *_Py_bytes_rindex(const char *str, Py_ssize_t len, PyObject *args);
+extern PyObject *_Py_bytes_count(const char *str, Py_ssize_t len, PyObject *args);
+extern int _Py_bytes_contains(const char *str, Py_ssize_t len, PyObject *arg);
+extern PyObject *_Py_bytes_startswith(const char *str, Py_ssize_t len, PyObject *args);
+extern PyObject *_Py_bytes_endswith(const char *str, Py_ssize_t len, PyObject *args);
+
+/* The maketrans() static method. */
+extern PyObject* _Py_bytes_maketrans(Py_buffer *frm, Py_buffer *to);
+
+/* Shared __doc__ strings. */
+extern const char _Py_isspace__doc__[];
+extern const char _Py_isalpha__doc__[];
+extern const char _Py_isalnum__doc__[];
+extern const char _Py_isascii__doc__[];
+extern const char _Py_isdigit__doc__[];
+extern const char _Py_islower__doc__[];
+extern const char _Py_isupper__doc__[];
+extern const char _Py_istitle__doc__[];
+extern const char _Py_lower__doc__[];
+extern const char _Py_upper__doc__[];
+extern const char _Py_title__doc__[];
+extern const char _Py_capitalize__doc__[];
+extern const char _Py_swapcase__doc__[];
+extern const char _Py_count__doc__[];
+extern const char _Py_find__doc__[];
+extern const char _Py_index__doc__[];
+extern const char _Py_rfind__doc__[];
+extern const char _Py_rindex__doc__[];
+extern const char _Py_startswith__doc__[];
+extern const char _Py_endswith__doc__[];
+extern const char _Py_maketrans__doc__[];
+extern const char _Py_expandtabs__doc__[];
+extern const char _Py_ljust__doc__[];
+extern const char _Py_rjust__doc__[];
+extern const char _Py_center__doc__[];
+extern const char _Py_zfill__doc__[];
+
+/* this is needed because some docs are shared from the .o, not static */
+#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
+
+#endif /* !Py_BYTES_CTYPE_H */
+#endif /* !Py_LIMITED_API */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_byteswap.h b/contrib/tools/python3/src/Include/internal/pycore_byteswap.h
index 3ba75c8590..2b20fc6c7d 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_byteswap.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_byteswap.h
@@ -1,88 +1,88 @@
-/* Bytes swap functions, reverse order of bytes:
-
- - _Py_bswap16(uint16_t)
- - _Py_bswap32(uint32_t)
- - _Py_bswap64(uint64_t)
-*/
-
-#ifndef Py_INTERNAL_BSWAP_H
-#define Py_INTERNAL_BSWAP_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#if defined(__GNUC__) \
- && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8))
- /* __builtin_bswap16() is available since GCC 4.8,
- __builtin_bswap32() is available since GCC 4.3,
- __builtin_bswap64() is available since GCC 4.3. */
-# define _PY_HAVE_BUILTIN_BSWAP
-#endif
-
-#ifdef _MSC_VER
- /* Get _byteswap_ushort(), _byteswap_ulong(), _byteswap_uint64() */
-# include <intrin.h>
-#endif
-
-static inline uint16_t
-_Py_bswap16(uint16_t word)
-{
-#if defined(_PY_HAVE_BUILTIN_BSWAP) || _Py__has_builtin(__builtin_bswap16)
- return __builtin_bswap16(word);
-#elif defined(_MSC_VER)
- Py_BUILD_ASSERT(sizeof(word) == sizeof(unsigned short));
- return _byteswap_ushort(word);
-#else
- // Portable implementation which doesn't rely on circular bit shift
- return ( ((word & UINT16_C(0x00FF)) << 8)
- | ((word & UINT16_C(0xFF00)) >> 8));
-#endif
-}
-
-static inline uint32_t
-_Py_bswap32(uint32_t word)
-{
-#if defined(_PY_HAVE_BUILTIN_BSWAP) || _Py__has_builtin(__builtin_bswap32)
- return __builtin_bswap32(word);
-#elif defined(_MSC_VER)
- Py_BUILD_ASSERT(sizeof(word) == sizeof(unsigned long));
- return _byteswap_ulong(word);
-#else
- // Portable implementation which doesn't rely on circular bit shift
- return ( ((word & UINT32_C(0x000000FF)) << 24)
- | ((word & UINT32_C(0x0000FF00)) << 8)
- | ((word & UINT32_C(0x00FF0000)) >> 8)
- | ((word & UINT32_C(0xFF000000)) >> 24));
-#endif
-}
-
-static inline uint64_t
-_Py_bswap64(uint64_t word)
-{
-#if defined(_PY_HAVE_BUILTIN_BSWAP) || _Py__has_builtin(__builtin_bswap64)
- return __builtin_bswap64(word);
-#elif defined(_MSC_VER)
- return _byteswap_uint64(word);
-#else
- // Portable implementation which doesn't rely on circular bit shift
- return ( ((word & UINT64_C(0x00000000000000FF)) << 56)
- | ((word & UINT64_C(0x000000000000FF00)) << 40)
- | ((word & UINT64_C(0x0000000000FF0000)) << 24)
- | ((word & UINT64_C(0x00000000FF000000)) << 8)
- | ((word & UINT64_C(0x000000FF00000000)) >> 8)
- | ((word & UINT64_C(0x0000FF0000000000)) >> 24)
- | ((word & UINT64_C(0x00FF000000000000)) >> 40)
- | ((word & UINT64_C(0xFF00000000000000)) >> 56));
-#endif
-}
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_BSWAP_H */
-
+/* Bytes swap functions, reverse order of bytes:
+
+ - _Py_bswap16(uint16_t)
+ - _Py_bswap32(uint32_t)
+ - _Py_bswap64(uint64_t)
+*/
+
+#ifndef Py_INTERNAL_BSWAP_H
+#define Py_INTERNAL_BSWAP_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#if defined(__GNUC__) \
+ && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8))
+ /* __builtin_bswap16() is available since GCC 4.8,
+ __builtin_bswap32() is available since GCC 4.3,
+ __builtin_bswap64() is available since GCC 4.3. */
+# define _PY_HAVE_BUILTIN_BSWAP
+#endif
+
+#ifdef _MSC_VER
+ /* Get _byteswap_ushort(), _byteswap_ulong(), _byteswap_uint64() */
+# include <intrin.h>
+#endif
+
+static inline uint16_t
+_Py_bswap16(uint16_t word)
+{
+#if defined(_PY_HAVE_BUILTIN_BSWAP) || _Py__has_builtin(__builtin_bswap16)
+ return __builtin_bswap16(word);
+#elif defined(_MSC_VER)
+ Py_BUILD_ASSERT(sizeof(word) == sizeof(unsigned short));
+ return _byteswap_ushort(word);
+#else
+ // Portable implementation which doesn't rely on circular bit shift
+ return ( ((word & UINT16_C(0x00FF)) << 8)
+ | ((word & UINT16_C(0xFF00)) >> 8));
+#endif
+}
+
+static inline uint32_t
+_Py_bswap32(uint32_t word)
+{
+#if defined(_PY_HAVE_BUILTIN_BSWAP) || _Py__has_builtin(__builtin_bswap32)
+ return __builtin_bswap32(word);
+#elif defined(_MSC_VER)
+ Py_BUILD_ASSERT(sizeof(word) == sizeof(unsigned long));
+ return _byteswap_ulong(word);
+#else
+ // Portable implementation which doesn't rely on circular bit shift
+ return ( ((word & UINT32_C(0x000000FF)) << 24)
+ | ((word & UINT32_C(0x0000FF00)) << 8)
+ | ((word & UINT32_C(0x00FF0000)) >> 8)
+ | ((word & UINT32_C(0xFF000000)) >> 24));
+#endif
+}
+
+static inline uint64_t
+_Py_bswap64(uint64_t word)
+{
+#if defined(_PY_HAVE_BUILTIN_BSWAP) || _Py__has_builtin(__builtin_bswap64)
+ return __builtin_bswap64(word);
+#elif defined(_MSC_VER)
+ return _byteswap_uint64(word);
+#else
+ // Portable implementation which doesn't rely on circular bit shift
+ return ( ((word & UINT64_C(0x00000000000000FF)) << 56)
+ | ((word & UINT64_C(0x000000000000FF00)) << 40)
+ | ((word & UINT64_C(0x0000000000FF0000)) << 24)
+ | ((word & UINT64_C(0x00000000FF000000)) << 8)
+ | ((word & UINT64_C(0x000000FF00000000)) >> 8)
+ | ((word & UINT64_C(0x0000FF0000000000)) >> 24)
+ | ((word & UINT64_C(0x00FF000000000000)) >> 40)
+ | ((word & UINT64_C(0xFF00000000000000)) >> 56));
+#endif
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_BSWAP_H */
+
diff --git a/contrib/tools/python3/src/Include/internal/pycore_call.h b/contrib/tools/python3/src/Include/internal/pycore_call.h
index 4c915baf82..f7d856a54b 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_call.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_call.h
@@ -1,39 +1,39 @@
-#ifndef Py_INTERNAL_CALL_H
-#define Py_INTERNAL_CALL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-PyAPI_FUNC(PyObject *) _PyObject_Call_Prepend(
- PyThreadState *tstate,
- PyObject *callable,
- PyObject *obj,
- PyObject *args,
- PyObject *kwargs);
-
-PyAPI_FUNC(PyObject *) _PyObject_FastCallDictTstate(
- PyThreadState *tstate,
- PyObject *callable,
- PyObject *const *args,
- size_t nargsf,
- PyObject *kwargs);
-
-PyAPI_FUNC(PyObject *) _PyObject_Call(
- PyThreadState *tstate,
- PyObject *callable,
- PyObject *args,
- PyObject *kwargs);
-
-static inline PyObject *
-_PyObject_CallNoArgTstate(PyThreadState *tstate, PyObject *func) {
- return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL);
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_CALL_H */
+#ifndef Py_INTERNAL_CALL_H
+#define Py_INTERNAL_CALL_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+PyAPI_FUNC(PyObject *) _PyObject_Call_Prepend(
+ PyThreadState *tstate,
+ PyObject *callable,
+ PyObject *obj,
+ PyObject *args,
+ PyObject *kwargs);
+
+PyAPI_FUNC(PyObject *) _PyObject_FastCallDictTstate(
+ PyThreadState *tstate,
+ PyObject *callable,
+ PyObject *const *args,
+ size_t nargsf,
+ PyObject *kwargs);
+
+PyAPI_FUNC(PyObject *) _PyObject_Call(
+ PyThreadState *tstate,
+ PyObject *callable,
+ PyObject *args,
+ PyObject *kwargs);
+
+static inline PyObject *
+_PyObject_CallNoArgTstate(PyThreadState *tstate, PyObject *func) {
+ return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL);
+}
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_CALL_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_ceval.h b/contrib/tools/python3/src/Include/internal/pycore_ceval.h
index a124aabd29..e7ace9bd01 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_ceval.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_ceval.h
@@ -1,108 +1,108 @@
-#ifndef Py_INTERNAL_CEVAL_H
-#define Py_INTERNAL_CEVAL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/* Forward declarations */
-struct pyruntimestate;
-struct _ceval_runtime_state;
-
-#include "pycore_interp.h" /* PyInterpreterState.eval_frame */
-
-extern void _Py_FinishPendingCalls(PyThreadState *tstate);
-extern void _PyEval_InitRuntimeState(struct _ceval_runtime_state *);
-extern int _PyEval_InitState(struct _ceval_state *ceval);
-extern void _PyEval_FiniState(struct _ceval_state *ceval);
-PyAPI_FUNC(void) _PyEval_SignalReceived(PyInterpreterState *interp);
-PyAPI_FUNC(int) _PyEval_AddPendingCall(
- PyInterpreterState *interp,
- int (*func)(void *),
- void *arg);
-PyAPI_FUNC(void) _PyEval_SignalAsyncExc(PyThreadState *tstate);
-#ifdef HAVE_FORK
-extern void _PyEval_ReInitThreads(struct pyruntimestate *runtime);
-#endif
-PyAPI_FUNC(void) _PyEval_SetCoroutineOriginTrackingDepth(
- PyThreadState *tstate,
- int new_depth);
-
-/* Private function */
-void _PyEval_Fini(void);
-
-static inline PyObject*
-_PyEval_EvalFrame(PyThreadState *tstate, PyFrameObject *f, int throwflag)
-{
- return tstate->interp->eval_frame(tstate, f, throwflag);
-}
-
-extern PyObject *_PyEval_EvalCode(
- PyThreadState *tstate,
- PyObject *_co, PyObject *globals, PyObject *locals,
- PyObject *const *args, Py_ssize_t argcount,
- PyObject *const *kwnames, PyObject *const *kwargs,
- Py_ssize_t kwcount, int kwstep,
- PyObject *const *defs, Py_ssize_t defcount,
- PyObject *kwdefs, PyObject *closure,
- PyObject *name, PyObject *qualname);
-
-extern int _PyEval_ThreadsInitialized(struct pyruntimestate *runtime);
-extern PyStatus _PyEval_InitGIL(PyThreadState *tstate);
-extern void _PyEval_FiniGIL(PyThreadState *tstate);
-
-extern void _PyEval_ReleaseLock(PyThreadState *tstate);
-
-
-/* --- _Py_EnterRecursiveCall() ----------------------------------------- */
-
-PyAPI_DATA(int) _Py_CheckRecursionLimit;
-
-#ifdef USE_STACKCHECK
-/* With USE_STACKCHECK macro defined, trigger stack checks in
- _Py_CheckRecursiveCall() on every 64th call to Py_EnterRecursiveCall. */
-static inline int _Py_MakeRecCheck(PyThreadState *tstate) {
- return (++tstate->recursion_depth > tstate->interp->ceval.recursion_limit
- || ++tstate->stackcheck_counter > 64);
-}
-#else
-static inline int _Py_MakeRecCheck(PyThreadState *tstate) {
- return (++tstate->recursion_depth > tstate->interp->ceval.recursion_limit);
-}
-#endif
-
-PyAPI_FUNC(int) _Py_CheckRecursiveCall(
- PyThreadState *tstate,
- const char *where);
-
-static inline int _Py_EnterRecursiveCall(PyThreadState *tstate,
- const char *where) {
- return (_Py_MakeRecCheck(tstate) && _Py_CheckRecursiveCall(tstate, where));
-}
-
-static inline int _Py_EnterRecursiveCall_inline(const char *where) {
- PyThreadState *tstate = PyThreadState_GET();
- return _Py_EnterRecursiveCall(tstate, where);
-}
-
-#define Py_EnterRecursiveCall(where) _Py_EnterRecursiveCall_inline(where)
-
-static inline void _Py_LeaveRecursiveCall(PyThreadState *tstate) {
- tstate->recursion_depth--;
-}
-
-static inline void _Py_LeaveRecursiveCall_inline(void) {
- PyThreadState *tstate = PyThreadState_GET();
- _Py_LeaveRecursiveCall(tstate);
-}
-
-#define Py_LeaveRecursiveCall() _Py_LeaveRecursiveCall_inline()
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_CEVAL_H */
+#ifndef Py_INTERNAL_CEVAL_H
+#define Py_INTERNAL_CEVAL_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/* Forward declarations */
+struct pyruntimestate;
+struct _ceval_runtime_state;
+
+#include "pycore_interp.h" /* PyInterpreterState.eval_frame */
+
+extern void _Py_FinishPendingCalls(PyThreadState *tstate);
+extern void _PyEval_InitRuntimeState(struct _ceval_runtime_state *);
+extern int _PyEval_InitState(struct _ceval_state *ceval);
+extern void _PyEval_FiniState(struct _ceval_state *ceval);
+PyAPI_FUNC(void) _PyEval_SignalReceived(PyInterpreterState *interp);
+PyAPI_FUNC(int) _PyEval_AddPendingCall(
+ PyInterpreterState *interp,
+ int (*func)(void *),
+ void *arg);
+PyAPI_FUNC(void) _PyEval_SignalAsyncExc(PyThreadState *tstate);
+#ifdef HAVE_FORK
+extern void _PyEval_ReInitThreads(struct pyruntimestate *runtime);
+#endif
+PyAPI_FUNC(void) _PyEval_SetCoroutineOriginTrackingDepth(
+ PyThreadState *tstate,
+ int new_depth);
+
+/* Private function */
+void _PyEval_Fini(void);
+
+static inline PyObject*
+_PyEval_EvalFrame(PyThreadState *tstate, PyFrameObject *f, int throwflag)
+{
+ return tstate->interp->eval_frame(tstate, f, throwflag);
+}
+
+extern PyObject *_PyEval_EvalCode(
+ PyThreadState *tstate,
+ PyObject *_co, PyObject *globals, PyObject *locals,
+ PyObject *const *args, Py_ssize_t argcount,
+ PyObject *const *kwnames, PyObject *const *kwargs,
+ Py_ssize_t kwcount, int kwstep,
+ PyObject *const *defs, Py_ssize_t defcount,
+ PyObject *kwdefs, PyObject *closure,
+ PyObject *name, PyObject *qualname);
+
+extern int _PyEval_ThreadsInitialized(struct pyruntimestate *runtime);
+extern PyStatus _PyEval_InitGIL(PyThreadState *tstate);
+extern void _PyEval_FiniGIL(PyThreadState *tstate);
+
+extern void _PyEval_ReleaseLock(PyThreadState *tstate);
+
+
+/* --- _Py_EnterRecursiveCall() ----------------------------------------- */
+
+PyAPI_DATA(int) _Py_CheckRecursionLimit;
+
+#ifdef USE_STACKCHECK
+/* With USE_STACKCHECK macro defined, trigger stack checks in
+ _Py_CheckRecursiveCall() on every 64th call to Py_EnterRecursiveCall. */
+static inline int _Py_MakeRecCheck(PyThreadState *tstate) {
+ return (++tstate->recursion_depth > tstate->interp->ceval.recursion_limit
+ || ++tstate->stackcheck_counter > 64);
+}
+#else
+static inline int _Py_MakeRecCheck(PyThreadState *tstate) {
+ return (++tstate->recursion_depth > tstate->interp->ceval.recursion_limit);
+}
+#endif
+
+PyAPI_FUNC(int) _Py_CheckRecursiveCall(
+ PyThreadState *tstate,
+ const char *where);
+
+static inline int _Py_EnterRecursiveCall(PyThreadState *tstate,
+ const char *where) {
+ return (_Py_MakeRecCheck(tstate) && _Py_CheckRecursiveCall(tstate, where));
+}
+
+static inline int _Py_EnterRecursiveCall_inline(const char *where) {
+ PyThreadState *tstate = PyThreadState_GET();
+ return _Py_EnterRecursiveCall(tstate, where);
+}
+
+#define Py_EnterRecursiveCall(where) _Py_EnterRecursiveCall_inline(where)
+
+static inline void _Py_LeaveRecursiveCall(PyThreadState *tstate) {
+ tstate->recursion_depth--;
+}
+
+static inline void _Py_LeaveRecursiveCall_inline(void) {
+ PyThreadState *tstate = PyThreadState_GET();
+ _Py_LeaveRecursiveCall(tstate);
+}
+
+#define Py_LeaveRecursiveCall() _Py_LeaveRecursiveCall_inline()
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_CEVAL_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_code.h b/contrib/tools/python3/src/Include/internal/pycore_code.h
index d32b40cbf8..a1bd6a0bc0 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_code.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_code.h
@@ -1,27 +1,27 @@
-#ifndef Py_INTERNAL_CODE_H
-#define Py_INTERNAL_CODE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- PyObject *ptr; /* Cached pointer (borrowed reference) */
- uint64_t globals_ver; /* ma_version of global dict */
- uint64_t builtins_ver; /* ma_version of builtin dict */
-} _PyOpcache_LoadGlobal;
-
-struct _PyOpcache {
- union {
- _PyOpcache_LoadGlobal lg;
- } u;
- char optimized;
-};
-
-/* Private API */
-int _PyCode_InitOpcache(PyCodeObject *co);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_CODE_H */
+#ifndef Py_INTERNAL_CODE_H
+#define Py_INTERNAL_CODE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ PyObject *ptr; /* Cached pointer (borrowed reference) */
+ uint64_t globals_ver; /* ma_version of global dict */
+ uint64_t builtins_ver; /* ma_version of builtin dict */
+} _PyOpcache_LoadGlobal;
+
+struct _PyOpcache {
+ union {
+ _PyOpcache_LoadGlobal lg;
+ } u;
+ char optimized;
+};
+
+/* Private API */
+int _PyCode_InitOpcache(PyCodeObject *co);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_CODE_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_condvar.h b/contrib/tools/python3/src/Include/internal/pycore_condvar.h
index a8f3fa20b4..8b89d70951 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_condvar.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_condvar.h
@@ -1,95 +1,95 @@
-#ifndef Py_INTERNAL_CONDVAR_H
-#define Py_INTERNAL_CONDVAR_H
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#ifndef _POSIX_THREADS
-/* This means pthreads are not implemented in libc headers, hence the macro
- not present in unistd.h. But they still can be implemented as an external
- library (e.g. gnu pth in pthread emulation) */
-# ifdef HAVE_PTHREAD_H
-# include <pthread.h> /* _POSIX_THREADS */
-# endif
-#endif
-
-#ifdef _POSIX_THREADS
-/*
- * POSIX support
- */
-#define Py_HAVE_CONDVAR
-
-#include <pthread.h>
-
-#define PyMUTEX_T pthread_mutex_t
-#define PyCOND_T pthread_cond_t
-
-#elif defined(NT_THREADS)
-/*
- * Windows (XP, 2003 server and later, as well as (hopefully) CE) support
- *
- * Emulated condition variables ones that work with XP and later, plus
- * example native support on VISTA and onwards.
- */
-#define Py_HAVE_CONDVAR
-
-/* include windows if it hasn't been done before */
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-/* options */
-/* non-emulated condition variables are provided for those that want
- * to target Windows Vista. Modify this macro to enable them.
- */
-#ifndef _PY_EMULATED_WIN_CV
-#define _PY_EMULATED_WIN_CV 1 /* use emulated condition variables */
-#endif
-
-/* fall back to emulation if not targeting Vista */
-#if !defined NTDDI_VISTA || NTDDI_VERSION < NTDDI_VISTA
-#undef _PY_EMULATED_WIN_CV
-#define _PY_EMULATED_WIN_CV 1
-#endif
-
-#if _PY_EMULATED_WIN_CV
-
-typedef CRITICAL_SECTION PyMUTEX_T;
-
-/* The ConditionVariable object. From XP onwards it is easily emulated
- with a Semaphore.
- Semaphores are available on Windows XP (2003 server) and later.
- We use a Semaphore rather than an auto-reset event, because although
- an auto-resent event might appear to solve the lost-wakeup bug (race
- condition between releasing the outer lock and waiting) because it
- maintains state even though a wait hasn't happened, there is still
- a lost wakeup problem if more than one thread are interrupted in the
- critical place. A semaphore solves that, because its state is
- counted, not Boolean.
- Because it is ok to signal a condition variable with no one
- waiting, we need to keep track of the number of
- waiting threads. Otherwise, the semaphore's state could rise
- without bound. This also helps reduce the number of "spurious wakeups"
- that would otherwise happen.
- */
-
-typedef struct _PyCOND_T
-{
- HANDLE sem;
- int waiting; /* to allow PyCOND_SIGNAL to be a no-op */
-} PyCOND_T;
-
-#else /* !_PY_EMULATED_WIN_CV */
-
-/* Use native Win7 primitives if build target is Win7 or higher */
-
-/* SRWLOCK is faster and better than CriticalSection */
-typedef SRWLOCK PyMUTEX_T;
-
-typedef CONDITION_VARIABLE PyCOND_T;
-
-#endif /* _PY_EMULATED_WIN_CV */
-
-#endif /* _POSIX_THREADS, NT_THREADS */
-
-#endif /* Py_INTERNAL_CONDVAR_H */
+#ifndef Py_INTERNAL_CONDVAR_H
+#define Py_INTERNAL_CONDVAR_H
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#ifndef _POSIX_THREADS
+/* This means pthreads are not implemented in libc headers, hence the macro
+ not present in unistd.h. But they still can be implemented as an external
+ library (e.g. gnu pth in pthread emulation) */
+# ifdef HAVE_PTHREAD_H
+# include <pthread.h> /* _POSIX_THREADS */
+# endif
+#endif
+
+#ifdef _POSIX_THREADS
+/*
+ * POSIX support
+ */
+#define Py_HAVE_CONDVAR
+
+#include <pthread.h>
+
+#define PyMUTEX_T pthread_mutex_t
+#define PyCOND_T pthread_cond_t
+
+#elif defined(NT_THREADS)
+/*
+ * Windows (XP, 2003 server and later, as well as (hopefully) CE) support
+ *
+ * Emulated condition variables ones that work with XP and later, plus
+ * example native support on VISTA and onwards.
+ */
+#define Py_HAVE_CONDVAR
+
+/* include windows if it hasn't been done before */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+/* options */
+/* non-emulated condition variables are provided for those that want
+ * to target Windows Vista. Modify this macro to enable them.
+ */
+#ifndef _PY_EMULATED_WIN_CV
+#define _PY_EMULATED_WIN_CV 1 /* use emulated condition variables */
+#endif
+
+/* fall back to emulation if not targeting Vista */
+#if !defined NTDDI_VISTA || NTDDI_VERSION < NTDDI_VISTA
+#undef _PY_EMULATED_WIN_CV
+#define _PY_EMULATED_WIN_CV 1
+#endif
+
+#if _PY_EMULATED_WIN_CV
+
+typedef CRITICAL_SECTION PyMUTEX_T;
+
+/* The ConditionVariable object. From XP onwards it is easily emulated
+ with a Semaphore.
+ Semaphores are available on Windows XP (2003 server) and later.
+ We use a Semaphore rather than an auto-reset event, because although
+ an auto-resent event might appear to solve the lost-wakeup bug (race
+ condition between releasing the outer lock and waiting) because it
+ maintains state even though a wait hasn't happened, there is still
+ a lost wakeup problem if more than one thread are interrupted in the
+ critical place. A semaphore solves that, because its state is
+ counted, not Boolean.
+ Because it is ok to signal a condition variable with no one
+ waiting, we need to keep track of the number of
+ waiting threads. Otherwise, the semaphore's state could rise
+ without bound. This also helps reduce the number of "spurious wakeups"
+ that would otherwise happen.
+ */
+
+typedef struct _PyCOND_T
+{
+ HANDLE sem;
+ int waiting; /* to allow PyCOND_SIGNAL to be a no-op */
+} PyCOND_T;
+
+#else /* !_PY_EMULATED_WIN_CV */
+
+/* Use native Win7 primitives if build target is Win7 or higher */
+
+/* SRWLOCK is faster and better than CriticalSection */
+typedef SRWLOCK PyMUTEX_T;
+
+typedef CONDITION_VARIABLE PyCOND_T;
+
+#endif /* _PY_EMULATED_WIN_CV */
+
+#endif /* _POSIX_THREADS, NT_THREADS */
+
+#endif /* Py_INTERNAL_CONDVAR_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_context.h b/contrib/tools/python3/src/Include/internal/pycore_context.h
index 2896c4bcd6..f665ad5c11 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_context.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_context.h
@@ -1,42 +1,42 @@
-#ifndef Py_INTERNAL_CONTEXT_H
-#define Py_INTERNAL_CONTEXT_H
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "pycore_hamt.h" /* PyHamtObject */
-
-struct _pycontextobject {
- PyObject_HEAD
- PyContext *ctx_prev;
- PyHamtObject *ctx_vars;
- PyObject *ctx_weakreflist;
- int ctx_entered;
-};
-
-
-struct _pycontextvarobject {
- PyObject_HEAD
- PyObject *var_name;
- PyObject *var_default;
- PyObject *var_cached;
- uint64_t var_cached_tsid;
- uint64_t var_cached_tsver;
- Py_hash_t var_hash;
-};
-
-
-struct _pycontexttokenobject {
- PyObject_HEAD
- PyContext *tok_ctx;
- PyContextVar *tok_var;
- PyObject *tok_oldval;
- int tok_used;
-};
-
-
-int _PyContext_Init(void);
-void _PyContext_Fini(void);
-
-#endif /* !Py_INTERNAL_CONTEXT_H */
+#ifndef Py_INTERNAL_CONTEXT_H
+#define Py_INTERNAL_CONTEXT_H
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "pycore_hamt.h" /* PyHamtObject */
+
+struct _pycontextobject {
+ PyObject_HEAD
+ PyContext *ctx_prev;
+ PyHamtObject *ctx_vars;
+ PyObject *ctx_weakreflist;
+ int ctx_entered;
+};
+
+
+struct _pycontextvarobject {
+ PyObject_HEAD
+ PyObject *var_name;
+ PyObject *var_default;
+ PyObject *var_cached;
+ uint64_t var_cached_tsid;
+ uint64_t var_cached_tsver;
+ Py_hash_t var_hash;
+};
+
+
+struct _pycontexttokenobject {
+ PyObject_HEAD
+ PyContext *tok_ctx;
+ PyContextVar *tok_var;
+ PyObject *tok_oldval;
+ int tok_used;
+};
+
+
+int _PyContext_Init(void);
+void _PyContext_Fini(void);
+
+#endif /* !Py_INTERNAL_CONTEXT_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_dtoa.h b/contrib/tools/python3/src/Include/internal/pycore_dtoa.h
index fc84acfffe..3faf8cf6b2 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_dtoa.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_dtoa.h
@@ -1,23 +1,23 @@
-#ifndef PY_NO_SHORT_FLOAT_REPR
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/* These functions are used by modules compiled as C extension like math:
- they must be exported. */
-
-PyAPI_FUNC(double) _Py_dg_strtod(const char *str, char **ptr);
-PyAPI_FUNC(char *) _Py_dg_dtoa(double d, int mode, int ndigits,
- int *decpt, int *sign, char **rve);
-PyAPI_FUNC(void) _Py_dg_freedtoa(char *s);
-PyAPI_FUNC(double) _Py_dg_stdnan(int sign);
-PyAPI_FUNC(double) _Py_dg_infinity(int sign);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !PY_NO_SHORT_FLOAT_REPR */
+#ifndef PY_NO_SHORT_FLOAT_REPR
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/* These functions are used by modules compiled as C extension like math:
+ they must be exported. */
+
+PyAPI_FUNC(double) _Py_dg_strtod(const char *str, char **ptr);
+PyAPI_FUNC(char *) _Py_dg_dtoa(double d, int mode, int ndigits,
+ int *decpt, int *sign, char **rve);
+PyAPI_FUNC(void) _Py_dg_freedtoa(char *s);
+PyAPI_FUNC(double) _Py_dg_stdnan(int sign);
+PyAPI_FUNC(double) _Py_dg_infinity(int sign);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !PY_NO_SHORT_FLOAT_REPR */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_fileutils.h b/contrib/tools/python3/src/Include/internal/pycore_fileutils.h
index d64ae9a8f8..8cf137bb4b 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_fileutils.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_fileutils.h
@@ -1,66 +1,66 @@
-#ifndef Py_INTERNAL_FILEUTILS_H
-#define Py_INTERNAL_FILEUTILS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "Py_BUILD_CORE must be defined to include this header"
-#endif
-
-#include <locale.h> /* struct lconv */
-
-PyAPI_DATA(int) _Py_HasFileSystemDefaultEncodeErrors;
-
-PyAPI_FUNC(int) _Py_DecodeUTF8Ex(
- const char *arg,
- Py_ssize_t arglen,
- wchar_t **wstr,
- size_t *wlen,
- const char **reason,
- _Py_error_handler errors);
-
-PyAPI_FUNC(int) _Py_EncodeUTF8Ex(
- const wchar_t *text,
- char **str,
- size_t *error_pos,
- const char **reason,
- int raw_malloc,
- _Py_error_handler errors);
-
-PyAPI_FUNC(wchar_t*) _Py_DecodeUTF8_surrogateescape(
- const char *arg,
- Py_ssize_t arglen,
- size_t *wlen);
-
-PyAPI_FUNC(int) _Py_GetForceASCII(void);
-
-/* Reset "force ASCII" mode (if it was initialized).
-
- This function should be called when Python changes the LC_CTYPE locale,
- so the "force ASCII" mode can be detected again on the new locale
- encoding. */
-PyAPI_FUNC(void) _Py_ResetForceASCII(void);
-
-
-PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
- struct lconv *lc,
- PyObject **decimal_point,
- PyObject **thousands_sep);
-
-#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
-extern int _Py_LocaleUsesNonUnicodeWchar(void);
-
-extern wchar_t* _Py_DecodeNonUnicodeWchar(
- const wchar_t* native,
- Py_ssize_t size);
-
-extern int _Py_EncodeNonUnicodeWchar_InPlace(
- wchar_t* unicode,
- Py_ssize_t size);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_FILEUTILS_H */
+#ifndef Py_INTERNAL_FILEUTILS_H
+#define Py_INTERNAL_FILEUTILS_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "Py_BUILD_CORE must be defined to include this header"
+#endif
+
+#include <locale.h> /* struct lconv */
+
+PyAPI_DATA(int) _Py_HasFileSystemDefaultEncodeErrors;
+
+PyAPI_FUNC(int) _Py_DecodeUTF8Ex(
+ const char *arg,
+ Py_ssize_t arglen,
+ wchar_t **wstr,
+ size_t *wlen,
+ const char **reason,
+ _Py_error_handler errors);
+
+PyAPI_FUNC(int) _Py_EncodeUTF8Ex(
+ const wchar_t *text,
+ char **str,
+ size_t *error_pos,
+ const char **reason,
+ int raw_malloc,
+ _Py_error_handler errors);
+
+PyAPI_FUNC(wchar_t*) _Py_DecodeUTF8_surrogateescape(
+ const char *arg,
+ Py_ssize_t arglen,
+ size_t *wlen);
+
+PyAPI_FUNC(int) _Py_GetForceASCII(void);
+
+/* Reset "force ASCII" mode (if it was initialized).
+
+ This function should be called when Python changes the LC_CTYPE locale,
+ so the "force ASCII" mode can be detected again on the new locale
+ encoding. */
+PyAPI_FUNC(void) _Py_ResetForceASCII(void);
+
+
+PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
+ struct lconv *lc,
+ PyObject **decimal_point,
+ PyObject **thousands_sep);
+
+#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+extern int _Py_LocaleUsesNonUnicodeWchar(void);
+
+extern wchar_t* _Py_DecodeNonUnicodeWchar(
+ const wchar_t* native,
+ Py_ssize_t size);
+
+extern int _Py_EncodeNonUnicodeWchar_InPlace(
+ wchar_t* unicode,
+ Py_ssize_t size);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_FILEUTILS_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_gc.h b/contrib/tools/python3/src/Include/internal/pycore_gc.h
index cc7fbc158c..0511eea779 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_gc.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_gc.h
@@ -1,179 +1,179 @@
-#ifndef Py_INTERNAL_GC_H
-#define Py_INTERNAL_GC_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/* GC information is stored BEFORE the object structure. */
-typedef struct {
- // Pointer to next object in the list.
- // 0 means the object is not tracked
- uintptr_t _gc_next;
-
- // Pointer to previous object in the list.
- // Lowest two bits are used for flags documented later.
- uintptr_t _gc_prev;
-} PyGC_Head;
-
-#define _Py_AS_GC(o) ((PyGC_Head *)(o)-1)
-
-/* True if the object is currently tracked by the GC. */
-#define _PyObject_GC_IS_TRACKED(o) (_Py_AS_GC(o)->_gc_next != 0)
-
-/* True if the object may be tracked by the GC in the future, or already is.
- This can be useful to implement some optimizations. */
-#define _PyObject_GC_MAY_BE_TRACKED(obj) \
- (PyObject_IS_GC(obj) && \
- (!PyTuple_CheckExact(obj) || _PyObject_GC_IS_TRACKED(obj)))
-
-
-/* Bit flags for _gc_prev */
-/* Bit 0 is set when tp_finalize is called */
-#define _PyGC_PREV_MASK_FINALIZED (1)
-/* Bit 1 is set when the object is in generation which is GCed currently. */
-#define _PyGC_PREV_MASK_COLLECTING (2)
-/* The (N-2) most significant bits contain the real address. */
-#define _PyGC_PREV_SHIFT (2)
-#define _PyGC_PREV_MASK (((uintptr_t) -1) << _PyGC_PREV_SHIFT)
-
-// Lowest bit of _gc_next is used for flags only in GC.
-// But it is always 0 for normal code.
-#define _PyGCHead_NEXT(g) ((PyGC_Head*)(g)->_gc_next)
-#define _PyGCHead_SET_NEXT(g, p) ((g)->_gc_next = (uintptr_t)(p))
-
-// Lowest two bits of _gc_prev is used for _PyGC_PREV_MASK_* flags.
-#define _PyGCHead_PREV(g) ((PyGC_Head*)((g)->_gc_prev & _PyGC_PREV_MASK))
-#define _PyGCHead_SET_PREV(g, p) do { \
- assert(((uintptr_t)p & ~_PyGC_PREV_MASK) == 0); \
- (g)->_gc_prev = ((g)->_gc_prev & ~_PyGC_PREV_MASK) \
- | ((uintptr_t)(p)); \
- } while (0)
-
-#define _PyGCHead_FINALIZED(g) \
- (((g)->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0)
-#define _PyGCHead_SET_FINALIZED(g) \
- ((g)->_gc_prev |= _PyGC_PREV_MASK_FINALIZED)
-
-#define _PyGC_FINALIZED(o) \
- _PyGCHead_FINALIZED(_Py_AS_GC(o))
-#define _PyGC_SET_FINALIZED(o) \
- _PyGCHead_SET_FINALIZED(_Py_AS_GC(o))
-
-
-/* GC runtime state */
-
-/* If we change this, we need to change the default value in the
- signature of gc.collect. */
-#define NUM_GENERATIONS 3
-/*
- NOTE: about untracking of mutable objects.
-
- Certain types of container cannot participate in a reference cycle, and
- so do not need to be tracked by the garbage collector. Untracking these
- objects reduces the cost of garbage collections. However, determining
- which objects may be untracked is not free, and the costs must be
- weighed against the benefits for garbage collection.
-
- There are two possible strategies for when to untrack a container:
-
- i) When the container is created.
- ii) When the container is examined by the garbage collector.
-
- Tuples containing only immutable objects (integers, strings etc, and
- recursively, tuples of immutable objects) do not need to be tracked.
- The interpreter creates a large number of tuples, many of which will
- not survive until garbage collection. It is therefore not worthwhile
- to untrack eligible tuples at creation time.
-
- Instead, all tuples except the empty tuple are tracked when created.
- During garbage collection it is determined whether any surviving tuples
- can be untracked. A tuple can be untracked if all of its contents are
- already not tracked. Tuples are examined for untracking in all garbage
- collection cycles. It may take more than one cycle to untrack a tuple.
-
- Dictionaries containing only immutable objects also do not need to be
- tracked. Dictionaries are untracked when created. If a tracked item is
- inserted into a dictionary (either as a key or value), the dictionary
- becomes tracked. During a full garbage collection (all generations),
- the collector will untrack any dictionaries whose contents are not
- tracked.
-
- The module provides the python function is_tracked(obj), which returns
- the CURRENT tracking status of the object. Subsequent garbage
- collections may change the tracking status of the object.
-
- Untracking of certain containers was introduced in issue #4688, and
- the algorithm was refined in response to issue #14775.
-*/
-
-struct gc_generation {
- PyGC_Head head;
- int threshold; /* collection threshold */
- int count; /* count of allocations or collections of younger
- generations */
-};
-
-/* Running stats per generation */
-struct gc_generation_stats {
- /* total number of collections */
- Py_ssize_t collections;
- /* total number of collected objects */
- Py_ssize_t collected;
- /* total number of uncollectable objects (put into gc.garbage) */
- Py_ssize_t uncollectable;
-};
-
-struct _gc_runtime_state {
- /* List of objects that still need to be cleaned up, singly linked
- * via their gc headers' gc_prev pointers. */
- PyObject *trash_delete_later;
- /* Current call-stack depth of tp_dealloc calls. */
- int trash_delete_nesting;
-
- int enabled;
- int debug;
- /* linked lists of container objects */
- struct gc_generation generations[NUM_GENERATIONS];
- PyGC_Head *generation0;
- /* a permanent generation which won't be collected */
- struct gc_generation permanent_generation;
- struct gc_generation_stats generation_stats[NUM_GENERATIONS];
- /* true if we are currently running the collector */
- int collecting;
- /* list of uncollectable objects */
- PyObject *garbage;
- /* a list of callbacks to be invoked when collection is performed */
- PyObject *callbacks;
- /* This is the number of objects that survived the last full
- collection. It approximates the number of long lived objects
- tracked by the GC.
-
- (by "full collection", we mean a collection of the oldest
- generation). */
- Py_ssize_t long_lived_total;
- /* This is the number of objects that survived all "non-full"
- collections, and are awaiting to undergo a full collection for
- the first time. */
- Py_ssize_t long_lived_pending;
-};
-
-PyAPI_FUNC(void) _PyGC_InitState(struct _gc_runtime_state *);
-
-
-// Functions to clear types free lists
-extern void _PyFrame_ClearFreeList(void);
-extern void _PyTuple_ClearFreeList(void);
-extern void _PyFloat_ClearFreeList(void);
-extern void _PyList_ClearFreeList(void);
-extern void _PyDict_ClearFreeList(void);
-extern void _PyAsyncGen_ClearFreeLists(void);
-extern void _PyContext_ClearFreeList(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_GC_H */
+#ifndef Py_INTERNAL_GC_H
+#define Py_INTERNAL_GC_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/* GC information is stored BEFORE the object structure. */
+typedef struct {
+ // Pointer to next object in the list.
+ // 0 means the object is not tracked
+ uintptr_t _gc_next;
+
+ // Pointer to previous object in the list.
+ // Lowest two bits are used for flags documented later.
+ uintptr_t _gc_prev;
+} PyGC_Head;
+
+#define _Py_AS_GC(o) ((PyGC_Head *)(o)-1)
+
+/* True if the object is currently tracked by the GC. */
+#define _PyObject_GC_IS_TRACKED(o) (_Py_AS_GC(o)->_gc_next != 0)
+
+/* True if the object may be tracked by the GC in the future, or already is.
+ This can be useful to implement some optimizations. */
+#define _PyObject_GC_MAY_BE_TRACKED(obj) \
+ (PyObject_IS_GC(obj) && \
+ (!PyTuple_CheckExact(obj) || _PyObject_GC_IS_TRACKED(obj)))
+
+
+/* Bit flags for _gc_prev */
+/* Bit 0 is set when tp_finalize is called */
+#define _PyGC_PREV_MASK_FINALIZED (1)
+/* Bit 1 is set when the object is in generation which is GCed currently. */
+#define _PyGC_PREV_MASK_COLLECTING (2)
+/* The (N-2) most significant bits contain the real address. */
+#define _PyGC_PREV_SHIFT (2)
+#define _PyGC_PREV_MASK (((uintptr_t) -1) << _PyGC_PREV_SHIFT)
+
+// Lowest bit of _gc_next is used for flags only in GC.
+// But it is always 0 for normal code.
+#define _PyGCHead_NEXT(g) ((PyGC_Head*)(g)->_gc_next)
+#define _PyGCHead_SET_NEXT(g, p) ((g)->_gc_next = (uintptr_t)(p))
+
+// Lowest two bits of _gc_prev is used for _PyGC_PREV_MASK_* flags.
+#define _PyGCHead_PREV(g) ((PyGC_Head*)((g)->_gc_prev & _PyGC_PREV_MASK))
+#define _PyGCHead_SET_PREV(g, p) do { \
+ assert(((uintptr_t)p & ~_PyGC_PREV_MASK) == 0); \
+ (g)->_gc_prev = ((g)->_gc_prev & ~_PyGC_PREV_MASK) \
+ | ((uintptr_t)(p)); \
+ } while (0)
+
+#define _PyGCHead_FINALIZED(g) \
+ (((g)->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0)
+#define _PyGCHead_SET_FINALIZED(g) \
+ ((g)->_gc_prev |= _PyGC_PREV_MASK_FINALIZED)
+
+#define _PyGC_FINALIZED(o) \
+ _PyGCHead_FINALIZED(_Py_AS_GC(o))
+#define _PyGC_SET_FINALIZED(o) \
+ _PyGCHead_SET_FINALIZED(_Py_AS_GC(o))
+
+
+/* GC runtime state */
+
+/* If we change this, we need to change the default value in the
+ signature of gc.collect. */
+#define NUM_GENERATIONS 3
+/*
+ NOTE: about untracking of mutable objects.
+
+ Certain types of container cannot participate in a reference cycle, and
+ so do not need to be tracked by the garbage collector. Untracking these
+ objects reduces the cost of garbage collections. However, determining
+ which objects may be untracked is not free, and the costs must be
+ weighed against the benefits for garbage collection.
+
+ There are two possible strategies for when to untrack a container:
+
+ i) When the container is created.
+ ii) When the container is examined by the garbage collector.
+
+ Tuples containing only immutable objects (integers, strings etc, and
+ recursively, tuples of immutable objects) do not need to be tracked.
+ The interpreter creates a large number of tuples, many of which will
+ not survive until garbage collection. It is therefore not worthwhile
+ to untrack eligible tuples at creation time.
+
+ Instead, all tuples except the empty tuple are tracked when created.
+ During garbage collection it is determined whether any surviving tuples
+ can be untracked. A tuple can be untracked if all of its contents are
+ already not tracked. Tuples are examined for untracking in all garbage
+ collection cycles. It may take more than one cycle to untrack a tuple.
+
+ Dictionaries containing only immutable objects also do not need to be
+ tracked. Dictionaries are untracked when created. If a tracked item is
+ inserted into a dictionary (either as a key or value), the dictionary
+ becomes tracked. During a full garbage collection (all generations),
+ the collector will untrack any dictionaries whose contents are not
+ tracked.
+
+ The module provides the python function is_tracked(obj), which returns
+ the CURRENT tracking status of the object. Subsequent garbage
+ collections may change the tracking status of the object.
+
+ Untracking of certain containers was introduced in issue #4688, and
+ the algorithm was refined in response to issue #14775.
+*/
+
+struct gc_generation {
+ PyGC_Head head;
+ int threshold; /* collection threshold */
+ int count; /* count of allocations or collections of younger
+ generations */
+};
+
+/* Running stats per generation */
+struct gc_generation_stats {
+ /* total number of collections */
+ Py_ssize_t collections;
+ /* total number of collected objects */
+ Py_ssize_t collected;
+ /* total number of uncollectable objects (put into gc.garbage) */
+ Py_ssize_t uncollectable;
+};
+
+struct _gc_runtime_state {
+ /* List of objects that still need to be cleaned up, singly linked
+ * via their gc headers' gc_prev pointers. */
+ PyObject *trash_delete_later;
+ /* Current call-stack depth of tp_dealloc calls. */
+ int trash_delete_nesting;
+
+ int enabled;
+ int debug;
+ /* linked lists of container objects */
+ struct gc_generation generations[NUM_GENERATIONS];
+ PyGC_Head *generation0;
+ /* a permanent generation which won't be collected */
+ struct gc_generation permanent_generation;
+ struct gc_generation_stats generation_stats[NUM_GENERATIONS];
+ /* true if we are currently running the collector */
+ int collecting;
+ /* list of uncollectable objects */
+ PyObject *garbage;
+ /* a list of callbacks to be invoked when collection is performed */
+ PyObject *callbacks;
+ /* This is the number of objects that survived the last full
+ collection. It approximates the number of long lived objects
+ tracked by the GC.
+
+ (by "full collection", we mean a collection of the oldest
+ generation). */
+ Py_ssize_t long_lived_total;
+ /* This is the number of objects that survived all "non-full"
+ collections, and are awaiting to undergo a full collection for
+ the first time. */
+ Py_ssize_t long_lived_pending;
+};
+
+PyAPI_FUNC(void) _PyGC_InitState(struct _gc_runtime_state *);
+
+
+// Functions to clear types free lists
+extern void _PyFrame_ClearFreeList(void);
+extern void _PyTuple_ClearFreeList(void);
+extern void _PyFloat_ClearFreeList(void);
+extern void _PyList_ClearFreeList(void);
+extern void _PyDict_ClearFreeList(void);
+extern void _PyAsyncGen_ClearFreeLists(void);
+extern void _PyContext_ClearFreeList(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_GC_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_getopt.h b/contrib/tools/python3/src/Include/internal/pycore_getopt.h
index bd48fabf6d..7f0dd13ae5 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_getopt.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_getopt.h
@@ -1,22 +1,22 @@
-#ifndef Py_INTERNAL_PYGETOPT_H
-#define Py_INTERNAL_PYGETOPT_H
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-extern int _PyOS_opterr;
-extern Py_ssize_t _PyOS_optind;
-extern const wchar_t *_PyOS_optarg;
-
-extern void _PyOS_ResetGetOpt(void);
-
-typedef struct {
- const wchar_t *name;
- int has_arg;
- int val;
-} _PyOS_LongOption;
-
-extern int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex);
-
-#endif /* !Py_INTERNAL_PYGETOPT_H */
+#ifndef Py_INTERNAL_PYGETOPT_H
+#define Py_INTERNAL_PYGETOPT_H
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+extern int _PyOS_opterr;
+extern Py_ssize_t _PyOS_optind;
+extern const wchar_t *_PyOS_optarg;
+
+extern void _PyOS_ResetGetOpt(void);
+
+typedef struct {
+ const wchar_t *name;
+ int has_arg;
+ int val;
+} _PyOS_LongOption;
+
+extern int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex);
+
+#endif /* !Py_INTERNAL_PYGETOPT_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_gil.h b/contrib/tools/python3/src/Include/internal/pycore_gil.h
index b0313a471c..8ebad37b68 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_gil.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_gil.h
@@ -1,50 +1,50 @@
-#ifndef Py_INTERNAL_GIL_H
-#define Py_INTERNAL_GIL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "pycore_atomic.h" /* _Py_atomic_address */
-#include "pycore_condvar.h" /* PyCOND_T */
-
-#ifndef Py_HAVE_CONDVAR
-# error You need either a POSIX-compatible or a Windows system!
-#endif
-
-/* Enable if you want to force the switching of threads at least
- every `interval`. */
-#undef FORCE_SWITCHING
-#define FORCE_SWITCHING
-
-struct _gil_runtime_state {
- /* microseconds (the Python API uses seconds, though) */
- unsigned long interval;
- /* Last PyThreadState holding / having held the GIL. This helps us
- know whether anyone else was scheduled after we dropped the GIL. */
- _Py_atomic_address last_holder;
- /* Whether the GIL is already taken (-1 if uninitialized). This is
- atomic because it can be read without any lock taken in ceval.c. */
- _Py_atomic_int locked;
- /* Number of GIL switches since the beginning. */
- unsigned long switch_number;
- /* This condition variable allows one or several threads to wait
- until the GIL is released. In addition, the mutex also protects
- the above variables. */
- PyCOND_T cond;
- PyMUTEX_T mutex;
-#ifdef FORCE_SWITCHING
- /* This condition variable helps the GIL-releasing thread wait for
- a GIL-awaiting thread to be scheduled and take the GIL. */
- PyCOND_T switch_cond;
- PyMUTEX_T switch_mutex;
-#endif
-};
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_GIL_H */
+#ifndef Py_INTERNAL_GIL_H
+#define Py_INTERNAL_GIL_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "pycore_atomic.h" /* _Py_atomic_address */
+#include "pycore_condvar.h" /* PyCOND_T */
+
+#ifndef Py_HAVE_CONDVAR
+# error You need either a POSIX-compatible or a Windows system!
+#endif
+
+/* Enable if you want to force the switching of threads at least
+ every `interval`. */
+#undef FORCE_SWITCHING
+#define FORCE_SWITCHING
+
+struct _gil_runtime_state {
+ /* microseconds (the Python API uses seconds, though) */
+ unsigned long interval;
+ /* Last PyThreadState holding / having held the GIL. This helps us
+ know whether anyone else was scheduled after we dropped the GIL. */
+ _Py_atomic_address last_holder;
+ /* Whether the GIL is already taken (-1 if uninitialized). This is
+ atomic because it can be read without any lock taken in ceval.c. */
+ _Py_atomic_int locked;
+ /* Number of GIL switches since the beginning. */
+ unsigned long switch_number;
+ /* This condition variable allows one or several threads to wait
+ until the GIL is released. In addition, the mutex also protects
+ the above variables. */
+ PyCOND_T cond;
+ PyMUTEX_T mutex;
+#ifdef FORCE_SWITCHING
+ /* This condition variable helps the GIL-releasing thread wait for
+ a GIL-awaiting thread to be scheduled and take the GIL. */
+ PyCOND_T switch_cond;
+ PyMUTEX_T switch_mutex;
+#endif
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_GIL_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_hamt.h b/contrib/tools/python3/src/Include/internal/pycore_hamt.h
index 9fdd4cc4fa..aaf6559095 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_hamt.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_hamt.h
@@ -1,116 +1,116 @@
-#ifndef Py_INTERNAL_HAMT_H
-#define Py_INTERNAL_HAMT_H
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#define _Py_HAMT_MAX_TREE_DEPTH 7
-
-
-#define PyHamt_Check(o) Py_IS_TYPE(o, &_PyHamt_Type)
-
-
-/* Abstract tree node. */
-typedef struct {
- PyObject_HEAD
-} PyHamtNode;
-
-
-/* An HAMT immutable mapping collection. */
-typedef struct {
- PyObject_HEAD
- PyHamtNode *h_root;
- PyObject *h_weakreflist;
- Py_ssize_t h_count;
-} PyHamtObject;
-
-
-/* A struct to hold the state of depth-first traverse of the tree.
-
- HAMT is an immutable collection. Iterators will hold a strong reference
- to it, and every node in the HAMT has strong references to its children.
-
- So for iterators, we can implement zero allocations and zero reference
- inc/dec depth-first iteration.
-
- - i_nodes: an array of seven pointers to tree nodes
- - i_level: the current node in i_nodes
- - i_pos: an array of positions within nodes in i_nodes.
-*/
-typedef struct {
- PyHamtNode *i_nodes[_Py_HAMT_MAX_TREE_DEPTH];
- Py_ssize_t i_pos[_Py_HAMT_MAX_TREE_DEPTH];
- int8_t i_level;
-} PyHamtIteratorState;
-
-
-/* Base iterator object.
-
- Contains the iteration state, a pointer to the HAMT tree,
- and a pointer to the 'yield function'. The latter is a simple
- function that returns a key/value tuple for the 'Items' iterator,
- just a key for the 'Keys' iterator, and a value for the 'Values'
- iterator.
-*/
-typedef struct {
- PyObject_HEAD
- PyHamtObject *hi_obj;
- PyHamtIteratorState hi_iter;
- binaryfunc hi_yield;
-} PyHamtIterator;
-
-
-PyAPI_DATA(PyTypeObject) _PyHamt_Type;
-PyAPI_DATA(PyTypeObject) _PyHamt_ArrayNode_Type;
-PyAPI_DATA(PyTypeObject) _PyHamt_BitmapNode_Type;
-PyAPI_DATA(PyTypeObject) _PyHamt_CollisionNode_Type;
-PyAPI_DATA(PyTypeObject) _PyHamtKeys_Type;
-PyAPI_DATA(PyTypeObject) _PyHamtValues_Type;
-PyAPI_DATA(PyTypeObject) _PyHamtItems_Type;
-
-
-/* Create a new HAMT immutable mapping. */
-PyHamtObject * _PyHamt_New(void);
-
-/* Return a new collection based on "o", but with an additional
- key/val pair. */
-PyHamtObject * _PyHamt_Assoc(PyHamtObject *o, PyObject *key, PyObject *val);
-
-/* Return a new collection based on "o", but without "key". */
-PyHamtObject * _PyHamt_Without(PyHamtObject *o, PyObject *key);
-
-/* Find "key" in the "o" collection.
-
- Return:
- - -1: An error occurred.
- - 0: "key" wasn't found in "o".
- - 1: "key" is in "o"; "*val" is set to its value (a borrowed ref).
-*/
-int _PyHamt_Find(PyHamtObject *o, PyObject *key, PyObject **val);
-
-/* Check if "v" is equal to "w".
-
- Return:
- - 0: v != w
- - 1: v == w
- - -1: An error occurred.
-*/
-int _PyHamt_Eq(PyHamtObject *v, PyHamtObject *w);
-
-/* Return the size of "o"; equivalent of "len(o)". */
-Py_ssize_t _PyHamt_Len(PyHamtObject *o);
-
-/* Return a Keys iterator over "o". */
-PyObject * _PyHamt_NewIterKeys(PyHamtObject *o);
-
-/* Return a Values iterator over "o". */
-PyObject * _PyHamt_NewIterValues(PyHamtObject *o);
-
-/* Return a Items iterator over "o". */
-PyObject * _PyHamt_NewIterItems(PyHamtObject *o);
-
-int _PyHamt_Init(void);
-void _PyHamt_Fini(void);
-
-#endif /* !Py_INTERNAL_HAMT_H */
+#ifndef Py_INTERNAL_HAMT_H
+#define Py_INTERNAL_HAMT_H
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#define _Py_HAMT_MAX_TREE_DEPTH 7
+
+
+#define PyHamt_Check(o) Py_IS_TYPE(o, &_PyHamt_Type)
+
+
+/* Abstract tree node. */
+typedef struct {
+ PyObject_HEAD
+} PyHamtNode;
+
+
+/* An HAMT immutable mapping collection. */
+typedef struct {
+ PyObject_HEAD
+ PyHamtNode *h_root;
+ PyObject *h_weakreflist;
+ Py_ssize_t h_count;
+} PyHamtObject;
+
+
+/* A struct to hold the state of depth-first traverse of the tree.
+
+ HAMT is an immutable collection. Iterators will hold a strong reference
+ to it, and every node in the HAMT has strong references to its children.
+
+ So for iterators, we can implement zero allocations and zero reference
+ inc/dec depth-first iteration.
+
+ - i_nodes: an array of seven pointers to tree nodes
+ - i_level: the current node in i_nodes
+ - i_pos: an array of positions within nodes in i_nodes.
+*/
+typedef struct {
+ PyHamtNode *i_nodes[_Py_HAMT_MAX_TREE_DEPTH];
+ Py_ssize_t i_pos[_Py_HAMT_MAX_TREE_DEPTH];
+ int8_t i_level;
+} PyHamtIteratorState;
+
+
+/* Base iterator object.
+
+ Contains the iteration state, a pointer to the HAMT tree,
+ and a pointer to the 'yield function'. The latter is a simple
+ function that returns a key/value tuple for the 'Items' iterator,
+ just a key for the 'Keys' iterator, and a value for the 'Values'
+ iterator.
+*/
+typedef struct {
+ PyObject_HEAD
+ PyHamtObject *hi_obj;
+ PyHamtIteratorState hi_iter;
+ binaryfunc hi_yield;
+} PyHamtIterator;
+
+
+PyAPI_DATA(PyTypeObject) _PyHamt_Type;
+PyAPI_DATA(PyTypeObject) _PyHamt_ArrayNode_Type;
+PyAPI_DATA(PyTypeObject) _PyHamt_BitmapNode_Type;
+PyAPI_DATA(PyTypeObject) _PyHamt_CollisionNode_Type;
+PyAPI_DATA(PyTypeObject) _PyHamtKeys_Type;
+PyAPI_DATA(PyTypeObject) _PyHamtValues_Type;
+PyAPI_DATA(PyTypeObject) _PyHamtItems_Type;
+
+
+/* Create a new HAMT immutable mapping. */
+PyHamtObject * _PyHamt_New(void);
+
+/* Return a new collection based on "o", but with an additional
+ key/val pair. */
+PyHamtObject * _PyHamt_Assoc(PyHamtObject *o, PyObject *key, PyObject *val);
+
+/* Return a new collection based on "o", but without "key". */
+PyHamtObject * _PyHamt_Without(PyHamtObject *o, PyObject *key);
+
+/* Find "key" in the "o" collection.
+
+ Return:
+ - -1: An error occurred.
+ - 0: "key" wasn't found in "o".
+ - 1: "key" is in "o"; "*val" is set to its value (a borrowed ref).
+*/
+int _PyHamt_Find(PyHamtObject *o, PyObject *key, PyObject **val);
+
+/* Check if "v" is equal to "w".
+
+ Return:
+ - 0: v != w
+ - 1: v == w
+ - -1: An error occurred.
+*/
+int _PyHamt_Eq(PyHamtObject *v, PyHamtObject *w);
+
+/* Return the size of "o"; equivalent of "len(o)". */
+Py_ssize_t _PyHamt_Len(PyHamtObject *o);
+
+/* Return a Keys iterator over "o". */
+PyObject * _PyHamt_NewIterKeys(PyHamtObject *o);
+
+/* Return a Values iterator over "o". */
+PyObject * _PyHamt_NewIterValues(PyHamtObject *o);
+
+/* Return a Items iterator over "o". */
+PyObject * _PyHamt_NewIterItems(PyHamtObject *o);
+
+int _PyHamt_Init(void);
+void _PyHamt_Fini(void);
+
+#endif /* !Py_INTERNAL_HAMT_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_hashtable.h b/contrib/tools/python3/src/Include/internal/pycore_hashtable.h
index e788580437..18757abc28 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_hashtable.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_hashtable.h
@@ -1,148 +1,148 @@
-#ifndef Py_INTERNAL_HASHTABLE_H
-#define Py_INTERNAL_HASHTABLE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/* Single linked list */
-
-typedef struct _Py_slist_item_s {
- struct _Py_slist_item_s *next;
-} _Py_slist_item_t;
-
-typedef struct {
- _Py_slist_item_t *head;
-} _Py_slist_t;
-
-#define _Py_SLIST_ITEM_NEXT(ITEM) (((_Py_slist_item_t *)ITEM)->next)
-
-#define _Py_SLIST_HEAD(SLIST) (((_Py_slist_t *)SLIST)->head)
-
-
-/* _Py_hashtable: table entry */
-
-typedef struct {
- /* used by _Py_hashtable_t.buckets to link entries */
- _Py_slist_item_t _Py_slist_item;
-
- Py_uhash_t key_hash;
- void *key;
- void *value;
-} _Py_hashtable_entry_t;
-
-
-/* _Py_hashtable: prototypes */
-
-/* Forward declaration */
-struct _Py_hashtable_t;
-typedef struct _Py_hashtable_t _Py_hashtable_t;
-
-typedef Py_uhash_t (*_Py_hashtable_hash_func) (const void *key);
-typedef int (*_Py_hashtable_compare_func) (const void *key1, const void *key2);
-typedef void (*_Py_hashtable_destroy_func) (void *key);
-typedef _Py_hashtable_entry_t* (*_Py_hashtable_get_entry_func)(_Py_hashtable_t *ht,
- const void *key);
-
-typedef struct {
- // Allocate a memory block
- void* (*malloc) (size_t size);
-
- // Release a memory block
- void (*free) (void *ptr);
-} _Py_hashtable_allocator_t;
-
-
-/* _Py_hashtable: table */
-struct _Py_hashtable_t {
- size_t nentries; // Total number of entries in the table
- size_t nbuckets;
- _Py_slist_t *buckets;
-
- _Py_hashtable_get_entry_func get_entry_func;
- _Py_hashtable_hash_func hash_func;
- _Py_hashtable_compare_func compare_func;
- _Py_hashtable_destroy_func key_destroy_func;
- _Py_hashtable_destroy_func value_destroy_func;
- _Py_hashtable_allocator_t alloc;
-};
-
-/* Hash a pointer (void*) */
-PyAPI_FUNC(Py_uhash_t) _Py_hashtable_hash_ptr(const void *key);
-
-/* Comparison using memcmp() */
-PyAPI_FUNC(int) _Py_hashtable_compare_direct(
- const void *key1,
- const void *key2);
-
-PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_new(
- _Py_hashtable_hash_func hash_func,
- _Py_hashtable_compare_func compare_func);
-
-PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_new_full(
- _Py_hashtable_hash_func hash_func,
- _Py_hashtable_compare_func compare_func,
- _Py_hashtable_destroy_func key_destroy_func,
- _Py_hashtable_destroy_func value_destroy_func,
- _Py_hashtable_allocator_t *allocator);
-
-PyAPI_FUNC(void) _Py_hashtable_destroy(_Py_hashtable_t *ht);
-
-PyAPI_FUNC(void) _Py_hashtable_clear(_Py_hashtable_t *ht);
-
-typedef int (*_Py_hashtable_foreach_func) (_Py_hashtable_t *ht,
- const void *key, const void *value,
- void *user_data);
-
-/* Call func() on each entry of the hashtable.
- Iteration stops if func() result is non-zero, in this case it's the result
- of the call. Otherwise, the function returns 0. */
-PyAPI_FUNC(int) _Py_hashtable_foreach(
- _Py_hashtable_t *ht,
- _Py_hashtable_foreach_func func,
- void *user_data);
-
-PyAPI_FUNC(size_t) _Py_hashtable_size(const _Py_hashtable_t *ht);
-
-/* Add a new entry to the hash. The key must not be present in the hash table.
- Return 0 on success, -1 on memory error. */
-PyAPI_FUNC(int) _Py_hashtable_set(
- _Py_hashtable_t *ht,
- const void *key,
- void *value);
-
-
-/* Get an entry.
- Return NULL if the key does not exist. */
-static inline _Py_hashtable_entry_t *
-_Py_hashtable_get_entry(_Py_hashtable_t *ht, const void *key)
-{
- return ht->get_entry_func(ht, key);
-}
-
-
-/* Get value from an entry.
- Return NULL if the entry is not found.
-
- Use _Py_hashtable_get_entry() to distinguish entry value equal to NULL
- and entry not found. */
-PyAPI_FUNC(void*) _Py_hashtable_get(_Py_hashtable_t *ht, const void *key);
-
-
-/* Remove a key and its associated value without calling key and value destroy
- functions.
-
- Return the removed value if the key was found.
- Return NULL if the key was not found. */
-PyAPI_FUNC(void*) _Py_hashtable_steal(
- _Py_hashtable_t *ht,
- const void *key);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_HASHTABLE_H */
+#ifndef Py_INTERNAL_HASHTABLE_H
+#define Py_INTERNAL_HASHTABLE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/* Single linked list */
+
+typedef struct _Py_slist_item_s {
+ struct _Py_slist_item_s *next;
+} _Py_slist_item_t;
+
+typedef struct {
+ _Py_slist_item_t *head;
+} _Py_slist_t;
+
+#define _Py_SLIST_ITEM_NEXT(ITEM) (((_Py_slist_item_t *)ITEM)->next)
+
+#define _Py_SLIST_HEAD(SLIST) (((_Py_slist_t *)SLIST)->head)
+
+
+/* _Py_hashtable: table entry */
+
+typedef struct {
+ /* used by _Py_hashtable_t.buckets to link entries */
+ _Py_slist_item_t _Py_slist_item;
+
+ Py_uhash_t key_hash;
+ void *key;
+ void *value;
+} _Py_hashtable_entry_t;
+
+
+/* _Py_hashtable: prototypes */
+
+/* Forward declaration */
+struct _Py_hashtable_t;
+typedef struct _Py_hashtable_t _Py_hashtable_t;
+
+typedef Py_uhash_t (*_Py_hashtable_hash_func) (const void *key);
+typedef int (*_Py_hashtable_compare_func) (const void *key1, const void *key2);
+typedef void (*_Py_hashtable_destroy_func) (void *key);
+typedef _Py_hashtable_entry_t* (*_Py_hashtable_get_entry_func)(_Py_hashtable_t *ht,
+ const void *key);
+
+typedef struct {
+ // Allocate a memory block
+ void* (*malloc) (size_t size);
+
+ // Release a memory block
+ void (*free) (void *ptr);
+} _Py_hashtable_allocator_t;
+
+
+/* _Py_hashtable: table */
+struct _Py_hashtable_t {
+ size_t nentries; // Total number of entries in the table
+ size_t nbuckets;
+ _Py_slist_t *buckets;
+
+ _Py_hashtable_get_entry_func get_entry_func;
+ _Py_hashtable_hash_func hash_func;
+ _Py_hashtable_compare_func compare_func;
+ _Py_hashtable_destroy_func key_destroy_func;
+ _Py_hashtable_destroy_func value_destroy_func;
+ _Py_hashtable_allocator_t alloc;
+};
+
+/* Hash a pointer (void*) */
+PyAPI_FUNC(Py_uhash_t) _Py_hashtable_hash_ptr(const void *key);
+
+/* Comparison using memcmp() */
+PyAPI_FUNC(int) _Py_hashtable_compare_direct(
+ const void *key1,
+ const void *key2);
+
+PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_new(
+ _Py_hashtable_hash_func hash_func,
+ _Py_hashtable_compare_func compare_func);
+
+PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_new_full(
+ _Py_hashtable_hash_func hash_func,
+ _Py_hashtable_compare_func compare_func,
+ _Py_hashtable_destroy_func key_destroy_func,
+ _Py_hashtable_destroy_func value_destroy_func,
+ _Py_hashtable_allocator_t *allocator);
+
+PyAPI_FUNC(void) _Py_hashtable_destroy(_Py_hashtable_t *ht);
+
+PyAPI_FUNC(void) _Py_hashtable_clear(_Py_hashtable_t *ht);
+
+typedef int (*_Py_hashtable_foreach_func) (_Py_hashtable_t *ht,
+ const void *key, const void *value,
+ void *user_data);
+
+/* Call func() on each entry of the hashtable.
+ Iteration stops if func() result is non-zero, in this case it's the result
+ of the call. Otherwise, the function returns 0. */
+PyAPI_FUNC(int) _Py_hashtable_foreach(
+ _Py_hashtable_t *ht,
+ _Py_hashtable_foreach_func func,
+ void *user_data);
+
+PyAPI_FUNC(size_t) _Py_hashtable_size(const _Py_hashtable_t *ht);
+
+/* Add a new entry to the hash. The key must not be present in the hash table.
+ Return 0 on success, -1 on memory error. */
+PyAPI_FUNC(int) _Py_hashtable_set(
+ _Py_hashtable_t *ht,
+ const void *key,
+ void *value);
+
+
+/* Get an entry.
+ Return NULL if the key does not exist. */
+static inline _Py_hashtable_entry_t *
+_Py_hashtable_get_entry(_Py_hashtable_t *ht, const void *key)
+{
+ return ht->get_entry_func(ht, key);
+}
+
+
+/* Get value from an entry.
+ Return NULL if the entry is not found.
+
+ Use _Py_hashtable_get_entry() to distinguish entry value equal to NULL
+ and entry not found. */
+PyAPI_FUNC(void*) _Py_hashtable_get(_Py_hashtable_t *ht, const void *key);
+
+
+/* Remove a key and its associated value without calling key and value destroy
+ functions.
+
+ Return the removed value if the key was found.
+ Return NULL if the key was not found. */
+PyAPI_FUNC(void*) _Py_hashtable_steal(
+ _Py_hashtable_t *ht,
+ const void *key);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_HASHTABLE_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_import.h b/contrib/tools/python3/src/Include/internal/pycore_import.h
index 9a082d3521..b011ea4425 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_import.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_import.h
@@ -1,22 +1,22 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_INTERNAL_IMPORT_H
-#define Py_INTERNAL_IMPORT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(PyObject *) _PyImport_FindBuiltin(
- PyThreadState *tstate,
- const char *name /* UTF-8 encoded string */
- );
-
-#ifdef HAVE_FORK
-extern void _PyImport_ReInitLock(void);
-#endif
-extern void _PyImport_Cleanup(PyThreadState *tstate);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_IMPORT_H */
-#endif /* !Py_LIMITED_API */
+#ifndef Py_LIMITED_API
+#ifndef Py_INTERNAL_IMPORT_H
+#define Py_INTERNAL_IMPORT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+PyAPI_FUNC(PyObject *) _PyImport_FindBuiltin(
+ PyThreadState *tstate,
+ const char *name /* UTF-8 encoded string */
+ );
+
+#ifdef HAVE_FORK
+extern void _PyImport_ReInitLock(void);
+#endif
+extern void _PyImport_Cleanup(PyThreadState *tstate);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_IMPORT_H */
+#endif /* !Py_LIMITED_API */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_initconfig.h b/contrib/tools/python3/src/Include/internal/pycore_initconfig.h
index e89b29e8cc..457a005860 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_initconfig.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_initconfig.h
@@ -1,167 +1,167 @@
-#ifndef Py_INTERNAL_CORECONFIG_H
-#define Py_INTERNAL_CORECONFIG_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/* Forward declaration */
-struct pyruntimestate;
-
-/* --- PyStatus ----------------------------------------------- */
-
-/* Almost all errors causing Python initialization to fail */
-#ifdef _MSC_VER
- /* Visual Studio 2015 doesn't implement C99 __func__ in C */
-# define _PyStatus_GET_FUNC() __FUNCTION__
-#else
-# define _PyStatus_GET_FUNC() __func__
-#endif
-
-#define _PyStatus_OK() \
- (PyStatus){._type = _PyStatus_TYPE_OK,}
- /* other fields are set to 0 */
-#define _PyStatus_ERR(ERR_MSG) \
- (PyStatus){ \
- ._type = _PyStatus_TYPE_ERROR, \
- .func = _PyStatus_GET_FUNC(), \
- .err_msg = (ERR_MSG)}
- /* other fields are set to 0 */
-#define _PyStatus_NO_MEMORY() _PyStatus_ERR("memory allocation failed")
-#define _PyStatus_EXIT(EXITCODE) \
- (PyStatus){ \
- ._type = _PyStatus_TYPE_EXIT, \
- .exitcode = (EXITCODE)}
-#define _PyStatus_IS_ERROR(err) \
- (err._type == _PyStatus_TYPE_ERROR)
-#define _PyStatus_IS_EXIT(err) \
- (err._type == _PyStatus_TYPE_EXIT)
-#define _PyStatus_EXCEPTION(err) \
- (err._type != _PyStatus_TYPE_OK)
-#define _PyStatus_UPDATE_FUNC(err) \
- do { err.func = _PyStatus_GET_FUNC(); } while (0)
-
-/* --- PyWideStringList ------------------------------------------------ */
-
-#define _PyWideStringList_INIT (PyWideStringList){.length = 0, .items = NULL}
-
-#ifndef NDEBUG
-PyAPI_FUNC(int) _PyWideStringList_CheckConsistency(const PyWideStringList *list);
-#endif
-PyAPI_FUNC(void) _PyWideStringList_Clear(PyWideStringList *list);
-PyAPI_FUNC(int) _PyWideStringList_Copy(PyWideStringList *list,
- const PyWideStringList *list2);
-PyAPI_FUNC(PyStatus) _PyWideStringList_Extend(PyWideStringList *list,
- const PyWideStringList *list2);
-PyAPI_FUNC(PyObject*) _PyWideStringList_AsList(const PyWideStringList *list);
-
-
-/* --- _PyArgv ---------------------------------------------------- */
-
-typedef struct _PyArgv {
- Py_ssize_t argc;
- int use_bytes_argv;
- char * const *bytes_argv;
- wchar_t * const *wchar_argv;
-} _PyArgv;
-
-PyAPI_FUNC(PyStatus) _PyArgv_AsWstrList(const _PyArgv *args,
- PyWideStringList *list);
-
-
-/* --- Helper functions ------------------------------------------- */
-
-PyAPI_FUNC(int) _Py_str_to_int(
- const char *str,
- int *result);
-PyAPI_FUNC(const wchar_t*) _Py_get_xoption(
- const PyWideStringList *xoptions,
- const wchar_t *name);
-PyAPI_FUNC(const char*) _Py_GetEnv(
- int use_environment,
- const char *name);
-PyAPI_FUNC(void) _Py_get_env_flag(
- int use_environment,
- int *flag,
- const char *name);
-
-/* Py_GetArgcArgv() helper */
-PyAPI_FUNC(void) _Py_ClearArgcArgv(void);
-
-
-/* --- _PyPreCmdline ------------------------------------------------- */
-
-typedef struct {
- PyWideStringList argv;
- PyWideStringList xoptions; /* "-X value" option */
- int isolated; /* -I option */
- int use_environment; /* -E option */
- int dev_mode; /* -X dev and PYTHONDEVMODE */
-} _PyPreCmdline;
-
-#define _PyPreCmdline_INIT \
- (_PyPreCmdline){ \
- .use_environment = -1, \
- .isolated = -1, \
- .dev_mode = -1}
-/* Note: _PyPreCmdline_INIT sets other fields to 0/NULL */
-
-extern void _PyPreCmdline_Clear(_PyPreCmdline *cmdline);
-extern PyStatus _PyPreCmdline_SetArgv(_PyPreCmdline *cmdline,
- const _PyArgv *args);
-extern PyStatus _PyPreCmdline_SetConfig(
- const _PyPreCmdline *cmdline,
- PyConfig *config);
-extern PyStatus _PyPreCmdline_Read(_PyPreCmdline *cmdline,
- const PyPreConfig *preconfig);
-
-
-/* --- PyPreConfig ----------------------------------------------- */
-
-PyAPI_FUNC(void) _PyPreConfig_InitCompatConfig(PyPreConfig *preconfig);
-extern void _PyPreConfig_InitFromConfig(
- PyPreConfig *preconfig,
- const PyConfig *config);
-extern PyStatus _PyPreConfig_InitFromPreConfig(
- PyPreConfig *preconfig,
- const PyPreConfig *config2);
-extern PyObject* _PyPreConfig_AsDict(const PyPreConfig *preconfig);
-extern void _PyPreConfig_GetConfig(PyPreConfig *preconfig,
- const PyConfig *config);
-extern PyStatus _PyPreConfig_Read(PyPreConfig *preconfig,
- const _PyArgv *args);
-extern PyStatus _PyPreConfig_Write(const PyPreConfig *preconfig);
-
-
-/* --- PyConfig ---------------------------------------------- */
-
-typedef enum {
- /* Py_Initialize() API: backward compatibility with Python 3.6 and 3.7 */
- _PyConfig_INIT_COMPAT = 1,
- _PyConfig_INIT_PYTHON = 2,
- _PyConfig_INIT_ISOLATED = 3
-} _PyConfigInitEnum;
-
-PyAPI_FUNC(void) _PyConfig_InitCompatConfig(PyConfig *config);
-extern PyStatus _PyConfig_Copy(
- PyConfig *config,
- const PyConfig *config2);
-extern PyStatus _PyConfig_InitPathConfig(PyConfig *config);
-extern PyStatus _PyConfig_Write(const PyConfig *config,
- struct pyruntimestate *runtime);
-extern PyStatus _PyConfig_SetPyArgv(
- PyConfig *config,
- const _PyArgv *args);
-
-
-/* --- Function used for testing ---------------------------------- */
-
-PyAPI_FUNC(PyObject*) _Py_GetConfigsAsDict(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_CORECONFIG_H */
+#ifndef Py_INTERNAL_CORECONFIG_H
+#define Py_INTERNAL_CORECONFIG_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/* Forward declaration */
+struct pyruntimestate;
+
+/* --- PyStatus ----------------------------------------------- */
+
+/* Almost all errors causing Python initialization to fail */
+#ifdef _MSC_VER
+ /* Visual Studio 2015 doesn't implement C99 __func__ in C */
+# define _PyStatus_GET_FUNC() __FUNCTION__
+#else
+# define _PyStatus_GET_FUNC() __func__
+#endif
+
+#define _PyStatus_OK() \
+ (PyStatus){._type = _PyStatus_TYPE_OK,}
+ /* other fields are set to 0 */
+#define _PyStatus_ERR(ERR_MSG) \
+ (PyStatus){ \
+ ._type = _PyStatus_TYPE_ERROR, \
+ .func = _PyStatus_GET_FUNC(), \
+ .err_msg = (ERR_MSG)}
+ /* other fields are set to 0 */
+#define _PyStatus_NO_MEMORY() _PyStatus_ERR("memory allocation failed")
+#define _PyStatus_EXIT(EXITCODE) \
+ (PyStatus){ \
+ ._type = _PyStatus_TYPE_EXIT, \
+ .exitcode = (EXITCODE)}
+#define _PyStatus_IS_ERROR(err) \
+ (err._type == _PyStatus_TYPE_ERROR)
+#define _PyStatus_IS_EXIT(err) \
+ (err._type == _PyStatus_TYPE_EXIT)
+#define _PyStatus_EXCEPTION(err) \
+ (err._type != _PyStatus_TYPE_OK)
+#define _PyStatus_UPDATE_FUNC(err) \
+ do { err.func = _PyStatus_GET_FUNC(); } while (0)
+
+/* --- PyWideStringList ------------------------------------------------ */
+
+#define _PyWideStringList_INIT (PyWideStringList){.length = 0, .items = NULL}
+
+#ifndef NDEBUG
+PyAPI_FUNC(int) _PyWideStringList_CheckConsistency(const PyWideStringList *list);
+#endif
+PyAPI_FUNC(void) _PyWideStringList_Clear(PyWideStringList *list);
+PyAPI_FUNC(int) _PyWideStringList_Copy(PyWideStringList *list,
+ const PyWideStringList *list2);
+PyAPI_FUNC(PyStatus) _PyWideStringList_Extend(PyWideStringList *list,
+ const PyWideStringList *list2);
+PyAPI_FUNC(PyObject*) _PyWideStringList_AsList(const PyWideStringList *list);
+
+
+/* --- _PyArgv ---------------------------------------------------- */
+
+typedef struct _PyArgv {
+ Py_ssize_t argc;
+ int use_bytes_argv;
+ char * const *bytes_argv;
+ wchar_t * const *wchar_argv;
+} _PyArgv;
+
+PyAPI_FUNC(PyStatus) _PyArgv_AsWstrList(const _PyArgv *args,
+ PyWideStringList *list);
+
+
+/* --- Helper functions ------------------------------------------- */
+
+PyAPI_FUNC(int) _Py_str_to_int(
+ const char *str,
+ int *result);
+PyAPI_FUNC(const wchar_t*) _Py_get_xoption(
+ const PyWideStringList *xoptions,
+ const wchar_t *name);
+PyAPI_FUNC(const char*) _Py_GetEnv(
+ int use_environment,
+ const char *name);
+PyAPI_FUNC(void) _Py_get_env_flag(
+ int use_environment,
+ int *flag,
+ const char *name);
+
+/* Py_GetArgcArgv() helper */
+PyAPI_FUNC(void) _Py_ClearArgcArgv(void);
+
+
+/* --- _PyPreCmdline ------------------------------------------------- */
+
+typedef struct {
+ PyWideStringList argv;
+ PyWideStringList xoptions; /* "-X value" option */
+ int isolated; /* -I option */
+ int use_environment; /* -E option */
+ int dev_mode; /* -X dev and PYTHONDEVMODE */
+} _PyPreCmdline;
+
+#define _PyPreCmdline_INIT \
+ (_PyPreCmdline){ \
+ .use_environment = -1, \
+ .isolated = -1, \
+ .dev_mode = -1}
+/* Note: _PyPreCmdline_INIT sets other fields to 0/NULL */
+
+extern void _PyPreCmdline_Clear(_PyPreCmdline *cmdline);
+extern PyStatus _PyPreCmdline_SetArgv(_PyPreCmdline *cmdline,
+ const _PyArgv *args);
+extern PyStatus _PyPreCmdline_SetConfig(
+ const _PyPreCmdline *cmdline,
+ PyConfig *config);
+extern PyStatus _PyPreCmdline_Read(_PyPreCmdline *cmdline,
+ const PyPreConfig *preconfig);
+
+
+/* --- PyPreConfig ----------------------------------------------- */
+
+PyAPI_FUNC(void) _PyPreConfig_InitCompatConfig(PyPreConfig *preconfig);
+extern void _PyPreConfig_InitFromConfig(
+ PyPreConfig *preconfig,
+ const PyConfig *config);
+extern PyStatus _PyPreConfig_InitFromPreConfig(
+ PyPreConfig *preconfig,
+ const PyPreConfig *config2);
+extern PyObject* _PyPreConfig_AsDict(const PyPreConfig *preconfig);
+extern void _PyPreConfig_GetConfig(PyPreConfig *preconfig,
+ const PyConfig *config);
+extern PyStatus _PyPreConfig_Read(PyPreConfig *preconfig,
+ const _PyArgv *args);
+extern PyStatus _PyPreConfig_Write(const PyPreConfig *preconfig);
+
+
+/* --- PyConfig ---------------------------------------------- */
+
+typedef enum {
+ /* Py_Initialize() API: backward compatibility with Python 3.6 and 3.7 */
+ _PyConfig_INIT_COMPAT = 1,
+ _PyConfig_INIT_PYTHON = 2,
+ _PyConfig_INIT_ISOLATED = 3
+} _PyConfigInitEnum;
+
+PyAPI_FUNC(void) _PyConfig_InitCompatConfig(PyConfig *config);
+extern PyStatus _PyConfig_Copy(
+ PyConfig *config,
+ const PyConfig *config2);
+extern PyStatus _PyConfig_InitPathConfig(PyConfig *config);
+extern PyStatus _PyConfig_Write(const PyConfig *config,
+ struct pyruntimestate *runtime);
+extern PyStatus _PyConfig_SetPyArgv(
+ PyConfig *config,
+ const _PyArgv *args);
+
+
+/* --- Function used for testing ---------------------------------- */
+
+PyAPI_FUNC(PyObject*) _Py_GetConfigsAsDict(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_CORECONFIG_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_interp.h b/contrib/tools/python3/src/Include/internal/pycore_interp.h
index e2c3a68f86..551ad833bb 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_interp.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_interp.h
@@ -1,192 +1,192 @@
-#ifndef Py_INTERNAL_INTERP_H
-#define Py_INTERNAL_INTERP_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "pycore_atomic.h" /* _Py_atomic_address */
-#include "pycore_gil.h" /* struct _gil_runtime_state */
-#include "pycore_gc.h" /* struct _gc_runtime_state */
-#include "pycore_warnings.h" /* struct _warnings_runtime_state */
-
-/* ceval state */
-
-struct _pending_calls {
- PyThread_type_lock lock;
- /* Request for running pending calls. */
- _Py_atomic_int calls_to_do;
- /* Request for looking at the `async_exc` field of the current
- thread state.
- Guarded by the GIL. */
- int async_exc;
-#define NPENDINGCALLS 32
- struct {
- int (*func)(void *);
- void *arg;
- } calls[NPENDINGCALLS];
- int first;
- int last;
-};
-
-struct _ceval_state {
- int recursion_limit;
- /* Records whether tracing is on for any thread. Counts the number
- of threads for which tstate->c_tracefunc is non-NULL, so if the
- value is 0, we know we don't have to check this thread's
- c_tracefunc. This speeds up the if statement in
- _PyEval_EvalFrameDefault() after fast_next_opcode. */
- int tracing_possible;
- /* This single variable consolidates all requests to break out of
- the fast path in the eval loop. */
- _Py_atomic_int eval_breaker;
- /* Request for dropping the GIL */
- _Py_atomic_int gil_drop_request;
- struct _pending_calls pending;
-};
-
-/* fs_codec.encoding is initialized to NULL.
- Later, it is set to a non-NULL string by _PyUnicode_InitEncodings(). */
-struct _Py_unicode_fs_codec {
- char *encoding; // Filesystem encoding (encoded to UTF-8)
- int utf8; // encoding=="utf-8"?
- char *errors; // Filesystem errors (encoded to UTF-8)
- _Py_error_handler error_handler;
-};
-
-struct _Py_unicode_state {
- struct _Py_unicode_fs_codec fs_codec;
-};
-
-
-/* interpreter state */
-
-#define _PY_NSMALLPOSINTS 257
-#define _PY_NSMALLNEGINTS 5
-
-// The PyInterpreterState typedef is in Include/pystate.h.
-struct _is {
-
- struct _is *next;
- struct _ts *tstate_head;
-
- /* Reference to the _PyRuntime global variable. This field exists
- to not have to pass runtime in addition to tstate to a function.
- Get runtime from tstate: tstate->interp->runtime. */
- struct pyruntimestate *runtime;
-
- int64_t id;
- int64_t id_refcount;
- int requires_idref;
- PyThread_type_lock id_mutex;
-
- int finalizing;
-
- struct _ceval_state ceval;
- struct _gc_runtime_state gc;
-
- PyObject *modules;
- PyObject *modules_by_index;
- PyObject *sysdict;
- PyObject *builtins;
- PyObject *importlib;
-
- /* Used in Modules/_threadmodule.c. */
- long num_threads;
- /* Support for runtime thread stack size tuning.
- A value of 0 means using the platform's default stack size
- or the size specified by the THREAD_STACK_SIZE macro. */
- /* Used in Python/thread.c. */
- size_t pythread_stacksize;
-
- PyObject *codec_search_path;
- PyObject *codec_search_cache;
- PyObject *codec_error_registry;
- int codecs_initialized;
-
- struct _Py_unicode_state unicode;
-
- PyConfig config;
-#ifdef HAVE_DLOPEN
- int dlopenflags;
-#endif
-
- PyObject *dict; /* Stores per-interpreter state */
-
- PyObject *builtins_copy;
- PyObject *import_func;
- /* Initialized to PyEval_EvalFrameDefault(). */
- _PyFrameEvalFunction eval_frame;
-
- Py_ssize_t co_extra_user_count;
- freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS];
-
-#ifdef HAVE_FORK
- PyObject *before_forkers;
- PyObject *after_forkers_parent;
- PyObject *after_forkers_child;
-#endif
- /* AtExit module */
- void (*pyexitfunc)(PyObject *);
- PyObject *pyexitmodule;
-
- uint64_t tstate_next_unique_id;
-
- struct _warnings_runtime_state warnings;
-
- PyObject *audit_hooks;
-
- struct {
- struct {
- int level;
- int atbol;
- } listnode;
- } parser;
-
-#if _PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS > 0
- /* Small integers are preallocated in this array so that they
- can be shared.
- The integers that are preallocated are those in the range
- -_PY_NSMALLNEGINTS (inclusive) to _PY_NSMALLPOSINTS (not inclusive).
- */
- PyLongObject* small_ints[_PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS];
-#endif
-};
-
-/* Used by _PyImport_Cleanup() */
-extern void _PyInterpreterState_ClearModules(PyInterpreterState *interp);
-
-extern PyStatus _PyInterpreterState_SetConfig(
- PyInterpreterState *interp,
- const PyConfig *config);
-
-
-
-/* cross-interpreter data registry */
-
-/* For now we use a global registry of shareable classes. An
- alternative would be to add a tp_* slot for a class's
- crossinterpdatafunc. It would be simpler and more efficient. */
-
-struct _xidregitem;
-
-struct _xidregitem {
- PyTypeObject *cls;
- crossinterpdatafunc getdata;
- struct _xidregitem *next;
-};
-
-PyAPI_FUNC(struct _is*) _PyInterpreterState_LookUpID(int64_t);
-
-PyAPI_FUNC(int) _PyInterpreterState_IDInitref(struct _is *);
-PyAPI_FUNC(void) _PyInterpreterState_IDIncref(struct _is *);
-PyAPI_FUNC(void) _PyInterpreterState_IDDecref(struct _is *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_INTERP_H */
-
+#ifndef Py_INTERNAL_INTERP_H
+#define Py_INTERNAL_INTERP_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "pycore_atomic.h" /* _Py_atomic_address */
+#include "pycore_gil.h" /* struct _gil_runtime_state */
+#include "pycore_gc.h" /* struct _gc_runtime_state */
+#include "pycore_warnings.h" /* struct _warnings_runtime_state */
+
+/* ceval state */
+
+struct _pending_calls {
+ PyThread_type_lock lock;
+ /* Request for running pending calls. */
+ _Py_atomic_int calls_to_do;
+ /* Request for looking at the `async_exc` field of the current
+ thread state.
+ Guarded by the GIL. */
+ int async_exc;
+#define NPENDINGCALLS 32
+ struct {
+ int (*func)(void *);
+ void *arg;
+ } calls[NPENDINGCALLS];
+ int first;
+ int last;
+};
+
+struct _ceval_state {
+ int recursion_limit;
+ /* Records whether tracing is on for any thread. Counts the number
+ of threads for which tstate->c_tracefunc is non-NULL, so if the
+ value is 0, we know we don't have to check this thread's
+ c_tracefunc. This speeds up the if statement in
+ _PyEval_EvalFrameDefault() after fast_next_opcode. */
+ int tracing_possible;
+ /* This single variable consolidates all requests to break out of
+ the fast path in the eval loop. */
+ _Py_atomic_int eval_breaker;
+ /* Request for dropping the GIL */
+ _Py_atomic_int gil_drop_request;
+ struct _pending_calls pending;
+};
+
+/* fs_codec.encoding is initialized to NULL.
+ Later, it is set to a non-NULL string by _PyUnicode_InitEncodings(). */
+struct _Py_unicode_fs_codec {
+ char *encoding; // Filesystem encoding (encoded to UTF-8)
+ int utf8; // encoding=="utf-8"?
+ char *errors; // Filesystem errors (encoded to UTF-8)
+ _Py_error_handler error_handler;
+};
+
+struct _Py_unicode_state {
+ struct _Py_unicode_fs_codec fs_codec;
+};
+
+
+/* interpreter state */
+
+#define _PY_NSMALLPOSINTS 257
+#define _PY_NSMALLNEGINTS 5
+
+// The PyInterpreterState typedef is in Include/pystate.h.
+struct _is {
+
+ struct _is *next;
+ struct _ts *tstate_head;
+
+ /* Reference to the _PyRuntime global variable. This field exists
+ to not have to pass runtime in addition to tstate to a function.
+ Get runtime from tstate: tstate->interp->runtime. */
+ struct pyruntimestate *runtime;
+
+ int64_t id;
+ int64_t id_refcount;
+ int requires_idref;
+ PyThread_type_lock id_mutex;
+
+ int finalizing;
+
+ struct _ceval_state ceval;
+ struct _gc_runtime_state gc;
+
+ PyObject *modules;
+ PyObject *modules_by_index;
+ PyObject *sysdict;
+ PyObject *builtins;
+ PyObject *importlib;
+
+ /* Used in Modules/_threadmodule.c. */
+ long num_threads;
+ /* Support for runtime thread stack size tuning.
+ A value of 0 means using the platform's default stack size
+ or the size specified by the THREAD_STACK_SIZE macro. */
+ /* Used in Python/thread.c. */
+ size_t pythread_stacksize;
+
+ PyObject *codec_search_path;
+ PyObject *codec_search_cache;
+ PyObject *codec_error_registry;
+ int codecs_initialized;
+
+ struct _Py_unicode_state unicode;
+
+ PyConfig config;
+#ifdef HAVE_DLOPEN
+ int dlopenflags;
+#endif
+
+ PyObject *dict; /* Stores per-interpreter state */
+
+ PyObject *builtins_copy;
+ PyObject *import_func;
+ /* Initialized to PyEval_EvalFrameDefault(). */
+ _PyFrameEvalFunction eval_frame;
+
+ Py_ssize_t co_extra_user_count;
+ freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS];
+
+#ifdef HAVE_FORK
+ PyObject *before_forkers;
+ PyObject *after_forkers_parent;
+ PyObject *after_forkers_child;
+#endif
+ /* AtExit module */
+ void (*pyexitfunc)(PyObject *);
+ PyObject *pyexitmodule;
+
+ uint64_t tstate_next_unique_id;
+
+ struct _warnings_runtime_state warnings;
+
+ PyObject *audit_hooks;
+
+ struct {
+ struct {
+ int level;
+ int atbol;
+ } listnode;
+ } parser;
+
+#if _PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS > 0
+ /* Small integers are preallocated in this array so that they
+ can be shared.
+ The integers that are preallocated are those in the range
+ -_PY_NSMALLNEGINTS (inclusive) to _PY_NSMALLPOSINTS (not inclusive).
+ */
+ PyLongObject* small_ints[_PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS];
+#endif
+};
+
+/* Used by _PyImport_Cleanup() */
+extern void _PyInterpreterState_ClearModules(PyInterpreterState *interp);
+
+extern PyStatus _PyInterpreterState_SetConfig(
+ PyInterpreterState *interp,
+ const PyConfig *config);
+
+
+
+/* cross-interpreter data registry */
+
+/* For now we use a global registry of shareable classes. An
+ alternative would be to add a tp_* slot for a class's
+ crossinterpdatafunc. It would be simpler and more efficient. */
+
+struct _xidregitem;
+
+struct _xidregitem {
+ PyTypeObject *cls;
+ crossinterpdatafunc getdata;
+ struct _xidregitem *next;
+};
+
+PyAPI_FUNC(struct _is*) _PyInterpreterState_LookUpID(int64_t);
+
+PyAPI_FUNC(int) _PyInterpreterState_IDInitref(struct _is *);
+PyAPI_FUNC(void) _PyInterpreterState_IDIncref(struct _is *);
+PyAPI_FUNC(void) _PyInterpreterState_IDDecref(struct _is *);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_INTERP_H */
+
diff --git a/contrib/tools/python3/src/Include/internal/pycore_object.h b/contrib/tools/python3/src/Include/internal/pycore_object.h
index 910421b728..c66ff12d7e 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_object.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_object.h
@@ -1,123 +1,123 @@
-#ifndef Py_INTERNAL_OBJECT_H
-#define Py_INTERNAL_OBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
-#include "pycore_interp.h" // PyInterpreterState.gc
-#include "pycore_pystate.h" // _PyThreadState_GET()
-
-PyAPI_FUNC(int) _PyType_CheckConsistency(PyTypeObject *type);
-PyAPI_FUNC(int) _PyDict_CheckConsistency(PyObject *mp, int check_content);
-
-/* Only private in Python 3.10 and 3.9.8+; public in 3.11 */
-extern PyObject *_PyType_GetQualName(PyTypeObject *type);
-
-/* Tell the GC to track this object.
- *
- * NB: While the object is tracked by the collector, it must be safe to call the
- * ob_traverse method.
- *
- * Internal note: interp->gc.generation0->_gc_prev doesn't have any bit flags
- * because it's not object header. So we don't use _PyGCHead_PREV() and
- * _PyGCHead_SET_PREV() for it to avoid unnecessary bitwise operations.
- *
- * The PyObject_GC_Track() function is the public version of this macro.
- */
-static inline void _PyObject_GC_TRACK_impl(const char *filename, int lineno,
- PyObject *op)
-{
- _PyObject_ASSERT_FROM(op, !_PyObject_GC_IS_TRACKED(op),
- "object already tracked by the garbage collector",
- filename, lineno, "_PyObject_GC_TRACK");
-
- PyGC_Head *gc = _Py_AS_GC(op);
- _PyObject_ASSERT_FROM(op,
- (gc->_gc_prev & _PyGC_PREV_MASK_COLLECTING) == 0,
- "object is in generation which is garbage collected",
- filename, lineno, "_PyObject_GC_TRACK");
-
- PyThreadState *tstate = _PyThreadState_GET();
- PyGC_Head *generation0 = tstate->interp->gc.generation0;
- PyGC_Head *last = (PyGC_Head*)(generation0->_gc_prev);
- _PyGCHead_SET_NEXT(last, gc);
- _PyGCHead_SET_PREV(gc, last);
- _PyGCHead_SET_NEXT(gc, generation0);
- generation0->_gc_prev = (uintptr_t)gc;
-}
-
-#define _PyObject_GC_TRACK(op) \
- _PyObject_GC_TRACK_impl(__FILE__, __LINE__, _PyObject_CAST(op))
-
-/* Tell the GC to stop tracking this object.
- *
- * Internal note: This may be called while GC. So _PyGC_PREV_MASK_COLLECTING
- * must be cleared. But _PyGC_PREV_MASK_FINALIZED bit is kept.
- *
- * The object must be tracked by the GC.
- *
- * The PyObject_GC_UnTrack() function is the public version of this macro.
- */
-static inline void _PyObject_GC_UNTRACK_impl(const char *filename, int lineno,
- PyObject *op)
-{
- _PyObject_ASSERT_FROM(op, _PyObject_GC_IS_TRACKED(op),
- "object not tracked by the garbage collector",
- filename, lineno, "_PyObject_GC_UNTRACK");
-
- PyGC_Head *gc = _Py_AS_GC(op);
- PyGC_Head *prev = _PyGCHead_PREV(gc);
- PyGC_Head *next = _PyGCHead_NEXT(gc);
- _PyGCHead_SET_NEXT(prev, next);
- _PyGCHead_SET_PREV(next, prev);
- gc->_gc_next = 0;
- gc->_gc_prev &= _PyGC_PREV_MASK_FINALIZED;
-}
-
-#define _PyObject_GC_UNTRACK(op) \
- _PyObject_GC_UNTRACK_impl(__FILE__, __LINE__, _PyObject_CAST(op))
-
-#ifdef Py_REF_DEBUG
-extern void _PyDebug_PrintTotalRefs(void);
-#endif
-
-#ifdef Py_TRACE_REFS
-extern void _Py_AddToAllObjects(PyObject *op, int force);
-extern void _Py_PrintReferences(FILE *);
-extern void _Py_PrintReferenceAddresses(FILE *);
-#endif
-
-static inline PyObject **
-_PyObject_GET_WEAKREFS_LISTPTR(PyObject *op)
-{
- Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset;
- return (PyObject **)((char *)op + offset);
-}
-
-// Fast inlined version of PyType_HasFeature()
-static inline int
-_PyType_HasFeature(PyTypeObject *type, unsigned long feature) {
- return ((type->tp_flags & feature) != 0);
-}
-
-// Fast inlined version of PyObject_IS_GC()
-static inline int
-_PyObject_IS_GC(PyObject *obj)
-{
- return (PyType_IS_GC(Py_TYPE(obj))
- && (Py_TYPE(obj)->tp_is_gc == NULL
- || Py_TYPE(obj)->tp_is_gc(obj)));
-}
-
-// Fast inlined version of PyType_IS_GC()
-#define _PyType_IS_GC(t) _PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_OBJECT_H */
+#ifndef Py_INTERNAL_OBJECT_H
+#define Py_INTERNAL_OBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
+#include "pycore_interp.h" // PyInterpreterState.gc
+#include "pycore_pystate.h" // _PyThreadState_GET()
+
+PyAPI_FUNC(int) _PyType_CheckConsistency(PyTypeObject *type);
+PyAPI_FUNC(int) _PyDict_CheckConsistency(PyObject *mp, int check_content);
+
+/* Only private in Python 3.10 and 3.9.8+; public in 3.11 */
+extern PyObject *_PyType_GetQualName(PyTypeObject *type);
+
+/* Tell the GC to track this object.
+ *
+ * NB: While the object is tracked by the collector, it must be safe to call the
+ * ob_traverse method.
+ *
+ * Internal note: interp->gc.generation0->_gc_prev doesn't have any bit flags
+ * because it's not object header. So we don't use _PyGCHead_PREV() and
+ * _PyGCHead_SET_PREV() for it to avoid unnecessary bitwise operations.
+ *
+ * The PyObject_GC_Track() function is the public version of this macro.
+ */
+static inline void _PyObject_GC_TRACK_impl(const char *filename, int lineno,
+ PyObject *op)
+{
+ _PyObject_ASSERT_FROM(op, !_PyObject_GC_IS_TRACKED(op),
+ "object already tracked by the garbage collector",
+ filename, lineno, "_PyObject_GC_TRACK");
+
+ PyGC_Head *gc = _Py_AS_GC(op);
+ _PyObject_ASSERT_FROM(op,
+ (gc->_gc_prev & _PyGC_PREV_MASK_COLLECTING) == 0,
+ "object is in generation which is garbage collected",
+ filename, lineno, "_PyObject_GC_TRACK");
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyGC_Head *generation0 = tstate->interp->gc.generation0;
+ PyGC_Head *last = (PyGC_Head*)(generation0->_gc_prev);
+ _PyGCHead_SET_NEXT(last, gc);
+ _PyGCHead_SET_PREV(gc, last);
+ _PyGCHead_SET_NEXT(gc, generation0);
+ generation0->_gc_prev = (uintptr_t)gc;
+}
+
+#define _PyObject_GC_TRACK(op) \
+ _PyObject_GC_TRACK_impl(__FILE__, __LINE__, _PyObject_CAST(op))
+
+/* Tell the GC to stop tracking this object.
+ *
+ * Internal note: This may be called while GC. So _PyGC_PREV_MASK_COLLECTING
+ * must be cleared. But _PyGC_PREV_MASK_FINALIZED bit is kept.
+ *
+ * The object must be tracked by the GC.
+ *
+ * The PyObject_GC_UnTrack() function is the public version of this macro.
+ */
+static inline void _PyObject_GC_UNTRACK_impl(const char *filename, int lineno,
+ PyObject *op)
+{
+ _PyObject_ASSERT_FROM(op, _PyObject_GC_IS_TRACKED(op),
+ "object not tracked by the garbage collector",
+ filename, lineno, "_PyObject_GC_UNTRACK");
+
+ PyGC_Head *gc = _Py_AS_GC(op);
+ PyGC_Head *prev = _PyGCHead_PREV(gc);
+ PyGC_Head *next = _PyGCHead_NEXT(gc);
+ _PyGCHead_SET_NEXT(prev, next);
+ _PyGCHead_SET_PREV(next, prev);
+ gc->_gc_next = 0;
+ gc->_gc_prev &= _PyGC_PREV_MASK_FINALIZED;
+}
+
+#define _PyObject_GC_UNTRACK(op) \
+ _PyObject_GC_UNTRACK_impl(__FILE__, __LINE__, _PyObject_CAST(op))
+
+#ifdef Py_REF_DEBUG
+extern void _PyDebug_PrintTotalRefs(void);
+#endif
+
+#ifdef Py_TRACE_REFS
+extern void _Py_AddToAllObjects(PyObject *op, int force);
+extern void _Py_PrintReferences(FILE *);
+extern void _Py_PrintReferenceAddresses(FILE *);
+#endif
+
+static inline PyObject **
+_PyObject_GET_WEAKREFS_LISTPTR(PyObject *op)
+{
+ Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset;
+ return (PyObject **)((char *)op + offset);
+}
+
+// Fast inlined version of PyType_HasFeature()
+static inline int
+_PyType_HasFeature(PyTypeObject *type, unsigned long feature) {
+ return ((type->tp_flags & feature) != 0);
+}
+
+// Fast inlined version of PyObject_IS_GC()
+static inline int
+_PyObject_IS_GC(PyObject *obj)
+{
+ return (PyType_IS_GC(Py_TYPE(obj))
+ && (Py_TYPE(obj)->tp_is_gc == NULL
+ || Py_TYPE(obj)->tp_is_gc(obj)));
+}
+
+// Fast inlined version of PyType_IS_GC()
+#define _PyType_IS_GC(t) _PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC)
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_OBJECT_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_pathconfig.h b/contrib/tools/python3/src/Include/internal/pycore_pathconfig.h
index 834a76520a..42d61b1ca2 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_pathconfig.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_pathconfig.h
@@ -1,72 +1,72 @@
-#ifndef Py_INTERNAL_PATHCONFIG_H
-#define Py_INTERNAL_PATHCONFIG_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-typedef struct _PyPathConfig {
- /* Full path to the Python program */
- wchar_t *program_full_path;
- wchar_t *prefix;
- wchar_t *exec_prefix;
- /* Set by Py_SetPath(), or computed by _PyConfig_InitPathConfig() */
- wchar_t *module_search_path;
- /* Python program name */
- wchar_t *program_name;
- /* Set by Py_SetPythonHome() or PYTHONHOME environment variable */
- wchar_t *home;
-#ifdef MS_WINDOWS
- /* isolated and site_import are used to set Py_IsolatedFlag and
- Py_NoSiteFlag flags on Windows in read_pth_file(). These fields
- are ignored when their value are equal to -1 (unset). */
- int isolated;
- int site_import;
- /* Set when a venv is detected */
- wchar_t *base_executable;
-#endif
-} _PyPathConfig;
-
-#ifdef MS_WINDOWS
-# define _PyPathConfig_INIT \
- {.module_search_path = NULL, \
- .isolated = -1, \
- .site_import = -1}
-#else
-# define _PyPathConfig_INIT \
- {.module_search_path = NULL}
-#endif
-/* Note: _PyPathConfig_INIT sets other fields to 0/NULL */
-
-PyAPI_DATA(_PyPathConfig) _Py_path_config;
-#ifdef MS_WINDOWS
-PyAPI_DATA(wchar_t*) _Py_dll_path;
-#endif
-
-extern void _PyPathConfig_ClearGlobal(void);
-
-extern PyStatus _PyPathConfig_Calculate(
- _PyPathConfig *pathconfig,
- const PyConfig *config);
-extern int _PyPathConfig_ComputeSysPath0(
- const PyWideStringList *argv,
- PyObject **path0);
-extern PyStatus _Py_FindEnvConfigValue(
- FILE *env_file,
- const wchar_t *key,
- wchar_t **value_p);
-
-#ifdef MS_WINDOWS
-extern wchar_t* _Py_GetDLLPath(void);
-#endif
-
-extern PyStatus _PyConfig_WritePathConfig(const PyConfig *config);
-extern void _Py_DumpPathConfig(PyThreadState *tstate);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_PATHCONFIG_H */
+#ifndef Py_INTERNAL_PATHCONFIG_H
+#define Py_INTERNAL_PATHCONFIG_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+typedef struct _PyPathConfig {
+ /* Full path to the Python program */
+ wchar_t *program_full_path;
+ wchar_t *prefix;
+ wchar_t *exec_prefix;
+ /* Set by Py_SetPath(), or computed by _PyConfig_InitPathConfig() */
+ wchar_t *module_search_path;
+ /* Python program name */
+ wchar_t *program_name;
+ /* Set by Py_SetPythonHome() or PYTHONHOME environment variable */
+ wchar_t *home;
+#ifdef MS_WINDOWS
+ /* isolated and site_import are used to set Py_IsolatedFlag and
+ Py_NoSiteFlag flags on Windows in read_pth_file(). These fields
+ are ignored when their value are equal to -1 (unset). */
+ int isolated;
+ int site_import;
+ /* Set when a venv is detected */
+ wchar_t *base_executable;
+#endif
+} _PyPathConfig;
+
+#ifdef MS_WINDOWS
+# define _PyPathConfig_INIT \
+ {.module_search_path = NULL, \
+ .isolated = -1, \
+ .site_import = -1}
+#else
+# define _PyPathConfig_INIT \
+ {.module_search_path = NULL}
+#endif
+/* Note: _PyPathConfig_INIT sets other fields to 0/NULL */
+
+PyAPI_DATA(_PyPathConfig) _Py_path_config;
+#ifdef MS_WINDOWS
+PyAPI_DATA(wchar_t*) _Py_dll_path;
+#endif
+
+extern void _PyPathConfig_ClearGlobal(void);
+
+extern PyStatus _PyPathConfig_Calculate(
+ _PyPathConfig *pathconfig,
+ const PyConfig *config);
+extern int _PyPathConfig_ComputeSysPath0(
+ const PyWideStringList *argv,
+ PyObject **path0);
+extern PyStatus _Py_FindEnvConfigValue(
+ FILE *env_file,
+ const wchar_t *key,
+ wchar_t **value_p);
+
+#ifdef MS_WINDOWS
+extern wchar_t* _Py_GetDLLPath(void);
+#endif
+
+extern PyStatus _PyConfig_WritePathConfig(const PyConfig *config);
+extern void _Py_DumpPathConfig(PyThreadState *tstate);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_PATHCONFIG_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_pyerrors.h b/contrib/tools/python3/src/Include/internal/pycore_pyerrors.h
index 226625ac28..2cf1160afc 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_pyerrors.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_pyerrors.h
@@ -1,90 +1,90 @@
-#ifndef Py_INTERNAL_PYERRORS_H
-#define Py_INTERNAL_PYERRORS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
-{
- assert(tstate != NULL);
- return tstate->curexc_type;
-}
-
-static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)
-{
- PyObject *t, *v, *tb;
- t = exc_state->exc_type;
- v = exc_state->exc_value;
- tb = exc_state->exc_traceback;
- exc_state->exc_type = NULL;
- exc_state->exc_value = NULL;
- exc_state->exc_traceback = NULL;
- Py_XDECREF(t);
- Py_XDECREF(v);
- Py_XDECREF(tb);
-}
-
-
-PyAPI_FUNC(void) _PyErr_Fetch(
- PyThreadState *tstate,
- PyObject **type,
- PyObject **value,
- PyObject **traceback);
-
-PyAPI_FUNC(int) _PyErr_ExceptionMatches(
- PyThreadState *tstate,
- PyObject *exc);
-
-PyAPI_FUNC(void) _PyErr_Restore(
- PyThreadState *tstate,
- PyObject *type,
- PyObject *value,
- PyObject *traceback);
-
-PyAPI_FUNC(void) _PyErr_SetObject(
- PyThreadState *tstate,
- PyObject *type,
- PyObject *value);
-
-PyAPI_FUNC(void) _PyErr_ChainStackItem(
- _PyErr_StackItem *exc_info);
-
-PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
-
-PyAPI_FUNC(void) _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
-
-PyAPI_FUNC(PyObject *) _PyErr_NoMemory(PyThreadState *tstate);
-
-PyAPI_FUNC(void) _PyErr_SetString(
- PyThreadState *tstate,
- PyObject *exception,
- const char *string);
-
-PyAPI_FUNC(PyObject *) _PyErr_Format(
- PyThreadState *tstate,
- PyObject *exception,
- const char *format,
- ...);
-
-PyAPI_FUNC(void) _PyErr_NormalizeException(
- PyThreadState *tstate,
- PyObject **exc,
- PyObject **val,
- PyObject **tb);
-
-PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
- PyThreadState *tstate,
- PyObject *exception,
- const char *format,
- ...);
-
-PyAPI_FUNC(int) _PyErr_CheckSignalsTstate(PyThreadState *tstate);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_PYERRORS_H */
+#ifndef Py_INTERNAL_PYERRORS_H
+#define Py_INTERNAL_PYERRORS_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
+{
+ assert(tstate != NULL);
+ return tstate->curexc_type;
+}
+
+static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)
+{
+ PyObject *t, *v, *tb;
+ t = exc_state->exc_type;
+ v = exc_state->exc_value;
+ tb = exc_state->exc_traceback;
+ exc_state->exc_type = NULL;
+ exc_state->exc_value = NULL;
+ exc_state->exc_traceback = NULL;
+ Py_XDECREF(t);
+ Py_XDECREF(v);
+ Py_XDECREF(tb);
+}
+
+
+PyAPI_FUNC(void) _PyErr_Fetch(
+ PyThreadState *tstate,
+ PyObject **type,
+ PyObject **value,
+ PyObject **traceback);
+
+PyAPI_FUNC(int) _PyErr_ExceptionMatches(
+ PyThreadState *tstate,
+ PyObject *exc);
+
+PyAPI_FUNC(void) _PyErr_Restore(
+ PyThreadState *tstate,
+ PyObject *type,
+ PyObject *value,
+ PyObject *traceback);
+
+PyAPI_FUNC(void) _PyErr_SetObject(
+ PyThreadState *tstate,
+ PyObject *type,
+ PyObject *value);
+
+PyAPI_FUNC(void) _PyErr_ChainStackItem(
+ _PyErr_StackItem *exc_info);
+
+PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
+
+PyAPI_FUNC(void) _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
+
+PyAPI_FUNC(PyObject *) _PyErr_NoMemory(PyThreadState *tstate);
+
+PyAPI_FUNC(void) _PyErr_SetString(
+ PyThreadState *tstate,
+ PyObject *exception,
+ const char *string);
+
+PyAPI_FUNC(PyObject *) _PyErr_Format(
+ PyThreadState *tstate,
+ PyObject *exception,
+ const char *format,
+ ...);
+
+PyAPI_FUNC(void) _PyErr_NormalizeException(
+ PyThreadState *tstate,
+ PyObject **exc,
+ PyObject **val,
+ PyObject **tb);
+
+PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
+ PyThreadState *tstate,
+ PyObject *exception,
+ const char *format,
+ ...);
+
+PyAPI_FUNC(int) _PyErr_CheckSignalsTstate(PyThreadState *tstate);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_PYERRORS_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_pyhash.h b/contrib/tools/python3/src/Include/internal/pycore_pyhash.h
index 0536297851..a229f8d8b7 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_pyhash.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_pyhash.h
@@ -1,10 +1,10 @@
-#ifndef Py_INTERNAL_HASH_H
-#define Py_INTERNAL_HASH_H
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-uint64_t _Py_KeyedHash(uint64_t, const char *, Py_ssize_t);
-
-#endif
+#ifndef Py_INTERNAL_HASH_H
+#define Py_INTERNAL_HASH_H
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+uint64_t _Py_KeyedHash(uint64_t, const char *, Py_ssize_t);
+
+#endif
diff --git a/contrib/tools/python3/src/Include/internal/pycore_pylifecycle.h b/contrib/tools/python3/src/Include/internal/pycore_pylifecycle.h
index 359b49f883..50ab645fc7 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_pylifecycle.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_pylifecycle.h
@@ -1,114 +1,114 @@
-#ifndef Py_INTERNAL_LIFECYCLE_H
-#define Py_INTERNAL_LIFECYCLE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/* Forward declarations */
-struct _PyArgv;
-struct pyruntimestate;
-
-/* True if the main interpreter thread exited due to an unhandled
- * KeyboardInterrupt exception, suggesting the user pressed ^C. */
-PyAPI_DATA(int) _Py_UnhandledKeyboardInterrupt;
-
-extern int _Py_SetFileSystemEncoding(
- const char *encoding,
- const char *errors);
-extern void _Py_ClearFileSystemEncoding(void);
-extern PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate);
-#ifdef MS_WINDOWS
-extern int _PyUnicode_EnableLegacyWindowsFSEncoding(void);
-#endif
-
-PyAPI_FUNC(void) _Py_ClearStandardStreamEncoding(void);
-
-PyAPI_FUNC(int) _Py_IsLocaleCoercionTarget(const char *ctype_loc);
-
-/* Various one-time initializers */
-
-extern PyStatus _PyUnicode_Init(void);
-extern int _PyStructSequence_Init(void);
-extern int _PyLong_Init(PyThreadState *tstate);
-extern PyStatus _PyFaulthandler_Init(int enable);
-extern int _PyTraceMalloc_Init(int enable);
-extern PyObject * _PyBuiltin_Init(PyThreadState *tstate);
-extern PyStatus _PySys_Create(
- PyThreadState *tstate,
- PyObject **sysmod_p);
-extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options);
-extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config);
-extern int _PySys_InitMain(PyThreadState *tstate);
-extern PyStatus _PyExc_Init(void);
-extern PyStatus _PyErr_Init(void);
-extern PyStatus _PyBuiltins_AddExceptions(PyObject * bltinmod);
-extern PyStatus _PyImportHooks_Init(PyThreadState *tstate);
-extern int _PyFloat_Init(void);
-extern PyStatus _Py_HashRandomization_Init(const PyConfig *);
-
-extern PyStatus _PyTypes_Init(void);
-extern PyStatus _PyTypes_InitSlotDefs(void);
-extern PyStatus _PyImportZip_Init(PyThreadState *tstate);
-extern PyStatus _PyGC_Init(PyThreadState *tstate);
-
-
-/* Various internal finalizers */
-
-extern void _PyFrame_Fini(void);
-extern void _PyDict_Fini(void);
-extern void _PyTuple_Fini(void);
-extern void _PyList_Fini(void);
-extern void _PySet_Fini(void);
-extern void _PyBytes_Fini(void);
-extern void _PyFloat_Fini(void);
-extern void _PySlice_Fini(void);
-extern void _PyAsyncGen_Fini(void);
-
-extern int _PySignal_Init(int install_signal_handlers);
-extern void PyOS_FiniInterrupts(void);
-
-extern void _PyExc_Fini(void);
-extern void _PyImport_Fini(void);
-extern void _PyImport_Fini2(void);
-extern void _PyGC_Fini(PyThreadState *tstate);
-extern void _PyType_Fini(void);
-extern void _Py_HashRandomization_Fini(void);
-extern void _PyUnicode_Fini(PyThreadState *tstate);
-extern void _PyLong_Fini(PyThreadState *tstate);
-extern void _PyFaulthandler_Fini(void);
-extern void _PyHash_Fini(void);
-extern void _PyTraceMalloc_Fini(void);
-extern void _PyWarnings_Fini(PyInterpreterState *interp);
-extern void _PyAST_Fini(void);
-
-extern PyStatus _PyGILState_Init(PyThreadState *tstate);
-extern void _PyGILState_Fini(PyThreadState *tstate);
-
-PyAPI_FUNC(void) _PyGC_DumpShutdownStats(PyThreadState *tstate);
-
-PyAPI_FUNC(PyStatus) _Py_PreInitializeFromPyArgv(
- const PyPreConfig *src_config,
- const struct _PyArgv *args);
-PyAPI_FUNC(PyStatus) _Py_PreInitializeFromConfig(
- const PyConfig *config,
- const struct _PyArgv *args);
-
-
-PyAPI_FUNC(int) _Py_HandleSystemExit(int *exitcode_p);
-
-PyAPI_FUNC(PyObject*) _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable);
-
-PyAPI_FUNC(void) _PyErr_Print(PyThreadState *tstate);
-PyAPI_FUNC(void) _PyErr_Display(PyObject *file, PyObject *exception,
- PyObject *value, PyObject *tb);
-
-PyAPI_FUNC(void) _PyThreadState_DeleteCurrent(PyThreadState *tstate);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_LIFECYCLE_H */
+#ifndef Py_INTERNAL_LIFECYCLE_H
+#define Py_INTERNAL_LIFECYCLE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/* Forward declarations */
+struct _PyArgv;
+struct pyruntimestate;
+
+/* True if the main interpreter thread exited due to an unhandled
+ * KeyboardInterrupt exception, suggesting the user pressed ^C. */
+PyAPI_DATA(int) _Py_UnhandledKeyboardInterrupt;
+
+extern int _Py_SetFileSystemEncoding(
+ const char *encoding,
+ const char *errors);
+extern void _Py_ClearFileSystemEncoding(void);
+extern PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate);
+#ifdef MS_WINDOWS
+extern int _PyUnicode_EnableLegacyWindowsFSEncoding(void);
+#endif
+
+PyAPI_FUNC(void) _Py_ClearStandardStreamEncoding(void);
+
+PyAPI_FUNC(int) _Py_IsLocaleCoercionTarget(const char *ctype_loc);
+
+/* Various one-time initializers */
+
+extern PyStatus _PyUnicode_Init(void);
+extern int _PyStructSequence_Init(void);
+extern int _PyLong_Init(PyThreadState *tstate);
+extern PyStatus _PyFaulthandler_Init(int enable);
+extern int _PyTraceMalloc_Init(int enable);
+extern PyObject * _PyBuiltin_Init(PyThreadState *tstate);
+extern PyStatus _PySys_Create(
+ PyThreadState *tstate,
+ PyObject **sysmod_p);
+extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options);
+extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config);
+extern int _PySys_InitMain(PyThreadState *tstate);
+extern PyStatus _PyExc_Init(void);
+extern PyStatus _PyErr_Init(void);
+extern PyStatus _PyBuiltins_AddExceptions(PyObject * bltinmod);
+extern PyStatus _PyImportHooks_Init(PyThreadState *tstate);
+extern int _PyFloat_Init(void);
+extern PyStatus _Py_HashRandomization_Init(const PyConfig *);
+
+extern PyStatus _PyTypes_Init(void);
+extern PyStatus _PyTypes_InitSlotDefs(void);
+extern PyStatus _PyImportZip_Init(PyThreadState *tstate);
+extern PyStatus _PyGC_Init(PyThreadState *tstate);
+
+
+/* Various internal finalizers */
+
+extern void _PyFrame_Fini(void);
+extern void _PyDict_Fini(void);
+extern void _PyTuple_Fini(void);
+extern void _PyList_Fini(void);
+extern void _PySet_Fini(void);
+extern void _PyBytes_Fini(void);
+extern void _PyFloat_Fini(void);
+extern void _PySlice_Fini(void);
+extern void _PyAsyncGen_Fini(void);
+
+extern int _PySignal_Init(int install_signal_handlers);
+extern void PyOS_FiniInterrupts(void);
+
+extern void _PyExc_Fini(void);
+extern void _PyImport_Fini(void);
+extern void _PyImport_Fini2(void);
+extern void _PyGC_Fini(PyThreadState *tstate);
+extern void _PyType_Fini(void);
+extern void _Py_HashRandomization_Fini(void);
+extern void _PyUnicode_Fini(PyThreadState *tstate);
+extern void _PyLong_Fini(PyThreadState *tstate);
+extern void _PyFaulthandler_Fini(void);
+extern void _PyHash_Fini(void);
+extern void _PyTraceMalloc_Fini(void);
+extern void _PyWarnings_Fini(PyInterpreterState *interp);
+extern void _PyAST_Fini(void);
+
+extern PyStatus _PyGILState_Init(PyThreadState *tstate);
+extern void _PyGILState_Fini(PyThreadState *tstate);
+
+PyAPI_FUNC(void) _PyGC_DumpShutdownStats(PyThreadState *tstate);
+
+PyAPI_FUNC(PyStatus) _Py_PreInitializeFromPyArgv(
+ const PyPreConfig *src_config,
+ const struct _PyArgv *args);
+PyAPI_FUNC(PyStatus) _Py_PreInitializeFromConfig(
+ const PyConfig *config,
+ const struct _PyArgv *args);
+
+
+PyAPI_FUNC(int) _Py_HandleSystemExit(int *exitcode_p);
+
+PyAPI_FUNC(PyObject*) _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable);
+
+PyAPI_FUNC(void) _PyErr_Print(PyThreadState *tstate);
+PyAPI_FUNC(void) _PyErr_Display(PyObject *file, PyObject *exception,
+ PyObject *value, PyObject *tb);
+
+PyAPI_FUNC(void) _PyThreadState_DeleteCurrent(PyThreadState *tstate);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_LIFECYCLE_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_pymem.h b/contrib/tools/python3/src/Include/internal/pycore_pymem.h
index f6c5628277..9bcb5f5efd 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_pymem.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_pymem.h
@@ -1,104 +1,104 @@
-#ifndef Py_INTERNAL_PYMEM_H
-#define Py_INTERNAL_PYMEM_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "pymem.h" // PyMemAllocatorName
-
-
-/* Set the memory allocator of the specified domain to the default.
- Save the old allocator into *old_alloc if it's non-NULL.
- Return on success, or return -1 if the domain is unknown. */
-PyAPI_FUNC(int) _PyMem_SetDefaultAllocator(
- PyMemAllocatorDomain domain,
- PyMemAllocatorEx *old_alloc);
-
-/* Special bytes broadcast into debug memory blocks at appropriate times.
- Strings of these are unlikely to be valid addresses, floats, ints or
- 7-bit ASCII.
-
- - PYMEM_CLEANBYTE: clean (newly allocated) memory
- - PYMEM_DEADBYTE dead (newly freed) memory
- - PYMEM_FORBIDDENBYTE: untouchable bytes at each end of a block
-
- Byte patterns 0xCB, 0xDB and 0xFB have been replaced with 0xCD, 0xDD and
- 0xFD to use the same values than Windows CRT debug malloc() and free().
- If modified, _PyMem_IsPtrFreed() should be updated as well. */
-#define PYMEM_CLEANBYTE 0xCD
-#define PYMEM_DEADBYTE 0xDD
-#define PYMEM_FORBIDDENBYTE 0xFD
-
-/* Heuristic checking if a pointer value is newly allocated
- (uninitialized), newly freed or NULL (is equal to zero).
-
- The pointer is not dereferenced, only the pointer value is checked.
-
- The heuristic relies on the debug hooks on Python memory allocators which
- fills newly allocated memory with CLEANBYTE (0xCD) and newly freed memory
- with DEADBYTE (0xDD). Detect also "untouchable bytes" marked
- with FORBIDDENBYTE (0xFD). */
-static inline int _PyMem_IsPtrFreed(const void *ptr)
-{
- uintptr_t value = (uintptr_t)ptr;
-#if SIZEOF_VOID_P == 8
- return (value == 0
- || value == (uintptr_t)0xCDCDCDCDCDCDCDCD
- || value == (uintptr_t)0xDDDDDDDDDDDDDDDD
- || value == (uintptr_t)0xFDFDFDFDFDFDFDFD);
-#elif SIZEOF_VOID_P == 4
- return (value == 0
- || value == (uintptr_t)0xCDCDCDCD
- || value == (uintptr_t)0xDDDDDDDD
- || value == (uintptr_t)0xFDFDFDFD);
-#else
-# error "unknown pointer size"
-#endif
-}
-
-PyAPI_FUNC(int) _PyMem_GetAllocatorName(
- const char *name,
- PyMemAllocatorName *allocator);
-
-/* Configure the Python memory allocators.
- Pass PYMEM_ALLOCATOR_DEFAULT to use default allocators.
- PYMEM_ALLOCATOR_NOT_SET does nothing. */
-PyAPI_FUNC(int) _PyMem_SetupAllocators(PyMemAllocatorName allocator);
-
-/* bpo-35053: Expose _Py_tracemalloc_config for _Py_NewReference()
- which access directly _Py_tracemalloc_config.tracing for best
- performances. */
-struct _PyTraceMalloc_Config {
- /* Module initialized?
- Variable protected by the GIL */
- enum {
- TRACEMALLOC_NOT_INITIALIZED,
- TRACEMALLOC_INITIALIZED,
- TRACEMALLOC_FINALIZED
- } initialized;
-
- /* Is tracemalloc tracing memory allocations?
- Variable protected by the GIL */
- int tracing;
-
- /* limit of the number of frames in a traceback, 1 by default.
- Variable protected by the GIL. */
- int max_nframe;
-};
-
-#define _PyTraceMalloc_Config_INIT \
- {.initialized = TRACEMALLOC_NOT_INITIALIZED, \
- .tracing = 0, \
- .max_nframe = 1}
-
-PyAPI_DATA(struct _PyTraceMalloc_Config) _Py_tracemalloc_config;
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_PYMEM_H */
+#ifndef Py_INTERNAL_PYMEM_H
+#define Py_INTERNAL_PYMEM_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "pymem.h" // PyMemAllocatorName
+
+
+/* Set the memory allocator of the specified domain to the default.
+ Save the old allocator into *old_alloc if it's non-NULL.
+ Return on success, or return -1 if the domain is unknown. */
+PyAPI_FUNC(int) _PyMem_SetDefaultAllocator(
+ PyMemAllocatorDomain domain,
+ PyMemAllocatorEx *old_alloc);
+
+/* Special bytes broadcast into debug memory blocks at appropriate times.
+ Strings of these are unlikely to be valid addresses, floats, ints or
+ 7-bit ASCII.
+
+ - PYMEM_CLEANBYTE: clean (newly allocated) memory
+ - PYMEM_DEADBYTE dead (newly freed) memory
+ - PYMEM_FORBIDDENBYTE: untouchable bytes at each end of a block
+
+ Byte patterns 0xCB, 0xDB and 0xFB have been replaced with 0xCD, 0xDD and
+ 0xFD to use the same values than Windows CRT debug malloc() and free().
+ If modified, _PyMem_IsPtrFreed() should be updated as well. */
+#define PYMEM_CLEANBYTE 0xCD
+#define PYMEM_DEADBYTE 0xDD
+#define PYMEM_FORBIDDENBYTE 0xFD
+
+/* Heuristic checking if a pointer value is newly allocated
+ (uninitialized), newly freed or NULL (is equal to zero).
+
+ The pointer is not dereferenced, only the pointer value is checked.
+
+ The heuristic relies on the debug hooks on Python memory allocators which
+ fills newly allocated memory with CLEANBYTE (0xCD) and newly freed memory
+ with DEADBYTE (0xDD). Detect also "untouchable bytes" marked
+ with FORBIDDENBYTE (0xFD). */
+static inline int _PyMem_IsPtrFreed(const void *ptr)
+{
+ uintptr_t value = (uintptr_t)ptr;
+#if SIZEOF_VOID_P == 8
+ return (value == 0
+ || value == (uintptr_t)0xCDCDCDCDCDCDCDCD
+ || value == (uintptr_t)0xDDDDDDDDDDDDDDDD
+ || value == (uintptr_t)0xFDFDFDFDFDFDFDFD);
+#elif SIZEOF_VOID_P == 4
+ return (value == 0
+ || value == (uintptr_t)0xCDCDCDCD
+ || value == (uintptr_t)0xDDDDDDDD
+ || value == (uintptr_t)0xFDFDFDFD);
+#else
+# error "unknown pointer size"
+#endif
+}
+
+PyAPI_FUNC(int) _PyMem_GetAllocatorName(
+ const char *name,
+ PyMemAllocatorName *allocator);
+
+/* Configure the Python memory allocators.
+ Pass PYMEM_ALLOCATOR_DEFAULT to use default allocators.
+ PYMEM_ALLOCATOR_NOT_SET does nothing. */
+PyAPI_FUNC(int) _PyMem_SetupAllocators(PyMemAllocatorName allocator);
+
+/* bpo-35053: Expose _Py_tracemalloc_config for _Py_NewReference()
+ which access directly _Py_tracemalloc_config.tracing for best
+ performances. */
+struct _PyTraceMalloc_Config {
+ /* Module initialized?
+ Variable protected by the GIL */
+ enum {
+ TRACEMALLOC_NOT_INITIALIZED,
+ TRACEMALLOC_INITIALIZED,
+ TRACEMALLOC_FINALIZED
+ } initialized;
+
+ /* Is tracemalloc tracing memory allocations?
+ Variable protected by the GIL */
+ int tracing;
+
+ /* limit of the number of frames in a traceback, 1 by default.
+ Variable protected by the GIL. */
+ int max_nframe;
+};
+
+#define _PyTraceMalloc_Config_INIT \
+ {.initialized = TRACEMALLOC_NOT_INITIALIZED, \
+ .tracing = 0, \
+ .max_nframe = 1}
+
+PyAPI_DATA(struct _PyTraceMalloc_Config) _Py_tracemalloc_config;
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_PYMEM_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_pystate.h b/contrib/tools/python3/src/Include/internal/pycore_pystate.h
index e0fee6c4c7..835d6e029c 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_pystate.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_pystate.h
@@ -1,138 +1,138 @@
-#ifndef Py_INTERNAL_PYSTATE_H
-#define Py_INTERNAL_PYSTATE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "pycore_runtime.h" /* PyRuntimeState */
-
-
-/* Check if the current thread is the main thread.
- Use _Py_IsMainInterpreter() to check if it's the main interpreter. */
-static inline int
-_Py_IsMainThread(void)
-{
- unsigned long thread = PyThread_get_thread_ident();
- return (thread == _PyRuntime.main_thread);
-}
-
-
-static inline int
-_Py_IsMainInterpreter(PyThreadState* tstate)
-{
- /* Use directly _PyRuntime rather than tstate->interp->runtime, since
- this function is used in performance critical code path (ceval) */
- return (tstate->interp == _PyRuntime.interpreters.main);
-}
-
-
-/* Only handle signals on the main thread of the main interpreter. */
-static inline int
-_Py_ThreadCanHandleSignals(PyInterpreterState *interp)
-{
- return (_Py_IsMainThread() && interp == _PyRuntime.interpreters.main);
-}
-
-
-/* Only execute pending calls on the main thread. */
-static inline int
-_Py_ThreadCanHandlePendingCalls(void)
-{
- return _Py_IsMainThread();
-}
-
-
-/* Variable and macro for in-line access to current thread
- and interpreter state */
-
-static inline PyThreadState*
-_PyRuntimeState_GetThreadState(_PyRuntimeState *runtime)
-{
- return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->gilstate.tstate_current);
-}
-
-/* Get the current Python thread state.
-
- Efficient macro reading directly the 'gilstate.tstate_current' atomic
- variable. The macro is unsafe: it does not check for error and it can
- return NULL.
-
- The caller must hold the GIL.
-
- See also PyThreadState_Get() and PyThreadState_GET(). */
-static inline PyThreadState*
-_PyThreadState_GET(void)
-{
- return _PyRuntimeState_GetThreadState(&_PyRuntime);
-}
-
-/* Redefine PyThreadState_GET() as an alias to _PyThreadState_GET() */
-#undef PyThreadState_GET
-#define PyThreadState_GET() _PyThreadState_GET()
-
-PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalError_TstateNULL(const char *func);
-
-static inline void
-_Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate)
-{
- if (tstate == NULL) {
- _Py_FatalError_TstateNULL(func);
- }
-}
-
-// Call Py_FatalError() if tstate is NULL
-#define _Py_EnsureTstateNotNULL(tstate) \
- _Py_EnsureFuncTstateNotNULL(__func__, tstate)
-
-
-/* Get the current interpreter state.
-
- The macro is unsafe: it does not check for error and it can return NULL.
-
- The caller must hold the GIL.
-
- See also _PyInterpreterState_Get()
- and _PyGILState_GetInterpreterStateUnsafe(). */
-static inline PyInterpreterState* _PyInterpreterState_GET(void) {
- PyThreadState *tstate = _PyThreadState_GET();
-#ifdef Py_DEBUG
- _Py_EnsureTstateNotNULL(tstate);
-#endif
- return tstate->interp;
-}
-
-
-/* Other */
-
-PyAPI_FUNC(void) _PyThreadState_Init(
- PyThreadState *tstate);
-PyAPI_FUNC(void) _PyThreadState_DeleteExcept(
- _PyRuntimeState *runtime,
- PyThreadState *tstate);
-
-PyAPI_FUNC(PyThreadState *) _PyThreadState_Swap(
- struct _gilstate_runtime_state *gilstate,
- PyThreadState *newts);
-
-PyAPI_FUNC(PyStatus) _PyInterpreterState_Enable(_PyRuntimeState *runtime);
-PyAPI_FUNC(void) _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime);
-
-PyAPI_FUNC(void) _PyGILState_Reinit(_PyRuntimeState *runtime);
-
-
-PyAPI_FUNC(int) _PyState_AddModule(
- PyThreadState *tstate,
- PyObject* module,
- struct PyModuleDef* def);
-
-
-PyAPI_FUNC(int) _PyOS_InterruptOccurred(PyThreadState *tstate);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_PYSTATE_H */
+#ifndef Py_INTERNAL_PYSTATE_H
+#define Py_INTERNAL_PYSTATE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "pycore_runtime.h" /* PyRuntimeState */
+
+
+/* Check if the current thread is the main thread.
+ Use _Py_IsMainInterpreter() to check if it's the main interpreter. */
+static inline int
+_Py_IsMainThread(void)
+{
+ unsigned long thread = PyThread_get_thread_ident();
+ return (thread == _PyRuntime.main_thread);
+}
+
+
+static inline int
+_Py_IsMainInterpreter(PyThreadState* tstate)
+{
+ /* Use directly _PyRuntime rather than tstate->interp->runtime, since
+ this function is used in performance critical code path (ceval) */
+ return (tstate->interp == _PyRuntime.interpreters.main);
+}
+
+
+/* Only handle signals on the main thread of the main interpreter. */
+static inline int
+_Py_ThreadCanHandleSignals(PyInterpreterState *interp)
+{
+ return (_Py_IsMainThread() && interp == _PyRuntime.interpreters.main);
+}
+
+
+/* Only execute pending calls on the main thread. */
+static inline int
+_Py_ThreadCanHandlePendingCalls(void)
+{
+ return _Py_IsMainThread();
+}
+
+
+/* Variable and macro for in-line access to current thread
+ and interpreter state */
+
+static inline PyThreadState*
+_PyRuntimeState_GetThreadState(_PyRuntimeState *runtime)
+{
+ return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->gilstate.tstate_current);
+}
+
+/* Get the current Python thread state.
+
+ Efficient macro reading directly the 'gilstate.tstate_current' atomic
+ variable. The macro is unsafe: it does not check for error and it can
+ return NULL.
+
+ The caller must hold the GIL.
+
+ See also PyThreadState_Get() and PyThreadState_GET(). */
+static inline PyThreadState*
+_PyThreadState_GET(void)
+{
+ return _PyRuntimeState_GetThreadState(&_PyRuntime);
+}
+
+/* Redefine PyThreadState_GET() as an alias to _PyThreadState_GET() */
+#undef PyThreadState_GET
+#define PyThreadState_GET() _PyThreadState_GET()
+
+PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalError_TstateNULL(const char *func);
+
+static inline void
+_Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate)
+{
+ if (tstate == NULL) {
+ _Py_FatalError_TstateNULL(func);
+ }
+}
+
+// Call Py_FatalError() if tstate is NULL
+#define _Py_EnsureTstateNotNULL(tstate) \
+ _Py_EnsureFuncTstateNotNULL(__func__, tstate)
+
+
+/* Get the current interpreter state.
+
+ The macro is unsafe: it does not check for error and it can return NULL.
+
+ The caller must hold the GIL.
+
+ See also _PyInterpreterState_Get()
+ and _PyGILState_GetInterpreterStateUnsafe(). */
+static inline PyInterpreterState* _PyInterpreterState_GET(void) {
+ PyThreadState *tstate = _PyThreadState_GET();
+#ifdef Py_DEBUG
+ _Py_EnsureTstateNotNULL(tstate);
+#endif
+ return tstate->interp;
+}
+
+
+/* Other */
+
+PyAPI_FUNC(void) _PyThreadState_Init(
+ PyThreadState *tstate);
+PyAPI_FUNC(void) _PyThreadState_DeleteExcept(
+ _PyRuntimeState *runtime,
+ PyThreadState *tstate);
+
+PyAPI_FUNC(PyThreadState *) _PyThreadState_Swap(
+ struct _gilstate_runtime_state *gilstate,
+ PyThreadState *newts);
+
+PyAPI_FUNC(PyStatus) _PyInterpreterState_Enable(_PyRuntimeState *runtime);
+PyAPI_FUNC(void) _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime);
+
+PyAPI_FUNC(void) _PyGILState_Reinit(_PyRuntimeState *runtime);
+
+
+PyAPI_FUNC(int) _PyState_AddModule(
+ PyThreadState *tstate,
+ PyObject* module,
+ struct PyModuleDef* def);
+
+
+PyAPI_FUNC(int) _PyOS_InterruptOccurred(PyThreadState *tstate);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_PYSTATE_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_runtime.h b/contrib/tools/python3/src/Include/internal/pycore_runtime.h
index a39de36cb2..34eb492b9f 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_runtime.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_runtime.h
@@ -1,144 +1,144 @@
-#ifndef Py_INTERNAL_RUNTIME_H
-#define Py_INTERNAL_RUNTIME_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "pycore_atomic.h" /* _Py_atomic_address */
-#include "pycore_gil.h" // struct _gil_runtime_state
-
-/* ceval state */
-
-struct _ceval_runtime_state {
- /* Request for checking signals. It is shared by all interpreters (see
- bpo-40513). Any thread of any interpreter can receive a signal, but only
- the main thread of the main interpreter can handle signals: see
- _Py_ThreadCanHandleSignals(). */
- _Py_atomic_int signals_pending;
- struct _gil_runtime_state gil;
-};
-
-/* GIL state */
-
-struct _gilstate_runtime_state {
- /* bpo-26558: Flag to disable PyGILState_Check().
- If set to non-zero, PyGILState_Check() always return 1. */
- int check_enabled;
- /* Assuming the current thread holds the GIL, this is the
- PyThreadState for the current thread. */
- _Py_atomic_address tstate_current;
- /* The single PyInterpreterState used by this process'
- GILState implementation
- */
- /* TODO: Given interp_main, it may be possible to kill this ref */
- PyInterpreterState *autoInterpreterState;
- Py_tss_t autoTSSkey;
-};
-
-/* Runtime audit hook state */
-
-typedef struct _Py_AuditHookEntry {
- struct _Py_AuditHookEntry *next;
- Py_AuditHookFunction hookCFunction;
- void *userData;
-} _Py_AuditHookEntry;
-
-/* Full Python runtime state */
-
-typedef struct pyruntimestate {
- /* Is running Py_PreInitialize()? */
- int preinitializing;
-
- /* Is Python preinitialized? Set to 1 by Py_PreInitialize() */
- int preinitialized;
-
- /* Is Python core initialized? Set to 1 by _Py_InitializeCore() */
- int core_initialized;
-
- /* Is Python fully initialized? Set to 1 by Py_Initialize() */
- int initialized;
-
- /* Set by Py_FinalizeEx(). Only reset to NULL if Py_Initialize()
- is called again.
-
- Use _PyRuntimeState_GetFinalizing() and _PyRuntimeState_SetFinalizing()
- to access it, don't access it directly. */
- _Py_atomic_address _finalizing;
-
- struct pyinterpreters {
- PyThread_type_lock mutex;
- PyInterpreterState *head;
- PyInterpreterState *main;
- /* _next_interp_id is an auto-numbered sequence of small
- integers. It gets initialized in _PyInterpreterState_Init(),
- which is called in Py_Initialize(), and used in
- PyInterpreterState_New(). A negative interpreter ID
- indicates an error occurred. The main interpreter will
- always have an ID of 0. Overflow results in a RuntimeError.
- If that becomes a problem later then we can adjust, e.g. by
- using a Python int. */
- int64_t next_id;
- } interpreters;
- // XXX Remove this field once we have a tp_* slot.
- struct _xidregistry {
- PyThread_type_lock mutex;
- struct _xidregitem *head;
- } xidregistry;
-
- unsigned long main_thread;
-
-#define NEXITFUNCS 32
- void (*exitfuncs[NEXITFUNCS])(void);
- int nexitfuncs;
-
- struct _ceval_runtime_state ceval;
- struct _gilstate_runtime_state gilstate;
-
- PyPreConfig preconfig;
-
- Py_OpenCodeHookFunction open_code_hook;
- void *open_code_userdata;
- _Py_AuditHookEntry *audit_hook_head;
-
- // XXX Consolidate globals found via the check-c-globals script.
-} _PyRuntimeState;
-
-#define _PyRuntimeState_INIT \
- {.preinitialized = 0, .core_initialized = 0, .initialized = 0}
-/* Note: _PyRuntimeState_INIT sets other fields to 0/NULL */
-
-
-PyAPI_DATA(_PyRuntimeState) _PyRuntime;
-
-PyAPI_FUNC(PyStatus) _PyRuntimeState_Init(_PyRuntimeState *runtime);
-PyAPI_FUNC(void) _PyRuntimeState_Fini(_PyRuntimeState *runtime);
-
-#ifdef HAVE_FORK
-PyAPI_FUNC(void) _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime);
-#endif
-
-/* Initialize _PyRuntimeState.
- Return NULL on success, or return an error message on failure. */
-PyAPI_FUNC(PyStatus) _PyRuntime_Initialize(void);
-
-PyAPI_FUNC(void) _PyRuntime_Finalize(void);
-
-
-static inline PyThreadState*
-_PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) {
- return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->_finalizing);
-}
-
-static inline void
-_PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) {
- _Py_atomic_store_relaxed(&runtime->_finalizing, (uintptr_t)tstate);
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_RUNTIME_H */
+#ifndef Py_INTERNAL_RUNTIME_H
+#define Py_INTERNAL_RUNTIME_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "pycore_atomic.h" /* _Py_atomic_address */
+#include "pycore_gil.h" // struct _gil_runtime_state
+
+/* ceval state */
+
+struct _ceval_runtime_state {
+ /* Request for checking signals. It is shared by all interpreters (see
+ bpo-40513). Any thread of any interpreter can receive a signal, but only
+ the main thread of the main interpreter can handle signals: see
+ _Py_ThreadCanHandleSignals(). */
+ _Py_atomic_int signals_pending;
+ struct _gil_runtime_state gil;
+};
+
+/* GIL state */
+
+struct _gilstate_runtime_state {
+ /* bpo-26558: Flag to disable PyGILState_Check().
+ If set to non-zero, PyGILState_Check() always return 1. */
+ int check_enabled;
+ /* Assuming the current thread holds the GIL, this is the
+ PyThreadState for the current thread. */
+ _Py_atomic_address tstate_current;
+ /* The single PyInterpreterState used by this process'
+ GILState implementation
+ */
+ /* TODO: Given interp_main, it may be possible to kill this ref */
+ PyInterpreterState *autoInterpreterState;
+ Py_tss_t autoTSSkey;
+};
+
+/* Runtime audit hook state */
+
+typedef struct _Py_AuditHookEntry {
+ struct _Py_AuditHookEntry *next;
+ Py_AuditHookFunction hookCFunction;
+ void *userData;
+} _Py_AuditHookEntry;
+
+/* Full Python runtime state */
+
+typedef struct pyruntimestate {
+ /* Is running Py_PreInitialize()? */
+ int preinitializing;
+
+ /* Is Python preinitialized? Set to 1 by Py_PreInitialize() */
+ int preinitialized;
+
+ /* Is Python core initialized? Set to 1 by _Py_InitializeCore() */
+ int core_initialized;
+
+ /* Is Python fully initialized? Set to 1 by Py_Initialize() */
+ int initialized;
+
+ /* Set by Py_FinalizeEx(). Only reset to NULL if Py_Initialize()
+ is called again.
+
+ Use _PyRuntimeState_GetFinalizing() and _PyRuntimeState_SetFinalizing()
+ to access it, don't access it directly. */
+ _Py_atomic_address _finalizing;
+
+ struct pyinterpreters {
+ PyThread_type_lock mutex;
+ PyInterpreterState *head;
+ PyInterpreterState *main;
+ /* _next_interp_id is an auto-numbered sequence of small
+ integers. It gets initialized in _PyInterpreterState_Init(),
+ which is called in Py_Initialize(), and used in
+ PyInterpreterState_New(). A negative interpreter ID
+ indicates an error occurred. The main interpreter will
+ always have an ID of 0. Overflow results in a RuntimeError.
+ If that becomes a problem later then we can adjust, e.g. by
+ using a Python int. */
+ int64_t next_id;
+ } interpreters;
+ // XXX Remove this field once we have a tp_* slot.
+ struct _xidregistry {
+ PyThread_type_lock mutex;
+ struct _xidregitem *head;
+ } xidregistry;
+
+ unsigned long main_thread;
+
+#define NEXITFUNCS 32
+ void (*exitfuncs[NEXITFUNCS])(void);
+ int nexitfuncs;
+
+ struct _ceval_runtime_state ceval;
+ struct _gilstate_runtime_state gilstate;
+
+ PyPreConfig preconfig;
+
+ Py_OpenCodeHookFunction open_code_hook;
+ void *open_code_userdata;
+ _Py_AuditHookEntry *audit_hook_head;
+
+ // XXX Consolidate globals found via the check-c-globals script.
+} _PyRuntimeState;
+
+#define _PyRuntimeState_INIT \
+ {.preinitialized = 0, .core_initialized = 0, .initialized = 0}
+/* Note: _PyRuntimeState_INIT sets other fields to 0/NULL */
+
+
+PyAPI_DATA(_PyRuntimeState) _PyRuntime;
+
+PyAPI_FUNC(PyStatus) _PyRuntimeState_Init(_PyRuntimeState *runtime);
+PyAPI_FUNC(void) _PyRuntimeState_Fini(_PyRuntimeState *runtime);
+
+#ifdef HAVE_FORK
+PyAPI_FUNC(void) _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime);
+#endif
+
+/* Initialize _PyRuntimeState.
+ Return NULL on success, or return an error message on failure. */
+PyAPI_FUNC(PyStatus) _PyRuntime_Initialize(void);
+
+PyAPI_FUNC(void) _PyRuntime_Finalize(void);
+
+
+static inline PyThreadState*
+_PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) {
+ return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->_finalizing);
+}
+
+static inline void
+_PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) {
+ _Py_atomic_store_relaxed(&runtime->_finalizing, (uintptr_t)tstate);
+}
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_RUNTIME_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_sysmodule.h b/contrib/tools/python3/src/Include/internal/pycore_sysmodule.h
index 9cdfa6ef73..738a7746a0 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_sysmodule.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_sysmodule.h
@@ -1,24 +1,24 @@
-#ifndef Py_INTERNAL_SYSMODULE_H
-#define Py_INTERNAL_SYSMODULE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-PyAPI_FUNC(int) _PySys_Audit(
- PyThreadState *tstate,
- const char *event,
- const char *argFormat,
- ...);
-
-/* We want minimal exposure of this function, so use extern rather than
- PyAPI_FUNC() to not export the symbol. */
-extern void _PySys_ClearAuditHooks(PyThreadState *tstate);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_SYSMODULE_H */
+#ifndef Py_INTERNAL_SYSMODULE_H
+#define Py_INTERNAL_SYSMODULE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+PyAPI_FUNC(int) _PySys_Audit(
+ PyThreadState *tstate,
+ const char *event,
+ const char *argFormat,
+ ...);
+
+/* We want minimal exposure of this function, so use extern rather than
+ PyAPI_FUNC() to not export the symbol. */
+extern void _PySys_ClearAuditHooks(PyThreadState *tstate);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_SYSMODULE_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_traceback.h b/contrib/tools/python3/src/Include/internal/pycore_traceback.h
index 927d77c094..c23290ebec 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_traceback.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_traceback.h
@@ -1,97 +1,97 @@
-#ifndef Py_INTERNAL_TRACEBACK_H
-#define Py_INTERNAL_TRACEBACK_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-/* Forward declaration */
-struct _is;
-
-/* Write the Python traceback into the file 'fd'. For example:
-
- Traceback (most recent call first):
- File "xxx", line xxx in <xxx>
- File "xxx", line xxx in <xxx>
- ...
- File "xxx", line xxx in <xxx>
-
- This function is written for debug purpose only, to dump the traceback in
- the worst case: after a segmentation fault, at fatal error, etc. That's why,
- it is very limited. Strings are truncated to 100 characters and encoded to
- ASCII with backslashreplace. It doesn't write the source code, only the
- function name, filename and line number of each frame. Write only the first
- 100 frames: if the traceback is truncated, write the line " ...".
-
- This function is signal safe. */
-
-PyAPI_FUNC(void) _Py_DumpTraceback(
- int fd,
- PyThreadState *tstate);
-
-/* Write the traceback of all threads into the file 'fd'. current_thread can be
- NULL.
-
- Return NULL on success, or an error message on error.
-
- This function is written for debug purpose only. It calls
- _Py_DumpTraceback() for each thread, and so has the same limitations. It
- only write the traceback of the first 100 threads: write "..." if there are
- more threads.
-
- If current_tstate is NULL, the function tries to get the Python thread state
- of the current thread. It is not an error if the function is unable to get
- the current Python thread state.
-
- If interp is NULL, the function tries to get the interpreter state from
- the current Python thread state, or from
- _PyGILState_GetInterpreterStateUnsafe() in last resort.
-
- It is better to pass NULL to interp and current_tstate, the function tries
- different options to retrieve this information.
-
- This function is signal safe. */
-
-PyAPI_FUNC(const char*) _Py_DumpTracebackThreads(
- int fd,
- struct _is *interp,
- PyThreadState *current_tstate);
-
-/* Write a Unicode object into the file descriptor fd. Encode the string to
- ASCII using the backslashreplace error handler.
-
- Do nothing if text is not a Unicode object. The function accepts Unicode
- string which is not ready (PyUnicode_WCHAR_KIND).
-
- This function is signal safe. */
-PyAPI_FUNC(void) _Py_DumpASCII(int fd, PyObject *text);
-
-/* Format an integer as decimal into the file descriptor fd.
-
- This function is signal safe. */
-PyAPI_FUNC(void) _Py_DumpDecimal(
- int fd,
- unsigned long value);
-
-/* Format an integer as hexadecimal into the file descriptor fd with at least
- width digits.
-
- The maximum width is sizeof(unsigned long)*2 digits.
-
- This function is signal safe. */
-PyAPI_FUNC(void) _Py_DumpHexadecimal(
- int fd,
- unsigned long value,
- Py_ssize_t width);
-
-PyAPI_FUNC(PyObject*) _PyTraceBack_FromFrame(
- PyObject *tb_next,
- PyFrameObject *frame);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_TRACEBACK_H */
+#ifndef Py_INTERNAL_TRACEBACK_H
+#define Py_INTERNAL_TRACEBACK_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+/* Forward declaration */
+struct _is;
+
+/* Write the Python traceback into the file 'fd'. For example:
+
+ Traceback (most recent call first):
+ File "xxx", line xxx in <xxx>
+ File "xxx", line xxx in <xxx>
+ ...
+ File "xxx", line xxx in <xxx>
+
+ This function is written for debug purpose only, to dump the traceback in
+ the worst case: after a segmentation fault, at fatal error, etc. That's why,
+ it is very limited. Strings are truncated to 100 characters and encoded to
+ ASCII with backslashreplace. It doesn't write the source code, only the
+ function name, filename and line number of each frame. Write only the first
+ 100 frames: if the traceback is truncated, write the line " ...".
+
+ This function is signal safe. */
+
+PyAPI_FUNC(void) _Py_DumpTraceback(
+ int fd,
+ PyThreadState *tstate);
+
+/* Write the traceback of all threads into the file 'fd'. current_thread can be
+ NULL.
+
+ Return NULL on success, or an error message on error.
+
+ This function is written for debug purpose only. It calls
+ _Py_DumpTraceback() for each thread, and so has the same limitations. It
+ only write the traceback of the first 100 threads: write "..." if there are
+ more threads.
+
+ If current_tstate is NULL, the function tries to get the Python thread state
+ of the current thread. It is not an error if the function is unable to get
+ the current Python thread state.
+
+ If interp is NULL, the function tries to get the interpreter state from
+ the current Python thread state, or from
+ _PyGILState_GetInterpreterStateUnsafe() in last resort.
+
+ It is better to pass NULL to interp and current_tstate, the function tries
+ different options to retrieve this information.
+
+ This function is signal safe. */
+
+PyAPI_FUNC(const char*) _Py_DumpTracebackThreads(
+ int fd,
+ struct _is *interp,
+ PyThreadState *current_tstate);
+
+/* Write a Unicode object into the file descriptor fd. Encode the string to
+ ASCII using the backslashreplace error handler.
+
+ Do nothing if text is not a Unicode object. The function accepts Unicode
+ string which is not ready (PyUnicode_WCHAR_KIND).
+
+ This function is signal safe. */
+PyAPI_FUNC(void) _Py_DumpASCII(int fd, PyObject *text);
+
+/* Format an integer as decimal into the file descriptor fd.
+
+ This function is signal safe. */
+PyAPI_FUNC(void) _Py_DumpDecimal(
+ int fd,
+ unsigned long value);
+
+/* Format an integer as hexadecimal into the file descriptor fd with at least
+ width digits.
+
+ The maximum width is sizeof(unsigned long)*2 digits.
+
+ This function is signal safe. */
+PyAPI_FUNC(void) _Py_DumpHexadecimal(
+ int fd,
+ unsigned long value,
+ Py_ssize_t width);
+
+PyAPI_FUNC(PyObject*) _PyTraceBack_FromFrame(
+ PyObject *tb_next,
+ PyFrameObject *frame);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_TRACEBACK_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_tupleobject.h b/contrib/tools/python3/src/Include/internal/pycore_tupleobject.h
index a2ec2ce9e0..f95f16c0ed 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_tupleobject.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_tupleobject.h
@@ -1,19 +1,19 @@
-#ifndef Py_INTERNAL_TUPLEOBJECT_H
-#define Py_INTERNAL_TUPLEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-#include "tupleobject.h" /* _PyTuple_CAST() */
-
-#define _PyTuple_ITEMS(op) (_PyTuple_CAST(op)->ob_item)
-PyAPI_FUNC(PyObject *) _PyTuple_FromArray(PyObject *const *, Py_ssize_t);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_TUPLEOBJECT_H */
+#ifndef Py_INTERNAL_TUPLEOBJECT_H
+#define Py_INTERNAL_TUPLEOBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+#include "tupleobject.h" /* _PyTuple_CAST() */
+
+#define _PyTuple_ITEMS(op) (_PyTuple_CAST(op)->ob_item)
+PyAPI_FUNC(PyObject *) _PyTuple_FromArray(PyObject *const *, Py_ssize_t);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_TUPLEOBJECT_H */
diff --git a/contrib/tools/python3/src/Include/internal/pycore_warnings.h b/contrib/tools/python3/src/Include/internal/pycore_warnings.h
index ebd1b8fafa..cafe305edb 100644
--- a/contrib/tools/python3/src/Include/internal/pycore_warnings.h
+++ b/contrib/tools/python3/src/Include/internal/pycore_warnings.h
@@ -1,25 +1,25 @@
-#ifndef Py_INTERNAL_WARNINGS_H
-#define Py_INTERNAL_WARNINGS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_BUILD_CORE
-# error "this header requires Py_BUILD_CORE define"
-#endif
-
-struct _warnings_runtime_state {
- /* Both 'filters' and 'onceregistry' can be set in warnings.py;
- get_warnings_attr() will reset these variables accordingly. */
- PyObject *filters; /* List */
- PyObject *once_registry; /* Dict */
- PyObject *default_action; /* String */
- long filters_version;
-};
-
-extern PyStatus _PyWarnings_InitState(PyThreadState *tstate);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_WARNINGS_H */
+#ifndef Py_INTERNAL_WARNINGS_H
+#define Py_INTERNAL_WARNINGS_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+struct _warnings_runtime_state {
+ /* Both 'filters' and 'onceregistry' can be set in warnings.py;
+ get_warnings_attr() will reset these variables accordingly. */
+ PyObject *filters; /* List */
+ PyObject *once_registry; /* Dict */
+ PyObject *default_action; /* String */
+ long filters_version;
+};
+
+extern PyStatus _PyWarnings_InitState(PyThreadState *tstate);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERNAL_WARNINGS_H */
diff --git a/contrib/tools/python3/src/Include/interpreteridobject.h b/contrib/tools/python3/src/Include/interpreteridobject.h
index a9f4e7b752..e744fcdc9f 100644
--- a/contrib/tools/python3/src/Include/interpreteridobject.h
+++ b/contrib/tools/python3/src/Include/interpreteridobject.h
@@ -1,17 +1,17 @@
-#ifndef Py_INTERPRETERIDOBJECT_H
-#define Py_INTERPRETERIDOBJECT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_INTERPRETERIDOBJECT_H
-# include "cpython/interpreteridobject.h"
-# undef Py_CPYTHON_INTERPRETERIDOBJECT_H
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERPRETERIDOBJECT_H */
+#ifndef Py_INTERPRETERIDOBJECT_H
+#define Py_INTERPRETERIDOBJECT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_INTERPRETERIDOBJECT_H
+# include "cpython/interpreteridobject.h"
+# undef Py_CPYTHON_INTERPRETERIDOBJECT_H
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_INTERPRETERIDOBJECT_H */
diff --git a/contrib/tools/python3/src/Include/intrcheck.h b/contrib/tools/python3/src/Include/intrcheck.h
index 7e4115a61a..e5bf5a834e 100644
--- a/contrib/tools/python3/src/Include/intrcheck.h
+++ b/contrib/tools/python3/src/Include/intrcheck.h
@@ -15,7 +15,7 @@ PyAPI_FUNC(void) PyOS_AfterFork_Child(void);
#endif
#endif
/* Deprecated, please use PyOS_AfterFork_Child() instead */
-Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyOS_AfterFork(void);
+Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyOS_AfterFork(void);
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) _PyOS_IsMainThread(void);
diff --git a/contrib/tools/python3/src/Include/iterobject.h b/contrib/tools/python3/src/Include/iterobject.h
index c407132ae2..51139bf187 100644
--- a/contrib/tools/python3/src/Include/iterobject.h
+++ b/contrib/tools/python3/src/Include/iterobject.h
@@ -8,12 +8,12 @@ extern "C" {
PyAPI_DATA(PyTypeObject) PySeqIter_Type;
PyAPI_DATA(PyTypeObject) PyCallIter_Type;
-#define PySeqIter_Check(op) Py_IS_TYPE(op, &PySeqIter_Type)
+#define PySeqIter_Check(op) Py_IS_TYPE(op, &PySeqIter_Type)
PyAPI_FUNC(PyObject *) PySeqIter_New(PyObject *);
-#define PyCallIter_Check(op) Py_IS_TYPE(op, &PyCallIter_Type)
+#define PyCallIter_Check(op) Py_IS_TYPE(op, &PyCallIter_Type)
PyAPI_FUNC(PyObject *) PyCallIter_New(PyObject *, PyObject *);
diff --git a/contrib/tools/python3/src/Include/listobject.h b/contrib/tools/python3/src/Include/listobject.h
index f540ac7369..2a8a25525d 100644
--- a/contrib/tools/python3/src/Include/listobject.h
+++ b/contrib/tools/python3/src/Include/listobject.h
@@ -1,14 +1,14 @@
-/* List object interface
+/* List object interface
- Another generally useful object type is a list of object pointers.
- This is a mutable type: the list items can be changed, and items can be
- added or removed. Out-of-range indices or non-list objects are ignored.
+ Another generally useful object type is a list of object pointers.
+ This is a mutable type: the list items can be changed, and items can be
+ added or removed. Out-of-range indices or non-list objects are ignored.
- WARNING: PyList_SetItem does not increment the new item's reference count,
- but does decrement the reference count of the item it replaces, if not nil.
- It does *decrement* the reference count if it is *not* inserted in the list.
- Similarly, PyList_GetItem does not increment the returned item's reference
- count.
+ WARNING: PyList_SetItem does not increment the new item's reference count,
+ but does decrement the reference count of the item it replaces, if not nil.
+ It does *decrement* the reference count if it is *not* inserted in the list.
+ Similarly, PyList_GetItem does not increment the returned item's reference
+ count.
*/
#ifndef Py_LISTOBJECT_H
@@ -23,27 +23,27 @@ PyAPI_DATA(PyTypeObject) PyListRevIter_Type;
#define PyList_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS)
-#define PyList_CheckExact(op) Py_IS_TYPE(op, &PyList_Type)
+#define PyList_CheckExact(op) Py_IS_TYPE(op, &PyList_Type)
PyAPI_FUNC(PyObject *) PyList_New(Py_ssize_t size);
PyAPI_FUNC(Py_ssize_t) PyList_Size(PyObject *);
-
+
PyAPI_FUNC(PyObject *) PyList_GetItem(PyObject *, Py_ssize_t);
PyAPI_FUNC(int) PyList_SetItem(PyObject *, Py_ssize_t, PyObject *);
PyAPI_FUNC(int) PyList_Insert(PyObject *, Py_ssize_t, PyObject *);
PyAPI_FUNC(int) PyList_Append(PyObject *, PyObject *);
-
+
PyAPI_FUNC(PyObject *) PyList_GetSlice(PyObject *, Py_ssize_t, Py_ssize_t);
PyAPI_FUNC(int) PyList_SetSlice(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *);
-
+
PyAPI_FUNC(int) PyList_Sort(PyObject *);
PyAPI_FUNC(int) PyList_Reverse(PyObject *);
PyAPI_FUNC(PyObject *) PyList_AsTuple(PyObject *);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_LISTOBJECT_H
-# include "cpython/listobject.h"
-# undef Py_CPYTHON_LISTOBJECT_H
+# define Py_CPYTHON_LISTOBJECT_H
+# include "cpython/listobject.h"
+# undef Py_CPYTHON_LISTOBJECT_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/longobject.h b/contrib/tools/python3/src/Include/longobject.h
index 22359bd034..1b288099da 100644
--- a/contrib/tools/python3/src/Include/longobject.h
+++ b/contrib/tools/python3/src/Include/longobject.h
@@ -13,7 +13,7 @@ PyAPI_DATA(PyTypeObject) PyLong_Type;
#define PyLong_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS)
-#define PyLong_CheckExact(op) Py_IS_TYPE(op, &PyLong_Type)
+#define PyLong_CheckExact(op) Py_IS_TYPE(op, &PyLong_Type)
PyAPI_FUNC(PyObject *) PyLong_FromLong(long);
PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long);
@@ -65,16 +65,16 @@ PyAPI_FUNC(PyObject *) PyLong_GetInfo(void);
# error "void* different in size from int, long and long long"
#endif /* SIZEOF_VOID_P */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyLong_UnsignedShort_Converter(PyObject *, void *);
-PyAPI_FUNC(int) _PyLong_UnsignedInt_Converter(PyObject *, void *);
-PyAPI_FUNC(int) _PyLong_UnsignedLong_Converter(PyObject *, void *);
-PyAPI_FUNC(int) _PyLong_UnsignedLongLong_Converter(PyObject *, void *);
-PyAPI_FUNC(int) _PyLong_Size_t_Converter(PyObject *, void *);
-#endif
-
+#ifndef Py_LIMITED_API
+PyAPI_FUNC(int) _PyLong_UnsignedShort_Converter(PyObject *, void *);
+PyAPI_FUNC(int) _PyLong_UnsignedInt_Converter(PyObject *, void *);
+PyAPI_FUNC(int) _PyLong_UnsignedLong_Converter(PyObject *, void *);
+PyAPI_FUNC(int) _PyLong_UnsignedLongLong_Converter(PyObject *, void *);
+PyAPI_FUNC(int) _PyLong_Size_t_Converter(PyObject *, void *);
+#endif
+
/* Used by Python/mystrtoul.c, _PyBytes_FromHex(),
- _PyBytes_DecodeEscape(), etc. */
+ _PyBytes_DecodeEscape(), etc. */
#ifndef Py_LIMITED_API
PyAPI_DATA(unsigned char) _PyLong_DigitValue[256];
#endif
@@ -102,8 +102,8 @@ PyAPI_FUNC(long long) PyLong_AsLongLongAndOverflow(PyObject *, int *);
PyAPI_FUNC(PyObject *) PyLong_FromString(const char *, char **, int);
#ifndef Py_LIMITED_API
-Py_DEPRECATED(3.3)
-PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, Py_ssize_t, int);
+Py_DEPRECATED(3.3)
+PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, Py_ssize_t, int);
PyAPI_FUNC(PyObject *) PyLong_FromUnicodeObject(PyObject *u, int base);
PyAPI_FUNC(PyObject *) _PyLong_FromBytes(const char *, Py_ssize_t, int);
#endif
@@ -178,18 +178,18 @@ PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
nb_int slot is not available or the result of the call to nb_int
returns something not of type int.
*/
-PyAPI_FUNC(PyObject *) _PyLong_FromNbInt(PyObject *);
-
-/* Convert the given object to a PyLongObject using the nb_index or
- nb_int slots, if available (the latter is deprecated).
- Raise TypeError if either nb_index and nb_int slots are not
- available or the result of the call to nb_index or nb_int
- returns something not of type int.
- Should be replaced with PyNumber_Index after the end of the
- deprecation period.
-*/
-PyAPI_FUNC(PyObject *) _PyLong_FromNbIndexOrNbInt(PyObject *);
-
+PyAPI_FUNC(PyObject *) _PyLong_FromNbInt(PyObject *);
+
+/* Convert the given object to a PyLongObject using the nb_index or
+ nb_int slots, if available (the latter is deprecated).
+ Raise TypeError if either nb_index and nb_int slots are not
+ available or the result of the call to nb_index or nb_int
+ returns something not of type int.
+ Should be replaced with PyNumber_Index after the end of the
+ deprecation period.
+*/
+PyAPI_FUNC(PyObject *) _PyLong_FromNbIndexOrNbInt(PyObject *);
+
/* _PyLong_Format: Convert the long to a string object with given base,
appending a base prefix of 0[box] if base is 2, 8 or 16. */
PyAPI_FUNC(PyObject *) _PyLong_Format(PyObject *obj, int base);
@@ -231,9 +231,9 @@ PyAPI_FUNC(PyObject *) _PyLong_GCD(PyObject *, PyObject *);
#ifndef Py_LIMITED_API
PyAPI_DATA(PyObject *) _PyLong_Zero;
PyAPI_DATA(PyObject *) _PyLong_One;
-
-PyAPI_FUNC(PyObject *) _PyLong_Rshift(PyObject *, size_t);
-PyAPI_FUNC(PyObject *) _PyLong_Lshift(PyObject *, size_t);
+
+PyAPI_FUNC(PyObject *) _PyLong_Rshift(PyObject *, size_t);
+PyAPI_FUNC(PyObject *) _PyLong_Lshift(PyObject *, size_t);
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/memoryobject.h b/contrib/tools/python3/src/Include/memoryobject.h
index 677c47b219..306028f4b2 100644
--- a/contrib/tools/python3/src/Include/memoryobject.h
+++ b/contrib/tools/python3/src/Include/memoryobject.h
@@ -11,7 +11,7 @@ PyAPI_DATA(PyTypeObject) _PyManagedBuffer_Type;
#endif
PyAPI_DATA(PyTypeObject) PyMemoryView_Type;
-#define PyMemoryView_Check(op) Py_IS_TYPE(op, &PyMemoryView_Type)
+#define PyMemoryView_Check(op) Py_IS_TYPE(op, &PyMemoryView_Type)
#ifndef Py_LIMITED_API
/* Get a pointer to the memoryview's private copy of the exporter's buffer. */
diff --git a/contrib/tools/python3/src/Include/methodobject.h b/contrib/tools/python3/src/Include/methodobject.h
index 691e53dcbd..12e049b404 100644
--- a/contrib/tools/python3/src/Include/methodobject.h
+++ b/contrib/tools/python3/src/Include/methodobject.h
@@ -13,8 +13,8 @@ extern "C" {
PyAPI_DATA(PyTypeObject) PyCFunction_Type;
-#define PyCFunction_CheckExact(op) Py_IS_TYPE(op, &PyCFunction_Type)
-#define PyCFunction_Check(op) PyObject_TypeCheck(op, &PyCFunction_Type)
+#define PyCFunction_CheckExact(op) Py_IS_TYPE(op, &PyCFunction_Type)
+#define PyCFunction_Check(op) PyObject_TypeCheck(op, &PyCFunction_Type)
typedef PyObject *(*PyCFunction)(PyObject *, PyObject *);
typedef PyObject *(*_PyCFunctionFast) (PyObject *, PyObject *const *, Py_ssize_t);
@@ -23,14 +23,14 @@ typedef PyObject *(*PyCFunctionWithKeywords)(PyObject *, PyObject *,
typedef PyObject *(*_PyCFunctionFastWithKeywords) (PyObject *,
PyObject *const *, Py_ssize_t,
PyObject *);
-typedef PyObject *(*PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *,
- size_t, PyObject *);
+typedef PyObject *(*PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *,
+ size_t, PyObject *);
PyAPI_FUNC(PyCFunction) PyCFunction_GetFunction(PyObject *);
PyAPI_FUNC(PyObject *) PyCFunction_GetSelf(PyObject *);
PyAPI_FUNC(int) PyCFunction_GetFlags(PyObject *);
-Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyCFunction_Call(PyObject *, PyObject *, PyObject *);
+Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyCFunction_Call(PyObject *, PyObject *, PyObject *);
struct PyMethodDef {
const char *ml_name; /* The name of the built-in function/method */
@@ -45,13 +45,13 @@ typedef struct PyMethodDef PyMethodDef;
PyAPI_FUNC(PyObject *) PyCFunction_NewEx(PyMethodDef *, PyObject *,
PyObject *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
-#define PyCFunction_NewEx(ML, SELF, MOD) PyCMethod_New((ML), (SELF), (MOD), NULL)
-PyAPI_FUNC(PyObject *) PyCMethod_New(PyMethodDef *, PyObject *,
- PyObject *, PyTypeObject *);
-#endif
-
-
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
+#define PyCFunction_NewEx(ML, SELF, MOD) PyCMethod_New((ML), (SELF), (MOD), NULL)
+PyAPI_FUNC(PyObject *) PyCMethod_New(PyMethodDef *, PyObject *,
+ PyObject *, PyTypeObject *);
+#endif
+
+
/* Flag passed to newmethodobject */
/* #define METH_OLDARGS 0x0000 -- unsupported now */
#define METH_VARARGS 0x0001
@@ -84,24 +84,24 @@ PyAPI_FUNC(PyObject *) PyCMethod_New(PyMethodDef *, PyObject *,
#define METH_STACKLESS 0x0000
#endif
-/* METH_METHOD means the function stores an
- * additional reference to the class that defines it;
- * both self and class are passed to it.
- * It uses PyCMethodObject instead of PyCFunctionObject.
- * May not be combined with METH_NOARGS, METH_O, METH_CLASS or METH_STATIC.
- */
+/* METH_METHOD means the function stores an
+ * additional reference to the class that defines it;
+ * both self and class are passed to it.
+ * It uses PyCMethodObject instead of PyCFunctionObject.
+ * May not be combined with METH_NOARGS, METH_O, METH_CLASS or METH_STATIC.
+ */
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
-#define METH_METHOD 0x0200
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
+#define METH_METHOD 0x0200
#endif
#ifndef Py_LIMITED_API
-
-#define Py_CPYTHON_METHODOBJECT_H
-#include "cpython/methodobject.h"
-#undef Py_CPYTHON_METHODOBJECT_H
-
+
+#define Py_CPYTHON_METHODOBJECT_H
+#include "cpython/methodobject.h"
+#undef Py_CPYTHON_METHODOBJECT_H
+
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/modsupport.h b/contrib/tools/python3/src/Include/modsupport.h
index 059e7d1903..4c4aab65ba 100644
--- a/contrib/tools/python3/src/Include/modsupport.h
+++ b/contrib/tools/python3/src/Include/modsupport.h
@@ -60,22 +60,22 @@ PyAPI_FUNC(int) _PyArg_UnpackStack(
...);
PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kwargs);
-PyAPI_FUNC(int) _PyArg_NoKwnames(const char *funcname, PyObject *kwnames);
+PyAPI_FUNC(int) _PyArg_NoKwnames(const char *funcname, PyObject *kwnames);
PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args);
#define _PyArg_NoKeywords(funcname, kwargs) \
((kwargs) == NULL || _PyArg_NoKeywords((funcname), (kwargs)))
-#define _PyArg_NoKwnames(funcname, kwnames) \
- ((kwnames) == NULL || _PyArg_NoKwnames((funcname), (kwnames)))
+#define _PyArg_NoKwnames(funcname, kwnames) \
+ ((kwnames) == NULL || _PyArg_NoKwnames((funcname), (kwnames)))
#define _PyArg_NoPositional(funcname, args) \
((args) == NULL || _PyArg_NoPositional((funcname), (args)))
-PyAPI_FUNC(void) _PyArg_BadArgument(const char *, const char *, const char *, PyObject *);
-PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t,
- Py_ssize_t, Py_ssize_t);
-#define _PyArg_CheckPositional(funcname, nargs, min, max) \
- (((min) <= (nargs) && (nargs) <= (max)) \
- || _PyArg_CheckPositional((funcname), (nargs), (min), (max)))
-
+PyAPI_FUNC(void) _PyArg_BadArgument(const char *, const char *, const char *, PyObject *);
+PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t,
+ Py_ssize_t, Py_ssize_t);
+#define _PyArg_CheckPositional(funcname, nargs, min, max) \
+ (((min) <= (nargs) && (nargs) <= (max)) \
+ || _PyArg_CheckPositional((funcname), (nargs), (min), (max)))
+
#endif
PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list);
@@ -121,28 +121,28 @@ PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords(
...);
PyAPI_FUNC(int) _PyArg_VaParseTupleAndKeywordsFast(PyObject *, PyObject *,
struct _PyArg_Parser *, va_list);
-PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywords(
- PyObject *const *args, Py_ssize_t nargs,
- PyObject *kwargs, PyObject *kwnames,
- struct _PyArg_Parser *parser,
- int minpos, int maxpos, int minkw,
- PyObject **buf);
-#define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \
- (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \
- (minpos) <= (nargs) && (nargs) <= (maxpos) && args != NULL) ? (args) : \
- _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \
- (minpos), (maxpos), (minkw), (buf)))
-
+PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywords(
+ PyObject *const *args, Py_ssize_t nargs,
+ PyObject *kwargs, PyObject *kwnames,
+ struct _PyArg_Parser *parser,
+ int minpos, int maxpos, int minkw,
+ PyObject **buf);
+#define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \
+ (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \
+ (minpos) <= (nargs) && (nargs) <= (maxpos) && args != NULL) ? (args) : \
+ _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \
+ (minpos), (maxpos), (minkw), (buf)))
+
void _PyArg_Fini(void);
#endif /* Py_LIMITED_API */
PyAPI_FUNC(int) PyModule_AddObject(PyObject *, const char *, PyObject *);
PyAPI_FUNC(int) PyModule_AddIntConstant(PyObject *, const char *, long);
PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
-/* New in 3.9 */
-PyAPI_FUNC(int) PyModule_AddType(PyObject *module, PyTypeObject *type);
-#endif /* Py_LIMITED_API */
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
+/* New in 3.9 */
+PyAPI_FUNC(int) PyModule_AddType(PyObject *module, PyTypeObject *type);
+#endif /* Py_LIMITED_API */
#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c)
#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c)
diff --git a/contrib/tools/python3/src/Include/moduleobject.h b/contrib/tools/python3/src/Include/moduleobject.h
index 04ebdb28bf..cf9ad40c0a 100644
--- a/contrib/tools/python3/src/Include/moduleobject.h
+++ b/contrib/tools/python3/src/Include/moduleobject.h
@@ -10,7 +10,7 @@ extern "C" {
PyAPI_DATA(PyTypeObject) PyModule_Type;
#define PyModule_Check(op) PyObject_TypeCheck(op, &PyModule_Type)
-#define PyModule_CheckExact(op) Py_IS_TYPE(op, &PyModule_Type)
+#define PyModule_CheckExact(op) Py_IS_TYPE(op, &PyModule_Type)
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
PyAPI_FUNC(PyObject *) PyModule_NewObject(
@@ -25,12 +25,12 @@ PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *);
PyAPI_FUNC(PyObject *) PyModule_GetNameObject(PyObject *);
#endif
PyAPI_FUNC(const char *) PyModule_GetName(PyObject *);
-Py_DEPRECATED(3.2) PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *);
+Py_DEPRECATED(3.2) PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *);
PyAPI_FUNC(PyObject *) PyModule_GetFilenameObject(PyObject *);
#ifndef Py_LIMITED_API
PyAPI_FUNC(void) _PyModule_Clear(PyObject *);
PyAPI_FUNC(void) _PyModule_ClearDict(PyObject *);
-PyAPI_FUNC(int) _PyModuleSpec_IsInitializing(PyObject *);
+PyAPI_FUNC(int) _PyModuleSpec_IsInitializing(PyObject *);
#endif
PyAPI_FUNC(struct PyModuleDef*) PyModule_GetDef(PyObject*);
PyAPI_FUNC(void*) PyModule_GetState(PyObject*);
diff --git a/contrib/tools/python3/src/Include/node.h b/contrib/tools/python3/src/Include/node.h
index f64ceb0392..ca24f28908 100644
--- a/contrib/tools/python3/src/Include/node.h
+++ b/contrib/tools/python3/src/Include/node.h
@@ -14,14 +14,14 @@ typedef struct _node {
int n_col_offset;
int n_nchildren;
struct _node *n_child;
- int n_end_lineno;
- int n_end_col_offset;
+ int n_end_lineno;
+ int n_end_col_offset;
} node;
PyAPI_FUNC(node *) PyNode_New(int type);
PyAPI_FUNC(int) PyNode_AddChild(node *n, int type,
- char *str, int lineno, int col_offset,
- int end_lineno, int end_col_offset);
+ char *str, int lineno, int col_offset,
+ int end_lineno, int end_col_offset);
PyAPI_FUNC(void) PyNode_Free(node *n);
#ifndef Py_LIMITED_API
PyAPI_FUNC(Py_ssize_t) _PyNode_SizeOf(node *n);
@@ -39,7 +39,7 @@ PyAPI_FUNC(Py_ssize_t) _PyNode_SizeOf(node *n);
#define REQ(n, type) assert(TYPE(n) == (type))
PyAPI_FUNC(void) PyNode_ListTree(node *);
-void _PyNode_FinalizeEndPos(node *n); // helper also used in parsetok.c
+void _PyNode_FinalizeEndPos(node *n); // helper also used in parsetok.c
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/object.h b/contrib/tools/python3/src/Include/object.h
index abcc2e046c..9c1a7f479e 100644
--- a/contrib/tools/python3/src/Include/object.h
+++ b/contrib/tools/python3/src/Include/object.h
@@ -1,6 +1,6 @@
#ifndef Py_OBJECT_H
#define Py_OBJECT_H
-
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -27,7 +27,7 @@ of data it contains. An object's type is fixed when it is created.
Types themselves are represented as objects; an object contains a
pointer to the corresponding type object. The type itself has a type
pointer pointing to the object representing the type 'type', which
-contains a pointer to itself!.
+contains a pointer to itself!.
Objects do not float around in memory; once allocated an object keeps
the same size and address. Objects that must hold variable-size data
@@ -52,8 +52,8 @@ A standard interface exists for objects that contain an array of items
whose size is determined when the object is allocated.
*/
-/* Py_DEBUG implies Py_REF_DEBUG. */
-#if defined(Py_DEBUG) && !defined(Py_REF_DEBUG)
+/* Py_DEBUG implies Py_REF_DEBUG. */
+#if defined(Py_DEBUG) && !defined(Py_REF_DEBUG)
#define Py_REF_DEBUG
#endif
@@ -61,9 +61,9 @@ whose size is determined when the object is allocated.
#error Py_LIMITED_API is incompatible with Py_DEBUG, Py_TRACE_REFS, and Py_REF_DEBUG
#endif
-/* PyTypeObject structure is defined in cpython/object.h.
- In Py_LIMITED_API, PyTypeObject is an opaque structure. */
-typedef struct _typeobject PyTypeObject;
+/* PyTypeObject structure is defined in cpython/object.h.
+ In Py_LIMITED_API, PyTypeObject is an opaque structure. */
+typedef struct _typeobject PyTypeObject;
#ifdef Py_TRACE_REFS
/* Define pointers to support a doubly-linked list of all live heap objects. */
@@ -105,46 +105,46 @@ typedef struct _typeobject PyTypeObject;
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt;
- PyTypeObject *ob_type;
+ PyTypeObject *ob_type;
} PyObject;
-/* Cast argument to PyObject* type. */
-#define _PyObject_CAST(op) ((PyObject*)(op))
-#define _PyObject_CAST_CONST(op) ((const PyObject*)(op))
-
+/* Cast argument to PyObject* type. */
+#define _PyObject_CAST(op) ((PyObject*)(op))
+#define _PyObject_CAST_CONST(op) ((const PyObject*)(op))
+
typedef struct {
PyObject ob_base;
Py_ssize_t ob_size; /* Number of items in variable part */
} PyVarObject;
-/* Cast argument to PyVarObject* type. */
-#define _PyVarObject_CAST(op) ((PyVarObject*)(op))
-
-#define Py_REFCNT(ob) (_PyObject_CAST(ob)->ob_refcnt)
-#define Py_TYPE(ob) (_PyObject_CAST(ob)->ob_type)
-#define Py_SIZE(ob) (_PyVarObject_CAST(ob)->ob_size)
-
-static inline int _Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type) {
- return ob->ob_type == type;
-}
-#define Py_IS_TYPE(ob, type) _Py_IS_TYPE(_PyObject_CAST_CONST(ob), type)
-
-static inline void _Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) {
- ob->ob_refcnt = refcnt;
-}
-#define Py_SET_REFCNT(ob, refcnt) _Py_SET_REFCNT(_PyObject_CAST(ob), refcnt)
-
-static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type) {
- ob->ob_type = type;
-}
-#define Py_SET_TYPE(ob, type) _Py_SET_TYPE(_PyObject_CAST(ob), type)
-
-static inline void _Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) {
- ob->ob_size = size;
-}
-#define Py_SET_SIZE(ob, size) _Py_SET_SIZE(_PyVarObject_CAST(ob), size)
-
-
+/* Cast argument to PyVarObject* type. */
+#define _PyVarObject_CAST(op) ((PyVarObject*)(op))
+
+#define Py_REFCNT(ob) (_PyObject_CAST(ob)->ob_refcnt)
+#define Py_TYPE(ob) (_PyObject_CAST(ob)->ob_type)
+#define Py_SIZE(ob) (_PyVarObject_CAST(ob)->ob_size)
+
+static inline int _Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type) {
+ return ob->ob_type == type;
+}
+#define Py_IS_TYPE(ob, type) _Py_IS_TYPE(_PyObject_CAST_CONST(ob), type)
+
+static inline void _Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) {
+ ob->ob_refcnt = refcnt;
+}
+#define Py_SET_REFCNT(ob, refcnt) _Py_SET_REFCNT(_PyObject_CAST(ob), refcnt)
+
+static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type) {
+ ob->ob_type = type;
+}
+#define Py_SET_TYPE(ob, type) _Py_SET_TYPE(_PyObject_CAST(ob), type)
+
+static inline void _Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) {
+ ob->ob_size = size;
+}
+#define Py_SET_SIZE(ob, size) _Py_SET_SIZE(_PyVarObject_CAST(ob), size)
+
+
/*
Type objects contain a string containing the type name (to help somewhat
in debugging), the allocation parameters (see PyObject_New() and
@@ -190,8 +190,8 @@ typedef PyObject *(*iternextfunc) (PyObject *);
typedef PyObject *(*descrgetfunc) (PyObject *, PyObject *, PyObject *);
typedef int (*descrsetfunc) (PyObject *, PyObject *, PyObject *);
typedef int (*initproc)(PyObject *, PyObject *, PyObject *);
-typedef PyObject *(*newfunc)(PyTypeObject *, PyObject *, PyObject *);
-typedef PyObject *(*allocfunc)(PyTypeObject *, Py_ssize_t);
+typedef PyObject *(*newfunc)(PyTypeObject *, PyObject *, PyObject *);
+typedef PyObject *(*allocfunc)(PyTypeObject *, Py_ssize_t);
typedef struct{
int slot; /* slot id, see below */
@@ -211,31 +211,31 @@ PyAPI_FUNC(PyObject*) PyType_FromSpec(PyType_Spec*);
PyAPI_FUNC(PyObject*) PyType_FromSpecWithBases(PyType_Spec*, PyObject*);
#endif
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000
-PyAPI_FUNC(void*) PyType_GetSlot(PyTypeObject*, int);
+PyAPI_FUNC(void*) PyType_GetSlot(PyTypeObject*, int);
+#endif
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
+PyAPI_FUNC(PyObject*) PyType_FromModuleAndSpec(PyObject *, PyType_Spec *, PyObject *);
+PyAPI_FUNC(PyObject *) PyType_GetModule(struct _typeobject *);
+PyAPI_FUNC(void *) PyType_GetModuleState(struct _typeobject *);
#endif
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
-PyAPI_FUNC(PyObject*) PyType_FromModuleAndSpec(PyObject *, PyType_Spec *, PyObject *);
-PyAPI_FUNC(PyObject *) PyType_GetModule(struct _typeobject *);
-PyAPI_FUNC(void *) PyType_GetModuleState(struct _typeobject *);
-#endif
/* Generic type check */
-PyAPI_FUNC(int) PyType_IsSubtype(PyTypeObject *, PyTypeObject *);
+PyAPI_FUNC(int) PyType_IsSubtype(PyTypeObject *, PyTypeObject *);
#define PyObject_TypeCheck(ob, tp) \
- (Py_IS_TYPE(ob, tp) || PyType_IsSubtype(Py_TYPE(ob), (tp)))
+ (Py_IS_TYPE(ob, tp) || PyType_IsSubtype(Py_TYPE(ob), (tp)))
-PyAPI_DATA(PyTypeObject) PyType_Type; /* built-in 'type' */
-PyAPI_DATA(PyTypeObject) PyBaseObject_Type; /* built-in 'object' */
-PyAPI_DATA(PyTypeObject) PySuper_Type; /* built-in 'super' */
+PyAPI_DATA(PyTypeObject) PyType_Type; /* built-in 'type' */
+PyAPI_DATA(PyTypeObject) PyBaseObject_Type; /* built-in 'object' */
+PyAPI_DATA(PyTypeObject) PySuper_Type; /* built-in 'super' */
-PyAPI_FUNC(unsigned long) PyType_GetFlags(PyTypeObject*);
+PyAPI_FUNC(unsigned long) PyType_GetFlags(PyTypeObject*);
-PyAPI_FUNC(int) PyType_Ready(PyTypeObject *);
-PyAPI_FUNC(PyObject *) PyType_GenericAlloc(PyTypeObject *, Py_ssize_t);
-PyAPI_FUNC(PyObject *) PyType_GenericNew(PyTypeObject *,
+PyAPI_FUNC(int) PyType_Ready(PyTypeObject *);
+PyAPI_FUNC(PyObject *) PyType_GenericAlloc(PyTypeObject *, Py_ssize_t);
+PyAPI_FUNC(PyObject *) PyType_GenericNew(PyTypeObject *,
PyObject *, PyObject *);
PyAPI_FUNC(unsigned int) PyType_ClearCache(void);
-PyAPI_FUNC(void) PyType_Modified(PyTypeObject *);
+PyAPI_FUNC(void) PyType_Modified(PyTypeObject *);
/* Generic operations on objects */
PyAPI_FUNC(PyObject *) PyObject_Repr(PyObject *);
@@ -252,7 +252,7 @@ PyAPI_FUNC(int) PyObject_SetAttr(PyObject *, PyObject *, PyObject *);
PyAPI_FUNC(int) PyObject_HasAttr(PyObject *, PyObject *);
PyAPI_FUNC(PyObject *) PyObject_SelfIter(PyObject *);
PyAPI_FUNC(PyObject *) PyObject_GenericGetAttr(PyObject *, PyObject *);
-PyAPI_FUNC(int) PyObject_GenericSetAttr(PyObject *, PyObject *, PyObject *);
+PyAPI_FUNC(int) PyObject_GenericSetAttr(PyObject *, PyObject *, PyObject *);
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
PyAPI_FUNC(int) PyObject_GenericSetDict(PyObject *, PyObject *, void *);
#endif
@@ -279,14 +279,14 @@ PyAPI_FUNC(void) Py_ReprLeave(PyObject *);
#define Py_PRINT_RAW 1 /* No string quotes etc. */
/*
-Type flags (tp_flags)
+Type flags (tp_flags)
-These flags are used to change expected features and behavior for a
-particular type.
+These flags are used to change expected features and behavior for a
+particular type.
Arbitration of the flag bit positions will need to be coordinated among
all extension writers who publicly release their extensions (this will
-be fewer than you might expect!).
+be fewer than you might expect!).
Most flags were removed as of Python 3.0 to make room for new flags. (Some
flags are not for backwards compatibility but to indicate the presence of an
@@ -304,20 +304,20 @@ given type object has a specified feature.
/* Set if the type allows subclassing */
#define Py_TPFLAGS_BASETYPE (1UL << 10)
-/* Set if the type implements the vectorcall protocol (PEP 590) */
-#ifndef Py_LIMITED_API
-#define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11)
-// Backwards compatibility alias for API that was provisional in Python 3.8
-#define _Py_TPFLAGS_HAVE_VECTORCALL Py_TPFLAGS_HAVE_VECTORCALL
-#endif
-
+/* Set if the type implements the vectorcall protocol (PEP 590) */
+#ifndef Py_LIMITED_API
+#define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11)
+// Backwards compatibility alias for API that was provisional in Python 3.8
+#define _Py_TPFLAGS_HAVE_VECTORCALL Py_TPFLAGS_HAVE_VECTORCALL
+#endif
+
/* Set if the type is 'ready' -- fully initialized */
#define Py_TPFLAGS_READY (1UL << 12)
/* Set while the type is being 'readied', to prevent recursive ready calls */
#define Py_TPFLAGS_READYING (1UL << 13)
-/* Objects support garbage collection (see objimpl.h) */
+/* Objects support garbage collection (see objimpl.h) */
#define Py_TPFLAGS_HAVE_GC (1UL << 14)
/* These two bits are preserved for Stackless Python, next after this is 17 */
@@ -327,9 +327,9 @@ given type object has a specified feature.
#define Py_TPFLAGS_HAVE_STACKLESS_EXTENSION 0
#endif
-/* Objects behave like an unbound method */
-#define Py_TPFLAGS_METHOD_DESCRIPTOR (1UL << 17)
-
+/* Objects behave like an unbound method */
+#define Py_TPFLAGS_METHOD_DESCRIPTOR (1UL << 17)
+
/* Objects support type attribute cache */
#define Py_TPFLAGS_HAVE_VERSION_TAG (1UL << 18)
#define Py_TPFLAGS_VALID_VERSION_TAG (1UL << 19)
@@ -355,11 +355,11 @@ given type object has a specified feature.
/* NOTE: The following flags reuse lower bits (removed as part of the
* Python 3.0 transition). */
-/* The following flag is kept for compatibility. Starting with 3.8,
- * binary compatibility of C extensions across feature releases of
- * Python is not supported anymore, except when using the stable ABI.
- */
-
+/* The following flag is kept for compatibility. Starting with 3.8,
+ * binary compatibility of C extensions across feature releases of
+ * Python is not supported anymore, except when using the stable ABI.
+ */
+
/* Type structure has tp_finalize member (3.4) */
#define Py_TPFLAGS_HAVE_FINALIZE (1UL << 0)
@@ -394,48 +394,48 @@ you can count such references to the type object.)
#ifdef Py_REF_DEBUG
PyAPI_DATA(Py_ssize_t) _Py_RefTotal;
-PyAPI_FUNC(void) _Py_NegativeRefcount(const char *filename, int lineno,
- PyObject *op);
+PyAPI_FUNC(void) _Py_NegativeRefcount(const char *filename, int lineno,
+ PyObject *op);
#endif /* Py_REF_DEBUG */
PyAPI_FUNC(void) _Py_Dealloc(PyObject *);
-
-static inline void _Py_INCREF(PyObject *op)
-{
-#ifdef Py_REF_DEBUG
- _Py_RefTotal++;
-#endif
- op->ob_refcnt++;
-}
-
-#define Py_INCREF(op) _Py_INCREF(_PyObject_CAST(op))
-
-static inline void _Py_DECREF(
-#ifdef Py_REF_DEBUG
- const char *filename, int lineno,
-#endif
- PyObject *op)
-{
-#ifdef Py_REF_DEBUG
- _Py_RefTotal--;
-#endif
- if (--op->ob_refcnt != 0) {
-#ifdef Py_REF_DEBUG
- if (op->ob_refcnt < 0) {
- _Py_NegativeRefcount(filename, lineno, op);
- }
+
+static inline void _Py_INCREF(PyObject *op)
+{
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal++;
+#endif
+ op->ob_refcnt++;
+}
+
+#define Py_INCREF(op) _Py_INCREF(_PyObject_CAST(op))
+
+static inline void _Py_DECREF(
+#ifdef Py_REF_DEBUG
+ const char *filename, int lineno,
+#endif
+ PyObject *op)
+{
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal--;
+#endif
+ if (--op->ob_refcnt != 0) {
+#ifdef Py_REF_DEBUG
+ if (op->ob_refcnt < 0) {
+ _Py_NegativeRefcount(filename, lineno, op);
+ }
#endif
- }
- else {
- _Py_Dealloc(op);
- }
-}
+ }
+ else {
+ _Py_Dealloc(op);
+ }
+}
-#ifdef Py_REF_DEBUG
-# define Py_DECREF(op) _Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op))
-#else
-# define Py_DECREF(op) _Py_DECREF(_PyObject_CAST(op))
-#endif
+#ifdef Py_REF_DEBUG
+# define Py_DECREF(op) _Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op))
+#else
+# define Py_DECREF(op) _Py_DECREF(_PyObject_CAST(op))
+#endif
/* Safely decref `op` and set `op` to NULL, especially useful in tp_clear
@@ -474,31 +474,31 @@ static inline void _Py_DECREF(
*/
#define Py_CLEAR(op) \
do { \
- PyObject *_py_tmp = _PyObject_CAST(op); \
+ PyObject *_py_tmp = _PyObject_CAST(op); \
if (_py_tmp != NULL) { \
(op) = NULL; \
Py_DECREF(_py_tmp); \
} \
} while (0)
-/* Function to use in case the object pointer can be NULL: */
-static inline void _Py_XINCREF(PyObject *op)
-{
- if (op != NULL) {
- Py_INCREF(op);
- }
-}
+/* Function to use in case the object pointer can be NULL: */
+static inline void _Py_XINCREF(PyObject *op)
+{
+ if (op != NULL) {
+ Py_INCREF(op);
+ }
+}
-#define Py_XINCREF(op) _Py_XINCREF(_PyObject_CAST(op))
+#define Py_XINCREF(op) _Py_XINCREF(_PyObject_CAST(op))
-static inline void _Py_XDECREF(PyObject *op)
-{
- if (op != NULL) {
- Py_DECREF(op);
- }
-}
+static inline void _Py_XDECREF(PyObject *op)
+{
+ if (op != NULL) {
+ Py_DECREF(op);
+ }
+}
-#define Py_XDECREF(op) _Py_XDECREF(_PyObject_CAST(op))
+#define Py_XDECREF(op) _Py_XDECREF(_PyObject_CAST(op))
/*
These are provided as conveniences to Python runtime embedders, so that
@@ -610,38 +610,38 @@ it carefully, it may save lots of calls to Py_INCREF() and Py_DECREF() at
times.
*/
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_OBJECT_H
-# include "cpython/object.h"
-# undef Py_CPYTHON_OBJECT_H
-#endif
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_OBJECT_H
+# include "cpython/object.h"
+# undef Py_CPYTHON_OBJECT_H
+#endif
-static inline int
-PyType_HasFeature(PyTypeObject *type, unsigned long feature)
+static inline int
+PyType_HasFeature(PyTypeObject *type, unsigned long feature)
{
- unsigned long flags;
-#ifdef Py_LIMITED_API
- // PyTypeObject is opaque in the limited C API
- flags = PyType_GetFlags(type);
-#else
- flags = type->tp_flags;
-#endif
- return ((flags & feature) != 0);
+ unsigned long flags;
+#ifdef Py_LIMITED_API
+ // PyTypeObject is opaque in the limited C API
+ flags = PyType_GetFlags(type);
+#else
+ flags = type->tp_flags;
+#endif
+ return ((flags & feature) != 0);
}
-#define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag)
+#define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag)
-static inline int _PyType_Check(PyObject *op) {
- return PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS);
-}
-#define PyType_Check(op) _PyType_Check(_PyObject_CAST(op))
+static inline int _PyType_Check(PyObject *op) {
+ return PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS);
+}
+#define PyType_Check(op) _PyType_Check(_PyObject_CAST(op))
+
+static inline int _PyType_CheckExact(PyObject *op) {
+ return Py_IS_TYPE(op, &PyType_Type);
+}
+#define PyType_CheckExact(op) _PyType_CheckExact(_PyObject_CAST(op))
-static inline int _PyType_CheckExact(PyObject *op) {
- return Py_IS_TYPE(op, &PyType_Type);
-}
-#define PyType_CheckExact(op) _PyType_CheckExact(_PyObject_CAST(op))
-
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Include/objimpl.h b/contrib/tools/python3/src/Include/objimpl.h
index 6def8db83a..030d7eee29 100644
--- a/contrib/tools/python3/src/Include/objimpl.h
+++ b/contrib/tools/python3/src/Include/objimpl.h
@@ -122,30 +122,30 @@ PyAPI_FUNC(PyVarObject *) PyObject_InitVar(PyVarObject *,
PyAPI_FUNC(PyObject *) _PyObject_New(PyTypeObject *);
PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t);
-#define PyObject_New(type, typeobj) ((type *)_PyObject_New(typeobj))
-
-// Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly
-// PyObject_MALLOC() with _PyObject_SIZE().
-#define PyObject_NEW(type, typeobj) PyObject_New(type, typeobj)
-
+#define PyObject_New(type, typeobj) ((type *)_PyObject_New(typeobj))
+
+// Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly
+// PyObject_MALLOC() with _PyObject_SIZE().
+#define PyObject_NEW(type, typeobj) PyObject_New(type, typeobj)
+
#define PyObject_NewVar(type, typeobj, n) \
( (type *) _PyObject_NewVar((typeobj), (n)) )
-// Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly
-// PyObject_MALLOC() with _PyObject_VAR_SIZE().
-#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, typeobj, n)
-
-
-#ifdef Py_LIMITED_API
-/* Define PyObject_INIT() and PyObject_INIT_VAR() as aliases to PyObject_Init()
- and PyObject_InitVar() in the limited C API for compatibility with the
- CPython C API. */
-# define PyObject_INIT(op, typeobj) \
- PyObject_Init(_PyObject_CAST(op), (typeobj))
-# define PyObject_INIT_VAR(op, typeobj, size) \
- PyObject_InitVar(_PyVarObject_CAST(op), (typeobj), (size))
-#else
-/* PyObject_INIT() and PyObject_INIT_VAR() are defined in cpython/objimpl.h */
+// Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly
+// PyObject_MALLOC() with _PyObject_VAR_SIZE().
+#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, typeobj, n)
+
+
+#ifdef Py_LIMITED_API
+/* Define PyObject_INIT() and PyObject_INIT_VAR() as aliases to PyObject_Init()
+ and PyObject_InitVar() in the limited C API for compatibility with the
+ CPython C API. */
+# define PyObject_INIT(op, typeobj) \
+ PyObject_Init(_PyObject_CAST(op), (typeobj))
+# define PyObject_INIT_VAR(op, typeobj, size) \
+ PyObject_InitVar(_PyVarObject_CAST(op), (typeobj), (size))
+#else
+/* PyObject_INIT() and PyObject_INIT_VAR() are defined in cpython/objimpl.h */
#endif
@@ -162,22 +162,22 @@ PyAPI_FUNC(Py_ssize_t) PyGC_Collect(void);
PyAPI_FUNC(PyVarObject *) _PyObject_GC_Resize(PyVarObject *, Py_ssize_t);
#define PyObject_GC_Resize(type, op, n) \
- ( (type *) _PyObject_GC_Resize(_PyVarObject_CAST(op), (n)) )
+ ( (type *) _PyObject_GC_Resize(_PyVarObject_CAST(op), (n)) )
-PyAPI_FUNC(PyObject *) _PyObject_GC_New(PyTypeObject *);
-PyAPI_FUNC(PyVarObject *) _PyObject_GC_NewVar(PyTypeObject *, Py_ssize_t);
+PyAPI_FUNC(PyObject *) _PyObject_GC_New(PyTypeObject *);
+PyAPI_FUNC(PyVarObject *) _PyObject_GC_NewVar(PyTypeObject *, Py_ssize_t);
-/* Tell the GC to track this object.
- *
- * See also private _PyObject_GC_TRACK() macro. */
-PyAPI_FUNC(void) PyObject_GC_Track(void *);
+/* Tell the GC to track this object.
+ *
+ * See also private _PyObject_GC_TRACK() macro. */
+PyAPI_FUNC(void) PyObject_GC_Track(void *);
/* Tell the GC to stop tracking this object.
- *
- * See also private _PyObject_GC_UNTRACK() macro. */
-PyAPI_FUNC(void) PyObject_GC_UnTrack(void *);
+ *
+ * See also private _PyObject_GC_UNTRACK() macro. */
+PyAPI_FUNC(void) PyObject_GC_UnTrack(void *);
PyAPI_FUNC(void) PyObject_GC_Del(void *);
@@ -186,8 +186,8 @@ PyAPI_FUNC(void) PyObject_GC_Del(void *);
#define PyObject_GC_NewVar(type, typeobj, n) \
( (type *) _PyObject_GC_NewVar((typeobj), (n)) )
-PyAPI_FUNC(int) PyObject_GC_IsTracked(PyObject *);
-PyAPI_FUNC(int) PyObject_GC_IsFinalized(PyObject *);
+PyAPI_FUNC(int) PyObject_GC_IsTracked(PyObject *);
+PyAPI_FUNC(int) PyObject_GC_IsFinalized(PyObject *);
/* Utility macro to help write tp_traverse functions.
* To use this macro, the tp_traverse function must name its arguments
@@ -197,17 +197,17 @@ PyAPI_FUNC(int) PyObject_GC_IsFinalized(PyObject *);
#define Py_VISIT(op) \
do { \
if (op) { \
- int vret = visit(_PyObject_CAST(op), arg); \
+ int vret = visit(_PyObject_CAST(op), arg); \
if (vret) \
return vret; \
} \
} while (0)
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_OBJIMPL_H
-# include "cpython/objimpl.h"
-# undef Py_CPYTHON_OBJIMPL_H
-#endif
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_OBJIMPL_H
+# include "cpython/objimpl.h"
+# undef Py_CPYTHON_OBJIMPL_H
+#endif
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/odictobject.h b/contrib/tools/python3/src/Include/odictobject.h
index ce561b32ab..e070413017 100644
--- a/contrib/tools/python3/src/Include/odictobject.h
+++ b/contrib/tools/python3/src/Include/odictobject.h
@@ -19,7 +19,7 @@ PyAPI_DATA(PyTypeObject) PyODictItems_Type;
PyAPI_DATA(PyTypeObject) PyODictValues_Type;
#define PyODict_Check(op) PyObject_TypeCheck(op, &PyODict_Type)
-#define PyODict_CheckExact(op) Py_IS_TYPE(op, &PyODict_Type)
+#define PyODict_CheckExact(op) Py_IS_TYPE(op, &PyODict_Type)
#define PyODict_SIZE(op) PyDict_GET_SIZE((op))
PyAPI_FUNC(PyObject *) PyODict_New(void);
@@ -27,13 +27,13 @@ PyAPI_FUNC(int) PyODict_SetItem(PyObject *od, PyObject *key, PyObject *item);
PyAPI_FUNC(int) PyODict_DelItem(PyObject *od, PyObject *key);
/* wrappers around PyDict* functions */
-#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), key)
+#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), key)
#define PyODict_GetItemWithError(od, key) \
- PyDict_GetItemWithError(_PyObject_CAST(od), key)
-#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), key)
-#define PyODict_Size(od) PyDict_Size(_PyObject_CAST(od))
+ PyDict_GetItemWithError(_PyObject_CAST(od), key)
+#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), key)
+#define PyODict_Size(od) PyDict_Size(_PyObject_CAST(od))
#define PyODict_GetItemString(od, key) \
- PyDict_GetItemString(_PyObject_CAST(od), key)
+ PyDict_GetItemString(_PyObject_CAST(od), key)
#endif
diff --git a/contrib/tools/python3/src/Include/opcode.h b/contrib/tools/python3/src/Include/opcode.h
index a4675e56bb..19944fac0b 100644
--- a/contrib/tools/python3/src/Include/opcode.h
+++ b/contrib/tools/python3/src/Include/opcode.h
@@ -1,4 +1,4 @@
-/* Auto-generated by Tools/scripts/generate_opcode_h.py from Lib/opcode.py */
+/* Auto-generated by Tools/scripts/generate_opcode_h.py from Lib/opcode.py */
#ifndef Py_OPCODE_H
#define Py_OPCODE_H
#ifdef __cplusplus
@@ -12,7 +12,7 @@ extern "C" {
#define ROT_THREE 3
#define DUP_TOP 4
#define DUP_TOP_TWO 5
-#define ROT_FOUR 6
+#define ROT_FOUR 6
#define NOP 9
#define UNARY_POSITIVE 10
#define UNARY_NEGATIVE 11
@@ -30,12 +30,12 @@ extern "C" {
#define BINARY_TRUE_DIVIDE 27
#define INPLACE_FLOOR_DIVIDE 28
#define INPLACE_TRUE_DIVIDE 29
-#define RERAISE 48
-#define WITH_EXCEPT_START 49
+#define RERAISE 48
+#define WITH_EXCEPT_START 49
#define GET_AITER 50
#define GET_ANEXT 51
#define BEFORE_ASYNC_WITH 52
-#define END_ASYNC_FOR 54
+#define END_ASYNC_FOR 54
#define INPLACE_ADD 55
#define INPLACE_SUBTRACT 56
#define INPLACE_MULTIPLY 57
@@ -54,13 +54,13 @@ extern "C" {
#define LOAD_BUILD_CLASS 71
#define YIELD_FROM 72
#define GET_AWAITABLE 73
-#define LOAD_ASSERTION_ERROR 74
+#define LOAD_ASSERTION_ERROR 74
#define INPLACE_LSHIFT 75
#define INPLACE_RSHIFT 76
#define INPLACE_AND 77
#define INPLACE_XOR 78
#define INPLACE_OR 79
-#define LIST_TO_TUPLE 82
+#define LIST_TO_TUPLE 82
#define RETURN_VALUE 83
#define IMPORT_STAR 84
#define SETUP_ANNOTATIONS 85
@@ -94,9 +94,9 @@ extern "C" {
#define POP_JUMP_IF_FALSE 114
#define POP_JUMP_IF_TRUE 115
#define LOAD_GLOBAL 116
-#define IS_OP 117
-#define CONTAINS_OP 118
-#define JUMP_IF_NOT_EXC_MATCH 121
+#define IS_OP 117
+#define CONTAINS_OP 118
+#define JUMP_IF_NOT_EXC_MATCH 121
#define SETUP_FINALLY 122
#define LOAD_FAST 124
#define STORE_FAST 125
@@ -123,10 +123,10 @@ extern "C" {
#define BUILD_STRING 157
#define LOAD_METHOD 160
#define CALL_METHOD 161
-#define LIST_EXTEND 162
-#define SET_UPDATE 163
-#define DICT_MERGE 164
-#define DICT_UPDATE 165
+#define LIST_EXTEND 162
+#define SET_UPDATE 163
+#define DICT_MERGE 164
+#define DICT_UPDATE 165
/* EXCEPT_HANDLER is a special, implicit block type which is created when
entering an except handler. It is not an opcode but we define it here
diff --git a/contrib/tools/python3/src/Include/osdefs.h b/contrib/tools/python3/src/Include/osdefs.h
index d2cd867446..3243944a14 100644
--- a/contrib/tools/python3/src/Include/osdefs.h
+++ b/contrib/tools/python3/src/Include/osdefs.h
@@ -14,10 +14,10 @@ extern "C" {
#define DELIM L';'
#endif
-#ifdef __VXWORKS__
-#define DELIM L';'
-#endif
-
+#ifdef __VXWORKS__
+#define DELIM L';'
+#endif
+
/* Filename separator */
#ifndef SEP
#define SEP L'/'
diff --git a/contrib/tools/python3/src/Include/parsetok.h b/contrib/tools/python3/src/Include/parsetok.h
index 4c671f4508..935d733e90 100644
--- a/contrib/tools/python3/src/Include/parsetok.h
+++ b/contrib/tools/python3/src/Include/parsetok.h
@@ -1,4 +1,4 @@
-/* Parser-tokenizer link interface */
+/* Parser-tokenizer link interface */
#ifndef Py_LIMITED_API
#ifndef Py_PARSETOK_H
@@ -7,9 +7,9 @@
extern "C" {
#endif
-#include "grammar.h" /* grammar */
-#include "node.h" /* node */
-
+#include "grammar.h" /* grammar */
+#include "node.h" /* node */
+
typedef struct {
int error;
PyObject *filename;
@@ -34,8 +34,8 @@ typedef struct {
#define PyPARSE_IGNORE_COOKIE 0x0010
#define PyPARSE_BARRY_AS_BDFL 0x0020
-#define PyPARSE_TYPE_COMMENTS 0x0040
-#define PyPARSE_ASYNC_HACKS 0x0080
+#define PyPARSE_TYPE_COMMENTS 0x0040
+#define PyPARSE_ASYNC_HACKS 0x0080
PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int,
perrdetail *);
diff --git a/contrib/tools/python3/src/Include/patchlevel.h b/contrib/tools/python3/src/Include/patchlevel.h
index 48e356719e..23fbd55ffc 100644
--- a/contrib/tools/python3/src/Include/patchlevel.h
+++ b/contrib/tools/python3/src/Include/patchlevel.h
@@ -17,13 +17,13 @@
/* Version parsed out into numeric values */
/*--start constants--*/
#define PY_MAJOR_VERSION 3
-#define PY_MINOR_VERSION 9
-#define PY_MICRO_VERSION 10
+#define PY_MINOR_VERSION 9
+#define PY_MICRO_VERSION 10
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
#define PY_RELEASE_SERIAL 0
/* Version as a string */
-#define PY_VERSION "3.9.10"
+#define PY_VERSION "3.9.10"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
diff --git a/contrib/tools/python3/src/Include/picklebufobject.h b/contrib/tools/python3/src/Include/picklebufobject.h
index 8be4394911..0df2561dce 100644
--- a/contrib/tools/python3/src/Include/picklebufobject.h
+++ b/contrib/tools/python3/src/Include/picklebufobject.h
@@ -1,31 +1,31 @@
-/* PickleBuffer object. This is built-in for ease of use from third-party
- * C extensions.
- */
-
-#ifndef Py_PICKLEBUFOBJECT_H
-#define Py_PICKLEBUFOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-
-PyAPI_DATA(PyTypeObject) PyPickleBuffer_Type;
-
-#define PyPickleBuffer_Check(op) Py_IS_TYPE(op, &PyPickleBuffer_Type)
-
-/* Create a PickleBuffer redirecting to the given buffer-enabled object */
-PyAPI_FUNC(PyObject *) PyPickleBuffer_FromObject(PyObject *);
-/* Get the PickleBuffer's underlying view to the original object
- * (NULL if released)
- */
-PyAPI_FUNC(const Py_buffer *) PyPickleBuffer_GetBuffer(PyObject *);
-/* Release the PickleBuffer. Returns 0 on success, -1 on error. */
-PyAPI_FUNC(int) PyPickleBuffer_Release(PyObject *);
-
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PICKLEBUFOBJECT_H */
+/* PickleBuffer object. This is built-in for ease of use from third-party
+ * C extensions.
+ */
+
+#ifndef Py_PICKLEBUFOBJECT_H
+#define Py_PICKLEBUFOBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_LIMITED_API
+
+PyAPI_DATA(PyTypeObject) PyPickleBuffer_Type;
+
+#define PyPickleBuffer_Check(op) Py_IS_TYPE(op, &PyPickleBuffer_Type)
+
+/* Create a PickleBuffer redirecting to the given buffer-enabled object */
+PyAPI_FUNC(PyObject *) PyPickleBuffer_FromObject(PyObject *);
+/* Get the PickleBuffer's underlying view to the original object
+ * (NULL if released)
+ */
+PyAPI_FUNC(const Py_buffer *) PyPickleBuffer_GetBuffer(PyObject *);
+/* Release the PickleBuffer. Returns 0 on success, -1 on error. */
+PyAPI_FUNC(int) PyPickleBuffer_Release(PyObject *);
+
+#endif /* !Py_LIMITED_API */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_PICKLEBUFOBJECT_H */
diff --git a/contrib/tools/python3/src/Include/py_curses.h b/contrib/tools/python3/src/Include/py_curses.h
index ec5e138628..b70252d9d7 100644
--- a/contrib/tools/python3/src/Include/py_curses.h
+++ b/contrib/tools/python3/src/Include/py_curses.h
@@ -64,7 +64,7 @@ typedef struct {
char *encoding;
} PyCursesWindowObject;
-#define PyCursesWindow_Check(v) Py_IS_TYPE(v, &PyCursesWindow_Type)
+#define PyCursesWindow_Check(v) Py_IS_TYPE(v, &PyCursesWindow_Type)
#define PyCurses_CAPSULE_NAME "_curses._C_API"
diff --git a/contrib/tools/python3/src/Include/pycapsule.h b/contrib/tools/python3/src/Include/pycapsule.h
index 366f8f0ff1..fb5d503fea 100644
--- a/contrib/tools/python3/src/Include/pycapsule.h
+++ b/contrib/tools/python3/src/Include/pycapsule.h
@@ -22,7 +22,7 @@ PyAPI_DATA(PyTypeObject) PyCapsule_Type;
typedef void (*PyCapsule_Destructor)(PyObject *);
-#define PyCapsule_CheckExact(op) Py_IS_TYPE(op, &PyCapsule_Type)
+#define PyCapsule_CheckExact(op) Py_IS_TYPE(op, &PyCapsule_Type)
PyAPI_FUNC(PyObject *) PyCapsule_New(
diff --git a/contrib/tools/python3/src/Include/pyconfig-linux.h b/contrib/tools/python3/src/Include/pyconfig-linux.h
index 47a2550fdc..98de8abc72 100644
--- a/contrib/tools/python3/src/Include/pyconfig-linux.h
+++ b/contrib/tools/python3/src/Include/pyconfig-linux.h
@@ -9,18 +9,18 @@
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
-/* BUILD_GNU_TYPE + AIX_BUILDDATE are used to construct the PEP425 tag of the
- build system. */
-/* #undef AIX_BUILDDATE */
-
+/* BUILD_GNU_TYPE + AIX_BUILDDATE are used to construct the PEP425 tag of the
+ build system. */
+/* #undef AIX_BUILDDATE */
+
/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want
support for AIX C++ shared extension modules. */
/* #undef AIX_GENUINE_CPLUSPLUS */
-/* Alternative SOABI used in debug build to load C extensions built in release
- mode */
-/* #undef ALT_SOABI */
-
+/* Alternative SOABI used in debug build to load C extensions built in release
+ mode */
+/* #undef ALT_SOABI */
+
/* The Android API level. */
/* #undef ANDROID_API_LEVEL */
@@ -39,10 +39,10 @@
/* Define if --enable-ipv6 is specified */
#define ENABLE_IPV6 1
-/* Define to 1 if your system stores words within floats with the most
- significant word first */
-/* #undef FLOAT_WORDS_BIGENDIAN */
-
+/* Define to 1 if your system stores words within floats with the most
+ significant word first */
+/* #undef FLOAT_WORDS_BIGENDIAN */
+
/* Define if flock needs to be linked with bsd library. */
/* #undef FLOCK_NEEDS_LIBBSD */
@@ -149,9 +149,9 @@
/* Define to 1 if you have the `copysign' function. */
#define HAVE_COPYSIGN 1
-/* Define to 1 if you have the `copy_file_range' function. */
-/* #undef HAVE_COPY_FILE_RANGE */
-
+/* Define to 1 if you have the `copy_file_range' function. */
+/* #undef HAVE_COPY_FILE_RANGE */
+
/* Define to 1 if you have the <crypt.h> header file. */
#define HAVE_CRYPT_H 1
@@ -306,12 +306,12 @@
/* Define to 1 if you have the `execv' function. */
#define HAVE_EXECV 1
-/* Define to 1 if you have the `explicit_bzero' function. */
-/* #undef HAVE_EXPLICIT_BZERO */
-
-/* Define to 1 if you have the `explicit_memset' function. */
-/* #undef HAVE_EXPLICIT_MEMSET */
-
+/* Define to 1 if you have the `explicit_bzero' function. */
+/* #undef HAVE_EXPLICIT_BZERO */
+
+/* Define to 1 if you have the `explicit_memset' function. */
+/* #undef HAVE_EXPLICIT_MEMSET */
+
/* Define to 1 if you have the `expm1' function. */
#define HAVE_EXPM1 1
@@ -342,9 +342,9 @@
/* Define to 1 if you have the `fdopendir' function. */
#define HAVE_FDOPENDIR 1
-/* Define to 1 if you have the `fdwalk' function. */
-/* #undef HAVE_FDWALK */
-
+/* Define to 1 if you have the `fdwalk' function. */
+/* #undef HAVE_FDWALK */
+
/* Define to 1 if you have the `fexecve' function. */
#define HAVE_FEXECVE 1
@@ -429,12 +429,12 @@
/* Define to 1 if you have the `getentropy' function. */
/* #undef HAVE_GETENTROPY */
-/* Define to 1 if you have the `getgrgid_r' function. */
-#define HAVE_GETGRGID_R 1
-
-/* Define to 1 if you have the `getgrnam_r' function. */
-#define HAVE_GETGRNAM_R 1
-
+/* Define to 1 if you have the `getgrgid_r' function. */
+#define HAVE_GETGRGID_R 1
+
+/* Define to 1 if you have the `getgrnam_r' function. */
+#define HAVE_GETGRNAM_R 1
+
/* Define to 1 if you have the `getgrouplist' function. */
#define HAVE_GETGROUPLIST 1
@@ -489,12 +489,12 @@
/* Define to 1 if you have the `getpwent' function. */
#define HAVE_GETPWENT 1
-/* Define to 1 if you have the `getpwnam_r' function. */
-#define HAVE_GETPWNAM_R 1
-
-/* Define to 1 if you have the `getpwuid_r' function. */
-#define HAVE_GETPWUID_R 1
-
+/* Define to 1 if you have the `getpwnam_r' function. */
+#define HAVE_GETPWNAM_R 1
+
+/* Define to 1 if you have the `getpwuid_r' function. */
+#define HAVE_GETPWUID_R 1
+
/* Define to 1 if the getrandom() function is available */
/* #undef HAVE_GETRANDOM */
@@ -572,9 +572,9 @@
#define HAVE_LANGINFO_H 1
/* Defined to enable large file support when an off_t is bigger than a long
- and long long is at least as big as an off_t. You may need to add some
- flags for configuration and compilation to enable this mode. (For Solaris
- and Linux, the necessary defines are already defined.) */
+ and long long is at least as big as an off_t. You may need to add some
+ flags for configuration and compilation to enable this mode. (For Solaris
+ and Linux, the necessary defines are already defined.) */
/* #undef HAVE_LARGEFILE_SUPPORT */
/* Define to 1 if you have the 'lchflags' function. */
@@ -602,7 +602,7 @@
#define HAVE_LIBINTL_H 1
/* Define if you have the readline library (-lreadline). */
-/* #undef HAVE_LIBREADLINE */
+/* #undef HAVE_LIBREADLINE */
/* Define to 1 if you have the `resolv' library (-lresolv). */
/* #undef HAVE_LIBRESOLV */
@@ -625,27 +625,27 @@
/* Define to 1 if you have the <linux/can.h> header file. */
#define HAVE_LINUX_CAN_H 1
-/* Define to 1 if you have the <linux/can/j1939.h> header file. */
-#define HAVE_LINUX_CAN_J1939_H 1
-
+/* Define to 1 if you have the <linux/can/j1939.h> header file. */
+#define HAVE_LINUX_CAN_J1939_H 1
+
/* Define if compiling using Linux 3.6 or later. */
-#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1
+#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1
/* Define to 1 if you have the <linux/can/raw.h> header file. */
#define HAVE_LINUX_CAN_RAW_H 1
-/* Define if compiling using Linux 4.1 or later. */
-#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1
-
-/* Define to 1 if you have the <linux/memfd.h> header file. */
-#define HAVE_LINUX_MEMFD_H 1
-
+/* Define if compiling using Linux 4.1 or later. */
+#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1
+
+/* Define to 1 if you have the <linux/memfd.h> header file. */
+#define HAVE_LINUX_MEMFD_H 1
+
/* Define to 1 if you have the <linux/netlink.h> header file. */
#define HAVE_LINUX_NETLINK_H 1
-/* Define to 1 if you have the <linux/qrtr.h> header file. */
-#define HAVE_LINUX_QRTR_H 1
-
+/* Define to 1 if you have the <linux/qrtr.h> header file. */
+#define HAVE_LINUX_QRTR_H 1
+
/* Define to 1 if you have the <linux/random.h> header file. */
#define HAVE_LINUX_RANDOM_H 1
@@ -653,11 +653,11 @@
#define HAVE_LINUX_TIPC_H 1
/* Define to 1 if you have the <linux/vm_sockets.h> header file. */
-#define HAVE_LINUX_VM_SOCKETS_H 1
+#define HAVE_LINUX_VM_SOCKETS_H 1
+
+/* Define to 1 if you have the <linux/wait.h> header file. */
+#define HAVE_LINUX_WAIT_H 1
-/* Define to 1 if you have the <linux/wait.h> header file. */
-#define HAVE_LINUX_WAIT_H 1
-
/* Define to 1 if you have the `lockf' function. */
#define HAVE_LOCKF 1
@@ -667,7 +667,7 @@
/* Define to 1 if you have the `log2' function. */
#define HAVE_LOG2 1
-/* Define to 1 if the system has the type `long double'. */
+/* Define to 1 if the system has the type `long double'. */
#define HAVE_LONG_DOUBLE 1
/* Define to 1 if you have the `lstat' function. */
@@ -676,18 +676,18 @@
/* Define to 1 if you have the `lutimes' function. */
#define HAVE_LUTIMES 1
-/* Define to 1 if you have the `madvise' function. */
-#define HAVE_MADVISE 1
-
+/* Define to 1 if you have the `madvise' function. */
+#define HAVE_MADVISE 1
+
/* Define this if you have the makedev macro. */
#define HAVE_MAKEDEV 1
/* Define to 1 if you have the `mbrtowc' function. */
#define HAVE_MBRTOWC 1
-/* Define if you have the 'memfd_create' function. */
-/* #undef HAVE_MEMFD_CREATE */
-
+/* Define if you have the 'memfd_create' function. */
+/* #undef HAVE_MEMFD_CREATE */
+
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
@@ -766,9 +766,9 @@
/* Define to 1 if you have the `posix_spawn' function. */
#define HAVE_POSIX_SPAWN 1
-/* Define to 1 if you have the `posix_spawnp' function. */
-#define HAVE_POSIX_SPAWNP 1
-
+/* Define to 1 if you have the `posix_spawnp' function. */
+#define HAVE_POSIX_SPAWNP 1
+
/* Define to 1 if you have the `pread' function. */
#define HAVE_PREAD 1
@@ -781,18 +781,18 @@
/* Define if you have the 'prlimit' functions. */
#define HAVE_PRLIMIT 1
-/* Define if you have the '_dyld_shared_cache_contains_path' function. */
-/* #undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH */
-
+/* Define if you have the '_dyld_shared_cache_contains_path' function. */
+/* #undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH */
+
/* Define to 1 if you have the <process.h> header file. */
/* #undef HAVE_PROCESS_H */
/* Define if your compiler supports function prototype */
#define HAVE_PROTOTYPES 1
-/* Define to 1 if you have the `pthread_condattr_setclock' function. */
-#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
-
+/* Define to 1 if you have the `pthread_condattr_setclock' function. */
+#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
+
/* Defined for Solaris 2.6 bug in pthread header. */
/* #undef HAVE_PTHREAD_DESTRUCTOR */
@@ -839,35 +839,35 @@
#define HAVE_RENAMEAT 1
/* Define if readline supports append_history */
-/* #undef HAVE_RL_APPEND_HISTORY */
+/* #undef HAVE_RL_APPEND_HISTORY */
/* Define if you can turn off readline's signal handling. */
-/* #undef HAVE_RL_CATCH_SIGNAL */
+/* #undef HAVE_RL_CATCH_SIGNAL */
/* Define if you have readline 2.2 */
-/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */
+/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */
/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */
+/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */
/* Define if you have readline 4.2 */
-/* #undef HAVE_RL_COMPLETION_MATCHES */
+/* #undef HAVE_RL_COMPLETION_MATCHES */
/* Define if you have rl_completion_suppress_append */
-/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */
+/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */
/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_PRE_INPUT_HOOK */
+/* #undef HAVE_RL_PRE_INPUT_HOOK */
/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_RESIZE_TERMINAL */
+/* #undef HAVE_RL_RESIZE_TERMINAL */
/* Define to 1 if you have the `round' function. */
#define HAVE_ROUND 1
-/* Define to 1 if you have the `rtpSpawn' function. */
-/* #undef HAVE_RTPSPAWN */
-
+/* Define to 1 if you have the `rtpSpawn' function. */
+/* #undef HAVE_RTPSPAWN */
+
/* Define to 1 if you have the `sched_get_priority_max' function. */
#define HAVE_SCHED_GET_PRIORITY_MAX 1
@@ -955,21 +955,21 @@
/* Define to 1 if you have the <shadow.h> header file. */
#define HAVE_SHADOW_H 1
-/* Define to 1 if you have the `shm_open' function. */
-#define HAVE_SHM_OPEN 1
-
-/* Define to 1 if you have the `shm_unlink' function. */
-#define HAVE_SHM_UNLINK 1
-
+/* Define to 1 if you have the `shm_open' function. */
+#define HAVE_SHM_OPEN 1
+
+/* Define to 1 if you have the `shm_unlink' function. */
+#define HAVE_SHM_UNLINK 1
+
/* Define to 1 if you have the `sigaction' function. */
#define HAVE_SIGACTION 1
/* Define to 1 if you have the `sigaltstack' function. */
#define HAVE_SIGALTSTACK 1
-/* Define to 1 if you have the `sigfillset' function. */
-#define HAVE_SIGFILLSET 1
-
+/* Define to 1 if you have the `sigfillset' function. */
+#define HAVE_SIGFILLSET 1
+
/* Define to 1 if `si_band' is a member of `siginfo_t'. */
#define HAVE_SIGINFO_T_SI_BAND 1
@@ -1034,8 +1034,8 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
-/* Has stdatomic.h with atomic_int and atomic_uintptr_t */
-#define HAVE_STD_ATOMIC 1
+/* Has stdatomic.h with atomic_int and atomic_uintptr_t */
+#define HAVE_STD_ATOMIC 1
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1
@@ -1055,9 +1055,9 @@
/* Define to 1 if you have the <stropts.h> header file. */
/* #undef HAVE_STROPTS_H */
-/* Define to 1 if you have the `strsignal' function. */
-#define HAVE_STRSIGNAL 1
-
+/* Define to 1 if you have the `strsignal' function. */
+#define HAVE_STRSIGNAL 1
+
/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
#define HAVE_STRUCT_PASSWD_PW_GECOS 1
@@ -1137,15 +1137,15 @@
/* Define to 1 if you have the <sys/lock.h> header file. */
/* #undef HAVE_SYS_LOCK_H */
-/* Define to 1 if you have the <sys/memfd.h> header file. */
-/* #undef HAVE_SYS_MEMFD_H */
-
+/* Define to 1 if you have the <sys/memfd.h> header file. */
+/* #undef HAVE_SYS_MEMFD_H */
+
/* Define to 1 if you have the <sys/mkdev.h> header file. */
/* #undef HAVE_SYS_MKDEV_H */
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#define HAVE_SYS_MMAN_H 1
-
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
/* Define to 1 if you have the <sys/modem.h> header file. */
/* #undef HAVE_SYS_MODEM_H */
@@ -1388,9 +1388,9 @@
/* Define as the preferred size in bits of long digits */
/* #undef PYLONG_BITS_IN_DIGIT */
-/* enabled builtin hash modules */
-/* #undef PY_BUILTIN_HASHLIB_HASHES */
-
+/* enabled builtin hash modules */
+/* #undef PY_BUILTIN_HASHLIB_HASHES */
+
/* Define if you want to coerce the C locale to a UTF-8 based locale */
#define PY_COERCE_C_LOCALE 1
@@ -1414,18 +1414,18 @@
externally defined: 0 */
/* #undef Py_HASH_ALGORITHM */
-/* Define if you want to enable tracing references for debugging purpose */
-/* #undef Py_TRACE_REFS */
-
+/* Define if you want to enable tracing references for debugging purpose */
+/* #undef Py_TRACE_REFS */
+
/* assume C89 semantics that RETSIGTYPE is always void */
#define RETSIGTYPE void
/* Define if setpgrp() must be called as setpgrp(0, 0). */
/* #undef SETPGRP_HAVE_ARG */
-/* Define to 1 if you must link with -lrt for shm_open(). */
-#define SHM_NEEDS_LIBRT 1
-
+/* Define to 1 if you must link with -lrt for shm_open(). */
+#define SHM_NEEDS_LIBRT 1
+
/* Define if i>>j for signed int i does not extend the sign bit when i < 0 */
/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */
@@ -1529,10 +1529,10 @@
/* Define if WINDOW in curses.h offers a field _flags. */
#define WINDOW_HAS_FLAGS 1
-/* Define if you want build the _decimal module using a coroutine-local rather
- than a thread-local context */
-#define WITH_DECIMAL_CONTEXTVAR 1
-
+/* Define if you want build the _decimal module using a coroutine-local rather
+ than a thread-local context */
+#define WITH_DECIMAL_CONTEXTVAR 1
+
/* Define if you want documentation strings in extension modules */
#define WITH_DOC_STRINGS 1
diff --git a/contrib/tools/python3/src/Include/pyconfig-osx.h b/contrib/tools/python3/src/Include/pyconfig-osx.h
index c40df3f3db..e7e69f735b 100644
--- a/contrib/tools/python3/src/Include/pyconfig-osx.h
+++ b/contrib/tools/python3/src/Include/pyconfig-osx.h
@@ -9,18 +9,18 @@
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
-/* BUILD_GNU_TYPE + AIX_BUILDDATE are used to construct the PEP425 tag of the
- build system. */
-/* #undef AIX_BUILDDATE */
-
+/* BUILD_GNU_TYPE + AIX_BUILDDATE are used to construct the PEP425 tag of the
+ build system. */
+/* #undef AIX_BUILDDATE */
+
/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want
support for AIX C++ shared extension modules. */
/* #undef AIX_GENUINE_CPLUSPLUS */
-/* Alternative SOABI used in debug build to load C extensions built in release
- mode */
-/* #undef ALT_SOABI */
-
+/* Alternative SOABI used in debug build to load C extensions built in release
+ mode */
+/* #undef ALT_SOABI */
+
/* The Android API level. */
/* #undef ANDROID_API_LEVEL */
@@ -39,10 +39,10 @@
/* Define if --enable-ipv6 is specified */
#define ENABLE_IPV6 1
-/* Define to 1 if your system stores words within floats with the most
- significant word first */
-/* #undef FLOAT_WORDS_BIGENDIAN */
-
+/* Define to 1 if your system stores words within floats with the most
+ significant word first */
+/* #undef FLOAT_WORDS_BIGENDIAN */
+
/* Define if flock needs to be linked with bsd library. */
/* #undef FLOCK_NEEDS_LIBBSD */
@@ -149,9 +149,9 @@
/* Define to 1 if you have the `copysign' function. */
#define HAVE_COPYSIGN 1
-/* Define to 1 if you have the `copy_file_range' function. */
-/* #undef HAVE_COPY_FILE_RANGE */
-
+/* Define to 1 if you have the `copy_file_range' function. */
+/* #undef HAVE_COPY_FILE_RANGE */
+
/* Define to 1 if you have the <crypt.h> header file. */
/* #undef HAVE_CRYPT_H */
@@ -306,12 +306,12 @@
/* Define to 1 if you have the `execv' function. */
#define HAVE_EXECV 1
-/* Define to 1 if you have the `explicit_bzero' function. */
-/* #undef HAVE_EXPLICIT_BZERO */
-
-/* Define to 1 if you have the `explicit_memset' function. */
-/* #undef HAVE_EXPLICIT_MEMSET */
-
+/* Define to 1 if you have the `explicit_bzero' function. */
+/* #undef HAVE_EXPLICIT_BZERO */
+
+/* Define to 1 if you have the `explicit_memset' function. */
+/* #undef HAVE_EXPLICIT_MEMSET */
+
/* Define to 1 if you have the `expm1' function. */
#define HAVE_EXPM1 1
@@ -342,9 +342,9 @@
/* Define to 1 if you have the `fdopendir' function. */
#define HAVE_FDOPENDIR 1
-/* Define to 1 if you have the `fdwalk' function. */
-/* #undef HAVE_FDWALK */
-
+/* Define to 1 if you have the `fdwalk' function. */
+/* #undef HAVE_FDWALK */
+
/* Define to 1 if you have the `fexecve' function. */
/* #undef HAVE_FEXECVE */
@@ -427,12 +427,12 @@
/* Define to 1 if you have the `getentropy' function. */
#define HAVE_GETENTROPY 1
-/* Define to 1 if you have the `getgrgid_r' function. */
-#define HAVE_GETGRGID_R 1
-
-/* Define to 1 if you have the `getgrnam_r' function. */
-#define HAVE_GETGRNAM_R 1
-
+/* Define to 1 if you have the `getgrgid_r' function. */
+#define HAVE_GETGRGID_R 1
+
+/* Define to 1 if you have the `getgrnam_r' function. */
+#define HAVE_GETGRNAM_R 1
+
/* Define to 1 if you have the `getgrouplist' function. */
#define HAVE_GETGROUPLIST 1
@@ -487,12 +487,12 @@
/* Define to 1 if you have the `getpwent' function. */
#define HAVE_GETPWENT 1
-/* Define to 1 if you have the `getpwnam_r' function. */
-#define HAVE_GETPWNAM_R 1
-
-/* Define to 1 if you have the `getpwuid_r' function. */
-#define HAVE_GETPWUID_R 1
-
+/* Define to 1 if you have the `getpwnam_r' function. */
+#define HAVE_GETPWNAM_R 1
+
+/* Define to 1 if you have the `getpwuid_r' function. */
+#define HAVE_GETPWUID_R 1
+
/* Define to 1 if the getrandom() function is available */
/* #undef HAVE_GETRANDOM */
@@ -570,9 +570,9 @@
#define HAVE_LANGINFO_H 1
/* Defined to enable large file support when an off_t is bigger than a long
- and long long is at least as big as an off_t. You may need to add some
- flags for configuration and compilation to enable this mode. (For Solaris
- and Linux, the necessary defines are already defined.) */
+ and long long is at least as big as an off_t. You may need to add some
+ flags for configuration and compilation to enable this mode. (For Solaris
+ and Linux, the necessary defines are already defined.) */
/* #undef HAVE_LARGEFILE_SUPPORT */
/* Define to 1 if you have the 'lchflags' function. */
@@ -600,7 +600,7 @@
/* #undef HAVE_LIBINTL_H */
/* Define if you have the readline library (-lreadline). */
-/* #undef HAVE_LIBREADLINE */
+/* #undef HAVE_LIBREADLINE */
/* Define to 1 if you have the `resolv' library (-lresolv). */
/* #undef HAVE_LIBRESOLV */
@@ -623,27 +623,27 @@
/* Define to 1 if you have the <linux/can.h> header file. */
/* #undef HAVE_LINUX_CAN_H */
-/* Define to 1 if you have the <linux/can/j1939.h> header file. */
-/* #undef HAVE_LINUX_CAN_J1939_H */
-
+/* Define to 1 if you have the <linux/can/j1939.h> header file. */
+/* #undef HAVE_LINUX_CAN_J1939_H */
+
/* Define if compiling using Linux 3.6 or later. */
/* #undef HAVE_LINUX_CAN_RAW_FD_FRAMES */
/* Define to 1 if you have the <linux/can/raw.h> header file. */
/* #undef HAVE_LINUX_CAN_RAW_H */
-/* Define if compiling using Linux 4.1 or later. */
-/* #undef HAVE_LINUX_CAN_RAW_JOIN_FILTERS */
-
-/* Define to 1 if you have the <linux/memfd.h> header file. */
-/* #undef HAVE_LINUX_MEMFD_H */
-
+/* Define if compiling using Linux 4.1 or later. */
+/* #undef HAVE_LINUX_CAN_RAW_JOIN_FILTERS */
+
+/* Define to 1 if you have the <linux/memfd.h> header file. */
+/* #undef HAVE_LINUX_MEMFD_H */
+
/* Define to 1 if you have the <linux/netlink.h> header file. */
/* #undef HAVE_LINUX_NETLINK_H */
-/* Define to 1 if you have the <linux/qrtr.h> header file. */
-/* #undef HAVE_LINUX_QRTR_H */
-
+/* Define to 1 if you have the <linux/qrtr.h> header file. */
+/* #undef HAVE_LINUX_QRTR_H */
+
/* Define to 1 if you have the <linux/random.h> header file. */
/* #undef HAVE_LINUX_RANDOM_H */
@@ -653,9 +653,9 @@
/* Define to 1 if you have the <linux/vm_sockets.h> header file. */
/* #undef HAVE_LINUX_VM_SOCKETS_H */
-/* Define to 1 if you have the <linux/wait.h> header file. */
-/* #undef HAVE_LINUX_WAIT_H */
-
+/* Define to 1 if you have the <linux/wait.h> header file. */
+/* #undef HAVE_LINUX_WAIT_H */
+
/* Define to 1 if you have the `lockf' function. */
#define HAVE_LOCKF 1
@@ -665,7 +665,7 @@
/* Define to 1 if you have the `log2' function. */
#define HAVE_LOG2 1
-/* Define to 1 if the system has the type `long double'. */
+/* Define to 1 if the system has the type `long double'. */
#define HAVE_LONG_DOUBLE 1
/* Define to 1 if you have the `lstat' function. */
@@ -674,18 +674,18 @@
/* Define to 1 if you have the `lutimes' function. */
#define HAVE_LUTIMES 1
-/* Define to 1 if you have the `madvise' function. */
-#define HAVE_MADVISE 1
-
+/* Define to 1 if you have the `madvise' function. */
+#define HAVE_MADVISE 1
+
/* Define this if you have the makedev macro. */
#define HAVE_MAKEDEV 1
/* Define to 1 if you have the `mbrtowc' function. */
#define HAVE_MBRTOWC 1
-/* Define if you have the 'memfd_create' function. */
-/* #undef HAVE_MEMFD_CREATE */
-
+/* Define if you have the 'memfd_create' function. */
+/* #undef HAVE_MEMFD_CREATE */
+
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
@@ -764,9 +764,9 @@
/* Define to 1 if you have the `posix_spawn' function. */
#define HAVE_POSIX_SPAWN 1
-/* Define to 1 if you have the `posix_spawnp' function. */
-#define HAVE_POSIX_SPAWNP 1
-
+/* Define to 1 if you have the `posix_spawnp' function. */
+#define HAVE_POSIX_SPAWNP 1
+
/* Define to 1 if you have the `pread' function. */
#define HAVE_PREAD 1
@@ -779,18 +779,18 @@
/* Define if you have the 'prlimit' functions. */
/* #undef HAVE_PRLIMIT */
-/* Define if you have the '_dyld_shared_cache_contains_path' function. */
-#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1
-
+/* Define if you have the '_dyld_shared_cache_contains_path' function. */
+#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1
+
/* Define to 1 if you have the <process.h> header file. */
/* #undef HAVE_PROCESS_H */
/* Define if your compiler supports function prototype */
#define HAVE_PROTOTYPES 1
-/* Define to 1 if you have the `pthread_condattr_setclock' function. */
-/* #undef HAVE_PTHREAD_CONDATTR_SETCLOCK */
-
+/* Define to 1 if you have the `pthread_condattr_setclock' function. */
+/* #undef HAVE_PTHREAD_CONDATTR_SETCLOCK */
+
/* Defined for Solaris 2.6 bug in pthread header. */
/* #undef HAVE_PTHREAD_DESTRUCTOR */
@@ -837,35 +837,35 @@
#define HAVE_RENAMEAT 1
/* Define if readline supports append_history */
-/* #undef HAVE_RL_APPEND_HISTORY */
+/* #undef HAVE_RL_APPEND_HISTORY */
/* Define if you can turn off readline's signal handling. */
-/* #undef HAVE_RL_CATCH_SIGNAL */
+/* #undef HAVE_RL_CATCH_SIGNAL */
/* Define if you have readline 2.2 */
-/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */
+/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */
/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */
+/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */
/* Define if you have readline 4.2 */
-/* #undef HAVE_RL_COMPLETION_MATCHES */
+/* #undef HAVE_RL_COMPLETION_MATCHES */
/* Define if you have rl_completion_suppress_append */
-/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */
+/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */
/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_PRE_INPUT_HOOK */
+/* #undef HAVE_RL_PRE_INPUT_HOOK */
/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_RESIZE_TERMINAL */
+/* #undef HAVE_RL_RESIZE_TERMINAL */
/* Define to 1 if you have the `round' function. */
#define HAVE_ROUND 1
-/* Define to 1 if you have the `rtpSpawn' function. */
-/* #undef HAVE_RTPSPAWN */
-
+/* Define to 1 if you have the `rtpSpawn' function. */
+/* #undef HAVE_RTPSPAWN */
+
/* Define to 1 if you have the `sched_get_priority_max' function. */
#define HAVE_SCHED_GET_PRIORITY_MAX 1
@@ -953,21 +953,21 @@
/* Define to 1 if you have the <shadow.h> header file. */
/* #undef HAVE_SHADOW_H */
-/* Define to 1 if you have the `shm_open' function. */
-#define HAVE_SHM_OPEN 1
-
-/* Define to 1 if you have the `shm_unlink' function. */
-#define HAVE_SHM_UNLINK 1
-
+/* Define to 1 if you have the `shm_open' function. */
+#define HAVE_SHM_OPEN 1
+
+/* Define to 1 if you have the `shm_unlink' function. */
+#define HAVE_SHM_UNLINK 1
+
/* Define to 1 if you have the `sigaction' function. */
#define HAVE_SIGACTION 1
/* Define to 1 if you have the `sigaltstack' function. */
#define HAVE_SIGALTSTACK 1
-/* Define to 1 if you have the `sigfillset' function. */
-#define HAVE_SIGFILLSET 1
-
+/* Define to 1 if you have the `sigfillset' function. */
+#define HAVE_SIGFILLSET 1
+
/* Define to 1 if `si_band' is a member of `siginfo_t'. */
#define HAVE_SIGINFO_T_SI_BAND 1
@@ -1032,7 +1032,7 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
-/* Has stdatomic.h with atomic_int and atomic_uintptr_t */
+/* Has stdatomic.h with atomic_int and atomic_uintptr_t */
#define HAVE_STD_ATOMIC 1
/* Define to 1 if you have the `strdup' function. */
@@ -1053,9 +1053,9 @@
/* Define to 1 if you have the <stropts.h> header file. */
/* #undef HAVE_STROPTS_H */
-/* Define to 1 if you have the `strsignal' function. */
-#define HAVE_STRSIGNAL 1
-
+/* Define to 1 if you have the `strsignal' function. */
+#define HAVE_STRSIGNAL 1
+
/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
#define HAVE_STRUCT_PASSWD_PW_GECOS 1
@@ -1135,15 +1135,15 @@
/* Define to 1 if you have the <sys/lock.h> header file. */
#define HAVE_SYS_LOCK_H 1
-/* Define to 1 if you have the <sys/memfd.h> header file. */
-/* #undef HAVE_SYS_MEMFD_H */
-
+/* Define to 1 if you have the <sys/memfd.h> header file. */
+/* #undef HAVE_SYS_MEMFD_H */
+
/* Define to 1 if you have the <sys/mkdev.h> header file. */
/* #undef HAVE_SYS_MKDEV_H */
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#define HAVE_SYS_MMAN_H 1
-
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
/* Define to 1 if you have the <sys/modem.h> header file. */
/* #undef HAVE_SYS_MODEM_H */
@@ -1300,7 +1300,7 @@
/* #undef HAVE_UUID_H */
/* Define to 1 if you have the <uuid/uuid.h> header file. */
-#define HAVE_UUID_UUID_H 1
+#define HAVE_UUID_UUID_H 1
/* Define to 1 if you have the `wait3' function. */
#define HAVE_WAIT3 1
@@ -1386,9 +1386,9 @@
/* Define as the preferred size in bits of long digits */
/* #undef PYLONG_BITS_IN_DIGIT */
-/* enabled builtin hash modules */
-/* #undef PY_BUILTIN_HASHLIB_HASHES */
-
+/* enabled builtin hash modules */
+/* #undef PY_BUILTIN_HASHLIB_HASHES */
+
/* Define if you want to coerce the C locale to a UTF-8 based locale */
#define PY_COERCE_C_LOCALE 1
@@ -1412,18 +1412,18 @@
externally defined: 0 */
/* #undef Py_HASH_ALGORITHM */
-/* Define if you want to enable tracing references for debugging purpose */
-/* #undef Py_TRACE_REFS */
-
+/* Define if you want to enable tracing references for debugging purpose */
+/* #undef Py_TRACE_REFS */
+
/* assume C89 semantics that RETSIGTYPE is always void */
#define RETSIGTYPE void
/* Define if setpgrp() must be called as setpgrp(0, 0). */
/* #undef SETPGRP_HAVE_ARG */
-/* Define to 1 if you must link with -lrt for shm_open(). */
-/* #undef SHM_NEEDS_LIBRT */
-
+/* Define to 1 if you must link with -lrt for shm_open(). */
+/* #undef SHM_NEEDS_LIBRT */
+
/* Define if i>>j for signed int i does not extend the sign bit when i < 0 */
/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */
@@ -1527,10 +1527,10 @@
/* Define if WINDOW in curses.h offers a field _flags. */
#define WINDOW_HAS_FLAGS 1
-/* Define if you want build the _decimal module using a coroutine-local rather
- than a thread-local context */
-#define WITH_DECIMAL_CONTEXTVAR 1
-
+/* Define if you want build the _decimal module using a coroutine-local rather
+ than a thread-local context */
+#define WITH_DECIMAL_CONTEXTVAR 1
+
/* Define if you want documentation strings in extension modules */
#define WITH_DOC_STRINGS 1
diff --git a/contrib/tools/python3/src/Include/pyconfig.h b/contrib/tools/python3/src/Include/pyconfig.h
index 8e92dec0f8..965b9e1be4 100644
--- a/contrib/tools/python3/src/Include/pyconfig.h
+++ b/contrib/tools/python3/src/Include/pyconfig.h
@@ -4,7 +4,7 @@
#define ABIFLAGS ""
#define PREFIX "/var/empty"
#define EXEC_PREFIX "/var/empty"
-#define VERSION "3.9"
+#define VERSION "3.9"
#define VPATH ""
#define BLAKE2_USE_SSE
#define USE_ZLIB_CRC32
@@ -19,8 +19,8 @@
#endif
#endif
-#define PLATLIBDIR "lib"
-
+#define PLATLIBDIR "lib"
+
#if defined(__linux__)
#include "pyconfig-linux.h"
#endif
diff --git a/contrib/tools/python3/src/Include/pyctype.h b/contrib/tools/python3/src/Include/pyctype.h
index b14cfae27d..729d93275e 100644
--- a/contrib/tools/python3/src/Include/pyctype.h
+++ b/contrib/tools/python3/src/Include/pyctype.h
@@ -1,9 +1,9 @@
#ifndef Py_LIMITED_API
#ifndef PYCTYPE_H
#define PYCTYPE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
#define PY_CTF_LOWER 0x01
#define PY_CTF_UPPER 0x02
@@ -32,8 +32,8 @@ PyAPI_DATA(const unsigned char) _Py_ctype_toupper[256];
#define Py_TOLOWER(c) (_Py_ctype_tolower[Py_CHARMASK(c)])
#define Py_TOUPPER(c) (_Py_ctype_toupper[Py_CHARMASK(c)])
-#ifdef __cplusplus
-}
-#endif
+#ifdef __cplusplus
+}
+#endif
#endif /* !PYCTYPE_H */
#endif /* !Py_LIMITED_API */
diff --git a/contrib/tools/python3/src/Include/pydtrace.h b/contrib/tools/python3/src/Include/pydtrace.h
index 70afde582b..1be8e7ab1b 100644
--- a/contrib/tools/python3/src/Include/pydtrace.h
+++ b/contrib/tools/python3/src/Include/pydtrace.h
@@ -29,14 +29,14 @@ static inline void PyDTrace_LINE(const char *arg0, const char *arg1, int arg2) {
static inline void PyDTrace_FUNCTION_ENTRY(const char *arg0, const char *arg1, int arg2) {}
static inline void PyDTrace_FUNCTION_RETURN(const char *arg0, const char *arg1, int arg2) {}
static inline void PyDTrace_GC_START(int arg0) {}
-static inline void PyDTrace_GC_DONE(Py_ssize_t arg0) {}
+static inline void PyDTrace_GC_DONE(Py_ssize_t arg0) {}
static inline void PyDTrace_INSTANCE_NEW_START(int arg0) {}
static inline void PyDTrace_INSTANCE_NEW_DONE(int arg0) {}
static inline void PyDTrace_INSTANCE_DELETE_START(int arg0) {}
static inline void PyDTrace_INSTANCE_DELETE_DONE(int arg0) {}
static inline void PyDTrace_IMPORT_FIND_LOAD_START(const char *arg0) {}
static inline void PyDTrace_IMPORT_FIND_LOAD_DONE(const char *arg0, int arg1) {}
-static inline void PyDTrace_AUDIT(const char *arg0, void *arg1) {}
+static inline void PyDTrace_AUDIT(const char *arg0, void *arg1) {}
static inline int PyDTrace_LINE_ENABLED(void) { return 0; }
static inline int PyDTrace_FUNCTION_ENTRY_ENABLED(void) { return 0; }
@@ -49,7 +49,7 @@ static inline int PyDTrace_INSTANCE_DELETE_START_ENABLED(void) { return 0; }
static inline int PyDTrace_INSTANCE_DELETE_DONE_ENABLED(void) { return 0; }
static inline int PyDTrace_IMPORT_FIND_LOAD_START_ENABLED(void) { return 0; }
static inline int PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED(void) { return 0; }
-static inline int PyDTrace_AUDIT_ENABLED(void) { return 0; }
+static inline int PyDTrace_AUDIT_ENABLED(void) { return 0; }
#endif /* !WITH_DTRACE */
diff --git a/contrib/tools/python3/src/Include/pyerrors.h b/contrib/tools/python3/src/Include/pyerrors.h
index 9e3b6dc6d8..979a26ba68 100644
--- a/contrib/tools/python3/src/Include/pyerrors.h
+++ b/contrib/tools/python3/src/Include/pyerrors.h
@@ -4,8 +4,8 @@
extern "C" {
#endif
-#include <stdarg.h> // va_list
-
+#include <stdarg.h> // va_list
+
/* Error handling definitions */
PyAPI_FUNC(void) PyErr_SetNone(PyObject *);
@@ -23,12 +23,12 @@ PyAPI_FUNC(void) PyErr_GetExcInfo(PyObject **, PyObject **, PyObject **);
PyAPI_FUNC(void) PyErr_SetExcInfo(PyObject *, PyObject *, PyObject *);
#endif
-/* Defined in Python/pylifecycle.c
-
- The Py_FatalError() function is replaced with a macro which logs
- automatically the name of the current function, unless the Py_LIMITED_API
- macro is defined. */
-PyAPI_FUNC(void) _Py_NO_RETURN Py_FatalError(const char *message);
+/* Defined in Python/pylifecycle.c
+
+ The Py_FatalError() function is replaced with a macro which logs
+ automatically the name of the current function, unless the Py_LIMITED_API
+ macro is defined. */
+PyAPI_FUNC(void) _Py_NO_RETURN Py_FatalError(const char *message);
#if defined(Py_DEBUG) || defined(Py_LIMITED_API)
#define _PyErr_OCCURRED() PyErr_Occurred()
@@ -60,11 +60,11 @@ PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *);
PyType_FastSubclass((PyTypeObject*)(x), Py_TPFLAGS_BASE_EXC_SUBCLASS))
#define PyExceptionInstance_Check(x) \
- PyType_FastSubclass(Py_TYPE(x), Py_TPFLAGS_BASE_EXC_SUBCLASS)
+ PyType_FastSubclass(Py_TYPE(x), Py_TPFLAGS_BASE_EXC_SUBCLASS)
-PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *);
+PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *);
-#define PyExceptionInstance_Class(x) ((PyObject*)Py_TYPE(x))
+#define PyExceptionInstance_Class(x) ((PyObject*)Py_TYPE(x))
/* Predefined exceptions */
@@ -314,12 +314,12 @@ PyAPI_FUNC(int) PyOS_snprintf(char *str, size_t size, const char *format, ...)
PyAPI_FUNC(int) PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
Py_GCC_ATTRIBUTE((format(printf, 3, 0)));
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_ERRORS_H
-# include "cpython/pyerrors.h"
-# undef Py_CPYTHON_ERRORS_H
-#endif
-
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_ERRORS_H
+# include "cpython/pyerrors.h"
+# undef Py_CPYTHON_ERRORS_H
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Include/pyfpe.h b/contrib/tools/python3/src/Include/pyfpe.h
index cc00735ff2..cc2def63aa 100644
--- a/contrib/tools/python3/src/Include/pyfpe.h
+++ b/contrib/tools/python3/src/Include/pyfpe.h
@@ -1,7 +1,7 @@
#ifndef Py_PYFPE_H
#define Py_PYFPE_H
-/* Header excluded from the stable API */
-#ifndef Py_LIMITED_API
+/* Header excluded from the stable API */
+#ifndef Py_LIMITED_API
/* These macros used to do something when Python was built with --with-fpectl,
* but support for that was dropped in 3.7. We continue to define them though,
@@ -11,5 +11,5 @@
#define PyFPE_START_PROTECT(err_string, leave_stmt)
#define PyFPE_END_PROTECT(v)
-#endif /* !defined(Py_LIMITED_API) */
+#endif /* !defined(Py_LIMITED_API) */
#endif /* !Py_PYFPE_H */
diff --git a/contrib/tools/python3/src/Include/pyframe.h b/contrib/tools/python3/src/Include/pyframe.h
index aa2badba07..3816224201 100644
--- a/contrib/tools/python3/src/Include/pyframe.h
+++ b/contrib/tools/python3/src/Include/pyframe.h
@@ -1,22 +1,22 @@
-/* Limited C API of PyFrame API
- *
- * Include "frameobject.h" to get the PyFrameObject structure.
- */
-
-#ifndef Py_PYFRAME_H
-#define Py_PYFRAME_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _frame PyFrameObject;
-
-/* Return the line of code the frame is currently executing. */
-PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *);
-
-PyAPI_FUNC(PyCodeObject *) PyFrame_GetCode(PyFrameObject *frame);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PYFRAME_H */
+/* Limited C API of PyFrame API
+ *
+ * Include "frameobject.h" to get the PyFrameObject structure.
+ */
+
+#ifndef Py_PYFRAME_H
+#define Py_PYFRAME_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _frame PyFrameObject;
+
+/* Return the line of code the frame is currently executing. */
+PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *);
+
+PyAPI_FUNC(PyCodeObject *) PyFrame_GetCode(PyFrameObject *frame);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_PYFRAME_H */
diff --git a/contrib/tools/python3/src/Include/pyhash.h b/contrib/tools/python3/src/Include/pyhash.h
index 364fcf5aaa..4437b87033 100644
--- a/contrib/tools/python3/src/Include/pyhash.h
+++ b/contrib/tools/python3/src/Include/pyhash.h
@@ -8,9 +8,9 @@ extern "C" {
/* Helpers for hash functions */
#ifndef Py_LIMITED_API
PyAPI_FUNC(Py_hash_t) _Py_HashDouble(double);
-PyAPI_FUNC(Py_hash_t) _Py_HashPointer(const void*);
-// Similar to _Py_HashPointer(), but don't replace -1 with -2
-PyAPI_FUNC(Py_hash_t) _Py_HashPointerRaw(const void*);
+PyAPI_FUNC(Py_hash_t) _Py_HashPointer(const void*);
+// Similar to _Py_HashPointer(), but don't replace -1 with -2
+PyAPI_FUNC(Py_hash_t) _Py_HashPointerRaw(const void*);
PyAPI_FUNC(Py_hash_t) _Py_HashBytes(const void*, Py_ssize_t);
#endif
@@ -121,7 +121,7 @@ PyAPI_FUNC(PyHash_FuncDef*) PyHash_GetFuncDef(void);
* configure script.
*
* - FNV is available on all platforms and architectures.
- * - SIPHASH24 only works on platforms that don't require aligned memory for integers.
+ * - SIPHASH24 only works on platforms that don't require aligned memory for integers.
* - With EXTERNAL embedders can provide an alternative implementation with::
*
* PyHash_FuncDef PyHash_Func = {...};
diff --git a/contrib/tools/python3/src/Include/pylifecycle.h b/contrib/tools/python3/src/Include/pylifecycle.h
index e59f4f51f1..783fcb455e 100644
--- a/contrib/tools/python3/src/Include/pylifecycle.h
+++ b/contrib/tools/python3/src/Include/pylifecycle.h
@@ -27,24 +27,24 @@ PyAPI_FUNC(void) Py_EndInterpreter(PyThreadState *);
*/
PyAPI_FUNC(int) Py_AtExit(void (*func)(void));
-PyAPI_FUNC(void) _Py_NO_RETURN Py_Exit(int);
+PyAPI_FUNC(void) _Py_NO_RETURN Py_Exit(int);
/* Bootstrap __main__ (defined in Modules/main.c) */
PyAPI_FUNC(int) Py_Main(int argc, wchar_t **argv);
-PyAPI_FUNC(int) Py_FrozenMain(int argc, char **argv);
-
-PyAPI_FUNC(int) Py_BytesMain(int argc, char **argv);
-
-/* In pathconfig.c */
-PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *);
-PyAPI_FUNC(wchar_t *) Py_GetProgramName(void);
-
-PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *);
-PyAPI_FUNC(wchar_t *) Py_GetPythonHome(void);
-
+PyAPI_FUNC(int) Py_FrozenMain(int argc, char **argv);
+
+PyAPI_FUNC(int) Py_BytesMain(int argc, char **argv);
+
+/* In pathconfig.c */
+PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *);
+PyAPI_FUNC(wchar_t *) Py_GetProgramName(void);
+
+PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *);
+PyAPI_FUNC(wchar_t *) Py_GetPythonHome(void);
+
PyAPI_FUNC(wchar_t *) Py_GetProgramFullPath(void);
-
+
PyAPI_FUNC(wchar_t *) Py_GetPrefix(void);
PyAPI_FUNC(wchar_t *) Py_GetExecPrefix(void);
PyAPI_FUNC(wchar_t *) Py_GetPath(void);
@@ -66,9 +66,9 @@ PyAPI_FUNC(PyOS_sighandler_t) PyOS_getsig(int);
PyAPI_FUNC(PyOS_sighandler_t) PyOS_setsig(int, PyOS_sighandler_t);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_PYLIFECYCLE_H
-# include "cpython/pylifecycle.h"
-# undef Py_CPYTHON_PYLIFECYCLE_H
+# define Py_CPYTHON_PYLIFECYCLE_H
+# include "cpython/pylifecycle.h"
+# undef Py_CPYTHON_PYLIFECYCLE_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/pymacro.h b/contrib/tools/python3/src/Include/pymacro.h
index 74205034cb..202b936d96 100644
--- a/contrib/tools/python3/src/Include/pymacro.h
+++ b/contrib/tools/python3/src/Include/pymacro.h
@@ -67,7 +67,7 @@
/* Define macros for inline documentation. */
-#define PyDoc_VAR(name) static const char name[]
+#define PyDoc_VAR(name) static const char name[]
#define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str)
#ifdef WITH_DOC_STRINGS
#define PyDoc_STR(str) str
@@ -89,44 +89,44 @@
/* Check if pointer "p" is aligned to "a"-bytes boundary. */
#define _Py_IS_ALIGNED(p, a) (!((uintptr_t)(p) & (uintptr_t)((a) - 1)))
-/* Use this for unused arguments in a function definition to silence compiler
- * warnings. Example:
- *
- * int func(int a, int Py_UNUSED(b)) { return a; }
- */
-#if defined(__GNUC__) || defined(__clang__)
-# define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
+/* Use this for unused arguments in a function definition to silence compiler
+ * warnings. Example:
+ *
+ * int func(int a, int Py_UNUSED(b)) { return a; }
+ */
+#if defined(__GNUC__) || defined(__clang__)
+# define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
#else
-# define Py_UNUSED(name) _unused_ ## name
+# define Py_UNUSED(name) _unused_ ## name
#endif
-#if defined(RANDALL_WAS_HERE)
-# define Py_UNREACHABLE() \
- Py_FatalError( \
- "If you're seeing this, the code is in what I thought was\n" \
- "an unreachable state.\n\n" \
- "I could give you advice for what to do, but honestly, why\n" \
- "should you trust me? I clearly screwed this up. I'm writing\n" \
- "a message that should never appear, yet I know it will\n" \
- "probably appear someday.\n\n" \
- "On a deep level, I know I'm not up to this task.\n" \
- "I'm so sorry.\n" \
- "https://xkcd.com/2200")
-#elif defined(Py_DEBUG)
-# define Py_UNREACHABLE() \
- Py_FatalError( \
- "We've reached an unreachable state. Anything is possible.\n" \
- "The limits were in our heads all along. Follow your dreams.\n" \
- "https://xkcd.com/2200")
-#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
-# define Py_UNREACHABLE() __builtin_unreachable()
-#elif defined(__clang__) || defined(__INTEL_COMPILER)
-# define Py_UNREACHABLE() __builtin_unreachable()
-#elif defined(_MSC_VER)
-# define Py_UNREACHABLE() __assume(0)
-#else
-# define Py_UNREACHABLE() \
- Py_FatalError("Unreachable C code path reached")
-#endif
+#if defined(RANDALL_WAS_HERE)
+# define Py_UNREACHABLE() \
+ Py_FatalError( \
+ "If you're seeing this, the code is in what I thought was\n" \
+ "an unreachable state.\n\n" \
+ "I could give you advice for what to do, but honestly, why\n" \
+ "should you trust me? I clearly screwed this up. I'm writing\n" \
+ "a message that should never appear, yet I know it will\n" \
+ "probably appear someday.\n\n" \
+ "On a deep level, I know I'm not up to this task.\n" \
+ "I'm so sorry.\n" \
+ "https://xkcd.com/2200")
+#elif defined(Py_DEBUG)
+# define Py_UNREACHABLE() \
+ Py_FatalError( \
+ "We've reached an unreachable state. Anything is possible.\n" \
+ "The limits were in our heads all along. Follow your dreams.\n" \
+ "https://xkcd.com/2200")
+#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+# define Py_UNREACHABLE() __builtin_unreachable()
+#elif defined(__clang__) || defined(__INTEL_COMPILER)
+# define Py_UNREACHABLE() __builtin_unreachable()
+#elif defined(_MSC_VER)
+# define Py_UNREACHABLE() __assume(0)
+#else
+# define Py_UNREACHABLE() \
+ Py_FatalError("Unreachable C code path reached")
+#endif
#endif /* Py_PYMACRO_H */
diff --git a/contrib/tools/python3/src/Include/pymath.h b/contrib/tools/python3/src/Include/pymath.h
index cbddc051fc..63ca972784 100644
--- a/contrib/tools/python3/src/Include/pymath.h
+++ b/contrib/tools/python3/src/Include/pymath.h
@@ -125,7 +125,7 @@ PyAPI_FUNC(void) _Py_set_387controlword(unsigned short);
/* Py_IS_FINITE(X)
* Return 1 if float or double arg is neither infinite nor NAN, else 0.
- * Some compilers (e.g. VisualStudio) have intrinsics for this, so a special
+ * Some compilers (e.g. VisualStudio) have intrinsics for this, so a special
* macro for this particular test is useful
* Note: PC/pyconfig.h defines Py_IS_FINITE as _finite
*/
@@ -227,12 +227,12 @@ PyAPI_FUNC(void) _Py_set_387controlword(unsigned short);
* behavior. */
#define _Py_InIntegralTypeRange(type, v) (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
-/* Return the smallest integer k such that n < 2**k, or 0 if n == 0.
- * Equivalent to floor(log2(x))+1. Also equivalent to: bitwidth_of_type -
- * count_leading_zero_bits(x)
- */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(unsigned int) _Py_bit_length(unsigned long d);
-#endif
-
+/* Return the smallest integer k such that n < 2**k, or 0 if n == 0.
+ * Equivalent to floor(log2(x))+1. Also equivalent to: bitwidth_of_type -
+ * count_leading_zero_bits(x)
+ */
+#ifndef Py_LIMITED_API
+PyAPI_FUNC(unsigned int) _Py_bit_length(unsigned long d);
+#endif
+
#endif /* Py_PYMATH_H */
diff --git a/contrib/tools/python3/src/Include/pymem.h b/contrib/tools/python3/src/Include/pymem.h
index 99d8c89c1b..607feb9484 100644
--- a/contrib/tools/python3/src/Include/pymem.h
+++ b/contrib/tools/python3/src/Include/pymem.h
@@ -102,10 +102,10 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr);
#define PyMem_DEL PyMem_FREE
-#ifndef Py_LIMITED_API
-# define Py_CPYTHON_PYMEM_H
-# include "cpython/pymem.h"
-# undef Py_CPYTHON_PYMEM_H
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_PYMEM_H
+# include "cpython/pymem.h"
+# undef Py_CPYTHON_PYMEM_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/pyport.h b/contrib/tools/python3/src/Include/pyport.h
index bd64295591..d1e968bc10 100644
--- a/contrib/tools/python3/src/Include/pyport.h
+++ b/contrib/tools/python3/src/Include/pyport.h
@@ -5,27 +5,27 @@
#include <inttypes.h>
-
-/* Defines to build Python and its standard library:
- *
- * - Py_BUILD_CORE: Build Python core. Give access to Python internals, but
- * should not be used by third-party modules.
- * - Py_BUILD_CORE_BUILTIN: Build a Python stdlib module as a built-in module.
- * - Py_BUILD_CORE_MODULE: Build a Python stdlib module as a dynamic library.
- *
- * Py_BUILD_CORE_BUILTIN and Py_BUILD_CORE_MODULE imply Py_BUILD_CORE.
- *
- * On Windows, Py_BUILD_CORE_MODULE exports "PyInit_xxx" symbol, whereas
- * Py_BUILD_CORE_BUILTIN does not.
- */
-#if defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE)
-# define Py_BUILD_CORE
-#endif
-#if defined(Py_BUILD_CORE_MODULE) && !defined(Py_BUILD_CORE)
-# define Py_BUILD_CORE
-#endif
-
-
+
+/* Defines to build Python and its standard library:
+ *
+ * - Py_BUILD_CORE: Build Python core. Give access to Python internals, but
+ * should not be used by third-party modules.
+ * - Py_BUILD_CORE_BUILTIN: Build a Python stdlib module as a built-in module.
+ * - Py_BUILD_CORE_MODULE: Build a Python stdlib module as a dynamic library.
+ *
+ * Py_BUILD_CORE_BUILTIN and Py_BUILD_CORE_MODULE imply Py_BUILD_CORE.
+ *
+ * On Windows, Py_BUILD_CORE_MODULE exports "PyInit_xxx" symbol, whereas
+ * Py_BUILD_CORE_BUILTIN does not.
+ */
+#if defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE)
+# define Py_BUILD_CORE
+#endif
+#if defined(Py_BUILD_CORE_MODULE) && !defined(Py_BUILD_CORE)
+# define Py_BUILD_CORE
+#endif
+
+
/**************************************************************************
Symbols and macros to supply platform-independent interfaces to basic
C language & library operations whose spellings vary across platforms.
@@ -133,9 +133,9 @@ typedef int Py_ssize_clean_t;
/* PY_FORMAT_SIZE_T is a platform-specific modifier for use in a printf
* format to convert an argument with the width of a size_t or Py_ssize_t.
- * C99 introduced "z" for this purpose, but old MSVCs had not supported it.
- * Since MSVC supports "z" since (at least) 2015, we can just use "z"
- * for new code.
+ * C99 introduced "z" for this purpose, but old MSVCs had not supported it.
+ * Since MSVC supports "z" since (at least) 2015, we can just use "z"
+ * for new code.
*
* These "high level" Python format functions interpret "z" correctly on
* all platforms (Python interprets the format string itself, and does whatever
@@ -153,11 +153,11 @@ typedef int Py_ssize_clean_t;
* Py_ssize_t index;
* fprintf(stderr, "index %" PY_FORMAT_SIZE_T "d sucks\n", index);
*
- * That will expand to %zd or to something else correct for a Py_ssize_t on
- * the platform.
+ * That will expand to %zd or to something else correct for a Py_ssize_t on
+ * the platform.
*/
#ifndef PY_FORMAT_SIZE_T
-# define PY_FORMAT_SIZE_T "z"
+# define PY_FORMAT_SIZE_T "z"
#endif
/* Py_LOCAL can be used instead of static to get the fastest possible calling
@@ -178,18 +178,18 @@ typedef int Py_ssize_clean_t;
*/
#if defined(_MSC_VER)
-# if defined(PY_LOCAL_AGGRESSIVE)
- /* enable more aggressive optimization for visual studio */
-# pragma optimize("agtw", on)
-#endif
- /* ignore warnings if the compiler decides not to inline a function */
-# pragma warning(disable: 4710)
- /* fastest possible local call under MSVC */
-# define Py_LOCAL(type) static type __fastcall
-# define Py_LOCAL_INLINE(type) static __inline type __fastcall
+# if defined(PY_LOCAL_AGGRESSIVE)
+ /* enable more aggressive optimization for visual studio */
+# pragma optimize("agtw", on)
+#endif
+ /* ignore warnings if the compiler decides not to inline a function */
+# pragma warning(disable: 4710)
+ /* fastest possible local call under MSVC */
+# define Py_LOCAL(type) static type __fastcall
+# define Py_LOCAL_INLINE(type) static __inline type __fastcall
#else
-# define Py_LOCAL(type) static type
-# define Py_LOCAL_INLINE(type) static inline type
+# define Py_LOCAL(type) static type
+# define Py_LOCAL_INLINE(type) static inline type
#endif
/* Py_MEMCPY is kept for backwards compatibility,
@@ -338,7 +338,7 @@ extern "C" {
} \
} while(0)
-/* Py_SET_ERANGE_IF_OVERFLOW(x)
+/* Py_SET_ERANGE_IF_OVERFLOW(x)
* An alias of Py_SET_ERRNO_ON_MATH_ERROR for backward-compatibility.
*/
#define Py_SET_ERANGE_IF_OVERFLOW(X) Py_SET_ERRNO_ON_MATH_ERROR(X)
@@ -420,7 +420,7 @@ extern "C" {
#endif
/* get and set x87 control word for VisualStudio/x86 */
-#if defined(_MSC_VER) && !defined(_WIN64) && !defined(_M_ARM) /* x87 not supported in 64-bit or ARM */
+#if defined(_MSC_VER) && !defined(_WIN64) && !defined(_M_ARM) /* x87 not supported in 64-bit or ARM */
#define HAVE_PY_SET_53BIT_PRECISION 1
#define _Py_SET_53BIT_PRECISION_HEADER \
unsigned int old_387controlword, new_387controlword, out_387controlword
@@ -497,47 +497,47 @@ extern "C" {
/* Py_DEPRECATED(version)
* Declare a variable, type, or function deprecated.
- * The macro must be placed before the declaration.
+ * The macro must be placed before the declaration.
* Usage:
- * Py_DEPRECATED(3.3) extern int old_var;
- * Py_DEPRECATED(3.4) typedef int T1;
- * Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);
+ * Py_DEPRECATED(3.3) extern int old_var;
+ * Py_DEPRECATED(3.4) typedef int T1;
+ * Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);
*/
#if defined(__GNUC__) \
&& ((__GNUC__ >= 4) || (__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
-#elif defined(_MSC_VER)
-#define Py_DEPRECATED(VERSION) __declspec(deprecated( \
- "deprecated in " #VERSION))
+#elif defined(_MSC_VER)
+#define Py_DEPRECATED(VERSION) __declspec(deprecated( \
+ "deprecated in " #VERSION))
#else
#define Py_DEPRECATED(VERSION_UNUSED)
#endif
-// XXX
-#undef Py_DEPRECATED
-#define Py_DEPRECATED(VERSION_UNUSED)
-
-#if defined(__clang__)
-#define _Py_COMP_DIAG_PUSH _Pragma("clang diagnostic push")
-#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS \
- _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
-#define _Py_COMP_DIAG_POP _Pragma("clang diagnostic pop")
-#elif defined(__GNUC__) \
- && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 6))
-#define _Py_COMP_DIAG_PUSH _Pragma("GCC diagnostic push")
-#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS \
- _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
-#define _Py_COMP_DIAG_POP _Pragma("GCC diagnostic pop")
-#elif defined(_MSC_VER)
-#define _Py_COMP_DIAG_PUSH __pragma(warning(push))
-#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS __pragma(warning(disable: 4996))
-#define _Py_COMP_DIAG_POP __pragma(warning(pop))
-#else
-#define _Py_COMP_DIAG_PUSH
-#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS
-#define _Py_COMP_DIAG_POP
-#endif
-
+// XXX
+#undef Py_DEPRECATED
+#define Py_DEPRECATED(VERSION_UNUSED)
+
+#if defined(__clang__)
+#define _Py_COMP_DIAG_PUSH _Pragma("clang diagnostic push")
+#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS \
+ _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
+#define _Py_COMP_DIAG_POP _Pragma("clang diagnostic pop")
+#elif defined(__GNUC__) \
+ && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 6))
+#define _Py_COMP_DIAG_PUSH _Pragma("GCC diagnostic push")
+#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS \
+ _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
+#define _Py_COMP_DIAG_POP _Pragma("GCC diagnostic pop")
+#elif defined(_MSC_VER)
+#define _Py_COMP_DIAG_PUSH __pragma(warning(push))
+#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS __pragma(warning(disable: 4996))
+#define _Py_COMP_DIAG_POP __pragma(warning(pop))
+#else
+#define _Py_COMP_DIAG_PUSH
+#define _Py_COMP_DIAG_IGNORE_DEPR_DECLS
+#define _Py_COMP_DIAG_POP
+#endif
+
/* _Py_HOT_FUNCTION
* The hot attribute on a function is used to inform the compiler that the
* function is a hot spot of the compiled program. The function is optimized
@@ -567,10 +567,10 @@ extern "C" {
* Usage:
* int _Py_NO_INLINE x(void) { return 3; }
*/
-#if defined(_MSC_VER)
-# define _Py_NO_INLINE __declspec(noinline)
-#elif defined(__GNUC__) || defined(__clang__)
-# define _Py_NO_INLINE __attribute__ ((noinline))
+#if defined(_MSC_VER)
+# define _Py_NO_INLINE __declspec(noinline)
+#elif defined(__GNUC__) || defined(__clang__)
+# define _Py_NO_INLINE __attribute__ ((noinline))
#else
# define _Py_NO_INLINE
#endif
@@ -662,18 +662,18 @@ extern char * _getpty(int *, int, mode_t, int);
# define HAVE_DECLSPEC_DLL
#endif
-#include "exports.h"
-
+#include "exports.h"
+
/* only get special linkage if built as shared or platform is Cygwin */
#if defined(Py_ENABLE_SHARED) || defined(__CYGWIN__)
# if defined(HAVE_DECLSPEC_DLL)
-# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
-# define PyAPI_FUNC(RTYPE) Py_EXPORTED_SYMBOL RTYPE
-# define PyAPI_DATA(RTYPE) extern Py_EXPORTED_SYMBOL RTYPE
+# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
+# define PyAPI_FUNC(RTYPE) Py_EXPORTED_SYMBOL RTYPE
+# define PyAPI_DATA(RTYPE) extern Py_EXPORTED_SYMBOL RTYPE
/* module init functions inside the core need no external linkage */
/* except for Cygwin to handle embedding */
# if defined(__CYGWIN__)
-# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject*
+# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject*
# else /* __CYGWIN__ */
# define PyMODINIT_FUNC PyObject*
# endif /* __CYGWIN__ */
@@ -684,14 +684,14 @@ extern char * _getpty(int *, int, mode_t, int);
/* failures similar to those described at the bottom of 4.1: */
/* http://docs.python.org/extending/windows.html#a-cookbook-approach */
# if !defined(__CYGWIN__)
-# define PyAPI_FUNC(RTYPE) Py_IMPORTED_SYMBOL RTYPE
+# define PyAPI_FUNC(RTYPE) Py_IMPORTED_SYMBOL RTYPE
# endif /* !__CYGWIN__ */
-# define PyAPI_DATA(RTYPE) extern Py_IMPORTED_SYMBOL RTYPE
+# define PyAPI_DATA(RTYPE) extern Py_IMPORTED_SYMBOL RTYPE
/* module init functions outside the core must be exported */
# if defined(__cplusplus)
-# define PyMODINIT_FUNC extern "C" Py_EXPORTED_SYMBOL PyObject*
+# define PyMODINIT_FUNC extern "C" Py_EXPORTED_SYMBOL PyObject*
# else /* __cplusplus */
-# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject*
+# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject*
# endif /* __cplusplus */
# endif /* Py_BUILD_CORE */
# endif /* HAVE_DECLSPEC_DLL */
@@ -699,16 +699,16 @@ extern char * _getpty(int *, int, mode_t, int);
/* If no external linkage macros defined by now, create defaults */
#ifndef PyAPI_FUNC
-# define PyAPI_FUNC(RTYPE) Py_EXPORTED_SYMBOL RTYPE
+# define PyAPI_FUNC(RTYPE) Py_EXPORTED_SYMBOL RTYPE
#endif
#ifndef PyAPI_DATA
-# define PyAPI_DATA(RTYPE) extern Py_EXPORTED_SYMBOL RTYPE
+# define PyAPI_DATA(RTYPE) extern Py_EXPORTED_SYMBOL RTYPE
#endif
#ifndef PyMODINIT_FUNC
# if defined(__cplusplus)
-# define PyMODINIT_FUNC extern "C" Py_EXPORTED_SYMBOL PyObject*
+# define PyMODINIT_FUNC extern "C" Py_EXPORTED_SYMBOL PyObject*
# else /* __cplusplus */
-# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject*
+# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject*
# endif /* __cplusplus */
#endif
@@ -792,14 +792,14 @@ extern char * _getpty(int *, int, mode_t, int);
*/
#ifdef WORDS_BIGENDIAN
-# define PY_BIG_ENDIAN 1
-# define PY_LITTLE_ENDIAN 0
+# define PY_BIG_ENDIAN 1
+# define PY_LITTLE_ENDIAN 0
#else
-# define PY_BIG_ENDIAN 0
-# define PY_LITTLE_ENDIAN 1
+# define PY_BIG_ENDIAN 0
+# define PY_LITTLE_ENDIAN 1
#endif
-#ifdef Py_BUILD_CORE
+#ifdef Py_BUILD_CORE
/*
* Macros to protect CRT calls against instant termination when passed an
* invalid parameter (issue23524).
@@ -820,9 +820,9 @@ extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
#endif /* Py_BUILD_CORE */
#ifdef __ANDROID__
- /* The Android langinfo.h header is not used. */
-# undef HAVE_LANGINFO_H
-# undef CODESET
+ /* The Android langinfo.h header is not used. */
+# undef HAVE_LANGINFO_H
+# undef CODESET
#endif
/* Maximum value of the Windows DWORD type */
@@ -833,50 +833,50 @@ extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
* for compatibility.
*/
#ifndef WITH_THREAD
-# define WITH_THREAD
-#endif
-
-/* Check that ALT_SOABI is consistent with Py_TRACE_REFS:
- ./configure --with-trace-refs should must be used to define Py_TRACE_REFS */
-#if defined(ALT_SOABI) && defined(Py_TRACE_REFS)
-# error "Py_TRACE_REFS ABI is not compatible with release and debug ABI"
-#endif
-
-#if defined(__ANDROID__) || defined(__VXWORKS__)
- /* Ignore the locale encoding: force UTF-8 */
-# define _Py_FORCE_UTF8_LOCALE
-#endif
-
-#if defined(_Py_FORCE_UTF8_LOCALE) || defined(__APPLE__)
- /* Use UTF-8 as filesystem encoding */
-# define _Py_FORCE_UTF8_FS_ENCODING
-#endif
-
-/* Mark a function which cannot return. Example:
- PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void);
-
- XLC support is intentionally omitted due to bpo-40244 */
-#if defined(__clang__) || \
- (defined(__GNUC__) && \
- ((__GNUC__ >= 3) || \
- (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)))
-# define _Py_NO_RETURN __attribute__((__noreturn__))
-#elif defined(_MSC_VER)
-# define _Py_NO_RETURN __declspec(noreturn)
-#else
-# define _Py_NO_RETURN
-#endif
-
-
-// Preprocessor check for a builtin preprocessor function. Always return 0
-// if __has_builtin() macro is not defined.
-//
-// __has_builtin() is available on clang and GCC 10.
-#ifdef __has_builtin
-# define _Py__has_builtin(x) __has_builtin(x)
-#else
-# define _Py__has_builtin(x) 0
-#endif
-
-
+# define WITH_THREAD
+#endif
+
+/* Check that ALT_SOABI is consistent with Py_TRACE_REFS:
+ ./configure --with-trace-refs should must be used to define Py_TRACE_REFS */
+#if defined(ALT_SOABI) && defined(Py_TRACE_REFS)
+# error "Py_TRACE_REFS ABI is not compatible with release and debug ABI"
+#endif
+
+#if defined(__ANDROID__) || defined(__VXWORKS__)
+ /* Ignore the locale encoding: force UTF-8 */
+# define _Py_FORCE_UTF8_LOCALE
+#endif
+
+#if defined(_Py_FORCE_UTF8_LOCALE) || defined(__APPLE__)
+ /* Use UTF-8 as filesystem encoding */
+# define _Py_FORCE_UTF8_FS_ENCODING
+#endif
+
+/* Mark a function which cannot return. Example:
+ PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void);
+
+ XLC support is intentionally omitted due to bpo-40244 */
+#if defined(__clang__) || \
+ (defined(__GNUC__) && \
+ ((__GNUC__ >= 3) || \
+ (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)))
+# define _Py_NO_RETURN __attribute__((__noreturn__))
+#elif defined(_MSC_VER)
+# define _Py_NO_RETURN __declspec(noreturn)
+#else
+# define _Py_NO_RETURN
+#endif
+
+
+// Preprocessor check for a builtin preprocessor function. Always return 0
+// if __has_builtin() macro is not defined.
+//
+// __has_builtin() is available on clang and GCC 10.
+#ifdef __has_builtin
+# define _Py__has_builtin(x) __has_builtin(x)
+#else
+# define _Py__has_builtin(x) 0
+#endif
+
+
#endif /* Py_PYPORT_H */
diff --git a/contrib/tools/python3/src/Include/pystate.h b/contrib/tools/python3/src/Include/pystate.h
index 9ab8be6178..bae440778b 100644
--- a/contrib/tools/python3/src/Include/pystate.h
+++ b/contrib/tools/python3/src/Include/pystate.h
@@ -11,34 +11,34 @@ extern "C" {
removed (with effort). */
#define MAX_CO_EXTRA_USERS 255
-/* Forward declarations for PyFrameObject, PyThreadState
- and PyInterpreterState */
-struct _ts;
-struct _is;
-
-/* struct _ts is defined in cpython/pystate.h */
-typedef struct _ts PyThreadState;
-/* struct _is is defined in internal/pycore_interp.h */
+/* Forward declarations for PyFrameObject, PyThreadState
+ and PyInterpreterState */
+struct _ts;
+struct _is;
+
+/* struct _ts is defined in cpython/pystate.h */
+typedef struct _ts PyThreadState;
+/* struct _is is defined in internal/pycore_interp.h */
typedef struct _is PyInterpreterState;
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_New(void);
-PyAPI_FUNC(void) PyInterpreterState_Clear(PyInterpreterState *);
-PyAPI_FUNC(void) PyInterpreterState_Delete(PyInterpreterState *);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
-/* New in 3.9 */
-/* Get the current interpreter state.
-
- Issue a fatal error if there no current Python thread state or no current
- interpreter. It cannot return NULL.
-
- The caller must hold the GIL. */
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Get(void);
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03080000
-/* New in 3.8 */
-PyAPI_FUNC(PyObject *) PyInterpreterState_GetDict(PyInterpreterState *);
+PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_New(void);
+PyAPI_FUNC(void) PyInterpreterState_Clear(PyInterpreterState *);
+PyAPI_FUNC(void) PyInterpreterState_Delete(PyInterpreterState *);
+
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
+/* New in 3.9 */
+/* Get the current interpreter state.
+
+ Issue a fatal error if there no current Python thread state or no current
+ interpreter. It cannot return NULL.
+
+ The caller must hold the GIL. */
+PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Get(void);
+#endif
+
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03080000
+/* New in 3.8 */
+PyAPI_FUNC(PyObject *) PyInterpreterState_GetDict(PyInterpreterState *);
#endif
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
@@ -46,9 +46,9 @@ PyAPI_FUNC(PyObject *) PyInterpreterState_GetDict(PyInterpreterState *);
PyAPI_FUNC(int64_t) PyInterpreterState_GetID(PyInterpreterState *);
#endif
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-
-/* State unique per thread */
-
+
+/* State unique per thread */
+
/* New in 3.3 */
PyAPI_FUNC(int) PyState_AddModule(PyObject*, struct PyModuleDef*);
PyAPI_FUNC(int) PyState_RemoveModule(struct PyModuleDef*);
@@ -59,38 +59,38 @@ PyAPI_FUNC(PyThreadState *) PyThreadState_New(PyInterpreterState *);
PyAPI_FUNC(void) PyThreadState_Clear(PyThreadState *);
PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *);
-/* Get the current thread state.
-
- When the current thread state is NULL, this issues a fatal error (so that
- the caller needn't check for NULL).
-
- The caller must hold the GIL.
-
- See also PyThreadState_GET() and _PyThreadState_GET(). */
+/* Get the current thread state.
+
+ When the current thread state is NULL, this issues a fatal error (so that
+ the caller needn't check for NULL).
+
+ The caller must hold the GIL.
+
+ See also PyThreadState_GET() and _PyThreadState_GET(). */
PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);
-/* Get the current Python thread state.
-
- Macro using PyThreadState_Get() or _PyThreadState_GET() depending if
- pycore_pystate.h is included or not (this header redefines the macro).
-
- If PyThreadState_Get() is used, issue a fatal error if the current thread
- state is NULL.
-
- See also PyThreadState_Get() and _PyThreadState_GET(). */
-#define PyThreadState_GET() PyThreadState_Get()
-
+/* Get the current Python thread state.
+
+ Macro using PyThreadState_Get() or _PyThreadState_GET() depending if
+ pycore_pystate.h is included or not (this header redefines the macro).
+
+ If PyThreadState_Get() is used, issue a fatal error if the current thread
+ state is NULL.
+
+ See also PyThreadState_Get() and _PyThreadState_GET(). */
+#define PyThreadState_GET() PyThreadState_Get()
+
PyAPI_FUNC(PyThreadState *) PyThreadState_Swap(PyThreadState *);
PyAPI_FUNC(PyObject *) PyThreadState_GetDict(void);
PyAPI_FUNC(int) PyThreadState_SetAsyncExc(unsigned long, PyObject *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
-/* New in 3.9 */
-PyAPI_FUNC(PyInterpreterState*) PyThreadState_GetInterpreter(PyThreadState *tstate);
-PyAPI_FUNC(PyFrameObject*) PyThreadState_GetFrame(PyThreadState *tstate);
-PyAPI_FUNC(uint64_t) PyThreadState_GetID(PyThreadState *tstate);
-#endif
-
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
+/* New in 3.9 */
+PyAPI_FUNC(PyInterpreterState*) PyThreadState_GetInterpreter(PyThreadState *tstate);
+PyAPI_FUNC(PyFrameObject*) PyThreadState_GetFrame(PyThreadState *tstate);
+PyAPI_FUNC(uint64_t) PyThreadState_GetID(PyThreadState *tstate);
+#endif
+
typedef
enum {PyGILState_LOCKED, PyGILState_UNLOCKED}
PyGILState_STATE;
@@ -139,9 +139,9 @@ PyAPI_FUNC(PyThreadState *) PyGILState_GetThisThreadState(void);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_PYSTATE_H
-# include "cpython/pystate.h"
-# undef Py_CPYTHON_PYSTATE_H
+# define Py_CPYTHON_PYSTATE_H
+# include "cpython/pystate.h"
+# undef Py_CPYTHON_PYSTATE_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/pystrhex.h b/contrib/tools/python3/src/Include/pystrhex.h
index 8e0f26bcea..a4f36305ba 100644
--- a/contrib/tools/python3/src/Include/pystrhex.h
+++ b/contrib/tools/python3/src/Include/pystrhex.h
@@ -10,9 +10,9 @@ extern "C" {
PyAPI_FUNC(PyObject*) _Py_strhex(const char* argbuf, const Py_ssize_t arglen);
/* Returns a bytes() containing the ASCII hex representation of argbuf. */
PyAPI_FUNC(PyObject*) _Py_strhex_bytes(const char* argbuf, const Py_ssize_t arglen);
-/* These variants include support for a separator between every N bytes: */
-PyAPI_FUNC(PyObject*) _Py_strhex_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group);
-PyAPI_FUNC(PyObject*) _Py_strhex_bytes_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group);
+/* These variants include support for a separator between every N bytes: */
+PyAPI_FUNC(PyObject*) _Py_strhex_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group);
+PyAPI_FUNC(PyObject*) _Py_strhex_bytes_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group);
#endif /* !Py_LIMITED_API */
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/pythonrun.h b/contrib/tools/python3/src/Include/pythonrun.h
index 05566c5ef1..5752907243 100644
--- a/contrib/tools/python3/src/Include/pythonrun.h
+++ b/contrib/tools/python3/src/Include/pythonrun.h
@@ -72,23 +72,23 @@ PyAPI_FUNC(struct _mod *) PyParser_ASTFromFileObject(
#define PyParser_SimpleParseFile(FP, S, B) \
PyParser_SimpleParseFileFlags(FP, S, B, 0)
#endif
-
-#ifndef Py_BUILD_CORE
-Py_DEPRECATED(3.9)
-#endif
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *, int, int);
+
+#ifndef Py_BUILD_CORE
+Py_DEPRECATED(3.9)
+#endif
+PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *, int, int);
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-#ifndef Py_BUILD_CORE
-Py_DEPRECATED(3.9)
-#endif
+#ifndef Py_BUILD_CORE
+Py_DEPRECATED(3.9)
+#endif
PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(const char *,
const char *,
int, int);
#endif
-#ifndef Py_BUILD_CORE
-Py_DEPRECATED(3.9)
-#endif
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *, int, int);
+#ifndef Py_BUILD_CORE
+Py_DEPRECATED(3.9)
+#endif
+PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *, int, int);
#ifndef Py_LIMITED_API
PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *,
PyObject *, PyCompilerFlags *);
@@ -125,23 +125,23 @@ PyAPI_FUNC(struct symtable *) Py_SymtableString(
const char *filename, /* decoded from the filesystem encoding */
int start);
#ifndef Py_LIMITED_API
-PyAPI_FUNC(const char *) _Py_SourceAsString(
- PyObject *cmd,
- const char *funcname,
- const char *what,
- PyCompilerFlags *cf,
- PyObject **cmd_copy);
-
+PyAPI_FUNC(const char *) _Py_SourceAsString(
+ PyObject *cmd,
+ const char *funcname,
+ const char *what,
+ PyCompilerFlags *cf,
+ PyObject **cmd_copy);
+
PyAPI_FUNC(struct symtable *) Py_SymtableStringObject(
const char *str,
PyObject *filename,
int start);
-
-PyAPI_FUNC(struct symtable *) _Py_SymtableStringObjectFlags(
- const char *str,
- PyObject *filename,
- int start,
- PyCompilerFlags *flags);
+
+PyAPI_FUNC(struct symtable *) _Py_SymtableStringObjectFlags(
+ const char *str,
+ PyObject *filename,
+ int start,
+ PyCompilerFlags *flags);
#endif
PyAPI_FUNC(void) PyErr_Print(void);
@@ -149,23 +149,23 @@ PyAPI_FUNC(void) PyErr_PrintEx(int);
PyAPI_FUNC(void) PyErr_Display(PyObject *, PyObject *, PyObject *);
#ifndef Py_LIMITED_API
-/* A function flavor is also exported by libpython. It is required when
- libpython is accessed directly rather than using header files which defines
- macros below. On Windows, for example, PyAPI_FUNC() uses dllexport to
- export functions in pythonXX.dll. */
-PyAPI_FUNC(PyObject *) PyRun_String(const char *str, int s, PyObject *g, PyObject *l);
-PyAPI_FUNC(int) PyRun_AnyFile(FILE *fp, const char *name);
-PyAPI_FUNC(int) PyRun_AnyFileEx(FILE *fp, const char *name, int closeit);
-PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *);
-PyAPI_FUNC(int) PyRun_SimpleString(const char *s);
-PyAPI_FUNC(int) PyRun_SimpleFile(FILE *f, const char *p);
-PyAPI_FUNC(int) PyRun_SimpleFileEx(FILE *f, const char *p, int c);
-PyAPI_FUNC(int) PyRun_InteractiveOne(FILE *f, const char *p);
-PyAPI_FUNC(int) PyRun_InteractiveLoop(FILE *f, const char *p);
-PyAPI_FUNC(PyObject *) PyRun_File(FILE *fp, const char *p, int s, PyObject *g, PyObject *l);
-PyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, int c);
-PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, PyCompilerFlags *flags);
-
+/* A function flavor is also exported by libpython. It is required when
+ libpython is accessed directly rather than using header files which defines
+ macros below. On Windows, for example, PyAPI_FUNC() uses dllexport to
+ export functions in pythonXX.dll. */
+PyAPI_FUNC(PyObject *) PyRun_String(const char *str, int s, PyObject *g, PyObject *l);
+PyAPI_FUNC(int) PyRun_AnyFile(FILE *fp, const char *name);
+PyAPI_FUNC(int) PyRun_AnyFileEx(FILE *fp, const char *name, int closeit);
+PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *);
+PyAPI_FUNC(int) PyRun_SimpleString(const char *s);
+PyAPI_FUNC(int) PyRun_SimpleFile(FILE *f, const char *p);
+PyAPI_FUNC(int) PyRun_SimpleFileEx(FILE *f, const char *p, int c);
+PyAPI_FUNC(int) PyRun_InteractiveOne(FILE *f, const char *p);
+PyAPI_FUNC(int) PyRun_InteractiveLoop(FILE *f, const char *p);
+PyAPI_FUNC(PyObject *) PyRun_File(FILE *fp, const char *p, int s, PyObject *g, PyObject *l);
+PyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, int c);
+PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, PyCompilerFlags *flags);
+
/* Use macros for a bunch of old variants */
#define PyRun_String(str, s, g, l) PyRun_StringFlags(str, s, g, l, NULL)
#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags(fp, name, 0, NULL)
@@ -201,7 +201,7 @@ PyAPI_DATA(PyThreadState*) _PyOS_ReadlineTState;
to an 8k margin. */
#define PYOS_STACK_MARGIN 2048
-#if defined(WIN32) && !defined(MS_WIN64) && !defined(_M_ARM) && defined(_MSC_VER) && _MSC_VER >= 1300
+#if defined(WIN32) && !defined(MS_WIN64) && !defined(_M_ARM) && defined(_MSC_VER) && _MSC_VER >= 1300
/* Enable stack checking under Microsoft C */
#define USE_STACKCHECK
#endif
diff --git a/contrib/tools/python3/src/Include/pythread.h b/contrib/tools/python3/src/Include/pythread.h
index c2a077cc3e..bb9d864122 100644
--- a/contrib/tools/python3/src/Include/pythread.h
+++ b/contrib/tools/python3/src/Include/pythread.h
@@ -22,29 +22,29 @@ typedef enum PyLockStatus {
PyAPI_FUNC(void) PyThread_init_thread(void);
PyAPI_FUNC(unsigned long) PyThread_start_new_thread(void (*)(void *), void *);
-PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void);
+PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void);
PyAPI_FUNC(unsigned long) PyThread_get_thread_ident(void);
-#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(_WIN32) || defined(_AIX)
-#define PY_HAVE_THREAD_NATIVE_ID
-PyAPI_FUNC(unsigned long) PyThread_get_thread_native_id(void);
-#endif
-
+#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(_WIN32) || defined(_AIX)
+#define PY_HAVE_THREAD_NATIVE_ID
+PyAPI_FUNC(unsigned long) PyThread_get_thread_native_id(void);
+#endif
+
PyAPI_FUNC(PyThread_type_lock) PyThread_allocate_lock(void);
PyAPI_FUNC(void) PyThread_free_lock(PyThread_type_lock);
PyAPI_FUNC(int) PyThread_acquire_lock(PyThread_type_lock, int);
#define WAIT_LOCK 1
#define NOWAIT_LOCK 0
-#ifndef Py_LIMITED_API
-#ifdef HAVE_FORK
-/* Private function to reinitialize a lock at fork in the child process.
- Reset the lock to the unlocked state.
- Return 0 on success, return -1 on error. */
-PyAPI_FUNC(int) _PyThread_at_fork_reinit(PyThread_type_lock *lock);
-#endif /* HAVE_FORK */
-#endif /* !Py_LIMITED_API */
-
+#ifndef Py_LIMITED_API
+#ifdef HAVE_FORK
+/* Private function to reinitialize a lock at fork in the child process.
+ Reset the lock to the unlocked state.
+ Return 0 on success, return -1 on error. */
+PyAPI_FUNC(int) _PyThread_at_fork_reinit(PyThread_type_lock *lock);
+#endif /* HAVE_FORK */
+#endif /* !Py_LIMITED_API */
+
/* PY_TIMEOUT_T is the integral type used to specify timeouts when waiting
on a lock (see PyThread_acquire_lock_timed() below).
PY_TIMEOUT_MAX is the highest usable value (in microseconds) of that
@@ -59,16 +59,16 @@ PyAPI_FUNC(int) _PyThread_at_fork_reinit(PyThread_type_lock *lock);
#if defined(_POSIX_THREADS)
/* PyThread_acquire_lock_timed() uses _PyTime_FromNanoseconds(us * 1000),
convert microseconds to nanoseconds. */
-# define PY_TIMEOUT_MAX (LLONG_MAX / 1000)
+# define PY_TIMEOUT_MAX (LLONG_MAX / 1000)
#elif defined (NT_THREADS)
/* In the NT API, the timeout is a DWORD and is expressed in milliseconds */
-# if 0xFFFFFFFFLL * 1000 < LLONG_MAX
+# if 0xFFFFFFFFLL * 1000 < LLONG_MAX
# define PY_TIMEOUT_MAX (0xFFFFFFFFLL * 1000)
# else
-# define PY_TIMEOUT_MAX LLONG_MAX
+# define PY_TIMEOUT_MAX LLONG_MAX
# endif
#else
-# define PY_TIMEOUT_MAX LLONG_MAX
+# define PY_TIMEOUT_MAX LLONG_MAX
#endif
@@ -105,15 +105,15 @@ PyAPI_FUNC(PyObject*) PyThread_GetInfo(void);
platforms, but it is not POSIX-compliant. Therefore, the new TSS API uses
opaque data type to represent TSS keys to be compatible (see PEP 539).
*/
-Py_DEPRECATED(3.7) PyAPI_FUNC(int) PyThread_create_key(void);
-Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_delete_key(int key);
-Py_DEPRECATED(3.7) PyAPI_FUNC(int) PyThread_set_key_value(int key,
- void *value);
-Py_DEPRECATED(3.7) PyAPI_FUNC(void *) PyThread_get_key_value(int key);
-Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_delete_key_value(int key);
+Py_DEPRECATED(3.7) PyAPI_FUNC(int) PyThread_create_key(void);
+Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_delete_key(int key);
+Py_DEPRECATED(3.7) PyAPI_FUNC(int) PyThread_set_key_value(int key,
+ void *value);
+Py_DEPRECATED(3.7) PyAPI_FUNC(void *) PyThread_get_key_value(int key);
+Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_delete_key_value(int key);
/* Cleanup after a fork */
-Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_ReInitTLS(void);
+Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_ReInitTLS(void);
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
diff --git a/contrib/tools/python3/src/Include/pytime.h b/contrib/tools/python3/src/Include/pytime.h
index 59e269589f..2b9cbd06c3 100644
--- a/contrib/tools/python3/src/Include/pytime.h
+++ b/contrib/tools/python3/src/Include/pytime.h
@@ -19,8 +19,8 @@ extern "C" {
store a duration, and so indirectly a date (related to another date, like
UNIX epoch). */
typedef int64_t _PyTime_t;
-#define _PyTime_MIN INT64_MIN
-#define _PyTime_MAX INT64_MAX
+#define _PyTime_MIN INT64_MIN
+#define _PyTime_MAX INT64_MAX
typedef enum {
/* Round towards minus infinity (-inf).
@@ -93,13 +93,13 @@ PyAPI_FUNC(_PyTime_t) _PyTime_FromNanoseconds(_PyTime_t ns);
PyAPI_FUNC(int) _PyTime_FromNanosecondsObject(_PyTime_t *t,
PyObject *obj);
-/* Convert a number of seconds (Python float or int) to a timestamp.
+/* Convert a number of seconds (Python float or int) to a timestamp.
Raise an exception and return -1 on error, return 0 on success. */
PyAPI_FUNC(int) _PyTime_FromSecondsObject(_PyTime_t *t,
PyObject *obj,
_PyTime_round_t round);
-/* Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.
+/* Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.
Raise an exception and return -1 on error, return 0 on success. */
PyAPI_FUNC(int) _PyTime_FromMillisecondsObject(_PyTime_t *t,
PyObject *obj,
diff --git a/contrib/tools/python3/src/Include/rangeobject.h b/contrib/tools/python3/src/Include/rangeobject.h
index 36b0b4d68e..d6af8473f9 100644
--- a/contrib/tools/python3/src/Include/rangeobject.h
+++ b/contrib/tools/python3/src/Include/rangeobject.h
@@ -19,7 +19,7 @@ PyAPI_DATA(PyTypeObject) PyRange_Type;
PyAPI_DATA(PyTypeObject) PyRangeIter_Type;
PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type;
-#define PyRange_Check(op) Py_IS_TYPE(op, &PyRange_Type)
+#define PyRange_Check(op) Py_IS_TYPE(op, &PyRange_Type)
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/setobject.h b/contrib/tools/python3/src/Include/setobject.h
index cc3168512f..119619ebe7 100644
--- a/contrib/tools/python3/src/Include/setobject.h
+++ b/contrib/tools/python3/src/Include/setobject.h
@@ -87,18 +87,18 @@ PyAPI_FUNC(int) PySet_Discard(PyObject *set, PyObject *key);
PyAPI_FUNC(PyObject *) PySet_Pop(PyObject *set);
PyAPI_FUNC(Py_ssize_t) PySet_Size(PyObject *anyset);
-#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE(ob, &PyFrozenSet_Type)
+#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE(ob, &PyFrozenSet_Type)
#define PyAnySet_CheckExact(ob) \
- (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type))
+ (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type))
#define PyAnySet_Check(ob) \
- (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type) || \
+ (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type) || \
PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \
PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type))
#define PySet_Check(ob) \
- (Py_IS_TYPE(ob, &PySet_Type) || \
+ (Py_IS_TYPE(ob, &PySet_Type) || \
PyType_IsSubtype(Py_TYPE(ob), &PySet_Type))
#define PyFrozenSet_Check(ob) \
- (Py_IS_TYPE(ob, &PyFrozenSet_Type) || \
+ (Py_IS_TYPE(ob, &PyFrozenSet_Type) || \
PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type))
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/sliceobject.h b/contrib/tools/python3/src/Include/sliceobject.h
index 067502b77a..2c889508b4 100644
--- a/contrib/tools/python3/src/Include/sliceobject.h
+++ b/contrib/tools/python3/src/Include/sliceobject.h
@@ -28,7 +28,7 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PySlice_Type;
PyAPI_DATA(PyTypeObject) PyEllipsis_Type;
-#define PySlice_Check(op) Py_IS_TYPE(op, &PySlice_Type)
+#define PySlice_Check(op) Py_IS_TYPE(op, &PySlice_Type)
PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop,
PyObject* step);
@@ -40,11 +40,11 @@ PyAPI_FUNC(int) _PySlice_GetLongIndices(PySliceObject *self, PyObject *length,
#endif
PyAPI_FUNC(int) PySlice_GetIndices(PyObject *r, Py_ssize_t length,
Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step);
-Py_DEPRECATED(3.7)
+Py_DEPRECATED(3.7)
PyAPI_FUNC(int) PySlice_GetIndicesEx(PyObject *r, Py_ssize_t length,
Py_ssize_t *start, Py_ssize_t *stop,
- Py_ssize_t *step,
- Py_ssize_t *slicelength);
+ Py_ssize_t *step,
+ Py_ssize_t *slicelength);
#if !defined(Py_LIMITED_API) || (Py_LIMITED_API+0 >= 0x03050400 && Py_LIMITED_API+0 < 0x03060000) || Py_LIMITED_API+0 >= 0x03060100
#define PySlice_GetIndicesEx(slice, length, start, stop, step, slicelen) ( \
diff --git a/contrib/tools/python3/src/Include/structseq.h b/contrib/tools/python3/src/Include/structseq.h
index 8b38c16e72..8f51c89163 100644
--- a/contrib/tools/python3/src/Include/structseq.h
+++ b/contrib/tools/python3/src/Include/structseq.h
@@ -19,7 +19,7 @@ typedef struct PyStructSequence_Desc {
int n_in_sequence;
} PyStructSequence_Desc;
-extern const char * const PyStructSequence_UnnamedField;
+extern const char * const PyStructSequence_UnnamedField;
#ifndef Py_LIMITED_API
PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type,
diff --git a/contrib/tools/python3/src/Include/symtable.h b/contrib/tools/python3/src/Include/symtable.h
index 107f91dbc4..abd19a7923 100644
--- a/contrib/tools/python3/src/Include/symtable.h
+++ b/contrib/tools/python3/src/Include/symtable.h
@@ -5,8 +5,8 @@
extern "C" {
#endif
-#include "Python-ast.h" /* mod_ty */
-
+#include "Python-ast.h" /* mod_ty */
+
/* XXX(ncoghlan): This is a weird mix of public names and interpreter internal
* names.
*/
@@ -50,7 +50,7 @@ typedef struct _symtable_entry {
including free refs to globals */
unsigned ste_generator : 1; /* true if namespace is a generator */
unsigned ste_coroutine : 1; /* true if namespace is a coroutine */
- unsigned ste_comprehension : 1; /* true if namespace is a list comprehension */
+ unsigned ste_comprehension : 1; /* true if namespace is a list comprehension */
unsigned ste_varargs : 1; /* true if block has varargs */
unsigned ste_varkeywords : 1; /* true if block has varkeywords */
unsigned ste_returns_value : 1; /* true if namespace uses return with
@@ -58,8 +58,8 @@ typedef struct _symtable_entry {
unsigned ste_needs_class_closure : 1; /* for class scopes, true if a
closure over __class__
should be created */
- unsigned ste_comp_iter_target : 1; /* true if visiting comprehension target */
- int ste_comp_iter_expr; /* non-zero if visiting a comprehension range expression */
+ unsigned ste_comp_iter_target : 1; /* true if visiting comprehension target */
+ int ste_comp_iter_expr; /* non-zero if visiting a comprehension range expression */
int ste_lineno; /* first line of block */
int ste_col_offset; /* offset of first line of block */
int ste_opt_lineno; /* lineno of last exec or import * */
@@ -69,7 +69,7 @@ typedef struct _symtable_entry {
PyAPI_DATA(PyTypeObject) PySTEntry_Type;
-#define PySTEntry_Check(op) Py_IS_TYPE(op, &PySTEntry_Type)
+#define PySTEntry_Check(op) Py_IS_TYPE(op, &PySTEntry_Type)
PyAPI_FUNC(int) PyST_GetScope(PySTEntryObject *, PyObject *);
@@ -96,7 +96,7 @@ PyAPI_FUNC(void) PySymtable_Free(struct symtable *);
#define DEF_FREE_CLASS 2<<5 /* free variable from class's method */
#define DEF_IMPORT 2<<6 /* assignment occurred via import */
#define DEF_ANNOT 2<<7 /* this name is annotated */
-#define DEF_COMP_ITER 2<<8 /* this name is a comprehension iteration variable */
+#define DEF_COMP_ITER 2<<8 /* this name is a comprehension iteration variable */
#define DEF_BOUND (DEF_LOCAL | DEF_PARAM | DEF_IMPORT)
@@ -120,4 +120,4 @@ PyAPI_FUNC(void) PySymtable_Free(struct symtable *);
}
#endif
#endif /* !Py_SYMTABLE_H */
-#endif /* !Py_LIMITED_API */
+#endif /* !Py_LIMITED_API */
diff --git a/contrib/tools/python3/src/Include/sysmodule.h b/contrib/tools/python3/src/Include/sysmodule.h
index 4c324126f0..670e5d283f 100644
--- a/contrib/tools/python3/src/Include/sysmodule.h
+++ b/contrib/tools/python3/src/Include/sysmodule.h
@@ -30,9 +30,9 @@ PyAPI_FUNC(void) PySys_AddXOption(const wchar_t *);
PyAPI_FUNC(PyObject *) PySys_GetXOptions(void);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_SYSMODULE_H
-# include "cpython/sysmodule.h"
-# undef Py_CPYTHON_SYSMODULE_H
+# define Py_CPYTHON_SYSMODULE_H
+# include "cpython/sysmodule.h"
+# undef Py_CPYTHON_SYSMODULE_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/token.h b/contrib/tools/python3/src/Include/token.h
index 8da3d603a0..9b8a3aae07 100644
--- a/contrib/tools/python3/src/Include/token.h
+++ b/contrib/tools/python3/src/Include/token.h
@@ -1,4 +1,4 @@
-/* Auto-generated by Tools/scripts/generate_token.py */
+/* Auto-generated by Tools/scripts/generate_token.py */
/* Token types */
#ifndef Py_LIMITED_API
@@ -63,28 +63,28 @@ extern "C" {
#define ATEQUAL 50
#define RARROW 51
#define ELLIPSIS 52
-#define COLONEQUAL 53
-#define OP 54
-#define AWAIT 55
-#define ASYNC 56
-#define TYPE_IGNORE 57
-#define TYPE_COMMENT 58
-#define ERRORTOKEN 59
-#define N_TOKENS 63
-#define NT_OFFSET 256
+#define COLONEQUAL 53
+#define OP 54
+#define AWAIT 55
+#define ASYNC 56
+#define TYPE_IGNORE 57
+#define TYPE_COMMENT 58
+#define ERRORTOKEN 59
+#define N_TOKENS 63
+#define NT_OFFSET 256
/* Special definitions for cooperation with parser */
#define ISTERMINAL(x) ((x) < NT_OFFSET)
#define ISNONTERMINAL(x) ((x) >= NT_OFFSET)
#define ISEOF(x) ((x) == ENDMARKER)
-#define ISWHITESPACE(x) ((x) == ENDMARKER || \
- (x) == NEWLINE || \
- (x) == INDENT || \
- (x) == DEDENT)
+#define ISWHITESPACE(x) ((x) == ENDMARKER || \
+ (x) == NEWLINE || \
+ (x) == INDENT || \
+ (x) == DEDENT)
-PyAPI_DATA(const char * const) _PyParser_TokenNames[]; /* Token names */
+PyAPI_DATA(const char * const) _PyParser_TokenNames[]; /* Token names */
PyAPI_FUNC(int) PyToken_OneChar(int);
PyAPI_FUNC(int) PyToken_TwoChars(int, int);
PyAPI_FUNC(int) PyToken_ThreeChars(int, int, int);
diff --git a/contrib/tools/python3/src/Include/traceback.h b/contrib/tools/python3/src/Include/traceback.h
index c35d0632f3..781e5a6eec 100644
--- a/contrib/tools/python3/src/Include/traceback.h
+++ b/contrib/tools/python3/src/Include/traceback.h
@@ -6,19 +6,19 @@ extern "C" {
/* Traceback interface */
-PyAPI_FUNC(int) PyTraceBack_Here(PyFrameObject *);
+PyAPI_FUNC(int) PyTraceBack_Here(PyFrameObject *);
PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *);
/* Reveal traceback type so we can typecheck traceback objects */
PyAPI_DATA(PyTypeObject) PyTraceBack_Type;
-#define PyTraceBack_Check(v) Py_IS_TYPE(v, &PyTraceBack_Type)
+#define PyTraceBack_Check(v) Py_IS_TYPE(v, &PyTraceBack_Type)
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_TRACEBACK_H
-# include "cpython/traceback.h"
-# undef Py_CPYTHON_TRACEBACK_H
-#endif
+# define Py_CPYTHON_TRACEBACK_H
+# include "cpython/traceback.h"
+# undef Py_CPYTHON_TRACEBACK_H
+#endif
#ifdef __cplusplus
}
diff --git a/contrib/tools/python3/src/Include/tracemalloc.h b/contrib/tools/python3/src/Include/tracemalloc.h
index 318ecdae95..bd14217c19 100644
--- a/contrib/tools/python3/src/Include/tracemalloc.h
+++ b/contrib/tools/python3/src/Include/tracemalloc.h
@@ -1,38 +1,38 @@
-#ifndef Py_TRACEMALLOC_H
-#define Py_TRACEMALLOC_H
-
-#ifndef Py_LIMITED_API
-/* Track an allocated memory block in the tracemalloc module.
- Return 0 on success, return -1 on error (failed to allocate memory to store
- the trace).
-
- Return -2 if tracemalloc is disabled.
-
- If memory block is already tracked, update the existing trace. */
-PyAPI_FUNC(int) PyTraceMalloc_Track(
- unsigned int domain,
- uintptr_t ptr,
- size_t size);
-
-/* Untrack an allocated memory block in the tracemalloc module.
- Do nothing if the block was not tracked.
-
- Return -2 if tracemalloc is disabled, otherwise return 0. */
-PyAPI_FUNC(int) PyTraceMalloc_Untrack(
- unsigned int domain,
- uintptr_t ptr);
-
-/* Get the traceback where a memory block was allocated.
-
- Return a tuple of (filename: str, lineno: int) tuples.
-
- Return None if the tracemalloc module is disabled or if the memory block
- is not tracked by tracemalloc.
-
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
- unsigned int domain,
- uintptr_t ptr);
-#endif
-
-#endif /* !Py_TRACEMALLOC_H */
+#ifndef Py_TRACEMALLOC_H
+#define Py_TRACEMALLOC_H
+
+#ifndef Py_LIMITED_API
+/* Track an allocated memory block in the tracemalloc module.
+ Return 0 on success, return -1 on error (failed to allocate memory to store
+ the trace).
+
+ Return -2 if tracemalloc is disabled.
+
+ If memory block is already tracked, update the existing trace. */
+PyAPI_FUNC(int) PyTraceMalloc_Track(
+ unsigned int domain,
+ uintptr_t ptr,
+ size_t size);
+
+/* Untrack an allocated memory block in the tracemalloc module.
+ Do nothing if the block was not tracked.
+
+ Return -2 if tracemalloc is disabled, otherwise return 0. */
+PyAPI_FUNC(int) PyTraceMalloc_Untrack(
+ unsigned int domain,
+ uintptr_t ptr);
+
+/* Get the traceback where a memory block was allocated.
+
+ Return a tuple of (filename: str, lineno: int) tuples.
+
+ Return None if the tracemalloc module is disabled or if the memory block
+ is not tracked by tracemalloc.
+
+ Raise an exception and return NULL on error. */
+PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
+ unsigned int domain,
+ uintptr_t ptr);
+#endif
+
+#endif /* !Py_TRACEMALLOC_H */
diff --git a/contrib/tools/python3/src/Include/tupleobject.h b/contrib/tools/python3/src/Include/tupleobject.h
index f205b1f625..e796a32019 100644
--- a/contrib/tools/python3/src/Include/tupleobject.h
+++ b/contrib/tools/python3/src/Include/tupleobject.h
@@ -25,7 +25,7 @@ PyAPI_DATA(PyTypeObject) PyTupleIter_Type;
#define PyTuple_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TUPLE_SUBCLASS)
-#define PyTuple_CheckExact(op) Py_IS_TYPE(op, &PyTuple_Type)
+#define PyTuple_CheckExact(op) Py_IS_TYPE(op, &PyTuple_Type)
PyAPI_FUNC(PyObject *) PyTuple_New(Py_ssize_t size);
PyAPI_FUNC(Py_ssize_t) PyTuple_Size(PyObject *);
@@ -35,9 +35,9 @@ PyAPI_FUNC(PyObject *) PyTuple_GetSlice(PyObject *, Py_ssize_t, Py_ssize_t);
PyAPI_FUNC(PyObject *) PyTuple_Pack(Py_ssize_t, ...);
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_TUPLEOBJECT_H
-# include "cpython/tupleobject.h"
-# undef Py_CPYTHON_TUPLEOBJECT_H
+# define Py_CPYTHON_TUPLEOBJECT_H
+# include "cpython/tupleobject.h"
+# undef Py_CPYTHON_TUPLEOBJECT_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/typeslots.h b/contrib/tools/python3/src/Include/typeslots.h
index e6695dba06..64f6fff514 100644
--- a/contrib/tools/python3/src/Include/typeslots.h
+++ b/contrib/tools/python3/src/Include/typeslots.h
@@ -1,12 +1,12 @@
/* Do not renumber the file; these numbers are part of the stable ABI. */
-#if defined(Py_LIMITED_API)
+#if defined(Py_LIMITED_API)
/* Disabled, see #10181 */
#undef Py_bf_getbuffer
#undef Py_bf_releasebuffer
-#else
-#define Py_bf_getbuffer 1
-#define Py_bf_releasebuffer 2
-#endif
+#else
+#define Py_bf_getbuffer 1
+#define Py_bf_releasebuffer 2
+#endif
#define Py_mp_ass_subscript 3
#define Py_mp_length 4
#define Py_mp_subscript 5
diff --git a/contrib/tools/python3/src/Include/unicodeobject.h b/contrib/tools/python3/src/Include/unicodeobject.h
index f1c0e1fe0d..500ce242e9 100644
--- a/contrib/tools/python3/src/Include/unicodeobject.h
+++ b/contrib/tools/python3/src/Include/unicodeobject.h
@@ -113,7 +113,7 @@ PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type;
#define PyUnicode_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_UNICODE_SUBCLASS)
-#define PyUnicode_CheckExact(op) Py_IS_TYPE(op, &PyUnicode_Type)
+#define PyUnicode_CheckExact(op) Py_IS_TYPE(op, &PyUnicode_Type)
/* --- Constants ---------------------------------------------------------- */
@@ -174,9 +174,9 @@ PyAPI_FUNC(Py_ssize_t) PyUnicode_GetLength(
/* Get the number of Py_UNICODE units in the
string representation. */
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_ssize_t) PyUnicode_GetSize(
+Py_DEPRECATED(3.3) PyAPI_FUNC(Py_ssize_t) PyUnicode_GetSize(
PyObject *unicode /* Unicode object */
- );
+ );
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
/* Read a character from the string. */
@@ -370,11 +370,11 @@ PyAPI_FUNC(PyObject*) PyUnicode_Decode(
Use PyCodec_Decode() to decode with rot13 and non-standard codecs
that decode from str. */
-Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedObject(
+Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedObject(
PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */
const char *errors /* error handling */
- );
+ );
/* Decode a Unicode object unicode and return the result as Unicode
object.
@@ -383,11 +383,11 @@ Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedObject(
Use PyCodec_Decode() to decode with rot13 and non-standard codecs
that decode from str to str. */
-Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedUnicode(
+Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedUnicode(
PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */
const char *errors /* error handling */
- );
+ );
/* Encodes a Unicode object and returns the result as Python
object.
@@ -397,11 +397,11 @@ Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedUnicode(
Use PyCodec_Encode() for encoding with rot13 and non-standard codecs
that encode form str to non-bytes. */
-Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedObject(
+Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedObject(
PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */
const char *errors /* error handling */
- );
+ );
/* Encodes a Unicode object and returns the result as Python string
object. */
@@ -419,11 +419,11 @@ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString(
Use PyCodec_Encode() to encode with rot13 and non-standard codecs
that encode from str to str. */
-Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedUnicode(
+Py_DEPRECATED(3.6) PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedUnicode(
PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */
const char *errors /* error handling */
- );
+ );
/* Build an encoding map. */
@@ -609,7 +609,7 @@ PyAPI_FUNC(PyObject*) PyUnicode_AsRawUnicodeEscapeString(
/* --- Latin-1 Codecs -----------------------------------------------------
- Note: Latin-1 corresponds to the first 256 Unicode ordinals. */
+ Note: Latin-1 corresponds to the first 256 Unicode ordinals. */
PyAPI_FUNC(PyObject*) PyUnicode_DecodeLatin1(
const char *string, /* Latin-1 encoded string */
@@ -666,7 +666,7 @@ PyAPI_FUNC(PyObject*) PyUnicode_AsCharmapString(
PyObject *mapping /* encoding mapping */
);
-/* --- MBCS codecs for Windows -------------------------------------------- */
+/* --- MBCS codecs for Windows -------------------------------------------- */
#ifdef MS_WINDOWS
PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCS(
@@ -1022,9 +1022,9 @@ PyAPI_FUNC(int) PyUnicode_IsIdentifier(PyObject *s);
/* === Characters Type APIs =============================================== */
#ifndef Py_LIMITED_API
-# define Py_CPYTHON_UNICODEOBJECT_H
-# include "cpython/unicodeobject.h"
-# undef Py_CPYTHON_UNICODEOBJECT_H
+# define Py_CPYTHON_UNICODEOBJECT_H
+# include "cpython/unicodeobject.h"
+# undef Py_CPYTHON_UNICODEOBJECT_H
#endif
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Include/weakrefobject.h b/contrib/tools/python3/src/Include/weakrefobject.h
index 98149109ab..ac4b4821c8 100644
--- a/contrib/tools/python3/src/Include/weakrefobject.h
+++ b/contrib/tools/python3/src/Include/weakrefobject.h
@@ -46,10 +46,10 @@ PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType;
#define PyWeakref_CheckRef(op) PyObject_TypeCheck(op, &_PyWeakref_RefType)
#define PyWeakref_CheckRefExact(op) \
- Py_IS_TYPE(op, &_PyWeakref_RefType)
+ Py_IS_TYPE(op, &_PyWeakref_RefType)
#define PyWeakref_CheckProxy(op) \
- (Py_IS_TYPE(op, &_PyWeakref_ProxyType) || \
- Py_IS_TYPE(op, &_PyWeakref_CallableProxyType))
+ (Py_IS_TYPE(op, &_PyWeakref_ProxyType) || \
+ Py_IS_TYPE(op, &_PyWeakref_CallableProxyType))
#define PyWeakref_Check(op) \
(PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op))
diff --git a/contrib/tools/python3/src/LICENSE b/contrib/tools/python3/src/LICENSE
index 95a412f937..739c90c284 100644
--- a/contrib/tools/python3/src/LICENSE
+++ b/contrib/tools/python3/src/LICENSE
@@ -59,17 +59,17 @@ direction to make these releases possible.
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================
-Python software and documentation are licensed under the
-Python Software Foundation License Version 2.
-
-Starting with Python 3.8.6, examples, recipes, and other code in
-the documentation are dual licensed under the PSF License Version 2
-and the Zero-Clause BSD license.
-
-Some software incorporated into Python is under different licenses.
-The licenses are listed with code falling under that license.
-
-
+Python software and documentation are licensed under the
+Python Software Foundation License Version 2.
+
+Starting with Python 3.8.6, examples, recipes, and other code in
+the documentation are dual licensed under the PSF License Version 2
+and the Zero-Clause BSD license.
+
+Some software incorporated into Python is under different licenses.
+The licenses are listed with code falling under that license.
+
+
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------
@@ -84,7 +84,7 @@ analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Python Software Foundation;
+2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Python Software Foundation;
All Rights Reserved" are retained in Python alone or in any derivative version
prepared by Licensee.
@@ -263,17 +263,17 @@ FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
-----------------------------------------------------------------------
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
+
+ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
+----------------------------------------------------------------------
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/contrib/tools/python3/src/Lib/__future__.py b/contrib/tools/python3/src/Lib/__future__.py
index 9327d3c464..0e7b555234 100644
--- a/contrib/tools/python3/src/Lib/__future__.py
+++ b/contrib/tools/python3/src/Lib/__future__.py
@@ -66,20 +66,20 @@ __all__ = ["all_feature_names"] + all_feature_names
# code.h and used by compile.h, so that an editor search will find them here.
# However, they're not exported in __all__, because they don't really belong to
# this module.
-CO_NESTED = 0x0010 # nested_scopes
-CO_GENERATOR_ALLOWED = 0 # generators (obsolete, was 0x1000)
-CO_FUTURE_DIVISION = 0x20000 # division
-CO_FUTURE_ABSOLUTE_IMPORT = 0x40000 # perform absolute imports by default
-CO_FUTURE_WITH_STATEMENT = 0x80000 # with statement
-CO_FUTURE_PRINT_FUNCTION = 0x100000 # print function
-CO_FUTURE_UNICODE_LITERALS = 0x200000 # unicode string literals
-CO_FUTURE_BARRY_AS_BDFL = 0x400000
-CO_FUTURE_GENERATOR_STOP = 0x800000 # StopIteration becomes RuntimeError in generators
-CO_FUTURE_ANNOTATIONS = 0x1000000 # annotations become strings at runtime
-
-
+CO_NESTED = 0x0010 # nested_scopes
+CO_GENERATOR_ALLOWED = 0 # generators (obsolete, was 0x1000)
+CO_FUTURE_DIVISION = 0x20000 # division
+CO_FUTURE_ABSOLUTE_IMPORT = 0x40000 # perform absolute imports by default
+CO_FUTURE_WITH_STATEMENT = 0x80000 # with statement
+CO_FUTURE_PRINT_FUNCTION = 0x100000 # print function
+CO_FUTURE_UNICODE_LITERALS = 0x200000 # unicode string literals
+CO_FUTURE_BARRY_AS_BDFL = 0x400000
+CO_FUTURE_GENERATOR_STOP = 0x800000 # StopIteration becomes RuntimeError in generators
+CO_FUTURE_ANNOTATIONS = 0x1000000 # annotations become strings at runtime
+
+
class _Feature:
-
+
def __init__(self, optionalRelease, mandatoryRelease, compiler_flag):
self.optional = optionalRelease
self.mandatory = mandatoryRelease
@@ -105,7 +105,7 @@ class _Feature:
self.mandatory,
self.compiler_flag))
-
+
nested_scopes = _Feature((2, 1, 0, "beta", 1),
(2, 2, 0, "alpha", 0),
CO_NESTED)
@@ -135,7 +135,7 @@ unicode_literals = _Feature((2, 6, 0, "alpha", 2),
CO_FUTURE_UNICODE_LITERALS)
barry_as_FLUFL = _Feature((3, 1, 0, "alpha", 2),
- (4, 0, 0, "alpha", 0),
+ (4, 0, 0, "alpha", 0),
CO_FUTURE_BARRY_AS_BDFL)
generator_stop = _Feature((3, 5, 0, "beta", 1),
@@ -143,5 +143,5 @@ generator_stop = _Feature((3, 5, 0, "beta", 1),
CO_FUTURE_GENERATOR_STOP)
annotations = _Feature((3, 7, 0, "beta", 1),
- (3, 10, 0, "alpha", 0),
+ (3, 10, 0, "alpha", 0),
CO_FUTURE_ANNOTATIONS)
diff --git a/contrib/tools/python3/src/Lib/_aix_support.py b/contrib/tools/python3/src/Lib/_aix_support.py
index 06b65a253b..d27a1e8735 100644
--- a/contrib/tools/python3/src/Lib/_aix_support.py
+++ b/contrib/tools/python3/src/Lib/_aix_support.py
@@ -1,91 +1,91 @@
-"""Shared AIX support functions."""
-
-import sys
-import sysconfig
-
-try:
- import subprocess
-except ImportError: # pragma: no cover
- # _aix_support is used in distutils by setup.py to build C extensions,
- # before subprocess dependencies like _posixsubprocess are available.
- import _bootsubprocess as subprocess
-
-
-def _aix_tag(vrtl, bd):
- # type: (List[int], int) -> str
- # Infer the ABI bitwidth from maxsize (assuming 64 bit as the default)
- _sz = 32 if sys.maxsize == (2**31-1) else 64
- _bd = bd if bd != 0 else 9988
- # vrtl[version, release, technology_level]
- return "aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(vrtl[0], vrtl[1], vrtl[2], _bd, _sz)
-
-
-# extract version, release and technology level from a VRMF string
-def _aix_vrtl(vrmf):
- # type: (str) -> List[int]
- v, r, tl = vrmf.split(".")[:3]
- return [int(v[-1]), int(r), int(tl)]
-
-
-def _aix_bos_rte():
- # type: () -> Tuple[str, int]
- """
- Return a Tuple[str, int] e.g., ['7.1.4.34', 1806]
- The fileset bos.rte represents the current AIX run-time level. It's VRMF and
- builddate reflect the current ABI levels of the runtime environment.
- If no builddate is found give a value that will satisfy pep425 related queries
- """
- # All AIX systems to have lslpp installed in this location
- out = subprocess.check_output(["/usr/bin/lslpp", "-Lqc", "bos.rte"])
- out = out.decode("utf-8")
- out = out.strip().split(":") # type: ignore
- _bd = int(out[-1]) if out[-1] != '' else 9988
- return (str(out[2]), _bd)
-
-
-def aix_platform():
- # type: () -> str
- """
- AIX filesets are identified by four decimal values: V.R.M.F.
- V (version) and R (release) can be retreived using ``uname``
- Since 2007, starting with AIX 5.3 TL7, the M value has been
- included with the fileset bos.rte and represents the Technology
- Level (TL) of AIX. The F (Fix) value also increases, but is not
- relevant for comparing releases and binary compatibility.
- For binary compatibility the so-called builddate is needed.
- Again, the builddate of an AIX release is associated with bos.rte.
- AIX ABI compatibility is described as guaranteed at: https://www.ibm.com/\
- support/knowledgecenter/en/ssw_aix_72/install/binary_compatability.html
-
- For pep425 purposes the AIX platform tag becomes:
- "aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(v, r, tl, builddate, bitsize)
- e.g., "aix-6107-1415-32" for AIX 6.1 TL7 bd 1415, 32-bit
- and, "aix-6107-1415-64" for AIX 6.1 TL7 bd 1415, 64-bit
- """
- vrmf, bd = _aix_bos_rte()
- return _aix_tag(_aix_vrtl(vrmf), bd)
-
-
-# extract vrtl from the BUILD_GNU_TYPE as an int
-def _aix_bgt():
- # type: () -> List[int]
- gnu_type = sysconfig.get_config_var("BUILD_GNU_TYPE")
- if not gnu_type:
- raise ValueError("BUILD_GNU_TYPE is not defined")
- return _aix_vrtl(vrmf=gnu_type)
-
-
-def aix_buildtag():
- # type: () -> str
- """
- Return the platform_tag of the system Python was built on.
- """
- # AIX_BUILDDATE is defined by configure with:
- # lslpp -Lcq bos.rte | awk -F: '{ print $NF }'
- build_date = sysconfig.get_config_var("AIX_BUILDDATE")
- try:
- build_date = int(build_date)
- except (ValueError, TypeError):
- raise ValueError(f"AIX_BUILDDATE is not defined or invalid: "
- f"{build_date!r}")
- return _aix_tag(_aix_bgt(), build_date)
+"""Shared AIX support functions."""
+
+import sys
+import sysconfig
+
+try:
+ import subprocess
+except ImportError: # pragma: no cover
+ # _aix_support is used in distutils by setup.py to build C extensions,
+ # before subprocess dependencies like _posixsubprocess are available.
+ import _bootsubprocess as subprocess
+
+
+def _aix_tag(vrtl, bd):
+ # type: (List[int], int) -> str
+ # Infer the ABI bitwidth from maxsize (assuming 64 bit as the default)
+ _sz = 32 if sys.maxsize == (2**31-1) else 64
+ _bd = bd if bd != 0 else 9988
+ # vrtl[version, release, technology_level]
+ return "aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(vrtl[0], vrtl[1], vrtl[2], _bd, _sz)
+
+
+# extract version, release and technology level from a VRMF string
+def _aix_vrtl(vrmf):
+ # type: (str) -> List[int]
+ v, r, tl = vrmf.split(".")[:3]
+ return [int(v[-1]), int(r), int(tl)]
+
+
+def _aix_bos_rte():
+ # type: () -> Tuple[str, int]
+ """
+ Return a Tuple[str, int] e.g., ['7.1.4.34', 1806]
+ The fileset bos.rte represents the current AIX run-time level. It's VRMF and
+ builddate reflect the current ABI levels of the runtime environment.
+ If no builddate is found give a value that will satisfy pep425 related queries
+ """
+ # All AIX systems to have lslpp installed in this location
+ out = subprocess.check_output(["/usr/bin/lslpp", "-Lqc", "bos.rte"])
+ out = out.decode("utf-8")
+ out = out.strip().split(":") # type: ignore
+ _bd = int(out[-1]) if out[-1] != '' else 9988
+ return (str(out[2]), _bd)
+
+
+def aix_platform():
+ # type: () -> str
+ """
+ AIX filesets are identified by four decimal values: V.R.M.F.
+ V (version) and R (release) can be retreived using ``uname``
+ Since 2007, starting with AIX 5.3 TL7, the M value has been
+ included with the fileset bos.rte and represents the Technology
+ Level (TL) of AIX. The F (Fix) value also increases, but is not
+ relevant for comparing releases and binary compatibility.
+ For binary compatibility the so-called builddate is needed.
+ Again, the builddate of an AIX release is associated with bos.rte.
+ AIX ABI compatibility is described as guaranteed at: https://www.ibm.com/\
+ support/knowledgecenter/en/ssw_aix_72/install/binary_compatability.html
+
+ For pep425 purposes the AIX platform tag becomes:
+ "aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(v, r, tl, builddate, bitsize)
+ e.g., "aix-6107-1415-32" for AIX 6.1 TL7 bd 1415, 32-bit
+ and, "aix-6107-1415-64" for AIX 6.1 TL7 bd 1415, 64-bit
+ """
+ vrmf, bd = _aix_bos_rte()
+ return _aix_tag(_aix_vrtl(vrmf), bd)
+
+
+# extract vrtl from the BUILD_GNU_TYPE as an int
+def _aix_bgt():
+ # type: () -> List[int]
+ gnu_type = sysconfig.get_config_var("BUILD_GNU_TYPE")
+ if not gnu_type:
+ raise ValueError("BUILD_GNU_TYPE is not defined")
+ return _aix_vrtl(vrmf=gnu_type)
+
+
+def aix_buildtag():
+ # type: () -> str
+ """
+ Return the platform_tag of the system Python was built on.
+ """
+ # AIX_BUILDDATE is defined by configure with:
+ # lslpp -Lcq bos.rte | awk -F: '{ print $NF }'
+ build_date = sysconfig.get_config_var("AIX_BUILDDATE")
+ try:
+ build_date = int(build_date)
+ except (ValueError, TypeError):
+ raise ValueError(f"AIX_BUILDDATE is not defined or invalid: "
+ f"{build_date!r}")
+ return _aix_tag(_aix_bgt(), build_date)
diff --git a/contrib/tools/python3/src/Lib/_bootsubprocess.py b/contrib/tools/python3/src/Lib/_bootsubprocess.py
index d692e2aee1..014782f616 100644
--- a/contrib/tools/python3/src/Lib/_bootsubprocess.py
+++ b/contrib/tools/python3/src/Lib/_bootsubprocess.py
@@ -1,97 +1,97 @@
-"""
-Basic subprocess implementation for POSIX which only uses os functions. Only
-implement features required by setup.py to build C extension modules when
-subprocess is unavailable. setup.py is not used on Windows.
-"""
-import os
-
-
-# distutils.spawn used by distutils.command.build_ext
-# calls subprocess.Popen().wait()
-class Popen:
- def __init__(self, cmd, env=None):
- self._cmd = cmd
- self._env = env
- self.returncode = None
-
- def wait(self):
- pid = os.fork()
- if pid == 0:
- # Child process
- try:
- if self._env is not None:
- os.execve(self._cmd[0], self._cmd, self._env)
- else:
- os.execv(self._cmd[0], self._cmd)
- finally:
- os._exit(1)
- else:
- # Parent process
- _, status = os.waitpid(pid, 0)
- self.returncode = os.waitstatus_to_exitcode(status)
-
- return self.returncode
-
-
-def _check_cmd(cmd):
- # Use regex [a-zA-Z0-9./-]+: reject empty string, space, etc.
- safe_chars = []
- for first, last in (("a", "z"), ("A", "Z"), ("0", "9")):
- for ch in range(ord(first), ord(last) + 1):
- safe_chars.append(chr(ch))
- safe_chars.append("./-")
- safe_chars = ''.join(safe_chars)
-
- if isinstance(cmd, (tuple, list)):
- check_strs = cmd
- elif isinstance(cmd, str):
- check_strs = [cmd]
- else:
- return False
-
- for arg in check_strs:
- if not isinstance(arg, str):
- return False
- if not arg:
- # reject empty string
- return False
- for ch in arg:
- if ch not in safe_chars:
- return False
-
- return True
-
-
-# _aix_support used by distutil.util calls subprocess.check_output()
-def check_output(cmd, **kwargs):
- if kwargs:
- raise NotImplementedError(repr(kwargs))
-
- if not _check_cmd(cmd):
- raise ValueError(f"unsupported command: {cmd!r}")
-
- tmp_filename = "check_output.tmp"
- if not isinstance(cmd, str):
- cmd = " ".join(cmd)
- cmd = f"{cmd} >{tmp_filename}"
-
- try:
- # system() spawns a shell
- status = os.system(cmd)
- exitcode = os.waitstatus_to_exitcode(status)
- if exitcode:
- raise ValueError(f"Command {cmd!r} returned non-zero "
- f"exit status {exitcode!r}")
-
- try:
- with open(tmp_filename, "rb") as fp:
- stdout = fp.read()
- except FileNotFoundError:
- stdout = b''
- finally:
- try:
- os.unlink(tmp_filename)
- except OSError:
- pass
-
- return stdout
+"""
+Basic subprocess implementation for POSIX which only uses os functions. Only
+implement features required by setup.py to build C extension modules when
+subprocess is unavailable. setup.py is not used on Windows.
+"""
+import os
+
+
+# distutils.spawn used by distutils.command.build_ext
+# calls subprocess.Popen().wait()
+class Popen:
+ def __init__(self, cmd, env=None):
+ self._cmd = cmd
+ self._env = env
+ self.returncode = None
+
+ def wait(self):
+ pid = os.fork()
+ if pid == 0:
+ # Child process
+ try:
+ if self._env is not None:
+ os.execve(self._cmd[0], self._cmd, self._env)
+ else:
+ os.execv(self._cmd[0], self._cmd)
+ finally:
+ os._exit(1)
+ else:
+ # Parent process
+ _, status = os.waitpid(pid, 0)
+ self.returncode = os.waitstatus_to_exitcode(status)
+
+ return self.returncode
+
+
+def _check_cmd(cmd):
+ # Use regex [a-zA-Z0-9./-]+: reject empty string, space, etc.
+ safe_chars = []
+ for first, last in (("a", "z"), ("A", "Z"), ("0", "9")):
+ for ch in range(ord(first), ord(last) + 1):
+ safe_chars.append(chr(ch))
+ safe_chars.append("./-")
+ safe_chars = ''.join(safe_chars)
+
+ if isinstance(cmd, (tuple, list)):
+ check_strs = cmd
+ elif isinstance(cmd, str):
+ check_strs = [cmd]
+ else:
+ return False
+
+ for arg in check_strs:
+ if not isinstance(arg, str):
+ return False
+ if not arg:
+ # reject empty string
+ return False
+ for ch in arg:
+ if ch not in safe_chars:
+ return False
+
+ return True
+
+
+# _aix_support used by distutil.util calls subprocess.check_output()
+def check_output(cmd, **kwargs):
+ if kwargs:
+ raise NotImplementedError(repr(kwargs))
+
+ if not _check_cmd(cmd):
+ raise ValueError(f"unsupported command: {cmd!r}")
+
+ tmp_filename = "check_output.tmp"
+ if not isinstance(cmd, str):
+ cmd = " ".join(cmd)
+ cmd = f"{cmd} >{tmp_filename}"
+
+ try:
+ # system() spawns a shell
+ status = os.system(cmd)
+ exitcode = os.waitstatus_to_exitcode(status)
+ if exitcode:
+ raise ValueError(f"Command {cmd!r} returned non-zero "
+ f"exit status {exitcode!r}")
+
+ try:
+ with open(tmp_filename, "rb") as fp:
+ stdout = fp.read()
+ except FileNotFoundError:
+ stdout = b''
+ finally:
+ try:
+ os.unlink(tmp_filename)
+ except OSError:
+ pass
+
+ return stdout
diff --git a/contrib/tools/python3/src/Lib/_collections_abc.py b/contrib/tools/python3/src/Lib/_collections_abc.py
index 33e6a0b71f..acfaff802f 100644
--- a/contrib/tools/python3/src/Lib/_collections_abc.py
+++ b/contrib/tools/python3/src/Lib/_collections_abc.py
@@ -9,12 +9,12 @@ Unit tests are in test_collections.
from abc import ABCMeta, abstractmethod
import sys
-GenericAlias = type(list[int])
-EllipsisType = type(...)
-def _f(): pass
-FunctionType = type(_f)
-del _f
-
+GenericAlias = type(list[int])
+EllipsisType = type(...)
+def _f(): pass
+FunctionType = type(_f)
+del _f
+
__all__ = ["Awaitable", "Coroutine",
"AsyncIterable", "AsyncIterator", "AsyncGenerator",
"Hashable", "Iterable", "Iterator", "Generator", "Reversible",
@@ -116,9 +116,9 @@ class Awaitable(metaclass=ABCMeta):
return _check_methods(C, "__await__")
return NotImplemented
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
class Coroutine(Awaitable):
__slots__ = ()
@@ -177,9 +177,9 @@ class AsyncIterable(metaclass=ABCMeta):
return _check_methods(C, "__aiter__")
return NotImplemented
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
class AsyncIterator(AsyncIterable):
__slots__ = ()
@@ -265,9 +265,9 @@ class Iterable(metaclass=ABCMeta):
return _check_methods(C, "__iter__")
return NotImplemented
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
class Iterator(Iterable):
__slots__ = ()
@@ -286,7 +286,7 @@ class Iterator(Iterable):
return _check_methods(C, '__iter__', '__next__')
return NotImplemented
-
+
Iterator.register(bytes_iterator)
Iterator.register(bytearray_iterator)
#Iterator.register(callable_iterator)
@@ -366,7 +366,7 @@ class Generator(Iterator):
'send', 'throw', 'close')
return NotImplemented
-
+
Generator.register(generator)
@@ -399,9 +399,9 @@ class Container(metaclass=ABCMeta):
return _check_methods(C, "__contains__")
return NotImplemented
- __class_getitem__ = classmethod(GenericAlias)
-
-
+ __class_getitem__ = classmethod(GenericAlias)
+
+
class Collection(Sized, Iterable, Container):
__slots__ = ()
@@ -412,87 +412,87 @@ class Collection(Sized, Iterable, Container):
return _check_methods(C, "__len__", "__iter__", "__contains__")
return NotImplemented
-
-class _CallableGenericAlias(GenericAlias):
- """ Represent `Callable[argtypes, resulttype]`.
-
- This sets ``__args__`` to a tuple containing the flattened``argtypes``
- followed by ``resulttype``.
-
- Example: ``Callable[[int, str], float]`` sets ``__args__`` to
- ``(int, str, float)``.
- """
-
- __slots__ = ()
-
- def __new__(cls, origin, args):
- try:
- return cls.__create_ga(origin, args)
- except TypeError as exc:
- import warnings
- warnings.warn(f'{str(exc)} '
- f'(This will raise a TypeError in Python 3.10.)',
- DeprecationWarning)
- return GenericAlias(origin, args)
-
- @classmethod
- def __create_ga(cls, origin, args):
- if not isinstance(args, tuple) or len(args) != 2:
- raise TypeError(
- "Callable must be used as Callable[[arg, ...], result].")
- t_args, t_result = args
- if isinstance(t_args, (list, tuple)):
- ga_args = tuple(t_args) + (t_result,)
- # This relaxes what t_args can be on purpose to allow things like
- # PEP 612 ParamSpec. Responsibility for whether a user is using
- # Callable[...] properly is deferred to static type checkers.
- else:
- ga_args = args
- return super().__new__(cls, origin, ga_args)
-
- def __repr__(self):
- if len(self.__args__) == 2 and self.__args__[0] is Ellipsis:
- return super().__repr__()
- return (f'collections.abc.Callable'
- f'[[{", ".join([_type_repr(a) for a in self.__args__[:-1]])}], '
- f'{_type_repr(self.__args__[-1])}]')
-
- def __reduce__(self):
- args = self.__args__
- if not (len(args) == 2 and args[0] is Ellipsis):
- args = list(args[:-1]), args[-1]
- return _CallableGenericAlias, (Callable, args)
-
- def __getitem__(self, item):
- # Called during TypeVar substitution, returns the custom subclass
- # rather than the default types.GenericAlias object.
- ga = super().__getitem__(item)
- args = ga.__args__
- t_result = args[-1]
- t_args = args[:-1]
- args = (t_args, t_result)
- return _CallableGenericAlias(Callable, args)
-
-
-def _type_repr(obj):
- """Return the repr() of an object, special-casing types (internal helper).
-
- Copied from :mod:`typing` since collections.abc
- shouldn't depend on that module.
- """
- if isinstance(obj, GenericAlias):
- return repr(obj)
- if isinstance(obj, type):
- if obj.__module__ == 'builtins':
- return obj.__qualname__
- return f'{obj.__module__}.{obj.__qualname__}'
- if obj is Ellipsis:
- return '...'
- if isinstance(obj, FunctionType):
- return obj.__name__
- return repr(obj)
-
-
+
+class _CallableGenericAlias(GenericAlias):
+ """ Represent `Callable[argtypes, resulttype]`.
+
+ This sets ``__args__`` to a tuple containing the flattened``argtypes``
+ followed by ``resulttype``.
+
+ Example: ``Callable[[int, str], float]`` sets ``__args__`` to
+ ``(int, str, float)``.
+ """
+
+ __slots__ = ()
+
+ def __new__(cls, origin, args):
+ try:
+ return cls.__create_ga(origin, args)
+ except TypeError as exc:
+ import warnings
+ warnings.warn(f'{str(exc)} '
+ f'(This will raise a TypeError in Python 3.10.)',
+ DeprecationWarning)
+ return GenericAlias(origin, args)
+
+ @classmethod
+ def __create_ga(cls, origin, args):
+ if not isinstance(args, tuple) or len(args) != 2:
+ raise TypeError(
+ "Callable must be used as Callable[[arg, ...], result].")
+ t_args, t_result = args
+ if isinstance(t_args, (list, tuple)):
+ ga_args = tuple(t_args) + (t_result,)
+ # This relaxes what t_args can be on purpose to allow things like
+ # PEP 612 ParamSpec. Responsibility for whether a user is using
+ # Callable[...] properly is deferred to static type checkers.
+ else:
+ ga_args = args
+ return super().__new__(cls, origin, ga_args)
+
+ def __repr__(self):
+ if len(self.__args__) == 2 and self.__args__[0] is Ellipsis:
+ return super().__repr__()
+ return (f'collections.abc.Callable'
+ f'[[{", ".join([_type_repr(a) for a in self.__args__[:-1]])}], '
+ f'{_type_repr(self.__args__[-1])}]')
+
+ def __reduce__(self):
+ args = self.__args__
+ if not (len(args) == 2 and args[0] is Ellipsis):
+ args = list(args[:-1]), args[-1]
+ return _CallableGenericAlias, (Callable, args)
+
+ def __getitem__(self, item):
+ # Called during TypeVar substitution, returns the custom subclass
+ # rather than the default types.GenericAlias object.
+ ga = super().__getitem__(item)
+ args = ga.__args__
+ t_result = args[-1]
+ t_args = args[:-1]
+ args = (t_args, t_result)
+ return _CallableGenericAlias(Callable, args)
+
+
+def _type_repr(obj):
+ """Return the repr() of an object, special-casing types (internal helper).
+
+ Copied from :mod:`typing` since collections.abc
+ shouldn't depend on that module.
+ """
+ if isinstance(obj, GenericAlias):
+ return repr(obj)
+ if isinstance(obj, type):
+ if obj.__module__ == 'builtins':
+ return obj.__qualname__
+ return f'{obj.__module__}.{obj.__qualname__}'
+ if obj is Ellipsis:
+ return '...'
+ if isinstance(obj, FunctionType):
+ return obj.__name__
+ return repr(obj)
+
+
class Callable(metaclass=ABCMeta):
__slots__ = ()
@@ -507,9 +507,9 @@ class Callable(metaclass=ABCMeta):
return _check_methods(C, "__call__")
return NotImplemented
- __class_getitem__ = classmethod(_CallableGenericAlias)
+ __class_getitem__ = classmethod(_CallableGenericAlias)
+
-
### SETS ###
@@ -642,7 +642,7 @@ class Set(Collection):
hx = hash(x)
h ^= (hx ^ (hx << 16) ^ 89869747) * 3644798167
h &= MASK
- h ^= (h >> 11) ^ (h >> 25)
+ h ^= (h >> 11) ^ (h >> 25)
h = h * 69069 + 907133923
h &= MASK
if h > MAX:
@@ -651,7 +651,7 @@ class Set(Collection):
h = 590923713
return h
-
+
Set.register(frozenset)
@@ -734,7 +734,7 @@ class MutableSet(Set):
self.discard(value)
return self
-
+
MutableSet.register(set)
@@ -791,7 +791,7 @@ class Mapping(Collection):
__reversed__ = None
-
+
Mapping.register(mappingproxy)
@@ -808,9 +808,9 @@ class MappingView(Sized):
def __repr__(self):
return '{0.__class__.__name__}({0._mapping!r})'.format(self)
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
class KeysView(MappingView, Set):
__slots__ = ()
@@ -825,7 +825,7 @@ class KeysView(MappingView, Set):
def __iter__(self):
yield from self._mapping
-
+
KeysView.register(dict_keys)
@@ -850,7 +850,7 @@ class ItemsView(MappingView, Set):
for key in self._mapping:
yield (key, self._mapping[key])
-
+
ItemsView.register(dict_items)
@@ -869,7 +869,7 @@ class ValuesView(MappingView, Collection):
for key in self._mapping:
yield self._mapping[key]
-
+
ValuesView.register(dict_values)
@@ -930,21 +930,21 @@ class MutableMapping(Mapping):
except KeyError:
pass
- def update(self, other=(), /, **kwds):
+ def update(self, other=(), /, **kwds):
''' D.update([E, ]**F) -> None. Update D from mapping/iterable E and F.
If E present and has a .keys() method, does: for k in E: D[k] = E[k]
If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v
In either case, this is followed by: for k, v in F.items(): D[k] = v
'''
- if isinstance(other, Mapping):
- for key in other:
- self[key] = other[key]
- elif hasattr(other, "keys"):
- for key in other.keys():
- self[key] = other[key]
- else:
- for key, value in other:
- self[key] = value
+ if isinstance(other, Mapping):
+ for key in other:
+ self[key] = other[key]
+ elif hasattr(other, "keys"):
+ for key in other.keys():
+ self[key] = other[key]
+ else:
+ for key, value in other:
+ self[key] = value
for key, value in kwds.items():
self[key] = value
@@ -956,7 +956,7 @@ class MutableMapping(Mapping):
self[key] = default
return default
-
+
MutableMapping.register(dict)
@@ -1024,7 +1024,7 @@ class Sequence(Reversible, Collection):
'S.count(value) -> integer -- return number of occurrences of value'
return sum(1 for v in self if v is value or v == value)
-
+
Sequence.register(tuple)
Sequence.register(str)
Sequence.register(range)
@@ -1088,8 +1088,8 @@ class MutableSequence(Sequence):
def extend(self, values):
'S.extend(iterable) -- extend sequence by appending elements from the iterable'
- if values is self:
- values = list(values)
+ if values is self:
+ values = list(values)
for v in values:
self.append(v)
@@ -1111,6 +1111,6 @@ class MutableSequence(Sequence):
self.extend(values)
return self
-
+
MutableSequence.register(list)
MutableSequence.register(bytearray) # Multiply inheriting, see ByteString
diff --git a/contrib/tools/python3/src/Lib/_osx_support.py b/contrib/tools/python3/src/Lib/_osx_support.py
index 09be87621b..2fc324a1ef 100644
--- a/contrib/tools/python3/src/Lib/_osx_support.py
+++ b/contrib/tools/python3/src/Lib/_osx_support.py
@@ -52,7 +52,7 @@ def _find_executable(executable, path=None):
return executable
-def _read_output(commandstring, capture_stderr=False):
+def _read_output(commandstring, capture_stderr=False):
"""Output from successful command execution or None"""
# Similar to os.popen(commandstring, "r").read(),
# but without actually using os.popen because that
@@ -67,10 +67,10 @@ def _read_output(commandstring, capture_stderr=False):
os.getpid(),), "w+b")
with contextlib.closing(fp) as fp:
- if capture_stderr:
- cmd = "%s >'%s' 2>&1" % (commandstring, fp.name)
- else:
- cmd = "%s 2>/dev/null >'%s'" % (commandstring, fp.name)
+ if capture_stderr:
+ cmd = "%s >'%s' 2>&1" % (commandstring, fp.name)
+ else:
+ cmd = "%s 2>/dev/null >'%s'" % (commandstring, fp.name)
return fp.read().decode('utf-8').strip() if not os.system(cmd) else None
@@ -113,26 +113,26 @@ def _get_system_version():
return _SYSTEM_VERSION
-_SYSTEM_VERSION_TUPLE = None
-def _get_system_version_tuple():
- """
- Return the macOS system version as a tuple
-
- The return value is safe to use to compare
- two version numbers.
- """
- global _SYSTEM_VERSION_TUPLE
- if _SYSTEM_VERSION_TUPLE is None:
- osx_version = _get_system_version()
- if osx_version:
- try:
- _SYSTEM_VERSION_TUPLE = tuple(int(i) for i in osx_version.split('.'))
- except ValueError:
- _SYSTEM_VERSION_TUPLE = ()
-
- return _SYSTEM_VERSION_TUPLE
-
-
+_SYSTEM_VERSION_TUPLE = None
+def _get_system_version_tuple():
+ """
+ Return the macOS system version as a tuple
+
+ The return value is safe to use to compare
+ two version numbers.
+ """
+ global _SYSTEM_VERSION_TUPLE
+ if _SYSTEM_VERSION_TUPLE is None:
+ osx_version = _get_system_version()
+ if osx_version:
+ try:
+ _SYSTEM_VERSION_TUPLE = tuple(int(i) for i in osx_version.split('.'))
+ except ValueError:
+ _SYSTEM_VERSION_TUPLE = ()
+
+ return _SYSTEM_VERSION_TUPLE
+
+
def _remove_original_values(_config_vars):
"""Remove original unmodified values for testing"""
# This is needed for higher-level cross-platform tests of get_platform.
@@ -148,33 +148,33 @@ def _save_modified_value(_config_vars, cv, newvalue):
_config_vars[_INITPRE + cv] = oldvalue
_config_vars[cv] = newvalue
-
-_cache_default_sysroot = None
-def _default_sysroot(cc):
- """ Returns the root of the default SDK for this system, or '/' """
- global _cache_default_sysroot
-
- if _cache_default_sysroot is not None:
- return _cache_default_sysroot
-
- contents = _read_output('%s -c -E -v - </dev/null' % (cc,), True)
- in_incdirs = False
- for line in contents.splitlines():
- if line.startswith("#include <...>"):
- in_incdirs = True
- elif line.startswith("End of search list"):
- in_incdirs = False
- elif in_incdirs:
- line = line.strip()
- if line == '/usr/include':
- _cache_default_sysroot = '/'
- elif line.endswith(".sdk/usr/include"):
- _cache_default_sysroot = line[:-12]
- if _cache_default_sysroot is None:
- _cache_default_sysroot = '/'
-
- return _cache_default_sysroot
-
+
+_cache_default_sysroot = None
+def _default_sysroot(cc):
+ """ Returns the root of the default SDK for this system, or '/' """
+ global _cache_default_sysroot
+
+ if _cache_default_sysroot is not None:
+ return _cache_default_sysroot
+
+ contents = _read_output('%s -c -E -v - </dev/null' % (cc,), True)
+ in_incdirs = False
+ for line in contents.splitlines():
+ if line.startswith("#include <...>"):
+ in_incdirs = True
+ elif line.startswith("End of search list"):
+ in_incdirs = False
+ elif in_incdirs:
+ line = line.strip()
+ if line == '/usr/include':
+ _cache_default_sysroot = '/'
+ elif line.endswith(".sdk/usr/include"):
+ _cache_default_sysroot = line[:-12]
+ if _cache_default_sysroot is None:
+ _cache_default_sysroot = '/'
+
+ return _cache_default_sysroot
+
def _supports_universal_builds():
"""Returns True if universal builds are supported on this system"""
# As an approximation, we assume that if we are running on 10.4 or above,
@@ -182,19 +182,19 @@ def _supports_universal_builds():
# builds, in particular -isysroot and -arch arguments to the compiler. This
# is in support of allowing 10.4 universal builds to run on 10.3.x systems.
- osx_version = _get_system_version_tuple()
+ osx_version = _get_system_version_tuple()
return bool(osx_version >= (10, 4)) if osx_version else False
-def _supports_arm64_builds():
- """Returns True if arm64 builds are supported on this system"""
- # There are two sets of systems supporting macOS/arm64 builds:
- # 1. macOS 11 and later, unconditionally
- # 2. macOS 10.15 with Xcode 12.2 or later
- # For now the second category is ignored.
- osx_version = _get_system_version_tuple()
- return osx_version >= (11, 0) if osx_version else False
+def _supports_arm64_builds():
+ """Returns True if arm64 builds are supported on this system"""
+ # There are two sets of systems supporting macOS/arm64 builds:
+ # 1. macOS 11 and later, unconditionally
+ # 2. macOS 10.15 with Xcode 12.2 or later
+ # For now the second category is ignored.
+ osx_version = _get_system_version_tuple()
+ return osx_version >= (11, 0) if osx_version else False
+
-
def _find_appropriate_compiler(_config_vars):
"""Find appropriate C compiler for extension module builds"""
@@ -265,7 +265,7 @@ def _remove_universal_flags(_config_vars):
if cv in _config_vars and cv not in os.environ:
flags = _config_vars[cv]
flags = re.sub(r'-arch\s+\w+\s', ' ', flags, flags=re.ASCII)
- flags = re.sub(r'-isysroot\s*\S+', ' ', flags)
+ flags = re.sub(r'-isysroot\s*\S+', ' ', flags)
_save_modified_value(_config_vars, cv, flags)
return _config_vars
@@ -341,7 +341,7 @@ def _check_for_unavailable_sdk(_config_vars):
# to /usr and /System/Library by either a standalone CLT
# package or the CLT component within Xcode.
cflags = _config_vars.get('CFLAGS', '')
- m = re.search(r'-isysroot\s*(\S+)', cflags)
+ m = re.search(r'-isysroot\s*(\S+)', cflags)
if m is not None:
sdk = m.group(1)
if not os.path.exists(sdk):
@@ -349,7 +349,7 @@ def _check_for_unavailable_sdk(_config_vars):
# Do not alter a config var explicitly overridden by env var
if cv in _config_vars and cv not in os.environ:
flags = _config_vars[cv]
- flags = re.sub(r'-isysroot\s*\S+(?:\s|$)', ' ', flags)
+ flags = re.sub(r'-isysroot\s*\S+(?:\s|$)', ' ', flags)
_save_modified_value(_config_vars, cv, flags)
return _config_vars
@@ -374,7 +374,7 @@ def compiler_fixup(compiler_so, cc_args):
stripArch = stripSysroot = True
else:
stripArch = '-arch' in cc_args
- stripSysroot = any(arg for arg in cc_args if arg.startswith('-isysroot'))
+ stripSysroot = any(arg for arg in cc_args if arg.startswith('-isysroot'))
if stripArch or 'ARCHFLAGS' in os.environ:
while True:
@@ -385,12 +385,12 @@ def compiler_fixup(compiler_so, cc_args):
except ValueError:
break
- elif not _supports_arm64_builds():
- # Look for "-arch arm64" and drop that
- for idx in reversed(range(len(compiler_so))):
- if compiler_so[idx] == '-arch' and compiler_so[idx+1] == "arm64":
- del compiler_so[idx:idx+2]
-
+ elif not _supports_arm64_builds():
+ # Look for "-arch arm64" and drop that
+ for idx in reversed(range(len(compiler_so))):
+ if compiler_so[idx] == '-arch' and compiler_so[idx+1] == "arm64":
+ del compiler_so[idx:idx+2]
+
if 'ARCHFLAGS' in os.environ and not stripArch:
# User specified different -arch flags in the environ,
# see also distutils.sysconfig
@@ -398,35 +398,35 @@ def compiler_fixup(compiler_so, cc_args):
if stripSysroot:
while True:
- indices = [i for i,x in enumerate(compiler_so) if x.startswith('-isysroot')]
- if not indices:
- break
- index = indices[0]
- if compiler_so[index] == '-isysroot':
+ indices = [i for i,x in enumerate(compiler_so) if x.startswith('-isysroot')]
+ if not indices:
+ break
+ index = indices[0]
+ if compiler_so[index] == '-isysroot':
# Strip this argument and the next one:
del compiler_so[index:index+2]
- else:
- # It's '-isysroot/some/path' in one arg
- del compiler_so[index:index+1]
+ else:
+ # It's '-isysroot/some/path' in one arg
+ del compiler_so[index:index+1]
# Check if the SDK that is used during compilation actually exists,
# the universal build requires the usage of a universal SDK and not all
# users have that installed by default.
sysroot = None
- argvar = cc_args
- indices = [i for i,x in enumerate(cc_args) if x.startswith('-isysroot')]
- if not indices:
- argvar = compiler_so
- indices = [i for i,x in enumerate(compiler_so) if x.startswith('-isysroot')]
-
- for idx in indices:
- if argvar[idx] == '-isysroot':
- sysroot = argvar[idx+1]
- break
- else:
- sysroot = argvar[idx][len('-isysroot'):]
- break
-
+ argvar = cc_args
+ indices = [i for i,x in enumerate(cc_args) if x.startswith('-isysroot')]
+ if not indices:
+ argvar = compiler_so
+ indices = [i for i,x in enumerate(compiler_so) if x.startswith('-isysroot')]
+
+ for idx in indices:
+ if argvar[idx] == '-isysroot':
+ sysroot = argvar[idx+1]
+ break
+ else:
+ sysroot = argvar[idx][len('-isysroot'):]
+ break
+
if sysroot and not os.path.isdir(sysroot):
from distutils import log
log.warn("Compiling with an SDK that doesn't seem to exist: %s",
@@ -482,7 +482,7 @@ def customize_compiler(_config_vars):
This customization is performed when the first
extension module build is requested
- in distutils.sysconfig.customize_compiler.
+ in distutils.sysconfig.customize_compiler.
"""
# Find a compiler to use for extension module builds
@@ -541,8 +541,8 @@ def get_platform_osx(_config_vars, osname, release, machine):
if len(archs) == 1:
machine = archs[0]
- elif archs == ('arm64', 'x86_64'):
- machine = 'universal2'
+ elif archs == ('arm64', 'x86_64'):
+ machine = 'universal2'
elif archs == ('i386', 'ppc'):
machine = 'fat'
elif archs == ('i386', 'x86_64'):
diff --git a/contrib/tools/python3/src/Lib/_py_abc.py b/contrib/tools/python3/src/Lib/_py_abc.py
index fd1493f440..c870ae9048 100644
--- a/contrib/tools/python3/src/Lib/_py_abc.py
+++ b/contrib/tools/python3/src/Lib/_py_abc.py
@@ -32,7 +32,7 @@ class ABCMeta(type):
# external code.
_abc_invalidation_counter = 0
- def __new__(mcls, name, bases, namespace, /, **kwargs):
+ def __new__(mcls, name, bases, namespace, /, **kwargs):
cls = super().__new__(mcls, name, bases, namespace, **kwargs)
# Compute set of abstract method names
abstracts = {name
diff --git a/contrib/tools/python3/src/Lib/_pydecimal.py b/contrib/tools/python3/src/Lib/_pydecimal.py
index 942cfa405a..ab989e5206 100644
--- a/contrib/tools/python3/src/Lib/_pydecimal.py
+++ b/contrib/tools/python3/src/Lib/_pydecimal.py
@@ -140,11 +140,11 @@ __all__ = [
# Limits for the C version for compatibility
'MAX_PREC', 'MAX_EMAX', 'MIN_EMIN', 'MIN_ETINY',
- # C version: compile time choice that enables the thread local context (deprecated, now always true)
- 'HAVE_THREADS',
-
- # C version: compile time choice that enables the coroutine local context
- 'HAVE_CONTEXTVAR'
+ # C version: compile time choice that enables the thread local context (deprecated, now always true)
+ 'HAVE_THREADS',
+
+ # C version: compile time choice that enables the coroutine local context
+ 'HAVE_CONTEXTVAR'
]
__xname__ = __name__ # sys.modules lookup (--without-threads)
@@ -175,7 +175,7 @@ ROUND_05UP = 'ROUND_05UP'
# Compatibility with the C version
HAVE_THREADS = True
-HAVE_CONTEXTVAR = True
+HAVE_CONTEXTVAR = True
if sys.maxsize == 2**63-1:
MAX_PREC = 999999999999999999
MAX_EMAX = 999999999999999999
diff --git a/contrib/tools/python3/src/Lib/_pyio.py b/contrib/tools/python3/src/Lib/_pyio.py
index 51390f507b..4804ed27cd 100644
--- a/contrib/tools/python3/src/Lib/_pyio.py
+++ b/contrib/tools/python3/src/Lib/_pyio.py
@@ -33,13 +33,13 @@ DEFAULT_BUFFER_SIZE = 8 * 1024 # bytes
# Rebind for compatibility
BlockingIOError = BlockingIOError
-# Does io.IOBase finalizer log the exception if the close() method fails?
-# The exception is ignored silently by default in release build.
-_IOBASE_EMITS_UNRAISABLE = (hasattr(sys, "gettotalrefcount") or sys.flags.dev_mode)
-# Does open() check its 'errors' argument?
-_CHECK_ERRORS = _IOBASE_EMITS_UNRAISABLE
+# Does io.IOBase finalizer log the exception if the close() method fails?
+# The exception is ignored silently by default in release build.
+_IOBASE_EMITS_UNRAISABLE = (hasattr(sys, "gettotalrefcount") or sys.flags.dev_mode)
+# Does open() check its 'errors' argument?
+_CHECK_ERRORS = _IOBASE_EMITS_UNRAISABLE
+
-
def open(file, mode="r", buffering=-1, encoding=None, errors=None,
newline=None, closefd=True, opener=None):
@@ -204,11 +204,11 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None,
raise ValueError("binary mode doesn't take an errors argument")
if binary and newline is not None:
raise ValueError("binary mode doesn't take a newline argument")
- if binary and buffering == 1:
- import warnings
- warnings.warn("line buffering (buffering=1) isn't supported in binary "
- "mode, the default buffer size will be used",
- RuntimeWarning, 2)
+ if binary and buffering == 1:
+ import warnings
+ warnings.warn("line buffering (buffering=1) isn't supported in binary "
+ "mode, the default buffer size will be used",
+ RuntimeWarning, 2)
raw = FileIO(file,
(creating and "x" or "") +
(reading and "r" or "") +
@@ -256,34 +256,34 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None,
result.close()
raise
-# Define a default pure-Python implementation for open_code()
-# that does not allow hooks. Warn on first use. Defined for tests.
-def _open_code_with_warning(path):
- """Opens the provided file with mode ``'rb'``. This function
- should be used when the intent is to treat the contents as
- executable code.
-
- ``path`` should be an absolute path.
-
- When supported by the runtime, this function can be hooked
- in order to allow embedders more control over code files.
- This functionality is not supported on the current runtime.
- """
- import warnings
- warnings.warn("_pyio.open_code() may not be using hooks",
- RuntimeWarning, 2)
- return open(path, "rb")
-
-try:
- open_code = io.open_code
-except AttributeError:
- open_code = _open_code_with_warning
-
-
+# Define a default pure-Python implementation for open_code()
+# that does not allow hooks. Warn on first use. Defined for tests.
+def _open_code_with_warning(path):
+ """Opens the provided file with mode ``'rb'``. This function
+ should be used when the intent is to treat the contents as
+ executable code.
+
+ ``path`` should be an absolute path.
+
+ When supported by the runtime, this function can be hooked
+ in order to allow embedders more control over code files.
+ This functionality is not supported on the current runtime.
+ """
+ import warnings
+ warnings.warn("_pyio.open_code() may not be using hooks",
+ RuntimeWarning, 2)
+ return open(path, "rb")
+
+try:
+ open_code = io.open_code
+except AttributeError:
+ open_code = _open_code_with_warning
+
+
class DocDescriptor:
"""Helper for builtins.open.__doc__
"""
- def __get__(self, obj, typ=None):
+ def __get__(self, obj, typ=None):
return (
"open(file, mode='r', buffering=-1, encoding=None, "
"errors=None, newline=None, closefd=True)\n\n" +
@@ -321,15 +321,15 @@ class IOBase(metaclass=abc.ABCMeta):
derived classes can override selectively; the default implementations
represent a file that cannot be read, written or seeked.
- Even though IOBase does not declare read or write because
+ Even though IOBase does not declare read or write because
their signatures will vary, implementations and clients should
consider those methods part of the interface. Also, implementations
may raise UnsupportedOperation when operations they do not support are
called.
The basic type used for binary data read from or written to a file is
- bytes. Other bytes-like objects are accepted as method arguments too.
- Text I/O classes work with str data.
+ bytes. Other bytes-like objects are accepted as method arguments too.
+ Text I/O classes work with str data.
Note that calling any method (even inquiries) on a closed stream is
undefined. Implementations may raise OSError in this case.
@@ -408,27 +408,27 @@ class IOBase(metaclass=abc.ABCMeta):
def __del__(self):
"""Destructor. Calls close()."""
try:
- closed = self.closed
- except AttributeError:
- # If getting closed fails, then the object is probably
- # in an unusable state, so ignore.
- return
-
- if closed:
- return
-
- if _IOBASE_EMITS_UNRAISABLE:
+ closed = self.closed
+ except AttributeError:
+ # If getting closed fails, then the object is probably
+ # in an unusable state, so ignore.
+ return
+
+ if closed:
+ return
+
+ if _IOBASE_EMITS_UNRAISABLE:
self.close()
- else:
- # The try/except block is in case this is called at program
- # exit time, when it's possible that globals have already been
- # deleted, and then the close() call might fail. Since
- # there's nothing we can do about such failures and they annoy
- # the end users, we suppress the traceback.
- try:
- self.close()
- except:
- pass
+ else:
+ # The try/except block is in case this is called at program
+ # exit time, when it's possible that globals have already been
+ # deleted, and then the close() call might fail. Since
+ # there's nothing we can do about such failures and they annoy
+ # the end users, we suppress the traceback.
+ try:
+ self.close()
+ except:
+ pass
### Inquiries ###
@@ -593,11 +593,11 @@ class IOBase(metaclass=abc.ABCMeta):
return lines
def writelines(self, lines):
- """Write a list of lines to the stream.
-
- Line separators are not added, so it is usual for each of the lines
- provided to have a line separator at the end.
- """
+ """Write a list of lines to the stream.
+
+ Line separators are not added, so it is usual for each of the lines
+ provided to have a line separator at the end.
+ """
self._checkClosed()
for line in lines:
self.write(line)
@@ -804,9 +804,9 @@ class _BufferedIOMixin(BufferedIOBase):
return pos
def truncate(self, pos=None):
- self._checkClosed()
- self._checkWritable()
-
+ self._checkClosed()
+ self._checkWritable()
+
# Flush the stream. We're mixing buffered I/O with lower-level I/O,
# and a flush may be necessary to synch both views of the current
# file state.
@@ -863,14 +863,14 @@ class _BufferedIOMixin(BufferedIOBase):
return self.raw.mode
def __getstate__(self):
- raise TypeError(f"cannot pickle {self.__class__.__name__!r} object")
+ raise TypeError(f"cannot pickle {self.__class__.__name__!r} object")
def __repr__(self):
modname = self.__class__.__module__
clsname = self.__class__.__qualname__
try:
name = self.name
- except AttributeError:
+ except AttributeError:
return "<{}.{}>".format(modname, clsname)
else:
return "<{}.{} name={!r}>".format(modname, clsname, name)
@@ -888,10 +888,10 @@ class BytesIO(BufferedIOBase):
"""Buffered I/O implementation using an in-memory bytes buffer."""
- # Initialize _buffer as soon as possible since it's used by __del__()
- # which calls close()
- _buffer = None
-
+ # Initialize _buffer as soon as possible since it's used by __del__()
+ # which calls close()
+ _buffer = None
+
def __init__(self, initial_bytes=None):
buf = bytearray()
if initial_bytes is not None:
@@ -919,8 +919,8 @@ class BytesIO(BufferedIOBase):
return memoryview(self._buffer)
def close(self):
- if self._buffer is not None:
- self._buffer.clear()
+ if self._buffer is not None:
+ self._buffer.clear()
super().close()
def read(self, size=-1):
@@ -1576,7 +1576,7 @@ class FileIO(RawIOBase):
raise IsADirectoryError(errno.EISDIR,
os.strerror(errno.EISDIR), file)
except AttributeError:
- # Ignore the AttributeError if stat.S_ISDIR or errno.EISDIR
+ # Ignore the AttributeError if stat.S_ISDIR or errno.EISDIR
# don't exist.
pass
self._blksize = getattr(fdfstat, 'st_blksize', 0)
@@ -1592,11 +1592,11 @@ class FileIO(RawIOBase):
# For consistent behaviour, we explicitly seek to the
# end of file (otherwise, it might be done only on the
# first write()).
- try:
- os.lseek(fd, 0, SEEK_END)
- except OSError as e:
- if e.errno != errno.ESPIPE:
- raise
+ try:
+ os.lseek(fd, 0, SEEK_END)
+ except OSError as e:
+ if e.errno != errno.ESPIPE:
+ raise
except:
if owned_fd is not None:
os.close(owned_fd)
@@ -1611,7 +1611,7 @@ class FileIO(RawIOBase):
self.close()
def __getstate__(self):
- raise TypeError(f"cannot pickle {self.__class__.__name__!r} object")
+ raise TypeError(f"cannot pickle {self.__class__.__name__!r} object")
def __repr__(self):
class_name = '%s.%s' % (self.__class__.__module__,
@@ -1821,7 +1821,7 @@ class TextIOBase(IOBase):
"""Base class for text I/O.
This class provides a character and line based interface to stream
- I/O. There is no public constructor.
+ I/O. There is no public constructor.
"""
def read(self, size=-1):
@@ -1994,10 +1994,10 @@ class TextIOWrapper(TextIOBase):
_CHUNK_SIZE = 2048
- # Initialize _buffer as soon as possible since it's used by __del__()
- # which calls close()
- _buffer = None
-
+ # Initialize _buffer as soon as possible since it's used by __del__()
+ # which calls close()
+ _buffer = None
+
# The write_through argument has no effect here since this
# implementation always writes through. The argument is present only
# so that the signature can match the signature of the C version.
@@ -2031,8 +2031,8 @@ class TextIOWrapper(TextIOBase):
else:
if not isinstance(errors, str):
raise ValueError("invalid errors: %r" % errors)
- if _CHECK_ERRORS:
- codecs.lookup_error(errors)
+ if _CHECK_ERRORS:
+ codecs.lookup_error(errors)
self._buffer = buffer
self._decoded_chars = '' # buffer for text returned from decoder
@@ -2090,13 +2090,13 @@ class TextIOWrapper(TextIOBase):
self.__class__.__qualname__)
try:
name = self.name
- except AttributeError:
+ except AttributeError:
pass
else:
result += " name={0!r}".format(name)
try:
mode = self.mode
- except AttributeError:
+ except AttributeError:
pass
else:
result += " mode={0!r}".format(mode)
@@ -2302,7 +2302,7 @@ class TextIOWrapper(TextIOBase):
return not eof
def _pack_cookie(self, position, dec_flags=0,
- bytes_to_feed=0, need_eof=False, chars_to_skip=0):
+ bytes_to_feed=0, need_eof=False, chars_to_skip=0):
# The meaning of a tell() cookie is: seek to position, set the
# decoder flags to dec_flags, read bytes_to_feed bytes, feed them
# into the decoder with need_eof as the EOF flag, then skip
@@ -2316,7 +2316,7 @@ class TextIOWrapper(TextIOBase):
rest, dec_flags = divmod(rest, 1<<64)
rest, bytes_to_feed = divmod(rest, 1<<64)
need_eof, chars_to_skip = divmod(rest, 1<<64)
- return position, dec_flags, bytes_to_feed, bool(need_eof), chars_to_skip
+ return position, dec_flags, bytes_to_feed, bool(need_eof), chars_to_skip
def tell(self):
if not self._seekable:
@@ -2350,7 +2350,7 @@ class TextIOWrapper(TextIOBase):
# current pos.
# Rationale: calling decoder.decode() has a large overhead
# regardless of chunk size; we want the number of such calls to
- # be O(1) in most situations (common decoders, sensible input).
+ # be O(1) in most situations (common decoders, sensible input).
# Actually, it will be exactly 1 for fixed-size codecs (all
# 8-bit codecs, also UTF-16 and UTF-32).
skip_bytes = int(self._b2cratio * chars_to_skip)
@@ -2390,7 +2390,7 @@ class TextIOWrapper(TextIOBase):
# (a point where the decoder has nothing buffered, so seek()
# can safely start from there and advance to this location).
bytes_fed = 0
- need_eof = False
+ need_eof = False
# Chars decoded since `start_pos`
chars_decoded = 0
for i in range(skip_bytes, len(next_input)):
@@ -2407,7 +2407,7 @@ class TextIOWrapper(TextIOBase):
else:
# We didn't get enough decoded data; signal EOF to get more.
chars_decoded += len(decoder.decode(b'', final=True))
- need_eof = True
+ need_eof = True
if chars_decoded < chars_to_skip:
raise OSError("can't reconstruct logical file position")
@@ -2449,18 +2449,18 @@ class TextIOWrapper(TextIOBase):
raise ValueError("tell on closed file")
if not self._seekable:
raise UnsupportedOperation("underlying stream is not seekable")
- if whence == SEEK_CUR:
+ if whence == SEEK_CUR:
if cookie != 0:
raise UnsupportedOperation("can't do nonzero cur-relative seeks")
# Seeking to the current position should attempt to
# sync the underlying buffer with the current position.
whence = 0
cookie = self.tell()
- elif whence == SEEK_END:
+ elif whence == SEEK_END:
if cookie != 0:
raise UnsupportedOperation("can't do nonzero end-relative seeks")
self.flush()
- position = self.buffer.seek(0, whence)
+ position = self.buffer.seek(0, whence)
self._set_decoded_chars('')
self._snapshot = None
if self._decoder:
diff --git a/contrib/tools/python3/src/Lib/_strptime.py b/contrib/tools/python3/src/Lib/_strptime.py
index 8e259d20fb..b97dfcce1e 100644
--- a/contrib/tools/python3/src/Lib/_strptime.py
+++ b/contrib/tools/python3/src/Lib/_strptime.py
@@ -182,7 +182,7 @@ class TimeRE(dict):
self.locale_time = LocaleTime()
base = super()
base.__init__({
- # The " [1-9]" part of the regex is to make %c from ANSI C work
+ # The " [1-9]" part of the regex is to make %c from ANSI C work
'd': r"(?P<d>3[0-1]|[1-2]\d|0[1-9]|[1-9]| [1-9])",
'f': r"(?P<f>[0-9]{1,6})",
'H': r"(?P<H>2[0-3]|[0-1]\d|\d)",
@@ -201,7 +201,7 @@ class TimeRE(dict):
#XXX: Does 'Y' need to worry about having less or more than
# 4 digits?
'Y': r"(?P<Y>\d\d\d\d)",
- 'z': r"(?P<z>[+-]\d\d:?[0-5]\d(:?[0-5]\d(\.\d{1,6})?)?|(?-i:Z))",
+ 'z': r"(?P<z>[+-]\d\d:?[0-5]\d(:?[0-5]\d(\.\d{1,6})?)?|(?-i:Z))",
'A': self.__seqToRE(self.locale_time.f_weekday, 'A'),
'a': self.__seqToRE(self.locale_time.a_weekday, 'a'),
'B': self.__seqToRE(self.locale_time.f_month[1:], 'B'),
diff --git a/contrib/tools/python3/src/Lib/_threading_local.py b/contrib/tools/python3/src/Lib/_threading_local.py
index efdbff8ff4..b006d76c4e 100644
--- a/contrib/tools/python3/src/Lib/_threading_local.py
+++ b/contrib/tools/python3/src/Lib/_threading_local.py
@@ -56,7 +56,7 @@ You can create custom local objects by subclassing the local class:
>>> class MyLocal(local):
... number = 2
- ... def __init__(self, /, **kw):
+ ... def __init__(self, /, **kw):
... self.__dict__.update(kw)
... def squared(self):
... return self.number ** 2
@@ -204,7 +204,7 @@ def _patch(self):
class local:
__slots__ = '_local__impl', '__dict__'
- def __new__(cls, /, *args, **kw):
+ def __new__(cls, /, *args, **kw):
if (args or kw) and (cls.__init__ is object.__init__):
raise TypeError("Initialization arguments are not supported")
self = object.__new__(cls)
diff --git a/contrib/tools/python3/src/Lib/_weakrefset.py b/contrib/tools/python3/src/Lib/_weakrefset.py
index a3b2d0c28e..2a27684324 100644
--- a/contrib/tools/python3/src/Lib/_weakrefset.py
+++ b/contrib/tools/python3/src/Lib/_weakrefset.py
@@ -3,7 +3,7 @@
# by abc.py to load everything else at startup.
from _weakref import ref
-from types import GenericAlias
+from types import GenericAlias
__all__ = ['WeakSet']
@@ -51,14 +51,14 @@ class WeakSet:
self.update(data)
def _commit_removals(self):
- pop = self._pending_removals.pop
+ pop = self._pending_removals.pop
discard = self.data.discard
- while True:
- try:
- item = pop()
- except IndexError:
- return
- discard(item)
+ while True:
+ try:
+ item = pop()
+ except IndexError:
+ return
+ discard(item)
def __iter__(self):
with _IterationGuard(self):
@@ -199,8 +199,8 @@ class WeakSet:
def isdisjoint(self, other):
return len(self.intersection(other)) == 0
-
- def __repr__(self):
- return repr(self.data)
-
- __class_getitem__ = classmethod(GenericAlias)
+
+ def __repr__(self):
+ return repr(self.data)
+
+ __class_getitem__ = classmethod(GenericAlias)
diff --git a/contrib/tools/python3/src/Lib/abc.py b/contrib/tools/python3/src/Lib/abc.py
index 38498eeef4..9de128e236 100644
--- a/contrib/tools/python3/src/Lib/abc.py
+++ b/contrib/tools/python3/src/Lib/abc.py
@@ -11,8 +11,8 @@ def abstractmethod(funcobj):
class that has a metaclass derived from ABCMeta cannot be
instantiated unless all of its abstract methods are overridden.
The abstract methods can be called using any of the normal
- 'super' call mechanisms. abstractmethod() may be used to declare
- abstract methods for properties and descriptors.
+ 'super' call mechanisms. abstractmethod() may be used to declare
+ abstract methods for properties and descriptors.
Usage:
@@ -28,14 +28,14 @@ def abstractmethod(funcobj):
class abstractclassmethod(classmethod):
"""A decorator indicating abstract classmethods.
- Deprecated, use 'classmethod' with 'abstractmethod' instead:
-
- class C(ABC):
- @classmethod
- @abstractmethod
- def my_abstract_classmethod(cls, ...):
- ...
-
+ Deprecated, use 'classmethod' with 'abstractmethod' instead:
+
+ class C(ABC):
+ @classmethod
+ @abstractmethod
+ def my_abstract_classmethod(cls, ...):
+ ...
+
"""
__isabstractmethod__ = True
@@ -48,14 +48,14 @@ class abstractclassmethod(classmethod):
class abstractstaticmethod(staticmethod):
"""A decorator indicating abstract staticmethods.
- Deprecated, use 'staticmethod' with 'abstractmethod' instead:
-
- class C(ABC):
- @staticmethod
- @abstractmethod
- def my_abstract_staticmethod(...):
- ...
-
+ Deprecated, use 'staticmethod' with 'abstractmethod' instead:
+
+ class C(ABC):
+ @staticmethod
+ @abstractmethod
+ def my_abstract_staticmethod(...):
+ ...
+
"""
__isabstractmethod__ = True
@@ -68,14 +68,14 @@ class abstractstaticmethod(staticmethod):
class abstractproperty(property):
"""A decorator indicating abstract properties.
- Deprecated, use 'property' with 'abstractmethod' instead:
-
- class C(ABC):
- @property
- @abstractmethod
- def my_abstract_property(self):
- ...
-
+ Deprecated, use 'property' with 'abstractmethod' instead:
+
+ class C(ABC):
+ @property
+ @abstractmethod
+ def my_abstract_property(self):
+ ...
+
"""
__isabstractmethod__ = True
diff --git a/contrib/tools/python3/src/Lib/aifc.py b/contrib/tools/python3/src/Lib/aifc.py
index d35a9bb36a..ed5da7d893 100644
--- a/contrib/tools/python3/src/Lib/aifc.py
+++ b/contrib/tools/python3/src/Lib/aifc.py
@@ -138,7 +138,7 @@ import struct
import builtins
import warnings
-__all__ = ["Error", "open"]
+__all__ = ["Error", "open"]
class Error(Exception):
pass
diff --git a/contrib/tools/python3/src/Lib/antigravity.py b/contrib/tools/python3/src/Lib/antigravity.py
index 43ed91f689..6dc5207335 100644
--- a/contrib/tools/python3/src/Lib/antigravity.py
+++ b/contrib/tools/python3/src/Lib/antigravity.py
@@ -12,6 +12,6 @@ def geohash(latitude, longitude, datedow):
'''
# https://xkcd.com/426/
- h = hashlib.md5(datedow, usedforsecurity=False).hexdigest()
+ h = hashlib.md5(datedow, usedforsecurity=False).hexdigest()
p, q = [('%f' % float.fromhex('0.' + x)) for x in (h[:16], h[16:32])]
print('%d%s %d%s' % (latitude, p[1:], longitude, q[1:]))
diff --git a/contrib/tools/python3/src/Lib/argparse.py b/contrib/tools/python3/src/Lib/argparse.py
index f9b0dd4aa4..40569437ac 100644
--- a/contrib/tools/python3/src/Lib/argparse.py
+++ b/contrib/tools/python3/src/Lib/argparse.py
@@ -1,5 +1,5 @@
# Author: Steven J. Bethard <steven.bethard@gmail.com>.
-# New maintainer as of 29 August 2019: Raymond Hettinger <raymond.hettinger@gmail.com>
+# New maintainer as of 29 August 2019: Raymond Hettinger <raymond.hettinger@gmail.com>
"""Command-line parsing library
@@ -67,7 +67,7 @@ __all__ = [
'ArgumentParser',
'ArgumentError',
'ArgumentTypeError',
- 'BooleanOptionalAction',
+ 'BooleanOptionalAction',
'FileType',
'HelpFormatter',
'ArgumentDefaultsHelpFormatter',
@@ -129,7 +129,7 @@ class _AttributeHolder(object):
return '%s(%s)' % (type_name, ', '.join(arg_strings))
def _get_kwargs(self):
- return list(self.__dict__.items())
+ return list(self.__dict__.items())
def _get_args(self):
return []
@@ -166,8 +166,8 @@ class HelpFormatter(object):
# default setting for width
if width is None:
- import shutil
- width = shutil.get_terminal_size().columns
+ import shutil
+ width = shutil.get_terminal_size().columns
width -= 2
self._prog = prog
@@ -264,7 +264,7 @@ class HelpFormatter(object):
invocations.append(get_invocation(subaction))
# update the maximum item length
- invocation_length = max(map(len, invocations))
+ invocation_length = max(map(len, invocations))
action_length = invocation_length + self._current_indent
self._action_max_length = max(self._action_max_length,
action_length)
@@ -392,9 +392,9 @@ class HelpFormatter(object):
group_actions = set()
inserts = {}
for group in groups:
- if not group._group_actions:
- raise ValueError(f'empty group {group}')
-
+ if not group._group_actions:
+ raise ValueError(f'empty group {group}')
+
try:
start = actions.index(group._group_actions[0])
except ValueError:
@@ -409,19 +409,19 @@ class HelpFormatter(object):
inserts[start] += ' ['
else:
inserts[start] = '['
- if end in inserts:
- inserts[end] += ']'
- else:
- inserts[end] = ']'
+ if end in inserts:
+ inserts[end] += ']'
+ else:
+ inserts[end] = ']'
else:
if start in inserts:
inserts[start] += ' ('
else:
inserts[start] = '('
- if end in inserts:
- inserts[end] += ')'
- else:
- inserts[end] = ')'
+ if end in inserts:
+ inserts[end] += ')'
+ else:
+ inserts[end] = ')'
for i in range(start + 1, end):
inserts[i] = '|'
@@ -458,7 +458,7 @@ class HelpFormatter(object):
# if the Optional doesn't take a value, format is:
# -s or --long
if action.nargs == 0:
- part = action.format_usage()
+ part = action.format_usage()
# if the Optional takes a value, format is:
# -s ARGS or --long ARGS
@@ -529,13 +529,13 @@ class HelpFormatter(object):
parts = [action_header]
# if there was help for the action, add lines of help text
- if action.help and action.help.strip():
+ if action.help and action.help.strip():
help_text = self._expand_help(action)
- if help_text:
- help_lines = self._split_lines(help_text, help_width)
- parts.append('%*s%s\n' % (indent_first, '', help_lines[0]))
- for line in help_lines[1:]:
- parts.append('%*s%s\n' % (help_position, '', line))
+ if help_text:
+ help_lines = self._split_lines(help_text, help_width)
+ parts.append('%*s%s\n' % (indent_first, '', help_lines[0]))
+ for line in help_lines[1:]:
+ parts.append('%*s%s\n' % (help_position, '', line))
# or add a newline if the description doesn't end with one
elif not action_header.endswith('\n'):
@@ -595,11 +595,11 @@ class HelpFormatter(object):
elif action.nargs == OPTIONAL:
result = '[%s]' % get_metavar(1)
elif action.nargs == ZERO_OR_MORE:
- metavar = get_metavar(1)
- if len(metavar) == 2:
- result = '[%s [%s ...]]' % metavar
- else:
- result = '[%s ...]' % metavar
+ metavar = get_metavar(1)
+ if len(metavar) == 2:
+ result = '[%s [%s ...]]' % metavar
+ else:
+ result = '[%s ...]' % metavar
elif action.nargs == ONE_OR_MORE:
result = '%s [%s ...]' % get_metavar(2)
elif action.nargs == REMAINDER:
@@ -609,10 +609,10 @@ class HelpFormatter(object):
elif action.nargs == SUPPRESS:
result = ''
else:
- try:
- formats = ['%s' for _ in range(action.nargs)]
- except TypeError:
- raise ValueError("invalid nargs value") from None
+ try:
+ formats = ['%s' for _ in range(action.nargs)]
+ except TypeError:
+ raise ValueError("invalid nargs value") from None
result = ' '.join(formats) % get_metavar(action.nargs)
return result
@@ -731,8 +731,8 @@ def _get_action_name(argument):
return argument.metavar
elif argument.dest not in (None, SUPPRESS):
return argument.dest
- elif argument.choices:
- return '{' + ','.join(argument.choices) + '}'
+ elif argument.choices:
+ return '{' + ','.join(argument.choices) + '}'
else:
return None
@@ -853,53 +853,53 @@ class Action(_AttributeHolder):
]
return [(name, getattr(self, name)) for name in names]
- def format_usage(self):
- return self.option_strings[0]
-
+ def format_usage(self):
+ return self.option_strings[0]
+
def __call__(self, parser, namespace, values, option_string=None):
raise NotImplementedError(_('.__call__() not defined'))
-class BooleanOptionalAction(Action):
- def __init__(self,
- option_strings,
- dest,
- default=None,
- type=None,
- choices=None,
- required=False,
- help=None,
- metavar=None):
-
- _option_strings = []
- for option_string in option_strings:
- _option_strings.append(option_string)
-
- if option_string.startswith('--'):
- option_string = '--no-' + option_string[2:]
- _option_strings.append(option_string)
-
- if help is not None and default is not None:
- help += " (default: %(default)s)"
-
- super().__init__(
- option_strings=_option_strings,
- dest=dest,
- nargs=0,
- default=default,
- type=type,
- choices=choices,
- required=required,
- help=help,
- metavar=metavar)
-
- def __call__(self, parser, namespace, values, option_string=None):
- if option_string in self.option_strings:
- setattr(namespace, self.dest, not option_string.startswith('--no-'))
-
- def format_usage(self):
- return ' | '.join(self.option_strings)
-
-
+class BooleanOptionalAction(Action):
+ def __init__(self,
+ option_strings,
+ dest,
+ default=None,
+ type=None,
+ choices=None,
+ required=False,
+ help=None,
+ metavar=None):
+
+ _option_strings = []
+ for option_string in option_strings:
+ _option_strings.append(option_string)
+
+ if option_string.startswith('--'):
+ option_string = '--no-' + option_string[2:]
+ _option_strings.append(option_string)
+
+ if help is not None and default is not None:
+ help += " (default: %(default)s)"
+
+ super().__init__(
+ option_strings=_option_strings,
+ dest=dest,
+ nargs=0,
+ default=default,
+ type=type,
+ choices=choices,
+ required=required,
+ help=help,
+ metavar=metavar)
+
+ def __call__(self, parser, namespace, values, option_string=None):
+ if option_string in self.option_strings:
+ setattr(namespace, self.dest, not option_string.startswith('--no-'))
+
+ def format_usage(self):
+ return ' | '.join(self.option_strings)
+
+
class _StoreAction(Action):
def __init__(self,
@@ -914,7 +914,7 @@ class _StoreAction(Action):
help=None,
metavar=None):
if nargs == 0:
- raise ValueError('nargs for store actions must be != 0; if you '
+ raise ValueError('nargs for store actions must be != 0; if you '
'have nothing to store, actions such as store '
'true or store const may be more appropriate')
if const is not None and nargs != OPTIONAL:
@@ -1006,7 +1006,7 @@ class _AppendAction(Action):
help=None,
metavar=None):
if nargs == 0:
- raise ValueError('nargs for append actions must be != 0; if arg '
+ raise ValueError('nargs for append actions must be != 0; if arg '
'strings are not supplying the value to append, '
'the append const action may be more appropriate')
if const is not None and nargs != OPTIONAL:
@@ -1212,18 +1212,18 @@ class _SubParsersAction(Action):
# namespace for the relevant parts.
subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
for key, value in vars(subnamespace).items():
- setattr(namespace, key, value)
+ setattr(namespace, key, value)
if arg_strings:
vars(namespace).setdefault(_UNRECOGNIZED_ARGS_ATTR, [])
getattr(namespace, _UNRECOGNIZED_ARGS_ATTR).extend(arg_strings)
-class _ExtendAction(_AppendAction):
- def __call__(self, parser, namespace, values, option_string=None):
- items = getattr(namespace, self.dest, None)
- items = _copy_items(items)
- items.extend(values)
- setattr(namespace, self.dest, items)
+class _ExtendAction(_AppendAction):
+ def __call__(self, parser, namespace, values, option_string=None):
+ items = getattr(namespace, self.dest, None)
+ items = _copy_items(items)
+ items.extend(values)
+ setattr(namespace, self.dest, items)
# ==============
# Type classes
@@ -1268,9 +1268,9 @@ class FileType(object):
return open(string, self._mode, self._bufsize, self._encoding,
self._errors)
except OSError as e:
- args = {'filename': string, 'error': e}
- message = _("can't open '%(filename)s': %(error)s")
- raise ArgumentTypeError(message % args)
+ args = {'filename': string, 'error': e}
+ message = _("can't open '%(filename)s': %(error)s")
+ raise ArgumentTypeError(message % args)
def __repr__(self):
args = self._mode, self._bufsize
@@ -1333,7 +1333,7 @@ class _ActionsContainer(object):
self.register('action', 'help', _HelpAction)
self.register('action', 'version', _VersionAction)
self.register('action', 'parsers', _SubParsersAction)
- self.register('action', 'extend', _ExtendAction)
+ self.register('action', 'extend', _ExtendAction)
# raise an exception if the conflict handler is invalid
self._get_handler()
@@ -1426,10 +1426,10 @@ class _ActionsContainer(object):
if not callable(type_func):
raise ValueError('%r is not callable' % (type_func,))
- if type_func is FileType:
- raise ValueError('%r is a FileType class object, instance of it'
- ' must be passed' % (type_func,))
-
+ if type_func is FileType:
+ raise ValueError('%r is a FileType class object, instance of it'
+ ' must be passed' % (type_func,))
+
# raise an error if the metavar does not match the type
if hasattr(self, "_get_formatter"):
try:
@@ -1544,8 +1544,8 @@ class _ActionsContainer(object):
# strings starting with two prefix characters are long options
option_strings.append(option_string)
- if len(option_string) > 1 and option_string[1] in self.prefix_chars:
- long_option_strings.append(option_string)
+ if len(option_string) > 1 and option_string[1] in self.prefix_chars:
+ long_option_strings.append(option_string)
# infer destination, '--foo-bar' -> 'foo_bar' and '-x' -> 'x'
dest = kwargs.pop('dest', None)
@@ -1685,8 +1685,8 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
- conflict_handler -- String indicating how to handle conflicts
- add_help -- Add a -h/-help option
- allow_abbrev -- Allow long options to be abbreviated unambiguously
- - exit_on_error -- Determines whether or not ArgumentParser exits with
- error info when an error occurs
+ - exit_on_error -- Determines whether or not ArgumentParser exits with
+ error info when an error occurs
"""
def __init__(self,
@@ -1701,8 +1701,8 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
argument_default=None,
conflict_handler='error',
add_help=True,
- allow_abbrev=True,
- exit_on_error=True):
+ allow_abbrev=True,
+ exit_on_error=True):
superinit = super(ArgumentParser, self).__init__
superinit(description=description,
@@ -1721,7 +1721,7 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
self.fromfile_prefix_chars = fromfile_prefix_chars
self.add_help = add_help
self.allow_abbrev = allow_abbrev
- self.exit_on_error = exit_on_error
+ self.exit_on_error = exit_on_error
add_group = self.add_argument_group
self._positionals = add_group(_('positional arguments'))
@@ -1846,26 +1846,26 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
if action.default is not SUPPRESS:
setattr(namespace, action.dest, action.default)
- # add any parser defaults that aren't present
- for dest in self._defaults:
- if not hasattr(namespace, dest):
- setattr(namespace, dest, self._defaults[dest])
-
+ # add any parser defaults that aren't present
+ for dest in self._defaults:
+ if not hasattr(namespace, dest):
+ setattr(namespace, dest, self._defaults[dest])
+
# parse the arguments and exit if there are any errors
- if self.exit_on_error:
- try:
- namespace, args = self._parse_known_args(args, namespace)
- except ArgumentError:
- err = _sys.exc_info()[1]
- self.error(str(err))
- else:
+ if self.exit_on_error:
+ try:
+ namespace, args = self._parse_known_args(args, namespace)
+ except ArgumentError:
+ err = _sys.exc_info()[1]
+ self.error(str(err))
+ else:
namespace, args = self._parse_known_args(args, namespace)
- if hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR):
- args.extend(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR))
- delattr(namespace, _UNRECOGNIZED_ARGS_ATTR)
- return namespace, args
-
+ if hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR):
+ args.extend(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR))
+ delattr(namespace, _UNRECOGNIZED_ARGS_ATTR)
+ return namespace, args
+
def _parse_known_args(self, arg_strings, namespace):
# replace arg strings that are file references
if self.fromfile_prefix_chars is not None:
@@ -2153,9 +2153,9 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
OPTIONAL: _('expected at most one argument'),
ONE_OR_MORE: _('expected at least one argument'),
}
- msg = nargs_errors.get(action.nargs)
- if msg is None:
- msg = ngettext('expected %s argument',
+ msg = nargs_errors.get(action.nargs)
+ if msg is None:
+ msg = ngettext('expected %s argument',
'expected %s arguments',
action.nargs) % action.nargs
raise ArgumentError(action, msg)
@@ -2204,23 +2204,23 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
action = self._option_string_actions[option_string]
return action, option_string, explicit_arg
- # search through all possible prefixes of the option string
- # and all actions in the parser for possible interpretations
- option_tuples = self._get_option_tuples(arg_string)
+ # search through all possible prefixes of the option string
+ # and all actions in the parser for possible interpretations
+ option_tuples = self._get_option_tuples(arg_string)
- # if multiple actions match, the option string was ambiguous
- if len(option_tuples) > 1:
- options = ', '.join([option_string
- for action, option_string, explicit_arg in option_tuples])
- args = {'option': arg_string, 'matches': options}
- msg = _('ambiguous option: %(option)s could match %(matches)s')
- self.error(msg % args)
+ # if multiple actions match, the option string was ambiguous
+ if len(option_tuples) > 1:
+ options = ', '.join([option_string
+ for action, option_string, explicit_arg in option_tuples])
+ args = {'option': arg_string, 'matches': options}
+ msg = _('ambiguous option: %(option)s could match %(matches)s')
+ self.error(msg % args)
- # if exactly one action matched, this segmentation is good,
- # so return the parsed action
- elif len(option_tuples) == 1:
- option_tuple, = option_tuples
- return option_tuple
+ # if exactly one action matched, this segmentation is good,
+ # so return the parsed action
+ elif len(option_tuples) == 1:
+ option_tuple, = option_tuples
+ return option_tuple
# if it was not found as an option, but it looks like a negative
# number, it was meant to be positional
@@ -2244,17 +2244,17 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
# split at the '='
chars = self.prefix_chars
if option_string[0] in chars and option_string[1] in chars:
- if self.allow_abbrev:
- if '=' in option_string:
- option_prefix, explicit_arg = option_string.split('=', 1)
- else:
- option_prefix = option_string
- explicit_arg = None
- for option_string in self._option_string_actions:
- if option_string.startswith(option_prefix):
- action = self._option_string_actions[option_string]
- tup = action, option_string, explicit_arg
- result.append(tup)
+ if self.allow_abbrev:
+ if '=' in option_string:
+ option_prefix, explicit_arg = option_string.split('=', 1)
+ else:
+ option_prefix = option_string
+ explicit_arg = None
+ for option_string in self._option_string_actions:
+ if option_string.startswith(option_prefix):
+ action = self._option_string_actions[option_string]
+ tup = action, option_string, explicit_arg
+ result.append(tup)
# single character options can be concatenated with their arguments
# but multiple character options always have to have their argument
diff --git a/contrib/tools/python3/src/Lib/ast.py b/contrib/tools/python3/src/Lib/ast.py
index 0426c11766..396eea1830 100644
--- a/contrib/tools/python3/src/Lib/ast.py
+++ b/contrib/tools/python3/src/Lib/ast.py
@@ -24,31 +24,31 @@
:copyright: Copyright 2008 by Armin Ronacher.
:license: Python License.
"""
-import sys
+import sys
from _ast import *
-from contextlib import contextmanager, nullcontext
-from enum import IntEnum, auto
+from contextlib import contextmanager, nullcontext
+from enum import IntEnum, auto
-def parse(source, filename='<unknown>', mode='exec', *,
- type_comments=False, feature_version=None):
+def parse(source, filename='<unknown>', mode='exec', *,
+ type_comments=False, feature_version=None):
"""
Parse the source into an AST node.
Equivalent to compile(source, filename, mode, PyCF_ONLY_AST).
- Pass type_comments=True to get back type comments where the syntax allows.
+ Pass type_comments=True to get back type comments where the syntax allows.
"""
- flags = PyCF_ONLY_AST
- if type_comments:
- flags |= PyCF_TYPE_COMMENTS
- if isinstance(feature_version, tuple):
- major, minor = feature_version # Should be a 2-tuple.
- assert major == 3
- feature_version = minor
- elif feature_version is None:
- feature_version = -1
- # Else it should be an int giving the minor version for 3.x.
- return compile(source, filename, mode, flags,
- _feature_version=feature_version)
+ flags = PyCF_ONLY_AST
+ if type_comments:
+ flags |= PyCF_TYPE_COMMENTS
+ if isinstance(feature_version, tuple):
+ major, minor = feature_version # Should be a 2-tuple.
+ assert major == 3
+ feature_version = minor
+ elif feature_version is None:
+ feature_version = -1
+ # Else it should be an int giving the minor version for 3.x.
+ return compile(source, filename, mode, flags,
+ _feature_version=feature_version)
def literal_eval(node_or_string):
@@ -62,12 +62,12 @@ def literal_eval(node_or_string):
node_or_string = parse(node_or_string, mode='eval')
if isinstance(node_or_string, Expression):
node_or_string = node_or_string.body
- def _raise_malformed_node(node):
- raise ValueError(f'malformed node or string: {node!r}')
+ def _raise_malformed_node(node):
+ raise ValueError(f'malformed node or string: {node!r}')
def _convert_num(node):
- if not isinstance(node, Constant) or type(node.value) not in (int, float, complex):
- _raise_malformed_node(node)
- return node.value
+ if not isinstance(node, Constant) or type(node.value) not in (int, float, complex):
+ _raise_malformed_node(node)
+ return node.value
def _convert_signed_num(node):
if isinstance(node, UnaryOp) and isinstance(node.op, (UAdd, USub)):
operand = _convert_num(node.operand)
@@ -85,12 +85,12 @@ def literal_eval(node_or_string):
return list(map(_convert, node.elts))
elif isinstance(node, Set):
return set(map(_convert, node.elts))
- elif (isinstance(node, Call) and isinstance(node.func, Name) and
- node.func.id == 'set' and node.args == node.keywords == []):
- return set()
+ elif (isinstance(node, Call) and isinstance(node.func, Name) and
+ node.func.id == 'set' and node.args == node.keywords == []):
+ return set()
elif isinstance(node, Dict):
- if len(node.keys) != len(node.values):
- _raise_malformed_node(node)
+ if len(node.keys) != len(node.values):
+ _raise_malformed_node(node)
return dict(zip(map(_convert, node.keys),
map(_convert, node.values)))
elif isinstance(node, BinOp) and isinstance(node.op, (Add, Sub)):
@@ -105,87 +105,87 @@ def literal_eval(node_or_string):
return _convert(node_or_string)
-def dump(node, annotate_fields=True, include_attributes=False, *, indent=None):
+def dump(node, annotate_fields=True, include_attributes=False, *, indent=None):
"""
- Return a formatted dump of the tree in node. This is mainly useful for
- debugging purposes. If annotate_fields is true (by default),
- the returned string will show the names and the values for fields.
- If annotate_fields is false, the result string will be more compact by
- omitting unambiguous field names. Attributes such as line
+ Return a formatted dump of the tree in node. This is mainly useful for
+ debugging purposes. If annotate_fields is true (by default),
+ the returned string will show the names and the values for fields.
+ If annotate_fields is false, the result string will be more compact by
+ omitting unambiguous field names. Attributes such as line
numbers and column offsets are not dumped by default. If this is wanted,
- include_attributes can be set to true. If indent is a non-negative
- integer or string, then the tree will be pretty-printed with that indent
- level. None (the default) selects the single line representation.
+ include_attributes can be set to true. If indent is a non-negative
+ integer or string, then the tree will be pretty-printed with that indent
+ level. None (the default) selects the single line representation.
"""
- def _format(node, level=0):
- if indent is not None:
- level += 1
- prefix = '\n' + indent * level
- sep = ',\n' + indent * level
- else:
- prefix = ''
- sep = ', '
+ def _format(node, level=0):
+ if indent is not None:
+ level += 1
+ prefix = '\n' + indent * level
+ sep = ',\n' + indent * level
+ else:
+ prefix = ''
+ sep = ', '
if isinstance(node, AST):
- cls = type(node)
- args = []
- allsimple = True
- keywords = annotate_fields
- for name in node._fields:
- try:
- value = getattr(node, name)
- except AttributeError:
- keywords = True
- continue
- if value is None and getattr(cls, name, ...) is None:
- keywords = True
- continue
- value, simple = _format(value, level)
- allsimple = allsimple and simple
- if keywords:
- args.append('%s=%s' % (name, value))
- else:
- args.append(value)
+ cls = type(node)
+ args = []
+ allsimple = True
+ keywords = annotate_fields
+ for name in node._fields:
+ try:
+ value = getattr(node, name)
+ except AttributeError:
+ keywords = True
+ continue
+ if value is None and getattr(cls, name, ...) is None:
+ keywords = True
+ continue
+ value, simple = _format(value, level)
+ allsimple = allsimple and simple
+ if keywords:
+ args.append('%s=%s' % (name, value))
+ else:
+ args.append(value)
if include_attributes and node._attributes:
- for name in node._attributes:
- try:
- value = getattr(node, name)
- except AttributeError:
- continue
- if value is None and getattr(cls, name, ...) is None:
- continue
- value, simple = _format(value, level)
- allsimple = allsimple and simple
- args.append('%s=%s' % (name, value))
- if allsimple and len(args) <= 3:
- return '%s(%s)' % (node.__class__.__name__, ', '.join(args)), not args
- return '%s(%s%s)' % (node.__class__.__name__, prefix, sep.join(args)), False
+ for name in node._attributes:
+ try:
+ value = getattr(node, name)
+ except AttributeError:
+ continue
+ if value is None and getattr(cls, name, ...) is None:
+ continue
+ value, simple = _format(value, level)
+ allsimple = allsimple and simple
+ args.append('%s=%s' % (name, value))
+ if allsimple and len(args) <= 3:
+ return '%s(%s)' % (node.__class__.__name__, ', '.join(args)), not args
+ return '%s(%s%s)' % (node.__class__.__name__, prefix, sep.join(args)), False
elif isinstance(node, list):
- if not node:
- return '[]', True
- return '[%s%s]' % (prefix, sep.join(_format(x, level)[0] for x in node)), False
- return repr(node), True
-
+ if not node:
+ return '[]', True
+ return '[%s%s]' % (prefix, sep.join(_format(x, level)[0] for x in node)), False
+ return repr(node), True
+
if not isinstance(node, AST):
raise TypeError('expected AST, got %r' % node.__class__.__name__)
- if indent is not None and not isinstance(indent, str):
- indent = ' ' * indent
- return _format(node)[0]
+ if indent is not None and not isinstance(indent, str):
+ indent = ' ' * indent
+ return _format(node)[0]
def copy_location(new_node, old_node):
"""
- Copy source location (`lineno`, `col_offset`, `end_lineno`, and `end_col_offset`
- attributes) from *old_node* to *new_node* if possible, and return *new_node*.
+ Copy source location (`lineno`, `col_offset`, `end_lineno`, and `end_col_offset`
+ attributes) from *old_node* to *new_node* if possible, and return *new_node*.
"""
- for attr in 'lineno', 'col_offset', 'end_lineno', 'end_col_offset':
- if attr in old_node._attributes and attr in new_node._attributes:
- value = getattr(old_node, attr, None)
- # end_lineno and end_col_offset are optional attributes, and they
- # should be copied whether the value is None or not.
- if value is not None or (
- hasattr(old_node, attr) and attr.startswith("end_")
- ):
- setattr(new_node, attr, value)
+ for attr in 'lineno', 'col_offset', 'end_lineno', 'end_col_offset':
+ if attr in old_node._attributes and attr in new_node._attributes:
+ value = getattr(old_node, attr, None)
+ # end_lineno and end_col_offset are optional attributes, and they
+ # should be copied whether the value is None or not.
+ if value is not None or (
+ hasattr(old_node, attr) and attr.startswith("end_")
+ ):
+ setattr(new_node, attr, value)
return new_node
@@ -197,47 +197,47 @@ def fix_missing_locations(node):
recursively where not already set, by setting them to the values of the
parent node. It works recursively starting at *node*.
"""
- def _fix(node, lineno, col_offset, end_lineno, end_col_offset):
+ def _fix(node, lineno, col_offset, end_lineno, end_col_offset):
if 'lineno' in node._attributes:
if not hasattr(node, 'lineno'):
node.lineno = lineno
else:
lineno = node.lineno
- if 'end_lineno' in node._attributes:
- if getattr(node, 'end_lineno', None) is None:
- node.end_lineno = end_lineno
- else:
- end_lineno = node.end_lineno
+ if 'end_lineno' in node._attributes:
+ if getattr(node, 'end_lineno', None) is None:
+ node.end_lineno = end_lineno
+ else:
+ end_lineno = node.end_lineno
if 'col_offset' in node._attributes:
if not hasattr(node, 'col_offset'):
node.col_offset = col_offset
else:
col_offset = node.col_offset
- if 'end_col_offset' in node._attributes:
- if getattr(node, 'end_col_offset', None) is None:
- node.end_col_offset = end_col_offset
- else:
- end_col_offset = node.end_col_offset
+ if 'end_col_offset' in node._attributes:
+ if getattr(node, 'end_col_offset', None) is None:
+ node.end_col_offset = end_col_offset
+ else:
+ end_col_offset = node.end_col_offset
for child in iter_child_nodes(node):
- _fix(child, lineno, col_offset, end_lineno, end_col_offset)
- _fix(node, 1, 0, 1, 0)
+ _fix(child, lineno, col_offset, end_lineno, end_col_offset)
+ _fix(node, 1, 0, 1, 0)
return node
def increment_lineno(node, n=1):
"""
- Increment the line number and end line number of each node in the tree
- starting at *node* by *n*. This is useful to "move code" to a different
- location in a file.
+ Increment the line number and end line number of each node in the tree
+ starting at *node* by *n*. This is useful to "move code" to a different
+ location in a file.
"""
for child in walk(node):
if 'lineno' in child._attributes:
child.lineno = getattr(child, 'lineno', 0) + n
- if (
- "end_lineno" in child._attributes
- and (end_lineno := getattr(child, "end_lineno", 0)) is not None
- ):
- child.end_lineno = end_lineno + n
+ if (
+ "end_lineno" in child._attributes
+ and (end_lineno := getattr(child, "end_lineno", 0)) is not None
+ ):
+ child.end_lineno = end_lineno + n
return node
@@ -293,79 +293,79 @@ def get_docstring(node, clean=True):
return text
-def _splitlines_no_ff(source):
- """Split a string into lines ignoring form feed and other chars.
-
- This mimics how the Python parser splits source code.
- """
- idx = 0
- lines = []
- next_line = ''
- while idx < len(source):
- c = source[idx]
- next_line += c
- idx += 1
- # Keep \r\n together
- if c == '\r' and idx < len(source) and source[idx] == '\n':
- next_line += '\n'
- idx += 1
- if c in '\r\n':
- lines.append(next_line)
- next_line = ''
-
- if next_line:
- lines.append(next_line)
- return lines
-
-
-def _pad_whitespace(source):
- r"""Replace all chars except '\f\t' in a line with spaces."""
- result = ''
- for c in source:
- if c in '\f\t':
- result += c
- else:
- result += ' '
- return result
-
-
-def get_source_segment(source, node, *, padded=False):
- """Get source code segment of the *source* that generated *node*.
-
- If some location information (`lineno`, `end_lineno`, `col_offset`,
- or `end_col_offset`) is missing, return None.
-
- If *padded* is `True`, the first line of a multi-line statement will
- be padded with spaces to match its original position.
- """
- try:
- if node.end_lineno is None or node.end_col_offset is None:
- return None
- lineno = node.lineno - 1
- end_lineno = node.end_lineno - 1
- col_offset = node.col_offset
- end_col_offset = node.end_col_offset
- except AttributeError:
- return None
-
- lines = _splitlines_no_ff(source)
- if end_lineno == lineno:
- return lines[lineno].encode()[col_offset:end_col_offset].decode()
-
- if padded:
- padding = _pad_whitespace(lines[lineno].encode()[:col_offset].decode())
- else:
- padding = ''
-
- first = padding + lines[lineno].encode()[col_offset:].decode()
- last = lines[end_lineno].encode()[:end_col_offset].decode()
- lines = lines[lineno+1:end_lineno]
-
- lines.insert(0, first)
- lines.append(last)
- return ''.join(lines)
-
-
+def _splitlines_no_ff(source):
+ """Split a string into lines ignoring form feed and other chars.
+
+ This mimics how the Python parser splits source code.
+ """
+ idx = 0
+ lines = []
+ next_line = ''
+ while idx < len(source):
+ c = source[idx]
+ next_line += c
+ idx += 1
+ # Keep \r\n together
+ if c == '\r' and idx < len(source) and source[idx] == '\n':
+ next_line += '\n'
+ idx += 1
+ if c in '\r\n':
+ lines.append(next_line)
+ next_line = ''
+
+ if next_line:
+ lines.append(next_line)
+ return lines
+
+
+def _pad_whitespace(source):
+ r"""Replace all chars except '\f\t' in a line with spaces."""
+ result = ''
+ for c in source:
+ if c in '\f\t':
+ result += c
+ else:
+ result += ' '
+ return result
+
+
+def get_source_segment(source, node, *, padded=False):
+ """Get source code segment of the *source* that generated *node*.
+
+ If some location information (`lineno`, `end_lineno`, `col_offset`,
+ or `end_col_offset`) is missing, return None.
+
+ If *padded* is `True`, the first line of a multi-line statement will
+ be padded with spaces to match its original position.
+ """
+ try:
+ if node.end_lineno is None or node.end_col_offset is None:
+ return None
+ lineno = node.lineno - 1
+ end_lineno = node.end_lineno - 1
+ col_offset = node.col_offset
+ end_col_offset = node.end_col_offset
+ except AttributeError:
+ return None
+
+ lines = _splitlines_no_ff(source)
+ if end_lineno == lineno:
+ return lines[lineno].encode()[col_offset:end_col_offset].decode()
+
+ if padded:
+ padding = _pad_whitespace(lines[lineno].encode()[:col_offset].decode())
+ else:
+ padding = ''
+
+ first = padding + lines[lineno].encode()[col_offset:].decode()
+ last = lines[end_lineno].encode()[:end_col_offset].decode()
+ lines = lines[lineno+1:end_lineno]
+
+ lines.insert(0, first)
+ lines.append(last)
+ return ''.join(lines)
+
+
def walk(node):
"""
Recursively yield all descendant nodes in the tree starting at *node*
@@ -416,28 +416,28 @@ class NodeVisitor(object):
elif isinstance(value, AST):
self.visit(value)
- def visit_Constant(self, node):
- value = node.value
- type_name = _const_node_type_names.get(type(value))
- if type_name is None:
- for cls, name in _const_node_type_names.items():
- if isinstance(value, cls):
- type_name = name
- break
- if type_name is not None:
- method = 'visit_' + type_name
- try:
- visitor = getattr(self, method)
- except AttributeError:
- pass
- else:
- import warnings
- warnings.warn(f"{method} is deprecated; add visit_Constant",
- DeprecationWarning, 2)
- return visitor(node)
- return self.generic_visit(node)
-
-
+ def visit_Constant(self, node):
+ value = node.value
+ type_name = _const_node_type_names.get(type(value))
+ if type_name is None:
+ for cls, name in _const_node_type_names.items():
+ if isinstance(value, cls):
+ type_name = name
+ break
+ if type_name is not None:
+ method = 'visit_' + type_name
+ try:
+ visitor = getattr(self, method)
+ except AttributeError:
+ pass
+ else:
+ import warnings
+ warnings.warn(f"{method} is deprecated; add visit_Constant",
+ DeprecationWarning, 2)
+ return visitor(node)
+ return self.generic_visit(node)
+
+
class NodeTransformer(NodeVisitor):
"""
A :class:`NodeVisitor` subclass that walks the abstract syntax tree and
@@ -455,11 +455,11 @@ class NodeTransformer(NodeVisitor):
class RewriteName(NodeTransformer):
def visit_Name(self, node):
- return Subscript(
+ return Subscript(
value=Name(id='data', ctx=Load()),
- slice=Constant(value=node.id),
+ slice=Constant(value=node.id),
ctx=node.ctx
- )
+ )
Keep in mind that if the node you're operating on has child nodes you must
either transform the child nodes yourself or call the :meth:`generic_visit`
@@ -495,1106 +495,1106 @@ class NodeTransformer(NodeVisitor):
else:
setattr(node, field, new_node)
return node
-
-
-# If the ast module is loaded more than once, only add deprecated methods once
-if not hasattr(Constant, 'n'):
- # The following code is for backward compatibility.
- # It will be removed in future.
-
- def _getter(self):
- """Deprecated. Use value instead."""
- return self.value
-
- def _setter(self, value):
- self.value = value
-
- Constant.n = property(_getter, _setter)
- Constant.s = property(_getter, _setter)
-
-class _ABC(type):
-
- def __init__(cls, *args):
- cls.__doc__ = """Deprecated AST node class. Use ast.Constant instead"""
-
- def __instancecheck__(cls, inst):
- if not isinstance(inst, Constant):
- return False
- if cls in _const_types:
- try:
- value = inst.value
- except AttributeError:
- return False
- else:
- return (
- isinstance(value, _const_types[cls]) and
- not isinstance(value, _const_types_not.get(cls, ()))
- )
- return type.__instancecheck__(cls, inst)
-
-def _new(cls, *args, **kwargs):
- for key in kwargs:
- if key not in cls._fields:
- # arbitrary keyword arguments are accepted
- continue
- pos = cls._fields.index(key)
- if pos < len(args):
- raise TypeError(f"{cls.__name__} got multiple values for argument {key!r}")
- if cls in _const_types:
- return Constant(*args, **kwargs)
- return Constant.__new__(cls, *args, **kwargs)
-
-class Num(Constant, metaclass=_ABC):
- _fields = ('n',)
- __new__ = _new
-
-class Str(Constant, metaclass=_ABC):
- _fields = ('s',)
- __new__ = _new
-
-class Bytes(Constant, metaclass=_ABC):
- _fields = ('s',)
- __new__ = _new
-
-class NameConstant(Constant, metaclass=_ABC):
- __new__ = _new
-
-class Ellipsis(Constant, metaclass=_ABC):
- _fields = ()
-
- def __new__(cls, *args, **kwargs):
- if cls is Ellipsis:
- return Constant(..., *args, **kwargs)
- return Constant.__new__(cls, *args, **kwargs)
-
-_const_types = {
- Num: (int, float, complex),
- Str: (str,),
- Bytes: (bytes,),
- NameConstant: (type(None), bool),
- Ellipsis: (type(...),),
-}
-_const_types_not = {
- Num: (bool,),
-}
-
-_const_node_type_names = {
- bool: 'NameConstant', # should be before int
- type(None): 'NameConstant',
- int: 'Num',
- float: 'Num',
- complex: 'Num',
- str: 'Str',
- bytes: 'Bytes',
- type(...): 'Ellipsis',
-}
-
-class slice(AST):
- """Deprecated AST node class."""
-
-class Index(slice):
- """Deprecated AST node class. Use the index value directly instead."""
- def __new__(cls, value, **kwargs):
- return value
-
-class ExtSlice(slice):
- """Deprecated AST node class. Use ast.Tuple instead."""
- def __new__(cls, dims=(), **kwargs):
- return Tuple(list(dims), Load(), **kwargs)
-
-# If the ast module is loaded more than once, only add deprecated methods once
-if not hasattr(Tuple, 'dims'):
- # The following code is for backward compatibility.
- # It will be removed in future.
-
- def _dims_getter(self):
- """Deprecated. Use elts instead."""
- return self.elts
-
- def _dims_setter(self, value):
- self.elts = value
-
- Tuple.dims = property(_dims_getter, _dims_setter)
-
-class Suite(mod):
- """Deprecated AST node class. Unused in Python 3."""
-
-class AugLoad(expr_context):
- """Deprecated AST node class. Unused in Python 3."""
-
-class AugStore(expr_context):
- """Deprecated AST node class. Unused in Python 3."""
-
-class Param(expr_context):
- """Deprecated AST node class. Unused in Python 3."""
-
-
-# Large float and imaginary literals get turned into infinities in the AST.
-# We unparse those infinities to INFSTR.
-_INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1)
-
-class _Precedence(IntEnum):
- """Precedence table that originated from python grammar."""
-
- TUPLE = auto()
- YIELD = auto() # 'yield', 'yield from'
- TEST = auto() # 'if'-'else', 'lambda'
- OR = auto() # 'or'
- AND = auto() # 'and'
- NOT = auto() # 'not'
- CMP = auto() # '<', '>', '==', '>=', '<=', '!=',
- # 'in', 'not in', 'is', 'is not'
- EXPR = auto()
- BOR = EXPR # '|'
- BXOR = auto() # '^'
- BAND = auto() # '&'
- SHIFT = auto() # '<<', '>>'
- ARITH = auto() # '+', '-'
- TERM = auto() # '*', '@', '/', '%', '//'
- FACTOR = auto() # unary '+', '-', '~'
- POWER = auto() # '**'
- AWAIT = auto() # 'await'
- ATOM = auto()
-
- def next(self):
- try:
- return self.__class__(self + 1)
- except ValueError:
- return self
-
-
-_SINGLE_QUOTES = ("'", '"')
-_MULTI_QUOTES = ('"""', "'''")
-_ALL_QUOTES = (*_SINGLE_QUOTES, *_MULTI_QUOTES)
-
-class _Unparser(NodeVisitor):
- """Methods in this class recursively traverse an AST and
- output source code for the abstract syntax; original formatting
- is disregarded."""
-
- def __init__(self, *, _avoid_backslashes=False):
- self._source = []
- self._buffer = []
- self._precedences = {}
- self._type_ignores = {}
- self._indent = 0
- self._avoid_backslashes = _avoid_backslashes
-
- def interleave(self, inter, f, seq):
- """Call f on each item in seq, calling inter() in between."""
- seq = iter(seq)
- try:
- f(next(seq))
- except StopIteration:
- pass
- else:
- for x in seq:
- inter()
- f(x)
-
- def items_view(self, traverser, items):
- """Traverse and separate the given *items* with a comma and append it to
- the buffer. If *items* is a single item sequence, a trailing comma
- will be added."""
- if len(items) == 1:
- traverser(items[0])
- self.write(",")
- else:
- self.interleave(lambda: self.write(", "), traverser, items)
-
- def maybe_newline(self):
- """Adds a newline if it isn't the start of generated source"""
- if self._source:
- self.write("\n")
-
- def fill(self, text=""):
- """Indent a piece of text and append it, according to the current
- indentation level"""
- self.maybe_newline()
- self.write(" " * self._indent + text)
-
- def write(self, text):
- """Append a piece of text"""
- self._source.append(text)
-
- def buffer_writer(self, text):
- self._buffer.append(text)
-
- @property
- def buffer(self):
- value = "".join(self._buffer)
- self._buffer.clear()
- return value
-
- @contextmanager
- def block(self, *, extra = None):
- """A context manager for preparing the source for blocks. It adds
- the character':', increases the indentation on enter and decreases
- the indentation on exit. If *extra* is given, it will be directly
- appended after the colon character.
- """
- self.write(":")
- if extra:
- self.write(extra)
- self._indent += 1
- yield
- self._indent -= 1
-
- @contextmanager
- def delimit(self, start, end):
- """A context manager for preparing the source for expressions. It adds
- *start* to the buffer and enters, after exit it adds *end*."""
-
- self.write(start)
- yield
- self.write(end)
-
- def delimit_if(self, start, end, condition):
- if condition:
- return self.delimit(start, end)
- else:
- return nullcontext()
-
- def require_parens(self, precedence, node):
- """Shortcut to adding precedence related parens"""
- return self.delimit_if("(", ")", self.get_precedence(node) > precedence)
-
- def get_precedence(self, node):
- return self._precedences.get(node, _Precedence.TEST)
-
- def set_precedence(self, precedence, *nodes):
- for node in nodes:
- self._precedences[node] = precedence
-
- def get_raw_docstring(self, node):
- """If a docstring node is found in the body of the *node* parameter,
- return that docstring node, None otherwise.
-
- Logic mirrored from ``_PyAST_GetDocString``."""
- if not isinstance(
- node, (AsyncFunctionDef, FunctionDef, ClassDef, Module)
- ) or len(node.body) < 1:
- return None
- node = node.body[0]
- if not isinstance(node, Expr):
- return None
- node = node.value
- if isinstance(node, Constant) and isinstance(node.value, str):
- return node
-
- def get_type_comment(self, node):
- comment = self._type_ignores.get(node.lineno) or node.type_comment
- if comment is not None:
- return f" # type: {comment}"
-
- def traverse(self, node):
- if isinstance(node, list):
- for item in node:
- self.traverse(item)
- else:
- super().visit(node)
-
- def visit(self, node):
- """Outputs a source code string that, if converted back to an ast
- (using ast.parse) will generate an AST equivalent to *node*"""
- self._source = []
- self.traverse(node)
- return "".join(self._source)
-
- def _write_docstring_and_traverse_body(self, node):
- if (docstring := self.get_raw_docstring(node)):
- self._write_docstring(docstring)
- self.traverse(node.body[1:])
- else:
- self.traverse(node.body)
-
- def visit_Module(self, node):
- self._type_ignores = {
- ignore.lineno: f"ignore{ignore.tag}"
- for ignore in node.type_ignores
- }
- self._write_docstring_and_traverse_body(node)
- self._type_ignores.clear()
-
- def visit_FunctionType(self, node):
- with self.delimit("(", ")"):
- self.interleave(
- lambda: self.write(", "), self.traverse, node.argtypes
- )
-
- self.write(" -> ")
- self.traverse(node.returns)
-
- def visit_Expr(self, node):
- self.fill()
- self.set_precedence(_Precedence.YIELD, node.value)
- self.traverse(node.value)
-
- def visit_NamedExpr(self, node):
- with self.require_parens(_Precedence.TUPLE, node):
- self.set_precedence(_Precedence.ATOM, node.target, node.value)
- self.traverse(node.target)
- self.write(" := ")
- self.traverse(node.value)
-
- def visit_Import(self, node):
- self.fill("import ")
- self.interleave(lambda: self.write(", "), self.traverse, node.names)
-
- def visit_ImportFrom(self, node):
- self.fill("from ")
- self.write("." * node.level)
- if node.module:
- self.write(node.module)
- self.write(" import ")
- self.interleave(lambda: self.write(", "), self.traverse, node.names)
-
- def visit_Assign(self, node):
- self.fill()
- for target in node.targets:
- self.traverse(target)
- self.write(" = ")
- self.traverse(node.value)
- if type_comment := self.get_type_comment(node):
- self.write(type_comment)
-
- def visit_AugAssign(self, node):
- self.fill()
- self.traverse(node.target)
- self.write(" " + self.binop[node.op.__class__.__name__] + "= ")
- self.traverse(node.value)
-
- def visit_AnnAssign(self, node):
- self.fill()
- with self.delimit_if("(", ")", not node.simple and isinstance(node.target, Name)):
- self.traverse(node.target)
- self.write(": ")
- self.traverse(node.annotation)
- if node.value:
- self.write(" = ")
- self.traverse(node.value)
-
- def visit_Return(self, node):
- self.fill("return")
- if node.value:
- self.write(" ")
- self.traverse(node.value)
-
- def visit_Pass(self, node):
- self.fill("pass")
-
- def visit_Break(self, node):
- self.fill("break")
-
- def visit_Continue(self, node):
- self.fill("continue")
-
- def visit_Delete(self, node):
- self.fill("del ")
- self.interleave(lambda: self.write(", "), self.traverse, node.targets)
-
- def visit_Assert(self, node):
- self.fill("assert ")
- self.traverse(node.test)
- if node.msg:
- self.write(", ")
- self.traverse(node.msg)
-
- def visit_Global(self, node):
- self.fill("global ")
- self.interleave(lambda: self.write(", "), self.write, node.names)
-
- def visit_Nonlocal(self, node):
- self.fill("nonlocal ")
- self.interleave(lambda: self.write(", "), self.write, node.names)
-
- def visit_Await(self, node):
- with self.require_parens(_Precedence.AWAIT, node):
- self.write("await")
- if node.value:
- self.write(" ")
- self.set_precedence(_Precedence.ATOM, node.value)
- self.traverse(node.value)
-
- def visit_Yield(self, node):
- with self.require_parens(_Precedence.YIELD, node):
- self.write("yield")
- if node.value:
- self.write(" ")
- self.set_precedence(_Precedence.ATOM, node.value)
- self.traverse(node.value)
-
- def visit_YieldFrom(self, node):
- with self.require_parens(_Precedence.YIELD, node):
- self.write("yield from ")
- if not node.value:
- raise ValueError("Node can't be used without a value attribute.")
- self.set_precedence(_Precedence.ATOM, node.value)
- self.traverse(node.value)
-
- def visit_Raise(self, node):
- self.fill("raise")
- if not node.exc:
- if node.cause:
- raise ValueError(f"Node can't use cause without an exception.")
- return
- self.write(" ")
- self.traverse(node.exc)
- if node.cause:
- self.write(" from ")
- self.traverse(node.cause)
-
- def visit_Try(self, node):
- self.fill("try")
- with self.block():
- self.traverse(node.body)
- for ex in node.handlers:
- self.traverse(ex)
- if node.orelse:
- self.fill("else")
- with self.block():
- self.traverse(node.orelse)
- if node.finalbody:
- self.fill("finally")
- with self.block():
- self.traverse(node.finalbody)
-
- def visit_ExceptHandler(self, node):
- self.fill("except")
- if node.type:
- self.write(" ")
- self.traverse(node.type)
- if node.name:
- self.write(" as ")
- self.write(node.name)
- with self.block():
- self.traverse(node.body)
-
- def visit_ClassDef(self, node):
- self.maybe_newline()
- for deco in node.decorator_list:
- self.fill("@")
- self.traverse(deco)
- self.fill("class " + node.name)
- with self.delimit_if("(", ")", condition = node.bases or node.keywords):
- comma = False
- for e in node.bases:
- if comma:
- self.write(", ")
- else:
- comma = True
- self.traverse(e)
- for e in node.keywords:
- if comma:
- self.write(", ")
- else:
- comma = True
- self.traverse(e)
-
- with self.block():
- self._write_docstring_and_traverse_body(node)
-
- def visit_FunctionDef(self, node):
- self._function_helper(node, "def")
-
- def visit_AsyncFunctionDef(self, node):
- self._function_helper(node, "async def")
-
- def _function_helper(self, node, fill_suffix):
- self.maybe_newline()
- for deco in node.decorator_list:
- self.fill("@")
- self.traverse(deco)
- def_str = fill_suffix + " " + node.name
- self.fill(def_str)
- with self.delimit("(", ")"):
- self.traverse(node.args)
- if node.returns:
- self.write(" -> ")
- self.traverse(node.returns)
- with self.block(extra=self.get_type_comment(node)):
- self._write_docstring_and_traverse_body(node)
-
- def visit_For(self, node):
- self._for_helper("for ", node)
-
- def visit_AsyncFor(self, node):
- self._for_helper("async for ", node)
-
- def _for_helper(self, fill, node):
- self.fill(fill)
- self.traverse(node.target)
- self.write(" in ")
- self.traverse(node.iter)
- with self.block(extra=self.get_type_comment(node)):
- self.traverse(node.body)
- if node.orelse:
- self.fill("else")
- with self.block():
- self.traverse(node.orelse)
-
- def visit_If(self, node):
- self.fill("if ")
- self.traverse(node.test)
- with self.block():
- self.traverse(node.body)
- # collapse nested ifs into equivalent elifs.
- while node.orelse and len(node.orelse) == 1 and isinstance(node.orelse[0], If):
- node = node.orelse[0]
- self.fill("elif ")
- self.traverse(node.test)
- with self.block():
- self.traverse(node.body)
- # final else
- if node.orelse:
- self.fill("else")
- with self.block():
- self.traverse(node.orelse)
-
- def visit_While(self, node):
- self.fill("while ")
- self.traverse(node.test)
- with self.block():
- self.traverse(node.body)
- if node.orelse:
- self.fill("else")
- with self.block():
- self.traverse(node.orelse)
-
- def visit_With(self, node):
- self.fill("with ")
- self.interleave(lambda: self.write(", "), self.traverse, node.items)
- with self.block(extra=self.get_type_comment(node)):
- self.traverse(node.body)
-
- def visit_AsyncWith(self, node):
- self.fill("async with ")
- self.interleave(lambda: self.write(", "), self.traverse, node.items)
- with self.block(extra=self.get_type_comment(node)):
- self.traverse(node.body)
-
- def _str_literal_helper(
- self, string, *, quote_types=_ALL_QUOTES, escape_special_whitespace=False
- ):
- """Helper for writing string literals, minimizing escapes.
- Returns the tuple (string literal to write, possible quote types).
- """
- def escape_char(c):
- # \n and \t are non-printable, but we only escape them if
- # escape_special_whitespace is True
- if not escape_special_whitespace and c in "\n\t":
- return c
- # Always escape backslashes and other non-printable characters
- if c == "\\" or not c.isprintable():
- return c.encode("unicode_escape").decode("ascii")
- return c
-
- escaped_string = "".join(map(escape_char, string))
- possible_quotes = quote_types
- if "\n" in escaped_string:
- possible_quotes = [q for q in possible_quotes if q in _MULTI_QUOTES]
- possible_quotes = [q for q in possible_quotes if q not in escaped_string]
- if not possible_quotes:
- # If there aren't any possible_quotes, fallback to using repr
- # on the original string. Try to use a quote from quote_types,
- # e.g., so that we use triple quotes for docstrings.
- string = repr(string)
- quote = next((q for q in quote_types if string[0] in q), string[0])
- return string[1:-1], [quote]
- if escaped_string:
- # Sort so that we prefer '''"''' over """\""""
- possible_quotes.sort(key=lambda q: q[0] == escaped_string[-1])
- # If we're using triple quotes and we'd need to escape a final
- # quote, escape it
- if possible_quotes[0][0] == escaped_string[-1]:
- assert len(possible_quotes[0]) == 3
- escaped_string = escaped_string[:-1] + "\\" + escaped_string[-1]
- return escaped_string, possible_quotes
-
- def _write_str_avoiding_backslashes(self, string, *, quote_types=_ALL_QUOTES):
- """Write string literal value with a best effort attempt to avoid backslashes."""
- string, quote_types = self._str_literal_helper(string, quote_types=quote_types)
- quote_type = quote_types[0]
- self.write(f"{quote_type}{string}{quote_type}")
-
- def visit_JoinedStr(self, node):
- self.write("f")
- if self._avoid_backslashes:
- self._fstring_JoinedStr(node, self.buffer_writer)
- self._write_str_avoiding_backslashes(self.buffer)
- return
-
- # If we don't need to avoid backslashes globally (i.e., we only need
- # to avoid them inside FormattedValues), it's cosmetically preferred
- # to use escaped whitespace. That is, it's preferred to use backslashes
- # for cases like: f"{x}\n". To accomplish this, we keep track of what
- # in our buffer corresponds to FormattedValues and what corresponds to
- # Constant parts of the f-string, and allow escapes accordingly.
- buffer = []
- for value in node.values:
- meth = getattr(self, "_fstring_" + type(value).__name__)
- meth(value, self.buffer_writer)
- buffer.append((self.buffer, isinstance(value, Constant)))
- new_buffer = []
- quote_types = _ALL_QUOTES
- for value, is_constant in buffer:
- # Repeatedly narrow down the list of possible quote_types
- value, quote_types = self._str_literal_helper(
- value, quote_types=quote_types,
- escape_special_whitespace=is_constant
- )
- new_buffer.append(value)
- value = "".join(new_buffer)
- quote_type = quote_types[0]
- self.write(f"{quote_type}{value}{quote_type}")
-
- def visit_FormattedValue(self, node):
- self.write("f")
- self._fstring_FormattedValue(node, self.buffer_writer)
- self._write_str_avoiding_backslashes(self.buffer)
-
- def _fstring_JoinedStr(self, node, write):
- for value in node.values:
- meth = getattr(self, "_fstring_" + type(value).__name__)
- meth(value, write)
-
- def _fstring_Constant(self, node, write):
- if not isinstance(node.value, str):
- raise ValueError("Constants inside JoinedStr should be a string.")
- value = node.value.replace("{", "{{").replace("}", "}}")
- write(value)
-
- def _fstring_FormattedValue(self, node, write):
- write("{")
- unparser = type(self)(_avoid_backslashes=True)
- unparser.set_precedence(_Precedence.TEST.next(), node.value)
- expr = unparser.visit(node.value)
- if expr.startswith("{"):
- write(" ") # Separate pair of opening brackets as "{ {"
- if "\\" in expr:
- raise ValueError("Unable to avoid backslash in f-string expression part")
- write(expr)
- if node.conversion != -1:
- conversion = chr(node.conversion)
- if conversion not in "sra":
- raise ValueError("Unknown f-string conversion.")
- write(f"!{conversion}")
- if node.format_spec:
- write(":")
- meth = getattr(self, "_fstring_" + type(node.format_spec).__name__)
- meth(node.format_spec, write)
- write("}")
-
- def visit_Name(self, node):
- self.write(node.id)
-
- def _write_docstring(self, node):
- self.fill()
- if node.kind == "u":
- self.write("u")
- self._write_str_avoiding_backslashes(node.value, quote_types=_MULTI_QUOTES)
-
- def _write_constant(self, value):
- if isinstance(value, (float, complex)):
- # Substitute overflowing decimal literal for AST infinities,
- # and inf - inf for NaNs.
- self.write(
- repr(value)
- .replace("inf", _INFSTR)
- .replace("nan", f"({_INFSTR}-{_INFSTR})")
- )
- elif self._avoid_backslashes and isinstance(value, str):
- self._write_str_avoiding_backslashes(value)
- else:
- self.write(repr(value))
-
- def visit_Constant(self, node):
- value = node.value
- if isinstance(value, tuple):
- with self.delimit("(", ")"):
- self.items_view(self._write_constant, value)
- elif value is ...:
- self.write("...")
- else:
- if node.kind == "u":
- self.write("u")
- self._write_constant(node.value)
-
- def visit_List(self, node):
- with self.delimit("[", "]"):
- self.interleave(lambda: self.write(", "), self.traverse, node.elts)
-
- def visit_ListComp(self, node):
- with self.delimit("[", "]"):
- self.traverse(node.elt)
- for gen in node.generators:
- self.traverse(gen)
-
- def visit_GeneratorExp(self, node):
- with self.delimit("(", ")"):
- self.traverse(node.elt)
- for gen in node.generators:
- self.traverse(gen)
-
- def visit_SetComp(self, node):
- with self.delimit("{", "}"):
- self.traverse(node.elt)
- for gen in node.generators:
- self.traverse(gen)
-
- def visit_DictComp(self, node):
- with self.delimit("{", "}"):
- self.traverse(node.key)
- self.write(": ")
- self.traverse(node.value)
- for gen in node.generators:
- self.traverse(gen)
-
- def visit_comprehension(self, node):
- if node.is_async:
- self.write(" async for ")
- else:
- self.write(" for ")
- self.set_precedence(_Precedence.TUPLE, node.target)
- self.traverse(node.target)
- self.write(" in ")
- self.set_precedence(_Precedence.TEST.next(), node.iter, *node.ifs)
- self.traverse(node.iter)
- for if_clause in node.ifs:
- self.write(" if ")
- self.traverse(if_clause)
-
- def visit_IfExp(self, node):
- with self.require_parens(_Precedence.TEST, node):
- self.set_precedence(_Precedence.TEST.next(), node.body, node.test)
- self.traverse(node.body)
- self.write(" if ")
- self.traverse(node.test)
- self.write(" else ")
- self.set_precedence(_Precedence.TEST, node.orelse)
- self.traverse(node.orelse)
-
- def visit_Set(self, node):
- if node.elts:
- with self.delimit("{", "}"):
- self.interleave(lambda: self.write(", "), self.traverse, node.elts)
- else:
- # `{}` would be interpreted as a dictionary literal, and
- # `set` might be shadowed. Thus:
- self.write('{*()}')
-
- def visit_Dict(self, node):
- def write_key_value_pair(k, v):
- self.traverse(k)
- self.write(": ")
- self.traverse(v)
-
- def write_item(item):
- k, v = item
- if k is None:
- # for dictionary unpacking operator in dicts {**{'y': 2}}
- # see PEP 448 for details
- self.write("**")
- self.set_precedence(_Precedence.EXPR, v)
- self.traverse(v)
- else:
- write_key_value_pair(k, v)
-
- with self.delimit("{", "}"):
- self.interleave(
- lambda: self.write(", "), write_item, zip(node.keys, node.values)
- )
-
- def visit_Tuple(self, node):
- with self.delimit("(", ")"):
- self.items_view(self.traverse, node.elts)
-
- unop = {"Invert": "~", "Not": "not", "UAdd": "+", "USub": "-"}
- unop_precedence = {
- "not": _Precedence.NOT,
- "~": _Precedence.FACTOR,
- "+": _Precedence.FACTOR,
- "-": _Precedence.FACTOR,
- }
-
- def visit_UnaryOp(self, node):
- operator = self.unop[node.op.__class__.__name__]
- operator_precedence = self.unop_precedence[operator]
- with self.require_parens(operator_precedence, node):
- self.write(operator)
- # factor prefixes (+, -, ~) shouldn't be seperated
- # from the value they belong, (e.g: +1 instead of + 1)
- if operator_precedence is not _Precedence.FACTOR:
- self.write(" ")
- self.set_precedence(operator_precedence, node.operand)
- self.traverse(node.operand)
-
- binop = {
- "Add": "+",
- "Sub": "-",
- "Mult": "*",
- "MatMult": "@",
- "Div": "/",
- "Mod": "%",
- "LShift": "<<",
- "RShift": ">>",
- "BitOr": "|",
- "BitXor": "^",
- "BitAnd": "&",
- "FloorDiv": "//",
- "Pow": "**",
- }
-
- binop_precedence = {
- "+": _Precedence.ARITH,
- "-": _Precedence.ARITH,
- "*": _Precedence.TERM,
- "@": _Precedence.TERM,
- "/": _Precedence.TERM,
- "%": _Precedence.TERM,
- "<<": _Precedence.SHIFT,
- ">>": _Precedence.SHIFT,
- "|": _Precedence.BOR,
- "^": _Precedence.BXOR,
- "&": _Precedence.BAND,
- "//": _Precedence.TERM,
- "**": _Precedence.POWER,
- }
-
- binop_rassoc = frozenset(("**",))
- def visit_BinOp(self, node):
- operator = self.binop[node.op.__class__.__name__]
- operator_precedence = self.binop_precedence[operator]
- with self.require_parens(operator_precedence, node):
- if operator in self.binop_rassoc:
- left_precedence = operator_precedence.next()
- right_precedence = operator_precedence
- else:
- left_precedence = operator_precedence
- right_precedence = operator_precedence.next()
-
- self.set_precedence(left_precedence, node.left)
- self.traverse(node.left)
- self.write(f" {operator} ")
- self.set_precedence(right_precedence, node.right)
- self.traverse(node.right)
-
- cmpops = {
- "Eq": "==",
- "NotEq": "!=",
- "Lt": "<",
- "LtE": "<=",
- "Gt": ">",
- "GtE": ">=",
- "Is": "is",
- "IsNot": "is not",
- "In": "in",
- "NotIn": "not in",
- }
-
- def visit_Compare(self, node):
- with self.require_parens(_Precedence.CMP, node):
- self.set_precedence(_Precedence.CMP.next(), node.left, *node.comparators)
- self.traverse(node.left)
- for o, e in zip(node.ops, node.comparators):
- self.write(" " + self.cmpops[o.__class__.__name__] + " ")
- self.traverse(e)
-
- boolops = {"And": "and", "Or": "or"}
- boolop_precedence = {"and": _Precedence.AND, "or": _Precedence.OR}
-
- def visit_BoolOp(self, node):
- operator = self.boolops[node.op.__class__.__name__]
- operator_precedence = self.boolop_precedence[operator]
-
- def increasing_level_traverse(node):
- nonlocal operator_precedence
- operator_precedence = operator_precedence.next()
- self.set_precedence(operator_precedence, node)
- self.traverse(node)
-
- with self.require_parens(operator_precedence, node):
- s = f" {operator} "
- self.interleave(lambda: self.write(s), increasing_level_traverse, node.values)
-
- def visit_Attribute(self, node):
- self.set_precedence(_Precedence.ATOM, node.value)
- self.traverse(node.value)
- # Special case: 3.__abs__() is a syntax error, so if node.value
- # is an integer literal then we need to either parenthesize
- # it or add an extra space to get 3 .__abs__().
- if isinstance(node.value, Constant) and isinstance(node.value.value, int):
- self.write(" ")
- self.write(".")
- self.write(node.attr)
-
- def visit_Call(self, node):
- self.set_precedence(_Precedence.ATOM, node.func)
- self.traverse(node.func)
- with self.delimit("(", ")"):
- comma = False
- for e in node.args:
- if comma:
- self.write(", ")
- else:
- comma = True
- self.traverse(e)
- for e in node.keywords:
- if comma:
- self.write(", ")
- else:
- comma = True
- self.traverse(e)
-
- def visit_Subscript(self, node):
- def is_simple_tuple(slice_value):
- # when unparsing a non-empty tuple, the parentheses can be safely
- # omitted if there aren't any elements that explicitly requires
- # parentheses (such as starred expressions).
- return (
- isinstance(slice_value, Tuple)
- and slice_value.elts
- and not any(isinstance(elt, Starred) for elt in slice_value.elts)
- )
-
- self.set_precedence(_Precedence.ATOM, node.value)
- self.traverse(node.value)
- with self.delimit("[", "]"):
- if is_simple_tuple(node.slice):
- self.items_view(self.traverse, node.slice.elts)
- else:
- self.traverse(node.slice)
-
- def visit_Starred(self, node):
- self.write("*")
- self.set_precedence(_Precedence.EXPR, node.value)
- self.traverse(node.value)
-
- def visit_Ellipsis(self, node):
- self.write("...")
-
- def visit_Slice(self, node):
- if node.lower:
- self.traverse(node.lower)
- self.write(":")
- if node.upper:
- self.traverse(node.upper)
- if node.step:
- self.write(":")
- self.traverse(node.step)
-
- def visit_arg(self, node):
- self.write(node.arg)
- if node.annotation:
- self.write(": ")
- self.traverse(node.annotation)
-
- def visit_arguments(self, node):
- first = True
- # normal arguments
- all_args = node.posonlyargs + node.args
- defaults = [None] * (len(all_args) - len(node.defaults)) + node.defaults
- for index, elements in enumerate(zip(all_args, defaults), 1):
- a, d = elements
- if first:
- first = False
- else:
- self.write(", ")
- self.traverse(a)
- if d:
- self.write("=")
- self.traverse(d)
- if index == len(node.posonlyargs):
- self.write(", /")
-
- # varargs, or bare '*' if no varargs but keyword-only arguments present
- if node.vararg or node.kwonlyargs:
- if first:
- first = False
- else:
- self.write(", ")
- self.write("*")
- if node.vararg:
- self.write(node.vararg.arg)
- if node.vararg.annotation:
- self.write(": ")
- self.traverse(node.vararg.annotation)
-
- # keyword-only arguments
- if node.kwonlyargs:
- for a, d in zip(node.kwonlyargs, node.kw_defaults):
- self.write(", ")
- self.traverse(a)
- if d:
- self.write("=")
- self.traverse(d)
-
- # kwargs
- if node.kwarg:
- if first:
- first = False
- else:
- self.write(", ")
- self.write("**" + node.kwarg.arg)
- if node.kwarg.annotation:
- self.write(": ")
- self.traverse(node.kwarg.annotation)
-
- def visit_keyword(self, node):
- if node.arg is None:
- self.write("**")
- else:
- self.write(node.arg)
- self.write("=")
- self.traverse(node.value)
-
- def visit_Lambda(self, node):
- with self.require_parens(_Precedence.TEST, node):
- self.write("lambda ")
- self.traverse(node.args)
- self.write(": ")
- self.set_precedence(_Precedence.TEST, node.body)
- self.traverse(node.body)
-
- def visit_alias(self, node):
- self.write(node.name)
- if node.asname:
- self.write(" as " + node.asname)
-
- def visit_withitem(self, node):
- self.traverse(node.context_expr)
- if node.optional_vars:
- self.write(" as ")
- self.traverse(node.optional_vars)
-
-def unparse(ast_obj):
- unparser = _Unparser()
- return unparser.visit(ast_obj)
-
-
-def main():
- import argparse
-
- parser = argparse.ArgumentParser(prog='python -m ast')
- parser.add_argument('infile', type=argparse.FileType(mode='rb'), nargs='?',
- default='-',
- help='the file to parse; defaults to stdin')
- parser.add_argument('-m', '--mode', default='exec',
- choices=('exec', 'single', 'eval', 'func_type'),
- help='specify what kind of code must be parsed')
- parser.add_argument('--no-type-comments', default=True, action='store_false',
- help="don't add information about type comments")
- parser.add_argument('-a', '--include-attributes', action='store_true',
- help='include attributes such as line numbers and '
- 'column offsets')
- parser.add_argument('-i', '--indent', type=int, default=3,
- help='indentation of nodes (number of spaces)')
- args = parser.parse_args()
-
- with args.infile as infile:
- source = infile.read()
- tree = parse(source, args.infile.name, args.mode, type_comments=args.no_type_comments)
- print(dump(tree, include_attributes=args.include_attributes, indent=args.indent))
-
-if __name__ == '__main__':
- main()
+
+
+# If the ast module is loaded more than once, only add deprecated methods once
+if not hasattr(Constant, 'n'):
+ # The following code is for backward compatibility.
+ # It will be removed in future.
+
+ def _getter(self):
+ """Deprecated. Use value instead."""
+ return self.value
+
+ def _setter(self, value):
+ self.value = value
+
+ Constant.n = property(_getter, _setter)
+ Constant.s = property(_getter, _setter)
+
+class _ABC(type):
+
+ def __init__(cls, *args):
+ cls.__doc__ = """Deprecated AST node class. Use ast.Constant instead"""
+
+ def __instancecheck__(cls, inst):
+ if not isinstance(inst, Constant):
+ return False
+ if cls in _const_types:
+ try:
+ value = inst.value
+ except AttributeError:
+ return False
+ else:
+ return (
+ isinstance(value, _const_types[cls]) and
+ not isinstance(value, _const_types_not.get(cls, ()))
+ )
+ return type.__instancecheck__(cls, inst)
+
+def _new(cls, *args, **kwargs):
+ for key in kwargs:
+ if key not in cls._fields:
+ # arbitrary keyword arguments are accepted
+ continue
+ pos = cls._fields.index(key)
+ if pos < len(args):
+ raise TypeError(f"{cls.__name__} got multiple values for argument {key!r}")
+ if cls in _const_types:
+ return Constant(*args, **kwargs)
+ return Constant.__new__(cls, *args, **kwargs)
+
+class Num(Constant, metaclass=_ABC):
+ _fields = ('n',)
+ __new__ = _new
+
+class Str(Constant, metaclass=_ABC):
+ _fields = ('s',)
+ __new__ = _new
+
+class Bytes(Constant, metaclass=_ABC):
+ _fields = ('s',)
+ __new__ = _new
+
+class NameConstant(Constant, metaclass=_ABC):
+ __new__ = _new
+
+class Ellipsis(Constant, metaclass=_ABC):
+ _fields = ()
+
+ def __new__(cls, *args, **kwargs):
+ if cls is Ellipsis:
+ return Constant(..., *args, **kwargs)
+ return Constant.__new__(cls, *args, **kwargs)
+
+_const_types = {
+ Num: (int, float, complex),
+ Str: (str,),
+ Bytes: (bytes,),
+ NameConstant: (type(None), bool),
+ Ellipsis: (type(...),),
+}
+_const_types_not = {
+ Num: (bool,),
+}
+
+_const_node_type_names = {
+ bool: 'NameConstant', # should be before int
+ type(None): 'NameConstant',
+ int: 'Num',
+ float: 'Num',
+ complex: 'Num',
+ str: 'Str',
+ bytes: 'Bytes',
+ type(...): 'Ellipsis',
+}
+
+class slice(AST):
+ """Deprecated AST node class."""
+
+class Index(slice):
+ """Deprecated AST node class. Use the index value directly instead."""
+ def __new__(cls, value, **kwargs):
+ return value
+
+class ExtSlice(slice):
+ """Deprecated AST node class. Use ast.Tuple instead."""
+ def __new__(cls, dims=(), **kwargs):
+ return Tuple(list(dims), Load(), **kwargs)
+
+# If the ast module is loaded more than once, only add deprecated methods once
+if not hasattr(Tuple, 'dims'):
+ # The following code is for backward compatibility.
+ # It will be removed in future.
+
+ def _dims_getter(self):
+ """Deprecated. Use elts instead."""
+ return self.elts
+
+ def _dims_setter(self, value):
+ self.elts = value
+
+ Tuple.dims = property(_dims_getter, _dims_setter)
+
+class Suite(mod):
+ """Deprecated AST node class. Unused in Python 3."""
+
+class AugLoad(expr_context):
+ """Deprecated AST node class. Unused in Python 3."""
+
+class AugStore(expr_context):
+ """Deprecated AST node class. Unused in Python 3."""
+
+class Param(expr_context):
+ """Deprecated AST node class. Unused in Python 3."""
+
+
+# Large float and imaginary literals get turned into infinities in the AST.
+# We unparse those infinities to INFSTR.
+_INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1)
+
+class _Precedence(IntEnum):
+ """Precedence table that originated from python grammar."""
+
+ TUPLE = auto()
+ YIELD = auto() # 'yield', 'yield from'
+ TEST = auto() # 'if'-'else', 'lambda'
+ OR = auto() # 'or'
+ AND = auto() # 'and'
+ NOT = auto() # 'not'
+ CMP = auto() # '<', '>', '==', '>=', '<=', '!=',
+ # 'in', 'not in', 'is', 'is not'
+ EXPR = auto()
+ BOR = EXPR # '|'
+ BXOR = auto() # '^'
+ BAND = auto() # '&'
+ SHIFT = auto() # '<<', '>>'
+ ARITH = auto() # '+', '-'
+ TERM = auto() # '*', '@', '/', '%', '//'
+ FACTOR = auto() # unary '+', '-', '~'
+ POWER = auto() # '**'
+ AWAIT = auto() # 'await'
+ ATOM = auto()
+
+ def next(self):
+ try:
+ return self.__class__(self + 1)
+ except ValueError:
+ return self
+
+
+_SINGLE_QUOTES = ("'", '"')
+_MULTI_QUOTES = ('"""', "'''")
+_ALL_QUOTES = (*_SINGLE_QUOTES, *_MULTI_QUOTES)
+
+class _Unparser(NodeVisitor):
+ """Methods in this class recursively traverse an AST and
+ output source code for the abstract syntax; original formatting
+ is disregarded."""
+
+ def __init__(self, *, _avoid_backslashes=False):
+ self._source = []
+ self._buffer = []
+ self._precedences = {}
+ self._type_ignores = {}
+ self._indent = 0
+ self._avoid_backslashes = _avoid_backslashes
+
+ def interleave(self, inter, f, seq):
+ """Call f on each item in seq, calling inter() in between."""
+ seq = iter(seq)
+ try:
+ f(next(seq))
+ except StopIteration:
+ pass
+ else:
+ for x in seq:
+ inter()
+ f(x)
+
+ def items_view(self, traverser, items):
+ """Traverse and separate the given *items* with a comma and append it to
+ the buffer. If *items* is a single item sequence, a trailing comma
+ will be added."""
+ if len(items) == 1:
+ traverser(items[0])
+ self.write(",")
+ else:
+ self.interleave(lambda: self.write(", "), traverser, items)
+
+ def maybe_newline(self):
+ """Adds a newline if it isn't the start of generated source"""
+ if self._source:
+ self.write("\n")
+
+ def fill(self, text=""):
+ """Indent a piece of text and append it, according to the current
+ indentation level"""
+ self.maybe_newline()
+ self.write(" " * self._indent + text)
+
+ def write(self, text):
+ """Append a piece of text"""
+ self._source.append(text)
+
+ def buffer_writer(self, text):
+ self._buffer.append(text)
+
+ @property
+ def buffer(self):
+ value = "".join(self._buffer)
+ self._buffer.clear()
+ return value
+
+ @contextmanager
+ def block(self, *, extra = None):
+ """A context manager for preparing the source for blocks. It adds
+ the character':', increases the indentation on enter and decreases
+ the indentation on exit. If *extra* is given, it will be directly
+ appended after the colon character.
+ """
+ self.write(":")
+ if extra:
+ self.write(extra)
+ self._indent += 1
+ yield
+ self._indent -= 1
+
+ @contextmanager
+ def delimit(self, start, end):
+ """A context manager for preparing the source for expressions. It adds
+ *start* to the buffer and enters, after exit it adds *end*."""
+
+ self.write(start)
+ yield
+ self.write(end)
+
+ def delimit_if(self, start, end, condition):
+ if condition:
+ return self.delimit(start, end)
+ else:
+ return nullcontext()
+
+ def require_parens(self, precedence, node):
+ """Shortcut to adding precedence related parens"""
+ return self.delimit_if("(", ")", self.get_precedence(node) > precedence)
+
+ def get_precedence(self, node):
+ return self._precedences.get(node, _Precedence.TEST)
+
+ def set_precedence(self, precedence, *nodes):
+ for node in nodes:
+ self._precedences[node] = precedence
+
+ def get_raw_docstring(self, node):
+ """If a docstring node is found in the body of the *node* parameter,
+ return that docstring node, None otherwise.
+
+ Logic mirrored from ``_PyAST_GetDocString``."""
+ if not isinstance(
+ node, (AsyncFunctionDef, FunctionDef, ClassDef, Module)
+ ) or len(node.body) < 1:
+ return None
+ node = node.body[0]
+ if not isinstance(node, Expr):
+ return None
+ node = node.value
+ if isinstance(node, Constant) and isinstance(node.value, str):
+ return node
+
+ def get_type_comment(self, node):
+ comment = self._type_ignores.get(node.lineno) or node.type_comment
+ if comment is not None:
+ return f" # type: {comment}"
+
+ def traverse(self, node):
+ if isinstance(node, list):
+ for item in node:
+ self.traverse(item)
+ else:
+ super().visit(node)
+
+ def visit(self, node):
+ """Outputs a source code string that, if converted back to an ast
+ (using ast.parse) will generate an AST equivalent to *node*"""
+ self._source = []
+ self.traverse(node)
+ return "".join(self._source)
+
+ def _write_docstring_and_traverse_body(self, node):
+ if (docstring := self.get_raw_docstring(node)):
+ self._write_docstring(docstring)
+ self.traverse(node.body[1:])
+ else:
+ self.traverse(node.body)
+
+ def visit_Module(self, node):
+ self._type_ignores = {
+ ignore.lineno: f"ignore{ignore.tag}"
+ for ignore in node.type_ignores
+ }
+ self._write_docstring_and_traverse_body(node)
+ self._type_ignores.clear()
+
+ def visit_FunctionType(self, node):
+ with self.delimit("(", ")"):
+ self.interleave(
+ lambda: self.write(", "), self.traverse, node.argtypes
+ )
+
+ self.write(" -> ")
+ self.traverse(node.returns)
+
+ def visit_Expr(self, node):
+ self.fill()
+ self.set_precedence(_Precedence.YIELD, node.value)
+ self.traverse(node.value)
+
+ def visit_NamedExpr(self, node):
+ with self.require_parens(_Precedence.TUPLE, node):
+ self.set_precedence(_Precedence.ATOM, node.target, node.value)
+ self.traverse(node.target)
+ self.write(" := ")
+ self.traverse(node.value)
+
+ def visit_Import(self, node):
+ self.fill("import ")
+ self.interleave(lambda: self.write(", "), self.traverse, node.names)
+
+ def visit_ImportFrom(self, node):
+ self.fill("from ")
+ self.write("." * node.level)
+ if node.module:
+ self.write(node.module)
+ self.write(" import ")
+ self.interleave(lambda: self.write(", "), self.traverse, node.names)
+
+ def visit_Assign(self, node):
+ self.fill()
+ for target in node.targets:
+ self.traverse(target)
+ self.write(" = ")
+ self.traverse(node.value)
+ if type_comment := self.get_type_comment(node):
+ self.write(type_comment)
+
+ def visit_AugAssign(self, node):
+ self.fill()
+ self.traverse(node.target)
+ self.write(" " + self.binop[node.op.__class__.__name__] + "= ")
+ self.traverse(node.value)
+
+ def visit_AnnAssign(self, node):
+ self.fill()
+ with self.delimit_if("(", ")", not node.simple and isinstance(node.target, Name)):
+ self.traverse(node.target)
+ self.write(": ")
+ self.traverse(node.annotation)
+ if node.value:
+ self.write(" = ")
+ self.traverse(node.value)
+
+ def visit_Return(self, node):
+ self.fill("return")
+ if node.value:
+ self.write(" ")
+ self.traverse(node.value)
+
+ def visit_Pass(self, node):
+ self.fill("pass")
+
+ def visit_Break(self, node):
+ self.fill("break")
+
+ def visit_Continue(self, node):
+ self.fill("continue")
+
+ def visit_Delete(self, node):
+ self.fill("del ")
+ self.interleave(lambda: self.write(", "), self.traverse, node.targets)
+
+ def visit_Assert(self, node):
+ self.fill("assert ")
+ self.traverse(node.test)
+ if node.msg:
+ self.write(", ")
+ self.traverse(node.msg)
+
+ def visit_Global(self, node):
+ self.fill("global ")
+ self.interleave(lambda: self.write(", "), self.write, node.names)
+
+ def visit_Nonlocal(self, node):
+ self.fill("nonlocal ")
+ self.interleave(lambda: self.write(", "), self.write, node.names)
+
+ def visit_Await(self, node):
+ with self.require_parens(_Precedence.AWAIT, node):
+ self.write("await")
+ if node.value:
+ self.write(" ")
+ self.set_precedence(_Precedence.ATOM, node.value)
+ self.traverse(node.value)
+
+ def visit_Yield(self, node):
+ with self.require_parens(_Precedence.YIELD, node):
+ self.write("yield")
+ if node.value:
+ self.write(" ")
+ self.set_precedence(_Precedence.ATOM, node.value)
+ self.traverse(node.value)
+
+ def visit_YieldFrom(self, node):
+ with self.require_parens(_Precedence.YIELD, node):
+ self.write("yield from ")
+ if not node.value:
+ raise ValueError("Node can't be used without a value attribute.")
+ self.set_precedence(_Precedence.ATOM, node.value)
+ self.traverse(node.value)
+
+ def visit_Raise(self, node):
+ self.fill("raise")
+ if not node.exc:
+ if node.cause:
+ raise ValueError(f"Node can't use cause without an exception.")
+ return
+ self.write(" ")
+ self.traverse(node.exc)
+ if node.cause:
+ self.write(" from ")
+ self.traverse(node.cause)
+
+ def visit_Try(self, node):
+ self.fill("try")
+ with self.block():
+ self.traverse(node.body)
+ for ex in node.handlers:
+ self.traverse(ex)
+ if node.orelse:
+ self.fill("else")
+ with self.block():
+ self.traverse(node.orelse)
+ if node.finalbody:
+ self.fill("finally")
+ with self.block():
+ self.traverse(node.finalbody)
+
+ def visit_ExceptHandler(self, node):
+ self.fill("except")
+ if node.type:
+ self.write(" ")
+ self.traverse(node.type)
+ if node.name:
+ self.write(" as ")
+ self.write(node.name)
+ with self.block():
+ self.traverse(node.body)
+
+ def visit_ClassDef(self, node):
+ self.maybe_newline()
+ for deco in node.decorator_list:
+ self.fill("@")
+ self.traverse(deco)
+ self.fill("class " + node.name)
+ with self.delimit_if("(", ")", condition = node.bases or node.keywords):
+ comma = False
+ for e in node.bases:
+ if comma:
+ self.write(", ")
+ else:
+ comma = True
+ self.traverse(e)
+ for e in node.keywords:
+ if comma:
+ self.write(", ")
+ else:
+ comma = True
+ self.traverse(e)
+
+ with self.block():
+ self._write_docstring_and_traverse_body(node)
+
+ def visit_FunctionDef(self, node):
+ self._function_helper(node, "def")
+
+ def visit_AsyncFunctionDef(self, node):
+ self._function_helper(node, "async def")
+
+ def _function_helper(self, node, fill_suffix):
+ self.maybe_newline()
+ for deco in node.decorator_list:
+ self.fill("@")
+ self.traverse(deco)
+ def_str = fill_suffix + " " + node.name
+ self.fill(def_str)
+ with self.delimit("(", ")"):
+ self.traverse(node.args)
+ if node.returns:
+ self.write(" -> ")
+ self.traverse(node.returns)
+ with self.block(extra=self.get_type_comment(node)):
+ self._write_docstring_and_traverse_body(node)
+
+ def visit_For(self, node):
+ self._for_helper("for ", node)
+
+ def visit_AsyncFor(self, node):
+ self._for_helper("async for ", node)
+
+ def _for_helper(self, fill, node):
+ self.fill(fill)
+ self.traverse(node.target)
+ self.write(" in ")
+ self.traverse(node.iter)
+ with self.block(extra=self.get_type_comment(node)):
+ self.traverse(node.body)
+ if node.orelse:
+ self.fill("else")
+ with self.block():
+ self.traverse(node.orelse)
+
+ def visit_If(self, node):
+ self.fill("if ")
+ self.traverse(node.test)
+ with self.block():
+ self.traverse(node.body)
+ # collapse nested ifs into equivalent elifs.
+ while node.orelse and len(node.orelse) == 1 and isinstance(node.orelse[0], If):
+ node = node.orelse[0]
+ self.fill("elif ")
+ self.traverse(node.test)
+ with self.block():
+ self.traverse(node.body)
+ # final else
+ if node.orelse:
+ self.fill("else")
+ with self.block():
+ self.traverse(node.orelse)
+
+ def visit_While(self, node):
+ self.fill("while ")
+ self.traverse(node.test)
+ with self.block():
+ self.traverse(node.body)
+ if node.orelse:
+ self.fill("else")
+ with self.block():
+ self.traverse(node.orelse)
+
+ def visit_With(self, node):
+ self.fill("with ")
+ self.interleave(lambda: self.write(", "), self.traverse, node.items)
+ with self.block(extra=self.get_type_comment(node)):
+ self.traverse(node.body)
+
+ def visit_AsyncWith(self, node):
+ self.fill("async with ")
+ self.interleave(lambda: self.write(", "), self.traverse, node.items)
+ with self.block(extra=self.get_type_comment(node)):
+ self.traverse(node.body)
+
+ def _str_literal_helper(
+ self, string, *, quote_types=_ALL_QUOTES, escape_special_whitespace=False
+ ):
+ """Helper for writing string literals, minimizing escapes.
+ Returns the tuple (string literal to write, possible quote types).
+ """
+ def escape_char(c):
+ # \n and \t are non-printable, but we only escape them if
+ # escape_special_whitespace is True
+ if not escape_special_whitespace and c in "\n\t":
+ return c
+ # Always escape backslashes and other non-printable characters
+ if c == "\\" or not c.isprintable():
+ return c.encode("unicode_escape").decode("ascii")
+ return c
+
+ escaped_string = "".join(map(escape_char, string))
+ possible_quotes = quote_types
+ if "\n" in escaped_string:
+ possible_quotes = [q for q in possible_quotes if q in _MULTI_QUOTES]
+ possible_quotes = [q for q in possible_quotes if q not in escaped_string]
+ if not possible_quotes:
+ # If there aren't any possible_quotes, fallback to using repr
+ # on the original string. Try to use a quote from quote_types,
+ # e.g., so that we use triple quotes for docstrings.
+ string = repr(string)
+ quote = next((q for q in quote_types if string[0] in q), string[0])
+ return string[1:-1], [quote]
+ if escaped_string:
+ # Sort so that we prefer '''"''' over """\""""
+ possible_quotes.sort(key=lambda q: q[0] == escaped_string[-1])
+ # If we're using triple quotes and we'd need to escape a final
+ # quote, escape it
+ if possible_quotes[0][0] == escaped_string[-1]:
+ assert len(possible_quotes[0]) == 3
+ escaped_string = escaped_string[:-1] + "\\" + escaped_string[-1]
+ return escaped_string, possible_quotes
+
+ def _write_str_avoiding_backslashes(self, string, *, quote_types=_ALL_QUOTES):
+ """Write string literal value with a best effort attempt to avoid backslashes."""
+ string, quote_types = self._str_literal_helper(string, quote_types=quote_types)
+ quote_type = quote_types[0]
+ self.write(f"{quote_type}{string}{quote_type}")
+
+ def visit_JoinedStr(self, node):
+ self.write("f")
+ if self._avoid_backslashes:
+ self._fstring_JoinedStr(node, self.buffer_writer)
+ self._write_str_avoiding_backslashes(self.buffer)
+ return
+
+ # If we don't need to avoid backslashes globally (i.e., we only need
+ # to avoid them inside FormattedValues), it's cosmetically preferred
+ # to use escaped whitespace. That is, it's preferred to use backslashes
+ # for cases like: f"{x}\n". To accomplish this, we keep track of what
+ # in our buffer corresponds to FormattedValues and what corresponds to
+ # Constant parts of the f-string, and allow escapes accordingly.
+ buffer = []
+ for value in node.values:
+ meth = getattr(self, "_fstring_" + type(value).__name__)
+ meth(value, self.buffer_writer)
+ buffer.append((self.buffer, isinstance(value, Constant)))
+ new_buffer = []
+ quote_types = _ALL_QUOTES
+ for value, is_constant in buffer:
+ # Repeatedly narrow down the list of possible quote_types
+ value, quote_types = self._str_literal_helper(
+ value, quote_types=quote_types,
+ escape_special_whitespace=is_constant
+ )
+ new_buffer.append(value)
+ value = "".join(new_buffer)
+ quote_type = quote_types[0]
+ self.write(f"{quote_type}{value}{quote_type}")
+
+ def visit_FormattedValue(self, node):
+ self.write("f")
+ self._fstring_FormattedValue(node, self.buffer_writer)
+ self._write_str_avoiding_backslashes(self.buffer)
+
+ def _fstring_JoinedStr(self, node, write):
+ for value in node.values:
+ meth = getattr(self, "_fstring_" + type(value).__name__)
+ meth(value, write)
+
+ def _fstring_Constant(self, node, write):
+ if not isinstance(node.value, str):
+ raise ValueError("Constants inside JoinedStr should be a string.")
+ value = node.value.replace("{", "{{").replace("}", "}}")
+ write(value)
+
+ def _fstring_FormattedValue(self, node, write):
+ write("{")
+ unparser = type(self)(_avoid_backslashes=True)
+ unparser.set_precedence(_Precedence.TEST.next(), node.value)
+ expr = unparser.visit(node.value)
+ if expr.startswith("{"):
+ write(" ") # Separate pair of opening brackets as "{ {"
+ if "\\" in expr:
+ raise ValueError("Unable to avoid backslash in f-string expression part")
+ write(expr)
+ if node.conversion != -1:
+ conversion = chr(node.conversion)
+ if conversion not in "sra":
+ raise ValueError("Unknown f-string conversion.")
+ write(f"!{conversion}")
+ if node.format_spec:
+ write(":")
+ meth = getattr(self, "_fstring_" + type(node.format_spec).__name__)
+ meth(node.format_spec, write)
+ write("}")
+
+ def visit_Name(self, node):
+ self.write(node.id)
+
+ def _write_docstring(self, node):
+ self.fill()
+ if node.kind == "u":
+ self.write("u")
+ self._write_str_avoiding_backslashes(node.value, quote_types=_MULTI_QUOTES)
+
+ def _write_constant(self, value):
+ if isinstance(value, (float, complex)):
+ # Substitute overflowing decimal literal for AST infinities,
+ # and inf - inf for NaNs.
+ self.write(
+ repr(value)
+ .replace("inf", _INFSTR)
+ .replace("nan", f"({_INFSTR}-{_INFSTR})")
+ )
+ elif self._avoid_backslashes and isinstance(value, str):
+ self._write_str_avoiding_backslashes(value)
+ else:
+ self.write(repr(value))
+
+ def visit_Constant(self, node):
+ value = node.value
+ if isinstance(value, tuple):
+ with self.delimit("(", ")"):
+ self.items_view(self._write_constant, value)
+ elif value is ...:
+ self.write("...")
+ else:
+ if node.kind == "u":
+ self.write("u")
+ self._write_constant(node.value)
+
+ def visit_List(self, node):
+ with self.delimit("[", "]"):
+ self.interleave(lambda: self.write(", "), self.traverse, node.elts)
+
+ def visit_ListComp(self, node):
+ with self.delimit("[", "]"):
+ self.traverse(node.elt)
+ for gen in node.generators:
+ self.traverse(gen)
+
+ def visit_GeneratorExp(self, node):
+ with self.delimit("(", ")"):
+ self.traverse(node.elt)
+ for gen in node.generators:
+ self.traverse(gen)
+
+ def visit_SetComp(self, node):
+ with self.delimit("{", "}"):
+ self.traverse(node.elt)
+ for gen in node.generators:
+ self.traverse(gen)
+
+ def visit_DictComp(self, node):
+ with self.delimit("{", "}"):
+ self.traverse(node.key)
+ self.write(": ")
+ self.traverse(node.value)
+ for gen in node.generators:
+ self.traverse(gen)
+
+ def visit_comprehension(self, node):
+ if node.is_async:
+ self.write(" async for ")
+ else:
+ self.write(" for ")
+ self.set_precedence(_Precedence.TUPLE, node.target)
+ self.traverse(node.target)
+ self.write(" in ")
+ self.set_precedence(_Precedence.TEST.next(), node.iter, *node.ifs)
+ self.traverse(node.iter)
+ for if_clause in node.ifs:
+ self.write(" if ")
+ self.traverse(if_clause)
+
+ def visit_IfExp(self, node):
+ with self.require_parens(_Precedence.TEST, node):
+ self.set_precedence(_Precedence.TEST.next(), node.body, node.test)
+ self.traverse(node.body)
+ self.write(" if ")
+ self.traverse(node.test)
+ self.write(" else ")
+ self.set_precedence(_Precedence.TEST, node.orelse)
+ self.traverse(node.orelse)
+
+ def visit_Set(self, node):
+ if node.elts:
+ with self.delimit("{", "}"):
+ self.interleave(lambda: self.write(", "), self.traverse, node.elts)
+ else:
+ # `{}` would be interpreted as a dictionary literal, and
+ # `set` might be shadowed. Thus:
+ self.write('{*()}')
+
+ def visit_Dict(self, node):
+ def write_key_value_pair(k, v):
+ self.traverse(k)
+ self.write(": ")
+ self.traverse(v)
+
+ def write_item(item):
+ k, v = item
+ if k is None:
+ # for dictionary unpacking operator in dicts {**{'y': 2}}
+ # see PEP 448 for details
+ self.write("**")
+ self.set_precedence(_Precedence.EXPR, v)
+ self.traverse(v)
+ else:
+ write_key_value_pair(k, v)
+
+ with self.delimit("{", "}"):
+ self.interleave(
+ lambda: self.write(", "), write_item, zip(node.keys, node.values)
+ )
+
+ def visit_Tuple(self, node):
+ with self.delimit("(", ")"):
+ self.items_view(self.traverse, node.elts)
+
+ unop = {"Invert": "~", "Not": "not", "UAdd": "+", "USub": "-"}
+ unop_precedence = {
+ "not": _Precedence.NOT,
+ "~": _Precedence.FACTOR,
+ "+": _Precedence.FACTOR,
+ "-": _Precedence.FACTOR,
+ }
+
+ def visit_UnaryOp(self, node):
+ operator = self.unop[node.op.__class__.__name__]
+ operator_precedence = self.unop_precedence[operator]
+ with self.require_parens(operator_precedence, node):
+ self.write(operator)
+ # factor prefixes (+, -, ~) shouldn't be seperated
+ # from the value they belong, (e.g: +1 instead of + 1)
+ if operator_precedence is not _Precedence.FACTOR:
+ self.write(" ")
+ self.set_precedence(operator_precedence, node.operand)
+ self.traverse(node.operand)
+
+ binop = {
+ "Add": "+",
+ "Sub": "-",
+ "Mult": "*",
+ "MatMult": "@",
+ "Div": "/",
+ "Mod": "%",
+ "LShift": "<<",
+ "RShift": ">>",
+ "BitOr": "|",
+ "BitXor": "^",
+ "BitAnd": "&",
+ "FloorDiv": "//",
+ "Pow": "**",
+ }
+
+ binop_precedence = {
+ "+": _Precedence.ARITH,
+ "-": _Precedence.ARITH,
+ "*": _Precedence.TERM,
+ "@": _Precedence.TERM,
+ "/": _Precedence.TERM,
+ "%": _Precedence.TERM,
+ "<<": _Precedence.SHIFT,
+ ">>": _Precedence.SHIFT,
+ "|": _Precedence.BOR,
+ "^": _Precedence.BXOR,
+ "&": _Precedence.BAND,
+ "//": _Precedence.TERM,
+ "**": _Precedence.POWER,
+ }
+
+ binop_rassoc = frozenset(("**",))
+ def visit_BinOp(self, node):
+ operator = self.binop[node.op.__class__.__name__]
+ operator_precedence = self.binop_precedence[operator]
+ with self.require_parens(operator_precedence, node):
+ if operator in self.binop_rassoc:
+ left_precedence = operator_precedence.next()
+ right_precedence = operator_precedence
+ else:
+ left_precedence = operator_precedence
+ right_precedence = operator_precedence.next()
+
+ self.set_precedence(left_precedence, node.left)
+ self.traverse(node.left)
+ self.write(f" {operator} ")
+ self.set_precedence(right_precedence, node.right)
+ self.traverse(node.right)
+
+ cmpops = {
+ "Eq": "==",
+ "NotEq": "!=",
+ "Lt": "<",
+ "LtE": "<=",
+ "Gt": ">",
+ "GtE": ">=",
+ "Is": "is",
+ "IsNot": "is not",
+ "In": "in",
+ "NotIn": "not in",
+ }
+
+ def visit_Compare(self, node):
+ with self.require_parens(_Precedence.CMP, node):
+ self.set_precedence(_Precedence.CMP.next(), node.left, *node.comparators)
+ self.traverse(node.left)
+ for o, e in zip(node.ops, node.comparators):
+ self.write(" " + self.cmpops[o.__class__.__name__] + " ")
+ self.traverse(e)
+
+ boolops = {"And": "and", "Or": "or"}
+ boolop_precedence = {"and": _Precedence.AND, "or": _Precedence.OR}
+
+ def visit_BoolOp(self, node):
+ operator = self.boolops[node.op.__class__.__name__]
+ operator_precedence = self.boolop_precedence[operator]
+
+ def increasing_level_traverse(node):
+ nonlocal operator_precedence
+ operator_precedence = operator_precedence.next()
+ self.set_precedence(operator_precedence, node)
+ self.traverse(node)
+
+ with self.require_parens(operator_precedence, node):
+ s = f" {operator} "
+ self.interleave(lambda: self.write(s), increasing_level_traverse, node.values)
+
+ def visit_Attribute(self, node):
+ self.set_precedence(_Precedence.ATOM, node.value)
+ self.traverse(node.value)
+ # Special case: 3.__abs__() is a syntax error, so if node.value
+ # is an integer literal then we need to either parenthesize
+ # it or add an extra space to get 3 .__abs__().
+ if isinstance(node.value, Constant) and isinstance(node.value.value, int):
+ self.write(" ")
+ self.write(".")
+ self.write(node.attr)
+
+ def visit_Call(self, node):
+ self.set_precedence(_Precedence.ATOM, node.func)
+ self.traverse(node.func)
+ with self.delimit("(", ")"):
+ comma = False
+ for e in node.args:
+ if comma:
+ self.write(", ")
+ else:
+ comma = True
+ self.traverse(e)
+ for e in node.keywords:
+ if comma:
+ self.write(", ")
+ else:
+ comma = True
+ self.traverse(e)
+
+ def visit_Subscript(self, node):
+ def is_simple_tuple(slice_value):
+ # when unparsing a non-empty tuple, the parentheses can be safely
+ # omitted if there aren't any elements that explicitly requires
+ # parentheses (such as starred expressions).
+ return (
+ isinstance(slice_value, Tuple)
+ and slice_value.elts
+ and not any(isinstance(elt, Starred) for elt in slice_value.elts)
+ )
+
+ self.set_precedence(_Precedence.ATOM, node.value)
+ self.traverse(node.value)
+ with self.delimit("[", "]"):
+ if is_simple_tuple(node.slice):
+ self.items_view(self.traverse, node.slice.elts)
+ else:
+ self.traverse(node.slice)
+
+ def visit_Starred(self, node):
+ self.write("*")
+ self.set_precedence(_Precedence.EXPR, node.value)
+ self.traverse(node.value)
+
+ def visit_Ellipsis(self, node):
+ self.write("...")
+
+ def visit_Slice(self, node):
+ if node.lower:
+ self.traverse(node.lower)
+ self.write(":")
+ if node.upper:
+ self.traverse(node.upper)
+ if node.step:
+ self.write(":")
+ self.traverse(node.step)
+
+ def visit_arg(self, node):
+ self.write(node.arg)
+ if node.annotation:
+ self.write(": ")
+ self.traverse(node.annotation)
+
+ def visit_arguments(self, node):
+ first = True
+ # normal arguments
+ all_args = node.posonlyargs + node.args
+ defaults = [None] * (len(all_args) - len(node.defaults)) + node.defaults
+ for index, elements in enumerate(zip(all_args, defaults), 1):
+ a, d = elements
+ if first:
+ first = False
+ else:
+ self.write(", ")
+ self.traverse(a)
+ if d:
+ self.write("=")
+ self.traverse(d)
+ if index == len(node.posonlyargs):
+ self.write(", /")
+
+ # varargs, or bare '*' if no varargs but keyword-only arguments present
+ if node.vararg or node.kwonlyargs:
+ if first:
+ first = False
+ else:
+ self.write(", ")
+ self.write("*")
+ if node.vararg:
+ self.write(node.vararg.arg)
+ if node.vararg.annotation:
+ self.write(": ")
+ self.traverse(node.vararg.annotation)
+
+ # keyword-only arguments
+ if node.kwonlyargs:
+ for a, d in zip(node.kwonlyargs, node.kw_defaults):
+ self.write(", ")
+ self.traverse(a)
+ if d:
+ self.write("=")
+ self.traverse(d)
+
+ # kwargs
+ if node.kwarg:
+ if first:
+ first = False
+ else:
+ self.write(", ")
+ self.write("**" + node.kwarg.arg)
+ if node.kwarg.annotation:
+ self.write(": ")
+ self.traverse(node.kwarg.annotation)
+
+ def visit_keyword(self, node):
+ if node.arg is None:
+ self.write("**")
+ else:
+ self.write(node.arg)
+ self.write("=")
+ self.traverse(node.value)
+
+ def visit_Lambda(self, node):
+ with self.require_parens(_Precedence.TEST, node):
+ self.write("lambda ")
+ self.traverse(node.args)
+ self.write(": ")
+ self.set_precedence(_Precedence.TEST, node.body)
+ self.traverse(node.body)
+
+ def visit_alias(self, node):
+ self.write(node.name)
+ if node.asname:
+ self.write(" as " + node.asname)
+
+ def visit_withitem(self, node):
+ self.traverse(node.context_expr)
+ if node.optional_vars:
+ self.write(" as ")
+ self.traverse(node.optional_vars)
+
+def unparse(ast_obj):
+ unparser = _Unparser()
+ return unparser.visit(ast_obj)
+
+
+def main():
+ import argparse
+
+ parser = argparse.ArgumentParser(prog='python -m ast')
+ parser.add_argument('infile', type=argparse.FileType(mode='rb'), nargs='?',
+ default='-',
+ help='the file to parse; defaults to stdin')
+ parser.add_argument('-m', '--mode', default='exec',
+ choices=('exec', 'single', 'eval', 'func_type'),
+ help='specify what kind of code must be parsed')
+ parser.add_argument('--no-type-comments', default=True, action='store_false',
+ help="don't add information about type comments")
+ parser.add_argument('-a', '--include-attributes', action='store_true',
+ help='include attributes such as line numbers and '
+ 'column offsets')
+ parser.add_argument('-i', '--indent', type=int, default=3,
+ help='indentation of nodes (number of spaces)')
+ args = parser.parse_args()
+
+ with args.infile as infile:
+ source = infile.read()
+ tree = parse(source, args.infile.name, args.mode, type_comments=args.no_type_comments)
+ print(dump(tree, include_attributes=args.include_attributes, indent=args.indent))
+
+if __name__ == '__main__':
+ main()
diff --git a/contrib/tools/python3/src/Lib/asynchat.py b/contrib/tools/python3/src/Lib/asynchat.py
index 898d305d7d..f4ba361bd4 100644
--- a/contrib/tools/python3/src/Lib/asynchat.py
+++ b/contrib/tools/python3/src/Lib/asynchat.py
@@ -117,7 +117,7 @@ class async_chat(asyncore.dispatcher):
data = self.recv(self.ac_in_buffer_size)
except BlockingIOError:
return
- except OSError:
+ except OSError:
self.handle_error()
return
diff --git a/contrib/tools/python3/src/Lib/asyncio/__init__.py b/contrib/tools/python3/src/Lib/asyncio/__init__.py
index 8a90986b0b..eb84bfb189 100644
--- a/contrib/tools/python3/src/Lib/asyncio/__init__.py
+++ b/contrib/tools/python3/src/Lib/asyncio/__init__.py
@@ -8,7 +8,7 @@ import sys
from .base_events import *
from .coroutines import *
from .events import *
-from .exceptions import *
+from .exceptions import *
from .futures import *
from .locks import *
from .protocols import *
@@ -17,7 +17,7 @@ from .queues import *
from .streams import *
from .subprocess import *
from .tasks import *
-from .threads import *
+from .threads import *
from .transports import *
# Exposed for _asynciomodule.c to implement now deprecated
@@ -27,7 +27,7 @@ from .tasks import _all_tasks_compat # NoQA
__all__ = (base_events.__all__ +
coroutines.__all__ +
events.__all__ +
- exceptions.__all__ +
+ exceptions.__all__ +
futures.__all__ +
locks.__all__ +
protocols.__all__ +
@@ -36,7 +36,7 @@ __all__ = (base_events.__all__ +
streams.__all__ +
subprocess.__all__ +
tasks.__all__ +
- threads.__all__ +
+ threads.__all__ +
transports.__all__)
if sys.platform == 'win32': # pragma: no cover
diff --git a/contrib/tools/python3/src/Lib/asyncio/__main__.py b/contrib/tools/python3/src/Lib/asyncio/__main__.py
index abe8e722dd..18bb87a5bc 100644
--- a/contrib/tools/python3/src/Lib/asyncio/__main__.py
+++ b/contrib/tools/python3/src/Lib/asyncio/__main__.py
@@ -1,125 +1,125 @@
-import ast
-import asyncio
-import code
-import concurrent.futures
-import inspect
-import sys
-import threading
-import types
-import warnings
-
-from . import futures
-
-
-class AsyncIOInteractiveConsole(code.InteractiveConsole):
-
- def __init__(self, locals, loop):
- super().__init__(locals)
- self.compile.compiler.flags |= ast.PyCF_ALLOW_TOP_LEVEL_AWAIT
-
- self.loop = loop
-
- def runcode(self, code):
- future = concurrent.futures.Future()
-
- def callback():
- global repl_future
- global repl_future_interrupted
-
- repl_future = None
- repl_future_interrupted = False
-
- func = types.FunctionType(code, self.locals)
- try:
- coro = func()
- except SystemExit:
- raise
- except KeyboardInterrupt as ex:
- repl_future_interrupted = True
- future.set_exception(ex)
- return
- except BaseException as ex:
- future.set_exception(ex)
- return
-
- if not inspect.iscoroutine(coro):
- future.set_result(coro)
- return
-
- try:
- repl_future = self.loop.create_task(coro)
- futures._chain_future(repl_future, future)
- except BaseException as exc:
- future.set_exception(exc)
-
- loop.call_soon_threadsafe(callback)
-
- try:
- return future.result()
- except SystemExit:
- raise
- except BaseException:
- if repl_future_interrupted:
- self.write("\nKeyboardInterrupt\n")
- else:
- self.showtraceback()
-
-
-class REPLThread(threading.Thread):
-
- def run(self):
- try:
- banner = (
- f'asyncio REPL {sys.version} on {sys.platform}\n'
- f'Use "await" directly instead of "asyncio.run()".\n'
- f'Type "help", "copyright", "credits" or "license" '
- f'for more information.\n'
- f'{getattr(sys, "ps1", ">>> ")}import asyncio'
- )
-
- console.interact(
- banner=banner,
- exitmsg='exiting asyncio REPL...')
- finally:
- warnings.filterwarnings(
- 'ignore',
- message=r'^coroutine .* was never awaited$',
- category=RuntimeWarning)
-
- loop.call_soon_threadsafe(loop.stop)
-
-
-if __name__ == '__main__':
- loop = asyncio.new_event_loop()
- asyncio.set_event_loop(loop)
-
- repl_locals = {'asyncio': asyncio}
- for key in {'__name__', '__package__',
- '__loader__', '__spec__',
- '__builtins__', '__file__'}:
- repl_locals[key] = locals()[key]
-
- console = AsyncIOInteractiveConsole(repl_locals, loop)
-
- repl_future = None
- repl_future_interrupted = False
-
- try:
- import readline # NoQA
- except ImportError:
- pass
-
- repl_thread = REPLThread()
- repl_thread.daemon = True
- repl_thread.start()
-
- while True:
- try:
- loop.run_forever()
- except KeyboardInterrupt:
- if repl_future and not repl_future.done():
- repl_future.cancel()
- repl_future_interrupted = True
- continue
- else:
- break
+import ast
+import asyncio
+import code
+import concurrent.futures
+import inspect
+import sys
+import threading
+import types
+import warnings
+
+from . import futures
+
+
+class AsyncIOInteractiveConsole(code.InteractiveConsole):
+
+ def __init__(self, locals, loop):
+ super().__init__(locals)
+ self.compile.compiler.flags |= ast.PyCF_ALLOW_TOP_LEVEL_AWAIT
+
+ self.loop = loop
+
+ def runcode(self, code):
+ future = concurrent.futures.Future()
+
+ def callback():
+ global repl_future
+ global repl_future_interrupted
+
+ repl_future = None
+ repl_future_interrupted = False
+
+ func = types.FunctionType(code, self.locals)
+ try:
+ coro = func()
+ except SystemExit:
+ raise
+ except KeyboardInterrupt as ex:
+ repl_future_interrupted = True
+ future.set_exception(ex)
+ return
+ except BaseException as ex:
+ future.set_exception(ex)
+ return
+
+ if not inspect.iscoroutine(coro):
+ future.set_result(coro)
+ return
+
+ try:
+ repl_future = self.loop.create_task(coro)
+ futures._chain_future(repl_future, future)
+ except BaseException as exc:
+ future.set_exception(exc)
+
+ loop.call_soon_threadsafe(callback)
+
+ try:
+ return future.result()
+ except SystemExit:
+ raise
+ except BaseException:
+ if repl_future_interrupted:
+ self.write("\nKeyboardInterrupt\n")
+ else:
+ self.showtraceback()
+
+
+class REPLThread(threading.Thread):
+
+ def run(self):
+ try:
+ banner = (
+ f'asyncio REPL {sys.version} on {sys.platform}\n'
+ f'Use "await" directly instead of "asyncio.run()".\n'
+ f'Type "help", "copyright", "credits" or "license" '
+ f'for more information.\n'
+ f'{getattr(sys, "ps1", ">>> ")}import asyncio'
+ )
+
+ console.interact(
+ banner=banner,
+ exitmsg='exiting asyncio REPL...')
+ finally:
+ warnings.filterwarnings(
+ 'ignore',
+ message=r'^coroutine .* was never awaited$',
+ category=RuntimeWarning)
+
+ loop.call_soon_threadsafe(loop.stop)
+
+
+if __name__ == '__main__':
+ loop = asyncio.new_event_loop()
+ asyncio.set_event_loop(loop)
+
+ repl_locals = {'asyncio': asyncio}
+ for key in {'__name__', '__package__',
+ '__loader__', '__spec__',
+ '__builtins__', '__file__'}:
+ repl_locals[key] = locals()[key]
+
+ console = AsyncIOInteractiveConsole(repl_locals, loop)
+
+ repl_future = None
+ repl_future_interrupted = False
+
+ try:
+ import readline # NoQA
+ except ImportError:
+ pass
+
+ repl_thread = REPLThread()
+ repl_thread.daemon = True
+ repl_thread.start()
+
+ while True:
+ try:
+ loop.run_forever()
+ except KeyboardInterrupt:
+ if repl_future and not repl_future.done():
+ repl_future.cancel()
+ repl_future_interrupted = True
+ continue
+ else:
+ break
diff --git a/contrib/tools/python3/src/Lib/asyncio/base_events.py b/contrib/tools/python3/src/Lib/asyncio/base_events.py
index 34fdbf2146..8c1fb49694 100644
--- a/contrib/tools/python3/src/Lib/asyncio/base_events.py
+++ b/contrib/tools/python3/src/Lib/asyncio/base_events.py
@@ -16,12 +16,12 @@ to modify the meaning of the API call itself.
import collections
import collections.abc
import concurrent.futures
-import functools
+import functools
import heapq
import itertools
import os
import socket
-import stat
+import stat
import subprocess
import threading
import time
@@ -38,14 +38,14 @@ except ImportError: # pragma: no cover
from . import constants
from . import coroutines
from . import events
-from . import exceptions
+from . import exceptions
from . import futures
from . import protocols
from . import sslproto
-from . import staggered
+from . import staggered
from . import tasks
from . import transports
-from . import trsock
+from . import trsock
from .log import logger
@@ -60,17 +60,17 @@ _MIN_SCHEDULED_TIMER_HANDLES = 100
# before cleanup of cancelled handles is performed.
_MIN_CANCELLED_TIMER_HANDLES_FRACTION = 0.5
-
+
_HAS_IPv6 = hasattr(socket, 'AF_INET6')
# Maximum timeout passed to select to avoid OS limitations
MAXIMUM_SELECT_TIMEOUT = 24 * 3600
-# Used for deprecation and removal of `loop.create_datagram_endpoint()`'s
-# *reuse_address* parameter
-_unset = object()
+# Used for deprecation and removal of `loop.create_datagram_endpoint()`'s
+# *reuse_address* parameter
+_unset = object()
+
-
def _format_handle(handle):
cb = handle._callback
if isinstance(getattr(cb, '__self__', None), tasks.Task):
@@ -100,7 +100,7 @@ def _set_reuseport(sock):
'SO_REUSEPORT defined but not implemented.')
-def _ipaddr_info(host, port, family, type, proto, flowinfo=0, scopeid=0):
+def _ipaddr_info(host, port, family, type, proto, flowinfo=0, scopeid=0):
# Try to skip getaddrinfo if "host" is already an IP. Users might have
# handled name resolution in their own code and pass in resolved IPs.
if not hasattr(socket, 'inet_pton'):
@@ -149,7 +149,7 @@ def _ipaddr_info(host, port, family, type, proto, flowinfo=0, scopeid=0):
socket.inet_pton(af, host)
# The host has already been resolved.
if _HAS_IPv6 and af == socket.AF_INET6:
- return af, type, proto, '', (host, port, flowinfo, scopeid)
+ return af, type, proto, '', (host, port, flowinfo, scopeid)
else:
return af, type, proto, '', (host, port)
except OSError:
@@ -159,32 +159,32 @@ def _ipaddr_info(host, port, family, type, proto, flowinfo=0, scopeid=0):
return None
-def _interleave_addrinfos(addrinfos, first_address_family_count=1):
- """Interleave list of addrinfo tuples by family."""
- # Group addresses by family
- addrinfos_by_family = collections.OrderedDict()
- for addr in addrinfos:
- family = addr[0]
- if family not in addrinfos_by_family:
- addrinfos_by_family[family] = []
- addrinfos_by_family[family].append(addr)
- addrinfos_lists = list(addrinfos_by_family.values())
-
- reordered = []
- if first_address_family_count > 1:
- reordered.extend(addrinfos_lists[0][:first_address_family_count - 1])
- del addrinfos_lists[0][:first_address_family_count - 1]
- reordered.extend(
- a for a in itertools.chain.from_iterable(
- itertools.zip_longest(*addrinfos_lists)
- ) if a is not None)
- return reordered
-
-
+def _interleave_addrinfos(addrinfos, first_address_family_count=1):
+ """Interleave list of addrinfo tuples by family."""
+ # Group addresses by family
+ addrinfos_by_family = collections.OrderedDict()
+ for addr in addrinfos:
+ family = addr[0]
+ if family not in addrinfos_by_family:
+ addrinfos_by_family[family] = []
+ addrinfos_by_family[family].append(addr)
+ addrinfos_lists = list(addrinfos_by_family.values())
+
+ reordered = []
+ if first_address_family_count > 1:
+ reordered.extend(addrinfos_lists[0][:first_address_family_count - 1])
+ del addrinfos_lists[0][:first_address_family_count - 1]
+ reordered.extend(
+ a for a in itertools.chain.from_iterable(
+ itertools.zip_longest(*addrinfos_lists)
+ ) if a is not None)
+ return reordered
+
+
def _run_until_complete_cb(fut):
if not fut.cancelled():
exc = fut.exception()
- if isinstance(exc, (SystemExit, KeyboardInterrupt)):
+ if isinstance(exc, (SystemExit, KeyboardInterrupt)):
# Issue #22429: run_forever() already finished, no need to
# stop it.
return
@@ -324,8 +324,8 @@ class Server(events.AbstractServer):
@property
def sockets(self):
if self._sockets is None:
- return ()
- return tuple(trsock.TransportSocket(s) for s in self._sockets)
+ return ()
+ return tuple(trsock.TransportSocket(s) for s in self._sockets)
def close(self):
sockets = self._sockets
@@ -350,7 +350,7 @@ class Server(events.AbstractServer):
self._start_serving()
# Skip one loop iteration so that all 'loop.add_reader'
# go through.
- await tasks.sleep(0)
+ await tasks.sleep(0)
async def serve_forever(self):
if self._serving_forever_fut is not None:
@@ -364,7 +364,7 @@ class Server(events.AbstractServer):
try:
await self._serving_forever_fut
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
try:
self.close()
await self.wait_closed()
@@ -410,8 +410,8 @@ class BaseEventLoop(events.AbstractEventLoop):
self._asyncgens = weakref.WeakSet()
# Set to True when `loop.shutdown_asyncgens` is called.
self._asyncgens_shutdown_called = False
- # Set to True when `loop.shutdown_default_executor` is called.
- self._executor_shutdown_called = False
+ # Set to True when `loop.shutdown_default_executor` is called.
+ self._executor_shutdown_called = False
def __repr__(self):
return (
@@ -423,20 +423,20 @@ class BaseEventLoop(events.AbstractEventLoop):
"""Create a Future object attached to the loop."""
return futures.Future(loop=self)
- def create_task(self, coro, *, name=None):
+ def create_task(self, coro, *, name=None):
"""Schedule a coroutine object.
Return a task object.
"""
self._check_closed()
if self._task_factory is None:
- task = tasks.Task(coro, loop=self, name=name)
+ task = tasks.Task(coro, loop=self, name=name)
if task._source_traceback:
del task._source_traceback[-1]
else:
task = self._task_factory(self, coro)
- tasks._set_task_name(task, name)
-
+ tasks._set_task_name(task, name)
+
return task
def set_task_factory(self, factory):
@@ -509,10 +509,10 @@ class BaseEventLoop(events.AbstractEventLoop):
if self._closed:
raise RuntimeError('Event loop is closed')
- def _check_default_executor(self):
- if self._executor_shutdown_called:
- raise RuntimeError('Executor shutdown has been called')
-
+ def _check_default_executor(self):
+ if self._executor_shutdown_called:
+ raise RuntimeError('Executor shutdown has been called')
+
def _asyncgen_finalizer_hook(self, agen):
self._asyncgens.discard(agen)
if not self.is_closed():
@@ -539,7 +539,7 @@ class BaseEventLoop(events.AbstractEventLoop):
closing_agens = list(self._asyncgens)
self._asyncgens.clear()
- results = await tasks._gather(
+ results = await tasks._gather(
*[ag.aclose() for ag in closing_agens],
return_exceptions=True,
loop=self)
@@ -553,37 +553,37 @@ class BaseEventLoop(events.AbstractEventLoop):
'asyncgen': agen
})
- async def shutdown_default_executor(self):
- """Schedule the shutdown of the default executor."""
- self._executor_shutdown_called = True
- if self._default_executor is None:
- return
- future = self.create_future()
- thread = threading.Thread(target=self._do_shutdown, args=(future,))
- thread.start()
- try:
- await future
- finally:
- thread.join()
-
- def _do_shutdown(self, future):
- try:
- self._default_executor.shutdown(wait=True)
- self.call_soon_threadsafe(future.set_result, None)
- except Exception as ex:
- self.call_soon_threadsafe(future.set_exception, ex)
-
- def _check_running(self):
+ async def shutdown_default_executor(self):
+ """Schedule the shutdown of the default executor."""
+ self._executor_shutdown_called = True
+ if self._default_executor is None:
+ return
+ future = self.create_future()
+ thread = threading.Thread(target=self._do_shutdown, args=(future,))
+ thread.start()
+ try:
+ await future
+ finally:
+ thread.join()
+
+ def _do_shutdown(self, future):
+ try:
+ self._default_executor.shutdown(wait=True)
+ self.call_soon_threadsafe(future.set_result, None)
+ except Exception as ex:
+ self.call_soon_threadsafe(future.set_exception, ex)
+
+ def _check_running(self):
if self.is_running():
raise RuntimeError('This event loop is already running')
if events._get_running_loop() is not None:
raise RuntimeError(
'Cannot run the event loop while another loop is running')
-
- def run_forever(self):
- """Run until stop() is called."""
- self._check_closed()
- self._check_running()
+
+ def run_forever(self):
+ """Run until stop() is called."""
+ self._check_closed()
+ self._check_running()
self._set_coroutine_origin_tracking(self._debug)
self._thread_id = threading.get_ident()
@@ -615,7 +615,7 @@ class BaseEventLoop(events.AbstractEventLoop):
Return the Future's result, or raise its exception.
"""
self._check_closed()
- self._check_running()
+ self._check_running()
new_task = not futures.isfuture(future)
future = tasks.ensure_future(future, loop=self)
@@ -666,7 +666,7 @@ class BaseEventLoop(events.AbstractEventLoop):
self._closed = True
self._ready.clear()
self._scheduled.clear()
- self._executor_shutdown_called = True
+ self._executor_shutdown_called = True
executor = self._default_executor
if executor is not None:
self._default_executor = None
@@ -676,9 +676,9 @@ class BaseEventLoop(events.AbstractEventLoop):
"""Returns True if the event loop was closed."""
return self._closed
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if not self.is_closed():
- _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
if not self.is_running():
self.close()
@@ -803,23 +803,23 @@ class BaseEventLoop(events.AbstractEventLoop):
self._check_callback(func, 'run_in_executor')
if executor is None:
executor = self._default_executor
- # Only check when the default executor is being used
- self._check_default_executor()
+ # Only check when the default executor is being used
+ self._check_default_executor()
if executor is None:
- executor = concurrent.futures.ThreadPoolExecutor(
- thread_name_prefix='asyncio'
- )
+ executor = concurrent.futures.ThreadPoolExecutor(
+ thread_name_prefix='asyncio'
+ )
self._default_executor = executor
return futures.wrap_future(
executor.submit(func, *args), loop=self)
def set_default_executor(self, executor):
- if not isinstance(executor, concurrent.futures.ThreadPoolExecutor):
- warnings.warn(
- 'Using the default executor that is not an instance of '
- 'ThreadPoolExecutor is deprecated and will be prohibited '
- 'in Python 3.9',
- DeprecationWarning, 2)
+ if not isinstance(executor, concurrent.futures.ThreadPoolExecutor):
+ warnings.warn(
+ 'Using the default executor that is not an instance of '
+ 'ThreadPoolExecutor is deprecated and will be prohibited '
+ 'in Python 3.9',
+ DeprecationWarning, 2)
self._default_executor = executor
def _getaddrinfo_debug(self, host, port, family, type, proto, flags):
@@ -868,7 +868,7 @@ class BaseEventLoop(events.AbstractEventLoop):
try:
return await self._sock_sendfile_native(sock, file,
offset, count)
- except exceptions.SendfileNotAvailableError as exc:
+ except exceptions.SendfileNotAvailableError as exc:
if not fallback:
raise
return await self._sock_sendfile_fallback(sock, file,
@@ -877,7 +877,7 @@ class BaseEventLoop(events.AbstractEventLoop):
async def _sock_sendfile_native(self, sock, file, offset, count):
# NB: sendfile syscall is not supported for SSL sockets and
# non-mmap files even if sendfile is supported by OS
- raise exceptions.SendfileNotAvailableError(
+ raise exceptions.SendfileNotAvailableError(
f"syscall sendfile is not available for socket {sock!r} "
"and file {file!r} combination")
@@ -900,7 +900,7 @@ class BaseEventLoop(events.AbstractEventLoop):
read = await self.run_in_executor(None, file.readinto, view)
if not read:
break # EOF
- await self.sock_sendall(sock, view[:read])
+ await self.sock_sendall(sock, view[:read])
total_sent += read
return total_sent
finally:
@@ -928,49 +928,49 @@ class BaseEventLoop(events.AbstractEventLoop):
"offset must be a non-negative integer (got {!r})".format(
offset))
- async def _connect_sock(self, exceptions, addr_info, local_addr_infos=None):
- """Create, bind and connect one socket."""
- my_exceptions = []
- exceptions.append(my_exceptions)
- family, type_, proto, _, address = addr_info
- sock = None
- try:
- sock = socket.socket(family=family, type=type_, proto=proto)
- sock.setblocking(False)
- if local_addr_infos is not None:
- for _, _, _, _, laddr in local_addr_infos:
- try:
- sock.bind(laddr)
- break
- except OSError as exc:
- msg = (
- f'error while attempting to bind on '
- f'address {laddr!r}: '
- f'{exc.strerror.lower()}'
- )
- exc = OSError(exc.errno, msg)
- my_exceptions.append(exc)
- else: # all bind attempts failed
- raise my_exceptions.pop()
- await self.sock_connect(sock, address)
- return sock
- except OSError as exc:
- my_exceptions.append(exc)
- if sock is not None:
- sock.close()
- raise
- except:
- if sock is not None:
- sock.close()
- raise
-
+ async def _connect_sock(self, exceptions, addr_info, local_addr_infos=None):
+ """Create, bind and connect one socket."""
+ my_exceptions = []
+ exceptions.append(my_exceptions)
+ family, type_, proto, _, address = addr_info
+ sock = None
+ try:
+ sock = socket.socket(family=family, type=type_, proto=proto)
+ sock.setblocking(False)
+ if local_addr_infos is not None:
+ for _, _, _, _, laddr in local_addr_infos:
+ try:
+ sock.bind(laddr)
+ break
+ except OSError as exc:
+ msg = (
+ f'error while attempting to bind on '
+ f'address {laddr!r}: '
+ f'{exc.strerror.lower()}'
+ )
+ exc = OSError(exc.errno, msg)
+ my_exceptions.append(exc)
+ else: # all bind attempts failed
+ raise my_exceptions.pop()
+ await self.sock_connect(sock, address)
+ return sock
+ except OSError as exc:
+ my_exceptions.append(exc)
+ if sock is not None:
+ sock.close()
+ raise
+ except:
+ if sock is not None:
+ sock.close()
+ raise
+
async def create_connection(
self, protocol_factory, host=None, port=None,
*, ssl=None, family=0,
proto=0, flags=0, sock=None,
local_addr=None, server_hostname=None,
- ssl_handshake_timeout=None,
- happy_eyeballs_delay=None, interleave=None):
+ ssl_handshake_timeout=None,
+ happy_eyeballs_delay=None, interleave=None):
"""Connect to a TCP server.
Create a streaming transport connection to a given Internet host and
@@ -1005,10 +1005,10 @@ class BaseEventLoop(events.AbstractEventLoop):
raise ValueError(
'ssl_handshake_timeout is only meaningful with ssl')
- if happy_eyeballs_delay is not None and interleave is None:
- # If using happy eyeballs, default to interleave addresses by family
- interleave = 1
-
+ if happy_eyeballs_delay is not None and interleave is None:
+ # If using happy eyeballs, default to interleave addresses by family
+ interleave = 1
+
if host is not None or port is not None:
if sock is not None:
raise ValueError(
@@ -1027,31 +1027,31 @@ class BaseEventLoop(events.AbstractEventLoop):
flags=flags, loop=self)
if not laddr_infos:
raise OSError('getaddrinfo() returned empty list')
- else:
- laddr_infos = None
+ else:
+ laddr_infos = None
+
+ if interleave:
+ infos = _interleave_addrinfos(infos, interleave)
- if interleave:
- infos = _interleave_addrinfos(infos, interleave)
-
exceptions = []
- if happy_eyeballs_delay is None:
- # not using happy eyeballs
- for addrinfo in infos:
- try:
- sock = await self._connect_sock(
- exceptions, addrinfo, laddr_infos)
- break
- except OSError:
- continue
- else: # using happy eyeballs
- sock, _, _ = await staggered.staggered_race(
- (functools.partial(self._connect_sock,
- exceptions, addrinfo, laddr_infos)
- for addrinfo in infos),
- happy_eyeballs_delay, loop=self)
-
- if sock is None:
- exceptions = [exc for sub in exceptions for exc in sub]
+ if happy_eyeballs_delay is None:
+ # not using happy eyeballs
+ for addrinfo in infos:
+ try:
+ sock = await self._connect_sock(
+ exceptions, addrinfo, laddr_infos)
+ break
+ except OSError:
+ continue
+ else: # using happy eyeballs
+ sock, _, _ = await staggered.staggered_race(
+ (functools.partial(self._connect_sock,
+ exceptions, addrinfo, laddr_infos)
+ for addrinfo in infos),
+ happy_eyeballs_delay, loop=self)
+
+ if sock is None:
+ exceptions = [exc for sub in exceptions for exc in sub]
if len(exceptions) == 1:
raise exceptions[0]
else:
@@ -1150,7 +1150,7 @@ class BaseEventLoop(events.AbstractEventLoop):
try:
return await self._sendfile_native(transport, file,
offset, count)
- except exceptions.SendfileNotAvailableError as exc:
+ except exceptions.SendfileNotAvailableError as exc:
if not fallback:
raise
@@ -1163,7 +1163,7 @@ class BaseEventLoop(events.AbstractEventLoop):
offset, count)
async def _sendfile_native(self, transp, file, offset, count):
- raise exceptions.SendfileNotAvailableError(
+ raise exceptions.SendfileNotAvailableError(
"sendfile syscall is not supported")
async def _sendfile_fallback(self, transp, file, offset, count):
@@ -1180,11 +1180,11 @@ class BaseEventLoop(events.AbstractEventLoop):
if blocksize <= 0:
return total_sent
view = memoryview(buf)[:blocksize]
- read = await self.run_in_executor(None, file.readinto, view)
+ read = await self.run_in_executor(None, file.readinto, view)
if not read:
return total_sent # EOF
await proto.drain()
- transp.write(view[:read])
+ transp.write(view[:read])
total_sent += read
finally:
if total_sent > 0 and hasattr(file, 'seek'):
@@ -1229,7 +1229,7 @@ class BaseEventLoop(events.AbstractEventLoop):
try:
await waiter
- except BaseException:
+ except BaseException:
transport.close()
conmade_cb.cancel()
resume_cb.cancel()
@@ -1240,7 +1240,7 @@ class BaseEventLoop(events.AbstractEventLoop):
async def create_datagram_endpoint(self, protocol_factory,
local_addr=None, remote_addr=None, *,
family=0, proto=0, flags=0,
- reuse_address=_unset, reuse_port=None,
+ reuse_address=_unset, reuse_port=None,
allow_broadcast=None, sock=None):
"""Create datagram connection."""
if sock is not None:
@@ -1249,7 +1249,7 @@ class BaseEventLoop(events.AbstractEventLoop):
f'A UDP Socket was expected, got {sock!r}')
if (local_addr or remote_addr or
family or proto or flags or
- reuse_port or allow_broadcast):
+ reuse_port or allow_broadcast):
# show the problematic kwargs in exception msg
opts = dict(local_addr=local_addr, remote_addr=remote_addr,
family=family, proto=proto, flags=flags,
@@ -1270,28 +1270,28 @@ class BaseEventLoop(events.AbstractEventLoop):
for addr in (local_addr, remote_addr):
if addr is not None and not isinstance(addr, str):
raise TypeError('string is expected')
-
- if local_addr and local_addr[0] not in (0, '\x00'):
- try:
- if stat.S_ISSOCK(os.stat(local_addr).st_mode):
- os.remove(local_addr)
- except FileNotFoundError:
- pass
- except OSError as err:
- # Directory may have permissions only to create socket.
- logger.error('Unable to check or remove stale UNIX '
- 'socket %r: %r',
- local_addr, err)
-
+
+ if local_addr and local_addr[0] not in (0, '\x00'):
+ try:
+ if stat.S_ISSOCK(os.stat(local_addr).st_mode):
+ os.remove(local_addr)
+ except FileNotFoundError:
+ pass
+ except OSError as err:
+ # Directory may have permissions only to create socket.
+ logger.error('Unable to check or remove stale UNIX '
+ 'socket %r: %r',
+ local_addr, err)
+
addr_pairs_info = (((family, proto),
(local_addr, remote_addr)), )
else:
# join address by (family, protocol)
- addr_infos = {} # Using order preserving dict
+ addr_infos = {} # Using order preserving dict
for idx, addr in ((0, local_addr), (1, remote_addr)):
if addr is not None:
- if not (isinstance(addr, tuple) and len(addr) == 2):
- raise TypeError('2-tuple is expected')
+ if not (isinstance(addr, tuple) and len(addr) == 2):
+ raise TypeError('2-tuple is expected')
infos = await self._ensure_resolved(
addr, family=family, type=socket.SOCK_DGRAM,
@@ -1316,18 +1316,18 @@ class BaseEventLoop(events.AbstractEventLoop):
exceptions = []
- # bpo-37228
- if reuse_address is not _unset:
- if reuse_address:
- raise ValueError("Passing `reuse_address=True` is no "
- "longer supported, as the usage of "
- "SO_REUSEPORT in UDP poses a significant "
- "security concern.")
- else:
- warnings.warn("The *reuse_address* parameter has been "
- "deprecated as of 3.5.10 and is scheduled "
- "for removal in 3.11.", DeprecationWarning,
- stacklevel=2)
+ # bpo-37228
+ if reuse_address is not _unset:
+ if reuse_address:
+ raise ValueError("Passing `reuse_address=True` is no "
+ "longer supported, as the usage of "
+ "SO_REUSEPORT in UDP poses a significant "
+ "security concern.")
+ else:
+ warnings.warn("The *reuse_address* parameter has been "
+ "deprecated as of 3.5.10 and is scheduled "
+ "for removal in 3.11.", DeprecationWarning,
+ stacklevel=2)
for ((family, proto),
(local_address, remote_address)) in addr_pairs_info:
@@ -1346,8 +1346,8 @@ class BaseEventLoop(events.AbstractEventLoop):
if local_addr:
sock.bind(local_address)
if remote_addr:
- if not allow_broadcast:
- await self.sock_connect(sock, remote_address)
+ if not allow_broadcast:
+ await self.sock_connect(sock, remote_address)
r_addr = remote_address
except OSError as exc:
if sock is not None:
@@ -1388,7 +1388,7 @@ class BaseEventLoop(events.AbstractEventLoop):
family=0, type=socket.SOCK_STREAM,
proto=0, flags=0, loop):
host, port = address[:2]
- info = _ipaddr_info(host, port, family, type, proto, *address[2:])
+ info = _ipaddr_info(host, port, family, type, proto, *address[2:])
if info is not None:
# "host" is already a resolved IP.
return [info]
@@ -1457,7 +1457,7 @@ class BaseEventLoop(events.AbstractEventLoop):
fs = [self._create_server_getaddrinfo(host, port, family=family,
flags=flags)
for host in hosts]
- infos = await tasks._gather(*fs, loop=self)
+ infos = await tasks._gather(*fs, loop=self)
infos = set(itertools.chain.from_iterable(infos))
completed = False
@@ -1515,7 +1515,7 @@ class BaseEventLoop(events.AbstractEventLoop):
server._start_serving()
# Skip one loop iteration so that all 'loop.add_reader'
# go through.
- await tasks.sleep(0)
+ await tasks.sleep(0)
if self._debug:
logger.info("%r is serving", server)
@@ -1601,7 +1601,7 @@ class BaseEventLoop(events.AbstractEventLoop):
stderr=subprocess.PIPE,
universal_newlines=False,
shell=True, bufsize=0,
- encoding=None, errors=None, text=None,
+ encoding=None, errors=None, text=None,
**kwargs):
if not isinstance(cmd, (bytes, str)):
raise ValueError("cmd must be a string")
@@ -1611,13 +1611,13 @@ class BaseEventLoop(events.AbstractEventLoop):
raise ValueError("shell must be True")
if bufsize != 0:
raise ValueError("bufsize must be 0")
- if text:
- raise ValueError("text must be False")
- if encoding is not None:
- raise ValueError("encoding must be None")
- if errors is not None:
- raise ValueError("errors must be None")
-
+ if text:
+ raise ValueError("text must be False")
+ if encoding is not None:
+ raise ValueError("encoding must be None")
+ if errors is not None:
+ raise ValueError("errors must be None")
+
protocol = protocol_factory()
debug_log = None
if self._debug:
@@ -1634,22 +1634,22 @@ class BaseEventLoop(events.AbstractEventLoop):
async def subprocess_exec(self, protocol_factory, program, *args,
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, universal_newlines=False,
- shell=False, bufsize=0,
- encoding=None, errors=None, text=None,
- **kwargs):
+ shell=False, bufsize=0,
+ encoding=None, errors=None, text=None,
+ **kwargs):
if universal_newlines:
raise ValueError("universal_newlines must be False")
if shell:
raise ValueError("shell must be False")
if bufsize != 0:
raise ValueError("bufsize must be 0")
- if text:
- raise ValueError("text must be False")
- if encoding is not None:
- raise ValueError("encoding must be None")
- if errors is not None:
- raise ValueError("errors must be None")
-
+ if text:
+ raise ValueError("text must be False")
+ if encoding is not None:
+ raise ValueError("encoding must be None")
+ if errors is not None:
+ raise ValueError("errors must be None")
+
popen_args = (program,) + args
protocol = protocol_factory()
debug_log = None
@@ -1762,9 +1762,9 @@ class BaseEventLoop(events.AbstractEventLoop):
if self._exception_handler is None:
try:
self.default_exception_handler(context)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException:
# Second protection layer for unexpected errors
# in the default implementation, as well as for subclassed
# event loops with overloaded "default_exception_handler".
@@ -1773,9 +1773,9 @@ class BaseEventLoop(events.AbstractEventLoop):
else:
try:
self._exception_handler(self, context)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
# Exception in the user set custom exception handler.
try:
# Let's try default handler.
@@ -1784,9 +1784,9 @@ class BaseEventLoop(events.AbstractEventLoop):
'exception': exc,
'context': context,
})
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException:
# Guard 'default_exception_handler' in case it is
# overloaded.
logger.error('Exception in default exception handler '
@@ -1851,7 +1851,7 @@ class BaseEventLoop(events.AbstractEventLoop):
when = self._scheduled[0]._when
timeout = min(max(0, when - self.time()), MAXIMUM_SELECT_TIMEOUT)
- event_list = self._selector.select(timeout)
+ event_list = self._selector.select(timeout)
self._process_events(event_list)
# Handle 'later' callbacks that are ready.
diff --git a/contrib/tools/python3/src/Lib/asyncio/base_futures.py b/contrib/tools/python3/src/Lib/asyncio/base_futures.py
index 0962405d8d..2c01ac98e1 100644
--- a/contrib/tools/python3/src/Lib/asyncio/base_futures.py
+++ b/contrib/tools/python3/src/Lib/asyncio/base_futures.py
@@ -1,7 +1,7 @@
__all__ = ()
import reprlib
-from _thread import get_ident
+from _thread import get_ident
from . import format_helpers
@@ -42,16 +42,16 @@ def _format_callbacks(cb):
return f'cb=[{cb}]'
-# bpo-42183: _repr_running is needed for repr protection
-# when a Future or Task result contains itself directly or indirectly.
-# The logic is borrowed from @reprlib.recursive_repr decorator.
-# Unfortunately, the direct decorator usage is impossible because of
-# AttributeError: '_asyncio.Task' object has no attribute '__module__' error.
-#
-# After fixing this thing we can return to the decorator based approach.
-_repr_running = set()
-
-
+# bpo-42183: _repr_running is needed for repr protection
+# when a Future or Task result contains itself directly or indirectly.
+# The logic is borrowed from @reprlib.recursive_repr decorator.
+# Unfortunately, the direct decorator usage is impossible because of
+# AttributeError: '_asyncio.Task' object has no attribute '__module__' error.
+#
+# After fixing this thing we can return to the decorator based approach.
+_repr_running = set()
+
+
def _future_repr_info(future):
# (Future) -> str
"""helper function for Future.__repr__"""
@@ -60,17 +60,17 @@ def _future_repr_info(future):
if future._exception is not None:
info.append(f'exception={future._exception!r}')
else:
- key = id(future), get_ident()
- if key in _repr_running:
- result = '...'
- else:
- _repr_running.add(key)
- try:
- # use reprlib to limit the length of the output, especially
- # for very long strings
- result = reprlib.repr(future._result)
- finally:
- _repr_running.discard(key)
+ key = id(future), get_ident()
+ if key in _repr_running:
+ result = '...'
+ else:
+ _repr_running.add(key)
+ try:
+ # use reprlib to limit the length of the output, especially
+ # for very long strings
+ result = reprlib.repr(future._result)
+ finally:
+ _repr_running.discard(key)
info.append(f'result={result}')
if future._callbacks:
info.append(_format_callbacks(future._callbacks))
diff --git a/contrib/tools/python3/src/Lib/asyncio/base_subprocess.py b/contrib/tools/python3/src/Lib/asyncio/base_subprocess.py
index 05daeedd37..14d5051922 100644
--- a/contrib/tools/python3/src/Lib/asyncio/base_subprocess.py
+++ b/contrib/tools/python3/src/Lib/asyncio/base_subprocess.py
@@ -120,9 +120,9 @@ class BaseSubprocessTransport(transports.SubprocessTransport):
# Don't clear the _proc reference yet: _post_init() may still run
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if not self._closed:
- _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self.close()
def get_pid(self):
@@ -182,9 +182,9 @@ class BaseSubprocessTransport(transports.SubprocessTransport):
for callback, data in self._pending_calls:
loop.call_soon(callback, *data)
self._pending_calls = None
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
if waiter is not None and not waiter.cancelled():
waiter.set_exception(exc)
else:
diff --git a/contrib/tools/python3/src/Lib/asyncio/base_tasks.py b/contrib/tools/python3/src/Lib/asyncio/base_tasks.py
index d16f3f7be2..09bb171a2c 100644
--- a/contrib/tools/python3/src/Lib/asyncio/base_tasks.py
+++ b/contrib/tools/python3/src/Lib/asyncio/base_tasks.py
@@ -12,30 +12,30 @@ def _task_repr_info(task):
# replace status
info[0] = 'cancelling'
- info.insert(1, 'name=%r' % task.get_name())
-
+ info.insert(1, 'name=%r' % task.get_name())
+
coro = coroutines._format_coroutine(task._coro)
- info.insert(2, f'coro=<{coro}>')
+ info.insert(2, f'coro=<{coro}>')
if task._fut_waiter is not None:
- info.insert(3, f'wait_for={task._fut_waiter!r}')
+ info.insert(3, f'wait_for={task._fut_waiter!r}')
return info
def _task_get_stack(task, limit):
frames = []
- if hasattr(task._coro, 'cr_frame'):
- # case 1: 'async def' coroutines
+ if hasattr(task._coro, 'cr_frame'):
+ # case 1: 'async def' coroutines
f = task._coro.cr_frame
- elif hasattr(task._coro, 'gi_frame'):
- # case 2: legacy coroutines
+ elif hasattr(task._coro, 'gi_frame'):
+ # case 2: legacy coroutines
f = task._coro.gi_frame
- elif hasattr(task._coro, 'ag_frame'):
- # case 3: async generators
- f = task._coro.ag_frame
- else:
- # case 4: unknown objects
- f = None
+ elif hasattr(task._coro, 'ag_frame'):
+ # case 3: async generators
+ f = task._coro.ag_frame
+ else:
+ # case 4: unknown objects
+ f = None
if f is not None:
while f is not None:
if limit is not None:
diff --git a/contrib/tools/python3/src/Lib/asyncio/coroutines.py b/contrib/tools/python3/src/Lib/asyncio/coroutines.py
index ea92c8c95b..9664ea74d7 100644
--- a/contrib/tools/python3/src/Lib/asyncio/coroutines.py
+++ b/contrib/tools/python3/src/Lib/asyncio/coroutines.py
@@ -7,7 +7,7 @@ import os
import sys
import traceback
import types
-import warnings
+import warnings
from . import base_futures
from . import constants
@@ -108,9 +108,9 @@ def coroutine(func):
If the coroutine is not yielded from before it is destroyed,
an error message is logged.
"""
- warnings.warn('"@coroutine" decorator is deprecated since Python 3.8, use "async def" instead',
- DeprecationWarning,
- stacklevel=2)
+ warnings.warn('"@coroutine" decorator is deprecated since Python 3.8, use "async def" instead',
+ DeprecationWarning,
+ stacklevel=2)
if inspect.iscoroutinefunction(func):
# In Python 3.5 that's all we need to do for coroutines
# defined with "async def".
diff --git a/contrib/tools/python3/src/Lib/asyncio/events.py b/contrib/tools/python3/src/Lib/asyncio/events.py
index 2e806c1517..413ff2aaa6 100644
--- a/contrib/tools/python3/src/Lib/asyncio/events.py
+++ b/contrib/tools/python3/src/Lib/asyncio/events.py
@@ -3,7 +3,7 @@
__all__ = (
'AbstractEventLoopPolicy',
'AbstractEventLoop', 'AbstractServer',
- 'Handle', 'TimerHandle',
+ 'Handle', 'TimerHandle',
'get_event_loop_policy', 'set_event_loop_policy',
'get_event_loop', 'set_event_loop', 'new_event_loop',
'get_child_watcher', 'set_child_watcher',
@@ -78,9 +78,9 @@ class Handle:
def _run(self):
try:
self._context.run(self._callback, *self._args)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
cb = format_helpers._format_callback_source(
self._callback, self._args)
msg = f'Exception in callback {cb}'
@@ -118,24 +118,24 @@ class TimerHandle(Handle):
return hash(self._when)
def __lt__(self, other):
- if isinstance(other, TimerHandle):
- return self._when < other._when
- return NotImplemented
+ if isinstance(other, TimerHandle):
+ return self._when < other._when
+ return NotImplemented
def __le__(self, other):
- if isinstance(other, TimerHandle):
- return self._when < other._when or self.__eq__(other)
- return NotImplemented
+ if isinstance(other, TimerHandle):
+ return self._when < other._when or self.__eq__(other)
+ return NotImplemented
def __gt__(self, other):
- if isinstance(other, TimerHandle):
- return self._when > other._when
- return NotImplemented
+ if isinstance(other, TimerHandle):
+ return self._when > other._when
+ return NotImplemented
def __ge__(self, other):
- if isinstance(other, TimerHandle):
- return self._when > other._when or self.__eq__(other)
- return NotImplemented
+ if isinstance(other, TimerHandle):
+ return self._when > other._when or self.__eq__(other)
+ return NotImplemented
def __eq__(self, other):
if isinstance(other, TimerHandle):
@@ -248,23 +248,23 @@ class AbstractEventLoop:
"""Shutdown all active asynchronous generators."""
raise NotImplementedError
- async def shutdown_default_executor(self):
- """Schedule the shutdown of the default executor."""
- raise NotImplementedError
-
+ async def shutdown_default_executor(self):
+ """Schedule the shutdown of the default executor."""
+ raise NotImplementedError
+
# Methods scheduling callbacks. All these return Handles.
def _timer_handle_cancelled(self, handle):
"""Notification that a TimerHandle has been cancelled."""
raise NotImplementedError
- def call_soon(self, callback, *args, context=None):
- return self.call_later(0, callback, *args, context=context)
+ def call_soon(self, callback, *args, context=None):
+ return self.call_later(0, callback, *args, context=context)
- def call_later(self, delay, callback, *args, context=None):
+ def call_later(self, delay, callback, *args, context=None):
raise NotImplementedError
- def call_at(self, when, callback, *args, context=None):
+ def call_at(self, when, callback, *args, context=None):
raise NotImplementedError
def time(self):
@@ -275,15 +275,15 @@ class AbstractEventLoop:
# Method scheduling a coroutine object: create a task.
- def create_task(self, coro, *, name=None):
+ def create_task(self, coro, *, name=None):
raise NotImplementedError
# Methods for interacting with threads.
- def call_soon_threadsafe(self, callback, *args, context=None):
+ def call_soon_threadsafe(self, callback, *args, context=None):
raise NotImplementedError
- def run_in_executor(self, executor, func, *args):
+ def run_in_executor(self, executor, func, *args):
raise NotImplementedError
def set_default_executor(self, executor):
@@ -303,8 +303,8 @@ class AbstractEventLoop:
*, ssl=None, family=0, proto=0,
flags=0, sock=None, local_addr=None,
server_hostname=None,
- ssl_handshake_timeout=None,
- happy_eyeballs_delay=None, interleave=None):
+ ssl_handshake_timeout=None,
+ happy_eyeballs_delay=None, interleave=None):
raise NotImplementedError
async def create_server(
@@ -396,7 +396,7 @@ class AbstractEventLoop:
The return value is a Server object, which can be used to stop
the service.
- path is a str, representing a file system path to bind the
+ path is a str, representing a file system path to bind the
server socket to.
sock can optionally be specified in order to use a preexisting
@@ -465,7 +465,7 @@ class AbstractEventLoop:
# The reason to accept file-like object instead of just file descriptor
# is: we need to own pipe and close it at transport finishing
# Can got complicated errors if pass f.fileno(),
- # close fd in pipe transport then close f and vice versa.
+ # close fd in pipe transport then close f and vice versa.
raise NotImplementedError
async def connect_write_pipe(self, protocol_factory, pipe):
@@ -478,7 +478,7 @@ class AbstractEventLoop:
# The reason to accept file-like object instead of just file descriptor
# is: we need to own pipe and close it at transport finishing
# Can got complicated errors if pass f.fileno(),
- # close fd in pipe transport then close f and vice versa.
+ # close fd in pipe transport then close f and vice versa.
raise NotImplementedError
async def subprocess_shell(self, protocol_factory, cmd, *,
@@ -629,13 +629,13 @@ class BaseDefaultEventLoopPolicy(AbstractEventLoopPolicy):
self._local = self._Local()
def get_event_loop(self):
- """Get the event loop for the current context.
+ """Get the event loop for the current context.
- Returns an instance of EventLoop or raises an exception.
+ Returns an instance of EventLoop or raises an exception.
"""
if (self._local._loop is None and
not self._local._set_called and
- threading.current_thread() is threading.main_thread()):
+ threading.current_thread() is threading.main_thread()):
self.set_event_loop(self.new_event_loop())
if self._local._loop is None:
diff --git a/contrib/tools/python3/src/Lib/asyncio/exceptions.py b/contrib/tools/python3/src/Lib/asyncio/exceptions.py
index 0957fe6138..f07e448657 100644
--- a/contrib/tools/python3/src/Lib/asyncio/exceptions.py
+++ b/contrib/tools/python3/src/Lib/asyncio/exceptions.py
@@ -1,58 +1,58 @@
-"""asyncio exceptions."""
-
-
-__all__ = ('CancelledError', 'InvalidStateError', 'TimeoutError',
- 'IncompleteReadError', 'LimitOverrunError',
- 'SendfileNotAvailableError')
-
-
-class CancelledError(BaseException):
- """The Future or Task was cancelled."""
-
-
-class TimeoutError(Exception):
- """The operation exceeded the given deadline."""
-
-
-class InvalidStateError(Exception):
- """The operation is not allowed in this state."""
-
-
-class SendfileNotAvailableError(RuntimeError):
- """Sendfile syscall is not available.
-
- Raised if OS does not support sendfile syscall for given socket or
- file type.
- """
-
-
-class IncompleteReadError(EOFError):
- """
- Incomplete read error. Attributes:
-
- - partial: read bytes string before the end of stream was reached
- - expected: total number of expected bytes (or None if unknown)
- """
- def __init__(self, partial, expected):
- r_expected = 'undefined' if expected is None else repr(expected)
- super().__init__(f'{len(partial)} bytes read on a total of '
- f'{r_expected} expected bytes')
- self.partial = partial
- self.expected = expected
-
- def __reduce__(self):
- return type(self), (self.partial, self.expected)
-
-
-class LimitOverrunError(Exception):
- """Reached the buffer limit while looking for a separator.
-
- Attributes:
- - consumed: total number of to be consumed bytes.
- """
- def __init__(self, message, consumed):
- super().__init__(message)
- self.consumed = consumed
-
- def __reduce__(self):
- return type(self), (self.args[0], self.consumed)
+"""asyncio exceptions."""
+
+
+__all__ = ('CancelledError', 'InvalidStateError', 'TimeoutError',
+ 'IncompleteReadError', 'LimitOverrunError',
+ 'SendfileNotAvailableError')
+
+
+class CancelledError(BaseException):
+ """The Future or Task was cancelled."""
+
+
+class TimeoutError(Exception):
+ """The operation exceeded the given deadline."""
+
+
+class InvalidStateError(Exception):
+ """The operation is not allowed in this state."""
+
+
+class SendfileNotAvailableError(RuntimeError):
+ """Sendfile syscall is not available.
+
+ Raised if OS does not support sendfile syscall for given socket or
+ file type.
+ """
+
+
+class IncompleteReadError(EOFError):
+ """
+ Incomplete read error. Attributes:
+
+ - partial: read bytes string before the end of stream was reached
+ - expected: total number of expected bytes (or None if unknown)
+ """
+ def __init__(self, partial, expected):
+ r_expected = 'undefined' if expected is None else repr(expected)
+ super().__init__(f'{len(partial)} bytes read on a total of '
+ f'{r_expected} expected bytes')
+ self.partial = partial
+ self.expected = expected
+
+ def __reduce__(self):
+ return type(self), (self.partial, self.expected)
+
+
+class LimitOverrunError(Exception):
+ """Reached the buffer limit while looking for a separator.
+
+ Attributes:
+ - consumed: total number of to be consumed bytes.
+ """
+ def __init__(self, message, consumed):
+ super().__init__(message)
+ self.consumed = consumed
+
+ def __reduce__(self):
+ return type(self), (self.args[0], self.consumed)
diff --git a/contrib/tools/python3/src/Lib/asyncio/futures.py b/contrib/tools/python3/src/Lib/asyncio/futures.py
index d66c12152e..bed4da52fd 100644
--- a/contrib/tools/python3/src/Lib/asyncio/futures.py
+++ b/contrib/tools/python3/src/Lib/asyncio/futures.py
@@ -11,7 +11,7 @@ import sys
from . import base_futures
from . import events
-from . import exceptions
+from . import exceptions
from . import format_helpers
@@ -51,9 +51,9 @@ class Future:
_exception = None
_loop = None
_source_traceback = None
- _cancel_message = None
- # A saved CancelledError for later chaining as an exception context.
- _cancelled_exc = None
+ _cancel_message = None
+ # A saved CancelledError for later chaining as an exception context.
+ _cancelled_exc = None
# This field is used for a dual purpose:
# - Its presence is a marker to declare that a class implements
@@ -106,9 +106,9 @@ class Future:
context['source_traceback'] = self._source_traceback
self._loop.call_exception_handler(context)
- def __class_getitem__(cls, type):
- return cls
-
+ def __class_getitem__(cls, type):
+ return cls
+
@property
def _log_traceback(self):
return self.__log_traceback
@@ -121,27 +121,27 @@ class Future:
def get_loop(self):
"""Return the event loop the Future is bound to."""
- loop = self._loop
- if loop is None:
- raise RuntimeError("Future object is not initialized.")
- return loop
-
- def _make_cancelled_error(self):
- """Create the CancelledError to raise if the Future is cancelled.
-
- This should only be called once when handling a cancellation since
- it erases the saved context exception value.
- """
- if self._cancel_message is None:
- exc = exceptions.CancelledError()
- else:
- exc = exceptions.CancelledError(self._cancel_message)
- exc.__context__ = self._cancelled_exc
- # Remove the reference since we don't need this anymore.
- self._cancelled_exc = None
- return exc
-
- def cancel(self, msg=None):
+ loop = self._loop
+ if loop is None:
+ raise RuntimeError("Future object is not initialized.")
+ return loop
+
+ def _make_cancelled_error(self):
+ """Create the CancelledError to raise if the Future is cancelled.
+
+ This should only be called once when handling a cancellation since
+ it erases the saved context exception value.
+ """
+ if self._cancel_message is None:
+ exc = exceptions.CancelledError()
+ else:
+ exc = exceptions.CancelledError(self._cancel_message)
+ exc.__context__ = self._cancelled_exc
+ # Remove the reference since we don't need this anymore.
+ self._cancelled_exc = None
+ return exc
+
+ def cancel(self, msg=None):
"""Cancel the future and schedule callbacks.
If the future is already done or cancelled, return False. Otherwise,
@@ -152,7 +152,7 @@ class Future:
if self._state != _PENDING:
return False
self._state = _CANCELLED
- self._cancel_message = msg
+ self._cancel_message = msg
self.__schedule_callbacks()
return True
@@ -192,10 +192,10 @@ class Future:
the future is done and has an exception set, this exception is raised.
"""
if self._state == _CANCELLED:
- exc = self._make_cancelled_error()
- raise exc
+ exc = self._make_cancelled_error()
+ raise exc
if self._state != _FINISHED:
- raise exceptions.InvalidStateError('Result is not ready.')
+ raise exceptions.InvalidStateError('Result is not ready.')
self.__log_traceback = False
if self._exception is not None:
raise self._exception
@@ -210,10 +210,10 @@ class Future:
InvalidStateError.
"""
if self._state == _CANCELLED:
- exc = self._make_cancelled_error()
- raise exc
+ exc = self._make_cancelled_error()
+ raise exc
if self._state != _FINISHED:
- raise exceptions.InvalidStateError('Exception is not set.')
+ raise exceptions.InvalidStateError('Exception is not set.')
self.__log_traceback = False
return self._exception
@@ -255,7 +255,7 @@ class Future:
InvalidStateError.
"""
if self._state != _PENDING:
- raise exceptions.InvalidStateError(f'{self._state}: {self!r}')
+ raise exceptions.InvalidStateError(f'{self._state}: {self!r}')
self._result = result
self._state = _FINISHED
self.__schedule_callbacks()
@@ -267,7 +267,7 @@ class Future:
InvalidStateError.
"""
if self._state != _PENDING:
- raise exceptions.InvalidStateError(f'{self._state}: {self!r}')
+ raise exceptions.InvalidStateError(f'{self._state}: {self!r}')
if isinstance(exception, type):
exception = exception()
if type(exception) is StopIteration:
@@ -312,18 +312,18 @@ def _set_result_unless_cancelled(fut, result):
fut.set_result(result)
-def _convert_future_exc(exc):
- exc_class = type(exc)
- if exc_class is concurrent.futures.CancelledError:
- return exceptions.CancelledError(*exc.args)
- elif exc_class is concurrent.futures.TimeoutError:
- return exceptions.TimeoutError(*exc.args)
- elif exc_class is concurrent.futures.InvalidStateError:
- return exceptions.InvalidStateError(*exc.args)
- else:
- return exc
-
-
+def _convert_future_exc(exc):
+ exc_class = type(exc)
+ if exc_class is concurrent.futures.CancelledError:
+ return exceptions.CancelledError(*exc.args)
+ elif exc_class is concurrent.futures.TimeoutError:
+ return exceptions.TimeoutError(*exc.args)
+ elif exc_class is concurrent.futures.InvalidStateError:
+ return exceptions.InvalidStateError(*exc.args)
+ else:
+ return exc
+
+
def _set_concurrent_future_state(concurrent, source):
"""Copy state from a future to a concurrent.futures.Future."""
assert source.done()
@@ -333,7 +333,7 @@ def _set_concurrent_future_state(concurrent, source):
return
exception = source.exception()
if exception is not None:
- concurrent.set_exception(_convert_future_exc(exception))
+ concurrent.set_exception(_convert_future_exc(exception))
else:
result = source.result()
concurrent.set_result(result)
@@ -353,7 +353,7 @@ def _copy_future_state(source, dest):
else:
exception = source.exception()
if exception is not None:
- dest.set_exception(_convert_future_exc(exception))
+ dest.set_exception(_convert_future_exc(exception))
else:
result = source.result()
dest.set_result(result)
diff --git a/contrib/tools/python3/src/Lib/asyncio/locks.py b/contrib/tools/python3/src/Lib/asyncio/locks.py
index 218226dca2..f1ce732478 100644
--- a/contrib/tools/python3/src/Lib/asyncio/locks.py
+++ b/contrib/tools/python3/src/Lib/asyncio/locks.py
@@ -6,7 +6,7 @@ import collections
import warnings
from . import events
-from . import exceptions
+from . import exceptions
class _ContextManagerMixin:
@@ -75,15 +75,15 @@ class Lock(_ContextManagerMixin):
"""
def __init__(self, *, loop=None):
- self._waiters = None
+ self._waiters = None
self._locked = False
- if loop is None:
- self._loop = events.get_event_loop()
- else:
+ if loop is None:
+ self._loop = events.get_event_loop()
+ else:
self._loop = loop
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
def __repr__(self):
res = super().__repr__()
@@ -102,13 +102,13 @@ class Lock(_ContextManagerMixin):
This method blocks until the lock is unlocked, then sets it to
locked and returns True.
"""
- if (not self._locked and (self._waiters is None or
- all(w.cancelled() for w in self._waiters))):
+ if (not self._locked and (self._waiters is None or
+ all(w.cancelled() for w in self._waiters))):
self._locked = True
return True
- if self._waiters is None:
- self._waiters = collections.deque()
+ if self._waiters is None:
+ self._waiters = collections.deque()
fut = self._loop.create_future()
self._waiters.append(fut)
@@ -120,7 +120,7 @@ class Lock(_ContextManagerMixin):
await fut
finally:
self._waiters.remove(fut)
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
if not self._locked:
self._wake_up_first()
raise
@@ -147,8 +147,8 @@ class Lock(_ContextManagerMixin):
def _wake_up_first(self):
"""Wake up the first waiter if it isn't done."""
- if not self._waiters:
- return
+ if not self._waiters:
+ return
try:
fut = next(iter(self._waiters))
except StopIteration:
@@ -173,13 +173,13 @@ class Event:
def __init__(self, *, loop=None):
self._waiters = collections.deque()
self._value = False
- if loop is None:
- self._loop = events.get_event_loop()
- else:
+ if loop is None:
+ self._loop = events.get_event_loop()
+ else:
self._loop = loop
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
def __repr__(self):
res = super().__repr__()
@@ -240,16 +240,16 @@ class Condition(_ContextManagerMixin):
"""
def __init__(self, lock=None, *, loop=None):
- if loop is None:
- self._loop = events.get_event_loop()
- else:
+ if loop is None:
+ self._loop = events.get_event_loop()
+ else:
self._loop = loop
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
if lock is None:
- lock = Lock(loop=loop)
+ lock = Lock(loop=loop)
elif lock._loop is not self._loop:
raise ValueError("loop argument must agree with lock")
@@ -299,11 +299,11 @@ class Condition(_ContextManagerMixin):
try:
await self.acquire()
break
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
cancelled = True
if cancelled:
- raise exceptions.CancelledError
+ raise exceptions.CancelledError
async def wait_for(self, predicate):
"""Wait until a predicate becomes true.
@@ -371,13 +371,13 @@ class Semaphore(_ContextManagerMixin):
raise ValueError("Semaphore initial value must be >= 0")
self._value = value
self._waiters = collections.deque()
- if loop is None:
- self._loop = events.get_event_loop()
- else:
+ if loop is None:
+ self._loop = events.get_event_loop()
+ else:
self._loop = loop
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
def __repr__(self):
res = super().__repr__()
@@ -437,11 +437,11 @@ class BoundedSemaphore(Semaphore):
"""
def __init__(self, value=1, *, loop=None):
- if loop:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
-
+ if loop:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
+
self._bound_value = value
super().__init__(value, loop=loop)
diff --git a/contrib/tools/python3/src/Lib/asyncio/proactor_events.py b/contrib/tools/python3/src/Lib/asyncio/proactor_events.py
index 33da82ae58..b4cd414b82 100644
--- a/contrib/tools/python3/src/Lib/asyncio/proactor_events.py
+++ b/contrib/tools/python3/src/Lib/asyncio/proactor_events.py
@@ -10,39 +10,39 @@ import io
import os
import socket
import warnings
-import signal
-import threading
-import collections
+import signal
+import threading
+import collections
from . import base_events
from . import constants
from . import futures
-from . import exceptions
+from . import exceptions
from . import protocols
from . import sslproto
from . import transports
-from . import trsock
+from . import trsock
from .log import logger
-def _set_socket_extra(transport, sock):
- transport._extra['socket'] = trsock.TransportSocket(sock)
-
- try:
- transport._extra['sockname'] = sock.getsockname()
- except socket.error:
- if transport._loop.get_debug():
- logger.warning(
- "getsockname() failed on %r", sock, exc_info=True)
-
- if 'peername' not in transport._extra:
- try:
- transport._extra['peername'] = sock.getpeername()
- except socket.error:
- # UDP sockets may not have a peer name
- transport._extra['peername'] = None
-
-
+def _set_socket_extra(transport, sock):
+ transport._extra['socket'] = trsock.TransportSocket(sock)
+
+ try:
+ transport._extra['sockname'] = sock.getsockname()
+ except socket.error:
+ if transport._loop.get_debug():
+ logger.warning(
+ "getsockname() failed on %r", sock, exc_info=True)
+
+ if 'peername' not in transport._extra:
+ try:
+ transport._extra['peername'] = sock.getpeername()
+ except socket.error:
+ # UDP sockets may not have a peer name
+ transport._extra['peername'] = None
+
+
class _ProactorBasePipeTransport(transports._FlowControlMixin,
transports.BaseTransport):
"""Base class for pipe and socket transports."""
@@ -110,14 +110,14 @@ class _ProactorBasePipeTransport(transports._FlowControlMixin,
self._read_fut.cancel()
self._read_fut = None
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if self._sock is not None:
- _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self.close()
def _fatal_error(self, exc, message='Fatal error on pipe transport'):
try:
- if isinstance(exc, OSError):
+ if isinstance(exc, OSError):
if self._loop.get_debug():
logger.debug("%r: %s", self, message, exc_info=True)
else:
@@ -233,9 +233,9 @@ class _ProactorReadPipeTransport(_ProactorBasePipeTransport,
try:
keep_open = self._protocol.eof_received()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(
exc, 'Fatal error: protocol.eof_received() call failed.')
return
@@ -258,9 +258,9 @@ class _ProactorReadPipeTransport(_ProactorBasePipeTransport,
if isinstance(self._protocol, protocols.BufferedProtocol):
try:
protocols._feed_data_to_buffered_proto(self._protocol, data)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(exc,
'Fatal error: protocol.buffer_updated() '
'call failed.')
@@ -307,7 +307,7 @@ class _ProactorReadPipeTransport(_ProactorBasePipeTransport,
self._force_close(exc)
except OSError as exc:
self._fatal_error(exc, 'Fatal read error on pipe transport')
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
if not self._closing:
raise
else:
@@ -450,134 +450,134 @@ class _ProactorWritePipeTransport(_ProactorBaseWritePipeTransport):
self.close()
-class _ProactorDatagramTransport(_ProactorBasePipeTransport):
- max_size = 256 * 1024
- def __init__(self, loop, sock, protocol, address=None,
- waiter=None, extra=None):
- self._address = address
- self._empty_waiter = None
- # We don't need to call _protocol.connection_made() since our base
- # constructor does it for us.
- super().__init__(loop, sock, protocol, waiter=waiter, extra=extra)
-
- # The base constructor sets _buffer = None, so we set it here
- self._buffer = collections.deque()
- self._loop.call_soon(self._loop_reading)
-
- def _set_extra(self, sock):
- _set_socket_extra(self, sock)
-
- def get_write_buffer_size(self):
- return sum(len(data) for data, _ in self._buffer)
-
- def abort(self):
- self._force_close(None)
-
- def sendto(self, data, addr=None):
- if not isinstance(data, (bytes, bytearray, memoryview)):
- raise TypeError('data argument must be bytes-like object (%r)',
- type(data))
-
- if not data:
- return
-
- if self._address is not None and addr not in (None, self._address):
- raise ValueError(
- f'Invalid address: must be None or {self._address}')
-
- if self._conn_lost and self._address:
- if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
- logger.warning('socket.sendto() raised exception.')
- self._conn_lost += 1
- return
-
- # Ensure that what we buffer is immutable.
- self._buffer.append((bytes(data), addr))
-
- if self._write_fut is None:
- # No current write operations are active, kick one off
- self._loop_writing()
- # else: A write operation is already kicked off
-
- self._maybe_pause_protocol()
-
- def _loop_writing(self, fut=None):
- try:
- if self._conn_lost:
- return
-
- assert fut is self._write_fut
- self._write_fut = None
- if fut:
- # We are in a _loop_writing() done callback, get the result
- fut.result()
-
- if not self._buffer or (self._conn_lost and self._address):
- # The connection has been closed
- if self._closing:
- self._loop.call_soon(self._call_connection_lost, None)
- return
-
- data, addr = self._buffer.popleft()
- if self._address is not None:
- self._write_fut = self._loop._proactor.send(self._sock,
- data)
- else:
- self._write_fut = self._loop._proactor.sendto(self._sock,
- data,
- addr=addr)
- except OSError as exc:
- self._protocol.error_received(exc)
- except Exception as exc:
- self._fatal_error(exc, 'Fatal write error on datagram transport')
- else:
- self._write_fut.add_done_callback(self._loop_writing)
- self._maybe_resume_protocol()
-
- def _loop_reading(self, fut=None):
- data = None
- try:
- if self._conn_lost:
- return
-
- assert self._read_fut is fut or (self._read_fut is None and
- self._closing)
-
- self._read_fut = None
- if fut is not None:
- res = fut.result()
-
- if self._closing:
- # since close() has been called we ignore any read data
- data = None
- return
-
- if self._address is not None:
- data, addr = res, self._address
- else:
- data, addr = res
-
- if self._conn_lost:
- return
- if self._address is not None:
- self._read_fut = self._loop._proactor.recv(self._sock,
- self.max_size)
- else:
- self._read_fut = self._loop._proactor.recvfrom(self._sock,
- self.max_size)
- except OSError as exc:
- self._protocol.error_received(exc)
- except exceptions.CancelledError:
- if not self._closing:
- raise
- else:
- if self._read_fut is not None:
- self._read_fut.add_done_callback(self._loop_reading)
- finally:
- if data:
- self._protocol.datagram_received(data, addr)
-
-
+class _ProactorDatagramTransport(_ProactorBasePipeTransport):
+ max_size = 256 * 1024
+ def __init__(self, loop, sock, protocol, address=None,
+ waiter=None, extra=None):
+ self._address = address
+ self._empty_waiter = None
+ # We don't need to call _protocol.connection_made() since our base
+ # constructor does it for us.
+ super().__init__(loop, sock, protocol, waiter=waiter, extra=extra)
+
+ # The base constructor sets _buffer = None, so we set it here
+ self._buffer = collections.deque()
+ self._loop.call_soon(self._loop_reading)
+
+ def _set_extra(self, sock):
+ _set_socket_extra(self, sock)
+
+ def get_write_buffer_size(self):
+ return sum(len(data) for data, _ in self._buffer)
+
+ def abort(self):
+ self._force_close(None)
+
+ def sendto(self, data, addr=None):
+ if not isinstance(data, (bytes, bytearray, memoryview)):
+ raise TypeError('data argument must be bytes-like object (%r)',
+ type(data))
+
+ if not data:
+ return
+
+ if self._address is not None and addr not in (None, self._address):
+ raise ValueError(
+ f'Invalid address: must be None or {self._address}')
+
+ if self._conn_lost and self._address:
+ if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
+ logger.warning('socket.sendto() raised exception.')
+ self._conn_lost += 1
+ return
+
+ # Ensure that what we buffer is immutable.
+ self._buffer.append((bytes(data), addr))
+
+ if self._write_fut is None:
+ # No current write operations are active, kick one off
+ self._loop_writing()
+ # else: A write operation is already kicked off
+
+ self._maybe_pause_protocol()
+
+ def _loop_writing(self, fut=None):
+ try:
+ if self._conn_lost:
+ return
+
+ assert fut is self._write_fut
+ self._write_fut = None
+ if fut:
+ # We are in a _loop_writing() done callback, get the result
+ fut.result()
+
+ if not self._buffer or (self._conn_lost and self._address):
+ # The connection has been closed
+ if self._closing:
+ self._loop.call_soon(self._call_connection_lost, None)
+ return
+
+ data, addr = self._buffer.popleft()
+ if self._address is not None:
+ self._write_fut = self._loop._proactor.send(self._sock,
+ data)
+ else:
+ self._write_fut = self._loop._proactor.sendto(self._sock,
+ data,
+ addr=addr)
+ except OSError as exc:
+ self._protocol.error_received(exc)
+ except Exception as exc:
+ self._fatal_error(exc, 'Fatal write error on datagram transport')
+ else:
+ self._write_fut.add_done_callback(self._loop_writing)
+ self._maybe_resume_protocol()
+
+ def _loop_reading(self, fut=None):
+ data = None
+ try:
+ if self._conn_lost:
+ return
+
+ assert self._read_fut is fut or (self._read_fut is None and
+ self._closing)
+
+ self._read_fut = None
+ if fut is not None:
+ res = fut.result()
+
+ if self._closing:
+ # since close() has been called we ignore any read data
+ data = None
+ return
+
+ if self._address is not None:
+ data, addr = res, self._address
+ else:
+ data, addr = res
+
+ if self._conn_lost:
+ return
+ if self._address is not None:
+ self._read_fut = self._loop._proactor.recv(self._sock,
+ self.max_size)
+ else:
+ self._read_fut = self._loop._proactor.recvfrom(self._sock,
+ self.max_size)
+ except OSError as exc:
+ self._protocol.error_received(exc)
+ except exceptions.CancelledError:
+ if not self._closing:
+ raise
+ else:
+ if self._read_fut is not None:
+ self._read_fut.add_done_callback(self._loop_reading)
+ finally:
+ if data:
+ self._protocol.datagram_received(data, addr)
+
+
class _ProactorDuplexPipeTransport(_ProactorReadPipeTransport,
_ProactorBaseWritePipeTransport,
transports.Transport):
@@ -603,7 +603,7 @@ class _ProactorSocketTransport(_ProactorReadPipeTransport,
base_events._set_nodelay(sock)
def _set_extra(self, sock):
- _set_socket_extra(self, sock)
+ _set_socket_extra(self, sock)
def can_write_eof(self):
return True
@@ -627,9 +627,9 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
self._accept_futures = {} # socket file descriptor => Future
proactor.set_loop(self)
self._make_self_pipe()
- if threading.current_thread() is threading.main_thread():
- # wakeup fd can only be installed to a file descriptor from the main thread
- signal.set_wakeup_fd(self._csock.fileno())
+ if threading.current_thread() is threading.main_thread():
+ # wakeup fd can only be installed to a file descriptor from the main thread
+ signal.set_wakeup_fd(self._csock.fileno())
def _make_socket_transport(self, sock, protocol, waiter=None,
extra=None, server=None):
@@ -649,11 +649,11 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
extra=extra, server=server)
return ssl_protocol._app_transport
- def _make_datagram_transport(self, sock, protocol,
- address=None, waiter=None, extra=None):
- return _ProactorDatagramTransport(self, sock, protocol, address,
- waiter, extra)
-
+ def _make_datagram_transport(self, sock, protocol,
+ address=None, waiter=None, extra=None):
+ return _ProactorDatagramTransport(self, sock, protocol, address,
+ waiter, extra)
+
def _make_duplex_pipe_transport(self, sock, protocol, waiter=None,
extra=None):
return _ProactorDuplexPipeTransport(self,
@@ -675,8 +675,8 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
if self.is_closed():
return
- if threading.current_thread() is threading.main_thread():
- signal.set_wakeup_fd(-1)
+ if threading.current_thread() is threading.main_thread():
+ signal.set_wakeup_fd(-1)
# Call these methods before closing the event loop (before calling
# BaseEventLoop.close), because they can schedule callbacks with
# call_soon(), which is forbidden when the event loop is closed.
@@ -708,11 +708,11 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
try:
fileno = file.fileno()
except (AttributeError, io.UnsupportedOperation) as err:
- raise exceptions.SendfileNotAvailableError("not a regular file")
+ raise exceptions.SendfileNotAvailableError("not a regular file")
try:
fsize = os.fstat(fileno).st_size
- except OSError:
- raise exceptions.SendfileNotAvailableError("not a regular file")
+ except OSError:
+ raise exceptions.SendfileNotAvailableError("not a regular file")
blocksize = count if count else fsize
if not blocksize:
return 0 # empty file
@@ -766,21 +766,21 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
try:
if f is not None:
f.result() # may raise
- if self._self_reading_future is not f:
- # When we scheduled this Future, we assigned it to
- # _self_reading_future. If it's not there now, something has
- # tried to cancel the loop while this callback was still in the
- # queue (see windows_events.ProactorEventLoop.run_forever). In
- # that case stop here instead of continuing to schedule a new
- # iteration.
- return
+ if self._self_reading_future is not f:
+ # When we scheduled this Future, we assigned it to
+ # _self_reading_future. If it's not there now, something has
+ # tried to cancel the loop while this callback was still in the
+ # queue (see windows_events.ProactorEventLoop.run_forever). In
+ # that case stop here instead of continuing to schedule a new
+ # iteration.
+ return
f = self._proactor.recv(self._ssock, 4096)
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
# _close_self_pipe() has been called, stop waiting for data
return
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self.call_exception_handler({
'message': 'Error on reading from the event loop self pipe',
'exception': exc,
@@ -791,17 +791,17 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
f.add_done_callback(self._loop_self_reading)
def _write_to_self(self):
- # This may be called from a different thread, possibly after
- # _close_self_pipe() has been called or even while it is
- # running. Guard for self._csock being None or closed. When
- # a socket is closed, send() raises OSError (with errno set to
- # EBADF, but let's not rely on the exact error code).
- csock = self._csock
- if csock is None:
- return
-
+ # This may be called from a different thread, possibly after
+ # _close_self_pipe() has been called or even while it is
+ # running. Guard for self._csock being None or closed. When
+ # a socket is closed, send() raises OSError (with errno set to
+ # EBADF, but let's not rely on the exact error code).
+ csock = self._csock
+ if csock is None:
+ return
+
try:
- csock.send(b'\0')
+ csock.send(b'\0')
except OSError:
if self._debug:
logger.debug("Fail to write a null byte into the "
@@ -837,13 +837,13 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
self.call_exception_handler({
'message': 'Accept failed on a socket',
'exception': exc,
- 'socket': trsock.TransportSocket(sock),
+ 'socket': trsock.TransportSocket(sock),
})
sock.close()
elif self._debug:
logger.debug("Accept failed on socket %r",
sock, exc_info=True)
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
sock.close()
else:
self._accept_futures[sock.fileno()] = f
diff --git a/contrib/tools/python3/src/Lib/asyncio/protocols.py b/contrib/tools/python3/src/Lib/asyncio/protocols.py
index d09f51f4f2..69fa43e8b6 100644
--- a/contrib/tools/python3/src/Lib/asyncio/protocols.py
+++ b/contrib/tools/python3/src/Lib/asyncio/protocols.py
@@ -16,8 +16,8 @@ class BaseProtocol:
write-only transport like write pipe
"""
- __slots__ = ()
-
+ __slots__ = ()
+
def connection_made(self, transport):
"""Called when a connection is made.
@@ -89,8 +89,8 @@ class Protocol(BaseProtocol):
* CL: connection_lost()
"""
- __slots__ = ()
-
+ __slots__ = ()
+
def data_received(self, data):
"""Called when some data is received.
@@ -134,8 +134,8 @@ class BufferedProtocol(BaseProtocol):
* CL: connection_lost()
"""
- __slots__ = ()
-
+ __slots__ = ()
+
def get_buffer(self, sizehint):
"""Called to allocate a new receive buffer.
@@ -166,8 +166,8 @@ class BufferedProtocol(BaseProtocol):
class DatagramProtocol(BaseProtocol):
"""Interface for datagram protocol."""
- __slots__ = ()
-
+ __slots__ = ()
+
def datagram_received(self, data, addr):
"""Called when some datagram is received."""
@@ -181,8 +181,8 @@ class DatagramProtocol(BaseProtocol):
class SubprocessProtocol(BaseProtocol):
"""Interface for protocol for subprocess calls."""
- __slots__ = ()
-
+ __slots__ = ()
+
def pipe_data_received(self, fd, data):
"""Called when the subprocess writes data into stdout/stderr pipe.
diff --git a/contrib/tools/python3/src/Lib/asyncio/queues.py b/contrib/tools/python3/src/Lib/asyncio/queues.py
index 03ca592290..cd3f7c6a56 100644
--- a/contrib/tools/python3/src/Lib/asyncio/queues.py
+++ b/contrib/tools/python3/src/Lib/asyncio/queues.py
@@ -2,7 +2,7 @@ __all__ = ('Queue', 'PriorityQueue', 'LifoQueue', 'QueueFull', 'QueueEmpty')
import collections
import heapq
-import warnings
+import warnings
from . import events
from . import locks
@@ -35,9 +35,9 @@ class Queue:
self._loop = events.get_event_loop()
else:
self._loop = loop
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
self._maxsize = maxsize
# Futures.
@@ -45,7 +45,7 @@ class Queue:
# Futures.
self._putters = collections.deque()
self._unfinished_tasks = 0
- self._finished = locks.Event(loop=loop)
+ self._finished = locks.Event(loop=loop)
self._finished.set()
self._init(maxsize)
@@ -76,9 +76,9 @@ class Queue:
def __str__(self):
return f'<{type(self).__name__} {self._format()}>'
- def __class_getitem__(cls, type):
- return cls
-
+ def __class_getitem__(cls, type):
+ return cls
+
def _format(self):
result = f'maxsize={self._maxsize!r}'
if getattr(self, '_queue', None):
diff --git a/contrib/tools/python3/src/Lib/asyncio/runners.py b/contrib/tools/python3/src/Lib/asyncio/runners.py
index d6cdeef9a6..6920acba38 100644
--- a/contrib/tools/python3/src/Lib/asyncio/runners.py
+++ b/contrib/tools/python3/src/Lib/asyncio/runners.py
@@ -5,8 +5,8 @@ from . import events
from . import tasks
-def run(main, *, debug=None):
- """Execute the coroutine and return the result.
+def run(main, *, debug=None):
+ """Execute the coroutine and return the result.
This function runs the passed coroutine, taking care of
managing the asyncio event loop and finalizing asynchronous
@@ -39,14 +39,14 @@ def run(main, *, debug=None):
loop = events.new_event_loop()
try:
events.set_event_loop(loop)
- if debug is not None:
- loop.set_debug(debug)
+ if debug is not None:
+ loop.set_debug(debug)
return loop.run_until_complete(main)
finally:
try:
_cancel_all_tasks(loop)
loop.run_until_complete(loop.shutdown_asyncgens())
- loop.run_until_complete(loop.shutdown_default_executor())
+ loop.run_until_complete(loop.shutdown_default_executor())
finally:
events.set_event_loop(None)
loop.close()
@@ -61,7 +61,7 @@ def _cancel_all_tasks(loop):
task.cancel()
loop.run_until_complete(
- tasks._gather(*to_cancel, loop=loop, return_exceptions=True))
+ tasks._gather(*to_cancel, loop=loop, return_exceptions=True))
for task in to_cancel:
if task.cancelled():
diff --git a/contrib/tools/python3/src/Lib/asyncio/selector_events.py b/contrib/tools/python3/src/Lib/asyncio/selector_events.py
index 2ecf392b8b..59cb6b1bab 100644
--- a/contrib/tools/python3/src/Lib/asyncio/selector_events.py
+++ b/contrib/tools/python3/src/Lib/asyncio/selector_events.py
@@ -25,7 +25,7 @@ from . import futures
from . import protocols
from . import sslproto
from . import transports
-from . import trsock
+from . import trsock
from .log import logger
@@ -40,11 +40,11 @@ def _test_selector_event(selector, fd, event):
return bool(key.events & event)
-def _check_ssl_socket(sock):
- if ssl is not None and isinstance(sock, ssl.SSLSocket):
- raise TypeError("Socket cannot be of type SSLSocket")
-
-
+def _check_ssl_socket(sock):
+ if ssl is not None and isinstance(sock, ssl.SSLSocket):
+ raise TypeError("Socket cannot be of type SSLSocket")
+
+
class BaseSelectorEventLoop(base_events.BaseEventLoop):
"""Selector event loop.
@@ -133,17 +133,17 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
# a socket is closed, send() raises OSError (with errno set to
# EBADF, but let's not rely on the exact error code).
csock = self._csock
- if csock is None:
- return
-
- try:
- csock.send(b'\0')
- except OSError:
- if self._debug:
- logger.debug("Fail to write a null byte into the "
- "self-pipe socket",
- exc_info=True)
-
+ if csock is None:
+ return
+
+ try:
+ csock.send(b'\0')
+ except OSError:
+ if self._debug:
+ logger.debug("Fail to write a null byte into the "
+ "self-pipe socket",
+ exc_info=True)
+
def _start_serving(self, protocol_factory, sock,
sslcontext=None, server=None, backlog=100,
ssl_handshake_timeout=constants.SSL_HANDSHAKE_TIMEOUT):
@@ -179,7 +179,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
self.call_exception_handler({
'message': 'socket.accept() out of system resource',
'exception': exc,
- 'socket': trsock.TransportSocket(sock),
+ 'socket': trsock.TransportSocket(sock),
})
self._remove_reader(sock.fileno())
self.call_later(constants.ACCEPT_RETRY_DELAY,
@@ -216,14 +216,14 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
try:
await waiter
- except BaseException:
+ except BaseException:
transport.close()
raise
- # It's now up to the protocol to handle the connection.
+ # It's now up to the protocol to handle the connection.
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
if self._debug:
context = {
'message':
@@ -268,7 +268,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
(handle, writer))
if reader is not None:
reader.cancel()
- return handle
+ return handle
def _remove_reader(self, fd):
if self.is_closed():
@@ -305,7 +305,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
(reader, handle))
if writer is not None:
writer.cancel()
- return handle
+ return handle
def _remove_writer(self, fd):
"""Remove a writer callback."""
@@ -333,7 +333,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
def add_reader(self, fd, callback, *args):
"""Add a reader callback."""
self._ensure_fd_no_transport(fd)
- self._add_reader(fd, callback, *args)
+ self._add_reader(fd, callback, *args)
def remove_reader(self, fd):
"""Remove a reader callback."""
@@ -343,7 +343,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
def add_writer(self, fd, callback, *args):
"""Add a writer callback.."""
self._ensure_fd_no_transport(fd)
- self._add_writer(fd, callback, *args)
+ self._add_writer(fd, callback, *args)
def remove_writer(self, fd):
"""Remove a writer callback."""
@@ -357,37 +357,37 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
The maximum amount of data to be received at once is specified by
nbytes.
"""
- _check_ssl_socket(sock)
+ _check_ssl_socket(sock)
if self._debug and sock.gettimeout() != 0:
raise ValueError("the socket must be non-blocking")
- try:
- return sock.recv(n)
- except (BlockingIOError, InterruptedError):
- pass
+ try:
+ return sock.recv(n)
+ except (BlockingIOError, InterruptedError):
+ pass
fut = self.create_future()
- fd = sock.fileno()
- self._ensure_fd_no_transport(fd)
- handle = self._add_reader(fd, self._sock_recv, fut, sock, n)
- fut.add_done_callback(
- functools.partial(self._sock_read_done, fd, handle=handle))
+ fd = sock.fileno()
+ self._ensure_fd_no_transport(fd)
+ handle = self._add_reader(fd, self._sock_recv, fut, sock, n)
+ fut.add_done_callback(
+ functools.partial(self._sock_read_done, fd, handle=handle))
return await fut
- def _sock_read_done(self, fd, fut, handle=None):
- if handle is None or not handle.cancelled():
- self.remove_reader(fd)
-
- def _sock_recv(self, fut, sock, n):
+ def _sock_read_done(self, fd, fut, handle=None):
+ if handle is None or not handle.cancelled():
+ self.remove_reader(fd)
+
+ def _sock_recv(self, fut, sock, n):
# _sock_recv() can add itself as an I/O callback if the operation can't
# be done immediately. Don't use it directly, call sock_recv().
- if fut.done():
+ if fut.done():
return
try:
data = sock.recv(n)
except (BlockingIOError, InterruptedError):
- return # try again next time
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ return # try again next time
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
fut.set_exception(exc)
else:
fut.set_result(data)
@@ -398,34 +398,34 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
The received data is written into *buf* (a writable buffer).
The return value is the number of bytes written.
"""
- _check_ssl_socket(sock)
+ _check_ssl_socket(sock)
if self._debug and sock.gettimeout() != 0:
raise ValueError("the socket must be non-blocking")
- try:
- return sock.recv_into(buf)
- except (BlockingIOError, InterruptedError):
- pass
+ try:
+ return sock.recv_into(buf)
+ except (BlockingIOError, InterruptedError):
+ pass
fut = self.create_future()
- fd = sock.fileno()
- self._ensure_fd_no_transport(fd)
- handle = self._add_reader(fd, self._sock_recv_into, fut, sock, buf)
- fut.add_done_callback(
- functools.partial(self._sock_read_done, fd, handle=handle))
+ fd = sock.fileno()
+ self._ensure_fd_no_transport(fd)
+ handle = self._add_reader(fd, self._sock_recv_into, fut, sock, buf)
+ fut.add_done_callback(
+ functools.partial(self._sock_read_done, fd, handle=handle))
return await fut
- def _sock_recv_into(self, fut, sock, buf):
+ def _sock_recv_into(self, fut, sock, buf):
# _sock_recv_into() can add itself as an I/O callback if the operation
# can't be done immediately. Don't use it directly, call
# sock_recv_into().
- if fut.done():
+ if fut.done():
return
try:
nbytes = sock.recv_into(buf)
except (BlockingIOError, InterruptedError):
- return # try again next time
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ return # try again next time
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
fut.set_exception(exc)
else:
fut.set_result(nbytes)
@@ -439,56 +439,56 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
raised, and there is no way to determine how much data, if any, was
successfully processed by the receiving end of the connection.
"""
- _check_ssl_socket(sock)
+ _check_ssl_socket(sock)
if self._debug and sock.gettimeout() != 0:
raise ValueError("the socket must be non-blocking")
- try:
- n = sock.send(data)
- except (BlockingIOError, InterruptedError):
- n = 0
-
- if n == len(data):
- # all data sent
- return
-
+ try:
+ n = sock.send(data)
+ except (BlockingIOError, InterruptedError):
+ n = 0
+
+ if n == len(data):
+ # all data sent
+ return
+
fut = self.create_future()
- fd = sock.fileno()
- self._ensure_fd_no_transport(fd)
- # use a trick with a list in closure to store a mutable state
- handle = self._add_writer(fd, self._sock_sendall, fut, sock,
- memoryview(data), [n])
- fut.add_done_callback(
- functools.partial(self._sock_write_done, fd, handle=handle))
+ fd = sock.fileno()
+ self._ensure_fd_no_transport(fd)
+ # use a trick with a list in closure to store a mutable state
+ handle = self._add_writer(fd, self._sock_sendall, fut, sock,
+ memoryview(data), [n])
+ fut.add_done_callback(
+ functools.partial(self._sock_write_done, fd, handle=handle))
return await fut
- def _sock_sendall(self, fut, sock, view, pos):
- if fut.done():
- # Future cancellation can be scheduled on previous loop iteration
+ def _sock_sendall(self, fut, sock, view, pos):
+ if fut.done():
+ # Future cancellation can be scheduled on previous loop iteration
return
- start = pos[0]
+ start = pos[0]
try:
- n = sock.send(view[start:])
+ n = sock.send(view[start:])
except (BlockingIOError, InterruptedError):
- return
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ return
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
fut.set_exception(exc)
return
- start += n
-
- if start == len(view):
+ start += n
+
+ if start == len(view):
fut.set_result(None)
else:
- pos[0] = start
+ pos[0] = start
async def sock_connect(self, sock, address):
"""Connect to a remote socket at address.
This method is a coroutine.
"""
- _check_ssl_socket(sock)
+ _check_ssl_socket(sock)
if self._debug and sock.gettimeout() != 0:
raise ValueError("the socket must be non-blocking")
@@ -510,24 +510,24 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
# connection runs in background. We have to wait until the socket
# becomes writable to be notified when the connection succeed or
# fails.
- self._ensure_fd_no_transport(fd)
- handle = self._add_writer(
- fd, self._sock_connect_cb, fut, sock, address)
+ self._ensure_fd_no_transport(fd)
+ handle = self._add_writer(
+ fd, self._sock_connect_cb, fut, sock, address)
fut.add_done_callback(
- functools.partial(self._sock_write_done, fd, handle=handle))
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ functools.partial(self._sock_write_done, fd, handle=handle))
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
fut.set_exception(exc)
else:
fut.set_result(None)
- def _sock_write_done(self, fd, fut, handle=None):
- if handle is None or not handle.cancelled():
- self.remove_writer(fd)
+ def _sock_write_done(self, fd, fut, handle=None):
+ if handle is None or not handle.cancelled():
+ self.remove_writer(fd)
def _sock_connect_cb(self, fut, sock, address):
- if fut.done():
+ if fut.done():
return
try:
@@ -538,9 +538,9 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
except (BlockingIOError, InterruptedError):
# socket is still registered, the callback will be retried later
pass
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
fut.set_exception(exc)
else:
fut.set_result(None)
@@ -553,26 +553,26 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
object usable to send and receive data on the connection, and address
is the address bound to the socket on the other end of the connection.
"""
- _check_ssl_socket(sock)
+ _check_ssl_socket(sock)
if self._debug and sock.gettimeout() != 0:
raise ValueError("the socket must be non-blocking")
fut = self.create_future()
- self._sock_accept(fut, sock)
+ self._sock_accept(fut, sock)
return await fut
- def _sock_accept(self, fut, sock):
+ def _sock_accept(self, fut, sock):
fd = sock.fileno()
try:
conn, address = sock.accept()
conn.setblocking(False)
except (BlockingIOError, InterruptedError):
- self._ensure_fd_no_transport(fd)
- handle = self._add_reader(fd, self._sock_accept, fut, sock)
- fut.add_done_callback(
- functools.partial(self._sock_read_done, fd, handle=handle))
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ self._ensure_fd_no_transport(fd)
+ handle = self._add_reader(fd, self._sock_accept, fut, sock)
+ fut.add_done_callback(
+ functools.partial(self._sock_read_done, fd, handle=handle))
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
fut.set_exception(exc)
else:
fut.set_result((conn, address))
@@ -624,11 +624,11 @@ class _SelectorTransport(transports._FlowControlMixin,
def __init__(self, loop, sock, protocol, extra=None, server=None):
super().__init__(extra, loop)
- self._extra['socket'] = trsock.TransportSocket(sock)
- try:
- self._extra['sockname'] = sock.getsockname()
- except OSError:
- self._extra['sockname'] = None
+ self._extra['socket'] = trsock.TransportSocket(sock)
+ try:
+ self._extra['sockname'] = sock.getsockname()
+ except OSError:
+ self._extra['sockname'] = None
if 'peername' not in self._extra:
try:
self._extra['peername'] = sock.getpeername()
@@ -699,14 +699,14 @@ class _SelectorTransport(transports._FlowControlMixin,
self._loop._remove_writer(self._sock_fd)
self._loop.call_soon(self._call_connection_lost, None)
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if self._sock is not None:
- _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self._sock.close()
def _fatal_error(self, exc, message='Fatal error on transport'):
# Should be called from exception handler only.
- if isinstance(exc, OSError):
+ if isinstance(exc, OSError):
if self._loop.get_debug():
logger.debug("%r: %s", self, message, exc_info=True)
else:
@@ -820,9 +820,9 @@ class _SelectorSocketTransport(_SelectorTransport):
buf = self._protocol.get_buffer(-1)
if not len(buf):
raise RuntimeError('get_buffer() returned an empty buffer')
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(
exc, 'Fatal error: protocol.get_buffer() call failed.')
return
@@ -831,9 +831,9 @@ class _SelectorSocketTransport(_SelectorTransport):
nbytes = self._sock.recv_into(buf)
except (BlockingIOError, InterruptedError):
return
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(exc, 'Fatal read error on socket transport')
return
@@ -843,9 +843,9 @@ class _SelectorSocketTransport(_SelectorTransport):
try:
self._protocol.buffer_updated(nbytes)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(
exc, 'Fatal error: protocol.buffer_updated() call failed.')
@@ -856,9 +856,9 @@ class _SelectorSocketTransport(_SelectorTransport):
data = self._sock.recv(self.max_size)
except (BlockingIOError, InterruptedError):
return
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(exc, 'Fatal read error on socket transport')
return
@@ -868,9 +868,9 @@ class _SelectorSocketTransport(_SelectorTransport):
try:
self._protocol.data_received(data)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(
exc, 'Fatal error: protocol.data_received() call failed.')
@@ -880,9 +880,9 @@ class _SelectorSocketTransport(_SelectorTransport):
try:
keep_open = self._protocol.eof_received()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(
exc, 'Fatal error: protocol.eof_received() call failed.')
return
@@ -918,9 +918,9 @@ class _SelectorSocketTransport(_SelectorTransport):
n = self._sock.send(data)
except (BlockingIOError, InterruptedError):
pass
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(exc, 'Fatal write error on socket transport')
return
else:
@@ -943,9 +943,9 @@ class _SelectorSocketTransport(_SelectorTransport):
n = self._sock.send(self._buffer)
except (BlockingIOError, InterruptedError):
pass
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._loop._remove_writer(self._sock_fd)
self._buffer.clear()
self._fatal_error(exc, 'Fatal write error on socket transport')
@@ -1021,9 +1021,9 @@ class _SelectorDatagramTransport(_SelectorTransport):
pass
except OSError as exc:
self._protocol.error_received(exc)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(exc, 'Fatal read error on datagram transport')
else:
self._protocol.datagram_received(data, addr)
@@ -1035,11 +1035,11 @@ class _SelectorDatagramTransport(_SelectorTransport):
if not data:
return
- if self._address:
- if addr not in (None, self._address):
- raise ValueError(
- f'Invalid address: must be None or {self._address}')
- addr = self._address
+ if self._address:
+ if addr not in (None, self._address):
+ raise ValueError(
+ f'Invalid address: must be None or {self._address}')
+ addr = self._address
if self._conn_lost and self._address:
if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
@@ -1050,7 +1050,7 @@ class _SelectorDatagramTransport(_SelectorTransport):
if not self._buffer:
# Attempt to send it right away first.
try:
- if self._extra['peername']:
+ if self._extra['peername']:
self._sock.send(data)
else:
self._sock.sendto(data, addr)
@@ -1060,9 +1060,9 @@ class _SelectorDatagramTransport(_SelectorTransport):
except OSError as exc:
self._protocol.error_received(exc)
return
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(
exc, 'Fatal write error on datagram transport')
return
@@ -1075,7 +1075,7 @@ class _SelectorDatagramTransport(_SelectorTransport):
while self._buffer:
data, addr = self._buffer.popleft()
try:
- if self._extra['peername']:
+ if self._extra['peername']:
self._sock.send(data)
else:
self._sock.sendto(data, addr)
@@ -1085,9 +1085,9 @@ class _SelectorDatagramTransport(_SelectorTransport):
except OSError as exc:
self._protocol.error_received(exc)
return
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._fatal_error(
exc, 'Fatal write error on datagram transport')
return
diff --git a/contrib/tools/python3/src/Lib/asyncio/sslproto.py b/contrib/tools/python3/src/Lib/asyncio/sslproto.py
index 6731363a7a..cad25b2653 100644
--- a/contrib/tools/python3/src/Lib/asyncio/sslproto.py
+++ b/contrib/tools/python3/src/Lib/asyncio/sslproto.py
@@ -315,9 +315,9 @@ class _SSLProtocolTransport(transports._FlowControlMixin,
self._closed = True
self._ssl_protocol._start_shutdown()
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if not self._closed:
- _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self.close()
def is_reading(self):
@@ -497,11 +497,11 @@ class SSLProtocol(protocols.Protocol):
self._app_transport._closed = True
self._transport = None
self._app_transport = None
- if getattr(self, '_handshake_timeout_handle', None):
- self._handshake_timeout_handle.cancel()
+ if getattr(self, '_handshake_timeout_handle', None):
+ self._handshake_timeout_handle.cancel()
self._wakeup_waiter(exc)
- self._app_protocol = None
- self._sslpipe = None
+ self._app_protocol = None
+ self._sslpipe = None
def pause_writing(self):
"""Called when the low-level transport's buffer goes over
@@ -526,9 +526,9 @@ class SSLProtocol(protocols.Protocol):
try:
ssldata, appdata = self._sslpipe.feed_ssldata(data)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as e:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as e:
self._fatal_error(e, 'SSL error in data received')
return
@@ -543,9 +543,9 @@ class SSLProtocol(protocols.Protocol):
self._app_protocol, chunk)
else:
self._app_protocol.data_received(chunk)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as ex:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as ex:
self._fatal_error(
ex, 'application protocol failed to receive SSL data')
return
@@ -631,9 +631,9 @@ class SSLProtocol(protocols.Protocol):
raise handshake_exc
peercert = sslobj.getpeercert()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
if isinstance(exc, ssl.CertificateError):
msg = 'SSL handshake failed on verifying the certificate'
else:
@@ -696,9 +696,9 @@ class SSLProtocol(protocols.Protocol):
# delete it and reduce the outstanding buffer size.
del self._write_backlog[0]
self._write_buffer_size -= len(data)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
if self._in_handshake:
# Exceptions will be re-raised in _on_handshake_complete.
self._on_handshake_complete(exc)
@@ -706,7 +706,7 @@ class SSLProtocol(protocols.Protocol):
self._fatal_error(exc, 'Fatal error on SSL transport')
def _fatal_error(self, exc, message='Fatal error on transport'):
- if isinstance(exc, OSError):
+ if isinstance(exc, OSError):
if self._loop.get_debug():
logger.debug("%r: %s", self, message, exc_info=True)
else:
diff --git a/contrib/tools/python3/src/Lib/asyncio/staggered.py b/contrib/tools/python3/src/Lib/asyncio/staggered.py
index 9627efdf11..451a53a16f 100644
--- a/contrib/tools/python3/src/Lib/asyncio/staggered.py
+++ b/contrib/tools/python3/src/Lib/asyncio/staggered.py
@@ -1,149 +1,149 @@
-"""Support for running coroutines in parallel with staggered start times."""
-
-__all__ = 'staggered_race',
-
-import contextlib
-import typing
-
-from . import events
-from . import exceptions as exceptions_mod
-from . import locks
-from . import tasks
-
-
-async def staggered_race(
- coro_fns: typing.Iterable[typing.Callable[[], typing.Awaitable]],
- delay: typing.Optional[float],
- *,
- loop: events.AbstractEventLoop = None,
-) -> typing.Tuple[
- typing.Any,
- typing.Optional[int],
- typing.List[typing.Optional[Exception]]
-]:
- """Run coroutines with staggered start times and take the first to finish.
-
- This method takes an iterable of coroutine functions. The first one is
- started immediately. From then on, whenever the immediately preceding one
- fails (raises an exception), or when *delay* seconds has passed, the next
- coroutine is started. This continues until one of the coroutines complete
- successfully, in which case all others are cancelled, or until all
- coroutines fail.
-
- The coroutines provided should be well-behaved in the following way:
-
- * They should only ``return`` if completed successfully.
-
- * They should always raise an exception if they did not complete
- successfully. In particular, if they handle cancellation, they should
- probably reraise, like this::
-
- try:
- # do work
- except asyncio.CancelledError:
- # undo partially completed work
- raise
-
- Args:
- coro_fns: an iterable of coroutine functions, i.e. callables that
- return a coroutine object when called. Use ``functools.partial`` or
- lambdas to pass arguments.
-
- delay: amount of time, in seconds, between starting coroutines. If
- ``None``, the coroutines will run sequentially.
-
- loop: the event loop to use.
-
- Returns:
- tuple *(winner_result, winner_index, exceptions)* where
-
- - *winner_result*: the result of the winning coroutine, or ``None``
- if no coroutines won.
-
- - *winner_index*: the index of the winning coroutine in
- ``coro_fns``, or ``None`` if no coroutines won. If the winning
- coroutine may return None on success, *winner_index* can be used
- to definitively determine whether any coroutine won.
-
- - *exceptions*: list of exceptions returned by the coroutines.
- ``len(exceptions)`` is equal to the number of coroutines actually
- started, and the order is the same as in ``coro_fns``. The winning
- coroutine's entry is ``None``.
-
- """
- # TODO: when we have aiter() and anext(), allow async iterables in coro_fns.
- loop = loop or events.get_running_loop()
- enum_coro_fns = enumerate(coro_fns)
- winner_result = None
- winner_index = None
- exceptions = []
- running_tasks = []
-
- async def run_one_coro(
- previous_failed: typing.Optional[locks.Event]) -> None:
- # Wait for the previous task to finish, or for delay seconds
- if previous_failed is not None:
- with contextlib.suppress(exceptions_mod.TimeoutError):
- # Use asyncio.wait_for() instead of asyncio.wait() here, so
- # that if we get cancelled at this point, Event.wait() is also
- # cancelled, otherwise there will be a "Task destroyed but it is
- # pending" later.
- await tasks.wait_for(previous_failed.wait(), delay)
- # Get the next coroutine to run
- try:
- this_index, coro_fn = next(enum_coro_fns)
- except StopIteration:
- return
- # Start task that will run the next coroutine
- this_failed = locks.Event()
- next_task = loop.create_task(run_one_coro(this_failed))
- running_tasks.append(next_task)
- assert len(running_tasks) == this_index + 2
- # Prepare place to put this coroutine's exceptions if not won
- exceptions.append(None)
- assert len(exceptions) == this_index + 1
-
- try:
- result = await coro_fn()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as e:
- exceptions[this_index] = e
- this_failed.set() # Kickstart the next coroutine
- else:
- # Store winner's results
- nonlocal winner_index, winner_result
- assert winner_index is None
- winner_index = this_index
- winner_result = result
- # Cancel all other tasks. We take care to not cancel the current
- # task as well. If we do so, then since there is no `await` after
- # here and CancelledError are usually thrown at one, we will
- # encounter a curious corner case where the current task will end
- # up as done() == True, cancelled() == False, exception() ==
- # asyncio.CancelledError. This behavior is specified in
- # https://bugs.python.org/issue30048
- for i, t in enumerate(running_tasks):
- if i != this_index:
- t.cancel()
-
- first_task = loop.create_task(run_one_coro(None))
- running_tasks.append(first_task)
- try:
- # Wait for a growing list of tasks to all finish: poor man's version of
- # curio's TaskGroup or trio's nursery
- done_count = 0
- while done_count != len(running_tasks):
- done, _ = await tasks.wait(running_tasks)
- done_count = len(done)
- # If run_one_coro raises an unhandled exception, it's probably a
- # programming error, and I want to see it.
- if __debug__:
- for d in done:
- if d.done() and not d.cancelled() and d.exception():
- raise d.exception()
- return winner_result, winner_index, exceptions
- finally:
- # Make sure no tasks are left running if we leave this function
- for t in running_tasks:
- t.cancel()
+"""Support for running coroutines in parallel with staggered start times."""
+
+__all__ = 'staggered_race',
+
+import contextlib
+import typing
+
+from . import events
+from . import exceptions as exceptions_mod
+from . import locks
+from . import tasks
+
+
+async def staggered_race(
+ coro_fns: typing.Iterable[typing.Callable[[], typing.Awaitable]],
+ delay: typing.Optional[float],
+ *,
+ loop: events.AbstractEventLoop = None,
+) -> typing.Tuple[
+ typing.Any,
+ typing.Optional[int],
+ typing.List[typing.Optional[Exception]]
+]:
+ """Run coroutines with staggered start times and take the first to finish.
+
+ This method takes an iterable of coroutine functions. The first one is
+ started immediately. From then on, whenever the immediately preceding one
+ fails (raises an exception), or when *delay* seconds has passed, the next
+ coroutine is started. This continues until one of the coroutines complete
+ successfully, in which case all others are cancelled, or until all
+ coroutines fail.
+
+ The coroutines provided should be well-behaved in the following way:
+
+ * They should only ``return`` if completed successfully.
+
+ * They should always raise an exception if they did not complete
+ successfully. In particular, if they handle cancellation, they should
+ probably reraise, like this::
+
+ try:
+ # do work
+ except asyncio.CancelledError:
+ # undo partially completed work
+ raise
+
+ Args:
+ coro_fns: an iterable of coroutine functions, i.e. callables that
+ return a coroutine object when called. Use ``functools.partial`` or
+ lambdas to pass arguments.
+
+ delay: amount of time, in seconds, between starting coroutines. If
+ ``None``, the coroutines will run sequentially.
+
+ loop: the event loop to use.
+
+ Returns:
+ tuple *(winner_result, winner_index, exceptions)* where
+
+ - *winner_result*: the result of the winning coroutine, or ``None``
+ if no coroutines won.
+
+ - *winner_index*: the index of the winning coroutine in
+ ``coro_fns``, or ``None`` if no coroutines won. If the winning
+ coroutine may return None on success, *winner_index* can be used
+ to definitively determine whether any coroutine won.
+
+ - *exceptions*: list of exceptions returned by the coroutines.
+ ``len(exceptions)`` is equal to the number of coroutines actually
+ started, and the order is the same as in ``coro_fns``. The winning
+ coroutine's entry is ``None``.
+
+ """
+ # TODO: when we have aiter() and anext(), allow async iterables in coro_fns.
+ loop = loop or events.get_running_loop()
+ enum_coro_fns = enumerate(coro_fns)
+ winner_result = None
+ winner_index = None
+ exceptions = []
+ running_tasks = []
+
+ async def run_one_coro(
+ previous_failed: typing.Optional[locks.Event]) -> None:
+ # Wait for the previous task to finish, or for delay seconds
+ if previous_failed is not None:
+ with contextlib.suppress(exceptions_mod.TimeoutError):
+ # Use asyncio.wait_for() instead of asyncio.wait() here, so
+ # that if we get cancelled at this point, Event.wait() is also
+ # cancelled, otherwise there will be a "Task destroyed but it is
+ # pending" later.
+ await tasks.wait_for(previous_failed.wait(), delay)
+ # Get the next coroutine to run
+ try:
+ this_index, coro_fn = next(enum_coro_fns)
+ except StopIteration:
+ return
+ # Start task that will run the next coroutine
+ this_failed = locks.Event()
+ next_task = loop.create_task(run_one_coro(this_failed))
+ running_tasks.append(next_task)
+ assert len(running_tasks) == this_index + 2
+ # Prepare place to put this coroutine's exceptions if not won
+ exceptions.append(None)
+ assert len(exceptions) == this_index + 1
+
+ try:
+ result = await coro_fn()
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as e:
+ exceptions[this_index] = e
+ this_failed.set() # Kickstart the next coroutine
+ else:
+ # Store winner's results
+ nonlocal winner_index, winner_result
+ assert winner_index is None
+ winner_index = this_index
+ winner_result = result
+ # Cancel all other tasks. We take care to not cancel the current
+ # task as well. If we do so, then since there is no `await` after
+ # here and CancelledError are usually thrown at one, we will
+ # encounter a curious corner case where the current task will end
+ # up as done() == True, cancelled() == False, exception() ==
+ # asyncio.CancelledError. This behavior is specified in
+ # https://bugs.python.org/issue30048
+ for i, t in enumerate(running_tasks):
+ if i != this_index:
+ t.cancel()
+
+ first_task = loop.create_task(run_one_coro(None))
+ running_tasks.append(first_task)
+ try:
+ # Wait for a growing list of tasks to all finish: poor man's version of
+ # curio's TaskGroup or trio's nursery
+ done_count = 0
+ while done_count != len(running_tasks):
+ done, _ = await tasks.wait(running_tasks)
+ done_count = len(done)
+ # If run_one_coro raises an unhandled exception, it's probably a
+ # programming error, and I want to see it.
+ if __debug__:
+ for d in done:
+ if d.done() and not d.cancelled() and d.exception():
+ raise d.exception()
+ return winner_result, winner_index, exceptions
+ finally:
+ # Make sure no tasks are left running if we leave this function
+ for t in running_tasks:
+ t.cancel()
diff --git a/contrib/tools/python3/src/Lib/asyncio/streams.py b/contrib/tools/python3/src/Lib/asyncio/streams.py
index 9c2cd4ad6b..3c80bb8892 100644
--- a/contrib/tools/python3/src/Lib/asyncio/streams.py
+++ b/contrib/tools/python3/src/Lib/asyncio/streams.py
@@ -1,19 +1,19 @@
__all__ = (
'StreamReader', 'StreamWriter', 'StreamReaderProtocol',
- 'open_connection', 'start_server')
+ 'open_connection', 'start_server')
import socket
-import sys
-import warnings
-import weakref
+import sys
+import warnings
+import weakref
if hasattr(socket, 'AF_UNIX'):
__all__ += ('open_unix_connection', 'start_unix_server')
from . import coroutines
from . import events
-from . import exceptions
-from . import format_helpers
+from . import exceptions
+from . import format_helpers
from . import protocols
from .log import logger
from .tasks import sleep
@@ -43,10 +43,10 @@ async def open_connection(host=None, port=None, *,
"""
if loop is None:
loop = events.get_event_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
reader = StreamReader(limit=limit, loop=loop)
protocol = StreamReaderProtocol(reader, loop=loop)
transport, _ = await loop.create_connection(
@@ -80,10 +80,10 @@ async def start_server(client_connected_cb, host=None, port=None, *,
"""
if loop is None:
loop = events.get_event_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
def factory():
reader = StreamReader(limit=limit, loop=loop)
@@ -102,10 +102,10 @@ if hasattr(socket, 'AF_UNIX'):
"""Similar to `open_connection` but works with UNIX Domain Sockets."""
if loop is None:
loop = events.get_event_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
reader = StreamReader(limit=limit, loop=loop)
protocol = StreamReaderProtocol(reader, loop=loop)
transport, _ = await loop.create_unix_connection(
@@ -118,10 +118,10 @@ if hasattr(socket, 'AF_UNIX'):
"""Similar to `start_server` but works with UNIX Domain Sockets."""
if loop is None:
loop = events.get_event_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
def factory():
reader = StreamReader(limit=limit, loop=loop)
@@ -196,10 +196,10 @@ class FlowControlMixin(protocols.Protocol):
self._drain_waiter = waiter
await waiter
- def _get_close_waiter(self, stream):
- raise NotImplementedError
+ def _get_close_waiter(self, stream):
+ raise NotImplementedError
+
-
class StreamReaderProtocol(FlowControlMixin, protocols.Protocol):
"""Helper class to adapt between Protocol and StreamReader.
@@ -209,86 +209,86 @@ class StreamReaderProtocol(FlowControlMixin, protocols.Protocol):
call inappropriate methods of the protocol.)
"""
- _source_traceback = None
-
+ _source_traceback = None
+
def __init__(self, stream_reader, client_connected_cb=None, loop=None):
super().__init__(loop=loop)
- if stream_reader is not None:
- self._stream_reader_wr = weakref.ref(stream_reader)
- self._source_traceback = stream_reader._source_traceback
- else:
- self._stream_reader_wr = None
- if client_connected_cb is not None:
- # This is a stream created by the `create_server()` function.
- # Keep a strong reference to the reader until a connection
- # is established.
- self._strong_reader = stream_reader
- self._reject_connection = False
+ if stream_reader is not None:
+ self._stream_reader_wr = weakref.ref(stream_reader)
+ self._source_traceback = stream_reader._source_traceback
+ else:
+ self._stream_reader_wr = None
+ if client_connected_cb is not None:
+ # This is a stream created by the `create_server()` function.
+ # Keep a strong reference to the reader until a connection
+ # is established.
+ self._strong_reader = stream_reader
+ self._reject_connection = False
self._stream_writer = None
- self._transport = None
+ self._transport = None
self._client_connected_cb = client_connected_cb
self._over_ssl = False
self._closed = self._loop.create_future()
- @property
- def _stream_reader(self):
- if self._stream_reader_wr is None:
- return None
- return self._stream_reader_wr()
-
+ @property
+ def _stream_reader(self):
+ if self._stream_reader_wr is None:
+ return None
+ return self._stream_reader_wr()
+
def connection_made(self, transport):
- if self._reject_connection:
- context = {
- 'message': ('An open stream was garbage collected prior to '
- 'establishing network connection; '
- 'call "stream.close()" explicitly.')
- }
- if self._source_traceback:
- context['source_traceback'] = self._source_traceback
- self._loop.call_exception_handler(context)
- transport.abort()
- return
- self._transport = transport
- reader = self._stream_reader
- if reader is not None:
- reader.set_transport(transport)
+ if self._reject_connection:
+ context = {
+ 'message': ('An open stream was garbage collected prior to '
+ 'establishing network connection; '
+ 'call "stream.close()" explicitly.')
+ }
+ if self._source_traceback:
+ context['source_traceback'] = self._source_traceback
+ self._loop.call_exception_handler(context)
+ transport.abort()
+ return
+ self._transport = transport
+ reader = self._stream_reader
+ if reader is not None:
+ reader.set_transport(transport)
self._over_ssl = transport.get_extra_info('sslcontext') is not None
if self._client_connected_cb is not None:
self._stream_writer = StreamWriter(transport, self,
- reader,
+ reader,
self._loop)
- res = self._client_connected_cb(reader,
+ res = self._client_connected_cb(reader,
self._stream_writer)
if coroutines.iscoroutine(res):
self._loop.create_task(res)
- self._strong_reader = None
+ self._strong_reader = None
def connection_lost(self, exc):
- reader = self._stream_reader
- if reader is not None:
+ reader = self._stream_reader
+ if reader is not None:
if exc is None:
- reader.feed_eof()
+ reader.feed_eof()
else:
- reader.set_exception(exc)
+ reader.set_exception(exc)
if not self._closed.done():
if exc is None:
self._closed.set_result(None)
else:
self._closed.set_exception(exc)
super().connection_lost(exc)
- self._stream_reader_wr = None
+ self._stream_reader_wr = None
self._stream_writer = None
- self._transport = None
+ self._transport = None
def data_received(self, data):
- reader = self._stream_reader
- if reader is not None:
- reader.feed_data(data)
+ reader = self._stream_reader
+ if reader is not None:
+ reader.feed_data(data)
def eof_received(self):
- reader = self._stream_reader
- if reader is not None:
- reader.feed_eof()
+ reader = self._stream_reader
+ if reader is not None:
+ reader.feed_eof()
if self._over_ssl:
# Prevent a warning in SSLProtocol.eof_received:
# "returning true from eof_received()
@@ -296,9 +296,9 @@ class StreamReaderProtocol(FlowControlMixin, protocols.Protocol):
return False
return True
- def _get_close_waiter(self, stream):
- return self._closed
-
+ def _get_close_waiter(self, stream):
+ return self._closed
+
def __del__(self):
# Prevent reports about unhandled exceptions.
# Better than self._closed._log_traceback = False hack
@@ -324,8 +324,8 @@ class StreamWriter:
assert reader is None or isinstance(reader, StreamReader)
self._reader = reader
self._loop = loop
- self._complete_fut = self._loop.create_future()
- self._complete_fut.set_result(None)
+ self._complete_fut = self._loop.create_future()
+ self._complete_fut.set_result(None)
def __repr__(self):
info = [self.__class__.__name__, f'transport={self._transport!r}']
@@ -356,7 +356,7 @@ class StreamWriter:
return self._transport.is_closing()
async def wait_closed(self):
- await self._protocol._get_close_waiter(self)
+ await self._protocol._get_close_waiter(self)
def get_extra_info(self, name, default=None):
return self._transport.get_extra_info(name, default)
@@ -374,23 +374,23 @@ class StreamWriter:
if exc is not None:
raise exc
if self._transport.is_closing():
- # Wait for protocol.connection_lost() call
- # Raise connection closing error if any,
- # ConnectionResetError otherwise
+ # Wait for protocol.connection_lost() call
+ # Raise connection closing error if any,
+ # ConnectionResetError otherwise
# Yield to the event loop so connection_lost() may be
# called. Without this, _drain_helper() would return
# immediately, and code that calls
# write(...); await drain()
# in a loop would never call connection_lost(), so it
# would not see an error when the socket is closed.
- await sleep(0)
+ await sleep(0)
await self._protocol._drain_helper()
class StreamReader:
- _source_traceback = None
-
+ _source_traceback = None
+
def __init__(self, limit=_DEFAULT_LIMIT, loop=None):
# The line length limit is a security feature;
# it also doubles as half the buffer limit.
@@ -409,9 +409,9 @@ class StreamReader:
self._exception = None
self._transport = None
self._paused = False
- if self._loop.get_debug():
- self._source_traceback = format_helpers.extract_stack(
- sys._getframe(1))
+ if self._loop.get_debug():
+ self._source_traceback = format_helpers.extract_stack(
+ sys._getframe(1))
def __repr__(self):
info = ['StreamReader']
@@ -538,9 +538,9 @@ class StreamReader:
seplen = len(sep)
try:
line = await self.readuntil(sep)
- except exceptions.IncompleteReadError as e:
+ except exceptions.IncompleteReadError as e:
return e.partial
- except exceptions.LimitOverrunError as e:
+ except exceptions.LimitOverrunError as e:
if self._buffer.startswith(sep, e.consumed):
del self._buffer[:e.consumed + seplen]
else:
@@ -615,7 +615,7 @@ class StreamReader:
# see upper comment for explanation.
offset = buflen + 1 - seplen
if offset > self._limit:
- raise exceptions.LimitOverrunError(
+ raise exceptions.LimitOverrunError(
'Separator is not found, and chunk exceed the limit',
offset)
@@ -626,13 +626,13 @@ class StreamReader:
if self._eof:
chunk = bytes(self._buffer)
self._buffer.clear()
- raise exceptions.IncompleteReadError(chunk, None)
+ raise exceptions.IncompleteReadError(chunk, None)
# _wait_for_data() will resume reading if stream was paused.
await self._wait_for_data('readuntil')
if isep > self._limit:
- raise exceptions.LimitOverrunError(
+ raise exceptions.LimitOverrunError(
'Separator is found, but chunk is longer than limit', isep)
chunk = self._buffer[:isep + seplen]
@@ -718,7 +718,7 @@ class StreamReader:
if self._eof:
incomplete = bytes(self._buffer)
self._buffer.clear()
- raise exceptions.IncompleteReadError(incomplete, n)
+ raise exceptions.IncompleteReadError(incomplete, n)
await self._wait_for_data('readexactly')
diff --git a/contrib/tools/python3/src/Lib/asyncio/subprocess.py b/contrib/tools/python3/src/Lib/asyncio/subprocess.py
index 73b0713687..820304ecca 100644
--- a/contrib/tools/python3/src/Lib/asyncio/subprocess.py
+++ b/contrib/tools/python3/src/Lib/asyncio/subprocess.py
@@ -1,7 +1,7 @@
__all__ = 'create_subprocess_exec', 'create_subprocess_shell'
import subprocess
-import warnings
+import warnings
from . import events
from . import protocols
@@ -26,7 +26,7 @@ class SubprocessStreamProtocol(streams.FlowControlMixin,
self._transport = None
self._process_exited = False
self._pipe_fds = []
- self._stdin_closed = self._loop.create_future()
+ self._stdin_closed = self._loop.create_future()
def __repr__(self):
info = [self.__class__.__name__]
@@ -78,10 +78,10 @@ class SubprocessStreamProtocol(streams.FlowControlMixin,
if pipe is not None:
pipe.close()
self.connection_lost(exc)
- if exc is None:
- self._stdin_closed.set_result(None)
- else:
- self._stdin_closed.set_exception(exc)
+ if exc is None:
+ self._stdin_closed.set_result(None)
+ else:
+ self._stdin_closed.set_exception(exc)
return
if fd == 1:
reader = self.stdout
@@ -108,11 +108,11 @@ class SubprocessStreamProtocol(streams.FlowControlMixin,
self._transport.close()
self._transport = None
- def _get_close_waiter(self, stream):
- if stream is self.stdin:
- return self._stdin_closed
+ def _get_close_waiter(self, stream):
+ if stream is self.stdin:
+ return self._stdin_closed
+
-
class Process:
def __init__(self, transport, protocol, loop):
self._transport = transport
@@ -193,8 +193,8 @@ class Process:
stderr = self._read_stream(2)
else:
stderr = self._noop()
- stdin, stdout, stderr = await tasks._gather(stdin, stdout, stderr,
- loop=self._loop)
+ stdin, stdout, stderr = await tasks._gather(stdin, stdout, stderr,
+ loop=self._loop)
await self.wait()
return (stdout, stderr)
@@ -204,13 +204,13 @@ async def create_subprocess_shell(cmd, stdin=None, stdout=None, stderr=None,
**kwds):
if loop is None:
loop = events.get_event_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8 "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning,
- stacklevel=2
- )
-
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8 "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning,
+ stacklevel=2
+ )
+
protocol_factory = lambda: SubprocessStreamProtocol(limit=limit,
loop=loop)
transport, protocol = await loop.subprocess_shell(
@@ -225,12 +225,12 @@ async def create_subprocess_exec(program, *args, stdin=None, stdout=None,
limit=streams._DEFAULT_LIMIT, **kwds):
if loop is None:
loop = events.get_event_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8 "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning,
- stacklevel=2
- )
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8 "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning,
+ stacklevel=2
+ )
protocol_factory = lambda: SubprocessStreamProtocol(limit=limit,
loop=loop)
transport, protocol = await loop.subprocess_exec(
diff --git a/contrib/tools/python3/src/Lib/asyncio/tasks.py b/contrib/tools/python3/src/Lib/asyncio/tasks.py
index d378a369ba..27a3c8c5a8 100644
--- a/contrib/tools/python3/src/Lib/asyncio/tasks.py
+++ b/contrib/tools/python3/src/Lib/asyncio/tasks.py
@@ -13,7 +13,7 @@ import concurrent.futures
import contextvars
import functools
import inspect
-import itertools
+import itertools
import types
import warnings
import weakref
@@ -21,16 +21,16 @@ import weakref
from . import base_tasks
from . import coroutines
from . import events
-from . import exceptions
+from . import exceptions
from . import futures
-from .coroutines import _is_coroutine
+from .coroutines import _is_coroutine
+
+# Helper to generate new task names
+# This uses itertools.count() instead of a "+= 1" operation because the latter
+# is not thread safe. See bpo-11866 for a longer explanation.
+_task_name_counter = itertools.count(1).__next__
-# Helper to generate new task names
-# This uses itertools.count() instead of a "+= 1" operation because the latter
-# is not thread safe. See bpo-11866 for a longer explanation.
-_task_name_counter = itertools.count(1).__next__
-
def current_task(loop=None):
"""Return a currently executed task."""
if loop is None:
@@ -42,22 +42,22 @@ def all_tasks(loop=None):
"""Return a set of all tasks for the loop."""
if loop is None:
loop = events.get_running_loop()
- # Looping over a WeakSet (_all_tasks) isn't safe as it can be updated from another
- # thread while we do so. Therefore we cast it to list prior to filtering. The list
- # cast itself requires iteration, so we repeat it several times ignoring
- # RuntimeErrors (which are not very likely to occur). See issues 34970 and 36607 for
- # details.
- i = 0
- while True:
- try:
- tasks = list(_all_tasks)
- except RuntimeError:
- i += 1
- if i >= 1000:
- raise
- else:
- break
- return {t for t in tasks
+ # Looping over a WeakSet (_all_tasks) isn't safe as it can be updated from another
+ # thread while we do so. Therefore we cast it to list prior to filtering. The list
+ # cast itself requires iteration, so we repeat it several times ignoring
+ # RuntimeErrors (which are not very likely to occur). See issues 34970 and 36607 for
+ # details.
+ i = 0
+ while True:
+ try:
+ tasks = list(_all_tasks)
+ except RuntimeError:
+ i += 1
+ if i >= 1000:
+ raise
+ else:
+ break
+ return {t for t in tasks
if futures._get_loop(t) is loop and not t.done()}
@@ -67,34 +67,34 @@ def _all_tasks_compat(loop=None):
# method.
if loop is None:
loop = events.get_event_loop()
- # Looping over a WeakSet (_all_tasks) isn't safe as it can be updated from another
- # thread while we do so. Therefore we cast it to list prior to filtering. The list
- # cast itself requires iteration, so we repeat it several times ignoring
- # RuntimeErrors (which are not very likely to occur). See issues 34970 and 36607 for
- # details.
- i = 0
- while True:
- try:
- tasks = list(_all_tasks)
- except RuntimeError:
- i += 1
- if i >= 1000:
- raise
- else:
- break
- return {t for t in tasks if futures._get_loop(t) is loop}
-
-
-def _set_task_name(task, name):
- if name is not None:
- try:
- set_name = task.set_name
- except AttributeError:
- pass
- else:
- set_name(name)
-
-
+ # Looping over a WeakSet (_all_tasks) isn't safe as it can be updated from another
+ # thread while we do so. Therefore we cast it to list prior to filtering. The list
+ # cast itself requires iteration, so we repeat it several times ignoring
+ # RuntimeErrors (which are not very likely to occur). See issues 34970 and 36607 for
+ # details.
+ i = 0
+ while True:
+ try:
+ tasks = list(_all_tasks)
+ except RuntimeError:
+ i += 1
+ if i >= 1000:
+ raise
+ else:
+ break
+ return {t for t in tasks if futures._get_loop(t) is loop}
+
+
+def _set_task_name(task, name):
+ if name is not None:
+ try:
+ set_name = task.set_name
+ except AttributeError:
+ pass
+ else:
+ set_name(name)
+
+
class Task(futures._PyFuture): # Inherit Python Task implementation
# from a Python Future implementation.
@@ -113,7 +113,7 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
# status is still pending
_log_destroy_pending = True
- def __init__(self, coro, *, loop=None, name=None):
+ def __init__(self, coro, *, loop=None, name=None):
super().__init__(loop=loop)
if self._source_traceback:
del self._source_traceback[-1]
@@ -123,11 +123,11 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
self._log_destroy_pending = False
raise TypeError(f"a coroutine was expected, got {coro!r}")
- if name is None:
- self._name = f'Task-{_task_name_counter()}'
- else:
- self._name = str(name)
-
+ if name is None:
+ self._name = f'Task-{_task_name_counter()}'
+ else:
+ self._name = str(name)
+
self._must_cancel = False
self._fut_waiter = None
self._coro = coro
@@ -147,21 +147,21 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
self._loop.call_exception_handler(context)
super().__del__()
- def __class_getitem__(cls, type):
- return cls
-
+ def __class_getitem__(cls, type):
+ return cls
+
def _repr_info(self):
return base_tasks._task_repr_info(self)
- def get_coro(self):
- return self._coro
-
- def get_name(self):
- return self._name
-
- def set_name(self, value):
- self._name = str(value)
-
+ def get_coro(self):
+ return self._coro
+
+ def get_name(self):
+ return self._name
+
+ def set_name(self, value):
+ self._name = str(value)
+
def set_result(self, result):
raise RuntimeError('Task does not support set_result operation')
@@ -202,7 +202,7 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
"""
return base_tasks._task_print_stack(self, limit, file)
- def cancel(self, msg=None):
+ def cancel(self, msg=None):
"""Request that this task cancel itself.
This arranges for a CancelledError to be thrown into the
@@ -226,23 +226,23 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
if self.done():
return False
if self._fut_waiter is not None:
- if self._fut_waiter.cancel(msg=msg):
+ if self._fut_waiter.cancel(msg=msg):
# Leave self._fut_waiter; it may be a Task that
# catches and ignores the cancellation so we may have
# to cancel it again later.
return True
# It must be the case that self.__step is already scheduled.
self._must_cancel = True
- self._cancel_message = msg
+ self._cancel_message = msg
return True
def __step(self, exc=None):
if self.done():
- raise exceptions.InvalidStateError(
+ raise exceptions.InvalidStateError(
f'_step(): already done: {self!r}, {exc!r}')
if self._must_cancel:
- if not isinstance(exc, exceptions.CancelledError):
- exc = self._make_cancelled_error()
+ if not isinstance(exc, exceptions.CancelledError):
+ exc = self._make_cancelled_error()
self._must_cancel = False
coro = self._coro
self._fut_waiter = None
@@ -260,16 +260,16 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
if self._must_cancel:
# Task is cancelled right before coro stops.
self._must_cancel = False
- super().cancel(msg=self._cancel_message)
+ super().cancel(msg=self._cancel_message)
else:
super().set_result(exc.value)
- except exceptions.CancelledError as exc:
- # Save the original exception so we can chain it later.
- self._cancelled_exc = exc
+ except exceptions.CancelledError as exc:
+ # Save the original exception so we can chain it later.
+ self._cancelled_exc = exc
super().cancel() # I.e., Future.cancel(self).
- except (KeyboardInterrupt, SystemExit) as exc:
+ except (KeyboardInterrupt, SystemExit) as exc:
super().set_exception(exc)
- raise
+ raise
except BaseException as exc:
super().set_exception(exc)
else:
@@ -294,8 +294,8 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
self.__wakeup, context=self._context)
self._fut_waiter = result
if self._must_cancel:
- if self._fut_waiter.cancel(
- msg=self._cancel_message):
+ if self._fut_waiter.cancel(
+ msg=self._cancel_message):
self._must_cancel = False
else:
new_exc = RuntimeError(
@@ -326,7 +326,7 @@ class Task(futures._PyFuture): # Inherit Python Task implementation
def __wakeup(self, future):
try:
future.result()
- except BaseException as exc:
+ except BaseException as exc:
# This may also be a cancellation.
self.__step(exc)
else:
@@ -352,15 +352,15 @@ else:
Task = _CTask = _asyncio.Task
-def create_task(coro, *, name=None):
+def create_task(coro, *, name=None):
"""Schedule the execution of a coroutine object in a spawn task.
Return a Task object.
"""
loop = events.get_running_loop()
- task = loop.create_task(coro)
- _set_task_name(task, name)
- return task
+ task = loop.create_task(coro)
+ _set_task_name(task, name)
+ return task
# wait() and as_completed() similar to those in PEP 3148.
@@ -373,7 +373,7 @@ ALL_COMPLETED = concurrent.futures.ALL_COMPLETED
async def wait(fs, *, loop=None, timeout=None, return_when=ALL_COMPLETED):
"""Wait for the Futures and coroutines given by fs to complete.
- The fs iterable must not be empty.
+ The fs iterable must not be empty.
Coroutines will be wrapped in Tasks.
@@ -394,22 +394,22 @@ async def wait(fs, *, loop=None, timeout=None, return_when=ALL_COMPLETED):
raise ValueError(f'Invalid return_when value: {return_when}')
if loop is None:
- loop = events.get_running_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
-
- fs = set(fs)
-
- if any(coroutines.iscoroutine(f) for f in fs):
- warnings.warn("The explicit passing of coroutine objects to "
- "asyncio.wait() is deprecated since Python 3.8, and "
- "scheduled for removal in Python 3.11.",
- DeprecationWarning, stacklevel=2)
-
- fs = {ensure_future(f, loop=loop) for f in fs}
-
+ loop = events.get_running_loop()
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
+
+ fs = set(fs)
+
+ if any(coroutines.iscoroutine(f) for f in fs):
+ warnings.warn("The explicit passing of coroutine objects to "
+ "asyncio.wait() is deprecated since Python 3.8, and "
+ "scheduled for removal in Python 3.11.",
+ DeprecationWarning, stacklevel=2)
+
+ fs = {ensure_future(f, loop=loop) for f in fs}
+
return await _wait(fs, timeout, return_when, loop)
@@ -432,11 +432,11 @@ async def wait_for(fut, timeout, *, loop=None):
This function is a coroutine.
"""
if loop is None:
- loop = events.get_running_loop()
- else:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ loop = events.get_running_loop()
+ else:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
if timeout is None:
return await fut
@@ -447,11 +447,11 @@ async def wait_for(fut, timeout, *, loop=None):
if fut.done():
return fut.result()
- await _cancel_and_wait(fut, loop=loop)
- try:
- return fut.result()
- except exceptions.CancelledError as exc:
- raise exceptions.TimeoutError() from exc
+ await _cancel_and_wait(fut, loop=loop)
+ try:
+ return fut.result()
+ except exceptions.CancelledError as exc:
+ raise exceptions.TimeoutError() from exc
waiter = loop.create_future()
timeout_handle = loop.call_later(timeout, _release_waiter, waiter)
@@ -464,16 +464,16 @@ async def wait_for(fut, timeout, *, loop=None):
# wait until the future completes or the timeout
try:
await waiter
- except exceptions.CancelledError:
- if fut.done():
- return fut.result()
- else:
- fut.remove_done_callback(cb)
- # We must ensure that the task is not running
- # after wait_for() returns.
- # See https://bugs.python.org/issue32751
- await _cancel_and_wait(fut, loop=loop)
- raise
+ except exceptions.CancelledError:
+ if fut.done():
+ return fut.result()
+ else:
+ fut.remove_done_callback(cb)
+ # We must ensure that the task is not running
+ # after wait_for() returns.
+ # See https://bugs.python.org/issue32751
+ await _cancel_and_wait(fut, loop=loop)
+ raise
if fut.done():
return fut.result()
@@ -483,13 +483,13 @@ async def wait_for(fut, timeout, *, loop=None):
# after wait_for() returns.
# See https://bugs.python.org/issue32751
await _cancel_and_wait(fut, loop=loop)
- # In case task cancellation failed with some
- # exception, we should re-raise it
- # See https://bugs.python.org/issue40607
- try:
- return fut.result()
- except exceptions.CancelledError as exc:
- raise exceptions.TimeoutError() from exc
+ # In case task cancellation failed with some
+ # exception, we should re-raise it
+ # See https://bugs.python.org/issue40607
+ try:
+ return fut.result()
+ except exceptions.CancelledError as exc:
+ raise exceptions.TimeoutError() from exc
finally:
timeout_handle.cancel()
@@ -526,8 +526,8 @@ async def _wait(fs, timeout, return_when, loop):
finally:
if timeout_handle is not None:
timeout_handle.cancel()
- for f in fs:
- f.remove_done_callback(_on_completion)
+ for f in fs:
+ f.remove_done_callback(_on_completion)
done, pending = set(), set()
for f in fs:
@@ -574,19 +574,19 @@ def as_completed(fs, *, loop=None, timeout=None):
Note: The futures 'f' are not necessarily members of fs.
"""
if futures.isfuture(fs) or coroutines.iscoroutine(fs):
- raise TypeError(f"expect an iterable of futures, not {type(fs).__name__}")
-
- if loop is not None:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
-
+ raise TypeError(f"expect an iterable of futures, not {type(fs).__name__}")
+
+ if loop is not None:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
+
from .queues import Queue # Import here to avoid circular import problem.
done = Queue(loop=loop)
-
- if loop is None:
- loop = events.get_event_loop()
- todo = {ensure_future(f, loop=loop) for f in set(fs)}
+
+ if loop is None:
+ loop = events.get_event_loop()
+ todo = {ensure_future(f, loop=loop) for f in set(fs)}
timeout_handle = None
def _on_timeout():
@@ -607,7 +607,7 @@ def as_completed(fs, *, loop=None, timeout=None):
f = await done.get()
if f is None:
# Dummy value from _on_timeout().
- raise exceptions.TimeoutError
+ raise exceptions.TimeoutError
return f.result() # May raise f.exception().
for f in todo:
@@ -632,18 +632,18 @@ def __sleep0():
async def sleep(delay, result=None, *, loop=None):
"""Coroutine that completes after a given time (in seconds)."""
- if loop is not None:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
-
+ if loop is not None:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
+
if delay <= 0:
await __sleep0()
return result
if loop is None:
- loop = events.get_running_loop()
-
+ loop = events.get_running_loop()
+
future = loop.create_future()
h = loop.call_later(delay,
futures._set_result_unless_cancelled,
@@ -668,8 +668,8 @@ def ensure_future(coro_or_future, *, loop=None):
return task
elif futures.isfuture(coro_or_future):
if loop is not None and loop is not futures._get_loop(coro_or_future):
- raise ValueError('The future belongs to a different loop than '
- 'the one specified as the loop argument')
+ raise ValueError('The future belongs to a different loop than '
+ 'the one specified as the loop argument')
return coro_or_future
elif inspect.isawaitable(coro_or_future):
return ensure_future(_wrap_awaitable(coro_or_future), loop=loop)
@@ -678,7 +678,7 @@ def ensure_future(coro_or_future, *, loop=None):
'required')
-@types.coroutine
+@types.coroutine
def _wrap_awaitable(awaitable):
"""Helper for asyncio.ensure_future().
@@ -687,9 +687,9 @@ def _wrap_awaitable(awaitable):
"""
return (yield from awaitable.__await__())
-_wrap_awaitable._is_coroutine = _is_coroutine
+_wrap_awaitable._is_coroutine = _is_coroutine
+
-
class _GatheringFuture(futures.Future):
"""Helper for gather().
@@ -703,12 +703,12 @@ class _GatheringFuture(futures.Future):
self._children = children
self._cancel_requested = False
- def cancel(self, msg=None):
+ def cancel(self, msg=None):
if self.done():
return False
ret = False
for child in self._children:
- if child.cancel(msg=msg):
+ if child.cancel(msg=msg):
ret = True
if ret:
# If any child tasks were actually cancelled, we should
@@ -740,23 +740,23 @@ def gather(*coros_or_futures, loop=None, return_exceptions=False):
the outer Future is *not* cancelled in this case. (This is to
prevent the cancellation of one child to cause other children to
be cancelled.)
-
- If *return_exceptions* is False, cancelling gather() after it
- has been marked done won't cancel any submitted awaitables.
- For instance, gather can be marked done after propagating an
- exception to the caller, therefore, calling ``gather.cancel()``
- after catching an exception (raised by one of the awaitables) from
- gather won't cancel any other awaitables.
+
+ If *return_exceptions* is False, cancelling gather() after it
+ has been marked done won't cancel any submitted awaitables.
+ For instance, gather can be marked done after propagating an
+ exception to the caller, therefore, calling ``gather.cancel()``
+ after catching an exception (raised by one of the awaitables) from
+ gather won't cancel any other awaitables.
"""
- if loop is not None:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
-
- return _gather(*coros_or_futures, loop=loop, return_exceptions=return_exceptions)
-
-
-def _gather(*coros_or_futures, loop=None, return_exceptions=False):
+ if loop is not None:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
+
+ return _gather(*coros_or_futures, loop=loop, return_exceptions=return_exceptions)
+
+
+def _gather(*coros_or_futures, loop=None, return_exceptions=False):
if not coros_or_futures:
if loop is None:
loop = events.get_event_loop()
@@ -779,7 +779,7 @@ def _gather(*coros_or_futures, loop=None, return_exceptions=False):
# Check if 'fut' is cancelled first, as
# 'fut.exception()' will *raise* a CancelledError
# instead of returning it.
- exc = fut._make_cancelled_error()
+ exc = fut._make_cancelled_error()
outer.set_exception(exc)
return
else:
@@ -795,15 +795,15 @@ def _gather(*coros_or_futures, loop=None, return_exceptions=False):
for fut in children:
if fut.cancelled():
- # Check if 'fut' is cancelled first, as 'fut.exception()'
- # will *raise* a CancelledError instead of returning it.
- # Also, since we're adding the exception return value
- # to 'results' instead of raising it, don't bother
- # setting __context__. This also lets us preserve
- # calling '_make_cancelled_error()' at most once.
- res = exceptions.CancelledError(
- '' if fut._cancel_message is None else
- fut._cancel_message)
+ # Check if 'fut' is cancelled first, as 'fut.exception()'
+ # will *raise* a CancelledError instead of returning it.
+ # Also, since we're adding the exception return value
+ # to 'results' instead of raising it, don't bother
+ # setting __context__. This also lets us preserve
+ # calling '_make_cancelled_error()' at most once.
+ res = exceptions.CancelledError(
+ '' if fut._cancel_message is None else
+ fut._cancel_message)
else:
res = fut.exception()
if res is None:
@@ -814,8 +814,8 @@ def _gather(*coros_or_futures, loop=None, return_exceptions=False):
# If gather is being cancelled we must propagate the
# cancellation regardless of *return_exceptions* argument.
# See issue 32684.
- exc = fut._make_cancelled_error()
- outer.set_exception(exc)
+ exc = fut._make_cancelled_error()
+ outer.set_exception(exc)
else:
outer.set_result(results)
@@ -875,10 +875,10 @@ def shield(arg, *, loop=None):
except CancelledError:
res = None
"""
- if loop is not None:
- warnings.warn("The loop argument is deprecated since Python 3.8, "
- "and scheduled for removal in Python 3.10.",
- DeprecationWarning, stacklevel=2)
+ if loop is not None:
+ warnings.warn("The loop argument is deprecated since Python 3.8, "
+ "and scheduled for removal in Python 3.10.",
+ DeprecationWarning, stacklevel=2)
inner = ensure_future(arg, loop=loop)
if inner.done():
# Shortcut.
@@ -886,7 +886,7 @@ def shield(arg, *, loop=None):
loop = futures._get_loop(inner)
outer = loop.create_future()
- def _inner_done_callback(inner):
+ def _inner_done_callback(inner):
if outer.cancelled():
if not inner.cancelled():
# Mark inner's result as retrieved.
@@ -902,13 +902,13 @@ def shield(arg, *, loop=None):
else:
outer.set_result(inner.result())
-
- def _outer_done_callback(outer):
- if not inner.done():
- inner.remove_done_callback(_inner_done_callback)
-
- inner.add_done_callback(_inner_done_callback)
- outer.add_done_callback(_outer_done_callback)
+
+ def _outer_done_callback(outer):
+ if not inner.done():
+ inner.remove_done_callback(_inner_done_callback)
+
+ inner.add_done_callback(_inner_done_callback)
+ outer.add_done_callback(_outer_done_callback)
return outer
@@ -924,9 +924,9 @@ def run_coroutine_threadsafe(coro, loop):
def callback():
try:
futures._chain_future(ensure_future(coro, loop=loop), future)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
if future.set_running_or_notify_cancel():
future.set_exception(exc)
raise
diff --git a/contrib/tools/python3/src/Lib/asyncio/threads.py b/contrib/tools/python3/src/Lib/asyncio/threads.py
index cce2f05e10..db048a8231 100644
--- a/contrib/tools/python3/src/Lib/asyncio/threads.py
+++ b/contrib/tools/python3/src/Lib/asyncio/threads.py
@@ -1,25 +1,25 @@
-"""High-level support for working with threads in asyncio"""
-
-import functools
-import contextvars
-
-from . import events
-
-
-__all__ = "to_thread",
-
-
-async def to_thread(func, /, *args, **kwargs):
- """Asynchronously run function *func* in a separate thread.
-
- Any *args and **kwargs supplied for this function are directly passed
- to *func*. Also, the current :class:`contextvars.Context` is propagated,
- allowing context variables from the main thread to be accessed in the
- separate thread.
-
- Return a coroutine that can be awaited to get the eventual result of *func*.
- """
- loop = events.get_running_loop()
- ctx = contextvars.copy_context()
- func_call = functools.partial(ctx.run, func, *args, **kwargs)
- return await loop.run_in_executor(None, func_call)
+"""High-level support for working with threads in asyncio"""
+
+import functools
+import contextvars
+
+from . import events
+
+
+__all__ = "to_thread",
+
+
+async def to_thread(func, /, *args, **kwargs):
+ """Asynchronously run function *func* in a separate thread.
+
+ Any *args and **kwargs supplied for this function are directly passed
+ to *func*. Also, the current :class:`contextvars.Context` is propagated,
+ allowing context variables from the main thread to be accessed in the
+ separate thread.
+
+ Return a coroutine that can be awaited to get the eventual result of *func*.
+ """
+ loop = events.get_running_loop()
+ ctx = contextvars.copy_context()
+ func_call = functools.partial(ctx.run, func, *args, **kwargs)
+ return await loop.run_in_executor(None, func_call)
diff --git a/contrib/tools/python3/src/Lib/asyncio/transports.py b/contrib/tools/python3/src/Lib/asyncio/transports.py
index 06143ed829..45e155c94c 100644
--- a/contrib/tools/python3/src/Lib/asyncio/transports.py
+++ b/contrib/tools/python3/src/Lib/asyncio/transports.py
@@ -9,8 +9,8 @@ __all__ = (
class BaseTransport:
"""Base class for transports."""
- __slots__ = ('_extra',)
-
+ __slots__ = ('_extra',)
+
def __init__(self, extra=None):
if extra is None:
extra = {}
@@ -29,8 +29,8 @@ class BaseTransport:
Buffered data will be flushed asynchronously. No more data
will be received. After all buffered data is flushed, the
- protocol's connection_lost() method will (eventually) be
- called with None as its argument.
+ protocol's connection_lost() method will (eventually) be
+ called with None as its argument.
"""
raise NotImplementedError
@@ -46,8 +46,8 @@ class BaseTransport:
class ReadTransport(BaseTransport):
"""Interface for read-only transports."""
- __slots__ = ()
-
+ __slots__ = ()
+
def is_reading(self):
"""Return True if the transport is receiving."""
raise NotImplementedError
@@ -72,8 +72,8 @@ class ReadTransport(BaseTransport):
class WriteTransport(BaseTransport):
"""Interface for write-only transports."""
- __slots__ = ()
-
+ __slots__ = ()
+
def set_write_buffer_limits(self, high=None, low=None):
"""Set the high- and low-water limits for write flow control.
@@ -160,14 +160,14 @@ class Transport(ReadTransport, WriteTransport):
except writelines(), which calls write() in a loop.
"""
- __slots__ = ()
+ __slots__ = ()
+
-
class DatagramTransport(BaseTransport):
"""Interface for datagram (UDP) transports."""
- __slots__ = ()
-
+ __slots__ = ()
+
def sendto(self, data, addr=None):
"""Send data to the transport.
@@ -190,8 +190,8 @@ class DatagramTransport(BaseTransport):
class SubprocessTransport(BaseTransport):
- __slots__ = ()
-
+ __slots__ = ()
+
def get_pid(self):
"""Get subprocess id."""
raise NotImplementedError
@@ -259,8 +259,8 @@ class _FlowControlMixin(Transport):
resume_writing() may be called.
"""
- __slots__ = ('_loop', '_protocol_paused', '_high_water', '_low_water')
-
+ __slots__ = ('_loop', '_protocol_paused', '_high_water', '_low_water')
+
def __init__(self, extra=None, loop=None):
super().__init__(extra)
assert loop is not None
@@ -276,9 +276,9 @@ class _FlowControlMixin(Transport):
self._protocol_paused = True
try:
self._protocol.pause_writing()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._loop.call_exception_handler({
'message': 'protocol.pause_writing() failed',
'exception': exc,
@@ -292,9 +292,9 @@ class _FlowControlMixin(Transport):
self._protocol_paused = False
try:
self._protocol.resume_writing()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._loop.call_exception_handler({
'message': 'protocol.resume_writing() failed',
'exception': exc,
diff --git a/contrib/tools/python3/src/Lib/asyncio/trsock.py b/contrib/tools/python3/src/Lib/asyncio/trsock.py
index 80ac049e85..e9ebcc3261 100644
--- a/contrib/tools/python3/src/Lib/asyncio/trsock.py
+++ b/contrib/tools/python3/src/Lib/asyncio/trsock.py
@@ -1,206 +1,206 @@
-import socket
-import warnings
-
-
-class TransportSocket:
-
- """A socket-like wrapper for exposing real transport sockets.
-
- These objects can be safely returned by APIs like
- `transport.get_extra_info('socket')`. All potentially disruptive
- operations (like "socket.close()") are banned.
- """
-
- __slots__ = ('_sock',)
-
- def __init__(self, sock: socket.socket):
- self._sock = sock
-
- def _na(self, what):
- warnings.warn(
- f"Using {what} on sockets returned from get_extra_info('socket') "
- f"will be prohibited in asyncio 3.9. Please report your use case "
- f"to bugs.python.org.",
- DeprecationWarning, source=self)
-
- @property
- def family(self):
- return self._sock.family
-
- @property
- def type(self):
- return self._sock.type
-
- @property
- def proto(self):
- return self._sock.proto
-
- def __repr__(self):
- s = (
- f"<asyncio.TransportSocket fd={self.fileno()}, "
- f"family={self.family!s}, type={self.type!s}, "
- f"proto={self.proto}"
- )
-
- if self.fileno() != -1:
- try:
- laddr = self.getsockname()
- if laddr:
- s = f"{s}, laddr={laddr}"
- except socket.error:
- pass
- try:
- raddr = self.getpeername()
- if raddr:
- s = f"{s}, raddr={raddr}"
- except socket.error:
- pass
-
- return f"{s}>"
-
- def __getstate__(self):
- raise TypeError("Cannot serialize asyncio.TransportSocket object")
-
- def fileno(self):
- return self._sock.fileno()
-
- def dup(self):
- return self._sock.dup()
-
- def get_inheritable(self):
- return self._sock.get_inheritable()
-
- def shutdown(self, how):
- # asyncio doesn't currently provide a high-level transport API
- # to shutdown the connection.
- self._sock.shutdown(how)
-
- def getsockopt(self, *args, **kwargs):
- return self._sock.getsockopt(*args, **kwargs)
-
- def setsockopt(self, *args, **kwargs):
- self._sock.setsockopt(*args, **kwargs)
-
- def getpeername(self):
- return self._sock.getpeername()
-
- def getsockname(self):
- return self._sock.getsockname()
-
- def getsockbyname(self):
- return self._sock.getsockbyname()
-
- def accept(self):
- self._na('accept() method')
- return self._sock.accept()
-
- def connect(self, *args, **kwargs):
- self._na('connect() method')
- return self._sock.connect(*args, **kwargs)
-
- def connect_ex(self, *args, **kwargs):
- self._na('connect_ex() method')
- return self._sock.connect_ex(*args, **kwargs)
-
- def bind(self, *args, **kwargs):
- self._na('bind() method')
- return self._sock.bind(*args, **kwargs)
-
- def ioctl(self, *args, **kwargs):
- self._na('ioctl() method')
- return self._sock.ioctl(*args, **kwargs)
-
- def listen(self, *args, **kwargs):
- self._na('listen() method')
- return self._sock.listen(*args, **kwargs)
-
- def makefile(self):
- self._na('makefile() method')
- return self._sock.makefile()
-
- def sendfile(self, *args, **kwargs):
- self._na('sendfile() method')
- return self._sock.sendfile(*args, **kwargs)
-
- def close(self):
- self._na('close() method')
- return self._sock.close()
-
- def detach(self):
- self._na('detach() method')
- return self._sock.detach()
-
- def sendmsg_afalg(self, *args, **kwargs):
- self._na('sendmsg_afalg() method')
- return self._sock.sendmsg_afalg(*args, **kwargs)
-
- def sendmsg(self, *args, **kwargs):
- self._na('sendmsg() method')
- return self._sock.sendmsg(*args, **kwargs)
-
- def sendto(self, *args, **kwargs):
- self._na('sendto() method')
- return self._sock.sendto(*args, **kwargs)
-
- def send(self, *args, **kwargs):
- self._na('send() method')
- return self._sock.send(*args, **kwargs)
-
- def sendall(self, *args, **kwargs):
- self._na('sendall() method')
- return self._sock.sendall(*args, **kwargs)
-
- def set_inheritable(self, *args, **kwargs):
- self._na('set_inheritable() method')
- return self._sock.set_inheritable(*args, **kwargs)
-
- def share(self, process_id):
- self._na('share() method')
- return self._sock.share(process_id)
-
- def recv_into(self, *args, **kwargs):
- self._na('recv_into() method')
- return self._sock.recv_into(*args, **kwargs)
-
- def recvfrom_into(self, *args, **kwargs):
- self._na('recvfrom_into() method')
- return self._sock.recvfrom_into(*args, **kwargs)
-
- def recvmsg_into(self, *args, **kwargs):
- self._na('recvmsg_into() method')
- return self._sock.recvmsg_into(*args, **kwargs)
-
- def recvmsg(self, *args, **kwargs):
- self._na('recvmsg() method')
- return self._sock.recvmsg(*args, **kwargs)
-
- def recvfrom(self, *args, **kwargs):
- self._na('recvfrom() method')
- return self._sock.recvfrom(*args, **kwargs)
-
- def recv(self, *args, **kwargs):
- self._na('recv() method')
- return self._sock.recv(*args, **kwargs)
-
- def settimeout(self, value):
- if value == 0:
- return
- raise ValueError(
- 'settimeout(): only 0 timeout is allowed on transport sockets')
-
- def gettimeout(self):
- return 0
-
- def setblocking(self, flag):
- if not flag:
- return
- raise ValueError(
- 'setblocking(): transport sockets cannot be blocking')
-
- def __enter__(self):
- self._na('context manager protocol')
- return self._sock.__enter__()
-
- def __exit__(self, *err):
- self._na('context manager protocol')
- return self._sock.__exit__(*err)
+import socket
+import warnings
+
+
+class TransportSocket:
+
+ """A socket-like wrapper for exposing real transport sockets.
+
+ These objects can be safely returned by APIs like
+ `transport.get_extra_info('socket')`. All potentially disruptive
+ operations (like "socket.close()") are banned.
+ """
+
+ __slots__ = ('_sock',)
+
+ def __init__(self, sock: socket.socket):
+ self._sock = sock
+
+ def _na(self, what):
+ warnings.warn(
+ f"Using {what} on sockets returned from get_extra_info('socket') "
+ f"will be prohibited in asyncio 3.9. Please report your use case "
+ f"to bugs.python.org.",
+ DeprecationWarning, source=self)
+
+ @property
+ def family(self):
+ return self._sock.family
+
+ @property
+ def type(self):
+ return self._sock.type
+
+ @property
+ def proto(self):
+ return self._sock.proto
+
+ def __repr__(self):
+ s = (
+ f"<asyncio.TransportSocket fd={self.fileno()}, "
+ f"family={self.family!s}, type={self.type!s}, "
+ f"proto={self.proto}"
+ )
+
+ if self.fileno() != -1:
+ try:
+ laddr = self.getsockname()
+ if laddr:
+ s = f"{s}, laddr={laddr}"
+ except socket.error:
+ pass
+ try:
+ raddr = self.getpeername()
+ if raddr:
+ s = f"{s}, raddr={raddr}"
+ except socket.error:
+ pass
+
+ return f"{s}>"
+
+ def __getstate__(self):
+ raise TypeError("Cannot serialize asyncio.TransportSocket object")
+
+ def fileno(self):
+ return self._sock.fileno()
+
+ def dup(self):
+ return self._sock.dup()
+
+ def get_inheritable(self):
+ return self._sock.get_inheritable()
+
+ def shutdown(self, how):
+ # asyncio doesn't currently provide a high-level transport API
+ # to shutdown the connection.
+ self._sock.shutdown(how)
+
+ def getsockopt(self, *args, **kwargs):
+ return self._sock.getsockopt(*args, **kwargs)
+
+ def setsockopt(self, *args, **kwargs):
+ self._sock.setsockopt(*args, **kwargs)
+
+ def getpeername(self):
+ return self._sock.getpeername()
+
+ def getsockname(self):
+ return self._sock.getsockname()
+
+ def getsockbyname(self):
+ return self._sock.getsockbyname()
+
+ def accept(self):
+ self._na('accept() method')
+ return self._sock.accept()
+
+ def connect(self, *args, **kwargs):
+ self._na('connect() method')
+ return self._sock.connect(*args, **kwargs)
+
+ def connect_ex(self, *args, **kwargs):
+ self._na('connect_ex() method')
+ return self._sock.connect_ex(*args, **kwargs)
+
+ def bind(self, *args, **kwargs):
+ self._na('bind() method')
+ return self._sock.bind(*args, **kwargs)
+
+ def ioctl(self, *args, **kwargs):
+ self._na('ioctl() method')
+ return self._sock.ioctl(*args, **kwargs)
+
+ def listen(self, *args, **kwargs):
+ self._na('listen() method')
+ return self._sock.listen(*args, **kwargs)
+
+ def makefile(self):
+ self._na('makefile() method')
+ return self._sock.makefile()
+
+ def sendfile(self, *args, **kwargs):
+ self._na('sendfile() method')
+ return self._sock.sendfile(*args, **kwargs)
+
+ def close(self):
+ self._na('close() method')
+ return self._sock.close()
+
+ def detach(self):
+ self._na('detach() method')
+ return self._sock.detach()
+
+ def sendmsg_afalg(self, *args, **kwargs):
+ self._na('sendmsg_afalg() method')
+ return self._sock.sendmsg_afalg(*args, **kwargs)
+
+ def sendmsg(self, *args, **kwargs):
+ self._na('sendmsg() method')
+ return self._sock.sendmsg(*args, **kwargs)
+
+ def sendto(self, *args, **kwargs):
+ self._na('sendto() method')
+ return self._sock.sendto(*args, **kwargs)
+
+ def send(self, *args, **kwargs):
+ self._na('send() method')
+ return self._sock.send(*args, **kwargs)
+
+ def sendall(self, *args, **kwargs):
+ self._na('sendall() method')
+ return self._sock.sendall(*args, **kwargs)
+
+ def set_inheritable(self, *args, **kwargs):
+ self._na('set_inheritable() method')
+ return self._sock.set_inheritable(*args, **kwargs)
+
+ def share(self, process_id):
+ self._na('share() method')
+ return self._sock.share(process_id)
+
+ def recv_into(self, *args, **kwargs):
+ self._na('recv_into() method')
+ return self._sock.recv_into(*args, **kwargs)
+
+ def recvfrom_into(self, *args, **kwargs):
+ self._na('recvfrom_into() method')
+ return self._sock.recvfrom_into(*args, **kwargs)
+
+ def recvmsg_into(self, *args, **kwargs):
+ self._na('recvmsg_into() method')
+ return self._sock.recvmsg_into(*args, **kwargs)
+
+ def recvmsg(self, *args, **kwargs):
+ self._na('recvmsg() method')
+ return self._sock.recvmsg(*args, **kwargs)
+
+ def recvfrom(self, *args, **kwargs):
+ self._na('recvfrom() method')
+ return self._sock.recvfrom(*args, **kwargs)
+
+ def recv(self, *args, **kwargs):
+ self._na('recv() method')
+ return self._sock.recv(*args, **kwargs)
+
+ def settimeout(self, value):
+ if value == 0:
+ return
+ raise ValueError(
+ 'settimeout(): only 0 timeout is allowed on transport sockets')
+
+ def gettimeout(self):
+ return 0
+
+ def setblocking(self, flag):
+ if not flag:
+ return
+ raise ValueError(
+ 'setblocking(): transport sockets cannot be blocking')
+
+ def __enter__(self):
+ self._na('context manager protocol')
+ return self._sock.__enter__()
+
+ def __exit__(self, *err):
+ self._na('context manager protocol')
+ return self._sock.__exit__(*err)
diff --git a/contrib/tools/python3/src/Lib/asyncio/unix_events.py b/contrib/tools/python3/src/Lib/asyncio/unix_events.py
index b553e2010b..eecbc101ee 100644
--- a/contrib/tools/python3/src/Lib/asyncio/unix_events.py
+++ b/contrib/tools/python3/src/Lib/asyncio/unix_events.py
@@ -2,7 +2,7 @@
import errno
import io
-import itertools
+import itertools
import os
import selectors
import signal
@@ -18,7 +18,7 @@ from . import base_subprocess
from . import constants
from . import coroutines
from . import events
-from . import exceptions
+from . import exceptions
from . import futures
from . import selector_events
from . import tasks
@@ -29,9 +29,9 @@ from .log import logger
__all__ = (
'SelectorEventLoop',
'AbstractChildWatcher', 'SafeChildWatcher',
- 'FastChildWatcher', 'PidfdChildWatcher',
- 'MultiLoopChildWatcher', 'ThreadedChildWatcher',
- 'DefaultEventLoopPolicy',
+ 'FastChildWatcher', 'PidfdChildWatcher',
+ 'MultiLoopChildWatcher', 'ThreadedChildWatcher',
+ 'DefaultEventLoopPolicy',
)
@@ -101,7 +101,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
try:
# Register a dummy signal handler to ask Python to write the signal
- # number in the wakeup file descriptor. _process_self_data() will
+ # number in the wakeup file descriptor. _process_self_data() will
# read signal numbers from this file descriptor to handle signals.
signal.signal(sig, _sighandler_noop)
@@ -171,8 +171,8 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
if not isinstance(sig, int):
raise TypeError(f'sig must be an int, not {sig!r}')
- if sig not in signal.valid_signals():
- raise ValueError(f'invalid signal number {sig}')
+ if sig not in signal.valid_signals():
+ raise ValueError(f'invalid signal number {sig}')
def _make_read_pipe_transport(self, pipe, protocol, waiter=None,
extra=None):
@@ -186,13 +186,13 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
stdin, stdout, stderr, bufsize,
extra=None, **kwargs):
with events.get_child_watcher() as watcher:
- if not watcher.is_active():
- # Check early.
- # Raising exception before process creation
- # prevents subprocess execution if the watcher
- # is not ready to handle it.
- raise RuntimeError("asyncio.get_child_watcher() is not activated, "
- "subprocess support is not installed.")
+ if not watcher.is_active():
+ # Check early.
+ # Raising exception before process creation
+ # prevents subprocess execution if the watcher
+ # is not ready to handle it.
+ raise RuntimeError("asyncio.get_child_watcher() is not activated, "
+ "subprocess support is not installed.")
waiter = self.create_future()
transp = _UnixSubprocessTransport(self, protocol, args, shell,
stdin, stdout, stderr, bufsize,
@@ -203,9 +203,9 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
self._child_watcher_callback, transp)
try:
await waiter
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException:
transp.close()
await transp._wait()
raise
@@ -323,24 +323,24 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
server._start_serving()
# Skip one loop iteration so that all 'loop.add_reader'
# go through.
- await tasks.sleep(0)
+ await tasks.sleep(0)
return server
async def _sock_sendfile_native(self, sock, file, offset, count):
try:
os.sendfile
- except AttributeError:
- raise exceptions.SendfileNotAvailableError(
+ except AttributeError:
+ raise exceptions.SendfileNotAvailableError(
"os.sendfile() is not available")
try:
fileno = file.fileno()
except (AttributeError, io.UnsupportedOperation) as err:
- raise exceptions.SendfileNotAvailableError("not a regular file")
+ raise exceptions.SendfileNotAvailableError("not a regular file")
try:
fsize = os.fstat(fileno).st_size
- except OSError:
- raise exceptions.SendfileNotAvailableError("not a regular file")
+ except OSError:
+ raise exceptions.SendfileNotAvailableError("not a regular file")
blocksize = count if count else fsize
if not blocksize:
return 0 # empty file
@@ -394,16 +394,16 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
# one being 'file' is not a regular mmap(2)-like
# file, in which case we'll fall back on using
# plain send().
- err = exceptions.SendfileNotAvailableError(
+ err = exceptions.SendfileNotAvailableError(
"os.sendfile call failed")
self._sock_sendfile_update_filepos(fileno, offset, total_sent)
fut.set_exception(err)
else:
self._sock_sendfile_update_filepos(fileno, offset, total_sent)
fut.set_exception(exc)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._sock_sendfile_update_filepos(fileno, offset, total_sent)
fut.set_exception(exc)
else:
@@ -445,7 +445,7 @@ class _UnixReadPipeTransport(transports.ReadTransport):
self._fileno = pipe.fileno()
self._protocol = protocol
self._closing = False
- self._paused = False
+ self._paused = False
mode = os.fstat(self._fileno).st_mode
if not (stat.S_ISFIFO(mode) or
@@ -507,20 +507,20 @@ class _UnixReadPipeTransport(transports.ReadTransport):
self._loop.call_soon(self._call_connection_lost, None)
def pause_reading(self):
- if self._closing or self._paused:
- return
- self._paused = True
+ if self._closing or self._paused:
+ return
+ self._paused = True
self._loop._remove_reader(self._fileno)
- if self._loop.get_debug():
- logger.debug("%r pauses reading", self)
+ if self._loop.get_debug():
+ logger.debug("%r pauses reading", self)
def resume_reading(self):
- if self._closing or not self._paused:
- return
- self._paused = False
+ if self._closing or not self._paused:
+ return
+ self._paused = False
self._loop._add_reader(self._fileno, self._read_ready)
- if self._loop.get_debug():
- logger.debug("%r resumes reading", self)
+ if self._loop.get_debug():
+ logger.debug("%r resumes reading", self)
def set_protocol(self, protocol):
self._protocol = protocol
@@ -535,9 +535,9 @@ class _UnixReadPipeTransport(transports.ReadTransport):
if not self._closing:
self._close(None)
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if self._pipe is not None:
- _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self._pipe.close()
def _fatal_error(self, exc, message='Fatal error on pipe transport'):
@@ -665,9 +665,9 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
n = os.write(self._fileno, data)
except (BlockingIOError, InterruptedError):
n = 0
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._conn_lost += 1
self._fatal_error(exc, 'Fatal write error on pipe transport')
return
@@ -687,9 +687,9 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
n = os.write(self._fileno, self._buffer)
except (BlockingIOError, InterruptedError):
pass
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
self._buffer.clear()
self._conn_lost += 1
# Remove writer here, _fatal_error() doesn't it
@@ -734,9 +734,9 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
# write_eof is all what we needed to close the write pipe
self.write_eof()
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if self._pipe is not None:
- _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
self._pipe.close()
def abort(self):
@@ -744,7 +744,7 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
def _fatal_error(self, exc, message='Fatal error on pipe transport'):
# should be called by exception handler only
- if isinstance(exc, OSError):
+ if isinstance(exc, OSError):
if self._loop.get_debug():
logger.debug("%r: %s", self, message, exc_info=True)
else:
@@ -785,18 +785,18 @@ class _UnixSubprocessTransport(base_subprocess.BaseSubprocessTransport):
# other end). Notably this is needed on AIX, and works
# just fine on other platforms.
stdin, stdin_w = socket.socketpair()
- try:
- self._proc = subprocess.Popen(
- args, shell=shell, stdin=stdin, stdout=stdout, stderr=stderr,
- universal_newlines=False, bufsize=bufsize, **kwargs)
- if stdin_w is not None:
- stdin.close()
- self._proc.stdin = open(stdin_w.detach(), 'wb', buffering=bufsize)
- stdin_w = None
- finally:
- if stdin_w is not None:
- stdin.close()
- stdin_w.close()
+ try:
+ self._proc = subprocess.Popen(
+ args, shell=shell, stdin=stdin, stdout=stdout, stderr=stderr,
+ universal_newlines=False, bufsize=bufsize, **kwargs)
+ if stdin_w is not None:
+ stdin.close()
+ self._proc.stdin = open(stdin_w.detach(), 'wb', buffering=bufsize)
+ stdin_w = None
+ finally:
+ if stdin_w is not None:
+ stdin.close()
+ stdin_w.close()
class AbstractChildWatcher:
@@ -858,15 +858,15 @@ class AbstractChildWatcher:
"""
raise NotImplementedError()
- def is_active(self):
- """Return ``True`` if the watcher is active and is used by the event loop.
-
- Return True if the watcher is installed and ready to handle process exit
- notifications.
-
- """
- raise NotImplementedError()
-
+ def is_active(self):
+ """Return ``True`` if the watcher is active and is used by the event loop.
+
+ Return True if the watcher is installed and ready to handle process exit
+ notifications.
+
+ """
+ raise NotImplementedError()
+
def __enter__(self):
"""Enter the watcher's context and allow starting new processes
@@ -878,98 +878,98 @@ class AbstractChildWatcher:
raise NotImplementedError()
-class PidfdChildWatcher(AbstractChildWatcher):
- """Child watcher implementation using Linux's pid file descriptors.
-
- This child watcher polls process file descriptors (pidfds) to await child
- process termination. In some respects, PidfdChildWatcher is a "Goldilocks"
- child watcher implementation. It doesn't require signals or threads, doesn't
- interfere with any processes launched outside the event loop, and scales
- linearly with the number of subprocesses launched by the event loop. The
- main disadvantage is that pidfds are specific to Linux, and only work on
- recent (5.3+) kernels.
- """
-
- def __init__(self):
- self._loop = None
- self._callbacks = {}
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_value, exc_traceback):
- pass
-
- def is_active(self):
- return self._loop is not None and self._loop.is_running()
-
- def close(self):
- self.attach_loop(None)
-
- def attach_loop(self, loop):
- if self._loop is not None and loop is None and self._callbacks:
- warnings.warn(
- 'A loop is being detached '
- 'from a child watcher with pending handlers',
- RuntimeWarning)
- for pidfd, _, _ in self._callbacks.values():
- self._loop._remove_reader(pidfd)
- os.close(pidfd)
- self._callbacks.clear()
- self._loop = loop
-
- def add_child_handler(self, pid, callback, *args):
- existing = self._callbacks.get(pid)
- if existing is not None:
- self._callbacks[pid] = existing[0], callback, args
- else:
- pidfd = os.pidfd_open(pid)
- self._loop._add_reader(pidfd, self._do_wait, pid)
- self._callbacks[pid] = pidfd, callback, args
-
- def _do_wait(self, pid):
- pidfd, callback, args = self._callbacks.pop(pid)
- self._loop._remove_reader(pidfd)
- try:
- _, status = os.waitpid(pid, 0)
- except ChildProcessError:
- # The child process is already reaped
- # (may happen if waitpid() is called elsewhere).
- returncode = 255
- logger.warning(
- "child process pid %d exit status already read: "
- " will report returncode 255",
- pid)
- else:
- returncode = _compute_returncode(status)
-
- os.close(pidfd)
- callback(pid, returncode, *args)
-
- def remove_child_handler(self, pid):
- try:
- pidfd, _, _ = self._callbacks.pop(pid)
- except KeyError:
- return False
- self._loop._remove_reader(pidfd)
- os.close(pidfd)
- return True
-
-
-def _compute_returncode(status):
- if os.WIFSIGNALED(status):
- # The child process died because of a signal.
- return -os.WTERMSIG(status)
- elif os.WIFEXITED(status):
- # The child process exited (e.g sys.exit()).
- return os.WEXITSTATUS(status)
- else:
- # The child exited, but we don't understand its status.
- # This shouldn't happen, but if it does, let's just
- # return that status; perhaps that helps debug it.
- return status
-
-
+class PidfdChildWatcher(AbstractChildWatcher):
+ """Child watcher implementation using Linux's pid file descriptors.
+
+ This child watcher polls process file descriptors (pidfds) to await child
+ process termination. In some respects, PidfdChildWatcher is a "Goldilocks"
+ child watcher implementation. It doesn't require signals or threads, doesn't
+ interfere with any processes launched outside the event loop, and scales
+ linearly with the number of subprocesses launched by the event loop. The
+ main disadvantage is that pidfds are specific to Linux, and only work on
+ recent (5.3+) kernels.
+ """
+
+ def __init__(self):
+ self._loop = None
+ self._callbacks = {}
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, exc_traceback):
+ pass
+
+ def is_active(self):
+ return self._loop is not None and self._loop.is_running()
+
+ def close(self):
+ self.attach_loop(None)
+
+ def attach_loop(self, loop):
+ if self._loop is not None and loop is None and self._callbacks:
+ warnings.warn(
+ 'A loop is being detached '
+ 'from a child watcher with pending handlers',
+ RuntimeWarning)
+ for pidfd, _, _ in self._callbacks.values():
+ self._loop._remove_reader(pidfd)
+ os.close(pidfd)
+ self._callbacks.clear()
+ self._loop = loop
+
+ def add_child_handler(self, pid, callback, *args):
+ existing = self._callbacks.get(pid)
+ if existing is not None:
+ self._callbacks[pid] = existing[0], callback, args
+ else:
+ pidfd = os.pidfd_open(pid)
+ self._loop._add_reader(pidfd, self._do_wait, pid)
+ self._callbacks[pid] = pidfd, callback, args
+
+ def _do_wait(self, pid):
+ pidfd, callback, args = self._callbacks.pop(pid)
+ self._loop._remove_reader(pidfd)
+ try:
+ _, status = os.waitpid(pid, 0)
+ except ChildProcessError:
+ # The child process is already reaped
+ # (may happen if waitpid() is called elsewhere).
+ returncode = 255
+ logger.warning(
+ "child process pid %d exit status already read: "
+ " will report returncode 255",
+ pid)
+ else:
+ returncode = _compute_returncode(status)
+
+ os.close(pidfd)
+ callback(pid, returncode, *args)
+
+ def remove_child_handler(self, pid):
+ try:
+ pidfd, _, _ = self._callbacks.pop(pid)
+ except KeyError:
+ return False
+ self._loop._remove_reader(pidfd)
+ os.close(pidfd)
+ return True
+
+
+def _compute_returncode(status):
+ if os.WIFSIGNALED(status):
+ # The child process died because of a signal.
+ return -os.WTERMSIG(status)
+ elif os.WIFEXITED(status):
+ # The child process exited (e.g sys.exit()).
+ return os.WEXITSTATUS(status)
+ else:
+ # The child exited, but we don't understand its status.
+ # This shouldn't happen, but if it does, let's just
+ # return that status; perhaps that helps debug it.
+ return status
+
+
class BaseChildWatcher(AbstractChildWatcher):
def __init__(self):
@@ -979,9 +979,9 @@ class BaseChildWatcher(AbstractChildWatcher):
def close(self):
self.attach_loop(None)
- def is_active(self):
- return self._loop is not None and self._loop.is_running()
-
+ def is_active(self):
+ return self._loop is not None and self._loop.is_running()
+
def _do_waitpid(self, expected_pid):
raise NotImplementedError()
@@ -1011,9 +1011,9 @@ class BaseChildWatcher(AbstractChildWatcher):
def _sig_chld(self):
try:
self._do_waitpid_all()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException as exc:
# self._loop should always be available here
# as '_sig_chld' is added as a signal handler
# in 'attach_loop'
@@ -1080,7 +1080,7 @@ class SafeChildWatcher(BaseChildWatcher):
# The child process is still alive.
return
- returncode = _compute_returncode(status)
+ returncode = _compute_returncode(status)
if self._loop.get_debug():
logger.debug('process %s exited with returncode %s',
expected_pid, returncode)
@@ -1173,7 +1173,7 @@ class FastChildWatcher(BaseChildWatcher):
# A child process is still alive.
return
- returncode = _compute_returncode(status)
+ returncode = _compute_returncode(status)
with self._lock:
try:
@@ -1202,220 +1202,220 @@ class FastChildWatcher(BaseChildWatcher):
callback(pid, returncode, *args)
-class MultiLoopChildWatcher(AbstractChildWatcher):
- """A watcher that doesn't require running loop in the main thread.
-
- This implementation registers a SIGCHLD signal handler on
- instantiation (which may conflict with other code that
- install own handler for this signal).
-
- The solution is safe but it has a significant overhead when
- handling a big number of processes (*O(n)* each time a
- SIGCHLD is received).
- """
-
- # Implementation note:
- # The class keeps compatibility with AbstractChildWatcher ABC
- # To achieve this it has empty attach_loop() method
- # and doesn't accept explicit loop argument
- # for add_child_handler()/remove_child_handler()
- # but retrieves the current loop by get_running_loop()
-
- def __init__(self):
- self._callbacks = {}
- self._saved_sighandler = None
-
- def is_active(self):
- return self._saved_sighandler is not None
-
- def close(self):
- self._callbacks.clear()
- if self._saved_sighandler is None:
- return
-
- handler = signal.getsignal(signal.SIGCHLD)
- if handler != self._sig_chld:
- logger.warning("SIGCHLD handler was changed by outside code")
- else:
- signal.signal(signal.SIGCHLD, self._saved_sighandler)
- self._saved_sighandler = None
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- pass
-
- def add_child_handler(self, pid, callback, *args):
- loop = events.get_running_loop()
- self._callbacks[pid] = (loop, callback, args)
-
- # Prevent a race condition in case the child is already terminated.
- self._do_waitpid(pid)
-
- def remove_child_handler(self, pid):
- try:
- del self._callbacks[pid]
- return True
- except KeyError:
- return False
-
- def attach_loop(self, loop):
- # Don't save the loop but initialize itself if called first time
- # The reason to do it here is that attach_loop() is called from
- # unix policy only for the main thread.
- # Main thread is required for subscription on SIGCHLD signal
- if self._saved_sighandler is not None:
- return
-
- self._saved_sighandler = signal.signal(signal.SIGCHLD, self._sig_chld)
- if self._saved_sighandler is None:
- logger.warning("Previous SIGCHLD handler was set by non-Python code, "
- "restore to default handler on watcher close.")
- self._saved_sighandler = signal.SIG_DFL
-
- # Set SA_RESTART to limit EINTR occurrences.
- signal.siginterrupt(signal.SIGCHLD, False)
-
- def _do_waitpid_all(self):
- for pid in list(self._callbacks):
- self._do_waitpid(pid)
-
- def _do_waitpid(self, expected_pid):
- assert expected_pid > 0
-
- try:
- pid, status = os.waitpid(expected_pid, os.WNOHANG)
- except ChildProcessError:
- # The child process is already reaped
- # (may happen if waitpid() is called elsewhere).
- pid = expected_pid
- returncode = 255
- logger.warning(
- "Unknown child process pid %d, will report returncode 255",
- pid)
- debug_log = False
- else:
- if pid == 0:
- # The child process is still alive.
- return
-
- returncode = _compute_returncode(status)
- debug_log = True
- try:
- loop, callback, args = self._callbacks.pop(pid)
- except KeyError: # pragma: no cover
- # May happen if .remove_child_handler() is called
- # after os.waitpid() returns.
- logger.warning("Child watcher got an unexpected pid: %r",
- pid, exc_info=True)
- else:
- if loop.is_closed():
- logger.warning("Loop %r that handles pid %r is closed", loop, pid)
- else:
- if debug_log and loop.get_debug():
- logger.debug('process %s exited with returncode %s',
- expected_pid, returncode)
- loop.call_soon_threadsafe(callback, pid, returncode, *args)
-
- def _sig_chld(self, signum, frame):
- try:
- self._do_waitpid_all()
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException:
- logger.warning('Unknown exception in SIGCHLD handler', exc_info=True)
-
-
-class ThreadedChildWatcher(AbstractChildWatcher):
- """Threaded child watcher implementation.
-
- The watcher uses a thread per process
- for waiting for the process finish.
-
- It doesn't require subscription on POSIX signal
- but a thread creation is not free.
-
- The watcher has O(1) complexity, its performance doesn't depend
- on amount of spawn processes.
- """
-
- def __init__(self):
- self._pid_counter = itertools.count(0)
- self._threads = {}
-
- def is_active(self):
- return True
-
- def close(self):
- self._join_threads()
-
- def _join_threads(self):
- """Internal: Join all non-daemon threads"""
- threads = [thread for thread in list(self._threads.values())
- if thread.is_alive() and not thread.daemon]
- for thread in threads:
- thread.join()
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- pass
-
- def __del__(self, _warn=warnings.warn):
- threads = [thread for thread in list(self._threads.values())
- if thread.is_alive()]
- if threads:
- _warn(f"{self.__class__} has registered but not finished child processes",
- ResourceWarning,
- source=self)
-
- def add_child_handler(self, pid, callback, *args):
- loop = events.get_running_loop()
- thread = threading.Thread(target=self._do_waitpid,
- name=f"waitpid-{next(self._pid_counter)}",
- args=(loop, pid, callback, args),
- daemon=True)
- self._threads[pid] = thread
- thread.start()
-
- def remove_child_handler(self, pid):
- # asyncio never calls remove_child_handler() !!!
- # The method is no-op but is implemented because
- # abstract base classes require it.
- return True
-
- def attach_loop(self, loop):
- pass
-
- def _do_waitpid(self, loop, expected_pid, callback, args):
- assert expected_pid > 0
-
- try:
- pid, status = os.waitpid(expected_pid, 0)
- except ChildProcessError:
- # The child process is already reaped
- # (may happen if waitpid() is called elsewhere).
- pid = expected_pid
- returncode = 255
- logger.warning(
- "Unknown child process pid %d, will report returncode 255",
- pid)
- else:
- returncode = _compute_returncode(status)
- if loop.get_debug():
- logger.debug('process %s exited with returncode %s',
- expected_pid, returncode)
-
- if loop.is_closed():
- logger.warning("Loop %r that handles pid %r is closed", loop, pid)
- else:
- loop.call_soon_threadsafe(callback, pid, returncode, *args)
-
- self._threads.pop(expected_pid)
-
-
+class MultiLoopChildWatcher(AbstractChildWatcher):
+ """A watcher that doesn't require running loop in the main thread.
+
+ This implementation registers a SIGCHLD signal handler on
+ instantiation (which may conflict with other code that
+ install own handler for this signal).
+
+ The solution is safe but it has a significant overhead when
+ handling a big number of processes (*O(n)* each time a
+ SIGCHLD is received).
+ """
+
+ # Implementation note:
+ # The class keeps compatibility with AbstractChildWatcher ABC
+ # To achieve this it has empty attach_loop() method
+ # and doesn't accept explicit loop argument
+ # for add_child_handler()/remove_child_handler()
+ # but retrieves the current loop by get_running_loop()
+
+ def __init__(self):
+ self._callbacks = {}
+ self._saved_sighandler = None
+
+ def is_active(self):
+ return self._saved_sighandler is not None
+
+ def close(self):
+ self._callbacks.clear()
+ if self._saved_sighandler is None:
+ return
+
+ handler = signal.getsignal(signal.SIGCHLD)
+ if handler != self._sig_chld:
+ logger.warning("SIGCHLD handler was changed by outside code")
+ else:
+ signal.signal(signal.SIGCHLD, self._saved_sighandler)
+ self._saved_sighandler = None
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ pass
+
+ def add_child_handler(self, pid, callback, *args):
+ loop = events.get_running_loop()
+ self._callbacks[pid] = (loop, callback, args)
+
+ # Prevent a race condition in case the child is already terminated.
+ self._do_waitpid(pid)
+
+ def remove_child_handler(self, pid):
+ try:
+ del self._callbacks[pid]
+ return True
+ except KeyError:
+ return False
+
+ def attach_loop(self, loop):
+ # Don't save the loop but initialize itself if called first time
+ # The reason to do it here is that attach_loop() is called from
+ # unix policy only for the main thread.
+ # Main thread is required for subscription on SIGCHLD signal
+ if self._saved_sighandler is not None:
+ return
+
+ self._saved_sighandler = signal.signal(signal.SIGCHLD, self._sig_chld)
+ if self._saved_sighandler is None:
+ logger.warning("Previous SIGCHLD handler was set by non-Python code, "
+ "restore to default handler on watcher close.")
+ self._saved_sighandler = signal.SIG_DFL
+
+ # Set SA_RESTART to limit EINTR occurrences.
+ signal.siginterrupt(signal.SIGCHLD, False)
+
+ def _do_waitpid_all(self):
+ for pid in list(self._callbacks):
+ self._do_waitpid(pid)
+
+ def _do_waitpid(self, expected_pid):
+ assert expected_pid > 0
+
+ try:
+ pid, status = os.waitpid(expected_pid, os.WNOHANG)
+ except ChildProcessError:
+ # The child process is already reaped
+ # (may happen if waitpid() is called elsewhere).
+ pid = expected_pid
+ returncode = 255
+ logger.warning(
+ "Unknown child process pid %d, will report returncode 255",
+ pid)
+ debug_log = False
+ else:
+ if pid == 0:
+ # The child process is still alive.
+ return
+
+ returncode = _compute_returncode(status)
+ debug_log = True
+ try:
+ loop, callback, args = self._callbacks.pop(pid)
+ except KeyError: # pragma: no cover
+ # May happen if .remove_child_handler() is called
+ # after os.waitpid() returns.
+ logger.warning("Child watcher got an unexpected pid: %r",
+ pid, exc_info=True)
+ else:
+ if loop.is_closed():
+ logger.warning("Loop %r that handles pid %r is closed", loop, pid)
+ else:
+ if debug_log and loop.get_debug():
+ logger.debug('process %s exited with returncode %s',
+ expected_pid, returncode)
+ loop.call_soon_threadsafe(callback, pid, returncode, *args)
+
+ def _sig_chld(self, signum, frame):
+ try:
+ self._do_waitpid_all()
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException:
+ logger.warning('Unknown exception in SIGCHLD handler', exc_info=True)
+
+
+class ThreadedChildWatcher(AbstractChildWatcher):
+ """Threaded child watcher implementation.
+
+ The watcher uses a thread per process
+ for waiting for the process finish.
+
+ It doesn't require subscription on POSIX signal
+ but a thread creation is not free.
+
+ The watcher has O(1) complexity, its performance doesn't depend
+ on amount of spawn processes.
+ """
+
+ def __init__(self):
+ self._pid_counter = itertools.count(0)
+ self._threads = {}
+
+ def is_active(self):
+ return True
+
+ def close(self):
+ self._join_threads()
+
+ def _join_threads(self):
+ """Internal: Join all non-daemon threads"""
+ threads = [thread for thread in list(self._threads.values())
+ if thread.is_alive() and not thread.daemon]
+ for thread in threads:
+ thread.join()
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ pass
+
+ def __del__(self, _warn=warnings.warn):
+ threads = [thread for thread in list(self._threads.values())
+ if thread.is_alive()]
+ if threads:
+ _warn(f"{self.__class__} has registered but not finished child processes",
+ ResourceWarning,
+ source=self)
+
+ def add_child_handler(self, pid, callback, *args):
+ loop = events.get_running_loop()
+ thread = threading.Thread(target=self._do_waitpid,
+ name=f"waitpid-{next(self._pid_counter)}",
+ args=(loop, pid, callback, args),
+ daemon=True)
+ self._threads[pid] = thread
+ thread.start()
+
+ def remove_child_handler(self, pid):
+ # asyncio never calls remove_child_handler() !!!
+ # The method is no-op but is implemented because
+ # abstract base classes require it.
+ return True
+
+ def attach_loop(self, loop):
+ pass
+
+ def _do_waitpid(self, loop, expected_pid, callback, args):
+ assert expected_pid > 0
+
+ try:
+ pid, status = os.waitpid(expected_pid, 0)
+ except ChildProcessError:
+ # The child process is already reaped
+ # (may happen if waitpid() is called elsewhere).
+ pid = expected_pid
+ returncode = 255
+ logger.warning(
+ "Unknown child process pid %d, will report returncode 255",
+ pid)
+ else:
+ returncode = _compute_returncode(status)
+ if loop.get_debug():
+ logger.debug('process %s exited with returncode %s',
+ expected_pid, returncode)
+
+ if loop.is_closed():
+ logger.warning("Loop %r that handles pid %r is closed", loop, pid)
+ else:
+ loop.call_soon_threadsafe(callback, pid, returncode, *args)
+
+ self._threads.pop(expected_pid)
+
+
class _UnixDefaultEventLoopPolicy(events.BaseDefaultEventLoopPolicy):
"""UNIX event loop policy with a watcher for child processes."""
_loop_factory = _UnixSelectorEventLoop
@@ -1427,8 +1427,8 @@ class _UnixDefaultEventLoopPolicy(events.BaseDefaultEventLoopPolicy):
def _init_watcher(self):
with events._lock:
if self._watcher is None: # pragma: no branch
- self._watcher = ThreadedChildWatcher()
- if threading.current_thread() is threading.main_thread():
+ self._watcher = ThreadedChildWatcher()
+ if threading.current_thread() is threading.main_thread():
self._watcher.attach_loop(self._local._loop)
def set_event_loop(self, loop):
@@ -1442,13 +1442,13 @@ class _UnixDefaultEventLoopPolicy(events.BaseDefaultEventLoopPolicy):
super().set_event_loop(loop)
if (self._watcher is not None and
- threading.current_thread() is threading.main_thread()):
+ threading.current_thread() is threading.main_thread()):
self._watcher.attach_loop(loop)
def get_child_watcher(self):
"""Get the watcher for child processes.
- If not yet set, a ThreadedChildWatcher object is automatically created.
+ If not yet set, a ThreadedChildWatcher object is automatically created.
"""
if self._watcher is None:
self._init_watcher()
diff --git a/contrib/tools/python3/src/Lib/asyncio/windows_events.py b/contrib/tools/python3/src/Lib/asyncio/windows_events.py
index bf9e43b7a0..da81ab435b 100644
--- a/contrib/tools/python3/src/Lib/asyncio/windows_events.py
+++ b/contrib/tools/python3/src/Lib/asyncio/windows_events.py
@@ -1,10 +1,10 @@
"""Selector and proactor event loops for Windows."""
-import sys
-
-if sys.platform != 'win32': # pragma: no cover
- raise ImportError('win32 only')
-
+import sys
+
+if sys.platform != 'win32': # pragma: no cover
+ raise ImportError('win32 only')
+
import _overlapped
import _winapi
import errno
@@ -18,7 +18,7 @@ import weakref
from . import events
from . import base_subprocess
from . import futures
-from . import exceptions
+from . import exceptions
from . import proactor_events
from . import selector_events
from . import tasks
@@ -80,9 +80,9 @@ class _OverlappedFuture(futures.Future):
self._loop.call_exception_handler(context)
self._ov = None
- def cancel(self, msg=None):
+ def cancel(self, msg=None):
self._cancel_overlapped()
- return super().cancel(msg=msg)
+ return super().cancel(msg=msg)
def set_exception(self, exception):
super().set_exception(exception)
@@ -154,9 +154,9 @@ class _BaseWaitHandleFuture(futures.Future):
self._unregister_wait_cb(None)
- def cancel(self, msg=None):
+ def cancel(self, msg=None):
self._unregister_wait()
- return super().cancel(msg=msg)
+ return super().cancel(msg=msg)
def set_exception(self, exception):
self._unregister_wait()
@@ -314,25 +314,25 @@ class ProactorEventLoop(proactor_events.BaseProactorEventLoop):
proactor = IocpProactor()
super().__init__(proactor)
- def run_forever(self):
- try:
- assert self._self_reading_future is None
- self.call_soon(self._loop_self_reading)
- super().run_forever()
- finally:
- if self._self_reading_future is not None:
- ov = self._self_reading_future._ov
- self._self_reading_future.cancel()
- # self_reading_future was just cancelled so if it hasn't been
- # finished yet, it never will be (it's possible that it has
- # already finished and its callback is waiting in the queue,
- # where it could still happen if the event loop is restarted).
- # Unregister it otherwise IocpProactor.close will wait for it
- # forever
- if ov is not None:
- self._proactor._unregister(ov)
- self._self_reading_future = None
-
+ def run_forever(self):
+ try:
+ assert self._self_reading_future is None
+ self.call_soon(self._loop_self_reading)
+ super().run_forever()
+ finally:
+ if self._self_reading_future is not None:
+ ov = self._self_reading_future._ov
+ self._self_reading_future.cancel()
+ # self_reading_future was just cancelled so if it hasn't been
+ # finished yet, it never will be (it's possible that it has
+ # already finished and its callback is waiting in the queue,
+ # where it could still happen if the event loop is restarted).
+ # Unregister it otherwise IocpProactor.close will wait for it
+ # forever
+ if ov is not None:
+ self._proactor._unregister(ov)
+ self._self_reading_future = None
+
async def create_pipe_connection(self, protocol_factory, address):
f = self._proactor.connect_pipe(address)
pipe = await f
@@ -377,7 +377,7 @@ class ProactorEventLoop(proactor_events.BaseProactorEventLoop):
elif self._debug:
logger.warning("Accept pipe failed on pipe %r",
pipe, exc_info=True)
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
if pipe:
pipe.close()
else:
@@ -397,9 +397,9 @@ class ProactorEventLoop(proactor_events.BaseProactorEventLoop):
**kwargs)
try:
await waiter
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except BaseException:
transp.close()
await transp._wait()
raise
@@ -478,7 +478,7 @@ class IocpProactor:
else:
ov.ReadFileInto(conn.fileno(), buf)
except BrokenPipeError:
- return self._result(0)
+ return self._result(0)
def finish_recv(trans, key, ov):
try:
@@ -492,44 +492,44 @@ class IocpProactor:
return self._register(ov, conn, finish_recv)
- def recvfrom(self, conn, nbytes, flags=0):
- self._register_with_iocp(conn)
- ov = _overlapped.Overlapped(NULL)
- try:
- ov.WSARecvFrom(conn.fileno(), nbytes, flags)
- except BrokenPipeError:
- return self._result((b'', None))
-
- def finish_recv(trans, key, ov):
- try:
- return ov.getresult()
- except OSError as exc:
- if exc.winerror in (_overlapped.ERROR_NETNAME_DELETED,
- _overlapped.ERROR_OPERATION_ABORTED):
- raise ConnectionResetError(*exc.args)
- else:
- raise
-
- return self._register(ov, conn, finish_recv)
-
- def sendto(self, conn, buf, flags=0, addr=None):
- self._register_with_iocp(conn)
- ov = _overlapped.Overlapped(NULL)
-
- ov.WSASendTo(conn.fileno(), buf, flags, addr)
-
- def finish_send(trans, key, ov):
- try:
- return ov.getresult()
- except OSError as exc:
- if exc.winerror in (_overlapped.ERROR_NETNAME_DELETED,
- _overlapped.ERROR_OPERATION_ABORTED):
- raise ConnectionResetError(*exc.args)
- else:
- raise
-
- return self._register(ov, conn, finish_send)
-
+ def recvfrom(self, conn, nbytes, flags=0):
+ self._register_with_iocp(conn)
+ ov = _overlapped.Overlapped(NULL)
+ try:
+ ov.WSARecvFrom(conn.fileno(), nbytes, flags)
+ except BrokenPipeError:
+ return self._result((b'', None))
+
+ def finish_recv(trans, key, ov):
+ try:
+ return ov.getresult()
+ except OSError as exc:
+ if exc.winerror in (_overlapped.ERROR_NETNAME_DELETED,
+ _overlapped.ERROR_OPERATION_ABORTED):
+ raise ConnectionResetError(*exc.args)
+ else:
+ raise
+
+ return self._register(ov, conn, finish_recv)
+
+ def sendto(self, conn, buf, flags=0, addr=None):
+ self._register_with_iocp(conn)
+ ov = _overlapped.Overlapped(NULL)
+
+ ov.WSASendTo(conn.fileno(), buf, flags, addr)
+
+ def finish_send(trans, key, ov):
+ try:
+ return ov.getresult()
+ except OSError as exc:
+ if exc.winerror in (_overlapped.ERROR_NETNAME_DELETED,
+ _overlapped.ERROR_OPERATION_ABORTED):
+ raise ConnectionResetError(*exc.args)
+ else:
+ raise
+
+ return self._register(ov, conn, finish_send)
+
def send(self, conn, buf, flags=0):
self._register_with_iocp(conn)
ov = _overlapped.Overlapped(NULL)
@@ -569,7 +569,7 @@ class IocpProactor:
# Coroutine closing the accept socket if the future is cancelled
try:
await future
- except exceptions.CancelledError:
+ except exceptions.CancelledError:
conn.close()
raise
@@ -579,14 +579,14 @@ class IocpProactor:
return future
def connect(self, conn, address):
- if conn.type == socket.SOCK_DGRAM:
- # WSAConnect will complete immediately for UDP sockets so we don't
- # need to register any IOCP operation
- _overlapped.WSAConnect(conn.fileno(), address)
- fut = self._loop.create_future()
- fut.set_result(None)
- return fut
-
+ if conn.type == socket.SOCK_DGRAM:
+ # WSAConnect will complete immediately for UDP sockets so we don't
+ # need to register any IOCP operation
+ _overlapped.WSAConnect(conn.fileno(), address)
+ fut = self._loop.create_future()
+ fut.set_result(None)
+ return fut
+
self._register_with_iocp(conn)
# The socket needs to be locally bound before we call ConnectEx().
try:
@@ -662,7 +662,7 @@ class IocpProactor:
# ConnectPipe() failed with ERROR_PIPE_BUSY: retry later
delay = min(delay * 2, CONNECT_PIPE_MAX_DELAY)
- await tasks.sleep(delay)
+ await tasks.sleep(delay)
return windows_utils.PipeHandle(handle)
@@ -910,4 +910,4 @@ class WindowsProactorEventLoopPolicy(events.BaseDefaultEventLoopPolicy):
_loop_factory = ProactorEventLoop
-DefaultEventLoopPolicy = WindowsProactorEventLoopPolicy
+DefaultEventLoopPolicy = WindowsProactorEventLoopPolicy
diff --git a/contrib/tools/python3/src/Lib/asyncio/windows_utils.py b/contrib/tools/python3/src/Lib/asyncio/windows_utils.py
index 1b1ce0e9cd..ef277fac3e 100644
--- a/contrib/tools/python3/src/Lib/asyncio/windows_utils.py
+++ b/contrib/tools/python3/src/Lib/asyncio/windows_utils.py
@@ -107,9 +107,9 @@ class PipeHandle:
CloseHandle(self._handle)
self._handle = None
- def __del__(self, _warn=warnings.warn):
+ def __del__(self, _warn=warnings.warn):
if self._handle is not None:
- _warn(f"unclosed {self!r}", ResourceWarning, source=self)
+ _warn(f"unclosed {self!r}", ResourceWarning, source=self)
self.close()
def __enter__(self):
diff --git a/contrib/tools/python3/src/Lib/asyncore.py b/contrib/tools/python3/src/Lib/asyncore.py
index 42dc614d1d..ce16f11a2f 100644
--- a/contrib/tools/python3/src/Lib/asyncore.py
+++ b/contrib/tools/python3/src/Lib/asyncore.py
@@ -228,7 +228,7 @@ class dispatcher:
if sock:
# Set to nonblocking just to make sure for cases where we
# get a socket from a blocking source.
- sock.setblocking(False)
+ sock.setblocking(False)
self.set_socket(sock, map)
self.connected = True
# The constructor no longer requires that the socket
@@ -280,7 +280,7 @@ class dispatcher:
def create_socket(self, family=socket.AF_INET, type=socket.SOCK_STREAM):
self.family_and_type = family, type
sock = socket.socket(family, type)
- sock.setblocking(False)
+ sock.setblocking(False)
self.set_socket(sock)
def set_socket(self, sock, map=None):
diff --git a/contrib/tools/python3/src/Lib/base64.py b/contrib/tools/python3/src/Lib/base64.py
index 8d3a152a47..ec3823b724 100644
--- a/contrib/tools/python3/src/Lib/base64.py
+++ b/contrib/tools/python3/src/Lib/base64.py
@@ -82,7 +82,7 @@ def b64decode(s, altchars=None, validate=False):
altchars = _bytes_from_decode_data(altchars)
assert len(altchars) == 2, repr(altchars)
s = s.translate(bytes.maketrans(altchars, b'+/'))
- if validate and not re.fullmatch(b'[A-Za-z0-9+/]*={0,2}', s):
+ if validate and not re.fullmatch(b'[A-Za-z0-9+/]*={0,2}', s):
raise binascii.Error('Non-base64 digit found')
return binascii.a2b_base64(s)
@@ -320,7 +320,7 @@ def a85encode(b, *, foldspaces=False, wrapcol=0, pad=False, adobe=False):
global _a85chars, _a85chars2
# Delay the initialization of tables to not waste memory
# if the function is never called
- if _a85chars2 is None:
+ if _a85chars2 is None:
_a85chars = [bytes((i,)) for i in range(33, 118)]
_a85chars2 = [(a + b) for a in _a85chars for b in _a85chars]
@@ -428,7 +428,7 @@ def b85encode(b, pad=False):
global _b85chars, _b85chars2
# Delay the initialization of tables to not waste memory
# if the function is never called
- if _b85chars2 is None:
+ if _b85chars2 is None:
_b85chars = [bytes((i,)) for i in _b85alphabet]
_b85chars2 = [(a + b) for a in _b85chars for b in _b85chars]
return _85encode(b, _b85chars, _b85chars2, pad)
diff --git a/contrib/tools/python3/src/Lib/bdb.py b/contrib/tools/python3/src/Lib/bdb.py
index 98fdd03e8d..384a272a85 100644
--- a/contrib/tools/python3/src/Lib/bdb.py
+++ b/contrib/tools/python3/src/Lib/bdb.py
@@ -38,7 +38,7 @@ class Bdb:
"""Return canonical form of filename.
For real filenames, the canonical form is a case-normalized (on
- case insensitive filesystems) absolute path. 'Filenames' with
+ case insensitive filesystems) absolute path. 'Filenames' with
angle brackets, such as "<stdin>", generated in interactive
mode, are returned unchanged.
"""
@@ -117,7 +117,7 @@ class Bdb:
"""Invoke user function and return trace function for call event.
If the debugger stops on this function call, invoke
- self.user_call(). Raise BdbQuit if self.quitting is set.
+ self.user_call(). Raise BdbQuit if self.quitting is set.
Return self.trace_dispatch to continue tracing in this scope.
"""
# XXX 'arg' is no longer used
@@ -190,8 +190,8 @@ class Bdb:
def is_skipped_module(self, module_name):
"Return True if module_name matches any skip pattern."
- if module_name is None: # some modules do not have names
- return False
+ if module_name is None: # some modules do not have names
+ return False
for pattern in self.skip:
if fnmatch.fnmatch(module_name, pattern):
return True
@@ -384,7 +384,7 @@ class Bdb:
return None
def _prune_breaks(self, filename, lineno):
- """Prune breakpoints for filename:lineno.
+ """Prune breakpoints for filename:lineno.
A list of breakpoints is maintained in the Bdb instance and in
the Breakpoint class. If a breakpoint in the Bdb instance no
@@ -548,7 +548,7 @@ class Bdb:
s += frame.f_code.co_name
else:
s += "<lambda>"
- s += '()'
+ s += '()'
if '__return__' in frame.f_locals:
rv = frame.f_locals['__return__']
s += '->'
@@ -611,7 +611,7 @@ class Bdb:
# This method is more useful to debug a single function call.
- def runcall(self, func, /, *args, **kwds):
+ def runcall(self, func, /, *args, **kwds):
"""Debug a single function call.
Return the result of the function call.
diff --git a/contrib/tools/python3/src/Lib/binhex.py b/contrib/tools/python3/src/Lib/binhex.py
index 3e89a56e15..ace5217d27 100644
--- a/contrib/tools/python3/src/Lib/binhex.py
+++ b/contrib/tools/python3/src/Lib/binhex.py
@@ -21,17 +21,17 @@ hexbin(inputfilename, outputfilename)
# input. The resulting code (xx 90 90) would appear to be interpreted as an
# escaped *value* of 0x90. All coders I've seen appear to ignore this nicety...
#
-import binascii
-import contextlib
+import binascii
+import contextlib
import io
import os
import struct
-import warnings
+import warnings
+
+warnings.warn('the binhex module is deprecated', DeprecationWarning,
+ stacklevel=2)
+
-warnings.warn('the binhex module is deprecated', DeprecationWarning,
- stacklevel=2)
-
-
__all__ = ["binhex","hexbin","Error"]
class Error(Exception):
@@ -82,16 +82,16 @@ class openrsrc:
def close(self):
pass
-
-# DeprecationWarning is already emitted on "import binhex". There is no need
-# to repeat the warning at each call to deprecated binascii functions.
-@contextlib.contextmanager
-def _ignore_deprecation_warning():
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', '', DeprecationWarning)
- yield
-
-
+
+# DeprecationWarning is already emitted on "import binhex". There is no need
+# to repeat the warning at each call to deprecated binascii functions.
+@contextlib.contextmanager
+def _ignore_deprecation_warning():
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', '', DeprecationWarning)
+ yield
+
+
class _Hqxcoderengine:
"""Write data to the coder in 3-byte chunks"""
@@ -109,25 +109,25 @@ class _Hqxcoderengine:
self.data = self.data[todo:]
if not data:
return
- with _ignore_deprecation_warning():
- self.hqxdata = self.hqxdata + binascii.b2a_hqx(data)
+ with _ignore_deprecation_warning():
+ self.hqxdata = self.hqxdata + binascii.b2a_hqx(data)
self._flush(0)
def _flush(self, force):
first = 0
while first <= len(self.hqxdata) - self.linelen:
last = first + self.linelen
- self.ofp.write(self.hqxdata[first:last] + b'\r')
+ self.ofp.write(self.hqxdata[first:last] + b'\r')
self.linelen = LINELEN
first = last
self.hqxdata = self.hqxdata[first:]
if force:
- self.ofp.write(self.hqxdata + b':\r')
+ self.ofp.write(self.hqxdata + b':\r')
def close(self):
if self.data:
- with _ignore_deprecation_warning():
- self.hqxdata = self.hqxdata + binascii.b2a_hqx(self.data)
+ with _ignore_deprecation_warning():
+ self.hqxdata = self.hqxdata + binascii.b2a_hqx(self.data)
self._flush(1)
self.ofp.close()
del self.ofp
@@ -143,15 +143,15 @@ class _Rlecoderengine:
self.data = self.data + data
if len(self.data) < REASONABLY_LARGE:
return
- with _ignore_deprecation_warning():
- rledata = binascii.rlecode_hqx(self.data)
+ with _ignore_deprecation_warning():
+ rledata = binascii.rlecode_hqx(self.data)
self.ofp.write(rledata)
self.data = b''
def close(self):
if self.data:
- with _ignore_deprecation_warning():
- rledata = binascii.rlecode_hqx(self.data)
+ with _ignore_deprecation_warning():
+ rledata = binascii.rlecode_hqx(self.data)
self.ofp.write(rledata)
self.ofp.close()
del self.ofp
@@ -296,8 +296,8 @@ class _Hqxdecoderengine:
#
while True:
try:
- with _ignore_deprecation_warning():
- decdatacur, self.eof = binascii.a2b_hqx(data)
+ with _ignore_deprecation_warning():
+ decdatacur, self.eof = binascii.a2b_hqx(data)
break
except binascii.Incomplete:
pass
@@ -333,9 +333,9 @@ class _Rledecoderengine:
def _fill(self, wtd):
self.pre_buffer = self.pre_buffer + self.ifp.read(wtd + 4)
if self.ifp.eof:
- with _ignore_deprecation_warning():
- self.post_buffer = self.post_buffer + \
- binascii.rledecode_hqx(self.pre_buffer)
+ with _ignore_deprecation_warning():
+ self.post_buffer = self.post_buffer + \
+ binascii.rledecode_hqx(self.pre_buffer)
self.pre_buffer = b''
return
@@ -362,9 +362,9 @@ class _Rledecoderengine:
else:
mark = mark - 1
- with _ignore_deprecation_warning():
- self.post_buffer = self.post_buffer + \
- binascii.rledecode_hqx(self.pre_buffer[:mark])
+ with _ignore_deprecation_warning():
+ self.post_buffer = self.post_buffer + \
+ binascii.rledecode_hqx(self.pre_buffer[:mark])
self.pre_buffer = self.pre_buffer[mark:]
def close(self):
diff --git a/contrib/tools/python3/src/Lib/bisect.py b/contrib/tools/python3/src/Lib/bisect.py
index be67a335a4..8f3f6a3fe3 100644
--- a/contrib/tools/python3/src/Lib/bisect.py
+++ b/contrib/tools/python3/src/Lib/bisect.py
@@ -9,7 +9,7 @@ def insort_right(a, x, lo=0, hi=None):
slice of a to be searched.
"""
- lo = bisect_right(a, x, lo, hi)
+ lo = bisect_right(a, x, lo, hi)
a.insert(lo, x)
def bisect_right(a, x, lo=0, hi=None):
@@ -29,7 +29,7 @@ def bisect_right(a, x, lo=0, hi=None):
hi = len(a)
while lo < hi:
mid = (lo+hi)//2
- # Use __lt__ to match the logic in list.sort() and in heapq
+ # Use __lt__ to match the logic in list.sort() and in heapq
if x < a[mid]: hi = mid
else: lo = mid+1
return lo
@@ -43,7 +43,7 @@ def insort_left(a, x, lo=0, hi=None):
slice of a to be searched.
"""
- lo = bisect_left(a, x, lo, hi)
+ lo = bisect_left(a, x, lo, hi)
a.insert(lo, x)
@@ -64,7 +64,7 @@ def bisect_left(a, x, lo=0, hi=None):
hi = len(a)
while lo < hi:
mid = (lo+hi)//2
- # Use __lt__ to match the logic in list.sort() and in heapq
+ # Use __lt__ to match the logic in list.sort() and in heapq
if a[mid] < x: lo = mid+1
else: hi = mid
return lo
diff --git a/contrib/tools/python3/src/Lib/bz2.py b/contrib/tools/python3/src/Lib/bz2.py
index 8005febeef..7447d12fc4 100644
--- a/contrib/tools/python3/src/Lib/bz2.py
+++ b/contrib/tools/python3/src/Lib/bz2.py
@@ -35,7 +35,7 @@ class BZ2File(_compression.BaseStream):
returned as bytes, and data to be written should be given as bytes.
"""
- def __init__(self, filename, mode="r", *, compresslevel=9):
+ def __init__(self, filename, mode="r", *, compresslevel=9):
"""Open a bzip2-compressed file.
If filename is a str, bytes, or PathLike object, it gives the
@@ -226,23 +226,23 @@ class BZ2File(_compression.BaseStream):
"""Write a byte string to the file.
Returns the number of uncompressed bytes written, which is
- always the length of data in bytes. Note that due to buffering,
- the file on disk may not reflect the data written until close()
- is called.
+ always the length of data in bytes. Note that due to buffering,
+ the file on disk may not reflect the data written until close()
+ is called.
"""
with self._lock:
self._check_can_write()
- if isinstance(data, (bytes, bytearray)):
- length = len(data)
- else:
- # accept any data that supports the buffer protocol
- data = memoryview(data)
- length = data.nbytes
-
+ if isinstance(data, (bytes, bytearray)):
+ length = len(data)
+ else:
+ # accept any data that supports the buffer protocol
+ data = memoryview(data)
+ length = data.nbytes
+
compressed = self._compressor.compress(data)
self._fp.write(compressed)
- self._pos += length
- return length
+ self._pos += length
+ return length
def writelines(self, seq):
"""Write a sequence of byte strings to the file.
diff --git a/contrib/tools/python3/src/Lib/cProfile.py b/contrib/tools/python3/src/Lib/cProfile.py
index b93ec5454f..22a7d0aade 100644
--- a/contrib/tools/python3/src/Lib/cProfile.py
+++ b/contrib/tools/python3/src/Lib/cProfile.py
@@ -103,20 +103,20 @@ class Profile(_lsprof.Profiler):
return self
# This method is more useful to profile a single function call.
- def runcall(self, func, /, *args, **kw):
+ def runcall(self, func, /, *args, **kw):
self.enable()
try:
return func(*args, **kw)
finally:
self.disable()
- def __enter__(self):
- self.enable()
- return self
-
- def __exit__(self, *exc_info):
- self.disable()
-
+ def __enter__(self):
+ self.enable()
+ return self
+
+ def __exit__(self, *exc_info):
+ self.disable()
+
# ____________________________________________________________
def label(code):
@@ -152,11 +152,11 @@ def main():
(options, args) = parser.parse_args()
sys.argv[:] = args
- # The script that we're profiling may chdir, so capture the absolute path
- # to the output file at startup.
- if options.outfile is not None:
- options.outfile = os.path.abspath(options.outfile)
-
+ # The script that we're profiling may chdir, so capture the absolute path
+ # to the output file at startup.
+ if options.outfile is not None:
+ options.outfile = os.path.abspath(options.outfile)
+
if len(args) > 0:
if options.module:
code = "run_module(modname, run_name='__main__')"
@@ -175,12 +175,12 @@ def main():
'__package__': None,
'__cached__': None,
}
- try:
- runctx(code, globs, None, options.outfile, options.sort)
- except BrokenPipeError as exc:
- # Prevent "Exception ignored" during interpreter shutdown.
- sys.stdout = None
- sys.exit(exc.errno)
+ try:
+ runctx(code, globs, None, options.outfile, options.sort)
+ except BrokenPipeError as exc:
+ # Prevent "Exception ignored" during interpreter shutdown.
+ sys.stdout = None
+ sys.exit(exc.errno)
else:
parser.print_usage()
return parser
diff --git a/contrib/tools/python3/src/Lib/calendar.py b/contrib/tools/python3/src/Lib/calendar.py
index 586e489426..7550d52c0a 100644
--- a/contrib/tools/python3/src/Lib/calendar.py
+++ b/contrib/tools/python3/src/Lib/calendar.py
@@ -127,18 +127,18 @@ def monthrange(year, month):
return day1, ndays
-def _monthlen(year, month):
+def _monthlen(year, month):
return mdays[month] + (month == February and isleap(year))
-def _prevmonth(year, month):
+def _prevmonth(year, month):
if month == 1:
return year-1, 12
else:
return year, month-1
-def _nextmonth(year, month):
+def _nextmonth(year, month):
if month == 12:
return year+1, 1
else:
@@ -207,13 +207,13 @@ class Calendar(object):
day1, ndays = monthrange(year, month)
days_before = (day1 - self.firstweekday) % 7
days_after = (self.firstweekday - day1 - ndays) % 7
- y, m = _prevmonth(year, month)
- end = _monthlen(y, m) + 1
+ y, m = _prevmonth(year, month)
+ end = _monthlen(y, m) + 1
for d in range(end-days_before, end):
yield y, m, d
for d in range(1, ndays + 1):
yield year, month, d
- y, m = _nextmonth(year, month)
+ y, m = _nextmonth(year, month)
for d in range(1, days_after + 1):
yield y, m, d
diff --git a/contrib/tools/python3/src/Lib/cgi.py b/contrib/tools/python3/src/Lib/cgi.py
index 59d03c0ec0..1e880e5184 100644
--- a/contrib/tools/python3/src/Lib/cgi.py
+++ b/contrib/tools/python3/src/Lib/cgi.py
@@ -42,10 +42,10 @@ import html
import locale
import tempfile
-__all__ = ["MiniFieldStorage", "FieldStorage", "parse", "parse_multipart",
+__all__ = ["MiniFieldStorage", "FieldStorage", "parse", "parse_multipart",
"parse_header", "test", "print_exception", "print_environ",
"print_form", "print_directory", "print_arguments",
- "print_environ_usage"]
+ "print_environ_usage"]
# Logging support
# ===============
@@ -115,8 +115,8 @@ log = initlog # The current logging function
# 0 ==> unlimited input
maxlen = 0
-def parse(fp=None, environ=os.environ, keep_blank_values=0,
- strict_parsing=0, separator='&'):
+def parse(fp=None, environ=os.environ, keep_blank_values=0,
+ strict_parsing=0, separator='&'):
"""Parse a query in the environment or from a file (default stdin)
Arguments, all optional:
@@ -135,9 +135,9 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0,
strict_parsing: flag indicating what to do with parsing errors.
If false (the default), errors are silently ignored.
If true, errors raise a ValueError exception.
-
- separator: str. The symbol to use for separating the query arguments.
- Defaults to &.
+
+ separator: str. The symbol to use for separating the query arguments.
+ Defaults to &.
"""
if fp is None:
fp = sys.stdin
@@ -158,7 +158,7 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0,
if environ['REQUEST_METHOD'] == 'POST':
ctype, pdict = parse_header(environ['CONTENT_TYPE'])
if ctype == 'multipart/form-data':
- return parse_multipart(fp, pdict, separator=separator)
+ return parse_multipart(fp, pdict, separator=separator)
elif ctype == 'application/x-www-form-urlencoded':
clength = int(environ['CONTENT_LENGTH'])
if maxlen and clength > maxlen:
@@ -182,10 +182,10 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0,
qs = ""
environ['QUERY_STRING'] = qs # XXX Shouldn't, really
return urllib.parse.parse_qs(qs, keep_blank_values, strict_parsing,
- encoding=encoding, separator=separator)
+ encoding=encoding, separator=separator)
-def parse_multipart(fp, pdict, encoding="utf-8", errors="replace", separator='&'):
+def parse_multipart(fp, pdict, encoding="utf-8", errors="replace", separator='&'):
"""Parse multipart input.
Arguments:
@@ -204,12 +204,12 @@ def parse_multipart(fp, pdict, encoding="utf-8", errors="replace", separator='&'
ctype = "multipart/form-data; boundary={}".format(boundary)
headers = Message()
headers.set_type(ctype)
- try:
- headers['Content-Length'] = pdict['CONTENT-LENGTH']
- except KeyError:
- pass
+ try:
+ headers['Content-Length'] = pdict['CONTENT-LENGTH']
+ except KeyError:
+ pass
fs = FieldStorage(fp, headers=headers, encoding=encoding, errors=errors,
- environ={'REQUEST_METHOD': 'POST'}, separator=separator)
+ environ={'REQUEST_METHOD': 'POST'}, separator=separator)
return {k: fs.getlist(k) for k in fs}
def _parseparam(s):
@@ -319,7 +319,7 @@ class FieldStorage:
def __init__(self, fp=None, headers=None, outerboundary=b'',
environ=os.environ, keep_blank_values=0, strict_parsing=0,
limit=None, encoding='utf-8', errors='replace',
- max_num_fields=None, separator='&'):
+ max_num_fields=None, separator='&'):
"""Constructor. Read multipart/* until last part.
Arguments, all optional:
@@ -367,7 +367,7 @@ class FieldStorage:
self.keep_blank_values = keep_blank_values
self.strict_parsing = strict_parsing
self.max_num_fields = max_num_fields
- self.separator = separator
+ self.separator = separator
if 'REQUEST_METHOD' in environ:
method = environ['REQUEST_METHOD'].upper()
self.qs_on_post = None
@@ -469,7 +469,7 @@ class FieldStorage:
if maxlen and clen > maxlen:
raise ValueError('Maximum content length exceeded')
self.length = clen
- if self.limit is None and clen >= 0:
+ if self.limit is None and clen >= 0:
self.limit = clen
self.list = self.file = None
@@ -594,7 +594,7 @@ class FieldStorage:
query = urllib.parse.parse_qsl(
qs, self.keep_blank_values, self.strict_parsing,
encoding=self.encoding, errors=self.errors,
- max_num_fields=self.max_num_fields, separator=self.separator)
+ max_num_fields=self.max_num_fields, separator=self.separator)
self.list = [MiniFieldStorage(key, value) for key, value in query]
self.skip_lines()
@@ -610,7 +610,7 @@ class FieldStorage:
query = urllib.parse.parse_qsl(
self.qs_on_post, self.keep_blank_values, self.strict_parsing,
encoding=self.encoding, errors=self.errors,
- max_num_fields=self.max_num_fields, separator=self.separator)
+ max_num_fields=self.max_num_fields, separator=self.separator)
self.list.extend(MiniFieldStorage(key, value) for key, value in query)
klass = self.FieldStorageClass or self.__class__
@@ -650,11 +650,11 @@ class FieldStorage:
if 'content-length' in headers:
del headers['content-length']
- limit = None if self.limit is None \
- else self.limit - self.bytes_read
+ limit = None if self.limit is None \
+ else self.limit - self.bytes_read
part = klass(self.fp, headers, ib, environ, keep_blank_values,
- strict_parsing, limit,
- self.encoding, self.errors, max_num_fields, self.separator)
+ strict_parsing, limit,
+ self.encoding, self.errors, max_num_fields, self.separator)
if max_num_fields is not None:
max_num_fields -= 1
@@ -744,8 +744,8 @@ class FieldStorage:
last_line_lfend = True
_read = 0
while 1:
-
- if self.limit is not None and 0 <= self.limit <= _read:
+
+ if self.limit is not None and 0 <= self.limit <= _read:
break
line = self.fp.readline(1<<16) # bytes
self.bytes_read += len(line)
diff --git a/contrib/tools/python3/src/Lib/cgitb.py b/contrib/tools/python3/src/Lib/cgitb.py
index 3b54203d05..4f81271be3 100644
--- a/contrib/tools/python3/src/Lib/cgitb.py
+++ b/contrib/tools/python3/src/Lib/cgitb.py
@@ -124,9 +124,9 @@ function calls leading up to the error, in the order they occurred.</p>'''
args, varargs, varkw, locals = inspect.getargvalues(frame)
call = ''
if func != '?':
- call = 'in ' + strong(pydoc.html.escape(func))
- if func != "<module>":
- call += inspect.formatargvalues(args, varargs, varkw, locals,
+ call = 'in ' + strong(pydoc.html.escape(func))
+ if func != "<module>":
+ call += inspect.formatargvalues(args, varargs, varkw, locals,
formatvalue=lambda value: '=' + pydoc.html.repr(value))
highlight = {}
@@ -208,9 +208,9 @@ function calls leading up to the error, in the order they occurred.
args, varargs, varkw, locals = inspect.getargvalues(frame)
call = ''
if func != '?':
- call = 'in ' + func
- if func != "<module>":
- call += inspect.formatargvalues(args, varargs, varkw, locals,
+ call = 'in ' + func
+ if func != "<module>":
+ call += inspect.formatargvalues(args, varargs, varkw, locals,
formatvalue=lambda value: '=' + pydoc.text.repr(value))
highlight = {}
diff --git a/contrib/tools/python3/src/Lib/code.py b/contrib/tools/python3/src/Lib/code.py
index ed23b95e63..76000f8c8b 100644
--- a/contrib/tools/python3/src/Lib/code.py
+++ b/contrib/tools/python3/src/Lib/code.py
@@ -40,7 +40,7 @@ class InteractiveInterpreter:
Arguments are as for compile_command().
- One of several things can happen:
+ One of several things can happen:
1) The input is incorrect; compile_command() raised an
exception (SyntaxError or OverflowError). A syntax traceback
diff --git a/contrib/tools/python3/src/Lib/codecs.py b/contrib/tools/python3/src/Lib/codecs.py
index 19f7b78d14..d2edd148a2 100644
--- a/contrib/tools/python3/src/Lib/codecs.py
+++ b/contrib/tools/python3/src/Lib/codecs.py
@@ -386,7 +386,7 @@ class StreamWriter(Codec):
def reset(self):
- """ Resets the codec buffers used for keeping internal state.
+ """ Resets the codec buffers used for keeping internal state.
Calling this method should ensure that the data on the
output is put into a clean state, that allows appending
@@ -620,7 +620,7 @@ class StreamReader(Codec):
def reset(self):
- """ Resets the codec buffers used for keeping internal state.
+ """ Resets the codec buffers used for keeping internal state.
Note that no stream repositioning should take place.
This method is primarily intended to be able to recover
@@ -838,7 +838,7 @@ class StreamRecoder:
def writelines(self, list):
- data = b''.join(list)
+ data = b''.join(list)
data, bytesdecoded = self.decode(data, self.errors)
return self.writer.write(data)
@@ -847,12 +847,12 @@ class StreamRecoder:
self.reader.reset()
self.writer.reset()
- def seek(self, offset, whence=0):
- # Seeks must be propagated to both the readers and writers
- # as they might need to reset their internal buffers.
- self.reader.seek(offset, whence)
- self.writer.seek(offset, whence)
-
+ def seek(self, offset, whence=0):
+ # Seeks must be propagated to both the readers and writers
+ # as they might need to reset their internal buffers.
+ self.reader.seek(offset, whence)
+ self.writer.seek(offset, whence)
+
def __getattr__(self, name,
getattr=getattr):
@@ -868,7 +868,7 @@ class StreamRecoder:
### Shortcuts
-def open(filename, mode='r', encoding=None, errors='strict', buffering=-1):
+def open(filename, mode='r', encoding=None, errors='strict', buffering=-1):
""" Open an encoded file using the given mode and return
a wrapped version providing transparent encoding/decoding.
@@ -889,8 +889,8 @@ def open(filename, mode='r', encoding=None, errors='strict', buffering=-1):
encoding error occurs.
buffering has the same meaning as for the builtin open() API.
- It defaults to -1 which means that the default buffer size will
- be used.
+ It defaults to -1 which means that the default buffer size will
+ be used.
The returned wrapped file object provides an extra attribute
.encoding which allows querying the used encoding. This
@@ -906,16 +906,16 @@ def open(filename, mode='r', encoding=None, errors='strict', buffering=-1):
if encoding is None:
return file
- try:
- info = lookup(encoding)
- srw = StreamReaderWriter(file, info.streamreader, info.streamwriter, errors)
- # Add attributes to simplify introspection
- srw.encoding = encoding
- return srw
- except:
- file.close()
- raise
-
+ try:
+ info = lookup(encoding)
+ srw = StreamReaderWriter(file, info.streamreader, info.streamwriter, errors)
+ # Add attributes to simplify introspection
+ srw.encoding = encoding
+ return srw
+ except:
+ file.close()
+ raise
+
def EncodedFile(file, data_encoding, file_encoding=None, errors='strict'):
""" Return a wrapped version of file which provides transparent
diff --git a/contrib/tools/python3/src/Lib/codeop.py b/contrib/tools/python3/src/Lib/codeop.py
index c58f4038fa..4c10470aee 100644
--- a/contrib/tools/python3/src/Lib/codeop.py
+++ b/contrib/tools/python3/src/Lib/codeop.py
@@ -57,7 +57,7 @@ Compile():
"""
import __future__
-import warnings
+import warnings
_features = [getattr(__future__, fname)
for fname in __future__.all_feature_names]
@@ -81,31 +81,31 @@ def _maybe_compile(compiler, source, filename, symbol):
try:
code = compiler(source, filename, symbol)
- except SyntaxError:
+ except SyntaxError:
pass
- # Catch syntax warnings after the first compile
- # to emit warnings (SyntaxWarning, DeprecationWarning) at most once.
- with warnings.catch_warnings():
- warnings.simplefilter("error")
-
- try:
- code1 = compiler(source + "\n", filename, symbol)
- except SyntaxError as e:
- err1 = e
-
- try:
- code2 = compiler(source + "\n\n", filename, symbol)
- except SyntaxError as e:
- err2 = e
-
- try:
- if code:
- return code
- if not code1 and repr(err1) == repr(err2):
- raise err1
- finally:
- err1 = err2 = None
+ # Catch syntax warnings after the first compile
+ # to emit warnings (SyntaxWarning, DeprecationWarning) at most once.
+ with warnings.catch_warnings():
+ warnings.simplefilter("error")
+
+ try:
+ code1 = compiler(source + "\n", filename, symbol)
+ except SyntaxError as e:
+ err1 = e
+
+ try:
+ code2 = compiler(source + "\n\n", filename, symbol)
+ except SyntaxError as e:
+ err2 = e
+
+ try:
+ if code:
+ return code
+ if not code1 and repr(err1) == repr(err2):
+ raise err1
+ finally:
+ err1 = err2 = None
def _compile(source, filename, symbol):
return compile(source, filename, symbol, PyCF_DONT_IMPLY_DEDENT)
@@ -118,8 +118,8 @@ def compile_command(source, filename="<input>", symbol="single"):
source -- the source string; may contain \n characters
filename -- optional filename from which source was read; default
"<input>"
- symbol -- optional grammar start symbol; "single" (default), "exec"
- or "eval"
+ symbol -- optional grammar start symbol; "single" (default), "exec"
+ or "eval"
Return value / exceptions raised:
@@ -140,7 +140,7 @@ class Compile:
self.flags = PyCF_DONT_IMPLY_DEDENT
def __call__(self, source, filename, symbol):
- codeob = compile(source, filename, symbol, self.flags, True)
+ codeob = compile(source, filename, symbol, self.flags, True)
for feature in _features:
if codeob.co_flags & feature.compiler_flag:
self.flags |= feature.compiler_flag
diff --git a/contrib/tools/python3/src/Lib/collections/__init__.py b/contrib/tools/python3/src/Lib/collections/__init__.py
index 8ff1390657..5bdd3b3516 100644
--- a/contrib/tools/python3/src/Lib/collections/__init__.py
+++ b/contrib/tools/python3/src/Lib/collections/__init__.py
@@ -14,29 +14,29 @@ list, set, and tuple.
'''
-__all__ = [
- 'ChainMap',
- 'Counter',
- 'OrderedDict',
- 'UserDict',
- 'UserList',
- 'UserString',
- 'defaultdict',
- 'deque',
- 'namedtuple',
-]
+__all__ = [
+ 'ChainMap',
+ 'Counter',
+ 'OrderedDict',
+ 'UserDict',
+ 'UserList',
+ 'UserString',
+ 'defaultdict',
+ 'deque',
+ 'namedtuple',
+]
import _collections_abc
-import heapq as _heapq
-import sys as _sys
-
-from itertools import chain as _chain
-from itertools import repeat as _repeat
-from itertools import starmap as _starmap
+import heapq as _heapq
+import sys as _sys
+
+from itertools import chain as _chain
+from itertools import repeat as _repeat
+from itertools import starmap as _starmap
from keyword import iskeyword as _iskeyword
-from operator import eq as _eq
-from operator import itemgetter as _itemgetter
-from reprlib import recursive_repr as _recursive_repr
+from operator import eq as _eq
+from operator import itemgetter as _itemgetter
+from reprlib import recursive_repr as _recursive_repr
from _weakref import proxy as _proxy
try:
@@ -60,14 +60,14 @@ def __getattr__(name):
obj = getattr(_collections_abc, name)
import warnings
warnings.warn("Using or importing the ABCs from 'collections' instead "
- "of from 'collections.abc' is deprecated since Python 3.3, "
- "and in 3.10 it will stop working",
+ "of from 'collections.abc' is deprecated since Python 3.3, "
+ "and in 3.10 it will stop working",
DeprecationWarning, stacklevel=2)
globals()[name] = obj
return obj
raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
-
+
################################################################################
### OrderedDict
################################################################################
@@ -107,7 +107,7 @@ class OrderedDict(dict):
# Individual links are kept alive by the hard reference in self.__map.
# Those hard references disappear when a key is deleted from an OrderedDict.
- def __init__(self, other=(), /, **kwds):
+ def __init__(self, other=(), /, **kwds):
'''Initialize an ordered dictionary. The signature is the same as
regular dictionaries. Keyword argument order is preserved.
'''
@@ -118,7 +118,7 @@ class OrderedDict(dict):
self.__root = root = _proxy(self.__hardroot)
root.prev = root.next = root
self.__map = {}
- self.__update(other, **kwds)
+ self.__update(other, **kwds)
def __setitem__(self, key, value,
dict_setitem=dict.__setitem__, proxy=_proxy, Link=_Link):
@@ -307,25 +307,25 @@ class OrderedDict(dict):
return dict.__eq__(self, other) and all(map(_eq, self, other))
return dict.__eq__(self, other)
- def __ior__(self, other):
- self.update(other)
- return self
-
- def __or__(self, other):
- if not isinstance(other, dict):
- return NotImplemented
- new = self.__class__(self)
- new.update(other)
- return new
-
- def __ror__(self, other):
- if not isinstance(other, dict):
- return NotImplemented
- new = self.__class__(other)
- new.update(self)
- return new
-
-
+ def __ior__(self, other):
+ self.update(other)
+ return self
+
+ def __or__(self, other):
+ if not isinstance(other, dict):
+ return NotImplemented
+ new = self.__class__(self)
+ new.update(other)
+ return new
+
+ def __ror__(self, other):
+ if not isinstance(other, dict):
+ return NotImplemented
+ new = self.__class__(other)
+ new.update(self)
+ return new
+
+
try:
from _collections import OrderedDict
except ImportError:
@@ -337,10 +337,10 @@ except ImportError:
### namedtuple
################################################################################
-try:
- from _collections import _tuplegetter
-except ImportError:
- _tuplegetter = lambda index, doc: property(_itemgetter(index), doc=doc)
+try:
+ from _collections import _tuplegetter
+except ImportError:
+ _tuplegetter = lambda index, doc: property(_itemgetter(index), doc=doc)
def namedtuple(typename, field_names, *, rename=False, defaults=None, module=None):
"""Returns a new subclass of tuple with named fields.
@@ -413,23 +413,23 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
# Variables used in the methods and docstrings
field_names = tuple(map(_sys.intern, field_names))
num_fields = len(field_names)
- arg_list = ', '.join(field_names)
- if num_fields == 1:
- arg_list += ','
+ arg_list = ', '.join(field_names)
+ if num_fields == 1:
+ arg_list += ','
repr_fmt = '(' + ', '.join(f'{name}=%r' for name in field_names) + ')'
tuple_new = tuple.__new__
- _dict, _tuple, _len, _map, _zip = dict, tuple, len, map, zip
+ _dict, _tuple, _len, _map, _zip = dict, tuple, len, map, zip
# Create all the named tuple methods to be added to the class namespace
- namespace = {
- '_tuple_new': tuple_new,
- '__builtins__': {},
- '__name__': f'namedtuple_{typename}',
- }
- code = f'lambda _cls, {arg_list}: _tuple_new(_cls, ({arg_list}))'
- __new__ = eval(code, namespace)
- __new__.__name__ = '__new__'
+ namespace = {
+ '_tuple_new': tuple_new,
+ '__builtins__': {},
+ '__name__': f'namedtuple_{typename}',
+ }
+ code = f'lambda _cls, {arg_list}: _tuple_new(_cls, ({arg_list}))'
+ __new__ = eval(code, namespace)
+ __new__.__name__ = '__new__'
__new__.__doc__ = f'Create new instance of {typename}({arg_list})'
if defaults is not None:
__new__.__defaults__ = defaults
@@ -444,8 +444,8 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
_make.__func__.__doc__ = (f'Make a new {typename} object from a sequence '
'or iterable')
- def _replace(self, /, **kwds):
- result = self._make(_map(kwds.pop, field_names, self))
+ def _replace(self, /, **kwds):
+ result = self._make(_map(kwds.pop, field_names, self))
if kwds:
raise ValueError(f'Got unexpected field names: {list(kwds)!r}')
return result
@@ -458,22 +458,22 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
return self.__class__.__name__ + repr_fmt % self
def _asdict(self):
- 'Return a new dict which maps field names to their values.'
- return _dict(_zip(self._fields, self))
+ 'Return a new dict which maps field names to their values.'
+ return _dict(_zip(self._fields, self))
def __getnewargs__(self):
'Return self as a plain tuple. Used by copy and pickle.'
- return _tuple(self)
+ return _tuple(self)
# Modify function metadata to help with introspection and debugging
- for method in (
- __new__,
- _make.__func__,
- _replace,
- __repr__,
- _asdict,
- __getnewargs__,
- ):
+ for method in (
+ __new__,
+ _make.__func__,
+ _replace,
+ __repr__,
+ _asdict,
+ __getnewargs__,
+ ):
method.__qualname__ = f'{typename}.{method.__name__}'
# Build-up the class namespace dictionary
@@ -482,7 +482,7 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
'__doc__': f'{typename}({arg_list})',
'__slots__': (),
'_fields': field_names,
- '_field_defaults': field_defaults,
+ '_field_defaults': field_defaults,
'__new__': __new__,
'_make': _make,
'_replace': _replace,
@@ -491,8 +491,8 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
'__getnewargs__': __getnewargs__,
}
for index, name in enumerate(field_names):
- doc = _sys.intern(f'Alias for field number {index}')
- class_namespace[name] = _tuplegetter(index, doc)
+ doc = _sys.intern(f'Alias for field number {index}')
+ class_namespace[name] = _tuplegetter(index, doc)
result = type(typename, (tuple,), class_namespace)
@@ -578,7 +578,7 @@ class Counter(dict):
# http://code.activestate.com/recipes/259174/
# Knuth, TAOCP Vol. II section 4.6.3
- def __init__(self, iterable=None, /, **kwds):
+ def __init__(self, iterable=None, /, **kwds):
'''Create a new, empty Counter object. And if given, count elements
from an input iterable. Or, initialize the count from another mapping
of elements to their counts.
@@ -589,8 +589,8 @@ class Counter(dict):
>>> c = Counter(a=4, b=2) # a new counter from keyword args
'''
- super().__init__()
- self.update(iterable, **kwds)
+ super().__init__()
+ self.update(iterable, **kwds)
def __missing__(self, key):
'The count of elements not in the Counter is zero.'
@@ -601,8 +601,8 @@ class Counter(dict):
'''List the n most common elements and their counts from the most
common to the least. If n is None, then list all element counts.
- >>> Counter('abracadabra').most_common(3)
- [('a', 5), ('b', 2), ('r', 2)]
+ >>> Counter('abracadabra').most_common(3)
+ [('a', 5), ('b', 2), ('r', 2)]
'''
# Emulate Bag.sortedByCount from Smalltalk
@@ -636,17 +636,17 @@ class Counter(dict):
@classmethod
def fromkeys(cls, iterable, v=None):
- # There is no equivalent method for counters because the semantics
- # would be ambiguous in cases such as Counter.fromkeys('aaabbc', v=2).
- # Initializing counters to zero values isn't necessary because zero
- # is already the default value for counter lookups. Initializing
- # to one is easily accomplished with Counter(set(iterable)). For
- # more exotic cases, create a dictionary first using a dictionary
- # comprehension or dict.fromkeys().
+ # There is no equivalent method for counters because the semantics
+ # would be ambiguous in cases such as Counter.fromkeys('aaabbc', v=2).
+ # Initializing counters to zero values isn't necessary because zero
+ # is already the default value for counter lookups. Initializing
+ # to one is easily accomplished with Counter(set(iterable)). For
+ # more exotic cases, create a dictionary first using a dictionary
+ # comprehension or dict.fromkeys().
raise NotImplementedError(
'Counter.fromkeys() is undefined. Use Counter(iterable) instead.')
- def update(self, iterable=None, /, **kwds):
+ def update(self, iterable=None, /, **kwds):
'''Like dict.update() but add counts instead of replacing them.
Source can be an iterable, a dictionary, or another Counter instance.
@@ -673,14 +673,14 @@ class Counter(dict):
for elem, count in iterable.items():
self[elem] = count + self_get(elem, 0)
else:
- # fast path when counter is empty
- super().update(iterable)
+ # fast path when counter is empty
+ super().update(iterable)
else:
_count_elements(self, iterable)
if kwds:
self.update(kwds)
- def subtract(self, iterable=None, /, **kwds):
+ def subtract(self, iterable=None, /, **kwds):
'''Like dict.update() but subtracts counts instead of replacing them.
Counts can be reduced below zero. Both the inputs and outputs are
allowed to contain zero and negative counts.
@@ -721,14 +721,14 @@ class Counter(dict):
def __repr__(self):
if not self:
- return f'{self.__class__.__name__}()'
+ return f'{self.__class__.__name__}()'
try:
- # dict() preserves the ordering returned by most_common()
- d = dict(self.most_common())
+ # dict() preserves the ordering returned by most_common()
+ d = dict(self.most_common())
except TypeError:
# handle case where values are not orderable
- d = dict(self)
- return f'{self.__class__.__name__}({d!r})'
+ d = dict(self)
+ return f'{self.__class__.__name__}({d!r})'
# Multiset-style mathematical operations discussed in:
# Knuth TAOCP Volume II section 4.6.3 exercise 19
@@ -738,13 +738,13 @@ class Counter(dict):
#
# To strip negative and zero counts, add-in an empty counter:
# c += Counter()
- #
- # Rich comparison operators for multiset subset and superset tests
- # are deliberately omitted due to semantic conflicts with the
- # existing inherited dict equality method. Subset and superset
- # semantics ignore zero counts and require that p≤q ∧ p≥q → p=q;
- # however, that would not be the case for p=Counter(a=1, b=0)
- # and q=Counter(a=1) where the dictionaries are not equal.
+ #
+ # Rich comparison operators for multiset subset and superset tests
+ # are deliberately omitted due to semantic conflicts with the
+ # existing inherited dict equality method. Subset and superset
+ # semantics ignore zero counts and require that p≤q ∧ p≥q → p=q;
+ # however, that would not be the case for p=Counter(a=1, b=0)
+ # and q=Counter(a=1) where the dictionaries are not equal.
def __add__(self, other):
'''Add counts from two counters.
@@ -949,7 +949,7 @@ class ChainMap(_collections_abc.MutableMapping):
def __iter__(self):
d = {}
for mapping in reversed(self.maps):
- d.update(dict.fromkeys(mapping)) # reuses stored hash values if possible
+ d.update(dict.fromkeys(mapping)) # reuses stored hash values if possible
return iter(d)
def __contains__(self, key):
@@ -960,7 +960,7 @@ class ChainMap(_collections_abc.MutableMapping):
@_recursive_repr()
def __repr__(self):
- return f'{self.__class__.__name__}({", ".join(map(repr, self.maps))})'
+ return f'{self.__class__.__name__}({", ".join(map(repr, self.maps))})'
@classmethod
def fromkeys(cls, iterable, *args):
@@ -993,7 +993,7 @@ class ChainMap(_collections_abc.MutableMapping):
try:
del self.maps[0][key]
except KeyError:
- raise KeyError(f'Key not found in the first mapping: {key!r}')
+ raise KeyError(f'Key not found in the first mapping: {key!r}')
def popitem(self):
'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.'
@@ -1007,32 +1007,32 @@ class ChainMap(_collections_abc.MutableMapping):
try:
return self.maps[0].pop(key, *args)
except KeyError:
- raise KeyError(f'Key not found in the first mapping: {key!r}')
+ raise KeyError(f'Key not found in the first mapping: {key!r}')
def clear(self):
'Clear maps[0], leaving maps[1:] intact.'
self.maps[0].clear()
- def __ior__(self, other):
- self.maps[0].update(other)
- return self
-
- def __or__(self, other):
- if not isinstance(other, _collections_abc.Mapping):
- return NotImplemented
- m = self.copy()
- m.maps[0].update(other)
- return m
-
- def __ror__(self, other):
- if not isinstance(other, _collections_abc.Mapping):
- return NotImplemented
- m = dict(other)
- for child in reversed(self.maps):
- m.update(child)
- return self.__class__(m)
-
-
+ def __ior__(self, other):
+ self.maps[0].update(other)
+ return self
+
+ def __or__(self, other):
+ if not isinstance(other, _collections_abc.Mapping):
+ return NotImplemented
+ m = self.copy()
+ m.maps[0].update(other)
+ return m
+
+ def __ror__(self, other):
+ if not isinstance(other, _collections_abc.Mapping):
+ return NotImplemented
+ m = dict(other)
+ for child in reversed(self.maps):
+ m.update(child)
+ return self.__class__(m)
+
+
################################################################################
### UserDict
################################################################################
@@ -1040,29 +1040,29 @@ class ChainMap(_collections_abc.MutableMapping):
class UserDict(_collections_abc.MutableMapping):
# Start by filling-out the abstract methods
- def __init__(self, dict=None, /, **kwargs):
+ def __init__(self, dict=None, /, **kwargs):
self.data = {}
if dict is not None:
self.update(dict)
- if kwargs:
+ if kwargs:
self.update(kwargs)
-
- def __len__(self):
- return len(self.data)
-
+
+ def __len__(self):
+ return len(self.data)
+
def __getitem__(self, key):
if key in self.data:
return self.data[key]
if hasattr(self.__class__, "__missing__"):
return self.__class__.__missing__(self, key)
raise KeyError(key)
-
- def __setitem__(self, key, item):
- self.data[key] = item
-
- def __delitem__(self, key):
- del self.data[key]
-
+
+ def __setitem__(self, key, item):
+ self.data[key] = item
+
+ def __delitem__(self, key):
+ del self.data[key]
+
def __iter__(self):
return iter(self.data)
@@ -1071,37 +1071,37 @@ class UserDict(_collections_abc.MutableMapping):
return key in self.data
# Now, add the methods in dicts but not in MutableMapping
- def __repr__(self):
- return repr(self.data)
-
- def __or__(self, other):
- if isinstance(other, UserDict):
- return self.__class__(self.data | other.data)
- if isinstance(other, dict):
- return self.__class__(self.data | other)
- return NotImplemented
-
- def __ror__(self, other):
- if isinstance(other, UserDict):
- return self.__class__(other.data | self.data)
- if isinstance(other, dict):
- return self.__class__(other | self.data)
- return NotImplemented
-
- def __ior__(self, other):
- if isinstance(other, UserDict):
- self.data |= other.data
- else:
- self.data |= other
- return self
-
- def __copy__(self):
- inst = self.__class__.__new__(self.__class__)
- inst.__dict__.update(self.__dict__)
- # Create a copy and avoid triggering descriptors
- inst.__dict__["data"] = self.__dict__["data"].copy()
- return inst
-
+ def __repr__(self):
+ return repr(self.data)
+
+ def __or__(self, other):
+ if isinstance(other, UserDict):
+ return self.__class__(self.data | other.data)
+ if isinstance(other, dict):
+ return self.__class__(self.data | other)
+ return NotImplemented
+
+ def __ror__(self, other):
+ if isinstance(other, UserDict):
+ return self.__class__(other.data | self.data)
+ if isinstance(other, dict):
+ return self.__class__(other | self.data)
+ return NotImplemented
+
+ def __ior__(self, other):
+ if isinstance(other, UserDict):
+ self.data |= other.data
+ else:
+ self.data |= other
+ return self
+
+ def __copy__(self):
+ inst = self.__class__.__new__(self.__class__)
+ inst.__dict__.update(self.__dict__)
+ # Create a copy and avoid triggering descriptors
+ inst.__dict__["data"] = self.__dict__["data"].copy()
+ return inst
+
def copy(self):
if self.__class__ is UserDict:
return UserDict(self.data.copy())
@@ -1114,7 +1114,7 @@ class UserDict(_collections_abc.MutableMapping):
self.data = data
c.update(self)
return c
-
+
@classmethod
def fromkeys(cls, iterable, value=None):
d = cls()
@@ -1129,7 +1129,7 @@ class UserDict(_collections_abc.MutableMapping):
class UserList(_collections_abc.MutableSequence):
"""A more or less complete user-defined wrapper around list objects."""
-
+
def __init__(self, initlist=None):
self.data = []
if initlist is not None:
@@ -1140,60 +1140,60 @@ class UserList(_collections_abc.MutableSequence):
self.data[:] = initlist.data[:]
else:
self.data = list(initlist)
-
- def __repr__(self):
- return repr(self.data)
-
- def __lt__(self, other):
- return self.data < self.__cast(other)
-
- def __le__(self, other):
- return self.data <= self.__cast(other)
-
- def __eq__(self, other):
- return self.data == self.__cast(other)
-
- def __gt__(self, other):
- return self.data > self.__cast(other)
-
- def __ge__(self, other):
- return self.data >= self.__cast(other)
-
+
+ def __repr__(self):
+ return repr(self.data)
+
+ def __lt__(self, other):
+ return self.data < self.__cast(other)
+
+ def __le__(self, other):
+ return self.data <= self.__cast(other)
+
+ def __eq__(self, other):
+ return self.data == self.__cast(other)
+
+ def __gt__(self, other):
+ return self.data > self.__cast(other)
+
+ def __ge__(self, other):
+ return self.data >= self.__cast(other)
+
def __cast(self, other):
return other.data if isinstance(other, UserList) else other
-
- def __contains__(self, item):
- return item in self.data
-
- def __len__(self):
- return len(self.data)
-
- def __getitem__(self, i):
- if isinstance(i, slice):
- return self.__class__(self.data[i])
- else:
- return self.data[i]
-
- def __setitem__(self, i, item):
- self.data[i] = item
-
- def __delitem__(self, i):
- del self.data[i]
-
+
+ def __contains__(self, item):
+ return item in self.data
+
+ def __len__(self):
+ return len(self.data)
+
+ def __getitem__(self, i):
+ if isinstance(i, slice):
+ return self.__class__(self.data[i])
+ else:
+ return self.data[i]
+
+ def __setitem__(self, i, item):
+ self.data[i] = item
+
+ def __delitem__(self, i):
+ del self.data[i]
+
def __add__(self, other):
if isinstance(other, UserList):
return self.__class__(self.data + other.data)
elif isinstance(other, type(self.data)):
return self.__class__(self.data + other)
return self.__class__(self.data + list(other))
-
+
def __radd__(self, other):
if isinstance(other, UserList):
return self.__class__(other.data + self.data)
elif isinstance(other, type(self.data)):
return self.__class__(other + self.data)
return self.__class__(list(other) + self.data)
-
+
def __iadd__(self, other):
if isinstance(other, UserList):
self.data += other.data
@@ -1202,53 +1202,53 @@ class UserList(_collections_abc.MutableSequence):
else:
self.data += list(other)
return self
-
+
def __mul__(self, n):
- return self.__class__(self.data * n)
-
+ return self.__class__(self.data * n)
+
__rmul__ = __mul__
-
+
def __imul__(self, n):
self.data *= n
return self
-
- def __copy__(self):
- inst = self.__class__.__new__(self.__class__)
- inst.__dict__.update(self.__dict__)
- # Create a copy and avoid triggering descriptors
- inst.__dict__["data"] = self.__dict__["data"][:]
- return inst
-
- def append(self, item):
- self.data.append(item)
-
- def insert(self, i, item):
- self.data.insert(i, item)
-
- def pop(self, i=-1):
- return self.data.pop(i)
-
- def remove(self, item):
- self.data.remove(item)
-
- def clear(self):
- self.data.clear()
-
- def copy(self):
- return self.__class__(self)
-
- def count(self, item):
- return self.data.count(item)
-
- def index(self, item, *args):
- return self.data.index(item, *args)
-
- def reverse(self):
- self.data.reverse()
-
- def sort(self, /, *args, **kwds):
- self.data.sort(*args, **kwds)
-
+
+ def __copy__(self):
+ inst = self.__class__.__new__(self.__class__)
+ inst.__dict__.update(self.__dict__)
+ # Create a copy and avoid triggering descriptors
+ inst.__dict__["data"] = self.__dict__["data"][:]
+ return inst
+
+ def append(self, item):
+ self.data.append(item)
+
+ def insert(self, i, item):
+ self.data.insert(i, item)
+
+ def pop(self, i=-1):
+ return self.data.pop(i)
+
+ def remove(self, item):
+ self.data.remove(item)
+
+ def clear(self):
+ self.data.clear()
+
+ def copy(self):
+ return self.__class__(self)
+
+ def count(self, item):
+ return self.data.count(item)
+
+ def index(self, item, *args):
+ return self.data.index(item, *args)
+
+ def reverse(self):
+ self.data.reverse()
+
+ def sort(self, /, *args, **kwds):
+ self.data.sort(*args, **kwds)
+
def extend(self, other):
if isinstance(other, UserList):
self.data.extend(other.data)
@@ -1261,7 +1261,7 @@ class UserList(_collections_abc.MutableSequence):
################################################################################
class UserString(_collections_abc.Sequence):
-
+
def __init__(self, seq):
if isinstance(seq, str):
self.data = seq
@@ -1269,25 +1269,25 @@ class UserString(_collections_abc.Sequence):
self.data = seq.data[:]
else:
self.data = str(seq)
-
- def __str__(self):
- return str(self.data)
-
- def __repr__(self):
- return repr(self.data)
-
- def __int__(self):
- return int(self.data)
-
- def __float__(self):
- return float(self.data)
-
- def __complex__(self):
- return complex(self.data)
-
- def __hash__(self):
- return hash(self.data)
-
+
+ def __str__(self):
+ return str(self.data)
+
+ def __repr__(self):
+ return repr(self.data)
+
+ def __int__(self):
+ return int(self.data)
+
+ def __float__(self):
+ return float(self.data)
+
+ def __complex__(self):
+ return complex(self.data)
+
+ def __hash__(self):
+ return hash(self.data)
+
def __getnewargs__(self):
return (self.data[:],)
@@ -1295,22 +1295,22 @@ class UserString(_collections_abc.Sequence):
if isinstance(string, UserString):
return self.data == string.data
return self.data == string
-
+
def __lt__(self, string):
if isinstance(string, UserString):
return self.data < string.data
return self.data < string
-
+
def __le__(self, string):
if isinstance(string, UserString):
return self.data <= string.data
return self.data <= string
-
+
def __gt__(self, string):
if isinstance(string, UserString):
return self.data > string.data
return self.data > string
-
+
def __ge__(self, string):
if isinstance(string, UserString):
return self.data >= string.data
@@ -1321,188 +1321,188 @@ class UserString(_collections_abc.Sequence):
char = char.data
return char in self.data
- def __len__(self):
- return len(self.data)
-
- def __getitem__(self, index):
- return self.__class__(self.data[index])
-
+ def __len__(self):
+ return len(self.data)
+
+ def __getitem__(self, index):
+ return self.__class__(self.data[index])
+
def __add__(self, other):
if isinstance(other, UserString):
return self.__class__(self.data + other.data)
elif isinstance(other, str):
return self.__class__(self.data + other)
return self.__class__(self.data + str(other))
-
+
def __radd__(self, other):
if isinstance(other, str):
return self.__class__(other + self.data)
return self.__class__(str(other) + self.data)
-
+
def __mul__(self, n):
- return self.__class__(self.data * n)
-
+ return self.__class__(self.data * n)
+
__rmul__ = __mul__
-
+
def __mod__(self, args):
return self.__class__(self.data % args)
-
- def __rmod__(self, template):
- return self.__class__(str(template) % self)
-
+
+ def __rmod__(self, template):
+ return self.__class__(str(template) % self)
+
# the following methods are defined in alphabetical order:
- def capitalize(self):
- return self.__class__(self.data.capitalize())
-
+ def capitalize(self):
+ return self.__class__(self.data.capitalize())
+
def casefold(self):
return self.__class__(self.data.casefold())
-
+
def center(self, width, *args):
return self.__class__(self.data.center(width, *args))
-
+
def count(self, sub, start=0, end=_sys.maxsize):
if isinstance(sub, UserString):
sub = sub.data
return self.data.count(sub, start, end)
-
- def removeprefix(self, prefix, /):
- if isinstance(prefix, UserString):
- prefix = prefix.data
- return self.__class__(self.data.removeprefix(prefix))
-
- def removesuffix(self, suffix, /):
- if isinstance(suffix, UserString):
- suffix = suffix.data
- return self.__class__(self.data.removesuffix(suffix))
-
- def encode(self, encoding='utf-8', errors='strict'):
- encoding = 'utf-8' if encoding is None else encoding
- errors = 'strict' if errors is None else errors
- return self.data.encode(encoding, errors)
-
+
+ def removeprefix(self, prefix, /):
+ if isinstance(prefix, UserString):
+ prefix = prefix.data
+ return self.__class__(self.data.removeprefix(prefix))
+
+ def removesuffix(self, suffix, /):
+ if isinstance(suffix, UserString):
+ suffix = suffix.data
+ return self.__class__(self.data.removesuffix(suffix))
+
+ def encode(self, encoding='utf-8', errors='strict'):
+ encoding = 'utf-8' if encoding is None else encoding
+ errors = 'strict' if errors is None else errors
+ return self.data.encode(encoding, errors)
+
def endswith(self, suffix, start=0, end=_sys.maxsize):
return self.data.endswith(suffix, start, end)
-
+
def expandtabs(self, tabsize=8):
return self.__class__(self.data.expandtabs(tabsize))
-
+
def find(self, sub, start=0, end=_sys.maxsize):
if isinstance(sub, UserString):
sub = sub.data
return self.data.find(sub, start, end)
-
- def format(self, /, *args, **kwds):
+
+ def format(self, /, *args, **kwds):
return self.data.format(*args, **kwds)
-
+
def format_map(self, mapping):
return self.data.format_map(mapping)
-
+
def index(self, sub, start=0, end=_sys.maxsize):
return self.data.index(sub, start, end)
-
- def isalpha(self):
- return self.data.isalpha()
-
- def isalnum(self):
- return self.data.isalnum()
-
- def isascii(self):
- return self.data.isascii()
-
- def isdecimal(self):
- return self.data.isdecimal()
-
- def isdigit(self):
- return self.data.isdigit()
-
- def isidentifier(self):
- return self.data.isidentifier()
-
- def islower(self):
- return self.data.islower()
-
- def isnumeric(self):
- return self.data.isnumeric()
-
- def isprintable(self):
- return self.data.isprintable()
-
- def isspace(self):
- return self.data.isspace()
-
- def istitle(self):
- return self.data.istitle()
-
- def isupper(self):
- return self.data.isupper()
-
- def join(self, seq):
- return self.data.join(seq)
-
+
+ def isalpha(self):
+ return self.data.isalpha()
+
+ def isalnum(self):
+ return self.data.isalnum()
+
+ def isascii(self):
+ return self.data.isascii()
+
+ def isdecimal(self):
+ return self.data.isdecimal()
+
+ def isdigit(self):
+ return self.data.isdigit()
+
+ def isidentifier(self):
+ return self.data.isidentifier()
+
+ def islower(self):
+ return self.data.islower()
+
+ def isnumeric(self):
+ return self.data.isnumeric()
+
+ def isprintable(self):
+ return self.data.isprintable()
+
+ def isspace(self):
+ return self.data.isspace()
+
+ def istitle(self):
+ return self.data.istitle()
+
+ def isupper(self):
+ return self.data.isupper()
+
+ def join(self, seq):
+ return self.data.join(seq)
+
def ljust(self, width, *args):
return self.__class__(self.data.ljust(width, *args))
-
- def lower(self):
- return self.__class__(self.data.lower())
-
- def lstrip(self, chars=None):
- return self.__class__(self.data.lstrip(chars))
-
+
+ def lower(self):
+ return self.__class__(self.data.lower())
+
+ def lstrip(self, chars=None):
+ return self.__class__(self.data.lstrip(chars))
+
maketrans = str.maketrans
-
+
def partition(self, sep):
return self.data.partition(sep)
-
+
def replace(self, old, new, maxsplit=-1):
if isinstance(old, UserString):
old = old.data
if isinstance(new, UserString):
new = new.data
return self.__class__(self.data.replace(old, new, maxsplit))
-
+
def rfind(self, sub, start=0, end=_sys.maxsize):
if isinstance(sub, UserString):
sub = sub.data
return self.data.rfind(sub, start, end)
-
+
def rindex(self, sub, start=0, end=_sys.maxsize):
return self.data.rindex(sub, start, end)
-
+
def rjust(self, width, *args):
return self.__class__(self.data.rjust(width, *args))
-
+
def rpartition(self, sep):
return self.data.rpartition(sep)
-
+
def rstrip(self, chars=None):
return self.__class__(self.data.rstrip(chars))
-
+
def split(self, sep=None, maxsplit=-1):
return self.data.split(sep, maxsplit)
-
+
def rsplit(self, sep=None, maxsplit=-1):
return self.data.rsplit(sep, maxsplit)
-
- def splitlines(self, keepends=False):
- return self.data.splitlines(keepends)
-
+
+ def splitlines(self, keepends=False):
+ return self.data.splitlines(keepends)
+
def startswith(self, prefix, start=0, end=_sys.maxsize):
return self.data.startswith(prefix, start, end)
-
- def strip(self, chars=None):
- return self.__class__(self.data.strip(chars))
-
- def swapcase(self):
- return self.__class__(self.data.swapcase())
-
- def title(self):
- return self.__class__(self.data.title())
-
+
+ def strip(self, chars=None):
+ return self.__class__(self.data.strip(chars))
+
+ def swapcase(self):
+ return self.__class__(self.data.swapcase())
+
+ def title(self):
+ return self.__class__(self.data.title())
+
def translate(self, *args):
return self.__class__(self.data.translate(*args))
-
- def upper(self):
- return self.__class__(self.data.upper())
-
- def zfill(self, width):
- return self.__class__(self.data.zfill(width))
+
+ def upper(self):
+ return self.__class__(self.data.upper())
+
+ def zfill(self, width):
+ return self.__class__(self.data.zfill(width))
diff --git a/contrib/tools/python3/src/Lib/collections/abc.py b/contrib/tools/python3/src/Lib/collections/abc.py
index 6a987916c0..86ca8b8a84 100644
--- a/contrib/tools/python3/src/Lib/collections/abc.py
+++ b/contrib/tools/python3/src/Lib/collections/abc.py
@@ -1,3 +1,3 @@
from _collections_abc import *
from _collections_abc import __all__
-from _collections_abc import _CallableGenericAlias
+from _collections_abc import _CallableGenericAlias
diff --git a/contrib/tools/python3/src/Lib/compileall.py b/contrib/tools/python3/src/Lib/compileall.py
index 5ec5e5675f..25ad83c229 100644
--- a/contrib/tools/python3/src/Lib/compileall.py
+++ b/contrib/tools/python3/src/Lib/compileall.py
@@ -15,14 +15,14 @@ import sys
import importlib.util
import py_compile
import struct
-import filecmp
+import filecmp
from functools import partial
-from pathlib import Path
+from pathlib import Path
__all__ = ["compile_dir","compile_file","compile_path"]
-def _walk_dir(dir, maxlevels, quiet=0):
+def _walk_dir(dir, maxlevels, quiet=0):
if quiet < 2 and isinstance(dir, os.PathLike):
dir = os.fspath(dir)
if not quiet:
@@ -39,91 +39,91 @@ def _walk_dir(dir, maxlevels, quiet=0):
continue
fullname = os.path.join(dir, name)
if not os.path.isdir(fullname):
- yield fullname
+ yield fullname
elif (maxlevels > 0 and name != os.curdir and name != os.pardir and
os.path.isdir(fullname) and not os.path.islink(fullname)):
- yield from _walk_dir(fullname, maxlevels=maxlevels - 1,
- quiet=quiet)
+ yield from _walk_dir(fullname, maxlevels=maxlevels - 1,
+ quiet=quiet)
-def compile_dir(dir, maxlevels=None, ddir=None, force=False,
- rx=None, quiet=0, legacy=False, optimize=-1, workers=1,
- invalidation_mode=None, *, stripdir=None,
- prependdir=None, limit_sl_dest=None, hardlink_dupes=False):
+def compile_dir(dir, maxlevels=None, ddir=None, force=False,
+ rx=None, quiet=0, legacy=False, optimize=-1, workers=1,
+ invalidation_mode=None, *, stripdir=None,
+ prependdir=None, limit_sl_dest=None, hardlink_dupes=False):
"""Byte-compile all modules in the given directory tree.
Arguments (only dir is required):
dir: the directory to byte-compile
- maxlevels: maximum recursion level (default `sys.getrecursionlimit()`)
+ maxlevels: maximum recursion level (default `sys.getrecursionlimit()`)
ddir: the directory that will be prepended to the path to the
file as it is compiled into each byte-code file.
force: if True, force compilation, even if timestamps are up-to-date
quiet: full output with False or 0, errors only with 1,
no output with 2
legacy: if True, produce legacy pyc paths instead of PEP 3147 paths
- optimize: int or list of optimization levels or -1 for level of
- the interpreter. Multiple levels leads to multiple compiled
- files each with one optimization level.
+ optimize: int or list of optimization levels or -1 for level of
+ the interpreter. Multiple levels leads to multiple compiled
+ files each with one optimization level.
workers: maximum number of parallel workers
invalidation_mode: how the up-to-dateness of the pyc will be checked
- stripdir: part of path to left-strip from source file path
- prependdir: path to prepend to beginning of original file path, applied
- after stripdir
- limit_sl_dest: ignore symlinks if they are pointing outside of
- the defined path
- hardlink_dupes: hardlink duplicated pyc files
+ stripdir: part of path to left-strip from source file path
+ prependdir: path to prepend to beginning of original file path, applied
+ after stripdir
+ limit_sl_dest: ignore symlinks if they are pointing outside of
+ the defined path
+ hardlink_dupes: hardlink duplicated pyc files
"""
ProcessPoolExecutor = None
- if ddir is not None and (stripdir is not None or prependdir is not None):
- raise ValueError(("Destination dir (ddir) cannot be used "
- "in combination with stripdir or prependdir"))
- if ddir is not None:
- stripdir = dir
- prependdir = ddir
- ddir = None
- if workers < 0:
- raise ValueError('workers must be greater or equal to 0')
- if workers != 1:
- try:
- # Only import when needed, as low resource platforms may
- # fail to import it
- from concurrent.futures import ProcessPoolExecutor
- except ImportError:
- workers = 1
- if maxlevels is None:
- maxlevels = sys.getrecursionlimit()
- files = _walk_dir(dir, quiet=quiet, maxlevels=maxlevels)
+ if ddir is not None and (stripdir is not None or prependdir is not None):
+ raise ValueError(("Destination dir (ddir) cannot be used "
+ "in combination with stripdir or prependdir"))
+ if ddir is not None:
+ stripdir = dir
+ prependdir = ddir
+ ddir = None
+ if workers < 0:
+ raise ValueError('workers must be greater or equal to 0')
+ if workers != 1:
+ try:
+ # Only import when needed, as low resource platforms may
+ # fail to import it
+ from concurrent.futures import ProcessPoolExecutor
+ except ImportError:
+ workers = 1
+ if maxlevels is None:
+ maxlevels = sys.getrecursionlimit()
+ files = _walk_dir(dir, quiet=quiet, maxlevels=maxlevels)
success = True
- if workers != 1 and ProcessPoolExecutor is not None:
- # If workers == 0, let ProcessPoolExecutor choose
+ if workers != 1 and ProcessPoolExecutor is not None:
+ # If workers == 0, let ProcessPoolExecutor choose
workers = workers or None
with ProcessPoolExecutor(max_workers=workers) as executor:
- results = executor.map(partial(compile_file,
- ddir=ddir, force=force,
- rx=rx, quiet=quiet,
- legacy=legacy,
- optimize=optimize,
- invalidation_mode=invalidation_mode,
- stripdir=stripdir,
- prependdir=prependdir,
- limit_sl_dest=limit_sl_dest,
- hardlink_dupes=hardlink_dupes),
- files)
+ results = executor.map(partial(compile_file,
+ ddir=ddir, force=force,
+ rx=rx, quiet=quiet,
+ legacy=legacy,
+ optimize=optimize,
+ invalidation_mode=invalidation_mode,
+ stripdir=stripdir,
+ prependdir=prependdir,
+ limit_sl_dest=limit_sl_dest,
+ hardlink_dupes=hardlink_dupes),
+ files)
success = min(results, default=True)
else:
- for file in files:
- if not compile_file(file, ddir, force, rx, quiet,
- legacy, optimize, invalidation_mode,
- stripdir=stripdir, prependdir=prependdir,
- limit_sl_dest=limit_sl_dest,
- hardlink_dupes=hardlink_dupes):
+ for file in files:
+ if not compile_file(file, ddir, force, rx, quiet,
+ legacy, optimize, invalidation_mode,
+ stripdir=stripdir, prependdir=prependdir,
+ limit_sl_dest=limit_sl_dest,
+ hardlink_dupes=hardlink_dupes):
success = False
return success
def compile_file(fullname, ddir=None, force=False, rx=None, quiet=0,
legacy=False, optimize=-1,
- invalidation_mode=None, *, stripdir=None, prependdir=None,
- limit_sl_dest=None, hardlink_dupes=False):
+ invalidation_mode=None, *, stripdir=None, prependdir=None,
+ limit_sl_dest=None, hardlink_dupes=False):
"""Byte-compile one file.
Arguments (only fullname is required):
@@ -135,114 +135,114 @@ def compile_file(fullname, ddir=None, force=False, rx=None, quiet=0,
quiet: full output with False or 0, errors only with 1,
no output with 2
legacy: if True, produce legacy pyc paths instead of PEP 3147 paths
- optimize: int or list of optimization levels or -1 for level of
- the interpreter. Multiple levels leads to multiple compiled
- files each with one optimization level.
+ optimize: int or list of optimization levels or -1 for level of
+ the interpreter. Multiple levels leads to multiple compiled
+ files each with one optimization level.
invalidation_mode: how the up-to-dateness of the pyc will be checked
- stripdir: part of path to left-strip from source file path
- prependdir: path to prepend to beginning of original file path, applied
- after stripdir
- limit_sl_dest: ignore symlinks if they are pointing outside of
- the defined path.
- hardlink_dupes: hardlink duplicated pyc files
+ stripdir: part of path to left-strip from source file path
+ prependdir: path to prepend to beginning of original file path, applied
+ after stripdir
+ limit_sl_dest: ignore symlinks if they are pointing outside of
+ the defined path.
+ hardlink_dupes: hardlink duplicated pyc files
"""
-
- if ddir is not None and (stripdir is not None or prependdir is not None):
- raise ValueError(("Destination dir (ddir) cannot be used "
- "in combination with stripdir or prependdir"))
-
+
+ if ddir is not None and (stripdir is not None or prependdir is not None):
+ raise ValueError(("Destination dir (ddir) cannot be used "
+ "in combination with stripdir or prependdir"))
+
success = True
if quiet < 2 and isinstance(fullname, os.PathLike):
fullname = os.fspath(fullname)
name = os.path.basename(fullname)
-
- dfile = None
-
+
+ dfile = None
+
if ddir is not None:
dfile = os.path.join(ddir, name)
-
- if stripdir is not None:
- fullname_parts = fullname.split(os.path.sep)
- stripdir_parts = stripdir.split(os.path.sep)
- ddir_parts = list(fullname_parts)
-
- for spart, opart in zip(stripdir_parts, fullname_parts):
- if spart == opart:
- ddir_parts.remove(spart)
-
- dfile = os.path.join(*ddir_parts)
-
- if prependdir is not None:
- if dfile is None:
- dfile = os.path.join(prependdir, fullname)
- else:
- dfile = os.path.join(prependdir, dfile)
-
- if isinstance(optimize, int):
- optimize = [optimize]
-
- # Use set() to remove duplicates.
- # Use sorted() to create pyc files in a deterministic order.
- optimize = sorted(set(optimize))
-
- if hardlink_dupes and len(optimize) < 2:
- raise ValueError("Hardlinking of duplicated bytecode makes sense "
- "only for more than one optimization level")
-
+
+ if stripdir is not None:
+ fullname_parts = fullname.split(os.path.sep)
+ stripdir_parts = stripdir.split(os.path.sep)
+ ddir_parts = list(fullname_parts)
+
+ for spart, opart in zip(stripdir_parts, fullname_parts):
+ if spart == opart:
+ ddir_parts.remove(spart)
+
+ dfile = os.path.join(*ddir_parts)
+
+ if prependdir is not None:
+ if dfile is None:
+ dfile = os.path.join(prependdir, fullname)
+ else:
+ dfile = os.path.join(prependdir, dfile)
+
+ if isinstance(optimize, int):
+ optimize = [optimize]
+
+ # Use set() to remove duplicates.
+ # Use sorted() to create pyc files in a deterministic order.
+ optimize = sorted(set(optimize))
+
+ if hardlink_dupes and len(optimize) < 2:
+ raise ValueError("Hardlinking of duplicated bytecode makes sense "
+ "only for more than one optimization level")
+
if rx is not None:
mo = rx.search(fullname)
if mo:
return success
-
- if limit_sl_dest is not None and os.path.islink(fullname):
- if Path(limit_sl_dest).resolve() not in Path(fullname).resolve().parents:
- return success
-
- opt_cfiles = {}
-
+
+ if limit_sl_dest is not None and os.path.islink(fullname):
+ if Path(limit_sl_dest).resolve() not in Path(fullname).resolve().parents:
+ return success
+
+ opt_cfiles = {}
+
if os.path.isfile(fullname):
- for opt_level in optimize:
- if legacy:
- opt_cfiles[opt_level] = fullname + 'c'
+ for opt_level in optimize:
+ if legacy:
+ opt_cfiles[opt_level] = fullname + 'c'
else:
- if opt_level >= 0:
- opt = opt_level if opt_level >= 1 else ''
- cfile = (importlib.util.cache_from_source(
- fullname, optimization=opt))
- opt_cfiles[opt_level] = cfile
- else:
- cfile = importlib.util.cache_from_source(fullname)
- opt_cfiles[opt_level] = cfile
-
+ if opt_level >= 0:
+ opt = opt_level if opt_level >= 1 else ''
+ cfile = (importlib.util.cache_from_source(
+ fullname, optimization=opt))
+ opt_cfiles[opt_level] = cfile
+ else:
+ cfile = importlib.util.cache_from_source(fullname)
+ opt_cfiles[opt_level] = cfile
+
head, tail = name[:-3], name[-3:]
if tail == '.py':
if not force:
try:
mtime = int(os.stat(fullname).st_mtime)
- expect = struct.pack('<4sLL', importlib.util.MAGIC_NUMBER,
- 0, mtime & 0xFFFF_FFFF)
- for cfile in opt_cfiles.values():
- with open(cfile, 'rb') as chandle:
- actual = chandle.read(12)
- if expect != actual:
- break
- else:
+ expect = struct.pack('<4sLL', importlib.util.MAGIC_NUMBER,
+ 0, mtime & 0xFFFF_FFFF)
+ for cfile in opt_cfiles.values():
+ with open(cfile, 'rb') as chandle:
+ actual = chandle.read(12)
+ if expect != actual:
+ break
+ else:
return success
except OSError:
pass
if not quiet:
print('Compiling {!r}...'.format(fullname))
try:
- for index, opt_level in enumerate(optimize):
- cfile = opt_cfiles[opt_level]
- ok = py_compile.compile(fullname, cfile, dfile, True,
- optimize=opt_level,
- invalidation_mode=invalidation_mode)
- if index > 0 and hardlink_dupes:
- previous_cfile = opt_cfiles[optimize[index - 1]]
- if filecmp.cmp(cfile, previous_cfile, shallow=False):
- os.unlink(cfile)
- os.link(previous_cfile, cfile)
+ for index, opt_level in enumerate(optimize):
+ cfile = opt_cfiles[opt_level]
+ ok = py_compile.compile(fullname, cfile, dfile, True,
+ optimize=opt_level,
+ invalidation_mode=invalidation_mode)
+ if index > 0 and hardlink_dupes:
+ previous_cfile = opt_cfiles[optimize[index - 1]]
+ if filecmp.cmp(cfile, previous_cfile, shallow=False):
+ os.unlink(cfile)
+ os.link(previous_cfile, cfile)
except py_compile.PyCompileError as err:
success = False
if quiet >= 2:
@@ -252,8 +252,8 @@ def compile_file(fullname, ddir=None, force=False, rx=None, quiet=0,
else:
print('*** ', end='')
# escape non-printable characters in msg
- encoding = sys.stdout.encoding or sys.getdefaultencoding()
- msg = err.msg.encode(encoding, errors='backslashreplace').decode(encoding)
+ encoding = sys.stdout.encoding or sys.getdefaultencoding()
+ msg = err.msg.encode(encoding, errors='backslashreplace').decode(encoding)
print(msg)
except (SyntaxError, UnicodeError, OSError) as e:
success = False
@@ -310,7 +310,7 @@ def main():
parser = argparse.ArgumentParser(
description='Utilities to support installing Python libraries.')
parser.add_argument('-l', action='store_const', const=0,
- default=None, dest='maxlevels',
+ default=None, dest='maxlevels',
help="don't recurse into subdirectories")
parser.add_argument('-r', type=int, dest='recursion',
help=('control the maximum recursion level. '
@@ -328,20 +328,20 @@ def main():
'compile-time tracebacks and in runtime '
'tracebacks in cases where the source file is '
'unavailable'))
- parser.add_argument('-s', metavar='STRIPDIR', dest='stripdir',
- default=None,
- help=('part of path to left-strip from path '
- 'to source file - for example buildroot. '
- '`-d` and `-s` options cannot be '
- 'specified together.'))
- parser.add_argument('-p', metavar='PREPENDDIR', dest='prependdir',
- default=None,
- help=('path to add as prefix to path '
- 'to source file - for example / to make '
- 'it absolute when some part is removed '
- 'by `-s` option. '
- '`-d` and `-p` options cannot be '
- 'specified together.'))
+ parser.add_argument('-s', metavar='STRIPDIR', dest='stripdir',
+ default=None,
+ help=('part of path to left-strip from path '
+ 'to source file - for example buildroot. '
+ '`-d` and `-s` options cannot be '
+ 'specified together.'))
+ parser.add_argument('-p', metavar='PREPENDDIR', dest='prependdir',
+ default=None,
+ help=('path to add as prefix to path '
+ 'to source file - for example / to make '
+ 'it absolute when some part is removed '
+ 'by `-s` option. '
+ '`-d` and `-p` options cannot be '
+ 'specified together.'))
parser.add_argument('-x', metavar='REGEXP', dest='rx', default=None,
help=('skip files matching the regular expression; '
'the regexp is searched for in the full path '
@@ -364,15 +364,15 @@ def main():
'"checked-hash" if the SOURCE_DATE_EPOCH '
'environment variable is set, and '
'"timestamp" otherwise.'))
- parser.add_argument('-o', action='append', type=int, dest='opt_levels',
- help=('Optimization levels to run compilation with. '
- 'Default is -1 which uses the optimization level '
- 'of the Python interpreter itself (see -O).'))
- parser.add_argument('-e', metavar='DIR', dest='limit_sl_dest',
- help='Ignore symlinks pointing outsite of the DIR')
- parser.add_argument('--hardlink-dupes', action='store_true',
- dest='hardlink_dupes',
- help='Hardlink duplicated pyc files')
+ parser.add_argument('-o', action='append', type=int, dest='opt_levels',
+ help=('Optimization levels to run compilation with. '
+ 'Default is -1 which uses the optimization level '
+ 'of the Python interpreter itself (see -O).'))
+ parser.add_argument('-e', metavar='DIR', dest='limit_sl_dest',
+ help='Ignore symlinks pointing outsite of the DIR')
+ parser.add_argument('--hardlink-dupes', action='store_true',
+ dest='hardlink_dupes',
+ help='Hardlink duplicated pyc files')
args = parser.parse_args()
compile_dests = args.compile_dest
@@ -381,26 +381,26 @@ def main():
import re
args.rx = re.compile(args.rx)
- if args.limit_sl_dest == "":
- args.limit_sl_dest = None
+ if args.limit_sl_dest == "":
+ args.limit_sl_dest = None
if args.recursion is not None:
maxlevels = args.recursion
else:
maxlevels = args.maxlevels
- if args.opt_levels is None:
- args.opt_levels = [-1]
-
- if len(args.opt_levels) == 1 and args.hardlink_dupes:
- parser.error(("Hardlinking of duplicated bytecode makes sense "
- "only for more than one optimization level."))
-
- if args.ddir is not None and (
- args.stripdir is not None or args.prependdir is not None
- ):
- parser.error("-d cannot be used in combination with -s or -p")
-
+ if args.opt_levels is None:
+ args.opt_levels = [-1]
+
+ if len(args.opt_levels) == 1 and args.hardlink_dupes:
+ parser.error(("Hardlinking of duplicated bytecode makes sense "
+ "only for more than one optimization level."))
+
+ if args.ddir is not None and (
+ args.stripdir is not None or args.prependdir is not None
+ ):
+ parser.error("-d cannot be used in combination with -s or -p")
+
# if flist is provided then load it
if args.flist:
try:
@@ -425,23 +425,23 @@ def main():
if os.path.isfile(dest):
if not compile_file(dest, args.ddir, args.force, args.rx,
args.quiet, args.legacy,
- invalidation_mode=invalidation_mode,
- stripdir=args.stripdir,
- prependdir=args.prependdir,
- optimize=args.opt_levels,
- limit_sl_dest=args.limit_sl_dest,
- hardlink_dupes=args.hardlink_dupes):
+ invalidation_mode=invalidation_mode,
+ stripdir=args.stripdir,
+ prependdir=args.prependdir,
+ optimize=args.opt_levels,
+ limit_sl_dest=args.limit_sl_dest,
+ hardlink_dupes=args.hardlink_dupes):
success = False
else:
if not compile_dir(dest, maxlevels, args.ddir,
args.force, args.rx, args.quiet,
args.legacy, workers=args.workers,
- invalidation_mode=invalidation_mode,
- stripdir=args.stripdir,
- prependdir=args.prependdir,
- optimize=args.opt_levels,
- limit_sl_dest=args.limit_sl_dest,
- hardlink_dupes=args.hardlink_dupes):
+ invalidation_mode=invalidation_mode,
+ stripdir=args.stripdir,
+ prependdir=args.prependdir,
+ optimize=args.opt_levels,
+ limit_sl_dest=args.limit_sl_dest,
+ hardlink_dupes=args.hardlink_dupes):
success = False
return success
else:
diff --git a/contrib/tools/python3/src/Lib/concurrent/futures/__init__.py b/contrib/tools/python3/src/Lib/concurrent/futures/__init__.py
index 07c638d39f..d746aeac50 100644
--- a/contrib/tools/python3/src/Lib/concurrent/futures/__init__.py
+++ b/contrib/tools/python3/src/Lib/concurrent/futures/__init__.py
@@ -10,7 +10,7 @@ from concurrent.futures._base import (FIRST_COMPLETED,
ALL_COMPLETED,
CancelledError,
TimeoutError,
- InvalidStateError,
+ InvalidStateError,
BrokenExecutor,
Future,
Executor,
diff --git a/contrib/tools/python3/src/Lib/concurrent/futures/_base.py b/contrib/tools/python3/src/Lib/concurrent/futures/_base.py
index 78d17dca4d..5c00f2edbe 100644
--- a/contrib/tools/python3/src/Lib/concurrent/futures/_base.py
+++ b/contrib/tools/python3/src/Lib/concurrent/futures/_base.py
@@ -7,7 +7,7 @@ import collections
import logging
import threading
import time
-import types
+import types
FIRST_COMPLETED = 'FIRST_COMPLETED'
FIRST_EXCEPTION = 'FIRST_EXCEPTION'
@@ -54,10 +54,10 @@ class TimeoutError(Error):
"""The operation exceeded the given deadline."""
pass
-class InvalidStateError(Error):
- """The operation is not allowed in this state."""
- pass
-
+class InvalidStateError(Error):
+ """The operation is not allowed in this state."""
+ pass
+
class _Waiter(object):
"""Provides the event that wait() and as_completed() block on."""
def __init__(self):
@@ -284,14 +284,14 @@ def wait(fs, timeout=None, return_when=ALL_COMPLETED):
A named 2-tuple of sets. The first set, named 'done', contains the
futures that completed (is finished or cancelled) before the wait
completed. The second set, named 'not_done', contains uncompleted
- futures. Duplicate futures given to *fs* are removed and will be
- returned only once.
+ futures. Duplicate futures given to *fs* are removed and will be
+ returned only once.
"""
- fs = set(fs)
+ fs = set(fs)
with _AcquireFutures(fs):
- done = {f for f in fs
- if f._state in [CANCELLED_AND_NOTIFIED, FINISHED]}
- not_done = fs - done
+ done = {f for f in fs
+ if f._state in [CANCELLED_AND_NOTIFIED, FINISHED]}
+ not_done = fs - done
if (return_when == FIRST_COMPLETED) and done:
return DoneAndNotDoneFutures(done, not_done)
elif (return_when == FIRST_EXCEPTION) and done:
@@ -310,7 +310,7 @@ def wait(fs, timeout=None, return_when=ALL_COMPLETED):
f._waiters.remove(waiter)
done.update(waiter.finished_futures)
- return DoneAndNotDoneFutures(done, fs - done)
+ return DoneAndNotDoneFutures(done, fs - done)
class Future(object):
"""Represents the result of an asynchronous computation."""
@@ -387,11 +387,11 @@ class Future(object):
def __get_result(self):
if self._exception:
- try:
- raise self._exception
- finally:
- # Break a reference cycle with the exception in self._exception
- self = None
+ try:
+ raise self._exception
+ finally:
+ # Break a reference cycle with the exception in self._exception
+ self = None
else:
return self._result
@@ -410,10 +410,10 @@ class Future(object):
if self._state not in [CANCELLED, CANCELLED_AND_NOTIFIED, FINISHED]:
self._done_callbacks.append(fn)
return
- try:
- fn(self)
- except Exception:
- LOGGER.exception('exception calling callback for %r', self)
+ try:
+ fn(self)
+ except Exception:
+ LOGGER.exception('exception calling callback for %r', self)
def result(self, timeout=None):
"""Return the result of the call that the future represents.
@@ -431,24 +431,24 @@ class Future(object):
timeout.
Exception: If the call raised then that exception will be raised.
"""
- try:
- with self._condition:
- if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
- raise CancelledError()
- elif self._state == FINISHED:
- return self.__get_result()
-
- self._condition.wait(timeout)
-
- if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
- raise CancelledError()
- elif self._state == FINISHED:
- return self.__get_result()
- else:
- raise TimeoutError()
- finally:
- # Break a reference cycle with the exception in self._exception
- self = None
+ try:
+ with self._condition:
+ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
+ raise CancelledError()
+ elif self._state == FINISHED:
+ return self.__get_result()
+
+ self._condition.wait(timeout)
+
+ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
+ raise CancelledError()
+ elif self._state == FINISHED:
+ return self.__get_result()
+ else:
+ raise TimeoutError()
+ finally:
+ # Break a reference cycle with the exception in self._exception
+ self = None
def exception(self, timeout=None):
"""Return the exception raised by the call that the future represents.
@@ -530,8 +530,8 @@ class Future(object):
Should only be used by Executor implementations and unit tests.
"""
with self._condition:
- if self._state in {CANCELLED, CANCELLED_AND_NOTIFIED, FINISHED}:
- raise InvalidStateError('{}: {!r}'.format(self._state, self))
+ if self._state in {CANCELLED, CANCELLED_AND_NOTIFIED, FINISHED}:
+ raise InvalidStateError('{}: {!r}'.format(self._state, self))
self._result = result
self._state = FINISHED
for waiter in self._waiters:
@@ -545,8 +545,8 @@ class Future(object):
Should only be used by Executor implementations and unit tests.
"""
with self._condition:
- if self._state in {CANCELLED, CANCELLED_AND_NOTIFIED, FINISHED}:
- raise InvalidStateError('{}: {!r}'.format(self._state, self))
+ if self._state in {CANCELLED, CANCELLED_AND_NOTIFIED, FINISHED}:
+ raise InvalidStateError('{}: {!r}'.format(self._state, self))
self._exception = exception
self._state = FINISHED
for waiter in self._waiters:
@@ -554,12 +554,12 @@ class Future(object):
self._condition.notify_all()
self._invoke_callbacks()
- __class_getitem__ = classmethod(types.GenericAlias)
-
+ __class_getitem__ = classmethod(types.GenericAlias)
+
class Executor(object):
"""This is an abstract base class for concrete asynchronous executors."""
- def submit(self, fn, /, *args, **kwargs):
+ def submit(self, fn, /, *args, **kwargs):
"""Submits a callable to be executed with the given arguments.
Schedules the callable to be executed as fn(*args, **kwargs) and returns
@@ -614,7 +614,7 @@ class Executor(object):
future.cancel()
return result_iterator()
- def shutdown(self, wait=True, *, cancel_futures=False):
+ def shutdown(self, wait=True, *, cancel_futures=False):
"""Clean-up the resources associated with the Executor.
It is safe to call this method several times. Otherwise, no other
@@ -624,9 +624,9 @@ class Executor(object):
wait: If True then shutdown will not return until all running
futures have finished executing and the resources used by the
executor have been reclaimed.
- cancel_futures: If True then shutdown will cancel all pending
- futures. Futures that are completed or running will not be
- cancelled.
+ cancel_futures: If True then shutdown will cancel all pending
+ futures. Futures that are completed or running will not be
+ cancelled.
"""
pass
diff --git a/contrib/tools/python3/src/Lib/concurrent/futures/process.py b/contrib/tools/python3/src/Lib/concurrent/futures/process.py
index fde626590c..a29e5247ab 100644
--- a/contrib/tools/python3/src/Lib/concurrent/futures/process.py
+++ b/contrib/tools/python3/src/Lib/concurrent/futures/process.py
@@ -3,7 +3,7 @@
"""Implements ProcessPoolExecutor.
-The following diagram and text describe the data-flow through the system:
+The following diagram and text describe the data-flow through the system:
|======================= In-process =====================|== Out-of-process ==|
@@ -49,13 +49,13 @@ import os
from concurrent.futures import _base
import queue
import multiprocessing as mp
-import multiprocessing.connection
+import multiprocessing.connection
from multiprocessing.queues import Queue
import threading
import weakref
from functools import partial
import itertools
-import sys
+import sys
import traceback
@@ -65,23 +65,23 @@ _global_shutdown = False
class _ThreadWakeup:
def __init__(self):
- self._closed = False
+ self._closed = False
self._reader, self._writer = mp.Pipe(duplex=False)
def close(self):
- if not self._closed:
- self._closed = True
- self._writer.close()
- self._reader.close()
+ if not self._closed:
+ self._closed = True
+ self._writer.close()
+ self._reader.close()
def wakeup(self):
- if not self._closed:
- self._writer.send_bytes(b"")
+ if not self._closed:
+ self._writer.send_bytes(b"")
def clear(self):
- if not self._closed:
- while self._reader.poll():
- self._reader.recv_bytes()
+ if not self._closed:
+ while self._reader.poll():
+ self._reader.recv_bytes()
def _python_exit():
@@ -89,17 +89,17 @@ def _python_exit():
_global_shutdown = True
items = list(_threads_wakeups.items())
for _, thread_wakeup in items:
- # call not protected by ProcessPoolExecutor._shutdown_lock
+ # call not protected by ProcessPoolExecutor._shutdown_lock
thread_wakeup.wakeup()
for t, _ in items:
t.join()
-# Register for `_python_exit()` to be called just before joining all
-# non-daemon threads. This is used instead of `atexit.register()` for
-# compatibility with subinterpreters, which no longer support daemon threads.
-# See bpo-39812 for context.
-threading._register_atexit(_python_exit)
-
+# Register for `_python_exit()` to be called just before joining all
+# non-daemon threads. This is used instead of `atexit.register()` for
+# compatibility with subinterpreters, which no longer support daemon threads.
+# See bpo-39812 for context.
+threading._register_atexit(_python_exit)
+
# Controls how many more calls than processes will be queued in the call queue.
# A smaller number will mean that processes spend more time idle waiting for
# work while a larger number will make Future.cancel() succeed less frequently
@@ -107,12 +107,12 @@ threading._register_atexit(_python_exit)
EXTRA_QUEUED_CALLS = 1
-# On Windows, WaitForMultipleObjects is used to wait for processes to finish.
-# It can wait on, at most, 63 objects. There is an overhead of two objects:
-# - the result queue reader
-# - the thread wakeup reader
-_MAX_WINDOWS_WORKERS = 63 - 2
-
+# On Windows, WaitForMultipleObjects is used to wait for processes to finish.
+# It can wait on, at most, 63 objects. There is an overhead of two objects:
+# - the result queue reader
+# - the thread wakeup reader
+_MAX_WINDOWS_WORKERS = 63 - 2
+
# Hack to embed stringification of remote traceback in local traceback
class _RemoteTraceback(Exception):
@@ -157,11 +157,11 @@ class _CallItem(object):
class _SafeQueue(Queue):
"""Safe Queue set exception to the future object linked to a job"""
- def __init__(self, max_size=0, *, ctx, pending_work_items, shutdown_lock,
- thread_wakeup):
+ def __init__(self, max_size=0, *, ctx, pending_work_items, shutdown_lock,
+ thread_wakeup):
self.pending_work_items = pending_work_items
- self.shutdown_lock = shutdown_lock
- self.thread_wakeup = thread_wakeup
+ self.shutdown_lock = shutdown_lock
+ self.thread_wakeup = thread_wakeup
super().__init__(max_size, ctx=ctx)
def _on_queue_feeder_error(self, e, obj):
@@ -169,11 +169,11 @@ class _SafeQueue(Queue):
tb = traceback.format_exception(type(e), e, e.__traceback__)
e.__cause__ = _RemoteTraceback('\n"""\n{}"""'.format(''.join(tb)))
work_item = self.pending_work_items.pop(obj.work_id, None)
- with self.shutdown_lock:
- self.thread_wakeup.wakeup()
- # work_item can be None if another process terminated. In this
- # case, the executor_manager_thread fails all work_items
- # with BrokenProcessPool
+ with self.shutdown_lock:
+ self.thread_wakeup.wakeup()
+ # work_item can be None if another process terminated. In this
+ # case, the executor_manager_thread fails all work_items
+ # with BrokenProcessPool
if work_item is not None:
work_item.future.set_exception(e)
else:
@@ -189,7 +189,7 @@ def _get_chunks(*iterables, chunksize):
return
yield chunk
-
+
def _process_chunk(fn, chunk):
""" Processes a chunk of an iterable passed to map.
@@ -246,139 +246,139 @@ def _process_worker(call_queue, result_queue, initializer, initargs):
_sendback_result(result_queue, call_item.work_id, exception=exc)
else:
_sendback_result(result_queue, call_item.work_id, result=r)
- del r
+ del r
# Liberate the resource as soon as possible, to avoid holding onto
# open files or shared memory that is not needed anymore
del call_item
-class _ExecutorManagerThread(threading.Thread):
- """Manages the communication between this process and the worker processes.
+class _ExecutorManagerThread(threading.Thread):
+ """Manages the communication between this process and the worker processes.
- The manager is run in a local thread.
+ The manager is run in a local thread.
Args:
- executor: A reference to the ProcessPoolExecutor that owns
- this thread. A weakref will be own by the manager as well as
- references to internal objects used to introspect the state of
- the executor.
+ executor: A reference to the ProcessPoolExecutor that owns
+ this thread. A weakref will be own by the manager as well as
+ references to internal objects used to introspect the state of
+ the executor.
"""
- def __init__(self, executor):
- # Store references to necessary internals of the executor.
-
- # A _ThreadWakeup to allow waking up the queue_manager_thread from the
- # main Thread and avoid deadlocks caused by permanently locked queues.
- self.thread_wakeup = executor._executor_manager_thread_wakeup
- self.shutdown_lock = executor._shutdown_lock
-
- # A weakref.ref to the ProcessPoolExecutor that owns this thread. Used
- # to determine if the ProcessPoolExecutor has been garbage collected
- # and that the manager can exit.
- # When the executor gets garbage collected, the weakref callback
- # will wake up the queue management thread so that it can terminate
- # if there is no pending work item.
- def weakref_cb(_,
- thread_wakeup=self.thread_wakeup,
- shutdown_lock=self.shutdown_lock):
- mp.util.debug('Executor collected: triggering callback for'
- ' QueueManager wakeup')
- with shutdown_lock:
- thread_wakeup.wakeup()
-
- self.executor_reference = weakref.ref(executor, weakref_cb)
-
- # A list of the ctx.Process instances used as workers.
- self.processes = executor._processes
-
- # A ctx.Queue that will be filled with _CallItems derived from
- # _WorkItems for processing by the process workers.
- self.call_queue = executor._call_queue
-
- # A ctx.SimpleQueue of _ResultItems generated by the process workers.
- self.result_queue = executor._result_queue
-
- # A queue.Queue of work ids e.g. Queue([5, 6, ...]).
- self.work_ids_queue = executor._work_ids
-
- # A dict mapping work ids to _WorkItems e.g.
- # {5: <_WorkItem...>, 6: <_WorkItem...>, ...}
- self.pending_work_items = executor._pending_work_items
-
- super().__init__()
-
- def run(self):
- # Main loop for the executor manager thread.
-
- while True:
- self.add_call_item_to_queue()
-
- result_item, is_broken, cause = self.wait_result_broken_or_wakeup()
-
- if is_broken:
- self.terminate_broken(cause)
- return
- if result_item is not None:
- self.process_result_item(result_item)
- # Delete reference to result_item to avoid keeping references
- # while waiting on new results.
- del result_item
-
- # attempt to increment idle process count
- executor = self.executor_reference()
- if executor is not None:
- executor._idle_worker_semaphore.release()
- del executor
-
- if self.is_shutting_down():
- self.flag_executor_shutting_down()
-
- # Since no new work items can be added, it is safe to shutdown
- # this thread if there are no pending work items.
- if not self.pending_work_items:
- self.join_executor_internals()
- return
-
- def add_call_item_to_queue(self):
- # Fills call_queue with _WorkItems from pending_work_items.
- # This function never blocks.
- while True:
- if self.call_queue.full():
- return
- try:
- work_id = self.work_ids_queue.get(block=False)
- except queue.Empty:
- return
- else:
- work_item = self.pending_work_items[work_id]
-
- if work_item.future.set_running_or_notify_cancel():
- self.call_queue.put(_CallItem(work_id,
- work_item.fn,
- work_item.args,
- work_item.kwargs),
- block=True)
- else:
- del self.pending_work_items[work_id]
- continue
-
- def wait_result_broken_or_wakeup(self):
+ def __init__(self, executor):
+ # Store references to necessary internals of the executor.
+
+ # A _ThreadWakeup to allow waking up the queue_manager_thread from the
+ # main Thread and avoid deadlocks caused by permanently locked queues.
+ self.thread_wakeup = executor._executor_manager_thread_wakeup
+ self.shutdown_lock = executor._shutdown_lock
+
+ # A weakref.ref to the ProcessPoolExecutor that owns this thread. Used
+ # to determine if the ProcessPoolExecutor has been garbage collected
+ # and that the manager can exit.
+ # When the executor gets garbage collected, the weakref callback
+ # will wake up the queue management thread so that it can terminate
+ # if there is no pending work item.
+ def weakref_cb(_,
+ thread_wakeup=self.thread_wakeup,
+ shutdown_lock=self.shutdown_lock):
+ mp.util.debug('Executor collected: triggering callback for'
+ ' QueueManager wakeup')
+ with shutdown_lock:
+ thread_wakeup.wakeup()
+
+ self.executor_reference = weakref.ref(executor, weakref_cb)
+
+ # A list of the ctx.Process instances used as workers.
+ self.processes = executor._processes
+
+ # A ctx.Queue that will be filled with _CallItems derived from
+ # _WorkItems for processing by the process workers.
+ self.call_queue = executor._call_queue
+
+ # A ctx.SimpleQueue of _ResultItems generated by the process workers.
+ self.result_queue = executor._result_queue
+
+ # A queue.Queue of work ids e.g. Queue([5, 6, ...]).
+ self.work_ids_queue = executor._work_ids
+
+ # A dict mapping work ids to _WorkItems e.g.
+ # {5: <_WorkItem...>, 6: <_WorkItem...>, ...}
+ self.pending_work_items = executor._pending_work_items
+
+ super().__init__()
+
+ def run(self):
+ # Main loop for the executor manager thread.
+
+ while True:
+ self.add_call_item_to_queue()
+
+ result_item, is_broken, cause = self.wait_result_broken_or_wakeup()
+
+ if is_broken:
+ self.terminate_broken(cause)
+ return
+ if result_item is not None:
+ self.process_result_item(result_item)
+ # Delete reference to result_item to avoid keeping references
+ # while waiting on new results.
+ del result_item
+
+ # attempt to increment idle process count
+ executor = self.executor_reference()
+ if executor is not None:
+ executor._idle_worker_semaphore.release()
+ del executor
+
+ if self.is_shutting_down():
+ self.flag_executor_shutting_down()
+
+ # Since no new work items can be added, it is safe to shutdown
+ # this thread if there are no pending work items.
+ if not self.pending_work_items:
+ self.join_executor_internals()
+ return
+
+ def add_call_item_to_queue(self):
+ # Fills call_queue with _WorkItems from pending_work_items.
+ # This function never blocks.
+ while True:
+ if self.call_queue.full():
+ return
+ try:
+ work_id = self.work_ids_queue.get(block=False)
+ except queue.Empty:
+ return
+ else:
+ work_item = self.pending_work_items[work_id]
+
+ if work_item.future.set_running_or_notify_cancel():
+ self.call_queue.put(_CallItem(work_id,
+ work_item.fn,
+ work_item.args,
+ work_item.kwargs),
+ block=True)
+ else:
+ del self.pending_work_items[work_id]
+ continue
+
+ def wait_result_broken_or_wakeup(self):
# Wait for a result to be ready in the result_queue while checking
# that all worker processes are still running, or for a wake up
# signal send. The wake up signals come either from new tasks being
# submitted, from the executor being shutdown/gc-ed, or from the
# shutdown of the python interpreter.
- result_reader = self.result_queue._reader
- assert not self.thread_wakeup._closed
- wakeup_reader = self.thread_wakeup._reader
- readers = [result_reader, wakeup_reader]
- worker_sentinels = [p.sentinel for p in list(self.processes.values())]
- ready = mp.connection.wait(readers + worker_sentinels)
+ result_reader = self.result_queue._reader
+ assert not self.thread_wakeup._closed
+ wakeup_reader = self.thread_wakeup._reader
+ readers = [result_reader, wakeup_reader]
+ worker_sentinels = [p.sentinel for p in list(self.processes.values())]
+ ready = mp.connection.wait(readers + worker_sentinels)
cause = None
is_broken = True
- result_item = None
+ result_item = None
if result_reader in ready:
try:
result_item = result_reader.recv()
@@ -388,28 +388,28 @@ class _ExecutorManagerThread(threading.Thread):
elif wakeup_reader in ready:
is_broken = False
-
- with self.shutdown_lock:
- self.thread_wakeup.clear()
-
- return result_item, is_broken, cause
-
- def process_result_item(self, result_item):
- # Process the received a result_item. This can be either the PID of a
- # worker that exited gracefully or a _ResultItem
-
+
+ with self.shutdown_lock:
+ self.thread_wakeup.clear()
+
+ return result_item, is_broken, cause
+
+ def process_result_item(self, result_item):
+ # Process the received a result_item. This can be either the PID of a
+ # worker that exited gracefully or a _ResultItem
+
if isinstance(result_item, int):
# Clean shutdown of a worker using its PID
# (avoids marking the executor broken)
- assert self.is_shutting_down()
- p = self.processes.pop(result_item)
+ assert self.is_shutting_down()
+ p = self.processes.pop(result_item)
p.join()
- if not self.processes:
- self.join_executor_internals()
+ if not self.processes:
+ self.join_executor_internals()
return
- else:
- # Received a _ResultItem so mark the future as completed.
- work_item = self.pending_work_items.pop(result_item.work_id, None)
+ else:
+ # Received a _ResultItem so mark the future as completed.
+ work_item = self.pending_work_items.pop(result_item.work_id, None)
# work_item can be None if another process terminated (see above)
if work_item is not None:
if result_item.exception:
@@ -417,111 +417,111 @@ class _ExecutorManagerThread(threading.Thread):
else:
work_item.future.set_result(result_item.result)
- def is_shutting_down(self):
- # Check whether we should start shutting down the executor.
- executor = self.executor_reference()
+ def is_shutting_down(self):
+ # Check whether we should start shutting down the executor.
+ executor = self.executor_reference()
# No more work items can be added if:
# - The interpreter is shutting down OR
# - The executor that owns this worker has been collected OR
# - The executor that owns this worker has been shutdown.
- return (_global_shutdown or executor is None
- or executor._shutdown_thread)
-
- def terminate_broken(self, cause):
- # Terminate the executor because it is in a broken state. The cause
- # argument can be used to display more information on the error that
- # lead the executor into becoming broken.
-
- # Mark the process pool broken so that submits fail right now.
- executor = self.executor_reference()
- if executor is not None:
- executor._broken = ('A child process terminated '
- 'abruptly, the process pool is not '
- 'usable anymore')
- executor._shutdown_thread = True
- executor = None
-
- # All pending tasks are to be marked failed with the following
- # BrokenProcessPool error
- bpe = BrokenProcessPool("A process in the process pool was "
- "terminated abruptly while the future was "
- "running or pending.")
- if cause is not None:
- bpe.__cause__ = _RemoteTraceback(
- f"\n'''\n{''.join(cause)}'''")
-
- # Mark pending tasks as failed.
- for work_id, work_item in self.pending_work_items.items():
- work_item.future.set_exception(bpe)
- # Delete references to object. See issue16284
- del work_item
- self.pending_work_items.clear()
-
- # Terminate remaining workers forcibly: the queues or their
- # locks may be in a dirty state and block forever.
- for p in self.processes.values():
- p.terminate()
-
- # clean up resources
- self.join_executor_internals()
-
- def flag_executor_shutting_down(self):
- # Flag the executor as shutting down and cancel remaining tasks if
- # requested as early as possible if it is not gc-ed yet.
- executor = self.executor_reference()
- if executor is not None:
- executor._shutdown_thread = True
- # Cancel pending work items if requested.
- if executor._cancel_pending_futures:
- # Cancel all pending futures and update pending_work_items
- # to only have futures that are currently running.
- new_pending_work_items = {}
- for work_id, work_item in self.pending_work_items.items():
- if not work_item.future.cancel():
- new_pending_work_items[work_id] = work_item
- self.pending_work_items = new_pending_work_items
- # Drain work_ids_queue since we no longer need to
- # add items to the call queue.
- while True:
- try:
- self.work_ids_queue.get_nowait()
- except queue.Empty:
- break
- # Make sure we do this only once to not waste time looping
- # on running processes over and over.
- executor._cancel_pending_futures = False
-
- def shutdown_workers(self):
- n_children_to_stop = self.get_n_children_alive()
- n_sentinels_sent = 0
- # Send the right number of sentinels, to make sure all children are
- # properly terminated.
- while (n_sentinels_sent < n_children_to_stop
- and self.get_n_children_alive() > 0):
- for i in range(n_children_to_stop - n_sentinels_sent):
- try:
- self.call_queue.put_nowait(None)
- n_sentinels_sent += 1
- except queue.Full:
- break
-
- def join_executor_internals(self):
- self.shutdown_workers()
- # Release the queue's resources as soon as possible.
- self.call_queue.close()
- self.call_queue.join_thread()
- with self.shutdown_lock:
- self.thread_wakeup.close()
- # If .join() is not called on the created processes then
- # some ctx.Queue methods may deadlock on Mac OS X.
- for p in self.processes.values():
- p.join()
-
- def get_n_children_alive(self):
- # This is an upper bound on the number of children alive.
- return sum(p.is_alive() for p in self.processes.values())
-
-
+ return (_global_shutdown or executor is None
+ or executor._shutdown_thread)
+
+ def terminate_broken(self, cause):
+ # Terminate the executor because it is in a broken state. The cause
+ # argument can be used to display more information on the error that
+ # lead the executor into becoming broken.
+
+ # Mark the process pool broken so that submits fail right now.
+ executor = self.executor_reference()
+ if executor is not None:
+ executor._broken = ('A child process terminated '
+ 'abruptly, the process pool is not '
+ 'usable anymore')
+ executor._shutdown_thread = True
+ executor = None
+
+ # All pending tasks are to be marked failed with the following
+ # BrokenProcessPool error
+ bpe = BrokenProcessPool("A process in the process pool was "
+ "terminated abruptly while the future was "
+ "running or pending.")
+ if cause is not None:
+ bpe.__cause__ = _RemoteTraceback(
+ f"\n'''\n{''.join(cause)}'''")
+
+ # Mark pending tasks as failed.
+ for work_id, work_item in self.pending_work_items.items():
+ work_item.future.set_exception(bpe)
+ # Delete references to object. See issue16284
+ del work_item
+ self.pending_work_items.clear()
+
+ # Terminate remaining workers forcibly: the queues or their
+ # locks may be in a dirty state and block forever.
+ for p in self.processes.values():
+ p.terminate()
+
+ # clean up resources
+ self.join_executor_internals()
+
+ def flag_executor_shutting_down(self):
+ # Flag the executor as shutting down and cancel remaining tasks if
+ # requested as early as possible if it is not gc-ed yet.
+ executor = self.executor_reference()
+ if executor is not None:
+ executor._shutdown_thread = True
+ # Cancel pending work items if requested.
+ if executor._cancel_pending_futures:
+ # Cancel all pending futures and update pending_work_items
+ # to only have futures that are currently running.
+ new_pending_work_items = {}
+ for work_id, work_item in self.pending_work_items.items():
+ if not work_item.future.cancel():
+ new_pending_work_items[work_id] = work_item
+ self.pending_work_items = new_pending_work_items
+ # Drain work_ids_queue since we no longer need to
+ # add items to the call queue.
+ while True:
+ try:
+ self.work_ids_queue.get_nowait()
+ except queue.Empty:
+ break
+ # Make sure we do this only once to not waste time looping
+ # on running processes over and over.
+ executor._cancel_pending_futures = False
+
+ def shutdown_workers(self):
+ n_children_to_stop = self.get_n_children_alive()
+ n_sentinels_sent = 0
+ # Send the right number of sentinels, to make sure all children are
+ # properly terminated.
+ while (n_sentinels_sent < n_children_to_stop
+ and self.get_n_children_alive() > 0):
+ for i in range(n_children_to_stop - n_sentinels_sent):
+ try:
+ self.call_queue.put_nowait(None)
+ n_sentinels_sent += 1
+ except queue.Full:
+ break
+
+ def join_executor_internals(self):
+ self.shutdown_workers()
+ # Release the queue's resources as soon as possible.
+ self.call_queue.close()
+ self.call_queue.join_thread()
+ with self.shutdown_lock:
+ self.thread_wakeup.close()
+ # If .join() is not called on the created processes then
+ # some ctx.Queue methods may deadlock on Mac OS X.
+ for p in self.processes.values():
+ p.join()
+
+ def get_n_children_alive(self):
+ # This is an upper bound on the number of children alive.
+ return sum(p.is_alive() for p in self.processes.values())
+
+
_system_limits_checked = False
_system_limited = None
@@ -580,23 +580,23 @@ class ProcessPoolExecutor(_base.Executor):
worker processes will be created as the machine has processors.
mp_context: A multiprocessing context to launch the workers. This
object should provide SimpleQueue, Queue and Process.
- initializer: A callable used to initialize worker processes.
+ initializer: A callable used to initialize worker processes.
initargs: A tuple of arguments to pass to the initializer.
"""
_check_system_limits()
if max_workers is None:
self._max_workers = os.cpu_count() or 1
- if sys.platform == 'win32':
- self._max_workers = min(_MAX_WINDOWS_WORKERS,
- self._max_workers)
+ if sys.platform == 'win32':
+ self._max_workers = min(_MAX_WINDOWS_WORKERS,
+ self._max_workers)
else:
if max_workers <= 0:
raise ValueError("max_workers must be greater than 0")
- elif (sys.platform == 'win32' and
- max_workers > _MAX_WINDOWS_WORKERS):
- raise ValueError(
- f"max_workers must be <= {_MAX_WINDOWS_WORKERS}")
+ elif (sys.platform == 'win32' and
+ max_workers > _MAX_WINDOWS_WORKERS):
+ raise ValueError(
+ f"max_workers must be <= {_MAX_WINDOWS_WORKERS}")
self._max_workers = max_workers
@@ -610,7 +610,7 @@ class ProcessPoolExecutor(_base.Executor):
self._initargs = initargs
# Management thread
- self._executor_manager_thread = None
+ self._executor_manager_thread = None
# Map of pids to processes
self._processes = {}
@@ -618,22 +618,22 @@ class ProcessPoolExecutor(_base.Executor):
# Shutdown is a two-step process.
self._shutdown_thread = False
self._shutdown_lock = threading.Lock()
- self._idle_worker_semaphore = threading.Semaphore(0)
+ self._idle_worker_semaphore = threading.Semaphore(0)
self._broken = False
self._queue_count = 0
self._pending_work_items = {}
- self._cancel_pending_futures = False
-
- # _ThreadWakeup is a communication channel used to interrupt the wait
- # of the main loop of executor_manager_thread from another thread (e.g.
- # when calling executor.submit or executor.shutdown). We do not use the
- # _result_queue to send wakeup signals to the executor_manager_thread
- # as it could result in a deadlock if a worker process dies with the
- # _result_queue write lock still acquired.
- #
- # _shutdown_lock must be locked to access _ThreadWakeup.
- self._executor_manager_thread_wakeup = _ThreadWakeup()
-
+ self._cancel_pending_futures = False
+
+ # _ThreadWakeup is a communication channel used to interrupt the wait
+ # of the main loop of executor_manager_thread from another thread (e.g.
+ # when calling executor.submit or executor.shutdown). We do not use the
+ # _result_queue to send wakeup signals to the executor_manager_thread
+ # as it could result in a deadlock if a worker process dies with the
+ # _result_queue write lock still acquired.
+ #
+ # _shutdown_lock must be locked to access _ThreadWakeup.
+ self._executor_manager_thread_wakeup = _ThreadWakeup()
+
# Create communication channels for the executor
# Make the call queue slightly larger than the number of processes to
# prevent the worker processes from idling. But don't make it too big
@@ -641,9 +641,9 @@ class ProcessPoolExecutor(_base.Executor):
queue_size = self._max_workers + EXTRA_QUEUED_CALLS
self._call_queue = _SafeQueue(
max_size=queue_size, ctx=self._mp_context,
- pending_work_items=self._pending_work_items,
- shutdown_lock=self._shutdown_lock,
- thread_wakeup=self._executor_manager_thread_wakeup)
+ pending_work_items=self._pending_work_items,
+ shutdown_lock=self._shutdown_lock,
+ thread_wakeup=self._executor_manager_thread_wakeup)
# Killed worker processes can produce spurious "broken pipe"
# tracebacks in the queue's own worker thread. But we detect killed
# processes anyway, so silence the tracebacks.
@@ -651,21 +651,21 @@ class ProcessPoolExecutor(_base.Executor):
self._result_queue = mp_context.SimpleQueue()
self._work_ids = queue.Queue()
- def _start_executor_manager_thread(self):
- if self._executor_manager_thread is None:
+ def _start_executor_manager_thread(self):
+ if self._executor_manager_thread is None:
# Start the processes so that their sentinels are known.
- self._executor_manager_thread = _ExecutorManagerThread(self)
- self._executor_manager_thread.start()
- _threads_wakeups[self._executor_manager_thread] = \
- self._executor_manager_thread_wakeup
+ self._executor_manager_thread = _ExecutorManagerThread(self)
+ self._executor_manager_thread.start()
+ _threads_wakeups[self._executor_manager_thread] = \
+ self._executor_manager_thread_wakeup
def _adjust_process_count(self):
- # if there's an idle process, we don't need to spawn a new one.
- if self._idle_worker_semaphore.acquire(blocking=False):
- return
-
- process_count = len(self._processes)
- if process_count < self._max_workers:
+ # if there's an idle process, we don't need to spawn a new one.
+ if self._idle_worker_semaphore.acquire(blocking=False):
+ return
+
+ process_count = len(self._processes)
+ if process_count < self._max_workers:
p = self._mp_context.Process(
target=_process_worker,
args=(self._call_queue,
@@ -675,7 +675,7 @@ class ProcessPoolExecutor(_base.Executor):
p.start()
self._processes[p.pid] = p
- def submit(self, fn, /, *args, **kwargs):
+ def submit(self, fn, /, *args, **kwargs):
with self._shutdown_lock:
if self._broken:
raise BrokenProcessPool(self._broken)
@@ -692,10 +692,10 @@ class ProcessPoolExecutor(_base.Executor):
self._work_ids.put(self._queue_count)
self._queue_count += 1
# Wake up queue management thread
- self._executor_manager_thread_wakeup.wakeup()
+ self._executor_manager_thread_wakeup.wakeup()
- self._adjust_process_count()
- self._start_executor_manager_thread()
+ self._adjust_process_count()
+ self._start_executor_manager_thread()
return f
submit.__doc__ = _base.Executor.submit.__doc__
@@ -728,24 +728,24 @@ class ProcessPoolExecutor(_base.Executor):
timeout=timeout)
return _chain_from_iterable_of_lists(results)
- def shutdown(self, wait=True, *, cancel_futures=False):
+ def shutdown(self, wait=True, *, cancel_futures=False):
with self._shutdown_lock:
- self._cancel_pending_futures = cancel_futures
+ self._cancel_pending_futures = cancel_futures
self._shutdown_thread = True
- if self._executor_manager_thread_wakeup is not None:
- # Wake up queue management thread
- self._executor_manager_thread_wakeup.wakeup()
-
- if self._executor_manager_thread is not None and wait:
- self._executor_manager_thread.join()
+ if self._executor_manager_thread_wakeup is not None:
+ # Wake up queue management thread
+ self._executor_manager_thread_wakeup.wakeup()
+
+ if self._executor_manager_thread is not None and wait:
+ self._executor_manager_thread.join()
# To reduce the risk of opening too many files, remove references to
# objects that use file descriptors.
- self._executor_manager_thread = None
- self._call_queue = None
- if self._result_queue is not None and wait:
- self._result_queue.close()
+ self._executor_manager_thread = None
+ self._call_queue = None
+ if self._result_queue is not None and wait:
+ self._result_queue.close()
self._result_queue = None
self._processes = None
- self._executor_manager_thread_wakeup = None
+ self._executor_manager_thread_wakeup = None
shutdown.__doc__ = _base.Executor.shutdown.__doc__
diff --git a/contrib/tools/python3/src/Lib/concurrent/futures/thread.py b/contrib/tools/python3/src/Lib/concurrent/futures/thread.py
index 0ed4a2c091..51c942f51a 100644
--- a/contrib/tools/python3/src/Lib/concurrent/futures/thread.py
+++ b/contrib/tools/python3/src/Lib/concurrent/futures/thread.py
@@ -9,40 +9,40 @@ from concurrent.futures import _base
import itertools
import queue
import threading
-import types
+import types
import weakref
import os
_threads_queues = weakref.WeakKeyDictionary()
_shutdown = False
-# Lock that ensures that new workers are not created while the interpreter is
-# shutting down. Must be held while mutating _threads_queues and _shutdown.
-_global_shutdown_lock = threading.Lock()
+# Lock that ensures that new workers are not created while the interpreter is
+# shutting down. Must be held while mutating _threads_queues and _shutdown.
+_global_shutdown_lock = threading.Lock()
def _python_exit():
global _shutdown
- with _global_shutdown_lock:
- _shutdown = True
+ with _global_shutdown_lock:
+ _shutdown = True
items = list(_threads_queues.items())
for t, q in items:
q.put(None)
for t, q in items:
t.join()
-# Register for `_python_exit()` to be called just before joining all
-# non-daemon threads. This is used instead of `atexit.register()` for
-# compatibility with subinterpreters, which no longer support daemon threads.
-# See bpo-39812 for context.
-threading._register_atexit(_python_exit)
+# Register for `_python_exit()` to be called just before joining all
+# non-daemon threads. This is used instead of `atexit.register()` for
+# compatibility with subinterpreters, which no longer support daemon threads.
+# See bpo-39812 for context.
+threading._register_atexit(_python_exit)
+
+# At fork, reinitialize the `_global_shutdown_lock` lock in the child process
+if hasattr(os, 'register_at_fork'):
+ os.register_at_fork(before=_global_shutdown_lock.acquire,
+ after_in_child=_global_shutdown_lock._at_fork_reinit,
+ after_in_parent=_global_shutdown_lock.release)
-# At fork, reinitialize the `_global_shutdown_lock` lock in the child process
-if hasattr(os, 'register_at_fork'):
- os.register_at_fork(before=_global_shutdown_lock.acquire,
- after_in_child=_global_shutdown_lock._at_fork_reinit,
- after_in_parent=_global_shutdown_lock.release)
-
class _WorkItem(object):
def __init__(self, future, fn, args, kwargs):
self.future = future
@@ -63,9 +63,9 @@ class _WorkItem(object):
else:
self.future.set_result(result)
- __class_getitem__ = classmethod(types.GenericAlias)
+ __class_getitem__ = classmethod(types.GenericAlias)
+
-
def _worker(executor_reference, work_queue, initializer, initargs):
if initializer is not None:
try:
@@ -83,14 +83,14 @@ def _worker(executor_reference, work_queue, initializer, initargs):
work_item.run()
# Delete references to object. See issue16284
del work_item
-
- # attempt to increment idle count
- executor = executor_reference()
- if executor is not None:
- executor._idle_semaphore.release()
- del executor
+
+ # attempt to increment idle count
+ executor = executor_reference()
+ if executor is not None:
+ executor._idle_semaphore.release()
+ del executor
continue
-
+
executor = executor_reference()
# Exit if:
# - The interpreter is shutting down OR
@@ -128,18 +128,18 @@ class ThreadPoolExecutor(_base.Executor):
max_workers: The maximum number of threads that can be used to
execute the given calls.
thread_name_prefix: An optional name prefix to give our threads.
- initializer: A callable used to initialize worker threads.
+ initializer: A callable used to initialize worker threads.
initargs: A tuple of arguments to pass to the initializer.
"""
if max_workers is None:
- # ThreadPoolExecutor is often used to:
- # * CPU bound task which releases GIL
- # * I/O bound task (which releases GIL, of course)
- #
- # We use cpu_count + 4 for both types of tasks.
- # But we limit it to 32 to avoid consuming surprisingly large resource
- # on many core machine.
- max_workers = min(32, (os.cpu_count() or 1) + 4)
+ # ThreadPoolExecutor is often used to:
+ # * CPU bound task which releases GIL
+ # * I/O bound task (which releases GIL, of course)
+ #
+ # We use cpu_count + 4 for both types of tasks.
+ # But we limit it to 32 to avoid consuming surprisingly large resource
+ # on many core machine.
+ max_workers = min(32, (os.cpu_count() or 1) + 4)
if max_workers <= 0:
raise ValueError("max_workers must be greater than 0")
@@ -148,7 +148,7 @@ class ThreadPoolExecutor(_base.Executor):
self._max_workers = max_workers
self._work_queue = queue.SimpleQueue()
- self._idle_semaphore = threading.Semaphore(0)
+ self._idle_semaphore = threading.Semaphore(0)
self._threads = set()
self._broken = False
self._shutdown = False
@@ -158,8 +158,8 @@ class ThreadPoolExecutor(_base.Executor):
self._initializer = initializer
self._initargs = initargs
- def submit(self, fn, /, *args, **kwargs):
- with self._shutdown_lock, _global_shutdown_lock:
+ def submit(self, fn, /, *args, **kwargs):
+ with self._shutdown_lock, _global_shutdown_lock:
if self._broken:
raise BrokenThreadPool(self._broken)
@@ -178,15 +178,15 @@ class ThreadPoolExecutor(_base.Executor):
submit.__doc__ = _base.Executor.submit.__doc__
def _adjust_thread_count(self):
- # if idle threads are available, don't spin new threads
- if self._idle_semaphore.acquire(timeout=0):
- return
-
+ # if idle threads are available, don't spin new threads
+ if self._idle_semaphore.acquire(timeout=0):
+ return
+
# When the executor gets lost, the weakref callback will wake up
# the worker threads.
def weakref_cb(_, q=self._work_queue):
q.put(None)
-
+
num_threads = len(self._threads)
if num_threads < self._max_workers:
thread_name = '%s_%d' % (self._thread_name_prefix or self,
@@ -213,22 +213,22 @@ class ThreadPoolExecutor(_base.Executor):
if work_item is not None:
work_item.future.set_exception(BrokenThreadPool(self._broken))
- def shutdown(self, wait=True, *, cancel_futures=False):
+ def shutdown(self, wait=True, *, cancel_futures=False):
with self._shutdown_lock:
self._shutdown = True
- if cancel_futures:
- # Drain all work items from the queue, and then cancel their
- # associated futures.
- while True:
- try:
- work_item = self._work_queue.get_nowait()
- except queue.Empty:
- break
- if work_item is not None:
- work_item.future.cancel()
-
- # Send a wake-up to prevent threads calling
- # _work_queue.get(block=True) from permanently blocking.
+ if cancel_futures:
+ # Drain all work items from the queue, and then cancel their
+ # associated futures.
+ while True:
+ try:
+ work_item = self._work_queue.get_nowait()
+ except queue.Empty:
+ break
+ if work_item is not None:
+ work_item.future.cancel()
+
+ # Send a wake-up to prevent threads calling
+ # _work_queue.get(block=True) from permanently blocking.
self._work_queue.put(None)
if wait:
for t in self._threads:
diff --git a/contrib/tools/python3/src/Lib/configparser.py b/contrib/tools/python3/src/Lib/configparser.py
index e5d6d400e2..8dd5c13bcc 100644
--- a/contrib/tools/python3/src/Lib/configparser.py
+++ b/contrib/tools/python3/src/Lib/configparser.py
@@ -56,7 +56,7 @@ ConfigParser -- responsible for parsing a list of
When `interpolation` is given, it should be an Interpolation subclass
instance. It will be used as the handler for option value
- pre-processing when using getters. RawConfigParser objects don't do
+ pre-processing when using getters. RawConfigParser objects don't do
any sort of interpolation, whereas ConfigParser uses an instance of
BasicInterpolation. The library also provides a ``zc.buildbot``
inspired ExtendedInterpolation implementation.
@@ -139,7 +139,7 @@ ConfigParser -- responsible for parsing a list of
"""
from collections.abc import MutableMapping
-from collections import ChainMap as _ChainMap
+from collections import ChainMap as _ChainMap
import functools
import io
import itertools
@@ -157,7 +157,7 @@ __all__ = ["NoSectionError", "DuplicateOptionError", "DuplicateSectionError",
"LegacyInterpolation", "SectionProxy", "ConverterMapping",
"DEFAULTSECT", "MAX_INTERPOLATION_DEPTH"]
-_default_dict = dict
+_default_dict = dict
DEFAULTSECT = "DEFAULT"
MAX_INTERPOLATION_DEPTH = 10
@@ -847,7 +847,7 @@ class RawConfigParser(MutableMapping):
except KeyError:
if section != self.default_section:
raise NoSectionError(section)
- orig_keys = list(d.keys())
+ orig_keys = list(d.keys())
# Update with the entry specific variables
if vars:
for key, value in vars.items():
@@ -856,7 +856,7 @@ class RawConfigParser(MutableMapping):
section, option, d[option], d)
if raw:
value_getter = lambda option: d[option]
- return [(option, value_getter(option)) for option in orig_keys]
+ return [(option, value_getter(option)) for option in orig_keys]
def popitem(self):
"""Remove a section from the parser and return it as
@@ -907,9 +907,9 @@ class RawConfigParser(MutableMapping):
If `space_around_delimiters' is True (the default), delimiters
between keys and values are surrounded by spaces.
-
- Please note that comments in the original configuration file are not
- preserved when writing the configuration back.
+
+ Please note that comments in the original configuration file are not
+ preserved when writing the configuration back.
"""
if space_around_delimiters:
d = " {} ".format(self._delimiters[0])
@@ -966,8 +966,8 @@ class RawConfigParser(MutableMapping):
def __setitem__(self, key, value):
# To conform with the mapping protocol, overwrites existing values in
# the section.
- if key in self and self[key] is value:
- return
+ if key in self and self[key] is value:
+ return
# XXX this is not atomic if read_dict fails at any point. Then again,
# no update method in configparser is atomic in this implementation.
if key == self.default_section:
@@ -1008,7 +1008,7 @@ class RawConfigParser(MutableMapping):
Configuration files may include comments, prefixed by specific
characters (`#' and `;' by default). Comments may appear on their own
in an otherwise empty line or may be entered in lines holding values or
- section names. Please note that comments get stripped off when reading configuration files.
+ section names. Please note that comments get stripped off when reading configuration files.
"""
elements_added = set()
cursect = None # None, or a dictionary
diff --git a/contrib/tools/python3/src/Lib/contextlib.py b/contrib/tools/python3/src/Lib/contextlib.py
index 86b3010734..4e8f5f7593 100644
--- a/contrib/tools/python3/src/Lib/contextlib.py
+++ b/contrib/tools/python3/src/Lib/contextlib.py
@@ -4,7 +4,7 @@ import sys
import _collections_abc
from collections import deque
from functools import wraps
-from types import MethodType, GenericAlias
+from types import MethodType, GenericAlias
__all__ = ["asynccontextmanager", "contextmanager", "closing", "nullcontext",
"AbstractContextManager", "AbstractAsyncContextManager",
@@ -16,8 +16,8 @@ class AbstractContextManager(abc.ABC):
"""An abstract base class for context managers."""
- __class_getitem__ = classmethod(GenericAlias)
-
+ __class_getitem__ = classmethod(GenericAlias)
+
def __enter__(self):
"""Return `self` upon entering the runtime context."""
return self
@@ -38,8 +38,8 @@ class AbstractAsyncContextManager(abc.ABC):
"""An abstract base class for asynchronous context managers."""
- __class_getitem__ = classmethod(GenericAlias)
-
+ __class_getitem__ = classmethod(GenericAlias)
+
async def __aenter__(self):
"""Return `self` upon entering the runtime context."""
return self
@@ -98,19 +98,19 @@ class _GeneratorContextManagerBase:
# See http://bugs.python.org/issue19404 for more details.
def _recreate_cm(self):
- # _GCMB instances are one-shot context managers, so the
+ # _GCMB instances are one-shot context managers, so the
# CM must be recreated each time a decorated function is
# called
return self.__class__(self.func, self.args, self.kwds)
-
-class _GeneratorContextManager(
- _GeneratorContextManagerBase,
- AbstractContextManager,
- ContextDecorator,
-):
- """Helper for @contextmanager decorator."""
-
+
+class _GeneratorContextManager(
+ _GeneratorContextManagerBase,
+ AbstractContextManager,
+ ContextDecorator,
+):
+ """Helper for @contextmanager decorator."""
+
def __enter__(self):
# do not keep args and kwds alive unnecessarily
# they are only needed for recreation, which is not possible anymore
@@ -120,8 +120,8 @@ class _GeneratorContextManager(
except StopIteration:
raise RuntimeError("generator didn't yield") from None
- def __exit__(self, typ, value, traceback):
- if typ is None:
+ def __exit__(self, typ, value, traceback):
+ if typ is None:
try:
next(self.gen)
except StopIteration:
@@ -132,9 +132,9 @@ class _GeneratorContextManager(
if value is None:
# Need to force instantiation so we can reliably
# tell if we get the same exception back
- value = typ()
+ value = typ()
try:
- self.gen.throw(typ, value, traceback)
+ self.gen.throw(typ, value, traceback)
except StopIteration as exc:
# Suppress StopIteration *unless* it's the same exception that
# was passed to throw(). This prevents a StopIteration
@@ -144,39 +144,39 @@ class _GeneratorContextManager(
# Don't re-raise the passed in exception. (issue27122)
if exc is value:
return False
- # Avoid suppressing if a StopIteration exception
+ # Avoid suppressing if a StopIteration exception
# was passed to throw() and later wrapped into a RuntimeError
- # (see PEP 479 for sync generators; async generators also
- # have this behavior). But do this only if the exception wrapped
- # by the RuntimeError is actually Stop(Async)Iteration (see
- # issue29692).
- if (
- isinstance(value, StopIteration)
- and exc.__cause__ is value
- ):
+ # (see PEP 479 for sync generators; async generators also
+ # have this behavior). But do this only if the exception wrapped
+ # by the RuntimeError is actually Stop(Async)Iteration (see
+ # issue29692).
+ if (
+ isinstance(value, StopIteration)
+ and exc.__cause__ is value
+ ):
return False
raise
- except BaseException as exc:
+ except BaseException as exc:
# only re-raise if it's *not* the exception that was
# passed to throw(), because __exit__() must not raise
# an exception unless __exit__() itself failed. But throw()
# has to raise the exception to signal propagation, so this
# fixes the impedance mismatch between the throw() protocol
# and the __exit__() protocol.
- if exc is not value:
- raise
- return False
+ if exc is not value:
+ raise
+ return False
raise RuntimeError("generator didn't stop after throw()")
class _AsyncGeneratorContextManager(_GeneratorContextManagerBase,
AbstractAsyncContextManager):
- """Helper for @asynccontextmanager decorator."""
+ """Helper for @asynccontextmanager decorator."""
async def __aenter__(self):
- # do not keep args and kwds alive unnecessarily
- # they are only needed for recreation, which is not possible anymore
- del self.args, self.kwds, self.func
+ # do not keep args and kwds alive unnecessarily
+ # they are only needed for recreation, which is not possible anymore
+ del self.args, self.kwds, self.func
try:
return await self.gen.__anext__()
except StopAsyncIteration:
@@ -187,48 +187,48 @@ class _AsyncGeneratorContextManager(_GeneratorContextManagerBase,
try:
await self.gen.__anext__()
except StopAsyncIteration:
- return False
+ return False
else:
raise RuntimeError("generator didn't stop")
else:
if value is None:
- # Need to force instantiation so we can reliably
- # tell if we get the same exception back
+ # Need to force instantiation so we can reliably
+ # tell if we get the same exception back
value = typ()
try:
await self.gen.athrow(typ, value, traceback)
except StopAsyncIteration as exc:
- # Suppress StopIteration *unless* it's the same exception that
- # was passed to throw(). This prevents a StopIteration
- # raised inside the "with" statement from being suppressed.
+ # Suppress StopIteration *unless* it's the same exception that
+ # was passed to throw(). This prevents a StopIteration
+ # raised inside the "with" statement from being suppressed.
return exc is not value
except RuntimeError as exc:
- # Don't re-raise the passed in exception. (issue27122)
+ # Don't re-raise the passed in exception. (issue27122)
if exc is value:
return False
- # Avoid suppressing if a Stop(Async)Iteration exception
- # was passed to athrow() and later wrapped into a RuntimeError
+ # Avoid suppressing if a Stop(Async)Iteration exception
+ # was passed to athrow() and later wrapped into a RuntimeError
# (see PEP 479 for sync generators; async generators also
# have this behavior). But do this only if the exception wrapped
# by the RuntimeError is actully Stop(Async)Iteration (see
# issue29692).
- if (
- isinstance(value, (StopIteration, StopAsyncIteration))
- and exc.__cause__ is value
- ):
- return False
+ if (
+ isinstance(value, (StopIteration, StopAsyncIteration))
+ and exc.__cause__ is value
+ ):
+ return False
raise
except BaseException as exc:
- # only re-raise if it's *not* the exception that was
- # passed to throw(), because __exit__() must not raise
- # an exception unless __exit__() itself failed. But throw()
- # has to raise the exception to signal propagation, so this
- # fixes the impedance mismatch between the throw() protocol
- # and the __exit__() protocol.
+ # only re-raise if it's *not* the exception that was
+ # passed to throw(), because __exit__() must not raise
+ # an exception unless __exit__() itself failed. But throw()
+ # has to raise the exception to signal propagation, so this
+ # fixes the impedance mismatch between the throw() protocol
+ # and the __exit__() protocol.
if exc is not value:
raise
- return False
- raise RuntimeError("generator didn't stop after athrow()")
+ return False
+ raise RuntimeError("generator didn't stop after athrow()")
def contextmanager(func):
@@ -397,10 +397,10 @@ class _BaseExitStack:
@staticmethod
def _create_exit_wrapper(cm, cm_exit):
- return MethodType(cm_exit, cm)
+ return MethodType(cm_exit, cm)
@staticmethod
- def _create_cb_wrapper(callback, /, *args, **kwds):
+ def _create_cb_wrapper(callback, /, *args, **kwds):
def _exit_wrapper(exc_type, exc, tb):
callback(*args, **kwds)
return _exit_wrapper
@@ -449,7 +449,7 @@ class _BaseExitStack:
self._push_cm_exit(cm, _exit)
return result
- def callback(self, callback, /, *args, **kwds):
+ def callback(self, callback, /, *args, **kwds):
"""Registers an arbitrary callback and arguments.
Cannot suppress exceptions.
@@ -496,10 +496,10 @@ class ExitStack(_BaseExitStack, AbstractContextManager):
# Context may not be correct, so find the end of the chain
while 1:
exc_context = new_exc.__context__
- if exc_context is None or exc_context is old_exc:
+ if exc_context is None or exc_context is old_exc:
# Context is already set correctly (see issue 20317)
return
- if exc_context is frame_exc:
+ if exc_context is frame_exc:
break
new_exc = exc_context
# Change the end of the chain to point to the exception
@@ -556,10 +556,10 @@ class AsyncExitStack(_BaseExitStack, AbstractAsyncContextManager):
@staticmethod
def _create_async_exit_wrapper(cm, cm_exit):
- return MethodType(cm_exit, cm)
+ return MethodType(cm_exit, cm)
@staticmethod
- def _create_async_cb_wrapper(callback, /, *args, **kwds):
+ def _create_async_cb_wrapper(callback, /, *args, **kwds):
async def _exit_wrapper(exc_type, exc, tb):
await callback(*args, **kwds)
return _exit_wrapper
@@ -594,7 +594,7 @@ class AsyncExitStack(_BaseExitStack, AbstractAsyncContextManager):
self._push_async_cm_exit(exit, exit_method)
return exit # Allow use as a decorator
- def push_async_callback(self, callback, /, *args, **kwds):
+ def push_async_callback(self, callback, /, *args, **kwds):
"""Registers an arbitrary coroutine function and arguments.
Cannot suppress exceptions.
@@ -630,10 +630,10 @@ class AsyncExitStack(_BaseExitStack, AbstractAsyncContextManager):
# Context may not be correct, so find the end of the chain
while 1:
exc_context = new_exc.__context__
- if exc_context is None or exc_context is old_exc:
+ if exc_context is None or exc_context is old_exc:
# Context is already set correctly (see issue 20317)
return
- if exc_context is frame_exc:
+ if exc_context is frame_exc:
break
new_exc = exc_context
# Change the end of the chain to point to the exception
diff --git a/contrib/tools/python3/src/Lib/copy.py b/contrib/tools/python3/src/Lib/copy.py
index 3784c6decf..1081d43952 100644
--- a/contrib/tools/python3/src/Lib/copy.py
+++ b/contrib/tools/python3/src/Lib/copy.py
@@ -39,8 +39,8 @@ Python's deep copy operation avoids these problems by:
set of components copied
This version does not copy types like module, class, function, method,
-nor stack trace, stack frame, nor file, socket, window, nor any
-similar types.
+nor stack trace, stack frame, nor file, socket, window, nor any
+similar types.
Classes can use the same interfaces to control copying that they use
to control pickling: they can define methods called __getinitargs__(),
@@ -75,20 +75,20 @@ def copy(x):
if copier:
return copier(x)
- if issubclass(cls, type):
+ if issubclass(cls, type):
# treat it as a regular class:
return _copy_immutable(x)
copier = getattr(cls, "__copy__", None)
- if copier is not None:
+ if copier is not None:
return copier(x)
reductor = dispatch_table.get(cls)
- if reductor is not None:
+ if reductor is not None:
rv = reductor(x)
else:
reductor = getattr(x, "__reduce_ex__", None)
- if reductor is not None:
+ if reductor is not None:
rv = reductor(4)
else:
reductor = getattr(x, "__reduce__", None)
@@ -107,7 +107,7 @@ _copy_dispatch = d = {}
def _copy_immutable(x):
return x
for t in (type(None), int, float, bool, complex, str, tuple,
- bytes, frozenset, type, range, slice, property,
+ bytes, frozenset, type, range, slice, property,
types.BuiltinFunctionType, type(Ellipsis), type(NotImplemented),
types.FunctionType, weakref.ref):
d[t] = _copy_immutable
@@ -142,14 +142,14 @@ def deepcopy(x, memo=None, _nil=[]):
cls = type(x)
copier = _deepcopy_dispatch.get(cls)
- if copier is not None:
+ if copier is not None:
y = copier(x, memo)
else:
- if issubclass(cls, type):
+ if issubclass(cls, type):
y = _deepcopy_atomic(x, memo)
else:
copier = getattr(x, "__deepcopy__", None)
- if copier is not None:
+ if copier is not None:
y = copier(memo)
else:
reductor = dispatch_table.get(cls)
@@ -157,7 +157,7 @@ def deepcopy(x, memo=None, _nil=[]):
rv = reductor(x)
else:
reductor = getattr(x, "__reduce_ex__", None)
- if reductor is not None:
+ if reductor is not None:
rv = reductor(4)
else:
reductor = getattr(x, "__reduce__", None)
@@ -190,12 +190,12 @@ d[bool] = _deepcopy_atomic
d[complex] = _deepcopy_atomic
d[bytes] = _deepcopy_atomic
d[str] = _deepcopy_atomic
-d[types.CodeType] = _deepcopy_atomic
+d[types.CodeType] = _deepcopy_atomic
d[type] = _deepcopy_atomic
d[types.BuiltinFunctionType] = _deepcopy_atomic
d[types.FunctionType] = _deepcopy_atomic
d[weakref.ref] = _deepcopy_atomic
-d[property] = _deepcopy_atomic
+d[property] = _deepcopy_atomic
def _deepcopy_list(x, memo, deepcopy=deepcopy):
y = []
diff --git a/contrib/tools/python3/src/Lib/copyreg.py b/contrib/tools/python3/src/Lib/copyreg.py
index 5485cceb59..7ab8c128eb 100644
--- a/contrib/tools/python3/src/Lib/copyreg.py
+++ b/contrib/tools/python3/src/Lib/copyreg.py
@@ -48,36 +48,36 @@ def _reconstructor(cls, base, state):
return obj
_HEAPTYPE = 1<<9
-_new_type = type(int.__new__)
+_new_type = type(int.__new__)
# Python code for object.__reduce_ex__ for protocols 0 and 1
def _reduce_ex(self, proto):
assert proto < 2
- cls = self.__class__
- for base in cls.__mro__:
+ cls = self.__class__
+ for base in cls.__mro__:
if hasattr(base, '__flags__') and not base.__flags__ & _HEAPTYPE:
break
- new = base.__new__
- if isinstance(new, _new_type) and new.__self__ is base:
- break
+ new = base.__new__
+ if isinstance(new, _new_type) and new.__self__ is base:
+ break
else:
base = object # not really reachable
if base is object:
state = None
else:
- if base is cls:
- raise TypeError(f"cannot pickle {cls.__name__!r} object")
+ if base is cls:
+ raise TypeError(f"cannot pickle {cls.__name__!r} object")
state = base(self)
- args = (cls, base, state)
+ args = (cls, base, state)
try:
getstate = self.__getstate__
except AttributeError:
if getattr(self, "__slots__", None):
- raise TypeError(f"cannot pickle {cls.__name__!r} object: "
- f"a class that defines __slots__ without "
- f"defining __getstate__ cannot be pickled "
- f"with protocol {proto}") from None
+ raise TypeError(f"cannot pickle {cls.__name__!r} object: "
+ f"a class that defines __slots__ without "
+ f"defining __getstate__ cannot be pickled "
+ f"with protocol {proto}") from None
try:
dict = self.__dict__
except AttributeError:
diff --git a/contrib/tools/python3/src/Lib/crypt.py b/contrib/tools/python3/src/Lib/crypt.py
index 00d153c658..33dbc46bb3 100644
--- a/contrib/tools/python3/src/Lib/crypt.py
+++ b/contrib/tools/python3/src/Lib/crypt.py
@@ -1,16 +1,16 @@
"""Wrapper to the POSIX crypt library call and associated functionality."""
-import sys as _sys
-
-try:
- import _crypt
-except ModuleNotFoundError:
- if _sys.platform == 'win32':
- raise ImportError("The crypt module is not supported on Windows")
- else:
- raise ImportError("The required _crypt module was not built as part of CPython")
-
-import errno
+import sys as _sys
+
+try:
+ import _crypt
+except ModuleNotFoundError:
+ if _sys.platform == 'win32':
+ raise ImportError("The crypt module is not supported on Windows")
+ else:
+ raise ImportError("The required _crypt module was not built as part of CPython")
+
+import errno
import string as _string
from random import SystemRandom as _SystemRandom
from collections import namedtuple as _namedtuple
@@ -89,14 +89,14 @@ def _add_method(name, *args, rounds=None):
method = _Method(name, *args)
globals()['METHOD_' + name] = method
salt = mksalt(method, rounds=rounds)
- result = None
- try:
- result = crypt('', salt)
- except OSError as e:
- # Not all libc libraries support all encryption methods.
- if e.errno == errno.EINVAL:
- return False
- raise
+ result = None
+ try:
+ result = crypt('', salt)
+ except OSError as e:
+ # Not all libc libraries support all encryption methods.
+ if e.errno == errno.EINVAL:
+ return False
+ raise
if result and len(result) == method.total_size:
methods.append(method)
return True
diff --git a/contrib/tools/python3/src/Lib/csv.py b/contrib/tools/python3/src/Lib/csv.py
index 6cb260abe2..dc85077f3e 100644
--- a/contrib/tools/python3/src/Lib/csv.py
+++ b/contrib/tools/python3/src/Lib/csv.py
@@ -116,7 +116,7 @@ class DictReader:
# values
while row == []:
row = next(self.reader)
- d = dict(zip(self.fieldnames, row))
+ d = dict(zip(self.fieldnames, row))
lf = len(self.fieldnames)
lr = len(row)
if lf < lr:
@@ -140,7 +140,7 @@ class DictWriter:
def writeheader(self):
header = dict(zip(self.fieldnames, self.fieldnames))
- return self.writerow(header)
+ return self.writerow(header)
def _dict_to_list(self, rowdict):
if self.extrasaction == "raise":
diff --git a/contrib/tools/python3/src/Lib/ctypes/__init__.py b/contrib/tools/python3/src/Lib/ctypes/__init__.py
index d1b2d300ec..2dde747beb 100644
--- a/contrib/tools/python3/src/Lib/ctypes/__init__.py
+++ b/contrib/tools/python3/src/Lib/ctypes/__init__.py
@@ -1,7 +1,7 @@
"""create and manipulate C data types in Python"""
import os as _os, sys as _sys
-import types as _types
+import types as _types
__version__ = "1.1.0"
@@ -54,13 +54,13 @@ def create_string_buffer(init, size=None):
if isinstance(init, bytes):
if size is None:
size = len(init)+1
- _sys.audit("ctypes.create_string_buffer", init, size)
+ _sys.audit("ctypes.create_string_buffer", init, size)
buftype = c_char * size
buf = buftype()
buf.value = init
return buf
elif isinstance(init, int):
- _sys.audit("ctypes.create_string_buffer", None, init)
+ _sys.audit("ctypes.create_string_buffer", None, init)
buftype = c_char * init
buf = buftype()
return buf
@@ -278,22 +278,22 @@ def create_unicode_buffer(init, size=None):
"""
if isinstance(init, str):
if size is None:
- if sizeof(c_wchar) == 2:
- # UTF-16 requires a surrogate pair (2 wchar_t) for non-BMP
- # characters (outside [U+0000; U+FFFF] range). +1 for trailing
- # NUL character.
- size = sum(2 if ord(c) > 0xFFFF else 1 for c in init) + 1
- else:
- # 32-bit wchar_t (1 wchar_t per Unicode character). +1 for
- # trailing NUL character.
- size = len(init) + 1
- _sys.audit("ctypes.create_unicode_buffer", init, size)
+ if sizeof(c_wchar) == 2:
+ # UTF-16 requires a surrogate pair (2 wchar_t) for non-BMP
+ # characters (outside [U+0000; U+FFFF] range). +1 for trailing
+ # NUL character.
+ size = sum(2 if ord(c) > 0xFFFF else 1 for c in init) + 1
+ else:
+ # 32-bit wchar_t (1 wchar_t per Unicode character). +1 for
+ # trailing NUL character.
+ size = len(init) + 1
+ _sys.audit("ctypes.create_unicode_buffer", init, size)
buftype = c_wchar * size
buf = buftype()
buf.value = init
return buf
elif isinstance(init, int):
- _sys.audit("ctypes.create_unicode_buffer", None, init)
+ _sys.audit("ctypes.create_unicode_buffer", None, init)
buftype = c_wchar * init
buf = buftype()
return buf
@@ -340,8 +340,8 @@ class CDLL(object):
def __init__(self, name, mode=DEFAULT_MODE, handle=None,
use_errno=False,
- use_last_error=False,
- winmode=None):
+ use_last_error=False,
+ winmode=None):
self._name = name
flags = self._func_flags_
if use_errno:
@@ -356,15 +356,15 @@ class CDLL(object):
"""
if name and name.endswith(")") and ".a(" in name:
mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW )
- if _os.name == "nt":
- if winmode is not None:
- mode = winmode
- else:
- import nt
- mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS
- if '/' in name or '\\' in name:
- self._name = nt._getfullpathname(self._name)
- mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR
+ if _os.name == "nt":
+ if winmode is not None:
+ mode = winmode
+ else:
+ import nt
+ mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS
+ if '/' in name or '\\' in name:
+ self._name = nt._getfullpathname(self._name)
+ mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR
class _FuncPtr(_CFuncPtr):
_flags_ = flags
@@ -465,8 +465,8 @@ class LibraryLoader(object):
def LoadLibrary(self, name):
return self._dlltype(name)
- __class_getitem__ = classmethod(_types.GenericAlias)
-
+ __class_getitem__ = classmethod(_types.GenericAlias)
+
cdll = LibraryLoader(CDLL)
pydll = LibraryLoader(PyDLL)
diff --git a/contrib/tools/python3/src/Lib/ctypes/_aix.py b/contrib/tools/python3/src/Lib/ctypes/_aix.py
index 084f0e499c..fc3e95cbcc 100644
--- a/contrib/tools/python3/src/Lib/ctypes/_aix.py
+++ b/contrib/tools/python3/src/Lib/ctypes/_aix.py
@@ -163,7 +163,7 @@ def get_legacy(members):
return member
else:
# 32-bit legacy names - both shr.o and shr4.o exist.
- # shr.o is the preferred name so we look for shr.o first
+ # shr.o is the preferred name so we look for shr.o first
# i.e., shr4.o is returned only when shr.o does not exist
for name in ['shr.o', 'shr4.o']:
member = get_one_match(re.escape(name), members)
@@ -282,7 +282,7 @@ def find_shared(paths, name):
if path.exists(archive):
members = get_shared(get_ld_headers(archive))
member = get_member(re.escape(name), members)
- if member is not None:
+ if member is not None:
return (base, member)
else:
return (None, None)
@@ -307,7 +307,7 @@ def find_library(name):
libpaths = get_libpaths()
(base, member) = find_shared(libpaths, name)
- if base is not None:
+ if base is not None:
return f"{base}({member})"
# To get here, a member in an archive has not been found
diff --git a/contrib/tools/python3/src/Lib/ctypes/macholib/dyld.py b/contrib/tools/python3/src/Lib/ctypes/macholib/dyld.py
index bf279ad087..1c3f8fd38b 100644
--- a/contrib/tools/python3/src/Lib/ctypes/macholib/dyld.py
+++ b/contrib/tools/python3/src/Lib/ctypes/macholib/dyld.py
@@ -6,11 +6,11 @@ import os
from ctypes.macholib.framework import framework_info
from ctypes.macholib.dylib import dylib_info
from itertools import *
-try:
- from _ctypes import _dyld_shared_cache_contains_path
-except ImportError:
- def _dyld_shared_cache_contains_path(*args):
- raise NotImplementedError
+try:
+ from _ctypes import _dyld_shared_cache_contains_path
+except ImportError:
+ def _dyld_shared_cache_contains_path(*args):
+ raise NotImplementedError
__all__ = [
'dyld_find', 'framework_find',
@@ -127,15 +127,15 @@ def dyld_find(name, executable_path=None, env=None):
dyld_executable_path_search(name, executable_path),
dyld_default_search(name, env),
), env):
-
+
if os.path.isfile(path):
return path
- try:
- if _dyld_shared_cache_contains_path(path):
- return path
- except NotImplementedError:
- pass
-
+ try:
+ if _dyld_shared_cache_contains_path(path):
+ return path
+ except NotImplementedError:
+ pass
+
raise ValueError("dylib %s could not be found" % (name,))
def framework_find(fn, executable_path=None, env=None):
@@ -161,8 +161,8 @@ def framework_find(fn, executable_path=None, env=None):
return dyld_find(fn, executable_path=executable_path, env=env)
except ValueError:
raise error
- finally:
- error = None
+ finally:
+ error = None
def test_dyld_find():
env = {}
diff --git a/contrib/tools/python3/src/Lib/ctypes/util.py b/contrib/tools/python3/src/Lib/ctypes/util.py
index 55b871c575..a1f045e62c 100644
--- a/contrib/tools/python3/src/Lib/ctypes/util.py
+++ b/contrib/tools/python3/src/Lib/ctypes/util.py
@@ -93,12 +93,12 @@ elif os.name == "posix":
# Andreas Degert's find functions, using gcc, /sbin/ldconfig, objdump
import re, tempfile
- def _is_elf(filename):
- "Return True if the given file is an ELF file"
- elf_header = b'\x7fELF'
- with open(filename, 'br') as thefile:
- return thefile.read(4) == elf_header
-
+ def _is_elf(filename):
+ "Return True if the given file is an ELF file"
+ elf_header = b'\x7fELF'
+ with open(filename, 'br') as thefile:
+ return thefile.read(4) == elf_header
+
def _findLib_gcc(name):
# Run GCC's linker with the -t (aka --trace) option and examine the
# library name it prints out. The GCC command will fail because we
@@ -136,19 +136,19 @@ elif os.name == "posix":
# Raised if the file was already removed, which is the normal
# behaviour of GCC if linking fails
pass
- res = re.findall(expr, trace)
+ res = re.findall(expr, trace)
if not res:
return None
- for file in res:
- # Check if the given file is an elf file: gcc can report
- # some files that are linker scripts and not actual
- # shared objects. See bpo-41976 for more details
- if not _is_elf(file):
- continue
- return os.fsdecode(file)
+ for file in res:
+ # Check if the given file is an elf file: gcc can report
+ # some files that are linker scripts and not actual
+ # shared objects. See bpo-41976 for more details
+ if not _is_elf(file):
+ continue
+ return os.fsdecode(file)
+
-
if sys.platform == "sunos5":
# use /usr/ccs/bin/dump on solaris
def _get_soname(f):
@@ -312,22 +312,22 @@ elif os.name == "posix":
stderr=subprocess.PIPE,
universal_newlines=True)
out, _ = p.communicate()
- res = re.findall(expr, os.fsdecode(out))
- for file in res:
- # Check if the given file is an elf file: gcc can report
- # some files that are linker scripts and not actual
- # shared objects. See bpo-41976 for more details
- if not _is_elf(file):
- continue
- return os.fsdecode(file)
- except Exception:
+ res = re.findall(expr, os.fsdecode(out))
+ for file in res:
+ # Check if the given file is an elf file: gcc can report
+ # some files that are linker scripts and not actual
+ # shared objects. See bpo-41976 for more details
+ if not _is_elf(file):
+ continue
+ return os.fsdecode(file)
+ except Exception:
pass # result will be None
return result
def find_library(name):
# See issue #9998
return _findSoname_ldconfig(name) or \
- _get_soname(_findLib_gcc(name)) or _get_soname(_findLib_ld(name))
+ _get_soname(_findLib_gcc(name)) or _get_soname(_findLib_ld(name))
try:
from library.python.symbols.module import find_library as _find_library
diff --git a/contrib/tools/python3/src/Lib/curses/__init__.py b/contrib/tools/python3/src/Lib/curses/__init__.py
index 11e21daeaa..69270bfcd2 100644
--- a/contrib/tools/python3/src/Lib/curses/__init__.py
+++ b/contrib/tools/python3/src/Lib/curses/__init__.py
@@ -60,7 +60,7 @@ except NameError:
# raises an exception, wrapper() will restore the terminal to a sane state so
# you can read the resulting traceback.
-def wrapper(func, /, *args, **kwds):
+def wrapper(func, /, *args, **kwds):
"""Wrapper function that initializes curses and calls another function,
restoring normal keyboard/screen behavior on error.
The callable object 'func' is then passed the main window 'stdscr'
diff --git a/contrib/tools/python3/src/Lib/dataclasses.py b/contrib/tools/python3/src/Lib/dataclasses.py
index 09982bcc3e..5ff67ad2ea 100644
--- a/contrib/tools/python3/src/Lib/dataclasses.py
+++ b/contrib/tools/python3/src/Lib/dataclasses.py
@@ -7,7 +7,7 @@ import keyword
import builtins
import functools
import _thread
-from types import GenericAlias
+from types import GenericAlias
__all__ = ['dataclass',
@@ -200,24 +200,24 @@ _POST_INIT_NAME = '__post_init__'
# https://bugs.python.org/issue33453 for details.
_MODULE_IDENTIFIER_RE = re.compile(r'^(?:\s*(\w+)\s*\.)?\s*(\w+)')
-class InitVar:
- __slots__ = ('type', )
-
- def __init__(self, type):
- self.type = type
-
- def __repr__(self):
- if isinstance(self.type, type) and not isinstance(self.type, GenericAlias):
- type_name = self.type.__name__
- else:
- # typing objects, e.g. List[int]
- type_name = repr(self.type)
- return f'dataclasses.InitVar[{type_name}]'
-
- def __class_getitem__(cls, type):
- return InitVar(type)
-
-
+class InitVar:
+ __slots__ = ('type', )
+
+ def __init__(self, type):
+ self.type = type
+
+ def __repr__(self):
+ if isinstance(self.type, type) and not isinstance(self.type, GenericAlias):
+ type_name = self.type.__name__
+ else:
+ # typing objects, e.g. List[int]
+ type_name = repr(self.type)
+ return f'dataclasses.InitVar[{type_name}]'
+
+ def __class_getitem__(cls, type):
+ return InitVar(type)
+
+
# Instances of Field are only ever created from within this module,
# and only from the field() function, although Field instances are
# exposed externally as (conceptually) read-only objects.
@@ -285,9 +285,9 @@ class Field:
# it.
func(self.default, owner, name)
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
class _DataclassParams:
__slots__ = ('init',
'repr',
@@ -381,26 +381,26 @@ def _create_fn(name, args, body, *, globals=None, locals=None,
# worries about external callers.
if locals is None:
locals = {}
- if 'BUILTINS' not in locals:
- locals['BUILTINS'] = builtins
+ if 'BUILTINS' not in locals:
+ locals['BUILTINS'] = builtins
return_annotation = ''
if return_type is not MISSING:
locals['_return_type'] = return_type
return_annotation = '->_return_type'
args = ','.join(args)
- body = '\n'.join(f' {b}' for b in body)
+ body = '\n'.join(f' {b}' for b in body)
# Compute the text of the entire function.
- txt = f' def {name}({args}){return_annotation}:\n{body}'
+ txt = f' def {name}({args}){return_annotation}:\n{body}'
+
+ local_vars = ', '.join(locals.keys())
+ txt = f"def __create_fn__({local_vars}):\n{txt}\n return {name}"
- local_vars = ', '.join(locals.keys())
- txt = f"def __create_fn__({local_vars}):\n{txt}\n return {name}"
+ ns = {}
+ exec(txt, globals, ns)
+ return ns['__create_fn__'](**locals)
- ns = {}
- exec(txt, globals, ns)
- return ns['__create_fn__'](**locals)
-
def _field_assign(frozen, name, value, self_name):
# If we're a frozen class, then assign to our fields in __init__
# via object.__setattr__. Otherwise, just use a simple
@@ -409,7 +409,7 @@ def _field_assign(frozen, name, value, self_name):
# self_name is what "self" is called in this function: don't
# hard-code "self", since that might be a field name.
if frozen:
- return f'BUILTINS.object.__setattr__({self_name},{name!r},{value})'
+ return f'BUILTINS.object.__setattr__({self_name},{name!r},{value})'
return f'{self_name}.{name}={value}'
@@ -486,7 +486,7 @@ def _init_param(f):
return f'{f.name}:_type_{f.name}{default}'
-def _init_fn(fields, frozen, has_post_init, self_name, globals):
+def _init_fn(fields, frozen, has_post_init, self_name, globals):
# fields contains both real fields and InitVar pseudo-fields.
# Make sure we don't have fields without defaults following fields
@@ -504,15 +504,15 @@ def _init_fn(fields, frozen, has_post_init, self_name, globals):
raise TypeError(f'non-default argument {f.name!r} '
'follows default argument')
- locals = {f'_type_{f.name}': f.type for f in fields}
- locals.update({
- 'MISSING': MISSING,
- '_HAS_DEFAULT_FACTORY': _HAS_DEFAULT_FACTORY,
- })
+ locals = {f'_type_{f.name}': f.type for f in fields}
+ locals.update({
+ 'MISSING': MISSING,
+ '_HAS_DEFAULT_FACTORY': _HAS_DEFAULT_FACTORY,
+ })
body_lines = []
for f in fields:
- line = _field_init(f, frozen, locals, self_name)
+ line = _field_init(f, frozen, locals, self_name)
# line is None means that this field doesn't require
# initialization (it's a pseudo-field). Just skip it.
if line:
@@ -536,19 +536,19 @@ def _init_fn(fields, frozen, has_post_init, self_name, globals):
return_type=None)
-def _repr_fn(fields, globals):
+def _repr_fn(fields, globals):
fn = _create_fn('__repr__',
('self',),
['return self.__class__.__qualname__ + f"(' +
', '.join([f"{f.name}={{self.{f.name}!r}}"
for f in fields]) +
- ')"'],
- globals=globals)
+ ')"'],
+ globals=globals)
return _recursive_repr(fn)
-def _frozen_get_del_attr(cls, fields, globals):
- locals = {'cls': cls,
+def _frozen_get_del_attr(cls, fields, globals):
+ locals = {'cls': cls,
'FrozenInstanceError': FrozenInstanceError}
if fields:
fields_str = '(' + ','.join(repr(f.name) for f in fields) + ',)'
@@ -560,19 +560,19 @@ def _frozen_get_del_attr(cls, fields, globals):
(f'if type(self) is cls or name in {fields_str}:',
' raise FrozenInstanceError(f"cannot assign to field {name!r}")',
f'super(cls, self).__setattr__(name, value)'),
- locals=locals,
+ locals=locals,
globals=globals),
_create_fn('__delattr__',
('self', 'name'),
(f'if type(self) is cls or name in {fields_str}:',
' raise FrozenInstanceError(f"cannot delete field {name!r}")',
f'super(cls, self).__delattr__(name)'),
- locals=locals,
+ locals=locals,
globals=globals),
)
-def _cmp_fn(name, op, self_tuple, other_tuple, globals):
+def _cmp_fn(name, op, self_tuple, other_tuple, globals):
# Create a comparison function. If the fields in the object are
# named 'x' and 'y', then self_tuple is the string
# '(self.x,self.y)' and other_tuple is the string
@@ -582,16 +582,16 @@ def _cmp_fn(name, op, self_tuple, other_tuple, globals):
('self', 'other'),
[ 'if other.__class__ is self.__class__:',
f' return {self_tuple}{op}{other_tuple}',
- 'return NotImplemented'],
- globals=globals)
+ 'return NotImplemented'],
+ globals=globals)
-def _hash_fn(fields, globals):
+def _hash_fn(fields, globals):
self_tuple = _tuple_str('self', fields)
return _create_fn('__hash__',
('self',),
- [f'return hash({self_tuple})'],
- globals=globals)
+ [f'return hash({self_tuple})'],
+ globals=globals)
def _is_classvar(a_type, typing):
@@ -605,8 +605,8 @@ def _is_classvar(a_type, typing):
def _is_initvar(a_type, dataclasses):
# The module we're checking against is the module we're
# currently in (dataclasses.py).
- return (a_type is dataclasses.InitVar
- or type(a_type) is dataclasses.InitVar)
+ return (a_type is dataclasses.InitVar
+ or type(a_type) is dataclasses.InitVar)
def _is_type(annotation, cls, a_module, a_type, is_type_predicate):
@@ -696,7 +696,7 @@ def _get_field(cls, a_name, a_type):
# In addition to checking for actual types here, also check for
# string annotations. get_type_hints() won't always work for us
# (see https://github.com/python/typing/issues/508 for example),
- # plus it's expensive and would require an eval for every string
+ # plus it's expensive and would require an eval for every string
# annotation. So, make a best effort to see if this is a ClassVar
# or InitVar using regex's and checking that the thing referenced
# is actually of the correct type.
@@ -764,14 +764,14 @@ def _set_new_attribute(cls, name, value):
# take. The common case is to do nothing, so instead of providing a
# function that is a no-op, use None to signify that.
-def _hash_set_none(cls, fields, globals):
+def _hash_set_none(cls, fields, globals):
return None
-def _hash_add(cls, fields, globals):
+def _hash_add(cls, fields, globals):
flds = [f for f in fields if (f.compare if f.hash is None else f.hash)]
- return _hash_fn(flds, globals)
+ return _hash_fn(flds, globals)
-def _hash_exception(cls, fields, globals):
+def _hash_exception(cls, fields, globals):
# Raise an exception.
raise TypeError(f'Cannot overwrite attribute __hash__ '
f'in class {cls.__name__}')
@@ -813,16 +813,16 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
# is defined by the base class, which is found first.
fields = {}
- if cls.__module__ in sys.modules:
- globals = sys.modules[cls.__module__].__dict__
- else:
- # Theoretically this can happen if someone writes
- # a custom string to cls.__module__. In which case
- # such dataclass won't be fully introspectable
- # (w.r.t. typing.get_type_hints) but will still function
- # correctly.
- globals = {}
-
+ if cls.__module__ in sys.modules:
+ globals = sys.modules[cls.__module__].__dict__
+ else:
+ # Theoretically this can happen if someone writes
+ # a custom string to cls.__module__. In which case
+ # such dataclass won't be fully introspectable
+ # (w.r.t. typing.get_type_hints) but will still function
+ # correctly.
+ globals = {}
+
setattr(cls, _PARAMS, _DataclassParams(init, repr, eq, order,
unsafe_hash, frozen))
@@ -836,7 +836,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
# Only process classes that have been processed by our
# decorator. That is, they have a _FIELDS attribute.
base_fields = getattr(b, _FIELDS, None)
- if base_fields is not None:
+ if base_fields is not None:
has_dataclass_bases = True
for f in base_fields.values():
fields[f.name] = f
@@ -932,7 +932,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
# if possible.
'__dataclass_self__' if 'self' in fields
else 'self',
- globals,
+ globals,
))
# Get the fields as a list, and include only real fields. This is
@@ -941,18 +941,18 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
if repr:
flds = [f for f in field_list if f.repr]
- _set_new_attribute(cls, '__repr__', _repr_fn(flds, globals))
+ _set_new_attribute(cls, '__repr__', _repr_fn(flds, globals))
if eq:
- # Create __eq__ method. There's no need for a __ne__ method,
+ # Create __eq__ method. There's no need for a __ne__ method,
# since python will call __eq__ and negate it.
flds = [f for f in field_list if f.compare]
self_tuple = _tuple_str('self', flds)
other_tuple = _tuple_str('other', flds)
_set_new_attribute(cls, '__eq__',
_cmp_fn('__eq__', '==',
- self_tuple, other_tuple,
- globals=globals))
+ self_tuple, other_tuple,
+ globals=globals))
if order:
# Create and set the ordering methods.
@@ -965,14 +965,14 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
('__ge__', '>='),
]:
if _set_new_attribute(cls, name,
- _cmp_fn(name, op, self_tuple, other_tuple,
- globals=globals)):
+ _cmp_fn(name, op, self_tuple, other_tuple,
+ globals=globals)):
raise TypeError(f'Cannot overwrite attribute {name} '
f'in class {cls.__name__}. Consider using '
'functools.total_ordering')
if frozen:
- for fn in _frozen_get_del_attr(cls, field_list, globals):
+ for fn in _frozen_get_del_attr(cls, field_list, globals):
if _set_new_attribute(cls, fn.__name__, fn):
raise TypeError(f'Cannot overwrite attribute {fn.__name__} '
f'in class {cls.__name__}')
@@ -985,7 +985,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
if hash_action:
# No need to call _set_new_attribute here, since by the time
# we're here the overwriting is unconditional.
- cls.__hash__ = hash_action(cls, field_list, globals)
+ cls.__hash__ = hash_action(cls, field_list, globals)
if not getattr(cls, '__doc__'):
# Create a class doc-string.
@@ -995,7 +995,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
return cls
-def dataclass(cls=None, /, *, init=True, repr=True, eq=True, order=False,
+def dataclass(cls=None, /, *, init=True, repr=True, eq=True, order=False,
unsafe_hash=False, frozen=False):
"""Returns the same class as was passed in, with dunder methods
added based on the fields defined in the class.
@@ -1013,12 +1013,12 @@ def dataclass(cls=None, /, *, init=True, repr=True, eq=True, order=False,
return _process_class(cls, init, repr, eq, order, unsafe_hash, frozen)
# See if we're being called as @dataclass or @dataclass().
- if cls is None:
+ if cls is None:
# We're called with parens.
return wrap
# We're called as @dataclass without parens.
- return wrap(cls)
+ return wrap(cls)
def fields(class_or_instance):
@@ -1041,14 +1041,14 @@ def fields(class_or_instance):
def _is_dataclass_instance(obj):
"""Returns True if obj is an instance of a dataclass."""
- return hasattr(type(obj), _FIELDS)
+ return hasattr(type(obj), _FIELDS)
def is_dataclass(obj):
"""Returns True if obj is a dataclass or an instance of a
dataclass."""
- cls = obj if isinstance(obj, type) and not isinstance(obj, GenericAlias) else type(obj)
- return hasattr(cls, _FIELDS)
+ cls = obj if isinstance(obj, type) and not isinstance(obj, GenericAlias) else type(obj)
+ return hasattr(cls, _FIELDS)
def asdict(obj, *, dict_factory=dict):
@@ -1094,7 +1094,7 @@ def _asdict_inner(obj, dict_factory):
# method, because:
# - it does not recurse in to the namedtuple fields and
# convert them to dicts (using dict_factory).
- # - I don't actually want to return a dict here. The main
+ # - I don't actually want to return a dict here. The main
# use case here is json.dumps, and it handles converting
# namedtuples to lists. Admittedly we're losing some
# information here when we produce a json list instead of a
@@ -1216,7 +1216,7 @@ def make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True,
raise TypeError(f'Invalid field: {item!r}')
if not isinstance(name, str) or not name.isidentifier():
- raise TypeError(f'Field names must be valid identifiers: {name!r}')
+ raise TypeError(f'Field names must be valid identifiers: {name!r}')
if keyword.iskeyword(name):
raise TypeError(f'Field names must not be keywords: {name!r}')
if name in seen:
@@ -1233,7 +1233,7 @@ def make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True,
unsafe_hash=unsafe_hash, frozen=frozen)
-def replace(obj, /, **changes):
+def replace(obj, /, **changes):
"""Return a new object replacing specified fields with new values.
This is especially useful for frozen classes. Example usage:
@@ -1271,7 +1271,7 @@ def replace(obj, /, **changes):
continue
if f.name not in changes:
- if f._field_type is _FIELD_INITVAR and f.default is MISSING:
+ if f._field_type is _FIELD_INITVAR and f.default is MISSING:
raise ValueError(f"InitVar {f.name!r} "
'must be specified with replace()')
changes[f.name] = getattr(obj, f.name)
diff --git a/contrib/tools/python3/src/Lib/datetime.py b/contrib/tools/python3/src/Lib/datetime.py
index cdc71a5577..23d2bf0918 100644
--- a/contrib/tools/python3/src/Lib/datetime.py
+++ b/contrib/tools/python3/src/Lib/datetime.py
@@ -4,10 +4,10 @@ See http://www.iana.org/time-zones/repository/tz-link.html for
time zone and DST data sources.
"""
-__all__ = ("date", "datetime", "time", "timedelta", "timezone", "tzinfo",
- "MINYEAR", "MAXYEAR")
-
-
+__all__ = ("date", "datetime", "time", "timedelta", "timezone", "tzinfo",
+ "MINYEAR", "MAXYEAR")
+
+
import time as _time
import math as _math
import sys
@@ -383,34 +383,34 @@ def _check_utc_offset(name, offset):
def _check_int_field(value):
if isinstance(value, int):
return value
- if isinstance(value, float):
- raise TypeError('integer argument expected, got float')
- try:
- value = value.__index__()
- except AttributeError:
- pass
- else:
- if not isinstance(value, int):
- raise TypeError('__index__ returned non-int (type %s)' %
- type(value).__name__)
- return value
- orig = value
- try:
- value = value.__int__()
- except AttributeError:
- pass
- else:
- if not isinstance(value, int):
+ if isinstance(value, float):
+ raise TypeError('integer argument expected, got float')
+ try:
+ value = value.__index__()
+ except AttributeError:
+ pass
+ else:
+ if not isinstance(value, int):
+ raise TypeError('__index__ returned non-int (type %s)' %
+ type(value).__name__)
+ return value
+ orig = value
+ try:
+ value = value.__int__()
+ except AttributeError:
+ pass
+ else:
+ if not isinstance(value, int):
raise TypeError('__int__ returned non-int (type %s)' %
type(value).__name__)
- import warnings
- warnings.warn("an integer is required (got type %s)" %
- type(orig).__name__,
- DeprecationWarning,
- stacklevel=2)
- return value
- raise TypeError('an integer is required (got type %s)' %
- type(value).__name__)
+ import warnings
+ warnings.warn("an integer is required (got type %s)" %
+ type(orig).__name__,
+ DeprecationWarning,
+ stacklevel=2)
+ return value
+ raise TypeError('an integer is required (got type %s)' %
+ type(value).__name__)
def _check_date_fields(year, month, day):
year = _check_int_field(year)
@@ -737,31 +737,31 @@ class timedelta:
if isinstance(other, timedelta):
return self._cmp(other) == 0
else:
- return NotImplemented
+ return NotImplemented
def __le__(self, other):
if isinstance(other, timedelta):
return self._cmp(other) <= 0
else:
- return NotImplemented
+ return NotImplemented
def __lt__(self, other):
if isinstance(other, timedelta):
return self._cmp(other) < 0
else:
- return NotImplemented
+ return NotImplemented
def __ge__(self, other):
if isinstance(other, timedelta):
return self._cmp(other) >= 0
else:
- return NotImplemented
+ return NotImplemented
def __gt__(self, other):
if isinstance(other, timedelta):
return self._cmp(other) > 0
else:
- return NotImplemented
+ return NotImplemented
def _cmp(self, other):
assert isinstance(other, timedelta)
@@ -888,41 +888,41 @@ class date:
except Exception:
raise ValueError(f'Invalid isoformat string: {date_string!r}')
- @classmethod
- def fromisocalendar(cls, year, week, day):
- """Construct a date from the ISO year, week number and weekday.
-
- This is the inverse of the date.isocalendar() function"""
- # Year is bounded this way because 9999-12-31 is (9999, 52, 5)
- if not MINYEAR <= year <= MAXYEAR:
- raise ValueError(f"Year is out of range: {year}")
-
- if not 0 < week < 53:
- out_of_range = True
-
- if week == 53:
- # ISO years have 53 weeks in them on years starting with a
- # Thursday and leap years starting on a Wednesday
- first_weekday = _ymd2ord(year, 1, 1) % 7
- if (first_weekday == 4 or (first_weekday == 3 and
- _is_leap(year))):
- out_of_range = False
-
- if out_of_range:
- raise ValueError(f"Invalid week: {week}")
-
- if not 0 < day < 8:
- raise ValueError(f"Invalid weekday: {day} (range is [1, 7])")
-
- # Now compute the offset from (Y, 1, 1) in days:
- day_offset = (week - 1) * 7 + (day - 1)
-
- # Calculate the ordinal day for monday, week 1
- day_1 = _isoweek1monday(year)
- ord_day = day_1 + day_offset
-
- return cls(*_ord2ymd(ord_day))
-
+ @classmethod
+ def fromisocalendar(cls, year, week, day):
+ """Construct a date from the ISO year, week number and weekday.
+
+ This is the inverse of the date.isocalendar() function"""
+ # Year is bounded this way because 9999-12-31 is (9999, 52, 5)
+ if not MINYEAR <= year <= MAXYEAR:
+ raise ValueError(f"Year is out of range: {year}")
+
+ if not 0 < week < 53:
+ out_of_range = True
+
+ if week == 53:
+ # ISO years have 53 weeks in them on years starting with a
+ # Thursday and leap years starting on a Wednesday
+ first_weekday = _ymd2ord(year, 1, 1) % 7
+ if (first_weekday == 4 or (first_weekday == 3 and
+ _is_leap(year))):
+ out_of_range = False
+
+ if out_of_range:
+ raise ValueError(f"Invalid week: {week}")
+
+ if not 0 < day < 8:
+ raise ValueError(f"Invalid weekday: {day} (range is [1, 7])")
+
+ # Now compute the offset from (Y, 1, 1) in days:
+ day_offset = (week - 1) * 7 + (day - 1)
+
+ # Calculate the ordinal day for monday, week 1
+ day_1 = _isoweek1monday(year)
+ ord_day = day_1 + day_offset
+
+ return cls(*_ord2ymd(ord_day))
+
# Conversions to string
def __repr__(self):
@@ -1067,7 +1067,7 @@ class date:
if isinstance(other, timedelta):
o = self.toordinal() + other.days
if 0 < o <= _MAXORDINAL:
- return type(self).fromordinal(o)
+ return type(self).fromordinal(o)
raise OverflowError("result out of range")
return NotImplemented
@@ -1095,7 +1095,7 @@ class date:
return self.toordinal() % 7 or 7
def isocalendar(self):
- """Return a named tuple containing ISO year, week number, and weekday.
+ """Return a named tuple containing ISO year, week number, and weekday.
The first ISO week of the year is the (Mon-Sun) week
containing the year's first Thursday; everything else derives
@@ -1120,7 +1120,7 @@ class date:
if today >= _isoweek1monday(year+1):
year += 1
week = 0
- return _IsoCalendarDate(year, week+1, day+1)
+ return _IsoCalendarDate(year, week+1, day+1)
# Pickle support.
@@ -1210,36 +1210,36 @@ class tzinfo:
else:
return (self.__class__, args, state)
-
-class IsoCalendarDate(tuple):
-
- def __new__(cls, year, week, weekday, /):
- return super().__new__(cls, (year, week, weekday))
-
- @property
- def year(self):
- return self[0]
-
- @property
- def week(self):
- return self[1]
-
- @property
- def weekday(self):
- return self[2]
-
- def __reduce__(self):
- # This code is intended to pickle the object without making the
- # class public. See https://bugs.python.org/msg352381
- return (tuple, (tuple(self),))
-
- def __repr__(self):
- return (f'{self.__class__.__name__}'
- f'(year={self[0]}, week={self[1]}, weekday={self[2]})')
-
-
-_IsoCalendarDate = IsoCalendarDate
-del IsoCalendarDate
+
+class IsoCalendarDate(tuple):
+
+ def __new__(cls, year, week, weekday, /):
+ return super().__new__(cls, (year, week, weekday))
+
+ @property
+ def year(self):
+ return self[0]
+
+ @property
+ def week(self):
+ return self[1]
+
+ @property
+ def weekday(self):
+ return self[2]
+
+ def __reduce__(self):
+ # This code is intended to pickle the object without making the
+ # class public. See https://bugs.python.org/msg352381
+ return (tuple, (tuple(self),))
+
+ def __repr__(self):
+ return (f'{self.__class__.__name__}'
+ f'(year={self[0]}, week={self[1]}, weekday={self[2]})')
+
+
+_IsoCalendarDate = IsoCalendarDate
+del IsoCalendarDate
_tzinfo_class = tzinfo
class time:
@@ -1344,31 +1344,31 @@ class time:
if isinstance(other, time):
return self._cmp(other, allow_mixed=True) == 0
else:
- return NotImplemented
+ return NotImplemented
def __le__(self, other):
if isinstance(other, time):
return self._cmp(other) <= 0
else:
- return NotImplemented
+ return NotImplemented
def __lt__(self, other):
if isinstance(other, time):
return self._cmp(other) < 0
else:
- return NotImplemented
+ return NotImplemented
def __ge__(self, other):
if isinstance(other, time):
return self._cmp(other) >= 0
else:
- return NotImplemented
+ return NotImplemented
def __gt__(self, other):
if isinstance(other, time):
return self._cmp(other) > 0
else:
- return NotImplemented
+ return NotImplemented
def _cmp(self, other, allow_mixed=False):
assert isinstance(other, time)
@@ -1452,8 +1452,8 @@ class time:
part is omitted if self.microsecond == 0.
The optional argument timespec specifies the number of additional
- terms of the time to include. Valid options are 'auto', 'hours',
- 'minutes', 'seconds', 'milliseconds' and 'microseconds'.
+ terms of the time to include. Valid options are 'auto', 'hours',
+ 'minutes', 'seconds', 'milliseconds' and 'microseconds'.
"""
s = _format_time(self._hour, self._minute, self._second,
self._microsecond, timespec)
@@ -1579,7 +1579,7 @@ class time:
self._tzinfo = tzinfo
def __reduce_ex__(self, protocol):
- return (self.__class__, self._getstate(protocol))
+ return (self.__class__, self._getstate(protocol))
def __reduce__(self):
return self.__reduce_ex__(2)
@@ -1590,7 +1590,7 @@ time.min = time(0, 0, 0)
time.max = time(23, 59, 59, 999999)
time.resolution = timedelta(microseconds=1)
-
+
class datetime(date):
"""datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
@@ -1883,10 +1883,10 @@ class datetime(date):
ts = (self - _EPOCH) // timedelta(seconds=1)
localtm = _time.localtime(ts)
local = datetime(*localtm[:6])
- # Extract TZ data
- gmtoff = localtm.tm_gmtoff
- zone = localtm.tm_zone
- return timezone(timedelta(seconds=gmtoff), zone)
+ # Extract TZ data
+ gmtoff = localtm.tm_gmtoff
+ zone = localtm.tm_zone
+ return timezone(timedelta(seconds=gmtoff), zone)
def astimezone(self, tz=None):
if tz is None:
@@ -1938,8 +1938,8 @@ class datetime(date):
time, default 'T'.
The optional argument timespec specifies the number of additional
- terms of the time to include. Valid options are 'auto', 'hours',
- 'minutes', 'seconds', 'milliseconds' and 'microseconds'.
+ terms of the time to include. Valid options are 'auto', 'hours',
+ 'minutes', 'seconds', 'milliseconds' and 'microseconds'.
"""
s = ("%04d-%02d-%02d%c" % (self._year, self._month, self._day, sep) +
_format_time(self._hour, self._minute, self._second,
@@ -2110,10 +2110,10 @@ class datetime(date):
hour, rem = divmod(delta.seconds, 3600)
minute, second = divmod(rem, 60)
if 0 < delta.days <= _MAXORDINAL:
- return type(self).combine(date.fromordinal(delta.days),
- time(hour, minute, second,
- delta.microseconds,
- tzinfo=self._tzinfo))
+ return type(self).combine(date.fromordinal(delta.days),
+ time(hour, minute, second,
+ delta.microseconds,
+ tzinfo=self._tzinfo))
raise OverflowError("result out of range")
__radd__ = __add__
@@ -2212,7 +2212,7 @@ def _isoweek1monday(year):
week1monday += 7
return week1monday
-
+
class timezone(tzinfo):
__slots__ = '_offset', '_name'
@@ -2247,9 +2247,9 @@ class timezone(tzinfo):
return (self._offset, self._name)
def __eq__(self, other):
- if isinstance(other, timezone):
- return self._offset == other._offset
- return NotImplemented
+ if isinstance(other, timezone):
+ return self._offset == other._offset
+ return NotImplemented
def __hash__(self):
return hash(self._offset)
@@ -2306,7 +2306,7 @@ class timezone(tzinfo):
raise TypeError("fromutc() argument must be a datetime instance"
" or None")
- _maxoffset = timedelta(hours=24, microseconds=-1)
+ _maxoffset = timedelta(hours=24, microseconds=-1)
_minoffset = -_maxoffset
@staticmethod
@@ -2330,11 +2330,11 @@ class timezone(tzinfo):
return f'UTC{sign}{hours:02d}:{minutes:02d}'
timezone.utc = timezone._create(timedelta(0))
-# bpo-37642: These attributes are rounded to the nearest minute for backwards
-# compatibility, even though the constructor will accept a wider range of
-# values. This may change in the future.
-timezone.min = timezone._create(-timedelta(hours=23, minutes=59))
-timezone.max = timezone._create(timedelta(hours=23, minutes=59))
+# bpo-37642: These attributes are rounded to the nearest minute for backwards
+# compatibility, even though the constructor will accept a wider range of
+# values. This may change in the future.
+timezone.min = timezone._create(-timedelta(hours=23, minutes=59))
+timezone.max = timezone._create(timedelta(hours=23, minutes=59))
_EPOCH = datetime(1970, 1, 1, tzinfo=timezone.utc)
# Some time zone algebra. For a datetime x, let
@@ -2358,7 +2358,7 @@ _EPOCH = datetime(1970, 1, 1, tzinfo=timezone.utc)
# This is again a requirement for a sane tzinfo class.
#
# 4. (x+k).s = x.s
-# This follows from #2, and that datetime.timetz+timedelta preserves tzinfo.
+# This follows from #2, and that datetime.timetz+timedelta preserves tzinfo.
#
# 5. (x+k).n = x.n + k
# Again follows from how arithmetic is defined.
@@ -2547,7 +2547,7 @@ else:
_format_time, _format_offset, _is_leap, _isoweek1monday, _math,
_ord2ymd, _time, _time_class, _tzinfo_class, _wrap_strftime, _ymd2ord,
_divide_and_round, _parse_isoformat_date, _parse_isoformat_time,
- _parse_hh_mm_ss_ff, _IsoCalendarDate)
+ _parse_hh_mm_ss_ff, _IsoCalendarDate)
# XXX Since import * above excludes names that start with _,
# docstring does not get overwritten. In the future, it may be
# appropriate to maintain a single module level docstring and
diff --git a/contrib/tools/python3/src/Lib/dbm/__init__.py b/contrib/tools/python3/src/Lib/dbm/__init__.py
index fef8065a2b..f65da521af 100644
--- a/contrib/tools/python3/src/Lib/dbm/__init__.py
+++ b/contrib/tools/python3/src/Lib/dbm/__init__.py
@@ -82,8 +82,8 @@ def open(file, flag='r', mode=0o666):
# file doesn't exist and the new flag was used so use default type
mod = _defaultmod
else:
- raise error[0]("db file doesn't exist; "
- "use 'c' or 'n' flag to create a new db")
+ raise error[0]("db file doesn't exist; "
+ "use 'c' or 'n' flag to create a new db")
elif result == "":
# db type cannot be determined
raise error[0]("db type could not be determined")
diff --git a/contrib/tools/python3/src/Lib/dbm/dumb.py b/contrib/tools/python3/src/Lib/dbm/dumb.py
index 82b29dd6be..864ad371ec 100644
--- a/contrib/tools/python3/src/Lib/dbm/dumb.py
+++ b/contrib/tools/python3/src/Lib/dbm/dumb.py
@@ -82,7 +82,7 @@ class _Database(collections.abc.MutableMapping):
f = _io.open(self._datfile, 'r', encoding="Latin-1")
except OSError:
if flag not in ('c', 'n'):
- raise
+ raise
with _io.open(self._datfile, 'w', encoding="Latin-1") as f:
self._chmod(self._datfile)
else:
@@ -90,14 +90,14 @@ class _Database(collections.abc.MutableMapping):
# Read directory file into the in-memory index dict.
def _update(self, flag):
- self._modified = False
+ self._modified = False
self._index = {}
try:
f = _io.open(self._dirfile, 'r', encoding="Latin-1")
except OSError:
if flag not in ('c', 'n'):
- raise
- self._modified = True
+ raise
+ self._modified = True
else:
with f:
for line in f:
@@ -185,7 +185,7 @@ class _Database(collections.abc.MutableMapping):
def __setitem__(self, key, val):
if self._readonly:
- raise error('The database is opened for reading only')
+ raise error('The database is opened for reading only')
if isinstance(key, str):
key = key.encode('utf-8')
elif not isinstance(key, (bytes, bytearray)):
@@ -222,7 +222,7 @@ class _Database(collections.abc.MutableMapping):
def __delitem__(self, key):
if self._readonly:
- raise error('The database is opened for reading only')
+ raise error('The database is opened for reading only')
if isinstance(key, str):
key = key.encode('utf-8')
self._verify_open()
@@ -278,7 +278,7 @@ class _Database(collections.abc.MutableMapping):
__del__ = close
def _chmod(self, file):
- self._os.chmod(file, self._mode)
+ self._os.chmod(file, self._mode)
def __enter__(self):
return self
@@ -312,5 +312,5 @@ def open(file, flag='c', mode=0o666):
# Turn off any bits that are set in the umask
mode = mode & (~um)
if flag not in ('r', 'w', 'c', 'n'):
- raise ValueError("Flag must be one of 'r', 'w', 'c', or 'n'")
+ raise ValueError("Flag must be one of 'r', 'w', 'c', or 'n'")
return _Database(file, mode, flag=flag)
diff --git a/contrib/tools/python3/src/Lib/difflib.py b/contrib/tools/python3/src/Lib/difflib.py
index 0e4afb59ce..afd8a0c7c5 100644
--- a/contrib/tools/python3/src/Lib/difflib.py
+++ b/contrib/tools/python3/src/Lib/difflib.py
@@ -32,7 +32,7 @@ __all__ = ['get_close_matches', 'ndiff', 'restore', 'SequenceMatcher',
from heapq import nlargest as _nlargest
from collections import namedtuple as _namedtuple
-from types import GenericAlias
+from types import GenericAlias
Match = _namedtuple('Match', 'a b size')
@@ -62,7 +62,7 @@ class SequenceMatcher:
notion, pairing up elements that appear uniquely in each sequence.
That, and the method here, appear to yield more intuitive difference
reports than does diff. This method appears to be the least vulnerable
- to syncing up on blocks of "junk lines", though (like blank lines in
+ to syncing up on blocks of "junk lines", though (like blank lines in
ordinary text files, or maybe "<P>" lines in HTML files). That may be
because this is the only method of the 3 that has a *concept* of
"junk" <wink>.
@@ -302,11 +302,11 @@ class SequenceMatcher:
for elt in popular: # ditto; as fast for 1% deletion
del b2j[elt]
- def find_longest_match(self, alo=0, ahi=None, blo=0, bhi=None):
+ def find_longest_match(self, alo=0, ahi=None, blo=0, bhi=None):
"""Find longest matching block in a[alo:ahi] and b[blo:bhi].
- By default it will find the longest match in the entirety of a and b.
-
+ By default it will find the longest match in the entirety of a and b.
+
If isjunk is not defined:
Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where
@@ -361,10 +361,10 @@ class SequenceMatcher:
# the unique 'b's and then matching the first two 'a's.
a, b, b2j, isbjunk = self.a, self.b, self.b2j, self.bjunk.__contains__
- if ahi is None:
- ahi = len(a)
- if bhi is None:
- bhi = len(b)
+ if ahi is None:
+ ahi = len(a)
+ if bhi is None:
+ bhi = len(b)
besti, bestj, bestsize = alo, blo, 0
# find longest junk-free match
# during an iteration of the loop, j2len[j] = length of longest
@@ -660,9 +660,9 @@ class SequenceMatcher:
# shorter sequence
return _calculate_ratio(min(la, lb), la + lb)
- __class_getitem__ = classmethod(GenericAlias)
-
-
+ __class_getitem__ = classmethod(GenericAlias)
+
+
def get_close_matches(word, possibilities, n=3, cutoff=0.6):
"""Use SequenceMatcher to return list of the best "good enough" matches.
@@ -712,12 +712,12 @@ def get_close_matches(word, possibilities, n=3, cutoff=0.6):
return [x for score, x in result]
-def _keep_original_ws(s, tag_s):
- """Replace whitespace with the original whitespace characters in `s`"""
- return ''.join(
- c if tag_c == " " and c.isspace() else tag_c
- for c, tag_c in zip(s, tag_s)
- )
+def _keep_original_ws(s, tag_s):
+ """Replace whitespace with the original whitespace characters in `s`"""
+ return ''.join(
+ c if tag_c == " " and c.isspace() else tag_c
+ for c, tag_c in zip(s, tag_s)
+ )
@@ -998,7 +998,7 @@ class Differ:
def _qformat(self, aline, bline, atags, btags):
r"""
- Format "?" output and deal with tabs.
+ Format "?" output and deal with tabs.
Example:
@@ -1012,16 +1012,16 @@ class Differ:
'+ \tabcdefGhijkl\n'
'? \t ^ ^ ^\n'
"""
- atags = _keep_original_ws(aline, atags).rstrip()
- btags = _keep_original_ws(bline, btags).rstrip()
+ atags = _keep_original_ws(aline, atags).rstrip()
+ btags = _keep_original_ws(bline, btags).rstrip()
yield "- " + aline
if atags:
- yield f"? {atags}\n"
+ yield f"? {atags}\n"
yield "+ " + bline
if btags:
- yield f"? {btags}\n"
+ yield f"? {btags}\n"
# With respect to junk, an earlier version of ndiff simply refused to
# *start* a match with a junk element. The result was cases like this:
@@ -1044,7 +1044,7 @@ import re
def IS_LINE_JUNK(line, pat=re.compile(r"\s*(?:#\s*)?$").match):
r"""
- Return True for ignorable line: iff `line` is blank or contains a single '#'.
+ Return True for ignorable line: iff `line` is blank or contains a single '#'.
Examples:
@@ -1060,7 +1060,7 @@ def IS_LINE_JUNK(line, pat=re.compile(r"\s*(?:#\s*)?$").match):
def IS_CHARACTER_JUNK(ch, ws=" \t"):
r"""
- Return True for ignorable character: iff `ch` is a space or tab.
+ Return True for ignorable character: iff `ch` is a space or tab.
Examples:
diff --git a/contrib/tools/python3/src/Lib/dis.py b/contrib/tools/python3/src/Lib/dis.py
index dbd0661464..e289e176c7 100644
--- a/contrib/tools/python3/src/Lib/dis.py
+++ b/contrib/tools/python3/src/Lib/dis.py
@@ -17,16 +17,16 @@ _have_code = (types.MethodType, types.FunctionType, types.CodeType,
classmethod, staticmethod, type)
FORMAT_VALUE = opmap['FORMAT_VALUE']
-FORMAT_VALUE_CONVERTERS = (
- (None, ''),
- (str, 'str'),
- (repr, 'repr'),
- (ascii, 'ascii'),
-)
-MAKE_FUNCTION = opmap['MAKE_FUNCTION']
-MAKE_FUNCTION_FLAGS = ('defaults', 'kwdefaults', 'annotations', 'closure')
-
-
+FORMAT_VALUE_CONVERTERS = (
+ (None, ''),
+ (str, 'str'),
+ (repr, 'repr'),
+ (ascii, 'ascii'),
+)
+MAKE_FUNCTION = opmap['MAKE_FUNCTION']
+MAKE_FUNCTION_FLAGS = ('defaults', 'kwdefaults', 'annotations', 'closure')
+
+
def _try_compile(source, name):
"""Attempts to compile the given source, first as an expression and
then as a statement if the first approach fails.
@@ -157,7 +157,7 @@ def _format_code_info(co):
lines.append("Name: %s" % co.co_name)
lines.append("Filename: %s" % co.co_filename)
lines.append("Argument count: %s" % co.co_argcount)
- lines.append("Positional-only arguments: %s" % co.co_posonlyargcount)
+ lines.append("Positional-only arguments: %s" % co.co_posonlyargcount)
lines.append("Kw-only arguments: %s" % co.co_kwonlyargcount)
lines.append("Number of locals: %s" % co.co_nlocals)
lines.append("Stack size: %s" % co.co_stacksize)
@@ -349,15 +349,15 @@ def _get_instructions_bytes(code, varnames=None, names=None, constants=None,
elif op in hasfree:
argval, argrepr = _get_name_info(arg, cells)
elif op == FORMAT_VALUE:
- argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
- argval = (argval, bool(arg & 0x4))
+ argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
+ argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
- elif op == MAKE_FUNCTION:
- argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
- if arg & (1<<i))
+ elif op == MAKE_FUNCTION:
+ argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
+ if arg & (1<<i))
yield Instruction(opname[op], op,
arg, argval, argrepr,
offset, starts_line, is_jump_target)
@@ -454,7 +454,7 @@ def findlinestarts(code):
"""
byte_increments = code.co_lnotab[0::2]
line_increments = code.co_lnotab[1::2]
- bytecode_len = len(code.co_code)
+ bytecode_len = len(code.co_code)
lastlineno = None
lineno = code.co_firstlineno
@@ -465,10 +465,10 @@ def findlinestarts(code):
yield (addr, lineno)
lastlineno = lineno
addr += byte_incr
- if addr >= bytecode_len:
- # The rest of the lnotab byte offsets are past the end of
- # the bytecode, so the lines were optimized away.
- return
+ if addr >= bytecode_len:
+ # The rest of the lnotab byte offsets are past the end of
+ # the bytecode, so the lines were optimized away.
+ return
if line_incr >= 0x80:
# line_increments is an array of 8-bit signed integers
line_incr -= 0x100
@@ -542,7 +542,7 @@ def _test():
import argparse
parser = argparse.ArgumentParser()
- parser.add_argument('infile', type=argparse.FileType('rb'), nargs='?', default='-')
+ parser.add_argument('infile', type=argparse.FileType('rb'), nargs='?', default='-')
args = parser.parse_args()
with args.infile as infile:
source = infile.read()
diff --git a/contrib/tools/python3/src/Lib/distutils/_msvccompiler.py b/contrib/tools/python3/src/Lib/distutils/_msvccompiler.py
index 24bc487321..af8099a407 100644
--- a/contrib/tools/python3/src/Lib/distutils/_msvccompiler.py
+++ b/contrib/tools/python3/src/Lib/distutils/_msvccompiler.py
@@ -85,15 +85,15 @@ def _find_vc2017():
return None, None
-PLAT_SPEC_TO_RUNTIME = {
- 'x86' : 'x86',
- 'x86_amd64' : 'x64',
- 'x86_arm' : 'arm',
- 'x86_arm64' : 'arm64'
-}
-
+PLAT_SPEC_TO_RUNTIME = {
+ 'x86' : 'x86',
+ 'x86_amd64' : 'x64',
+ 'x86_arm' : 'arm',
+ 'x86_arm64' : 'arm64'
+}
+
def _find_vcvarsall(plat_spec):
- # bpo-38597: Removed vcruntime return value
+ # bpo-38597: Removed vcruntime return value
_, best_dir = _find_vc2017()
if not best_dir:
@@ -108,7 +108,7 @@ def _find_vcvarsall(plat_spec):
log.debug("%s cannot be found", vcvarsall)
return None, None
- return vcvarsall, None
+ return vcvarsall, None
def _get_vc_env(plat_spec):
if os.getenv("DISTUTILS_USE_SDK"):
@@ -117,7 +117,7 @@ def _get_vc_env(plat_spec):
for key, value in os.environ.items()
}
- vcvarsall, _ = _find_vcvarsall(plat_spec)
+ vcvarsall, _ = _find_vcvarsall(plat_spec)
if not vcvarsall:
raise DistutilsPlatformError("Unable to find vcvarsall.bat")
@@ -163,8 +163,8 @@ def _find_exe(exe, paths=None):
PLAT_TO_VCVARS = {
'win32' : 'x86',
'win-amd64' : 'x86_amd64',
- 'win-arm32' : 'x86_arm',
- 'win-arm64' : 'x86_arm64'
+ 'win-arm32' : 'x86_arm',
+ 'win-arm64' : 'x86_arm64'
}
class MSVCCompiler(CCompiler) :
@@ -240,11 +240,11 @@ class MSVCCompiler(CCompiler) :
self.add_library_dir(dir.rstrip(os.sep))
self.preprocess_options = None
- # bpo-38597: Always compile with dynamic linking
- # Future releases of Python 3.x will include all past
- # versions of vcruntime*.dll for compatibility.
+ # bpo-38597: Always compile with dynamic linking
+ # Future releases of Python 3.x will include all past
+ # versions of vcruntime*.dll for compatibility.
self.compile_options = [
- '/nologo', '/Ox', '/W3', '/GL', '/DNDEBUG', '/MD'
+ '/nologo', '/Ox', '/W3', '/GL', '/DNDEBUG', '/MD'
]
self.compile_options_debug = [
diff --git a/contrib/tools/python3/src/Lib/distutils/archive_util.py b/contrib/tools/python3/src/Lib/distutils/archive_util.py
index 3c711a085d..565a3117b4 100644
--- a/contrib/tools/python3/src/Lib/distutils/archive_util.py
+++ b/contrib/tools/python3/src/Lib/distutils/archive_util.py
@@ -166,21 +166,21 @@ def make_zipfile(base_name, base_dir, verbose=0, dry_run=0):
zip = zipfile.ZipFile(zip_filename, "w",
compression=zipfile.ZIP_STORED)
- with zip:
- if base_dir != os.curdir:
- path = os.path.normpath(os.path.join(base_dir, ''))
+ with zip:
+ if base_dir != os.curdir:
+ path = os.path.normpath(os.path.join(base_dir, ''))
zip.write(path, path)
log.info("adding '%s'", path)
- for dirpath, dirnames, filenames in os.walk(base_dir):
- for name in dirnames:
- path = os.path.normpath(os.path.join(dirpath, name, ''))
+ for dirpath, dirnames, filenames in os.walk(base_dir):
+ for name in dirnames:
+ path = os.path.normpath(os.path.join(dirpath, name, ''))
zip.write(path, path)
log.info("adding '%s'", path)
- for name in filenames:
- path = os.path.normpath(os.path.join(dirpath, name))
- if os.path.isfile(path):
- zip.write(path, path)
- log.info("adding '%s'", path)
+ for name in filenames:
+ path = os.path.normpath(os.path.join(dirpath, name))
+ if os.path.isfile(path):
+ zip.write(path, path)
+ log.info("adding '%s'", path)
return zip_filename
diff --git a/contrib/tools/python3/src/Lib/distutils/bcppcompiler.py b/contrib/tools/python3/src/Lib/distutils/bcppcompiler.py
index d0603271ff..071fea5d03 100644
--- a/contrib/tools/python3/src/Lib/distutils/bcppcompiler.py
+++ b/contrib/tools/python3/src/Lib/distutils/bcppcompiler.py
@@ -14,10 +14,10 @@ for the Borland C++ compiler.
import os
from distutils.errors import \
- DistutilsExecError, \
+ DistutilsExecError, \
CompileError, LibError, LinkError, UnknownFileError
from distutils.ccompiler import \
- CCompiler, gen_preprocess_options
+ CCompiler, gen_preprocess_options
from distutils.file_util import write_file
from distutils.dep_util import newer
from distutils import log
diff --git a/contrib/tools/python3/src/Lib/distutils/ccompiler.py b/contrib/tools/python3/src/Lib/distutils/ccompiler.py
index 3c8c35f0a8..4c47f2ed24 100644
--- a/contrib/tools/python3/src/Lib/distutils/ccompiler.py
+++ b/contrib/tools/python3/src/Lib/distutils/ccompiler.py
@@ -8,7 +8,7 @@ from distutils.errors import *
from distutils.spawn import spawn
from distutils.file_util import move_file
from distutils.dir_util import mkpath
-from distutils.dep_util import newer_group
+from distutils.dep_util import newer_group
from distutils.util import split_quoted, execute
from distutils import log
@@ -392,7 +392,7 @@ class CCompiler:
return output_dir, macros, include_dirs
def _prep_compile(self, sources, output_dir, depends=None):
- """Decide which source files must be recompiled.
+ """Decide which source files must be recompiled.
Determine the list of object files corresponding to 'sources',
and figure out which ones really need to be recompiled.
@@ -545,7 +545,7 @@ class CCompiler:
'extra_preargs' and 'extra_postargs' are implementation- dependent.
On platforms that have the notion of a command-line (e.g. Unix,
DOS/Windows), they are most likely lists of strings: extra
- command-line arguments to prepend/append to the compiler command
+ command-line arguments to prepend/append to the compiler command
line. On other platforms, consult the implementation class
documentation. In any event, they are intended as an escape hatch
for those occasions when the abstract compiler framework doesn't
@@ -781,9 +781,9 @@ class CCompiler:
for incl in includes:
f.write("""#include "%s"\n""" % incl)
f.write("""\
-int main (int argc, char **argv) {
+int main (int argc, char **argv) {
%s();
- return 0;
+ return 0;
}
""" % funcname)
finally:
diff --git a/contrib/tools/python3/src/Lib/distutils/command/bdist_msi.py b/contrib/tools/python3/src/Lib/distutils/command/bdist_msi.py
index 8ab133e18e..0863a1883e 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/bdist_msi.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/bdist_msi.py
@@ -6,9 +6,9 @@
Implements the bdist_msi command.
"""
-import os
-import sys
-import warnings
+import os
+import sys
+import warnings
from distutils.core import Command
from distutils.dir_util import remove_tree
from distutils.sysconfig import get_python_version
@@ -124,12 +124,12 @@ class bdist_msi(Command):
'3.5', '3.6', '3.7', '3.8', '3.9']
other_version = 'X'
- def __init__(self, *args, **kw):
- super().__init__(*args, **kw)
- warnings.warn("bdist_msi command is deprecated since Python 3.9, "
- "use bdist_wheel (wheel packages) instead",
- DeprecationWarning, 2)
-
+ def __init__(self, *args, **kw):
+ super().__init__(*args, **kw)
+ warnings.warn("bdist_msi command is deprecated since Python 3.9, "
+ "use bdist_wheel (wheel packages) instead",
+ DeprecationWarning, 2)
+
def initialize_options(self):
self.bdist_dir = None
self.plat_name = None
@@ -398,18 +398,18 @@ class bdist_msi(Command):
# entries for each version as the above code does
if self.pre_install_script:
scriptfn = os.path.join(self.bdist_dir, "preinstall.bat")
- with open(scriptfn, "w") as f:
- # The batch file will be executed with [PYTHON], so that %1
- # is the path to the Python interpreter; %0 will be the path
- # of the batch file.
- # rem ="""
- # %1 %0
- # exit
- # """
- # <actual script>
- f.write('rem ="""\n%1 %0\nexit\n"""\n')
- with open(self.pre_install_script) as fin:
- f.write(fin.read())
+ with open(scriptfn, "w") as f:
+ # The batch file will be executed with [PYTHON], so that %1
+ # is the path to the Python interpreter; %0 will be the path
+ # of the batch file.
+ # rem ="""
+ # %1 %0
+ # exit
+ # """
+ # <actual script>
+ f.write('rem ="""\n%1 %0\nexit\n"""\n')
+ with open(self.pre_install_script) as fin:
+ f.write(fin.read())
add_data(self.db, "Binary",
[("PreInstall", msilib.Binary(scriptfn))
])
diff --git a/contrib/tools/python3/src/Lib/distutils/command/bdist_rpm.py b/contrib/tools/python3/src/Lib/distutils/command/bdist_rpm.py
index da98ce6a47..550cbfa1e2 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/bdist_rpm.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/bdist_rpm.py
@@ -308,7 +308,7 @@ class bdist_rpm(Command):
# build package
log.info("building RPMs")
- rpm_cmd = ['rpmbuild']
+ rpm_cmd = ['rpmbuild']
if self.source_only: # what kind of RPMs?
rpm_cmd.append('-bs')
@@ -533,8 +533,8 @@ class bdist_rpm(Command):
'',
'%' + rpm_opt,])
if val:
- with open(val) as f:
- spec_file.extend(f.read().split('\n'))
+ with open(val) as f:
+ spec_file.extend(f.read().split('\n'))
else:
spec_file.append(default)
diff --git a/contrib/tools/python3/src/Lib/distutils/command/bdist_wininst.py b/contrib/tools/python3/src/Lib/distutils/command/bdist_wininst.py
index 86602327cf..0e9ddaa214 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/bdist_wininst.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/bdist_wininst.py
@@ -3,12 +3,12 @@
Implements the Distutils 'bdist_wininst' command: create a windows installer
exe-program."""
-import os
-import sys
-import warnings
+import os
+import sys
+import warnings
from distutils.core import Command
from distutils.util import get_platform
-from distutils.dir_util import remove_tree
+from distutils.dir_util import remove_tree
from distutils.errors import *
from distutils.sysconfig import get_python_version
from distutils import log
@@ -57,15 +57,15 @@ class bdist_wininst(Command):
boolean_options = ['keep-temp', 'no-target-compile', 'no-target-optimize',
'skip-build']
- # bpo-10945: bdist_wininst requires mbcs encoding only available on Windows
- _unsupported = (sys.platform != "win32")
-
- def __init__(self, *args, **kw):
- super().__init__(*args, **kw)
- warnings.warn("bdist_wininst command is deprecated since Python 3.8, "
- "use bdist_wheel (wheel packages) instead",
- DeprecationWarning, 2)
-
+ # bpo-10945: bdist_wininst requires mbcs encoding only available on Windows
+ _unsupported = (sys.platform != "win32")
+
+ def __init__(self, *args, **kw):
+ super().__init__(*args, **kw)
+ warnings.warn("bdist_wininst command is deprecated since Python 3.8, "
+ "use bdist_wheel (wheel packages) instead",
+ DeprecationWarning, 2)
+
def initialize_options(self):
self.bdist_dir = None
self.plat_name = None
@@ -258,49 +258,49 @@ class bdist_wininst(Command):
self.announce("creating %s" % installer_name)
if bitmap:
- with open(bitmap, "rb") as f:
- bitmapdata = f.read()
+ with open(bitmap, "rb") as f:
+ bitmapdata = f.read()
bitmaplen = len(bitmapdata)
else:
bitmaplen = 0
- with open(installer_name, "wb") as file:
- file.write(self.get_exe_bytes())
- if bitmap:
- file.write(bitmapdata)
+ with open(installer_name, "wb") as file:
+ file.write(self.get_exe_bytes())
+ if bitmap:
+ file.write(bitmapdata)
- # Convert cfgdata from unicode to ascii, mbcs encoded
- if isinstance(cfgdata, str):
- cfgdata = cfgdata.encode("mbcs")
+ # Convert cfgdata from unicode to ascii, mbcs encoded
+ if isinstance(cfgdata, str):
+ cfgdata = cfgdata.encode("mbcs")
- # Append the pre-install script
+ # Append the pre-install script
cfgdata = cfgdata + b"\0"
- if self.pre_install_script:
- # We need to normalize newlines, so we open in text mode and
- # convert back to bytes. "latin-1" simply avoids any possible
- # failures.
- with open(self.pre_install_script, "r",
- encoding="latin-1") as script:
- script_data = script.read().encode("latin-1")
- cfgdata = cfgdata + script_data + b"\n\0"
- else:
- # empty pre-install script
- cfgdata = cfgdata + b"\0"
- file.write(cfgdata)
-
- # The 'magic number' 0x1234567B is used to make sure that the
- # binary layout of 'cfgdata' is what the wininst.exe binary
- # expects. If the layout changes, increment that number, make
- # the corresponding changes to the wininst.exe sources, and
- # recompile them.
- header = struct.pack("<iii",
- 0x1234567B, # tag
- len(cfgdata), # length
- bitmaplen, # number of bytes in bitmap
- )
- file.write(header)
- with open(arcname, "rb") as f:
- file.write(f.read())
+ if self.pre_install_script:
+ # We need to normalize newlines, so we open in text mode and
+ # convert back to bytes. "latin-1" simply avoids any possible
+ # failures.
+ with open(self.pre_install_script, "r",
+ encoding="latin-1") as script:
+ script_data = script.read().encode("latin-1")
+ cfgdata = cfgdata + script_data + b"\n\0"
+ else:
+ # empty pre-install script
+ cfgdata = cfgdata + b"\0"
+ file.write(cfgdata)
+
+ # The 'magic number' 0x1234567B is used to make sure that the
+ # binary layout of 'cfgdata' is what the wininst.exe binary
+ # expects. If the layout changes, increment that number, make
+ # the corresponding changes to the wininst.exe sources, and
+ # recompile them.
+ header = struct.pack("<iii",
+ 0x1234567B, # tag
+ len(cfgdata), # length
+ bitmaplen, # number of bytes in bitmap
+ )
+ file.write(header)
+ with open(arcname, "rb") as f:
+ file.write(f.read())
def get_installer_filename(self, fullname):
# Factored out to allow overriding in subclasses
diff --git a/contrib/tools/python3/src/Lib/distutils/command/build.py b/contrib/tools/python3/src/Lib/distutils/command/build.py
index fcdb21192e..a86df0bc7f 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/build.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/build.py
@@ -116,7 +116,7 @@ class build(Command):
self.build_scripts = os.path.join(self.build_base,
'scripts-%d.%d' % sys.version_info[:2])
- if self.executable is None and sys.executable:
+ if self.executable is None and sys.executable:
self.executable = os.path.normpath(sys.executable)
if isinstance(self.parallel, str):
diff --git a/contrib/tools/python3/src/Lib/distutils/command/build_ext.py b/contrib/tools/python3/src/Lib/distutils/command/build_ext.py
index 0785ec2bcb..1a9bd1200f 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/build_ext.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/build_ext.py
@@ -490,8 +490,8 @@ class build_ext(Command):
"in 'ext_modules' option (extension '%s'), "
"'sources' must be present and must be "
"a list of source filenames" % ext.name)
- # sort to make the resulting .so file build reproducible
- sources = sorted(sources)
+ # sort to make the resulting .so file build reproducible
+ sources = sorted(sources)
ext_path = self.get_ext_fullpath(ext.name)
depends = sources + ext.depends
@@ -689,15 +689,15 @@ class build_ext(Command):
provided, "PyInit_" + module_name. Only relevant on Windows, where
the .pyd file (DLL) must export the module "PyInit_" function.
"""
- suffix = '_' + ext.name.split('.')[-1]
- try:
- # Unicode module name support as defined in PEP-489
- # https://www.python.org/dev/peps/pep-0489/#export-hook-name
- suffix.encode('ascii')
- except UnicodeEncodeError:
- suffix = 'U' + suffix.encode('punycode').replace(b'-', b'_').decode('ascii')
-
- initfunc_name = "PyInit" + suffix
+ suffix = '_' + ext.name.split('.')[-1]
+ try:
+ # Unicode module name support as defined in PEP-489
+ # https://www.python.org/dev/peps/pep-0489/#export-hook-name
+ suffix.encode('ascii')
+ except UnicodeEncodeError:
+ suffix = 'U' + suffix.encode('punycode').replace(b'-', b'_').decode('ascii')
+
+ initfunc_name = "PyInit" + suffix
if initfunc_name not in ext.export_symbols:
ext.export_symbols.append(initfunc_name)
return ext.export_symbols
@@ -724,31 +724,31 @@ class build_ext(Command):
# extensions, it is a reference to the original list
return ext.libraries + [pythonlib]
else:
- # On Android only the main executable and LD_PRELOADs are considered
- # to be RTLD_GLOBAL, all the dependencies of the main executable
- # remain RTLD_LOCAL and so the shared libraries must be linked with
- # libpython when python is built with a shared python library (issue
- # bpo-21536).
- # On Cygwin (and if required, other POSIX-like platforms based on
- # Windows like MinGW) it is simply necessary that all symbols in
- # shared libraries are resolved at link time.
- from distutils.sysconfig import get_config_var
- link_libpython = False
- if get_config_var('Py_ENABLE_SHARED'):
- # A native build on an Android device or on Cygwin
- if hasattr(sys, 'getandroidapilevel'):
- link_libpython = True
- elif sys.platform == 'cygwin':
- link_libpython = True
- elif '_PYTHON_HOST_PLATFORM' in os.environ:
- # We are cross-compiling for one of the relevant platforms
- if get_config_var('ANDROID_API_LEVEL') != 0:
- link_libpython = True
- elif get_config_var('MACHDEP') == 'cygwin':
- link_libpython = True
-
- if link_libpython:
- ldversion = get_config_var('LDVERSION')
- return ext.libraries + ['python' + ldversion]
-
- return ext.libraries
+ # On Android only the main executable and LD_PRELOADs are considered
+ # to be RTLD_GLOBAL, all the dependencies of the main executable
+ # remain RTLD_LOCAL and so the shared libraries must be linked with
+ # libpython when python is built with a shared python library (issue
+ # bpo-21536).
+ # On Cygwin (and if required, other POSIX-like platforms based on
+ # Windows like MinGW) it is simply necessary that all symbols in
+ # shared libraries are resolved at link time.
+ from distutils.sysconfig import get_config_var
+ link_libpython = False
+ if get_config_var('Py_ENABLE_SHARED'):
+ # A native build on an Android device or on Cygwin
+ if hasattr(sys, 'getandroidapilevel'):
+ link_libpython = True
+ elif sys.platform == 'cygwin':
+ link_libpython = True
+ elif '_PYTHON_HOST_PLATFORM' in os.environ:
+ # We are cross-compiling for one of the relevant platforms
+ if get_config_var('ANDROID_API_LEVEL') != 0:
+ link_libpython = True
+ elif get_config_var('MACHDEP') == 'cygwin':
+ link_libpython = True
+
+ if link_libpython:
+ ldversion = get_config_var('LDVERSION')
+ return ext.libraries + ['python' + ldversion]
+
+ return ext.libraries
diff --git a/contrib/tools/python3/src/Lib/distutils/command/build_py.py b/contrib/tools/python3/src/Lib/distutils/command/build_py.py
index 6a830d9e41..edc2171cd1 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/build_py.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/build_py.py
@@ -5,7 +5,7 @@ Implements the Distutils 'build_py' command."""
import os
import importlib.util
import sys
-import glob
+import glob
from distutils.core import Command
from distutils.errors import *
@@ -125,7 +125,7 @@ class build_py (Command):
files = []
for pattern in globs:
# Each pattern has to be converted to a platform-specific path
- filelist = glob.glob(os.path.join(glob.escape(src_dir), convert_path(pattern)))
+ filelist = glob.glob(os.path.join(glob.escape(src_dir), convert_path(pattern)))
# Files that match more than one pattern are only added once
files.extend([fn for fn in filelist if fn not in files
and os.path.isfile(fn)])
@@ -216,7 +216,7 @@ class build_py (Command):
def find_package_modules(self, package, package_dir):
self.check_package(package, package_dir)
- module_files = glob.glob(os.path.join(glob.escape(package_dir), "*.py"))
+ module_files = glob.glob(os.path.join(glob.escape(package_dir), "*.py"))
modules = []
setup_script = os.path.abspath(self.distribution.script_name)
diff --git a/contrib/tools/python3/src/Lib/distutils/command/check.py b/contrib/tools/python3/src/Lib/distutils/command/check.py
index ee734cb1bc..73a30f3afd 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/check.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/check.py
@@ -79,12 +79,12 @@ class check(Command):
def check_metadata(self):
"""Ensures that all required elements of meta-data are supplied.
- Required fields:
- name, version, URL
+ Required fields:
+ name, version, URL
+
+ Recommended fields:
+ (author and author_email) or (maintainer and maintainer_email)
- Recommended fields:
- (author and author_email) or (maintainer and maintainer_email)
-
Warns if any are missing.
"""
metadata = self.distribution.metadata
@@ -99,15 +99,15 @@ class check(Command):
if metadata.author:
if not metadata.author_email:
self.warn("missing meta-data: if 'author' supplied, " +
- "'author_email' should be supplied too")
+ "'author_email' should be supplied too")
elif metadata.maintainer:
if not metadata.maintainer_email:
self.warn("missing meta-data: if 'maintainer' supplied, " +
- "'maintainer_email' should be supplied too")
+ "'maintainer_email' should be supplied too")
else:
self.warn("missing meta-data: either (author and author_email) " +
"or (maintainer and maintainer_email) " +
- "should be supplied")
+ "should be supplied")
def check_restructuredtext(self):
"""Checks if the long string fields are reST-compliant."""
@@ -122,8 +122,8 @@ class check(Command):
def _check_rst_data(self, data):
"""Returns warnings when the provided data doesn't compile."""
- # the include and csv_table directives need this to be a path
- source_path = self.distribution.script_name or 'setup.py'
+ # the include and csv_table directives need this to be a path
+ source_path = self.distribution.script_name or 'setup.py'
parser = Parser()
settings = frontend.OptionParser(components=(Parser,)).get_default_values()
settings.tab_width = 4
diff --git a/contrib/tools/python3/src/Lib/distutils/command/config.py b/contrib/tools/python3/src/Lib/distutils/command/config.py
index 316c2886c6..aeda408e73 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/config.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/config.py
@@ -106,14 +106,14 @@ class config(Command):
def _gen_temp_sourcefile(self, body, headers, lang):
filename = "_configtest" + LANG_EXT[lang]
- with open(filename, "w") as file:
- if headers:
- for header in headers:
- file.write("#include <%s>\n" % header)
- file.write("\n")
- file.write(body)
- if body[-1] != "\n":
- file.write("\n")
+ with open(filename, "w") as file:
+ if headers:
+ for header in headers:
+ file.write("#include <%s>\n" % header)
+ file.write("\n")
+ file.write(body)
+ if body[-1] != "\n":
+ file.write("\n")
return filename
def _preprocess(self, body, headers, include_dirs, lang):
@@ -202,15 +202,15 @@ class config(Command):
if isinstance(pattern, str):
pattern = re.compile(pattern)
- with open(out) as file:
- match = False
- while True:
- line = file.readline()
- if line == '':
- break
- if pattern.search(line):
- match = True
- break
+ with open(out) as file:
+ match = False
+ while True:
+ line = file.readline()
+ if line == '':
+ break
+ if pattern.search(line):
+ match = True
+ break
self._clean()
return match
diff --git a/contrib/tools/python3/src/Lib/distutils/command/install.py b/contrib/tools/python3/src/Lib/distutils/command/install.py
index 3f38e34363..aaa300efa9 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/install.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/install.py
@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
INSTALL_SCHEMES = {
'unix_prefix': {
'purelib': '$base/lib/python$py_version_short/site-packages',
- 'platlib': '$platbase/$platlibdir/python$py_version_short/site-packages',
+ 'platlib': '$platbase/$platlibdir/python$py_version_short/site-packages',
'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
},
'unix_home': {
'purelib': '$base/lib/python',
- 'platlib': '$base/$platlibdir/python',
+ 'platlib': '$base/$platlibdir/python',
'headers': '$base/include/python/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
@@ -223,7 +223,7 @@ class install(Command):
def finalize_options(self):
"""Finalizes options."""
- # This method (and its helpers, like 'finalize_unix()',
+ # This method (and its helpers, like 'finalize_unix()',
# 'finalize_other()', and 'select_scheme()') is where the default
# installation directories for modules, extension modules, and
# anything else we care to install from a Python module
@@ -298,7 +298,7 @@ class install(Command):
'sys_exec_prefix': exec_prefix,
'exec_prefix': exec_prefix,
'abiflags': abiflags,
- 'platlibdir': sys.platlibdir,
+ 'platlibdir': sys.platlibdir,
}
if HAS_USER_SITE:
diff --git a/contrib/tools/python3/src/Lib/distutils/command/sdist.py b/contrib/tools/python3/src/Lib/distutils/command/sdist.py
index eae03d8cce..b4996fcb1d 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/sdist.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/sdist.py
@@ -407,13 +407,13 @@ class sdist(Command):
distribution.
"""
log.info("reading manifest file '%s'", self.manifest)
- with open(self.manifest) as manifest:
- for line in manifest:
- # ignore comments and blank lines
- line = line.strip()
- if line.startswith('#') or not line:
- continue
- self.filelist.append(line)
+ with open(self.manifest) as manifest:
+ for line in manifest:
+ # ignore comments and blank lines
+ line = line.strip()
+ if line.startswith('#') or not line:
+ continue
+ self.filelist.append(line)
def make_release_tree(self, base_dir, files):
"""Create the directory tree that will become the source
diff --git a/contrib/tools/python3/src/Lib/distutils/command/upload.py b/contrib/tools/python3/src/Lib/distutils/command/upload.py
index d23a29c8ab..e0ecb655b9 100644
--- a/contrib/tools/python3/src/Lib/distutils/command/upload.py
+++ b/contrib/tools/python3/src/Lib/distutils/command/upload.py
@@ -9,24 +9,24 @@ import os
import io
import hashlib
from base64 import standard_b64encode
-from urllib.error import HTTPError
-from urllib.request import urlopen, Request
+from urllib.error import HTTPError
+from urllib.request import urlopen, Request
from urllib.parse import urlparse
from distutils.errors import DistutilsError, DistutilsOptionError
from distutils.core import PyPIRCCommand
from distutils.spawn import spawn
from distutils import log
-
-# PyPI Warehouse supports MD5, SHA256, and Blake2 (blake2-256)
-# https://bugs.python.org/issue40698
-_FILE_CONTENT_DIGESTS = {
- "md5_digest": getattr(hashlib, "md5", None),
- "sha256_digest": getattr(hashlib, "sha256", None),
- "blake2_256_digest": getattr(hashlib, "blake2b", None),
-}
-
-
+
+# PyPI Warehouse supports MD5, SHA256, and Blake2 (blake2-256)
+# https://bugs.python.org/issue40698
+_FILE_CONTENT_DIGESTS = {
+ "md5_digest": getattr(hashlib, "md5", None),
+ "sha256_digest": getattr(hashlib, "sha256", None),
+ "blake2_256_digest": getattr(hashlib, "blake2b", None),
+}
+
+
class upload(PyPIRCCommand):
description = "upload binary package to PyPI"
@@ -98,7 +98,7 @@ class upload(PyPIRCCommand):
content = f.read()
finally:
f.close()
-
+
meta = self.distribution.metadata
data = {
# action
@@ -132,22 +132,22 @@ class upload(PyPIRCCommand):
'obsoletes': meta.get_obsoletes(),
}
- data['comment'] = ''
-
- # file content digests
- for digest_name, digest_cons in _FILE_CONTENT_DIGESTS.items():
- if digest_cons is None:
- continue
- try:
- data[digest_name] = digest_cons(content).hexdigest()
- except ValueError:
- # hash digest not available or blocked by security policy
- pass
-
+ data['comment'] = ''
+
+ # file content digests
+ for digest_name, digest_cons in _FILE_CONTENT_DIGESTS.items():
+ if digest_cons is None:
+ continue
+ try:
+ data[digest_name] = digest_cons(content).hexdigest()
+ except ValueError:
+ # hash digest not available or blocked by security policy
+ pass
+
if self.sign:
- with open(filename + ".asc", "rb") as f:
- data['gpg_signature'] = (os.path.basename(filename) + ".asc",
- f.read())
+ with open(filename + ".asc", "rb") as f:
+ data['gpg_signature'] = (os.path.basename(filename) + ".asc",
+ f.read())
# set up the authentication
user_pass = (self.username + ":" + self.password).encode('ascii')
diff --git a/contrib/tools/python3/src/Lib/distutils/msvc9compiler.py b/contrib/tools/python3/src/Lib/distutils/msvc9compiler.py
index b4f36f44ad..a7976fbe3e 100644
--- a/contrib/tools/python3/src/Lib/distutils/msvc9compiler.py
+++ b/contrib/tools/python3/src/Lib/distutils/msvc9compiler.py
@@ -19,7 +19,7 @@ import re
from distutils.errors import DistutilsExecError, DistutilsPlatformError, \
CompileError, LibError, LinkError
-from distutils.ccompiler import CCompiler, gen_lib_options
+from distutils.ccompiler import CCompiler, gen_lib_options
from distutils import log
from distutils.util import get_platform
@@ -673,7 +673,7 @@ class MSVCCompiler(CCompiler) :
# If a manifest should be embedded, return a tuple of
# (manifest_filename, resource_id). Returns None if no manifest
# should be embedded. See http://bugs.python.org/issue7833 for why
- # we want to avoid any manifest for extension modules if we can.
+ # we want to avoid any manifest for extension modules if we can.
for arg in ld_args:
if arg.startswith("/MANIFESTFILE:"):
temp_manifest = arg.split(":", 1)[1]
diff --git a/contrib/tools/python3/src/Lib/distutils/msvccompiler.py b/contrib/tools/python3/src/Lib/distutils/msvccompiler.py
index cc2c16ae1b..d5857cb1ff 100644
--- a/contrib/tools/python3/src/Lib/distutils/msvccompiler.py
+++ b/contrib/tools/python3/src/Lib/distutils/msvccompiler.py
@@ -13,7 +13,7 @@ from distutils.errors import \
DistutilsExecError, DistutilsPlatformError, \
CompileError, LibError, LinkError
from distutils.ccompiler import \
- CCompiler, gen_lib_options
+ CCompiler, gen_lib_options
from distutils import log
_can_read_reg = False
diff --git a/contrib/tools/python3/src/Lib/distutils/spawn.py b/contrib/tools/python3/src/Lib/distutils/spawn.py
index 5ea8f7801d..31df3f7fac 100644
--- a/contrib/tools/python3/src/Lib/distutils/spawn.py
+++ b/contrib/tools/python3/src/Lib/distutils/spawn.py
@@ -8,18 +8,18 @@ executable name.
import sys
import os
-import subprocess
+import subprocess
from distutils.errors import DistutilsPlatformError, DistutilsExecError
from distutils.debug import DEBUG
from distutils import log
-
-if sys.platform == 'darwin':
- _cfg_target = None
- _cfg_target_split = None
-
-
+
+if sys.platform == 'darwin':
+ _cfg_target = None
+ _cfg_target_split = None
+
+
def spawn(cmd, search_path=1, verbose=0, dry_run=0):
"""Run another program, specified as a command list 'cmd', in a new process.
@@ -40,90 +40,90 @@ def spawn(cmd, search_path=1, verbose=0, dry_run=0):
# in, protect our %-formatting code against horrible death
cmd = list(cmd)
- log.info(' '.join(cmd))
- if dry_run:
- return
+ log.info(' '.join(cmd))
+ if dry_run:
+ return
if search_path:
- executable = find_executable(cmd[0])
- if executable is not None:
- cmd[0] = executable
+ executable = find_executable(cmd[0])
+ if executable is not None:
+ cmd[0] = executable
env = None
if sys.platform == 'darwin':
global _cfg_target, _cfg_target_split
if _cfg_target is None:
- from distutils import sysconfig
- _cfg_target = sysconfig.get_config_var(
- 'MACOSX_DEPLOYMENT_TARGET') or ''
+ from distutils import sysconfig
+ _cfg_target = sysconfig.get_config_var(
+ 'MACOSX_DEPLOYMENT_TARGET') or ''
if _cfg_target:
_cfg_target_split = [int(x) for x in _cfg_target.split('.')]
if _cfg_target:
- # Ensure that the deployment target of the build process is not
- # less than 10.3 if the interpreter was built for 10.3 or later.
- # This ensures extension modules are built with correct
- # compatibility values, specifically LDSHARED which can use
- # '-undefined dynamic_lookup' which only works on >= 10.3.
+ # Ensure that the deployment target of the build process is not
+ # less than 10.3 if the interpreter was built for 10.3 or later.
+ # This ensures extension modules are built with correct
+ # compatibility values, specifically LDSHARED which can use
+ # '-undefined dynamic_lookup' which only works on >= 10.3.
cur_target = os.environ.get('MACOSX_DEPLOYMENT_TARGET', _cfg_target)
- cur_target_split = [int(x) for x in cur_target.split('.')]
- if _cfg_target_split[:2] >= [10, 3] and cur_target_split[:2] < [10, 3]:
+ cur_target_split = [int(x) for x in cur_target.split('.')]
+ if _cfg_target_split[:2] >= [10, 3] and cur_target_split[:2] < [10, 3]:
my_msg = ('$MACOSX_DEPLOYMENT_TARGET mismatch: '
- 'now "%s" but "%s" during configure;'
- 'must use 10.3 or later'
+ 'now "%s" but "%s" during configure;'
+ 'must use 10.3 or later'
% (cur_target, _cfg_target))
raise DistutilsPlatformError(my_msg)
env = dict(os.environ,
MACOSX_DEPLOYMENT_TARGET=cur_target)
- try:
- proc = subprocess.Popen(cmd, env=env)
- proc.wait()
- exitcode = proc.returncode
- except OSError as exc:
+ try:
+ proc = subprocess.Popen(cmd, env=env)
+ proc.wait()
+ exitcode = proc.returncode
+ except OSError as exc:
+ if not DEBUG:
+ cmd = cmd[0]
+ raise DistutilsExecError(
+ "command %r failed: %s" % (cmd, exc.args[-1])) from exc
+
+ if exitcode:
if not DEBUG:
- cmd = cmd[0]
- raise DistutilsExecError(
- "command %r failed: %s" % (cmd, exc.args[-1])) from exc
-
- if exitcode:
- if not DEBUG:
- cmd = cmd[0]
- raise DistutilsExecError(
- "command %r failed with exit code %s" % (cmd, exitcode))
-
-
+ cmd = cmd[0]
+ raise DistutilsExecError(
+ "command %r failed with exit code %s" % (cmd, exitcode))
+
+
def find_executable(executable, path=None):
"""Tries to find 'executable' in the directories listed in 'path'.
A string listing directories separated by 'os.pathsep'; defaults to
os.environ['PATH']. Returns the complete filename or None if not found.
"""
- _, ext = os.path.splitext(executable)
+ _, ext = os.path.splitext(executable)
if (sys.platform == 'win32') and (ext != '.exe'):
executable = executable + '.exe'
- if os.path.isfile(executable):
- return executable
-
- if path is None:
- path = os.environ.get('PATH', None)
- if path is None:
- try:
- path = os.confstr("CS_PATH")
- except (AttributeError, ValueError):
- # os.confstr() or CS_PATH is not available
- path = os.defpath
- # bpo-35755: Don't use os.defpath if the PATH environment variable is
- # set to an empty string
-
- # PATH='' doesn't match, whereas PATH=':' looks in the current directory
- if not path:
+ if os.path.isfile(executable):
+ return executable
+
+ if path is None:
+ path = os.environ.get('PATH', None)
+ if path is None:
+ try:
+ path = os.confstr("CS_PATH")
+ except (AttributeError, ValueError):
+ # os.confstr() or CS_PATH is not available
+ path = os.defpath
+ # bpo-35755: Don't use os.defpath if the PATH environment variable is
+ # set to an empty string
+
+ # PATH='' doesn't match, whereas PATH=':' looks in the current directory
+ if not path:
return None
-
- paths = path.split(os.pathsep)
- for p in paths:
- f = os.path.join(p, executable)
- if os.path.isfile(f):
- # the file exists, we have a shot at spawn working
- return f
- return None
+
+ paths = path.split(os.pathsep)
+ for p in paths:
+ f = os.path.join(p, executable)
+ if os.path.isfile(f):
+ # the file exists, we have a shot at spawn working
+ return f
+ return None
diff --git a/contrib/tools/python3/src/Lib/distutils/sysconfig.py b/contrib/tools/python3/src/Lib/distutils/sysconfig.py
index 93e347c05b..4e5464705b 100644
--- a/contrib/tools/python3/src/Lib/distutils/sysconfig.py
+++ b/contrib/tools/python3/src/Lib/distutils/sysconfig.py
@@ -28,19 +28,19 @@ BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
if "_PYTHON_PROJECT_BASE" in os.environ:
project_base = os.path.abspath(os.environ["_PYTHON_PROJECT_BASE"])
else:
- if sys.executable:
- project_base = os.path.dirname(os.path.abspath(sys.executable))
- else:
- # sys.executable can be empty if argv[0] has been changed and Python is
- # unable to retrieve the real program name
- project_base = os.getcwd()
+ if sys.executable:
+ project_base = os.path.dirname(os.path.abspath(sys.executable))
+ else:
+ # sys.executable can be empty if argv[0] has been changed and Python is
+ # unable to retrieve the real program name
+ project_base = os.getcwd()
# python_build: (Boolean) if true, we're either building Python or
# building an extension with an un-installed Python, so we use
# different (hard-wired) directories.
def _is_python_source_dir(d):
- for fn in ("Setup", "Setup.local"):
+ for fn in ("Setup", "Setup.local"):
if os.path.isfile(os.path.join(d, "Modules", fn)):
return True
return False
@@ -145,15 +145,15 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
prefix = plat_specific and EXEC_PREFIX or PREFIX
if os.name == "posix":
- if plat_specific or standard_lib:
- # Platform-specific modules (any module from a non-pure-Python
- # module distribution) or standard Python library modules.
- libdir = sys.platlibdir
- else:
- # Pure Python
- libdir = "lib"
- libpython = os.path.join(prefix, libdir,
- "python" + get_python_version())
+ if plat_specific or standard_lib:
+ # Platform-specific modules (any module from a non-pure-Python
+ # module distribution) or standard Python library modules.
+ libdir = sys.platlibdir
+ else:
+ # Pure Python
+ libdir = "lib"
+ libpython = os.path.join(prefix, libdir,
+ "python" + get_python_version())
if standard_lib:
return libpython
else:
@@ -193,8 +193,8 @@ def customize_compiler(compiler):
_osx_support.customize_compiler(_config_vars)
_config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- (cc, cxx, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \
- get_config_vars('CC', 'CXX', 'CFLAGS',
+ (cc, cxx, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \
+ get_config_vars('CC', 'CXX', 'CFLAGS',
'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS')
if 'CC' in os.environ:
@@ -217,7 +217,7 @@ def customize_compiler(compiler):
if 'LDFLAGS' in os.environ:
ldshared = ldshared + ' ' + os.environ['LDFLAGS']
if 'CFLAGS' in os.environ:
- cflags = cflags + ' ' + os.environ['CFLAGS']
+ cflags = cflags + ' ' + os.environ['CFLAGS']
ldshared = ldshared + ' ' + os.environ['CFLAGS']
if 'CPPFLAGS' in os.environ:
cpp = cpp + ' ' + os.environ['CPPFLAGS']
diff --git a/contrib/tools/python3/src/Lib/distutils/unixccompiler.py b/contrib/tools/python3/src/Lib/distutils/unixccompiler.py
index 38e4546b6f..d00c48981e 100644
--- a/contrib/tools/python3/src/Lib/distutils/unixccompiler.py
+++ b/contrib/tools/python3/src/Lib/distutils/unixccompiler.py
@@ -215,8 +215,8 @@ class UnixCCompiler(CCompiler):
return "-L" + dir
def _is_gcc(self, compiler_name):
- # clang uses same syntax for rpath as gcc
- return any(name in compiler_name for name in ("gcc", "g++", "clang"))
+ # clang uses same syntax for rpath as gcc
+ return any(name in compiler_name for name in ("gcc", "g++", "clang"))
def runtime_library_dir_option(self, dir):
# XXX Hackish, at the very least. See Python bug #445902:
@@ -289,9 +289,9 @@ class UnixCCompiler(CCompiler):
# vs
# /usr/lib/libedit.dylib
cflags = sysconfig.get_config_var('CFLAGS')
- m = re.search(r'-isysroot\s*(\S+)', cflags)
+ m = re.search(r'-isysroot\s*(\S+)', cflags)
if m is None:
- sysroot = _osx_support._default_sysroot(sysconfig.get_config_var('CC'))
+ sysroot = _osx_support._default_sysroot(sysconfig.get_config_var('CC'))
else:
sysroot = m.group(1)
diff --git a/contrib/tools/python3/src/Lib/distutils/util.py b/contrib/tools/python3/src/Lib/distutils/util.py
index a55af04a8d..4b002ecef1 100644
--- a/contrib/tools/python3/src/Lib/distutils/util.py
+++ b/contrib/tools/python3/src/Lib/distutils/util.py
@@ -15,7 +15,7 @@ from distutils.spawn import spawn
from distutils import log
from distutils.errors import DistutilsByteCompileError
-def get_host_platform():
+def get_host_platform():
"""Return a string that identifies the current platform. This is used mainly to
distinguish platform-specific build directories and platform-specific built
distributions. Typically includes the OS name and version and the
@@ -38,10 +38,10 @@ def get_host_platform():
if os.name == 'nt':
if 'amd64' in sys.version.lower():
return 'win-amd64'
- if '(arm)' in sys.version.lower():
- return 'win-arm32'
- if '(arm64)' in sys.version.lower():
- return 'win-arm64'
+ if '(arm)' in sys.version.lower():
+ return 'win-arm32'
+ if '(arm64)' in sys.version.lower():
+ return 'win-arm64'
return sys.platform
# Set for cross builds explicitly
@@ -79,8 +79,8 @@ def get_host_platform():
machine += ".%s" % bitness[sys.maxsize]
# fall through to standard osname-release-machine representation
elif osname[:3] == "aix":
- from _aix_support import aix_platform
- return aix_platform()
+ from _aix_support import aix_platform
+ return aix_platform()
elif osname[:6] == "cygwin":
osname = "cygwin"
rel_re = re.compile (r'[\d.]+', re.ASCII)
@@ -95,16 +95,16 @@ def get_host_platform():
return "%s-%s-%s" % (osname, release, machine)
-def get_platform():
- if os.name == 'nt':
- TARGET_TO_PLAT = {
- 'x86' : 'win32',
- 'x64' : 'win-amd64',
- 'arm' : 'win-arm32',
- }
- return TARGET_TO_PLAT.get(os.environ.get('VSCMD_ARG_TGT_ARCH')) or get_host_platform()
- else:
- return get_host_platform()
+def get_platform():
+ if os.name == 'nt':
+ TARGET_TO_PLAT = {
+ 'x86' : 'win32',
+ 'x64' : 'win-amd64',
+ 'arm' : 'win-arm32',
+ }
+ return TARGET_TO_PLAT.get(os.environ.get('VSCMD_ARG_TGT_ARCH')) or get_host_platform()
+ else:
+ return get_host_platform()
def convert_path (pathname):
"""Return 'pathname' as a name that will work on the native filesystem,
@@ -391,28 +391,28 @@ def byte_compile (py_files,
else:
script = open(script_name, "w")
- with script:
- script.write("""\
+ with script:
+ script.write("""\
from distutils.util import byte_compile
files = [
""")
- # XXX would be nice to write absolute filenames, just for
- # safety's sake (script should be more robust in the face of
- # chdir'ing before running it). But this requires abspath'ing
- # 'prefix' as well, and that breaks the hack in build_lib's
- # 'byte_compile()' method that carefully tacks on a trailing
- # slash (os.sep really) to make sure the prefix here is "just
- # right". This whole prefix business is rather delicate -- the
- # problem is that it's really a directory, but I'm treating it
- # as a dumb string, so trailing slashes and so forth matter.
-
- #py_files = map(os.path.abspath, py_files)
- #if prefix:
- # prefix = os.path.abspath(prefix)
-
- script.write(",\n".join(map(repr, py_files)) + "]\n")
- script.write("""
+ # XXX would be nice to write absolute filenames, just for
+ # safety's sake (script should be more robust in the face of
+ # chdir'ing before running it). But this requires abspath'ing
+ # 'prefix' as well, and that breaks the hack in build_lib's
+ # 'byte_compile()' method that carefully tacks on a trailing
+ # slash (os.sep really) to make sure the prefix here is "just
+ # right". This whole prefix business is rather delicate -- the
+ # problem is that it's really a directory, but I'm treating it
+ # as a dumb string, so trailing slashes and so forth matter.
+
+ #py_files = map(os.path.abspath, py_files)
+ #if prefix:
+ # prefix = os.path.abspath(prefix)
+
+ script.write(",\n".join(map(repr, py_files)) + "]\n")
+ script.write("""
byte_compile(files, optimize=%r, force=%r,
prefix=%r, base_dir=%r,
verbose=%r, dry_run=0,
diff --git a/contrib/tools/python3/src/Lib/distutils/version.py b/contrib/tools/python3/src/Lib/distutils/version.py
index 4ce1e764da..c33bebaed2 100644
--- a/contrib/tools/python3/src/Lib/distutils/version.py
+++ b/contrib/tools/python3/src/Lib/distutils/version.py
@@ -166,8 +166,8 @@ class StrictVersion (Version):
def _cmp (self, other):
if isinstance(other, str):
other = StrictVersion(other)
- elif not isinstance(other, StrictVersion):
- return NotImplemented
+ elif not isinstance(other, StrictVersion):
+ return NotImplemented
if self.version != other.version:
# numeric versions don't match
@@ -333,8 +333,8 @@ class LooseVersion (Version):
def _cmp (self, other):
if isinstance(other, str):
other = LooseVersion(other)
- elif not isinstance(other, LooseVersion):
- return NotImplemented
+ elif not isinstance(other, LooseVersion):
+ return NotImplemented
if self.version == other.version:
return 0
diff --git a/contrib/tools/python3/src/Lib/doctest.py b/contrib/tools/python3/src/Lib/doctest.py
index 6397090717..2910bebd8d 100644
--- a/contrib/tools/python3/src/Lib/doctest.py
+++ b/contrib/tools/python3/src/Lib/doctest.py
@@ -211,13 +211,13 @@ def _normalize_module(module, depth=2):
else:
raise TypeError("Expected a module, string, or None")
-def _newline_convert(data):
- # We have two cases to cover and we need to make sure we do
- # them in the right order
- for newline in ('\r\n', '\r'):
- data = data.replace(newline, '\n')
- return data
-
+def _newline_convert(data):
+ # We have two cases to cover and we need to make sure we do
+ # them in the right order
+ for newline in ('\r\n', '\r'):
+ data = data.replace(newline, '\n')
+ return data
+
def _load_testfile(filename, package, module_relative, encoding):
if module_relative:
package = _normalize_module(package, 3)
@@ -228,7 +228,7 @@ def _load_testfile(filename, package, module_relative, encoding):
file_contents = file_contents.decode(encoding)
# get_data() opens files as 'rb', so one must do the equivalent
# conversion as universal newlines would do.
- return _newline_convert(file_contents), filename
+ return _newline_convert(file_contents), filename
with open(filename, encoding=encoding) as f:
return f.read(), filename
@@ -1025,8 +1025,8 @@ class DocTestFinder:
if inspect.isclass(obj) and self._recurse:
for valname, val in obj.__dict__.items():
# Special handling for staticmethod/classmethod.
- if isinstance(val, (staticmethod, classmethod)):
- val = val.__func__
+ if isinstance(val, (staticmethod, classmethod)):
+ val = val.__func__
# Recurse to methods, properties, and nested classes.
if ((inspect.isroutine(val) or inspect.isclass(val) or
@@ -1067,8 +1067,8 @@ class DocTestFinder:
if module is None:
filename = None
else:
- # __file__ can be None for namespace packages.
- filename = getattr(module, '__file__', None) or module.__name__
+ # __file__ can be None for namespace packages.
+ filename = getattr(module, '__file__', None) or module.__name__
if filename[-4:] == ".pyc":
filename = filename[:-1]
return self._parser.get_doctest(docstring, globs, name,
@@ -1335,7 +1335,7 @@ class DocTestRunner:
try:
# Don't blink! This is where the user's code gets run.
exec(compile(example.source, filename, "single",
- compileflags, True), test.globs)
+ compileflags, True), test.globs)
self.debugger.set_continue() # ==== Example Finished ====
exception = None
except KeyboardInterrupt:
@@ -2309,7 +2309,7 @@ class DocTestCase(unittest.TestCase):
name = self._dt_test.name.split('.')
return "%s (%s)" % (name[-1], '.'.join(name[:-1]))
- __str__ = object.__str__
+ __str__ = object.__str__
def shortDescription(self):
return "Doctest: " + self._dt_test.name
diff --git a/contrib/tools/python3/src/Lib/email/_header_value_parser.py b/contrib/tools/python3/src/Lib/email/_header_value_parser.py
index a9dbc7f335..51d355fbb0 100644
--- a/contrib/tools/python3/src/Lib/email/_header_value_parser.py
+++ b/contrib/tools/python3/src/Lib/email/_header_value_parser.py
@@ -68,7 +68,7 @@ XXX: provide complete list of token types.
"""
import re
-import sys
+import sys
import urllib # For urllib.parse.unquote
from string import hexdigits
from operator import itemgetter
@@ -96,18 +96,18 @@ EXTENDED_ATTRIBUTE_ENDS = ATTRIBUTE_ENDS - set('%')
def quote_string(value):
return '"'+str(value).replace('\\', '\\\\').replace('"', r'\"')+'"'
-# Match a RFC 2047 word, looks like =?utf-8?q?someword?=
-rfc2047_matcher = re.compile(r'''
- =\? # literal =?
- [^?]* # charset
- \? # literal ?
- [qQbB] # literal 'q' or 'b', case insensitive
- \? # literal ?
- .*? # encoded word
- \?= # literal ?=
-''', re.VERBOSE | re.MULTILINE)
-
-
+# Match a RFC 2047 word, looks like =?utf-8?q?someword?=
+rfc2047_matcher = re.compile(r'''
+ =\? # literal =?
+ [^?]* # charset
+ \? # literal ?
+ [qQbB] # literal 'q' or 'b', case insensitive
+ \? # literal ?
+ .*? # encoded word
+ \?= # literal ?=
+''', re.VERBOSE | re.MULTILINE)
+
+
#
# TokenList and its subclasses
#
@@ -509,11 +509,11 @@ class DotAtomText(TokenList):
as_ew_allowed = True
-class NoFoldLiteral(TokenList):
- token_type = 'no-fold-literal'
- as_ew_allowed = False
-
-
+class NoFoldLiteral(TokenList):
+ token_type = 'no-fold-literal'
+ as_ew_allowed = False
+
+
class AddrSpec(TokenList):
token_type = 'addr-spec'
@@ -561,8 +561,8 @@ class DisplayName(Phrase):
@property
def display_name(self):
res = TokenList(self)
- if len(res) == 0:
- return res.value
+ if len(res) == 0:
+ return res.value
if res[0].token_type == 'cfws':
res.pop(0)
else:
@@ -584,7 +584,7 @@ class DisplayName(Phrase):
for x in self:
if x.token_type == 'quoted-string':
quote = True
- if len(self) != 0 and quote:
+ if len(self) != 0 and quote:
pre = post = ''
if self[0].token_type=='cfws' or self[0][0].token_type=='cfws':
pre = ' '
@@ -730,7 +730,7 @@ class MimeParameters(TokenList):
# to assume the RFC 2231 pieces can come in any order. However, we
# output them in the order that we first see a given name, which gives
# us a stable __str__.
- params = {} # Using order preserving dict from Python 3.7+
+ params = {} # Using order preserving dict from Python 3.7+
for token in self:
if not token.token_type.endswith('parameter'):
continue
@@ -842,23 +842,23 @@ class HeaderLabel(TokenList):
as_ew_allowed = False
-class MsgID(TokenList):
- token_type = 'msg-id'
- as_ew_allowed = False
-
- def fold(self, policy):
- # message-id tokens may not be folded.
- return str(self) + policy.linesep
-
-
-class MessageID(MsgID):
- token_type = 'message-id'
-
-
-class InvalidMessageID(MessageID):
- token_type = 'invalid-message-id'
-
-
+class MsgID(TokenList):
+ token_type = 'msg-id'
+ as_ew_allowed = False
+
+ def fold(self, policy):
+ # message-id tokens may not be folded.
+ return str(self) + policy.linesep
+
+
+class MessageID(MsgID):
+ token_type = 'message-id'
+
+
+class InvalidMessageID(MessageID):
+ token_type = 'invalid-message-id'
+
+
class Header(TokenList):
token_type = 'header'
@@ -940,10 +940,10 @@ class EWWhiteSpaceTerminal(WhiteSpaceTerminal):
return ''
-class _InvalidEwError(errors.HeaderParseError):
- """Invalid encoded word found while parsing headers."""
-
-
+class _InvalidEwError(errors.HeaderParseError):
+ """Invalid encoded word found while parsing headers."""
+
+
# XXX these need to become classes and used as instances so
# that a program can't change them in a parse tree and screw
# up other parse trees. Maybe should have tests for that, too.
@@ -1048,10 +1048,10 @@ def get_encoded_word(value):
raise errors.HeaderParseError(
"expected encoded word but found {}".format(value))
remstr = ''.join(remainder)
- if (len(remstr) > 1 and
- remstr[0] in hexdigits and
- remstr[1] in hexdigits and
- tok.count('?') < 2):
+ if (len(remstr) > 1 and
+ remstr[0] in hexdigits and
+ remstr[1] in hexdigits and
+ tok.count('?') < 2):
# The ? after the CTE was followed by an encoded word escape (=XX).
rest, *remainder = remstr.split('?=', 1)
tok = tok + '?=' + rest
@@ -1062,8 +1062,8 @@ def get_encoded_word(value):
value = ''.join(remainder)
try:
text, charset, lang, defects = _ew.decode('=?' + tok + '?=')
- except (ValueError, KeyError):
- raise _InvalidEwError(
+ except (ValueError, KeyError):
+ raise _InvalidEwError(
"encoded word format invalid: '{}'".format(ew.cte))
ew.charset = charset
ew.lang = lang
@@ -1078,10 +1078,10 @@ def get_encoded_word(value):
_validate_xtext(vtext)
ew.append(vtext)
text = ''.join(remainder)
- # Encoded words should be followed by a WS
- if value and value[0] not in WSP:
- ew.defects.append(errors.InvalidHeaderDefect(
- "missing trailing whitespace after encoded-word"))
+ # Encoded words should be followed by a WS
+ if value and value[0] not in WSP:
+ ew.defects.append(errors.InvalidHeaderDefect(
+ "missing trailing whitespace after encoded-word"))
return ew, value
def get_unstructured(value):
@@ -1113,12 +1113,12 @@ def get_unstructured(value):
token, value = get_fws(value)
unstructured.append(token)
continue
- valid_ew = True
+ valid_ew = True
if value.startswith('=?'):
try:
token, value = get_encoded_word(value)
- except _InvalidEwError:
- valid_ew = False
+ except _InvalidEwError:
+ valid_ew = False
except errors.HeaderParseError:
# XXX: Need to figure out how to register defects when
# appropriate here.
@@ -1137,14 +1137,14 @@ def get_unstructured(value):
unstructured.append(token)
continue
tok, *remainder = _wsp_splitter(value, 1)
- # Split in the middle of an atom if there is a rfc2047 encoded word
- # which does not have WSP on both sides. The defect will be registered
- # the next time through the loop.
- # This needs to only be performed when the encoded word is valid;
- # otherwise, performing it on an invalid encoded word can cause
- # the parser to go in an infinite loop.
- if valid_ew and rfc2047_matcher.search(tok):
- tok, *remainder = value.partition('=?')
+ # Split in the middle of an atom if there is a rfc2047 encoded word
+ # which does not have WSP on both sides. The defect will be registered
+ # the next time through the loop.
+ # This needs to only be performed when the encoded word is valid;
+ # otherwise, performing it on an invalid encoded word can cause
+ # the parser to go in an infinite loop.
+ if valid_ew and rfc2047_matcher.search(tok):
+ tok, *remainder = value.partition('=?')
vtext = ValueTerminal(tok, 'vtext')
_validate_xtext(vtext)
unstructured.append(vtext)
@@ -1211,28 +1211,28 @@ def get_bare_quoted_string(value):
"expected '\"' but found '{}'".format(value))
bare_quoted_string = BareQuotedString()
value = value[1:]
- if value and value[0] == '"':
+ if value and value[0] == '"':
token, value = get_qcontent(value)
bare_quoted_string.append(token)
while value and value[0] != '"':
if value[0] in WSP:
token, value = get_fws(value)
elif value[:2] == '=?':
- valid_ew = False
+ valid_ew = False
try:
token, value = get_encoded_word(value)
bare_quoted_string.defects.append(errors.InvalidHeaderDefect(
"encoded word inside quoted string"))
- valid_ew = True
+ valid_ew = True
except errors.HeaderParseError:
token, value = get_qcontent(value)
- # Collapse the whitespace between two encoded words that occur in a
- # bare-quoted-string.
- if valid_ew and len(bare_quoted_string) > 1:
- if (bare_quoted_string[-1].token_type == 'fws' and
- bare_quoted_string[-2].token_type == 'encoded-word'):
- bare_quoted_string[-1] = EWWhiteSpaceTerminal(
- bare_quoted_string[-1], 'fws')
+ # Collapse the whitespace between two encoded words that occur in a
+ # bare-quoted-string.
+ if valid_ew and len(bare_quoted_string) > 1:
+ if (bare_quoted_string[-1].token_type == 'fws' and
+ bare_quoted_string[-2].token_type == 'encoded-word'):
+ bare_quoted_string[-1] = EWWhiteSpaceTerminal(
+ bare_quoted_string[-1], 'fws')
else:
token, value = get_qcontent(value)
bare_quoted_string.append(token)
@@ -1389,9 +1389,9 @@ def get_word(value):
leader, value = get_cfws(value)
else:
leader = None
- if not value:
- raise errors.HeaderParseError(
- "Expected 'atom' or 'quoted-string' but found nothing.")
+ if not value:
+ raise errors.HeaderParseError(
+ "Expected 'atom' or 'quoted-string' but found nothing.")
if value[0]=='"':
token, value = get_quoted_string(value)
elif value[0] in SPECIALS:
@@ -1616,8 +1616,8 @@ def get_domain(value):
token, value = get_dot_atom(value)
except errors.HeaderParseError:
token, value = get_atom(value)
- if value and value[0] == '@':
- raise errors.HeaderParseError('Invalid Domain')
+ if value and value[0] == '@':
+ raise errors.HeaderParseError('Invalid Domain')
if leader is not None:
token[:0] = [leader]
domain.append(token)
@@ -1641,7 +1641,7 @@ def get_addr_spec(value):
addr_spec.append(token)
if not value or value[0] != '@':
addr_spec.defects.append(errors.InvalidHeaderDefect(
- "addr-spec local part with no domain"))
+ "addr-spec local part with no domain"))
return addr_spec, value
addr_spec.append(ValueTerminal('@', 'address-at-symbol'))
token, value = get_domain(value[1:])
@@ -2026,118 +2026,118 @@ def get_address_list(value):
value = value[1:]
return address_list, value
-
-def get_no_fold_literal(value):
- """ no-fold-literal = "[" *dtext "]"
- """
- no_fold_literal = NoFoldLiteral()
- if not value:
- raise errors.HeaderParseError(
- "expected no-fold-literal but found '{}'".format(value))
- if value[0] != '[':
- raise errors.HeaderParseError(
- "expected '[' at the start of no-fold-literal "
- "but found '{}'".format(value))
- no_fold_literal.append(ValueTerminal('[', 'no-fold-literal-start'))
- value = value[1:]
- token, value = get_dtext(value)
- no_fold_literal.append(token)
- if not value or value[0] != ']':
- raise errors.HeaderParseError(
- "expected ']' at the end of no-fold-literal "
- "but found '{}'".format(value))
- no_fold_literal.append(ValueTerminal(']', 'no-fold-literal-end'))
- return no_fold_literal, value[1:]
-
-def get_msg_id(value):
- """msg-id = [CFWS] "<" id-left '@' id-right ">" [CFWS]
- id-left = dot-atom-text / obs-id-left
- id-right = dot-atom-text / no-fold-literal / obs-id-right
- no-fold-literal = "[" *dtext "]"
- """
- msg_id = MsgID()
- if value and value[0] in CFWS_LEADER:
- token, value = get_cfws(value)
- msg_id.append(token)
- if not value or value[0] != '<':
- raise errors.HeaderParseError(
- "expected msg-id but found '{}'".format(value))
- msg_id.append(ValueTerminal('<', 'msg-id-start'))
- value = value[1:]
- # Parse id-left.
- try:
- token, value = get_dot_atom_text(value)
- except errors.HeaderParseError:
- try:
- # obs-id-left is same as local-part of add-spec.
- token, value = get_obs_local_part(value)
- msg_id.defects.append(errors.ObsoleteHeaderDefect(
- "obsolete id-left in msg-id"))
- except errors.HeaderParseError:
- raise errors.HeaderParseError(
- "expected dot-atom-text or obs-id-left"
- " but found '{}'".format(value))
- msg_id.append(token)
- if not value or value[0] != '@':
- msg_id.defects.append(errors.InvalidHeaderDefect(
- "msg-id with no id-right"))
- # Even though there is no id-right, if the local part
- # ends with `>` let's just parse it too and return
- # along with the defect.
- if value and value[0] == '>':
- msg_id.append(ValueTerminal('>', 'msg-id-end'))
- value = value[1:]
- return msg_id, value
- msg_id.append(ValueTerminal('@', 'address-at-symbol'))
- value = value[1:]
- # Parse id-right.
- try:
- token, value = get_dot_atom_text(value)
- except errors.HeaderParseError:
- try:
- token, value = get_no_fold_literal(value)
- except errors.HeaderParseError as e:
- try:
- token, value = get_domain(value)
- msg_id.defects.append(errors.ObsoleteHeaderDefect(
- "obsolete id-right in msg-id"))
- except errors.HeaderParseError:
- raise errors.HeaderParseError(
- "expected dot-atom-text, no-fold-literal or obs-id-right"
- " but found '{}'".format(value))
- msg_id.append(token)
- if value and value[0] == '>':
- value = value[1:]
- else:
- msg_id.defects.append(errors.InvalidHeaderDefect(
- "missing trailing '>' on msg-id"))
- msg_id.append(ValueTerminal('>', 'msg-id-end'))
- if value and value[0] in CFWS_LEADER:
- token, value = get_cfws(value)
- msg_id.append(token)
- return msg_id, value
-
-
-def parse_message_id(value):
- """message-id = "Message-ID:" msg-id CRLF
- """
- message_id = MessageID()
- try:
- token, value = get_msg_id(value)
- message_id.append(token)
- except errors.HeaderParseError as ex:
- token = get_unstructured(value)
- message_id = InvalidMessageID(token)
- message_id.defects.append(
- errors.InvalidHeaderDefect("Invalid msg-id: {!r}".format(ex)))
- else:
- # Value after parsing a valid msg_id should be None.
- if value:
- message_id.defects.append(errors.InvalidHeaderDefect(
- "Unexpected {!r}".format(value)))
-
- return message_id
-
+
+def get_no_fold_literal(value):
+ """ no-fold-literal = "[" *dtext "]"
+ """
+ no_fold_literal = NoFoldLiteral()
+ if not value:
+ raise errors.HeaderParseError(
+ "expected no-fold-literal but found '{}'".format(value))
+ if value[0] != '[':
+ raise errors.HeaderParseError(
+ "expected '[' at the start of no-fold-literal "
+ "but found '{}'".format(value))
+ no_fold_literal.append(ValueTerminal('[', 'no-fold-literal-start'))
+ value = value[1:]
+ token, value = get_dtext(value)
+ no_fold_literal.append(token)
+ if not value or value[0] != ']':
+ raise errors.HeaderParseError(
+ "expected ']' at the end of no-fold-literal "
+ "but found '{}'".format(value))
+ no_fold_literal.append(ValueTerminal(']', 'no-fold-literal-end'))
+ return no_fold_literal, value[1:]
+
+def get_msg_id(value):
+ """msg-id = [CFWS] "<" id-left '@' id-right ">" [CFWS]
+ id-left = dot-atom-text / obs-id-left
+ id-right = dot-atom-text / no-fold-literal / obs-id-right
+ no-fold-literal = "[" *dtext "]"
+ """
+ msg_id = MsgID()
+ if value and value[0] in CFWS_LEADER:
+ token, value = get_cfws(value)
+ msg_id.append(token)
+ if not value or value[0] != '<':
+ raise errors.HeaderParseError(
+ "expected msg-id but found '{}'".format(value))
+ msg_id.append(ValueTerminal('<', 'msg-id-start'))
+ value = value[1:]
+ # Parse id-left.
+ try:
+ token, value = get_dot_atom_text(value)
+ except errors.HeaderParseError:
+ try:
+ # obs-id-left is same as local-part of add-spec.
+ token, value = get_obs_local_part(value)
+ msg_id.defects.append(errors.ObsoleteHeaderDefect(
+ "obsolete id-left in msg-id"))
+ except errors.HeaderParseError:
+ raise errors.HeaderParseError(
+ "expected dot-atom-text or obs-id-left"
+ " but found '{}'".format(value))
+ msg_id.append(token)
+ if not value or value[0] != '@':
+ msg_id.defects.append(errors.InvalidHeaderDefect(
+ "msg-id with no id-right"))
+ # Even though there is no id-right, if the local part
+ # ends with `>` let's just parse it too and return
+ # along with the defect.
+ if value and value[0] == '>':
+ msg_id.append(ValueTerminal('>', 'msg-id-end'))
+ value = value[1:]
+ return msg_id, value
+ msg_id.append(ValueTerminal('@', 'address-at-symbol'))
+ value = value[1:]
+ # Parse id-right.
+ try:
+ token, value = get_dot_atom_text(value)
+ except errors.HeaderParseError:
+ try:
+ token, value = get_no_fold_literal(value)
+ except errors.HeaderParseError as e:
+ try:
+ token, value = get_domain(value)
+ msg_id.defects.append(errors.ObsoleteHeaderDefect(
+ "obsolete id-right in msg-id"))
+ except errors.HeaderParseError:
+ raise errors.HeaderParseError(
+ "expected dot-atom-text, no-fold-literal or obs-id-right"
+ " but found '{}'".format(value))
+ msg_id.append(token)
+ if value and value[0] == '>':
+ value = value[1:]
+ else:
+ msg_id.defects.append(errors.InvalidHeaderDefect(
+ "missing trailing '>' on msg-id"))
+ msg_id.append(ValueTerminal('>', 'msg-id-end'))
+ if value and value[0] in CFWS_LEADER:
+ token, value = get_cfws(value)
+ msg_id.append(token)
+ return msg_id, value
+
+
+def parse_message_id(value):
+ """message-id = "Message-ID:" msg-id CRLF
+ """
+ message_id = MessageID()
+ try:
+ token, value = get_msg_id(value)
+ message_id.append(token)
+ except errors.HeaderParseError as ex:
+ token = get_unstructured(value)
+ message_id = InvalidMessageID(token)
+ message_id.defects.append(
+ errors.InvalidHeaderDefect("Invalid msg-id: {!r}".format(ex)))
+ else:
+ # Value after parsing a valid msg_id should be None.
+ if value:
+ message_id.defects.append(errors.InvalidHeaderDefect(
+ "Unexpected {!r}".format(value)))
+
+ return message_id
+
#
# XXX: As I begin to add additional header parsers, I'm realizing we probably
# have two level of parser routines: the get_XXX methods that get a token in
@@ -2535,9 +2535,9 @@ def get_parameter(value):
while value:
if value[0] in WSP:
token, value = get_fws(value)
- elif value[0] == '"':
- token = ValueTerminal('"', 'DQUOTE')
- value = value[1:]
+ elif value[0] == '"':
+ token = ValueTerminal('"', 'DQUOTE')
+ value = value[1:]
else:
token, value = get_qcontent(value)
v.append(token)
@@ -2558,7 +2558,7 @@ def parse_mime_parameters(value):
the formal RFC grammar, but it is more convenient for us for the set of
parameters to be treated as its own TokenList.
- This is 'parse' routine because it consumes the remaining value, but it
+ This is 'parse' routine because it consumes the remaining value, but it
would never be called to parse a full header. Instead it is called to
parse everything after the non-parameter value of a specific MIME header.
@@ -2764,7 +2764,7 @@ def _refold_parse_tree(parse_tree, *, policy):
"""
# max_line_length 0/None means no limit, ie: infinitely long.
- maxlen = policy.max_line_length or sys.maxsize
+ maxlen = policy.max_line_length or sys.maxsize
encoding = 'utf-8' if policy.utf8 else 'us-ascii'
lines = ['']
last_ew = None
@@ -2778,9 +2778,9 @@ def _refold_parse_tree(parse_tree, *, policy):
wrap_as_ew_blocked -= 1
continue
tstr = str(part)
- if part.token_type == 'ptext' and set(tstr) & SPECIALS:
- # Encode if tstr contains special characters.
- want_encoding = True
+ if part.token_type == 'ptext' and set(tstr) & SPECIALS:
+ # Encode if tstr contains special characters.
+ want_encoding = True
try:
tstr.encode(encoding)
charset = encoding
@@ -2802,7 +2802,7 @@ def _refold_parse_tree(parse_tree, *, policy):
want_encoding = False
last_ew = None
if part.syntactic_break:
- encoded_part = part.fold(policy=policy)[:-len(policy.linesep)]
+ encoded_part = part.fold(policy=policy)[:-len(policy.linesep)]
if policy.linesep not in encoded_part:
# It fits on a single line
if len(encoded_part) > maxlen - len(lines[-1]):
@@ -2837,7 +2837,7 @@ def _refold_parse_tree(parse_tree, *, policy):
newline = _steal_trailing_WSP_if_exists(lines)
if newline or part.startswith_fws():
lines.append(newline + tstr)
- last_ew = None
+ last_ew = None
continue
if not hasattr(part, 'encode'):
# It's not a terminal, try folding the subparts.
@@ -2891,36 +2891,36 @@ def _fold_as_ew(to_encode, lines, maxlen, last_ew, ew_combine_allowed, charset):
trailing_wsp = to_encode[-1]
to_encode = to_encode[:-1]
new_last_ew = len(lines[-1]) if last_ew is None else last_ew
-
- encode_as = 'utf-8' if charset == 'us-ascii' else charset
-
- # The RFC2047 chrome takes up 7 characters plus the length
- # of the charset name.
- chrome_len = len(encode_as) + 7
-
- if (chrome_len + 1) >= maxlen:
- raise errors.HeaderParseError(
- "max_line_length is too small to fit an encoded word")
-
+
+ encode_as = 'utf-8' if charset == 'us-ascii' else charset
+
+ # The RFC2047 chrome takes up 7 characters plus the length
+ # of the charset name.
+ chrome_len = len(encode_as) + 7
+
+ if (chrome_len + 1) >= maxlen:
+ raise errors.HeaderParseError(
+ "max_line_length is too small to fit an encoded word")
+
while to_encode:
remaining_space = maxlen - len(lines[-1])
- text_space = remaining_space - chrome_len
+ text_space = remaining_space - chrome_len
if text_space <= 0:
lines.append(' ')
continue
-
- to_encode_word = to_encode[:text_space]
- encoded_word = _ew.encode(to_encode_word, charset=encode_as)
- excess = len(encoded_word) - remaining_space
- while excess > 0:
- # Since the chunk to encode is guaranteed to fit into less than 100 characters,
- # shrinking it by one at a time shouldn't take long.
- to_encode_word = to_encode_word[:-1]
- encoded_word = _ew.encode(to_encode_word, charset=encode_as)
- excess = len(encoded_word) - remaining_space
- lines[-1] += encoded_word
- to_encode = to_encode[len(to_encode_word):]
-
+
+ to_encode_word = to_encode[:text_space]
+ encoded_word = _ew.encode(to_encode_word, charset=encode_as)
+ excess = len(encoded_word) - remaining_space
+ while excess > 0:
+ # Since the chunk to encode is guaranteed to fit into less than 100 characters,
+ # shrinking it by one at a time shouldn't take long.
+ to_encode_word = to_encode_word[:-1]
+ encoded_word = _ew.encode(to_encode_word, charset=encode_as)
+ excess = len(encoded_word) - remaining_space
+ lines[-1] += encoded_word
+ to_encode = to_encode[len(to_encode_word):]
+
if to_encode:
lines.append(' ')
new_last_ew = len(lines[-1])
diff --git a/contrib/tools/python3/src/Lib/email/_parseaddr.py b/contrib/tools/python3/src/Lib/email/_parseaddr.py
index bb53fcc278..c5a7b23193 100644
--- a/contrib/tools/python3/src/Lib/email/_parseaddr.py
+++ b/contrib/tools/python3/src/Lib/email/_parseaddr.py
@@ -67,8 +67,8 @@ def _parsedate_tz(data):
if not data:
return
data = data.split()
- if not data: # This happens for whitespace-only input.
- return None
+ if not data: # This happens for whitespace-only input.
+ return None
# The FWS after the comma after the day-of-week is optional, so search and
# adjust for this.
if data[0].endswith(',') or data[0].lower() in _daynames:
@@ -128,8 +128,8 @@ def _parsedate_tz(data):
tss = 0
elif len(tm) == 3:
[thh, tmm, tss] = tm
- else:
- return None
+ else:
+ return None
else:
return None
try:
@@ -383,12 +383,12 @@ class AddrlistClass:
aslist.append('@')
self.pos += 1
self.gotonext()
- domain = self.getdomain()
- if not domain:
- # Invalid domain, return an empty address instead of returning a
- # local part to denote failed parsing.
- return EMPTYSTRING
- return EMPTYSTRING.join(aslist) + domain
+ domain = self.getdomain()
+ if not domain:
+ # Invalid domain, return an empty address instead of returning a
+ # local part to denote failed parsing.
+ return EMPTYSTRING
+ return EMPTYSTRING.join(aslist) + domain
def getdomain(self):
"""Get the complete domain name from an address."""
@@ -403,10 +403,10 @@ class AddrlistClass:
elif self.field[self.pos] == '.':
self.pos += 1
sdlist.append('.')
- elif self.field[self.pos] == '@':
- # bpo-34155: Don't parse domains with two `@` like
- # `a@malicious.org@important.com`.
- return EMPTYSTRING
+ elif self.field[self.pos] == '@':
+ # bpo-34155: Don't parse domains with two `@` like
+ # `a@malicious.org@important.com`.
+ return EMPTYSTRING
elif self.field[self.pos] in self.atomends:
break
else:
diff --git a/contrib/tools/python3/src/Lib/email/charset.py b/contrib/tools/python3/src/Lib/email/charset.py
index 2573893187..d3d759ad91 100644
--- a/contrib/tools/python3/src/Lib/email/charset.py
+++ b/contrib/tools/python3/src/Lib/email/charset.py
@@ -241,7 +241,7 @@ class Charset:
self.output_codec = CODEC_MAP.get(self.output_charset,
self.output_charset)
- def __repr__(self):
+ def __repr__(self):
return self.input_charset.lower()
def __eq__(self, other):
diff --git a/contrib/tools/python3/src/Lib/email/contentmanager.py b/contrib/tools/python3/src/Lib/email/contentmanager.py
index 01cbb79260..fcf278dbcc 100644
--- a/contrib/tools/python3/src/Lib/email/contentmanager.py
+++ b/contrib/tools/python3/src/Lib/email/contentmanager.py
@@ -144,15 +144,15 @@ def _encode_text(string, charset, cte, policy):
linesep = policy.linesep.encode('ascii')
def embedded_body(lines): return linesep.join(lines) + linesep
def normal_body(lines): return b'\n'.join(lines) + b'\n'
- if cte is None:
+ if cte is None:
# Use heuristics to decide on the "best" encoding.
- if max((len(x) for x in lines), default=0) <= policy.max_line_length:
- try:
- return '7bit', normal_body(lines).decode('ascii')
- except UnicodeDecodeError:
- pass
- if policy.cte_type == '8bit':
- return '8bit', normal_body(lines).decode('ascii', 'surrogateescape')
+ if max((len(x) for x in lines), default=0) <= policy.max_line_length:
+ try:
+ return '7bit', normal_body(lines).decode('ascii')
+ except UnicodeDecodeError:
+ pass
+ if policy.cte_type == '8bit':
+ return '8bit', normal_body(lines).decode('ascii', 'surrogateescape')
sniff = embedded_body(lines[:10])
sniff_qp = quoprimime.body_encode(sniff.decode('latin-1'),
policy.max_line_length)
@@ -238,7 +238,7 @@ def set_bytes_content(msg, data, maintype, subtype, cte='base64',
data = binascii.b2a_qp(data, istext=False, header=False, quotetabs=True)
data = data.decode('ascii')
elif cte == '7bit':
- data = data.decode('ascii')
+ data = data.decode('ascii')
elif cte in ('8bit', 'binary'):
data = data.decode('ascii', 'surrogateescape')
msg.set_payload(data)
diff --git a/contrib/tools/python3/src/Lib/email/feedparser.py b/contrib/tools/python3/src/Lib/email/feedparser.py
index 36909ab31c..97d3f5144d 100644
--- a/contrib/tools/python3/src/Lib/email/feedparser.py
+++ b/contrib/tools/python3/src/Lib/email/feedparser.py
@@ -320,7 +320,7 @@ class FeedParser:
self._cur.set_payload(EMPTYSTRING.join(lines))
return
# Make sure a valid content type was specified per RFC 2045:6.4.
- if (str(self._cur.get('content-transfer-encoding', '8bit')).lower()
+ if (str(self._cur.get('content-transfer-encoding', '8bit')).lower()
not in ('7bit', '8bit', 'binary')):
defect = errors.InvalidMultipartContentTransferEncodingDefect()
self.policy.handle_defect(self._cur, defect)
diff --git a/contrib/tools/python3/src/Lib/email/generator.py b/contrib/tools/python3/src/Lib/email/generator.py
index db007a5652..c9b121624e 100644
--- a/contrib/tools/python3/src/Lib/email/generator.py
+++ b/contrib/tools/python3/src/Lib/email/generator.py
@@ -186,11 +186,11 @@ class Generator:
# If we munged the cte, copy the message again and re-fix the CTE.
if munge_cte:
msg = deepcopy(msg)
- # Preserve the header order if the CTE header already exists.
- if msg.get('content-transfer-encoding') is None:
- msg['Content-Transfer-Encoding'] = munge_cte[0]
- else:
- msg.replace_header('content-transfer-encoding', munge_cte[0])
+ # Preserve the header order if the CTE header already exists.
+ if msg.get('content-transfer-encoding') is None:
+ msg['Content-Transfer-Encoding'] = munge_cte[0]
+ else:
+ msg.replace_header('content-transfer-encoding', munge_cte[0])
msg.replace_header('content-type', munge_cte[1])
# Write the headers. First we see if the message object wants to
# handle that itself. If not, we'll do it generically.
diff --git a/contrib/tools/python3/src/Lib/email/header.py b/contrib/tools/python3/src/Lib/email/header.py
index ce19f67d10..4ab0032bc6 100644
--- a/contrib/tools/python3/src/Lib/email/header.py
+++ b/contrib/tools/python3/src/Lib/email/header.py
@@ -431,7 +431,7 @@ class _ValueFormatter:
if end_of_line != (' ', ''):
self._current_line.push(*end_of_line)
if len(self._current_line) > 0:
- if self._current_line.is_onlyws() and self._lines:
+ if self._current_line.is_onlyws() and self._lines:
self._lines[-1] += str(self._current_line)
else:
self._lines.append(str(self._current_line))
diff --git a/contrib/tools/python3/src/Lib/email/headerregistry.py b/contrib/tools/python3/src/Lib/email/headerregistry.py
index d8b1f2f073..5d84fc0d82 100644
--- a/contrib/tools/python3/src/Lib/email/headerregistry.py
+++ b/contrib/tools/python3/src/Lib/email/headerregistry.py
@@ -31,11 +31,11 @@ class Address:
without any Content Transfer Encoding.
"""
-
- inputs = ''.join(filter(None, (display_name, username, domain, addr_spec)))
- if '\r' in inputs or '\n' in inputs:
- raise ValueError("invalid arguments; address parts cannot contain CR or LF")
-
+
+ inputs = ''.join(filter(None, (display_name, username, domain, addr_spec)))
+ if '\r' in inputs or '\n' in inputs:
+ raise ValueError("invalid arguments; address parts cannot contain CR or LF")
+
# This clause with its potential 'raise' may only happen when an
# application program creates an Address object using an addr_spec
# keyword. The email library code itself must always supply username
@@ -74,9 +74,9 @@ class Address:
"""The addr_spec (username@domain) portion of the address, quoted
according to RFC 5322 rules, but with no Content Transfer Encoding.
"""
- lp = self.username
- if not parser.DOT_ATOM_ENDS.isdisjoint(lp):
- lp = parser.quote_string(lp)
+ lp = self.username
+ if not parser.DOT_ATOM_ENDS.isdisjoint(lp):
+ lp = parser.quote_string(lp)
if self.domain:
return lp + '@' + self.domain
if not lp:
@@ -89,17 +89,17 @@ class Address:
self.display_name, self.username, self.domain)
def __str__(self):
- disp = self.display_name
- if not parser.SPECIALS.isdisjoint(disp):
- disp = parser.quote_string(disp)
+ disp = self.display_name
+ if not parser.SPECIALS.isdisjoint(disp):
+ disp = parser.quote_string(disp)
if disp:
addr_spec = '' if self.addr_spec=='<>' else self.addr_spec
return "{} <{}>".format(disp, addr_spec)
return self.addr_spec
def __eq__(self, other):
- if not isinstance(other, Address):
- return NotImplemented
+ if not isinstance(other, Address):
+ return NotImplemented
return (self.display_name == other.display_name and
self.username == other.username and
self.domain == other.domain)
@@ -142,15 +142,15 @@ class Group:
if self.display_name is None and len(self.addresses)==1:
return str(self.addresses[0])
disp = self.display_name
- if disp is not None and not parser.SPECIALS.isdisjoint(disp):
- disp = parser.quote_string(disp)
+ if disp is not None and not parser.SPECIALS.isdisjoint(disp):
+ disp = parser.quote_string(disp)
adrstr = ", ".join(str(x) for x in self.addresses)
adrstr = ' ' + adrstr if adrstr else adrstr
return "{}:{};".format(disp, adrstr)
def __eq__(self, other):
- if not isinstance(other, Group):
- return NotImplemented
+ if not isinstance(other, Group):
+ return NotImplemented
return (self.display_name == other.display_name and
self.addresses == other.addresses)
@@ -244,7 +244,7 @@ class BaseHeader(str):
the header name and the ': ' separator.
"""
- # At some point we need to put fws here if it was in the source.
+ # At some point we need to put fws here if it was in the source.
header = parser.Header([
parser.HeaderLabel([
parser.ValueTerminal(self.name, 'header-name'),
@@ -519,18 +519,18 @@ class ContentTransferEncodingHeader:
return self._cte
-class MessageIDHeader:
-
- max_count = 1
- value_parser = staticmethod(parser.parse_message_id)
-
- @classmethod
- def parse(cls, value, kwds):
- kwds['parse_tree'] = parse_tree = cls.value_parser(value)
- kwds['decoded'] = str(parse_tree)
- kwds['defects'].extend(parse_tree.all_defects)
-
-
+class MessageIDHeader:
+
+ max_count = 1
+ value_parser = staticmethod(parser.parse_message_id)
+
+ @classmethod
+ def parse(cls, value, kwds):
+ kwds['parse_tree'] = parse_tree = cls.value_parser(value)
+ kwds['decoded'] = str(parse_tree)
+ kwds['defects'].extend(parse_tree.all_defects)
+
+
# The header factory #
_default_header_map = {
@@ -553,7 +553,7 @@ _default_header_map = {
'content-type': ContentTypeHeader,
'content-disposition': ContentDispositionHeader,
'content-transfer-encoding': ContentTransferEncodingHeader,
- 'message-id': MessageIDHeader,
+ 'message-id': MessageIDHeader,
}
class HeaderRegistry:
diff --git a/contrib/tools/python3/src/Lib/email/message.py b/contrib/tools/python3/src/Lib/email/message.py
index 110342f5f9..6752ce0fa1 100644
--- a/contrib/tools/python3/src/Lib/email/message.py
+++ b/contrib/tools/python3/src/Lib/email/message.py
@@ -141,7 +141,7 @@ class Message:
header. For backward compatibility reasons, if maxheaderlen is
not specified it defaults to 0, so you must override it explicitly
if you want a different maxheaderlen. 'policy' is passed to the
- Generator instance used to serialize the message; if it is not
+ Generator instance used to serialize the message; if it is not
specified the policy associated with the message instance is used.
If the message object contains binary data that is not encoded
@@ -948,7 +948,7 @@ class MIMEPart(Message):
if policy is None:
from email.policy import default
policy = default
- super().__init__(policy)
+ super().__init__(policy)
def as_string(self, unixfrom=False, maxheaderlen=None, policy=None):
@@ -958,14 +958,14 @@ class MIMEPart(Message):
header. maxheaderlen is retained for backward compatibility with the
base Message class, but defaults to None, meaning that the policy value
for max_line_length controls the header maximum length. 'policy' is
- passed to the Generator instance used to serialize the message; if it
+ passed to the Generator instance used to serialize the message; if it
is not specified the policy associated with the message instance is
used.
"""
policy = self.policy if policy is None else policy
if maxheaderlen is None:
maxheaderlen = policy.max_line_length
- return super().as_string(unixfrom, maxheaderlen, policy)
+ return super().as_string(unixfrom, maxheaderlen, policy)
def __str__(self):
return self.as_string(policy=self.policy.clone(utf8=True))
@@ -982,7 +982,7 @@ class MIMEPart(Message):
if subtype in preferencelist:
yield (preferencelist.index(subtype), part)
return
- if maintype != 'multipart' or not self.is_multipart():
+ if maintype != 'multipart' or not self.is_multipart():
return
if subtype != 'related':
for subpart in part.iter_parts():
@@ -1041,16 +1041,16 @@ class MIMEPart(Message):
maintype, subtype = self.get_content_type().split('/')
if maintype != 'multipart' or subtype == 'alternative':
return
- payload = self.get_payload()
- # Certain malformed messages can have content type set to `multipart/*`
- # but still have single part body, in which case payload.copy() can
- # fail with AttributeError.
- try:
- parts = payload.copy()
- except AttributeError:
- # payload is not a list, it is most probably a string.
- return
-
+ payload = self.get_payload()
+ # Certain malformed messages can have content type set to `multipart/*`
+ # but still have single part body, in which case payload.copy() can
+ # fail with AttributeError.
+ try:
+ parts = payload.copy()
+ except AttributeError:
+ # payload is not a list, it is most probably a string.
+ return
+
if maintype == 'multipart' and subtype == 'related':
# For related, we treat everything but the root as an attachment.
# The root may be indicated by 'start'; if there's no start or we
@@ -1087,7 +1087,7 @@ class MIMEPart(Message):
Return an empty iterator for a non-multipart.
"""
- if self.is_multipart():
+ if self.is_multipart():
yield from self.get_payload()
def get_content(self, *args, content_manager=None, **kw):
diff --git a/contrib/tools/python3/src/Lib/email/policy.py b/contrib/tools/python3/src/Lib/email/policy.py
index 6028e0ceeb..611deb50bb 100644
--- a/contrib/tools/python3/src/Lib/email/policy.py
+++ b/contrib/tools/python3/src/Lib/email/policy.py
@@ -3,7 +3,7 @@ code that adds all the email6 features.
"""
import re
-import sys
+import sys
from email._policybase import Policy, Compat32, compat32, _extend_docstrings
from email.utils import _has_surrogates
from email.headerregistry import HeaderRegistry as HeaderRegistry
@@ -204,7 +204,7 @@ class EmailPolicy(Policy):
def _fold(self, name, value, refold_binary=False):
if hasattr(value, 'name'):
return value.fold(policy=self)
- maxlen = self.max_line_length if self.max_line_length else sys.maxsize
+ maxlen = self.max_line_length if self.max_line_length else sys.maxsize
lines = value.splitlines()
refold = (self.refold_source == 'all' or
self.refold_source == 'long' and
diff --git a/contrib/tools/python3/src/Lib/email/utils.py b/contrib/tools/python3/src/Lib/email/utils.py
index c146b8c075..48d30160aa 100644
--- a/contrib/tools/python3/src/Lib/email/utils.py
+++ b/contrib/tools/python3/src/Lib/email/utils.py
@@ -81,7 +81,7 @@ def formataddr(pair, charset='utf-8'):
If the first element of pair is false, then the second element is
returned unmodified.
- The optional charset is the character set that is used to encode
+ The optional charset is the character set that is used to encode
realname in case realname is not ASCII safe. Can be an instance of str or
a Charset-like object which has a header_encode method. Default is
'utf-8'.
@@ -109,7 +109,7 @@ def formataddr(pair, charset='utf-8'):
def getaddresses(fieldvalues):
"""Return a list of (REALNAME, EMAIL) for each fieldvalue."""
- all = COMMASPACE.join(str(v) for v in fieldvalues)
+ all = COMMASPACE.join(str(v) for v in fieldvalues)
a = _AddressList(all)
return a.addresslist
@@ -259,13 +259,13 @@ def decode_params(params):
params is a sequence of 2-tuples containing (param name, string value).
"""
- new_params = [params[0]]
+ new_params = [params[0]]
# Map parameter's name to a list of continuations. The values are a
# 3-tuple of the continuation number, the string value, and a flag
# specifying whether a particular segment is %-encoded.
rfc2231_params = {}
- for name, value in params[1:]:
- encoded = name.endswith('*')
+ for name, value in params[1:]:
+ encoded = name.endswith('*')
value = unquote(value)
mo = rfc2231_continuation.match(name)
if mo:
diff --git a/contrib/tools/python3/src/Lib/encodings/__init__.py b/contrib/tools/python3/src/Lib/encodings/__init__.py
index 987fcfd9ba..ddd5afdcf2 100644
--- a/contrib/tools/python3/src/Lib/encodings/__init__.py
+++ b/contrib/tools/python3/src/Lib/encodings/__init__.py
@@ -12,7 +12,7 @@
* getregentry() -> codecs.CodecInfo object
The getregentry() API must return a CodecInfo object with encoder, decoder,
incrementalencoder, incrementaldecoder, streamwriter and streamreader
- attributes which adhere to the Python Codec Interface Standard.
+ attributes which adhere to the Python Codec Interface Standard.
In addition, a module may optionally also define the following
APIs which are then used by the package's codec search function:
@@ -49,7 +49,7 @@ def normalize_encoding(encoding):
collapsed and replaced with a single underscore, e.g. ' -;#'
becomes '_'. Leading and trailing underscores are removed.
- Note that encoding names should be ASCII only.
+ Note that encoding names should be ASCII only.
"""
if isinstance(encoding, bytes):
diff --git a/contrib/tools/python3/src/Lib/encodings/aliases.py b/contrib/tools/python3/src/Lib/encodings/aliases.py
index 6bd41ed289..d85afd6d5c 100644
--- a/contrib/tools/python3/src/Lib/encodings/aliases.py
+++ b/contrib/tools/python3/src/Lib/encodings/aliases.py
@@ -266,8 +266,8 @@ aliases = {
'roman8' : 'hp_roman8',
'r8' : 'hp_roman8',
'csHPRoman8' : 'hp_roman8',
- 'cp1051' : 'hp_roman8',
- 'ibm1051' : 'hp_roman8',
+ 'cp1051' : 'hp_roman8',
+ 'ibm1051' : 'hp_roman8',
# hz codec
'hzgb' : 'hz',
@@ -450,7 +450,7 @@ aliases = {
# mac_latin2 codec
'maccentraleurope' : 'mac_latin2',
- 'mac_centeuro' : 'mac_latin2',
+ 'mac_centeuro' : 'mac_latin2',
'maclatin2' : 'mac_latin2',
# mac_roman codec
@@ -534,7 +534,7 @@ aliases = {
'utf8' : 'utf_8',
'utf8_ucs2' : 'utf_8',
'utf8_ucs4' : 'utf_8',
- 'cp65001' : 'utf_8',
+ 'cp65001' : 'utf_8',
# uu_codec codec
'uu' : 'uu_codec',
diff --git a/contrib/tools/python3/src/Lib/encodings/punycode.py b/contrib/tools/python3/src/Lib/encodings/punycode.py
index 414dc76a0a..1c57264470 100644
--- a/contrib/tools/python3/src/Lib/encodings/punycode.py
+++ b/contrib/tools/python3/src/Lib/encodings/punycode.py
@@ -143,7 +143,7 @@ def decode_generalized_number(extended, extpos, bias, errors):
digit = char - 22 # 0x30-26
elif errors == "strict":
raise UnicodeError("Invalid extended code point '%s'"
- % extended[extpos-1])
+ % extended[extpos-1])
else:
return extpos, None
t = T(j, bias)
diff --git a/contrib/tools/python3/src/Lib/encodings/raw_unicode_escape.py b/contrib/tools/python3/src/Lib/encodings/raw_unicode_escape.py
index a38a0de778..46c8e070dd 100644
--- a/contrib/tools/python3/src/Lib/encodings/raw_unicode_escape.py
+++ b/contrib/tools/python3/src/Lib/encodings/raw_unicode_escape.py
@@ -21,16 +21,16 @@ class IncrementalEncoder(codecs.IncrementalEncoder):
def encode(self, input, final=False):
return codecs.raw_unicode_escape_encode(input, self.errors)[0]
-class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
- def _buffer_decode(self, input, errors, final):
- return codecs.raw_unicode_escape_decode(input, errors, final)
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+ def _buffer_decode(self, input, errors, final):
+ return codecs.raw_unicode_escape_decode(input, errors, final)
class StreamWriter(Codec,codecs.StreamWriter):
pass
class StreamReader(Codec,codecs.StreamReader):
- def decode(self, input, errors='strict'):
- return codecs.raw_unicode_escape_decode(input, errors, False)
+ def decode(self, input, errors='strict'):
+ return codecs.raw_unicode_escape_decode(input, errors, False)
### encodings module API
diff --git a/contrib/tools/python3/src/Lib/encodings/unicode_escape.py b/contrib/tools/python3/src/Lib/encodings/unicode_escape.py
index 0d75604ee0..9b1ce99b33 100644
--- a/contrib/tools/python3/src/Lib/encodings/unicode_escape.py
+++ b/contrib/tools/python3/src/Lib/encodings/unicode_escape.py
@@ -21,16 +21,16 @@ class IncrementalEncoder(codecs.IncrementalEncoder):
def encode(self, input, final=False):
return codecs.unicode_escape_encode(input, self.errors)[0]
-class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
- def _buffer_decode(self, input, errors, final):
- return codecs.unicode_escape_decode(input, errors, final)
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+ def _buffer_decode(self, input, errors, final):
+ return codecs.unicode_escape_decode(input, errors, final)
class StreamWriter(Codec,codecs.StreamWriter):
pass
class StreamReader(Codec,codecs.StreamReader):
- def decode(self, input, errors='strict'):
- return codecs.unicode_escape_decode(input, errors, False)
+ def decode(self, input, errors='strict'):
+ return codecs.unicode_escape_decode(input, errors, False)
### encodings module API
diff --git a/contrib/tools/python3/src/Lib/encodings/uu_codec.py b/contrib/tools/python3/src/Lib/encodings/uu_codec.py
index 350b5f7a4f..4e58c62fe9 100644
--- a/contrib/tools/python3/src/Lib/encodings/uu_codec.py
+++ b/contrib/tools/python3/src/Lib/encodings/uu_codec.py
@@ -20,10 +20,10 @@ def uu_encode(input, errors='strict', filename='<data>', mode=0o666):
read = infile.read
write = outfile.write
- # Remove newline chars from filename
- filename = filename.replace('\n','\\n')
- filename = filename.replace('\r','\\r')
-
+ # Remove newline chars from filename
+ filename = filename.replace('\n','\\n')
+ filename = filename.replace('\r','\\r')
+
# Encode
write(('begin %o %s\n' % (mode & 0o777, filename)).encode('ascii'))
chunk = read(45)
diff --git a/contrib/tools/python3/src/Lib/ensurepip/__init__.py b/contrib/tools/python3/src/Lib/ensurepip/__init__.py
index bc7b88ea61..2a140a2624 100644
--- a/contrib/tools/python3/src/Lib/ensurepip/__init__.py
+++ b/contrib/tools/python3/src/Lib/ensurepip/__init__.py
@@ -1,37 +1,37 @@
import os
import os.path
import sys
-import runpy
+import runpy
import tempfile
-import subprocess
-from importlib import resources
+import subprocess
+from importlib import resources
+
+from . import _bundled
+
-from . import _bundled
-
-
__all__ = ["version", "bootstrap"]
-_SETUPTOOLS_VERSION = "58.1.0"
-_PIP_VERSION = "21.2.4"
+_SETUPTOOLS_VERSION = "58.1.0"
+_PIP_VERSION = "21.2.4"
_PROJECTS = [
- ("setuptools", _SETUPTOOLS_VERSION, "py3"),
- ("pip", _PIP_VERSION, "py3"),
+ ("setuptools", _SETUPTOOLS_VERSION, "py3"),
+ ("pip", _PIP_VERSION, "py3"),
]
def _run_pip(args, additional_paths=None):
- # Run the bootstraping in a subprocess to avoid leaking any state that happens
- # after pip has executed. Particulary, this avoids the case when pip holds onto
- # the files in *additional_paths*, preventing us to remove them at the end of the
- # invocation.
- code = f"""
-import runpy
-import sys
-sys.path = {additional_paths or []} + sys.path
-sys.argv[1:] = {args}
-runpy.run_module("pip", run_name="__main__", alter_sys=True)
-"""
- return subprocess.run([sys.executable, "-c", code], check=True).returncode
+ # Run the bootstraping in a subprocess to avoid leaking any state that happens
+ # after pip has executed. Particulary, this avoids the case when pip holds onto
+ # the files in *additional_paths*, preventing us to remove them at the end of the
+ # invocation.
+ code = f"""
+import runpy
+import sys
+sys.path = {additional_paths or []} + sys.path
+sys.argv[1:] = {args}
+runpy.run_module("pip", run_name="__main__", alter_sys=True)
+"""
+ return subprocess.run([sys.executable, "-c", code], check=True).returncode
def version():
@@ -79,8 +79,8 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
if altinstall and default_pip:
raise ValueError("Cannot use altinstall and default_pip together")
- sys.audit("ensurepip.bootstrap", root)
-
+ sys.audit("ensurepip.bootstrap", root)
+
_disable_pip_configuration_settings()
# By default, installing pip and setuptools installs all of the
@@ -100,11 +100,11 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
# Put our bundled wheels into a temporary directory and construct the
# additional paths that need added to sys.path
additional_paths = []
- for project, version, py_tag in _PROJECTS:
- wheel_name = "{}-{}-{}-none-any.whl".format(project, version, py_tag)
- whl = resources.read_binary(
- _bundled,
- wheel_name,
+ for project, version, py_tag in _PROJECTS:
+ wheel_name = "{}-{}-{}-none-any.whl".format(project, version, py_tag)
+ whl = resources.read_binary(
+ _bundled,
+ wheel_name,
)
with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
fp.write(whl)
@@ -112,7 +112,7 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
additional_paths.append(os.path.join(tmpdir, wheel_name))
# Construct the arguments to be passed to the pip command
- args = ["install", "--no-cache-dir", "--no-index", "--find-links", tmpdir]
+ args = ["install", "--no-cache-dir", "--no-index", "--find-links", tmpdir]
if root:
args += ["--root", root]
if upgrade:
diff --git a/contrib/tools/python3/src/Lib/enum.py b/contrib/tools/python3/src/Lib/enum.py
index cda835e852..ee4c4c04f9 100644
--- a/contrib/tools/python3/src/Lib/enum.py
+++ b/contrib/tools/python3/src/Lib/enum.py
@@ -10,54 +10,54 @@ __all__ = [
def _is_descriptor(obj):
- """
- Returns True if obj is a descriptor, False otherwise.
- """
+ """
+ Returns True if obj is a descriptor, False otherwise.
+ """
return (
hasattr(obj, '__get__') or
hasattr(obj, '__set__') or
- hasattr(obj, '__delete__')
- )
+ hasattr(obj, '__delete__')
+ )
def _is_dunder(name):
- """
- Returns True if a __dunder__ name, False otherwise.
- """
- return (
- len(name) > 4 and
+ """
+ Returns True if a __dunder__ name, False otherwise.
+ """
+ return (
+ len(name) > 4 and
name[:2] == name[-2:] == '__' and
name[2] != '_' and
- name[-3] != '_'
- )
+ name[-3] != '_'
+ )
def _is_sunder(name):
- """
- Returns True if a _sunder_ name, False otherwise.
- """
- return (
- len(name) > 2 and
+ """
+ Returns True if a _sunder_ name, False otherwise.
+ """
+ return (
+ len(name) > 2 and
name[0] == name[-1] == '_' and
name[1:2] != '_' and
- name[-2:-1] != '_'
- )
-
-def _is_private(cls_name, name):
- # do not use `re` as `re` imports `enum`
- pattern = '_%s__' % (cls_name, )
- if (
- len(name) >= 5
- and name.startswith(pattern)
- and name[len(pattern)] != '_'
- and (name[-1] != '_' or name[-2] != '_')
- ):
- return True
- else:
- return False
-
+ name[-2:-1] != '_'
+ )
+
+def _is_private(cls_name, name):
+ # do not use `re` as `re` imports `enum`
+ pattern = '_%s__' % (cls_name, )
+ if (
+ len(name) >= 5
+ and name.startswith(pattern)
+ and name[len(pattern)] != '_'
+ and (name[-1] != '_' or name[-2] != '_')
+ ):
+ return True
+ else:
+ return False
+
def _make_class_unpicklable(cls):
- """
- Make the given class un-picklable.
- """
+ """
+ Make the given class un-picklable.
+ """
def _break_on_call_reduce(self, proto):
raise TypeError('%r cannot be pickled' % self)
cls.__reduce_ex__ = _break_on_call_reduce
@@ -72,8 +72,8 @@ class auto:
class _EnumDict(dict):
- """
- Track enum member order and ensure member names are not reused.
+ """
+ Track enum member order and ensure member names are not reused.
EnumMeta will use the names found in self._member_names as the
enumeration member names.
@@ -83,25 +83,25 @@ class _EnumDict(dict):
self._member_names = []
self._last_values = []
self._ignore = []
- self._auto_called = False
+ self._auto_called = False
def __setitem__(self, key, value):
- """
- Changes anything not dundered or not a descriptor.
+ """
+ Changes anything not dundered or not a descriptor.
If an enum member name is used twice, an error is raised; duplicate
values are not checked for.
Single underscore (sunder) names are reserved.
"""
- if _is_private(self._cls_name, key):
- import warnings
- warnings.warn(
- "private variables, such as %r, will be normal attributes in 3.10"
- % (key, ),
- DeprecationWarning,
- stacklevel=2,
- )
+ if _is_private(self._cls_name, key):
+ import warnings
+ warnings.warn(
+ "private variables, such as %r, will be normal attributes in 3.10"
+ % (key, ),
+ DeprecationWarning,
+ stacklevel=2,
+ )
if _is_sunder(key):
if key not in (
'_order_', '_create_pseudo_member_',
@@ -109,9 +109,9 @@ class _EnumDict(dict):
):
raise ValueError('_names_ are reserved for future Enum use')
if key == '_generate_next_value_':
- # check if members already defined as auto()
- if self._auto_called:
- raise TypeError("_generate_next_value_ must be defined before members")
+ # check if members already defined as auto()
+ if self._auto_called:
+ raise TypeError("_generate_next_value_ must be defined before members")
setattr(self, '_generate_next_value', value)
elif key == '_ignore_':
if isinstance(value, str):
@@ -121,10 +121,10 @@ class _EnumDict(dict):
self._ignore = value
already = set(value) & set(self._member_names)
if already:
- raise ValueError(
- '_ignore_ cannot specify already set names: %r'
- % (already, )
- )
+ raise ValueError(
+ '_ignore_ cannot specify already set names: %r'
+ % (already, )
+ )
elif _is_dunder(key):
if key == '__order__':
key = '_order_'
@@ -139,13 +139,13 @@ class _EnumDict(dict):
raise TypeError('%r already defined as: %r' % (key, self[key]))
if isinstance(value, auto):
if value.value == _auto_null:
- value.value = self._generate_next_value(
- key,
- 1,
- len(self._member_names),
- self._last_values[:],
- )
- self._auto_called = True
+ value.value = self._generate_next_value(
+ key,
+ 1,
+ len(self._member_names),
+ self._last_values[:],
+ )
+ self._auto_called = True
value = value.value
self._member_names.append(key)
self._last_values.append(value)
@@ -158,25 +158,25 @@ class _EnumDict(dict):
Enum = None
class EnumMeta(type):
- """
- Metaclass for Enum
- """
+ """
+ Metaclass for Enum
+ """
@classmethod
- def __prepare__(metacls, cls, bases, **kwds):
- # check that previous enum members do not exist
- metacls._check_for_existing_members(cls, bases)
+ def __prepare__(metacls, cls, bases, **kwds):
+ # check that previous enum members do not exist
+ metacls._check_for_existing_members(cls, bases)
# create the namespace dict
enum_dict = _EnumDict()
- enum_dict._cls_name = cls
+ enum_dict._cls_name = cls
# inherit previous flags and _generate_next_value_ function
- member_type, first_enum = metacls._get_mixins_(cls, bases)
+ member_type, first_enum = metacls._get_mixins_(cls, bases)
if first_enum is not None:
- enum_dict['_generate_next_value_'] = getattr(
- first_enum, '_generate_next_value_', None,
- )
+ enum_dict['_generate_next_value_'] = getattr(
+ first_enum, '_generate_next_value_', None,
+ )
return enum_dict
- def __new__(metacls, cls, bases, classdict, **kwds):
+ def __new__(metacls, cls, bases, classdict, **kwds):
# an Enum class is final once enumeration items have been defined; it
# cannot be mixed with other types (int, float, etc.) if it has an
# inherited __new__ unless a new __new__ is defined (or the resulting
@@ -187,10 +187,10 @@ class EnumMeta(type):
ignore = classdict['_ignore_']
for key in ignore:
classdict.pop(key, None)
- member_type, first_enum = metacls._get_mixins_(cls, bases)
- __new__, save_new, use_args = metacls._find_new_(
- classdict, member_type, first_enum,
- )
+ member_type, first_enum = metacls._get_mixins_(cls, bases)
+ __new__, save_new, use_args = metacls._find_new_(
+ classdict, member_type, first_enum,
+ )
# save enum items into separate mapping so they don't get baked into
# the new class
@@ -211,18 +211,18 @@ class EnumMeta(type):
if '__doc__' not in classdict:
classdict['__doc__'] = 'An enumeration.'
- enum_class = super().__new__(metacls, cls, bases, classdict, **kwds)
+ enum_class = super().__new__(metacls, cls, bases, classdict, **kwds)
enum_class._member_names_ = [] # names in definition order
- enum_class._member_map_ = {} # name->value map
+ enum_class._member_map_ = {} # name->value map
enum_class._member_type_ = member_type
# save DynamicClassAttribute attributes from super classes so we know
# if we can take the shortcut of storing members in the class dict
- dynamic_attributes = {
- k for c in enum_class.mro()
- for k, v in c.__dict__.items()
- if isinstance(v, DynamicClassAttribute)
- }
+ dynamic_attributes = {
+ k for c in enum_class.mro()
+ for k, v in c.__dict__.items()
+ if isinstance(v, DynamicClassAttribute)
+ }
# Reverse value->name map for hashable values.
enum_class._value2member_map_ = {}
@@ -242,32 +242,32 @@ class EnumMeta(type):
methods = ('__getnewargs_ex__', '__getnewargs__',
'__reduce_ex__', '__reduce__')
if not any(m in member_type.__dict__ for m in methods):
- if '__new__' in classdict:
- # too late, sabotage
- _make_class_unpicklable(enum_class)
- else:
- # final attempt to verify that pickling would work:
- # travel mro until __new__ is found, checking for
- # __reduce__ and friends along the way -- if any of them
- # are found before/when __new__ is found, pickling should
- # work
- sabotage = None
- for chain in bases:
- for base in chain.__mro__:
- if base is object:
- continue
- elif any(m in base.__dict__ for m in methods):
- # found one, we're good
- sabotage = False
- break
- elif '__new__' in base.__dict__:
- # not good
- sabotage = True
- break
- if sabotage is not None:
- break
- if sabotage:
- _make_class_unpicklable(enum_class)
+ if '__new__' in classdict:
+ # too late, sabotage
+ _make_class_unpicklable(enum_class)
+ else:
+ # final attempt to verify that pickling would work:
+ # travel mro until __new__ is found, checking for
+ # __reduce__ and friends along the way -- if any of them
+ # are found before/when __new__ is found, pickling should
+ # work
+ sabotage = None
+ for chain in bases:
+ for base in chain.__mro__:
+ if base is object:
+ continue
+ elif any(m in base.__dict__ for m in methods):
+ # found one, we're good
+ sabotage = False
+ break
+ elif '__new__' in base.__dict__:
+ # not good
+ sabotage = True
+ break
+ if sabotage is not None:
+ break
+ if sabotage:
+ _make_class_unpicklable(enum_class)
# instantiate them, checking for duplicates as we go
# we instantiate first instead of checking for duplicates first in case
# a custom __new__ is doing something funky with the values -- such as
@@ -320,11 +320,11 @@ class EnumMeta(type):
# double check that repr and friends are not the mixin's or various
# things break (such as pickle)
- # however, if the method is defined in the Enum itself, don't replace
- # it
+ # however, if the method is defined in the Enum itself, don't replace
+ # it
for name in ('__repr__', '__str__', '__format__', '__reduce_ex__'):
- if name in classdict:
- continue
+ if name in classdict:
+ continue
class_method = getattr(enum_class, name)
obj_method = getattr(member_type, name, None)
enum_method = getattr(first_enum, name, None)
@@ -356,8 +356,8 @@ class EnumMeta(type):
return True
def __call__(cls, value, names=None, *, module=None, qualname=None, type=None, start=1):
- """
- Either returns an existing member, or creates a new enum class.
+ """
+ Either returns an existing member, or creates a new enum class.
This method is used both when an enum class is given a value to match
to an enumeration member (i.e. Color(3)) and for the functional API
@@ -383,38 +383,38 @@ class EnumMeta(type):
if names is None: # simple value lookup
return cls.__new__(cls, value)
# otherwise, functional API: we're creating a new Enum type
- return cls._create_(
- value,
- names,
- module=module,
- qualname=qualname,
- type=type,
- start=start,
- )
+ return cls._create_(
+ value,
+ names,
+ module=module,
+ qualname=qualname,
+ type=type,
+ start=start,
+ )
def __contains__(cls, member):
if not isinstance(member, Enum):
- raise TypeError(
- "unsupported operand type(s) for 'in': '%s' and '%s'" % (
- type(member).__qualname__, cls.__class__.__qualname__))
+ raise TypeError(
+ "unsupported operand type(s) for 'in': '%s' and '%s'" % (
+ type(member).__qualname__, cls.__class__.__qualname__))
return isinstance(member, cls) and member._name_ in cls._member_map_
def __delattr__(cls, attr):
# nicer error message when someone tries to delete an attribute
# (see issue19025).
if attr in cls._member_map_:
- raise AttributeError("%s: cannot delete Enum member." % cls.__name__)
+ raise AttributeError("%s: cannot delete Enum member." % cls.__name__)
super().__delattr__(attr)
def __dir__(self):
- return (
- ['__class__', '__doc__', '__members__', '__module__']
- + self._member_names_
- )
+ return (
+ ['__class__', '__doc__', '__members__', '__module__']
+ + self._member_names_
+ )
def __getattr__(cls, name):
- """
- Return the enum member matching `name`
+ """
+ Return the enum member matching `name`
We use __getattr__ instead of descriptors or inserting into the enum
class' __dict__ in order to support `name` and `value` being both
@@ -432,9 +432,9 @@ class EnumMeta(type):
return cls._member_map_[name]
def __iter__(cls):
- """
- Returns members in definition order.
- """
+ """
+ Returns members in definition order.
+ """
return (cls._member_map_[name] for name in cls._member_names_)
def __len__(cls):
@@ -442,8 +442,8 @@ class EnumMeta(type):
@property
def __members__(cls):
- """
- Returns a mapping of member name->value.
+ """
+ Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
@@ -454,14 +454,14 @@ class EnumMeta(type):
return "<enum %r>" % cls.__name__
def __reversed__(cls):
- """
- Returns members in reverse definition order.
- """
+ """
+ Returns members in reverse definition order.
+ """
return (cls._member_map_[name] for name in reversed(cls._member_names_))
def __setattr__(cls, name, value):
- """
- Block attempts to reassign Enum members.
+ """
+ Block attempts to reassign Enum members.
A simple assignment to the class namespace only changes one of the
several possible ways to get an Enum member from the Enum class,
@@ -473,8 +473,8 @@ class EnumMeta(type):
super().__setattr__(name, value)
def _create_(cls, class_name, names, *, module=None, qualname=None, type=None, start=1):
- """
- Convenience method to create a new Enum class.
+ """
+ Convenience method to create a new Enum class.
`names` can be:
@@ -486,7 +486,7 @@ class EnumMeta(type):
"""
metacls = cls.__class__
bases = (cls, ) if type is None else (type, cls)
- _, first_enum = cls._get_mixins_(cls, bases)
+ _, first_enum = cls._get_mixins_(cls, bases)
classdict = metacls.__prepare__(class_name, bases)
# special processing needed for names?
@@ -514,7 +514,7 @@ class EnumMeta(type):
if module is None:
try:
module = sys._getframe(2).f_globals['__name__']
- except (AttributeError, ValueError, KeyError):
+ except (AttributeError, ValueError, KeyError):
pass
if module is None:
_make_class_unpicklable(enum_class)
@@ -525,53 +525,53 @@ class EnumMeta(type):
return enum_class
- def _convert_(cls, name, module, filter, source=None):
- """
- Create a new Enum subclass that replaces a collection of global constants
- """
- # convert all constants from source (or module) that pass filter() to
- # a new Enum called name, and export the enum and its members back to
- # module;
- # also, replace the __reduce_ex__ method so unpickling works in
- # previous Python versions
- module_globals = vars(sys.modules[module])
- if source:
- source = vars(source)
- else:
- source = module_globals
- # _value2member_map_ is populated in the same order every time
- # for a consistent reverse mapping of number to name when there
- # are multiple names for the same number.
- members = [
- (name, value)
- for name, value in source.items()
- if filter(name)]
- try:
- # sort by value
- members.sort(key=lambda t: (t[1], t[0]))
- except TypeError:
- # unless some values aren't comparable, in which case sort by name
- members.sort(key=lambda t: t[0])
- cls = cls(name, members, module=module)
- cls.__reduce_ex__ = _reduce_ex_by_name
- module_globals.update(cls.__members__)
- module_globals[name] = cls
- return cls
-
+ def _convert_(cls, name, module, filter, source=None):
+ """
+ Create a new Enum subclass that replaces a collection of global constants
+ """
+ # convert all constants from source (or module) that pass filter() to
+ # a new Enum called name, and export the enum and its members back to
+ # module;
+ # also, replace the __reduce_ex__ method so unpickling works in
+ # previous Python versions
+ module_globals = vars(sys.modules[module])
+ if source:
+ source = vars(source)
+ else:
+ source = module_globals
+ # _value2member_map_ is populated in the same order every time
+ # for a consistent reverse mapping of number to name when there
+ # are multiple names for the same number.
+ members = [
+ (name, value)
+ for name, value in source.items()
+ if filter(name)]
+ try:
+ # sort by value
+ members.sort(key=lambda t: (t[1], t[0]))
+ except TypeError:
+ # unless some values aren't comparable, in which case sort by name
+ members.sort(key=lambda t: t[0])
+ cls = cls(name, members, module=module)
+ cls.__reduce_ex__ = _reduce_ex_by_name
+ module_globals.update(cls.__members__)
+ module_globals[name] = cls
+ return cls
+
+ @staticmethod
+ def _check_for_existing_members(class_name, bases):
+ for chain in bases:
+ for base in chain.__mro__:
+ if issubclass(base, Enum) and base._member_names_:
+ raise TypeError(
+ "%s: cannot extend enumeration %r"
+ % (class_name, base.__name__)
+ )
+
@staticmethod
- def _check_for_existing_members(class_name, bases):
- for chain in bases:
- for base in chain.__mro__:
- if issubclass(base, Enum) and base._member_names_:
- raise TypeError(
- "%s: cannot extend enumeration %r"
- % (class_name, base.__name__)
- )
-
- @staticmethod
- def _get_mixins_(class_name, bases):
- """
- Returns the type for creating enum members, and the first inherited
+ def _get_mixins_(class_name, bases):
+ """
+ Returns the type for creating enum members, and the first inherited
enum class.
bases: the tuple of bases that was given to __new__
@@ -580,29 +580,29 @@ class EnumMeta(type):
return object, Enum
def _find_data_type(bases):
- data_types = set()
+ data_types = set()
for chain in bases:
- candidate = None
+ candidate = None
for base in chain.__mro__:
if base is object:
continue
- elif issubclass(base, Enum):
- if base._member_type_ is not object:
- data_types.add(base._member_type_)
- break
+ elif issubclass(base, Enum):
+ if base._member_type_ is not object:
+ data_types.add(base._member_type_)
+ break
elif '__new__' in base.__dict__:
if issubclass(base, Enum):
continue
- data_types.add(candidate or base)
- break
- else:
- candidate = candidate or base
- if len(data_types) > 1:
- raise TypeError('%r: too many data types: %r' % (class_name, data_types))
- elif data_types:
- return data_types.pop()
- else:
- return None
+ data_types.add(candidate or base)
+ break
+ else:
+ candidate = candidate or base
+ if len(data_types) > 1:
+ raise TypeError('%r: too many data types: %r' % (class_name, data_types))
+ elif data_types:
+ return data_types.pop()
+ else:
+ return None
# ensure final parent class is an Enum derivative, find any concrete
# data type, and check that Enum has no members
@@ -617,8 +617,8 @@ class EnumMeta(type):
@staticmethod
def _find_new_(classdict, member_type, first_enum):
- """
- Returns the __new__ to be used for creating the enum members.
+ """
+ Returns the __new__ to be used for creating the enum members.
classdict: the class dictionary given to __new__
member_type: the data type whose __new__ will be used by default
@@ -662,8 +662,8 @@ class EnumMeta(type):
class Enum(metaclass=EnumMeta):
- """
- Generic enumeration.
+ """
+ Generic enumeration.
Derive from this class to define new enumerations.
"""
@@ -693,34 +693,34 @@ class Enum(metaclass=EnumMeta):
except Exception as e:
exc = e
result = None
- try:
- if isinstance(result, cls):
- return result
- else:
- ve_exc = ValueError("%r is not a valid %s" % (value, cls.__qualname__))
- if result is None and exc is None:
- raise ve_exc
- elif exc is None:
- exc = TypeError(
- 'error in %s._missing_: returned %r instead of None or a valid member'
- % (cls.__name__, result)
- )
- exc.__context__ = ve_exc
- raise exc
- finally:
- # ensure all variables that could hold an exception are destroyed
- exc = None
- ve_exc = None
+ try:
+ if isinstance(result, cls):
+ return result
+ else:
+ ve_exc = ValueError("%r is not a valid %s" % (value, cls.__qualname__))
+ if result is None and exc is None:
+ raise ve_exc
+ elif exc is None:
+ exc = TypeError(
+ 'error in %s._missing_: returned %r instead of None or a valid member'
+ % (cls.__name__, result)
+ )
+ exc.__context__ = ve_exc
+ raise exc
+ finally:
+ # ensure all variables that could hold an exception are destroyed
+ exc = None
+ ve_exc = None
def _generate_next_value_(name, start, count, last_values):
- """
- Generate the next value when not given.
-
- name: the name of the member
- start: the initial start value or None
- count: the number of existing members
- last_value: the last value assigned or None
- """
+ """
+ Generate the next value when not given.
+
+ name: the name of the member
+ start: the initial start value or None
+ count: the number of existing members
+ last_value: the last value assigned or None
+ """
for last_value in reversed(last_values):
try:
return last_value + 1
@@ -731,7 +731,7 @@ class Enum(metaclass=EnumMeta):
@classmethod
def _missing_(cls, value):
- return None
+ return None
def __repr__(self):
return "<%s.%s: %r>" % (
@@ -741,28 +741,28 @@ class Enum(metaclass=EnumMeta):
return "%s.%s" % (self.__class__.__name__, self._name_)
def __dir__(self):
- """
- Returns all members and all public methods
- """
+ """
+ Returns all members and all public methods
+ """
added_behavior = [
m
for cls in self.__class__.mro()
for m in cls.__dict__
if m[0] != '_' and m not in self._member_map_
- ] + [m for m in self.__dict__ if m[0] != '_']
+ ] + [m for m in self.__dict__ if m[0] != '_']
return (['__class__', '__doc__', '__module__'] + added_behavior)
def __format__(self, format_spec):
- """
- Returns format using actual value type unless __str__ has been overridden.
- """
+ """
+ Returns format using actual value type unless __str__ has been overridden.
+ """
# mixed-in Enums should use the mixed-in type's __format__, otherwise
# we can get strange results with the Enum name showing up instead of
# the value
- # pure Enum branch, or branch with __str__ explicitly overridden
- str_overridden = type(self).__str__ not in (Enum.__str__, Flag.__str__)
- if self._member_type_ is object or str_overridden:
+ # pure Enum branch, or branch with __str__ explicitly overridden
+ str_overridden = type(self).__str__ not in (Enum.__str__, Flag.__str__)
+ if self._member_type_ is object or str_overridden:
cls = str
val = str(self)
# mix-in branch
@@ -803,16 +803,16 @@ def _reduce_ex_by_name(self, proto):
return self.name
class Flag(Enum):
- """
- Support for flags
- """
+ """
+ Support for flags
+ """
def _generate_next_value_(name, start, count, last_values):
"""
Generate the next value when not given.
name: the name of the member
- start: the initial start value or None
+ start: the initial start value or None
count: the number of existing members
last_value: the last value assigned or None
"""
@@ -828,9 +828,9 @@ class Flag(Enum):
@classmethod
def _missing_(cls, value):
- """
- Returns member (possibly creating it) if one can be found for value.
- """
+ """
+ Returns member (possibly creating it) if one can be found for value.
+ """
original_value = value
if value < 0:
value = ~value
@@ -849,7 +849,7 @@ class Flag(Enum):
# verify all bits are accounted for
_, extra_flags = _decompose(cls, value)
if extra_flags:
- raise ValueError("%r is not a valid %s" % (value, cls.__qualname__))
+ raise ValueError("%r is not a valid %s" % (value, cls.__qualname__))
# construct a singleton enum pseudo-member
pseudo_member = object.__new__(cls)
pseudo_member._name_ = None
@@ -860,13 +860,13 @@ class Flag(Enum):
return pseudo_member
def __contains__(self, other):
- """
- Returns True if self has at least the same flags set as other.
- """
+ """
+ Returns True if self has at least the same flags set as other.
+ """
if not isinstance(other, self.__class__):
- raise TypeError(
- "unsupported operand type(s) for 'in': '%s' and '%s'" % (
- type(other).__qualname__, self.__class__.__qualname__))
+ raise TypeError(
+ "unsupported operand type(s) for 'in': '%s' and '%s'" % (
+ type(other).__qualname__, self.__class__.__qualname__))
return other._value_ & self._value_ == other._value_
def __repr__(self):
@@ -921,25 +921,25 @@ class Flag(Enum):
class IntFlag(int, Flag):
- """
- Support for integer-based Flags
- """
+ """
+ Support for integer-based Flags
+ """
@classmethod
def _missing_(cls, value):
- """
- Returns member (possibly creating it) if one can be found for value.
- """
+ """
+ Returns member (possibly creating it) if one can be found for value.
+ """
if not isinstance(value, int):
- raise ValueError("%r is not a valid %s" % (value, cls.__qualname__))
+ raise ValueError("%r is not a valid %s" % (value, cls.__qualname__))
new_member = cls._create_pseudo_member_(value)
return new_member
@classmethod
def _create_pseudo_member_(cls, value):
- """
- Create a composite member iff value contains only members.
- """
+ """
+ Create a composite member iff value contains only members.
+ """
pseudo_member = cls._value2member_map_.get(value, None)
if pseudo_member is None:
need_to_create = [value]
@@ -994,15 +994,15 @@ class IntFlag(int, Flag):
def _high_bit(value):
- """
- returns index of highest bit, or -1 if value is zero or negative
- """
+ """
+ returns index of highest bit, or -1 if value is zero or negative
+ """
return value.bit_length() - 1
def unique(enumeration):
- """
- Class decorator for enumerations ensuring unique member values.
- """
+ """
+ Class decorator for enumerations ensuring unique member values.
+ """
duplicates = []
for name, member in enumeration.__members__.items():
if name != member.name:
@@ -1015,26 +1015,26 @@ def unique(enumeration):
return enumeration
def _decompose(flag, value):
- """
- Extract all members from the value.
- """
+ """
+ Extract all members from the value.
+ """
# _decompose is only called if the value is not named
not_covered = value
negative = value < 0
members = []
- for member in flag:
- member_value = member.value
+ for member in flag:
+ member_value = member.value
if member_value and member_value & value == member_value:
members.append(member)
not_covered &= ~member_value
- if not negative:
- tmp = not_covered
- while tmp:
- flag_value = 2 ** _high_bit(tmp)
- if flag_value in flag._value2member_map_:
- members.append(flag._value2member_map_[flag_value])
- not_covered &= ~flag_value
- tmp &= ~flag_value
+ if not negative:
+ tmp = not_covered
+ while tmp:
+ flag_value = 2 ** _high_bit(tmp)
+ if flag_value in flag._value2member_map_:
+ members.append(flag._value2member_map_[flag_value])
+ not_covered &= ~flag_value
+ tmp &= ~flag_value
if not members and value in flag._value2member_map_:
members.append(flag._value2member_map_[value])
members.sort(key=lambda m: m._value_, reverse=True)
diff --git a/contrib/tools/python3/src/Lib/filecmp.py b/contrib/tools/python3/src/Lib/filecmp.py
index ee286da966..1893f909de 100644
--- a/contrib/tools/python3/src/Lib/filecmp.py
+++ b/contrib/tools/python3/src/Lib/filecmp.py
@@ -13,7 +13,7 @@ Functions:
import os
import stat
from itertools import filterfalse
-from types import GenericAlias
+from types import GenericAlias
__all__ = ['clear_cache', 'cmp', 'dircmp', 'cmpfiles', 'DEFAULT_IGNORES']
@@ -36,9 +36,9 @@ def cmp(f1, f2, shallow=True):
f2 -- Second file name
- shallow -- treat files as identical if their stat signatures (type, size,
- mtime) are identical. Otherwise, files are considered different
- if their sizes or contents differ. [default: True]
+ shallow -- treat files as identical if their stat signatures (type, size,
+ mtime) are identical. Otherwise, files are considered different
+ if their sizes or contents differ. [default: True]
Return value:
@@ -158,12 +158,12 @@ class dircmp:
ok = 1
try:
a_stat = os.stat(a_path)
- except OSError:
+ except OSError:
# print('Can\'t stat', a_path, ':', why.args[1])
ok = 0
try:
b_stat = os.stat(b_path)
- except OSError:
+ except OSError:
# print('Can\'t stat', b_path, ':', why.args[1])
ok = 0
@@ -249,9 +249,9 @@ class dircmp:
self.methodmap[attr](self)
return getattr(self, attr)
- __class_getitem__ = classmethod(GenericAlias)
-
-
+ __class_getitem__ = classmethod(GenericAlias)
+
+
def cmpfiles(a, b, common, shallow=True):
"""Compare common files in two directories.
diff --git a/contrib/tools/python3/src/Lib/fileinput.py b/contrib/tools/python3/src/Lib/fileinput.py
index 3b40153cc2..0c31f93ed8 100644
--- a/contrib/tools/python3/src/Lib/fileinput.py
+++ b/contrib/tools/python3/src/Lib/fileinput.py
@@ -8,9 +8,9 @@ Typical use is:
This iterates over the lines of all files listed in sys.argv[1:],
defaulting to sys.stdin if the list is empty. If a filename is '-' it
-is also replaced by sys.stdin and the optional arguments mode and
-openhook are ignored. To specify an alternative list of filenames,
-pass it as the argument to input(). A single file name is also allowed.
+is also replaced by sys.stdin and the optional arguments mode and
+openhook are ignored. To specify an alternative list of filenames,
+pass it as the argument to input(). A single file name is also allowed.
Functions filename(), lineno() return the filename and cumulative line
number of the line that has just been read; filelineno() returns its
@@ -73,7 +73,7 @@ XXX Possible additions:
"""
import sys, os
-from types import GenericAlias
+from types import GenericAlias
__all__ = ["input", "close", "nextfile", "filename", "lineno", "filelineno",
"fileno", "isfirstline", "isstdin", "FileInput", "hook_compressed",
@@ -81,7 +81,7 @@ __all__ = ["input", "close", "nextfile", "filename", "lineno", "filelineno",
_state = None
-def input(files=None, inplace=False, backup="", *, mode="r", openhook=None):
+def input(files=None, inplace=False, backup="", *, mode="r", openhook=None):
"""Return an instance of the FileInput class, which can be iterated.
The parameters are passed to the constructor of the FileInput class.
@@ -91,7 +91,7 @@ def input(files=None, inplace=False, backup="", *, mode="r", openhook=None):
global _state
if _state and _state._file:
raise RuntimeError("input() already active")
- _state = FileInput(files, inplace, backup, mode=mode, openhook=openhook)
+ _state = FileInput(files, inplace, backup, mode=mode, openhook=openhook)
return _state
def close():
@@ -173,7 +173,7 @@ def isstdin():
return _state.isstdin()
class FileInput:
- """FileInput([files[, inplace[, backup]]], *, mode=None, openhook=None)
+ """FileInput([files[, inplace[, backup]]], *, mode=None, openhook=None)
Class FileInput is the implementation of the module; its methods
filename(), lineno(), fileline(), isfirstline(), isstdin(), fileno(),
@@ -185,7 +185,7 @@ class FileInput:
sequential order; random access and readline() cannot be mixed.
"""
- def __init__(self, files=None, inplace=False, backup="", *,
+ def __init__(self, files=None, inplace=False, backup="", *,
mode="r", openhook=None):
if isinstance(files, str):
files = (files,)
@@ -218,7 +218,7 @@ class FileInput:
warnings.warn("'U' mode is deprecated",
DeprecationWarning, 2)
self._mode = mode
- self._write_mode = mode.replace('r', 'w') if 'U' not in mode else 'w'
+ self._write_mode = mode.replace('r', 'w') if 'U' not in mode else 'w'
if openhook:
if inplace:
raise ValueError("FileInput cannot use an opening hook in inplace mode")
@@ -256,13 +256,13 @@ class FileInput:
# repeat with next file
def __getitem__(self, i):
- import warnings
- warnings.warn(
- "Support for indexing FileInput objects is deprecated. "
- "Use iterator protocol instead.",
- DeprecationWarning,
- stacklevel=2
- )
+ import warnings
+ warnings.warn(
+ "Support for indexing FileInput objects is deprecated. "
+ "Use iterator protocol instead.",
+ DeprecationWarning,
+ stacklevel=2
+ )
if i != self.lineno():
raise RuntimeError("accessing lines out of order")
try:
@@ -345,16 +345,16 @@ class FileInput:
try:
perm = os.fstat(self._file.fileno()).st_mode
except OSError:
- self._output = open(self._filename, self._write_mode)
+ self._output = open(self._filename, self._write_mode)
else:
mode = os.O_CREAT | os.O_WRONLY | os.O_TRUNC
if hasattr(os, 'O_BINARY'):
mode |= os.O_BINARY
fd = os.open(self._filename, mode, perm)
- self._output = os.fdopen(fd, self._write_mode)
+ self._output = os.fdopen(fd, self._write_mode)
try:
- os.chmod(self._filename, perm)
+ os.chmod(self._filename, perm)
except OSError:
pass
self._savestdout = sys.stdout
@@ -392,9 +392,9 @@ class FileInput:
def isstdin(self):
return self._isstdin
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
def hook_compressed(filename, mode):
ext = os.path.splitext(filename)[1]
if ext == '.gz':
diff --git a/contrib/tools/python3/src/Lib/fnmatch.py b/contrib/tools/python3/src/Lib/fnmatch.py
index ec473b9532..7c52c23067 100644
--- a/contrib/tools/python3/src/Lib/fnmatch.py
+++ b/contrib/tools/python3/src/Lib/fnmatch.py
@@ -16,12 +16,12 @@ import functools
__all__ = ["filter", "fnmatch", "fnmatchcase", "translate"]
-# Build a thread-safe incrementing counter to help create unique regexp group
-# names across calls.
-from itertools import count
-_nextgroupnum = count().__next__
-del count
-
+# Build a thread-safe incrementing counter to help create unique regexp group
+# names across calls.
+from itertools import count
+_nextgroupnum = count().__next__
+del count
+
def fnmatch(name, pat):
"""Test whether FILENAME matches PATTERN.
@@ -52,7 +52,7 @@ def _compile_pattern(pat):
return re.compile(res).match
def filter(names, pat):
- """Construct a list from those elements of the iterable NAMES that match PAT."""
+ """Construct a list from those elements of the iterable NAMES that match PAT."""
result = []
pat = os.path.normcase(pat)
match = _compile_pattern(pat)
@@ -83,19 +83,19 @@ def translate(pat):
There is no way to quote meta-characters.
"""
- STAR = object()
- res = []
- add = res.append
+ STAR = object()
+ res = []
+ add = res.append
i, n = 0, len(pat)
while i < n:
c = pat[i]
i = i+1
if c == '*':
- # compress consecutive `*` into one
- if (not res) or res[-1] is not STAR:
- add(STAR)
+ # compress consecutive `*` into one
+ if (not res) or res[-1] is not STAR:
+ add(STAR)
elif c == '?':
- add('.')
+ add('.')
elif c == '[':
j = i
if j < n and pat[j] == '!':
@@ -105,7 +105,7 @@ def translate(pat):
while j < n and pat[j] != ']':
j = j+1
if j >= n:
- add('\\[')
+ add('\\[')
else:
stuff = pat[i:j]
if '--' not in stuff:
@@ -132,52 +132,52 @@ def translate(pat):
stuff = '^' + stuff[1:]
elif stuff[0] in ('^', '['):
stuff = '\\' + stuff
- add(f'[{stuff}]')
+ add(f'[{stuff}]')
+ else:
+ add(re.escape(c))
+ assert i == n
+
+ # Deal with STARs.
+ inp = res
+ res = []
+ add = res.append
+ i, n = 0, len(inp)
+ # Fixed pieces at the start?
+ while i < n and inp[i] is not STAR:
+ add(inp[i])
+ i += 1
+ # Now deal with STAR fixed STAR fixed ...
+ # For an interior `STAR fixed` pairing, we want to do a minimal
+ # .*? match followed by `fixed`, with no possibility of backtracking.
+ # We can't spell that directly, but can trick it into working by matching
+ # .*?fixed
+ # in a lookahead assertion, save the matched part in a group, then
+ # consume that group via a backreference. If the overall match fails,
+ # the lookahead assertion won't try alternatives. So the translation is:
+ # (?=(?P<name>.*?fixed))(?P=name)
+ # Group names are created as needed: g0, g1, g2, ...
+ # The numbers are obtained from _nextgroupnum() to ensure they're unique
+ # across calls and across threads. This is because people rely on the
+ # undocumented ability to join multiple translate() results together via
+ # "|" to build large regexps matching "one of many" shell patterns.
+ while i < n:
+ assert inp[i] is STAR
+ i += 1
+ if i == n:
+ add(".*")
+ break
+ assert inp[i] is not STAR
+ fixed = []
+ while i < n and inp[i] is not STAR:
+ fixed.append(inp[i])
+ i += 1
+ fixed = "".join(fixed)
+ if i == n:
+ add(".*")
+ add(fixed)
else:
- add(re.escape(c))
- assert i == n
-
- # Deal with STARs.
- inp = res
- res = []
- add = res.append
- i, n = 0, len(inp)
- # Fixed pieces at the start?
- while i < n and inp[i] is not STAR:
- add(inp[i])
- i += 1
- # Now deal with STAR fixed STAR fixed ...
- # For an interior `STAR fixed` pairing, we want to do a minimal
- # .*? match followed by `fixed`, with no possibility of backtracking.
- # We can't spell that directly, but can trick it into working by matching
- # .*?fixed
- # in a lookahead assertion, save the matched part in a group, then
- # consume that group via a backreference. If the overall match fails,
- # the lookahead assertion won't try alternatives. So the translation is:
- # (?=(?P<name>.*?fixed))(?P=name)
- # Group names are created as needed: g0, g1, g2, ...
- # The numbers are obtained from _nextgroupnum() to ensure they're unique
- # across calls and across threads. This is because people rely on the
- # undocumented ability to join multiple translate() results together via
- # "|" to build large regexps matching "one of many" shell patterns.
- while i < n:
- assert inp[i] is STAR
- i += 1
- if i == n:
- add(".*")
- break
- assert inp[i] is not STAR
- fixed = []
- while i < n and inp[i] is not STAR:
- fixed.append(inp[i])
- i += 1
- fixed = "".join(fixed)
- if i == n:
- add(".*")
- add(fixed)
- else:
- groupnum = _nextgroupnum()
- add(f"(?=(?P<g{groupnum}>.*?{fixed}))(?P=g{groupnum})")
- assert i == n
- res = "".join(res)
- return fr'(?s:{res})\Z'
+ groupnum = _nextgroupnum()
+ add(f"(?=(?P<g{groupnum}>.*?{fixed}))(?P=g{groupnum})")
+ assert i == n
+ res = "".join(res)
+ return fr'(?s:{res})\Z'
diff --git a/contrib/tools/python3/src/Lib/fractions.py b/contrib/tools/python3/src/Lib/fractions.py
index b5df2760d5..de3e23b759 100644
--- a/contrib/tools/python3/src/Lib/fractions.py
+++ b/contrib/tools/python3/src/Lib/fractions.py
@@ -10,7 +10,7 @@ import operator
import re
import sys
-__all__ = ['Fraction']
+__all__ = ['Fraction']
# Constants related to the hash implementation; hash(x) is based
@@ -155,9 +155,9 @@ class Fraction(numbers.Rational):
if denominator == 0:
raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
if _normalize:
- g = math.gcd(numerator, denominator)
- if denominator < 0:
- g = -g
+ g = math.gcd(numerator, denominator)
+ if denominator < 0:
+ g = -g
numerator //= g
denominator //= g
self._numerator = numerator
@@ -190,14 +190,14 @@ class Fraction(numbers.Rational):
(cls.__name__, dec, type(dec).__name__))
return cls(*dec.as_integer_ratio())
- def as_integer_ratio(self):
- """Return the integer ratio as a tuple.
-
- Return a tuple of two integers, whose ratio is equal to the
- Fraction and with a positive denominator.
- """
- return (self._numerator, self._denominator)
-
+ def as_integer_ratio(self):
+ """Return the integer ratio as a tuple.
+
+ Return a tuple of two integers, whose ratio is equal to the
+ Fraction and with a positive denominator.
+ """
+ return (self._numerator, self._denominator)
+
def limit_denominator(self, max_denominator=1000000):
"""Closest Fraction to self with denominator at most max_denominator.
@@ -409,27 +409,27 @@ class Fraction(numbers.Rational):
__truediv__, __rtruediv__ = _operator_fallbacks(_div, operator.truediv)
- def _floordiv(a, b):
+ def _floordiv(a, b):
"""a // b"""
- return (a.numerator * b.denominator) // (a.denominator * b.numerator)
+ return (a.numerator * b.denominator) // (a.denominator * b.numerator)
- __floordiv__, __rfloordiv__ = _operator_fallbacks(_floordiv, operator.floordiv)
+ __floordiv__, __rfloordiv__ = _operator_fallbacks(_floordiv, operator.floordiv)
- def _divmod(a, b):
- """(a // b, a % b)"""
- da, db = a.denominator, b.denominator
- div, n_mod = divmod(a.numerator * db, da * b.numerator)
- return div, Fraction(n_mod, da * db)
+ def _divmod(a, b):
+ """(a // b, a % b)"""
+ da, db = a.denominator, b.denominator
+ div, n_mod = divmod(a.numerator * db, da * b.numerator)
+ return div, Fraction(n_mod, da * db)
- __divmod__, __rdivmod__ = _operator_fallbacks(_divmod, divmod)
-
- def _mod(a, b):
+ __divmod__, __rdivmod__ = _operator_fallbacks(_divmod, divmod)
+
+ def _mod(a, b):
"""a % b"""
- da, db = a.denominator, b.denominator
- return Fraction((a.numerator * db) % (b.numerator * da), da * db)
+ da, db = a.denominator, b.denominator
+ return Fraction((a.numerator * db) % (b.numerator * da), da * db)
+
+ __mod__, __rmod__ = _operator_fallbacks(_mod, operator.mod)
- __mod__, __rmod__ = _operator_fallbacks(_mod, operator.mod)
-
def __pow__(a, b):
"""a ** b
@@ -494,16 +494,16 @@ class Fraction(numbers.Rational):
return a._numerator // a._denominator
def __floor__(a):
- """math.floor(a)"""
+ """math.floor(a)"""
return a.numerator // a.denominator
def __ceil__(a):
- """math.ceil(a)"""
+ """math.ceil(a)"""
# The negations cleverly convince floordiv to return the ceiling.
return -(-a.numerator // a.denominator)
def __round__(self, ndigits=None):
- """round(self, ndigits)
+ """round(self, ndigits)
Rounds half toward even.
"""
@@ -530,34 +530,34 @@ class Fraction(numbers.Rational):
def __hash__(self):
"""hash(self)"""
- # To make sure that the hash of a Fraction agrees with the hash
- # of a numerically equal integer, float or Decimal instance, we
- # follow the rules for numeric hashes outlined in the
- # documentation. (See library docs, 'Built-in Types').
+ # To make sure that the hash of a Fraction agrees with the hash
+ # of a numerically equal integer, float or Decimal instance, we
+ # follow the rules for numeric hashes outlined in the
+ # documentation. (See library docs, 'Built-in Types').
- try:
- dinv = pow(self._denominator, -1, _PyHASH_MODULUS)
- except ValueError:
- # ValueError means there is no modular inverse.
+ try:
+ dinv = pow(self._denominator, -1, _PyHASH_MODULUS)
+ except ValueError:
+ # ValueError means there is no modular inverse.
hash_ = _PyHASH_INF
else:
- # The general algorithm now specifies that the absolute value of
- # the hash is
- # (|N| * dinv) % P
- # where N is self._numerator and P is _PyHASH_MODULUS. That's
- # optimized here in two ways: first, for a non-negative int i,
- # hash(i) == i % P, but the int hash implementation doesn't need
- # to divide, and is faster than doing % P explicitly. So we do
- # hash(|N| * dinv)
- # instead. Second, N is unbounded, so its product with dinv may
- # be arbitrarily expensive to compute. The final answer is the
- # same if we use the bounded |N| % P instead, which can again
- # be done with an int hash() call. If 0 <= i < P, hash(i) == i,
- # so this nested hash() call wastes a bit of time making a
- # redundant copy when |N| < P, but can save an arbitrarily large
- # amount of computation for large |N|.
- hash_ = hash(hash(abs(self._numerator)) * dinv)
- result = hash_ if self._numerator >= 0 else -hash_
+ # The general algorithm now specifies that the absolute value of
+ # the hash is
+ # (|N| * dinv) % P
+ # where N is self._numerator and P is _PyHASH_MODULUS. That's
+ # optimized here in two ways: first, for a non-negative int i,
+ # hash(i) == i % P, but the int hash implementation doesn't need
+ # to divide, and is faster than doing % P explicitly. So we do
+ # hash(|N| * dinv)
+ # instead. Second, N is unbounded, so its product with dinv may
+ # be arbitrarily expensive to compute. The final answer is the
+ # same if we use the bounded |N| % P instead, which can again
+ # be done with an int hash() call. If 0 <= i < P, hash(i) == i,
+ # so this nested hash() call wastes a bit of time making a
+ # redundant copy when |N| < P, but can save an arbitrarily large
+ # amount of computation for large |N|.
+ hash_ = hash(hash(abs(self._numerator)) * dinv)
+ result = hash_ if self._numerator >= 0 else -hash_
return -2 if result == -1 else result
def __eq__(a, b):
@@ -621,9 +621,9 @@ class Fraction(numbers.Rational):
def __bool__(a):
"""a != 0"""
- # bpo-39274: Use bool() because (a._numerator != 0) can return an
- # object which is not a bool.
- return bool(a._numerator)
+ # bpo-39274: Use bool() because (a._numerator != 0) can return an
+ # object which is not a bool.
+ return bool(a._numerator)
# support for pickling, copy, and deepcopy
diff --git a/contrib/tools/python3/src/Lib/ftplib.py b/contrib/tools/python3/src/Lib/ftplib.py
index d57bad9e91..7c5a50715f 100644
--- a/contrib/tools/python3/src/Lib/ftplib.py
+++ b/contrib/tools/python3/src/Lib/ftplib.py
@@ -75,14 +75,14 @@ class FTP:
'''An FTP client class.
To create a connection, call the class using these arguments:
- host, user, passwd, acct, timeout, source_address, encoding
+ host, user, passwd, acct, timeout, source_address, encoding
The first four arguments are all strings, and have default value ''.
- The parameter ´timeout´ must be numeric and defaults to None if not
- passed, meaning that no timeout will be set on any ftp socket(s).
+ The parameter ´timeout´ must be numeric and defaults to None if not
+ passed, meaning that no timeout will be set on any ftp socket(s).
If a timeout is passed, then this is now the default timeout for all ftp
socket operations for this instance.
- The last parameter is the encoding of filenames, which defaults to utf-8.
+ The last parameter is the encoding of filenames, which defaults to utf-8.
Then use self.connect() with optional host and port argument.
@@ -102,19 +102,19 @@ class FTP:
sock = None
file = None
welcome = None
- passiveserver = True
- # Disables https://bugs.python.org/issue43285 security if set to True.
- trust_server_pasv_ipv4_address = False
+ passiveserver = True
+ # Disables https://bugs.python.org/issue43285 security if set to True.
+ trust_server_pasv_ipv4_address = False
def __init__(self, host='', user='', passwd='', acct='',
- timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *,
- encoding='utf-8'):
- """Initialization method (called by class instantiation).
- Initialize host to localhost, port to standard ftp port.
- Optional arguments are host (for connect()),
- and user, passwd, acct (for login()).
- """
- self.encoding = encoding
+ timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *,
+ encoding='utf-8'):
+ """Initialization method (called by class instantiation).
+ Initialize host to localhost, port to standard ftp port.
+ Optional arguments are host (for connect()),
+ and user, passwd, acct (for login()).
+ """
+ self.encoding = encoding
self.source_address = source_address
self.timeout = timeout
if host:
@@ -150,11 +150,11 @@ class FTP:
self.port = port
if timeout != -999:
self.timeout = timeout
- if self.timeout is not None and not self.timeout:
- raise ValueError('Non-blocking socket (timeout=0) is not supported')
+ if self.timeout is not None and not self.timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
if source_address is not None:
self.source_address = source_address
- sys.audit("ftplib.connect", self, self.host, self.port)
+ sys.audit("ftplib.connect", self, self.host, self.port)
self.sock = socket.create_connection((self.host, self.port), self.timeout,
source_address=self.source_address)
self.af = self.sock.family
@@ -195,7 +195,7 @@ class FTP:
def putline(self, line):
if '\r' in line or '\n' in line:
raise ValueError('an illegal newline character should not be contained')
- sys.audit("ftplib.sendcmd", self, line)
+ sys.audit("ftplib.sendcmd", self, line)
line = line + CRLF
if self.debugging > 1:
print('*put*', self.sanitize(line))
@@ -310,7 +310,7 @@ class FTP:
def makeport(self):
'''Create a new socket and send a PORT command for it.'''
- sock = socket.create_server(("", 0), family=self.af, backlog=1)
+ sock = socket.create_server(("", 0), family=self.af, backlog=1)
port = sock.getsockname()[1] # Get proper port
host = self.sock.getsockname()[0] # Get proper host
if self.af == socket.AF_INET:
@@ -322,13 +322,13 @@ class FTP:
return sock
def makepasv(self):
- """Internal: Does the PASV or EPSV handshake -> (address, port)"""
+ """Internal: Does the PASV or EPSV handshake -> (address, port)"""
if self.af == socket.AF_INET:
- untrusted_host, port = parse227(self.sendcmd('PASV'))
- if self.trust_server_pasv_ipv4_address:
- host = untrusted_host
- else:
- host = self.sock.getpeername()[0]
+ untrusted_host, port = parse227(self.sendcmd('PASV'))
+ if self.trust_server_pasv_ipv4_address:
+ host = untrusted_host
+ else:
+ host = self.sock.getpeername()[0]
else:
host, port = parse229(self.sendcmd('EPSV'), self.sock.getpeername())
return host, port
@@ -715,10 +715,10 @@ else:
'''
ssl_version = ssl.PROTOCOL_TLS_CLIENT
- def __init__(self, host='', user='', passwd='', acct='',
- keyfile=None, certfile=None, context=None,
- timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *,
- encoding='utf-8'):
+ def __init__(self, host='', user='', passwd='', acct='',
+ keyfile=None, certfile=None, context=None,
+ timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *,
+ encoding='utf-8'):
if context is not None and keyfile is not None:
raise ValueError("context and keyfile arguments are mutually "
"exclusive")
@@ -737,13 +737,13 @@ else:
keyfile=keyfile)
self.context = context
self._prot_p = False
- super().__init__(host, user, passwd, acct,
- timeout, source_address, encoding=encoding)
+ super().__init__(host, user, passwd, acct,
+ timeout, source_address, encoding=encoding)
def login(self, user='', passwd='', acct='', secure=True):
if secure and not isinstance(self.sock, ssl.SSLSocket):
self.auth()
- return super().login(user, passwd, acct)
+ return super().login(user, passwd, acct)
def auth(self):
'''Set up secure control connection by using TLS/SSL.'''
@@ -753,7 +753,7 @@ else:
resp = self.voidcmd('AUTH TLS')
else:
resp = self.voidcmd('AUTH SSL')
- self.sock = self.context.wrap_socket(self.sock, server_hostname=self.host)
+ self.sock = self.context.wrap_socket(self.sock, server_hostname=self.host)
self.file = self.sock.makefile(mode='r', encoding=self.encoding)
return resp
@@ -790,7 +790,7 @@ else:
# --- Overridden FTP methods
def ntransfercmd(self, cmd, rest=None):
- conn, size = super().ntransfercmd(cmd, rest)
+ conn, size = super().ntransfercmd(cmd, rest)
if self._prot_p:
conn = self.context.wrap_socket(conn,
server_hostname=self.host)
diff --git a/contrib/tools/python3/src/Lib/functools.py b/contrib/tools/python3/src/Lib/functools.py
index 008555aeea..77e5035ebc 100644
--- a/contrib/tools/python3/src/Lib/functools.py
+++ b/contrib/tools/python3/src/Lib/functools.py
@@ -10,16 +10,16 @@
# See C source code for _functools credits/copyright
__all__ = ['update_wrapper', 'wraps', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES',
- 'total_ordering', 'cache', 'cmp_to_key', 'lru_cache', 'reduce',
- 'partial', 'partialmethod', 'singledispatch', 'singledispatchmethod',
- 'cached_property']
+ 'total_ordering', 'cache', 'cmp_to_key', 'lru_cache', 'reduce',
+ 'partial', 'partialmethod', 'singledispatch', 'singledispatchmethod',
+ 'cached_property']
from abc import get_cache_token
from collections import namedtuple
# import types, weakref # Deferred to single_dispatch()
from reprlib import recursive_repr
from _thread import RLock
-from types import GenericAlias
+from types import GenericAlias
################################################################################
@@ -88,84 +88,84 @@ def wraps(wrapped,
def _gt_from_lt(self, other, NotImplemented=NotImplemented):
'Return a > b. Computed by @total_ordering from (not a < b) and (a != b).'
- op_result = type(self).__lt__(self, other)
+ op_result = type(self).__lt__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result and self != other
def _le_from_lt(self, other, NotImplemented=NotImplemented):
'Return a <= b. Computed by @total_ordering from (a < b) or (a == b).'
- op_result = type(self).__lt__(self, other)
- if op_result is NotImplemented:
- return op_result
+ op_result = type(self).__lt__(self, other)
+ if op_result is NotImplemented:
+ return op_result
return op_result or self == other
def _ge_from_lt(self, other, NotImplemented=NotImplemented):
'Return a >= b. Computed by @total_ordering from (not a < b).'
- op_result = type(self).__lt__(self, other)
+ op_result = type(self).__lt__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result
def _ge_from_le(self, other, NotImplemented=NotImplemented):
'Return a >= b. Computed by @total_ordering from (not a <= b) or (a == b).'
- op_result = type(self).__le__(self, other)
+ op_result = type(self).__le__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result or self == other
def _lt_from_le(self, other, NotImplemented=NotImplemented):
'Return a < b. Computed by @total_ordering from (a <= b) and (a != b).'
- op_result = type(self).__le__(self, other)
+ op_result = type(self).__le__(self, other)
if op_result is NotImplemented:
return op_result
return op_result and self != other
def _gt_from_le(self, other, NotImplemented=NotImplemented):
'Return a > b. Computed by @total_ordering from (not a <= b).'
- op_result = type(self).__le__(self, other)
+ op_result = type(self).__le__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result
def _lt_from_gt(self, other, NotImplemented=NotImplemented):
'Return a < b. Computed by @total_ordering from (not a > b) and (a != b).'
- op_result = type(self).__gt__(self, other)
+ op_result = type(self).__gt__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result and self != other
def _ge_from_gt(self, other, NotImplemented=NotImplemented):
'Return a >= b. Computed by @total_ordering from (a > b) or (a == b).'
- op_result = type(self).__gt__(self, other)
- if op_result is NotImplemented:
- return op_result
+ op_result = type(self).__gt__(self, other)
+ if op_result is NotImplemented:
+ return op_result
return op_result or self == other
def _le_from_gt(self, other, NotImplemented=NotImplemented):
'Return a <= b. Computed by @total_ordering from (not a > b).'
- op_result = type(self).__gt__(self, other)
+ op_result = type(self).__gt__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result
def _le_from_ge(self, other, NotImplemented=NotImplemented):
'Return a <= b. Computed by @total_ordering from (not a >= b) or (a == b).'
- op_result = type(self).__ge__(self, other)
+ op_result = type(self).__ge__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result or self == other
def _gt_from_ge(self, other, NotImplemented=NotImplemented):
'Return a > b. Computed by @total_ordering from (a >= b) and (a != b).'
- op_result = type(self).__ge__(self, other)
+ op_result = type(self).__ge__(self, other)
if op_result is NotImplemented:
return op_result
return op_result and self != other
def _lt_from_ge(self, other, NotImplemented=NotImplemented):
'Return a < b. Computed by @total_ordering from (not a >= b).'
- op_result = type(self).__ge__(self, other)
+ op_result = type(self).__ge__(self, other)
if op_result is NotImplemented:
return op_result
return not op_result
@@ -229,45 +229,45 @@ except ImportError:
################################################################################
-### reduce() sequence to a single item
-################################################################################
-
-_initial_missing = object()
-
-def reduce(function, sequence, initial=_initial_missing):
- """
- reduce(function, sequence[, initial]) -> value
-
- Apply a function of two arguments cumulatively to the items of a sequence,
- from left to right, so as to reduce the sequence to a single value.
- For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
- ((((1+2)+3)+4)+5). If initial is present, it is placed before the items
- of the sequence in the calculation, and serves as a default when the
- sequence is empty.
- """
-
- it = iter(sequence)
-
- if initial is _initial_missing:
- try:
- value = next(it)
- except StopIteration:
- raise TypeError("reduce() of empty sequence with no initial value") from None
- else:
- value = initial
-
- for element in it:
- value = function(value, element)
-
- return value
-
-try:
- from _functools import reduce
-except ImportError:
- pass
-
-
-################################################################################
+### reduce() sequence to a single item
+################################################################################
+
+_initial_missing = object()
+
+def reduce(function, sequence, initial=_initial_missing):
+ """
+ reduce(function, sequence[, initial]) -> value
+
+ Apply a function of two arguments cumulatively to the items of a sequence,
+ from left to right, so as to reduce the sequence to a single value.
+ For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
+ ((((1+2)+3)+4)+5). If initial is present, it is placed before the items
+ of the sequence in the calculation, and serves as a default when the
+ sequence is empty.
+ """
+
+ it = iter(sequence)
+
+ if initial is _initial_missing:
+ try:
+ value = next(it)
+ except StopIteration:
+ raise TypeError("reduce() of empty sequence with no initial value") from None
+ else:
+ value = initial
+
+ for element in it:
+ value = function(value, element)
+
+ return value
+
+try:
+ from _functools import reduce
+except ImportError:
+ pass
+
+
+################################################################################
### partial() argument application
################################################################################
@@ -279,13 +279,13 @@ class partial:
__slots__ = "func", "args", "keywords", "__dict__", "__weakref__"
- def __new__(cls, func, /, *args, **keywords):
+ def __new__(cls, func, /, *args, **keywords):
if not callable(func):
raise TypeError("the first argument must be callable")
if hasattr(func, "func"):
args = func.args + args
- keywords = {**func.keywords, **keywords}
+ keywords = {**func.keywords, **keywords}
func = func.func
self = super(partial, cls).__new__(cls)
@@ -295,9 +295,9 @@ class partial:
self.keywords = keywords
return self
- def __call__(self, /, *args, **keywords):
- keywords = {**self.keywords, **keywords}
- return self.func(*self.args, *args, **keywords)
+ def __call__(self, /, *args, **keywords):
+ keywords = {**self.keywords, **keywords}
+ return self.func(*self.args, *args, **keywords)
@recursive_repr()
def __repr__(self):
@@ -351,7 +351,7 @@ class partialmethod(object):
callables as instance methods.
"""
- def __init__(self, func, /, *args, **keywords):
+ def __init__(self, func, /, *args, **keywords):
if not callable(func) and not hasattr(func, "__get__"):
raise TypeError("{!r} is not callable or a descriptor"
.format(func))
@@ -364,7 +364,7 @@ class partialmethod(object):
# it's also more efficient since only one function will be called
self.func = func.func
self.args = func.args + args
- self.keywords = {**func.keywords, **keywords}
+ self.keywords = {**func.keywords, **keywords}
else:
self.func = func
self.args = args
@@ -382,14 +382,14 @@ class partialmethod(object):
keywords=keywords)
def _make_unbound_method(self):
- def _method(cls_or_self, /, *args, **keywords):
- keywords = {**self.keywords, **keywords}
- return self.func(cls_or_self, *self.args, *args, **keywords)
+ def _method(cls_or_self, /, *args, **keywords):
+ keywords = {**self.keywords, **keywords}
+ return self.func(cls_or_self, *self.args, *args, **keywords)
_method.__isabstractmethod__ = self.__isabstractmethod__
_method._partialmethod = self
return _method
- def __get__(self, obj, cls=None):
+ def __get__(self, obj, cls=None):
get = getattr(self.func, "__get__", None)
result = None
if get is not None:
@@ -412,16 +412,16 @@ class partialmethod(object):
def __isabstractmethod__(self):
return getattr(self.func, "__isabstractmethod__", False)
- __class_getitem__ = classmethod(GenericAlias)
-
-
-# Helper functions
+ __class_getitem__ = classmethod(GenericAlias)
+
+
+# Helper functions
+
+def _unwrap_partial(func):
+ while isinstance(func, partial):
+ func = func.func
+ return func
-def _unwrap_partial(func):
- while isinstance(func, partial):
- func = func.func
- return func
-
################################################################################
### LRU Cache function decorator
################################################################################
@@ -491,7 +491,7 @@ def lru_cache(maxsize=128, typed=False):
with f.cache_info(). Clear the cache and statistics with f.cache_clear().
Access the underlying function with f.__wrapped__.
- See: https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)
+ See: https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)
"""
@@ -501,22 +501,22 @@ def lru_cache(maxsize=128, typed=False):
# to allow the implementation to change (including a possible C version).
if isinstance(maxsize, int):
- # Negative maxsize is treated as 0
+ # Negative maxsize is treated as 0
if maxsize < 0:
maxsize = 0
- elif callable(maxsize) and isinstance(typed, bool):
- # The user_function was passed in directly via the maxsize argument
- user_function, maxsize = maxsize, 128
- wrapper = _lru_cache_wrapper(user_function, maxsize, typed, _CacheInfo)
- wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed}
- return update_wrapper(wrapper, user_function)
+ elif callable(maxsize) and isinstance(typed, bool):
+ # The user_function was passed in directly via the maxsize argument
+ user_function, maxsize = maxsize, 128
+ wrapper = _lru_cache_wrapper(user_function, maxsize, typed, _CacheInfo)
+ wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed}
+ return update_wrapper(wrapper, user_function)
elif maxsize is not None:
- raise TypeError(
- 'Expected first argument to be an integer, a callable, or None')
+ raise TypeError(
+ 'Expected first argument to be an integer, a callable, or None')
def decorating_function(user_function):
wrapper = _lru_cache_wrapper(user_function, maxsize, typed, _CacheInfo)
- wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed}
+ wrapper.cache_parameters = lambda : {'maxsize': maxsize, 'typed': typed}
return update_wrapper(wrapper, user_function)
return decorating_function
@@ -644,22 +644,22 @@ except ImportError:
################################################################################
-### cache -- simplified access to the infinity cache
-################################################################################
-
-def cache(user_function, /):
- 'Simple lightweight unbounded cache. Sometimes called "memoize".'
- return lru_cache(maxsize=None)(user_function)
-
-
-################################################################################
+### cache -- simplified access to the infinity cache
+################################################################################
+
+def cache(user_function, /):
+ 'Simple lightweight unbounded cache. Sometimes called "memoize".'
+ return lru_cache(maxsize=None)(user_function)
+
+
+################################################################################
### singledispatch() - single-dispatch generic function decorator
################################################################################
def _c3_merge(sequences):
"""Merges MROs in *sequences* to a single MRO using the C3 algorithm.
- Adapted from https://www.python.org/download/releases/2.3/mro/.
+ Adapted from https://www.python.org/download/releases/2.3/mro/.
"""
result = []
@@ -739,7 +739,7 @@ def _compose_mro(cls, types):
# Remove entries which are already present in the __mro__ or unrelated.
def is_related(typ):
return (typ not in bases and hasattr(typ, '__mro__')
- and not isinstance(typ, GenericAlias)
+ and not isinstance(typ, GenericAlias)
and issubclass(cls, typ))
types = [n for n in types if is_related(n)]
# Remove entries which are strict bases of other entries (they will end up
@@ -837,9 +837,9 @@ def singledispatch(func):
dispatch_cache[cls] = impl
return impl
- def _is_valid_dispatch_type(cls):
- return isinstance(cls, type) and not isinstance(cls, GenericAlias)
-
+ def _is_valid_dispatch_type(cls):
+ return isinstance(cls, type) and not isinstance(cls, GenericAlias)
+
def register(cls, func=None):
"""generic_func.register(cls, func) -> func
@@ -847,15 +847,15 @@ def singledispatch(func):
"""
nonlocal cache_token
- if _is_valid_dispatch_type(cls):
- if func is None:
+ if _is_valid_dispatch_type(cls):
+ if func is None:
return lambda f: register(cls, f)
- else:
- if func is not None:
- raise TypeError(
- f"Invalid first argument to `register()`. "
- f"{cls!r} is not a class."
- )
+ else:
+ if func is not None:
+ raise TypeError(
+ f"Invalid first argument to `register()`. "
+ f"{cls!r} is not a class."
+ )
ann = getattr(cls, '__annotations__', {})
if not ann:
raise TypeError(
@@ -868,12 +868,12 @@ def singledispatch(func):
# only import typing if annotation parsing is necessary
from typing import get_type_hints
argname, cls = next(iter(get_type_hints(func).items()))
- if not _is_valid_dispatch_type(cls):
- raise TypeError(
- f"Invalid annotation for {argname!r}. "
- f"{cls!r} is not a class."
- )
-
+ if not _is_valid_dispatch_type(cls):
+ raise TypeError(
+ f"Invalid annotation for {argname!r}. "
+ f"{cls!r} is not a class."
+ )
+
registry[cls] = func
if cache_token is None and hasattr(cls, '__abstractmethods__'):
cache_token = get_cache_token()
@@ -895,110 +895,110 @@ def singledispatch(func):
wrapper._clear_cache = dispatch_cache.clear
update_wrapper(wrapper, func)
return wrapper
-
-
-# Descriptor version
-class singledispatchmethod:
- """Single-dispatch generic method descriptor.
-
- Supports wrapping existing descriptors and handles non-descriptor
- callables as instance methods.
- """
-
- def __init__(self, func):
- if not callable(func) and not hasattr(func, "__get__"):
- raise TypeError(f"{func!r} is not callable or a descriptor")
-
- self.dispatcher = singledispatch(func)
- self.func = func
-
- # bpo-45678: special-casing for classmethod/staticmethod in Python <=3.9,
- # as functools.update_wrapper doesn't work properly in singledispatchmethod.__get__
- # if it is applied to an unbound classmethod/staticmethod
- if isinstance(func, (staticmethod, classmethod)):
- self._wrapped_func = func.__func__
- else:
- self._wrapped_func = func
- def register(self, cls, method=None):
- """generic_method.register(cls, func) -> func
-
- Registers a new implementation for the given *cls* on a *generic_method*.
- """
- # bpo-39679: in Python <= 3.9, classmethods and staticmethods don't
- # inherit __annotations__ of the wrapped function (fixed in 3.10+ as
- # a side-effect of bpo-43682) but we need that for annotation-derived
- # singledispatches. So we add that just-in-time here.
- if isinstance(cls, (staticmethod, classmethod)):
- cls.__annotations__ = getattr(cls.__func__, '__annotations__', {})
- return self.dispatcher.register(cls, func=method)
-
- def __get__(self, obj, cls=None):
- def _method(*args, **kwargs):
- method = self.dispatcher.dispatch(args[0].__class__)
- return method.__get__(obj, cls)(*args, **kwargs)
-
- _method.__isabstractmethod__ = self.__isabstractmethod__
- _method.register = self.register
- update_wrapper(_method, self._wrapped_func)
- return _method
-
- @property
- def __isabstractmethod__(self):
- return getattr(self.func, '__isabstractmethod__', False)
-
-
-################################################################################
-### cached_property() - computed once per instance, cached as attribute
-################################################################################
-
-_NOT_FOUND = object()
-
-
-class cached_property:
- def __init__(self, func):
- self.func = func
- self.attrname = None
- self.__doc__ = func.__doc__
- self.lock = RLock()
-
- def __set_name__(self, owner, name):
- if self.attrname is None:
- self.attrname = name
- elif name != self.attrname:
- raise TypeError(
- "Cannot assign the same cached_property to two different names "
- f"({self.attrname!r} and {name!r})."
- )
-
- def __get__(self, instance, owner=None):
- if instance is None:
- return self
- if self.attrname is None:
- raise TypeError(
- "Cannot use cached_property instance without calling __set_name__ on it.")
- try:
- cache = instance.__dict__
- except AttributeError: # not all objects have __dict__ (e.g. class defines slots)
- msg = (
- f"No '__dict__' attribute on {type(instance).__name__!r} "
- f"instance to cache {self.attrname!r} property."
- )
- raise TypeError(msg) from None
- val = cache.get(self.attrname, _NOT_FOUND)
- if val is _NOT_FOUND:
- with self.lock:
- # check if another thread filled cache while we awaited lock
- val = cache.get(self.attrname, _NOT_FOUND)
- if val is _NOT_FOUND:
- val = self.func(instance)
- try:
- cache[self.attrname] = val
- except TypeError:
- msg = (
- f"The '__dict__' attribute on {type(instance).__name__!r} instance "
- f"does not support item assignment for caching {self.attrname!r} property."
- )
- raise TypeError(msg) from None
- return val
-
- __class_getitem__ = classmethod(GenericAlias)
+
+
+# Descriptor version
+class singledispatchmethod:
+ """Single-dispatch generic method descriptor.
+
+ Supports wrapping existing descriptors and handles non-descriptor
+ callables as instance methods.
+ """
+
+ def __init__(self, func):
+ if not callable(func) and not hasattr(func, "__get__"):
+ raise TypeError(f"{func!r} is not callable or a descriptor")
+
+ self.dispatcher = singledispatch(func)
+ self.func = func
+
+ # bpo-45678: special-casing for classmethod/staticmethod in Python <=3.9,
+ # as functools.update_wrapper doesn't work properly in singledispatchmethod.__get__
+ # if it is applied to an unbound classmethod/staticmethod
+ if isinstance(func, (staticmethod, classmethod)):
+ self._wrapped_func = func.__func__
+ else:
+ self._wrapped_func = func
+ def register(self, cls, method=None):
+ """generic_method.register(cls, func) -> func
+
+ Registers a new implementation for the given *cls* on a *generic_method*.
+ """
+ # bpo-39679: in Python <= 3.9, classmethods and staticmethods don't
+ # inherit __annotations__ of the wrapped function (fixed in 3.10+ as
+ # a side-effect of bpo-43682) but we need that for annotation-derived
+ # singledispatches. So we add that just-in-time here.
+ if isinstance(cls, (staticmethod, classmethod)):
+ cls.__annotations__ = getattr(cls.__func__, '__annotations__', {})
+ return self.dispatcher.register(cls, func=method)
+
+ def __get__(self, obj, cls=None):
+ def _method(*args, **kwargs):
+ method = self.dispatcher.dispatch(args[0].__class__)
+ return method.__get__(obj, cls)(*args, **kwargs)
+
+ _method.__isabstractmethod__ = self.__isabstractmethod__
+ _method.register = self.register
+ update_wrapper(_method, self._wrapped_func)
+ return _method
+
+ @property
+ def __isabstractmethod__(self):
+ return getattr(self.func, '__isabstractmethod__', False)
+
+
+################################################################################
+### cached_property() - computed once per instance, cached as attribute
+################################################################################
+
+_NOT_FOUND = object()
+
+
+class cached_property:
+ def __init__(self, func):
+ self.func = func
+ self.attrname = None
+ self.__doc__ = func.__doc__
+ self.lock = RLock()
+
+ def __set_name__(self, owner, name):
+ if self.attrname is None:
+ self.attrname = name
+ elif name != self.attrname:
+ raise TypeError(
+ "Cannot assign the same cached_property to two different names "
+ f"({self.attrname!r} and {name!r})."
+ )
+
+ def __get__(self, instance, owner=None):
+ if instance is None:
+ return self
+ if self.attrname is None:
+ raise TypeError(
+ "Cannot use cached_property instance without calling __set_name__ on it.")
+ try:
+ cache = instance.__dict__
+ except AttributeError: # not all objects have __dict__ (e.g. class defines slots)
+ msg = (
+ f"No '__dict__' attribute on {type(instance).__name__!r} "
+ f"instance to cache {self.attrname!r} property."
+ )
+ raise TypeError(msg) from None
+ val = cache.get(self.attrname, _NOT_FOUND)
+ if val is _NOT_FOUND:
+ with self.lock:
+ # check if another thread filled cache while we awaited lock
+ val = cache.get(self.attrname, _NOT_FOUND)
+ if val is _NOT_FOUND:
+ val = self.func(instance)
+ try:
+ cache[self.attrname] = val
+ except TypeError:
+ msg = (
+ f"The '__dict__' attribute on {type(instance).__name__!r} instance "
+ f"does not support item assignment for caching {self.attrname!r} property."
+ )
+ raise TypeError(msg) from None
+ return val
+
+ __class_getitem__ = classmethod(GenericAlias)
diff --git a/contrib/tools/python3/src/Lib/genericpath.py b/contrib/tools/python3/src/Lib/genericpath.py
index 220a3fc292..ce36451a3a 100644
--- a/contrib/tools/python3/src/Lib/genericpath.py
+++ b/contrib/tools/python3/src/Lib/genericpath.py
@@ -17,7 +17,7 @@ def exists(path):
"""Test whether a path exists. Returns False for broken symbolic links"""
try:
os.stat(path)
- except (OSError, ValueError):
+ except (OSError, ValueError):
return False
return True
@@ -28,7 +28,7 @@ def isfile(path):
"""Test whether a path is a regular file"""
try:
st = os.stat(path)
- except (OSError, ValueError):
+ except (OSError, ValueError):
return False
return stat.S_ISREG(st.st_mode)
@@ -40,7 +40,7 @@ def isdir(s):
"""Return true if the pathname refers to an existing directory."""
try:
st = os.stat(s)
- except (OSError, ValueError):
+ except (OSError, ValueError):
return False
return stat.S_ISDIR(st.st_mode)
@@ -92,11 +92,11 @@ def samestat(s1, s2):
# Are two filenames really pointing to the same file?
def samefile(f1, f2):
- """Test whether two pathnames reference the same actual file or directory
-
- This is determined by the device number and i-node number and
- raises an exception if an os.stat() call on either pathname fails.
- """
+ """Test whether two pathnames reference the same actual file or directory
+
+ This is determined by the device number and i-node number and
+ raises an exception if an os.stat() call on either pathname fails.
+ """
s1 = os.stat(f1)
s2 = os.stat(f2)
return samestat(s1, s2)
@@ -149,7 +149,7 @@ def _check_arg_types(funcname, *args):
elif isinstance(s, bytes):
hasbytes = True
else:
- raise TypeError(f'{funcname}() argument must be str, bytes, or '
- f'os.PathLike object, not {s.__class__.__name__!r}') from None
+ raise TypeError(f'{funcname}() argument must be str, bytes, or '
+ f'os.PathLike object, not {s.__class__.__name__!r}') from None
if hasstr and hasbytes:
raise TypeError("Can't mix strings and bytes in path components") from None
diff --git a/contrib/tools/python3/src/Lib/getpass.py b/contrib/tools/python3/src/Lib/getpass.py
index d7ce4ef2a6..6970d8adfb 100644
--- a/contrib/tools/python3/src/Lib/getpass.py
+++ b/contrib/tools/python3/src/Lib/getpass.py
@@ -52,7 +52,7 @@ def unix_getpass(prompt='Password: ', stream=None):
stack.enter_context(input)
if not stream:
stream = input
- except OSError:
+ except OSError:
# If that fails, see if stdin can be controlled.
stack.close()
try:
@@ -95,7 +95,7 @@ def unix_getpass(prompt='Password: ', stream=None):
def win_getpass(prompt='Password: ', stream=None):
- """Prompt for password with echo off, using Windows getwch()."""
+ """Prompt for password with echo off, using Windows getwch()."""
if sys.stdin is not sys.__stdin__:
return fallback_getpass(prompt, stream)
diff --git a/contrib/tools/python3/src/Lib/gettext.py b/contrib/tools/python3/src/Lib/gettext.py
index d65e40338e..9df74c91f0 100644
--- a/contrib/tools/python3/src/Lib/gettext.py
+++ b/contrib/tools/python3/src/Lib/gettext.py
@@ -61,7 +61,7 @@ __all__ = ['NullTranslations', 'GNUTranslations', 'Catalog',
'bind_textdomain_codeset',
'dgettext', 'dngettext', 'gettext', 'lgettext', 'ldgettext',
'ldngettext', 'lngettext', 'ngettext',
- 'pgettext', 'dpgettext', 'npgettext', 'dnpgettext',
+ 'pgettext', 'dpgettext', 'npgettext', 'dnpgettext',
]
_default_localedir = os.path.join(sys.base_prefix, 'share', 'locale')
@@ -214,7 +214,7 @@ def c2py(plural):
def _expand_lang(loc):
- import locale
+ import locale
loc = locale.normalize(loc)
COMPONENT_CODESET = 1 << 0
COMPONENT_TERRITORY = 1 << 1
@@ -280,15 +280,15 @@ class NullTranslations:
return message
def lgettext(self, message):
- import warnings
- warnings.warn('lgettext() is deprecated, use gettext() instead',
- DeprecationWarning, 2)
- import locale
+ import warnings
+ warnings.warn('lgettext() is deprecated, use gettext() instead',
+ DeprecationWarning, 2)
+ import locale
if self._fallback:
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\blgettext\b.*',
- DeprecationWarning)
- return self._fallback.lgettext(message)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\blgettext\b.*',
+ DeprecationWarning)
+ return self._fallback.lgettext(message)
if self._output_charset:
return message.encode(self._output_charset)
return message.encode(locale.getpreferredencoding())
@@ -302,15 +302,15 @@ class NullTranslations:
return msgid2
def lngettext(self, msgid1, msgid2, n):
- import warnings
- warnings.warn('lngettext() is deprecated, use ngettext() instead',
- DeprecationWarning, 2)
- import locale
+ import warnings
+ warnings.warn('lngettext() is deprecated, use ngettext() instead',
+ DeprecationWarning, 2)
+ import locale
if self._fallback:
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\blngettext\b.*',
- DeprecationWarning)
- return self._fallback.lngettext(msgid1, msgid2, n)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\blngettext\b.*',
+ DeprecationWarning)
+ return self._fallback.lngettext(msgid1, msgid2, n)
if n == 1:
tmsg = msgid1
else:
@@ -319,19 +319,19 @@ class NullTranslations:
return tmsg.encode(self._output_charset)
return tmsg.encode(locale.getpreferredencoding())
- def pgettext(self, context, message):
- if self._fallback:
- return self._fallback.pgettext(context, message)
- return message
-
- def npgettext(self, context, msgid1, msgid2, n):
- if self._fallback:
- return self._fallback.npgettext(context, msgid1, msgid2, n)
- if n == 1:
- return msgid1
- else:
- return msgid2
-
+ def pgettext(self, context, message):
+ if self._fallback:
+ return self._fallback.pgettext(context, message)
+ return message
+
+ def npgettext(self, context, msgid1, msgid2, n):
+ if self._fallback:
+ return self._fallback.npgettext(context, msgid1, msgid2, n)
+ if n == 1:
+ return msgid1
+ else:
+ return msgid2
+
def info(self):
return self._info
@@ -339,25 +339,25 @@ class NullTranslations:
return self._charset
def output_charset(self):
- import warnings
- warnings.warn('output_charset() is deprecated',
- DeprecationWarning, 2)
+ import warnings
+ warnings.warn('output_charset() is deprecated',
+ DeprecationWarning, 2)
return self._output_charset
def set_output_charset(self, charset):
- import warnings
- warnings.warn('set_output_charset() is deprecated',
- DeprecationWarning, 2)
+ import warnings
+ warnings.warn('set_output_charset() is deprecated',
+ DeprecationWarning, 2)
self._output_charset = charset
def install(self, names=None):
import builtins
builtins.__dict__['_'] = self.gettext
- if names is not None:
- allowed = {'gettext', 'lgettext', 'lngettext',
- 'ngettext', 'npgettext', 'pgettext'}
- for name in allowed & set(names):
- builtins.__dict__[name] = getattr(self, name)
+ if names is not None:
+ allowed = {'gettext', 'lgettext', 'lngettext',
+ 'ngettext', 'npgettext', 'pgettext'}
+ for name in allowed & set(names):
+ builtins.__dict__[name] = getattr(self, name)
class GNUTranslations(NullTranslations):
@@ -365,10 +365,10 @@ class GNUTranslations(NullTranslations):
LE_MAGIC = 0x950412de
BE_MAGIC = 0xde120495
- # The encoding of a msgctxt and a msgid in a .mo file is
- # msgctxt + "\x04" + msgid (gettext version >= 0.15)
- CONTEXT = "%s\x04%s"
-
+ # The encoding of a msgctxt and a msgid in a .mo file is
+ # msgctxt + "\x04" + msgid (gettext version >= 0.15)
+ CONTEXT = "%s\x04%s"
+
# Acceptable .mo versions
VERSIONS = (0, 1)
@@ -424,9 +424,9 @@ class GNUTranslations(NullTranslations):
item = b_item.decode().strip()
if not item:
continue
- # Skip over comment lines:
- if item.startswith('#-#-#-#-#') and item.endswith('#-#-#-#-#'):
- continue
+ # Skip over comment lines:
+ if item.startswith('#-#-#-#-#') and item.endswith('#-#-#-#-#'):
+ continue
k = v = None
if ':' in item:
k, v = item.split(':', 1)
@@ -466,10 +466,10 @@ class GNUTranslations(NullTranslations):
transidx += 8
def lgettext(self, message):
- import warnings
- warnings.warn('lgettext() is deprecated, use gettext() instead',
- DeprecationWarning, 2)
- import locale
+ import warnings
+ warnings.warn('lgettext() is deprecated, use gettext() instead',
+ DeprecationWarning, 2)
+ import locale
missing = object()
tmsg = self._catalog.get(message, missing)
if tmsg is missing:
@@ -481,10 +481,10 @@ class GNUTranslations(NullTranslations):
return tmsg.encode(locale.getpreferredencoding())
def lngettext(self, msgid1, msgid2, n):
- import warnings
- warnings.warn('lngettext() is deprecated, use ngettext() instead',
- DeprecationWarning, 2)
- import locale
+ import warnings
+ warnings.warn('lngettext() is deprecated, use ngettext() instead',
+ DeprecationWarning, 2)
+ import locale
try:
tmsg = self._catalog[(msgid1, self.plural(n))]
except KeyError:
@@ -519,30 +519,30 @@ class GNUTranslations(NullTranslations):
tmsg = msgid2
return tmsg
- def pgettext(self, context, message):
- ctxt_msg_id = self.CONTEXT % (context, message)
- missing = object()
- tmsg = self._catalog.get(ctxt_msg_id, missing)
- if tmsg is missing:
- if self._fallback:
- return self._fallback.pgettext(context, message)
- return message
- return tmsg
-
- def npgettext(self, context, msgid1, msgid2, n):
- ctxt_msg_id = self.CONTEXT % (context, msgid1)
- try:
- tmsg = self._catalog[ctxt_msg_id, self.plural(n)]
- except KeyError:
- if self._fallback:
- return self._fallback.npgettext(context, msgid1, msgid2, n)
- if n == 1:
- tmsg = msgid1
- else:
- tmsg = msgid2
- return tmsg
-
-
+ def pgettext(self, context, message):
+ ctxt_msg_id = self.CONTEXT % (context, message)
+ missing = object()
+ tmsg = self._catalog.get(ctxt_msg_id, missing)
+ if tmsg is missing:
+ if self._fallback:
+ return self._fallback.pgettext(context, message)
+ return message
+ return tmsg
+
+ def npgettext(self, context, msgid1, msgid2, n):
+ ctxt_msg_id = self.CONTEXT % (context, msgid1)
+ try:
+ tmsg = self._catalog[ctxt_msg_id, self.plural(n)]
+ except KeyError:
+ if self._fallback:
+ return self._fallback.npgettext(context, msgid1, msgid2, n)
+ if n == 1:
+ tmsg = msgid1
+ else:
+ tmsg = msgid2
+ return tmsg
+
+
# Locate a .mo file using the gettext strategy
def find(domain, localedir=None, languages=None, all=False):
# Get some reasonable defaults for arguments that were not supplied
@@ -583,10 +583,10 @@ def find(domain, localedir=None, languages=None, all=False):
# a mapping between absolute .mo file path and Translation object
_translations = {}
-_unspecified = ['unspecified']
+_unspecified = ['unspecified']
def translation(domain, localedir=None, languages=None,
- class_=None, fallback=False, codeset=_unspecified):
+ class_=None, fallback=False, codeset=_unspecified):
if class_ is None:
class_ = GNUTranslations
mofiles = find(domain, localedir, languages, all=True)
@@ -616,15 +616,15 @@ def translation(domain, localedir=None, languages=None,
# are not used.
import copy
t = copy.copy(t)
- if codeset is not _unspecified:
- import warnings
- warnings.warn('parameter codeset is deprecated',
- DeprecationWarning, 2)
- if codeset:
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\bset_output_charset\b.*',
- DeprecationWarning)
- t.set_output_charset(codeset)
+ if codeset is not _unspecified:
+ import warnings
+ warnings.warn('parameter codeset is deprecated',
+ DeprecationWarning, 2)
+ if codeset:
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\bset_output_charset\b.*',
+ DeprecationWarning)
+ t.set_output_charset(codeset)
if result is None:
result = t
else:
@@ -632,7 +632,7 @@ def translation(domain, localedir=None, languages=None,
return result
-def install(domain, localedir=None, codeset=_unspecified, names=None):
+def install(domain, localedir=None, codeset=_unspecified, names=None):
t = translation(domain, localedir, fallback=True, codeset=codeset)
t.install(names)
@@ -661,9 +661,9 @@ def bindtextdomain(domain, localedir=None):
def bind_textdomain_codeset(domain, codeset=None):
- import warnings
- warnings.warn('bind_textdomain_codeset() is deprecated',
- DeprecationWarning, 2)
+ import warnings
+ warnings.warn('bind_textdomain_codeset() is deprecated',
+ DeprecationWarning, 2)
global _localecodesets
if codeset is not None:
_localecodesets[domain] = codeset
@@ -672,32 +672,32 @@ def bind_textdomain_codeset(domain, codeset=None):
def dgettext(domain, message):
try:
- t = translation(domain, _localedirs.get(domain, None))
+ t = translation(domain, _localedirs.get(domain, None))
except OSError:
return message
return t.gettext(message)
def ldgettext(domain, message):
- import warnings
- warnings.warn('ldgettext() is deprecated, use dgettext() instead',
- DeprecationWarning, 2)
- import locale
+ import warnings
+ warnings.warn('ldgettext() is deprecated, use dgettext() instead',
+ DeprecationWarning, 2)
+ import locale
codeset = _localecodesets.get(domain)
try:
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\bparameter codeset\b.*',
- DeprecationWarning)
- t = translation(domain, _localedirs.get(domain, None), codeset=codeset)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\bparameter codeset\b.*',
+ DeprecationWarning)
+ t = translation(domain, _localedirs.get(domain, None), codeset=codeset)
except OSError:
return message.encode(codeset or locale.getpreferredencoding())
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\blgettext\b.*',
- DeprecationWarning)
- return t.lgettext(message)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\blgettext\b.*',
+ DeprecationWarning)
+ return t.lgettext(message)
def dngettext(domain, msgid1, msgid2, n):
try:
- t = translation(domain, _localedirs.get(domain, None))
+ t = translation(domain, _localedirs.get(domain, None))
except OSError:
if n == 1:
return msgid1
@@ -706,80 +706,80 @@ def dngettext(domain, msgid1, msgid2, n):
return t.ngettext(msgid1, msgid2, n)
def ldngettext(domain, msgid1, msgid2, n):
- import warnings
- warnings.warn('ldngettext() is deprecated, use dngettext() instead',
- DeprecationWarning, 2)
- import locale
+ import warnings
+ warnings.warn('ldngettext() is deprecated, use dngettext() instead',
+ DeprecationWarning, 2)
+ import locale
codeset = _localecodesets.get(domain)
try:
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\bparameter codeset\b.*',
- DeprecationWarning)
- t = translation(domain, _localedirs.get(domain, None), codeset=codeset)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\bparameter codeset\b.*',
+ DeprecationWarning)
+ t = translation(domain, _localedirs.get(domain, None), codeset=codeset)
except OSError:
if n == 1:
tmsg = msgid1
else:
tmsg = msgid2
return tmsg.encode(codeset or locale.getpreferredencoding())
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\blngettext\b.*',
- DeprecationWarning)
- return t.lngettext(msgid1, msgid2, n)
-
-
-def dpgettext(domain, context, message):
- try:
- t = translation(domain, _localedirs.get(domain, None))
- except OSError:
- return message
- return t.pgettext(context, message)
-
-
-def dnpgettext(domain, context, msgid1, msgid2, n):
- try:
- t = translation(domain, _localedirs.get(domain, None))
- except OSError:
- if n == 1:
- return msgid1
- else:
- return msgid2
- return t.npgettext(context, msgid1, msgid2, n)
-
-
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\blngettext\b.*',
+ DeprecationWarning)
+ return t.lngettext(msgid1, msgid2, n)
+
+
+def dpgettext(domain, context, message):
+ try:
+ t = translation(domain, _localedirs.get(domain, None))
+ except OSError:
+ return message
+ return t.pgettext(context, message)
+
+
+def dnpgettext(domain, context, msgid1, msgid2, n):
+ try:
+ t = translation(domain, _localedirs.get(domain, None))
+ except OSError:
+ if n == 1:
+ return msgid1
+ else:
+ return msgid2
+ return t.npgettext(context, msgid1, msgid2, n)
+
+
def gettext(message):
return dgettext(_current_domain, message)
def lgettext(message):
- import warnings
- warnings.warn('lgettext() is deprecated, use gettext() instead',
- DeprecationWarning, 2)
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\bldgettext\b.*',
- DeprecationWarning)
- return ldgettext(_current_domain, message)
+ import warnings
+ warnings.warn('lgettext() is deprecated, use gettext() instead',
+ DeprecationWarning, 2)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\bldgettext\b.*',
+ DeprecationWarning)
+ return ldgettext(_current_domain, message)
def ngettext(msgid1, msgid2, n):
return dngettext(_current_domain, msgid1, msgid2, n)
def lngettext(msgid1, msgid2, n):
- import warnings
- warnings.warn('lngettext() is deprecated, use ngettext() instead',
- DeprecationWarning, 2)
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'.*\bldngettext\b.*',
- DeprecationWarning)
- return ldngettext(_current_domain, msgid1, msgid2, n)
-
-
-def pgettext(context, message):
- return dpgettext(_current_domain, context, message)
-
-
-def npgettext(context, msgid1, msgid2, n):
- return dnpgettext(_current_domain, context, msgid1, msgid2, n)
-
-
+ import warnings
+ warnings.warn('lngettext() is deprecated, use ngettext() instead',
+ DeprecationWarning, 2)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', r'.*\bldngettext\b.*',
+ DeprecationWarning)
+ return ldngettext(_current_domain, msgid1, msgid2, n)
+
+
+def pgettext(context, message):
+ return dpgettext(_current_domain, context, message)
+
+
+def npgettext(context, msgid1, msgid2, n):
+ return dnpgettext(_current_domain, context, msgid1, msgid2, n)
+
+
# dcgettext() has been deemed unnecessary and is not implemented.
# James Henstridge's Catalog constructor from GNOME gettext. Documented usage
diff --git a/contrib/tools/python3/src/Lib/glob.py b/contrib/tools/python3/src/Lib/glob.py
index 535cbcb420..1237061130 100644
--- a/contrib/tools/python3/src/Lib/glob.py
+++ b/contrib/tools/python3/src/Lib/glob.py
@@ -1,10 +1,10 @@
"""Filename globbing utility."""
-import contextlib
+import contextlib
import os
import re
import fnmatch
-import sys
+import sys
__all__ = ["glob", "iglob", "escape"]
@@ -32,7 +32,7 @@ def iglob(pathname, *, recursive=False):
If recursive is true, the pattern '**' will match any files and
zero or more directories and subdirectories.
"""
- sys.audit("glob.glob", pathname, recursive)
+ sys.audit("glob.glob", pathname, recursive)
it = _iglob(pathname, recursive, False)
if recursive and _isrecursive(pathname):
s = next(it) # skip empty string
@@ -80,7 +80,7 @@ def _iglob(pathname, recursive, dironly):
# takes a literal basename (so it only has to check for its existence).
def _glob1(dirname, pattern, dironly):
- names = _listdir(dirname, dironly)
+ names = _listdir(dirname, dironly)
if not _ishidden(pattern):
names = (x for x in names if not _ishidden(x))
return fnmatch.filter(names, pattern)
@@ -131,13 +131,13 @@ def _iterdir(dirname, dironly):
except OSError:
return
-def _listdir(dirname, dironly):
- with contextlib.closing(_iterdir(dirname, dironly)) as it:
- return list(it)
-
+def _listdir(dirname, dironly):
+ with contextlib.closing(_iterdir(dirname, dironly)) as it:
+ return list(it)
+
# Recursively yields relative pathnames inside a literal directory.
def _rlistdir(dirname, dironly):
- names = _listdir(dirname, dironly)
+ names = _listdir(dirname, dironly)
for x in names:
if not _ishidden(x):
yield x
diff --git a/contrib/tools/python3/src/Lib/graphlib.py b/contrib/tools/python3/src/Lib/graphlib.py
index eabef4a716..1c5d9a413c 100644
--- a/contrib/tools/python3/src/Lib/graphlib.py
+++ b/contrib/tools/python3/src/Lib/graphlib.py
@@ -1,246 +1,246 @@
-__all__ = ["TopologicalSorter", "CycleError"]
-
-_NODE_OUT = -1
-_NODE_DONE = -2
-
-
-class _NodeInfo:
- __slots__ = "node", "npredecessors", "successors"
-
- def __init__(self, node):
- # The node this class is augmenting.
- self.node = node
-
- # Number of predecessors, generally >= 0. When this value falls to 0,
- # and is returned by get_ready(), this is set to _NODE_OUT and when the
- # node is marked done by a call to done(), set to _NODE_DONE.
- self.npredecessors = 0
-
- # List of successor nodes. The list can contain duplicated elements as
- # long as they're all reflected in the successor's npredecessors attribute.
- self.successors = []
-
-
-class CycleError(ValueError):
- """Subclass of ValueError raised by TopologicalSorter.prepare if cycles
- exist in the working graph.
-
- If multiple cycles exist, only one undefined choice among them will be reported
- and included in the exception. The detected cycle can be accessed via the second
- element in the *args* attribute of the exception instance and consists in a list
- of nodes, such that each node is, in the graph, an immediate predecessor of the
- next node in the list. In the reported list, the first and the last node will be
- the same, to make it clear that it is cyclic.
- """
-
- pass
-
-
-class TopologicalSorter:
- """Provides functionality to topologically sort a graph of hashable nodes"""
-
- def __init__(self, graph=None):
- self._node2info = {}
- self._ready_nodes = None
- self._npassedout = 0
- self._nfinished = 0
-
- if graph is not None:
- for node, predecessors in graph.items():
- self.add(node, *predecessors)
-
- def _get_nodeinfo(self, node):
- if (result := self._node2info.get(node)) is None:
- self._node2info[node] = result = _NodeInfo(node)
- return result
-
- def add(self, node, *predecessors):
- """Add a new node and its predecessors to the graph.
-
- Both the *node* and all elements in *predecessors* must be hashable.
-
- If called multiple times with the same node argument, the set of dependencies
- will be the union of all dependencies passed in.
-
- It is possible to add a node with no dependencies (*predecessors* is not provided)
- as well as provide a dependency twice. If a node that has not been provided before
- is included among *predecessors* it will be automatically added to the graph with
- no predecessors of its own.
-
- Raises ValueError if called after "prepare".
- """
- if self._ready_nodes is not None:
- raise ValueError("Nodes cannot be added after a call to prepare()")
-
- # Create the node -> predecessor edges
- nodeinfo = self._get_nodeinfo(node)
- nodeinfo.npredecessors += len(predecessors)
-
- # Create the predecessor -> node edges
- for pred in predecessors:
- pred_info = self._get_nodeinfo(pred)
- pred_info.successors.append(node)
-
- def prepare(self):
- """Mark the graph as finished and check for cycles in the graph.
-
- If any cycle is detected, "CycleError" will be raised, but "get_ready" can
- still be used to obtain as many nodes as possible until cycles block more
- progress. After a call to this function, the graph cannot be modified and
- therefore no more nodes can be added using "add".
- """
- if self._ready_nodes is not None:
- raise ValueError("cannot prepare() more than once")
-
- self._ready_nodes = [
- i.node for i in self._node2info.values() if i.npredecessors == 0
- ]
- # ready_nodes is set before we look for cycles on purpose:
- # if the user wants to catch the CycleError, that's fine,
- # they can continue using the instance to grab as many
- # nodes as possible before cycles block more progress
- cycle = self._find_cycle()
- if cycle:
- raise CycleError(f"nodes are in a cycle", cycle)
-
- def get_ready(self):
- """Return a tuple of all the nodes that are ready.
-
- Initially it returns all nodes with no predecessors; once those are marked
- as processed by calling "done", further calls will return all new nodes that
- have all their predecessors already processed. Once no more progress can be made,
- empty tuples are returned.
-
- Raises ValueError if called without calling "prepare" previously.
- """
- if self._ready_nodes is None:
- raise ValueError("prepare() must be called first")
-
- # Get the nodes that are ready and mark them
- result = tuple(self._ready_nodes)
- n2i = self._node2info
- for node in result:
- n2i[node].npredecessors = _NODE_OUT
-
- # Clean the list of nodes that are ready and update
- # the counter of nodes that we have returned.
- self._ready_nodes.clear()
- self._npassedout += len(result)
-
- return result
-
- def is_active(self):
- """Return ``True`` if more progress can be made and ``False`` otherwise.
-
- Progress can be made if cycles do not block the resolution and either there
- are still nodes ready that haven't yet been returned by "get_ready" or the
- number of nodes marked "done" is less than the number that have been returned
- by "get_ready".
-
- Raises ValueError if called without calling "prepare" previously.
- """
- if self._ready_nodes is None:
- raise ValueError("prepare() must be called first")
- return self._nfinished < self._npassedout or bool(self._ready_nodes)
-
- def __bool__(self):
- return self.is_active()
-
- def done(self, *nodes):
- """Marks a set of nodes returned by "get_ready" as processed.
-
- This method unblocks any successor of each node in *nodes* for being returned
- in the future by a call to "get_ready".
-
- Raises :exec:`ValueError` if any node in *nodes* has already been marked as
- processed by a previous call to this method, if a node was not added to the
- graph by using "add" or if called without calling "prepare" previously or if
- node has not yet been returned by "get_ready".
- """
-
- if self._ready_nodes is None:
- raise ValueError("prepare() must be called first")
-
- n2i = self._node2info
-
- for node in nodes:
-
- # Check if we know about this node (it was added previously using add()
- if (nodeinfo := n2i.get(node)) is None:
- raise ValueError(f"node {node!r} was not added using add()")
-
- # If the node has not being returned (marked as ready) previously, inform the user.
- stat = nodeinfo.npredecessors
- if stat != _NODE_OUT:
- if stat >= 0:
- raise ValueError(
- f"node {node!r} was not passed out (still not ready)"
- )
- elif stat == _NODE_DONE:
- raise ValueError(f"node {node!r} was already marked done")
- else:
- assert False, f"node {node!r}: unknown status {stat}"
-
- # Mark the node as processed
- nodeinfo.npredecessors = _NODE_DONE
-
- # Go to all the successors and reduce the number of predecessors, collecting all the ones
- # that are ready to be returned in the next get_ready() call.
- for successor in nodeinfo.successors:
- successor_info = n2i[successor]
- successor_info.npredecessors -= 1
- if successor_info.npredecessors == 0:
- self._ready_nodes.append(successor)
- self._nfinished += 1
-
- def _find_cycle(self):
- n2i = self._node2info
- stack = []
- itstack = []
- seen = set()
- node2stacki = {}
-
- for node in n2i:
- if node in seen:
- continue
-
- while True:
- if node in seen:
- # If we have seen already the node and is in the
- # current stack we have found a cycle.
- if node in node2stacki:
- return stack[node2stacki[node] :] + [node]
- # else go on to get next successor
- else:
- seen.add(node)
- itstack.append(iter(n2i[node].successors).__next__)
- node2stacki[node] = len(stack)
- stack.append(node)
-
- # Backtrack to the topmost stack entry with
- # at least another successor.
- while stack:
- try:
- node = itstack[-1]()
- break
- except StopIteration:
- del node2stacki[stack.pop()]
- itstack.pop()
- else:
- break
- return None
-
- def static_order(self):
- """Returns an iterable of nodes in a topological order.
-
- The particular order that is returned may depend on the specific
- order in which the items were inserted in the graph.
-
- Using this method does not require to call "prepare" or "done". If any
- cycle is detected, :exc:`CycleError` will be raised.
- """
- self.prepare()
- while self.is_active():
- node_group = self.get_ready()
- yield from node_group
- self.done(*node_group)
+__all__ = ["TopologicalSorter", "CycleError"]
+
+_NODE_OUT = -1
+_NODE_DONE = -2
+
+
+class _NodeInfo:
+ __slots__ = "node", "npredecessors", "successors"
+
+ def __init__(self, node):
+ # The node this class is augmenting.
+ self.node = node
+
+ # Number of predecessors, generally >= 0. When this value falls to 0,
+ # and is returned by get_ready(), this is set to _NODE_OUT and when the
+ # node is marked done by a call to done(), set to _NODE_DONE.
+ self.npredecessors = 0
+
+ # List of successor nodes. The list can contain duplicated elements as
+ # long as they're all reflected in the successor's npredecessors attribute.
+ self.successors = []
+
+
+class CycleError(ValueError):
+ """Subclass of ValueError raised by TopologicalSorter.prepare if cycles
+ exist in the working graph.
+
+ If multiple cycles exist, only one undefined choice among them will be reported
+ and included in the exception. The detected cycle can be accessed via the second
+ element in the *args* attribute of the exception instance and consists in a list
+ of nodes, such that each node is, in the graph, an immediate predecessor of the
+ next node in the list. In the reported list, the first and the last node will be
+ the same, to make it clear that it is cyclic.
+ """
+
+ pass
+
+
+class TopologicalSorter:
+ """Provides functionality to topologically sort a graph of hashable nodes"""
+
+ def __init__(self, graph=None):
+ self._node2info = {}
+ self._ready_nodes = None
+ self._npassedout = 0
+ self._nfinished = 0
+
+ if graph is not None:
+ for node, predecessors in graph.items():
+ self.add(node, *predecessors)
+
+ def _get_nodeinfo(self, node):
+ if (result := self._node2info.get(node)) is None:
+ self._node2info[node] = result = _NodeInfo(node)
+ return result
+
+ def add(self, node, *predecessors):
+ """Add a new node and its predecessors to the graph.
+
+ Both the *node* and all elements in *predecessors* must be hashable.
+
+ If called multiple times with the same node argument, the set of dependencies
+ will be the union of all dependencies passed in.
+
+ It is possible to add a node with no dependencies (*predecessors* is not provided)
+ as well as provide a dependency twice. If a node that has not been provided before
+ is included among *predecessors* it will be automatically added to the graph with
+ no predecessors of its own.
+
+ Raises ValueError if called after "prepare".
+ """
+ if self._ready_nodes is not None:
+ raise ValueError("Nodes cannot be added after a call to prepare()")
+
+ # Create the node -> predecessor edges
+ nodeinfo = self._get_nodeinfo(node)
+ nodeinfo.npredecessors += len(predecessors)
+
+ # Create the predecessor -> node edges
+ for pred in predecessors:
+ pred_info = self._get_nodeinfo(pred)
+ pred_info.successors.append(node)
+
+ def prepare(self):
+ """Mark the graph as finished and check for cycles in the graph.
+
+ If any cycle is detected, "CycleError" will be raised, but "get_ready" can
+ still be used to obtain as many nodes as possible until cycles block more
+ progress. After a call to this function, the graph cannot be modified and
+ therefore no more nodes can be added using "add".
+ """
+ if self._ready_nodes is not None:
+ raise ValueError("cannot prepare() more than once")
+
+ self._ready_nodes = [
+ i.node for i in self._node2info.values() if i.npredecessors == 0
+ ]
+ # ready_nodes is set before we look for cycles on purpose:
+ # if the user wants to catch the CycleError, that's fine,
+ # they can continue using the instance to grab as many
+ # nodes as possible before cycles block more progress
+ cycle = self._find_cycle()
+ if cycle:
+ raise CycleError(f"nodes are in a cycle", cycle)
+
+ def get_ready(self):
+ """Return a tuple of all the nodes that are ready.
+
+ Initially it returns all nodes with no predecessors; once those are marked
+ as processed by calling "done", further calls will return all new nodes that
+ have all their predecessors already processed. Once no more progress can be made,
+ empty tuples are returned.
+
+ Raises ValueError if called without calling "prepare" previously.
+ """
+ if self._ready_nodes is None:
+ raise ValueError("prepare() must be called first")
+
+ # Get the nodes that are ready and mark them
+ result = tuple(self._ready_nodes)
+ n2i = self._node2info
+ for node in result:
+ n2i[node].npredecessors = _NODE_OUT
+
+ # Clean the list of nodes that are ready and update
+ # the counter of nodes that we have returned.
+ self._ready_nodes.clear()
+ self._npassedout += len(result)
+
+ return result
+
+ def is_active(self):
+ """Return ``True`` if more progress can be made and ``False`` otherwise.
+
+ Progress can be made if cycles do not block the resolution and either there
+ are still nodes ready that haven't yet been returned by "get_ready" or the
+ number of nodes marked "done" is less than the number that have been returned
+ by "get_ready".
+
+ Raises ValueError if called without calling "prepare" previously.
+ """
+ if self._ready_nodes is None:
+ raise ValueError("prepare() must be called first")
+ return self._nfinished < self._npassedout or bool(self._ready_nodes)
+
+ def __bool__(self):
+ return self.is_active()
+
+ def done(self, *nodes):
+ """Marks a set of nodes returned by "get_ready" as processed.
+
+ This method unblocks any successor of each node in *nodes* for being returned
+ in the future by a call to "get_ready".
+
+ Raises :exec:`ValueError` if any node in *nodes* has already been marked as
+ processed by a previous call to this method, if a node was not added to the
+ graph by using "add" or if called without calling "prepare" previously or if
+ node has not yet been returned by "get_ready".
+ """
+
+ if self._ready_nodes is None:
+ raise ValueError("prepare() must be called first")
+
+ n2i = self._node2info
+
+ for node in nodes:
+
+ # Check if we know about this node (it was added previously using add()
+ if (nodeinfo := n2i.get(node)) is None:
+ raise ValueError(f"node {node!r} was not added using add()")
+
+ # If the node has not being returned (marked as ready) previously, inform the user.
+ stat = nodeinfo.npredecessors
+ if stat != _NODE_OUT:
+ if stat >= 0:
+ raise ValueError(
+ f"node {node!r} was not passed out (still not ready)"
+ )
+ elif stat == _NODE_DONE:
+ raise ValueError(f"node {node!r} was already marked done")
+ else:
+ assert False, f"node {node!r}: unknown status {stat}"
+
+ # Mark the node as processed
+ nodeinfo.npredecessors = _NODE_DONE
+
+ # Go to all the successors and reduce the number of predecessors, collecting all the ones
+ # that are ready to be returned in the next get_ready() call.
+ for successor in nodeinfo.successors:
+ successor_info = n2i[successor]
+ successor_info.npredecessors -= 1
+ if successor_info.npredecessors == 0:
+ self._ready_nodes.append(successor)
+ self._nfinished += 1
+
+ def _find_cycle(self):
+ n2i = self._node2info
+ stack = []
+ itstack = []
+ seen = set()
+ node2stacki = {}
+
+ for node in n2i:
+ if node in seen:
+ continue
+
+ while True:
+ if node in seen:
+ # If we have seen already the node and is in the
+ # current stack we have found a cycle.
+ if node in node2stacki:
+ return stack[node2stacki[node] :] + [node]
+ # else go on to get next successor
+ else:
+ seen.add(node)
+ itstack.append(iter(n2i[node].successors).__next__)
+ node2stacki[node] = len(stack)
+ stack.append(node)
+
+ # Backtrack to the topmost stack entry with
+ # at least another successor.
+ while stack:
+ try:
+ node = itstack[-1]()
+ break
+ except StopIteration:
+ del node2stacki[stack.pop()]
+ itstack.pop()
+ else:
+ break
+ return None
+
+ def static_order(self):
+ """Returns an iterable of nodes in a topological order.
+
+ The particular order that is returned may depend on the specific
+ order in which the items were inserted in the graph.
+
+ Using this method does not require to call "prepare" or "done". If any
+ cycle is detected, :exc:`CycleError` will be raised.
+ """
+ self.prepare()
+ while self.is_active():
+ node_group = self.get_ready()
+ yield from node_group
+ self.done(*node_group)
diff --git a/contrib/tools/python3/src/Lib/gzip.py b/contrib/tools/python3/src/Lib/gzip.py
index 360857df38..11a5f41d56 100644
--- a/contrib/tools/python3/src/Lib/gzip.py
+++ b/contrib/tools/python3/src/Lib/gzip.py
@@ -11,18 +11,18 @@ import builtins
import io
import _compression
-__all__ = ["BadGzipFile", "GzipFile", "open", "compress", "decompress"]
+__all__ = ["BadGzipFile", "GzipFile", "open", "compress", "decompress"]
FTEXT, FHCRC, FEXTRA, FNAME, FCOMMENT = 1, 2, 4, 8, 16
READ, WRITE = 1, 2
-_COMPRESS_LEVEL_FAST = 1
-_COMPRESS_LEVEL_TRADEOFF = 6
-_COMPRESS_LEVEL_BEST = 9
-
-
-def open(filename, mode="rb", compresslevel=_COMPRESS_LEVEL_BEST,
+_COMPRESS_LEVEL_FAST = 1
+_COMPRESS_LEVEL_TRADEOFF = 6
+_COMPRESS_LEVEL_BEST = 9
+
+
+def open(filename, mode="rb", compresslevel=_COMPRESS_LEVEL_BEST,
encoding=None, errors=None, newline=None):
"""Open a gzip-compressed file in binary or text mode.
@@ -112,11 +112,11 @@ class _PaddedFile:
def seekable(self):
return True # Allows fast-forwarding even in unseekable streams
-
-class BadGzipFile(OSError):
- """Exception raised in some cases for invalid gzip files."""
-
-
+
+class BadGzipFile(OSError):
+ """Exception raised in some cases for invalid gzip files."""
+
+
class GzipFile(_compression.BaseStream):
"""The GzipFile class simulates most of the methods of a file object with
the exception of the truncate() method.
@@ -131,7 +131,7 @@ class GzipFile(_compression.BaseStream):
myfileobj = None
def __init__(self, filename=None, mode=None,
- compresslevel=_COMPRESS_LEVEL_BEST, fileobj=None, mtime=None):
+ compresslevel=_COMPRESS_LEVEL_BEST, fileobj=None, mtime=None):
"""Constructor for the GzipFile class.
At least one of fileobj and filename must be given a
@@ -177,7 +177,7 @@ class GzipFile(_compression.BaseStream):
filename = ''
else:
filename = os.fspath(filename)
- origmode = mode
+ origmode = mode
if mode is None:
mode = getattr(fileobj, 'mode', 'rb')
@@ -188,13 +188,13 @@ class GzipFile(_compression.BaseStream):
self.name = filename
elif mode.startswith(('w', 'a', 'x')):
- if origmode is None:
- import warnings
- warnings.warn(
- "GzipFile was opened for writing, but this will "
- "change in future Python releases. "
- "Specify the mode argument for opening it for writing.",
- FutureWarning, 2)
+ if origmode is None:
+ import warnings
+ warnings.warn(
+ "GzipFile was opened for writing, but this will "
+ "change in future Python releases. "
+ "Specify the mode argument for opening it for writing.",
+ FutureWarning, 2)
self.mode = WRITE
self._init_write(filename)
self.compress = zlib.compressobj(compresslevel,
@@ -209,7 +209,7 @@ class GzipFile(_compression.BaseStream):
self.fileobj = fileobj
if self.mode == WRITE:
- self._write_gzip_header(compresslevel)
+ self._write_gzip_header(compresslevel)
@property
def filename(self):
@@ -236,7 +236,7 @@ class GzipFile(_compression.BaseStream):
self.bufsize = 0
self.offset = 0 # Current file offset for seek(), tell(), etc
- def _write_gzip_header(self, compresslevel):
+ def _write_gzip_header(self, compresslevel):
self.fileobj.write(b'\037\213') # magic header
self.fileobj.write(b'\010') # compression method
try:
@@ -257,13 +257,13 @@ class GzipFile(_compression.BaseStream):
if mtime is None:
mtime = time.time()
write32u(self.fileobj, int(mtime))
- if compresslevel == _COMPRESS_LEVEL_BEST:
- xfl = b'\002'
- elif compresslevel == _COMPRESS_LEVEL_FAST:
- xfl = b'\004'
- else:
- xfl = b'\000'
- self.fileobj.write(xfl)
+ if compresslevel == _COMPRESS_LEVEL_BEST:
+ xfl = b'\002'
+ elif compresslevel == _COMPRESS_LEVEL_FAST:
+ xfl = b'\004'
+ else:
+ xfl = b'\000'
+ self.fileobj.write(xfl)
self.fileobj.write(b'\377')
if fname:
self.fileobj.write(fname + b'\000')
@@ -302,7 +302,7 @@ class GzipFile(_compression.BaseStream):
def read1(self, size=-1):
"""Implements BufferedIOBase.read1()
- Reads up to a buffer's worth of data if size is negative."""
+ Reads up to a buffer's worth of data if size is negative."""
self._check_not_closed()
if self.mode != READ:
import errno
@@ -432,12 +432,12 @@ class _GzipReader(_compression.DecompressReader):
return False
if magic != b'\037\213':
- raise BadGzipFile('Not a gzipped file (%r)' % magic)
+ raise BadGzipFile('Not a gzipped file (%r)' % magic)
(method, flag,
self._last_mtime) = struct.unpack("<BBIxx", self._read_exact(8))
if method != 8:
- raise BadGzipFile('Unknown compression method')
+ raise BadGzipFile('Unknown compression method')
if flag & FEXTRA:
# Read & discard the extra field, if present
@@ -516,15 +516,15 @@ class _GzipReader(_compression.DecompressReader):
def _read_eof(self):
# We've read to the end of the file
- # We check that the computed CRC and size of the
+ # We check that the computed CRC and size of the
# uncompressed data matches the stored values. Note that the size
# stored is the true file size mod 2**32.
crc32, isize = struct.unpack("<II", self._read_exact(8))
if crc32 != self._crc:
- raise BadGzipFile("CRC check failed %s != %s" % (hex(crc32),
- hex(self._crc)))
+ raise BadGzipFile("CRC check failed %s != %s" % (hex(crc32),
+ hex(self._crc)))
elif isize != (self._stream_size & 0xffffffff):
- raise BadGzipFile("Incorrect length of data produced")
+ raise BadGzipFile("Incorrect length of data produced")
# Gzip files can be padded with zeroes and still have archives.
# Consume all zero bytes and set the file position to the first
@@ -539,12 +539,12 @@ class _GzipReader(_compression.DecompressReader):
super()._rewind()
self._new_member = True
-def compress(data, compresslevel=_COMPRESS_LEVEL_BEST, *, mtime=None):
+def compress(data, compresslevel=_COMPRESS_LEVEL_BEST, *, mtime=None):
"""Compress data in one shot and return the compressed string.
Optional argument is the compression level, in range of 0-9.
"""
buf = io.BytesIO()
- with GzipFile(fileobj=buf, mode='wb', compresslevel=compresslevel, mtime=mtime) as f:
+ with GzipFile(fileobj=buf, mode='wb', compresslevel=compresslevel, mtime=mtime) as f:
f.write(data)
return buf.getvalue()
@@ -556,41 +556,41 @@ def decompress(data):
return f.read()
-def main():
- from argparse import ArgumentParser
- parser = ArgumentParser(description=
- "A simple command line interface for the gzip module: act like gzip, "
- "but do not delete the input file.")
- group = parser.add_mutually_exclusive_group()
- group.add_argument('--fast', action='store_true', help='compress faster')
- group.add_argument('--best', action='store_true', help='compress better')
- group.add_argument("-d", "--decompress", action="store_true",
- help="act like gunzip instead of gzip")
-
- parser.add_argument("args", nargs="*", default=["-"], metavar='file')
- args = parser.parse_args()
-
- compresslevel = _COMPRESS_LEVEL_TRADEOFF
- if args.fast:
- compresslevel = _COMPRESS_LEVEL_FAST
- elif args.best:
- compresslevel = _COMPRESS_LEVEL_BEST
-
- for arg in args.args:
- if args.decompress:
+def main():
+ from argparse import ArgumentParser
+ parser = ArgumentParser(description=
+ "A simple command line interface for the gzip module: act like gzip, "
+ "but do not delete the input file.")
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument('--fast', action='store_true', help='compress faster')
+ group.add_argument('--best', action='store_true', help='compress better')
+ group.add_argument("-d", "--decompress", action="store_true",
+ help="act like gunzip instead of gzip")
+
+ parser.add_argument("args", nargs="*", default=["-"], metavar='file')
+ args = parser.parse_args()
+
+ compresslevel = _COMPRESS_LEVEL_TRADEOFF
+ if args.fast:
+ compresslevel = _COMPRESS_LEVEL_FAST
+ elif args.best:
+ compresslevel = _COMPRESS_LEVEL_BEST
+
+ for arg in args.args:
+ if args.decompress:
if arg == "-":
f = GzipFile(filename="", mode="rb", fileobj=sys.stdin.buffer)
g = sys.stdout.buffer
else:
if arg[-3:] != ".gz":
- sys.exit(f"filename doesn't end in .gz: {arg!r}")
+ sys.exit(f"filename doesn't end in .gz: {arg!r}")
f = open(arg, "rb")
g = builtins.open(arg[:-3], "wb")
else:
if arg == "-":
f = sys.stdin.buffer
- g = GzipFile(filename="", mode="wb", fileobj=sys.stdout.buffer,
- compresslevel=compresslevel)
+ g = GzipFile(filename="", mode="wb", fileobj=sys.stdout.buffer,
+ compresslevel=compresslevel)
else:
f = builtins.open(arg, "rb")
g = open(arg + ".gz", "wb")
@@ -605,4 +605,4 @@ def main():
f.close()
if __name__ == '__main__':
- main()
+ main()
diff --git a/contrib/tools/python3/src/Lib/hashlib.py b/contrib/tools/python3/src/Lib/hashlib.py
index 5e0017866b..58c340d56e 100644
--- a/contrib/tools/python3/src/Lib/hashlib.py
+++ b/contrib/tools/python3/src/Lib/hashlib.py
@@ -70,47 +70,47 @@ __all__ = __always_supported + ('new', 'algorithms_guaranteed',
__builtin_constructor_cache = {}
-# Prefer our blake2 implementation
-# OpenSSL 1.1.0 comes with a limited implementation of blake2b/s. The OpenSSL
-# implementations neither support keyed blake2 (blake2 MAC) nor advanced
-# features like salt, personalization, or tree hashing. OpenSSL hash-only
-# variants are available as 'blake2b512' and 'blake2s256', though.
-__block_openssl_constructor = {
- 'blake2b', 'blake2s',
-}
-
+# Prefer our blake2 implementation
+# OpenSSL 1.1.0 comes with a limited implementation of blake2b/s. The OpenSSL
+# implementations neither support keyed blake2 (blake2 MAC) nor advanced
+# features like salt, personalization, or tree hashing. OpenSSL hash-only
+# variants are available as 'blake2b512' and 'blake2s256', though.
+__block_openssl_constructor = {
+ 'blake2b', 'blake2s',
+}
+
def __get_builtin_constructor(name):
cache = __builtin_constructor_cache
constructor = cache.get(name)
if constructor is not None:
return constructor
try:
- if name in {'SHA1', 'sha1'}:
+ if name in {'SHA1', 'sha1'}:
import _sha1
cache['SHA1'] = cache['sha1'] = _sha1.sha1
- elif name in {'MD5', 'md5'}:
+ elif name in {'MD5', 'md5'}:
import _md5
cache['MD5'] = cache['md5'] = _md5.md5
- elif name in {'SHA256', 'sha256', 'SHA224', 'sha224'}:
+ elif name in {'SHA256', 'sha256', 'SHA224', 'sha224'}:
import _sha256
cache['SHA224'] = cache['sha224'] = _sha256.sha224
cache['SHA256'] = cache['sha256'] = _sha256.sha256
- elif name in {'SHA512', 'sha512', 'SHA384', 'sha384'}:
+ elif name in {'SHA512', 'sha512', 'SHA384', 'sha384'}:
import _sha512
cache['SHA384'] = cache['sha384'] = _sha512.sha384
cache['SHA512'] = cache['sha512'] = _sha512.sha512
- elif name in {'blake2b', 'blake2s'}:
+ elif name in {'blake2b', 'blake2s'}:
import _blake2
cache['blake2b'] = _blake2.blake2b
cache['blake2s'] = _blake2.blake2s
- elif name in {'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512'}:
+ elif name in {'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512'}:
import _sha3
cache['sha3_224'] = _sha3.sha3_224
cache['sha3_256'] = _sha3.sha3_256
cache['sha3_384'] = _sha3.sha3_384
cache['sha3_512'] = _sha3.sha3_512
- elif name in {'shake_128', 'shake_256'}:
- import _sha3
+ elif name in {'shake_128', 'shake_256'}:
+ import _sha3
cache['shake_128'] = _sha3.shake_128
cache['shake_256'] = _sha3.shake_256
except ImportError:
@@ -124,17 +124,17 @@ def __get_builtin_constructor(name):
def __get_openssl_constructor(name):
- if name in __block_openssl_constructor:
- # Prefer our builtin blake2 implementation.
+ if name in __block_openssl_constructor:
+ # Prefer our builtin blake2 implementation.
return __get_builtin_constructor(name)
try:
- # MD5, SHA1, and SHA2 are in all supported OpenSSL versions
- # SHA3/shake are available in OpenSSL 1.1.1+
+ # MD5, SHA1, and SHA2 are in all supported OpenSSL versions
+ # SHA3/shake are available in OpenSSL 1.1.1+
f = getattr(_hashlib, 'openssl_' + name)
# Allow the C module to raise ValueError. The function will be
- # defined but the hash not actually available. Don't fall back to
- # builtin if the current security policy blocks a digest, bpo#40695.
- f(usedforsecurity=False)
+ # defined but the hash not actually available. Don't fall back to
+ # builtin if the current security policy blocks a digest, bpo#40695.
+ f(usedforsecurity=False)
# Use the C function directly (very fast)
return f
except (AttributeError, ValueError):
@@ -153,11 +153,11 @@ def __hash_new(name, data=b'', **kwargs):
"""new(name, data=b'') - Return a new hashing object using the named algorithm;
optionally initialized with data (which must be a bytes-like object).
"""
- if name in __block_openssl_constructor:
- # Prefer our builtin blake2 implementation.
+ if name in __block_openssl_constructor:
+ # Prefer our builtin blake2 implementation.
return __get_builtin_constructor(name)(data, **kwargs)
try:
- return _hashlib.new(name, data, **kwargs)
+ return _hashlib.new(name, data, **kwargs)
except ValueError:
# If the _hashlib module (OpenSSL) doesn't support the named
# hash, try using our builtin implementations.
diff --git a/contrib/tools/python3/src/Lib/heapq.py b/contrib/tools/python3/src/Lib/heapq.py
index 535cabfa1f..fabefd87f8 100644
--- a/contrib/tools/python3/src/Lib/heapq.py
+++ b/contrib/tools/python3/src/Lib/heapq.py
@@ -468,7 +468,7 @@ def nsmallest(n, iterable, key=None):
if n == 1:
it = iter(iterable)
sentinel = object()
- result = min(it, default=sentinel, key=key)
+ result = min(it, default=sentinel, key=key)
return [] if result is sentinel else [result]
# When n>=size, it's faster to use sorted()
@@ -528,7 +528,7 @@ def nlargest(n, iterable, key=None):
if n == 1:
it = iter(iterable)
sentinel = object()
- result = max(it, default=sentinel, key=key)
+ result = max(it, default=sentinel, key=key)
return [] if result is sentinel else [result]
# When n>=size, it's faster to use sorted()
@@ -597,5 +597,5 @@ except ImportError:
if __name__ == "__main__":
- import doctest # pragma: no cover
- print(doctest.testmod()) # pragma: no cover
+ import doctest # pragma: no cover
+ print(doctest.testmod()) # pragma: no cover
diff --git a/contrib/tools/python3/src/Lib/hmac.py b/contrib/tools/python3/src/Lib/hmac.py
index 3051334b3d..180bc378b5 100644
--- a/contrib/tools/python3/src/Lib/hmac.py
+++ b/contrib/tools/python3/src/Lib/hmac.py
@@ -1,4 +1,4 @@
-"""HMAC (Keyed-Hashing for Message Authentication) module.
+"""HMAC (Keyed-Hashing for Message Authentication) module.
Implements the HMAC algorithm as described by RFC 2104.
"""
@@ -9,10 +9,10 @@ try:
except ImportError:
_hashopenssl = None
_openssl_md_meths = None
- from _operator import _compare_digest as compare_digest
+ from _operator import _compare_digest as compare_digest
else:
_openssl_md_meths = frozenset(_hashopenssl.openssl_md_meth_names)
- compare_digest = _hashopenssl.compare_digest
+ compare_digest = _hashopenssl.compare_digest
import hashlib as _hashlib
trans_5C = bytes((x ^ 0x5C) for x in range(256))
@@ -31,43 +31,43 @@ class HMAC:
"""
blocksize = 64 # 512-bit HMAC; can be changed in subclasses.
- __slots__ = (
- "_digest_cons", "_inner", "_outer", "block_size", "digest_size"
- )
-
- def __init__(self, key, msg=None, digestmod=''):
+ __slots__ = (
+ "_digest_cons", "_inner", "_outer", "block_size", "digest_size"
+ )
+
+ def __init__(self, key, msg=None, digestmod=''):
"""Create a new HMAC object.
- key: bytes or buffer, key for the keyed hash object.
- msg: bytes or buffer, Initial input for the hash or None.
- digestmod: A hash name suitable for hashlib.new(). *OR*
+ key: bytes or buffer, key for the keyed hash object.
+ msg: bytes or buffer, Initial input for the hash or None.
+ digestmod: A hash name suitable for hashlib.new(). *OR*
A hashlib constructor returning a new hash object. *OR*
- A module supporting PEP 247.
+ A module supporting PEP 247.
- Required as of 3.8, despite its position after the optional
- msg argument. Passing it as a keyword argument is
- recommended, though not required for legacy API reasons.
+ Required as of 3.8, despite its position after the optional
+ msg argument. Passing it as a keyword argument is
+ recommended, though not required for legacy API reasons.
"""
if not isinstance(key, (bytes, bytearray)):
raise TypeError("key: expected bytes or bytearray, but got %r" % type(key).__name__)
- if not digestmod:
- raise TypeError("Missing required parameter 'digestmod'.")
+ if not digestmod:
+ raise TypeError("Missing required parameter 'digestmod'.")
if callable(digestmod):
- self._digest_cons = digestmod
+ self._digest_cons = digestmod
elif isinstance(digestmod, str):
- self._digest_cons = lambda d=b'': _hashlib.new(digestmod, d)
+ self._digest_cons = lambda d=b'': _hashlib.new(digestmod, d)
else:
- self._digest_cons = lambda d=b'': digestmod.new(d)
+ self._digest_cons = lambda d=b'': digestmod.new(d)
- self._outer = self._digest_cons()
- self._inner = self._digest_cons()
- self.digest_size = self._inner.digest_size
+ self._outer = self._digest_cons()
+ self._inner = self._digest_cons()
+ self.digest_size = self._inner.digest_size
- if hasattr(self._inner, 'block_size'):
- blocksize = self._inner.block_size
+ if hasattr(self._inner, 'block_size'):
+ blocksize = self._inner.block_size
if blocksize < 16:
_warnings.warn('block_size of %d seems too small; using our '
'default of %d.' % (blocksize, self.blocksize),
@@ -84,33 +84,33 @@ class HMAC:
self.block_size = blocksize
if len(key) > blocksize:
- key = self._digest_cons(key).digest()
+ key = self._digest_cons(key).digest()
key = key.ljust(blocksize, b'\0')
- self._outer.update(key.translate(trans_5C))
- self._inner.update(key.translate(trans_36))
+ self._outer.update(key.translate(trans_5C))
+ self._inner.update(key.translate(trans_36))
if msg is not None:
self.update(msg)
@property
def name(self):
- return "hmac-" + self._inner.name
-
- @property
- def digest_cons(self):
- return self._digest_cons
-
- @property
- def inner(self):
- return self._inner
-
- @property
- def outer(self):
- return self._outer
-
+ return "hmac-" + self._inner.name
+
+ @property
+ def digest_cons(self):
+ return self._digest_cons
+
+ @property
+ def inner(self):
+ return self._inner
+
+ @property
+ def outer(self):
+ return self._outer
+
def update(self, msg):
- """Feed data from msg into this hashing object."""
- self._inner.update(msg)
+ """Feed data from msg into this hashing object."""
+ self._inner.update(msg)
def copy(self):
"""Return a separate copy of this hashing object.
@@ -119,10 +119,10 @@ class HMAC:
"""
# Call __new__ directly to avoid the expensive __init__.
other = self.__class__.__new__(self.__class__)
- other._digest_cons = self._digest_cons
+ other._digest_cons = self._digest_cons
other.digest_size = self.digest_size
- other._inner = self._inner.copy()
- other._outer = self._outer.copy()
+ other._inner = self._inner.copy()
+ other._outer = self._outer.copy()
return other
def _current(self):
@@ -130,14 +130,14 @@ class HMAC:
To be used only internally with digest() and hexdigest().
"""
- h = self._outer.copy()
- h.update(self._inner.digest())
+ h = self._outer.copy()
+ h.update(self._inner.digest())
return h
def digest(self):
"""Return the hash value of this hashing object.
- This returns the hmac value as bytes. The object is
+ This returns the hmac value as bytes. The object is
not altered in any way by this function; you can continue
updating the object after calling this function.
"""
@@ -150,31 +150,31 @@ class HMAC:
h = self._current()
return h.hexdigest()
-def new(key, msg=None, digestmod=''):
+def new(key, msg=None, digestmod=''):
"""Create a new hashing object and return it.
- key: bytes or buffer, The starting key for the hash.
- msg: bytes or buffer, Initial input for the hash, or None.
- digestmod: A hash name suitable for hashlib.new(). *OR*
- A hashlib constructor returning a new hash object. *OR*
- A module supporting PEP 247.
-
- Required as of 3.8, despite its position after the optional
- msg argument. Passing it as a keyword argument is
- recommended, though not required for legacy API reasons.
-
- You can now feed arbitrary bytes into the object using its update()
+ key: bytes or buffer, The starting key for the hash.
+ msg: bytes or buffer, Initial input for the hash, or None.
+ digestmod: A hash name suitable for hashlib.new(). *OR*
+ A hashlib constructor returning a new hash object. *OR*
+ A module supporting PEP 247.
+
+ Required as of 3.8, despite its position after the optional
+ msg argument. Passing it as a keyword argument is
+ recommended, though not required for legacy API reasons.
+
+ You can now feed arbitrary bytes into the object using its update()
method, and can ask for the hash value at any time by calling its digest()
- or hexdigest() methods.
+ or hexdigest() methods.
"""
return HMAC(key, msg, digestmod)
def digest(key, msg, digest):
- """Fast inline implementation of HMAC.
+ """Fast inline implementation of HMAC.
- key: bytes or buffer, The key for the keyed hash object.
- msg: bytes or buffer, Input message.
+ key: bytes or buffer, The key for the keyed hash object.
+ msg: bytes or buffer, Input message.
digest: A hash name suitable for hashlib.new() for best performance. *OR*
A hashlib constructor returning a new hash object. *OR*
A module supporting PEP 247.
diff --git a/contrib/tools/python3/src/Lib/html/parser.py b/contrib/tools/python3/src/Lib/html/parser.py
index a53dc89776..58f6bb3b1e 100644
--- a/contrib/tools/python3/src/Lib/html/parser.py
+++ b/contrib/tools/python3/src/Lib/html/parser.py
@@ -46,7 +46,7 @@ locatestarttagend_tolerant = re.compile(r"""
|"[^"]*" # LIT-enclosed value
|(?!['"])[^>\s]* # bare value
)
- \s* # possibly followed by a space
+ \s* # possibly followed by a space
)?(?:\s|/(?!>))*
)*
)?
@@ -405,7 +405,7 @@ class HTMLParser(_markupbase.ParserBase):
tagname = namematch.group(1).lower()
# consume and ignore other stuff between the name and the >
# Note: this is not 100% correct, since we might have things like
- # </tag attr=">">, but looking for > after the name should cover
+ # </tag attr=">">, but looking for > after the name should cover
# most of the cases and is much simpler
gtpos = rawdata.find('>', namematch.end())
self.handle_endtag(tagname)
diff --git a/contrib/tools/python3/src/Lib/http/__init__.py b/contrib/tools/python3/src/Lib/http/__init__.py
index 2efca879a9..37be765349 100644
--- a/contrib/tools/python3/src/Lib/http/__init__.py
+++ b/contrib/tools/python3/src/Lib/http/__init__.py
@@ -15,11 +15,11 @@ class HTTPStatus(IntEnum):
* RFC 7238: Permanent Redirect
* RFC 2295: Transparent Content Negotiation in HTTP
* RFC 2774: An HTTP Extension Framework
- * RFC 7725: An HTTP Status Code to Report Legal Obstacles
+ * RFC 7725: An HTTP Status Code to Report Legal Obstacles
* RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2)
- * RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)
- * RFC 8297: An HTTP Status Code for Indicating Hints
- * RFC 8470: Using Early Data in HTTP
+ * RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)
+ * RFC 8297: An HTTP Status Code for Indicating Hints
+ * RFC 8470: Using Early Data in HTTP
"""
def __new__(cls, value, phrase, description=''):
obj = int.__new__(cls, value)
@@ -34,7 +34,7 @@ class HTTPStatus(IntEnum):
SWITCHING_PROTOCOLS = (101, 'Switching Protocols',
'Switching to new protocol; obey Upgrade header')
PROCESSING = 102, 'Processing'
- EARLY_HINTS = 103, 'Early Hints'
+ EARLY_HINTS = 103, 'Early Hints'
# success
OK = 200, 'OK', 'Request fulfilled, document follows'
@@ -64,7 +64,7 @@ class HTTPStatus(IntEnum):
TEMPORARY_REDIRECT = (307, 'Temporary Redirect',
'Object moved temporarily -- see URI list')
PERMANENT_REDIRECT = (308, 'Permanent Redirect',
- 'Object moved permanently -- see URI list')
+ 'Object moved permanently -- see URI list')
# client error
BAD_REQUEST = (400, 'Bad Request',
@@ -104,14 +104,14 @@ class HTTPStatus(IntEnum):
'Cannot satisfy request range')
EXPECTATION_FAILED = (417, 'Expectation Failed',
'Expect condition could not be satisfied')
- IM_A_TEAPOT = (418, 'I\'m a Teapot',
- 'Server refuses to brew coffee because it is a teapot.')
+ IM_A_TEAPOT = (418, 'I\'m a Teapot',
+ 'Server refuses to brew coffee because it is a teapot.')
MISDIRECTED_REQUEST = (421, 'Misdirected Request',
'Server is not able to produce a response')
UNPROCESSABLE_ENTITY = 422, 'Unprocessable Entity'
LOCKED = 423, 'Locked'
FAILED_DEPENDENCY = 424, 'Failed Dependency'
- TOO_EARLY = 425, 'Too Early'
+ TOO_EARLY = 425, 'Too Early'
UPGRADE_REQUIRED = 426, 'Upgrade Required'
PRECONDITION_REQUIRED = (428, 'Precondition Required',
'The origin server requires the request to be conditional')
@@ -122,10 +122,10 @@ class HTTPStatus(IntEnum):
'Request Header Fields Too Large',
'The server is unwilling to process the request because its header '
'fields are too large')
- UNAVAILABLE_FOR_LEGAL_REASONS = (451,
- 'Unavailable For Legal Reasons',
- 'The server is denying access to the '
- 'resource as a consequence of a legal demand')
+ UNAVAILABLE_FOR_LEGAL_REASONS = (451,
+ 'Unavailable For Legal Reasons',
+ 'The server is denying access to the '
+ 'resource as a consequence of a legal demand')
# server errors
INTERNAL_SERVER_ERROR = (500, 'Internal Server Error',
diff --git a/contrib/tools/python3/src/Lib/http/client.py b/contrib/tools/python3/src/Lib/http/client.py
index f0ce40cdc0..a98432e568 100644
--- a/contrib/tools/python3/src/Lib/http/client.py
+++ b/contrib/tools/python3/src/Lib/http/client.py
@@ -70,7 +70,7 @@ Req-sent-unread-response _CS_REQ_SENT <response_class>
import email.parser
import email.message
-import errno
+import errno
import http
import io
import re
@@ -106,9 +106,9 @@ globals().update(http.HTTPStatus.__members__)
# Mapping status codes to official W3C names
responses = {v: v.phrase for v in http.HTTPStatus.__members__.values()}
-# maximal amount of data to read at one time in _safe_read
-MAXAMOUNT = 1048576
-
+# maximal amount of data to read at one time in _safe_read
+MAXAMOUNT = 1048576
+
# maximal line length when calling readline().
_MAXLINE = 65536
_MAXHEADERS = 100
@@ -141,20 +141,20 @@ _MAXHEADERS = 100
_is_legal_header_name = re.compile(rb'[^:\s][^:\r\n]*').fullmatch
_is_illegal_header_value = re.compile(rb'\n(?![ \t])|\r(?![ \t\n])').search
-# These characters are not allowed within HTTP URL paths.
-# See https://tools.ietf.org/html/rfc3986#section-3.3 and the
-# https://tools.ietf.org/html/rfc3986#appendix-A pchar definition.
-# Prevents CVE-2019-9740. Includes control characters such as \r\n.
-# We don't restrict chars above \x7f as putrequest() limits us to ASCII.
-_contains_disallowed_url_pchar_re = re.compile('[\x00-\x20\x7f]')
-# Arguably only these _should_ allowed:
-# _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
-# We are more lenient for assumed real world compatibility purposes.
-
-# These characters are not allowed within HTTP method names
-# to prevent http header injection.
-_contains_disallowed_method_pchar_re = re.compile('[\x00-\x1f]')
-
+# These characters are not allowed within HTTP URL paths.
+# See https://tools.ietf.org/html/rfc3986#section-3.3 and the
+# https://tools.ietf.org/html/rfc3986#appendix-A pchar definition.
+# Prevents CVE-2019-9740. Includes control characters such as \r\n.
+# We don't restrict chars above \x7f as putrequest() limits us to ASCII.
+_contains_disallowed_url_pchar_re = re.compile('[\x00-\x20\x7f]')
+# Arguably only these _should_ allowed:
+# _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
+# We are more lenient for assumed real world compatibility purposes.
+
+# These characters are not allowed within HTTP method names
+# to prevent http header injection.
+_contains_disallowed_method_pchar_re = re.compile('[\x00-\x1f]')
+
# We always set the Content-Length header for these methods because some
# servers will otherwise respond with a 411
_METHODS_EXPECTING_BODY = {'PATCH', 'POST', 'PUT'}
@@ -205,11 +205,11 @@ class HTTPMessage(email.message.Message):
lst.append(line)
return lst
-def _read_headers(fp):
- """Reads potential header lines into a list from a file pointer.
+def _read_headers(fp):
+ """Reads potential header lines into a list from a file pointer.
- Length of line is limited by _MAXLINE, and number of
- headers is limited by _MAXHEADERS.
+ Length of line is limited by _MAXLINE, and number of
+ headers is limited by _MAXHEADERS.
"""
headers = []
while True:
@@ -221,19 +221,19 @@ def _read_headers(fp):
raise HTTPException("got more than %d headers" % _MAXHEADERS)
if line in (b'\r\n', b'\n', b''):
break
- return headers
-
-def parse_headers(fp, _class=HTTPMessage):
- """Parses only RFC2822 headers from a file pointer.
-
- email Parser wants to see strings rather than bytes.
- But a TextIOWrapper around self.rfile would buffer too many bytes
- from the stream, bytes which we later need to read as bytes.
- So we read the correct bytes here, as bytes, for email Parser
- to parse.
-
- """
- headers = _read_headers(fp)
+ return headers
+
+def parse_headers(fp, _class=HTTPMessage):
+ """Parses only RFC2822 headers from a file pointer.
+
+ email Parser wants to see strings rather than bytes.
+ But a TextIOWrapper around self.rfile would buffer too many bytes
+ from the stream, bytes which we later need to read as bytes.
+ So we read the correct bytes here, as bytes, for email Parser
+ to parse.
+
+ """
+ headers = _read_headers(fp)
hstring = b''.join(headers).decode('iso-8859-1')
return email.parser.Parser(_class=_class).parsestr(hstring)
@@ -321,10 +321,10 @@ class HTTPResponse(io.BufferedIOBase):
if status != CONTINUE:
break
# skip the header from the 100 response
- skipped_headers = _read_headers(self.fp)
- if self.debuglevel > 0:
- print("headers:", skipped_headers)
- del skipped_headers
+ skipped_headers = _read_headers(self.fp)
+ if self.debuglevel > 0:
+ print("headers:", skipped_headers)
+ del skipped_headers
self.code = self.status = status
self.reason = reason.strip()
@@ -339,8 +339,8 @@ class HTTPResponse(io.BufferedIOBase):
self.headers = self.msg = parse_headers(self.fp)
if self.debuglevel > 0:
- for hdr, val in self.headers.items():
- print("header:", hdr + ":", val)
+ for hdr, val in self.headers.items():
+ print("header:", hdr + ":", val)
# are we using the chunked-style of transfer encoding?
tr_enc = self.headers.get("transfer-encoding")
@@ -608,43 +608,43 @@ class HTTPResponse(io.BufferedIOBase):
raise IncompleteRead(bytes(b[0:total_bytes]))
def _safe_read(self, amt):
- """Read the number of bytes requested, compensating for partial reads.
-
- Normally, we have a blocking socket, but a read() can be interrupted
- by a signal (resulting in a partial read).
-
- Note that we cannot distinguish between EOF and an interrupt when zero
- bytes have been read. IncompleteRead() will be raised in this
- situation.
-
+ """Read the number of bytes requested, compensating for partial reads.
+
+ Normally, we have a blocking socket, but a read() can be interrupted
+ by a signal (resulting in a partial read).
+
+ Note that we cannot distinguish between EOF and an interrupt when zero
+ bytes have been read. IncompleteRead() will be raised in this
+ situation.
+
This function should be used when <amt> bytes "should" be present for
reading. If the bytes are truly not available (due to EOF), then the
IncompleteRead exception can be used to detect the problem.
"""
- s = []
- while amt > 0:
- chunk = self.fp.read(min(amt, MAXAMOUNT))
- if not chunk:
- raise IncompleteRead(b''.join(s), amt)
- s.append(chunk)
- amt -= len(chunk)
- return b"".join(s)
+ s = []
+ while amt > 0:
+ chunk = self.fp.read(min(amt, MAXAMOUNT))
+ if not chunk:
+ raise IncompleteRead(b''.join(s), amt)
+ s.append(chunk)
+ amt -= len(chunk)
+ return b"".join(s)
def _safe_readinto(self, b):
"""Same as _safe_read, but for reading into a buffer."""
- total_bytes = 0
- mvb = memoryview(b)
- while total_bytes < len(b):
- if MAXAMOUNT < len(mvb):
- temp_mvb = mvb[0:MAXAMOUNT]
- n = self.fp.readinto(temp_mvb)
- else:
- n = self.fp.readinto(mvb)
- if not n:
- raise IncompleteRead(bytes(mvb[0:total_bytes]), len(b))
- mvb = mvb[n:]
- total_bytes += n
- return total_bytes
+ total_bytes = 0
+ mvb = memoryview(b)
+ while total_bytes < len(b):
+ if MAXAMOUNT < len(mvb):
+ temp_mvb = mvb[0:MAXAMOUNT]
+ n = self.fp.readinto(temp_mvb)
+ else:
+ n = self.fp.readinto(mvb)
+ if not n:
+ raise IncompleteRead(bytes(mvb[0:total_bytes]), len(b))
+ mvb = mvb[n:]
+ total_bytes += n
+ return total_bytes
def read1(self, n=-1):
"""Read with at most one underlying system call. If at least one
@@ -856,8 +856,8 @@ class HTTPConnection:
(self.host, self.port) = self._get_hostport(host, port)
- self._validate_host(self.host)
-
+ self._validate_host(self.host)
+
# This is stored as an instance variable to allow unit
# tests to replace it with a suitable mockup
self._create_connection = socket.create_connection
@@ -870,7 +870,7 @@ class HTTPConnection:
the endpoint passed to `set_tunnel`. This done by sending an HTTP
CONNECT request to the proxy server when the connection is established.
- This method must be called before the HTTP connection has been
+ This method must be called before the HTTP connection has been
established.
The headers argument should be a mapping of extra HTTP headers to send
@@ -910,24 +910,24 @@ class HTTPConnection:
self.debuglevel = level
def _tunnel(self):
- connect = b"CONNECT %s:%d HTTP/1.0\r\n" % (
- self._tunnel_host.encode("ascii"), self._tunnel_port)
- headers = [connect]
+ connect = b"CONNECT %s:%d HTTP/1.0\r\n" % (
+ self._tunnel_host.encode("ascii"), self._tunnel_port)
+ headers = [connect]
for header, value in self._tunnel_headers.items():
- headers.append(f"{header}: {value}\r\n".encode("latin-1"))
- headers.append(b"\r\n")
- # Making a single send() call instead of one per line encourages
- # the host OS to use a more optimal packet size instead of
- # potentially emitting a series of small packets.
- self.send(b"".join(headers))
- del headers
+ headers.append(f"{header}: {value}\r\n".encode("latin-1"))
+ headers.append(b"\r\n")
+ # Making a single send() call instead of one per line encourages
+ # the host OS to use a more optimal packet size instead of
+ # potentially emitting a series of small packets.
+ self.send(b"".join(headers))
+ del headers
response = self.response_class(self.sock, method=self._method)
(version, code, message) = response._read_status()
if code != http.HTTPStatus.OK:
self.close()
- raise OSError(f"Tunnel connection failed: {code} {message.strip()}")
+ raise OSError(f"Tunnel connection failed: {code} {message.strip()}")
while True:
line = response.fp.readline(_MAXLINE + 1)
if len(line) > _MAXLINE:
@@ -945,12 +945,12 @@ class HTTPConnection:
"""Connect to the host and port specified in __init__."""
self.sock = self._create_connection(
(self.host,self.port), self.timeout, self.source_address)
- # Might fail in OSs that don't implement TCP_NODELAY
- try:
- self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
- except OSError as e:
- if e.errno != errno.ENOPROTOOPT:
- raise
+ # Might fail in OSs that don't implement TCP_NODELAY
+ try:
+ self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+ except OSError as e:
+ if e.errno != errno.ENOPROTOOPT:
+ raise
if self._tunnel_host:
self._tunnel()
@@ -1121,17 +1121,17 @@ class HTTPConnection:
else:
raise CannotSendRequest(self.__state)
- self._validate_method(method)
-
- # Save the method for use later in the response phase
+ self._validate_method(method)
+
+ # Save the method for use later in the response phase
self._method = method
-
- url = url or '/'
- self._validate_path(url)
-
+
+ url = url or '/'
+ self._validate_path(url)
+
request = '%s %s %s' % (method, url, self._http_vsn_str)
- self._output(self._encode_request(request))
+ self._output(self._encode_request(request))
if self._http_vsn == 11:
# Issue some standard headers for better HTTP/1.1 compliance
@@ -1209,35 +1209,35 @@ class HTTPConnection:
# For HTTP/1.0, the server will assume "not chunked"
pass
- def _encode_request(self, request):
- # ASCII also helps prevent CVE-2019-9740.
- return request.encode('ascii')
-
- def _validate_method(self, method):
- """Validate a method name for putrequest."""
- # prevent http header injection
- match = _contains_disallowed_method_pchar_re.search(method)
- if match:
- raise ValueError(
- f"method can't contain control characters. {method!r} "
- f"(found at least {match.group()!r})")
-
- def _validate_path(self, url):
- """Validate a url for putrequest."""
- # Prevent CVE-2019-9740.
- match = _contains_disallowed_url_pchar_re.search(url)
- if match:
- raise InvalidURL(f"URL can't contain control characters. {url!r} "
- f"(found at least {match.group()!r})")
-
- def _validate_host(self, host):
- """Validate a host so it doesn't contain control characters."""
- # Prevent CVE-2019-18348.
- match = _contains_disallowed_url_pchar_re.search(host)
- if match:
- raise InvalidURL(f"URL can't contain control characters. {host!r} "
- f"(found at least {match.group()!r})")
-
+ def _encode_request(self, request):
+ # ASCII also helps prevent CVE-2019-9740.
+ return request.encode('ascii')
+
+ def _validate_method(self, method):
+ """Validate a method name for putrequest."""
+ # prevent http header injection
+ match = _contains_disallowed_method_pchar_re.search(method)
+ if match:
+ raise ValueError(
+ f"method can't contain control characters. {method!r} "
+ f"(found at least {match.group()!r})")
+
+ def _validate_path(self, url):
+ """Validate a url for putrequest."""
+ # Prevent CVE-2019-9740.
+ match = _contains_disallowed_url_pchar_re.search(url)
+ if match:
+ raise InvalidURL(f"URL can't contain control characters. {url!r} "
+ f"(found at least {match.group()!r})")
+
+ def _validate_host(self, host):
+ """Validate a host so it doesn't contain control characters."""
+ # Prevent CVE-2019-18348.
+ match = _contains_disallowed_url_pchar_re.search(host)
+ if match:
+ raise InvalidURL(f"URL can't contain control characters. {host!r} "
+ f"(found at least {match.group()!r})")
+
def putheader(self, header, *values):
"""Send a request header line to the server.
@@ -1422,9 +1422,9 @@ else:
self.cert_file = cert_file
if context is None:
context = ssl._create_default_https_context()
- # enable PHA for TLS 1.3 connections if available
- if context.post_handshake_auth is not None:
- context.post_handshake_auth = True
+ # enable PHA for TLS 1.3 connections if available
+ if context.post_handshake_auth is not None:
+ context.post_handshake_auth = True
will_verify = context.verify_mode != ssl.CERT_NONE
if check_hostname is None:
check_hostname = context.check_hostname
@@ -1433,10 +1433,10 @@ else:
"either CERT_OPTIONAL or CERT_REQUIRED")
if key_file or cert_file:
context.load_cert_chain(cert_file, key_file)
- # cert and key file means the user wants to authenticate.
- # enable TLS 1.3 PHA implicitly even for custom contexts.
- if context.post_handshake_auth is not None:
- context.post_handshake_auth = True
+ # cert and key file means the user wants to authenticate.
+ # enable TLS 1.3 PHA implicitly even for custom contexts.
+ if context.post_handshake_auth is not None:
+ context.post_handshake_auth = True
self._context = context
if check_hostname is not None:
self._context.check_hostname = check_hostname
@@ -1490,7 +1490,7 @@ class IncompleteRead(HTTPException):
e = ''
return '%s(%i bytes read%s)' % (self.__class__.__name__,
len(self.partial), e)
- __str__ = object.__str__
+ __str__ = object.__str__
class ImproperConnectionState(HTTPException):
pass
diff --git a/contrib/tools/python3/src/Lib/http/cookiejar.py b/contrib/tools/python3/src/Lib/http/cookiejar.py
index 27debead36..47ed5c3d64 100644
--- a/contrib/tools/python3/src/Lib/http/cookiejar.py
+++ b/contrib/tools/python3/src/Lib/http/cookiejar.py
@@ -28,7 +28,7 @@ http://wwwsearch.sf.net/):
__all__ = ['Cookie', 'CookieJar', 'CookiePolicy', 'DefaultCookiePolicy',
'FileCookieJar', 'LWPCookieJar', 'LoadError', 'MozillaCookieJar']
-import os
+import os
import copy
import datetime
import re
@@ -214,14 +214,14 @@ LOOSE_HTTP_DATE_RE = re.compile(
(?::(\d\d))? # optional seconds
)? # optional clock
\s*
- (?:
- ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+) # timezone
+ (?:
+ ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+) # timezone
+ \s*
+ )?
+ (?:
+ \(\w+\) # ASCII representation of timezone in parens.
\s*
- )?
- (?:
- \(\w+\) # ASCII representation of timezone in parens.
- \s*
- )?$""", re.X | re.ASCII)
+ )?$""", re.X | re.ASCII)
def http2time(text):
"""Returns time in seconds since epoch of time represented by a string.
@@ -291,11 +291,11 @@ ISO_DATE_RE = re.compile(
(?::?(\d\d(?:\.\d*)?))? # optional seconds (and fractional)
)? # optional clock
\s*
- (?:
- ([-+]?\d\d?:?(:?\d\d)?
- |Z|z) # timezone (Z is "zero meridian", i.e. GMT)
- \s*
- )?$""", re.X | re. ASCII)
+ (?:
+ ([-+]?\d\d?:?(:?\d\d)?
+ |Z|z) # timezone (Z is "zero meridian", i.e. GMT)
+ \s*
+ )?$""", re.X | re. ASCII)
def iso2time(text):
"""
As for http2time, but parses the ISO 8601 formats:
@@ -885,7 +885,7 @@ class DefaultCookiePolicy(CookiePolicy):
strict_ns_domain=DomainLiberal,
strict_ns_set_initial_dollar=False,
strict_ns_set_path=False,
- secure_protocols=("https", "wss")
+ secure_protocols=("https", "wss")
):
"""Constructor arguments should be passed as keyword arguments only."""
self.netscape = netscape
@@ -898,7 +898,7 @@ class DefaultCookiePolicy(CookiePolicy):
self.strict_ns_domain = strict_ns_domain
self.strict_ns_set_initial_dollar = strict_ns_set_initial_dollar
self.strict_ns_set_path = strict_ns_set_path
- self.secure_protocols = secure_protocols
+ self.secure_protocols = secure_protocols
if blocked_domains is not None:
self._blocked_domains = tuple(blocked_domains)
@@ -1125,7 +1125,7 @@ class DefaultCookiePolicy(CookiePolicy):
return True
def return_ok_secure(self, cookie, request):
- if cookie.secure and request.type not in self.secure_protocols:
+ if cookie.secure and request.type not in self.secure_protocols:
_debug(" secure cookie with non-secure request")
return False
return True
@@ -1599,7 +1599,7 @@ class CookieJar:
headers = response.info()
rfc2965_hdrs = headers.get_all("Set-Cookie2", [])
ns_hdrs = headers.get_all("Set-Cookie", [])
- self._policy._now = self._now = int(time.time())
+ self._policy._now = self._now = int(time.time())
rfc2965 = self._policy.rfc2965
netscape = self._policy.netscape
@@ -1781,7 +1781,7 @@ class FileCookieJar(CookieJar):
"""
CookieJar.__init__(self, policy)
if filename is not None:
- filename = os.fspath(filename)
+ filename = os.fspath(filename)
self.filename = filename
self.delayload = bool(delayload)
diff --git a/contrib/tools/python3/src/Lib/http/cookies.py b/contrib/tools/python3/src/Lib/http/cookies.py
index efdd950d07..35ac2dc6ae 100644
--- a/contrib/tools/python3/src/Lib/http/cookies.py
+++ b/contrib/tools/python3/src/Lib/http/cookies.py
@@ -131,7 +131,7 @@ Finis.
#
import re
import string
-import types
+import types
__all__ = ["CookieError", "BaseCookie", "SimpleCookie"]
@@ -257,7 +257,7 @@ class Morsel(dict):
In a cookie, each such pair may have several attributes, so this class is
used to keep the attributes associated with the appropriate key,value pair.
This class also includes a coded_value attribute, which is used to hold
- the network representation of the value.
+ the network representation of the value.
"""
# RFC 2109 lists these attributes as reserved:
# path comment domain
@@ -281,7 +281,7 @@ class Morsel(dict):
"secure" : "Secure",
"httponly" : "HttpOnly",
"version" : "Version",
- "samesite" : "SameSite",
+ "samesite" : "SameSite",
}
_flags = {'secure', 'httponly'}
@@ -420,9 +420,9 @@ class Morsel(dict):
# Return the result
return _semispacejoin(result)
- __class_getitem__ = classmethod(types.GenericAlias)
+ __class_getitem__ = classmethod(types.GenericAlias)
+
-
#
# Pattern for finding cookie
#
diff --git a/contrib/tools/python3/src/Lib/http/server.py b/contrib/tools/python3/src/Lib/http/server.py
index ca40a0f1f1..d7cce20432 100644
--- a/contrib/tools/python3/src/Lib/http/server.py
+++ b/contrib/tools/python3/src/Lib/http/server.py
@@ -103,7 +103,7 @@ import socketserver
import sys
import time
import urllib.parse
-import contextlib
+import contextlib
from functools import partial
from http import HTTPStatus
@@ -639,17 +639,17 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
"""
server_version = "SimpleHTTP/" + __version__
- extensions_map = _encodings_map_default = {
- '.gz': 'application/gzip',
- '.Z': 'application/octet-stream',
- '.bz2': 'application/x-bzip2',
- '.xz': 'application/x-xz',
- }
+ extensions_map = _encodings_map_default = {
+ '.gz': 'application/gzip',
+ '.Z': 'application/octet-stream',
+ '.bz2': 'application/x-bzip2',
+ '.xz': 'application/x-xz',
+ }
def __init__(self, *args, directory=None, **kwargs):
if directory is None:
directory = os.getcwd()
- self.directory = os.fspath(directory)
+ self.directory = os.fspath(directory)
super().__init__(*args, **kwargs)
def do_GET(self):
@@ -689,7 +689,7 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
parts[3], parts[4])
new_url = urllib.parse.urlunsplit(new_parts)
self.send_header("Location", new_url)
- self.send_header("Content-Length", "0")
+ self.send_header("Content-Length", "0")
self.end_headers()
return None
for index in "index.html", "index.htm":
@@ -700,14 +700,14 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
else:
return self.list_directory(path)
ctype = self.guess_type(path)
- # check for trailing "/" which should return 404. See Issue17324
- # The test for this was added in test_httpserver.py
- # However, some OS platforms accept a trailingSlash as a filename
- # See discussion on python-dev and Issue34711 regarding
- # parseing and rejection of filenames with a trailing slash
- if path.endswith("/"):
- self.send_error(HTTPStatus.NOT_FOUND, "File not found")
- return None
+ # check for trailing "/" which should return 404. See Issue17324
+ # The test for this was added in test_httpserver.py
+ # However, some OS platforms accept a trailingSlash as a filename
+ # See discussion on python-dev and Issue34711 regarding
+ # parseing and rejection of filenames with a trailing slash
+ if path.endswith("/"):
+ self.send_error(HTTPStatus.NOT_FOUND, "File not found")
+ return None
try:
f = open(path, 'rb')
except OSError:
@@ -879,10 +879,10 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
ext = ext.lower()
if ext in self.extensions_map:
return self.extensions_map[ext]
- guess, _ = mimetypes.guess_type(path)
- if guess:
- return guess
- return 'application/octet-stream'
+ guess, _ = mimetypes.guess_type(path)
+ if guess:
+ return guess
+ return 'application/octet-stream'
# Utilities for CGIHTTPRequestHandler
@@ -1013,10 +1013,10 @@ class CGIHTTPRequestHandler(SimpleHTTPRequestHandler):
"""
collapsed_path = _url_collapse_path(self.path)
dir_sep = collapsed_path.find('/', 1)
- while dir_sep > 0 and not collapsed_path[:dir_sep] in self.cgi_directories:
- dir_sep = collapsed_path.find('/', dir_sep+1)
- if dir_sep > 0:
- head, tail = collapsed_path[:dir_sep], collapsed_path[dir_sep+1:]
+ while dir_sep > 0 and not collapsed_path[:dir_sep] in self.cgi_directories:
+ dir_sep = collapsed_path.find('/', dir_sep+1)
+ if dir_sep > 0:
+ head, tail = collapsed_path[:dir_sep], collapsed_path[dir_sep+1:]
self.cgi_info = head, tail
return True
return False
@@ -1124,7 +1124,7 @@ class CGIHTTPRequestHandler(SimpleHTTPRequestHandler):
referer = self.headers.get('referer')
if referer:
env['HTTP_REFERER'] = referer
- accept = self.headers.get_all('accept', ())
+ accept = self.headers.get_all('accept', ())
env['HTTP_ACCEPT'] = ','.join(accept)
ua = self.headers.get('user-agent')
if ua:
@@ -1160,9 +1160,9 @@ class CGIHTTPRequestHandler(SimpleHTTPRequestHandler):
while select.select([self.rfile], [], [], 0)[0]:
if not self.rfile.read(1):
break
- exitcode = os.waitstatus_to_exitcode(sts)
- if exitcode:
- self.log_error(f"CGI script exit code {exitcode}")
+ exitcode = os.waitstatus_to_exitcode(sts)
+ if exitcode:
+ self.log_error(f"CGI script exit code {exitcode}")
return
# Child
try:
@@ -1221,34 +1221,34 @@ class CGIHTTPRequestHandler(SimpleHTTPRequestHandler):
self.log_message("CGI script exited OK")
-def _get_best_family(*address):
- infos = socket.getaddrinfo(
- *address,
- type=socket.SOCK_STREAM,
- flags=socket.AI_PASSIVE,
- )
- family, type, proto, canonname, sockaddr = next(iter(infos))
- return family, sockaddr
-
-
+def _get_best_family(*address):
+ infos = socket.getaddrinfo(
+ *address,
+ type=socket.SOCK_STREAM,
+ flags=socket.AI_PASSIVE,
+ )
+ family, type, proto, canonname, sockaddr = next(iter(infos))
+ return family, sockaddr
+
+
def test(HandlerClass=BaseHTTPRequestHandler,
ServerClass=ThreadingHTTPServer,
- protocol="HTTP/1.0", port=8000, bind=None):
+ protocol="HTTP/1.0", port=8000, bind=None):
"""Test the HTTP request handler class.
This runs an HTTP server on port 8000 (or the port argument).
"""
- ServerClass.address_family, addr = _get_best_family(bind, port)
+ ServerClass.address_family, addr = _get_best_family(bind, port)
HandlerClass.protocol_version = protocol
- with ServerClass(addr, HandlerClass) as httpd:
- host, port = httpd.socket.getsockname()[:2]
- url_host = f'[{host}]' if ':' in host else host
- print(
- f"Serving HTTP on {host} port {port} "
- f"(http://{url_host}:{port}/) ..."
- )
+ with ServerClass(addr, HandlerClass) as httpd:
+ host, port = httpd.socket.getsockname()[:2]
+ url_host = f'[{host}]' if ':' in host else host
+ print(
+ f"Serving HTTP on {host} port {port} "
+ f"(http://{url_host}:{port}/) ..."
+ )
try:
httpd.serve_forever()
except KeyboardInterrupt:
@@ -1261,7 +1261,7 @@ if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--cgi', action='store_true',
help='Run as CGI Server')
- parser.add_argument('--bind', '-b', metavar='ADDRESS',
+ parser.add_argument('--bind', '-b', metavar='ADDRESS',
help='Specify alternate bind address '
'[default: all interfaces]')
parser.add_argument('--directory', '-d', default=os.getcwd(),
@@ -1277,19 +1277,19 @@ if __name__ == '__main__':
else:
handler_class = partial(SimpleHTTPRequestHandler,
directory=args.directory)
-
- # ensure dual-stack is not disabled; ref #38907
- class DualStackServer(ThreadingHTTPServer):
- def server_bind(self):
- # suppress exception when protocol is IPv4
- with contextlib.suppress(Exception):
- self.socket.setsockopt(
- socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
- return super().server_bind()
-
- test(
- HandlerClass=handler_class,
- ServerClass=DualStackServer,
- port=args.port,
- bind=args.bind,
- )
+
+ # ensure dual-stack is not disabled; ref #38907
+ class DualStackServer(ThreadingHTTPServer):
+ def server_bind(self):
+ # suppress exception when protocol is IPv4
+ with contextlib.suppress(Exception):
+ self.socket.setsockopt(
+ socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
+ return super().server_bind()
+
+ test(
+ HandlerClass=handler_class,
+ ServerClass=DualStackServer,
+ port=args.port,
+ bind=args.bind,
+ )
diff --git a/contrib/tools/python3/src/Lib/imaplib.py b/contrib/tools/python3/src/Lib/imaplib.py
index cac9a39c5a..d9720f20c3 100644
--- a/contrib/tools/python3/src/Lib/imaplib.py
+++ b/contrib/tools/python3/src/Lib/imaplib.py
@@ -98,7 +98,7 @@ Commands = {
'THREAD': ('SELECTED',),
'UID': ('SELECTED',),
'UNSUBSCRIBE': ('AUTH', 'SELECTED'),
- 'UNSELECT': ('SELECTED',),
+ 'UNSELECT': ('SELECTED',),
}
# Patterns to match server responses
@@ -136,13 +136,13 @@ class IMAP4:
r"""IMAP4 client class.
- Instantiate with: IMAP4([host[, port[, timeout=None]]])
+ Instantiate with: IMAP4([host[, port[, timeout=None]]])
host - host's name (default: localhost);
port - port number (default: standard IMAP4 port).
- timeout - socket timeout (default: None)
- If timeout is not given or is None,
- the global default socket timeout is used
+ timeout - socket timeout (default: None)
+ If timeout is not given or is None,
+ the global default socket timeout is used
All IMAP4rev1 commands are supported by methods of the same
name (in lower-case).
@@ -185,7 +185,7 @@ class IMAP4:
class abort(error): pass # Service errors - close and retry
class readonly(abort): pass # Mailbox status changed to READ-ONLY
- def __init__(self, host='', port=IMAP4_PORT, timeout=None):
+ def __init__(self, host='', port=IMAP4_PORT, timeout=None):
self.debug = Debug
self.state = 'LOGOUT'
self.literal = None # A literal argument to a command
@@ -199,7 +199,7 @@ class IMAP4:
# Open socket to server.
- self.open(host, port, timeout)
+ self.open(host, port, timeout)
try:
self._connect()
@@ -276,9 +276,9 @@ class IMAP4:
return self
def __exit__(self, *args):
- if self.state == "LOGOUT":
- return
-
+ if self.state == "LOGOUT":
+ return
+
try:
self.logout()
except OSError:
@@ -288,20 +288,20 @@ class IMAP4:
# Overridable methods
- def _create_socket(self, timeout):
+ def _create_socket(self, timeout):
# Default value of IMAP4.host is '', but socket.getaddrinfo()
# (which is used by socket.create_connection()) expects None
# as a default value for host.
- if timeout is not None and not timeout:
- raise ValueError('Non-blocking socket (timeout=0) is not supported')
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
host = None if not self.host else self.host
- sys.audit("imaplib.open", self, self.host, self.port)
- address = (host, self.port)
- if timeout is not None:
- return socket.create_connection(address, timeout)
- return socket.create_connection(address)
+ sys.audit("imaplib.open", self, self.host, self.port)
+ address = (host, self.port)
+ if timeout is not None:
+ return socket.create_connection(address, timeout)
+ return socket.create_connection(address)
- def open(self, host='', port=IMAP4_PORT, timeout=None):
+ def open(self, host='', port=IMAP4_PORT, timeout=None):
"""Setup connection to remote server on "host:port"
(default: localhost:standard IMAP4 port).
This connection will be used by the routines:
@@ -309,7 +309,7 @@ class IMAP4:
"""
self.host = host
self.port = port
- self.sock = self._create_socket(timeout)
+ self.sock = self._create_socket(timeout)
self.file = self.sock.makefile('rb')
@@ -328,7 +328,7 @@ class IMAP4:
def send(self, data):
"""Send data to remote."""
- sys.audit("imaplib.send", self, data)
+ sys.audit("imaplib.send", self, data)
self.sock.sendall(data)
@@ -511,7 +511,7 @@ class IMAP4:
def enable(self, capability):
"""Send an RFC5161 enable string to the server.
- (typ, [data]) = <instance>.enable(capability)
+ (typ, [data]) = <instance>.enable(capability)
"""
if 'ENABLE' not in self.capabilities:
raise IMAP4.error("Server does not support ENABLE")
@@ -639,7 +639,7 @@ class IMAP4:
Returns server 'BYE' response.
"""
self.state = 'LOGOUT'
- typ, dat = self._simple_command('LOGOUT')
+ typ, dat = self._simple_command('LOGOUT')
self.shutdown()
return typ, dat
@@ -903,22 +903,22 @@ class IMAP4:
return self._simple_command('UNSUBSCRIBE', mailbox)
- def unselect(self):
- """Free server's resources associated with the selected mailbox
- and returns the server to the authenticated state.
- This command performs the same actions as CLOSE, except
- that no messages are permanently removed from the currently
- selected mailbox.
-
- (typ, [data]) = <instance>.unselect()
- """
- try:
- typ, data = self._simple_command('UNSELECT')
- finally:
- self.state = 'AUTH'
- return typ, data
-
-
+ def unselect(self):
+ """Free server's resources associated with the selected mailbox
+ and returns the server to the authenticated state.
+ This command performs the same actions as CLOSE, except
+ that no messages are permanently removed from the currently
+ selected mailbox.
+
+ (typ, [data]) = <instance>.unselect()
+ """
+ try:
+ typ, data = self._simple_command('UNSELECT')
+ finally:
+ self.state = 'AUTH'
+ return typ, data
+
+
def xatom(self, name, *args):
"""Allow simple extension commands
notified by server in CAPABILITY response.
@@ -1039,17 +1039,17 @@ class IMAP4:
def _command_complete(self, name, tag):
- logout = (name == 'LOGOUT')
+ logout = (name == 'LOGOUT')
# BYE is expected after LOGOUT
- if not logout:
+ if not logout:
self._check_bye()
try:
- typ, data = self._get_tagged_response(tag, expect_bye=logout)
+ typ, data = self._get_tagged_response(tag, expect_bye=logout)
except self.abort as val:
raise self.abort('command: %s => %s' % (name, val))
except self.error as val:
raise self.error('command: %s => %s' % (name, val))
- if not logout:
+ if not logout:
self._check_bye()
if typ == 'BAD':
raise self.error('%s command error: %s %s' % (name, typ, data))
@@ -1145,7 +1145,7 @@ class IMAP4:
return resp
- def _get_tagged_response(self, tag, expect_bye=False):
+ def _get_tagged_response(self, tag, expect_bye=False):
while 1:
result = self.tagged_commands[tag]
@@ -1153,13 +1153,13 @@ class IMAP4:
del self.tagged_commands[tag]
return result
- if expect_bye:
- typ = 'BYE'
- bye = self.untagged_responses.pop(typ, None)
- if bye is not None:
- # Server replies to the "LOGOUT" command with "BYE"
- return (typ, bye)
-
+ if expect_bye:
+ typ = 'BYE'
+ bye = self.untagged_responses.pop(typ, None)
+ if bye is not None:
+ # Server replies to the "LOGOUT" command with "BYE"
+ return (typ, bye)
+
# If we've seen a BYE at this point, the socket will be
# closed, so report the BYE now.
self._check_bye()
@@ -1286,7 +1286,7 @@ if HAVE_SSL:
"""IMAP4 client class over SSL connection
- Instantiate with: IMAP4_SSL([host[, port[, keyfile[, certfile[, ssl_context[, timeout=None]]]]]])
+ Instantiate with: IMAP4_SSL([host[, port[, keyfile[, certfile[, ssl_context[, timeout=None]]]]]])
host - host's name (default: localhost);
port - port number (default: standard IMAP4 SSL port);
@@ -1296,15 +1296,15 @@ if HAVE_SSL:
and private key (default: None)
Note: if ssl_context is provided, then parameters keyfile or
certfile should not be set otherwise ValueError is raised.
- timeout - socket timeout (default: None) If timeout is not given or is None,
- the global default socket timeout is used
+ timeout - socket timeout (default: None) If timeout is not given or is None,
+ the global default socket timeout is used
for more documentation see the docstring of the parent class IMAP4.
"""
def __init__(self, host='', port=IMAP4_SSL_PORT, keyfile=None,
- certfile=None, ssl_context=None, timeout=None):
+ certfile=None, ssl_context=None, timeout=None):
if ssl_context is not None and keyfile is not None:
raise ValueError("ssl_context and keyfile arguments are mutually "
"exclusive")
@@ -1321,20 +1321,20 @@ if HAVE_SSL:
ssl_context = ssl._create_stdlib_context(certfile=certfile,
keyfile=keyfile)
self.ssl_context = ssl_context
- IMAP4.__init__(self, host, port, timeout)
+ IMAP4.__init__(self, host, port, timeout)
- def _create_socket(self, timeout):
- sock = IMAP4._create_socket(self, timeout)
+ def _create_socket(self, timeout):
+ sock = IMAP4._create_socket(self, timeout)
return self.ssl_context.wrap_socket(sock,
server_hostname=self.host)
- def open(self, host='', port=IMAP4_SSL_PORT, timeout=None):
+ def open(self, host='', port=IMAP4_SSL_PORT, timeout=None):
"""Setup connection to remote server on "host:port".
(default: localhost:standard IMAP4 SSL port).
This connection will be used by the routines:
read, readline, send, shutdown.
"""
- IMAP4.open(self, host, port, timeout)
+ IMAP4.open(self, host, port, timeout)
__all__.append("IMAP4_SSL")
@@ -1356,7 +1356,7 @@ class IMAP4_stream(IMAP4):
IMAP4.__init__(self)
- def open(self, host=None, port=None, timeout=None):
+ def open(self, host=None, port=None, timeout=None):
"""Setup a stream connection.
This connection will be used by the routines:
read, readline, send, shutdown.
diff --git a/contrib/tools/python3/src/Lib/imghdr.py b/contrib/tools/python3/src/Lib/imghdr.py
index 450a8c4a74..6e01fd8574 100644
--- a/contrib/tools/python3/src/Lib/imghdr.py
+++ b/contrib/tools/python3/src/Lib/imghdr.py
@@ -152,7 +152,7 @@ def testall(list, recursive, toplevel):
if recursive or toplevel:
print('recursing down:')
import glob
- names = glob.glob(os.path.join(glob.escape(filename), '*'))
+ names = glob.glob(os.path.join(glob.escape(filename), '*'))
testall(names, recursive, 0)
else:
print('*** directory (use -r) ***')
diff --git a/contrib/tools/python3/src/Lib/importlib/__init__.py b/contrib/tools/python3/src/Lib/importlib/__init__.py
index feaba8010d..0c73c505f9 100644
--- a/contrib/tools/python3/src/Lib/importlib/__init__.py
+++ b/contrib/tools/python3/src/Lib/importlib/__init__.py
@@ -48,8 +48,8 @@ else:
sys.modules['importlib._bootstrap_external'] = _bootstrap_external
# To simplify imports in test code
-_pack_uint32 = _bootstrap_external._pack_uint32
-_unpack_uint32 = _bootstrap_external._unpack_uint32
+_pack_uint32 = _bootstrap_external._pack_uint32
+_unpack_uint32 = _bootstrap_external._unpack_uint32
# Fully bootstrapped at this point, import whatever you like, circular
# dependencies and startup overhead minimisation permitting :)
diff --git a/contrib/tools/python3/src/Lib/importlib/_bootstrap.py b/contrib/tools/python3/src/Lib/importlib/_bootstrap.py
index 4a2553175c..e00b27ece2 100644
--- a/contrib/tools/python3/src/Lib/importlib/_bootstrap.py
+++ b/contrib/tools/python3/src/Lib/importlib/_bootstrap.py
@@ -7,9 +7,9 @@ work. One should use importlib as the public-facing version of this module.
"""
#
-# IMPORTANT: Whenever making changes to this module, be sure to run a top-level
-# `make regen-importlib` followed by `make` in order to get the frozen version
-# of the module updated. Not doing so will result in the Makefile to fail for
+# IMPORTANT: Whenever making changes to this module, be sure to run a top-level
+# `make regen-importlib` followed by `make` in order to get the frozen version
+# of the module updated. Not doing so will result in the Makefile to fail for
# all others who don't have a ./python around to freeze the module
# in the early stages of compilation.
#
@@ -67,7 +67,7 @@ class _ModuleLock:
# Deadlock avoidance for concurrent circular imports.
me = _thread.get_ident()
tid = self.owner
- seen = set()
+ seen = set()
while True:
lock = _blocking_on.get(tid)
if lock is None:
@@ -75,14 +75,14 @@ class _ModuleLock:
tid = lock.owner
if tid == me:
return True
- if tid in seen:
- # bpo 38091: the chain of tid's we encounter here
- # eventually leads to a fixpoint or a cycle, but
- # does not reach 'me'. This means we would not
- # actually deadlock. This can happen if other
- # threads are at the beginning of acquire() below.
- return False
- seen.add(tid)
+ if tid in seen:
+ # bpo 38091: the chain of tid's we encounter here
+ # eventually leads to a fixpoint or a cycle, but
+ # does not reach 'me'. This means we would not
+ # actually deadlock. This can happen if other
+ # threads are at the beginning of acquire() below.
+ return False
+ seen.add(tid)
def acquire(self):
"""
@@ -380,7 +380,7 @@ class ModuleSpec:
self.cached == other.cached and
self.has_location == other.has_location)
except AttributeError:
- return NotImplemented
+ return NotImplemented
@property
def cached(self):
@@ -596,44 +596,44 @@ def _exec(spec, module):
if sys.modules.get(name) is not module:
msg = 'module {!r} not in sys.modules'.format(name)
raise ImportError(msg, name=name)
- try:
- if spec.loader is None:
- if spec.submodule_search_locations is None:
- raise ImportError('missing loader', name=spec.name)
- # Namespace package.
- _init_module_attrs(spec, module, override=True)
- else:
- _init_module_attrs(spec, module, override=True)
- if not hasattr(spec.loader, 'exec_module'):
- # (issue19713) Once BuiltinImporter and ExtensionFileLoader
- # have exec_module() implemented, we can add a deprecation
- # warning here.
- spec.loader.load_module(name)
- else:
- spec.loader.exec_module(module)
- finally:
- # Update the order of insertion into sys.modules for module
- # clean-up at shutdown.
- module = sys.modules.pop(spec.name)
- sys.modules[spec.name] = module
- return module
+ try:
+ if spec.loader is None:
+ if spec.submodule_search_locations is None:
+ raise ImportError('missing loader', name=spec.name)
+ # Namespace package.
+ _init_module_attrs(spec, module, override=True)
+ else:
+ _init_module_attrs(spec, module, override=True)
+ if not hasattr(spec.loader, 'exec_module'):
+ # (issue19713) Once BuiltinImporter and ExtensionFileLoader
+ # have exec_module() implemented, we can add a deprecation
+ # warning here.
+ spec.loader.load_module(name)
+ else:
+ spec.loader.exec_module(module)
+ finally:
+ # Update the order of insertion into sys.modules for module
+ # clean-up at shutdown.
+ module = sys.modules.pop(spec.name)
+ sys.modules[spec.name] = module
+ return module
def _load_backward_compatible(spec):
# (issue19713) Once BuiltinImporter and ExtensionFileLoader
# have exec_module() implemented, we can add a deprecation
# warning here.
- try:
- spec.loader.load_module(spec.name)
- except:
- if spec.name in sys.modules:
- module = sys.modules.pop(spec.name)
- sys.modules[spec.name] = module
- raise
+ try:
+ spec.loader.load_module(spec.name)
+ except:
+ if spec.name in sys.modules:
+ module = sys.modules.pop(spec.name)
+ sys.modules[spec.name] = module
+ raise
# The module must be in sys.modules at this point!
- # Move it to the end of sys.modules.
- module = sys.modules.pop(spec.name)
- sys.modules[spec.name] = module
+ # Move it to the end of sys.modules.
+ module = sys.modules.pop(spec.name)
+ sys.modules[spec.name] = module
if getattr(module, '__loader__', None) is None:
try:
module.__loader__ = spec.loader
@@ -659,43 +659,43 @@ def _load_backward_compatible(spec):
def _load_unlocked(spec):
# A helper for direct use by the import system.
if spec.loader is not None:
- # Not a namespace package.
+ # Not a namespace package.
if not hasattr(spec.loader, 'exec_module'):
return _load_backward_compatible(spec)
module = module_from_spec(spec)
- # This must be done before putting the module in sys.modules
- # (otherwise an optimization shortcut in import.c becomes
- # wrong).
- spec._initializing = True
- try:
- sys.modules[spec.name] = module
- try:
- if spec.loader is None:
- if spec.submodule_search_locations is None:
- raise ImportError('missing loader', name=spec.name)
- # A namespace package so do nothing.
- else:
- spec.loader.exec_module(module)
- except:
- try:
- del sys.modules[spec.name]
- except KeyError:
- pass
- raise
- # Move the module to the end of sys.modules.
- # We don't ensure that the import-related module attributes get
- # set in the sys.modules replacement case. Such modules are on
- # their own.
- module = sys.modules.pop(spec.name)
- sys.modules[spec.name] = module
- _verbose_message('import {!r} # {!r}', spec.name, spec.loader)
- finally:
- spec._initializing = False
-
- return module
-
+ # This must be done before putting the module in sys.modules
+ # (otherwise an optimization shortcut in import.c becomes
+ # wrong).
+ spec._initializing = True
+ try:
+ sys.modules[spec.name] = module
+ try:
+ if spec.loader is None:
+ if spec.submodule_search_locations is None:
+ raise ImportError('missing loader', name=spec.name)
+ # A namespace package so do nothing.
+ else:
+ spec.loader.exec_module(module)
+ except:
+ try:
+ del sys.modules[spec.name]
+ except KeyError:
+ pass
+ raise
+ # Move the module to the end of sys.modules.
+ # We don't ensure that the import-related module attributes get
+ # set in the sys.modules replacement case. Such modules are on
+ # their own.
+ module = sys.modules.pop(spec.name)
+ sys.modules[spec.name] = module
+ _verbose_message('import {!r} # {!r}', spec.name, spec.loader)
+ finally:
+ spec._initializing = False
+
+ return module
+
# A method used during testing of _load_unlocked() and by
# _load_module_shim().
def _load(spec):
@@ -722,8 +722,8 @@ class BuiltinImporter:
"""
- _ORIGIN = "built-in"
-
+ _ORIGIN = "built-in"
+
@staticmethod
def module_repr(module):
"""Return repr for the module.
@@ -731,14 +731,14 @@ class BuiltinImporter:
The method is deprecated. The import machinery does the job itself.
"""
- return f'<module {module.__name__!r} ({BuiltinImporter._ORIGIN})>'
+ return f'<module {module.__name__!r} ({BuiltinImporter._ORIGIN})>'
@classmethod
def find_spec(cls, fullname, path=None, target=None):
if path is not None:
return None
if _imp.is_builtin(fullname):
- return spec_from_loader(fullname, cls, origin=cls._ORIGIN)
+ return spec_from_loader(fullname, cls, origin=cls._ORIGIN)
else:
return None
@@ -797,8 +797,8 @@ class FrozenImporter:
"""
- _ORIGIN = "frozen"
-
+ _ORIGIN = "frozen"
+
@staticmethod
def module_repr(m):
"""Return repr for the module.
@@ -806,12 +806,12 @@ class FrozenImporter:
The method is deprecated. The import machinery does the job itself.
"""
- return '<module {!r} ({})>'.format(m.__name__, FrozenImporter._ORIGIN)
+ return '<module {!r} ({})>'.format(m.__name__, FrozenImporter._ORIGIN)
@classmethod
def find_spec(cls, fullname, path=None, target=None):
if _imp.is_frozen(fullname):
- return spec_from_loader(fullname, cls, origin=cls._ORIGIN)
+ return spec_from_loader(fullname, cls, origin=cls._ORIGIN)
else:
return None
@@ -884,7 +884,7 @@ def _resolve_name(name, package, level):
"""Resolve a relative module name to an absolute one."""
bits = package.rsplit('.', level - 1)
if len(bits) < level:
- raise ImportError('attempted relative import beyond top-level package')
+ raise ImportError('attempted relative import beyond top-level package')
base = bits[0]
return '{}.{}'.format(base, name) if name else base
@@ -987,12 +987,12 @@ def _find_and_load_unlocked(name, import_):
if parent:
# Set the module as an attribute on its parent.
parent_module = sys.modules[parent]
- child = name.rpartition('.')[2]
- try:
- setattr(parent_module, child, module)
- except AttributeError:
- msg = f"Cannot set an attribute on {parent!r} for child module {child!r}"
- _warnings.warn(msg, ImportWarning)
+ child = name.rpartition('.')[2]
+ try:
+ setattr(parent_module, child, module)
+ except AttributeError:
+ msg = f"Cannot set an attribute on {parent!r} for child module {child!r}"
+ _warnings.warn(msg, ImportWarning)
return module
@@ -1040,30 +1040,30 @@ def _handle_fromlist(module, fromlist, import_, *, recursive=False):
"""
# The hell that is fromlist ...
# If a package was imported, try to import stuff from fromlist.
- for x in fromlist:
- if not isinstance(x, str):
- if recursive:
- where = module.__name__ + '.__all__'
- else:
- where = "``from list''"
- raise TypeError(f"Item in {where} must be str, "
- f"not {type(x).__name__}")
- elif x == '*':
- if not recursive and hasattr(module, '__all__'):
- _handle_fromlist(module, module.__all__, import_,
- recursive=True)
- elif not hasattr(module, x):
- from_name = '{}.{}'.format(module.__name__, x)
- try:
- _call_with_frames_removed(import_, from_name)
- except ModuleNotFoundError as exc:
- # Backwards-compatibility dictates we ignore failed
- # imports triggered by fromlist for modules that don't
- # exist.
- if (exc.name == from_name and
- sys.modules.get(from_name, _NEEDS_LOADING) is not None):
- continue
- raise
+ for x in fromlist:
+ if not isinstance(x, str):
+ if recursive:
+ where = module.__name__ + '.__all__'
+ else:
+ where = "``from list''"
+ raise TypeError(f"Item in {where} must be str, "
+ f"not {type(x).__name__}")
+ elif x == '*':
+ if not recursive and hasattr(module, '__all__'):
+ _handle_fromlist(module, module.__all__, import_,
+ recursive=True)
+ elif not hasattr(module, x):
+ from_name = '{}.{}'.format(module.__name__, x)
+ try:
+ _call_with_frames_removed(import_, from_name)
+ except ModuleNotFoundError as exc:
+ # Backwards-compatibility dictates we ignore failed
+ # imports triggered by fromlist for modules that don't
+ # exist.
+ if (exc.name == from_name and
+ sys.modules.get(from_name, _NEEDS_LOADING) is not None):
+ continue
+ raise
return module
@@ -1125,10 +1125,10 @@ def __import__(name, globals=None, locals=None, fromlist=(), level=0):
# Slice end needs to be positive to alleviate need to special-case
# when ``'.' not in name``.
return sys.modules[module.__name__[:len(module.__name__)-cut_off]]
- elif hasattr(module, '__path__'):
- return _handle_fromlist(module, fromlist, _gcd_import)
+ elif hasattr(module, '__path__'):
+ return _handle_fromlist(module, fromlist, _gcd_import)
else:
- return module
+ return module
def _builtin_from_name(name):
diff --git a/contrib/tools/python3/src/Lib/importlib/_bootstrap_external.py b/contrib/tools/python3/src/Lib/importlib/_bootstrap_external.py
index 0a28784837..fe31f437da 100644
--- a/contrib/tools/python3/src/Lib/importlib/_bootstrap_external.py
+++ b/contrib/tools/python3/src/Lib/importlib/_bootstrap_external.py
@@ -19,34 +19,34 @@ work. One should use importlib as the public-facing version of this module.
# reference any injected objects! This includes not only global code but also
# anything specified at the class level.
-# Import builtin modules
-import _imp
-import _io
-import sys
-import _warnings
-import marshal
-
-
-_MS_WINDOWS = (sys.platform == 'win32')
-if _MS_WINDOWS:
- import nt as _os
- import winreg
-else:
- import posix as _os
-
-
-if _MS_WINDOWS:
- path_separators = ['\\', '/']
-else:
- path_separators = ['/']
-# Assumption made in _path_join()
-assert all(len(sep) == 1 for sep in path_separators)
-path_sep = path_separators[0]
-path_sep_tuple = tuple(path_separators)
-path_separators = ''.join(path_separators)
-_pathseps_with_colon = {f':{s}' for s in path_separators}
-
-
+# Import builtin modules
+import _imp
+import _io
+import sys
+import _warnings
+import marshal
+
+
+_MS_WINDOWS = (sys.platform == 'win32')
+if _MS_WINDOWS:
+ import nt as _os
+ import winreg
+else:
+ import posix as _os
+
+
+if _MS_WINDOWS:
+ path_separators = ['\\', '/']
+else:
+ path_separators = ['/']
+# Assumption made in _path_join()
+assert all(len(sep) == 1 for sep in path_separators)
+path_sep = path_separators[0]
+path_sep_tuple = tuple(path_separators)
+path_separators = ''.join(path_separators)
+_pathseps_with_colon = {f':{s}' for s in path_separators}
+
+
# Bootstrap-related code ######################################################
_CASE_INSENSITIVE_PLATFORMS_STR_KEY = 'win',
_CASE_INSENSITIVE_PLATFORMS_BYTES_KEY = 'cygwin', 'darwin'
@@ -62,8 +62,8 @@ def _make_relax_case():
key = b'PYTHONCASEOK'
def _relax_case():
- """True if filenames must be checked case-insensitively and ignore environment flags are not set."""
- return not sys.flags.ignore_environment and key in _os.environ
+ """True if filenames must be checked case-insensitively and ignore environment flags are not set."""
+ return not sys.flags.ignore_environment and key in _os.environ
else:
def _relax_case():
"""True if filenames must be checked case-insensitively."""
@@ -71,65 +71,65 @@ def _make_relax_case():
return _relax_case
-def _pack_uint32(x):
+def _pack_uint32(x):
"""Convert a 32-bit integer to little-endian."""
return (int(x) & 0xFFFFFFFF).to_bytes(4, 'little')
-def _unpack_uint32(data):
+def _unpack_uint32(data):
"""Convert 4 bytes in little-endian to an integer."""
- assert len(data) == 4
- return int.from_bytes(data, 'little')
-
-def _unpack_uint16(data):
- """Convert 2 bytes in little-endian to an integer."""
- assert len(data) == 2
- return int.from_bytes(data, 'little')
-
-
-if _MS_WINDOWS:
- def _path_join(*path_parts):
- """Replacement for os.path.join()."""
- if not path_parts:
- return ""
- if len(path_parts) == 1:
- return path_parts[0]
- root = ""
- path = []
- for new_root, tail in map(_os._path_splitroot, path_parts):
- if new_root.startswith(path_sep_tuple) or new_root.endswith(path_sep_tuple):
- root = new_root.rstrip(path_separators) or root
- path = [path_sep + tail]
- elif new_root.endswith(':'):
- if root.casefold() != new_root.casefold():
- # Drive relative paths have to be resolved by the OS, so we reset the
- # tail but do not add a path_sep prefix.
- root = new_root
- path = [tail]
- else:
- path.append(tail)
- else:
- root = new_root or root
- path.append(tail)
- path = [p.rstrip(path_separators) for p in path if p]
- if len(path) == 1 and not path[0]:
- # Avoid losing the root's trailing separator when joining with nothing
- return root + path_sep
- return root + path_sep.join(path)
-
-else:
- def _path_join(*path_parts):
- """Replacement for os.path.join()."""
- return path_sep.join([part.rstrip(path_separators)
- for part in path_parts if part])
-
-
+ assert len(data) == 4
+ return int.from_bytes(data, 'little')
+
+def _unpack_uint16(data):
+ """Convert 2 bytes in little-endian to an integer."""
+ assert len(data) == 2
+ return int.from_bytes(data, 'little')
+
+
+if _MS_WINDOWS:
+ def _path_join(*path_parts):
+ """Replacement for os.path.join()."""
+ if not path_parts:
+ return ""
+ if len(path_parts) == 1:
+ return path_parts[0]
+ root = ""
+ path = []
+ for new_root, tail in map(_os._path_splitroot, path_parts):
+ if new_root.startswith(path_sep_tuple) or new_root.endswith(path_sep_tuple):
+ root = new_root.rstrip(path_separators) or root
+ path = [path_sep + tail]
+ elif new_root.endswith(':'):
+ if root.casefold() != new_root.casefold():
+ # Drive relative paths have to be resolved by the OS, so we reset the
+ # tail but do not add a path_sep prefix.
+ root = new_root
+ path = [tail]
+ else:
+ path.append(tail)
+ else:
+ root = new_root or root
+ path.append(tail)
+ path = [p.rstrip(path_separators) for p in path if p]
+ if len(path) == 1 and not path[0]:
+ # Avoid losing the root's trailing separator when joining with nothing
+ return root + path_sep
+ return root + path_sep.join(path)
+
+else:
+ def _path_join(*path_parts):
+ """Replacement for os.path.join()."""
+ return path_sep.join([part.rstrip(path_separators)
+ for part in path_parts if part])
+
+
def _path_split(path):
"""Replacement for os.path.split()."""
- i = max(path.rfind(p) for p in path_separators)
- if i < 0:
- return '', path
- return path[:i], path[i + 1:]
+ i = max(path.rfind(p) for p in path_separators)
+ if i < 0:
+ return '', path
+ return path[:i], path[i + 1:]
def _path_stat(path):
@@ -163,20 +163,20 @@ def _path_isdir(path):
return _path_is_mode_type(path, 0o040000)
-if _MS_WINDOWS:
- def _path_isabs(path):
- """Replacement for os.path.isabs."""
- if not path:
- return False
- root = _os._path_splitroot(path)[0].replace('/', '\\')
- return len(root) > 1 and (root.startswith('\\\\') or root.endswith('\\'))
-
-else:
- def _path_isabs(path):
- """Replacement for os.path.isabs."""
- return path.startswith(path_separators)
-
-
+if _MS_WINDOWS:
+ def _path_isabs(path):
+ """Replacement for os.path.isabs."""
+ if not path:
+ return False
+ root = _os._path_splitroot(path)[0].replace('/', '\\')
+ return len(root) > 1 and (root.startswith('\\\\') or root.endswith('\\'))
+
+else:
+ def _path_isabs(path):
+ """Replacement for os.path.isabs."""
+ return path.startswith(path_separators)
+
+
def _write_atomic(path, data, mode=0o666):
"""Best-effort function to write data to a path atomically.
Be prepared to handle a FileExistsError if concurrent writing of the
@@ -321,23 +321,23 @@ _code_type = type(_write_atomic.__code__)
# Python 3.7a2 3391 (update GET_AITER #31709)
# Python 3.7a4 3392 (PEP 552: Deterministic pycs #31650)
# Python 3.7b1 3393 (remove STORE_ANNOTATION opcode #32550)
-# Python 3.7b5 3394 (restored docstring as the first stmt in the body;
+# Python 3.7b5 3394 (restored docstring as the first stmt in the body;
# this might affected the first line number #32911)
-# Python 3.8a1 3400 (move frame block handling to compiler #17611)
-# Python 3.8a1 3401 (add END_ASYNC_FOR #33041)
-# Python 3.8a1 3410 (PEP570 Python Positional-Only Parameters #36540)
-# Python 3.8b2 3411 (Reverse evaluation order of key: value in dict
-# comprehensions #35224)
-# Python 3.8b2 3412 (Swap the position of positional args and positional
-# only args in ast.arguments #37593)
-# Python 3.8b4 3413 (Fix "break" and "continue" in "finally" #37830)
-# Python 3.9a0 3420 (add LOAD_ASSERTION_ERROR #34880)
-# Python 3.9a0 3421 (simplified bytecode for with blocks #32949)
-# Python 3.9a0 3422 (remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY, POP_FINALLY bytecodes #33387)
-# Python 3.9a2 3423 (add IS_OP, CONTAINS_OP and JUMP_IF_NOT_EXC_MATCH bytecodes #39156)
-# Python 3.9a2 3424 (simplify bytecodes for *value unpacking)
-# Python 3.9a2 3425 (simplify bytecodes for **value unpacking)
-
+# Python 3.8a1 3400 (move frame block handling to compiler #17611)
+# Python 3.8a1 3401 (add END_ASYNC_FOR #33041)
+# Python 3.8a1 3410 (PEP570 Python Positional-Only Parameters #36540)
+# Python 3.8b2 3411 (Reverse evaluation order of key: value in dict
+# comprehensions #35224)
+# Python 3.8b2 3412 (Swap the position of positional args and positional
+# only args in ast.arguments #37593)
+# Python 3.8b4 3413 (Fix "break" and "continue" in "finally" #37830)
+# Python 3.9a0 3420 (add LOAD_ASSERTION_ERROR #34880)
+# Python 3.9a0 3421 (simplified bytecode for with blocks #32949)
+# Python 3.9a0 3422 (remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY, POP_FINALLY bytecodes #33387)
+# Python 3.9a2 3423 (add IS_OP, CONTAINS_OP and JUMP_IF_NOT_EXC_MATCH bytecodes #39156)
+# Python 3.9a2 3424 (simplify bytecodes for *value unpacking)
+# Python 3.9a2 3425 (simplify bytecodes for **value unpacking)
+
#
# MAGIC must change whenever the bytecode emitted by the compiler may no
# longer be understood by older implementations of the eval loop (usually
@@ -346,7 +346,7 @@ _code_type = type(_write_atomic.__code__)
# Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
# in PC/launcher.c must also be updated.
-MAGIC_NUMBER = (3425).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3425).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
_PYCACHE = '__pycache__'
@@ -400,35 +400,35 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
if not optimization.isalnum():
raise ValueError('{!r} is not alphanumeric'.format(optimization))
almost_filename = '{}.{}{}'.format(almost_filename, _OPT, optimization)
- filename = almost_filename + BYTECODE_SUFFIXES[0]
- if sys.pycache_prefix is not None:
- # We need an absolute path to the py file to avoid the possibility of
- # collisions within sys.pycache_prefix, if someone has two different
- # `foo/bar.py` on their system and they import both of them using the
- # same sys.pycache_prefix. Let's say sys.pycache_prefix is
- # `C:\Bytecode`; the idea here is that if we get `Foo\Bar`, we first
- # make it absolute (`C:\Somewhere\Foo\Bar`), then make it root-relative
- # (`Somewhere\Foo\Bar`), so we end up placing the bytecode file in an
- # unambiguous `C:\Bytecode\Somewhere\Foo\Bar\`.
- if not _path_isabs(head):
- head = _path_join(_os.getcwd(), head)
-
- # Strip initial drive from a Windows path. We know we have an absolute
- # path here, so the second part of the check rules out a POSIX path that
- # happens to contain a colon at the second character.
- if head[1] == ':' and head[0] not in path_separators:
- head = head[2:]
-
- # Strip initial path separator from `head` to complete the conversion
- # back to a root-relative path before joining.
- return _path_join(
- sys.pycache_prefix,
- head.lstrip(path_separators),
- filename,
- )
- return _path_join(head, _PYCACHE, filename)
-
-
+ filename = almost_filename + BYTECODE_SUFFIXES[0]
+ if sys.pycache_prefix is not None:
+ # We need an absolute path to the py file to avoid the possibility of
+ # collisions within sys.pycache_prefix, if someone has two different
+ # `foo/bar.py` on their system and they import both of them using the
+ # same sys.pycache_prefix. Let's say sys.pycache_prefix is
+ # `C:\Bytecode`; the idea here is that if we get `Foo\Bar`, we first
+ # make it absolute (`C:\Somewhere\Foo\Bar`), then make it root-relative
+ # (`Somewhere\Foo\Bar`), so we end up placing the bytecode file in an
+ # unambiguous `C:\Bytecode\Somewhere\Foo\Bar\`.
+ if not _path_isabs(head):
+ head = _path_join(_os.getcwd(), head)
+
+ # Strip initial drive from a Windows path. We know we have an absolute
+ # path here, so the second part of the check rules out a POSIX path that
+ # happens to contain a colon at the second character.
+ if head[1] == ':' and head[0] not in path_separators:
+ head = head[2:]
+
+ # Strip initial path separator from `head` to complete the conversion
+ # back to a root-relative path before joining.
+ return _path_join(
+ sys.pycache_prefix,
+ head.lstrip(path_separators),
+ filename,
+ )
+ return _path_join(head, _PYCACHE, filename)
+
+
def source_from_cache(path):
"""Given the path to a .pyc. file, return the path to its .py file.
@@ -442,29 +442,29 @@ def source_from_cache(path):
raise NotImplementedError('sys.implementation.cache_tag is None')
path = _os.fspath(path)
head, pycache_filename = _path_split(path)
- found_in_pycache_prefix = False
- if sys.pycache_prefix is not None:
- stripped_path = sys.pycache_prefix.rstrip(path_separators)
- if head.startswith(stripped_path + path_sep):
- head = head[len(stripped_path):]
- found_in_pycache_prefix = True
- if not found_in_pycache_prefix:
- head, pycache = _path_split(head)
- if pycache != _PYCACHE:
- raise ValueError(f'{_PYCACHE} not bottom-level directory in '
- f'{path!r}')
+ found_in_pycache_prefix = False
+ if sys.pycache_prefix is not None:
+ stripped_path = sys.pycache_prefix.rstrip(path_separators)
+ if head.startswith(stripped_path + path_sep):
+ head = head[len(stripped_path):]
+ found_in_pycache_prefix = True
+ if not found_in_pycache_prefix:
+ head, pycache = _path_split(head)
+ if pycache != _PYCACHE:
+ raise ValueError(f'{_PYCACHE} not bottom-level directory in '
+ f'{path!r}')
dot_count = pycache_filename.count('.')
if dot_count not in {2, 3}:
- raise ValueError(f'expected only 2 or 3 dots in {pycache_filename!r}')
+ raise ValueError(f'expected only 2 or 3 dots in {pycache_filename!r}')
elif dot_count == 3:
optimization = pycache_filename.rsplit('.', 2)[-2]
if not optimization.startswith(_OPT):
raise ValueError("optimization portion of filename does not start "
- f"with {_OPT!r}")
+ f"with {_OPT!r}")
opt_level = optimization[len(_OPT):]
if not opt_level.isalnum():
- raise ValueError(f"optimization level {optimization!r} is not an "
- "alphanumeric value")
+ raise ValueError(f"optimization level {optimization!r} is not an "
+ "alphanumeric value")
base_filename = pycache_filename.partition('.')[0]
return _path_join(head, base_filename + SOURCE_SUFFIXES[0])
@@ -582,7 +582,7 @@ def _classify_pyc(data, name, exc_details):
message = f'reached EOF while reading pyc header of {name!r}'
_bootstrap._verbose_message('{}', message)
raise EOFError(message)
- flags = _unpack_uint32(data[4:8])
+ flags = _unpack_uint32(data[4:8])
# Only the first two flags are defined.
if flags & ~0b11:
message = f'invalid flags {flags!r} in {name!r}'
@@ -609,12 +609,12 @@ def _validate_timestamp_pyc(data, source_mtime, source_size, name,
An ImportError is raised if the bytecode is stale.
"""
- if _unpack_uint32(data[8:12]) != (source_mtime & 0xFFFFFFFF):
+ if _unpack_uint32(data[8:12]) != (source_mtime & 0xFFFFFFFF):
message = f'bytecode is stale for {name!r}'
_bootstrap._verbose_message('{}', message)
raise ImportError(message, **exc_details)
if (source_size is not None and
- _unpack_uint32(data[12:16]) != (source_size & 0xFFFFFFFF)):
+ _unpack_uint32(data[12:16]) != (source_size & 0xFFFFFFFF)):
raise ImportError(f'bytecode is stale for {name!r}', **exc_details)
@@ -658,9 +658,9 @@ def _compile_bytecode(data, name=None, bytecode_path=None, source_path=None):
def _code_to_timestamp_pyc(code, mtime=0, source_size=0):
"Produce the data for a timestamp-based pyc."
data = bytearray(MAGIC_NUMBER)
- data.extend(_pack_uint32(0))
- data.extend(_pack_uint32(mtime))
- data.extend(_pack_uint32(source_size))
+ data.extend(_pack_uint32(0))
+ data.extend(_pack_uint32(mtime))
+ data.extend(_pack_uint32(source_size))
data.extend(marshal.dumps(code))
return data
@@ -669,7 +669,7 @@ def _code_to_hash_pyc(code, source_hash, checked=True):
"Produce the data for a hash-based pyc."
data = bytearray(MAGIC_NUMBER)
flags = 0b1 | checked << 1
- data.extend(_pack_uint32(flags))
+ data.extend(_pack_uint32(flags))
assert len(source_hash) == 8
data.extend(source_hash)
data.extend(marshal.dumps(code))
@@ -776,9 +776,9 @@ class WindowsRegistryFinder:
@classmethod
def _open_registry(cls, key):
try:
- return winreg.OpenKey(winreg.HKEY_CURRENT_USER, key)
+ return winreg.OpenKey(winreg.HKEY_CURRENT_USER, key)
except OSError:
- return winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key)
+ return winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key)
@classmethod
def _search_registry(cls, fullname):
@@ -790,7 +790,7 @@ class WindowsRegistryFinder:
sys_version='%d.%d' % sys.version_info[:2])
try:
with cls._open_registry(key) as hkey:
- filepath = winreg.QueryValue(hkey, '')
+ filepath = winreg.QueryValue(hkey, '')
except OSError:
return None
return filepath
@@ -858,16 +858,16 @@ class SourceLoader(_LoaderBasics):
def path_mtime(self, path):
"""Optional method that returns the modification time (an int) for the
- specified path (a str).
+ specified path (a str).
Raises OSError when the path cannot be handled.
"""
raise OSError
def path_stats(self, path):
- """Optional method returning a metadata dict for the specified
- path (a str).
-
+ """Optional method returning a metadata dict for the specified
+ path (a str).
+
Possible keys:
- 'mtime' (mandatory) is the numeric timestamp of last source
code modification;
@@ -1035,12 +1035,12 @@ class FileLoader:
def get_data(self, path):
"""Return the data from path as raw bytes."""
- if isinstance(self, (SourceLoader, ExtensionFileLoader)):
- with _io.open_code(str(path)) as file:
- return file.read()
- else:
- with _io.FileIO(path, 'r') as file:
- return file.read()
+ if isinstance(self, (SourceLoader, ExtensionFileLoader)):
+ with _io.open_code(str(path)) as file:
+ return file.read()
+ else:
+ with _io.FileIO(path, 'r') as file:
+ return file.read()
# ResourceReader ABC API.
@@ -1154,11 +1154,11 @@ class ExtensionFileLoader(FileLoader, _LoaderBasics):
def __init__(self, name, path):
self.name = name
- if not _path_isabs(path):
- try:
- path = _path_join(_os.getcwd(), path)
- except OSError:
- pass
+ if not _path_isabs(path):
+ try:
+ path = _path_join(_os.getcwd(), path)
+ except OSError:
+ pass
self.path = path
def __eq__(self, other):
@@ -1245,9 +1245,9 @@ class _NamespacePath:
def __iter__(self):
return iter(self._recalculate())
- def __getitem__(self, index):
- return self._recalculate()[index]
-
+ def __getitem__(self, index):
+ return self._recalculate()[index]
+
def __setitem__(self, index, path):
self._path[index] = path
@@ -1440,20 +1440,20 @@ class PathFinder:
return None
return spec.loader
- @classmethod
- def find_distributions(cls, *args, **kwargs):
- """
- Find distributions.
-
- Return an iterable of all Distribution instances capable of
- loading the metadata for packages matching ``context.name``
- (or all names if ``None`` indicated) along the paths in the list
- of directories ``context.path``.
- """
- from importlib.metadata import MetadataPathFinder
- return MetadataPathFinder.find_distributions(*args, **kwargs)
-
-
+ @classmethod
+ def find_distributions(cls, *args, **kwargs):
+ """
+ Find distributions.
+
+ Return an iterable of all Distribution instances capable of
+ loading the metadata for packages matching ``context.name``
+ (or all names if ``None`` indicated) along the paths in the list
+ of directories ``context.path``.
+ """
+ from importlib.metadata import MetadataPathFinder
+ return MetadataPathFinder.find_distributions(*args, **kwargs)
+
+
class FileFinder:
"""File-based finder.
@@ -1473,8 +1473,8 @@ class FileFinder:
self._loaders = loaders
# Base (directory) path
self.path = path or '.'
- if not _path_isabs(self.path):
- self.path = _path_join(_os.getcwd(), self.path)
+ if not _path_isabs(self.path):
+ self.path = _path_join(_os.getcwd(), self.path)
self._path_mtime = -1
self._path_cache = set()
self._relaxed_path_cache = set()
@@ -1537,10 +1537,10 @@ class FileFinder:
is_namespace = _path_isdir(base_path)
# Check for a file w/ a proper suffix exists.
for suffix, loader_class in self._loaders:
- try:
- full_path = _path_join(self.path, tail_module + suffix)
- except ValueError:
- return None
+ try:
+ full_path = _path_join(self.path, tail_module + suffix)
+ except ValueError:
+ return None
_bootstrap._verbose_message('trying {}', full_path, verbosity=2)
if cache_module + suffix in cache:
if _path_isfile(full_path):
@@ -1673,22 +1673,22 @@ def _setup(_bootstrap_module):
continue
else:
raise ImportError('importlib requires posix or nt')
-
+
setattr(self_module, '_os', os_module)
setattr(self_module, 'path_sep', path_sep)
setattr(self_module, 'path_separators', ''.join(path_separators))
- setattr(self_module, '_pathseps_with_colon', {f':{s}' for s in path_separators})
+ setattr(self_module, '_pathseps_with_colon', {f':{s}' for s in path_separators})
- # Directly load built-in modules needed during bootstrap.
- builtin_names = ['_io', '_warnings', 'marshal']
+ # Directly load built-in modules needed during bootstrap.
+ builtin_names = ['_io', '_warnings', 'marshal']
if builtin_os == 'nt':
- builtin_names.append('winreg')
- for builtin_name in builtin_names:
- if builtin_name not in sys.modules:
- builtin_module = _bootstrap._builtin_from_name(builtin_name)
- else:
- builtin_module = sys.modules[builtin_name]
- setattr(self_module, builtin_name, builtin_module)
+ builtin_names.append('winreg')
+ for builtin_name in builtin_names:
+ if builtin_name not in sys.modules:
+ builtin_module = _bootstrap._builtin_from_name(builtin_name)
+ else:
+ builtin_module = sys.modules[builtin_name]
+ setattr(self_module, builtin_name, builtin_module)
# Constants
setattr(self_module, '_relax_case', _make_relax_case())
diff --git a/contrib/tools/python3/src/Lib/importlib/_common.py b/contrib/tools/python3/src/Lib/importlib/_common.py
index 82b02c7458..c1204f0b8f 100644
--- a/contrib/tools/python3/src/Lib/importlib/_common.py
+++ b/contrib/tools/python3/src/Lib/importlib/_common.py
@@ -1,62 +1,62 @@
-import os
-import pathlib
-import zipfile
-import tempfile
-import functools
-import contextlib
-
-
-def from_package(package):
- """
- Return a Traversable object for the given package.
-
- """
- return fallback_resources(package.__spec__)
-
-
-def fallback_resources(spec):
- package_directory = pathlib.Path(spec.origin).parent
- try:
- archive_path = spec.loader.archive
- rel_path = package_directory.relative_to(archive_path)
- return zipfile.Path(archive_path, str(rel_path) + '/')
- except Exception:
- pass
- return package_directory
-
-
-@contextlib.contextmanager
-def _tempfile(reader, suffix=''):
- # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try'
- # blocks due to the need to close the temporary file to work on Windows
- # properly.
- fd, raw_path = tempfile.mkstemp(suffix=suffix)
- try:
- os.write(fd, reader())
- os.close(fd)
- yield pathlib.Path(raw_path)
- finally:
- try:
- os.remove(raw_path)
- except FileNotFoundError:
- pass
-
-
-@functools.singledispatch
-@contextlib.contextmanager
-def as_file(path):
- """
- Given a Traversable object, return that object as a
- path on the local file system in a context manager.
- """
- with _tempfile(path.read_bytes, suffix=path.name) as local:
- yield local
-
-
-@as_file.register(pathlib.Path)
-@contextlib.contextmanager
-def _(path):
- """
- Degenerate behavior for pathlib.Path objects.
- """
- yield path
+import os
+import pathlib
+import zipfile
+import tempfile
+import functools
+import contextlib
+
+
+def from_package(package):
+ """
+ Return a Traversable object for the given package.
+
+ """
+ return fallback_resources(package.__spec__)
+
+
+def fallback_resources(spec):
+ package_directory = pathlib.Path(spec.origin).parent
+ try:
+ archive_path = spec.loader.archive
+ rel_path = package_directory.relative_to(archive_path)
+ return zipfile.Path(archive_path, str(rel_path) + '/')
+ except Exception:
+ pass
+ return package_directory
+
+
+@contextlib.contextmanager
+def _tempfile(reader, suffix=''):
+ # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try'
+ # blocks due to the need to close the temporary file to work on Windows
+ # properly.
+ fd, raw_path = tempfile.mkstemp(suffix=suffix)
+ try:
+ os.write(fd, reader())
+ os.close(fd)
+ yield pathlib.Path(raw_path)
+ finally:
+ try:
+ os.remove(raw_path)
+ except FileNotFoundError:
+ pass
+
+
+@functools.singledispatch
+@contextlib.contextmanager
+def as_file(path):
+ """
+ Given a Traversable object, return that object as a
+ path on the local file system in a context manager.
+ """
+ with _tempfile(path.read_bytes, suffix=path.name) as local:
+ yield local
+
+
+@as_file.register(pathlib.Path)
+@contextlib.contextmanager
+def _(path):
+ """
+ Degenerate behavior for pathlib.Path objects.
+ """
+ yield path
diff --git a/contrib/tools/python3/src/Lib/importlib/abc.py b/contrib/tools/python3/src/Lib/importlib/abc.py
index def2e342dc..b8a9bb1a21 100644
--- a/contrib/tools/python3/src/Lib/importlib/abc.py
+++ b/contrib/tools/python3/src/Lib/importlib/abc.py
@@ -10,11 +10,11 @@ except ImportError as exc:
_frozen_importlib = None
try:
import _frozen_importlib_external
-except ImportError:
+except ImportError:
_frozen_importlib_external = _bootstrap_external
import abc
import warnings
-from typing import Protocol, runtime_checkable
+from typing import Protocol, runtime_checkable
def _register(abstract_cls, *classes):
@@ -387,88 +387,88 @@ class ResourceReader(metaclass=abc.ABCMeta):
_register(ResourceReader, machinery.SourceFileLoader)
-
-
-@runtime_checkable
-class Traversable(Protocol):
- """
- An object with a subset of pathlib.Path methods suitable for
- traversing directories and opening files.
- """
-
- @abc.abstractmethod
- def iterdir(self):
- """
- Yield Traversable objects in self
- """
-
- @abc.abstractmethod
- def read_bytes(self):
- """
- Read contents of self as bytes
- """
-
- @abc.abstractmethod
- def read_text(self, encoding=None):
- """
- Read contents of self as bytes
- """
-
- @abc.abstractmethod
- def is_dir(self):
- """
- Return True if self is a dir
- """
-
- @abc.abstractmethod
- def is_file(self):
- """
- Return True if self is a file
- """
-
- @abc.abstractmethod
- def joinpath(self, child):
- """
- Return Traversable child in self
- """
-
- @abc.abstractmethod
- def __truediv__(self, child):
- """
- Return Traversable child in self
- """
-
- @abc.abstractmethod
- def open(self, mode='r', *args, **kwargs):
- """
- mode may be 'r' or 'rb' to open as text or binary. Return a handle
- suitable for reading (same as pathlib.Path.open).
-
- When opening as text, accepts encoding parameters such as those
- accepted by io.TextIOWrapper.
- """
-
- @abc.abstractproperty
- def name(self):
- # type: () -> str
- """
- The base name of this object without any parent references.
- """
-
-
-class TraversableResources(ResourceReader):
- @abc.abstractmethod
- def files(self):
- """Return a Traversable object for the loaded package."""
-
- def open_resource(self, resource):
- return self.files().joinpath(resource).open('rb')
-
- def resource_path(self, resource):
- raise FileNotFoundError(resource)
-
- def is_resource(self, path):
- return self.files().joinpath(path).isfile()
-
- def contents(self):
- return (item.name for item in self.files().iterdir())
+
+
+@runtime_checkable
+class Traversable(Protocol):
+ """
+ An object with a subset of pathlib.Path methods suitable for
+ traversing directories and opening files.
+ """
+
+ @abc.abstractmethod
+ def iterdir(self):
+ """
+ Yield Traversable objects in self
+ """
+
+ @abc.abstractmethod
+ def read_bytes(self):
+ """
+ Read contents of self as bytes
+ """
+
+ @abc.abstractmethod
+ def read_text(self, encoding=None):
+ """
+ Read contents of self as bytes
+ """
+
+ @abc.abstractmethod
+ def is_dir(self):
+ """
+ Return True if self is a dir
+ """
+
+ @abc.abstractmethod
+ def is_file(self):
+ """
+ Return True if self is a file
+ """
+
+ @abc.abstractmethod
+ def joinpath(self, child):
+ """
+ Return Traversable child in self
+ """
+
+ @abc.abstractmethod
+ def __truediv__(self, child):
+ """
+ Return Traversable child in self
+ """
+
+ @abc.abstractmethod
+ def open(self, mode='r', *args, **kwargs):
+ """
+ mode may be 'r' or 'rb' to open as text or binary. Return a handle
+ suitable for reading (same as pathlib.Path.open).
+
+ When opening as text, accepts encoding parameters such as those
+ accepted by io.TextIOWrapper.
+ """
+
+ @abc.abstractproperty
+ def name(self):
+ # type: () -> str
+ """
+ The base name of this object without any parent references.
+ """
+
+
+class TraversableResources(ResourceReader):
+ @abc.abstractmethod
+ def files(self):
+ """Return a Traversable object for the loaded package."""
+
+ def open_resource(self, resource):
+ return self.files().joinpath(resource).open('rb')
+
+ def resource_path(self, resource):
+ raise FileNotFoundError(resource)
+
+ def is_resource(self, path):
+ return self.files().joinpath(path).isfile()
+
+ def contents(self):
+ return (item.name for item in self.files().iterdir())
diff --git a/contrib/tools/python3/src/Lib/importlib/metadata.py b/contrib/tools/python3/src/Lib/importlib/metadata.py
index c48aa9e765..594986ce23 100644
--- a/contrib/tools/python3/src/Lib/importlib/metadata.py
+++ b/contrib/tools/python3/src/Lib/importlib/metadata.py
@@ -1,595 +1,595 @@
-import io
-import os
-import re
-import abc
-import csv
-import sys
-import email
-import pathlib
-import zipfile
-import operator
-import functools
-import itertools
-import posixpath
-import collections
-
-from configparser import ConfigParser
-from contextlib import suppress
-from importlib import import_module
-from importlib.abc import MetaPathFinder
-from itertools import starmap
-
-
-__all__ = [
- 'Distribution',
- 'DistributionFinder',
- 'PackageNotFoundError',
- 'distribution',
- 'distributions',
- 'entry_points',
- 'files',
- 'metadata',
- 'requires',
- 'version',
- ]
-
-
-class PackageNotFoundError(ModuleNotFoundError):
- """The package was not found."""
-
-
-class EntryPoint(
- collections.namedtuple('EntryPointBase', 'name value group')):
- """An entry point as defined by Python packaging conventions.
-
- See `the packaging docs on entry points
- <https://packaging.python.org/specifications/entry-points/>`_
- for more information.
- """
-
- pattern = re.compile(
- r'(?P<module>[\w.]+)\s*'
- r'(:\s*(?P<attr>[\w.]+))?\s*'
- r'(?P<extras>\[.*\])?\s*$'
- )
- """
- A regular expression describing the syntax for an entry point,
- which might look like:
-
- - module
- - package.module
- - package.module:attribute
- - package.module:object.attribute
- - package.module:attr [extra1, extra2]
-
- Other combinations are possible as well.
-
- The expression is lenient about whitespace around the ':',
- following the attr, and following any extras.
- """
-
- def load(self):
- """Load the entry point from its definition. If only a module
- is indicated by the value, return that module. Otherwise,
- return the named object.
- """
- match = self.pattern.match(self.value)
- module = import_module(match.group('module'))
- attrs = filter(None, (match.group('attr') or '').split('.'))
- return functools.reduce(getattr, attrs, module)
-
- @property
- def module(self):
- match = self.pattern.match(self.value)
- return match.group('module')
-
- @property
- def attr(self):
- match = self.pattern.match(self.value)
- return match.group('attr')
-
- @property
- def extras(self):
- match = self.pattern.match(self.value)
- return list(re.finditer(r'\w+', match.group('extras') or ''))
-
- @classmethod
- def _from_config(cls, config):
- return [
- cls(name, value, group)
- for group in config.sections()
- for name, value in config.items(group)
- ]
-
- @classmethod
- def _from_text(cls, text):
- config = ConfigParser(delimiters='=')
- # case sensitive: https://stackoverflow.com/q/1611799/812183
- config.optionxform = str
- try:
- config.read_string(text)
- except AttributeError: # pragma: nocover
- # Python 2 has no read_string
- config.readfp(io.StringIO(text))
- return EntryPoint._from_config(config)
-
- def __iter__(self):
- """
- Supply iter so one may construct dicts of EntryPoints easily.
- """
- return iter((self.name, self))
-
- def __reduce__(self):
- return (
- self.__class__,
- (self.name, self.value, self.group),
- )
-
-
-class PackagePath(pathlib.PurePosixPath):
- """A reference to a path in a package"""
-
- def read_text(self, encoding='utf-8'):
- with self.locate().open(encoding=encoding) as stream:
- return stream.read()
-
- def read_binary(self):
- with self.locate().open('rb') as stream:
- return stream.read()
-
- def locate(self):
- """Return a path-like object for this path"""
- return self.dist.locate_file(self)
-
-
-class FileHash:
- def __init__(self, spec):
- self.mode, _, self.value = spec.partition('=')
-
- def __repr__(self):
- return '<FileHash mode: {} value: {}>'.format(self.mode, self.value)
-
-
-class Distribution:
- """A Python distribution package."""
-
- @abc.abstractmethod
- def read_text(self, filename):
- """Attempt to load metadata file given by the name.
-
- :param filename: The name of the file in the distribution info.
- :return: The text if found, otherwise None.
- """
-
- @abc.abstractmethod
- def locate_file(self, path):
- """
- Given a path to a file in this distribution, return a path
- to it.
- """
-
- @classmethod
- def from_name(cls, name):
- """Return the Distribution for the given package name.
-
- :param name: The name of the distribution package to search for.
- :return: The Distribution instance (or subclass thereof) for the named
- package, if found.
- :raises PackageNotFoundError: When the named package's distribution
- metadata cannot be found.
- """
- for resolver in cls._discover_resolvers():
- dists = resolver(DistributionFinder.Context(name=name))
- dist = next(iter(dists), None)
- if dist is not None:
- return dist
- else:
- raise PackageNotFoundError(name)
-
- @classmethod
- def discover(cls, **kwargs):
- """Return an iterable of Distribution objects for all packages.
-
- Pass a ``context`` or pass keyword arguments for constructing
- a context.
-
- :context: A ``DistributionFinder.Context`` object.
- :return: Iterable of Distribution objects for all packages.
- """
- context = kwargs.pop('context', None)
- if context and kwargs:
- raise ValueError("cannot accept context and kwargs")
- context = context or DistributionFinder.Context(**kwargs)
- return itertools.chain.from_iterable(
- resolver(context)
- for resolver in cls._discover_resolvers()
- )
-
- @staticmethod
- def at(path):
- """Return a Distribution for the indicated metadata path
-
- :param path: a string or path-like object
- :return: a concrete Distribution instance for the path
- """
- return PathDistribution(pathlib.Path(path))
-
- @staticmethod
- def _discover_resolvers():
- """Search the meta_path for resolvers."""
- declared = (
- getattr(finder, 'find_distributions', None)
- for finder in sys.meta_path
- )
- return filter(None, declared)
-
- @classmethod
- def _local(cls, root='.'):
- from pep517 import build, meta
- system = build.compat_system(root)
- builder = functools.partial(
- meta.build,
- source_dir=root,
- system=system,
- )
- return PathDistribution(zipfile.Path(meta.build_as_zip(builder)))
-
- @property
- def metadata(self):
- """Return the parsed metadata for this Distribution.
-
- The returned object will have keys that name the various bits of
- metadata. See PEP 566 for details.
- """
- text = (
- self.read_text('METADATA')
- or self.read_text('PKG-INFO')
- # This last clause is here to support old egg-info files. Its
- # effect is to just end up using the PathDistribution's self._path
- # (which points to the egg-info file) attribute unchanged.
- or self.read_text('')
- )
- return email.message_from_string(text)
-
- @property
- def version(self):
- """Return the 'Version' metadata for the distribution package."""
- return self.metadata['Version']
-
- @property
- def entry_points(self):
- return EntryPoint._from_text(self.read_text('entry_points.txt'))
-
- @property
- def files(self):
- """Files in this distribution.
-
- :return: List of PackagePath for this distribution or None
-
- Result is `None` if the metadata file that enumerates files
- (i.e. RECORD for dist-info or SOURCES.txt for egg-info) is
- missing.
- Result may be empty if the metadata exists but is empty.
- """
- file_lines = self._read_files_distinfo() or self._read_files_egginfo()
-
- def make_file(name, hash=None, size_str=None):
- result = PackagePath(name)
- result.hash = FileHash(hash) if hash else None
- result.size = int(size_str) if size_str else None
- result.dist = self
- return result
-
- return file_lines and list(starmap(make_file, csv.reader(file_lines)))
-
- def _read_files_distinfo(self):
- """
- Read the lines of RECORD
- """
- text = self.read_text('RECORD')
- return text and text.splitlines()
-
- def _read_files_egginfo(self):
- """
- SOURCES.txt might contain literal commas, so wrap each line
- in quotes.
- """
- text = self.read_text('SOURCES.txt')
- return text and map('"{}"'.format, text.splitlines())
-
- @property
- def requires(self):
- """Generated requirements specified for this Distribution"""
- reqs = self._read_dist_info_reqs() or self._read_egg_info_reqs()
- return reqs and list(reqs)
-
- def _read_dist_info_reqs(self):
- return self.metadata.get_all('Requires-Dist')
-
- def _read_egg_info_reqs(self):
- source = self.read_text('requires.txt')
- return source and self._deps_from_requires_text(source)
-
- @classmethod
- def _deps_from_requires_text(cls, source):
- section_pairs = cls._read_sections(source.splitlines())
- sections = {
- section: list(map(operator.itemgetter('line'), results))
- for section, results in
- itertools.groupby(section_pairs, operator.itemgetter('section'))
- }
- return cls._convert_egg_info_reqs_to_simple_reqs(sections)
-
- @staticmethod
- def _read_sections(lines):
- section = None
- for line in filter(None, lines):
- section_match = re.match(r'\[(.*)\]$', line)
- if section_match:
- section = section_match.group(1)
- continue
- yield locals()
-
- @staticmethod
- def _convert_egg_info_reqs_to_simple_reqs(sections):
- """
- Historically, setuptools would solicit and store 'extra'
- requirements, including those with environment markers,
- in separate sections. More modern tools expect each
- dependency to be defined separately, with any relevant
- extras and environment markers attached directly to that
- requirement. This method converts the former to the
- latter. See _test_deps_from_requires_text for an example.
- """
- def make_condition(name):
- return name and 'extra == "{name}"'.format(name=name)
-
- def quoted_marker(section):
- section = section or ''
- extra, sep, markers = section.partition(':')
- if extra and markers:
- markers = f'({markers})'
- conditions = list(filter(None, [markers, make_condition(extra)]))
- return '; ' + ' and '.join(conditions) if conditions else ''
-
- def url_req_space(req):
- """
- PEP 508 requires a space between the url_spec and the quoted_marker.
- Ref python/importlib_metadata#357.
- """
- # '@' is uniquely indicative of a url_req.
- return ' ' * ('@' in req)
-
- for section, deps in sections.items():
- for dep in deps:
- space = url_req_space(dep)
- yield dep + space + quoted_marker(section)
-
-
-class DistributionFinder(MetaPathFinder):
- """
- A MetaPathFinder capable of discovering installed distributions.
- """
-
- class Context:
- """
- Keyword arguments presented by the caller to
- ``distributions()`` or ``Distribution.discover()``
- to narrow the scope of a search for distributions
- in all DistributionFinders.
-
- Each DistributionFinder may expect any parameters
- and should attempt to honor the canonical
- parameters defined below when appropriate.
- """
-
- name = None
- """
- Specific name for which a distribution finder should match.
- A name of ``None`` matches all distributions.
- """
-
- def __init__(self, **kwargs):
- vars(self).update(kwargs)
-
- @property
- def path(self):
- """
- The path that a distribution finder should search.
-
- Typically refers to Python package paths and defaults
- to ``sys.path``.
- """
- return vars(self).get('path', sys.path)
-
- @abc.abstractmethod
- def find_distributions(self, context=Context()):
- """
- Find distributions.
-
- Return an iterable of all Distribution instances capable of
- loading the metadata for packages matching the ``context``,
- a DistributionFinder.Context instance.
- """
-
-
-class FastPath:
- """
- Micro-optimized class for searching a path for
- children.
- """
-
- def __init__(self, root):
- self.root = root
- self.base = os.path.basename(self.root).lower()
-
- def joinpath(self, child):
- return pathlib.Path(self.root, child)
-
- def children(self):
- with suppress(Exception):
- return os.listdir(self.root or '.')
- with suppress(Exception):
- return self.zip_children()
- return []
-
- def zip_children(self):
- zip_path = zipfile.Path(self.root)
- names = zip_path.root.namelist()
- self.joinpath = zip_path.joinpath
-
- return dict.fromkeys(
- child.split(posixpath.sep, 1)[0]
- for child in names
- )
-
- def is_egg(self, search):
- base = self.base
- return (
- base == search.versionless_egg_name
- or base.startswith(search.prefix)
- and base.endswith('.egg'))
-
- def search(self, name):
- for child in self.children():
- n_low = child.lower()
- if (n_low in name.exact_matches
- or n_low.startswith(name.prefix)
- and n_low.endswith(name.suffixes)
- # legacy case:
- or self.is_egg(name) and n_low == 'egg-info'):
- yield self.joinpath(child)
-
-
-class Prepared:
- """
- A prepared search for metadata on a possibly-named package.
- """
- normalized = ''
- prefix = ''
- suffixes = '.dist-info', '.egg-info'
- exact_matches = [''][:0]
- versionless_egg_name = ''
-
- def __init__(self, name):
- self.name = name
- if name is None:
- return
- self.normalized = name.lower().replace('-', '_')
- self.prefix = self.normalized + '-'
- self.exact_matches = [
- self.normalized + suffix for suffix in self.suffixes]
- self.versionless_egg_name = self.normalized + '.egg'
-
-
-class MetadataPathFinder(DistributionFinder):
- @classmethod
- def find_distributions(cls, context=DistributionFinder.Context()):
- """
- Find distributions.
-
- Return an iterable of all Distribution instances capable of
- loading the metadata for packages matching ``context.name``
- (or all names if ``None`` indicated) along the paths in the list
- of directories ``context.path``.
- """
- found = cls._search_paths(context.name, context.path)
- return map(PathDistribution, found)
-
- @classmethod
- def _search_paths(cls, name, paths):
- """Find metadata directories in paths heuristically."""
- return itertools.chain.from_iterable(
- path.search(Prepared(name))
- for path in map(FastPath, paths)
- )
-
-
-class PathDistribution(Distribution):
- def __init__(self, path):
- """Construct a distribution from a path to the metadata directory.
-
- :param path: A pathlib.Path or similar object supporting
- .joinpath(), __div__, .parent, and .read_text().
- """
- self._path = path
-
- def read_text(self, filename):
- with suppress(FileNotFoundError, IsADirectoryError, KeyError,
- NotADirectoryError, PermissionError):
- return self._path.joinpath(filename).read_text(encoding='utf-8')
- read_text.__doc__ = Distribution.read_text.__doc__
-
- def locate_file(self, path):
- return self._path.parent / path
-
-
-def distribution(distribution_name):
- """Get the ``Distribution`` instance for the named package.
-
- :param distribution_name: The name of the distribution package as a string.
- :return: A ``Distribution`` instance (or subclass thereof).
- """
- return Distribution.from_name(distribution_name)
-
-
-def distributions(**kwargs):
- """Get all ``Distribution`` instances in the current environment.
-
- :return: An iterable of ``Distribution`` instances.
- """
- return Distribution.discover(**kwargs)
-
-
-def metadata(distribution_name):
- """Get the metadata for the named package.
-
- :param distribution_name: The name of the distribution package to query.
- :return: An email.Message containing the parsed metadata.
- """
- return Distribution.from_name(distribution_name).metadata
-
-
-def version(distribution_name):
- """Get the version string for the named package.
-
- :param distribution_name: The name of the distribution package to query.
- :return: The version string for the package as defined in the package's
- "Version" metadata key.
- """
- return distribution(distribution_name).version
-
-
-def entry_points():
- """Return EntryPoint objects for all installed packages.
-
- :return: EntryPoint objects for all installed packages.
- """
- eps = itertools.chain.from_iterable(
- dist.entry_points for dist in distributions())
- by_group = operator.attrgetter('group')
- ordered = sorted(eps, key=by_group)
- grouped = itertools.groupby(ordered, by_group)
- return {
- group: tuple(eps)
- for group, eps in grouped
- }
-
-
-def files(distribution_name):
- """Return a list of files for the named package.
-
- :param distribution_name: The name of the distribution package to query.
- :return: List of files composing the distribution.
- """
- return distribution(distribution_name).files
-
-
-def requires(distribution_name):
- """
- Return a list of requirements for the named package.
-
- :return: An iterator of requirements, suitable for
- packaging.requirement.Requirement.
- """
- return distribution(distribution_name).requires
+import io
+import os
+import re
+import abc
+import csv
+import sys
+import email
+import pathlib
+import zipfile
+import operator
+import functools
+import itertools
+import posixpath
+import collections
+
+from configparser import ConfigParser
+from contextlib import suppress
+from importlib import import_module
+from importlib.abc import MetaPathFinder
+from itertools import starmap
+
+
+__all__ = [
+ 'Distribution',
+ 'DistributionFinder',
+ 'PackageNotFoundError',
+ 'distribution',
+ 'distributions',
+ 'entry_points',
+ 'files',
+ 'metadata',
+ 'requires',
+ 'version',
+ ]
+
+
+class PackageNotFoundError(ModuleNotFoundError):
+ """The package was not found."""
+
+
+class EntryPoint(
+ collections.namedtuple('EntryPointBase', 'name value group')):
+ """An entry point as defined by Python packaging conventions.
+
+ See `the packaging docs on entry points
+ <https://packaging.python.org/specifications/entry-points/>`_
+ for more information.
+ """
+
+ pattern = re.compile(
+ r'(?P<module>[\w.]+)\s*'
+ r'(:\s*(?P<attr>[\w.]+))?\s*'
+ r'(?P<extras>\[.*\])?\s*$'
+ )
+ """
+ A regular expression describing the syntax for an entry point,
+ which might look like:
+
+ - module
+ - package.module
+ - package.module:attribute
+ - package.module:object.attribute
+ - package.module:attr [extra1, extra2]
+
+ Other combinations are possible as well.
+
+ The expression is lenient about whitespace around the ':',
+ following the attr, and following any extras.
+ """
+
+ def load(self):
+ """Load the entry point from its definition. If only a module
+ is indicated by the value, return that module. Otherwise,
+ return the named object.
+ """
+ match = self.pattern.match(self.value)
+ module = import_module(match.group('module'))
+ attrs = filter(None, (match.group('attr') or '').split('.'))
+ return functools.reduce(getattr, attrs, module)
+
+ @property
+ def module(self):
+ match = self.pattern.match(self.value)
+ return match.group('module')
+
+ @property
+ def attr(self):
+ match = self.pattern.match(self.value)
+ return match.group('attr')
+
+ @property
+ def extras(self):
+ match = self.pattern.match(self.value)
+ return list(re.finditer(r'\w+', match.group('extras') or ''))
+
+ @classmethod
+ def _from_config(cls, config):
+ return [
+ cls(name, value, group)
+ for group in config.sections()
+ for name, value in config.items(group)
+ ]
+
+ @classmethod
+ def _from_text(cls, text):
+ config = ConfigParser(delimiters='=')
+ # case sensitive: https://stackoverflow.com/q/1611799/812183
+ config.optionxform = str
+ try:
+ config.read_string(text)
+ except AttributeError: # pragma: nocover
+ # Python 2 has no read_string
+ config.readfp(io.StringIO(text))
+ return EntryPoint._from_config(config)
+
+ def __iter__(self):
+ """
+ Supply iter so one may construct dicts of EntryPoints easily.
+ """
+ return iter((self.name, self))
+
+ def __reduce__(self):
+ return (
+ self.__class__,
+ (self.name, self.value, self.group),
+ )
+
+
+class PackagePath(pathlib.PurePosixPath):
+ """A reference to a path in a package"""
+
+ def read_text(self, encoding='utf-8'):
+ with self.locate().open(encoding=encoding) as stream:
+ return stream.read()
+
+ def read_binary(self):
+ with self.locate().open('rb') as stream:
+ return stream.read()
+
+ def locate(self):
+ """Return a path-like object for this path"""
+ return self.dist.locate_file(self)
+
+
+class FileHash:
+ def __init__(self, spec):
+ self.mode, _, self.value = spec.partition('=')
+
+ def __repr__(self):
+ return '<FileHash mode: {} value: {}>'.format(self.mode, self.value)
+
+
+class Distribution:
+ """A Python distribution package."""
+
+ @abc.abstractmethod
+ def read_text(self, filename):
+ """Attempt to load metadata file given by the name.
+
+ :param filename: The name of the file in the distribution info.
+ :return: The text if found, otherwise None.
+ """
+
+ @abc.abstractmethod
+ def locate_file(self, path):
+ """
+ Given a path to a file in this distribution, return a path
+ to it.
+ """
+
+ @classmethod
+ def from_name(cls, name):
+ """Return the Distribution for the given package name.
+
+ :param name: The name of the distribution package to search for.
+ :return: The Distribution instance (or subclass thereof) for the named
+ package, if found.
+ :raises PackageNotFoundError: When the named package's distribution
+ metadata cannot be found.
+ """
+ for resolver in cls._discover_resolvers():
+ dists = resolver(DistributionFinder.Context(name=name))
+ dist = next(iter(dists), None)
+ if dist is not None:
+ return dist
+ else:
+ raise PackageNotFoundError(name)
+
+ @classmethod
+ def discover(cls, **kwargs):
+ """Return an iterable of Distribution objects for all packages.
+
+ Pass a ``context`` or pass keyword arguments for constructing
+ a context.
+
+ :context: A ``DistributionFinder.Context`` object.
+ :return: Iterable of Distribution objects for all packages.
+ """
+ context = kwargs.pop('context', None)
+ if context and kwargs:
+ raise ValueError("cannot accept context and kwargs")
+ context = context or DistributionFinder.Context(**kwargs)
+ return itertools.chain.from_iterable(
+ resolver(context)
+ for resolver in cls._discover_resolvers()
+ )
+
+ @staticmethod
+ def at(path):
+ """Return a Distribution for the indicated metadata path
+
+ :param path: a string or path-like object
+ :return: a concrete Distribution instance for the path
+ """
+ return PathDistribution(pathlib.Path(path))
+
+ @staticmethod
+ def _discover_resolvers():
+ """Search the meta_path for resolvers."""
+ declared = (
+ getattr(finder, 'find_distributions', None)
+ for finder in sys.meta_path
+ )
+ return filter(None, declared)
+
+ @classmethod
+ def _local(cls, root='.'):
+ from pep517 import build, meta
+ system = build.compat_system(root)
+ builder = functools.partial(
+ meta.build,
+ source_dir=root,
+ system=system,
+ )
+ return PathDistribution(zipfile.Path(meta.build_as_zip(builder)))
+
+ @property
+ def metadata(self):
+ """Return the parsed metadata for this Distribution.
+
+ The returned object will have keys that name the various bits of
+ metadata. See PEP 566 for details.
+ """
+ text = (
+ self.read_text('METADATA')
+ or self.read_text('PKG-INFO')
+ # This last clause is here to support old egg-info files. Its
+ # effect is to just end up using the PathDistribution's self._path
+ # (which points to the egg-info file) attribute unchanged.
+ or self.read_text('')
+ )
+ return email.message_from_string(text)
+
+ @property
+ def version(self):
+ """Return the 'Version' metadata for the distribution package."""
+ return self.metadata['Version']
+
+ @property
+ def entry_points(self):
+ return EntryPoint._from_text(self.read_text('entry_points.txt'))
+
+ @property
+ def files(self):
+ """Files in this distribution.
+
+ :return: List of PackagePath for this distribution or None
+
+ Result is `None` if the metadata file that enumerates files
+ (i.e. RECORD for dist-info or SOURCES.txt for egg-info) is
+ missing.
+ Result may be empty if the metadata exists but is empty.
+ """
+ file_lines = self._read_files_distinfo() or self._read_files_egginfo()
+
+ def make_file(name, hash=None, size_str=None):
+ result = PackagePath(name)
+ result.hash = FileHash(hash) if hash else None
+ result.size = int(size_str) if size_str else None
+ result.dist = self
+ return result
+
+ return file_lines and list(starmap(make_file, csv.reader(file_lines)))
+
+ def _read_files_distinfo(self):
+ """
+ Read the lines of RECORD
+ """
+ text = self.read_text('RECORD')
+ return text and text.splitlines()
+
+ def _read_files_egginfo(self):
+ """
+ SOURCES.txt might contain literal commas, so wrap each line
+ in quotes.
+ """
+ text = self.read_text('SOURCES.txt')
+ return text and map('"{}"'.format, text.splitlines())
+
+ @property
+ def requires(self):
+ """Generated requirements specified for this Distribution"""
+ reqs = self._read_dist_info_reqs() or self._read_egg_info_reqs()
+ return reqs and list(reqs)
+
+ def _read_dist_info_reqs(self):
+ return self.metadata.get_all('Requires-Dist')
+
+ def _read_egg_info_reqs(self):
+ source = self.read_text('requires.txt')
+ return source and self._deps_from_requires_text(source)
+
+ @classmethod
+ def _deps_from_requires_text(cls, source):
+ section_pairs = cls._read_sections(source.splitlines())
+ sections = {
+ section: list(map(operator.itemgetter('line'), results))
+ for section, results in
+ itertools.groupby(section_pairs, operator.itemgetter('section'))
+ }
+ return cls._convert_egg_info_reqs_to_simple_reqs(sections)
+
+ @staticmethod
+ def _read_sections(lines):
+ section = None
+ for line in filter(None, lines):
+ section_match = re.match(r'\[(.*)\]$', line)
+ if section_match:
+ section = section_match.group(1)
+ continue
+ yield locals()
+
+ @staticmethod
+ def _convert_egg_info_reqs_to_simple_reqs(sections):
+ """
+ Historically, setuptools would solicit and store 'extra'
+ requirements, including those with environment markers,
+ in separate sections. More modern tools expect each
+ dependency to be defined separately, with any relevant
+ extras and environment markers attached directly to that
+ requirement. This method converts the former to the
+ latter. See _test_deps_from_requires_text for an example.
+ """
+ def make_condition(name):
+ return name and 'extra == "{name}"'.format(name=name)
+
+ def quoted_marker(section):
+ section = section or ''
+ extra, sep, markers = section.partition(':')
+ if extra and markers:
+ markers = f'({markers})'
+ conditions = list(filter(None, [markers, make_condition(extra)]))
+ return '; ' + ' and '.join(conditions) if conditions else ''
+
+ def url_req_space(req):
+ """
+ PEP 508 requires a space between the url_spec and the quoted_marker.
+ Ref python/importlib_metadata#357.
+ """
+ # '@' is uniquely indicative of a url_req.
+ return ' ' * ('@' in req)
+
+ for section, deps in sections.items():
+ for dep in deps:
+ space = url_req_space(dep)
+ yield dep + space + quoted_marker(section)
+
+
+class DistributionFinder(MetaPathFinder):
+ """
+ A MetaPathFinder capable of discovering installed distributions.
+ """
+
+ class Context:
+ """
+ Keyword arguments presented by the caller to
+ ``distributions()`` or ``Distribution.discover()``
+ to narrow the scope of a search for distributions
+ in all DistributionFinders.
+
+ Each DistributionFinder may expect any parameters
+ and should attempt to honor the canonical
+ parameters defined below when appropriate.
+ """
+
+ name = None
+ """
+ Specific name for which a distribution finder should match.
+ A name of ``None`` matches all distributions.
+ """
+
+ def __init__(self, **kwargs):
+ vars(self).update(kwargs)
+
+ @property
+ def path(self):
+ """
+ The path that a distribution finder should search.
+
+ Typically refers to Python package paths and defaults
+ to ``sys.path``.
+ """
+ return vars(self).get('path', sys.path)
+
+ @abc.abstractmethod
+ def find_distributions(self, context=Context()):
+ """
+ Find distributions.
+
+ Return an iterable of all Distribution instances capable of
+ loading the metadata for packages matching the ``context``,
+ a DistributionFinder.Context instance.
+ """
+
+
+class FastPath:
+ """
+ Micro-optimized class for searching a path for
+ children.
+ """
+
+ def __init__(self, root):
+ self.root = root
+ self.base = os.path.basename(self.root).lower()
+
+ def joinpath(self, child):
+ return pathlib.Path(self.root, child)
+
+ def children(self):
+ with suppress(Exception):
+ return os.listdir(self.root or '.')
+ with suppress(Exception):
+ return self.zip_children()
+ return []
+
+ def zip_children(self):
+ zip_path = zipfile.Path(self.root)
+ names = zip_path.root.namelist()
+ self.joinpath = zip_path.joinpath
+
+ return dict.fromkeys(
+ child.split(posixpath.sep, 1)[0]
+ for child in names
+ )
+
+ def is_egg(self, search):
+ base = self.base
+ return (
+ base == search.versionless_egg_name
+ or base.startswith(search.prefix)
+ and base.endswith('.egg'))
+
+ def search(self, name):
+ for child in self.children():
+ n_low = child.lower()
+ if (n_low in name.exact_matches
+ or n_low.startswith(name.prefix)
+ and n_low.endswith(name.suffixes)
+ # legacy case:
+ or self.is_egg(name) and n_low == 'egg-info'):
+ yield self.joinpath(child)
+
+
+class Prepared:
+ """
+ A prepared search for metadata on a possibly-named package.
+ """
+ normalized = ''
+ prefix = ''
+ suffixes = '.dist-info', '.egg-info'
+ exact_matches = [''][:0]
+ versionless_egg_name = ''
+
+ def __init__(self, name):
+ self.name = name
+ if name is None:
+ return
+ self.normalized = name.lower().replace('-', '_')
+ self.prefix = self.normalized + '-'
+ self.exact_matches = [
+ self.normalized + suffix for suffix in self.suffixes]
+ self.versionless_egg_name = self.normalized + '.egg'
+
+
+class MetadataPathFinder(DistributionFinder):
+ @classmethod
+ def find_distributions(cls, context=DistributionFinder.Context()):
+ """
+ Find distributions.
+
+ Return an iterable of all Distribution instances capable of
+ loading the metadata for packages matching ``context.name``
+ (or all names if ``None`` indicated) along the paths in the list
+ of directories ``context.path``.
+ """
+ found = cls._search_paths(context.name, context.path)
+ return map(PathDistribution, found)
+
+ @classmethod
+ def _search_paths(cls, name, paths):
+ """Find metadata directories in paths heuristically."""
+ return itertools.chain.from_iterable(
+ path.search(Prepared(name))
+ for path in map(FastPath, paths)
+ )
+
+
+class PathDistribution(Distribution):
+ def __init__(self, path):
+ """Construct a distribution from a path to the metadata directory.
+
+ :param path: A pathlib.Path or similar object supporting
+ .joinpath(), __div__, .parent, and .read_text().
+ """
+ self._path = path
+
+ def read_text(self, filename):
+ with suppress(FileNotFoundError, IsADirectoryError, KeyError,
+ NotADirectoryError, PermissionError):
+ return self._path.joinpath(filename).read_text(encoding='utf-8')
+ read_text.__doc__ = Distribution.read_text.__doc__
+
+ def locate_file(self, path):
+ return self._path.parent / path
+
+
+def distribution(distribution_name):
+ """Get the ``Distribution`` instance for the named package.
+
+ :param distribution_name: The name of the distribution package as a string.
+ :return: A ``Distribution`` instance (or subclass thereof).
+ """
+ return Distribution.from_name(distribution_name)
+
+
+def distributions(**kwargs):
+ """Get all ``Distribution`` instances in the current environment.
+
+ :return: An iterable of ``Distribution`` instances.
+ """
+ return Distribution.discover(**kwargs)
+
+
+def metadata(distribution_name):
+ """Get the metadata for the named package.
+
+ :param distribution_name: The name of the distribution package to query.
+ :return: An email.Message containing the parsed metadata.
+ """
+ return Distribution.from_name(distribution_name).metadata
+
+
+def version(distribution_name):
+ """Get the version string for the named package.
+
+ :param distribution_name: The name of the distribution package to query.
+ :return: The version string for the package as defined in the package's
+ "Version" metadata key.
+ """
+ return distribution(distribution_name).version
+
+
+def entry_points():
+ """Return EntryPoint objects for all installed packages.
+
+ :return: EntryPoint objects for all installed packages.
+ """
+ eps = itertools.chain.from_iterable(
+ dist.entry_points for dist in distributions())
+ by_group = operator.attrgetter('group')
+ ordered = sorted(eps, key=by_group)
+ grouped = itertools.groupby(ordered, by_group)
+ return {
+ group: tuple(eps)
+ for group, eps in grouped
+ }
+
+
+def files(distribution_name):
+ """Return a list of files for the named package.
+
+ :param distribution_name: The name of the distribution package to query.
+ :return: List of files composing the distribution.
+ """
+ return distribution(distribution_name).files
+
+
+def requires(distribution_name):
+ """
+ Return a list of requirements for the named package.
+
+ :return: An iterator of requirements, suitable for
+ packaging.requirement.Requirement.
+ """
+ return distribution(distribution_name).requires
diff --git a/contrib/tools/python3/src/Lib/importlib/resources.py b/contrib/tools/python3/src/Lib/importlib/resources.py
index 7d03311cf4..b803a01c91 100644
--- a/contrib/tools/python3/src/Lib/importlib/resources.py
+++ b/contrib/tools/python3/src/Lib/importlib/resources.py
@@ -1,15 +1,15 @@
import os
from . import abc as resources_abc
-from . import _common
-from ._common import as_file
+from . import _common
+from ._common import as_file
from contextlib import contextmanager, suppress
from importlib import import_module
from importlib.abc import ResourceLoader
from io import BytesIO, TextIOWrapper
from pathlib import Path
from types import ModuleType
-from typing import ContextManager, Iterable, Optional, Union
+from typing import ContextManager, Iterable, Optional, Union
from typing import cast
from typing.io import BinaryIO, TextIO
@@ -17,9 +17,9 @@ from typing.io import BinaryIO, TextIO
__all__ = [
'Package',
'Resource',
- 'as_file',
+ 'as_file',
'contents',
- 'files',
+ 'files',
'is_resource',
'open_binary',
'open_text',
@@ -33,23 +33,23 @@ Package = Union[str, ModuleType]
Resource = Union[str, os.PathLike]
-def _resolve(name) -> ModuleType:
- """If name is a string, resolve to a module."""
- if hasattr(name, '__spec__'):
- return name
- return import_module(name)
-
-
+def _resolve(name) -> ModuleType:
+ """If name is a string, resolve to a module."""
+ if hasattr(name, '__spec__'):
+ return name
+ return import_module(name)
+
+
def _get_package(package) -> ModuleType:
"""Take a package name or module object and return the module.
- If a name, the module is imported. If the resolved module
+ If a name, the module is imported. If the resolved module
object is not a package, raise an exception.
"""
- module = _resolve(package)
- if module.__spec__.submodule_search_locations is None:
- raise TypeError('{!r} is not a package'.format(package))
- return module
+ module = _resolve(package)
+ if module.__spec__.submodule_search_locations is None:
+ raise TypeError('{!r} is not a package'.format(package))
+ return module
def _normalize_path(path) -> str:
@@ -60,7 +60,7 @@ def _normalize_path(path) -> str:
parent, file_name = os.path.split(path)
if parent:
raise ValueError('{!r} must be only a file name'.format(path))
- return file_name
+ return file_name
def _get_resource_reader(
@@ -89,8 +89,8 @@ def open_binary(package: Package, resource: Resource) -> BinaryIO:
reader = _get_resource_reader(package)
if reader is not None:
return reader.open_resource(resource)
- absolute_package_path = os.path.abspath(
- package.__spec__.origin or 'non-existent file')
+ absolute_package_path = os.path.abspath(
+ package.__spec__.origin or 'non-existent file')
package_path = os.path.dirname(absolute_package_path)
full_path = os.path.join(package_path, resource)
try:
@@ -109,7 +109,7 @@ def open_binary(package: Package, resource: Resource) -> BinaryIO:
message = '{!r} resource not found in {!r}'.format(
resource, package_name)
raise FileNotFoundError(message)
- return BytesIO(data)
+ return BytesIO(data)
def open_text(package: Package,
@@ -117,8 +117,8 @@ def open_text(package: Package,
encoding: str = 'utf-8',
errors: str = 'strict') -> TextIO:
"""Return a file-like object opened for text reading of the resource."""
- return TextIOWrapper(
- open_binary(package, resource), encoding=encoding, errors=errors)
+ return TextIOWrapper(
+ open_binary(package, resource), encoding=encoding, errors=errors)
def read_binary(package: Package, resource: Resource) -> bytes:
@@ -140,16 +140,16 @@ def read_text(package: Package,
return fp.read()
-def files(package: Package) -> resources_abc.Traversable:
- """
- Get a Traversable resource from a package
- """
- return _common.from_package(_get_package(package))
-
-
-def path(
- package: Package, resource: Resource,
- ) -> 'ContextManager[Path]':
+def files(package: Package) -> resources_abc.Traversable:
+ """
+ Get a Traversable resource from a package
+ """
+ return _common.from_package(_get_package(package))
+
+
+def path(
+ package: Package, resource: Resource,
+ ) -> 'ContextManager[Path]':
"""A context manager providing a file path object to the resource.
If the resource does not already exist on its own on the file system,
@@ -158,25 +158,25 @@ def path(
raised if the file was deleted prior to the context manager
exiting).
"""
- reader = _get_resource_reader(_get_package(package))
- return (
- _path_from_reader(reader, resource)
- if reader else
- _common.as_file(files(package).joinpath(_normalize_path(resource)))
- )
-
-
-@contextmanager
-def _path_from_reader(reader, resource):
- norm_resource = _normalize_path(resource)
- with suppress(FileNotFoundError):
- yield Path(reader.resource_path(norm_resource))
- return
- opener_reader = reader.open_resource(norm_resource)
- with _common._tempfile(opener_reader.read, suffix=norm_resource) as res:
- yield res
-
-
+ reader = _get_resource_reader(_get_package(package))
+ return (
+ _path_from_reader(reader, resource)
+ if reader else
+ _common.as_file(files(package).joinpath(_normalize_path(resource)))
+ )
+
+
+@contextmanager
+def _path_from_reader(reader, resource):
+ norm_resource = _normalize_path(resource)
+ with suppress(FileNotFoundError):
+ yield Path(reader.resource_path(norm_resource))
+ return
+ opener_reader = reader.open_resource(norm_resource)
+ with _common._tempfile(opener_reader.read, suffix=norm_resource) as res:
+ yield res
+
+
def is_resource(package: Package, name: str) -> bool:
"""True if 'name' is a resource inside 'package'.
@@ -187,10 +187,10 @@ def is_resource(package: Package, name: str) -> bool:
reader = _get_resource_reader(package)
if reader is not None:
return reader.is_resource(name)
- package_contents = set(contents(package))
+ package_contents = set(contents(package))
if name not in package_contents:
return False
- return (_common.from_package(package) / name).is_file()
+ return (_common.from_package(package) / name).is_file()
def contents(package: Package) -> Iterable[str]:
@@ -205,11 +205,11 @@ def contents(package: Package) -> Iterable[str]:
if reader is not None:
return reader.contents()
# Is the package a namespace package? By definition, namespace packages
- # cannot have resources.
- namespace = (
- package.__spec__.origin is None or
- package.__spec__.origin == 'namespace'
- )
- if namespace or not package.__spec__.has_location:
+ # cannot have resources.
+ namespace = (
+ package.__spec__.origin is None or
+ package.__spec__.origin == 'namespace'
+ )
+ if namespace or not package.__spec__.has_location:
return ()
- return list(item.name for item in _common.from_package(package).iterdir())
+ return list(item.name for item in _common.from_package(package).iterdir())
diff --git a/contrib/tools/python3/src/Lib/importlib/util.py b/contrib/tools/python3/src/Lib/importlib/util.py
index 07a0f2db28..269a6fa930 100644
--- a/contrib/tools/python3/src/Lib/importlib/util.py
+++ b/contrib/tools/python3/src/Lib/importlib/util.py
@@ -29,8 +29,8 @@ def resolve_name(name, package):
if not name.startswith('.'):
return name
elif not package:
- raise ImportError(f'no package specified for {repr(name)} '
- '(required for relative module names)')
+ raise ImportError(f'no package specified for {repr(name)} '
+ '(required for relative module names)')
level = 0
for character in name:
if character != '.':
diff --git a/contrib/tools/python3/src/Lib/inspect.py b/contrib/tools/python3/src/Lib/inspect.py
index 626e408e9f..ffe0a781f7 100644
--- a/contrib/tools/python3/src/Lib/inspect.py
+++ b/contrib/tools/python3/src/Lib/inspect.py
@@ -32,7 +32,7 @@ __author__ = ('Ka-Ping Yee <ping@lfw.org>',
'Yury Selivanov <yselivanov@sprymix.com>')
import abc
-import ast
+import ast
import dis
import collections.abc
import enum
@@ -111,7 +111,7 @@ def ismethoddescriptor(object):
def isdatadescriptor(object):
"""Return true if the object is a data descriptor.
- Data descriptors have a __set__ or a __delete__ attribute. Examples are
+ Data descriptors have a __set__ or a __delete__ attribute. Examples are
properties (defined in Python) and getsets and members (defined in C).
Typically, data descriptors will also have __name__ and __doc__ attributes
(properties, getsets, and members have both of these attributes), but this
@@ -120,7 +120,7 @@ def isdatadescriptor(object):
# mutual exclusion
return False
tp = type(object)
- return hasattr(tp, "__set__") or hasattr(tp, "__delete__")
+ return hasattr(tp, "__set__") or hasattr(tp, "__delete__")
if hasattr(types, 'MemberDescriptorType'):
# CPython and equivalent
@@ -169,38 +169,38 @@ def isfunction(object):
__kwdefaults__ dict of keyword only parameters with defaults"""
return isinstance(object, types.FunctionType)
-def _has_code_flag(f, flag):
- """Return true if ``f`` is a function (or a method or functools.partial
- wrapper wrapping a function) whose code object has the given ``flag``
- set in its flags."""
- while ismethod(f):
- f = f.__func__
- f = functools._unwrap_partial(f)
- if not isfunction(f):
- return False
- return bool(f.__code__.co_flags & flag)
-
-def isgeneratorfunction(obj):
+def _has_code_flag(f, flag):
+ """Return true if ``f`` is a function (or a method or functools.partial
+ wrapper wrapping a function) whose code object has the given ``flag``
+ set in its flags."""
+ while ismethod(f):
+ f = f.__func__
+ f = functools._unwrap_partial(f)
+ if not isfunction(f):
+ return False
+ return bool(f.__code__.co_flags & flag)
+
+def isgeneratorfunction(obj):
"""Return true if the object is a user-defined generator function.
Generator function objects provide the same attributes as functions.
See help(isfunction) for a list of attributes."""
- return _has_code_flag(obj, CO_GENERATOR)
+ return _has_code_flag(obj, CO_GENERATOR)
-def iscoroutinefunction(obj):
+def iscoroutinefunction(obj):
"""Return true if the object is a coroutine function.
Coroutine functions are defined with "async def" syntax.
"""
- return _has_code_flag(obj, CO_COROUTINE)
+ return _has_code_flag(obj, CO_COROUTINE)
-def isasyncgenfunction(obj):
+def isasyncgenfunction(obj):
"""Return true if the object is an asynchronous generator function.
Asynchronous generator functions are defined with "async def"
syntax and have "yield" expressions in their body.
"""
- return _has_code_flag(obj, CO_ASYNC_GENERATOR)
+ return _has_code_flag(obj, CO_ASYNC_GENERATOR)
def isasyncgen(object):
"""Return true if the object is an asynchronous generator."""
@@ -273,11 +273,11 @@ def iscode(object):
| 16=nested | 32=generator | 64=nofree | 128=coroutine
| 256=iterable_coroutine | 512=async_generator
co_freevars tuple of names of free variables
- co_posonlyargcount number of positional only arguments
+ co_posonlyargcount number of positional only arguments
co_kwonlyargcount number of keyword only arguments (not including ** arg)
co_lnotab encoded mapping of line numbers to bytecode indices
co_name name with which this code object was defined
- co_names tuple of names other than arguments and function locals
+ co_names tuple of names other than arguments and function locals
co_nlocals number of local variables
co_stacksize virtual machine stack space required
co_varnames tuple of names of arguments and local variables"""
@@ -589,10 +589,10 @@ def _finddoc(obj):
cls = obj.__objclass__
if getattr(cls, name) is not obj:
return None
- if ismemberdescriptor(obj):
- slots = getattr(cls, '__slots__', None)
- if isinstance(slots, dict) and name in slots:
- return slots[name]
+ if ismemberdescriptor(obj):
+ slots = getattr(cls, '__slots__', None)
+ if isinstance(slots, dict) and name in slots:
+ return slots[name]
else:
return None
for base in cls.__mro__:
@@ -660,9 +660,9 @@ def getfile(object):
raise TypeError('{!r} is a built-in module'.format(object))
if isclass(object):
if hasattr(object, '__module__'):
- module = sys.modules.get(object.__module__)
- if getattr(module, '__file__', None) is not None:
- return module.__file__
+ module = sys.modules.get(object.__module__)
+ if getattr(module, '__file__', None) is not None:
+ return module.__file__
raise TypeError('{!r} is a built-in class'.format(object))
if ismethod(object):
object = object.__func__
@@ -736,13 +736,13 @@ def getmodule(object, _filename=None):
# Try the cache again with the absolute file name
try:
file = getabsfile(object, _filename)
- except (TypeError, FileNotFoundError):
+ except (TypeError, FileNotFoundError):
return None
if file in modulesbyfile:
return sys.modules.get(modulesbyfile[file])
# Update the filename to module name cache and check yet again
# Copy sys.modules in order to cope with changes while iterating
- for modname, module in sys.modules.copy().items():
+ for modname, module in sys.modules.copy().items():
if ismodule(module) and hasattr(module, '__file__'):
f = module.__file__
if f == _filesbymodname.get(modname, None):
@@ -770,42 +770,42 @@ def getmodule(object, _filename=None):
if builtinobject is object:
return builtin
-
-class ClassFoundException(Exception):
- pass
-
-
-class _ClassFinder(ast.NodeVisitor):
-
- def __init__(self, qualname):
- self.stack = []
- self.qualname = qualname
-
- def visit_FunctionDef(self, node):
- self.stack.append(node.name)
- self.stack.append('<locals>')
- self.generic_visit(node)
- self.stack.pop()
- self.stack.pop()
-
- visit_AsyncFunctionDef = visit_FunctionDef
-
- def visit_ClassDef(self, node):
- self.stack.append(node.name)
- if self.qualname == '.'.join(self.stack):
- # Return the decorator for the class if present
- if node.decorator_list:
- line_number = node.decorator_list[0].lineno
- else:
- line_number = node.lineno
-
- # decrement by one since lines starts with indexing by zero
- line_number -= 1
- raise ClassFoundException(line_number)
- self.generic_visit(node)
- self.stack.pop()
-
-
+
+class ClassFoundException(Exception):
+ pass
+
+
+class _ClassFinder(ast.NodeVisitor):
+
+ def __init__(self, qualname):
+ self.stack = []
+ self.qualname = qualname
+
+ def visit_FunctionDef(self, node):
+ self.stack.append(node.name)
+ self.stack.append('<locals>')
+ self.generic_visit(node)
+ self.stack.pop()
+ self.stack.pop()
+
+ visit_AsyncFunctionDef = visit_FunctionDef
+
+ def visit_ClassDef(self, node):
+ self.stack.append(node.name)
+ if self.qualname == '.'.join(self.stack):
+ # Return the decorator for the class if present
+ if node.decorator_list:
+ line_number = node.decorator_list[0].lineno
+ else:
+ line_number = node.lineno
+
+ # decrement by one since lines starts with indexing by zero
+ line_number -= 1
+ raise ClassFoundException(line_number)
+ self.generic_visit(node)
+ self.stack.pop()
+
+
def findsource(object):
"""Return the entire source file and starting line number for an object.
@@ -838,15 +838,15 @@ def findsource(object):
return lines, 0
if isclass(object):
- qualname = object.__qualname__
- source = ''.join(lines)
- tree = ast.parse(source)
- class_finder = _ClassFinder(qualname)
- try:
- class_finder.visit(tree)
- except ClassFoundException as e:
- line_number = e.args[0]
- return lines, line_number
+ qualname = object.__qualname__
+ source = ''.join(lines)
+ tree = ast.parse(source)
+ class_finder = _ClassFinder(qualname)
+ try:
+ class_finder.visit(tree)
+ except ClassFoundException as e:
+ line_number = e.args[0]
+ return lines, line_number
else:
raise OSError('could not find class definition')
@@ -864,12 +864,12 @@ def findsource(object):
lnum = object.co_firstlineno - 1
pat = re.compile(r'^(\s*def\s)|(\s*async\s+def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)')
while lnum > 0:
- try:
- line = lines[lnum]
- except IndexError:
- raise OSError('lineno is out of bounds')
- if pat.match(line):
- break
+ try:
+ line = lines[lnum]
+ except IndexError:
+ raise OSError('lineno is out of bounds')
+ if pat.match(line):
+ break
lnum = lnum - 1
return lines, lnum
raise OSError('could not find code object')
@@ -931,7 +931,7 @@ class BlockFinder:
self.indecorator = False
self.decoratorhasargs = False
self.last = 1
- self.body_col0 = None
+ self.body_col0 = None
def tokeneater(self, type, token, srowcol, erowcol, line):
if not self.started and not self.indecorator:
@@ -963,8 +963,8 @@ class BlockFinder:
elif self.passline:
pass
elif type == tokenize.INDENT:
- if self.body_col0 is None and self.started:
- self.body_col0 = erowcol[1]
+ if self.body_col0 is None and self.started:
+ self.body_col0 = erowcol[1]
self.indent = self.indent + 1
self.passline = True
elif type == tokenize.DEDENT:
@@ -974,10 +974,10 @@ class BlockFinder:
# not e.g. for "if: else:" or "try: finally:" blocks)
if self.indent <= 0:
raise EndOfBlock
- elif type == tokenize.COMMENT:
- if self.body_col0 is not None and srowcol[1] >= self.body_col0:
- # Include comments if indented at least as much as the block
- self.last = srowcol[0]
+ elif type == tokenize.COMMENT:
+ if self.body_col0 is not None and srowcol[1] >= self.body_col0:
+ # Include comments if indented at least as much as the block
+ self.last = srowcol[0]
elif self.indent == 0 and type not in (tokenize.COMMENT, tokenize.NL):
# any other token on the same indentation level end the previous
# block as well, except the pseudo-tokens COMMENT and NL.
@@ -1049,7 +1049,7 @@ def getclasstree(classes, unique=False):
for c in classes:
if c.__bases__:
for parent in c.__bases__:
- if parent not in children:
+ if parent not in children:
children[parent] = []
if c not in children[parent]:
children[parent].append(c)
@@ -1074,7 +1074,7 @@ def getargs(co):
if not iscode(co):
raise TypeError('{!r} is not a code object'.format(co))
- names = co.co_varnames
+ names = co.co_varnames
nargs = co.co_argcount
nkwargs = co.co_kwonlyargcount
args = list(names[:nargs])
@@ -1089,7 +1089,7 @@ def getargs(co):
varkw = None
if co.co_flags & CO_VARKEYWORDS:
varkw = co.co_varnames[nargs]
- return Arguments(args + kwonlyargs, varargs, varkw)
+ return Arguments(args + kwonlyargs, varargs, varkw)
ArgSpec = namedtuple('ArgSpec', 'args varargs keywords defaults')
@@ -1120,7 +1120,7 @@ def getargspec(func):
getfullargspec(func)
if kwonlyargs or ann:
raise ValueError("Function has keyword-only parameters or annotations"
- ", use inspect.signature() API which can support them")
+ ", use inspect.signature() API which can support them")
return ArgSpec(args, varargs, varkw, defaults)
FullArgSpec = namedtuple('FullArgSpec',
@@ -1173,7 +1173,7 @@ def getfullargspec(func):
args = []
varargs = None
varkw = None
- posonlyargs = []
+ posonlyargs = []
kwonlyargs = []
annotations = {}
defaults = ()
@@ -1187,9 +1187,9 @@ def getfullargspec(func):
name = param.name
if kind is _POSITIONAL_ONLY:
- posonlyargs.append(name)
- if param.default is not param.empty:
- defaults += (param.default,)
+ posonlyargs.append(name)
+ if param.default is not param.empty:
+ defaults += (param.default,)
elif kind is _POSITIONAL_OR_KEYWORD:
args.append(name)
if param.default is not param.empty:
@@ -1214,7 +1214,7 @@ def getfullargspec(func):
# compatibility with 'func.__defaults__'
defaults = None
- return FullArgSpec(posonlyargs + args, varargs, varkw, defaults,
+ return FullArgSpec(posonlyargs + args, varargs, varkw, defaults,
kwonlyargs, kwdefaults, annotations)
@@ -1233,8 +1233,8 @@ def getargvalues(frame):
def formatannotation(annotation, base_module=None):
if getattr(annotation, '__module__', None) == 'typing':
return repr(annotation).replace('typing.', '')
- if isinstance(annotation, types.GenericAlias):
- return str(annotation)
+ if isinstance(annotation, types.GenericAlias):
+ return str(annotation)
if isinstance(annotation, type):
if annotation.__module__ in ('builtins', base_module):
return annotation.__qualname__
@@ -1365,7 +1365,7 @@ def _too_many(f_name, args, kwonly, varargs, defcount, given, values):
(f_name, sig, "s" if plural else "", given, kwonly_sig,
"was" if given == 1 and not kwonly_given else "were"))
-def getcallargs(func, /, *positional, **named):
+def getcallargs(func, /, *positional, **named):
"""Get the mapping of arguments to values.
A dict is returned, with keys the function argument names (including the
@@ -2035,7 +2035,7 @@ def _signature_fromstr(cls, obj, s, skip_bound_arg=True):
def parse_name(node):
assert isinstance(node, ast.arg)
- if node.annotation is not None:
+ if node.annotation is not None:
raise ValueError("Annotations are not currently supported")
return node.arg
@@ -2048,8 +2048,8 @@ def _signature_fromstr(cls, obj, s, skip_bound_arg=True):
except NameError:
raise RuntimeError()
- if isinstance(value, (str, int, float, bytes, bool, type(None))):
- return ast.Constant(value)
+ if isinstance(value, (str, int, float, bytes, bool, type(None))):
+ return ast.Constant(value)
raise RuntimeError()
class RewriteSymbolics(ast.NodeTransformer):
@@ -2149,7 +2149,7 @@ def _signature_from_builtin(cls, func, skip_bound_arg=True):
return _signature_fromstr(cls, func, s, skip_bound_arg)
-def _signature_from_function(cls, func, skip_bound_arg=True):
+def _signature_from_function(cls, func, skip_bound_arg=True):
"""Private helper: constructs Signature for the given python function."""
is_duck_function = False
@@ -2161,20 +2161,20 @@ def _signature_from_function(cls, func, skip_bound_arg=True):
# of pure function:
raise TypeError('{!r} is not a Python function'.format(func))
- s = getattr(func, "__text_signature__", None)
- if s:
- return _signature_fromstr(cls, func, s, skip_bound_arg)
-
+ s = getattr(func, "__text_signature__", None)
+ if s:
+ return _signature_fromstr(cls, func, s, skip_bound_arg)
+
Parameter = cls._parameter_cls
# Parameter information.
func_code = func.__code__
pos_count = func_code.co_argcount
arg_names = func_code.co_varnames
- posonly_count = func_code.co_posonlyargcount
- positional = arg_names[:pos_count]
+ posonly_count = func_code.co_posonlyargcount
+ positional = arg_names[:pos_count]
keyword_only_count = func_code.co_kwonlyargcount
- keyword_only = arg_names[pos_count:pos_count + keyword_only_count]
+ keyword_only = arg_names[pos_count:pos_count + keyword_only_count]
annotations = func.__annotations__
defaults = func.__defaults__
kwdefaults = func.__kwdefaults__
@@ -2186,27 +2186,27 @@ def _signature_from_function(cls, func, skip_bound_arg=True):
parameters = []
- non_default_count = pos_count - pos_default_count
- posonly_left = posonly_count
-
+ non_default_count = pos_count - pos_default_count
+ posonly_left = posonly_count
+
# Non-keyword-only parameters w/o defaults.
for name in positional[:non_default_count]:
- kind = _POSITIONAL_ONLY if posonly_left else _POSITIONAL_OR_KEYWORD
+ kind = _POSITIONAL_ONLY if posonly_left else _POSITIONAL_OR_KEYWORD
annotation = annotations.get(name, _empty)
parameters.append(Parameter(name, annotation=annotation,
- kind=kind))
- if posonly_left:
- posonly_left -= 1
+ kind=kind))
+ if posonly_left:
+ posonly_left -= 1
# ... w/ defaults.
for offset, name in enumerate(positional[non_default_count:]):
- kind = _POSITIONAL_ONLY if posonly_left else _POSITIONAL_OR_KEYWORD
+ kind = _POSITIONAL_ONLY if posonly_left else _POSITIONAL_OR_KEYWORD
annotation = annotations.get(name, _empty)
parameters.append(Parameter(name, annotation=annotation,
- kind=kind,
+ kind=kind,
default=defaults[offset]))
- if posonly_left:
- posonly_left -= 1
+ if posonly_left:
+ posonly_left -= 1
# *args
if func_code.co_flags & CO_VARARGS:
@@ -2252,18 +2252,18 @@ def _signature_from_callable(obj, *,
callable objects.
"""
- _get_signature_of = functools.partial(_signature_from_callable,
- follow_wrapper_chains=follow_wrapper_chains,
- skip_bound_arg=skip_bound_arg,
- sigcls=sigcls)
-
+ _get_signature_of = functools.partial(_signature_from_callable,
+ follow_wrapper_chains=follow_wrapper_chains,
+ skip_bound_arg=skip_bound_arg,
+ sigcls=sigcls)
+
if not callable(obj):
raise TypeError('{!r} is not a callable object'.format(obj))
if isinstance(obj, types.MethodType):
# In this case we skip the first parameter of the underlying
# function (usually `self` or `cls`).
- sig = _get_signature_of(obj.__func__)
+ sig = _get_signature_of(obj.__func__)
if skip_bound_arg:
return _signature_bound_method(sig)
@@ -2277,7 +2277,7 @@ def _signature_from_callable(obj, *,
# If the unwrapped object is a *method*, we might want to
# skip its first parameter (self).
# See test_signature_wrapped_bound_method for details.
- return _get_signature_of(obj)
+ return _get_signature_of(obj)
try:
sig = obj.__signature__
@@ -2304,7 +2304,7 @@ def _signature_from_callable(obj, *,
# (usually `self`, or `cls`) will not be passed
# automatically (as for boundmethods)
- wrapped_sig = _get_signature_of(partialmethod.func)
+ wrapped_sig = _get_signature_of(partialmethod.func)
sig = _signature_get_partial(wrapped_sig, partialmethod, (None,))
first_wrapped_param = tuple(wrapped_sig.parameters.values())[0]
@@ -2322,15 +2322,15 @@ def _signature_from_callable(obj, *,
if isfunction(obj) or _signature_is_functionlike(obj):
# If it's a pure Python function, or an object that is duck type
# of a Python function (Cython functions, for instance), then:
- return _signature_from_function(sigcls, obj,
- skip_bound_arg=skip_bound_arg)
+ return _signature_from_function(sigcls, obj,
+ skip_bound_arg=skip_bound_arg)
if _signature_is_builtin(obj):
return _signature_from_builtin(sigcls, obj,
skip_bound_arg=skip_bound_arg)
if isinstance(obj, functools.partial):
- wrapped_sig = _get_signature_of(obj.func)
+ wrapped_sig = _get_signature_of(obj.func)
return _signature_get_partial(wrapped_sig, obj)
sig = None
@@ -2341,26 +2341,26 @@ def _signature_from_callable(obj, *,
# in its metaclass
call = _signature_get_user_defined_method(type(obj), '__call__')
if call is not None:
- sig = _get_signature_of(call)
+ sig = _get_signature_of(call)
else:
- factory_method = None
+ factory_method = None
new = _signature_get_user_defined_method(obj, '__new__')
- init = _signature_get_user_defined_method(obj, '__init__')
- # Now we check if the 'obj' class has an own '__new__' method
- if '__new__' in obj.__dict__:
- factory_method = new
- # or an own '__init__' method
- elif '__init__' in obj.__dict__:
- factory_method = init
- # If not, we take inherited '__new__' or '__init__', if present
- elif new is not None:
- factory_method = new
- elif init is not None:
- factory_method = init
-
- if factory_method is not None:
- sig = _get_signature_of(factory_method)
-
+ init = _signature_get_user_defined_method(obj, '__init__')
+ # Now we check if the 'obj' class has an own '__new__' method
+ if '__new__' in obj.__dict__:
+ factory_method = new
+ # or an own '__init__' method
+ elif '__init__' in obj.__dict__:
+ factory_method = init
+ # If not, we take inherited '__new__' or '__init__', if present
+ elif new is not None:
+ factory_method = new
+ elif init is not None:
+ factory_method = init
+
+ if factory_method is not None:
+ sig = _get_signature_of(factory_method)
+
if sig is None:
# At this point we know, that `obj` is a class, with no user-
# defined '__init__', '__new__', or class-level '__call__'
@@ -2392,7 +2392,7 @@ def _signature_from_callable(obj, *,
if (obj.__init__ is object.__init__ and
obj.__new__ is object.__new__):
# Return a signature of 'object' builtin.
- return sigcls.from_callable(object)
+ return sigcls.from_callable(object)
else:
raise ValueError(
'no signature found for builtin type {!r}'.format(obj))
@@ -2405,7 +2405,7 @@ def _signature_from_callable(obj, *,
call = _signature_get_user_defined_method(type(obj), '__call__')
if call is not None:
try:
- sig = _get_signature_of(call)
+ sig = _get_signature_of(call)
except ValueError as ex:
msg = 'no signature found for {!r}'.format(obj)
raise ValueError(msg) from ex
@@ -2444,9 +2444,9 @@ class _ParameterKind(enum.IntEnum):
def __str__(self):
return self._name_
- @property
- def description(self):
- return _PARAM_NAME_MAPPING[self]
+ @property
+ def description(self):
+ return _PARAM_NAME_MAPPING[self]
_POSITIONAL_ONLY = _ParameterKind.POSITIONAL_ONLY
_POSITIONAL_OR_KEYWORD = _ParameterKind.POSITIONAL_OR_KEYWORD
@@ -2503,7 +2503,7 @@ class Parameter:
if default is not _empty:
if self._kind in (_VAR_POSITIONAL, _VAR_KEYWORD):
msg = '{} parameters cannot have default values'
- msg = msg.format(self._kind.description)
+ msg = msg.format(self._kind.description)
raise ValueError(msg)
self._default = default
self._annotation = annotation
@@ -2525,7 +2525,7 @@ class Parameter:
'implicit arguments must be passed as '
'positional or keyword arguments, not {}'
)
- msg = msg.format(self._kind.description)
+ msg = msg.format(self._kind.description)
raise ValueError(msg)
self._kind = _POSITIONAL_ONLY
name = 'implicit{}'.format(name[1:])
@@ -2624,7 +2624,7 @@ class BoundArguments:
Has the following public attributes:
- * arguments : dict
+ * arguments : dict
An ordered mutable mapping of parameters' names to arguments' values.
Does not contain arguments' default values.
* signature : Signature
@@ -2724,7 +2724,7 @@ class BoundArguments:
# Signature.bind_partial().
continue
new_arguments.append((name, val))
- self.arguments = dict(new_arguments)
+ self.arguments = dict(new_arguments)
def __eq__(self, other):
if self is other:
@@ -2792,7 +2792,7 @@ class Signature:
top_kind = _POSITIONAL_ONLY
kind_defaults = False
- for param in parameters:
+ for param in parameters:
kind = param.kind
name = param.name
@@ -2801,8 +2801,8 @@ class Signature:
'wrong parameter order: {} parameter before {} '
'parameter'
)
- msg = msg.format(top_kind.description,
- kind.description)
+ msg = msg.format(top_kind.description,
+ kind.description)
raise ValueError(msg)
elif kind > top_kind:
kind_defaults = False
@@ -2827,7 +2827,7 @@ class Signature:
params[name] = param
else:
- params = OrderedDict((param.name, param) for param in parameters)
+ params = OrderedDict((param.name, param) for param in parameters)
self._parameters = types.MappingProxyType(params)
self._return_annotation = return_annotation
@@ -2909,7 +2909,7 @@ class Signature:
def _bind(self, args, kwargs, *, partial=False):
"""Private method. Don't use directly."""
- arguments = {}
+ arguments = {}
parameters = iter(self.parameters.values())
parameters_ex = ()
@@ -2980,7 +2980,7 @@ class Signature:
arguments[param.name] = tuple(values)
break
- if param.name in kwargs and param.kind != _POSITIONAL_ONLY:
+ if param.name in kwargs and param.kind != _POSITIONAL_ONLY:
raise TypeError(
'multiple values for argument {arg!r}'.format(
arg=param.name)) from None
@@ -3037,19 +3037,19 @@ class Signature:
return self._bound_arguments_cls(self, arguments)
- def bind(self, /, *args, **kwargs):
+ def bind(self, /, *args, **kwargs):
"""Get a BoundArguments object, that maps the passed `args`
and `kwargs` to the function's signature. Raises `TypeError`
if the passed arguments can not be bound.
"""
- return self._bind(args, kwargs)
+ return self._bind(args, kwargs)
- def bind_partial(self, /, *args, **kwargs):
+ def bind_partial(self, /, *args, **kwargs):
"""Get a BoundArguments object, that partially maps the
passed `args` and `kwargs` to the function's signature.
Raises `TypeError` if the passed arguments can not be bound.
"""
- return self._bind(args, kwargs, partial=True)
+ return self._bind(args, kwargs, partial=True)
def __reduce__(self):
return (type(self),
@@ -3138,7 +3138,7 @@ def _main():
type(exc).__name__,
exc)
print(msg, file=sys.stderr)
- sys.exit(2)
+ sys.exit(2)
if has_attrs:
parts = attrs.split(".")
@@ -3148,7 +3148,7 @@ def _main():
if module.__name__ in sys.builtin_module_names:
print("Can't get info for builtin modules.", file=sys.stderr)
- sys.exit(1)
+ sys.exit(1)
if args.details:
print('Target: {}'.format(target))
diff --git a/contrib/tools/python3/src/Lib/io.py b/contrib/tools/python3/src/Lib/io.py
index 47afaeb664..fbce6efc01 100644
--- a/contrib/tools/python3/src/Lib/io.py
+++ b/contrib/tools/python3/src/Lib/io.py
@@ -41,8 +41,8 @@ __author__ = ("Guido van Rossum <guido@python.org>, "
"Amaury Forgeot d'Arc <amauryfa@gmail.com>, "
"Benjamin Peterson <benjamin@python.org>")
-__all__ = ["BlockingIOError", "open", "open_code", "IOBase", "RawIOBase",
- "FileIO", "BytesIO", "StringIO", "BufferedIOBase",
+__all__ = ["BlockingIOError", "open", "open_code", "IOBase", "RawIOBase",
+ "FileIO", "BytesIO", "StringIO", "BufferedIOBase",
"BufferedReader", "BufferedWriter", "BufferedRWPair",
"BufferedRandom", "TextIOBase", "TextIOWrapper",
"UnsupportedOperation", "SEEK_SET", "SEEK_CUR", "SEEK_END"]
@@ -52,7 +52,7 @@ import _io
import abc
from _io import (DEFAULT_BUFFER_SIZE, BlockingIOError, UnsupportedOperation,
- open, open_code, FileIO, BytesIO, StringIO, BufferedReader,
+ open, open_code, FileIO, BytesIO, StringIO, BufferedReader,
BufferedWriter, BufferedRWPair, BufferedRandom,
IncrementalNewlineDecoder, TextIOWrapper)
diff --git a/contrib/tools/python3/src/Lib/ipaddress.py b/contrib/tools/python3/src/Lib/ipaddress.py
index d61cc08a67..6cb92ed552 100644
--- a/contrib/tools/python3/src/Lib/ipaddress.py
+++ b/contrib/tools/python3/src/Lib/ipaddress.py
@@ -488,7 +488,7 @@ class _IPAddressBase:
"""
# int allows a leading +/- as well as surrounding whitespace,
# so we ensure that isn't the case
- if not (prefixlen_str.isascii() and prefixlen_str.isdigit()):
+ if not (prefixlen_str.isascii() and prefixlen_str.isdigit()):
cls._report_invalid_netmask(prefixlen_str)
try:
prefixlen = int(prefixlen_str)
@@ -532,36 +532,36 @@ class _IPAddressBase:
except ValueError:
cls._report_invalid_netmask(ip_str)
- @classmethod
- def _split_addr_prefix(cls, address):
- """Helper function to parse address of Network/Interface.
-
- Arg:
- address: Argument of Network/Interface.
-
- Returns:
- (addr, prefix) tuple.
- """
- # a packed address or integer
- if isinstance(address, (bytes, int)):
- return address, cls._max_prefixlen
-
- if not isinstance(address, tuple):
- # Assume input argument to be string or any object representation
- # which converts into a formatted IP prefix string.
- address = _split_optional_netmask(address)
-
- # Constructing from a tuple (addr, [mask])
- if len(address) > 1:
- return address
- return address[0], cls._max_prefixlen
-
+ @classmethod
+ def _split_addr_prefix(cls, address):
+ """Helper function to parse address of Network/Interface.
+
+ Arg:
+ address: Argument of Network/Interface.
+
+ Returns:
+ (addr, prefix) tuple.
+ """
+ # a packed address or integer
+ if isinstance(address, (bytes, int)):
+ return address, cls._max_prefixlen
+
+ if not isinstance(address, tuple):
+ # Assume input argument to be string or any object representation
+ # which converts into a formatted IP prefix string.
+ address = _split_optional_netmask(address)
+
+ # Constructing from a tuple (addr, [mask])
+ if len(address) > 1:
+ return address
+ return address[0], cls._max_prefixlen
+
def __reduce__(self):
return self.__class__, (str(self),)
-_address_fmt_re = None
-
+_address_fmt_re = None
+
@functools.total_ordering
class _BaseAddress(_IPAddressBase):
@@ -620,56 +620,56 @@ class _BaseAddress(_IPAddressBase):
def __reduce__(self):
return self.__class__, (self._ip,)
- def __format__(self, fmt):
- """Returns an IP address as a formatted string.
-
- Supported presentation types are:
- 's': returns the IP address as a string (default)
- 'b': converts to binary and returns a zero-padded string
- 'X' or 'x': converts to upper- or lower-case hex and returns a zero-padded string
- 'n': the same as 'b' for IPv4 and 'x' for IPv6
-
- For binary and hex presentation types, the alternate form specifier
- '#' and the grouping option '_' are supported.
- """
-
- # Support string formatting
- if not fmt or fmt[-1] == 's':
- return format(str(self), fmt)
-
- # From here on down, support for 'bnXx'
- global _address_fmt_re
- if _address_fmt_re is None:
- import re
- _address_fmt_re = re.compile('(#?)(_?)([xbnX])')
-
- m = _address_fmt_re.fullmatch(fmt)
- if not m:
- return super().__format__(fmt)
-
- alternate, grouping, fmt_base = m.groups()
-
- # Set some defaults
- if fmt_base == 'n':
- if self._version == 4:
- fmt_base = 'b' # Binary is default for ipv4
- else:
- fmt_base = 'x' # Hex is default for ipv6
-
- if fmt_base == 'b':
- padlen = self._max_prefixlen
- else:
- padlen = self._max_prefixlen // 4
-
- if grouping:
- padlen += padlen // 4 - 1
-
- if alternate:
- padlen += 2 # 0b or 0x
-
- return format(int(self), f'{alternate}0{padlen}{grouping}{fmt_base}')
-
-
+ def __format__(self, fmt):
+ """Returns an IP address as a formatted string.
+
+ Supported presentation types are:
+ 's': returns the IP address as a string (default)
+ 'b': converts to binary and returns a zero-padded string
+ 'X' or 'x': converts to upper- or lower-case hex and returns a zero-padded string
+ 'n': the same as 'b' for IPv4 and 'x' for IPv6
+
+ For binary and hex presentation types, the alternate form specifier
+ '#' and the grouping option '_' are supported.
+ """
+
+ # Support string formatting
+ if not fmt or fmt[-1] == 's':
+ return format(str(self), fmt)
+
+ # From here on down, support for 'bnXx'
+ global _address_fmt_re
+ if _address_fmt_re is None:
+ import re
+ _address_fmt_re = re.compile('(#?)(_?)([xbnX])')
+
+ m = _address_fmt_re.fullmatch(fmt)
+ if not m:
+ return super().__format__(fmt)
+
+ alternate, grouping, fmt_base = m.groups()
+
+ # Set some defaults
+ if fmt_base == 'n':
+ if self._version == 4:
+ fmt_base = 'b' # Binary is default for ipv4
+ else:
+ fmt_base = 'x' # Hex is default for ipv6
+
+ if fmt_base == 'b':
+ padlen = self._max_prefixlen
+ else:
+ padlen = self._max_prefixlen // 4
+
+ if grouping:
+ padlen += padlen // 4 - 1
+
+ if alternate:
+ padlen += 2 # 0b or 0x
+
+ return format(int(self), f'{alternate}0{padlen}{grouping}{fmt_base}')
+
+
@functools.total_ordering
class _BaseNetwork(_IPAddressBase):
"""A generic IP network object.
@@ -748,7 +748,7 @@ class _BaseNetwork(_IPAddressBase):
# dealing with another address
else:
# address
- return other._ip & self.netmask._ip == self.network_address._ip
+ return other._ip & self.netmask._ip == self.network_address._ip
def overlaps(self, other):
"""Tell if self is partly contained in other."""
@@ -757,14 +757,14 @@ class _BaseNetwork(_IPAddressBase):
other.network_address in self or (
other.broadcast_address in self)))
- @functools.cached_property
+ @functools.cached_property
def broadcast_address(self):
- return self._address_class(int(self.network_address) |
- int(self.hostmask))
+ return self._address_class(int(self.network_address) |
+ int(self.hostmask))
- @functools.cached_property
+ @functools.cached_property
def hostmask(self):
- return self._address_class(int(self.netmask) ^ self._ALL_ONES)
+ return self._address_class(int(self.netmask) ^ self._ALL_ONES)
@property
def with_prefixlen(self):
@@ -1158,8 +1158,8 @@ class _BaseV4:
if arg not in cls._netmask_cache:
if isinstance(arg, int):
prefixlen = arg
- if not (0 <= prefixlen <= cls._max_prefixlen):
- cls._report_invalid_netmask(prefixlen)
+ if not (0 <= prefixlen <= cls._max_prefixlen):
+ cls._report_invalid_netmask(prefixlen)
else:
try:
# Check for a netmask in prefix length form
@@ -1215,7 +1215,7 @@ class _BaseV4:
if not octet_str:
raise ValueError("Empty octet not permitted")
# Whitelist the characters, since int() allows a lot of bizarre stuff.
- if not (octet_str.isascii() and octet_str.isdigit()):
+ if not (octet_str.isascii() and octet_str.isdigit()):
msg = "Only decimal digits permitted in %r"
raise ValueError(msg % octet_str)
# We do the length check second, since the invalid character error
@@ -1223,11 +1223,11 @@ class _BaseV4:
if len(octet_str) > 3:
msg = "At most 3 characters permitted in %r"
raise ValueError(msg % octet_str)
- # Handle leading zeros as strict as glibc's inet_pton()
- # See security bug bpo-36384
- if octet_str != '0' and octet_str[0] == '0':
- msg = "Leading zeros are not permitted in %r"
- raise ValueError(msg % octet_str)
+ # Handle leading zeros as strict as glibc's inet_pton()
+ # See security bug bpo-36384
+ if octet_str != '0' and octet_str[0] == '0':
+ msg = "Leading zeros are not permitted in %r"
+ raise ValueError(msg % octet_str)
# Convert to integer (we know digits are legal)
octet_int = int(octet_str, 10)
if octet_int > 255:
@@ -1385,24 +1385,24 @@ class IPv4Address(_BaseV4, _BaseAddress):
class IPv4Interface(IPv4Address):
def __init__(self, address):
- addr, mask = self._split_addr_prefix(address)
+ addr, mask = self._split_addr_prefix(address)
- IPv4Address.__init__(self, addr)
- self.network = IPv4Network((addr, mask), strict=False)
+ IPv4Address.__init__(self, addr)
+ self.network = IPv4Network((addr, mask), strict=False)
self.netmask = self.network.netmask
- self._prefixlen = self.network._prefixlen
+ self._prefixlen = self.network._prefixlen
+
+ @functools.cached_property
+ def hostmask(self):
+ return self.network.hostmask
- @functools.cached_property
- def hostmask(self):
- return self.network.hostmask
-
def __str__(self):
return '%s/%d' % (self._string_from_ip_int(self._ip),
- self._prefixlen)
+ self._prefixlen)
def __eq__(self, other):
address_equal = IPv4Address.__eq__(self, other)
- if address_equal is NotImplemented or not address_equal:
+ if address_equal is NotImplemented or not address_equal:
return address_equal
try:
return self.network == other.network
@@ -1425,7 +1425,7 @@ class IPv4Interface(IPv4Address):
return False
def __hash__(self):
- return hash((self._ip, self._prefixlen, int(self.network.network_address)))
+ return hash((self._ip, self._prefixlen, int(self.network.network_address)))
__reduce__ = _IPAddressBase.__reduce__
@@ -1471,7 +1471,7 @@ class IPv4Network(_BaseV4, _BaseNetwork):
address: A string or integer representing the IP [& network].
'192.0.2.0/24'
'192.0.2.0/255.255.255.0'
- '192.0.2.0/0.0.0.255'
+ '192.0.2.0/0.0.0.255'
are all functionally the same in IPv4. Similarly,
'192.0.2.1'
'192.0.2.1/255.255.255.255'
@@ -1499,7 +1499,7 @@ class IPv4Network(_BaseV4, _BaseNetwork):
ValueError: If strict is True and a network address is not
supplied.
"""
- addr, mask = self._split_addr_prefix(address)
+ addr, mask = self._split_addr_prefix(address)
self.network_address = IPv4Address(addr)
self.netmask, self._prefixlen = self._make_netmask(mask)
@@ -1513,8 +1513,8 @@ class IPv4Network(_BaseV4, _BaseNetwork):
if self._prefixlen == (self._max_prefixlen - 1):
self.hosts = self.__iter__
- elif self._prefixlen == (self._max_prefixlen):
- self.hosts = lambda: [IPv4Address(addr)]
+ elif self._prefixlen == (self._max_prefixlen):
+ self.hosts = lambda: [IPv4Address(addr)]
@property
@functools.lru_cache()
@@ -1597,8 +1597,8 @@ class _BaseV6:
if arg not in cls._netmask_cache:
if isinstance(arg, int):
prefixlen = arg
- if not (0 <= prefixlen <= cls._max_prefixlen):
- cls._report_invalid_netmask(prefixlen)
+ if not (0 <= prefixlen <= cls._max_prefixlen):
+ cls._report_invalid_netmask(prefixlen)
else:
prefixlen = cls._prefix_from_prefix_string(arg)
netmask = IPv6Address(cls._ip_int_from_prefix(prefixlen))
@@ -1842,26 +1842,26 @@ class _BaseV6:
reverse_chars = self.exploded[::-1].replace(':', '')
return '.'.join(reverse_chars) + '.ip6.arpa'
- @staticmethod
- def _split_scope_id(ip_str):
- """Helper function to parse IPv6 string address with scope id.
-
- See RFC 4007 for details.
-
- Args:
- ip_str: A string, the IPv6 address.
-
- Returns:
- (addr, scope_id) tuple.
-
- """
- addr, sep, scope_id = ip_str.partition('%')
- if not sep:
- scope_id = None
- elif not scope_id or '%' in scope_id:
- raise AddressValueError('Invalid IPv6 address: "%r"' % ip_str)
- return addr, scope_id
-
+ @staticmethod
+ def _split_scope_id(ip_str):
+ """Helper function to parse IPv6 string address with scope id.
+
+ See RFC 4007 for details.
+
+ Args:
+ ip_str: A string, the IPv6 address.
+
+ Returns:
+ (addr, scope_id) tuple.
+
+ """
+ addr, sep, scope_id = ip_str.partition('%')
+ if not sep:
+ scope_id = None
+ elif not scope_id or '%' in scope_id:
+ raise AddressValueError('Invalid IPv6 address: "%r"' % ip_str)
+ return addr, scope_id
+
@property
def max_prefixlen(self):
return self._max_prefixlen
@@ -1875,7 +1875,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
"""Represent and manipulate single IPv6 Addresses."""
- __slots__ = ('_ip', '_scope_id', '__weakref__')
+ __slots__ = ('_ip', '_scope_id', '__weakref__')
def __init__(self, address):
"""Instantiate a new IPv6 address object.
@@ -1898,14 +1898,14 @@ class IPv6Address(_BaseV6, _BaseAddress):
if isinstance(address, int):
self._check_int_address(address)
self._ip = address
- self._scope_id = None
+ self._scope_id = None
return
# Constructing from a packed address
if isinstance(address, bytes):
self._check_packed_address(address, 16)
self._ip = int.from_bytes(address, 'big')
- self._scope_id = None
+ self._scope_id = None
return
# Assume input argument to be string or any object representation
@@ -1913,38 +1913,38 @@ class IPv6Address(_BaseV6, _BaseAddress):
addr_str = str(address)
if '/' in addr_str:
raise AddressValueError("Unexpected '/' in %r" % address)
- addr_str, self._scope_id = self._split_scope_id(addr_str)
-
+ addr_str, self._scope_id = self._split_scope_id(addr_str)
+
self._ip = self._ip_int_from_string(addr_str)
- def __str__(self):
- ip_str = super().__str__()
- return ip_str + '%' + self._scope_id if self._scope_id else ip_str
-
- def __hash__(self):
- return hash((self._ip, self._scope_id))
-
- def __eq__(self, other):
- address_equal = super().__eq__(other)
- if address_equal is NotImplemented:
- return NotImplemented
- if not address_equal:
- return False
- return self._scope_id == getattr(other, '_scope_id', None)
-
+ def __str__(self):
+ ip_str = super().__str__()
+ return ip_str + '%' + self._scope_id if self._scope_id else ip_str
+
+ def __hash__(self):
+ return hash((self._ip, self._scope_id))
+
+ def __eq__(self, other):
+ address_equal = super().__eq__(other)
+ if address_equal is NotImplemented:
+ return NotImplemented
+ if not address_equal:
+ return False
+ return self._scope_id == getattr(other, '_scope_id', None)
+
+ @property
+ def scope_id(self):
+ """Identifier of a particular zone of the address's scope.
+
+ See RFC 4007 for details.
+
+ Returns:
+ A string identifying the zone of the address if specified, else None.
+
+ """
+ return self._scope_id
+
@property
- def scope_id(self):
- """Identifier of a particular zone of the address's scope.
-
- See RFC 4007 for details.
-
- Returns:
- A string identifying the zone of the address if specified, else None.
-
- """
- return self._scope_id
-
- @property
def packed(self):
"""The binary representation of this address."""
return v6_int_to_packed(self._ip)
@@ -2085,24 +2085,24 @@ class IPv6Address(_BaseV6, _BaseAddress):
class IPv6Interface(IPv6Address):
def __init__(self, address):
- addr, mask = self._split_addr_prefix(address)
+ addr, mask = self._split_addr_prefix(address)
- IPv6Address.__init__(self, addr)
- self.network = IPv6Network((addr, mask), strict=False)
+ IPv6Address.__init__(self, addr)
+ self.network = IPv6Network((addr, mask), strict=False)
self.netmask = self.network.netmask
self._prefixlen = self.network._prefixlen
- @functools.cached_property
- def hostmask(self):
- return self.network.hostmask
-
+ @functools.cached_property
+ def hostmask(self):
+ return self.network.hostmask
+
def __str__(self):
- return '%s/%d' % (super().__str__(),
- self._prefixlen)
+ return '%s/%d' % (super().__str__(),
+ self._prefixlen)
def __eq__(self, other):
address_equal = IPv6Address.__eq__(self, other)
- if address_equal is NotImplemented or not address_equal:
+ if address_equal is NotImplemented or not address_equal:
return address_equal
try:
return self.network == other.network
@@ -2115,7 +2115,7 @@ class IPv6Interface(IPv6Address):
def __lt__(self, other):
address_less = IPv6Address.__lt__(self, other)
if address_less is NotImplemented:
- return address_less
+ return address_less
try:
return (self.network < other.network or
self.network == other.network and address_less)
@@ -2125,7 +2125,7 @@ class IPv6Interface(IPv6Address):
return False
def __hash__(self):
- return hash((self._ip, self._prefixlen, int(self.network.network_address)))
+ return hash((self._ip, self._prefixlen, int(self.network.network_address)))
__reduce__ = _IPAddressBase.__reduce__
@@ -2204,7 +2204,7 @@ class IPv6Network(_BaseV6, _BaseNetwork):
ValueError: If strict was True and a network address was not
supplied.
"""
- addr, mask = self._split_addr_prefix(address)
+ addr, mask = self._split_addr_prefix(address)
self.network_address = IPv6Address(addr)
self.netmask, self._prefixlen = self._make_netmask(mask)
@@ -2218,8 +2218,8 @@ class IPv6Network(_BaseV6, _BaseNetwork):
if self._prefixlen == (self._max_prefixlen - 1):
self.hosts = self.__iter__
- elif self._prefixlen == self._max_prefixlen:
- self.hosts = lambda: [IPv6Address(addr)]
+ elif self._prefixlen == self._max_prefixlen:
+ self.hosts = lambda: [IPv6Address(addr)]
def hosts(self):
"""Generate Iterator over usable hosts in a network.
diff --git a/contrib/tools/python3/src/Lib/json/__init__.py b/contrib/tools/python3/src/Lib/json/__init__.py
index f7e69c9da4..e4c21daaf3 100644
--- a/contrib/tools/python3/src/Lib/json/__init__.py
+++ b/contrib/tools/python3/src/Lib/json/__init__.py
@@ -133,7 +133,7 @@ def dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,
If ``check_circular`` is false, then the circular reference check
for container types will be skipped and a circular reference will
- result in an ``RecursionError`` (or worse).
+ result in an ``RecursionError`` (or worse).
If ``allow_nan`` is false, then it will be a ``ValueError`` to
serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``)
@@ -195,7 +195,7 @@ def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
If ``check_circular`` is false, then the circular reference check
for container types will be skipped and a circular reference will
- result in an ``RecursionError`` (or worse).
+ result in an ``RecursionError`` (or worse).
If ``allow_nan`` is false, then it will be a ``ValueError`` to
serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in
@@ -296,7 +296,7 @@ def load(fp, *, cls=None, object_hook=None, parse_float=None,
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
-def loads(s, *, cls=None, object_hook=None, parse_float=None,
+def loads(s, *, cls=None, object_hook=None, parse_float=None,
parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
"""Deserialize ``s`` (a ``str``, ``bytes`` or ``bytearray`` instance
containing a JSON document) to a Python object.
diff --git a/contrib/tools/python3/src/Lib/json/encoder.py b/contrib/tools/python3/src/Lib/json/encoder.py
index e6b844f161..21bff2c1a1 100644
--- a/contrib/tools/python3/src/Lib/json/encoder.py
+++ b/contrib/tools/python3/src/Lib/json/encoder.py
@@ -116,7 +116,7 @@ class JSONEncoder(object):
If check_circular is true, then lists, dicts, and custom encoded
objects will be checked for circular references during encoding to
- prevent an infinite recursion (which would cause an RecursionError).
+ prevent an infinite recursion (which would cause an RecursionError).
Otherwise, no such check takes place.
If allow_nan is true, then NaN, Infinity, and -Infinity will be
@@ -268,7 +268,7 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
list=list,
str=str,
tuple=tuple,
- _intstr=int.__repr__,
+ _intstr=int.__repr__,
):
if _indent is not None and not isinstance(_indent, str):
@@ -307,7 +307,7 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
elif value is False:
yield buf + 'false'
elif isinstance(value, int):
- # Subclasses of int/float may override __repr__, but we still
+ # Subclasses of int/float may override __repr__, but we still
# want to encode them as integers/floats in JSON. One example
# within the standard library is IntEnum.
yield buf + _intstr(value)
@@ -350,7 +350,7 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
item_separator = _item_separator
first = True
if _sort_keys:
- items = sorted(dct.items())
+ items = sorted(dct.items())
else:
items = dct.items()
for key, value in items:
diff --git a/contrib/tools/python3/src/Lib/json/tool.py b/contrib/tools/python3/src/Lib/json/tool.py
index d204f960f5..0490b8c0be 100644
--- a/contrib/tools/python3/src/Lib/json/tool.py
+++ b/contrib/tools/python3/src/Lib/json/tool.py
@@ -13,7 +13,7 @@ Usage::
import argparse
import json
import sys
-from pathlib import Path
+from pathlib import Path
def main():
@@ -21,65 +21,65 @@ def main():
description = ('A simple command line interface for json module '
'to validate and pretty-print JSON objects.')
parser = argparse.ArgumentParser(prog=prog, description=description)
- parser.add_argument('infile', nargs='?',
- type=argparse.FileType(encoding="utf-8"),
- help='a JSON file to be validated or pretty-printed',
- default=sys.stdin)
- parser.add_argument('outfile', nargs='?',
- type=Path,
- help='write the output of infile to outfile',
- default=None)
+ parser.add_argument('infile', nargs='?',
+ type=argparse.FileType(encoding="utf-8"),
+ help='a JSON file to be validated or pretty-printed',
+ default=sys.stdin)
+ parser.add_argument('outfile', nargs='?',
+ type=Path,
+ help='write the output of infile to outfile',
+ default=None)
parser.add_argument('--sort-keys', action='store_true', default=False,
help='sort the output of dictionaries alphabetically by key')
- parser.add_argument('--no-ensure-ascii', dest='ensure_ascii', action='store_false',
- help='disable escaping of non-ASCII characters')
- parser.add_argument('--json-lines', action='store_true', default=False,
- help='parse input using the JSON Lines format. '
- 'Use with --no-indent or --compact to produce valid JSON Lines output.')
- group = parser.add_mutually_exclusive_group()
- group.add_argument('--indent', default=4, type=int,
- help='separate items with newlines and use this number '
- 'of spaces for indentation')
- group.add_argument('--tab', action='store_const', dest='indent',
- const='\t', help='separate items with newlines and use '
- 'tabs for indentation')
- group.add_argument('--no-indent', action='store_const', dest='indent',
- const=None,
- help='separate items with spaces rather than newlines')
- group.add_argument('--compact', action='store_true',
- help='suppress all whitespace separation (most compact)')
+ parser.add_argument('--no-ensure-ascii', dest='ensure_ascii', action='store_false',
+ help='disable escaping of non-ASCII characters')
+ parser.add_argument('--json-lines', action='store_true', default=False,
+ help='parse input using the JSON Lines format. '
+ 'Use with --no-indent or --compact to produce valid JSON Lines output.')
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument('--indent', default=4, type=int,
+ help='separate items with newlines and use this number '
+ 'of spaces for indentation')
+ group.add_argument('--tab', action='store_const', dest='indent',
+ const='\t', help='separate items with newlines and use '
+ 'tabs for indentation')
+ group.add_argument('--no-indent', action='store_const', dest='indent',
+ const=None,
+ help='separate items with spaces rather than newlines')
+ group.add_argument('--compact', action='store_true',
+ help='suppress all whitespace separation (most compact)')
options = parser.parse_args()
- dump_args = {
- 'sort_keys': options.sort_keys,
- 'indent': options.indent,
- 'ensure_ascii': options.ensure_ascii,
- }
- if options.compact:
- dump_args['indent'] = None
- dump_args['separators'] = ',', ':'
-
- with options.infile as infile:
+ dump_args = {
+ 'sort_keys': options.sort_keys,
+ 'indent': options.indent,
+ 'ensure_ascii': options.ensure_ascii,
+ }
+ if options.compact:
+ dump_args['indent'] = None
+ dump_args['separators'] = ',', ':'
+
+ with options.infile as infile:
try:
- if options.json_lines:
- objs = (json.loads(line) for line in infile)
- else:
- objs = (json.load(infile),)
-
- if options.outfile is None:
- out = sys.stdout
- else:
- out = options.outfile.open('w', encoding='utf-8')
- with out as outfile:
- for obj in objs:
- json.dump(obj, outfile, **dump_args)
- outfile.write('\n')
+ if options.json_lines:
+ objs = (json.loads(line) for line in infile)
+ else:
+ objs = (json.load(infile),)
+
+ if options.outfile is None:
+ out = sys.stdout
+ else:
+ out = options.outfile.open('w', encoding='utf-8')
+ with out as outfile:
+ for obj in objs:
+ json.dump(obj, outfile, **dump_args)
+ outfile.write('\n')
except ValueError as e:
raise SystemExit(e)
if __name__ == '__main__':
- try:
- main()
- except BrokenPipeError as exc:
- sys.exit(exc.errno)
+ try:
+ main()
+ except BrokenPipeError as exc:
+ sys.exit(exc.errno)
diff --git a/contrib/tools/python3/src/Lib/keyword.py b/contrib/tools/python3/src/Lib/keyword.py
index e82484d941..59fcfb0f0d 100644
--- a/contrib/tools/python3/src/Lib/keyword.py
+++ b/contrib/tools/python3/src/Lib/keyword.py
@@ -1,62 +1,62 @@
-"""Keywords (from "Grammar/python.gram")
+"""Keywords (from "Grammar/python.gram")
This file is automatically generated; please don't muck it up!
To update the symbols in this file, 'cd' to the top directory of
-the python source tree and run:
-
- PYTHONPATH=Tools/peg_generator python3 -m pegen.keywordgen \
- Grammar/Grammar \
- Grammar/Tokens \
- Lib/keyword.py
-
-Alternatively, you can run 'make regen-keyword'.
+the python source tree and run:
+
+ PYTHONPATH=Tools/peg_generator python3 -m pegen.keywordgen \
+ Grammar/Grammar \
+ Grammar/Tokens \
+ Lib/keyword.py
+
+Alternatively, you can run 'make regen-keyword'.
"""
-__all__ = ["iskeyword", "issoftkeyword", "kwlist", "softkwlist"]
+__all__ = ["iskeyword", "issoftkeyword", "kwlist", "softkwlist"]
kwlist = [
- 'False',
- 'None',
- 'True',
- '__peg_parser__',
- 'and',
- 'as',
- 'assert',
- 'async',
- 'await',
- 'break',
- 'class',
- 'continue',
- 'def',
- 'del',
- 'elif',
- 'else',
- 'except',
- 'finally',
- 'for',
- 'from',
- 'global',
- 'if',
- 'import',
- 'in',
- 'is',
- 'lambda',
- 'nonlocal',
- 'not',
- 'or',
- 'pass',
- 'raise',
- 'return',
- 'try',
- 'while',
- 'with',
- 'yield'
-]
-
-softkwlist = [
-
-]
-
+ 'False',
+ 'None',
+ 'True',
+ '__peg_parser__',
+ 'and',
+ 'as',
+ 'assert',
+ 'async',
+ 'await',
+ 'break',
+ 'class',
+ 'continue',
+ 'def',
+ 'del',
+ 'elif',
+ 'else',
+ 'except',
+ 'finally',
+ 'for',
+ 'from',
+ 'global',
+ 'if',
+ 'import',
+ 'in',
+ 'is',
+ 'lambda',
+ 'nonlocal',
+ 'not',
+ 'or',
+ 'pass',
+ 'raise',
+ 'return',
+ 'try',
+ 'while',
+ 'with',
+ 'yield'
+]
+
+softkwlist = [
+
+]
+
iskeyword = frozenset(kwlist).__contains__
-issoftkeyword = frozenset(softkwlist).__contains__
+issoftkeyword = frozenset(softkwlist).__contains__
diff --git a/contrib/tools/python3/src/Lib/lib2to3/__init__.py b/contrib/tools/python3/src/Lib/lib2to3/__init__.py
index 659060d232..4224dffef4 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/__init__.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/__init__.py
@@ -1,8 +1,8 @@
-import warnings
-
-
-warnings.warn(
- "lib2to3 package is deprecated and may not be able to parse Python 3.10+",
- PendingDeprecationWarning,
- stacklevel=2,
-)
+import warnings
+
+
+warnings.warn(
+ "lib2to3 package is deprecated and may not be able to parse Python 3.10+",
+ PendingDeprecationWarning,
+ stacklevel=2,
+)
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixer_util.py b/contrib/tools/python3/src/Lib/lib2to3/fixer_util.py
index 71c6a47ffc..c2a3a47f50 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixer_util.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixer_util.py
@@ -412,7 +412,7 @@ def _find(name, node):
return None
def _is_import_binding(node, name, package=None):
- """ Will return node if node will import name, or node
+ """ Will return node if node will import name, or node
will import * from package. None is returned otherwise.
See test cases for examples. """
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_apply.py b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_apply.py
index a3db0f7e45..6408582c42 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_apply.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_apply.py
@@ -38,7 +38,7 @@ class FixApply(fixer_base.BaseFix):
# PATTERN above but I don't know how to do it so...
if args:
if (args.type == self.syms.argument and
- args.children[0].value in {'**', '*'}):
+ args.children[0].value in {'**', '*'}):
return # Make no change.
if kwds and (kwds.type == self.syms.argument and
kwds.children[0].value == '**'):
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_filter.py b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_filter.py
index df43ead490..38e9078f11 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_filter.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_filter.py
@@ -17,7 +17,7 @@ Python 2.6 figure it out.
from .. import fixer_base
from ..pytree import Node
from ..pygram import python_symbols as syms
-from ..fixer_util import Name, ArgList, ListComp, in_special_context, parenthesize
+from ..fixer_util import Name, ArgList, ListComp, in_special_context, parenthesize
class FixFilter(fixer_base.ConditionalFix):
@@ -65,14 +65,14 @@ class FixFilter(fixer_base.ConditionalFix):
trailers.append(t.clone())
if "filter_lambda" in results:
- xp = results.get("xp").clone()
- if xp.type == syms.test:
- xp.prefix = ""
- xp = parenthesize(xp)
-
+ xp = results.get("xp").clone()
+ if xp.type == syms.test:
+ xp.prefix = ""
+ xp = parenthesize(xp)
+
new = ListComp(results.get("fp").clone(),
results.get("fp").clone(),
- results.get("it").clone(), xp)
+ results.get("it").clone(), xp)
new = Node(syms.power, [new] + trailers, prefix="")
elif "none" in results:
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_intern.py b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_intern.py
index 2e6a78b911..d752843092 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_intern.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_intern.py
@@ -31,7 +31,7 @@ class FixIntern(fixer_base.BaseFix):
obj = results['obj']
if obj:
if (obj.type == self.syms.argument and
- obj.children[0].value in {'**', '*'}):
+ obj.children[0].value in {'**', '*'}):
return # Make no change.
names = ('sys', 'intern')
new = ImportAndCall(node, results, names)
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_metaclass.py b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_metaclass.py
index d2253ac79d..fe547b2228 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_metaclass.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_metaclass.py
@@ -1,6 +1,6 @@
"""Fixer for __metaclass__ = X -> (metaclass=X) methods.
- The various forms of classef (inherits nothing, inherits once, inherits
+ The various forms of classef (inherits nothing, inherits once, inherits
many) don't parse the same in the CST so we look at ALL classes for
a __metaclass__ and if we find one normalize the inherits to all be
an arglist.
@@ -51,7 +51,7 @@ def fixup_parse_tree(cls_node):
# already in the preferred format, do nothing
return
- # !%@#! one-liners have no suite node, we have to fake one up
+ # !%@#! one-liners have no suite node, we have to fake one up
for i, node in enumerate(cls_node.children):
if node.type == token.COLON:
break
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_paren.py b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_paren.py
index be5129e67d..df3da5f523 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_paren.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_paren.py
@@ -1,4 +1,4 @@
-"""Fixer that adds parentheses where they are required
+"""Fixer that adds parentheses where they are required
This converts ``[x for x in 1, 2]`` to ``[x for x in (1, 2)]``."""
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_reload.py b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_reload.py
index c1649aedcc..b30841131c 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_reload.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_reload.py
@@ -28,7 +28,7 @@ class FixReload(fixer_base.BaseFix):
obj = results['obj']
if obj:
if (obj.type == self.syms.argument and
- obj.children[0].value in {'**', '*'}):
+ obj.children[0].value in {'**', '*'}):
return # Make no change.
names = ('importlib', 'reload')
new = ImportAndCall(node, results, names)
diff --git a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_urllib.py b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_urllib.py
index 1c754df047..ab892bc524 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_urllib.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/fixes/fix_urllib.py
@@ -13,7 +13,7 @@ MAPPING = {"urllib": [
("urllib.request",
["URLopener", "FancyURLopener", "urlretrieve",
"_urlopener", "urlopen", "urlcleanup",
- "pathname2url", "url2pathname", "getproxies"]),
+ "pathname2url", "url2pathname", "getproxies"]),
("urllib.parse",
["quote", "quote_plus", "unquote", "unquote_plus",
"urlencode", "splitattr", "splithost", "splitnport",
diff --git a/contrib/tools/python3/src/Lib/lib2to3/main.py b/contrib/tools/python3/src/Lib/lib2to3/main.py
index 473ab6c841..f2849fd6be 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/main.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/main.py
@@ -90,11 +90,11 @@ class StdoutRefactoringTool(refactor.MultiprocessRefactoringTool):
if os.path.lexists(backup):
try:
os.remove(backup)
- except OSError:
+ except OSError:
self.log_message("Can't remove backup %s", backup)
try:
os.rename(filename, backup)
- except OSError:
+ except OSError:
self.log_message("Can't rename %s to %s", filename, backup)
# Actually write the new file
write = super(StdoutRefactoringTool, self).write_file
@@ -154,8 +154,8 @@ def main(fixer_pkg, args=None):
help="List available transformations")
parser.add_option("-p", "--print-function", action="store_true",
help="Modify the grammar so that print() is a function")
- parser.add_option("-e", "--exec-function", action="store_true",
- help="Modify the grammar so that exec() is a function")
+ parser.add_option("-e", "--exec-function", action="store_true",
+ help="Modify the grammar so that exec() is a function")
parser.add_option("-v", "--verbose", action="store_true",
help="More verbose logging")
parser.add_option("--no-diffs", action="store_true",
@@ -213,9 +213,9 @@ def main(fixer_pkg, args=None):
if options.print_function:
flags["print_function"] = True
- if options.exec_function:
- flags["exec_function"] = True
-
+ if options.exec_function:
+ flags["exec_function"] = True
+
# Set up logging handler
level = logging.DEBUG if options.verbose else logging.INFO
logging.basicConfig(format='%(name)s: %(message)s', level=level)
diff --git a/contrib/tools/python3/src/Lib/lib2to3/pgen2/grammar.py b/contrib/tools/python3/src/Lib/lib2to3/pgen2/grammar.py
index bddf785dbb..6a4d575ac2 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/pgen2/grammar.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/pgen2/grammar.py
@@ -85,9 +85,9 @@ class Grammar(object):
self.start = 256
def dump(self, filename):
- """Dump the grammar tables to a pickle file."""
+ """Dump the grammar tables to a pickle file."""
with open(filename, "wb") as f:
- pickle.dump(self.__dict__, f, pickle.HIGHEST_PROTOCOL)
+ pickle.dump(self.__dict__, f, pickle.HIGHEST_PROTOCOL)
def load(self, filename):
"""Load the grammar tables from a pickle file."""
@@ -178,7 +178,7 @@ opmap_raw = """
// DOUBLESLASH
//= DOUBLESLASHEQUAL
-> RARROW
-:= COLONEQUAL
+:= COLONEQUAL
"""
opmap = {}
diff --git a/contrib/tools/python3/src/Lib/lib2to3/pgen2/parse.py b/contrib/tools/python3/src/Lib/lib2to3/pgen2/parse.py
index 1b6117174e..cf3fcf7e99 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/pgen2/parse.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/pgen2/parse.py
@@ -24,9 +24,9 @@ class ParseError(Exception):
self.value = value
self.context = context
- def __reduce__(self):
- return type(self), (self.msg, self.type, self.value, self.context)
-
+ def __reduce__(self):
+ return type(self), (self.msg, self.type, self.value, self.context)
+
class Parser(object):
"""Parser engine.
diff --git a/contrib/tools/python3/src/Lib/lib2to3/pgen2/token.py b/contrib/tools/python3/src/Lib/lib2to3/pgen2/token.py
index 1ab43f697d..5f6612f5b3 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/pgen2/token.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/pgen2/token.py
@@ -65,8 +65,8 @@ RARROW = 55
AWAIT = 56
ASYNC = 57
ERRORTOKEN = 58
-COLONEQUAL = 59
-N_TOKENS = 60
+COLONEQUAL = 59
+N_TOKENS = 60
NT_OFFSET = 256
#--end constants--
diff --git a/contrib/tools/python3/src/Lib/lib2to3/pgen2/tokenize.py b/contrib/tools/python3/src/Lib/lib2to3/pgen2/tokenize.py
index 19db93a72d..099dfa7798 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/pgen2/tokenize.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/pgen2/tokenize.py
@@ -93,7 +93,7 @@ Operator = group(r"\*\*=?", r">>=?", r"<<=?", r"<>", r"!=",
r"~")
Bracket = '[][(){}]'
-Special = group(r'\r?\n', r':=', r'[:;.,`@]')
+Special = group(r'\r?\n', r':=', r'[:;.,`@]')
Funny = group(Operator, Bracket, Special)
PlainToken = group(Number, Funny, String, Name)
@@ -321,7 +321,7 @@ def untokenize(iterable):
Round-trip invariant for full input:
Untokenized source will match input source exactly
- Round-trip invariant for limited input:
+ Round-trip invariant for limited input:
# Output text will tokenize the back to the input
t1 = [tok[:2] for tok in generate_tokens(f.readline)]
newcode = untokenize(t1)
@@ -346,7 +346,7 @@ def generate_tokens(readline):
column where the token begins in the source; a 2-tuple (erow, ecol) of
ints specifying the row and column where the token ends in the source;
and the line on which the token was found. The line passed is the
- physical line.
+ physical line.
"""
lnum = parenlev = continued = 0
contstr, needcont = '', 0
@@ -512,14 +512,14 @@ def generate_tokens(readline):
stashed = tok
continue
- if token in ('def', 'for'):
+ if token in ('def', 'for'):
if (stashed
and stashed[0] == NAME
and stashed[1] == 'async'):
- if token == 'def':
- async_def = True
- async_def_indent = indents[-1]
+ if token == 'def':
+ async_def = True
+ async_def_indent = indents[-1]
yield (ASYNC, stashed[1],
stashed[2], stashed[3],
diff --git a/contrib/tools/python3/src/Lib/lib2to3/pygram.py b/contrib/tools/python3/src/Lib/lib2to3/pygram.py
index 20f6cc01f1..24d9db9217 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/pygram.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/pygram.py
@@ -36,8 +36,8 @@ python_symbols = Symbols(python_grammar)
python_grammar_no_print_statement = python_grammar.copy()
del python_grammar_no_print_statement.keywords["print"]
-python_grammar_no_print_and_exec_statement = python_grammar_no_print_statement.copy()
-del python_grammar_no_print_and_exec_statement.keywords["exec"]
-
+python_grammar_no_print_and_exec_statement = python_grammar_no_print_statement.copy()
+del python_grammar_no_print_and_exec_statement.keywords["exec"]
+
pattern_grammar = driver.load_packaged_grammar("lib2to3", _PATTERN_GRAMMAR_FILE)
pattern_symbols = Symbols(pattern_grammar)
diff --git a/contrib/tools/python3/src/Lib/lib2to3/refactor.py b/contrib/tools/python3/src/Lib/lib2to3/refactor.py
index 07273d2c42..3a5aafffc6 100644
--- a/contrib/tools/python3/src/Lib/lib2to3/refactor.py
+++ b/contrib/tools/python3/src/Lib/lib2to3/refactor.py
@@ -14,7 +14,7 @@ __author__ = "Guido van Rossum <guido@python.org>"
# Python imports
import io
import os
-import pkgutil
+import pkgutil
import sys
import logging
import operator
@@ -32,11 +32,11 @@ def get_all_fix_names(fixer_pkg, remove_prefix=True):
"""Return a sorted list of all available fix names in the given package."""
pkg = __import__(fixer_pkg, [], [], ["*"])
fix_names = []
- for finder, name, ispkg in pkgutil.iter_modules(pkg.__path__):
- if name.startswith("fix_"):
+ for finder, name, ispkg in pkgutil.iter_modules(pkg.__path__):
+ if name.startswith("fix_"):
if remove_prefix:
name = name[4:]
- fix_names.append(name)
+ fix_names.append(name)
return fix_names
@@ -155,7 +155,7 @@ class FixerError(Exception):
class RefactoringTool(object):
_default_options = {"print_function" : False,
- "exec_function": False,
+ "exec_function": False,
"write_unchanged_files" : False}
CLASS_PREFIX = "Fix" # The prefix for fixer classes
@@ -174,13 +174,13 @@ class RefactoringTool(object):
self.options = self._default_options.copy()
if options is not None:
self.options.update(options)
- self.grammar = pygram.python_grammar.copy()
-
- if self.options['print_function']:
- del self.grammar.keywords["print"]
- elif self.options['exec_function']:
- del self.grammar.keywords["exec"]
-
+ self.grammar = pygram.python_grammar.copy()
+
+ if self.options['print_function']:
+ del self.grammar.keywords["print"]
+ elif self.options['exec_function']:
+ del self.grammar.keywords["exec"]
+
# When this is True, the refactor*() methods will call write_file() for
# files processed even if they were not changed during refactoring. If
# and only if the refactor method's write parameter was True.
diff --git a/contrib/tools/python3/src/Lib/linecache.py b/contrib/tools/python3/src/Lib/linecache.py
index 958dceb6ca..6adce80e8f 100644
--- a/contrib/tools/python3/src/Lib/linecache.py
+++ b/contrib/tools/python3/src/Lib/linecache.py
@@ -10,7 +10,7 @@ import sys
import os
import tokenize
-__all__ = ["getline", "clearcache", "checkcache", "lazycache"]
+__all__ = ["getline", "clearcache", "checkcache", "lazycache"]
# The cache. Maps filenames to either a thunk which will provide source code,
@@ -20,19 +20,19 @@ cache = {}
def clearcache():
"""Clear the cache entirely."""
- cache.clear()
+ cache.clear()
-def getline(filename, lineno, module_globals=None):
- """Get a line for a Python source file from the cache.
- Update the cache if it doesn't contain an entry for this file already."""
+def getline(filename, lineno, module_globals=None):
+ """Get a line for a Python source file from the cache.
+ Update the cache if it doesn't contain an entry for this file already."""
+
+ lines = getlines(filename, module_globals)
+ if 1 <= lineno <= len(lines):
+ return lines[lineno - 1]
+ return ''
+
- lines = getlines(filename, module_globals)
- if 1 <= lineno <= len(lines):
- return lines[lineno - 1]
- return ''
-
-
def getlines(filename, module_globals=None):
"""Get the lines for a Python source file from the cache.
Update the cache if it doesn't contain an entry for this file already."""
@@ -55,10 +55,10 @@ def checkcache(filename=None):
if filename is None:
filenames = list(cache.keys())
- elif filename in cache:
- filenames = [filename]
+ elif filename in cache:
+ filenames = [filename]
else:
- return
+ return
for filename in filenames:
entry = cache[filename]
@@ -71,10 +71,10 @@ def checkcache(filename=None):
try:
stat = os.stat(fullname)
except OSError:
- cache.pop(filename, None)
+ cache.pop(filename, None)
continue
if size != stat.st_size or mtime != stat.st_mtime:
- cache.pop(filename, None)
+ cache.pop(filename, None)
def updatecache(filename, module_globals=None):
@@ -84,7 +84,7 @@ def updatecache(filename, module_globals=None):
if filename in cache:
if len(cache[filename]) != 1:
- cache.pop(filename, None)
+ cache.pop(filename, None)
if not filename or (filename.startswith('<') and filename.endswith('>')):
return []
@@ -119,10 +119,10 @@ def updatecache(filename, module_globals=None):
# for this module.
return []
cache[filename] = (
- len(data),
- None,
- [line + '\n' for line in data.splitlines()],
- fullname
+ len(data),
+ None,
+ [line + '\n' for line in data.splitlines()],
+ fullname
)
return cache[filename][2]
@@ -166,7 +166,7 @@ def lazycache(filename, module_globals):
:return: True if a lazy load is registered in the cache,
otherwise False. To register such a load a module loader with a
- get_source method must be found, the filename must be a cacheable
+ get_source method must be found, the filename must be a cacheable
filename, and the filename must not be already cached.
"""
if filename in cache:
diff --git a/contrib/tools/python3/src/Lib/locale.py b/contrib/tools/python3/src/Lib/locale.py
index a6bcaa3bc1..1a4e9f694f 100644
--- a/contrib/tools/python3/src/Lib/locale.py
+++ b/contrib/tools/python3/src/Lib/locale.py
@@ -279,8 +279,8 @@ def currency(val, symbol=True, grouping=False, international=False):
if precedes:
s = smb + (separated and ' ' or '') + s
else:
- if international and smb[-1] == ' ':
- smb = smb[:-1]
+ if international and smb[-1] == ' ':
+ smb = smb[:-1]
s = s + (separated and ' ' or '') + smb
sign_pos = conv[val<0 and 'n_sign_posn' or 'p_sign_posn']
@@ -494,10 +494,10 @@ def _parse_localename(localename):
return tuple(code.split('.')[:2])
elif code == 'C':
return None, None
- elif code == 'UTF-8':
- # On macOS "LC_CTYPE=UTF-8" is a valid locale setting
- # for getting UTF-8 handling for text.
- return None, 'UTF-8'
+ elif code == 'UTF-8':
+ # On macOS "LC_CTYPE=UTF-8" is a valid locale setting
+ # for getting UTF-8 handling for text.
+ return None, 'UTF-8'
raise ValueError('unknown locale: %s' % localename)
def _build_localename(localetuple):
diff --git a/contrib/tools/python3/src/Lib/logging/__init__.py b/contrib/tools/python3/src/Lib/logging/__init__.py
index 92cb8f08f9..1ab35a8c21 100644
--- a/contrib/tools/python3/src/Lib/logging/__init__.py
+++ b/contrib/tools/python3/src/Lib/logging/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved.
+# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
@@ -18,17 +18,17 @@
Logging package for Python. Based on PEP 282 and comments thereto in
comp.lang.python.
-Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved.
+Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved.
To use, simply 'import logging' and log away!
"""
-import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
+import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
from string import Template
-from string import Formatter as StrFormatter
+from string import Formatter as StrFormatter
+
-
__all__ = ['BASIC_FORMAT', 'BufferingFormatter', 'CRITICAL', 'DEBUG', 'ERROR',
'FATAL', 'FileHandler', 'Filter', 'Formatter', 'Handler', 'INFO',
'LogRecord', 'Logger', 'LoggerAdapter', 'NOTSET', 'NullHandler',
@@ -118,7 +118,7 @@ _nameToLevel = {
def getLevelName(level):
"""
- Return the textual or numeric representation of logging level 'level'.
+ Return the textual or numeric representation of logging level 'level'.
If the level is one of the predefined levels (CRITICAL, ERROR, WARNING,
INFO, DEBUG) then you get the corresponding string. If you have
@@ -128,11 +128,11 @@ def getLevelName(level):
If a numeric value corresponding to one of the defined levels is passed
in, the corresponding string representation is returned.
- If a string representation of the level is passed in, the corresponding
- numeric value is returned.
-
- If no matching numeric or string value is passed in, the string
- 'Level %s' % level is returned.
+ If a string representation of the level is passed in, the corresponding
+ numeric value is returned.
+
+ If no matching numeric or string value is passed in, the string
+ 'Level %s' % level is returned.
"""
# See Issues #22386, #27937 and #29220 for why it's this way
result = _levelToName.get(level)
@@ -235,32 +235,32 @@ def _releaseLock():
# Prevent a held logging lock from blocking a child from logging.
if not hasattr(os, 'register_at_fork'): # Windows and friends.
- def _register_at_fork_reinit_lock(instance):
+ def _register_at_fork_reinit_lock(instance):
pass # no-op when os.register_at_fork does not exist.
-else:
- # A collection of instances with a _at_fork_reinit method (logging.Handler)
- # to be called in the child after forking. The weakref avoids us keeping
- # discarded Handler instances alive.
- _at_fork_reinit_lock_weakset = weakref.WeakSet()
+else:
+ # A collection of instances with a _at_fork_reinit method (logging.Handler)
+ # to be called in the child after forking. The weakref avoids us keeping
+ # discarded Handler instances alive.
+ _at_fork_reinit_lock_weakset = weakref.WeakSet()
- def _register_at_fork_reinit_lock(instance):
- _acquireLock()
- try:
- _at_fork_reinit_lock_weakset.add(instance)
- finally:
- _releaseLock()
+ def _register_at_fork_reinit_lock(instance):
+ _acquireLock()
+ try:
+ _at_fork_reinit_lock_weakset.add(instance)
+ finally:
+ _releaseLock()
- def _after_at_fork_child_reinit_locks():
- for handler in _at_fork_reinit_lock_weakset:
- handler._at_fork_reinit()
+ def _after_at_fork_child_reinit_locks():
+ for handler in _at_fork_reinit_lock_weakset:
+ handler._at_fork_reinit()
- # _acquireLock() was called in the parent before forking.
- # The lock is reinitialized to unlocked state.
- _lock._at_fork_reinit()
+ # _acquireLock() was called in the parent before forking.
+ # The lock is reinitialized to unlocked state.
+ _lock._at_fork_reinit()
- os.register_at_fork(before=_acquireLock,
- after_in_child=_after_at_fork_child_reinit_locks,
- after_in_parent=_releaseLock)
+ os.register_at_fork(before=_acquireLock,
+ after_in_child=_after_at_fork_child_reinit_locks,
+ after_in_parent=_releaseLock)
#---------------------------------------------------------------------------
@@ -351,7 +351,7 @@ class LogRecord(object):
else:
self.process = None
- def __repr__(self):
+ def __repr__(self):
return '<LogRecord: %s, %s, %s, %s, "%s">'%(self.name, self.levelno,
self.pathname, self.lineno, self.msg)
@@ -400,20 +400,20 @@ def makeLogRecord(dict):
rv.__dict__.update(dict)
return rv
-
+
#---------------------------------------------------------------------------
# Formatter classes and functions
#---------------------------------------------------------------------------
-_str_formatter = StrFormatter()
-del StrFormatter
+_str_formatter = StrFormatter()
+del StrFormatter
+
-
class PercentStyle(object):
default_format = '%(message)s'
asctime_format = '%(asctime)s'
asctime_search = '%(asctime)'
- validation_pattern = re.compile(r'%\(\w+\)[#0+ -]*(\*|\d+)?(\.(\*|\d+))?[diouxefgcrsa%]', re.I)
+ validation_pattern = re.compile(r'%\(\w+\)[#0+ -]*(\*|\d+)?(\.(\*|\d+))?[diouxefgcrsa%]', re.I)
def __init__(self, fmt):
self._fmt = fmt or self.default_format
@@ -421,51 +421,51 @@ class PercentStyle(object):
def usesTime(self):
return self._fmt.find(self.asctime_search) >= 0
- def validate(self):
- """Validate the input format, ensure it matches the correct style"""
- if not self.validation_pattern.search(self._fmt):
- raise ValueError("Invalid format '%s' for '%s' style" % (self._fmt, self.default_format[0]))
-
- def _format(self, record):
+ def validate(self):
+ """Validate the input format, ensure it matches the correct style"""
+ if not self.validation_pattern.search(self._fmt):
+ raise ValueError("Invalid format '%s' for '%s' style" % (self._fmt, self.default_format[0]))
+
+ def _format(self, record):
return self._fmt % record.__dict__
- def format(self, record):
- try:
- return self._format(record)
- except KeyError as e:
- raise ValueError('Formatting field not found in record: %s' % e)
-
-
+ def format(self, record):
+ try:
+ return self._format(record)
+ except KeyError as e:
+ raise ValueError('Formatting field not found in record: %s' % e)
+
+
class StrFormatStyle(PercentStyle):
default_format = '{message}'
asctime_format = '{asctime}'
asctime_search = '{asctime'
- fmt_spec = re.compile(r'^(.?[<>=^])?[+ -]?#?0?(\d+|{\w+})?[,_]?(\.(\d+|{\w+}))?[bcdefgnosx%]?$', re.I)
- field_spec = re.compile(r'^(\d+|\w+)(\.\w+|\[[^]]+\])*$')
-
- def _format(self, record):
+ fmt_spec = re.compile(r'^(.?[<>=^])?[+ -]?#?0?(\d+|{\w+})?[,_]?(\.(\d+|{\w+}))?[bcdefgnosx%]?$', re.I)
+ field_spec = re.compile(r'^(\d+|\w+)(\.\w+|\[[^]]+\])*$')
+
+ def _format(self, record):
return self._fmt.format(**record.__dict__)
- def validate(self):
- """Validate the input format, ensure it is the correct string formatting style"""
- fields = set()
- try:
- for _, fieldname, spec, conversion in _str_formatter.parse(self._fmt):
- if fieldname:
- if not self.field_spec.match(fieldname):
- raise ValueError('invalid field name/expression: %r' % fieldname)
- fields.add(fieldname)
- if conversion and conversion not in 'rsa':
- raise ValueError('invalid conversion: %r' % conversion)
- if spec and not self.fmt_spec.match(spec):
- raise ValueError('bad specifier: %r' % spec)
- except ValueError as e:
- raise ValueError('invalid format: %s' % e)
- if not fields:
- raise ValueError('invalid format: no fields')
-
-
+ def validate(self):
+ """Validate the input format, ensure it is the correct string formatting style"""
+ fields = set()
+ try:
+ for _, fieldname, spec, conversion in _str_formatter.parse(self._fmt):
+ if fieldname:
+ if not self.field_spec.match(fieldname):
+ raise ValueError('invalid field name/expression: %r' % fieldname)
+ fields.add(fieldname)
+ if conversion and conversion not in 'rsa':
+ raise ValueError('invalid conversion: %r' % conversion)
+ if spec and not self.fmt_spec.match(spec):
+ raise ValueError('bad specifier: %r' % spec)
+ except ValueError as e:
+ raise ValueError('invalid format: %s' % e)
+ if not fields:
+ raise ValueError('invalid format: no fields')
+
+
class StringTemplateStyle(PercentStyle):
default_format = '${message}'
asctime_format = '${asctime}'
@@ -479,24 +479,24 @@ class StringTemplateStyle(PercentStyle):
fmt = self._fmt
return fmt.find('$asctime') >= 0 or fmt.find(self.asctime_format) >= 0
- def validate(self):
- pattern = Template.pattern
- fields = set()
- for m in pattern.finditer(self._fmt):
- d = m.groupdict()
- if d['named']:
- fields.add(d['named'])
- elif d['braced']:
- fields.add(d['braced'])
- elif m.group(0) == '$':
- raise ValueError('invalid format: bare \'$\' not allowed')
- if not fields:
- raise ValueError('invalid format: no fields')
-
- def _format(self, record):
+ def validate(self):
+ pattern = Template.pattern
+ fields = set()
+ for m in pattern.finditer(self._fmt):
+ d = m.groupdict()
+ if d['named']:
+ fields.add(d['named'])
+ elif d['braced']:
+ fields.add(d['braced'])
+ elif m.group(0) == '$':
+ raise ValueError('invalid format: bare \'$\' not allowed')
+ if not fields:
+ raise ValueError('invalid format: no fields')
+
+ def _format(self, record):
return self._tpl.substitute(**record.__dict__)
-
+
BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"
_STYLES = {
@@ -513,7 +513,7 @@ class Formatter(object):
responsible for converting a LogRecord to (usually) a string which can
be interpreted by either a human or an external system. The base Formatter
allows a formatting string to be specified. If none is supplied, the
- style-dependent default value, "%(message)s", "{message}", or
+ style-dependent default value, "%(message)s", "{message}", or
"${message}", is used.
The Formatter can be initialized with a format string which makes use of
@@ -550,7 +550,7 @@ class Formatter(object):
converter = time.localtime
- def __init__(self, fmt=None, datefmt=None, style='%', validate=True):
+ def __init__(self, fmt=None, datefmt=None, style='%', validate=True):
"""
Initialize the formatter with specified format strings.
@@ -570,9 +570,9 @@ class Formatter(object):
raise ValueError('Style must be one of: %s' % ','.join(
_STYLES.keys()))
self._style = _STYLES[style][0](fmt)
- if validate:
- self._style.validate()
-
+ if validate:
+ self._style.validate()
+
self._fmt = self._style._fmt
self.datefmt = datefmt
@@ -601,9 +601,9 @@ class Formatter(object):
if datefmt:
s = time.strftime(datefmt, ct)
else:
- s = time.strftime(self.default_time_format, ct)
- if self.default_msec_format:
- s = self.default_msec_format % (s, record.msecs)
+ s = time.strftime(self.default_time_format, ct)
+ if self.default_msec_format:
+ s = self.default_msec_format % (s, record.msecs)
return s
def formatException(self, ei):
@@ -752,8 +752,8 @@ class Filter(object):
"""
Determine if the specified record is to be logged.
- Returns True if the record should be logged, or False otherwise.
- If deemed appropriate, the record may be modified in-place.
+ Returns True if the record should be logged, or False otherwise.
+ If deemed appropriate, the record may be modified in-place.
"""
if self.nlen == 0:
return True
@@ -888,11 +888,11 @@ class Handler(Filterer):
Acquire a thread lock for serializing access to the underlying I/O.
"""
self.lock = threading.RLock()
- _register_at_fork_reinit_lock(self)
+ _register_at_fork_reinit_lock(self)
+
+ def _at_fork_reinit(self):
+ self.lock._at_fork_reinit()
- def _at_fork_reinit(self):
- self.lock._at_fork_reinit()
-
def acquire(self):
"""
Acquire the I/O thread lock.
@@ -1021,8 +1021,8 @@ class Handler(Filterer):
sys.stderr.write('Message: %r\n'
'Arguments: %s\n' % (record.msg,
record.args))
- except RecursionError: # See issue 36272
- raise
+ except RecursionError: # See issue 36272
+ raise
except Exception:
sys.stderr.write('Unable to print the message and arguments'
' - possible formatting error.\nUse the'
@@ -1085,8 +1085,8 @@ class StreamHandler(Handler):
# issue 35046: merged two stream.writes into one.
stream.write(msg + self.terminator)
self.flush()
- except RecursionError: # See issue 36272
- raise
+ except RecursionError: # See issue 36272
+ raise
except Exception:
self.handleError(record)
@@ -1113,8 +1113,8 @@ class StreamHandler(Handler):
def __repr__(self):
level = getLevelName(self.level)
name = getattr(self.stream, 'name', '')
- # bpo-36015: name can be an int
- name = str(name)
+ # bpo-36015: name can be an int
+ name = str(name)
if name:
name += ' '
return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
@@ -1124,7 +1124,7 @@ class FileHandler(StreamHandler):
"""
A handler class which writes formatted logging records to disk files.
"""
- def __init__(self, filename, mode='a', encoding=None, delay=False, errors=None):
+ def __init__(self, filename, mode='a', encoding=None, delay=False, errors=None):
"""
Open the specified file and use it as the stream for logging.
"""
@@ -1135,7 +1135,7 @@ class FileHandler(StreamHandler):
self.baseFilename = os.path.abspath(filename)
self.mode = mode
self.encoding = encoding
- self.errors = errors
+ self.errors = errors
self.delay = delay
if delay:
#We don't open the stream, but we still need to call the
@@ -1172,8 +1172,8 @@ class FileHandler(StreamHandler):
Open the current base file with the (original) mode and encoding.
Return the resulting stream.
"""
- return open(self.baseFilename, self.mode, encoding=self.encoding,
- errors=self.errors)
+ return open(self.baseFilename, self.mode, encoding=self.encoding,
+ errors=self.errors)
def emit(self, record):
"""
@@ -1273,14 +1273,14 @@ class Manager(object):
self.loggerClass = None
self.logRecordFactory = None
- @property
- def disable(self):
- return self._disable
-
- @disable.setter
- def disable(self, value):
- self._disable = _checkLevel(value)
-
+ @property
+ def disable(self):
+ return self._disable
+
+ @disable.setter
+ def disable(self, value):
+ self._disable = _checkLevel(value)
+
def getLogger(self, name):
"""
Get a logger with the specified name (channel name), creating it
@@ -1511,7 +1511,7 @@ class Logger(Filterer):
if self.isEnabledFor(level):
self._log(level, msg, args, **kwargs)
- def findCaller(self, stack_info=False, stacklevel=1):
+ def findCaller(self, stack_info=False, stacklevel=1):
"""
Find the stack frame of the caller so that we can note the source
file name, line number and function name.
@@ -1521,12 +1521,12 @@ class Logger(Filterer):
#IronPython isn't run with -X:Frames.
if f is not None:
f = f.f_back
- orig_f = f
- while f and stacklevel > 1:
- f = f.f_back
- stacklevel -= 1
- if not f:
- f = orig_f
+ orig_f = f
+ while f and stacklevel > 1:
+ f = f.f_back
+ stacklevel -= 1
+ if not f:
+ f = orig_f
rv = "(unknown file)", 0, "(unknown function)", None
while hasattr(f, "f_code"):
co = f.f_code
@@ -1562,8 +1562,8 @@ class Logger(Filterer):
rv.__dict__[key] = extra[key]
return rv
- def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False,
- stacklevel=1):
+ def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False,
+ stacklevel=1):
"""
Low-level logging routine which creates a LogRecord and then calls
all the handlers of this logger to handle the record.
@@ -1574,7 +1574,7 @@ class Logger(Filterer):
#exception on some versions of IronPython. We trap it here so that
#IronPython can use logging.
try:
- fn, lno, func, sinfo = self.findCaller(stack_info, stacklevel)
+ fn, lno, func, sinfo = self.findCaller(stack_info, stacklevel)
except ValueError: # pragma: no cover
fn, lno, func = "(unknown file)", 0, "(unknown function)"
else: # pragma: no cover
@@ -1690,22 +1690,22 @@ class Logger(Filterer):
"""
Is this logger enabled for level 'level'?
"""
- if self.disabled:
- return False
-
+ if self.disabled:
+ return False
+
try:
return self._cache[level]
except KeyError:
_acquireLock()
- try:
- if self.manager.disable >= level:
- is_enabled = self._cache[level] = False
- else:
- is_enabled = self._cache[level] = (
- level >= self.getEffectiveLevel()
- )
- finally:
- _releaseLock()
+ try:
+ if self.manager.disable >= level:
+ is_enabled = self._cache[level] = False
+ else:
+ is_enabled = self._cache[level] = (
+ level >= self.getEffectiveLevel()
+ )
+ finally:
+ _releaseLock()
return is_enabled
def getChild(self, suffix):
@@ -1910,8 +1910,8 @@ def basicConfig(**kwargs):
Do basic configuration for the logging system.
This function does nothing if the root logger already has handlers
- configured, unless the keyword argument *force* is set to ``True``.
- It is a convenience method intended for use by simple scripts
+ configured, unless the keyword argument *force* is set to ``True``.
+ It is a convenience method intended for use by simple scripts
to do one-shot configuration of the logging package.
The default behaviour is to create a StreamHandler which writes to
@@ -1939,18 +1939,18 @@ def basicConfig(**kwargs):
handlers, which will be added to the root handler. Any handler
in the list which does not have a formatter assigned will be
assigned the formatter created in this function.
- force If this keyword is specified as true, any existing handlers
- attached to the root logger are removed and closed, before
- carrying out the configuration as specified by the other
- arguments.
- encoding If specified together with a filename, this encoding is passed to
- the created FileHandler, causing it to be used when the file is
- opened.
- errors If specified together with a filename, this value is passed to the
- created FileHandler, causing it to be used when the file is
- opened in text mode. If not specified, the default value is
- `backslashreplace`.
-
+ force If this keyword is specified as true, any existing handlers
+ attached to the root logger are removed and closed, before
+ carrying out the configuration as specified by the other
+ arguments.
+ encoding If specified together with a filename, this encoding is passed to
+ the created FileHandler, causing it to be used when the file is
+ opened.
+ errors If specified together with a filename, this value is passed to the
+ created FileHandler, causing it to be used when the file is
+ opened in text mode. If not specified, the default value is
+ `backslashreplace`.
+
Note that you could specify a stream created using open(filename, mode)
rather than passing the filename and mode in. However, it should be
remembered that StreamHandler does not close its stream (since it may be
@@ -1966,24 +1966,24 @@ def basicConfig(**kwargs):
``filename``/``filemode``, or ``filename``/``filemode`` specified
together with ``stream``, or ``handlers`` specified together with
``stream``.
-
- .. versionchanged:: 3.8
- Added the ``force`` parameter.
-
- .. versionchanged:: 3.9
- Added the ``encoding`` and ``errors`` parameters.
+
+ .. versionchanged:: 3.8
+ Added the ``force`` parameter.
+
+ .. versionchanged:: 3.9
+ Added the ``encoding`` and ``errors`` parameters.
"""
# Add thread safety in case someone mistakenly calls
# basicConfig() from multiple threads
_acquireLock()
try:
- force = kwargs.pop('force', False)
- encoding = kwargs.pop('encoding', None)
- errors = kwargs.pop('errors', 'backslashreplace')
- if force:
- for h in root.handlers[:]:
- root.removeHandler(h)
- h.close()
+ force = kwargs.pop('force', False)
+ encoding = kwargs.pop('encoding', None)
+ errors = kwargs.pop('errors', 'backslashreplace')
+ if force:
+ for h in root.handlers[:]:
+ root.removeHandler(h)
+ h.close()
if len(root.handlers) == 0:
handlers = kwargs.pop("handlers", None)
if handlers is None:
@@ -1998,10 +1998,10 @@ def basicConfig(**kwargs):
filename = kwargs.pop("filename", None)
mode = kwargs.pop("filemode", 'a')
if filename:
- if 'b'in mode:
- errors = None
- h = FileHandler(filename, mode,
- encoding=encoding, errors=errors)
+ if 'b'in mode:
+ errors = None
+ h = FileHandler(filename, mode,
+ encoding=encoding, errors=errors)
else:
stream = kwargs.pop("stream", None)
h = StreamHandler(stream)
@@ -2037,9 +2037,9 @@ def getLogger(name=None):
If no name is specified, return the root logger.
"""
- if not name or isinstance(name, str) and name == root.name:
+ if not name or isinstance(name, str) and name == root.name:
return root
- return Logger.manager.getLogger(name)
+ return Logger.manager.getLogger(name)
def critical(msg, *args, **kwargs):
"""
@@ -2178,9 +2178,9 @@ class NullHandler(Handler):
def createLock(self):
self.lock = None
- def _at_fork_reinit(self):
- pass
-
+ def _at_fork_reinit(self):
+ pass
+
# Warnings integration
_warnings_showwarning = None
diff --git a/contrib/tools/python3/src/Lib/logging/config.py b/contrib/tools/python3/src/Lib/logging/config.py
index 6cdcc022ad..fd3aded760 100644
--- a/contrib/tools/python3/src/Lib/logging/config.py
+++ b/contrib/tools/python3/src/Lib/logging/config.py
@@ -1,4 +1,4 @@
-# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved.
+# Copyright 2001-2019 by Vinay Sajip. All Rights Reserved.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
@@ -19,7 +19,7 @@ Configuration functions for the logging package for Python. The core package
is based on PEP 282 and comments thereto in comp.lang.python, and influenced
by Apache's log4j system.
-Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved.
+Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved.
To use, simply 'import logging' and log away!
"""
@@ -143,7 +143,7 @@ def _install_handlers(cp, formatters):
kwargs = section.get("kwargs", '{}')
kwargs = eval(kwargs, vars(logging))
h = klass(*args, **kwargs)
- h.name = hand
+ h.name = hand
if "level" in section:
level = section["level"]
h.setLevel(level)
@@ -174,10 +174,10 @@ def _handle_existing_loggers(existing, child_loggers, disable_existing):
for log in existing:
logger = root.manager.loggerDict[log]
if log in child_loggers:
- if not isinstance(logger, logging.PlaceHolder):
- logger.setLevel(logging.NOTSET)
- logger.handlers = []
- logger.propagate = True
+ if not isinstance(logger, logging.PlaceHolder):
+ logger.setLevel(logging.NOTSET)
+ logger.handlers = []
+ logger.propagate = True
else:
logger.disabled = disable_existing
@@ -448,7 +448,7 @@ class BaseConfigurator(object):
value = ConvertingList(value)
value.configurator = self
elif not isinstance(value, ConvertingTuple) and\
- isinstance(value, tuple) and not hasattr(value, '_fields'):
+ isinstance(value, tuple) and not hasattr(value, '_fields'):
value = ConvertingTuple(value)
value.configurator = self
elif isinstance(value, str): # str for py3k
@@ -668,19 +668,19 @@ class DictConfigurator(BaseConfigurator):
dfmt = config.get('datefmt', None)
style = config.get('style', '%')
cname = config.get('class', None)
-
+
if not cname:
c = logging.Formatter
else:
c = _resolve(cname)
-
- # A TypeError would be raised if "validate" key is passed in with a formatter callable
- # that does not accept "validate" as a parameter
- if 'validate' in config: # if user hasn't mentioned it, the default will be fine
- result = c(fmt, dfmt, style, config['validate'])
- else:
- result = c(fmt, dfmt, style)
-
+
+ # A TypeError would be raised if "validate" key is passed in with a formatter callable
+ # that does not accept "validate" as a parameter
+ if 'validate' in config: # if user hasn't mentioned it, the default will be fine
+ result = c(fmt, dfmt, style, config['validate'])
+ else:
+ result = c(fmt, dfmt, style)
+
return result
def configure_filter(self, config):
diff --git a/contrib/tools/python3/src/Lib/logging/handlers.py b/contrib/tools/python3/src/Lib/logging/handlers.py
index af0b49ee70..572e370110 100644
--- a/contrib/tools/python3/src/Lib/logging/handlers.py
+++ b/contrib/tools/python3/src/Lib/logging/handlers.py
@@ -1,4 +1,4 @@
-# Copyright 2001-2021 by Vinay Sajip. All Rights Reserved.
+# Copyright 2001-2021 by Vinay Sajip. All Rights Reserved.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
@@ -18,7 +18,7 @@
Additional handlers for the logging package for Python. The core package is
based on PEP 282 and comments thereto in comp.lang.python.
-Copyright (C) 2001-2021 Vinay Sajip. All Rights Reserved.
+Copyright (C) 2001-2021 Vinay Sajip. All Rights Reserved.
To use, simply 'import logging.handlers' and log away!
"""
@@ -27,7 +27,7 @@ import logging, socket, os, pickle, struct, time, re
from stat import ST_DEV, ST_INO, ST_MTIME
import queue
import threading
-import copy
+import copy
#
# Some constants...
@@ -48,19 +48,19 @@ class BaseRotatingHandler(logging.FileHandler):
Not meant to be instantiated directly. Instead, use RotatingFileHandler
or TimedRotatingFileHandler.
"""
- namer = None
- rotator = None
-
- def __init__(self, filename, mode, encoding=None, delay=False, errors=None):
+ namer = None
+ rotator = None
+
+ def __init__(self, filename, mode, encoding=None, delay=False, errors=None):
"""
Use the specified filename for streamed logging
"""
- logging.FileHandler.__init__(self, filename, mode=mode,
- encoding=encoding, delay=delay,
- errors=errors)
+ logging.FileHandler.__init__(self, filename, mode=mode,
+ encoding=encoding, delay=delay,
+ errors=errors)
self.mode = mode
self.encoding = encoding
- self.errors = errors
+ self.errors = errors
def emit(self, record):
"""
@@ -121,8 +121,8 @@ class RotatingFileHandler(BaseRotatingHandler):
Handler for logging to a set of files, which switches from one file
to the next when the current file reaches a certain size.
"""
- def __init__(self, filename, mode='a', maxBytes=0, backupCount=0,
- encoding=None, delay=False, errors=None):
+ def __init__(self, filename, mode='a', maxBytes=0, backupCount=0,
+ encoding=None, delay=False, errors=None):
"""
Open the specified file and use it as the stream for logging.
@@ -150,8 +150,8 @@ class RotatingFileHandler(BaseRotatingHandler):
# on each run.
if maxBytes > 0:
mode = 'a'
- BaseRotatingHandler.__init__(self, filename, mode, encoding=encoding,
- delay=delay, errors=errors)
+ BaseRotatingHandler.__init__(self, filename, mode, encoding=encoding,
+ delay=delay, errors=errors)
self.maxBytes = maxBytes
self.backupCount = backupCount
@@ -185,17 +185,17 @@ class RotatingFileHandler(BaseRotatingHandler):
Basically, see if the supplied record would cause the file to exceed
the size limit we have.
"""
- # See bpo-45401: Never rollover anything other than regular files
- if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
- return False
+ # See bpo-45401: Never rollover anything other than regular files
+ if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
+ return False
if self.stream is None: # delay was set...
self.stream = self._open()
if self.maxBytes > 0: # are we rolling over?
msg = "%s\n" % self.format(record)
self.stream.seek(0, 2) #due to non-posix-compliant Windows feature
if self.stream.tell() + len(msg) >= self.maxBytes:
- return True
- return False
+ return True
+ return False
class TimedRotatingFileHandler(BaseRotatingHandler):
"""
@@ -205,11 +205,11 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
If backupCount is > 0, when rollover is done, no more than backupCount
files are kept - the oldest ones are deleted.
"""
- def __init__(self, filename, when='h', interval=1, backupCount=0,
- encoding=None, delay=False, utc=False, atTime=None,
- errors=None):
- BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding,
- delay=delay, errors=errors)
+ def __init__(self, filename, when='h', interval=1, backupCount=0,
+ encoding=None, delay=False, utc=False, atTime=None,
+ errors=None):
+ BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding,
+ delay=delay, errors=errors)
self.when = when.upper()
self.backupCount = backupCount
self.utc = utc
@@ -345,13 +345,13 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
record is not used, as we are just comparing times, but it is needed so
the method signatures are the same
"""
- # See bpo-45401: Never rollover anything other than regular files
- if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
- return False
+ # See bpo-45401: Never rollover anything other than regular files
+ if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
+ return False
t = int(time.time())
if t >= self.rolloverAt:
- return True
- return False
+ return True
+ return False
def getFilesToDelete(self):
"""
@@ -362,32 +362,32 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
dirName, baseName = os.path.split(self.baseFilename)
fileNames = os.listdir(dirName)
result = []
- # See bpo-44753: Don't use the extension when computing the prefix.
- n, e = os.path.splitext(baseName)
- prefix = n + '.'
+ # See bpo-44753: Don't use the extension when computing the prefix.
+ n, e = os.path.splitext(baseName)
+ prefix = n + '.'
plen = len(prefix)
for fileName in fileNames:
- if self.namer is None:
- # Our files will always start with baseName
- if not fileName.startswith(baseName):
- continue
- else:
- # Our files could be just about anything after custom naming, but
- # likely candidates are of the form
- # foo.log.DATETIME_SUFFIX or foo.DATETIME_SUFFIX.log
- if (not fileName.startswith(baseName) and fileName.endswith(e) and
- len(fileName) > (plen + 1) and not fileName[plen+1].isdigit()):
- continue
-
+ if self.namer is None:
+ # Our files will always start with baseName
+ if not fileName.startswith(baseName):
+ continue
+ else:
+ # Our files could be just about anything after custom naming, but
+ # likely candidates are of the form
+ # foo.log.DATETIME_SUFFIX or foo.DATETIME_SUFFIX.log
+ if (not fileName.startswith(baseName) and fileName.endswith(e) and
+ len(fileName) > (plen + 1) and not fileName[plen+1].isdigit()):
+ continue
+
if fileName[:plen] == prefix:
suffix = fileName[plen:]
- # See bpo-45628: The date/time suffix could be anywhere in the
- # filename
- parts = suffix.split('.')
- for part in parts:
- if self.extMatch.match(part):
- result.append(os.path.join(dirName, fileName))
- break
+ # See bpo-45628: The date/time suffix could be anywhere in the
+ # filename
+ parts = suffix.split('.')
+ for part in parts:
+ if self.extMatch.match(part):
+ result.append(os.path.join(dirName, fileName))
+ break
if len(result) < self.backupCount:
result = []
else:
@@ -465,11 +465,11 @@ class WatchedFileHandler(logging.FileHandler):
This handler is based on a suggestion and patch by Chad J.
Schroeder.
"""
- def __init__(self, filename, mode='a', encoding=None, delay=False,
- errors=None):
- logging.FileHandler.__init__(self, filename, mode=mode,
- encoding=encoding, delay=delay,
- errors=errors)
+ def __init__(self, filename, mode='a', encoding=None, delay=False,
+ errors=None):
+ logging.FileHandler.__init__(self, filename, mode=mode,
+ encoding=encoding, delay=delay,
+ errors=errors)
self.dev, self.ino = -1, -1
self._statstream()
@@ -767,10 +767,10 @@ class SysLogHandler(logging.Handler):
LOG_CRON = 9 # clock daemon
LOG_AUTHPRIV = 10 # security/authorization messages (private)
LOG_FTP = 11 # FTP daemon
- LOG_NTP = 12 # NTP subsystem
- LOG_SECURITY = 13 # Log audit
- LOG_CONSOLE = 14 # Log alert
- LOG_SOLCRON = 15 # Scheduling daemon (Solaris)
+ LOG_NTP = 12 # NTP subsystem
+ LOG_SECURITY = 13 # Log audit
+ LOG_CONSOLE = 14 # Log alert
+ LOG_SOLCRON = 15 # Scheduling daemon (Solaris)
# other codes through 15 reserved for system use
LOG_LOCAL0 = 16 # reserved for local use
@@ -798,30 +798,30 @@ class SysLogHandler(logging.Handler):
}
facility_names = {
- "auth": LOG_AUTH,
- "authpriv": LOG_AUTHPRIV,
- "console": LOG_CONSOLE,
- "cron": LOG_CRON,
- "daemon": LOG_DAEMON,
- "ftp": LOG_FTP,
- "kern": LOG_KERN,
- "lpr": LOG_LPR,
- "mail": LOG_MAIL,
- "news": LOG_NEWS,
- "ntp": LOG_NTP,
- "security": LOG_SECURITY,
- "solaris-cron": LOG_SOLCRON,
- "syslog": LOG_SYSLOG,
- "user": LOG_USER,
- "uucp": LOG_UUCP,
- "local0": LOG_LOCAL0,
- "local1": LOG_LOCAL1,
- "local2": LOG_LOCAL2,
- "local3": LOG_LOCAL3,
- "local4": LOG_LOCAL4,
- "local5": LOG_LOCAL5,
- "local6": LOG_LOCAL6,
- "local7": LOG_LOCAL7,
+ "auth": LOG_AUTH,
+ "authpriv": LOG_AUTHPRIV,
+ "console": LOG_CONSOLE,
+ "cron": LOG_CRON,
+ "daemon": LOG_DAEMON,
+ "ftp": LOG_FTP,
+ "kern": LOG_KERN,
+ "lpr": LOG_LPR,
+ "mail": LOG_MAIL,
+ "news": LOG_NEWS,
+ "ntp": LOG_NTP,
+ "security": LOG_SECURITY,
+ "solaris-cron": LOG_SOLCRON,
+ "syslog": LOG_SYSLOG,
+ "user": LOG_USER,
+ "uucp": LOG_UUCP,
+ "local0": LOG_LOCAL0,
+ "local1": LOG_LOCAL1,
+ "local2": LOG_LOCAL2,
+ "local3": LOG_LOCAL3,
+ "local4": LOG_LOCAL4,
+ "local5": LOG_LOCAL5,
+ "local6": LOG_LOCAL6,
+ "local7": LOG_LOCAL7,
}
#The map below appears to be trivially lowercasing the key. However,
@@ -1198,20 +1198,20 @@ class HTTPHandler(logging.Handler):
"""
return record.__dict__
- def getConnection(self, host, secure):
- """
- get a HTTP[S]Connection.
-
- Override when a custom connection is required, for example if
- there is a proxy.
- """
- import http.client
- if secure:
- connection = http.client.HTTPSConnection(host, context=self.context)
- else:
- connection = http.client.HTTPConnection(host)
- return connection
-
+ def getConnection(self, host, secure):
+ """
+ get a HTTP[S]Connection.
+
+ Override when a custom connection is required, for example if
+ there is a proxy.
+ """
+ import http.client
+ if secure:
+ connection = http.client.HTTPSConnection(host, context=self.context)
+ else:
+ connection = http.client.HTTPConnection(host)
+ return connection
+
def emit(self, record):
"""
Emit a record.
@@ -1219,9 +1219,9 @@ class HTTPHandler(logging.Handler):
Send the record to the Web server as a percent-encoded dictionary
"""
try:
- import urllib.parse
+ import urllib.parse
host = self.host
- h = self.getConnection(host, self.secure)
+ h = self.getConnection(host, self.secure)
url = self.url
data = urllib.parse.urlencode(self.mapLogRecord(record))
if self.method == "GET":
@@ -1297,7 +1297,7 @@ class BufferingHandler(logging.Handler):
"""
self.acquire()
try:
- self.buffer.clear()
+ self.buffer.clear()
finally:
self.release()
@@ -1349,11 +1349,11 @@ class MemoryHandler(BufferingHandler):
"""
Set the target handler for this handler.
"""
- self.acquire()
- try:
- self.target = target
- finally:
- self.release()
+ self.acquire()
+ try:
+ self.target = target
+ finally:
+ self.release()
def flush(self):
"""
@@ -1368,7 +1368,7 @@ class MemoryHandler(BufferingHandler):
if self.target:
for record in self.buffer:
self.target.handle(record)
- self.buffer.clear()
+ self.buffer.clear()
finally:
self.release()
@@ -1437,8 +1437,8 @@ class QueueHandler(logging.Handler):
# exc_info and exc_text attributes, as they are no longer
# needed and, if not None, will typically not be pickleable.
msg = self.format(record)
- # bpo-35726: make copy of record to avoid affecting other handlers in the chain.
- record = copy.copy(record)
+ # bpo-35726: make copy of record to avoid affecting other handlers in the chain.
+ record = copy.copy(record)
record.message = msg
record.msg = msg
record.args = None
@@ -1496,7 +1496,7 @@ class QueueListener(object):
t.daemon = True
t.start()
- def prepare(self, record):
+ def prepare(self, record):
"""
Prepare a record for handling.
@@ -1536,8 +1536,8 @@ class QueueListener(object):
try:
record = self.dequeue(True)
if record is self._sentinel:
- if has_task_done:
- q.task_done()
+ if has_task_done:
+ q.task_done()
break
self.handle(record)
if has_task_done:
diff --git a/contrib/tools/python3/src/Lib/lzma.py b/contrib/tools/python3/src/Lib/lzma.py
index 85dc528f65..0aa30fe87f 100644
--- a/contrib/tools/python3/src/Lib/lzma.py
+++ b/contrib/tools/python3/src/Lib/lzma.py
@@ -225,22 +225,22 @@ class LZMAFile(_compression.BaseStream):
"""Write a bytes object to the file.
Returns the number of uncompressed bytes written, which is
- always the length of data in bytes. Note that due to buffering,
- the file on disk may not reflect the data written until close()
- is called.
+ always the length of data in bytes. Note that due to buffering,
+ the file on disk may not reflect the data written until close()
+ is called.
"""
self._check_can_write()
- if isinstance(data, (bytes, bytearray)):
- length = len(data)
- else:
- # accept any data that supports the buffer protocol
- data = memoryview(data)
- length = data.nbytes
-
+ if isinstance(data, (bytes, bytearray)):
+ length = len(data)
+ else:
+ # accept any data that supports the buffer protocol
+ data = memoryview(data)
+ length = data.nbytes
+
compressed = self._compressor.compress(data)
self._fp.write(compressed)
- self._pos += length
- return length
+ self._pos += length
+ return length
def seek(self, offset, whence=io.SEEK_SET):
"""Change the file position.
diff --git a/contrib/tools/python3/src/Lib/mailbox.py b/contrib/tools/python3/src/Lib/mailbox.py
index bbb41d5c0e..70da07ed2e 100644
--- a/contrib/tools/python3/src/Lib/mailbox.py
+++ b/contrib/tools/python3/src/Lib/mailbox.py
@@ -18,7 +18,7 @@ import email.message
import email.generator
import io
import contextlib
-from types import GenericAlias
+from types import GenericAlias
try:
import fcntl
except ImportError:
@@ -261,9 +261,9 @@ class Mailbox:
else:
raise TypeError('Invalid message type: %s' % type(message))
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
class Maildir(Mailbox):
"""A qmail-style Maildir mailbox."""
@@ -787,7 +787,7 @@ class _mboxMMDF(_singlefileMailbox):
def get_string(self, key, from_=False):
"""Return a string representation or raise a KeyError."""
return email.message_from_bytes(
- self.get_bytes(key, from_)).as_string(unixfrom=from_)
+ self.get_bytes(key, from_)).as_string(unixfrom=from_)
def get_bytes(self, key, from_=False):
"""Return a string representation or raise a KeyError."""
@@ -2018,9 +2018,9 @@ class _ProxyFile:
return False
return self._file.closed
- __class_getitem__ = classmethod(GenericAlias)
+ __class_getitem__ = classmethod(GenericAlias)
+
-
class _PartialFile(_ProxyFile):
"""A read-only wrapper of part of a file."""
diff --git a/contrib/tools/python3/src/Lib/mailcap.py b/contrib/tools/python3/src/Lib/mailcap.py
index 250fdf9a27..ae416a8e9f 100644
--- a/contrib/tools/python3/src/Lib/mailcap.py
+++ b/contrib/tools/python3/src/Lib/mailcap.py
@@ -251,7 +251,7 @@ def test():
else:
print("Executing:", command)
sts = os.system(command)
- sts = os.waitstatus_to_exitcode(sts)
+ sts = os.waitstatus_to_exitcode(sts)
if sts:
print("Exit status:", sts)
diff --git a/contrib/tools/python3/src/Lib/mimetypes.py b/contrib/tools/python3/src/Lib/mimetypes.py
index b29e6b7f9d..d36e1664cd 100644
--- a/contrib/tools/python3/src/Lib/mimetypes.py
+++ b/contrib/tools/python3/src/Lib/mimetypes.py
@@ -66,13 +66,13 @@ class MimeTypes:
def __init__(self, filenames=(), strict=True):
if not inited:
init()
- self.encodings_map = _encodings_map_default.copy()
- self.suffix_map = _suffix_map_default.copy()
+ self.encodings_map = _encodings_map_default.copy()
+ self.suffix_map = _suffix_map_default.copy()
self.types_map = ({}, {}) # dict for (non-strict, strict)
self.types_map_inv = ({}, {})
- for (ext, type) in _types_map_default.items():
+ for (ext, type) in _types_map_default.items():
self.add_type(type, ext, True)
- for (ext, type) in _common_types_default.items():
+ for (ext, type) in _common_types_default.items():
self.add_type(type, ext, False)
for name in filenames:
self.read(name, strict)
@@ -95,7 +95,7 @@ class MimeTypes:
exts.append(ext)
def guess_type(self, url, strict=True):
- """Guess the type of a file which is either a URL or a path-like object.
+ """Guess the type of a file which is either a URL or a path-like object.
Return value is a tuple (type, encoding) where type is None if
the type can't be guessed (no or unknown suffix) or a string
@@ -113,8 +113,8 @@ class MimeTypes:
Optional `strict' argument when False adds a bunch of commonly found,
but non-standard types.
"""
- url = os.fspath(url)
- scheme, url = urllib.parse._splittype(url)
+ url = os.fspath(url)
+ scheme, url = urllib.parse._splittype(url)
if scheme == 'data':
# syntax of data URLs:
# dataurl := "data:" [ mediatype ] [ ";base64" ] "," data
@@ -169,7 +169,7 @@ class MimeTypes:
but non-standard types.
"""
type = type.lower()
- extensions = list(self.types_map_inv[True].get(type, []))
+ extensions = list(self.types_map_inv[True].get(type, []))
if not strict:
for ext in self.types_map_inv[False].get(type, []):
if ext not in extensions:
@@ -346,19 +346,19 @@ def init(files=None):
global suffix_map, types_map, encodings_map, common_types
global inited, _db
inited = True # so that MimeTypes.__init__() doesn't call us again
-
- if files is None or _db is None:
- db = MimeTypes()
+
+ if files is None or _db is None:
+ db = MimeTypes()
if _winreg:
db.read_windows_registry()
-
- if files is None:
- files = knownfiles
- else:
- files = knownfiles + list(files)
- else:
- db = _db
-
+
+ if files is None:
+ files = knownfiles
+ else:
+ files = knownfiles + list(files)
+ else:
+ db = _db
+
for file in files:
if os.path.isfile(file):
db.read(file)
@@ -372,7 +372,7 @@ def init(files=None):
def read_mime_types(file):
try:
- f = open(file, encoding='utf-8')
+ f = open(file, encoding='utf-8')
except OSError:
return None
with f:
@@ -382,12 +382,12 @@ def read_mime_types(file):
def _default_mime_types():
- global suffix_map, _suffix_map_default
- global encodings_map, _encodings_map_default
- global types_map, _types_map_default
- global common_types, _common_types_default
+ global suffix_map, _suffix_map_default
+ global encodings_map, _encodings_map_default
+ global types_map, _types_map_default
+ global common_types, _common_types_default
- suffix_map = _suffix_map_default = {
+ suffix_map = _suffix_map_default = {
'.svgz': '.svg.gz',
'.tgz': '.tar.gz',
'.taz': '.tar.gz',
@@ -396,52 +396,52 @@ def _default_mime_types():
'.txz': '.tar.xz',
}
- encodings_map = _encodings_map_default = {
+ encodings_map = _encodings_map_default = {
'.gz': 'gzip',
'.Z': 'compress',
'.bz2': 'bzip2',
'.xz': 'xz',
- '.br': 'br',
+ '.br': 'br',
}
# Before adding new types, make sure they are either registered with IANA,
# at http://www.iana.org/assignments/media-types
# or extensions, i.e. using the x- prefix
- # If you add to these, please keep them sorted by mime type.
- # Make sure the entry with the preferred file extension for a particular mime type
- # appears before any others of the same mimetype.
- types_map = _types_map_default = {
- '.js' : 'application/javascript',
- '.mjs' : 'application/javascript',
- '.json' : 'application/json',
- '.webmanifest': 'application/manifest+json',
- '.doc' : 'application/msword',
- '.dot' : 'application/msword',
- '.wiz' : 'application/msword',
- '.bin' : 'application/octet-stream',
+ # If you add to these, please keep them sorted by mime type.
+ # Make sure the entry with the preferred file extension for a particular mime type
+ # appears before any others of the same mimetype.
+ types_map = _types_map_default = {
+ '.js' : 'application/javascript',
+ '.mjs' : 'application/javascript',
+ '.json' : 'application/json',
+ '.webmanifest': 'application/manifest+json',
+ '.doc' : 'application/msword',
+ '.dot' : 'application/msword',
+ '.wiz' : 'application/msword',
+ '.bin' : 'application/octet-stream',
'.a' : 'application/octet-stream',
- '.dll' : 'application/octet-stream',
- '.exe' : 'application/octet-stream',
- '.o' : 'application/octet-stream',
- '.obj' : 'application/octet-stream',
- '.so' : 'application/octet-stream',
- '.oda' : 'application/oda',
- '.pdf' : 'application/pdf',
- '.p7c' : 'application/pkcs7-mime',
- '.ps' : 'application/postscript',
+ '.dll' : 'application/octet-stream',
+ '.exe' : 'application/octet-stream',
+ '.o' : 'application/octet-stream',
+ '.obj' : 'application/octet-stream',
+ '.so' : 'application/octet-stream',
+ '.oda' : 'application/oda',
+ '.pdf' : 'application/pdf',
+ '.p7c' : 'application/pkcs7-mime',
+ '.ps' : 'application/postscript',
'.ai' : 'application/postscript',
- '.eps' : 'application/postscript',
- '.m3u' : 'application/vnd.apple.mpegurl',
- '.m3u8' : 'application/vnd.apple.mpegurl',
- '.xls' : 'application/vnd.ms-excel',
- '.xlb' : 'application/vnd.ms-excel',
- '.ppt' : 'application/vnd.ms-powerpoint',
- '.pot' : 'application/vnd.ms-powerpoint',
- '.ppa' : 'application/vnd.ms-powerpoint',
- '.pps' : 'application/vnd.ms-powerpoint',
- '.pwz' : 'application/vnd.ms-powerpoint',
- '.wasm' : 'application/wasm',
+ '.eps' : 'application/postscript',
+ '.m3u' : 'application/vnd.apple.mpegurl',
+ '.m3u8' : 'application/vnd.apple.mpegurl',
+ '.xls' : 'application/vnd.ms-excel',
+ '.xlb' : 'application/vnd.ms-excel',
+ '.ppt' : 'application/vnd.ms-powerpoint',
+ '.pot' : 'application/vnd.ms-powerpoint',
+ '.ppa' : 'application/vnd.ms-powerpoint',
+ '.pps' : 'application/vnd.ms-powerpoint',
+ '.pwz' : 'application/vnd.ms-powerpoint',
+ '.wasm' : 'application/wasm',
'.bcpio' : 'application/x-bcpio',
'.cpio' : 'application/x-cpio',
'.csh' : 'application/x-csh',
@@ -450,16 +450,16 @@ def _default_mime_types():
'.hdf' : 'application/x-hdf',
'.latex' : 'application/x-latex',
'.mif' : 'application/x-mif',
- '.cdf' : 'application/x-netcdf',
+ '.cdf' : 'application/x-netcdf',
'.nc' : 'application/x-netcdf',
'.p12' : 'application/x-pkcs12',
'.pfx' : 'application/x-pkcs12',
- '.ram' : 'application/x-pn-realaudio',
+ '.ram' : 'application/x-pn-realaudio',
'.pyc' : 'application/x-python-code',
'.pyo' : 'application/x-python-code',
'.sh' : 'application/x-sh',
'.shar' : 'application/x-shar',
- '.swf' : 'application/x-shockwave-flash',
+ '.swf' : 'application/x-shockwave-flash',
'.sv4cpio': 'application/x-sv4cpio',
'.sv4crc' : 'application/x-sv4crc',
'.tar' : 'application/x-tar',
@@ -467,104 +467,104 @@ def _default_mime_types():
'.tex' : 'application/x-tex',
'.texi' : 'application/x-texinfo',
'.texinfo': 'application/x-texinfo',
- '.roff' : 'application/x-troff',
- '.t' : 'application/x-troff',
+ '.roff' : 'application/x-troff',
+ '.t' : 'application/x-troff',
'.tr' : 'application/x-troff',
- '.man' : 'application/x-troff-man',
- '.me' : 'application/x-troff-me',
- '.ms' : 'application/x-troff-ms',
+ '.man' : 'application/x-troff-man',
+ '.me' : 'application/x-troff-me',
+ '.ms' : 'application/x-troff-ms',
'.ustar' : 'application/x-ustar',
- '.src' : 'application/x-wais-source',
- '.xsl' : 'application/xml',
- '.rdf' : 'application/xml',
- '.wsdl' : 'application/xml',
- '.xpdl' : 'application/xml',
- '.zip' : 'application/zip',
- '.au' : 'audio/basic',
- '.snd' : 'audio/basic',
- '.mp3' : 'audio/mpeg',
- '.mp2' : 'audio/mpeg',
- '.aif' : 'audio/x-aiff',
- '.aifc' : 'audio/x-aiff',
- '.aiff' : 'audio/x-aiff',
- '.ra' : 'audio/x-pn-realaudio',
+ '.src' : 'application/x-wais-source',
+ '.xsl' : 'application/xml',
+ '.rdf' : 'application/xml',
+ '.wsdl' : 'application/xml',
+ '.xpdl' : 'application/xml',
+ '.zip' : 'application/zip',
+ '.au' : 'audio/basic',
+ '.snd' : 'audio/basic',
+ '.mp3' : 'audio/mpeg',
+ '.mp2' : 'audio/mpeg',
+ '.aif' : 'audio/x-aiff',
+ '.aifc' : 'audio/x-aiff',
+ '.aiff' : 'audio/x-aiff',
+ '.ra' : 'audio/x-pn-realaudio',
'.wav' : 'audio/x-wav',
- '.bmp' : 'image/bmp',
- '.gif' : 'image/gif',
- '.ief' : 'image/ief',
- '.jpg' : 'image/jpeg',
- '.jpe' : 'image/jpeg',
- '.jpeg' : 'image/jpeg',
- '.png' : 'image/png',
- '.svg' : 'image/svg+xml',
- '.tiff' : 'image/tiff',
- '.tif' : 'image/tiff',
- '.ico' : 'image/vnd.microsoft.icon',
- '.ras' : 'image/x-cmu-raster',
- '.bmp' : 'image/x-ms-bmp',
- '.pnm' : 'image/x-portable-anymap',
- '.pbm' : 'image/x-portable-bitmap',
- '.pgm' : 'image/x-portable-graymap',
- '.ppm' : 'image/x-portable-pixmap',
- '.rgb' : 'image/x-rgb',
+ '.bmp' : 'image/bmp',
+ '.gif' : 'image/gif',
+ '.ief' : 'image/ief',
+ '.jpg' : 'image/jpeg',
+ '.jpe' : 'image/jpeg',
+ '.jpeg' : 'image/jpeg',
+ '.png' : 'image/png',
+ '.svg' : 'image/svg+xml',
+ '.tiff' : 'image/tiff',
+ '.tif' : 'image/tiff',
+ '.ico' : 'image/vnd.microsoft.icon',
+ '.ras' : 'image/x-cmu-raster',
+ '.bmp' : 'image/x-ms-bmp',
+ '.pnm' : 'image/x-portable-anymap',
+ '.pbm' : 'image/x-portable-bitmap',
+ '.pgm' : 'image/x-portable-graymap',
+ '.ppm' : 'image/x-portable-pixmap',
+ '.rgb' : 'image/x-rgb',
'.xbm' : 'image/x-xbitmap',
'.xpm' : 'image/x-xpixmap',
'.xwd' : 'image/x-xwindowdump',
- '.eml' : 'message/rfc822',
- '.mht' : 'message/rfc822',
- '.mhtml' : 'message/rfc822',
- '.nws' : 'message/rfc822',
- '.css' : 'text/css',
- '.csv' : 'text/csv',
- '.html' : 'text/html',
- '.htm' : 'text/html',
- '.txt' : 'text/plain',
- '.bat' : 'text/plain',
- '.c' : 'text/plain',
- '.h' : 'text/plain',
- '.ksh' : 'text/plain',
- '.pl' : 'text/plain',
- '.rtx' : 'text/richtext',
- '.tsv' : 'text/tab-separated-values',
- '.py' : 'text/x-python',
- '.etx' : 'text/x-setext',
- '.sgm' : 'text/x-sgml',
- '.sgml' : 'text/x-sgml',
- '.vcf' : 'text/x-vcard',
- '.xml' : 'text/xml',
- '.mp4' : 'video/mp4',
- '.mpeg' : 'video/mpeg',
- '.m1v' : 'video/mpeg',
- '.mpa' : 'video/mpeg',
- '.mpe' : 'video/mpeg',
- '.mpg' : 'video/mpeg',
- '.mov' : 'video/quicktime',
- '.qt' : 'video/quicktime',
- '.webm' : 'video/webm',
- '.avi' : 'video/x-msvideo',
- '.movie' : 'video/x-sgi-movie',
+ '.eml' : 'message/rfc822',
+ '.mht' : 'message/rfc822',
+ '.mhtml' : 'message/rfc822',
+ '.nws' : 'message/rfc822',
+ '.css' : 'text/css',
+ '.csv' : 'text/csv',
+ '.html' : 'text/html',
+ '.htm' : 'text/html',
+ '.txt' : 'text/plain',
+ '.bat' : 'text/plain',
+ '.c' : 'text/plain',
+ '.h' : 'text/plain',
+ '.ksh' : 'text/plain',
+ '.pl' : 'text/plain',
+ '.rtx' : 'text/richtext',
+ '.tsv' : 'text/tab-separated-values',
+ '.py' : 'text/x-python',
+ '.etx' : 'text/x-setext',
+ '.sgm' : 'text/x-sgml',
+ '.sgml' : 'text/x-sgml',
+ '.vcf' : 'text/x-vcard',
+ '.xml' : 'text/xml',
+ '.mp4' : 'video/mp4',
+ '.mpeg' : 'video/mpeg',
+ '.m1v' : 'video/mpeg',
+ '.mpa' : 'video/mpeg',
+ '.mpe' : 'video/mpeg',
+ '.mpg' : 'video/mpeg',
+ '.mov' : 'video/quicktime',
+ '.qt' : 'video/quicktime',
+ '.webm' : 'video/webm',
+ '.avi' : 'video/x-msvideo',
+ '.movie' : 'video/x-sgi-movie',
}
# These are non-standard types, commonly found in the wild. They will
# only match if strict=0 flag is given to the API methods.
# Please sort these too
- common_types = _common_types_default = {
- '.rtf' : 'application/rtf',
- '.midi': 'audio/midi',
- '.mid' : 'audio/midi',
+ common_types = _common_types_default = {
+ '.rtf' : 'application/rtf',
+ '.midi': 'audio/midi',
+ '.mid' : 'audio/midi',
'.jpg' : 'image/jpg',
- '.pict': 'image/pict',
+ '.pict': 'image/pict',
'.pct' : 'image/pict',
'.pic' : 'image/pict',
- '.xul' : 'text/xul',
+ '.xul' : 'text/xul',
}
_default_mime_types()
-def _main():
+def _main():
import getopt
USAGE = """\
@@ -608,7 +608,7 @@ More than one type argument may be given.
guess, encoding = guess_type(gtype, strict)
if not guess: print("I don't know anything about type", gtype)
else: print('type:', guess, 'encoding:', encoding)
-
-
-if __name__ == '__main__':
- _main()
+
+
+if __name__ == '__main__':
+ _main()
diff --git a/contrib/tools/python3/src/Lib/modulefinder.py b/contrib/tools/python3/src/Lib/modulefinder.py
index 4da51252f3..cb455f40c4 100644
--- a/contrib/tools/python3/src/Lib/modulefinder.py
+++ b/contrib/tools/python3/src/Lib/modulefinder.py
@@ -5,10 +5,10 @@ import importlib._bootstrap_external
import importlib.machinery
import marshal
import os
-import io
+import io
import sys
-
+
LOAD_CONST = dis.opmap['LOAD_CONST']
IMPORT_NAME = dis.opmap['IMPORT_NAME']
STORE_NAME = dis.opmap['STORE_NAME']
@@ -16,16 +16,16 @@ STORE_GLOBAL = dis.opmap['STORE_GLOBAL']
STORE_OPS = STORE_NAME, STORE_GLOBAL
EXTENDED_ARG = dis.EXTENDED_ARG
-# Old imp constants:
-
-_SEARCH_ERROR = 0
-_PY_SOURCE = 1
-_PY_COMPILED = 2
-_C_EXTENSION = 3
-_PKG_DIRECTORY = 5
-_C_BUILTIN = 6
-_PY_FROZEN = 7
-
+# Old imp constants:
+
+_SEARCH_ERROR = 0
+_PY_SOURCE = 1
+_PY_COMPILED = 2
+_C_EXTENSION = 3
+_PKG_DIRECTORY = 5
+_C_BUILTIN = 6
+_PY_FROZEN = 7
+
# Modulefinder does a good job at simulating Python's, but it can not
# handle __path__ modifications packages make at runtime. Therefore there
# is a mechanism whereby you can register extra paths in this map for a
@@ -50,51 +50,51 @@ def ReplacePackage(oldname, newname):
replacePackageMap[oldname] = newname
-def _find_module(name, path=None):
- """An importlib reimplementation of imp.find_module (for our purposes)."""
-
- # It's necessary to clear the caches for our Finder first, in case any
- # modules are being added/deleted/modified at runtime. In particular,
- # test_modulefinder.py changes file tree contents in a cache-breaking way:
-
- importlib.machinery.PathFinder.invalidate_caches()
-
- spec = importlib.machinery.PathFinder.find_spec(name, path)
-
- if spec is None:
- raise ImportError("No module named {name!r}".format(name=name), name=name)
-
- # Some special cases:
-
- if spec.loader is importlib.machinery.BuiltinImporter:
- return None, None, ("", "", _C_BUILTIN)
-
- if spec.loader is importlib.machinery.FrozenImporter:
- return None, None, ("", "", _PY_FROZEN)
-
- file_path = spec.origin
-
- if spec.loader.is_package(name):
- return None, os.path.dirname(file_path), ("", "", _PKG_DIRECTORY)
-
- if isinstance(spec.loader, importlib.machinery.SourceFileLoader):
- kind = _PY_SOURCE
-
- elif isinstance(spec.loader, importlib.machinery.ExtensionFileLoader):
- kind = _C_EXTENSION
-
- elif isinstance(spec.loader, importlib.machinery.SourcelessFileLoader):
- kind = _PY_COMPILED
-
- else: # Should never happen.
- return None, None, ("", "", _SEARCH_ERROR)
-
- file = io.open_code(file_path)
- suffix = os.path.splitext(file_path)[-1]
-
- return file, file_path, (suffix, "rb", kind)
-
-
+def _find_module(name, path=None):
+ """An importlib reimplementation of imp.find_module (for our purposes)."""
+
+ # It's necessary to clear the caches for our Finder first, in case any
+ # modules are being added/deleted/modified at runtime. In particular,
+ # test_modulefinder.py changes file tree contents in a cache-breaking way:
+
+ importlib.machinery.PathFinder.invalidate_caches()
+
+ spec = importlib.machinery.PathFinder.find_spec(name, path)
+
+ if spec is None:
+ raise ImportError("No module named {name!r}".format(name=name), name=name)
+
+ # Some special cases:
+
+ if spec.loader is importlib.machinery.BuiltinImporter:
+ return None, None, ("", "", _C_BUILTIN)
+
+ if spec.loader is importlib.machinery.FrozenImporter:
+ return None, None, ("", "", _PY_FROZEN)
+
+ file_path = spec.origin
+
+ if spec.loader.is_package(name):
+ return None, os.path.dirname(file_path), ("", "", _PKG_DIRECTORY)
+
+ if isinstance(spec.loader, importlib.machinery.SourceFileLoader):
+ kind = _PY_SOURCE
+
+ elif isinstance(spec.loader, importlib.machinery.ExtensionFileLoader):
+ kind = _C_EXTENSION
+
+ elif isinstance(spec.loader, importlib.machinery.SourcelessFileLoader):
+ kind = _PY_COMPILED
+
+ else: # Should never happen.
+ return None, None, ("", "", _SEARCH_ERROR)
+
+ file = io.open_code(file_path)
+ suffix = os.path.splitext(file_path)[-1]
+
+ return file, file_path, (suffix, "rb", kind)
+
+
class Module:
def __init__(self, name, file=None, path=None):
@@ -121,7 +121,7 @@ class Module:
class ModuleFinder:
- def __init__(self, path=None, debug=0, excludes=None, replace_paths=None):
+ def __init__(self, path=None, debug=0, excludes=None, replace_paths=None):
if path is None:
path = sys.path
self.path = path
@@ -129,8 +129,8 @@ class ModuleFinder:
self.badmodules = {}
self.debug = debug
self.indent = 0
- self.excludes = excludes if excludes is not None else []
- self.replace_paths = replace_paths if replace_paths is not None else []
+ self.excludes = excludes if excludes is not None else []
+ self.replace_paths = replace_paths if replace_paths is not None else []
self.processed_paths = [] # Used in debugging only
def msg(self, level, str, *args):
@@ -156,15 +156,15 @@ class ModuleFinder:
def run_script(self, pathname):
self.msg(2, "run_script", pathname)
- with io.open_code(pathname) as fp:
- stuff = ("", "rb", _PY_SOURCE)
+ with io.open_code(pathname) as fp:
+ stuff = ("", "rb", _PY_SOURCE)
self.load_module('__main__', fp, pathname, stuff)
def load_file(self, pathname):
dir, name = os.path.split(pathname)
name, ext = os.path.splitext(name)
- with io.open_code(pathname) as fp:
- stuff = (ext, "rb", _PY_SOURCE)
+ with io.open_code(pathname) as fp:
+ stuff = (ext, "rb", _PY_SOURCE)
self.load_module(name, fp, pathname, stuff)
def import_hook(self, name, caller=None, fromlist=None, level=-1):
@@ -318,7 +318,7 @@ class ModuleFinder:
except ImportError:
self.msgout(3, "import_module ->", None)
return None
-
+
try:
m = self.load_module(fqname, fp, pathname, stuff)
finally:
@@ -332,13 +332,13 @@ class ModuleFinder:
def load_module(self, fqname, fp, pathname, file_info):
suffix, mode, type = file_info
self.msgin(2, "load_module", fqname, fp and "fp", pathname)
- if type == _PKG_DIRECTORY:
+ if type == _PKG_DIRECTORY:
m = self.load_package(fqname, pathname)
self.msgout(2, "load_module ->", m)
return m
- if type == _PY_SOURCE:
- co = compile(fp.read(), pathname, 'exec')
- elif type == _PY_COMPILED:
+ if type == _PY_SOURCE:
+ co = compile(fp.read(), pathname, 'exec')
+ elif type == _PY_COMPILED:
try:
data = fp.read()
importlib._bootstrap_external._classify_pyc(data, fqname, {})
@@ -376,15 +376,15 @@ class ModuleFinder:
except ImportError as msg:
self.msg(2, "ImportError:", str(msg))
self._add_badmodule(name, caller)
- except SyntaxError as msg:
- self.msg(2, "SyntaxError:", str(msg))
- self._add_badmodule(name, caller)
+ except SyntaxError as msg:
+ self.msg(2, "SyntaxError:", str(msg))
+ self._add_badmodule(name, caller)
else:
if fromlist:
for sub in fromlist:
- fullname = name + "." + sub
- if fullname in self.badmodules:
- self._add_badmodule(fullname, caller)
+ fullname = name + "." + sub
+ if fullname in self.badmodules:
+ self._add_badmodule(fullname, caller)
continue
try:
self.import_hook(name, caller, [sub], level=level)
@@ -501,12 +501,12 @@ class ModuleFinder:
if path is None:
if name in sys.builtin_module_names:
- return (None, None, ("", "", _C_BUILTIN))
+ return (None, None, ("", "", _C_BUILTIN))
path = self.path
- return _find_module(name, path)
-
+ return _find_module(name, path)
+
def report(self):
"""Print a report to stdout, listing the found modules with their
paths, as well as modules that are missing, or seem to be missing.
@@ -616,7 +616,7 @@ class ModuleFinder:
if isinstance(consts[i], type(co)):
consts[i] = self.replace_paths_in_code(consts[i])
- return co.replace(co_consts=tuple(consts), co_filename=new_filename)
+ return co.replace(co_consts=tuple(consts), co_filename=new_filename)
def test():
diff --git a/contrib/tools/python3/src/Lib/msilib/__init__.py b/contrib/tools/python3/src/Lib/msilib/__init__.py
index 83ffe6b575..0e85aa2896 100644
--- a/contrib/tools/python3/src/Lib/msilib/__init__.py
+++ b/contrib/tools/python3/src/Lib/msilib/__init__.py
@@ -116,7 +116,7 @@ def add_data(db, table, values):
raise TypeError("Unsupported type %s" % field.__class__.__name__)
try:
v.Modify(MSIMODIFY_INSERT, r)
- except Exception:
+ except Exception:
raise MSIError("Could not insert "+repr(values)+" into "+table)
r.ClearData()
@@ -273,7 +273,7 @@ class Directory:
if AMD64:
flags |= 256
if keyfile:
- keyid = self.cab.gen_id(keyfile)
+ keyid = self.cab.gen_id(keyfile)
self.keyfiles[keyfile] = keyid
else:
keyid = None
diff --git a/contrib/tools/python3/src/Lib/msilib/schema.py b/contrib/tools/python3/src/Lib/msilib/schema.py
index b49ac16564..9f5745cfb1 100644
--- a/contrib/tools/python3/src/Lib/msilib/schema.py
+++ b/contrib/tools/python3/src/Lib/msilib/schema.py
@@ -664,7 +664,7 @@ _Validation_records = [
('Class','Component_','N',None, None, 'Component',1,'Identifier',None, 'Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.',),
('Class','Context','N',None, None, None, None, 'Identifier',None, 'The numeric server context for this server. CLSCTX_xxxx',),
('Class','DefInprocHandler','Y',None, None, None, None, 'Filename','1;2;3','Optional default inproc handler. Only optionally provided if Context=CLSCTX_LOCAL_SERVER. Typically "ole32.dll" or "mapi32.dll"',),
-('Class','FileTypeMask','Y',None, None, None, None, 'Text',None, 'Optional string containing information for the HKCRthis CLSID key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2...',),
+('Class','FileTypeMask','Y',None, None, None, None, 'Text',None, 'Optional string containing information for the HKCRthis CLSID key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2...',),
('Class','Icon_','Y',None, None, 'Icon',1,'Identifier',None, 'Optional foreign key into the Icon Table, specifying the icon file associated with this CLSID. Will be written under the DefaultIcon key.',),
('Class','IconIndex','Y',-32767,32767,None, None, None, None, 'Optional icon index.',),
('Class','ProgId_Default','Y',None, None, 'ProgId',1,'Text',None, 'Optional ProgId associated with this CLSID.',),
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/__init__.py b/contrib/tools/python3/src/Lib/multiprocessing/__init__.py
index d412235024..8336f381de 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/__init__.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/__init__.py
@@ -19,8 +19,8 @@ from . import context
# Copy stuff from default context
#
-__all__ = [x for x in dir(context._default_context) if not x.startswith('_')]
-globals().update((name, getattr(context._default_context, name)) for name in __all__)
+__all__ = [x for x in dir(context._default_context) if not x.startswith('_')]
+globals().update((name, getattr(context._default_context, name)) for name in __all__)
#
# XXX These should not really be documented or public.
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/connection.py b/contrib/tools/python3/src/Lib/multiprocessing/connection.py
index 850c317da5..510e4b5aba 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/connection.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/connection.py
@@ -73,11 +73,11 @@ def arbitrary_address(family):
if family == 'AF_INET':
return ('localhost', 0)
elif family == 'AF_UNIX':
- # Prefer abstract sockets if possible to avoid problems with the address
- # size. When coding portable applications, some implementations have
- # sun_path as short as 92 bytes in the sockaddr_un struct.
- if util.abstract_sockets_supported:
- return f"\0listener-{os.getpid()}-{next(_mmap_counter)}"
+ # Prefer abstract sockets if possible to avoid problems with the address
+ # size. When coding portable applications, some implementations have
+ # sun_path as short as 92 bytes in the sockaddr_un struct.
+ if util.abstract_sockets_supported:
+ return f"\0listener-{os.getpid()}-{next(_mmap_counter)}"
return tempfile.mktemp(prefix='listener-', dir=util.get_temp_dir())
elif family == 'AF_PIPE':
return tempfile.mktemp(prefix=r'\\.\pipe\pyc-%d-%d-' %
@@ -107,7 +107,7 @@ def address_type(address):
return 'AF_INET'
elif type(address) is str and address.startswith('\\\\'):
return 'AF_PIPE'
- elif type(address) is str or util.is_abstract_socket_namespace(address):
+ elif type(address) is str or util.is_abstract_socket_namespace(address):
return 'AF_UNIX'
else:
raise ValueError('address type of %r unrecognized' % address)
@@ -394,33 +394,33 @@ class Connection(_ConnectionBase):
def _send_bytes(self, buf):
n = len(buf)
- if n > 0x7fffffff:
- pre_header = struct.pack("!i", -1)
- header = struct.pack("!Q", n)
- self._send(pre_header)
+ if n > 0x7fffffff:
+ pre_header = struct.pack("!i", -1)
+ header = struct.pack("!Q", n)
+ self._send(pre_header)
self._send(header)
self._send(buf)
else:
- # For wire compatibility with 3.7 and lower
- header = struct.pack("!i", n)
- if n > 16384:
- # The payload is large so Nagle's algorithm won't be triggered
- # and we'd better avoid the cost of concatenation.
- self._send(header)
- self._send(buf)
- else:
- # Issue #20540: concatenate before sending, to avoid delays due
- # to Nagle's algorithm on a TCP socket.
- # Also note we want to avoid sending a 0-length buffer separately,
- # to avoid "broken pipe" errors if the other end closed the pipe.
- self._send(header + buf)
+ # For wire compatibility with 3.7 and lower
+ header = struct.pack("!i", n)
+ if n > 16384:
+ # The payload is large so Nagle's algorithm won't be triggered
+ # and we'd better avoid the cost of concatenation.
+ self._send(header)
+ self._send(buf)
+ else:
+ # Issue #20540: concatenate before sending, to avoid delays due
+ # to Nagle's algorithm on a TCP socket.
+ # Also note we want to avoid sending a 0-length buffer separately,
+ # to avoid "broken pipe" errors if the other end closed the pipe.
+ self._send(header + buf)
def _recv_bytes(self, maxsize=None):
buf = self._recv(4)
size, = struct.unpack("!i", buf.getvalue())
- if size == -1:
- buf = self._recv(8)
- size, = struct.unpack("!Q", buf.getvalue())
+ if size == -1:
+ buf = self._recv(8)
+ size, = struct.unpack("!Q", buf.getvalue())
if maxsize is not None and size > maxsize:
return None
return self._recv(size)
@@ -602,8 +602,8 @@ class SocketListener(object):
self._family = family
self._last_accepted = None
- if family == 'AF_UNIX' and not util.is_abstract_socket_namespace(address):
- # Linux abstract socket namespaces do not need to be explicitly unlinked
+ if family == 'AF_UNIX' and not util.is_abstract_socket_namespace(address):
+ # Linux abstract socket namespaces do not need to be explicitly unlinked
self._unlink = util.Finalize(
self, os.unlink, args=(address,), exitpriority=0
)
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/context.py b/contrib/tools/python3/src/Lib/multiprocessing/context.py
index eb1917bcbf..8d0525d5d6 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/context.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/context.py
@@ -5,7 +5,7 @@ import threading
from . import process
from . import reduction
-__all__ = ()
+__all__ = ()
#
# Exceptions
@@ -24,7 +24,7 @@ class AuthenticationError(ProcessError):
pass
#
-# Base type for contexts. Bound methods of an instance of this type are included in __all__ of __init__.py
+# Base type for contexts. Bound methods of an instance of this type are included in __all__ of __init__.py
#
class BaseContext(object):
@@ -35,7 +35,7 @@ class BaseContext(object):
AuthenticationError = AuthenticationError
current_process = staticmethod(process.current_process)
- parent_process = staticmethod(process.parent_process)
+ parent_process = staticmethod(process.parent_process)
active_children = staticmethod(process.active_children)
def cpu_count(self):
@@ -257,10 +257,10 @@ class DefaultContext(BaseContext):
if sys.platform == 'win32':
return ['spawn']
else:
- methods = ['spawn', 'fork'] if sys.platform == 'darwin' else ['fork', 'spawn']
+ methods = ['spawn', 'fork'] if sys.platform == 'darwin' else ['fork', 'spawn']
if reduction.HAVE_SEND_HANDLE:
- methods.append('forkserver')
- return methods
+ methods.append('forkserver')
+ return methods
#
@@ -310,12 +310,12 @@ if sys.platform != 'win32':
'spawn': SpawnContext(),
'forkserver': ForkServerContext(),
}
- if sys.platform == 'darwin':
- # bpo-33725: running arbitrary code after fork() is no longer reliable
- # on macOS since macOS 10.14 (Mojave). Use spawn by default instead.
- _default_context = DefaultContext(_concrete_contexts['spawn'])
- else:
- _default_context = DefaultContext(_concrete_contexts['fork'])
+ if sys.platform == 'darwin':
+ # bpo-33725: running arbitrary code after fork() is no longer reliable
+ # on macOS since macOS 10.14 (Mojave). Use spawn by default instead.
+ _default_context = DefaultContext(_concrete_contexts['spawn'])
+ else:
+ _default_context = DefaultContext(_concrete_contexts['fork'])
else:
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/dummy/__init__.py b/contrib/tools/python3/src/Lib/multiprocessing/dummy/__init__.py
index 1ecf8376d3..6a1468609e 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/dummy/__init__.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/dummy/__init__.py
@@ -80,7 +80,7 @@ def freeze_support():
#
class Namespace(object):
- def __init__(self, /, **kwds):
+ def __init__(self, /, **kwds):
self.__dict__.update(kwds)
def __repr__(self):
items = list(self.__dict__.items())
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/forkserver.py b/contrib/tools/python3/src/Lib/multiprocessing/forkserver.py
index 45193a1235..22a911a7a2 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/forkserver.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/forkserver.py
@@ -11,7 +11,7 @@ import warnings
from . import connection
from . import process
from .context import reduction
-from . import resource_tracker
+from . import resource_tracker
from . import spawn
from . import util
@@ -39,26 +39,26 @@ class ForkServer(object):
self._lock = threading.Lock()
self._preload_modules = ['__main__']
- def _stop(self):
- # Method used by unit tests to stop the server
- with self._lock:
- self._stop_unlocked()
-
- def _stop_unlocked(self):
- if self._forkserver_pid is None:
- return
-
- # close the "alive" file descriptor asks the server to stop
- os.close(self._forkserver_alive_fd)
- self._forkserver_alive_fd = None
-
- os.waitpid(self._forkserver_pid, 0)
- self._forkserver_pid = None
-
- if not util.is_abstract_socket_namespace(self._forkserver_address):
- os.unlink(self._forkserver_address)
- self._forkserver_address = None
-
+ def _stop(self):
+ # Method used by unit tests to stop the server
+ with self._lock:
+ self._stop_unlocked()
+
+ def _stop_unlocked(self):
+ if self._forkserver_pid is None:
+ return
+
+ # close the "alive" file descriptor asks the server to stop
+ os.close(self._forkserver_alive_fd)
+ self._forkserver_alive_fd = None
+
+ os.waitpid(self._forkserver_pid, 0)
+ self._forkserver_pid = None
+
+ if not util.is_abstract_socket_namespace(self._forkserver_address):
+ os.unlink(self._forkserver_address)
+ self._forkserver_address = None
+
def set_forkserver_preload(self, modules_names):
'''Set list of module names to try to load in forkserver process.'''
if not all(type(mod) is str for mod in self._preload_modules):
@@ -89,7 +89,7 @@ class ForkServer(object):
parent_r, child_w = os.pipe()
child_r, parent_w = os.pipe()
allfds = [child_r, child_w, self._forkserver_alive_fd,
- resource_tracker.getfd()]
+ resource_tracker.getfd()]
allfds += fds
try:
reduction.sendfds(client, allfds)
@@ -110,7 +110,7 @@ class ForkServer(object):
ensure_running() will do nothing.
'''
with self._lock:
- resource_tracker.ensure_running()
+ resource_tracker.ensure_running()
if self._forkserver_pid is not None:
# forkserver was launched before, is it still running?
pid, status = os.waitpid(self._forkserver_pid, os.WNOHANG)
@@ -136,8 +136,8 @@ class ForkServer(object):
with socket.socket(socket.AF_UNIX) as listener:
address = connection.arbitrary_address('AF_UNIX')
listener.bind(address)
- if not util.is_abstract_socket_namespace(address):
- os.chmod(address, 0o600)
+ if not util.is_abstract_socket_namespace(address):
+ os.chmod(address, 0o600)
listener.listen()
# all client processes own the write end of the "alive" pipe;
@@ -237,8 +237,8 @@ def main(listener_fd, alive_r, preload, main_path=None, sys_path=None):
break
child_w = pid_to_fd.pop(pid, None)
if child_w is not None:
- returncode = os.waitstatus_to_exitcode(sts)
-
+ returncode = os.waitstatus_to_exitcode(sts)
+
# Send exit code to client process
try:
write_signed(child_w, returncode)
@@ -305,12 +305,12 @@ def _serve_one(child_r, fds, unused_fds, handlers):
os.close(fd)
(_forkserver._forkserver_alive_fd,
- resource_tracker._resource_tracker._fd,
+ resource_tracker._resource_tracker._fd,
*_forkserver._inherited_fds) = fds
# Run process object received over pipe
- parent_sentinel = os.dup(child_r)
- code = spawn._main(child_r, parent_sentinel)
+ parent_sentinel = os.dup(child_r)
+ code = spawn._main(child_r, parent_sentinel)
return code
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/heap.py b/contrib/tools/python3/src/Lib/multiprocessing/heap.py
index 909c1e1df9..6217dfe126 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/heap.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/heap.py
@@ -8,7 +8,7 @@
#
import bisect
-from collections import defaultdict
+from collections import defaultdict
import mmap
import os
import sys
@@ -29,9 +29,9 @@ if sys.platform == 'win32':
import _winapi
class Arena(object):
- """
- A shared memory area backed by anonymous memory (Windows).
- """
+ """
+ A shared memory area backed by anonymous memory (Windows).
+ """
_rand = tempfile._RandomNameSequence()
@@ -56,7 +56,7 @@ if sys.platform == 'win32':
def __setstate__(self, state):
self.size, self.name = self._state = state
- # Reopen existing mmap
+ # Reopen existing mmap
self.buffer = mmap.mmap(-1, self.size, tagname=self.name)
# XXX Temporarily preventing buildbot failures while determining
# XXX the correct long-term fix. See issue 23060
@@ -65,10 +65,10 @@ if sys.platform == 'win32':
else:
class Arena(object):
- """
- A shared memory area backed by a temporary file (POSIX).
- """
-
+ """
+ A shared memory area backed by a temporary file (POSIX).
+ """
+
if sys.platform == 'linux':
_dir_candidates = ['/dev/shm']
else:
@@ -78,8 +78,8 @@ else:
self.size = size
self.fd = fd
if fd == -1:
- # Arena is created anew (if fd != -1, it means we're coming
- # from rebuild_arena() below)
+ # Arena is created anew (if fd != -1, it means we're coming
+ # from rebuild_arena() below)
self.fd, name = tempfile.mkstemp(
prefix='pym-%d-'%os.getpid(),
dir=self._choose_dir(size))
@@ -114,82 +114,82 @@ else:
class Heap(object):
- # Minimum malloc() alignment
+ # Minimum malloc() alignment
_alignment = 8
- _DISCARD_FREE_SPACE_LARGER_THAN = 4 * 1024 ** 2 # 4 MB
- _DOUBLE_ARENA_SIZE_UNTIL = 4 * 1024 ** 2
-
+ _DISCARD_FREE_SPACE_LARGER_THAN = 4 * 1024 ** 2 # 4 MB
+ _DOUBLE_ARENA_SIZE_UNTIL = 4 * 1024 ** 2
+
def __init__(self, size=mmap.PAGESIZE):
self._lastpid = os.getpid()
self._lock = threading.Lock()
- # Current arena allocation size
+ # Current arena allocation size
self._size = size
- # A sorted list of available block sizes in arenas
+ # A sorted list of available block sizes in arenas
self._lengths = []
-
- # Free block management:
- # - map each block size to a list of `(Arena, start, stop)` blocks
+
+ # Free block management:
+ # - map each block size to a list of `(Arena, start, stop)` blocks
self._len_to_seq = {}
- # - map `(Arena, start)` tuple to the `(Arena, start, stop)` block
- # starting at that offset
+ # - map `(Arena, start)` tuple to the `(Arena, start, stop)` block
+ # starting at that offset
self._start_to_block = {}
- # - map `(Arena, stop)` tuple to the `(Arena, start, stop)` block
- # ending at that offset
+ # - map `(Arena, stop)` tuple to the `(Arena, start, stop)` block
+ # ending at that offset
self._stop_to_block = {}
-
- # Map arenas to their `(Arena, start, stop)` blocks in use
- self._allocated_blocks = defaultdict(set)
+
+ # Map arenas to their `(Arena, start, stop)` blocks in use
+ self._allocated_blocks = defaultdict(set)
self._arenas = []
-
- # List of pending blocks to free - see comment in free() below
+
+ # List of pending blocks to free - see comment in free() below
self._pending_free_blocks = []
- # Statistics
- self._n_mallocs = 0
- self._n_frees = 0
-
+ # Statistics
+ self._n_mallocs = 0
+ self._n_frees = 0
+
@staticmethod
def _roundup(n, alignment):
# alignment must be a power of 2
mask = alignment - 1
return (n + mask) & ~mask
- def _new_arena(self, size):
- # Create a new arena with at least the given *size*
- length = self._roundup(max(self._size, size), mmap.PAGESIZE)
- # We carve larger and larger arenas, for efficiency, until we
- # reach a large-ish size (roughly L3 cache-sized)
- if self._size < self._DOUBLE_ARENA_SIZE_UNTIL:
- self._size *= 2
- util.info('allocating a new mmap of length %d', length)
- arena = Arena(length)
- self._arenas.append(arena)
- return (arena, 0, length)
-
- def _discard_arena(self, arena):
- # Possibly delete the given (unused) arena
- length = arena.size
- # Reusing an existing arena is faster than creating a new one, so
- # we only reclaim space if it's large enough.
- if length < self._DISCARD_FREE_SPACE_LARGER_THAN:
- return
- blocks = self._allocated_blocks.pop(arena)
- assert not blocks
- del self._start_to_block[(arena, 0)]
- del self._stop_to_block[(arena, length)]
- self._arenas.remove(arena)
- seq = self._len_to_seq[length]
- seq.remove((arena, 0, length))
- if not seq:
- del self._len_to_seq[length]
- self._lengths.remove(length)
-
+ def _new_arena(self, size):
+ # Create a new arena with at least the given *size*
+ length = self._roundup(max(self._size, size), mmap.PAGESIZE)
+ # We carve larger and larger arenas, for efficiency, until we
+ # reach a large-ish size (roughly L3 cache-sized)
+ if self._size < self._DOUBLE_ARENA_SIZE_UNTIL:
+ self._size *= 2
+ util.info('allocating a new mmap of length %d', length)
+ arena = Arena(length)
+ self._arenas.append(arena)
+ return (arena, 0, length)
+
+ def _discard_arena(self, arena):
+ # Possibly delete the given (unused) arena
+ length = arena.size
+ # Reusing an existing arena is faster than creating a new one, so
+ # we only reclaim space if it's large enough.
+ if length < self._DISCARD_FREE_SPACE_LARGER_THAN:
+ return
+ blocks = self._allocated_blocks.pop(arena)
+ assert not blocks
+ del self._start_to_block[(arena, 0)]
+ del self._stop_to_block[(arena, length)]
+ self._arenas.remove(arena)
+ seq = self._len_to_seq[length]
+ seq.remove((arena, 0, length))
+ if not seq:
+ del self._len_to_seq[length]
+ self._lengths.remove(length)
+
def _malloc(self, size):
# returns a large enough block -- it might be much larger
i = bisect.bisect_left(self._lengths, size)
if i == len(self._lengths):
- return self._new_arena(size)
+ return self._new_arena(size)
else:
length = self._lengths[i]
seq = self._len_to_seq[length]
@@ -202,8 +202,8 @@ class Heap(object):
del self._stop_to_block[(arena, stop)]
return block
- def _add_free_block(self, block):
- # make block available and try to merge with its neighbours in the arena
+ def _add_free_block(self, block):
+ # make block available and try to merge with its neighbours in the arena
(arena, start, stop) = block
try:
@@ -247,14 +247,14 @@ class Heap(object):
return start, stop
- def _remove_allocated_block(self, block):
- arena, start, stop = block
- blocks = self._allocated_blocks[arena]
- blocks.remove((start, stop))
- if not blocks:
- # Arena is entirely free, discard it from this process
- self._discard_arena(arena)
-
+ def _remove_allocated_block(self, block):
+ arena, start, stop = block
+ blocks = self._allocated_blocks[arena]
+ blocks.remove((start, stop))
+ if not blocks:
+ # Arena is entirely free, discard it from this process
+ self._discard_arena(arena)
+
def _free_pending_blocks(self):
# Free all the blocks in the pending list - called with the lock held.
while True:
@@ -262,8 +262,8 @@ class Heap(object):
block = self._pending_free_blocks.pop()
except IndexError:
break
- self._add_free_block(block)
- self._remove_allocated_block(block)
+ self._add_free_block(block)
+ self._remove_allocated_block(block)
def free(self, block):
# free a block returned by malloc()
@@ -274,7 +274,7 @@ class Heap(object):
# immediately, the block is added to a list of blocks to be freed
# synchronously sometimes later from malloc() or free(), by calling
# _free_pending_blocks() (appending and retrieving from a list is not
- # strictly thread-safe but under CPython it's atomic thanks to the GIL).
+ # strictly thread-safe but under CPython it's atomic thanks to the GIL).
if os.getpid() != self._lastpid:
raise ValueError(
"My pid ({0:n}) is not last pid {1:n}".format(
@@ -286,10 +286,10 @@ class Heap(object):
else:
# we hold the lock
try:
- self._n_frees += 1
+ self._n_frees += 1
self._free_pending_blocks()
- self._add_free_block(block)
- self._remove_allocated_block(block)
+ self._add_free_block(block)
+ self._remove_allocated_block(block)
finally:
self._lock.release()
@@ -302,21 +302,21 @@ class Heap(object):
if os.getpid() != self._lastpid:
self.__init__() # reinitialize after fork
with self._lock:
- self._n_mallocs += 1
- # allow pending blocks to be marked available
+ self._n_mallocs += 1
+ # allow pending blocks to be marked available
self._free_pending_blocks()
- size = self._roundup(max(size, 1), self._alignment)
+ size = self._roundup(max(size, 1), self._alignment)
(arena, start, stop) = self._malloc(size)
- real_stop = start + size
- if real_stop < stop:
- # if the returned block is larger than necessary, mark
- # the remainder available
- self._add_free_block((arena, real_stop, stop))
- self._allocated_blocks[arena].add((start, real_stop))
- return (arena, start, real_stop)
+ real_stop = start + size
+ if real_stop < stop:
+ # if the returned block is larger than necessary, mark
+ # the remainder available
+ self._add_free_block((arena, real_stop, stop))
+ self._allocated_blocks[arena].add((start, real_stop))
+ return (arena, start, real_stop)
#
-# Class wrapping a block allocated out of a Heap -- can be inherited by child process
+# Class wrapping a block allocated out of a Heap -- can be inherited by child process
#
class BufferWrapper(object):
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/managers.py b/contrib/tools/python3/src/Lib/multiprocessing/managers.py
index 047ea27672..dfa566c6fc 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/managers.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/managers.py
@@ -1,5 +1,5 @@
#
-# Module providing manager classes for dealing
+# Module providing manager classes for dealing
# with shared objects
#
# multiprocessing/managers.py
@@ -8,7 +8,7 @@
# Licensed to PSF under a Contributor Agreement.
#
-__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ]
+__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ]
#
# Imports
@@ -16,13 +16,13 @@ __all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ]
import sys
import threading
-import signal
+import signal
import array
import queue
import time
-import types
-import os
-from os import getpid
+import types
+import os
+from os import getpid
from traceback import format_exc
@@ -32,13 +32,13 @@ from . import pool
from . import process
from . import util
from . import get_context
-try:
- from . import shared_memory
-except ImportError:
- HAS_SHMEM = False
-else:
- HAS_SHMEM = True
- __all__.append('SharedMemoryManager')
+try:
+ from . import shared_memory
+except ImportError:
+ HAS_SHMEM = False
+else:
+ HAS_SHMEM = True
+ __all__.append('SharedMemoryManager')
#
# Register some things for pickling
@@ -61,7 +61,7 @@ if view_types[0] is not list: # only needed in Py3.0
class Token(object):
'''
- Type to uniquely identify a shared object
+ Type to uniquely identify a shared object
'''
__slots__ = ('typeid', 'address', 'id')
@@ -250,7 +250,7 @@ class Server(object):
try:
obj, exposed, gettypeid = \
self.id_to_local_proxy_obj[ident]
- except KeyError:
+ except KeyError:
raise ke
if methodname not in exposed:
@@ -298,7 +298,7 @@ class Server(object):
try:
try:
send(msg)
- except Exception:
+ except Exception:
send(('#UNSERIALIZABLE', format_exc()))
except Exception as e:
util.info('exception in thread serving %r',
@@ -362,7 +362,7 @@ class Server(object):
finally:
self.stop_event.set()
- def create(self, c, typeid, /, *args, **kwds):
+ def create(self, c, typeid, /, *args, **kwds):
'''
Create a new shared object and return its id
'''
@@ -573,9 +573,9 @@ class BaseManager(object):
'''
Create a server, report its address and run it
'''
- # bpo-36368: protect server process from KeyboardInterrupt signals
- signal.signal(signal.SIGINT, signal.SIG_IGN)
-
+ # bpo-36368: protect server process from KeyboardInterrupt signals
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
+
if initializer is not None:
initializer(*initargs)
@@ -590,7 +590,7 @@ class BaseManager(object):
util.info('manager serving at %r', server.address)
server.serve_forever()
- def _create(self, typeid, /, *args, **kwds):
+ def _create(self, typeid, /, *args, **kwds):
'''
Create a new shared object; return the token and exposed tuple
'''
@@ -710,7 +710,7 @@ class BaseManager(object):
)
if create_method:
- def temp(self, /, *args, **kwds):
+ def temp(self, /, *args, **kwds):
util.debug('requesting creation of a shared %r object', typeid)
token, exp = self._create(typeid, *args, **kwds)
proxy = proxytype(
@@ -796,7 +796,7 @@ class BaseProxy(object):
def _callmethod(self, methodname, args=(), kwds={}):
'''
- Try to call a method of the referent and return a copy of the result
+ Try to call a method of the referent and return a copy of the result
'''
try:
conn = self._tls.connection
@@ -950,7 +950,7 @@ def MakeProxyType(name, exposed, _cache={}):
dic = {}
for meth in exposed:
- exec('''def %s(self, /, *args, **kwds):
+ exec('''def %s(self, /, *args, **kwds):
return self._callmethod(%r, args, kwds)''' % (meth, meth), dic)
ProxyType = type(name, (BaseProxy,), dic)
@@ -989,7 +989,7 @@ def AutoProxy(token, serializer, manager=None, authkey=None,
#
class Namespace(object):
- def __init__(self, /, **kwds):
+ def __init__(self, /, **kwds):
self.__dict__.update(kwds)
def __repr__(self):
items = list(self.__dict__.items())
@@ -1131,9 +1131,9 @@ class ValueProxy(BaseProxy):
return self._callmethod('set', (value,))
value = property(get, set)
- __class_getitem__ = classmethod(types.GenericAlias)
+ __class_getitem__ = classmethod(types.GenericAlias)
+
-
BaseListProxy = MakeProxyType('BaseListProxy', (
'__add__', '__contains__', '__delitem__', '__getitem__', '__len__',
'__mul__', '__reversed__', '__rmul__', '__setitem__',
@@ -1216,155 +1216,155 @@ SyncManager.register('Namespace', Namespace, NamespaceProxy)
# types returned by methods of PoolProxy
SyncManager.register('Iterator', proxytype=IteratorProxy, create_method=False)
SyncManager.register('AsyncResult', create_method=False)
-
-#
-# Definition of SharedMemoryManager and SharedMemoryServer
-#
-
-if HAS_SHMEM:
- class _SharedMemoryTracker:
- "Manages one or more shared memory segments."
-
- def __init__(self, name, segment_names=[]):
- self.shared_memory_context_name = name
- self.segment_names = segment_names
-
- def register_segment(self, segment_name):
- "Adds the supplied shared memory block name to tracker."
- util.debug(f"Register segment {segment_name!r} in pid {getpid()}")
- self.segment_names.append(segment_name)
-
- def destroy_segment(self, segment_name):
- """Calls unlink() on the shared memory block with the supplied name
- and removes it from the list of blocks being tracked."""
- util.debug(f"Destroy segment {segment_name!r} in pid {getpid()}")
- self.segment_names.remove(segment_name)
- segment = shared_memory.SharedMemory(segment_name)
- segment.close()
- segment.unlink()
-
- def unlink(self):
- "Calls destroy_segment() on all tracked shared memory blocks."
- for segment_name in self.segment_names[:]:
- self.destroy_segment(segment_name)
-
- def __del__(self):
- util.debug(f"Call {self.__class__.__name__}.__del__ in {getpid()}")
- self.unlink()
-
- def __getstate__(self):
- return (self.shared_memory_context_name, self.segment_names)
-
- def __setstate__(self, state):
- self.__init__(*state)
-
-
- class SharedMemoryServer(Server):
-
- public = Server.public + \
- ['track_segment', 'release_segment', 'list_segments']
-
- def __init__(self, *args, **kwargs):
- Server.__init__(self, *args, **kwargs)
- address = self.address
- # The address of Linux abstract namespaces can be bytes
- if isinstance(address, bytes):
- address = os.fsdecode(address)
- self.shared_memory_context = \
- _SharedMemoryTracker(f"shm_{address}_{getpid()}")
- util.debug(f"SharedMemoryServer started by pid {getpid()}")
-
- def create(self, c, typeid, /, *args, **kwargs):
- """Create a new distributed-shared object (not backed by a shared
- memory block) and return its id to be used in a Proxy Object."""
- # Unless set up as a shared proxy, don't make shared_memory_context
- # a standard part of kwargs. This makes things easier for supplying
- # simple functions.
- if hasattr(self.registry[typeid][-1], "_shared_memory_proxy"):
- kwargs['shared_memory_context'] = self.shared_memory_context
- return Server.create(self, c, typeid, *args, **kwargs)
-
- def shutdown(self, c):
- "Call unlink() on all tracked shared memory, terminate the Server."
- self.shared_memory_context.unlink()
- return Server.shutdown(self, c)
-
- def track_segment(self, c, segment_name):
- "Adds the supplied shared memory block name to Server's tracker."
- self.shared_memory_context.register_segment(segment_name)
-
- def release_segment(self, c, segment_name):
- """Calls unlink() on the shared memory block with the supplied name
- and removes it from the tracker instance inside the Server."""
- self.shared_memory_context.destroy_segment(segment_name)
-
- def list_segments(self, c):
- """Returns a list of names of shared memory blocks that the Server
- is currently tracking."""
- return self.shared_memory_context.segment_names
-
-
- class SharedMemoryManager(BaseManager):
- """Like SyncManager but uses SharedMemoryServer instead of Server.
-
- It provides methods for creating and returning SharedMemory instances
- and for creating a list-like object (ShareableList) backed by shared
- memory. It also provides methods that create and return Proxy Objects
- that support synchronization across processes (i.e. multi-process-safe
- locks and semaphores).
- """
-
- _Server = SharedMemoryServer
-
- def __init__(self, *args, **kwargs):
- if os.name == "posix":
- # bpo-36867: Ensure the resource_tracker is running before
- # launching the manager process, so that concurrent
- # shared_memory manipulation both in the manager and in the
- # current process does not create two resource_tracker
- # processes.
- from . import resource_tracker
- resource_tracker.ensure_running()
- BaseManager.__init__(self, *args, **kwargs)
- util.debug(f"{self.__class__.__name__} created by pid {getpid()}")
-
- def __del__(self):
- util.debug(f"{self.__class__.__name__}.__del__ by pid {getpid()}")
- pass
-
- def get_server(self):
- 'Better than monkeypatching for now; merge into Server ultimately'
- if self._state.value != State.INITIAL:
- if self._state.value == State.STARTED:
- raise ProcessError("Already started SharedMemoryServer")
- elif self._state.value == State.SHUTDOWN:
- raise ProcessError("SharedMemoryManager has shut down")
- else:
- raise ProcessError(
- "Unknown state {!r}".format(self._state.value))
- return self._Server(self._registry, self._address,
- self._authkey, self._serializer)
-
- def SharedMemory(self, size):
- """Returns a new SharedMemory instance with the specified size in
- bytes, to be tracked by the manager."""
- with self._Client(self._address, authkey=self._authkey) as conn:
- sms = shared_memory.SharedMemory(None, create=True, size=size)
- try:
- dispatch(conn, None, 'track_segment', (sms.name,))
- except BaseException as e:
- sms.unlink()
- raise e
- return sms
-
- def ShareableList(self, sequence):
- """Returns a new ShareableList instance populated with the values
- from the input sequence, to be tracked by the manager."""
- with self._Client(self._address, authkey=self._authkey) as conn:
- sl = shared_memory.ShareableList(sequence)
- try:
- dispatch(conn, None, 'track_segment', (sl.shm.name,))
- except BaseException as e:
- sl.shm.unlink()
- raise e
- return sl
+
+#
+# Definition of SharedMemoryManager and SharedMemoryServer
+#
+
+if HAS_SHMEM:
+ class _SharedMemoryTracker:
+ "Manages one or more shared memory segments."
+
+ def __init__(self, name, segment_names=[]):
+ self.shared_memory_context_name = name
+ self.segment_names = segment_names
+
+ def register_segment(self, segment_name):
+ "Adds the supplied shared memory block name to tracker."
+ util.debug(f"Register segment {segment_name!r} in pid {getpid()}")
+ self.segment_names.append(segment_name)
+
+ def destroy_segment(self, segment_name):
+ """Calls unlink() on the shared memory block with the supplied name
+ and removes it from the list of blocks being tracked."""
+ util.debug(f"Destroy segment {segment_name!r} in pid {getpid()}")
+ self.segment_names.remove(segment_name)
+ segment = shared_memory.SharedMemory(segment_name)
+ segment.close()
+ segment.unlink()
+
+ def unlink(self):
+ "Calls destroy_segment() on all tracked shared memory blocks."
+ for segment_name in self.segment_names[:]:
+ self.destroy_segment(segment_name)
+
+ def __del__(self):
+ util.debug(f"Call {self.__class__.__name__}.__del__ in {getpid()}")
+ self.unlink()
+
+ def __getstate__(self):
+ return (self.shared_memory_context_name, self.segment_names)
+
+ def __setstate__(self, state):
+ self.__init__(*state)
+
+
+ class SharedMemoryServer(Server):
+
+ public = Server.public + \
+ ['track_segment', 'release_segment', 'list_segments']
+
+ def __init__(self, *args, **kwargs):
+ Server.__init__(self, *args, **kwargs)
+ address = self.address
+ # The address of Linux abstract namespaces can be bytes
+ if isinstance(address, bytes):
+ address = os.fsdecode(address)
+ self.shared_memory_context = \
+ _SharedMemoryTracker(f"shm_{address}_{getpid()}")
+ util.debug(f"SharedMemoryServer started by pid {getpid()}")
+
+ def create(self, c, typeid, /, *args, **kwargs):
+ """Create a new distributed-shared object (not backed by a shared
+ memory block) and return its id to be used in a Proxy Object."""
+ # Unless set up as a shared proxy, don't make shared_memory_context
+ # a standard part of kwargs. This makes things easier for supplying
+ # simple functions.
+ if hasattr(self.registry[typeid][-1], "_shared_memory_proxy"):
+ kwargs['shared_memory_context'] = self.shared_memory_context
+ return Server.create(self, c, typeid, *args, **kwargs)
+
+ def shutdown(self, c):
+ "Call unlink() on all tracked shared memory, terminate the Server."
+ self.shared_memory_context.unlink()
+ return Server.shutdown(self, c)
+
+ def track_segment(self, c, segment_name):
+ "Adds the supplied shared memory block name to Server's tracker."
+ self.shared_memory_context.register_segment(segment_name)
+
+ def release_segment(self, c, segment_name):
+ """Calls unlink() on the shared memory block with the supplied name
+ and removes it from the tracker instance inside the Server."""
+ self.shared_memory_context.destroy_segment(segment_name)
+
+ def list_segments(self, c):
+ """Returns a list of names of shared memory blocks that the Server
+ is currently tracking."""
+ return self.shared_memory_context.segment_names
+
+
+ class SharedMemoryManager(BaseManager):
+ """Like SyncManager but uses SharedMemoryServer instead of Server.
+
+ It provides methods for creating and returning SharedMemory instances
+ and for creating a list-like object (ShareableList) backed by shared
+ memory. It also provides methods that create and return Proxy Objects
+ that support synchronization across processes (i.e. multi-process-safe
+ locks and semaphores).
+ """
+
+ _Server = SharedMemoryServer
+
+ def __init__(self, *args, **kwargs):
+ if os.name == "posix":
+ # bpo-36867: Ensure the resource_tracker is running before
+ # launching the manager process, so that concurrent
+ # shared_memory manipulation both in the manager and in the
+ # current process does not create two resource_tracker
+ # processes.
+ from . import resource_tracker
+ resource_tracker.ensure_running()
+ BaseManager.__init__(self, *args, **kwargs)
+ util.debug(f"{self.__class__.__name__} created by pid {getpid()}")
+
+ def __del__(self):
+ util.debug(f"{self.__class__.__name__}.__del__ by pid {getpid()}")
+ pass
+
+ def get_server(self):
+ 'Better than monkeypatching for now; merge into Server ultimately'
+ if self._state.value != State.INITIAL:
+ if self._state.value == State.STARTED:
+ raise ProcessError("Already started SharedMemoryServer")
+ elif self._state.value == State.SHUTDOWN:
+ raise ProcessError("SharedMemoryManager has shut down")
+ else:
+ raise ProcessError(
+ "Unknown state {!r}".format(self._state.value))
+ return self._Server(self._registry, self._address,
+ self._authkey, self._serializer)
+
+ def SharedMemory(self, size):
+ """Returns a new SharedMemory instance with the specified size in
+ bytes, to be tracked by the manager."""
+ with self._Client(self._address, authkey=self._authkey) as conn:
+ sms = shared_memory.SharedMemory(None, create=True, size=size)
+ try:
+ dispatch(conn, None, 'track_segment', (sms.name,))
+ except BaseException as e:
+ sms.unlink()
+ raise e
+ return sms
+
+ def ShareableList(self, sequence):
+ """Returns a new ShareableList instance populated with the values
+ from the input sequence, to be tracked by the manager."""
+ with self._Client(self._address, authkey=self._authkey) as conn:
+ sl = shared_memory.ShareableList(sequence)
+ try:
+ dispatch(conn, None, 'track_segment', (sl.shm.name,))
+ except BaseException as e:
+ sl.shm.unlink()
+ raise e
+ return sl
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/pool.py b/contrib/tools/python3/src/Lib/multiprocessing/pool.py
index 5ae69156f7..bbe05a550c 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/pool.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/pool.py
@@ -13,30 +13,30 @@ __all__ = ['Pool', 'ThreadPool']
# Imports
#
-import collections
+import collections
import itertools
import os
-import queue
-import threading
+import queue
+import threading
import time
import traceback
-import types
-import warnings
+import types
+import warnings
# If threading is available then ThreadPool should be provided. Therefore
# we avoid top-level imports which are liable to fail on some systems.
from . import util
from . import get_context, TimeoutError
-from .connection import wait
+from .connection import wait
#
# Constants representing the state of a pool
#
-INIT = "INIT"
-RUN = "RUN"
-CLOSE = "CLOSE"
-TERMINATE = "TERMINATE"
+INIT = "INIT"
+RUN = "RUN"
+CLOSE = "CLOSE"
+TERMINATE = "TERMINATE"
#
# Miscellaneous
@@ -147,54 +147,54 @@ def _helper_reraises_exception(ex):
# Class representing a process pool
#
-class _PoolCache(dict):
- """
- Class that implements a cache for the Pool class that will notify
- the pool management threads every time the cache is emptied. The
- notification is done by the use of a queue that is provided when
- instantiating the cache.
- """
- def __init__(self, /, *args, notifier=None, **kwds):
- self.notifier = notifier
- super().__init__(*args, **kwds)
-
- def __delitem__(self, item):
- super().__delitem__(item)
-
- # Notify that the cache is empty. This is important because the
- # pool keeps maintaining workers until the cache gets drained. This
- # eliminates a race condition in which a task is finished after the
- # the pool's _handle_workers method has enter another iteration of the
- # loop. In this situation, the only event that can wake up the pool
- # is the cache to be emptied (no more tasks available).
- if not self:
- self.notifier.put(None)
-
+class _PoolCache(dict):
+ """
+ Class that implements a cache for the Pool class that will notify
+ the pool management threads every time the cache is emptied. The
+ notification is done by the use of a queue that is provided when
+ instantiating the cache.
+ """
+ def __init__(self, /, *args, notifier=None, **kwds):
+ self.notifier = notifier
+ super().__init__(*args, **kwds)
+
+ def __delitem__(self, item):
+ super().__delitem__(item)
+
+ # Notify that the cache is empty. This is important because the
+ # pool keeps maintaining workers until the cache gets drained. This
+ # eliminates a race condition in which a task is finished after the
+ # the pool's _handle_workers method has enter another iteration of the
+ # loop. In this situation, the only event that can wake up the pool
+ # is the cache to be emptied (no more tasks available).
+ if not self:
+ self.notifier.put(None)
+
class Pool(object):
'''
Class which supports an async version of applying functions to arguments.
'''
_wrap_exception = True
- @staticmethod
- def Process(ctx, *args, **kwds):
- return ctx.Process(*args, **kwds)
+ @staticmethod
+ def Process(ctx, *args, **kwds):
+ return ctx.Process(*args, **kwds)
def __init__(self, processes=None, initializer=None, initargs=(),
maxtasksperchild=None, context=None):
- # Attributes initialized early to make sure that they exist in
- # __del__() if __init__() raises an exception
- self._pool = []
- self._state = INIT
-
+ # Attributes initialized early to make sure that they exist in
+ # __del__() if __init__() raises an exception
+ self._pool = []
+ self._state = INIT
+
self._ctx = context or get_context()
self._setup_queues()
self._taskqueue = queue.SimpleQueue()
- # The _change_notifier queue exist to wake up self._handle_workers()
- # when the cache (self._cache) is empty or when there is a change in
- # the _state variable of the thread that runs _handle_workers.
- self._change_notifier = self._ctx.SimpleQueue()
- self._cache = _PoolCache(notifier=self._change_notifier)
+ # The _change_notifier queue exist to wake up self._handle_workers()
+ # when the cache (self._cache) is empty or when there is a change in
+ # the _state variable of the thread that runs _handle_workers.
+ self._change_notifier = self._ctx.SimpleQueue()
+ self._cache = _PoolCache(notifier=self._change_notifier)
self._maxtasksperchild = maxtasksperchild
self._initializer = initializer
self._initargs = initargs
@@ -208,24 +208,24 @@ class Pool(object):
raise TypeError('initializer must be a callable')
self._processes = processes
- try:
- self._repopulate_pool()
- except Exception:
- for p in self._pool:
- if p.exitcode is None:
- p.terminate()
- for p in self._pool:
- p.join()
- raise
-
- sentinels = self._get_sentinels()
-
+ try:
+ self._repopulate_pool()
+ except Exception:
+ for p in self._pool:
+ if p.exitcode is None:
+ p.terminate()
+ for p in self._pool:
+ p.join()
+ raise
+
+ sentinels = self._get_sentinels()
+
self._worker_handler = threading.Thread(
target=Pool._handle_workers,
- args=(self._cache, self._taskqueue, self._ctx, self.Process,
- self._processes, self._pool, self._inqueue, self._outqueue,
- self._initializer, self._initargs, self._maxtasksperchild,
- self._wrap_exception, sentinels, self._change_notifier)
+ args=(self._cache, self._taskqueue, self._ctx, self.Process,
+ self._processes, self._pool, self._inqueue, self._outqueue,
+ self._initializer, self._initargs, self._maxtasksperchild,
+ self._wrap_exception, sentinels, self._change_notifier)
)
self._worker_handler.daemon = True
self._worker_handler._state = RUN
@@ -252,92 +252,92 @@ class Pool(object):
self._terminate = util.Finalize(
self, self._terminate_pool,
args=(self._taskqueue, self._inqueue, self._outqueue, self._pool,
- self._change_notifier, self._worker_handler, self._task_handler,
+ self._change_notifier, self._worker_handler, self._task_handler,
self._result_handler, self._cache),
exitpriority=15
)
- self._state = RUN
-
- # Copy globals as function locals to make sure that they are available
- # during Python shutdown when the Pool is destroyed.
- def __del__(self, _warn=warnings.warn, RUN=RUN):
- if self._state == RUN:
- _warn(f"unclosed running multiprocessing pool {self!r}",
- ResourceWarning, source=self)
- if getattr(self, '_change_notifier', None) is not None:
- self._change_notifier.put(None)
-
- def __repr__(self):
- cls = self.__class__
- return (f'<{cls.__module__}.{cls.__qualname__} '
- f'state={self._state} '
- f'pool_size={len(self._pool)}>')
-
- def _get_sentinels(self):
- task_queue_sentinels = [self._outqueue._reader]
- self_notifier_sentinels = [self._change_notifier._reader]
- return [*task_queue_sentinels, *self_notifier_sentinels]
-
- @staticmethod
- def _get_worker_sentinels(workers):
- return [worker.sentinel for worker in
- workers if hasattr(worker, "sentinel")]
-
- @staticmethod
- def _join_exited_workers(pool):
+ self._state = RUN
+
+ # Copy globals as function locals to make sure that they are available
+ # during Python shutdown when the Pool is destroyed.
+ def __del__(self, _warn=warnings.warn, RUN=RUN):
+ if self._state == RUN:
+ _warn(f"unclosed running multiprocessing pool {self!r}",
+ ResourceWarning, source=self)
+ if getattr(self, '_change_notifier', None) is not None:
+ self._change_notifier.put(None)
+
+ def __repr__(self):
+ cls = self.__class__
+ return (f'<{cls.__module__}.{cls.__qualname__} '
+ f'state={self._state} '
+ f'pool_size={len(self._pool)}>')
+
+ def _get_sentinels(self):
+ task_queue_sentinels = [self._outqueue._reader]
+ self_notifier_sentinels = [self._change_notifier._reader]
+ return [*task_queue_sentinels, *self_notifier_sentinels]
+
+ @staticmethod
+ def _get_worker_sentinels(workers):
+ return [worker.sentinel for worker in
+ workers if hasattr(worker, "sentinel")]
+
+ @staticmethod
+ def _join_exited_workers(pool):
"""Cleanup after any worker processes which have exited due to reaching
their specified lifetime. Returns True if any workers were cleaned up.
"""
cleaned = False
- for i in reversed(range(len(pool))):
- worker = pool[i]
+ for i in reversed(range(len(pool))):
+ worker = pool[i]
if worker.exitcode is not None:
# worker exited
util.debug('cleaning up worker %d' % i)
worker.join()
cleaned = True
- del pool[i]
+ del pool[i]
return cleaned
def _repopulate_pool(self):
- return self._repopulate_pool_static(self._ctx, self.Process,
- self._processes,
- self._pool, self._inqueue,
- self._outqueue, self._initializer,
- self._initargs,
- self._maxtasksperchild,
- self._wrap_exception)
-
- @staticmethod
- def _repopulate_pool_static(ctx, Process, processes, pool, inqueue,
- outqueue, initializer, initargs,
- maxtasksperchild, wrap_exception):
+ return self._repopulate_pool_static(self._ctx, self.Process,
+ self._processes,
+ self._pool, self._inqueue,
+ self._outqueue, self._initializer,
+ self._initargs,
+ self._maxtasksperchild,
+ self._wrap_exception)
+
+ @staticmethod
+ def _repopulate_pool_static(ctx, Process, processes, pool, inqueue,
+ outqueue, initializer, initargs,
+ maxtasksperchild, wrap_exception):
"""Bring the number of pool processes up to the specified number,
for use after reaping workers which have exited.
"""
- for i in range(processes - len(pool)):
- w = Process(ctx, target=worker,
- args=(inqueue, outqueue,
- initializer,
- initargs, maxtasksperchild,
- wrap_exception))
+ for i in range(processes - len(pool)):
+ w = Process(ctx, target=worker,
+ args=(inqueue, outqueue,
+ initializer,
+ initargs, maxtasksperchild,
+ wrap_exception))
w.name = w.name.replace('Process', 'PoolWorker')
w.daemon = True
w.start()
- pool.append(w)
+ pool.append(w)
util.debug('added worker')
- @staticmethod
- def _maintain_pool(ctx, Process, processes, pool, inqueue, outqueue,
- initializer, initargs, maxtasksperchild,
- wrap_exception):
+ @staticmethod
+ def _maintain_pool(ctx, Process, processes, pool, inqueue, outqueue,
+ initializer, initargs, maxtasksperchild,
+ wrap_exception):
"""Clean up any exited workers and start replacements for them.
"""
- if Pool._join_exited_workers(pool):
- Pool._repopulate_pool_static(ctx, Process, processes, pool,
- inqueue, outqueue, initializer,
- initargs, maxtasksperchild,
- wrap_exception)
+ if Pool._join_exited_workers(pool):
+ Pool._repopulate_pool_static(ctx, Process, processes, pool,
+ inqueue, outqueue, initializer,
+ initargs, maxtasksperchild,
+ wrap_exception)
def _setup_queues(self):
self._inqueue = self._ctx.SimpleQueue()
@@ -345,10 +345,10 @@ class Pool(object):
self._quick_put = self._inqueue._writer.send
self._quick_get = self._outqueue._reader.recv
- def _check_running(self):
- if self._state != RUN:
- raise ValueError("Pool not running")
-
+ def _check_running(self):
+ if self._state != RUN:
+ raise ValueError("Pool not running")
+
def apply(self, func, args=(), kwds={}):
'''
Equivalent of `func(*args, **kwds)`.
@@ -394,9 +394,9 @@ class Pool(object):
'''
Equivalent of `map()` -- can be MUCH slower than `Pool.map()`.
'''
- self._check_running()
+ self._check_running()
if chunksize == 1:
- result = IMapIterator(self)
+ result = IMapIterator(self)
self._taskqueue.put(
(
self._guarded_task_generation(result._job, func, iterable),
@@ -409,7 +409,7 @@ class Pool(object):
"Chunksize must be 1+, not {0:n}".format(
chunksize))
task_batches = Pool._get_tasks(func, iterable, chunksize)
- result = IMapIterator(self)
+ result = IMapIterator(self)
self._taskqueue.put(
(
self._guarded_task_generation(result._job,
@@ -423,9 +423,9 @@ class Pool(object):
'''
Like `imap()` method but ordering of results is arbitrary.
'''
- self._check_running()
+ self._check_running()
if chunksize == 1:
- result = IMapUnorderedIterator(self)
+ result = IMapUnorderedIterator(self)
self._taskqueue.put(
(
self._guarded_task_generation(result._job, func, iterable),
@@ -437,7 +437,7 @@ class Pool(object):
raise ValueError(
"Chunksize must be 1+, not {0!r}".format(chunksize))
task_batches = Pool._get_tasks(func, iterable, chunksize)
- result = IMapUnorderedIterator(self)
+ result = IMapUnorderedIterator(self)
self._taskqueue.put(
(
self._guarded_task_generation(result._job,
@@ -452,8 +452,8 @@ class Pool(object):
'''
Asynchronous version of `apply()` method.
'''
- self._check_running()
- result = ApplyResult(self, callback, error_callback)
+ self._check_running()
+ result = ApplyResult(self, callback, error_callback)
self._taskqueue.put(([(result._job, 0, func, args, kwds)], None))
return result
@@ -470,7 +470,7 @@ class Pool(object):
'''
Helper function to implement map, starmap and their async counterparts.
'''
- self._check_running()
+ self._check_running()
if not hasattr(iterable, '__len__'):
iterable = list(iterable)
@@ -482,7 +482,7 @@ class Pool(object):
chunksize = 0
task_batches = Pool._get_tasks(func, iterable, chunksize)
- result = MapResult(self, chunksize, len(iterable), callback,
+ result = MapResult(self, chunksize, len(iterable), callback,
error_callback=error_callback)
self._taskqueue.put(
(
@@ -495,30 +495,30 @@ class Pool(object):
return result
@staticmethod
- def _wait_for_updates(sentinels, change_notifier, timeout=None):
- wait(sentinels, timeout=timeout)
- while not change_notifier.empty():
- change_notifier.get()
-
- @classmethod
- def _handle_workers(cls, cache, taskqueue, ctx, Process, processes,
- pool, inqueue, outqueue, initializer, initargs,
- maxtasksperchild, wrap_exception, sentinels,
- change_notifier):
+ def _wait_for_updates(sentinels, change_notifier, timeout=None):
+ wait(sentinels, timeout=timeout)
+ while not change_notifier.empty():
+ change_notifier.get()
+
+ @classmethod
+ def _handle_workers(cls, cache, taskqueue, ctx, Process, processes,
+ pool, inqueue, outqueue, initializer, initargs,
+ maxtasksperchild, wrap_exception, sentinels,
+ change_notifier):
thread = threading.current_thread()
# Keep maintaining workers until the cache gets drained, unless the pool
# is terminated.
- while thread._state == RUN or (cache and thread._state != TERMINATE):
- cls._maintain_pool(ctx, Process, processes, pool, inqueue,
- outqueue, initializer, initargs,
- maxtasksperchild, wrap_exception)
-
- current_sentinels = [*cls._get_worker_sentinels(pool), *sentinels]
-
- cls._wait_for_updates(current_sentinels, change_notifier)
+ while thread._state == RUN or (cache and thread._state != TERMINATE):
+ cls._maintain_pool(ctx, Process, processes, pool, inqueue,
+ outqueue, initializer, initargs,
+ maxtasksperchild, wrap_exception)
+
+ current_sentinels = [*cls._get_worker_sentinels(pool), *sentinels]
+
+ cls._wait_for_updates(current_sentinels, change_notifier)
# send sentinel to stop workers
- taskqueue.put(None)
+ taskqueue.put(None)
util.debug('worker handler exiting')
@staticmethod
@@ -530,7 +530,7 @@ class Pool(object):
try:
# iterating taskseq cannot fail
for task in taskseq:
- if thread._state != RUN:
+ if thread._state != RUN:
util.debug('task handler found thread._state != RUN')
break
try:
@@ -578,7 +578,7 @@ class Pool(object):
util.debug('result handler got EOFError/OSError -- exiting')
return
- if thread._state != RUN:
+ if thread._state != RUN:
assert thread._state == TERMINATE, "Thread not in TERMINATE"
util.debug('result handler found thread._state=TERMINATE')
break
@@ -646,7 +646,7 @@ class Pool(object):
if self._state == RUN:
self._state = CLOSE
self._worker_handler._state = CLOSE
- self._change_notifier.put(None)
+ self._change_notifier.put(None)
def terminate(self):
util.debug('terminating pool')
@@ -675,17 +675,17 @@ class Pool(object):
time.sleep(0)
@classmethod
- def _terminate_pool(cls, taskqueue, inqueue, outqueue, pool, change_notifier,
+ def _terminate_pool(cls, taskqueue, inqueue, outqueue, pool, change_notifier,
worker_handler, task_handler, result_handler, cache):
# this is guaranteed to only be called once
util.debug('finalizing pool')
- # Notify that the worker_handler state has been changed so the
- # _handle_workers loop can be unblocked (and exited) in order to
- # send the finalization sentinel all the workers.
+ # Notify that the worker_handler state has been changed so the
+ # _handle_workers loop can be unblocked (and exited) in order to
+ # send the finalization sentinel all the workers.
worker_handler._state = TERMINATE
- change_notifier.put(None)
-
+ change_notifier.put(None)
+
task_handler._state = TERMINATE
util.debug('helping task handler/workers to finish')
@@ -696,7 +696,7 @@ class Pool(object):
"Cannot have cache with result_hander not alive")
result_handler._state = TERMINATE
- change_notifier.put(None)
+ change_notifier.put(None)
outqueue.put(None) # sentinel
# We must wait for the worker handler to exit before terminating
@@ -729,7 +729,7 @@ class Pool(object):
p.join()
def __enter__(self):
- self._check_running()
+ self._check_running()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
@@ -741,14 +741,14 @@ class Pool(object):
class ApplyResult(object):
- def __init__(self, pool, callback, error_callback):
- self._pool = pool
+ def __init__(self, pool, callback, error_callback):
+ self._pool = pool
self._event = threading.Event()
self._job = next(job_counter)
- self._cache = pool._cache
+ self._cache = pool._cache
self._callback = callback
self._error_callback = error_callback
- self._cache[self._job] = self
+ self._cache[self._job] = self
def ready(self):
return self._event.is_set()
@@ -778,10 +778,10 @@ class ApplyResult(object):
self._error_callback(self._value)
self._event.set()
del self._cache[self._job]
- self._pool = None
+ self._pool = None
+
+ __class_getitem__ = classmethod(types.GenericAlias)
- __class_getitem__ = classmethod(types.GenericAlias)
-
AsyncResult = ApplyResult # create alias -- see #17805
#
@@ -790,8 +790,8 @@ AsyncResult = ApplyResult # create alias -- see #17805
class MapResult(ApplyResult):
- def __init__(self, pool, chunksize, length, callback, error_callback):
- ApplyResult.__init__(self, pool, callback,
+ def __init__(self, pool, chunksize, length, callback, error_callback):
+ ApplyResult.__init__(self, pool, callback,
error_callback=error_callback)
self._success = True
self._value = [None] * length
@@ -799,7 +799,7 @@ class MapResult(ApplyResult):
if chunksize <= 0:
self._number_left = 0
self._event.set()
- del self._cache[self._job]
+ del self._cache[self._job]
else:
self._number_left = length//chunksize + bool(length % chunksize)
@@ -813,7 +813,7 @@ class MapResult(ApplyResult):
self._callback(self._value)
del self._cache[self._job]
self._event.set()
- self._pool = None
+ self._pool = None
else:
if not success and self._success:
# only store first exception
@@ -825,7 +825,7 @@ class MapResult(ApplyResult):
self._error_callback(self._value)
del self._cache[self._job]
self._event.set()
- self._pool = None
+ self._pool = None
#
# Class whose instances are returned by `Pool.imap()`
@@ -833,16 +833,16 @@ class MapResult(ApplyResult):
class IMapIterator(object):
- def __init__(self, pool):
- self._pool = pool
+ def __init__(self, pool):
+ self._pool = pool
self._cond = threading.Condition(threading.Lock())
self._job = next(job_counter)
- self._cache = pool._cache
+ self._cache = pool._cache
self._items = collections.deque()
self._index = 0
self._length = None
self._unsorted = {}
- self._cache[self._job] = self
+ self._cache[self._job] = self
def __iter__(self):
return self
@@ -853,14 +853,14 @@ class IMapIterator(object):
item = self._items.popleft()
except IndexError:
if self._index == self._length:
- self._pool = None
+ self._pool = None
raise StopIteration from None
self._cond.wait(timeout)
try:
item = self._items.popleft()
except IndexError:
if self._index == self._length:
- self._pool = None
+ self._pool = None
raise StopIteration from None
raise TimeoutError from None
@@ -886,7 +886,7 @@ class IMapIterator(object):
if self._index == self._length:
del self._cache[self._job]
- self._pool = None
+ self._pool = None
def _set_length(self, length):
with self._cond:
@@ -894,7 +894,7 @@ class IMapIterator(object):
if self._index == self._length:
self._cond.notify()
del self._cache[self._job]
- self._pool = None
+ self._pool = None
#
# Class whose instances are returned by `Pool.imap_unordered()`
@@ -909,7 +909,7 @@ class IMapUnorderedIterator(IMapIterator):
self._cond.notify()
if self._index == self._length:
del self._cache[self._job]
- self._pool = None
+ self._pool = None
#
#
@@ -919,7 +919,7 @@ class ThreadPool(Pool):
_wrap_exception = False
@staticmethod
- def Process(ctx, *args, **kwds):
+ def Process(ctx, *args, **kwds):
from .dummy import Process
return Process(*args, **kwds)
@@ -932,14 +932,14 @@ class ThreadPool(Pool):
self._quick_put = self._inqueue.put
self._quick_get = self._outqueue.get
- def _get_sentinels(self):
- return [self._change_notifier._reader]
-
+ def _get_sentinels(self):
+ return [self._change_notifier._reader]
+
+ @staticmethod
+ def _get_worker_sentinels(workers):
+ return []
+
@staticmethod
- def _get_worker_sentinels(workers):
- return []
-
- @staticmethod
def _help_stuff_finish(inqueue, task_handler, size):
# drain inqueue, and put sentinels at its head to make workers finish
try:
@@ -949,6 +949,6 @@ class ThreadPool(Pool):
pass
for i in range(size):
inqueue.put(None)
-
- def _wait_for_updates(self, sentinels, change_notifier, timeout):
- time.sleep(timeout)
+
+ def _wait_for_updates(self, sentinels, change_notifier, timeout):
+ time.sleep(timeout)
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/popen_fork.py b/contrib/tools/python3/src/Lib/multiprocessing/popen_fork.py
index a3da92ef0a..625981cf47 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/popen_fork.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/popen_fork.py
@@ -25,12 +25,12 @@ class Popen(object):
if self.returncode is None:
try:
pid, sts = os.waitpid(self.pid, flag)
- except OSError:
+ except OSError:
# Child process not yet created. See #1731717
# e.errno == errno.ECHILD == 10
return None
if pid == self.pid:
- self.returncode = os.waitstatus_to_exitcode(sts)
+ self.returncode = os.waitstatus_to_exitcode(sts)
return self.returncode
def wait(self, timeout=None):
@@ -62,20 +62,20 @@ class Popen(object):
def _launch(self, process_obj):
code = 1
parent_r, child_w = os.pipe()
- child_r, parent_w = os.pipe()
+ child_r, parent_w = os.pipe()
self.pid = os.fork()
if self.pid == 0:
try:
os.close(parent_r)
- os.close(parent_w)
- code = process_obj._bootstrap(parent_sentinel=child_r)
+ os.close(parent_w)
+ code = process_obj._bootstrap(parent_sentinel=child_r)
finally:
os._exit(code)
else:
os.close(child_w)
- os.close(child_r)
- self.finalizer = util.Finalize(self, util.close_fds,
- (parent_r, parent_w,))
+ os.close(child_r)
+ self.finalizer = util.Finalize(self, util.close_fds,
+ (parent_r, parent_w,))
self.sentinel = parent_r
def close(self):
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/popen_forkserver.py b/contrib/tools/python3/src/Lib/multiprocessing/popen_forkserver.py
index 4cd65bad76..a56eb9bf11 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/popen_forkserver.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/popen_forkserver.py
@@ -49,11 +49,11 @@ class Popen(popen_fork.Popen):
set_spawning_popen(None)
self.sentinel, w = forkserver.connect_to_new_process(self._fds)
- # Keep a duplicate of the data pipe's write end as a sentinel of the
- # parent process used by the child process.
- _parent_w = os.dup(w)
- self.finalizer = util.Finalize(self, util.close_fds,
- (_parent_w, self.sentinel))
+ # Keep a duplicate of the data pipe's write end as a sentinel of the
+ # parent process used by the child process.
+ _parent_w = os.dup(w)
+ self.finalizer = util.Finalize(self, util.close_fds,
+ (_parent_w, self.sentinel))
with open(w, 'wb', closefd=True) as f:
f.write(buf.getbuffer())
self.pid = forkserver.read_signed(self.sentinel)
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_posix.py b/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_posix.py
index 898b689c38..24b8634523 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_posix.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_posix.py
@@ -36,8 +36,8 @@ class Popen(popen_fork.Popen):
return fd
def _launch(self, process_obj):
- from . import resource_tracker
- tracker_fd = resource_tracker.getfd()
+ from . import resource_tracker
+ tracker_fd = resource_tracker.getfd()
self._fds.append(tracker_fd)
prep_data = spawn.get_preparation_data(process_obj._name)
fp = io.BytesIO()
@@ -61,12 +61,12 @@ class Popen(popen_fork.Popen):
with open(parent_w, 'wb', closefd=False) as f:
f.write(fp.getbuffer())
finally:
- fds_to_close = []
- for fd in (parent_r, parent_w):
+ fds_to_close = []
+ for fd in (parent_r, parent_w):
+ if fd is not None:
+ fds_to_close.append(fd)
+ self.finalizer = util.Finalize(self, util.close_fds, fds_to_close)
+
+ for fd in (child_r, child_w):
if fd is not None:
- fds_to_close.append(fd)
- self.finalizer = util.Finalize(self, util.close_fds, fds_to_close)
-
- for fd in (child_r, child_w):
- if fd is not None:
os.close(fd)
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_win32.py b/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_win32.py
index f866c59743..27fe064290 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_win32.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/popen_spawn_win32.py
@@ -22,7 +22,7 @@ WINSERVICE = sys.executable.lower().endswith("pythonservice.exe")
def _path_eq(p1, p2):
return p1 == p2 or os.path.normcase(p1) == os.path.normcase(p2)
-WINENV = not _path_eq(sys.executable, sys._base_executable)
+WINENV = not _path_eq(sys.executable, sys._base_executable)
def _close_handles(*handles):
@@ -44,12 +44,12 @@ class Popen(object):
def __init__(self, process_obj):
prep_data = spawn.get_preparation_data(process_obj._name)
- # read end of pipe will be duplicated by the child process
+ # read end of pipe will be duplicated by the child process
# -- see spawn_main() in spawn.py.
- #
- # bpo-33929: Previously, the read end of pipe was "stolen" by the child
- # process, but it leaked a handle if the child process had been
- # terminated before it could steal the handle from the parent process.
+ #
+ # bpo-33929: Previously, the read end of pipe was "stolen" by the child
+ # process, but it leaked a handle if the child process had been
+ # terminated before it could steal the handle from the parent process.
rhandle, whandle = _winapi.CreatePipe(None, 0)
wfd = msvcrt.open_osfhandle(whandle, 0)
cmd = spawn.get_command_line(parent_pid=os.getpid(),
@@ -73,7 +73,7 @@ class Popen(object):
try:
hp, ht, pid, tid = _winapi.CreateProcess(
python_exe, cmd,
- None, None, False, 0, env, None, None)
+ None, None, False, 0, env, None, None)
_winapi.CloseHandle(ht)
except:
_winapi.CloseHandle(rhandle)
@@ -84,8 +84,8 @@ class Popen(object):
self.returncode = None
self._handle = hp
self.sentinel = int(hp)
- self.finalizer = util.Finalize(self, _close_handles,
- (self.sentinel, int(rhandle)))
+ self.finalizer = util.Finalize(self, _close_handles,
+ (self.sentinel, int(rhandle)))
# send information to child
set_spawning_popen(self)
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/process.py b/contrib/tools/python3/src/Lib/multiprocessing/process.py
index 8177dcd7be..0b2e0b45b2 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/process.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/process.py
@@ -7,8 +7,8 @@
# Licensed to PSF under a Contributor Agreement.
#
-__all__ = ['BaseProcess', 'current_process', 'active_children',
- 'parent_process']
+__all__ = ['BaseProcess', 'current_process', 'active_children',
+ 'parent_process']
#
# Imports
@@ -47,13 +47,13 @@ def active_children():
_cleanup()
return list(_children)
-
-def parent_process():
- '''
- Return process object representing the parent process
- '''
- return _parent_process
-
+
+def parent_process():
+ '''
+ Return process object representing the parent process
+ '''
+ return _parent_process
+
#
#
#
@@ -84,7 +84,7 @@ class BaseProcess(object):
self._identity = _current_process._identity + (count,)
self._config = _current_process._config.copy()
self._parent_pid = os.getpid()
- self._parent_name = _current_process.name
+ self._parent_name = _current_process.name
self._popen = None
self._closed = False
self._target = target
@@ -257,7 +257,7 @@ class BaseProcess(object):
raise ValueError("process not started") from None
def __repr__(self):
- exitcode = None
+ exitcode = None
if self is _current_process:
status = 'started'
elif self._closed:
@@ -267,29 +267,29 @@ class BaseProcess(object):
elif self._popen is None:
status = 'initial'
else:
- exitcode = self._popen.poll()
- if exitcode is not None:
- status = 'stopped'
+ exitcode = self._popen.poll()
+ if exitcode is not None:
+ status = 'stopped'
else:
status = 'started'
- info = [type(self).__name__, 'name=%r' % self._name]
- if self._popen is not None:
- info.append('pid=%s' % self._popen.pid)
- info.append('parent=%s' % self._parent_pid)
- info.append(status)
- if exitcode is not None:
- exitcode = _exitcode_to_name.get(exitcode, exitcode)
- info.append('exitcode=%s' % exitcode)
- if self.daemon:
- info.append('daemon')
- return '<%s>' % ' '.join(info)
+ info = [type(self).__name__, 'name=%r' % self._name]
+ if self._popen is not None:
+ info.append('pid=%s' % self._popen.pid)
+ info.append('parent=%s' % self._parent_pid)
+ info.append(status)
+ if exitcode is not None:
+ exitcode = _exitcode_to_name.get(exitcode, exitcode)
+ info.append('exitcode=%s' % exitcode)
+ if self.daemon:
+ info.append('daemon')
+ return '<%s>' % ' '.join(info)
##
- def _bootstrap(self, parent_sentinel=None):
+ def _bootstrap(self, parent_sentinel=None):
from . import util, context
- global _current_process, _parent_process, _process_counter, _children
+ global _current_process, _parent_process, _process_counter, _children
try:
if self._start_method is not None:
@@ -299,10 +299,10 @@ class BaseProcess(object):
util._close_stdin()
old_process = _current_process
_current_process = self
- _parent_process = _ParentProcess(
- self._parent_name, self._parent_pid, parent_sentinel)
- if threading._HAVE_THREAD_NATIVE_ID:
- threading.main_thread()._set_native_id()
+ _parent_process = _ParentProcess(
+ self._parent_name, self._parent_pid, parent_sentinel)
+ if threading._HAVE_THREAD_NATIVE_ID:
+ threading.main_thread()._set_native_id()
try:
util._finalizer_registry.clear()
util._run_after_forkers()
@@ -317,12 +317,12 @@ class BaseProcess(object):
finally:
util._exit_function()
except SystemExit as e:
- if e.code is None:
- exitcode = 0
- elif isinstance(e.code, int):
- exitcode = e.code
+ if e.code is None:
+ exitcode = 0
+ elif isinstance(e.code, int):
+ exitcode = e.code
else:
- sys.stderr.write(str(e.code) + '\n')
+ sys.stderr.write(str(e.code) + '\n')
exitcode = 1
except:
exitcode = 1
@@ -350,41 +350,41 @@ class AuthenticationString(bytes):
)
return AuthenticationString, (bytes(self),)
-
+
+#
+# Create object representing the parent process
+#
+
+class _ParentProcess(BaseProcess):
+
+ def __init__(self, name, pid, sentinel):
+ self._identity = ()
+ self._name = name
+ self._pid = pid
+ self._parent_pid = None
+ self._popen = None
+ self._closed = False
+ self._sentinel = sentinel
+ self._config = {}
+
+ def is_alive(self):
+ from multiprocessing.connection import wait
+ return not wait([self._sentinel], timeout=0)
+
+ @property
+ def ident(self):
+ return self._pid
+
+ def join(self, timeout=None):
+ '''
+ Wait until parent process terminates
+ '''
+ from multiprocessing.connection import wait
+ wait([self._sentinel], timeout=timeout)
+
+ pid = ident
+
#
-# Create object representing the parent process
-#
-
-class _ParentProcess(BaseProcess):
-
- def __init__(self, name, pid, sentinel):
- self._identity = ()
- self._name = name
- self._pid = pid
- self._parent_pid = None
- self._popen = None
- self._closed = False
- self._sentinel = sentinel
- self._config = {}
-
- def is_alive(self):
- from multiprocessing.connection import wait
- return not wait([self._sentinel], timeout=0)
-
- @property
- def ident(self):
- return self._pid
-
- def join(self, timeout=None):
- '''
- Wait until parent process terminates
- '''
- from multiprocessing.connection import wait
- wait([self._sentinel], timeout=timeout)
-
- pid = ident
-
-#
# Create object representing the main process
#
@@ -412,7 +412,7 @@ class _MainProcess(BaseProcess):
pass
-_parent_process = None
+_parent_process = None
_current_process = _MainProcess()
_process_counter = itertools.count(1)
_children = set()
@@ -426,7 +426,7 @@ _exitcode_to_name = {}
for name, signum in list(signal.__dict__.items()):
if name[:3]=='SIG' and '_' not in name:
- _exitcode_to_name[-signum] = f'-{name}'
+ _exitcode_to_name[-signum] = f'-{name}'
# For debug and leak testing
_dangling = WeakSet()
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/queues.py b/contrib/tools/python3/src/Lib/multiprocessing/queues.py
index 1646d270ec..a290181487 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/queues.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/queues.py
@@ -14,7 +14,7 @@ import os
import threading
import collections
import time
-import types
+import types
import weakref
import errno
@@ -49,7 +49,7 @@ class Queue(object):
self._sem = ctx.BoundedSemaphore(maxsize)
# For use by concurrent.futures
self._ignore_epipe = False
- self._reset()
+ self._reset()
if sys.platform != 'win32':
register_after_fork(self, Queue._after_fork)
@@ -62,17 +62,17 @@ class Queue(object):
def __setstate__(self, state):
(self._ignore_epipe, self._maxsize, self._reader, self._writer,
self._rlock, self._wlock, self._sem, self._opid) = state
- self._reset()
+ self._reset()
def _after_fork(self):
debug('Queue._after_fork()')
- self._reset(after_fork=True)
-
- def _reset(self, after_fork=False):
- if after_fork:
- self._notempty._at_fork_reinit()
- else:
- self._notempty = threading.Condition(threading.Lock())
+ self._reset(after_fork=True)
+
+ def _reset(self, after_fork=False):
+ if after_fork:
+ self._notempty._at_fork_reinit()
+ else:
+ self._notempty = threading.Condition(threading.Lock())
self._buffer = collections.deque()
self._thread = None
self._jointhread = None
@@ -84,8 +84,8 @@ class Queue(object):
self._poll = self._reader.poll
def put(self, obj, block=True, timeout=None):
- if self._closed:
- raise ValueError(f"Queue {self!r} is closed")
+ if self._closed:
+ raise ValueError(f"Queue {self!r} is closed")
if not self._sem.acquire(block, timeout):
raise Full
@@ -96,8 +96,8 @@ class Queue(object):
self._notempty.notify()
def get(self, block=True, timeout=None):
- if self._closed:
- raise ValueError(f"Queue {self!r} is closed")
+ if self._closed:
+ raise ValueError(f"Queue {self!r} is closed")
if block and timeout is None:
with self._rlock:
res = self._recv_bytes()
@@ -307,8 +307,8 @@ class JoinableQueue(Queue):
self._cond, self._unfinished_tasks = state[-2:]
def put(self, obj, block=True, timeout=None):
- if self._closed:
- raise ValueError(f"Queue {self!r} is closed")
+ if self._closed:
+ raise ValueError(f"Queue {self!r} is closed")
if not self._sem.acquire(block, timeout):
raise Full
@@ -346,10 +346,10 @@ class SimpleQueue(object):
else:
self._wlock = ctx.Lock()
- def close(self):
- self._reader.close()
- self._writer.close()
-
+ def close(self):
+ self._reader.close()
+ self._writer.close()
+
def empty(self):
return not self._poll()
@@ -376,5 +376,5 @@ class SimpleQueue(object):
else:
with self._wlock:
self._writer.send_bytes(obj)
-
- __class_getitem__ = classmethod(types.GenericAlias)
+
+ __class_getitem__ = classmethod(types.GenericAlias)
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/reduction.py b/contrib/tools/python3/src/Lib/multiprocessing/reduction.py
index d4a7f802ba..5593f0682f 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/reduction.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/reduction.py
@@ -68,16 +68,16 @@ if sys.platform == 'win32':
__all__ += ['DupHandle', 'duplicate', 'steal_handle']
import _winapi
- def duplicate(handle, target_process=None, inheritable=False,
- *, source_process=None):
+ def duplicate(handle, target_process=None, inheritable=False,
+ *, source_process=None):
'''Duplicate a handle. (target_process is a handle not a pid!)'''
- current_process = _winapi.GetCurrentProcess()
- if source_process is None:
- source_process = current_process
+ current_process = _winapi.GetCurrentProcess()
+ if source_process is None:
+ source_process = current_process
if target_process is None:
- target_process = current_process
+ target_process = current_process
return _winapi.DuplicateHandle(
- source_process, handle, target_process,
+ source_process, handle, target_process,
0, inheritable, _winapi.DUPLICATE_SAME_ACCESS)
def steal_handle(source_pid, handle):
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/resource_sharer.py b/contrib/tools/python3/src/Lib/multiprocessing/resource_sharer.py
index aef0c1e84f..66076509a1 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/resource_sharer.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/resource_sharer.py
@@ -59,7 +59,7 @@ else:
class _ResourceSharer(object):
- '''Manager for resources using background thread.'''
+ '''Manager for resources using background thread.'''
def __init__(self):
self._key = 0
self._cache = {}
@@ -112,7 +112,7 @@ class _ResourceSharer(object):
for key, (send, close) in self._cache.items():
close()
self._cache.clear()
- self._lock._at_fork_reinit()
+ self._lock._at_fork_reinit()
if self._listener is not None:
self._listener.close()
self._listener = None
@@ -132,7 +132,7 @@ class _ResourceSharer(object):
def _serve(self):
if hasattr(signal, 'pthread_sigmask'):
- signal.pthread_sigmask(signal.SIG_BLOCK, signal.valid_signals())
+ signal.pthread_sigmask(signal.SIG_BLOCK, signal.valid_signals())
while 1:
try:
with self._listener.accept() as conn:
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/resource_tracker.py b/contrib/tools/python3/src/Lib/multiprocessing/resource_tracker.py
index dc24abcae1..c9bfa9b82b 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/resource_tracker.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/resource_tracker.py
@@ -1,231 +1,231 @@
-###############################################################################
-# Server process to keep track of unlinked resources (like shared memory
-# segments, semaphores etc.) and clean them.
-#
-# On Unix we run a server process which keeps track of unlinked
-# resources. The server ignores SIGINT and SIGTERM and reads from a
-# pipe. Every other process of the program has a copy of the writable
-# end of the pipe, so we get EOF when all other processes have exited.
-# Then the server process unlinks any remaining resource names.
-#
-# This is important because there may be system limits for such resources: for
-# instance, the system only supports a limited number of named semaphores, and
-# shared-memory segments live in the RAM. If a python process leaks such a
-# resource, this resource will not be removed till the next reboot. Without
-# this resource tracker process, "killall python" would probably leave unlinked
-# resources.
-
-import os
-import signal
-import sys
-import threading
-import warnings
-
-from . import spawn
-from . import util
-
-__all__ = ['ensure_running', 'register', 'unregister']
-
-_HAVE_SIGMASK = hasattr(signal, 'pthread_sigmask')
-_IGNORED_SIGNALS = (signal.SIGINT, signal.SIGTERM)
-
-_CLEANUP_FUNCS = {
- 'noop': lambda: None,
-}
-
-if os.name == 'posix':
- import _multiprocessing
- import _posixshmem
-
- _CLEANUP_FUNCS.update({
- 'semaphore': _multiprocessing.sem_unlink,
- 'shared_memory': _posixshmem.shm_unlink,
- })
-
-
-class ResourceTracker(object):
-
- def __init__(self):
- self._lock = threading.Lock()
- self._fd = None
- self._pid = None
-
- def _stop(self):
- with self._lock:
- if self._fd is None:
- # not running
- return
-
- # closing the "alive" file descriptor stops main()
- os.close(self._fd)
- self._fd = None
-
- os.waitpid(self._pid, 0)
- self._pid = None
-
- def getfd(self):
- self.ensure_running()
- return self._fd
-
- def ensure_running(self):
- '''Make sure that resource tracker process is running.
-
- This can be run from any process. Usually a child process will use
- the resource created by its parent.'''
- with self._lock:
- if self._fd is not None:
- # resource tracker was launched before, is it still running?
- if self._check_alive():
- # => still alive
- return
- # => dead, launch it again
- os.close(self._fd)
-
- # Clean-up to avoid dangling processes.
- try:
- # _pid can be None if this process is a child from another
- # python process, which has started the resource_tracker.
- if self._pid is not None:
- os.waitpid(self._pid, 0)
- except ChildProcessError:
- # The resource_tracker has already been terminated.
- pass
- self._fd = None
- self._pid = None
-
- warnings.warn('resource_tracker: process died unexpectedly, '
- 'relaunching. Some resources might leak.')
-
- fds_to_pass = []
- try:
- fds_to_pass.append(sys.stderr.fileno())
- except Exception:
- pass
- cmd = 'from multiprocessing.resource_tracker import main;main(%d)'
- r, w = os.pipe()
- try:
- fds_to_pass.append(r)
- # process will out live us, so no need to wait on pid
- exe = spawn.get_executable()
- args = [exe] + util._args_from_interpreter_flags()
- args += ['-c', cmd % r]
- # bpo-33613: Register a signal mask that will block the signals.
- # This signal mask will be inherited by the child that is going
- # to be spawned and will protect the child from a race condition
- # that can make the child die before it registers signal handlers
- # for SIGINT and SIGTERM. The mask is unregistered after spawning
- # the child.
- try:
- if _HAVE_SIGMASK:
- signal.pthread_sigmask(signal.SIG_BLOCK, _IGNORED_SIGNALS)
- pid = util.spawnv_passfds(exe, args, fds_to_pass)
- finally:
- if _HAVE_SIGMASK:
- signal.pthread_sigmask(signal.SIG_UNBLOCK, _IGNORED_SIGNALS)
- except:
- os.close(w)
- raise
- else:
- self._fd = w
- self._pid = pid
- finally:
- os.close(r)
-
- def _check_alive(self):
- '''Check that the pipe has not been closed by sending a probe.'''
- try:
- # We cannot use send here as it calls ensure_running, creating
- # a cycle.
- os.write(self._fd, b'PROBE:0:noop\n')
- except OSError:
- return False
- else:
- return True
-
- def register(self, name, rtype):
- '''Register name of resource with resource tracker.'''
- self._send('REGISTER', name, rtype)
-
- def unregister(self, name, rtype):
- '''Unregister name of resource with resource tracker.'''
- self._send('UNREGISTER', name, rtype)
-
- def _send(self, cmd, name, rtype):
- self.ensure_running()
- msg = '{0}:{1}:{2}\n'.format(cmd, name, rtype).encode('ascii')
- if len(name) > 512:
- # posix guarantees that writes to a pipe of less than PIPE_BUF
- # bytes are atomic, and that PIPE_BUF >= 512
- raise ValueError('name too long')
- nbytes = os.write(self._fd, msg)
- assert nbytes == len(msg), "nbytes {0:n} but len(msg) {1:n}".format(
- nbytes, len(msg))
-
-
-_resource_tracker = ResourceTracker()
-ensure_running = _resource_tracker.ensure_running
-register = _resource_tracker.register
-unregister = _resource_tracker.unregister
-getfd = _resource_tracker.getfd
-
-def main(fd):
- '''Run resource tracker.'''
- # protect the process from ^C and "killall python" etc
- signal.signal(signal.SIGINT, signal.SIG_IGN)
- signal.signal(signal.SIGTERM, signal.SIG_IGN)
- if _HAVE_SIGMASK:
- signal.pthread_sigmask(signal.SIG_UNBLOCK, _IGNORED_SIGNALS)
-
- for f in (sys.stdin, sys.stdout):
- try:
- f.close()
- except Exception:
- pass
-
- cache = {rtype: set() for rtype in _CLEANUP_FUNCS.keys()}
- try:
- # keep track of registered/unregistered resources
- with open(fd, 'rb') as f:
- for line in f:
- try:
- cmd, name, rtype = line.strip().decode('ascii').split(':')
- cleanup_func = _CLEANUP_FUNCS.get(rtype, None)
- if cleanup_func is None:
- raise ValueError(
- f'Cannot register {name} for automatic cleanup: '
- f'unknown resource type {rtype}')
-
- if cmd == 'REGISTER':
- cache[rtype].add(name)
- elif cmd == 'UNREGISTER':
- cache[rtype].remove(name)
- elif cmd == 'PROBE':
- pass
- else:
- raise RuntimeError('unrecognized command %r' % cmd)
- except Exception:
- try:
- sys.excepthook(*sys.exc_info())
- except:
- pass
- finally:
- # all processes have terminated; cleanup any remaining resources
- for rtype, rtype_cache in cache.items():
- if rtype_cache:
- try:
- warnings.warn('resource_tracker: There appear to be %d '
- 'leaked %s objects to clean up at shutdown' %
- (len(rtype_cache), rtype))
- except Exception:
- pass
- for name in rtype_cache:
- # For some reason the process which created and registered this
- # resource has failed to unregister it. Presumably it has
- # died. We therefore unlink it.
- try:
- try:
- _CLEANUP_FUNCS[rtype](name)
- except Exception as e:
- warnings.warn('resource_tracker: %r: %s' % (name, e))
- finally:
- pass
+###############################################################################
+# Server process to keep track of unlinked resources (like shared memory
+# segments, semaphores etc.) and clean them.
+#
+# On Unix we run a server process which keeps track of unlinked
+# resources. The server ignores SIGINT and SIGTERM and reads from a
+# pipe. Every other process of the program has a copy of the writable
+# end of the pipe, so we get EOF when all other processes have exited.
+# Then the server process unlinks any remaining resource names.
+#
+# This is important because there may be system limits for such resources: for
+# instance, the system only supports a limited number of named semaphores, and
+# shared-memory segments live in the RAM. If a python process leaks such a
+# resource, this resource will not be removed till the next reboot. Without
+# this resource tracker process, "killall python" would probably leave unlinked
+# resources.
+
+import os
+import signal
+import sys
+import threading
+import warnings
+
+from . import spawn
+from . import util
+
+__all__ = ['ensure_running', 'register', 'unregister']
+
+_HAVE_SIGMASK = hasattr(signal, 'pthread_sigmask')
+_IGNORED_SIGNALS = (signal.SIGINT, signal.SIGTERM)
+
+_CLEANUP_FUNCS = {
+ 'noop': lambda: None,
+}
+
+if os.name == 'posix':
+ import _multiprocessing
+ import _posixshmem
+
+ _CLEANUP_FUNCS.update({
+ 'semaphore': _multiprocessing.sem_unlink,
+ 'shared_memory': _posixshmem.shm_unlink,
+ })
+
+
+class ResourceTracker(object):
+
+ def __init__(self):
+ self._lock = threading.Lock()
+ self._fd = None
+ self._pid = None
+
+ def _stop(self):
+ with self._lock:
+ if self._fd is None:
+ # not running
+ return
+
+ # closing the "alive" file descriptor stops main()
+ os.close(self._fd)
+ self._fd = None
+
+ os.waitpid(self._pid, 0)
+ self._pid = None
+
+ def getfd(self):
+ self.ensure_running()
+ return self._fd
+
+ def ensure_running(self):
+ '''Make sure that resource tracker process is running.
+
+ This can be run from any process. Usually a child process will use
+ the resource created by its parent.'''
+ with self._lock:
+ if self._fd is not None:
+ # resource tracker was launched before, is it still running?
+ if self._check_alive():
+ # => still alive
+ return
+ # => dead, launch it again
+ os.close(self._fd)
+
+ # Clean-up to avoid dangling processes.
+ try:
+ # _pid can be None if this process is a child from another
+ # python process, which has started the resource_tracker.
+ if self._pid is not None:
+ os.waitpid(self._pid, 0)
+ except ChildProcessError:
+ # The resource_tracker has already been terminated.
+ pass
+ self._fd = None
+ self._pid = None
+
+ warnings.warn('resource_tracker: process died unexpectedly, '
+ 'relaunching. Some resources might leak.')
+
+ fds_to_pass = []
+ try:
+ fds_to_pass.append(sys.stderr.fileno())
+ except Exception:
+ pass
+ cmd = 'from multiprocessing.resource_tracker import main;main(%d)'
+ r, w = os.pipe()
+ try:
+ fds_to_pass.append(r)
+ # process will out live us, so no need to wait on pid
+ exe = spawn.get_executable()
+ args = [exe] + util._args_from_interpreter_flags()
+ args += ['-c', cmd % r]
+ # bpo-33613: Register a signal mask that will block the signals.
+ # This signal mask will be inherited by the child that is going
+ # to be spawned and will protect the child from a race condition
+ # that can make the child die before it registers signal handlers
+ # for SIGINT and SIGTERM. The mask is unregistered after spawning
+ # the child.
+ try:
+ if _HAVE_SIGMASK:
+ signal.pthread_sigmask(signal.SIG_BLOCK, _IGNORED_SIGNALS)
+ pid = util.spawnv_passfds(exe, args, fds_to_pass)
+ finally:
+ if _HAVE_SIGMASK:
+ signal.pthread_sigmask(signal.SIG_UNBLOCK, _IGNORED_SIGNALS)
+ except:
+ os.close(w)
+ raise
+ else:
+ self._fd = w
+ self._pid = pid
+ finally:
+ os.close(r)
+
+ def _check_alive(self):
+ '''Check that the pipe has not been closed by sending a probe.'''
+ try:
+ # We cannot use send here as it calls ensure_running, creating
+ # a cycle.
+ os.write(self._fd, b'PROBE:0:noop\n')
+ except OSError:
+ return False
+ else:
+ return True
+
+ def register(self, name, rtype):
+ '''Register name of resource with resource tracker.'''
+ self._send('REGISTER', name, rtype)
+
+ def unregister(self, name, rtype):
+ '''Unregister name of resource with resource tracker.'''
+ self._send('UNREGISTER', name, rtype)
+
+ def _send(self, cmd, name, rtype):
+ self.ensure_running()
+ msg = '{0}:{1}:{2}\n'.format(cmd, name, rtype).encode('ascii')
+ if len(name) > 512:
+ # posix guarantees that writes to a pipe of less than PIPE_BUF
+ # bytes are atomic, and that PIPE_BUF >= 512
+ raise ValueError('name too long')
+ nbytes = os.write(self._fd, msg)
+ assert nbytes == len(msg), "nbytes {0:n} but len(msg) {1:n}".format(
+ nbytes, len(msg))
+
+
+_resource_tracker = ResourceTracker()
+ensure_running = _resource_tracker.ensure_running
+register = _resource_tracker.register
+unregister = _resource_tracker.unregister
+getfd = _resource_tracker.getfd
+
+def main(fd):
+ '''Run resource tracker.'''
+ # protect the process from ^C and "killall python" etc
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
+ signal.signal(signal.SIGTERM, signal.SIG_IGN)
+ if _HAVE_SIGMASK:
+ signal.pthread_sigmask(signal.SIG_UNBLOCK, _IGNORED_SIGNALS)
+
+ for f in (sys.stdin, sys.stdout):
+ try:
+ f.close()
+ except Exception:
+ pass
+
+ cache = {rtype: set() for rtype in _CLEANUP_FUNCS.keys()}
+ try:
+ # keep track of registered/unregistered resources
+ with open(fd, 'rb') as f:
+ for line in f:
+ try:
+ cmd, name, rtype = line.strip().decode('ascii').split(':')
+ cleanup_func = _CLEANUP_FUNCS.get(rtype, None)
+ if cleanup_func is None:
+ raise ValueError(
+ f'Cannot register {name} for automatic cleanup: '
+ f'unknown resource type {rtype}')
+
+ if cmd == 'REGISTER':
+ cache[rtype].add(name)
+ elif cmd == 'UNREGISTER':
+ cache[rtype].remove(name)
+ elif cmd == 'PROBE':
+ pass
+ else:
+ raise RuntimeError('unrecognized command %r' % cmd)
+ except Exception:
+ try:
+ sys.excepthook(*sys.exc_info())
+ except:
+ pass
+ finally:
+ # all processes have terminated; cleanup any remaining resources
+ for rtype, rtype_cache in cache.items():
+ if rtype_cache:
+ try:
+ warnings.warn('resource_tracker: There appear to be %d '
+ 'leaked %s objects to clean up at shutdown' %
+ (len(rtype_cache), rtype))
+ except Exception:
+ pass
+ for name in rtype_cache:
+ # For some reason the process which created and registered this
+ # resource has failed to unregister it. Presumably it has
+ # died. We therefore unlink it.
+ try:
+ try:
+ _CLEANUP_FUNCS[rtype](name)
+ except Exception as e:
+ warnings.warn('resource_tracker: %r: %s' % (name, e))
+ finally:
+ pass
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/shared_memory.py b/contrib/tools/python3/src/Lib/multiprocessing/shared_memory.py
index db0516a993..122b3fcebf 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/shared_memory.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/shared_memory.py
@@ -1,532 +1,532 @@
-"""Provides shared memory for direct access across processes.
-
-The API of this package is currently provisional. Refer to the
-documentation for details.
-"""
-
-
-__all__ = [ 'SharedMemory', 'ShareableList' ]
-
-
-from functools import partial
-import mmap
-import os
-import errno
-import struct
-import secrets
-import types
-
-if os.name == "nt":
- import _winapi
- _USE_POSIX = False
-else:
- import _posixshmem
- _USE_POSIX = True
-
-
-_O_CREX = os.O_CREAT | os.O_EXCL
-
-# FreeBSD (and perhaps other BSDs) limit names to 14 characters.
-_SHM_SAFE_NAME_LENGTH = 14
-
-# Shared memory block name prefix
-if _USE_POSIX:
- _SHM_NAME_PREFIX = '/psm_'
-else:
- _SHM_NAME_PREFIX = 'wnsm_'
-
-
-def _make_filename():
- "Create a random filename for the shared memory object."
- # number of random bytes to use for name
- nbytes = (_SHM_SAFE_NAME_LENGTH - len(_SHM_NAME_PREFIX)) // 2
- assert nbytes >= 2, '_SHM_NAME_PREFIX too long'
- name = _SHM_NAME_PREFIX + secrets.token_hex(nbytes)
- assert len(name) <= _SHM_SAFE_NAME_LENGTH
- return name
-
-
-class SharedMemory:
- """Creates a new shared memory block or attaches to an existing
- shared memory block.
-
- Every shared memory block is assigned a unique name. This enables
- one process to create a shared memory block with a particular name
- so that a different process can attach to that same shared memory
- block using that same name.
-
- As a resource for sharing data across processes, shared memory blocks
- may outlive the original process that created them. When one process
- no longer needs access to a shared memory block that might still be
- needed by other processes, the close() method should be called.
- When a shared memory block is no longer needed by any process, the
- unlink() method should be called to ensure proper cleanup."""
-
- # Defaults; enables close() and unlink() to run without errors.
- _name = None
- _fd = -1
- _mmap = None
- _buf = None
- _flags = os.O_RDWR
- _mode = 0o600
- _prepend_leading_slash = True if _USE_POSIX else False
-
- def __init__(self, name=None, create=False, size=0):
- if not size >= 0:
- raise ValueError("'size' must be a positive integer")
- if create:
- self._flags = _O_CREX | os.O_RDWR
- if size == 0:
- raise ValueError("'size' must be a positive number different from zero")
- if name is None and not self._flags & os.O_EXCL:
- raise ValueError("'name' can only be None if create=True")
-
- if _USE_POSIX:
-
- # POSIX Shared Memory
-
- if name is None:
- while True:
- name = _make_filename()
- try:
- self._fd = _posixshmem.shm_open(
- name,
- self._flags,
- mode=self._mode
- )
- except FileExistsError:
- continue
- self._name = name
- break
- else:
- name = "/" + name if self._prepend_leading_slash else name
- self._fd = _posixshmem.shm_open(
- name,
- self._flags,
- mode=self._mode
- )
- self._name = name
- try:
- if create and size:
- os.ftruncate(self._fd, size)
- stats = os.fstat(self._fd)
- size = stats.st_size
- self._mmap = mmap.mmap(self._fd, size)
- except OSError:
- self.unlink()
- raise
-
- from .resource_tracker import register
- register(self._name, "shared_memory")
-
- else:
-
- # Windows Named Shared Memory
-
- if create:
- while True:
- temp_name = _make_filename() if name is None else name
- # Create and reserve shared memory block with this name
- # until it can be attached to by mmap.
- h_map = _winapi.CreateFileMapping(
- _winapi.INVALID_HANDLE_VALUE,
- _winapi.NULL,
- _winapi.PAGE_READWRITE,
- (size >> 32) & 0xFFFFFFFF,
- size & 0xFFFFFFFF,
- temp_name
- )
- try:
- last_error_code = _winapi.GetLastError()
- if last_error_code == _winapi.ERROR_ALREADY_EXISTS:
- if name is not None:
- raise FileExistsError(
- errno.EEXIST,
- os.strerror(errno.EEXIST),
- name,
- _winapi.ERROR_ALREADY_EXISTS
- )
- else:
- continue
- self._mmap = mmap.mmap(-1, size, tagname=temp_name)
- finally:
- _winapi.CloseHandle(h_map)
- self._name = temp_name
- break
-
- else:
- self._name = name
- # Dynamically determine the existing named shared memory
- # block's size which is likely a multiple of mmap.PAGESIZE.
- h_map = _winapi.OpenFileMapping(
- _winapi.FILE_MAP_READ,
- False,
- name
- )
- try:
- p_buf = _winapi.MapViewOfFile(
- h_map,
- _winapi.FILE_MAP_READ,
- 0,
- 0,
- 0
- )
- finally:
- _winapi.CloseHandle(h_map)
- size = _winapi.VirtualQuerySize(p_buf)
- self._mmap = mmap.mmap(-1, size, tagname=name)
-
- self._size = size
- self._buf = memoryview(self._mmap)
-
- def __del__(self):
- try:
- self.close()
- except OSError:
- pass
-
- def __reduce__(self):
- return (
- self.__class__,
- (
- self.name,
- False,
- self.size,
- ),
- )
-
- def __repr__(self):
- return f'{self.__class__.__name__}({self.name!r}, size={self.size})'
-
- @property
- def buf(self):
- "A memoryview of contents of the shared memory block."
- return self._buf
-
- @property
- def name(self):
- "Unique name that identifies the shared memory block."
- reported_name = self._name
- if _USE_POSIX and self._prepend_leading_slash:
- if self._name.startswith("/"):
- reported_name = self._name[1:]
- return reported_name
-
- @property
- def size(self):
- "Size in bytes."
- return self._size
-
- def close(self):
- """Closes access to the shared memory from this instance but does
- not destroy the shared memory block."""
- if self._buf is not None:
- self._buf.release()
- self._buf = None
- if self._mmap is not None:
- self._mmap.close()
- self._mmap = None
- if _USE_POSIX and self._fd >= 0:
- os.close(self._fd)
- self._fd = -1
-
- def unlink(self):
- """Requests that the underlying shared memory block be destroyed.
-
- In order to ensure proper cleanup of resources, unlink should be
- called once (and only once) across all processes which have access
- to the shared memory block."""
- if _USE_POSIX and self._name:
- from .resource_tracker import unregister
- _posixshmem.shm_unlink(self._name)
- unregister(self._name, "shared_memory")
-
-
-_encoding = "utf8"
-
-class ShareableList:
- """Pattern for a mutable list-like object shareable via a shared
- memory block. It differs from the built-in list type in that these
- lists can not change their overall length (i.e. no append, insert,
- etc.)
-
- Because values are packed into a memoryview as bytes, the struct
- packing format for any storable value must require no more than 8
- characters to describe its format."""
-
- # The shared memory area is organized as follows:
- # - 8 bytes: number of items (N) as a 64-bit integer
- # - (N + 1) * 8 bytes: offsets of each element from the start of the
- # data area
- # - K bytes: the data area storing item values (with encoding and size
- # depending on their respective types)
- # - N * 8 bytes: `struct` format string for each element
- # - N bytes: index into _back_transforms_mapping for each element
- # (for reconstructing the corresponding Python value)
- _types_mapping = {
- int: "q",
- float: "d",
- bool: "xxxxxxx?",
- str: "%ds",
- bytes: "%ds",
- None.__class__: "xxxxxx?x",
- }
- _alignment = 8
- _back_transforms_mapping = {
- 0: lambda value: value, # int, float, bool
- 1: lambda value: value.rstrip(b'\x00').decode(_encoding), # str
- 2: lambda value: value.rstrip(b'\x00'), # bytes
- 3: lambda _value: None, # None
- }
-
- @staticmethod
- def _extract_recreation_code(value):
- """Used in concert with _back_transforms_mapping to convert values
- into the appropriate Python objects when retrieving them from
- the list as well as when storing them."""
- if not isinstance(value, (str, bytes, None.__class__)):
- return 0
- elif isinstance(value, str):
- return 1
- elif isinstance(value, bytes):
- return 2
- else:
- return 3 # NoneType
-
- def __init__(self, sequence=None, *, name=None):
- if name is None or sequence is not None:
- sequence = sequence or ()
- _formats = [
- self._types_mapping[type(item)]
- if not isinstance(item, (str, bytes))
- else self._types_mapping[type(item)] % (
- self._alignment * (len(item) // self._alignment + 1),
- )
- for item in sequence
- ]
- self._list_len = len(_formats)
- assert sum(len(fmt) <= 8 for fmt in _formats) == self._list_len
- offset = 0
- # The offsets of each list element into the shared memory's
- # data area (0 meaning the start of the data area, not the start
- # of the shared memory area).
- self._allocated_offsets = [0]
- for fmt in _formats:
- offset += self._alignment if fmt[-1] != "s" else int(fmt[:-1])
- self._allocated_offsets.append(offset)
- _recreation_codes = [
- self._extract_recreation_code(item) for item in sequence
- ]
- requested_size = struct.calcsize(
- "q" + self._format_size_metainfo +
- "".join(_formats) +
- self._format_packing_metainfo +
- self._format_back_transform_codes
- )
-
- self.shm = SharedMemory(name, create=True, size=requested_size)
- else:
- self.shm = SharedMemory(name)
-
- if sequence is not None:
- _enc = _encoding
- struct.pack_into(
- "q" + self._format_size_metainfo,
- self.shm.buf,
- 0,
- self._list_len,
- *(self._allocated_offsets)
- )
- struct.pack_into(
- "".join(_formats),
- self.shm.buf,
- self._offset_data_start,
- *(v.encode(_enc) if isinstance(v, str) else v for v in sequence)
- )
- struct.pack_into(
- self._format_packing_metainfo,
- self.shm.buf,
- self._offset_packing_formats,
- *(v.encode(_enc) for v in _formats)
- )
- struct.pack_into(
- self._format_back_transform_codes,
- self.shm.buf,
- self._offset_back_transform_codes,
- *(_recreation_codes)
- )
-
- else:
- self._list_len = len(self) # Obtains size from offset 0 in buffer.
- self._allocated_offsets = list(
- struct.unpack_from(
- self._format_size_metainfo,
- self.shm.buf,
- 1 * 8
- )
- )
-
- def _get_packing_format(self, position):
- "Gets the packing format for a single value stored in the list."
- position = position if position >= 0 else position + self._list_len
- if (position >= self._list_len) or (self._list_len < 0):
- raise IndexError("Requested position out of range.")
-
- v = struct.unpack_from(
- "8s",
- self.shm.buf,
- self._offset_packing_formats + position * 8
- )[0]
- fmt = v.rstrip(b'\x00')
- fmt_as_str = fmt.decode(_encoding)
-
- return fmt_as_str
-
- def _get_back_transform(self, position):
- "Gets the back transformation function for a single value."
-
- if (position >= self._list_len) or (self._list_len < 0):
- raise IndexError("Requested position out of range.")
-
- transform_code = struct.unpack_from(
- "b",
- self.shm.buf,
- self._offset_back_transform_codes + position
- )[0]
- transform_function = self._back_transforms_mapping[transform_code]
-
- return transform_function
-
- def _set_packing_format_and_transform(self, position, fmt_as_str, value):
- """Sets the packing format and back transformation code for a
- single value in the list at the specified position."""
-
- if (position >= self._list_len) or (self._list_len < 0):
- raise IndexError("Requested position out of range.")
-
- struct.pack_into(
- "8s",
- self.shm.buf,
- self._offset_packing_formats + position * 8,
- fmt_as_str.encode(_encoding)
- )
-
- transform_code = self._extract_recreation_code(value)
- struct.pack_into(
- "b",
- self.shm.buf,
- self._offset_back_transform_codes + position,
- transform_code
- )
-
- def __getitem__(self, position):
- position = position if position >= 0 else position + self._list_len
- try:
- offset = self._offset_data_start + self._allocated_offsets[position]
- (v,) = struct.unpack_from(
- self._get_packing_format(position),
- self.shm.buf,
- offset
- )
- except IndexError:
- raise IndexError("index out of range")
-
- back_transform = self._get_back_transform(position)
- v = back_transform(v)
-
- return v
-
- def __setitem__(self, position, value):
- position = position if position >= 0 else position + self._list_len
- try:
- item_offset = self._allocated_offsets[position]
- offset = self._offset_data_start + item_offset
- current_format = self._get_packing_format(position)
- except IndexError:
- raise IndexError("assignment index out of range")
-
- if not isinstance(value, (str, bytes)):
- new_format = self._types_mapping[type(value)]
- encoded_value = value
- else:
- allocated_length = self._allocated_offsets[position + 1] - item_offset
-
- encoded_value = (value.encode(_encoding)
- if isinstance(value, str) else value)
- if len(encoded_value) > allocated_length:
- raise ValueError("bytes/str item exceeds available storage")
- if current_format[-1] == "s":
- new_format = current_format
- else:
- new_format = self._types_mapping[str] % (
- allocated_length,
- )
-
- self._set_packing_format_and_transform(
- position,
- new_format,
- value
- )
- struct.pack_into(new_format, self.shm.buf, offset, encoded_value)
-
- def __reduce__(self):
- return partial(self.__class__, name=self.shm.name), ()
-
- def __len__(self):
- return struct.unpack_from("q", self.shm.buf, 0)[0]
-
- def __repr__(self):
- return f'{self.__class__.__name__}({list(self)}, name={self.shm.name!r})'
-
- @property
- def format(self):
- "The struct packing format used by all currently stored items."
- return "".join(
- self._get_packing_format(i) for i in range(self._list_len)
- )
-
- @property
- def _format_size_metainfo(self):
- "The struct packing format used for the items' storage offsets."
- return "q" * (self._list_len + 1)
-
- @property
- def _format_packing_metainfo(self):
- "The struct packing format used for the items' packing formats."
- return "8s" * self._list_len
-
- @property
- def _format_back_transform_codes(self):
- "The struct packing format used for the items' back transforms."
- return "b" * self._list_len
-
- @property
- def _offset_data_start(self):
- # - 8 bytes for the list length
- # - (N + 1) * 8 bytes for the element offsets
- return (self._list_len + 2) * 8
-
- @property
- def _offset_packing_formats(self):
- return self._offset_data_start + self._allocated_offsets[-1]
-
- @property
- def _offset_back_transform_codes(self):
- return self._offset_packing_formats + self._list_len * 8
-
- def count(self, value):
- "L.count(value) -> integer -- return number of occurrences of value."
-
- return sum(value == entry for entry in self)
-
- def index(self, value):
- """L.index(value) -> integer -- return first index of value.
- Raises ValueError if the value is not present."""
-
- for position, entry in enumerate(self):
- if value == entry:
- return position
- else:
- raise ValueError(f"{value!r} not in this container")
-
- __class_getitem__ = classmethod(types.GenericAlias)
+"""Provides shared memory for direct access across processes.
+
+The API of this package is currently provisional. Refer to the
+documentation for details.
+"""
+
+
+__all__ = [ 'SharedMemory', 'ShareableList' ]
+
+
+from functools import partial
+import mmap
+import os
+import errno
+import struct
+import secrets
+import types
+
+if os.name == "nt":
+ import _winapi
+ _USE_POSIX = False
+else:
+ import _posixshmem
+ _USE_POSIX = True
+
+
+_O_CREX = os.O_CREAT | os.O_EXCL
+
+# FreeBSD (and perhaps other BSDs) limit names to 14 characters.
+_SHM_SAFE_NAME_LENGTH = 14
+
+# Shared memory block name prefix
+if _USE_POSIX:
+ _SHM_NAME_PREFIX = '/psm_'
+else:
+ _SHM_NAME_PREFIX = 'wnsm_'
+
+
+def _make_filename():
+ "Create a random filename for the shared memory object."
+ # number of random bytes to use for name
+ nbytes = (_SHM_SAFE_NAME_LENGTH - len(_SHM_NAME_PREFIX)) // 2
+ assert nbytes >= 2, '_SHM_NAME_PREFIX too long'
+ name = _SHM_NAME_PREFIX + secrets.token_hex(nbytes)
+ assert len(name) <= _SHM_SAFE_NAME_LENGTH
+ return name
+
+
+class SharedMemory:
+ """Creates a new shared memory block or attaches to an existing
+ shared memory block.
+
+ Every shared memory block is assigned a unique name. This enables
+ one process to create a shared memory block with a particular name
+ so that a different process can attach to that same shared memory
+ block using that same name.
+
+ As a resource for sharing data across processes, shared memory blocks
+ may outlive the original process that created them. When one process
+ no longer needs access to a shared memory block that might still be
+ needed by other processes, the close() method should be called.
+ When a shared memory block is no longer needed by any process, the
+ unlink() method should be called to ensure proper cleanup."""
+
+ # Defaults; enables close() and unlink() to run without errors.
+ _name = None
+ _fd = -1
+ _mmap = None
+ _buf = None
+ _flags = os.O_RDWR
+ _mode = 0o600
+ _prepend_leading_slash = True if _USE_POSIX else False
+
+ def __init__(self, name=None, create=False, size=0):
+ if not size >= 0:
+ raise ValueError("'size' must be a positive integer")
+ if create:
+ self._flags = _O_CREX | os.O_RDWR
+ if size == 0:
+ raise ValueError("'size' must be a positive number different from zero")
+ if name is None and not self._flags & os.O_EXCL:
+ raise ValueError("'name' can only be None if create=True")
+
+ if _USE_POSIX:
+
+ # POSIX Shared Memory
+
+ if name is None:
+ while True:
+ name = _make_filename()
+ try:
+ self._fd = _posixshmem.shm_open(
+ name,
+ self._flags,
+ mode=self._mode
+ )
+ except FileExistsError:
+ continue
+ self._name = name
+ break
+ else:
+ name = "/" + name if self._prepend_leading_slash else name
+ self._fd = _posixshmem.shm_open(
+ name,
+ self._flags,
+ mode=self._mode
+ )
+ self._name = name
+ try:
+ if create and size:
+ os.ftruncate(self._fd, size)
+ stats = os.fstat(self._fd)
+ size = stats.st_size
+ self._mmap = mmap.mmap(self._fd, size)
+ except OSError:
+ self.unlink()
+ raise
+
+ from .resource_tracker import register
+ register(self._name, "shared_memory")
+
+ else:
+
+ # Windows Named Shared Memory
+
+ if create:
+ while True:
+ temp_name = _make_filename() if name is None else name
+ # Create and reserve shared memory block with this name
+ # until it can be attached to by mmap.
+ h_map = _winapi.CreateFileMapping(
+ _winapi.INVALID_HANDLE_VALUE,
+ _winapi.NULL,
+ _winapi.PAGE_READWRITE,
+ (size >> 32) & 0xFFFFFFFF,
+ size & 0xFFFFFFFF,
+ temp_name
+ )
+ try:
+ last_error_code = _winapi.GetLastError()
+ if last_error_code == _winapi.ERROR_ALREADY_EXISTS:
+ if name is not None:
+ raise FileExistsError(
+ errno.EEXIST,
+ os.strerror(errno.EEXIST),
+ name,
+ _winapi.ERROR_ALREADY_EXISTS
+ )
+ else:
+ continue
+ self._mmap = mmap.mmap(-1, size, tagname=temp_name)
+ finally:
+ _winapi.CloseHandle(h_map)
+ self._name = temp_name
+ break
+
+ else:
+ self._name = name
+ # Dynamically determine the existing named shared memory
+ # block's size which is likely a multiple of mmap.PAGESIZE.
+ h_map = _winapi.OpenFileMapping(
+ _winapi.FILE_MAP_READ,
+ False,
+ name
+ )
+ try:
+ p_buf = _winapi.MapViewOfFile(
+ h_map,
+ _winapi.FILE_MAP_READ,
+ 0,
+ 0,
+ 0
+ )
+ finally:
+ _winapi.CloseHandle(h_map)
+ size = _winapi.VirtualQuerySize(p_buf)
+ self._mmap = mmap.mmap(-1, size, tagname=name)
+
+ self._size = size
+ self._buf = memoryview(self._mmap)
+
+ def __del__(self):
+ try:
+ self.close()
+ except OSError:
+ pass
+
+ def __reduce__(self):
+ return (
+ self.__class__,
+ (
+ self.name,
+ False,
+ self.size,
+ ),
+ )
+
+ def __repr__(self):
+ return f'{self.__class__.__name__}({self.name!r}, size={self.size})'
+
+ @property
+ def buf(self):
+ "A memoryview of contents of the shared memory block."
+ return self._buf
+
+ @property
+ def name(self):
+ "Unique name that identifies the shared memory block."
+ reported_name = self._name
+ if _USE_POSIX and self._prepend_leading_slash:
+ if self._name.startswith("/"):
+ reported_name = self._name[1:]
+ return reported_name
+
+ @property
+ def size(self):
+ "Size in bytes."
+ return self._size
+
+ def close(self):
+ """Closes access to the shared memory from this instance but does
+ not destroy the shared memory block."""
+ if self._buf is not None:
+ self._buf.release()
+ self._buf = None
+ if self._mmap is not None:
+ self._mmap.close()
+ self._mmap = None
+ if _USE_POSIX and self._fd >= 0:
+ os.close(self._fd)
+ self._fd = -1
+
+ def unlink(self):
+ """Requests that the underlying shared memory block be destroyed.
+
+ In order to ensure proper cleanup of resources, unlink should be
+ called once (and only once) across all processes which have access
+ to the shared memory block."""
+ if _USE_POSIX and self._name:
+ from .resource_tracker import unregister
+ _posixshmem.shm_unlink(self._name)
+ unregister(self._name, "shared_memory")
+
+
+_encoding = "utf8"
+
+class ShareableList:
+ """Pattern for a mutable list-like object shareable via a shared
+ memory block. It differs from the built-in list type in that these
+ lists can not change their overall length (i.e. no append, insert,
+ etc.)
+
+ Because values are packed into a memoryview as bytes, the struct
+ packing format for any storable value must require no more than 8
+ characters to describe its format."""
+
+ # The shared memory area is organized as follows:
+ # - 8 bytes: number of items (N) as a 64-bit integer
+ # - (N + 1) * 8 bytes: offsets of each element from the start of the
+ # data area
+ # - K bytes: the data area storing item values (with encoding and size
+ # depending on their respective types)
+ # - N * 8 bytes: `struct` format string for each element
+ # - N bytes: index into _back_transforms_mapping for each element
+ # (for reconstructing the corresponding Python value)
+ _types_mapping = {
+ int: "q",
+ float: "d",
+ bool: "xxxxxxx?",
+ str: "%ds",
+ bytes: "%ds",
+ None.__class__: "xxxxxx?x",
+ }
+ _alignment = 8
+ _back_transforms_mapping = {
+ 0: lambda value: value, # int, float, bool
+ 1: lambda value: value.rstrip(b'\x00').decode(_encoding), # str
+ 2: lambda value: value.rstrip(b'\x00'), # bytes
+ 3: lambda _value: None, # None
+ }
+
+ @staticmethod
+ def _extract_recreation_code(value):
+ """Used in concert with _back_transforms_mapping to convert values
+ into the appropriate Python objects when retrieving them from
+ the list as well as when storing them."""
+ if not isinstance(value, (str, bytes, None.__class__)):
+ return 0
+ elif isinstance(value, str):
+ return 1
+ elif isinstance(value, bytes):
+ return 2
+ else:
+ return 3 # NoneType
+
+ def __init__(self, sequence=None, *, name=None):
+ if name is None or sequence is not None:
+ sequence = sequence or ()
+ _formats = [
+ self._types_mapping[type(item)]
+ if not isinstance(item, (str, bytes))
+ else self._types_mapping[type(item)] % (
+ self._alignment * (len(item) // self._alignment + 1),
+ )
+ for item in sequence
+ ]
+ self._list_len = len(_formats)
+ assert sum(len(fmt) <= 8 for fmt in _formats) == self._list_len
+ offset = 0
+ # The offsets of each list element into the shared memory's
+ # data area (0 meaning the start of the data area, not the start
+ # of the shared memory area).
+ self._allocated_offsets = [0]
+ for fmt in _formats:
+ offset += self._alignment if fmt[-1] != "s" else int(fmt[:-1])
+ self._allocated_offsets.append(offset)
+ _recreation_codes = [
+ self._extract_recreation_code(item) for item in sequence
+ ]
+ requested_size = struct.calcsize(
+ "q" + self._format_size_metainfo +
+ "".join(_formats) +
+ self._format_packing_metainfo +
+ self._format_back_transform_codes
+ )
+
+ self.shm = SharedMemory(name, create=True, size=requested_size)
+ else:
+ self.shm = SharedMemory(name)
+
+ if sequence is not None:
+ _enc = _encoding
+ struct.pack_into(
+ "q" + self._format_size_metainfo,
+ self.shm.buf,
+ 0,
+ self._list_len,
+ *(self._allocated_offsets)
+ )
+ struct.pack_into(
+ "".join(_formats),
+ self.shm.buf,
+ self._offset_data_start,
+ *(v.encode(_enc) if isinstance(v, str) else v for v in sequence)
+ )
+ struct.pack_into(
+ self._format_packing_metainfo,
+ self.shm.buf,
+ self._offset_packing_formats,
+ *(v.encode(_enc) for v in _formats)
+ )
+ struct.pack_into(
+ self._format_back_transform_codes,
+ self.shm.buf,
+ self._offset_back_transform_codes,
+ *(_recreation_codes)
+ )
+
+ else:
+ self._list_len = len(self) # Obtains size from offset 0 in buffer.
+ self._allocated_offsets = list(
+ struct.unpack_from(
+ self._format_size_metainfo,
+ self.shm.buf,
+ 1 * 8
+ )
+ )
+
+ def _get_packing_format(self, position):
+ "Gets the packing format for a single value stored in the list."
+ position = position if position >= 0 else position + self._list_len
+ if (position >= self._list_len) or (self._list_len < 0):
+ raise IndexError("Requested position out of range.")
+
+ v = struct.unpack_from(
+ "8s",
+ self.shm.buf,
+ self._offset_packing_formats + position * 8
+ )[0]
+ fmt = v.rstrip(b'\x00')
+ fmt_as_str = fmt.decode(_encoding)
+
+ return fmt_as_str
+
+ def _get_back_transform(self, position):
+ "Gets the back transformation function for a single value."
+
+ if (position >= self._list_len) or (self._list_len < 0):
+ raise IndexError("Requested position out of range.")
+
+ transform_code = struct.unpack_from(
+ "b",
+ self.shm.buf,
+ self._offset_back_transform_codes + position
+ )[0]
+ transform_function = self._back_transforms_mapping[transform_code]
+
+ return transform_function
+
+ def _set_packing_format_and_transform(self, position, fmt_as_str, value):
+ """Sets the packing format and back transformation code for a
+ single value in the list at the specified position."""
+
+ if (position >= self._list_len) or (self._list_len < 0):
+ raise IndexError("Requested position out of range.")
+
+ struct.pack_into(
+ "8s",
+ self.shm.buf,
+ self._offset_packing_formats + position * 8,
+ fmt_as_str.encode(_encoding)
+ )
+
+ transform_code = self._extract_recreation_code(value)
+ struct.pack_into(
+ "b",
+ self.shm.buf,
+ self._offset_back_transform_codes + position,
+ transform_code
+ )
+
+ def __getitem__(self, position):
+ position = position if position >= 0 else position + self._list_len
+ try:
+ offset = self._offset_data_start + self._allocated_offsets[position]
+ (v,) = struct.unpack_from(
+ self._get_packing_format(position),
+ self.shm.buf,
+ offset
+ )
+ except IndexError:
+ raise IndexError("index out of range")
+
+ back_transform = self._get_back_transform(position)
+ v = back_transform(v)
+
+ return v
+
+ def __setitem__(self, position, value):
+ position = position if position >= 0 else position + self._list_len
+ try:
+ item_offset = self._allocated_offsets[position]
+ offset = self._offset_data_start + item_offset
+ current_format = self._get_packing_format(position)
+ except IndexError:
+ raise IndexError("assignment index out of range")
+
+ if not isinstance(value, (str, bytes)):
+ new_format = self._types_mapping[type(value)]
+ encoded_value = value
+ else:
+ allocated_length = self._allocated_offsets[position + 1] - item_offset
+
+ encoded_value = (value.encode(_encoding)
+ if isinstance(value, str) else value)
+ if len(encoded_value) > allocated_length:
+ raise ValueError("bytes/str item exceeds available storage")
+ if current_format[-1] == "s":
+ new_format = current_format
+ else:
+ new_format = self._types_mapping[str] % (
+ allocated_length,
+ )
+
+ self._set_packing_format_and_transform(
+ position,
+ new_format,
+ value
+ )
+ struct.pack_into(new_format, self.shm.buf, offset, encoded_value)
+
+ def __reduce__(self):
+ return partial(self.__class__, name=self.shm.name), ()
+
+ def __len__(self):
+ return struct.unpack_from("q", self.shm.buf, 0)[0]
+
+ def __repr__(self):
+ return f'{self.__class__.__name__}({list(self)}, name={self.shm.name!r})'
+
+ @property
+ def format(self):
+ "The struct packing format used by all currently stored items."
+ return "".join(
+ self._get_packing_format(i) for i in range(self._list_len)
+ )
+
+ @property
+ def _format_size_metainfo(self):
+ "The struct packing format used for the items' storage offsets."
+ return "q" * (self._list_len + 1)
+
+ @property
+ def _format_packing_metainfo(self):
+ "The struct packing format used for the items' packing formats."
+ return "8s" * self._list_len
+
+ @property
+ def _format_back_transform_codes(self):
+ "The struct packing format used for the items' back transforms."
+ return "b" * self._list_len
+
+ @property
+ def _offset_data_start(self):
+ # - 8 bytes for the list length
+ # - (N + 1) * 8 bytes for the element offsets
+ return (self._list_len + 2) * 8
+
+ @property
+ def _offset_packing_formats(self):
+ return self._offset_data_start + self._allocated_offsets[-1]
+
+ @property
+ def _offset_back_transform_codes(self):
+ return self._offset_packing_formats + self._list_len * 8
+
+ def count(self, value):
+ "L.count(value) -> integer -- return number of occurrences of value."
+
+ return sum(value == entry for entry in self)
+
+ def index(self, value):
+ """L.index(value) -> integer -- return first index of value.
+ Raises ValueError if the value is not present."""
+
+ for position, entry in enumerate(self):
+ if value == entry:
+ return position
+ else:
+ raise ValueError(f"{value!r} not in this container")
+
+ __class_getitem__ = classmethod(types.GenericAlias)
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/spawn.py b/contrib/tools/python3/src/Lib/multiprocessing/spawn.py
index 2ac0b653b6..f7f8deb246 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/spawn.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/spawn.py
@@ -96,28 +96,28 @@ def spawn_main(pipe_handle, parent_pid=None, tracker_fd=None):
assert is_forking(sys.argv), "Not forking"
if sys.platform == 'win32':
import msvcrt
- import _winapi
-
- if parent_pid is not None:
- source_process = _winapi.OpenProcess(
- _winapi.SYNCHRONIZE | _winapi.PROCESS_DUP_HANDLE,
- False, parent_pid)
- else:
- source_process = None
- new_handle = reduction.duplicate(pipe_handle,
- source_process=source_process)
+ import _winapi
+
+ if parent_pid is not None:
+ source_process = _winapi.OpenProcess(
+ _winapi.SYNCHRONIZE | _winapi.PROCESS_DUP_HANDLE,
+ False, parent_pid)
+ else:
+ source_process = None
+ new_handle = reduction.duplicate(pipe_handle,
+ source_process=source_process)
fd = msvcrt.open_osfhandle(new_handle, os.O_RDONLY)
- parent_sentinel = source_process
+ parent_sentinel = source_process
else:
- from . import resource_tracker
- resource_tracker._resource_tracker._fd = tracker_fd
+ from . import resource_tracker
+ resource_tracker._resource_tracker._fd = tracker_fd
fd = pipe_handle
- parent_sentinel = os.dup(pipe_handle)
- exitcode = _main(fd, parent_sentinel)
+ parent_sentinel = os.dup(pipe_handle)
+ exitcode = _main(fd, parent_sentinel)
sys.exit(exitcode)
-def _main(fd, parent_sentinel):
+def _main(fd, parent_sentinel):
with os.fdopen(fd, 'rb', closefd=True) as from_parent:
process.current_process()._inheriting = True
try:
@@ -126,7 +126,7 @@ def _main(fd, parent_sentinel):
self = reduction.pickle.load(from_parent)
finally:
del process.current_process()._inheriting
- return self._bootstrap(parent_sentinel)
+ return self._bootstrap(parent_sentinel)
def _check_not_importing_main():
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/synchronize.py b/contrib/tools/python3/src/Lib/multiprocessing/synchronize.py
index 881c823d28..d0be48f1fd 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/synchronize.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/synchronize.py
@@ -76,16 +76,16 @@ class SemLock(object):
# We only get here if we are on Unix with forking
# disabled. When the object is garbage collected or the
# process shuts down we unlink the semaphore name
- from .resource_tracker import register
- register(self._semlock.name, "semaphore")
+ from .resource_tracker import register
+ register(self._semlock.name, "semaphore")
util.Finalize(self, SemLock._cleanup, (self._semlock.name,),
exitpriority=0)
@staticmethod
def _cleanup(name):
- from .resource_tracker import unregister
+ from .resource_tracker import unregister
sem_unlink(name)
- unregister(name, "semaphore")
+ unregister(name, "semaphore")
def _make_methods(self):
self.acquire = self._semlock.acquire
@@ -270,7 +270,7 @@ class Condition(object):
def notify(self, n=1):
assert self._lock._semlock._is_mine(), 'lock is not owned'
assert not self._wait_semaphore.acquire(
- False), ('notify: Should not have been able to acquire '
+ False), ('notify: Should not have been able to acquire '
+ '_wait_semaphore')
# to take account of timeouts since last notify*() we subtract
diff --git a/contrib/tools/python3/src/Lib/multiprocessing/util.py b/contrib/tools/python3/src/Lib/multiprocessing/util.py
index fed9ddf6ee..e94466be8e 100644
--- a/contrib/tools/python3/src/Lib/multiprocessing/util.py
+++ b/contrib/tools/python3/src/Lib/multiprocessing/util.py
@@ -102,42 +102,42 @@ def log_to_stderr(level=None):
_log_to_stderr = True
return _logger
-
-# Abstract socket support
-
-def _platform_supports_abstract_sockets():
- if sys.platform == "linux":
- return True
- if hasattr(sys, 'getandroidapilevel'):
- return True
- return False
-
-
-def is_abstract_socket_namespace(address):
- if not address:
- return False
- if isinstance(address, bytes):
- return address[0] == 0
- elif isinstance(address, str):
- return address[0] == "\0"
- raise TypeError('address type of {address!r} unrecognized')
-
-
-abstract_sockets_supported = _platform_supports_abstract_sockets()
-
+
+# Abstract socket support
+
+def _platform_supports_abstract_sockets():
+ if sys.platform == "linux":
+ return True
+ if hasattr(sys, 'getandroidapilevel'):
+ return True
+ return False
+
+
+def is_abstract_socket_namespace(address):
+ if not address:
+ return False
+ if isinstance(address, bytes):
+ return address[0] == 0
+ elif isinstance(address, str):
+ return address[0] == "\0"
+ raise TypeError('address type of {address!r} unrecognized')
+
+
+abstract_sockets_supported = _platform_supports_abstract_sockets()
+
#
# Function returning a temp directory which will be removed on exit
#
-def _remove_temp_dir(rmtree, tempdir):
- rmtree(tempdir)
-
- current_process = process.current_process()
- # current_process() can be None if the finalizer is called
- # late during Python finalization
- if current_process is not None:
- current_process._config['tempdir'] = None
-
+def _remove_temp_dir(rmtree, tempdir):
+ rmtree(tempdir)
+
+ current_process = process.current_process()
+ # current_process() can be None if the finalizer is called
+ # late during Python finalization
+ if current_process is not None:
+ current_process._config['tempdir'] = None
+
def get_temp_dir():
# get name of a temp directory which will be automatically cleaned up
tempdir = process.current_process()._config.get('tempdir')
@@ -145,10 +145,10 @@ def get_temp_dir():
import shutil, tempfile
tempdir = tempfile.mkdtemp(prefix='pymp-')
info('created temp directory %s', tempdir)
- # keep a strong reference to shutil.rmtree(), since the finalizer
- # can be called late during Python shutdown
- Finalize(None, _remove_temp_dir, args=(shutil.rmtree, tempdir),
- exitpriority=-100)
+ # keep a strong reference to shutil.rmtree(), since the finalizer
+ # can be called late during Python shutdown
+ Finalize(None, _remove_temp_dir, args=(shutil.rmtree, tempdir),
+ exitpriority=-100)
process.current_process()._config['tempdir'] = tempdir
return tempdir
@@ -261,7 +261,7 @@ class Finalize(object):
if self._kwargs:
x += ', kwargs=' + str(self._kwargs)
if self._key[0] is not None:
- x += ', exitpriority=' + str(self._key[0])
+ x += ', exitpriority=' + str(self._key[0])
return x + '>'
@@ -370,11 +370,11 @@ class ForkAwareThreadLock(object):
self._lock = threading.Lock()
self.acquire = self._lock.acquire
self.release = self._lock.release
- register_after_fork(self, ForkAwareThreadLock._at_fork_reinit)
+ register_after_fork(self, ForkAwareThreadLock._at_fork_reinit)
+
+ def _at_fork_reinit(self):
+ self._lock._at_fork_reinit()
- def _at_fork_reinit(self):
- self._lock._at_fork_reinit()
-
def __enter__(self):
return self._lock.__enter__()
@@ -467,38 +467,38 @@ def spawnv_passfds(path, args, passfds):
return _posixsubprocess.fork_exec(
args, [os.fsencode(path)], True, passfds, None, _env_list(),
-1, -1, -1, -1, -1, -1, errpipe_read, errpipe_write,
- False, False, None, None, None, -1, None)
+ False, False, None, None, None, -1, None)
finally:
os.close(errpipe_read)
os.close(errpipe_write)
-
-
-def close_fds(*fds):
- """Close each file descriptor given as an argument"""
- for fd in fds:
- os.close(fd)
-
-
-def _cleanup_tests():
- """Cleanup multiprocessing resources when multiprocessing tests
- completed."""
-
- from test import support
-
- # cleanup multiprocessing
- process._cleanup()
-
- # Stop the ForkServer process if it's running
- from multiprocessing import forkserver
- forkserver._forkserver._stop()
-
- # Stop the ResourceTracker process if it's running
- from multiprocessing import resource_tracker
- resource_tracker._resource_tracker._stop()
-
- # bpo-37421: Explicitly call _run_finalizers() to remove immediately
- # temporary directories created by multiprocessing.util.get_temp_dir().
- _run_finalizers()
- support.gc_collect()
-
- support.reap_children()
+
+
+def close_fds(*fds):
+ """Close each file descriptor given as an argument"""
+ for fd in fds:
+ os.close(fd)
+
+
+def _cleanup_tests():
+ """Cleanup multiprocessing resources when multiprocessing tests
+ completed."""
+
+ from test import support
+
+ # cleanup multiprocessing
+ process._cleanup()
+
+ # Stop the ForkServer process if it's running
+ from multiprocessing import forkserver
+ forkserver._forkserver._stop()
+
+ # Stop the ResourceTracker process if it's running
+ from multiprocessing import resource_tracker
+ resource_tracker._resource_tracker._stop()
+
+ # bpo-37421: Explicitly call _run_finalizers() to remove immediately
+ # temporary directories created by multiprocessing.util.get_temp_dir().
+ _run_finalizers()
+ support.gc_collect()
+
+ support.reap_children()
diff --git a/contrib/tools/python3/src/Lib/nntplib.py b/contrib/tools/python3/src/Lib/nntplib.py
index 1508c4b2d3..f6e746e7c9 100644
--- a/contrib/tools/python3/src/Lib/nntplib.py
+++ b/contrib/tools/python3/src/Lib/nntplib.py
@@ -67,7 +67,7 @@ import re
import socket
import collections
import datetime
-import sys
+import sys
try:
import ssl
@@ -293,7 +293,7 @@ if _have_ssl:
# The classes themselves
-class NNTP:
+class NNTP:
# UTF-8 is the character set for all NNTP commands and responses: they
# are automatically encoded (when sending) and decoded (and receiving)
# by this class.
@@ -309,18 +309,18 @@ class NNTP:
encoding = 'utf-8'
errors = 'surrogateescape'
- def __init__(self, host, port=NNTP_PORT, user=None, password=None,
- readermode=None, usenetrc=False,
- timeout=_GLOBAL_DEFAULT_TIMEOUT):
+ def __init__(self, host, port=NNTP_PORT, user=None, password=None,
+ readermode=None, usenetrc=False,
+ timeout=_GLOBAL_DEFAULT_TIMEOUT):
"""Initialize an instance. Arguments:
- - host: hostname to connect to
- - port: port to connect to (default the standard NNTP port)
- - user: username to authenticate with
- - password: password to use with username
+ - host: hostname to connect to
+ - port: port to connect to (default the standard NNTP port)
+ - user: username to authenticate with
+ - password: password to use with username
- readermode: if true, send 'mode reader' command after
connecting.
- - usenetrc: allow loading username and password from ~/.netrc file
- if not specified explicitly
+ - usenetrc: allow loading username and password from ~/.netrc file
+ if not specified explicitly
- timeout: timeout (in seconds) used for socket connections
readermode is sometimes necessary if you are connecting to an
@@ -330,24 +330,24 @@ class NNTP:
readermode.
"""
self.host = host
- self.port = port
- self.sock = self._create_socket(timeout)
- self.file = None
- try:
- self.file = self.sock.makefile("rwb")
- self._base_init(readermode)
- if user or usenetrc:
- self.login(user, password, usenetrc)
- except:
- if self.file:
- self.file.close()
- self.sock.close()
- raise
-
- def _base_init(self, readermode):
- """Partial initialization for the NNTP protocol.
- This instance method is extracted for supporting the test code.
- """
+ self.port = port
+ self.sock = self._create_socket(timeout)
+ self.file = None
+ try:
+ self.file = self.sock.makefile("rwb")
+ self._base_init(readermode)
+ if user or usenetrc:
+ self.login(user, password, usenetrc)
+ except:
+ if self.file:
+ self.file.close()
+ self.sock.close()
+ raise
+
+ def _base_init(self, readermode):
+ """Partial initialization for the NNTP protocol.
+ This instance method is extracted for supporting the test code.
+ """
self.debugging = 0
self.welcome = self._getresp()
@@ -392,12 +392,12 @@ class NNTP:
if is_connected():
self._close()
- def _create_socket(self, timeout):
- if timeout is not None and not timeout:
- raise ValueError('Non-blocking socket (timeout=0) is not supported')
- sys.audit("nntplib.connect", self, self.host, self.port)
- return socket.create_connection((self.host, self.port), timeout)
-
+ def _create_socket(self, timeout):
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
+ sys.audit("nntplib.connect", self, self.host, self.port)
+ return socket.create_connection((self.host, self.port), timeout)
+
def getwelcome(self):
"""Get the welcome message from the server
(this is read and squirreled away by __init__()).
@@ -441,7 +441,7 @@ class NNTP:
def _putline(self, line):
"""Internal: send one line to the server, appending CRLF.
The `line` must be a bytes-like object."""
- sys.audit("nntplib.putline", self, line)
+ sys.audit("nntplib.putline", self, line)
line = line + _CRLF
if self.debugging > 1: print('*put*', repr(line))
self.file.write(line)
@@ -916,12 +916,12 @@ class NNTP:
return self._post('IHAVE {0}'.format(message_id), data)
def _close(self):
- try:
- if self.file:
- self.file.close()
- del self.file
- finally:
- self.sock.close()
+ try:
+ if self.file:
+ self.file.close()
+ del self.file
+ finally:
+ self.sock.close()
def quit(self):
"""Process a QUIT command and close the socket. Returns:
@@ -1012,7 +1012,7 @@ class NNTP:
if _have_ssl:
- class NNTP_SSL(NNTP):
+ class NNTP_SSL(NNTP):
def __init__(self, host, port=NNTP_SSL_PORT,
user=None, password=None, ssl_context=None,
@@ -1021,19 +1021,19 @@ if _have_ssl:
"""This works identically to NNTP.__init__, except for the change
in default port and the `ssl_context` argument for SSL connections.
"""
- self.ssl_context = ssl_context
- super().__init__(host, port, user, password, readermode,
- usenetrc, timeout)
-
- def _create_socket(self, timeout):
- sock = super()._create_socket(timeout)
+ self.ssl_context = ssl_context
+ super().__init__(host, port, user, password, readermode,
+ usenetrc, timeout)
+
+ def _create_socket(self, timeout):
+ sock = super()._create_socket(timeout)
try:
- sock = _encrypt_on(sock, self.ssl_context, self.host)
+ sock = _encrypt_on(sock, self.ssl_context, self.host)
except:
- sock.close()
+ sock.close()
raise
- else:
- return sock
+ else:
+ return sock
__all__.append("NNTP_SSL")
@@ -1046,7 +1046,7 @@ if __name__ == '__main__':
nntplib built-in demo - display the latest articles in a newsgroup""")
parser.add_argument('-g', '--group', default='gmane.comp.python.general',
help='group to fetch messages from (default: %(default)s)')
- parser.add_argument('-s', '--server', default='news.gmane.io',
+ parser.add_argument('-s', '--server', default='news.gmane.io',
help='NNTP server hostname (default: %(default)s)')
parser.add_argument('-p', '--port', default=-1, type=int,
help='NNTP port number (default: %s / %s)' % (NNTP_PORT, NNTP_SSL_PORT))
diff --git a/contrib/tools/python3/src/Lib/ntpath.py b/contrib/tools/python3/src/Lib/ntpath.py
index 2a249fd756..6f771773a7 100644
--- a/contrib/tools/python3/src/Lib/ntpath.py
+++ b/contrib/tools/python3/src/Lib/ntpath.py
@@ -46,10 +46,10 @@ def normcase(s):
Makes all characters lowercase and all slashes into backslashes."""
s = os.fspath(s)
- if isinstance(s, bytes):
- return s.replace(b'/', b'\\').lower()
- else:
- return s.replace('/', '\\').lower()
+ if isinstance(s, bytes):
+ return s.replace(b'/', b'\\').lower()
+ else:
+ return s.replace('/', '\\').lower()
# Return whether a path is absolute.
@@ -61,14 +61,14 @@ def normcase(s):
def isabs(s):
"""Test whether a path is absolute"""
s = os.fspath(s)
- # Paths beginning with \\?\ are always absolute, but do not
- # necessarily contain a drive.
- if isinstance(s, bytes):
- if s.replace(b'/', b'\\').startswith(b'\\\\?\\'):
- return True
- else:
- if s.replace('/', '\\').startswith('\\\\?\\'):
- return True
+ # Paths beginning with \\?\ are always absolute, but do not
+ # necessarily contain a drive.
+ if isinstance(s, bytes):
+ if s.replace(b'/', b'\\').startswith(b'\\\\?\\'):
+ return True
+ else:
+ if s.replace('/', '\\').startswith('\\\\?\\'):
+ return True
s = splitdrive(s)[1]
return len(s) > 0 and s[0] in _get_bothseps(s)
@@ -231,7 +231,7 @@ def islink(path):
"""
try:
st = os.lstat(path)
- except (OSError, ValueError, AttributeError):
+ except (OSError, ValueError, AttributeError):
return False
return stat.S_ISLNK(st.st_mode)
@@ -241,7 +241,7 @@ def lexists(path):
"""Test whether a path exists. Returns True for broken symbolic links"""
try:
st = os.lstat(path)
- except (OSError, ValueError):
+ except (OSError, ValueError):
return False
return True
@@ -301,7 +301,7 @@ def expanduser(path):
while i < n and path[i] not in _get_bothseps(path):
i += 1
- if 'USERPROFILE' in os.environ:
+ if 'USERPROFILE' in os.environ:
userhome = os.environ['USERPROFILE']
elif not 'HOMEPATH' in os.environ:
return path
@@ -466,8 +466,8 @@ def normpath(path):
# in the case of paths with these prefixes:
# \\.\ -> device names
# \\?\ -> literal paths
- # do not do any normalization, but return the path
- # unchanged apart from the call to os.fspath()
+ # do not do any normalization, but return the path
+ # unchanged apart from the call to os.fspath()
return path
path = path.replace(altsep, sep)
prefix, path = splitdrive(path)
@@ -528,149 +528,149 @@ else: # use native Windows method on Windows
except (OSError, ValueError):
return _abspath_fallback(path)
-try:
- from nt import _getfinalpathname, readlink as _nt_readlink
-except ImportError:
- # realpath is a no-op on systems without _getfinalpathname support.
- realpath = abspath
-else:
- def _readlink_deep(path):
- # These error codes indicate that we should stop reading links and
- # return the path we currently have.
- # 1: ERROR_INVALID_FUNCTION
- # 2: ERROR_FILE_NOT_FOUND
- # 3: ERROR_DIRECTORY_NOT_FOUND
- # 5: ERROR_ACCESS_DENIED
- # 21: ERROR_NOT_READY (implies drive with no media)
- # 32: ERROR_SHARING_VIOLATION (probably an NTFS paging file)
- # 50: ERROR_NOT_SUPPORTED (implies no support for reparse points)
- # 67: ERROR_BAD_NET_NAME (implies remote server unavailable)
- # 87: ERROR_INVALID_PARAMETER
- # 4390: ERROR_NOT_A_REPARSE_POINT
- # 4392: ERROR_INVALID_REPARSE_DATA
- # 4393: ERROR_REPARSE_TAG_INVALID
- allowed_winerror = 1, 2, 3, 5, 21, 32, 50, 67, 87, 4390, 4392, 4393
-
- seen = set()
- while normcase(path) not in seen:
- seen.add(normcase(path))
- try:
- old_path = path
- path = _nt_readlink(path)
- # Links may be relative, so resolve them against their
- # own location
- if not isabs(path):
- # If it's something other than a symlink, we don't know
- # what it's actually going to be resolved against, so
- # just return the old path.
- if not islink(old_path):
- path = old_path
- break
- path = normpath(join(dirname(old_path), path))
- except OSError as ex:
- if ex.winerror in allowed_winerror:
- break
- raise
- except ValueError:
- # Stop on reparse points that are not symlinks
- break
- return path
-
- def _getfinalpathname_nonstrict(path):
- # These error codes indicate that we should stop resolving the path
- # and return the value we currently have.
- # 1: ERROR_INVALID_FUNCTION
- # 2: ERROR_FILE_NOT_FOUND
- # 3: ERROR_DIRECTORY_NOT_FOUND
- # 5: ERROR_ACCESS_DENIED
- # 21: ERROR_NOT_READY (implies drive with no media)
- # 32: ERROR_SHARING_VIOLATION (probably an NTFS paging file)
- # 50: ERROR_NOT_SUPPORTED
- # 67: ERROR_BAD_NET_NAME (implies remote server unavailable)
- # 87: ERROR_INVALID_PARAMETER
- # 123: ERROR_INVALID_NAME
- # 1920: ERROR_CANT_ACCESS_FILE
- # 1921: ERROR_CANT_RESOLVE_FILENAME (implies unfollowable symlink)
- allowed_winerror = 1, 2, 3, 5, 21, 32, 50, 67, 87, 123, 1920, 1921
-
- # Non-strict algorithm is to find as much of the target directory
- # as we can and join the rest.
- tail = ''
- while path:
- try:
- path = _getfinalpathname(path)
- return join(path, tail) if tail else path
- except OSError as ex:
- if ex.winerror not in allowed_winerror:
- raise
- try:
- # The OS could not resolve this path fully, so we attempt
- # to follow the link ourselves. If we succeed, join the tail
- # and return.
- new_path = _readlink_deep(path)
- if new_path != path:
- return join(new_path, tail) if tail else new_path
- except OSError:
- # If we fail to readlink(), let's keep traversing
- pass
- path, name = split(path)
- # TODO (bpo-38186): Request the real file name from the directory
- # entry using FindFirstFileW. For now, we will return the path
- # as best we have it
- if path and not name:
- return path + tail
- tail = join(name, tail) if tail else name
- return tail
-
- def realpath(path):
- path = normpath(path)
- if isinstance(path, bytes):
- prefix = b'\\\\?\\'
- unc_prefix = b'\\\\?\\UNC\\'
- new_unc_prefix = b'\\\\'
- cwd = os.getcwdb()
- # bpo-38081: Special case for realpath(b'nul')
- if normcase(path) == normcase(os.fsencode(devnull)):
- return b'\\\\.\\NUL'
- else:
- prefix = '\\\\?\\'
- unc_prefix = '\\\\?\\UNC\\'
- new_unc_prefix = '\\\\'
- cwd = os.getcwd()
- # bpo-38081: Special case for realpath('nul')
- if normcase(path) == normcase(devnull):
- return '\\\\.\\NUL'
- had_prefix = path.startswith(prefix)
- if not had_prefix and not isabs(path):
- path = join(cwd, path)
- try:
- path = _getfinalpathname(path)
- initial_winerror = 0
- except OSError as ex:
- initial_winerror = ex.winerror
- path = _getfinalpathname_nonstrict(path)
- # The path returned by _getfinalpathname will always start with \\?\ -
- # strip off that prefix unless it was already provided on the original
- # path.
- if not had_prefix and path.startswith(prefix):
- # For UNC paths, the prefix will actually be \\?\UNC\
- # Handle that case as well.
- if path.startswith(unc_prefix):
- spath = new_unc_prefix + path[len(unc_prefix):]
- else:
- spath = path[len(prefix):]
- # Ensure that the non-prefixed path resolves to the same path
- try:
- if _getfinalpathname(spath) == path:
- path = spath
- except OSError as ex:
- # If the path does not exist and originally did not exist, then
- # strip the prefix anyway.
- if ex.winerror == initial_winerror:
- path = spath
- return path
-
-
+try:
+ from nt import _getfinalpathname, readlink as _nt_readlink
+except ImportError:
+ # realpath is a no-op on systems without _getfinalpathname support.
+ realpath = abspath
+else:
+ def _readlink_deep(path):
+ # These error codes indicate that we should stop reading links and
+ # return the path we currently have.
+ # 1: ERROR_INVALID_FUNCTION
+ # 2: ERROR_FILE_NOT_FOUND
+ # 3: ERROR_DIRECTORY_NOT_FOUND
+ # 5: ERROR_ACCESS_DENIED
+ # 21: ERROR_NOT_READY (implies drive with no media)
+ # 32: ERROR_SHARING_VIOLATION (probably an NTFS paging file)
+ # 50: ERROR_NOT_SUPPORTED (implies no support for reparse points)
+ # 67: ERROR_BAD_NET_NAME (implies remote server unavailable)
+ # 87: ERROR_INVALID_PARAMETER
+ # 4390: ERROR_NOT_A_REPARSE_POINT
+ # 4392: ERROR_INVALID_REPARSE_DATA
+ # 4393: ERROR_REPARSE_TAG_INVALID
+ allowed_winerror = 1, 2, 3, 5, 21, 32, 50, 67, 87, 4390, 4392, 4393
+
+ seen = set()
+ while normcase(path) not in seen:
+ seen.add(normcase(path))
+ try:
+ old_path = path
+ path = _nt_readlink(path)
+ # Links may be relative, so resolve them against their
+ # own location
+ if not isabs(path):
+ # If it's something other than a symlink, we don't know
+ # what it's actually going to be resolved against, so
+ # just return the old path.
+ if not islink(old_path):
+ path = old_path
+ break
+ path = normpath(join(dirname(old_path), path))
+ except OSError as ex:
+ if ex.winerror in allowed_winerror:
+ break
+ raise
+ except ValueError:
+ # Stop on reparse points that are not symlinks
+ break
+ return path
+
+ def _getfinalpathname_nonstrict(path):
+ # These error codes indicate that we should stop resolving the path
+ # and return the value we currently have.
+ # 1: ERROR_INVALID_FUNCTION
+ # 2: ERROR_FILE_NOT_FOUND
+ # 3: ERROR_DIRECTORY_NOT_FOUND
+ # 5: ERROR_ACCESS_DENIED
+ # 21: ERROR_NOT_READY (implies drive with no media)
+ # 32: ERROR_SHARING_VIOLATION (probably an NTFS paging file)
+ # 50: ERROR_NOT_SUPPORTED
+ # 67: ERROR_BAD_NET_NAME (implies remote server unavailable)
+ # 87: ERROR_INVALID_PARAMETER
+ # 123: ERROR_INVALID_NAME
+ # 1920: ERROR_CANT_ACCESS_FILE
+ # 1921: ERROR_CANT_RESOLVE_FILENAME (implies unfollowable symlink)
+ allowed_winerror = 1, 2, 3, 5, 21, 32, 50, 67, 87, 123, 1920, 1921
+
+ # Non-strict algorithm is to find as much of the target directory
+ # as we can and join the rest.
+ tail = ''
+ while path:
+ try:
+ path = _getfinalpathname(path)
+ return join(path, tail) if tail else path
+ except OSError as ex:
+ if ex.winerror not in allowed_winerror:
+ raise
+ try:
+ # The OS could not resolve this path fully, so we attempt
+ # to follow the link ourselves. If we succeed, join the tail
+ # and return.
+ new_path = _readlink_deep(path)
+ if new_path != path:
+ return join(new_path, tail) if tail else new_path
+ except OSError:
+ # If we fail to readlink(), let's keep traversing
+ pass
+ path, name = split(path)
+ # TODO (bpo-38186): Request the real file name from the directory
+ # entry using FindFirstFileW. For now, we will return the path
+ # as best we have it
+ if path and not name:
+ return path + tail
+ tail = join(name, tail) if tail else name
+ return tail
+
+ def realpath(path):
+ path = normpath(path)
+ if isinstance(path, bytes):
+ prefix = b'\\\\?\\'
+ unc_prefix = b'\\\\?\\UNC\\'
+ new_unc_prefix = b'\\\\'
+ cwd = os.getcwdb()
+ # bpo-38081: Special case for realpath(b'nul')
+ if normcase(path) == normcase(os.fsencode(devnull)):
+ return b'\\\\.\\NUL'
+ else:
+ prefix = '\\\\?\\'
+ unc_prefix = '\\\\?\\UNC\\'
+ new_unc_prefix = '\\\\'
+ cwd = os.getcwd()
+ # bpo-38081: Special case for realpath('nul')
+ if normcase(path) == normcase(devnull):
+ return '\\\\.\\NUL'
+ had_prefix = path.startswith(prefix)
+ if not had_prefix and not isabs(path):
+ path = join(cwd, path)
+ try:
+ path = _getfinalpathname(path)
+ initial_winerror = 0
+ except OSError as ex:
+ initial_winerror = ex.winerror
+ path = _getfinalpathname_nonstrict(path)
+ # The path returned by _getfinalpathname will always start with \\?\ -
+ # strip off that prefix unless it was already provided on the original
+ # path.
+ if not had_prefix and path.startswith(prefix):
+ # For UNC paths, the prefix will actually be \\?\UNC\
+ # Handle that case as well.
+ if path.startswith(unc_prefix):
+ spath = new_unc_prefix + path[len(unc_prefix):]
+ else:
+ spath = path[len(prefix):]
+ # Ensure that the non-prefixed path resolves to the same path
+ try:
+ if _getfinalpathname(spath) == path:
+ path = spath
+ except OSError as ex:
+ # If the path does not exist and originally did not exist, then
+ # strip the prefix anyway.
+ if ex.winerror == initial_winerror:
+ path = spath
+ return path
+
+
# Win9x family and earlier have no Unicode filename support.
supports_unicode_filenames = (hasattr(sys, "getwindowsversion") and
sys.getwindowsversion()[3] >= 2)
diff --git a/contrib/tools/python3/src/Lib/nturl2path.py b/contrib/tools/python3/src/Lib/nturl2path.py
index 90c95a26ff..61852aff58 100644
--- a/contrib/tools/python3/src/Lib/nturl2path.py
+++ b/contrib/tools/python3/src/Lib/nturl2path.py
@@ -50,14 +50,14 @@ def pathname2url(p):
# becomes
# ///C:/foo/bar/spam.foo
import urllib.parse
- # First, clean up some special forms. We are going to sacrifice
- # the additional information anyway
- if p[:4] == '\\\\?\\':
- p = p[4:]
- if p[:4].upper() == 'UNC\\':
- p = '\\' + p[4:]
- elif p[1:2] != ':':
- raise OSError('Bad path: ' + p)
+ # First, clean up some special forms. We are going to sacrifice
+ # the additional information anyway
+ if p[:4] == '\\\\?\\':
+ p = p[4:]
+ if p[:4].upper() == 'UNC\\':
+ p = '\\' + p[4:]
+ elif p[1:2] != ':':
+ raise OSError('Bad path: ' + p)
if not ':' in p:
# No drive specifier, just convert slashes and quote the name
if p[:2] == '\\\\':
@@ -67,7 +67,7 @@ def pathname2url(p):
p = '\\\\' + p
components = p.split('\\')
return urllib.parse.quote('/'.join(components))
- comp = p.split(':', maxsplit=2)
+ comp = p.split(':', maxsplit=2)
if len(comp) != 2 or len(comp[0]) > 1:
error = 'Bad path: ' + p
raise OSError(error)
diff --git a/contrib/tools/python3/src/Lib/numbers.py b/contrib/tools/python3/src/Lib/numbers.py
index 73db7de86c..5b98e64208 100644
--- a/contrib/tools/python3/src/Lib/numbers.py
+++ b/contrib/tools/python3/src/Lib/numbers.py
@@ -33,7 +33,7 @@ class Complex(Number):
"""Complex defines the operations that work on the builtin complex type.
In short, those are: a conversion to complex, .real, .imag, +, -,
- *, /, **, abs(), .conjugate, ==, and !=.
+ *, /, **, abs(), .conjugate, ==, and !=.
If it is given heterogeneous arguments, and doesn't have special
knowledge about them, it should fall back to the builtin complex
@@ -292,12 +292,12 @@ class Rational(Real):
class Integral(Rational):
- """Integral adds methods that work on integral numbers.
+ """Integral adds methods that work on integral numbers.
+
+ In short, these are conversion to int, pow with modulus, and the
+ bit-string operations.
+ """
- In short, these are conversion to int, pow with modulus, and the
- bit-string operations.
- """
-
__slots__ = ()
@abstractmethod
diff --git a/contrib/tools/python3/src/Lib/opcode.py b/contrib/tools/python3/src/Lib/opcode.py
index 18d59ecada..ac1aa535f6 100644
--- a/contrib/tools/python3/src/Lib/opcode.py
+++ b/contrib/tools/python3/src/Lib/opcode.py
@@ -21,7 +21,7 @@ try:
except ImportError:
pass
-cmp_op = ('<', '<=', '==', '!=', '>', '>=')
+cmp_op = ('<', '<=', '==', '!=', '>', '>=')
hasconst = []
hasname = []
@@ -59,7 +59,7 @@ def_op('ROT_TWO', 2)
def_op('ROT_THREE', 3)
def_op('DUP_TOP', 4)
def_op('DUP_TOP_TWO', 5)
-def_op('ROT_FOUR', 6)
+def_op('ROT_FOUR', 6)
def_op('NOP', 9)
def_op('UNARY_POSITIVE', 10)
@@ -83,13 +83,13 @@ def_op('BINARY_TRUE_DIVIDE', 27)
def_op('INPLACE_FLOOR_DIVIDE', 28)
def_op('INPLACE_TRUE_DIVIDE', 29)
-def_op('RERAISE', 48)
-def_op('WITH_EXCEPT_START', 49)
+def_op('RERAISE', 48)
+def_op('WITH_EXCEPT_START', 49)
def_op('GET_AITER', 50)
def_op('GET_ANEXT', 51)
def_op('BEFORE_ASYNC_WITH', 52)
-
-def_op('END_ASYNC_FOR', 54)
+
+def_op('END_ASYNC_FOR', 54)
def_op('INPLACE_ADD', 55)
def_op('INPLACE_SUBTRACT', 56)
def_op('INPLACE_MULTIPLY', 57)
@@ -110,20 +110,20 @@ def_op('PRINT_EXPR', 70)
def_op('LOAD_BUILD_CLASS', 71)
def_op('YIELD_FROM', 72)
def_op('GET_AWAITABLE', 73)
-def_op('LOAD_ASSERTION_ERROR', 74)
+def_op('LOAD_ASSERTION_ERROR', 74)
def_op('INPLACE_LSHIFT', 75)
def_op('INPLACE_RSHIFT', 76)
def_op('INPLACE_AND', 77)
def_op('INPLACE_XOR', 78)
def_op('INPLACE_OR', 79)
-
-def_op('LIST_TO_TUPLE', 82)
+
+def_op('LIST_TO_TUPLE', 82)
def_op('RETURN_VALUE', 83)
def_op('IMPORT_STAR', 84)
def_op('SETUP_ANNOTATIONS', 85)
def_op('YIELD_VALUE', 86)
def_op('POP_BLOCK', 87)
-
+
def_op('POP_EXCEPT', 89)
HAVE_ARGUMENT = 90 # Opcodes from here have an argument:
@@ -159,11 +159,11 @@ jabs_op('POP_JUMP_IF_TRUE', 115) # ""
name_op('LOAD_GLOBAL', 116) # Index in name list
-def_op('IS_OP', 117)
-def_op('CONTAINS_OP', 118)
-
-jabs_op('JUMP_IF_NOT_EXC_MATCH', 121)
-jrel_op('SETUP_FINALLY', 122) # Distance to target address
+def_op('IS_OP', 117)
+def_op('CONTAINS_OP', 118)
+
+jabs_op('JUMP_IF_NOT_EXC_MATCH', 121)
+jrel_op('SETUP_FINALLY', 122) # Distance to target address
def_op('LOAD_FAST', 124) # Local variable number
haslocal.append(124)
@@ -209,9 +209,9 @@ def_op('BUILD_STRING', 157)
name_op('LOAD_METHOD', 160)
def_op('CALL_METHOD', 161)
-def_op('LIST_EXTEND', 162)
-def_op('SET_UPDATE', 163)
-def_op('DICT_MERGE', 164)
-def_op('DICT_UPDATE', 165)
-
+def_op('LIST_EXTEND', 162)
+def_op('SET_UPDATE', 163)
+def_op('DICT_MERGE', 164)
+def_op('DICT_UPDATE', 165)
+
del def_op, name_op, jrel_op, jabs_op
diff --git a/contrib/tools/python3/src/Lib/operator.py b/contrib/tools/python3/src/Lib/operator.py
index 9cc5b89958..241fdbb679 100644
--- a/contrib/tools/python3/src/Lib/operator.py
+++ b/contrib/tools/python3/src/Lib/operator.py
@@ -155,10 +155,10 @@ def contains(a, b):
return b in a
def countOf(a, b):
- "Return the number of items in a which are, or which equal, b."
+ "Return the number of items in a which are, or which equal, b."
count = 0
for i in a:
- if i is b or i == b:
+ if i is b or i == b:
count += 1
return count
@@ -173,7 +173,7 @@ def getitem(a, b):
def indexOf(a, b):
"Return the first index of b in a."
for i, j in enumerate(a):
- if j is b or j == b:
+ if j is b or j == b:
return i
else:
raise ValueError('sequence.index(x): x not in sequence')
@@ -302,11 +302,11 @@ class methodcaller:
"""
__slots__ = ('_name', '_args', '_kwargs')
- def __init__(self, name, /, *args, **kwargs):
- self._name = name
+ def __init__(self, name, /, *args, **kwargs):
+ self._name = name
if not isinstance(self._name, str):
raise TypeError('method name must be a string')
- self._args = args
+ self._args = args
self._kwargs = kwargs
def __call__(self, obj):
diff --git a/contrib/tools/python3/src/Lib/optparse.py b/contrib/tools/python3/src/Lib/optparse.py
index 0fb36323a7..1c450c6fcb 100644
--- a/contrib/tools/python3/src/Lib/optparse.py
+++ b/contrib/tools/python3/src/Lib/optparse.py
@@ -929,7 +929,7 @@ class OptionContainer:
self.set_description(description)
def _create_option_mappings(self):
- # For use by OptionParser constructor -- create the main
+ # For use by OptionParser constructor -- create the main
# option mappings used by this OptionParser and all
# OptionGroups that it owns.
self._short_opt = {} # single letter -> Option instance
diff --git a/contrib/tools/python3/src/Lib/os.py b/contrib/tools/python3/src/Lib/os.py
index 28b1c4130e..b794159f86 100644
--- a/contrib/tools/python3/src/Lib/os.py
+++ b/contrib/tools/python3/src/Lib/os.py
@@ -26,10 +26,10 @@ import abc
import sys
import stat as st
-from _collections_abc import _check_methods
-
-GenericAlias = type(list[int])
-
+from _collections_abc import _check_methods
+
+GenericAlias = type(list[int])
+
_names = sys.builtin_module_names
# Note: more names are added to __all__ later.
@@ -304,11 +304,11 @@ def walk(top, topdown=True, onerror=None, followlinks=False):
(e.g., via del or slice assignment), and walk will only recurse into the
subdirectories whose names remain in dirnames; this can be used to prune the
search, or to impose a specific order of visiting. Modifying dirnames when
- topdown is false has no effect on the behavior of os.walk(), since the
- directories in dirnames have already been generated by the time dirnames
- itself is generated. No matter the value of topdown, the list of
- subdirectories is retrieved before the tuples for the directory and its
- subdirectories are generated.
+ topdown is false has no effect on the behavior of os.walk(), since the
+ directories in dirnames have already been generated by the time dirnames
+ itself is generated. No matter the value of topdown, the list of
+ subdirectories is retrieved before the tuples for the directory and its
+ subdirectories are generated.
By default errors from the os.scandir() call are ignored. If
optional arg 'onerror' is specified, it should be a function; it
@@ -332,16 +332,16 @@ def walk(top, topdown=True, onerror=None, followlinks=False):
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
print(root, "consumes", end="")
- print(sum(getsize(join(root, name)) for name in files), end="")
+ print(sum(getsize(join(root, name)) for name in files), end="")
print("bytes in", len(files), "non-directory files")
if 'CVS' in dirs:
dirs.remove('CVS') # don't visit CVS directories
"""
- sys.audit("os.walk", top, topdown, onerror, followlinks)
- return _walk(fspath(top), topdown, onerror, followlinks)
-
-def _walk(top, topdown, onerror, followlinks):
+ sys.audit("os.walk", top, topdown, onerror, followlinks)
+ return _walk(fspath(top), topdown, onerror, followlinks)
+
+def _walk(top, topdown, onerror, followlinks):
dirs = []
nondirs = []
walk_dirs = []
@@ -415,11 +415,11 @@ def _walk(top, topdown, onerror, followlinks):
# the caller can replace the directory entry during the "yield"
# above.
if followlinks or not islink(new_path):
- yield from _walk(new_path, topdown, onerror, followlinks)
+ yield from _walk(new_path, topdown, onerror, followlinks)
else:
# Recurse into sub-directories
for new_path in walk_dirs:
- yield from _walk(new_path, topdown, onerror, followlinks)
+ yield from _walk(new_path, topdown, onerror, followlinks)
# Yield after recursion if going bottom up
yield top, dirs, nondirs
@@ -454,13 +454,13 @@ if {open, stat} <= supports_dir_fd and {scandir, stat} <= supports_fd:
import os
for root, dirs, files, rootfd in os.fwalk('python/Lib/email'):
print(root, "consumes", end="")
- print(sum(os.stat(name, dir_fd=rootfd).st_size for name in files),
+ print(sum(os.stat(name, dir_fd=rootfd).st_size for name in files),
end="")
print("bytes in", len(files), "non-directory files")
if 'CVS' in dirs:
dirs.remove('CVS') # don't visit CVS directories
"""
- sys.audit("os.fwalk", top, topdown, onerror, follow_symlinks, dir_fd)
+ sys.audit("os.fwalk", top, topdown, onerror, follow_symlinks, dir_fd)
if not isinstance(top, int) or not hasattr(top, '__index__'):
top = fspath(top)
# Note: To guard against symlink races, we use the standard
@@ -577,7 +577,7 @@ def execvpe(file, args, env):
"""execvpe(file, args, env)
Execute the executable file (which is searched for along $PATH)
- with argument list args and environment env, replacing the
+ with argument list args and environment env, replacing the
current process.
args may be a list or tuple of strings. """
_execvpe(file, args, env)
@@ -660,11 +660,11 @@ def get_exec_path(env=None):
return path_list.split(pathsep)
-# Change environ to automatically call putenv() and unsetenv()
-from _collections_abc import MutableMapping, Mapping
+# Change environ to automatically call putenv() and unsetenv()
+from _collections_abc import MutableMapping, Mapping
class _Environ(MutableMapping):
- def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue):
+ def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue):
self.encodekey = encodekey
self.decodekey = decodekey
self.encodevalue = encodevalue
@@ -682,12 +682,12 @@ class _Environ(MutableMapping):
def __setitem__(self, key, value):
key = self.encodekey(key)
value = self.encodevalue(value)
- putenv(key, value)
+ putenv(key, value)
self._data[key] = value
def __delitem__(self, key):
encodedkey = self.encodekey(key)
- unsetenv(encodedkey)
+ unsetenv(encodedkey)
try:
del self._data[encodedkey]
except KeyError:
@@ -716,24 +716,24 @@ class _Environ(MutableMapping):
self[key] = value
return self[key]
- def __ior__(self, other):
- self.update(other)
- return self
-
- def __or__(self, other):
- if not isinstance(other, Mapping):
- return NotImplemented
- new = dict(self)
- new.update(other)
- return new
-
- def __ror__(self, other):
- if not isinstance(other, Mapping):
- return NotImplemented
- new = dict(other)
- new.update(self)
- return new
-
+ def __ior__(self, other):
+ self.update(other)
+ return self
+
+ def __or__(self, other):
+ if not isinstance(other, Mapping):
+ return NotImplemented
+ new = dict(self)
+ new.update(other)
+ return new
+
+ def __ror__(self, other):
+ if not isinstance(other, Mapping):
+ return NotImplemented
+ new = dict(other)
+ new.update(self)
+ return new
+
def _createenviron():
if name == 'nt':
# Where Env Var Names Must Be UPPERCASE
@@ -761,7 +761,7 @@ def _createenviron():
data = environ
return _Environ(data,
encodekey, decode,
- encode, decode)
+ encode, decode)
# unicode environ
environ = _createenviron()
@@ -786,7 +786,7 @@ if supports_bytes_environ:
# bytes environ
environb = _Environ(environ._data,
_check_bytes, bytes,
- _check_bytes, bytes)
+ _check_bytes, bytes)
del _check_bytes
def getenvb(key, default=None):
@@ -867,8 +867,8 @@ if _exists("fork") and not _exists("spawnv") and _exists("execv"):
if WIFSTOPPED(sts):
continue
- return waitstatus_to_exitcode(sts)
-
+ return waitstatus_to_exitcode(sts)
+
def spawnv(mode, file, args):
"""spawnv(mode, file, args) -> integer
@@ -1072,45 +1072,45 @@ class PathLike(abc.ABC):
@classmethod
def __subclasshook__(cls, subclass):
- if cls is PathLike:
- return _check_methods(subclass, '__fspath__')
- return NotImplemented
-
- __class_getitem__ = classmethod(GenericAlias)
-
-
-if name == 'nt':
- class _AddedDllDirectory:
- def __init__(self, path, cookie, remove_dll_directory):
- self.path = path
- self._cookie = cookie
- self._remove_dll_directory = remove_dll_directory
- def close(self):
- self._remove_dll_directory(self._cookie)
- self.path = None
- def __enter__(self):
- return self
- def __exit__(self, *args):
- self.close()
- def __repr__(self):
- if self.path:
- return "<AddedDllDirectory({!r})>".format(self.path)
- return "<AddedDllDirectory()>"
-
- def add_dll_directory(path):
- """Add a path to the DLL search path.
-
- This search path is used when resolving dependencies for imported
- extension modules (the module itself is resolved through sys.path),
- and also by ctypes.
-
- Remove the directory by calling close() on the returned object or
- using it in a with statement.
- """
- import nt
- cookie = nt._add_dll_directory(path)
- return _AddedDllDirectory(
- path,
- cookie,
- nt._remove_dll_directory
- )
+ if cls is PathLike:
+ return _check_methods(subclass, '__fspath__')
+ return NotImplemented
+
+ __class_getitem__ = classmethod(GenericAlias)
+
+
+if name == 'nt':
+ class _AddedDllDirectory:
+ def __init__(self, path, cookie, remove_dll_directory):
+ self.path = path
+ self._cookie = cookie
+ self._remove_dll_directory = remove_dll_directory
+ def close(self):
+ self._remove_dll_directory(self._cookie)
+ self.path = None
+ def __enter__(self):
+ return self
+ def __exit__(self, *args):
+ self.close()
+ def __repr__(self):
+ if self.path:
+ return "<AddedDllDirectory({!r})>".format(self.path)
+ return "<AddedDllDirectory()>"
+
+ def add_dll_directory(path):
+ """Add a path to the DLL search path.
+
+ This search path is used when resolving dependencies for imported
+ extension modules (the module itself is resolved through sys.path),
+ and also by ctypes.
+
+ Remove the directory by calling close() on the returned object or
+ using it in a with statement.
+ """
+ import nt
+ cookie = nt._add_dll_directory(path)
+ return _AddedDllDirectory(
+ path,
+ cookie,
+ nt._remove_dll_directory
+ )
diff --git a/contrib/tools/python3/src/Lib/pathlib.py b/contrib/tools/python3/src/Lib/pathlib.py
index a15b71e548..7aeda14a14 100644
--- a/contrib/tools/python3/src/Lib/pathlib.py
+++ b/contrib/tools/python3/src/Lib/pathlib.py
@@ -7,7 +7,7 @@ import posixpath
import re
import sys
from _collections_abc import Sequence
-from errno import EINVAL, ENOENT, ENOTDIR, EBADF, ELOOP
+from errno import EINVAL, ENOENT, ENOTDIR, EBADF, ELOOP
from operator import attrgetter
from stat import S_ISDIR, S_ISLNK, S_ISREG, S_ISSOCK, S_ISBLK, S_ISCHR, S_ISFIFO
from urllib.parse import quote_from_bytes as urlquote_from_bytes
@@ -34,13 +34,13 @@ __all__ = [
# Internals
#
-# EBADF - guard against macOS `stat` throwing EBADF
-_IGNORED_ERROS = (ENOENT, ENOTDIR, EBADF, ELOOP)
+# EBADF - guard against macOS `stat` throwing EBADF
+_IGNORED_ERROS = (ENOENT, ENOTDIR, EBADF, ELOOP)
_IGNORED_WINERRORS = (
21, # ERROR_NOT_READY - drive exists but is not accessible
- 123, # ERROR_INVALID_NAME - fix for bpo-35306
- 1921, # ERROR_CANT_RESOLVE_FILENAME - fix for broken symlink pointing to itself
+ 123, # ERROR_INVALID_NAME - fix for bpo-35306
+ 1921, # ERROR_CANT_RESOLVE_FILENAME - fix for broken symlink pointing to itself
)
def _ignore_error(exception):
@@ -132,25 +132,25 @@ class _WindowsFlavour(_Flavour):
ext_namespace_prefix = '\\\\?\\'
reserved_names = (
- {'CON', 'PRN', 'AUX', 'NUL', 'CONIN$', 'CONOUT$'} |
- {'COM%s' % c for c in '123456789\xb9\xb2\xb3'} |
- {'LPT%s' % c for c in '123456789\xb9\xb2\xb3'}
+ {'CON', 'PRN', 'AUX', 'NUL', 'CONIN$', 'CONOUT$'} |
+ {'COM%s' % c for c in '123456789\xb9\xb2\xb3'} |
+ {'LPT%s' % c for c in '123456789\xb9\xb2\xb3'}
)
# Interesting findings about extended paths:
- # * '\\?\c:\a' is an extended path, which bypasses normal Windows API
- # path processing. Thus relative paths are not resolved and slash is not
- # translated to backslash. It has the native NT path limit of 32767
- # characters, but a bit less after resolving device symbolic links,
- # such as '\??\C:' => '\Device\HarddiskVolume2'.
- # * '\\?\c:/a' looks for a device named 'C:/a' because slash is a
- # regular name character in the object namespace.
- # * '\\?\c:\foo/bar' is invalid because '/' is illegal in NT filesystems.
- # The only path separator at the filesystem level is backslash.
- # * '//?/c:\a' and '//?/c:/a' are effectively equivalent to '\\.\c:\a' and
- # thus limited to MAX_PATH.
- # * Prior to Windows 8, ANSI API bytes paths are limited to MAX_PATH,
- # even with the '\\?\' prefix.
+ # * '\\?\c:\a' is an extended path, which bypasses normal Windows API
+ # path processing. Thus relative paths are not resolved and slash is not
+ # translated to backslash. It has the native NT path limit of 32767
+ # characters, but a bit less after resolving device symbolic links,
+ # such as '\??\C:' => '\Device\HarddiskVolume2'.
+ # * '\\?\c:/a' looks for a device named 'C:/a' because slash is a
+ # regular name character in the object namespace.
+ # * '\\?\c:\foo/bar' is invalid because '/' is illegal in NT filesystems.
+ # The only path separator at the filesystem level is backslash.
+ # * '//?/c:\a' and '//?/c:/a' are effectively equivalent to '\\.\c:\a' and
+ # thus limited to MAX_PATH.
+ # * Prior to Windows 8, ANSI API bytes paths are limited to MAX_PATH,
+ # even with the '\\?\' prefix.
def splitroot(self, part, sep=sep):
first = part[0:1]
@@ -197,9 +197,9 @@ class _WindowsFlavour(_Flavour):
def casefold_parts(self, parts):
return [p.lower() for p in parts]
- def compile_pattern(self, pattern):
- return re.compile(fnmatch.translate(pattern), re.IGNORECASE).fullmatch
-
+ def compile_pattern(self, pattern):
+ return re.compile(fnmatch.translate(pattern), re.IGNORECASE).fullmatch
+
def resolve(self, path, strict=False):
s = str(path)
if not s:
@@ -240,16 +240,16 @@ class _WindowsFlavour(_Flavour):
def is_reserved(self, parts):
# NOTE: the rules for reserved names seem somewhat complicated
- # (e.g. r"..\NUL" is reserved but not r"foo\NUL" if "foo" does not
- # exist). We err on the side of caution and return True for paths
- # which are not considered reserved by Windows.
+ # (e.g. r"..\NUL" is reserved but not r"foo\NUL" if "foo" does not
+ # exist). We err on the side of caution and return True for paths
+ # which are not considered reserved by Windows.
if not parts:
return False
if parts[0].startswith('\\\\'):
# UNC paths are never reserved
return False
- name = parts[-1].partition('.')[0].partition(':')[0].rstrip(' ')
- return name.upper() in self.reserved_names
+ name = parts[-1].partition('.')[0].partition(':')[0].rstrip(' ')
+ return name.upper() in self.reserved_names
def make_uri(self, path):
# Under Windows, file URIs use the UTF-8 encoding.
@@ -264,7 +264,7 @@ class _WindowsFlavour(_Flavour):
return 'file:' + urlquote_from_bytes(path.as_posix().encode('utf-8'))
def gethomedir(self, username):
- if 'USERPROFILE' in os.environ:
+ if 'USERPROFILE' in os.environ:
userhome = os.environ['USERPROFILE']
elif 'HOMEPATH' in os.environ:
try:
@@ -321,9 +321,9 @@ class _PosixFlavour(_Flavour):
def casefold_parts(self, parts):
return parts
- def compile_pattern(self, pattern):
- return re.compile(fnmatch.translate(pattern)).fullmatch
-
+ def compile_pattern(self, pattern):
+ return re.compile(fnmatch.translate(pattern)).fullmatch
+
def resolve(self, path, strict=False):
sep = self.sep
accessor = path._accessor
@@ -340,10 +340,10 @@ class _PosixFlavour(_Flavour):
# parent dir
path, _, _ = path.rpartition(sep)
continue
- if path.endswith(sep):
- newpath = path + name
- else:
- newpath = path + sep + name
+ if path.endswith(sep):
+ newpath = path + name
+ else:
+ newpath = path + sep + name
if newpath in seen:
# Already seen this path
path = seen[newpath]
@@ -430,13 +430,13 @@ class _NormalAccessor(_Accessor):
unlink = os.unlink
- if hasattr(os, "link"):
- link_to = os.link
- else:
- @staticmethod
- def link_to(self, target):
- raise NotImplementedError("os.link() not available on this system")
-
+ if hasattr(os, "link"):
+ link_to = os.link
+ else:
+ @staticmethod
+ def link_to(self, target):
+ raise NotImplementedError("os.link() not available on this system")
+
rmdir = os.rmdir
rename = os.rename
@@ -461,21 +461,21 @@ class _NormalAccessor(_Accessor):
def readlink(self, path):
return os.readlink(path)
- def owner(self, path):
- try:
- import pwd
- return pwd.getpwuid(self.stat(path).st_uid).pw_name
- except ImportError:
- raise NotImplementedError("Path.owner() is unsupported on this system")
-
- def group(self, path):
- try:
- import grp
- return grp.getgrgid(self.stat(path).st_gid).gr_name
- except ImportError:
- raise NotImplementedError("Path.group() is unsupported on this system")
-
-
+ def owner(self, path):
+ try:
+ import pwd
+ return pwd.getpwuid(self.stat(path).st_uid).pw_name
+ except ImportError:
+ raise NotImplementedError("Path.owner() is unsupported on this system")
+
+ def group(self, path):
+ try:
+ import grp
+ return grp.getgrgid(self.stat(path).st_gid).gr_name
+ except ImportError:
+ raise NotImplementedError("Path.group() is unsupported on this system")
+
+
_normal_accessor = _NormalAccessor()
@@ -483,7 +483,7 @@ _normal_accessor = _NormalAccessor()
# Globbing helpers
#
-def _make_selector(pattern_parts, flavour):
+def _make_selector(pattern_parts, flavour):
pat = pattern_parts[0]
child_parts = pattern_parts[1:]
if pat == '**':
@@ -494,7 +494,7 @@ def _make_selector(pattern_parts, flavour):
cls = _WildcardSelector
else:
cls = _PreciseSelector
- return cls(pat, child_parts, flavour)
+ return cls(pat, child_parts, flavour)
if hasattr(functools, "lru_cache"):
_make_selector = functools.lru_cache()(_make_selector)
@@ -504,10 +504,10 @@ class _Selector:
"""A selector matches a specific glob pattern part against the children
of a given path."""
- def __init__(self, child_parts, flavour):
+ def __init__(self, child_parts, flavour):
self.child_parts = child_parts
if child_parts:
- self.successor = _make_selector(child_parts, flavour)
+ self.successor = _make_selector(child_parts, flavour)
self.dironly = True
else:
self.successor = _TerminatingSelector()
@@ -533,9 +533,9 @@ class _TerminatingSelector:
class _PreciseSelector(_Selector):
- def __init__(self, name, child_parts, flavour):
+ def __init__(self, name, child_parts, flavour):
self.name = name
- _Selector.__init__(self, child_parts, flavour)
+ _Selector.__init__(self, child_parts, flavour)
def _select_from(self, parent_path, is_dir, exists, scandir):
try:
@@ -549,45 +549,45 @@ class _PreciseSelector(_Selector):
class _WildcardSelector(_Selector):
- def __init__(self, pat, child_parts, flavour):
- self.match = flavour.compile_pattern(pat)
- _Selector.__init__(self, child_parts, flavour)
+ def __init__(self, pat, child_parts, flavour):
+ self.match = flavour.compile_pattern(pat)
+ _Selector.__init__(self, child_parts, flavour)
def _select_from(self, parent_path, is_dir, exists, scandir):
try:
- with scandir(parent_path) as scandir_it:
- entries = list(scandir_it)
+ with scandir(parent_path) as scandir_it:
+ entries = list(scandir_it)
for entry in entries:
- if self.dironly:
- try:
- # "entry.is_dir()" can raise PermissionError
- # in some cases (see bpo-38894), which is not
- # among the errors ignored by _ignore_error()
- if not entry.is_dir():
- continue
- except OSError as e:
- if not _ignore_error(e):
- raise
- continue
- name = entry.name
- if self.match(name):
- path = parent_path._make_child_relpath(name)
- for p in self.successor._select_from(path, is_dir, exists, scandir):
- yield p
+ if self.dironly:
+ try:
+ # "entry.is_dir()" can raise PermissionError
+ # in some cases (see bpo-38894), which is not
+ # among the errors ignored by _ignore_error()
+ if not entry.is_dir():
+ continue
+ except OSError as e:
+ if not _ignore_error(e):
+ raise
+ continue
+ name = entry.name
+ if self.match(name):
+ path = parent_path._make_child_relpath(name)
+ for p in self.successor._select_from(path, is_dir, exists, scandir):
+ yield p
except PermissionError:
return
class _RecursiveWildcardSelector(_Selector):
- def __init__(self, pat, child_parts, flavour):
- _Selector.__init__(self, child_parts, flavour)
+ def __init__(self, pat, child_parts, flavour):
+ _Selector.__init__(self, child_parts, flavour)
def _iterate_directories(self, parent_path, is_dir, scandir):
yield parent_path
try:
- with scandir(parent_path) as scandir_it:
- entries = list(scandir_it)
+ with scandir(parent_path) as scandir_it:
+ entries = list(scandir_it)
for entry in entries:
entry_is_dir = False
try:
@@ -813,9 +813,9 @@ class PurePath(object):
return NotImplemented
return self._cparts >= other._cparts
- def __class_getitem__(cls, type):
- return cls
-
+ def __class_getitem__(cls, type):
+ return cls
+
drive = property(attrgetter('_drv'),
doc="""The drive prefix (letter or UNC path), if any.""")
@@ -838,11 +838,11 @@ class PurePath(object):
@property
def suffix(self):
- """
- The final component's last suffix, if any.
-
- This includes the leading period. For example: '.txt'
- """
+ """
+ The final component's last suffix, if any.
+
+ This includes the leading period. For example: '.txt'
+ """
name = self.name
i = name.rfind('.')
if 0 < i < len(name) - 1:
@@ -852,11 +852,11 @@ class PurePath(object):
@property
def suffixes(self):
- """
- A list of the final component's suffixes, if any.
-
- These include the leading periods. For example: ['.tar', '.gz']
- """
+ """
+ A list of the final component's suffixes, if any.
+
+ These include the leading periods. For example: ['.tar', '.gz']
+ """
name = self.name
if name.endswith('.'):
return []
@@ -884,10 +884,10 @@ class PurePath(object):
return self._from_parsed_parts(self._drv, self._root,
self._parts[:-1] + [name])
- def with_stem(self, stem):
- """Return a new path with the stem changed."""
- return self.with_name(stem + self.suffix)
-
+ def with_stem(self, stem):
+ """Return a new path with the stem changed."""
+ return self.with_name(stem + self.suffix)
+
def with_suffix(self, suffix):
"""Return a new path with the file suffix changed. If the path
has no suffix, add given suffix. If the given suffix is an empty
@@ -936,21 +936,21 @@ class PurePath(object):
cf = self._flavour.casefold_parts
if (root or drv) if n == 0 else cf(abs_parts[:n]) != cf(to_abs_parts):
formatted = self._format_parsed_parts(to_drv, to_root, to_parts)
- raise ValueError("{!r} is not in the subpath of {!r}"
- " OR one path is relative and the other is absolute."
+ raise ValueError("{!r} is not in the subpath of {!r}"
+ " OR one path is relative and the other is absolute."
.format(str(self), str(formatted)))
return self._from_parsed_parts('', root if n == 1 else '',
abs_parts[n:])
- def is_relative_to(self, *other):
- """Return True if the path is relative to another path or False.
- """
- try:
- self.relative_to(*other)
- return True
- except ValueError:
- return False
-
+ def is_relative_to(self, *other):
+ """Return True if the path is relative to another path or False.
+ """
+ try:
+ self.relative_to(*other)
+ return True
+ except ValueError:
+ return False
+
@property
def parts(self):
"""An object providing sequence-like access to the
@@ -972,16 +972,16 @@ class PurePath(object):
return self._make_child(args)
def __truediv__(self, key):
- try:
- return self._make_child((key,))
- except TypeError:
- return NotImplemented
+ try:
+ return self._make_child((key,))
+ except TypeError:
+ return NotImplemented
def __rtruediv__(self, key):
- try:
- return self._from_parts([key] + self._parts)
- except TypeError:
- return NotImplemented
+ try:
+ return self._from_parts([key] + self._parts)
+ except TypeError:
+ return NotImplemented
@property
def parent(self):
@@ -1105,15 +1105,15 @@ class Path(PurePath):
return self
def __exit__(self, t, v, tb):
- # https://bugs.python.org/issue39682
- # In previous versions of pathlib, this method marked this path as
- # closed; subsequent attempts to perform I/O would raise an IOError.
- # This functionality was never documented, and had the effect of
- # making Path objects mutable, contrary to PEP 428. In Python 3.9 the
- # _closed attribute was removed, and this method made a no-op.
- # This method and __enter__()/__exit__() should be deprecated and
- # removed in the future.
- pass
+ # https://bugs.python.org/issue39682
+ # In previous versions of pathlib, this method marked this path as
+ # closed; subsequent attempts to perform I/O would raise an IOError.
+ # This functionality was never documented, and had the effect of
+ # making Path objects mutable, contrary to PEP 428. In Python 3.9 the
+ # _closed attribute was removed, and this method made a no-op.
+ # This method and __enter__()/__exit__() should be deprecated and
+ # removed in the future.
+ pass
def _opener(self, name, flags, mode=0o666):
# A stub for the opener argument to built-in open()
@@ -1150,7 +1150,7 @@ class Path(PurePath):
try:
other_st = other_path.stat()
except AttributeError:
- other_st = self._accessor.stat(other_path)
+ other_st = self._accessor.stat(other_path)
return os.path.samestat(st, other_st)
def iterdir(self):
@@ -1167,13 +1167,13 @@ class Path(PurePath):
"""Iterate over this subtree and yield all existing files (of any
kind, including directories) matching the given relative pattern.
"""
- sys.audit("pathlib.Path.glob", self, pattern)
+ sys.audit("pathlib.Path.glob", self, pattern)
if not pattern:
raise ValueError("Unacceptable pattern: {!r}".format(pattern))
drv, root, pattern_parts = self._flavour.parse_parts((pattern,))
if drv or root:
raise NotImplementedError("Non-relative patterns are unsupported")
- selector = _make_selector(tuple(pattern_parts), self._flavour)
+ selector = _make_selector(tuple(pattern_parts), self._flavour)
for p in selector.select_from(self):
yield p
@@ -1182,11 +1182,11 @@ class Path(PurePath):
directories) matching the given relative pattern, anywhere in
this subtree.
"""
- sys.audit("pathlib.Path.rglob", self, pattern)
+ sys.audit("pathlib.Path.rglob", self, pattern)
drv, root, pattern_parts = self._flavour.parse_parts((pattern,))
if drv or root:
raise NotImplementedError("Non-relative patterns are unsupported")
- selector = _make_selector(("**",) + tuple(pattern_parts), self._flavour)
+ selector = _make_selector(("**",) + tuple(pattern_parts), self._flavour)
for p in selector.select_from(self):
yield p
@@ -1235,13 +1235,13 @@ class Path(PurePath):
"""
Return the login name of the file owner.
"""
- return self._accessor.owner(self)
+ return self._accessor.owner(self)
def group(self):
"""
Return the group name of the file gid.
"""
- return self._accessor.group(self)
+ return self._accessor.group(self)
def open(self, mode='r', buffering=-1, encoding=None,
errors=None, newline=None):
@@ -1285,15 +1285,15 @@ class Path(PurePath):
with self.open(mode='w', encoding=encoding, errors=errors) as f:
return f.write(data)
- def readlink(self):
- """
- Return the path to which the symbolic link points.
- """
- path = self._accessor.readlink(self)
- obj = self._from_parts((path,), init=False)
- obj._init(template=self)
- return obj
-
+ def readlink(self):
+ """
+ Return the path to which the symbolic link points.
+ """
+ path = self._accessor.readlink(self)
+ obj = self._from_parts((path,), init=False)
+ obj._init(template=self)
+ return obj
+
def touch(self, mode=0o666, exist_ok=True):
"""
Create this file with the given access mode, if it doesn't exist.
@@ -1345,16 +1345,16 @@ class Path(PurePath):
"""
self._accessor.lchmod(self, mode)
- def unlink(self, missing_ok=False):
+ def unlink(self, missing_ok=False):
"""
Remove this file or link.
If the path is a directory, use rmdir() instead.
"""
- try:
- self._accessor.unlink(self)
- except FileNotFoundError:
- if not missing_ok:
- raise
+ try:
+ self._accessor.unlink(self)
+ except FileNotFoundError:
+ if not missing_ok:
+ raise
def rmdir(self):
"""
@@ -1371,49 +1371,49 @@ class Path(PurePath):
def rename(self, target):
"""
- Rename this path to the target path.
-
- The target path may be absolute or relative. Relative paths are
- interpreted relative to the current working directory, *not* the
- directory of the Path object.
-
- Returns the new Path instance pointing to the target path.
+ Rename this path to the target path.
+
+ The target path may be absolute or relative. Relative paths are
+ interpreted relative to the current working directory, *not* the
+ directory of the Path object.
+
+ Returns the new Path instance pointing to the target path.
"""
self._accessor.rename(self, target)
- return self.__class__(target)
+ return self.__class__(target)
def replace(self, target):
"""
- Rename this path to the target path, overwriting if that path exists.
-
- The target path may be absolute or relative. Relative paths are
- interpreted relative to the current working directory, *not* the
- directory of the Path object.
-
- Returns the new Path instance pointing to the target path.
+ Rename this path to the target path, overwriting if that path exists.
+
+ The target path may be absolute or relative. Relative paths are
+ interpreted relative to the current working directory, *not* the
+ directory of the Path object.
+
+ Returns the new Path instance pointing to the target path.
"""
self._accessor.replace(self, target)
- return self.__class__(target)
+ return self.__class__(target)
def symlink_to(self, target, target_is_directory=False):
"""
- Make this path a symlink pointing to the target path.
- Note the order of arguments (link, target) is the reverse of os.symlink.
+ Make this path a symlink pointing to the target path.
+ Note the order of arguments (link, target) is the reverse of os.symlink.
"""
self._accessor.symlink(target, self, target_is_directory)
- def link_to(self, target):
- """
- Make the target path a hard link pointing to this path.
-
- Note this function does not make this path a hard link to *target*,
- despite the implication of the function and argument names. The order
- of arguments (target, link) is the reverse of Path.symlink_to, but
- matches that of os.link.
-
- """
- self._accessor.link_to(self, target)
-
+ def link_to(self, target):
+ """
+ Make the target path a hard link pointing to this path.
+
+ Note this function does not make this path a hard link to *target*,
+ despite the implication of the function and argument names. The order
+ of arguments (target, link) is the reverse of Path.symlink_to, but
+ matches that of os.link.
+
+ """
+ self._accessor.link_to(self, target)
+
# Convenience functions for querying the stat results
def exists(self):
@@ -1426,9 +1426,9 @@ class Path(PurePath):
if not _ignore_error(e):
raise
return False
- except ValueError:
- # Non-encodable path
- return False
+ except ValueError:
+ # Non-encodable path
+ return False
return True
def is_dir(self):
@@ -1441,11 +1441,11 @@ class Path(PurePath):
if not _ignore_error(e):
raise
# Path doesn't exist or is a broken symlink
- # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ return False
+ except ValueError:
+ # Non-encodable path
return False
- except ValueError:
- # Non-encodable path
- return False
def is_file(self):
"""
@@ -1458,11 +1458,11 @@ class Path(PurePath):
if not _ignore_error(e):
raise
# Path doesn't exist or is a broken symlink
- # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ return False
+ except ValueError:
+ # Non-encodable path
return False
- except ValueError:
- # Non-encodable path
- return False
def is_mount(self):
"""
@@ -1473,7 +1473,7 @@ class Path(PurePath):
return False
try:
- parent_dev = self.parent.stat().st_dev
+ parent_dev = self.parent.stat().st_dev
except OSError:
return False
@@ -1481,7 +1481,7 @@ class Path(PurePath):
if dev != parent_dev:
return True
ino = self.stat().st_ino
- parent_ino = self.parent.stat().st_ino
+ parent_ino = self.parent.stat().st_ino
return ino == parent_ino
def is_symlink(self):
@@ -1495,9 +1495,9 @@ class Path(PurePath):
raise
# Path doesn't exist
return False
- except ValueError:
- # Non-encodable path
- return False
+ except ValueError:
+ # Non-encodable path
+ return False
def is_block_device(self):
"""
@@ -1509,11 +1509,11 @@ class Path(PurePath):
if not _ignore_error(e):
raise
# Path doesn't exist or is a broken symlink
- # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ return False
+ except ValueError:
+ # Non-encodable path
return False
- except ValueError:
- # Non-encodable path
- return False
def is_char_device(self):
"""
@@ -1525,11 +1525,11 @@ class Path(PurePath):
if not _ignore_error(e):
raise
# Path doesn't exist or is a broken symlink
- # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ return False
+ except ValueError:
+ # Non-encodable path
return False
- except ValueError:
- # Non-encodable path
- return False
def is_fifo(self):
"""
@@ -1541,11 +1541,11 @@ class Path(PurePath):
if not _ignore_error(e):
raise
# Path doesn't exist or is a broken symlink
- # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ return False
+ except ValueError:
+ # Non-encodable path
return False
- except ValueError:
- # Non-encodable path
- return False
def is_socket(self):
"""
@@ -1557,11 +1557,11 @@ class Path(PurePath):
if not _ignore_error(e):
raise
# Path doesn't exist or is a broken symlink
- # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ # (see http://web.archive.org/web/20200623061726/https://bitbucket.org/pitrou/pathlib/issues/12/ )
+ return False
+ except ValueError:
+ # Non-encodable path
return False
- except ValueError:
- # Non-encodable path
- return False
def expanduser(self):
""" Return a new path with expanded ~ and ~user constructs
diff --git a/contrib/tools/python3/src/Lib/pdb.py b/contrib/tools/python3/src/Lib/pdb.py
index eb1b0d8d4c..943211158a 100644
--- a/contrib/tools/python3/src/Lib/pdb.py
+++ b/contrib/tools/python3/src/Lib/pdb.py
@@ -68,7 +68,7 @@ Debugger commands
# commands and is appended to __doc__ after the class has been defined.
import os
-import io
+import io
import re
import sys
import cmd
@@ -79,7 +79,7 @@ import glob
import pprint
import signal
import inspect
-import tokenize
+import tokenize
import traceback
import linecache
@@ -94,7 +94,7 @@ __all__ = ["run", "pm", "Pdb", "runeval", "runctx", "runcall", "set_trace",
def find_function(funcname, filename):
cre = re.compile(r'def\s+%s\s*[(]' % re.escape(funcname))
try:
- fp = tokenize.open(filename)
+ fp = tokenize.open(filename)
except OSError:
return None
# consumer of this info expects the first line to be 1
@@ -143,7 +143,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
nosigint=False, readrc=True):
bdb.Bdb.__init__(self, skip=skip)
cmd.Cmd.__init__(self, completekey, stdin, stdout)
- sys.audit("pdb.Pdb")
+ sys.audit("pdb.Pdb")
if stdout:
self.use_rawinput = 0
self.prompt = '(Pdb) '
@@ -162,15 +162,15 @@ class Pdb(bdb.Bdb, cmd.Cmd):
self.allow_kbdint = False
self.nosigint = nosigint
- # Read ~/.pdbrc and ./.pdbrc
+ # Read ~/.pdbrc and ./.pdbrc
self.rcLines = []
if readrc:
try:
- with open(os.path.expanduser('~/.pdbrc')) as rcFile:
- self.rcLines.extend(rcFile)
- except OSError:
- pass
- try:
+ with open(os.path.expanduser('~/.pdbrc')) as rcFile:
+ self.rcLines.extend(rcFile)
+ except OSError:
+ pass
+ try:
with open(".pdbrc") as rcFile:
self.rcLines.extend(rcFile)
except OSError:
@@ -342,12 +342,12 @@ class Pdb(bdb.Bdb, cmd.Cmd):
def interaction(self, frame, traceback):
# Restore the previous signal handler at the Pdb prompt.
if Pdb._previous_sigint_handler:
- try:
- signal.signal(signal.SIGINT, Pdb._previous_sigint_handler)
- except ValueError: # ValueError: signal only works in main thread
- pass
- else:
- Pdb._previous_sigint_handler = None
+ try:
+ signal.signal(signal.SIGINT, Pdb._previous_sigint_handler)
+ except ValueError: # ValueError: signal only works in main thread
+ pass
+ else:
+ Pdb._previous_sigint_handler = None
if self.setup(frame, traceback):
# no interaction desired at this time (happens if .pdbrc contains
# a command like "continue")
@@ -384,7 +384,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
sys.stdin = save_stdin
sys.displayhook = save_displayhook
except:
- self._error_exc()
+ self._error_exc()
def precmd(self, line):
"""Handle alias expansion and ';;' separator."""
@@ -473,7 +473,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
except Exception:
ret = []
# Then, try to complete file names as well.
- globs = glob.glob(glob.escape(text) + '*')
+ globs = glob.glob(glob.escape(text) + '*')
for fn in globs:
if os.path.isdir(fn):
ret.append(fn + '/')
@@ -495,7 +495,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
# Collect globals and locals. It is usually not really sensible to also
# complete builtins, and they clutter the namespace quite heavily, so we
# leave them out.
- ns = {**self.curframe.f_globals, **self.curframe_locals}
+ ns = {**self.curframe.f_globals, **self.curframe_locals}
if '.' in text:
# Walk an attribute chain up to the last part, similar to what
# rlcompleter does. This will bail if any of the parts are not
@@ -751,8 +751,8 @@ class Pdb(bdb.Bdb, cmd.Cmd):
"""
# this method should be callable before starting debugging, so default
# to "no globals" if there is no current frame
- frame = getattr(self, 'curframe', None)
- globs = frame.f_globals if frame else None
+ frame = getattr(self, 'curframe', None)
+ globs = frame.f_globals if frame else None
line = linecache.getline(filename, lineno, globs)
if not line:
self.message('End of file')
@@ -893,7 +893,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
except ValueError:
err = "Invalid line number (%s)" % arg
else:
- bplist = self.get_breaks(filename, lineno)[:]
+ bplist = self.get_breaks(filename, lineno)[:]
err = self.clear_break(filename, lineno)
if err:
self.error(err)
@@ -1026,11 +1026,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
if arg:
import shlex
argv0 = sys.argv[0:1]
- try:
- sys.argv = shlex.split(arg)
- except ValueError as e:
- self.error('Cannot run %s: %s' % (arg, e))
- return
+ try:
+ sys.argv = shlex.split(arg)
+ except ValueError as e:
+ self.error('Cannot run %s: %s' % (arg, e))
+ return
sys.argv[:0] = argv0
# this is caught in the main debugger loop
raise Restart
@@ -1107,7 +1107,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
try:
sys.call_tracing(p.run, (arg, globals, locals))
except Exception:
- self._error_exc()
+ self._error_exc()
self.message("LEAVING RECURSIVE DEBUGGER")
sys.settrace(self.trace_dispatch)
self.lastcmd = p.lastcmd
@@ -1140,9 +1140,9 @@ class Pdb(bdb.Bdb, cmd.Cmd):
"""
co = self.curframe.f_code
dict = self.curframe_locals
- n = co.co_argcount + co.co_kwonlyargcount
- if co.co_flags & inspect.CO_VARARGS: n = n+1
- if co.co_flags & inspect.CO_VARKEYWORDS: n = n+1
+ n = co.co_argcount + co.co_kwonlyargcount
+ if co.co_flags & inspect.CO_VARARGS: n = n+1
+ if co.co_flags & inspect.CO_VARKEYWORDS: n = n+1
for i in range(n):
name = co.co_varnames[i]
if name in dict:
@@ -1165,7 +1165,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
try:
return eval(arg, self.curframe.f_globals, self.curframe_locals)
except:
- self._error_exc()
+ self._error_exc()
raise
def _getval_except(self, arg, frame=None):
@@ -1179,31 +1179,31 @@ class Pdb(bdb.Bdb, cmd.Cmd):
err = traceback.format_exception_only(*exc_info)[-1].strip()
return _rstr('** raised %s **' % err)
- def _error_exc(self):
- exc_info = sys.exc_info()[:2]
- self.error(traceback.format_exception_only(*exc_info)[-1].strip())
-
- def _msg_val_func(self, arg, func):
- try:
- val = self._getval(arg)
- except:
- return # _getval() has displayed the error
- try:
- self.message(func(val))
- except:
- self._error_exc()
-
+ def _error_exc(self):
+ exc_info = sys.exc_info()[:2]
+ self.error(traceback.format_exception_only(*exc_info)[-1].strip())
+
+ def _msg_val_func(self, arg, func):
+ try:
+ val = self._getval(arg)
+ except:
+ return # _getval() has displayed the error
+ try:
+ self.message(func(val))
+ except:
+ self._error_exc()
+
def do_p(self, arg):
"""p expression
Print the value of the expression.
"""
- self._msg_val_func(arg, repr)
+ self._msg_val_func(arg, repr)
def do_pp(self, arg):
"""pp expression
Pretty-print the value of the expression.
"""
- self._msg_val_func(arg, pprint.pformat)
+ self._msg_val_func(arg, pprint.pformat)
complete_print = _complete_expression
complete_p = _complete_expression
@@ -1322,21 +1322,21 @@ class Pdb(bdb.Bdb, cmd.Cmd):
# _getval() already printed the error
return
code = None
- # Is it an instance method?
+ # Is it an instance method?
try:
- code = value.__func__.__code__
+ code = value.__func__.__code__
except Exception:
pass
if code:
- self.message('Method %s' % code.co_name)
+ self.message('Method %s' % code.co_name)
return
- # Is it a function?
+ # Is it a function?
try:
- code = value.__code__
+ code = value.__code__
except Exception:
pass
if code:
- self.message('Function %s' % code.co_name)
+ self.message('Function %s' % code.co_name)
return
# Is it a class?
if value.__class__ is type:
@@ -1391,7 +1391,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
Start an interactive interpreter whose global namespace
contains all the (global and local) names found in the current scope.
"""
- ns = {**self.curframe.f_globals, **self.curframe_locals}
+ ns = {**self.curframe.f_globals, **self.curframe_locals}
code.interact("*interactive*", local=ns)
def do_alias(self, arg):
@@ -1577,7 +1577,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
self._wait_for_mainpyfile = True
self.mainpyfile = self.canonic(filename)
self._user_requested_quit = False
- with io.open_code(filename) as fp:
+ with io.open_code(filename) as fp:
statement = "exec(compile(%r, %r, 'exec'))" % \
(fp.read(), self.mainpyfile)
self.run(statement)
@@ -1672,7 +1672,7 @@ To let the script run up to a given line X in the debugged file, use
def main():
import getopt
- opts, args = getopt.getopt(sys.argv[1:], 'mhc:', ['help', 'command='])
+ opts, args = getopt.getopt(sys.argv[1:], 'mhc:', ['help', 'command='])
if not args:
print(_usage)
@@ -1694,19 +1694,19 @@ def main():
print('Error:', mainpyfile, 'does not exist')
sys.exit(1)
- if run_as_module:
- import runpy
- try:
- runpy._get_module_details(mainpyfile)
- except Exception:
- traceback.print_exc()
- sys.exit(1)
-
+ if run_as_module:
+ import runpy
+ try:
+ runpy._get_module_details(mainpyfile)
+ except Exception:
+ traceback.print_exc()
+ sys.exit(1)
+
sys.argv[:] = args # Hide "pdb.py" and pdb options from argument list
if not run_as_module:
- mainpyfile = os.path.realpath(mainpyfile)
- # Replace pdb's dir with script's dir in front of module search path.
+ mainpyfile = os.path.realpath(mainpyfile)
+ # Replace pdb's dir with script's dir in front of module search path.
sys.path[0] = os.path.dirname(mainpyfile)
# Note on saving/restoring sys.argv: it's a good idea when sys.argv was
@@ -1726,7 +1726,7 @@ def main():
print("The program finished and will be restarted")
except Restart:
print("Restarting", mainpyfile, "with arguments:")
- print("\t" + " ".join(sys.argv[1:]))
+ print("\t" + " ".join(sys.argv[1:]))
except SystemExit:
# In most cases SystemExit does not warrant a post-mortem session.
print("The program exited via sys.exit(). Exit status:", end=' ')
diff --git a/contrib/tools/python3/src/Lib/pickle.py b/contrib/tools/python3/src/Lib/pickle.py
index c3aa5f686e..3d2c75a853 100644
--- a/contrib/tools/python3/src/Lib/pickle.py
+++ b/contrib/tools/python3/src/Lib/pickle.py
@@ -13,7 +13,7 @@ Functions:
dump(object, file)
dumps(object) -> string
load(file) -> object
- loads(bytes) -> object
+ loads(bytes) -> object
Misc variables:
@@ -39,14 +39,14 @@ import _compat_pickle
__all__ = ["PickleError", "PicklingError", "UnpicklingError", "Pickler",
"Unpickler", "dump", "dumps", "load", "loads"]
-try:
- from _pickle import PickleBuffer
- __all__.append("PickleBuffer")
- _HAVE_PICKLE_BUFFER = True
-except ImportError:
- _HAVE_PICKLE_BUFFER = False
-
-
+try:
+ from _pickle import PickleBuffer
+ __all__.append("PickleBuffer")
+ _HAVE_PICKLE_BUFFER = True
+except ImportError:
+ _HAVE_PICKLE_BUFFER = False
+
+
# Shortcut for use in isinstance testing
bytes_types = (bytes, bytearray)
@@ -59,16 +59,16 @@ compatible_formats = ["1.0", # Original protocol 0
"2.0", # Protocol 2
"3.0", # Protocol 3
"4.0", # Protocol 4
- "5.0", # Protocol 5
+ "5.0", # Protocol 5
] # Old format versions we can read
# This is the highest protocol number we know how to read.
-HIGHEST_PROTOCOL = 5
+HIGHEST_PROTOCOL = 5
# The protocol we write by default. May be less than HIGHEST_PROTOCOL.
-# Only bump this if the oldest still supported version of Python already
-# includes it.
-DEFAULT_PROTOCOL = 4
+# Only bump this if the oldest still supported version of Python already
+# includes it.
+DEFAULT_PROTOCOL = 4
class PickleError(Exception):
"""A common base class for the other pickling exceptions."""
@@ -176,7 +176,7 @@ BINBYTES = b'B' # push bytes; counted binary string argument
SHORT_BINBYTES = b'C' # " " ; " " " " < 256 bytes
# Protocol 4
-
+
SHORT_BINUNICODE = b'\x8c' # push short string; UTF-8 length < 256 bytes
BINUNICODE8 = b'\x8d' # push very long string
BINBYTES8 = b'\x8e' # push very long bytes string
@@ -188,12 +188,12 @@ STACK_GLOBAL = b'\x93' # same as GLOBAL but using names on the stacks
MEMOIZE = b'\x94' # store top of the stack in memo
FRAME = b'\x95' # indicate the beginning of a new frame
-# Protocol 5
-
-BYTEARRAY8 = b'\x96' # push bytearray
-NEXT_BUFFER = b'\x97' # push next out-of-band buffer
-READONLY_BUFFER = b'\x98' # make top of stack readonly
-
+# Protocol 5
+
+BYTEARRAY8 = b'\x96' # push bytearray
+NEXT_BUFFER = b'\x97' # push next out-of-band buffer
+READONLY_BUFFER = b'\x98' # make top of stack readonly
+
__all__.extend([x for x in dir() if re.match("[A-Z][A-Z0-9_]+$", x)])
@@ -267,23 +267,23 @@ class _Unframer:
self.file_readline = file_readline
self.current_frame = None
- def readinto(self, buf):
- if self.current_frame:
- n = self.current_frame.readinto(buf)
- if n == 0 and len(buf) != 0:
- self.current_frame = None
- n = len(buf)
- buf[:] = self.file_read(n)
- return n
- if n < len(buf):
- raise UnpicklingError(
- "pickle exhausted before end of frame")
- return n
- else:
- n = len(buf)
- buf[:] = self.file_read(n)
- return n
-
+ def readinto(self, buf):
+ if self.current_frame:
+ n = self.current_frame.readinto(buf)
+ if n == 0 and len(buf) != 0:
+ self.current_frame = None
+ n = len(buf)
+ buf[:] = self.file_read(n)
+ return n
+ if n < len(buf):
+ raise UnpicklingError(
+ "pickle exhausted before end of frame")
+ return n
+ else:
+ n = len(buf)
+ buf[:] = self.file_read(n)
+ return n
+
def read(self, n):
if self.current_frame:
data = self.current_frame.read(n)
@@ -339,10 +339,10 @@ def whichmodule(obj, name):
return module_name
# Protect the iteration by using a list copy of sys.modules against dynamic
# modules that trigger imports of other modules upon calls to getattr.
- for module_name, module in sys.modules.copy().items():
- if (module_name == '__main__'
- or module_name == '__mp_main__' # bpo-42406
- or module is None):
+ for module_name, module in sys.modules.copy().items():
+ if (module_name == '__main__'
+ or module_name == '__mp_main__' # bpo-42406
+ or module is None):
continue
try:
if _getattribute(module, name)[0] is obj:
@@ -406,14 +406,14 @@ def decode_long(data):
class _Pickler:
- def __init__(self, file, protocol=None, *, fix_imports=True,
- buffer_callback=None):
+ def __init__(self, file, protocol=None, *, fix_imports=True,
+ buffer_callback=None):
"""This takes a binary file for writing a pickle data stream.
The optional *protocol* argument tells the pickler to use the
- given protocol; supported protocols are 0, 1, 2, 3, 4 and 5.
- The default protocol is 4. It was introduced in Python 3.4, and
- is incompatible with previous versions.
+ given protocol; supported protocols are 0, 1, 2, 3, 4 and 5.
+ The default protocol is 4. It was introduced in Python 3.4, and
+ is incompatible with previous versions.
Specifying a negative protocol version selects the highest
protocol version supported. The higher the protocol used, the
@@ -429,17 +429,17 @@ class _Pickler:
will try to map the new Python 3 names to the old module names
used in Python 2, so that the pickle data stream is readable
with Python 2.
-
- If *buffer_callback* is None (the default), buffer views are
- serialized into *file* as part of the pickle stream.
-
- If *buffer_callback* is not None, then it can be called any number
- of times with a buffer view. If the callback returns a false value
- (such as None), the given buffer is out-of-band; otherwise the
- buffer is serialized in-band, i.e. inside the pickle stream.
-
- It is an error if *buffer_callback* is not None and *protocol*
- is None or smaller than 5.
+
+ If *buffer_callback* is None (the default), buffer views are
+ serialized into *file* as part of the pickle stream.
+
+ If *buffer_callback* is not None, then it can be called any number
+ of times with a buffer view. If the callback returns a false value
+ (such as None), the given buffer is out-of-band; otherwise the
+ buffer is serialized in-band, i.e. inside the pickle stream.
+
+ It is an error if *buffer_callback* is not None and *protocol*
+ is None or smaller than 5.
"""
if protocol is None:
protocol = DEFAULT_PROTOCOL
@@ -447,9 +447,9 @@ class _Pickler:
protocol = HIGHEST_PROTOCOL
elif not 0 <= protocol <= HIGHEST_PROTOCOL:
raise ValueError("pickle protocol must be <= %d" % HIGHEST_PROTOCOL)
- if buffer_callback is not None and protocol < 5:
- raise ValueError("buffer_callback needs protocol >= 5")
- self._buffer_callback = buffer_callback
+ if buffer_callback is not None and protocol < 5:
+ raise ValueError("buffer_callback needs protocol >= 5")
+ self._buffer_callback = buffer_callback
try:
self._file_write = file.write
except AttributeError:
@@ -547,42 +547,42 @@ class _Pickler:
self.write(self.get(x[0]))
return
- rv = NotImplemented
- reduce = getattr(self, "reducer_override", None)
+ rv = NotImplemented
+ reduce = getattr(self, "reducer_override", None)
if reduce is not None:
rv = reduce(obj)
-
- if rv is NotImplemented:
- # Check the type dispatch table
- t = type(obj)
- f = self.dispatch.get(t)
- if f is not None:
- f(self, obj) # Call unbound method with explicit self
+
+ if rv is NotImplemented:
+ # Check the type dispatch table
+ t = type(obj)
+ f = self.dispatch.get(t)
+ if f is not None:
+ f(self, obj) # Call unbound method with explicit self
return
- # Check private dispatch table if any, or else
- # copyreg.dispatch_table
- reduce = getattr(self, 'dispatch_table', dispatch_table).get(t)
+ # Check private dispatch table if any, or else
+ # copyreg.dispatch_table
+ reduce = getattr(self, 'dispatch_table', dispatch_table).get(t)
if reduce is not None:
- rv = reduce(obj)
+ rv = reduce(obj)
else:
- # Check for a class with a custom metaclass; treat as regular
- # class
- if issubclass(t, type):
- self.save_global(obj)
- return
-
- # Check for a __reduce_ex__ method, fall back to __reduce__
- reduce = getattr(obj, "__reduce_ex__", None)
+ # Check for a class with a custom metaclass; treat as regular
+ # class
+ if issubclass(t, type):
+ self.save_global(obj)
+ return
+
+ # Check for a __reduce_ex__ method, fall back to __reduce__
+ reduce = getattr(obj, "__reduce_ex__", None)
if reduce is not None:
- rv = reduce(self.proto)
+ rv = reduce(self.proto)
else:
- reduce = getattr(obj, "__reduce__", None)
- if reduce is not None:
- rv = reduce()
- else:
- raise PicklingError("Can't pickle %r object: %r" %
- (t.__name__, obj))
+ reduce = getattr(obj, "__reduce__", None)
+ if reduce is not None:
+ rv = reduce()
+ else:
+ raise PicklingError("Can't pickle %r object: %r" %
+ (t.__name__, obj))
# Check for string returned by reduce(), meaning "save as global"
if isinstance(rv, str):
@@ -595,9 +595,9 @@ class _Pickler:
# Assert that it returned an appropriately sized tuple
l = len(rv)
- if not (2 <= l <= 6):
+ if not (2 <= l <= 6):
raise PicklingError("Tuple returned by %s must have "
- "two to six elements" % reduce)
+ "two to six elements" % reduce)
# Save the reduce() output and finally memoize the object
self.save_reduce(obj=obj, *rv)
@@ -619,7 +619,7 @@ class _Pickler:
"persistent IDs in protocol 0 must be ASCII strings")
def save_reduce(self, func, args, state=None, listitems=None,
- dictitems=None, state_setter=None, obj=None):
+ dictitems=None, state_setter=None, obj=None):
# This API is called by some subclasses
if not isinstance(args, tuple):
@@ -713,25 +713,25 @@ class _Pickler:
self._batch_setitems(dictitems)
if state is not None:
- if state_setter is None:
- save(state)
- write(BUILD)
- else:
- # If a state_setter is specified, call it instead of load_build
- # to update obj's with its previous state.
- # First, push state_setter and its tuple of expected arguments
- # (obj, state) onto the stack.
- save(state_setter)
- save(obj) # simple BINGET opcode as obj is already memoized.
- save(state)
- write(TUPLE2)
- # Trigger a state_setter(obj, state) function call.
- write(REDUCE)
- # The purpose of state_setter is to carry-out an
- # inplace modification of obj. We do not care about what the
- # method might return, so its output is eventually removed from
- # the stack.
- write(POP)
+ if state_setter is None:
+ save(state)
+ write(BUILD)
+ else:
+ # If a state_setter is specified, call it instead of load_build
+ # to update obj's with its previous state.
+ # First, push state_setter and its tuple of expected arguments
+ # (obj, state) onto the stack.
+ save(state_setter)
+ save(obj) # simple BINGET opcode as obj is already memoized.
+ save(state)
+ write(TUPLE2)
+ # Trigger a state_setter(obj, state) function call.
+ write(REDUCE)
+ # The purpose of state_setter is to carry-out an
+ # inplace modification of obj. We do not care about what the
+ # method might return, so its output is eventually removed from
+ # the stack.
+ write(POP)
# Methods below this point are dispatched through the dispatch table
@@ -806,47 +806,47 @@ class _Pickler:
self.memoize(obj)
dispatch[bytes] = save_bytes
- def save_bytearray(self, obj):
- if self.proto < 5:
- if not obj: # bytearray is empty
- self.save_reduce(bytearray, (), obj=obj)
- else:
- self.save_reduce(bytearray, (bytes(obj),), obj=obj)
- return
- n = len(obj)
- if n >= self.framer._FRAME_SIZE_TARGET:
- self._write_large_bytes(BYTEARRAY8 + pack("<Q", n), obj)
- else:
- self.write(BYTEARRAY8 + pack("<Q", n) + obj)
- dispatch[bytearray] = save_bytearray
-
- if _HAVE_PICKLE_BUFFER:
- def save_picklebuffer(self, obj):
- if self.proto < 5:
- raise PicklingError("PickleBuffer can only pickled with "
- "protocol >= 5")
- with obj.raw() as m:
- if not m.contiguous:
- raise PicklingError("PickleBuffer can not be pickled when "
- "pointing to a non-contiguous buffer")
- in_band = True
- if self._buffer_callback is not None:
- in_band = bool(self._buffer_callback(obj))
- if in_band:
- # Write data in-band
- # XXX The C implementation avoids a copy here
- if m.readonly:
- self.save_bytes(m.tobytes())
- else:
- self.save_bytearray(m.tobytes())
- else:
- # Write data out-of-band
- self.write(NEXT_BUFFER)
- if m.readonly:
- self.write(READONLY_BUFFER)
-
- dispatch[PickleBuffer] = save_picklebuffer
-
+ def save_bytearray(self, obj):
+ if self.proto < 5:
+ if not obj: # bytearray is empty
+ self.save_reduce(bytearray, (), obj=obj)
+ else:
+ self.save_reduce(bytearray, (bytes(obj),), obj=obj)
+ return
+ n = len(obj)
+ if n >= self.framer._FRAME_SIZE_TARGET:
+ self._write_large_bytes(BYTEARRAY8 + pack("<Q", n), obj)
+ else:
+ self.write(BYTEARRAY8 + pack("<Q", n) + obj)
+ dispatch[bytearray] = save_bytearray
+
+ if _HAVE_PICKLE_BUFFER:
+ def save_picklebuffer(self, obj):
+ if self.proto < 5:
+ raise PicklingError("PickleBuffer can only pickled with "
+ "protocol >= 5")
+ with obj.raw() as m:
+ if not m.contiguous:
+ raise PicklingError("PickleBuffer can not be pickled when "
+ "pointing to a non-contiguous buffer")
+ in_band = True
+ if self._buffer_callback is not None:
+ in_band = bool(self._buffer_callback(obj))
+ if in_band:
+ # Write data in-band
+ # XXX The C implementation avoids a copy here
+ if m.readonly:
+ self.save_bytes(m.tobytes())
+ else:
+ self.save_bytearray(m.tobytes())
+ else:
+ # Write data out-of-band
+ self.write(NEXT_BUFFER)
+ if m.readonly:
+ self.write(READONLY_BUFFER)
+
+ dispatch[PickleBuffer] = save_picklebuffer
+
def save_str(self, obj):
if self.bin:
encoded = obj.encode('utf-8', 'surrogatepass')
@@ -861,10 +861,10 @@ class _Pickler:
self.write(BINUNICODE + pack("<I", n) + encoded)
else:
obj = obj.replace("\\", "\\u005c")
- obj = obj.replace("\0", "\\u0000")
+ obj = obj.replace("\0", "\\u0000")
obj = obj.replace("\n", "\\u000a")
- obj = obj.replace("\r", "\\u000d")
- obj = obj.replace("\x1a", "\\u001a") # EOF on DOS
+ obj = obj.replace("\r", "\\u000d")
+ obj = obj.replace("\x1a", "\\u001a") # EOF on DOS
self.write(UNICODE + obj.encode('raw-unicode-escape') +
b'\n')
self.memoize(obj)
@@ -1136,7 +1136,7 @@ class _Pickler:
class _Unpickler:
def __init__(self, file, *, fix_imports=True,
- encoding="ASCII", errors="strict", buffers=None):
+ encoding="ASCII", errors="strict", buffers=None):
"""This takes a binary file for reading a pickle data stream.
The protocol version of the pickle is detected automatically, so
@@ -1155,26 +1155,26 @@ class _Unpickler:
reading, a BytesIO object, or any other custom object that
meets this interface.
- If *buffers* is not None, it should be an iterable of buffer-enabled
- objects that is consumed each time the pickle stream references
- an out-of-band buffer view. Such buffers have been given in order
- to the *buffer_callback* of a Pickler object.
-
- If *buffers* is None (the default), then the buffers are taken
- from the pickle stream, assuming they are serialized there.
- It is an error for *buffers* to be None if the pickle stream
- was produced with a non-None *buffer_callback*.
-
- Other optional arguments are *fix_imports*, *encoding* and
+ If *buffers* is not None, it should be an iterable of buffer-enabled
+ objects that is consumed each time the pickle stream references
+ an out-of-band buffer view. Such buffers have been given in order
+ to the *buffer_callback* of a Pickler object.
+
+ If *buffers* is None (the default), then the buffers are taken
+ from the pickle stream, assuming they are serialized there.
+ It is an error for *buffers* to be None if the pickle stream
+ was produced with a non-None *buffer_callback*.
+
+ Other optional arguments are *fix_imports*, *encoding* and
*errors*, which are used to control compatibility support for
pickle stream generated by Python 2. If *fix_imports* is True,
pickle will try to map the old Python 2 names to the new names
used in Python 3. The *encoding* and *errors* tell pickle how
to decode 8-bit string instances pickled by Python 2; these
default to 'ASCII' and 'strict', respectively. *encoding* can be
- 'bytes' to read these 8-bit string instances as bytes objects.
+ 'bytes' to read these 8-bit string instances as bytes objects.
"""
- self._buffers = iter(buffers) if buffers is not None else None
+ self._buffers = iter(buffers) if buffers is not None else None
self._file_readline = file.readline
self._file_read = file.read
self.memo = {}
@@ -1195,7 +1195,7 @@ class _Unpickler:
"%s.__init__()" % (self.__class__.__name__,))
self._unframer = _Unframer(self._file_read, self._file_readline)
self.read = self._unframer.read
- self.readinto = self._unframer.readinto
+ self.readinto = self._unframer.readinto
self.readline = self._unframer.readline
self.metastack = []
self.stack = []
@@ -1382,34 +1382,34 @@ class _Unpickler:
self.append(self.read(len))
dispatch[BINBYTES8[0]] = load_binbytes8
- def load_bytearray8(self):
- len, = unpack('<Q', self.read(8))
- if len > maxsize:
- raise UnpicklingError("BYTEARRAY8 exceeds system's maximum size "
- "of %d bytes" % maxsize)
- b = bytearray(len)
- self.readinto(b)
- self.append(b)
- dispatch[BYTEARRAY8[0]] = load_bytearray8
-
- def load_next_buffer(self):
- if self._buffers is None:
- raise UnpicklingError("pickle stream refers to out-of-band data "
- "but no *buffers* argument was given")
- try:
- buf = next(self._buffers)
- except StopIteration:
- raise UnpicklingError("not enough out-of-band buffers")
- self.append(buf)
- dispatch[NEXT_BUFFER[0]] = load_next_buffer
-
- def load_readonly_buffer(self):
- buf = self.stack[-1]
- with memoryview(buf) as m:
- if not m.readonly:
- self.stack[-1] = m.toreadonly()
- dispatch[READONLY_BUFFER[0]] = load_readonly_buffer
-
+ def load_bytearray8(self):
+ len, = unpack('<Q', self.read(8))
+ if len > maxsize:
+ raise UnpicklingError("BYTEARRAY8 exceeds system's maximum size "
+ "of %d bytes" % maxsize)
+ b = bytearray(len)
+ self.readinto(b)
+ self.append(b)
+ dispatch[BYTEARRAY8[0]] = load_bytearray8
+
+ def load_next_buffer(self):
+ if self._buffers is None:
+ raise UnpicklingError("pickle stream refers to out-of-band data "
+ "but no *buffers* argument was given")
+ try:
+ buf = next(self._buffers)
+ except StopIteration:
+ raise UnpicklingError("not enough out-of-band buffers")
+ self.append(buf)
+ dispatch[NEXT_BUFFER[0]] = load_next_buffer
+
+ def load_readonly_buffer(self):
+ buf = self.stack[-1]
+ with memoryview(buf) as m:
+ if not m.readonly:
+ self.stack[-1] = m.toreadonly()
+ dispatch[READONLY_BUFFER[0]] = load_readonly_buffer
+
def load_short_binstring(self):
len = self.read(1)[0]
data = self.read(len)
@@ -1570,7 +1570,7 @@ class _Unpickler:
def find_class(self, module, name):
# Subclasses may override this.
- sys.audit('pickle.find_class', module, name)
+ sys.audit('pickle.find_class', module, name)
if self.proto < 3 and self.fix_imports:
if (module, name) in _compat_pickle.NAME_MAPPING:
module, name = _compat_pickle.NAME_MAPPING[(module, name)]
@@ -1606,29 +1606,29 @@ class _Unpickler:
def load_get(self):
i = int(self.readline()[:-1])
- try:
- self.append(self.memo[i])
- except KeyError:
- msg = f'Memo value not found at index {i}'
- raise UnpicklingError(msg) from None
+ try:
+ self.append(self.memo[i])
+ except KeyError:
+ msg = f'Memo value not found at index {i}'
+ raise UnpicklingError(msg) from None
dispatch[GET[0]] = load_get
def load_binget(self):
i = self.read(1)[0]
- try:
- self.append(self.memo[i])
- except KeyError as exc:
- msg = f'Memo value not found at index {i}'
- raise UnpicklingError(msg) from None
+ try:
+ self.append(self.memo[i])
+ except KeyError as exc:
+ msg = f'Memo value not found at index {i}'
+ raise UnpicklingError(msg) from None
dispatch[BINGET[0]] = load_binget
def load_long_binget(self):
i, = unpack('<I', self.read(4))
- try:
- self.append(self.memo[i])
- except KeyError as exc:
- msg = f'Memo value not found at index {i}'
- raise UnpicklingError(msg) from None
+ try:
+ self.append(self.memo[i])
+ except KeyError as exc:
+ msg = f'Memo value not found at index {i}'
+ raise UnpicklingError(msg) from None
dispatch[LONG_BINGET[0]] = load_long_binget
def load_put(self):
@@ -1746,29 +1746,29 @@ class _Unpickler:
# Shorthands
-def _dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None):
- _Pickler(file, protocol, fix_imports=fix_imports,
- buffer_callback=buffer_callback).dump(obj)
+def _dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None):
+ _Pickler(file, protocol, fix_imports=fix_imports,
+ buffer_callback=buffer_callback).dump(obj)
-def _dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None):
+def _dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None):
f = io.BytesIO()
- _Pickler(f, protocol, fix_imports=fix_imports,
- buffer_callback=buffer_callback).dump(obj)
+ _Pickler(f, protocol, fix_imports=fix_imports,
+ buffer_callback=buffer_callback).dump(obj)
res = f.getvalue()
assert isinstance(res, bytes_types)
return res
-def _load(file, *, fix_imports=True, encoding="ASCII", errors="strict",
- buffers=None):
- return _Unpickler(file, fix_imports=fix_imports, buffers=buffers,
+def _load(file, *, fix_imports=True, encoding="ASCII", errors="strict",
+ buffers=None):
+ return _Unpickler(file, fix_imports=fix_imports, buffers=buffers,
encoding=encoding, errors=errors).load()
-def _loads(s, /, *, fix_imports=True, encoding="ASCII", errors="strict",
- buffers=None):
+def _loads(s, /, *, fix_imports=True, encoding="ASCII", errors="strict",
+ buffers=None):
if isinstance(s, str):
raise TypeError("Can't load pickle from unicode string")
file = io.BytesIO(s)
- return _Unpickler(file, fix_imports=fix_imports, buffers=buffers,
+ return _Unpickler(file, fix_imports=fix_imports, buffers=buffers,
encoding=encoding, errors=errors).load()
# Use the faster _pickle if possible
diff --git a/contrib/tools/python3/src/Lib/pickletools.py b/contrib/tools/python3/src/Lib/pickletools.py
index 565b8ceeae..95706e746c 100644
--- a/contrib/tools/python3/src/Lib/pickletools.py
+++ b/contrib/tools/python3/src/Lib/pickletools.py
@@ -565,41 +565,41 @@ bytes8 = ArgumentDescriptor(
the number of bytes, and the second argument is that many bytes.
""")
-
-def read_bytearray8(f):
- r"""
- >>> import io, struct, sys
- >>> read_bytearray8(io.BytesIO(b"\x00\x00\x00\x00\x00\x00\x00\x00abc"))
- bytearray(b'')
- >>> read_bytearray8(io.BytesIO(b"\x03\x00\x00\x00\x00\x00\x00\x00abcdef"))
- bytearray(b'abc')
- >>> bigsize8 = struct.pack("<Q", sys.maxsize//3)
- >>> read_bytearray8(io.BytesIO(bigsize8 + b"abcdef")) #doctest: +ELLIPSIS
- Traceback (most recent call last):
- ...
- ValueError: expected ... bytes in a bytearray8, but only 6 remain
- """
-
- n = read_uint8(f)
- assert n >= 0
- if n > sys.maxsize:
- raise ValueError("bytearray8 byte count > sys.maxsize: %d" % n)
- data = f.read(n)
- if len(data) == n:
- return bytearray(data)
- raise ValueError("expected %d bytes in a bytearray8, but only %d remain" %
- (n, len(data)))
-
-bytearray8 = ArgumentDescriptor(
- name="bytearray8",
- n=TAKEN_FROM_ARGUMENT8U,
- reader=read_bytearray8,
- doc="""A counted bytearray.
-
- The first argument is an 8-byte little-endian unsigned int giving
- the number of bytes, and the second argument is that many bytes.
- """)
-
+
+def read_bytearray8(f):
+ r"""
+ >>> import io, struct, sys
+ >>> read_bytearray8(io.BytesIO(b"\x00\x00\x00\x00\x00\x00\x00\x00abc"))
+ bytearray(b'')
+ >>> read_bytearray8(io.BytesIO(b"\x03\x00\x00\x00\x00\x00\x00\x00abcdef"))
+ bytearray(b'abc')
+ >>> bigsize8 = struct.pack("<Q", sys.maxsize//3)
+ >>> read_bytearray8(io.BytesIO(bigsize8 + b"abcdef")) #doctest: +ELLIPSIS
+ Traceback (most recent call last):
+ ...
+ ValueError: expected ... bytes in a bytearray8, but only 6 remain
+ """
+
+ n = read_uint8(f)
+ assert n >= 0
+ if n > sys.maxsize:
+ raise ValueError("bytearray8 byte count > sys.maxsize: %d" % n)
+ data = f.read(n)
+ if len(data) == n:
+ return bytearray(data)
+ raise ValueError("expected %d bytes in a bytearray8, but only %d remain" %
+ (n, len(data)))
+
+bytearray8 = ArgumentDescriptor(
+ name="bytearray8",
+ n=TAKEN_FROM_ARGUMENT8U,
+ reader=read_bytearray8,
+ doc="""A counted bytearray.
+
+ The first argument is an 8-byte little-endian unsigned int giving
+ the number of bytes, and the second argument is that many bytes.
+ """)
+
def read_unicodestringnl(f):
r"""
>>> import io
@@ -1005,11 +1005,11 @@ pybytes = StackObject(
obtype=bytes,
doc="A Python bytes object.")
-pybytearray = StackObject(
- name='bytearray',
- obtype=bytearray,
- doc="A Python bytearray object.")
-
+pybytearray = StackObject(
+ name='bytearray',
+ obtype=bytearray,
+ doc="A Python bytearray object.")
+
pyunicode = StackObject(
name='str',
obtype=str,
@@ -1045,11 +1045,11 @@ pyfrozenset = StackObject(
obtype=set,
doc="A Python frozenset object.")
-pybuffer = StackObject(
- name='buffer',
- obtype=object,
- doc="A Python buffer-like object.")
-
+pybuffer = StackObject(
+ name='buffer',
+ obtype=object,
+ doc="A Python buffer-like object.")
+
anyobject = StackObject(
name='any',
obtype=object,
@@ -1310,7 +1310,7 @@ opcodes = [
object instead.
"""),
- # Bytes (protocol 3 and higher)
+ # Bytes (protocol 3 and higher)
I(name='BINBYTES',
code='B',
@@ -1351,39 +1351,39 @@ opcodes = [
which are taken literally as the string content.
"""),
- # Bytearray (protocol 5 and higher)
-
- I(name='BYTEARRAY8',
- code='\x96',
- arg=bytearray8,
- stack_before=[],
- stack_after=[pybytearray],
- proto=5,
- doc="""Push a Python bytearray object.
-
- There are two arguments: the first is an 8-byte unsigned int giving
- the number of bytes in the bytearray, and the second is that many bytes,
- which are taken literally as the bytearray content.
- """),
-
- # Out-of-band buffer (protocol 5 and higher)
-
- I(name='NEXT_BUFFER',
- code='\x97',
- arg=None,
- stack_before=[],
- stack_after=[pybuffer],
- proto=5,
- doc="Push an out-of-band buffer object."),
-
- I(name='READONLY_BUFFER',
- code='\x98',
- arg=None,
- stack_before=[pybuffer],
- stack_after=[pybuffer],
- proto=5,
- doc="Make an out-of-band buffer object read-only."),
-
+ # Bytearray (protocol 5 and higher)
+
+ I(name='BYTEARRAY8',
+ code='\x96',
+ arg=bytearray8,
+ stack_before=[],
+ stack_after=[pybytearray],
+ proto=5,
+ doc="""Push a Python bytearray object.
+
+ There are two arguments: the first is an 8-byte unsigned int giving
+ the number of bytes in the bytearray, and the second is that many bytes,
+ which are taken literally as the bytearray content.
+ """),
+
+ # Out-of-band buffer (protocol 5 and higher)
+
+ I(name='NEXT_BUFFER',
+ code='\x97',
+ arg=None,
+ stack_before=[],
+ stack_after=[pybuffer],
+ proto=5,
+ doc="Push an out-of-band buffer object."),
+
+ I(name='READONLY_BUFFER',
+ code='\x98',
+ arg=None,
+ stack_before=[pybuffer],
+ stack_after=[pybuffer],
+ proto=5,
+ doc="Make an out-of-band buffer object read-only."),
+
# Ways to spell None.
I(name='NONE',
diff --git a/contrib/tools/python3/src/Lib/pkgutil.py b/contrib/tools/python3/src/Lib/pkgutil.py
index c1e5e9239c..9608d0e0ed 100644
--- a/contrib/tools/python3/src/Lib/pkgutil.py
+++ b/contrib/tools/python3/src/Lib/pkgutil.py
@@ -7,7 +7,7 @@ import importlib.util
import importlib.machinery
import os
import os.path
-import re
+import re
import sys
from types import ModuleType
import warnings
@@ -412,7 +412,7 @@ def get_importer(path_item):
The cache (or part of it) can be cleared manually if a
rescan of sys.path_hooks is necessary.
"""
- path_item = os.fsdecode(path_item)
+ path_item = os.fsdecode(path_item)
try:
importer = sys.path_importer_cache[path_item]
except KeyError:
@@ -637,72 +637,72 @@ def get_data(package, resource):
parts.insert(0, os.path.dirname(mod.__file__))
resource_name = os.path.join(*parts)
return loader.get_data(resource_name)
-
-
-_DOTTED_WORDS = r'(?!\d)(\w+)(\.(?!\d)(\w+))*'
-_NAME_PATTERN = re.compile(f'^(?P<pkg>{_DOTTED_WORDS})(?P<cln>:(?P<obj>{_DOTTED_WORDS})?)?$', re.U)
-del _DOTTED_WORDS
-
-def resolve_name(name):
- """
- Resolve a name to an object.
-
- It is expected that `name` will be a string in one of the following
- formats, where W is shorthand for a valid Python identifier and dot stands
- for a literal period in these pseudo-regexes:
-
- W(.W)*
- W(.W)*:(W(.W)*)?
-
- The first form is intended for backward compatibility only. It assumes that
- some part of the dotted name is a package, and the rest is an object
- somewhere within that package, possibly nested inside other objects.
- Because the place where the package stops and the object hierarchy starts
- can't be inferred by inspection, repeated attempts to import must be done
- with this form.
-
- In the second form, the caller makes the division point clear through the
- provision of a single colon: the dotted name to the left of the colon is a
- package to be imported, and the dotted name to the right is the object
- hierarchy within that package. Only one import is needed in this form. If
- it ends with the colon, then a module object is returned.
-
- The function will return an object (which might be a module), or raise one
- of the following exceptions:
-
- ValueError - if `name` isn't in a recognised format
- ImportError - if an import failed when it shouldn't have
- AttributeError - if a failure occurred when traversing the object hierarchy
- within the imported package to get to the desired object.
- """
- m = _NAME_PATTERN.match(name)
- if not m:
- raise ValueError(f'invalid format: {name!r}')
- gd = m.groupdict()
- if gd.get('cln'):
- # there is a colon - a one-step import is all that's needed
- mod = importlib.import_module(gd['pkg'])
- parts = gd.get('obj')
- parts = parts.split('.') if parts else []
- else:
- # no colon - have to iterate to find the package boundary
- parts = name.split('.')
- modname = parts.pop(0)
- # first part *must* be a module/package.
- mod = importlib.import_module(modname)
- while parts:
- p = parts[0]
- s = f'{modname}.{p}'
- try:
- mod = importlib.import_module(s)
- parts.pop(0)
- modname = s
- except ImportError:
- break
- # if we reach this point, mod is the module, already imported, and
- # parts is the list of parts in the object hierarchy to be traversed, or
- # an empty list if just the module is wanted.
- result = mod
- for p in parts:
- result = getattr(result, p)
- return result
+
+
+_DOTTED_WORDS = r'(?!\d)(\w+)(\.(?!\d)(\w+))*'
+_NAME_PATTERN = re.compile(f'^(?P<pkg>{_DOTTED_WORDS})(?P<cln>:(?P<obj>{_DOTTED_WORDS})?)?$', re.U)
+del _DOTTED_WORDS
+
+def resolve_name(name):
+ """
+ Resolve a name to an object.
+
+ It is expected that `name` will be a string in one of the following
+ formats, where W is shorthand for a valid Python identifier and dot stands
+ for a literal period in these pseudo-regexes:
+
+ W(.W)*
+ W(.W)*:(W(.W)*)?
+
+ The first form is intended for backward compatibility only. It assumes that
+ some part of the dotted name is a package, and the rest is an object
+ somewhere within that package, possibly nested inside other objects.
+ Because the place where the package stops and the object hierarchy starts
+ can't be inferred by inspection, repeated attempts to import must be done
+ with this form.
+
+ In the second form, the caller makes the division point clear through the
+ provision of a single colon: the dotted name to the left of the colon is a
+ package to be imported, and the dotted name to the right is the object
+ hierarchy within that package. Only one import is needed in this form. If
+ it ends with the colon, then a module object is returned.
+
+ The function will return an object (which might be a module), or raise one
+ of the following exceptions:
+
+ ValueError - if `name` isn't in a recognised format
+ ImportError - if an import failed when it shouldn't have
+ AttributeError - if a failure occurred when traversing the object hierarchy
+ within the imported package to get to the desired object.
+ """
+ m = _NAME_PATTERN.match(name)
+ if not m:
+ raise ValueError(f'invalid format: {name!r}')
+ gd = m.groupdict()
+ if gd.get('cln'):
+ # there is a colon - a one-step import is all that's needed
+ mod = importlib.import_module(gd['pkg'])
+ parts = gd.get('obj')
+ parts = parts.split('.') if parts else []
+ else:
+ # no colon - have to iterate to find the package boundary
+ parts = name.split('.')
+ modname = parts.pop(0)
+ # first part *must* be a module/package.
+ mod = importlib.import_module(modname)
+ while parts:
+ p = parts[0]
+ s = f'{modname}.{p}'
+ try:
+ mod = importlib.import_module(s)
+ parts.pop(0)
+ modname = s
+ except ImportError:
+ break
+ # if we reach this point, mod is the module, already imported, and
+ # parts is the list of parts in the object hierarchy to be traversed, or
+ # an empty list if just the module is wanted.
+ result = mod
+ for p in parts:
+ result = getattr(result, p)
+ return result
diff --git a/contrib/tools/python3/src/Lib/platform.py b/contrib/tools/python3/src/Lib/platform.py
index 4eb936017c..d6412e169b 100644
--- a/contrib/tools/python3/src/Lib/platform.py
+++ b/contrib/tools/python3/src/Lib/platform.py
@@ -72,7 +72,7 @@
# type information
# 0.4.0 - added win32_ver() and modified the platform() output for WinXX
# 0.3.4 - fixed a bug in _follow_symlinks()
-# 0.3.3 - fixed popen() and "file" command invocation bugs
+# 0.3.3 - fixed popen() and "file" command invocation bugs
# 0.3.2 - added architecture() API and support for it in platform()
# 0.3.1 - fixed syscmd_ver() RE to support Windows NT
# 0.3.0 - added system alias support
@@ -113,12 +113,12 @@ __copyright__ = """
__version__ = '1.0.8'
import collections
-import os
-import re
-import sys
-import subprocess
-import functools
-import itertools
+import os
+import re
+import sys
+import subprocess
+import functools
+import itertools
### Globals & Constants
@@ -159,7 +159,7 @@ _libc_search = re.compile(b'(__libc_init)'
b'|'
br'(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)', re.ASCII)
-def libc_ver(executable=None, lib='', version='', chunksize=16384):
+def libc_ver(executable=None, lib='', version='', chunksize=16384):
""" Tries to determine the libc version that the file executable
(which defaults to the Python interpreter) is linked against.
@@ -174,19 +174,19 @@ def libc_ver(executable=None, lib='', version='', chunksize=16384):
The file is read and scanned in chunks of chunksize bytes.
"""
- if executable is None:
- try:
- ver = os.confstr('CS_GNU_LIBC_VERSION')
- # parse 'glibc 2.28' as ('glibc', '2.28')
- parts = ver.split(maxsplit=1)
- if len(parts) == 2:
- return tuple(parts)
- except (AttributeError, ValueError, OSError):
- # os.confstr() or CS_GNU_LIBC_VERSION value not available
- pass
-
- executable = sys.executable
-
+ if executable is None:
+ try:
+ ver = os.confstr('CS_GNU_LIBC_VERSION')
+ # parse 'glibc 2.28' as ('glibc', '2.28')
+ parts = ver.split(maxsplit=1)
+ if len(parts) == 2:
+ return tuple(parts)
+ except (AttributeError, ValueError, OSError):
+ # os.confstr() or CS_GNU_LIBC_VERSION value not available
+ pass
+
+ executable = sys.executable
+
V = _comparable_version
if hasattr(os.path, 'realpath'):
# Python 2.2 introduced os.path.realpath(); it is used
@@ -239,7 +239,7 @@ def _norm_version(version, build=''):
if build:
l.append(build)
try:
- strings = list(map(str, map(int, l)))
+ strings = list(map(str, map(int, l)))
except ValueError:
strings = l
version = '.'.join(strings[:3])
@@ -276,16 +276,16 @@ def _syscmd_ver(system='', release='', version='',
return system, release, version
# Try some common cmd strings
- import subprocess
+ import subprocess
for cmd in ('ver', 'command /c ver', 'cmd /c ver'):
try:
- info = subprocess.check_output(cmd,
- stdin=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL,
- text=True,
- shell=True)
- except (OSError, subprocess.CalledProcessError) as why:
- #print('Command %s failed: %s' % (cmd, why))
+ info = subprocess.check_output(cmd,
+ stdin=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL,
+ text=True,
+ shell=True)
+ except (OSError, subprocess.CalledProcessError) as why:
+ #print('Command %s failed: %s' % (cmd, why))
continue
else:
break
@@ -336,27 +336,27 @@ _WIN32_SERVER_RELEASES = {
(6, None): "post2012ServerR2",
}
-def win32_is_iot():
- return win32_edition() in ('IoTUAP', 'NanoServer', 'WindowsCoreHeadless', 'IoTEdgeOS')
-
-def win32_edition():
- try:
- try:
- import winreg
- except ImportError:
- import _winreg as winreg
- except ImportError:
- pass
- else:
- try:
- cvkey = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
- with winreg.OpenKeyEx(winreg.HKEY_LOCAL_MACHINE, cvkey) as key:
- return winreg.QueryValueEx(key, 'EditionId')[0]
- except OSError:
- pass
-
- return None
-
+def win32_is_iot():
+ return win32_edition() in ('IoTUAP', 'NanoServer', 'WindowsCoreHeadless', 'IoTEdgeOS')
+
+def win32_edition():
+ try:
+ try:
+ import winreg
+ except ImportError:
+ import _winreg as winreg
+ except ImportError:
+ pass
+ else:
+ try:
+ cvkey = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
+ with winreg.OpenKeyEx(winreg.HKEY_LOCAL_MACHINE, cvkey) as key:
+ return winreg.QueryValueEx(key, 'EditionId')[0]
+ except OSError:
+ pass
+
+ return None
+
def win32_ver(release='', version='', csd='', ptype=''):
try:
from sys import getwindowsversion
@@ -364,20 +364,20 @@ def win32_ver(release='', version='', csd='', ptype=''):
return release, version, csd, ptype
winver = getwindowsversion()
- try:
- major, minor, build = map(int, _syscmd_ver()[2].split('.'))
- except ValueError:
- major, minor, build = winver.platform_version or winver[:3]
- version = '{0}.{1}.{2}'.format(major, minor, build)
-
- release = (_WIN32_CLIENT_RELEASES.get((major, minor)) or
- _WIN32_CLIENT_RELEASES.get((major, None)) or
+ try:
+ major, minor, build = map(int, _syscmd_ver()[2].split('.'))
+ except ValueError:
+ major, minor, build = winver.platform_version or winver[:3]
+ version = '{0}.{1}.{2}'.format(major, minor, build)
+
+ release = (_WIN32_CLIENT_RELEASES.get((major, minor)) or
+ _WIN32_CLIENT_RELEASES.get((major, None)) or
release)
# getwindowsversion() reflect the compatibility mode Python is
# running under, and so the service pack value is only going to be
# valid if the versions match.
- if winver[:2] == (major, minor):
+ if winver[:2] == (major, minor):
try:
csd = 'SP{}'.format(winver.service_pack_major)
except AttributeError:
@@ -386,24 +386,24 @@ def win32_ver(release='', version='', csd='', ptype=''):
# VER_NT_SERVER = 3
if getattr(winver, 'product_type', None) == 3:
- release = (_WIN32_SERVER_RELEASES.get((major, minor)) or
- _WIN32_SERVER_RELEASES.get((major, None)) or
+ release = (_WIN32_SERVER_RELEASES.get((major, minor)) or
+ _WIN32_SERVER_RELEASES.get((major, None)) or
release)
try:
- try:
- import winreg
- except ImportError:
- import _winreg as winreg
- except ImportError:
+ try:
+ import winreg
+ except ImportError:
+ import _winreg as winreg
+ except ImportError:
pass
- else:
- try:
- cvkey = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
- with winreg.OpenKeyEx(winreg.HKEY_LOCAL_MACHINE, cvkey) as key:
- ptype = winreg.QueryValueEx(key, 'CurrentType')[0]
- except OSError:
- pass
+ else:
+ try:
+ cvkey = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion'
+ with winreg.OpenKeyEx(winreg.HKEY_LOCAL_MACHINE, cvkey) as key:
+ ptype = winreg.QueryValueEx(key, 'CurrentType')[0]
+ except OSError:
+ pass
return release, version, csd, ptype
@@ -432,7 +432,7 @@ def _mac_ver_xml():
def mac_ver(release='', versioninfo=('', '', ''), machine=''):
- """ Get macOS version information and return it as tuple (release,
+ """ Get macOS version information and return it as tuple (release,
versioninfo, machine) with versioninfo being a tuple (version,
dev_stage, non_release_version).
@@ -504,7 +504,7 @@ def system_alias(system, release, version):
where it would otherwise cause confusion.
"""
- if system == 'SunOS':
+ if system == 'SunOS':
# Sun's OS
if release < '5':
# These releases use the old name SunOS
@@ -540,9 +540,9 @@ def system_alias(system, release, version):
# In case one of the other tricks
system = 'Windows'
- # bpo-35516: Don't replace Darwin with macOS since input release and
- # version arguments can be different than the currently running version.
-
+ # bpo-35516: Don't replace Darwin with macOS since input release and
+ # version arguments can be different than the currently running version.
+
return system, release, version
### Various internal helpers
@@ -618,24 +618,24 @@ def _syscmd_file(target, default=''):
if sys.platform in ('dos', 'win32', 'win16'):
# XXX Others too ?
return default
-
- import subprocess
+
+ import subprocess
target = _follow_symlinks(target)
- # "file" output is locale dependent: force the usage of the C locale
- # to get deterministic behavior.
- env = dict(os.environ, LC_ALL='C')
+ # "file" output is locale dependent: force the usage of the C locale
+ # to get deterministic behavior.
+ env = dict(os.environ, LC_ALL='C')
try:
- # -b: do not prepend filenames to output lines (brief mode)
- output = subprocess.check_output(['file', '-b', target],
- stderr=subprocess.DEVNULL,
- env=env)
- except (OSError, subprocess.CalledProcessError):
+ # -b: do not prepend filenames to output lines (brief mode)
+ output = subprocess.check_output(['file', '-b', target],
+ stderr=subprocess.DEVNULL,
+ env=env)
+ except (OSError, subprocess.CalledProcessError):
return default
- if not output:
+ if not output:
return default
- # With the C locale, the output should be mostly ASCII-compatible.
- # Decode from Latin-1 to prevent Unicode decode error.
- return output.decode('latin-1')
+ # With the C locale, the output should be mostly ASCII-compatible.
+ # Decode from Latin-1 to prevent Unicode decode error.
+ return output.decode('latin-1')
### Information about the used architecture
@@ -672,8 +672,8 @@ def architecture(executable=sys.executable, bits='', linkage=''):
# else is given as default.
if not bits:
import struct
- size = struct.calcsize('P')
- bits = str(size * 8) + 'bit'
+ size = struct.calcsize('P')
+ bits = str(size * 8) + 'bit'
# Get data from the 'file' system command
if executable:
@@ -693,7 +693,7 @@ def architecture(executable=sys.executable, bits='', linkage=''):
linkage = l
return bits, linkage
- if 'executable' not in fileout and 'shared object' not in fileout:
+ if 'executable' not in fileout and 'shared object' not in fileout:
# Format not supported
return bits, linkage
@@ -725,103 +725,103 @@ def architecture(executable=sys.executable, bits='', linkage=''):
return bits, linkage
-
-def _get_machine_win32():
- # Try to use the PROCESSOR_* environment variables
- # available on Win XP and later; see
- # http://support.microsoft.com/kb/888731 and
- # http://www.geocities.com/rick_lively/MANUALS/ENV/MSWIN/PROCESSI.HTM
-
- # WOW64 processes mask the native architecture
- return (
- os.environ.get('PROCESSOR_ARCHITEW6432', '') or
- os.environ.get('PROCESSOR_ARCHITECTURE', '')
- )
-
-
-class _Processor:
- @classmethod
- def get(cls):
- func = getattr(cls, f'get_{sys.platform}', cls.from_subprocess)
- return func() or ''
-
- def get_win32():
- return os.environ.get('PROCESSOR_IDENTIFIER', _get_machine_win32())
-
- def get_OpenVMS():
- try:
- import vms_lib
- except ImportError:
- pass
- else:
- csid, cpu_number = vms_lib.getsyi('SYI$_CPU', 0)
- return 'Alpha' if cpu_number >= 128 else 'VAX'
-
- def from_subprocess():
- """
- Fall back to `uname -p`
- """
- try:
- return subprocess.check_output(
- ['uname', '-p'],
- stderr=subprocess.DEVNULL,
- text=True,
- ).strip()
- except (OSError, subprocess.CalledProcessError):
- pass
-
-
-def _unknown_as_blank(val):
- return '' if val == 'unknown' else val
-
-
+
+def _get_machine_win32():
+ # Try to use the PROCESSOR_* environment variables
+ # available on Win XP and later; see
+ # http://support.microsoft.com/kb/888731 and
+ # http://www.geocities.com/rick_lively/MANUALS/ENV/MSWIN/PROCESSI.HTM
+
+ # WOW64 processes mask the native architecture
+ return (
+ os.environ.get('PROCESSOR_ARCHITEW6432', '') or
+ os.environ.get('PROCESSOR_ARCHITECTURE', '')
+ )
+
+
+class _Processor:
+ @classmethod
+ def get(cls):
+ func = getattr(cls, f'get_{sys.platform}', cls.from_subprocess)
+ return func() or ''
+
+ def get_win32():
+ return os.environ.get('PROCESSOR_IDENTIFIER', _get_machine_win32())
+
+ def get_OpenVMS():
+ try:
+ import vms_lib
+ except ImportError:
+ pass
+ else:
+ csid, cpu_number = vms_lib.getsyi('SYI$_CPU', 0)
+ return 'Alpha' if cpu_number >= 128 else 'VAX'
+
+ def from_subprocess():
+ """
+ Fall back to `uname -p`
+ """
+ try:
+ return subprocess.check_output(
+ ['uname', '-p'],
+ stderr=subprocess.DEVNULL,
+ text=True,
+ ).strip()
+ except (OSError, subprocess.CalledProcessError):
+ pass
+
+
+def _unknown_as_blank(val):
+ return '' if val == 'unknown' else val
+
+
### Portable uname() interface
-class uname_result(
- collections.namedtuple(
- "uname_result_base",
- "system node release version machine")
- ):
- """
- A uname_result that's largely compatible with a
- simple namedtuple except that 'processor' is
- resolved late and cached to avoid calling "uname"
- except when needed.
- """
-
- @functools.cached_property
- def processor(self):
- return _unknown_as_blank(_Processor.get())
-
- def __iter__(self):
- return itertools.chain(
- super().__iter__(),
- (self.processor,)
- )
-
- @classmethod
- def _make(cls, iterable):
- # override factory to affect length check
- num_fields = len(cls._fields)
- result = cls.__new__(cls, *iterable)
- if len(result) != num_fields + 1:
- msg = f'Expected {num_fields} arguments, got {len(result)}'
- raise TypeError(msg)
- return result
-
- def __getitem__(self, key):
- return tuple(self)[key]
-
- def __len__(self):
- return len(tuple(iter(self)))
-
- def __reduce__(self):
- return uname_result, tuple(self)[:len(self._fields)]
-
-
+class uname_result(
+ collections.namedtuple(
+ "uname_result_base",
+ "system node release version machine")
+ ):
+ """
+ A uname_result that's largely compatible with a
+ simple namedtuple except that 'processor' is
+ resolved late and cached to avoid calling "uname"
+ except when needed.
+ """
+
+ @functools.cached_property
+ def processor(self):
+ return _unknown_as_blank(_Processor.get())
+
+ def __iter__(self):
+ return itertools.chain(
+ super().__iter__(),
+ (self.processor,)
+ )
+
+ @classmethod
+ def _make(cls, iterable):
+ # override factory to affect length check
+ num_fields = len(cls._fields)
+ result = cls.__new__(cls, *iterable)
+ if len(result) != num_fields + 1:
+ msg = f'Expected {num_fields} arguments, got {len(result)}'
+ raise TypeError(msg)
+ return result
+
+ def __getitem__(self, key):
+ return tuple(self)[key]
+
+ def __len__(self):
+ return len(tuple(iter(self)))
+
+ def __reduce__(self):
+ return uname_result, tuple(self)[:len(self._fields)]
+
+
_uname_cache = None
-
+
def uname():
""" Fairly portable uname interface. Returns a tuple
@@ -841,24 +841,24 @@ def uname():
# Get some infos from the builtin os.uname API...
try:
- system, node, release, version, machine = infos = os.uname()
+ system, node, release, version, machine = infos = os.uname()
except AttributeError:
- system = sys.platform
- node = _node()
- release = version = machine = ''
- infos = ()
+ system = sys.platform
+ node = _node()
+ release = version = machine = ''
+ infos = ()
- if not any(infos):
- # uname is not available
+ if not any(infos):
+ # uname is not available
# Try win32_ver() on win32 platforms
if system == 'win32':
release, version, csd, ptype = win32_ver()
- machine = machine or _get_machine_win32()
+ machine = machine or _get_machine_win32()
# Try the 'ver' system command available on some
# platforms
- if not (release and version):
+ if not (release and version):
system, release, version = _syscmd_ver(system)
# Normalize system to what win32_ver() normally returns
# (_syscmd_ver() tends to return the vendor name as well)
@@ -904,9 +904,9 @@ def uname():
system = 'Windows'
release = 'Vista'
- vals = system, node, release, version, machine
- # Replace 'unknown' values with the more portable ''
- _uname_cache = uname_result(*map(_unknown_as_blank, vals))
+ vals = system, node, release, version, machine
+ # Replace 'unknown' values with the more portable ''
+ _uname_cache = uname_result(*map(_unknown_as_blank, vals))
return _uname_cache
### Direct interfaces to some of the uname() return values
@@ -1215,13 +1215,13 @@ def platform(aliased=0, terse=0):
if aliased:
system, release, version = system_alias(system, release, version)
- if system == 'Darwin':
- # macOS (darwin kernel)
- macos_release = mac_ver()[0]
- if macos_release:
- system = 'macOS'
- release = macos_release
-
+ if system == 'Darwin':
+ # macOS (darwin kernel)
+ macos_release = mac_ver()[0]
+ if macos_release:
+ system = 'macOS'
+ release = macos_release
+
if system == 'Windows':
# MS platforms
rel, vers, csd, ptype = win32_ver(version)
@@ -1231,11 +1231,11 @@ def platform(aliased=0, terse=0):
platform = _platform(system, release, version, csd)
elif system in ('Linux',):
- # check for libc vs. glibc
- libcname, libcversion = libc_ver()
- platform = _platform(system, release, machine, processor,
- 'with',
- libcname+libcversion)
+ # check for libc vs. glibc
+ libcname, libcversion = libc_ver()
+ platform = _platform(system, release, machine, processor,
+ 'with',
+ libcname+libcversion)
elif system == 'Java':
# Java platforms
r, v, vminfo, (os_name, os_version, os_arch) = java_ver()
diff --git a/contrib/tools/python3/src/Lib/plistlib.py b/contrib/tools/python3/src/Lib/plistlib.py
index 21180eea4a..2eeebe4c9a 100644
--- a/contrib/tools/python3/src/Lib/plistlib.py
+++ b/contrib/tools/python3/src/Lib/plistlib.py
@@ -46,7 +46,7 @@ Parse Plist example:
print(pl["aKey"])
"""
__all__ = [
- "InvalidFileException", "FMT_XML", "FMT_BINARY", "load", "dump", "loads", "dumps", "UID"
+ "InvalidFileException", "FMT_XML", "FMT_BINARY", "load", "dump", "loads", "dumps", "UID"
]
import binascii
@@ -65,33 +65,33 @@ PlistFormat = enum.Enum('PlistFormat', 'FMT_XML FMT_BINARY', module=__name__)
globals().update(PlistFormat.__members__)
-class UID:
- def __init__(self, data):
- if not isinstance(data, int):
- raise TypeError("data must be an int")
- if data >= 1 << 64:
- raise ValueError("UIDs cannot be >= 2**64")
- if data < 0:
- raise ValueError("UIDs must be positive")
- self.data = data
-
- def __index__(self):
- return self.data
-
- def __repr__(self):
- return "%s(%s)" % (self.__class__.__name__, repr(self.data))
-
- def __reduce__(self):
- return self.__class__, (self.data,)
-
- def __eq__(self, other):
- if not isinstance(other, UID):
- return NotImplemented
- return self.data == other.data
-
- def __hash__(self):
- return hash(self.data)
-
+class UID:
+ def __init__(self, data):
+ if not isinstance(data, int):
+ raise TypeError("data must be an int")
+ if data >= 1 << 64:
+ raise ValueError("UIDs cannot be >= 2**64")
+ if data < 0:
+ raise ValueError("UIDs must be positive")
+ self.data = data
+
+ def __index__(self):
+ return self.data
+
+ def __repr__(self):
+ return "%s(%s)" % (self.__class__.__name__, repr(self.data))
+
+ def __reduce__(self):
+ return self.__class__, (self.data,)
+
+ def __eq__(self, other):
+ if not isinstance(other, UID):
+ return NotImplemented
+ return self.data == other.data
+
+ def __hash__(self):
+ return hash(self.data)
+
#
# XML support
#
@@ -162,7 +162,7 @@ def _escape(text):
return text
class _PlistParser:
- def __init__(self, dict_type):
+ def __init__(self, dict_type):
self.stack = []
self.current_key = None
self.root = None
@@ -173,16 +173,16 @@ class _PlistParser:
self.parser.StartElementHandler = self.handle_begin_element
self.parser.EndElementHandler = self.handle_end_element
self.parser.CharacterDataHandler = self.handle_data
- self.parser.EntityDeclHandler = self.handle_entity_decl
+ self.parser.EntityDeclHandler = self.handle_entity_decl
self.parser.ParseFile(fileobj)
return self.root
- def handle_entity_decl(self, entity_name, is_parameter_entity, value, base, system_id, public_id, notation_name):
- # Reject plist files with entity declarations to avoid XML vulnerabilies in expat.
- # Regular plist files don't contain those declerations, and Apple's plutil tool does not
- # accept them either.
- raise InvalidFileException("XML entity declarations are not supported in plist files")
-
+ def handle_entity_decl(self, entity_name, is_parameter_entity, value, base, system_id, public_id, notation_name):
+ # Reject plist files with entity declarations to avoid XML vulnerabilies in expat.
+ # Regular plist files don't contain those declerations, and Apple's plutil tool does not
+ # accept them either.
+ raise InvalidFileException("XML entity declarations are not supported in plist files")
+
def handle_begin_element(self, element, attrs):
self.data = []
handler = getattr(self, "begin_" + element, None)
@@ -252,11 +252,11 @@ class _PlistParser:
self.add_object(False)
def end_integer(self):
- raw = self.get_data()
- if raw.startswith('0x') or raw.startswith('0X'):
- self.add_object(int(raw, 16))
- else:
- self.add_object(int(raw))
+ raw = self.get_data()
+ if raw.startswith('0x') or raw.startswith('0X'):
+ self.add_object(int(raw, 16))
+ else:
+ self.add_object(int(raw))
def end_real(self):
self.add_object(float(self.get_data()))
@@ -265,7 +265,7 @@ class _PlistParser:
self.add_object(self.get_data())
def end_data(self):
- self.add_object(_decode_base64(self.get_data()))
+ self.add_object(_decode_base64(self.get_data()))
def end_date(self):
self.add_object(_date_from_string(self.get_data()))
@@ -452,7 +452,7 @@ class _BinaryPlistParser:
see also: http://opensource.apple.com/source/CF/CF-744.18/CFBinaryPList.c
"""
- def __init__(self, dict_type):
+ def __init__(self, dict_type):
self._dict_type = dict_type
def parse(self, fp):
@@ -477,7 +477,7 @@ class _BinaryPlistParser:
return self._read_object(top_object)
except (OSError, IndexError, struct.error, OverflowError,
- ValueError):
+ ValueError):
raise InvalidFileException()
def _get_size(self, tokenL):
@@ -493,7 +493,7 @@ class _BinaryPlistParser:
def _read_ints(self, n, size):
data = self._fp.read(size * n)
if size in _BINARY_FORMAT:
- return struct.unpack(f'>{n}{_BINARY_FORMAT[size]}', data)
+ return struct.unpack(f'>{n}{_BINARY_FORMAT[size]}', data)
else:
if not size or len(data) != size * n:
raise InvalidFileException()
@@ -552,27 +552,27 @@ class _BinaryPlistParser:
elif tokenH == 0x40: # data
s = self._get_size(tokenL)
- result = self._fp.read(s)
- if len(result) != s:
- raise InvalidFileException()
+ result = self._fp.read(s)
+ if len(result) != s:
+ raise InvalidFileException()
elif tokenH == 0x50: # ascii string
s = self._get_size(tokenL)
- data = self._fp.read(s)
- if len(data) != s:
- raise InvalidFileException()
- result = data.decode('ascii')
+ data = self._fp.read(s)
+ if len(data) != s:
+ raise InvalidFileException()
+ result = data.decode('ascii')
elif tokenH == 0x60: # unicode string
- s = self._get_size(tokenL) * 2
- data = self._fp.read(s)
- if len(data) != s:
- raise InvalidFileException()
- result = data.decode('utf-16be')
+ s = self._get_size(tokenL) * 2
+ data = self._fp.read(s)
+ if len(data) != s:
+ raise InvalidFileException()
+ result = data.decode('utf-16be')
- elif tokenH == 0x80: # UID
- # used by Key-Archiver plist files
- result = UID(int.from_bytes(self._fp.read(1 + tokenL), 'big'))
+ elif tokenH == 0x80: # UID
+ # used by Key-Archiver plist files
+ result = UID(int.from_bytes(self._fp.read(1 + tokenL), 'big'))
elif tokenH == 0xA0: # array
s = self._get_size(tokenL)
@@ -593,11 +593,11 @@ class _BinaryPlistParser:
obj_refs = self._read_refs(s)
result = self._dict_type()
self._objects[ref] = result
- try:
- for k, o in zip(key_refs, obj_refs):
- result[self._read_object(k)] = self._read_object(o)
- except TypeError:
- raise InvalidFileException()
+ try:
+ for k, o in zip(key_refs, obj_refs):
+ result[self._read_object(k)] = self._read_object(o)
+ except TypeError:
+ raise InvalidFileException()
else:
raise InvalidFileException()
@@ -611,7 +611,7 @@ def _count_to_size(count):
elif count < 1 << 16:
return 2
- elif count < 1 << 32:
+ elif count < 1 << 32:
return 4
else:
@@ -786,20 +786,20 @@ class _BinaryPlistWriter (object):
self._fp.write(t)
- elif isinstance(value, UID):
- if value.data < 0:
- raise ValueError("UIDs must be positive")
- elif value.data < 1 << 8:
- self._fp.write(struct.pack('>BB', 0x80, value))
- elif value.data < 1 << 16:
- self._fp.write(struct.pack('>BH', 0x81, value))
- elif value.data < 1 << 32:
- self._fp.write(struct.pack('>BL', 0x83, value))
- elif value.data < 1 << 64:
- self._fp.write(struct.pack('>BQ', 0x87, value))
- else:
- raise OverflowError(value)
-
+ elif isinstance(value, UID):
+ if value.data < 0:
+ raise ValueError("UIDs must be positive")
+ elif value.data < 1 << 8:
+ self._fp.write(struct.pack('>BB', 0x80, value))
+ elif value.data < 1 << 16:
+ self._fp.write(struct.pack('>BH', 0x81, value))
+ elif value.data < 1 << 32:
+ self._fp.write(struct.pack('>BL', 0x83, value))
+ elif value.data < 1 << 64:
+ self._fp.write(struct.pack('>BQ', 0x87, value))
+ else:
+ raise OverflowError(value)
+
elif isinstance(value, (list, tuple)):
refs = [self._getrefnum(o) for o in value]
s = len(refs)
@@ -853,8 +853,8 @@ _FORMATS={
}
-def load(fp, *, fmt=None, dict_type=dict):
- """Read a .plist file. 'fp' should be a readable and binary file object.
+def load(fp, *, fmt=None, dict_type=dict):
+ """Read a .plist file. 'fp' should be a readable and binary file object.
Return the unpacked root object (which usually is a dictionary).
"""
if fmt is None:
@@ -871,21 +871,21 @@ def load(fp, *, fmt=None, dict_type=dict):
else:
P = _FORMATS[fmt]['parser']
- p = P(dict_type=dict_type)
+ p = P(dict_type=dict_type)
return p.parse(fp)
-def loads(value, *, fmt=None, dict_type=dict):
+def loads(value, *, fmt=None, dict_type=dict):
"""Read a .plist file from a bytes object.
Return the unpacked root object (which usually is a dictionary).
"""
fp = BytesIO(value)
- return load(fp, fmt=fmt, dict_type=dict_type)
+ return load(fp, fmt=fmt, dict_type=dict_type)
def dump(value, fp, *, fmt=FMT_XML, sort_keys=True, skipkeys=False):
- """Write 'value' to a .plist file. 'fp' should be a writable,
- binary file object.
+ """Write 'value' to a .plist file. 'fp' should be a writable,
+ binary file object.
"""
if fmt not in _FORMATS:
raise ValueError("Unsupported format: %r"%(fmt,))
diff --git a/contrib/tools/python3/src/Lib/poplib.py b/contrib/tools/python3/src/Lib/poplib.py
index bc66e1c7e2..0f8587317c 100644
--- a/contrib/tools/python3/src/Lib/poplib.py
+++ b/contrib/tools/python3/src/Lib/poplib.py
@@ -16,7 +16,7 @@ Based on the J. Myers POP3 draft, Jan. 96
import errno
import re
import socket
-import sys
+import sys
try:
import ssl
@@ -100,20 +100,20 @@ class POP3:
self.host = host
self.port = port
self._tls_established = False
- sys.audit("poplib.connect", self, host, port)
+ sys.audit("poplib.connect", self, host, port)
self.sock = self._create_socket(timeout)
self.file = self.sock.makefile('rb')
self._debugging = 0
self.welcome = self._getresp()
def _create_socket(self, timeout):
- if timeout is not None and not timeout:
- raise ValueError('Non-blocking socket (timeout=0) is not supported')
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
return socket.create_connection((self.host, self.port), timeout)
def _putline(self, line):
if self._debugging > 1: print('*put*', repr(line))
- sys.audit("poplib.putline", self, line)
+ sys.audit("poplib.putline", self, line)
self.sock.sendall(line + CRLF)
@@ -387,7 +387,7 @@ class POP3:
for capline in rawcaps:
capnm, capargs = _parsecap(capline)
caps[capnm] = capargs
- except error_proto:
+ except error_proto:
raise error_proto('-ERR CAPA not supported by server')
return caps
diff --git a/contrib/tools/python3/src/Lib/posixpath.py b/contrib/tools/python3/src/Lib/posixpath.py
index 632fe004d4..af2814bdb0 100644
--- a/contrib/tools/python3/src/Lib/posixpath.py
+++ b/contrib/tools/python3/src/Lib/posixpath.py
@@ -2,9 +2,9 @@
Instead of importing this module directly, import os and refer to
this module as os.path. The "os.path" name is an alias for this
-module on Posix systems; on other systems (e.g. Windows),
+module on Posix systems; on other systems (e.g. Windows),
os.path provides the same operations in a manner specific to that
-platform, and is an alias to another module (e.g. ntpath).
+platform, and is an alias to another module (e.g. ntpath).
Some of this can actually be useful on non-Posix systems too, e.g.
for manipulation of the pathname component of URLs.
@@ -18,7 +18,7 @@ pardir = '..'
extsep = '.'
sep = '/'
pathsep = ':'
-defpath = '/bin:/usr/bin'
+defpath = '/bin:/usr/bin'
altsep = None
devnull = '/dev/null'
@@ -51,7 +51,7 @@ def _get_sep(path):
def normcase(s):
"""Normalize case of pathname. Has no effect under Posix"""
- return os.fspath(s)
+ return os.fspath(s)
# Return whether a path is absolute.
@@ -165,7 +165,7 @@ def islink(path):
"""Test whether a path is a symbolic link"""
try:
st = os.lstat(path)
- except (OSError, ValueError, AttributeError):
+ except (OSError, ValueError, AttributeError):
return False
return stat.S_ISLNK(st.st_mode)
@@ -175,7 +175,7 @@ def lexists(path):
"""Test whether a path exists. Returns True for broken symbolic links"""
try:
os.lstat(path)
- except (OSError, ValueError):
+ except (OSError, ValueError):
return False
return True
@@ -187,7 +187,7 @@ def ismount(path):
"""Test whether a path is a mount point"""
try:
s1 = os.lstat(path)
- except (OSError, ValueError):
+ except (OSError, ValueError):
# It doesn't exist -- so not a mount point. :-)
return False
else:
@@ -202,7 +202,7 @@ def ismount(path):
parent = realpath(parent)
try:
s2 = os.lstat(parent)
- except (OSError, ValueError):
+ except (OSError, ValueError):
return False
dev1 = s1.st_dev
@@ -349,7 +349,7 @@ def normpath(path):
initial_slashes = path.startswith(sep)
# POSIX allows one or two initial slashes, but treats three or more
# as single slash.
- # (see http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13)
+ # (see http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13)
if (initial_slashes and
path.startswith(sep*2) and not path.startswith(sep*3)):
initial_slashes = 2
diff --git a/contrib/tools/python3/src/Lib/pprint.py b/contrib/tools/python3/src/Lib/pprint.py
index acd514bc03..7c1118a484 100644
--- a/contrib/tools/python3/src/Lib/pprint.py
+++ b/contrib/tools/python3/src/Lib/pprint.py
@@ -41,38 +41,38 @@ import types as _types
from io import StringIO as _StringIO
__all__ = ["pprint","pformat","isreadable","isrecursive","saferepr",
- "PrettyPrinter", "pp"]
+ "PrettyPrinter", "pp"]
def pprint(object, stream=None, indent=1, width=80, depth=None, *,
- compact=False, sort_dicts=True):
+ compact=False, sort_dicts=True):
"""Pretty-print a Python object to a stream [default is sys.stdout]."""
printer = PrettyPrinter(
stream=stream, indent=indent, width=width, depth=depth,
- compact=compact, sort_dicts=sort_dicts)
+ compact=compact, sort_dicts=sort_dicts)
printer.pprint(object)
-def pformat(object, indent=1, width=80, depth=None, *,
- compact=False, sort_dicts=True):
+def pformat(object, indent=1, width=80, depth=None, *,
+ compact=False, sort_dicts=True):
"""Format a Python object into a pretty-printed representation."""
return PrettyPrinter(indent=indent, width=width, depth=depth,
- compact=compact, sort_dicts=sort_dicts).pformat(object)
+ compact=compact, sort_dicts=sort_dicts).pformat(object)
+
+def pp(object, *args, sort_dicts=False, **kwargs):
+ """Pretty-print a Python object"""
+ pprint(object, *args, sort_dicts=sort_dicts, **kwargs)
-def pp(object, *args, sort_dicts=False, **kwargs):
- """Pretty-print a Python object"""
- pprint(object, *args, sort_dicts=sort_dicts, **kwargs)
-
def saferepr(object):
"""Version of repr() which can handle recursive data structures."""
- return _safe_repr(object, {}, None, 0, True)[0]
+ return _safe_repr(object, {}, None, 0, True)[0]
def isreadable(object):
"""Determine if saferepr(object) is readable by eval()."""
- return _safe_repr(object, {}, None, 0, True)[1]
+ return _safe_repr(object, {}, None, 0, True)[1]
def isrecursive(object):
"""Determine if object requires a recursive representation."""
- return _safe_repr(object, {}, None, 0, True)[2]
+ return _safe_repr(object, {}, None, 0, True)[2]
class _safe_key:
"""Helper function for key functions when sorting unorderable objects.
@@ -102,7 +102,7 @@ def _safe_tuple(t):
class PrettyPrinter:
def __init__(self, indent=1, width=80, depth=None, stream=None, *,
- compact=False, sort_dicts=True):
+ compact=False, sort_dicts=True):
"""Handle pretty printing operations onto a stream using a set of
configured parameters.
@@ -122,9 +122,9 @@ class PrettyPrinter:
compact
If true, several items will be combined in one line.
- sort_dicts
- If true, dict keys are sorted.
-
+ sort_dicts
+ If true, dict keys are sorted.
+
"""
indent = int(indent)
width = int(width)
@@ -142,7 +142,7 @@ class PrettyPrinter:
else:
self._stream = _sys.stdout
self._compact = bool(compact)
- self._sort_dicts = sort_dicts
+ self._sort_dicts = sort_dicts
def pprint(self, object):
self._format(object, self._stream, 0, 0, {}, 0)
@@ -193,10 +193,10 @@ class PrettyPrinter:
write((self._indent_per_level - 1) * ' ')
length = len(object)
if length:
- if self._sort_dicts:
- items = sorted(object.items(), key=_safe_tuple)
- else:
- items = object.items()
+ if self._sort_dicts:
+ items = sorted(object.items(), key=_safe_tuple)
+ else:
+ items = object.items()
self._format_dict_items(items, stream, indent, allowance + 1,
context, level)
write('}')
@@ -342,33 +342,33 @@ class PrettyPrinter:
_dispatch[_types.MappingProxyType.__repr__] = _pprint_mappingproxy
- def _pprint_simplenamespace(self, object, stream, indent, allowance, context, level):
- if type(object) is _types.SimpleNamespace:
- # The SimpleNamespace repr is "namespace" instead of the class
- # name, so we do the same here. For subclasses; use the class name.
- cls_name = 'namespace'
- else:
- cls_name = object.__class__.__name__
- indent += len(cls_name) + 1
- delimnl = ',\n' + ' ' * indent
- items = object.__dict__.items()
- last_index = len(items) - 1
-
- stream.write(cls_name + '(')
- for i, (key, ent) in enumerate(items):
- stream.write(key)
- stream.write('=')
-
- last = i == last_index
- self._format(ent, stream, indent + len(key) + 1,
- allowance if last else 1,
- context, level)
- if not last:
- stream.write(delimnl)
- stream.write(')')
-
- _dispatch[_types.SimpleNamespace.__repr__] = _pprint_simplenamespace
-
+ def _pprint_simplenamespace(self, object, stream, indent, allowance, context, level):
+ if type(object) is _types.SimpleNamespace:
+ # The SimpleNamespace repr is "namespace" instead of the class
+ # name, so we do the same here. For subclasses; use the class name.
+ cls_name = 'namespace'
+ else:
+ cls_name = object.__class__.__name__
+ indent += len(cls_name) + 1
+ delimnl = ',\n' + ' ' * indent
+ items = object.__dict__.items()
+ last_index = len(items) - 1
+
+ stream.write(cls_name + '(')
+ for i, (key, ent) in enumerate(items):
+ stream.write(key)
+ stream.write('=')
+
+ last = i == last_index
+ self._format(ent, stream, indent + len(key) + 1,
+ allowance if last else 1,
+ context, level)
+ if not last:
+ stream.write(delimnl)
+ stream.write(')')
+
+ _dispatch[_types.SimpleNamespace.__repr__] = _pprint_simplenamespace
+
def _format_dict_items(self, items, stream, indent, allowance, context,
level):
write = stream.write
@@ -441,7 +441,7 @@ class PrettyPrinter:
and flags indicating whether the representation is 'readable'
and whether the object represents a recursive construct.
"""
- return _safe_repr(object, context, maxlevels, level, self._sort_dicts)
+ return _safe_repr(object, context, maxlevels, level, self._sort_dicts)
def _pprint_default_dict(self, object, stream, indent, allowance, context, level):
if not len(object):
@@ -526,7 +526,7 @@ class PrettyPrinter:
# Return triple (repr_string, isreadable, isrecursive).
-def _safe_repr(object, context, maxlevels, level, sort_dicts):
+def _safe_repr(object, context, maxlevels, level, sort_dicts):
typ = type(object)
if typ in _builtin_scalars:
return repr(object), True, False
@@ -546,13 +546,13 @@ def _safe_repr(object, context, maxlevels, level, sort_dicts):
components = []
append = components.append
level += 1
- if sort_dicts:
- items = sorted(object.items(), key=_safe_tuple)
- else:
- items = object.items()
+ if sort_dicts:
+ items = sorted(object.items(), key=_safe_tuple)
+ else:
+ items = object.items()
for k, v in items:
- krepr, kreadable, krecur = _safe_repr(k, context, maxlevels, level, sort_dicts)
- vrepr, vreadable, vrecur = _safe_repr(v, context, maxlevels, level, sort_dicts)
+ krepr, kreadable, krecur = _safe_repr(k, context, maxlevels, level, sort_dicts)
+ vrepr, vreadable, vrecur = _safe_repr(v, context, maxlevels, level, sort_dicts)
append("%s: %s" % (krepr, vrepr))
readable = readable and kreadable and vreadable
if krecur or vrecur:
@@ -584,7 +584,7 @@ def _safe_repr(object, context, maxlevels, level, sort_dicts):
append = components.append
level += 1
for o in object:
- orepr, oreadable, orecur = _safe_repr(o, context, maxlevels, level, sort_dicts)
+ orepr, oreadable, orecur = _safe_repr(o, context, maxlevels, level, sort_dicts)
append(orepr)
if not oreadable:
readable = False
@@ -610,7 +610,7 @@ def _perfcheck(object=None):
object = [("string", (1, 2), [3, 4], {5: 6, 7: 8})] * 100000
p = PrettyPrinter()
t1 = time.perf_counter()
- _safe_repr(object, {}, None, 0, True)
+ _safe_repr(object, {}, None, 0, True)
t2 = time.perf_counter()
p.pformat(object)
t3 = time.perf_counter()
diff --git a/contrib/tools/python3/src/Lib/profile.py b/contrib/tools/python3/src/Lib/profile.py
index 6670400f1a..d8599fb4ee 100644
--- a/contrib/tools/python3/src/Lib/profile.py
+++ b/contrib/tools/python3/src/Lib/profile.py
@@ -425,7 +425,7 @@ class Profile:
return self
# This method is more useful to profile a single function call.
- def runcall(self, func, /, *args, **kw):
+ def runcall(self, func, /, *args, **kw):
self.set_cmd(repr(func))
sys.setprofile(self.dispatcher)
try:
@@ -553,13 +553,13 @@ def main():
import os
from optparse import OptionParser
- usage = "profile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ..."
+ usage = "profile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ..."
parser = OptionParser(usage=usage)
parser.allow_interspersed_args = False
parser.add_option('-o', '--outfile', dest="outfile",
help="Save stats to <outfile>", default=None)
- parser.add_option('-m', dest="module", action="store_true",
- help="Profile a library module.", default=False)
+ parser.add_option('-m', dest="module", action="store_true",
+ help="Profile a library module.", default=False)
parser.add_option('-s', '--sort', dest="sort",
help="Sort order when printing to stdout, based on pstats.Stats class",
default=-1)
@@ -571,36 +571,36 @@ def main():
(options, args) = parser.parse_args()
sys.argv[:] = args
- # The script that we're profiling may chdir, so capture the absolute path
- # to the output file at startup.
- if options.outfile is not None:
- options.outfile = os.path.abspath(options.outfile)
-
+ # The script that we're profiling may chdir, so capture the absolute path
+ # to the output file at startup.
+ if options.outfile is not None:
+ options.outfile = os.path.abspath(options.outfile)
+
if len(args) > 0:
- if options.module:
- import runpy
- code = "run_module(modname, run_name='__main__')"
- globs = {
- 'run_module': runpy.run_module,
- 'modname': args[0]
- }
- else:
- progname = args[0]
- sys.path.insert(0, os.path.dirname(progname))
- with open(progname, 'rb') as fp:
- code = compile(fp.read(), progname, 'exec')
- globs = {
- '__file__': progname,
- '__name__': '__main__',
- '__package__': None,
- '__cached__': None,
- }
- try:
- runctx(code, globs, None, options.outfile, options.sort)
- except BrokenPipeError as exc:
- # Prevent "Exception ignored" during interpreter shutdown.
- sys.stdout = None
- sys.exit(exc.errno)
+ if options.module:
+ import runpy
+ code = "run_module(modname, run_name='__main__')"
+ globs = {
+ 'run_module': runpy.run_module,
+ 'modname': args[0]
+ }
+ else:
+ progname = args[0]
+ sys.path.insert(0, os.path.dirname(progname))
+ with open(progname, 'rb') as fp:
+ code = compile(fp.read(), progname, 'exec')
+ globs = {
+ '__file__': progname,
+ '__name__': '__main__',
+ '__package__': None,
+ '__cached__': None,
+ }
+ try:
+ runctx(code, globs, None, options.outfile, options.sort)
+ except BrokenPipeError as exc:
+ # Prevent "Exception ignored" during interpreter shutdown.
+ sys.stdout = None
+ sys.exit(exc.errno)
else:
parser.print_usage()
return parser
diff --git a/contrib/tools/python3/src/Lib/pstats.py b/contrib/tools/python3/src/Lib/pstats.py
index 5a42507732..0f93ae02c9 100644
--- a/contrib/tools/python3/src/Lib/pstats.py
+++ b/contrib/tools/python3/src/Lib/pstats.py
@@ -25,13 +25,13 @@ import os
import time
import marshal
import re
-
+
from enum import Enum
from functools import cmp_to_key
-from dataclasses import dataclass
-from typing import Dict
+from dataclasses import dataclass
+from typing import Dict
-__all__ = ["Stats", "SortKey", "FunctionProfile", "StatsProfile"]
+__all__ = ["Stats", "SortKey", "FunctionProfile", "StatsProfile"]
class SortKey(str, Enum):
CALLS = 'calls', 'ncalls'
@@ -45,31 +45,31 @@ class SortKey(str, Enum):
TIME = 'time', 'tottime'
def __new__(cls, *values):
- value = values[0]
- obj = str.__new__(cls, value)
- obj._value_ = value
+ value = values[0]
+ obj = str.__new__(cls, value)
+ obj._value_ = value
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
-@dataclass(unsafe_hash=True)
-class FunctionProfile:
- ncalls: int
- tottime: float
- percall_tottime: float
- cumtime: float
- percall_cumtime: float
- file_name: str
- line_number: int
-
-@dataclass(unsafe_hash=True)
-class StatsProfile:
- '''Class for keeping track of an item in inventory.'''
- total_tt: float
- func_profiles: Dict[str, FunctionProfile]
-
+@dataclass(unsafe_hash=True)
+class FunctionProfile:
+ ncalls: int
+ tottime: float
+ percall_tottime: float
+ cumtime: float
+ percall_cumtime: float
+ file_name: str
+ line_number: int
+
+@dataclass(unsafe_hash=True)
+class StatsProfile:
+ '''Class for keeping track of an item in inventory.'''
+ total_tt: float
+ func_profiles: Dict[str, FunctionProfile]
+
class Stats:
"""This class is used for creating reports from data generated by the
Profile class. It is a "friend" of that class, and imports data either
@@ -351,41 +351,41 @@ class Stats:
return new_list, msg
- def get_stats_profile(self):
- """This method returns an instance of StatsProfile, which contains a mapping
- of function names to instances of FunctionProfile. Each FunctionProfile
- instance holds information related to the function's profile such as how
- long the function took to run, how many times it was called, etc...
- """
- func_list = self.fcn_list[:] if self.fcn_list else list(self.stats.keys())
- if not func_list:
- return StatsProfile(0, {})
-
- total_tt = float(f8(self.total_tt))
- func_profiles = {}
- stats_profile = StatsProfile(total_tt, func_profiles)
-
- for func in func_list:
- cc, nc, tt, ct, callers = self.stats[func]
- file_name, line_number, func_name = func
- ncalls = str(nc) if nc == cc else (str(nc) + '/' + str(cc))
- tottime = float(f8(tt))
- percall_tottime = -1 if nc == 0 else float(f8(tt/nc))
- cumtime = float(f8(ct))
- percall_cumtime = -1 if cc == 0 else float(f8(ct/cc))
- func_profile = FunctionProfile(
- ncalls,
- tottime, # time spent in this function alone
- percall_tottime,
- cumtime, # time spent in the function plus all functions that this function called,
- percall_cumtime,
- file_name,
- line_number
- )
- func_profiles[func_name] = func_profile
-
- return stats_profile
-
+ def get_stats_profile(self):
+ """This method returns an instance of StatsProfile, which contains a mapping
+ of function names to instances of FunctionProfile. Each FunctionProfile
+ instance holds information related to the function's profile such as how
+ long the function took to run, how many times it was called, etc...
+ """
+ func_list = self.fcn_list[:] if self.fcn_list else list(self.stats.keys())
+ if not func_list:
+ return StatsProfile(0, {})
+
+ total_tt = float(f8(self.total_tt))
+ func_profiles = {}
+ stats_profile = StatsProfile(total_tt, func_profiles)
+
+ for func in func_list:
+ cc, nc, tt, ct, callers = self.stats[func]
+ file_name, line_number, func_name = func
+ ncalls = str(nc) if nc == cc else (str(nc) + '/' + str(cc))
+ tottime = float(f8(tt))
+ percall_tottime = -1 if nc == 0 else float(f8(tt/nc))
+ cumtime = float(f8(ct))
+ percall_cumtime = -1 if cc == 0 else float(f8(ct/cc))
+ func_profile = FunctionProfile(
+ ncalls,
+ tottime, # time spent in this function alone
+ percall_tottime,
+ cumtime, # time spent in the function plus all functions that this function called,
+ percall_cumtime,
+ file_name,
+ line_number
+ )
+ func_profiles[func_name] = func_profile
+
+ return stats_profile
+
def get_print_list(self, sel_list):
width = self.max_name_len
if self.fcn_list:
@@ -562,7 +562,7 @@ def func_std_string(func_name): # match what old profile produced
return "%s:%d(%s)" % func_name
#**************************************************************************
-# The following functions combine statistics for pairs functions.
+# The following functions combine statistics for pairs functions.
# The bulk of the processing involves correctly handling "call" lists,
# such as callers and callees.
#**************************************************************************
@@ -685,12 +685,12 @@ if __name__ == '__main__':
print("", file=self.stream)
return 1
def help_EOF(self):
- print("Leave the profile browser.", file=self.stream)
+ print("Leave the profile browser.", file=self.stream)
def do_quit(self, line):
return 1
def help_quit(self):
- print("Leave the profile browser.", file=self.stream)
+ print("Leave the profile browser.", file=self.stream)
def do_read(self, line):
if line:
diff --git a/contrib/tools/python3/src/Lib/pty.py b/contrib/tools/python3/src/Lib/pty.py
index d6bc65b09e..a32432041f 100644
--- a/contrib/tools/python3/src/Lib/pty.py
+++ b/contrib/tools/python3/src/Lib/pty.py
@@ -8,7 +8,7 @@
from select import select
import os
-import sys
+import sys
import tty
__all__ = ["openpty","fork","spawn"]
@@ -152,7 +152,7 @@ def spawn(argv, master_read=_read, stdin_read=_read):
"""Create a spawned process."""
if type(argv) == type(''):
argv = (argv,)
- sys.audit('pty.spawn', argv)
+ sys.audit('pty.spawn', argv)
pid, master_fd = fork()
if pid == CHILD:
os.execlp(argv[0], *argv)
diff --git a/contrib/tools/python3/src/Lib/py_compile.py b/contrib/tools/python3/src/Lib/py_compile.py
index c5caa06f26..a81f493731 100644
--- a/contrib/tools/python3/src/Lib/py_compile.py
+++ b/contrib/tools/python3/src/Lib/py_compile.py
@@ -77,7 +77,7 @@ def _get_default_invalidation_mode():
def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1,
- invalidation_mode=None, quiet=0):
+ invalidation_mode=None, quiet=0):
"""Byte-compile one Python source file to Python bytecode.
:param file: The source file name.
@@ -95,8 +95,8 @@ def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1,
are -1, 0, 1 and 2. A value of -1 means to use the optimization
level of the current interpreter, as given by -O command line options.
:param invalidation_mode:
- :param quiet: Return full output with False or 0, errors only with 1,
- and no output with 2.
+ :param quiet: Return full output with False or 0, errors only with 1,
+ and no output with 2.
:return: Path to the resulting byte compiled file.
@@ -145,12 +145,12 @@ def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1,
_optimize=optimize)
except Exception as err:
py_exc = PyCompileError(err.__class__, err, dfile or file)
- if quiet < 2:
- if doraise:
- raise py_exc
- else:
- sys.stderr.write(py_exc.msg + '\n')
- return
+ if quiet < 2:
+ if doraise:
+ raise py_exc
+ else:
+ sys.stderr.write(py_exc.msg + '\n')
+ return
try:
dirname = os.path.dirname(cfile)
if dirname:
@@ -197,10 +197,10 @@ def main(args=None):
compile(filename, doraise=True)
except PyCompileError as error:
rv = 1
- sys.stderr.write("%s\n" % error.msg)
+ sys.stderr.write("%s\n" % error.msg)
except OSError as error:
rv = 1
- sys.stderr.write("%s\n" % error)
+ sys.stderr.write("%s\n" % error)
else:
for filename in args:
try:
@@ -208,7 +208,7 @@ def main(args=None):
except PyCompileError as error:
# return value to indicate at least one failure
rv = 1
- sys.stderr.write("%s\n" % error.msg)
+ sys.stderr.write("%s\n" % error.msg)
return rv
if __name__ == "__main__":
diff --git a/contrib/tools/python3/src/Lib/pyclbr.py b/contrib/tools/python3/src/Lib/pyclbr.py
index 2df08ef330..99a17343fb 100644
--- a/contrib/tools/python3/src/Lib/pyclbr.py
+++ b/contrib/tools/python3/src/Lib/pyclbr.py
@@ -50,7 +50,7 @@ _modules = {} # Initialize cache of modules we've seen.
class _Object:
- "Information about Python class or function."
+ "Information about Python class or function."
def __init__(self, module, name, file, lineno, parent):
self.module = module
self.name = name
@@ -160,8 +160,8 @@ def _readmodule(module, path, inpackage=None):
else:
search_path = path + sys.path
spec = importlib.util._find_spec_from_path(fullmodule, search_path)
- if spec is None:
- raise ModuleNotFoundError(f"no module named {fullmodule!r}", name=fullmodule)
+ if spec is None:
+ raise ModuleNotFoundError(f"no module named {fullmodule!r}", name=fullmodule)
_modules[fullmodule] = tree
# Is module a package?
if spec.submodule_search_locations is not None:
@@ -171,9 +171,9 @@ def _readmodule(module, path, inpackage=None):
except (AttributeError, ImportError):
# If module is not Python source, we cannot do anything.
return tree
- else:
- if source is None:
- return tree
+ else:
+ if source is None:
+ return tree
fname = spec.loader.get_filename(fullmodule)
return _create_tree(fullmodule, path, fname, source, tree, inpackage)
diff --git a/contrib/tools/python3/src/Lib/pydoc.py b/contrib/tools/python3/src/Lib/pydoc.py
index 52d60d4980..4f9d227ff4 100644
--- a/contrib/tools/python3/src/Lib/pydoc.py
+++ b/contrib/tools/python3/src/Lib/pydoc.py
@@ -66,7 +66,7 @@ import pkgutil
import platform
import re
import sys
-import sysconfig
+import sysconfig
import time
import tokenize
import urllib.parse
@@ -90,101 +90,101 @@ def pathdirs():
normdirs.append(normdir)
return dirs
-def _findclass(func):
- cls = sys.modules.get(func.__module__)
- if cls is None:
- return None
- for name in func.__qualname__.split('.')[:-1]:
- cls = getattr(cls, name)
- if not inspect.isclass(cls):
- return None
- return cls
-
-def _finddoc(obj):
- if inspect.ismethod(obj):
- name = obj.__func__.__name__
- self = obj.__self__
- if (inspect.isclass(self) and
- getattr(getattr(self, name, None), '__func__') is obj.__func__):
- # classmethod
- cls = self
- else:
- cls = self.__class__
- elif inspect.isfunction(obj):
- name = obj.__name__
- cls = _findclass(obj)
- if cls is None or getattr(cls, name) is not obj:
- return None
- elif inspect.isbuiltin(obj):
- name = obj.__name__
- self = obj.__self__
- if (inspect.isclass(self) and
- self.__qualname__ + '.' + name == obj.__qualname__):
- # classmethod
- cls = self
- else:
- cls = self.__class__
- # Should be tested before isdatadescriptor().
- elif isinstance(obj, property):
- func = obj.fget
- name = func.__name__
- cls = _findclass(func)
- if cls is None or getattr(cls, name) is not obj:
- return None
- elif inspect.ismethoddescriptor(obj) or inspect.isdatadescriptor(obj):
- name = obj.__name__
- cls = obj.__objclass__
- if getattr(cls, name) is not obj:
- return None
- if inspect.ismemberdescriptor(obj):
- slots = getattr(cls, '__slots__', None)
- if isinstance(slots, dict) and name in slots:
- return slots[name]
- else:
- return None
- for base in cls.__mro__:
- try:
- doc = _getowndoc(getattr(base, name))
- except AttributeError:
- continue
- if doc is not None:
- return doc
- return None
-
-def _getowndoc(obj):
- """Get the documentation string for an object if it is not
- inherited from its class."""
- try:
- doc = object.__getattribute__(obj, '__doc__')
- if doc is None:
- return None
- if obj is not type:
- typedoc = type(obj).__doc__
- if isinstance(typedoc, str) and typedoc == doc:
- return None
- return doc
- except AttributeError:
- return None
-
-def _getdoc(object):
- """Get the documentation string for an object.
-
- All tabs are expanded to spaces. To clean up docstrings that are
- indented to line up with blocks of code, any whitespace than can be
- uniformly removed from the second line onwards is removed."""
- doc = _getowndoc(object)
- if doc is None:
- try:
- doc = _finddoc(object)
- except (AttributeError, TypeError):
- return None
- if not isinstance(doc, str):
- return None
- return inspect.cleandoc(doc)
-
+def _findclass(func):
+ cls = sys.modules.get(func.__module__)
+ if cls is None:
+ return None
+ for name in func.__qualname__.split('.')[:-1]:
+ cls = getattr(cls, name)
+ if not inspect.isclass(cls):
+ return None
+ return cls
+
+def _finddoc(obj):
+ if inspect.ismethod(obj):
+ name = obj.__func__.__name__
+ self = obj.__self__
+ if (inspect.isclass(self) and
+ getattr(getattr(self, name, None), '__func__') is obj.__func__):
+ # classmethod
+ cls = self
+ else:
+ cls = self.__class__
+ elif inspect.isfunction(obj):
+ name = obj.__name__
+ cls = _findclass(obj)
+ if cls is None or getattr(cls, name) is not obj:
+ return None
+ elif inspect.isbuiltin(obj):
+ name = obj.__name__
+ self = obj.__self__
+ if (inspect.isclass(self) and
+ self.__qualname__ + '.' + name == obj.__qualname__):
+ # classmethod
+ cls = self
+ else:
+ cls = self.__class__
+ # Should be tested before isdatadescriptor().
+ elif isinstance(obj, property):
+ func = obj.fget
+ name = func.__name__
+ cls = _findclass(func)
+ if cls is None or getattr(cls, name) is not obj:
+ return None
+ elif inspect.ismethoddescriptor(obj) or inspect.isdatadescriptor(obj):
+ name = obj.__name__
+ cls = obj.__objclass__
+ if getattr(cls, name) is not obj:
+ return None
+ if inspect.ismemberdescriptor(obj):
+ slots = getattr(cls, '__slots__', None)
+ if isinstance(slots, dict) and name in slots:
+ return slots[name]
+ else:
+ return None
+ for base in cls.__mro__:
+ try:
+ doc = _getowndoc(getattr(base, name))
+ except AttributeError:
+ continue
+ if doc is not None:
+ return doc
+ return None
+
+def _getowndoc(obj):
+ """Get the documentation string for an object if it is not
+ inherited from its class."""
+ try:
+ doc = object.__getattribute__(obj, '__doc__')
+ if doc is None:
+ return None
+ if obj is not type:
+ typedoc = type(obj).__doc__
+ if isinstance(typedoc, str) and typedoc == doc:
+ return None
+ return doc
+ except AttributeError:
+ return None
+
+def _getdoc(object):
+ """Get the documentation string for an object.
+
+ All tabs are expanded to spaces. To clean up docstrings that are
+ indented to line up with blocks of code, any whitespace than can be
+ uniformly removed from the second line onwards is removed."""
+ doc = _getowndoc(object)
+ if doc is None:
+ try:
+ doc = _finddoc(object)
+ except (AttributeError, TypeError):
+ return None
+ if not isinstance(doc, str):
+ return None
+ return inspect.cleandoc(doc)
+
def getdoc(object):
"""Get the doc string or comments for an object."""
- result = _getdoc(object) or inspect.getcomments(object)
+ result = _getdoc(object) or inspect.getcomments(object)
return result and re.sub('^ *\n', '', result.rstrip()) or ''
def splitdoc(doc):
@@ -245,7 +245,7 @@ def _is_bound_method(fn):
def allmethods(cl):
methods = {}
- for key, value in inspect.getmembers(cl, inspect.isroutine):
+ for key, value in inspect.getmembers(cl, inspect.isroutine):
methods[key] = 1
for base in cl.__bases__:
methods.update(allmethods(base)) # all your base are belong to us
@@ -296,8 +296,8 @@ def classify_class_attrs(object):
for (name, kind, cls, value) in inspect.classify_class_attrs(object):
if inspect.isdatadescriptor(value):
kind = 'data descriptor'
- if isinstance(value, property) and value.fset is None:
- kind = 'readonly property'
+ if isinstance(value, property) and value.fset is None:
+ kind = 'readonly property'
results.append((name, kind, cls, value))
return results
@@ -474,7 +474,7 @@ class Doc:
if inspect.isroutine(object): return self.docroutine(*args)
except AttributeError:
pass
- if inspect.isdatadescriptor(object): return self.docdata(*args)
+ if inspect.isdatadescriptor(object): return self.docdata(*args)
return self.docother(*args)
def fail(self, object, name=None, *args):
@@ -485,7 +485,7 @@ class Doc:
docmodule = docclass = docroutine = docother = docproperty = docdata = fail
- def getdocloc(self, object, basedir=sysconfig.get_path('stdlib')):
+ def getdocloc(self, object, basedir=sysconfig.get_path('stdlib')):
"""Return the location of module docs or None"""
try:
@@ -676,7 +676,7 @@ class HTMLDoc(Doc):
escape = escape or self.escape
results = []
here = 0
- pattern = re.compile(r'\b((http|https|ftp)://\S+[\w/]|'
+ pattern = re.compile(r'\b((http|https|ftp)://\S+[\w/]|'
r'RFC[- ]?(\d+)|'
r'PEP[- ]?(\d+)|'
r'(self\.)?(\w+))')
@@ -694,7 +694,7 @@ class HTMLDoc(Doc):
url = 'http://www.rfc-editor.org/rfc/rfc%d.txt' % int(rfc)
results.append('<a href="%s">%s</a>' % (url, escape(all)))
elif pep:
- url = 'https://www.python.org/dev/peps/pep-%04d/' % int(pep)
+ url = 'https://www.python.org/dev/peps/pep-%04d/' % int(pep)
results.append('<a href="%s">%s</a>' % (url, escape(all)))
elif selfdot:
# Create a link for methods like 'self.method(...)'
@@ -894,7 +894,7 @@ class HTMLDoc(Doc):
except Exception:
# Some descriptors may meet a failure in their __get__.
# (bug #1785)
- push(self.docdata(value, name, mod))
+ push(self.docdata(value, name, mod))
else:
push(self.document(value, name, mod,
funcs, classes, mdict, object))
@@ -907,7 +907,7 @@ class HTMLDoc(Doc):
hr.maybe()
push(msg)
for name, kind, homecls, value in ok:
- push(self.docdata(value, name, mod))
+ push(self.docdata(value, name, mod))
return attrs
def spilldata(msg, attrs, predicate):
@@ -917,8 +917,8 @@ class HTMLDoc(Doc):
push(msg)
for name, kind, homecls, value in ok:
base = self.docother(getattr(object, name), name, mod)
- doc = getdoc(value)
- if not doc:
+ doc = getdoc(value)
+ if not doc:
push('<dl><dt>%s</dl>\n' % base)
else:
doc = self.markup(getdoc(value), self.preformat,
@@ -955,7 +955,7 @@ class HTMLDoc(Doc):
thisclass = attrs[0][2]
attrs, inherited = _split_list(attrs, lambda t: t[2] is thisclass)
- if object is not builtins.object and thisclass is builtins.object:
+ if object is not builtins.object and thisclass is builtins.object:
attrs = inherited
continue
elif thisclass is object:
@@ -974,8 +974,8 @@ class HTMLDoc(Doc):
lambda t: t[1] == 'class method')
attrs = spill('Static methods %s' % tag, attrs,
lambda t: t[1] == 'static method')
- attrs = spilldescriptors("Readonly properties %s" % tag, attrs,
- lambda t: t[1] == 'readonly property')
+ attrs = spilldescriptors("Readonly properties %s" % tag, attrs,
+ lambda t: t[1] == 'readonly property')
attrs = spilldescriptors('Data descriptors %s' % tag, attrs,
lambda t: t[1] == 'data descriptor')
attrs = spilldata('Data and other attributes %s' % tag, attrs,
@@ -1039,12 +1039,12 @@ class HTMLDoc(Doc):
else:
note = ' unbound %s method' % self.classlink(imclass,mod)
- if (inspect.iscoroutinefunction(object) or
- inspect.isasyncgenfunction(object)):
- asyncqualifier = 'async '
- else:
- asyncqualifier = ''
-
+ if (inspect.iscoroutinefunction(object) or
+ inspect.isasyncgenfunction(object)):
+ asyncqualifier = 'async '
+ else:
+ asyncqualifier = ''
+
if name == realname:
title = '<a name="%s"><strong>%s</strong></a>' % (anchor, realname)
else:
@@ -1073,8 +1073,8 @@ class HTMLDoc(Doc):
if not argspec:
argspec = '(...)'
- decl = asyncqualifier + title + self.escape(argspec) + (note and
- self.grey('<font face="helvetica, arial">%s</font>' % note))
+ decl = asyncqualifier + title + self.escape(argspec) + (note and
+ self.grey('<font face="helvetica, arial">%s</font>' % note))
if skipdocs:
return '<dl><dt>%s</dt></dl>\n' % decl
@@ -1084,21 +1084,21 @@ class HTMLDoc(Doc):
doc = doc and '<dd><tt>%s</tt></dd>' % doc
return '<dl><dt>%s</dt>%s</dl>\n' % (decl, doc)
- def docdata(self, object, name=None, mod=None, cl=None):
- """Produce html documentation for a data descriptor."""
+ def docdata(self, object, name=None, mod=None, cl=None):
+ """Produce html documentation for a data descriptor."""
results = []
push = results.append
if name:
push('<dl><dt><strong>%s</strong></dt>\n' % name)
- doc = self.markup(getdoc(object), self.preformat)
- if doc:
+ doc = self.markup(getdoc(object), self.preformat)
+ if doc:
push('<dd><tt>%s</tt></dd>\n' % doc)
push('</dl>\n')
return ''.join(results)
- docproperty = docdata
+ docproperty = docdata
def docother(self, object, name=None, mod=None, *ignored):
"""Produce HTML documentation for a data object."""
@@ -1338,24 +1338,24 @@ location listed above.
push(' ' + makename(base))
push('')
- # List the built-in subclasses, if any:
- subclasses = sorted(
- (str(cls.__name__) for cls in type.__subclasses__(object)
- if not cls.__name__.startswith("_") and cls.__module__ == "builtins"),
- key=str.lower
- )
- no_of_subclasses = len(subclasses)
- MAX_SUBCLASSES_TO_DISPLAY = 4
- if subclasses:
- push("Built-in subclasses:")
- for subclassname in subclasses[:MAX_SUBCLASSES_TO_DISPLAY]:
- push(' ' + subclassname)
- if no_of_subclasses > MAX_SUBCLASSES_TO_DISPLAY:
- push(' ... and ' +
- str(no_of_subclasses - MAX_SUBCLASSES_TO_DISPLAY) +
- ' other subclasses')
- push('')
-
+ # List the built-in subclasses, if any:
+ subclasses = sorted(
+ (str(cls.__name__) for cls in type.__subclasses__(object)
+ if not cls.__name__.startswith("_") and cls.__module__ == "builtins"),
+ key=str.lower
+ )
+ no_of_subclasses = len(subclasses)
+ MAX_SUBCLASSES_TO_DISPLAY = 4
+ if subclasses:
+ push("Built-in subclasses:")
+ for subclassname in subclasses[:MAX_SUBCLASSES_TO_DISPLAY]:
+ push(' ' + subclassname)
+ if no_of_subclasses > MAX_SUBCLASSES_TO_DISPLAY:
+ push(' ... and ' +
+ str(no_of_subclasses - MAX_SUBCLASSES_TO_DISPLAY) +
+ ' other subclasses')
+ push('')
+
# Cute little class to pump out a horizontal rule between sections.
class HorizontalRule:
def __init__(self):
@@ -1377,7 +1377,7 @@ location listed above.
except Exception:
# Some descriptors may meet a failure in their __get__.
# (bug #1785)
- push(self.docdata(value, name, mod))
+ push(self.docdata(value, name, mod))
else:
push(self.document(value,
name, mod, object))
@@ -1389,7 +1389,7 @@ location listed above.
hr.maybe()
push(msg)
for name, kind, homecls, value in ok:
- push(self.docdata(value, name, mod))
+ push(self.docdata(value, name, mod))
return attrs
def spilldata(msg, attrs, predicate):
@@ -1398,7 +1398,7 @@ location listed above.
hr.maybe()
push(msg)
for name, kind, homecls, value in ok:
- doc = getdoc(value)
+ doc = getdoc(value)
try:
obj = getattr(object, name)
except AttributeError:
@@ -1418,7 +1418,7 @@ location listed above.
thisclass = attrs[0][2]
attrs, inherited = _split_list(attrs, lambda t: t[2] is thisclass)
- if object is not builtins.object and thisclass is builtins.object:
+ if object is not builtins.object and thisclass is builtins.object:
attrs = inherited
continue
elif thisclass is object:
@@ -1436,8 +1436,8 @@ location listed above.
lambda t: t[1] == 'class method')
attrs = spill("Static methods %s:\n" % tag, attrs,
lambda t: t[1] == 'static method')
- attrs = spilldescriptors("Readonly properties %s:\n" % tag, attrs,
- lambda t: t[1] == 'readonly property')
+ attrs = spilldescriptors("Readonly properties %s:\n" % tag, attrs,
+ lambda t: t[1] == 'readonly property')
attrs = spilldescriptors("Data descriptors %s:\n" % tag, attrs,
lambda t: t[1] == 'data descriptor')
attrs = spilldata("Data and other attributes %s:\n" % tag, attrs,
@@ -1473,12 +1473,12 @@ location listed above.
else:
note = ' unbound %s method' % classname(imclass,mod)
- if (inspect.iscoroutinefunction(object) or
- inspect.isasyncgenfunction(object)):
- asyncqualifier = 'async '
- else:
- asyncqualifier = ''
-
+ if (inspect.iscoroutinefunction(object) or
+ inspect.isasyncgenfunction(object)):
+ asyncqualifier = 'async '
+ else:
+ asyncqualifier = ''
+
if name == realname:
title = self.bold(realname)
else:
@@ -1502,7 +1502,7 @@ location listed above.
argspec = argspec[1:-1] # remove parentheses
if not argspec:
argspec = '(...)'
- decl = asyncqualifier + title + argspec + note
+ decl = asyncqualifier + title + argspec + note
if skipdocs:
return decl + '\n'
@@ -1510,21 +1510,21 @@ location listed above.
doc = getdoc(object) or ''
return decl + '\n' + (doc and self.indent(doc).rstrip() + '\n')
- def docdata(self, object, name=None, mod=None, cl=None):
- """Produce text documentation for a data descriptor."""
+ def docdata(self, object, name=None, mod=None, cl=None):
+ """Produce text documentation for a data descriptor."""
results = []
push = results.append
if name:
push(self.bold(name))
push('\n')
- doc = getdoc(object) or ''
+ doc = getdoc(object) or ''
if doc:
push(self.indent(doc))
push('\n')
return ''.join(results)
- docproperty = docdata
+ docproperty = docdata
def docother(self, object, name=None, mod=None, parent=None, maxlen=None, doc=None):
"""Produce text documentation for a data object."""
@@ -1534,10 +1534,10 @@ location listed above.
chop = maxlen - len(line)
if chop < 0: repr = repr[:chop] + '...'
line = (name and self.bold(name) + ' = ' or '') + repr
- if not doc:
- doc = getdoc(object)
- if doc:
- line += '\n' + self.indent(str(doc)) + '\n'
+ if not doc:
+ doc = getdoc(object)
+ if doc:
+ line += '\n' + self.indent(str(doc)) + '\n'
return line
class _PlainTextDoc(TextDoc):
@@ -1617,13 +1617,13 @@ def pipepager(text, cmd):
def tempfilepager(text, cmd):
"""Page through text by invoking a program on a temporary file."""
import tempfile
- with tempfile.TemporaryDirectory() as tempdir:
- filename = os.path.join(tempdir, 'pydoc.out')
- with open(filename, 'w', errors='backslashreplace',
- encoding=os.device_encoding(0) if
- sys.platform == 'win32' else None
- ) as file:
- file.write(text)
+ with tempfile.TemporaryDirectory() as tempdir:
+ filename = os.path.join(tempdir, 'pydoc.out')
+ with open(filename, 'w', errors='backslashreplace',
+ encoding=os.device_encoding(0) if
+ sys.platform == 'win32' else None
+ ) as file:
+ file.write(text)
os.system(cmd + ' "' + filename + '"')
def _escape_stdout(text):
@@ -1761,15 +1761,15 @@ def render_doc(thing, title='Python Library Documentation: %s', forceload=0,
if not (inspect.ismodule(object) or
inspect.isclass(object) or
inspect.isroutine(object) or
- inspect.isdatadescriptor(object) or
- _getdoc(object)):
+ inspect.isdatadescriptor(object) or
+ _getdoc(object)):
# If the passed object is a piece of data or an instance,
# document its available methods instead of its value.
- if hasattr(object, '__origin__'):
- object = object.__origin__
- else:
- object = type(object)
- desc += ' object'
+ if hasattr(object, '__origin__'):
+ object = object.__origin__
+ else:
+ object = type(object)
+ desc += ' object'
return title % desc + '\n\n' + renderer.document(object, name)
def doc(thing, title='Python Library Documentation: %s', forceload=0,
@@ -1818,7 +1818,7 @@ class Helper:
'False': '',
'None': '',
'True': '',
- '__peg_parser__': '',
+ '__peg_parser__': '',
'and': 'BOOLEAN',
'as': 'with',
'assert': ('assert', ''),
diff --git a/contrib/tools/python3/src/Lib/pydoc_data/topics.py b/contrib/tools/python3/src/Lib/pydoc_data/topics.py
index 929833791f..67a51977cf 100644
--- a/contrib/tools/python3/src/Lib/pydoc_data/topics.py
+++ b/contrib/tools/python3/src/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Thu Jan 13 21:46:32 2022
+# Autogenerated by Sphinx on Thu Jan 13 21:46:32 2022
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -99,26 +99,26 @@ topics = {'assert': 'The "assert" statement\n'
'assigned,\n'
' from left to right, to the corresponding targets.\n'
'\n'
- ' * If the target list contains one target prefixed with an '
- 'asterisk,\n'
- ' called a “starred” target: The object must be an iterable '
- 'with at\n'
- ' least as many items as there are targets in the target '
- 'list, minus\n'
- ' one. The first items of the iterable are assigned, from '
- 'left to\n'
- ' right, to the targets before the starred target. The '
- 'final items\n'
- ' of the iterable are assigned to the targets after the '
+ ' * If the target list contains one target prefixed with an '
+ 'asterisk,\n'
+ ' called a “starred” target: The object must be an iterable '
+ 'with at\n'
+ ' least as many items as there are targets in the target '
+ 'list, minus\n'
+ ' one. The first items of the iterable are assigned, from '
+ 'left to\n'
+ ' right, to the targets before the starred target. The '
+ 'final items\n'
+ ' of the iterable are assigned to the targets after the '
'starred\n'
- ' target. A list of the remaining items in the iterable is '
- 'then\n'
- ' assigned to the starred target (the list can be empty).\n'
+ ' target. A list of the remaining items in the iterable is '
+ 'then\n'
+ ' assigned to the starred target (the list can be empty).\n'
'\n'
' * Else: The object must be an iterable with the same number '
- 'of items\n'
- ' as there are targets in the target list, and the items '
- 'are\n'
+ 'of items\n'
+ ' as there are targets in the target list, and the items '
+ 'are\n'
' assigned, from left to right, to the corresponding '
'targets.\n'
'\n'
@@ -134,10 +134,10 @@ topics = {'assert': 'The "assert" statement\n'
'in the\n'
' current local namespace.\n'
'\n'
- ' * Otherwise: the name is bound to the object in the global '
- 'namespace\n'
- ' or the outer namespace determined by "nonlocal", '
- 'respectively.\n'
+ ' * Otherwise: the name is bound to the object in the global '
+ 'namespace\n'
+ ' or the outer namespace determined by "nonlocal", '
+ 'respectively.\n'
'\n'
' The name is rebound if it was already bound. This may cause '
'the\n'
@@ -161,21 +161,21 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Note: If the object is a class instance and the attribute '
'reference\n'
- ' occurs on both sides of the assignment operator, the '
- 'right-hand side\n'
- ' expression, "a.x" can access either an instance attribute or '
- '(if no\n'
- ' instance attribute exists) a class attribute. The left-hand '
- 'side\n'
- ' target "a.x" is always set as an instance attribute, '
- 'creating it if\n'
- ' necessary. Thus, the two occurrences of "a.x" do not '
- 'necessarily\n'
- ' refer to the same attribute: if the right-hand side '
- 'expression\n'
- ' refers to a class attribute, the left-hand side creates a '
- 'new\n'
- ' instance attribute as the target of the assignment:\n'
+ ' occurs on both sides of the assignment operator, the '
+ 'right-hand side\n'
+ ' expression, "a.x" can access either an instance attribute or '
+ '(if no\n'
+ ' instance attribute exists) a class attribute. The left-hand '
+ 'side\n'
+ ' target "a.x" is always set as an instance attribute, '
+ 'creating it if\n'
+ ' necessary. Thus, the two occurrences of "a.x" do not '
+ 'necessarily\n'
+ ' refer to the same attribute: if the right-hand side '
+ 'expression\n'
+ ' refers to a class attribute, the left-hand side creates a '
+ 'new\n'
+ ' instance attribute as the target of the assignment:\n'
'\n'
' class Cls:\n'
' x = 3 # class variable\n'
@@ -224,27 +224,27 @@ topics = {'assert': 'The "assert" statement\n'
'called with\n'
' appropriate arguments.\n'
'\n'
- '* If the target is a slicing: The primary expression in the '
- 'reference\n'
- ' is evaluated. It should yield a mutable sequence object '
- '(such as a\n'
- ' list). The assigned object should be a sequence object of '
- 'the same\n'
- ' type. Next, the lower and upper bound expressions are '
- 'evaluated,\n'
- ' insofar they are present; defaults are zero and the '
- 'sequence’s\n'
- ' length. The bounds should evaluate to integers. If either '
- 'bound is\n'
- ' negative, the sequence’s length is added to it. The '
- 'resulting\n'
- ' bounds are clipped to lie between zero and the sequence’s '
- 'length,\n'
- ' inclusive. Finally, the sequence object is asked to replace '
+ '* If the target is a slicing: The primary expression in the '
+ 'reference\n'
+ ' is evaluated. It should yield a mutable sequence object '
+ '(such as a\n'
+ ' list). The assigned object should be a sequence object of '
+ 'the same\n'
+ ' type. Next, the lower and upper bound expressions are '
+ 'evaluated,\n'
+ ' insofar they are present; defaults are zero and the '
+ 'sequence’s\n'
+ ' length. The bounds should evaluate to integers. If either '
+ 'bound is\n'
+ ' negative, the sequence’s length is added to it. The '
+ 'resulting\n'
+ ' bounds are clipped to lie between zero and the sequence’s '
+ 'length,\n'
+ ' inclusive. Finally, the sequence object is asked to replace '
'the\n'
- ' slice with the items of the assigned sequence. The length '
- 'of the\n'
- ' slice may be different from the length of the assigned '
+ ' slice with the items of the assigned sequence. The length '
+ 'of the\n'
+ ' slice may be different from the length of the assigned '
'sequence,\n'
' thus changing the length of the target sequence, if the '
'target\n'
@@ -357,13 +357,13 @@ topics = {'assert': 'The "assert" statement\n'
'a variable or attribute annotation and an optional assignment\n'
'statement:\n'
'\n'
- ' annotated_assignment_stmt ::= augtarget ":" expression\n'
- ' ["=" (starred_expression | '
- 'yield_expression)]\n'
+ ' annotated_assignment_stmt ::= augtarget ":" expression\n'
+ ' ["=" (starred_expression | '
+ 'yield_expression)]\n'
'\n'
'The difference from normal Assignment statements is that only '
'single\n'
- 'target is allowed.\n'
+ 'target is allowed.\n'
'\n'
'For simple names as assignment targets, if in class or module '
'scope,\n'
@@ -410,14 +410,14 @@ topics = {'assert': 'The "assert" statement\n'
'standard\n'
' syntax for type annotations that can be used in static '
'analysis\n'
- ' tools and IDEs.\n'
- '\n'
- 'Changed in version 3.8: Now annotated assignments allow same\n'
- 'expressions in the right hand side as the regular '
- 'assignments.\n'
- 'Previously, some expressions (like un-parenthesized tuple '
- 'expressions)\n'
- 'caused a syntax error.\n',
+ ' tools and IDEs.\n'
+ '\n'
+ 'Changed in version 3.8: Now annotated assignments allow same\n'
+ 'expressions in the right hand side as the regular '
+ 'assignments.\n'
+ 'Previously, some expressions (like un-parenthesized tuple '
+ 'expressions)\n'
+ 'caused a syntax error.\n',
'async': 'Coroutines\n'
'**********\n'
'\n'
@@ -459,35 +459,35 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' async_for_stmt ::= "async" for_stmt\n'
'\n'
- 'An *asynchronous iterable* provides an "__aiter__" method that\n'
- 'directly returns an *asynchronous iterator*, which can call\n'
- 'asynchronous code in its "__anext__" method.\n'
+ 'An *asynchronous iterable* provides an "__aiter__" method that\n'
+ 'directly returns an *asynchronous iterator*, which can call\n'
+ 'asynchronous code in its "__anext__" method.\n'
'\n'
'The "async for" statement allows convenient iteration over\n'
- 'asynchronous iterables.\n'
+ 'asynchronous iterables.\n'
'\n'
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
- '\n'
+ '\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
@@ -507,27 +507,27 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following code:\n'
'\n'
- ' async with EXPRESSION as TARGET:\n'
- ' SUITE\n'
+ ' async with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
- ' manager = (EXPRESSION)\n'
- ' aenter = type(manager).__aenter__\n'
- ' aexit = type(manager).__aexit__\n'
- ' value = await aenter(manager)\n'
- ' hit_except = False\n'
+ ' manager = (EXPRESSION)\n'
+ ' aenter = type(manager).__aenter__\n'
+ ' aexit = type(manager).__aexit__\n'
+ ' value = await aenter(manager)\n'
+ ' hit_except = False\n'
'\n'
' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
' except:\n'
- ' hit_except = True\n'
- ' if not await aexit(manager, *sys.exc_info()):\n'
+ ' hit_except = True\n'
+ ' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' await aexit(manager, None, None, None)\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
@@ -543,17 +543,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
- '[1] The exception is propagated to the invocation stack unless '
- 'there\n'
- ' is a "finally" clause which happens to raise another '
- 'exception.\n'
- ' That new exception causes the old one to be lost.\n'
+ '[1] The exception is propagated to the invocation stack unless '
+ 'there\n'
+ ' is a "finally" clause which happens to raise another '
+ 'exception.\n'
+ ' That new exception causes the old one to be lost.\n'
'\n'
- '[2] A string literal appearing as the first statement in the '
- 'function\n'
- ' body is transformed into the function’s "__doc__" attribute '
- 'and\n'
- ' therefore the function’s *docstring*.\n'
+ '[2] A string literal appearing as the first statement in the '
+ 'function\n'
+ ' body is transformed into the function’s "__doc__" attribute '
+ 'and\n'
+ ' therefore the function’s *docstring*.\n'
'\n'
'[3] A string literal appearing as the first statement in the class\n'
' body is transformed into the namespace’s "__doc__" item and\n'
@@ -691,19 +691,19 @@ topics = {'assert': 'The "assert" statement\n'
'needs, for\n'
' example, "object.__getattribute__(self, name)".\n'
'\n'
- ' Note:\n'
+ ' Note:\n'
+ '\n'
+ ' This method may still be bypassed when looking up '
+ 'special methods\n'
+ ' as the result of implicit invocation via language '
+ 'syntax or\n'
+ ' built-in functions. See Special method lookup.\n'
+ '\n'
+ ' For certain sensitive attribute accesses, raises an '
+ 'auditing event\n'
+ ' "object.__getattr__" with arguments "obj" and '
+ '"name".\n'
'\n'
- ' This method may still be bypassed when looking up '
- 'special methods\n'
- ' as the result of implicit invocation via language '
- 'syntax or\n'
- ' built-in functions. See Special method lookup.\n'
- '\n'
- ' For certain sensitive attribute accesses, raises an '
- 'auditing event\n'
- ' "object.__getattr__" with arguments "obj" and '
- '"name".\n'
- '\n'
'object.__setattr__(self, name, value)\n'
'\n'
' Called when an attribute assignment is attempted. '
@@ -720,11 +720,11 @@ topics = {'assert': 'The "assert" statement\n'
'for example,\n'
' "object.__setattr__(self, name, value)".\n'
'\n'
- ' For certain sensitive attribute assignments, raises '
- 'an auditing\n'
- ' event "object.__setattr__" with arguments "obj", '
- '"name", "value".\n'
- '\n'
+ ' For certain sensitive attribute assignments, raises '
+ 'an auditing\n'
+ ' event "object.__setattr__" with arguments "obj", '
+ '"name", "value".\n'
+ '\n'
'object.__delattr__(self, name)\n'
'\n'
' Like "__setattr__()" but for attribute deletion '
@@ -733,11 +733,11 @@ topics = {'assert': 'The "assert" statement\n'
'obj.name" is\n'
' meaningful for the object.\n'
'\n'
- ' For certain sensitive attribute deletions, raises an '
- 'auditing event\n'
- ' "object.__delattr__" with arguments "obj" and '
- '"name".\n'
- '\n'
+ ' For certain sensitive attribute deletions, raises an '
+ 'auditing event\n'
+ ' "object.__delattr__" with arguments "obj" and '
+ '"name".\n'
+ '\n'
'object.__dir__(self)\n'
'\n'
' Called when "dir()" is called on the object. A '
@@ -769,11 +769,11 @@ topics = {'assert': 'The "assert" statement\n'
'returned.\n'
'\n'
'The "__dir__" function should accept no arguments, and '
- 'return a\n'
- 'sequence of strings that represents the names accessible '
- 'on module. If\n'
- 'present, this function overrides the standard "dir()" '
- 'search on a\n'
+ 'return a\n'
+ 'sequence of strings that represents the names accessible '
+ 'on module. If\n'
+ 'present, this function overrides the standard "dir()" '
+ 'search on a\n'
'module.\n'
'\n'
'For a more fine grained customization of the module '
@@ -796,17 +796,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' sys.modules[__name__].__class__ = VerboseModule\n'
'\n'
- 'Note:\n'
+ 'Note:\n'
+ '\n'
+ ' Defining module "__getattr__" and setting module '
+ '"__class__" only\n'
+ ' affect lookups made using the attribute access syntax '
+ '– directly\n'
+ ' accessing the module globals (whether by code within '
+ 'the module, or\n'
+ ' via a reference to the module’s globals dictionary) is '
+ 'unaffected.\n'
'\n'
- ' Defining module "__getattr__" and setting module '
- '"__class__" only\n'
- ' affect lookups made using the attribute access syntax '
- '– directly\n'
- ' accessing the module globals (whether by code within '
- 'the module, or\n'
- ' via a reference to the module’s globals dictionary) is '
- 'unaffected.\n'
- '\n'
'Changed in version 3.5: "__class__" module attribute is '
'now writable.\n'
'\n'
@@ -835,47 +835,47 @@ topics = {'assert': 'The "assert" statement\n'
'whose name is\n'
'the key of the property in the owner class’ "__dict__".\n'
'\n'
- 'object.__get__(self, instance, owner=None)\n'
+ 'object.__get__(self, instance, owner=None)\n'
'\n'
' Called to get the attribute of the owner class (class '
'attribute\n'
' access) or of an instance of that class (instance '
'attribute\n'
- ' access). The optional *owner* argument is the owner '
- 'class, while\n'
- ' *instance* is the instance that the attribute was '
- 'accessed through,\n'
- ' or "None" when the attribute is accessed through the '
- '*owner*.\n'
+ ' access). The optional *owner* argument is the owner '
+ 'class, while\n'
+ ' *instance* is the instance that the attribute was '
+ 'accessed through,\n'
+ ' or "None" when the attribute is accessed through the '
+ '*owner*.\n'
+ '\n'
+ ' This method should return the computed attribute '
+ 'value or raise an\n'
+ ' "AttributeError" exception.\n'
+ '\n'
+ ' **PEP 252** specifies that "__get__()" is callable '
+ 'with one or two\n'
+ ' arguments. Python’s own built-in descriptors support '
+ 'this\n'
+ ' specification; however, it is likely that some '
+ 'third-party tools\n'
+ ' have descriptors that require both arguments. '
+ 'Python’s own\n'
+ ' "__getattribute__()" implementation always passes in '
+ 'both arguments\n'
+ ' whether they are required or not.\n'
'\n'
- ' This method should return the computed attribute '
- 'value or raise an\n'
- ' "AttributeError" exception.\n'
- '\n'
- ' **PEP 252** specifies that "__get__()" is callable '
- 'with one or two\n'
- ' arguments. Python’s own built-in descriptors support '
- 'this\n'
- ' specification; however, it is likely that some '
- 'third-party tools\n'
- ' have descriptors that require both arguments. '
- 'Python’s own\n'
- ' "__getattribute__()" implementation always passes in '
- 'both arguments\n'
- ' whether they are required or not.\n'
- '\n'
'object.__set__(self, instance, value)\n'
'\n'
' Called to set the attribute on an instance *instance* '
'of the owner\n'
' class to a new value, *value*.\n'
'\n'
- ' Note, adding "__set__()" or "__delete__()" changes '
- 'the kind of\n'
- ' descriptor to a “data descriptor”. See Invoking '
- 'Descriptors for\n'
- ' more details.\n'
- '\n'
+ ' Note, adding "__set__()" or "__delete__()" changes '
+ 'the kind of\n'
+ ' descriptor to a “data descriptor”. See Invoking '
+ 'Descriptors for\n'
+ ' more details.\n'
+ '\n'
'object.__delete__(self, instance)\n'
'\n'
' Called to delete the attribute on an instance '
@@ -888,24 +888,24 @@ topics = {'assert': 'The "assert" statement\n'
'created. The\n'
' descriptor has been assigned to *name*.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "__set_name__()" is only called implicitly as part '
- 'of the "type"\n'
- ' constructor, so it will need to be called '
- 'explicitly with the\n'
- ' appropriate parameters when a descriptor is added '
- 'to a class\n'
- ' after initial creation:\n'
- '\n'
- ' class A:\n'
- ' pass\n'
- ' descr = custom_descriptor()\n'
- ' A.attr = descr\n'
- " descr.__set_name__(A, 'attr')\n"
- '\n'
- ' See Creating the class object for more details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "__set_name__()" is only called implicitly as part '
+ 'of the "type"\n'
+ ' constructor, so it will need to be called '
+ 'explicitly with the\n'
+ ' appropriate parameters when a descriptor is added '
+ 'to a class\n'
+ ' after initial creation:\n'
+ '\n'
+ ' class A:\n'
+ ' pass\n'
+ ' descr = custom_descriptor()\n'
+ ' A.attr = descr\n'
+ " descr.__set_name__(A, 'attr')\n"
+ '\n'
+ ' See Creating the class object for more details.\n'
+ '\n'
' New in version 3.6.\n'
'\n'
'The attribute "__objclass__" is interpreted by the '
@@ -979,16 +979,16 @@ topics = {'assert': 'The "assert" statement\n'
'"super(B,\n'
' obj).m()" searches "obj.__class__.__mro__" for the '
'base class "A"\n'
- ' immediately following "B" and then invokes the '
+ ' immediately following "B" and then invokes the '
'descriptor with the\n'
' call: "A.__dict__[\'m\'].__get__(obj, '
'obj.__class__)".\n'
'\n'
'For instance bindings, the precedence of descriptor '
'invocation depends\n'
- 'on which descriptor methods are defined. A descriptor '
- 'can define any\n'
- 'combination of "__get__()", "__set__()" and '
+ 'on which descriptor methods are defined. A descriptor '
+ 'can define any\n'
+ 'combination of "__get__()", "__set__()" and '
'"__delete__()". If it\n'
'does not define "__get__()", then accessing the '
'attribute will return\n'
@@ -1002,23 +1002,23 @@ topics = {'assert': 'The "assert" statement\n'
'define both\n'
'"__get__()" and "__set__()", while non-data descriptors '
'have just the\n'
- '"__get__()" method. Data descriptors with "__get__()" '
- 'and "__set__()"\n'
- '(and/or "__delete__()") defined always override a '
- 'redefinition in an\n'
- 'instance dictionary. In contrast, non-data descriptors '
- 'can be\n'
- 'overridden by instances.\n'
+ '"__get__()" method. Data descriptors with "__get__()" '
+ 'and "__set__()"\n'
+ '(and/or "__delete__()") defined always override a '
+ 'redefinition in an\n'
+ 'instance dictionary. In contrast, non-data descriptors '
+ 'can be\n'
+ 'overridden by instances.\n'
'\n'
- 'Python methods (including those decorated with '
- '"@staticmethod" and\n'
- '"@classmethod") are implemented as non-data '
- 'descriptors. Accordingly,\n'
- 'instances can redefine and override methods. This '
- 'allows individual\n'
- 'instances to acquire behaviors that differ from other '
- 'instances of the\n'
- 'same class.\n'
+ 'Python methods (including those decorated with '
+ '"@staticmethod" and\n'
+ '"@classmethod") are implemented as non-data '
+ 'descriptors. Accordingly,\n'
+ 'instances can redefine and override methods. This '
+ 'allows individual\n'
+ 'instances to acquire behaviors that differ from other '
+ 'instances of the\n'
+ 'same class.\n'
'\n'
'The "property()" function is implemented as a data '
'descriptor.\n'
@@ -1031,12 +1031,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'*__slots__* allow us to explicitly declare data members '
'(like\n'
- 'properties) and deny the creation of "__dict__" and '
+ 'properties) and deny the creation of "__dict__" and '
'*__weakref__*\n'
'(unless explicitly declared in *__slots__* or available '
'in a parent.)\n'
'\n'
- 'The space saved over using "__dict__" can be '
+ 'The space saved over using "__dict__" can be '
'significant. Attribute\n'
'lookup speed can be significantly improved as well.\n'
'\n'
@@ -1048,7 +1048,7 @@ topics = {'assert': 'The "assert" statement\n'
'*__slots__*\n'
' reserves space for the declared variables and '
'prevents the\n'
- ' automatic creation of "__dict__" and *__weakref__* '
+ ' automatic creation of "__dict__" and *__weakref__* '
'for each\n'
' instance.\n'
'\n'
@@ -1057,11 +1057,11 @@ topics = {'assert': 'The "assert" statement\n'
'--------------------------\n'
'\n'
'* When inheriting from a class without *__slots__*, the '
- '"__dict__" and\n'
- ' *__weakref__* attribute of the instances will always '
- 'be accessible.\n'
+ '"__dict__" and\n'
+ ' *__weakref__* attribute of the instances will always '
+ 'be accessible.\n'
'\n'
- '* Without a "__dict__" variable, instances cannot be '
+ '* Without a "__dict__" variable, instances cannot be '
'assigned new\n'
' variables not listed in the *__slots__* definition. '
'Attempts to\n'
@@ -1074,41 +1074,41 @@ topics = {'assert': 'The "assert" statement\n'
' declaration.\n'
'\n'
'* Without a *__weakref__* variable for each instance, '
- 'classes defining\n'
- ' *__slots__* do not support "weak references" to its '
- 'instances. If\n'
- ' weak reference support is needed, then add '
- '"\'__weakref__\'" to the\n'
- ' sequence of strings in the *__slots__* declaration.\n'
+ 'classes defining\n'
+ ' *__slots__* do not support "weak references" to its '
+ 'instances. If\n'
+ ' weak reference support is needed, then add '
+ '"\'__weakref__\'" to the\n'
+ ' sequence of strings in the *__slots__* declaration.\n'
'\n'
'* *__slots__* are implemented at the class level by '
'creating\n'
- ' descriptors for each variable name. As a result, '
- 'class attributes\n'
- ' cannot be used to set default values for instance '
- 'variables defined\n'
- ' by *__slots__*; otherwise, the class attribute would '
- 'overwrite the\n'
- ' descriptor assignment.\n'
+ ' descriptors for each variable name. As a result, '
+ 'class attributes\n'
+ ' cannot be used to set default values for instance '
+ 'variables defined\n'
+ ' by *__slots__*; otherwise, the class attribute would '
+ 'overwrite the\n'
+ ' descriptor assignment.\n'
'\n'
'* The action of a *__slots__* declaration is not limited '
- 'to the class\n'
- ' where it is defined. *__slots__* declared in parents '
- 'are available\n'
- ' in child classes. However, child subclasses will get a '
- '"__dict__"\n'
- ' and *__weakref__* unless they also define *__slots__* '
- '(which should\n'
- ' only contain names of any *additional* slots).\n'
+ 'to the class\n'
+ ' where it is defined. *__slots__* declared in parents '
+ 'are available\n'
+ ' in child classes. However, child subclasses will get a '
+ '"__dict__"\n'
+ ' and *__weakref__* unless they also define *__slots__* '
+ '(which should\n'
+ ' only contain names of any *additional* slots).\n'
'\n'
'* If a class defines a slot also defined in a base '
- 'class, the instance\n'
- ' variable defined by the base class slot is '
- 'inaccessible (except by\n'
- ' retrieving its descriptor directly from the base '
- 'class). This\n'
- ' renders the meaning of the program undefined. In the '
- 'future, a\n'
+ 'class, the instance\n'
+ ' variable defined by the base class slot is '
+ 'inaccessible (except by\n'
+ ' retrieving its descriptor directly from the base '
+ 'class). This\n'
+ ' renders the meaning of the program undefined. In the '
+ 'future, a\n'
' check may be added to prevent this.\n'
'\n'
'* Nonempty *__slots__* does not work for classes derived '
@@ -1116,19 +1116,19 @@ topics = {'assert': 'The "assert" statement\n'
' “variable-length” built-in types such as "int", '
'"bytes" and "tuple".\n'
'\n'
- '* Any non-string *iterable* may be assigned to '
- '*__slots__*.\n'
+ '* Any non-string *iterable* may be assigned to '
+ '*__slots__*.\n'
+ '\n'
+ '* If a "dictionary" is used to assign *__slots__*, the '
+ 'dictionary keys\n'
+ ' will be used as the slot names. The values of the '
+ 'dictionary can be\n'
+ ' used to provide per-attribute docstrings that will be '
+ 'recognised by\n'
+ ' "inspect.getdoc()" and displayed in the output of '
+ '"help()".\n'
'\n'
- '* If a "dictionary" is used to assign *__slots__*, the '
- 'dictionary keys\n'
- ' will be used as the slot names. The values of the '
- 'dictionary can be\n'
- ' used to provide per-attribute docstrings that will be '
- 'recognised by\n'
- ' "inspect.getdoc()" and displayed in the output of '
- '"help()".\n'
- '\n'
- '* "__class__" assignment works only if both classes have '
+ '* "__class__" assignment works only if both classes have '
'the same\n'
' *__slots__*.\n'
'\n'
@@ -1138,13 +1138,13 @@ topics = {'assert': 'The "assert" statement\n'
'attributes created by\n'
' slots (the other bases must have empty slot layouts) - '
'violations\n'
- ' raise "TypeError".\n'
- '\n'
- '* If an *iterator* is used for *__slots__* then a '
- '*descriptor* is\n'
- ' created for each of the iterator’s values. However, '
- 'the *__slots__*\n'
- ' attribute will be an empty iterator.\n',
+ ' raise "TypeError".\n'
+ '\n'
+ '* If an *iterator* is used for *__slots__* then a '
+ '*descriptor* is\n'
+ ' created for each of the iterator’s values. However, '
+ 'the *__slots__*\n'
+ ' attribute will be an empty iterator.\n',
'attribute-references': 'Attribute references\n'
'********************\n'
'\n'
@@ -1266,10 +1266,10 @@ topics = {'assert': 'The "assert" statement\n'
'In the latter case, sequence repetition is performed; a negative\n'
'repetition factor yields an empty sequence.\n'
'\n'
- 'This operation can be customized using the special "__mul__()" '
- 'and\n'
- '"__rmul__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special "__mul__()" '
+ 'and\n'
+ '"__rmul__()" methods.\n'
+ '\n'
'The "@" (at) operator is intended to be used for matrix\n'
'multiplication. No builtin Python types implement this operator.\n'
'\n'
@@ -1285,10 +1285,10 @@ topics = {'assert': 'The "assert" statement\n'
'result. Division by zero raises the "ZeroDivisionError" '
'exception.\n'
'\n'
- 'This operation can be customized using the special "__truediv__()" '
- 'and\n'
- '"__floordiv__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special "__truediv__()" '
+ 'and\n'
+ '"__floordiv__()" methods.\n'
+ '\n'
'The "%" (modulo) operator yields the remainder from the division '
'of\n'
'the first argument by the second. The numeric arguments are '
@@ -1320,10 +1320,10 @@ topics = {'assert': 'The "assert" statement\n'
'string formatting is described in the Python Library Reference,\n'
'section printf-style String Formatting.\n'
'\n'
- 'The *modulo* operation can be customized using the special '
- '"__mod__()"\n'
- 'method.\n'
- '\n'
+ 'The *modulo* operation can be customized using the special '
+ '"__mod__()"\n'
+ 'method.\n'
+ '\n'
'The floor division operator, the modulo operator, and the '
'"divmod()"\n'
'function are not defined for complex numbers. Instead, convert to '
@@ -1338,16 +1338,16 @@ topics = {'assert': 'The "assert" statement\n'
'and then added together. In the latter case, the sequences are\n'
'concatenated.\n'
'\n'
- 'This operation can be customized using the special "__add__()" '
- 'and\n'
- '"__radd__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special "__add__()" '
+ 'and\n'
+ '"__radd__()" methods.\n'
+ '\n'
'The "-" (subtraction) operator yields the difference of its '
'arguments.\n'
- 'The numeric arguments are first converted to a common type.\n'
- '\n'
- 'This operation can be customized using the special "__sub__()" '
- 'method.\n',
+ 'The numeric arguments are first converted to a common type.\n'
+ '\n'
+ 'This operation can be customized using the special "__sub__()" '
+ 'method.\n',
'bitwise': 'Binary bitwise operations\n'
'*************************\n'
'\n'
@@ -1360,18 +1360,18 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "&" operator yields the bitwise AND of its arguments, which '
'must\n'
- 'be integers or one of them must be a custom object overriding\n'
- '"__and__()" or "__rand__()" special methods.\n'
+ 'be integers or one of them must be a custom object overriding\n'
+ '"__and__()" or "__rand__()" special methods.\n'
'\n'
'The "^" operator yields the bitwise XOR (exclusive OR) of its\n'
- 'arguments, which must be integers or one of them must be a '
- 'custom\n'
- 'object overriding "__xor__()" or "__rxor__()" special methods.\n'
+ 'arguments, which must be integers or one of them must be a '
+ 'custom\n'
+ 'object overriding "__xor__()" or "__rxor__()" special methods.\n'
'\n'
'The "|" operator yields the bitwise (inclusive) OR of its '
'arguments,\n'
- 'which must be integers or one of them must be a custom object\n'
- 'overriding "__or__()" or "__ror__()" special methods.\n',
+ 'which must be integers or one of them must be a custom object\n'
+ 'overriding "__or__()" or "__ror__()" special methods.\n',
'bltin-code-objects': 'Code Objects\n'
'************\n'
'\n'
@@ -1388,10 +1388,10 @@ topics = {'assert': 'The "assert" statement\n'
'through their "__code__" attribute. See also the '
'"code" module.\n'
'\n'
- 'Accessing "__code__" raises an auditing event '
- '"object.__getattr__"\n'
- 'with arguments "obj" and ""__code__"".\n'
- '\n'
+ 'Accessing "__code__" raises an auditing event '
+ '"object.__getattr__"\n'
+ 'with arguments "obj" and ""__code__"".\n'
+ '\n'
'A code object can be executed or evaluated by passing '
'it (instead of a\n'
'source string) to the "exec()" or "eval()" built-in '
@@ -1512,8 +1512,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Called when the instance is “called” as a function; if '
'this method\n'
- ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
- ' "type(x).__call__(x, arg1, ...)".\n',
+ ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
+ ' "type(x).__call__(x, arg1, ...)".\n',
'calls': 'Calls\n'
'*****\n'
'\n'
@@ -1529,8 +1529,8 @@ topics = {'assert': 'The "assert" statement\n'
' | starred_and_keywords ["," '
'keywords_arguments]\n'
' | keywords_arguments\n'
- ' positional_arguments ::= positional_item ("," positional_item)*\n'
- ' positional_item ::= assignment_expression | "*" expression\n'
+ ' positional_arguments ::= positional_item ("," positional_item)*\n'
+ ' positional_item ::= assignment_expression | "*" expression\n'
' starred_and_keywords ::= ("*" expression | keyword_item)\n'
' ("," "*" expression | "," '
'keyword_item)*\n'
@@ -1770,10 +1770,10 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
'function decorators. The result is then bound to the class name.\n'
'\n'
- 'Changed in version 3.9: Classes may be decorated with any valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Classes may be decorated with any valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'**Programmer’s note:** Variables defined in the class definition '
'are\n'
'class attributes; they are shared by instances. Instance '
@@ -1817,11 +1817,11 @@ topics = {'assert': 'The "assert" statement\n'
' comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "!="\n'
' | "is" ["not"] | ["not"] "in"\n'
'\n'
- 'Comparisons yield boolean values: "True" or "False". Custom '
- '*rich\n'
- 'comparison methods* may return non-boolean values. In this '
- 'case Python\n'
- 'will call "bool()" on such value in boolean contexts.\n'
+ 'Comparisons yield boolean values: "True" or "False". Custom '
+ '*rich\n'
+ 'comparison methods* may return non-boolean values. In this '
+ 'case Python\n'
+ 'will call "bool()" on such value in boolean contexts.\n'
'\n'
'Comparisons can be chained arbitrarily, e.g., "x < y <= z" '
'is\n'
@@ -1934,16 +1934,16 @@ topics = {'assert': 'The "assert" statement\n'
' value is false. A counter-intuitive implication is that '
'not-a-number\n'
' values are not equal to themselves. For example, if "x =\n'
- ' float(\'NaN\')", "3 < x", "x < 3" and "x == x" are all '
- 'false, while "x\n'
- ' != x" is true. This behavior is compliant with IEEE 754.\n'
+ ' float(\'NaN\')", "3 < x", "x < 3" and "x == x" are all '
+ 'false, while "x\n'
+ ' != x" is true. This behavior is compliant with IEEE 754.\n'
+ '\n'
+ '* "None" and "NotImplemented" are singletons. **PEP 8** '
+ 'advises that\n'
+ ' comparisons for singletons should always be done with "is" '
+ 'or "is\n'
+ ' not", never the equality operators.\n'
'\n'
- '* "None" and "NotImplemented" are singletons. **PEP 8** '
- 'advises that\n'
- ' comparisons for singletons should always be done with "is" '
- 'or "is\n'
- ' not", never the equality operators.\n'
- '\n'
'* Binary sequences (instances of "bytes" or "bytearray") can '
'be\n'
' compared within and across their types. They compare\n'
@@ -1958,24 +1958,24 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Strings and binary sequences cannot be directly compared.\n'
'\n'
- '* Sequences (instances of "tuple", "list", or "range") can be '
- 'compared\n'
- ' only within each of their types, with the restriction that '
- 'ranges do\n'
- ' not support order comparison. Equality comparison across '
- 'these\n'
- ' types results in inequality, and ordering comparison across '
- 'these\n'
- ' types raises "TypeError".\n'
+ '* Sequences (instances of "tuple", "list", or "range") can be '
+ 'compared\n'
+ ' only within each of their types, with the restriction that '
+ 'ranges do\n'
+ ' not support order comparison. Equality comparison across '
+ 'these\n'
+ ' types results in inequality, and ordering comparison across '
+ 'these\n'
+ ' types raises "TypeError".\n'
'\n'
' Sequences compare lexicographically using comparison of\n'
- ' corresponding elements. The built-in containers typically '
- 'assume\n'
- ' identical objects are equal to themselves. That lets them '
- 'bypass\n'
- ' equality tests for identical objects to improve performance '
- 'and to\n'
- ' maintain their internal invariants.\n'
+ ' corresponding elements. The built-in containers typically '
+ 'assume\n'
+ ' identical objects are equal to themselves. That lets them '
+ 'bypass\n'
+ ' equality tests for identical objects to improve performance '
+ 'and to\n'
+ ' maintain their internal invariants.\n'
'\n'
' Lexicographical comparison between built-in collections '
'works as\n'
@@ -1990,8 +1990,8 @@ topics = {'assert': 'The "assert" statement\n'
' false because the type is not the same).\n'
'\n'
' * Collections that support order comparison are ordered the '
- 'same as\n'
- ' their first unequal elements (for example, "[1,2,x] <= '
+ 'same as\n'
+ ' their first unequal elements (for example, "[1,2,x] <= '
'[1,2,y]"\n'
' has the same value as "x <= y"). If a corresponding '
'element does\n'
@@ -2009,8 +2009,8 @@ topics = {'assert': 'The "assert" statement\n'
'"TypeError".\n'
'\n'
'* Sets (instances of "set" or "frozenset") can be compared '
- 'within and\n'
- ' across their types.\n'
+ 'within and\n'
+ ' across their types.\n'
'\n'
' They define order comparison operators to mean subset and '
'superset\n'
@@ -2029,8 +2029,8 @@ topics = {'assert': 'The "assert" statement\n'
' Comparison of sets enforces reflexivity of its elements.\n'
'\n'
'* Most other built-in types have no comparison methods '
- 'implemented, so\n'
- ' they inherit the default comparison behavior.\n'
+ 'implemented, so\n'
+ ' they inherit the default comparison behavior.\n'
'\n'
'User-defined classes that customize their comparison behavior '
'should\n'
@@ -2079,10 +2079,10 @@ topics = {'assert': 'The "assert" statement\n'
' "total_ordering()" decorator.\n'
'\n'
'* The "hash()" result should be consistent with equality. '
- 'Objects that\n'
- ' are equal should either have the same hash value, or be '
- 'marked as\n'
- ' unhashable.\n'
+ 'Objects that\n'
+ ' are equal should either have the same hash value, or be '
+ 'marked as\n'
+ ' unhashable.\n'
'\n'
'Python does not enforce these consistency rules. In fact, '
'the\n'
@@ -2124,26 +2124,26 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For user-defined classes which do not define "__contains__()" '
'but do\n'
- 'define "__iter__()", "x in y" is "True" if some value "z", '
- 'for which\n'
- 'the expression "x is z or x == z" is true, is produced while '
- 'iterating\n'
- 'over "y". If an exception is raised during the iteration, it '
- 'is as if\n'
- '"in" raised that exception.\n'
+ 'define "__iter__()", "x in y" is "True" if some value "z", '
+ 'for which\n'
+ 'the expression "x is z or x == z" is true, is produced while '
+ 'iterating\n'
+ 'over "y". If an exception is raised during the iteration, it '
+ 'is as if\n'
+ '"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class '
'defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a '
'non-\n'
- 'negative integer index *i* such that "x is y[i] or x == '
- 'y[i]", and no\n'
- 'lower integer index raises the "IndexError" exception. (If '
- 'any other\n'
+ 'negative integer index *i* such that "x is y[i] or x == '
+ 'y[i]", and no\n'
+ 'lower integer index raises the "IndexError" exception. (If '
+ 'any other\n'
'exception is raised, it is as if "in" raised that '
'exception).\n'
'\n'
- 'The operator "not in" is defined to have the inverse truth '
+ 'The operator "not in" is defined to have the inverse truth '
'value of\n'
'"in".\n'
'\n'
@@ -2151,13 +2151,13 @@ topics = {'assert': 'The "assert" statement\n'
'Identity comparisons\n'
'====================\n'
'\n'
- 'The operators "is" and "is not" test for an object’s '
- 'identity: "x is\n'
- 'y" is true if and only if *x* and *y* are the same object. '
- 'An\n'
- 'Object’s identity is determined using the "id()" function. '
- '"x is not\n'
- 'y" yields the inverse truth value. [4]\n',
+ 'The operators "is" and "is not" test for an object’s '
+ 'identity: "x is\n'
+ 'y" is true if and only if *x* and *y* are the same object. '
+ 'An\n'
+ 'Object’s identity is determined using the "id()" function. '
+ '"x is not\n'
+ 'y" yields the inverse truth value. [4]\n',
'compound': 'Compound statements\n'
'*******************\n'
'\n'
@@ -2248,8 +2248,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
- ' if_stmt ::= "if" assignment_expression ":" suite\n'
- ' ("elif" assignment_expression ":" suite)*\n'
+ ' if_stmt ::= "if" assignment_expression ":" suite\n'
+ ' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the '
@@ -2272,7 +2272,7 @@ topics = {'assert': 'The "assert" statement\n'
'an\n'
'expression is true:\n'
'\n'
- ' while_stmt ::= "while" assignment_expression ":" suite\n'
+ ' while_stmt ::= "while" assignment_expression ":" suite\n'
' ["else" ":" suite]\n'
'\n'
'This repeatedly tests the expression and, if it is true, '
@@ -2332,7 +2332,7 @@ topics = {'assert': 'The "assert" statement\n'
'next\n'
'item.\n'
'\n'
- 'The for-loop makes assignments to the variables in the target '
+ 'The for-loop makes assignments to the variables in the target '
'list.\n'
'This overwrites all previous assignments to those variables '
'including\n'
@@ -2356,11 +2356,11 @@ topics = {'assert': 'The "assert" statement\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, '
'2]".\n'
'\n'
- 'Note:\n'
- '\n'
- ' There is a subtlety when the sequence is being modified by the '
- 'loop\n'
- ' (this can only occur for mutable sequences, e.g. lists). An\n'
+ 'Note:\n'
+ '\n'
+ ' There is a subtlety when the sequence is being modified by the '
+ 'loop\n'
+ ' (this can only occur for mutable sequences, e.g. lists). An\n'
' internal counter is used to keep track of which item is used '
'next,\n'
' and this is incremented on each iteration. When this counter '
@@ -2418,9 +2418,9 @@ topics = {'assert': 'The "assert" statement\n'
'compatible\n'
'with an exception if it is the class or a base class of the '
'exception\n'
- 'object, or a tuple containing an item that is the class or a '
- 'base\n'
- 'class of the exception object.\n'
+ 'object, or a tuple containing an item that is the class or a '
+ 'base\n'
+ 'class of the exception object.\n'
'\n'
'If no except clause matches the exception, the search for an '
'exception\n'
@@ -2514,9 +2514,9 @@ topics = {'assert': 'The "assert" statement\n'
'saved\n'
'exception is set as the context of the new exception. If the '
'"finally"\n'
- 'clause executes a "return", "break" or "continue" statement, the '
- 'saved\n'
- 'exception is discarded:\n'
+ 'clause executes a "return", "break" or "continue" statement, the '
+ 'saved\n'
+ 'exception is discarded:\n'
'\n'
' >>> def f():\n'
' ... try:\n'
@@ -2535,7 +2535,7 @@ topics = {'assert': 'The "assert" statement\n'
'the\n'
'"try" suite of a "try"…"finally" statement, the "finally" clause '
'is\n'
- 'also executed ‘on the way out.’\n'
+ 'also executed ‘on the way out.’\n'
'\n'
'The return value of a function is determined by the last '
'"return"\n'
@@ -2559,12 +2559,12 @@ topics = {'assert': 'The "assert" statement\n'
'generate\n'
'exceptions may be found in section The raise statement.\n'
'\n'
- 'Changed in version 3.8: Prior to Python 3.8, a "continue" '
- 'statement\n'
- 'was illegal in the "finally" clause due to a problem with the\n'
- 'implementation.\n'
+ 'Changed in version 3.8: Prior to Python 3.8, a "continue" '
+ 'statement\n'
+ 'was illegal in the "finally" clause due to a problem with the\n'
+ 'implementation.\n'
+ '\n'
'\n'
- '\n'
'The "with" statement\n'
'====================\n'
'\n'
@@ -2584,33 +2584,33 @@ topics = {'assert': 'The "assert" statement\n'
'follows:\n'
'\n'
'1. The context expression (the expression given in the '
- '"with_item") is\n'
- ' evaluated to obtain a context manager.\n'
+ '"with_item") is\n'
+ ' evaluated to obtain a context manager.\n'
+ '\n'
+ '2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
- '2. The context manager’s "__enter__()" is loaded for later use.\n'
+ '3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
- '3. The context manager’s "__exit__()" is loaded for later use.\n'
+ '4. The context manager’s "__enter__()" method is invoked.\n'
+ '\n'
+ '5. If a target was included in the "with" statement, the return '
+ 'value\n'
+ ' from "__enter__()" is assigned to it.\n'
'\n'
- '4. The context manager’s "__enter__()" method is invoked.\n'
- '\n'
- '5. If a target was included in the "with" statement, the return '
- 'value\n'
- ' from "__enter__()" is assigned to it.\n'
+ ' Note:\n'
'\n'
- ' Note:\n'
- '\n'
- ' The "with" statement guarantees that if the "__enter__()" '
- 'method\n'
- ' returns without an error, then "__exit__()" will always be\n'
+ ' The "with" statement guarantees that if the "__enter__()" '
+ 'method\n'
+ ' returns without an error, then "__exit__()" will always be\n'
' called. Thus, if an error occurs during the assignment to '
'the\n'
' target list, it will be treated the same as an error '
'occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
- '6. The suite is executed.\n'
+ '6. The suite is executed.\n'
'\n'
- '7. The context manager’s "__exit__()" method is invoked. If an\n'
+ '7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, '
'and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
@@ -2632,42 +2632,42 @@ topics = {'assert': 'The "assert" statement\n'
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
- 'The following code:\n'
- '\n'
- ' with EXPRESSION as TARGET:\n'
- ' SUITE\n'
- '\n'
- 'is semantically equivalent to:\n'
- '\n'
- ' manager = (EXPRESSION)\n'
- ' enter = type(manager).__enter__\n'
- ' exit = type(manager).__exit__\n'
- ' value = enter(manager)\n'
- ' hit_except = False\n'
- '\n'
- ' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
- ' except:\n'
- ' hit_except = True\n'
- ' if not exit(manager, *sys.exc_info()):\n'
- ' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' exit(manager, None, None, None)\n'
- '\n'
+ 'The following code:\n'
+ '\n'
+ ' with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
+ '\n'
+ 'is semantically equivalent to:\n'
+ '\n'
+ ' manager = (EXPRESSION)\n'
+ ' enter = type(manager).__enter__\n'
+ ' exit = type(manager).__exit__\n'
+ ' value = enter(manager)\n'
+ ' hit_except = False\n'
+ '\n'
+ ' try:\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
+ ' except:\n'
+ ' hit_except = True\n'
+ ' if not exit(manager, *sys.exc_info()):\n'
+ ' raise\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' exit(manager, None, None, None)\n'
+ '\n'
'With more than one item, the context managers are processed as '
'if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context '
'expressions.\n'
@@ -2687,24 +2687,24 @@ topics = {'assert': 'The "assert" statement\n'
'(see\n'
'section The standard type hierarchy):\n'
'\n'
- ' funcdef ::= [decorators] "def" funcname "(" '
+ ' funcdef ::= [decorators] "def" funcname "(" '
'[parameter_list] ")"\n'
' ["->" expression] ":" suite\n'
- ' decorators ::= decorator+\n'
- ' decorator ::= "@" assignment_expression '
- 'NEWLINE\n'
- ' parameter_list ::= defparameter ("," '
- 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
- ' | parameter_list_no_posonly\n'
- ' parameter_list_no_posonly ::= defparameter ("," '
- 'defparameter)* ["," [parameter_list_starargs]]\n'
- ' | parameter_list_starargs\n'
- ' parameter_list_starargs ::= "*" [parameter] ("," '
+ ' decorators ::= decorator+\n'
+ ' decorator ::= "@" assignment_expression '
+ 'NEWLINE\n'
+ ' parameter_list ::= defparameter ("," '
+ 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
+ ' | parameter_list_no_posonly\n'
+ ' parameter_list_no_posonly ::= defparameter ("," '
+ 'defparameter)* ["," [parameter_list_starargs]]\n'
+ ' | parameter_list_starargs\n'
+ ' parameter_list_starargs ::= "*" [parameter] ("," '
'defparameter)* ["," ["**" parameter [","]]]\n'
' | "**" parameter [","]\n'
- ' parameter ::= identifier [":" expression]\n'
- ' defparameter ::= parameter ["=" expression]\n'
- ' funcname ::= identifier\n'
+ ' parameter ::= identifier [":" expression]\n'
+ ' defparameter ::= parameter ["=" expression]\n'
+ ' funcname ::= identifier\n'
'\n'
'A function definition is an executable statement. Its execution '
'binds\n'
@@ -2745,11 +2745,11 @@ topics = {'assert': 'The "assert" statement\n'
'the name\n'
'"func".\n'
'\n'
- 'Changed in version 3.9: Functions may be decorated with any '
- 'valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Functions may be decorated with any '
+ 'valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'When one or more *parameters* have the form *parameter* "="\n'
'*expression*, the function is said to have “default parameter '
'values.”\n'
@@ -2792,7 +2792,7 @@ topics = {'assert': 'The "assert" statement\n'
'Calls.\n'
'A function call always assigns values to all parameters '
'mentioned in\n'
- 'the parameter list, either from positional arguments, from '
+ 'the parameter list, either from positional arguments, from '
'keyword\n'
'arguments, or from default values. If the form “"*identifier"” '
'is\n'
@@ -2804,15 +2804,15 @@ topics = {'assert': 'The "assert" statement\n'
'new\n'
'empty mapping of the same type. Parameters after “"*"” or\n'
'“"*identifier"” are keyword-only parameters and may only be '
- 'passed by\n'
- 'keyword arguments. Parameters before “"/"” are positional-only\n'
- 'parameters and may only be passed by positional arguments.\n'
- '\n'
- 'Changed in version 3.8: The "/" function parameter syntax may be '
- 'used\n'
- 'to indicate positional-only parameters. See **PEP 570** for '
- 'details.\n'
- '\n'
+ 'passed by\n'
+ 'keyword arguments. Parameters before “"/"” are positional-only\n'
+ 'parameters and may only be passed by positional arguments.\n'
+ '\n'
+ 'Changed in version 3.8: The "/" function parameter syntax may be '
+ 'used\n'
+ 'to indicate positional-only parameters. See **PEP 570** for '
+ 'details.\n'
+ '\n'
'Parameters may have an *annotation* of the form “": '
'expression"”\n'
'following the parameter name. Any parameter may have an '
@@ -2957,10 +2957,10 @@ topics = {'assert': 'The "assert" statement\n'
'function decorators. The result is then bound to the class '
'name.\n'
'\n'
- 'Changed in version 3.9: Classes may be decorated with any valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Classes may be decorated with any valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'**Programmer’s note:** Variables defined in the class definition '
'are\n'
'class attributes; they are shared by instances. Instance '
@@ -3034,35 +3034,35 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' async_for_stmt ::= "async" for_stmt\n'
'\n'
- 'An *asynchronous iterable* provides an "__aiter__" method that\n'
- 'directly returns an *asynchronous iterator*, which can call\n'
- 'asynchronous code in its "__anext__" method.\n'
+ 'An *asynchronous iterable* provides an "__aiter__" method that\n'
+ 'directly returns an *asynchronous iterator*, which can call\n'
+ 'asynchronous code in its "__anext__" method.\n'
'\n'
'The "async for" statement allows convenient iteration over\n'
- 'asynchronous iterables.\n'
+ 'asynchronous iterables.\n'
'\n'
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
- '\n'
+ '\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
@@ -3082,27 +3082,27 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following code:\n'
'\n'
- ' async with EXPRESSION as TARGET:\n'
- ' SUITE\n'
+ ' async with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
- ' manager = (EXPRESSION)\n'
- ' aenter = type(manager).__aenter__\n'
- ' aexit = type(manager).__aexit__\n'
- ' value = await aenter(manager)\n'
- ' hit_except = False\n'
+ ' manager = (EXPRESSION)\n'
+ ' aenter = type(manager).__aenter__\n'
+ ' aexit = type(manager).__aexit__\n'
+ ' value = await aenter(manager)\n'
+ ' hit_except = False\n'
'\n'
' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
' except:\n'
- ' hit_except = True\n'
- ' if not await aexit(manager, *sys.exc_info()):\n'
+ ' hit_except = True\n'
+ ' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' await aexit(manager, None, None, None)\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
@@ -3119,17 +3119,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
- '[1] The exception is propagated to the invocation stack unless '
- 'there\n'
- ' is a "finally" clause which happens to raise another '
- 'exception.\n'
- ' That new exception causes the old one to be lost.\n'
+ '[1] The exception is propagated to the invocation stack unless '
+ 'there\n'
+ ' is a "finally" clause which happens to raise another '
+ 'exception.\n'
+ ' That new exception causes the old one to be lost.\n'
'\n'
- '[2] A string literal appearing as the first statement in the '
- 'function\n'
- ' body is transformed into the function’s "__doc__" attribute '
- 'and\n'
- ' therefore the function’s *docstring*.\n'
+ '[2] A string literal appearing as the first statement in the '
+ 'function\n'
+ ' body is transformed into the function’s "__doc__" attribute '
+ 'and\n'
+ ' therefore the function’s *docstring*.\n'
'\n'
'[3] A string literal appearing as the first statement in the '
'class\n'
@@ -3204,10 +3204,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'"continue" may only occur syntactically nested in a "for" or '
'"while"\n'
- 'loop, but not nested in a function or class definition within '
- 'that\n'
- 'loop. It continues with the next cycle of the nearest enclosing '
- 'loop.\n'
+ 'loop, but not nested in a function or class definition within '
+ 'that\n'
+ 'loop. It continues with the next cycle of the nearest enclosing '
+ 'loop.\n'
'\n'
'When "continue" passes control out of a "try" statement with a\n'
'"finally" clause, that "finally" clause is executed before '
@@ -3218,7 +3218,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'When a description of an arithmetic operator below uses the '
'phrase\n'
- '“the numeric arguments are converted to a common type”, this '
+ '“the numeric arguments are converted to a common type”, this '
'means\n'
'that the operator implementation for built-in types works as '
'follows:\n'
@@ -3228,8 +3228,8 @@ topics = {'assert': 'The "assert" statement\n'
' complex;\n'
'\n'
'* otherwise, if either argument is a floating point number, '
- 'the other\n'
- ' is converted to floating point;\n'
+ 'the other\n'
+ ' is converted to floating point;\n'
'\n'
'* otherwise, both must be integers and no conversion is '
'necessary.\n'
@@ -3267,15 +3267,15 @@ topics = {'assert': 'The "assert" statement\n'
'returning\n'
' it.\n'
'\n'
- ' If "__new__()" is invoked during object construction and '
- 'it returns\n'
- ' an instance of *cls*, then the new instance’s '
- '"__init__()" method\n'
- ' will be invoked like "__init__(self[, ...])", where '
- '*self* is the\n'
- ' new instance and the remaining arguments are the same as '
- 'were\n'
- ' passed to the object constructor.\n'
+ ' If "__new__()" is invoked during object construction and '
+ 'it returns\n'
+ ' an instance of *cls*, then the new instance’s '
+ '"__init__()" method\n'
+ ' will be invoked like "__init__(self[, ...])", where '
+ '*self* is the\n'
+ ' new instance and the remaining arguments are the same as '
+ 'were\n'
+ ' passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, '
'then the new\n'
@@ -3339,9 +3339,9 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
' objects that still exist when the interpreter exits.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "del x" doesn’t directly call "x.__del__()" — the '
+ ' Note:\n'
+ '\n'
+ ' "del x" doesn’t directly call "x.__del__()" — the '
'former\n'
' decrements the reference count for "x" by one, and the '
'latter is\n'
@@ -3365,16 +3365,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' See also: Documentation for the "gc" module.\n'
'\n'
- ' Warning:\n'
+ ' Warning:\n'
+ '\n'
+ ' Due to the precarious circumstances under which '
+ '"__del__()"\n'
+ ' methods are invoked, exceptions that occur during '
+ 'their execution\n'
+ ' are ignored, and a warning is printed to "sys.stderr" '
+ 'instead.\n'
+ ' In particular:\n'
'\n'
- ' Due to the precarious circumstances under which '
- '"__del__()"\n'
- ' methods are invoked, exceptions that occur during '
- 'their execution\n'
- ' are ignored, and a warning is printed to "sys.stderr" '
- 'instead.\n'
- ' In particular:\n'
- '\n'
' * "__del__()" can be invoked when arbitrary code is '
'being\n'
' executed, including from any arbitrary thread. If '
@@ -3386,20 +3386,20 @@ topics = {'assert': 'The "assert" statement\n'
' that gets interrupted to execute "__del__()".\n'
'\n'
' * "__del__()" can be executed during interpreter '
- 'shutdown. As a\n'
- ' consequence, the global variables it needs to access '
- '(including\n'
- ' other modules) may already have been deleted or set '
- 'to "None".\n'
- ' Python guarantees that globals whose name begins '
- 'with a single\n'
- ' underscore are deleted from their module before '
- 'other globals\n'
- ' are deleted; if no other references to such globals '
- 'exist, this\n'
- ' may help in assuring that imported modules are still '
- 'available\n'
- ' at the time when the "__del__()" method is called.\n'
+ 'shutdown. As a\n'
+ ' consequence, the global variables it needs to access '
+ '(including\n'
+ ' other modules) may already have been deleted or set '
+ 'to "None".\n'
+ ' Python guarantees that globals whose name begins '
+ 'with a single\n'
+ ' underscore are deleted from their module before '
+ 'other globals\n'
+ ' are deleted; if no other references to such globals '
+ 'exist, this\n'
+ ' may help in assuring that imported modules are still '
+ 'available\n'
+ ' at the time when the "__del__()" method is called.\n'
'\n'
'object.__repr__(self)\n'
'\n'
@@ -3460,11 +3460,11 @@ topics = {'assert': 'The "assert" statement\n'
'"str.format()"\n'
' method, to produce a “formatted” string representation '
'of an\n'
- ' object. The *format_spec* argument is a string that '
+ ' object. The *format_spec* argument is a string that '
'contains a\n'
' description of the formatting options desired. The '
'interpretation\n'
- ' of the *format_spec* argument is up to the type '
+ ' of the *format_spec* argument is up to the type '
'implementing\n'
' "__format__()", however most classes will either '
'delegate\n'
@@ -3484,7 +3484,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Changed in version 3.7: "object.__format__(x, \'\')" is '
'now\n'
- ' equivalent to "str(x)" rather than "format(str(x), '
+ ' equivalent to "str(x)" rather than "format(str(x), '
'\'\')".\n'
'\n'
'object.__lt__(self, other)\n'
@@ -3518,21 +3518,21 @@ topics = {'assert': 'The "assert" statement\n'
' on the value to determine if the result is true or '
'false.\n'
'\n'
- ' By default, "object" implements "__eq__()" by using '
- '"is", returning\n'
- ' "NotImplemented" in the case of a false comparison: '
- '"True if x is y\n'
- ' else NotImplemented". For "__ne__()", by default it '
- 'delegates to\n'
- ' "__eq__()" and inverts the result unless it is '
- '"NotImplemented".\n'
- ' There are no other implied relationships among the '
- 'comparison\n'
- ' operators or default implementations; for example, the '
- 'truth of\n'
- ' "(x<y or x==y)" does not imply "x<=y". To automatically '
- 'generate\n'
- ' ordering operations from a single root operation, see\n'
+ ' By default, "object" implements "__eq__()" by using '
+ '"is", returning\n'
+ ' "NotImplemented" in the case of a false comparison: '
+ '"True if x is y\n'
+ ' else NotImplemented". For "__ne__()", by default it '
+ 'delegates to\n'
+ ' "__eq__()" and inverts the result unless it is '
+ '"NotImplemented".\n'
+ ' There are no other implied relationships among the '
+ 'comparison\n'
+ ' operators or default implementations; for example, the '
+ 'truth of\n'
+ ' "(x<y or x==y)" does not imply "x<=y". To automatically '
+ 'generate\n'
+ ' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n'
'\n'
' See the paragraph on "__hash__()" for some important '
@@ -3580,22 +3580,22 @@ topics = {'assert': 'The "assert" statement\n'
' def __hash__(self):\n'
' return hash((self.name, self.nick, self.color))\n'
'\n'
- ' Note:\n'
- '\n'
- ' "hash()" truncates the value returned from an object’s '
- 'custom\n'
- ' "__hash__()" method to the size of a "Py_ssize_t". '
- 'This is\n'
- ' typically 8 bytes on 64-bit builds and 4 bytes on '
- '32-bit builds.\n'
- ' If an object’s "__hash__()" must interoperate on '
- 'builds of\n'
- ' different bit sizes, be sure to check the width on all '
- 'supported\n'
- ' builds. An easy way to do this is with "python -c '
- '"import sys;\n'
- ' print(sys.hash_info.width)"".\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "hash()" truncates the value returned from an object’s '
+ 'custom\n'
+ ' "__hash__()" method to the size of a "Py_ssize_t". '
+ 'This is\n'
+ ' typically 8 bytes on 64-bit builds and 4 bytes on '
+ '32-bit builds.\n'
+ ' If an object’s "__hash__()" must interoperate on '
+ 'builds of\n'
+ ' different bit sizes, be sure to check the width on all '
+ 'supported\n'
+ ' builds. An easy way to do this is with "python -c '
+ '"import sys;\n'
+ ' print(sys.hash_info.width)"".\n'
+ '\n'
' If a class does not define an "__eq__()" method it '
'should not\n'
' define a "__hash__()" operation either; if it defines '
@@ -3652,24 +3652,24 @@ topics = {'assert': 'The "assert" statement\n'
' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n'
'\n'
- ' Note:\n'
- '\n'
- ' By default, the "__hash__()" values of str and bytes '
- 'objects are\n'
- ' “salted” with an unpredictable random value. Although '
- 'they\n'
- ' remain constant within an individual Python process, '
- 'they are not\n'
- ' predictable between repeated invocations of '
- 'Python.This is\n'
- ' intended to provide protection against a '
- 'denial-of-service caused\n'
- ' by carefully-chosen inputs that exploit the worst '
- 'case\n'
- ' performance of a dict insertion, O(n^2) complexity. '
- 'See\n'
- ' http://www.ocert.org/advisories/ocert-2011-003.html '
- 'for\n'
+ ' Note:\n'
+ '\n'
+ ' By default, the "__hash__()" values of str and bytes '
+ 'objects are\n'
+ ' “salted” with an unpredictable random value. Although '
+ 'they\n'
+ ' remain constant within an individual Python process, '
+ 'they are not\n'
+ ' predictable between repeated invocations of '
+ 'Python.This is\n'
+ ' intended to provide protection against a '
+ 'denial-of-service caused\n'
+ ' by carefully-chosen inputs that exploit the worst '
+ 'case\n'
+ ' performance of a dict insertion, O(n^2) complexity. '
+ 'See\n'
+ ' http://www.ocert.org/advisories/ocert-2011-003.html '
+ 'for\n'
' details.Changing hash values affects the iteration '
'order of sets.\n'
' Python has never made guarantees about this ordering '
@@ -3770,16 +3770,16 @@ topics = {'assert': 'The "assert" statement\n'
'debugger will pause execution just before the first line of the\n'
'module.\n'
'\n'
- 'The typical usage to break into the debugger is to insert:\n'
+ 'The typical usage to break into the debugger is to insert:\n'
'\n'
' import pdb; pdb.set_trace()\n'
'\n'
- 'at the location you want to break into the debugger, and then '
- 'run the\n'
- 'program. You can then step through the code following this '
- 'statement,\n'
- 'and continue running without the debugger using the "continue"\n'
- 'command.\n'
+ 'at the location you want to break into the debugger, and then '
+ 'run the\n'
+ 'program. You can then step through the code following this '
+ 'statement,\n'
+ 'and continue running without the debugger using the "continue"\n'
+ 'command.\n'
'\n'
'New in version 3.7: The built-in "breakpoint()", when called '
'with\n'
@@ -3911,8 +3911,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
" import pdb; pdb.Pdb(skip=['django.*']).set_trace()\n"
'\n'
- ' Raises an auditing event "pdb.Pdb" with no arguments.\n'
- '\n'
+ ' Raises an auditing event "pdb.Pdb" with no arguments.\n'
+ '\n'
' New in version 3.1: The *skip* argument.\n'
'\n'
' New in version 3.2: The *nosigint* argument. Previously, a '
@@ -4058,7 +4058,7 @@ topics = {'assert': 'The "assert" statement\n'
'is\n'
' first hit. The arguments are the same as for "break".\n'
'\n'
- 'cl(ear) [filename:lineno | bpnumber ...]\n'
+ 'cl(ear) [filename:lineno | bpnumber ...]\n'
'\n'
' With a *filename:lineno* argument, clear all the breakpoints '
'at\n'
@@ -4068,7 +4068,7 @@ topics = {'assert': 'The "assert" statement\n'
'first\n'
' ask confirmation).\n'
'\n'
- 'disable [bpnumber ...]\n'
+ 'disable [bpnumber ...]\n'
'\n'
' Disable the breakpoints given as a space separated list of\n'
' breakpoint numbers. Disabling a breakpoint means it cannot '
@@ -4077,7 +4077,7 @@ topics = {'assert': 'The "assert" statement\n'
'breakpoint, it\n'
' remains in the list of breakpoints and can be (re-)enabled.\n'
'\n'
- 'enable [bpnumber ...]\n'
+ 'enable [bpnumber ...]\n'
'\n'
' Enable the breakpoints specified.\n'
'\n'
@@ -4248,12 +4248,12 @@ topics = {'assert': 'The "assert" statement\n'
'its\n'
' value.\n'
'\n'
- ' Note:\n'
+ ' Note:\n'
+ '\n'
+ ' "print()" can also be used, but is not a debugger command — '
+ 'this\n'
+ ' executes the Python "print()" function.\n'
'\n'
- ' "print()" can also be used, but is not a debugger command — '
- 'this\n'
- ' executes the Python "print()" function.\n'
- '\n'
'pp expression\n'
'\n'
' Like the "p" command, except the value of the expression is '
@@ -4369,23 +4369,23 @@ topics = {'assert': 'The "assert" statement\n'
' Quit from the debugger. The program being executed is '
'aborted.\n'
'\n'
- 'debug code\n'
- '\n'
- ' Enter a recursive debugger that steps through the code '
- 'argument\n'
- ' (which is an arbitrary expression or statement to be executed '
- 'in\n'
- ' the current environment).\n'
- '\n'
- 'retval\n'
- '\n'
- ' Print the return value for the last return of a function.\n'
- '\n'
+ 'debug code\n'
+ '\n'
+ ' Enter a recursive debugger that steps through the code '
+ 'argument\n'
+ ' (which is an arbitrary expression or statement to be executed '
+ 'in\n'
+ ' the current environment).\n'
+ '\n'
+ 'retval\n'
+ '\n'
+ ' Print the return value for the last return of a function.\n'
+ '\n'
'-[ Footnotes ]-\n'
'\n'
'[1] Whether a frame is considered to originate in a certain '
- 'module is\n'
- ' determined by the "__name__" in the frame globals.\n',
+ 'module is\n'
+ ' determined by the "__name__" in the frame globals.\n',
'del': 'The "del" statement\n'
'*******************\n'
'\n'
@@ -4458,14 +4458,14 @@ topics = {'assert': 'The "assert" statement\n'
'section The standard type hierarchy. (To summarize, the key type\n'
'should be *hashable*, which excludes all mutable objects.) Clashes\n'
'between duplicate keys are not detected; the last datum (textually\n'
- 'rightmost in the display) stored for a given key value prevails.\n'
- '\n'
- 'Changed in version 3.8: Prior to Python 3.8, in dict '
- 'comprehensions,\n'
- 'the evaluation order of key and value was not well-defined. In\n'
- 'CPython, the value was evaluated before the key. Starting with '
- '3.8,\n'
- 'the key is evaluated before the value, as proposed by **PEP 572**.\n',
+ 'rightmost in the display) stored for a given key value prevails.\n'
+ '\n'
+ 'Changed in version 3.8: Prior to Python 3.8, in dict '
+ 'comprehensions,\n'
+ 'the evaluation order of key and value was not well-defined. In\n'
+ 'CPython, the value was evaluated before the key. Starting with '
+ '3.8,\n'
+ 'the key is evaluated before the value, as proposed by **PEP 572**.\n',
'dynamic-features': 'Interaction with dynamic features\n'
'*********************************\n'
'\n'
@@ -4497,8 +4497,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
- ' if_stmt ::= "if" assignment_expression ":" suite\n'
- ' ("elif" assignment_expression ":" suite)*\n'
+ ' if_stmt ::= "if" assignment_expression ":" suite\n'
+ ' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the expressions '
@@ -4551,7 +4551,7 @@ topics = {'assert': 'The "assert" statement\n'
'terminates\n'
'execution of the program, or returns to its interactive main '
'loop. In\n'
- 'either case, it prints a stack traceback, except when the '
+ 'either case, it prints a stack traceback, except when the '
'exception is\n'
'"SystemExit".\n'
'\n'
@@ -4565,16 +4565,16 @@ topics = {'assert': 'The "assert" statement\n'
'about the\n'
'exceptional condition.\n'
'\n'
- 'Note:\n'
+ 'Note:\n'
+ '\n'
+ ' Exception messages are not part of the Python API. Their '
+ 'contents\n'
+ ' may change from one version of Python to the next without '
+ 'warning\n'
+ ' and should not be relied on by code which will run under '
+ 'multiple\n'
+ ' versions of the interpreter.\n'
'\n'
- ' Exception messages are not part of the Python API. Their '
- 'contents\n'
- ' may change from one version of Python to the next without '
- 'warning\n'
- ' and should not be relied on by code which will run under '
- 'multiple\n'
- ' versions of the interpreter.\n'
- '\n'
'See also the description of the "try" statement in section The '
'try\n'
'statement and "raise" statement in section The raise '
@@ -4583,9 +4583,9 @@ topics = {'assert': 'The "assert" statement\n'
'-[ Footnotes ]-\n'
'\n'
'[1] This limitation occurs because the code that is executed '
- 'by these\n'
- ' operations is not available at the time the module is '
- 'compiled.\n',
+ 'by these\n'
+ ' operations is not available at the time the module is '
+ 'compiled.\n',
'execmodel': 'Execution model\n'
'***************\n'
'\n'
@@ -4607,13 +4607,13 @@ topics = {'assert': 'The "assert" statement\n'
'(a\n'
'command specified on the interpreter command line with the '
'"-c"\n'
- 'option) is a code block. A module run as a top level script (as '
- 'module\n'
- '"__main__") from the command line using a "-m" argument is also '
- 'a code\n'
- 'block. The string argument passed to the built-in functions '
- '"eval()"\n'
- 'and "exec()" is a code block.\n'
+ 'option) is a code block. A module run as a top level script (as '
+ 'module\n'
+ '"__main__") from the command line using a "-m" argument is also '
+ 'a code\n'
+ 'block. The string argument passed to the built-in functions '
+ '"eval()"\n'
+ 'and "exec()" is a code block.\n'
'\n'
'A code block is executed in an *execution frame*. A frame '
'contains\n'
@@ -4721,9 +4721,9 @@ topics = {'assert': 'The "assert" statement\n'
'operations.\n'
'\n'
'If the "global" statement occurs within a block, all uses of '
- 'the names\n'
- 'specified in the statement refer to the bindings of those names '
- 'in the\n'
+ 'the names\n'
+ 'specified in the statement refer to the bindings of those names '
+ 'in the\n'
'top-level namespace. Names are resolved in the top-level '
'namespace by\n'
'searching the global namespace, i.e. the namespace of the '
@@ -4732,10 +4732,10 @@ topics = {'assert': 'The "assert" statement\n'
'namespace\n'
'of the module "builtins". The global namespace is searched '
'first. If\n'
- 'the names are not found there, the builtins namespace is '
- 'searched.\n'
- 'The "global" statement must precede all uses of the listed '
- 'names.\n'
+ 'the names are not found there, the builtins namespace is '
+ 'searched.\n'
+ 'The "global" statement must precede all uses of the listed '
+ 'names.\n'
'\n'
'The "global" statement has the same scope as a name binding '
'operation\n'
@@ -4878,7 +4878,7 @@ topics = {'assert': 'The "assert" statement\n'
'terminates\n'
'execution of the program, or returns to its interactive main '
'loop. In\n'
- 'either case, it prints a stack traceback, except when the '
+ 'either case, it prints a stack traceback, except when the '
'exception is\n'
'"SystemExit".\n'
'\n'
@@ -4892,16 +4892,16 @@ topics = {'assert': 'The "assert" statement\n'
'about the\n'
'exceptional condition.\n'
'\n'
- 'Note:\n'
+ 'Note:\n'
+ '\n'
+ ' Exception messages are not part of the Python API. Their '
+ 'contents\n'
+ ' may change from one version of Python to the next without '
+ 'warning\n'
+ ' and should not be relied on by code which will run under '
+ 'multiple\n'
+ ' versions of the interpreter.\n'
'\n'
- ' Exception messages are not part of the Python API. Their '
- 'contents\n'
- ' may change from one version of Python to the next without '
- 'warning\n'
- ' and should not be relied on by code which will run under '
- 'multiple\n'
- ' versions of the interpreter.\n'
- '\n'
'See also the description of the "try" statement in section The '
'try\n'
'statement and "raise" statement in section The raise '
@@ -4909,10 +4909,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
- '[1] This limitation occurs because the code that is executed by '
- 'these\n'
- ' operations is not available at the time the module is '
- 'compiled.\n',
+ '[1] This limitation occurs because the code that is executed by '
+ 'these\n'
+ ' operations is not available at the time the module is '
+ 'compiled.\n',
'exprlists': 'Expression lists\n'
'****************\n'
'\n'
@@ -4921,7 +4921,7 @@ topics = {'assert': 'The "assert" statement\n'
'[","]\n'
' starred_expression ::= expression | (starred_item ",")* '
'[starred_item]\n'
- ' starred_item ::= assignment_expression | "*" or_expr\n'
+ ' starred_item ::= assignment_expression | "*" or_expr\n'
'\n'
'Except when part of a list or set display, an expression list\n'
'containing at least one comma yields a tuple. The length of '
@@ -5012,7 +5012,7 @@ topics = {'assert': 'The "assert" statement\n'
'with the next item, or with the "else" clause if there is no next\n'
'item.\n'
'\n'
- 'The for-loop makes assignments to the variables in the target list.\n'
+ 'The for-loop makes assignments to the variables in the target list.\n'
'This overwrites all previous assignments to those variables '
'including\n'
'those made in the suite of the for-loop:\n'
@@ -5031,11 +5031,11 @@ topics = {'assert': 'The "assert" statement\n'
'i\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, 2]".\n'
'\n'
- 'Note:\n'
- '\n'
- ' There is a subtlety when the sequence is being modified by the '
- 'loop\n'
- ' (this can only occur for mutable sequences, e.g. lists). An\n'
+ 'Note:\n'
+ '\n'
+ ' There is a subtlety when the sequence is being modified by the '
+ 'loop\n'
+ ' (this can only occur for mutable sequences, e.g. lists). An\n'
' internal counter is used to keep track of which item is used next,\n'
' and this is incremented on each iteration. When this counter has\n'
' reached the length of the sequence the loop terminates. This '
@@ -5062,11 +5062,11 @@ topics = {'assert': 'The "assert" statement\n'
'"Formatter",\n'
'subclasses can define their own format string syntax). The '
'syntax is\n'
- 'related to that of formatted string literals, but it is '
- 'less\n'
- 'sophisticated and, in particular, does not support '
- 'arbitrary\n'
- 'expressions.\n'
+ 'related to that of formatted string literals, but it is '
+ 'less\n'
+ 'sophisticated and, in particular, does not support '
+ 'arbitrary\n'
+ 'expressions.\n'
'\n'
'Format strings contain “replacement fields” surrounded by '
'curly braces\n'
@@ -5236,11 +5236,11 @@ topics = {'assert': 'The "assert" statement\n'
'only\n'
'supported by the numeric types.\n'
'\n'
- 'A general convention is that an empty format specification '
+ 'A general convention is that an empty format specification '
'produces\n'
'the same result as if you had called "str()" on the value. '
'A non-empty\n'
- 'format specification typically modifies the result.\n'
+ 'format specification typically modifies the result.\n'
'\n'
'The general form of a *standard format specifier* is:\n'
'\n'
@@ -5260,7 +5260,7 @@ topics = {'assert': 'The "assert" statement\n'
'character that can be any character and defaults to a space '
'if\n'
'omitted. It is not possible to use a literal curly brace '
- '(”"{"” or\n'
+ '(”"{"” or\n'
'“"}"”) as the *fill* character in a formatted string '
'literal or when\n'
'using the "str.format()" method. However, it is possible '
@@ -5278,7 +5278,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
- '|===========|============================================================|\n'
+ '|===========|============================================================|\n'
' | "\'<\'" | Forces the field to be left-aligned '
'within the available |\n'
' | | space (this is the default for most '
@@ -5327,7 +5327,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
- '|===========|============================================================|\n'
+ '|===========|============================================================|\n'
' | "\'+\'" | indicates that a sign should be used for '
'both positive as |\n'
' | | well as negative '
@@ -5351,23 +5351,23 @@ topics = {'assert': 'The "assert" statement\n'
'for the\n'
'conversion. The alternate form is defined differently for '
'different\n'
- 'types. This option is only valid for integer, float and '
- 'complex\n'
- 'types. For integers, when binary, octal, or hexadecimal '
- 'output is\n'
- 'used, this option adds the respective prefix "\'0b\'", '
- '"\'0o\'", "\'0x\'",\n'
- 'or "\'0X\'" to the output value. For float and complex the '
- 'alternate\n'
- 'form causes the result of the conversion to always contain '
- 'a decimal-\n'
- 'point character, even if no digits follow it. Normally, a '
- 'decimal-\n'
- 'point character appears in the result of these conversions '
- 'only if a\n'
- 'digit follows it. In addition, for "\'g\'" and "\'G\'" '
- 'conversions,\n'
- 'trailing zeros are not removed from the result.\n'
+ 'types. This option is only valid for integer, float and '
+ 'complex\n'
+ 'types. For integers, when binary, octal, or hexadecimal '
+ 'output is\n'
+ 'used, this option adds the respective prefix "\'0b\'", '
+ '"\'0o\'", "\'0x\'",\n'
+ 'or "\'0X\'" to the output value. For float and complex the '
+ 'alternate\n'
+ 'form causes the result of the conversion to always contain '
+ 'a decimal-\n'
+ 'point character, even if no digits follow it. Normally, a '
+ 'decimal-\n'
+ 'point character appears in the result of these conversions '
+ 'only if a\n'
+ 'digit follows it. In addition, for "\'g\'" and "\'G\'" '
+ 'conversions,\n'
+ 'trailing zeros are not removed from the result.\n'
'\n'
'The "\',\'" option signals the use of a comma for a '
'thousands separator.\n'
@@ -5392,12 +5392,12 @@ topics = {'assert': 'The "assert" statement\n'
'Changed in version 3.6: Added the "\'_\'" option (see also '
'**PEP 515**).\n'
'\n'
- '*width* is a decimal integer defining the minimum total '
- 'field width,\n'
- 'including any prefixes, separators, and other formatting '
- 'characters.\n'
- 'If not specified, then the field width will be determined '
- 'by the\n'
+ '*width* is a decimal integer defining the minimum total '
+ 'field width,\n'
+ 'including any prefixes, separators, and other formatting '
+ 'characters.\n'
+ 'If not specified, then the field width will be determined '
+ 'by the\n'
'content.\n'
'\n'
'When no explicit alignment is given, preceding the *width* '
@@ -5433,7 +5433,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
- '|===========|============================================================|\n'
+ '|===========|============================================================|\n'
' | "\'s\'" | String format. This is the default type '
'for strings and |\n'
' | | may be '
@@ -5453,7 +5453,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
- '|===========|============================================================|\n'
+ '|===========|============================================================|\n'
' | "\'b\'" | Binary format. Outputs the number in '
'base 2. |\n'
' '
@@ -5480,12 +5480,12 @@ topics = {'assert': 'The "assert" statement\n'
'+-----------+------------------------------------------------------------+\n'
' | "\'X\'" | Hex format. Outputs the number in base '
'16, using upper- |\n'
- ' | | case letters for the digits above 9. In '
- 'case "\'#\'" is |\n'
- ' | | specified, the prefix "\'0x\'" will be '
- 'upper-cased to "\'0X\'" |\n'
- ' | | as '
- 'well. |\n'
+ ' | | case letters for the digits above 9. In '
+ 'case "\'#\'" is |\n'
+ ' | | specified, the prefix "\'0x\'" will be '
+ 'upper-cased to "\'0X\'" |\n'
+ ' | | as '
+ 'well. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'n\'" | Number. This is the same as "\'d\'", '
@@ -5509,8 +5509,8 @@ topics = {'assert': 'The "assert" statement\n'
'the integer\n'
'to a floating point number before formatting.\n'
'\n'
- 'The available presentation types for "float" and "Decimal" '
- 'values are:\n'
+ 'The available presentation types for "float" and "Decimal" '
+ 'values are:\n'
'\n'
' '
'+-----------+------------------------------------------------------------+\n'
@@ -5518,51 +5518,51 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
- '|===========|============================================================|\n'
- ' | "\'e\'" | Scientific notation. For a given '
- 'precision "p", formats |\n'
- ' | | the number in scientific notation with the '
- 'letter ‘e’ |\n'
- ' | | separating the coefficient from the '
- 'exponent. The |\n'
- ' | | coefficient has one digit before and "p" '
- 'digits after the |\n'
- ' | | decimal point, for a total of "p + 1" '
- 'significant digits. |\n'
- ' | | With no precision given, uses a precision '
- 'of "6" digits |\n'
- ' | | after the decimal point for "float", and '
- 'shows all |\n'
- ' | | coefficient digits for "Decimal". If no '
- 'digits follow the |\n'
- ' | | decimal point, the decimal point is also '
- 'removed unless |\n'
- ' | | the "#" option is '
- 'used. |\n'
+ '|===========|============================================================|\n'
+ ' | "\'e\'" | Scientific notation. For a given '
+ 'precision "p", formats |\n'
+ ' | | the number in scientific notation with the '
+ 'letter ‘e’ |\n'
+ ' | | separating the coefficient from the '
+ 'exponent. The |\n'
+ ' | | coefficient has one digit before and "p" '
+ 'digits after the |\n'
+ ' | | decimal point, for a total of "p + 1" '
+ 'significant digits. |\n'
+ ' | | With no precision given, uses a precision '
+ 'of "6" digits |\n'
+ ' | | after the decimal point for "float", and '
+ 'shows all |\n'
+ ' | | coefficient digits for "Decimal". If no '
+ 'digits follow the |\n'
+ ' | | decimal point, the decimal point is also '
+ 'removed unless |\n'
+ ' | | the "#" option is '
+ 'used. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
- ' | "\'E\'" | Scientific notation. Same as "\'e\'" '
- 'except it uses an upper |\n'
+ ' | "\'E\'" | Scientific notation. Same as "\'e\'" '
+ 'except it uses an upper |\n'
' | | case ‘E’ as the separator '
'character. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
- ' | "\'f\'" | Fixed-point notation. For a given '
- 'precision "p", formats |\n'
- ' | | the number as a decimal number with '
- 'exactly "p" digits |\n'
- ' | | following the decimal point. With no '
- 'precision given, uses |\n'
- ' | | a precision of "6" digits after the '
- 'decimal point for |\n'
- ' | | "float", and uses a precision large enough '
- 'to show all |\n'
- ' | | coefficient digits for "Decimal". If no '
- 'digits follow the |\n'
- ' | | decimal point, the decimal point is also '
- 'removed unless |\n'
- ' | | the "#" option is '
- 'used. |\n'
+ ' | "\'f\'" | Fixed-point notation. For a given '
+ 'precision "p", formats |\n'
+ ' | | the number as a decimal number with '
+ 'exactly "p" digits |\n'
+ ' | | following the decimal point. With no '
+ 'precision given, uses |\n'
+ ' | | a precision of "6" digits after the '
+ 'decimal point for |\n'
+ ' | | "float", and uses a precision large enough '
+ 'to show all |\n'
+ ' | | coefficient digits for "Decimal". If no '
+ 'digits follow the |\n'
+ ' | | decimal point, the decimal point is also '
+ 'removed unless |\n'
+ ' | | the "#" option is '
+ 'used. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'F\'" | Fixed-point notation. Same as "\'f\'", '
@@ -5578,51 +5578,51 @@ topics = {'assert': 'The "assert" statement\n'
' | | formats the result in either fixed-point '
'format or in |\n'
' | | scientific notation, depending on its '
- 'magnitude. A |\n'
- ' | | precision of "0" is treated as equivalent '
- 'to a precision |\n'
- ' | | of "1". The precise rules are as follows: '
- 'suppose that |\n'
- ' | | the result formatted with presentation '
- 'type "\'e\'" and |\n'
- ' | | precision "p-1" would have exponent '
- '"exp". Then, if "m <= |\n'
- ' | | exp < p", where "m" is -4 for floats and '
- '-6 for |\n'
- ' | | "Decimals", the number is formatted with '
- 'presentation type |\n'
- ' | | "\'f\'" and precision "p-1-exp". '
- 'Otherwise, the number is |\n'
+ 'magnitude. A |\n'
+ ' | | precision of "0" is treated as equivalent '
+ 'to a precision |\n'
+ ' | | of "1". The precise rules are as follows: '
+ 'suppose that |\n'
+ ' | | the result formatted with presentation '
+ 'type "\'e\'" and |\n'
+ ' | | precision "p-1" would have exponent '
+ '"exp". Then, if "m <= |\n'
+ ' | | exp < p", where "m" is -4 for floats and '
+ '-6 for |\n'
+ ' | | "Decimals", the number is formatted with '
+ 'presentation type |\n'
+ ' | | "\'f\'" and precision "p-1-exp". '
+ 'Otherwise, the number is |\n'
' | | formatted with presentation type "\'e\'" '
- 'and precision |\n'
- ' | | "p-1". In both cases insignificant '
- 'trailing zeros are |\n'
- ' | | removed from the significand, and the '
- 'decimal point is |\n'
- ' | | also removed if there are no remaining '
- 'digits following |\n'
- ' | | it, unless the "\'#\'" option is used. '
- 'With no precision |\n'
- ' | | given, uses a precision of "6" significant '
- 'digits for |\n'
- ' | | "float". For "Decimal", the coefficient of '
- 'the result is |\n'
- ' | | formed from the coefficient digits of the '
- 'value; |\n'
- ' | | scientific notation is used for values '
- 'smaller than "1e-6" |\n'
- ' | | in absolute value and values where the '
- 'place value of the |\n'
- ' | | least significant digit is larger than 1, '
- 'and fixed-point |\n'
- ' | | notation is used otherwise. Positive and '
- 'negative |\n'
- ' | | infinity, positive and negative zero, and '
- 'nans, are |\n'
- ' | | formatted as "inf", "-inf", "0", "-0" and '
- '"nan" |\n'
- ' | | respectively, regardless of the '
- 'precision. |\n'
+ 'and precision |\n'
+ ' | | "p-1". In both cases insignificant '
+ 'trailing zeros are |\n'
+ ' | | removed from the significand, and the '
+ 'decimal point is |\n'
+ ' | | also removed if there are no remaining '
+ 'digits following |\n'
+ ' | | it, unless the "\'#\'" option is used. '
+ 'With no precision |\n'
+ ' | | given, uses a precision of "6" significant '
+ 'digits for |\n'
+ ' | | "float". For "Decimal", the coefficient of '
+ 'the result is |\n'
+ ' | | formed from the coefficient digits of the '
+ 'value; |\n'
+ ' | | scientific notation is used for values '
+ 'smaller than "1e-6" |\n'
+ ' | | in absolute value and values where the '
+ 'place value of the |\n'
+ ' | | least significant digit is larger than 1, '
+ 'and fixed-point |\n'
+ ' | | notation is used otherwise. Positive and '
+ 'negative |\n'
+ ' | | infinity, positive and negative zero, and '
+ 'nans, are |\n'
+ ' | | formatted as "inf", "-inf", "0", "-0" and '
+ '"nan" |\n'
+ ' | | respectively, regardless of the '
+ 'precision. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'G\'" | General format. Same as "\'g\'" except '
@@ -5647,24 +5647,24 @@ topics = {'assert': 'The "assert" statement\n'
'percent sign. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
- ' | None | For "float" this is the same as "\'g\'", '
- 'except that when |\n'
- ' | | fixed-point notation is used to format the '
- 'result, it |\n'
- ' | | always includes at least one digit past '
- 'the decimal point. |\n'
- ' | | The precision used is as large as needed '
- 'to represent the |\n'
- ' | | given value faithfully. For "Decimal", '
- 'this is the same |\n'
- ' | | as either "\'g\'" or "\'G\'" depending on '
- 'the value of |\n'
- ' | | "context.capitals" for the current decimal '
- 'context. The |\n'
- ' | | overall effect is to match the output of '
- '"str()" as |\n'
- ' | | altered by the other format '
- 'modifiers. |\n'
+ ' | None | For "float" this is the same as "\'g\'", '
+ 'except that when |\n'
+ ' | | fixed-point notation is used to format the '
+ 'result, it |\n'
+ ' | | always includes at least one digit past '
+ 'the decimal point. |\n'
+ ' | | The precision used is as large as needed '
+ 'to represent the |\n'
+ ' | | given value faithfully. For "Decimal", '
+ 'this is the same |\n'
+ ' | | as either "\'g\'" or "\'G\'" depending on '
+ 'the value of |\n'
+ ' | | "context.capitals" for the current decimal '
+ 'context. The |\n'
+ ' | | overall effect is to match the output of '
+ '"str()" as |\n'
+ ' | | altered by the other format '
+ 'modifiers. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
'\n'
@@ -5836,24 +5836,24 @@ topics = {'assert': 'The "assert" statement\n'
'(see\n'
'section The standard type hierarchy):\n'
'\n'
- ' funcdef ::= [decorators] "def" funcname "(" '
+ ' funcdef ::= [decorators] "def" funcname "(" '
'[parameter_list] ")"\n'
' ["->" expression] ":" suite\n'
- ' decorators ::= decorator+\n'
- ' decorator ::= "@" assignment_expression '
- 'NEWLINE\n'
- ' parameter_list ::= defparameter ("," '
- 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
- ' | parameter_list_no_posonly\n'
- ' parameter_list_no_posonly ::= defparameter ("," '
- 'defparameter)* ["," [parameter_list_starargs]]\n'
- ' | parameter_list_starargs\n'
- ' parameter_list_starargs ::= "*" [parameter] ("," '
+ ' decorators ::= decorator+\n'
+ ' decorator ::= "@" assignment_expression '
+ 'NEWLINE\n'
+ ' parameter_list ::= defparameter ("," '
+ 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
+ ' | parameter_list_no_posonly\n'
+ ' parameter_list_no_posonly ::= defparameter ("," '
+ 'defparameter)* ["," [parameter_list_starargs]]\n'
+ ' | parameter_list_starargs\n'
+ ' parameter_list_starargs ::= "*" [parameter] ("," '
'defparameter)* ["," ["**" parameter [","]]]\n'
' | "**" parameter [","]\n'
- ' parameter ::= identifier [":" expression]\n'
- ' defparameter ::= parameter ["=" expression]\n'
- ' funcname ::= identifier\n'
+ ' parameter ::= identifier [":" expression]\n'
+ ' defparameter ::= parameter ["=" expression]\n'
+ ' funcname ::= identifier\n'
'\n'
'A function definition is an executable statement. Its execution '
'binds\n'
@@ -5894,11 +5894,11 @@ topics = {'assert': 'The "assert" statement\n'
'the name\n'
'"func".\n'
'\n'
- 'Changed in version 3.9: Functions may be decorated with any '
- 'valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Functions may be decorated with any '
+ 'valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'When one or more *parameters* have the form *parameter* "="\n'
'*expression*, the function is said to have “default parameter '
'values.”\n'
@@ -5941,7 +5941,7 @@ topics = {'assert': 'The "assert" statement\n'
'Calls.\n'
'A function call always assigns values to all parameters '
'mentioned in\n'
- 'the parameter list, either from positional arguments, from '
+ 'the parameter list, either from positional arguments, from '
'keyword\n'
'arguments, or from default values. If the form “"*identifier"” '
'is\n'
@@ -5953,15 +5953,15 @@ topics = {'assert': 'The "assert" statement\n'
'new\n'
'empty mapping of the same type. Parameters after “"*"” or\n'
'“"*identifier"” are keyword-only parameters and may only be '
- 'passed by\n'
- 'keyword arguments. Parameters before “"/"” are positional-only\n'
- 'parameters and may only be passed by positional arguments.\n'
- '\n'
- 'Changed in version 3.8: The "/" function parameter syntax may be '
- 'used\n'
- 'to indicate positional-only parameters. See **PEP 570** for '
- 'details.\n'
- '\n'
+ 'passed by\n'
+ 'keyword arguments. Parameters before “"/"” are positional-only\n'
+ 'parameters and may only be passed by positional arguments.\n'
+ '\n'
+ 'Changed in version 3.8: The "/" function parameter syntax may be '
+ 'used\n'
+ 'to indicate positional-only parameters. See **PEP 570** for '
+ 'details.\n'
+ '\n'
'Parameters may have an *annotation* of the form “": '
'expression"”\n'
'following the parameter name. Any parameter may have an '
@@ -6095,26 +6095,26 @@ topics = {'assert': 'The "assert" statement\n'
'defined.\n'
' See section The import statement.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The name "_" is often used in conjunction with\n'
+ ' Note:\n'
+ '\n'
+ ' The name "_" is often used in conjunction with\n'
' internationalization; refer to the documentation for the\n'
' "gettext" module for more information on this '
'convention.\n'
'\n'
'"__*__"\n'
- ' System-defined names, informally known as “dunder” names. '
- 'These\n'
- ' names are defined by the interpreter and its '
- 'implementation\n'
- ' (including the standard library). Current system names are\n'
- ' discussed in the Special method names section and '
- 'elsewhere. More\n'
- ' will likely be defined in future versions of Python. *Any* '
- 'use of\n'
- ' "__*__" names, in any context, that does not follow '
- 'explicitly\n'
- ' documented use, is subject to breakage without warning.\n'
+ ' System-defined names, informally known as “dunder” names. '
+ 'These\n'
+ ' names are defined by the interpreter and its '
+ 'implementation\n'
+ ' (including the standard library). Current system names are\n'
+ ' discussed in the Special method names section and '
+ 'elsewhere. More\n'
+ ' will likely be defined in future versions of Python. *Any* '
+ 'use of\n'
+ ' "__*__" names, in any context, that does not follow '
+ 'explicitly\n'
+ ' documented use, is subject to breakage without warning.\n'
'\n'
'"__*"\n'
' Class-private names. Names in this category, when used '
@@ -6201,8 +6201,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'A non-normative HTML file listing all valid identifier '
'characters for\n'
- 'Unicode 4.1 can be found at\n'
- 'https://www.unicode.org/Public/13.0.0/ucd/DerivedCoreProperties.txt\n'
+ 'Unicode 4.1 can be found at\n'
+ 'https://www.unicode.org/Public/13.0.0/ucd/DerivedCoreProperties.txt\n'
'\n'
'\n'
'Keywords\n'
@@ -6243,28 +6243,28 @@ topics = {'assert': 'The "assert" statement\n'
'defined.\n'
' See section The import statement.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The name "_" is often used in conjunction with\n'
+ ' Note:\n'
+ '\n'
+ ' The name "_" is often used in conjunction with\n'
' internationalization; refer to the documentation for '
'the\n'
' "gettext" module for more information on this '
'convention.\n'
'\n'
'"__*__"\n'
- ' System-defined names, informally known as “dunder” names. '
- 'These\n'
- ' names are defined by the interpreter and its '
- 'implementation\n'
- ' (including the standard library). Current system names '
- 'are\n'
- ' discussed in the Special method names section and '
- 'elsewhere. More\n'
- ' will likely be defined in future versions of Python. '
- '*Any* use of\n'
- ' "__*__" names, in any context, that does not follow '
- 'explicitly\n'
- ' documented use, is subject to breakage without warning.\n'
+ ' System-defined names, informally known as “dunder” names. '
+ 'These\n'
+ ' names are defined by the interpreter and its '
+ 'implementation\n'
+ ' (including the standard library). Current system names '
+ 'are\n'
+ ' discussed in the Special method names section and '
+ 'elsewhere. More\n'
+ ' will likely be defined in future versions of Python. '
+ '*Any* use of\n'
+ ' "__*__" names, in any context, that does not follow '
+ 'explicitly\n'
+ ' documented use, is subject to breakage without warning.\n'
'\n'
'"__*"\n'
' Class-private names. Names in this category, when used '
@@ -6279,8 +6279,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
- ' if_stmt ::= "if" assignment_expression ":" suite\n'
- ' ("elif" assignment_expression ":" suite)*\n'
+ ' if_stmt ::= "if" assignment_expression ":" suite\n'
+ ' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the expressions '
@@ -6321,7 +6321,7 @@ topics = {'assert': 'The "assert" statement\n'
' | "from" relative_module "import" "(" '
'identifier ["as" identifier]\n'
' ("," identifier ["as" identifier])* [","] ")"\n'
- ' | "from" relative_module "import" "*"\n'
+ ' | "from" relative_module "import" "*"\n'
' module ::= (identifier ".")* identifier\n'
' relative_module ::= "."* module | "."+\n'
'\n'
@@ -6330,9 +6330,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'1. find a module, loading and initializing it if necessary\n'
'\n'
- '2. define a name or names in the local namespace for the scope '
- 'where\n'
- ' the "import" statement occurs.\n'
+ '2. define a name or names in the local namespace for the scope '
+ 'where\n'
+ ' the "import" statement occurs.\n'
'\n'
'When the statement contains multiple clauses (separated by commas) '
'the\n'
@@ -6358,9 +6358,9 @@ topics = {'assert': 'The "assert" statement\n'
'made\n'
'available in the local namespace in one of three ways:\n'
'\n'
- '* If the module name is followed by "as", then the name following '
- '"as"\n'
- ' is bound directly to the imported module.\n'
+ '* If the module name is followed by "as", then the name following '
+ '"as"\n'
+ ' is bound directly to the imported module.\n'
'\n'
'* If no other name is specified, and the module being imported is '
'a\n'
@@ -6460,18 +6460,18 @@ topics = {'assert': 'The "assert" statement\n'
'end up importing "pkg.mod". If you execute "from ..subpkg2 import '
'mod"\n'
'from within "pkg.subpkg1" you will import "pkg.subpkg2.mod". The\n'
- 'specification for relative imports is contained in the Package\n'
- 'Relative Imports section.\n'
+ 'specification for relative imports is contained in the Package\n'
+ 'Relative Imports section.\n'
'\n'
'"importlib.import_module()" is provided to support applications '
'that\n'
'determine dynamically the modules to be loaded.\n'
'\n'
- 'Raises an auditing event "import" with arguments "module", '
- '"filename",\n'
- '"sys.path", "sys.meta_path", "sys.path_hooks".\n'
+ 'Raises an auditing event "import" with arguments "module", '
+ '"filename",\n'
+ '"sys.path", "sys.meta_path", "sys.path_hooks".\n'
+ '\n'
'\n'
- '\n'
'Future statements\n'
'=================\n'
'\n'
@@ -6509,8 +6509,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'* other future statements.\n'
'\n'
- 'The only feature that requires using the future statement is\n'
- '"annotations" (see **PEP 563**).\n'
+ 'The only feature that requires using the future statement is\n'
+ '"annotations" (see **PEP 563**).\n'
'\n'
'All historical features enabled by the future statement are still\n'
'recognized by Python 3. The list includes "absolute_import",\n'
@@ -6602,19 +6602,19 @@ topics = {'assert': 'The "assert" statement\n'
'"False" otherwise.\n'
'\n'
'For user-defined classes which do not define "__contains__()" but do\n'
- 'define "__iter__()", "x in y" is "True" if some value "z", for which\n'
- 'the expression "x is z or x == z" is true, is produced while '
- 'iterating\n'
- 'over "y". If an exception is raised during the iteration, it is as if\n'
- '"in" raised that exception.\n'
+ 'define "__iter__()", "x in y" is "True" if some value "z", for which\n'
+ 'the expression "x is z or x == z" is true, is produced while '
+ 'iterating\n'
+ 'over "y". If an exception is raised during the iteration, it is as if\n'
+ '"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a non-\n'
- 'negative integer index *i* such that "x is y[i] or x == y[i]", and no\n'
- 'lower integer index raises the "IndexError" exception. (If any other\n'
+ 'negative integer index *i* such that "x is y[i] or x == y[i]", and no\n'
+ 'lower integer index raises the "IndexError" exception. (If any other\n'
'exception is raised, it is as if "in" raised that exception).\n'
'\n'
- 'The operator "not in" is defined to have the inverse truth value of\n'
+ 'The operator "not in" is defined to have the inverse truth value of\n'
'"in".\n',
'integers': 'Integer literals\n'
'****************\n'
@@ -6665,7 +6665,7 @@ topics = {'assert': 'The "assert" statement\n'
'lambda': 'Lambdas\n'
'*******\n'
'\n'
- ' lambda_expr ::= "lambda" [parameter_list] ":" expression\n'
+ ' lambda_expr ::= "lambda" [parameter_list] ":" expression\n'
'\n'
'Lambda expressions (sometimes called lambda forms) are used to '
'create\n'
@@ -6793,8 +6793,8 @@ topics = {'assert': 'The "assert" statement\n'
'operations.\n'
'\n'
'If the "global" statement occurs within a block, all uses of the '
- 'names\n'
- 'specified in the statement refer to the bindings of those names in '
+ 'names\n'
+ 'specified in the statement refer to the bindings of those names in '
'the\n'
'top-level namespace. Names are resolved in the top-level '
'namespace by\n'
@@ -6803,9 +6803,9 @@ topics = {'assert': 'The "assert" statement\n'
'namespace\n'
'of the module "builtins". The global namespace is searched '
'first. If\n'
- 'the names are not found there, the builtins namespace is '
- 'searched.\n'
- 'The "global" statement must precede all uses of the listed names.\n'
+ 'the names are not found there, the builtins namespace is '
+ 'searched.\n'
+ 'The "global" statement must precede all uses of the listed names.\n'
'\n'
'The "global" statement has the same scope as a name binding '
'operation\n'
@@ -6945,7 +6945,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'Note that numeric literals do not include a sign; a phrase like '
'"-1"\n'
- 'is actually an expression composed of the unary operator ‘"-"’ '
+ 'is actually an expression composed of the unary operator ‘"-"’ '
'and the\n'
'literal "1".\n',
'numeric-types': 'Emulating numeric types\n'
@@ -7006,7 +7006,7 @@ topics = {'assert': 'The "assert" statement\n'
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
- 'object.__rpow__(self, other[, modulo])\n'
+ 'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
@@ -7035,19 +7035,19 @@ topics = {'assert': 'The "assert" statement\n'
'"__rpow__()" (the\n'
' coercion rules would become too complicated).\n'
'\n'
- ' Note:\n'
- '\n'
- ' If the right operand’s type is a subclass of the left '
- 'operand’s\n'
- ' type and that subclass provides a different '
- 'implementation of the\n'
- ' reflected method for the operation, this method will '
- 'be called\n'
- ' before the left operand’s non-reflected method. This '
- 'behavior\n'
- ' allows subclasses to override their ancestors’ '
- 'operations.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' If the right operand’s type is a subclass of the left '
+ 'operand’s\n'
+ ' type and that subclass provides a different '
+ 'implementation of the\n'
+ ' reflected method for the operation, this method will '
+ 'be called\n'
+ ' before the left operand’s non-reflected method. This '
+ 'behavior\n'
+ ' allows subclasses to override their ancestors’ '
+ 'operations.\n'
+ '\n'
'object.__iadd__(self, other)\n'
'object.__isub__(self, other)\n'
'object.__imul__(self, other)\n'
@@ -7090,16 +7090,16 @@ topics = {'assert': 'The "assert" statement\n'
'the data\n'
' model.\n'
'\n'
- ' Note:\n'
- '\n'
- ' Due to a bug in the dispatching mechanism for "**=", a '
- 'class that\n'
- ' defines "__ipow__()" but returns "NotImplemented" '
- 'would fail to\n'
- ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
- 'bug is\n'
- ' fixed in Python 3.10.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' Due to a bug in the dispatching mechanism for "**=", a '
+ 'class that\n'
+ ' defines "__ipow__()" but returns "NotImplemented" '
+ 'would fail to\n'
+ ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
+ 'bug is\n'
+ ' fixed in Python 3.10.\n'
+ '\n'
'object.__neg__(self)\n'
'object.__pos__(self)\n'
'object.__abs__(self)\n'
@@ -7130,11 +7130,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
- ' If "__int__()", "__float__()" and "__complex__()" are '
- 'not defined\n'
- ' then corresponding built-in functions "int()", "float()" '
- 'and\n'
- ' "complex()" fall back to "__index__()".\n'
+ ' If "__int__()", "__float__()" and "__complex__()" are '
+ 'not defined\n'
+ ' then corresponding built-in functions "int()", "float()" '
+ 'and\n'
+ ' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
@@ -7150,9 +7150,9 @@ topics = {'assert': 'The "assert" statement\n'
' of the object truncated to an "Integral" (typically an '
'"int").\n'
'\n'
- ' The built-in function "int()" falls back to '
- '"__trunc__()" if\n'
- ' neither "__int__()" nor "__index__()" is defined.\n',
+ ' The built-in function "int()" falls back to '
+ '"__trunc__()" if\n'
+ ' neither "__int__()" nor "__index__()" is defined.\n',
'objects': 'Objects, values and types\n'
'*************************\n'
'\n'
@@ -7161,7 +7161,7 @@ topics = {'assert': 'The "assert" statement\n'
'program is represented by objects or by relations between '
'objects. (In\n'
'a sense, and in conformance to Von Neumann’s model of a “stored\n'
- 'program computer”, code is also represented by objects.)\n'
+ 'program computer”, code is also represented by objects.)\n'
'\n'
'Every object has an identity, a type and a value. An object’s\n'
'*identity* never changes once it has been created; you may think '
@@ -7286,8 +7286,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following table summarizes the operator precedence '
'in Python, from\n'
- 'highest precedence (most binding) to lowest precedence '
- '(least\n'
+ 'highest precedence (most binding) to lowest precedence '
+ '(least\n'
'binding). Operators in the same box have the same '
'precedence. Unless\n'
'the syntax is explicitly given, operators are binary. '
@@ -7305,79 +7305,79 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------------------------------------+---------------------------------------+\n'
'| Operator | '
'Description |\n'
- '|=================================================|=======================================|\n'
- '| "(expressions...)", "[expressions...]", "{key: | '
- 'Binding or parenthesized expression, |\n'
- '| value...}", "{expressions...}" | list '
- 'display, dictionary display, set |\n'
- '| | '
- 'display |\n'
- '+-------------------------------------------------+---------------------------------------+\n'
- '| "x[index]", "x[index:index]", | '
- 'Subscription, slicing, call, |\n'
- '| "x(arguments...)", "x.attribute" | '
- 'attribute reference |\n'
+ '|=================================================|=======================================|\n'
+ '| "(expressions...)", "[expressions...]", "{key: | '
+ 'Binding or parenthesized expression, |\n'
+ '| value...}", "{expressions...}" | list '
+ 'display, dictionary display, set |\n'
+ '| | '
+ 'display |\n'
+ '+-------------------------------------------------+---------------------------------------+\n'
+ '| "x[index]", "x[index:index]", | '
+ 'Subscription, slicing, call, |\n'
+ '| "x(arguments...)", "x.attribute" | '
+ 'attribute reference |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "await" "x" | '
- 'Await expression |\n'
+ '| "await" "x" | '
+ 'Await expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "**" | '
- 'Exponentiation [5] |\n'
+ '| "**" | '
+ 'Exponentiation [5] |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "+x", "-x", "~x" | '
- 'Positive, negative, bitwise NOT |\n'
+ '| "+x", "-x", "~x" | '
+ 'Positive, negative, bitwise NOT |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "*", "@", "/", "//", "%" | '
- 'Multiplication, matrix |\n'
- '| | '
- 'multiplication, division, floor |\n'
- '| | '
- 'division, remainder [6] |\n'
+ '| "*", "@", "/", "//", "%" | '
+ 'Multiplication, matrix |\n'
+ '| | '
+ 'multiplication, division, floor |\n'
+ '| | '
+ 'division, remainder [6] |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "+", "-" | '
- 'Addition and subtraction |\n'
+ '| "+", "-" | '
+ 'Addition and subtraction |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "<<", ">>" | '
- 'Shifts |\n'
+ '| "<<", ">>" | '
+ 'Shifts |\n'
+ '+-------------------------------------------------+---------------------------------------+\n'
+ '| "&" | '
+ 'Bitwise AND |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "&" | '
- 'Bitwise AND |\n'
- '+-------------------------------------------------+---------------------------------------+\n'
'| "^" | '
'Bitwise XOR |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "|" | '
- 'Bitwise OR |\n'
+ '| "|" | '
+ 'Bitwise OR |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "in", "not in", "is", "is not", "<", "<=", ">", | '
- 'Comparisons, including membership |\n'
- '| ">=", "!=", "==" | '
- 'tests and identity tests |\n'
+ '| "in", "not in", "is", "is not", "<", "<=", ">", | '
+ 'Comparisons, including membership |\n'
+ '| ">=", "!=", "==" | '
+ 'tests and identity tests |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "not" "x" | '
- 'Boolean NOT |\n'
+ '| "not" "x" | '
+ 'Boolean NOT |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "and" | '
- 'Boolean AND |\n'
+ '| "and" | '
+ 'Boolean AND |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "or" | '
- 'Boolean OR |\n'
+ '| "or" | '
+ 'Boolean OR |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "if" – "else" | '
- 'Conditional expression |\n'
+ '| "if" – "else" | '
+ 'Conditional expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "lambda" | '
- 'Lambda expression |\n'
+ '| "lambda" | '
+ 'Lambda expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| ":=" | '
- 'Assignment expression |\n'
+ '| ":=" | '
+ 'Assignment expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
'[1] While "abs(x%y) < abs(y)" is true mathematically, '
- 'for floats it\n'
- ' may not be true numerically due to roundoff. For '
+ 'for floats it\n'
+ ' may not be true numerically due to roundoff. For '
'example, and\n'
' assuming a platform on which a Python float is an '
'IEEE 754 double-\n'
@@ -7442,23 +7442,23 @@ topics = {'assert': 'The "assert" statement\n'
'"unicodedata.normalize()".\n'
'\n'
'[4] Due to automatic garbage-collection, free lists, and '
- 'the dynamic\n'
- ' nature of descriptors, you may notice seemingly '
- 'unusual behaviour\n'
- ' in certain uses of the "is" operator, like those '
- 'involving\n'
- ' comparisons between instance methods, or constants. '
- 'Check their\n'
- ' documentation for more info.\n'
+ 'the dynamic\n'
+ ' nature of descriptors, you may notice seemingly '
+ 'unusual behaviour\n'
+ ' in certain uses of the "is" operator, like those '
+ 'involving\n'
+ ' comparisons between instance methods, or constants. '
+ 'Check their\n'
+ ' documentation for more info.\n'
+ '\n'
+ '[5] The power operator "**" binds less tightly than an '
+ 'arithmetic or\n'
+ ' bitwise unary operator on its right, that is, '
+ '"2**-1" is "0.5".\n'
'\n'
- '[5] The power operator "**" binds less tightly than an '
- 'arithmetic or\n'
- ' bitwise unary operator on its right, that is, '
- '"2**-1" is "0.5".\n'
- '\n'
- '[6] The "%" operator is also used for string formatting; '
- 'the same\n'
- ' precedence applies.\n',
+ '[6] The "%" operator is also used for string formatting; '
+ 'the same\n'
+ ' precedence applies.\n',
'pass': 'The "pass" statement\n'
'********************\n'
'\n'
@@ -7506,10 +7506,10 @@ topics = {'assert': 'The "assert" statement\n'
'"ZeroDivisionError".\n'
'Raising a negative number to a fractional power results in a '
'"complex"\n'
- 'number. (In earlier versions it raised a "ValueError".)\n'
- '\n'
- 'This operation can be customized using the special "__pow__()" '
- 'method.\n',
+ 'number. (In earlier versions it raised a "ValueError".)\n'
+ '\n'
+ 'This operation can be customized using the special "__pow__()" '
+ 'method.\n',
'raise': 'The "raise" statement\n'
'*********************\n'
'\n'
@@ -7546,18 +7546,18 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "from" clause is used for exception chaining: if given, the '
'second\n'
- '*expression* must be another exception class or instance. If the\n'
- 'second expression is an exception instance, it will be attached to '
- 'the\n'
- 'raised exception as the "__cause__" attribute (which is writable). '
- 'If\n'
- 'the expression is an exception class, the class will be '
- 'instantiated\n'
- 'and the resulting exception instance will be attached to the '
- 'raised\n'
- 'exception as the "__cause__" attribute. If the raised exception is '
- 'not\n'
- 'handled, both exceptions will be printed:\n'
+ '*expression* must be another exception class or instance. If the\n'
+ 'second expression is an exception instance, it will be attached to '
+ 'the\n'
+ 'raised exception as the "__cause__" attribute (which is writable). '
+ 'If\n'
+ 'the expression is an exception class, the class will be '
+ 'instantiated\n'
+ 'and the resulting exception instance will be attached to the '
+ 'raised\n'
+ 'exception as the "__cause__" attribute. If the raised exception is '
+ 'not\n'
+ 'handled, both exceptions will be printed:\n'
'\n'
' >>> try:\n'
' ... print(1 / 0)\n'
@@ -7661,62 +7661,62 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following methods can be defined to implement '
'container objects.\n'
- 'Containers usually are *sequences* (such as "lists" or '
- '"tuples") or\n'
- '*mappings* (like "dictionaries"), but can represent other '
- 'containers\n'
- 'as well. The first set of methods is used either to '
- 'emulate a\n'
- 'sequence or to emulate a mapping; the difference is that '
- 'for a\n'
- 'sequence, the allowable keys should be the integers *k* '
- 'for which "0\n'
- '<= k < N" where *N* is the length of the sequence, or '
- '"slice" objects,\n'
- 'which define a range of items. It is also recommended '
- 'that mappings\n'
- 'provide the methods "keys()", "values()", "items()", '
- '"get()",\n'
- '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
- 'and\n'
- '"update()" behaving similar to those for Python’s '
- 'standard\n'
- '"dictionary" objects. The "collections.abc" module '
- 'provides a\n'
- '"MutableMapping" *abstract base class* to help create '
- 'those methods\n'
- 'from a base set of "__getitem__()", "__setitem__()", '
- '"__delitem__()",\n'
- 'and "keys()". Mutable sequences should provide methods '
- '"append()",\n'
- '"count()", "index()", "extend()", "insert()", "pop()", '
- '"remove()",\n'
- '"reverse()" and "sort()", like Python standard "list" '
+ 'Containers usually are *sequences* (such as "lists" or '
+ '"tuples") or\n'
+ '*mappings* (like "dictionaries"), but can represent other '
+ 'containers\n'
+ 'as well. The first set of methods is used either to '
+ 'emulate a\n'
+ 'sequence or to emulate a mapping; the difference is that '
+ 'for a\n'
+ 'sequence, the allowable keys should be the integers *k* '
+ 'for which "0\n'
+ '<= k < N" where *N* is the length of the sequence, or '
+ '"slice" objects,\n'
+ 'which define a range of items. It is also recommended '
+ 'that mappings\n'
+ 'provide the methods "keys()", "values()", "items()", '
+ '"get()",\n'
+ '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
+ 'and\n'
+ '"update()" behaving similar to those for Python’s '
+ 'standard\n'
+ '"dictionary" objects. The "collections.abc" module '
+ 'provides a\n'
+ '"MutableMapping" *abstract base class* to help create '
+ 'those methods\n'
+ 'from a base set of "__getitem__()", "__setitem__()", '
+ '"__delitem__()",\n'
+ 'and "keys()". Mutable sequences should provide methods '
+ '"append()",\n'
+ '"count()", "index()", "extend()", "insert()", "pop()", '
+ '"remove()",\n'
+ '"reverse()" and "sort()", like Python standard "list" '
'objects.\n'
- 'Finally, sequence types should implement addition '
+ 'Finally, sequence types should implement addition '
'(meaning\n'
- 'concatenation) and multiplication (meaning repetition) by '
- 'defining the\n'
- 'methods "__add__()", "__radd__()", "__iadd__()", '
- '"__mul__()",\n'
- '"__rmul__()" and "__imul__()" described below; they should '
- 'not define\n'
- 'other numerical operators. It is recommended that both '
- 'mappings and\n'
- 'sequences implement the "__contains__()" method to allow '
- 'efficient use\n'
- 'of the "in" operator; for mappings, "in" should search the '
- 'mapping’s\n'
- 'keys; for sequences, it should search through the values. '
+ 'concatenation) and multiplication (meaning repetition) by '
+ 'defining the\n'
+ 'methods "__add__()", "__radd__()", "__iadd__()", '
+ '"__mul__()",\n'
+ '"__rmul__()" and "__imul__()" described below; they should '
+ 'not define\n'
+ 'other numerical operators. It is recommended that both '
+ 'mappings and\n'
+ 'sequences implement the "__contains__()" method to allow '
+ 'efficient use\n'
+ 'of the "in" operator; for mappings, "in" should search the '
+ 'mapping’s\n'
+ 'keys; for sequences, it should search through the values. '
'It is\n'
- 'further recommended that both mappings and sequences '
- 'implement the\n'
- '"__iter__()" method to allow efficient iteration through '
+ 'further recommended that both mappings and sequences '
+ 'implement the\n'
+ '"__iter__()" method to allow efficient iteration through '
'the\n'
- 'container; for mappings, "__iter__()" should iterate '
- 'through the\n'
- 'object’s keys; for sequences, it should iterate through '
- 'the values.\n'
+ 'container; for mappings, "__iter__()" should iterate '
+ 'through the\n'
+ 'object’s keys; for sequences, it should iterate through '
+ 'the values.\n'
'\n'
'object.__len__(self)\n'
'\n'
@@ -7746,23 +7746,23 @@ topics = {'assert': 'The "assert" statement\n'
' estimated length for the object (which may be greater '
'or less than\n'
' the actual length). The length must be an integer ">=" '
- '0. The\n'
- ' return value may also be "NotImplemented", which is '
- 'treated the\n'
- ' same as if the "__length_hint__" method didn’t exist at '
- 'all. This\n'
+ '0. The\n'
+ ' return value may also be "NotImplemented", which is '
+ 'treated the\n'
+ ' same as if the "__length_hint__" method didn’t exist at '
+ 'all. This\n'
' method is purely an optimization and is never required '
'for\n'
' correctness.\n'
'\n'
' New in version 3.4.\n'
'\n'
- 'Note:\n'
+ 'Note:\n'
+ '\n'
+ ' Slicing is done exclusively with the following three '
+ 'methods. A\n'
+ ' call like\n'
'\n'
- ' Slicing is done exclusively with the following three '
- 'methods. A\n'
- ' call like\n'
- '\n'
' a[1:2] = b\n'
'\n'
' is translated to\n'
@@ -7775,42 +7775,42 @@ topics = {'assert': 'The "assert" statement\n'
'object.__getitem__(self, key)\n'
'\n'
' Called to implement evaluation of "self[key]". For '
- '*sequence*\n'
- ' types, the accepted keys should be integers and slice '
- 'objects.\n'
- ' Note that the special interpretation of negative '
- 'indexes (if the\n'
- ' class wishes to emulate a *sequence* type) is up to '
+ '*sequence*\n'
+ ' types, the accepted keys should be integers and slice '
+ 'objects.\n'
+ ' Note that the special interpretation of negative '
+ 'indexes (if the\n'
+ ' class wishes to emulate a *sequence* type) is up to '
'the\n'
- ' "__getitem__()" method. If *key* is of an inappropriate '
- 'type,\n'
- ' "TypeError" may be raised; if of a value outside the '
- 'set of indexes\n'
- ' for the sequence (after any special interpretation of '
- 'negative\n'
- ' values), "IndexError" should be raised. For *mapping* '
- 'types, if\n'
- ' *key* is missing (not in the container), "KeyError" '
- 'should be\n'
- ' raised.\n'
- '\n'
- ' Note:\n'
- '\n'
- ' "for" loops expect that an "IndexError" will be '
+ ' "__getitem__()" method. If *key* is of an inappropriate '
+ 'type,\n'
+ ' "TypeError" may be raised; if of a value outside the '
+ 'set of indexes\n'
+ ' for the sequence (after any special interpretation of '
+ 'negative\n'
+ ' values), "IndexError" should be raised. For *mapping* '
+ 'types, if\n'
+ ' *key* is missing (not in the container), "KeyError" '
+ 'should be\n'
+ ' raised.\n'
+ '\n'
+ ' Note:\n'
+ '\n'
+ ' "for" loops expect that an "IndexError" will be '
'raised for\n'
' illegal indexes to allow proper detection of the end '
'of the\n'
' sequence.\n'
'\n'
- ' Note:\n'
- '\n'
- ' When subscripting a *class*, the special class '
- 'method\n'
- ' "__class_getitem__()" may be called instead of '
- '"__getitem__()".\n'
- ' See __class_getitem__ versus __getitem__ for more '
- 'details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' When subscripting a *class*, the special class '
+ 'method\n'
+ ' "__class_getitem__()" may be called instead of '
+ '"__getitem__()".\n'
+ ' See __class_getitem__ versus __getitem__ for more '
+ 'details.\n'
+ '\n'
'object.__setitem__(self, key, value)\n'
'\n'
' Called to implement assignment to "self[key]". Same '
@@ -7883,12 +7883,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The membership test operators ("in" and "not in") are '
'normally\n'
- 'implemented as an iteration through a container. However, '
+ 'implemented as an iteration through a container. However, '
'container\n'
'objects can supply the following special method with a '
'more efficient\n'
'implementation, which also does not require the object be '
- 'iterable.\n'
+ 'iterable.\n'
'\n'
'object.__contains__(self, item)\n'
'\n'
@@ -7921,10 +7921,10 @@ topics = {'assert': 'The "assert" statement\n'
'the\n'
'second argument.\n'
'\n'
- 'This operation can be customized using the special '
- '"__lshift__()" and\n'
- '"__rshift__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special '
+ '"__lshift__()" and\n'
+ '"__rshift__()" methods.\n'
+ '\n'
'A right shift by *n* bits is defined as floor division by '
'"pow(2,n)".\n'
'A left shift by *n* bits is defined as multiplication with '
@@ -8037,7 +8037,7 @@ topics = {'assert': 'The "assert" statement\n'
'immediate\n'
' subclasses. This method returns a list of all those '
'references\n'
- ' still alive. The list is in definition order. Example:\n'
+ ' still alive. The list is in definition order. Example:\n'
'\n'
' >>> int.__subclasses__()\n'
" [<class 'bool'>]\n"
@@ -8045,26 +8045,26 @@ topics = {'assert': 'The "assert" statement\n'
'-[ Footnotes ]-\n'
'\n'
'[1] Additional information on these special methods may be '
- 'found in\n'
- ' the Python Reference Manual (Basic customization).\n'
+ 'found in\n'
+ ' the Python Reference Manual (Basic customization).\n'
'\n'
'[2] As a consequence, the list "[1, 2]" is considered equal '
- 'to "[1.0,\n'
- ' 2.0]", and similarly for tuples.\n'
+ 'to "[1.0,\n'
+ ' 2.0]", and similarly for tuples.\n'
'\n'
'[3] They must have since the parser can’t tell the type of '
'the\n'
' operands.\n'
'\n'
'[4] Cased characters are those with general category '
- 'property being\n'
- ' one of “Lu” (Letter, uppercase), “Ll” (Letter, '
- 'lowercase), or “Lt”\n'
- ' (Letter, titlecase).\n'
- '\n'
- '[5] To format only a tuple you should therefore provide a '
- 'singleton\n'
- ' tuple whose only element is the tuple to be formatted.\n',
+ 'property being\n'
+ ' one of “Lu” (Letter, uppercase), “Ll” (Letter, '
+ 'lowercase), or “Lt”\n'
+ ' (Letter, titlecase).\n'
+ '\n'
+ '[5] To format only a tuple you should therefore provide a '
+ 'singleton\n'
+ ' tuple whose only element is the tuple to be formatted.\n',
'specialnames': 'Special method names\n'
'********************\n'
'\n'
@@ -8137,15 +8137,15 @@ topics = {'assert': 'The "assert" statement\n'
'returning\n'
' it.\n'
'\n'
- ' If "__new__()" is invoked during object construction and '
- 'it returns\n'
- ' an instance of *cls*, then the new instance’s '
- '"__init__()" method\n'
- ' will be invoked like "__init__(self[, ...])", where '
- '*self* is the\n'
- ' new instance and the remaining arguments are the same as '
- 'were\n'
- ' passed to the object constructor.\n'
+ ' If "__new__()" is invoked during object construction and '
+ 'it returns\n'
+ ' an instance of *cls*, then the new instance’s '
+ '"__init__()" method\n'
+ ' will be invoked like "__init__(self[, ...])", where '
+ '*self* is the\n'
+ ' new instance and the remaining arguments are the same as '
+ 'were\n'
+ ' passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, then '
'the new\n'
@@ -8209,9 +8209,9 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
' objects that still exist when the interpreter exits.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "del x" doesn’t directly call "x.__del__()" — the '
+ ' Note:\n'
+ '\n'
+ ' "del x" doesn’t directly call "x.__del__()" — the '
'former\n'
' decrements the reference count for "x" by one, and the '
'latter is\n'
@@ -8235,16 +8235,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' See also: Documentation for the "gc" module.\n'
'\n'
- ' Warning:\n'
+ ' Warning:\n'
+ '\n'
+ ' Due to the precarious circumstances under which '
+ '"__del__()"\n'
+ ' methods are invoked, exceptions that occur during their '
+ 'execution\n'
+ ' are ignored, and a warning is printed to "sys.stderr" '
+ 'instead.\n'
+ ' In particular:\n'
'\n'
- ' Due to the precarious circumstances under which '
- '"__del__()"\n'
- ' methods are invoked, exceptions that occur during their '
- 'execution\n'
- ' are ignored, and a warning is printed to "sys.stderr" '
- 'instead.\n'
- ' In particular:\n'
- '\n'
' * "__del__()" can be invoked when arbitrary code is '
'being\n'
' executed, including from any arbitrary thread. If '
@@ -8256,20 +8256,20 @@ topics = {'assert': 'The "assert" statement\n'
' that gets interrupted to execute "__del__()".\n'
'\n'
' * "__del__()" can be executed during interpreter '
- 'shutdown. As a\n'
- ' consequence, the global variables it needs to access '
- '(including\n'
- ' other modules) may already have been deleted or set '
- 'to "None".\n'
- ' Python guarantees that globals whose name begins with '
- 'a single\n'
- ' underscore are deleted from their module before other '
- 'globals\n'
- ' are deleted; if no other references to such globals '
- 'exist, this\n'
- ' may help in assuring that imported modules are still '
- 'available\n'
- ' at the time when the "__del__()" method is called.\n'
+ 'shutdown. As a\n'
+ ' consequence, the global variables it needs to access '
+ '(including\n'
+ ' other modules) may already have been deleted or set '
+ 'to "None".\n'
+ ' Python guarantees that globals whose name begins with '
+ 'a single\n'
+ ' underscore are deleted from their module before other '
+ 'globals\n'
+ ' are deleted; if no other references to such globals '
+ 'exist, this\n'
+ ' may help in assuring that imported modules are still '
+ 'available\n'
+ ' at the time when the "__del__()" method is called.\n'
'\n'
'object.__repr__(self)\n'
'\n'
@@ -8330,11 +8330,11 @@ topics = {'assert': 'The "assert" statement\n'
'"str.format()"\n'
' method, to produce a “formatted” string representation of '
'an\n'
- ' object. The *format_spec* argument is a string that '
+ ' object. The *format_spec* argument is a string that '
'contains a\n'
' description of the formatting options desired. The '
'interpretation\n'
- ' of the *format_spec* argument is up to the type '
+ ' of the *format_spec* argument is up to the type '
'implementing\n'
' "__format__()", however most classes will either '
'delegate\n'
@@ -8354,7 +8354,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Changed in version 3.7: "object.__format__(x, \'\')" is '
'now\n'
- ' equivalent to "str(x)" rather than "format(str(x), '
+ ' equivalent to "str(x)" rather than "format(str(x), '
'\'\')".\n'
'\n'
'object.__lt__(self, other)\n'
@@ -8388,21 +8388,21 @@ topics = {'assert': 'The "assert" statement\n'
' on the value to determine if the result is true or '
'false.\n'
'\n'
- ' By default, "object" implements "__eq__()" by using "is", '
- 'returning\n'
- ' "NotImplemented" in the case of a false comparison: "True '
- 'if x is y\n'
- ' else NotImplemented". For "__ne__()", by default it '
- 'delegates to\n'
- ' "__eq__()" and inverts the result unless it is '
- '"NotImplemented".\n'
- ' There are no other implied relationships among the '
- 'comparison\n'
- ' operators or default implementations; for example, the '
- 'truth of\n'
- ' "(x<y or x==y)" does not imply "x<=y". To automatically '
- 'generate\n'
- ' ordering operations from a single root operation, see\n'
+ ' By default, "object" implements "__eq__()" by using "is", '
+ 'returning\n'
+ ' "NotImplemented" in the case of a false comparison: "True '
+ 'if x is y\n'
+ ' else NotImplemented". For "__ne__()", by default it '
+ 'delegates to\n'
+ ' "__eq__()" and inverts the result unless it is '
+ '"NotImplemented".\n'
+ ' There are no other implied relationships among the '
+ 'comparison\n'
+ ' operators or default implementations; for example, the '
+ 'truth of\n'
+ ' "(x<y or x==y)" does not imply "x<=y". To automatically '
+ 'generate\n'
+ ' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n'
'\n'
' See the paragraph on "__hash__()" for some important '
@@ -8450,22 +8450,22 @@ topics = {'assert': 'The "assert" statement\n'
' def __hash__(self):\n'
' return hash((self.name, self.nick, self.color))\n'
'\n'
- ' Note:\n'
- '\n'
- ' "hash()" truncates the value returned from an object’s '
- 'custom\n'
- ' "__hash__()" method to the size of a "Py_ssize_t". '
- 'This is\n'
- ' typically 8 bytes on 64-bit builds and 4 bytes on '
- '32-bit builds.\n'
- ' If an object’s "__hash__()" must interoperate on '
- 'builds of\n'
- ' different bit sizes, be sure to check the width on all '
- 'supported\n'
- ' builds. An easy way to do this is with "python -c '
- '"import sys;\n'
- ' print(sys.hash_info.width)"".\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "hash()" truncates the value returned from an object’s '
+ 'custom\n'
+ ' "__hash__()" method to the size of a "Py_ssize_t". '
+ 'This is\n'
+ ' typically 8 bytes on 64-bit builds and 4 bytes on '
+ '32-bit builds.\n'
+ ' If an object’s "__hash__()" must interoperate on '
+ 'builds of\n'
+ ' different bit sizes, be sure to check the width on all '
+ 'supported\n'
+ ' builds. An easy way to do this is with "python -c '
+ '"import sys;\n'
+ ' print(sys.hash_info.width)"".\n'
+ '\n'
' If a class does not define an "__eq__()" method it should '
'not\n'
' define a "__hash__()" operation either; if it defines '
@@ -8520,22 +8520,22 @@ topics = {'assert': 'The "assert" statement\n'
' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n'
'\n'
- ' Note:\n'
- '\n'
- ' By default, the "__hash__()" values of str and bytes '
- 'objects are\n'
- ' “salted” with an unpredictable random value. Although '
- 'they\n'
- ' remain constant within an individual Python process, '
- 'they are not\n'
- ' predictable between repeated invocations of Python.This '
- 'is\n'
- ' intended to provide protection against a '
- 'denial-of-service caused\n'
- ' by carefully-chosen inputs that exploit the worst case\n'
- ' performance of a dict insertion, O(n^2) complexity. '
- 'See\n'
- ' http://www.ocert.org/advisories/ocert-2011-003.html '
+ ' Note:\n'
+ '\n'
+ ' By default, the "__hash__()" values of str and bytes '
+ 'objects are\n'
+ ' “salted” with an unpredictable random value. Although '
+ 'they\n'
+ ' remain constant within an individual Python process, '
+ 'they are not\n'
+ ' predictable between repeated invocations of Python.This '
+ 'is\n'
+ ' intended to provide protection against a '
+ 'denial-of-service caused\n'
+ ' by carefully-chosen inputs that exploit the worst case\n'
+ ' performance of a dict insertion, O(n^2) complexity. '
+ 'See\n'
+ ' http://www.ocert.org/advisories/ocert-2011-003.html '
'for\n'
' details.Changing hash values affects the iteration '
'order of sets.\n'
@@ -8624,18 +8624,18 @@ topics = {'assert': 'The "assert" statement\n'
'needs, for\n'
' example, "object.__getattribute__(self, name)".\n'
'\n'
- ' Note:\n'
- '\n'
- ' This method may still be bypassed when looking up '
- 'special methods\n'
- ' as the result of implicit invocation via language '
- 'syntax or\n'
- ' built-in functions. See Special method lookup.\n'
- '\n'
- ' For certain sensitive attribute accesses, raises an '
- 'auditing event\n'
- ' "object.__getattr__" with arguments "obj" and "name".\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' This method may still be bypassed when looking up '
+ 'special methods\n'
+ ' as the result of implicit invocation via language '
+ 'syntax or\n'
+ ' built-in functions. See Special method lookup.\n'
+ '\n'
+ ' For certain sensitive attribute accesses, raises an '
+ 'auditing event\n'
+ ' "object.__getattr__" with arguments "obj" and "name".\n'
+ '\n'
'object.__setattr__(self, name, value)\n'
'\n'
' Called when an attribute assignment is attempted. This '
@@ -8652,11 +8652,11 @@ topics = {'assert': 'The "assert" statement\n'
'example,\n'
' "object.__setattr__(self, name, value)".\n'
'\n'
- ' For certain sensitive attribute assignments, raises an '
- 'auditing\n'
- ' event "object.__setattr__" with arguments "obj", "name", '
- '"value".\n'
- '\n'
+ ' For certain sensitive attribute assignments, raises an '
+ 'auditing\n'
+ ' event "object.__setattr__" with arguments "obj", "name", '
+ '"value".\n'
+ '\n'
'object.__delattr__(self, name)\n'
'\n'
' Like "__setattr__()" but for attribute deletion instead '
@@ -8665,10 +8665,10 @@ topics = {'assert': 'The "assert" statement\n'
'obj.name" is\n'
' meaningful for the object.\n'
'\n'
- ' For certain sensitive attribute deletions, raises an '
- 'auditing event\n'
- ' "object.__delattr__" with arguments "obj" and "name".\n'
- '\n'
+ ' For certain sensitive attribute deletions, raises an '
+ 'auditing event\n'
+ ' "object.__delattr__" with arguments "obj" and "name".\n'
+ '\n'
'object.__dir__(self)\n'
'\n'
' Called when "dir()" is called on the object. A sequence '
@@ -8700,11 +8700,11 @@ topics = {'assert': 'The "assert" statement\n'
'returned.\n'
'\n'
'The "__dir__" function should accept no arguments, and '
- 'return a\n'
- 'sequence of strings that represents the names accessible on '
- 'module. If\n'
- 'present, this function overrides the standard "dir()" search '
- 'on a\n'
+ 'return a\n'
+ 'sequence of strings that represents the names accessible on '
+ 'module. If\n'
+ 'present, this function overrides the standard "dir()" search '
+ 'on a\n'
'module.\n'
'\n'
'For a more fine grained customization of the module behavior '
@@ -8727,17 +8727,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' sys.modules[__name__].__class__ = VerboseModule\n'
'\n'
- 'Note:\n'
- '\n'
- ' Defining module "__getattr__" and setting module '
- '"__class__" only\n'
- ' affect lookups made using the attribute access syntax – '
- 'directly\n'
- ' accessing the module globals (whether by code within the '
- 'module, or\n'
- ' via a reference to the module’s globals dictionary) is '
- 'unaffected.\n'
- '\n'
+ 'Note:\n'
+ '\n'
+ ' Defining module "__getattr__" and setting module '
+ '"__class__" only\n'
+ ' affect lookups made using the attribute access syntax – '
+ 'directly\n'
+ ' accessing the module globals (whether by code within the '
+ 'module, or\n'
+ ' via a reference to the module’s globals dictionary) is '
+ 'unaffected.\n'
+ '\n'
'Changed in version 3.5: "__class__" module attribute is now '
'writable.\n'
'\n'
@@ -8766,47 +8766,47 @@ topics = {'assert': 'The "assert" statement\n'
'whose name is\n'
'the key of the property in the owner class’ "__dict__".\n'
'\n'
- 'object.__get__(self, instance, owner=None)\n'
+ 'object.__get__(self, instance, owner=None)\n'
'\n'
' Called to get the attribute of the owner class (class '
'attribute\n'
' access) or of an instance of that class (instance '
'attribute\n'
- ' access). The optional *owner* argument is the owner '
- 'class, while\n'
- ' *instance* is the instance that the attribute was '
- 'accessed through,\n'
- ' or "None" when the attribute is accessed through the '
- '*owner*.\n'
- '\n'
- ' This method should return the computed attribute value or '
- 'raise an\n'
- ' "AttributeError" exception.\n'
- '\n'
- ' **PEP 252** specifies that "__get__()" is callable with '
- 'one or two\n'
- ' arguments. Python’s own built-in descriptors support '
- 'this\n'
- ' specification; however, it is likely that some '
- 'third-party tools\n'
- ' have descriptors that require both arguments. Python’s '
- 'own\n'
- ' "__getattribute__()" implementation always passes in both '
- 'arguments\n'
- ' whether they are required or not.\n'
- '\n'
+ ' access). The optional *owner* argument is the owner '
+ 'class, while\n'
+ ' *instance* is the instance that the attribute was '
+ 'accessed through,\n'
+ ' or "None" when the attribute is accessed through the '
+ '*owner*.\n'
+ '\n'
+ ' This method should return the computed attribute value or '
+ 'raise an\n'
+ ' "AttributeError" exception.\n'
+ '\n'
+ ' **PEP 252** specifies that "__get__()" is callable with '
+ 'one or two\n'
+ ' arguments. Python’s own built-in descriptors support '
+ 'this\n'
+ ' specification; however, it is likely that some '
+ 'third-party tools\n'
+ ' have descriptors that require both arguments. Python’s '
+ 'own\n'
+ ' "__getattribute__()" implementation always passes in both '
+ 'arguments\n'
+ ' whether they are required or not.\n'
+ '\n'
'object.__set__(self, instance, value)\n'
'\n'
' Called to set the attribute on an instance *instance* of '
'the owner\n'
' class to a new value, *value*.\n'
'\n'
- ' Note, adding "__set__()" or "__delete__()" changes the '
- 'kind of\n'
- ' descriptor to a “data descriptor”. See Invoking '
- 'Descriptors for\n'
- ' more details.\n'
- '\n'
+ ' Note, adding "__set__()" or "__delete__()" changes the '
+ 'kind of\n'
+ ' descriptor to a “data descriptor”. See Invoking '
+ 'Descriptors for\n'
+ ' more details.\n'
+ '\n'
'object.__delete__(self, instance)\n'
'\n'
' Called to delete the attribute on an instance *instance* '
@@ -8819,24 +8819,24 @@ topics = {'assert': 'The "assert" statement\n'
'The\n'
' descriptor has been assigned to *name*.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "__set_name__()" is only called implicitly as part of '
- 'the "type"\n'
- ' constructor, so it will need to be called explicitly '
- 'with the\n'
- ' appropriate parameters when a descriptor is added to a '
- 'class\n'
- ' after initial creation:\n'
- '\n'
- ' class A:\n'
- ' pass\n'
- ' descr = custom_descriptor()\n'
- ' A.attr = descr\n'
- " descr.__set_name__(A, 'attr')\n"
- '\n'
- ' See Creating the class object for more details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "__set_name__()" is only called implicitly as part of '
+ 'the "type"\n'
+ ' constructor, so it will need to be called explicitly '
+ 'with the\n'
+ ' appropriate parameters when a descriptor is added to a '
+ 'class\n'
+ ' after initial creation:\n'
+ '\n'
+ ' class A:\n'
+ ' pass\n'
+ ' descr = custom_descriptor()\n'
+ ' A.attr = descr\n'
+ " descr.__set_name__(A, 'attr')\n"
+ '\n'
+ ' See Creating the class object for more details.\n'
+ '\n'
' New in version 3.6.\n'
'\n'
'The attribute "__objclass__" is interpreted by the "inspect" '
@@ -8909,16 +8909,16 @@ topics = {'assert': 'The "assert" statement\n'
'"super(B,\n'
' obj).m()" searches "obj.__class__.__mro__" for the base '
'class "A"\n'
- ' immediately following "B" and then invokes the descriptor '
+ ' immediately following "B" and then invokes the descriptor '
'with the\n'
' call: "A.__dict__[\'m\'].__get__(obj, obj.__class__)".\n'
'\n'
'For instance bindings, the precedence of descriptor '
'invocation depends\n'
- 'on which descriptor methods are defined. A descriptor can '
- 'define any\n'
- 'combination of "__get__()", "__set__()" and "__delete__()". '
- 'If it\n'
+ 'on which descriptor methods are defined. A descriptor can '
+ 'define any\n'
+ 'combination of "__get__()", "__set__()" and "__delete__()". '
+ 'If it\n'
'does not define "__get__()", then accessing the attribute '
'will return\n'
'the descriptor object itself unless there is a value in the '
@@ -8931,22 +8931,22 @@ topics = {'assert': 'The "assert" statement\n'
'both\n'
'"__get__()" and "__set__()", while non-data descriptors have '
'just the\n'
- '"__get__()" method. Data descriptors with "__get__()" and '
- '"__set__()"\n'
- '(and/or "__delete__()") defined always override a '
- 'redefinition in an\n'
- 'instance dictionary. In contrast, non-data descriptors can '
- 'be\n'
- 'overridden by instances.\n'
- '\n'
- 'Python methods (including those decorated with '
- '"@staticmethod" and\n'
- '"@classmethod") are implemented as non-data descriptors. '
- 'Accordingly,\n'
- 'instances can redefine and override methods. This allows '
- 'individual\n'
- 'instances to acquire behaviors that differ from other '
- 'instances of the\n'
+ '"__get__()" method. Data descriptors with "__get__()" and '
+ '"__set__()"\n'
+ '(and/or "__delete__()") defined always override a '
+ 'redefinition in an\n'
+ 'instance dictionary. In contrast, non-data descriptors can '
+ 'be\n'
+ 'overridden by instances.\n'
+ '\n'
+ 'Python methods (including those decorated with '
+ '"@staticmethod" and\n'
+ '"@classmethod") are implemented as non-data descriptors. '
+ 'Accordingly,\n'
+ 'instances can redefine and override methods. This allows '
+ 'individual\n'
+ 'instances to acquire behaviors that differ from other '
+ 'instances of the\n'
'same class.\n'
'\n'
'The "property()" function is implemented as a data '
@@ -8960,12 +8960,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'*__slots__* allow us to explicitly declare data members '
'(like\n'
- 'properties) and deny the creation of "__dict__" and '
+ 'properties) and deny the creation of "__dict__" and '
'*__weakref__*\n'
'(unless explicitly declared in *__slots__* or available in a '
'parent.)\n'
'\n'
- 'The space saved over using "__dict__" can be significant. '
+ 'The space saved over using "__dict__" can be significant. '
'Attribute\n'
'lookup speed can be significantly improved as well.\n'
'\n'
@@ -8977,7 +8977,7 @@ topics = {'assert': 'The "assert" statement\n'
'*__slots__*\n'
' reserves space for the declared variables and prevents '
'the\n'
- ' automatic creation of "__dict__" and *__weakref__* for '
+ ' automatic creation of "__dict__" and *__weakref__* for '
'each\n'
' instance.\n'
'\n'
@@ -8986,11 +8986,11 @@ topics = {'assert': 'The "assert" statement\n'
'~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
'\n'
'* When inheriting from a class without *__slots__*, the '
- '"__dict__" and\n'
- ' *__weakref__* attribute of the instances will always be '
- 'accessible.\n'
+ '"__dict__" and\n'
+ ' *__weakref__* attribute of the instances will always be '
+ 'accessible.\n'
'\n'
- '* Without a "__dict__" variable, instances cannot be '
+ '* Without a "__dict__" variable, instances cannot be '
'assigned new\n'
' variables not listed in the *__slots__* definition. '
'Attempts to\n'
@@ -9002,40 +9002,40 @@ topics = {'assert': 'The "assert" statement\n'
' declaration.\n'
'\n'
'* Without a *__weakref__* variable for each instance, '
- 'classes defining\n'
- ' *__slots__* do not support "weak references" to its '
- 'instances. If\n'
- ' weak reference support is needed, then add '
- '"\'__weakref__\'" to the\n'
- ' sequence of strings in the *__slots__* declaration.\n'
+ 'classes defining\n'
+ ' *__slots__* do not support "weak references" to its '
+ 'instances. If\n'
+ ' weak reference support is needed, then add '
+ '"\'__weakref__\'" to the\n'
+ ' sequence of strings in the *__slots__* declaration.\n'
'\n'
'* *__slots__* are implemented at the class level by '
'creating\n'
- ' descriptors for each variable name. As a result, class '
- 'attributes\n'
- ' cannot be used to set default values for instance '
- 'variables defined\n'
- ' by *__slots__*; otherwise, the class attribute would '
- 'overwrite the\n'
- ' descriptor assignment.\n'
+ ' descriptors for each variable name. As a result, class '
+ 'attributes\n'
+ ' cannot be used to set default values for instance '
+ 'variables defined\n'
+ ' by *__slots__*; otherwise, the class attribute would '
+ 'overwrite the\n'
+ ' descriptor assignment.\n'
'\n'
'* The action of a *__slots__* declaration is not limited to '
- 'the class\n'
- ' where it is defined. *__slots__* declared in parents are '
- 'available\n'
- ' in child classes. However, child subclasses will get a '
- '"__dict__"\n'
- ' and *__weakref__* unless they also define *__slots__* '
- '(which should\n'
- ' only contain names of any *additional* slots).\n'
+ 'the class\n'
+ ' where it is defined. *__slots__* declared in parents are '
+ 'available\n'
+ ' in child classes. However, child subclasses will get a '
+ '"__dict__"\n'
+ ' and *__weakref__* unless they also define *__slots__* '
+ '(which should\n'
+ ' only contain names of any *additional* slots).\n'
'\n'
'* If a class defines a slot also defined in a base class, '
- 'the instance\n'
- ' variable defined by the base class slot is inaccessible '
- '(except by\n'
- ' retrieving its descriptor directly from the base class). '
- 'This\n'
- ' renders the meaning of the program undefined. In the '
+ 'the instance\n'
+ ' variable defined by the base class slot is inaccessible '
+ '(except by\n'
+ ' retrieving its descriptor directly from the base class). '
+ 'This\n'
+ ' renders the meaning of the program undefined. In the '
'future, a\n'
' check may be added to prevent this.\n'
'\n'
@@ -9044,18 +9044,18 @@ topics = {'assert': 'The "assert" statement\n'
' “variable-length” built-in types such as "int", "bytes" '
'and "tuple".\n'
'\n'
- '* Any non-string *iterable* may be assigned to *__slots__*.\n'
- '\n'
- '* If a "dictionary" is used to assign *__slots__*, the '
- 'dictionary keys\n'
- ' will be used as the slot names. The values of the '
- 'dictionary can be\n'
- ' used to provide per-attribute docstrings that will be '
- 'recognised by\n'
- ' "inspect.getdoc()" and displayed in the output of '
- '"help()".\n'
- '\n'
- '* "__class__" assignment works only if both classes have the '
+ '* Any non-string *iterable* may be assigned to *__slots__*.\n'
+ '\n'
+ '* If a "dictionary" is used to assign *__slots__*, the '
+ 'dictionary keys\n'
+ ' will be used as the slot names. The values of the '
+ 'dictionary can be\n'
+ ' used to provide per-attribute docstrings that will be '
+ 'recognised by\n'
+ ' "inspect.getdoc()" and displayed in the output of '
+ '"help()".\n'
+ '\n'
+ '* "__class__" assignment works only if both classes have the '
'same\n'
' *__slots__*.\n'
'\n'
@@ -9067,18 +9067,18 @@ topics = {'assert': 'The "assert" statement\n'
'violations\n'
' raise "TypeError".\n'
'\n'
- '* If an *iterator* is used for *__slots__* then a '
- '*descriptor* is\n'
- ' created for each of the iterator’s values. However, the '
- '*__slots__*\n'
- ' attribute will be an empty iterator.\n'
+ '* If an *iterator* is used for *__slots__* then a '
+ '*descriptor* is\n'
+ ' created for each of the iterator’s values. However, the '
+ '*__slots__*\n'
+ ' attribute will be an empty iterator.\n'
+ '\n'
'\n'
- '\n'
'Customizing class creation\n'
'==========================\n'
'\n'
'Whenever a class inherits from another class, '
- '"__init_subclass__()" is\n'
+ '"__init_subclass__()" is\n'
'called on that class. This way, it is possible to write '
'classes which\n'
'change the behavior of subclasses. This is closely related '
@@ -9109,7 +9109,7 @@ topics = {'assert': 'The "assert" statement\n'
' in:\n'
'\n'
' class Philosopher:\n'
- ' def __init_subclass__(cls, /, default_name, '
+ ' def __init_subclass__(cls, /, default_name, '
'**kwargs):\n'
' super().__init_subclass__(**kwargs)\n'
' cls.default_name = default_name\n'
@@ -9122,11 +9122,11 @@ topics = {'assert': 'The "assert" statement\n'
'does nothing,\n'
' but raises an error if it is called with any arguments.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The metaclass hint "metaclass" is consumed by the rest '
- 'of the\n'
- ' type machinery, and is never passed to '
+ ' Note:\n'
+ '\n'
+ ' The metaclass hint "metaclass" is consumed by the rest '
+ 'of the\n'
+ ' type machinery, and is never passed to '
'"__init_subclass__"\n'
' implementations. The actual metaclass (rather than the '
'explicit\n'
@@ -9170,15 +9170,15 @@ topics = {'assert': 'The "assert" statement\n'
'When a class definition is executed, the following steps '
'occur:\n'
'\n'
- '* MRO entries are resolved;\n'
+ '* MRO entries are resolved;\n'
'\n'
- '* the appropriate metaclass is determined;\n'
+ '* the appropriate metaclass is determined;\n'
'\n'
- '* the class namespace is prepared;\n'
+ '* the class namespace is prepared;\n'
'\n'
- '* the class body is executed;\n'
+ '* the class body is executed;\n'
'\n'
- '* the class object is created.\n'
+ '* the class object is created.\n'
'\n'
'\n'
'Resolving MRO entries\n'
@@ -9194,12 +9194,12 @@ topics = {'assert': 'The "assert" statement\n'
'tuple may\n'
'be empty, in such case the original base is ignored.\n'
'\n'
- 'See also:\n'
+ 'See also:\n'
+ '\n'
+ ' **PEP 560** - Core support for typing module and generic '
+ 'types\n'
'\n'
- ' **PEP 560** - Core support for typing module and generic '
- 'types\n'
'\n'
- '\n'
'Determining the appropriate metaclass\n'
'-------------------------------------\n'
'\n'
@@ -9209,16 +9209,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'* if no bases and no explicit metaclass are given, then '
'"type()" is\n'
- ' used;\n'
+ ' used;\n'
'\n'
'* if an explicit metaclass is given and it is *not* an '
'instance of\n'
- ' "type()", then it is used directly as the metaclass;\n'
+ ' "type()", then it is used directly as the metaclass;\n'
'\n'
'* if an instance of "type()" is given as the explicit '
'metaclass, or\n'
' bases are defined, then the most derived metaclass is '
- 'used.\n'
+ 'used.\n'
'\n'
'The most derived metaclass is selected from the explicitly '
'specified\n'
@@ -9244,13 +9244,13 @@ topics = {'assert': 'The "assert" statement\n'
'bases,\n'
'**kwds)" (where the additional keyword arguments, if any, '
'come from\n'
- 'the class definition). The "__prepare__" method should be '
- 'implemented\n'
- 'as a "classmethod". The namespace returned by "__prepare__" '
- 'is passed\n'
- 'in to "__new__", but when the final class object is created '
- 'the\n'
- 'namespace is copied into a new "dict".\n'
+ 'the class definition). The "__prepare__" method should be '
+ 'implemented\n'
+ 'as a "classmethod". The namespace returned by "__prepare__" '
+ 'is passed\n'
+ 'in to "__new__", but when the final class object is created '
+ 'the\n'
+ 'namespace is copied into a new "dict".\n'
'\n'
'If the metaclass has no "__prepare__" attribute, then the '
'class\n'
@@ -9322,9 +9322,9 @@ topics = {'assert': 'The "assert" statement\n'
'up to the\n'
'"type.__new__" call in order for the class to be '
'initialised\n'
- 'correctly. Failing to do so will result in a "RuntimeError" '
- 'in Python\n'
- '3.8.\n'
+ 'correctly. Failing to do so will result in a "RuntimeError" '
+ 'in Python\n'
+ '3.8.\n'
'\n'
'When using the default metaclass "type", or any metaclass '
'that\n'
@@ -9340,7 +9340,7 @@ topics = {'assert': 'The "assert" statement\n'
'with the\n'
' class being defined and the assigned name of that '
'particular\n'
- ' descriptor;\n'
+ ' descriptor;\n'
'\n'
'* finally, the "__init_subclass__()" hook is called on the '
'immediate\n'
@@ -9437,180 +9437,180 @@ topics = {'assert': 'The "assert" statement\n'
'Emulating generic types\n'
'=======================\n'
'\n'
- 'When using *type annotations*, it is often useful to '
- '*parameterize* a\n'
- '*generic type* using Python’s square-brackets notation. For '
- 'example,\n'
- 'the annotation "list[int]" might be used to signify a "list" '
- 'in which\n'
- 'all the elements are of type "int".\n'
- '\n'
- 'See also:\n'
- '\n'
- ' **PEP 484** - Type Hints\n'
- ' Introducing Python’s framework for type annotations\n'
- '\n'
- ' Generic Alias Types\n'
- ' Documentation for objects representing parameterized '
- 'generic\n'
- ' classes\n'
- '\n'
- ' Generics, user-defined generics and "typing.Generic"\n'
- ' Documentation on how to implement generic classes that '
- 'can be\n'
- ' parameterized at runtime and understood by static '
- 'type-checkers.\n'
- '\n'
- 'A class can *generally* only be parameterized if it defines '
- 'the\n'
- 'special class method "__class_getitem__()".\n'
- '\n'
+ 'When using *type annotations*, it is often useful to '
+ '*parameterize* a\n'
+ '*generic type* using Python’s square-brackets notation. For '
+ 'example,\n'
+ 'the annotation "list[int]" might be used to signify a "list" '
+ 'in which\n'
+ 'all the elements are of type "int".\n'
+ '\n'
+ 'See also:\n'
+ '\n'
+ ' **PEP 484** - Type Hints\n'
+ ' Introducing Python’s framework for type annotations\n'
+ '\n'
+ ' Generic Alias Types\n'
+ ' Documentation for objects representing parameterized '
+ 'generic\n'
+ ' classes\n'
+ '\n'
+ ' Generics, user-defined generics and "typing.Generic"\n'
+ ' Documentation on how to implement generic classes that '
+ 'can be\n'
+ ' parameterized at runtime and understood by static '
+ 'type-checkers.\n'
+ '\n'
+ 'A class can *generally* only be parameterized if it defines '
+ 'the\n'
+ 'special class method "__class_getitem__()".\n'
+ '\n'
'classmethod object.__class_getitem__(cls, key)\n'
'\n'
' Return an object representing the specialization of a '
'generic class\n'
' by type arguments found in *key*.\n'
'\n'
- ' When defined on a class, "__class_getitem__()" is '
- 'automatically a\n'
- ' class method. As such, there is no need for it to be '
- 'decorated with\n'
- ' "@classmethod" when it is defined.\n'
- '\n'
- '\n'
- 'The purpose of *__class_getitem__*\n'
- '----------------------------------\n'
- '\n'
- 'The purpose of "__class_getitem__()" is to allow runtime\n'
- 'parameterization of standard-library generic classes in '
- 'order to more\n'
- 'easily apply *type hints* to these classes.\n'
- '\n'
- 'To implement custom generic classes that can be '
- 'parameterized at\n'
- 'runtime and understood by static type-checkers, users should '
- 'either\n'
- 'inherit from a standard library class that already '
- 'implements\n'
- '"__class_getitem__()", or inherit from "typing.Generic", '
- 'which has its\n'
- 'own implementation of "__class_getitem__()".\n'
- '\n'
- 'Custom implementations of "__class_getitem__()" on classes '
- 'defined\n'
- 'outside of the standard library may not be understood by '
- 'third-party\n'
- 'type-checkers such as mypy. Using "__class_getitem__()" on '
- 'any class\n'
- 'for purposes other than type hinting is discouraged.\n'
- '\n'
- '\n'
- '*__class_getitem__* versus *__getitem__*\n'
- '----------------------------------------\n'
- '\n'
- 'Usually, the subscription of an object using square brackets '
- 'will call\n'
- 'the "__getitem__()" instance method defined on the object’s '
- 'class.\n'
- 'However, if the object being subscribed is itself a class, '
- 'the class\n'
- 'method "__class_getitem__()" may be called instead.\n'
- '"__class_getitem__()" should return a GenericAlias object if '
- 'it is\n'
- 'properly defined.\n'
- '\n'
- 'Presented with the *expression* "obj[x]", the Python '
- 'interpreter\n'
- 'follows something like the following process to decide '
- 'whether\n'
- '"__getitem__()" or "__class_getitem__()" should be called:\n'
- '\n'
- ' from inspect import isclass\n'
- '\n'
- ' def subscribe(obj, x):\n'
- ' """Return the result of the expression `obj[x]`"""\n'
- '\n'
- ' class_of_obj = type(obj)\n'
- '\n'
- ' # If the class of obj defines __getitem__,\n'
- ' # call class_of_obj.__getitem__(obj, x)\n'
- " if hasattr(class_of_obj, '__getitem__'):\n"
- ' return class_of_obj.__getitem__(obj, x)\n'
- '\n'
- ' # Else, if obj is a class and defines '
- '__class_getitem__,\n'
- ' # call obj.__class_getitem__(x)\n'
- ' elif isclass(obj) and hasattr(obj, '
- "'__class_getitem__'):\n"
- ' return obj.__class_getitem__(x)\n'
- '\n'
- ' # Else, raise an exception\n'
- ' else:\n'
- ' raise TypeError(\n'
- ' f"\'{class_of_obj.__name__}\' object is not '
- 'subscriptable"\n'
- ' )\n'
- '\n'
- 'In Python, all classes are themselves instances of other '
- 'classes. The\n'
- 'class of a class is known as that class’s *metaclass*, and '
- 'most\n'
- 'classes have the "type" class as their metaclass. "type" '
- 'does not\n'
- 'define "__getitem__()", meaning that expressions such as '
- '"list[int]",\n'
- '"dict[str, float]" and "tuple[str, bytes]" all result in\n'
- '"__class_getitem__()" being called:\n'
- '\n'
- ' >>> # list has class "type" as its metaclass, like most '
- 'classes:\n'
- ' >>> type(list)\n'
- " <class 'type'>\n"
- ' >>> type(dict) == type(list) == type(tuple) == type(str) '
- '== type(bytes)\n'
- ' True\n'
- ' >>> # "list[int]" calls "list.__class_getitem__(int)"\n'
- ' >>> list[int]\n'
- ' list[int]\n'
- ' >>> # list.__class_getitem__ returns a GenericAlias '
- 'object:\n'
- ' >>> type(list[int])\n'
- " <class 'types.GenericAlias'>\n"
- '\n'
- 'However, if a class has a custom metaclass that defines\n'
- '"__getitem__()", subscribing the class may result in '
- 'different\n'
- 'behaviour. An example of this can be found in the "enum" '
- 'module:\n'
- '\n'
- ' >>> from enum import Enum\n'
- ' >>> class Menu(Enum):\n'
- ' ... """A breakfast menu"""\n'
- " ... SPAM = 'spam'\n"
- " ... BACON = 'bacon'\n"
- ' ...\n'
- ' >>> # Enum classes have a custom metaclass:\n'
- ' >>> type(Menu)\n'
- " <class 'enum.EnumMeta'>\n"
- ' >>> # EnumMeta defines __getitem__,\n'
- ' >>> # so __class_getitem__ is not called,\n'
- ' >>> # and the result is not a GenericAlias object:\n'
- " >>> Menu['SPAM']\n"
- " <Menu.SPAM: 'spam'>\n"
- " >>> type(Menu['SPAM'])\n"
- " <enum 'Menu'>\n"
- '\n'
- 'See also:\n'
- '\n'
- ' **PEP 560** - Core Support for typing module and generic '
- 'types\n'
- ' Introducing "__class_getitem__()", and outlining when '
- 'a\n'
- ' subscription results in "__class_getitem__()" being '
- 'called\n'
- ' instead of "__getitem__()"\n'
- '\n'
- '\n'
+ ' When defined on a class, "__class_getitem__()" is '
+ 'automatically a\n'
+ ' class method. As such, there is no need for it to be '
+ 'decorated with\n'
+ ' "@classmethod" when it is defined.\n'
+ '\n'
+ '\n'
+ 'The purpose of *__class_getitem__*\n'
+ '----------------------------------\n'
+ '\n'
+ 'The purpose of "__class_getitem__()" is to allow runtime\n'
+ 'parameterization of standard-library generic classes in '
+ 'order to more\n'
+ 'easily apply *type hints* to these classes.\n'
+ '\n'
+ 'To implement custom generic classes that can be '
+ 'parameterized at\n'
+ 'runtime and understood by static type-checkers, users should '
+ 'either\n'
+ 'inherit from a standard library class that already '
+ 'implements\n'
+ '"__class_getitem__()", or inherit from "typing.Generic", '
+ 'which has its\n'
+ 'own implementation of "__class_getitem__()".\n'
+ '\n'
+ 'Custom implementations of "__class_getitem__()" on classes '
+ 'defined\n'
+ 'outside of the standard library may not be understood by '
+ 'third-party\n'
+ 'type-checkers such as mypy. Using "__class_getitem__()" on '
+ 'any class\n'
+ 'for purposes other than type hinting is discouraged.\n'
+ '\n'
+ '\n'
+ '*__class_getitem__* versus *__getitem__*\n'
+ '----------------------------------------\n'
+ '\n'
+ 'Usually, the subscription of an object using square brackets '
+ 'will call\n'
+ 'the "__getitem__()" instance method defined on the object’s '
+ 'class.\n'
+ 'However, if the object being subscribed is itself a class, '
+ 'the class\n'
+ 'method "__class_getitem__()" may be called instead.\n'
+ '"__class_getitem__()" should return a GenericAlias object if '
+ 'it is\n'
+ 'properly defined.\n'
+ '\n'
+ 'Presented with the *expression* "obj[x]", the Python '
+ 'interpreter\n'
+ 'follows something like the following process to decide '
+ 'whether\n'
+ '"__getitem__()" or "__class_getitem__()" should be called:\n'
+ '\n'
+ ' from inspect import isclass\n'
+ '\n'
+ ' def subscribe(obj, x):\n'
+ ' """Return the result of the expression `obj[x]`"""\n'
+ '\n'
+ ' class_of_obj = type(obj)\n'
+ '\n'
+ ' # If the class of obj defines __getitem__,\n'
+ ' # call class_of_obj.__getitem__(obj, x)\n'
+ " if hasattr(class_of_obj, '__getitem__'):\n"
+ ' return class_of_obj.__getitem__(obj, x)\n'
+ '\n'
+ ' # Else, if obj is a class and defines '
+ '__class_getitem__,\n'
+ ' # call obj.__class_getitem__(x)\n'
+ ' elif isclass(obj) and hasattr(obj, '
+ "'__class_getitem__'):\n"
+ ' return obj.__class_getitem__(x)\n'
+ '\n'
+ ' # Else, raise an exception\n'
+ ' else:\n'
+ ' raise TypeError(\n'
+ ' f"\'{class_of_obj.__name__}\' object is not '
+ 'subscriptable"\n'
+ ' )\n'
+ '\n'
+ 'In Python, all classes are themselves instances of other '
+ 'classes. The\n'
+ 'class of a class is known as that class’s *metaclass*, and '
+ 'most\n'
+ 'classes have the "type" class as their metaclass. "type" '
+ 'does not\n'
+ 'define "__getitem__()", meaning that expressions such as '
+ '"list[int]",\n'
+ '"dict[str, float]" and "tuple[str, bytes]" all result in\n'
+ '"__class_getitem__()" being called:\n'
+ '\n'
+ ' >>> # list has class "type" as its metaclass, like most '
+ 'classes:\n'
+ ' >>> type(list)\n'
+ " <class 'type'>\n"
+ ' >>> type(dict) == type(list) == type(tuple) == type(str) '
+ '== type(bytes)\n'
+ ' True\n'
+ ' >>> # "list[int]" calls "list.__class_getitem__(int)"\n'
+ ' >>> list[int]\n'
+ ' list[int]\n'
+ ' >>> # list.__class_getitem__ returns a GenericAlias '
+ 'object:\n'
+ ' >>> type(list[int])\n'
+ " <class 'types.GenericAlias'>\n"
+ '\n'
+ 'However, if a class has a custom metaclass that defines\n'
+ '"__getitem__()", subscribing the class may result in '
+ 'different\n'
+ 'behaviour. An example of this can be found in the "enum" '
+ 'module:\n'
+ '\n'
+ ' >>> from enum import Enum\n'
+ ' >>> class Menu(Enum):\n'
+ ' ... """A breakfast menu"""\n'
+ " ... SPAM = 'spam'\n"
+ " ... BACON = 'bacon'\n"
+ ' ...\n'
+ ' >>> # Enum classes have a custom metaclass:\n'
+ ' >>> type(Menu)\n'
+ " <class 'enum.EnumMeta'>\n"
+ ' >>> # EnumMeta defines __getitem__,\n'
+ ' >>> # so __class_getitem__ is not called,\n'
+ ' >>> # and the result is not a GenericAlias object:\n'
+ " >>> Menu['SPAM']\n"
+ " <Menu.SPAM: 'spam'>\n"
+ " >>> type(Menu['SPAM'])\n"
+ " <enum 'Menu'>\n"
+ '\n'
+ 'See also:\n'
+ '\n'
+ ' **PEP 560** - Core Support for typing module and generic '
+ 'types\n'
+ ' Introducing "__class_getitem__()", and outlining when '
+ 'a\n'
+ ' subscription results in "__class_getitem__()" being '
+ 'called\n'
+ ' instead of "__getitem__()"\n'
+ '\n'
+ '\n'
'Emulating callable objects\n'
'==========================\n'
'\n'
@@ -9618,8 +9618,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Called when the instance is “called” as a function; if '
'this method\n'
- ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
- ' "type(x).__call__(x, arg1, ...)".\n'
+ ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
+ ' "type(x).__call__(x, arg1, ...)".\n'
'\n'
'\n'
'Emulating container types\n'
@@ -9627,60 +9627,60 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following methods can be defined to implement container '
'objects.\n'
- 'Containers usually are *sequences* (such as "lists" or '
- '"tuples") or\n'
- '*mappings* (like "dictionaries"), but can represent other '
- 'containers\n'
- 'as well. The first set of methods is used either to emulate '
- 'a\n'
- 'sequence or to emulate a mapping; the difference is that for '
- 'a\n'
- 'sequence, the allowable keys should be the integers *k* for '
- 'which "0\n'
- '<= k < N" where *N* is the length of the sequence, or '
- '"slice" objects,\n'
- 'which define a range of items. It is also recommended that '
- 'mappings\n'
- 'provide the methods "keys()", "values()", "items()", '
- '"get()",\n'
- '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
- 'and\n'
- '"update()" behaving similar to those for Python’s standard\n'
- '"dictionary" objects. The "collections.abc" module provides '
- 'a\n'
- '"MutableMapping" *abstract base class* to help create those '
- 'methods\n'
- 'from a base set of "__getitem__()", "__setitem__()", '
- '"__delitem__()",\n'
- 'and "keys()". Mutable sequences should provide methods '
- '"append()",\n'
- '"count()", "index()", "extend()", "insert()", "pop()", '
- '"remove()",\n'
- '"reverse()" and "sort()", like Python standard "list" '
- 'objects.\n'
- 'Finally, sequence types should implement addition (meaning\n'
- 'concatenation) and multiplication (meaning repetition) by '
- 'defining the\n'
- 'methods "__add__()", "__radd__()", "__iadd__()", '
- '"__mul__()",\n'
- '"__rmul__()" and "__imul__()" described below; they should '
- 'not define\n'
- 'other numerical operators. It is recommended that both '
- 'mappings and\n'
- 'sequences implement the "__contains__()" method to allow '
- 'efficient use\n'
- 'of the "in" operator; for mappings, "in" should search the '
- 'mapping’s\n'
- 'keys; for sequences, it should search through the values. '
- 'It is\n'
- 'further recommended that both mappings and sequences '
- 'implement the\n'
- '"__iter__()" method to allow efficient iteration through '
+ 'Containers usually are *sequences* (such as "lists" or '
+ '"tuples") or\n'
+ '*mappings* (like "dictionaries"), but can represent other '
+ 'containers\n'
+ 'as well. The first set of methods is used either to emulate '
+ 'a\n'
+ 'sequence or to emulate a mapping; the difference is that for '
+ 'a\n'
+ 'sequence, the allowable keys should be the integers *k* for '
+ 'which "0\n'
+ '<= k < N" where *N* is the length of the sequence, or '
+ '"slice" objects,\n'
+ 'which define a range of items. It is also recommended that '
+ 'mappings\n'
+ 'provide the methods "keys()", "values()", "items()", '
+ '"get()",\n'
+ '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
+ 'and\n'
+ '"update()" behaving similar to those for Python’s standard\n'
+ '"dictionary" objects. The "collections.abc" module provides '
+ 'a\n'
+ '"MutableMapping" *abstract base class* to help create those '
+ 'methods\n'
+ 'from a base set of "__getitem__()", "__setitem__()", '
+ '"__delitem__()",\n'
+ 'and "keys()". Mutable sequences should provide methods '
+ '"append()",\n'
+ '"count()", "index()", "extend()", "insert()", "pop()", '
+ '"remove()",\n'
+ '"reverse()" and "sort()", like Python standard "list" '
+ 'objects.\n'
+ 'Finally, sequence types should implement addition (meaning\n'
+ 'concatenation) and multiplication (meaning repetition) by '
+ 'defining the\n'
+ 'methods "__add__()", "__radd__()", "__iadd__()", '
+ '"__mul__()",\n'
+ '"__rmul__()" and "__imul__()" described below; they should '
+ 'not define\n'
+ 'other numerical operators. It is recommended that both '
+ 'mappings and\n'
+ 'sequences implement the "__contains__()" method to allow '
+ 'efficient use\n'
+ 'of the "in" operator; for mappings, "in" should search the '
+ 'mapping’s\n'
+ 'keys; for sequences, it should search through the values. '
+ 'It is\n'
+ 'further recommended that both mappings and sequences '
+ 'implement the\n'
+ '"__iter__()" method to allow efficient iteration through '
+ 'the\n'
+ 'container; for mappings, "__iter__()" should iterate through '
'the\n'
- 'container; for mappings, "__iter__()" should iterate through '
- 'the\n'
- 'object’s keys; for sequences, it should iterate through the '
- 'values.\n'
+ 'object’s keys; for sequences, it should iterate through the '
+ 'values.\n'
'\n'
'object.__len__(self)\n'
'\n'
@@ -9709,23 +9709,23 @@ topics = {'assert': 'The "assert" statement\n'
' estimated length for the object (which may be greater or '
'less than\n'
' the actual length). The length must be an integer ">=" 0. '
- 'The\n'
- ' return value may also be "NotImplemented", which is '
- 'treated the\n'
- ' same as if the "__length_hint__" method didn’t exist at '
- 'all. This\n'
+ 'The\n'
+ ' return value may also be "NotImplemented", which is '
+ 'treated the\n'
+ ' same as if the "__length_hint__" method didn’t exist at '
+ 'all. This\n'
' method is purely an optimization and is never required '
'for\n'
' correctness.\n'
'\n'
' New in version 3.4.\n'
'\n'
- 'Note:\n'
+ 'Note:\n'
+ '\n'
+ ' Slicing is done exclusively with the following three '
+ 'methods. A\n'
+ ' call like\n'
'\n'
- ' Slicing is done exclusively with the following three '
- 'methods. A\n'
- ' call like\n'
- '\n'
' a[1:2] = b\n'
'\n'
' is translated to\n'
@@ -9738,40 +9738,40 @@ topics = {'assert': 'The "assert" statement\n'
'object.__getitem__(self, key)\n'
'\n'
' Called to implement evaluation of "self[key]". For '
- '*sequence*\n'
- ' types, the accepted keys should be integers and slice '
- 'objects.\n'
- ' Note that the special interpretation of negative indexes '
- '(if the\n'
- ' class wishes to emulate a *sequence* type) is up to the\n'
- ' "__getitem__()" method. If *key* is of an inappropriate '
- 'type,\n'
- ' "TypeError" may be raised; if of a value outside the set '
- 'of indexes\n'
- ' for the sequence (after any special interpretation of '
- 'negative\n'
- ' values), "IndexError" should be raised. For *mapping* '
- 'types, if\n'
- ' *key* is missing (not in the container), "KeyError" '
+ '*sequence*\n'
+ ' types, the accepted keys should be integers and slice '
+ 'objects.\n'
+ ' Note that the special interpretation of negative indexes '
+ '(if the\n'
+ ' class wishes to emulate a *sequence* type) is up to the\n'
+ ' "__getitem__()" method. If *key* is of an inappropriate '
+ 'type,\n'
+ ' "TypeError" may be raised; if of a value outside the set '
+ 'of indexes\n'
+ ' for the sequence (after any special interpretation of '
+ 'negative\n'
+ ' values), "IndexError" should be raised. For *mapping* '
+ 'types, if\n'
+ ' *key* is missing (not in the container), "KeyError" '
'should be\n'
- ' raised.\n'
+ ' raised.\n'
+ '\n'
+ ' Note:\n'
'\n'
- ' Note:\n'
- '\n'
- ' "for" loops expect that an "IndexError" will be raised '
- 'for\n'
+ ' "for" loops expect that an "IndexError" will be raised '
+ 'for\n'
' illegal indexes to allow proper detection of the end of '
'the\n'
' sequence.\n'
'\n'
- ' Note:\n'
- '\n'
- ' When subscripting a *class*, the special class method\n'
- ' "__class_getitem__()" may be called instead of '
- '"__getitem__()".\n'
- ' See __class_getitem__ versus __getitem__ for more '
- 'details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' When subscripting a *class*, the special class method\n'
+ ' "__class_getitem__()" may be called instead of '
+ '"__getitem__()".\n'
+ ' See __class_getitem__ versus __getitem__ for more '
+ 'details.\n'
+ '\n'
'object.__setitem__(self, key, value)\n'
'\n'
' Called to implement assignment to "self[key]". Same note '
@@ -9844,12 +9844,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The membership test operators ("in" and "not in") are '
'normally\n'
- 'implemented as an iteration through a container. However, '
+ 'implemented as an iteration through a container. However, '
'container\n'
'objects can supply the following special method with a more '
'efficient\n'
- 'implementation, which also does not require the object be '
- 'iterable.\n'
+ 'implementation, which also does not require the object be '
+ 'iterable.\n'
'\n'
'object.__contains__(self, item)\n'
'\n'
@@ -9928,7 +9928,7 @@ topics = {'assert': 'The "assert" statement\n'
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
- 'object.__rpow__(self, other[, modulo])\n'
+ 'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
@@ -9957,19 +9957,19 @@ topics = {'assert': 'The "assert" statement\n'
'"__rpow__()" (the\n'
' coercion rules would become too complicated).\n'
'\n'
- ' Note:\n'
- '\n'
- ' If the right operand’s type is a subclass of the left '
- 'operand’s\n'
- ' type and that subclass provides a different '
- 'implementation of the\n'
- ' reflected method for the operation, this method will be '
- 'called\n'
- ' before the left operand’s non-reflected method. This '
- 'behavior\n'
- ' allows subclasses to override their ancestors’ '
- 'operations.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' If the right operand’s type is a subclass of the left '
+ 'operand’s\n'
+ ' type and that subclass provides a different '
+ 'implementation of the\n'
+ ' reflected method for the operation, this method will be '
+ 'called\n'
+ ' before the left operand’s non-reflected method. This '
+ 'behavior\n'
+ ' allows subclasses to override their ancestors’ '
+ 'operations.\n'
+ '\n'
'object.__iadd__(self, other)\n'
'object.__isub__(self, other)\n'
'object.__imul__(self, other)\n'
@@ -10012,16 +10012,16 @@ topics = {'assert': 'The "assert" statement\n'
'the data\n'
' model.\n'
'\n'
- ' Note:\n'
- '\n'
- ' Due to a bug in the dispatching mechanism for "**=", a '
- 'class that\n'
- ' defines "__ipow__()" but returns "NotImplemented" would '
- 'fail to\n'
- ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
- 'bug is\n'
- ' fixed in Python 3.10.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' Due to a bug in the dispatching mechanism for "**=", a '
+ 'class that\n'
+ ' defines "__ipow__()" but returns "NotImplemented" would '
+ 'fail to\n'
+ ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
+ 'bug is\n'
+ ' fixed in Python 3.10.\n'
+ '\n'
'object.__neg__(self)\n'
'object.__pos__(self)\n'
'object.__abs__(self)\n'
@@ -10052,11 +10052,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
- ' If "__int__()", "__float__()" and "__complex__()" are not '
- 'defined\n'
- ' then corresponding built-in functions "int()", "float()" '
- 'and\n'
- ' "complex()" fall back to "__index__()".\n'
+ ' If "__int__()", "__float__()" and "__complex__()" are not '
+ 'defined\n'
+ ' then corresponding built-in functions "int()", "float()" '
+ 'and\n'
+ ' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
@@ -10072,9 +10072,9 @@ topics = {'assert': 'The "assert" statement\n'
' of the object truncated to an "Integral" (typically an '
'"int").\n'
'\n'
- ' The built-in function "int()" falls back to "__trunc__()" '
- 'if\n'
- ' neither "__int__()" nor "__index__()" is defined.\n'
+ ' The built-in function "int()" falls back to "__trunc__()" '
+ 'if\n'
+ ' neither "__int__()" nor "__index__()" is defined.\n'
'\n'
'\n'
'With Statement Context Managers\n'
@@ -10262,14 +10262,14 @@ topics = {'assert': 'The "assert" statement\n'
'capitalized\n'
' and the rest lowercased.\n'
'\n'
- ' Changed in version 3.8: The first character is now put '
- 'into\n'
- ' titlecase rather than uppercase. This means that '
- 'characters like\n'
- ' digraphs will only have their first letter capitalized, '
- 'instead of\n'
- ' the full character.\n'
- '\n'
+ ' Changed in version 3.8: The first character is now put '
+ 'into\n'
+ ' titlecase rather than uppercase. This means that '
+ 'characters like\n'
+ ' digraphs will only have their first letter capitalized, '
+ 'instead of\n'
+ ' the full character.\n'
+ '\n'
'str.casefold()\n'
'\n'
' Return a casefolded copy of the string. Casefolded '
@@ -10310,7 +10310,7 @@ topics = {'assert': 'The "assert" statement\n'
'*start* and\n'
' *end* are interpreted as in slice notation.\n'
'\n'
- 'str.encode(encoding="utf-8", errors="strict")\n'
+ 'str.encode(encoding="utf-8", errors="strict")\n'
'\n'
' Return an encoded version of the string as a bytes '
'object. Default\n'
@@ -10328,20 +10328,20 @@ topics = {'assert': 'The "assert" statement\n'
'For a list\n'
' of possible encodings, see section Standard Encodings.\n'
'\n'
- ' By default, the *errors* argument is not checked for '
- 'best\n'
- ' performances, but only used at the first encoding '
- 'error. Enable the\n'
- ' Python Development Mode, or use a debug build to check '
- '*errors*.\n'
- '\n'
+ ' By default, the *errors* argument is not checked for '
+ 'best\n'
+ ' performances, but only used at the first encoding '
+ 'error. Enable the\n'
+ ' Python Development Mode, or use a debug build to check '
+ '*errors*.\n'
+ '\n'
' Changed in version 3.1: Support for keyword arguments '
'added.\n'
'\n'
- ' Changed in version 3.9: The *errors* is now checked in '
- 'development\n'
- ' mode and in debug mode.\n'
- '\n'
+ ' Changed in version 3.9: The *errors* is now checked in '
+ 'development\n'
+ ' mode and in debug mode.\n'
+ '\n'
'str.endswith(suffix[, start[, end]])\n'
'\n'
' Return "True" if the string ends with the specified '
@@ -10396,14 +10396,14 @@ topics = {'assert': 'The "assert" statement\n'
'"-1" if\n'
' *sub* is not found.\n'
'\n'
- ' Note:\n'
+ ' Note:\n'
+ '\n'
+ ' The "find()" method should be used only if you need '
+ 'to know the\n'
+ ' position of *sub*. To check if *sub* is a substring '
+ 'or not, use\n'
+ ' the "in" operator:\n'
'\n'
- ' The "find()" method should be used only if you need '
- 'to know the\n'
- ' position of *sub*. To check if *sub* is a substring '
- 'or not, use\n'
- ' the "in" operator:\n'
- '\n'
" >>> 'Py' in 'Python'\n"
' True\n'
'\n'
@@ -10431,9 +10431,9 @@ topics = {'assert': 'The "assert" statement\n'
' formatting options that can be specified in format '
'strings.\n'
'\n'
- ' Note:\n'
- '\n'
- ' When formatting a number ("int", "float", "complex",\n'
+ ' Note:\n'
+ '\n'
+ ' When formatting a number ("int", "float", "complex",\n'
' "decimal.Decimal" and subclasses) with the "n" type '
'(ex:\n'
' "\'{:n}\'.format(1234)"), the function temporarily '
@@ -10480,20 +10480,20 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'str.isalnum()\n'
'\n'
- ' Return "True" if all characters in the string are '
+ ' Return "True" if all characters in the string are '
'alphanumeric and\n'
- ' there is at least one character, "False" otherwise. A '
- 'character\n'
- ' "c" is alphanumeric if one of the following returns '
+ ' there is at least one character, "False" otherwise. A '
+ 'character\n'
+ ' "c" is alphanumeric if one of the following returns '
'"True":\n'
' "c.isalpha()", "c.isdecimal()", "c.isdigit()", or '
'"c.isnumeric()".\n'
'\n'
'str.isalpha()\n'
'\n'
- ' Return "True" if all characters in the string are '
+ ' Return "True" if all characters in the string are '
'alphabetic and\n'
- ' there is at least one character, "False" otherwise. '
+ ' there is at least one character, "False" otherwise. '
'Alphabetic\n'
' characters are those characters defined in the Unicode '
'character\n'
@@ -10507,91 +10507,91 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'str.isascii()\n'
'\n'
- ' Return "True" if the string is empty or all characters '
- 'in the\n'
- ' string are ASCII, "False" otherwise. ASCII characters '
- 'have code\n'
- ' points in the range U+0000-U+007F.\n'
+ ' Return "True" if the string is empty or all characters '
+ 'in the\n'
+ ' string are ASCII, "False" otherwise. ASCII characters '
+ 'have code\n'
+ ' points in the range U+0000-U+007F.\n'
'\n'
' New in version 3.7.\n'
'\n'
'str.isdecimal()\n'
'\n'
- ' Return "True" if all characters in the string are '
- 'decimal\n'
- ' characters and there is at least one character, "False" '
- 'otherwise.\n'
- ' Decimal characters are those that can be used to form '
- 'numbers in\n'
- ' base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. '
- 'Formally a decimal\n'
- ' character is a character in the Unicode General '
- 'Category “Nd”.\n'
+ ' Return "True" if all characters in the string are '
+ 'decimal\n'
+ ' characters and there is at least one character, "False" '
+ 'otherwise.\n'
+ ' Decimal characters are those that can be used to form '
+ 'numbers in\n'
+ ' base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. '
+ 'Formally a decimal\n'
+ ' character is a character in the Unicode General '
+ 'Category “Nd”.\n'
'\n'
'str.isdigit()\n'
'\n'
- ' Return "True" if all characters in the string are '
- 'digits and there\n'
- ' is at least one character, "False" otherwise. Digits '
- 'include\n'
- ' decimal characters and digits that need special '
- 'handling, such as\n'
- ' the compatibility superscript digits. This covers '
- 'digits which\n'
- ' cannot be used to form numbers in base 10, like the '
- 'Kharosthi\n'
- ' numbers. Formally, a digit is a character that has the '
- 'property\n'
- ' value Numeric_Type=Digit or Numeric_Type=Decimal.\n'
+ ' Return "True" if all characters in the string are '
+ 'digits and there\n'
+ ' is at least one character, "False" otherwise. Digits '
+ 'include\n'
+ ' decimal characters and digits that need special '
+ 'handling, such as\n'
+ ' the compatibility superscript digits. This covers '
+ 'digits which\n'
+ ' cannot be used to form numbers in base 10, like the '
+ 'Kharosthi\n'
+ ' numbers. Formally, a digit is a character that has the '
+ 'property\n'
+ ' value Numeric_Type=Digit or Numeric_Type=Decimal.\n'
'\n'
'str.isidentifier()\n'
'\n'
- ' Return "True" if the string is a valid identifier '
+ ' Return "True" if the string is a valid identifier '
'according to the\n'
' language definition, section Identifiers and keywords.\n'
'\n'
- ' Call "keyword.iskeyword()" to test whether string "s" '
- 'is a reserved\n'
- ' identifier, such as "def" and "class".\n'
- '\n'
- ' Example:\n'
- '\n'
- ' >>> from keyword import iskeyword\n'
- '\n'
- " >>> 'hello'.isidentifier(), iskeyword('hello')\n"
- ' (True, False)\n'
- " >>> 'def'.isidentifier(), iskeyword('def')\n"
- ' (True, True)\n'
- '\n'
+ ' Call "keyword.iskeyword()" to test whether string "s" '
+ 'is a reserved\n'
+ ' identifier, such as "def" and "class".\n'
+ '\n'
+ ' Example:\n'
+ '\n'
+ ' >>> from keyword import iskeyword\n'
+ '\n'
+ " >>> 'hello'.isidentifier(), iskeyword('hello')\n"
+ ' (True, False)\n'
+ " >>> 'def'.isidentifier(), iskeyword('def')\n"
+ ' (True, True)\n'
+ '\n'
'str.islower()\n'
'\n'
- ' Return "True" if all cased characters [4] in the string '
- 'are\n'
- ' lowercase and there is at least one cased character, '
- '"False"\n'
- ' otherwise.\n'
+ ' Return "True" if all cased characters [4] in the string '
+ 'are\n'
+ ' lowercase and there is at least one cased character, '
+ '"False"\n'
+ ' otherwise.\n'
'\n'
'str.isnumeric()\n'
'\n'
- ' Return "True" if all characters in the string are '
- 'numeric\n'
- ' characters, and there is at least one character, '
- '"False" otherwise.\n'
- ' Numeric characters include digit characters, and all '
- 'characters\n'
- ' that have the Unicode numeric value property, e.g. '
- 'U+2155, VULGAR\n'
- ' FRACTION ONE FIFTH. Formally, numeric characters are '
- 'those with\n'
- ' the property value Numeric_Type=Digit, '
- 'Numeric_Type=Decimal or\n'
+ ' Return "True" if all characters in the string are '
+ 'numeric\n'
+ ' characters, and there is at least one character, '
+ '"False" otherwise.\n'
+ ' Numeric characters include digit characters, and all '
+ 'characters\n'
+ ' that have the Unicode numeric value property, e.g. '
+ 'U+2155, VULGAR\n'
+ ' FRACTION ONE FIFTH. Formally, numeric characters are '
+ 'those with\n'
+ ' the property value Numeric_Type=Digit, '
+ 'Numeric_Type=Decimal or\n'
' Numeric_Type=Numeric.\n'
'\n'
'str.isprintable()\n'
'\n'
- ' Return "True" if all characters in the string are '
+ ' Return "True" if all characters in the string are '
'printable or the\n'
- ' string is empty, "False" otherwise. Nonprintable '
+ ' string is empty, "False" otherwise. Nonprintable '
'characters are\n'
' those characters defined in the Unicode character '
'database as\n'
@@ -10607,46 +10607,46 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'str.isspace()\n'
'\n'
- ' Return "True" if there are only whitespace characters '
- 'in the string\n'
- ' and there is at least one character, "False" '
- 'otherwise.\n'
- '\n'
- ' A character is *whitespace* if in the Unicode character '
- 'database\n'
- ' (see "unicodedata"), either its general category is '
- '"Zs"\n'
- ' (“Separator, space”), or its bidirectional class is one '
- 'of "WS",\n'
- ' "B", or "S".\n'
- '\n'
+ ' Return "True" if there are only whitespace characters '
+ 'in the string\n'
+ ' and there is at least one character, "False" '
+ 'otherwise.\n'
+ '\n'
+ ' A character is *whitespace* if in the Unicode character '
+ 'database\n'
+ ' (see "unicodedata"), either its general category is '
+ '"Zs"\n'
+ ' (“Separator, space”), or its bidirectional class is one '
+ 'of "WS",\n'
+ ' "B", or "S".\n'
+ '\n'
'str.istitle()\n'
'\n'
- ' Return "True" if the string is a titlecased string and '
+ ' Return "True" if the string is a titlecased string and '
'there is at\n'
' least one character, for example uppercase characters '
'may only\n'
' follow uncased characters and lowercase characters only '
'cased ones.\n'
- ' Return "False" otherwise.\n'
+ ' Return "False" otherwise.\n'
'\n'
'str.isupper()\n'
'\n'
- ' Return "True" if all cased characters [4] in the string '
- 'are\n'
- ' uppercase and there is at least one cased character, '
- '"False"\n'
- ' otherwise.\n'
- '\n'
- " >>> 'BANANA'.isupper()\n"
- ' True\n'
- " >>> 'banana'.isupper()\n"
- ' False\n'
- " >>> 'baNana'.isupper()\n"
- ' False\n'
- " >>> ' '.isupper()\n"
- ' False\n'
- '\n'
+ ' Return "True" if all cased characters [4] in the string '
+ 'are\n'
+ ' uppercase and there is at least one cased character, '
+ '"False"\n'
+ ' otherwise.\n'
+ '\n'
+ " >>> 'BANANA'.isupper()\n"
+ ' True\n'
+ " >>> 'banana'.isupper()\n"
+ ' False\n'
+ " >>> 'baNana'.isupper()\n"
+ ' False\n'
+ " >>> ' '.isupper()\n"
+ ' False\n'
+ '\n'
'str.join(iterable)\n'
'\n'
' Return a string which is the concatenation of the '
@@ -10695,16 +10695,16 @@ topics = {'assert': 'The "assert" statement\n'
" >>> 'www.example.com'.lstrip('cmowz.')\n"
" 'example.com'\n"
'\n'
- ' See "str.removeprefix()" for a method that will remove '
- 'a single\n'
- ' prefix string rather than all of a set of characters. '
- 'For example:\n'
- '\n'
- " >>> 'Arthur: three!'.lstrip('Arthur: ')\n"
- " 'ee!'\n"
- " >>> 'Arthur: three!'.removeprefix('Arthur: ')\n"
- " 'three!'\n"
- '\n'
+ ' See "str.removeprefix()" for a method that will remove '
+ 'a single\n'
+ ' prefix string rather than all of a set of characters. '
+ 'For example:\n'
+ '\n'
+ " >>> 'Arthur: three!'.lstrip('Arthur: ')\n"
+ " 'ee!'\n"
+ " >>> 'Arthur: three!'.removeprefix('Arthur: ')\n"
+ " 'three!'\n"
+ '\n'
'static str.maketrans(x[, y[, z]])\n'
'\n'
' This static method returns a translation table usable '
@@ -10741,35 +10741,35 @@ topics = {'assert': 'The "assert" statement\n'
'followed by\n'
' two empty strings.\n'
'\n'
- 'str.removeprefix(prefix, /)\n'
- '\n'
- ' If the string starts with the *prefix* string, return\n'
- ' "string[len(prefix):]". Otherwise, return a copy of the '
- 'original\n'
- ' string:\n'
- '\n'
- " >>> 'TestHook'.removeprefix('Test')\n"
- " 'Hook'\n"
- " >>> 'BaseTestCase'.removeprefix('Test')\n"
- " 'BaseTestCase'\n"
- '\n'
- ' New in version 3.9.\n'
- '\n'
- 'str.removesuffix(suffix, /)\n'
- '\n'
- ' If the string ends with the *suffix* string and that '
- '*suffix* is\n'
- ' not empty, return "string[:-len(suffix)]". Otherwise, '
- 'return a copy\n'
- ' of the original string:\n'
- '\n'
- " >>> 'MiscTests'.removesuffix('Tests')\n"
- " 'Misc'\n"
- " >>> 'TmpDirMixin'.removesuffix('Tests')\n"
- " 'TmpDirMixin'\n"
- '\n'
- ' New in version 3.9.\n'
- '\n'
+ 'str.removeprefix(prefix, /)\n'
+ '\n'
+ ' If the string starts with the *prefix* string, return\n'
+ ' "string[len(prefix):]". Otherwise, return a copy of the '
+ 'original\n'
+ ' string:\n'
+ '\n'
+ " >>> 'TestHook'.removeprefix('Test')\n"
+ " 'Hook'\n"
+ " >>> 'BaseTestCase'.removeprefix('Test')\n"
+ " 'BaseTestCase'\n"
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
+ 'str.removesuffix(suffix, /)\n'
+ '\n'
+ ' If the string ends with the *suffix* string and that '
+ '*suffix* is\n'
+ ' not empty, return "string[:-len(suffix)]". Otherwise, '
+ 'return a copy\n'
+ ' of the original string:\n'
+ '\n'
+ " >>> 'MiscTests'.removesuffix('Tests')\n"
+ " 'Misc'\n"
+ " >>> 'TmpDirMixin'.removesuffix('Tests')\n"
+ " 'TmpDirMixin'\n"
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
'str.replace(old, new[, count])\n'
'\n'
' Return a copy of the string with all occurrences of '
@@ -10816,7 +10816,7 @@ topics = {'assert': 'The "assert" statement\n'
'followed by\n'
' the string itself.\n'
'\n'
- 'str.rsplit(sep=None, maxsplit=-1)\n'
+ 'str.rsplit(sep=None, maxsplit=-1)\n'
'\n'
' Return a list of the words in the string, using *sep* '
'as the\n'
@@ -10847,17 +10847,17 @@ topics = {'assert': 'The "assert" statement\n'
" >>> 'mississippi'.rstrip('ipz')\n"
" 'mississ'\n"
'\n'
- ' See "str.removesuffix()" for a method that will remove '
- 'a single\n'
- ' suffix string rather than all of a set of characters. '
- 'For example:\n'
- '\n'
- " >>> 'Monty Python'.rstrip(' Python')\n"
- " 'M'\n"
- " >>> 'Monty Python'.removesuffix(' Python')\n"
- " 'Monty'\n"
- '\n'
- 'str.split(sep=None, maxsplit=-1)\n'
+ ' See "str.removesuffix()" for a method that will remove '
+ 'a single\n'
+ ' suffix string rather than all of a set of characters. '
+ 'For example:\n'
+ '\n'
+ " >>> 'Monty Python'.rstrip(' Python')\n"
+ " 'M'\n"
+ " >>> 'Monty Python'.removesuffix(' Python')\n"
+ " 'Monty'\n"
+ '\n'
+ 'str.split(sep=None, maxsplit=-1)\n'
'\n'
' Return a list of the words in the string, using *sep* '
'as the\n'
@@ -10912,7 +10912,7 @@ topics = {'assert': 'The "assert" statement\n'
" >>> ' 1 2 3 '.split()\n"
" ['1', '2', '3']\n"
'\n'
- 'str.splitlines(keepends=False)\n'
+ 'str.splitlines(keepends=False)\n'
'\n'
' Return a list of the lines in the string, breaking at '
'line\n'
@@ -10930,7 +10930,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Representation | '
'Description |\n'
' '
- '|=========================|===============================|\n'
+ '|=========================|===============================|\n'
' | "\\n" | Line '
'Feed |\n'
' '
@@ -11092,7 +11092,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> def titlecase(s):\n'
' ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n'
' ... lambda mo: '
- 'mo.group(0).capitalize(),\n'
+ 'mo.group(0).capitalize(),\n'
' ... s)\n'
' ...\n'
' >>> titlecase("they\'re bill\'s friends.")\n'
@@ -11269,7 +11269,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------+-----------------------------------+---------+\n'
'| Escape Sequence | Meaning | Notes '
'|\n'
- '|===================|===================================|=========|\n'
+ '|===================|===================================|=========|\n'
'| "\\newline" | Backslash and newline ignored '
'| |\n'
'+-------------------+-----------------------------------+---------+\n'
@@ -11315,7 +11315,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------+-----------------------------------+---------+\n'
'| Escape Sequence | Meaning | Notes '
'|\n'
- '|===================|===================================|=========|\n'
+ '|===================|===================================|=========|\n'
'| "\\N{name}" | Character named *name* in the | '
'(4) |\n'
'| | Unicode database | '
@@ -11338,20 +11338,20 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'2. Unlike in Standard C, exactly two hex digits are required.\n'
'\n'
- '3. In a bytes literal, hexadecimal and octal escapes denote the '
- 'byte\n'
- ' with the given value. In a string literal, these escapes '
- 'denote a\n'
- ' Unicode character with the given value.\n'
+ '3. In a bytes literal, hexadecimal and octal escapes denote the '
+ 'byte\n'
+ ' with the given value. In a string literal, these escapes '
+ 'denote a\n'
+ ' Unicode character with the given value.\n'
'\n'
'4. Changed in version 3.3: Support for name aliases [1] has been\n'
' added.\n'
'\n'
'5. Exactly four hex digits are required.\n'
'\n'
- '6. Any Unicode character can be encoded this way. Exactly eight '
- 'hex\n'
- ' digits are required.\n'
+ '6. Any Unicode character can be encoded this way. Exactly eight '
+ 'hex\n'
+ ' digits are required.\n'
'\n'
'Unlike Standard C, all unrecognized escape sequences are left in '
'the\n'
@@ -11369,9 +11369,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Changed in version 3.6: Unrecognized escape sequences produce '
'a\n'
- ' "DeprecationWarning". In a future Python version they will be '
- 'a\n'
- ' "SyntaxWarning" and eventually a "SyntaxError".\n'
+ ' "DeprecationWarning". In a future Python version they will be '
+ 'a\n'
+ ' "SyntaxWarning" and eventually a "SyntaxError".\n'
'\n'
'Even in a raw literal, quotes can be escaped with a backslash, '
'but the\n'
@@ -11393,10 +11393,10 @@ topics = {'assert': 'The "assert" statement\n'
'subscriptions': 'Subscriptions\n'
'*************\n'
'\n'
- 'Subscription of a sequence (string, tuple or list) or '
- 'mapping\n'
- '(dictionary) object usually selects an item from the '
- 'collection:\n'
+ 'Subscription of a sequence (string, tuple or list) or '
+ 'mapping\n'
+ '(dictionary) object usually selects an item from the '
+ 'collection:\n'
'\n'
' subscription ::= primary "[" expression_list "]"\n'
'\n'
@@ -11447,13 +11447,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'A string’s items are characters. A character is not a '
'separate data\n'
- 'type but a string of exactly one character.\n'
- '\n'
- 'Subscription of certain *classes* or *types* creates a '
- 'generic alias.\n'
- 'In this case, user-defined classes can support subscription '
- 'by\n'
- 'providing a "__class_getitem__()" classmethod.\n',
+ 'type but a string of exactly one character.\n'
+ '\n'
+ 'Subscription of certain *classes* or *types* creates a '
+ 'generic alias.\n'
+ 'In this case, user-defined classes can support subscription '
+ 'by\n'
+ 'providing a "__class_getitem__()" classmethod.\n',
'truth': 'Truth Value Testing\n'
'*******************\n'
'\n'
@@ -11511,8 +11511,8 @@ topics = {'assert': 'The "assert" statement\n'
'object is “compatible” with the exception. An object is compatible\n'
'with an exception if it is the class or a base class of the '
'exception\n'
- 'object, or a tuple containing an item that is the class or a base\n'
- 'class of the exception object.\n'
+ 'object, or a tuple containing an item that is the class or a base\n'
+ 'class of the exception object.\n'
'\n'
'If no except clause matches the exception, the search for an '
'exception\n'
@@ -11590,9 +11590,9 @@ topics = {'assert': 'The "assert" statement\n'
'clause. If the "finally" clause raises another exception, the saved\n'
'exception is set as the context of the new exception. If the '
'"finally"\n'
- 'clause executes a "return", "break" or "continue" statement, the '
- 'saved\n'
- 'exception is discarded:\n'
+ 'clause executes a "return", "break" or "continue" statement, the '
+ 'saved\n'
+ 'exception is discarded:\n'
'\n'
' >>> def f():\n'
' ... try:\n'
@@ -11608,7 +11608,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'When a "return", "break" or "continue" statement is executed in the\n'
'"try" suite of a "try"…"finally" statement, the "finally" clause is\n'
- 'also executed ‘on the way out.’\n'
+ 'also executed ‘on the way out.’\n'
'\n'
'The return value of a function is determined by the last "return"\n'
'statement executed. Since the "finally" clause always executes, a\n'
@@ -11628,11 +11628,11 @@ topics = {'assert': 'The "assert" statement\n'
'Additional information on exceptions can be found in section\n'
'Exceptions, and information on using the "raise" statement to '
'generate\n'
- 'exceptions may be found in section The raise statement.\n'
- '\n'
- 'Changed in version 3.8: Prior to Python 3.8, a "continue" statement\n'
- 'was illegal in the "finally" clause due to a problem with the\n'
- 'implementation.\n',
+ 'exceptions may be found in section The raise statement.\n'
+ '\n'
+ 'Changed in version 3.8: Prior to Python 3.8, a "continue" statement\n'
+ 'was illegal in the "finally" clause due to a problem with the\n'
+ 'implementation.\n',
'types': 'The standard type hierarchy\n'
'***************************\n'
'\n'
@@ -11672,17 +11672,17 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
' the operands provided. (The interpreter will then try the\n'
' reflected operation, or some other fallback, depending on the\n'
- ' operator.) It should not be evaluated in a boolean context.\n'
+ ' operator.) It should not be evaluated in a boolean context.\n'
'\n'
' See Implementing the arithmetic operations for more details.\n'
'\n'
- ' Changed in version 3.9: Evaluating "NotImplemented" in a '
- 'boolean\n'
- ' context is deprecated. While it currently evaluates as true, it\n'
- ' will emit a "DeprecationWarning". It will raise a "TypeError" in '
- 'a\n'
- ' future version of Python.\n'
- '\n'
+ ' Changed in version 3.9: Evaluating "NotImplemented" in a '
+ 'boolean\n'
+ ' context is deprecated. While it currently evaluates as true, it\n'
+ ' will emit a "DeprecationWarning". It will raise a "TypeError" in '
+ 'a\n'
+ ' future version of Python.\n'
+ '\n'
'Ellipsis\n'
' This type has a single value. There is a single object with '
'this\n'
@@ -11700,27 +11700,27 @@ topics = {'assert': 'The "assert" statement\n'
'representation\n'
' in computers.\n'
'\n'
- ' The string representations of the numeric classes, computed by\n'
- ' "__repr__()" and "__str__()", have the following properties:\n'
- '\n'
- ' * They are valid numeric literals which, when passed to their '
- 'class\n'
- ' constructor, produce an object having the value of the '
- 'original\n'
- ' numeric.\n'
- '\n'
- ' * The representation is in base 10, when possible.\n'
- '\n'
- ' * Leading zeros, possibly excepting a single zero before a '
- 'decimal\n'
- ' point, are not shown.\n'
- '\n'
- ' * Trailing zeros, possibly excepting a single zero after a '
- 'decimal\n'
- ' point, are not shown.\n'
- '\n'
- ' * A sign is shown only when the number is negative.\n'
- '\n'
+ ' The string representations of the numeric classes, computed by\n'
+ ' "__repr__()" and "__str__()", have the following properties:\n'
+ '\n'
+ ' * They are valid numeric literals which, when passed to their '
+ 'class\n'
+ ' constructor, produce an object having the value of the '
+ 'original\n'
+ ' numeric.\n'
+ '\n'
+ ' * The representation is in base 10, when possible.\n'
+ '\n'
+ ' * Leading zeros, possibly excepting a single zero before a '
+ 'decimal\n'
+ ' point, are not shown.\n'
+ '\n'
+ ' * Trailing zeros, possibly excepting a single zero after a '
+ 'decimal\n'
+ ' point, are not shown.\n'
+ '\n'
+ ' * A sign is shown only when the number is negative.\n'
+ '\n'
' Python distinguishes between integers, floating point numbers, '
'and\n'
' complex numbers:\n'
@@ -11829,7 +11829,7 @@ topics = {'assert': 'The "assert" statement\n'
' points. All the code points in the range "U+0000 - '
'U+10FFFF"\n'
' can be represented in a string. Python doesn’t have a '
- '"char"\n'
+ '"char"\n'
' type; instead, every code point in the string is '
'represented\n'
' as a string object with length "1". The built-in '
@@ -11961,16 +11961,16 @@ topics = {'assert': 'The "assert" statement\n'
' then they can be used interchangeably to index the same\n'
' dictionary entry.\n'
'\n'
- ' Dictionaries preserve insertion order, meaning that keys will '
- 'be\n'
- ' produced in the same order they were added sequentially over '
- 'the\n'
- ' dictionary. Replacing an existing key does not change the '
- 'order,\n'
- ' however removing a key and re-inserting it will add it to '
- 'the\n'
- ' end instead of keeping its old place.\n'
- '\n'
+ ' Dictionaries preserve insertion order, meaning that keys will '
+ 'be\n'
+ ' produced in the same order they were added sequentially over '
+ 'the\n'
+ ' dictionary. Replacing an existing key does not change the '
+ 'order,\n'
+ ' however removing a key and re-inserting it will add it to '
+ 'the\n'
+ ' end instead of keeping its old place.\n'
+ '\n'
' Dictionaries are mutable; they can be created by the "{...}"\n'
' notation (see section Dictionary displays).\n'
'\n'
@@ -11979,13 +11979,13 @@ topics = {'assert': 'The "assert" statement\n'
'"collections"\n'
' module.\n'
'\n'
- ' Changed in version 3.7: Dictionaries did not preserve '
- 'insertion\n'
- ' order in versions of Python before 3.6. In CPython 3.6,\n'
- ' insertion order was preserved, but it was considered an\n'
- ' implementation detail at that time rather than a language\n'
- ' guarantee.\n'
- '\n'
+ ' Changed in version 3.7: Dictionaries did not preserve '
+ 'insertion\n'
+ ' order in versions of Python before 3.6. In CPython 3.6,\n'
+ ' insertion order was preserved, but it was considered an\n'
+ ' implementation detail at that time rather than a language\n'
+ ' guarantee.\n'
+ '\n'
'Callable types\n'
' These are the types to which the function call operation (see\n'
' section Calls) can be applied:\n'
@@ -12004,24 +12004,24 @@ topics = {'assert': 'The "assert" statement\n'
' | Attribute | Meaning '
'| |\n'
' '
- '|===========================|=================================|=============|\n'
+ '|===========================|=================================|=============|\n'
' | "__doc__" | The function’s documentation '
'| Writable |\n'
' | | string, or "None" if '
'| |\n'
' | | unavailable; not inherited by '
'| |\n'
- ' | | subclasses. '
+ ' | | subclasses. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
- ' | "__name__" | The function’s name. '
+ ' | "__name__" | The function’s name. '
'| Writable |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
- ' | "__qualname__" | The function’s *qualified '
+ ' | "__qualname__" | The function’s *qualified '
'| Writable |\n'
- ' | | name*. New in version 3.3. '
+ ' | | name*. New in version 3.3. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
@@ -12041,7 +12041,7 @@ topics = {'assert': 'The "assert" statement\n'
'| |\n'
' | | or "None" if no arguments have '
'| |\n'
- ' | | a default value. '
+ ' | | a default value. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
@@ -12122,8 +12122,8 @@ topics = {'assert': 'The "assert" statement\n'
' Additional information about a function’s definition can be\n'
' retrieved from its code object; see the description of '
'internal\n'
- ' types below. The "cell" type can be accessed in the "types"\n'
- ' module.\n'
+ ' types below. The "cell" type can be accessed in the "types"\n'
+ ' module.\n'
'\n'
' Instance methods\n'
' An instance method object combines a class, a class instance '
@@ -12243,14 +12243,14 @@ topics = {'assert': 'The "assert" statement\n'
'for"\n'
' statement to execute the body of the function.\n'
'\n'
- ' Calling the asynchronous iterator’s "aiterator.__anext__" '
- 'method\n'
- ' will return an *awaitable* which when awaited will execute '
- 'until\n'
- ' it provides a value using the "yield" expression. When the\n'
- ' function executes an empty "return" statement or falls off '
+ ' Calling the asynchronous iterator’s "aiterator.__anext__" '
+ 'method\n'
+ ' will return an *awaitable* which when awaited will execute '
+ 'until\n'
+ ' it provides a value using the "yield" expression. When the\n'
+ ' function executes an empty "return" statement or falls off '
'the\n'
- ' end, a "StopAsyncIteration" exception is raised and the\n'
+ ' end, a "StopAsyncIteration" exception is raised and the\n'
' asynchronous iterator will have reached the end of the set '
'of\n'
' values to be yielded.\n'
@@ -12481,37 +12481,37 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Special read-only attributes: "co_name" gives the function '
'name;\n'
- ' "co_argcount" is the total number of positional arguments\n'
- ' (including positional-only arguments and arguments with '
- 'default\n'
- ' values); "co_posonlyargcount" is the number of '
- 'positional-only\n'
- ' arguments (including arguments with default values);\n'
- ' "co_kwonlyargcount" is the number of keyword-only arguments\n'
- ' (including arguments with default values); "co_nlocals" is '
+ ' "co_argcount" is the total number of positional arguments\n'
+ ' (including positional-only arguments and arguments with '
+ 'default\n'
+ ' values); "co_posonlyargcount" is the number of '
+ 'positional-only\n'
+ ' arguments (including arguments with default values);\n'
+ ' "co_kwonlyargcount" is the number of keyword-only arguments\n'
+ ' (including arguments with default values); "co_nlocals" is '
'the\n'
- ' number of local variables used by the function (including\n'
- ' arguments); "co_varnames" is a tuple containing the names of '
- 'the\n'
- ' local variables (starting with the argument names);\n'
- ' "co_cellvars" is a tuple containing the names of local '
- 'variables\n'
- ' that are referenced by nested functions; "co_freevars" is a\n'
- ' tuple containing the names of free variables; "co_code" is a\n'
- ' string representing the sequence of bytecode instructions;\n'
- ' "co_consts" is a tuple containing the literals used by the\n'
- ' bytecode; "co_names" is a tuple containing the names used by '
- 'the\n'
- ' bytecode; "co_filename" is the filename from which the code '
- 'was\n'
- ' compiled; "co_firstlineno" is the first line number of the\n'
- ' function; "co_lnotab" is a string encoding the mapping from\n'
- ' bytecode offsets to line numbers (for details see the source\n'
- ' code of the interpreter); "co_stacksize" is the required '
- 'stack\n'
- ' size; "co_flags" is an integer encoding a number of flags '
- 'for\n'
- ' the interpreter.\n'
+ ' number of local variables used by the function (including\n'
+ ' arguments); "co_varnames" is a tuple containing the names of '
+ 'the\n'
+ ' local variables (starting with the argument names);\n'
+ ' "co_cellvars" is a tuple containing the names of local '
+ 'variables\n'
+ ' that are referenced by nested functions; "co_freevars" is a\n'
+ ' tuple containing the names of free variables; "co_code" is a\n'
+ ' string representing the sequence of bytecode instructions;\n'
+ ' "co_consts" is a tuple containing the literals used by the\n'
+ ' bytecode; "co_names" is a tuple containing the names used by '
+ 'the\n'
+ ' bytecode; "co_filename" is the filename from which the code '
+ 'was\n'
+ ' compiled; "co_firstlineno" is the first line number of the\n'
+ ' function; "co_lnotab" is a string encoding the mapping from\n'
+ ' bytecode offsets to line numbers (for details see the source\n'
+ ' code of the interpreter); "co_stacksize" is the required '
+ 'stack\n'
+ ' size; "co_flags" is an integer encoding a number of flags '
+ 'for\n'
+ ' the interpreter.\n'
'\n'
' The following flag bits are defined for "co_flags": bit '
'"0x04"\n'
@@ -12559,10 +12559,10 @@ topics = {'assert': 'The "assert" statement\n'
' gives the precise instruction (this is an index into the\n'
' bytecode string of the code object).\n'
'\n'
- ' Accessing "f_code" raises an auditing event '
- '"object.__getattr__"\n'
- ' with arguments "obj" and ""f_code"".\n'
- '\n'
+ ' Accessing "f_code" raises an auditing event '
+ '"object.__getattr__"\n'
+ ' with arguments "obj" and ""f_code"".\n'
+ '\n'
' Special writable attributes: "f_trace", if not "None", is a\n'
' function called for various events during code execution '
'(this\n'
@@ -12646,9 +12646,9 @@ topics = {'assert': 'The "assert" statement\n'
' the exception occurred in a "try" statement with no matching\n'
' except clause or with a finally clause.\n'
'\n'
- ' Accessing "tb_frame" raises an auditing event\n'
- ' "object.__getattr__" with arguments "obj" and ""tb_frame"".\n'
- '\n'
+ ' Accessing "tb_frame" raises an auditing event\n'
+ ' "object.__getattr__" with arguments "obj" and ""tb_frame"".\n'
+ '\n'
' Special writable attribute: "tb_next" is the next level in '
'the\n'
' stack trace (towards the frame where the exception occurred), '
@@ -12770,29 +12770,29 @@ topics = {'assert': 'The "assert" statement\n'
'"dict"\n'
'constructor.\n'
'\n'
- 'class dict(**kwargs)\n'
- 'class dict(mapping, **kwargs)\n'
- 'class dict(iterable, **kwargs)\n'
+ 'class dict(**kwargs)\n'
+ 'class dict(mapping, **kwargs)\n'
+ 'class dict(iterable, **kwargs)\n'
'\n'
' Return a new dictionary initialized from an optional '
'positional\n'
' argument and a possibly empty set of keyword arguments.\n'
'\n'
- ' Dictionaries can be created by several means:\n'
- '\n'
- ' * Use a comma-separated list of "key: value" pairs within '
- 'braces:\n'
- ' "{\'jack\': 4098, \'sjoerd\': 4127}" or "{4098: '
- "'jack', 4127:\n"
- ' \'sjoerd\'}"\n'
- '\n'
- ' * Use a dict comprehension: "{}", "{x: x ** 2 for x in '
- 'range(10)}"\n'
- '\n'
- ' * Use the type constructor: "dict()", "dict([(\'foo\', '
- "100), ('bar',\n"
- ' 200)])", "dict(foo=100, bar=200)"\n'
- '\n'
+ ' Dictionaries can be created by several means:\n'
+ '\n'
+ ' * Use a comma-separated list of "key: value" pairs within '
+ 'braces:\n'
+ ' "{\'jack\': 4098, \'sjoerd\': 4127}" or "{4098: '
+ "'jack', 4127:\n"
+ ' \'sjoerd\'}"\n'
+ '\n'
+ ' * Use a dict comprehension: "{}", "{x: x ** 2 for x in '
+ 'range(10)}"\n'
+ '\n'
+ ' * Use the type constructor: "dict()", "dict([(\'foo\', '
+ "100), ('bar',\n"
+ ' 200)])", "dict(foo=100, bar=200)"\n'
+ '\n'
' If no positional argument is given, an empty dictionary '
'is created.\n'
' If a positional argument is given and it is a mapping '
@@ -12830,8 +12830,8 @@ topics = {'assert': 'The "assert" statement\n'
" >>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))\n"
" >>> d = dict([('two', 2), ('one', 1), ('three', 3)])\n"
" >>> e = dict({'three': 3, 'one': 1, 'two': 2})\n"
- " >>> f = dict({'one': 1, 'three': 3}, two=2)\n"
- ' >>> a == b == c == d == e == f\n'
+ " >>> f = dict({'one': 1, 'three': 3}, two=2)\n"
+ ' >>> a == b == c == d == e == f\n'
' True\n'
'\n'
' Providing keyword arguments as in the first example only '
@@ -12844,11 +12844,11 @@ topics = {'assert': 'The "assert" statement\n'
'therefore,\n'
' custom mapping types should support too):\n'
'\n'
- ' list(d)\n'
- '\n'
- ' Return a list of all the keys used in the dictionary '
- '*d*.\n'
- '\n'
+ ' list(d)\n'
+ '\n'
+ ' Return a list of all the keys used in the dictionary '
+ '*d*.\n'
+ '\n'
' len(d)\n'
'\n'
' Return the number of items in the dictionary *d*.\n'
@@ -12929,13 +12929,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' "fromkeys()" is a class method that returns a new '
'dictionary.\n'
- ' *value* defaults to "None". All of the values refer '
- 'to just a\n'
- ' single instance, so it generally doesn’t make sense '
- 'for *value*\n'
- ' to be a mutable object such as an empty list. To get '
- 'distinct\n'
- ' values, use a dict comprehension instead.\n'
+ ' *value* defaults to "None". All of the values refer '
+ 'to just a\n'
+ ' single instance, so it generally doesn’t make sense '
+ 'for *value*\n'
+ ' to be a mutable object such as an empty list. To get '
+ 'distinct\n'
+ ' values, use a dict comprehension instead.\n'
'\n'
' get(key[, default])\n'
'\n'
@@ -12981,14 +12981,14 @@ topics = {'assert': 'The "assert" statement\n'
' versions, "popitem()" would return an arbitrary '
'key/value pair.\n'
'\n'
- ' reversed(d)\n'
- '\n'
- ' Return a reverse iterator over the keys of the '
- 'dictionary. This\n'
- ' is a shortcut for "reversed(d.keys())".\n'
- '\n'
- ' New in version 3.8.\n'
- '\n'
+ ' reversed(d)\n'
+ '\n'
+ ' Return a reverse iterator over the keys of the '
+ 'dictionary. This\n'
+ ' is a shortcut for "reversed(d.keys())".\n'
+ '\n'
+ ' New in version 3.8.\n'
+ '\n'
' setdefault(key[, default])\n'
'\n'
' If *key* is in the dictionary, return its value. If '
@@ -13019,44 +13019,44 @@ topics = {'assert': 'The "assert" statement\n'
'the\n'
' documentation of view objects.\n'
'\n'
- ' An equality comparison between one "dict.values()" '
- 'view and\n'
- ' another will always return "False". This also applies '
- 'when\n'
- ' comparing "dict.values()" to itself:\n'
- '\n'
- " >>> d = {'a': 1}\n"
- ' >>> d.values() == d.values()\n'
- ' False\n'
- '\n'
- ' d | other\n'
- '\n'
- ' Create a new dictionary with the merged keys and '
- 'values of *d*\n'
- ' and *other*, which must both be dictionaries. The '
- 'values of\n'
- ' *other* take priority when *d* and *other* share '
- 'keys.\n'
- '\n'
- ' New in version 3.9.\n'
- '\n'
- ' d |= other\n'
- '\n'
- ' Update the dictionary *d* with keys and values from '
- '*other*,\n'
- ' which may be either a *mapping* or an *iterable* of '
- 'key/value\n'
- ' pairs. The values of *other* take priority when *d* '
- 'and *other*\n'
- ' share keys.\n'
- '\n'
- ' New in version 3.9.\n'
- '\n'
+ ' An equality comparison between one "dict.values()" '
+ 'view and\n'
+ ' another will always return "False". This also applies '
+ 'when\n'
+ ' comparing "dict.values()" to itself:\n'
+ '\n'
+ " >>> d = {'a': 1}\n"
+ ' >>> d.values() == d.values()\n'
+ ' False\n'
+ '\n'
+ ' d | other\n'
+ '\n'
+ ' Create a new dictionary with the merged keys and '
+ 'values of *d*\n'
+ ' and *other*, which must both be dictionaries. The '
+ 'values of\n'
+ ' *other* take priority when *d* and *other* share '
+ 'keys.\n'
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
+ ' d |= other\n'
+ '\n'
+ ' Update the dictionary *d* with keys and values from '
+ '*other*,\n'
+ ' which may be either a *mapping* or an *iterable* of '
+ 'key/value\n'
+ ' pairs. The values of *other* take priority when *d* '
+ 'and *other*\n'
+ ' share keys.\n'
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
' Dictionaries compare equal if and only if they have the '
'same "(key,\n'
- ' value)" pairs (regardless of ordering). Order comparisons '
- '(‘<’,\n'
- ' ‘<=’, ‘>=’, ‘>’) raise "TypeError".\n'
+ ' value)" pairs (regardless of ordering). Order comparisons '
+ '(‘<’,\n'
+ ' ‘<=’, ‘>=’, ‘>’) raise "TypeError".\n'
'\n'
' Dictionaries preserve insertion order. Note that '
'updating a key\n'
@@ -13085,27 +13085,27 @@ topics = {'assert': 'The "assert" statement\n'
'detail of\n'
' CPython from 3.6.\n'
'\n'
- ' Dictionaries and dictionary views are reversible.\n'
- '\n'
- ' >>> d = {"one": 1, "two": 2, "three": 3, "four": 4}\n'
- ' >>> d\n'
- " {'one': 1, 'two': 2, 'three': 3, 'four': 4}\n"
- ' >>> list(reversed(d))\n'
- " ['four', 'three', 'two', 'one']\n"
- ' >>> list(reversed(d.values()))\n'
- ' [4, 3, 2, 1]\n'
- ' >>> list(reversed(d.items()))\n'
- " [('four', 4), ('three', 3), ('two', 2), ('one', 1)]\n"
- '\n'
- ' Changed in version 3.8: Dictionaries are now reversible.\n'
- '\n'
- 'See also:\n'
- '\n'
- ' "types.MappingProxyType" can be used to create a read-only '
- 'view of a\n'
- ' "dict".\n'
- '\n'
- '\n'
+ ' Dictionaries and dictionary views are reversible.\n'
+ '\n'
+ ' >>> d = {"one": 1, "two": 2, "three": 3, "four": 4}\n'
+ ' >>> d\n'
+ " {'one': 1, 'two': 2, 'three': 3, 'four': 4}\n"
+ ' >>> list(reversed(d))\n'
+ " ['four', 'three', 'two', 'one']\n"
+ ' >>> list(reversed(d.values()))\n'
+ ' [4, 3, 2, 1]\n'
+ ' >>> list(reversed(d.items()))\n'
+ " [('four', 4), ('three', 3), ('two', 2), ('one', 1)]\n"
+ '\n'
+ ' Changed in version 3.8: Dictionaries are now reversible.\n'
+ '\n'
+ 'See also:\n'
+ '\n'
+ ' "types.MappingProxyType" can be used to create a read-only '
+ 'view of a\n'
+ ' "dict".\n'
+ '\n'
+ '\n'
'Dictionary view objects\n'
'=======================\n'
'\n'
@@ -13155,17 +13155,17 @@ topics = {'assert': 'The "assert" statement\n'
'value)"\n'
' tuple).\n'
'\n'
- 'reversed(dictview)\n'
- '\n'
- ' Return a reverse iterator over the keys, values or items '
- 'of the\n'
- ' dictionary. The view will be iterated in reverse order of '
- 'the\n'
- ' insertion.\n'
- '\n'
- ' Changed in version 3.8: Dictionary views are now '
- 'reversible.\n'
- '\n'
+ 'reversed(dictview)\n'
+ '\n'
+ ' Return a reverse iterator over the keys, values or items '
+ 'of the\n'
+ ' dictionary. The view will be iterated in reverse order of '
+ 'the\n'
+ ' insertion.\n'
+ '\n'
+ ' Changed in version 3.8: Dictionary views are now '
+ 'reversible.\n'
+ '\n'
'Keys views are set-like since their entries are unique and '
'hashable.\n'
'If all values are hashable, so that "(key, value)" pairs are '
@@ -13344,7 +13344,7 @@ topics = {'assert': 'The "assert" statement\n'
'+----------------------------+----------------------------------+------------+\n'
'| Operation | Result '
'| Notes |\n'
- '|============================|==================================|============|\n'
+ '|============================|==================================|============|\n'
'| "x in s" | "True" if an item of *s* is '
'| (1) |\n'
'| | equal to *x*, else "False" '
@@ -13487,14 +13487,14 @@ topics = {'assert': 'The "assert" statement\n'
'"None", it\n'
' is treated like "1".\n'
'\n'
- '6. Concatenating immutable sequences always results in a new '
- 'object.\n'
- ' This means that building up a sequence by repeated '
- 'concatenation\n'
- ' will have a quadratic runtime cost in the total sequence '
- 'length.\n'
- ' To get a linear runtime cost, you must switch to one of the\n'
- ' alternatives below:\n'
+ '6. Concatenating immutable sequences always results in a new '
+ 'object.\n'
+ ' This means that building up a sequence by repeated '
+ 'concatenation\n'
+ ' will have a quadratic runtime cost in the total sequence '
+ 'length.\n'
+ ' To get a linear runtime cost, you must switch to one of the\n'
+ ' alternatives below:\n'
'\n'
' * if concatenating "str" objects, you can build a list and '
'use\n'
@@ -13512,27 +13512,27 @@ topics = {'assert': 'The "assert" statement\n'
' * for other types, investigate the relevant class '
'documentation\n'
'\n'
- '7. Some sequence types (such as "range") only support item '
- 'sequences\n'
- ' that follow specific patterns, and hence don’t support '
+ '7. Some sequence types (such as "range") only support item '
+ 'sequences\n'
+ ' that follow specific patterns, and hence don’t support '
'sequence\n'
- ' concatenation or repetition.\n'
- '\n'
- '8. "index" raises "ValueError" when *x* is not found in *s*. Not '
- 'all\n'
- ' implementations support passing the additional arguments *i* '
- 'and\n'
- ' *j*. These arguments allow efficient searching of subsections '
- 'of\n'
- ' the sequence. Passing the extra arguments is roughly '
- 'equivalent to\n'
- ' using "s[i:j].index(x)", only without copying any data and '
- 'with the\n'
- ' returned index being relative to the start of the sequence '
- 'rather\n'
- ' than the start of the slice.\n'
- '\n'
- '\n'
+ ' concatenation or repetition.\n'
+ '\n'
+ '8. "index" raises "ValueError" when *x* is not found in *s*. Not '
+ 'all\n'
+ ' implementations support passing the additional arguments *i* '
+ 'and\n'
+ ' *j*. These arguments allow efficient searching of subsections '
+ 'of\n'
+ ' the sequence. Passing the extra arguments is roughly '
+ 'equivalent to\n'
+ ' using "s[i:j].index(x)", only without copying any data and '
+ 'with the\n'
+ ' returned index being relative to the start of the sequence '
+ 'rather\n'
+ ' than the start of the slice.\n'
+ '\n'
+ '\n'
'Immutable Sequence Types\n'
'========================\n'
'\n'
@@ -13575,7 +13575,7 @@ topics = {'assert': 'The "assert" statement\n'
'+--------------------------------+----------------------------------+-----------------------+\n'
'| Operation | '
'Result | Notes |\n'
- '|================================|==================================|=======================|\n'
+ '|================================|==================================|=======================|\n'
'| "s[i] = x" | item *i* of *s* is replaced '
'by | |\n'
'| | '
@@ -13637,7 +13637,7 @@ topics = {'assert': 'The "assert" statement\n'
'| | "s[i:i] = '
'[x]") | |\n'
'+--------------------------------+----------------------------------+-----------------------+\n'
- '| "s.pop()" or "s.pop(i)" | retrieves the item at *i* '
+ '| "s.pop()" or "s.pop(i)" | retrieves the item at *i* '
'and | (2) |\n'
'| | also removes it from '
'*s* | |\n'
@@ -13658,25 +13658,25 @@ topics = {'assert': 'The "assert" statement\n'
'1. *t* must have the same length as the slice it is replacing.\n'
'\n'
'2. The optional argument *i* defaults to "-1", so that by '
- 'default the\n'
- ' last item is removed and returned.\n'
+ 'default the\n'
+ ' last item is removed and returned.\n'
'\n'
- '3. "remove()" raises "ValueError" when *x* is not found in *s*.\n'
+ '3. "remove()" raises "ValueError" when *x* is not found in *s*.\n'
'\n'
- '4. The "reverse()" method modifies the sequence in place for '
- 'economy\n'
- ' of space when reversing a large sequence. To remind users '
- 'that it\n'
- ' operates by side effect, it does not return the reversed '
- 'sequence.\n'
+ '4. The "reverse()" method modifies the sequence in place for '
+ 'economy\n'
+ ' of space when reversing a large sequence. To remind users '
+ 'that it\n'
+ ' operates by side effect, it does not return the reversed '
+ 'sequence.\n'
'\n'
'5. "clear()" and "copy()" are included for consistency with the\n'
' interfaces of mutable containers that don’t support slicing\n'
- ' operations (such as "dict" and "set"). "copy()" is not part '
- 'of the\n'
- ' "collections.abc.MutableSequence" ABC, but most concrete '
- 'mutable\n'
- ' sequence classes provide it.\n'
+ ' operations (such as "dict" and "set"). "copy()" is not part '
+ 'of the\n'
+ ' "collections.abc.MutableSequence" ABC, but most concrete '
+ 'mutable\n'
+ ' sequence classes provide it.\n'
'\n'
' New in version 3.3: "clear()" and "copy()" methods.\n'
'\n'
@@ -13705,9 +13705,9 @@ topics = {'assert': 'The "assert" statement\n'
' * Using a pair of square brackets to denote the empty list: '
'"[]"\n'
'\n'
- ' * Using square brackets, separating items with commas: "[a]", '
- '"[a,\n'
- ' b, c]"\n'
+ ' * Using square brackets, separating items with commas: "[a]", '
+ '"[a,\n'
+ ' b, c]"\n'
'\n'
' * Using a list comprehension: "[x for x in iterable]"\n'
'\n'
@@ -13788,10 +13788,10 @@ topics = {'assert': 'The "assert" statement\n'
'salary\n'
' grade).\n'
'\n'
- ' For sorting examples and a brief sorting tutorial, see '
- 'Sorting\n'
- ' HOW TO.\n'
- '\n'
+ ' For sorting examples and a brief sorting tutorial, see '
+ 'Sorting\n'
+ ' HOW TO.\n'
+ '\n'
' **CPython implementation detail:** While a list is being '
'sorted,\n'
' the effect of attempting to mutate, or even inspect, the '
@@ -13877,8 +13877,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' The arguments to the range constructor must be integers '
'(either\n'
- ' built-in "int" or any object that implements the '
- '"__index__()"\n'
+ ' built-in "int" or any object that implements the '
+ '"__index__()"\n'
' special method). If the *step* argument is omitted, it '
'defaults to\n'
' "1". If the *start* argument is omitted, it defaults to "0". '
@@ -14011,9 +14011,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'See also:\n'
'\n'
- ' * The linspace recipe shows how to implement a lazy version of '
- 'range\n'
- ' suitable for floating point applications.\n',
+ ' * The linspace recipe shows how to implement a lazy version of '
+ 'range\n'
+ ' suitable for floating point applications.\n',
'typesseq-mutable': 'Mutable Sequence Types\n'
'**********************\n'
'\n'
@@ -14038,7 +14038,7 @@ topics = {'assert': 'The "assert" statement\n'
'| Operation | '
'Result | Notes '
'|\n'
- '|================================|==================================|=======================|\n'
+ '|================================|==================================|=======================|\n'
'| "s[i] = x" | item *i* of *s* is '
'replaced by | |\n'
'| | '
@@ -14101,7 +14101,7 @@ topics = {'assert': 'The "assert" statement\n'
'| | "s[i:i] = '
'[x]") | |\n'
'+--------------------------------+----------------------------------+-----------------------+\n'
- '| "s.pop()" or "s.pop(i)" | retrieves the item at '
+ '| "s.pop()" or "s.pop(i)" | retrieves the item at '
'*i* and | (2) |\n'
'| | also removes it from '
'*s* | |\n'
@@ -14124,28 +14124,28 @@ topics = {'assert': 'The "assert" statement\n'
'replacing.\n'
'\n'
'2. The optional argument *i* defaults to "-1", so that '
- 'by default the\n'
- ' last item is removed and returned.\n'
+ 'by default the\n'
+ ' last item is removed and returned.\n'
'\n'
- '3. "remove()" raises "ValueError" when *x* is not found '
- 'in *s*.\n'
+ '3. "remove()" raises "ValueError" when *x* is not found '
+ 'in *s*.\n'
'\n'
'4. The "reverse()" method modifies the sequence in place '
- 'for economy\n'
- ' of space when reversing a large sequence. To remind '
- 'users that it\n'
- ' operates by side effect, it does not return the '
- 'reversed sequence.\n'
+ 'for economy\n'
+ ' of space when reversing a large sequence. To remind '
+ 'users that it\n'
+ ' operates by side effect, it does not return the '
+ 'reversed sequence.\n'
'\n'
'5. "clear()" and "copy()" are included for consistency '
'with the\n'
' interfaces of mutable containers that don’t support '
'slicing\n'
- ' operations (such as "dict" and "set"). "copy()" is '
- 'not part of the\n'
- ' "collections.abc.MutableSequence" ABC, but most '
- 'concrete mutable\n'
- ' sequence classes provide it.\n'
+ ' operations (such as "dict" and "set"). "copy()" is '
+ 'not part of the\n'
+ ' "collections.abc.MutableSequence" ABC, but most '
+ 'concrete mutable\n'
+ ' sequence classes provide it.\n'
'\n'
' New in version 3.3: "clear()" and "copy()" methods.\n'
'\n'
@@ -14166,21 +14166,21 @@ topics = {'assert': 'The "assert" statement\n'
' u_expr ::= power | "-" u_expr | "+" u_expr | "~" u_expr\n'
'\n'
'The unary "-" (minus) operator yields the negation of its numeric\n'
- 'argument; the operation can be overridden with the "__neg__()" '
- 'special\n'
- 'method.\n'
+ 'argument; the operation can be overridden with the "__neg__()" '
+ 'special\n'
+ 'method.\n'
'\n'
'The unary "+" (plus) operator yields its numeric argument '
- 'unchanged;\n'
- 'the operation can be overridden with the "__pos__()" special '
- 'method.\n'
+ 'unchanged;\n'
+ 'the operation can be overridden with the "__pos__()" special '
+ 'method.\n'
'\n'
'The unary "~" (invert) operator yields the bitwise inversion of '
'its\n'
'integer argument. The bitwise inversion of "x" is defined as\n'
- '"-(x+1)". It only applies to integral numbers or to custom '
- 'objects\n'
- 'that override the "__invert__()" special method.\n'
+ '"-(x+1)". It only applies to integral numbers or to custom '
+ 'objects\n'
+ 'that override the "__invert__()" special method.\n'
'\n'
'In all three cases, if the argument does not have the proper type, '
'a\n'
@@ -14191,7 +14191,7 @@ topics = {'assert': 'The "assert" statement\n'
'The "while" statement is used for repeated execution as long as an\n'
'expression is true:\n'
'\n'
- ' while_stmt ::= "while" assignment_expression ":" suite\n'
+ ' while_stmt ::= "while" assignment_expression ":" suite\n'
' ["else" ":" suite]\n'
'\n'
'This repeatedly tests the expression and, if it is true, executes '
@@ -14224,32 +14224,32 @@ topics = {'assert': 'The "assert" statement\n'
'The execution of the "with" statement with one “item” proceeds as\n'
'follows:\n'
'\n'
- '1. The context expression (the expression given in the "with_item") '
- 'is\n'
- ' evaluated to obtain a context manager.\n'
+ '1. The context expression (the expression given in the "with_item") '
+ 'is\n'
+ ' evaluated to obtain a context manager.\n'
+ '\n'
+ '2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
- '2. The context manager’s "__enter__()" is loaded for later use.\n'
+ '3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
- '3. The context manager’s "__exit__()" is loaded for later use.\n'
+ '4. The context manager’s "__enter__()" method is invoked.\n'
'\n'
- '4. The context manager’s "__enter__()" method is invoked.\n'
- '\n'
- '5. If a target was included in the "with" statement, the return '
- 'value\n'
- ' from "__enter__()" is assigned to it.\n'
+ '5. If a target was included in the "with" statement, the return '
+ 'value\n'
+ ' from "__enter__()" is assigned to it.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The "with" statement guarantees that if the "__enter__()" '
- 'method\n'
- ' returns without an error, then "__exit__()" will always be\n'
+ ' Note:\n'
+ '\n'
+ ' The "with" statement guarantees that if the "__enter__()" '
+ 'method\n'
+ ' returns without an error, then "__exit__()" will always be\n'
' called. Thus, if an error occurs during the assignment to the\n'
' target list, it will be treated the same as an error occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
- '6. The suite is executed.\n'
+ '6. The suite is executed.\n'
'\n'
- '7. The context manager’s "__exit__()" method is invoked. If an\n'
+ '7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
'three\n'
@@ -14269,41 +14269,41 @@ topics = {'assert': 'The "assert" statement\n'
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
- 'The following code:\n'
- '\n'
- ' with EXPRESSION as TARGET:\n'
- ' SUITE\n'
- '\n'
- 'is semantically equivalent to:\n'
- '\n'
- ' manager = (EXPRESSION)\n'
- ' enter = type(manager).__enter__\n'
- ' exit = type(manager).__exit__\n'
- ' value = enter(manager)\n'
- ' hit_except = False\n'
- '\n'
- ' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
- ' except:\n'
- ' hit_except = True\n'
- ' if not exit(manager, *sys.exc_info()):\n'
- ' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' exit(manager, None, None, None)\n'
- '\n'
+ 'The following code:\n'
+ '\n'
+ ' with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
+ '\n'
+ 'is semantically equivalent to:\n'
+ '\n'
+ ' manager = (EXPRESSION)\n'
+ ' enter = type(manager).__enter__\n'
+ ' exit = type(manager).__exit__\n'
+ ' value = enter(manager)\n'
+ ' hit_except = False\n'
+ '\n'
+ ' try:\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
+ ' except:\n'
+ ' hit_except = True\n'
+ ' if not exit(manager, *sys.exc_info()):\n'
+ ' raise\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' exit(manager, None, None, None)\n'
+ '\n'
'With more than one item, the context managers are processed as if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context expressions.\n'
'\n'
diff --git a/contrib/tools/python3/src/Lib/queue.py b/contrib/tools/python3/src/Lib/queue.py
index bbd5db5aa2..10dbcbc18e 100644
--- a/contrib/tools/python3/src/Lib/queue.py
+++ b/contrib/tools/python3/src/Lib/queue.py
@@ -1,7 +1,7 @@
'''A multi-producer, multi-consumer queue.'''
import threading
-import types
+import types
from collections import deque
from heapq import heappush, heappop
from time import monotonic as time
@@ -15,7 +15,7 @@ __all__ = ['Empty', 'Full', 'Queue', 'PriorityQueue', 'LifoQueue', 'SimpleQueue'
try:
from _queue import Empty
-except ImportError:
+except ImportError:
class Empty(Exception):
'Exception raised by Queue.get(block=0)/get_nowait().'
pass
@@ -217,9 +217,9 @@ class Queue:
def _get(self):
return self.queue.popleft()
- __class_getitem__ = classmethod(types.GenericAlias)
+ __class_getitem__ = classmethod(types.GenericAlias)
+
-
class PriorityQueue(Queue):
'''Variant of Queue that retrieves open entries in priority order (lowest first).
@@ -319,8 +319,8 @@ class _PySimpleQueue:
'''Return the approximate size of the queue (not reliable!).'''
return len(self._queue)
- __class_getitem__ = classmethod(types.GenericAlias)
+ __class_getitem__ = classmethod(types.GenericAlias)
+
-
if SimpleQueue is None:
SimpleQueue = _PySimpleQueue
diff --git a/contrib/tools/python3/src/Lib/quopri.py b/contrib/tools/python3/src/Lib/quopri.py
index 8a5cd2fd97..08899c5cb7 100644
--- a/contrib/tools/python3/src/Lib/quopri.py
+++ b/contrib/tools/python3/src/Lib/quopri.py
@@ -204,11 +204,11 @@ def main():
print("-t: quote tabs")
print("-d: decode; default encode")
sys.exit(2)
- deco = False
- tabs = False
+ deco = False
+ tabs = False
for o, a in opts:
- if o == '-t': tabs = True
- if o == '-d': deco = True
+ if o == '-t': tabs = True
+ if o == '-d': deco = True
if tabs and deco:
sys.stdout = sys.stderr
print("-t and -d are mutually exclusive")
diff --git a/contrib/tools/python3/src/Lib/random.py b/contrib/tools/python3/src/Lib/random.py
index 8fd6439aa8..1d4b5eb36f 100644
--- a/contrib/tools/python3/src/Lib/random.py
+++ b/contrib/tools/python3/src/Lib/random.py
@@ -1,9 +1,9 @@
"""Random variable generators.
- bytes
- -----
- uniform bytes (values between 0 and 255)
-
+ bytes
+ -----
+ uniform bytes (values between 0 and 255)
+
integers
--------
uniform within range
@@ -41,61 +41,61 @@ General notes on the underlying Mersenne Twister core generator:
"""
-# Translated by Guido van Rossum from C source provided by
-# Adrian Baddeley. Adapted by Raymond Hettinger for use with
-# the Mersenne Twister and os.urandom() core generators.
-
+# Translated by Guido van Rossum from C source provided by
+# Adrian Baddeley. Adapted by Raymond Hettinger for use with
+# the Mersenne Twister and os.urandom() core generators.
+
from warnings import warn as _warn
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin
-from math import tau as TWOPI, floor as _floor
+from math import tau as TWOPI, floor as _floor
from os import urandom as _urandom
from _collections_abc import Set as _Set, Sequence as _Sequence
-from itertools import accumulate as _accumulate, repeat as _repeat
-from bisect import bisect as _bisect
+from itertools import accumulate as _accumulate, repeat as _repeat
+from bisect import bisect as _bisect
import os as _os
-import _random
-
-try:
- # hashlib is pretty heavy to load, try lean internal module first
- from _sha512 import sha512 as _sha512
-except ImportError:
- # fallback to official implementation
- from hashlib import sha512 as _sha512
-
-__all__ = [
- "Random",
- "SystemRandom",
- "betavariate",
- "choice",
- "choices",
- "expovariate",
- "gammavariate",
- "gauss",
- "getrandbits",
- "getstate",
- "lognormvariate",
- "normalvariate",
- "paretovariate",
- "randbytes",
- "randint",
- "random",
- "randrange",
- "sample",
- "seed",
- "setstate",
- "shuffle",
- "triangular",
- "uniform",
- "vonmisesvariate",
- "weibullvariate",
-]
-
-NV_MAGICCONST = 4 * _exp(-0.5) / _sqrt(2.0)
+import _random
+
+try:
+ # hashlib is pretty heavy to load, try lean internal module first
+ from _sha512 import sha512 as _sha512
+except ImportError:
+ # fallback to official implementation
+ from hashlib import sha512 as _sha512
+
+__all__ = [
+ "Random",
+ "SystemRandom",
+ "betavariate",
+ "choice",
+ "choices",
+ "expovariate",
+ "gammavariate",
+ "gauss",
+ "getrandbits",
+ "getstate",
+ "lognormvariate",
+ "normalvariate",
+ "paretovariate",
+ "randbytes",
+ "randint",
+ "random",
+ "randrange",
+ "sample",
+ "seed",
+ "setstate",
+ "shuffle",
+ "triangular",
+ "uniform",
+ "vonmisesvariate",
+ "weibullvariate",
+]
+
+NV_MAGICCONST = 4 * _exp(-0.5) / _sqrt(2.0)
LOG4 = _log(4.0)
SG_MAGICCONST = 1.0 + _log(4.5)
BPF = 53 # Number of bits in a float
-RECIP_BPF = 2 ** -BPF
+RECIP_BPF = 2 ** -BPF
class Random(_random.Random):
@@ -123,12 +123,12 @@ class Random(_random.Random):
self.seed(x)
self.gauss_next = None
- def seed(self, a=None, version=2):
- """Initialize internal state from a seed.
-
- The only supported seed types are None, int, float,
- str, bytes, and bytearray.
-
+ def seed(self, a=None, version=2):
+ """Initialize internal state from a seed.
+
+ The only supported seed types are None, int, float,
+ str, bytes, and bytearray.
+
None or no argument seeds from current time or from an operating
system specific randomness source if available.
@@ -149,19 +149,19 @@ class Random(_random.Random):
x ^= len(a)
a = -2 if x == -1 else x
- elif version == 2 and isinstance(a, (str, bytes, bytearray)):
+ elif version == 2 and isinstance(a, (str, bytes, bytearray)):
if isinstance(a, str):
a = a.encode()
- a = int.from_bytes(a + _sha512(a).digest(), 'big')
-
- elif not isinstance(a, (type(None), int, float, str, bytes, bytearray)):
- _warn('Seeding based on hashing is deprecated\n'
- 'since Python 3.9 and will be removed in a subsequent '
- 'version. The only \n'
- 'supported seed types are: None, '
- 'int, float, str, bytes, and bytearray.',
- DeprecationWarning, 2)
-
+ a = int.from_bytes(a + _sha512(a).digest(), 'big')
+
+ elif not isinstance(a, (type(None), int, float, str, bytes, bytearray)):
+ _warn('Seeding based on hashing is deprecated\n'
+ 'since Python 3.9 and will be removed in a subsequent '
+ 'version. The only \n'
+ 'supported seed types are: None, '
+ 'int, float, str, bytes, and bytearray.',
+ DeprecationWarning, 2)
+
super().seed(a)
self.gauss_next = None
@@ -182,7 +182,7 @@ class Random(_random.Random):
# really unsigned 32-bit ints, so we convert negative ints from
# version 2 to positive longs for version 3.
try:
- internalstate = tuple(x % (2 ** 32) for x in internalstate)
+ internalstate = tuple(x % (2 ** 32) for x in internalstate)
except ValueError as e:
raise TypeError from e
super().setstate(internalstate)
@@ -192,17 +192,17 @@ class Random(_random.Random):
(version, self.VERSION))
- ## -------------------------------------------------------
- ## ---- Methods below this point do not need to be overridden or extended
- ## ---- when subclassing for the purpose of using a different core generator.
+ ## -------------------------------------------------------
+ ## ---- Methods below this point do not need to be overridden or extended
+ ## ---- when subclassing for the purpose of using a different core generator.
+
+
+ ## -------------------- pickle support -------------------
-
- ## -------------------- pickle support -------------------
-
# Issue 17489: Since __reduce__ was defined to fix #759889 this is no
# longer called; we leave it here because it has been here since random was
# rewritten back in 2001 and why risk breaking something.
- def __getstate__(self): # for pickle
+ def __getstate__(self): # for pickle
return self.getstate()
def __setstate__(self, state): # for pickle
@@ -212,82 +212,82 @@ class Random(_random.Random):
return self.__class__, (), self.getstate()
- ## ---- internal support method for evenly distributed integers ----
-
- def __init_subclass__(cls, /, **kwargs):
- """Control how subclasses generate random integers.
-
- The algorithm a subclass can use depends on the random() and/or
- getrandbits() implementation available to it and determines
- whether it can generate random integers from arbitrarily large
- ranges.
- """
-
- for c in cls.__mro__:
- if '_randbelow' in c.__dict__:
- # just inherit it
- break
- if 'getrandbits' in c.__dict__:
- cls._randbelow = cls._randbelow_with_getrandbits
- break
- if 'random' in c.__dict__:
- cls._randbelow = cls._randbelow_without_getrandbits
- break
-
- def _randbelow_with_getrandbits(self, n):
- "Return a random int in the range [0,n). Returns 0 if n==0."
-
- if not n:
- return 0
- getrandbits = self.getrandbits
- k = n.bit_length() # don't use (n-1) here because n can be 1
- r = getrandbits(k) # 0 <= r < 2**k
- while r >= n:
- r = getrandbits(k)
- return r
-
- def _randbelow_without_getrandbits(self, n, maxsize=1<<BPF):
- """Return a random int in the range [0,n). Returns 0 if n==0.
-
- The implementation does not use getrandbits, but only random.
- """
-
- random = self.random
- if n >= maxsize:
- _warn("Underlying random() generator does not supply \n"
- "enough bits to choose from a population range this large.\n"
- "To remove the range limitation, add a getrandbits() method.")
- return _floor(random() * n)
- if n == 0:
- return 0
- rem = maxsize % n
- limit = (maxsize - rem) / maxsize # int(limit * maxsize) % n == 0
- r = random()
- while r >= limit:
- r = random()
- return _floor(r * maxsize) % n
-
- _randbelow = _randbelow_with_getrandbits
-
-
- ## --------------------------------------------------------
- ## ---- Methods below this point generate custom distributions
- ## ---- based on the methods defined above. They do not
- ## ---- directly touch the underlying generator and only
- ## ---- access randomness through the methods: random(),
- ## ---- getrandbits(), or _randbelow().
-
-
- ## -------------------- bytes methods ---------------------
-
- def randbytes(self, n):
- """Generate n random bytes."""
- return self.getrandbits(n * 8).to_bytes(n, 'little')
-
-
- ## -------------------- integer methods -------------------
-
- def randrange(self, start, stop=None, step=1):
+ ## ---- internal support method for evenly distributed integers ----
+
+ def __init_subclass__(cls, /, **kwargs):
+ """Control how subclasses generate random integers.
+
+ The algorithm a subclass can use depends on the random() and/or
+ getrandbits() implementation available to it and determines
+ whether it can generate random integers from arbitrarily large
+ ranges.
+ """
+
+ for c in cls.__mro__:
+ if '_randbelow' in c.__dict__:
+ # just inherit it
+ break
+ if 'getrandbits' in c.__dict__:
+ cls._randbelow = cls._randbelow_with_getrandbits
+ break
+ if 'random' in c.__dict__:
+ cls._randbelow = cls._randbelow_without_getrandbits
+ break
+
+ def _randbelow_with_getrandbits(self, n):
+ "Return a random int in the range [0,n). Returns 0 if n==0."
+
+ if not n:
+ return 0
+ getrandbits = self.getrandbits
+ k = n.bit_length() # don't use (n-1) here because n can be 1
+ r = getrandbits(k) # 0 <= r < 2**k
+ while r >= n:
+ r = getrandbits(k)
+ return r
+
+ def _randbelow_without_getrandbits(self, n, maxsize=1<<BPF):
+ """Return a random int in the range [0,n). Returns 0 if n==0.
+
+ The implementation does not use getrandbits, but only random.
+ """
+
+ random = self.random
+ if n >= maxsize:
+ _warn("Underlying random() generator does not supply \n"
+ "enough bits to choose from a population range this large.\n"
+ "To remove the range limitation, add a getrandbits() method.")
+ return _floor(random() * n)
+ if n == 0:
+ return 0
+ rem = maxsize % n
+ limit = (maxsize - rem) / maxsize # int(limit * maxsize) % n == 0
+ r = random()
+ while r >= limit:
+ r = random()
+ return _floor(r * maxsize) % n
+
+ _randbelow = _randbelow_with_getrandbits
+
+
+ ## --------------------------------------------------------
+ ## ---- Methods below this point generate custom distributions
+ ## ---- based on the methods defined above. They do not
+ ## ---- directly touch the underlying generator and only
+ ## ---- access randomness through the methods: random(),
+ ## ---- getrandbits(), or _randbelow().
+
+
+ ## -------------------- bytes methods ---------------------
+
+ def randbytes(self, n):
+ """Generate n random bytes."""
+ return self.getrandbits(n * 8).to_bytes(n, 'little')
+
+
+ ## -------------------- integer methods -------------------
+
+ def randrange(self, start, stop=None, step=1):
"""Choose a random item from range(start, stop[, step]).
This fixes the problem with randint() which includes the
@@ -297,7 +297,7 @@ class Random(_random.Random):
# This code is a bit messy to make it fast for the
# common case while still doing adequate error checking.
- istart = int(start)
+ istart = int(start)
if istart != start:
raise ValueError("non-integer arg 1 for randrange()")
if stop is None:
@@ -306,17 +306,17 @@ class Random(_random.Random):
raise ValueError("empty range for randrange()")
# stop argument supplied.
- istop = int(stop)
+ istop = int(stop)
if istop != stop:
raise ValueError("non-integer stop for randrange()")
width = istop - istart
if step == 1 and width > 0:
return istart + self._randbelow(width)
if step == 1:
- raise ValueError("empty range for randrange() (%d, %d, %d)" % (istart, istop, width))
+ raise ValueError("empty range for randrange() (%d, %d, %d)" % (istart, istop, width))
# Non-unit step argument supplied.
- istep = int(step)
+ istep = int(step)
if istep != step:
raise ValueError("non-integer step for randrange()")
if istep > 0:
@@ -329,7 +329,7 @@ class Random(_random.Random):
if n <= 0:
raise ValueError("empty range for randrange()")
- return istart + istep * self._randbelow(n)
+ return istart + istep * self._randbelow(n)
def randint(self, a, b):
"""Return random integer in range [a, b], including both end points.
@@ -338,12 +338,12 @@ class Random(_random.Random):
return self.randrange(a, b+1)
- ## -------------------- sequence methods -------------------
-
+ ## -------------------- sequence methods -------------------
+
def choice(self, seq):
"""Choose a random element from a non-empty sequence."""
- # raises IndexError if seq is empty
- return seq[self._randbelow(len(seq))]
+ # raises IndexError if seq is empty
+ return seq[self._randbelow(len(seq))]
def shuffle(self, x, random=None):
"""Shuffle list x in place, and return None.
@@ -358,20 +358,20 @@ class Random(_random.Random):
randbelow = self._randbelow
for i in reversed(range(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
- j = randbelow(i + 1)
+ j = randbelow(i + 1)
x[i], x[j] = x[j], x[i]
else:
- _warn('The *random* parameter to shuffle() has been deprecated\n'
- 'since Python 3.9 and will be removed in a subsequent '
- 'version.',
- DeprecationWarning, 2)
- floor = _floor
+ _warn('The *random* parameter to shuffle() has been deprecated\n'
+ 'since Python 3.9 and will be removed in a subsequent '
+ 'version.',
+ DeprecationWarning, 2)
+ floor = _floor
for i in reversed(range(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
- j = floor(random() * (i + 1))
+ j = floor(random() * (i + 1))
x[i], x[j] = x[j], x[i]
- def sample(self, population, k, *, counts=None):
+ def sample(self, population, k, *, counts=None):
"""Chooses k unique random elements from a population sequence or set.
Returns a new list containing elements from the population while
@@ -384,21 +384,21 @@ class Random(_random.Random):
population contains repeats, then each occurrence is a possible
selection in the sample.
- Repeated elements can be specified one at a time or with the optional
- counts parameter. For example:
-
- sample(['red', 'blue'], counts=[4, 2], k=5)
-
- is equivalent to:
-
- sample(['red', 'red', 'red', 'red', 'blue', 'blue'], k=5)
-
- To choose a sample from a range of integers, use range() for the
- population argument. This is especially fast and space efficient
- for sampling from a large population:
-
- sample(range(10000000), 60)
-
+ Repeated elements can be specified one at a time or with the optional
+ counts parameter. For example:
+
+ sample(['red', 'blue'], counts=[4, 2], k=5)
+
+ is equivalent to:
+
+ sample(['red', 'red', 'red', 'red', 'blue', 'blue'], k=5)
+
+ To choose a sample from a range of integers, use range() for the
+ population argument. This is especially fast and space efficient
+ for sampling from a large population:
+
+ sample(range(10000000), 60)
+
"""
# Sampling without replacement entails tracking either potential
@@ -411,54 +411,54 @@ class Random(_random.Random):
# preferred since the list takes less space than the
# set and it doesn't suffer from frequent reselections.
- # The number of calls to _randbelow() is kept at or near k, the
- # theoretical minimum. This is important because running time
- # is dominated by _randbelow() and because it extracts the
- # least entropy from the underlying random number generators.
-
- # Memory requirements are kept to the smaller of a k-length
- # set or an n-length list.
-
- # There are other sampling algorithms that do not require
- # auxiliary memory, but they were rejected because they made
- # too many calls to _randbelow(), making them slower and
- # causing them to eat more entropy than necessary.
-
+ # The number of calls to _randbelow() is kept at or near k, the
+ # theoretical minimum. This is important because running time
+ # is dominated by _randbelow() and because it extracts the
+ # least entropy from the underlying random number generators.
+
+ # Memory requirements are kept to the smaller of a k-length
+ # set or an n-length list.
+
+ # There are other sampling algorithms that do not require
+ # auxiliary memory, but they were rejected because they made
+ # too many calls to _randbelow(), making them slower and
+ # causing them to eat more entropy than necessary.
+
if isinstance(population, _Set):
- _warn('Sampling from a set deprecated\n'
- 'since Python 3.9 and will be removed in a subsequent version.',
- DeprecationWarning, 2)
+ _warn('Sampling from a set deprecated\n'
+ 'since Python 3.9 and will be removed in a subsequent version.',
+ DeprecationWarning, 2)
population = tuple(population)
if not isinstance(population, _Sequence):
- raise TypeError("Population must be a sequence. For dicts or sets, use sorted(d).")
- n = len(population)
- if counts is not None:
- cum_counts = list(_accumulate(counts))
- if len(cum_counts) != n:
- raise ValueError('The number of counts does not match the population')
- total = cum_counts.pop()
- if not isinstance(total, int):
- raise TypeError('Counts must be integers')
- if total <= 0:
- raise ValueError('Total of counts must be greater than zero')
- selections = self.sample(range(total), k=k)
- bisect = _bisect
- return [population[bisect(cum_counts, s)] for s in selections]
+ raise TypeError("Population must be a sequence. For dicts or sets, use sorted(d).")
+ n = len(population)
+ if counts is not None:
+ cum_counts = list(_accumulate(counts))
+ if len(cum_counts) != n:
+ raise ValueError('The number of counts does not match the population')
+ total = cum_counts.pop()
+ if not isinstance(total, int):
+ raise TypeError('Counts must be integers')
+ if total <= 0:
+ raise ValueError('Total of counts must be greater than zero')
+ selections = self.sample(range(total), k=k)
+ bisect = _bisect
+ return [population[bisect(cum_counts, s)] for s in selections]
randbelow = self._randbelow
if not 0 <= k <= n:
raise ValueError("Sample larger than population or is negative")
result = [None] * k
setsize = 21 # size of a small set minus size of an empty list
if k > 5:
- setsize += 4 ** _ceil(_log(k * 3, 4)) # table size for big sets
+ setsize += 4 ** _ceil(_log(k * 3, 4)) # table size for big sets
if n <= setsize:
- # An n-length list is smaller than a k-length set.
- # Invariant: non-selected at pool[0 : n-i]
+ # An n-length list is smaller than a k-length set.
+ # Invariant: non-selected at pool[0 : n-i]
pool = list(population)
- for i in range(k):
- j = randbelow(n - i)
+ for i in range(k):
+ j = randbelow(n - i)
result[i] = pool[j]
- pool[j] = pool[n - i - 1] # move non-selected item into vacancy
+ pool[j] = pool[n - i - 1] # move non-selected item into vacancy
else:
selected = set()
selected_add = selected.add
@@ -478,39 +478,39 @@ class Random(_random.Random):
"""
random = self.random
- n = len(population)
+ n = len(population)
if cum_weights is None:
if weights is None:
- floor = _floor
- n += 0.0 # convert to float for a small speed improvement
- return [population[floor(random() * n)] for i in _repeat(None, k)]
- try:
- cum_weights = list(_accumulate(weights))
- except TypeError:
- if not isinstance(weights, int):
- raise
- k = weights
- raise TypeError(
- f'The number of choices must be a keyword argument: {k=}'
- ) from None
+ floor = _floor
+ n += 0.0 # convert to float for a small speed improvement
+ return [population[floor(random() * n)] for i in _repeat(None, k)]
+ try:
+ cum_weights = list(_accumulate(weights))
+ except TypeError:
+ if not isinstance(weights, int):
+ raise
+ k = weights
+ raise TypeError(
+ f'The number of choices must be a keyword argument: {k=}'
+ ) from None
elif weights is not None:
raise TypeError('Cannot specify both weights and cumulative weights')
- if len(cum_weights) != n:
+ if len(cum_weights) != n:
raise ValueError('The number of weights does not match the population')
- total = cum_weights[-1] + 0.0 # convert to float
- if total <= 0.0:
- raise ValueError('Total of weights must be greater than zero')
- bisect = _bisect
- hi = n - 1
+ total = cum_weights[-1] + 0.0 # convert to float
+ if total <= 0.0:
+ raise ValueError('Total of weights must be greater than zero')
+ bisect = _bisect
+ hi = n - 1
return [population[bisect(cum_weights, random() * total, 0, hi)]
- for i in _repeat(None, k)]
+ for i in _repeat(None, k)]
- ## -------------------- real-valued distributions -------------------
+ ## -------------------- real-valued distributions -------------------
def uniform(self, a, b):
"Get a random number in the range [a, b) or [a, b] depending on rounding."
- return a + (b - a) * self.random()
+ return a + (b - a) * self.random()
def triangular(self, low=0.0, high=1.0, mode=None):
"""Triangular distribution.
@@ -544,53 +544,53 @@ class Random(_random.Random):
# Math Software, 3, (1977), pp257-260.
random = self.random
- while True:
+ while True:
u1 = random()
u2 = 1.0 - random()
- z = NV_MAGICCONST * (u1 - 0.5) / u2
- zz = z * z / 4.0
+ z = NV_MAGICCONST * (u1 - 0.5) / u2
+ zz = z * z / 4.0
if zz <= -_log(u2):
break
- return mu + z * sigma
-
- def gauss(self, mu, sigma):
- """Gaussian distribution.
-
- mu is the mean, and sigma is the standard deviation. This is
- slightly faster than the normalvariate() function.
-
- Not thread-safe without a lock around calls.
-
- """
- # When x and y are two variables from [0, 1), uniformly
- # distributed, then
- #
- # cos(2*pi*x)*sqrt(-2*log(1-y))
- # sin(2*pi*x)*sqrt(-2*log(1-y))
- #
- # are two *independent* variables with normal distribution
- # (mu = 0, sigma = 1).
- # (Lambert Meertens)
- # (corrected version; bug discovered by Mike Miller, fixed by LM)
-
- # Multithreading note: When two threads call this function
- # simultaneously, it is possible that they will receive the
- # same return value. The window is very small though. To
- # avoid this, you have to use a lock around all calls. (I
- # didn't want to slow this down in the serial case by using a
- # lock here.)
-
- random = self.random
- z = self.gauss_next
- self.gauss_next = None
- if z is None:
- x2pi = random() * TWOPI
- g2rad = _sqrt(-2.0 * _log(1.0 - random()))
- z = _cos(x2pi) * g2rad
- self.gauss_next = _sin(x2pi) * g2rad
-
- return mu + z * sigma
-
+ return mu + z * sigma
+
+ def gauss(self, mu, sigma):
+ """Gaussian distribution.
+
+ mu is the mean, and sigma is the standard deviation. This is
+ slightly faster than the normalvariate() function.
+
+ Not thread-safe without a lock around calls.
+
+ """
+ # When x and y are two variables from [0, 1), uniformly
+ # distributed, then
+ #
+ # cos(2*pi*x)*sqrt(-2*log(1-y))
+ # sin(2*pi*x)*sqrt(-2*log(1-y))
+ #
+ # are two *independent* variables with normal distribution
+ # (mu = 0, sigma = 1).
+ # (Lambert Meertens)
+ # (corrected version; bug discovered by Mike Miller, fixed by LM)
+
+ # Multithreading note: When two threads call this function
+ # simultaneously, it is possible that they will receive the
+ # same return value. The window is very small though. To
+ # avoid this, you have to use a lock around all calls. (I
+ # didn't want to slow this down in the serial case by using a
+ # lock here.)
+
+ random = self.random
+ z = self.gauss_next
+ self.gauss_next = None
+ if z is None:
+ x2pi = random() * TWOPI
+ g2rad = _sqrt(-2.0 * _log(1.0 - random()))
+ z = _cos(x2pi) * g2rad
+ self.gauss_next = _sin(x2pi) * g2rad
+
+ return mu + z * sigma
+
def lognormvariate(self, mu, sigma):
"""Log normal distribution.
@@ -616,7 +616,7 @@ class Random(_random.Random):
# we use 1-random() instead of random() to preclude the
# possibility of taking the log of zero.
- return -_log(1.0 - self.random()) / lambd
+ return -_log(1.0 - self.random()) / lambd
def vonmisesvariate(self, mu, kappa):
"""Circular data distribution.
@@ -641,7 +641,7 @@ class Random(_random.Random):
s = 0.5 / kappa
r = s + _sqrt(1.0 + s * s)
- while True:
+ while True:
u1 = random()
z = _cos(_pi * u1)
@@ -692,31 +692,31 @@ class Random(_random.Random):
while 1:
u1 = random()
- if not 1e-7 < u1 < 0.9999999:
+ if not 1e-7 < u1 < 0.9999999:
continue
u2 = 1.0 - random()
- v = _log(u1 / (1.0 - u1)) / ainv
- x = alpha * _exp(v)
- z = u1 * u1 * u2
- r = bbb + ccc * v - x
- if r + SG_MAGICCONST - 4.5 * z >= 0.0 or r >= _log(z):
+ v = _log(u1 / (1.0 - u1)) / ainv
+ x = alpha * _exp(v)
+ z = u1 * u1 * u2
+ r = bbb + ccc * v - x
+ if r + SG_MAGICCONST - 4.5 * z >= 0.0 or r >= _log(z):
return x * beta
elif alpha == 1.0:
# expovariate(1/beta)
- return -_log(1.0 - random()) * beta
+ return -_log(1.0 - random()) * beta
- else:
- # alpha is between 0 and 1 (exclusive)
+ else:
+ # alpha is between 0 and 1 (exclusive)
# Uses ALGORITHM GS of Statistical Computing - Kennedy & Gentle
- while True:
+ while True:
u = random()
- b = (_e + alpha) / _e
- p = b * u
+ b = (_e + alpha) / _e
+ p = b * u
if p <= 1.0:
- x = p ** (1.0 / alpha)
+ x = p ** (1.0 / alpha)
else:
- x = -_log((b - p) / alpha)
+ x = -_log((b - p) / alpha)
u1 = random()
if p > 1.0:
if u1 <= x ** (alpha - 1.0):
@@ -732,32 +732,32 @@ class Random(_random.Random):
Returned values range between 0 and 1.
"""
- ## See
- ## http://mail.python.org/pipermail/python-bugs-list/2001-January/003752.html
- ## for Ivan Frohne's insightful analysis of why the original implementation:
- ##
- ## def betavariate(self, alpha, beta):
- ## # Discrete Event Simulation in C, pp 87-88.
- ##
- ## y = self.expovariate(alpha)
- ## z = self.expovariate(1.0/beta)
- ## return z/(y+z)
- ##
- ## was dead wrong, and how it probably got that way.
+ ## See
+ ## http://mail.python.org/pipermail/python-bugs-list/2001-January/003752.html
+ ## for Ivan Frohne's insightful analysis of why the original implementation:
+ ##
+ ## def betavariate(self, alpha, beta):
+ ## # Discrete Event Simulation in C, pp 87-88.
+ ##
+ ## y = self.expovariate(alpha)
+ ## z = self.expovariate(1.0/beta)
+ ## return z/(y+z)
+ ##
+ ## was dead wrong, and how it probably got that way.
# This version due to Janne Sinkkonen, and matches all the std
# texts (e.g., Knuth Vol 2 Ed 3 pg 134 "the beta distribution").
y = self.gammavariate(alpha, 1.0)
- if y:
+ if y:
return y / (y + self.gammavariate(beta, 1.0))
- return 0.0
+ return 0.0
def paretovariate(self, alpha):
"""Pareto distribution. alpha is the shape parameter."""
# Jain, pg. 495
u = 1.0 - self.random()
- return 1.0 / u ** (1.0 / alpha)
+ return 1.0 / u ** (1.0 / alpha)
def weibullvariate(self, alpha, beta):
"""Weibull distribution.
@@ -768,20 +768,20 @@ class Random(_random.Random):
# Jain, pg. 499; bug fix courtesy Bill Arms
u = 1.0 - self.random()
- return alpha * (-_log(u)) ** (1.0 / beta)
+ return alpha * (-_log(u)) ** (1.0 / beta)
+
-
-## ------------------------------------------------------------------
+## ------------------------------------------------------------------
## --------------- Operating System Random Source ------------------
-
+
class SystemRandom(Random):
"""Alternate random number generator using sources provided
by the operating system (such as /dev/urandom on Unix or
CryptGenRandom on Windows).
Not available on all systems (see os.urandom() for details).
-
+
"""
def random(self):
@@ -790,18 +790,18 @@ class SystemRandom(Random):
def getrandbits(self, k):
"""getrandbits(k) -> x. Generates an int with k random bits."""
- if k < 0:
- raise ValueError('number of bits must be non-negative')
+ if k < 0:
+ raise ValueError('number of bits must be non-negative')
numbytes = (k + 7) // 8 # bits / 8 and rounded up
x = int.from_bytes(_urandom(numbytes), 'big')
return x >> (numbytes * 8 - k) # trim excess bits
- def randbytes(self, n):
- """Generate n random bytes."""
- # os.urandom(n) fails with ValueError for n < 0
- # and returns an empty bytes string for n == 0.
- return _urandom(n)
-
+ def randbytes(self, n):
+ """Generate n random bytes."""
+ # os.urandom(n) fails with ValueError for n < 0
+ # and returns an empty bytes string for n == 0.
+ return _urandom(n)
+
def seed(self, *args, **kwds):
"Stub method. Not used for a system random number generator."
return None
@@ -812,10 +812,10 @@ class SystemRandom(Random):
getstate = setstate = _notimplemented
-# ----------------------------------------------------------------------
+# ----------------------------------------------------------------------
# Create one instance, seeded from current time, and export its methods
# as module-level functions. The functions share state across all uses
-# (both in the user's code and in the Python libraries), but that's fine
+# (both in the user's code and in the Python libraries), but that's fine
# for most programs and is easier for the casual user than making them
# instantiate their own Random() instance.
@@ -842,51 +842,51 @@ weibullvariate = _inst.weibullvariate
getstate = _inst.getstate
setstate = _inst.setstate
getrandbits = _inst.getrandbits
-randbytes = _inst.randbytes
-
-
-## ------------------------------------------------------
-## ----------------- test program -----------------------
-
-def _test_generator(n, func, args):
- from statistics import stdev, fmean as mean
- from time import perf_counter
-
- t0 = perf_counter()
- data = [func(*args) for i in range(n)]
- t1 = perf_counter()
-
- xbar = mean(data)
- sigma = stdev(data, xbar)
- low = min(data)
- high = max(data)
-
- print(f'{t1 - t0:.3f} sec, {n} times {func.__name__}')
- print('avg %g, stddev %g, min %g, max %g\n' % (xbar, sigma, low, high))
-
-
-def _test(N=2000):
- _test_generator(N, random, ())
- _test_generator(N, normalvariate, (0.0, 1.0))
- _test_generator(N, lognormvariate, (0.0, 1.0))
- _test_generator(N, vonmisesvariate, (0.0, 1.0))
- _test_generator(N, gammavariate, (0.01, 1.0))
- _test_generator(N, gammavariate, (0.1, 1.0))
- _test_generator(N, gammavariate, (0.1, 2.0))
- _test_generator(N, gammavariate, (0.5, 1.0))
- _test_generator(N, gammavariate, (0.9, 1.0))
- _test_generator(N, gammavariate, (1.0, 1.0))
- _test_generator(N, gammavariate, (2.0, 1.0))
- _test_generator(N, gammavariate, (20.0, 1.0))
- _test_generator(N, gammavariate, (200.0, 1.0))
- _test_generator(N, gauss, (0.0, 1.0))
- _test_generator(N, betavariate, (3.0, 3.0))
- _test_generator(N, triangular, (0.0, 1.0, 1.0 / 3.0))
-
-
-## ------------------------------------------------------
-## ------------------ fork support ---------------------
-
+randbytes = _inst.randbytes
+
+
+## ------------------------------------------------------
+## ----------------- test program -----------------------
+
+def _test_generator(n, func, args):
+ from statistics import stdev, fmean as mean
+ from time import perf_counter
+
+ t0 = perf_counter()
+ data = [func(*args) for i in range(n)]
+ t1 = perf_counter()
+
+ xbar = mean(data)
+ sigma = stdev(data, xbar)
+ low = min(data)
+ high = max(data)
+
+ print(f'{t1 - t0:.3f} sec, {n} times {func.__name__}')
+ print('avg %g, stddev %g, min %g, max %g\n' % (xbar, sigma, low, high))
+
+
+def _test(N=2000):
+ _test_generator(N, random, ())
+ _test_generator(N, normalvariate, (0.0, 1.0))
+ _test_generator(N, lognormvariate, (0.0, 1.0))
+ _test_generator(N, vonmisesvariate, (0.0, 1.0))
+ _test_generator(N, gammavariate, (0.01, 1.0))
+ _test_generator(N, gammavariate, (0.1, 1.0))
+ _test_generator(N, gammavariate, (0.1, 2.0))
+ _test_generator(N, gammavariate, (0.5, 1.0))
+ _test_generator(N, gammavariate, (0.9, 1.0))
+ _test_generator(N, gammavariate, (1.0, 1.0))
+ _test_generator(N, gammavariate, (2.0, 1.0))
+ _test_generator(N, gammavariate, (20.0, 1.0))
+ _test_generator(N, gammavariate, (200.0, 1.0))
+ _test_generator(N, gauss, (0.0, 1.0))
+ _test_generator(N, betavariate, (3.0, 3.0))
+ _test_generator(N, triangular, (0.0, 1.0, 1.0 / 3.0))
+
+
+## ------------------------------------------------------
+## ------------------ fork support ---------------------
+
if hasattr(_os, "fork"):
_os.register_at_fork(after_in_child=_inst.seed)
diff --git a/contrib/tools/python3/src/Lib/re.py b/contrib/tools/python3/src/Lib/re.py
index 3375bb3ec5..bfb7b1ccd9 100644
--- a/contrib/tools/python3/src/Lib/re.py
+++ b/contrib/tools/python3/src/Lib/re.py
@@ -44,7 +44,7 @@ The special characters are:
"|" A|B, creates an RE that will match either A or B.
(...) Matches the RE inside the parentheses.
The contents can be retrieved or matched later in the string.
- (?aiLmsux) The letters set the corresponding flags defined below.
+ (?aiLmsux) The letters set the corresponding flags defined below.
(?:...) Non-grouping version of regular parentheses.
(?P<name>...) The substring matched by the group is accessible by name.
(?P=name) Matches the text matched earlier by the group named name.
@@ -97,9 +97,9 @@ This module exports the following functions:
purge Clear the regular expression cache.
escape Backslash all non-alphanumerics in a string.
-Each function other than purge and escape can take an optional 'flags' argument
-consisting of one or more of the following module constants, joined by "|".
-A, L, and U are mutually exclusive.
+Each function other than purge and escape can take an optional 'flags' argument
+consisting of one or more of the following module constants, joined by "|".
+A, L, and U are mutually exclusive.
A ASCII For string patterns, make \w, \W, \b, \B, \d, \D
match the corresponding ASCII character categories
(rather than the whole Unicode categories, which is the
@@ -143,40 +143,40 @@ __all__ = [
__version__ = "2.2.1"
class RegexFlag(enum.IntFlag):
- ASCII = A = sre_compile.SRE_FLAG_ASCII # assume ascii "locale"
- IGNORECASE = I = sre_compile.SRE_FLAG_IGNORECASE # ignore case
- LOCALE = L = sre_compile.SRE_FLAG_LOCALE # assume current 8-bit locale
- UNICODE = U = sre_compile.SRE_FLAG_UNICODE # assume unicode "locale"
- MULTILINE = M = sre_compile.SRE_FLAG_MULTILINE # make anchors look for newline
- DOTALL = S = sre_compile.SRE_FLAG_DOTALL # make dot match newline
- VERBOSE = X = sre_compile.SRE_FLAG_VERBOSE # ignore whitespace and comments
+ ASCII = A = sre_compile.SRE_FLAG_ASCII # assume ascii "locale"
+ IGNORECASE = I = sre_compile.SRE_FLAG_IGNORECASE # ignore case
+ LOCALE = L = sre_compile.SRE_FLAG_LOCALE # assume current 8-bit locale
+ UNICODE = U = sre_compile.SRE_FLAG_UNICODE # assume unicode "locale"
+ MULTILINE = M = sre_compile.SRE_FLAG_MULTILINE # make anchors look for newline
+ DOTALL = S = sre_compile.SRE_FLAG_DOTALL # make dot match newline
+ VERBOSE = X = sre_compile.SRE_FLAG_VERBOSE # ignore whitespace and comments
# sre extensions (experimental, don't rely on these)
- TEMPLATE = T = sre_compile.SRE_FLAG_TEMPLATE # disable backtracking
+ TEMPLATE = T = sre_compile.SRE_FLAG_TEMPLATE # disable backtracking
DEBUG = sre_compile.SRE_FLAG_DEBUG # dump pattern after compilation
-
- def __repr__(self):
- if self._name_ is not None:
- return f're.{self._name_}'
- value = self._value_
- members = []
- negative = value < 0
- if negative:
- value = ~value
- for m in self.__class__:
- if value & m._value_:
- value &= ~m._value_
- members.append(f're.{m._name_}')
- if value:
- members.append(hex(value))
- res = '|'.join(members)
- if negative:
- if len(members) > 1:
- res = f'~({res})'
- else:
- res = f'~{res}'
- return res
- __str__ = object.__str__
-
+
+ def __repr__(self):
+ if self._name_ is not None:
+ return f're.{self._name_}'
+ value = self._value_
+ members = []
+ negative = value < 0
+ if negative:
+ value = ~value
+ for m in self.__class__:
+ if value & m._value_:
+ value &= ~m._value_
+ members.append(f're.{m._name_}')
+ if value:
+ members.append(hex(value))
+ res = '|'.join(members)
+ if negative:
+ if len(members) > 1:
+ res = f'~({res})'
+ else:
+ res = f'~{res}'
+ return res
+ __str__ = object.__str__
+
globals().update(RegexFlag.__members__)
# sre exception
@@ -352,7 +352,7 @@ class Scanner:
self.lexicon = lexicon
# combine phrases into a compound pattern
p = []
- s = sre_parse.State()
+ s = sre_parse.State()
s.flags = flags
for phrase, action in lexicon:
gid = s.opengroup()
diff --git a/contrib/tools/python3/src/Lib/rlcompleter.py b/contrib/tools/python3/src/Lib/rlcompleter.py
index 79116c7863..923f5c0541 100644
--- a/contrib/tools/python3/src/Lib/rlcompleter.py
+++ b/contrib/tools/python3/src/Lib/rlcompleter.py
@@ -169,20 +169,20 @@ class Completer:
if (word[:n] == attr and
not (noprefix and word[:n+1] == noprefix)):
match = "%s.%s" % (expr, word)
- if isinstance(getattr(type(thisobject), word, None),
- property):
- # bpo-44752: thisobject.word is a method decorated by
- # `@property`. What follows applies a postfix if
- # thisobject.word is callable, but know we know that
- # this is not callable (because it is a property).
- # Also, getattr(thisobject, word) will evaluate the
- # property method, which is not desirable.
- matches.append(match)
- continue
- if (value := getattr(thisobject, word, None)) is not None:
- matches.append(self._callable_postfix(value, match))
+ if isinstance(getattr(type(thisobject), word, None),
+ property):
+ # bpo-44752: thisobject.word is a method decorated by
+ # `@property`. What follows applies a postfix if
+ # thisobject.word is callable, but know we know that
+ # this is not callable (because it is a property).
+ # Also, getattr(thisobject, word) will evaluate the
+ # property method, which is not desirable.
+ matches.append(match)
+ continue
+ if (value := getattr(thisobject, word, None)) is not None:
+ matches.append(self._callable_postfix(value, match))
else:
- matches.append(match)
+ matches.append(match)
if matches or not noprefix:
break
if noprefix == '_':
diff --git a/contrib/tools/python3/src/Lib/runpy.py b/contrib/tools/python3/src/Lib/runpy.py
index fb8b463c5d..7e1e1ac5dd 100644
--- a/contrib/tools/python3/src/Lib/runpy.py
+++ b/contrib/tools/python3/src/Lib/runpy.py
@@ -13,9 +13,9 @@ importers when locating support scripts as well as when importing modules.
import sys
import importlib.machinery # importlib first so we can test #15386 via -m
import importlib.util
-import io
+import io
import types
-import os
+import os
from pkgutil import read_code, get_importer
__all__ = [
@@ -133,9 +133,9 @@ def _get_module_details(mod_name, error=ImportError):
# importlib, where the latter raises other errors for cases where
# pkgutil previously raised ImportError
msg = "Error while finding module specification for {!r} ({}: {})"
- if mod_name.endswith(".py"):
- msg += (f". Try using '{mod_name[:-3]}' instead of "
- f"'{mod_name}' as the module name.")
+ if mod_name.endswith(".py"):
+ msg += (f". Try using '{mod_name[:-3]}' instead of "
+ f"'{mod_name}' as the module name.")
raise error(msg.format(mod_name, type(ex).__name__, ex)) from ex
if spec is None:
raise error("No module named %s" % mod_name)
@@ -233,12 +233,12 @@ def _get_main_module_details(error=ImportError):
def _get_code_from_file(run_name, fname):
# Check for a compiled file first
- decoded_path = os.path.abspath(os.fsdecode(fname))
- with io.open_code(decoded_path) as f:
+ decoded_path = os.path.abspath(os.fsdecode(fname))
+ with io.open_code(decoded_path) as f:
code = read_code(f)
if code is None:
# That didn't work, so try it as normal source code
- with io.open_code(decoded_path) as f:
+ with io.open_code(decoded_path) as f:
code = compile(f.read(), fname, 'exec')
return code, fname
diff --git a/contrib/tools/python3/src/Lib/secrets.py b/contrib/tools/python3/src/Lib/secrets.py
index 7ad999e41b..a546efbdd4 100644
--- a/contrib/tools/python3/src/Lib/secrets.py
+++ b/contrib/tools/python3/src/Lib/secrets.py
@@ -43,7 +43,7 @@ def token_bytes(nbytes=None):
"""
if nbytes is None:
nbytes = DEFAULT_ENTROPY
- return _sysrand.randbytes(nbytes)
+ return _sysrand.randbytes(nbytes)
def token_hex(nbytes=None):
"""Return a random text string, in hexadecimal.
diff --git a/contrib/tools/python3/src/Lib/selectors.py b/contrib/tools/python3/src/Lib/selectors.py
index f32c0a25df..bb15a1cb1b 100644
--- a/contrib/tools/python3/src/Lib/selectors.py
+++ b/contrib/tools/python3/src/Lib/selectors.py
@@ -57,7 +57,7 @@ if sys.version_info >= (3, 5):
SelectorKey.data.__doc__ = ('''Optional opaque data associated to this file object.
For example, this could be used to store a per-client session ID.''')
-
+
class _SelectorMapping(Mapping):
"""Mapping of file objects to selector keys."""
@@ -553,10 +553,10 @@ if hasattr(select, 'kqueue'):
def select(self, timeout=None):
timeout = None if timeout is None else max(timeout, 0)
- # If max_ev is 0, kqueue will ignore the timeout. For consistent
- # behavior with the other selector classes, we prevent that here
- # (using max). See https://bugs.python.org/issue29255
- max_ev = max(len(self._fd_to_key), 1)
+ # If max_ev is 0, kqueue will ignore the timeout. For consistent
+ # behavior with the other selector classes, we prevent that here
+ # (using max). See https://bugs.python.org/issue29255
+ max_ev = max(len(self._fd_to_key), 1)
ready = []
try:
kev_list = self._selector.control(None, max_ev, timeout)
@@ -581,39 +581,39 @@ if hasattr(select, 'kqueue'):
super().close()
-def _can_use(method):
- """Check if we can use the selector depending upon the
- operating system. """
- # Implementation based upon https://github.com/sethmlarson/selectors2/blob/master/selectors2.py
- selector = getattr(select, method, None)
- if selector is None:
- # select module does not implement method
- return False
- # check if the OS and Kernel actually support the method. Call may fail with
- # OSError: [Errno 38] Function not implemented
- try:
- selector_obj = selector()
- if method == 'poll':
- # check that poll actually works
- selector_obj.poll(0)
- else:
- # close epoll, kqueue, and devpoll fd
- selector_obj.close()
- return True
- except OSError:
- return False
-
-
+def _can_use(method):
+ """Check if we can use the selector depending upon the
+ operating system. """
+ # Implementation based upon https://github.com/sethmlarson/selectors2/blob/master/selectors2.py
+ selector = getattr(select, method, None)
+ if selector is None:
+ # select module does not implement method
+ return False
+ # check if the OS and Kernel actually support the method. Call may fail with
+ # OSError: [Errno 38] Function not implemented
+ try:
+ selector_obj = selector()
+ if method == 'poll':
+ # check that poll actually works
+ selector_obj.poll(0)
+ else:
+ # close epoll, kqueue, and devpoll fd
+ selector_obj.close()
+ return True
+ except OSError:
+ return False
+
+
# Choose the best implementation, roughly:
# epoll|kqueue|devpoll > poll > select.
# select() also can't accept a FD > FD_SETSIZE (usually around 1024)
-if _can_use('kqueue'):
+if _can_use('kqueue'):
DefaultSelector = KqueueSelector
-elif _can_use('epoll'):
+elif _can_use('epoll'):
DefaultSelector = EpollSelector
-elif _can_use('devpoll'):
+elif _can_use('devpoll'):
DefaultSelector = DevpollSelector
-elif _can_use('poll'):
+elif _can_use('poll'):
DefaultSelector = PollSelector
else:
DefaultSelector = SelectSelector
diff --git a/contrib/tools/python3/src/Lib/shlex.py b/contrib/tools/python3/src/Lib/shlex.py
index 409db17998..4801a6c1d4 100644
--- a/contrib/tools/python3/src/Lib/shlex.py
+++ b/contrib/tools/python3/src/Lib/shlex.py
@@ -14,7 +14,7 @@ from collections import deque
from io import StringIO
-__all__ = ["shlex", "split", "quote", "join"]
+__all__ = ["shlex", "split", "quote", "join"]
class shlex:
"A lexical analyzer class for simple shell-like syntaxes."
@@ -55,7 +55,7 @@ class shlex:
punctuation_chars = ''
elif punctuation_chars is True:
punctuation_chars = '();<>|&'
- self._punctuation_chars = punctuation_chars
+ self._punctuation_chars = punctuation_chars
if punctuation_chars:
# _pushback_chars is a push back queue used by lookahead logic
self._pushback_chars = deque()
@@ -65,10 +65,10 @@ class shlex:
t = self.wordchars.maketrans(dict.fromkeys(punctuation_chars))
self.wordchars = self.wordchars.translate(t)
- @property
- def punctuation_chars(self):
- return self._punctuation_chars
-
+ @property
+ def punctuation_chars(self):
+ return self._punctuation_chars
+
def push_token(self, tok):
"Push a token onto the stack popped by the get_token method"
if self.debug >= 1:
@@ -250,8 +250,8 @@ class shlex:
escapedstate = 'a'
self.state = nextchar
elif (nextchar in self.wordchars or nextchar in self.quotes
- or (self.whitespace_split and
- nextchar not in self.punctuation_chars)):
+ or (self.whitespace_split and
+ nextchar not in self.punctuation_chars)):
self.token += nextchar
else:
if self.punctuation_chars:
@@ -303,11 +303,11 @@ class shlex:
return token
def split(s, comments=False, posix=True):
- """Split the string *s* using shell-like syntax."""
- if s is None:
- import warnings
- warnings.warn("Passing None for 's' to shlex.split() is deprecated.",
- DeprecationWarning, stacklevel=2)
+ """Split the string *s* using shell-like syntax."""
+ if s is None:
+ import warnings
+ warnings.warn("Passing None for 's' to shlex.split() is deprecated.",
+ DeprecationWarning, stacklevel=2)
lex = shlex(s, posix=posix)
lex.whitespace_split = True
if not comments:
@@ -315,11 +315,11 @@ def split(s, comments=False, posix=True):
return list(lex)
-def join(split_command):
- """Return a shell-escaped string from *split_command*."""
- return ' '.join(quote(arg) for arg in split_command)
-
-
+def join(split_command):
+ """Return a shell-escaped string from *split_command*."""
+ return ' '.join(quote(arg) for arg in split_command)
+
+
_find_unsafe = re.compile(r'[^\w@%+=:,./-]', re.ASCII).search
def quote(s):
diff --git a/contrib/tools/python3/src/Lib/shutil.py b/contrib/tools/python3/src/Lib/shutil.py
index 19dfd529c0..752900c588 100644
--- a/contrib/tools/python3/src/Lib/shutil.py
+++ b/contrib/tools/python3/src/Lib/shutil.py
@@ -42,20 +42,20 @@ try:
except ImportError:
getgrnam = None
-_WINDOWS = os.name == 'nt'
-posix = nt = None
-if os.name == 'posix':
- import posix
-elif _WINDOWS:
- import nt
-
-COPY_BUFSIZE = 1024 * 1024 if _WINDOWS else 64 * 1024
-_USE_CP_SENDFILE = hasattr(os, "sendfile") and sys.platform.startswith("linux")
-_HAS_FCOPYFILE = posix and hasattr(posix, "_fcopyfile") # macOS
-
-# CMD defaults in Windows 10
-_WIN_DEFAULT_PATHEXT = ".COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC"
-
+_WINDOWS = os.name == 'nt'
+posix = nt = None
+if os.name == 'posix':
+ import posix
+elif _WINDOWS:
+ import nt
+
+COPY_BUFSIZE = 1024 * 1024 if _WINDOWS else 64 * 1024
+_USE_CP_SENDFILE = hasattr(os, "sendfile") and sys.platform.startswith("linux")
+_HAS_FCOPYFILE = posix and hasattr(posix, "_fcopyfile") # macOS
+
+# CMD defaults in Windows 10
+_WIN_DEFAULT_PATHEXT = ".COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC"
+
__all__ = ["copyfileobj", "copyfile", "copymode", "copystat", "copy", "copy2",
"copytree", "move", "rmtree", "Error", "SpecialFileError",
"ExecError", "make_archive", "get_archive_formats",
@@ -86,135 +86,135 @@ class RegistryError(Exception):
"""Raised when a registry operation with the archiving
and unpacking registries fails"""
-class _GiveupOnFastCopy(Exception):
- """Raised as a signal to fallback on using raw read()/write()
- file copy when fast-copy functions fail to do so.
- """
-
-def _fastcopy_fcopyfile(fsrc, fdst, flags):
- """Copy a regular file content or metadata by using high-performance
- fcopyfile(3) syscall (macOS).
- """
- try:
- infd = fsrc.fileno()
- outfd = fdst.fileno()
- except Exception as err:
- raise _GiveupOnFastCopy(err) # not a regular file
-
- try:
- posix._fcopyfile(infd, outfd, flags)
- except OSError as err:
- err.filename = fsrc.name
- err.filename2 = fdst.name
- if err.errno in {errno.EINVAL, errno.ENOTSUP}:
- raise _GiveupOnFastCopy(err)
- else:
- raise err from None
-
-def _fastcopy_sendfile(fsrc, fdst):
- """Copy data from one regular mmap-like fd to another by using
- high-performance sendfile(2) syscall.
- This should work on Linux >= 2.6.33 only.
- """
- # Note: copyfileobj() is left alone in order to not introduce any
- # unexpected breakage. Possible risks by using zero-copy calls
- # in copyfileobj() are:
- # - fdst cannot be open in "a"(ppend) mode
- # - fsrc and fdst may be open in "t"(ext) mode
- # - fsrc may be a BufferedReader (which hides unread data in a buffer),
- # GzipFile (which decompresses data), HTTPResponse (which decodes
- # chunks).
- # - possibly others (e.g. encrypted fs/partition?)
- global _USE_CP_SENDFILE
- try:
- infd = fsrc.fileno()
- outfd = fdst.fileno()
- except Exception as err:
- raise _GiveupOnFastCopy(err) # not a regular file
-
- # Hopefully the whole file will be copied in a single call.
- # sendfile() is called in a loop 'till EOF is reached (0 return)
- # so a bufsize smaller or bigger than the actual file size
- # should not make any difference, also in case the file content
- # changes while being copied.
- try:
- blocksize = max(os.fstat(infd).st_size, 2 ** 23) # min 8MiB
- except OSError:
- blocksize = 2 ** 27 # 128MiB
- # On 32-bit architectures truncate to 1GiB to avoid OverflowError,
- # see bpo-38319.
- if sys.maxsize < 2 ** 32:
- blocksize = min(blocksize, 2 ** 30)
-
- offset = 0
- while True:
- try:
- sent = os.sendfile(outfd, infd, offset, blocksize)
- except OSError as err:
- # ...in oder to have a more informative exception.
- err.filename = fsrc.name
- err.filename2 = fdst.name
-
- if err.errno == errno.ENOTSOCK:
- # sendfile() on this platform (probably Linux < 2.6.33)
- # does not support copies between regular files (only
- # sockets).
- _USE_CP_SENDFILE = False
- raise _GiveupOnFastCopy(err)
-
- if err.errno == errno.ENOSPC: # filesystem is full
- raise err from None
-
- # Give up on first call and if no data was copied.
- if offset == 0 and os.lseek(outfd, 0, os.SEEK_CUR) == 0:
- raise _GiveupOnFastCopy(err)
-
- raise err
- else:
- if sent == 0:
- break # EOF
- offset += sent
-
-def _copyfileobj_readinto(fsrc, fdst, length=COPY_BUFSIZE):
- """readinto()/memoryview() based variant of copyfileobj().
- *fsrc* must support readinto() method and both files must be
- open in binary mode.
- """
- # Localize variable access to minimize overhead.
- fsrc_readinto = fsrc.readinto
- fdst_write = fdst.write
- with memoryview(bytearray(length)) as mv:
- while True:
- n = fsrc_readinto(mv)
- if not n:
- break
- elif n < length:
- with mv[:n] as smv:
- fdst.write(smv)
- else:
- fdst_write(mv)
-
-def copyfileobj(fsrc, fdst, length=0):
+class _GiveupOnFastCopy(Exception):
+ """Raised as a signal to fallback on using raw read()/write()
+ file copy when fast-copy functions fail to do so.
+ """
+
+def _fastcopy_fcopyfile(fsrc, fdst, flags):
+ """Copy a regular file content or metadata by using high-performance
+ fcopyfile(3) syscall (macOS).
+ """
+ try:
+ infd = fsrc.fileno()
+ outfd = fdst.fileno()
+ except Exception as err:
+ raise _GiveupOnFastCopy(err) # not a regular file
+
+ try:
+ posix._fcopyfile(infd, outfd, flags)
+ except OSError as err:
+ err.filename = fsrc.name
+ err.filename2 = fdst.name
+ if err.errno in {errno.EINVAL, errno.ENOTSUP}:
+ raise _GiveupOnFastCopy(err)
+ else:
+ raise err from None
+
+def _fastcopy_sendfile(fsrc, fdst):
+ """Copy data from one regular mmap-like fd to another by using
+ high-performance sendfile(2) syscall.
+ This should work on Linux >= 2.6.33 only.
+ """
+ # Note: copyfileobj() is left alone in order to not introduce any
+ # unexpected breakage. Possible risks by using zero-copy calls
+ # in copyfileobj() are:
+ # - fdst cannot be open in "a"(ppend) mode
+ # - fsrc and fdst may be open in "t"(ext) mode
+ # - fsrc may be a BufferedReader (which hides unread data in a buffer),
+ # GzipFile (which decompresses data), HTTPResponse (which decodes
+ # chunks).
+ # - possibly others (e.g. encrypted fs/partition?)
+ global _USE_CP_SENDFILE
+ try:
+ infd = fsrc.fileno()
+ outfd = fdst.fileno()
+ except Exception as err:
+ raise _GiveupOnFastCopy(err) # not a regular file
+
+ # Hopefully the whole file will be copied in a single call.
+ # sendfile() is called in a loop 'till EOF is reached (0 return)
+ # so a bufsize smaller or bigger than the actual file size
+ # should not make any difference, also in case the file content
+ # changes while being copied.
+ try:
+ blocksize = max(os.fstat(infd).st_size, 2 ** 23) # min 8MiB
+ except OSError:
+ blocksize = 2 ** 27 # 128MiB
+ # On 32-bit architectures truncate to 1GiB to avoid OverflowError,
+ # see bpo-38319.
+ if sys.maxsize < 2 ** 32:
+ blocksize = min(blocksize, 2 ** 30)
+
+ offset = 0
+ while True:
+ try:
+ sent = os.sendfile(outfd, infd, offset, blocksize)
+ except OSError as err:
+ # ...in oder to have a more informative exception.
+ err.filename = fsrc.name
+ err.filename2 = fdst.name
+
+ if err.errno == errno.ENOTSOCK:
+ # sendfile() on this platform (probably Linux < 2.6.33)
+ # does not support copies between regular files (only
+ # sockets).
+ _USE_CP_SENDFILE = False
+ raise _GiveupOnFastCopy(err)
+
+ if err.errno == errno.ENOSPC: # filesystem is full
+ raise err from None
+
+ # Give up on first call and if no data was copied.
+ if offset == 0 and os.lseek(outfd, 0, os.SEEK_CUR) == 0:
+ raise _GiveupOnFastCopy(err)
+
+ raise err
+ else:
+ if sent == 0:
+ break # EOF
+ offset += sent
+
+def _copyfileobj_readinto(fsrc, fdst, length=COPY_BUFSIZE):
+ """readinto()/memoryview() based variant of copyfileobj().
+ *fsrc* must support readinto() method and both files must be
+ open in binary mode.
+ """
+ # Localize variable access to minimize overhead.
+ fsrc_readinto = fsrc.readinto
+ fdst_write = fdst.write
+ with memoryview(bytearray(length)) as mv:
+ while True:
+ n = fsrc_readinto(mv)
+ if not n:
+ break
+ elif n < length:
+ with mv[:n] as smv:
+ fdst.write(smv)
+ else:
+ fdst_write(mv)
+
+def copyfileobj(fsrc, fdst, length=0):
"""copy data from file-like object fsrc to file-like object fdst"""
- # Localize variable access to minimize overhead.
- if not length:
- length = COPY_BUFSIZE
- fsrc_read = fsrc.read
- fdst_write = fdst.write
- while True:
- buf = fsrc_read(length)
+ # Localize variable access to minimize overhead.
+ if not length:
+ length = COPY_BUFSIZE
+ fsrc_read = fsrc.read
+ fdst_write = fdst.write
+ while True:
+ buf = fsrc_read(length)
if not buf:
break
- fdst_write(buf)
+ fdst_write(buf)
def _samefile(src, dst):
# Macintosh, Unix.
- if isinstance(src, os.DirEntry) and hasattr(os.path, 'samestat'):
- try:
- return os.path.samestat(src.stat(), os.stat(dst))
- except OSError:
- return False
-
+ if isinstance(src, os.DirEntry) and hasattr(os.path, 'samestat'):
+ try:
+ return os.path.samestat(src.stat(), os.stat(dst))
+ except OSError:
+ return False
+
if hasattr(os.path, 'samefile'):
try:
return os.path.samefile(src, dst)
@@ -225,74 +225,74 @@ def _samefile(src, dst):
return (os.path.normcase(os.path.abspath(src)) ==
os.path.normcase(os.path.abspath(dst)))
-def _stat(fn):
- return fn.stat() if isinstance(fn, os.DirEntry) else os.stat(fn)
-
-def _islink(fn):
- return fn.is_symlink() if isinstance(fn, os.DirEntry) else os.path.islink(fn)
-
+def _stat(fn):
+ return fn.stat() if isinstance(fn, os.DirEntry) else os.stat(fn)
+
+def _islink(fn):
+ return fn.is_symlink() if isinstance(fn, os.DirEntry) else os.path.islink(fn)
+
def copyfile(src, dst, *, follow_symlinks=True):
- """Copy data from src to dst in the most efficient way possible.
+ """Copy data from src to dst in the most efficient way possible.
If follow_symlinks is not set and src is a symbolic link, a new
symlink will be created instead of copying the file it points to.
"""
- sys.audit("shutil.copyfile", src, dst)
-
+ sys.audit("shutil.copyfile", src, dst)
+
if _samefile(src, dst):
raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
- file_size = 0
- for i, fn in enumerate([src, dst]):
+ file_size = 0
+ for i, fn in enumerate([src, dst]):
try:
- st = _stat(fn)
+ st = _stat(fn)
except OSError:
# File most likely does not exist
pass
else:
# XXX What about other special files? (sockets, devices...)
if stat.S_ISFIFO(st.st_mode):
- fn = fn.path if isinstance(fn, os.DirEntry) else fn
+ fn = fn.path if isinstance(fn, os.DirEntry) else fn
raise SpecialFileError("`%s` is a named pipe" % fn)
- if _WINDOWS and i == 0:
- file_size = st.st_size
+ if _WINDOWS and i == 0:
+ file_size = st.st_size
- if not follow_symlinks and _islink(src):
+ if not follow_symlinks and _islink(src):
os.symlink(os.readlink(src), dst)
else:
- with open(src, 'rb') as fsrc:
- try:
- with open(dst, 'wb') as fdst:
- # macOS
- if _HAS_FCOPYFILE:
- try:
- _fastcopy_fcopyfile(fsrc, fdst, posix._COPYFILE_DATA)
- return dst
- except _GiveupOnFastCopy:
- pass
- # Linux
- elif _USE_CP_SENDFILE:
- try:
- _fastcopy_sendfile(fsrc, fdst)
- return dst
- except _GiveupOnFastCopy:
- pass
- # Windows, see:
- # https://github.com/python/cpython/pull/7160#discussion_r195405230
- elif _WINDOWS and file_size > 0:
- _copyfileobj_readinto(fsrc, fdst, min(file_size, COPY_BUFSIZE))
- return dst
-
- copyfileobj(fsrc, fdst)
-
- # Issue 43219, raise a less confusing exception
- except IsADirectoryError as e:
- if not os.path.exists(dst):
- raise FileNotFoundError(f'Directory does not exist: {dst}') from e
- else:
- raise
-
+ with open(src, 'rb') as fsrc:
+ try:
+ with open(dst, 'wb') as fdst:
+ # macOS
+ if _HAS_FCOPYFILE:
+ try:
+ _fastcopy_fcopyfile(fsrc, fdst, posix._COPYFILE_DATA)
+ return dst
+ except _GiveupOnFastCopy:
+ pass
+ # Linux
+ elif _USE_CP_SENDFILE:
+ try:
+ _fastcopy_sendfile(fsrc, fdst)
+ return dst
+ except _GiveupOnFastCopy:
+ pass
+ # Windows, see:
+ # https://github.com/python/cpython/pull/7160#discussion_r195405230
+ elif _WINDOWS and file_size > 0:
+ _copyfileobj_readinto(fsrc, fdst, min(file_size, COPY_BUFSIZE))
+ return dst
+
+ copyfileobj(fsrc, fdst)
+
+ # Issue 43219, raise a less confusing exception
+ except IsADirectoryError as e:
+ if not os.path.exists(dst):
+ raise FileNotFoundError(f'Directory does not exist: {dst}') from e
+ else:
+ raise
+
return dst
def copymode(src, dst, *, follow_symlinks=True):
@@ -303,15 +303,15 @@ def copymode(src, dst, *, follow_symlinks=True):
(e.g. Linux) this method does nothing.
"""
- sys.audit("shutil.copymode", src, dst)
-
- if not follow_symlinks and _islink(src) and os.path.islink(dst):
+ sys.audit("shutil.copymode", src, dst)
+
+ if not follow_symlinks and _islink(src) and os.path.islink(dst):
if hasattr(os, 'lchmod'):
stat_func, chmod_func = os.lstat, os.lchmod
else:
return
else:
- stat_func, chmod_func = _stat, os.chmod
+ stat_func, chmod_func = _stat, os.chmod
st = stat_func(src)
chmod_func(dst, stat.S_IMODE(st.st_mode))
@@ -329,7 +329,7 @@ if hasattr(os, 'listxattr'):
try:
names = os.listxattr(src, follow_symlinks=follow_symlinks)
except OSError as e:
- if e.errno not in (errno.ENOTSUP, errno.ENODATA, errno.EINVAL):
+ if e.errno not in (errno.ENOTSUP, errno.ENODATA, errno.EINVAL):
raise
return
for name in names:
@@ -337,8 +337,8 @@ if hasattr(os, 'listxattr'):
value = os.getxattr(src, name, follow_symlinks=follow_symlinks)
os.setxattr(dst, name, value, follow_symlinks=follow_symlinks)
except OSError as e:
- if e.errno not in (errno.EPERM, errno.ENOTSUP, errno.ENODATA,
- errno.EINVAL):
+ if e.errno not in (errno.EPERM, errno.ENOTSUP, errno.ENODATA,
+ errno.EINVAL):
raise
else:
def _copyxattr(*args, **kwargs):
@@ -350,19 +350,19 @@ def copystat(src, dst, *, follow_symlinks=True):
Copy the permission bits, last access time, last modification time, and
flags from `src` to `dst`. On Linux, copystat() also copies the "extended
attributes" where possible. The file contents, owner, and group are
- unaffected. `src` and `dst` are path-like objects or path names given as
- strings.
+ unaffected. `src` and `dst` are path-like objects or path names given as
+ strings.
If the optional flag `follow_symlinks` is not set, symlinks aren't
followed if and only if both `src` and `dst` are symlinks.
"""
- sys.audit("shutil.copystat", src, dst)
-
+ sys.audit("shutil.copystat", src, dst)
+
def _nop(*args, ns=None, follow_symlinks=None):
pass
# follow symlinks (aka don't not follow symlinks)
- follow = follow_symlinks or not (_islink(src) and os.path.islink(dst))
+ follow = follow_symlinks or not (_islink(src) and os.path.islink(dst))
if follow:
# use the real function if it exists
def lookup(name):
@@ -376,16 +376,16 @@ def copystat(src, dst, *, follow_symlinks=True):
return fn
return _nop
- if isinstance(src, os.DirEntry):
- st = src.stat(follow_symlinks=follow)
- else:
- st = lookup("stat")(src, follow_symlinks=follow)
+ if isinstance(src, os.DirEntry):
+ st = src.stat(follow_symlinks=follow)
+ else:
+ st = lookup("stat")(src, follow_symlinks=follow)
mode = stat.S_IMODE(st.st_mode)
lookup("utime")(dst, ns=(st.st_atime_ns, st.st_mtime_ns),
follow_symlinks=follow)
- # We must copy extended attributes before the file is (potentially)
- # chmod()'ed read-only, otherwise setxattr() will error with -EACCES.
- _copyxattr(src, dst, follow_symlinks=follow)
+ # We must copy extended attributes before the file is (potentially)
+ # chmod()'ed read-only, otherwise setxattr() will error with -EACCES.
+ _copyxattr(src, dst, follow_symlinks=follow)
try:
lookup("chmod")(dst, mode, follow_symlinks=follow)
except NotImplementedError:
@@ -457,55 +457,55 @@ def ignore_patterns(*patterns):
return set(ignored_names)
return _ignore_patterns
-def _copytree(entries, src, dst, symlinks, ignore, copy_function,
- ignore_dangling_symlinks, dirs_exist_ok=False):
+def _copytree(entries, src, dst, symlinks, ignore, copy_function,
+ ignore_dangling_symlinks, dirs_exist_ok=False):
if ignore is not None:
- ignored_names = ignore(os.fspath(src), [x.name for x in entries])
+ ignored_names = ignore(os.fspath(src), [x.name for x in entries])
else:
ignored_names = set()
- os.makedirs(dst, exist_ok=dirs_exist_ok)
+ os.makedirs(dst, exist_ok=dirs_exist_ok)
errors = []
- use_srcentry = copy_function is copy2 or copy_function is copy
-
- for srcentry in entries:
- if srcentry.name in ignored_names:
+ use_srcentry = copy_function is copy2 or copy_function is copy
+
+ for srcentry in entries:
+ if srcentry.name in ignored_names:
continue
- srcname = os.path.join(src, srcentry.name)
- dstname = os.path.join(dst, srcentry.name)
- srcobj = srcentry if use_srcentry else srcname
+ srcname = os.path.join(src, srcentry.name)
+ dstname = os.path.join(dst, srcentry.name)
+ srcobj = srcentry if use_srcentry else srcname
try:
- is_symlink = srcentry.is_symlink()
- if is_symlink and os.name == 'nt':
- # Special check for directory junctions, which appear as
- # symlinks but we want to recurse.
- lstat = srcentry.stat(follow_symlinks=False)
- if lstat.st_reparse_tag == stat.IO_REPARSE_TAG_MOUNT_POINT:
- is_symlink = False
- if is_symlink:
+ is_symlink = srcentry.is_symlink()
+ if is_symlink and os.name == 'nt':
+ # Special check for directory junctions, which appear as
+ # symlinks but we want to recurse.
+ lstat = srcentry.stat(follow_symlinks=False)
+ if lstat.st_reparse_tag == stat.IO_REPARSE_TAG_MOUNT_POINT:
+ is_symlink = False
+ if is_symlink:
linkto = os.readlink(srcname)
if symlinks:
# We can't just leave it to `copy_function` because legacy
# code with a custom `copy_function` may rely on copytree
# doing the right thing.
os.symlink(linkto, dstname)
- copystat(srcobj, dstname, follow_symlinks=not symlinks)
+ copystat(srcobj, dstname, follow_symlinks=not symlinks)
else:
# ignore dangling symlink if the flag is on
if not os.path.exists(linkto) and ignore_dangling_symlinks:
continue
- # otherwise let the copy occur. copy2 will raise an error
- if srcentry.is_dir():
- copytree(srcobj, dstname, symlinks, ignore,
- copy_function, dirs_exist_ok=dirs_exist_ok)
+ # otherwise let the copy occur. copy2 will raise an error
+ if srcentry.is_dir():
+ copytree(srcobj, dstname, symlinks, ignore,
+ copy_function, dirs_exist_ok=dirs_exist_ok)
else:
- copy_function(srcobj, dstname)
- elif srcentry.is_dir():
- copytree(srcobj, dstname, symlinks, ignore, copy_function,
- dirs_exist_ok=dirs_exist_ok)
+ copy_function(srcobj, dstname)
+ elif srcentry.is_dir():
+ copytree(srcobj, dstname, symlinks, ignore, copy_function,
+ dirs_exist_ok=dirs_exist_ok)
else:
# Will raise a SpecialFileError for unsupported file types
- copy_function(srcobj, dstname)
+ copy_function(srcobj, dstname)
# catch the Error from the recursive copytree so that we can
# continue with other files
except Error as err:
@@ -522,83 +522,83 @@ def _copytree(entries, src, dst, symlinks, ignore, copy_function,
raise Error(errors)
return dst
-def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
- ignore_dangling_symlinks=False, dirs_exist_ok=False):
- """Recursively copy a directory tree and return the destination directory.
-
- dirs_exist_ok dictates whether to raise an exception in case dst or any
- missing parent directory already exists.
-
- If exception(s) occur, an Error is raised with a list of reasons.
-
- If the optional symlinks flag is true, symbolic links in the
- source tree result in symbolic links in the destination tree; if
- it is false, the contents of the files pointed to by symbolic
- links are copied. If the file pointed by the symlink doesn't
- exist, an exception will be added in the list of errors raised in
- an Error exception at the end of the copy process.
-
- You can set the optional ignore_dangling_symlinks flag to true if you
- want to silence this exception. Notice that this has no effect on
- platforms that don't support os.symlink.
-
- The optional ignore argument is a callable. If given, it
- is called with the `src` parameter, which is the directory
- being visited by copytree(), and `names` which is the list of
- `src` contents, as returned by os.listdir():
-
- callable(src, names) -> ignored_names
-
- Since copytree() is called recursively, the callable will be
- called once for each directory that is copied. It returns a
- list of names relative to the `src` directory that should
- not be copied.
-
- The optional copy_function argument is a callable that will be used
- to copy each file. It will be called with the source path and the
- destination path as arguments. By default, copy2() is used, but any
- function that supports the same signature (like copy()) can be used.
-
- """
- sys.audit("shutil.copytree", src, dst)
- with os.scandir(src) as itr:
- entries = list(itr)
- return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
- ignore=ignore, copy_function=copy_function,
- ignore_dangling_symlinks=ignore_dangling_symlinks,
- dirs_exist_ok=dirs_exist_ok)
-
-if hasattr(os.stat_result, 'st_file_attributes'):
- # Special handling for directory junctions to make them behave like
- # symlinks for shutil.rmtree, since in general they do not appear as
- # regular links.
- def _rmtree_isdir(entry):
- try:
- st = entry.stat(follow_symlinks=False)
- return (stat.S_ISDIR(st.st_mode) and not
- (st.st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT
- and st.st_reparse_tag == stat.IO_REPARSE_TAG_MOUNT_POINT))
- except OSError:
- return False
-
- def _rmtree_islink(path):
- try:
- st = os.lstat(path)
- return (stat.S_ISLNK(st.st_mode) or
- (st.st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT
- and st.st_reparse_tag == stat.IO_REPARSE_TAG_MOUNT_POINT))
- except OSError:
- return False
-else:
- def _rmtree_isdir(entry):
- try:
- return entry.is_dir(follow_symlinks=False)
- except OSError:
- return False
-
- def _rmtree_islink(path):
- return os.path.islink(path)
-
+def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
+ ignore_dangling_symlinks=False, dirs_exist_ok=False):
+ """Recursively copy a directory tree and return the destination directory.
+
+ dirs_exist_ok dictates whether to raise an exception in case dst or any
+ missing parent directory already exists.
+
+ If exception(s) occur, an Error is raised with a list of reasons.
+
+ If the optional symlinks flag is true, symbolic links in the
+ source tree result in symbolic links in the destination tree; if
+ it is false, the contents of the files pointed to by symbolic
+ links are copied. If the file pointed by the symlink doesn't
+ exist, an exception will be added in the list of errors raised in
+ an Error exception at the end of the copy process.
+
+ You can set the optional ignore_dangling_symlinks flag to true if you
+ want to silence this exception. Notice that this has no effect on
+ platforms that don't support os.symlink.
+
+ The optional ignore argument is a callable. If given, it
+ is called with the `src` parameter, which is the directory
+ being visited by copytree(), and `names` which is the list of
+ `src` contents, as returned by os.listdir():
+
+ callable(src, names) -> ignored_names
+
+ Since copytree() is called recursively, the callable will be
+ called once for each directory that is copied. It returns a
+ list of names relative to the `src` directory that should
+ not be copied.
+
+ The optional copy_function argument is a callable that will be used
+ to copy each file. It will be called with the source path and the
+ destination path as arguments. By default, copy2() is used, but any
+ function that supports the same signature (like copy()) can be used.
+
+ """
+ sys.audit("shutil.copytree", src, dst)
+ with os.scandir(src) as itr:
+ entries = list(itr)
+ return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
+ ignore=ignore, copy_function=copy_function,
+ ignore_dangling_symlinks=ignore_dangling_symlinks,
+ dirs_exist_ok=dirs_exist_ok)
+
+if hasattr(os.stat_result, 'st_file_attributes'):
+ # Special handling for directory junctions to make them behave like
+ # symlinks for shutil.rmtree, since in general they do not appear as
+ # regular links.
+ def _rmtree_isdir(entry):
+ try:
+ st = entry.stat(follow_symlinks=False)
+ return (stat.S_ISDIR(st.st_mode) and not
+ (st.st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT
+ and st.st_reparse_tag == stat.IO_REPARSE_TAG_MOUNT_POINT))
+ except OSError:
+ return False
+
+ def _rmtree_islink(path):
+ try:
+ st = os.lstat(path)
+ return (stat.S_ISLNK(st.st_mode) or
+ (st.st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT
+ and st.st_reparse_tag == stat.IO_REPARSE_TAG_MOUNT_POINT))
+ except OSError:
+ return False
+else:
+ def _rmtree_isdir(entry):
+ try:
+ return entry.is_dir(follow_symlinks=False)
+ except OSError:
+ return False
+
+ def _rmtree_islink(path):
+ return os.path.islink(path)
+
# version vulnerable to race conditions
def _rmtree_unsafe(path, onerror):
try:
@@ -609,7 +609,7 @@ def _rmtree_unsafe(path, onerror):
entries = []
for entry in entries:
fullname = entry.path
- if _rmtree_isdir(entry):
+ if _rmtree_isdir(entry):
try:
if entry.is_symlink():
# This can only happen if someone replaces
@@ -645,14 +645,14 @@ def _rmtree_safe_fd(topfd, path, onerror):
is_dir = entry.is_dir(follow_symlinks=False)
except OSError:
is_dir = False
- else:
- if is_dir:
- try:
- orig_st = entry.stat(follow_symlinks=False)
- is_dir = stat.S_ISDIR(orig_st.st_mode)
- except OSError:
- onerror(os.lstat, fullname, sys.exc_info())
- continue
+ else:
+ if is_dir:
+ try:
+ orig_st = entry.stat(follow_symlinks=False)
+ is_dir = stat.S_ISDIR(orig_st.st_mode)
+ except OSError:
+ onerror(os.lstat, fullname, sys.exc_info())
+ continue
if is_dir:
try:
dirfd = os.open(entry.name, os.O_RDONLY, dir_fd=topfd)
@@ -699,7 +699,7 @@ def rmtree(path, ignore_errors=False, onerror=None):
is false and onerror is None, an exception is raised.
"""
- sys.audit("shutil.rmtree", path)
+ sys.audit("shutil.rmtree", path)
if ignore_errors:
def onerror(*args):
pass
@@ -720,7 +720,7 @@ def rmtree(path, ignore_errors=False, onerror=None):
try:
fd = os.open(path, os.O_RDONLY)
except Exception:
- onerror(os.open, path, sys.exc_info())
+ onerror(os.open, path, sys.exc_info())
return
try:
if os.path.samestat(orig_st, os.fstat(fd)):
@@ -739,7 +739,7 @@ def rmtree(path, ignore_errors=False, onerror=None):
os.close(fd)
else:
try:
- if _rmtree_islink(path):
+ if _rmtree_islink(path):
# symlinks to directories are forbidden, see bug #1669
raise OSError("Cannot call rmtree on a symbolic link")
except OSError:
@@ -753,20 +753,20 @@ def rmtree(path, ignore_errors=False, onerror=None):
rmtree.avoids_symlink_attacks = _use_fd_functions
def _basename(path):
- """A basename() variant which first strips the trailing slash, if present.
- Thus we always get the last component of the path, even for directories.
-
- path: Union[PathLike, str]
-
- e.g.
- >>> os.path.basename('/bar/foo')
- 'foo'
- >>> os.path.basename('/bar/foo/')
- ''
- >>> _basename('/bar/foo/')
- 'foo'
- """
- path = os.fspath(path)
+ """A basename() variant which first strips the trailing slash, if present.
+ Thus we always get the last component of the path, even for directories.
+
+ path: Union[PathLike, str]
+
+ e.g.
+ >>> os.path.basename('/bar/foo')
+ 'foo'
+ >>> os.path.basename('/bar/foo/')
+ ''
+ >>> _basename('/bar/foo/')
+ 'foo'
+ """
+ path = os.fspath(path)
sep = os.path.sep + (os.path.altsep or '')
return os.path.basename(path.rstrip(sep))
@@ -796,7 +796,7 @@ def move(src, dst, copy_function=copy2):
the issues this implementation glosses over.
"""
- sys.audit("shutil.move", src, dst)
+ sys.audit("shutil.move", src, dst)
real_dst = dst
if os.path.isdir(dst):
if _samefile(src, dst):
@@ -805,10 +805,10 @@ def move(src, dst, copy_function=copy2):
os.rename(src, dst)
return
- # Using _basename instead of os.path.basename is important, as we must
- # ignore any trailing slash to avoid the basename returning ''
+ # Using _basename instead of os.path.basename is important, as we must
+ # ignore any trailing slash to avoid the basename returning ''
real_dst = os.path.join(dst, _basename(src))
-
+
if os.path.exists(real_dst):
raise Error("Destination path '%s' already exists" % real_dst)
try:
@@ -822,12 +822,12 @@ def move(src, dst, copy_function=copy2):
if _destinsrc(src, dst):
raise Error("Cannot move a directory '%s' into itself"
" '%s'." % (src, dst))
- if (_is_immutable(src)
- or (not os.access(src, os.W_OK) and os.listdir(src)
- and sys.platform == 'darwin')):
- raise PermissionError("Cannot move the non-empty directory "
- "'%s': Lacking write permission to '%s'."
- % (src, src))
+ if (_is_immutable(src)
+ or (not os.access(src, os.W_OK) and os.listdir(src)
+ and sys.platform == 'darwin')):
+ raise PermissionError("Cannot move the non-empty directory "
+ "'%s': Lacking write permission to '%s'."
+ % (src, src))
copytree(src, real_dst, copy_function=copy_function,
symlinks=True)
rmtree(src)
@@ -845,11 +845,11 @@ def _destinsrc(src, dst):
dst += os.path.sep
return dst.startswith(src)
-def _is_immutable(src):
- st = _stat(src)
- immutable_states = [stat.UF_IMMUTABLE, stat.SF_IMMUTABLE]
- return hasattr(st, 'st_flags') and st.st_flags in immutable_states
-
+def _is_immutable(src):
+ st = _stat(src)
+ immutable_states = [stat.UF_IMMUTABLE, stat.SF_IMMUTABLE]
+ return hasattr(st, 'st_flags') and st.st_flags in immutable_states
+
def _get_gid(name):
"""Returns a gid, given a group name."""
if getgrnam is None or name is None:
@@ -1052,7 +1052,7 @@ def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,
'owner' and 'group' are used when creating a tar archive. By default,
uses the current owner and group.
"""
- sys.audit("shutil.make_archive", base_name, format, root_dir, base_dir)
+ sys.audit("shutil.make_archive", base_name, format, root_dir, base_dir)
save_cwd = os.getcwd()
if root_dir is not None:
if logger is not None:
@@ -1168,16 +1168,16 @@ def _unpack_zipfile(filename, extract_dir):
if name.startswith('/') or '..' in name:
continue
- targetpath = os.path.join(extract_dir, *name.split('/'))
- if not targetpath:
+ targetpath = os.path.join(extract_dir, *name.split('/'))
+ if not targetpath:
continue
- _ensure_directory(targetpath)
+ _ensure_directory(targetpath)
if not name.endswith('/'):
# file
- with zip.open(name, 'r') as source, \
- open(targetpath, 'wb') as target:
- copyfileobj(source, target)
+ with zip.open(name, 'r') as source, \
+ open(targetpath, 'wb') as target:
+ copyfileobj(source, target)
finally:
zip.close()
@@ -1234,8 +1234,8 @@ def unpack_archive(filename, extract_dir=None, format=None):
In case none is found, a ValueError is raised.
"""
- sys.audit("shutil.unpack_archive", filename, extract_dir, format)
-
+ sys.audit("shutil.unpack_archive", filename, extract_dir, format)
+
if extract_dir is None:
extract_dir = os.getcwd()
@@ -1281,7 +1281,7 @@ if hasattr(os, 'statvfs'):
used = (st.f_blocks - st.f_bfree) * st.f_frsize
return _ntuple_diskusage(total, used, free)
-elif _WINDOWS:
+elif _WINDOWS:
__all__.append('disk_usage')
_ntuple_diskusage = collections.namedtuple('usage', 'total used free')
@@ -1303,7 +1303,7 @@ def chown(path, user=None, group=None):
user and group can be the uid/gid or the user/group names, and in that case,
they are converted to their respective uid/gid.
"""
- sys.audit('shutil.chown', path, user, group)
+ sys.audit('shutil.chown', path, user, group)
if user is None and group is None:
raise ValueError("user and/or group must be set")
@@ -1374,15 +1374,15 @@ def get_terminal_size(fallback=(80, 24)):
return os.terminal_size((columns, lines))
-
-# Check that a given file can be accessed with the correct mode.
-# Additionally check that `file` is not a directory, as on Windows
-# directories pass the os.access check.
-def _access_check(fn, mode):
- return (os.path.exists(fn) and os.access(fn, mode)
- and not os.path.isdir(fn))
-
-
+
+# Check that a given file can be accessed with the correct mode.
+# Additionally check that `file` is not a directory, as on Windows
+# directories pass the os.access check.
+def _access_check(fn, mode):
+ return (os.path.exists(fn) and os.access(fn, mode)
+ and not os.path.isdir(fn))
+
+
def which(cmd, mode=os.F_OK | os.X_OK, path=None):
"""Given a command, mode, and a PATH string, return the path which
conforms to the given mode on the PATH, or None if there is no such
@@ -1401,44 +1401,44 @@ def which(cmd, mode=os.F_OK | os.X_OK, path=None):
return cmd
return None
- use_bytes = isinstance(cmd, bytes)
-
+ use_bytes = isinstance(cmd, bytes)
+
if path is None:
- path = os.environ.get("PATH", None)
- if path is None:
- try:
- path = os.confstr("CS_PATH")
- except (AttributeError, ValueError):
- # os.confstr() or CS_PATH is not available
- path = os.defpath
- # bpo-35755: Don't use os.defpath if the PATH environment variable is
- # set to an empty string
-
- # PATH='' doesn't match, whereas PATH=':' looks in the current directory
+ path = os.environ.get("PATH", None)
+ if path is None:
+ try:
+ path = os.confstr("CS_PATH")
+ except (AttributeError, ValueError):
+ # os.confstr() or CS_PATH is not available
+ path = os.defpath
+ # bpo-35755: Don't use os.defpath if the PATH environment variable is
+ # set to an empty string
+
+ # PATH='' doesn't match, whereas PATH=':' looks in the current directory
if not path:
return None
- if use_bytes:
- path = os.fsencode(path)
- path = path.split(os.fsencode(os.pathsep))
- else:
- path = os.fsdecode(path)
- path = path.split(os.pathsep)
-
+ if use_bytes:
+ path = os.fsencode(path)
+ path = path.split(os.fsencode(os.pathsep))
+ else:
+ path = os.fsdecode(path)
+ path = path.split(os.pathsep)
+
if sys.platform == "win32":
# The current directory takes precedence on Windows.
- curdir = os.curdir
- if use_bytes:
- curdir = os.fsencode(curdir)
- if curdir not in path:
- path.insert(0, curdir)
+ curdir = os.curdir
+ if use_bytes:
+ curdir = os.fsencode(curdir)
+ if curdir not in path:
+ path.insert(0, curdir)
# PATHEXT is necessary to check on Windows.
- pathext_source = os.getenv("PATHEXT") or _WIN_DEFAULT_PATHEXT
- pathext = [ext for ext in pathext_source.split(os.pathsep) if ext]
-
- if use_bytes:
- pathext = [os.fsencode(ext) for ext in pathext]
+ pathext_source = os.getenv("PATHEXT") or _WIN_DEFAULT_PATHEXT
+ pathext = [ext for ext in pathext_source.split(os.pathsep) if ext]
+
+ if use_bytes:
+ pathext = [os.fsencode(ext) for ext in pathext]
# See if the given file matches any of the expected path extensions.
# This will allow us to short circuit when given "python.exe".
# If it does match, only test that one, otherwise we have to try
diff --git a/contrib/tools/python3/src/Lib/signal.py b/contrib/tools/python3/src/Lib/signal.py
index fbb0b5b19e..50b215b29d 100644
--- a/contrib/tools/python3/src/Lib/signal.py
+++ b/contrib/tools/python3/src/Lib/signal.py
@@ -4,19 +4,19 @@ from enum import IntEnum as _IntEnum
_globals = globals()
-_IntEnum._convert_(
+_IntEnum._convert_(
'Signals', __name__,
lambda name:
name.isupper()
and (name.startswith('SIG') and not name.startswith('SIG_'))
or name.startswith('CTRL_'))
-_IntEnum._convert_(
+_IntEnum._convert_(
'Handlers', __name__,
lambda name: name in ('SIG_DFL', 'SIG_IGN'))
if 'pthread_sigmask' in _globals:
- _IntEnum._convert_(
+ _IntEnum._convert_(
'Sigmasks', __name__,
lambda name: name in ('SIG_BLOCK', 'SIG_UNBLOCK', 'SIG_SETMASK'))
@@ -41,16 +41,16 @@ def _enum_to_int(value):
return value
-# Similar to functools.wraps(), but only assign __doc__.
-# __module__ should be preserved,
-# __name__ and __qualname__ are already fine,
-# __annotations__ is not set.
-def _wraps(wrapped):
- def decorator(wrapper):
- wrapper.__doc__ = wrapped.__doc__
- return wrapper
- return decorator
-
+# Similar to functools.wraps(), but only assign __doc__.
+# __module__ should be preserved,
+# __name__ and __qualname__ are already fine,
+# __annotations__ is not set.
+def _wraps(wrapped):
+ def decorator(wrapper):
+ wrapper.__doc__ = wrapped.__doc__
+ return wrapper
+ return decorator
+
@_wraps(_signal.signal)
def signal(signalnum, handler):
handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
@@ -73,7 +73,7 @@ if 'pthread_sigmask' in _globals:
if 'sigpending' in _globals:
@_wraps(_signal.sigpending)
def sigpending():
- return {_int_to_enum(x, Signals) for x in _signal.sigpending()}
+ return {_int_to_enum(x, Signals) for x in _signal.sigpending()}
if 'sigwait' in _globals:
@@ -82,11 +82,11 @@ if 'sigwait' in _globals:
retsig = _signal.sigwait(sigset)
return _int_to_enum(retsig, Signals)
-
-if 'valid_signals' in _globals:
- @_wraps(_signal.valid_signals)
- def valid_signals():
- return {_int_to_enum(x, Signals) for x in _signal.valid_signals()}
-
-
+
+if 'valid_signals' in _globals:
+ @_wraps(_signal.valid_signals)
+ def valid_signals():
+ return {_int_to_enum(x, Signals) for x in _signal.valid_signals()}
+
+
del _globals, _wraps
diff --git a/contrib/tools/python3/src/Lib/site.py b/contrib/tools/python3/src/Lib/site.py
index 0f702bdd91..19c10bc07f 100644
--- a/contrib/tools/python3/src/Lib/site.py
+++ b/contrib/tools/python3/src/Lib/site.py
@@ -73,7 +73,7 @@ import sys
import os
import builtins
import _sitebuiltins
-import io
+import io
# Prefixes for site-packages; add additional prefixes like /usr/local here
PREFIXES = [sys.prefix, sys.exec_prefix]
@@ -157,7 +157,7 @@ def addpackage(sitedir, name, known_paths):
reset = False
fullname = os.path.join(sitedir, name)
try:
- f = io.TextIOWrapper(io.open_code(fullname))
+ f = io.TextIOWrapper(io.open_code(fullname))
except OSError:
return
with f:
@@ -334,22 +334,22 @@ def getsitepackages(prefixes=None):
continue
seen.add(prefix)
- libdirs = [sys.platlibdir]
- if sys.platlibdir != "lib":
- libdirs.append("lib")
-
+ libdirs = [sys.platlibdir]
+ if sys.platlibdir != "lib":
+ libdirs.append("lib")
+
if os.sep == '/':
- for libdir in libdirs:
- path = os.path.join(prefix, libdir,
- "python%d.%d" % sys.version_info[:2],
- "site-packages")
- sitepackages.append(path)
+ for libdir in libdirs:
+ path = os.path.join(prefix, libdir,
+ "python%d.%d" % sys.version_info[:2],
+ "site-packages")
+ sitepackages.append(path)
else:
sitepackages.append(prefix)
-
- for libdir in libdirs:
- path = os.path.join(prefix, libdir, "site-packages")
- sitepackages.append(path)
+
+ for libdir in libdirs:
+ path = os.path.join(prefix, libdir, "site-packages")
+ sitepackages.append(path)
return sitepackages
def addsitepackages(known_paths, prefixes=None):
@@ -453,9 +453,9 @@ def enablerlcompleter():
def write_history():
try:
readline.write_history_file(history)
- except OSError:
- # bpo-19891, bpo-41193: Home directory does not exist
- # or is not writable, or the filesystem is read-only.
+ except OSError:
+ # bpo-19891, bpo-41193: Home directory does not exist
+ # or is not writable, or the filesystem is read-only.
pass
atexit.register(write_history)
@@ -599,7 +599,7 @@ def _script():
Exit codes with --user-base or --user-site:
0 - user site directory is enabled
1 - user site directory is disabled by user
- 2 - user site directory is disabled by super user
+ 2 - user site directory is disabled by super user
or for security reasons
>2 - unknown error
"""
diff --git a/contrib/tools/python3/src/Lib/smtpd.py b/contrib/tools/python3/src/Lib/smtpd.py
index 177eaeea1a..8f1a22e937 100644
--- a/contrib/tools/python3/src/Lib/smtpd.py
+++ b/contrib/tools/python3/src/Lib/smtpd.py
@@ -779,8 +779,8 @@ class PureProxy(SMTPServer):
class MailmanProxy(PureProxy):
def __init__(self, *args, **kwargs):
- warn('MailmanProxy is deprecated and will be removed '
- 'in future', DeprecationWarning, 2)
+ warn('MailmanProxy is deprecated and will be removed '
+ 'in future', DeprecationWarning, 2)
if 'enable_SMTPUTF8' in kwargs and kwargs['enable_SMTPUTF8']:
raise ValueError("MailmanProxy does not support SMTPUTF8.")
super(PureProxy, self).__init__(*args, **kwargs)
diff --git a/contrib/tools/python3/src/Lib/smtplib.py b/contrib/tools/python3/src/Lib/smtplib.py
index eec00e7d76..b1fd45a003 100644
--- a/contrib/tools/python3/src/Lib/smtplib.py
+++ b/contrib/tools/python3/src/Lib/smtplib.py
@@ -54,7 +54,7 @@ import datetime
import sys
from email.base64mime import body_encode as encode_base64
-__all__ = ["SMTPException", "SMTPNotSupportedError", "SMTPServerDisconnected", "SMTPResponseException",
+__all__ = ["SMTPException", "SMTPNotSupportedError", "SMTPServerDisconnected", "SMTPResponseException",
"SMTPSenderRefused", "SMTPRecipientsRefused", "SMTPDataError",
"SMTPConnectError", "SMTPHeloError", "SMTPAuthenticationError",
"quoteaddr", "quotedata", "SMTP"]
@@ -64,7 +64,7 @@ SMTP_SSL_PORT = 465
CRLF = "\r\n"
bCRLF = b"\r\n"
_MAXLINE = 8192 # more than 8 times larger than RFC 821, 4.5.3
-_MAXCHALLENGE = 5 # Maximum number of AUTH challenges sent
+_MAXCHALLENGE = 5 # Maximum number of AUTH challenges sent
OLDSTYLE_AUTH = re.compile(r"auth=(.*)", re.I)
@@ -217,8 +217,8 @@ class SMTP:
method called 'sendmail' that will do an entire mail transaction.
"""
debuglevel = 0
-
- sock = None
+
+ sock = None
file = None
helo_resp = None
ehlo_msg = "ehlo"
@@ -231,8 +231,8 @@ class SMTP:
source_address=None):
"""Initialize a new instance.
- If specified, `host` is the name of the remote host to which to
- connect. If specified, `port` specifies the port to which to connect.
+ If specified, `host` is the name of the remote host to which to
+ connect. If specified, `port` specifies the port to which to connect.
By default, smtplib.SMTP_PORT is used. If a host is specified the
connect method is called, and if it returns anything other than a
success code an SMTPConnectError is raised. If specified,
@@ -249,7 +249,7 @@ class SMTP:
self.esmtp_features = {}
self.command_encoding = 'ascii'
self.source_address = source_address
- self._auth_challenge_count = 0
+ self._auth_challenge_count = 0
if host:
(code, msg) = self.connect(host, port)
@@ -305,8 +305,8 @@ class SMTP:
def _get_socket(self, host, port, timeout):
# This makes it simpler for SMTP_SSL to use the SMTP connect code
# and just alter the socket connection bit.
- if timeout is not None and not timeout:
- raise ValueError('Non-blocking socket (timeout=0) is not supported')
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
if self.debuglevel > 0:
self._print_debug('connect: to', (host, port), self.source_address)
return socket.create_connection((host, port), timeout,
@@ -337,7 +337,7 @@ class SMTP:
raise OSError("nonnumeric port")
if not port:
port = self.default_port
- sys.audit("smtplib.connect", self, host, port)
+ sys.audit("smtplib.connect", self, host, port)
self.sock = self._get_socket(host, port, self.timeout)
self.file = None
(code, msg) = self.getreply()
@@ -349,13 +349,13 @@ class SMTP:
"""Send `s' to the server."""
if self.debuglevel > 0:
self._print_debug('send:', repr(s))
- if self.sock:
+ if self.sock:
if isinstance(s, str):
# send is used by the 'data' command, where command_encoding
# should not be used, but 'data' needs to convert the string to
# binary itself anyway, so that's not a problem.
s = s.encode(self.command_encoding)
- sys.audit("smtplib.send", self, s)
+ sys.audit("smtplib.send", self, s)
try:
self.sock.sendall(s)
except OSError:
@@ -367,15 +367,15 @@ class SMTP:
def putcmd(self, cmd, args=""):
"""Send a command to the server."""
if args == "":
- s = cmd
+ s = cmd
else:
- s = f'{cmd} {args}'
- if '\r' in s or '\n' in s:
- s = s.replace('\n', '\\n').replace('\r', '\\r')
- raise ValueError(
- f'command and arguments contain prohibited newline characters: {s}'
- )
- self.send(f'{s}{CRLF}')
+ s = f'{cmd} {args}'
+ if '\r' in s or '\n' in s:
+ s = s.replace('\n', '\\n').replace('\r', '\\r')
+ raise ValueError(
+ f'command and arguments contain prohibited newline characters: {s}'
+ )
+ self.send(f'{s}{CRLF}')
def getreply(self):
"""Get a reply from the server.
@@ -640,23 +640,23 @@ class SMTP:
if initial_response is not None:
response = encode_base64(initial_response.encode('ascii'), eol='')
(code, resp) = self.docmd("AUTH", mechanism + " " + response)
- self._auth_challenge_count = 1
+ self._auth_challenge_count = 1
else:
(code, resp) = self.docmd("AUTH", mechanism)
- self._auth_challenge_count = 0
+ self._auth_challenge_count = 0
# If server responds with a challenge, send the response.
- while code == 334:
- self._auth_challenge_count += 1
+ while code == 334:
+ self._auth_challenge_count += 1
challenge = base64.decodebytes(resp)
response = encode_base64(
authobject(challenge).encode('ascii'), eol='')
(code, resp) = self.docmd(response)
- # If server keeps sending challenges, something is wrong.
- if self._auth_challenge_count > _MAXCHALLENGE:
- raise SMTPException(
- "Server AUTH mechanism infinite loop. Last response: "
- + repr((code, resp))
- )
+ # If server keeps sending challenges, something is wrong.
+ if self._auth_challenge_count > _MAXCHALLENGE:
+ raise SMTPException(
+ "Server AUTH mechanism infinite loop. Last response: "
+ + repr((code, resp))
+ )
if code in (235, 503):
return (code, resp)
raise SMTPAuthenticationError(code, resp)
@@ -678,7 +678,7 @@ class SMTP:
def auth_login(self, challenge=None):
""" Authobject to use with LOGIN authentication. Requires self.user and
self.password to be set."""
- if challenge is None or self._auth_challenge_count < 2:
+ if challenge is None or self._auth_challenge_count < 2:
return self.user
else:
return self.password
@@ -1048,12 +1048,12 @@ if _have_ssl:
keyfile=keyfile)
self.context = context
SMTP.__init__(self, host, port, local_hostname, timeout,
- source_address)
+ source_address)
def _get_socket(self, host, port, timeout):
if self.debuglevel > 0:
self._print_debug('connect:', (host, port))
- new_socket = super()._get_socket(host, port, timeout)
+ new_socket = super()._get_socket(host, port, timeout)
new_socket = self.context.wrap_socket(new_socket,
server_hostname=self._host)
return new_socket
@@ -1082,24 +1082,24 @@ class LMTP(SMTP):
ehlo_msg = "lhlo"
def __init__(self, host='', port=LMTP_PORT, local_hostname=None,
- source_address=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
+ source_address=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
"""Initialize a new instance."""
- super().__init__(host, port, local_hostname=local_hostname,
- source_address=source_address, timeout=timeout)
+ super().__init__(host, port, local_hostname=local_hostname,
+ source_address=source_address, timeout=timeout)
def connect(self, host='localhost', port=0, source_address=None):
"""Connect to the LMTP daemon, on either a Unix or a TCP socket."""
if host[0] != '/':
- return super().connect(host, port, source_address=source_address)
+ return super().connect(host, port, source_address=source_address)
+
+ if self.timeout is not None and not self.timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
- if self.timeout is not None and not self.timeout:
- raise ValueError('Non-blocking socket (timeout=0) is not supported')
-
# Handle Unix-domain sockets.
try:
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- if self.timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
- self.sock.settimeout(self.timeout)
+ if self.timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
+ self.sock.settimeout(self.timeout)
self.file = None
self.sock.connect(host)
except OSError:
diff --git a/contrib/tools/python3/src/Lib/sndhdr.py b/contrib/tools/python3/src/Lib/sndhdr.py
index a28513adfd..96595c6974 100644
--- a/contrib/tools/python3/src/Lib/sndhdr.py
+++ b/contrib/tools/python3/src/Lib/sndhdr.py
@@ -241,7 +241,7 @@ def testall(list, recursive, toplevel):
if recursive or toplevel:
print('recursing down:')
import glob
- names = glob.glob(os.path.join(glob.escape(filename), '*'))
+ names = glob.glob(os.path.join(glob.escape(filename), '*'))
testall(names, recursive, 0)
else:
print('*** directory (use -r) ***')
diff --git a/contrib/tools/python3/src/Lib/socket.py b/contrib/tools/python3/src/Lib/socket.py
index 46575f9962..46fc49ca32 100644
--- a/contrib/tools/python3/src/Lib/socket.py
+++ b/contrib/tools/python3/src/Lib/socket.py
@@ -12,8 +12,8 @@ Functions:
socket() -- create a new socket object
socketpair() -- create a pair of new socket objects [*]
fromfd() -- create a socket object from an open file descriptor [*]
-send_fds() -- Send file descriptor to the socket.
-recv_fds() -- Recieve file descriptors from the socket.
+send_fds() -- Send file descriptor to the socket.
+recv_fds() -- Recieve file descriptors from the socket.
fromshare() -- create a socket object from data received from socket.share() [*]
gethostname() -- return the current hostname
gethostbyname() -- map a hostname to its IP number
@@ -62,8 +62,8 @@ EBADF = getattr(errno, 'EBADF', 9)
EAGAIN = getattr(errno, 'EAGAIN', 11)
EWOULDBLOCK = getattr(errno, 'EWOULDBLOCK', 11)
-__all__ = ["fromfd", "getfqdn", "create_connection", "create_server",
- "has_dualstack_ipv6", "AddressFamily", "SocketKind"]
+__all__ = ["fromfd", "getfqdn", "create_connection", "create_server",
+ "has_dualstack_ipv6", "AddressFamily", "SocketKind"]
__all__.extend(os._get_exports_list(_socket))
# Set up the socket.AF_* socket.SOCK_* constants as members of IntEnums for
@@ -72,22 +72,22 @@ __all__.extend(os._get_exports_list(_socket))
# in this module understands the enums and translates them back from integers
# where needed (e.g. .family property of a socket object).
-IntEnum._convert_(
+IntEnum._convert_(
'AddressFamily',
__name__,
lambda C: C.isupper() and C.startswith('AF_'))
-IntEnum._convert_(
+IntEnum._convert_(
'SocketKind',
__name__,
lambda C: C.isupper() and C.startswith('SOCK_'))
-IntFlag._convert_(
+IntFlag._convert_(
'MsgFlag',
__name__,
lambda C: C.isupper() and C.startswith('MSG_'))
-IntFlag._convert_(
+IntFlag._convert_(
'AddressInfo',
__name__,
lambda C: C.isupper() and C.startswith('AI_'))
@@ -110,101 +110,101 @@ def _intenum_converter(value, enum_klass):
# WSA error codes
if sys.platform.lower().startswith("win"):
errorTab = {}
- errorTab[6] = "Specified event object handle is invalid."
- errorTab[8] = "Insufficient memory available."
- errorTab[87] = "One or more parameters are invalid."
- errorTab[995] = "Overlapped operation aborted."
- errorTab[996] = "Overlapped I/O event object not in signaled state."
- errorTab[997] = "Overlapped operation will complete later."
+ errorTab[6] = "Specified event object handle is invalid."
+ errorTab[8] = "Insufficient memory available."
+ errorTab[87] = "One or more parameters are invalid."
+ errorTab[995] = "Overlapped operation aborted."
+ errorTab[996] = "Overlapped I/O event object not in signaled state."
+ errorTab[997] = "Overlapped operation will complete later."
errorTab[10004] = "The operation was interrupted."
errorTab[10009] = "A bad file handle was passed."
errorTab[10013] = "Permission denied."
- errorTab[10014] = "A fault occurred on the network??" # WSAEFAULT
+ errorTab[10014] = "A fault occurred on the network??" # WSAEFAULT
errorTab[10022] = "An invalid operation was attempted."
- errorTab[10024] = "Too many open files."
+ errorTab[10024] = "Too many open files."
errorTab[10035] = "The socket operation would block"
errorTab[10036] = "A blocking operation is already in progress."
- errorTab[10037] = "Operation already in progress."
- errorTab[10038] = "Socket operation on nonsocket."
- errorTab[10039] = "Destination address required."
- errorTab[10040] = "Message too long."
- errorTab[10041] = "Protocol wrong type for socket."
- errorTab[10042] = "Bad protocol option."
- errorTab[10043] = "Protocol not supported."
- errorTab[10044] = "Socket type not supported."
- errorTab[10045] = "Operation not supported."
- errorTab[10046] = "Protocol family not supported."
- errorTab[10047] = "Address family not supported by protocol family."
+ errorTab[10037] = "Operation already in progress."
+ errorTab[10038] = "Socket operation on nonsocket."
+ errorTab[10039] = "Destination address required."
+ errorTab[10040] = "Message too long."
+ errorTab[10041] = "Protocol wrong type for socket."
+ errorTab[10042] = "Bad protocol option."
+ errorTab[10043] = "Protocol not supported."
+ errorTab[10044] = "Socket type not supported."
+ errorTab[10045] = "Operation not supported."
+ errorTab[10046] = "Protocol family not supported."
+ errorTab[10047] = "Address family not supported by protocol family."
errorTab[10048] = "The network address is in use."
- errorTab[10049] = "Cannot assign requested address."
- errorTab[10050] = "Network is down."
- errorTab[10051] = "Network is unreachable."
- errorTab[10052] = "Network dropped connection on reset."
- errorTab[10053] = "Software caused connection abort."
+ errorTab[10049] = "Cannot assign requested address."
+ errorTab[10050] = "Network is down."
+ errorTab[10051] = "Network is unreachable."
+ errorTab[10052] = "Network dropped connection on reset."
+ errorTab[10053] = "Software caused connection abort."
errorTab[10054] = "The connection has been reset."
- errorTab[10055] = "No buffer space available."
- errorTab[10056] = "Socket is already connected."
- errorTab[10057] = "Socket is not connected."
+ errorTab[10055] = "No buffer space available."
+ errorTab[10056] = "Socket is already connected."
+ errorTab[10057] = "Socket is not connected."
errorTab[10058] = "The network has been shut down."
- errorTab[10059] = "Too many references."
+ errorTab[10059] = "Too many references."
errorTab[10060] = "The operation timed out."
errorTab[10061] = "Connection refused."
- errorTab[10062] = "Cannot translate name."
+ errorTab[10062] = "Cannot translate name."
errorTab[10063] = "The name is too long."
errorTab[10064] = "The host is down."
errorTab[10065] = "The host is unreachable."
- errorTab[10066] = "Directory not empty."
- errorTab[10067] = "Too many processes."
- errorTab[10068] = "User quota exceeded."
- errorTab[10069] = "Disk quota exceeded."
- errorTab[10070] = "Stale file handle reference."
- errorTab[10071] = "Item is remote."
- errorTab[10091] = "Network subsystem is unavailable."
- errorTab[10092] = "Winsock.dll version out of range."
- errorTab[10093] = "Successful WSAStartup not yet performed."
- errorTab[10101] = "Graceful shutdown in progress."
- errorTab[10102] = "No more results from WSALookupServiceNext."
- errorTab[10103] = "Call has been canceled."
- errorTab[10104] = "Procedure call table is invalid."
- errorTab[10105] = "Service provider is invalid."
- errorTab[10106] = "Service provider failed to initialize."
- errorTab[10107] = "System call failure."
- errorTab[10108] = "Service not found."
- errorTab[10109] = "Class type not found."
- errorTab[10110] = "No more results from WSALookupServiceNext."
- errorTab[10111] = "Call was canceled."
- errorTab[10112] = "Database query was refused."
- errorTab[11001] = "Host not found."
- errorTab[11002] = "Nonauthoritative host not found."
- errorTab[11003] = "This is a nonrecoverable error."
- errorTab[11004] = "Valid name, no data record requested type."
- errorTab[11005] = "QoS receivers."
- errorTab[11006] = "QoS senders."
- errorTab[11007] = "No QoS senders."
- errorTab[11008] = "QoS no receivers."
- errorTab[11009] = "QoS request confirmed."
- errorTab[11010] = "QoS admission error."
- errorTab[11011] = "QoS policy failure."
- errorTab[11012] = "QoS bad style."
- errorTab[11013] = "QoS bad object."
- errorTab[11014] = "QoS traffic control error."
- errorTab[11015] = "QoS generic error."
- errorTab[11016] = "QoS service type error."
- errorTab[11017] = "QoS flowspec error."
- errorTab[11018] = "Invalid QoS provider buffer."
- errorTab[11019] = "Invalid QoS filter style."
- errorTab[11020] = "Invalid QoS filter style."
- errorTab[11021] = "Incorrect QoS filter count."
- errorTab[11022] = "Invalid QoS object length."
- errorTab[11023] = "Incorrect QoS flow count."
- errorTab[11024] = "Unrecognized QoS object."
- errorTab[11025] = "Invalid QoS policy object."
- errorTab[11026] = "Invalid QoS flow descriptor."
- errorTab[11027] = "Invalid QoS provider-specific flowspec."
- errorTab[11028] = "Invalid QoS provider-specific filterspec."
- errorTab[11029] = "Invalid QoS shape discard mode object."
- errorTab[11030] = "Invalid QoS shaping rate object."
- errorTab[11031] = "Reserved policy QoS element type."
+ errorTab[10066] = "Directory not empty."
+ errorTab[10067] = "Too many processes."
+ errorTab[10068] = "User quota exceeded."
+ errorTab[10069] = "Disk quota exceeded."
+ errorTab[10070] = "Stale file handle reference."
+ errorTab[10071] = "Item is remote."
+ errorTab[10091] = "Network subsystem is unavailable."
+ errorTab[10092] = "Winsock.dll version out of range."
+ errorTab[10093] = "Successful WSAStartup not yet performed."
+ errorTab[10101] = "Graceful shutdown in progress."
+ errorTab[10102] = "No more results from WSALookupServiceNext."
+ errorTab[10103] = "Call has been canceled."
+ errorTab[10104] = "Procedure call table is invalid."
+ errorTab[10105] = "Service provider is invalid."
+ errorTab[10106] = "Service provider failed to initialize."
+ errorTab[10107] = "System call failure."
+ errorTab[10108] = "Service not found."
+ errorTab[10109] = "Class type not found."
+ errorTab[10110] = "No more results from WSALookupServiceNext."
+ errorTab[10111] = "Call was canceled."
+ errorTab[10112] = "Database query was refused."
+ errorTab[11001] = "Host not found."
+ errorTab[11002] = "Nonauthoritative host not found."
+ errorTab[11003] = "This is a nonrecoverable error."
+ errorTab[11004] = "Valid name, no data record requested type."
+ errorTab[11005] = "QoS receivers."
+ errorTab[11006] = "QoS senders."
+ errorTab[11007] = "No QoS senders."
+ errorTab[11008] = "QoS no receivers."
+ errorTab[11009] = "QoS request confirmed."
+ errorTab[11010] = "QoS admission error."
+ errorTab[11011] = "QoS policy failure."
+ errorTab[11012] = "QoS bad style."
+ errorTab[11013] = "QoS bad object."
+ errorTab[11014] = "QoS traffic control error."
+ errorTab[11015] = "QoS generic error."
+ errorTab[11016] = "QoS service type error."
+ errorTab[11017] = "QoS flowspec error."
+ errorTab[11018] = "Invalid QoS provider buffer."
+ errorTab[11019] = "Invalid QoS filter style."
+ errorTab[11020] = "Invalid QoS filter style."
+ errorTab[11021] = "Incorrect QoS filter count."
+ errorTab[11022] = "Invalid QoS object length."
+ errorTab[11023] = "Incorrect QoS flow count."
+ errorTab[11024] = "Unrecognized QoS object."
+ errorTab[11025] = "Invalid QoS policy object."
+ errorTab[11026] = "Invalid QoS flow descriptor."
+ errorTab[11027] = "Invalid QoS provider-specific flowspec."
+ errorTab[11028] = "Invalid QoS provider-specific filterspec."
+ errorTab[11029] = "Invalid QoS shape discard mode object."
+ errorTab[11030] = "Invalid QoS shaping rate object."
+ errorTab[11031] = "Reserved policy QoS element type."
__all__.append("errorTab")
@@ -270,7 +270,7 @@ class socket(_socket.socket):
return s
def __getstate__(self):
- raise TypeError(f"cannot pickle {self.__class__.__name__!r} object")
+ raise TypeError(f"cannot pickle {self.__class__.__name__!r} object")
def dup(self):
"""dup() -> socket object
@@ -356,8 +356,8 @@ class socket(_socket.socket):
raise _GiveupOnSendfile(err) # not a regular file
if not fsize:
return 0 # empty file
- # Truncate to 1GiB to avoid OverflowError, see bpo-38319.
- blocksize = min(count or fsize, 2 ** 30)
+ # Truncate to 1GiB to avoid OverflowError, see bpo-38319.
+ blocksize = min(count or fsize, 2 ** 30)
timeout = self.gettimeout()
if timeout == 0:
raise ValueError("non-blocking sockets are not supported")
@@ -544,40 +544,40 @@ def fromfd(fd, family, type, proto=0):
nfd = dup(fd)
return socket(family, type, proto, nfd)
-if hasattr(_socket.socket, "sendmsg"):
- import array
-
- def send_fds(sock, buffers, fds, flags=0, address=None):
- """ send_fds(sock, buffers, fds[, flags[, address]]) -> integer
-
- Send the list of file descriptors fds over an AF_UNIX socket.
- """
- return sock.sendmsg(buffers, [(_socket.SOL_SOCKET,
- _socket.SCM_RIGHTS, array.array("i", fds))])
- __all__.append("send_fds")
-
-if hasattr(_socket.socket, "recvmsg"):
- import array
-
- def recv_fds(sock, bufsize, maxfds, flags=0):
- """ recv_fds(sock, bufsize, maxfds[, flags]) -> (data, list of file
- descriptors, msg_flags, address)
-
- Receive up to maxfds file descriptors returning the message
- data and a list containing the descriptors.
- """
- # Array of ints
- fds = array.array("i")
- msg, ancdata, flags, addr = sock.recvmsg(bufsize,
- _socket.CMSG_LEN(maxfds * fds.itemsize))
- for cmsg_level, cmsg_type, cmsg_data in ancdata:
- if (cmsg_level == _socket.SOL_SOCKET and cmsg_type == _socket.SCM_RIGHTS):
- fds.frombytes(cmsg_data[:
- len(cmsg_data) - (len(cmsg_data) % fds.itemsize)])
-
- return msg, list(fds), flags, addr
- __all__.append("recv_fds")
-
+if hasattr(_socket.socket, "sendmsg"):
+ import array
+
+ def send_fds(sock, buffers, fds, flags=0, address=None):
+ """ send_fds(sock, buffers, fds[, flags[, address]]) -> integer
+
+ Send the list of file descriptors fds over an AF_UNIX socket.
+ """
+ return sock.sendmsg(buffers, [(_socket.SOL_SOCKET,
+ _socket.SCM_RIGHTS, array.array("i", fds))])
+ __all__.append("send_fds")
+
+if hasattr(_socket.socket, "recvmsg"):
+ import array
+
+ def recv_fds(sock, bufsize, maxfds, flags=0):
+ """ recv_fds(sock, bufsize, maxfds[, flags]) -> (data, list of file
+ descriptors, msg_flags, address)
+
+ Receive up to maxfds file descriptors returning the message
+ data and a list containing the descriptors.
+ """
+ # Array of ints
+ fds = array.array("i")
+ msg, ancdata, flags, addr = sock.recvmsg(bufsize,
+ _socket.CMSG_LEN(maxfds * fds.itemsize))
+ for cmsg_level, cmsg_type, cmsg_data in ancdata:
+ if (cmsg_level == _socket.SOL_SOCKET and cmsg_type == _socket.SCM_RIGHTS):
+ fds.frombytes(cmsg_data[:
+ len(cmsg_data) - (len(cmsg_data) % fds.itemsize)])
+
+ return msg, list(fds), flags, addr
+ __all__.append("recv_fds")
+
if hasattr(_socket.socket, "share"):
def fromshare(info):
""" fromshare(info) -> socket object
@@ -781,9 +781,9 @@ def getfqdn(name=''):
An empty argument is interpreted as meaning the local host.
First the hostname returned by gethostbyaddr() is checked, then
- possibly existing aliases. In case no FQDN is available and `name`
- was given, it is returned unchanged. If `name` was empty or '0.0.0.0',
- hostname from gethostname() is returned.
+ possibly existing aliases. In case no FQDN is available and `name`
+ was given, it is returned unchanged. If `name` was empty or '0.0.0.0',
+ hostname from gethostname() is returned.
"""
name = name.strip()
if not name or name == '0.0.0.0':
@@ -840,100 +840,100 @@ def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,
sock.close()
if err is not None:
- try:
- raise err
- finally:
- # Break explicitly a reference cycle
- err = None
+ try:
+ raise err
+ finally:
+ # Break explicitly a reference cycle
+ err = None
else:
raise error("getaddrinfo returns an empty list")
-
-def has_dualstack_ipv6():
- """Return True if the platform supports creating a SOCK_STREAM socket
- which can handle both AF_INET and AF_INET6 (IPv4 / IPv6) connections.
- """
- if not has_ipv6 \
- or not hasattr(_socket, 'IPPROTO_IPV6') \
- or not hasattr(_socket, 'IPV6_V6ONLY'):
- return False
- try:
- with socket(AF_INET6, SOCK_STREAM) as sock:
- sock.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 0)
- return True
- except error:
- return False
-
-
-def create_server(address, *, family=AF_INET, backlog=None, reuse_port=False,
- dualstack_ipv6=False):
- """Convenience function which creates a SOCK_STREAM type socket
- bound to *address* (a 2-tuple (host, port)) and return the socket
- object.
-
- *family* should be either AF_INET or AF_INET6.
- *backlog* is the queue size passed to socket.listen().
- *reuse_port* dictates whether to use the SO_REUSEPORT socket option.
- *dualstack_ipv6*: if true and the platform supports it, it will
- create an AF_INET6 socket able to accept both IPv4 or IPv6
- connections. When false it will explicitly disable this option on
- platforms that enable it by default (e.g. Linux).
-
- >>> with create_server(('', 8000)) as server:
- ... while True:
- ... conn, addr = server.accept()
- ... # handle new connection
- """
- if reuse_port and not hasattr(_socket, "SO_REUSEPORT"):
- raise ValueError("SO_REUSEPORT not supported on this platform")
- if dualstack_ipv6:
- if not has_dualstack_ipv6():
- raise ValueError("dualstack_ipv6 not supported on this platform")
- if family != AF_INET6:
- raise ValueError("dualstack_ipv6 requires AF_INET6 family")
- sock = socket(family, SOCK_STREAM)
- try:
- # Note about Windows. We don't set SO_REUSEADDR because:
- # 1) It's unnecessary: bind() will succeed even in case of a
- # previous closed socket on the same address and still in
- # TIME_WAIT state.
- # 2) If set, another socket is free to bind() on the same
- # address, effectively preventing this one from accepting
- # connections. Also, it may set the process in a state where
- # it'll no longer respond to any signals or graceful kills.
- # See: msdn2.microsoft.com/en-us/library/ms740621(VS.85).aspx
- if os.name not in ('nt', 'cygwin') and \
- hasattr(_socket, 'SO_REUSEADDR'):
- try:
- sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
- except error:
- # Fail later on bind(), for platforms which may not
- # support this option.
- pass
- if reuse_port:
- sock.setsockopt(SOL_SOCKET, SO_REUSEPORT, 1)
- if has_ipv6 and family == AF_INET6:
- if dualstack_ipv6:
- sock.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 0)
- elif hasattr(_socket, "IPV6_V6ONLY") and \
- hasattr(_socket, "IPPROTO_IPV6"):
- sock.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 1)
- try:
- sock.bind(address)
- except error as err:
- msg = '%s (while attempting to bind on address %r)' % \
- (err.strerror, address)
- raise error(err.errno, msg) from None
- if backlog is None:
- sock.listen()
- else:
- sock.listen(backlog)
- return sock
- except error:
- sock.close()
- raise
-
-
+
+def has_dualstack_ipv6():
+ """Return True if the platform supports creating a SOCK_STREAM socket
+ which can handle both AF_INET and AF_INET6 (IPv4 / IPv6) connections.
+ """
+ if not has_ipv6 \
+ or not hasattr(_socket, 'IPPROTO_IPV6') \
+ or not hasattr(_socket, 'IPV6_V6ONLY'):
+ return False
+ try:
+ with socket(AF_INET6, SOCK_STREAM) as sock:
+ sock.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 0)
+ return True
+ except error:
+ return False
+
+
+def create_server(address, *, family=AF_INET, backlog=None, reuse_port=False,
+ dualstack_ipv6=False):
+ """Convenience function which creates a SOCK_STREAM type socket
+ bound to *address* (a 2-tuple (host, port)) and return the socket
+ object.
+
+ *family* should be either AF_INET or AF_INET6.
+ *backlog* is the queue size passed to socket.listen().
+ *reuse_port* dictates whether to use the SO_REUSEPORT socket option.
+ *dualstack_ipv6*: if true and the platform supports it, it will
+ create an AF_INET6 socket able to accept both IPv4 or IPv6
+ connections. When false it will explicitly disable this option on
+ platforms that enable it by default (e.g. Linux).
+
+ >>> with create_server(('', 8000)) as server:
+ ... while True:
+ ... conn, addr = server.accept()
+ ... # handle new connection
+ """
+ if reuse_port and not hasattr(_socket, "SO_REUSEPORT"):
+ raise ValueError("SO_REUSEPORT not supported on this platform")
+ if dualstack_ipv6:
+ if not has_dualstack_ipv6():
+ raise ValueError("dualstack_ipv6 not supported on this platform")
+ if family != AF_INET6:
+ raise ValueError("dualstack_ipv6 requires AF_INET6 family")
+ sock = socket(family, SOCK_STREAM)
+ try:
+ # Note about Windows. We don't set SO_REUSEADDR because:
+ # 1) It's unnecessary: bind() will succeed even in case of a
+ # previous closed socket on the same address and still in
+ # TIME_WAIT state.
+ # 2) If set, another socket is free to bind() on the same
+ # address, effectively preventing this one from accepting
+ # connections. Also, it may set the process in a state where
+ # it'll no longer respond to any signals or graceful kills.
+ # See: msdn2.microsoft.com/en-us/library/ms740621(VS.85).aspx
+ if os.name not in ('nt', 'cygwin') and \
+ hasattr(_socket, 'SO_REUSEADDR'):
+ try:
+ sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
+ except error:
+ # Fail later on bind(), for platforms which may not
+ # support this option.
+ pass
+ if reuse_port:
+ sock.setsockopt(SOL_SOCKET, SO_REUSEPORT, 1)
+ if has_ipv6 and family == AF_INET6:
+ if dualstack_ipv6:
+ sock.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 0)
+ elif hasattr(_socket, "IPV6_V6ONLY") and \
+ hasattr(_socket, "IPPROTO_IPV6"):
+ sock.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 1)
+ try:
+ sock.bind(address)
+ except error as err:
+ msg = '%s (while attempting to bind on address %r)' % \
+ (err.strerror, address)
+ raise error(err.errno, msg) from None
+ if backlog is None:
+ sock.listen()
+ else:
+ sock.listen(backlog)
+ return sock
+ except error:
+ sock.close()
+ raise
+
+
def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
"""Resolve host and port into list of address info entries.
diff --git a/contrib/tools/python3/src/Lib/socketserver.py b/contrib/tools/python3/src/Lib/socketserver.py
index 6e6df48003..0d9583d56a 100644
--- a/contrib/tools/python3/src/Lib/socketserver.py
+++ b/contrib/tools/python3/src/Lib/socketserver.py
@@ -24,7 +24,7 @@ For request-based servers (including socket-based):
The classes in this module favor the server type that is simplest to
write: a synchronous TCP/IP server. This is bad class design, but
-saves some typing. (There's also the issue that a deep class hierarchy
+saves some typing. (There's also the issue that a deep class hierarchy
slows down method lookups.)
There are five classes in an inheritance diagram, four of which represent
@@ -374,7 +374,7 @@ class BaseServer:
"""
print('-'*40, file=sys.stderr)
- print('Exception occurred during processing of request from',
+ print('Exception occurred during processing of request from',
client_address, file=sys.stderr)
import traceback
traceback.print_exc()
@@ -628,39 +628,39 @@ if hasattr(os, "fork"):
self.collect_children(blocking=self.block_on_close)
-class _Threads(list):
- """
- Joinable list of all non-daemon threads.
- """
- def append(self, thread):
- self.reap()
- if thread.daemon:
- return
- super().append(thread)
-
- def pop_all(self):
- self[:], result = [], self[:]
- return result
-
- def join(self):
- for thread in self.pop_all():
- thread.join()
-
- def reap(self):
- self[:] = (thread for thread in self if thread.is_alive())
-
-
-class _NoThreads:
- """
- Degenerate version of _Threads.
- """
- def append(self, thread):
- pass
-
- def join(self):
- pass
-
-
+class _Threads(list):
+ """
+ Joinable list of all non-daemon threads.
+ """
+ def append(self, thread):
+ self.reap()
+ if thread.daemon:
+ return
+ super().append(thread)
+
+ def pop_all(self):
+ self[:], result = [], self[:]
+ return result
+
+ def join(self):
+ for thread in self.pop_all():
+ thread.join()
+
+ def reap(self):
+ self[:] = (thread for thread in self if thread.is_alive())
+
+
+class _NoThreads:
+ """
+ Degenerate version of _Threads.
+ """
+ def append(self, thread):
+ pass
+
+ def join(self):
+ pass
+
+
class ThreadingMixIn:
"""Mix-in class to handle each request in a new thread."""
@@ -669,9 +669,9 @@ class ThreadingMixIn:
daemon_threads = False
# If true, server_close() waits until all non-daemonic threads terminate.
block_on_close = True
- # Threads object
+ # Threads object
# used by server_close() to wait for all threads completion.
- _threads = _NoThreads()
+ _threads = _NoThreads()
def process_request_thread(self, request, client_address):
"""Same as in BaseServer but as a thread.
@@ -688,17 +688,17 @@ class ThreadingMixIn:
def process_request(self, request, client_address):
"""Start a new thread to process the request."""
- if self.block_on_close:
- vars(self).setdefault('_threads', _Threads())
+ if self.block_on_close:
+ vars(self).setdefault('_threads', _Threads())
t = threading.Thread(target = self.process_request_thread,
args = (request, client_address))
t.daemon = self.daemon_threads
- self._threads.append(t)
+ self._threads.append(t)
t.start()
def server_close(self):
super().server_close()
- self._threads.join()
+ self._threads.join()
if hasattr(os, "fork"):
diff --git a/contrib/tools/python3/src/Lib/sqlite3/__init__.py b/contrib/tools/python3/src/Lib/sqlite3/__init__.py
index e9b3dfb944..1e717450c2 100644
--- a/contrib/tools/python3/src/Lib/sqlite3/__init__.py
+++ b/contrib/tools/python3/src/Lib/sqlite3/__init__.py
@@ -20,38 +20,38 @@
# misrepresented as being the original software.
# 3. This notice may not be removed or altered from any source distribution.
-"""
-The sqlite3 extension module provides a DB-API 2.0 (PEP 249) compilant
-interface to the SQLite library, and requires SQLite 3.7.15 or newer.
-
-To use the module, start by creating a database Connection object:
-
- import sqlite3
- cx = sqlite3.connect("test.db") # test.db will be created or opened
-
-The special path name ":memory:" can be provided to connect to a transient
-in-memory database:
-
- cx = sqlite3.connect(":memory:") # connect to a database in RAM
-
-Once a connection has been established, create a Cursor object and call
-its execute() method to perform SQL queries:
-
- cu = cx.cursor()
-
- # create a table
- cu.execute("create table lang(name, first_appeared)")
-
- # insert values into a table
- cu.execute("insert into lang values (?, ?)", ("C", 1972))
-
- # execute a query and iterate over the result
- for row in cu.execute("select * from lang"):
- print(row)
-
- cx.close()
-
-The sqlite3 module is written by Gerhard Häring <gh@ghaering.de>.
-"""
-
+"""
+The sqlite3 extension module provides a DB-API 2.0 (PEP 249) compilant
+interface to the SQLite library, and requires SQLite 3.7.15 or newer.
+
+To use the module, start by creating a database Connection object:
+
+ import sqlite3
+ cx = sqlite3.connect("test.db") # test.db will be created or opened
+
+The special path name ":memory:" can be provided to connect to a transient
+in-memory database:
+
+ cx = sqlite3.connect(":memory:") # connect to a database in RAM
+
+Once a connection has been established, create a Cursor object and call
+its execute() method to perform SQL queries:
+
+ cu = cx.cursor()
+
+ # create a table
+ cu.execute("create table lang(name, first_appeared)")
+
+ # insert values into a table
+ cu.execute("insert into lang values (?, ?)", ("C", 1972))
+
+ # execute a query and iterate over the result
+ for row in cu.execute("select * from lang"):
+ print(row)
+
+ cx.close()
+
+The sqlite3 module is written by Gerhard Häring <gh@ghaering.de>.
+"""
+
from sqlite3.dbapi2 import *
diff --git a/contrib/tools/python3/src/Lib/sre_compile.py b/contrib/tools/python3/src/Lib/sre_compile.py
index a048eea4ba..c6398bfb83 100644
--- a/contrib/tools/python3/src/Lib/sre_compile.py
+++ b/contrib/tools/python3/src/Lib/sre_compile.py
@@ -80,7 +80,7 @@ def _compile(code, pattern, flags):
tolower = None
fixes = None
if flags & SRE_FLAG_IGNORECASE and not flags & SRE_FLAG_LOCALE:
- if flags & SRE_FLAG_UNICODE:
+ if flags & SRE_FLAG_UNICODE:
iscased = _sre.unicode_iscased
tolower = _sre.unicode_tolower
fixes = _ignorecase_fixes
@@ -196,7 +196,7 @@ def _compile(code, pattern, flags):
av = AT_MULTILINE.get(av, av)
if flags & SRE_FLAG_LOCALE:
av = AT_LOCALE.get(av, av)
- elif flags & SRE_FLAG_UNICODE:
+ elif flags & SRE_FLAG_UNICODE:
av = AT_UNICODE.get(av, av)
emit(av)
elif op is BRANCH:
@@ -217,7 +217,7 @@ def _compile(code, pattern, flags):
emit(op)
if flags & SRE_FLAG_LOCALE:
av = CH_LOCALE[av]
- elif flags & SRE_FLAG_UNICODE:
+ elif flags & SRE_FLAG_UNICODE:
av = CH_UNICODE[av]
emit(av)
elif op is GROUPREF:
@@ -265,7 +265,7 @@ def _compile_charset(charset, flags, code):
elif op is CATEGORY:
if flags & SRE_FLAG_LOCALE:
emit(CH_LOCALE[av])
- elif flags & SRE_FLAG_UNICODE:
+ elif flags & SRE_FLAG_UNICODE:
emit(CH_UNICODE[av])
else:
emit(av)
@@ -453,7 +453,7 @@ def _generate_overlap_table(prefix):
def _get_iscased(flags):
if not flags & SRE_FLAG_IGNORECASE:
return None
- elif flags & SRE_FLAG_UNICODE:
+ elif flags & SRE_FLAG_UNICODE:
return _sre.unicode_iscased
else:
return _sre.ascii_iscased
@@ -597,7 +597,7 @@ def isstring(obj):
def _code(p, flags):
- flags = p.state.flags | flags
+ flags = p.state.flags | flags
code = []
# compile info block
@@ -772,13 +772,13 @@ def compile(p, flags=0):
dis(code)
# map in either direction
- groupindex = p.state.groupdict
- indexgroup = [None] * p.state.groups
+ groupindex = p.state.groupdict
+ indexgroup = [None] * p.state.groups
for k, i in groupindex.items():
indexgroup[i] = k
return _sre.compile(
- pattern, flags | p.state.flags, code,
- p.state.groups-1,
+ pattern, flags | p.state.flags, code,
+ p.state.groups-1,
groupindex, tuple(indexgroup)
)
diff --git a/contrib/tools/python3/src/Lib/sre_constants.py b/contrib/tools/python3/src/Lib/sre_constants.py
index e3401b203e..8e613cb3fa 100644
--- a/contrib/tools/python3/src/Lib/sre_constants.py
+++ b/contrib/tools/python3/src/Lib/sre_constants.py
@@ -59,7 +59,7 @@ class _NamedIntConstant(int):
self.name = name
return self
- def __repr__(self):
+ def __repr__(self):
return self.name
MAXREPEAT = _NamedIntConstant(MAXREPEAT, 'MAXREPEAT')
diff --git a/contrib/tools/python3/src/Lib/sre_parse.py b/contrib/tools/python3/src/Lib/sre_parse.py
index c98218e3d8..83119168e6 100644
--- a/contrib/tools/python3/src/Lib/sre_parse.py
+++ b/contrib/tools/python3/src/Lib/sre_parse.py
@@ -71,8 +71,8 @@ GLOBAL_FLAGS = SRE_FLAG_DEBUG | SRE_FLAG_TEMPLATE
class Verbose(Exception):
pass
-class State:
- # keeps track of state for parsing
+class State:
+ # keeps track of state for parsing
def __init__(self):
self.flags = 0
self.groupdict = {}
@@ -108,8 +108,8 @@ class State:
class SubPattern:
# a subpattern, in intermediate form
- def __init__(self, state, data=None):
- self.state = state
+ def __init__(self, state, data=None):
+ self.state = state
if data is None:
data = []
self.data = data
@@ -163,7 +163,7 @@ class SubPattern:
del self.data[index]
def __getitem__(self, index):
if isinstance(index, slice):
- return SubPattern(self.state, self.data[index])
+ return SubPattern(self.state, self.data[index])
return self.data[index]
def __setitem__(self, index, code):
self.data[index] = code
@@ -202,7 +202,7 @@ class SubPattern:
lo = lo + 1
hi = hi + 1
elif op is GROUPREF:
- i, j = self.state.groupwidths[av]
+ i, j = self.state.groupwidths[av]
lo = lo + i
hi = hi + j
elif op is GROUPREF_EXISTS:
@@ -264,19 +264,19 @@ class Tokenizer:
result += c
self.__next()
return result
- def getuntil(self, terminator, name):
+ def getuntil(self, terminator, name):
result = ''
while True:
c = self.next
self.__next()
if c is None:
if not result:
- raise self.error("missing " + name)
+ raise self.error("missing " + name)
raise self.error("missing %s, unterminated name" % terminator,
len(result))
if c == terminator:
if not result:
- raise self.error("missing " + name, 1)
+ raise self.error("missing " + name, 1)
break
result += c
return result
@@ -322,18 +322,18 @@ def _class_escape(source, escape):
c = int(escape[2:], 16)
chr(c) # raise ValueError for invalid code
return LITERAL, c
- elif c == "N" and source.istext:
- import unicodedata
- # named unicode escape e.g. \N{EM DASH}
- if not source.match('{'):
- raise source.error("missing {")
- charname = source.getuntil('}', 'character name')
- try:
- c = ord(unicodedata.lookup(charname))
- except KeyError:
- raise source.error("undefined character name %r" % charname,
- len(charname) + len(r'\N{}'))
- return LITERAL, c
+ elif c == "N" and source.istext:
+ import unicodedata
+ # named unicode escape e.g. \N{EM DASH}
+ if not source.match('{'):
+ raise source.error("missing {")
+ charname = source.getuntil('}', 'character name')
+ try:
+ c = ord(unicodedata.lookup(charname))
+ except KeyError:
+ raise source.error("undefined character name %r" % charname,
+ len(charname) + len(r'\N{}'))
+ return LITERAL, c
elif c in OCTDIGITS:
# octal escape (up to three digits)
escape += source.getwhile(2, OCTDIGITS)
@@ -382,18 +382,18 @@ def _escape(source, escape, state):
c = int(escape[2:], 16)
chr(c) # raise ValueError for invalid code
return LITERAL, c
- elif c == "N" and source.istext:
- import unicodedata
- # named unicode escape e.g. \N{EM DASH}
- if not source.match('{'):
- raise source.error("missing {")
- charname = source.getuntil('}', 'character name')
- try:
- c = ord(unicodedata.lookup(charname))
- except KeyError:
- raise source.error("undefined character name %r" % charname,
- len(charname) + len(r'\N{}'))
- return LITERAL, c
+ elif c == "N" and source.istext:
+ import unicodedata
+ # named unicode escape e.g. \N{EM DASH}
+ if not source.match('{'):
+ raise source.error("missing {")
+ charname = source.getuntil('}', 'character name')
+ try:
+ c = ord(unicodedata.lookup(charname))
+ except KeyError:
+ raise source.error("undefined character name %r" % charname,
+ len(charname) + len(r'\N{}'))
+ return LITERAL, c
elif c == "0":
# octal escape
escape += source.getwhile(2, OCTDIGITS)
@@ -430,7 +430,7 @@ def _escape(source, escape, state):
raise source.error("bad escape %s" % escape, len(escape))
def _uniq(items):
- return list(dict.fromkeys(items))
+ return list(dict.fromkeys(items))
def _parse_sub(source, state, verbose, nested):
# parse an alternation: a|b|c
@@ -697,13 +697,13 @@ def _parse(source, state, verbose, nested, first=False):
# python extensions
if sourcematch("<"):
# named group: skip forward to end of name
- name = source.getuntil(">", "group name")
+ name = source.getuntil(">", "group name")
if not name.isidentifier():
msg = "bad character in group name %r" % name
raise source.error(msg, len(name) + 1)
elif sourcematch("="):
# named backreference
- name = source.getuntil(")", "group name")
+ name = source.getuntil(")", "group name")
if not name.isidentifier():
msg = "bad character in group name %r" % name
raise source.error(msg, len(name) + 1)
@@ -766,7 +766,7 @@ def _parse(source, state, verbose, nested, first=False):
elif char == "(":
# conditional backreference group
- condname = source.getuntil(")", "group name")
+ condname = source.getuntil(")", "group name")
if condname.isidentifier():
condgroup = state.groupdict.get(condname)
if condgroup is None:
@@ -934,28 +934,28 @@ def fix_flags(src, flags):
raise ValueError("ASCII and LOCALE flags are incompatible")
return flags
-def parse(str, flags=0, state=None):
+def parse(str, flags=0, state=None):
# parse 're' pattern into list of (opcode, argument) tuples
source = Tokenizer(str)
- if state is None:
- state = State()
- state.flags = flags
- state.str = str
+ if state is None:
+ state = State()
+ state.flags = flags
+ state.str = str
try:
- p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
+ p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
except Verbose:
# the VERBOSE flag was switched on inside the pattern. to be
# on the safe side, we'll parse the whole thing again...
- state = State()
- state.flags = flags | SRE_FLAG_VERBOSE
- state.str = str
+ state = State()
+ state.flags = flags | SRE_FLAG_VERBOSE
+ state.str = str
source.seek(0)
- p = _parse_sub(source, state, True, 0)
+ p = _parse_sub(source, state, True, 0)
- p.state.flags = fix_flags(str, p.state.flags)
+ p.state.flags = fix_flags(str, p.state.flags)
if source.next is not None:
assert source.next == ")"
@@ -966,7 +966,7 @@ def parse(str, flags=0, state=None):
return p
-def parse_template(source, state):
+def parse_template(source, state):
# parse 're' replacement string into list of literals and
# group references
s = Tokenizer(source)
@@ -976,14 +976,14 @@ def parse_template(source, state):
literal = []
lappend = literal.append
def addgroup(index, pos):
- if index > state.groups:
+ if index > state.groups:
raise s.error("invalid group reference %d" % index, pos)
if literal:
literals.append(''.join(literal))
del literal[:]
groups.append((len(literals), index))
literals.append(None)
- groupindex = state.groupindex
+ groupindex = state.groupindex
while True:
this = sget()
if this is None:
@@ -995,7 +995,7 @@ def parse_template(source, state):
name = ""
if not s.match("<"):
raise s.error("missing <")
- name = s.getuntil(">", "group name")
+ name = s.getuntil(">", "group name")
if name.isidentifier():
try:
index = groupindex[name]
diff --git a/contrib/tools/python3/src/Lib/ssl.py b/contrib/tools/python3/src/Lib/ssl.py
index e278e7e10d..e95e4cf5e9 100644
--- a/contrib/tools/python3/src/Lib/ssl.py
+++ b/contrib/tools/python3/src/Lib/ssl.py
@@ -119,32 +119,32 @@ from _ssl import (
from _ssl import _DEFAULT_CIPHERS, _OPENSSL_API_VERSION
-_IntEnum._convert_(
+_IntEnum._convert_(
'_SSLMethod', __name__,
lambda name: name.startswith('PROTOCOL_') and name != 'PROTOCOL_SSLv23',
source=_ssl)
-_IntFlag._convert_(
+_IntFlag._convert_(
'Options', __name__,
lambda name: name.startswith('OP_'),
source=_ssl)
-_IntEnum._convert_(
+_IntEnum._convert_(
'AlertDescription', __name__,
lambda name: name.startswith('ALERT_DESCRIPTION_'),
source=_ssl)
-_IntEnum._convert_(
+_IntEnum._convert_(
'SSLErrorNumber', __name__,
lambda name: name.startswith('SSL_ERROR_'),
source=_ssl)
-_IntFlag._convert_(
+_IntFlag._convert_(
'VerifyFlags', __name__,
lambda name: name.startswith('VERIFY_'),
source=_ssl)
-_IntEnum._convert_(
+_IntEnum._convert_(
'VerifyMode', __name__,
lambda name: name.startswith('CERT_'),
source=_ssl)
@@ -165,94 +165,94 @@ class TLSVersion(_IntEnum):
MAXIMUM_SUPPORTED = _ssl.PROTO_MAXIMUM_SUPPORTED
-class _TLSContentType(_IntEnum):
- """Content types (record layer)
-
- See RFC 8446, section B.1
- """
- CHANGE_CIPHER_SPEC = 20
- ALERT = 21
- HANDSHAKE = 22
- APPLICATION_DATA = 23
- # pseudo content types
- HEADER = 0x100
- INNER_CONTENT_TYPE = 0x101
-
-
-class _TLSAlertType(_IntEnum):
- """Alert types for TLSContentType.ALERT messages
-
- See RFC 8466, section B.2
- """
- CLOSE_NOTIFY = 0
- UNEXPECTED_MESSAGE = 10
- BAD_RECORD_MAC = 20
- DECRYPTION_FAILED = 21
- RECORD_OVERFLOW = 22
- DECOMPRESSION_FAILURE = 30
- HANDSHAKE_FAILURE = 40
- NO_CERTIFICATE = 41
- BAD_CERTIFICATE = 42
- UNSUPPORTED_CERTIFICATE = 43
- CERTIFICATE_REVOKED = 44
- CERTIFICATE_EXPIRED = 45
- CERTIFICATE_UNKNOWN = 46
- ILLEGAL_PARAMETER = 47
- UNKNOWN_CA = 48
- ACCESS_DENIED = 49
- DECODE_ERROR = 50
- DECRYPT_ERROR = 51
- EXPORT_RESTRICTION = 60
- PROTOCOL_VERSION = 70
- INSUFFICIENT_SECURITY = 71
- INTERNAL_ERROR = 80
- INAPPROPRIATE_FALLBACK = 86
- USER_CANCELED = 90
- NO_RENEGOTIATION = 100
- MISSING_EXTENSION = 109
- UNSUPPORTED_EXTENSION = 110
- CERTIFICATE_UNOBTAINABLE = 111
- UNRECOGNIZED_NAME = 112
- BAD_CERTIFICATE_STATUS_RESPONSE = 113
- BAD_CERTIFICATE_HASH_VALUE = 114
- UNKNOWN_PSK_IDENTITY = 115
- CERTIFICATE_REQUIRED = 116
- NO_APPLICATION_PROTOCOL = 120
-
-
-class _TLSMessageType(_IntEnum):
- """Message types (handshake protocol)
-
- See RFC 8446, section B.3
- """
- HELLO_REQUEST = 0
- CLIENT_HELLO = 1
- SERVER_HELLO = 2
- HELLO_VERIFY_REQUEST = 3
- NEWSESSION_TICKET = 4
- END_OF_EARLY_DATA = 5
- HELLO_RETRY_REQUEST = 6
- ENCRYPTED_EXTENSIONS = 8
- CERTIFICATE = 11
- SERVER_KEY_EXCHANGE = 12
- CERTIFICATE_REQUEST = 13
- SERVER_DONE = 14
- CERTIFICATE_VERIFY = 15
- CLIENT_KEY_EXCHANGE = 16
- FINISHED = 20
- CERTIFICATE_URL = 21
- CERTIFICATE_STATUS = 22
- SUPPLEMENTAL_DATA = 23
- KEY_UPDATE = 24
- NEXT_PROTO = 67
- MESSAGE_HASH = 254
- CHANGE_CIPHER_SPEC = 0x0101
-
-
+class _TLSContentType(_IntEnum):
+ """Content types (record layer)
+
+ See RFC 8446, section B.1
+ """
+ CHANGE_CIPHER_SPEC = 20
+ ALERT = 21
+ HANDSHAKE = 22
+ APPLICATION_DATA = 23
+ # pseudo content types
+ HEADER = 0x100
+ INNER_CONTENT_TYPE = 0x101
+
+
+class _TLSAlertType(_IntEnum):
+ """Alert types for TLSContentType.ALERT messages
+
+ See RFC 8466, section B.2
+ """
+ CLOSE_NOTIFY = 0
+ UNEXPECTED_MESSAGE = 10
+ BAD_RECORD_MAC = 20
+ DECRYPTION_FAILED = 21
+ RECORD_OVERFLOW = 22
+ DECOMPRESSION_FAILURE = 30
+ HANDSHAKE_FAILURE = 40
+ NO_CERTIFICATE = 41
+ BAD_CERTIFICATE = 42
+ UNSUPPORTED_CERTIFICATE = 43
+ CERTIFICATE_REVOKED = 44
+ CERTIFICATE_EXPIRED = 45
+ CERTIFICATE_UNKNOWN = 46
+ ILLEGAL_PARAMETER = 47
+ UNKNOWN_CA = 48
+ ACCESS_DENIED = 49
+ DECODE_ERROR = 50
+ DECRYPT_ERROR = 51
+ EXPORT_RESTRICTION = 60
+ PROTOCOL_VERSION = 70
+ INSUFFICIENT_SECURITY = 71
+ INTERNAL_ERROR = 80
+ INAPPROPRIATE_FALLBACK = 86
+ USER_CANCELED = 90
+ NO_RENEGOTIATION = 100
+ MISSING_EXTENSION = 109
+ UNSUPPORTED_EXTENSION = 110
+ CERTIFICATE_UNOBTAINABLE = 111
+ UNRECOGNIZED_NAME = 112
+ BAD_CERTIFICATE_STATUS_RESPONSE = 113
+ BAD_CERTIFICATE_HASH_VALUE = 114
+ UNKNOWN_PSK_IDENTITY = 115
+ CERTIFICATE_REQUIRED = 116
+ NO_APPLICATION_PROTOCOL = 120
+
+
+class _TLSMessageType(_IntEnum):
+ """Message types (handshake protocol)
+
+ See RFC 8446, section B.3
+ """
+ HELLO_REQUEST = 0
+ CLIENT_HELLO = 1
+ SERVER_HELLO = 2
+ HELLO_VERIFY_REQUEST = 3
+ NEWSESSION_TICKET = 4
+ END_OF_EARLY_DATA = 5
+ HELLO_RETRY_REQUEST = 6
+ ENCRYPTED_EXTENSIONS = 8
+ CERTIFICATE = 11
+ SERVER_KEY_EXCHANGE = 12
+ CERTIFICATE_REQUEST = 13
+ SERVER_DONE = 14
+ CERTIFICATE_VERIFY = 15
+ CLIENT_KEY_EXCHANGE = 16
+ FINISHED = 20
+ CERTIFICATE_URL = 21
+ CERTIFICATE_STATUS = 22
+ SUPPLEMENTAL_DATA = 23
+ KEY_UPDATE = 24
+ NEXT_PROTO = 67
+ MESSAGE_HASH = 254
+ CHANGE_CIPHER_SPEC = 0x0101
+
+
if sys.platform == "win32":
from _ssl import enum_certificates, enum_crls
-from socket import socket, SOCK_STREAM, create_connection
+from socket import socket, SOCK_STREAM, create_connection
from socket import SOL_SOCKET, SO_TYPE
import socket as _socket
import base64 # for DER-to-PEM translation
@@ -327,22 +327,22 @@ def _inet_paton(ipname):
Supports IPv4 addresses on all platforms and IPv6 on platforms with IPv6
support.
"""
- # inet_aton() also accepts strings like '1', '127.1', some also trailing
- # data like '127.0.0.1 whatever'.
- try:
- addr = _socket.inet_aton(ipname)
- except OSError:
- # not an IPv4 address
- pass
- else:
- if _socket.inet_ntoa(addr) == ipname:
- # only accept injective ipnames
- return addr
- else:
- # refuse for short IPv4 notation and additional trailing data
- raise ValueError(
- "{!r} is not a quad-dotted IPv4 address.".format(ipname)
- )
+ # inet_aton() also accepts strings like '1', '127.1', some also trailing
+ # data like '127.0.0.1 whatever'.
+ try:
+ addr = _socket.inet_aton(ipname)
+ except OSError:
+ # not an IPv4 address
+ pass
+ else:
+ if _socket.inet_ntoa(addr) == ipname:
+ # only accept injective ipnames
+ return addr
+ else:
+ # refuse for short IPv4 notation and additional trailing data
+ raise ValueError(
+ "{!r} is not a quad-dotted IPv4 address.".format(ipname)
+ )
try:
return _socket.inet_pton(_socket.AF_INET6, ipname)
@@ -356,15 +356,15 @@ def _inet_paton(ipname):
raise ValueError("{!r} is not an IPv4 address.".format(ipname))
-def _ipaddress_match(cert_ipaddress, host_ip):
+def _ipaddress_match(cert_ipaddress, host_ip):
"""Exact matching of IP addresses.
RFC 6125 explicitly doesn't define an algorithm for this
(section 1.7.2 - "Out of Scope").
"""
- # OpenSSL may add a trailing newline to a subjectAltName's IP address,
- # commonly woth IPv6 addresses. Strip off trailing \n.
- ip = _inet_paton(cert_ipaddress.rstrip())
+ # OpenSSL may add a trailing newline to a subjectAltName's IP address,
+ # commonly woth IPv6 addresses. Strip off trailing \n.
+ ip = _inet_paton(cert_ipaddress.rstrip())
return ip == host_ip
@@ -637,83 +637,83 @@ class SSLContext(_SSLContext):
return True
@property
- def _msg_callback(self):
- """TLS message callback
-
- The message callback provides a debugging hook to analyze TLS
- connections. The callback is called for any TLS protocol message
- (header, handshake, alert, and more), but not for application data.
- Due to technical limitations, the callback can't be used to filter
- traffic or to abort a connection. Any exception raised in the
- callback is delayed until the handshake, read, or write operation
- has been performed.
-
- def msg_cb(conn, direction, version, content_type, msg_type, data):
- pass
-
- conn
- :class:`SSLSocket` or :class:`SSLObject` instance
- direction
- ``read`` or ``write``
- version
- :class:`TLSVersion` enum member or int for unknown version. For a
- frame header, it's the header version.
- content_type
- :class:`_TLSContentType` enum member or int for unsupported
- content type.
- msg_type
- Either a :class:`_TLSContentType` enum number for a header
- message, a :class:`_TLSAlertType` enum member for an alert
- message, a :class:`_TLSMessageType` enum member for other
- messages, or int for unsupported message types.
- data
- Raw, decrypted message content as bytes
- """
- inner = super()._msg_callback
- if inner is not None:
- return inner.user_function
- else:
- return None
-
- @_msg_callback.setter
- def _msg_callback(self, callback):
- if callback is None:
- super(SSLContext, SSLContext)._msg_callback.__set__(self, None)
- return
-
- if not hasattr(callback, '__call__'):
- raise TypeError(f"{callback} is not callable.")
-
- def inner(conn, direction, version, content_type, msg_type, data):
- try:
- version = TLSVersion(version)
- except ValueError:
- pass
-
- try:
- content_type = _TLSContentType(content_type)
- except ValueError:
- pass
-
- if content_type == _TLSContentType.HEADER:
- msg_enum = _TLSContentType
- elif content_type == _TLSContentType.ALERT:
- msg_enum = _TLSAlertType
- else:
- msg_enum = _TLSMessageType
- try:
- msg_type = msg_enum(msg_type)
- except ValueError:
- pass
-
- return callback(conn, direction, version,
- content_type, msg_type, data)
-
- inner.user_function = callback
-
- super(SSLContext, SSLContext)._msg_callback.__set__(self, inner)
-
- @property
+ def _msg_callback(self):
+ """TLS message callback
+
+ The message callback provides a debugging hook to analyze TLS
+ connections. The callback is called for any TLS protocol message
+ (header, handshake, alert, and more), but not for application data.
+ Due to technical limitations, the callback can't be used to filter
+ traffic or to abort a connection. Any exception raised in the
+ callback is delayed until the handshake, read, or write operation
+ has been performed.
+
+ def msg_cb(conn, direction, version, content_type, msg_type, data):
+ pass
+
+ conn
+ :class:`SSLSocket` or :class:`SSLObject` instance
+ direction
+ ``read`` or ``write``
+ version
+ :class:`TLSVersion` enum member or int for unknown version. For a
+ frame header, it's the header version.
+ content_type
+ :class:`_TLSContentType` enum member or int for unsupported
+ content type.
+ msg_type
+ Either a :class:`_TLSContentType` enum number for a header
+ message, a :class:`_TLSAlertType` enum member for an alert
+ message, a :class:`_TLSMessageType` enum member for other
+ messages, or int for unsupported message types.
+ data
+ Raw, decrypted message content as bytes
+ """
+ inner = super()._msg_callback
+ if inner is not None:
+ return inner.user_function
+ else:
+ return None
+
+ @_msg_callback.setter
+ def _msg_callback(self, callback):
+ if callback is None:
+ super(SSLContext, SSLContext)._msg_callback.__set__(self, None)
+ return
+
+ if not hasattr(callback, '__call__'):
+ raise TypeError(f"{callback} is not callable.")
+
+ def inner(conn, direction, version, content_type, msg_type, data):
+ try:
+ version = TLSVersion(version)
+ except ValueError:
+ pass
+
+ try:
+ content_type = _TLSContentType(content_type)
+ except ValueError:
+ pass
+
+ if content_type == _TLSContentType.HEADER:
+ msg_enum = _TLSContentType
+ elif content_type == _TLSContentType.ALERT:
+ msg_enum = _TLSAlertType
+ else:
+ msg_enum = _TLSMessageType
+ try:
+ msg_type = msg_enum(msg_type)
+ except ValueError:
+ pass
+
+ return callback(conn, direction, version,
+ content_type, msg_type, data)
+
+ inner.user_function = callback
+
+ super(SSLContext, SSLContext)._msg_callback.__set__(self, inner)
+
+ @property
def protocol(self):
return _SSLMethod(super().protocol)
@@ -766,11 +766,11 @@ def create_default_context(purpose=Purpose.SERVER_AUTH, *, cafile=None,
# CERT_OPTIONAL or CERT_REQUIRED. Let's try to load default system
# root CA certificates for the given purpose. This may fail silently.
context.load_default_certs(purpose)
- # OpenSSL 1.1.1 keylog file
- if hasattr(context, 'keylog_filename'):
- keylogfile = os.environ.get('SSLKEYLOGFILE')
- if keylogfile and not sys.flags.ignore_environment:
- context.keylog_filename = keylogfile
+ # OpenSSL 1.1.1 keylog file
+ if hasattr(context, 'keylog_filename'):
+ keylogfile = os.environ.get('SSLKEYLOGFILE')
+ if keylogfile and not sys.flags.ignore_environment:
+ context.keylog_filename = keylogfile
return context
def _create_unverified_context(protocol=PROTOCOL_TLS, *, cert_reqs=CERT_NONE,
@@ -812,11 +812,11 @@ def _create_unverified_context(protocol=PROTOCOL_TLS, *, cert_reqs=CERT_NONE,
# CERT_OPTIONAL or CERT_REQUIRED. Let's try to load default system
# root CA certificates for the given purpose. This may fail silently.
context.load_default_certs(purpose)
- # OpenSSL 1.1.1 keylog file
- if hasattr(context, 'keylog_filename'):
- keylogfile = os.environ.get('SSLKEYLOGFILE')
- if keylogfile and not sys.flags.ignore_environment:
- context.keylog_filename = keylogfile
+ # OpenSSL 1.1.1 keylog file
+ if hasattr(context, 'keylog_filename'):
+ keylogfile = os.environ.get('SSLKEYLOGFILE')
+ if keylogfile and not sys.flags.ignore_environment:
+ context.keylog_filename = keylogfile
return context
# Used by http.client if no context is explicitly passed.
@@ -891,7 +891,7 @@ class SSLObject:
@property
def server_hostname(self):
"""The currently set server hostname (for SNI), or ``None`` if no
- server hostname is set."""
+ server hostname is set."""
return self._sslobj.server_hostname
def read(self, len=1024, buffer=None):
@@ -980,12 +980,12 @@ class SSLObject:
return self._sslobj.verify_client_post_handshake()
-def _sslcopydoc(func):
- """Copy docstring from SSLObject to SSLSocket"""
- func.__doc__ = getattr(SSLObject, func.__name__).__doc__
- return func
-
-
+def _sslcopydoc(func):
+ """Copy docstring from SSLObject to SSLSocket"""
+ func.__doc__ = getattr(SSLObject, func.__name__).__doc__
+ return func
+
+
class SSLSocket(socket):
"""This class implements a subtype of socket.socket that wraps
the underlying OS socket in an SSL context when necessary, and
@@ -1062,7 +1062,7 @@ class SSLSocket(socket):
return self
@property
- @_sslcopydoc
+ @_sslcopydoc
def context(self):
return self._context
@@ -1072,7 +1072,7 @@ class SSLSocket(socket):
self._sslobj.context = ctx
@property
- @_sslcopydoc
+ @_sslcopydoc
def session(self):
if self._sslobj is not None:
return self._sslobj.session
@@ -1084,7 +1084,7 @@ class SSLSocket(socket):
self._sslobj.session = session
@property
- @_sslcopydoc
+ @_sslcopydoc
def session_reused(self):
if self._sslobj is not None:
return self._sslobj.session_reused
@@ -1135,13 +1135,13 @@ class SSLSocket(socket):
raise ValueError("Write on closed or unwrapped SSL socket.")
return self._sslobj.write(data)
- @_sslcopydoc
+ @_sslcopydoc
def getpeercert(self, binary_form=False):
self._checkClosed()
self._check_connected()
return self._sslobj.getpeercert(binary_form)
- @_sslcopydoc
+ @_sslcopydoc
def selected_npn_protocol(self):
self._checkClosed()
if self._sslobj is None or not _ssl.HAS_NPN:
@@ -1149,7 +1149,7 @@ class SSLSocket(socket):
else:
return self._sslobj.selected_npn_protocol()
- @_sslcopydoc
+ @_sslcopydoc
def selected_alpn_protocol(self):
self._checkClosed()
if self._sslobj is None or not _ssl.HAS_ALPN:
@@ -1157,7 +1157,7 @@ class SSLSocket(socket):
else:
return self._sslobj.selected_alpn_protocol()
- @_sslcopydoc
+ @_sslcopydoc
def cipher(self):
self._checkClosed()
if self._sslobj is None:
@@ -1165,7 +1165,7 @@ class SSLSocket(socket):
else:
return self._sslobj.cipher()
- @_sslcopydoc
+ @_sslcopydoc
def shared_ciphers(self):
self._checkClosed()
if self._sslobj is None:
@@ -1173,7 +1173,7 @@ class SSLSocket(socket):
else:
return self._sslobj.shared_ciphers()
- @_sslcopydoc
+ @_sslcopydoc
def compression(self):
self._checkClosed()
if self._sslobj is None:
@@ -1284,7 +1284,7 @@ class SSLSocket(socket):
raise NotImplementedError("recvmsg_into not allowed on instances of "
"%s" % self.__class__)
- @_sslcopydoc
+ @_sslcopydoc
def pending(self):
self._checkClosed()
if self._sslobj is not None:
@@ -1297,7 +1297,7 @@ class SSLSocket(socket):
self._sslobj = None
super().shutdown(how)
- @_sslcopydoc
+ @_sslcopydoc
def unwrap(self):
if self._sslobj:
s = self._sslobj.shutdown()
@@ -1306,7 +1306,7 @@ class SSLSocket(socket):
else:
raise ValueError("No SSL wrapper around " + str(self))
- @_sslcopydoc
+ @_sslcopydoc
def verify_client_post_handshake(self):
if self._sslobj:
return self._sslobj.verify_client_post_handshake()
@@ -1317,7 +1317,7 @@ class SSLSocket(socket):
self._sslobj = None
super()._real_close()
- @_sslcopydoc
+ @_sslcopydoc
def do_handshake(self, block=False):
self._check_connected()
timeout = self.gettimeout()
@@ -1376,7 +1376,7 @@ class SSLSocket(socket):
server_side=True)
return newsock, addr
- @_sslcopydoc
+ @_sslcopydoc
def get_channel_binding(self, cb_type="tls-unique"):
if self._sslobj is not None:
return self._sslobj.get_channel_binding(cb_type)
@@ -1387,7 +1387,7 @@ class SSLSocket(socket):
)
return None
- @_sslcopydoc
+ @_sslcopydoc
def version(self):
if self._sslobj is not None:
return self._sslobj.version()
diff --git a/contrib/tools/python3/src/Lib/stat.py b/contrib/tools/python3/src/Lib/stat.py
index 91ef0f7999..fc024db3f4 100644
--- a/contrib/tools/python3/src/Lib/stat.py
+++ b/contrib/tools/python3/src/Lib/stat.py
@@ -40,10 +40,10 @@ S_IFREG = 0o100000 # regular file
S_IFIFO = 0o010000 # fifo (named pipe)
S_IFLNK = 0o120000 # symbolic link
S_IFSOCK = 0o140000 # socket file
-# Fallbacks for uncommon platform-specific constants
-S_IFDOOR = 0
-S_IFPORT = 0
-S_IFWHT = 0
+# Fallbacks for uncommon platform-specific constants
+S_IFDOOR = 0
+S_IFPORT = 0
+S_IFWHT = 0
# Functions to test for each file type
@@ -75,18 +75,18 @@ def S_ISSOCK(mode):
"""Return True if mode is from a socket."""
return S_IFMT(mode) == S_IFSOCK
-def S_ISDOOR(mode):
- """Return True if mode is from a door."""
- return False
-
-def S_ISPORT(mode):
- """Return True if mode is from an event port."""
- return False
-
-def S_ISWHT(mode):
- """Return True if mode is from a whiteout."""
- return False
-
+def S_ISDOOR(mode):
+ """Return True if mode is from a door."""
+ return False
+
+def S_ISPORT(mode):
+ """Return True if mode is from an event port."""
+ return False
+
+def S_ISWHT(mode):
+ """Return True if mode is from a whiteout."""
+ return False
+
# Names for permission bits
S_ISUID = 0o4000 # set UID bit
@@ -127,7 +127,7 @@ SF_SNAPSHOT = 0x00200000 # file is a snapshot file
_filemode_table = (
((S_IFLNK, "l"),
- (S_IFSOCK, "s"), # Must appear before IFREG and IFDIR as IFSOCK == IFREG | IFDIR
+ (S_IFSOCK, "s"), # Must appear before IFREG and IFDIR as IFSOCK == IFREG | IFDIR
(S_IFREG, "-"),
(S_IFBLK, "b"),
(S_IFDIR, "d"),
diff --git a/contrib/tools/python3/src/Lib/statistics.py b/contrib/tools/python3/src/Lib/statistics.py
index c82ef879db..463ac9e92c 100644
--- a/contrib/tools/python3/src/Lib/statistics.py
+++ b/contrib/tools/python3/src/Lib/statistics.py
@@ -7,21 +7,21 @@ averages, variance, and standard deviation.
Calculating averages
--------------------
-================== ==================================================
+================== ==================================================
Function Description
-================== ==================================================
+================== ==================================================
mean Arithmetic mean (average) of data.
-fmean Fast, floating point arithmetic mean.
-geometric_mean Geometric mean of data.
+fmean Fast, floating point arithmetic mean.
+geometric_mean Geometric mean of data.
harmonic_mean Harmonic mean of data.
median Median (middle value) of data.
median_low Low median of data.
median_high High median of data.
median_grouped Median, or 50th percentile, of grouped data.
mode Mode (most common value) of data.
-multimode List of modes (most common values of data).
-quantiles Divide data into intervals with equal probability.
-================== ==================================================
+multimode List of modes (most common values of data).
+quantiles Divide data into intervals with equal probability.
+================== ==================================================
Calculate the arithmetic mean ("the average") of data:
@@ -80,37 +80,37 @@ A single exception is defined: StatisticsError is a subclass of ValueError.
"""
-__all__ = [
- 'NormalDist',
- 'StatisticsError',
- 'fmean',
- 'geometric_mean',
- 'harmonic_mean',
- 'mean',
- 'median',
- 'median_grouped',
- 'median_high',
- 'median_low',
- 'mode',
- 'multimode',
- 'pstdev',
- 'pvariance',
- 'quantiles',
- 'stdev',
- 'variance',
-]
+__all__ = [
+ 'NormalDist',
+ 'StatisticsError',
+ 'fmean',
+ 'geometric_mean',
+ 'harmonic_mean',
+ 'mean',
+ 'median',
+ 'median_grouped',
+ 'median_high',
+ 'median_low',
+ 'mode',
+ 'multimode',
+ 'pstdev',
+ 'pvariance',
+ 'quantiles',
+ 'stdev',
+ 'variance',
+]
import math
import numbers
-import random
+import random
from fractions import Fraction
from decimal import Decimal
from itertools import groupby
from bisect import bisect_left, bisect_right
-from math import hypot, sqrt, fabs, exp, erf, tau, log, fsum
-from operator import itemgetter
-from collections import Counter
+from math import hypot, sqrt, fabs, exp, erf, tau, log, fsum
+from operator import itemgetter
+from collections import Counter
# === Exceptions ===
@@ -163,7 +163,7 @@ def _sum(data, start=0):
T = _coerce(int, type(start))
for typ, values in groupby(data, type):
T = _coerce(T, typ) # or raise TypeError
- for n, d in map(_exact_ratio, values):
+ for n, d in map(_exact_ratio, values):
count += 1
partials[d] = partials_get(d, 0) + n
if None in partials:
@@ -261,7 +261,7 @@ def _convert(value, T):
return T(value)
except TypeError:
if issubclass(T, Decimal):
- return T(value.numerator) / T(value.denominator)
+ return T(value.numerator) / T(value.denominator)
else:
raise
@@ -277,8 +277,8 @@ def _find_lteq(a, x):
def _find_rteq(a, l, x):
'Locate the rightmost value exactly equal to x'
i = bisect_right(a, x, lo=l)
- if i != (len(a) + 1) and a[i - 1] == x:
- return i - 1
+ if i != (len(a) + 1) and a[i - 1] == x:
+ return i - 1
raise ValueError
@@ -315,55 +315,55 @@ def mean(data):
raise StatisticsError('mean requires at least one data point')
T, total, count = _sum(data)
assert count == n
- return _convert(total / n, T)
-
-
-def fmean(data):
- """Convert data to floats and compute the arithmetic mean.
-
- This runs faster than the mean() function and it always returns a float.
- If the input dataset is empty, it raises a StatisticsError.
-
- >>> fmean([3.5, 4.0, 5.25])
- 4.25
- """
- try:
- n = len(data)
- except TypeError:
- # Handle iterators that do not define __len__().
- n = 0
- def count(iterable):
- nonlocal n
- for n, x in enumerate(iterable, start=1):
- yield x
- total = fsum(count(data))
- else:
- total = fsum(data)
- try:
- return total / n
- except ZeroDivisionError:
- raise StatisticsError('fmean requires at least one data point') from None
-
-
-def geometric_mean(data):
- """Convert data to floats and compute the geometric mean.
-
- Raises a StatisticsError if the input dataset is empty,
- if it contains a zero, or if it contains a negative value.
-
- No special efforts are made to achieve exact results.
- (However, this may change in the future.)
-
- >>> round(geometric_mean([54, 24, 36]), 9)
- 36.0
- """
- try:
- return exp(fmean(map(log, data)))
- except ValueError:
- raise StatisticsError('geometric mean requires a non-empty dataset '
- 'containing positive numbers') from None
-
-
+ return _convert(total / n, T)
+
+
+def fmean(data):
+ """Convert data to floats and compute the arithmetic mean.
+
+ This runs faster than the mean() function and it always returns a float.
+ If the input dataset is empty, it raises a StatisticsError.
+
+ >>> fmean([3.5, 4.0, 5.25])
+ 4.25
+ """
+ try:
+ n = len(data)
+ except TypeError:
+ # Handle iterators that do not define __len__().
+ n = 0
+ def count(iterable):
+ nonlocal n
+ for n, x in enumerate(iterable, start=1):
+ yield x
+ total = fsum(count(data))
+ else:
+ total = fsum(data)
+ try:
+ return total / n
+ except ZeroDivisionError:
+ raise StatisticsError('fmean requires at least one data point') from None
+
+
+def geometric_mean(data):
+ """Convert data to floats and compute the geometric mean.
+
+ Raises a StatisticsError if the input dataset is empty,
+ if it contains a zero, or if it contains a negative value.
+
+ No special efforts are made to achieve exact results.
+ (However, this may change in the future.)
+
+ >>> round(geometric_mean([54, 24, 36]), 9)
+ 36.0
+ """
+ try:
+ return exp(fmean(map(log, data)))
+ except ValueError:
+ raise StatisticsError('geometric mean requires a non-empty dataset '
+ 'containing positive numbers') from None
+
+
def harmonic_mean(data):
"""Return the harmonic mean of data.
@@ -403,11 +403,11 @@ def harmonic_mean(data):
else:
raise TypeError('unsupported type')
try:
- T, total, count = _sum(1 / x for x in _fail_neg(data, errmsg))
+ T, total, count = _sum(1 / x for x in _fail_neg(data, errmsg))
except ZeroDivisionError:
return 0
assert count == n
- return _convert(n / total, T)
+ return _convert(n / total, T)
# FIXME: investigate ways to calculate medians without sorting? Quickselect?
@@ -428,11 +428,11 @@ def median(data):
n = len(data)
if n == 0:
raise StatisticsError("no median for empty data")
- if n % 2 == 1:
- return data[n // 2]
+ if n % 2 == 1:
+ return data[n // 2]
else:
- i = n // 2
- return (data[i - 1] + data[i]) / 2
+ i = n // 2
+ return (data[i - 1] + data[i]) / 2
def median_low(data):
@@ -451,10 +451,10 @@ def median_low(data):
n = len(data)
if n == 0:
raise StatisticsError("no median for empty data")
- if n % 2 == 1:
- return data[n // 2]
+ if n % 2 == 1:
+ return data[n // 2]
else:
- return data[n // 2 - 1]
+ return data[n // 2 - 1]
def median_high(data):
@@ -473,7 +473,7 @@ def median_high(data):
n = len(data)
if n == 0:
raise StatisticsError("no median for empty data")
- return data[n // 2]
+ return data[n // 2]
def median_grouped(data, interval=1):
@@ -510,15 +510,15 @@ def median_grouped(data, interval=1):
return data[0]
# Find the value at the midpoint. Remember this corresponds to the
# centre of the class interval.
- x = data[n // 2]
+ x = data[n // 2]
for obj in (x, interval):
if isinstance(obj, (str, bytes)):
raise TypeError('expected number but got %r' % obj)
try:
- L = x - interval / 2 # The lower limit of the median interval.
+ L = x - interval / 2 # The lower limit of the median interval.
except TypeError:
# Mixed type. For now we just coerce to float.
- L = float(x) - float(interval) / 2
+ L = float(x) - float(interval) / 2
# Uses bisection search to search for x in data with log(n) time complexity
# Find the position of leftmost occurrence of x in data
@@ -528,7 +528,7 @@ def median_grouped(data, interval=1):
l2 = _find_rteq(data, l1, x)
cf = l1
f = l2 - l1 + 1
- return L + interval * (n / 2 - cf) / f
+ return L + interval * (n / 2 - cf) / f
def mode(data):
@@ -537,128 +537,128 @@ def mode(data):
``mode`` assumes discrete data, and returns a single value. This is the
standard treatment of the mode as commonly taught in schools:
- >>> mode([1, 1, 2, 3, 3, 3, 3, 4])
- 3
+ >>> mode([1, 1, 2, 3, 3, 3, 3, 4])
+ 3
This also works with nominal (non-numeric) data:
- >>> mode(["red", "blue", "blue", "red", "green", "red", "red"])
- 'red'
-
- If there are multiple modes with same frequency, return the first one
- encountered:
-
- >>> mode(['red', 'red', 'green', 'blue', 'blue'])
- 'red'
-
- If *data* is empty, ``mode``, raises StatisticsError.
-
+ >>> mode(["red", "blue", "blue", "red", "green", "red", "red"])
+ 'red'
+
+ If there are multiple modes with same frequency, return the first one
+ encountered:
+
+ >>> mode(['red', 'red', 'green', 'blue', 'blue'])
+ 'red'
+
+ If *data* is empty, ``mode``, raises StatisticsError.
+
+ """
+ pairs = Counter(iter(data)).most_common(1)
+ try:
+ return pairs[0][0]
+ except IndexError:
+ raise StatisticsError('no mode for empty data') from None
+
+
+def multimode(data):
+ """Return a list of the most frequently occurring values.
+
+ Will return more than one result if there are multiple modes
+ or an empty list if *data* is empty.
+
+ >>> multimode('aabbbbbbbbcc')
+ ['b']
+ >>> multimode('aabbbbccddddeeffffgg')
+ ['b', 'd', 'f']
+ >>> multimode('')
+ []
+ """
+ counts = Counter(iter(data)).most_common()
+ maxcount, mode_items = next(groupby(counts, key=itemgetter(1)), (0, []))
+ return list(map(itemgetter(0), mode_items))
+
+
+# Notes on methods for computing quantiles
+# ----------------------------------------
+#
+# There is no one perfect way to compute quantiles. Here we offer
+# two methods that serve common needs. Most other packages
+# surveyed offered at least one or both of these two, making them
+# "standard" in the sense of "widely-adopted and reproducible".
+# They are also easy to explain, easy to compute manually, and have
+# straight-forward interpretations that aren't surprising.
+
+# The default method is known as "R6", "PERCENTILE.EXC", or "expected
+# value of rank order statistics". The alternative method is known as
+# "R7", "PERCENTILE.INC", or "mode of rank order statistics".
+
+# For sample data where there is a positive probability for values
+# beyond the range of the data, the R6 exclusive method is a
+# reasonable choice. Consider a random sample of nine values from a
+# population with a uniform distribution from 0.0 to 1.0. The
+# distribution of the third ranked sample point is described by
+# betavariate(alpha=3, beta=7) which has mode=0.250, median=0.286, and
+# mean=0.300. Only the latter (which corresponds with R6) gives the
+# desired cut point with 30% of the population falling below that
+# value, making it comparable to a result from an inv_cdf() function.
+# The R6 exclusive method is also idempotent.
+
+# For describing population data where the end points are known to
+# be included in the data, the R7 inclusive method is a reasonable
+# choice. Instead of the mean, it uses the mode of the beta
+# distribution for the interior points. Per Hyndman & Fan, "One nice
+# property is that the vertices of Q7(p) divide the range into n - 1
+# intervals, and exactly 100p% of the intervals lie to the left of
+# Q7(p) and 100(1 - p)% of the intervals lie to the right of Q7(p)."
+
+# If needed, other methods could be added. However, for now, the
+# position is that fewer options make for easier choices and that
+# external packages can be used for anything more advanced.
+
+def quantiles(data, *, n=4, method='exclusive'):
+ """Divide *data* into *n* continuous intervals with equal probability.
+
+ Returns a list of (n - 1) cut points separating the intervals.
+
+ Set *n* to 4 for quartiles (the default). Set *n* to 10 for deciles.
+ Set *n* to 100 for percentiles which gives the 99 cuts points that
+ separate *data* in to 100 equal sized groups.
+
+ The *data* can be any iterable containing sample.
+ The cut points are linearly interpolated between data points.
+
+ If *method* is set to *inclusive*, *data* is treated as population
+ data. The minimum value is treated as the 0th percentile and the
+ maximum value is treated as the 100th percentile.
"""
- pairs = Counter(iter(data)).most_common(1)
- try:
- return pairs[0][0]
- except IndexError:
- raise StatisticsError('no mode for empty data') from None
-
-
-def multimode(data):
- """Return a list of the most frequently occurring values.
-
- Will return more than one result if there are multiple modes
- or an empty list if *data* is empty.
-
- >>> multimode('aabbbbbbbbcc')
- ['b']
- >>> multimode('aabbbbccddddeeffffgg')
- ['b', 'd', 'f']
- >>> multimode('')
- []
- """
- counts = Counter(iter(data)).most_common()
- maxcount, mode_items = next(groupby(counts, key=itemgetter(1)), (0, []))
- return list(map(itemgetter(0), mode_items))
-
-
-# Notes on methods for computing quantiles
-# ----------------------------------------
-#
-# There is no one perfect way to compute quantiles. Here we offer
-# two methods that serve common needs. Most other packages
-# surveyed offered at least one or both of these two, making them
-# "standard" in the sense of "widely-adopted and reproducible".
-# They are also easy to explain, easy to compute manually, and have
-# straight-forward interpretations that aren't surprising.
-
-# The default method is known as "R6", "PERCENTILE.EXC", or "expected
-# value of rank order statistics". The alternative method is known as
-# "R7", "PERCENTILE.INC", or "mode of rank order statistics".
-
-# For sample data where there is a positive probability for values
-# beyond the range of the data, the R6 exclusive method is a
-# reasonable choice. Consider a random sample of nine values from a
-# population with a uniform distribution from 0.0 to 1.0. The
-# distribution of the third ranked sample point is described by
-# betavariate(alpha=3, beta=7) which has mode=0.250, median=0.286, and
-# mean=0.300. Only the latter (which corresponds with R6) gives the
-# desired cut point with 30% of the population falling below that
-# value, making it comparable to a result from an inv_cdf() function.
-# The R6 exclusive method is also idempotent.
-
-# For describing population data where the end points are known to
-# be included in the data, the R7 inclusive method is a reasonable
-# choice. Instead of the mean, it uses the mode of the beta
-# distribution for the interior points. Per Hyndman & Fan, "One nice
-# property is that the vertices of Q7(p) divide the range into n - 1
-# intervals, and exactly 100p% of the intervals lie to the left of
-# Q7(p) and 100(1 - p)% of the intervals lie to the right of Q7(p)."
-
-# If needed, other methods could be added. However, for now, the
-# position is that fewer options make for easier choices and that
-# external packages can be used for anything more advanced.
-
-def quantiles(data, *, n=4, method='exclusive'):
- """Divide *data* into *n* continuous intervals with equal probability.
-
- Returns a list of (n - 1) cut points separating the intervals.
-
- Set *n* to 4 for quartiles (the default). Set *n* to 10 for deciles.
- Set *n* to 100 for percentiles which gives the 99 cuts points that
- separate *data* in to 100 equal sized groups.
-
- The *data* can be any iterable containing sample.
- The cut points are linearly interpolated between data points.
-
- If *method* is set to *inclusive*, *data* is treated as population
- data. The minimum value is treated as the 0th percentile and the
- maximum value is treated as the 100th percentile.
- """
- if n < 1:
- raise StatisticsError('n must be at least 1')
- data = sorted(data)
- ld = len(data)
- if ld < 2:
- raise StatisticsError('must have at least two data points')
- if method == 'inclusive':
- m = ld - 1
- result = []
- for i in range(1, n):
- j, delta = divmod(i * m, n)
- interpolated = (data[j] * (n - delta) + data[j + 1] * delta) / n
- result.append(interpolated)
- return result
- if method == 'exclusive':
- m = ld + 1
- result = []
- for i in range(1, n):
- j = i * m // n # rescale i to m/n
- j = 1 if j < 1 else ld-1 if j > ld-1 else j # clamp to 1 .. ld-1
- delta = i*m - j*n # exact integer math
- interpolated = (data[j - 1] * (n - delta) + data[j] * delta) / n
- result.append(interpolated)
- return result
- raise ValueError(f'Unknown method: {method!r}')
-
-
+ if n < 1:
+ raise StatisticsError('n must be at least 1')
+ data = sorted(data)
+ ld = len(data)
+ if ld < 2:
+ raise StatisticsError('must have at least two data points')
+ if method == 'inclusive':
+ m = ld - 1
+ result = []
+ for i in range(1, n):
+ j, delta = divmod(i * m, n)
+ interpolated = (data[j] * (n - delta) + data[j + 1] * delta) / n
+ result.append(interpolated)
+ return result
+ if method == 'exclusive':
+ m = ld + 1
+ result = []
+ for i in range(1, n):
+ j = i * m // n # rescale i to m/n
+ j = 1 if j < 1 else ld-1 if j > ld-1 else j # clamp to 1 .. ld-1
+ delta = i*m - j*n # exact integer math
+ interpolated = (data[j - 1] * (n - delta) + data[j] * delta) / n
+ result.append(interpolated)
+ return result
+ raise ValueError(f'Unknown method: {method!r}')
+
+
# === Measures of spread ===
# See http://mathworld.wolfram.com/Variance.html
@@ -680,16 +680,16 @@ def _ss(data, c=None):
calculated from ``c`` as given. Use the second case with care, as it can
lead to garbage results.
"""
- if c is not None:
- T, total, count = _sum((x-c)**2 for x in data)
- return (T, total)
- c = mean(data)
+ if c is not None:
+ T, total, count = _sum((x-c)**2 for x in data)
+ return (T, total)
+ c = mean(data)
T, total, count = _sum((x-c)**2 for x in data)
# The following sum should mathematically equal zero, but due to rounding
# error may not.
- U, total2, count2 = _sum((x - c) for x in data)
+ U, total2, count2 = _sum((x - c) for x in data)
assert T == U and count == count2
- total -= total2 ** 2 / len(data)
+ total -= total2 ** 2 / len(data)
assert not total < 0, 'negative sum of square deviations: %f' % total
return (T, total)
@@ -738,13 +738,13 @@ def variance(data, xbar=None):
if n < 2:
raise StatisticsError('variance requires at least two data points')
T, ss = _ss(data, xbar)
- return _convert(ss / (n - 1), T)
+ return _convert(ss / (n - 1), T)
def pvariance(data, mu=None):
"""Return the population variance of ``data``.
- data should be a sequence or iterable of Real-valued numbers, with at least one
+ data should be a sequence or iterable of Real-valued numbers, with at least one
value. The optional argument mu, if given, should be the mean of
the data. If it is missing or None, the mean is automatically calculated.
@@ -782,7 +782,7 @@ def pvariance(data, mu=None):
if n < 1:
raise StatisticsError('pvariance requires at least one data point')
T, ss = _ss(data, mu)
- return _convert(ss / n, T)
+ return _convert(ss / n, T)
def stdev(data, xbar=None):
@@ -815,306 +815,306 @@ def pstdev(data, mu=None):
return var.sqrt()
except AttributeError:
return math.sqrt(var)
-
-
-## Normal Distribution #####################################################
-
-
-def _normal_dist_inv_cdf(p, mu, sigma):
- # There is no closed-form solution to the inverse CDF for the normal
- # distribution, so we use a rational approximation instead:
- # Wichura, M.J. (1988). "Algorithm AS241: The Percentage Points of the
- # Normal Distribution". Applied Statistics. Blackwell Publishing. 37
- # (3): 477–484. doi:10.2307/2347330. JSTOR 2347330.
- q = p - 0.5
- if fabs(q) <= 0.425:
- r = 0.180625 - q * q
- # Hash sum: 55.88319_28806_14901_4439
- num = (((((((2.50908_09287_30122_6727e+3 * r +
- 3.34305_75583_58812_8105e+4) * r +
- 6.72657_70927_00870_0853e+4) * r +
- 4.59219_53931_54987_1457e+4) * r +
- 1.37316_93765_50946_1125e+4) * r +
- 1.97159_09503_06551_4427e+3) * r +
- 1.33141_66789_17843_7745e+2) * r +
- 3.38713_28727_96366_6080e+0) * q
- den = (((((((5.22649_52788_52854_5610e+3 * r +
- 2.87290_85735_72194_2674e+4) * r +
- 3.93078_95800_09271_0610e+4) * r +
- 2.12137_94301_58659_5867e+4) * r +
- 5.39419_60214_24751_1077e+3) * r +
- 6.87187_00749_20579_0830e+2) * r +
- 4.23133_30701_60091_1252e+1) * r +
- 1.0)
- x = num / den
- return mu + (x * sigma)
- r = p if q <= 0.0 else 1.0 - p
- r = sqrt(-log(r))
- if r <= 5.0:
- r = r - 1.6
- # Hash sum: 49.33206_50330_16102_89036
- num = (((((((7.74545_01427_83414_07640e-4 * r +
- 2.27238_44989_26918_45833e-2) * r +
- 2.41780_72517_74506_11770e-1) * r +
- 1.27045_82524_52368_38258e+0) * r +
- 3.64784_83247_63204_60504e+0) * r +
- 5.76949_72214_60691_40550e+0) * r +
- 4.63033_78461_56545_29590e+0) * r +
- 1.42343_71107_49683_57734e+0)
- den = (((((((1.05075_00716_44416_84324e-9 * r +
- 5.47593_80849_95344_94600e-4) * r +
- 1.51986_66563_61645_71966e-2) * r +
- 1.48103_97642_74800_74590e-1) * r +
- 6.89767_33498_51000_04550e-1) * r +
- 1.67638_48301_83803_84940e+0) * r +
- 2.05319_16266_37758_82187e+0) * r +
- 1.0)
- else:
- r = r - 5.0
- # Hash sum: 47.52583_31754_92896_71629
- num = (((((((2.01033_43992_92288_13265e-7 * r +
- 2.71155_55687_43487_57815e-5) * r +
- 1.24266_09473_88078_43860e-3) * r +
- 2.65321_89526_57612_30930e-2) * r +
- 2.96560_57182_85048_91230e-1) * r +
- 1.78482_65399_17291_33580e+0) * r +
- 5.46378_49111_64114_36990e+0) * r +
- 6.65790_46435_01103_77720e+0)
- den = (((((((2.04426_31033_89939_78564e-15 * r +
- 1.42151_17583_16445_88870e-7) * r +
- 1.84631_83175_10054_68180e-5) * r +
- 7.86869_13114_56132_59100e-4) * r +
- 1.48753_61290_85061_48525e-2) * r +
- 1.36929_88092_27358_05310e-1) * r +
- 5.99832_20655_58879_37690e-1) * r +
- 1.0)
- x = num / den
- if q < 0.0:
- x = -x
- return mu + (x * sigma)
-
-
-# If available, use C implementation
-try:
- from _statistics import _normal_dist_inv_cdf
-except ImportError:
- pass
-
-
-class NormalDist:
- "Normal distribution of a random variable"
- # https://en.wikipedia.org/wiki/Normal_distribution
- # https://en.wikipedia.org/wiki/Variance#Properties
-
- __slots__ = {
- '_mu': 'Arithmetic mean of a normal distribution',
- '_sigma': 'Standard deviation of a normal distribution',
- }
-
- def __init__(self, mu=0.0, sigma=1.0):
- "NormalDist where mu is the mean and sigma is the standard deviation."
- if sigma < 0.0:
- raise StatisticsError('sigma must be non-negative')
- self._mu = float(mu)
- self._sigma = float(sigma)
-
- @classmethod
- def from_samples(cls, data):
- "Make a normal distribution instance from sample data."
- if not isinstance(data, (list, tuple)):
- data = list(data)
- xbar = fmean(data)
- return cls(xbar, stdev(data, xbar))
-
- def samples(self, n, *, seed=None):
- "Generate *n* samples for a given mean and standard deviation."
- gauss = random.gauss if seed is None else random.Random(seed).gauss
- mu, sigma = self._mu, self._sigma
- return [gauss(mu, sigma) for i in range(n)]
-
- def pdf(self, x):
- "Probability density function. P(x <= X < x+dx) / dx"
- variance = self._sigma ** 2.0
- if not variance:
- raise StatisticsError('pdf() not defined when sigma is zero')
- return exp((x - self._mu)**2.0 / (-2.0*variance)) / sqrt(tau*variance)
-
- def cdf(self, x):
- "Cumulative distribution function. P(X <= x)"
- if not self._sigma:
- raise StatisticsError('cdf() not defined when sigma is zero')
- return 0.5 * (1.0 + erf((x - self._mu) / (self._sigma * sqrt(2.0))))
-
- def inv_cdf(self, p):
- """Inverse cumulative distribution function. x : P(X <= x) = p
-
- Finds the value of the random variable such that the probability of
- the variable being less than or equal to that value equals the given
- probability.
-
- This function is also called the percent point function or quantile
- function.
- """
- if p <= 0.0 or p >= 1.0:
- raise StatisticsError('p must be in the range 0.0 < p < 1.0')
- if self._sigma <= 0.0:
- raise StatisticsError('cdf() not defined when sigma at or below zero')
- return _normal_dist_inv_cdf(p, self._mu, self._sigma)
-
- def quantiles(self, n=4):
- """Divide into *n* continuous intervals with equal probability.
-
- Returns a list of (n - 1) cut points separating the intervals.
-
- Set *n* to 4 for quartiles (the default). Set *n* to 10 for deciles.
- Set *n* to 100 for percentiles which gives the 99 cuts points that
- separate the normal distribution in to 100 equal sized groups.
- """
- return [self.inv_cdf(i / n) for i in range(1, n)]
-
- def overlap(self, other):
- """Compute the overlapping coefficient (OVL) between two normal distributions.
-
- Measures the agreement between two normal probability distributions.
- Returns a value between 0.0 and 1.0 giving the overlapping area in
- the two underlying probability density functions.
-
- >>> N1 = NormalDist(2.4, 1.6)
- >>> N2 = NormalDist(3.2, 2.0)
- >>> N1.overlap(N2)
- 0.8035050657330205
- """
- # See: "The overlapping coefficient as a measure of agreement between
- # probability distributions and point estimation of the overlap of two
- # normal densities" -- Henry F. Inman and Edwin L. Bradley Jr
- # http://dx.doi.org/10.1080/03610928908830127
- if not isinstance(other, NormalDist):
- raise TypeError('Expected another NormalDist instance')
- X, Y = self, other
- if (Y._sigma, Y._mu) < (X._sigma, X._mu): # sort to assure commutativity
- X, Y = Y, X
- X_var, Y_var = X.variance, Y.variance
- if not X_var or not Y_var:
- raise StatisticsError('overlap() not defined when sigma is zero')
- dv = Y_var - X_var
- dm = fabs(Y._mu - X._mu)
- if not dv:
- return 1.0 - erf(dm / (2.0 * X._sigma * sqrt(2.0)))
- a = X._mu * Y_var - Y._mu * X_var
- b = X._sigma * Y._sigma * sqrt(dm**2.0 + dv * log(Y_var / X_var))
- x1 = (a + b) / dv
- x2 = (a - b) / dv
- return 1.0 - (fabs(Y.cdf(x1) - X.cdf(x1)) + fabs(Y.cdf(x2) - X.cdf(x2)))
-
- def zscore(self, x):
- """Compute the Standard Score. (x - mean) / stdev
-
- Describes *x* in terms of the number of standard deviations
- above or below the mean of the normal distribution.
- """
- # https://www.statisticshowto.com/probability-and-statistics/z-score/
- if not self._sigma:
- raise StatisticsError('zscore() not defined when sigma is zero')
- return (x - self._mu) / self._sigma
-
- @property
- def mean(self):
- "Arithmetic mean of the normal distribution."
- return self._mu
-
- @property
- def median(self):
- "Return the median of the normal distribution"
- return self._mu
-
- @property
- def mode(self):
- """Return the mode of the normal distribution
-
- The mode is the value x where which the probability density
- function (pdf) takes its maximum value.
- """
- return self._mu
-
- @property
- def stdev(self):
- "Standard deviation of the normal distribution."
- return self._sigma
-
- @property
- def variance(self):
- "Square of the standard deviation."
- return self._sigma ** 2.0
-
- def __add__(x1, x2):
- """Add a constant or another NormalDist instance.
-
- If *other* is a constant, translate mu by the constant,
- leaving sigma unchanged.
-
- If *other* is a NormalDist, add both the means and the variances.
- Mathematically, this works only if the two distributions are
- independent or if they are jointly normally distributed.
- """
- if isinstance(x2, NormalDist):
- return NormalDist(x1._mu + x2._mu, hypot(x1._sigma, x2._sigma))
- return NormalDist(x1._mu + x2, x1._sigma)
-
- def __sub__(x1, x2):
- """Subtract a constant or another NormalDist instance.
-
- If *other* is a constant, translate by the constant mu,
- leaving sigma unchanged.
-
- If *other* is a NormalDist, subtract the means and add the variances.
- Mathematically, this works only if the two distributions are
- independent or if they are jointly normally distributed.
- """
- if isinstance(x2, NormalDist):
- return NormalDist(x1._mu - x2._mu, hypot(x1._sigma, x2._sigma))
- return NormalDist(x1._mu - x2, x1._sigma)
-
- def __mul__(x1, x2):
- """Multiply both mu and sigma by a constant.
-
- Used for rescaling, perhaps to change measurement units.
- Sigma is scaled with the absolute value of the constant.
- """
- return NormalDist(x1._mu * x2, x1._sigma * fabs(x2))
-
- def __truediv__(x1, x2):
- """Divide both mu and sigma by a constant.
-
- Used for rescaling, perhaps to change measurement units.
- Sigma is scaled with the absolute value of the constant.
- """
- return NormalDist(x1._mu / x2, x1._sigma / fabs(x2))
-
- def __pos__(x1):
- "Return a copy of the instance."
- return NormalDist(x1._mu, x1._sigma)
-
- def __neg__(x1):
- "Negates mu while keeping sigma the same."
- return NormalDist(-x1._mu, x1._sigma)
-
- __radd__ = __add__
-
- def __rsub__(x1, x2):
- "Subtract a NormalDist from a constant or another NormalDist."
- return -(x1 - x2)
-
- __rmul__ = __mul__
-
- def __eq__(x1, x2):
- "Two NormalDist objects are equal if their mu and sigma are both equal."
- if not isinstance(x2, NormalDist):
- return NotImplemented
- return x1._mu == x2._mu and x1._sigma == x2._sigma
-
- def __hash__(self):
- "NormalDist objects hash equal if their mu and sigma are both equal."
- return hash((self._mu, self._sigma))
-
- def __repr__(self):
- return f'{type(self).__name__}(mu={self._mu!r}, sigma={self._sigma!r})'
+
+
+## Normal Distribution #####################################################
+
+
+def _normal_dist_inv_cdf(p, mu, sigma):
+ # There is no closed-form solution to the inverse CDF for the normal
+ # distribution, so we use a rational approximation instead:
+ # Wichura, M.J. (1988). "Algorithm AS241: The Percentage Points of the
+ # Normal Distribution". Applied Statistics. Blackwell Publishing. 37
+ # (3): 477–484. doi:10.2307/2347330. JSTOR 2347330.
+ q = p - 0.5
+ if fabs(q) <= 0.425:
+ r = 0.180625 - q * q
+ # Hash sum: 55.88319_28806_14901_4439
+ num = (((((((2.50908_09287_30122_6727e+3 * r +
+ 3.34305_75583_58812_8105e+4) * r +
+ 6.72657_70927_00870_0853e+4) * r +
+ 4.59219_53931_54987_1457e+4) * r +
+ 1.37316_93765_50946_1125e+4) * r +
+ 1.97159_09503_06551_4427e+3) * r +
+ 1.33141_66789_17843_7745e+2) * r +
+ 3.38713_28727_96366_6080e+0) * q
+ den = (((((((5.22649_52788_52854_5610e+3 * r +
+ 2.87290_85735_72194_2674e+4) * r +
+ 3.93078_95800_09271_0610e+4) * r +
+ 2.12137_94301_58659_5867e+4) * r +
+ 5.39419_60214_24751_1077e+3) * r +
+ 6.87187_00749_20579_0830e+2) * r +
+ 4.23133_30701_60091_1252e+1) * r +
+ 1.0)
+ x = num / den
+ return mu + (x * sigma)
+ r = p if q <= 0.0 else 1.0 - p
+ r = sqrt(-log(r))
+ if r <= 5.0:
+ r = r - 1.6
+ # Hash sum: 49.33206_50330_16102_89036
+ num = (((((((7.74545_01427_83414_07640e-4 * r +
+ 2.27238_44989_26918_45833e-2) * r +
+ 2.41780_72517_74506_11770e-1) * r +
+ 1.27045_82524_52368_38258e+0) * r +
+ 3.64784_83247_63204_60504e+0) * r +
+ 5.76949_72214_60691_40550e+0) * r +
+ 4.63033_78461_56545_29590e+0) * r +
+ 1.42343_71107_49683_57734e+0)
+ den = (((((((1.05075_00716_44416_84324e-9 * r +
+ 5.47593_80849_95344_94600e-4) * r +
+ 1.51986_66563_61645_71966e-2) * r +
+ 1.48103_97642_74800_74590e-1) * r +
+ 6.89767_33498_51000_04550e-1) * r +
+ 1.67638_48301_83803_84940e+0) * r +
+ 2.05319_16266_37758_82187e+0) * r +
+ 1.0)
+ else:
+ r = r - 5.0
+ # Hash sum: 47.52583_31754_92896_71629
+ num = (((((((2.01033_43992_92288_13265e-7 * r +
+ 2.71155_55687_43487_57815e-5) * r +
+ 1.24266_09473_88078_43860e-3) * r +
+ 2.65321_89526_57612_30930e-2) * r +
+ 2.96560_57182_85048_91230e-1) * r +
+ 1.78482_65399_17291_33580e+0) * r +
+ 5.46378_49111_64114_36990e+0) * r +
+ 6.65790_46435_01103_77720e+0)
+ den = (((((((2.04426_31033_89939_78564e-15 * r +
+ 1.42151_17583_16445_88870e-7) * r +
+ 1.84631_83175_10054_68180e-5) * r +
+ 7.86869_13114_56132_59100e-4) * r +
+ 1.48753_61290_85061_48525e-2) * r +
+ 1.36929_88092_27358_05310e-1) * r +
+ 5.99832_20655_58879_37690e-1) * r +
+ 1.0)
+ x = num / den
+ if q < 0.0:
+ x = -x
+ return mu + (x * sigma)
+
+
+# If available, use C implementation
+try:
+ from _statistics import _normal_dist_inv_cdf
+except ImportError:
+ pass
+
+
+class NormalDist:
+ "Normal distribution of a random variable"
+ # https://en.wikipedia.org/wiki/Normal_distribution
+ # https://en.wikipedia.org/wiki/Variance#Properties
+
+ __slots__ = {
+ '_mu': 'Arithmetic mean of a normal distribution',
+ '_sigma': 'Standard deviation of a normal distribution',
+ }
+
+ def __init__(self, mu=0.0, sigma=1.0):
+ "NormalDist where mu is the mean and sigma is the standard deviation."
+ if sigma < 0.0:
+ raise StatisticsError('sigma must be non-negative')
+ self._mu = float(mu)
+ self._sigma = float(sigma)
+
+ @classmethod
+ def from_samples(cls, data):
+ "Make a normal distribution instance from sample data."
+ if not isinstance(data, (list, tuple)):
+ data = list(data)
+ xbar = fmean(data)
+ return cls(xbar, stdev(data, xbar))
+
+ def samples(self, n, *, seed=None):
+ "Generate *n* samples for a given mean and standard deviation."
+ gauss = random.gauss if seed is None else random.Random(seed).gauss
+ mu, sigma = self._mu, self._sigma
+ return [gauss(mu, sigma) for i in range(n)]
+
+ def pdf(self, x):
+ "Probability density function. P(x <= X < x+dx) / dx"
+ variance = self._sigma ** 2.0
+ if not variance:
+ raise StatisticsError('pdf() not defined when sigma is zero')
+ return exp((x - self._mu)**2.0 / (-2.0*variance)) / sqrt(tau*variance)
+
+ def cdf(self, x):
+ "Cumulative distribution function. P(X <= x)"
+ if not self._sigma:
+ raise StatisticsError('cdf() not defined when sigma is zero')
+ return 0.5 * (1.0 + erf((x - self._mu) / (self._sigma * sqrt(2.0))))
+
+ def inv_cdf(self, p):
+ """Inverse cumulative distribution function. x : P(X <= x) = p
+
+ Finds the value of the random variable such that the probability of
+ the variable being less than or equal to that value equals the given
+ probability.
+
+ This function is also called the percent point function or quantile
+ function.
+ """
+ if p <= 0.0 or p >= 1.0:
+ raise StatisticsError('p must be in the range 0.0 < p < 1.0')
+ if self._sigma <= 0.0:
+ raise StatisticsError('cdf() not defined when sigma at or below zero')
+ return _normal_dist_inv_cdf(p, self._mu, self._sigma)
+
+ def quantiles(self, n=4):
+ """Divide into *n* continuous intervals with equal probability.
+
+ Returns a list of (n - 1) cut points separating the intervals.
+
+ Set *n* to 4 for quartiles (the default). Set *n* to 10 for deciles.
+ Set *n* to 100 for percentiles which gives the 99 cuts points that
+ separate the normal distribution in to 100 equal sized groups.
+ """
+ return [self.inv_cdf(i / n) for i in range(1, n)]
+
+ def overlap(self, other):
+ """Compute the overlapping coefficient (OVL) between two normal distributions.
+
+ Measures the agreement between two normal probability distributions.
+ Returns a value between 0.0 and 1.0 giving the overlapping area in
+ the two underlying probability density functions.
+
+ >>> N1 = NormalDist(2.4, 1.6)
+ >>> N2 = NormalDist(3.2, 2.0)
+ >>> N1.overlap(N2)
+ 0.8035050657330205
+ """
+ # See: "The overlapping coefficient as a measure of agreement between
+ # probability distributions and point estimation of the overlap of two
+ # normal densities" -- Henry F. Inman and Edwin L. Bradley Jr
+ # http://dx.doi.org/10.1080/03610928908830127
+ if not isinstance(other, NormalDist):
+ raise TypeError('Expected another NormalDist instance')
+ X, Y = self, other
+ if (Y._sigma, Y._mu) < (X._sigma, X._mu): # sort to assure commutativity
+ X, Y = Y, X
+ X_var, Y_var = X.variance, Y.variance
+ if not X_var or not Y_var:
+ raise StatisticsError('overlap() not defined when sigma is zero')
+ dv = Y_var - X_var
+ dm = fabs(Y._mu - X._mu)
+ if not dv:
+ return 1.0 - erf(dm / (2.0 * X._sigma * sqrt(2.0)))
+ a = X._mu * Y_var - Y._mu * X_var
+ b = X._sigma * Y._sigma * sqrt(dm**2.0 + dv * log(Y_var / X_var))
+ x1 = (a + b) / dv
+ x2 = (a - b) / dv
+ return 1.0 - (fabs(Y.cdf(x1) - X.cdf(x1)) + fabs(Y.cdf(x2) - X.cdf(x2)))
+
+ def zscore(self, x):
+ """Compute the Standard Score. (x - mean) / stdev
+
+ Describes *x* in terms of the number of standard deviations
+ above or below the mean of the normal distribution.
+ """
+ # https://www.statisticshowto.com/probability-and-statistics/z-score/
+ if not self._sigma:
+ raise StatisticsError('zscore() not defined when sigma is zero')
+ return (x - self._mu) / self._sigma
+
+ @property
+ def mean(self):
+ "Arithmetic mean of the normal distribution."
+ return self._mu
+
+ @property
+ def median(self):
+ "Return the median of the normal distribution"
+ return self._mu
+
+ @property
+ def mode(self):
+ """Return the mode of the normal distribution
+
+ The mode is the value x where which the probability density
+ function (pdf) takes its maximum value.
+ """
+ return self._mu
+
+ @property
+ def stdev(self):
+ "Standard deviation of the normal distribution."
+ return self._sigma
+
+ @property
+ def variance(self):
+ "Square of the standard deviation."
+ return self._sigma ** 2.0
+
+ def __add__(x1, x2):
+ """Add a constant or another NormalDist instance.
+
+ If *other* is a constant, translate mu by the constant,
+ leaving sigma unchanged.
+
+ If *other* is a NormalDist, add both the means and the variances.
+ Mathematically, this works only if the two distributions are
+ independent or if they are jointly normally distributed.
+ """
+ if isinstance(x2, NormalDist):
+ return NormalDist(x1._mu + x2._mu, hypot(x1._sigma, x2._sigma))
+ return NormalDist(x1._mu + x2, x1._sigma)
+
+ def __sub__(x1, x2):
+ """Subtract a constant or another NormalDist instance.
+
+ If *other* is a constant, translate by the constant mu,
+ leaving sigma unchanged.
+
+ If *other* is a NormalDist, subtract the means and add the variances.
+ Mathematically, this works only if the two distributions are
+ independent or if they are jointly normally distributed.
+ """
+ if isinstance(x2, NormalDist):
+ return NormalDist(x1._mu - x2._mu, hypot(x1._sigma, x2._sigma))
+ return NormalDist(x1._mu - x2, x1._sigma)
+
+ def __mul__(x1, x2):
+ """Multiply both mu and sigma by a constant.
+
+ Used for rescaling, perhaps to change measurement units.
+ Sigma is scaled with the absolute value of the constant.
+ """
+ return NormalDist(x1._mu * x2, x1._sigma * fabs(x2))
+
+ def __truediv__(x1, x2):
+ """Divide both mu and sigma by a constant.
+
+ Used for rescaling, perhaps to change measurement units.
+ Sigma is scaled with the absolute value of the constant.
+ """
+ return NormalDist(x1._mu / x2, x1._sigma / fabs(x2))
+
+ def __pos__(x1):
+ "Return a copy of the instance."
+ return NormalDist(x1._mu, x1._sigma)
+
+ def __neg__(x1):
+ "Negates mu while keeping sigma the same."
+ return NormalDist(-x1._mu, x1._sigma)
+
+ __radd__ = __add__
+
+ def __rsub__(x1, x2):
+ "Subtract a NormalDist from a constant or another NormalDist."
+ return -(x1 - x2)
+
+ __rmul__ = __mul__
+
+ def __eq__(x1, x2):
+ "Two NormalDist objects are equal if their mu and sigma are both equal."
+ if not isinstance(x2, NormalDist):
+ return NotImplemented
+ return x1._mu == x2._mu and x1._sigma == x2._sigma
+
+ def __hash__(self):
+ "NormalDist objects hash equal if their mu and sigma are both equal."
+ return hash((self._mu, self._sigma))
+
+ def __repr__(self):
+ return f'{type(self).__name__}(mu={self._mu!r}, sigma={self._sigma!r})'
diff --git a/contrib/tools/python3/src/Lib/string.py b/contrib/tools/python3/src/Lib/string.py
index 861f158628..489777b10c 100644
--- a/contrib/tools/python3/src/Lib/string.py
+++ b/contrib/tools/python3/src/Lib/string.py
@@ -52,9 +52,9 @@ def capwords(s, sep=None):
import re as _re
from collections import ChainMap as _ChainMap
-_sentinel_dict = {}
-
-class Template:
+_sentinel_dict = {}
+
+class Template:
"""A string class for supporting $-substitutions."""
delimiter = '$'
@@ -66,24 +66,24 @@ class Template:
braceidpattern = None
flags = _re.IGNORECASE
- def __init_subclass__(cls):
- super().__init_subclass__()
- if 'pattern' in cls.__dict__:
- pattern = cls.pattern
- else:
- delim = _re.escape(cls.delimiter)
- id = cls.idpattern
- bid = cls.braceidpattern or cls.idpattern
- pattern = fr"""
- {delim}(?:
- (?P<escaped>{delim}) | # Escape sequence of two delimiters
- (?P<named>{id}) | # delimiter and a Python identifier
- {{(?P<braced>{bid})}} | # delimiter and a braced identifier
- (?P<invalid>) # Other ill-formed delimiter exprs
- )
- """
- cls.pattern = _re.compile(pattern, cls.flags | _re.VERBOSE)
-
+ def __init_subclass__(cls):
+ super().__init_subclass__()
+ if 'pattern' in cls.__dict__:
+ pattern = cls.pattern
+ else:
+ delim = _re.escape(cls.delimiter)
+ id = cls.idpattern
+ bid = cls.braceidpattern or cls.idpattern
+ pattern = fr"""
+ {delim}(?:
+ (?P<escaped>{delim}) | # Escape sequence of two delimiters
+ (?P<named>{id}) | # delimiter and a Python identifier
+ {{(?P<braced>{bid})}} | # delimiter and a braced identifier
+ (?P<invalid>) # Other ill-formed delimiter exprs
+ )
+ """
+ cls.pattern = _re.compile(pattern, cls.flags | _re.VERBOSE)
+
def __init__(self, template):
self.template = template
@@ -101,11 +101,11 @@ class Template:
raise ValueError('Invalid placeholder in string: line %d, col %d' %
(lineno, colno))
- def substitute(self, mapping=_sentinel_dict, /, **kws):
- if mapping is _sentinel_dict:
+ def substitute(self, mapping=_sentinel_dict, /, **kws):
+ if mapping is _sentinel_dict:
mapping = kws
elif kws:
- mapping = _ChainMap(kws, mapping)
+ mapping = _ChainMap(kws, mapping)
# Helper function for .sub()
def convert(mo):
# Check the most common path first.
@@ -120,11 +120,11 @@ class Template:
self.pattern)
return self.pattern.sub(convert, self.template)
- def safe_substitute(self, mapping=_sentinel_dict, /, **kws):
- if mapping is _sentinel_dict:
+ def safe_substitute(self, mapping=_sentinel_dict, /, **kws):
+ if mapping is _sentinel_dict:
mapping = kws
elif kws:
- mapping = _ChainMap(kws, mapping)
+ mapping = _ChainMap(kws, mapping)
# Helper function for .sub()
def convert(mo):
named = mo.group('named') or mo.group('braced')
@@ -141,9 +141,9 @@ class Template:
self.pattern)
return self.pattern.sub(convert, self.template)
-# Initialize Template.pattern. __init_subclass__() is automatically called
-# only for subclasses, not for the Template class itself.
-Template.__init_subclass__()
+# Initialize Template.pattern. __init_subclass__() is automatically called
+# only for subclasses, not for the Template class itself.
+Template.__init_subclass__()
########################################################################
@@ -157,7 +157,7 @@ Template.__init_subclass__()
# The field name parser is implemented in _string.formatter_field_name_split
class Formatter:
- def format(self, format_string, /, *args, **kwargs):
+ def format(self, format_string, /, *args, **kwargs):
return self.vformat(format_string, args, kwargs)
def vformat(self, format_string, args, kwargs):
diff --git a/contrib/tools/python3/src/Lib/subprocess.py b/contrib/tools/python3/src/Lib/subprocess.py
index bcae14a411..4effc1d8b3 100644
--- a/contrib/tools/python3/src/Lib/subprocess.py
+++ b/contrib/tools/python3/src/Lib/subprocess.py
@@ -41,66 +41,66 @@ getstatusoutput(...): Runs a command in the shell, waits for it to complete,
then returns a (exitcode, output) tuple
"""
-import builtins
-import errno
+import builtins
+import errno
import io
import os
import time
import signal
-import sys
-import threading
+import sys
+import threading
import warnings
-import contextlib
+import contextlib
from time import monotonic as _time
-import types
-
-try:
- import pwd
-except ImportError:
- pwd = None
-try:
- import grp
-except ImportError:
- grp = None
-
-__all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "getstatusoutput",
- "getoutput", "check_output", "run", "CalledProcessError", "DEVNULL",
- "SubprocessError", "TimeoutExpired", "CompletedProcess"]
- # NOTE: We intentionally exclude list2cmdline as it is
- # considered an internal implementation detail. issue10838.
-
-try:
- import msvcrt
- import _winapi
- _mswindows = True
-except ModuleNotFoundError:
- _mswindows = False
- import _posixsubprocess
- import select
- import selectors
-else:
- from _winapi import (CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP,
- STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,
- STD_ERROR_HANDLE, SW_HIDE,
- STARTF_USESTDHANDLES, STARTF_USESHOWWINDOW,
- ABOVE_NORMAL_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS,
- HIGH_PRIORITY_CLASS, IDLE_PRIORITY_CLASS,
- NORMAL_PRIORITY_CLASS, REALTIME_PRIORITY_CLASS,
- CREATE_NO_WINDOW, DETACHED_PROCESS,
- CREATE_DEFAULT_ERROR_MODE, CREATE_BREAKAWAY_FROM_JOB)
-
- __all__.extend(["CREATE_NEW_CONSOLE", "CREATE_NEW_PROCESS_GROUP",
- "STD_INPUT_HANDLE", "STD_OUTPUT_HANDLE",
- "STD_ERROR_HANDLE", "SW_HIDE",
- "STARTF_USESTDHANDLES", "STARTF_USESHOWWINDOW",
- "STARTUPINFO",
- "ABOVE_NORMAL_PRIORITY_CLASS", "BELOW_NORMAL_PRIORITY_CLASS",
- "HIGH_PRIORITY_CLASS", "IDLE_PRIORITY_CLASS",
- "NORMAL_PRIORITY_CLASS", "REALTIME_PRIORITY_CLASS",
- "CREATE_NO_WINDOW", "DETACHED_PROCESS",
- "CREATE_DEFAULT_ERROR_MODE", "CREATE_BREAKAWAY_FROM_JOB"])
-
-
+import types
+
+try:
+ import pwd
+except ImportError:
+ pwd = None
+try:
+ import grp
+except ImportError:
+ grp = None
+
+__all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "getstatusoutput",
+ "getoutput", "check_output", "run", "CalledProcessError", "DEVNULL",
+ "SubprocessError", "TimeoutExpired", "CompletedProcess"]
+ # NOTE: We intentionally exclude list2cmdline as it is
+ # considered an internal implementation detail. issue10838.
+
+try:
+ import msvcrt
+ import _winapi
+ _mswindows = True
+except ModuleNotFoundError:
+ _mswindows = False
+ import _posixsubprocess
+ import select
+ import selectors
+else:
+ from _winapi import (CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP,
+ STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,
+ STD_ERROR_HANDLE, SW_HIDE,
+ STARTF_USESTDHANDLES, STARTF_USESHOWWINDOW,
+ ABOVE_NORMAL_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS,
+ HIGH_PRIORITY_CLASS, IDLE_PRIORITY_CLASS,
+ NORMAL_PRIORITY_CLASS, REALTIME_PRIORITY_CLASS,
+ CREATE_NO_WINDOW, DETACHED_PROCESS,
+ CREATE_DEFAULT_ERROR_MODE, CREATE_BREAKAWAY_FROM_JOB)
+
+ __all__.extend(["CREATE_NEW_CONSOLE", "CREATE_NEW_PROCESS_GROUP",
+ "STD_INPUT_HANDLE", "STD_OUTPUT_HANDLE",
+ "STD_ERROR_HANDLE", "SW_HIDE",
+ "STARTF_USESTDHANDLES", "STARTF_USESHOWWINDOW",
+ "STARTUPINFO",
+ "ABOVE_NORMAL_PRIORITY_CLASS", "BELOW_NORMAL_PRIORITY_CLASS",
+ "HIGH_PRIORITY_CLASS", "IDLE_PRIORITY_CLASS",
+ "NORMAL_PRIORITY_CLASS", "REALTIME_PRIORITY_CLASS",
+ "CREATE_NO_WINDOW", "DETACHED_PROCESS",
+ "CREATE_DEFAULT_ERROR_MODE", "CREATE_BREAKAWAY_FROM_JOB"])
+
+
# Exception classes used by this module.
class SubprocessError(Exception): pass
@@ -181,7 +181,7 @@ if _mswindows:
self.wShowWindow = wShowWindow
self.lpAttributeList = lpAttributeList or {"handle_list": []}
- def copy(self):
+ def copy(self):
attr_list = self.lpAttributeList.copy()
if 'handle_list' in attr_list:
attr_list['handle_list'] = list(attr_list['handle_list'])
@@ -212,54 +212,54 @@ if _mswindows:
return "%s(%d)" % (self.__class__.__name__, int(self))
__del__ = Close
-else:
- # When select or poll has indicated that the file is writable,
- # we can write up to _PIPE_BUF bytes without risk of blocking.
- # POSIX defines PIPE_BUF as >= 512.
- _PIPE_BUF = getattr(select, 'PIPE_BUF', 512)
-
- # poll/select have the advantage of not requiring any extra file
- # descriptor, contrarily to epoll/kqueue (also, they require a single
- # syscall).
- if hasattr(selectors, 'PollSelector'):
- _PopenSelector = selectors.PollSelector
- else:
- _PopenSelector = selectors.SelectSelector
-
-
-if _mswindows:
- # On Windows we just need to close `Popen._handle` when we no longer need
- # it, so that the kernel can free it. `Popen._handle` gets closed
- # implicitly when the `Popen` instance is finalized (see `Handle.__del__`,
- # which is calling `CloseHandle` as requested in [1]), so there is nothing
- # for `_cleanup` to do.
- #
- # [1] https://docs.microsoft.com/en-us/windows/desktop/ProcThread/
- # creating-processes
- _active = None
-
- def _cleanup():
- pass
-else:
- # This lists holds Popen instances for which the underlying process had not
- # exited at the time its __del__ method got called: those processes are
- # wait()ed for synchronously from _cleanup() when a new Popen object is
- # created, to avoid zombie processes.
- _active = []
-
- def _cleanup():
- if _active is None:
- return
- for inst in _active[:]:
- res = inst._internal_poll(_deadstate=sys.maxsize)
- if res is not None:
- try:
- _active.remove(inst)
- except ValueError:
- # This can happen if two threads create a new Popen instance.
- # It's harmless that it was already removed, so ignore.
- pass
-
+else:
+ # When select or poll has indicated that the file is writable,
+ # we can write up to _PIPE_BUF bytes without risk of blocking.
+ # POSIX defines PIPE_BUF as >= 512.
+ _PIPE_BUF = getattr(select, 'PIPE_BUF', 512)
+
+ # poll/select have the advantage of not requiring any extra file
+ # descriptor, contrarily to epoll/kqueue (also, they require a single
+ # syscall).
+ if hasattr(selectors, 'PollSelector'):
+ _PopenSelector = selectors.PollSelector
+ else:
+ _PopenSelector = selectors.SelectSelector
+
+
+if _mswindows:
+ # On Windows we just need to close `Popen._handle` when we no longer need
+ # it, so that the kernel can free it. `Popen._handle` gets closed
+ # implicitly when the `Popen` instance is finalized (see `Handle.__del__`,
+ # which is calling `CloseHandle` as requested in [1]), so there is nothing
+ # for `_cleanup` to do.
+ #
+ # [1] https://docs.microsoft.com/en-us/windows/desktop/ProcThread/
+ # creating-processes
+ _active = None
+
+ def _cleanup():
+ pass
+else:
+ # This lists holds Popen instances for which the underlying process had not
+ # exited at the time its __del__ method got called: those processes are
+ # wait()ed for synchronously from _cleanup() when a new Popen object is
+ # created, to avoid zombie processes.
+ _active = []
+
+ def _cleanup():
+ if _active is None:
+ return
+ for inst in _active[:]:
+ res = inst._internal_poll(_deadstate=sys.maxsize)
+ if res is not None:
+ try:
+ _active.remove(inst)
+ except ValueError:
+ # This can happen if two threads create a new Popen instance.
+ # It's harmless that it was already removed, so ignore.
+ pass
+
PIPE = -1
STDOUT = -2
DEVNULL = -3
@@ -326,7 +326,7 @@ def _args_from_interpreter_flags():
if dev_mode:
args.extend(('-X', 'dev'))
for opt in ('faulthandler', 'tracemalloc', 'importtime',
- 'showrefcount', 'utf8', 'oldparser'):
+ 'showrefcount', 'utf8', 'oldparser'):
if opt in xoptions:
value = xoptions[opt]
if value is True:
@@ -404,7 +404,7 @@ def check_output(*popenargs, timeout=None, **kwargs):
b'when in the course of barman events\n'
By default, all communication is in bytes, and therefore any "input"
- should be bytes, and the return value will be bytes. If in text mode,
+ should be bytes, and the return value will be bytes. If in text mode,
any "input" should be a string, and the return value will be a string
decoded according to locale encoding, or by "encoding" if set. Text mode
is triggered by setting any of text, encoding, errors or universal_newlines.
@@ -415,11 +415,11 @@ def check_output(*popenargs, timeout=None, **kwargs):
if 'input' in kwargs and kwargs['input'] is None:
# Explicitly passing input=None was previously equivalent to passing an
# empty string. That is maintained here for backwards compatibility.
- if kwargs.get('universal_newlines') or kwargs.get('text'):
- empty = ''
- else:
- empty = b''
- kwargs['input'] = empty
+ if kwargs.get('universal_newlines') or kwargs.get('text'):
+ empty = ''
+ else:
+ empty = b''
+ kwargs['input'] = empty
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
**kwargs).stdout
@@ -451,9 +451,9 @@ class CompletedProcess(object):
args.append('stderr={!r}'.format(self.stderr))
return "{}({})".format(type(self).__name__, ', '.join(args))
- __class_getitem__ = classmethod(types.GenericAlias)
-
-
+ __class_getitem__ = classmethod(types.GenericAlias)
+
+
def check_returncode(self):
"""Raise CalledProcessError if the exit code is non-zero."""
if self.returncode:
@@ -491,12 +491,12 @@ def run(*popenargs,
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
- if kwargs.get('stdin') is not None:
+ if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
- if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
+ if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
@@ -505,20 +505,20 @@ def run(*popenargs,
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
- except TimeoutExpired as exc:
+ except TimeoutExpired as exc:
process.kill()
- if _mswindows:
- # Windows accumulates the output in a single blocking
- # read() call run on child threads, with the timeout
- # being done in a join() on those threads. communicate()
- # _after_ kill() is required to collect that and add it
- # to the exception.
- exc.stdout, exc.stderr = process.communicate()
- else:
- # POSIX _communicate already populated the output so
- # far into the TimeoutExpired exception.
- process.wait()
- raise
+ if _mswindows:
+ # Windows accumulates the output in a single blocking
+ # read() call run on child threads, with the timeout
+ # being done in a join() on those threads. communicate()
+ # _after_ kill() is required to collect that and add it
+ # to the exception.
+ exc.stdout, exc.stderr = process.communicate()
+ else:
+ # POSIX _communicate already populated the output so
+ # far into the TimeoutExpired exception.
+ process.wait()
+ raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
@@ -562,7 +562,7 @@ def list2cmdline(seq):
# "Parsing C++ Command-Line Arguments"
result = []
needquote = False
- for arg in map(os.fsdecode, seq):
+ for arg in map(os.fsdecode, seq):
bs_buf = []
# Add a space to separate this argument from the others
@@ -647,56 +647,56 @@ def getoutput(cmd):
return getstatusoutput(cmd)[1]
-def _use_posix_spawn():
- """Check if posix_spawn() can be used for subprocess.
-
- subprocess requires a posix_spawn() implementation that properly reports
- errors to the parent process, & sets errno on the following failures:
-
- * Process attribute actions failed.
- * File actions failed.
- * exec() failed.
-
- Prefer an implementation which can use vfork() in some cases for best
- performance.
- """
- if _mswindows or not hasattr(os, 'posix_spawn'):
- # os.posix_spawn() is not available
- return False
-
- if sys.platform == 'darwin':
- # posix_spawn() is a syscall on macOS and properly reports errors
- return True
-
- # Check libc name and runtime libc version
- try:
- ver = os.confstr('CS_GNU_LIBC_VERSION')
- # parse 'glibc 2.28' as ('glibc', (2, 28))
- parts = ver.split(maxsplit=1)
- if len(parts) != 2:
- # reject unknown format
- raise ValueError
- libc = parts[0]
- version = tuple(map(int, parts[1].split('.')))
-
- if sys.platform == 'linux' and libc == 'glibc' and version >= (2, 24):
- # glibc 2.24 has a new Linux posix_spawn implementation using vfork
- # which properly reports errors to the parent process.
- return True
- # Note: Don't use the implementation in earlier glibc because it doesn't
- # use vfork (even if glibc 2.26 added a pipe to properly report errors
- # to the parent process).
- except (AttributeError, ValueError, OSError):
- # os.confstr() or CS_GNU_LIBC_VERSION value not available
- pass
-
- # By default, assume that posix_spawn() does not properly report errors.
- return False
-
-
-_USE_POSIX_SPAWN = _use_posix_spawn()
-
-
+def _use_posix_spawn():
+ """Check if posix_spawn() can be used for subprocess.
+
+ subprocess requires a posix_spawn() implementation that properly reports
+ errors to the parent process, & sets errno on the following failures:
+
+ * Process attribute actions failed.
+ * File actions failed.
+ * exec() failed.
+
+ Prefer an implementation which can use vfork() in some cases for best
+ performance.
+ """
+ if _mswindows or not hasattr(os, 'posix_spawn'):
+ # os.posix_spawn() is not available
+ return False
+
+ if sys.platform == 'darwin':
+ # posix_spawn() is a syscall on macOS and properly reports errors
+ return True
+
+ # Check libc name and runtime libc version
+ try:
+ ver = os.confstr('CS_GNU_LIBC_VERSION')
+ # parse 'glibc 2.28' as ('glibc', (2, 28))
+ parts = ver.split(maxsplit=1)
+ if len(parts) != 2:
+ # reject unknown format
+ raise ValueError
+ libc = parts[0]
+ version = tuple(map(int, parts[1].split('.')))
+
+ if sys.platform == 'linux' and libc == 'glibc' and version >= (2, 24):
+ # glibc 2.24 has a new Linux posix_spawn implementation using vfork
+ # which properly reports errors to the parent process.
+ return True
+ # Note: Don't use the implementation in earlier glibc because it doesn't
+ # use vfork (even if glibc 2.26 added a pipe to properly report errors
+ # to the parent process).
+ except (AttributeError, ValueError, OSError):
+ # os.confstr() or CS_GNU_LIBC_VERSION value not available
+ pass
+
+ # By default, assume that posix_spawn() does not properly report errors.
+ return False
+
+
+_USE_POSIX_SPAWN = _use_posix_spawn()
+
+
class Popen(object):
""" Execute a child program in a new process.
@@ -735,14 +735,14 @@ class Popen(object):
start_new_session (POSIX only)
- group (POSIX only)
-
- extra_groups (POSIX only)
-
- user (POSIX only)
-
- umask (POSIX only)
-
+ group (POSIX only)
+
+ extra_groups (POSIX only)
+
+ user (POSIX only)
+
+ umask (POSIX only)
+
pass_fds (POSIX only)
encoding and errors: Text mode encoding and error handling to use for
@@ -759,8 +759,8 @@ class Popen(object):
shell=False, cwd=None, env=None, universal_newlines=None,
startupinfo=None, creationflags=0,
restore_signals=True, start_new_session=False,
- pass_fds=(), *, user=None, group=None, extra_groups=None,
- encoding=None, errors=None, text=None, umask=-1):
+ pass_fds=(), *, user=None, group=None, extra_groups=None,
+ encoding=None, errors=None, text=None, umask=-1):
"""Create new Popen instance."""
_cleanup()
# Held while anything is calling waitpid before returncode has been
@@ -849,93 +849,93 @@ class Popen(object):
self._closed_child_pipe_fds = False
- if self.text_mode:
- if bufsize == 1:
- line_buffering = True
- # Use the default buffer size for the underlying binary streams
- # since they don't support line buffering.
- bufsize = -1
- else:
- line_buffering = False
-
- gid = None
- if group is not None:
- if not hasattr(os, 'setregid'):
- raise ValueError("The 'group' parameter is not supported on the "
- "current platform")
-
- elif isinstance(group, str):
- if grp is None:
- raise ValueError("The group parameter cannot be a string "
- "on systems without the grp module")
-
- gid = grp.getgrnam(group).gr_gid
- elif isinstance(group, int):
- gid = group
- else:
- raise TypeError("Group must be a string or an integer, not {}"
- .format(type(group)))
-
- if gid < 0:
- raise ValueError(f"Group ID cannot be negative, got {gid}")
-
- gids = None
- if extra_groups is not None:
- if not hasattr(os, 'setgroups'):
- raise ValueError("The 'extra_groups' parameter is not "
- "supported on the current platform")
-
- elif isinstance(extra_groups, str):
- raise ValueError("Groups must be a list, not a string")
-
- gids = []
- for extra_group in extra_groups:
- if isinstance(extra_group, str):
- if grp is None:
- raise ValueError("Items in extra_groups cannot be "
- "strings on systems without the "
- "grp module")
-
- gids.append(grp.getgrnam(extra_group).gr_gid)
- elif isinstance(extra_group, int):
- gids.append(extra_group)
- else:
- raise TypeError("Items in extra_groups must be a string "
- "or integer, not {}"
- .format(type(extra_group)))
-
- # make sure that the gids are all positive here so we can do less
- # checking in the C code
- for gid_check in gids:
- if gid_check < 0:
- raise ValueError(f"Group ID cannot be negative, got {gid_check}")
-
- uid = None
- if user is not None:
- if not hasattr(os, 'setreuid'):
- raise ValueError("The 'user' parameter is not supported on "
- "the current platform")
-
- elif isinstance(user, str):
- if pwd is None:
- raise ValueError("The user parameter cannot be a string "
- "on systems without the pwd module")
-
- uid = pwd.getpwnam(user).pw_uid
- elif isinstance(user, int):
- uid = user
- else:
- raise TypeError("User must be a string or an integer")
-
- if uid < 0:
- raise ValueError(f"User ID cannot be negative, got {uid}")
-
+ if self.text_mode:
+ if bufsize == 1:
+ line_buffering = True
+ # Use the default buffer size for the underlying binary streams
+ # since they don't support line buffering.
+ bufsize = -1
+ else:
+ line_buffering = False
+
+ gid = None
+ if group is not None:
+ if not hasattr(os, 'setregid'):
+ raise ValueError("The 'group' parameter is not supported on the "
+ "current platform")
+
+ elif isinstance(group, str):
+ if grp is None:
+ raise ValueError("The group parameter cannot be a string "
+ "on systems without the grp module")
+
+ gid = grp.getgrnam(group).gr_gid
+ elif isinstance(group, int):
+ gid = group
+ else:
+ raise TypeError("Group must be a string or an integer, not {}"
+ .format(type(group)))
+
+ if gid < 0:
+ raise ValueError(f"Group ID cannot be negative, got {gid}")
+
+ gids = None
+ if extra_groups is not None:
+ if not hasattr(os, 'setgroups'):
+ raise ValueError("The 'extra_groups' parameter is not "
+ "supported on the current platform")
+
+ elif isinstance(extra_groups, str):
+ raise ValueError("Groups must be a list, not a string")
+
+ gids = []
+ for extra_group in extra_groups:
+ if isinstance(extra_group, str):
+ if grp is None:
+ raise ValueError("Items in extra_groups cannot be "
+ "strings on systems without the "
+ "grp module")
+
+ gids.append(grp.getgrnam(extra_group).gr_gid)
+ elif isinstance(extra_group, int):
+ gids.append(extra_group)
+ else:
+ raise TypeError("Items in extra_groups must be a string "
+ "or integer, not {}"
+ .format(type(extra_group)))
+
+ # make sure that the gids are all positive here so we can do less
+ # checking in the C code
+ for gid_check in gids:
+ if gid_check < 0:
+ raise ValueError(f"Group ID cannot be negative, got {gid_check}")
+
+ uid = None
+ if user is not None:
+ if not hasattr(os, 'setreuid'):
+ raise ValueError("The 'user' parameter is not supported on "
+ "the current platform")
+
+ elif isinstance(user, str):
+ if pwd is None:
+ raise ValueError("The user parameter cannot be a string "
+ "on systems without the pwd module")
+
+ uid = pwd.getpwnam(user).pw_uid
+ elif isinstance(user, int):
+ uid = user
+ else:
+ raise TypeError("User must be a string or an integer")
+
+ if uid < 0:
+ raise ValueError(f"User ID cannot be negative, got {uid}")
+
try:
if p2cwrite != -1:
self.stdin = io.open(p2cwrite, 'wb', bufsize)
if self.text_mode:
self.stdin = io.TextIOWrapper(self.stdin, write_through=True,
- line_buffering=line_buffering,
+ line_buffering=line_buffering,
encoding=encoding, errors=errors)
if c2pread != -1:
self.stdout = io.open(c2pread, 'rb', bufsize)
@@ -954,9 +954,9 @@ class Popen(object):
p2cread, p2cwrite,
c2pread, c2pwrite,
errread, errwrite,
- restore_signals,
- gid, gids, uid, umask,
- start_new_session)
+ restore_signals,
+ gid, gids, uid, umask,
+ start_new_session)
except:
# Cleanup if the child failed starting.
for f in filter(None, (self.stdin, self.stdout, self.stderr)):
@@ -986,17 +986,17 @@ class Popen(object):
raise
- def __repr__(self):
- obj_repr = (
- f"<{self.__class__.__name__}: "
- f"returncode: {self.returncode} args: {self.args!r}>"
- )
- if len(obj_repr) > 80:
- obj_repr = obj_repr[:76] + "...>"
- return obj_repr
-
- __class_getitem__ = classmethod(types.GenericAlias)
-
+ def __repr__(self):
+ obj_repr = (
+ f"<{self.__class__.__name__}: "
+ f"returncode: {self.returncode} args: {self.args!r}>"
+ )
+ if len(obj_repr) > 80:
+ obj_repr = obj_repr[:76] + "...>"
+ return obj_repr
+
+ __class_getitem__ = classmethod(types.GenericAlias)
+
@property
def universal_newlines(self):
# universal_newlines as retained as an alias of text_mode for API
@@ -1169,16 +1169,16 @@ class Popen(object):
return endtime - _time()
- def _check_timeout(self, endtime, orig_timeout, stdout_seq, stderr_seq,
- skip_check_and_raise=False):
+ def _check_timeout(self, endtime, orig_timeout, stdout_seq, stderr_seq,
+ skip_check_and_raise=False):
"""Convenience for checking if a timeout has expired."""
if endtime is None:
return
- if skip_check_and_raise or _time() > endtime:
- raise TimeoutExpired(
- self.args, orig_timeout,
- output=b''.join(stdout_seq) if stdout_seq else None,
- stderr=b''.join(stderr_seq) if stderr_seq else None)
+ if skip_check_and_raise or _time() > endtime:
+ raise TimeoutExpired(
+ self.args, orig_timeout,
+ output=b''.join(stdout_seq) if stdout_seq else None,
+ stderr=b''.join(stderr_seq) if stderr_seq else None)
def wait(self, timeout=None):
@@ -1204,35 +1204,35 @@ class Popen(object):
pass
raise # resume the KeyboardInterrupt
- def _close_pipe_fds(self,
- p2cread, p2cwrite,
- c2pread, c2pwrite,
- errread, errwrite):
- # self._devnull is not always defined.
- devnull_fd = getattr(self, '_devnull', None)
-
- with contextlib.ExitStack() as stack:
- if _mswindows:
- if p2cread != -1:
- stack.callback(p2cread.Close)
- if c2pwrite != -1:
- stack.callback(c2pwrite.Close)
- if errwrite != -1:
- stack.callback(errwrite.Close)
- else:
- if p2cread != -1 and p2cwrite != -1 and p2cread != devnull_fd:
- stack.callback(os.close, p2cread)
- if c2pwrite != -1 and c2pread != -1 and c2pwrite != devnull_fd:
- stack.callback(os.close, c2pwrite)
- if errwrite != -1 and errread != -1 and errwrite != devnull_fd:
- stack.callback(os.close, errwrite)
-
- if devnull_fd is not None:
- stack.callback(os.close, devnull_fd)
-
- # Prevent a double close of these handles/fds from __init__ on error.
- self._closed_child_pipe_fds = True
-
+ def _close_pipe_fds(self,
+ p2cread, p2cwrite,
+ c2pread, c2pwrite,
+ errread, errwrite):
+ # self._devnull is not always defined.
+ devnull_fd = getattr(self, '_devnull', None)
+
+ with contextlib.ExitStack() as stack:
+ if _mswindows:
+ if p2cread != -1:
+ stack.callback(p2cread.Close)
+ if c2pwrite != -1:
+ stack.callback(c2pwrite.Close)
+ if errwrite != -1:
+ stack.callback(errwrite.Close)
+ else:
+ if p2cread != -1 and p2cwrite != -1 and p2cread != devnull_fd:
+ stack.callback(os.close, p2cread)
+ if c2pwrite != -1 and c2pread != -1 and c2pwrite != devnull_fd:
+ stack.callback(os.close, c2pwrite)
+ if errwrite != -1 and errread != -1 and errwrite != devnull_fd:
+ stack.callback(os.close, errwrite)
+
+ if devnull_fd is not None:
+ stack.callback(os.close, devnull_fd)
+
+ # Prevent a double close of these handles/fds from __init__ on error.
+ self._closed_child_pipe_fds = True
+
if _mswindows:
#
# Windows methods
@@ -1337,38 +1337,38 @@ class Popen(object):
p2cread, p2cwrite,
c2pread, c2pwrite,
errread, errwrite,
- unused_restore_signals,
- unused_gid, unused_gids, unused_uid,
- unused_umask,
- unused_start_new_session):
+ unused_restore_signals,
+ unused_gid, unused_gids, unused_uid,
+ unused_umask,
+ unused_start_new_session):
"""Execute program (MS Windows version)"""
assert not pass_fds, "pass_fds not supported on Windows."
- if isinstance(args, str):
- pass
- elif isinstance(args, bytes):
- if shell:
- raise TypeError('bytes args is not allowed on Windows')
- args = list2cmdline([args])
- elif isinstance(args, os.PathLike):
- if shell:
- raise TypeError('path-like args is not allowed when '
- 'shell is true')
- args = list2cmdline([args])
- else:
+ if isinstance(args, str):
+ pass
+ elif isinstance(args, bytes):
+ if shell:
+ raise TypeError('bytes args is not allowed on Windows')
+ args = list2cmdline([args])
+ elif isinstance(args, os.PathLike):
+ if shell:
+ raise TypeError('path-like args is not allowed when '
+ 'shell is true')
+ args = list2cmdline([args])
+ else:
args = list2cmdline(args)
- if executable is not None:
- executable = os.fsdecode(executable)
-
+ if executable is not None:
+ executable = os.fsdecode(executable)
+
# Process startup details
if startupinfo is None:
startupinfo = STARTUPINFO()
else:
# bpo-34044: Copy STARTUPINFO since it is modified above,
# so the caller can reuse it multiple times.
- startupinfo = startupinfo.copy()
+ startupinfo = startupinfo.copy()
use_std_handles = -1 not in (p2cread, c2pwrite, errwrite)
if use_std_handles:
@@ -1410,11 +1410,11 @@ class Popen(object):
comspec = os.environ.get("COMSPEC", "cmd.exe")
args = '{} /c "{}"'.format (comspec, args)
- if cwd is not None:
- cwd = os.fsdecode(cwd)
-
- sys.audit("subprocess.Popen", executable, args, cwd, env)
-
+ if cwd is not None:
+ cwd = os.fsdecode(cwd)
+
+ sys.audit("subprocess.Popen", executable, args, cwd, env)
+
# Start the process
try:
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
@@ -1423,7 +1423,7 @@ class Popen(object):
int(not close_fds),
creationflags,
env,
- cwd,
+ cwd,
startupinfo)
finally:
# Child is launched. Close the parent's copy of those pipe
@@ -1432,9 +1432,9 @@ class Popen(object):
# output pipe are maintained in this process or else the
# pipe will not close when the child process exits and the
# ReadFile will hang.
- self._close_pipe_fds(p2cread, p2cwrite,
- c2pread, c2pwrite,
- errread, errwrite)
+ self._close_pipe_fds(p2cread, p2cwrite,
+ c2pread, c2pwrite,
+ errread, errwrite)
# Retain the process handle, but close the thread handle
self._child_created = True
@@ -1525,8 +1525,8 @@ class Popen(object):
self.stderr.close()
# All data exchanged. Translate lists into strings.
- stdout = stdout[0] if stdout else None
- stderr = stderr[0] if stderr else None
+ stdout = stdout[0] if stdout else None
+ stderr = stderr[0] if stderr else None
return (stdout, stderr)
@@ -1619,63 +1619,63 @@ class Popen(object):
errread, errwrite)
- def _posix_spawn(self, args, executable, env, restore_signals,
- p2cread, p2cwrite,
- c2pread, c2pwrite,
- errread, errwrite):
- """Execute program using os.posix_spawn()."""
- if env is None:
- env = os.environ
-
- kwargs = {}
- if restore_signals:
- # See _Py_RestoreSignals() in Python/pylifecycle.c
- sigset = []
- for signame in ('SIGPIPE', 'SIGXFZ', 'SIGXFSZ'):
- signum = getattr(signal, signame, None)
- if signum is not None:
- sigset.append(signum)
- kwargs['setsigdef'] = sigset
-
- file_actions = []
- for fd in (p2cwrite, c2pread, errread):
- if fd != -1:
- file_actions.append((os.POSIX_SPAWN_CLOSE, fd))
- for fd, fd2 in (
- (p2cread, 0),
- (c2pwrite, 1),
- (errwrite, 2),
- ):
- if fd != -1:
- file_actions.append((os.POSIX_SPAWN_DUP2, fd, fd2))
- if file_actions:
- kwargs['file_actions'] = file_actions
-
- self.pid = os.posix_spawn(executable, args, env, **kwargs)
- self._child_created = True
-
- self._close_pipe_fds(p2cread, p2cwrite,
- c2pread, c2pwrite,
- errread, errwrite)
-
+ def _posix_spawn(self, args, executable, env, restore_signals,
+ p2cread, p2cwrite,
+ c2pread, c2pwrite,
+ errread, errwrite):
+ """Execute program using os.posix_spawn()."""
+ if env is None:
+ env = os.environ
+
+ kwargs = {}
+ if restore_signals:
+ # See _Py_RestoreSignals() in Python/pylifecycle.c
+ sigset = []
+ for signame in ('SIGPIPE', 'SIGXFZ', 'SIGXFSZ'):
+ signum = getattr(signal, signame, None)
+ if signum is not None:
+ sigset.append(signum)
+ kwargs['setsigdef'] = sigset
+
+ file_actions = []
+ for fd in (p2cwrite, c2pread, errread):
+ if fd != -1:
+ file_actions.append((os.POSIX_SPAWN_CLOSE, fd))
+ for fd, fd2 in (
+ (p2cread, 0),
+ (c2pwrite, 1),
+ (errwrite, 2),
+ ):
+ if fd != -1:
+ file_actions.append((os.POSIX_SPAWN_DUP2, fd, fd2))
+ if file_actions:
+ kwargs['file_actions'] = file_actions
+
+ self.pid = os.posix_spawn(executable, args, env, **kwargs)
+ self._child_created = True
+
+ self._close_pipe_fds(p2cread, p2cwrite,
+ c2pread, c2pwrite,
+ errread, errwrite)
+
def _execute_child(self, args, executable, preexec_fn, close_fds,
pass_fds, cwd, env,
startupinfo, creationflags, shell,
p2cread, p2cwrite,
c2pread, c2pwrite,
errread, errwrite,
- restore_signals,
- gid, gids, uid, umask,
- start_new_session):
+ restore_signals,
+ gid, gids, uid, umask,
+ start_new_session):
"""Execute program (POSIX version)"""
if isinstance(args, (str, bytes)):
args = [args]
- elif isinstance(args, os.PathLike):
- if shell:
- raise TypeError('path-like args is not allowed when '
- 'shell is true')
- args = [args]
+ elif isinstance(args, os.PathLike):
+ if shell:
+ raise TypeError('path-like args is not allowed when '
+ 'shell is true')
+ args = [args]
else:
args = list(args)
@@ -1689,29 +1689,29 @@ class Popen(object):
if executable is None:
executable = args[0]
-
- sys.audit("subprocess.Popen", executable, args, cwd, env)
-
- if (_USE_POSIX_SPAWN
- and os.path.dirname(executable)
- and preexec_fn is None
- and not close_fds
- and not pass_fds
- and cwd is None
- and (p2cread == -1 or p2cread > 2)
- and (c2pwrite == -1 or c2pwrite > 2)
- and (errwrite == -1 or errwrite > 2)
- and not start_new_session
- and gid is None
- and gids is None
- and uid is None
- and umask < 0):
- self._posix_spawn(args, executable, env, restore_signals,
- p2cread, p2cwrite,
- c2pread, c2pwrite,
- errread, errwrite)
- return
-
+
+ sys.audit("subprocess.Popen", executable, args, cwd, env)
+
+ if (_USE_POSIX_SPAWN
+ and os.path.dirname(executable)
+ and preexec_fn is None
+ and not close_fds
+ and not pass_fds
+ and cwd is None
+ and (p2cread == -1 or p2cread > 2)
+ and (c2pwrite == -1 or c2pwrite > 2)
+ and (errwrite == -1 or errwrite > 2)
+ and not start_new_session
+ and gid is None
+ and gids is None
+ and uid is None
+ and umask < 0):
+ self._posix_spawn(args, executable, env, restore_signals,
+ p2cread, p2cwrite,
+ c2pread, c2pwrite,
+ errread, errwrite)
+ return
+
orig_executable = executable
# For transferring possible exec failure from child to parent.
@@ -1758,17 +1758,17 @@ class Popen(object):
p2cread, p2cwrite, c2pread, c2pwrite,
errread, errwrite,
errpipe_read, errpipe_write,
- restore_signals, start_new_session,
- gid, gids, uid, umask,
- preexec_fn)
+ restore_signals, start_new_session,
+ gid, gids, uid, umask,
+ preexec_fn)
self._child_created = True
finally:
# be sure the FD is closed no matter what
os.close(errpipe_write)
- self._close_pipe_fds(p2cread, p2cwrite,
- c2pread, c2pwrite,
- errread, errwrite)
+ self._close_pipe_fds(p2cread, p2cwrite,
+ c2pread, c2pwrite,
+ errread, errwrite)
# Wait for exec to fail or succeed; possibly raising an
# exception (limited in size)
@@ -1822,17 +1822,17 @@ class Popen(object):
raise child_exception_type(err_msg)
- def _handle_exitstatus(self, sts,
- waitstatus_to_exitcode=os.waitstatus_to_exitcode,
- _WIFSTOPPED=os.WIFSTOPPED,
- _WSTOPSIG=os.WSTOPSIG):
+ def _handle_exitstatus(self, sts,
+ waitstatus_to_exitcode=os.waitstatus_to_exitcode,
+ _WIFSTOPPED=os.WIFSTOPPED,
+ _WSTOPSIG=os.WSTOPSIG):
"""All callers to this function MUST hold self._waitpid_lock."""
# This method is called (indirectly) by __del__, so it cannot
# refer to anything outside of its local scope.
- if _WIFSTOPPED(sts):
+ if _WIFSTOPPED(sts):
self.returncode = -_WSTOPSIG(sts)
else:
- self.returncode = waitstatus_to_exitcode(sts)
+ self.returncode = waitstatus_to_exitcode(sts)
def _internal_poll(self, _deadstate=None, _waitpid=os.waitpid,
_WNOHANG=os.WNOHANG, _ECHILD=errno.ECHILD):
@@ -1961,23 +1961,23 @@ class Popen(object):
with _PopenSelector() as selector:
if self.stdin and input:
selector.register(self.stdin, selectors.EVENT_WRITE)
- if self.stdout and not self.stdout.closed:
+ if self.stdout and not self.stdout.closed:
selector.register(self.stdout, selectors.EVENT_READ)
- if self.stderr and not self.stderr.closed:
+ if self.stderr and not self.stderr.closed:
selector.register(self.stderr, selectors.EVENT_READ)
while selector.get_map():
timeout = self._remaining_time(endtime)
if timeout is not None and timeout < 0:
- self._check_timeout(endtime, orig_timeout,
- stdout, stderr,
- skip_check_and_raise=True)
- raise RuntimeError( # Impossible :)
- '_check_timeout(..., skip_check_and_raise=True) '
- 'failed to raise TimeoutExpired.')
+ self._check_timeout(endtime, orig_timeout,
+ stdout, stderr,
+ skip_check_and_raise=True)
+ raise RuntimeError( # Impossible :)
+ '_check_timeout(..., skip_check_and_raise=True) '
+ 'failed to raise TimeoutExpired.')
ready = selector.select(timeout)
- self._check_timeout(endtime, orig_timeout, stdout, stderr)
+ self._check_timeout(endtime, orig_timeout, stdout, stderr)
# XXX Rewrite these to use non-blocking I/O on the file
# objects; they are no longer using C stdio!
@@ -2039,35 +2039,35 @@ class Popen(object):
def send_signal(self, sig):
"""Send a signal to the process."""
- # bpo-38630: Polling reduces the risk of sending a signal to the
- # wrong process if the process completed, the Popen.returncode
- # attribute is still None, and the pid has been reassigned
- # (recycled) to a new different process. This race condition can
- # happens in two cases.
- #
- # Case 1. Thread A calls Popen.poll(), thread B calls
- # Popen.send_signal(). In thread A, waitpid() succeed and returns
- # the exit status. Thread B calls kill() because poll() in thread A
- # did not set returncode yet. Calling poll() in thread B prevents
- # the race condition thanks to Popen._waitpid_lock.
- #
- # Case 2. waitpid(pid, 0) has been called directly, without
- # using Popen methods: returncode is still None is this case.
- # Calling Popen.poll() will set returncode to a default value,
- # since waitpid() fails with ProcessLookupError.
- self.poll()
- if self.returncode is not None:
- # Skip signalling a process that we know has already died.
- return
-
- # The race condition can still happen if the race condition
- # described above happens between the returncode test
- # and the kill() call.
- try:
+ # bpo-38630: Polling reduces the risk of sending a signal to the
+ # wrong process if the process completed, the Popen.returncode
+ # attribute is still None, and the pid has been reassigned
+ # (recycled) to a new different process. This race condition can
+ # happens in two cases.
+ #
+ # Case 1. Thread A calls Popen.poll(), thread B calls
+ # Popen.send_signal(). In thread A, waitpid() succeed and returns
+ # the exit status. Thread B calls kill() because poll() in thread A
+ # did not set returncode yet. Calling poll() in thread B prevents
+ # the race condition thanks to Popen._waitpid_lock.
+ #
+ # Case 2. waitpid(pid, 0) has been called directly, without
+ # using Popen methods: returncode is still None is this case.
+ # Calling Popen.poll() will set returncode to a default value,
+ # since waitpid() fails with ProcessLookupError.
+ self.poll()
+ if self.returncode is not None:
+ # Skip signalling a process that we know has already died.
+ return
+
+ # The race condition can still happen if the race condition
+ # described above happens between the returncode test
+ # and the kill() call.
+ try:
os.kill(self.pid, sig)
- except ProcessLookupError:
- # Supress the race condition error; bpo-40550.
- pass
+ except ProcessLookupError:
+ # Supress the race condition error; bpo-40550.
+ pass
def terminate(self):
"""Terminate the process with SIGTERM
diff --git a/contrib/tools/python3/src/Lib/sunau.py b/contrib/tools/python3/src/Lib/sunau.py
index 4cd420c315..79750a9d23 100644
--- a/contrib/tools/python3/src/Lib/sunau.py
+++ b/contrib/tools/python3/src/Lib/sunau.py
@@ -105,7 +105,7 @@ is destroyed.
from collections import namedtuple
-
+
_sunau_params = namedtuple('_sunau_params',
'nchannels sampwidth framerate nframes comptype compname')
diff --git a/contrib/tools/python3/src/Lib/symbol.py b/contrib/tools/python3/src/Lib/symbol.py
index fee16642a0..aaac8c9144 100644
--- a/contrib/tools/python3/src/Lib/symbol.py
+++ b/contrib/tools/python3/src/Lib/symbol.py
@@ -5,21 +5,21 @@
# To update the symbols in this file, 'cd' to the top directory of
# the python source tree after building the interpreter and run:
#
-# python3 Tools/scripts/generate_symbol_py.py Include/graminit.h Lib/symbol.py
-#
-# or just
-#
-# make regen-symbol
+# python3 Tools/scripts/generate_symbol_py.py Include/graminit.h Lib/symbol.py
+#
+# or just
+#
+# make regen-symbol
+
+import warnings
+
+warnings.warn(
+ "The symbol module is deprecated and will be removed "
+ "in future versions of Python",
+ DeprecationWarning,
+ stacklevel=2,
+)
-import warnings
-
-warnings.warn(
- "The symbol module is deprecated and will be removed "
- "in future versions of Python",
- DeprecationWarning,
- stacklevel=2,
-)
-
#--start constants--
single_input = 256
file_input = 257
@@ -70,53 +70,53 @@ with_stmt = 301
with_item = 302
except_clause = 303
suite = 304
-namedexpr_test = 305
-test = 306
-test_nocond = 307
-lambdef = 308
-lambdef_nocond = 309
-or_test = 310
-and_test = 311
-not_test = 312
-comparison = 313
-comp_op = 314
-star_expr = 315
-expr = 316
-xor_expr = 317
-and_expr = 318
-shift_expr = 319
-arith_expr = 320
-term = 321
-factor = 322
-power = 323
-atom_expr = 324
-atom = 325
-testlist_comp = 326
-trailer = 327
-subscriptlist = 328
-subscript = 329
-sliceop = 330
-exprlist = 331
-testlist = 332
-dictorsetmaker = 333
-classdef = 334
-arglist = 335
-argument = 336
-comp_iter = 337
-sync_comp_for = 338
-comp_for = 339
-comp_if = 340
-encoding_decl = 341
-yield_expr = 342
-yield_arg = 343
-func_body_suite = 344
-func_type_input = 345
-func_type = 346
-typelist = 347
+namedexpr_test = 305
+test = 306
+test_nocond = 307
+lambdef = 308
+lambdef_nocond = 309
+or_test = 310
+and_test = 311
+not_test = 312
+comparison = 313
+comp_op = 314
+star_expr = 315
+expr = 316
+xor_expr = 317
+and_expr = 318
+shift_expr = 319
+arith_expr = 320
+term = 321
+factor = 322
+power = 323
+atom_expr = 324
+atom = 325
+testlist_comp = 326
+trailer = 327
+subscriptlist = 328
+subscript = 329
+sliceop = 330
+exprlist = 331
+testlist = 332
+dictorsetmaker = 333
+classdef = 334
+arglist = 335
+argument = 336
+comp_iter = 337
+sync_comp_for = 338
+comp_for = 339
+comp_if = 340
+encoding_decl = 341
+yield_expr = 342
+yield_arg = 343
+func_body_suite = 344
+func_type_input = 345
+func_type = 346
+typelist = 347
#--end constants--
sym_name = {}
for _name, _value in list(globals().items()):
if type(_value) is type(0):
sym_name[_value] = _name
-del _name, _value
+del _name, _value
diff --git a/contrib/tools/python3/src/Lib/symtable.py b/contrib/tools/python3/src/Lib/symtable.py
index 8fc60f9812..521540fe9e 100644
--- a/contrib/tools/python3/src/Lib/symtable.py
+++ b/contrib/tools/python3/src/Lib/symtable.py
@@ -1,7 +1,7 @@
"""Interface to the compiler's internal symbol tables"""
import _symtable
-from _symtable import (USE, DEF_GLOBAL, DEF_NONLOCAL, DEF_LOCAL, DEF_PARAM,
+from _symtable import (USE, DEF_GLOBAL, DEF_NONLOCAL, DEF_LOCAL, DEF_PARAM,
DEF_IMPORT, DEF_BOUND, DEF_ANNOT, SCOPE_OFF, SCOPE_MASK, FREE,
LOCAL, GLOBAL_IMPLICIT, GLOBAL_EXPLICIT, CELL)
@@ -34,7 +34,7 @@ class SymbolTableFactory:
_newSymbolTable = SymbolTableFactory()
-class SymbolTable:
+class SymbolTable:
def __init__(self, raw_table, filename):
self._table = raw_table
@@ -47,7 +47,7 @@ class SymbolTable:
else:
kind = "%s " % self.__class__.__name__
- if self._table.name == "top":
+ if self._table.name == "top":
return "<{0}SymbolTable for module {1}>".format(kind, self._filename)
else:
return "<{0}SymbolTable for {1} in {2}>".format(kind,
@@ -90,9 +90,9 @@ class SymbolTable:
if sym is None:
flags = self._table.symbols[name]
namespaces = self.__check_children(name)
- module_scope = (self._table.name == "top")
- sym = self._symbols[name] = Symbol(name, flags, namespaces,
- module_scope=module_scope)
+ module_scope = (self._table.name == "top")
+ sym = self._symbols[name] = Symbol(name, flags, namespaces,
+ module_scope=module_scope)
return sym
def get_symbols(self):
@@ -115,7 +115,7 @@ class Function(SymbolTable):
__locals = None
__frees = None
__globals = None
- __nonlocals = None
+ __nonlocals = None
def __idents_matching(self, test_func):
return tuple(ident for ident in self.get_identifiers()
@@ -140,11 +140,11 @@ class Function(SymbolTable):
self.__globals = self.__idents_matching(test)
return self.__globals
- def get_nonlocals(self):
- if self.__nonlocals is None:
- self.__nonlocals = self.__idents_matching(lambda x:x & DEF_NONLOCAL)
- return self.__nonlocals
-
+ def get_nonlocals(self):
+ if self.__nonlocals is None:
+ self.__nonlocals = self.__idents_matching(lambda x:x & DEF_NONLOCAL)
+ return self.__nonlocals
+
def get_frees(self):
if self.__frees is None:
is_free = lambda x:((x >> SCOPE_OFF) & SCOPE_MASK) == FREE
@@ -165,14 +165,14 @@ class Class(SymbolTable):
return self.__methods
-class Symbol:
+class Symbol:
- def __init__(self, name, flags, namespaces=None, *, module_scope=False):
+ def __init__(self, name, flags, namespaces=None, *, module_scope=False):
self.__name = name
self.__flags = flags
self.__scope = (flags >> SCOPE_OFF) & SCOPE_MASK # like PyST_GetScope()
self.__namespaces = namespaces or ()
- self.__module_scope = module_scope
+ self.__module_scope = module_scope
def __repr__(self):
return "<symbol {0!r}>".format(self.__name)
@@ -187,22 +187,22 @@ class Symbol:
return bool(self.__flags & DEF_PARAM)
def is_global(self):
- """Return *True* if the sysmbol is global.
- """
- return bool(self.__scope in (GLOBAL_IMPLICIT, GLOBAL_EXPLICIT)
- or (self.__module_scope and self.__flags & DEF_BOUND))
-
- def is_nonlocal(self):
- return bool(self.__flags & DEF_NONLOCAL)
-
+ """Return *True* if the sysmbol is global.
+ """
+ return bool(self.__scope in (GLOBAL_IMPLICIT, GLOBAL_EXPLICIT)
+ or (self.__module_scope and self.__flags & DEF_BOUND))
+
+ def is_nonlocal(self):
+ return bool(self.__flags & DEF_NONLOCAL)
+
def is_declared_global(self):
return bool(self.__scope == GLOBAL_EXPLICIT)
def is_local(self):
- """Return *True* if the symbol is local.
- """
- return bool(self.__scope in (LOCAL, CELL)
- or (self.__module_scope and self.__flags & DEF_BOUND))
+ """Return *True* if the symbol is local.
+ """
+ return bool(self.__scope in (LOCAL, CELL)
+ or (self.__module_scope and self.__flags & DEF_BOUND))
def is_annotated(self):
return bool(self.__flags & DEF_ANNOT)
diff --git a/contrib/tools/python3/src/Lib/sysconfig.py b/contrib/tools/python3/src/Lib/sysconfig.py
index 7936188fba..55bd06f3a0 100644
--- a/contrib/tools/python3/src/Lib/sysconfig.py
+++ b/contrib/tools/python3/src/Lib/sysconfig.py
@@ -18,17 +18,17 @@ __all__ = [
'parse_config_h',
]
-# Keys for get_config_var() that are never converted to Python integers.
-_ALWAYS_STR = {
- 'MACOSX_DEPLOYMENT_TARGET',
-}
-
+# Keys for get_config_var() that are never converted to Python integers.
+_ALWAYS_STR = {
+ 'MACOSX_DEPLOYMENT_TARGET',
+}
+
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}',
- 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}',
+ 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}',
+ 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}',
'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages',
'include':
'{installed_base}/include/python{py_version_short}{abiflags}',
'platinclude':
@@ -67,10 +67,10 @@ _INSTALL_SCHEMES = {
'data': '{userbase}',
},
'posix_user': {
- 'stdlib': '{userbase}/{platlibdir}/python{py_version_short}',
- 'platstdlib': '{userbase}/{platlibdir}/python{py_version_short}',
+ 'stdlib': '{userbase}/{platlibdir}/python{py_version_short}',
+ 'platstdlib': '{userbase}/{platlibdir}/python{py_version_short}',
'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/{platlibdir}/python{py_version_short}/site-packages',
+ 'platlib': '{userbase}/{platlibdir}/python{py_version_short}/site-packages',
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data': '{userbase}',
@@ -122,7 +122,7 @@ if "_PYTHON_PROJECT_BASE" in os.environ:
_PROJECT_BASE = _safe_realpath(os.environ["_PYTHON_PROJECT_BASE"])
def _is_python_source_dir(d):
- for fn in ("Setup", "Setup.local"):
+ for fn in ("Setup", "Setup.local"):
if os.path.isfile(os.path.join(d, "Modules", fn)):
return True
return False
@@ -245,9 +245,9 @@ def _parse_makefile(filename, vars=None):
notdone[n] = v
else:
try:
- if n in _ALWAYS_STR:
- raise ValueError
-
+ if n in _ALWAYS_STR:
+ raise ValueError
+
v = int(v)
except ValueError:
# insert literal `$'
@@ -306,8 +306,8 @@ def _parse_makefile(filename, vars=None):
notdone[name] = value
else:
try:
- if name in _ALWAYS_STR:
- raise ValueError
+ if name in _ALWAYS_STR:
+ raise ValueError
value = int(value)
except ValueError:
done[name] = value.strip()
@@ -420,7 +420,7 @@ def _generate_posix_vars():
pprint.pprint(vars, stream=f)
# Create file used for sys.path fixup -- see Modules/getpath.c
- with open('pybuilddir.txt', 'w', encoding='utf8') as f:
+ with open('pybuilddir.txt', 'w', encoding='utf8') as f:
f.write(pybuilddir)
def _init_posix(vars):
@@ -435,11 +435,11 @@ def _init_posix(vars):
def _init_non_posix(vars):
"""Initialize the module as appropriate for NT"""
# set basic install directories
- import _imp
+ import _imp
vars['LIBDEST'] = get_path('stdlib')
vars['BINLIBDEST'] = get_path('platstdlib')
vars['INCLUDEPY'] = get_path('include')
- vars['EXT_SUFFIX'] = _imp.extension_suffixes()[0]
+ vars['EXT_SUFFIX'] = _imp.extension_suffixes()[0]
vars['EXE'] = '.exe'
vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT
vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable))
@@ -470,8 +470,8 @@ def parse_config_h(fp, vars=None):
if m:
n, v = m.group(1, 2)
try:
- if n in _ALWAYS_STR:
- raise ValueError
+ if n in _ALWAYS_STR:
+ raise ValueError
v = int(v)
except ValueError:
pass
@@ -551,7 +551,7 @@ def get_config_vars(*args):
_CONFIG_VARS['installed_platbase'] = _BASE_EXEC_PREFIX
_CONFIG_VARS['platbase'] = _EXEC_PREFIX
_CONFIG_VARS['projectbase'] = _PROJECT_BASE
- _CONFIG_VARS['platlibdir'] = sys.platlibdir
+ _CONFIG_VARS['platlibdir'] = sys.platlibdir
try:
_CONFIG_VARS['abiflags'] = sys.abiflags
except AttributeError:
@@ -560,7 +560,7 @@ def get_config_vars(*args):
if os.name == 'nt':
_init_non_posix(_CONFIG_VARS)
- _CONFIG_VARS['TZPATH'] = ''
+ _CONFIG_VARS['TZPATH'] = ''
if os.name == 'posix':
_init_posix(_CONFIG_VARS)
# For backward compatibility, see issue19555
@@ -640,10 +640,10 @@ def get_platform():
if os.name == 'nt':
if 'amd64' in sys.version.lower():
return 'win-amd64'
- if '(arm)' in sys.version.lower():
- return 'win-arm32'
- if '(arm64)' in sys.version.lower():
- return 'win-arm64'
+ if '(arm)' in sys.version.lower():
+ return 'win-arm32'
+ if '(arm64)' in sys.version.lower():
+ return 'win-arm64'
return sys.platform
if os.name != "posix" or not hasattr(os, 'uname'):
@@ -679,8 +679,8 @@ def get_platform():
machine += ".%s" % bitness[sys.maxsize]
# fall through to standard osname-release-machine representation
elif osname[:3] == "aix":
- from _aix_support import aix_platform
- return aix_platform()
+ from _aix_support import aix_platform
+ return aix_platform()
elif osname[:6] == "cygwin":
osname = "cygwin"
import re
diff --git a/contrib/tools/python3/src/Lib/tarfile.py b/contrib/tools/python3/src/Lib/tarfile.py
index d832e1c5fc..043a4ab5a5 100644
--- a/contrib/tools/python3/src/Lib/tarfile.py
+++ b/contrib/tools/python3/src/Lib/tarfile.py
@@ -105,7 +105,7 @@ SOLARIS_XHDTYPE = b"X" # Solaris extended header
USTAR_FORMAT = 0 # POSIX.1-1988 (ustar) format
GNU_FORMAT = 1 # GNU tar format
PAX_FORMAT = 2 # POSIX.1-2001 (pax) format
-DEFAULT_FORMAT = PAX_FORMAT
+DEFAULT_FORMAT = PAX_FORMAT
#---------------------------------------------------------
# tarfile constants
@@ -420,8 +420,8 @@ class _Stream:
self.__write(b"\037\213\010\010" + timestamp + b"\002\377")
if self.name.endswith(".gz"):
self.name = self.name[:-3]
- # Honor "directory components removed" from RFC1952
- self.name = os.path.basename(self.name)
+ # Honor "directory components removed" from RFC1952
+ self.name = os.path.basename(self.name)
# RFC1952 says we must use ISO-8859-1 for the FNAME field.
self.__write(self.name.encode("iso-8859-1", "replace") + NUL)
@@ -515,10 +515,10 @@ class _Stream:
raise StreamError("seeking backwards is not allowed")
return self.pos
- def read(self, size):
- """Return the next size number of bytes from the stream."""
- assert size is not None
- buf = self._read(size)
+ def read(self, size):
+ """Return the next size number of bytes from the stream."""
+ assert size is not None
+ buf = self._read(size)
self.pos += len(buf)
return buf
@@ -531,14 +531,14 @@ class _Stream:
c = len(self.dbuf)
t = [self.dbuf]
while c < size:
- # Skip underlying buffer to avoid unaligned double buffering.
- if self.buf:
- buf = self.buf
- self.buf = b""
- else:
- buf = self.fileobj.read(self.bufsize)
- if not buf:
- break
+ # Skip underlying buffer to avoid unaligned double buffering.
+ if self.buf:
+ buf = self.buf
+ self.buf = b""
+ else:
+ buf = self.fileobj.read(self.bufsize)
+ if not buf:
+ break
try:
buf = self.cmp.decompress(buf)
except self.exception:
@@ -719,32 +719,32 @@ class TarInfo(object):
usually created internally.
"""
- __slots__ = dict(
- name = 'Name of the archive member.',
- mode = 'Permission bits.',
- uid = 'User ID of the user who originally stored this member.',
- gid = 'Group ID of the user who originally stored this member.',
- size = 'Size in bytes.',
- mtime = 'Time of last modification.',
- chksum = 'Header checksum.',
- type = ('File type. type is usually one of these constants: '
- 'REGTYPE, AREGTYPE, LNKTYPE, SYMTYPE, DIRTYPE, FIFOTYPE, '
- 'CONTTYPE, CHRTYPE, BLKTYPE, GNUTYPE_SPARSE.'),
- linkname = ('Name of the target file name, which is only present '
- 'in TarInfo objects of type LNKTYPE and SYMTYPE.'),
- uname = 'User name.',
- gname = 'Group name.',
- devmajor = 'Device major number.',
- devminor = 'Device minor number.',
- offset = 'The tar header starts here.',
- offset_data = "The file's data starts here.",
- pax_headers = ('A dictionary containing key-value pairs of an '
- 'associated pax extended header.'),
- sparse = 'Sparse member information.',
- tarfile = None,
- _sparse_structs = None,
- _link_target = None,
- )
+ __slots__ = dict(
+ name = 'Name of the archive member.',
+ mode = 'Permission bits.',
+ uid = 'User ID of the user who originally stored this member.',
+ gid = 'Group ID of the user who originally stored this member.',
+ size = 'Size in bytes.',
+ mtime = 'Time of last modification.',
+ chksum = 'Header checksum.',
+ type = ('File type. type is usually one of these constants: '
+ 'REGTYPE, AREGTYPE, LNKTYPE, SYMTYPE, DIRTYPE, FIFOTYPE, '
+ 'CONTTYPE, CHRTYPE, BLKTYPE, GNUTYPE_SPARSE.'),
+ linkname = ('Name of the target file name, which is only present '
+ 'in TarInfo objects of type LNKTYPE and SYMTYPE.'),
+ uname = 'User name.',
+ gname = 'Group name.',
+ devmajor = 'Device major number.',
+ devminor = 'Device minor number.',
+ offset = 'The tar header starts here.',
+ offset_data = "The file's data starts here.",
+ pax_headers = ('A dictionary containing key-value pairs of an '
+ 'associated pax extended header.'),
+ sparse = 'Sparse member information.',
+ tarfile = None,
+ _sparse_structs = None,
+ _link_target = None,
+ )
def __init__(self, name=""):
"""Construct a TarInfo object. name is the optional name
@@ -772,7 +772,7 @@ class TarInfo(object):
@property
def path(self):
- 'In pax headers, "name" is called "path".'
+ 'In pax headers, "name" is called "path".'
return self.name
@path.setter
@@ -781,7 +781,7 @@ class TarInfo(object):
@property
def linkpath(self):
- 'In pax headers, "linkname" is called "linkpath".'
+ 'In pax headers, "linkname" is called "linkpath".'
return self.linkname
@linkpath.setter
@@ -932,14 +932,14 @@ class TarInfo(object):
"""Return a header block. info is a dictionary with file
information, format must be one of the *_FORMAT constants.
"""
- has_device_fields = info.get("type") in (CHRTYPE, BLKTYPE)
- if has_device_fields:
- devmajor = itn(info.get("devmajor", 0), 8, format)
- devminor = itn(info.get("devminor", 0), 8, format)
- else:
- devmajor = stn("", 8, encoding, errors)
- devminor = stn("", 8, encoding, errors)
-
+ has_device_fields = info.get("type") in (CHRTYPE, BLKTYPE)
+ if has_device_fields:
+ devmajor = itn(info.get("devmajor", 0), 8, format)
+ devminor = itn(info.get("devminor", 0), 8, format)
+ else:
+ devmajor = stn("", 8, encoding, errors)
+ devminor = stn("", 8, encoding, errors)
+
parts = [
stn(info.get("name", ""), 100, encoding, errors),
itn(info.get("mode", 0) & 0o7777, 8, format),
@@ -953,8 +953,8 @@ class TarInfo(object):
info.get("magic", POSIX_MAGIC),
stn(info.get("uname", ""), 32, encoding, errors),
stn(info.get("gname", ""), 32, encoding, errors),
- devmajor,
- devminor,
+ devmajor,
+ devminor,
stn(info.get("prefix", ""), 155, encoding, errors)
]
@@ -1251,8 +1251,8 @@ class TarInfo(object):
length, keyword = match.groups()
length = int(length)
- if length == 0:
- raise InvalidHeaderError("invalid header")
+ if length == 0:
+ raise InvalidHeaderError("invalid header")
value = buf[match.end(2) + 1:match.start(1) + length - 1]
# Normally, we could just use "utf-8" as the encoding and "strict"
@@ -1383,42 +1383,42 @@ class TarInfo(object):
return blocks * BLOCKSIZE
def isreg(self):
- 'Return True if the Tarinfo object is a regular file.'
+ 'Return True if the Tarinfo object is a regular file.'
return self.type in REGULAR_TYPES
-
+
def isfile(self):
- 'Return True if the Tarinfo object is a regular file.'
+ 'Return True if the Tarinfo object is a regular file.'
return self.isreg()
-
+
def isdir(self):
- 'Return True if it is a directory.'
+ 'Return True if it is a directory.'
return self.type == DIRTYPE
-
+
def issym(self):
- 'Return True if it is a symbolic link.'
+ 'Return True if it is a symbolic link.'
return self.type == SYMTYPE
-
+
def islnk(self):
- 'Return True if it is a hard link.'
+ 'Return True if it is a hard link.'
return self.type == LNKTYPE
-
+
def ischr(self):
- 'Return True if it is a character device.'
+ 'Return True if it is a character device.'
return self.type == CHRTYPE
-
+
def isblk(self):
- 'Return True if it is a block device.'
+ 'Return True if it is a block device.'
return self.type == BLKTYPE
-
+
def isfifo(self):
- 'Return True if it is a FIFO.'
+ 'Return True if it is a FIFO.'
return self.type == FIFOTYPE
-
+
def issparse(self):
return self.sparse is not None
-
+
def isdev(self):
- 'Return True if it is one of character device, block device or FIFO.'
+ 'Return True if it is one of character device, block device or FIFO.'
return self.type in (CHRTYPE, BLKTYPE, FIFOTYPE)
# class TarInfo
@@ -1667,12 +1667,12 @@ class TarFile(object):
raise ValueError("mode must be 'r', 'w' or 'x'")
try:
- from gzip import GzipFile
- except ImportError:
+ from gzip import GzipFile
+ except ImportError:
raise CompressionError("gzip module is not available")
try:
- fileobj = GzipFile(name, mode + "b", compresslevel, fileobj)
+ fileobj = GzipFile(name, mode + "b", compresslevel, fileobj)
except OSError:
if fileobj is not None and mode == 'r':
raise ReadError("not a gzip file")
@@ -1700,11 +1700,11 @@ class TarFile(object):
raise ValueError("mode must be 'r', 'w' or 'x'")
try:
- from bz2 import BZ2File
+ from bz2 import BZ2File
except ImportError:
raise CompressionError("bz2 module is not available")
- fileobj = BZ2File(fileobj or name, mode, compresslevel=compresslevel)
+ fileobj = BZ2File(fileobj or name, mode, compresslevel=compresslevel)
try:
t = cls.taropen(name, mode, fileobj, **kwargs)
@@ -1728,15 +1728,15 @@ class TarFile(object):
raise ValueError("mode must be 'r', 'w' or 'x'")
try:
- from lzma import LZMAFile, LZMAError
+ from lzma import LZMAFile, LZMAError
except ImportError:
raise CompressionError("lzma module is not available")
- fileobj = LZMAFile(fileobj or name, mode, preset=preset)
+ fileobj = LZMAFile(fileobj or name, mode, preset=preset)
try:
t = cls.taropen(name, mode, fileobj, **kwargs)
- except (LZMAError, EOFError):
+ except (LZMAError, EOFError):
fileobj.close()
if mode == 'r':
raise ReadError("not an lzma file")
@@ -1836,9 +1836,9 @@ class TarFile(object):
tarinfo = self.tarinfo()
tarinfo.tarfile = self # Not needed
- # Use os.stat or os.lstat, depending on if symlinks shall be resolved.
+ # Use os.stat or os.lstat, depending on if symlinks shall be resolved.
if fileobj is None:
- if not self.dereference:
+ if not self.dereference:
statres = os.lstat(name)
else:
statres = os.stat(name)
@@ -2093,10 +2093,10 @@ class TarFile(object):
def extractfile(self, member):
"""Extract a member from the archive as a file object. `member' may be
- a filename or a TarInfo object. If `member' is a regular file or
- a link, an io.BufferedReader object is returned. For all other
- existing members, None is returned. If `member' does not appear
- in the archive, KeyError is raised.
+ a filename or a TarInfo object. If `member' is a regular file or
+ a link, an io.BufferedReader object is returned. For all other
+ existing members, None is returned. If `member' does not appear
+ in the archive, KeyError is raised.
"""
self._check("r")
@@ -2237,9 +2237,9 @@ class TarFile(object):
try:
# For systems that support symbolic and hard links.
if tarinfo.issym():
- if os.path.lexists(targetpath):
- # Avoid FileExistsError on following os.symlink.
- os.unlink(targetpath)
+ if os.path.lexists(targetpath):
+ # Avoid FileExistsError on following os.symlink.
+ os.unlink(targetpath)
os.symlink(tarinfo.linkname, targetpath)
else:
# See extract().
@@ -2287,10 +2287,10 @@ class TarFile(object):
def chmod(self, tarinfo, targetpath):
"""Set file permissions of targetpath according to tarinfo.
"""
- try:
- os.chmod(targetpath, tarinfo.mode)
- except OSError:
- raise ExtractError("could not change mode")
+ try:
+ os.chmod(targetpath, tarinfo.mode)
+ except OSError:
+ raise ExtractError("could not change mode")
def utime(self, tarinfo, targetpath):
"""Set modification time of targetpath according to tarinfo.
@@ -2345,15 +2345,15 @@ class TarFile(object):
raise ReadError(str(e))
except SubsequentHeaderError as e:
raise ReadError(str(e))
- except Exception as e:
- try:
- import zlib
- if isinstance(e, zlib.error):
- raise ReadError(f'zlib error: {e}')
- else:
- raise e
- except ImportError:
- raise e
+ except Exception as e:
+ try:
+ import zlib
+ if isinstance(e, zlib.error):
+ raise ReadError(f'zlib error: {e}')
+ else:
+ raise e
+ except ImportError:
+ raise e
break
if tarinfo is not None:
@@ -2484,14 +2484,14 @@ class TarFile(object):
def is_tarfile(name):
"""Return True if name points to a tar archive that we
are able to handle, else return False.
-
- 'name' should be a string, file, or file-like object.
+
+ 'name' should be a string, file, or file-like object.
"""
try:
- if hasattr(name, "read"):
- t = open(fileobj=name)
- else:
- t = open(name)
+ if hasattr(name, "read"):
+ t = open(fileobj=name)
+ else:
+ t = open(name)
t.close()
return True
except TarError:
diff --git a/contrib/tools/python3/src/Lib/telnetlib.py b/contrib/tools/python3/src/Lib/telnetlib.py
index 4996a7dbeb..8ce053e881 100644
--- a/contrib/tools/python3/src/Lib/telnetlib.py
+++ b/contrib/tools/python3/src/Lib/telnetlib.py
@@ -231,7 +231,7 @@ class Telnet:
self.host = host
self.port = port
self.timeout = timeout
- sys.audit("telnetlib.Telnet.open", self, host, port)
+ sys.audit("telnetlib.Telnet.open", self, host, port)
self.sock = socket.create_connection((host, port), timeout)
def __del__(self):
@@ -287,7 +287,7 @@ class Telnet:
"""
if IAC in buffer:
buffer = buffer.replace(IAC, IAC+IAC)
- sys.audit("telnetlib.Telnet.write", self, buffer)
+ sys.audit("telnetlib.Telnet.write", self, buffer)
self.msg("send %r", buffer)
self.sock.sendall(buffer)
diff --git a/contrib/tools/python3/src/Lib/tempfile.py b/contrib/tools/python3/src/Lib/tempfile.py
index 1273e8625c..eafce6f25b 100644
--- a/contrib/tools/python3/src/Lib/tempfile.py
+++ b/contrib/tools/python3/src/Lib/tempfile.py
@@ -43,8 +43,8 @@ import os as _os
import shutil as _shutil
import errno as _errno
from random import Random as _Random
-import sys as _sys
-import types as _types
+import sys as _sys
+import types as _types
import weakref as _weakref
import _thread
_allocate_lock = _thread.allocate_lock
@@ -75,7 +75,7 @@ _once_lock = _allocate_lock()
def _exists(fn):
try:
- _os.lstat(fn)
+ _os.lstat(fn)
except OSError:
return False
else:
@@ -88,10 +88,10 @@ def _infer_return_type(*args):
for arg in args:
if arg is None:
continue
-
- if isinstance(arg, _os.PathLike):
- arg = _os.fspath(arg)
-
+
+ if isinstance(arg, _os.PathLike):
+ arg = _os.fspath(arg)
+
if isinstance(arg, bytes):
if return_type is str:
raise TypeError("Can't mix bytes and non-bytes in "
@@ -250,7 +250,7 @@ def _mkstemp_inner(dir, pre, suf, flags, output_type):
for seq in range(TMP_MAX):
name = next(names)
file = _os.path.join(dir, pre + name + suf)
- _sys.audit("tempfile.mkstemp", file)
+ _sys.audit("tempfile.mkstemp", file)
try:
fd = _os.open(file, flags, 0o600)
except FileExistsError:
@@ -312,7 +312,7 @@ def mkstemp(suffix=None, prefix=None, dir=None, text=False):
otherwise a default directory is used.
If 'text' is specified and true, the file is opened in text
- mode. Else (the default) the file is opened in binary mode.
+ mode. Else (the default) the file is opened in binary mode.
If any of 'suffix', 'prefix' and 'dir' are not None, they must be the
same type. If they are bytes, the returned name will be bytes; str
@@ -358,7 +358,7 @@ def mkdtemp(suffix=None, prefix=None, dir=None):
for seq in range(TMP_MAX):
name = next(names)
file = _os.path.join(dir, prefix + name + suffix)
- _sys.audit("tempfile.mkdtemp", file)
+ _sys.audit("tempfile.mkdtemp", file)
try:
_os.mkdir(file, 0o700)
except FileExistsError:
@@ -516,7 +516,7 @@ class _TemporaryFileWrapper:
def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
newline=None, suffix=None, prefix=None,
- dir=None, delete=True, *, errors=None):
+ dir=None, delete=True, *, errors=None):
"""Create and return a temporary file.
Arguments:
'prefix', 'suffix', 'dir' -- as for mkstemp.
@@ -525,7 +525,7 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
'encoding' -- the encoding argument to io.open (default None)
'newline' -- the newline argument to io.open (default None)
'delete' -- whether the file is deleted on close (default True).
- 'errors' -- the errors argument to io.open (default None)
+ 'errors' -- the errors argument to io.open (default None)
The file is created as mkstemp() would do it.
Returns an object with a file-like interface; the name of the file
@@ -545,7 +545,7 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
(fd, name) = _mkstemp_inner(dir, prefix, suffix, flags, output_type)
try:
file = _io.open(fd, mode, buffering=buffering,
- newline=newline, encoding=encoding, errors=errors)
+ newline=newline, encoding=encoding, errors=errors)
return _TemporaryFileWrapper(file, name, delete)
except BaseException:
@@ -553,7 +553,7 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
_os.close(fd)
raise
-if _os.name != 'posix' or _sys.platform == 'cygwin':
+if _os.name != 'posix' or _sys.platform == 'cygwin':
# On non-POSIX and Cygwin systems, assume that we cannot unlink a file
# while it is open.
TemporaryFile = NamedTemporaryFile
@@ -566,7 +566,7 @@ else:
def TemporaryFile(mode='w+b', buffering=-1, encoding=None,
newline=None, suffix=None, prefix=None,
- dir=None, *, errors=None):
+ dir=None, *, errors=None):
"""Create and return a temporary file.
Arguments:
'prefix', 'suffix', 'dir' -- as for mkstemp.
@@ -574,7 +574,7 @@ else:
'buffering' -- the buffer size argument to io.open (default -1).
'encoding' -- the encoding argument to io.open (default None)
'newline' -- the newline argument to io.open (default None)
- 'errors' -- the errors argument to io.open (default None)
+ 'errors' -- the errors argument to io.open (default None)
The file is created as mkstemp() would do it.
Returns an object with a file-like interface. The file has no
@@ -608,8 +608,8 @@ else:
else:
try:
return _io.open(fd, mode, buffering=buffering,
- newline=newline, encoding=encoding,
- errors=errors)
+ newline=newline, encoding=encoding,
+ errors=errors)
except:
_os.close(fd)
raise
@@ -619,7 +619,7 @@ else:
try:
_os.unlink(name)
return _io.open(fd, mode, buffering=buffering,
- newline=newline, encoding=encoding, errors=errors)
+ newline=newline, encoding=encoding, errors=errors)
except:
_os.close(fd)
raise
@@ -633,22 +633,22 @@ class SpooledTemporaryFile:
def __init__(self, max_size=0, mode='w+b', buffering=-1,
encoding=None, newline=None,
- suffix=None, prefix=None, dir=None, *, errors=None):
+ suffix=None, prefix=None, dir=None, *, errors=None):
if 'b' in mode:
self._file = _io.BytesIO()
else:
- self._file = _io.TextIOWrapper(_io.BytesIO(),
- encoding=encoding, errors=errors,
- newline=newline)
+ self._file = _io.TextIOWrapper(_io.BytesIO(),
+ encoding=encoding, errors=errors,
+ newline=newline)
self._max_size = max_size
self._rolled = False
self._TemporaryFileArgs = {'mode': mode, 'buffering': buffering,
'suffix': suffix, 'prefix': prefix,
'encoding': encoding, 'newline': newline,
- 'dir': dir, 'errors': errors}
+ 'dir': dir, 'errors': errors}
+
+ __class_getitem__ = classmethod(_types.GenericAlias)
- __class_getitem__ = classmethod(_types.GenericAlias)
-
def _check(self, file):
if self._rolled: return
max_size = self._max_size
@@ -661,12 +661,12 @@ class SpooledTemporaryFile:
newfile = self._file = TemporaryFile(**self._TemporaryFileArgs)
del self._TemporaryFileArgs
- pos = file.tell()
- if hasattr(newfile, 'buffer'):
- newfile.buffer.write(file.detach().getvalue())
- else:
- newfile.write(file.getvalue())
- newfile.seek(pos, 0)
+ pos = file.tell()
+ if hasattr(newfile, 'buffer'):
+ newfile.buffer.write(file.detach().getvalue())
+ else:
+ newfile.write(file.getvalue())
+ newfile.seek(pos, 0)
self._rolled = True
@@ -697,12 +697,12 @@ class SpooledTemporaryFile:
@property
def encoding(self):
- return self._file.encoding
+ return self._file.encoding
+
+ @property
+ def errors(self):
+ return self._file.errors
- @property
- def errors(self):
- return self._file.errors
-
def fileno(self):
self.rollover()
return self._file.fileno()
@@ -729,7 +729,7 @@ class SpooledTemporaryFile:
@property
def newlines(self):
- return self._file.newlines
+ return self._file.newlines
def read(self, *args):
return self._file.read(*args)
@@ -741,7 +741,7 @@ class SpooledTemporaryFile:
return self._file.readlines(*args)
def seek(self, *args):
- return self._file.seek(*args)
+ return self._file.seek(*args)
def tell(self):
return self._file.tell()
@@ -786,38 +786,38 @@ class TemporaryDirectory(object):
warn_message="Implicitly cleaning up {!r}".format(self))
@classmethod
- def _rmtree(cls, name):
- def onerror(func, path, exc_info):
- if issubclass(exc_info[0], PermissionError):
- def resetperms(path):
- try:
- _os.chflags(path, 0)
- except AttributeError:
- pass
- _os.chmod(path, 0o700)
-
- try:
- if path != name:
- resetperms(_os.path.dirname(path))
- resetperms(path)
-
- try:
- _os.unlink(path)
- # PermissionError is raised on FreeBSD for directories
- except (IsADirectoryError, PermissionError):
- cls._rmtree(path)
- except FileNotFoundError:
- pass
- elif issubclass(exc_info[0], FileNotFoundError):
- pass
- else:
- raise
-
- _shutil.rmtree(name, onerror=onerror)
-
- @classmethod
+ def _rmtree(cls, name):
+ def onerror(func, path, exc_info):
+ if issubclass(exc_info[0], PermissionError):
+ def resetperms(path):
+ try:
+ _os.chflags(path, 0)
+ except AttributeError:
+ pass
+ _os.chmod(path, 0o700)
+
+ try:
+ if path != name:
+ resetperms(_os.path.dirname(path))
+ resetperms(path)
+
+ try:
+ _os.unlink(path)
+ # PermissionError is raised on FreeBSD for directories
+ except (IsADirectoryError, PermissionError):
+ cls._rmtree(path)
+ except FileNotFoundError:
+ pass
+ elif issubclass(exc_info[0], FileNotFoundError):
+ pass
+ else:
+ raise
+
+ _shutil.rmtree(name, onerror=onerror)
+
+ @classmethod
def _cleanup(cls, name, warn_message):
- cls._rmtree(name)
+ cls._rmtree(name)
_warnings.warn(warn_message, ResourceWarning)
def __repr__(self):
@@ -831,6 +831,6 @@ class TemporaryDirectory(object):
def cleanup(self):
if self._finalizer.detach():
- self._rmtree(self.name)
-
- __class_getitem__ = classmethod(_types.GenericAlias)
+ self._rmtree(self.name)
+
+ __class_getitem__ = classmethod(_types.GenericAlias)
diff --git a/contrib/tools/python3/src/Lib/textwrap.py b/contrib/tools/python3/src/Lib/textwrap.py
index 4bbdcf8134..30e693c8de 100644
--- a/contrib/tools/python3/src/Lib/textwrap.py
+++ b/contrib/tools/python3/src/Lib/textwrap.py
@@ -420,9 +420,9 @@ def dedent(text):
Note that tabs and spaces are both treated as whitespace, but they
are not equal: the lines " hello" and "\\thello" are
- considered to have no common leading whitespace.
-
- Entirely blank lines are normalized to a newline character.
+ considered to have no common leading whitespace.
+
+ Entirely blank lines are normalized to a newline character.
"""
# Look for the longest leading string of spaces and tabs common to
# all lines.
diff --git a/contrib/tools/python3/src/Lib/threading.py b/contrib/tools/python3/src/Lib/threading.py
index 53b7203594..a3cb245ab9 100644
--- a/contrib/tools/python3/src/Lib/threading.py
+++ b/contrib/tools/python3/src/Lib/threading.py
@@ -3,7 +3,7 @@
import os as _os
import sys as _sys
import _thread
-import functools
+import functools
from time import monotonic as _time
from _weakrefset import WeakSet
@@ -27,20 +27,20 @@ __all__ = ['get_ident', 'active_count', 'Condition', 'current_thread',
'enumerate', 'main_thread', 'TIMEOUT_MAX',
'Event', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread',
'Barrier', 'BrokenBarrierError', 'Timer', 'ThreadError',
- 'setprofile', 'settrace', 'local', 'stack_size',
- 'excepthook', 'ExceptHookArgs']
+ 'setprofile', 'settrace', 'local', 'stack_size',
+ 'excepthook', 'ExceptHookArgs']
# Rename some stuff so "from threading import *" is safe
_start_new_thread = _thread.start_new_thread
_allocate_lock = _thread.allocate_lock
_set_sentinel = _thread._set_sentinel
get_ident = _thread.get_ident
-try:
- get_native_id = _thread.get_native_id
- _HAVE_THREAD_NATIVE_ID = True
- __all__.append('get_native_id')
-except AttributeError:
- _HAVE_THREAD_NATIVE_ID = False
+try:
+ get_native_id = _thread.get_native_id
+ _HAVE_THREAD_NATIVE_ID = True
+ __all__.append('get_native_id')
+except AttributeError:
+ _HAVE_THREAD_NATIVE_ID = False
ThreadError = _thread.error
try:
_CRLock = _thread.RLock
@@ -122,11 +122,11 @@ class _RLock:
hex(id(self))
)
- def _at_fork_reinit(self):
- self._block._at_fork_reinit()
- self._owner = None
- self._count = 0
-
+ def _at_fork_reinit(self):
+ self._block._at_fork_reinit()
+ self._owner = None
+ self._count = 0
+
def acquire(self, blocking=True, timeout=-1):
"""Acquire a lock, blocking or non-blocking.
@@ -249,10 +249,10 @@ class Condition:
pass
self._waiters = _deque()
- def _at_fork_reinit(self):
- self._lock._at_fork_reinit()
- self._waiters.clear()
-
+ def _at_fork_reinit(self):
+ self._lock._at_fork_reinit()
+ self._waiters.clear()
+
def __enter__(self):
return self._lock.__enter__()
@@ -271,7 +271,7 @@ class Condition:
def _is_owned(self):
# Return True if lock is owned by current_thread.
# This method is called only if _lock doesn't have _is_owned().
- if self._lock.acquire(False):
+ if self._lock.acquire(False):
self._lock.release()
return False
else:
@@ -448,19 +448,19 @@ class Semaphore:
__enter__ = acquire
- def release(self, n=1):
- """Release a semaphore, incrementing the internal counter by one or more.
+ def release(self, n=1):
+ """Release a semaphore, incrementing the internal counter by one or more.
When the counter is zero on entry and another thread is waiting for it
to become larger than zero again, wake up that thread.
"""
- if n < 1:
- raise ValueError('n must be one or more')
+ if n < 1:
+ raise ValueError('n must be one or more')
with self._cond:
- self._value += n
- for i in range(n):
- self._cond.notify()
+ self._value += n
+ for i in range(n):
+ self._cond.notify()
def __exit__(self, t, v, tb):
self.release()
@@ -487,8 +487,8 @@ class BoundedSemaphore(Semaphore):
Semaphore.__init__(self, value)
self._initial_value = value
- def release(self, n=1):
- """Release a semaphore, incrementing the internal counter by one or more.
+ def release(self, n=1):
+ """Release a semaphore, incrementing the internal counter by one or more.
When the counter is zero on entry and another thread is waiting for it
to become larger than zero again, wake up that thread.
@@ -497,14 +497,14 @@ class BoundedSemaphore(Semaphore):
raise a ValueError.
"""
- if n < 1:
- raise ValueError('n must be one or more')
+ if n < 1:
+ raise ValueError('n must be one or more')
with self._cond:
- if self._value + n > self._initial_value:
+ if self._value + n > self._initial_value:
raise ValueError("Semaphore released too many times")
- self._value += n
- for i in range(n):
- self._cond.notify()
+ self._value += n
+ for i in range(n):
+ self._cond.notify()
class Event:
@@ -522,9 +522,9 @@ class Event:
self._cond = Condition(Lock())
self._flag = False
- def _at_fork_reinit(self):
- # Private method called by Thread._reset_internal_locks()
- self._cond._at_fork_reinit()
+ def _at_fork_reinit(self):
+ # Private method called by Thread._reset_internal_locks()
+ self._cond._at_fork_reinit()
def is_set(self):
"""Return true if and only if the internal flag is true."""
@@ -608,7 +608,7 @@ class Barrier:
self._action = action
self._timeout = timeout
self._parties = parties
- self._state = 0 # 0 filling, 1 draining, -1 resetting, -2 broken
+ self._state = 0 # 0 filling, 1 draining, -1 resetting, -2 broken
self._count = 0
def wait(self, timeout=None):
@@ -750,35 +750,35 @@ _counter() # Consume 0 so first non-main thread has id 1.
def _newname(template="Thread-%d"):
return template % _counter()
-# Active thread administration.
-#
-# bpo-44422: Use a reentrant lock to allow reentrant calls to functions like
-# threading.enumerate().
-_active_limbo_lock = RLock()
+# Active thread administration.
+#
+# bpo-44422: Use a reentrant lock to allow reentrant calls to functions like
+# threading.enumerate().
+_active_limbo_lock = RLock()
_active = {} # maps thread id to Thread object
_limbo = {}
_dangling = WeakSet()
-
-# Set of Thread._tstate_lock locks of non-daemon threads used by _shutdown()
-# to wait until all Python thread states get deleted:
-# see Thread._set_tstate_lock().
-_shutdown_locks_lock = _allocate_lock()
-_shutdown_locks = set()
-
-def _maintain_shutdown_locks():
- """
- Drop any shutdown locks that don't correspond to running threads anymore.
-
- Calling this from time to time avoids an ever-growing _shutdown_locks
- set when Thread objects are not joined explicitly. See bpo-37788.
-
- This must be called with _shutdown_locks_lock acquired.
- """
- # If a lock was released, the corresponding thread has exited
- to_remove = [lock for lock in _shutdown_locks if not lock.locked()]
- _shutdown_locks.difference_update(to_remove)
-
-
+
+# Set of Thread._tstate_lock locks of non-daemon threads used by _shutdown()
+# to wait until all Python thread states get deleted:
+# see Thread._set_tstate_lock().
+_shutdown_locks_lock = _allocate_lock()
+_shutdown_locks = set()
+
+def _maintain_shutdown_locks():
+ """
+ Drop any shutdown locks that don't correspond to running threads anymore.
+
+ Calling this from time to time avoids an ever-growing _shutdown_locks
+ set when Thread objects are not joined explicitly. See bpo-37788.
+
+ This must be called with _shutdown_locks_lock acquired.
+ """
+ # If a lock was released, the corresponding thread has exited
+ to_remove = [lock for lock in _shutdown_locks if not lock.locked()]
+ _shutdown_locks.difference_update(to_remove)
+
+
# Main class for threads
class Thread:
@@ -827,29 +827,29 @@ class Thread:
else:
self._daemonic = current_thread().daemon
self._ident = None
- if _HAVE_THREAD_NATIVE_ID:
- self._native_id = None
+ if _HAVE_THREAD_NATIVE_ID:
+ self._native_id = None
self._tstate_lock = None
self._started = Event()
self._is_stopped = False
self._initialized = True
- # Copy of sys.stderr used by self._invoke_excepthook()
+ # Copy of sys.stderr used by self._invoke_excepthook()
self._stderr = _sys.stderr
- self._invoke_excepthook = _make_invoke_excepthook()
+ self._invoke_excepthook = _make_invoke_excepthook()
# For debugging and _after_fork()
_dangling.add(self)
def _reset_internal_locks(self, is_alive):
# private! Called by _after_fork() to reset our internal locks as
# they may be in an invalid state leading to a deadlock or crash.
- self._started._at_fork_reinit()
+ self._started._at_fork_reinit()
if is_alive:
- # bpo-42350: If the fork happens when the thread is already stopped
- # (ex: after threading._shutdown() has been called), _tstate_lock
- # is None. Do nothing in this case.
- if self._tstate_lock is not None:
- self._tstate_lock._at_fork_reinit()
- self._tstate_lock.acquire()
+ # bpo-42350: If the fork happens when the thread is already stopped
+ # (ex: after threading._shutdown() has been called), _tstate_lock
+ # is None. Do nothing in this case.
+ if self._tstate_lock is not None:
+ self._tstate_lock._at_fork_reinit()
+ self._tstate_lock.acquire()
else:
# The thread isn't alive after fork: it doesn't have a tstate
# anymore.
@@ -885,7 +885,7 @@ class Thread:
if self._started.is_set():
raise RuntimeError("threads can only be started once")
-
+
with _active_limbo_lock:
_limbo[self] = self
try:
@@ -936,10 +936,10 @@ class Thread:
def _set_ident(self):
self._ident = get_ident()
- if _HAVE_THREAD_NATIVE_ID:
- def _set_native_id(self):
- self._native_id = get_native_id()
-
+ if _HAVE_THREAD_NATIVE_ID:
+ def _set_native_id(self):
+ self._native_id = get_native_id()
+
def _set_tstate_lock(self):
"""
Set a lock object which will be released by the interpreter when
@@ -948,17 +948,17 @@ class Thread:
self._tstate_lock = _set_sentinel()
self._tstate_lock.acquire()
- if not self.daemon:
- with _shutdown_locks_lock:
- _maintain_shutdown_locks()
- _shutdown_locks.add(self._tstate_lock)
-
+ if not self.daemon:
+ with _shutdown_locks_lock:
+ _maintain_shutdown_locks()
+ _shutdown_locks.add(self._tstate_lock)
+
def _bootstrap_inner(self):
try:
self._set_ident()
self._set_tstate_lock()
- if _HAVE_THREAD_NATIVE_ID:
- self._set_native_id()
+ if _HAVE_THREAD_NATIVE_ID:
+ self._set_native_id()
self._started.set()
with _active_limbo_lock:
_active[self._ident] = self
@@ -972,7 +972,7 @@ class Thread:
try:
self.run()
except:
- self._invoke_excepthook(self)
+ self._invoke_excepthook(self)
finally:
with _active_limbo_lock:
try:
@@ -1004,10 +1004,10 @@ class Thread:
assert not lock.locked()
self._is_stopped = True
self._tstate_lock = None
- if not self.daemon:
- with _shutdown_locks_lock:
- # Remove our lock and other released locks from _shutdown_locks
- _maintain_shutdown_locks()
+ if not self.daemon:
+ with _shutdown_locks_lock:
+ # Remove our lock and other released locks from _shutdown_locks
+ _maintain_shutdown_locks()
def _delete(self):
"Remove current thread from the dict of currently running threads."
@@ -1064,25 +1064,25 @@ class Thread:
# If the lock is acquired, the C code is done, and self._stop() is
# called. That sets ._is_stopped to True, and ._tstate_lock to None.
lock = self._tstate_lock
- if lock is None:
- # already determined that the C code is done
+ if lock is None:
+ # already determined that the C code is done
assert self._is_stopped
- return
-
- try:
- if lock.acquire(block, timeout):
- lock.release()
- self._stop()
- except:
- if lock.locked():
- # bpo-45274: lock.acquire() acquired the lock, but the function
- # was interrupted with an exception before reaching the
- # lock.release(). It can happen if a signal handler raises an
- # exception, like CTRL+C which raises KeyboardInterrupt.
- lock.release()
- self._stop()
- raise
-
+ return
+
+ try:
+ if lock.acquire(block, timeout):
+ lock.release()
+ self._stop()
+ except:
+ if lock.locked():
+ # bpo-45274: lock.acquire() acquired the lock, but the function
+ # was interrupted with an exception before reaching the
+ # lock.release(). It can happen if a signal handler raises an
+ # exception, like CTRL+C which raises KeyboardInterrupt.
+ lock.release()
+ self._stop()
+ raise
+
@property
def name(self):
"""A string used for identification purposes only.
@@ -1111,24 +1111,24 @@ class Thread:
assert self._initialized, "Thread.__init__() not called"
return self._ident
- if _HAVE_THREAD_NATIVE_ID:
- @property
- def native_id(self):
- """Native integral thread ID of this thread, or None if it has not been started.
-
- This is a non-negative integer. See the get_native_id() function.
- This represents the Thread ID as reported by the kernel.
-
- """
- assert self._initialized, "Thread.__init__() not called"
- return self._native_id
-
+ if _HAVE_THREAD_NATIVE_ID:
+ @property
+ def native_id(self):
+ """Native integral thread ID of this thread, or None if it has not been started.
+
+ This is a non-negative integer. See the get_native_id() function.
+ This represents the Thread ID as reported by the kernel.
+
+ """
+ assert self._initialized, "Thread.__init__() not called"
+ return self._native_id
+
def is_alive(self):
"""Return whether the thread is alive.
This method returns True just before the run() method starts until just
- after the run() method terminates. See also the module function
- enumerate().
+ after the run() method terminates. See also the module function
+ enumerate().
"""
assert self._initialized, "Thread.__init__() not called"
@@ -1146,7 +1146,7 @@ class Thread:
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.
- The entire Python program exits when only daemon threads are left.
+ The entire Python program exits when only daemon threads are left.
"""
assert self._initialized, "Thread.__init__() not called"
@@ -1172,104 +1172,104 @@ class Thread:
def setName(self, name):
self.name = name
-
-try:
- from _thread import (_excepthook as excepthook,
- _ExceptHookArgs as ExceptHookArgs)
-except ImportError:
- # Simple Python implementation if _thread._excepthook() is not available
- from traceback import print_exception as _print_exception
- from collections import namedtuple
-
- _ExceptHookArgs = namedtuple(
- 'ExceptHookArgs',
- 'exc_type exc_value exc_traceback thread')
-
- def ExceptHookArgs(args):
- return _ExceptHookArgs(*args)
-
- def excepthook(args, /):
- """
- Handle uncaught Thread.run() exception.
- """
- if args.exc_type == SystemExit:
- # silently ignore SystemExit
- return
-
- if _sys is not None and _sys.stderr is not None:
- stderr = _sys.stderr
- elif args.thread is not None:
- stderr = args.thread._stderr
- if stderr is None:
- # do nothing if sys.stderr is None and sys.stderr was None
- # when the thread was created
- return
- else:
- # do nothing if sys.stderr is None and args.thread is None
- return
-
- if args.thread is not None:
- name = args.thread.name
- else:
- name = get_ident()
- print(f"Exception in thread {name}:",
- file=stderr, flush=True)
- _print_exception(args.exc_type, args.exc_value, args.exc_traceback,
- file=stderr)
- stderr.flush()
-
-
-def _make_invoke_excepthook():
- # Create a local namespace to ensure that variables remain alive
- # when _invoke_excepthook() is called, even if it is called late during
- # Python shutdown. It is mostly needed for daemon threads.
-
- old_excepthook = excepthook
- old_sys_excepthook = _sys.excepthook
- if old_excepthook is None:
- raise RuntimeError("threading.excepthook is None")
- if old_sys_excepthook is None:
- raise RuntimeError("sys.excepthook is None")
-
- sys_exc_info = _sys.exc_info
- local_print = print
- local_sys = _sys
-
- def invoke_excepthook(thread):
- global excepthook
- try:
- hook = excepthook
- if hook is None:
- hook = old_excepthook
-
- args = ExceptHookArgs([*sys_exc_info(), thread])
-
- hook(args)
- except Exception as exc:
- exc.__suppress_context__ = True
- del exc
-
- if local_sys is not None and local_sys.stderr is not None:
- stderr = local_sys.stderr
- else:
- stderr = thread._stderr
-
- local_print("Exception in threading.excepthook:",
- file=stderr, flush=True)
-
- if local_sys is not None and local_sys.excepthook is not None:
- sys_excepthook = local_sys.excepthook
- else:
- sys_excepthook = old_sys_excepthook
-
- sys_excepthook(*sys_exc_info())
- finally:
- # Break reference cycle (exception stored in a variable)
- args = None
-
- return invoke_excepthook
-
-
+
+try:
+ from _thread import (_excepthook as excepthook,
+ _ExceptHookArgs as ExceptHookArgs)
+except ImportError:
+ # Simple Python implementation if _thread._excepthook() is not available
+ from traceback import print_exception as _print_exception
+ from collections import namedtuple
+
+ _ExceptHookArgs = namedtuple(
+ 'ExceptHookArgs',
+ 'exc_type exc_value exc_traceback thread')
+
+ def ExceptHookArgs(args):
+ return _ExceptHookArgs(*args)
+
+ def excepthook(args, /):
+ """
+ Handle uncaught Thread.run() exception.
+ """
+ if args.exc_type == SystemExit:
+ # silently ignore SystemExit
+ return
+
+ if _sys is not None and _sys.stderr is not None:
+ stderr = _sys.stderr
+ elif args.thread is not None:
+ stderr = args.thread._stderr
+ if stderr is None:
+ # do nothing if sys.stderr is None and sys.stderr was None
+ # when the thread was created
+ return
+ else:
+ # do nothing if sys.stderr is None and args.thread is None
+ return
+
+ if args.thread is not None:
+ name = args.thread.name
+ else:
+ name = get_ident()
+ print(f"Exception in thread {name}:",
+ file=stderr, flush=True)
+ _print_exception(args.exc_type, args.exc_value, args.exc_traceback,
+ file=stderr)
+ stderr.flush()
+
+
+def _make_invoke_excepthook():
+ # Create a local namespace to ensure that variables remain alive
+ # when _invoke_excepthook() is called, even if it is called late during
+ # Python shutdown. It is mostly needed for daemon threads.
+
+ old_excepthook = excepthook
+ old_sys_excepthook = _sys.excepthook
+ if old_excepthook is None:
+ raise RuntimeError("threading.excepthook is None")
+ if old_sys_excepthook is None:
+ raise RuntimeError("sys.excepthook is None")
+
+ sys_exc_info = _sys.exc_info
+ local_print = print
+ local_sys = _sys
+
+ def invoke_excepthook(thread):
+ global excepthook
+ try:
+ hook = excepthook
+ if hook is None:
+ hook = old_excepthook
+
+ args = ExceptHookArgs([*sys_exc_info(), thread])
+
+ hook(args)
+ except Exception as exc:
+ exc.__suppress_context__ = True
+ del exc
+
+ if local_sys is not None and local_sys.stderr is not None:
+ stderr = local_sys.stderr
+ else:
+ stderr = thread._stderr
+
+ local_print("Exception in threading.excepthook:",
+ file=stderr, flush=True)
+
+ if local_sys is not None and local_sys.excepthook is not None:
+ sys_excepthook = local_sys.excepthook
+ else:
+ sys_excepthook = old_sys_excepthook
+
+ sys_excepthook(*sys_exc_info())
+ finally:
+ # Break reference cycle (exception stored in a variable)
+ args = None
+
+ return invoke_excepthook
+
+
# The timer class was contributed by Itamar Shtull-Trauring
class Timer(Thread):
@@ -1309,8 +1309,8 @@ class _MainThread(Thread):
self._set_tstate_lock()
self._started.set()
self._set_ident()
- if _HAVE_THREAD_NATIVE_ID:
- self._set_native_id()
+ if _HAVE_THREAD_NATIVE_ID:
+ self._set_native_id()
with _active_limbo_lock:
_active[self._ident] = self
@@ -1330,8 +1330,8 @@ class _DummyThread(Thread):
self._started.set()
self._set_ident()
- if _HAVE_THREAD_NATIVE_ID:
- self._set_native_id()
+ if _HAVE_THREAD_NATIVE_ID:
+ self._set_native_id()
with _active_limbo_lock:
_active[self._ident] = self
@@ -1389,27 +1389,27 @@ def enumerate():
with _active_limbo_lock:
return list(_active.values()) + list(_limbo.values())
-
-_threading_atexits = []
-_SHUTTING_DOWN = False
-
-def _register_atexit(func, *arg, **kwargs):
- """CPython internal: register *func* to be called before joining threads.
-
- The registered *func* is called with its arguments just before all
- non-daemon threads are joined in `_shutdown()`. It provides a similar
- purpose to `atexit.register()`, but its functions are called prior to
- threading shutdown instead of interpreter shutdown.
-
- For similarity to atexit, the registered functions are called in reverse.
- """
- if _SHUTTING_DOWN:
- raise RuntimeError("can't register atexit after shutdown")
-
- call = functools.partial(func, *arg, **kwargs)
- _threading_atexits.append(call)
-
-
+
+_threading_atexits = []
+_SHUTTING_DOWN = False
+
+def _register_atexit(func, *arg, **kwargs):
+ """CPython internal: register *func* to be called before joining threads.
+
+ The registered *func* is called with its arguments just before all
+ non-daemon threads are joined in `_shutdown()`. It provides a similar
+ purpose to `atexit.register()`, but its functions are called prior to
+ threading shutdown instead of interpreter shutdown.
+
+ For similarity to atexit, the registered functions are called in reverse.
+ """
+ if _SHUTTING_DOWN:
+ raise RuntimeError("can't register atexit after shutdown")
+
+ call = functools.partial(func, *arg, **kwargs)
+ _threading_atexits.append(call)
+
+
from _thread import stack_size
# Create the main thread object,
@@ -1419,9 +1419,9 @@ from _thread import stack_size
_main_thread = _MainThread()
def _shutdown():
- """
- Wait until the Python thread state of all non-daemon threads get deleted.
- """
+ """
+ Wait until the Python thread state of all non-daemon threads get deleted.
+ """
# Obscure: other threads may be waiting to join _main_thread. That's
# dubious, but some code does it. We can't wait for C code to release
# the main thread's tstate_lock - that won't happen until the interpreter
@@ -1430,50 +1430,50 @@ def _shutdown():
if _main_thread._is_stopped:
# _shutdown() was already called
return
-
- global _SHUTTING_DOWN
- _SHUTTING_DOWN = True
-
- # Call registered threading atexit functions before threads are joined.
- # Order is reversed, similar to atexit.
- for atexit_call in reversed(_threading_atexits):
- atexit_call()
-
- # Main thread
- if _main_thread.ident == get_ident():
- tlock = _main_thread._tstate_lock
- # The main thread isn't finished yet, so its thread state lock can't
- # have been released.
- assert tlock is not None
- assert tlock.locked()
- tlock.release()
- _main_thread._stop()
- else:
- # bpo-1596321: _shutdown() must be called in the main thread.
- # If the threading module was not imported by the main thread,
- # _main_thread is the thread which imported the threading module.
- # In this case, ignore _main_thread, similar behavior than for threads
- # spawned by C libraries or using _thread.start_new_thread().
- pass
-
- # Join all non-deamon threads
- while True:
- with _shutdown_locks_lock:
- locks = list(_shutdown_locks)
- _shutdown_locks.clear()
-
- if not locks:
- break
-
- for lock in locks:
- # mimic Thread.join()
- lock.acquire()
- lock.release()
-
- # new threads can be spawned while we were waiting for the other
- # threads to complete
-
-
+
+ global _SHUTTING_DOWN
+ _SHUTTING_DOWN = True
+
+ # Call registered threading atexit functions before threads are joined.
+ # Order is reversed, similar to atexit.
+ for atexit_call in reversed(_threading_atexits):
+ atexit_call()
+
+ # Main thread
+ if _main_thread.ident == get_ident():
+ tlock = _main_thread._tstate_lock
+ # The main thread isn't finished yet, so its thread state lock can't
+ # have been released.
+ assert tlock is not None
+ assert tlock.locked()
+ tlock.release()
+ _main_thread._stop()
+ else:
+ # bpo-1596321: _shutdown() must be called in the main thread.
+ # If the threading module was not imported by the main thread,
+ # _main_thread is the thread which imported the threading module.
+ # In this case, ignore _main_thread, similar behavior than for threads
+ # spawned by C libraries or using _thread.start_new_thread().
+ pass
+
+ # Join all non-deamon threads
+ while True:
+ with _shutdown_locks_lock:
+ locks = list(_shutdown_locks)
+ _shutdown_locks.clear()
+
+ if not locks:
+ break
+
+ for lock in locks:
+ # mimic Thread.join()
+ lock.acquire()
+ lock.release()
+
+ # new threads can be spawned while we were waiting for the other
+ # threads to complete
+
+
def main_thread():
"""Return the main thread object.
@@ -1498,26 +1498,26 @@ def _after_fork():
# Reset _active_limbo_lock, in case we forked while the lock was held
# by another (non-forked) thread. http://bugs.python.org/issue874900
global _active_limbo_lock, _main_thread
- global _shutdown_locks_lock, _shutdown_locks
- _active_limbo_lock = RLock()
+ global _shutdown_locks_lock, _shutdown_locks
+ _active_limbo_lock = RLock()
# fork() only copied the current thread; clear references to others.
new_active = {}
-
- try:
- current = _active[get_ident()]
- except KeyError:
- # fork() was called in a thread which was not spawned
- # by threading.Thread. For example, a thread spawned
- # by thread.start_new_thread().
- current = _MainThread()
-
+
+ try:
+ current = _active[get_ident()]
+ except KeyError:
+ # fork() was called in a thread which was not spawned
+ # by threading.Thread. For example, a thread spawned
+ # by thread.start_new_thread().
+ current = _MainThread()
+
_main_thread = current
-
- # reset _shutdown() locks: threads re-register their _tstate_lock below
- _shutdown_locks_lock = _allocate_lock()
- _shutdown_locks = set()
-
+
+ # reset _shutdown() locks: threads re-register their _tstate_lock below
+ _shutdown_locks_lock = _allocate_lock()
+ _shutdown_locks = set()
+
with _active_limbo_lock:
# Dangling thread instances must still have their locks reset,
# because someone may join() them.
diff --git a/contrib/tools/python3/src/Lib/timeit.py b/contrib/tools/python3/src/Lib/timeit.py
index 418e4e9404..6c3ec01067 100644
--- a/contrib/tools/python3/src/Lib/timeit.py
+++ b/contrib/tools/python3/src/Lib/timeit.py
@@ -29,8 +29,8 @@ argument in quotes and using leading spaces. Multiple -s options are
treated similarly.
If -n is not given, a suitable number of loops is calculated by trying
-increasing numbers from the sequence 1, 2, 5, 10, 20, 50, ... until the
-total time is at least 0.2 seconds.
+increasing numbers from the sequence 1, 2, 5, 10, 20, 50, ... until the
+total time is at least 0.2 seconds.
Note: there is a certain baseline overhead associated with executing a
pass statement. It differs between versions. The code here doesn't try
diff --git a/contrib/tools/python3/src/Lib/token.py b/contrib/tools/python3/src/Lib/token.py
index e8286c3bf0..493bf04265 100644
--- a/contrib/tools/python3/src/Lib/token.py
+++ b/contrib/tools/python3/src/Lib/token.py
@@ -1,5 +1,5 @@
-"""Token constants."""
-# Auto-generated by Tools/scripts/generate_token.py
+"""Token constants."""
+# Auto-generated by Tools/scripts/generate_token.py
__all__ = ['tok_name', 'ISTERMINAL', 'ISNONTERMINAL', 'ISEOF']
@@ -56,18 +56,18 @@ AT = 49
ATEQUAL = 50
RARROW = 51
ELLIPSIS = 52
-COLONEQUAL = 53
-OP = 54
-AWAIT = 55
-ASYNC = 56
-TYPE_IGNORE = 57
-TYPE_COMMENT = 58
+COLONEQUAL = 53
+OP = 54
+AWAIT = 55
+ASYNC = 56
+TYPE_IGNORE = 57
+TYPE_COMMENT = 58
# These aren't used by the C tokenizer but are needed for tokenize.py
-ERRORTOKEN = 59
-COMMENT = 60
-NL = 61
-ENCODING = 62
-N_TOKENS = 63
+ERRORTOKEN = 59
+COMMENT = 60
+NL = 61
+ENCODING = 62
+N_TOKENS = 63
# Special definitions for cooperation with parser
NT_OFFSET = 256
@@ -76,56 +76,56 @@ tok_name = {value: name
if isinstance(value, int) and not name.startswith('_')}
__all__.extend(tok_name.values())
-EXACT_TOKEN_TYPES = {
- '!=': NOTEQUAL,
- '%': PERCENT,
- '%=': PERCENTEQUAL,
- '&': AMPER,
- '&=': AMPEREQUAL,
- '(': LPAR,
- ')': RPAR,
- '*': STAR,
- '**': DOUBLESTAR,
- '**=': DOUBLESTAREQUAL,
- '*=': STAREQUAL,
- '+': PLUS,
- '+=': PLUSEQUAL,
- ',': COMMA,
- '-': MINUS,
- '-=': MINEQUAL,
- '->': RARROW,
- '.': DOT,
- '...': ELLIPSIS,
- '/': SLASH,
- '//': DOUBLESLASH,
- '//=': DOUBLESLASHEQUAL,
- '/=': SLASHEQUAL,
- ':': COLON,
- ':=': COLONEQUAL,
- ';': SEMI,
- '<': LESS,
- '<<': LEFTSHIFT,
- '<<=': LEFTSHIFTEQUAL,
- '<=': LESSEQUAL,
- '=': EQUAL,
- '==': EQEQUAL,
- '>': GREATER,
- '>=': GREATEREQUAL,
- '>>': RIGHTSHIFT,
- '>>=': RIGHTSHIFTEQUAL,
- '@': AT,
- '@=': ATEQUAL,
- '[': LSQB,
- ']': RSQB,
- '^': CIRCUMFLEX,
- '^=': CIRCUMFLEXEQUAL,
- '{': LBRACE,
- '|': VBAR,
- '|=': VBAREQUAL,
- '}': RBRACE,
- '~': TILDE,
-}
-
+EXACT_TOKEN_TYPES = {
+ '!=': NOTEQUAL,
+ '%': PERCENT,
+ '%=': PERCENTEQUAL,
+ '&': AMPER,
+ '&=': AMPEREQUAL,
+ '(': LPAR,
+ ')': RPAR,
+ '*': STAR,
+ '**': DOUBLESTAR,
+ '**=': DOUBLESTAREQUAL,
+ '*=': STAREQUAL,
+ '+': PLUS,
+ '+=': PLUSEQUAL,
+ ',': COMMA,
+ '-': MINUS,
+ '-=': MINEQUAL,
+ '->': RARROW,
+ '.': DOT,
+ '...': ELLIPSIS,
+ '/': SLASH,
+ '//': DOUBLESLASH,
+ '//=': DOUBLESLASHEQUAL,
+ '/=': SLASHEQUAL,
+ ':': COLON,
+ ':=': COLONEQUAL,
+ ';': SEMI,
+ '<': LESS,
+ '<<': LEFTSHIFT,
+ '<<=': LEFTSHIFTEQUAL,
+ '<=': LESSEQUAL,
+ '=': EQUAL,
+ '==': EQEQUAL,
+ '>': GREATER,
+ '>=': GREATEREQUAL,
+ '>>': RIGHTSHIFT,
+ '>>=': RIGHTSHIFTEQUAL,
+ '@': AT,
+ '@=': ATEQUAL,
+ '[': LSQB,
+ ']': RSQB,
+ '^': CIRCUMFLEX,
+ '^=': CIRCUMFLEXEQUAL,
+ '{': LBRACE,
+ '|': VBAR,
+ '|=': VBAREQUAL,
+ '}': RBRACE,
+ '~': TILDE,
+}
+
def ISTERMINAL(x):
return x < NT_OFFSET
diff --git a/contrib/tools/python3/src/Lib/tokenize.py b/contrib/tools/python3/src/Lib/tokenize.py
index 98a435bfa1..a782f6250d 100644
--- a/contrib/tools/python3/src/Lib/tokenize.py
+++ b/contrib/tools/python3/src/Lib/tokenize.py
@@ -32,13 +32,13 @@ import itertools as _itertools
import re
import sys
from token import *
-from token import EXACT_TOKEN_TYPES
+from token import EXACT_TOKEN_TYPES
cookie_re = re.compile(r'^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)', re.ASCII)
blank_re = re.compile(br'^[ \t\f]*(?:[#\r\n]|$)', re.ASCII)
import token
-__all__ = token.__all__ + ["tokenize", "generate_tokens", "detect_encoding",
+__all__ = token.__all__ + ["tokenize", "generate_tokens", "detect_encoding",
"untokenize", "TokenInfo"]
del token
@@ -82,7 +82,7 @@ Number = group(Imagnumber, Floatnumber, Intnumber)
# Return the empty string, plus all of the valid string prefixes.
def _all_string_prefixes():
# The valid string prefixes. Only contain the lower case versions,
- # and don't contain any permutations (include 'fr', but not
+ # and don't contain any permutations (include 'fr', but not
# 'rf'). The various permutations will be generated.
_valid_string_prefixes = ['b', 'r', 'u', 'f', 'br', 'fr']
# if we add binary f-strings, add: ['fb', 'fbr']
@@ -115,11 +115,11 @@ Triple = group(StringPrefix + "'''", StringPrefix + '"""')
String = group(StringPrefix + r"'[^\n'\\]*(?:\\.[^\n'\\]*)*'",
StringPrefix + r'"[^\n"\\]*(?:\\.[^\n"\\]*)*"')
-# Sorting in reverse order puts the long operators before their prefixes.
-# Otherwise if = came before ==, == would get recognized as two instances
-# of =.
-Special = group(*map(re.escape, sorted(EXACT_TOKEN_TYPES, reverse=True)))
-Funny = group(r'\r?\n', Special)
+# Sorting in reverse order puts the long operators before their prefixes.
+# Otherwise if = came before ==, == would get recognized as two instances
+# of =.
+Special = group(*map(re.escape, sorted(EXACT_TOKEN_TYPES, reverse=True)))
+Funny = group(r'\r?\n', Special)
PlainToken = group(Number, Funny, String, Name)
Token = Ignore + PlainToken
@@ -223,7 +223,7 @@ class Untokenizer:
startline = token[0] in (NEWLINE, NL)
prevstring = False
- for tok in _itertools.chain([token], iterable):
+ for tok in _itertools.chain([token], iterable):
toknum, tokval = tok[:2]
if toknum == ENCODING:
self.encoding = tokval
@@ -415,15 +415,15 @@ def tokenize(readline):
column where the token begins in the source; a 2-tuple (erow, ecol) of
ints specifying the row and column where the token ends in the source;
and the line on which the token was found. The line passed is the
- physical line.
+ physical line.
The first token sequence will always be an ENCODING token
which tells you which encoding was used to decode the bytes stream.
"""
encoding, consumed = detect_encoding(readline)
- empty = _itertools.repeat(b"")
- rl_gen = _itertools.chain(consumed, iter(readline, b""), empty)
- return _tokenize(rl_gen.__next__, encoding)
+ empty = _itertools.repeat(b"")
+ rl_gen = _itertools.chain(consumed, iter(readline, b""), empty)
+ return _tokenize(rl_gen.__next__, encoding)
def _tokenize(readline, encoding):
@@ -530,7 +530,7 @@ def _tokenize(readline, encoding):
continue
token, initial = line[start:end], line[start]
- if (initial in numchars or # ordinary number
+ if (initial in numchars or # ordinary number
(initial == '.' and token != '.' and token != '...')):
yield TokenInfo(NUMBER, token, spos, epos, line)
elif initial in '\r\n':
@@ -602,7 +602,7 @@ def _tokenize(readline, encoding):
pos += 1
# Add an implicit NEWLINE if the input doesn't end in one
- if last_line and last_line[-1] not in '\r\n' and not last_line.strip().startswith("#"):
+ if last_line and last_line[-1] not in '\r\n' and not last_line.strip().startswith("#"):
yield TokenInfo(NEWLINE, '', (lnum - 1, len(last_line)), (lnum - 1, len(last_line) + 1), '')
for indent in indents[1:]: # pop remaining indent levels
yield TokenInfo(DEDENT, '', (lnum, 0), (lnum, 0), '')
@@ -610,11 +610,11 @@ def _tokenize(readline, encoding):
def generate_tokens(readline):
- """Tokenize a source reading Python code as unicode strings.
-
- This has the same API as tokenize(), except that it expects the *readline*
- callable to return str objects instead of bytes.
- """
+ """Tokenize a source reading Python code as unicode strings.
+
+ This has the same API as tokenize(), except that it expects the *readline*
+ callable to return str objects instead of bytes.
+ """
return _tokenize(readline, None)
def main():
@@ -622,8 +622,8 @@ def main():
# Helper error handling routines
def perror(message):
- sys.stderr.write(message)
- sys.stderr.write('\n')
+ sys.stderr.write(message)
+ sys.stderr.write('\n')
def error(message, filename=None, location=None):
if location:
diff --git a/contrib/tools/python3/src/Lib/trace.py b/contrib/tools/python3/src/Lib/trace.py
index 232dfc2f10..c505d8bc72 100644
--- a/contrib/tools/python3/src/Lib/trace.py
+++ b/contrib/tools/python3/src/Lib/trace.py
@@ -52,7 +52,7 @@ __all__ = ['Trace', 'CoverageResults']
import linecache
import os
import sys
-import sysconfig
+import sysconfig
import token
import tokenize
import inspect
@@ -287,9 +287,9 @@ class CoverageResults:
if self.outfile:
# try and store counts and module info into self.outfile
try:
- with open(self.outfile, 'wb') as f:
- pickle.dump((self.counts, self.calledfuncs, self.callers),
- f, 1)
+ with open(self.outfile, 'wb') as f:
+ pickle.dump((self.counts, self.calledfuncs, self.callers),
+ f, 1)
except OSError as err:
print("Can't save counts files because %s" % err, file=sys.stderr)
@@ -453,7 +453,7 @@ class Trace:
sys.settrace(None)
threading.settrace(None)
- def runfunc(self, func, /, *args, **kw):
+ def runfunc(self, func, /, *args, **kw):
result = None
if not self.donothing:
sys.settrace(self.globaltrace)
@@ -652,9 +652,9 @@ def main():
help='Ignore files in the given directory '
'(multiple directories can be joined by os.pathsep).')
- parser.add_argument('--module', action='store_true', default=False,
- help='Trace a module. ')
- parser.add_argument('progname', nargs='?',
+ parser.add_argument('--module', action='store_true', default=False,
+ help='Trace a module. ')
+ parser.add_argument('progname', nargs='?',
help='file to run as main program')
parser.add_argument('arguments', nargs=argparse.REMAINDER,
help='arguments to the program')
@@ -662,8 +662,8 @@ def main():
opts = parser.parse_args()
if opts.ignore_dir:
- _prefix = sysconfig.get_path("stdlib")
- _exec_prefix = sysconfig.get_path("platstdlib")
+ _prefix = sysconfig.get_path("stdlib")
+ _exec_prefix = sysconfig.get_path("platstdlib")
def parse_ignore_dir(s):
s = os.path.expanduser(os.path.expandvars(s))
@@ -691,40 +691,40 @@ def main():
if opts.summary and not opts.count:
parser.error('--summary can only be used with --count or --report')
- if opts.progname is None:
- parser.error('progname is missing: required with the main options')
+ if opts.progname is None:
+ parser.error('progname is missing: required with the main options')
t = Trace(opts.count, opts.trace, countfuncs=opts.listfuncs,
countcallers=opts.trackcalls, ignoremods=opts.ignore_module,
ignoredirs=opts.ignore_dir, infile=opts.file,
outfile=opts.file, timing=opts.timing)
try:
- if opts.module:
- import runpy
- module_name = opts.progname
- mod_name, mod_spec, code = runpy._get_module_details(module_name)
- sys.argv = [code.co_filename, *opts.arguments]
- globs = {
- '__name__': '__main__',
- '__file__': code.co_filename,
- '__package__': mod_spec.parent,
- '__loader__': mod_spec.loader,
- '__spec__': mod_spec,
- '__cached__': None,
- }
- else:
- sys.argv = [opts.progname, *opts.arguments]
- sys.path[0] = os.path.dirname(opts.progname)
-
- with open(opts.progname, 'rb') as fp:
- code = compile(fp.read(), opts.progname, 'exec')
- # try to emulate __main__ namespace as much as possible
- globs = {
- '__file__': opts.progname,
- '__name__': '__main__',
- '__package__': None,
- '__cached__': None,
- }
+ if opts.module:
+ import runpy
+ module_name = opts.progname
+ mod_name, mod_spec, code = runpy._get_module_details(module_name)
+ sys.argv = [code.co_filename, *opts.arguments]
+ globs = {
+ '__name__': '__main__',
+ '__file__': code.co_filename,
+ '__package__': mod_spec.parent,
+ '__loader__': mod_spec.loader,
+ '__spec__': mod_spec,
+ '__cached__': None,
+ }
+ else:
+ sys.argv = [opts.progname, *opts.arguments]
+ sys.path[0] = os.path.dirname(opts.progname)
+
+ with open(opts.progname, 'rb') as fp:
+ code = compile(fp.read(), opts.progname, 'exec')
+ # try to emulate __main__ namespace as much as possible
+ globs = {
+ '__file__': opts.progname,
+ '__name__': '__main__',
+ '__package__': None,
+ '__cached__': None,
+ }
t.runctx(code, globs, globs)
except OSError as err:
sys.exit("Cannot run file %r because: %s" % (sys.argv[0], err))
diff --git a/contrib/tools/python3/src/Lib/traceback.py b/contrib/tools/python3/src/Lib/traceback.py
index 116aa94918..c771a137cd 100644
--- a/contrib/tools/python3/src/Lib/traceback.py
+++ b/contrib/tools/python3/src/Lib/traceback.py
@@ -279,9 +279,9 @@ class FrameSummary:
return "<FrameSummary file {filename}, line {lineno} in {name}>".format(
filename=self.filename, lineno=self.lineno, name=self.name)
- def __len__(self):
- return 4
-
+ def __len__(self):
+ return 4
+
@property
def line(self):
if self._line is None:
@@ -476,37 +476,37 @@ class TracebackException:
_seen.add(id(exc_value))
# Gracefully handle (the way Python 2.4 and earlier did) the case of
# being called with no type or value (None, None, None).
- self._truncated = False
- try:
- if (exc_value and exc_value.__cause__ is not None
- and id(exc_value.__cause__) not in _seen):
- cause = TracebackException(
- type(exc_value.__cause__),
- exc_value.__cause__,
- exc_value.__cause__.__traceback__,
- limit=limit,
- lookup_lines=False,
- capture_locals=capture_locals,
- _seen=_seen)
- else:
- cause = None
- if (exc_value and exc_value.__context__ is not None
- and id(exc_value.__context__) not in _seen):
- context = TracebackException(
- type(exc_value.__context__),
- exc_value.__context__,
- exc_value.__context__.__traceback__,
- limit=limit,
- lookup_lines=False,
- capture_locals=capture_locals,
- _seen=_seen)
- else:
- context = None
- except RecursionError:
- # The recursive call to the constructors above
- # may result in a stack overflow for long exception chains,
- # so we must truncate.
- self._truncated = True
+ self._truncated = False
+ try:
+ if (exc_value and exc_value.__cause__ is not None
+ and id(exc_value.__cause__) not in _seen):
+ cause = TracebackException(
+ type(exc_value.__cause__),
+ exc_value.__cause__,
+ exc_value.__cause__.__traceback__,
+ limit=limit,
+ lookup_lines=False,
+ capture_locals=capture_locals,
+ _seen=_seen)
+ else:
+ cause = None
+ if (exc_value and exc_value.__context__ is not None
+ and id(exc_value.__context__) not in _seen):
+ context = TracebackException(
+ type(exc_value.__context__),
+ exc_value.__context__,
+ exc_value.__context__.__traceback__,
+ limit=limit,
+ lookup_lines=False,
+ capture_locals=capture_locals,
+ _seen=_seen)
+ else:
+ context = None
+ except RecursionError:
+ # The recursive call to the constructors above
+ # may result in a stack overflow for long exception chains,
+ # so we must truncate.
+ self._truncated = True
cause = None
context = None
self.__cause__ = cause
@@ -524,8 +524,8 @@ class TracebackException:
if exc_type and issubclass(exc_type, SyntaxError):
# Handle SyntaxError's specially
self.filename = exc_value.filename
- lno = exc_value.lineno
- self.lineno = str(lno) if lno is not None else None
+ lno = exc_value.lineno
+ self.lineno = str(lno) if lno is not None else None
self.text = exc_value.text
self.offset = exc_value.offset
self.msg = exc_value.msg
@@ -547,9 +547,9 @@ class TracebackException:
self.__cause__._load_lines()
def __eq__(self, other):
- if isinstance(other, TracebackException):
- return self.__dict__ == other.__dict__
- return NotImplemented
+ if isinstance(other, TracebackException):
+ return self.__dict__ == other.__dict__
+ return NotImplemented
def __str__(self):
return self._str
@@ -560,7 +560,7 @@ class TracebackException:
The return value is a generator of strings, each ending in a newline.
Normally, the generator emits a single string; however, for
- SyntaxError exceptions, it emits several lines that (when
+ SyntaxError exceptions, it emits several lines that (when
printed) display detailed information about where the syntax
error occurred.
@@ -574,42 +574,42 @@ class TracebackException:
stype = self.exc_type.__qualname__
smod = self.exc_type.__module__
if smod not in ("__main__", "builtins"):
- if not isinstance(smod, str):
- smod = "<unknown>"
+ if not isinstance(smod, str):
+ smod = "<unknown>"
stype = smod + '.' + stype
if not issubclass(self.exc_type, SyntaxError):
yield _format_final_exc_line(stype, self._str)
- else:
- yield from self._format_syntax_error(stype)
-
- def _format_syntax_error(self, stype):
- """Format SyntaxError exceptions (internal helper)."""
- # Show exactly where the problem was found.
- filename_suffix = ''
- if self.lineno is not None:
- yield ' File "{}", line {}\n'.format(
- self.filename or "<string>", self.lineno)
- elif self.filename is not None:
- filename_suffix = ' ({})'.format(self.filename)
-
- text = self.text
- if text is not None:
- # text = " foo\n"
- # rtext = " foo"
- # ltext = "foo"
- rtext = text.rstrip('\n')
- ltext = rtext.lstrip(' \n\f')
- spaces = len(rtext) - len(ltext)
- yield ' {}\n'.format(ltext)
- # Convert 1-based column offset to 0-based index into stripped text
- caret = (self.offset or 0) - 1 - spaces
- if caret >= 0:
+ else:
+ yield from self._format_syntax_error(stype)
+
+ def _format_syntax_error(self, stype):
+ """Format SyntaxError exceptions (internal helper)."""
+ # Show exactly where the problem was found.
+ filename_suffix = ''
+ if self.lineno is not None:
+ yield ' File "{}", line {}\n'.format(
+ self.filename or "<string>", self.lineno)
+ elif self.filename is not None:
+ filename_suffix = ' ({})'.format(self.filename)
+
+ text = self.text
+ if text is not None:
+ # text = " foo\n"
+ # rtext = " foo"
+ # ltext = "foo"
+ rtext = text.rstrip('\n')
+ ltext = rtext.lstrip(' \n\f')
+ spaces = len(rtext) - len(ltext)
+ yield ' {}\n'.format(ltext)
+ # Convert 1-based column offset to 0-based index into stripped text
+ caret = (self.offset or 0) - 1 - spaces
+ if caret >= 0:
# non-space whitespace (likes tabs) must be kept for alignment
- caretspace = ((c if c.isspace() else ' ') for c in ltext[:caret])
+ caretspace = ((c if c.isspace() else ' ') for c in ltext[:caret])
yield ' {}^\n'.format(''.join(caretspace))
msg = self.msg or "<no detail available>"
- yield "{}: {}{}\n".format(stype, msg, filename_suffix)
+ yield "{}: {}{}\n".format(stype, msg, filename_suffix)
def format(self, *, chain=True):
"""Format the exception.
@@ -631,11 +631,11 @@ class TracebackException:
not self.__suppress_context__):
yield from self.__context__.format(chain=chain)
yield _context_message
- if self._truncated:
- yield (
- 'Chained exceptions have been truncated to avoid '
- 'stack overflow in traceback formatting:\n')
- if self.stack:
+ if self._truncated:
+ yield (
+ 'Chained exceptions have been truncated to avoid '
+ 'stack overflow in traceback formatting:\n')
+ if self.stack:
yield 'Traceback (most recent call last):\n'
- yield from self.stack.format()
+ yield from self.stack.format()
yield from self.format_exception_only()
diff --git a/contrib/tools/python3/src/Lib/tracemalloc.py b/contrib/tools/python3/src/Lib/tracemalloc.py
index ddb216dd00..cec99c5970 100644
--- a/contrib/tools/python3/src/Lib/tracemalloc.py
+++ b/contrib/tools/python3/src/Lib/tracemalloc.py
@@ -43,8 +43,8 @@ class Statistic:
return hash((self.traceback, self.size, self.count))
def __eq__(self, other):
- if not isinstance(other, Statistic):
- return NotImplemented
+ if not isinstance(other, Statistic):
+ return NotImplemented
return (self.traceback == other.traceback
and self.size == other.size
and self.count == other.count)
@@ -86,8 +86,8 @@ class StatisticDiff:
self.count, self.count_diff))
def __eq__(self, other):
- if not isinstance(other, StatisticDiff):
- return NotImplemented
+ if not isinstance(other, StatisticDiff):
+ return NotImplemented
return (self.traceback == other.traceback
and self.size == other.size
and self.size_diff == other.size_diff
@@ -157,13 +157,13 @@ class Frame:
return self._frame[1]
def __eq__(self, other):
- if not isinstance(other, Frame):
- return NotImplemented
+ if not isinstance(other, Frame):
+ return NotImplemented
return (self._frame == other._frame)
def __lt__(self, other):
- if not isinstance(other, Frame):
- return NotImplemented
+ if not isinstance(other, Frame):
+ return NotImplemented
return (self._frame < other._frame)
def __hash__(self):
@@ -182,21 +182,21 @@ class Traceback(Sequence):
Sequence of Frame instances sorted from the oldest frame
to the most recent frame.
"""
- __slots__ = ("_frames", '_total_nframe')
+ __slots__ = ("_frames", '_total_nframe')
- def __init__(self, frames, total_nframe=None):
+ def __init__(self, frames, total_nframe=None):
Sequence.__init__(self)
# frames is a tuple of frame tuples: see Frame constructor for the
# format of a frame tuple; it is reversed, because _tracemalloc
# returns frames sorted from most recent to oldest, but the
# Python API expects oldest to most recent
self._frames = tuple(reversed(frames))
- self._total_nframe = total_nframe
+ self._total_nframe = total_nframe
+
+ @property
+ def total_nframe(self):
+ return self._total_nframe
- @property
- def total_nframe(self):
- return self._total_nframe
-
def __len__(self):
return len(self._frames)
@@ -213,25 +213,25 @@ class Traceback(Sequence):
return hash(self._frames)
def __eq__(self, other):
- if not isinstance(other, Traceback):
- return NotImplemented
+ if not isinstance(other, Traceback):
+ return NotImplemented
return (self._frames == other._frames)
def __lt__(self, other):
- if not isinstance(other, Traceback):
- return NotImplemented
+ if not isinstance(other, Traceback):
+ return NotImplemented
return (self._frames < other._frames)
def __str__(self):
return str(self[0])
def __repr__(self):
- s = f"<Traceback {tuple(self)}"
- if self._total_nframe is None:
- s += ">"
- else:
- s += f" total_nframe={self.total_nframe}>"
- return s
+ s = f"<Traceback {tuple(self)}"
+ if self._total_nframe is None:
+ s += ">"
+ else:
+ s += f" total_nframe={self.total_nframe}>"
+ return s
def format(self, limit=None, most_recent_first=False):
lines = []
@@ -290,11 +290,11 @@ class Trace:
@property
def traceback(self):
- return Traceback(*self._trace[2:])
+ return Traceback(*self._trace[2:])
def __eq__(self, other):
- if not isinstance(other, Trace):
- return NotImplemented
+ if not isinstance(other, Trace):
+ return NotImplemented
return (self._trace == other._trace)
def __hash__(self):
@@ -327,8 +327,8 @@ class _Traces(Sequence):
return trace._trace in self._traces
def __eq__(self, other):
- if not isinstance(other, _Traces):
- return NotImplemented
+ if not isinstance(other, _Traces):
+ return NotImplemented
return (self._traces == other._traces)
def __repr__(self):
@@ -388,7 +388,7 @@ class Filter(BaseFilter):
return self._match_frame(filename, lineno)
def _match(self, trace):
- domain, size, traceback, total_nframe = trace
+ domain, size, traceback, total_nframe = trace
res = self._match_traceback(traceback)
if self.domain is not None:
if self.inclusive:
@@ -408,7 +408,7 @@ class DomainFilter(BaseFilter):
return self._domain
def _match(self, trace):
- domain, size, traceback, total_nframe = trace
+ domain, size, traceback, total_nframe = trace
return (domain == self.domain) ^ (not self.inclusive)
@@ -485,7 +485,7 @@ class Snapshot:
tracebacks = {}
if not cumulative:
for trace in self.traces._traces:
- domain, size, trace_traceback, total_nframe = trace
+ domain, size, trace_traceback, total_nframe = trace
try:
traceback = tracebacks[trace_traceback]
except KeyError:
@@ -506,7 +506,7 @@ class Snapshot:
else:
# cumulative statistics
for trace in self.traces._traces:
- domain, size, trace_traceback, total_nframe = trace
+ domain, size, trace_traceback, total_nframe = trace
for frame in trace_traceback:
try:
traceback = tracebacks[frame]
diff --git a/contrib/tools/python3/src/Lib/turtle.py b/contrib/tools/python3/src/Lib/turtle.py
index 975d851b9f..9c8f6ced25 100644
--- a/contrib/tools/python3/src/Lib/turtle.py
+++ b/contrib/tools/python3/src/Lib/turtle.py
@@ -38,7 +38,7 @@ pictures can easily be drawn.
----- turtle.py
This module is an extended reimplementation of turtle.py from the
-Python standard distribution up to Python 2.5. (See: https://www.python.org)
+Python standard distribution up to Python 2.5. (See: https://www.python.org)
It tries to keep the merits of turtle.py and to be (nearly) 100%
compatible with it. This means in the first place to enable the
@@ -258,7 +258,7 @@ class Vec2D(tuple):
def __rmul__(self, other):
if isinstance(other, int) or isinstance(other, float):
return Vec2D(self[0]*other, self[1]*other)
- return NotImplemented
+ return NotImplemented
def __sub__(self, other):
return Vec2D(self[0]-other[0], self[1]-other[1])
def __neg__(self):
@@ -464,18 +464,18 @@ class TurtleScreenBase(object):
a corresponding TurtleScreenBase class has to be implemented.
"""
- def _blankimage(self):
+ def _blankimage(self):
"""return a blank image object
"""
- img = TK.PhotoImage(width=1, height=1, master=self.cv)
+ img = TK.PhotoImage(width=1, height=1, master=self.cv)
img.blank()
return img
- def _image(self, filename):
+ def _image(self, filename):
"""return an image object containing the
imagedata from a gif-file named filename.
"""
- return TK.PhotoImage(file=filename, master=self.cv)
+ return TK.PhotoImage(file=filename, master=self.cv)
def __init__(self, cv):
self.cv = cv
@@ -809,7 +809,7 @@ class TurtleScreenBase(object):
>>> screen.mainloop()
"""
- self.cv.tk.mainloop()
+ self.cv.tk.mainloop()
def textinput(self, title, prompt):
"""Pop up a dialog window for input of a string.
@@ -824,7 +824,7 @@ class TurtleScreenBase(object):
>>> screen.textinput("NIM", "Name of first player:")
"""
- return simpledialog.askstring(title, prompt, parent=self.cv)
+ return simpledialog.askstring(title, prompt, parent=self.cv)
def numinput(self, title, prompt, default=None, minval=None, maxval=None):
"""Pop up a dialog window for input of a number.
@@ -832,7 +832,7 @@ class TurtleScreenBase(object):
Arguments: title is the title of the dialog window,
prompt is a text mostly describing what numerical information to input.
default: default value
- minval: minimum value for input
+ minval: minimum value for input
maxval: maximum value for input
The number input must be in the range minval .. maxval if these are
@@ -845,8 +845,8 @@ class TurtleScreenBase(object):
"""
return simpledialog.askfloat(title, prompt, initialvalue=default,
- minvalue=minval, maxvalue=maxval,
- parent=self.cv)
+ minvalue=minval, maxvalue=maxval,
+ parent=self.cv)
##############################################################################
@@ -964,8 +964,8 @@ class TurtleScreen(TurtleScreenBase):
def __init__(self, cv, mode=_CFG["mode"],
colormode=_CFG["colormode"], delay=_CFG["delay"]):
- TurtleScreenBase.__init__(self, cv)
-
+ TurtleScreenBase.__init__(self, cv)
+
self._shapes = {
"arrow" : Shape("polygon", ((-10,0), (10,0), (0,10))),
"turtle" : Shape("polygon", ((0,16), (-2,14), (-1,10), (-4,7),
@@ -1569,7 +1569,7 @@ class TNavigator(object):
fullcircle - a number
Set angle measurement units, i. e. set number
- of 'degrees' for a full circle. Default value is
+ of 'degrees' for a full circle. Default value is
360 degrees.
Example (for a Turtle instance named turtle):
@@ -1645,7 +1645,7 @@ class TNavigator(object):
Argument:
distance -- a number
- Move the turtle backward by distance, opposite to the direction the
+ Move the turtle backward by distance, opposite to the direction the
turtle is headed. Do not change the turtle's heading.
Example (for a Turtle instance named turtle):
@@ -2877,8 +2877,8 @@ class RawTurtle(TPen, TNavigator):
between the orientation of the turtleshape and the heading of the
turtle (its direction of movement).
- (Incorrectly marked as deprecated since Python 3.1, it is really
- settiltangle that is deprecated.)
+ (Incorrectly marked as deprecated since Python 3.1, it is really
+ settiltangle that is deprecated.)
Examples (for a Turtle instance named turtle):
>>> turtle.shape("circle")
diff --git a/contrib/tools/python3/src/Lib/types.py b/contrib/tools/python3/src/Lib/types.py
index c5197adcd9..f15fda5933 100644
--- a/contrib/tools/python3/src/Lib/types.py
+++ b/contrib/tools/python3/src/Lib/types.py
@@ -15,13 +15,13 @@ CodeType = type(_f.__code__)
MappingProxyType = type(type.__dict__)
SimpleNamespace = type(sys.implementation)
-def _cell_factory():
- a = 1
- def f():
- nonlocal a
- return f.__closure__[0]
-CellType = type(_cell_factory())
-
+def _cell_factory():
+ a = 1
+ def f():
+ nonlocal a
+ return f.__closure__[0]
+CellType = type(_cell_factory())
+
def _g():
yield 1
GeneratorType = type(_g())
@@ -82,7 +82,7 @@ def resolve_bases(bases):
updated = False
shift = 0
for i, base in enumerate(bases):
- if isinstance(base, type) and not isinstance(base, GenericAlias):
+ if isinstance(base, type) and not isinstance(base, GenericAlias):
continue
if not hasattr(base, "__mro_entries__"):
continue
@@ -262,8 +262,8 @@ def coroutine(func):
if co_flags & 0x20:
# TODO: Implement this in C.
co = func.__code__
- # 0x100 == CO_ITERABLE_COROUTINE
- func.__code__ = co.replace(co_flags=co.co_flags | 0x100)
+ # 0x100 == CO_ITERABLE_COROUTINE
+ func.__code__ = co.replace(co_flags=co.co_flags | 0x100)
return func
# The following code is primarily to support functions that
@@ -293,7 +293,7 @@ def coroutine(func):
return wrapped
-GenericAlias = type(list[int])
-
-
+GenericAlias = type(list[int])
+
+
__all__ = [n for n in globals() if n[:1] != '_']
diff --git a/contrib/tools/python3/src/Lib/typing.py b/contrib/tools/python3/src/Lib/typing.py
index 7b687082a4..da70d4115f 100644
--- a/contrib/tools/python3/src/Lib/typing.py
+++ b/contrib/tools/python3/src/Lib/typing.py
@@ -9,15 +9,15 @@ At large scale, the structure of the module is following:
* The core of internal generics API: _GenericAlias and _VariadicGenericAlias, the latter is
currently only used by Tuple and Callable. All subscripted types like X[int], Union[int, str],
etc., are instances of either of these classes.
-* The public counterpart of the generics API consists of two classes: Generic and Protocol.
+* The public counterpart of the generics API consists of two classes: Generic and Protocol.
* Public helper functions: get_type_hints, overload, cast, no_type_check,
no_type_check_decorator.
* Generic aliases for collections.abc ABCs and few additional protocols.
-* Special types: NewType, NamedTuple, TypedDict.
+* Special types: NewType, NamedTuple, TypedDict.
* Wrapper submodules for re and io related types.
"""
-from abc import abstractmethod, ABCMeta
+from abc import abstractmethod, ABCMeta
import collections
import collections.abc
import contextlib
@@ -26,21 +26,21 @@ import operator
import re as stdlib_re # Avoid confusion with the re we export.
import sys
import types
-from types import WrapperDescriptorType, MethodWrapperType, MethodDescriptorType, GenericAlias
+from types import WrapperDescriptorType, MethodWrapperType, MethodDescriptorType, GenericAlias
# Please keep __all__ alphabetized within each category.
__all__ = [
# Super-special typing primitives.
- 'Annotated',
+ 'Annotated',
'Any',
'Callable',
'ClassVar',
- 'Final',
- 'ForwardRef',
+ 'Final',
+ 'ForwardRef',
'Generic',
- 'Literal',
+ 'Literal',
'Optional',
- 'Protocol',
+ 'Protocol',
'Tuple',
'Type',
'TypeVar',
@@ -78,44 +78,44 @@ __all__ = [
'SupportsBytes',
'SupportsComplex',
'SupportsFloat',
- 'SupportsIndex',
+ 'SupportsIndex',
'SupportsInt',
'SupportsRound',
# Concrete collection types.
- 'ChainMap',
+ 'ChainMap',
'Counter',
'Deque',
'Dict',
'DefaultDict',
'List',
- 'OrderedDict',
+ 'OrderedDict',
'Set',
'FrozenSet',
'NamedTuple', # Not really a type.
- 'TypedDict', # Not really a type.
+ 'TypedDict', # Not really a type.
'Generator',
-
- # Other concrete types.
- 'BinaryIO',
- 'IO',
- 'Match',
- 'Pattern',
- 'TextIO',
+
+ # Other concrete types.
+ 'BinaryIO',
+ 'IO',
+ 'Match',
+ 'Pattern',
+ 'TextIO',
# One-off things.
'AnyStr',
'cast',
- 'final',
- 'get_args',
- 'get_origin',
+ 'final',
+ 'get_args',
+ 'get_origin',
'get_type_hints',
'NewType',
'no_type_check',
'no_type_check_decorator',
'NoReturn',
'overload',
- 'runtime_checkable',
+ 'runtime_checkable',
'Text',
'TYPE_CHECKING',
]
@@ -125,16 +125,16 @@ __all__ = [
# legitimate imports of those modules.
-def _type_convert(arg, module=None):
- """For converting None to type(None), and strings to ForwardRef."""
- if arg is None:
- return type(None)
- if isinstance(arg, str):
- return ForwardRef(arg, module=module)
- return arg
-
-
-def _type_check(arg, msg, is_argument=True, module=None, *, is_class=False):
+def _type_convert(arg, module=None):
+ """For converting None to type(None), and strings to ForwardRef."""
+ if arg is None:
+ return type(None)
+ if isinstance(arg, str):
+ return ForwardRef(arg, module=module)
+ return arg
+
+
+def _type_check(arg, msg, is_argument=True, module=None, *, is_class=False):
"""Check that the argument is a type, and return it (internal helper).
As a special case, accept None and return type(None) instead. Also wrap strings
@@ -146,19 +146,19 @@ def _type_check(arg, msg, is_argument=True, module=None, *, is_class=False):
We append the repr() of the actual value (truncated to 100 chars).
"""
- invalid_generic_forms = (Generic, Protocol)
- if not is_class:
- invalid_generic_forms += (ClassVar,)
- if is_argument:
- invalid_generic_forms += (Final,)
+ invalid_generic_forms = (Generic, Protocol)
+ if not is_class:
+ invalid_generic_forms += (ClassVar,)
+ if is_argument:
+ invalid_generic_forms += (Final,)
- arg = _type_convert(arg, module=module)
+ arg = _type_convert(arg, module=module)
if (isinstance(arg, _GenericAlias) and
arg.__origin__ in invalid_generic_forms):
raise TypeError(f"{arg} is not valid as type argument")
- if arg in (Any, NoReturn, Final):
- return arg
- if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):
+ if arg in (Any, NoReturn, Final):
+ return arg
+ if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):
raise TypeError(f"Plain {arg} is not valid as type argument")
if isinstance(arg, (type, TypeVar, ForwardRef)):
return arg
@@ -175,8 +175,8 @@ def _type_repr(obj):
typically enough to uniquely identify a type. For everything
else, we fall back on repr(obj).
"""
- if isinstance(obj, types.GenericAlias):
- return repr(obj)
+ if isinstance(obj, types.GenericAlias):
+ return repr(obj)
if isinstance(obj, type):
if obj.__module__ == 'builtins':
return obj.__qualname__
@@ -198,16 +198,16 @@ def _collect_type_vars(types):
for t in types:
if isinstance(t, TypeVar) and t not in tvars:
tvars.append(t)
- if isinstance(t, (_GenericAlias, GenericAlias)):
+ if isinstance(t, (_GenericAlias, GenericAlias)):
tvars.extend([t for t in t.__parameters__ if t not in tvars])
return tuple(tvars)
-def _check_generic(cls, parameters, elen):
+def _check_generic(cls, parameters, elen):
"""Check correct count for parameters of a generic cls (internal helper).
This gives a nice error message in case of count mismatch.
"""
- if not elen:
+ if not elen:
raise TypeError(f"{cls} is not a generic class")
alen = len(parameters)
if alen != elen:
@@ -215,20 +215,20 @@ def _check_generic(cls, parameters, elen):
f" actual {alen}, expected {elen}")
-def _deduplicate(params):
- # Weed out strict duplicates, preserving the first of each occurrence.
- all_params = set(params)
- if len(all_params) < len(params):
- new_params = []
- for t in params:
- if t in all_params:
- new_params.append(t)
- all_params.remove(t)
- params = new_params
- assert not all_params, all_params
- return params
-
-
+def _deduplicate(params):
+ # Weed out strict duplicates, preserving the first of each occurrence.
+ all_params = set(params)
+ if len(all_params) < len(params):
+ new_params = []
+ for t in params:
+ if t in all_params:
+ new_params.append(t)
+ all_params.remove(t)
+ params = new_params
+ assert not all_params, all_params
+ return params
+
+
def _remove_dups_flatten(parameters):
"""An internal helper for Union creation and substitution: flatten Unions
among parameters, then remove duplicates.
@@ -236,68 +236,68 @@ def _remove_dups_flatten(parameters):
# Flatten out Union[Union[...], ...].
params = []
for p in parameters:
- if isinstance(p, _UnionGenericAlias):
+ if isinstance(p, _UnionGenericAlias):
params.extend(p.__args__)
elif isinstance(p, tuple) and len(p) > 0 and p[0] is Union:
params.extend(p[1:])
else:
params.append(p)
-
- return tuple(_deduplicate(params))
-
-
-def _flatten_literal_params(parameters):
- """An internal helper for Literal creation: flatten Literals among parameters"""
- params = []
- for p in parameters:
- if isinstance(p, _LiteralGenericAlias):
- params.extend(p.__args__)
- else:
- params.append(p)
+
+ return tuple(_deduplicate(params))
+
+
+def _flatten_literal_params(parameters):
+ """An internal helper for Literal creation: flatten Literals among parameters"""
+ params = []
+ for p in parameters:
+ if isinstance(p, _LiteralGenericAlias):
+ params.extend(p.__args__)
+ else:
+ params.append(p)
return tuple(params)
_cleanups = []
-def _tp_cache(func=None, /, *, typed=False):
+def _tp_cache(func=None, /, *, typed=False):
"""Internal wrapper caching __getitem__ of generic types with a fallback to
original function for non-hashable arguments.
"""
- def decorator(func):
- cached = functools.lru_cache(typed=typed)(func)
- _cleanups.append(cached.cache_clear)
-
- @functools.wraps(func)
- def inner(*args, **kwds):
- try:
- return cached(*args, **kwds)
- except TypeError:
- pass # All real errors (not unhashable args) are raised below.
- return func(*args, **kwds)
- return inner
-
- if func is not None:
- return decorator(func)
-
- return decorator
-
-def _eval_type(t, globalns, localns, recursive_guard=frozenset()):
- """Evaluate all forward references in the given type t.
+ def decorator(func):
+ cached = functools.lru_cache(typed=typed)(func)
+ _cleanups.append(cached.cache_clear)
+
+ @functools.wraps(func)
+ def inner(*args, **kwds):
+ try:
+ return cached(*args, **kwds)
+ except TypeError:
+ pass # All real errors (not unhashable args) are raised below.
+ return func(*args, **kwds)
+ return inner
+
+ if func is not None:
+ return decorator(func)
+
+ return decorator
+
+def _eval_type(t, globalns, localns, recursive_guard=frozenset()):
+ """Evaluate all forward references in the given type t.
For use of globalns and localns see the docstring for get_type_hints().
- recursive_guard is used to prevent prevent infinite recursion
- with recursive ForwardRef.
+ recursive_guard is used to prevent prevent infinite recursion
+ with recursive ForwardRef.
"""
if isinstance(t, ForwardRef):
- return t._evaluate(globalns, localns, recursive_guard)
- if isinstance(t, (_GenericAlias, GenericAlias)):
- ev_args = tuple(_eval_type(a, globalns, localns, recursive_guard) for a in t.__args__)
+ return t._evaluate(globalns, localns, recursive_guard)
+ if isinstance(t, (_GenericAlias, GenericAlias)):
+ ev_args = tuple(_eval_type(a, globalns, localns, recursive_guard) for a in t.__args__)
if ev_args == t.__args__:
return t
- if isinstance(t, GenericAlias):
- return GenericAlias(t.__origin__, ev_args)
- else:
- return t.copy_with(ev_args)
+ if isinstance(t, GenericAlias):
+ return GenericAlias(t.__origin__, ev_args)
+ else:
+ return t.copy_with(ev_args)
return t
@@ -306,13 +306,13 @@ class _Final:
__slots__ = ('__weakref__',)
- def __init_subclass__(self, /, *args, **kwds):
+ def __init_subclass__(self, /, *args, **kwds):
if '_root' not in kwds:
raise TypeError("Cannot subclass special typing classes")
class _Immutable:
"""Mixin to indicate that object should not be copied."""
- __slots__ = ()
+ __slots__ = ()
def __copy__(self):
return self
@@ -321,18 +321,18 @@ class _Immutable:
return self
-# Internal indicator of special typing constructs.
-# See __doc__ instance attribute for specific docs.
-class _SpecialForm(_Final, _root=True):
- __slots__ = ('_name', '__doc__', '_getitem')
+# Internal indicator of special typing constructs.
+# See __doc__ instance attribute for specific docs.
+class _SpecialForm(_Final, _root=True):
+ __slots__ = ('_name', '__doc__', '_getitem')
- def __init__(self, getitem):
- self._getitem = getitem
- self._name = getitem.__name__
- self.__doc__ = getitem.__doc__
+ def __init__(self, getitem):
+ self._getitem = getitem
+ self._name = getitem.__name__
+ self.__doc__ = getitem.__doc__
- def __mro_entries__(self, bases):
- raise TypeError(f"Cannot subclass {self!r}")
+ def __mro_entries__(self, bases):
+ raise TypeError(f"Cannot subclass {self!r}")
def __repr__(self):
return 'typing.' + self._name
@@ -351,18 +351,18 @@ class _SpecialForm(_Final, _root=True):
@_tp_cache
def __getitem__(self, parameters):
- return self._getitem(self, parameters)
-
-
-class _LiteralSpecialForm(_SpecialForm, _root=True):
- def __getitem__(self, parameters):
- if not isinstance(parameters, tuple):
- parameters = (parameters,)
- return self._getitem(self, *parameters)
-
-
-@_SpecialForm
-def Any(self, parameters):
+ return self._getitem(self, parameters)
+
+
+class _LiteralSpecialForm(_SpecialForm, _root=True):
+ def __getitem__(self, parameters):
+ if not isinstance(parameters, tuple):
+ parameters = (parameters,)
+ return self._getitem(self, *parameters)
+
+
+@_SpecialForm
+def Any(self, parameters):
"""Special type indicating an unconstrained type.
- Any is compatible with every type.
@@ -372,11 +372,11 @@ def Any(self, parameters):
Note that all the above statements are true from the point of view of
static type checkers. At runtime, Any should not be used with instance
or class checks.
- """
- raise TypeError(f"{self} is not subscriptable")
+ """
+ raise TypeError(f"{self} is not subscriptable")
-@_SpecialForm
-def NoReturn(self, parameters):
+@_SpecialForm
+def NoReturn(self, parameters):
"""Special type indicating functions that never return.
Example::
@@ -387,11 +387,11 @@ def NoReturn(self, parameters):
This type is invalid in other positions, e.g., ``List[NoReturn]``
will fail in static type checkers.
- """
- raise TypeError(f"{self} is not subscriptable")
+ """
+ raise TypeError(f"{self} is not subscriptable")
-@_SpecialForm
-def ClassVar(self, parameters):
+@_SpecialForm
+def ClassVar(self, parameters):
"""Special type construct to mark class variables.
An annotation wrapped in ClassVar indicates that a given
@@ -406,33 +406,33 @@ def ClassVar(self, parameters):
Note that ClassVar is not a class itself, and should not
be used with isinstance() or issubclass().
- """
- item = _type_check(parameters, f'{self} accepts only single type.')
- return _GenericAlias(self, (item,))
-
-@_SpecialForm
-def Final(self, parameters):
- """Special typing construct to indicate final names to type checkers.
-
- A final name cannot be re-assigned or overridden in a subclass.
- For example:
-
- MAX_SIZE: Final = 9000
- MAX_SIZE += 1 # Error reported by type checker
-
- class Connection:
- TIMEOUT: Final[int] = 10
-
- class FastConnector(Connection):
- TIMEOUT = 1 # Error reported by type checker
-
- There is no runtime checking of these properties.
- """
- item = _type_check(parameters, f'{self} accepts only single type.')
- return _GenericAlias(self, (item,))
-
-@_SpecialForm
-def Union(self, parameters):
+ """
+ item = _type_check(parameters, f'{self} accepts only single type.')
+ return _GenericAlias(self, (item,))
+
+@_SpecialForm
+def Final(self, parameters):
+ """Special typing construct to indicate final names to type checkers.
+
+ A final name cannot be re-assigned or overridden in a subclass.
+ For example:
+
+ MAX_SIZE: Final = 9000
+ MAX_SIZE += 1 # Error reported by type checker
+
+ class Connection:
+ TIMEOUT: Final[int] = 10
+
+ class FastConnector(Connection):
+ TIMEOUT = 1 # Error reported by type checker
+
+ There is no runtime checking of these properties.
+ """
+ item = _type_check(parameters, f'{self} accepts only single type.')
+ return _GenericAlias(self, (item,))
+
+@_SpecialForm
+def Union(self, parameters):
"""Union type; Union[X, Y] means either X or Y.
To define a union, use e.g. Union[int, str]. Details:
@@ -457,71 +457,71 @@ def Union(self, parameters):
- You cannot subclass or instantiate a union.
- You can use Optional[X] as a shorthand for Union[X, None].
- """
- if parameters == ():
- raise TypeError("Cannot take a Union of no types.")
- if not isinstance(parameters, tuple):
- parameters = (parameters,)
- msg = "Union[arg, ...]: each arg must be a type."
- parameters = tuple(_type_check(p, msg) for p in parameters)
- parameters = _remove_dups_flatten(parameters)
- if len(parameters) == 1:
- return parameters[0]
- return _UnionGenericAlias(self, parameters)
-
-@_SpecialForm
-def Optional(self, parameters):
+ """
+ if parameters == ():
+ raise TypeError("Cannot take a Union of no types.")
+ if not isinstance(parameters, tuple):
+ parameters = (parameters,)
+ msg = "Union[arg, ...]: each arg must be a type."
+ parameters = tuple(_type_check(p, msg) for p in parameters)
+ parameters = _remove_dups_flatten(parameters)
+ if len(parameters) == 1:
+ return parameters[0]
+ return _UnionGenericAlias(self, parameters)
+
+@_SpecialForm
+def Optional(self, parameters):
"""Optional type.
Optional[X] is equivalent to Union[X, None].
- """
- arg = _type_check(parameters, f"{self} requires a single type.")
- return Union[arg, type(None)]
-
-@_LiteralSpecialForm
-@_tp_cache(typed=True)
-def Literal(self, *parameters):
- """Special typing form to define literal types (a.k.a. value types).
-
- This form can be used to indicate to type checkers that the corresponding
- variable or function parameter has a value equivalent to the provided
- literal (or one of several literals):
-
- def validate_simple(data: Any) -> Literal[True]: # always returns True
- ...
-
- MODE = Literal['r', 'rb', 'w', 'wb']
- def open_helper(file: str, mode: MODE) -> str:
- ...
-
- open_helper('/some/path', 'r') # Passes type check
- open_helper('/other/path', 'typo') # Error in type checker
-
- Literal[...] cannot be subclassed. At runtime, an arbitrary value
- is allowed as type argument to Literal[...], but type checkers may
- impose restrictions.
- """
- # There is no '_type_check' call because arguments to Literal[...] are
- # values, not types.
- parameters = _flatten_literal_params(parameters)
-
- try:
- parameters = tuple(p for p, _ in _deduplicate(list(_value_and_type_iter(parameters))))
- except TypeError: # unhashable parameters
- pass
-
- return _LiteralGenericAlias(self, parameters)
-
-
+ """
+ arg = _type_check(parameters, f"{self} requires a single type.")
+ return Union[arg, type(None)]
+
+@_LiteralSpecialForm
+@_tp_cache(typed=True)
+def Literal(self, *parameters):
+ """Special typing form to define literal types (a.k.a. value types).
+
+ This form can be used to indicate to type checkers that the corresponding
+ variable or function parameter has a value equivalent to the provided
+ literal (or one of several literals):
+
+ def validate_simple(data: Any) -> Literal[True]: # always returns True
+ ...
+
+ MODE = Literal['r', 'rb', 'w', 'wb']
+ def open_helper(file: str, mode: MODE) -> str:
+ ...
+
+ open_helper('/some/path', 'r') # Passes type check
+ open_helper('/other/path', 'typo') # Error in type checker
+
+ Literal[...] cannot be subclassed. At runtime, an arbitrary value
+ is allowed as type argument to Literal[...], but type checkers may
+ impose restrictions.
+ """
+ # There is no '_type_check' call because arguments to Literal[...] are
+ # values, not types.
+ parameters = _flatten_literal_params(parameters)
+
+ try:
+ parameters = tuple(p for p, _ in _deduplicate(list(_value_and_type_iter(parameters))))
+ except TypeError: # unhashable parameters
+ pass
+
+ return _LiteralGenericAlias(self, parameters)
+
+
class ForwardRef(_Final, _root=True):
"""Internal wrapper to hold a forward reference."""
__slots__ = ('__forward_arg__', '__forward_code__',
'__forward_evaluated__', '__forward_value__',
- '__forward_is_argument__', '__forward_is_class__',
- '__forward_module__')
+ '__forward_is_argument__', '__forward_is_class__',
+ '__forward_module__')
- def __init__(self, arg, is_argument=True, module=None, *, is_class=False):
+ def __init__(self, arg, is_argument=True, module=None, *, is_class=False):
if not isinstance(arg, str):
raise TypeError(f"Forward reference must be a string -- got {arg!r}")
try:
@@ -533,12 +533,12 @@ class ForwardRef(_Final, _root=True):
self.__forward_evaluated__ = False
self.__forward_value__ = None
self.__forward_is_argument__ = is_argument
- self.__forward_is_class__ = is_class
- self.__forward_module__ = module
+ self.__forward_is_class__ = is_class
+ self.__forward_module__ = module
- def _evaluate(self, globalns, localns, recursive_guard):
- if self.__forward_arg__ in recursive_guard:
- return self
+ def _evaluate(self, globalns, localns, recursive_guard):
+ if self.__forward_arg__ in recursive_guard:
+ return self
if not self.__forward_evaluated__ or localns is not globalns:
if globalns is None and localns is None:
globalns = localns = {}
@@ -546,32 +546,32 @@ class ForwardRef(_Final, _root=True):
globalns = localns
elif localns is None:
localns = globalns
- if self.__forward_module__ is not None:
- globalns = getattr(
- sys.modules.get(self.__forward_module__, None), '__dict__', globalns
- )
- type_ = _type_check(
+ if self.__forward_module__ is not None:
+ globalns = getattr(
+ sys.modules.get(self.__forward_module__, None), '__dict__', globalns
+ )
+ type_ = _type_check(
eval(self.__forward_code__, globalns, localns),
"Forward references must evaluate to types.",
- is_argument=self.__forward_is_argument__,
- is_class=self.__forward_is_class__,
- )
- self.__forward_value__ = _eval_type(
- type_, globalns, localns, recursive_guard | {self.__forward_arg__}
- )
+ is_argument=self.__forward_is_argument__,
+ is_class=self.__forward_is_class__,
+ )
+ self.__forward_value__ = _eval_type(
+ type_, globalns, localns, recursive_guard | {self.__forward_arg__}
+ )
self.__forward_evaluated__ = True
return self.__forward_value__
def __eq__(self, other):
if not isinstance(other, ForwardRef):
return NotImplemented
- if self.__forward_evaluated__ and other.__forward_evaluated__:
- return (self.__forward_arg__ == other.__forward_arg__ and
- self.__forward_value__ == other.__forward_value__)
- return self.__forward_arg__ == other.__forward_arg__
+ if self.__forward_evaluated__ and other.__forward_evaluated__:
+ return (self.__forward_arg__ == other.__forward_arg__ and
+ self.__forward_value__ == other.__forward_value__)
+ return self.__forward_arg__ == other.__forward_arg__
def __hash__(self):
- return hash(self.__forward_arg__)
+ return hash(self.__forward_arg__)
def __repr__(self):
return f'ForwardRef({self.__forward_arg__!r})'
@@ -622,7 +622,7 @@ class TypeVar(_Final, _Immutable, _root=True):
"""
__slots__ = ('__name__', '__bound__', '__constraints__',
- '__covariant__', '__contravariant__', '__dict__')
+ '__covariant__', '__contravariant__', '__dict__')
def __init__(self, name, *constraints, bound=None,
covariant=False, contravariant=False):
@@ -641,10 +641,10 @@ class TypeVar(_Final, _Immutable, _root=True):
self.__bound__ = _type_check(bound, "Bound must be a type.")
else:
self.__bound__ = None
- try:
- def_mod = sys._getframe(1).f_globals.get('__name__', '__main__') # for pickling
- except (AttributeError, ValueError):
- def_mod = None
+ try:
+ def_mod = sys._getframe(1).f_globals.get('__name__', '__main__') # for pickling
+ except (AttributeError, ValueError):
+ def_mod = None
if def_mod != 'typing':
self.__module__ = def_mod
@@ -664,7 +664,7 @@ class TypeVar(_Final, _Immutable, _root=True):
def _is_dunder(attr):
return attr.startswith('__') and attr.endswith('__')
-class _BaseGenericAlias(_Final, _root=True):
+class _BaseGenericAlias(_Final, _root=True):
"""The central part of internal API.
This represents a generic version of type 'origin' with type arguments 'params'.
@@ -673,70 +673,70 @@ class _BaseGenericAlias(_Final, _root=True):
have 'name' always set. If 'inst' is False, then the alias can't be instantiated,
this is used by e.g. typing.List and typing.Dict.
"""
- def __init__(self, origin, *, inst=True, name=None):
+ def __init__(self, origin, *, inst=True, name=None):
self._inst = inst
self._name = name
- self.__origin__ = origin
- self.__slots__ = None # This is not documented.
-
- def __call__(self, *args, **kwargs):
- if not self._inst:
- raise TypeError(f"Type {self._name} cannot be instantiated; "
- f"use {self.__origin__.__name__}() instead")
- result = self.__origin__(*args, **kwargs)
- try:
- result.__orig_class__ = self
- except AttributeError:
- pass
- return result
-
- def __mro_entries__(self, bases):
- res = []
- if self.__origin__ not in bases:
- res.append(self.__origin__)
- i = bases.index(self)
- for b in bases[i+1:]:
- if isinstance(b, _BaseGenericAlias) or issubclass(b, Generic):
- break
- else:
- res.append(Generic)
- return tuple(res)
-
- def __getattr__(self, attr):
- # We are careful for copy and pickle.
- # Also for simplicity we just don't relay all dunder names
- if '__origin__' in self.__dict__ and not _is_dunder(attr):
- return getattr(self.__origin__, attr)
- raise AttributeError(attr)
-
- def __setattr__(self, attr, val):
- if _is_dunder(attr) or attr in ('_name', '_inst', '_nparams'):
- super().__setattr__(attr, val)
- else:
- setattr(self.__origin__, attr, val)
-
- def __instancecheck__(self, obj):
- return self.__subclasscheck__(type(obj))
-
- def __subclasscheck__(self, cls):
- raise TypeError("Subscripted generics cannot be used with"
- " class and instance checks")
-
-
-# Special typing constructs Union, Optional, Generic, Callable and Tuple
-# use three special attributes for internal bookkeeping of generic types:
-# * __parameters__ is a tuple of unique free type parameters of a generic
-# type, for example, Dict[T, T].__parameters__ == (T,);
-# * __origin__ keeps a reference to a type that was subscripted,
-# e.g., Union[T, int].__origin__ == Union, or the non-generic version of
-# the type.
-# * __args__ is a tuple of all arguments used in subscripting,
-# e.g., Dict[T, int].__args__ == (T, int).
-
-
-class _GenericAlias(_BaseGenericAlias, _root=True):
- def __init__(self, origin, params, *, inst=True, name=None):
- super().__init__(origin, inst=inst, name=name)
+ self.__origin__ = origin
+ self.__slots__ = None # This is not documented.
+
+ def __call__(self, *args, **kwargs):
+ if not self._inst:
+ raise TypeError(f"Type {self._name} cannot be instantiated; "
+ f"use {self.__origin__.__name__}() instead")
+ result = self.__origin__(*args, **kwargs)
+ try:
+ result.__orig_class__ = self
+ except AttributeError:
+ pass
+ return result
+
+ def __mro_entries__(self, bases):
+ res = []
+ if self.__origin__ not in bases:
+ res.append(self.__origin__)
+ i = bases.index(self)
+ for b in bases[i+1:]:
+ if isinstance(b, _BaseGenericAlias) or issubclass(b, Generic):
+ break
+ else:
+ res.append(Generic)
+ return tuple(res)
+
+ def __getattr__(self, attr):
+ # We are careful for copy and pickle.
+ # Also for simplicity we just don't relay all dunder names
+ if '__origin__' in self.__dict__ and not _is_dunder(attr):
+ return getattr(self.__origin__, attr)
+ raise AttributeError(attr)
+
+ def __setattr__(self, attr, val):
+ if _is_dunder(attr) or attr in ('_name', '_inst', '_nparams'):
+ super().__setattr__(attr, val)
+ else:
+ setattr(self.__origin__, attr, val)
+
+ def __instancecheck__(self, obj):
+ return self.__subclasscheck__(type(obj))
+
+ def __subclasscheck__(self, cls):
+ raise TypeError("Subscripted generics cannot be used with"
+ " class and instance checks")
+
+
+# Special typing constructs Union, Optional, Generic, Callable and Tuple
+# use three special attributes for internal bookkeeping of generic types:
+# * __parameters__ is a tuple of unique free type parameters of a generic
+# type, for example, Dict[T, T].__parameters__ == (T,);
+# * __origin__ keeps a reference to a type that was subscripted,
+# e.g., Union[T, int].__origin__ == Union, or the non-generic version of
+# the type.
+# * __args__ is a tuple of all arguments used in subscripting,
+# e.g., Dict[T, int].__args__ == (T, int).
+
+
+class _GenericAlias(_BaseGenericAlias, _root=True):
+ def __init__(self, origin, params, *, inst=True, name=None):
+ super().__init__(origin, inst=inst, name=name)
if not isinstance(params, tuple):
params = (params,)
self.__args__ = tuple(... if a is _TypingEllipsis else
@@ -746,218 +746,218 @@ class _GenericAlias(_BaseGenericAlias, _root=True):
if not name:
self.__module__ = origin.__module__
- def __eq__(self, other):
- if not isinstance(other, _GenericAlias):
- return NotImplemented
- return (self.__origin__ == other.__origin__
- and self.__args__ == other.__args__)
-
- def __hash__(self):
- return hash((self.__origin__, self.__args__))
-
+ def __eq__(self, other):
+ if not isinstance(other, _GenericAlias):
+ return NotImplemented
+ return (self.__origin__ == other.__origin__
+ and self.__args__ == other.__args__)
+
+ def __hash__(self):
+ return hash((self.__origin__, self.__args__))
+
@_tp_cache
def __getitem__(self, params):
- if self.__origin__ in (Generic, Protocol):
- # Can't subscript Generic[...] or Protocol[...].
+ if self.__origin__ in (Generic, Protocol):
+ # Can't subscript Generic[...] or Protocol[...].
raise TypeError(f"Cannot subscript already-subscripted {self}")
if not isinstance(params, tuple):
params = (params,)
msg = "Parameters to generic types must be types."
params = tuple(_type_check(p, msg) for p in params)
- _check_generic(self, params, len(self.__parameters__))
-
- subst = dict(zip(self.__parameters__, params))
- new_args = []
- for arg in self.__args__:
- if isinstance(arg, TypeVar):
- arg = subst[arg]
- elif isinstance(arg, (_GenericAlias, GenericAlias)):
- subparams = arg.__parameters__
- if subparams:
- subargs = tuple(subst[x] for x in subparams)
- arg = arg[subargs]
- new_args.append(arg)
- return self.copy_with(tuple(new_args))
-
+ _check_generic(self, params, len(self.__parameters__))
+
+ subst = dict(zip(self.__parameters__, params))
+ new_args = []
+ for arg in self.__args__:
+ if isinstance(arg, TypeVar):
+ arg = subst[arg]
+ elif isinstance(arg, (_GenericAlias, GenericAlias)):
+ subparams = arg.__parameters__
+ if subparams:
+ subargs = tuple(subst[x] for x in subparams)
+ arg = arg[subargs]
+ new_args.append(arg)
+ return self.copy_with(tuple(new_args))
+
def copy_with(self, params):
- return self.__class__(self.__origin__, params, name=self._name, inst=self._inst)
+ return self.__class__(self.__origin__, params, name=self._name, inst=self._inst)
def __repr__(self):
- if self._name:
- name = 'typing.' + self._name
- else:
- name = _type_repr(self.__origin__)
- args = ", ".join([_type_repr(a) for a in self.__args__])
- return f'{name}[{args}]'
-
- def __reduce__(self):
- if self._name:
- origin = globals()[self._name]
- else:
- origin = self.__origin__
- args = tuple(self.__args__)
- if len(args) == 1 and not isinstance(args[0], tuple):
- args, = args
- return operator.getitem, (origin, args)
+ if self._name:
+ name = 'typing.' + self._name
+ else:
+ name = _type_repr(self.__origin__)
+ args = ", ".join([_type_repr(a) for a in self.__args__])
+ return f'{name}[{args}]'
+
+ def __reduce__(self):
+ if self._name:
+ origin = globals()[self._name]
+ else:
+ origin = self.__origin__
+ args = tuple(self.__args__)
+ if len(args) == 1 and not isinstance(args[0], tuple):
+ args, = args
+ return operator.getitem, (origin, args)
def __mro_entries__(self, bases):
if self._name: # generic version of an ABC or built-in class
- return super().__mro_entries__(bases)
+ return super().__mro_entries__(bases)
if self.__origin__ is Generic:
- if Protocol in bases:
- return ()
+ if Protocol in bases:
+ return ()
i = bases.index(self)
for b in bases[i+1:]:
- if isinstance(b, _BaseGenericAlias) and b is not self:
+ if isinstance(b, _BaseGenericAlias) and b is not self:
return ()
return (self.__origin__,)
-# _nparams is the number of accepted parameters, e.g. 0 for Hashable,
-# 1 for List and 2 for Dict. It may be -1 if variable number of
-# parameters are accepted (needs custom __getitem__).
-
-class _SpecialGenericAlias(_BaseGenericAlias, _root=True):
- def __init__(self, origin, nparams, *, inst=True, name=None):
- if name is None:
- name = origin.__name__
- super().__init__(origin, inst=inst, name=name)
- self._nparams = nparams
- if origin.__module__ == 'builtins':
- self.__doc__ = f'A generic version of {origin.__qualname__}.'
+# _nparams is the number of accepted parameters, e.g. 0 for Hashable,
+# 1 for List and 2 for Dict. It may be -1 if variable number of
+# parameters are accepted (needs custom __getitem__).
+
+class _SpecialGenericAlias(_BaseGenericAlias, _root=True):
+ def __init__(self, origin, nparams, *, inst=True, name=None):
+ if name is None:
+ name = origin.__name__
+ super().__init__(origin, inst=inst, name=name)
+ self._nparams = nparams
+ if origin.__module__ == 'builtins':
+ self.__doc__ = f'A generic version of {origin.__qualname__}.'
else:
- self.__doc__ = f'A generic version of {origin.__module__}.{origin.__qualname__}.'
-
- @_tp_cache
- def __getitem__(self, params):
- if not isinstance(params, tuple):
- params = (params,)
- msg = "Parameters to generic types must be types."
- params = tuple(_type_check(p, msg) for p in params)
- _check_generic(self, params, self._nparams)
- return self.copy_with(params)
-
- def copy_with(self, params):
- return _GenericAlias(self.__origin__, params,
- name=self._name, inst=self._inst)
-
- def __repr__(self):
- return 'typing.' + self._name
-
+ self.__doc__ = f'A generic version of {origin.__module__}.{origin.__qualname__}.'
+
+ @_tp_cache
+ def __getitem__(self, params):
+ if not isinstance(params, tuple):
+ params = (params,)
+ msg = "Parameters to generic types must be types."
+ params = tuple(_type_check(p, msg) for p in params)
+ _check_generic(self, params, self._nparams)
+ return self.copy_with(params)
+
+ def copy_with(self, params):
+ return _GenericAlias(self.__origin__, params,
+ name=self._name, inst=self._inst)
+
+ def __repr__(self):
+ return 'typing.' + self._name
+
def __subclasscheck__(self, cls):
- if isinstance(cls, _SpecialGenericAlias):
- return issubclass(cls.__origin__, self.__origin__)
- if not isinstance(cls, _GenericAlias):
- return issubclass(cls, self.__origin__)
- return super().__subclasscheck__(cls)
+ if isinstance(cls, _SpecialGenericAlias):
+ return issubclass(cls.__origin__, self.__origin__)
+ if not isinstance(cls, _GenericAlias):
+ return issubclass(cls, self.__origin__)
+ return super().__subclasscheck__(cls)
def __reduce__(self):
- return self._name
-
-
-class _CallableGenericAlias(_GenericAlias, _root=True):
- def __repr__(self):
- assert self._name == 'Callable'
- if len(self.__args__) == 2 and self.__args__[0] is Ellipsis:
- return super().__repr__()
- return (f'typing.Callable'
- f'[[{", ".join([_type_repr(a) for a in self.__args__[:-1]])}], '
- f'{_type_repr(self.__args__[-1])}]')
-
- def __reduce__(self):
- args = self.__args__
- if not (len(args) == 2 and args[0] is ...):
- args = list(args[:-1]), args[-1]
- return operator.getitem, (Callable, args)
-
-
-class _CallableType(_SpecialGenericAlias, _root=True):
- def copy_with(self, params):
- return _CallableGenericAlias(self.__origin__, params,
- name=self._name, inst=self._inst)
-
+ return self._name
+
+
+class _CallableGenericAlias(_GenericAlias, _root=True):
+ def __repr__(self):
+ assert self._name == 'Callable'
+ if len(self.__args__) == 2 and self.__args__[0] is Ellipsis:
+ return super().__repr__()
+ return (f'typing.Callable'
+ f'[[{", ".join([_type_repr(a) for a in self.__args__[:-1]])}], '
+ f'{_type_repr(self.__args__[-1])}]')
+
+ def __reduce__(self):
+ args = self.__args__
+ if not (len(args) == 2 and args[0] is ...):
+ args = list(args[:-1]), args[-1]
+ return operator.getitem, (Callable, args)
+
+
+class _CallableType(_SpecialGenericAlias, _root=True):
+ def copy_with(self, params):
+ return _CallableGenericAlias(self.__origin__, params,
+ name=self._name, inst=self._inst)
+
def __getitem__(self, params):
if not isinstance(params, tuple) or len(params) != 2:
raise TypeError("Callable must be used as "
"Callable[[arg, ...], result].")
args, result = params
- # This relaxes what args can be on purpose to allow things like
- # PEP 612 ParamSpec. Responsibility for whether a user is using
- # Callable[...] properly is deferred to static type checkers.
- if isinstance(args, list):
- params = (tuple(args), result)
+ # This relaxes what args can be on purpose to allow things like
+ # PEP 612 ParamSpec. Responsibility for whether a user is using
+ # Callable[...] properly is deferred to static type checkers.
+ if isinstance(args, list):
+ params = (tuple(args), result)
else:
- params = (args, result)
+ params = (args, result)
return self.__getitem_inner__(params)
@_tp_cache
def __getitem_inner__(self, params):
- args, result = params
- msg = "Callable[args, result]: result must be a type."
- result = _type_check(result, msg)
- if args is Ellipsis:
- return self.copy_with((_TypingEllipsis, result))
- if not isinstance(args, tuple):
- args = (args,)
- args = tuple(_type_convert(arg) for arg in args)
- params = args + (result,)
- return self.copy_with(params)
-
-
-class _TupleType(_SpecialGenericAlias, _root=True):
- @_tp_cache
- def __getitem__(self, params):
- if params == ():
- return self.copy_with((_TypingEmpty,))
- if not isinstance(params, tuple):
- params = (params,)
- if len(params) == 2 and params[1] is ...:
- msg = "Tuple[t, ...]: t must be a type."
- p = _type_check(params[0], msg)
- return self.copy_with((p, _TypingEllipsis))
- msg = "Tuple[t0, t1, ...]: each t must be a type."
- params = tuple(_type_check(p, msg) for p in params)
- return self.copy_with(params)
-
-
-class _UnionGenericAlias(_GenericAlias, _root=True):
- def copy_with(self, params):
- return Union[params]
-
- def __eq__(self, other):
- if not isinstance(other, _UnionGenericAlias):
- return NotImplemented
- return set(self.__args__) == set(other.__args__)
-
- def __hash__(self):
- return hash(frozenset(self.__args__))
-
- def __repr__(self):
- args = self.__args__
- if len(args) == 2:
- if args[0] is type(None):
- return f'typing.Optional[{_type_repr(args[1])}]'
- elif args[1] is type(None):
- return f'typing.Optional[{_type_repr(args[0])}]'
- return super().__repr__()
-
-
-def _value_and_type_iter(parameters):
- return ((p, type(p)) for p in parameters)
-
-
-class _LiteralGenericAlias(_GenericAlias, _root=True):
-
- def __eq__(self, other):
- if not isinstance(other, _LiteralGenericAlias):
- return NotImplemented
-
- return set(_value_and_type_iter(self.__args__)) == set(_value_and_type_iter(other.__args__))
-
- def __hash__(self):
- return hash(frozenset(_value_and_type_iter(self.__args__)))
-
-
+ args, result = params
+ msg = "Callable[args, result]: result must be a type."
+ result = _type_check(result, msg)
+ if args is Ellipsis:
+ return self.copy_with((_TypingEllipsis, result))
+ if not isinstance(args, tuple):
+ args = (args,)
+ args = tuple(_type_convert(arg) for arg in args)
+ params = args + (result,)
+ return self.copy_with(params)
+
+
+class _TupleType(_SpecialGenericAlias, _root=True):
+ @_tp_cache
+ def __getitem__(self, params):
+ if params == ():
+ return self.copy_with((_TypingEmpty,))
+ if not isinstance(params, tuple):
+ params = (params,)
+ if len(params) == 2 and params[1] is ...:
+ msg = "Tuple[t, ...]: t must be a type."
+ p = _type_check(params[0], msg)
+ return self.copy_with((p, _TypingEllipsis))
+ msg = "Tuple[t0, t1, ...]: each t must be a type."
+ params = tuple(_type_check(p, msg) for p in params)
+ return self.copy_with(params)
+
+
+class _UnionGenericAlias(_GenericAlias, _root=True):
+ def copy_with(self, params):
+ return Union[params]
+
+ def __eq__(self, other):
+ if not isinstance(other, _UnionGenericAlias):
+ return NotImplemented
+ return set(self.__args__) == set(other.__args__)
+
+ def __hash__(self):
+ return hash(frozenset(self.__args__))
+
+ def __repr__(self):
+ args = self.__args__
+ if len(args) == 2:
+ if args[0] is type(None):
+ return f'typing.Optional[{_type_repr(args[1])}]'
+ elif args[1] is type(None):
+ return f'typing.Optional[{_type_repr(args[0])}]'
+ return super().__repr__()
+
+
+def _value_and_type_iter(parameters):
+ return ((p, type(p)) for p in parameters)
+
+
+class _LiteralGenericAlias(_GenericAlias, _root=True):
+
+ def __eq__(self, other):
+ if not isinstance(other, _LiteralGenericAlias):
+ return NotImplemented
+
+ return set(_value_and_type_iter(self.__args__)) == set(_value_and_type_iter(other.__args__))
+
+ def __hash__(self):
+ return hash(frozenset(_value_and_type_iter(self.__args__)))
+
+
class Generic:
"""Abstract base class for generic types.
@@ -979,7 +979,7 @@ class Generic:
return default
"""
__slots__ = ()
- _is_protocol = False
+ _is_protocol = False
@_tp_cache
def __class_getitem__(cls, params):
@@ -990,17 +990,17 @@ class Generic:
f"Parameter list to {cls.__qualname__}[...] cannot be empty")
msg = "Parameters to generic types must be types."
params = tuple(_type_check(p, msg) for p in params)
- if cls in (Generic, Protocol):
- # Generic and Protocol can only be subscripted with unique type variables.
+ if cls in (Generic, Protocol):
+ # Generic and Protocol can only be subscripted with unique type variables.
if not all(isinstance(p, TypeVar) for p in params):
raise TypeError(
- f"Parameters to {cls.__name__}[...] must all be type variables")
+ f"Parameters to {cls.__name__}[...] must all be type variables")
if len(set(params)) != len(params):
raise TypeError(
- f"Parameters to {cls.__name__}[...] must all be unique")
+ f"Parameters to {cls.__name__}[...] must all be unique")
else:
# Subscripting a regular Generic subclass.
- _check_generic(cls, params, len(cls.__parameters__))
+ _check_generic(cls, params, len(cls.__parameters__))
return _GenericAlias(cls, params)
def __init_subclass__(cls, *args, **kwargs):
@@ -1009,7 +1009,7 @@ class Generic:
if '__orig_bases__' in cls.__dict__:
error = Generic in cls.__orig_bases__
else:
- error = Generic in cls.__bases__ and cls.__name__ != 'Protocol'
+ error = Generic in cls.__bases__ and cls.__name__ != 'Protocol'
if error:
raise TypeError("Cannot inherit from plain Generic")
if '__orig_bases__' in cls.__dict__:
@@ -1027,7 +1027,7 @@ class Generic:
raise TypeError(
"Cannot inherit from Generic[...] multiple types.")
gvars = base.__parameters__
- if gvars is not None:
+ if gvars is not None:
tvarset = set(tvars)
gvarset = set(gvars)
if not tvarset <= gvarset:
@@ -1050,327 +1050,327 @@ class _TypingEllipsis:
"""Internal placeholder for ... (ellipsis)."""
-_TYPING_INTERNALS = ['__parameters__', '__orig_bases__', '__orig_class__',
- '_is_protocol', '_is_runtime_protocol']
-
-_SPECIAL_NAMES = ['__abstractmethods__', '__annotations__', '__dict__', '__doc__',
- '__init__', '__module__', '__new__', '__slots__',
- '__subclasshook__', '__weakref__', '__class_getitem__']
-
-# These special attributes will be not collected as protocol members.
-EXCLUDED_ATTRIBUTES = _TYPING_INTERNALS + _SPECIAL_NAMES + ['_MutableMapping__marker']
-
-
-def _get_protocol_attrs(cls):
- """Collect protocol members from a protocol class objects.
-
- This includes names actually defined in the class dictionary, as well
- as names that appear in annotations. Special names (above) are skipped.
- """
- attrs = set()
- for base in cls.__mro__[:-1]: # without object
- if base.__name__ in ('Protocol', 'Generic'):
- continue
- annotations = getattr(base, '__annotations__', {})
- for attr in list(base.__dict__.keys()) + list(annotations.keys()):
- if not attr.startswith('_abc_') and attr not in EXCLUDED_ATTRIBUTES:
- attrs.add(attr)
- return attrs
-
-
-def _is_callable_members_only(cls):
- # PEP 544 prohibits using issubclass() with protocols that have non-method members.
- return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls))
-
-
-def _no_init_or_replace_init(self, *args, **kwargs):
- cls = type(self)
-
- if cls._is_protocol:
- raise TypeError('Protocols cannot be instantiated')
-
- # Already using a custom `__init__`. No need to calculate correct
- # `__init__` to call. This can lead to RecursionError. See bpo-45121.
- if cls.__init__ is not _no_init_or_replace_init:
- return
-
- # Initially, `__init__` of a protocol subclass is set to `_no_init_or_replace_init`.
- # The first instantiation of the subclass will call `_no_init_or_replace_init` which
- # searches for a proper new `__init__` in the MRO. The new `__init__`
- # replaces the subclass' old `__init__` (ie `_no_init_or_replace_init`). Subsequent
- # instantiation of the protocol subclass will thus use the new
- # `__init__` and no longer call `_no_init_or_replace_init`.
- for base in cls.__mro__:
- init = base.__dict__.get('__init__', _no_init_or_replace_init)
- if init is not _no_init_or_replace_init:
- cls.__init__ = init
- break
- else:
- # should not happen
- cls.__init__ = object.__init__
-
- cls.__init__(self, *args, **kwargs)
-
-
-
-def _allow_reckless_class_cheks():
- """Allow instance and class checks for special stdlib modules.
-
- The abc and functools modules indiscriminately call isinstance() and
- issubclass() on the whole MRO of a user class, which may contain protocols.
- """
- try:
- return sys._getframe(3).f_globals['__name__'] in ['abc', 'functools']
- except (AttributeError, ValueError): # For platforms without _getframe().
- return True
-
-
-_PROTO_WHITELIST = {
- 'collections.abc': [
- 'Callable', 'Awaitable', 'Iterable', 'Iterator', 'AsyncIterable',
- 'Hashable', 'Sized', 'Container', 'Collection', 'Reversible',
- ],
- 'contextlib': ['AbstractContextManager', 'AbstractAsyncContextManager'],
-}
-
-
-class _ProtocolMeta(ABCMeta):
- # This metaclass is really unfortunate and exists only because of
- # the lack of __instancehook__.
- def __instancecheck__(cls, instance):
- # We need this method for situations where attributes are
- # assigned in __init__.
- if ((not getattr(cls, '_is_protocol', False) or
- _is_callable_members_only(cls)) and
- issubclass(instance.__class__, cls)):
- return True
- if cls._is_protocol:
- if all(hasattr(instance, attr) and
- # All *methods* can be blocked by setting them to None.
- (not callable(getattr(cls, attr, None)) or
- getattr(instance, attr) is not None)
- for attr in _get_protocol_attrs(cls)):
- return True
- return super().__instancecheck__(instance)
-
-
-class Protocol(Generic, metaclass=_ProtocolMeta):
- """Base class for protocol classes.
-
- Protocol classes are defined as::
-
- class Proto(Protocol):
- def meth(self) -> int:
- ...
-
- Such classes are primarily used with static type checkers that recognize
- structural subtyping (static duck-typing), for example::
-
- class C:
- def meth(self) -> int:
- return 0
-
- def func(x: Proto) -> int:
- return x.meth()
-
- func(C()) # Passes static type check
-
- See PEP 544 for details. Protocol classes decorated with
- @typing.runtime_checkable act as simple-minded runtime protocols that check
- only the presence of given attributes, ignoring their type signatures.
- Protocol classes can be generic, they are defined as::
-
- class GenProto(Protocol[T]):
- def meth(self) -> T:
- ...
- """
- __slots__ = ()
- _is_protocol = True
- _is_runtime_protocol = False
-
- def __init_subclass__(cls, *args, **kwargs):
- super().__init_subclass__(*args, **kwargs)
-
- # Determine if this is a protocol or a concrete subclass.
- if not cls.__dict__.get('_is_protocol', False):
- cls._is_protocol = any(b is Protocol for b in cls.__bases__)
-
- # Set (or override) the protocol subclass hook.
- def _proto_hook(other):
- if not cls.__dict__.get('_is_protocol', False):
- return NotImplemented
-
- # First, perform various sanity checks.
- if not getattr(cls, '_is_runtime_protocol', False):
- if _allow_reckless_class_cheks():
- return NotImplemented
- raise TypeError("Instance and class checks can only be used with"
- " @runtime_checkable protocols")
- if not _is_callable_members_only(cls):
- if _allow_reckless_class_cheks():
- return NotImplemented
- raise TypeError("Protocols with non-method members"
- " don't support issubclass()")
- if not isinstance(other, type):
- # Same error message as for issubclass(1, int).
- raise TypeError('issubclass() arg 1 must be a class')
-
- # Second, perform the actual structural compatibility check.
- for attr in _get_protocol_attrs(cls):
- for base in other.__mro__:
- # Check if the members appears in the class dictionary...
- if attr in base.__dict__:
- if base.__dict__[attr] is None:
- return NotImplemented
- break
-
- # ...or in annotations, if it is a sub-protocol.
- annotations = getattr(base, '__annotations__', {})
- if (isinstance(annotations, collections.abc.Mapping) and
- attr in annotations and
- issubclass(other, Generic) and other._is_protocol):
- break
- else:
- return NotImplemented
- return True
-
- if '__subclasshook__' not in cls.__dict__:
- cls.__subclasshook__ = _proto_hook
-
- # We have nothing more to do for non-protocols...
- if not cls._is_protocol:
- return
-
- # ... otherwise check consistency of bases, and prohibit instantiation.
- for base in cls.__bases__:
- if not (base in (object, Generic) or
- base.__module__ in _PROTO_WHITELIST and
- base.__name__ in _PROTO_WHITELIST[base.__module__] or
- issubclass(base, Generic) and base._is_protocol):
- raise TypeError('Protocols can only inherit from other'
- ' protocols, got %r' % base)
- cls.__init__ = _no_init_or_replace_init
-
-
-class _AnnotatedAlias(_GenericAlias, _root=True):
- """Runtime representation of an annotated type.
-
- At its core 'Annotated[t, dec1, dec2, ...]' is an alias for the type 't'
- with extra annotations. The alias behaves like a normal typing alias,
- instantiating is the same as instantiating the underlying type, binding
- it to types is also the same.
- """
- def __init__(self, origin, metadata):
- if isinstance(origin, _AnnotatedAlias):
- metadata = origin.__metadata__ + metadata
- origin = origin.__origin__
- super().__init__(origin, origin)
- self.__metadata__ = metadata
-
- def copy_with(self, params):
- assert len(params) == 1
- new_type = params[0]
- return _AnnotatedAlias(new_type, self.__metadata__)
-
- def __repr__(self):
- return "typing.Annotated[{}, {}]".format(
- _type_repr(self.__origin__),
- ", ".join(repr(a) for a in self.__metadata__)
- )
-
- def __reduce__(self):
- return operator.getitem, (
- Annotated, (self.__origin__,) + self.__metadata__
- )
-
- def __eq__(self, other):
- if not isinstance(other, _AnnotatedAlias):
- return NotImplemented
- return (self.__origin__ == other.__origin__
- and self.__metadata__ == other.__metadata__)
-
- def __hash__(self):
- return hash((self.__origin__, self.__metadata__))
-
-
-class Annotated:
- """Add context specific metadata to a type.
-
- Example: Annotated[int, runtime_check.Unsigned] indicates to the
- hypothetical runtime_check module that this type is an unsigned int.
- Every other consumer of this type can ignore this metadata and treat
- this type as int.
-
- The first argument to Annotated must be a valid type.
-
- Details:
-
- - It's an error to call `Annotated` with less than two arguments.
- - Nested Annotated are flattened::
-
- Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3]
-
- - Instantiating an annotated type is equivalent to instantiating the
- underlying type::
-
- Annotated[C, Ann1](5) == C(5)
-
- - Annotated can be used as a generic type alias::
-
- Optimized = Annotated[T, runtime.Optimize()]
- Optimized[int] == Annotated[int, runtime.Optimize()]
-
- OptimizedList = Annotated[List[T], runtime.Optimize()]
- OptimizedList[int] == Annotated[List[int], runtime.Optimize()]
- """
-
- __slots__ = ()
-
- def __new__(cls, *args, **kwargs):
- raise TypeError("Type Annotated cannot be instantiated.")
-
- @_tp_cache
- def __class_getitem__(cls, params):
- if not isinstance(params, tuple) or len(params) < 2:
- raise TypeError("Annotated[...] should be used "
- "with at least two arguments (a type and an "
- "annotation).")
- msg = "Annotated[t, ...]: t must be a type."
- origin = _type_check(params[0], msg)
- metadata = tuple(params[1:])
- return _AnnotatedAlias(origin, metadata)
-
- def __init_subclass__(cls, *args, **kwargs):
- raise TypeError(
- "Cannot subclass {}.Annotated".format(cls.__module__)
- )
-
-
-def runtime_checkable(cls):
- """Mark a protocol class as a runtime protocol.
-
- Such protocol can be used with isinstance() and issubclass().
- Raise TypeError if applied to a non-protocol class.
- This allows a simple-minded structural check very similar to
- one trick ponies in collections.abc such as Iterable.
- For example::
-
- @runtime_checkable
- class Closable(Protocol):
- def close(self): ...
-
- assert isinstance(open('/some/file'), Closable)
-
- Warning: this will check only the presence of the required methods,
- not their type signatures!
- """
- if not issubclass(cls, Generic) or not cls._is_protocol:
- raise TypeError('@runtime_checkable can be only applied to protocol classes,'
- ' got %r' % cls)
- cls._is_runtime_protocol = True
- return cls
-
-
+_TYPING_INTERNALS = ['__parameters__', '__orig_bases__', '__orig_class__',
+ '_is_protocol', '_is_runtime_protocol']
+
+_SPECIAL_NAMES = ['__abstractmethods__', '__annotations__', '__dict__', '__doc__',
+ '__init__', '__module__', '__new__', '__slots__',
+ '__subclasshook__', '__weakref__', '__class_getitem__']
+
+# These special attributes will be not collected as protocol members.
+EXCLUDED_ATTRIBUTES = _TYPING_INTERNALS + _SPECIAL_NAMES + ['_MutableMapping__marker']
+
+
+def _get_protocol_attrs(cls):
+ """Collect protocol members from a protocol class objects.
+
+ This includes names actually defined in the class dictionary, as well
+ as names that appear in annotations. Special names (above) are skipped.
+ """
+ attrs = set()
+ for base in cls.__mro__[:-1]: # without object
+ if base.__name__ in ('Protocol', 'Generic'):
+ continue
+ annotations = getattr(base, '__annotations__', {})
+ for attr in list(base.__dict__.keys()) + list(annotations.keys()):
+ if not attr.startswith('_abc_') and attr not in EXCLUDED_ATTRIBUTES:
+ attrs.add(attr)
+ return attrs
+
+
+def _is_callable_members_only(cls):
+ # PEP 544 prohibits using issubclass() with protocols that have non-method members.
+ return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls))
+
+
+def _no_init_or_replace_init(self, *args, **kwargs):
+ cls = type(self)
+
+ if cls._is_protocol:
+ raise TypeError('Protocols cannot be instantiated')
+
+ # Already using a custom `__init__`. No need to calculate correct
+ # `__init__` to call. This can lead to RecursionError. See bpo-45121.
+ if cls.__init__ is not _no_init_or_replace_init:
+ return
+
+ # Initially, `__init__` of a protocol subclass is set to `_no_init_or_replace_init`.
+ # The first instantiation of the subclass will call `_no_init_or_replace_init` which
+ # searches for a proper new `__init__` in the MRO. The new `__init__`
+ # replaces the subclass' old `__init__` (ie `_no_init_or_replace_init`). Subsequent
+ # instantiation of the protocol subclass will thus use the new
+ # `__init__` and no longer call `_no_init_or_replace_init`.
+ for base in cls.__mro__:
+ init = base.__dict__.get('__init__', _no_init_or_replace_init)
+ if init is not _no_init_or_replace_init:
+ cls.__init__ = init
+ break
+ else:
+ # should not happen
+ cls.__init__ = object.__init__
+
+ cls.__init__(self, *args, **kwargs)
+
+
+
+def _allow_reckless_class_cheks():
+ """Allow instance and class checks for special stdlib modules.
+
+ The abc and functools modules indiscriminately call isinstance() and
+ issubclass() on the whole MRO of a user class, which may contain protocols.
+ """
+ try:
+ return sys._getframe(3).f_globals['__name__'] in ['abc', 'functools']
+ except (AttributeError, ValueError): # For platforms without _getframe().
+ return True
+
+
+_PROTO_WHITELIST = {
+ 'collections.abc': [
+ 'Callable', 'Awaitable', 'Iterable', 'Iterator', 'AsyncIterable',
+ 'Hashable', 'Sized', 'Container', 'Collection', 'Reversible',
+ ],
+ 'contextlib': ['AbstractContextManager', 'AbstractAsyncContextManager'],
+}
+
+
+class _ProtocolMeta(ABCMeta):
+ # This metaclass is really unfortunate and exists only because of
+ # the lack of __instancehook__.
+ def __instancecheck__(cls, instance):
+ # We need this method for situations where attributes are
+ # assigned in __init__.
+ if ((not getattr(cls, '_is_protocol', False) or
+ _is_callable_members_only(cls)) and
+ issubclass(instance.__class__, cls)):
+ return True
+ if cls._is_protocol:
+ if all(hasattr(instance, attr) and
+ # All *methods* can be blocked by setting them to None.
+ (not callable(getattr(cls, attr, None)) or
+ getattr(instance, attr) is not None)
+ for attr in _get_protocol_attrs(cls)):
+ return True
+ return super().__instancecheck__(instance)
+
+
+class Protocol(Generic, metaclass=_ProtocolMeta):
+ """Base class for protocol classes.
+
+ Protocol classes are defined as::
+
+ class Proto(Protocol):
+ def meth(self) -> int:
+ ...
+
+ Such classes are primarily used with static type checkers that recognize
+ structural subtyping (static duck-typing), for example::
+
+ class C:
+ def meth(self) -> int:
+ return 0
+
+ def func(x: Proto) -> int:
+ return x.meth()
+
+ func(C()) # Passes static type check
+
+ See PEP 544 for details. Protocol classes decorated with
+ @typing.runtime_checkable act as simple-minded runtime protocols that check
+ only the presence of given attributes, ignoring their type signatures.
+ Protocol classes can be generic, they are defined as::
+
+ class GenProto(Protocol[T]):
+ def meth(self) -> T:
+ ...
+ """
+ __slots__ = ()
+ _is_protocol = True
+ _is_runtime_protocol = False
+
+ def __init_subclass__(cls, *args, **kwargs):
+ super().__init_subclass__(*args, **kwargs)
+
+ # Determine if this is a protocol or a concrete subclass.
+ if not cls.__dict__.get('_is_protocol', False):
+ cls._is_protocol = any(b is Protocol for b in cls.__bases__)
+
+ # Set (or override) the protocol subclass hook.
+ def _proto_hook(other):
+ if not cls.__dict__.get('_is_protocol', False):
+ return NotImplemented
+
+ # First, perform various sanity checks.
+ if not getattr(cls, '_is_runtime_protocol', False):
+ if _allow_reckless_class_cheks():
+ return NotImplemented
+ raise TypeError("Instance and class checks can only be used with"
+ " @runtime_checkable protocols")
+ if not _is_callable_members_only(cls):
+ if _allow_reckless_class_cheks():
+ return NotImplemented
+ raise TypeError("Protocols with non-method members"
+ " don't support issubclass()")
+ if not isinstance(other, type):
+ # Same error message as for issubclass(1, int).
+ raise TypeError('issubclass() arg 1 must be a class')
+
+ # Second, perform the actual structural compatibility check.
+ for attr in _get_protocol_attrs(cls):
+ for base in other.__mro__:
+ # Check if the members appears in the class dictionary...
+ if attr in base.__dict__:
+ if base.__dict__[attr] is None:
+ return NotImplemented
+ break
+
+ # ...or in annotations, if it is a sub-protocol.
+ annotations = getattr(base, '__annotations__', {})
+ if (isinstance(annotations, collections.abc.Mapping) and
+ attr in annotations and
+ issubclass(other, Generic) and other._is_protocol):
+ break
+ else:
+ return NotImplemented
+ return True
+
+ if '__subclasshook__' not in cls.__dict__:
+ cls.__subclasshook__ = _proto_hook
+
+ # We have nothing more to do for non-protocols...
+ if not cls._is_protocol:
+ return
+
+ # ... otherwise check consistency of bases, and prohibit instantiation.
+ for base in cls.__bases__:
+ if not (base in (object, Generic) or
+ base.__module__ in _PROTO_WHITELIST and
+ base.__name__ in _PROTO_WHITELIST[base.__module__] or
+ issubclass(base, Generic) and base._is_protocol):
+ raise TypeError('Protocols can only inherit from other'
+ ' protocols, got %r' % base)
+ cls.__init__ = _no_init_or_replace_init
+
+
+class _AnnotatedAlias(_GenericAlias, _root=True):
+ """Runtime representation of an annotated type.
+
+ At its core 'Annotated[t, dec1, dec2, ...]' is an alias for the type 't'
+ with extra annotations. The alias behaves like a normal typing alias,
+ instantiating is the same as instantiating the underlying type, binding
+ it to types is also the same.
+ """
+ def __init__(self, origin, metadata):
+ if isinstance(origin, _AnnotatedAlias):
+ metadata = origin.__metadata__ + metadata
+ origin = origin.__origin__
+ super().__init__(origin, origin)
+ self.__metadata__ = metadata
+
+ def copy_with(self, params):
+ assert len(params) == 1
+ new_type = params[0]
+ return _AnnotatedAlias(new_type, self.__metadata__)
+
+ def __repr__(self):
+ return "typing.Annotated[{}, {}]".format(
+ _type_repr(self.__origin__),
+ ", ".join(repr(a) for a in self.__metadata__)
+ )
+
+ def __reduce__(self):
+ return operator.getitem, (
+ Annotated, (self.__origin__,) + self.__metadata__
+ )
+
+ def __eq__(self, other):
+ if not isinstance(other, _AnnotatedAlias):
+ return NotImplemented
+ return (self.__origin__ == other.__origin__
+ and self.__metadata__ == other.__metadata__)
+
+ def __hash__(self):
+ return hash((self.__origin__, self.__metadata__))
+
+
+class Annotated:
+ """Add context specific metadata to a type.
+
+ Example: Annotated[int, runtime_check.Unsigned] indicates to the
+ hypothetical runtime_check module that this type is an unsigned int.
+ Every other consumer of this type can ignore this metadata and treat
+ this type as int.
+
+ The first argument to Annotated must be a valid type.
+
+ Details:
+
+ - It's an error to call `Annotated` with less than two arguments.
+ - Nested Annotated are flattened::
+
+ Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3]
+
+ - Instantiating an annotated type is equivalent to instantiating the
+ underlying type::
+
+ Annotated[C, Ann1](5) == C(5)
+
+ - Annotated can be used as a generic type alias::
+
+ Optimized = Annotated[T, runtime.Optimize()]
+ Optimized[int] == Annotated[int, runtime.Optimize()]
+
+ OptimizedList = Annotated[List[T], runtime.Optimize()]
+ OptimizedList[int] == Annotated[List[int], runtime.Optimize()]
+ """
+
+ __slots__ = ()
+
+ def __new__(cls, *args, **kwargs):
+ raise TypeError("Type Annotated cannot be instantiated.")
+
+ @_tp_cache
+ def __class_getitem__(cls, params):
+ if not isinstance(params, tuple) or len(params) < 2:
+ raise TypeError("Annotated[...] should be used "
+ "with at least two arguments (a type and an "
+ "annotation).")
+ msg = "Annotated[t, ...]: t must be a type."
+ origin = _type_check(params[0], msg)
+ metadata = tuple(params[1:])
+ return _AnnotatedAlias(origin, metadata)
+
+ def __init_subclass__(cls, *args, **kwargs):
+ raise TypeError(
+ "Cannot subclass {}.Annotated".format(cls.__module__)
+ )
+
+
+def runtime_checkable(cls):
+ """Mark a protocol class as a runtime protocol.
+
+ Such protocol can be used with isinstance() and issubclass().
+ Raise TypeError if applied to a non-protocol class.
+ This allows a simple-minded structural check very similar to
+ one trick ponies in collections.abc such as Iterable.
+ For example::
+
+ @runtime_checkable
+ class Closable(Protocol):
+ def close(self): ...
+
+ assert isinstance(open('/some/file'), Closable)
+
+ Warning: this will check only the presence of the required methods,
+ not their type signatures!
+ """
+ if not issubclass(cls, Generic) or not cls._is_protocol:
+ raise TypeError('@runtime_checkable can be only applied to protocol classes,'
+ ' got %r' % cls)
+ cls._is_runtime_protocol = True
+ return cls
+
+
def cast(typ, val):
"""Cast a value to a type.
@@ -1407,13 +1407,13 @@ _allowed_types = (types.FunctionType, types.BuiltinFunctionType,
WrapperDescriptorType, MethodWrapperType, MethodDescriptorType)
-def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
+def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
"""Return type hints for an object.
This is often the same as obj.__annotations__, but it handles
- forward references encoded as string literals, adds Optional[t] if a
- default value equal to None is set and recursively replaces all
- 'Annotated[T, ...]' with 'T' (unless 'include_extras=True').
+ forward references encoded as string literals, adds Optional[t] if a
+ default value equal to None is set and recursively replaces all
+ 'Annotated[T, ...]' with 'T' (unless 'include_extras=True').
The argument may be a module, class, method, or function. The annotations
are returned as a dictionary. For classes, annotations include also
@@ -1454,20 +1454,20 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
if value is None:
value = type(None)
if isinstance(value, str):
- value = ForwardRef(value, is_argument=False, is_class=True)
+ value = ForwardRef(value, is_argument=False, is_class=True)
value = _eval_type(value, base_globals, localns)
hints[name] = value
- return hints if include_extras else {k: _strip_annotations(t) for k, t in hints.items()}
+ return hints if include_extras else {k: _strip_annotations(t) for k, t in hints.items()}
if globalns is None:
if isinstance(obj, types.ModuleType):
globalns = obj.__dict__
else:
- nsobj = obj
- # Find globalns for the unwrapped object.
- while hasattr(nsobj, '__wrapped__'):
- nsobj = nsobj.__wrapped__
- globalns = getattr(nsobj, '__globals__', {})
+ nsobj = obj
+ # Find globalns for the unwrapped object.
+ while hasattr(nsobj, '__wrapped__'):
+ nsobj = nsobj.__wrapped__
+ globalns = getattr(nsobj, '__globals__', {})
if localns is None:
localns = globalns
elif localns is None:
@@ -1486,82 +1486,82 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
if value is None:
value = type(None)
if isinstance(value, str):
- # class-level forward refs were handled above, this must be either
- # a module-level annotation or a function argument annotation
- value = ForwardRef(
- value,
- is_argument=not isinstance(obj, types.ModuleType),
- is_class=False,
- )
+ # class-level forward refs were handled above, this must be either
+ # a module-level annotation or a function argument annotation
+ value = ForwardRef(
+ value,
+ is_argument=not isinstance(obj, types.ModuleType),
+ is_class=False,
+ )
value = _eval_type(value, globalns, localns)
if name in defaults and defaults[name] is None:
value = Optional[value]
hints[name] = value
- return hints if include_extras else {k: _strip_annotations(t) for k, t in hints.items()}
-
-
-def _strip_annotations(t):
- """Strips the annotations from a given type.
- """
- if isinstance(t, _AnnotatedAlias):
- return _strip_annotations(t.__origin__)
- if isinstance(t, _GenericAlias):
- stripped_args = tuple(_strip_annotations(a) for a in t.__args__)
- if stripped_args == t.__args__:
- return t
- return t.copy_with(stripped_args)
- if isinstance(t, GenericAlias):
- stripped_args = tuple(_strip_annotations(a) for a in t.__args__)
- if stripped_args == t.__args__:
- return t
- return GenericAlias(t.__origin__, stripped_args)
- return t
-
-
-def get_origin(tp):
- """Get the unsubscripted version of a type.
-
- This supports generic types, Callable, Tuple, Union, Literal, Final, ClassVar
- and Annotated. Return None for unsupported types. Examples::
-
- get_origin(Literal[42]) is Literal
- get_origin(int) is None
- get_origin(ClassVar[int]) is ClassVar
- get_origin(Generic) is Generic
- get_origin(Generic[T]) is Generic
- get_origin(Union[T, int]) is Union
- get_origin(List[Tuple[T, T]][int]) == list
- """
- if isinstance(tp, _AnnotatedAlias):
- return Annotated
- if isinstance(tp, (_BaseGenericAlias, GenericAlias)):
- return tp.__origin__
- if tp is Generic:
- return Generic
- return None
-
-
-def get_args(tp):
- """Get type arguments with all substitutions performed.
-
- For unions, basic simplifications used by Union constructor are performed.
- Examples::
- get_args(Dict[str, int]) == (str, int)
- get_args(int) == ()
- get_args(Union[int, Union[T, int], str][int]) == (int, str)
- get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int])
- get_args(Callable[[], T][int]) == ([], int)
- """
- if isinstance(tp, _AnnotatedAlias):
- return (tp.__origin__,) + tp.__metadata__
- if isinstance(tp, (_GenericAlias, GenericAlias)):
- res = tp.__args__
- if tp.__origin__ is collections.abc.Callable and res[0] is not Ellipsis:
- res = (list(res[:-1]), res[-1])
- return res
- return ()
-
-
+ return hints if include_extras else {k: _strip_annotations(t) for k, t in hints.items()}
+
+
+def _strip_annotations(t):
+ """Strips the annotations from a given type.
+ """
+ if isinstance(t, _AnnotatedAlias):
+ return _strip_annotations(t.__origin__)
+ if isinstance(t, _GenericAlias):
+ stripped_args = tuple(_strip_annotations(a) for a in t.__args__)
+ if stripped_args == t.__args__:
+ return t
+ return t.copy_with(stripped_args)
+ if isinstance(t, GenericAlias):
+ stripped_args = tuple(_strip_annotations(a) for a in t.__args__)
+ if stripped_args == t.__args__:
+ return t
+ return GenericAlias(t.__origin__, stripped_args)
+ return t
+
+
+def get_origin(tp):
+ """Get the unsubscripted version of a type.
+
+ This supports generic types, Callable, Tuple, Union, Literal, Final, ClassVar
+ and Annotated. Return None for unsupported types. Examples::
+
+ get_origin(Literal[42]) is Literal
+ get_origin(int) is None
+ get_origin(ClassVar[int]) is ClassVar
+ get_origin(Generic) is Generic
+ get_origin(Generic[T]) is Generic
+ get_origin(Union[T, int]) is Union
+ get_origin(List[Tuple[T, T]][int]) == list
+ """
+ if isinstance(tp, _AnnotatedAlias):
+ return Annotated
+ if isinstance(tp, (_BaseGenericAlias, GenericAlias)):
+ return tp.__origin__
+ if tp is Generic:
+ return Generic
+ return None
+
+
+def get_args(tp):
+ """Get type arguments with all substitutions performed.
+
+ For unions, basic simplifications used by Union constructor are performed.
+ Examples::
+ get_args(Dict[str, int]) == (str, int)
+ get_args(int) == ()
+ get_args(Union[int, Union[T, int], str][int]) == (int, str)
+ get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int])
+ get_args(Callable[[], T][int]) == ([], int)
+ """
+ if isinstance(tp, _AnnotatedAlias):
+ return (tp.__origin__,) + tp.__metadata__
+ if isinstance(tp, (_GenericAlias, GenericAlias)):
+ res = tp.__args__
+ if tp.__origin__ is collections.abc.Callable and res[0] is not Ellipsis:
+ res = (list(res[:-1]), res[-1])
+ return res
+ return ()
+
+
def no_type_check(arg):
"""Decorator to indicate that annotations are not type hints.
@@ -1642,30 +1642,30 @@ def overload(func):
return _overload_dummy
-def final(f):
- """A decorator to indicate final methods and final classes.
+def final(f):
+ """A decorator to indicate final methods and final classes.
- Use this decorator to indicate to type checkers that the decorated
- method cannot be overridden, and decorated class cannot be subclassed.
- For example:
+ Use this decorator to indicate to type checkers that the decorated
+ method cannot be overridden, and decorated class cannot be subclassed.
+ For example:
- class Base:
- @final
- def done(self) -> None:
- ...
- class Sub(Base):
- def done(self) -> None: # Error reported by type checker
- ...
+ class Base:
+ @final
+ def done(self) -> None:
+ ...
+ class Sub(Base):
+ def done(self) -> None: # Error reported by type checker
+ ...
- @final
- class Leaf:
- ...
- class Other(Leaf): # Error reported by type checker
- ...
+ @final
+ class Leaf:
+ ...
+ class Other(Leaf): # Error reported by type checker
+ ...
- There is no runtime checking of these properties.
+ There is no runtime checking of these properties.
"""
- return f
+ return f
# Some unconstrained type variables. These are used by the container types.
@@ -1686,20 +1686,20 @@ AnyStr = TypeVar('AnyStr', bytes, str)
# Various ABCs mimicking those in collections.abc.
-_alias = _SpecialGenericAlias
-
-Hashable = _alias(collections.abc.Hashable, 0) # Not generic.
-Awaitable = _alias(collections.abc.Awaitable, 1)
-Coroutine = _alias(collections.abc.Coroutine, 3)
-AsyncIterable = _alias(collections.abc.AsyncIterable, 1)
-AsyncIterator = _alias(collections.abc.AsyncIterator, 1)
-Iterable = _alias(collections.abc.Iterable, 1)
-Iterator = _alias(collections.abc.Iterator, 1)
-Reversible = _alias(collections.abc.Reversible, 1)
-Sized = _alias(collections.abc.Sized, 0) # Not generic.
-Container = _alias(collections.abc.Container, 1)
-Collection = _alias(collections.abc.Collection, 1)
-Callable = _CallableType(collections.abc.Callable, 2)
+_alias = _SpecialGenericAlias
+
+Hashable = _alias(collections.abc.Hashable, 0) # Not generic.
+Awaitable = _alias(collections.abc.Awaitable, 1)
+Coroutine = _alias(collections.abc.Coroutine, 3)
+AsyncIterable = _alias(collections.abc.AsyncIterable, 1)
+AsyncIterator = _alias(collections.abc.AsyncIterator, 1)
+Iterable = _alias(collections.abc.Iterable, 1)
+Iterator = _alias(collections.abc.Iterator, 1)
+Reversible = _alias(collections.abc.Reversible, 1)
+Sized = _alias(collections.abc.Sized, 0) # Not generic.
+Container = _alias(collections.abc.Container, 1)
+Collection = _alias(collections.abc.Collection, 1)
+Callable = _CallableType(collections.abc.Callable, 2)
Callable.__doc__ = \
"""Callable type; Callable[[int], str] is a function of (int) -> str.
@@ -1710,16 +1710,16 @@ Callable.__doc__ = \
There is no syntax to indicate optional or keyword arguments,
such function types are rarely used as callback types.
"""
-AbstractSet = _alias(collections.abc.Set, 1, name='AbstractSet')
-MutableSet = _alias(collections.abc.MutableSet, 1)
+AbstractSet = _alias(collections.abc.Set, 1, name='AbstractSet')
+MutableSet = _alias(collections.abc.MutableSet, 1)
# NOTE: Mapping is only covariant in the value type.
-Mapping = _alias(collections.abc.Mapping, 2)
-MutableMapping = _alias(collections.abc.MutableMapping, 2)
-Sequence = _alias(collections.abc.Sequence, 1)
-MutableSequence = _alias(collections.abc.MutableSequence, 1)
-ByteString = _alias(collections.abc.ByteString, 0) # Not generic
-# Tuple accepts variable number of parameters.
-Tuple = _TupleType(tuple, -1, inst=False, name='Tuple')
+Mapping = _alias(collections.abc.Mapping, 2)
+MutableMapping = _alias(collections.abc.MutableMapping, 2)
+Sequence = _alias(collections.abc.Sequence, 1)
+MutableSequence = _alias(collections.abc.MutableSequence, 1)
+ByteString = _alias(collections.abc.ByteString, 0) # Not generic
+# Tuple accepts variable number of parameters.
+Tuple = _TupleType(tuple, -1, inst=False, name='Tuple')
Tuple.__doc__ = \
"""Tuple type; Tuple[X, Y] is the cross-product type of X and Y.
@@ -1729,24 +1729,24 @@ Tuple.__doc__ = \
To specify a variable-length tuple of homogeneous type, use Tuple[T, ...].
"""
-List = _alias(list, 1, inst=False, name='List')
-Deque = _alias(collections.deque, 1, name='Deque')
-Set = _alias(set, 1, inst=False, name='Set')
-FrozenSet = _alias(frozenset, 1, inst=False, name='FrozenSet')
-MappingView = _alias(collections.abc.MappingView, 1)
-KeysView = _alias(collections.abc.KeysView, 1)
-ItemsView = _alias(collections.abc.ItemsView, 2)
-ValuesView = _alias(collections.abc.ValuesView, 1)
-ContextManager = _alias(contextlib.AbstractContextManager, 1, name='ContextManager')
-AsyncContextManager = _alias(contextlib.AbstractAsyncContextManager, 1, name='AsyncContextManager')
-Dict = _alias(dict, 2, inst=False, name='Dict')
-DefaultDict = _alias(collections.defaultdict, 2, name='DefaultDict')
-OrderedDict = _alias(collections.OrderedDict, 2)
-Counter = _alias(collections.Counter, 1)
-ChainMap = _alias(collections.ChainMap, 2)
-Generator = _alias(collections.abc.Generator, 3)
-AsyncGenerator = _alias(collections.abc.AsyncGenerator, 2)
-Type = _alias(type, 1, inst=False, name='Type')
+List = _alias(list, 1, inst=False, name='List')
+Deque = _alias(collections.deque, 1, name='Deque')
+Set = _alias(set, 1, inst=False, name='Set')
+FrozenSet = _alias(frozenset, 1, inst=False, name='FrozenSet')
+MappingView = _alias(collections.abc.MappingView, 1)
+KeysView = _alias(collections.abc.KeysView, 1)
+ItemsView = _alias(collections.abc.ItemsView, 2)
+ValuesView = _alias(collections.abc.ValuesView, 1)
+ContextManager = _alias(contextlib.AbstractContextManager, 1, name='ContextManager')
+AsyncContextManager = _alias(contextlib.AbstractAsyncContextManager, 1, name='AsyncContextManager')
+Dict = _alias(dict, 2, inst=False, name='Dict')
+DefaultDict = _alias(collections.defaultdict, 2, name='DefaultDict')
+OrderedDict = _alias(collections.OrderedDict, 2)
+Counter = _alias(collections.Counter, 1)
+ChainMap = _alias(collections.ChainMap, 2)
+Generator = _alias(collections.abc.Generator, 3)
+AsyncGenerator = _alias(collections.abc.AsyncGenerator, 2)
+Type = _alias(type, 1, inst=False, name='Type')
Type.__doc__ = \
"""A special construct usable to annotate class objects.
@@ -1772,9 +1772,9 @@ Type.__doc__ = \
"""
-@runtime_checkable
-class SupportsInt(Protocol):
- """An ABC with one abstract method __int__."""
+@runtime_checkable
+class SupportsInt(Protocol):
+ """An ABC with one abstract method __int__."""
__slots__ = ()
@abstractmethod
@@ -1782,9 +1782,9 @@ class SupportsInt(Protocol):
pass
-@runtime_checkable
-class SupportsFloat(Protocol):
- """An ABC with one abstract method __float__."""
+@runtime_checkable
+class SupportsFloat(Protocol):
+ """An ABC with one abstract method __float__."""
__slots__ = ()
@abstractmethod
@@ -1792,9 +1792,9 @@ class SupportsFloat(Protocol):
pass
-@runtime_checkable
-class SupportsComplex(Protocol):
- """An ABC with one abstract method __complex__."""
+@runtime_checkable
+class SupportsComplex(Protocol):
+ """An ABC with one abstract method __complex__."""
__slots__ = ()
@abstractmethod
@@ -1802,9 +1802,9 @@ class SupportsComplex(Protocol):
pass
-@runtime_checkable
-class SupportsBytes(Protocol):
- """An ABC with one abstract method __bytes__."""
+@runtime_checkable
+class SupportsBytes(Protocol):
+ """An ABC with one abstract method __bytes__."""
__slots__ = ()
@abstractmethod
@@ -1812,19 +1812,19 @@ class SupportsBytes(Protocol):
pass
-@runtime_checkable
-class SupportsIndex(Protocol):
- """An ABC with one abstract method __index__."""
- __slots__ = ()
-
- @abstractmethod
- def __index__(self) -> int:
- pass
-
-
-@runtime_checkable
-class SupportsAbs(Protocol[T_co]):
- """An ABC with one abstract method __abs__ that is covariant in its return type."""
+@runtime_checkable
+class SupportsIndex(Protocol):
+ """An ABC with one abstract method __index__."""
+ __slots__ = ()
+
+ @abstractmethod
+ def __index__(self) -> int:
+ pass
+
+
+@runtime_checkable
+class SupportsAbs(Protocol[T_co]):
+ """An ABC with one abstract method __abs__ that is covariant in its return type."""
__slots__ = ()
@abstractmethod
@@ -1832,9 +1832,9 @@ class SupportsAbs(Protocol[T_co]):
pass
-@runtime_checkable
-class SupportsRound(Protocol[T_co]):
- """An ABC with one abstract method __round__ that is covariant in its return type."""
+@runtime_checkable
+class SupportsRound(Protocol[T_co]):
+ """An ABC with one abstract method __round__ that is covariant in its return type."""
__slots__ = ()
@abstractmethod
@@ -1842,41 +1842,41 @@ class SupportsRound(Protocol[T_co]):
pass
-def _make_nmtuple(name, types, module, defaults = ()):
- fields = [n for n, t in types]
- types = {n: _type_check(t, f"field {n} annotation must be a type")
- for n, t in types}
- nm_tpl = collections.namedtuple(name, fields,
- defaults=defaults, module=module)
- nm_tpl.__annotations__ = nm_tpl.__new__.__annotations__ = types
+def _make_nmtuple(name, types, module, defaults = ()):
+ fields = [n for n, t in types]
+ types = {n: _type_check(t, f"field {n} annotation must be a type")
+ for n, t in types}
+ nm_tpl = collections.namedtuple(name, fields,
+ defaults=defaults, module=module)
+ nm_tpl.__annotations__ = nm_tpl.__new__.__annotations__ = types
return nm_tpl
# attributes prohibited to set in NamedTuple class syntax
-_prohibited = frozenset({'__new__', '__init__', '__slots__', '__getnewargs__',
- '_fields', '_field_defaults',
- '_make', '_replace', '_asdict', '_source'})
+_prohibited = frozenset({'__new__', '__init__', '__slots__', '__getnewargs__',
+ '_fields', '_field_defaults',
+ '_make', '_replace', '_asdict', '_source'})
-_special = frozenset({'__module__', '__name__', '__annotations__'})
+_special = frozenset({'__module__', '__name__', '__annotations__'})
class NamedTupleMeta(type):
def __new__(cls, typename, bases, ns):
- assert bases[0] is _NamedTuple
+ assert bases[0] is _NamedTuple
types = ns.get('__annotations__', {})
- default_names = []
+ default_names = []
for field_name in types:
if field_name in ns:
- default_names.append(field_name)
- elif default_names:
- raise TypeError(f"Non-default namedtuple field {field_name} "
- f"cannot follow default field"
- f"{'s' if len(default_names) > 1 else ''} "
- f"{', '.join(default_names)}")
- nm_tpl = _make_nmtuple(typename, types.items(),
- defaults=[ns[n] for n in default_names],
- module=ns['__module__'])
+ default_names.append(field_name)
+ elif default_names:
+ raise TypeError(f"Non-default namedtuple field {field_name} "
+ f"cannot follow default field"
+ f"{'s' if len(default_names) > 1 else ''} "
+ f"{', '.join(default_names)}")
+ nm_tpl = _make_nmtuple(typename, types.items(),
+ defaults=[ns[n] for n in default_names],
+ module=ns['__module__'])
# update from user namespace without overriding special namedtuple attributes
for key in ns:
if key in _prohibited:
@@ -1886,7 +1886,7 @@ class NamedTupleMeta(type):
return nm_tpl
-def NamedTuple(typename, fields=None, /, **kwargs):
+def NamedTuple(typename, fields=None, /, **kwargs):
"""Typed version of namedtuple.
Usage in Python versions >= 3.6::
@@ -1899,10 +1899,10 @@ def NamedTuple(typename, fields=None, /, **kwargs):
Employee = collections.namedtuple('Employee', ['name', 'id'])
- The resulting class has an extra __annotations__ attribute, giving a
- dict that maps field names to types. (The field names are also in
- the _fields attribute, which is part of the namedtuple API.)
- Alternative equivalent keyword syntax is also accepted::
+ The resulting class has an extra __annotations__ attribute, giving a
+ dict that maps field names to types. (The field names are also in
+ the _fields attribute, which is part of the namedtuple API.)
+ Alternative equivalent keyword syntax is also accepted::
Employee = NamedTuple('Employee', name=str, id=int)
@@ -1910,142 +1910,142 @@ def NamedTuple(typename, fields=None, /, **kwargs):
Employee = NamedTuple('Employee', [('name', str), ('id', int)])
"""
- if fields is None:
- fields = kwargs.items()
- elif kwargs:
- raise TypeError("Either list of fields or keywords"
- " can be provided to NamedTuple, not both")
- try:
- module = sys._getframe(1).f_globals.get('__name__', '__main__')
- except (AttributeError, ValueError):
- module = None
- return _make_nmtuple(typename, fields, module=module)
-
-_NamedTuple = type.__new__(NamedTupleMeta, 'NamedTuple', (), {})
-
-def _namedtuple_mro_entries(bases):
- if len(bases) > 1:
- raise TypeError("Multiple inheritance with NamedTuple is not supported")
- assert bases[0] is NamedTuple
- return (_NamedTuple,)
-
-NamedTuple.__mro_entries__ = _namedtuple_mro_entries
-
-
-class _TypedDictMeta(type):
- def __new__(cls, name, bases, ns, total=True):
- """Create new typed dict class object.
-
- This method is called when TypedDict is subclassed,
- or when TypedDict is instantiated. This way
- TypedDict supports all three syntax forms described in its docstring.
- Subclasses and instances of TypedDict return actual dictionaries.
- """
- for base in bases:
- if type(base) is not _TypedDictMeta:
- raise TypeError('cannot inherit from both a TypedDict type '
- 'and a non-TypedDict base class')
- tp_dict = type.__new__(_TypedDictMeta, name, (dict,), ns)
-
- annotations = {}
- own_annotations = ns.get('__annotations__', {})
- own_annotation_keys = set(own_annotations.keys())
- msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type"
- own_annotations = {
- n: _type_check(tp, msg, module=tp_dict.__module__)
- for n, tp in own_annotations.items()
- }
- required_keys = set()
- optional_keys = set()
-
- for base in bases:
- annotations.update(base.__dict__.get('__annotations__', {}))
- required_keys.update(base.__dict__.get('__required_keys__', ()))
- optional_keys.update(base.__dict__.get('__optional_keys__', ()))
-
- annotations.update(own_annotations)
- if total:
- required_keys.update(own_annotation_keys)
- else:
- optional_keys.update(own_annotation_keys)
-
- tp_dict.__annotations__ = annotations
- tp_dict.__required_keys__ = frozenset(required_keys)
- tp_dict.__optional_keys__ = frozenset(optional_keys)
- if not hasattr(tp_dict, '__total__'):
- tp_dict.__total__ = total
- return tp_dict
-
- __call__ = dict # static method
-
- def __subclasscheck__(cls, other):
- # Typed dicts are only for static structural subtyping.
- raise TypeError('TypedDict does not support instance and class checks')
-
- __instancecheck__ = __subclasscheck__
-
-
-def TypedDict(typename, fields=None, /, *, total=True, **kwargs):
- """A simple typed namespace. At runtime it is equivalent to a plain dict.
-
- TypedDict creates a dictionary type that expects all of its
- instances to have a certain set of keys, where each key is
- associated with a value of a consistent type. This expectation
- is not checked at runtime but is only enforced by type checkers.
- Usage::
-
- class Point2D(TypedDict):
- x: int
- y: int
- label: str
-
- a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK
- b: Point2D = {'z': 3, 'label': 'bad'} # Fails type check
-
- assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')
-
- The type info can be accessed via the Point2D.__annotations__ dict, and
- the Point2D.__required_keys__ and Point2D.__optional_keys__ frozensets.
- TypedDict supports two additional equivalent forms::
-
- Point2D = TypedDict('Point2D', x=int, y=int, label=str)
- Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})
-
- By default, all keys must be present in a TypedDict. It is possible
- to override this by specifying totality.
- Usage::
-
- class point2D(TypedDict, total=False):
- x: int
- y: int
-
- This means that a point2D TypedDict can have any of the keys omitted.A type
- checker is only expected to support a literal False or True as the value of
- the total argument. True is the default, and makes all items defined in the
- class body be required.
-
- The class syntax is only supported in Python 3.6+, while two other
- syntax forms work for Python 2.7 and 3.2+
- """
- if fields is None:
- fields = kwargs
- elif kwargs:
- raise TypeError("TypedDict takes either a dict or keyword arguments,"
- " but not both")
-
- ns = {'__annotations__': dict(fields)}
- try:
- # Setting correct module is necessary to make typed dict classes pickleable.
- ns['__module__'] = sys._getframe(1).f_globals.get('__name__', '__main__')
- except (AttributeError, ValueError):
- pass
-
- return _TypedDictMeta(typename, (), ns, total=total)
-
-_TypedDict = type.__new__(_TypedDictMeta, 'TypedDict', (), {})
-TypedDict.__mro_entries__ = lambda bases: (_TypedDict,)
-
-
+ if fields is None:
+ fields = kwargs.items()
+ elif kwargs:
+ raise TypeError("Either list of fields or keywords"
+ " can be provided to NamedTuple, not both")
+ try:
+ module = sys._getframe(1).f_globals.get('__name__', '__main__')
+ except (AttributeError, ValueError):
+ module = None
+ return _make_nmtuple(typename, fields, module=module)
+
+_NamedTuple = type.__new__(NamedTupleMeta, 'NamedTuple', (), {})
+
+def _namedtuple_mro_entries(bases):
+ if len(bases) > 1:
+ raise TypeError("Multiple inheritance with NamedTuple is not supported")
+ assert bases[0] is NamedTuple
+ return (_NamedTuple,)
+
+NamedTuple.__mro_entries__ = _namedtuple_mro_entries
+
+
+class _TypedDictMeta(type):
+ def __new__(cls, name, bases, ns, total=True):
+ """Create new typed dict class object.
+
+ This method is called when TypedDict is subclassed,
+ or when TypedDict is instantiated. This way
+ TypedDict supports all three syntax forms described in its docstring.
+ Subclasses and instances of TypedDict return actual dictionaries.
+ """
+ for base in bases:
+ if type(base) is not _TypedDictMeta:
+ raise TypeError('cannot inherit from both a TypedDict type '
+ 'and a non-TypedDict base class')
+ tp_dict = type.__new__(_TypedDictMeta, name, (dict,), ns)
+
+ annotations = {}
+ own_annotations = ns.get('__annotations__', {})
+ own_annotation_keys = set(own_annotations.keys())
+ msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type"
+ own_annotations = {
+ n: _type_check(tp, msg, module=tp_dict.__module__)
+ for n, tp in own_annotations.items()
+ }
+ required_keys = set()
+ optional_keys = set()
+
+ for base in bases:
+ annotations.update(base.__dict__.get('__annotations__', {}))
+ required_keys.update(base.__dict__.get('__required_keys__', ()))
+ optional_keys.update(base.__dict__.get('__optional_keys__', ()))
+
+ annotations.update(own_annotations)
+ if total:
+ required_keys.update(own_annotation_keys)
+ else:
+ optional_keys.update(own_annotation_keys)
+
+ tp_dict.__annotations__ = annotations
+ tp_dict.__required_keys__ = frozenset(required_keys)
+ tp_dict.__optional_keys__ = frozenset(optional_keys)
+ if not hasattr(tp_dict, '__total__'):
+ tp_dict.__total__ = total
+ return tp_dict
+
+ __call__ = dict # static method
+
+ def __subclasscheck__(cls, other):
+ # Typed dicts are only for static structural subtyping.
+ raise TypeError('TypedDict does not support instance and class checks')
+
+ __instancecheck__ = __subclasscheck__
+
+
+def TypedDict(typename, fields=None, /, *, total=True, **kwargs):
+ """A simple typed namespace. At runtime it is equivalent to a plain dict.
+
+ TypedDict creates a dictionary type that expects all of its
+ instances to have a certain set of keys, where each key is
+ associated with a value of a consistent type. This expectation
+ is not checked at runtime but is only enforced by type checkers.
+ Usage::
+
+ class Point2D(TypedDict):
+ x: int
+ y: int
+ label: str
+
+ a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK
+ b: Point2D = {'z': 3, 'label': 'bad'} # Fails type check
+
+ assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')
+
+ The type info can be accessed via the Point2D.__annotations__ dict, and
+ the Point2D.__required_keys__ and Point2D.__optional_keys__ frozensets.
+ TypedDict supports two additional equivalent forms::
+
+ Point2D = TypedDict('Point2D', x=int, y=int, label=str)
+ Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})
+
+ By default, all keys must be present in a TypedDict. It is possible
+ to override this by specifying totality.
+ Usage::
+
+ class point2D(TypedDict, total=False):
+ x: int
+ y: int
+
+ This means that a point2D TypedDict can have any of the keys omitted.A type
+ checker is only expected to support a literal False or True as the value of
+ the total argument. True is the default, and makes all items defined in the
+ class body be required.
+
+ The class syntax is only supported in Python 3.6+, while two other
+ syntax forms work for Python 2.7 and 3.2+
+ """
+ if fields is None:
+ fields = kwargs
+ elif kwargs:
+ raise TypeError("TypedDict takes either a dict or keyword arguments,"
+ " but not both")
+
+ ns = {'__annotations__': dict(fields)}
+ try:
+ # Setting correct module is necessary to make typed dict classes pickleable.
+ ns['__module__'] = sys._getframe(1).f_globals.get('__name__', '__main__')
+ except (AttributeError, ValueError):
+ pass
+
+ return _TypedDictMeta(typename, (), ns, total=total)
+
+_TypedDict = type.__new__(_TypedDictMeta, 'TypedDict', (), {})
+TypedDict.__mro_entries__ = lambda bases: (_TypedDict,)
+
+
def NewType(name, tp):
"""NewType creates simple unique types with almost zero
runtime overhead. NewType(name, tp) is considered a subtype of tp
@@ -2096,13 +2096,13 @@ class IO(Generic[AnyStr]):
__slots__ = ()
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def mode(self) -> str:
pass
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def name(self) -> str:
pass
@@ -2110,8 +2110,8 @@ class IO(Generic[AnyStr]):
def close(self) -> None:
pass
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def closed(self) -> bool:
pass
@@ -2199,28 +2199,28 @@ class TextIO(IO[str]):
__slots__ = ()
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def buffer(self) -> BinaryIO:
pass
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def encoding(self) -> str:
pass
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def errors(self) -> Optional[str]:
pass
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def line_buffering(self) -> bool:
pass
- @property
- @abstractmethod
+ @property
+ @abstractmethod
def newlines(self) -> Any:
pass
@@ -2241,8 +2241,8 @@ class io:
io.__name__ = __name__ + '.io'
sys.modules[io.__name__] = io
-Pattern = _alias(stdlib_re.Pattern, 1)
-Match = _alias(stdlib_re.Match, 1)
+Pattern = _alias(stdlib_re.Pattern, 1)
+Match = _alias(stdlib_re.Match, 1)
class re:
"""Wrapper namespace for re type aliases."""
diff --git a/contrib/tools/python3/src/Lib/unittest/__init__.py b/contrib/tools/python3/src/Lib/unittest/__init__.py
index 85c74ece81..348dc471f4 100644
--- a/contrib/tools/python3/src/Lib/unittest/__init__.py
+++ b/contrib/tools/python3/src/Lib/unittest/__init__.py
@@ -44,12 +44,12 @@ AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
"""
-__all__ = ['TestResult', 'TestCase', 'IsolatedAsyncioTestCase', 'TestSuite',
+__all__ = ['TestResult', 'TestCase', 'IsolatedAsyncioTestCase', 'TestSuite',
'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main',
'defaultTestLoader', 'SkipTest', 'skip', 'skipIf', 'skipUnless',
'expectedFailure', 'TextTestResult', 'installHandler',
- 'registerResult', 'removeResult', 'removeHandler',
- 'addModuleCleanup']
+ 'registerResult', 'removeResult', 'removeHandler',
+ 'addModuleCleanup']
# Expose obsolete functions for backwards compatibility
__all__.extend(['getTestCaseNames', 'makeSuite', 'findTestCases'])
@@ -57,15 +57,15 @@ __all__.extend(['getTestCaseNames', 'makeSuite', 'findTestCases'])
__unittest = True
from .result import TestResult
-from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip,
- skipIf, skipUnless, expectedFailure)
+from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip,
+ skipIf, skipUnless, expectedFailure)
from .suite import BaseTestSuite, TestSuite
from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
findTestCases)
from .main import TestProgram, main
from .runner import TextTestRunner, TextTestResult
from .signals import installHandler, registerResult, removeResult, removeHandler
-# IsolatedAsyncioTestCase will be imported lazily.
+# IsolatedAsyncioTestCase will be imported lazily.
# deprecated
_TextTestResult = TextTestResult
@@ -78,18 +78,18 @@ def load_tests(loader, tests, pattern):
# top level directory cached on loader instance
this_dir = os.path.dirname(__file__)
return loader.discover(start_dir=this_dir, pattern=pattern)
-
-
-# Lazy import of IsolatedAsyncioTestCase from .async_case
-# It imports asyncio, which is relatively heavy, but most tests
-# do not need it.
-
-def __dir__():
- return globals().keys() | {'IsolatedAsyncioTestCase'}
-
-def __getattr__(name):
- if name == 'IsolatedAsyncioTestCase':
- global IsolatedAsyncioTestCase
- from .async_case import IsolatedAsyncioTestCase
- return IsolatedAsyncioTestCase
- raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
+
+
+# Lazy import of IsolatedAsyncioTestCase from .async_case
+# It imports asyncio, which is relatively heavy, but most tests
+# do not need it.
+
+def __dir__():
+ return globals().keys() | {'IsolatedAsyncioTestCase'}
+
+def __getattr__(name):
+ if name == 'IsolatedAsyncioTestCase':
+ global IsolatedAsyncioTestCase
+ from .async_case import IsolatedAsyncioTestCase
+ return IsolatedAsyncioTestCase
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
diff --git a/contrib/tools/python3/src/Lib/unittest/_log.py b/contrib/tools/python3/src/Lib/unittest/_log.py
index 9ec03f1262..94e7e758bd 100644
--- a/contrib/tools/python3/src/Lib/unittest/_log.py
+++ b/contrib/tools/python3/src/Lib/unittest/_log.py
@@ -1,69 +1,69 @@
-import logging
-import collections
-
-from .case import _BaseTestCaseContext
-
-
-_LoggingWatcher = collections.namedtuple("_LoggingWatcher",
- ["records", "output"])
-
-class _CapturingHandler(logging.Handler):
- """
- A logging handler capturing all (raw and formatted) logging output.
- """
-
- def __init__(self):
- logging.Handler.__init__(self)
- self.watcher = _LoggingWatcher([], [])
-
- def flush(self):
- pass
-
- def emit(self, record):
- self.watcher.records.append(record)
- msg = self.format(record)
- self.watcher.output.append(msg)
-
-
-class _AssertLogsContext(_BaseTestCaseContext):
- """A context manager used to implement TestCase.assertLogs()."""
-
- LOGGING_FORMAT = "%(levelname)s:%(name)s:%(message)s"
-
- def __init__(self, test_case, logger_name, level):
- _BaseTestCaseContext.__init__(self, test_case)
- self.logger_name = logger_name
- if level:
- self.level = logging._nameToLevel.get(level, level)
- else:
- self.level = logging.INFO
- self.msg = None
-
- def __enter__(self):
- if isinstance(self.logger_name, logging.Logger):
- logger = self.logger = self.logger_name
- else:
- logger = self.logger = logging.getLogger(self.logger_name)
- formatter = logging.Formatter(self.LOGGING_FORMAT)
- handler = _CapturingHandler()
- handler.setFormatter(formatter)
- self.watcher = handler.watcher
- self.old_handlers = logger.handlers[:]
- self.old_level = logger.level
- self.old_propagate = logger.propagate
- logger.handlers = [handler]
- logger.setLevel(self.level)
- logger.propagate = False
- return handler.watcher
-
- def __exit__(self, exc_type, exc_value, tb):
- self.logger.handlers = self.old_handlers
- self.logger.propagate = self.old_propagate
- self.logger.setLevel(self.old_level)
- if exc_type is not None:
- # let unexpected exceptions pass through
- return False
- if len(self.watcher.records) == 0:
- self._raiseFailure(
- "no logs of level {} or higher triggered on {}"
- .format(logging.getLevelName(self.level), self.logger.name))
+import logging
+import collections
+
+from .case import _BaseTestCaseContext
+
+
+_LoggingWatcher = collections.namedtuple("_LoggingWatcher",
+ ["records", "output"])
+
+class _CapturingHandler(logging.Handler):
+ """
+ A logging handler capturing all (raw and formatted) logging output.
+ """
+
+ def __init__(self):
+ logging.Handler.__init__(self)
+ self.watcher = _LoggingWatcher([], [])
+
+ def flush(self):
+ pass
+
+ def emit(self, record):
+ self.watcher.records.append(record)
+ msg = self.format(record)
+ self.watcher.output.append(msg)
+
+
+class _AssertLogsContext(_BaseTestCaseContext):
+ """A context manager used to implement TestCase.assertLogs()."""
+
+ LOGGING_FORMAT = "%(levelname)s:%(name)s:%(message)s"
+
+ def __init__(self, test_case, logger_name, level):
+ _BaseTestCaseContext.__init__(self, test_case)
+ self.logger_name = logger_name
+ if level:
+ self.level = logging._nameToLevel.get(level, level)
+ else:
+ self.level = logging.INFO
+ self.msg = None
+
+ def __enter__(self):
+ if isinstance(self.logger_name, logging.Logger):
+ logger = self.logger = self.logger_name
+ else:
+ logger = self.logger = logging.getLogger(self.logger_name)
+ formatter = logging.Formatter(self.LOGGING_FORMAT)
+ handler = _CapturingHandler()
+ handler.setFormatter(formatter)
+ self.watcher = handler.watcher
+ self.old_handlers = logger.handlers[:]
+ self.old_level = logger.level
+ self.old_propagate = logger.propagate
+ logger.handlers = [handler]
+ logger.setLevel(self.level)
+ logger.propagate = False
+ return handler.watcher
+
+ def __exit__(self, exc_type, exc_value, tb):
+ self.logger.handlers = self.old_handlers
+ self.logger.propagate = self.old_propagate
+ self.logger.setLevel(self.old_level)
+ if exc_type is not None:
+ # let unexpected exceptions pass through
+ return False
+ if len(self.watcher.records) == 0:
+ self._raiseFailure(
+ "no logs of level {} or higher triggered on {}"
+ .format(logging.getLevelName(self.level), self.logger.name))
diff --git a/contrib/tools/python3/src/Lib/unittest/async_case.py b/contrib/tools/python3/src/Lib/unittest/async_case.py
index 65ca285d69..a2980e797a 100644
--- a/contrib/tools/python3/src/Lib/unittest/async_case.py
+++ b/contrib/tools/python3/src/Lib/unittest/async_case.py
@@ -1,168 +1,168 @@
-import asyncio
-import inspect
-
-from .case import TestCase
-
-
-class IsolatedAsyncioTestCase(TestCase):
- # Names intentionally have a long prefix
- # to reduce a chance of clashing with user-defined attributes
- # from inherited test case
- #
- # The class doesn't call loop.run_until_complete(self.setUp()) and family
- # but uses a different approach:
- # 1. create a long-running task that reads self.setUp()
- # awaitable from queue along with a future
- # 2. await the awaitable object passing in and set the result
- # into the future object
- # 3. Outer code puts the awaitable and the future object into a queue
- # with waiting for the future
- # The trick is necessary because every run_until_complete() call
- # creates a new task with embedded ContextVar context.
- # To share contextvars between setUp(), test and tearDown() we need to execute
- # them inside the same task.
-
- # Note: the test case modifies event loop policy if the policy was not instantiated
- # yet.
- # asyncio.get_event_loop_policy() creates a default policy on demand but never
- # returns None
- # I believe this is not an issue in user level tests but python itself for testing
- # should reset a policy in every test module
- # by calling asyncio.set_event_loop_policy(None) in tearDownModule()
-
- def __init__(self, methodName='runTest'):
- super().__init__(methodName)
- self._asyncioTestLoop = None
- self._asyncioCallsQueue = None
-
- async def asyncSetUp(self):
- pass
-
- async def asyncTearDown(self):
- pass
-
- def addAsyncCleanup(self, func, /, *args, **kwargs):
- # A trivial trampoline to addCleanup()
- # the function exists because it has a different semantics
- # and signature:
- # addCleanup() accepts regular functions
- # but addAsyncCleanup() accepts coroutines
- #
- # We intentionally don't add inspect.iscoroutinefunction() check
- # for func argument because there is no way
- # to check for async function reliably:
- # 1. It can be "async def func()" itself
- # 2. Class can implement "async def __call__()" method
- # 3. Regular "def func()" that returns awaitable object
- self.addCleanup(*(func, *args), **kwargs)
-
- def _callSetUp(self):
- self.setUp()
- self._callAsync(self.asyncSetUp)
-
- def _callTestMethod(self, method):
- self._callMaybeAsync(method)
-
- def _callTearDown(self):
- self._callAsync(self.asyncTearDown)
- self.tearDown()
-
- def _callCleanup(self, function, *args, **kwargs):
- self._callMaybeAsync(function, *args, **kwargs)
-
- def _callAsync(self, func, /, *args, **kwargs):
- assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
- ret = func(*args, **kwargs)
- assert inspect.isawaitable(ret), f'{func!r} returned non-awaitable'
- fut = self._asyncioTestLoop.create_future()
- self._asyncioCallsQueue.put_nowait((fut, ret))
- return self._asyncioTestLoop.run_until_complete(fut)
-
- def _callMaybeAsync(self, func, /, *args, **kwargs):
- assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
- ret = func(*args, **kwargs)
- if inspect.isawaitable(ret):
- fut = self._asyncioTestLoop.create_future()
- self._asyncioCallsQueue.put_nowait((fut, ret))
- return self._asyncioTestLoop.run_until_complete(fut)
- else:
- return ret
-
- async def _asyncioLoopRunner(self, fut):
- self._asyncioCallsQueue = queue = asyncio.Queue()
- fut.set_result(None)
- while True:
- query = await queue.get()
- queue.task_done()
- if query is None:
- return
- fut, awaitable = query
- try:
- ret = await awaitable
- if not fut.cancelled():
- fut.set_result(ret)
- except (SystemExit, KeyboardInterrupt):
- raise
- except (BaseException, asyncio.CancelledError) as ex:
- if not fut.cancelled():
- fut.set_exception(ex)
-
- def _setupAsyncioLoop(self):
- assert self._asyncioTestLoop is None, 'asyncio test loop already initialized'
- loop = asyncio.new_event_loop()
- asyncio.set_event_loop(loop)
- loop.set_debug(True)
- self._asyncioTestLoop = loop
- fut = loop.create_future()
- self._asyncioCallsTask = loop.create_task(self._asyncioLoopRunner(fut))
- loop.run_until_complete(fut)
-
- def _tearDownAsyncioLoop(self):
- assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
- loop = self._asyncioTestLoop
- self._asyncioTestLoop = None
- self._asyncioCallsQueue.put_nowait(None)
- loop.run_until_complete(self._asyncioCallsQueue.join())
-
- try:
- # cancel all tasks
- to_cancel = asyncio.all_tasks(loop)
- if not to_cancel:
- return
-
- for task in to_cancel:
- task.cancel()
-
- loop.run_until_complete(
- asyncio.gather(*to_cancel, loop=loop, return_exceptions=True))
-
- for task in to_cancel:
- if task.cancelled():
- continue
- if task.exception() is not None:
- loop.call_exception_handler({
- 'message': 'unhandled exception during test shutdown',
- 'exception': task.exception(),
- 'task': task,
- })
- # shutdown asyncgens
- loop.run_until_complete(loop.shutdown_asyncgens())
- finally:
- asyncio.set_event_loop(None)
- loop.close()
-
- def run(self, result=None):
- self._setupAsyncioLoop()
- try:
- return super().run(result)
- finally:
- self._tearDownAsyncioLoop()
-
- def debug(self):
- self._setupAsyncioLoop()
- super().debug()
- self._tearDownAsyncioLoop()
-
- def __del__(self):
- if self._asyncioTestLoop is not None:
- self._tearDownAsyncioLoop()
+import asyncio
+import inspect
+
+from .case import TestCase
+
+
+class IsolatedAsyncioTestCase(TestCase):
+ # Names intentionally have a long prefix
+ # to reduce a chance of clashing with user-defined attributes
+ # from inherited test case
+ #
+ # The class doesn't call loop.run_until_complete(self.setUp()) and family
+ # but uses a different approach:
+ # 1. create a long-running task that reads self.setUp()
+ # awaitable from queue along with a future
+ # 2. await the awaitable object passing in and set the result
+ # into the future object
+ # 3. Outer code puts the awaitable and the future object into a queue
+ # with waiting for the future
+ # The trick is necessary because every run_until_complete() call
+ # creates a new task with embedded ContextVar context.
+ # To share contextvars between setUp(), test and tearDown() we need to execute
+ # them inside the same task.
+
+ # Note: the test case modifies event loop policy if the policy was not instantiated
+ # yet.
+ # asyncio.get_event_loop_policy() creates a default policy on demand but never
+ # returns None
+ # I believe this is not an issue in user level tests but python itself for testing
+ # should reset a policy in every test module
+ # by calling asyncio.set_event_loop_policy(None) in tearDownModule()
+
+ def __init__(self, methodName='runTest'):
+ super().__init__(methodName)
+ self._asyncioTestLoop = None
+ self._asyncioCallsQueue = None
+
+ async def asyncSetUp(self):
+ pass
+
+ async def asyncTearDown(self):
+ pass
+
+ def addAsyncCleanup(self, func, /, *args, **kwargs):
+ # A trivial trampoline to addCleanup()
+ # the function exists because it has a different semantics
+ # and signature:
+ # addCleanup() accepts regular functions
+ # but addAsyncCleanup() accepts coroutines
+ #
+ # We intentionally don't add inspect.iscoroutinefunction() check
+ # for func argument because there is no way
+ # to check for async function reliably:
+ # 1. It can be "async def func()" itself
+ # 2. Class can implement "async def __call__()" method
+ # 3. Regular "def func()" that returns awaitable object
+ self.addCleanup(*(func, *args), **kwargs)
+
+ def _callSetUp(self):
+ self.setUp()
+ self._callAsync(self.asyncSetUp)
+
+ def _callTestMethod(self, method):
+ self._callMaybeAsync(method)
+
+ def _callTearDown(self):
+ self._callAsync(self.asyncTearDown)
+ self.tearDown()
+
+ def _callCleanup(self, function, *args, **kwargs):
+ self._callMaybeAsync(function, *args, **kwargs)
+
+ def _callAsync(self, func, /, *args, **kwargs):
+ assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
+ ret = func(*args, **kwargs)
+ assert inspect.isawaitable(ret), f'{func!r} returned non-awaitable'
+ fut = self._asyncioTestLoop.create_future()
+ self._asyncioCallsQueue.put_nowait((fut, ret))
+ return self._asyncioTestLoop.run_until_complete(fut)
+
+ def _callMaybeAsync(self, func, /, *args, **kwargs):
+ assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
+ ret = func(*args, **kwargs)
+ if inspect.isawaitable(ret):
+ fut = self._asyncioTestLoop.create_future()
+ self._asyncioCallsQueue.put_nowait((fut, ret))
+ return self._asyncioTestLoop.run_until_complete(fut)
+ else:
+ return ret
+
+ async def _asyncioLoopRunner(self, fut):
+ self._asyncioCallsQueue = queue = asyncio.Queue()
+ fut.set_result(None)
+ while True:
+ query = await queue.get()
+ queue.task_done()
+ if query is None:
+ return
+ fut, awaitable = query
+ try:
+ ret = await awaitable
+ if not fut.cancelled():
+ fut.set_result(ret)
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except (BaseException, asyncio.CancelledError) as ex:
+ if not fut.cancelled():
+ fut.set_exception(ex)
+
+ def _setupAsyncioLoop(self):
+ assert self._asyncioTestLoop is None, 'asyncio test loop already initialized'
+ loop = asyncio.new_event_loop()
+ asyncio.set_event_loop(loop)
+ loop.set_debug(True)
+ self._asyncioTestLoop = loop
+ fut = loop.create_future()
+ self._asyncioCallsTask = loop.create_task(self._asyncioLoopRunner(fut))
+ loop.run_until_complete(fut)
+
+ def _tearDownAsyncioLoop(self):
+ assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
+ loop = self._asyncioTestLoop
+ self._asyncioTestLoop = None
+ self._asyncioCallsQueue.put_nowait(None)
+ loop.run_until_complete(self._asyncioCallsQueue.join())
+
+ try:
+ # cancel all tasks
+ to_cancel = asyncio.all_tasks(loop)
+ if not to_cancel:
+ return
+
+ for task in to_cancel:
+ task.cancel()
+
+ loop.run_until_complete(
+ asyncio.gather(*to_cancel, loop=loop, return_exceptions=True))
+
+ for task in to_cancel:
+ if task.cancelled():
+ continue
+ if task.exception() is not None:
+ loop.call_exception_handler({
+ 'message': 'unhandled exception during test shutdown',
+ 'exception': task.exception(),
+ 'task': task,
+ })
+ # shutdown asyncgens
+ loop.run_until_complete(loop.shutdown_asyncgens())
+ finally:
+ asyncio.set_event_loop(None)
+ loop.close()
+
+ def run(self, result=None):
+ self._setupAsyncioLoop()
+ try:
+ return super().run(result)
+ finally:
+ self._tearDownAsyncioLoop()
+
+ def debug(self):
+ self._setupAsyncioLoop()
+ super().debug()
+ self._tearDownAsyncioLoop()
+
+ def __del__(self):
+ if self._asyncioTestLoop is not None:
+ self._tearDownAsyncioLoop()
diff --git a/contrib/tools/python3/src/Lib/unittest/case.py b/contrib/tools/python3/src/Lib/unittest/case.py
index 157325c822..88f1a40865 100644
--- a/contrib/tools/python3/src/Lib/unittest/case.py
+++ b/contrib/tools/python3/src/Lib/unittest/case.py
@@ -9,7 +9,7 @@ import warnings
import collections
import contextlib
import traceback
-import types
+import types
from . import result
from .util import (strclass, safe_repr, _count_diff_all_purpose,
@@ -84,30 +84,30 @@ class _Outcome(object):
def _id(obj):
return obj
-
-_module_cleanups = []
-def addModuleCleanup(function, /, *args, **kwargs):
- """Same as addCleanup, except the cleanup items are called even if
- setUpModule fails (unlike tearDownModule)."""
- _module_cleanups.append((function, args, kwargs))
-
-
-def doModuleCleanups():
- """Execute all module cleanup functions. Normally called for you after
- tearDownModule."""
- exceptions = []
- while _module_cleanups:
- function, args, kwargs = _module_cleanups.pop()
- try:
- function(*args, **kwargs)
- except Exception as exc:
- exceptions.append(exc)
- if exceptions:
- # Swallows all but first exception. If a multi-exception handler
- # gets written we should use that here instead.
- raise exceptions[0]
-
-
+
+_module_cleanups = []
+def addModuleCleanup(function, /, *args, **kwargs):
+ """Same as addCleanup, except the cleanup items are called even if
+ setUpModule fails (unlike tearDownModule)."""
+ _module_cleanups.append((function, args, kwargs))
+
+
+def doModuleCleanups():
+ """Execute all module cleanup functions. Normally called for you after
+ tearDownModule."""
+ exceptions = []
+ while _module_cleanups:
+ function, args, kwargs = _module_cleanups.pop()
+ try:
+ function(*args, **kwargs)
+ except Exception as exc:
+ exceptions.append(exc)
+ if exceptions:
+ # Swallows all but first exception. If a multi-exception handler
+ # gets written we should use that here instead.
+ raise exceptions[0]
+
+
def skip(reason):
"""
Unconditionally skip a test.
@@ -122,10 +122,10 @@ def skip(reason):
test_item.__unittest_skip__ = True
test_item.__unittest_skip_why__ = reason
return test_item
- if isinstance(reason, types.FunctionType):
- test_item = reason
- reason = ''
- return decorator(test_item)
+ if isinstance(reason, types.FunctionType):
+ test_item = reason
+ reason = ''
+ return decorator(test_item)
return decorator
def skipIf(condition, reason):
@@ -188,8 +188,8 @@ class _AssertRaisesBaseContext(_BaseTestCaseContext):
if not args:
self.msg = kwargs.pop('msg', None)
if kwargs:
- raise TypeError('%r is an invalid keyword argument for '
- 'this function' % (next(iter(kwargs)),))
+ raise TypeError('%r is an invalid keyword argument for '
+ 'this function' % (next(iter(kwargs)),))
return self
callable_obj, *args = args
@@ -240,9 +240,9 @@ class _AssertRaisesContext(_AssertRaisesBaseContext):
expected_regex.pattern, str(exc_value)))
return True
- __class_getitem__ = classmethod(types.GenericAlias)
+ __class_getitem__ = classmethod(types.GenericAlias)
+
-
class _AssertWarnsContext(_AssertRaisesBaseContext):
"""A context manager used to implement TestCase.assertWarns* methods."""
@@ -252,7 +252,7 @@ class _AssertWarnsContext(_AssertRaisesBaseContext):
def __enter__(self):
# The __warningregistry__'s need to be in a pristine state for tests
# to work properly.
- for v in list(sys.modules.values()):
+ for v in list(sys.modules.values()):
if getattr(v, '__warningregistry__', None):
v.__warningregistry__ = {}
self.warnings_manager = warnings.catch_warnings(record=True)
@@ -353,8 +353,8 @@ class TestCase(object):
_classSetupFailed = False
- _class_cleanups = []
-
+ _class_cleanups = []
+
def __init__(self, methodName='runTest'):
"""Create an instance of the class that will use the named test
method when executed. Raises a ValueError if the instance does
@@ -402,7 +402,7 @@ class TestCase(object):
"""
self._type_equality_funcs[typeobj] = function
- def addCleanup(self, function, /, *args, **kwargs):
+ def addCleanup(self, function, /, *args, **kwargs):
"""Add a function, with arguments, to be called when the test is
completed. Functions added are called on a LIFO basis and are
called after tearDown on test failure or success.
@@ -410,12 +410,12 @@ class TestCase(object):
Cleanup items are called even if setUp fails (unlike tearDown)."""
self._cleanups.append((function, args, kwargs))
- @classmethod
- def addClassCleanup(cls, function, /, *args, **kwargs):
- """Same as addCleanup, except the cleanup items are called even if
- setUpClass fails (unlike tearDownClass)."""
- cls._class_cleanups.append((function, args, kwargs))
-
+ @classmethod
+ def addClassCleanup(cls, function, /, *args, **kwargs):
+ """Same as addCleanup, except the cleanup items are called even if
+ setUpClass fails (unlike tearDownClass)."""
+ cls._class_cleanups.append((function, args, kwargs))
+
def setUp(self):
"Hook method for setting up the test fixture before exercising it."
pass
@@ -446,7 +446,7 @@ class TestCase(object):
the specified test method's docstring.
"""
doc = self._testMethodDoc
- return doc.strip().split("\n")[0].strip() if doc else None
+ return doc.strip().split("\n")[0].strip() if doc else None
def id(self):
@@ -543,84 +543,84 @@ class TestCase(object):
else:
addUnexpectedSuccess(self)
- def _callSetUp(self):
- self.setUp()
-
- def _callTestMethod(self, method):
- method()
-
- def _callTearDown(self):
- self.tearDown()
-
- def _callCleanup(self, function, /, *args, **kwargs):
- function(*args, **kwargs)
-
+ def _callSetUp(self):
+ self.setUp()
+
+ def _callTestMethod(self, method):
+ method()
+
+ def _callTearDown(self):
+ self.tearDown()
+
+ def _callCleanup(self, function, /, *args, **kwargs):
+ function(*args, **kwargs)
+
def run(self, result=None):
if result is None:
result = self.defaultTestResult()
startTestRun = getattr(result, 'startTestRun', None)
- stopTestRun = getattr(result, 'stopTestRun', None)
+ stopTestRun = getattr(result, 'stopTestRun', None)
if startTestRun is not None:
startTestRun()
- else:
- stopTestRun = None
+ else:
+ stopTestRun = None
result.startTest(self)
- try:
- testMethod = getattr(self, self._testMethodName)
- if (getattr(self.__class__, "__unittest_skip__", False) or
- getattr(testMethod, "__unittest_skip__", False)):
- # If the class or method was skipped.
+ try:
+ testMethod = getattr(self, self._testMethodName)
+ if (getattr(self.__class__, "__unittest_skip__", False) or
+ getattr(testMethod, "__unittest_skip__", False)):
+ # If the class or method was skipped.
skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
or getattr(testMethod, '__unittest_skip_why__', ''))
self._addSkip(result, self, skip_why)
- return result
-
- expecting_failure = (
- getattr(self, "__unittest_expecting_failure__", False) or
- getattr(testMethod, "__unittest_expecting_failure__", False)
- )
- outcome = _Outcome(result)
- try:
- self._outcome = outcome
-
+ return result
+
+ expecting_failure = (
+ getattr(self, "__unittest_expecting_failure__", False) or
+ getattr(testMethod, "__unittest_expecting_failure__", False)
+ )
+ outcome = _Outcome(result)
+ try:
+ self._outcome = outcome
+
with outcome.testPartExecutor(self):
- self._callSetUp()
- if outcome.success:
- outcome.expecting_failure = expecting_failure
- with outcome.testPartExecutor(self, isTest=True):
- self._callTestMethod(testMethod)
- outcome.expecting_failure = False
- with outcome.testPartExecutor(self):
- self._callTearDown()
-
- self.doCleanups()
- for test, reason in outcome.skipped:
- self._addSkip(result, test, reason)
- self._feedErrorsToResult(result, outcome.errors)
- if outcome.success:
- if expecting_failure:
- if outcome.expectedFailure:
- self._addExpectedFailure(result, outcome.expectedFailure)
- else:
- self._addUnexpectedSuccess(result)
+ self._callSetUp()
+ if outcome.success:
+ outcome.expecting_failure = expecting_failure
+ with outcome.testPartExecutor(self, isTest=True):
+ self._callTestMethod(testMethod)
+ outcome.expecting_failure = False
+ with outcome.testPartExecutor(self):
+ self._callTearDown()
+
+ self.doCleanups()
+ for test, reason in outcome.skipped:
+ self._addSkip(result, test, reason)
+ self._feedErrorsToResult(result, outcome.errors)
+ if outcome.success:
+ if expecting_failure:
+ if outcome.expectedFailure:
+ self._addExpectedFailure(result, outcome.expectedFailure)
+ else:
+ self._addUnexpectedSuccess(result)
else:
- result.addSuccess(self)
- return result
- finally:
- # explicitly break reference cycles:
- # outcome.errors -> frame -> outcome -> outcome.errors
- # outcome.expectedFailure -> frame -> outcome -> outcome.expectedFailure
- outcome.errors.clear()
- outcome.expectedFailure = None
-
- # clear the outcome, no more needed
- self._outcome = None
-
+ result.addSuccess(self)
+ return result
+ finally:
+ # explicitly break reference cycles:
+ # outcome.errors -> frame -> outcome -> outcome.errors
+ # outcome.expectedFailure -> frame -> outcome -> outcome.expectedFailure
+ outcome.errors.clear()
+ outcome.expectedFailure = None
+
+ # clear the outcome, no more needed
+ self._outcome = None
+
finally:
result.stopTest(self)
- if stopTestRun is not None:
- stopTestRun()
+ if stopTestRun is not None:
+ stopTestRun()
def doCleanups(self):
"""Execute all cleanup functions. Normally called for you after
@@ -629,43 +629,43 @@ class TestCase(object):
while self._cleanups:
function, args, kwargs = self._cleanups.pop()
with outcome.testPartExecutor(self):
- self._callCleanup(function, *args, **kwargs)
+ self._callCleanup(function, *args, **kwargs)
# return this for backwards compatibility
- # even though we no longer use it internally
+ # even though we no longer use it internally
return outcome.success
- @classmethod
- def doClassCleanups(cls):
- """Execute all class cleanup functions. Normally called for you after
- tearDownClass."""
- cls.tearDown_exceptions = []
- while cls._class_cleanups:
- function, args, kwargs = cls._class_cleanups.pop()
- try:
- function(*args, **kwargs)
- except Exception:
- cls.tearDown_exceptions.append(sys.exc_info())
-
+ @classmethod
+ def doClassCleanups(cls):
+ """Execute all class cleanup functions. Normally called for you after
+ tearDownClass."""
+ cls.tearDown_exceptions = []
+ while cls._class_cleanups:
+ function, args, kwargs = cls._class_cleanups.pop()
+ try:
+ function(*args, **kwargs)
+ except Exception:
+ cls.tearDown_exceptions.append(sys.exc_info())
+
def __call__(self, *args, **kwds):
return self.run(*args, **kwds)
def debug(self):
"""Run the test without collecting errors in a TestResult"""
- testMethod = getattr(self, self._testMethodName)
- if (getattr(self.__class__, "__unittest_skip__", False) or
- getattr(testMethod, "__unittest_skip__", False)):
- # If the class or method was skipped.
- skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
- or getattr(testMethod, '__unittest_skip_why__', ''))
- raise SkipTest(skip_why)
-
- self._callSetUp()
- self._callTestMethod(testMethod)
- self._callTearDown()
+ testMethod = getattr(self, self._testMethodName)
+ if (getattr(self.__class__, "__unittest_skip__", False) or
+ getattr(testMethod, "__unittest_skip__", False)):
+ # If the class or method was skipped.
+ skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
+ or getattr(testMethod, '__unittest_skip_why__', ''))
+ raise SkipTest(skip_why)
+
+ self._callSetUp()
+ self._callTestMethod(testMethod)
+ self._callTearDown()
while self._cleanups:
- function, args, kwargs = self._cleanups.pop()
- self._callCleanup(function, *args, **kwargs)
+ function, args, kwargs = self._cleanups.pop()
+ self._callCleanup(function, *args, **kwargs)
def skipTest(self, reason):
"""Skip this test."""
@@ -792,8 +792,8 @@ class TestCase(object):
self.assertEqual(cm.output, ['INFO:foo:first message',
'ERROR:foo.bar:second message'])
"""
- # Lazy import to avoid importing logging if it is not needed.
- from ._log import _AssertLogsContext
+ # Lazy import to avoid importing logging if it is not needed.
+ from ._log import _AssertLogsContext
return _AssertLogsContext(self, logger, level)
def _getAssertEqualityFunc(self, first, second):
@@ -1165,8 +1165,8 @@ class TestCase(object):
def assertCountEqual(self, first, second, msg=None):
- """Asserts that two iterables have the same elements, the same number of
- times, without regard to order.
+ """Asserts that two iterables have the same elements, the same number of
+ times, without regard to order.
self.assertEqual(Counter(list(first)),
Counter(list(second)))
diff --git a/contrib/tools/python3/src/Lib/unittest/mock.py b/contrib/tools/python3/src/Lib/unittest/mock.py
index 5c6141571e..5c78274d09 100644
--- a/contrib/tools/python3/src/Lib/unittest/mock.py
+++ b/contrib/tools/python3/src/Lib/unittest/mock.py
@@ -13,7 +13,7 @@ __all__ = (
'ANY',
'call',
'create_autospec',
- 'AsyncMock',
+ 'AsyncMock',
'FILTER_DIR',
'NonCallableMock',
'NonCallableMagicMock',
@@ -23,16 +23,16 @@ __all__ = (
)
-import asyncio
-import contextlib
-import io
+import asyncio
+import contextlib
+import io
import inspect
import pprint
import sys
import builtins
-from asyncio import iscoroutinefunction
-from types import CodeType, ModuleType, MethodType
-from unittest.util import safe_repr
+from asyncio import iscoroutinefunction
+from types import CodeType, ModuleType, MethodType
+from unittest.util import safe_repr
from functools import wraps, partial
@@ -44,21 +44,21 @@ FILTER_DIR = True
# Without this, the __class__ properties wouldn't be set correctly
_safe_super = super
-def _is_async_obj(obj):
- if _is_instance_mock(obj) and not isinstance(obj, AsyncMock):
- return False
- if hasattr(obj, '__func__'):
- obj = getattr(obj, '__func__')
- return iscoroutinefunction(obj) or inspect.isawaitable(obj)
-
-
-def _is_async_func(func):
- if getattr(func, '__code__', None):
- return iscoroutinefunction(func)
- else:
- return False
-
-
+def _is_async_obj(obj):
+ if _is_instance_mock(obj) and not isinstance(obj, AsyncMock):
+ return False
+ if hasattr(obj, '__func__'):
+ obj = getattr(obj, '__func__')
+ return iscoroutinefunction(obj) or inspect.isawaitable(obj)
+
+
+def _is_async_func(func):
+ if getattr(func, '__code__', None):
+ return iscoroutinefunction(func)
+ else:
+ return False
+
+
def _is_instance_mock(obj):
# can't use isinstance on Mock objects because they override __class__
# The base class for all mocks is NonCallableMock
@@ -67,20 +67,20 @@ def _is_instance_mock(obj):
def _is_exception(obj):
return (
- isinstance(obj, BaseException) or
- isinstance(obj, type) and issubclass(obj, BaseException)
+ isinstance(obj, BaseException) or
+ isinstance(obj, type) and issubclass(obj, BaseException)
)
-def _extract_mock(obj):
- # Autospecced functions will return a FunctionType with "mock" attribute
- # which is the actual mock object that needs to be used.
- if isinstance(obj, FunctionTypes) and hasattr(obj, 'mock'):
- return obj.mock
- else:
- return obj
-
-
+def _extract_mock(obj):
+ # Autospecced functions will return a FunctionType with "mock" attribute
+ # which is the actual mock object that needs to be used.
+ if isinstance(obj, FunctionTypes) and hasattr(obj, 'mock'):
+ return obj.mock
+ else:
+ return obj
+
+
def _get_signature_object(func, as_instance, eat_self):
"""
Given an arbitrary, possibly callable object, try to create a suitable
@@ -89,7 +89,7 @@ def _get_signature_object(func, as_instance, eat_self):
"""
if isinstance(func, type) and not as_instance:
# If it's a type and should be modelled as a type, use __init__.
- func = func.__init__
+ func = func.__init__
# Skip the `self` argument in __init__
eat_self = True
elif not isinstance(func, FunctionTypes):
@@ -115,7 +115,7 @@ def _check_signature(func, mock, skipfirst, instance=False):
if sig is None:
return
func, sig = sig
- def checksig(self, /, *args, **kwargs):
+ def checksig(self, /, *args, **kwargs):
sig.bind(*args, **kwargs)
_copy_func_details(func, checksig)
type(mock)._mock_check_sig = checksig
@@ -138,8 +138,8 @@ def _copy_func_details(func, funcopy):
def _callable(obj):
if isinstance(obj, type):
return True
- if isinstance(obj, (staticmethod, classmethod, MethodType)):
- return _callable(obj.__func__)
+ if isinstance(obj, (staticmethod, classmethod, MethodType)):
+ return _callable(obj.__func__)
if getattr(obj, '__call__', None) is not None:
return True
return False
@@ -242,33 +242,33 @@ def _setup_func(funcopy, mock, sig):
mock._mock_delegate = funcopy
-def _setup_async_mock(mock):
- mock._is_coroutine = asyncio.coroutines._is_coroutine
- mock.await_count = 0
- mock.await_args = None
- mock.await_args_list = _CallList()
-
- # Mock is not configured yet so the attributes are set
- # to a function and then the corresponding mock helper function
- # is called when the helper is accessed similar to _setup_func.
- def wrapper(attr, /, *args, **kwargs):
- return getattr(mock.mock, attr)(*args, **kwargs)
-
- for attribute in ('assert_awaited',
- 'assert_awaited_once',
- 'assert_awaited_with',
- 'assert_awaited_once_with',
- 'assert_any_await',
- 'assert_has_awaits',
- 'assert_not_awaited'):
-
- # setattr(mock, attribute, wrapper) causes late binding
- # hence attribute will always be the last value in the loop
- # Use partial(wrapper, attribute) to ensure the attribute is bound
- # correctly.
- setattr(mock, attribute, partial(wrapper, attribute))
-
-
+def _setup_async_mock(mock):
+ mock._is_coroutine = asyncio.coroutines._is_coroutine
+ mock.await_count = 0
+ mock.await_args = None
+ mock.await_args_list = _CallList()
+
+ # Mock is not configured yet so the attributes are set
+ # to a function and then the corresponding mock helper function
+ # is called when the helper is accessed similar to _setup_func.
+ def wrapper(attr, /, *args, **kwargs):
+ return getattr(mock.mock, attr)(*args, **kwargs)
+
+ for attribute in ('assert_awaited',
+ 'assert_awaited_once',
+ 'assert_awaited_with',
+ 'assert_awaited_once_with',
+ 'assert_any_await',
+ 'assert_has_awaits',
+ 'assert_not_awaited'):
+
+ # setattr(mock, attribute, wrapper) causes late binding
+ # hence attribute will always be the last value in the loop
+ # Use partial(wrapper, attribute) to ensure the attribute is bound
+ # correctly.
+ setattr(mock, attribute, partial(wrapper, attribute))
+
+
def _is_magic(name):
return '__%s__' % name[2:-2] == name
@@ -354,7 +354,7 @@ class _CallList(list):
def _check_and_set_parent(parent, value, name, new_name):
- value = _extract_mock(value)
+ value = _extract_mock(value)
if not _is_instance_mock(value):
return False
@@ -389,7 +389,7 @@ class _MockIter(object):
class Base(object):
_mock_return_value = DEFAULT
_mock_side_effect = None
- def __init__(self, /, *args, **kwargs):
+ def __init__(self, /, *args, **kwargs):
pass
@@ -397,19 +397,19 @@ class Base(object):
class NonCallableMock(Base):
"""A non-callable version of `Mock`"""
- def __new__(cls, /, *args, **kw):
+ def __new__(cls, /, *args, **kw):
# every instance has its own class
# so we can create magic methods on the
# class without stomping on other mocks
- bases = (cls,)
- if not issubclass(cls, AsyncMockMixin):
- # Check if spec is an async object or function
- bound_args = _MOCK_SIG.bind_partial(cls, *args, **kw).arguments
- spec_arg = bound_args.get('spec_set', bound_args.get('spec'))
- if spec_arg is not None and _is_async_obj(spec_arg):
- bases = (AsyncMockMixin, cls)
- new = type(cls.__name__, bases, {'__doc__': cls.__doc__})
- instance = _safe_super(NonCallableMock, cls).__new__(new)
+ bases = (cls,)
+ if not issubclass(cls, AsyncMockMixin):
+ # Check if spec is an async object or function
+ bound_args = _MOCK_SIG.bind_partial(cls, *args, **kw).arguments
+ spec_arg = bound_args.get('spec_set', bound_args.get('spec'))
+ if spec_arg is not None and _is_async_obj(spec_arg):
+ bases = (AsyncMockMixin, cls)
+ new = type(cls.__name__, bases, {'__doc__': cls.__doc__})
+ instance = _safe_super(NonCallableMock, cls).__new__(new)
return instance
@@ -463,13 +463,13 @@ class NonCallableMock(Base):
Attach a mock as an attribute of this one, replacing its name and
parent. Calls to the attached mock will be recorded in the
`method_calls` and `mock_calls` attributes of this one."""
- inner_mock = _extract_mock(mock)
+ inner_mock = _extract_mock(mock)
+
+ inner_mock._mock_parent = None
+ inner_mock._mock_new_parent = None
+ inner_mock._mock_name = ''
+ inner_mock._mock_new_name = None
- inner_mock._mock_parent = None
- inner_mock._mock_new_parent = None
- inner_mock._mock_name = ''
- inner_mock._mock_new_name = None
-
setattr(self, attribute, mock)
@@ -486,17 +486,17 @@ class NonCallableMock(Base):
_eat_self=False):
_spec_class = None
_spec_signature = None
- _spec_asyncs = []
+ _spec_asyncs = []
+
+ for attr in dir(spec):
+ if iscoroutinefunction(getattr(spec, attr, None)):
+ _spec_asyncs.append(attr)
- for attr in dir(spec):
- if iscoroutinefunction(getattr(spec, attr, None)):
- _spec_asyncs.append(attr)
-
if spec is not None and not _is_list(spec):
if isinstance(spec, type):
_spec_class = spec
else:
- _spec_class = type(spec)
+ _spec_class = type(spec)
res = _get_signature_object(spec,
_spec_as_instance, _eat_self)
_spec_signature = res and res[1]
@@ -508,7 +508,7 @@ class NonCallableMock(Base):
__dict__['_spec_set'] = spec_set
__dict__['_spec_signature'] = _spec_signature
__dict__['_mock_methods'] = spec
- __dict__['_spec_asyncs'] = _spec_asyncs
+ __dict__['_spec_asyncs'] = _spec_asyncs
def __get_return_value(self):
ret = self._mock_return_value
@@ -593,14 +593,14 @@ class NonCallableMock(Base):
for child in self._mock_children.values():
if isinstance(child, _SpecState) or child is _deleted:
continue
- child.reset_mock(visited, return_value=return_value, side_effect=side_effect)
+ child.reset_mock(visited, return_value=return_value, side_effect=side_effect)
ret = self._mock_return_value
if _is_instance_mock(ret) and ret is not self:
ret.reset_mock(visited)
- def configure_mock(self, /, **kwargs):
+ def configure_mock(self, /, **kwargs):
"""Set attributes on the mock through keyword arguments.
Attributes plus return values and side effects can be set on child
@@ -632,8 +632,8 @@ class NonCallableMock(Base):
raise AttributeError(name)
if not self._mock_unsafe:
if name.startswith(('assert', 'assret')):
- raise AttributeError("Attributes cannot start with 'assert' "
- "or 'assret'")
+ raise AttributeError("Attributes cannot start with 'assert' "
+ "or 'assret'")
result = self._mock_children.get(name)
if result is _deleted:
@@ -669,7 +669,7 @@ class NonCallableMock(Base):
dot = '.'
if _name_list == ['()']:
dot = ''
-
+
while _parent is not None:
last = _parent
@@ -717,14 +717,14 @@ class NonCallableMock(Base):
extras = self._mock_methods or []
from_type = dir(type(self))
from_dict = list(self.__dict__)
- from_child_mocks = [
- m_name for m_name, m_value in self._mock_children.items()
- if m_value is not _deleted]
+ from_child_mocks = [
+ m_name for m_name, m_value in self._mock_children.items()
+ if m_value is not _deleted]
from_type = [e for e in from_type if not e.startswith('_')]
from_dict = [e for e in from_dict if not e.startswith('_') or
_is_magic(e)]
- return sorted(set(extras + from_type + from_dict + from_child_mocks))
+ return sorted(set(extras + from_type + from_dict + from_child_mocks))
def __setattr__(self, name, value):
@@ -776,7 +776,7 @@ class NonCallableMock(Base):
obj = self._mock_children.get(name, _missing)
if name in self.__dict__:
- _safe_super(NonCallableMock, self).__delattr__(name)
+ _safe_super(NonCallableMock, self).__delattr__(name)
elif obj is _deleted:
raise AttributeError(name)
if obj is not _missing:
@@ -789,47 +789,47 @@ class NonCallableMock(Base):
return _format_call_signature(name, args, kwargs)
- def _format_mock_failure_message(self, args, kwargs, action='call'):
- message = 'expected %s not found.\nExpected: %s\nActual: %s'
+ def _format_mock_failure_message(self, args, kwargs, action='call'):
+ message = 'expected %s not found.\nExpected: %s\nActual: %s'
expected_string = self._format_mock_call_signature(args, kwargs)
call_args = self.call_args
actual_string = self._format_mock_call_signature(*call_args)
- return message % (action, expected_string, actual_string)
-
-
- def _get_call_signature_from_name(self, name):
- """
- * If call objects are asserted against a method/function like obj.meth1
- then there could be no name for the call object to lookup. Hence just
- return the spec_signature of the method/function being asserted against.
- * If the name is not empty then remove () and split by '.' to get
- list of names to iterate through the children until a potential
- match is found. A child mock is created only during attribute access
- so if we get a _SpecState then no attributes of the spec were accessed
- and can be safely exited.
- """
- if not name:
- return self._spec_signature
-
- sig = None
- names = name.replace('()', '').split('.')
- children = self._mock_children
-
- for name in names:
- child = children.get(name)
- if child is None or isinstance(child, _SpecState):
- break
- else:
- # If an autospecced object is attached using attach_mock the
- # child would be a function with mock object as attribute from
- # which signature has to be derived.
- child = _extract_mock(child)
- children = child._mock_children
- sig = child._spec_signature
-
- return sig
-
-
+ return message % (action, expected_string, actual_string)
+
+
+ def _get_call_signature_from_name(self, name):
+ """
+ * If call objects are asserted against a method/function like obj.meth1
+ then there could be no name for the call object to lookup. Hence just
+ return the spec_signature of the method/function being asserted against.
+ * If the name is not empty then remove () and split by '.' to get
+ list of names to iterate through the children until a potential
+ match is found. A child mock is created only during attribute access
+ so if we get a _SpecState then no attributes of the spec were accessed
+ and can be safely exited.
+ """
+ if not name:
+ return self._spec_signature
+
+ sig = None
+ names = name.replace('()', '').split('.')
+ children = self._mock_children
+
+ for name in names:
+ child = children.get(name)
+ if child is None or isinstance(child, _SpecState):
+ break
+ else:
+ # If an autospecced object is attached using attach_mock the
+ # child would be a function with mock object as attribute from
+ # which signature has to be derived.
+ child = _extract_mock(child)
+ children = child._mock_children
+ sig = child._spec_signature
+
+ return sig
+
+
def _call_matcher(self, _call):
"""
Given a call (or simply an (args, kwargs) tuple), return a
@@ -837,12 +837,12 @@ class NonCallableMock(Base):
This is a best effort method which relies on the spec's signature,
if available, or falls back on the arguments themselves.
"""
-
- if isinstance(_call, tuple) and len(_call) > 2:
- sig = self._get_call_signature_from_name(_call[0])
- else:
- sig = self._spec_signature
-
+
+ if isinstance(_call, tuple) and len(_call) > 2:
+ sig = self._get_call_signature_from_name(_call[0])
+ else:
+ sig = self._spec_signature
+
if sig is not None:
if len(_call) == 2:
name = ''
@@ -850,71 +850,71 @@ class NonCallableMock(Base):
else:
name, args, kwargs = _call
try:
- bound_call = sig.bind(*args, **kwargs)
- return call(name, bound_call.args, bound_call.kwargs)
+ bound_call = sig.bind(*args, **kwargs)
+ return call(name, bound_call.args, bound_call.kwargs)
except TypeError as e:
return e.with_traceback(None)
else:
return _call
- def assert_not_called(self):
+ def assert_not_called(self):
"""assert that the mock was never called.
"""
if self.call_count != 0:
- msg = ("Expected '%s' to not have been called. Called %s times.%s"
- % (self._mock_name or 'mock',
- self.call_count,
- self._calls_repr()))
+ msg = ("Expected '%s' to not have been called. Called %s times.%s"
+ % (self._mock_name or 'mock',
+ self.call_count,
+ self._calls_repr()))
raise AssertionError(msg)
- def assert_called(self):
+ def assert_called(self):
"""assert that the mock was called at least once
"""
if self.call_count == 0:
msg = ("Expected '%s' to have been called." %
- (self._mock_name or 'mock'))
+ (self._mock_name or 'mock'))
raise AssertionError(msg)
- def assert_called_once(self):
+ def assert_called_once(self):
"""assert that the mock was called only once.
"""
if not self.call_count == 1:
- msg = ("Expected '%s' to have been called once. Called %s times.%s"
- % (self._mock_name or 'mock',
- self.call_count,
- self._calls_repr()))
+ msg = ("Expected '%s' to have been called once. Called %s times.%s"
+ % (self._mock_name or 'mock',
+ self.call_count,
+ self._calls_repr()))
raise AssertionError(msg)
- def assert_called_with(self, /, *args, **kwargs):
- """assert that the last call was made with the specified arguments.
+ def assert_called_with(self, /, *args, **kwargs):
+ """assert that the last call was made with the specified arguments.
Raises an AssertionError if the args and keyword args passed in are
different to the last call to the mock."""
if self.call_args is None:
expected = self._format_mock_call_signature(args, kwargs)
- actual = 'not called.'
- error_message = ('expected call not found.\nExpected: %s\nActual: %s'
- % (expected, actual))
- raise AssertionError(error_message)
+ actual = 'not called.'
+ error_message = ('expected call not found.\nExpected: %s\nActual: %s'
+ % (expected, actual))
+ raise AssertionError(error_message)
def _error_message():
msg = self._format_mock_failure_message(args, kwargs)
return msg
- expected = self._call_matcher(_Call((args, kwargs), two=True))
+ expected = self._call_matcher(_Call((args, kwargs), two=True))
actual = self._call_matcher(self.call_args)
- if actual != expected:
+ if actual != expected:
cause = expected if isinstance(expected, Exception) else None
raise AssertionError(_error_message()) from cause
- def assert_called_once_with(self, /, *args, **kwargs):
+ def assert_called_once_with(self, /, *args, **kwargs):
"""assert that the mock was called exactly once and that that call was
with the specified arguments."""
if not self.call_count == 1:
- msg = ("Expected '%s' to be called once. Called %s times.%s"
- % (self._mock_name or 'mock',
- self.call_count,
- self._calls_repr()))
+ msg = ("Expected '%s' to be called once. Called %s times.%s"
+ % (self._mock_name or 'mock',
+ self.call_count,
+ self._calls_repr()))
raise AssertionError(msg)
return self.assert_called_with(*args, **kwargs)
@@ -930,21 +930,21 @@ class NonCallableMock(Base):
If `any_order` is True then the calls can be in any order, but
they must all appear in `mock_calls`."""
expected = [self._call_matcher(c) for c in calls]
- cause = next((e for e in expected if isinstance(e, Exception)), None)
+ cause = next((e for e in expected if isinstance(e, Exception)), None)
all_calls = _CallList(self._call_matcher(c) for c in self.mock_calls)
if not any_order:
if expected not in all_calls:
- if cause is None:
- problem = 'Calls not found.'
- else:
- problem = ('Error processing expected calls.\n'
- 'Errors: {}').format(
- [e if isinstance(e, Exception) else None
- for e in expected])
+ if cause is None:
+ problem = 'Calls not found.'
+ else:
+ problem = ('Error processing expected calls.\n'
+ 'Errors: {}').format(
+ [e if isinstance(e, Exception) else None
+ for e in expected])
raise AssertionError(
- f'{problem}\n'
- f'Expected: {_CallList(calls)}'
- f'{self._calls_repr(prefix="Actual").rstrip(".")}'
+ f'{problem}\n'
+ f'Expected: {_CallList(calls)}'
+ f'{self._calls_repr(prefix="Actual").rstrip(".")}'
) from cause
return
@@ -958,29 +958,29 @@ class NonCallableMock(Base):
not_found.append(kall)
if not_found:
raise AssertionError(
- '%r does not contain all of %r in its call list, '
- 'found %r instead' % (self._mock_name or 'mock',
- tuple(not_found), all_calls)
+ '%r does not contain all of %r in its call list, '
+ 'found %r instead' % (self._mock_name or 'mock',
+ tuple(not_found), all_calls)
) from cause
- def assert_any_call(self, /, *args, **kwargs):
+ def assert_any_call(self, /, *args, **kwargs):
"""assert the mock has been called with the specified arguments.
The assert passes if the mock has *ever* been called, unlike
`assert_called_with` and `assert_called_once_with` that only pass if
the call is the most recent one."""
- expected = self._call_matcher(_Call((args, kwargs), two=True))
- cause = expected if isinstance(expected, Exception) else None
+ expected = self._call_matcher(_Call((args, kwargs), two=True))
+ cause = expected if isinstance(expected, Exception) else None
actual = [self._call_matcher(c) for c in self.call_args_list]
- if cause or expected not in _AnyComparer(actual):
+ if cause or expected not in _AnyComparer(actual):
expected_string = self._format_mock_call_signature(args, kwargs)
raise AssertionError(
'%s call not found' % expected_string
) from cause
- def _get_child_mock(self, /, **kw):
+ def _get_child_mock(self, /, **kw):
"""Create the child mocks for attributes and return value.
By default child mocks will be the same type as the parent.
Subclasses of Mock may want to override this to customize the way
@@ -988,68 +988,68 @@ class NonCallableMock(Base):
For non-callable mocks the callable variant will be used (rather than
any custom subclass)."""
- _new_name = kw.get("_new_name")
- if _new_name in self.__dict__['_spec_asyncs']:
- return AsyncMock(**kw)
-
- if self._mock_sealed:
- attribute = f".{kw['name']}" if "name" in kw else "()"
- mock_name = self._extract_mock_name() + attribute
- raise AttributeError(mock_name)
-
+ _new_name = kw.get("_new_name")
+ if _new_name in self.__dict__['_spec_asyncs']:
+ return AsyncMock(**kw)
+
+ if self._mock_sealed:
+ attribute = f".{kw['name']}" if "name" in kw else "()"
+ mock_name = self._extract_mock_name() + attribute
+ raise AttributeError(mock_name)
+
_type = type(self)
- if issubclass(_type, MagicMock) and _new_name in _async_method_magics:
- # Any asynchronous magic becomes an AsyncMock
- klass = AsyncMock
- elif issubclass(_type, AsyncMockMixin):
- if (_new_name in _all_sync_magics or
- self._mock_methods and _new_name in self._mock_methods):
- # Any synchronous method on AsyncMock becomes a MagicMock
- klass = MagicMock
- else:
- klass = AsyncMock
- elif not issubclass(_type, CallableMixin):
+ if issubclass(_type, MagicMock) and _new_name in _async_method_magics:
+ # Any asynchronous magic becomes an AsyncMock
+ klass = AsyncMock
+ elif issubclass(_type, AsyncMockMixin):
+ if (_new_name in _all_sync_magics or
+ self._mock_methods and _new_name in self._mock_methods):
+ # Any synchronous method on AsyncMock becomes a MagicMock
+ klass = MagicMock
+ else:
+ klass = AsyncMock
+ elif not issubclass(_type, CallableMixin):
if issubclass(_type, NonCallableMagicMock):
klass = MagicMock
- elif issubclass(_type, NonCallableMock):
+ elif issubclass(_type, NonCallableMock):
klass = Mock
else:
klass = _type.__mro__[1]
return klass(**kw)
- def _calls_repr(self, prefix="Calls"):
- """Renders self.mock_calls as a string.
-
- Example: "\nCalls: [call(1), call(2)]."
-
- If self.mock_calls is empty, an empty string is returned. The
- output will be truncated if very long.
- """
- if not self.mock_calls:
- return ""
- return f"\n{prefix}: {safe_repr(self.mock_calls)}."
-
-
-_MOCK_SIG = inspect.signature(NonCallableMock.__init__)
-
-
-class _AnyComparer(list):
- """A list which checks if it contains a call which may have an
- argument of ANY, flipping the components of item and self from
- their traditional locations so that ANY is guaranteed to be on
- the left."""
- def __contains__(self, item):
- for _call in self:
- assert len(item) == len(_call)
- if all([
- expected == actual
- for expected, actual in zip(item, _call)
- ]):
- return True
- return False
-
-
+ def _calls_repr(self, prefix="Calls"):
+ """Renders self.mock_calls as a string.
+
+ Example: "\nCalls: [call(1), call(2)]."
+
+ If self.mock_calls is empty, an empty string is returned. The
+ output will be truncated if very long.
+ """
+ if not self.mock_calls:
+ return ""
+ return f"\n{prefix}: {safe_repr(self.mock_calls)}."
+
+
+_MOCK_SIG = inspect.signature(NonCallableMock.__init__)
+
+
+class _AnyComparer(list):
+ """A list which checks if it contains a call which may have an
+ argument of ANY, flipping the components of item and self from
+ their traditional locations so that ANY is guaranteed to be on
+ the left."""
+ def __contains__(self, item):
+ for _call in self:
+ assert len(item) == len(_call)
+ if all([
+ expected == actual
+ for expected, actual in zip(item, _call)
+ ]):
+ return True
+ return False
+
+
def _try_iter(obj):
if obj is None:
return obj
@@ -1079,29 +1079,29 @@ class CallableMixin(Base):
self.side_effect = side_effect
- def _mock_check_sig(self, /, *args, **kwargs):
+ def _mock_check_sig(self, /, *args, **kwargs):
# stub method that can be replaced with one with a specific signature
pass
- def __call__(self, /, *args, **kwargs):
+ def __call__(self, /, *args, **kwargs):
# can't use self in-case a function / method we are mocking uses self
# in the signature
- self._mock_check_sig(*args, **kwargs)
- self._increment_mock_call(*args, **kwargs)
- return self._mock_call(*args, **kwargs)
+ self._mock_check_sig(*args, **kwargs)
+ self._increment_mock_call(*args, **kwargs)
+ return self._mock_call(*args, **kwargs)
+
+ def _mock_call(self, /, *args, **kwargs):
+ return self._execute_mock_call(*args, **kwargs)
- def _mock_call(self, /, *args, **kwargs):
- return self._execute_mock_call(*args, **kwargs)
-
- def _increment_mock_call(self, /, *args, **kwargs):
+ def _increment_mock_call(self, /, *args, **kwargs):
self.called = True
self.call_count += 1
# handle call_args
- # needs to be set here so assertions on call arguments pass before
- # execution in the case of awaited calls
+ # needs to be set here so assertions on call arguments pass before
+ # execution in the case of awaited calls
_call = _Call((args, kwargs), two=True)
self.call_args = _call
self.call_args_list.append(_call)
@@ -1141,9 +1141,9 @@ class CallableMixin(Base):
# follow the parental chain:
_new_parent = _new_parent._mock_new_parent
- def _execute_mock_call(self, /, *args, **kwargs):
- # separate from _increment_mock_call so that awaited functions are
- # executed separately from their call, also AsyncMock overrides this method
+ def _execute_mock_call(self, /, *args, **kwargs):
+ # separate from _increment_mock_call so that awaited functions are
+ # executed separately from their call, also AsyncMock overrides this method
effect = self.side_effect
if effect is not None:
@@ -1288,8 +1288,8 @@ class _patch(object):
def __call__(self, func):
if isinstance(func, type):
return self.decorate_class(func)
- if inspect.iscoroutinefunction(func):
- return self.decorate_async_callable(func)
+ if inspect.iscoroutinefunction(func):
+ return self.decorate_async_callable(func)
return self.decorate_callable(func)
@@ -1307,51 +1307,51 @@ class _patch(object):
return klass
- @contextlib.contextmanager
- def decoration_helper(self, patched, args, keywargs):
- extra_args = []
- with contextlib.ExitStack() as exit_stack:
- for patching in patched.patchings:
- arg = exit_stack.enter_context(patching)
- if patching.attribute_name is not None:
- keywargs.update(arg)
- elif patching.new is DEFAULT:
- extra_args.append(arg)
-
- args += tuple(extra_args)
- yield (args, keywargs)
-
-
+ @contextlib.contextmanager
+ def decoration_helper(self, patched, args, keywargs):
+ extra_args = []
+ with contextlib.ExitStack() as exit_stack:
+ for patching in patched.patchings:
+ arg = exit_stack.enter_context(patching)
+ if patching.attribute_name is not None:
+ keywargs.update(arg)
+ elif patching.new is DEFAULT:
+ extra_args.append(arg)
+
+ args += tuple(extra_args)
+ yield (args, keywargs)
+
+
def decorate_callable(self, func):
- # NB. Keep the method in sync with decorate_async_callable()
+ # NB. Keep the method in sync with decorate_async_callable()
if hasattr(func, 'patchings'):
func.patchings.append(self)
return func
@wraps(func)
def patched(*args, **keywargs):
- with self.decoration_helper(patched,
- args,
- keywargs) as (newargs, newkeywargs):
- return func(*newargs, **newkeywargs)
-
- patched.patchings = [self]
- return patched
-
-
- def decorate_async_callable(self, func):
- # NB. Keep the method in sync with decorate_callable()
- if hasattr(func, 'patchings'):
- func.patchings.append(self)
- return func
-
- @wraps(func)
- async def patched(*args, **keywargs):
- with self.decoration_helper(patched,
- args,
- keywargs) as (newargs, newkeywargs):
- return await func(*newargs, **newkeywargs)
-
+ with self.decoration_helper(patched,
+ args,
+ keywargs) as (newargs, newkeywargs):
+ return func(*newargs, **newkeywargs)
+
+ patched.patchings = [self]
+ return patched
+
+
+ def decorate_async_callable(self, func):
+ # NB. Keep the method in sync with decorate_callable()
+ if hasattr(func, 'patchings'):
+ func.patchings.append(self)
+ return func
+
+ @wraps(func)
+ async def patched(*args, **keywargs):
+ with self.decoration_helper(patched,
+ args,
+ keywargs) as (newargs, newkeywargs):
+ return await func(*newargs, **newkeywargs)
+
patched.patchings = [self]
return patched
@@ -1424,10 +1424,10 @@ class _patch(object):
if isinstance(original, type):
# If we're patching out a class and there is a spec
inherit = True
- if spec is None and _is_async_obj(original):
- Klass = AsyncMock
- else:
- Klass = MagicMock
+ if spec is None and _is_async_obj(original):
+ Klass = AsyncMock
+ else:
+ Klass = MagicMock
_kwargs = {}
if new_callable is not None:
Klass = new_callable
@@ -1439,9 +1439,9 @@ class _patch(object):
not_callable = '__call__' not in this_spec
else:
not_callable = not callable(this_spec)
- if _is_async_obj(this_spec):
- Klass = AsyncMock
- elif not_callable:
+ if _is_async_obj(this_spec):
+ Klass = AsyncMock
+ elif not_callable:
Klass = NonCallableMagicMock
if spec is not None:
@@ -1496,23 +1496,23 @@ class _patch(object):
self.temp_original = original
self.is_local = local
- self._exit_stack = contextlib.ExitStack()
- try:
- setattr(self.target, self.attribute, new_attr)
- if self.attribute_name is not None:
- extra_args = {}
- if self.new is DEFAULT:
- extra_args[self.attribute_name] = new
- for patching in self.additional_patchers:
- arg = self._exit_stack.enter_context(patching)
- if patching.new is DEFAULT:
- extra_args.update(arg)
- return extra_args
-
- return new
- except:
- if not self.__exit__(*sys.exc_info()):
- raise
+ self._exit_stack = contextlib.ExitStack()
+ try:
+ setattr(self.target, self.attribute, new_attr)
+ if self.attribute_name is not None:
+ extra_args = {}
+ if self.new is DEFAULT:
+ extra_args[self.attribute_name] = new
+ for patching in self.additional_patchers:
+ arg = self._exit_stack.enter_context(patching)
+ if patching.new is DEFAULT:
+ extra_args.update(arg)
+ return extra_args
+
+ return new
+ except:
+ if not self.__exit__(*sys.exc_info()):
+ raise
def __exit__(self, *exc_info):
"""Undo the patch."""
@@ -1530,9 +1530,9 @@ class _patch(object):
del self.temp_original
del self.is_local
del self.target
- exit_stack = self._exit_stack
- del self._exit_stack
- return exit_stack.__exit__(*exc_info)
+ exit_stack = self._exit_stack
+ del self._exit_stack
+ return exit_stack.__exit__(*exc_info)
def start(self):
@@ -1548,9 +1548,9 @@ class _patch(object):
self._active_patches.remove(self)
except ValueError:
# If the patch hasn't been started this will fail
- return None
+ return None
- return self.__exit__(None, None, None)
+ return self.__exit__(None, None, None)
@@ -1582,10 +1582,10 @@ def _patch_object(
When used as a class decorator `patch.object` honours `patch.TEST_PREFIX`
for choosing which methods to wrap.
"""
- if type(target) is str:
- raise TypeError(
- f"{target!r} must be the actual object to be patched, not a str"
- )
+ if type(target) is str:
+ raise TypeError(
+ f"{target!r} must be the actual object to be patched, not a str"
+ )
getter = lambda: target
return _patch(
getter, attribute, new, spec, create,
@@ -1652,9 +1652,9 @@ def patch(
is patched with a `new` object. When the function/with statement exits
the patch is undone.
- If `new` is omitted, then the target is replaced with an
- `AsyncMock if the patched object is an async function or a
- `MagicMock` otherwise. If `patch` is used as a decorator and `new` is
+ If `new` is omitted, then the target is replaced with an
+ `AsyncMock if the patched object is an async function or a
+ `MagicMock` otherwise. If `patch` is used as a decorator and `new` is
omitted, the created mock is passed in as an extra argument to the
decorated function. If `patch` is used as a context manager the created
mock is returned by the context manager.
@@ -1672,8 +1672,8 @@ def patch(
patch to pass in the object being mocked as the spec/spec_set object.
`new_callable` allows you to specify a different class, or callable object,
- that will be called to create the `new` object. By default `AsyncMock` is
- used for async functions and `MagicMock` for the rest.
+ that will be called to create the `new` object. By default `AsyncMock` is
+ used for async functions and `MagicMock` for the rest.
A more powerful form of `spec` is `autospec`. If you set `autospec=True`
then the mock will be created with a spec from the object being replaced.
@@ -1707,8 +1707,8 @@ def patch(
"as"; very useful if `patch` is creating a mock object for you.
`patch` takes arbitrary keyword arguments. These will be passed to
- `AsyncMock` if the patched object is asynchronous, to `MagicMock`
- otherwise or to `new_callable` if specified.
+ `AsyncMock` if the patched object is asynchronous, to `MagicMock`
+ otherwise or to `new_callable` if specified.
`patch.dict(...)`, `patch.multiple(...)` and `patch.object(...)` are
available for alternate use-cases.
@@ -1786,7 +1786,7 @@ class _patch_dict(object):
def __enter__(self):
"""Patch the dict."""
self._patch_dict()
- return self.in_dict
+ return self.in_dict
def _patch_dict(self):
@@ -1832,29 +1832,29 @@ class _patch_dict(object):
def __exit__(self, *args):
"""Unpatch the dict."""
- if self._original is not None:
- self._unpatch_dict()
+ if self._original is not None:
+ self._unpatch_dict()
return False
- def start(self):
- """Activate a patch, returning any created mock."""
- result = self.__enter__()
- _patch._active_patches.append(self)
- return result
-
-
- def stop(self):
- """Stop an active patch."""
- try:
- _patch._active_patches.remove(self)
- except ValueError:
- # If the patch hasn't been started this will fail
- return None
-
- return self.__exit__(None, None, None)
-
-
+ def start(self):
+ """Activate a patch, returning any created mock."""
+ result = self.__enter__()
+ _patch._active_patches.append(self)
+ return result
+
+
+ def stop(self):
+ """Stop an active patch."""
+ try:
+ _patch._active_patches.remove(self)
+ except ValueError:
+ # If the patch hasn't been started this will fail
+ return None
+
+ return self.__exit__(None, None, None)
+
+
def _clear_dict(in_dict):
try:
in_dict.clear()
@@ -1886,10 +1886,10 @@ magic_methods = (
# because there is no idivmod
"divmod rdivmod neg pos abs invert "
"complex int float index "
- "round trunc floor ceil "
+ "round trunc floor ceil "
"bool next "
- "fspath "
- "aiter "
+ "fspath "
+ "aiter "
)
numerics = (
@@ -1913,7 +1913,7 @@ _non_defaults = {
def _get_method(name, func):
"Turns a callable object (like a mock) into a real function"
- def method(self, /, *args, **kw):
+ def method(self, /, *args, **kw):
return func(self, *args, **kw)
method.__name__ = name
return method
@@ -1924,15 +1924,15 @@ _magics = {
' '.join([magic_methods, numerics, inplace, right]).split()
}
-# Magic methods used for async `with` statements
-_async_method_magics = {"__aenter__", "__aexit__", "__anext__"}
-# Magic methods that are only used with async calls but are synchronous functions themselves
-_sync_async_magics = {"__aiter__"}
-_async_magics = _async_method_magics | _sync_async_magics
+# Magic methods used for async `with` statements
+_async_method_magics = {"__aenter__", "__aexit__", "__anext__"}
+# Magic methods that are only used with async calls but are synchronous functions themselves
+_sync_async_magics = {"__aiter__"}
+_async_magics = _async_method_magics | _sync_async_magics
+
+_all_sync_magics = _magics | _non_defaults
+_all_magics = _all_sync_magics | _async_magics
-_all_sync_magics = _magics | _non_defaults
-_all_magics = _all_sync_magics | _async_magics
-
_unsupported_magics = {
'__getattr__', '__setattr__',
'__init__', '__new__', '__prepare__',
@@ -1944,7 +1944,7 @@ _calculate_return_value = {
'__hash__': lambda self: object.__hash__(self),
'__str__': lambda self: object.__str__(self),
'__sizeof__': lambda self: object.__sizeof__(self),
- '__fspath__': lambda self: f"{type(self).__name__}/{self._extract_mock_name()}/{id(self)}",
+ '__fspath__': lambda self: f"{type(self).__name__}/{self._extract_mock_name()}/{id(self)}",
}
_return_values = {
@@ -1960,7 +1960,7 @@ _return_values = {
'__float__': 1.0,
'__bool__': True,
'__index__': 1,
- '__aexit__': False,
+ '__aexit__': False,
}
@@ -1993,19 +1993,19 @@ def _get_iter(self):
return iter(ret_val)
return __iter__
-def _get_async_iter(self):
- def __aiter__():
- ret_val = self.__aiter__._mock_return_value
- if ret_val is DEFAULT:
- return _AsyncIterator(iter([]))
- return _AsyncIterator(iter(ret_val))
- return __aiter__
-
+def _get_async_iter(self):
+ def __aiter__():
+ ret_val = self.__aiter__._mock_return_value
+ if ret_val is DEFAULT:
+ return _AsyncIterator(iter([]))
+ return _AsyncIterator(iter(ret_val))
+ return __aiter__
+
_side_effect_methods = {
'__eq__': _get_eq,
'__ne__': _get_ne,
'__iter__': _get_iter,
- '__aiter__': _get_async_iter
+ '__aiter__': _get_async_iter
}
@@ -2016,9 +2016,9 @@ def _set_return_value(mock, method, name):
method.return_value = fixed
return
- return_calculator = _calculate_return_value.get(name)
- if return_calculator is not None:
- return_value = return_calculator(mock)
+ return_calculator = _calculate_return_value.get(name)
+ if return_calculator is not None:
+ return_value = return_calculator(mock)
method.return_value = return_value
return
@@ -2028,22 +2028,22 @@ def _set_return_value(mock, method, name):
-class MagicMixin(Base):
- def __init__(self, /, *args, **kw):
+class MagicMixin(Base):
+ def __init__(self, /, *args, **kw):
self._mock_set_magics() # make magic work for kwargs in init
_safe_super(MagicMixin, self).__init__(*args, **kw)
self._mock_set_magics() # fix magic broken by upper level init
def _mock_set_magics(self):
- orig_magics = _magics | _async_method_magics
- these_magics = orig_magics
+ orig_magics = _magics | _async_method_magics
+ these_magics = orig_magics
if getattr(self, "_mock_methods", None) is not None:
- these_magics = orig_magics.intersection(self._mock_methods)
+ these_magics = orig_magics.intersection(self._mock_methods)
remove_magics = set()
- remove_magics = orig_magics - these_magics
+ remove_magics = orig_magics - these_magics
for entry in remove_magics:
if entry in type(self).__dict__:
@@ -2071,11 +2071,11 @@ class NonCallableMagicMock(MagicMixin, NonCallableMock):
self._mock_set_magics()
-class AsyncMagicMixin(MagicMixin):
- def __init__(self, /, *args, **kw):
- self._mock_set_magics() # make magic work for kwargs in init
- _safe_super(AsyncMagicMixin, self).__init__(*args, **kw)
- self._mock_set_magics() # fix magic broken by upper level init
+class AsyncMagicMixin(MagicMixin):
+ def __init__(self, /, *args, **kw):
+ self._mock_set_magics() # make magic work for kwargs in init
+ _safe_super(AsyncMagicMixin, self).__init__(*args, **kw)
+ self._mock_set_magics() # fix magic broken by upper level init
class MagicMock(MagicMixin, Mock):
"""
@@ -2099,7 +2099,7 @@ class MagicMock(MagicMixin, Mock):
-class MagicProxy(Base):
+class MagicProxy(Base):
def __init__(self, name, parent):
self.name = name
self.parent = parent
@@ -2117,232 +2117,232 @@ class MagicProxy(Base):
return self.create_mock()
-class AsyncMockMixin(Base):
- await_count = _delegating_property('await_count')
- await_args = _delegating_property('await_args')
- await_args_list = _delegating_property('await_args_list')
-
- def __init__(self, /, *args, **kwargs):
- super().__init__(*args, **kwargs)
- # iscoroutinefunction() checks _is_coroutine property to say if an
- # object is a coroutine. Without this check it looks to see if it is a
- # function/method, which in this case it is not (since it is an
- # AsyncMock).
- # It is set through __dict__ because when spec_set is True, this
- # attribute is likely undefined.
- self.__dict__['_is_coroutine'] = asyncio.coroutines._is_coroutine
- self.__dict__['_mock_await_count'] = 0
- self.__dict__['_mock_await_args'] = None
- self.__dict__['_mock_await_args_list'] = _CallList()
- code_mock = NonCallableMock(spec_set=CodeType)
- code_mock.co_flags = inspect.CO_COROUTINE
- self.__dict__['__code__'] = code_mock
-
- async def _execute_mock_call(self, /, *args, **kwargs):
- # This is nearly just like super(), except for special handling
- # of coroutines
-
- _call = _Call((args, kwargs), two=True)
- self.await_count += 1
- self.await_args = _call
- self.await_args_list.append(_call)
-
- effect = self.side_effect
- if effect is not None:
- if _is_exception(effect):
- raise effect
- elif not _callable(effect):
- try:
- result = next(effect)
- except StopIteration:
- # It is impossible to propogate a StopIteration
- # through coroutines because of PEP 479
- raise StopAsyncIteration
- if _is_exception(result):
- raise result
- elif iscoroutinefunction(effect):
- result = await effect(*args, **kwargs)
- else:
- result = effect(*args, **kwargs)
-
- if result is not DEFAULT:
- return result
-
- if self._mock_return_value is not DEFAULT:
- return self.return_value
-
- if self._mock_wraps is not None:
- if iscoroutinefunction(self._mock_wraps):
- return await self._mock_wraps(*args, **kwargs)
- return self._mock_wraps(*args, **kwargs)
-
- return self.return_value
-
- def assert_awaited(self):
- """
- Assert that the mock was awaited at least once.
- """
- if self.await_count == 0:
- msg = f"Expected {self._mock_name or 'mock'} to have been awaited."
- raise AssertionError(msg)
-
- def assert_awaited_once(self):
- """
- Assert that the mock was awaited exactly once.
- """
- if not self.await_count == 1:
- msg = (f"Expected {self._mock_name or 'mock'} to have been awaited once."
- f" Awaited {self.await_count} times.")
- raise AssertionError(msg)
-
- def assert_awaited_with(self, /, *args, **kwargs):
- """
- Assert that the last await was with the specified arguments.
- """
- if self.await_args is None:
- expected = self._format_mock_call_signature(args, kwargs)
- raise AssertionError(f'Expected await: {expected}\nNot awaited')
-
- def _error_message():
- msg = self._format_mock_failure_message(args, kwargs, action='await')
- return msg
-
- expected = self._call_matcher(_Call((args, kwargs), two=True))
- actual = self._call_matcher(self.await_args)
- if actual != expected:
- cause = expected if isinstance(expected, Exception) else None
- raise AssertionError(_error_message()) from cause
-
- def assert_awaited_once_with(self, /, *args, **kwargs):
- """
- Assert that the mock was awaited exactly once and with the specified
- arguments.
- """
- if not self.await_count == 1:
- msg = (f"Expected {self._mock_name or 'mock'} to have been awaited once."
- f" Awaited {self.await_count} times.")
- raise AssertionError(msg)
- return self.assert_awaited_with(*args, **kwargs)
-
- def assert_any_await(self, /, *args, **kwargs):
- """
- Assert the mock has ever been awaited with the specified arguments.
- """
- expected = self._call_matcher(_Call((args, kwargs), two=True))
- cause = expected if isinstance(expected, Exception) else None
- actual = [self._call_matcher(c) for c in self.await_args_list]
- if cause or expected not in _AnyComparer(actual):
- expected_string = self._format_mock_call_signature(args, kwargs)
- raise AssertionError(
- '%s await not found' % expected_string
- ) from cause
-
- def assert_has_awaits(self, calls, any_order=False):
- """
- Assert the mock has been awaited with the specified calls.
- The :attr:`await_args_list` list is checked for the awaits.
-
- If `any_order` is False (the default) then the awaits must be
- sequential. There can be extra calls before or after the
- specified awaits.
-
- If `any_order` is True then the awaits can be in any order, but
- they must all appear in :attr:`await_args_list`.
- """
- expected = [self._call_matcher(c) for c in calls]
- cause = next((e for e in expected if isinstance(e, Exception)), None)
- all_awaits = _CallList(self._call_matcher(c) for c in self.await_args_list)
- if not any_order:
- if expected not in all_awaits:
- if cause is None:
- problem = 'Awaits not found.'
- else:
- problem = ('Error processing expected awaits.\n'
- 'Errors: {}').format(
- [e if isinstance(e, Exception) else None
- for e in expected])
- raise AssertionError(
- f'{problem}\n'
- f'Expected: {_CallList(calls)}\n'
- f'Actual: {self.await_args_list}'
- ) from cause
- return
-
- all_awaits = list(all_awaits)
-
- not_found = []
- for kall in expected:
- try:
- all_awaits.remove(kall)
- except ValueError:
- not_found.append(kall)
- if not_found:
- raise AssertionError(
- '%r not all found in await list' % (tuple(not_found),)
- ) from cause
-
- def assert_not_awaited(self):
- """
- Assert that the mock was never awaited.
- """
- if self.await_count != 0:
- msg = (f"Expected {self._mock_name or 'mock'} to not have been awaited."
- f" Awaited {self.await_count} times.")
- raise AssertionError(msg)
-
- def reset_mock(self, /, *args, **kwargs):
- """
- See :func:`.Mock.reset_mock()`
- """
- super().reset_mock(*args, **kwargs)
- self.await_count = 0
- self.await_args = None
- self.await_args_list = _CallList()
-
-
-class AsyncMock(AsyncMockMixin, AsyncMagicMixin, Mock):
- """
- Enhance :class:`Mock` with features allowing to mock
- an async function.
-
- The :class:`AsyncMock` object will behave so the object is
- recognized as an async function, and the result of a call is an awaitable:
-
- >>> mock = AsyncMock()
- >>> iscoroutinefunction(mock)
- True
- >>> inspect.isawaitable(mock())
- True
-
-
- The result of ``mock()`` is an async function which will have the outcome
- of ``side_effect`` or ``return_value``:
-
- - if ``side_effect`` is a function, the async function will return the
- result of that function,
- - if ``side_effect`` is an exception, the async function will raise the
- exception,
- - if ``side_effect`` is an iterable, the async function will return the
- next value of the iterable, however, if the sequence of result is
- exhausted, ``StopIteration`` is raised immediately,
- - if ``side_effect`` is not defined, the async function will return the
- value defined by ``return_value``, hence, by default, the async function
- returns a new :class:`AsyncMock` object.
-
- If the outcome of ``side_effect`` or ``return_value`` is an async function,
- the mock async function obtained when the mock object is called will be this
- async function itself (and not an async function returning an async
- function).
-
- The test author can also specify a wrapped object with ``wraps``. In this
- case, the :class:`Mock` object behavior is the same as with an
- :class:`.Mock` object: the wrapped object may have methods
- defined as async function functions.
-
- Based on Martin Richard's asynctest project.
- """
-
-
+class AsyncMockMixin(Base):
+ await_count = _delegating_property('await_count')
+ await_args = _delegating_property('await_args')
+ await_args_list = _delegating_property('await_args_list')
+
+ def __init__(self, /, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ # iscoroutinefunction() checks _is_coroutine property to say if an
+ # object is a coroutine. Without this check it looks to see if it is a
+ # function/method, which in this case it is not (since it is an
+ # AsyncMock).
+ # It is set through __dict__ because when spec_set is True, this
+ # attribute is likely undefined.
+ self.__dict__['_is_coroutine'] = asyncio.coroutines._is_coroutine
+ self.__dict__['_mock_await_count'] = 0
+ self.__dict__['_mock_await_args'] = None
+ self.__dict__['_mock_await_args_list'] = _CallList()
+ code_mock = NonCallableMock(spec_set=CodeType)
+ code_mock.co_flags = inspect.CO_COROUTINE
+ self.__dict__['__code__'] = code_mock
+
+ async def _execute_mock_call(self, /, *args, **kwargs):
+ # This is nearly just like super(), except for special handling
+ # of coroutines
+
+ _call = _Call((args, kwargs), two=True)
+ self.await_count += 1
+ self.await_args = _call
+ self.await_args_list.append(_call)
+
+ effect = self.side_effect
+ if effect is not None:
+ if _is_exception(effect):
+ raise effect
+ elif not _callable(effect):
+ try:
+ result = next(effect)
+ except StopIteration:
+ # It is impossible to propogate a StopIteration
+ # through coroutines because of PEP 479
+ raise StopAsyncIteration
+ if _is_exception(result):
+ raise result
+ elif iscoroutinefunction(effect):
+ result = await effect(*args, **kwargs)
+ else:
+ result = effect(*args, **kwargs)
+
+ if result is not DEFAULT:
+ return result
+
+ if self._mock_return_value is not DEFAULT:
+ return self.return_value
+
+ if self._mock_wraps is not None:
+ if iscoroutinefunction(self._mock_wraps):
+ return await self._mock_wraps(*args, **kwargs)
+ return self._mock_wraps(*args, **kwargs)
+
+ return self.return_value
+
+ def assert_awaited(self):
+ """
+ Assert that the mock was awaited at least once.
+ """
+ if self.await_count == 0:
+ msg = f"Expected {self._mock_name or 'mock'} to have been awaited."
+ raise AssertionError(msg)
+
+ def assert_awaited_once(self):
+ """
+ Assert that the mock was awaited exactly once.
+ """
+ if not self.await_count == 1:
+ msg = (f"Expected {self._mock_name or 'mock'} to have been awaited once."
+ f" Awaited {self.await_count} times.")
+ raise AssertionError(msg)
+
+ def assert_awaited_with(self, /, *args, **kwargs):
+ """
+ Assert that the last await was with the specified arguments.
+ """
+ if self.await_args is None:
+ expected = self._format_mock_call_signature(args, kwargs)
+ raise AssertionError(f'Expected await: {expected}\nNot awaited')
+
+ def _error_message():
+ msg = self._format_mock_failure_message(args, kwargs, action='await')
+ return msg
+
+ expected = self._call_matcher(_Call((args, kwargs), two=True))
+ actual = self._call_matcher(self.await_args)
+ if actual != expected:
+ cause = expected if isinstance(expected, Exception) else None
+ raise AssertionError(_error_message()) from cause
+
+ def assert_awaited_once_with(self, /, *args, **kwargs):
+ """
+ Assert that the mock was awaited exactly once and with the specified
+ arguments.
+ """
+ if not self.await_count == 1:
+ msg = (f"Expected {self._mock_name or 'mock'} to have been awaited once."
+ f" Awaited {self.await_count} times.")
+ raise AssertionError(msg)
+ return self.assert_awaited_with(*args, **kwargs)
+
+ def assert_any_await(self, /, *args, **kwargs):
+ """
+ Assert the mock has ever been awaited with the specified arguments.
+ """
+ expected = self._call_matcher(_Call((args, kwargs), two=True))
+ cause = expected if isinstance(expected, Exception) else None
+ actual = [self._call_matcher(c) for c in self.await_args_list]
+ if cause or expected not in _AnyComparer(actual):
+ expected_string = self._format_mock_call_signature(args, kwargs)
+ raise AssertionError(
+ '%s await not found' % expected_string
+ ) from cause
+
+ def assert_has_awaits(self, calls, any_order=False):
+ """
+ Assert the mock has been awaited with the specified calls.
+ The :attr:`await_args_list` list is checked for the awaits.
+
+ If `any_order` is False (the default) then the awaits must be
+ sequential. There can be extra calls before or after the
+ specified awaits.
+
+ If `any_order` is True then the awaits can be in any order, but
+ they must all appear in :attr:`await_args_list`.
+ """
+ expected = [self._call_matcher(c) for c in calls]
+ cause = next((e for e in expected if isinstance(e, Exception)), None)
+ all_awaits = _CallList(self._call_matcher(c) for c in self.await_args_list)
+ if not any_order:
+ if expected not in all_awaits:
+ if cause is None:
+ problem = 'Awaits not found.'
+ else:
+ problem = ('Error processing expected awaits.\n'
+ 'Errors: {}').format(
+ [e if isinstance(e, Exception) else None
+ for e in expected])
+ raise AssertionError(
+ f'{problem}\n'
+ f'Expected: {_CallList(calls)}\n'
+ f'Actual: {self.await_args_list}'
+ ) from cause
+ return
+
+ all_awaits = list(all_awaits)
+
+ not_found = []
+ for kall in expected:
+ try:
+ all_awaits.remove(kall)
+ except ValueError:
+ not_found.append(kall)
+ if not_found:
+ raise AssertionError(
+ '%r not all found in await list' % (tuple(not_found),)
+ ) from cause
+
+ def assert_not_awaited(self):
+ """
+ Assert that the mock was never awaited.
+ """
+ if self.await_count != 0:
+ msg = (f"Expected {self._mock_name or 'mock'} to not have been awaited."
+ f" Awaited {self.await_count} times.")
+ raise AssertionError(msg)
+
+ def reset_mock(self, /, *args, **kwargs):
+ """
+ See :func:`.Mock.reset_mock()`
+ """
+ super().reset_mock(*args, **kwargs)
+ self.await_count = 0
+ self.await_args = None
+ self.await_args_list = _CallList()
+
+
+class AsyncMock(AsyncMockMixin, AsyncMagicMixin, Mock):
+ """
+ Enhance :class:`Mock` with features allowing to mock
+ an async function.
+
+ The :class:`AsyncMock` object will behave so the object is
+ recognized as an async function, and the result of a call is an awaitable:
+
+ >>> mock = AsyncMock()
+ >>> iscoroutinefunction(mock)
+ True
+ >>> inspect.isawaitable(mock())
+ True
+
+
+ The result of ``mock()`` is an async function which will have the outcome
+ of ``side_effect`` or ``return_value``:
+
+ - if ``side_effect`` is a function, the async function will return the
+ result of that function,
+ - if ``side_effect`` is an exception, the async function will raise the
+ exception,
+ - if ``side_effect`` is an iterable, the async function will return the
+ next value of the iterable, however, if the sequence of result is
+ exhausted, ``StopIteration`` is raised immediately,
+ - if ``side_effect`` is not defined, the async function will return the
+ value defined by ``return_value``, hence, by default, the async function
+ returns a new :class:`AsyncMock` object.
+
+ If the outcome of ``side_effect`` or ``return_value`` is an async function,
+ the mock async function obtained when the mock object is called will be this
+ async function itself (and not an async function returning an async
+ function).
+
+ The test author can also specify a wrapped object with ``wraps``. In this
+ case, the :class:`Mock` object behavior is the same as with an
+ :class:`.Mock` object: the wrapped object may have methods
+ defined as async function functions.
+
+ Based on Martin Richard's asynctest project.
+ """
+
+
class _ANY(object):
"A helper object that compares equal to everything."
@@ -2364,7 +2364,7 @@ def _format_call_signature(name, args, kwargs):
formatted_args = ''
args_string = ', '.join([repr(arg) for arg in args])
kwargs_string = ', '.join([
- '%s=%r' % (key, value) for key, value in kwargs.items()
+ '%s=%r' % (key, value) for key, value in kwargs.items()
])
if args_string:
formatted_args = args_string
@@ -2439,7 +2439,7 @@ class _Call(tuple):
try:
len_other = len(other)
except TypeError:
- return NotImplemented
+ return NotImplemented
self_name = ''
if len(self) == 2:
@@ -2491,7 +2491,7 @@ class _Call(tuple):
__ne__ = object.__ne__
- def __call__(self, /, *args, **kwargs):
+ def __call__(self, /, *args, **kwargs):
if self._mock_name is None:
return _Call(('', args, kwargs), name='()')
@@ -2506,28 +2506,28 @@ class _Call(tuple):
return _Call(name=name, parent=self, from_kall=False)
- def __getattribute__(self, attr):
- if attr in tuple.__dict__:
- raise AttributeError
- return tuple.__getattribute__(self, attr)
-
-
- def _get_call_arguments(self):
- if len(self) == 2:
- args, kwargs = self
- else:
- name, args, kwargs = self
-
- return args, kwargs
-
- @property
- def args(self):
- return self._get_call_arguments()[0]
-
- @property
- def kwargs(self):
- return self._get_call_arguments()[1]
-
+ def __getattribute__(self, attr):
+ if attr in tuple.__dict__:
+ raise AttributeError
+ return tuple.__getattribute__(self, attr)
+
+
+ def _get_call_arguments(self):
+ if len(self) == 2:
+ args, kwargs = self
+ else:
+ name, args, kwargs = self
+
+ return args, kwargs
+
+ @property
+ def args(self):
+ return self._get_call_arguments()[0]
+
+ @property
+ def kwargs(self):
+ return self._get_call_arguments()[1]
+
def __repr__(self):
if not self._mock_from_kall:
name = self._mock_name or 'call'
@@ -2590,7 +2590,7 @@ def create_autospec(spec, spec_set=False, instance=False, _parent=None,
spec = type(spec)
is_type = isinstance(spec, type)
- is_async_func = _is_async_func(spec)
+ is_async_func = _is_async_func(spec)
_kwargs = {'spec': spec}
if spec_set:
_kwargs = {'spec_set': spec}
@@ -2607,11 +2607,11 @@ def create_autospec(spec, spec_set=False, instance=False, _parent=None,
# descriptors don't have a spec
# because we don't know what type they return
_kwargs = {}
- elif is_async_func:
- if instance:
- raise RuntimeError("Instance can not be True when create_autospec "
- "is mocking an async function")
- Klass = AsyncMock
+ elif is_async_func:
+ if instance:
+ raise RuntimeError("Instance can not be True when create_autospec "
+ "is mocking an async function")
+ Klass = AsyncMock
elif not _callable(spec):
Klass = NonCallableMagicMock
elif is_type and instance and not _instance_callable(spec):
@@ -2631,8 +2631,8 @@ def create_autospec(spec, spec_set=False, instance=False, _parent=None,
# should only happen at the top level because we don't
# recurse for functions
mock = _set_signature(mock, spec)
- if is_async_func:
- _setup_async_mock(mock)
+ if is_async_func:
+ _setup_async_mock(mock)
else:
_check_signature(spec, mock, is_type, instance)
@@ -2676,13 +2676,13 @@ def create_autospec(spec, spec_set=False, instance=False, _parent=None,
skipfirst = _must_skip(spec, entry, is_type)
kwargs['_eat_self'] = skipfirst
- if iscoroutinefunction(original):
- child_klass = AsyncMock
- else:
- child_klass = MagicMock
- new = child_klass(parent=parent, name=entry, _new_name=entry,
- _new_parent=parent,
- **kwargs)
+ if iscoroutinefunction(original):
+ child_klass = AsyncMock
+ else:
+ child_klass = MagicMock
+ new = child_klass(parent=parent, name=entry, _new_name=entry,
+ _new_parent=parent,
+ **kwargs)
mock._mock_children[entry] = new
_check_signature(original, new, skipfirst=skipfirst)
@@ -2713,14 +2713,14 @@ def _must_skip(spec, entry, is_type):
continue
if isinstance(result, (staticmethod, classmethod)):
return False
- elif isinstance(result, FunctionTypes):
+ elif isinstance(result, FunctionTypes):
# Normal method => skip if looked up on type
# (if looked up on instance, self is already skipped)
return is_type
else:
return False
- # function is a dynamically provided attribute
+ # function is a dynamically provided attribute
return is_type
@@ -2747,11 +2747,11 @@ FunctionTypes = (
file_spec = None
-def _to_stream(read_data):
- if isinstance(read_data, bytes):
- return io.BytesIO(read_data)
+def _to_stream(read_data):
+ if isinstance(read_data, bytes):
+ return io.BytesIO(read_data)
else:
- return io.StringIO(read_data)
+ return io.StringIO(read_data)
def mock_open(mock=None, read_data=''):
@@ -2766,23 +2766,23 @@ def mock_open(mock=None, read_data=''):
`read_data` is a string for the `read`, `readline` and `readlines` of the
file handle to return. This is an empty string by default.
"""
- _read_data = _to_stream(read_data)
- _state = [_read_data, None]
-
+ _read_data = _to_stream(read_data)
+ _state = [_read_data, None]
+
def _readlines_side_effect(*args, **kwargs):
if handle.readlines.return_value is not None:
return handle.readlines.return_value
- return _state[0].readlines(*args, **kwargs)
+ return _state[0].readlines(*args, **kwargs)
def _read_side_effect(*args, **kwargs):
if handle.read.return_value is not None:
return handle.read.return_value
- return _state[0].read(*args, **kwargs)
+ return _state[0].read(*args, **kwargs)
- def _readline_side_effect(*args, **kwargs):
+ def _readline_side_effect(*args, **kwargs):
yield from _iter_side_effect()
while True:
- yield _state[0].readline(*args, **kwargs)
+ yield _state[0].readline(*args, **kwargs)
def _iter_side_effect():
if handle.readline.return_value is not None:
@@ -2791,11 +2791,11 @@ def mock_open(mock=None, read_data=''):
for line in _state[0]:
yield line
- def _next_side_effect():
- if handle.readline.return_value is not None:
- return handle.readline.return_value
- return next(_state[0])
-
+ def _next_side_effect():
+ if handle.readline.return_value is not None:
+ return handle.readline.return_value
+ return next(_state[0])
+
global file_spec
if file_spec is None:
import _io
@@ -2817,10 +2817,10 @@ def mock_open(mock=None, read_data=''):
handle.readline.side_effect = _state[1]
handle.readlines.side_effect = _readlines_side_effect
handle.__iter__.side_effect = _iter_side_effect
- handle.__next__.side_effect = _next_side_effect
+ handle.__next__.side_effect = _next_side_effect
def reset_data(*args, **kwargs):
- _state[0] = _to_stream(read_data)
+ _state[0] = _to_stream(read_data)
if handle.readline.side_effect == _state[1]:
# Only reset the side effect if the user hasn't overridden it.
_state[1] = _readline_side_effect()
@@ -2841,10 +2841,10 @@ class PropertyMock(Mock):
Fetching a `PropertyMock` instance from an object calls the mock, with
no args. Setting it calls the mock with the value being set.
"""
- def _get_child_mock(self, /, **kwargs):
+ def _get_child_mock(self, /, **kwargs):
return MagicMock(**kwargs)
- def __get__(self, obj, obj_type=None):
+ def __get__(self, obj, obj_type=None):
return self()
def __set__(self, obj, val):
self(val)
@@ -2868,25 +2868,25 @@ def seal(mock):
continue
if not isinstance(m, NonCallableMock):
continue
- if isinstance(m._mock_children.get(attr), _SpecState):
- continue
+ if isinstance(m._mock_children.get(attr), _SpecState):
+ continue
if m._mock_new_parent is mock:
seal(m)
-
-
-class _AsyncIterator:
- """
- Wraps an iterator in an asynchronous iterator.
- """
- def __init__(self, iterator):
- self.iterator = iterator
- code_mock = NonCallableMock(spec_set=CodeType)
- code_mock.co_flags = inspect.CO_ITERABLE_COROUTINE
- self.__dict__['__code__'] = code_mock
-
- async def __anext__(self):
- try:
- return next(self.iterator)
- except StopIteration:
- pass
- raise StopAsyncIteration
+
+
+class _AsyncIterator:
+ """
+ Wraps an iterator in an asynchronous iterator.
+ """
+ def __init__(self, iterator):
+ self.iterator = iterator
+ code_mock = NonCallableMock(spec_set=CodeType)
+ code_mock.co_flags = inspect.CO_ITERABLE_COROUTINE
+ self.__dict__['__code__'] = code_mock
+
+ async def __anext__(self):
+ try:
+ return next(self.iterator)
+ except StopIteration:
+ pass
+ raise StopAsyncIteration
diff --git a/contrib/tools/python3/src/Lib/unittest/result.py b/contrib/tools/python3/src/Lib/unittest/result.py
index 177bf08024..111317b329 100644
--- a/contrib/tools/python3/src/Lib/unittest/result.py
+++ b/contrib/tools/python3/src/Lib/unittest/result.py
@@ -161,7 +161,7 @@ class TestResult(object):
"""Tells whether or not this result was a success."""
# The hasattr check is for test_result's OldResult test. That
# way this method works on objects that lack the attribute.
- # (where would such result instances come from? old stored pickles?)
+ # (where would such result instances come from? old stored pickles?)
return ((len(self.failures) == len(self.errors) == 0) and
(not hasattr(self, 'unexpectedSuccesses') or
len(self.unexpectedSuccesses) == 0))
diff --git a/contrib/tools/python3/src/Lib/unittest/runner.py b/contrib/tools/python3/src/Lib/unittest/runner.py
index dc65682650..caf159002d 100644
--- a/contrib/tools/python3/src/Lib/unittest/runner.py
+++ b/contrib/tools/python3/src/Lib/unittest/runner.py
@@ -59,7 +59,7 @@ class TextTestResult(result.TestResult):
super(TextTestResult, self).addSuccess(test)
if self.showAll:
self.stream.writeln("ok")
- self.stream.flush()
+ self.stream.flush()
elif self.dots:
self.stream.write('.')
self.stream.flush()
@@ -68,7 +68,7 @@ class TextTestResult(result.TestResult):
super(TextTestResult, self).addError(test, err)
if self.showAll:
self.stream.writeln("ERROR")
- self.stream.flush()
+ self.stream.flush()
elif self.dots:
self.stream.write('E')
self.stream.flush()
@@ -77,7 +77,7 @@ class TextTestResult(result.TestResult):
super(TextTestResult, self).addFailure(test, err)
if self.showAll:
self.stream.writeln("FAIL")
- self.stream.flush()
+ self.stream.flush()
elif self.dots:
self.stream.write('F')
self.stream.flush()
@@ -86,7 +86,7 @@ class TextTestResult(result.TestResult):
super(TextTestResult, self).addSkip(test, reason)
if self.showAll:
self.stream.writeln("skipped {0!r}".format(reason))
- self.stream.flush()
+ self.stream.flush()
elif self.dots:
self.stream.write("s")
self.stream.flush()
@@ -95,7 +95,7 @@ class TextTestResult(result.TestResult):
super(TextTestResult, self).addExpectedFailure(test, err)
if self.showAll:
self.stream.writeln("expected failure")
- self.stream.flush()
+ self.stream.flush()
elif self.dots:
self.stream.write("x")
self.stream.flush()
@@ -104,7 +104,7 @@ class TextTestResult(result.TestResult):
super(TextTestResult, self).addUnexpectedSuccess(test)
if self.showAll:
self.stream.writeln("unexpected success")
- self.stream.flush()
+ self.stream.flush()
elif self.dots:
self.stream.write("u")
self.stream.flush()
@@ -112,7 +112,7 @@ class TextTestResult(result.TestResult):
def printErrors(self):
if self.dots or self.showAll:
self.stream.writeln()
- self.stream.flush()
+ self.stream.flush()
self.printErrorList('ERROR', self.errors)
self.printErrorList('FAIL', self.failures)
@@ -122,7 +122,7 @@ class TextTestResult(result.TestResult):
self.stream.writeln("%s: %s" % (flavour,self.getDescription(test)))
self.stream.writeln(self.separator2)
self.stream.writeln("%s" % err)
- self.stream.flush()
+ self.stream.flush()
class TextTestRunner(object):
@@ -226,5 +226,5 @@ class TextTestRunner(object):
self.stream.writeln(" (%s)" % (", ".join(infos),))
else:
self.stream.write("\n")
- self.stream.flush()
+ self.stream.flush()
return result
diff --git a/contrib/tools/python3/src/Lib/unittest/suite.py b/contrib/tools/python3/src/Lib/unittest/suite.py
index 6df95fbc1b..6f45b6fe5f 100644
--- a/contrib/tools/python3/src/Lib/unittest/suite.py
+++ b/contrib/tools/python3/src/Lib/unittest/suite.py
@@ -149,7 +149,7 @@ class TestSuite(BaseTestSuite):
if getattr(currentClass, "__unittest_skip__", False):
return
- failed = False
+ failed = False
try:
currentClass._classSetupFailed = False
except TypeError:
@@ -158,30 +158,30 @@ class TestSuite(BaseTestSuite):
pass
setUpClass = getattr(currentClass, 'setUpClass', None)
- doClassCleanups = getattr(currentClass, 'doClassCleanups', None)
+ doClassCleanups = getattr(currentClass, 'doClassCleanups', None)
if setUpClass is not None:
_call_if_exists(result, '_setupStdout')
try:
- try:
- setUpClass()
- except Exception as e:
- if isinstance(result, _DebugResult):
- raise
- failed = True
- try:
- currentClass._classSetupFailed = True
- except TypeError:
- pass
- className = util.strclass(currentClass)
- self._createClassOrModuleLevelException(result, e,
- 'setUpClass',
- className)
- if failed and doClassCleanups is not None:
- doClassCleanups()
- for exc_info in currentClass.tearDown_exceptions:
- self._createClassOrModuleLevelException(
- result, exc_info[1], 'setUpClass', className,
- info=exc_info)
+ try:
+ setUpClass()
+ except Exception as e:
+ if isinstance(result, _DebugResult):
+ raise
+ failed = True
+ try:
+ currentClass._classSetupFailed = True
+ except TypeError:
+ pass
+ className = util.strclass(currentClass)
+ self._createClassOrModuleLevelException(result, e,
+ 'setUpClass',
+ className)
+ if failed and doClassCleanups is not None:
+ doClassCleanups()
+ for exc_info in currentClass.tearDown_exceptions:
+ self._createClassOrModuleLevelException(
+ result, exc_info[1], 'setUpClass', className,
+ info=exc_info)
finally:
_call_if_exists(result, '_restoreStdout')
@@ -211,41 +211,41 @@ class TestSuite(BaseTestSuite):
if setUpModule is not None:
_call_if_exists(result, '_setupStdout')
try:
- try:
- setUpModule()
- except Exception as e:
- if isinstance(result, _DebugResult):
- raise
- result._moduleSetUpFailed = True
- self._createClassOrModuleLevelException(result, e,
- 'setUpModule',
- currentModule)
- if result._moduleSetUpFailed:
- try:
- case.doModuleCleanups()
- except Exception as e:
- self._createClassOrModuleLevelException(result, e,
- 'setUpModule',
- currentModule)
+ try:
+ setUpModule()
+ except Exception as e:
+ if isinstance(result, _DebugResult):
+ raise
+ result._moduleSetUpFailed = True
+ self._createClassOrModuleLevelException(result, e,
+ 'setUpModule',
+ currentModule)
+ if result._moduleSetUpFailed:
+ try:
+ case.doModuleCleanups()
+ except Exception as e:
+ self._createClassOrModuleLevelException(result, e,
+ 'setUpModule',
+ currentModule)
finally:
_call_if_exists(result, '_restoreStdout')
- def _createClassOrModuleLevelException(self, result, exc, method_name,
- parent, info=None):
- errorName = f'{method_name} ({parent})'
- self._addClassOrModuleLevelException(result, exc, errorName, info)
-
- def _addClassOrModuleLevelException(self, result, exception, errorName,
- info=None):
+ def _createClassOrModuleLevelException(self, result, exc, method_name,
+ parent, info=None):
+ errorName = f'{method_name} ({parent})'
+ self._addClassOrModuleLevelException(result, exc, errorName, info)
+
+ def _addClassOrModuleLevelException(self, result, exception, errorName,
+ info=None):
error = _ErrorHolder(errorName)
addSkip = getattr(result, 'addSkip', None)
if addSkip is not None and isinstance(exception, case.SkipTest):
addSkip(error, str(exception))
else:
- if not info:
- result.addError(error, sys.exc_info())
- else:
- result.addError(error, info)
+ if not info:
+ result.addError(error, sys.exc_info())
+ else:
+ result.addError(error, info)
def _handleModuleTearDown(self, result):
previousModule = self._get_previous_module(result)
@@ -259,33 +259,33 @@ class TestSuite(BaseTestSuite):
except KeyError:
return
- _call_if_exists(result, '_setupStdout')
- try:
- tearDownModule = getattr(module, 'tearDownModule', None)
- if tearDownModule is not None:
- try:
- tearDownModule()
- except Exception as e:
- if isinstance(result, _DebugResult):
- raise
- self._createClassOrModuleLevelException(result, e,
- 'tearDownModule',
- previousModule)
+ _call_if_exists(result, '_setupStdout')
+ try:
+ tearDownModule = getattr(module, 'tearDownModule', None)
+ if tearDownModule is not None:
+ try:
+ tearDownModule()
+ except Exception as e:
+ if isinstance(result, _DebugResult):
+ raise
+ self._createClassOrModuleLevelException(result, e,
+ 'tearDownModule',
+ previousModule)
try:
- case.doModuleCleanups()
+ case.doModuleCleanups()
except Exception as e:
if isinstance(result, _DebugResult):
raise
- self._createClassOrModuleLevelException(result, e,
- 'tearDownModule',
- previousModule)
- finally:
- _call_if_exists(result, '_restoreStdout')
+ self._createClassOrModuleLevelException(result, e,
+ 'tearDownModule',
+ previousModule)
+ finally:
+ _call_if_exists(result, '_restoreStdout')
def _tearDownPreviousClass(self, test, result):
previousClass = getattr(result, '_previousTestClass', None)
currentClass = test.__class__
- if currentClass == previousClass or previousClass is None:
+ if currentClass == previousClass or previousClass is None:
return
if getattr(previousClass, '_classSetupFailed', False):
return
@@ -295,36 +295,36 @@ class TestSuite(BaseTestSuite):
return
tearDownClass = getattr(previousClass, 'tearDownClass', None)
- doClassCleanups = getattr(previousClass, 'doClassCleanups', None)
- if tearDownClass is None and doClassCleanups is None:
- return
-
- _call_if_exists(result, '_setupStdout')
- try:
- if tearDownClass is not None:
- try:
- tearDownClass()
- except Exception as e:
- if isinstance(result, _DebugResult):
- raise
- className = util.strclass(previousClass)
- self._createClassOrModuleLevelException(result, e,
- 'tearDownClass',
- className)
- if doClassCleanups is not None:
- doClassCleanups()
- for exc_info in previousClass.tearDown_exceptions:
- if isinstance(result, _DebugResult):
- raise exc_info[1]
- className = util.strclass(previousClass)
- self._createClassOrModuleLevelException(result, exc_info[1],
- 'tearDownClass',
- className,
- info=exc_info)
- finally:
- _call_if_exists(result, '_restoreStdout')
-
-
+ doClassCleanups = getattr(previousClass, 'doClassCleanups', None)
+ if tearDownClass is None and doClassCleanups is None:
+ return
+
+ _call_if_exists(result, '_setupStdout')
+ try:
+ if tearDownClass is not None:
+ try:
+ tearDownClass()
+ except Exception as e:
+ if isinstance(result, _DebugResult):
+ raise
+ className = util.strclass(previousClass)
+ self._createClassOrModuleLevelException(result, e,
+ 'tearDownClass',
+ className)
+ if doClassCleanups is not None:
+ doClassCleanups()
+ for exc_info in previousClass.tearDown_exceptions:
+ if isinstance(result, _DebugResult):
+ raise exc_info[1]
+ className = util.strclass(previousClass)
+ self._createClassOrModuleLevelException(result, exc_info[1],
+ 'tearDownClass',
+ className,
+ info=exc_info)
+ finally:
+ _call_if_exists(result, '_restoreStdout')
+
+
class _ErrorHolder(object):
"""
Placeholder for a TestCase inside a result. As far as a TestResult
diff --git a/contrib/tools/python3/src/Lib/urllib/parse.py b/contrib/tools/python3/src/Lib/urllib/parse.py
index f6299398c9..b7965fe3d2 100644
--- a/contrib/tools/python3/src/Lib/urllib/parse.py
+++ b/contrib/tools/python3/src/Lib/urllib/parse.py
@@ -29,9 +29,9 @@ test_urlparse.py provides a good indicator of parsing behavior.
import re
import sys
-import types
+import types
import collections
-import warnings
+import warnings
__all__ = ["urlparse", "urlunparse", "urljoin", "urldefrag",
"urlsplit", "urlunsplit", "urlencode", "parse_qs",
@@ -78,9 +78,9 @@ scheme_chars = ('abcdefghijklmnopqrstuvwxyz'
'0123456789'
'+-.')
-# Unsafe bytes to be removed per WHATWG spec
-_UNSAFE_URL_BYTES_TO_REMOVE = ['\t', '\r', '\n']
-
+# Unsafe bytes to be removed per WHATWG spec
+_UNSAFE_URL_BYTES_TO_REMOVE = ['\t', '\r', '\n']
+
# XXX: Consider replacing with functools.lru_cache
MAX_CACHE_SIZE = 20
_parse_cache = {}
@@ -171,18 +171,18 @@ class _NetlocResultMixinBase(object):
def port(self):
port = self._hostinfo[1]
if port is not None:
- try:
- port = int(port, 10)
- except ValueError:
- message = f'Port could not be cast to integer value as {port!r}'
- raise ValueError(message) from None
+ try:
+ port = int(port, 10)
+ except ValueError:
+ message = f'Port could not be cast to integer value as {port!r}'
+ raise ValueError(message) from None
if not ( 0 <= port <= 65535):
raise ValueError("Port out of range 0-65535")
return port
- __class_getitem__ = classmethod(types.GenericAlias)
+ __class_getitem__ = classmethod(types.GenericAlias)
+
-
class _NetlocResultMixinStr(_NetlocResultMixinBase, _ResultMixinStr):
__slots__ = ()
@@ -295,7 +295,7 @@ by reference to a primary resource and additional identifying information.
"""
_ParseResultBase.__doc__ = """
-ParseResult(scheme, netloc, path, params, query, fragment)
+ParseResult(scheme, netloc, path, params, query, fragment)
A 6-tuple that contains components of a parsed URL.
"""
@@ -372,23 +372,23 @@ del _fix_result_transcoding
def urlparse(url, scheme='', allow_fragments=True):
"""Parse a URL into 6 components:
<scheme>://<netloc>/<path>;<params>?<query>#<fragment>
-
- The result is a named 6-tuple with fields corresponding to the
- above. It is either a ParseResult or ParseResultBytes object,
- depending on the type of the url parameter.
-
- The username, password, hostname, and port sub-components of netloc
- can also be accessed as attributes of the returned object.
-
- The scheme argument provides the default value of the scheme
- component when no scheme is found in url.
-
- If allow_fragments is False, no attempt is made to separate the
- fragment component from the previous component, which can be either
- path or query.
-
- Note that % escapes are not expanded.
- """
+
+ The result is a named 6-tuple with fields corresponding to the
+ above. It is either a ParseResult or ParseResultBytes object,
+ depending on the type of the url parameter.
+
+ The username, password, hostname, and port sub-components of netloc
+ can also be accessed as attributes of the returned object.
+
+ The scheme argument provides the default value of the scheme
+ component when no scheme is found in url.
+
+ If allow_fragments is False, no attempt is made to separate the
+ fragment component from the previous component, which can be either
+ path or query.
+
+ Note that % escapes are not expanded.
+ """
url, scheme, _coerce_result = _coerce_args(url, scheme)
splitresult = urlsplit(url, scheme, allow_fragments)
scheme, netloc, url, query, fragment = splitresult
@@ -422,45 +422,45 @@ def _checknetloc(netloc):
# looking for characters like \u2100 that expand to 'a/c'
# IDNA uses NFKC equivalence, so normalize for this check
import unicodedata
- n = netloc.replace('@', '') # ignore characters already included
- n = n.replace(':', '') # but not the surrounding text
- n = n.replace('#', '')
- n = n.replace('?', '')
- netloc2 = unicodedata.normalize('NFKC', n)
- if n == netloc2:
+ n = netloc.replace('@', '') # ignore characters already included
+ n = n.replace(':', '') # but not the surrounding text
+ n = n.replace('#', '')
+ n = n.replace('?', '')
+ netloc2 = unicodedata.normalize('NFKC', n)
+ if n == netloc2:
return
for c in '/?#@:':
if c in netloc2:
- raise ValueError("netloc '" + netloc + "' contains invalid " +
+ raise ValueError("netloc '" + netloc + "' contains invalid " +
"characters under NFKC normalization")
def urlsplit(url, scheme='', allow_fragments=True):
"""Parse a URL into 5 components:
<scheme>://<netloc>/<path>?<query>#<fragment>
-
- The result is a named 5-tuple with fields corresponding to the
- above. It is either a SplitResult or SplitResultBytes object,
- depending on the type of the url parameter.
-
- The username, password, hostname, and port sub-components of netloc
- can also be accessed as attributes of the returned object.
-
- The scheme argument provides the default value of the scheme
- component when no scheme is found in url.
-
- If allow_fragments is False, no attempt is made to separate the
- fragment component from the previous component, which can be either
- path or query.
-
- Note that % escapes are not expanded.
- """
-
+
+ The result is a named 5-tuple with fields corresponding to the
+ above. It is either a SplitResult or SplitResultBytes object,
+ depending on the type of the url parameter.
+
+ The username, password, hostname, and port sub-components of netloc
+ can also be accessed as attributes of the returned object.
+
+ The scheme argument provides the default value of the scheme
+ component when no scheme is found in url.
+
+ If allow_fragments is False, no attempt is made to separate the
+ fragment component from the previous component, which can be either
+ path or query.
+
+ Note that % escapes are not expanded.
+ """
+
url, scheme, _coerce_result = _coerce_args(url, scheme)
-
- for b in _UNSAFE_URL_BYTES_TO_REMOVE:
- url = url.replace(b, "")
- scheme = scheme.replace(b, "")
-
+
+ for b in _UNSAFE_URL_BYTES_TO_REMOVE:
+ url = url.replace(b, "")
+ scheme = scheme.replace(b, "")
+
allow_fragments = bool(allow_fragments)
key = url, scheme, allow_fragments, type(url), type(scheme)
cached = _parse_cache.get(key, None)
@@ -475,7 +475,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
if c not in scheme_chars:
break
else:
- scheme, url = url[:i].lower(), url[i+1:]
+ scheme, url = url[:i].lower(), url[i+1:]
if url[:2] == '//':
netloc, url = _splitnetloc(url, 2)
@@ -651,8 +651,8 @@ def unquote(string, encoding='utf-8', errors='replace'):
unquote('abc%20def') -> 'abc def'.
"""
- if isinstance(string, bytes):
- return unquote_to_bytes(string).decode(encoding, errors)
+ if isinstance(string, bytes):
+ return unquote_to_bytes(string).decode(encoding, errors)
if '%' not in string:
string.split
return string
@@ -670,7 +670,7 @@ def unquote(string, encoding='utf-8', errors='replace'):
def parse_qs(qs, keep_blank_values=False, strict_parsing=False,
- encoding='utf-8', errors='replace', max_num_fields=None, separator='&'):
+ encoding='utf-8', errors='replace', max_num_fields=None, separator='&'):
"""Parse a query given as a string argument.
Arguments:
@@ -694,15 +694,15 @@ def parse_qs(qs, keep_blank_values=False, strict_parsing=False,
max_num_fields: int. If set, then throws a ValueError if there
are more than n fields read by parse_qsl().
- separator: str. The symbol to use for separating the query arguments.
- Defaults to &.
-
+ separator: str. The symbol to use for separating the query arguments.
+ Defaults to &.
+
Returns a dictionary.
"""
parsed_result = {}
pairs = parse_qsl(qs, keep_blank_values, strict_parsing,
encoding=encoding, errors=errors,
- max_num_fields=max_num_fields, separator=separator)
+ max_num_fields=max_num_fields, separator=separator)
for name, value in pairs:
if name in parsed_result:
parsed_result[name].append(value)
@@ -712,7 +712,7 @@ def parse_qs(qs, keep_blank_values=False, strict_parsing=False,
def parse_qsl(qs, keep_blank_values=False, strict_parsing=False,
- encoding='utf-8', errors='replace', max_num_fields=None, separator='&'):
+ encoding='utf-8', errors='replace', max_num_fields=None, separator='&'):
"""Parse a query given as a string argument.
Arguments:
@@ -735,26 +735,26 @@ def parse_qsl(qs, keep_blank_values=False, strict_parsing=False,
max_num_fields: int. If set, then throws a ValueError
if there are more than n fields read by parse_qsl().
- separator: str. The symbol to use for separating the query arguments.
- Defaults to &.
-
+ separator: str. The symbol to use for separating the query arguments.
+ Defaults to &.
+
Returns a list, as G-d intended.
"""
qs, _coerce_result = _coerce_args(qs)
- separator, _ = _coerce_args(separator)
+ separator, _ = _coerce_args(separator)
+
+ if not separator or (not isinstance(separator, (str, bytes))):
+ raise ValueError("Separator must be of type string or bytes.")
- if not separator or (not isinstance(separator, (str, bytes))):
- raise ValueError("Separator must be of type string or bytes.")
-
# If max_num_fields is defined then check that the number of fields
# is less than max_num_fields. This prevents a memory exhaustion DOS
# attack via post bodies with many fields.
if max_num_fields is not None:
- num_fields = 1 + qs.count(separator)
+ num_fields = 1 + qs.count(separator)
if max_num_fields < num_fields:
raise ValueError('Max number of fields exceeded')
- pairs = [s1 for s1 in qs.split(separator)]
+ pairs = [s1 for s1 in qs.split(separator)]
r = []
for name_value in pairs:
if not name_value and not strict_parsing:
@@ -820,32 +820,32 @@ def quote(string, safe='/', encoding=None, errors=None):
"""quote('abc def') -> 'abc%20def'
Each part of a URL, e.g. the path info, the query, etc., has a
- different set of reserved characters that must be quoted. The
- quote function offers a cautious (not minimal) way to quote a
- string for most of these parts.
+ different set of reserved characters that must be quoted. The
+ quote function offers a cautious (not minimal) way to quote a
+ string for most of these parts.
- RFC 3986 Uniform Resource Identifier (URI): Generic Syntax lists
- the following (un)reserved characters.
+ RFC 3986 Uniform Resource Identifier (URI): Generic Syntax lists
+ the following (un)reserved characters.
- unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
- reserved = gen-delims / sub-delims
- gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
- sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
- / "*" / "+" / "," / ";" / "="
+ unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
+ reserved = gen-delims / sub-delims
+ gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
+ sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
+ / "*" / "+" / "," / ";" / "="
- Each of the reserved characters is reserved in some component of a URL,
+ Each of the reserved characters is reserved in some component of a URL,
but not necessarily in all of them.
- The quote function %-escapes all characters that are neither in the
- unreserved chars ("always safe") nor the additional chars set via the
- safe arg.
-
- The default for the safe arg is '/'. The character is reserved, but in
- typical usage the quote function is being called on a path where the
- existing slash characters are to be preserved.
-
+ The quote function %-escapes all characters that are neither in the
+ unreserved chars ("always safe") nor the additional chars set via the
+ safe arg.
+
+ The default for the safe arg is '/'. The character is reserved, but in
+ typical usage the quote function is being called on a path where the
+ existing slash characters are to be preserved.
+
Python 3.7 updates from using RFC 2396 to RFC 3986 to quote URL strings.
- Now, "~" is included in the set of unreserved characters.
+ Now, "~" is included in the set of unreserved characters.
string and safe may be either str or bytes objects. encoding and errors
must not be specified if string is a bytes object.
@@ -989,14 +989,14 @@ def urlencode(query, doseq=False, safe='', encoding=None, errors=None,
l.append(k + '=' + elt)
return '&'.join(l)
-
+
def to_bytes(url):
- warnings.warn("urllib.parse.to_bytes() is deprecated as of 3.8",
- DeprecationWarning, stacklevel=2)
- return _to_bytes(url)
-
-
-def _to_bytes(url):
+ warnings.warn("urllib.parse.to_bytes() is deprecated as of 3.8",
+ DeprecationWarning, stacklevel=2)
+ return _to_bytes(url)
+
+
+def _to_bytes(url):
"""to_bytes(u"URL") --> 'URL'."""
# Most URL schemes require ASCII. If that changes, the conversion
# can be relaxed.
@@ -1009,29 +1009,29 @@ def _to_bytes(url):
" contains non-ASCII characters")
return url
-
+
def unwrap(url):
- """Transform a string like '<URL:scheme://host/path>' into 'scheme://host/path'.
-
- The string is returned unchanged if it's not a wrapped URL.
- """
+ """Transform a string like '<URL:scheme://host/path>' into 'scheme://host/path'.
+
+ The string is returned unchanged if it's not a wrapped URL.
+ """
url = str(url).strip()
if url[:1] == '<' and url[-1:] == '>':
url = url[1:-1].strip()
- if url[:4] == 'URL:':
- url = url[4:].strip()
+ if url[:4] == 'URL:':
+ url = url[4:].strip()
return url
-
-def splittype(url):
- warnings.warn("urllib.parse.splittype() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splittype(url)
-
-
+
+def splittype(url):
+ warnings.warn("urllib.parse.splittype() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splittype(url)
+
+
_typeprog = None
-def _splittype(url):
+def _splittype(url):
"""splittype('type:opaquestring') --> 'type', 'opaquestring'."""
global _typeprog
if _typeprog is None:
@@ -1043,16 +1043,16 @@ def _splittype(url):
return scheme.lower(), data
return None, url
-
-def splithost(url):
- warnings.warn("urllib.parse.splithost() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splithost(url)
-
-
+
+def splithost(url):
+ warnings.warn("urllib.parse.splithost() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splithost(url)
+
+
_hostprog = None
-def _splithost(url):
+def _splithost(url):
"""splithost('//host[:port]/path') --> 'host[:port]', '/path'."""
global _hostprog
if _hostprog is None:
@@ -1066,64 +1066,64 @@ def _splithost(url):
return host_port, path
return None, url
-
+
def splituser(host):
- warnings.warn("urllib.parse.splituser() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splituser(host)
-
-
-def _splituser(host):
+ warnings.warn("urllib.parse.splituser() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splituser(host)
+
+
+def _splituser(host):
"""splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'."""
user, delim, host = host.rpartition('@')
return (user if delim else None), host
-
+
def splitpasswd(user):
- warnings.warn("urllib.parse.splitpasswd() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splitpasswd(user)
-
-
-def _splitpasswd(user):
+ warnings.warn("urllib.parse.splitpasswd() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splitpasswd(user)
+
+
+def _splitpasswd(user):
"""splitpasswd('user:passwd') -> 'user', 'passwd'."""
user, delim, passwd = user.partition(':')
return user, (passwd if delim else None)
-
-def splitport(host):
- warnings.warn("urllib.parse.splitport() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splitport(host)
-
-
+
+def splitport(host):
+ warnings.warn("urllib.parse.splitport() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splitport(host)
+
+
# splittag('/path#tag') --> '/path', 'tag'
_portprog = None
-def _splitport(host):
+def _splitport(host):
"""splitport('host:port') --> 'host', 'port'."""
global _portprog
if _portprog is None:
- _portprog = re.compile('(.*):([0-9]*)', re.DOTALL)
+ _portprog = re.compile('(.*):([0-9]*)', re.DOTALL)
- match = _portprog.fullmatch(host)
+ match = _portprog.fullmatch(host)
if match:
host, port = match.groups()
if port:
return host, port
return host, None
-
+
def splitnport(host, defport=-1):
- warnings.warn("urllib.parse.splitnport() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splitnport(host, defport)
-
-
-def _splitnport(host, defport=-1):
+ warnings.warn("urllib.parse.splitnport() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splitnport(host, defport)
+
+
+def _splitnport(host, defport=-1):
"""Split host and port, returning numeric port.
Return given default port if no ':' found; defaults to -1.
Return numerical port if a valid number are found after ':'.
@@ -1139,59 +1139,59 @@ def _splitnport(host, defport=-1):
return host, nport
return host, defport
-
+
def splitquery(url):
- warnings.warn("urllib.parse.splitquery() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splitquery(url)
-
-
-def _splitquery(url):
+ warnings.warn("urllib.parse.splitquery() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splitquery(url)
+
+
+def _splitquery(url):
"""splitquery('/path?query') --> '/path', 'query'."""
path, delim, query = url.rpartition('?')
if delim:
return path, query
return url, None
-
+
def splittag(url):
- warnings.warn("urllib.parse.splittag() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splittag(url)
-
-
-def _splittag(url):
+ warnings.warn("urllib.parse.splittag() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splittag(url)
+
+
+def _splittag(url):
"""splittag('/path#tag') --> '/path', 'tag'."""
path, delim, tag = url.rpartition('#')
if delim:
return path, tag
return url, None
-
+
def splitattr(url):
- warnings.warn("urllib.parse.splitattr() is deprecated as of 3.8, "
- "use urllib.parse.urlparse() instead",
- DeprecationWarning, stacklevel=2)
- return _splitattr(url)
-
-
-def _splitattr(url):
+ warnings.warn("urllib.parse.splitattr() is deprecated as of 3.8, "
+ "use urllib.parse.urlparse() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splitattr(url)
+
+
+def _splitattr(url):
"""splitattr('/path;attr1=value1;attr2=value2;...') ->
'/path', ['attr1=value1', 'attr2=value2', ...]."""
words = url.split(';')
return words[0], words[1:]
-
+
def splitvalue(attr):
- warnings.warn("urllib.parse.splitvalue() is deprecated as of 3.8, "
- "use urllib.parse.parse_qsl() instead",
- DeprecationWarning, stacklevel=2)
- return _splitvalue(attr)
-
-
-def _splitvalue(attr):
+ warnings.warn("urllib.parse.splitvalue() is deprecated as of 3.8, "
+ "use urllib.parse.parse_qsl() instead",
+ DeprecationWarning, stacklevel=2)
+ return _splitvalue(attr)
+
+
+def _splitvalue(attr):
"""splitvalue('attr=value') --> 'attr', 'value'."""
attr, delim, value = attr.partition('=')
return attr, (value if delim else None)
diff --git a/contrib/tools/python3/src/Lib/urllib/request.py b/contrib/tools/python3/src/Lib/urllib/request.py
index 6d4053afd0..bbdc2254e3 100644
--- a/contrib/tools/python3/src/Lib/urllib/request.py
+++ b/contrib/tools/python3/src/Lib/urllib/request.py
@@ -64,7 +64,7 @@ opener = urllib.request.build_opener(proxy_support, authinfo,
# install it
urllib.request.install_opener(opener)
-f = urllib.request.urlopen('https://www.python.org/')
+f = urllib.request.urlopen('https://www.python.org/')
"""
# XXX issues:
@@ -102,8 +102,8 @@ import warnings
from urllib.error import URLError, HTTPError, ContentTooShortError
from urllib.parse import (
urlparse, urlsplit, urljoin, unwrap, quote, unquote,
- _splittype, _splithost, _splitport, _splituser, _splitpasswd,
- _splitattr, _splitquery, _splitvalue, _splittag, _to_bytes,
+ _splittype, _splithost, _splitport, _splituser, _splitpasswd,
+ _splitattr, _splitquery, _splitvalue, _splittag, _to_bytes,
unquote_to_bytes, urlunparse)
from urllib.response import addinfourl, addclosehook
@@ -164,9 +164,9 @@ def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
The *cadefault* parameter is ignored.
- This function always returns an object which can work as a
- context manager and has the properties url, headers, and status.
- See urllib.response.addinfourl for more detail on these properties.
+ This function always returns an object which can work as a
+ context manager and has the properties url, headers, and status.
+ See urllib.response.addinfourl for more detail on these properties.
For HTTP and HTTPS URLs, this function returns a http.client.HTTPResponse
object slightly modified. In addition to the three new methods above, the
@@ -234,7 +234,7 @@ def urlretrieve(url, filename=None, reporthook=None, data=None):
Returns a tuple containing the path to the newly created
data file as well as the resulting HTTPMessage object.
"""
- url_type, path = _splittype(url)
+ url_type, path = _splittype(url)
with contextlib.closing(urlopen(url, data)) as fp:
headers = fp.info()
@@ -342,7 +342,7 @@ class Request:
def full_url(self, url):
# unwrap('<URL:type://host/path>') --> 'type://host/path'
self._full_url = unwrap(url)
- self._full_url, self.fragment = _splittag(self._full_url)
+ self._full_url, self.fragment = _splittag(self._full_url)
self._parse()
@full_url.deleter
@@ -370,10 +370,10 @@ class Request:
self.data = None
def _parse(self):
- self.type, rest = _splittype(self._full_url)
+ self.type, rest = _splittype(self._full_url)
if self.type is None:
raise ValueError("unknown url type: %r" % self.full_url)
- self.host, self.selector = _splithost(rest)
+ self.host, self.selector = _splithost(rest)
if self.host:
self.host = unquote(self.host)
@@ -418,7 +418,7 @@ class Request:
self.unredirected_hdrs.pop(header_name, None)
def header_items(self):
- hdrs = {**self.unredirected_hdrs, **self.headers}
+ hdrs = {**self.unredirected_hdrs, **self.headers}
return list(hdrs.items())
class OpenerDirector:
@@ -513,7 +513,7 @@ class OpenerDirector:
meth = getattr(processor, meth_name)
req = meth(req)
- sys.audit('urllib.Request', req.full_url, req.data, req.headers, req.get_method())
+ sys.audit('urllib.Request', req.full_url, req.data, req.headers, req.get_method())
response = self._open(req, data)
# post-process response
@@ -760,7 +760,7 @@ def _parse_proxy(proxy):
According to RFC 3986, having an authority component means the URL must
have two slashes after the scheme.
"""
- scheme, r_scheme = _splittype(proxy)
+ scheme, r_scheme = _splittype(proxy)
if not r_scheme.startswith("/"):
# authority
scheme = None
@@ -771,17 +771,17 @@ def _parse_proxy(proxy):
raise ValueError("proxy URL with no authority: %r" % proxy)
# We have an authority, so for RFC 3986-compliant URLs (by ss 3.
# and 3.3.), path is empty or starts with '/'
- if '@' in r_scheme:
- host_separator = r_scheme.find('@')
- end = r_scheme.find("/", host_separator)
- else:
- end = r_scheme.find("/", 2)
+ if '@' in r_scheme:
+ host_separator = r_scheme.find('@')
+ end = r_scheme.find("/", host_separator)
+ else:
+ end = r_scheme.find("/", 2)
if end == -1:
end = None
authority = r_scheme[2:end]
- userinfo, hostport = _splituser(authority)
+ userinfo, hostport = _splituser(authority)
if userinfo is not None:
- user, password = _splitpasswd(userinfo)
+ user, password = _splitpasswd(userinfo)
else:
user = password = None
return scheme, user, password, hostport
@@ -796,7 +796,7 @@ class ProxyHandler(BaseHandler):
assert hasattr(proxies, 'keys'), "proxies must be a mapping"
self.proxies = proxies
for type, url in proxies.items():
- type = type.lower()
+ type = type.lower()
setattr(self, '%s_open' % type,
lambda r, proxy=url, type=type, meth=self.proxy_open:
meth(r, proxy, type))
@@ -869,7 +869,7 @@ class HTTPPasswordMgr:
scheme = None
authority = uri
path = '/'
- host, port = _splitport(authority)
+ host, port = _splitport(authority)
if default_port and port is None and scheme is not None:
dport = {"http": 80,
"https": 443,
@@ -941,15 +941,15 @@ class AbstractBasicAuthHandler:
# allow for double- and single-quoted realm values
# (single quotes are a violation of the RFC, but appear in the wild)
- rx = re.compile('(?:^|,)' # start of the string or ','
- '[ \t]*' # optional whitespaces
- '([^ \t,]+)' # scheme like "Basic"
- '[ \t]+' # mandatory whitespaces
- # realm=xxx
- # realm='xxx'
- # realm="xxx"
- 'realm=(["\']?)([^"\']*)\\2',
- re.I)
+ rx = re.compile('(?:^|,)' # start of the string or ','
+ '[ \t]*' # optional whitespaces
+ '([^ \t,]+)' # scheme like "Basic"
+ '[ \t]+' # mandatory whitespaces
+ # realm=xxx
+ # realm='xxx'
+ # realm="xxx"
+ 'realm=(["\']?)([^"\']*)\\2',
+ re.I)
# XXX could pre-emptively send auth info already accepted (RFC 2617,
# end of section 2, and section 1.2 immediately after "credentials"
@@ -961,52 +961,52 @@ class AbstractBasicAuthHandler:
self.passwd = password_mgr
self.add_password = self.passwd.add_password
- def _parse_realm(self, header):
- # parse WWW-Authenticate header: accept multiple challenges per header
- found_challenge = False
- for mo in AbstractBasicAuthHandler.rx.finditer(header):
- scheme, quote, realm = mo.groups()
- if quote not in ['"', "'"]:
- warnings.warn("Basic Auth Realm was unquoted",
- UserWarning, 3)
-
- yield (scheme, realm)
-
- found_challenge = True
-
- if not found_challenge:
- if header:
- scheme = header.split()[0]
- else:
- scheme = ''
- yield (scheme, None)
-
+ def _parse_realm(self, header):
+ # parse WWW-Authenticate header: accept multiple challenges per header
+ found_challenge = False
+ for mo in AbstractBasicAuthHandler.rx.finditer(header):
+ scheme, quote, realm = mo.groups()
+ if quote not in ['"', "'"]:
+ warnings.warn("Basic Auth Realm was unquoted",
+ UserWarning, 3)
+
+ yield (scheme, realm)
+
+ found_challenge = True
+
+ if not found_challenge:
+ if header:
+ scheme = header.split()[0]
+ else:
+ scheme = ''
+ yield (scheme, None)
+
def http_error_auth_reqed(self, authreq, host, req, headers):
# host may be an authority (without userinfo) or a URL with an
# authority
- headers = headers.get_all(authreq)
- if not headers:
- # no header found
- return
-
- unsupported = None
- for header in headers:
- for scheme, realm in self._parse_realm(header):
- if scheme.lower() != 'basic':
- unsupported = scheme
- continue
-
- if realm is not None:
- # Use the first matching Basic challenge.
- # Ignore following challenges even if they use the Basic
- # scheme.
- return self.retry_http_basic_auth(host, req, realm)
-
- if unsupported is not None:
- raise ValueError("AbstractBasicAuthHandler does not "
- "support the following scheme: %r"
- % (scheme,))
-
+ headers = headers.get_all(authreq)
+ if not headers:
+ # no header found
+ return
+
+ unsupported = None
+ for header in headers:
+ for scheme, realm in self._parse_realm(header):
+ if scheme.lower() != 'basic':
+ unsupported = scheme
+ continue
+
+ if realm is not None:
+ # Use the first matching Basic challenge.
+ # Ignore following challenges even if they use the Basic
+ # scheme.
+ return self.retry_http_basic_auth(host, req, realm)
+
+ if unsupported is not None:
+ raise ValueError("AbstractBasicAuthHandler does not "
+ "support the following scheme: %r"
+ % (scheme,))
+
def retry_http_basic_auth(self, host, req, realm):
user, pw = self.passwd.find_user_password(realm, host)
if pw is not None:
@@ -1171,11 +1171,11 @@ class AbstractDigestAuthHandler:
A2 = "%s:%s" % (req.get_method(),
# XXX selector: what about proxies and full urls
req.selector)
- # NOTE: As per RFC 2617, when server sends "auth,auth-int", the client could use either `auth`
- # or `auth-int` to the response back. we use `auth` to send the response back.
- if qop is None:
- respdig = KD(H(A1), "%s:%s" % (nonce, H(A2)))
- elif 'auth' in qop.split(','):
+ # NOTE: As per RFC 2617, when server sends "auth,auth-int", the client could use either `auth`
+ # or `auth-int` to the response back. we use `auth` to send the response back.
+ if qop is None:
+ respdig = KD(H(A1), "%s:%s" % (nonce, H(A2)))
+ elif 'auth' in qop.split(','):
if nonce == self.last_nonce:
self.nonce_count += 1
else:
@@ -1183,7 +1183,7 @@ class AbstractDigestAuthHandler:
self.last_nonce = nonce
ncvalue = '%08x' % self.nonce_count
cnonce = self.get_cnonce(nonce)
- noncebit = "%s:%s:%s:%s:%s" % (nonce, ncvalue, cnonce, 'auth', H(A2))
+ noncebit = "%s:%s:%s:%s:%s" % (nonce, ncvalue, cnonce, 'auth', H(A2))
respdig = KD(H(A1), noncebit)
else:
# XXX handle auth-int.
@@ -1291,8 +1291,8 @@ class AbstractHTTPHandler(BaseHandler):
sel_host = host
if request.has_proxy():
- scheme, sel = _splittype(request.selector)
- sel_host, sel_path = _splithost(sel)
+ scheme, sel = _splittype(request.selector)
+ sel_host, sel_path = _splithost(sel)
if not request.has_header('Host'):
request.add_unredirected_header('Host', sel_host)
for name, value in self.parent.addheaders:
@@ -1508,7 +1508,7 @@ class FileHandler(BaseHandler):
'Content-type: %s\nContent-length: %d\nLast-modified: %s\n' %
(mtype or 'text/plain', size, modified))
if host:
- host, port = _splitport(host)
+ host, port = _splitport(host)
if not host or \
(not port and _safe_gethostbyname(host) in self.get_names()):
if host:
@@ -1533,16 +1533,16 @@ class FTPHandler(BaseHandler):
host = req.host
if not host:
raise URLError('ftp error: no host given')
- host, port = _splitport(host)
+ host, port = _splitport(host)
if port is None:
port = ftplib.FTP_PORT
else:
port = int(port)
# username/password handling
- user, host = _splituser(host)
+ user, host = _splituser(host)
if user:
- user, passwd = _splitpasswd(user)
+ user, passwd = _splitpasswd(user)
else:
passwd = None
host = unquote(host)
@@ -1553,7 +1553,7 @@ class FTPHandler(BaseHandler):
host = socket.gethostbyname(host)
except OSError as msg:
raise URLError(msg)
- path, attrs = _splitattr(req.selector)
+ path, attrs = _splitattr(req.selector)
dirs = path.split('/')
dirs = list(map(unquote, dirs))
dirs, file = dirs[:-1], dirs[-1]
@@ -1563,7 +1563,7 @@ class FTPHandler(BaseHandler):
fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout)
type = file and 'I' or 'D'
for attr in attrs:
- attr, value = _splitvalue(attr)
+ attr, value = _splitvalue(attr)
if attr.lower() == 'type' and \
value in ('a', 'A', 'i', 'I', 'd', 'D'):
type = value.upper()
@@ -1757,26 +1757,26 @@ class URLopener:
# External interface
def open(self, fullurl, data=None):
"""Use URLopener().open(file) instead of open(file, 'r')."""
- fullurl = unwrap(_to_bytes(fullurl))
+ fullurl = unwrap(_to_bytes(fullurl))
fullurl = quote(fullurl, safe="%/:=&?~#+!$,;'@()*[]|")
if self.tempcache and fullurl in self.tempcache:
filename, headers = self.tempcache[fullurl]
fp = open(filename, 'rb')
return addinfourl(fp, headers, fullurl)
- urltype, url = _splittype(fullurl)
+ urltype, url = _splittype(fullurl)
if not urltype:
urltype = 'file'
if urltype in self.proxies:
proxy = self.proxies[urltype]
- urltype, proxyhost = _splittype(proxy)
- host, selector = _splithost(proxyhost)
+ urltype, proxyhost = _splittype(proxy)
+ host, selector = _splithost(proxyhost)
url = (host, fullurl) # Signal special case to open_*()
else:
proxy = None
name = 'open_' + urltype
self.type = urltype
name = name.replace('-', '_')
- if not hasattr(self, name) or name == 'open_local_file':
+ if not hasattr(self, name) or name == 'open_local_file':
if proxy:
return self.open_unknown_proxy(proxy, fullurl, data)
else:
@@ -1793,29 +1793,29 @@ class URLopener:
def open_unknown(self, fullurl, data=None):
"""Overridable interface to open unknown URL type."""
- type, url = _splittype(fullurl)
+ type, url = _splittype(fullurl)
raise OSError('url error', 'unknown url type', type)
def open_unknown_proxy(self, proxy, fullurl, data=None):
"""Overridable interface to open unknown URL type."""
- type, url = _splittype(fullurl)
+ type, url = _splittype(fullurl)
raise OSError('url error', 'invalid proxy for %s' % type, proxy)
# External interface
def retrieve(self, url, filename=None, reporthook=None, data=None):
"""retrieve(url) returns (filename, headers) for a local object
or (tempfilename, headers) for a remote object."""
- url = unwrap(_to_bytes(url))
+ url = unwrap(_to_bytes(url))
if self.tempcache and url in self.tempcache:
return self.tempcache[url]
- type, url1 = _splittype(url)
+ type, url1 = _splittype(url)
if filename is None and (not type or type == 'file'):
try:
fp = self.open_local_file(url1)
hdrs = fp.info()
fp.close()
- return url2pathname(_splithost(url1)[1]), hdrs
- except OSError:
+ return url2pathname(_splithost(url1)[1]), hdrs
+ except OSError:
pass
fp = self.open(url, data)
try:
@@ -1823,10 +1823,10 @@ class URLopener:
if filename:
tfp = open(filename, 'wb')
else:
- garbage, path = _splittype(url)
- garbage, path = _splithost(path or "")
- path, garbage = _splitquery(path or "")
- path, garbage = _splitattr(path or "")
+ garbage, path = _splittype(url)
+ garbage, path = _splithost(path or "")
+ path, garbage = _splitquery(path or "")
+ path, garbage = _splitattr(path or "")
suffix = os.path.splitext(path)[1]
(fd, filename) = tempfile.mkstemp(suffix)
self.__tempfiles.append(filename)
@@ -1883,25 +1883,25 @@ class URLopener:
user_passwd = None
proxy_passwd= None
if isinstance(url, str):
- host, selector = _splithost(url)
+ host, selector = _splithost(url)
if host:
- user_passwd, host = _splituser(host)
+ user_passwd, host = _splituser(host)
host = unquote(host)
realhost = host
else:
host, selector = url
# check whether the proxy contains authorization information
- proxy_passwd, host = _splituser(host)
+ proxy_passwd, host = _splituser(host)
# now we proceed with the url we want to obtain
- urltype, rest = _splittype(selector)
+ urltype, rest = _splittype(selector)
url = rest
user_passwd = None
if urltype.lower() != 'http':
realhost = None
else:
- realhost, rest = _splithost(rest)
+ realhost, rest = _splithost(rest)
if realhost:
- user_passwd, realhost = _splituser(realhost)
+ user_passwd, realhost = _splituser(realhost)
if user_passwd:
selector = "%s://%s%s" % (urltype, realhost, rest)
if proxy_bypass(realhost):
@@ -2007,7 +2007,7 @@ class URLopener:
"""Use local file."""
import email.utils
import mimetypes
- host, file = _splithost(url)
+ host, file = _splithost(url)
localname = url2pathname(file)
try:
stats = os.stat(localname)
@@ -2024,7 +2024,7 @@ class URLopener:
if file[:1] == '/':
urlfile = 'file://' + file
return addinfourl(open(localname, 'rb'), headers, urlfile)
- host, port = _splitport(host)
+ host, port = _splitport(host)
if (not port
and socket.gethostbyname(host) in ((localhost(),) + thishost())):
urlfile = file
@@ -2040,11 +2040,11 @@ class URLopener:
if not isinstance(url, str):
raise URLError('ftp error: proxy support for ftp protocol currently not implemented')
import mimetypes
- host, path = _splithost(url)
+ host, path = _splithost(url)
if not host: raise URLError('ftp error: no host given')
- host, port = _splitport(host)
- user, host = _splituser(host)
- if user: user, passwd = _splitpasswd(user)
+ host, port = _splitport(host)
+ user, host = _splituser(host)
+ if user: user, passwd = _splitpasswd(user)
else: passwd = None
host = unquote(host)
user = unquote(user or '')
@@ -2055,7 +2055,7 @@ class URLopener:
port = ftplib.FTP_PORT
else:
port = int(port)
- path, attrs = _splitattr(path)
+ path, attrs = _splitattr(path)
path = unquote(path)
dirs = path.split('/')
dirs, file = dirs[:-1], dirs[-1]
@@ -2077,7 +2077,7 @@ class URLopener:
if not file: type = 'D'
else: type = 'I'
for attr in attrs:
- attr, value = _splitvalue(attr)
+ attr, value = _splitvalue(attr)
if attr.lower() == 'type' and \
value in ('a', 'A', 'i', 'I', 'd', 'D'):
type = value.upper()
@@ -2260,11 +2260,11 @@ class FancyURLopener(URLopener):
return getattr(self,name)(url, realm, data)
def retry_proxy_http_basic_auth(self, url, realm, data=None):
- host, selector = _splithost(url)
+ host, selector = _splithost(url)
newurl = 'http://' + host + selector
proxy = self.proxies['http']
- urltype, proxyhost = _splittype(proxy)
- proxyhost, proxyselector = _splithost(proxyhost)
+ urltype, proxyhost = _splittype(proxy)
+ proxyhost, proxyselector = _splithost(proxyhost)
i = proxyhost.find('@') + 1
proxyhost = proxyhost[i:]
user, passwd = self.get_user_passwd(proxyhost, realm, i)
@@ -2278,11 +2278,11 @@ class FancyURLopener(URLopener):
return self.open(newurl, data)
def retry_proxy_https_basic_auth(self, url, realm, data=None):
- host, selector = _splithost(url)
+ host, selector = _splithost(url)
newurl = 'https://' + host + selector
proxy = self.proxies['https']
- urltype, proxyhost = _splittype(proxy)
- proxyhost, proxyselector = _splithost(proxyhost)
+ urltype, proxyhost = _splittype(proxy)
+ proxyhost, proxyselector = _splithost(proxyhost)
i = proxyhost.find('@') + 1
proxyhost = proxyhost[i:]
user, passwd = self.get_user_passwd(proxyhost, realm, i)
@@ -2296,7 +2296,7 @@ class FancyURLopener(URLopener):
return self.open(newurl, data)
def retry_http_basic_auth(self, url, realm, data=None):
- host, selector = _splithost(url)
+ host, selector = _splithost(url)
i = host.find('@') + 1
host = host[i:]
user, passwd = self.get_user_passwd(host, realm, i)
@@ -2310,7 +2310,7 @@ class FancyURLopener(URLopener):
return self.open(newurl, data)
def retry_https_basic_auth(self, url, realm, data=None):
- host, selector = _splithost(url)
+ host, selector = _splithost(url)
i = host.find('@') + 1
host = host[i:]
user, passwd = self.get_user_passwd(host, realm, i)
@@ -2527,26 +2527,26 @@ def proxy_bypass_environment(host, proxies=None):
try:
no_proxy = proxies['no']
except KeyError:
- return False
+ return False
# '*' is special case for always bypass
if no_proxy == '*':
- return True
- host = host.lower()
+ return True
+ host = host.lower()
# strip port off host
- hostonly, port = _splitport(host)
+ hostonly, port = _splitport(host)
# check if the host ends with any of the DNS suffixes
- for name in no_proxy.split(','):
- name = name.strip()
+ for name in no_proxy.split(','):
+ name = name.strip()
if name:
name = name.lstrip('.') # ignore leading dots
- name = name.lower()
- if hostonly == name or host == name:
- return True
- name = '.' + name
- if hostonly.endswith(name) or host.endswith(name):
- return True
+ name = name.lower()
+ if hostonly == name or host == name:
+ return True
+ name = '.' + name
+ if hostonly.endswith(name) or host.endswith(name):
+ return True
# otherwise, don't bypass
- return False
+ return False
# This code tests an OSX specific data structure but is testable on all
@@ -2565,7 +2565,7 @@ def _proxy_bypass_macosx_sysconf(host, proxy_settings):
"""
from fnmatch import fnmatch
- hostonly, port = _splitport(host)
+ hostonly, port = _splitport(host)
def ip2num(ipAddr):
parts = ipAddr.split('.')
@@ -2600,11 +2600,11 @@ def _proxy_bypass_macosx_sysconf(host, proxy_settings):
mask = 8 * (m.group(1).count('.') + 1)
else:
mask = int(mask[1:])
-
- if mask < 0 or mask > 32:
- # System libraries ignore invalid prefix lengths
- continue
-
+
+ if mask < 0 or mask > 32:
+ # System libraries ignore invalid prefix lengths
+ continue
+
mask = 32 - mask
if (hostIP >> mask) == (base >> mask):
@@ -2677,7 +2677,7 @@ elif os.name == 'nt':
for p in proxyServer.split(';'):
protocol, address = p.split('=', 1)
# See if address has a type:// prefix
- if not re.match('(?:[^/:]+)://', address):
+ if not re.match('(?:[^/:]+)://', address):
address = '%s://%s' % (protocol, address)
proxies[protocol] = address
else:
@@ -2724,7 +2724,7 @@ elif os.name == 'nt':
if not proxyEnable or not proxyOverride:
return 0
# try to make a host list from name and IP address.
- rawHost, port = _splitport(host)
+ rawHost, port = _splitport(host)
host = [rawHost]
try:
addr = socket.gethostbyname(rawHost)
diff --git a/contrib/tools/python3/src/Lib/urllib/response.py b/contrib/tools/python3/src/Lib/urllib/response.py
index aab657304c..5a2c3cc78c 100644
--- a/contrib/tools/python3/src/Lib/urllib/response.py
+++ b/contrib/tools/python3/src/Lib/urllib/response.py
@@ -73,10 +73,10 @@ class addinfourl(addinfo):
self.url = url
self.code = code
- @property
- def status(self):
- return self.code
-
+ @property
+ def status(self):
+ return self.code
+
def getcode(self):
return self.code
diff --git a/contrib/tools/python3/src/Lib/urllib/robotparser.py b/contrib/tools/python3/src/Lib/urllib/robotparser.py
index 71f74f4dc0..c58565e394 100644
--- a/contrib/tools/python3/src/Lib/urllib/robotparser.py
+++ b/contrib/tools/python3/src/Lib/urllib/robotparser.py
@@ -27,7 +27,7 @@ class RobotFileParser:
def __init__(self, url=''):
self.entries = []
- self.sitemaps = []
+ self.sitemaps = []
self.default_entry = None
self.disallow_all = False
self.allow_all = False
@@ -142,12 +142,12 @@ class RobotFileParser:
and numbers[1].strip().isdigit()):
entry.req_rate = RequestRate(int(numbers[0]), int(numbers[1]))
state = 2
- elif line[0] == "sitemap":
- # According to http://www.sitemaps.org/protocol.html
- # "This directive is independent of the user-agent line,
- # so it doesn't matter where you place it in your file."
- # Therefore we do not change the state of the parser.
- self.sitemaps.append(line[1])
+ elif line[0] == "sitemap":
+ # According to http://www.sitemaps.org/protocol.html
+ # "This directive is independent of the user-agent line,
+ # so it doesn't matter where you place it in your file."
+ # Therefore we do not change the state of the parser.
+ self.sitemaps.append(line[1])
if state == 2:
self._add_entry(entry)
@@ -186,9 +186,9 @@ class RobotFileParser:
for entry in self.entries:
if entry.applies_to(useragent):
return entry.delay
- if self.default_entry:
- return self.default_entry.delay
- return None
+ if self.default_entry:
+ return self.default_entry.delay
+ return None
def request_rate(self, useragent):
if not self.mtime():
@@ -196,20 +196,20 @@ class RobotFileParser:
for entry in self.entries:
if entry.applies_to(useragent):
return entry.req_rate
- if self.default_entry:
- return self.default_entry.req_rate
- return None
-
- def site_maps(self):
- if not self.sitemaps:
- return None
- return self.sitemaps
-
+ if self.default_entry:
+ return self.default_entry.req_rate
+ return None
+
+ def site_maps(self):
+ if not self.sitemaps:
+ return None
+ return self.sitemaps
+
def __str__(self):
entries = self.entries
if self.default_entry is not None:
entries = entries + [self.default_entry]
- return '\n\n'.join(map(str, entries))
+ return '\n\n'.join(map(str, entries))
class RuleLine:
diff --git a/contrib/tools/python3/src/Lib/uu.py b/contrib/tools/python3/src/Lib/uu.py
index b7874a13da..9f1f37f1a6 100644
--- a/contrib/tools/python3/src/Lib/uu.py
+++ b/contrib/tools/python3/src/Lib/uu.py
@@ -73,14 +73,14 @@ def encode(in_file, out_file, name=None, mode=None, *, backtick=False):
name = '-'
if mode is None:
mode = 0o666
-
+
+ #
+ # Remove newline chars from name
+ #
+ name = name.replace('\n','\\n')
+ name = name.replace('\r','\\r')
+
#
- # Remove newline chars from name
- #
- name = name.replace('\n','\\n')
- name = name.replace('\r','\\r')
-
- #
# Write the data
#
out_file.write(('begin %o %s\n' % ((mode & 0o777), name)).encode("ascii"))
diff --git a/contrib/tools/python3/src/Lib/uuid.py b/contrib/tools/python3/src/Lib/uuid.py
index 1ef891ce6f..5ae0a3e5fa 100644
--- a/contrib/tools/python3/src/Lib/uuid.py
+++ b/contrib/tools/python3/src/Lib/uuid.py
@@ -52,21 +52,21 @@ from enum import Enum
__author__ = 'Ka-Ping Yee <ping@zesty.ca>'
-# The recognized platforms - known behaviors
-if sys.platform in ('win32', 'darwin'):
- _AIX = _LINUX = False
-else:
- import platform
- _platform_system = platform.system()
- _AIX = _platform_system == 'AIX'
- _LINUX = _platform_system == 'Linux'
-
-_MAC_DELIM = b':'
-_MAC_OMITS_LEADING_ZEROES = False
-if _AIX:
- _MAC_DELIM = b'.'
- _MAC_OMITS_LEADING_ZEROES = True
-
+# The recognized platforms - known behaviors
+if sys.platform in ('win32', 'darwin'):
+ _AIX = _LINUX = False
+else:
+ import platform
+ _platform_system = platform.system()
+ _AIX = _platform_system == 'AIX'
+ _LINUX = _platform_system == 'Linux'
+
+_MAC_DELIM = b':'
+_MAC_OMITS_LEADING_ZEROES = False
+if _AIX:
+ _MAC_DELIM = b'.'
+ _MAC_OMITS_LEADING_ZEROES = True
+
RESERVED_NCS, RFC_4122, RESERVED_MICROSOFT, RESERVED_FUTURE = [
'reserved for NCS compatibility', 'specified in RFC 4122',
'reserved for Microsoft compatibility', 'reserved for future definition']
@@ -133,8 +133,8 @@ class UUID:
uuid_generate_time_safe(3).
"""
- __slots__ = ('int', 'is_safe', '__weakref__')
-
+ __slots__ = ('int', 'is_safe', '__weakref__')
+
def __init__(self, hex=None, bytes=None, bytes_le=None, fields=None,
int=None, version=None,
*, is_safe=SafeUUID.unknown):
@@ -218,23 +218,23 @@ class UUID:
# Set the version number.
int &= ~(0xf000 << 64)
int |= version << 76
- object.__setattr__(self, 'int', int)
- object.__setattr__(self, 'is_safe', is_safe)
+ object.__setattr__(self, 'int', int)
+ object.__setattr__(self, 'is_safe', is_safe)
def __getstate__(self):
- d = {'int': self.int}
+ d = {'int': self.int}
if self.is_safe != SafeUUID.unknown:
# is_safe is a SafeUUID instance. Return just its value, so that
# it can be un-pickled in older Python versions without SafeUUID.
- d['is_safe'] = self.is_safe.value
- return d
+ d['is_safe'] = self.is_safe.value
+ return d
def __setstate__(self, state):
- object.__setattr__(self, 'int', state['int'])
+ object.__setattr__(self, 'int', state['int'])
# is_safe was added in 3.7; it is also omitted when it is "unknown"
- object.__setattr__(self, 'is_safe',
- SafeUUID(state['is_safe'])
- if 'is_safe' in state else SafeUUID.unknown)
+ object.__setattr__(self, 'is_safe',
+ SafeUUID(state['is_safe'])
+ if 'is_safe' in state else SafeUUID.unknown)
def __eq__(self, other):
if isinstance(other, UUID):
@@ -355,33 +355,33 @@ class UUID:
if self.variant == RFC_4122:
return int((self.int >> 76) & 0xf)
-
-def _get_command_stdout(command, *args):
- import io, os, shutil, subprocess
-
- try:
- path_dirs = os.environ.get('PATH', os.defpath).split(os.pathsep)
- path_dirs.extend(['/sbin', '/usr/sbin'])
- executable = shutil.which(command, path=os.pathsep.join(path_dirs))
+
+def _get_command_stdout(command, *args):
+ import io, os, shutil, subprocess
+
+ try:
+ path_dirs = os.environ.get('PATH', os.defpath).split(os.pathsep)
+ path_dirs.extend(['/sbin', '/usr/sbin'])
+ executable = shutil.which(command, path=os.pathsep.join(path_dirs))
if executable is None:
return None
- # LC_ALL=C to ensure English output, stderr=DEVNULL to prevent output
- # on stderr (Note: we don't have an example where the words we search
- # for are actually localized, but in theory some system could do so.)
- env = dict(os.environ)
- env['LC_ALL'] = 'C'
- proc = subprocess.Popen((executable,) + args,
- stdout=subprocess.PIPE,
- stderr=subprocess.DEVNULL,
- env=env)
- if not proc:
- return None
- stdout, stderr = proc.communicate()
- return io.BytesIO(stdout)
- except (OSError, subprocess.SubprocessError):
- return None
-
-
+ # LC_ALL=C to ensure English output, stderr=DEVNULL to prevent output
+ # on stderr (Note: we don't have an example where the words we search
+ # for are actually localized, but in theory some system could do so.)
+ env = dict(os.environ)
+ env['LC_ALL'] = 'C'
+ proc = subprocess.Popen((executable,) + args,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.DEVNULL,
+ env=env)
+ if not proc:
+ return None
+ stdout, stderr = proc.communicate()
+ return io.BytesIO(stdout)
+ except (OSError, subprocess.SubprocessError):
+ return None
+
+
# For MAC (a.k.a. IEEE 802, or EUI-48) addresses, the second least significant
# bit of the first octet signifies whether the MAC address is universally (0)
# or locally (1) administered. Network cards from hardware manufacturers will
@@ -400,114 +400,114 @@ def _get_command_stdout(command, *args):
def _is_universal(mac):
return not (mac & (1 << 41))
-
-def _find_mac_near_keyword(command, args, keywords, get_word_index):
- """Searches a command's output for a MAC address near a keyword.
-
- Each line of words in the output is case-insensitively searched for
- any of the given keywords. Upon a match, get_word_index is invoked
- to pick a word from the line, given the index of the match. For
- example, lambda i: 0 would get the first word on the line, while
- lambda i: i - 1 would get the word preceding the keyword.
- """
- stdout = _get_command_stdout(command, args)
- if stdout is None:
- return None
-
+
+def _find_mac_near_keyword(command, args, keywords, get_word_index):
+ """Searches a command's output for a MAC address near a keyword.
+
+ Each line of words in the output is case-insensitively searched for
+ any of the given keywords. Upon a match, get_word_index is invoked
+ to pick a word from the line, given the index of the match. For
+ example, lambda i: 0 would get the first word on the line, while
+ lambda i: i - 1 would get the word preceding the keyword.
+ """
+ stdout = _get_command_stdout(command, args)
+ if stdout is None:
+ return None
+
first_local_mac = None
- for line in stdout:
- words = line.lower().rstrip().split()
- for i in range(len(words)):
- if words[i] in keywords:
- try:
- word = words[get_word_index(i)]
- mac = int(word.replace(_MAC_DELIM, b''), 16)
- except (ValueError, IndexError):
- # Virtual interfaces, such as those provided by
- # VPNs, do not have a colon-delimited MAC address
- # as expected, but a 16-byte HWAddr separated by
- # dashes. These should be ignored in favor of a
- # real MAC address
- pass
- else:
- if _is_universal(mac):
- return mac
- first_local_mac = first_local_mac or mac
+ for line in stdout:
+ words = line.lower().rstrip().split()
+ for i in range(len(words)):
+ if words[i] in keywords:
+ try:
+ word = words[get_word_index(i)]
+ mac = int(word.replace(_MAC_DELIM, b''), 16)
+ except (ValueError, IndexError):
+ # Virtual interfaces, such as those provided by
+ # VPNs, do not have a colon-delimited MAC address
+ # as expected, but a 16-byte HWAddr separated by
+ # dashes. These should be ignored in favor of a
+ # real MAC address
+ pass
+ else:
+ if _is_universal(mac):
+ return mac
+ first_local_mac = first_local_mac or mac
return first_local_mac or None
-
-def _parse_mac(word):
- # Accept 'HH:HH:HH:HH:HH:HH' MAC address (ex: '52:54:00:9d:0e:67'),
- # but reject IPv6 address (ex: 'fe80::5054:ff:fe9' or '123:2:3:4:5:6:7:8').
- #
- # Virtual interfaces, such as those provided by VPNs, do not have a
- # colon-delimited MAC address as expected, but a 16-byte HWAddr separated
- # by dashes. These should be ignored in favor of a real MAC address
- parts = word.split(_MAC_DELIM)
- if len(parts) != 6:
- return
- if _MAC_OMITS_LEADING_ZEROES:
- # (Only) on AIX the macaddr value given is not prefixed by 0, e.g.
- # en0 1500 link#2 fa.bc.de.f7.62.4 110854824 0 160133733 0 0
- # not
- # en0 1500 link#2 fa.bc.de.f7.62.04 110854824 0 160133733 0 0
- if not all(1 <= len(part) <= 2 for part in parts):
- return
- hexstr = b''.join(part.rjust(2, b'0') for part in parts)
- else:
- if not all(len(part) == 2 for part in parts):
- return
- hexstr = b''.join(parts)
- try:
- return int(hexstr, 16)
- except ValueError:
- return
-
-
-def _find_mac_under_heading(command, args, heading):
- """Looks for a MAC address under a heading in a command's output.
-
- The first line of words in the output is searched for the given
- heading. Words at the same word index as the heading in subsequent
- lines are then examined to see if they look like MAC addresses.
- """
- stdout = _get_command_stdout(command, args)
- if stdout is None:
- return None
-
- keywords = stdout.readline().rstrip().split()
- try:
- column_index = keywords.index(heading)
- except ValueError:
- return None
-
- first_local_mac = None
- for line in stdout:
- words = line.rstrip().split()
- try:
- word = words[column_index]
- except IndexError:
- continue
-
- mac = _parse_mac(word)
- if mac is None:
- continue
- if _is_universal(mac):
- return mac
- if first_local_mac is None:
- first_local_mac = mac
-
- return first_local_mac
-
-
-# The following functions call external programs to 'get' a macaddr value to
-# be used as basis for an uuid
+
+def _parse_mac(word):
+ # Accept 'HH:HH:HH:HH:HH:HH' MAC address (ex: '52:54:00:9d:0e:67'),
+ # but reject IPv6 address (ex: 'fe80::5054:ff:fe9' or '123:2:3:4:5:6:7:8').
+ #
+ # Virtual interfaces, such as those provided by VPNs, do not have a
+ # colon-delimited MAC address as expected, but a 16-byte HWAddr separated
+ # by dashes. These should be ignored in favor of a real MAC address
+ parts = word.split(_MAC_DELIM)
+ if len(parts) != 6:
+ return
+ if _MAC_OMITS_LEADING_ZEROES:
+ # (Only) on AIX the macaddr value given is not prefixed by 0, e.g.
+ # en0 1500 link#2 fa.bc.de.f7.62.4 110854824 0 160133733 0 0
+ # not
+ # en0 1500 link#2 fa.bc.de.f7.62.04 110854824 0 160133733 0 0
+ if not all(1 <= len(part) <= 2 for part in parts):
+ return
+ hexstr = b''.join(part.rjust(2, b'0') for part in parts)
+ else:
+ if not all(len(part) == 2 for part in parts):
+ return
+ hexstr = b''.join(parts)
+ try:
+ return int(hexstr, 16)
+ except ValueError:
+ return
+
+
+def _find_mac_under_heading(command, args, heading):
+ """Looks for a MAC address under a heading in a command's output.
+
+ The first line of words in the output is searched for the given
+ heading. Words at the same word index as the heading in subsequent
+ lines are then examined to see if they look like MAC addresses.
+ """
+ stdout = _get_command_stdout(command, args)
+ if stdout is None:
+ return None
+
+ keywords = stdout.readline().rstrip().split()
+ try:
+ column_index = keywords.index(heading)
+ except ValueError:
+ return None
+
+ first_local_mac = None
+ for line in stdout:
+ words = line.rstrip().split()
+ try:
+ word = words[column_index]
+ except IndexError:
+ continue
+
+ mac = _parse_mac(word)
+ if mac is None:
+ continue
+ if _is_universal(mac):
+ return mac
+ if first_local_mac is None:
+ first_local_mac = mac
+
+ return first_local_mac
+
+
+# The following functions call external programs to 'get' a macaddr value to
+# be used as basis for an uuid
def _ifconfig_getnode():
"""Get the hardware address on Unix by running ifconfig."""
# This works on Linux ('' or '-a'), Tru64 ('-av'), but not all Unixes.
keywords = (b'hwaddr', b'ether', b'address:', b'lladdr')
for args in ('', '-a', '-av'):
- mac = _find_mac_near_keyword('ifconfig', args, keywords, lambda i: i+1)
+ mac = _find_mac_near_keyword('ifconfig', args, keywords, lambda i: i+1)
if mac:
return mac
return None
@@ -515,7 +515,7 @@ def _ifconfig_getnode():
def _ip_getnode():
"""Get the hardware address on Unix by running ip."""
# This works on Linux with iproute2.
- mac = _find_mac_near_keyword('ip', 'link', [b'link/ether'], lambda i: i+1)
+ mac = _find_mac_near_keyword('ip', 'link', [b'link/ether'], lambda i: i+1)
if mac:
return mac
return None
@@ -529,17 +529,17 @@ def _arp_getnode():
return None
# Try getting the MAC addr from arp based on our IP address (Solaris).
- mac = _find_mac_near_keyword('arp', '-an', [os.fsencode(ip_addr)], lambda i: -1)
+ mac = _find_mac_near_keyword('arp', '-an', [os.fsencode(ip_addr)], lambda i: -1)
if mac:
return mac
# This works on OpenBSD
- mac = _find_mac_near_keyword('arp', '-an', [os.fsencode(ip_addr)], lambda i: i+1)
+ mac = _find_mac_near_keyword('arp', '-an', [os.fsencode(ip_addr)], lambda i: i+1)
if mac:
return mac
# This works on Linux, FreeBSD and NetBSD
- mac = _find_mac_near_keyword('arp', '-an', [os.fsencode('(%s)' % ip_addr)],
+ mac = _find_mac_near_keyword('arp', '-an', [os.fsencode('(%s)' % ip_addr)],
lambda i: i+2)
# Return None instead of 0.
if mac:
@@ -549,52 +549,52 @@ def _arp_getnode():
def _lanscan_getnode():
"""Get the hardware address on Unix by running lanscan."""
# This might work on HP-UX.
- return _find_mac_near_keyword('lanscan', '-ai', [b'lan0'], lambda i: 0)
+ return _find_mac_near_keyword('lanscan', '-ai', [b'lan0'], lambda i: 0)
def _netstat_getnode():
"""Get the hardware address on Unix by running netstat."""
- # This works on AIX and might work on Tru64 UNIX.
- return _find_mac_under_heading('netstat', '-ian', b'Address')
+ # This works on AIX and might work on Tru64 UNIX.
+ return _find_mac_under_heading('netstat', '-ian', b'Address')
def _ipconfig_getnode():
- """[DEPRECATED] Get the hardware address on Windows."""
- # bpo-40501: UuidCreateSequential() is now the only supported approach
- return _windll_getnode()
+ """[DEPRECATED] Get the hardware address on Windows."""
+ # bpo-40501: UuidCreateSequential() is now the only supported approach
+ return _windll_getnode()
def _netbios_getnode():
- """[DEPRECATED] Get the hardware address on Windows."""
- # bpo-40501: UuidCreateSequential() is now the only supported approach
- return _windll_getnode()
+ """[DEPRECATED] Get the hardware address on Windows."""
+ # bpo-40501: UuidCreateSequential() is now the only supported approach
+ return _windll_getnode()
# Import optional C extension at toplevel, to help disabling it when testing
try:
import _uuid
- _generate_time_safe = getattr(_uuid, "generate_time_safe", None)
- _UuidCreate = getattr(_uuid, "UuidCreate", None)
- _has_uuid_generate_time_safe = _uuid.has_uuid_generate_time_safe
+ _generate_time_safe = getattr(_uuid, "generate_time_safe", None)
+ _UuidCreate = getattr(_uuid, "UuidCreate", None)
+ _has_uuid_generate_time_safe = _uuid.has_uuid_generate_time_safe
except ImportError:
_uuid = None
- _generate_time_safe = None
- _UuidCreate = None
- _has_uuid_generate_time_safe = None
+ _generate_time_safe = None
+ _UuidCreate = None
+ _has_uuid_generate_time_safe = None
def _load_system_functions():
- """[DEPRECATED] Platform-specific functions loaded at import time"""
+ """[DEPRECATED] Platform-specific functions loaded at import time"""
def _unix_getnode():
- """Get the hardware address on Unix using the _uuid extension module."""
- if _generate_time_safe:
- uuid_time, _ = _generate_time_safe()
- return UUID(bytes=uuid_time).node
+ """Get the hardware address on Unix using the _uuid extension module."""
+ if _generate_time_safe:
+ uuid_time, _ = _generate_time_safe()
+ return UUID(bytes=uuid_time).node
def _windll_getnode():
- """Get the hardware address on Windows using the _uuid extension module."""
- if _UuidCreate:
- uuid_bytes = _UuidCreate()
- return UUID(bytes_le=uuid_bytes).node
+ """Get the hardware address on Windows using the _uuid extension module."""
+ if _UuidCreate:
+ uuid_bytes = _UuidCreate()
+ return UUID(bytes_le=uuid_bytes).node
def _random_getnode():
"""Get a random node ID."""
@@ -612,34 +612,34 @@ def _random_getnode():
return random.getrandbits(48) | (1 << 40)
-# _OS_GETTERS, when known, are targeted for a specific OS or platform.
-# The order is by 'common practice' on the specified platform.
-# Note: 'posix' and 'windows' _OS_GETTERS are prefixed by a dll/dlload() method
-# which, when successful, means none of these "external" methods are called.
-# _GETTERS is (also) used by test_uuid.py to SkipUnless(), e.g.,
-# @unittest.skipUnless(_uuid._ifconfig_getnode in _uuid._GETTERS, ...)
-if _LINUX:
- _OS_GETTERS = [_ip_getnode, _ifconfig_getnode]
-elif sys.platform == 'darwin':
- _OS_GETTERS = [_ifconfig_getnode, _arp_getnode, _netstat_getnode]
-elif sys.platform == 'win32':
- # bpo-40201: _windll_getnode will always succeed, so these are not needed
- _OS_GETTERS = []
-elif _AIX:
- _OS_GETTERS = [_netstat_getnode]
-else:
- _OS_GETTERS = [_ifconfig_getnode, _ip_getnode, _arp_getnode,
- _netstat_getnode, _lanscan_getnode]
-if os.name == 'posix':
- _GETTERS = [_unix_getnode] + _OS_GETTERS
-elif os.name == 'nt':
- _GETTERS = [_windll_getnode] + _OS_GETTERS
-else:
- _GETTERS = _OS_GETTERS
-
+# _OS_GETTERS, when known, are targeted for a specific OS or platform.
+# The order is by 'common practice' on the specified platform.
+# Note: 'posix' and 'windows' _OS_GETTERS are prefixed by a dll/dlload() method
+# which, when successful, means none of these "external" methods are called.
+# _GETTERS is (also) used by test_uuid.py to SkipUnless(), e.g.,
+# @unittest.skipUnless(_uuid._ifconfig_getnode in _uuid._GETTERS, ...)
+if _LINUX:
+ _OS_GETTERS = [_ip_getnode, _ifconfig_getnode]
+elif sys.platform == 'darwin':
+ _OS_GETTERS = [_ifconfig_getnode, _arp_getnode, _netstat_getnode]
+elif sys.platform == 'win32':
+ # bpo-40201: _windll_getnode will always succeed, so these are not needed
+ _OS_GETTERS = []
+elif _AIX:
+ _OS_GETTERS = [_netstat_getnode]
+else:
+ _OS_GETTERS = [_ifconfig_getnode, _ip_getnode, _arp_getnode,
+ _netstat_getnode, _lanscan_getnode]
+if os.name == 'posix':
+ _GETTERS = [_unix_getnode] + _OS_GETTERS
+elif os.name == 'nt':
+ _GETTERS = [_windll_getnode] + _OS_GETTERS
+else:
+ _GETTERS = _OS_GETTERS
+
_node = None
-def getnode():
+def getnode():
"""Get the hardware address as a 48-bit positive integer.
The first time this runs, it may launch a separate program, which could
@@ -651,7 +651,7 @@ def getnode():
if _node is not None:
return _node
- for getter in _GETTERS + [_random_getnode]:
+ for getter in _GETTERS + [_random_getnode]:
try:
_node = getter()
except:
@@ -681,10 +681,10 @@ def uuid1(node=None, clock_seq=None):
global _last_timestamp
import time
- nanoseconds = time.time_ns()
+ nanoseconds = time.time_ns()
# 0x01b21dd213814000 is the number of 100-ns intervals between the
# UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00.
- timestamp = nanoseconds // 100 + 0x01b21dd213814000
+ timestamp = nanoseconds // 100 + 0x01b21dd213814000
if _last_timestamp is not None and timestamp <= _last_timestamp:
timestamp = _last_timestamp + 1
_last_timestamp = timestamp
@@ -704,11 +704,11 @@ def uuid1(node=None, clock_seq=None):
def uuid3(namespace, name):
"""Generate a UUID from the MD5 hash of a namespace UUID and a name."""
from hashlib import md5
- digest = md5(
- namespace.bytes + bytes(name, "utf-8"),
- usedforsecurity=False
- ).digest()
- return UUID(bytes=digest[:16], version=3)
+ digest = md5(
+ namespace.bytes + bytes(name, "utf-8"),
+ usedforsecurity=False
+ ).digest()
+ return UUID(bytes=digest[:16], version=3)
def uuid4():
"""Generate a random UUID."""
diff --git a/contrib/tools/python3/src/Lib/venv/__init__.py b/contrib/tools/python3/src/Lib/venv/__init__.py
index 2e8e7d4341..6f1af294ae 100644
--- a/contrib/tools/python3/src/Lib/venv/__init__.py
+++ b/contrib/tools/python3/src/Lib/venv/__init__.py
@@ -12,8 +12,8 @@ import sys
import sysconfig
import types
-
-CORE_VENV_DEPS = ('pip', 'setuptools')
+
+CORE_VENV_DEPS = ('pip', 'setuptools')
logger = logging.getLogger(__name__)
@@ -40,21 +40,21 @@ class EnvBuilder:
:param with_pip: If True, ensure pip is installed in the virtual
environment
:param prompt: Alternative terminal prefix for the environment.
- :param upgrade_deps: Update the base venv modules to the latest on PyPI
+ :param upgrade_deps: Update the base venv modules to the latest on PyPI
"""
def __init__(self, system_site_packages=False, clear=False,
- symlinks=False, upgrade=False, with_pip=False, prompt=None,
- upgrade_deps=False):
+ symlinks=False, upgrade=False, with_pip=False, prompt=None,
+ upgrade_deps=False):
self.system_site_packages = system_site_packages
self.clear = clear
self.symlinks = symlinks
self.upgrade = upgrade
self.with_pip = with_pip
- if prompt == '.': # see bpo-38901
- prompt = os.path.basename(os.getcwd())
+ if prompt == '.': # see bpo-38901
+ prompt = os.path.basename(os.getcwd())
self.prompt = prompt
- self.upgrade_deps = upgrade_deps
+ self.upgrade_deps = upgrade_deps
def create(self, env_dir):
"""
@@ -81,8 +81,8 @@ class EnvBuilder:
# restore it and rewrite the configuration
self.system_site_packages = True
self.create_configuration(context)
- if self.upgrade_deps:
- self.upgrade_dependencies(context)
+ if self.upgrade_deps:
+ self.upgrade_dependencies(context)
def clear_directory(self, path):
for fn in os.listdir(path):
@@ -114,7 +114,7 @@ class EnvBuilder:
prompt = self.prompt if self.prompt is not None else context.env_name
context.prompt = '(%s) ' % prompt
create_if_needed(env_dir)
- executable = sys._base_executable
+ executable = sys._base_executable
dirname, exename = os.path.split(os.path.abspath(executable))
context.executable = executable
context.python_dir = dirname
@@ -142,20 +142,20 @@ class EnvBuilder:
context.bin_name = binname
context.env_exe = os.path.join(binpath, exename)
create_if_needed(binpath)
- # Assign and update the command to use when launching the newly created
- # environment, in case it isn't simply the executable script (e.g. bpo-45337)
- context.env_exec_cmd = context.env_exe
- if sys.platform == 'win32':
- # bpo-45337: Fix up env_exec_cmd to account for file system redirections.
- # Some redirects only apply to CreateFile and not CreateProcess
- real_env_exe = os.path.realpath(context.env_exe)
- if os.path.normcase(real_env_exe) != os.path.normcase(context.env_exe):
- logger.warning('Actual environment location may have moved due to '
- 'redirects, links or junctions.\n'
- ' Requested location: "%s"\n'
- ' Actual location: "%s"',
- context.env_exe, real_env_exe)
- context.env_exec_cmd = real_env_exe
+ # Assign and update the command to use when launching the newly created
+ # environment, in case it isn't simply the executable script (e.g. bpo-45337)
+ context.env_exec_cmd = context.env_exe
+ if sys.platform == 'win32':
+ # bpo-45337: Fix up env_exec_cmd to account for file system redirections.
+ # Some redirects only apply to CreateFile and not CreateProcess
+ real_env_exe = os.path.realpath(context.env_exe)
+ if os.path.normcase(real_env_exe) != os.path.normcase(context.env_exe):
+ logger.warning('Actual environment location may have moved due to '
+ 'redirects, links or junctions.\n'
+ ' Requested location: "%s"\n'
+ ' Actual location: "%s"',
+ context.env_exe, real_env_exe)
+ context.env_exec_cmd = real_env_exe
return context
def create_configuration(self, context):
@@ -176,69 +176,69 @@ class EnvBuilder:
incl = 'false'
f.write('include-system-site-packages = %s\n' % incl)
f.write('version = %d.%d.%d\n' % sys.version_info[:3])
- if self.prompt is not None:
- f.write(f'prompt = {self.prompt!r}\n')
-
- if os.name != 'nt':
- def symlink_or_copy(self, src, dst, relative_symlinks_ok=False):
- """
- Try symlinking a file, and if that fails, fall back to copying.
- """
- force_copy = not self.symlinks
- if not force_copy:
- try:
- if not os.path.islink(dst): # can't link to itself!
- if relative_symlinks_ok:
- assert os.path.dirname(src) == os.path.dirname(dst)
- os.symlink(os.path.basename(src), dst)
- else:
- os.symlink(src, dst)
- except Exception: # may need to use a more specific exception
- logger.warning('Unable to symlink %r to %r', src, dst)
- force_copy = True
- if force_copy:
- shutil.copyfile(src, dst)
- else:
- def symlink_or_copy(self, src, dst, relative_symlinks_ok=False):
- """
- Try symlinking a file, and if that fails, fall back to copying.
- """
- bad_src = os.path.lexists(src) and not os.path.exists(src)
- if self.symlinks and not bad_src and not os.path.islink(dst):
- try:
+ if self.prompt is not None:
+ f.write(f'prompt = {self.prompt!r}\n')
+
+ if os.name != 'nt':
+ def symlink_or_copy(self, src, dst, relative_symlinks_ok=False):
+ """
+ Try symlinking a file, and if that fails, fall back to copying.
+ """
+ force_copy = not self.symlinks
+ if not force_copy:
+ try:
+ if not os.path.islink(dst): # can't link to itself!
+ if relative_symlinks_ok:
+ assert os.path.dirname(src) == os.path.dirname(dst)
+ os.symlink(os.path.basename(src), dst)
+ else:
+ os.symlink(src, dst)
+ except Exception: # may need to use a more specific exception
+ logger.warning('Unable to symlink %r to %r', src, dst)
+ force_copy = True
+ if force_copy:
+ shutil.copyfile(src, dst)
+ else:
+ def symlink_or_copy(self, src, dst, relative_symlinks_ok=False):
+ """
+ Try symlinking a file, and if that fails, fall back to copying.
+ """
+ bad_src = os.path.lexists(src) and not os.path.exists(src)
+ if self.symlinks and not bad_src and not os.path.islink(dst):
+ try:
if relative_symlinks_ok:
assert os.path.dirname(src) == os.path.dirname(dst)
os.symlink(os.path.basename(src), dst)
else:
os.symlink(src, dst)
- return
- except Exception: # may need to use a more specific exception
- logger.warning('Unable to symlink %r to %r', src, dst)
-
- # On Windows, we rewrite symlinks to our base python.exe into
- # copies of venvlauncher.exe
- basename, ext = os.path.splitext(os.path.basename(src))
- srcfn = os.path.join(os.path.dirname(__file__),
- "scripts",
- "nt",
- basename + ext)
- # Builds or venv's from builds need to remap source file
- # locations, as we do not put them into Lib/venv/scripts
- if sysconfig.is_python_build(True) or not os.path.isfile(srcfn):
+ return
+ except Exception: # may need to use a more specific exception
+ logger.warning('Unable to symlink %r to %r', src, dst)
+
+ # On Windows, we rewrite symlinks to our base python.exe into
+ # copies of venvlauncher.exe
+ basename, ext = os.path.splitext(os.path.basename(src))
+ srcfn = os.path.join(os.path.dirname(__file__),
+ "scripts",
+ "nt",
+ basename + ext)
+ # Builds or venv's from builds need to remap source file
+ # locations, as we do not put them into Lib/venv/scripts
+ if sysconfig.is_python_build(True) or not os.path.isfile(srcfn):
if basename.endswith('_d'):
ext = '_d' + ext
basename = basename[:-2]
- if basename == 'python':
- basename = 'venvlauncher'
- elif basename == 'pythonw':
- basename = 'venvwlauncher'
- src = os.path.join(os.path.dirname(src), basename + ext)
- else:
- src = srcfn
- if not os.path.exists(src):
- if not bad_src:
- logger.warning('Unable to copy %r', src)
- return
+ if basename == 'python':
+ basename = 'venvlauncher'
+ elif basename == 'pythonw':
+ basename = 'venvwlauncher'
+ src = os.path.join(os.path.dirname(src), basename + ext)
+ else:
+ src = srcfn
+ if not os.path.exists(src):
+ if not bad_src:
+ logger.warning('Unable to copy %r', src)
+ return
shutil.copyfile(src, dst)
@@ -257,7 +257,7 @@ class EnvBuilder:
copier(context.executable, path)
if not os.path.islink(path):
os.chmod(path, 0o755)
- for suffix in ('python', 'python3', f'python3.{sys.version_info[1]}'):
+ for suffix in ('python', 'python3', f'python3.{sys.version_info[1]}'):
path = os.path.join(binpath, suffix)
if not os.path.exists(path):
# Issue 18807: make copies if
@@ -281,13 +281,13 @@ class EnvBuilder:
os.path.normcase(f).startswith(('python', 'vcruntime'))
]
else:
- suffixes = {'python.exe', 'python_d.exe', 'pythonw.exe', 'pythonw_d.exe'}
- base_exe = os.path.basename(context.env_exe)
- suffixes.add(base_exe)
+ suffixes = {'python.exe', 'python_d.exe', 'pythonw.exe', 'pythonw_d.exe'}
+ base_exe = os.path.basename(context.env_exe)
+ suffixes.add(base_exe)
for suffix in suffixes:
src = os.path.join(dirname, suffix)
- if os.path.lexists(src):
+ if os.path.lexists(src):
copier(src, os.path.join(binpath, suffix))
if sysconfig.is_python_build(True):
@@ -308,8 +308,8 @@ class EnvBuilder:
# We run ensurepip in isolated mode to avoid side effects from
# environment vars, the current directory and anything else
# intended for the global Python environment
- cmd = [context.env_exec_cmd, '-Im', 'ensurepip', '--upgrade',
- '--default-pip']
+ cmd = [context.env_exec_cmd, '-Im', 'ensurepip', '--upgrade',
+ '--default-pip']
subprocess.check_output(cmd, stderr=subprocess.STDOUT)
def setup_scripts(self, context):
@@ -405,21 +405,21 @@ class EnvBuilder:
f.write(data)
shutil.copymode(srcfile, dstfile)
- def upgrade_dependencies(self, context):
- logger.debug(
- f'Upgrading {CORE_VENV_DEPS} packages in {context.bin_path}'
- )
- cmd = [context.env_exec_cmd, '-m', 'pip', 'install', '--upgrade']
- cmd.extend(CORE_VENV_DEPS)
- subprocess.check_call(cmd)
+ def upgrade_dependencies(self, context):
+ logger.debug(
+ f'Upgrading {CORE_VENV_DEPS} packages in {context.bin_path}'
+ )
+ cmd = [context.env_exec_cmd, '-m', 'pip', 'install', '--upgrade']
+ cmd.extend(CORE_VENV_DEPS)
+ subprocess.check_call(cmd)
+
-
def create(env_dir, system_site_packages=False, clear=False,
- symlinks=False, with_pip=False, prompt=None, upgrade_deps=False):
+ symlinks=False, with_pip=False, prompt=None, upgrade_deps=False):
"""Create a virtual environment in a directory."""
builder = EnvBuilder(system_site_packages=system_site_packages,
clear=clear, symlinks=symlinks, with_pip=with_pip,
- prompt=prompt, upgrade_deps=upgrade_deps)
+ prompt=prompt, upgrade_deps=upgrade_deps)
builder.create(env_dir)
def main(args=None):
@@ -482,11 +482,11 @@ def main(args=None):
parser.add_argument('--prompt',
help='Provides an alternative prompt prefix for '
'this environment.')
- parser.add_argument('--upgrade-deps', default=False, action='store_true',
- dest='upgrade_deps',
- help='Upgrade core dependencies: {} to the latest '
- 'version in PyPI'.format(
- ' '.join(CORE_VENV_DEPS)))
+ parser.add_argument('--upgrade-deps', default=False, action='store_true',
+ dest='upgrade_deps',
+ help='Upgrade core dependencies: {} to the latest '
+ 'version in PyPI'.format(
+ ' '.join(CORE_VENV_DEPS)))
options = parser.parse_args(args)
if options.upgrade and options.clear:
raise ValueError('you cannot supply --upgrade and --clear together.')
@@ -495,8 +495,8 @@ def main(args=None):
symlinks=options.symlinks,
upgrade=options.upgrade,
with_pip=options.with_pip,
- prompt=options.prompt,
- upgrade_deps=options.upgrade_deps)
+ prompt=options.prompt,
+ upgrade_deps=options.upgrade_deps)
for d in options.dirs:
builder.create(d)
diff --git a/contrib/tools/python3/src/Lib/warnings.py b/contrib/tools/python3/src/Lib/warnings.py
index d00730209a..691ccddfa4 100644
--- a/contrib/tools/python3/src/Lib/warnings.py
+++ b/contrib/tools/python3/src/Lib/warnings.py
@@ -220,12 +220,12 @@ def _setoption(arg):
for s in parts]
action = _getaction(action)
category = _getcategory(category)
- if message or module:
- import re
- if message:
- message = re.escape(message)
+ if message or module:
+ import re
+ if message:
+ message = re.escape(message)
if module:
- module = re.escape(module) + r'\Z'
+ module = re.escape(module) + r'\Z'
if lineno:
try:
lineno = int(lineno)
@@ -251,19 +251,19 @@ def _getaction(action):
def _getcategory(category):
if not category:
return Warning
- if '.' not in category:
- import builtins as m
- klass = category
+ if '.' not in category:
+ import builtins as m
+ klass = category
else:
- module, _, klass = category.rpartition('.')
+ module, _, klass = category.rpartition('.')
try:
m = __import__(module, None, None, [klass])
except ImportError:
raise _OptionError("invalid module name: %r" % (module,)) from None
- try:
- cat = getattr(m, klass)
- except AttributeError:
- raise _OptionError("unknown warning category: %r" % (category,)) from None
+ try:
+ cat = getattr(m, klass)
+ except AttributeError:
+ raise _OptionError("unknown warning category: %r" % (category,)) from None
if not issubclass(cat, Warning):
raise _OptionError("invalid warning category: %r" % (category,))
return cat
@@ -310,11 +310,11 @@ def warn(message, category=None, stacklevel=1, source=None):
raise ValueError
except ValueError:
globals = sys.__dict__
- filename = "sys"
+ filename = "sys"
lineno = 1
else:
globals = frame.f_globals
- filename = frame.f_code.co_filename
+ filename = frame.f_code.co_filename
lineno = frame.f_lineno
if '__name__' in globals:
module = globals['__name__']
diff --git a/contrib/tools/python3/src/Lib/wave.py b/contrib/tools/python3/src/Lib/wave.py
index 95247afeda..b7071198e6 100644
--- a/contrib/tools/python3/src/Lib/wave.py
+++ b/contrib/tools/python3/src/Lib/wave.py
@@ -53,7 +53,7 @@ This returns an instance of a class with the following public methods:
-- set all parameters at once
tell() -- return current position in output file
writeframesraw(data)
- -- write audio frames without patching up the
+ -- write audio frames without patching up the
file header
writeframes(data)
-- write audio frames and patch up the file header
@@ -71,16 +71,16 @@ The close() method is called automatically when the class instance
is destroyed.
"""
-from chunk import Chunk
-from collections import namedtuple
-import audioop
+from chunk import Chunk
+from collections import namedtuple
+import audioop
import builtins
-import struct
-import sys
+import struct
+import sys
-__all__ = ["open", "Error", "Wave_read", "Wave_write"]
-
+__all__ = ["open", "Error", "Wave_read", "Wave_write"]
+
class Error(Exception):
pass
diff --git a/contrib/tools/python3/src/Lib/weakref.py b/contrib/tools/python3/src/Lib/weakref.py
index 9ebb0a184f..994ea8aa37 100644
--- a/contrib/tools/python3/src/Lib/weakref.py
+++ b/contrib/tools/python3/src/Lib/weakref.py
@@ -2,7 +2,7 @@
This module is an implementation of PEP 205:
-https://www.python.org/dev/peps/pep-0205/
+https://www.python.org/dev/peps/pep-0205/
"""
# Naming convention: Variables named "wr" are weak reference objects;
@@ -33,9 +33,9 @@ __all__ = ["ref", "proxy", "getweakrefcount", "getweakrefs",
"WeakSet", "WeakMethod", "finalize"]
-_collections_abc.Set.register(WeakSet)
-_collections_abc.MutableSet.register(WeakSet)
-
+_collections_abc.Set.register(WeakSet)
+_collections_abc.MutableSet.register(WeakSet)
+
class WeakMethod(ref):
"""
A custom `weakref.ref` subclass which simulates a weak reference to
@@ -78,14 +78,14 @@ class WeakMethod(ref):
if not self._alive or not other._alive:
return self is other
return ref.__eq__(self, other) and self._func_ref == other._func_ref
- return NotImplemented
+ return NotImplemented
def __ne__(self, other):
if isinstance(other, WeakMethod):
if not self._alive or not other._alive:
return self is not other
return ref.__ne__(self, other) or self._func_ref != other._func_ref
- return NotImplemented
+ return NotImplemented
__hash__ = ref.__hash__
@@ -102,7 +102,7 @@ class WeakValueDictionary(_collections_abc.MutableMapping):
# objects are unwrapped on the way out, and we always wrap on the
# way in).
- def __init__(self, other=(), /, **kw):
+ def __init__(self, other=(), /, **kw):
def remove(wr, selfref=ref(self), _atomic_removal=_remove_dead_weakref):
self = selfref()
if self is not None:
@@ -111,25 +111,25 @@ class WeakValueDictionary(_collections_abc.MutableMapping):
else:
# Atomic removal is necessary since this function
# can be called asynchronously by the GC
- _atomic_removal(self.data, wr.key)
+ _atomic_removal(self.data, wr.key)
self._remove = remove
# A list of keys to be removed
self._pending_removals = []
self._iterating = set()
- self.data = {}
- self.update(other, **kw)
+ self.data = {}
+ self.update(other, **kw)
- def _commit_removals(self, _atomic_removal=_remove_dead_weakref):
- pop = self._pending_removals.pop
+ def _commit_removals(self, _atomic_removal=_remove_dead_weakref):
+ pop = self._pending_removals.pop
d = self.data
# We shouldn't encounter any KeyError, because this method should
# always be called *before* mutating the dict.
- while True:
- try:
- key = pop()
- except IndexError:
- return
- _atomic_removal(d, key)
+ while True:
+ try:
+ key = pop()
+ except IndexError:
+ return
+ _atomic_removal(d, key)
def __getitem__(self, key):
if self._pending_removals:
@@ -287,17 +287,17 @@ class WeakValueDictionary(_collections_abc.MutableMapping):
else:
return o
- def update(self, other=None, /, **kwargs):
+ def update(self, other=None, /, **kwargs):
if self._pending_removals:
self._commit_removals()
d = self.data
- if other is not None:
- if not hasattr(other, "items"):
- other = dict(other)
- for key, o in other.items():
+ if other is not None:
+ if not hasattr(other, "items"):
+ other = dict(other)
+ for key, o in other.items():
d[key] = KeyedRef(o, self._remove, key)
- for key, o in kwargs.items():
- d[key] = KeyedRef(o, self._remove, key)
+ for key, o in kwargs.items():
+ d[key] = KeyedRef(o, self._remove, key)
def valuerefs(self):
"""Return a list of weak references to the values.
@@ -313,26 +313,26 @@ class WeakValueDictionary(_collections_abc.MutableMapping):
self._commit_removals()
return list(self.data.values())
- def __ior__(self, other):
- self.update(other)
- return self
-
- def __or__(self, other):
- if isinstance(other, _collections_abc.Mapping):
- c = self.copy()
- c.update(other)
- return c
- return NotImplemented
-
- def __ror__(self, other):
- if isinstance(other, _collections_abc.Mapping):
- c = self.__class__()
- c.update(other)
- c.update(self)
- return c
- return NotImplemented
-
-
+ def __ior__(self, other):
+ self.update(other)
+ return self
+
+ def __or__(self, other):
+ if isinstance(other, _collections_abc.Mapping):
+ c = self.copy()
+ c.update(other)
+ return c
+ return NotImplemented
+
+ def __ror__(self, other):
+ if isinstance(other, _collections_abc.Mapping):
+ c = self.__class__()
+ c.update(other)
+ c.update(self)
+ return c
+ return NotImplemented
+
+
class KeyedRef(ref):
"""Specialized reference that includes a key corresponding to the value.
@@ -373,10 +373,10 @@ class WeakKeyDictionary(_collections_abc.MutableMapping):
if self._iterating:
self._pending_removals.append(k)
else:
- try:
- del self.data[k]
- except KeyError:
- pass
+ try:
+ del self.data[k]
+ except KeyError:
+ pass
self._remove = remove
# A list of dead weakrefs (keys to be removed)
self._pending_removals = []
@@ -390,16 +390,16 @@ class WeakKeyDictionary(_collections_abc.MutableMapping):
# because a dead weakref never compares equal to a live weakref,
# even if they happened to refer to equal objects.
# However, it means keys may already have been removed.
- pop = self._pending_removals.pop
+ pop = self._pending_removals.pop
d = self.data
- while True:
+ while True:
try:
- key = pop()
- except IndexError:
- return
-
- try:
- del d[key]
+ key = pop()
+ except IndexError:
+ return
+
+ try:
+ del d[key]
except KeyError:
pass
@@ -508,7 +508,7 @@ class WeakKeyDictionary(_collections_abc.MutableMapping):
def setdefault(self, key, default=None):
return self.data.setdefault(ref(key, self._remove),default)
- def update(self, dict=None, /, **kwargs):
+ def update(self, dict=None, /, **kwargs):
d = self.data
if dict is not None:
if not hasattr(dict, "items"):
@@ -518,26 +518,26 @@ class WeakKeyDictionary(_collections_abc.MutableMapping):
if len(kwargs):
self.update(kwargs)
- def __ior__(self, other):
- self.update(other)
- return self
-
- def __or__(self, other):
- if isinstance(other, _collections_abc.Mapping):
- c = self.copy()
- c.update(other)
- return c
- return NotImplemented
-
- def __ror__(self, other):
- if isinstance(other, _collections_abc.Mapping):
- c = self.__class__()
- c.update(other)
- c.update(self)
- return c
- return NotImplemented
-
-
+ def __ior__(self, other):
+ self.update(other)
+ return self
+
+ def __or__(self, other):
+ if isinstance(other, _collections_abc.Mapping):
+ c = self.copy()
+ c.update(other)
+ return c
+ return NotImplemented
+
+ def __ror__(self, other):
+ if isinstance(other, _collections_abc.Mapping):
+ c = self.__class__()
+ c.update(other)
+ c.update(self)
+ return c
+ return NotImplemented
+
+
class finalize:
"""Class for finalization of weakrefable objects
@@ -566,7 +566,7 @@ class finalize:
class _Info:
__slots__ = ("weakref", "func", "args", "kwargs", "atexit", "index")
- def __init__(self, obj, func, /, *args, **kwargs):
+ def __init__(self, obj, func, /, *args, **kwargs):
if not self._registered_with_atexit:
# We may register the exit function more than once because
# of a thread race, but that is harmless
diff --git a/contrib/tools/python3/src/Lib/webbrowser.py b/contrib/tools/python3/src/Lib/webbrowser.py
index b31608ac28..6023c1e138 100644
--- a/contrib/tools/python3/src/Lib/webbrowser.py
+++ b/contrib/tools/python3/src/Lib/webbrowser.py
@@ -69,14 +69,14 @@ def get(using=None):
# instead of "from webbrowser import *".
def open(url, new=0, autoraise=True):
- """Display url using the default browser.
-
- If possible, open url in a location determined by new.
- - 0: the same browser window (the default).
- - 1: a new browser window.
- - 2: a new browser page ("tab").
- If possible, autoraise raises the window (the default) or not.
- """
+ """Display url using the default browser.
+
+ If possible, open url in a location determined by new.
+ - 0: the same browser window (the default).
+ - 1: a new browser window.
+ - 2: a new browser page ("tab").
+ If possible, autoraise raises the window (the default) or not.
+ """
if _tryorder is None:
with _lock:
if _tryorder is None:
@@ -88,22 +88,22 @@ def open(url, new=0, autoraise=True):
return False
def open_new(url):
- """Open url in a new window of the default browser.
-
- If not possible, then open url in the only browser window.
- """
+ """Open url in a new window of the default browser.
+
+ If not possible, then open url in the only browser window.
+ """
return open(url, 1)
def open_new_tab(url):
- """Open url in a new page ("tab") of the default browser.
-
- If not possible, then the behavior becomes equivalent to open_new().
- """
+ """Open url in a new page ("tab") of the default browser.
+
+ If not possible, then the behavior becomes equivalent to open_new().
+ """
return open(url, 2)
def _synthesize(browser, *, preferred=False):
- """Attempt to synthesize a controller based on existing controllers.
+ """Attempt to synthesize a controller based on existing controllers.
This is useful to create a controller when a user specifies a path to
an entry in the BROWSER environment variable -- we can copy a general
@@ -170,7 +170,7 @@ class GenericBrowser(BaseBrowser):
self.basename = os.path.basename(self.name)
def open(self, url, new=0, autoraise=True):
- sys.audit("webbrowser.open", url)
+ sys.audit("webbrowser.open", url)
cmdline = [self.name] + [arg.replace("%s", url)
for arg in self.args]
try:
@@ -190,7 +190,7 @@ class BackgroundBrowser(GenericBrowser):
def open(self, url, new=0, autoraise=True):
cmdline = [self.name] + [arg.replace("%s", url)
for arg in self.args]
- sys.audit("webbrowser.open", url)
+ sys.audit("webbrowser.open", url)
try:
if sys.platform[:3] == 'win':
p = subprocess.Popen(cmdline)
@@ -219,7 +219,7 @@ class UnixBrowser(BaseBrowser):
remote_action_newwin = None
remote_action_newtab = None
- def _invoke(self, args, remote, autoraise, url=None):
+ def _invoke(self, args, remote, autoraise, url=None):
raise_opt = []
if remote and self.raise_opts:
# use autoraise argument only for remote invocation
@@ -255,7 +255,7 @@ class UnixBrowser(BaseBrowser):
return not p.wait()
def open(self, url, new=0, autoraise=True):
- sys.audit("webbrowser.open", url)
+ sys.audit("webbrowser.open", url)
if new == 0:
action = self.remote_action
elif new == 1:
@@ -272,7 +272,7 @@ class UnixBrowser(BaseBrowser):
args = [arg.replace("%s", url).replace("%action", action)
for arg in self.remote_args]
args = [arg for arg in args if arg]
- success = self._invoke(args, True, autoraise, url)
+ success = self._invoke(args, True, autoraise, url)
if not success:
# remote invocation failed, try straight way
args = [arg.replace("%s", url) for arg in self.args]
@@ -356,7 +356,7 @@ class Konqueror(BaseBrowser):
"""
def open(self, url, new=0, autoraise=True):
- sys.audit("webbrowser.open", url)
+ sys.audit("webbrowser.open", url)
# XXX Currently I know no way to prevent KFM from opening a new win.
if new == 2:
action = "newTab"
@@ -413,7 +413,7 @@ class Grail(BaseBrowser):
tempdir = os.path.join(tempfile.gettempdir(),
".grail-unix")
user = pwd.getpwuid(os.getuid())[0]
- filename = os.path.join(glob.escape(tempdir), glob.escape(user) + "-*")
+ filename = os.path.join(glob.escape(tempdir), glob.escape(user) + "-*")
maybes = glob.glob(filename)
if not maybes:
return None
@@ -440,7 +440,7 @@ class Grail(BaseBrowser):
return 1
def open(self, url, new=0, autoraise=True):
- sys.audit("webbrowser.open", url)
+ sys.audit("webbrowser.open", url)
if new:
ok = self._remote("LOADNEW " + url)
else:
@@ -545,12 +545,12 @@ def register_standard_browsers():
register(browser, None, BackgroundBrowser(browser))
else:
# Prefer X browsers if present
- if os.environ.get("DISPLAY") or os.environ.get("WAYLAND_DISPLAY"):
+ if os.environ.get("DISPLAY") or os.environ.get("WAYLAND_DISPLAY"):
try:
cmd = "xdg-settings get default-web-browser".split()
raw_result = subprocess.check_output(cmd, stderr=subprocess.DEVNULL)
result = raw_result.decode().strip()
- except (FileNotFoundError, subprocess.CalledProcessError, PermissionError, NotADirectoryError) :
+ except (FileNotFoundError, subprocess.CalledProcessError, PermissionError, NotADirectoryError) :
pass
else:
global _os_preferred_browser
@@ -598,7 +598,7 @@ def register_standard_browsers():
if sys.platform[:3] == "win":
class WindowsDefault(BaseBrowser):
def open(self, url, new=0, autoraise=True):
- sys.audit("webbrowser.open", url)
+ sys.audit("webbrowser.open", url)
try:
os.startfile(url)
except OSError:
@@ -628,7 +628,7 @@ if sys.platform == 'darwin':
self.name = name
def open(self, url, new=0, autoraise=True):
- sys.audit("webbrowser.open", url)
+ sys.audit("webbrowser.open", url)
assert "'" not in url
# hack for local urls
if not ':' in url:
diff --git a/contrib/tools/python3/src/Lib/wsgiref/handlers.py b/contrib/tools/python3/src/Lib/wsgiref/handlers.py
index 0837493c52..31360e5878 100644
--- a/contrib/tools/python3/src/Lib/wsgiref/handlers.py
+++ b/contrib/tools/python3/src/Lib/wsgiref/handlers.py
@@ -136,10 +136,10 @@ class BaseHandler:
self.setup_environ()
self.result = application(self.environ, self.start_response)
self.finish_response()
- except (ConnectionAbortedError, BrokenPipeError, ConnectionResetError):
- # We expect the client to close the connection abruptly from time
- # to time.
- return
+ except (ConnectionAbortedError, BrokenPipeError, ConnectionResetError):
+ # We expect the client to close the connection abruptly from time
+ # to time.
+ return
except:
try:
self.handle_error()
@@ -183,16 +183,16 @@ class BaseHandler:
for data in self.result:
self.write(data)
self.finish_content()
- except:
- # Call close() on the iterable returned by the WSGI application
- # in case of an exception.
- if hasattr(self.result, 'close'):
- self.result.close()
- raise
- else:
- # We only call close() when no exception is raised, because it
- # will set status, result, headers, and environ fields to None.
- # See bpo-29183 for more details.
+ except:
+ # Call close() on the iterable returned by the WSGI application
+ # in case of an exception.
+ if hasattr(self.result, 'close'):
+ self.result.close()
+ raise
+ else:
+ # We only call close() when no exception is raised, because it
+ # will set status, result, headers, and environ fields to None.
+ # See bpo-29183 for more details.
self.close()
@@ -246,8 +246,8 @@ class BaseHandler:
for name, val in headers:
name = self._convert_string_type(name, "Header name")
val = self._convert_string_type(val, "Header value")
- assert not is_hop_by_hop(name),\
- f"Hop-by-hop header, '{name}: {val}', not allowed"
+ assert not is_hop_by_hop(name),\
+ f"Hop-by-hop header, '{name}: {val}', not allowed"
return self.write
diff --git a/contrib/tools/python3/src/Lib/wsgiref/simple_server.py b/contrib/tools/python3/src/Lib/wsgiref/simple_server.py
index aff668b662..93d01a863a 100644
--- a/contrib/tools/python3/src/Lib/wsgiref/simple_server.py
+++ b/contrib/tools/python3/src/Lib/wsgiref/simple_server.py
@@ -127,8 +127,8 @@ class WSGIRequestHandler(BaseHTTPRequestHandler):
return
handler = ServerHandler(
- self.rfile, self.wfile, self.get_stderr(), self.get_environ(),
- multithread=False,
+ self.rfile, self.wfile, self.get_stderr(), self.get_environ(),
+ multithread=False,
)
handler.request_handler = self # backpointer for logging
handler.run(self.server.get_app())
diff --git a/contrib/tools/python3/src/Lib/wsgiref/util.py b/contrib/tools/python3/src/Lib/wsgiref/util.py
index 53faf6a213..cac52eb5a5 100644
--- a/contrib/tools/python3/src/Lib/wsgiref/util.py
+++ b/contrib/tools/python3/src/Lib/wsgiref/util.py
@@ -18,13 +18,13 @@ class FileWrapper:
self.close = filelike.close
def __getitem__(self,key):
- import warnings
- warnings.warn(
- "FileWrapper's __getitem__ method ignores 'key' parameter. "
- "Use iterator protocol instead.",
- DeprecationWarning,
- stacklevel=2
- )
+ import warnings
+ warnings.warn(
+ "FileWrapper's __getitem__ method ignores 'key' parameter. "
+ "Use iterator protocol instead.",
+ DeprecationWarning,
+ stacklevel=2
+ )
data = self.filelike.read(self.blksize)
if data:
return data
@@ -162,9 +162,9 @@ def setup_testing_defaults(environ):
_hoppish = {
- 'connection', 'keep-alive', 'proxy-authenticate',
- 'proxy-authorization', 'te', 'trailers', 'transfer-encoding',
- 'upgrade'
+ 'connection', 'keep-alive', 'proxy-authenticate',
+ 'proxy-authorization', 'te', 'trailers', 'transfer-encoding',
+ 'upgrade'
}.__contains__
def is_hop_by_hop(header_name):
diff --git a/contrib/tools/python3/src/Lib/wsgiref/validate.py b/contrib/tools/python3/src/Lib/wsgiref/validate.py
index 73b09e3cec..6e16578dbb 100644
--- a/contrib/tools/python3/src/Lib/wsgiref/validate.py
+++ b/contrib/tools/python3/src/Lib/wsgiref/validate.py
@@ -77,7 +77,7 @@ Some of the things this checks:
* That wsgi.input is used properly:
- - .read() is called with exactly one argument
+ - .read() is called with exactly one argument
- That it returns a string
@@ -137,7 +137,7 @@ def validator(application):
"""
When applied between a WSGI server and a WSGI application, this
- middleware will check for WSGI compliance on a number of levels.
+ middleware will check for WSGI compliance on a number of levels.
This middleware does not modify the request or response in any
way, but will raise an AssertionError if anything seems off
(except for a failure to close the application iterator, which
diff --git a/contrib/tools/python3/src/Lib/xml/dom/expatbuilder.py b/contrib/tools/python3/src/Lib/xml/dom/expatbuilder.py
index 88eefd2552..199c22d0af 100644
--- a/contrib/tools/python3/src/Lib/xml/dom/expatbuilder.py
+++ b/contrib/tools/python3/src/Lib/xml/dom/expatbuilder.py
@@ -204,11 +204,11 @@ class ExpatBuilder:
buffer = file.read(16*1024)
if not buffer:
break
- parser.Parse(buffer, False)
+ parser.Parse(buffer, False)
if first_buffer and self.document.documentElement:
self._setup_subset(buffer)
first_buffer = False
- parser.Parse(b"", True)
+ parser.Parse(b"", True)
except ParseEscape:
pass
doc = self.document
@@ -637,7 +637,7 @@ class FragmentBuilder(ExpatBuilder):
nsattrs = self._getNSattrs() # get ns decls from node's ancestors
document = _FRAGMENT_BUILDER_TEMPLATE % (ident, subset, nsattrs)
try:
- parser.Parse(document, True)
+ parser.Parse(document, True)
except:
self.reset()
raise
@@ -697,7 +697,7 @@ class FragmentBuilder(ExpatBuilder):
self.fragment = self.document.createDocumentFragment()
self.curNode = self.fragment
try:
- parser.Parse(self._source, True)
+ parser.Parse(self._source, True)
finally:
self.curNode = old_cur_node
self.document = old_document
diff --git a/contrib/tools/python3/src/Lib/xml/dom/minidom.py b/contrib/tools/python3/src/Lib/xml/dom/minidom.py
index 64cc7ecc48..d09ef5e7d0 100644
--- a/contrib/tools/python3/src/Lib/xml/dom/minidom.py
+++ b/contrib/tools/python3/src/Lib/xml/dom/minidom.py
@@ -43,11 +43,11 @@ class Node(xml.dom.Node):
def __bool__(self):
return True
- def toxml(self, encoding=None, standalone=None):
- return self.toprettyxml("", "", encoding, standalone)
+ def toxml(self, encoding=None, standalone=None):
+ return self.toprettyxml("", "", encoding, standalone)
- def toprettyxml(self, indent="\t", newl="\n", encoding=None,
- standalone=None):
+ def toprettyxml(self, indent="\t", newl="\n", encoding=None,
+ standalone=None):
if encoding is None:
writer = io.StringIO()
else:
@@ -57,7 +57,7 @@ class Node(xml.dom.Node):
newline='\n')
if self.nodeType == Node.DOCUMENT_NODE:
# Can pass encoding only to document, to put it into XML header
- self.writexml(writer, "", indent, newl, encoding, standalone)
+ self.writexml(writer, "", indent, newl, encoding, standalone)
else:
self.writexml(writer, "", indent, newl)
if encoding is None:
@@ -719,14 +719,14 @@ class Element(Node):
Node.unlink(self)
def getAttribute(self, attname):
- """Returns the value of the specified attribute.
-
- Returns the value of the element's attribute named attname as
- a string. An empty string is returned if the element does not
- have such an attribute. Note that an empty string may also be
- returned as an explicitly given attribute value, use the
- hasAttribute method to distinguish these two cases.
- """
+ """Returns the value of the specified attribute.
+
+ Returns the value of the element's attribute named attname as
+ a string. An empty string is returned if the element does not
+ have such an attribute. Note that an empty string may also be
+ returned as an explicitly given attribute value, use the
+ hasAttribute method to distinguish these two cases.
+ """
if self._attrs is None:
return ""
try:
@@ -832,16 +832,16 @@ class Element(Node):
# Restore this since the node is still useful and otherwise
# unlinked
node.ownerDocument = self.ownerDocument
- return node
+ return node
removeAttributeNodeNS = removeAttributeNode
def hasAttribute(self, name):
- """Checks whether the element has an attribute with the specified name.
-
- Returns True if the element has an attribute with the specified name.
- Otherwise, returns False.
- """
+ """Checks whether the element has an attribute with the specified name.
+
+ Returns True if the element has an attribute with the specified name.
+ Otherwise, returns False.
+ """
if self._attrs is None:
return False
return name in self._attrs
@@ -852,11 +852,11 @@ class Element(Node):
return (namespaceURI, localName) in self._attrsNS
def getElementsByTagName(self, name):
- """Returns all descendant elements with the given tag name.
-
- Returns the list of all descendant elements (not direct children
- only) with the specified tag name.
- """
+ """Returns all descendant elements with the given tag name.
+
+ Returns the list of all descendant elements (not direct children
+ only) with the specified tag name.
+ """
return _get_elements_by_tagName_helper(self, name, NodeList())
def getElementsByTagNameNS(self, namespaceURI, localName):
@@ -867,11 +867,11 @@ class Element(Node):
return "<DOM Element: %s at %#x>" % (self.tagName, id(self))
def writexml(self, writer, indent="", addindent="", newl=""):
- """Write an XML element to a file-like object
-
- Write the element to the writer object that must provide
- a write method (e.g. a file or StringIO object).
- """
+ """Write an XML element to a file-like object
+
+ Write the element to the writer object that must provide
+ a write method (e.g. a file or StringIO object).
+ """
# indent = current indentation
# addindent = indentation to add to higher levels
# newl = newline string
@@ -879,15 +879,15 @@ class Element(Node):
attrs = self._get_attributes()
- for a_name in attrs.keys():
+ for a_name in attrs.keys():
writer.write(" %s=\"" % a_name)
_write_data(writer, attrs[a_name].value)
writer.write("\"")
if self.childNodes:
writer.write(">")
if (len(self.childNodes) == 1 and
- self.childNodes[0].nodeType in (
- Node.TEXT_NODE, Node.CDATA_SECTION_NODE)):
+ self.childNodes[0].nodeType in (
+ Node.TEXT_NODE, Node.CDATA_SECTION_NODE)):
self.childNodes[0].writexml(writer, '', '', '')
else:
writer.write(newl)
@@ -1811,17 +1811,17 @@ class Document(Node, DocumentLS):
raise xml.dom.NotSupportedErr("cannot import document type nodes")
return _clone_node(node, deep, self)
- def writexml(self, writer, indent="", addindent="", newl="", encoding=None,
- standalone=None):
- declarations = []
-
- if encoding:
- declarations.append(f'encoding="{encoding}"')
- if standalone is not None:
- declarations.append(f'standalone="{"yes" if standalone else "no"}"')
-
- writer.write(f'<?xml version="1.0" {" ".join(declarations)}?>{newl}')
-
+ def writexml(self, writer, indent="", addindent="", newl="", encoding=None,
+ standalone=None):
+ declarations = []
+
+ if encoding:
+ declarations.append(f'encoding="{encoding}"')
+ if standalone is not None:
+ declarations.append(f'standalone="{"yes" if standalone else "no"}"')
+
+ writer.write(f'<?xml version="1.0" {" ".join(declarations)}?>{newl}')
+
for node in self.childNodes:
node.writexml(writer, indent, addindent, newl)
diff --git a/contrib/tools/python3/src/Lib/xml/dom/pulldom.py b/contrib/tools/python3/src/Lib/xml/dom/pulldom.py
index 228ea40202..96a8d59519 100644
--- a/contrib/tools/python3/src/Lib/xml/dom/pulldom.py
+++ b/contrib/tools/python3/src/Lib/xml/dom/pulldom.py
@@ -217,13 +217,13 @@ class DOMEventStream:
self.parser.setContentHandler(self.pulldom)
def __getitem__(self, pos):
- import warnings
- warnings.warn(
- "DOMEventStream's __getitem__ method ignores 'pos' parameter. "
- "Use iterator protocol instead.",
- DeprecationWarning,
- stacklevel=2
- )
+ import warnings
+ warnings.warn(
+ "DOMEventStream's __getitem__ method ignores 'pos' parameter. "
+ "Use iterator protocol instead.",
+ DeprecationWarning,
+ stacklevel=2
+ )
rc = self.getEvent()
if rc:
return rc
diff --git a/contrib/tools/python3/src/Lib/xml/etree/ElementInclude.py b/contrib/tools/python3/src/Lib/xml/etree/ElementInclude.py
index 3a0b04e27a..40a9b22292 100644
--- a/contrib/tools/python3/src/Lib/xml/etree/ElementInclude.py
+++ b/contrib/tools/python3/src/Lib/xml/etree/ElementInclude.py
@@ -42,7 +42,7 @@
# --------------------------------------------------------------------
# Licensed to PSF under a Contributor Agreement.
-# See https://www.python.org/psf/license for licensing details.
+# See https://www.python.org/psf/license for licensing details.
##
# Limited XInclude support for the ElementTree package.
@@ -50,28 +50,28 @@
import copy
from . import ElementTree
-from urllib.parse import urljoin
+from urllib.parse import urljoin
XINCLUDE = "{http://www.w3.org/2001/XInclude}"
XINCLUDE_INCLUDE = XINCLUDE + "include"
XINCLUDE_FALLBACK = XINCLUDE + "fallback"
-# For security reasons, the inclusion depth is limited to this read-only value by default.
-DEFAULT_MAX_INCLUSION_DEPTH = 6
-
-
+# For security reasons, the inclusion depth is limited to this read-only value by default.
+DEFAULT_MAX_INCLUSION_DEPTH = 6
+
+
##
# Fatal include error.
class FatalIncludeError(SyntaxError):
pass
-
-class LimitedRecursiveIncludeError(FatalIncludeError):
- pass
-
-
+
+class LimitedRecursiveIncludeError(FatalIncludeError):
+ pass
+
+
##
# Default loader. This loader reads an included resource from disk.
#
@@ -102,33 +102,33 @@ def default_loader(href, parse, encoding=None):
# @param loader Optional resource loader. If omitted, it defaults
# to {@link default_loader}. If given, it should be a callable
# that implements the same interface as <b>default_loader</b>.
-# @param base_url The base URL of the original file, to resolve
-# relative include file references.
-# @param max_depth The maximum number of recursive inclusions.
-# Limited to reduce the risk of malicious content explosion.
-# Pass a negative value to disable the limitation.
-# @throws LimitedRecursiveIncludeError If the {@link max_depth} was exceeded.
+# @param base_url The base URL of the original file, to resolve
+# relative include file references.
+# @param max_depth The maximum number of recursive inclusions.
+# Limited to reduce the risk of malicious content explosion.
+# Pass a negative value to disable the limitation.
+# @throws LimitedRecursiveIncludeError If the {@link max_depth} was exceeded.
# @throws FatalIncludeError If the function fails to include a given
# resource, or if the tree contains malformed XInclude elements.
-# @throws IOError If the function fails to load a given resource.
-# @returns the node or its replacement if it was an XInclude node
-
-def include(elem, loader=None, base_url=None,
- max_depth=DEFAULT_MAX_INCLUSION_DEPTH):
- if max_depth is None:
- max_depth = -1
- elif max_depth < 0:
- raise ValueError("expected non-negative depth or None for 'max_depth', got %r" % max_depth)
-
- if hasattr(elem, 'getroot'):
- elem = elem.getroot()
+# @throws IOError If the function fails to load a given resource.
+# @returns the node or its replacement if it was an XInclude node
+
+def include(elem, loader=None, base_url=None,
+ max_depth=DEFAULT_MAX_INCLUSION_DEPTH):
+ if max_depth is None:
+ max_depth = -1
+ elif max_depth < 0:
+ raise ValueError("expected non-negative depth or None for 'max_depth', got %r" % max_depth)
+
+ if hasattr(elem, 'getroot'):
+ elem = elem.getroot()
if loader is None:
loader = default_loader
-
- _include(elem, loader, base_url, max_depth, set())
-
-
-def _include(elem, loader, base_url, max_depth, _parent_hrefs):
+
+ _include(elem, loader, base_url, max_depth, set())
+
+
+def _include(elem, loader, base_url, max_depth, _parent_hrefs):
# look for xinclude elements
i = 0
while i < len(elem):
@@ -136,24 +136,24 @@ def _include(elem, loader, base_url, max_depth, _parent_hrefs):
if e.tag == XINCLUDE_INCLUDE:
# process xinclude directive
href = e.get("href")
- if base_url:
- href = urljoin(base_url, href)
+ if base_url:
+ href = urljoin(base_url, href)
parse = e.get("parse", "xml")
if parse == "xml":
- if href in _parent_hrefs:
- raise FatalIncludeError("recursive include of %s" % href)
- if max_depth == 0:
- raise LimitedRecursiveIncludeError(
- "maximum xinclude depth reached when including file %s" % href)
- _parent_hrefs.add(href)
+ if href in _parent_hrefs:
+ raise FatalIncludeError("recursive include of %s" % href)
+ if max_depth == 0:
+ raise LimitedRecursiveIncludeError(
+ "maximum xinclude depth reached when including file %s" % href)
+ _parent_hrefs.add(href)
node = loader(href, parse)
if node is None:
raise FatalIncludeError(
"cannot load %r as %r" % (href, parse)
)
- node = copy.copy(node) # FIXME: this makes little sense with recursive includes
- _include(node, loader, href, max_depth - 1, _parent_hrefs)
- _parent_hrefs.remove(href)
+ node = copy.copy(node) # FIXME: this makes little sense with recursive includes
+ _include(node, loader, href, max_depth - 1, _parent_hrefs)
+ _parent_hrefs.remove(href)
if e.tail:
node.tail = (node.tail or "") + e.tail
elem[i] = node
@@ -163,13 +163,13 @@ def _include(elem, loader, base_url, max_depth, _parent_hrefs):
raise FatalIncludeError(
"cannot load %r as %r" % (href, parse)
)
- if e.tail:
- text += e.tail
+ if e.tail:
+ text += e.tail
if i:
node = elem[i-1]
- node.tail = (node.tail or "") + text
+ node.tail = (node.tail or "") + text
else:
- elem.text = (elem.text or "") + text
+ elem.text = (elem.text or "") + text
del elem[i]
continue
else:
@@ -181,5 +181,5 @@ def _include(elem, loader, base_url, max_depth, _parent_hrefs):
"xi:fallback tag must be child of xi:include (%r)" % e.tag
)
else:
- _include(e, loader, base_url, max_depth, _parent_hrefs)
- i += 1
+ _include(e, loader, base_url, max_depth, _parent_hrefs)
+ i += 1
diff --git a/contrib/tools/python3/src/Lib/xml/etree/ElementPath.py b/contrib/tools/python3/src/Lib/xml/etree/ElementPath.py
index 7f7606c631..880ea7bd99 100644
--- a/contrib/tools/python3/src/Lib/xml/etree/ElementPath.py
+++ b/contrib/tools/python3/src/Lib/xml/etree/ElementPath.py
@@ -48,7 +48,7 @@
# --------------------------------------------------------------------
# Licensed to PSF under a Contributor Agreement.
-# See https://www.python.org/psf/license for licensing details.
+# See https://www.python.org/psf/license for licensing details.
##
# Implementation module for XPath support. There's usually no reason
@@ -71,29 +71,29 @@ xpath_tokenizer_re = re.compile(
)
def xpath_tokenizer(pattern, namespaces=None):
- default_namespace = namespaces.get('') if namespaces else None
- parsing_attribute = False
+ default_namespace = namespaces.get('') if namespaces else None
+ parsing_attribute = False
for token in xpath_tokenizer_re.findall(pattern):
- ttype, tag = token
- if tag and tag[0] != "{":
- if ":" in tag:
+ ttype, tag = token
+ if tag and tag[0] != "{":
+ if ":" in tag:
prefix, uri = tag.split(":", 1)
- try:
- if not namespaces:
- raise KeyError
- yield ttype, "{%s}%s" % (namespaces[prefix], uri)
- except KeyError:
- raise SyntaxError("prefix %r not found in prefix map" % prefix) from None
- elif default_namespace and not parsing_attribute:
- yield ttype, "{%s}%s" % (default_namespace, tag)
- else:
- yield token
- parsing_attribute = False
+ try:
+ if not namespaces:
+ raise KeyError
+ yield ttype, "{%s}%s" % (namespaces[prefix], uri)
+ except KeyError:
+ raise SyntaxError("prefix %r not found in prefix map" % prefix) from None
+ elif default_namespace and not parsing_attribute:
+ yield ttype, "{%s}%s" % (default_namespace, tag)
+ else:
+ yield token
+ parsing_attribute = False
else:
yield token
- parsing_attribute = ttype == '@'
+ parsing_attribute = ttype == '@'
+
-
def get_parent_map(context):
parent_map = context.parent_map
if parent_map is None:
@@ -103,69 +103,69 @@ def get_parent_map(context):
parent_map[e] = p
return parent_map
-
-def _is_wildcard_tag(tag):
- return tag[:3] == '{*}' or tag[-2:] == '}*'
-
-
-def _prepare_tag(tag):
- _isinstance, _str = isinstance, str
- if tag == '{*}*':
- # Same as '*', but no comments or processing instructions.
- # It can be a surprise that '*' includes those, but there is no
- # justification for '{*}*' doing the same.
- def select(context, result):
- for elem in result:
- if _isinstance(elem.tag, _str):
- yield elem
- elif tag == '{}*':
- # Any tag that is not in a namespace.
- def select(context, result):
- for elem in result:
- el_tag = elem.tag
- if _isinstance(el_tag, _str) and el_tag[0] != '{':
- yield elem
- elif tag[:3] == '{*}':
- # The tag in any (or no) namespace.
- suffix = tag[2:] # '}name'
- no_ns = slice(-len(suffix), None)
- tag = tag[3:]
- def select(context, result):
- for elem in result:
- el_tag = elem.tag
- if el_tag == tag or _isinstance(el_tag, _str) and el_tag[no_ns] == suffix:
- yield elem
- elif tag[-2:] == '}*':
- # Any tag in the given namespace.
- ns = tag[:-1]
- ns_only = slice(None, len(ns))
- def select(context, result):
- for elem in result:
- el_tag = elem.tag
- if _isinstance(el_tag, _str) and el_tag[ns_only] == ns:
- yield elem
- else:
- raise RuntimeError(f"internal parser error, got {tag}")
- return select
-
-
+
+def _is_wildcard_tag(tag):
+ return tag[:3] == '{*}' or tag[-2:] == '}*'
+
+
+def _prepare_tag(tag):
+ _isinstance, _str = isinstance, str
+ if tag == '{*}*':
+ # Same as '*', but no comments or processing instructions.
+ # It can be a surprise that '*' includes those, but there is no
+ # justification for '{*}*' doing the same.
+ def select(context, result):
+ for elem in result:
+ if _isinstance(elem.tag, _str):
+ yield elem
+ elif tag == '{}*':
+ # Any tag that is not in a namespace.
+ def select(context, result):
+ for elem in result:
+ el_tag = elem.tag
+ if _isinstance(el_tag, _str) and el_tag[0] != '{':
+ yield elem
+ elif tag[:3] == '{*}':
+ # The tag in any (or no) namespace.
+ suffix = tag[2:] # '}name'
+ no_ns = slice(-len(suffix), None)
+ tag = tag[3:]
+ def select(context, result):
+ for elem in result:
+ el_tag = elem.tag
+ if el_tag == tag or _isinstance(el_tag, _str) and el_tag[no_ns] == suffix:
+ yield elem
+ elif tag[-2:] == '}*':
+ # Any tag in the given namespace.
+ ns = tag[:-1]
+ ns_only = slice(None, len(ns))
+ def select(context, result):
+ for elem in result:
+ el_tag = elem.tag
+ if _isinstance(el_tag, _str) and el_tag[ns_only] == ns:
+ yield elem
+ else:
+ raise RuntimeError(f"internal parser error, got {tag}")
+ return select
+
+
def prepare_child(next, token):
tag = token[1]
- if _is_wildcard_tag(tag):
- select_tag = _prepare_tag(tag)
- def select(context, result):
- def select_child(result):
- for elem in result:
- yield from elem
- return select_tag(context, select_child(result))
- else:
- if tag[:2] == '{}':
- tag = tag[2:] # '{}tag' == 'tag'
- def select(context, result):
- for elem in result:
- for e in elem:
- if e.tag == tag:
- yield e
+ if _is_wildcard_tag(tag):
+ select_tag = _prepare_tag(tag)
+ def select(context, result):
+ def select_child(result):
+ for elem in result:
+ yield from elem
+ return select_tag(context, select_child(result))
+ else:
+ if tag[:2] == '{}':
+ tag = tag[2:] # '{}tag' == 'tag'
+ def select(context, result):
+ for elem in result:
+ for e in elem:
+ if e.tag == tag:
+ yield e
return select
def prepare_star(next, token):
@@ -190,24 +190,24 @@ def prepare_descendant(next, token):
tag = token[1]
else:
raise SyntaxError("invalid descendant")
-
- if _is_wildcard_tag(tag):
- select_tag = _prepare_tag(tag)
- def select(context, result):
- def select_child(result):
- for elem in result:
- for e in elem.iter():
- if e is not elem:
- yield e
- return select_tag(context, select_child(result))
- else:
- if tag[:2] == '{}':
- tag = tag[2:] # '{}tag' == 'tag'
- def select(context, result):
- for elem in result:
- for e in elem.iter(tag):
- if e is not elem:
- yield e
+
+ if _is_wildcard_tag(tag):
+ select_tag = _prepare_tag(tag)
+ def select(context, result):
+ def select_child(result):
+ for elem in result:
+ for e in elem.iter():
+ if e is not elem:
+ yield e
+ return select_tag(context, select_child(result))
+ else:
+ if tag[:2] == '{}':
+ tag = tag[2:] # '{}tag' == 'tag'
+ def select(context, result):
+ for elem in result:
+ for e in elem.iter(tag):
+ if e is not elem:
+ yield e
return select
def prepare_parent(next, token):
@@ -345,11 +345,11 @@ def iterfind(elem, path, namespaces=None):
# compile selector pattern
if path[-1:] == "/":
path = path + "*" # implicit all (FIXME: keep this?)
-
- cache_key = (path,)
- if namespaces:
- cache_key += tuple(sorted(namespaces.items()))
-
+
+ cache_key = (path,)
+ if namespaces:
+ cache_key += tuple(sorted(namespaces.items()))
+
try:
selector = _cache[cache_key]
except KeyError:
diff --git a/contrib/tools/python3/src/Lib/xml/etree/ElementTree.py b/contrib/tools/python3/src/Lib/xml/etree/ElementTree.py
index 6f964670a3..fde303c875 100644
--- a/contrib/tools/python3/src/Lib/xml/etree/ElementTree.py
+++ b/contrib/tools/python3/src/Lib/xml/etree/ElementTree.py
@@ -35,7 +35,7 @@
#---------------------------------------------------------------------
# Licensed to PSF under a Contributor Agreement.
-# See https://www.python.org/psf/license for licensing details.
+# See https://www.python.org/psf/license for licensing details.
#
# ElementTree
# Copyright (c) 1999-2008 by Fredrik Lundh. All rights reserved.
@@ -76,7 +76,7 @@ __all__ = [
"dump",
"Element", "ElementTree",
"fromstring", "fromstringlist",
- "indent", "iselement", "iterparse",
+ "indent", "iselement", "iterparse",
"parse", "ParseError",
"PI", "ProcessingInstruction",
"QName",
@@ -87,7 +87,7 @@ __all__ = [
"XML", "XMLID",
"XMLParser", "XMLPullParser",
"register_namespace",
- "canonicalize", "C14NWriterTarget",
+ "canonicalize", "C14NWriterTarget",
]
VERSION = "1.3.0"
@@ -171,7 +171,7 @@ class Element:
raise TypeError("attrib must be dict, not %s" % (
attrib.__class__.__name__,))
self.tag = tag
- self.attrib = {**attrib, **extra}
+ self.attrib = {**attrib, **extra}
self._children = []
def __repr__(self):
@@ -195,13 +195,13 @@ class Element:
original tree.
"""
- warnings.warn(
- "elem.copy() is deprecated. Use copy.copy(elem) instead.",
- DeprecationWarning
- )
- return self.__copy__()
-
- def __copy__(self):
+ warnings.warn(
+ "elem.copy() is deprecated. Use copy.copy(elem) instead.",
+ DeprecationWarning
+ )
+ return self.__copy__()
+
+ def __copy__(self):
elem = self.makeelement(self.tag, self.attrib)
elem.text = self.text
elem.tail = self.tail
@@ -223,11 +223,11 @@ class Element:
return self._children[index]
def __setitem__(self, index, element):
- if isinstance(index, slice):
- for elt in element:
- self._assert_is_element(elt)
- else:
- self._assert_is_element(element)
+ if isinstance(index, slice):
+ for elt in element:
+ self._assert_is_element(elt)
+ else:
+ self._assert_is_element(element)
self._children[index] = element
def __delitem__(self, index):
@@ -252,7 +252,7 @@ class Element:
"""
for element in elements:
self._assert_is_element(element)
- self._children.append(element)
+ self._children.append(element)
def insert(self, index, subelement):
"""Insert *subelement* at position *index*."""
@@ -435,7 +435,7 @@ def SubElement(parent, tag, attrib={}, **extra):
additional attributes given as keyword arguments.
"""
- attrib = {**attrib, **extra}
+ attrib = {**attrib, **extra}
element = parent.makeelement(tag, attrib)
parent.append(element)
return element
@@ -897,7 +897,7 @@ def _serialize_xml(write, elem, qnames, namespaces,
k,
_escape_attrib(v)
))
- for k, v in items:
+ for k, v in items:
if isinstance(k, QName):
k = k.text
if isinstance(v, QName):
@@ -953,7 +953,7 @@ def _serialize_html(write, elem, qnames, namespaces, **kwargs):
k,
_escape_attrib(v)
))
- for k, v in items:
+ for k, v in items:
if isinstance(k, QName):
k = k.text
if isinstance(v, QName):
@@ -1057,15 +1057,15 @@ def _escape_attrib(text):
text = text.replace(">", "&gt;")
if "\"" in text:
text = text.replace("\"", "&quot;")
- # Although section 2.11 of the XML specification states that CR or
- # CR LN should be replaced with just LN, it applies only to EOLNs
- # which take part of organizing file into lines. Within attributes,
- # we are replacing these with entity numbers, so they do not count.
+ # Although section 2.11 of the XML specification states that CR or
+ # CR LN should be replaced with just LN, it applies only to EOLNs
+ # which take part of organizing file into lines. Within attributes,
+ # we are replacing these with entity numbers, so they do not count.
# http://www.w3.org/TR/REC-xml/#sec-line-ends
- # The current solution, contained in following six lines, was
- # discussed in issue 17582 and 39011.
+ # The current solution, contained in following six lines, was
+ # discussed in issue 17582 and 39011.
if "\r" in text:
- text = text.replace("\r", "&#13;")
+ text = text.replace("\r", "&#13;")
if "\n" in text:
text = text.replace("\n", "&#10;")
if "\t" in text:
@@ -1090,7 +1090,7 @@ def _escape_attrib_html(text):
# --------------------------------------------------------------------
def tostring(element, encoding=None, method=None, *,
- xml_declaration=None, default_namespace=None,
+ xml_declaration=None, default_namespace=None,
short_empty_elements=True):
"""Generate string representation of XML element.
@@ -1099,17 +1099,17 @@ def tostring(element, encoding=None, method=None, *,
*element* is an Element instance, *encoding* is an optional output
encoding defaulting to US-ASCII, *method* is an optional output which can
- be one of "xml" (default), "html", "text" or "c14n", *default_namespace*
- sets the default XML namespace (for "xmlns").
+ be one of "xml" (default), "html", "text" or "c14n", *default_namespace*
+ sets the default XML namespace (for "xmlns").
Returns an (optionally) encoded string containing the XML data.
"""
stream = io.StringIO() if encoding == 'unicode' else io.BytesIO()
- ElementTree(element).write(stream, encoding,
- xml_declaration=xml_declaration,
- default_namespace=default_namespace,
- method=method,
+ ElementTree(element).write(stream, encoding,
+ xml_declaration=xml_declaration,
+ default_namespace=default_namespace,
+ method=method,
short_empty_elements=short_empty_elements)
return stream.getvalue()
@@ -1131,14 +1131,14 @@ class _ListDataStream(io.BufferedIOBase):
return len(self.lst)
def tostringlist(element, encoding=None, method=None, *,
- xml_declaration=None, default_namespace=None,
+ xml_declaration=None, default_namespace=None,
short_empty_elements=True):
lst = []
stream = _ListDataStream(lst)
- ElementTree(element).write(stream, encoding,
- xml_declaration=xml_declaration,
- default_namespace=default_namespace,
- method=method,
+ ElementTree(element).write(stream, encoding,
+ xml_declaration=xml_declaration,
+ default_namespace=default_namespace,
+ method=method,
short_empty_elements=short_empty_elements)
return lst
@@ -1161,57 +1161,57 @@ def dump(elem):
if not tail or tail[-1] != "\n":
sys.stdout.write("\n")
-
-def indent(tree, space=" ", level=0):
- """Indent an XML document by inserting newlines and indentation space
- after elements.
-
- *tree* is the ElementTree or Element to modify. The (root) element
- itself will not be changed, but the tail text of all elements in its
- subtree will be adapted.
-
- *space* is the whitespace to insert for each indentation level, two
- space characters by default.
-
- *level* is the initial indentation level. Setting this to a higher
- value than 0 can be used for indenting subtrees that are more deeply
- nested inside of a document.
- """
- if isinstance(tree, ElementTree):
- tree = tree.getroot()
- if level < 0:
- raise ValueError(f"Initial indentation level must be >= 0, got {level}")
- if not len(tree):
- return
-
- # Reduce the memory consumption by reusing indentation strings.
- indentations = ["\n" + level * space]
-
- def _indent_children(elem, level):
- # Start a new indentation level for the first child.
- child_level = level + 1
- try:
- child_indentation = indentations[child_level]
- except IndexError:
- child_indentation = indentations[level] + space
- indentations.append(child_indentation)
-
- if not elem.text or not elem.text.strip():
- elem.text = child_indentation
-
- for child in elem:
- if len(child):
- _indent_children(child, child_level)
- if not child.tail or not child.tail.strip():
- child.tail = child_indentation
-
- # Dedent after the last child by overwriting the previous indentation.
- if not child.tail.strip():
- child.tail = indentations[level]
-
- _indent_children(tree, 0)
-
-
+
+def indent(tree, space=" ", level=0):
+ """Indent an XML document by inserting newlines and indentation space
+ after elements.
+
+ *tree* is the ElementTree or Element to modify. The (root) element
+ itself will not be changed, but the tail text of all elements in its
+ subtree will be adapted.
+
+ *space* is the whitespace to insert for each indentation level, two
+ space characters by default.
+
+ *level* is the initial indentation level. Setting this to a higher
+ value than 0 can be used for indenting subtrees that are more deeply
+ nested inside of a document.
+ """
+ if isinstance(tree, ElementTree):
+ tree = tree.getroot()
+ if level < 0:
+ raise ValueError(f"Initial indentation level must be >= 0, got {level}")
+ if not len(tree):
+ return
+
+ # Reduce the memory consumption by reusing indentation strings.
+ indentations = ["\n" + level * space]
+
+ def _indent_children(elem, level):
+ # Start a new indentation level for the first child.
+ child_level = level + 1
+ try:
+ child_indentation = indentations[child_level]
+ except IndexError:
+ child_indentation = indentations[level] + space
+ indentations.append(child_indentation)
+
+ if not elem.text or not elem.text.strip():
+ elem.text = child_indentation
+
+ for child in elem:
+ if len(child):
+ _indent_children(child, child_level)
+ if not child.tail or not child.tail.strip():
+ child.tail = child_indentation
+
+ # Dedent after the last child by overwriting the previous indentation.
+ if not child.tail.strip():
+ child.tail = indentations[level]
+
+ _indent_children(tree, 0)
+
+
# --------------------------------------------------------------------
# parsing
@@ -1283,7 +1283,7 @@ class XMLPullParser:
def __init__(self, events=None, *, _parser=None):
# The _parser argument is for internal use only and must not be relied
# upon in user code. It will be removed in a future release.
- # See https://bugs.python.org/issue17741 for more details.
+ # See https://bugs.python.org/issue17741 for more details.
self._events_queue = collections.deque()
self._parser = _parser or XMLParser(target=TreeBuilder())
@@ -1402,30 +1402,30 @@ class TreeBuilder:
*element_factory* is an optional element factory which is called
to create new Element instances, as necessary.
- *comment_factory* is a factory to create comments to be used instead of
- the standard factory. If *insert_comments* is false (the default),
- comments will not be inserted into the tree.
-
- *pi_factory* is a factory to create processing instructions to be used
- instead of the standard factory. If *insert_pis* is false (the default),
- processing instructions will not be inserted into the tree.
+ *comment_factory* is a factory to create comments to be used instead of
+ the standard factory. If *insert_comments* is false (the default),
+ comments will not be inserted into the tree.
+
+ *pi_factory* is a factory to create processing instructions to be used
+ instead of the standard factory. If *insert_pis* is false (the default),
+ processing instructions will not be inserted into the tree.
"""
- def __init__(self, element_factory=None, *,
- comment_factory=None, pi_factory=None,
- insert_comments=False, insert_pis=False):
+ def __init__(self, element_factory=None, *,
+ comment_factory=None, pi_factory=None,
+ insert_comments=False, insert_pis=False):
self._data = [] # data collector
self._elem = [] # element stack
self._last = None # last element
- self._root = None # root element
+ self._root = None # root element
self._tail = None # true if we're after an end tag
- if comment_factory is None:
- comment_factory = Comment
- self._comment_factory = comment_factory
- self.insert_comments = insert_comments
- if pi_factory is None:
- pi_factory = ProcessingInstruction
- self._pi_factory = pi_factory
- self.insert_pis = insert_pis
+ if comment_factory is None:
+ comment_factory = Comment
+ self._comment_factory = comment_factory
+ self.insert_comments = insert_comments
+ if pi_factory is None:
+ pi_factory = ProcessingInstruction
+ self._pi_factory = pi_factory
+ self.insert_pis = insert_pis
if element_factory is None:
element_factory = Element
self._factory = element_factory
@@ -1433,8 +1433,8 @@ class TreeBuilder:
def close(self):
"""Flush builder buffers and return toplevel document Element."""
assert len(self._elem) == 0, "missing end tags"
- assert self._root is not None, "missing toplevel element"
- return self._root
+ assert self._root is not None, "missing toplevel element"
+ return self._root
def _flush(self):
if self._data:
@@ -1463,8 +1463,8 @@ class TreeBuilder:
self._last = elem = self._factory(tag, attrs)
if self._elem:
self._elem[-1].append(elem)
- elif self._root is None:
- self._root = elem
+ elif self._root is None:
+ self._root = elem
self._elem.append(elem)
self._tail = 0
return elem
@@ -1483,34 +1483,34 @@ class TreeBuilder:
self._tail = 1
return self._last
- def comment(self, text):
- """Create a comment using the comment_factory.
-
- *text* is the text of the comment.
- """
- return self._handle_single(
- self._comment_factory, self.insert_comments, text)
-
- def pi(self, target, text=None):
- """Create a processing instruction using the pi_factory.
-
- *target* is the target name of the processing instruction.
- *text* is the data of the processing instruction, or ''.
- """
- return self._handle_single(
- self._pi_factory, self.insert_pis, target, text)
-
- def _handle_single(self, factory, insert, *args):
- elem = factory(*args)
- if insert:
- self._flush()
- self._last = elem
- if self._elem:
- self._elem[-1].append(elem)
- self._tail = 1
- return elem
-
-
+ def comment(self, text):
+ """Create a comment using the comment_factory.
+
+ *text* is the text of the comment.
+ """
+ return self._handle_single(
+ self._comment_factory, self.insert_comments, text)
+
+ def pi(self, target, text=None):
+ """Create a processing instruction using the pi_factory.
+
+ *target* is the target name of the processing instruction.
+ *text* is the data of the processing instruction, or ''.
+ """
+ return self._handle_single(
+ self._pi_factory, self.insert_pis, target, text)
+
+ def _handle_single(self, factory, insert, *args):
+ elem = factory(*args)
+ if insert:
+ self._flush()
+ self._last = elem
+ if self._elem:
+ self._elem[-1].append(elem)
+ self._tail = 1
+ return elem
+
+
# also see ElementTree and TreeBuilder
class XMLParser:
"""Element structure builder for XML source data based on the expat parser.
@@ -1522,7 +1522,7 @@ class XMLParser:
"""
- def __init__(self, *, target=None, encoding=None):
+ def __init__(self, *, target=None, encoding=None):
try:
from xml.parsers import expat
except ImportError:
@@ -1546,10 +1546,10 @@ class XMLParser:
parser.StartElementHandler = self._start
if hasattr(target, 'end'):
parser.EndElementHandler = self._end
- if hasattr(target, 'start_ns'):
- parser.StartNamespaceDeclHandler = self._start_ns
- if hasattr(target, 'end_ns'):
- parser.EndNamespaceDeclHandler = self._end_ns
+ if hasattr(target, 'start_ns'):
+ parser.StartNamespaceDeclHandler = self._start_ns
+ if hasattr(target, 'end_ns'):
+ parser.EndNamespaceDeclHandler = self._end_ns
if hasattr(target, 'data'):
parser.CharacterDataHandler = target.data
# miscellaneous callbacks
@@ -1591,34 +1591,34 @@ class XMLParser:
append((event, end(tag)))
parser.EndElementHandler = handler
elif event_name == "start-ns":
- # TreeBuilder does not implement .start_ns()
- if hasattr(self.target, "start_ns"):
- def handler(prefix, uri, event=event_name, append=append,
- start_ns=self._start_ns):
- append((event, start_ns(prefix, uri)))
- else:
- def handler(prefix, uri, event=event_name, append=append):
- append((event, (prefix or '', uri or '')))
+ # TreeBuilder does not implement .start_ns()
+ if hasattr(self.target, "start_ns"):
+ def handler(prefix, uri, event=event_name, append=append,
+ start_ns=self._start_ns):
+ append((event, start_ns(prefix, uri)))
+ else:
+ def handler(prefix, uri, event=event_name, append=append):
+ append((event, (prefix or '', uri or '')))
parser.StartNamespaceDeclHandler = handler
elif event_name == "end-ns":
- # TreeBuilder does not implement .end_ns()
- if hasattr(self.target, "end_ns"):
- def handler(prefix, event=event_name, append=append,
- end_ns=self._end_ns):
- append((event, end_ns(prefix)))
- else:
- def handler(prefix, event=event_name, append=append):
- append((event, None))
+ # TreeBuilder does not implement .end_ns()
+ if hasattr(self.target, "end_ns"):
+ def handler(prefix, event=event_name, append=append,
+ end_ns=self._end_ns):
+ append((event, end_ns(prefix)))
+ else:
+ def handler(prefix, event=event_name, append=append):
+ append((event, None))
parser.EndNamespaceDeclHandler = handler
- elif event_name == 'comment':
- def handler(text, event=event_name, append=append, self=self):
- append((event, self.target.comment(text)))
- parser.CommentHandler = handler
- elif event_name == 'pi':
- def handler(pi_target, data, event=event_name, append=append,
- self=self):
- append((event, self.target.pi(pi_target, data)))
- parser.ProcessingInstructionHandler = handler
+ elif event_name == 'comment':
+ def handler(text, event=event_name, append=append, self=self):
+ append((event, self.target.comment(text)))
+ parser.CommentHandler = handler
+ elif event_name == 'pi':
+ def handler(pi_target, data, event=event_name, append=append,
+ self=self):
+ append((event, self.target.pi(pi_target, data)))
+ parser.ProcessingInstructionHandler = handler
else:
raise ValueError("unknown event %r" % event_name)
@@ -1639,12 +1639,12 @@ class XMLParser:
self._names[key] = name
return name
- def _start_ns(self, prefix, uri):
- return self.target.start_ns(prefix or '', uri or '')
-
- def _end_ns(self, prefix):
- return self.target.end_ns(prefix or '')
-
+ def _start_ns(self, prefix, uri):
+ return self.target.start_ns(prefix or '', uri or '')
+
+ def _end_ns(self, prefix):
+ return self.target.end_ns(prefix or '')
+
def _start(self, tag, attr_list):
# Handler for expat's StartElementHandler. Since ordered_attributes
# is set, the attributes are reported as a list of alternating
@@ -1706,25 +1706,25 @@ class XMLParser:
return
if hasattr(self.target, "doctype"):
self.target.doctype(name, pubid, system[1:-1])
- elif hasattr(self, "doctype"):
- warnings.warn(
- "The doctype() method of XMLParser is ignored. "
- "Define doctype() method on the TreeBuilder target.",
- RuntimeWarning)
-
+ elif hasattr(self, "doctype"):
+ warnings.warn(
+ "The doctype() method of XMLParser is ignored. "
+ "Define doctype() method on the TreeBuilder target.",
+ RuntimeWarning)
+
self._doctype = None
def feed(self, data):
"""Feed encoded data to parser."""
try:
- self.parser.Parse(data, False)
+ self.parser.Parse(data, False)
except self._error as v:
self._raiseerror(v)
def close(self):
"""Finish feeding data to parser and return element structure."""
try:
- self.parser.Parse(b"", True) # end of data
+ self.parser.Parse(b"", True) # end of data
except self._error as v:
self._raiseerror(v)
try:
@@ -1739,341 +1739,341 @@ class XMLParser:
del self.target, self._target
-# --------------------------------------------------------------------
-# C14N 2.0
-
-def canonicalize(xml_data=None, *, out=None, from_file=None, **options):
- """Convert XML to its C14N 2.0 serialised form.
-
- If *out* is provided, it must be a file or file-like object that receives
- the serialised canonical XML output (text, not bytes) through its ``.write()``
- method. To write to a file, open it in text mode with encoding "utf-8".
- If *out* is not provided, this function returns the output as text string.
-
- Either *xml_data* (an XML string) or *from_file* (a file path or
- file-like object) must be provided as input.
-
- The configuration options are the same as for the ``C14NWriterTarget``.
- """
- if xml_data is None and from_file is None:
- raise ValueError("Either 'xml_data' or 'from_file' must be provided as input")
- sio = None
- if out is None:
- sio = out = io.StringIO()
-
- parser = XMLParser(target=C14NWriterTarget(out.write, **options))
-
- if xml_data is not None:
- parser.feed(xml_data)
- parser.close()
- elif from_file is not None:
- parse(from_file, parser=parser)
-
- return sio.getvalue() if sio is not None else None
-
-
-_looks_like_prefix_name = re.compile(r'^\w+:\w+$', re.UNICODE).match
-
-
-class C14NWriterTarget:
- """
- Canonicalization writer target for the XMLParser.
-
- Serialises parse events to XML C14N 2.0.
-
- The *write* function is used for writing out the resulting data stream
- as text (not bytes). To write to a file, open it in text mode with encoding
- "utf-8" and pass its ``.write`` method.
-
- Configuration options:
-
- - *with_comments*: set to true to include comments
- - *strip_text*: set to true to strip whitespace before and after text content
- - *rewrite_prefixes*: set to true to replace namespace prefixes by "n{number}"
- - *qname_aware_tags*: a set of qname aware tag names in which prefixes
- should be replaced in text content
- - *qname_aware_attrs*: a set of qname aware attribute names in which prefixes
- should be replaced in text content
- - *exclude_attrs*: a set of attribute names that should not be serialised
- - *exclude_tags*: a set of tag names that should not be serialised
- """
- def __init__(self, write, *,
- with_comments=False, strip_text=False, rewrite_prefixes=False,
- qname_aware_tags=None, qname_aware_attrs=None,
- exclude_attrs=None, exclude_tags=None):
- self._write = write
- self._data = []
- self._with_comments = with_comments
- self._strip_text = strip_text
- self._exclude_attrs = set(exclude_attrs) if exclude_attrs else None
- self._exclude_tags = set(exclude_tags) if exclude_tags else None
-
- self._rewrite_prefixes = rewrite_prefixes
- if qname_aware_tags:
- self._qname_aware_tags = set(qname_aware_tags)
- else:
- self._qname_aware_tags = None
- if qname_aware_attrs:
- self._find_qname_aware_attrs = set(qname_aware_attrs).intersection
- else:
- self._find_qname_aware_attrs = None
-
- # Stack with globally and newly declared namespaces as (uri, prefix) pairs.
- self._declared_ns_stack = [[
- ("http://www.w3.org/XML/1998/namespace", "xml"),
- ]]
- # Stack with user declared namespace prefixes as (uri, prefix) pairs.
- self._ns_stack = []
- if not rewrite_prefixes:
- self._ns_stack.append(list(_namespace_map.items()))
- self._ns_stack.append([])
- self._prefix_map = {}
- self._preserve_space = [False]
- self._pending_start = None
- self._root_seen = False
- self._root_done = False
- self._ignored_depth = 0
-
- def _iter_namespaces(self, ns_stack, _reversed=reversed):
- for namespaces in _reversed(ns_stack):
- if namespaces: # almost no element declares new namespaces
- yield from namespaces
-
- def _resolve_prefix_name(self, prefixed_name):
- prefix, name = prefixed_name.split(':', 1)
- for uri, p in self._iter_namespaces(self._ns_stack):
- if p == prefix:
- return f'{{{uri}}}{name}'
- raise ValueError(f'Prefix {prefix} of QName "{prefixed_name}" is not declared in scope')
-
- def _qname(self, qname, uri=None):
- if uri is None:
- uri, tag = qname[1:].rsplit('}', 1) if qname[:1] == '{' else ('', qname)
- else:
- tag = qname
-
- prefixes_seen = set()
- for u, prefix in self._iter_namespaces(self._declared_ns_stack):
- if u == uri and prefix not in prefixes_seen:
- return f'{prefix}:{tag}' if prefix else tag, tag, uri
- prefixes_seen.add(prefix)
-
- # Not declared yet => add new declaration.
- if self._rewrite_prefixes:
- if uri in self._prefix_map:
- prefix = self._prefix_map[uri]
- else:
- prefix = self._prefix_map[uri] = f'n{len(self._prefix_map)}'
- self._declared_ns_stack[-1].append((uri, prefix))
- return f'{prefix}:{tag}', tag, uri
-
- if not uri and '' not in prefixes_seen:
- # No default namespace declared => no prefix needed.
- return tag, tag, uri
-
- for u, prefix in self._iter_namespaces(self._ns_stack):
- if u == uri:
- self._declared_ns_stack[-1].append((uri, prefix))
- return f'{prefix}:{tag}' if prefix else tag, tag, uri
-
- if not uri:
- # As soon as a default namespace is defined,
- # anything that has no namespace (and thus, no prefix) goes there.
- return tag, tag, uri
-
- raise ValueError(f'Namespace "{uri}" is not declared in scope')
-
- def data(self, data):
- if not self._ignored_depth:
- self._data.append(data)
-
- def _flush(self, _join_text=''.join):
- data = _join_text(self._data)
- del self._data[:]
- if self._strip_text and not self._preserve_space[-1]:
- data = data.strip()
- if self._pending_start is not None:
- args, self._pending_start = self._pending_start, None
- qname_text = data if data and _looks_like_prefix_name(data) else None
- self._start(*args, qname_text)
- if qname_text is not None:
- return
- if data and self._root_seen:
- self._write(_escape_cdata_c14n(data))
-
- def start_ns(self, prefix, uri):
- if self._ignored_depth:
- return
- # we may have to resolve qnames in text content
- if self._data:
- self._flush()
- self._ns_stack[-1].append((uri, prefix))
-
- def start(self, tag, attrs):
- if self._exclude_tags is not None and (
- self._ignored_depth or tag in self._exclude_tags):
- self._ignored_depth += 1
- return
- if self._data:
- self._flush()
-
- new_namespaces = []
- self._declared_ns_stack.append(new_namespaces)
-
- if self._qname_aware_tags is not None and tag in self._qname_aware_tags:
- # Need to parse text first to see if it requires a prefix declaration.
- self._pending_start = (tag, attrs, new_namespaces)
- return
- self._start(tag, attrs, new_namespaces)
-
- def _start(self, tag, attrs, new_namespaces, qname_text=None):
- if self._exclude_attrs is not None and attrs:
- attrs = {k: v for k, v in attrs.items() if k not in self._exclude_attrs}
-
- qnames = {tag, *attrs}
- resolved_names = {}
-
- # Resolve prefixes in attribute and tag text.
- if qname_text is not None:
- qname = resolved_names[qname_text] = self._resolve_prefix_name(qname_text)
- qnames.add(qname)
- if self._find_qname_aware_attrs is not None and attrs:
- qattrs = self._find_qname_aware_attrs(attrs)
- if qattrs:
- for attr_name in qattrs:
- value = attrs[attr_name]
- if _looks_like_prefix_name(value):
- qname = resolved_names[value] = self._resolve_prefix_name(value)
- qnames.add(qname)
- else:
- qattrs = None
- else:
- qattrs = None
-
- # Assign prefixes in lexicographical order of used URIs.
- parse_qname = self._qname
- parsed_qnames = {n: parse_qname(n) for n in sorted(
- qnames, key=lambda n: n.split('}', 1))}
-
- # Write namespace declarations in prefix order ...
- if new_namespaces:
- attr_list = [
- ('xmlns:' + prefix if prefix else 'xmlns', uri)
- for uri, prefix in new_namespaces
- ]
- attr_list.sort()
- else:
- # almost always empty
- attr_list = []
-
- # ... followed by attributes in URI+name order
- if attrs:
- for k, v in sorted(attrs.items()):
- if qattrs is not None and k in qattrs and v in resolved_names:
- v = parsed_qnames[resolved_names[v]][0]
- attr_qname, attr_name, uri = parsed_qnames[k]
- # No prefix for attributes in default ('') namespace.
- attr_list.append((attr_qname if uri else attr_name, v))
-
- # Honour xml:space attributes.
- space_behaviour = attrs.get('{http://www.w3.org/XML/1998/namespace}space')
- self._preserve_space.append(
- space_behaviour == 'preserve' if space_behaviour
- else self._preserve_space[-1])
-
- # Write the tag.
- write = self._write
- write('<' + parsed_qnames[tag][0])
- if attr_list:
- write(''.join([f' {k}="{_escape_attrib_c14n(v)}"' for k, v in attr_list]))
- write('>')
-
- # Write the resolved qname text content.
- if qname_text is not None:
- write(_escape_cdata_c14n(parsed_qnames[resolved_names[qname_text]][0]))
-
- self._root_seen = True
- self._ns_stack.append([])
-
- def end(self, tag):
- if self._ignored_depth:
- self._ignored_depth -= 1
- return
- if self._data:
- self._flush()
- self._write(f'</{self._qname(tag)[0]}>')
- self._preserve_space.pop()
- self._root_done = len(self._preserve_space) == 1
- self._declared_ns_stack.pop()
- self._ns_stack.pop()
-
- def comment(self, text):
- if not self._with_comments:
- return
- if self._ignored_depth:
- return
- if self._root_done:
- self._write('\n')
- elif self._root_seen and self._data:
- self._flush()
- self._write(f'<!--{_escape_cdata_c14n(text)}-->')
- if not self._root_seen:
- self._write('\n')
-
- def pi(self, target, data):
- if self._ignored_depth:
- return
- if self._root_done:
- self._write('\n')
- elif self._root_seen and self._data:
- self._flush()
- self._write(
- f'<?{target} {_escape_cdata_c14n(data)}?>' if data else f'<?{target}?>')
- if not self._root_seen:
- self._write('\n')
-
-
-def _escape_cdata_c14n(text):
- # escape character data
- try:
- # it's worth avoiding do-nothing calls for strings that are
- # shorter than 500 character, or so. assume that's, by far,
- # the most common case in most applications.
- if '&' in text:
- text = text.replace('&', '&amp;')
- if '<' in text:
- text = text.replace('<', '&lt;')
- if '>' in text:
- text = text.replace('>', '&gt;')
- if '\r' in text:
- text = text.replace('\r', '&#xD;')
- return text
- except (TypeError, AttributeError):
- _raise_serialization_error(text)
-
-
-def _escape_attrib_c14n(text):
- # escape attribute value
- try:
- if '&' in text:
- text = text.replace('&', '&amp;')
- if '<' in text:
- text = text.replace('<', '&lt;')
- if '"' in text:
- text = text.replace('"', '&quot;')
- if '\t' in text:
- text = text.replace('\t', '&#x9;')
- if '\n' in text:
- text = text.replace('\n', '&#xA;')
- if '\r' in text:
- text = text.replace('\r', '&#xD;')
- return text
- except (TypeError, AttributeError):
- _raise_serialization_error(text)
-
-
-# --------------------------------------------------------------------
-
+# --------------------------------------------------------------------
+# C14N 2.0
+
+def canonicalize(xml_data=None, *, out=None, from_file=None, **options):
+ """Convert XML to its C14N 2.0 serialised form.
+
+ If *out* is provided, it must be a file or file-like object that receives
+ the serialised canonical XML output (text, not bytes) through its ``.write()``
+ method. To write to a file, open it in text mode with encoding "utf-8".
+ If *out* is not provided, this function returns the output as text string.
+
+ Either *xml_data* (an XML string) or *from_file* (a file path or
+ file-like object) must be provided as input.
+
+ The configuration options are the same as for the ``C14NWriterTarget``.
+ """
+ if xml_data is None and from_file is None:
+ raise ValueError("Either 'xml_data' or 'from_file' must be provided as input")
+ sio = None
+ if out is None:
+ sio = out = io.StringIO()
+
+ parser = XMLParser(target=C14NWriterTarget(out.write, **options))
+
+ if xml_data is not None:
+ parser.feed(xml_data)
+ parser.close()
+ elif from_file is not None:
+ parse(from_file, parser=parser)
+
+ return sio.getvalue() if sio is not None else None
+
+
+_looks_like_prefix_name = re.compile(r'^\w+:\w+$', re.UNICODE).match
+
+
+class C14NWriterTarget:
+ """
+ Canonicalization writer target for the XMLParser.
+
+ Serialises parse events to XML C14N 2.0.
+
+ The *write* function is used for writing out the resulting data stream
+ as text (not bytes). To write to a file, open it in text mode with encoding
+ "utf-8" and pass its ``.write`` method.
+
+ Configuration options:
+
+ - *with_comments*: set to true to include comments
+ - *strip_text*: set to true to strip whitespace before and after text content
+ - *rewrite_prefixes*: set to true to replace namespace prefixes by "n{number}"
+ - *qname_aware_tags*: a set of qname aware tag names in which prefixes
+ should be replaced in text content
+ - *qname_aware_attrs*: a set of qname aware attribute names in which prefixes
+ should be replaced in text content
+ - *exclude_attrs*: a set of attribute names that should not be serialised
+ - *exclude_tags*: a set of tag names that should not be serialised
+ """
+ def __init__(self, write, *,
+ with_comments=False, strip_text=False, rewrite_prefixes=False,
+ qname_aware_tags=None, qname_aware_attrs=None,
+ exclude_attrs=None, exclude_tags=None):
+ self._write = write
+ self._data = []
+ self._with_comments = with_comments
+ self._strip_text = strip_text
+ self._exclude_attrs = set(exclude_attrs) if exclude_attrs else None
+ self._exclude_tags = set(exclude_tags) if exclude_tags else None
+
+ self._rewrite_prefixes = rewrite_prefixes
+ if qname_aware_tags:
+ self._qname_aware_tags = set(qname_aware_tags)
+ else:
+ self._qname_aware_tags = None
+ if qname_aware_attrs:
+ self._find_qname_aware_attrs = set(qname_aware_attrs).intersection
+ else:
+ self._find_qname_aware_attrs = None
+
+ # Stack with globally and newly declared namespaces as (uri, prefix) pairs.
+ self._declared_ns_stack = [[
+ ("http://www.w3.org/XML/1998/namespace", "xml"),
+ ]]
+ # Stack with user declared namespace prefixes as (uri, prefix) pairs.
+ self._ns_stack = []
+ if not rewrite_prefixes:
+ self._ns_stack.append(list(_namespace_map.items()))
+ self._ns_stack.append([])
+ self._prefix_map = {}
+ self._preserve_space = [False]
+ self._pending_start = None
+ self._root_seen = False
+ self._root_done = False
+ self._ignored_depth = 0
+
+ def _iter_namespaces(self, ns_stack, _reversed=reversed):
+ for namespaces in _reversed(ns_stack):
+ if namespaces: # almost no element declares new namespaces
+ yield from namespaces
+
+ def _resolve_prefix_name(self, prefixed_name):
+ prefix, name = prefixed_name.split(':', 1)
+ for uri, p in self._iter_namespaces(self._ns_stack):
+ if p == prefix:
+ return f'{{{uri}}}{name}'
+ raise ValueError(f'Prefix {prefix} of QName "{prefixed_name}" is not declared in scope')
+
+ def _qname(self, qname, uri=None):
+ if uri is None:
+ uri, tag = qname[1:].rsplit('}', 1) if qname[:1] == '{' else ('', qname)
+ else:
+ tag = qname
+
+ prefixes_seen = set()
+ for u, prefix in self._iter_namespaces(self._declared_ns_stack):
+ if u == uri and prefix not in prefixes_seen:
+ return f'{prefix}:{tag}' if prefix else tag, tag, uri
+ prefixes_seen.add(prefix)
+
+ # Not declared yet => add new declaration.
+ if self._rewrite_prefixes:
+ if uri in self._prefix_map:
+ prefix = self._prefix_map[uri]
+ else:
+ prefix = self._prefix_map[uri] = f'n{len(self._prefix_map)}'
+ self._declared_ns_stack[-1].append((uri, prefix))
+ return f'{prefix}:{tag}', tag, uri
+
+ if not uri and '' not in prefixes_seen:
+ # No default namespace declared => no prefix needed.
+ return tag, tag, uri
+
+ for u, prefix in self._iter_namespaces(self._ns_stack):
+ if u == uri:
+ self._declared_ns_stack[-1].append((uri, prefix))
+ return f'{prefix}:{tag}' if prefix else tag, tag, uri
+
+ if not uri:
+ # As soon as a default namespace is defined,
+ # anything that has no namespace (and thus, no prefix) goes there.
+ return tag, tag, uri
+
+ raise ValueError(f'Namespace "{uri}" is not declared in scope')
+
+ def data(self, data):
+ if not self._ignored_depth:
+ self._data.append(data)
+
+ def _flush(self, _join_text=''.join):
+ data = _join_text(self._data)
+ del self._data[:]
+ if self._strip_text and not self._preserve_space[-1]:
+ data = data.strip()
+ if self._pending_start is not None:
+ args, self._pending_start = self._pending_start, None
+ qname_text = data if data and _looks_like_prefix_name(data) else None
+ self._start(*args, qname_text)
+ if qname_text is not None:
+ return
+ if data and self._root_seen:
+ self._write(_escape_cdata_c14n(data))
+
+ def start_ns(self, prefix, uri):
+ if self._ignored_depth:
+ return
+ # we may have to resolve qnames in text content
+ if self._data:
+ self._flush()
+ self._ns_stack[-1].append((uri, prefix))
+
+ def start(self, tag, attrs):
+ if self._exclude_tags is not None and (
+ self._ignored_depth or tag in self._exclude_tags):
+ self._ignored_depth += 1
+ return
+ if self._data:
+ self._flush()
+
+ new_namespaces = []
+ self._declared_ns_stack.append(new_namespaces)
+
+ if self._qname_aware_tags is not None and tag in self._qname_aware_tags:
+ # Need to parse text first to see if it requires a prefix declaration.
+ self._pending_start = (tag, attrs, new_namespaces)
+ return
+ self._start(tag, attrs, new_namespaces)
+
+ def _start(self, tag, attrs, new_namespaces, qname_text=None):
+ if self._exclude_attrs is not None and attrs:
+ attrs = {k: v for k, v in attrs.items() if k not in self._exclude_attrs}
+
+ qnames = {tag, *attrs}
+ resolved_names = {}
+
+ # Resolve prefixes in attribute and tag text.
+ if qname_text is not None:
+ qname = resolved_names[qname_text] = self._resolve_prefix_name(qname_text)
+ qnames.add(qname)
+ if self._find_qname_aware_attrs is not None and attrs:
+ qattrs = self._find_qname_aware_attrs(attrs)
+ if qattrs:
+ for attr_name in qattrs:
+ value = attrs[attr_name]
+ if _looks_like_prefix_name(value):
+ qname = resolved_names[value] = self._resolve_prefix_name(value)
+ qnames.add(qname)
+ else:
+ qattrs = None
+ else:
+ qattrs = None
+
+ # Assign prefixes in lexicographical order of used URIs.
+ parse_qname = self._qname
+ parsed_qnames = {n: parse_qname(n) for n in sorted(
+ qnames, key=lambda n: n.split('}', 1))}
+
+ # Write namespace declarations in prefix order ...
+ if new_namespaces:
+ attr_list = [
+ ('xmlns:' + prefix if prefix else 'xmlns', uri)
+ for uri, prefix in new_namespaces
+ ]
+ attr_list.sort()
+ else:
+ # almost always empty
+ attr_list = []
+
+ # ... followed by attributes in URI+name order
+ if attrs:
+ for k, v in sorted(attrs.items()):
+ if qattrs is not None and k in qattrs and v in resolved_names:
+ v = parsed_qnames[resolved_names[v]][0]
+ attr_qname, attr_name, uri = parsed_qnames[k]
+ # No prefix for attributes in default ('') namespace.
+ attr_list.append((attr_qname if uri else attr_name, v))
+
+ # Honour xml:space attributes.
+ space_behaviour = attrs.get('{http://www.w3.org/XML/1998/namespace}space')
+ self._preserve_space.append(
+ space_behaviour == 'preserve' if space_behaviour
+ else self._preserve_space[-1])
+
+ # Write the tag.
+ write = self._write
+ write('<' + parsed_qnames[tag][0])
+ if attr_list:
+ write(''.join([f' {k}="{_escape_attrib_c14n(v)}"' for k, v in attr_list]))
+ write('>')
+
+ # Write the resolved qname text content.
+ if qname_text is not None:
+ write(_escape_cdata_c14n(parsed_qnames[resolved_names[qname_text]][0]))
+
+ self._root_seen = True
+ self._ns_stack.append([])
+
+ def end(self, tag):
+ if self._ignored_depth:
+ self._ignored_depth -= 1
+ return
+ if self._data:
+ self._flush()
+ self._write(f'</{self._qname(tag)[0]}>')
+ self._preserve_space.pop()
+ self._root_done = len(self._preserve_space) == 1
+ self._declared_ns_stack.pop()
+ self._ns_stack.pop()
+
+ def comment(self, text):
+ if not self._with_comments:
+ return
+ if self._ignored_depth:
+ return
+ if self._root_done:
+ self._write('\n')
+ elif self._root_seen and self._data:
+ self._flush()
+ self._write(f'<!--{_escape_cdata_c14n(text)}-->')
+ if not self._root_seen:
+ self._write('\n')
+
+ def pi(self, target, data):
+ if self._ignored_depth:
+ return
+ if self._root_done:
+ self._write('\n')
+ elif self._root_seen and self._data:
+ self._flush()
+ self._write(
+ f'<?{target} {_escape_cdata_c14n(data)}?>' if data else f'<?{target}?>')
+ if not self._root_seen:
+ self._write('\n')
+
+
+def _escape_cdata_c14n(text):
+ # escape character data
+ try:
+ # it's worth avoiding do-nothing calls for strings that are
+ # shorter than 500 character, or so. assume that's, by far,
+ # the most common case in most applications.
+ if '&' in text:
+ text = text.replace('&', '&amp;')
+ if '<' in text:
+ text = text.replace('<', '&lt;')
+ if '>' in text:
+ text = text.replace('>', '&gt;')
+ if '\r' in text:
+ text = text.replace('\r', '&#xD;')
+ return text
+ except (TypeError, AttributeError):
+ _raise_serialization_error(text)
+
+
+def _escape_attrib_c14n(text):
+ # escape attribute value
+ try:
+ if '&' in text:
+ text = text.replace('&', '&amp;')
+ if '<' in text:
+ text = text.replace('<', '&lt;')
+ if '"' in text:
+ text = text.replace('"', '&quot;')
+ if '\t' in text:
+ text = text.replace('\t', '&#x9;')
+ if '\n' in text:
+ text = text.replace('\n', '&#xA;')
+ if '\r' in text:
+ text = text.replace('\r', '&#xD;')
+ return text
+ except (TypeError, AttributeError):
+ _raise_serialization_error(text)
+
+
+# --------------------------------------------------------------------
+
# Import the C accelerators
try:
# Element is going to be shadowed by the C implementation. We need to keep
@@ -2081,10 +2081,10 @@ try:
# (see tests)
_Element_Py = Element
- # Element, SubElement, ParseError, TreeBuilder, XMLParser, _set_factories
+ # Element, SubElement, ParseError, TreeBuilder, XMLParser, _set_factories
from _elementtree import *
- from _elementtree import _set_factories
+ from _elementtree import _set_factories
except ImportError:
pass
-else:
- _set_factories(Comment, ProcessingInstruction)
+else:
+ _set_factories(Comment, ProcessingInstruction)
diff --git a/contrib/tools/python3/src/Lib/xml/etree/__init__.py b/contrib/tools/python3/src/Lib/xml/etree/__init__.py
index 998d37c01f..e2ec53421d 100644
--- a/contrib/tools/python3/src/Lib/xml/etree/__init__.py
+++ b/contrib/tools/python3/src/Lib/xml/etree/__init__.py
@@ -30,4 +30,4 @@
# --------------------------------------------------------------------
# Licensed to PSF under a Contributor Agreement.
-# See https://www.python.org/psf/license for licensing details.
+# See https://www.python.org/psf/license for licensing details.
diff --git a/contrib/tools/python3/src/Lib/xml/sax/__init__.py b/contrib/tools/python3/src/Lib/xml/sax/__init__.py
index c29223cf40..17b75879eb 100644
--- a/contrib/tools/python3/src/Lib/xml/sax/__init__.py
+++ b/contrib/tools/python3/src/Lib/xml/sax/__init__.py
@@ -67,18 +67,18 @@ if sys.platform[:4] == "java" and sys.registry.containsKey(_key):
default_parser_list = sys.registry.getProperty(_key).split(",")
-def make_parser(parser_list=()):
+def make_parser(parser_list=()):
"""Creates and returns a SAX parser.
Creates the first parser it is able to instantiate of the ones
- given in the iterable created by chaining parser_list and
- default_parser_list. The iterables must contain the names of Python
+ given in the iterable created by chaining parser_list and
+ default_parser_list. The iterables must contain the names of Python
modules containing both a SAX parser and a create_parser function."""
- for parser_name in list(parser_list) + default_parser_list:
+ for parser_name in list(parser_list) + default_parser_list:
try:
return _create_parser(parser_name)
- except ImportError:
+ except ImportError:
import sys
if parser_name in sys.modules:
# The parser module was found, but importing it
diff --git a/contrib/tools/python3/src/Lib/xml/sax/expatreader.py b/contrib/tools/python3/src/Lib/xml/sax/expatreader.py
index f1220de45d..e334ac9fea 100644
--- a/contrib/tools/python3/src/Lib/xml/sax/expatreader.py
+++ b/contrib/tools/python3/src/Lib/xml/sax/expatreader.py
@@ -93,7 +93,7 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator):
self._parser = None
self._namespaces = namespaceHandling
self._lex_handler_prop = None
- self._parsing = False
+ self._parsing = False
self._entity_stack = []
self._external_ges = 0
self._interning = None
@@ -203,10 +203,10 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator):
# IncrementalParser methods
- def feed(self, data, isFinal=False):
+ def feed(self, data, isFinal=False):
if not self._parsing:
self.reset()
- self._parsing = True
+ self._parsing = True
self._cont_handler.startDocument()
try:
@@ -237,13 +237,13 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator):
# If we are completing an external entity, do nothing here
return
try:
- self.feed(b"", isFinal=True)
+ self.feed(b"", isFinal=True)
self._cont_handler.endDocument()
- self._parsing = False
+ self._parsing = False
# break cycle created by expat handlers pointing to our methods
self._parser = None
finally:
- self._parsing = False
+ self._parsing = False
if self._parser is not None:
# Keep ErrorColumnNumber and ErrorLineNumber after closing.
parser = _ClosedParser()
@@ -307,7 +307,7 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator):
self._parser.SetParamEntityParsing(
expat.XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE)
- self._parsing = False
+ self._parsing = False
self._entity_stack = []
# Locator methods
diff --git a/contrib/tools/python3/src/Lib/xml/sax/saxutils.py b/contrib/tools/python3/src/Lib/xml/sax/saxutils.py
index 9e04b5daf7..c1612ea1ce 100644
--- a/contrib/tools/python3/src/Lib/xml/sax/saxutils.py
+++ b/contrib/tools/python3/src/Lib/xml/sax/saxutils.py
@@ -56,7 +56,7 @@ def quoteattr(data, entities={}):
the optional entities parameter. The keys and values must all be
strings; each key will be replaced with its corresponding value.
"""
- entities = {**entities, '\n': '&#10;', '\r': '&#13;', '\t':'&#9;'}
+ entities = {**entities, '\n': '&#10;', '\r': '&#13;', '\t':'&#9;'}
data = escape(data, entities)
if '"' in data:
if "'" in data:
@@ -339,8 +339,8 @@ def prepare_input_source(source, base=""):
"""This function takes an InputSource and an optional base URL and
returns a fully resolved InputSource object ready for reading."""
- if isinstance(source, os.PathLike):
- source = os.fspath(source)
+ if isinstance(source, os.PathLike):
+ source = os.fspath(source)
if isinstance(source, str):
source = xmlreader.InputSource(source)
elif hasattr(source, "read"):
diff --git a/contrib/tools/python3/src/Lib/xmlrpc/client.py b/contrib/tools/python3/src/Lib/xmlrpc/client.py
index 66edf5d388..a614cef6ab 100644
--- a/contrib/tools/python3/src/Lib/xmlrpc/client.py
+++ b/contrib/tools/python3/src/Lib/xmlrpc/client.py
@@ -186,7 +186,7 @@ INTERNAL_ERROR = -32603
class Error(Exception):
"""Base class for client errors."""
- __str__ = object.__str__
+ __str__ = object.__str__
##
# Indicates an HTTP-level protocol error. This is raised by the HTTP
@@ -264,22 +264,22 @@ boolean = Boolean = bool
# Issue #13305: different format codes across platforms
_day0 = datetime(1, 1, 1)
-def _try(fmt):
- try:
- return _day0.strftime(fmt) == '0001'
- except ValueError:
- return False
-if _try('%Y'): # Mac OS X
+def _try(fmt):
+ try:
+ return _day0.strftime(fmt) == '0001'
+ except ValueError:
+ return False
+if _try('%Y'): # Mac OS X
def _iso8601_format(value):
return value.strftime("%Y%m%dT%H:%M:%S")
-elif _try('%4Y'): # Linux
+elif _try('%4Y'): # Linux
def _iso8601_format(value):
return value.strftime("%4Y%m%dT%H:%M:%S")
else:
def _iso8601_format(value):
return value.strftime("%Y%m%dT%H:%M:%S").zfill(17)
del _day0
-del _try
+del _try
def _strftime(value):
@@ -319,38 +319,38 @@ class DateTime:
s = self.timetuple()
o = other.timetuple()
else:
- s = self
- o = NotImplemented
+ s = self
+ o = NotImplemented
return s, o
def __lt__(self, other):
s, o = self.make_comparable(other)
- if o is NotImplemented:
- return NotImplemented
+ if o is NotImplemented:
+ return NotImplemented
return s < o
def __le__(self, other):
s, o = self.make_comparable(other)
- if o is NotImplemented:
- return NotImplemented
+ if o is NotImplemented:
+ return NotImplemented
return s <= o
def __gt__(self, other):
s, o = self.make_comparable(other)
- if o is NotImplemented:
- return NotImplemented
+ if o is NotImplemented:
+ return NotImplemented
return s > o
def __ge__(self, other):
s, o = self.make_comparable(other)
- if o is NotImplemented:
- return NotImplemented
+ if o is NotImplemented:
+ return NotImplemented
return s >= o
def __eq__(self, other):
s, o = self.make_comparable(other)
- if o is NotImplemented:
- return NotImplemented
+ if o is NotImplemented:
+ return NotImplemented
return s == o
def timetuple(self):
@@ -448,7 +448,7 @@ class ExpatParser:
target.xml(encoding, None)
def feed(self, data):
- self._parser.Parse(data, False)
+ self._parser.Parse(data, False)
def close(self):
try:
@@ -1141,12 +1141,12 @@ class Transport:
# that they can decode such a request
encode_threshold = None #None = don't encode
- def __init__(self, use_datetime=False, use_builtin_types=False,
- *, headers=()):
+ def __init__(self, use_datetime=False, use_builtin_types=False,
+ *, headers=()):
self._use_datetime = use_datetime
self._use_builtin_types = use_builtin_types
self._connection = (None, None)
- self._headers = list(headers)
+ self._headers = list(headers)
self._extra_headers = []
##
@@ -1226,7 +1226,7 @@ class Transport:
if isinstance(host, tuple):
host, x509 = host
- auth, host = urllib.parse._splituser(host)
+ auth, host = urllib.parse._splituser(host)
if auth:
auth = urllib.parse.unquote_to_bytes(auth)
@@ -1277,7 +1277,7 @@ class Transport:
def send_request(self, host, handler, request_body, debug):
connection = self.make_connection(host)
- headers = self._headers + self._extra_headers
+ headers = self._headers + self._extra_headers
if debug:
connection.set_debuglevel(1)
if self.accept_gzip_encoding and gzip:
@@ -1359,11 +1359,11 @@ class Transport:
class SafeTransport(Transport):
"""Handles an HTTPS transaction to an XML-RPC server."""
- def __init__(self, use_datetime=False, use_builtin_types=False,
- *, headers=(), context=None):
- super().__init__(use_datetime=use_datetime,
- use_builtin_types=use_builtin_types,
- headers=headers)
+ def __init__(self, use_datetime=False, use_builtin_types=False,
+ *, headers=(), context=None):
+ super().__init__(use_datetime=use_datetime,
+ use_builtin_types=use_builtin_types,
+ headers=headers)
self.context = context
# FIXME: mostly untested
@@ -1423,20 +1423,20 @@ class ServerProxy:
def __init__(self, uri, transport=None, encoding=None, verbose=False,
allow_none=False, use_datetime=False, use_builtin_types=False,
- *, headers=(), context=None):
+ *, headers=(), context=None):
# establish a "logical" server connection
# get the url
- p = urllib.parse.urlsplit(uri)
- if p.scheme not in ("http", "https"):
+ p = urllib.parse.urlsplit(uri)
+ if p.scheme not in ("http", "https"):
raise OSError("unsupported XML-RPC protocol")
- self.__host = p.netloc
- self.__handler = urllib.parse.urlunsplit(["", "", *p[2:]])
- if not self.__handler:
- self.__handler = "/RPC2"
+ self.__host = p.netloc
+ self.__handler = urllib.parse.urlunsplit(["", "", *p[2:]])
+ if not self.__handler:
+ self.__handler = "/RPC2"
if transport is None:
- if p.scheme == "https":
+ if p.scheme == "https":
handler = SafeTransport
extra_kwargs = {"context": context}
else:
@@ -1444,7 +1444,7 @@ class ServerProxy:
extra_kwargs = {}
transport = handler(use_datetime=use_datetime,
use_builtin_types=use_builtin_types,
- headers=headers,
+ headers=headers,
**extra_kwargs)
self.__transport = transport
diff --git a/contrib/tools/python3/src/Lib/xmlrpc/server.py b/contrib/tools/python3/src/Lib/xmlrpc/server.py
index 35e88f5fd5..69a260f5b1 100644
--- a/contrib/tools/python3/src/Lib/xmlrpc/server.py
+++ b/contrib/tools/python3/src/Lib/xmlrpc/server.py
@@ -108,7 +108,7 @@ from xmlrpc.client import Fault, dumps, loads, gzip_encode, gzip_decode
from http.server import BaseHTTPRequestHandler
from functools import partial
from inspect import signature
-import html
+import html
import http.server
import socketserver
import sys
@@ -732,7 +732,7 @@ class ServerHTMLDoc(pydoc.HTMLDoc):
# hyperlinking of arbitrary strings being used as method
# names. Only methods with names consisting of word characters
# and '.'s are hyperlinked.
- pattern = re.compile(r'\b((http|https|ftp)://\S+[\w/]|'
+ pattern = re.compile(r'\b((http|https|ftp)://\S+[\w/]|'
r'RFC[- ]?(\d+)|'
r'PEP[- ]?(\d+)|'
r'(self\.)?((?:\w|\.)+))\b')
@@ -750,7 +750,7 @@ class ServerHTMLDoc(pydoc.HTMLDoc):
url = 'http://www.rfc-editor.org/rfc/rfc%d.txt' % int(rfc)
results.append('<a href="%s">%s</a>' % (url, escape(all)))
elif pep:
- url = 'https://www.python.org/dev/peps/pep-%04d/' % int(pep)
+ url = 'https://www.python.org/dev/peps/pep-%04d/' % int(pep)
results.append('<a href="%s">%s</a>' % (url, escape(all)))
elif text[end:end+1] == '(':
results.append(self.namelink(name, methods, funcs, classes))
@@ -895,7 +895,7 @@ class XMLRPCDocGenerator:
methods
)
- return documenter.page(html.escape(self.server_title), documentation)
+ return documenter.page(html.escape(self.server_title), documentation)
class DocXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
"""XML-RPC and documentation request handler class.
diff --git a/contrib/tools/python3/src/Lib/zipfile.py b/contrib/tools/python3/src/Lib/zipfile.py
index 23e1605f4e..816f8582bb 100644
--- a/contrib/tools/python3/src/Lib/zipfile.py
+++ b/contrib/tools/python3/src/Lib/zipfile.py
@@ -3,19 +3,19 @@ Read and write ZIP files.
XXX references to utf-8 need further investigation.
"""
-import binascii
-import importlib.util
+import binascii
+import importlib.util
import io
-import itertools
+import itertools
import os
-import posixpath
-import shutil
+import posixpath
+import shutil
import stat
import struct
-import sys
+import sys
import threading
-import time
-import contextlib
+import time
+import contextlib
try:
import zlib # We may need its compression method
@@ -36,8 +36,8 @@ except ImportError:
__all__ = ["BadZipFile", "BadZipfile", "error",
"ZIP_STORED", "ZIP_DEFLATED", "ZIP_BZIP2", "ZIP_LZMA",
- "is_zipfile", "ZipInfo", "ZipFile", "PyZipFile", "LargeZipFile",
- "Path"]
+ "is_zipfile", "ZipInfo", "ZipFile", "PyZipFile", "LargeZipFile",
+ "Path"]
class BadZipFile(Exception):
pass
@@ -228,7 +228,7 @@ def _EndRecData64(fpin, offset, endrec):
if sig != stringEndArchive64Locator:
return endrec
- if diskno != 0 or disks > 1:
+ if diskno != 0 or disks > 1:
raise BadZipFile("zipfiles that span multiple disks are not supported")
# Assume no 'zip64 extensible data'
@@ -377,8 +377,8 @@ class ZipInfo (object):
self.volume = 0 # Volume number of file header
self.internal_attr = 0 # Internal attributes
self.external_attr = 0 # External file attributes
- self.compress_size = 0 # Size of the compressed file
- self.file_size = 0 # Size of the uncompressed file
+ self.compress_size = 0 # Size of the compressed file
+ self.file_size = 0 # Size of the uncompressed file
# Other attributes are set by class ZipFile:
# header_offset Byte offset to the file header
# CRC CRC-32 of the uncompressed file
@@ -466,28 +466,28 @@ class ZipInfo (object):
if ln+4 > len(extra):
raise BadZipFile("Corrupt extra field %04x (size=%d)" % (tp, ln))
if tp == 0x0001:
- data = extra[4:ln+4]
+ data = extra[4:ln+4]
# ZIP64 extension (large files and/or large archives)
- try:
- if self.file_size in (0xFFFF_FFFF_FFFF_FFFF, 0xFFFF_FFFF):
- field = "File size"
- self.file_size, = unpack('<Q', data[:8])
- data = data[8:]
- if self.compress_size == 0xFFFF_FFFF:
- field = "Compress size"
- self.compress_size, = unpack('<Q', data[:8])
- data = data[8:]
- if self.header_offset == 0xFFFF_FFFF:
- field = "Header offset"
- self.header_offset, = unpack('<Q', data[:8])
- except struct.error:
- raise BadZipFile(f"Corrupt zip64 extra field. "
- f"{field} not found.") from None
+ try:
+ if self.file_size in (0xFFFF_FFFF_FFFF_FFFF, 0xFFFF_FFFF):
+ field = "File size"
+ self.file_size, = unpack('<Q', data[:8])
+ data = data[8:]
+ if self.compress_size == 0xFFFF_FFFF:
+ field = "Compress size"
+ self.compress_size, = unpack('<Q', data[:8])
+ data = data[8:]
+ if self.header_offset == 0xFFFF_FFFF:
+ field = "Header offset"
+ self.header_offset, = unpack('<Q', data[:8])
+ except struct.error:
+ raise BadZipFile(f"Corrupt zip64 extra field. "
+ f"{field} not found.") from None
extra = extra[ln+4:]
@classmethod
- def from_file(cls, filename, arcname=None, *, strict_timestamps=True):
+ def from_file(cls, filename, arcname=None, *, strict_timestamps=True):
"""Construct an appropriate ZipInfo for a file on the filesystem.
filename should be the path to a file or directory on the filesystem.
@@ -502,10 +502,10 @@ class ZipInfo (object):
isdir = stat.S_ISDIR(st.st_mode)
mtime = time.localtime(st.st_mtime)
date_time = mtime[0:6]
- if not strict_timestamps and date_time[0] < 1980:
- date_time = (1980, 1, 1, 0, 0, 0)
- elif not strict_timestamps and date_time[0] > 2107:
- date_time = (2107, 12, 31, 23, 59, 59)
+ if not strict_timestamps and date_time[0] < 1980:
+ date_time = (1980, 1, 1, 0, 0, 0)
+ elif not strict_timestamps and date_time[0] > 2107:
+ date_time = (2107, 12, 31, 23, 59, 59)
# Create ZipInfo instance to store file information
if arcname is None:
arcname = filename
@@ -695,7 +695,7 @@ def _get_compressor(compress_type, compresslevel=None):
def _get_decompressor(compress_type):
- _check_compression(compress_type)
+ _check_compression(compress_type)
if compress_type == ZIP_STORED:
return None
elif compress_type == ZIP_DEFLATED:
@@ -784,10 +784,10 @@ class ZipExtFile(io.BufferedIOBase):
# Chunk size to read during seek
MAX_SEEK_READ = 1 << 24
- def __init__(self, fileobj, mode, zipinfo, pwd=None,
+ def __init__(self, fileobj, mode, zipinfo, pwd=None,
close_fileobj=False):
self._fileobj = fileobj
- self._pwd = pwd
+ self._pwd = pwd
self._close_fileobj = close_fileobj
self._compress_type = zipinfo.compress_type
@@ -822,30 +822,30 @@ class ZipExtFile(io.BufferedIOBase):
except AttributeError:
pass
- self._decrypter = None
- if pwd:
- if zipinfo.flag_bits & 0x8:
- # compare against the file type from extended local headers
- check_byte = (zipinfo._raw_time >> 8) & 0xff
- else:
- # compare against the CRC otherwise
- check_byte = (zipinfo.CRC >> 24) & 0xff
- h = self._init_decrypter()
- if h != check_byte:
- raise RuntimeError("Bad password for file %r" % zipinfo.orig_filename)
-
-
- def _init_decrypter(self):
- self._decrypter = _ZipDecrypter(self._pwd)
- # The first 12 bytes in the cypher stream is an encryption header
- # used to strengthen the algorithm. The first 11 bytes are
- # completely random, while the 12th contains the MSB of the CRC,
- # or the MSB of the file time depending on the header type
- # and is used to check the correctness of the password.
- header = self._fileobj.read(12)
- self._compress_left -= 12
- return self._decrypter(header)[11]
-
+ self._decrypter = None
+ if pwd:
+ if zipinfo.flag_bits & 0x8:
+ # compare against the file type from extended local headers
+ check_byte = (zipinfo._raw_time >> 8) & 0xff
+ else:
+ # compare against the CRC otherwise
+ check_byte = (zipinfo.CRC >> 24) & 0xff
+ h = self._init_decrypter()
+ if h != check_byte:
+ raise RuntimeError("Bad password for file %r" % zipinfo.orig_filename)
+
+
+ def _init_decrypter(self):
+ self._decrypter = _ZipDecrypter(self._pwd)
+ # The first 12 bytes in the cypher stream is an encryption header
+ # used to strengthen the algorithm. The first 11 bytes are
+ # completely random, while the 12th contains the MSB of the CRC,
+ # or the MSB of the file time depending on the header type
+ # and is used to check the correctness of the password.
+ header = self._fileobj.read(12)
+ self._compress_left -= 12
+ return self._decrypter(header)[11]
+
def __repr__(self):
result = ['<%s.%s' % (self.__class__.__module__,
self.__class__.__qualname__)]
@@ -890,16 +890,16 @@ class ZipExtFile(io.BufferedIOBase):
return self._readbuffer[self._offset: self._offset + 512]
def readable(self):
- if self.closed:
- raise ValueError("I/O operation on closed file.")
+ if self.closed:
+ raise ValueError("I/O operation on closed file.")
return True
def read(self, n=-1):
"""Read and return up to n bytes.
- If the argument is omitted, None, or negative, data is read and returned until EOF is reached.
+ If the argument is omitted, None, or negative, data is read and returned until EOF is reached.
"""
- if self.closed:
- raise ValueError("read from closed file.")
+ if self.closed:
+ raise ValueError("read from closed file.")
if n is None or n < 0:
buf = self._readbuffer[self._offset:]
self._readbuffer = b''
@@ -1036,13 +1036,13 @@ class ZipExtFile(io.BufferedIOBase):
super().close()
def seekable(self):
- if self.closed:
- raise ValueError("I/O operation on closed file.")
+ if self.closed:
+ raise ValueError("I/O operation on closed file.")
return self._seekable
def seek(self, offset, whence=0):
- if self.closed:
- raise ValueError("seek on closed file.")
+ if self.closed:
+ raise ValueError("seek on closed file.")
if not self._seekable:
raise io.UnsupportedOperation("underlying stream is not seekable")
curr_pos = self.tell()
@@ -1080,8 +1080,8 @@ class ZipExtFile(io.BufferedIOBase):
self._decompressor = _get_decompressor(self._compress_type)
self._eof = False
read_offset = new_pos
- if self._decrypter is not None:
- self._init_decrypter()
+ if self._decrypter is not None:
+ self._init_decrypter()
while read_offset > 0:
read_len = min(self.MAX_SEEK_READ, read_offset)
@@ -1091,8 +1091,8 @@ class ZipExtFile(io.BufferedIOBase):
return self.tell()
def tell(self):
- if self.closed:
- raise ValueError("tell on closed file.")
+ if self.closed:
+ raise ValueError("tell on closed file.")
if not self._seekable:
raise io.UnsupportedOperation("underlying stream is not seekable")
filepos = self._orig_file_size - self._left - len(self._readbuffer) + self._offset
@@ -1132,51 +1132,51 @@ class _ZipWriteFile(io.BufferedIOBase):
def close(self):
if self.closed:
return
- try:
- super().close()
- # Flush any data from the compressor, and update header info
- if self._compressor:
- buf = self._compressor.flush()
- self._compress_size += len(buf)
- self._fileobj.write(buf)
- self._zinfo.compress_size = self._compress_size
- else:
- self._zinfo.compress_size = self._file_size
- self._zinfo.CRC = self._crc
- self._zinfo.file_size = self._file_size
-
- # Write updated header info
- if self._zinfo.flag_bits & 0x08:
- # Write CRC and file sizes after the file data
- fmt = '<LLQQ' if self._zip64 else '<LLLL'
- self._fileobj.write(struct.pack(fmt, _DD_SIGNATURE, self._zinfo.CRC,
- self._zinfo.compress_size, self._zinfo.file_size))
- self._zipfile.start_dir = self._fileobj.tell()
- else:
- if not self._zip64:
- if self._file_size > ZIP64_LIMIT:
- raise RuntimeError(
- 'File size unexpectedly exceeded ZIP64 limit')
- if self._compress_size > ZIP64_LIMIT:
- raise RuntimeError(
- 'Compressed size unexpectedly exceeded ZIP64 limit')
- # Seek backwards and write file header (which will now include
- # correct CRC and file sizes)
-
- # Preserve current position in file
- self._zipfile.start_dir = self._fileobj.tell()
- self._fileobj.seek(self._zinfo.header_offset)
- self._fileobj.write(self._zinfo.FileHeader(self._zip64))
- self._fileobj.seek(self._zipfile.start_dir)
-
- # Successfully written: Add file to our caches
- self._zipfile.filelist.append(self._zinfo)
- self._zipfile.NameToInfo[self._zinfo.filename] = self._zinfo
- finally:
- self._zipfile._writing = False
-
-
-
+ try:
+ super().close()
+ # Flush any data from the compressor, and update header info
+ if self._compressor:
+ buf = self._compressor.flush()
+ self._compress_size += len(buf)
+ self._fileobj.write(buf)
+ self._zinfo.compress_size = self._compress_size
+ else:
+ self._zinfo.compress_size = self._file_size
+ self._zinfo.CRC = self._crc
+ self._zinfo.file_size = self._file_size
+
+ # Write updated header info
+ if self._zinfo.flag_bits & 0x08:
+ # Write CRC and file sizes after the file data
+ fmt = '<LLQQ' if self._zip64 else '<LLLL'
+ self._fileobj.write(struct.pack(fmt, _DD_SIGNATURE, self._zinfo.CRC,
+ self._zinfo.compress_size, self._zinfo.file_size))
+ self._zipfile.start_dir = self._fileobj.tell()
+ else:
+ if not self._zip64:
+ if self._file_size > ZIP64_LIMIT:
+ raise RuntimeError(
+ 'File size unexpectedly exceeded ZIP64 limit')
+ if self._compress_size > ZIP64_LIMIT:
+ raise RuntimeError(
+ 'Compressed size unexpectedly exceeded ZIP64 limit')
+ # Seek backwards and write file header (which will now include
+ # correct CRC and file sizes)
+
+ # Preserve current position in file
+ self._zipfile.start_dir = self._fileobj.tell()
+ self._fileobj.seek(self._zinfo.header_offset)
+ self._fileobj.write(self._zinfo.FileHeader(self._zip64))
+ self._fileobj.seek(self._zipfile.start_dir)
+
+ # Successfully written: Add file to our caches
+ self._zipfile.filelist.append(self._zinfo)
+ self._zipfile.NameToInfo[self._zinfo.filename] = self._zinfo
+ finally:
+ self._zipfile._writing = False
+
+
+
class ZipFile:
""" Class with methods to open, read, write, close, list zip files.
@@ -1204,7 +1204,7 @@ class ZipFile:
_windows_illegal_name_trans_table = None
def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=True,
- compresslevel=None, *, strict_timestamps=True):
+ compresslevel=None, *, strict_timestamps=True):
"""Open the ZIP file with mode read 'r', write 'w', exclusive create 'x',
or append 'a'."""
if mode not in ('r', 'w', 'x', 'a'):
@@ -1222,7 +1222,7 @@ class ZipFile:
self.mode = mode
self.pwd = None
self._comment = b''
- self._strict_timestamps = strict_timestamps
+ self._strict_timestamps = strict_timestamps
# Check if we were passed a file-like object
if isinstance(file, os.PathLike):
@@ -1534,7 +1534,7 @@ class ZipFile:
# strong encryption
raise NotImplementedError("strong encryption (flag bit 6)")
- if fheader[_FH_GENERAL_PURPOSE_FLAG_BITS] & 0x800:
+ if fheader[_FH_GENERAL_PURPOSE_FLAG_BITS] & 0x800:
# UTF-8 filename
fname_str = fname.decode("utf-8")
else:
@@ -1553,10 +1553,10 @@ class ZipFile:
if not pwd:
raise RuntimeError("File %r is encrypted, password "
"required for extraction" % name)
- else:
- pwd = None
+ else:
+ pwd = None
- return ZipExtFile(zef_file, mode, zinfo, pwd, True)
+ return ZipExtFile(zef_file, mode, zinfo, pwd, True)
except:
zef_file.close()
raise
@@ -1572,7 +1572,7 @@ class ZipFile:
"another write handle open on it. "
"Close the first handle before opening another.")
- # Size and CRC are overwritten with correct data after processing the file
+ # Size and CRC are overwritten with correct data after processing the file
zinfo.compress_size = 0
zinfo.CRC = 0
@@ -1724,8 +1724,8 @@ class ZipFile:
"Can't write to ZIP archive while an open writing handle exists"
)
- zinfo = ZipInfo.from_file(filename, arcname,
- strict_timestamps=self._strict_timestamps)
+ zinfo = ZipInfo.from_file(filename, arcname,
+ strict_timestamps=self._strict_timestamps)
if zinfo.is_dir():
zinfo.compress_size = 0
@@ -1868,15 +1868,15 @@ class ZipFile:
extract_version = max(min_version, zinfo.extract_version)
create_version = max(min_version, zinfo.create_version)
- filename, flag_bits = zinfo._encodeFilenameFlags()
- centdir = struct.pack(structCentralDir,
- stringCentralDir, create_version,
- zinfo.create_system, extract_version, zinfo.reserved,
- flag_bits, zinfo.compress_type, dostime, dosdate,
- zinfo.CRC, compress_size, file_size,
- len(filename), len(extra_data), len(zinfo.comment),
- 0, zinfo.internal_attr, zinfo.external_attr,
- header_offset)
+ filename, flag_bits = zinfo._encodeFilenameFlags()
+ centdir = struct.pack(structCentralDir,
+ stringCentralDir, create_version,
+ zinfo.create_system, extract_version, zinfo.reserved,
+ flag_bits, zinfo.compress_type, dostime, dosdate,
+ zinfo.CRC, compress_size, file_size,
+ len(filename), len(extra_data), len(zinfo.comment),
+ 0, zinfo.internal_attr, zinfo.external_attr,
+ header_offset)
self.fp.write(centdir)
self.fp.write(filename)
self.fp.write(extra_data)
@@ -1918,8 +1918,8 @@ class ZipFile:
centDirSize, centDirOffset, len(self._comment))
self.fp.write(endrec)
self.fp.write(self._comment)
- if self.mode == "a":
- self.fp.truncate()
+ if self.mode == "a":
+ self.fp.truncate()
self.fp.flush()
def _fpclose(self, fp):
@@ -2103,266 +2103,266 @@ class PyZipFile(ZipFile):
return (fname, archivename)
-def _parents(path):
- """
- Given a path with elements separated by
- posixpath.sep, generate all parents of that path.
-
- >>> list(_parents('b/d'))
- ['b']
- >>> list(_parents('/b/d/'))
- ['/b']
- >>> list(_parents('b/d/f/'))
- ['b/d', 'b']
- >>> list(_parents('b'))
- []
- >>> list(_parents(''))
- []
- """
- return itertools.islice(_ancestry(path), 1, None)
-
-
-def _ancestry(path):
- """
- Given a path with elements separated by
- posixpath.sep, generate all elements of that path
-
- >>> list(_ancestry('b/d'))
- ['b/d', 'b']
- >>> list(_ancestry('/b/d/'))
- ['/b/d', '/b']
- >>> list(_ancestry('b/d/f/'))
- ['b/d/f', 'b/d', 'b']
- >>> list(_ancestry('b'))
- ['b']
- >>> list(_ancestry(''))
- []
- """
- path = path.rstrip(posixpath.sep)
- while path and path != posixpath.sep:
- yield path
- path, tail = posixpath.split(path)
-
-
-_dedupe = dict.fromkeys
-"""Deduplicate an iterable in original order"""
-
-
-def _difference(minuend, subtrahend):
- """
- Return items in minuend not in subtrahend, retaining order
- with O(1) lookup.
- """
- return itertools.filterfalse(set(subtrahend).__contains__, minuend)
-
-
-class CompleteDirs(ZipFile):
- """
- A ZipFile subclass that ensures that implied directories
- are always included in the namelist.
- """
-
- @staticmethod
- def _implied_dirs(names):
- parents = itertools.chain.from_iterable(map(_parents, names))
- as_dirs = (p + posixpath.sep for p in parents)
- return _dedupe(_difference(as_dirs, names))
-
- def namelist(self):
- names = super(CompleteDirs, self).namelist()
- return names + list(self._implied_dirs(names))
-
- def _name_set(self):
- return set(self.namelist())
-
- def resolve_dir(self, name):
- """
- If the name represents a directory, return that name
- as a directory (with the trailing slash).
- """
- names = self._name_set()
- dirname = name + '/'
- dir_match = name not in names and dirname in names
- return dirname if dir_match else name
-
- @classmethod
- def make(cls, source):
- """
- Given a source (filename or zipfile), return an
- appropriate CompleteDirs subclass.
- """
- if isinstance(source, CompleteDirs):
- return source
-
- if not isinstance(source, ZipFile):
- return cls(source)
-
- # Only allow for FastPath when supplied zipfile is read-only
- if 'r' not in source.mode:
- cls = CompleteDirs
-
- res = cls.__new__(cls)
- vars(res).update(vars(source))
- return res
-
-
-class FastLookup(CompleteDirs):
- """
- ZipFile subclass to ensure implicit
- dirs exist and are resolved rapidly.
- """
- def namelist(self):
- with contextlib.suppress(AttributeError):
- return self.__names
- self.__names = super(FastLookup, self).namelist()
- return self.__names
-
- def _name_set(self):
- with contextlib.suppress(AttributeError):
- return self.__lookup
- self.__lookup = super(FastLookup, self)._name_set()
- return self.__lookup
-
-
-class Path:
- """
- A pathlib-compatible interface for zip files.
-
- Consider a zip file with this structure::
-
- .
- ├── a.txt
- └── b
- ├── c.txt
- └── d
- └── e.txt
-
- >>> data = io.BytesIO()
- >>> zf = ZipFile(data, 'w')
- >>> zf.writestr('a.txt', 'content of a')
- >>> zf.writestr('b/c.txt', 'content of c')
- >>> zf.writestr('b/d/e.txt', 'content of e')
- >>> zf.filename = 'abcde.zip'
-
- Path accepts the zipfile object itself or a filename
-
- >>> root = Path(zf)
-
- From there, several path operations are available.
-
- Directory iteration (including the zip file itself):
-
- >>> a, b = root.iterdir()
- >>> a
- Path('abcde.zip', 'a.txt')
- >>> b
- Path('abcde.zip', 'b/')
-
- name property:
-
- >>> b.name
- 'b'
-
- join with divide operator:
-
- >>> c = b / 'c.txt'
- >>> c
- Path('abcde.zip', 'b/c.txt')
- >>> c.name
- 'c.txt'
-
- Read text:
-
- >>> c.read_text()
- 'content of c'
-
- existence:
-
- >>> c.exists()
- True
- >>> (b / 'missing.txt').exists()
- False
-
- Coercion to string:
-
- >>> str(c)
- 'abcde.zip/b/c.txt'
- """
-
- __repr = "{self.__class__.__name__}({self.root.filename!r}, {self.at!r})"
-
- def __init__(self, root, at=""):
- self.root = FastLookup.make(root)
- self.at = at
-
- def open(self, mode='r', *args, **kwargs):
- """
- Open this entry as text or binary following the semantics
- of ``pathlib.Path.open()`` by passing arguments through
- to io.TextIOWrapper().
- """
- pwd = kwargs.pop('pwd', None)
- zip_mode = mode[0]
- stream = self.root.open(self.at, zip_mode, pwd=pwd)
- if 'b' in mode:
- if args or kwargs:
- raise ValueError("encoding args invalid for binary operation")
- return stream
- return io.TextIOWrapper(stream, *args, **kwargs)
-
- @property
- def name(self):
- return posixpath.basename(self.at.rstrip("/"))
-
- def read_text(self, *args, **kwargs):
- with self.open('r', *args, **kwargs) as strm:
- return strm.read()
-
- def read_bytes(self):
- with self.open('rb') as strm:
- return strm.read()
-
- def _is_child(self, path):
- return posixpath.dirname(path.at.rstrip("/")) == self.at.rstrip("/")
-
- def _next(self, at):
- return Path(self.root, at)
-
- def is_dir(self):
- return not self.at or self.at.endswith("/")
-
- def is_file(self):
- return not self.is_dir()
-
- def exists(self):
- return self.at in self.root._name_set()
-
- def iterdir(self):
- if not self.is_dir():
- raise ValueError("Can't listdir a file")
- subs = map(self._next, self.root.namelist())
- return filter(self._is_child, subs)
-
- def __str__(self):
- return posixpath.join(self.root.filename, self.at)
-
- def __repr__(self):
- return self.__repr.format(self=self)
-
- def joinpath(self, add):
- next = posixpath.join(self.at, add)
- return self._next(self.root.resolve_dir(next))
-
- __truediv__ = joinpath
-
- @property
- def parent(self):
- parent_at = posixpath.dirname(self.at.rstrip('/'))
- if parent_at:
- parent_at += '/'
- return self._next(parent_at)
-
-
+def _parents(path):
+ """
+ Given a path with elements separated by
+ posixpath.sep, generate all parents of that path.
+
+ >>> list(_parents('b/d'))
+ ['b']
+ >>> list(_parents('/b/d/'))
+ ['/b']
+ >>> list(_parents('b/d/f/'))
+ ['b/d', 'b']
+ >>> list(_parents('b'))
+ []
+ >>> list(_parents(''))
+ []
+ """
+ return itertools.islice(_ancestry(path), 1, None)
+
+
+def _ancestry(path):
+ """
+ Given a path with elements separated by
+ posixpath.sep, generate all elements of that path
+
+ >>> list(_ancestry('b/d'))
+ ['b/d', 'b']
+ >>> list(_ancestry('/b/d/'))
+ ['/b/d', '/b']
+ >>> list(_ancestry('b/d/f/'))
+ ['b/d/f', 'b/d', 'b']
+ >>> list(_ancestry('b'))
+ ['b']
+ >>> list(_ancestry(''))
+ []
+ """
+ path = path.rstrip(posixpath.sep)
+ while path and path != posixpath.sep:
+ yield path
+ path, tail = posixpath.split(path)
+
+
+_dedupe = dict.fromkeys
+"""Deduplicate an iterable in original order"""
+
+
+def _difference(minuend, subtrahend):
+ """
+ Return items in minuend not in subtrahend, retaining order
+ with O(1) lookup.
+ """
+ return itertools.filterfalse(set(subtrahend).__contains__, minuend)
+
+
+class CompleteDirs(ZipFile):
+ """
+ A ZipFile subclass that ensures that implied directories
+ are always included in the namelist.
+ """
+
+ @staticmethod
+ def _implied_dirs(names):
+ parents = itertools.chain.from_iterable(map(_parents, names))
+ as_dirs = (p + posixpath.sep for p in parents)
+ return _dedupe(_difference(as_dirs, names))
+
+ def namelist(self):
+ names = super(CompleteDirs, self).namelist()
+ return names + list(self._implied_dirs(names))
+
+ def _name_set(self):
+ return set(self.namelist())
+
+ def resolve_dir(self, name):
+ """
+ If the name represents a directory, return that name
+ as a directory (with the trailing slash).
+ """
+ names = self._name_set()
+ dirname = name + '/'
+ dir_match = name not in names and dirname in names
+ return dirname if dir_match else name
+
+ @classmethod
+ def make(cls, source):
+ """
+ Given a source (filename or zipfile), return an
+ appropriate CompleteDirs subclass.
+ """
+ if isinstance(source, CompleteDirs):
+ return source
+
+ if not isinstance(source, ZipFile):
+ return cls(source)
+
+ # Only allow for FastPath when supplied zipfile is read-only
+ if 'r' not in source.mode:
+ cls = CompleteDirs
+
+ res = cls.__new__(cls)
+ vars(res).update(vars(source))
+ return res
+
+
+class FastLookup(CompleteDirs):
+ """
+ ZipFile subclass to ensure implicit
+ dirs exist and are resolved rapidly.
+ """
+ def namelist(self):
+ with contextlib.suppress(AttributeError):
+ return self.__names
+ self.__names = super(FastLookup, self).namelist()
+ return self.__names
+
+ def _name_set(self):
+ with contextlib.suppress(AttributeError):
+ return self.__lookup
+ self.__lookup = super(FastLookup, self)._name_set()
+ return self.__lookup
+
+
+class Path:
+ """
+ A pathlib-compatible interface for zip files.
+
+ Consider a zip file with this structure::
+
+ .
+ ├── a.txt
+ └── b
+ ├── c.txt
+ └── d
+ └── e.txt
+
+ >>> data = io.BytesIO()
+ >>> zf = ZipFile(data, 'w')
+ >>> zf.writestr('a.txt', 'content of a')
+ >>> zf.writestr('b/c.txt', 'content of c')
+ >>> zf.writestr('b/d/e.txt', 'content of e')
+ >>> zf.filename = 'abcde.zip'
+
+ Path accepts the zipfile object itself or a filename
+
+ >>> root = Path(zf)
+
+ From there, several path operations are available.
+
+ Directory iteration (including the zip file itself):
+
+ >>> a, b = root.iterdir()
+ >>> a
+ Path('abcde.zip', 'a.txt')
+ >>> b
+ Path('abcde.zip', 'b/')
+
+ name property:
+
+ >>> b.name
+ 'b'
+
+ join with divide operator:
+
+ >>> c = b / 'c.txt'
+ >>> c
+ Path('abcde.zip', 'b/c.txt')
+ >>> c.name
+ 'c.txt'
+
+ Read text:
+
+ >>> c.read_text()
+ 'content of c'
+
+ existence:
+
+ >>> c.exists()
+ True
+ >>> (b / 'missing.txt').exists()
+ False
+
+ Coercion to string:
+
+ >>> str(c)
+ 'abcde.zip/b/c.txt'
+ """
+
+ __repr = "{self.__class__.__name__}({self.root.filename!r}, {self.at!r})"
+
+ def __init__(self, root, at=""):
+ self.root = FastLookup.make(root)
+ self.at = at
+
+ def open(self, mode='r', *args, **kwargs):
+ """
+ Open this entry as text or binary following the semantics
+ of ``pathlib.Path.open()`` by passing arguments through
+ to io.TextIOWrapper().
+ """
+ pwd = kwargs.pop('pwd', None)
+ zip_mode = mode[0]
+ stream = self.root.open(self.at, zip_mode, pwd=pwd)
+ if 'b' in mode:
+ if args or kwargs:
+ raise ValueError("encoding args invalid for binary operation")
+ return stream
+ return io.TextIOWrapper(stream, *args, **kwargs)
+
+ @property
+ def name(self):
+ return posixpath.basename(self.at.rstrip("/"))
+
+ def read_text(self, *args, **kwargs):
+ with self.open('r', *args, **kwargs) as strm:
+ return strm.read()
+
+ def read_bytes(self):
+ with self.open('rb') as strm:
+ return strm.read()
+
+ def _is_child(self, path):
+ return posixpath.dirname(path.at.rstrip("/")) == self.at.rstrip("/")
+
+ def _next(self, at):
+ return Path(self.root, at)
+
+ def is_dir(self):
+ return not self.at or self.at.endswith("/")
+
+ def is_file(self):
+ return not self.is_dir()
+
+ def exists(self):
+ return self.at in self.root._name_set()
+
+ def iterdir(self):
+ if not self.is_dir():
+ raise ValueError("Can't listdir a file")
+ subs = map(self._next, self.root.namelist())
+ return filter(self._is_child, subs)
+
+ def __str__(self):
+ return posixpath.join(self.root.filename, self.at)
+
+ def __repr__(self):
+ return self.__repr.format(self=self)
+
+ def joinpath(self, add):
+ next = posixpath.join(self.at, add)
+ return self._next(self.root.resolve_dir(next))
+
+ __truediv__ = joinpath
+
+ @property
+ def parent(self):
+ parent_at = posixpath.dirname(self.at.rstrip('/'))
+ if parent_at:
+ parent_at += '/'
+ return self._next(parent_at)
+
+
def main(args=None):
import argparse
@@ -2423,6 +2423,6 @@ def main(args=None):
zippath = ''
addToZip(zf, path, zippath)
-
+
if __name__ == "__main__":
main()
diff --git a/contrib/tools/python3/src/Lib/zipimport.py b/contrib/tools/python3/src/Lib/zipimport.py
index b93084c580..5ef0a17c2a 100644
--- a/contrib/tools/python3/src/Lib/zipimport.py
+++ b/contrib/tools/python3/src/Lib/zipimport.py
@@ -1,792 +1,792 @@
-"""zipimport provides support for importing Python modules from Zip archives.
-
-This module exports three objects:
-- zipimporter: a class; its constructor takes a path to a Zip archive.
-- ZipImportError: exception raised by zipimporter objects. It's a
- subclass of ImportError, so it can be caught as ImportError, too.
-- _zip_directory_cache: a dict, mapping archive paths to zip directory
- info dicts, as used in zipimporter._files.
-
-It is usually not needed to use the zipimport module explicitly; it is
-used by the builtin import mechanism for sys.path items that are paths
-to Zip archives.
-"""
-
-#from importlib import _bootstrap_external
-#from importlib import _bootstrap # for _verbose_message
-import _frozen_importlib_external as _bootstrap_external
-from _frozen_importlib_external import _unpack_uint16, _unpack_uint32
-import _frozen_importlib as _bootstrap # for _verbose_message
-import _imp # for check_hash_based_pycs
-import _io # for open
-import marshal # for loads
-import sys # for modules
-import time # for mktime
-
-__all__ = ['ZipImportError', 'zipimporter']
-
-
-path_sep = _bootstrap_external.path_sep
-alt_path_sep = _bootstrap_external.path_separators[1:]
-
-
-class ZipImportError(ImportError):
- pass
-
-# _read_directory() cache
-_zip_directory_cache = {}
-
-_module_type = type(sys)
-
-END_CENTRAL_DIR_SIZE = 22
-STRING_END_ARCHIVE = b'PK\x05\x06'
-MAX_COMMENT_LEN = (1 << 16) - 1
-
-class zipimporter:
- """zipimporter(archivepath) -> zipimporter object
-
- Create a new zipimporter instance. 'archivepath' must be a path to
- a zipfile, or to a specific path inside a zipfile. For example, it can be
- '/tmp/myimport.zip', or '/tmp/myimport.zip/mydirectory', if mydirectory is a
- valid directory inside the archive.
-
- 'ZipImportError is raised if 'archivepath' doesn't point to a valid Zip
- archive.
-
- The 'archive' attribute of zipimporter objects contains the name of the
- zipfile targeted.
- """
-
- # Split the "subdirectory" from the Zip archive path, lookup a matching
- # entry in sys.path_importer_cache, fetch the file directory from there
- # if found, or else read it from the archive.
- def __init__(self, path):
- if not isinstance(path, str):
- import os
- path = os.fsdecode(path)
- if not path:
- raise ZipImportError('archive path is empty', path=path)
- if alt_path_sep:
- path = path.replace(alt_path_sep, path_sep)
-
- prefix = []
- while True:
- try:
- st = _bootstrap_external._path_stat(path)
- except (OSError, ValueError):
- # On Windows a ValueError is raised for too long paths.
- # Back up one path element.
- dirname, basename = _bootstrap_external._path_split(path)
- if dirname == path:
- raise ZipImportError('not a Zip file', path=path)
- path = dirname
- prefix.append(basename)
- else:
- # it exists
- if (st.st_mode & 0o170000) != 0o100000: # stat.S_ISREG
- # it's a not file
- raise ZipImportError('not a Zip file', path=path)
- break
-
- try:
- files = _zip_directory_cache[path]
- except KeyError:
- files = _read_directory(path)
- _zip_directory_cache[path] = files
- self._files = files
- self.archive = path
- # a prefix directory following the ZIP file path.
- self.prefix = _bootstrap_external._path_join(*prefix[::-1])
- if self.prefix:
- self.prefix += path_sep
-
-
- # Check whether we can satisfy the import of the module named by
- # 'fullname', or whether it could be a portion of a namespace
- # package. Return self if we can load it, a string containing the
- # full path if it's a possible namespace portion, None if we
- # can't load it.
- def find_loader(self, fullname, path=None):
- """find_loader(fullname, path=None) -> self, str or None.
-
- Search for a module specified by 'fullname'. 'fullname' must be the
- fully qualified (dotted) module name. It returns the zipimporter
- instance itself if the module was found, a string containing the
- full path name if it's possibly a portion of a namespace package,
- or None otherwise. The optional 'path' argument is ignored -- it's
- there for compatibility with the importer protocol.
- """
- mi = _get_module_info(self, fullname)
- if mi is not None:
- # This is a module or package.
- return self, []
-
- # Not a module or regular package. See if this is a directory, and
- # therefore possibly a portion of a namespace package.
-
- # We're only interested in the last path component of fullname
- # earlier components are recorded in self.prefix.
- modpath = _get_module_path(self, fullname)
- if _is_dir(self, modpath):
- # This is possibly a portion of a namespace
- # package. Return the string representing its path,
- # without a trailing separator.
- return None, [f'{self.archive}{path_sep}{modpath}']
-
- return None, []
-
-
- # Check whether we can satisfy the import of the module named by
- # 'fullname'. Return self if we can, None if we can't.
- def find_module(self, fullname, path=None):
- """find_module(fullname, path=None) -> self or None.
-
- Search for a module specified by 'fullname'. 'fullname' must be the
- fully qualified (dotted) module name. It returns the zipimporter
- instance itself if the module was found, or None if it wasn't.
- The optional 'path' argument is ignored -- it's there for compatibility
- with the importer protocol.
- """
- return self.find_loader(fullname, path)[0]
-
-
- def get_code(self, fullname):
- """get_code(fullname) -> code object.
-
- Return the code object for the specified module. Raise ZipImportError
- if the module couldn't be found.
- """
- code, ispackage, modpath = _get_module_code(self, fullname)
- return code
-
-
- def get_data(self, pathname):
- """get_data(pathname) -> string with file data.
-
- Return the data associated with 'pathname'. Raise OSError if
- the file wasn't found.
- """
- if alt_path_sep:
- pathname = pathname.replace(alt_path_sep, path_sep)
-
- key = pathname
- if pathname.startswith(self.archive + path_sep):
- key = pathname[len(self.archive + path_sep):]
-
- try:
- toc_entry = self._files[key]
- except KeyError:
- raise OSError(0, '', key)
- return _get_data(self.archive, toc_entry)
-
-
- # Return a string matching __file__ for the named module
- def get_filename(self, fullname):
- """get_filename(fullname) -> filename string.
-
- Return the filename for the specified module.
- """
- # Deciding the filename requires working out where the code
- # would come from if the module was actually loaded
- code, ispackage, modpath = _get_module_code(self, fullname)
- return modpath
-
-
- def get_source(self, fullname):
- """get_source(fullname) -> source string.
-
- Return the source code for the specified module. Raise ZipImportError
- if the module couldn't be found, return None if the archive does
- contain the module, but has no source for it.
- """
- mi = _get_module_info(self, fullname)
- if mi is None:
- raise ZipImportError(f"can't find module {fullname!r}", name=fullname)
-
- path = _get_module_path(self, fullname)
- if mi:
- fullpath = _bootstrap_external._path_join(path, '__init__.py')
- else:
- fullpath = f'{path}.py'
-
- try:
- toc_entry = self._files[fullpath]
- except KeyError:
- # we have the module, but no source
- return None
- return _get_data(self.archive, toc_entry).decode()
-
-
- # Return a bool signifying whether the module is a package or not.
- def is_package(self, fullname):
- """is_package(fullname) -> bool.
-
- Return True if the module specified by fullname is a package.
- Raise ZipImportError if the module couldn't be found.
- """
- mi = _get_module_info(self, fullname)
- if mi is None:
- raise ZipImportError(f"can't find module {fullname!r}", name=fullname)
- return mi
-
-
- # Load and return the module named by 'fullname'.
- def load_module(self, fullname):
- """load_module(fullname) -> module.
-
- Load the module specified by 'fullname'. 'fullname' must be the
- fully qualified (dotted) module name. It returns the imported
- module, or raises ZipImportError if it wasn't found.
- """
- code, ispackage, modpath = _get_module_code(self, fullname)
- mod = sys.modules.get(fullname)
- if mod is None or not isinstance(mod, _module_type):
- mod = _module_type(fullname)
- sys.modules[fullname] = mod
- mod.__loader__ = self
-
- try:
- if ispackage:
- # add __path__ to the module *before* the code gets
- # executed
- path = _get_module_path(self, fullname)
- fullpath = _bootstrap_external._path_join(self.archive, path)
- mod.__path__ = [fullpath]
-
- if not hasattr(mod, '__builtins__'):
- mod.__builtins__ = __builtins__
- _bootstrap_external._fix_up_module(mod.__dict__, fullname, modpath)
- exec(code, mod.__dict__)
- except:
- del sys.modules[fullname]
- raise
-
- try:
- mod = sys.modules[fullname]
- except KeyError:
- raise ImportError(f'Loaded module {fullname!r} not found in sys.modules')
- _bootstrap._verbose_message('import {} # loaded from Zip {}', fullname, modpath)
- return mod
-
-
- def get_resource_reader(self, fullname):
- """Return the ResourceReader for a package in a zip file.
-
- If 'fullname' is a package within the zip file, return the
- 'ResourceReader' object for the package. Otherwise return None.
- """
- try:
- if not self.is_package(fullname):
- return None
- except ZipImportError:
- return None
- if not _ZipImportResourceReader._registered:
- from importlib.abc import ResourceReader
- ResourceReader.register(_ZipImportResourceReader)
- _ZipImportResourceReader._registered = True
- return _ZipImportResourceReader(self, fullname)
-
-
- def __repr__(self):
- return f'<zipimporter object "{self.archive}{path_sep}{self.prefix}">'
-
-
-# _zip_searchorder defines how we search for a module in the Zip
-# archive: we first search for a package __init__, then for
-# non-package .pyc, and .py entries. The .pyc entries
-# are swapped by initzipimport() if we run in optimized mode. Also,
-# '/' is replaced by path_sep there.
-_zip_searchorder = (
- (path_sep + '__init__.pyc', True, True),
- (path_sep + '__init__.py', False, True),
- ('.pyc', True, False),
- ('.py', False, False),
-)
-
-# Given a module name, return the potential file path in the
-# archive (without extension).
-def _get_module_path(self, fullname):
- return self.prefix + fullname.rpartition('.')[2]
-
-# Does this path represent a directory?
-def _is_dir(self, path):
- # See if this is a "directory". If so, it's eligible to be part
- # of a namespace package. We test by seeing if the name, with an
- # appended path separator, exists.
- dirpath = path + path_sep
- # If dirpath is present in self._files, we have a directory.
- return dirpath in self._files
-
-# Return some information about a module.
-def _get_module_info(self, fullname):
- path = _get_module_path(self, fullname)
- for suffix, isbytecode, ispackage in _zip_searchorder:
- fullpath = path + suffix
- if fullpath in self._files:
- return ispackage
- return None
-
-
-# implementation
-
-# _read_directory(archive) -> files dict (new reference)
-#
-# Given a path to a Zip archive, build a dict, mapping file names
-# (local to the archive, using SEP as a separator) to toc entries.
-#
-# A toc_entry is a tuple:
-#
-# (__file__, # value to use for __file__, available for all files,
-# # encoded to the filesystem encoding
-# compress, # compression kind; 0 for uncompressed
-# data_size, # size of compressed data on disk
-# file_size, # size of decompressed data
-# file_offset, # offset of file header from start of archive
-# time, # mod time of file (in dos format)
-# date, # mod data of file (in dos format)
-# crc, # crc checksum of the data
-# )
-#
-# Directories can be recognized by the trailing path_sep in the name,
-# data_size and file_offset are 0.
-def _read_directory(archive):
- try:
- fp = _io.open_code(archive)
- except OSError:
- raise ZipImportError(f"can't open Zip file: {archive!r}", path=archive)
-
- with fp:
- try:
- fp.seek(-END_CENTRAL_DIR_SIZE, 2)
- header_position = fp.tell()
- buffer = fp.read(END_CENTRAL_DIR_SIZE)
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- if len(buffer) != END_CENTRAL_DIR_SIZE:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- if buffer[:4] != STRING_END_ARCHIVE:
- # Bad: End of Central Dir signature
- # Check if there's a comment.
- try:
- fp.seek(0, 2)
- file_size = fp.tell()
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}",
- path=archive)
- max_comment_start = max(file_size - MAX_COMMENT_LEN -
- END_CENTRAL_DIR_SIZE, 0)
- try:
- fp.seek(max_comment_start)
- data = fp.read()
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}",
- path=archive)
- pos = data.rfind(STRING_END_ARCHIVE)
- if pos < 0:
- raise ZipImportError(f'not a Zip file: {archive!r}',
- path=archive)
- buffer = data[pos:pos+END_CENTRAL_DIR_SIZE]
- if len(buffer) != END_CENTRAL_DIR_SIZE:
- raise ZipImportError(f"corrupt Zip file: {archive!r}",
- path=archive)
- header_position = file_size - len(data) + pos
-
- header_size = _unpack_uint32(buffer[12:16])
- header_offset = _unpack_uint32(buffer[16:20])
- if header_position < header_size:
- raise ZipImportError(f'bad central directory size: {archive!r}', path=archive)
- if header_position < header_offset:
- raise ZipImportError(f'bad central directory offset: {archive!r}', path=archive)
- header_position -= header_size
- arc_offset = header_position - header_offset
- if arc_offset < 0:
- raise ZipImportError(f'bad central directory size or offset: {archive!r}', path=archive)
-
- files = {}
- # Start of Central Directory
- count = 0
- try:
- fp.seek(header_position)
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- while True:
- buffer = fp.read(46)
- if len(buffer) < 4:
- raise EOFError('EOF read where not expected')
- # Start of file header
- if buffer[:4] != b'PK\x01\x02':
- break # Bad: Central Dir File Header
- if len(buffer) != 46:
- raise EOFError('EOF read where not expected')
- flags = _unpack_uint16(buffer[8:10])
- compress = _unpack_uint16(buffer[10:12])
- time = _unpack_uint16(buffer[12:14])
- date = _unpack_uint16(buffer[14:16])
- crc = _unpack_uint32(buffer[16:20])
- data_size = _unpack_uint32(buffer[20:24])
- file_size = _unpack_uint32(buffer[24:28])
- name_size = _unpack_uint16(buffer[28:30])
- extra_size = _unpack_uint16(buffer[30:32])
- comment_size = _unpack_uint16(buffer[32:34])
- file_offset = _unpack_uint32(buffer[42:46])
- header_size = name_size + extra_size + comment_size
- if file_offset > header_offset:
- raise ZipImportError(f'bad local header offset: {archive!r}', path=archive)
- file_offset += arc_offset
-
- try:
- name = fp.read(name_size)
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- if len(name) != name_size:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- # On Windows, calling fseek to skip over the fields we don't use is
- # slower than reading the data because fseek flushes stdio's
- # internal buffers. See issue #8745.
- try:
- if len(fp.read(header_size - name_size)) != header_size - name_size:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
-
- if flags & 0x800:
- # UTF-8 file names extension
- name = name.decode()
- else:
- # Historical ZIP filename encoding
- try:
- name = name.decode('ascii')
- except UnicodeDecodeError:
- name = name.decode('latin1').translate(cp437_table)
-
- name = name.replace('/', path_sep)
- path = _bootstrap_external._path_join(archive, name)
- t = (path, compress, data_size, file_size, file_offset, time, date, crc)
- files[name] = t
- count += 1
- _bootstrap._verbose_message('zipimport: found {} names in {!r}', count, archive)
- return files
-
-# During bootstrap, we may need to load the encodings
-# package from a ZIP file. But the cp437 encoding is implemented
-# in Python in the encodings package.
-#
-# Break out of this dependency by using the translation table for
-# the cp437 encoding.
-cp437_table = (
- # ASCII part, 8 rows x 16 chars
- '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
- '\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f'
- ' !"#$%&\'()*+,-./'
- '0123456789:;<=>?'
- '@ABCDEFGHIJKLMNO'
- 'PQRSTUVWXYZ[\\]^_'
- '`abcdefghijklmno'
- 'pqrstuvwxyz{|}~\x7f'
- # non-ASCII part, 16 rows x 8 chars
- '\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7'
- '\xea\xeb\xe8\xef\xee\xec\xc4\xc5'
- '\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9'
- '\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192'
- '\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba'
- '\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb'
- '\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556'
- '\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510'
- '\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f'
- '\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567'
- '\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b'
- '\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580'
- '\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4'
- '\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229'
- '\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248'
- '\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0'
-)
-
-_importing_zlib = False
-
-# Return the zlib.decompress function object, or NULL if zlib couldn't
-# be imported. The function is cached when found, so subsequent calls
-# don't import zlib again.
-def _get_decompress_func():
- global _importing_zlib
- if _importing_zlib:
- # Someone has a zlib.py[co] in their Zip file
- # let's avoid a stack overflow.
- _bootstrap._verbose_message('zipimport: zlib UNAVAILABLE')
- raise ZipImportError("can't decompress data; zlib not available")
-
- _importing_zlib = True
- try:
- from zlib import decompress
- except Exception:
- _bootstrap._verbose_message('zipimport: zlib UNAVAILABLE')
- raise ZipImportError("can't decompress data; zlib not available")
- finally:
- _importing_zlib = False
-
- _bootstrap._verbose_message('zipimport: zlib available')
- return decompress
-
-# Given a path to a Zip file and a toc_entry, return the (uncompressed) data.
-def _get_data(archive, toc_entry):
- datapath, compress, data_size, file_size, file_offset, time, date, crc = toc_entry
- if data_size < 0:
- raise ZipImportError('negative data size')
-
- with _io.open_code(archive) as fp:
- # Check to make sure the local file header is correct
- try:
- fp.seek(file_offset)
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- buffer = fp.read(30)
- if len(buffer) != 30:
- raise EOFError('EOF read where not expected')
-
- if buffer[:4] != b'PK\x03\x04':
- # Bad: Local File Header
- raise ZipImportError(f'bad local file header: {archive!r}', path=archive)
-
- name_size = _unpack_uint16(buffer[26:28])
- extra_size = _unpack_uint16(buffer[28:30])
- header_size = 30 + name_size + extra_size
- file_offset += header_size # Start of file data
- try:
- fp.seek(file_offset)
- except OSError:
- raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
- raw_data = fp.read(data_size)
- if len(raw_data) != data_size:
- raise OSError("zipimport: can't read data")
-
- if compress == 0:
- # data is not compressed
- return raw_data
-
- # Decompress with zlib
- try:
- decompress = _get_decompress_func()
- except Exception:
- raise ZipImportError("can't decompress data; zlib not available")
- return decompress(raw_data, -15)
-
-
-# Lenient date/time comparison function. The precision of the mtime
-# in the archive is lower than the mtime stored in a .pyc: we
-# must allow a difference of at most one second.
-def _eq_mtime(t1, t2):
- # dostime only stores even seconds, so be lenient
- return abs(t1 - t2) <= 1
-
-
-# Given the contents of a .py[co] file, unmarshal the data
-# and return the code object. Return None if it the magic word doesn't
-# match, or if the recorded .py[co] metadata does not match the source,
-# (we do this instead of raising an exception as we fall back
-# to .py if available and we don't want to mask other errors).
-def _unmarshal_code(self, pathname, fullpath, fullname, data):
- exc_details = {
- 'name': fullname,
- 'path': fullpath,
- }
-
- try:
- flags = _bootstrap_external._classify_pyc(data, fullname, exc_details)
- except ImportError:
- return None
-
- hash_based = flags & 0b1 != 0
- if hash_based:
- check_source = flags & 0b10 != 0
- if (_imp.check_hash_based_pycs != 'never' and
- (check_source or _imp.check_hash_based_pycs == 'always')):
- source_bytes = _get_pyc_source(self, fullpath)
- if source_bytes is not None:
- source_hash = _imp.source_hash(
- _bootstrap_external._RAW_MAGIC_NUMBER,
- source_bytes,
- )
-
- try:
- _bootstrap_external._validate_hash_pyc(
- data, source_hash, fullname, exc_details)
- except ImportError:
- return None
- else:
- source_mtime, source_size = \
- _get_mtime_and_size_of_source(self, fullpath)
-
- if source_mtime:
- # We don't use _bootstrap_external._validate_timestamp_pyc
- # to allow for a more lenient timestamp check.
- if (not _eq_mtime(_unpack_uint32(data[8:12]), source_mtime) or
- _unpack_uint32(data[12:16]) != source_size):
- _bootstrap._verbose_message(
- f'bytecode is stale for {fullname!r}')
- return None
-
- code = marshal.loads(data[16:])
- if not isinstance(code, _code_type):
- raise TypeError(f'compiled module {pathname!r} is not a code object')
- return code
-
-_code_type = type(_unmarshal_code.__code__)
-
-
-# Replace any occurrences of '\r\n?' in the input string with '\n'.
-# This converts DOS and Mac line endings to Unix line endings.
-def _normalize_line_endings(source):
- source = source.replace(b'\r\n', b'\n')
- source = source.replace(b'\r', b'\n')
- return source
-
-# Given a string buffer containing Python source code, compile it
-# and return a code object.
-def _compile_source(pathname, source):
- source = _normalize_line_endings(source)
- return compile(source, pathname, 'exec', dont_inherit=True)
-
-# Convert the date/time values found in the Zip archive to a value
-# that's compatible with the time stamp stored in .pyc files.
-def _parse_dostime(d, t):
- return time.mktime((
- (d >> 9) + 1980, # bits 9..15: year
- (d >> 5) & 0xF, # bits 5..8: month
- d & 0x1F, # bits 0..4: day
- t >> 11, # bits 11..15: hours
- (t >> 5) & 0x3F, # bits 8..10: minutes
- (t & 0x1F) * 2, # bits 0..7: seconds / 2
- -1, -1, -1))
-
-# Given a path to a .pyc file in the archive, return the
-# modification time of the matching .py file and its size,
-# or (0, 0) if no source is available.
-def _get_mtime_and_size_of_source(self, path):
- try:
- # strip 'c' or 'o' from *.py[co]
- assert path[-1:] in ('c', 'o')
- path = path[:-1]
- toc_entry = self._files[path]
- # fetch the time stamp of the .py file for comparison
- # with an embedded pyc time stamp
- time = toc_entry[5]
- date = toc_entry[6]
- uncompressed_size = toc_entry[3]
- return _parse_dostime(date, time), uncompressed_size
- except (KeyError, IndexError, TypeError):
- return 0, 0
-
-
-# Given a path to a .pyc file in the archive, return the
-# contents of the matching .py file, or None if no source
-# is available.
-def _get_pyc_source(self, path):
- # strip 'c' or 'o' from *.py[co]
- assert path[-1:] in ('c', 'o')
- path = path[:-1]
-
- try:
- toc_entry = self._files[path]
- except KeyError:
- return None
- else:
- return _get_data(self.archive, toc_entry)
-
-
-# Get the code object associated with the module specified by
-# 'fullname'.
-def _get_module_code(self, fullname):
- path = _get_module_path(self, fullname)
- for suffix, isbytecode, ispackage in _zip_searchorder:
- fullpath = path + suffix
- _bootstrap._verbose_message('trying {}{}{}', self.archive, path_sep, fullpath, verbosity=2)
- try:
- toc_entry = self._files[fullpath]
- except KeyError:
- pass
- else:
- modpath = toc_entry[0]
- data = _get_data(self.archive, toc_entry)
- if isbytecode:
- code = _unmarshal_code(self, modpath, fullpath, fullname, data)
- else:
- code = _compile_source(modpath, data)
- if code is None:
- # bad magic number or non-matching mtime
- # in byte code, try next
- continue
- modpath = toc_entry[0]
- return code, ispackage, modpath
- else:
- raise ZipImportError(f"can't find module {fullname!r}", name=fullname)
-
-
-class _ZipImportResourceReader:
- """Private class used to support ZipImport.get_resource_reader().
-
- This class is allowed to reference all the innards and private parts of
- the zipimporter.
- """
- _registered = False
-
- def __init__(self, zipimporter, fullname):
- self.zipimporter = zipimporter
- self.fullname = fullname
-
- def open_resource(self, resource):
- fullname_as_path = self.fullname.replace('.', '/')
- path = f'{fullname_as_path}/{resource}'
- from io import BytesIO
- try:
- return BytesIO(self.zipimporter.get_data(path))
- except OSError:
- raise FileNotFoundError(path)
-
- def resource_path(self, resource):
- # All resources are in the zip file, so there is no path to the file.
- # Raising FileNotFoundError tells the higher level API to extract the
- # binary data and create a temporary file.
- raise FileNotFoundError
-
- def is_resource(self, name):
- # Maybe we could do better, but if we can get the data, it's a
- # resource. Otherwise it isn't.
- fullname_as_path = self.fullname.replace('.', '/')
- path = f'{fullname_as_path}/{name}'
- try:
- self.zipimporter.get_data(path)
- except OSError:
- return False
- return True
-
- def contents(self):
- # This is a bit convoluted, because fullname will be a module path,
- # but _files is a list of file names relative to the top of the
- # archive's namespace. We want to compare file paths to find all the
- # names of things inside the module represented by fullname. So we
- # turn the module path of fullname into a file path relative to the
- # top of the archive, and then we iterate through _files looking for
- # names inside that "directory".
- from pathlib import Path
- fullname_path = Path(self.zipimporter.get_filename(self.fullname))
- relative_path = fullname_path.relative_to(self.zipimporter.archive)
- # Don't forget that fullname names a package, so its path will include
- # __init__.py, which we want to ignore.
- assert relative_path.name == '__init__.py'
- package_path = relative_path.parent
- subdirs_seen = set()
- for filename in self.zipimporter._files:
- try:
- relative = Path(filename).relative_to(package_path)
- except ValueError:
- continue
- # If the path of the file (which is relative to the top of the zip
- # namespace), relative to the package given when the resource
- # reader was created, has a parent, then it's a name in a
- # subdirectory and thus we skip it.
- parent_name = relative.parent.name
- if len(parent_name) == 0:
- yield relative.name
- elif parent_name not in subdirs_seen:
- subdirs_seen.add(parent_name)
- yield parent_name
+"""zipimport provides support for importing Python modules from Zip archives.
+
+This module exports three objects:
+- zipimporter: a class; its constructor takes a path to a Zip archive.
+- ZipImportError: exception raised by zipimporter objects. It's a
+ subclass of ImportError, so it can be caught as ImportError, too.
+- _zip_directory_cache: a dict, mapping archive paths to zip directory
+ info dicts, as used in zipimporter._files.
+
+It is usually not needed to use the zipimport module explicitly; it is
+used by the builtin import mechanism for sys.path items that are paths
+to Zip archives.
+"""
+
+#from importlib import _bootstrap_external
+#from importlib import _bootstrap # for _verbose_message
+import _frozen_importlib_external as _bootstrap_external
+from _frozen_importlib_external import _unpack_uint16, _unpack_uint32
+import _frozen_importlib as _bootstrap # for _verbose_message
+import _imp # for check_hash_based_pycs
+import _io # for open
+import marshal # for loads
+import sys # for modules
+import time # for mktime
+
+__all__ = ['ZipImportError', 'zipimporter']
+
+
+path_sep = _bootstrap_external.path_sep
+alt_path_sep = _bootstrap_external.path_separators[1:]
+
+
+class ZipImportError(ImportError):
+ pass
+
+# _read_directory() cache
+_zip_directory_cache = {}
+
+_module_type = type(sys)
+
+END_CENTRAL_DIR_SIZE = 22
+STRING_END_ARCHIVE = b'PK\x05\x06'
+MAX_COMMENT_LEN = (1 << 16) - 1
+
+class zipimporter:
+ """zipimporter(archivepath) -> zipimporter object
+
+ Create a new zipimporter instance. 'archivepath' must be a path to
+ a zipfile, or to a specific path inside a zipfile. For example, it can be
+ '/tmp/myimport.zip', or '/tmp/myimport.zip/mydirectory', if mydirectory is a
+ valid directory inside the archive.
+
+ 'ZipImportError is raised if 'archivepath' doesn't point to a valid Zip
+ archive.
+
+ The 'archive' attribute of zipimporter objects contains the name of the
+ zipfile targeted.
+ """
+
+ # Split the "subdirectory" from the Zip archive path, lookup a matching
+ # entry in sys.path_importer_cache, fetch the file directory from there
+ # if found, or else read it from the archive.
+ def __init__(self, path):
+ if not isinstance(path, str):
+ import os
+ path = os.fsdecode(path)
+ if not path:
+ raise ZipImportError('archive path is empty', path=path)
+ if alt_path_sep:
+ path = path.replace(alt_path_sep, path_sep)
+
+ prefix = []
+ while True:
+ try:
+ st = _bootstrap_external._path_stat(path)
+ except (OSError, ValueError):
+ # On Windows a ValueError is raised for too long paths.
+ # Back up one path element.
+ dirname, basename = _bootstrap_external._path_split(path)
+ if dirname == path:
+ raise ZipImportError('not a Zip file', path=path)
+ path = dirname
+ prefix.append(basename)
+ else:
+ # it exists
+ if (st.st_mode & 0o170000) != 0o100000: # stat.S_ISREG
+ # it's a not file
+ raise ZipImportError('not a Zip file', path=path)
+ break
+
+ try:
+ files = _zip_directory_cache[path]
+ except KeyError:
+ files = _read_directory(path)
+ _zip_directory_cache[path] = files
+ self._files = files
+ self.archive = path
+ # a prefix directory following the ZIP file path.
+ self.prefix = _bootstrap_external._path_join(*prefix[::-1])
+ if self.prefix:
+ self.prefix += path_sep
+
+
+ # Check whether we can satisfy the import of the module named by
+ # 'fullname', or whether it could be a portion of a namespace
+ # package. Return self if we can load it, a string containing the
+ # full path if it's a possible namespace portion, None if we
+ # can't load it.
+ def find_loader(self, fullname, path=None):
+ """find_loader(fullname, path=None) -> self, str or None.
+
+ Search for a module specified by 'fullname'. 'fullname' must be the
+ fully qualified (dotted) module name. It returns the zipimporter
+ instance itself if the module was found, a string containing the
+ full path name if it's possibly a portion of a namespace package,
+ or None otherwise. The optional 'path' argument is ignored -- it's
+ there for compatibility with the importer protocol.
+ """
+ mi = _get_module_info(self, fullname)
+ if mi is not None:
+ # This is a module or package.
+ return self, []
+
+ # Not a module or regular package. See if this is a directory, and
+ # therefore possibly a portion of a namespace package.
+
+ # We're only interested in the last path component of fullname
+ # earlier components are recorded in self.prefix.
+ modpath = _get_module_path(self, fullname)
+ if _is_dir(self, modpath):
+ # This is possibly a portion of a namespace
+ # package. Return the string representing its path,
+ # without a trailing separator.
+ return None, [f'{self.archive}{path_sep}{modpath}']
+
+ return None, []
+
+
+ # Check whether we can satisfy the import of the module named by
+ # 'fullname'. Return self if we can, None if we can't.
+ def find_module(self, fullname, path=None):
+ """find_module(fullname, path=None) -> self or None.
+
+ Search for a module specified by 'fullname'. 'fullname' must be the
+ fully qualified (dotted) module name. It returns the zipimporter
+ instance itself if the module was found, or None if it wasn't.
+ The optional 'path' argument is ignored -- it's there for compatibility
+ with the importer protocol.
+ """
+ return self.find_loader(fullname, path)[0]
+
+
+ def get_code(self, fullname):
+ """get_code(fullname) -> code object.
+
+ Return the code object for the specified module. Raise ZipImportError
+ if the module couldn't be found.
+ """
+ code, ispackage, modpath = _get_module_code(self, fullname)
+ return code
+
+
+ def get_data(self, pathname):
+ """get_data(pathname) -> string with file data.
+
+ Return the data associated with 'pathname'. Raise OSError if
+ the file wasn't found.
+ """
+ if alt_path_sep:
+ pathname = pathname.replace(alt_path_sep, path_sep)
+
+ key = pathname
+ if pathname.startswith(self.archive + path_sep):
+ key = pathname[len(self.archive + path_sep):]
+
+ try:
+ toc_entry = self._files[key]
+ except KeyError:
+ raise OSError(0, '', key)
+ return _get_data(self.archive, toc_entry)
+
+
+ # Return a string matching __file__ for the named module
+ def get_filename(self, fullname):
+ """get_filename(fullname) -> filename string.
+
+ Return the filename for the specified module.
+ """
+ # Deciding the filename requires working out where the code
+ # would come from if the module was actually loaded
+ code, ispackage, modpath = _get_module_code(self, fullname)
+ return modpath
+
+
+ def get_source(self, fullname):
+ """get_source(fullname) -> source string.
+
+ Return the source code for the specified module. Raise ZipImportError
+ if the module couldn't be found, return None if the archive does
+ contain the module, but has no source for it.
+ """
+ mi = _get_module_info(self, fullname)
+ if mi is None:
+ raise ZipImportError(f"can't find module {fullname!r}", name=fullname)
+
+ path = _get_module_path(self, fullname)
+ if mi:
+ fullpath = _bootstrap_external._path_join(path, '__init__.py')
+ else:
+ fullpath = f'{path}.py'
+
+ try:
+ toc_entry = self._files[fullpath]
+ except KeyError:
+ # we have the module, but no source
+ return None
+ return _get_data(self.archive, toc_entry).decode()
+
+
+ # Return a bool signifying whether the module is a package or not.
+ def is_package(self, fullname):
+ """is_package(fullname) -> bool.
+
+ Return True if the module specified by fullname is a package.
+ Raise ZipImportError if the module couldn't be found.
+ """
+ mi = _get_module_info(self, fullname)
+ if mi is None:
+ raise ZipImportError(f"can't find module {fullname!r}", name=fullname)
+ return mi
+
+
+ # Load and return the module named by 'fullname'.
+ def load_module(self, fullname):
+ """load_module(fullname) -> module.
+
+ Load the module specified by 'fullname'. 'fullname' must be the
+ fully qualified (dotted) module name. It returns the imported
+ module, or raises ZipImportError if it wasn't found.
+ """
+ code, ispackage, modpath = _get_module_code(self, fullname)
+ mod = sys.modules.get(fullname)
+ if mod is None or not isinstance(mod, _module_type):
+ mod = _module_type(fullname)
+ sys.modules[fullname] = mod
+ mod.__loader__ = self
+
+ try:
+ if ispackage:
+ # add __path__ to the module *before* the code gets
+ # executed
+ path = _get_module_path(self, fullname)
+ fullpath = _bootstrap_external._path_join(self.archive, path)
+ mod.__path__ = [fullpath]
+
+ if not hasattr(mod, '__builtins__'):
+ mod.__builtins__ = __builtins__
+ _bootstrap_external._fix_up_module(mod.__dict__, fullname, modpath)
+ exec(code, mod.__dict__)
+ except:
+ del sys.modules[fullname]
+ raise
+
+ try:
+ mod = sys.modules[fullname]
+ except KeyError:
+ raise ImportError(f'Loaded module {fullname!r} not found in sys.modules')
+ _bootstrap._verbose_message('import {} # loaded from Zip {}', fullname, modpath)
+ return mod
+
+
+ def get_resource_reader(self, fullname):
+ """Return the ResourceReader for a package in a zip file.
+
+ If 'fullname' is a package within the zip file, return the
+ 'ResourceReader' object for the package. Otherwise return None.
+ """
+ try:
+ if not self.is_package(fullname):
+ return None
+ except ZipImportError:
+ return None
+ if not _ZipImportResourceReader._registered:
+ from importlib.abc import ResourceReader
+ ResourceReader.register(_ZipImportResourceReader)
+ _ZipImportResourceReader._registered = True
+ return _ZipImportResourceReader(self, fullname)
+
+
+ def __repr__(self):
+ return f'<zipimporter object "{self.archive}{path_sep}{self.prefix}">'
+
+
+# _zip_searchorder defines how we search for a module in the Zip
+# archive: we first search for a package __init__, then for
+# non-package .pyc, and .py entries. The .pyc entries
+# are swapped by initzipimport() if we run in optimized mode. Also,
+# '/' is replaced by path_sep there.
+_zip_searchorder = (
+ (path_sep + '__init__.pyc', True, True),
+ (path_sep + '__init__.py', False, True),
+ ('.pyc', True, False),
+ ('.py', False, False),
+)
+
+# Given a module name, return the potential file path in the
+# archive (without extension).
+def _get_module_path(self, fullname):
+ return self.prefix + fullname.rpartition('.')[2]
+
+# Does this path represent a directory?
+def _is_dir(self, path):
+ # See if this is a "directory". If so, it's eligible to be part
+ # of a namespace package. We test by seeing if the name, with an
+ # appended path separator, exists.
+ dirpath = path + path_sep
+ # If dirpath is present in self._files, we have a directory.
+ return dirpath in self._files
+
+# Return some information about a module.
+def _get_module_info(self, fullname):
+ path = _get_module_path(self, fullname)
+ for suffix, isbytecode, ispackage in _zip_searchorder:
+ fullpath = path + suffix
+ if fullpath in self._files:
+ return ispackage
+ return None
+
+
+# implementation
+
+# _read_directory(archive) -> files dict (new reference)
+#
+# Given a path to a Zip archive, build a dict, mapping file names
+# (local to the archive, using SEP as a separator) to toc entries.
+#
+# A toc_entry is a tuple:
+#
+# (__file__, # value to use for __file__, available for all files,
+# # encoded to the filesystem encoding
+# compress, # compression kind; 0 for uncompressed
+# data_size, # size of compressed data on disk
+# file_size, # size of decompressed data
+# file_offset, # offset of file header from start of archive
+# time, # mod time of file (in dos format)
+# date, # mod data of file (in dos format)
+# crc, # crc checksum of the data
+# )
+#
+# Directories can be recognized by the trailing path_sep in the name,
+# data_size and file_offset are 0.
+def _read_directory(archive):
+ try:
+ fp = _io.open_code(archive)
+ except OSError:
+ raise ZipImportError(f"can't open Zip file: {archive!r}", path=archive)
+
+ with fp:
+ try:
+ fp.seek(-END_CENTRAL_DIR_SIZE, 2)
+ header_position = fp.tell()
+ buffer = fp.read(END_CENTRAL_DIR_SIZE)
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ if len(buffer) != END_CENTRAL_DIR_SIZE:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ if buffer[:4] != STRING_END_ARCHIVE:
+ # Bad: End of Central Dir signature
+ # Check if there's a comment.
+ try:
+ fp.seek(0, 2)
+ file_size = fp.tell()
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}",
+ path=archive)
+ max_comment_start = max(file_size - MAX_COMMENT_LEN -
+ END_CENTRAL_DIR_SIZE, 0)
+ try:
+ fp.seek(max_comment_start)
+ data = fp.read()
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}",
+ path=archive)
+ pos = data.rfind(STRING_END_ARCHIVE)
+ if pos < 0:
+ raise ZipImportError(f'not a Zip file: {archive!r}',
+ path=archive)
+ buffer = data[pos:pos+END_CENTRAL_DIR_SIZE]
+ if len(buffer) != END_CENTRAL_DIR_SIZE:
+ raise ZipImportError(f"corrupt Zip file: {archive!r}",
+ path=archive)
+ header_position = file_size - len(data) + pos
+
+ header_size = _unpack_uint32(buffer[12:16])
+ header_offset = _unpack_uint32(buffer[16:20])
+ if header_position < header_size:
+ raise ZipImportError(f'bad central directory size: {archive!r}', path=archive)
+ if header_position < header_offset:
+ raise ZipImportError(f'bad central directory offset: {archive!r}', path=archive)
+ header_position -= header_size
+ arc_offset = header_position - header_offset
+ if arc_offset < 0:
+ raise ZipImportError(f'bad central directory size or offset: {archive!r}', path=archive)
+
+ files = {}
+ # Start of Central Directory
+ count = 0
+ try:
+ fp.seek(header_position)
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ while True:
+ buffer = fp.read(46)
+ if len(buffer) < 4:
+ raise EOFError('EOF read where not expected')
+ # Start of file header
+ if buffer[:4] != b'PK\x01\x02':
+ break # Bad: Central Dir File Header
+ if len(buffer) != 46:
+ raise EOFError('EOF read where not expected')
+ flags = _unpack_uint16(buffer[8:10])
+ compress = _unpack_uint16(buffer[10:12])
+ time = _unpack_uint16(buffer[12:14])
+ date = _unpack_uint16(buffer[14:16])
+ crc = _unpack_uint32(buffer[16:20])
+ data_size = _unpack_uint32(buffer[20:24])
+ file_size = _unpack_uint32(buffer[24:28])
+ name_size = _unpack_uint16(buffer[28:30])
+ extra_size = _unpack_uint16(buffer[30:32])
+ comment_size = _unpack_uint16(buffer[32:34])
+ file_offset = _unpack_uint32(buffer[42:46])
+ header_size = name_size + extra_size + comment_size
+ if file_offset > header_offset:
+ raise ZipImportError(f'bad local header offset: {archive!r}', path=archive)
+ file_offset += arc_offset
+
+ try:
+ name = fp.read(name_size)
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ if len(name) != name_size:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ # On Windows, calling fseek to skip over the fields we don't use is
+ # slower than reading the data because fseek flushes stdio's
+ # internal buffers. See issue #8745.
+ try:
+ if len(fp.read(header_size - name_size)) != header_size - name_size:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+
+ if flags & 0x800:
+ # UTF-8 file names extension
+ name = name.decode()
+ else:
+ # Historical ZIP filename encoding
+ try:
+ name = name.decode('ascii')
+ except UnicodeDecodeError:
+ name = name.decode('latin1').translate(cp437_table)
+
+ name = name.replace('/', path_sep)
+ path = _bootstrap_external._path_join(archive, name)
+ t = (path, compress, data_size, file_size, file_offset, time, date, crc)
+ files[name] = t
+ count += 1
+ _bootstrap._verbose_message('zipimport: found {} names in {!r}', count, archive)
+ return files
+
+# During bootstrap, we may need to load the encodings
+# package from a ZIP file. But the cp437 encoding is implemented
+# in Python in the encodings package.
+#
+# Break out of this dependency by using the translation table for
+# the cp437 encoding.
+cp437_table = (
+ # ASCII part, 8 rows x 16 chars
+ '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
+ '\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f'
+ ' !"#$%&\'()*+,-./'
+ '0123456789:;<=>?'
+ '@ABCDEFGHIJKLMNO'
+ 'PQRSTUVWXYZ[\\]^_'
+ '`abcdefghijklmno'
+ 'pqrstuvwxyz{|}~\x7f'
+ # non-ASCII part, 16 rows x 8 chars
+ '\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7'
+ '\xea\xeb\xe8\xef\xee\xec\xc4\xc5'
+ '\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9'
+ '\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192'
+ '\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba'
+ '\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb'
+ '\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556'
+ '\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510'
+ '\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f'
+ '\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567'
+ '\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b'
+ '\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580'
+ '\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4'
+ '\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229'
+ '\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248'
+ '\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0'
+)
+
+_importing_zlib = False
+
+# Return the zlib.decompress function object, or NULL if zlib couldn't
+# be imported. The function is cached when found, so subsequent calls
+# don't import zlib again.
+def _get_decompress_func():
+ global _importing_zlib
+ if _importing_zlib:
+ # Someone has a zlib.py[co] in their Zip file
+ # let's avoid a stack overflow.
+ _bootstrap._verbose_message('zipimport: zlib UNAVAILABLE')
+ raise ZipImportError("can't decompress data; zlib not available")
+
+ _importing_zlib = True
+ try:
+ from zlib import decompress
+ except Exception:
+ _bootstrap._verbose_message('zipimport: zlib UNAVAILABLE')
+ raise ZipImportError("can't decompress data; zlib not available")
+ finally:
+ _importing_zlib = False
+
+ _bootstrap._verbose_message('zipimport: zlib available')
+ return decompress
+
+# Given a path to a Zip file and a toc_entry, return the (uncompressed) data.
+def _get_data(archive, toc_entry):
+ datapath, compress, data_size, file_size, file_offset, time, date, crc = toc_entry
+ if data_size < 0:
+ raise ZipImportError('negative data size')
+
+ with _io.open_code(archive) as fp:
+ # Check to make sure the local file header is correct
+ try:
+ fp.seek(file_offset)
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ buffer = fp.read(30)
+ if len(buffer) != 30:
+ raise EOFError('EOF read where not expected')
+
+ if buffer[:4] != b'PK\x03\x04':
+ # Bad: Local File Header
+ raise ZipImportError(f'bad local file header: {archive!r}', path=archive)
+
+ name_size = _unpack_uint16(buffer[26:28])
+ extra_size = _unpack_uint16(buffer[28:30])
+ header_size = 30 + name_size + extra_size
+ file_offset += header_size # Start of file data
+ try:
+ fp.seek(file_offset)
+ except OSError:
+ raise ZipImportError(f"can't read Zip file: {archive!r}", path=archive)
+ raw_data = fp.read(data_size)
+ if len(raw_data) != data_size:
+ raise OSError("zipimport: can't read data")
+
+ if compress == 0:
+ # data is not compressed
+ return raw_data
+
+ # Decompress with zlib
+ try:
+ decompress = _get_decompress_func()
+ except Exception:
+ raise ZipImportError("can't decompress data; zlib not available")
+ return decompress(raw_data, -15)
+
+
+# Lenient date/time comparison function. The precision of the mtime
+# in the archive is lower than the mtime stored in a .pyc: we
+# must allow a difference of at most one second.
+def _eq_mtime(t1, t2):
+ # dostime only stores even seconds, so be lenient
+ return abs(t1 - t2) <= 1
+
+
+# Given the contents of a .py[co] file, unmarshal the data
+# and return the code object. Return None if it the magic word doesn't
+# match, or if the recorded .py[co] metadata does not match the source,
+# (we do this instead of raising an exception as we fall back
+# to .py if available and we don't want to mask other errors).
+def _unmarshal_code(self, pathname, fullpath, fullname, data):
+ exc_details = {
+ 'name': fullname,
+ 'path': fullpath,
+ }
+
+ try:
+ flags = _bootstrap_external._classify_pyc(data, fullname, exc_details)
+ except ImportError:
+ return None
+
+ hash_based = flags & 0b1 != 0
+ if hash_based:
+ check_source = flags & 0b10 != 0
+ if (_imp.check_hash_based_pycs != 'never' and
+ (check_source or _imp.check_hash_based_pycs == 'always')):
+ source_bytes = _get_pyc_source(self, fullpath)
+ if source_bytes is not None:
+ source_hash = _imp.source_hash(
+ _bootstrap_external._RAW_MAGIC_NUMBER,
+ source_bytes,
+ )
+
+ try:
+ _bootstrap_external._validate_hash_pyc(
+ data, source_hash, fullname, exc_details)
+ except ImportError:
+ return None
+ else:
+ source_mtime, source_size = \
+ _get_mtime_and_size_of_source(self, fullpath)
+
+ if source_mtime:
+ # We don't use _bootstrap_external._validate_timestamp_pyc
+ # to allow for a more lenient timestamp check.
+ if (not _eq_mtime(_unpack_uint32(data[8:12]), source_mtime) or
+ _unpack_uint32(data[12:16]) != source_size):
+ _bootstrap._verbose_message(
+ f'bytecode is stale for {fullname!r}')
+ return None
+
+ code = marshal.loads(data[16:])
+ if not isinstance(code, _code_type):
+ raise TypeError(f'compiled module {pathname!r} is not a code object')
+ return code
+
+_code_type = type(_unmarshal_code.__code__)
+
+
+# Replace any occurrences of '\r\n?' in the input string with '\n'.
+# This converts DOS and Mac line endings to Unix line endings.
+def _normalize_line_endings(source):
+ source = source.replace(b'\r\n', b'\n')
+ source = source.replace(b'\r', b'\n')
+ return source
+
+# Given a string buffer containing Python source code, compile it
+# and return a code object.
+def _compile_source(pathname, source):
+ source = _normalize_line_endings(source)
+ return compile(source, pathname, 'exec', dont_inherit=True)
+
+# Convert the date/time values found in the Zip archive to a value
+# that's compatible with the time stamp stored in .pyc files.
+def _parse_dostime(d, t):
+ return time.mktime((
+ (d >> 9) + 1980, # bits 9..15: year
+ (d >> 5) & 0xF, # bits 5..8: month
+ d & 0x1F, # bits 0..4: day
+ t >> 11, # bits 11..15: hours
+ (t >> 5) & 0x3F, # bits 8..10: minutes
+ (t & 0x1F) * 2, # bits 0..7: seconds / 2
+ -1, -1, -1))
+
+# Given a path to a .pyc file in the archive, return the
+# modification time of the matching .py file and its size,
+# or (0, 0) if no source is available.
+def _get_mtime_and_size_of_source(self, path):
+ try:
+ # strip 'c' or 'o' from *.py[co]
+ assert path[-1:] in ('c', 'o')
+ path = path[:-1]
+ toc_entry = self._files[path]
+ # fetch the time stamp of the .py file for comparison
+ # with an embedded pyc time stamp
+ time = toc_entry[5]
+ date = toc_entry[6]
+ uncompressed_size = toc_entry[3]
+ return _parse_dostime(date, time), uncompressed_size
+ except (KeyError, IndexError, TypeError):
+ return 0, 0
+
+
+# Given a path to a .pyc file in the archive, return the
+# contents of the matching .py file, or None if no source
+# is available.
+def _get_pyc_source(self, path):
+ # strip 'c' or 'o' from *.py[co]
+ assert path[-1:] in ('c', 'o')
+ path = path[:-1]
+
+ try:
+ toc_entry = self._files[path]
+ except KeyError:
+ return None
+ else:
+ return _get_data(self.archive, toc_entry)
+
+
+# Get the code object associated with the module specified by
+# 'fullname'.
+def _get_module_code(self, fullname):
+ path = _get_module_path(self, fullname)
+ for suffix, isbytecode, ispackage in _zip_searchorder:
+ fullpath = path + suffix
+ _bootstrap._verbose_message('trying {}{}{}', self.archive, path_sep, fullpath, verbosity=2)
+ try:
+ toc_entry = self._files[fullpath]
+ except KeyError:
+ pass
+ else:
+ modpath = toc_entry[0]
+ data = _get_data(self.archive, toc_entry)
+ if isbytecode:
+ code = _unmarshal_code(self, modpath, fullpath, fullname, data)
+ else:
+ code = _compile_source(modpath, data)
+ if code is None:
+ # bad magic number or non-matching mtime
+ # in byte code, try next
+ continue
+ modpath = toc_entry[0]
+ return code, ispackage, modpath
+ else:
+ raise ZipImportError(f"can't find module {fullname!r}", name=fullname)
+
+
+class _ZipImportResourceReader:
+ """Private class used to support ZipImport.get_resource_reader().
+
+ This class is allowed to reference all the innards and private parts of
+ the zipimporter.
+ """
+ _registered = False
+
+ def __init__(self, zipimporter, fullname):
+ self.zipimporter = zipimporter
+ self.fullname = fullname
+
+ def open_resource(self, resource):
+ fullname_as_path = self.fullname.replace('.', '/')
+ path = f'{fullname_as_path}/{resource}'
+ from io import BytesIO
+ try:
+ return BytesIO(self.zipimporter.get_data(path))
+ except OSError:
+ raise FileNotFoundError(path)
+
+ def resource_path(self, resource):
+ # All resources are in the zip file, so there is no path to the file.
+ # Raising FileNotFoundError tells the higher level API to extract the
+ # binary data and create a temporary file.
+ raise FileNotFoundError
+
+ def is_resource(self, name):
+ # Maybe we could do better, but if we can get the data, it's a
+ # resource. Otherwise it isn't.
+ fullname_as_path = self.fullname.replace('.', '/')
+ path = f'{fullname_as_path}/{name}'
+ try:
+ self.zipimporter.get_data(path)
+ except OSError:
+ return False
+ return True
+
+ def contents(self):
+ # This is a bit convoluted, because fullname will be a module path,
+ # but _files is a list of file names relative to the top of the
+ # archive's namespace. We want to compare file paths to find all the
+ # names of things inside the module represented by fullname. So we
+ # turn the module path of fullname into a file path relative to the
+ # top of the archive, and then we iterate through _files looking for
+ # names inside that "directory".
+ from pathlib import Path
+ fullname_path = Path(self.zipimporter.get_filename(self.fullname))
+ relative_path = fullname_path.relative_to(self.zipimporter.archive)
+ # Don't forget that fullname names a package, so its path will include
+ # __init__.py, which we want to ignore.
+ assert relative_path.name == '__init__.py'
+ package_path = relative_path.parent
+ subdirs_seen = set()
+ for filename in self.zipimporter._files:
+ try:
+ relative = Path(filename).relative_to(package_path)
+ except ValueError:
+ continue
+ # If the path of the file (which is relative to the top of the zip
+ # namespace), relative to the package given when the resource
+ # reader was created, has a parent, then it's a name in a
+ # subdirectory and thus we skip it.
+ parent_name = relative.parent.name
+ if len(parent_name) == 0:
+ yield relative.name
+ elif parent_name not in subdirs_seen:
+ subdirs_seen.add(parent_name)
+ yield parent_name
diff --git a/contrib/tools/python3/src/Lib/zoneinfo/__init__.py b/contrib/tools/python3/src/Lib/zoneinfo/__init__.py
index 9f5be17ee4..f5510ee049 100644
--- a/contrib/tools/python3/src/Lib/zoneinfo/__init__.py
+++ b/contrib/tools/python3/src/Lib/zoneinfo/__init__.py
@@ -1,31 +1,31 @@
-__all__ = [
- "ZoneInfo",
- "reset_tzpath",
- "available_timezones",
- "TZPATH",
- "ZoneInfoNotFoundError",
- "InvalidTZPathWarning",
-]
-
-from . import _tzpath
-from ._common import ZoneInfoNotFoundError
-
-try:
- from _zoneinfo import ZoneInfo
-except ImportError: # pragma: nocover
- from ._zoneinfo import ZoneInfo
-
-reset_tzpath = _tzpath.reset_tzpath
-available_timezones = _tzpath.available_timezones
-InvalidTZPathWarning = _tzpath.InvalidTZPathWarning
-
-
-def __getattr__(name):
- if name == "TZPATH":
- return _tzpath.TZPATH
- else:
- raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
-
-
-def __dir__():
- return sorted(list(globals()) + ["TZPATH"])
+__all__ = [
+ "ZoneInfo",
+ "reset_tzpath",
+ "available_timezones",
+ "TZPATH",
+ "ZoneInfoNotFoundError",
+ "InvalidTZPathWarning",
+]
+
+from . import _tzpath
+from ._common import ZoneInfoNotFoundError
+
+try:
+ from _zoneinfo import ZoneInfo
+except ImportError: # pragma: nocover
+ from ._zoneinfo import ZoneInfo
+
+reset_tzpath = _tzpath.reset_tzpath
+available_timezones = _tzpath.available_timezones
+InvalidTZPathWarning = _tzpath.InvalidTZPathWarning
+
+
+def __getattr__(name):
+ if name == "TZPATH":
+ return _tzpath.TZPATH
+ else:
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
+
+
+def __dir__():
+ return sorted(list(globals()) + ["TZPATH"])
diff --git a/contrib/tools/python3/src/Lib/zoneinfo/_common.py b/contrib/tools/python3/src/Lib/zoneinfo/_common.py
index 33311c1357..41c898f37e 100644
--- a/contrib/tools/python3/src/Lib/zoneinfo/_common.py
+++ b/contrib/tools/python3/src/Lib/zoneinfo/_common.py
@@ -1,165 +1,165 @@
-import struct
-
-
-def load_tzdata(key):
- import importlib.resources
-
- components = key.split("/")
- package_name = ".".join(["tzdata.zoneinfo"] + components[:-1])
- resource_name = components[-1]
-
- try:
- return importlib.resources.open_binary(package_name, resource_name)
- except (ImportError, FileNotFoundError, UnicodeEncodeError):
- # There are three types of exception that can be raised that all amount
- # to "we cannot find this key":
- #
- # ImportError: If package_name doesn't exist (e.g. if tzdata is not
- # installed, or if there's an error in the folder name like
- # Amrica/New_York)
- # FileNotFoundError: If resource_name doesn't exist in the package
- # (e.g. Europe/Krasnoy)
- # UnicodeEncodeError: If package_name or resource_name are not UTF-8,
- # such as keys containing a surrogate character.
- raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
-
-
-def load_data(fobj):
- header = _TZifHeader.from_file(fobj)
-
- if header.version == 1:
- time_size = 4
- time_type = "l"
- else:
- # Version 2+ has 64-bit integer transition times
- time_size = 8
- time_type = "q"
-
- # Version 2+ also starts with a Version 1 header and data, which
- # we need to skip now
- skip_bytes = (
- header.timecnt * 5 # Transition times and types
- + header.typecnt * 6 # Local time type records
- + header.charcnt # Time zone designations
- + header.leapcnt * 8 # Leap second records
- + header.isstdcnt # Standard/wall indicators
- + header.isutcnt # UT/local indicators
- )
-
- fobj.seek(skip_bytes, 1)
-
- # Now we need to read the second header, which is not the same
- # as the first
- header = _TZifHeader.from_file(fobj)
-
- typecnt = header.typecnt
- timecnt = header.timecnt
- charcnt = header.charcnt
-
- # The data portion starts with timecnt transitions and indices
- if timecnt:
- trans_list_utc = struct.unpack(
- f">{timecnt}{time_type}", fobj.read(timecnt * time_size)
- )
- trans_idx = struct.unpack(f">{timecnt}B", fobj.read(timecnt))
- else:
- trans_list_utc = ()
- trans_idx = ()
-
- # Read the ttinfo struct, (utoff, isdst, abbrind)
- if typecnt:
- utcoff, isdst, abbrind = zip(
- *(struct.unpack(">lbb", fobj.read(6)) for i in range(typecnt))
- )
- else:
- utcoff = ()
- isdst = ()
- abbrind = ()
-
- # Now read the abbreviations. They are null-terminated strings, indexed
- # not by position in the array but by position in the unsplit
- # abbreviation string. I suppose this makes more sense in C, which uses
- # null to terminate the strings, but it's inconvenient here...
- abbr_vals = {}
- abbr_chars = fobj.read(charcnt)
-
- def get_abbr(idx):
- # Gets a string starting at idx and running until the next \x00
- #
- # We cannot pre-populate abbr_vals by splitting on \x00 because there
- # are some zones that use subsets of longer abbreviations, like so:
- #
- # LMT\x00AHST\x00HDT\x00
- #
- # Where the idx to abbr mapping should be:
- #
- # {0: "LMT", 4: "AHST", 5: "HST", 9: "HDT"}
- if idx not in abbr_vals:
- span_end = abbr_chars.find(b"\x00", idx)
- abbr_vals[idx] = abbr_chars[idx:span_end].decode()
-
- return abbr_vals[idx]
-
- abbr = tuple(get_abbr(idx) for idx in abbrind)
-
- # The remainder of the file consists of leap seconds (currently unused) and
- # the standard/wall and ut/local indicators, which are metadata we don't need.
- # In version 2 files, we need to skip the unnecessary data to get at the TZ string:
- if header.version >= 2:
- # Each leap second record has size (time_size + 4)
- skip_bytes = header.isutcnt + header.isstdcnt + header.leapcnt * 12
- fobj.seek(skip_bytes, 1)
-
- c = fobj.read(1) # Should be \n
- assert c == b"\n", c
-
- tz_bytes = b""
- while (c := fobj.read(1)) != b"\n":
- tz_bytes += c
-
- tz_str = tz_bytes
- else:
- tz_str = None
-
- return trans_idx, trans_list_utc, utcoff, isdst, abbr, tz_str
-
-
-class _TZifHeader:
- __slots__ = [
- "version",
- "isutcnt",
- "isstdcnt",
- "leapcnt",
- "timecnt",
- "typecnt",
- "charcnt",
- ]
-
- def __init__(self, *args):
- assert len(self.__slots__) == len(args)
- for attr, val in zip(self.__slots__, args):
- setattr(self, attr, val)
-
- @classmethod
- def from_file(cls, stream):
- # The header starts with a 4-byte "magic" value
- if stream.read(4) != b"TZif":
- raise ValueError("Invalid TZif file: magic not found")
-
- _version = stream.read(1)
- if _version == b"\x00":
- version = 1
- else:
- version = int(_version)
- stream.read(15)
-
- args = (version,)
-
- # Slots are defined in the order that the bytes are arranged
- args = args + struct.unpack(">6l", stream.read(24))
-
- return cls(*args)
-
-
-class ZoneInfoNotFoundError(KeyError):
- """Exception raised when a ZoneInfo key is not found."""
+import struct
+
+
+def load_tzdata(key):
+ import importlib.resources
+
+ components = key.split("/")
+ package_name = ".".join(["tzdata.zoneinfo"] + components[:-1])
+ resource_name = components[-1]
+
+ try:
+ return importlib.resources.open_binary(package_name, resource_name)
+ except (ImportError, FileNotFoundError, UnicodeEncodeError):
+ # There are three types of exception that can be raised that all amount
+ # to "we cannot find this key":
+ #
+ # ImportError: If package_name doesn't exist (e.g. if tzdata is not
+ # installed, or if there's an error in the folder name like
+ # Amrica/New_York)
+ # FileNotFoundError: If resource_name doesn't exist in the package
+ # (e.g. Europe/Krasnoy)
+ # UnicodeEncodeError: If package_name or resource_name are not UTF-8,
+ # such as keys containing a surrogate character.
+ raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
+
+
+def load_data(fobj):
+ header = _TZifHeader.from_file(fobj)
+
+ if header.version == 1:
+ time_size = 4
+ time_type = "l"
+ else:
+ # Version 2+ has 64-bit integer transition times
+ time_size = 8
+ time_type = "q"
+
+ # Version 2+ also starts with a Version 1 header and data, which
+ # we need to skip now
+ skip_bytes = (
+ header.timecnt * 5 # Transition times and types
+ + header.typecnt * 6 # Local time type records
+ + header.charcnt # Time zone designations
+ + header.leapcnt * 8 # Leap second records
+ + header.isstdcnt # Standard/wall indicators
+ + header.isutcnt # UT/local indicators
+ )
+
+ fobj.seek(skip_bytes, 1)
+
+ # Now we need to read the second header, which is not the same
+ # as the first
+ header = _TZifHeader.from_file(fobj)
+
+ typecnt = header.typecnt
+ timecnt = header.timecnt
+ charcnt = header.charcnt
+
+ # The data portion starts with timecnt transitions and indices
+ if timecnt:
+ trans_list_utc = struct.unpack(
+ f">{timecnt}{time_type}", fobj.read(timecnt * time_size)
+ )
+ trans_idx = struct.unpack(f">{timecnt}B", fobj.read(timecnt))
+ else:
+ trans_list_utc = ()
+ trans_idx = ()
+
+ # Read the ttinfo struct, (utoff, isdst, abbrind)
+ if typecnt:
+ utcoff, isdst, abbrind = zip(
+ *(struct.unpack(">lbb", fobj.read(6)) for i in range(typecnt))
+ )
+ else:
+ utcoff = ()
+ isdst = ()
+ abbrind = ()
+
+ # Now read the abbreviations. They are null-terminated strings, indexed
+ # not by position in the array but by position in the unsplit
+ # abbreviation string. I suppose this makes more sense in C, which uses
+ # null to terminate the strings, but it's inconvenient here...
+ abbr_vals = {}
+ abbr_chars = fobj.read(charcnt)
+
+ def get_abbr(idx):
+ # Gets a string starting at idx and running until the next \x00
+ #
+ # We cannot pre-populate abbr_vals by splitting on \x00 because there
+ # are some zones that use subsets of longer abbreviations, like so:
+ #
+ # LMT\x00AHST\x00HDT\x00
+ #
+ # Where the idx to abbr mapping should be:
+ #
+ # {0: "LMT", 4: "AHST", 5: "HST", 9: "HDT"}
+ if idx not in abbr_vals:
+ span_end = abbr_chars.find(b"\x00", idx)
+ abbr_vals[idx] = abbr_chars[idx:span_end].decode()
+
+ return abbr_vals[idx]
+
+ abbr = tuple(get_abbr(idx) for idx in abbrind)
+
+ # The remainder of the file consists of leap seconds (currently unused) and
+ # the standard/wall and ut/local indicators, which are metadata we don't need.
+ # In version 2 files, we need to skip the unnecessary data to get at the TZ string:
+ if header.version >= 2:
+ # Each leap second record has size (time_size + 4)
+ skip_bytes = header.isutcnt + header.isstdcnt + header.leapcnt * 12
+ fobj.seek(skip_bytes, 1)
+
+ c = fobj.read(1) # Should be \n
+ assert c == b"\n", c
+
+ tz_bytes = b""
+ while (c := fobj.read(1)) != b"\n":
+ tz_bytes += c
+
+ tz_str = tz_bytes
+ else:
+ tz_str = None
+
+ return trans_idx, trans_list_utc, utcoff, isdst, abbr, tz_str
+
+
+class _TZifHeader:
+ __slots__ = [
+ "version",
+ "isutcnt",
+ "isstdcnt",
+ "leapcnt",
+ "timecnt",
+ "typecnt",
+ "charcnt",
+ ]
+
+ def __init__(self, *args):
+ assert len(self.__slots__) == len(args)
+ for attr, val in zip(self.__slots__, args):
+ setattr(self, attr, val)
+
+ @classmethod
+ def from_file(cls, stream):
+ # The header starts with a 4-byte "magic" value
+ if stream.read(4) != b"TZif":
+ raise ValueError("Invalid TZif file: magic not found")
+
+ _version = stream.read(1)
+ if _version == b"\x00":
+ version = 1
+ else:
+ version = int(_version)
+ stream.read(15)
+
+ args = (version,)
+
+ # Slots are defined in the order that the bytes are arranged
+ args = args + struct.unpack(">6l", stream.read(24))
+
+ return cls(*args)
+
+
+class ZoneInfoNotFoundError(KeyError):
+ """Exception raised when a ZoneInfo key is not found."""
diff --git a/contrib/tools/python3/src/Lib/zoneinfo/_tzpath.py b/contrib/tools/python3/src/Lib/zoneinfo/_tzpath.py
index 149e20ed94..672560b951 100644
--- a/contrib/tools/python3/src/Lib/zoneinfo/_tzpath.py
+++ b/contrib/tools/python3/src/Lib/zoneinfo/_tzpath.py
@@ -1,175 +1,175 @@
-import os
-import sysconfig
-
-
-def reset_tzpath(to=None):
- global TZPATH
-
- tzpaths = to
- if tzpaths is not None:
- if isinstance(tzpaths, (str, bytes)):
- raise TypeError(
- f"tzpaths must be a list or tuple, "
- + f"not {type(tzpaths)}: {tzpaths!r}"
- )
-
- if not all(map(os.path.isabs, tzpaths)):
- raise ValueError(_get_invalid_paths_message(tzpaths))
- base_tzpath = tzpaths
- else:
- env_var = os.environ.get("PYTHONTZPATH", None)
- if env_var is not None:
- base_tzpath = _parse_python_tzpath(env_var)
- else:
- base_tzpath = _parse_python_tzpath(
- sysconfig.get_config_var("TZPATH")
- )
-
- TZPATH = tuple(base_tzpath)
-
-
-def _parse_python_tzpath(env_var):
- if not env_var:
- return ()
-
- raw_tzpath = env_var.split(os.pathsep)
- new_tzpath = tuple(filter(os.path.isabs, raw_tzpath))
-
- # If anything has been filtered out, we will warn about it
- if len(new_tzpath) != len(raw_tzpath):
- import warnings
-
- msg = _get_invalid_paths_message(raw_tzpath)
-
- warnings.warn(
- "Invalid paths specified in PYTHONTZPATH environment variable. "
- + msg,
- InvalidTZPathWarning,
- )
-
- return new_tzpath
-
-
-def _get_invalid_paths_message(tzpaths):
- invalid_paths = (path for path in tzpaths if not os.path.isabs(path))
-
- prefix = "\n "
- indented_str = prefix + prefix.join(invalid_paths)
-
- return (
- "Paths should be absolute but found the following relative paths:"
- + indented_str
- )
-
-
-def find_tzfile(key):
- """Retrieve the path to a TZif file from a key."""
- _validate_tzfile_path(key)
- for search_path in TZPATH:
- filepath = os.path.join(search_path, key)
- if os.path.isfile(filepath):
- return filepath
-
- return None
-
-
-_TEST_PATH = os.path.normpath(os.path.join("_", "_"))[:-1]
-
-
-def _validate_tzfile_path(path, _base=_TEST_PATH):
- if os.path.isabs(path):
- raise ValueError(
- f"ZoneInfo keys may not be absolute paths, got: {path}"
- )
-
- # We only care about the kinds of path normalizations that would change the
- # length of the key - e.g. a/../b -> a/b, or a/b/ -> a/b. On Windows,
- # normpath will also change from a/b to a\b, but that would still preserve
- # the length.
- new_path = os.path.normpath(path)
- if len(new_path) != len(path):
- raise ValueError(
- f"ZoneInfo keys must be normalized relative paths, got: {path}"
- )
-
- resolved = os.path.normpath(os.path.join(_base, new_path))
- if not resolved.startswith(_base):
- raise ValueError(
- f"ZoneInfo keys must refer to subdirectories of TZPATH, got: {path}"
- )
-
-
-del _TEST_PATH
-
-
-def available_timezones():
- """Returns a set containing all available time zones.
-
- .. caution::
-
- This may attempt to open a large number of files, since the best way to
- determine if a given file on the time zone search path is to open it
- and check for the "magic string" at the beginning.
- """
- from importlib import resources
-
- valid_zones = set()
-
- # Start with loading from the tzdata package if it exists: this has a
- # pre-assembled list of zones that only requires opening one file.
- try:
- with resources.open_text("tzdata", "zones") as f:
- for zone in f:
- zone = zone.strip()
- if zone:
- valid_zones.add(zone)
- except (ImportError, FileNotFoundError):
- pass
-
- def valid_key(fpath):
- try:
- with open(fpath, "rb") as f:
- return f.read(4) == b"TZif"
- except Exception: # pragma: nocover
- return False
-
- for tz_root in TZPATH:
- if not os.path.exists(tz_root):
- continue
-
- for root, dirnames, files in os.walk(tz_root):
- if root == tz_root:
- # right/ and posix/ are special directories and shouldn't be
- # included in the output of available zones
- if "right" in dirnames:
- dirnames.remove("right")
- if "posix" in dirnames:
- dirnames.remove("posix")
-
- for file in files:
- fpath = os.path.join(root, file)
-
- key = os.path.relpath(fpath, start=tz_root)
- if os.sep != "/": # pragma: nocover
- key = key.replace(os.sep, "/")
-
- if not key or key in valid_zones:
- continue
-
- if valid_key(fpath):
- valid_zones.add(key)
-
- if "posixrules" in valid_zones:
- # posixrules is a special symlink-only time zone where it exists, it
- # should not be included in the output
- valid_zones.remove("posixrules")
-
- return valid_zones
-
-
-class InvalidTZPathWarning(RuntimeWarning):
- """Warning raised if an invalid path is specified in PYTHONTZPATH."""
-
-
-TZPATH = ()
-reset_tzpath()
+import os
+import sysconfig
+
+
+def reset_tzpath(to=None):
+ global TZPATH
+
+ tzpaths = to
+ if tzpaths is not None:
+ if isinstance(tzpaths, (str, bytes)):
+ raise TypeError(
+ f"tzpaths must be a list or tuple, "
+ + f"not {type(tzpaths)}: {tzpaths!r}"
+ )
+
+ if not all(map(os.path.isabs, tzpaths)):
+ raise ValueError(_get_invalid_paths_message(tzpaths))
+ base_tzpath = tzpaths
+ else:
+ env_var = os.environ.get("PYTHONTZPATH", None)
+ if env_var is not None:
+ base_tzpath = _parse_python_tzpath(env_var)
+ else:
+ base_tzpath = _parse_python_tzpath(
+ sysconfig.get_config_var("TZPATH")
+ )
+
+ TZPATH = tuple(base_tzpath)
+
+
+def _parse_python_tzpath(env_var):
+ if not env_var:
+ return ()
+
+ raw_tzpath = env_var.split(os.pathsep)
+ new_tzpath = tuple(filter(os.path.isabs, raw_tzpath))
+
+ # If anything has been filtered out, we will warn about it
+ if len(new_tzpath) != len(raw_tzpath):
+ import warnings
+
+ msg = _get_invalid_paths_message(raw_tzpath)
+
+ warnings.warn(
+ "Invalid paths specified in PYTHONTZPATH environment variable. "
+ + msg,
+ InvalidTZPathWarning,
+ )
+
+ return new_tzpath
+
+
+def _get_invalid_paths_message(tzpaths):
+ invalid_paths = (path for path in tzpaths if not os.path.isabs(path))
+
+ prefix = "\n "
+ indented_str = prefix + prefix.join(invalid_paths)
+
+ return (
+ "Paths should be absolute but found the following relative paths:"
+ + indented_str
+ )
+
+
+def find_tzfile(key):
+ """Retrieve the path to a TZif file from a key."""
+ _validate_tzfile_path(key)
+ for search_path in TZPATH:
+ filepath = os.path.join(search_path, key)
+ if os.path.isfile(filepath):
+ return filepath
+
+ return None
+
+
+_TEST_PATH = os.path.normpath(os.path.join("_", "_"))[:-1]
+
+
+def _validate_tzfile_path(path, _base=_TEST_PATH):
+ if os.path.isabs(path):
+ raise ValueError(
+ f"ZoneInfo keys may not be absolute paths, got: {path}"
+ )
+
+ # We only care about the kinds of path normalizations that would change the
+ # length of the key - e.g. a/../b -> a/b, or a/b/ -> a/b. On Windows,
+ # normpath will also change from a/b to a\b, but that would still preserve
+ # the length.
+ new_path = os.path.normpath(path)
+ if len(new_path) != len(path):
+ raise ValueError(
+ f"ZoneInfo keys must be normalized relative paths, got: {path}"
+ )
+
+ resolved = os.path.normpath(os.path.join(_base, new_path))
+ if not resolved.startswith(_base):
+ raise ValueError(
+ f"ZoneInfo keys must refer to subdirectories of TZPATH, got: {path}"
+ )
+
+
+del _TEST_PATH
+
+
+def available_timezones():
+ """Returns a set containing all available time zones.
+
+ .. caution::
+
+ This may attempt to open a large number of files, since the best way to
+ determine if a given file on the time zone search path is to open it
+ and check for the "magic string" at the beginning.
+ """
+ from importlib import resources
+
+ valid_zones = set()
+
+ # Start with loading from the tzdata package if it exists: this has a
+ # pre-assembled list of zones that only requires opening one file.
+ try:
+ with resources.open_text("tzdata", "zones") as f:
+ for zone in f:
+ zone = zone.strip()
+ if zone:
+ valid_zones.add(zone)
+ except (ImportError, FileNotFoundError):
+ pass
+
+ def valid_key(fpath):
+ try:
+ with open(fpath, "rb") as f:
+ return f.read(4) == b"TZif"
+ except Exception: # pragma: nocover
+ return False
+
+ for tz_root in TZPATH:
+ if not os.path.exists(tz_root):
+ continue
+
+ for root, dirnames, files in os.walk(tz_root):
+ if root == tz_root:
+ # right/ and posix/ are special directories and shouldn't be
+ # included in the output of available zones
+ if "right" in dirnames:
+ dirnames.remove("right")
+ if "posix" in dirnames:
+ dirnames.remove("posix")
+
+ for file in files:
+ fpath = os.path.join(root, file)
+
+ key = os.path.relpath(fpath, start=tz_root)
+ if os.sep != "/": # pragma: nocover
+ key = key.replace(os.sep, "/")
+
+ if not key or key in valid_zones:
+ continue
+
+ if valid_key(fpath):
+ valid_zones.add(key)
+
+ if "posixrules" in valid_zones:
+ # posixrules is a special symlink-only time zone where it exists, it
+ # should not be included in the output
+ valid_zones.remove("posixrules")
+
+ return valid_zones
+
+
+class InvalidTZPathWarning(RuntimeWarning):
+ """Warning raised if an invalid path is specified in PYTHONTZPATH."""
+
+
+TZPATH = ()
+reset_tzpath()
diff --git a/contrib/tools/python3/src/Lib/zoneinfo/_zoneinfo.py b/contrib/tools/python3/src/Lib/zoneinfo/_zoneinfo.py
index 48077997f5..de68380792 100644
--- a/contrib/tools/python3/src/Lib/zoneinfo/_zoneinfo.py
+++ b/contrib/tools/python3/src/Lib/zoneinfo/_zoneinfo.py
@@ -1,752 +1,752 @@
-import bisect
-import calendar
-import collections
-import functools
-import re
-import weakref
-from datetime import datetime, timedelta, tzinfo
-
-from . import _common, _tzpath
-
-EPOCH = datetime(1970, 1, 1)
-EPOCHORDINAL = datetime(1970, 1, 1).toordinal()
-
-# It is relatively expensive to construct new timedelta objects, and in most
-# cases we're looking at the same deltas, like integer numbers of hours, etc.
-# To improve speed and memory use, we'll keep a dictionary with references
-# to the ones we've already used so far.
-#
-# Loading every time zone in the 2020a version of the time zone database
-# requires 447 timedeltas, which requires approximately the amount of space
-# that ZoneInfo("America/New_York") with 236 transitions takes up, so we will
-# set the cache size to 512 so that in the common case we always get cache
-# hits, but specifically crafted ZoneInfo objects don't leak arbitrary amounts
-# of memory.
-@functools.lru_cache(maxsize=512)
-def _load_timedelta(seconds):
- return timedelta(seconds=seconds)
-
-
-class ZoneInfo(tzinfo):
- _strong_cache_size = 8
- _strong_cache = collections.OrderedDict()
- _weak_cache = weakref.WeakValueDictionary()
- __module__ = "zoneinfo"
-
- def __init_subclass__(cls):
- cls._strong_cache = collections.OrderedDict()
- cls._weak_cache = weakref.WeakValueDictionary()
-
- def __new__(cls, key):
- instance = cls._weak_cache.get(key, None)
- if instance is None:
- instance = cls._weak_cache.setdefault(key, cls._new_instance(key))
- instance._from_cache = True
-
- # Update the "strong" cache
- cls._strong_cache[key] = cls._strong_cache.pop(key, instance)
-
- if len(cls._strong_cache) > cls._strong_cache_size:
- cls._strong_cache.popitem(last=False)
-
- return instance
-
- @classmethod
- def no_cache(cls, key):
- obj = cls._new_instance(key)
- obj._from_cache = False
-
- return obj
-
- @classmethod
- def _new_instance(cls, key):
- obj = super().__new__(cls)
- obj._key = key
- obj._file_path = obj._find_tzfile(key)
-
- if obj._file_path is not None:
- file_obj = open(obj._file_path, "rb")
- else:
- file_obj = _common.load_tzdata(key)
-
- with file_obj as f:
- obj._load_file(f)
-
- return obj
-
- @classmethod
- def from_file(cls, fobj, /, key=None):
- obj = super().__new__(cls)
- obj._key = key
- obj._file_path = None
- obj._load_file(fobj)
- obj._file_repr = repr(fobj)
-
- # Disable pickling for objects created from files
- obj.__reduce__ = obj._file_reduce
-
- return obj
-
- @classmethod
- def clear_cache(cls, *, only_keys=None):
- if only_keys is not None:
- for key in only_keys:
- cls._weak_cache.pop(key, None)
- cls._strong_cache.pop(key, None)
-
- else:
- cls._weak_cache.clear()
- cls._strong_cache.clear()
-
- @property
- def key(self):
- return self._key
-
- def utcoffset(self, dt):
- return self._find_trans(dt).utcoff
-
- def dst(self, dt):
- return self._find_trans(dt).dstoff
-
- def tzname(self, dt):
- return self._find_trans(dt).tzname
-
- def fromutc(self, dt):
- """Convert from datetime in UTC to datetime in local time"""
-
- if not isinstance(dt, datetime):
- raise TypeError("fromutc() requires a datetime argument")
- if dt.tzinfo is not self:
- raise ValueError("dt.tzinfo is not self")
-
- timestamp = self._get_local_timestamp(dt)
- num_trans = len(self._trans_utc)
-
- if num_trans >= 1 and timestamp < self._trans_utc[0]:
- tti = self._tti_before
- fold = 0
- elif (
- num_trans == 0 or timestamp > self._trans_utc[-1]
- ) and not isinstance(self._tz_after, _ttinfo):
- tti, fold = self._tz_after.get_trans_info_fromutc(
- timestamp, dt.year
- )
- elif num_trans == 0:
- tti = self._tz_after
- fold = 0
- else:
- idx = bisect.bisect_right(self._trans_utc, timestamp)
-
- if num_trans > 1 and timestamp >= self._trans_utc[1]:
- tti_prev, tti = self._ttinfos[idx - 2 : idx]
- elif timestamp > self._trans_utc[-1]:
- tti_prev = self._ttinfos[-1]
- tti = self._tz_after
- else:
- tti_prev = self._tti_before
- tti = self._ttinfos[0]
-
- # Detect fold
- shift = tti_prev.utcoff - tti.utcoff
- fold = shift.total_seconds() > timestamp - self._trans_utc[idx - 1]
- dt += tti.utcoff
- if fold:
- return dt.replace(fold=1)
- else:
- return dt
-
- def _find_trans(self, dt):
- if dt is None:
- if self._fixed_offset:
- return self._tz_after
- else:
- return _NO_TTINFO
-
- ts = self._get_local_timestamp(dt)
-
- lt = self._trans_local[dt.fold]
-
- num_trans = len(lt)
-
- if num_trans and ts < lt[0]:
- return self._tti_before
- elif not num_trans or ts > lt[-1]:
- if isinstance(self._tz_after, _TZStr):
- return self._tz_after.get_trans_info(ts, dt.year, dt.fold)
- else:
- return self._tz_after
- else:
- # idx is the transition that occurs after this timestamp, so we
- # subtract off 1 to get the current ttinfo
- idx = bisect.bisect_right(lt, ts) - 1
- assert idx >= 0
- return self._ttinfos[idx]
-
- def _get_local_timestamp(self, dt):
- return (
- (dt.toordinal() - EPOCHORDINAL) * 86400
- + dt.hour * 3600
- + dt.minute * 60
- + dt.second
- )
-
- def __str__(self):
- if self._key is not None:
- return f"{self._key}"
- else:
- return repr(self)
-
- def __repr__(self):
- if self._key is not None:
- return f"{self.__class__.__name__}(key={self._key!r})"
- else:
- return f"{self.__class__.__name__}.from_file({self._file_repr})"
-
- def __reduce__(self):
- return (self.__class__._unpickle, (self._key, self._from_cache))
-
- def _file_reduce(self):
- import pickle
-
- raise pickle.PicklingError(
- "Cannot pickle a ZoneInfo file created from a file stream."
- )
-
- @classmethod
- def _unpickle(cls, key, from_cache, /):
- if from_cache:
- return cls(key)
- else:
- return cls.no_cache(key)
-
- def _find_tzfile(self, key):
- return _tzpath.find_tzfile(key)
-
- def _load_file(self, fobj):
- # Retrieve all the data as it exists in the zoneinfo file
- trans_idx, trans_utc, utcoff, isdst, abbr, tz_str = _common.load_data(
- fobj
- )
-
- # Infer the DST offsets (needed for .dst()) from the data
- dstoff = self._utcoff_to_dstoff(trans_idx, utcoff, isdst)
-
- # Convert all the transition times (UTC) into "seconds since 1970-01-01 local time"
- trans_local = self._ts_to_local(trans_idx, trans_utc, utcoff)
-
- # Construct `_ttinfo` objects for each transition in the file
- _ttinfo_list = [
- _ttinfo(
- _load_timedelta(utcoffset), _load_timedelta(dstoffset), tzname
- )
- for utcoffset, dstoffset, tzname in zip(utcoff, dstoff, abbr)
- ]
-
- self._trans_utc = trans_utc
- self._trans_local = trans_local
- self._ttinfos = [_ttinfo_list[idx] for idx in trans_idx]
-
- # Find the first non-DST transition
- for i in range(len(isdst)):
- if not isdst[i]:
- self._tti_before = _ttinfo_list[i]
- break
- else:
- if self._ttinfos:
- self._tti_before = self._ttinfos[0]
- else:
- self._tti_before = None
-
- # Set the "fallback" time zone
- if tz_str is not None and tz_str != b"":
- self._tz_after = _parse_tz_str(tz_str.decode())
- else:
- if not self._ttinfos and not _ttinfo_list:
- raise ValueError("No time zone information found.")
-
- if self._ttinfos:
- self._tz_after = self._ttinfos[-1]
- else:
- self._tz_after = _ttinfo_list[-1]
-
- # Determine if this is a "fixed offset" zone, meaning that the output
- # of the utcoffset, dst and tzname functions does not depend on the
- # specific datetime passed.
- #
- # We make three simplifying assumptions here:
- #
- # 1. If _tz_after is not a _ttinfo, it has transitions that might
- # actually occur (it is possible to construct TZ strings that
- # specify STD and DST but no transitions ever occur, such as
- # AAA0BBB,0/0,J365/25).
- # 2. If _ttinfo_list contains more than one _ttinfo object, the objects
- # represent different offsets.
- # 3. _ttinfo_list contains no unused _ttinfos (in which case an
- # otherwise fixed-offset zone with extra _ttinfos defined may
- # appear to *not* be a fixed offset zone).
- #
- # Violations to these assumptions would be fairly exotic, and exotic
- # zones should almost certainly not be used with datetime.time (the
- # only thing that would be affected by this).
- if len(_ttinfo_list) > 1 or not isinstance(self._tz_after, _ttinfo):
- self._fixed_offset = False
- elif not _ttinfo_list:
- self._fixed_offset = True
- else:
- self._fixed_offset = _ttinfo_list[0] == self._tz_after
-
- @staticmethod
- def _utcoff_to_dstoff(trans_idx, utcoffsets, isdsts):
- # Now we must transform our ttis and abbrs into `_ttinfo` objects,
- # but there is an issue: .dst() must return a timedelta with the
- # difference between utcoffset() and the "standard" offset, but
- # the "base offset" and "DST offset" are not encoded in the file;
- # we can infer what they are from the isdst flag, but it is not
- # sufficient to to just look at the last standard offset, because
- # occasionally countries will shift both DST offset and base offset.
-
- typecnt = len(isdsts)
- dstoffs = [0] * typecnt # Provisionally assign all to 0.
- dst_cnt = sum(isdsts)
- dst_found = 0
-
- for i in range(1, len(trans_idx)):
- if dst_cnt == dst_found:
- break
-
- idx = trans_idx[i]
-
- dst = isdsts[idx]
-
- # We're only going to look at daylight saving time
- if not dst:
- continue
-
- # Skip any offsets that have already been assigned
- if dstoffs[idx] != 0:
- continue
-
- dstoff = 0
- utcoff = utcoffsets[idx]
-
- comp_idx = trans_idx[i - 1]
-
- if not isdsts[comp_idx]:
- dstoff = utcoff - utcoffsets[comp_idx]
-
- if not dstoff and idx < (typecnt - 1):
- comp_idx = trans_idx[i + 1]
-
- # If the following transition is also DST and we couldn't
- # find the DST offset by this point, we're going to have to
- # skip it and hope this transition gets assigned later
- if isdsts[comp_idx]:
- continue
-
- dstoff = utcoff - utcoffsets[comp_idx]
-
- if dstoff:
- dst_found += 1
- dstoffs[idx] = dstoff
- else:
- # If we didn't find a valid value for a given index, we'll end up
- # with dstoff = 0 for something where `isdst=1`. This is obviously
- # wrong - one hour will be a much better guess than 0
- for idx in range(typecnt):
- if not dstoffs[idx] and isdsts[idx]:
- dstoffs[idx] = 3600
-
- return dstoffs
-
- @staticmethod
- def _ts_to_local(trans_idx, trans_list_utc, utcoffsets):
- """Generate number of seconds since 1970 *in the local time*.
-
- This is necessary to easily find the transition times in local time"""
- if not trans_list_utc:
- return [[], []]
-
- # Start with the timestamps and modify in-place
- trans_list_wall = [list(trans_list_utc), list(trans_list_utc)]
-
- if len(utcoffsets) > 1:
- offset_0 = utcoffsets[0]
- offset_1 = utcoffsets[trans_idx[0]]
- if offset_1 > offset_0:
- offset_1, offset_0 = offset_0, offset_1
- else:
- offset_0 = offset_1 = utcoffsets[0]
-
- trans_list_wall[0][0] += offset_0
- trans_list_wall[1][0] += offset_1
-
- for i in range(1, len(trans_idx)):
- offset_0 = utcoffsets[trans_idx[i - 1]]
- offset_1 = utcoffsets[trans_idx[i]]
-
- if offset_1 > offset_0:
- offset_1, offset_0 = offset_0, offset_1
-
- trans_list_wall[0][i] += offset_0
- trans_list_wall[1][i] += offset_1
-
- return trans_list_wall
-
-
-class _ttinfo:
- __slots__ = ["utcoff", "dstoff", "tzname"]
-
- def __init__(self, utcoff, dstoff, tzname):
- self.utcoff = utcoff
- self.dstoff = dstoff
- self.tzname = tzname
-
- def __eq__(self, other):
- return (
- self.utcoff == other.utcoff
- and self.dstoff == other.dstoff
- and self.tzname == other.tzname
- )
-
- def __repr__(self): # pragma: nocover
- return (
- f"{self.__class__.__name__}"
- + f"({self.utcoff}, {self.dstoff}, {self.tzname})"
- )
-
-
-_NO_TTINFO = _ttinfo(None, None, None)
-
-
-class _TZStr:
- __slots__ = (
- "std",
- "dst",
- "start",
- "end",
- "get_trans_info",
- "get_trans_info_fromutc",
- "dst_diff",
- )
-
- def __init__(
- self, std_abbr, std_offset, dst_abbr, dst_offset, start=None, end=None
- ):
- self.dst_diff = dst_offset - std_offset
- std_offset = _load_timedelta(std_offset)
- self.std = _ttinfo(
- utcoff=std_offset, dstoff=_load_timedelta(0), tzname=std_abbr
- )
-
- self.start = start
- self.end = end
-
- dst_offset = _load_timedelta(dst_offset)
- delta = _load_timedelta(self.dst_diff)
- self.dst = _ttinfo(utcoff=dst_offset, dstoff=delta, tzname=dst_abbr)
-
- # These are assertions because the constructor should only be called
- # by functions that would fail before passing start or end
- assert start is not None, "No transition start specified"
- assert end is not None, "No transition end specified"
-
- self.get_trans_info = self._get_trans_info
- self.get_trans_info_fromutc = self._get_trans_info_fromutc
-
- def transitions(self, year):
- start = self.start.year_to_epoch(year)
- end = self.end.year_to_epoch(year)
- return start, end
-
- def _get_trans_info(self, ts, year, fold):
- """Get the information about the current transition - tti"""
- start, end = self.transitions(year)
-
- # With fold = 0, the period (denominated in local time) with the
- # smaller offset starts at the end of the gap and ends at the end of
- # the fold; with fold = 1, it runs from the start of the gap to the
- # beginning of the fold.
- #
- # So in order to determine the DST boundaries we need to know both
- # the fold and whether DST is positive or negative (rare), and it
- # turns out that this boils down to fold XOR is_positive.
- if fold == (self.dst_diff >= 0):
- end -= self.dst_diff
- else:
- start += self.dst_diff
-
- if start < end:
- isdst = start <= ts < end
- else:
- isdst = not (end <= ts < start)
-
- return self.dst if isdst else self.std
-
- def _get_trans_info_fromutc(self, ts, year):
- start, end = self.transitions(year)
- start -= self.std.utcoff.total_seconds()
- end -= self.dst.utcoff.total_seconds()
-
- if start < end:
- isdst = start <= ts < end
- else:
- isdst = not (end <= ts < start)
-
- # For positive DST, the ambiguous period is one dst_diff after the end
- # of DST; for negative DST, the ambiguous period is one dst_diff before
- # the start of DST.
- if self.dst_diff > 0:
- ambig_start = end
- ambig_end = end + self.dst_diff
- else:
- ambig_start = start
- ambig_end = start - self.dst_diff
-
- fold = ambig_start <= ts < ambig_end
-
- return (self.dst if isdst else self.std, fold)
-
-
-def _post_epoch_days_before_year(year):
- """Get the number of days between 1970-01-01 and YEAR-01-01"""
- y = year - 1
- return y * 365 + y // 4 - y // 100 + y // 400 - EPOCHORDINAL
-
-
-class _DayOffset:
- __slots__ = ["d", "julian", "hour", "minute", "second"]
-
- def __init__(self, d, julian, hour=2, minute=0, second=0):
- if not (0 + julian) <= d <= 365:
- min_day = 0 + julian
- raise ValueError(f"d must be in [{min_day}, 365], not: {d}")
-
- self.d = d
- self.julian = julian
- self.hour = hour
- self.minute = minute
- self.second = second
-
- def year_to_epoch(self, year):
- days_before_year = _post_epoch_days_before_year(year)
-
- d = self.d
- if self.julian and d >= 59 and calendar.isleap(year):
- d += 1
-
- epoch = (days_before_year + d) * 86400
- epoch += self.hour * 3600 + self.minute * 60 + self.second
-
- return epoch
-
-
-class _CalendarOffset:
- __slots__ = ["m", "w", "d", "hour", "minute", "second"]
-
- _DAYS_BEFORE_MONTH = (
- -1,
- 0,
- 31,
- 59,
- 90,
- 120,
- 151,
- 181,
- 212,
- 243,
- 273,
- 304,
- 334,
- )
-
- def __init__(self, m, w, d, hour=2, minute=0, second=0):
- if not 0 < m <= 12:
- raise ValueError("m must be in (0, 12]")
-
- if not 0 < w <= 5:
- raise ValueError("w must be in (0, 5]")
-
- if not 0 <= d <= 6:
- raise ValueError("d must be in [0, 6]")
-
- self.m = m
- self.w = w
- self.d = d
- self.hour = hour
- self.minute = minute
- self.second = second
-
- @classmethod
- def _ymd2ord(cls, year, month, day):
- return (
- _post_epoch_days_before_year(year)
- + cls._DAYS_BEFORE_MONTH[month]
- + (month > 2 and calendar.isleap(year))
- + day
- )
-
- # TODO: These are not actually epoch dates as they are expressed in local time
- def year_to_epoch(self, year):
- """Calculates the datetime of the occurrence from the year"""
- # We know year and month, we need to convert w, d into day of month
- #
- # Week 1 is the first week in which day `d` (where 0 = Sunday) appears.
- # Week 5 represents the last occurrence of day `d`, so we need to know
- # the range of the month.
- first_day, days_in_month = calendar.monthrange(year, self.m)
-
- # This equation seems magical, so I'll break it down:
- # 1. calendar says 0 = Monday, POSIX says 0 = Sunday
- # so we need first_day + 1 to get 1 = Monday -> 7 = Sunday,
- # which is still equivalent because this math is mod 7
- # 2. Get first day - desired day mod 7: -1 % 7 = 6, so we don't need
- # to do anything to adjust negative numbers.
- # 3. Add 1 because month days are a 1-based index.
- month_day = (self.d - (first_day + 1)) % 7 + 1
-
- # Now use a 0-based index version of `w` to calculate the w-th
- # occurrence of `d`
- month_day += (self.w - 1) * 7
-
- # month_day will only be > days_in_month if w was 5, and `w` means
- # "last occurrence of `d`", so now we just check if we over-shot the
- # end of the month and if so knock off 1 week.
- if month_day > days_in_month:
- month_day -= 7
-
- ordinal = self._ymd2ord(year, self.m, month_day)
- epoch = ordinal * 86400
- epoch += self.hour * 3600 + self.minute * 60 + self.second
- return epoch
-
-
-def _parse_tz_str(tz_str):
- # The tz string has the format:
- #
- # std[offset[dst[offset],start[/time],end[/time]]]
- #
- # std and dst must be 3 or more characters long and must not contain
- # a leading colon, embedded digits, commas, nor a plus or minus signs;
- # The spaces between "std" and "offset" are only for display and are
- # not actually present in the string.
- #
- # The format of the offset is ``[+|-]hh[:mm[:ss]]``
-
- offset_str, *start_end_str = tz_str.split(",", 1)
-
- # fmt: off
- parser_re = re.compile(
- r"(?P<std>[^<0-9:.+-]+|<[a-zA-Z0-9+\-]+>)" +
- r"((?P<stdoff>[+-]?\d{1,2}(:\d{2}(:\d{2})?)?)" +
- r"((?P<dst>[^0-9:.+-]+|<[a-zA-Z0-9+\-]+>)" +
- r"((?P<dstoff>[+-]?\d{1,2}(:\d{2}(:\d{2})?)?))?" +
- r")?" + # dst
- r")?$" # stdoff
- )
- # fmt: on
-
- m = parser_re.match(offset_str)
-
- if m is None:
- raise ValueError(f"{tz_str} is not a valid TZ string")
-
- std_abbr = m.group("std")
- dst_abbr = m.group("dst")
- dst_offset = None
-
- std_abbr = std_abbr.strip("<>")
-
- if dst_abbr:
- dst_abbr = dst_abbr.strip("<>")
-
- if std_offset := m.group("stdoff"):
- try:
- std_offset = _parse_tz_delta(std_offset)
- except ValueError as e:
- raise ValueError(f"Invalid STD offset in {tz_str}") from e
- else:
- std_offset = 0
-
- if dst_abbr is not None:
- if dst_offset := m.group("dstoff"):
- try:
- dst_offset = _parse_tz_delta(dst_offset)
- except ValueError as e:
- raise ValueError(f"Invalid DST offset in {tz_str}") from e
- else:
- dst_offset = std_offset + 3600
-
- if not start_end_str:
- raise ValueError(f"Missing transition rules: {tz_str}")
-
- start_end_strs = start_end_str[0].split(",", 1)
- try:
- start, end = (_parse_dst_start_end(x) for x in start_end_strs)
- except ValueError as e:
- raise ValueError(f"Invalid TZ string: {tz_str}") from e
-
- return _TZStr(std_abbr, std_offset, dst_abbr, dst_offset, start, end)
- elif start_end_str:
- raise ValueError(f"Transition rule present without DST: {tz_str}")
- else:
- # This is a static ttinfo, don't return _TZStr
- return _ttinfo(
- _load_timedelta(std_offset), _load_timedelta(0), std_abbr
- )
-
-
-def _parse_dst_start_end(dststr):
- date, *time = dststr.split("/")
- if date[0] == "M":
- n_is_julian = False
- m = re.match(r"M(\d{1,2})\.(\d).(\d)$", date)
- if m is None:
- raise ValueError(f"Invalid dst start/end date: {dststr}")
- date_offset = tuple(map(int, m.groups()))
- offset = _CalendarOffset(*date_offset)
- else:
- if date[0] == "J":
- n_is_julian = True
- date = date[1:]
- else:
- n_is_julian = False
-
- doy = int(date)
- offset = _DayOffset(doy, n_is_julian)
-
- if time:
- time_components = list(map(int, time[0].split(":")))
- n_components = len(time_components)
- if n_components < 3:
- time_components.extend([0] * (3 - n_components))
- offset.hour, offset.minute, offset.second = time_components
-
- return offset
-
-
-def _parse_tz_delta(tz_delta):
- match = re.match(
- r"(?P<sign>[+-])?(?P<h>\d{1,2})(:(?P<m>\d{2})(:(?P<s>\d{2}))?)?",
- tz_delta,
- )
- # Anything passed to this function should already have hit an equivalent
- # regular expression to find the section to parse.
- assert match is not None, tz_delta
-
- h, m, s = (
- int(v) if v is not None else 0
- for v in map(match.group, ("h", "m", "s"))
- )
-
- total = h * 3600 + m * 60 + s
-
- if not -86400 < total < 86400:
- raise ValueError(
- f"Offset must be strictly between -24h and +24h: {tz_delta}"
- )
-
- # Yes, +5 maps to an offset of -5h
- if match.group("sign") != "-":
- total *= -1
-
- return total
+import bisect
+import calendar
+import collections
+import functools
+import re
+import weakref
+from datetime import datetime, timedelta, tzinfo
+
+from . import _common, _tzpath
+
+EPOCH = datetime(1970, 1, 1)
+EPOCHORDINAL = datetime(1970, 1, 1).toordinal()
+
+# It is relatively expensive to construct new timedelta objects, and in most
+# cases we're looking at the same deltas, like integer numbers of hours, etc.
+# To improve speed and memory use, we'll keep a dictionary with references
+# to the ones we've already used so far.
+#
+# Loading every time zone in the 2020a version of the time zone database
+# requires 447 timedeltas, which requires approximately the amount of space
+# that ZoneInfo("America/New_York") with 236 transitions takes up, so we will
+# set the cache size to 512 so that in the common case we always get cache
+# hits, but specifically crafted ZoneInfo objects don't leak arbitrary amounts
+# of memory.
+@functools.lru_cache(maxsize=512)
+def _load_timedelta(seconds):
+ return timedelta(seconds=seconds)
+
+
+class ZoneInfo(tzinfo):
+ _strong_cache_size = 8
+ _strong_cache = collections.OrderedDict()
+ _weak_cache = weakref.WeakValueDictionary()
+ __module__ = "zoneinfo"
+
+ def __init_subclass__(cls):
+ cls._strong_cache = collections.OrderedDict()
+ cls._weak_cache = weakref.WeakValueDictionary()
+
+ def __new__(cls, key):
+ instance = cls._weak_cache.get(key, None)
+ if instance is None:
+ instance = cls._weak_cache.setdefault(key, cls._new_instance(key))
+ instance._from_cache = True
+
+ # Update the "strong" cache
+ cls._strong_cache[key] = cls._strong_cache.pop(key, instance)
+
+ if len(cls._strong_cache) > cls._strong_cache_size:
+ cls._strong_cache.popitem(last=False)
+
+ return instance
+
+ @classmethod
+ def no_cache(cls, key):
+ obj = cls._new_instance(key)
+ obj._from_cache = False
+
+ return obj
+
+ @classmethod
+ def _new_instance(cls, key):
+ obj = super().__new__(cls)
+ obj._key = key
+ obj._file_path = obj._find_tzfile(key)
+
+ if obj._file_path is not None:
+ file_obj = open(obj._file_path, "rb")
+ else:
+ file_obj = _common.load_tzdata(key)
+
+ with file_obj as f:
+ obj._load_file(f)
+
+ return obj
+
+ @classmethod
+ def from_file(cls, fobj, /, key=None):
+ obj = super().__new__(cls)
+ obj._key = key
+ obj._file_path = None
+ obj._load_file(fobj)
+ obj._file_repr = repr(fobj)
+
+ # Disable pickling for objects created from files
+ obj.__reduce__ = obj._file_reduce
+
+ return obj
+
+ @classmethod
+ def clear_cache(cls, *, only_keys=None):
+ if only_keys is not None:
+ for key in only_keys:
+ cls._weak_cache.pop(key, None)
+ cls._strong_cache.pop(key, None)
+
+ else:
+ cls._weak_cache.clear()
+ cls._strong_cache.clear()
+
+ @property
+ def key(self):
+ return self._key
+
+ def utcoffset(self, dt):
+ return self._find_trans(dt).utcoff
+
+ def dst(self, dt):
+ return self._find_trans(dt).dstoff
+
+ def tzname(self, dt):
+ return self._find_trans(dt).tzname
+
+ def fromutc(self, dt):
+ """Convert from datetime in UTC to datetime in local time"""
+
+ if not isinstance(dt, datetime):
+ raise TypeError("fromutc() requires a datetime argument")
+ if dt.tzinfo is not self:
+ raise ValueError("dt.tzinfo is not self")
+
+ timestamp = self._get_local_timestamp(dt)
+ num_trans = len(self._trans_utc)
+
+ if num_trans >= 1 and timestamp < self._trans_utc[0]:
+ tti = self._tti_before
+ fold = 0
+ elif (
+ num_trans == 0 or timestamp > self._trans_utc[-1]
+ ) and not isinstance(self._tz_after, _ttinfo):
+ tti, fold = self._tz_after.get_trans_info_fromutc(
+ timestamp, dt.year
+ )
+ elif num_trans == 0:
+ tti = self._tz_after
+ fold = 0
+ else:
+ idx = bisect.bisect_right(self._trans_utc, timestamp)
+
+ if num_trans > 1 and timestamp >= self._trans_utc[1]:
+ tti_prev, tti = self._ttinfos[idx - 2 : idx]
+ elif timestamp > self._trans_utc[-1]:
+ tti_prev = self._ttinfos[-1]
+ tti = self._tz_after
+ else:
+ tti_prev = self._tti_before
+ tti = self._ttinfos[0]
+
+ # Detect fold
+ shift = tti_prev.utcoff - tti.utcoff
+ fold = shift.total_seconds() > timestamp - self._trans_utc[idx - 1]
+ dt += tti.utcoff
+ if fold:
+ return dt.replace(fold=1)
+ else:
+ return dt
+
+ def _find_trans(self, dt):
+ if dt is None:
+ if self._fixed_offset:
+ return self._tz_after
+ else:
+ return _NO_TTINFO
+
+ ts = self._get_local_timestamp(dt)
+
+ lt = self._trans_local[dt.fold]
+
+ num_trans = len(lt)
+
+ if num_trans and ts < lt[0]:
+ return self._tti_before
+ elif not num_trans or ts > lt[-1]:
+ if isinstance(self._tz_after, _TZStr):
+ return self._tz_after.get_trans_info(ts, dt.year, dt.fold)
+ else:
+ return self._tz_after
+ else:
+ # idx is the transition that occurs after this timestamp, so we
+ # subtract off 1 to get the current ttinfo
+ idx = bisect.bisect_right(lt, ts) - 1
+ assert idx >= 0
+ return self._ttinfos[idx]
+
+ def _get_local_timestamp(self, dt):
+ return (
+ (dt.toordinal() - EPOCHORDINAL) * 86400
+ + dt.hour * 3600
+ + dt.minute * 60
+ + dt.second
+ )
+
+ def __str__(self):
+ if self._key is not None:
+ return f"{self._key}"
+ else:
+ return repr(self)
+
+ def __repr__(self):
+ if self._key is not None:
+ return f"{self.__class__.__name__}(key={self._key!r})"
+ else:
+ return f"{self.__class__.__name__}.from_file({self._file_repr})"
+
+ def __reduce__(self):
+ return (self.__class__._unpickle, (self._key, self._from_cache))
+
+ def _file_reduce(self):
+ import pickle
+
+ raise pickle.PicklingError(
+ "Cannot pickle a ZoneInfo file created from a file stream."
+ )
+
+ @classmethod
+ def _unpickle(cls, key, from_cache, /):
+ if from_cache:
+ return cls(key)
+ else:
+ return cls.no_cache(key)
+
+ def _find_tzfile(self, key):
+ return _tzpath.find_tzfile(key)
+
+ def _load_file(self, fobj):
+ # Retrieve all the data as it exists in the zoneinfo file
+ trans_idx, trans_utc, utcoff, isdst, abbr, tz_str = _common.load_data(
+ fobj
+ )
+
+ # Infer the DST offsets (needed for .dst()) from the data
+ dstoff = self._utcoff_to_dstoff(trans_idx, utcoff, isdst)
+
+ # Convert all the transition times (UTC) into "seconds since 1970-01-01 local time"
+ trans_local = self._ts_to_local(trans_idx, trans_utc, utcoff)
+
+ # Construct `_ttinfo` objects for each transition in the file
+ _ttinfo_list = [
+ _ttinfo(
+ _load_timedelta(utcoffset), _load_timedelta(dstoffset), tzname
+ )
+ for utcoffset, dstoffset, tzname in zip(utcoff, dstoff, abbr)
+ ]
+
+ self._trans_utc = trans_utc
+ self._trans_local = trans_local
+ self._ttinfos = [_ttinfo_list[idx] for idx in trans_idx]
+
+ # Find the first non-DST transition
+ for i in range(len(isdst)):
+ if not isdst[i]:
+ self._tti_before = _ttinfo_list[i]
+ break
+ else:
+ if self._ttinfos:
+ self._tti_before = self._ttinfos[0]
+ else:
+ self._tti_before = None
+
+ # Set the "fallback" time zone
+ if tz_str is not None and tz_str != b"":
+ self._tz_after = _parse_tz_str(tz_str.decode())
+ else:
+ if not self._ttinfos and not _ttinfo_list:
+ raise ValueError("No time zone information found.")
+
+ if self._ttinfos:
+ self._tz_after = self._ttinfos[-1]
+ else:
+ self._tz_after = _ttinfo_list[-1]
+
+ # Determine if this is a "fixed offset" zone, meaning that the output
+ # of the utcoffset, dst and tzname functions does not depend on the
+ # specific datetime passed.
+ #
+ # We make three simplifying assumptions here:
+ #
+ # 1. If _tz_after is not a _ttinfo, it has transitions that might
+ # actually occur (it is possible to construct TZ strings that
+ # specify STD and DST but no transitions ever occur, such as
+ # AAA0BBB,0/0,J365/25).
+ # 2. If _ttinfo_list contains more than one _ttinfo object, the objects
+ # represent different offsets.
+ # 3. _ttinfo_list contains no unused _ttinfos (in which case an
+ # otherwise fixed-offset zone with extra _ttinfos defined may
+ # appear to *not* be a fixed offset zone).
+ #
+ # Violations to these assumptions would be fairly exotic, and exotic
+ # zones should almost certainly not be used with datetime.time (the
+ # only thing that would be affected by this).
+ if len(_ttinfo_list) > 1 or not isinstance(self._tz_after, _ttinfo):
+ self._fixed_offset = False
+ elif not _ttinfo_list:
+ self._fixed_offset = True
+ else:
+ self._fixed_offset = _ttinfo_list[0] == self._tz_after
+
+ @staticmethod
+ def _utcoff_to_dstoff(trans_idx, utcoffsets, isdsts):
+ # Now we must transform our ttis and abbrs into `_ttinfo` objects,
+ # but there is an issue: .dst() must return a timedelta with the
+ # difference between utcoffset() and the "standard" offset, but
+ # the "base offset" and "DST offset" are not encoded in the file;
+ # we can infer what they are from the isdst flag, but it is not
+ # sufficient to to just look at the last standard offset, because
+ # occasionally countries will shift both DST offset and base offset.
+
+ typecnt = len(isdsts)
+ dstoffs = [0] * typecnt # Provisionally assign all to 0.
+ dst_cnt = sum(isdsts)
+ dst_found = 0
+
+ for i in range(1, len(trans_idx)):
+ if dst_cnt == dst_found:
+ break
+
+ idx = trans_idx[i]
+
+ dst = isdsts[idx]
+
+ # We're only going to look at daylight saving time
+ if not dst:
+ continue
+
+ # Skip any offsets that have already been assigned
+ if dstoffs[idx] != 0:
+ continue
+
+ dstoff = 0
+ utcoff = utcoffsets[idx]
+
+ comp_idx = trans_idx[i - 1]
+
+ if not isdsts[comp_idx]:
+ dstoff = utcoff - utcoffsets[comp_idx]
+
+ if not dstoff and idx < (typecnt - 1):
+ comp_idx = trans_idx[i + 1]
+
+ # If the following transition is also DST and we couldn't
+ # find the DST offset by this point, we're going to have to
+ # skip it and hope this transition gets assigned later
+ if isdsts[comp_idx]:
+ continue
+
+ dstoff = utcoff - utcoffsets[comp_idx]
+
+ if dstoff:
+ dst_found += 1
+ dstoffs[idx] = dstoff
+ else:
+ # If we didn't find a valid value for a given index, we'll end up
+ # with dstoff = 0 for something where `isdst=1`. This is obviously
+ # wrong - one hour will be a much better guess than 0
+ for idx in range(typecnt):
+ if not dstoffs[idx] and isdsts[idx]:
+ dstoffs[idx] = 3600
+
+ return dstoffs
+
+ @staticmethod
+ def _ts_to_local(trans_idx, trans_list_utc, utcoffsets):
+ """Generate number of seconds since 1970 *in the local time*.
+
+ This is necessary to easily find the transition times in local time"""
+ if not trans_list_utc:
+ return [[], []]
+
+ # Start with the timestamps and modify in-place
+ trans_list_wall = [list(trans_list_utc), list(trans_list_utc)]
+
+ if len(utcoffsets) > 1:
+ offset_0 = utcoffsets[0]
+ offset_1 = utcoffsets[trans_idx[0]]
+ if offset_1 > offset_0:
+ offset_1, offset_0 = offset_0, offset_1
+ else:
+ offset_0 = offset_1 = utcoffsets[0]
+
+ trans_list_wall[0][0] += offset_0
+ trans_list_wall[1][0] += offset_1
+
+ for i in range(1, len(trans_idx)):
+ offset_0 = utcoffsets[trans_idx[i - 1]]
+ offset_1 = utcoffsets[trans_idx[i]]
+
+ if offset_1 > offset_0:
+ offset_1, offset_0 = offset_0, offset_1
+
+ trans_list_wall[0][i] += offset_0
+ trans_list_wall[1][i] += offset_1
+
+ return trans_list_wall
+
+
+class _ttinfo:
+ __slots__ = ["utcoff", "dstoff", "tzname"]
+
+ def __init__(self, utcoff, dstoff, tzname):
+ self.utcoff = utcoff
+ self.dstoff = dstoff
+ self.tzname = tzname
+
+ def __eq__(self, other):
+ return (
+ self.utcoff == other.utcoff
+ and self.dstoff == other.dstoff
+ and self.tzname == other.tzname
+ )
+
+ def __repr__(self): # pragma: nocover
+ return (
+ f"{self.__class__.__name__}"
+ + f"({self.utcoff}, {self.dstoff}, {self.tzname})"
+ )
+
+
+_NO_TTINFO = _ttinfo(None, None, None)
+
+
+class _TZStr:
+ __slots__ = (
+ "std",
+ "dst",
+ "start",
+ "end",
+ "get_trans_info",
+ "get_trans_info_fromutc",
+ "dst_diff",
+ )
+
+ def __init__(
+ self, std_abbr, std_offset, dst_abbr, dst_offset, start=None, end=None
+ ):
+ self.dst_diff = dst_offset - std_offset
+ std_offset = _load_timedelta(std_offset)
+ self.std = _ttinfo(
+ utcoff=std_offset, dstoff=_load_timedelta(0), tzname=std_abbr
+ )
+
+ self.start = start
+ self.end = end
+
+ dst_offset = _load_timedelta(dst_offset)
+ delta = _load_timedelta(self.dst_diff)
+ self.dst = _ttinfo(utcoff=dst_offset, dstoff=delta, tzname=dst_abbr)
+
+ # These are assertions because the constructor should only be called
+ # by functions that would fail before passing start or end
+ assert start is not None, "No transition start specified"
+ assert end is not None, "No transition end specified"
+
+ self.get_trans_info = self._get_trans_info
+ self.get_trans_info_fromutc = self._get_trans_info_fromutc
+
+ def transitions(self, year):
+ start = self.start.year_to_epoch(year)
+ end = self.end.year_to_epoch(year)
+ return start, end
+
+ def _get_trans_info(self, ts, year, fold):
+ """Get the information about the current transition - tti"""
+ start, end = self.transitions(year)
+
+ # With fold = 0, the period (denominated in local time) with the
+ # smaller offset starts at the end of the gap and ends at the end of
+ # the fold; with fold = 1, it runs from the start of the gap to the
+ # beginning of the fold.
+ #
+ # So in order to determine the DST boundaries we need to know both
+ # the fold and whether DST is positive or negative (rare), and it
+ # turns out that this boils down to fold XOR is_positive.
+ if fold == (self.dst_diff >= 0):
+ end -= self.dst_diff
+ else:
+ start += self.dst_diff
+
+ if start < end:
+ isdst = start <= ts < end
+ else:
+ isdst = not (end <= ts < start)
+
+ return self.dst if isdst else self.std
+
+ def _get_trans_info_fromutc(self, ts, year):
+ start, end = self.transitions(year)
+ start -= self.std.utcoff.total_seconds()
+ end -= self.dst.utcoff.total_seconds()
+
+ if start < end:
+ isdst = start <= ts < end
+ else:
+ isdst = not (end <= ts < start)
+
+ # For positive DST, the ambiguous period is one dst_diff after the end
+ # of DST; for negative DST, the ambiguous period is one dst_diff before
+ # the start of DST.
+ if self.dst_diff > 0:
+ ambig_start = end
+ ambig_end = end + self.dst_diff
+ else:
+ ambig_start = start
+ ambig_end = start - self.dst_diff
+
+ fold = ambig_start <= ts < ambig_end
+
+ return (self.dst if isdst else self.std, fold)
+
+
+def _post_epoch_days_before_year(year):
+ """Get the number of days between 1970-01-01 and YEAR-01-01"""
+ y = year - 1
+ return y * 365 + y // 4 - y // 100 + y // 400 - EPOCHORDINAL
+
+
+class _DayOffset:
+ __slots__ = ["d", "julian", "hour", "minute", "second"]
+
+ def __init__(self, d, julian, hour=2, minute=0, second=0):
+ if not (0 + julian) <= d <= 365:
+ min_day = 0 + julian
+ raise ValueError(f"d must be in [{min_day}, 365], not: {d}")
+
+ self.d = d
+ self.julian = julian
+ self.hour = hour
+ self.minute = minute
+ self.second = second
+
+ def year_to_epoch(self, year):
+ days_before_year = _post_epoch_days_before_year(year)
+
+ d = self.d
+ if self.julian and d >= 59 and calendar.isleap(year):
+ d += 1
+
+ epoch = (days_before_year + d) * 86400
+ epoch += self.hour * 3600 + self.minute * 60 + self.second
+
+ return epoch
+
+
+class _CalendarOffset:
+ __slots__ = ["m", "w", "d", "hour", "minute", "second"]
+
+ _DAYS_BEFORE_MONTH = (
+ -1,
+ 0,
+ 31,
+ 59,
+ 90,
+ 120,
+ 151,
+ 181,
+ 212,
+ 243,
+ 273,
+ 304,
+ 334,
+ )
+
+ def __init__(self, m, w, d, hour=2, minute=0, second=0):
+ if not 0 < m <= 12:
+ raise ValueError("m must be in (0, 12]")
+
+ if not 0 < w <= 5:
+ raise ValueError("w must be in (0, 5]")
+
+ if not 0 <= d <= 6:
+ raise ValueError("d must be in [0, 6]")
+
+ self.m = m
+ self.w = w
+ self.d = d
+ self.hour = hour
+ self.minute = minute
+ self.second = second
+
+ @classmethod
+ def _ymd2ord(cls, year, month, day):
+ return (
+ _post_epoch_days_before_year(year)
+ + cls._DAYS_BEFORE_MONTH[month]
+ + (month > 2 and calendar.isleap(year))
+ + day
+ )
+
+ # TODO: These are not actually epoch dates as they are expressed in local time
+ def year_to_epoch(self, year):
+ """Calculates the datetime of the occurrence from the year"""
+ # We know year and month, we need to convert w, d into day of month
+ #
+ # Week 1 is the first week in which day `d` (where 0 = Sunday) appears.
+ # Week 5 represents the last occurrence of day `d`, so we need to know
+ # the range of the month.
+ first_day, days_in_month = calendar.monthrange(year, self.m)
+
+ # This equation seems magical, so I'll break it down:
+ # 1. calendar says 0 = Monday, POSIX says 0 = Sunday
+ # so we need first_day + 1 to get 1 = Monday -> 7 = Sunday,
+ # which is still equivalent because this math is mod 7
+ # 2. Get first day - desired day mod 7: -1 % 7 = 6, so we don't need
+ # to do anything to adjust negative numbers.
+ # 3. Add 1 because month days are a 1-based index.
+ month_day = (self.d - (first_day + 1)) % 7 + 1
+
+ # Now use a 0-based index version of `w` to calculate the w-th
+ # occurrence of `d`
+ month_day += (self.w - 1) * 7
+
+ # month_day will only be > days_in_month if w was 5, and `w` means
+ # "last occurrence of `d`", so now we just check if we over-shot the
+ # end of the month and if so knock off 1 week.
+ if month_day > days_in_month:
+ month_day -= 7
+
+ ordinal = self._ymd2ord(year, self.m, month_day)
+ epoch = ordinal * 86400
+ epoch += self.hour * 3600 + self.minute * 60 + self.second
+ return epoch
+
+
+def _parse_tz_str(tz_str):
+ # The tz string has the format:
+ #
+ # std[offset[dst[offset],start[/time],end[/time]]]
+ #
+ # std and dst must be 3 or more characters long and must not contain
+ # a leading colon, embedded digits, commas, nor a plus or minus signs;
+ # The spaces between "std" and "offset" are only for display and are
+ # not actually present in the string.
+ #
+ # The format of the offset is ``[+|-]hh[:mm[:ss]]``
+
+ offset_str, *start_end_str = tz_str.split(",", 1)
+
+ # fmt: off
+ parser_re = re.compile(
+ r"(?P<std>[^<0-9:.+-]+|<[a-zA-Z0-9+\-]+>)" +
+ r"((?P<stdoff>[+-]?\d{1,2}(:\d{2}(:\d{2})?)?)" +
+ r"((?P<dst>[^0-9:.+-]+|<[a-zA-Z0-9+\-]+>)" +
+ r"((?P<dstoff>[+-]?\d{1,2}(:\d{2}(:\d{2})?)?))?" +
+ r")?" + # dst
+ r")?$" # stdoff
+ )
+ # fmt: on
+
+ m = parser_re.match(offset_str)
+
+ if m is None:
+ raise ValueError(f"{tz_str} is not a valid TZ string")
+
+ std_abbr = m.group("std")
+ dst_abbr = m.group("dst")
+ dst_offset = None
+
+ std_abbr = std_abbr.strip("<>")
+
+ if dst_abbr:
+ dst_abbr = dst_abbr.strip("<>")
+
+ if std_offset := m.group("stdoff"):
+ try:
+ std_offset = _parse_tz_delta(std_offset)
+ except ValueError as e:
+ raise ValueError(f"Invalid STD offset in {tz_str}") from e
+ else:
+ std_offset = 0
+
+ if dst_abbr is not None:
+ if dst_offset := m.group("dstoff"):
+ try:
+ dst_offset = _parse_tz_delta(dst_offset)
+ except ValueError as e:
+ raise ValueError(f"Invalid DST offset in {tz_str}") from e
+ else:
+ dst_offset = std_offset + 3600
+
+ if not start_end_str:
+ raise ValueError(f"Missing transition rules: {tz_str}")
+
+ start_end_strs = start_end_str[0].split(",", 1)
+ try:
+ start, end = (_parse_dst_start_end(x) for x in start_end_strs)
+ except ValueError as e:
+ raise ValueError(f"Invalid TZ string: {tz_str}") from e
+
+ return _TZStr(std_abbr, std_offset, dst_abbr, dst_offset, start, end)
+ elif start_end_str:
+ raise ValueError(f"Transition rule present without DST: {tz_str}")
+ else:
+ # This is a static ttinfo, don't return _TZStr
+ return _ttinfo(
+ _load_timedelta(std_offset), _load_timedelta(0), std_abbr
+ )
+
+
+def _parse_dst_start_end(dststr):
+ date, *time = dststr.split("/")
+ if date[0] == "M":
+ n_is_julian = False
+ m = re.match(r"M(\d{1,2})\.(\d).(\d)$", date)
+ if m is None:
+ raise ValueError(f"Invalid dst start/end date: {dststr}")
+ date_offset = tuple(map(int, m.groups()))
+ offset = _CalendarOffset(*date_offset)
+ else:
+ if date[0] == "J":
+ n_is_julian = True
+ date = date[1:]
+ else:
+ n_is_julian = False
+
+ doy = int(date)
+ offset = _DayOffset(doy, n_is_julian)
+
+ if time:
+ time_components = list(map(int, time[0].split(":")))
+ n_components = len(time_components)
+ if n_components < 3:
+ time_components.extend([0] * (3 - n_components))
+ offset.hour, offset.minute, offset.second = time_components
+
+ return offset
+
+
+def _parse_tz_delta(tz_delta):
+ match = re.match(
+ r"(?P<sign>[+-])?(?P<h>\d{1,2})(:(?P<m>\d{2})(:(?P<s>\d{2}))?)?",
+ tz_delta,
+ )
+ # Anything passed to this function should already have hit an equivalent
+ # regular expression to find the section to parse.
+ assert match is not None, tz_delta
+
+ h, m, s = (
+ int(v) if v is not None else 0
+ for v in map(match.group, ("h", "m", "s"))
+ )
+
+ total = h * 3600 + m * 60 + s
+
+ if not -86400 < total < 86400:
+ raise ValueError(
+ f"Offset must be strictly between -24h and +24h: {tz_delta}"
+ )
+
+ # Yes, +5 maps to an offset of -5h
+ if match.group("sign") != "-":
+ total *= -1
+
+ return total
diff --git a/contrib/tools/python3/src/Modules/_abc.c b/contrib/tools/python3/src/Modules/_abc.c
index e9e27881ce..709b52ff96 100644
--- a/contrib/tools/python3/src/Modules/_abc.c
+++ b/contrib/tools/python3/src/Modules/_abc.c
@@ -19,19 +19,19 @@ _Py_IDENTIFIER(_abc_impl);
_Py_IDENTIFIER(__subclasscheck__);
_Py_IDENTIFIER(__subclasshook__);
-typedef struct {
- PyTypeObject *_abc_data_type;
- unsigned long long abc_invalidation_counter;
-} _abcmodule_state;
-
-static inline _abcmodule_state*
-get_abc_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_abcmodule_state *)state;
-}
-
+typedef struct {
+ PyTypeObject *_abc_data_type;
+ unsigned long long abc_invalidation_counter;
+} _abcmodule_state;
+
+static inline _abcmodule_state*
+get_abc_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_abcmodule_state *)state;
+}
+
/* This object stores internal state for ABCs.
Note that we can use normal sets for caches,
since they are never iterated over. */
@@ -43,84 +43,84 @@ typedef struct {
unsigned long long _abc_negative_cache_version;
} _abc_data;
-static int
-abc_data_traverse(_abc_data *self, visitproc visit, void *arg)
-{
- Py_VISIT(Py_TYPE(self));
- Py_VISIT(self->_abc_registry);
- Py_VISIT(self->_abc_cache);
- Py_VISIT(self->_abc_negative_cache);
- return 0;
-}
-
-static int
-abc_data_clear(_abc_data *self)
-{
- Py_CLEAR(self->_abc_registry);
- Py_CLEAR(self->_abc_cache);
- Py_CLEAR(self->_abc_negative_cache);
- return 0;
-}
-
+static int
+abc_data_traverse(_abc_data *self, visitproc visit, void *arg)
+{
+ Py_VISIT(Py_TYPE(self));
+ Py_VISIT(self->_abc_registry);
+ Py_VISIT(self->_abc_cache);
+ Py_VISIT(self->_abc_negative_cache);
+ return 0;
+}
+
+static int
+abc_data_clear(_abc_data *self)
+{
+ Py_CLEAR(self->_abc_registry);
+ Py_CLEAR(self->_abc_cache);
+ Py_CLEAR(self->_abc_negative_cache);
+ return 0;
+}
+
static void
abc_data_dealloc(_abc_data *self)
{
- PyTypeObject *tp = Py_TYPE(self);
- (void)abc_data_clear(self);
- tp->tp_free(self);
- Py_DECREF(tp);
+ PyTypeObject *tp = Py_TYPE(self);
+ (void)abc_data_clear(self);
+ tp->tp_free(self);
+ Py_DECREF(tp);
}
static PyObject *
abc_data_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
_abc_data *self = (_abc_data *) type->tp_alloc(type, 0);
- _abcmodule_state *state = NULL;
+ _abcmodule_state *state = NULL;
if (self == NULL) {
return NULL;
}
- state = PyType_GetModuleState(type);
- if (state == NULL) {
- Py_DECREF(self);
- return NULL;
- }
-
+ state = PyType_GetModuleState(type);
+ if (state == NULL) {
+ Py_DECREF(self);
+ return NULL;
+ }
+
self->_abc_registry = NULL;
self->_abc_cache = NULL;
self->_abc_negative_cache = NULL;
- self->_abc_negative_cache_version = state->abc_invalidation_counter;
+ self->_abc_negative_cache_version = state->abc_invalidation_counter;
return (PyObject *) self;
}
PyDoc_STRVAR(abc_data_doc,
"Internal state held by ABC machinery.");
-static PyType_Slot _abc_data_type_spec_slots[] = {
- {Py_tp_doc, (void *)abc_data_doc},
- {Py_tp_new, abc_data_new},
- {Py_tp_dealloc, abc_data_dealloc},
- {Py_tp_traverse, abc_data_traverse},
- {Py_tp_clear, abc_data_clear},
- {0, 0}
+static PyType_Slot _abc_data_type_spec_slots[] = {
+ {Py_tp_doc, (void *)abc_data_doc},
+ {Py_tp_new, abc_data_new},
+ {Py_tp_dealloc, abc_data_dealloc},
+ {Py_tp_traverse, abc_data_traverse},
+ {Py_tp_clear, abc_data_clear},
+ {0, 0}
+};
+
+static PyType_Spec _abc_data_type_spec = {
+ .name = "_abc._abc_data",
+ .basicsize = sizeof(_abc_data),
+ .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ .slots = _abc_data_type_spec_slots,
};
-static PyType_Spec _abc_data_type_spec = {
- .name = "_abc._abc_data",
- .basicsize = sizeof(_abc_data),
- .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- .slots = _abc_data_type_spec_slots,
-};
-
static _abc_data *
-_get_impl(PyObject *module, PyObject *self)
+_get_impl(PyObject *module, PyObject *self)
{
- _abcmodule_state *state = get_abc_state(module);
+ _abcmodule_state *state = get_abc_state(module);
PyObject *impl = _PyObject_GetAttrId(self, &PyId__abc_impl);
if (impl == NULL) {
return NULL;
}
- if (!Py_IS_TYPE(impl, state->_abc_data_type)) {
+ if (!Py_IS_TYPE(impl, state->_abc_data_type)) {
PyErr_SetString(PyExc_TypeError, "_abc_impl is set to a wrong type");
Py_DECREF(impl);
return NULL;
@@ -217,7 +217,7 @@ static PyObject *
_abc__reset_registry(PyObject *module, PyObject *self)
/*[clinic end generated code: output=92d591a43566cc10 input=12a0b7eb339ac35c]*/
{
- _abc_data *impl = _get_impl(module, self);
+ _abc_data *impl = _get_impl(module, self);
if (impl == NULL) {
return NULL;
}
@@ -244,7 +244,7 @@ static PyObject *
_abc__reset_caches(PyObject *module, PyObject *self)
/*[clinic end generated code: output=f296f0d5c513f80c input=c0ac616fd8acfb6f]*/
{
- _abc_data *impl = _get_impl(module, self);
+ _abc_data *impl = _get_impl(module, self);
if (impl == NULL) {
return NULL;
}
@@ -279,7 +279,7 @@ static PyObject *
_abc__get_dump(PyObject *module, PyObject *self)
/*[clinic end generated code: output=9d9569a8e2c1c443 input=2c5deb1bfe9e3c79]*/
{
- _abc_data *impl = _get_impl(module, self);
+ _abc_data *impl = _get_impl(module, self);
if (impl == NULL) {
return NULL;
}
@@ -429,14 +429,14 @@ static PyObject *
_abc__abc_init(PyObject *module, PyObject *self)
/*[clinic end generated code: output=594757375714cda1 input=8d7fe470ff77f029]*/
{
- _abcmodule_state *state = get_abc_state(module);
+ _abcmodule_state *state = get_abc_state(module);
PyObject *data;
if (compute_abstract_methods(self) < 0) {
return NULL;
}
/* Set up inheritance registry. */
- data = abc_data_new(state->_abc_data_type, NULL, NULL);
+ data = abc_data_new(state->_abc_data_type, NULL, NULL);
if (data == NULL) {
return NULL;
}
@@ -485,7 +485,7 @@ _abc__abc_register_impl(PyObject *module, PyObject *self, PyObject *subclass)
if (result < 0) {
return NULL;
}
- _abc_data *impl = _get_impl(module, self);
+ _abc_data *impl = _get_impl(module, self);
if (impl == NULL) {
return NULL;
}
@@ -496,7 +496,7 @@ _abc__abc_register_impl(PyObject *module, PyObject *self, PyObject *subclass)
Py_DECREF(impl);
/* Invalidate negative cache */
- get_abc_state(module)->abc_invalidation_counter++;
+ get_abc_state(module)->abc_invalidation_counter++;
Py_INCREF(subclass);
return subclass;
@@ -519,7 +519,7 @@ _abc__abc_instancecheck_impl(PyObject *module, PyObject *self,
/*[clinic end generated code: output=b8b5148f63b6b56f input=a4f4525679261084]*/
{
PyObject *subtype, *result = NULL, *subclass = NULL;
- _abc_data *impl = _get_impl(module, self);
+ _abc_data *impl = _get_impl(module, self);
if (impl == NULL) {
return NULL;
}
@@ -541,7 +541,7 @@ _abc__abc_instancecheck_impl(PyObject *module, PyObject *self,
}
subtype = (PyObject *)Py_TYPE(instance);
if (subtype == subclass) {
- if (impl->_abc_negative_cache_version == get_abc_state(module)->abc_invalidation_counter) {
+ if (impl->_abc_negative_cache_version == get_abc_state(module)->abc_invalidation_counter) {
incache = _in_weak_set(impl->_abc_negative_cache, subclass);
if (incache < 0) {
goto end;
@@ -553,12 +553,12 @@ _abc__abc_instancecheck_impl(PyObject *module, PyObject *self,
}
}
/* Fall back to the subclass check. */
- result = _PyObject_CallMethodIdOneArg(self, &PyId___subclasscheck__,
- subclass);
+ result = _PyObject_CallMethodIdOneArg(self, &PyId___subclasscheck__,
+ subclass);
goto end;
}
- result = _PyObject_CallMethodIdOneArg(self, &PyId___subclasscheck__,
- subclass);
+ result = _PyObject_CallMethodIdOneArg(self, &PyId___subclasscheck__,
+ subclass);
if (result == NULL) {
goto end;
}
@@ -570,8 +570,8 @@ _abc__abc_instancecheck_impl(PyObject *module, PyObject *self,
break;
case 0:
Py_DECREF(result);
- result = _PyObject_CallMethodIdOneArg(self, &PyId___subclasscheck__,
- subtype);
+ result = _PyObject_CallMethodIdOneArg(self, &PyId___subclasscheck__,
+ subtype);
break;
case 1: // Nothing to do.
break;
@@ -586,7 +586,7 @@ end:
}
-// Return -1 when exception occurred.
+// Return -1 when exception occurred.
// Return 1 when result is set.
// Return 0 otherwise.
static int subclasscheck_check_registry(_abc_data *impl, PyObject *subclass,
@@ -613,10 +613,10 @@ _abc__abc_subclasscheck_impl(PyObject *module, PyObject *self,
}
PyObject *ok, *subclasses = NULL, *result = NULL;
- _abcmodule_state *state = NULL;
+ _abcmodule_state *state = NULL;
Py_ssize_t pos;
int incache;
- _abc_data *impl = _get_impl(module, self);
+ _abc_data *impl = _get_impl(module, self);
if (impl == NULL) {
return NULL;
}
@@ -631,16 +631,16 @@ _abc__abc_subclasscheck_impl(PyObject *module, PyObject *self,
goto end;
}
- state = get_abc_state(module);
+ state = get_abc_state(module);
/* 2. Check negative cache; may have to invalidate. */
- if (impl->_abc_negative_cache_version < state->abc_invalidation_counter) {
+ if (impl->_abc_negative_cache_version < state->abc_invalidation_counter) {
/* Invalidate the negative cache. */
if (impl->_abc_negative_cache != NULL &&
PySet_Clear(impl->_abc_negative_cache) < 0)
{
goto end;
}
- impl->_abc_negative_cache_version = state->abc_invalidation_counter;
+ impl->_abc_negative_cache_version = state->abc_invalidation_counter;
}
else {
incache = _in_weak_set(impl->_abc_negative_cache, subclass);
@@ -654,8 +654,8 @@ _abc__abc_subclasscheck_impl(PyObject *module, PyObject *self,
}
/* 3. Check the subclass hook. */
- ok = _PyObject_CallMethodIdOneArg((PyObject *)self, &PyId___subclasshook__,
- subclass);
+ ok = _PyObject_CallMethodIdOneArg((PyObject *)self, &PyId___subclasshook__,
+ subclass);
if (ok == NULL) {
goto end;
}
@@ -700,7 +700,7 @@ _abc__abc_subclasscheck_impl(PyObject *module, PyObject *self,
/* 5. Check if it's a subclass of a registered class (recursive). */
if (subclasscheck_check_registry(impl, subclass, &result)) {
- // Exception occurred or result is set.
+ // Exception occurred or result is set.
goto end;
}
@@ -833,11 +833,11 @@ static PyObject *
_abc_get_cache_token_impl(PyObject *module)
/*[clinic end generated code: output=c7d87841e033dacc input=70413d1c423ad9f9]*/
{
- _abcmodule_state *state = get_abc_state(module);
- return PyLong_FromUnsignedLongLong(state->abc_invalidation_counter);
+ _abcmodule_state *state = get_abc_state(module);
+ return PyLong_FromUnsignedLongLong(state->abc_invalidation_counter);
}
-static struct PyMethodDef _abcmodule_methods[] = {
+static struct PyMethodDef _abcmodule_methods[] = {
_ABC_GET_CACHE_TOKEN_METHODDEF
_ABC__ABC_INIT_METHODDEF
_ABC__RESET_REGISTRY_METHODDEF
@@ -849,60 +849,60 @@ static struct PyMethodDef _abcmodule_methods[] = {
{NULL, NULL} /* sentinel */
};
-static int
-_abcmodule_exec(PyObject *module)
-{
- _abcmodule_state *state = get_abc_state(module);
- state->abc_invalidation_counter = 0;
- state->_abc_data_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, &_abc_data_type_spec, NULL);
- if (state->_abc_data_type == NULL) {
- return -1;
- }
-
- return 0;
-}
-
-static int
-_abcmodule_traverse(PyObject *module, visitproc visit, void *arg)
-{
- _abcmodule_state *state = get_abc_state(module);
- Py_VISIT(state->_abc_data_type);
- return 0;
-}
-
-static int
-_abcmodule_clear(PyObject *module)
-{
- _abcmodule_state *state = get_abc_state(module);
- Py_CLEAR(state->_abc_data_type);
- return 0;
-}
-
-static void
-_abcmodule_free(void *module)
-{
- _abcmodule_clear((PyObject *)module);
-}
-
-static PyModuleDef_Slot _abcmodule_slots[] = {
- {Py_mod_exec, _abcmodule_exec},
- {0, NULL}
-};
-
+static int
+_abcmodule_exec(PyObject *module)
+{
+ _abcmodule_state *state = get_abc_state(module);
+ state->abc_invalidation_counter = 0;
+ state->_abc_data_type = (PyTypeObject *)PyType_FromModuleAndSpec(module, &_abc_data_type_spec, NULL);
+ if (state->_abc_data_type == NULL) {
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+_abcmodule_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ _abcmodule_state *state = get_abc_state(module);
+ Py_VISIT(state->_abc_data_type);
+ return 0;
+}
+
+static int
+_abcmodule_clear(PyObject *module)
+{
+ _abcmodule_state *state = get_abc_state(module);
+ Py_CLEAR(state->_abc_data_type);
+ return 0;
+}
+
+static void
+_abcmodule_free(void *module)
+{
+ _abcmodule_clear((PyObject *)module);
+}
+
+static PyModuleDef_Slot _abcmodule_slots[] = {
+ {Py_mod_exec, _abcmodule_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef _abcmodule = {
PyModuleDef_HEAD_INIT,
"_abc",
_abc__doc__,
- sizeof(_abcmodule_state),
- _abcmodule_methods,
- _abcmodule_slots,
- _abcmodule_traverse,
- _abcmodule_clear,
- _abcmodule_free,
+ sizeof(_abcmodule_state),
+ _abcmodule_methods,
+ _abcmodule_slots,
+ _abcmodule_traverse,
+ _abcmodule_clear,
+ _abcmodule_free,
};
PyMODINIT_FUNC
PyInit__abc(void)
{
- return PyModuleDef_Init(&_abcmodule);
+ return PyModuleDef_Init(&_abcmodule);
}
diff --git a/contrib/tools/python3/src/Modules/_asynciomodule.c b/contrib/tools/python3/src/Modules/_asynciomodule.c
index c18fe31eef..a1421cf5db 100644
--- a/contrib/tools/python3/src/Modules/_asynciomodule.c
+++ b/contrib/tools/python3/src/Modules/_asynciomodule.c
@@ -1,6 +1,6 @@
#include "Python.h"
-#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
-#include <stddef.h> // offsetof()
+#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
+#include <stddef.h> // offsetof()
/*[clinic input]
@@ -11,7 +11,7 @@ module _asyncio
/* identifiers used from some functions */
_Py_IDENTIFIER(__asyncio_running_event_loop__);
-_Py_IDENTIFIER(_asyncio_future_blocking);
+_Py_IDENTIFIER(_asyncio_future_blocking);
_Py_IDENTIFIER(add_done_callback);
_Py_IDENTIFIER(call_soon);
_Py_IDENTIFIER(cancel);
@@ -32,13 +32,13 @@ static PyObject *asyncio_task_repr_info_func;
static PyObject *asyncio_InvalidStateError;
static PyObject *asyncio_CancelledError;
static PyObject *context_kwname;
-static int module_initialized;
+static int module_initialized;
static PyObject *cached_running_holder;
static volatile uint64_t cached_running_holder_tsid;
-/* Counter for autogenerated Task names */
-static uint64_t task_name_counter = 0;
+/* Counter for autogenerated Task names */
+static uint64_t task_name_counter = 0;
/* WeakSet containing all alive tasks. */
static PyObject *all_tasks;
@@ -66,13 +66,13 @@ typedef enum {
PyObject *prefix##_exception; \
PyObject *prefix##_result; \
PyObject *prefix##_source_tb; \
- PyObject *prefix##_cancel_msg; \
+ PyObject *prefix##_cancel_msg; \
fut_state prefix##_state; \
int prefix##_log_tb; \
int prefix##_blocking; \
PyObject *dict; \
- PyObject *prefix##_weakreflist; \
- _PyErr_StackItem prefix##_cancelled_exc_state;
+ PyObject *prefix##_weakreflist; \
+ _PyErr_StackItem prefix##_cancelled_exc_state;
typedef struct {
FutureObj_HEAD(fut)
@@ -82,7 +82,7 @@ typedef struct {
FutureObj_HEAD(task)
PyObject *task_fut_waiter;
PyObject *task_coro;
- PyObject *task_name;
+ PyObject *task_name;
PyObject *task_context;
int task_must_cancel;
int task_log_destroy_pending;
@@ -113,8 +113,8 @@ static PyTypeObject TaskType;
static PyTypeObject PyRunningLoopHolder_Type;
-#define Future_CheckExact(obj) Py_IS_TYPE(obj, &FutureType)
-#define Task_CheckExact(obj) Py_IS_TYPE(obj, &TaskType)
+#define Future_CheckExact(obj) Py_IS_TYPE(obj, &FutureType)
+#define Task_CheckExact(obj) Py_IS_TYPE(obj, &TaskType)
#define Future_Check(obj) PyObject_TypeCheck(obj, &FutureType)
#define Task_Check(obj) PyObject_TypeCheck(obj, &TaskType)
@@ -143,7 +143,7 @@ _is_coroutine(PyObject *coro)
Do this check after 'future_init()'; in case we need to raise
an error, __del__ needs a properly initialized object.
*/
- PyObject *res = PyObject_CallOneArg(asyncio_iscoroutine_func, coro);
+ PyObject *res = PyObject_CallOneArg(asyncio_iscoroutine_func, coro);
if (res == NULL) {
return -1;
}
@@ -217,7 +217,7 @@ get_future_loop(PyObject *fut)
return NULL;
}
if (getloop != NULL) {
- PyObject *res = PyObject_CallNoArgs(getloop);
+ PyObject *res = PyObject_CallNoArgs(getloop);
Py_DECREF(getloop);
return res;
}
@@ -232,19 +232,19 @@ get_running_loop(PyObject **loop)
PyObject *rl;
PyThreadState *ts = PyThreadState_Get();
- uint64_t ts_id = PyThreadState_GetID(ts);
- if (ts_id == cached_running_holder_tsid && cached_running_holder != NULL) {
+ uint64_t ts_id = PyThreadState_GetID(ts);
+ if (ts_id == cached_running_holder_tsid && cached_running_holder != NULL) {
// Fast path, check the cache.
rl = cached_running_holder; // borrowed
}
else {
- PyObject *ts_dict = _PyThreadState_GetDict(ts); // borrowed
- if (ts_dict == NULL) {
+ PyObject *ts_dict = _PyThreadState_GetDict(ts); // borrowed
+ if (ts_dict == NULL) {
goto not_found;
}
rl = _PyDict_GetItemIdWithError(
- ts_dict, &PyId___asyncio_running_event_loop__); // borrowed
+ ts_dict, &PyId___asyncio_running_event_loop__); // borrowed
if (rl == NULL) {
if (PyErr_Occurred()) {
goto error;
@@ -255,10 +255,10 @@ get_running_loop(PyObject **loop)
}
cached_running_holder = rl; // borrowed
- cached_running_holder_tsid = ts_id;
+ cached_running_holder_tsid = ts_id;
}
- assert(Py_IS_TYPE(rl, &PyRunningLoopHolder_Type));
+ assert(Py_IS_TYPE(rl, &PyRunningLoopHolder_Type));
PyObject *running_loop = ((PyRunningLoopHolder *)rl)->rl_loop;
if (running_loop == Py_None) {
@@ -291,13 +291,13 @@ error:
static int
set_running_loop(PyObject *loop)
{
- PyObject *ts_dict = NULL;
-
- PyThreadState *tstate = PyThreadState_Get();
- if (tstate != NULL) {
- ts_dict = _PyThreadState_GetDict(tstate); // borrowed
- }
-
+ PyObject *ts_dict = NULL;
+
+ PyThreadState *tstate = PyThreadState_Get();
+ if (tstate != NULL) {
+ ts_dict = _PyThreadState_GetDict(tstate); // borrowed
+ }
+
if (ts_dict == NULL) {
PyErr_SetString(
PyExc_RuntimeError, "thread-local storage is not available");
@@ -317,9 +317,9 @@ set_running_loop(PyObject *loop)
}
Py_DECREF(rl);
- cached_running_holder = (PyObject *)rl;
- cached_running_holder_tsid = PyThreadState_GetID(tstate);
-
+ cached_running_holder = (PyObject *)rl;
+ cached_running_holder_tsid = PyThreadState_GetID(tstate);
+
return 0;
}
@@ -337,12 +337,12 @@ get_event_loop(void)
return loop;
}
- policy = PyObject_CallNoArgs(asyncio_get_event_loop_policy);
+ policy = PyObject_CallNoArgs(asyncio_get_event_loop_policy);
if (policy == NULL) {
return NULL;
}
- loop = _PyObject_CallMethodIdNoArgs(policy, &PyId_get_event_loop);
+ loop = _PyObject_CallMethodIdNoArgs(policy, &PyId_get_event_loop);
Py_DECREF(policy);
return loop;
}
@@ -376,7 +376,7 @@ call_soon(PyObject *loop, PyObject *func, PyObject *arg, PyObject *ctx)
}
stack[nargs] = (PyObject *)ctx;
- handle = PyObject_Vectorcall(callable, stack, nargs, context_kwname);
+ handle = PyObject_Vectorcall(callable, stack, nargs, context_kwname);
Py_DECREF(callable);
}
@@ -487,8 +487,8 @@ future_init(FutureObj *fut, PyObject *loop)
Py_CLEAR(fut->fut_result);
Py_CLEAR(fut->fut_exception);
Py_CLEAR(fut->fut_source_tb);
- Py_CLEAR(fut->fut_cancel_msg);
- _PyErr_ClearExcState(&fut->fut_cancelled_exc_state);
+ Py_CLEAR(fut->fut_cancel_msg);
+ _PyErr_ClearExcState(&fut->fut_cancelled_exc_state);
fut->fut_state = STATE_PENDING;
fut->fut_log_tb = 0;
@@ -505,7 +505,7 @@ future_init(FutureObj *fut, PyObject *loop)
}
fut->fut_loop = loop;
- res = _PyObject_CallMethodIdNoArgs(fut->fut_loop, &PyId_get_debug);
+ res = _PyObject_CallMethodIdNoArgs(fut->fut_loop, &PyId_get_debug);
if (res == NULL) {
return -1;
}
@@ -521,7 +521,7 @@ future_init(FutureObj *fut, PyObject *loop)
method, which is called during the interpreter shutdown and the
traceback module is already unloaded.
*/
- fut->fut_source_tb = PyObject_CallNoArgs(traceback_extract_stack);
+ fut->fut_source_tb = PyObject_CallNoArgs(traceback_extract_stack);
if (fut->fut_source_tb == NULL) {
return -1;
}
@@ -564,7 +564,7 @@ future_set_exception(FutureObj *fut, PyObject *exc)
}
if (PyExceptionClass_Check(exc)) {
- exc_val = PyObject_CallNoArgs(exc);
+ exc_val = PyObject_CallNoArgs(exc);
if (exc_val == NULL) {
return NULL;
}
@@ -583,7 +583,7 @@ future_set_exception(FutureObj *fut, PyObject *exc)
PyErr_SetString(PyExc_TypeError, "invalid exception object");
return NULL;
}
- if (Py_IS_TYPE(exc_val, (PyTypeObject *)PyExc_StopIteration)) {
+ if (Py_IS_TYPE(exc_val, (PyTypeObject *)PyExc_StopIteration)) {
Py_DECREF(exc_val);
PyErr_SetString(PyExc_TypeError,
"StopIteration interacts badly with generators "
@@ -603,33 +603,33 @@ future_set_exception(FutureObj *fut, PyObject *exc)
Py_RETURN_NONE;
}
-static PyObject *
-create_cancelled_error(PyObject *msg)
-{
- PyObject *exc;
- if (msg == NULL || msg == Py_None) {
- exc = PyObject_CallNoArgs(asyncio_CancelledError);
- } else {
- exc = PyObject_CallOneArg(asyncio_CancelledError, msg);
- }
- return exc;
-}
-
-static void
-future_set_cancelled_error(FutureObj *fut)
-{
- PyObject *exc = create_cancelled_error(fut->fut_cancel_msg);
- PyErr_SetObject(asyncio_CancelledError, exc);
- Py_DECREF(exc);
-
- _PyErr_ChainStackItem(&fut->fut_cancelled_exc_state);
-}
-
+static PyObject *
+create_cancelled_error(PyObject *msg)
+{
+ PyObject *exc;
+ if (msg == NULL || msg == Py_None) {
+ exc = PyObject_CallNoArgs(asyncio_CancelledError);
+ } else {
+ exc = PyObject_CallOneArg(asyncio_CancelledError, msg);
+ }
+ return exc;
+}
+
+static void
+future_set_cancelled_error(FutureObj *fut)
+{
+ PyObject *exc = create_cancelled_error(fut->fut_cancel_msg);
+ PyErr_SetObject(asyncio_CancelledError, exc);
+ Py_DECREF(exc);
+
+ _PyErr_ChainStackItem(&fut->fut_cancelled_exc_state);
+}
+
static int
future_get_result(FutureObj *fut, PyObject **result)
{
if (fut->fut_state == STATE_CANCELLED) {
- future_set_cancelled_error(fut);
+ future_set_cancelled_error(fut);
return -1;
}
@@ -726,7 +726,7 @@ future_add_done_callback(FutureObj *fut, PyObject *arg, PyObject *ctx)
}
static PyObject *
-future_cancel(FutureObj *fut, PyObject *msg)
+future_cancel(FutureObj *fut, PyObject *msg)
{
fut->fut_log_tb = 0;
@@ -735,9 +735,9 @@ future_cancel(FutureObj *fut, PyObject *msg)
}
fut->fut_state = STATE_CANCELLED;
- Py_XINCREF(msg);
- Py_XSETREF(fut->fut_cancel_msg, msg);
-
+ Py_XINCREF(msg);
+ Py_XSETREF(fut->fut_cancel_msg, msg);
+
if (future_schedule_callbacks(fut) == -1) {
return NULL;
}
@@ -783,8 +783,8 @@ FutureObj_clear(FutureObj *fut)
Py_CLEAR(fut->fut_result);
Py_CLEAR(fut->fut_exception);
Py_CLEAR(fut->fut_source_tb);
- Py_CLEAR(fut->fut_cancel_msg);
- _PyErr_ClearExcState(&fut->fut_cancelled_exc_state);
+ Py_CLEAR(fut->fut_cancel_msg);
+ _PyErr_ClearExcState(&fut->fut_cancelled_exc_state);
Py_CLEAR(fut->dict);
return 0;
}
@@ -799,14 +799,14 @@ FutureObj_traverse(FutureObj *fut, visitproc visit, void *arg)
Py_VISIT(fut->fut_result);
Py_VISIT(fut->fut_exception);
Py_VISIT(fut->fut_source_tb);
- Py_VISIT(fut->fut_cancel_msg);
+ Py_VISIT(fut->fut_cancel_msg);
Py_VISIT(fut->dict);
-
- _PyErr_StackItem *exc_state = &fut->fut_cancelled_exc_state;
- Py_VISIT(exc_state->exc_type);
- Py_VISIT(exc_state->exc_value);
- Py_VISIT(exc_state->exc_traceback);
-
+
+ _PyErr_StackItem *exc_state = &fut->fut_cancelled_exc_state;
+ Py_VISIT(exc_state->exc_type);
+ Py_VISIT(exc_state->exc_value);
+ Py_VISIT(exc_state->exc_traceback);
+
return 0;
}
@@ -871,7 +871,7 @@ _asyncio_Future_exception_impl(FutureObj *self)
}
if (self->fut_state == STATE_CANCELLED) {
- future_set_cancelled_error(self);
+ future_set_cancelled_error(self);
return NULL;
}
@@ -983,7 +983,7 @@ _asyncio_Future_remove_done_callback(FutureObj *self, PyObject *fn)
ENSURE_FUTURE_ALIVE(self)
if (self->fut_callback0 != NULL) {
- int cmp = PyObject_RichCompareBool(self->fut_callback0, fn, Py_EQ);
+ int cmp = PyObject_RichCompareBool(self->fut_callback0, fn, Py_EQ);
if (cmp == -1) {
return NULL;
}
@@ -1008,7 +1008,7 @@ _asyncio_Future_remove_done_callback(FutureObj *self, PyObject *fn)
if (len == 1) {
PyObject *cb_tup = PyList_GET_ITEM(self->fut_callbacks, 0);
int cmp = PyObject_RichCompareBool(
- PyTuple_GET_ITEM(cb_tup, 0), fn, Py_EQ);
+ PyTuple_GET_ITEM(cb_tup, 0), fn, Py_EQ);
if (cmp == -1) {
return NULL;
}
@@ -1030,7 +1030,7 @@ _asyncio_Future_remove_done_callback(FutureObj *self, PyObject *fn)
int ret;
PyObject *item = PyList_GET_ITEM(self->fut_callbacks, i);
Py_INCREF(item);
- ret = PyObject_RichCompareBool(PyTuple_GET_ITEM(item, 0), fn, Py_EQ);
+ ret = PyObject_RichCompareBool(PyTuple_GET_ITEM(item, 0), fn, Py_EQ);
if (ret == 0) {
if (j < len) {
PyList_SET_ITEM(newlist, j, item);
@@ -1052,7 +1052,7 @@ _asyncio_Future_remove_done_callback(FutureObj *self, PyObject *fn)
}
if (j < len) {
- Py_SET_SIZE(newlist, j);
+ Py_SET_SIZE(newlist, j);
}
j = PyList_GET_SIZE(newlist);
len = PyList_GET_SIZE(self->fut_callbacks);
@@ -1072,8 +1072,8 @@ fail:
/*[clinic input]
_asyncio.Future.cancel
- msg: object = None
-
+ msg: object = None
+
Cancel the future and schedule callbacks.
If the future is already done or cancelled, return False. Otherwise,
@@ -1082,11 +1082,11 @@ return True.
[clinic start generated code]*/
static PyObject *
-_asyncio_Future_cancel_impl(FutureObj *self, PyObject *msg)
-/*[clinic end generated code: output=3edebbc668e5aba3 input=925eb545251f2c5a]*/
+_asyncio_Future_cancel_impl(FutureObj *self, PyObject *msg)
+/*[clinic end generated code: output=3edebbc668e5aba3 input=925eb545251f2c5a]*/
{
ENSURE_FUTURE_ALIVE(self)
- return future_cancel(self, msg);
+ return future_cancel(self, msg);
}
/*[clinic input]
@@ -1138,7 +1138,7 @@ static PyObject *
_asyncio_Future_get_loop_impl(FutureObj *self)
/*[clinic end generated code: output=119b6ea0c9816c3f input=cba48c2136c79d1f]*/
{
- ENSURE_FUTURE_ALIVE(self)
+ ENSURE_FUTURE_ALIVE(self)
Py_INCREF(self->fut_loop);
return self->fut_loop;
}
@@ -1300,29 +1300,29 @@ FutureObj_get_source_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
}
static PyObject *
-FutureObj_get_cancel_message(FutureObj *fut, void *Py_UNUSED(ignored))
-{
- if (fut->fut_cancel_msg == NULL) {
- Py_RETURN_NONE;
- }
- Py_INCREF(fut->fut_cancel_msg);
- return fut->fut_cancel_msg;
-}
-
-static int
-FutureObj_set_cancel_message(FutureObj *fut, PyObject *msg,
- void *Py_UNUSED(ignored))
-{
- if (msg == NULL) {
- PyErr_SetString(PyExc_AttributeError, "cannot delete attribute");
- return -1;
- }
- Py_INCREF(msg);
- Py_XSETREF(fut->fut_cancel_msg, msg);
- return 0;
-}
-
-static PyObject *
+FutureObj_get_cancel_message(FutureObj *fut, void *Py_UNUSED(ignored))
+{
+ if (fut->fut_cancel_msg == NULL) {
+ Py_RETURN_NONE;
+ }
+ Py_INCREF(fut->fut_cancel_msg);
+ return fut->fut_cancel_msg;
+}
+
+static int
+FutureObj_set_cancel_message(FutureObj *fut, PyObject *msg,
+ void *Py_UNUSED(ignored))
+{
+ if (msg == NULL) {
+ PyErr_SetString(PyExc_AttributeError, "cannot delete attribute");
+ return -1;
+ }
+ Py_INCREF(msg);
+ Py_XSETREF(fut->fut_cancel_msg, msg);
+ return 0;
+}
+
+static PyObject *
FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(PENDING);
@@ -1350,29 +1350,29 @@ FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))
}
/*[clinic input]
-_asyncio.Future._make_cancelled_error
-
-Create the CancelledError to raise if the Future is cancelled.
-
-This should only be called once when handling a cancellation since
-it erases the context exception value.
-[clinic start generated code]*/
-
-static PyObject *
-_asyncio_Future__make_cancelled_error_impl(FutureObj *self)
-/*[clinic end generated code: output=a5df276f6c1213de input=ac6effe4ba795ecc]*/
-{
- PyObject *exc = create_cancelled_error(self->fut_cancel_msg);
- _PyErr_StackItem *exc_state = &self->fut_cancelled_exc_state;
- /* Transfer ownership of exc_value from exc_state to exc since we are
- done with it. */
- PyException_SetContext(exc, exc_state->exc_value);
- exc_state->exc_value = NULL;
-
- return exc;
-}
-
-/*[clinic input]
+_asyncio.Future._make_cancelled_error
+
+Create the CancelledError to raise if the Future is cancelled.
+
+This should only be called once when handling a cancellation since
+it erases the context exception value.
+[clinic start generated code]*/
+
+static PyObject *
+_asyncio_Future__make_cancelled_error_impl(FutureObj *self)
+/*[clinic end generated code: output=a5df276f6c1213de input=ac6effe4ba795ecc]*/
+{
+ PyObject *exc = create_cancelled_error(self->fut_cancel_msg);
+ _PyErr_StackItem *exc_state = &self->fut_cancelled_exc_state;
+ /* Transfer ownership of exc_value from exc_state to exc since we are
+ done with it. */
+ PyException_SetContext(exc, exc_state->exc_value);
+ exc_state->exc_value = NULL;
+
+ return exc;
+}
+
+/*[clinic input]
_asyncio.Future._repr_info
[clinic start generated code]*/
@@ -1380,7 +1380,7 @@ static PyObject *
_asyncio_Future__repr_info_impl(FutureObj *self)
/*[clinic end generated code: output=fa69e901bd176cfb input=f21504d8e2ae1ca2]*/
{
- return PyObject_CallOneArg(asyncio_future_repr_info_func, (PyObject *)self);
+ return PyObject_CallOneArg(asyncio_future_repr_info_func, (PyObject *)self);
}
static PyObject *
@@ -1390,8 +1390,8 @@ FutureObj_repr(FutureObj *fut)
ENSURE_FUTURE_ALIVE(fut)
- PyObject *rinfo = _PyObject_CallMethodIdNoArgs((PyObject*)fut,
- &PyId__repr_info);
+ PyObject *rinfo = _PyObject_CallMethodIdNoArgs((PyObject*)fut,
+ &PyId__repr_info);
if (rinfo == NULL) {
return NULL;
}
@@ -1402,8 +1402,8 @@ FutureObj_repr(FutureObj *fut)
return NULL;
}
- PyObject *rstr = PyUnicode_FromFormat("<%s %U>",
- _PyType_Name(Py_TYPE(fut)), rinfo_s);
+ PyObject *rstr = PyUnicode_FromFormat("<%s %U>",
+ _PyType_Name(Py_TYPE(fut)), rinfo_s);
Py_DECREF(rinfo_s);
return rstr;
}
@@ -1437,7 +1437,7 @@ FutureObj_finalize(FutureObj *fut)
}
message = PyUnicode_FromFormat(
- "%s exception was never retrieved", _PyType_Name(Py_TYPE(fut)));
+ "%s exception was never retrieved", _PyType_Name(Py_TYPE(fut)));
if (message == NULL) {
goto finally;
}
@@ -1456,7 +1456,7 @@ FutureObj_finalize(FutureObj *fut)
func = _PyObject_GetAttrId(fut->fut_loop, &PyId_call_exception_handler);
if (func != NULL) {
- PyObject *res = PyObject_CallOneArg(func, context);
+ PyObject *res = PyObject_CallOneArg(func, context);
if (res == NULL) {
PyErr_WriteUnraisable(func);
}
@@ -1474,12 +1474,12 @@ finally:
PyErr_Restore(error_type, error_value, error_traceback);
}
-static PyObject *
-future_cls_getitem(PyObject *cls, PyObject *type)
-{
- Py_INCREF(cls);
- return cls;
-}
+static PyObject *
+future_cls_getitem(PyObject *cls, PyObject *type)
+{
+ Py_INCREF(cls);
+ return cls;
+}
static PyAsyncMethods FutureType_as_async = {
(unaryfunc)future_new_iter, /* am_await */
@@ -1498,9 +1498,9 @@ static PyMethodDef FutureType_methods[] = {
_ASYNCIO_FUTURE_CANCELLED_METHODDEF
_ASYNCIO_FUTURE_DONE_METHODDEF
_ASYNCIO_FUTURE_GET_LOOP_METHODDEF
- _ASYNCIO_FUTURE__MAKE_CANCELLED_ERROR_METHODDEF
+ _ASYNCIO_FUTURE__MAKE_CANCELLED_ERROR_METHODDEF
_ASYNCIO_FUTURE__REPR_INFO_METHODDEF
- {"__class_getitem__", future_cls_getitem, METH_O|METH_CLASS, NULL},
+ {"__class_getitem__", future_cls_getitem, METH_O|METH_CLASS, NULL},
{NULL, NULL} /* Sentinel */
};
@@ -1514,10 +1514,10 @@ static PyMethodDef FutureType_methods[] = {
{"_exception", (getter)FutureObj_get_exception, NULL, NULL}, \
{"_log_traceback", (getter)FutureObj_get_log_traceback, \
(setter)FutureObj_set_log_traceback, NULL}, \
- {"_source_traceback", (getter)FutureObj_get_source_traceback, \
- NULL, NULL}, \
- {"_cancel_message", (getter)FutureObj_get_cancel_message, \
- (setter)FutureObj_set_cancel_message, NULL},
+ {"_source_traceback", (getter)FutureObj_get_source_traceback, \
+ NULL, NULL}, \
+ {"_cancel_message", (getter)FutureObj_get_cancel_message, \
+ (setter)FutureObj_set_cancel_message, NULL},
static PyGetSetDef FutureType_getsetlist[] = {
FUTURE_COMMON_GETSETLIST
@@ -1533,7 +1533,7 @@ static PyTypeObject FutureType = {
.tp_dealloc = FutureObj_dealloc,
.tp_as_async = &FutureType_as_async,
.tp_repr = (reprfunc)FutureObj_repr,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
.tp_doc = _asyncio_Future___init____doc__,
.tp_traverse = (traverseproc)FutureObj_traverse,
.tp_clear = (inquiry)FutureObj_clear,
@@ -1639,7 +1639,7 @@ static PyObject *
FutureIter_send(futureiterobject *self, PyObject *unused)
{
/* Future.__iter__ doesn't care about values that are pushed to the
- * generator, it just returns self.result().
+ * generator, it just returns self.result().
*/
return FutureIter_iternext(self);
}
@@ -1912,21 +1912,21 @@ TaskWakeupMethWrapper_dealloc(TaskWakeupMethWrapper *o)
Py_TYPE(o)->tp_free(o);
}
-static PyObject *
-TaskWakeupMethWrapper_get___self__(TaskWakeupMethWrapper *o, void *Py_UNUSED(ignored))
-{
- if (o->ww_task) {
- Py_INCREF(o->ww_task);
- return (PyObject*)o->ww_task;
- }
- Py_RETURN_NONE;
-}
-
-static PyGetSetDef TaskWakeupMethWrapper_getsetlist[] = {
- {"__self__", (getter)TaskWakeupMethWrapper_get___self__, NULL, NULL},
- {NULL} /* Sentinel */
-};
-
+static PyObject *
+TaskWakeupMethWrapper_get___self__(TaskWakeupMethWrapper *o, void *Py_UNUSED(ignored))
+{
+ if (o->ww_task) {
+ Py_INCREF(o->ww_task);
+ return (PyObject*)o->ww_task;
+ }
+ Py_RETURN_NONE;
+}
+
+static PyGetSetDef TaskWakeupMethWrapper_getsetlist[] = {
+ {"__self__", (getter)TaskWakeupMethWrapper_get___self__, NULL, NULL},
+ {NULL} /* Sentinel */
+};
+
static PyTypeObject TaskWakeupMethWrapper_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"TaskWakeupMethWrapper",
@@ -1938,7 +1938,7 @@ static PyTypeObject TaskWakeupMethWrapper_Type = {
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_traverse = (traverseproc)TaskWakeupMethWrapper_traverse,
.tp_clear = (inquiry)TaskWakeupMethWrapper_clear,
- .tp_getset = TaskWakeupMethWrapper_getsetlist,
+ .tp_getset = TaskWakeupMethWrapper_getsetlist,
};
static PyObject *
@@ -1964,8 +1964,8 @@ register_task(PyObject *task)
{
_Py_IDENTIFIER(add);
- PyObject *res = _PyObject_CallMethodIdOneArg(all_tasks,
- &PyId_add, task);
+ PyObject *res = _PyObject_CallMethodIdOneArg(all_tasks,
+ &PyId_add, task);
if (res == NULL) {
return -1;
}
@@ -1979,8 +1979,8 @@ unregister_task(PyObject *task)
{
_Py_IDENTIFIER(discard);
- PyObject *res = _PyObject_CallMethodIdOneArg(all_tasks,
- &PyId_discard, task);
+ PyObject *res = _PyObject_CallMethodIdOneArg(all_tasks,
+ &PyId_discard, task);
if (res == NULL) {
return -1;
}
@@ -2049,15 +2049,15 @@ _asyncio.Task.__init__
coro: object
*
loop: object = None
- name: object = None
+ name: object = None
A coroutine wrapped in a Future.
[clinic start generated code]*/
static int
-_asyncio_Task___init___impl(TaskObj *self, PyObject *coro, PyObject *loop,
- PyObject *name)
-/*[clinic end generated code: output=88b12b83d570df50 input=352a3137fe60091d]*/
+_asyncio_Task___init___impl(TaskObj *self, PyObject *coro, PyObject *loop,
+ PyObject *name)
+/*[clinic end generated code: output=88b12b83d570df50 input=352a3137fe60091d]*/
{
if (future_init((FutureObj*)self, loop)) {
return -1;
@@ -2086,18 +2086,18 @@ _asyncio_Task___init___impl(TaskObj *self, PyObject *coro, PyObject *loop,
Py_INCREF(coro);
Py_XSETREF(self->task_coro, coro);
- if (name == Py_None) {
- name = PyUnicode_FromFormat("Task-%" PRIu64, ++task_name_counter);
- } else if (!PyUnicode_CheckExact(name)) {
- name = PyObject_Str(name);
- } else {
- Py_INCREF(name);
- }
- Py_XSETREF(self->task_name, name);
- if (self->task_name == NULL) {
- return -1;
- }
-
+ if (name == Py_None) {
+ name = PyUnicode_FromFormat("Task-%" PRIu64, ++task_name_counter);
+ } else if (!PyUnicode_CheckExact(name)) {
+ name = PyObject_Str(name);
+ } else {
+ Py_INCREF(name);
+ }
+ Py_XSETREF(self->task_name, name);
+ if (self->task_name == NULL) {
+ return -1;
+ }
+
if (task_call_step_soon(self, NULL)) {
return -1;
}
@@ -2110,7 +2110,7 @@ TaskObj_clear(TaskObj *task)
(void)FutureObj_clear((FutureObj*) task);
Py_CLEAR(task->task_context);
Py_CLEAR(task->task_coro);
- Py_CLEAR(task->task_name);
+ Py_CLEAR(task->task_name);
Py_CLEAR(task->task_fut_waiter);
return 0;
}
@@ -2120,7 +2120,7 @@ TaskObj_traverse(TaskObj *task, visitproc visit, void *arg)
{
Py_VISIT(task->task_context);
Py_VISIT(task->task_coro);
- Py_VISIT(task->task_name);
+ Py_VISIT(task->task_name);
Py_VISIT(task->task_fut_waiter);
(void)FutureObj_traverse((FutureObj*) task, visit, arg);
return 0;
@@ -2186,20 +2186,20 @@ TaskObj_get_fut_waiter(TaskObj *task, void *Py_UNUSED(ignored))
}
/*[clinic input]
-_asyncio.Task._make_cancelled_error
+_asyncio.Task._make_cancelled_error
-Create the CancelledError to raise if the Task is cancelled.
+Create the CancelledError to raise if the Task is cancelled.
-This should only be called once when handling a cancellation since
-it erases the context exception value.
+This should only be called once when handling a cancellation since
+it erases the context exception value.
[clinic start generated code]*/
static PyObject *
-_asyncio_Task__make_cancelled_error_impl(TaskObj *self)
-/*[clinic end generated code: output=55a819e8b4276fab input=52c0e32de8e2f840]*/
+_asyncio_Task__make_cancelled_error_impl(TaskObj *self)
+/*[clinic end generated code: output=55a819e8b4276fab input=52c0e32de8e2f840]*/
{
- FutureObj *fut = (FutureObj*)self;
- return _asyncio_Future__make_cancelled_error_impl(fut);
+ FutureObj *fut = (FutureObj*)self;
+ return _asyncio_Future__make_cancelled_error_impl(fut);
}
@@ -2211,14 +2211,14 @@ static PyObject *
_asyncio_Task__repr_info_impl(TaskObj *self)
/*[clinic end generated code: output=6a490eb66d5ba34b input=3c6d051ed3ddec8b]*/
{
- return PyObject_CallOneArg(asyncio_task_repr_info_func, (PyObject *)self);
+ return PyObject_CallOneArg(asyncio_task_repr_info_func, (PyObject *)self);
}
/*[clinic input]
_asyncio.Task.cancel
- msg: object = None
-
+ msg: object = None
+
Request that this task cancel itself.
This arranges for a CancelledError to be thrown into the
@@ -2240,8 +2240,8 @@ was not called).
[clinic start generated code]*/
static PyObject *
-_asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg)
-/*[clinic end generated code: output=c66b60d41c74f9f1 input=f4ff8e8ffc5f1c00]*/
+_asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg)
+/*[clinic end generated code: output=c66b60d41c74f9f1 input=f4ff8e8ffc5f1c00]*/
{
self->task_log_tb = 0;
@@ -2253,8 +2253,8 @@ _asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg)
PyObject *res;
int is_true;
- res = _PyObject_CallMethodIdOneArg(self->task_fut_waiter,
- &PyId_cancel, msg);
+ res = _PyObject_CallMethodIdOneArg(self->task_fut_waiter,
+ &PyId_cancel, msg);
if (res == NULL) {
return NULL;
}
@@ -2271,8 +2271,8 @@ _asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg)
}
self->task_must_cancel = 1;
- Py_XINCREF(msg);
- Py_XSETREF(self->task_cancel_msg, msg);
+ Py_XINCREF(msg);
+ Py_XSETREF(self->task_cancel_msg, msg);
Py_RETURN_TRUE;
}
@@ -2368,58 +2368,58 @@ _asyncio_Task_set_exception(TaskObj *self, PyObject *exception)
return NULL;
}
-/*[clinic input]
-_asyncio.Task.get_coro
-[clinic start generated code]*/
-
-static PyObject *
-_asyncio_Task_get_coro_impl(TaskObj *self)
-/*[clinic end generated code: output=bcac27c8cc6c8073 input=d2e8606c42a7b403]*/
-{
- Py_INCREF(self->task_coro);
- return self->task_coro;
-}
-
-/*[clinic input]
-_asyncio.Task.get_name
-[clinic start generated code]*/
-
-static PyObject *
-_asyncio_Task_get_name_impl(TaskObj *self)
-/*[clinic end generated code: output=0ecf1570c3b37a8f input=a4a6595d12f4f0f8]*/
-{
- if (self->task_name) {
- Py_INCREF(self->task_name);
- return self->task_name;
- }
-
- Py_RETURN_NONE;
-}
-
-/*[clinic input]
-_asyncio.Task.set_name
-
- value: object
- /
-[clinic start generated code]*/
-
-static PyObject *
-_asyncio_Task_set_name(TaskObj *self, PyObject *value)
-/*[clinic end generated code: output=138a8d51e32057d6 input=a8359b6e65f8fd31]*/
-{
- if (!PyUnicode_CheckExact(value)) {
- value = PyObject_Str(value);
- if (value == NULL) {
- return NULL;
- }
- } else {
- Py_INCREF(value);
- }
-
- Py_XSETREF(self->task_name, value);
- Py_RETURN_NONE;
-}
-
+/*[clinic input]
+_asyncio.Task.get_coro
+[clinic start generated code]*/
+
+static PyObject *
+_asyncio_Task_get_coro_impl(TaskObj *self)
+/*[clinic end generated code: output=bcac27c8cc6c8073 input=d2e8606c42a7b403]*/
+{
+ Py_INCREF(self->task_coro);
+ return self->task_coro;
+}
+
+/*[clinic input]
+_asyncio.Task.get_name
+[clinic start generated code]*/
+
+static PyObject *
+_asyncio_Task_get_name_impl(TaskObj *self)
+/*[clinic end generated code: output=0ecf1570c3b37a8f input=a4a6595d12f4f0f8]*/
+{
+ if (self->task_name) {
+ Py_INCREF(self->task_name);
+ return self->task_name;
+ }
+
+ Py_RETURN_NONE;
+}
+
+/*[clinic input]
+_asyncio.Task.set_name
+
+ value: object
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_asyncio_Task_set_name(TaskObj *self, PyObject *value)
+/*[clinic end generated code: output=138a8d51e32057d6 input=a8359b6e65f8fd31]*/
+{
+ if (!PyUnicode_CheckExact(value)) {
+ value = PyObject_Str(value);
+ if (value == NULL) {
+ return NULL;
+ }
+ } else {
+ Py_INCREF(value);
+ }
+
+ Py_XSETREF(self->task_name, value);
+ Py_RETURN_NONE;
+}
+
static void
TaskObj_finalize(TaskObj *task)
{
@@ -2466,7 +2466,7 @@ TaskObj_finalize(TaskObj *task)
func = _PyObject_GetAttrId(task->task_loop, &PyId_call_exception_handler);
if (func != NULL) {
- PyObject *res = PyObject_CallOneArg(func, context);
+ PyObject *res = PyObject_CallOneArg(func, context);
if (res == NULL) {
PyErr_WriteUnraisable(func);
}
@@ -2487,13 +2487,13 @@ done:
FutureObj_finalize((FutureObj*)task);
}
-static PyObject *
-task_cls_getitem(PyObject *cls, PyObject *type)
-{
- Py_INCREF(cls);
- return cls;
-}
-
+static PyObject *
+task_cls_getitem(PyObject *cls, PyObject *type)
+{
+ Py_INCREF(cls);
+ return cls;
+}
+
static void TaskObj_dealloc(PyObject *); /* Needs Task_CheckExact */
static PyMethodDef TaskType_methods[] = {
@@ -2508,12 +2508,12 @@ static PyMethodDef TaskType_methods[] = {
_ASYNCIO_TASK_CANCEL_METHODDEF
_ASYNCIO_TASK_GET_STACK_METHODDEF
_ASYNCIO_TASK_PRINT_STACK_METHODDEF
- _ASYNCIO_TASK__MAKE_CANCELLED_ERROR_METHODDEF
+ _ASYNCIO_TASK__MAKE_CANCELLED_ERROR_METHODDEF
_ASYNCIO_TASK__REPR_INFO_METHODDEF
- _ASYNCIO_TASK_GET_NAME_METHODDEF
- _ASYNCIO_TASK_SET_NAME_METHODDEF
- _ASYNCIO_TASK_GET_CORO_METHODDEF
- {"__class_getitem__", task_cls_getitem, METH_O|METH_CLASS, NULL},
+ _ASYNCIO_TASK_GET_NAME_METHODDEF
+ _ASYNCIO_TASK_SET_NAME_METHODDEF
+ _ASYNCIO_TASK_GET_CORO_METHODDEF
+ {"__class_getitem__", task_cls_getitem, METH_O|METH_CLASS, NULL},
{NULL, NULL} /* Sentinel */
};
@@ -2535,7 +2535,7 @@ static PyTypeObject TaskType = {
.tp_dealloc = TaskObj_dealloc,
.tp_as_async = &FutureType_as_async,
.tp_repr = (reprfunc)FutureObj_repr,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
.tp_doc = _asyncio_Task___init____doc__,
.tp_traverse = (traverseproc)TaskObj_traverse,
.tp_clear = (inquiry)TaskObj_clear,
@@ -2605,7 +2605,7 @@ task_set_error_soon(TaskObj *task, PyObject *et, const char *format, ...)
return NULL;
}
- PyObject *e = PyObject_CallOneArg(et, msg);
+ PyObject *e = PyObject_CallOneArg(et, msg);
Py_DECREF(msg);
if (e == NULL) {
return NULL;
@@ -2655,8 +2655,8 @@ task_step_impl(TaskObj *task, PyObject *exc)
if (!exc) {
/* exc was not a CancelledError */
- exc = create_cancelled_error(task->task_cancel_msg);
-
+ exc = create_cancelled_error(task->task_cancel_msg);
+
if (!exc) {
goto fail;
}
@@ -2671,10 +2671,10 @@ task_step_impl(TaskObj *task, PyObject *exc)
coro = task->task_coro;
if (coro == NULL) {
PyErr_SetString(PyExc_RuntimeError, "uninitialized Task object");
- if (clear_exc) {
- /* We created 'exc' during this call */
- Py_DECREF(exc);
- }
+ if (clear_exc) {
+ /* We created 'exc' during this call */
+ Py_DECREF(exc);
+ }
return NULL;
}
@@ -2683,11 +2683,11 @@ task_step_impl(TaskObj *task, PyObject *exc)
result = _PyGen_Send((PyGenObject*)coro, Py_None);
}
else {
- result = _PyObject_CallMethodIdOneArg(coro, &PyId_send, Py_None);
+ result = _PyObject_CallMethodIdOneArg(coro, &PyId_send, Py_None);
}
}
else {
- result = _PyObject_CallMethodIdOneArg(coro, &PyId_throw, exc);
+ result = _PyObject_CallMethodIdOneArg(coro, &PyId_throw, exc);
if (clear_exc) {
/* We created 'exc' during this call */
Py_DECREF(exc);
@@ -2700,19 +2700,19 @@ task_step_impl(TaskObj *task, PyObject *exc)
if (_PyGen_FetchStopIterationValue(&o) == 0) {
/* The error is StopIteration and that means that
the underlying coroutine has resolved */
-
- PyObject *res;
+
+ PyObject *res;
if (task->task_must_cancel) {
// Task is cancelled right before coro stops.
task->task_must_cancel = 0;
- res = future_cancel((FutureObj*)task, task->task_cancel_msg);
+ res = future_cancel((FutureObj*)task, task->task_cancel_msg);
}
- else {
- res = future_set_result((FutureObj*)task, o);
- }
-
+ else {
+ res = future_set_result((FutureObj*)task, o);
+ }
+
Py_DECREF(o);
-
+
if (res == NULL) {
return NULL;
}
@@ -2722,15 +2722,15 @@ task_step_impl(TaskObj *task, PyObject *exc)
if (PyErr_ExceptionMatches(asyncio_CancelledError)) {
/* CancelledError */
- PyErr_Fetch(&et, &ev, &tb);
-
- FutureObj *fut = (FutureObj*)task;
- _PyErr_StackItem *exc_state = &fut->fut_cancelled_exc_state;
- exc_state->exc_type = et;
- exc_state->exc_value = ev;
- exc_state->exc_traceback = tb;
-
- return future_cancel(fut, NULL);
+ PyErr_Fetch(&et, &ev, &tb);
+
+ FutureObj *fut = (FutureObj*)task;
+ _PyErr_StackItem *exc_state = &fut->fut_cancelled_exc_state;
+ exc_state->exc_type = et;
+ exc_state->exc_value = ev;
+ exc_state->exc_traceback = tb;
+
+ return future_cancel(fut, NULL);
}
/* Some other exception; pop it and call Task.set_exception() */
@@ -2754,10 +2754,10 @@ task_step_impl(TaskObj *task, PyObject *exc)
assert(o == Py_None);
Py_DECREF(o);
- if (PyErr_GivenExceptionMatches(et, PyExc_KeyboardInterrupt) ||
- PyErr_GivenExceptionMatches(et, PyExc_SystemExit))
- {
- /* We've got a KeyboardInterrupt or a SystemError; re-raise it */
+ if (PyErr_GivenExceptionMatches(et, PyExc_KeyboardInterrupt) ||
+ PyErr_GivenExceptionMatches(et, PyExc_SystemExit))
+ {
+ /* We've got a KeyboardInterrupt or a SystemError; re-raise it */
PyErr_Restore(et, ev, tb);
goto fail;
}
@@ -2785,148 +2785,148 @@ task_step_impl(TaskObj *task, PyObject *exc)
goto different_loop;
}
- if (!fut->fut_blocking) {
- goto yield_insteadof_yf;
- }
-
- fut->fut_blocking = 0;
-
- /* result.add_done_callback(task._wakeup) */
- wrapper = TaskWakeupMethWrapper_new(task);
- if (wrapper == NULL) {
- goto fail;
- }
- res = future_add_done_callback(
- (FutureObj*)result, wrapper, task->task_context);
- Py_DECREF(wrapper);
- if (res == NULL) {
- goto fail;
- }
- Py_DECREF(res);
-
- /* task._fut_waiter = result */
- task->task_fut_waiter = result; /* no incref is necessary */
-
- if (task->task_must_cancel) {
- PyObject *r;
- int is_true;
- r = _PyObject_CallMethodIdOneArg(result, &PyId_cancel,
- task->task_cancel_msg);
- if (r == NULL) {
- return NULL;
+ if (!fut->fut_blocking) {
+ goto yield_insteadof_yf;
+ }
+
+ fut->fut_blocking = 0;
+
+ /* result.add_done_callback(task._wakeup) */
+ wrapper = TaskWakeupMethWrapper_new(task);
+ if (wrapper == NULL) {
+ goto fail;
+ }
+ res = future_add_done_callback(
+ (FutureObj*)result, wrapper, task->task_context);
+ Py_DECREF(wrapper);
+ if (res == NULL) {
+ goto fail;
+ }
+ Py_DECREF(res);
+
+ /* task._fut_waiter = result */
+ task->task_fut_waiter = result; /* no incref is necessary */
+
+ if (task->task_must_cancel) {
+ PyObject *r;
+ int is_true;
+ r = _PyObject_CallMethodIdOneArg(result, &PyId_cancel,
+ task->task_cancel_msg);
+ if (r == NULL) {
+ return NULL;
}
- is_true = PyObject_IsTrue(r);
- Py_DECREF(r);
- if (is_true < 0) {
- return NULL;
+ is_true = PyObject_IsTrue(r);
+ Py_DECREF(r);
+ if (is_true < 0) {
+ return NULL;
}
- else if (is_true) {
- task->task_must_cancel = 0;
- }
- }
+ else if (is_true) {
+ task->task_must_cancel = 0;
+ }
+ }
- Py_RETURN_NONE;
- }
+ Py_RETURN_NONE;
+ }
- /* Check if `result` is None */
- if (result == Py_None) {
- /* Bare yield relinquishes control for one event loop iteration. */
- if (task_call_step_soon(task, NULL)) {
- goto fail;
+ /* Check if `result` is None */
+ if (result == Py_None) {
+ /* Bare yield relinquishes control for one event loop iteration. */
+ if (task_call_step_soon(task, NULL)) {
+ goto fail;
}
- return result;
+ return result;
}
/* Check if `result` is a Future-compatible object */
- if (_PyObject_LookupAttrId(result, &PyId__asyncio_future_blocking, &o) < 0) {
- goto fail;
- }
- if (o != NULL && o != Py_None) {
- /* `result` is a Future-compatible object */
- PyObject *wrapper;
- PyObject *res;
-
- int blocking = PyObject_IsTrue(o);
- Py_DECREF(o);
- if (blocking < 0) {
- goto fail;
- }
-
- /* Check if `result` future is attached to a different loop */
- PyObject *oloop = get_future_loop(result);
- if (oloop == NULL) {
+ if (_PyObject_LookupAttrId(result, &PyId__asyncio_future_blocking, &o) < 0) {
+ goto fail;
+ }
+ if (o != NULL && o != Py_None) {
+ /* `result` is a Future-compatible object */
+ PyObject *wrapper;
+ PyObject *res;
+
+ int blocking = PyObject_IsTrue(o);
+ Py_DECREF(o);
+ if (blocking < 0) {
+ goto fail;
+ }
+
+ /* Check if `result` future is attached to a different loop */
+ PyObject *oloop = get_future_loop(result);
+ if (oloop == NULL) {
goto fail;
}
- if (oloop != task->task_loop) {
- Py_DECREF(oloop);
- goto different_loop;
- }
- Py_DECREF(oloop);
-
- if (!blocking) {
- goto yield_insteadof_yf;
- }
-
- /* result._asyncio_future_blocking = False */
- if (_PyObject_SetAttrId(
- result, &PyId__asyncio_future_blocking, Py_False) == -1) {
- goto fail;
- }
-
- wrapper = TaskWakeupMethWrapper_new(task);
- if (wrapper == NULL) {
- goto fail;
- }
-
- /* result.add_done_callback(task._wakeup) */
- PyObject *add_cb = _PyObject_GetAttrId(
- result, &PyId_add_done_callback);
- if (add_cb == NULL) {
- Py_DECREF(wrapper);
- goto fail;
- }
- PyObject *stack[2];
- stack[0] = wrapper;
- stack[1] = (PyObject *)task->task_context;
- res = PyObject_Vectorcall(add_cb, stack, 1, context_kwname);
- Py_DECREF(add_cb);
- Py_DECREF(wrapper);
- if (res == NULL) {
- goto fail;
- }
- Py_DECREF(res);
-
- /* task._fut_waiter = result */
- task->task_fut_waiter = result; /* no incref is necessary */
-
- if (task->task_must_cancel) {
- PyObject *r;
- int is_true;
- r = _PyObject_CallMethodIdOneArg(result, &PyId_cancel,
- task->task_cancel_msg);
- if (r == NULL) {
- return NULL;
+ if (oloop != task->task_loop) {
+ Py_DECREF(oloop);
+ goto different_loop;
+ }
+ Py_DECREF(oloop);
+
+ if (!blocking) {
+ goto yield_insteadof_yf;
+ }
+
+ /* result._asyncio_future_blocking = False */
+ if (_PyObject_SetAttrId(
+ result, &PyId__asyncio_future_blocking, Py_False) == -1) {
+ goto fail;
+ }
+
+ wrapper = TaskWakeupMethWrapper_new(task);
+ if (wrapper == NULL) {
+ goto fail;
+ }
+
+ /* result.add_done_callback(task._wakeup) */
+ PyObject *add_cb = _PyObject_GetAttrId(
+ result, &PyId_add_done_callback);
+ if (add_cb == NULL) {
+ Py_DECREF(wrapper);
+ goto fail;
+ }
+ PyObject *stack[2];
+ stack[0] = wrapper;
+ stack[1] = (PyObject *)task->task_context;
+ res = PyObject_Vectorcall(add_cb, stack, 1, context_kwname);
+ Py_DECREF(add_cb);
+ Py_DECREF(wrapper);
+ if (res == NULL) {
+ goto fail;
+ }
+ Py_DECREF(res);
+
+ /* task._fut_waiter = result */
+ task->task_fut_waiter = result; /* no incref is necessary */
+
+ if (task->task_must_cancel) {
+ PyObject *r;
+ int is_true;
+ r = _PyObject_CallMethodIdOneArg(result, &PyId_cancel,
+ task->task_cancel_msg);
+ if (r == NULL) {
+ return NULL;
}
- is_true = PyObject_IsTrue(r);
- Py_DECREF(r);
- if (is_true < 0) {
- return NULL;
+ is_true = PyObject_IsTrue(r);
+ Py_DECREF(r);
+ if (is_true < 0) {
+ return NULL;
+ }
+ else if (is_true) {
+ task->task_must_cancel = 0;
}
- else if (is_true) {
- task->task_must_cancel = 0;
- }
}
- Py_RETURN_NONE;
+ Py_RETURN_NONE;
}
- Py_XDECREF(o);
+ Py_XDECREF(o);
/* Check if `result` is a generator */
- res = PyObject_IsInstance(result, (PyObject*)&PyGen_Type);
- if (res < 0) {
+ res = PyObject_IsInstance(result, (PyObject*)&PyGen_Type);
+ if (res < 0) {
goto fail;
}
- if (res) {
+ if (res) {
/* `result` is a generator */
o = task_set_error_soon(
task, PyExc_RuntimeError,
@@ -2990,7 +2990,7 @@ task_step(TaskObj *task, PyObject *exc)
return NULL;
}
else {
- if (leave_task(task->task_loop, (PyObject*)task) < 0) {
+ if (leave_task(task->task_loop, (PyObject*)task) < 0) {
Py_DECREF(res);
return NULL;
}
@@ -3258,9 +3258,9 @@ new_running_loop_holder(PyObject *loop)
static void
PyRunningLoopHolder_tp_dealloc(PyRunningLoopHolder *rl)
{
- if (cached_running_holder == (PyObject *)rl) {
- cached_running_holder = NULL;
- }
+ if (cached_running_holder == (PyObject *)rl) {
+ cached_running_holder = NULL;
+ }
Py_CLEAR(rl->rl_loop);
PyObject_Free(rl);
}
@@ -3320,17 +3320,17 @@ module_free(void *m)
Py_CLEAR(context_kwname);
module_free_freelists();
-
- module_initialized = 0;
+
+ module_initialized = 0;
}
static int
module_init(void)
{
PyObject *module = NULL;
- if (module_initialized) {
- return 0;
- }
+ if (module_initialized) {
+ return 0;
+ }
asyncio_mod = PyImport_ImportModule("asyncio");
if (asyncio_mod == NULL) {
@@ -3348,7 +3348,7 @@ module_init(void)
}
- context_kwname = Py_BuildValue("(s)", "context");
+ context_kwname = Py_BuildValue("(s)", "context");
if (context_kwname == NULL) {
goto fail;
}
@@ -3371,8 +3371,8 @@ module_init(void)
WITH_MOD("asyncio.base_futures")
GET_MOD_ATTR(asyncio_future_repr_info_func, "_future_repr_info")
-
- WITH_MOD("asyncio.exceptions")
+
+ WITH_MOD("asyncio.exceptions")
GET_MOD_ATTR(asyncio_InvalidStateError, "InvalidStateError")
GET_MOD_ATTR(asyncio_CancelledError, "CancelledError")
@@ -3390,13 +3390,13 @@ module_init(void)
PyObject *weak_set;
WITH_MOD("weakref")
GET_MOD_ATTR(weak_set, "WeakSet");
- all_tasks = PyObject_CallNoArgs(weak_set);
+ all_tasks = PyObject_CallNoArgs(weak_set);
Py_CLEAR(weak_set);
if (all_tasks == NULL) {
goto fail;
}
- module_initialized = 1;
+ module_initialized = 1;
Py_DECREF(module);
return 0;
@@ -3448,7 +3448,7 @@ PyInit__asyncio(void)
if (PyType_Ready(&TaskStepMethWrapper_Type) < 0) {
return NULL;
}
- if (PyType_Ready(&TaskWakeupMethWrapper_Type) < 0) {
+ if (PyType_Ready(&TaskWakeupMethWrapper_Type) < 0) {
return NULL;
}
if (PyType_Ready(&PyRunningLoopHolder_Type) < 0) {
@@ -3460,28 +3460,28 @@ PyInit__asyncio(void)
return NULL;
}
- /* FutureType and TaskType are made ready by PyModule_AddType() calls below. */
- if (PyModule_AddType(m, &FutureType) < 0) {
- Py_DECREF(m);
+ /* FutureType and TaskType are made ready by PyModule_AddType() calls below. */
+ if (PyModule_AddType(m, &FutureType) < 0) {
+ Py_DECREF(m);
return NULL;
}
- if (PyModule_AddType(m, &TaskType) < 0) {
- Py_DECREF(m);
+ if (PyModule_AddType(m, &TaskType) < 0) {
+ Py_DECREF(m);
return NULL;
}
Py_INCREF(all_tasks);
if (PyModule_AddObject(m, "_all_tasks", all_tasks) < 0) {
Py_DECREF(all_tasks);
- Py_DECREF(m);
+ Py_DECREF(m);
return NULL;
}
Py_INCREF(current_tasks);
if (PyModule_AddObject(m, "_current_tasks", current_tasks) < 0) {
Py_DECREF(current_tasks);
- Py_DECREF(m);
+ Py_DECREF(m);
return NULL;
}
diff --git a/contrib/tools/python3/src/Modules/_bisectmodule.c b/contrib/tools/python3/src/Modules/_bisectmodule.c
index c0f9d7e9f2..82d800d9a8 100644
--- a/contrib/tools/python3/src/Modules/_bisectmodule.c
+++ b/contrib/tools/python3/src/Modules/_bisectmodule.c
@@ -6,16 +6,16 @@ Converted to C by Dmitry Vasiliev (dima at hlabs.spb.ru).
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-/*[clinic input]
-module _bisect
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=4d56a2b2033b462b]*/
-
-#include "clinic/_bisectmodule.c.h"
-
+/*[clinic input]
+module _bisect
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=4d56a2b2033b462b]*/
+
+#include "clinic/_bisectmodule.c.h"
+
_Py_IDENTIFIER(insert);
-static inline Py_ssize_t
+static inline Py_ssize_t
internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t hi)
{
PyObject *litem;
@@ -51,63 +51,63 @@ internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t
return lo;
}
-/*[clinic input]
-_bisect.bisect_right -> Py_ssize_t
-
- a: object
- x: object
- lo: Py_ssize_t = 0
- hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
-
-Return the index where to insert item x in list a, assuming a is sorted.
-
-The return value i is such that all e in a[:i] have e <= x, and all e in
-a[i:] have e > x. So if x already appears in the list, i points just
-beyond the rightmost x already there
-
-Optional args lo (default 0) and hi (default len(a)) bound the
-slice of a to be searched.
-[clinic start generated code]*/
-
-static Py_ssize_t
-_bisect_bisect_right_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi)
-/*[clinic end generated code: output=419e150cf1d2a235 input=e72212b282c83375]*/
+/*[clinic input]
+_bisect.bisect_right -> Py_ssize_t
+
+ a: object
+ x: object
+ lo: Py_ssize_t = 0
+ hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
+
+Return the index where to insert item x in list a, assuming a is sorted.
+
+The return value i is such that all e in a[:i] have e <= x, and all e in
+a[i:] have e > x. So if x already appears in the list, i points just
+beyond the rightmost x already there
+
+Optional args lo (default 0) and hi (default len(a)) bound the
+slice of a to be searched.
+[clinic start generated code]*/
+
+static Py_ssize_t
+_bisect_bisect_right_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi)
+/*[clinic end generated code: output=419e150cf1d2a235 input=e72212b282c83375]*/
{
- return internal_bisect_right(a, x, lo, hi);
+ return internal_bisect_right(a, x, lo, hi);
}
-/*[clinic input]
-_bisect.insort_right
-
- a: object
- x: object
- lo: Py_ssize_t = 0
- hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
-
-Insert item x in list a, and keep it sorted assuming a is sorted.
-
-If x is already in a, insert it to the right of the rightmost x.
-
-Optional args lo (default 0) and hi (default len(a)) bound the
-slice of a to be searched.
-[clinic start generated code]*/
-
+/*[clinic input]
+_bisect.insort_right
+
+ a: object
+ x: object
+ lo: Py_ssize_t = 0
+ hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
+
+Insert item x in list a, and keep it sorted assuming a is sorted.
+
+If x is already in a, insert it to the right of the rightmost x.
+
+Optional args lo (default 0) and hi (default len(a)) bound the
+slice of a to be searched.
+[clinic start generated code]*/
+
static PyObject *
-_bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi)
-/*[clinic end generated code: output=c2caa3d4cd02035a input=d1c45bfa68182669]*/
+_bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi)
+/*[clinic end generated code: output=c2caa3d4cd02035a input=d1c45bfa68182669]*/
{
- PyObject *result;
- Py_ssize_t index = internal_bisect_right(a, x, lo, hi);
+ PyObject *result;
+ Py_ssize_t index = internal_bisect_right(a, x, lo, hi);
if (index < 0)
return NULL;
- if (PyList_CheckExact(a)) {
- if (PyList_Insert(a, index, x) < 0)
+ if (PyList_CheckExact(a)) {
+ if (PyList_Insert(a, index, x) < 0)
return NULL;
- }
- else {
- result = _PyObject_CallMethodId(a, &PyId_insert, "nO", index, x);
+ }
+ else {
+ result = _PyObject_CallMethodId(a, &PyId_insert, "nO", index, x);
if (result == NULL)
return NULL;
Py_DECREF(result);
@@ -116,7 +116,7 @@ _bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x,
Py_RETURN_NONE;
}
-static inline Py_ssize_t
+static inline Py_ssize_t
internal_bisect_left(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t hi)
{
PyObject *litem;
@@ -152,64 +152,64 @@ internal_bisect_left(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t h
return lo;
}
-
-/*[clinic input]
-_bisect.bisect_left -> Py_ssize_t
-
- a: object
- x: object
- lo: Py_ssize_t = 0
- hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
-
-Return the index where to insert item x in list a, assuming a is sorted.
-
-The return value i is such that all e in a[:i] have e < x, and all e in
-a[i:] have e >= x. So if x already appears in the list, i points just
-before the leftmost x already there.
-
-Optional args lo (default 0) and hi (default len(a)) bound the
-slice of a to be searched.
-[clinic start generated code]*/
-
-static Py_ssize_t
-_bisect_bisect_left_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi)
-/*[clinic end generated code: output=af82168bc2856f24 input=2bd90f34afe5609f]*/
+
+/*[clinic input]
+_bisect.bisect_left -> Py_ssize_t
+
+ a: object
+ x: object
+ lo: Py_ssize_t = 0
+ hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
+
+Return the index where to insert item x in list a, assuming a is sorted.
+
+The return value i is such that all e in a[:i] have e < x, and all e in
+a[i:] have e >= x. So if x already appears in the list, i points just
+before the leftmost x already there.
+
+Optional args lo (default 0) and hi (default len(a)) bound the
+slice of a to be searched.
+[clinic start generated code]*/
+
+static Py_ssize_t
+_bisect_bisect_left_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi)
+/*[clinic end generated code: output=af82168bc2856f24 input=2bd90f34afe5609f]*/
{
- return internal_bisect_left(a, x, lo, hi);
+ return internal_bisect_left(a, x, lo, hi);
}
-/*[clinic input]
-_bisect.insort_left
-
- a: object
- x: object
- lo: Py_ssize_t = 0
- hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
-
-Insert item x in list a, and keep it sorted assuming a is sorted.
-
-If x is already in a, insert it to the left of the leftmost x.
-
-Optional args lo (default 0) and hi (default len(a)) bound the
-slice of a to be searched.
-[clinic start generated code]*/
-
+/*[clinic input]
+_bisect.insort_left
+
+ a: object
+ x: object
+ lo: Py_ssize_t = 0
+ hi: Py_ssize_t(c_default='-1', accept={int, NoneType}) = None
+
+Insert item x in list a, and keep it sorted assuming a is sorted.
+
+If x is already in a, insert it to the left of the leftmost x.
+
+Optional args lo (default 0) and hi (default len(a)) bound the
+slice of a to be searched.
+[clinic start generated code]*/
+
static PyObject *
-_bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi)
-/*[clinic end generated code: output=9e8356c0844a182b input=bc4583308bce00cc]*/
+_bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi)
+/*[clinic end generated code: output=9e8356c0844a182b input=bc4583308bce00cc]*/
{
- PyObject *result;
- Py_ssize_t index = internal_bisect_left(a, x, lo, hi);
+ PyObject *result;
+ Py_ssize_t index = internal_bisect_left(a, x, lo, hi);
if (index < 0)
return NULL;
- if (PyList_CheckExact(a)) {
- if (PyList_Insert(a, index, x) < 0)
+ if (PyList_CheckExact(a)) {
+ if (PyList_Insert(a, index, x) < 0)
return NULL;
} else {
- result = _PyObject_CallMethodId(a, &PyId_insert, "nO", index, x);
+ result = _PyObject_CallMethodId(a, &PyId_insert, "nO", index, x);
if (result == NULL)
return NULL;
Py_DECREF(result);
@@ -219,10 +219,10 @@ _bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x,
}
static PyMethodDef bisect_methods[] = {
- _BISECT_BISECT_RIGHT_METHODDEF
- _BISECT_INSORT_RIGHT_METHODDEF
- _BISECT_BISECT_LEFT_METHODDEF
- _BISECT_INSORT_LEFT_METHODDEF
+ _BISECT_BISECT_RIGHT_METHODDEF
+ _BISECT_INSORT_RIGHT_METHODDEF
+ _BISECT_BISECT_LEFT_METHODDEF
+ _BISECT_INSORT_LEFT_METHODDEF
{NULL, NULL} /* sentinel */
};
diff --git a/contrib/tools/python3/src/Modules/_blake2/blake2b_impl.c b/contrib/tools/python3/src/Modules/_blake2/blake2b_impl.c
index 5e214ddf69..7fb1296f8b 100644
--- a/contrib/tools/python3/src/Modules/_blake2/blake2b_impl.c
+++ b/contrib/tools/python3/src/Modules/_blake2/blake2b_impl.c
@@ -75,12 +75,12 @@ _blake2.blake2b.__new__ as py_blake2b_new
person: Py_buffer(c_default="NULL", py_default="b''") = None
fanout: int = 1
depth: int = 1
- leaf_size: unsigned_long = 0
- node_offset: unsigned_long_long = 0
+ leaf_size: unsigned_long = 0
+ node_offset: unsigned_long_long = 0
node_depth: int = 0
inner_size: int = 0
last_node: bool = False
- usedforsecurity: bool = True
+ usedforsecurity: bool = True
Return a new BLAKE2b hash object.
[clinic start generated code]*/
@@ -88,10 +88,10 @@ Return a new BLAKE2b hash object.
static PyObject *
py_blake2b_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
Py_buffer *key, Py_buffer *salt, Py_buffer *person,
- int fanout, int depth, unsigned long leaf_size,
- unsigned long long node_offset, int node_depth,
- int inner_size, int last_node, int usedforsecurity)
-/*[clinic end generated code: output=32bfd8f043c6896f input=b947312abff46977]*/
+ int fanout, int depth, unsigned long leaf_size,
+ unsigned long long node_offset, int node_depth,
+ int inner_size, int last_node, int usedforsecurity)
+/*[clinic end generated code: output=32bfd8f043c6896f input=b947312abff46977]*/
{
BLAKE2bObject *self = NULL;
Py_buffer buf;
@@ -150,9 +150,9 @@ py_blake2b_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
}
self->param.depth = (uint8_t)depth;
- if (leaf_size > 0xFFFFFFFFU) {
- PyErr_SetString(PyExc_OverflowError, "leaf_size is too large");
- goto error;
+ if (leaf_size > 0xFFFFFFFFU) {
+ PyErr_SetString(PyExc_OverflowError, "leaf_size is too large");
+ goto error;
}
// NB: Simple assignment here would be incorrect on big endian platforms.
store32(&(self->param.leaf_length), leaf_size);
@@ -401,10 +401,10 @@ PyTypeObject PyBlake2_BLAKE2bType = {
sizeof(BLAKE2bObject), /* tp_basicsize */
0, /* tp_itemsize */
py_blake2b_dealloc, /* tp_dealloc */
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_blake2/blake2module.c b/contrib/tools/python3/src/Modules/_blake2/blake2module.c
index d1fb47535d..ff142c9f3e 100644
--- a/contrib/tools/python3/src/Modules/_blake2/blake2module.c
+++ b/contrib/tools/python3/src/Modules/_blake2/blake2module.c
@@ -62,8 +62,8 @@ PyInit__blake2(void)
return NULL;
/* BLAKE2b */
- Py_SET_TYPE(&PyBlake2_BLAKE2bType, &PyType_Type);
- if (PyModule_AddType(m, &PyBlake2_BLAKE2bType) < 0) {
+ Py_SET_TYPE(&PyBlake2_BLAKE2bType, &PyType_Type);
+ if (PyModule_AddType(m, &PyBlake2_BLAKE2bType) < 0) {
return NULL;
}
@@ -79,8 +79,8 @@ PyInit__blake2(void)
PyModule_AddIntConstant(m, "BLAKE2B_MAX_DIGEST_SIZE", BLAKE2B_OUTBYTES);
/* BLAKE2s */
- Py_SET_TYPE(&PyBlake2_BLAKE2sType, &PyType_Type);
- if (PyModule_AddType(m, &PyBlake2_BLAKE2sType) < 0) {
+ Py_SET_TYPE(&PyBlake2_BLAKE2sType, &PyType_Type);
+ if (PyModule_AddType(m, &PyBlake2_BLAKE2sType) < 0) {
return NULL;
}
diff --git a/contrib/tools/python3/src/Modules/_blake2/blake2s_impl.c b/contrib/tools/python3/src/Modules/_blake2/blake2s_impl.c
index e03e010871..e3e90d0587 100644
--- a/contrib/tools/python3/src/Modules/_blake2/blake2s_impl.c
+++ b/contrib/tools/python3/src/Modules/_blake2/blake2s_impl.c
@@ -75,12 +75,12 @@ _blake2.blake2s.__new__ as py_blake2s_new
person: Py_buffer(c_default="NULL", py_default="b''") = None
fanout: int = 1
depth: int = 1
- leaf_size: unsigned_long = 0
- node_offset: unsigned_long_long = 0
+ leaf_size: unsigned_long = 0
+ node_offset: unsigned_long_long = 0
node_depth: int = 0
inner_size: int = 0
last_node: bool = False
- usedforsecurity: bool = True
+ usedforsecurity: bool = True
Return a new BLAKE2s hash object.
[clinic start generated code]*/
@@ -88,10 +88,10 @@ Return a new BLAKE2s hash object.
static PyObject *
py_blake2s_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
Py_buffer *key, Py_buffer *salt, Py_buffer *person,
- int fanout, int depth, unsigned long leaf_size,
- unsigned long long node_offset, int node_depth,
- int inner_size, int last_node, int usedforsecurity)
-/*[clinic end generated code: output=556181f73905c686 input=4dda87723f23abb0]*/
+ int fanout, int depth, unsigned long leaf_size,
+ unsigned long long node_offset, int node_depth,
+ int inner_size, int last_node, int usedforsecurity)
+/*[clinic end generated code: output=556181f73905c686 input=4dda87723f23abb0]*/
{
BLAKE2sObject *self = NULL;
Py_buffer buf;
@@ -150,9 +150,9 @@ py_blake2s_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
}
self->param.depth = (uint8_t)depth;
- if (leaf_size > 0xFFFFFFFFU) {
- PyErr_SetString(PyExc_OverflowError, "leaf_size is too large");
- goto error;
+ if (leaf_size > 0xFFFFFFFFU) {
+ PyErr_SetString(PyExc_OverflowError, "leaf_size is too large");
+ goto error;
}
// NB: Simple assignment here would be incorrect on big endian platforms.
store32(&(self->param.leaf_length), leaf_size);
@@ -401,10 +401,10 @@ PyTypeObject PyBlake2_BLAKE2sType = {
sizeof(BLAKE2sObject), /* tp_basicsize */
0, /* tp_itemsize */
py_blake2s_dealloc, /* tp_dealloc */
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_blake2/clinic/blake2b_impl.c.h b/contrib/tools/python3/src/Modules/_blake2/clinic/blake2b_impl.c.h
index a4ab6c500e..07258c31c9 100644
--- a/contrib/tools/python3/src/Modules/_blake2/clinic/blake2b_impl.c.h
+++ b/contrib/tools/python3/src/Modules/_blake2/clinic/blake2b_impl.c.h
@@ -5,8 +5,8 @@ preserve
PyDoc_STRVAR(py_blake2b_new__doc__,
"blake2b(data=b\'\', /, *, digest_size=_blake2.blake2b.MAX_DIGEST_SIZE,\n"
" key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n"
-" node_offset=0, node_depth=0, inner_size=0, last_node=False,\n"
-" usedforsecurity=True)\n"
+" node_offset=0, node_depth=0, inner_size=0, last_node=False,\n"
+" usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new BLAKE2b hash object.");
@@ -14,20 +14,20 @@ PyDoc_STRVAR(py_blake2b_new__doc__,
static PyObject *
py_blake2b_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
Py_buffer *key, Py_buffer *salt, Py_buffer *person,
- int fanout, int depth, unsigned long leaf_size,
- unsigned long long node_offset, int node_depth,
- int inner_size, int last_node, int usedforsecurity);
+ int fanout, int depth, unsigned long leaf_size,
+ unsigned long long node_offset, int node_depth,
+ int inner_size, int last_node, int usedforsecurity);
static PyObject *
py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "blake2b", 0};
- PyObject *argsbuf[13];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "blake2b", 0};
+ PyObject *argsbuf[13];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *data = NULL;
int digest_size = BLAKE2B_OUTBYTES;
Py_buffer key = {NULL, NULL};
@@ -35,163 +35,163 @@ py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
Py_buffer person = {NULL, NULL};
int fanout = 1;
int depth = 1;
- unsigned long leaf_size = 0;
- unsigned long long node_offset = 0;
+ unsigned long leaf_size = 0;
+ unsigned long long node_offset = 0;
int node_depth = 0;
int inner_size = 0;
int last_node = 0;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional_posonly;
- }
- noptargs--;
- data = fastargs[0];
-skip_optional_posonly:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (fastargs[1]) {
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- digest_size = _PyLong_AsInt(fastargs[1]);
- if (digest_size == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[2]) {
- if (PyObject_GetBuffer(fastargs[2], &key, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&key, 'C')) {
- _PyArg_BadArgument("blake2b", "argument 'key'", "contiguous buffer", fastargs[2]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[3]) {
- if (PyObject_GetBuffer(fastargs[3], &salt, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&salt, 'C')) {
- _PyArg_BadArgument("blake2b", "argument 'salt'", "contiguous buffer", fastargs[3]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[4]) {
- if (PyObject_GetBuffer(fastargs[4], &person, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&person, 'C')) {
- _PyArg_BadArgument("blake2b", "argument 'person'", "contiguous buffer", fastargs[4]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[5]) {
- if (PyFloat_Check(fastargs[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fanout = _PyLong_AsInt(fastargs[5]);
- if (fanout == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[6]) {
- if (PyFloat_Check(fastargs[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- depth = _PyLong_AsInt(fastargs[6]);
- if (depth == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[7]) {
- if (!_PyLong_UnsignedLong_Converter(fastargs[7], &leaf_size)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[8]) {
- if (!_PyLong_UnsignedLongLong_Converter(fastargs[8], &node_offset)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[9]) {
- if (PyFloat_Check(fastargs[9])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- node_depth = _PyLong_AsInt(fastargs[9]);
- if (node_depth == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[10]) {
- if (PyFloat_Check(fastargs[10])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- inner_size = _PyLong_AsInt(fastargs[10]);
- if (inner_size == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[11]) {
- last_node = PyObject_IsTrue(fastargs[11]);
- if (last_node < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- usedforsecurity = PyObject_IsTrue(fastargs[12]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = py_blake2b_new_impl(type, data, digest_size, &key, &salt, &person, fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node, usedforsecurity);
+ if (nargs < 1) {
+ goto skip_optional_posonly;
+ }
+ noptargs--;
+ data = fastargs[0];
+skip_optional_posonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (fastargs[1]) {
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ digest_size = _PyLong_AsInt(fastargs[1]);
+ if (digest_size == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[2]) {
+ if (PyObject_GetBuffer(fastargs[2], &key, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&key, 'C')) {
+ _PyArg_BadArgument("blake2b", "argument 'key'", "contiguous buffer", fastargs[2]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[3]) {
+ if (PyObject_GetBuffer(fastargs[3], &salt, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&salt, 'C')) {
+ _PyArg_BadArgument("blake2b", "argument 'salt'", "contiguous buffer", fastargs[3]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[4]) {
+ if (PyObject_GetBuffer(fastargs[4], &person, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&person, 'C')) {
+ _PyArg_BadArgument("blake2b", "argument 'person'", "contiguous buffer", fastargs[4]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[5]) {
+ if (PyFloat_Check(fastargs[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fanout = _PyLong_AsInt(fastargs[5]);
+ if (fanout == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[6]) {
+ if (PyFloat_Check(fastargs[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ depth = _PyLong_AsInt(fastargs[6]);
+ if (depth == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[7]) {
+ if (!_PyLong_UnsignedLong_Converter(fastargs[7], &leaf_size)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[8]) {
+ if (!_PyLong_UnsignedLongLong_Converter(fastargs[8], &node_offset)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[9]) {
+ if (PyFloat_Check(fastargs[9])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ node_depth = _PyLong_AsInt(fastargs[9]);
+ if (node_depth == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[10]) {
+ if (PyFloat_Check(fastargs[10])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ inner_size = _PyLong_AsInt(fastargs[10]);
+ if (inner_size == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[11]) {
+ last_node = PyObject_IsTrue(fastargs[11]);
+ if (last_node < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ usedforsecurity = PyObject_IsTrue(fastargs[12]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = py_blake2b_new_impl(type, data, digest_size, &key, &salt, &person, fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node, usedforsecurity);
exit:
/* Cleanup for key */
@@ -272,4 +272,4 @@ _blake2_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored))
{
return _blake2_blake2b_hexdigest_impl(self);
}
-/*[clinic end generated code: output=2d6d0fe9aa42a42a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2d6d0fe9aa42a42a input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_blake2/clinic/blake2s_impl.c.h b/contrib/tools/python3/src/Modules/_blake2/clinic/blake2s_impl.c.h
index 1f12b96c24..71c5706fb6 100644
--- a/contrib/tools/python3/src/Modules/_blake2/clinic/blake2s_impl.c.h
+++ b/contrib/tools/python3/src/Modules/_blake2/clinic/blake2s_impl.c.h
@@ -5,8 +5,8 @@ preserve
PyDoc_STRVAR(py_blake2s_new__doc__,
"blake2s(data=b\'\', /, *, digest_size=_blake2.blake2s.MAX_DIGEST_SIZE,\n"
" key=b\'\', salt=b\'\', person=b\'\', fanout=1, depth=1, leaf_size=0,\n"
-" node_offset=0, node_depth=0, inner_size=0, last_node=False,\n"
-" usedforsecurity=True)\n"
+" node_offset=0, node_depth=0, inner_size=0, last_node=False,\n"
+" usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new BLAKE2s hash object.");
@@ -14,20 +14,20 @@ PyDoc_STRVAR(py_blake2s_new__doc__,
static PyObject *
py_blake2s_new_impl(PyTypeObject *type, PyObject *data, int digest_size,
Py_buffer *key, Py_buffer *salt, Py_buffer *person,
- int fanout, int depth, unsigned long leaf_size,
- unsigned long long node_offset, int node_depth,
- int inner_size, int last_node, int usedforsecurity);
+ int fanout, int depth, unsigned long leaf_size,
+ unsigned long long node_offset, int node_depth,
+ int inner_size, int last_node, int usedforsecurity);
static PyObject *
py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "blake2s", 0};
- PyObject *argsbuf[13];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static const char * const _keywords[] = {"", "digest_size", "key", "salt", "person", "fanout", "depth", "leaf_size", "node_offset", "node_depth", "inner_size", "last_node", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "blake2s", 0};
+ PyObject *argsbuf[13];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *data = NULL;
int digest_size = BLAKE2S_OUTBYTES;
Py_buffer key = {NULL, NULL};
@@ -35,163 +35,163 @@ py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
Py_buffer person = {NULL, NULL};
int fanout = 1;
int depth = 1;
- unsigned long leaf_size = 0;
- unsigned long long node_offset = 0;
+ unsigned long leaf_size = 0;
+ unsigned long long node_offset = 0;
int node_depth = 0;
int inner_size = 0;
int last_node = 0;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional_posonly;
- }
- noptargs--;
- data = fastargs[0];
-skip_optional_posonly:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (fastargs[1]) {
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- digest_size = _PyLong_AsInt(fastargs[1]);
- if (digest_size == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[2]) {
- if (PyObject_GetBuffer(fastargs[2], &key, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&key, 'C')) {
- _PyArg_BadArgument("blake2s", "argument 'key'", "contiguous buffer", fastargs[2]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[3]) {
- if (PyObject_GetBuffer(fastargs[3], &salt, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&salt, 'C')) {
- _PyArg_BadArgument("blake2s", "argument 'salt'", "contiguous buffer", fastargs[3]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[4]) {
- if (PyObject_GetBuffer(fastargs[4], &person, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&person, 'C')) {
- _PyArg_BadArgument("blake2s", "argument 'person'", "contiguous buffer", fastargs[4]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[5]) {
- if (PyFloat_Check(fastargs[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fanout = _PyLong_AsInt(fastargs[5]);
- if (fanout == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[6]) {
- if (PyFloat_Check(fastargs[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- depth = _PyLong_AsInt(fastargs[6]);
- if (depth == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[7]) {
- if (!_PyLong_UnsignedLong_Converter(fastargs[7], &leaf_size)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[8]) {
- if (!_PyLong_UnsignedLongLong_Converter(fastargs[8], &node_offset)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[9]) {
- if (PyFloat_Check(fastargs[9])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- node_depth = _PyLong_AsInt(fastargs[9]);
- if (node_depth == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[10]) {
- if (PyFloat_Check(fastargs[10])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- inner_size = _PyLong_AsInt(fastargs[10]);
- if (inner_size == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[11]) {
- last_node = PyObject_IsTrue(fastargs[11]);
- if (last_node < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- usedforsecurity = PyObject_IsTrue(fastargs[12]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = py_blake2s_new_impl(type, data, digest_size, &key, &salt, &person, fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node, usedforsecurity);
+ if (nargs < 1) {
+ goto skip_optional_posonly;
+ }
+ noptargs--;
+ data = fastargs[0];
+skip_optional_posonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (fastargs[1]) {
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ digest_size = _PyLong_AsInt(fastargs[1]);
+ if (digest_size == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[2]) {
+ if (PyObject_GetBuffer(fastargs[2], &key, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&key, 'C')) {
+ _PyArg_BadArgument("blake2s", "argument 'key'", "contiguous buffer", fastargs[2]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[3]) {
+ if (PyObject_GetBuffer(fastargs[3], &salt, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&salt, 'C')) {
+ _PyArg_BadArgument("blake2s", "argument 'salt'", "contiguous buffer", fastargs[3]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[4]) {
+ if (PyObject_GetBuffer(fastargs[4], &person, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&person, 'C')) {
+ _PyArg_BadArgument("blake2s", "argument 'person'", "contiguous buffer", fastargs[4]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[5]) {
+ if (PyFloat_Check(fastargs[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fanout = _PyLong_AsInt(fastargs[5]);
+ if (fanout == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[6]) {
+ if (PyFloat_Check(fastargs[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ depth = _PyLong_AsInt(fastargs[6]);
+ if (depth == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[7]) {
+ if (!_PyLong_UnsignedLong_Converter(fastargs[7], &leaf_size)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[8]) {
+ if (!_PyLong_UnsignedLongLong_Converter(fastargs[8], &node_offset)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[9]) {
+ if (PyFloat_Check(fastargs[9])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ node_depth = _PyLong_AsInt(fastargs[9]);
+ if (node_depth == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[10]) {
+ if (PyFloat_Check(fastargs[10])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ inner_size = _PyLong_AsInt(fastargs[10]);
+ if (inner_size == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[11]) {
+ last_node = PyObject_IsTrue(fastargs[11]);
+ if (last_node < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ usedforsecurity = PyObject_IsTrue(fastargs[12]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = py_blake2s_new_impl(type, data, digest_size, &key, &salt, &person, fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node, usedforsecurity);
exit:
/* Cleanup for key */
@@ -272,4 +272,4 @@ _blake2_blake2s_hexdigest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored))
{
return _blake2_blake2s_hexdigest_impl(self);
}
-/*[clinic end generated code: output=c80d8d06ce40a192 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c80d8d06ce40a192 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-config.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-config.h
index 2969056866..f5dd6faa9e 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-config.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-config.h
@@ -1,20 +1,20 @@
/*
BLAKE2 reference source code package - optimized C implementations
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2_CONFIG_H__
#define __BLAKE2_CONFIG_H__
-#if defined(__SSE2__)
+#if defined(__SSE2__)
#define HAVE_SSE2
#endif
@@ -23,7 +23,7 @@
#endif
#if defined(__SSE4_1__)
-#define HAVE_SSE4_1
+#define HAVE_SSE4_1
#endif
#if defined(__AVX__)
@@ -48,8 +48,8 @@
#endif
#ifdef HAVE_AVX
-#ifndef HAVE_SSE4_1
-#define HAVE_SSE4_1
+#ifndef HAVE_SSE4_1
+#define HAVE_SSE4_1
#endif
#endif
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-dispatch.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-dispatch.c
index 47667e5d03..96bb3408bb 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-dispatch.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-dispatch.c
@@ -1,577 +1,577 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#include <stdio.h>
-#if defined(WIN32)
-#include <windows.h>
-#endif
-#include "blake2.h"
-
-#if defined(__x86_64__) || defined(__i386__) || defined(_M_IX86) || defined(_M_X64)
-#define HAVE_X86
-#endif
-
-typedef enum
-{
- NONE = 0,
-#if defined(HAVE_X86)
- SSE2 = 1,
- SSSE3 = 2,
- SSE41 = 3,
- AVX = 4,
- XOP = 5,
- /* AVX2 = 6, */
-#endif
-} cpu_feature_t;
-
-static const char feature_names[][8] =
-{
- "none",
-#if defined(HAVE_X86)
- "sse2",
- "ssse3",
- "sse41",
- "avx",
- "xop",
- /* "avx2" */
-#endif
-};
-
-#if defined(HAVE_X86)
-
-#if defined(__GNUC__)
-static inline void cpuid( uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx )
-{
- __asm__ __volatile__(
-#if defined(__i386__) /* This is needed for -fPIC to work on i386 */
- "movl %%ebx, %%esi\n\t"
-#endif
- "cpuid\n\t"
-#if defined(__i386__)
- "xchgl %%ebx, %%esi\n\t"
- : "=a"( *eax ), "=S"( *ebx ), "=c"( *ecx ), "=d"( *edx ) : "a"( *eax ) );
-#else
- : "=a"( *eax ), "=b"( *ebx ), "=c"( *ecx ), "=d"( *edx ) : "a"( *eax ) );
-#endif
-}
-
-static inline uint64_t xgetbv(uint32_t xcr)
-{
- uint32_t a, d;
- __asm__ __volatile__(
- "xgetbv"
- : "=a"(a),"=d"(d)
- : "c"(xcr)
- );
- return ((uint64_t)d << 32) | a;
-}
-
-#elif defined(_MSC_VER)
-#include <intrin.h>
-static inline void cpuid( uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx )
-{
- int regs[4];
- __cpuid( regs, *eax );
- *eax = regs[0];
- *ebx = regs[1];
- *ecx = regs[2];
- *edx = regs[3];
-}
-#else
-#error "Don't know how to call cpuid on this compiler!"
-#endif
-
-#endif /* HAVE_X86 */
-
-static inline cpu_feature_t get_cpu_features( void )
-{
-#if defined(HAVE_X86)
- static volatile int initialized = 0;
- static cpu_feature_t feature = NONE; // Safe default
- uint32_t eax, ecx, edx, ebx;
-
- if( initialized )
- return feature;
-
- eax = 1;
- cpuid( &eax, &ebx, &ecx, &edx );
-
- if( 1 & ( edx >> 26 ) )
- feature = SSE2;
-
- if( 1 & ( ecx >> 9 ) )
- feature = SSSE3;
-
- if( 1 & ( ecx >> 19 ) )
- feature = SSE41;
-
-#if defined(WIN32) /* Work around the fact that Windows <7 does NOT support AVX... */
- if( IsProcessorFeaturePresent(17) ) /* Some environments don't know about PF_XSAVE_ENABLED */
-#endif
- {
- /* check for AVX and OSXSAVE bits */
- if( 1 & ( ecx >> 28 ) & (ecx >> 27) ) {
-#if !defined(WIN32) /* Already checked for this in WIN32 */
- if( (xgetbv(0) & 6) == 6 ) /* XCR0 */
-#endif
- feature = AVX;
- }
-
-
- eax = 0x80000001;
- cpuid( &eax, &ebx, &ecx, &edx );
-
- if( 1 & ( ecx >> 11 ) )
- feature = XOP;
- }
-
- /* For future architectures */
- /*
- eax = 7; ecx = 0;
- cpuid(&eax, &ebx, &ecx, &edx);
-
- if(1&(ebx >> 5))
- feature = AVX2;
- */
- /* fprintf( stderr, "Using %s engine\n", feature_names[feature] ); */
- initialized = 1;
- return feature;
-#else
- return NONE;
-#endif
-}
-
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2b_init_ref( blake2b_state *S, size_t outlen );
- int blake2b_init_key_ref( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param_ref( blake2b_state *S, const blake2b_param *P );
- int blake2b_update_ref( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final_ref( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b_ref( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
-#if defined(HAVE_X86)
-
- int blake2b_init_sse2( blake2b_state *S, size_t outlen );
- int blake2b_init_key_sse2( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param_sse2( blake2b_state *S, const blake2b_param *P );
- int blake2b_update_sse2( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final_sse2( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b_sse2( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2b_init_ssse3( blake2b_state *S, size_t outlen );
- int blake2b_init_key_ssse3( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param_ssse3( blake2b_state *S, const blake2b_param *P );
- int blake2b_update_ssse3( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final_ssse3( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b_ssse3( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2b_init_sse41( blake2b_state *S, size_t outlen );
- int blake2b_init_key_sse41( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param_sse41( blake2b_state *S, const blake2b_param *P );
- int blake2b_update_sse41( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final_sse41( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b_sse41( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2b_init_avx( blake2b_state *S, size_t outlen );
- int blake2b_init_key_avx( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param_avx( blake2b_state *S, const blake2b_param *P );
- int blake2b_update_avx( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final_avx( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b_avx( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2b_init_xop( blake2b_state *S, size_t outlen );
- int blake2b_init_key_xop( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param_xop( blake2b_state *S, const blake2b_param *P );
- int blake2b_update_xop( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final_xop( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b_xop( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
-#endif /* HAVE_X86 */
-
- int blake2s_init_ref( blake2s_state *S, size_t outlen );
- int blake2s_init_key_ref( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param_ref( blake2s_state *S, const blake2s_param *P );
- int blake2s_update_ref( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final_ref( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s_ref( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
-#if defined(HAVE_X86)
-
- int blake2s_init_sse2( blake2s_state *S, size_t outlen );
- int blake2s_init_key_sse2( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param_sse2( blake2s_state *S, const blake2s_param *P );
- int blake2s_update_sse2( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final_sse2( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s_sse2( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2s_init_ssse3( blake2s_state *S, size_t outlen );
- int blake2s_init_key_ssse3( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param_ssse3( blake2s_state *S, const blake2s_param *P );
- int blake2s_update_ssse3( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final_ssse3( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s_ssse3( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2s_init_sse41( blake2s_state *S, size_t outlen );
- int blake2s_init_key_sse41( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param_sse41( blake2s_state *S, const blake2s_param *P );
- int blake2s_update_sse41( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final_sse41( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s_sse41( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2s_init_avx( blake2s_state *S, size_t outlen );
- int blake2s_init_key_avx( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param_avx( blake2s_state *S, const blake2s_param *P );
- int blake2s_update_avx( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final_avx( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s_avx( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2s_init_xop( blake2s_state *S, size_t outlen );
- int blake2s_init_key_xop( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param_xop( blake2s_state *S, const blake2s_param *P );
- int blake2s_update_xop( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final_xop( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s_xop( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
-#endif /* HAVE_X86 */
-
-#if defined(__cplusplus)
-}
-#endif
-
-typedef int ( *blake2b_init_fn )( blake2b_state *, size_t );
-typedef int ( *blake2b_init_key_fn )( blake2b_state *, size_t, const void *, size_t );
-typedef int ( *blake2b_init_param_fn )( blake2b_state *, const blake2b_param * );
-typedef int ( *blake2b_update_fn )( blake2b_state *, const uint8_t *, size_t );
-typedef int ( *blake2b_final_fn )( blake2b_state *, uint8_t *, size_t );
-typedef int ( *blake2b_fn )( uint8_t *, const void *, const void *, size_t, size_t, size_t );
-
-typedef int ( *blake2s_init_fn )( blake2s_state *, size_t );
-typedef int ( *blake2s_init_key_fn )( blake2s_state *, size_t, const void *, size_t );
-typedef int ( *blake2s_init_param_fn )( blake2s_state *, const blake2s_param * );
-typedef int ( *blake2s_update_fn )( blake2s_state *, const uint8_t *, size_t );
-typedef int ( *blake2s_final_fn )( blake2s_state *, uint8_t *, size_t );
-typedef int ( *blake2s_fn )( uint8_t *, const void *, const void *, size_t, size_t, size_t );
-
-static const blake2b_init_fn blake2b_init_table[] =
-{
- blake2b_init_ref,
-#if defined(HAVE_X86)
- blake2b_init_sse2,
- blake2b_init_ssse3,
- blake2b_init_sse41,
- blake2b_init_avx,
- blake2b_init_xop
-#endif
-};
-
-static const blake2b_init_key_fn blake2b_init_key_table[] =
-{
- blake2b_init_key_ref,
-#if defined(HAVE_X86)
- blake2b_init_key_sse2,
- blake2b_init_key_ssse3,
- blake2b_init_key_sse41,
- blake2b_init_key_avx,
- blake2b_init_key_xop
-#endif
-};
-
-static const blake2b_init_param_fn blake2b_init_param_table[] =
-{
- blake2b_init_param_ref,
-#if defined(HAVE_X86)
- blake2b_init_param_sse2,
- blake2b_init_param_ssse3,
- blake2b_init_param_sse41,
- blake2b_init_param_avx,
- blake2b_init_param_xop
-#endif
-};
-
-static const blake2b_update_fn blake2b_update_table[] =
-{
- blake2b_update_ref,
-#if defined(HAVE_X86)
- blake2b_update_sse2,
- blake2b_update_ssse3,
- blake2b_update_sse41,
- blake2b_update_avx,
- blake2b_update_xop
-#endif
-};
-
-static const blake2b_final_fn blake2b_final_table[] =
-{
- blake2b_final_ref,
-#if defined(HAVE_X86)
- blake2b_final_sse2,
- blake2b_final_ssse3,
- blake2b_final_sse41,
- blake2b_final_avx,
- blake2b_final_xop
-#endif
-};
-
-static const blake2b_fn blake2b_table[] =
-{
- blake2b_ref,
-#if defined(HAVE_X86)
- blake2b_sse2,
- blake2b_ssse3,
- blake2b_sse41,
- blake2b_avx,
- blake2b_xop
-#endif
-};
-
-static const blake2s_init_fn blake2s_init_table[] =
-{
- blake2s_init_ref,
-#if defined(HAVE_X86)
- blake2s_init_sse2,
- blake2s_init_ssse3,
- blake2s_init_sse41,
- blake2s_init_avx,
- blake2s_init_xop
-#endif
-};
-
-static const blake2s_init_key_fn blake2s_init_key_table[] =
-{
- blake2s_init_key_ref,
-#if defined(HAVE_X86)
- blake2s_init_key_sse2,
- blake2s_init_key_ssse3,
- blake2s_init_key_sse41,
- blake2s_init_key_avx,
- blake2s_init_key_xop
-#endif
-};
-
-static const blake2s_init_param_fn blake2s_init_param_table[] =
-{
- blake2s_init_param_ref,
-#if defined(HAVE_X86)
- blake2s_init_param_sse2,
- blake2s_init_param_ssse3,
- blake2s_init_param_sse41,
- blake2s_init_param_avx,
- blake2s_init_param_xop
-#endif
-};
-
-static const blake2s_update_fn blake2s_update_table[] =
-{
- blake2s_update_ref,
-#if defined(HAVE_X86)
- blake2s_update_sse2,
- blake2s_update_ssse3,
- blake2s_update_sse41,
- blake2s_update_avx,
- blake2s_update_xop
-#endif
-};
-
-static const blake2s_final_fn blake2s_final_table[] =
-{
- blake2s_final_ref,
-#if defined(HAVE_X86)
- blake2s_final_sse2,
- blake2s_final_ssse3,
- blake2s_final_sse41,
- blake2s_final_avx,
- blake2s_final_xop
-#endif
-};
-
-static const blake2s_fn blake2s_table[] =
-{
- blake2s_ref,
-#if defined(HAVE_X86)
- blake2s_sse2,
- blake2s_ssse3,
- blake2s_sse41,
- blake2s_avx,
- blake2s_xop
-#endif
-};
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2b_init_dispatch( blake2b_state *S, size_t outlen );
- int blake2b_init_key_dispatch( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param_dispatch( blake2b_state *S, const blake2b_param *P );
- int blake2b_update_dispatch( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final_dispatch( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- int blake2s_init_dispatch( blake2s_state *S, size_t outlen );
- int blake2s_init_key_dispatch( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param_dispatch( blake2s_state *S, const blake2s_param *P );
- int blake2s_update_dispatch( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final_dispatch( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
-static blake2b_init_fn blake2b_init_ptr = blake2b_init_dispatch;
-static blake2b_init_key_fn blake2b_init_key_ptr = blake2b_init_key_dispatch;
-static blake2b_init_param_fn blake2b_init_param_ptr = blake2b_init_param_dispatch;
-static blake2b_update_fn blake2b_update_ptr = blake2b_update_dispatch;
-static blake2b_final_fn blake2b_final_ptr = blake2b_final_dispatch;
-static blake2b_fn blake2b_ptr = blake2b_dispatch;
-
-static blake2s_init_fn blake2s_init_ptr = blake2s_init_dispatch;
-static blake2s_init_key_fn blake2s_init_key_ptr = blake2s_init_key_dispatch;
-static blake2s_init_param_fn blake2s_init_param_ptr = blake2s_init_param_dispatch;
-static blake2s_update_fn blake2s_update_ptr = blake2s_update_dispatch;
-static blake2s_final_fn blake2s_final_ptr = blake2s_final_dispatch;
-static blake2s_fn blake2s_ptr = blake2s_dispatch;
-
-int blake2b_init_dispatch( blake2b_state *S, size_t outlen )
-{
- blake2b_init_ptr = blake2b_init_table[get_cpu_features()];
- return blake2b_init_ptr( S, outlen );
-}
-
-int blake2b_init_key_dispatch( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2b_init_key_ptr = blake2b_init_key_table[get_cpu_features()];
- return blake2b_init_key_ptr( S, outlen, key, keylen );
-}
-
-int blake2b_init_param_dispatch( blake2b_state *S, const blake2b_param *P )
-{
- blake2b_init_param_ptr = blake2b_init_param_table[get_cpu_features()];
- return blake2b_init_param_ptr( S, P );
-}
-
-int blake2b_update_dispatch( blake2b_state *S, const uint8_t *in, size_t inlen )
-{
- blake2b_update_ptr = blake2b_update_table[get_cpu_features()];
- return blake2b_update_ptr( S, in, inlen );
-}
-
-int blake2b_final_dispatch( blake2b_state *S, uint8_t *out, size_t outlen )
-{
- blake2b_final_ptr = blake2b_final_table[get_cpu_features()];
- return blake2b_final_ptr( S, out, outlen );
-}
-
-int blake2b_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- blake2b_ptr = blake2b_table[get_cpu_features()];
- return blake2b_ptr( out, in, key, outlen, inlen, keylen );
-}
-
-BLAKE2_API int blake2b_init( blake2b_state *S, size_t outlen )
-{
- return blake2b_init_ptr( S, outlen );
-}
-
-BLAKE2_API int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- return blake2b_init_key_ptr( S, outlen, key, keylen );
-}
-
-BLAKE2_API int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
-{
- return blake2b_init_param_ptr( S, P );
-}
-
-BLAKE2_API int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
-{
- return blake2b_update_ptr( S, in, inlen );
-}
-
-BLAKE2_API int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
-{
- return blake2b_final_ptr( S, out, outlen );
-}
-
-BLAKE2_API int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- return blake2b_ptr( out, in, key, outlen, inlen, keylen );
-}
-
-int blake2s_init_dispatch( blake2s_state *S, size_t outlen )
-{
- blake2s_init_ptr = blake2s_init_table[get_cpu_features()];
- return blake2s_init_ptr( S, outlen );
-}
-
-int blake2s_init_key_dispatch( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2s_init_key_ptr = blake2s_init_key_table[get_cpu_features()];
- return blake2s_init_key_ptr( S, outlen, key, keylen );
-}
-
-int blake2s_init_param_dispatch( blake2s_state *S, const blake2s_param *P )
-{
- blake2s_init_param_ptr = blake2s_init_param_table[get_cpu_features()];
- return blake2s_init_param_ptr( S, P );
-}
-
-int blake2s_update_dispatch( blake2s_state *S, const uint8_t *in, size_t inlen )
-{
- blake2s_update_ptr = blake2s_update_table[get_cpu_features()];
- return blake2s_update_ptr( S, in, inlen );
-}
-
-int blake2s_final_dispatch( blake2s_state *S, uint8_t *out, size_t outlen )
-{
- blake2s_final_ptr = blake2s_final_table[get_cpu_features()];
- return blake2s_final_ptr( S, out, outlen );
-}
-
-int blake2s_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- blake2s_ptr = blake2s_table[get_cpu_features()];
- return blake2s_ptr( out, in, key, outlen, inlen, keylen );
-}
-
-BLAKE2_API int blake2s_init( blake2s_state *S, size_t outlen )
-{
- return blake2s_init_ptr( S, outlen );
-}
-
-BLAKE2_API int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- return blake2s_init_key_ptr( S, outlen, key, keylen );
-}
-
-BLAKE2_API int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
-{
- return blake2s_init_param_ptr( S, P );
-}
-
-BLAKE2_API int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
-{
- return blake2s_update_ptr( S, in, inlen );
-}
-
-BLAKE2_API int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
-{
- return blake2s_final_ptr( S, out, outlen );
-}
-
-BLAKE2_API int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- return blake2s_ptr( out, in, key, outlen, inlen, keylen );
-}
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+#include <stdio.h>
+#if defined(WIN32)
+#include <windows.h>
+#endif
+#include "blake2.h"
+
+#if defined(__x86_64__) || defined(__i386__) || defined(_M_IX86) || defined(_M_X64)
+#define HAVE_X86
+#endif
+
+typedef enum
+{
+ NONE = 0,
+#if defined(HAVE_X86)
+ SSE2 = 1,
+ SSSE3 = 2,
+ SSE41 = 3,
+ AVX = 4,
+ XOP = 5,
+ /* AVX2 = 6, */
+#endif
+} cpu_feature_t;
+
+static const char feature_names[][8] =
+{
+ "none",
+#if defined(HAVE_X86)
+ "sse2",
+ "ssse3",
+ "sse41",
+ "avx",
+ "xop",
+ /* "avx2" */
+#endif
+};
+
+#if defined(HAVE_X86)
+
+#if defined(__GNUC__)
+static inline void cpuid( uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx )
+{
+ __asm__ __volatile__(
+#if defined(__i386__) /* This is needed for -fPIC to work on i386 */
+ "movl %%ebx, %%esi\n\t"
+#endif
+ "cpuid\n\t"
+#if defined(__i386__)
+ "xchgl %%ebx, %%esi\n\t"
+ : "=a"( *eax ), "=S"( *ebx ), "=c"( *ecx ), "=d"( *edx ) : "a"( *eax ) );
+#else
+ : "=a"( *eax ), "=b"( *ebx ), "=c"( *ecx ), "=d"( *edx ) : "a"( *eax ) );
+#endif
+}
+
+static inline uint64_t xgetbv(uint32_t xcr)
+{
+ uint32_t a, d;
+ __asm__ __volatile__(
+ "xgetbv"
+ : "=a"(a),"=d"(d)
+ : "c"(xcr)
+ );
+ return ((uint64_t)d << 32) | a;
+}
+
+#elif defined(_MSC_VER)
+#include <intrin.h>
+static inline void cpuid( uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx )
+{
+ int regs[4];
+ __cpuid( regs, *eax );
+ *eax = regs[0];
+ *ebx = regs[1];
+ *ecx = regs[2];
+ *edx = regs[3];
+}
+#else
+#error "Don't know how to call cpuid on this compiler!"
+#endif
+
+#endif /* HAVE_X86 */
+
+static inline cpu_feature_t get_cpu_features( void )
+{
+#if defined(HAVE_X86)
+ static volatile int initialized = 0;
+ static cpu_feature_t feature = NONE; // Safe default
+ uint32_t eax, ecx, edx, ebx;
+
+ if( initialized )
+ return feature;
+
+ eax = 1;
+ cpuid( &eax, &ebx, &ecx, &edx );
+
+ if( 1 & ( edx >> 26 ) )
+ feature = SSE2;
+
+ if( 1 & ( ecx >> 9 ) )
+ feature = SSSE3;
+
+ if( 1 & ( ecx >> 19 ) )
+ feature = SSE41;
+
+#if defined(WIN32) /* Work around the fact that Windows <7 does NOT support AVX... */
+ if( IsProcessorFeaturePresent(17) ) /* Some environments don't know about PF_XSAVE_ENABLED */
+#endif
+ {
+ /* check for AVX and OSXSAVE bits */
+ if( 1 & ( ecx >> 28 ) & (ecx >> 27) ) {
+#if !defined(WIN32) /* Already checked for this in WIN32 */
+ if( (xgetbv(0) & 6) == 6 ) /* XCR0 */
+#endif
+ feature = AVX;
+ }
+
+
+ eax = 0x80000001;
+ cpuid( &eax, &ebx, &ecx, &edx );
+
+ if( 1 & ( ecx >> 11 ) )
+ feature = XOP;
+ }
+
+ /* For future architectures */
+ /*
+ eax = 7; ecx = 0;
+ cpuid(&eax, &ebx, &ecx, &edx);
+
+ if(1&(ebx >> 5))
+ feature = AVX2;
+ */
+ /* fprintf( stderr, "Using %s engine\n", feature_names[feature] ); */
+ initialized = 1;
+ return feature;
+#else
+ return NONE;
+#endif
+}
+
+
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+ int blake2b_init_ref( blake2b_state *S, size_t outlen );
+ int blake2b_init_key_ref( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param_ref( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update_ref( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final_ref( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b_ref( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+#if defined(HAVE_X86)
+
+ int blake2b_init_sse2( blake2b_state *S, size_t outlen );
+ int blake2b_init_key_sse2( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param_sse2( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update_sse2( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final_sse2( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b_sse2( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2b_init_ssse3( blake2b_state *S, size_t outlen );
+ int blake2b_init_key_ssse3( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param_ssse3( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update_ssse3( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final_ssse3( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b_ssse3( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2b_init_sse41( blake2b_state *S, size_t outlen );
+ int blake2b_init_key_sse41( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param_sse41( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update_sse41( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final_sse41( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b_sse41( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2b_init_avx( blake2b_state *S, size_t outlen );
+ int blake2b_init_key_avx( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param_avx( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update_avx( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final_avx( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b_avx( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2b_init_xop( blake2b_state *S, size_t outlen );
+ int blake2b_init_key_xop( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param_xop( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update_xop( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final_xop( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b_xop( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+#endif /* HAVE_X86 */
+
+ int blake2s_init_ref( blake2s_state *S, size_t outlen );
+ int blake2s_init_key_ref( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_init_param_ref( blake2s_state *S, const blake2s_param *P );
+ int blake2s_update_ref( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final_ref( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s_ref( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+#if defined(HAVE_X86)
+
+ int blake2s_init_sse2( blake2s_state *S, size_t outlen );
+ int blake2s_init_key_sse2( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_init_param_sse2( blake2s_state *S, const blake2s_param *P );
+ int blake2s_update_sse2( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final_sse2( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s_sse2( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2s_init_ssse3( blake2s_state *S, size_t outlen );
+ int blake2s_init_key_ssse3( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_init_param_ssse3( blake2s_state *S, const blake2s_param *P );
+ int blake2s_update_ssse3( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final_ssse3( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s_ssse3( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2s_init_sse41( blake2s_state *S, size_t outlen );
+ int blake2s_init_key_sse41( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_init_param_sse41( blake2s_state *S, const blake2s_param *P );
+ int blake2s_update_sse41( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final_sse41( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s_sse41( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2s_init_avx( blake2s_state *S, size_t outlen );
+ int blake2s_init_key_avx( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_init_param_avx( blake2s_state *S, const blake2s_param *P );
+ int blake2s_update_avx( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final_avx( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s_avx( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2s_init_xop( blake2s_state *S, size_t outlen );
+ int blake2s_init_key_xop( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_init_param_xop( blake2s_state *S, const blake2s_param *P );
+ int blake2s_update_xop( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final_xop( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s_xop( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+#endif /* HAVE_X86 */
+
+#if defined(__cplusplus)
+}
+#endif
+
+typedef int ( *blake2b_init_fn )( blake2b_state *, size_t );
+typedef int ( *blake2b_init_key_fn )( blake2b_state *, size_t, const void *, size_t );
+typedef int ( *blake2b_init_param_fn )( blake2b_state *, const blake2b_param * );
+typedef int ( *blake2b_update_fn )( blake2b_state *, const uint8_t *, size_t );
+typedef int ( *blake2b_final_fn )( blake2b_state *, uint8_t *, size_t );
+typedef int ( *blake2b_fn )( uint8_t *, const void *, const void *, size_t, size_t, size_t );
+
+typedef int ( *blake2s_init_fn )( blake2s_state *, size_t );
+typedef int ( *blake2s_init_key_fn )( blake2s_state *, size_t, const void *, size_t );
+typedef int ( *blake2s_init_param_fn )( blake2s_state *, const blake2s_param * );
+typedef int ( *blake2s_update_fn )( blake2s_state *, const uint8_t *, size_t );
+typedef int ( *blake2s_final_fn )( blake2s_state *, uint8_t *, size_t );
+typedef int ( *blake2s_fn )( uint8_t *, const void *, const void *, size_t, size_t, size_t );
+
+static const blake2b_init_fn blake2b_init_table[] =
+{
+ blake2b_init_ref,
+#if defined(HAVE_X86)
+ blake2b_init_sse2,
+ blake2b_init_ssse3,
+ blake2b_init_sse41,
+ blake2b_init_avx,
+ blake2b_init_xop
+#endif
+};
+
+static const blake2b_init_key_fn blake2b_init_key_table[] =
+{
+ blake2b_init_key_ref,
+#if defined(HAVE_X86)
+ blake2b_init_key_sse2,
+ blake2b_init_key_ssse3,
+ blake2b_init_key_sse41,
+ blake2b_init_key_avx,
+ blake2b_init_key_xop
+#endif
+};
+
+static const blake2b_init_param_fn blake2b_init_param_table[] =
+{
+ blake2b_init_param_ref,
+#if defined(HAVE_X86)
+ blake2b_init_param_sse2,
+ blake2b_init_param_ssse3,
+ blake2b_init_param_sse41,
+ blake2b_init_param_avx,
+ blake2b_init_param_xop
+#endif
+};
+
+static const blake2b_update_fn blake2b_update_table[] =
+{
+ blake2b_update_ref,
+#if defined(HAVE_X86)
+ blake2b_update_sse2,
+ blake2b_update_ssse3,
+ blake2b_update_sse41,
+ blake2b_update_avx,
+ blake2b_update_xop
+#endif
+};
+
+static const blake2b_final_fn blake2b_final_table[] =
+{
+ blake2b_final_ref,
+#if defined(HAVE_X86)
+ blake2b_final_sse2,
+ blake2b_final_ssse3,
+ blake2b_final_sse41,
+ blake2b_final_avx,
+ blake2b_final_xop
+#endif
+};
+
+static const blake2b_fn blake2b_table[] =
+{
+ blake2b_ref,
+#if defined(HAVE_X86)
+ blake2b_sse2,
+ blake2b_ssse3,
+ blake2b_sse41,
+ blake2b_avx,
+ blake2b_xop
+#endif
+};
+
+static const blake2s_init_fn blake2s_init_table[] =
+{
+ blake2s_init_ref,
+#if defined(HAVE_X86)
+ blake2s_init_sse2,
+ blake2s_init_ssse3,
+ blake2s_init_sse41,
+ blake2s_init_avx,
+ blake2s_init_xop
+#endif
+};
+
+static const blake2s_init_key_fn blake2s_init_key_table[] =
+{
+ blake2s_init_key_ref,
+#if defined(HAVE_X86)
+ blake2s_init_key_sse2,
+ blake2s_init_key_ssse3,
+ blake2s_init_key_sse41,
+ blake2s_init_key_avx,
+ blake2s_init_key_xop
+#endif
+};
+
+static const blake2s_init_param_fn blake2s_init_param_table[] =
+{
+ blake2s_init_param_ref,
+#if defined(HAVE_X86)
+ blake2s_init_param_sse2,
+ blake2s_init_param_ssse3,
+ blake2s_init_param_sse41,
+ blake2s_init_param_avx,
+ blake2s_init_param_xop
+#endif
+};
+
+static const blake2s_update_fn blake2s_update_table[] =
+{
+ blake2s_update_ref,
+#if defined(HAVE_X86)
+ blake2s_update_sse2,
+ blake2s_update_ssse3,
+ blake2s_update_sse41,
+ blake2s_update_avx,
+ blake2s_update_xop
+#endif
+};
+
+static const blake2s_final_fn blake2s_final_table[] =
+{
+ blake2s_final_ref,
+#if defined(HAVE_X86)
+ blake2s_final_sse2,
+ blake2s_final_ssse3,
+ blake2s_final_sse41,
+ blake2s_final_avx,
+ blake2s_final_xop
+#endif
+};
+
+static const blake2s_fn blake2s_table[] =
+{
+ blake2s_ref,
+#if defined(HAVE_X86)
+ blake2s_sse2,
+ blake2s_ssse3,
+ blake2s_sse41,
+ blake2s_avx,
+ blake2s_xop
+#endif
+};
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+ int blake2b_init_dispatch( blake2b_state *S, size_t outlen );
+ int blake2b_init_key_dispatch( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_init_param_dispatch( blake2b_state *S, const blake2b_param *P );
+ int blake2b_update_dispatch( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final_dispatch( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ int blake2s_init_dispatch( blake2s_state *S, size_t outlen );
+ int blake2s_init_key_dispatch( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_init_param_dispatch( blake2s_state *S, const blake2s_param *P );
+ int blake2s_update_dispatch( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final_dispatch( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+#if defined(__cplusplus)
+}
+#endif
+
+static blake2b_init_fn blake2b_init_ptr = blake2b_init_dispatch;
+static blake2b_init_key_fn blake2b_init_key_ptr = blake2b_init_key_dispatch;
+static blake2b_init_param_fn blake2b_init_param_ptr = blake2b_init_param_dispatch;
+static blake2b_update_fn blake2b_update_ptr = blake2b_update_dispatch;
+static blake2b_final_fn blake2b_final_ptr = blake2b_final_dispatch;
+static blake2b_fn blake2b_ptr = blake2b_dispatch;
+
+static blake2s_init_fn blake2s_init_ptr = blake2s_init_dispatch;
+static blake2s_init_key_fn blake2s_init_key_ptr = blake2s_init_key_dispatch;
+static blake2s_init_param_fn blake2s_init_param_ptr = blake2s_init_param_dispatch;
+static blake2s_update_fn blake2s_update_ptr = blake2s_update_dispatch;
+static blake2s_final_fn blake2s_final_ptr = blake2s_final_dispatch;
+static blake2s_fn blake2s_ptr = blake2s_dispatch;
+
+int blake2b_init_dispatch( blake2b_state *S, size_t outlen )
+{
+ blake2b_init_ptr = blake2b_init_table[get_cpu_features()];
+ return blake2b_init_ptr( S, outlen );
+}
+
+int blake2b_init_key_dispatch( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
+{
+ blake2b_init_key_ptr = blake2b_init_key_table[get_cpu_features()];
+ return blake2b_init_key_ptr( S, outlen, key, keylen );
+}
+
+int blake2b_init_param_dispatch( blake2b_state *S, const blake2b_param *P )
+{
+ blake2b_init_param_ptr = blake2b_init_param_table[get_cpu_features()];
+ return blake2b_init_param_ptr( S, P );
+}
+
+int blake2b_update_dispatch( blake2b_state *S, const uint8_t *in, size_t inlen )
+{
+ blake2b_update_ptr = blake2b_update_table[get_cpu_features()];
+ return blake2b_update_ptr( S, in, inlen );
+}
+
+int blake2b_final_dispatch( blake2b_state *S, uint8_t *out, size_t outlen )
+{
+ blake2b_final_ptr = blake2b_final_table[get_cpu_features()];
+ return blake2b_final_ptr( S, out, outlen );
+}
+
+int blake2b_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+{
+ blake2b_ptr = blake2b_table[get_cpu_features()];
+ return blake2b_ptr( out, in, key, outlen, inlen, keylen );
+}
+
+BLAKE2_API int blake2b_init( blake2b_state *S, size_t outlen )
+{
+ return blake2b_init_ptr( S, outlen );
+}
+
+BLAKE2_API int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
+{
+ return blake2b_init_key_ptr( S, outlen, key, keylen );
+}
+
+BLAKE2_API int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
+{
+ return blake2b_init_param_ptr( S, P );
+}
+
+BLAKE2_API int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
+{
+ return blake2b_update_ptr( S, in, inlen );
+}
+
+BLAKE2_API int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
+{
+ return blake2b_final_ptr( S, out, outlen );
+}
+
+BLAKE2_API int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+{
+ return blake2b_ptr( out, in, key, outlen, inlen, keylen );
+}
+
+int blake2s_init_dispatch( blake2s_state *S, size_t outlen )
+{
+ blake2s_init_ptr = blake2s_init_table[get_cpu_features()];
+ return blake2s_init_ptr( S, outlen );
+}
+
+int blake2s_init_key_dispatch( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
+{
+ blake2s_init_key_ptr = blake2s_init_key_table[get_cpu_features()];
+ return blake2s_init_key_ptr( S, outlen, key, keylen );
+}
+
+int blake2s_init_param_dispatch( blake2s_state *S, const blake2s_param *P )
+{
+ blake2s_init_param_ptr = blake2s_init_param_table[get_cpu_features()];
+ return blake2s_init_param_ptr( S, P );
+}
+
+int blake2s_update_dispatch( blake2s_state *S, const uint8_t *in, size_t inlen )
+{
+ blake2s_update_ptr = blake2s_update_table[get_cpu_features()];
+ return blake2s_update_ptr( S, in, inlen );
+}
+
+int blake2s_final_dispatch( blake2s_state *S, uint8_t *out, size_t outlen )
+{
+ blake2s_final_ptr = blake2s_final_table[get_cpu_features()];
+ return blake2s_final_ptr( S, out, outlen );
+}
+
+int blake2s_dispatch( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+{
+ blake2s_ptr = blake2s_table[get_cpu_features()];
+ return blake2s_ptr( out, in, key, outlen, inlen, keylen );
+}
+
+BLAKE2_API int blake2s_init( blake2s_state *S, size_t outlen )
+{
+ return blake2s_init_ptr( S, outlen );
+}
+
+BLAKE2_API int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
+{
+ return blake2s_init_key_ptr( S, outlen, key, keylen );
+}
+
+BLAKE2_API int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
+{
+ return blake2s_init_param_ptr( S, P );
+}
+
+BLAKE2_API int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
+{
+ return blake2s_update_ptr( S, in, inlen );
+}
+
+BLAKE2_API int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
+{
+ return blake2s_final_ptr( S, out, outlen );
+}
+
+BLAKE2_API int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+{
+ return blake2s_ptr( out, in, key, outlen, inlen, keylen );
+}
+
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-impl.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-impl.h
index 57943b868a..9d2fbb72fc 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-impl.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-impl.h
@@ -1,39 +1,39 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2_IMPL_H__
#define __BLAKE2_IMPL_H__
-#if defined(_WIN32) || defined(WIN32)
-#include <windows.h>
-#endif
-
-#include <stddef.h>
+#if defined(_WIN32) || defined(WIN32)
+#include <windows.h>
+#endif
+
+#include <stddef.h>
#include <stdint.h>
#include <string.h>
-#define BLAKE2_IMPL_CAT(x,y) x ## y
-#define BLAKE2_IMPL_EVAL(x,y) BLAKE2_IMPL_CAT(x,y)
-#define BLAKE2_IMPL_NAME(fun) BLAKE2_IMPL_EVAL(fun, SUFFIX)
-
-static inline uint32_t load32( const void *src )
+#define BLAKE2_IMPL_CAT(x,y) x ## y
+#define BLAKE2_IMPL_EVAL(x,y) BLAKE2_IMPL_CAT(x,y)
+#define BLAKE2_IMPL_NAME(fun) BLAKE2_IMPL_EVAL(fun, SUFFIX)
+
+static inline uint32_t load32( const void *src )
{
#if defined(NATIVE_LITTLE_ENDIAN)
uint32_t w;
- memcpy( &w, src, sizeof( w ) );
+ memcpy( &w, src, sizeof( w ) );
return w;
#else
- const uint8_t *p = ( uint8_t * )src;
+ const uint8_t *p = ( uint8_t * )src;
uint32_t w = *p++;
w |= ( uint32_t )( *p++ ) << 8;
w |= ( uint32_t )( *p++ ) << 16;
@@ -42,14 +42,14 @@ static inline uint32_t load32( const void *src )
#endif
}
-static inline uint64_t load64( const void *src )
+static inline uint64_t load64( const void *src )
{
#if defined(NATIVE_LITTLE_ENDIAN)
uint64_t w;
- memcpy( &w, src, sizeof( w ) );
+ memcpy( &w, src, sizeof( w ) );
return w;
#else
- const uint8_t *p = ( uint8_t * )src;
+ const uint8_t *p = ( uint8_t * )src;
uint64_t w = *p++;
w |= ( uint64_t )( *p++ ) << 8;
w |= ( uint64_t )( *p++ ) << 16;
@@ -62,10 +62,10 @@ static inline uint64_t load64( const void *src )
#endif
}
-static inline void store32( void *dst, uint32_t w )
+static inline void store32( void *dst, uint32_t w )
{
#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy( dst, &w, sizeof( w ) );
+ memcpy( dst, &w, sizeof( w ) );
#else
uint8_t *p = ( uint8_t * )dst;
*p++ = ( uint8_t )w; w >>= 8;
@@ -75,10 +75,10 @@ static inline void store32( void *dst, uint32_t w )
#endif
}
-static inline void store64( void *dst, uint64_t w )
+static inline void store64( void *dst, uint64_t w )
{
#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy( dst, &w, sizeof( w ) );
+ memcpy( dst, &w, sizeof( w ) );
#else
uint8_t *p = ( uint8_t * )dst;
*p++ = ( uint8_t )w; w >>= 8;
@@ -92,7 +92,7 @@ static inline void store64( void *dst, uint64_t w )
#endif
}
-static inline uint64_t load48( const void *src )
+static inline uint64_t load48( const void *src )
{
const uint8_t *p = ( const uint8_t * )src;
uint64_t w = *p++;
@@ -104,7 +104,7 @@ static inline uint64_t load48( const void *src )
return w;
}
-static inline void store48( void *dst, uint64_t w )
+static inline void store48( void *dst, uint64_t w )
{
uint8_t *p = ( uint8_t * )dst;
*p++ = ( uint8_t )w; w >>= 8;
@@ -115,47 +115,47 @@ static inline void store48( void *dst, uint64_t w )
*p++ = ( uint8_t )w;
}
-static inline uint32_t rotl32( const uint32_t w, const unsigned c )
+static inline uint32_t rotl32( const uint32_t w, const unsigned c )
{
return ( w << c ) | ( w >> ( 32 - c ) );
}
-static inline uint64_t rotl64( const uint64_t w, const unsigned c )
+static inline uint64_t rotl64( const uint64_t w, const unsigned c )
{
return ( w << c ) | ( w >> ( 64 - c ) );
}
-static inline uint32_t rotr32( const uint32_t w, const unsigned c )
+static inline uint32_t rotr32( const uint32_t w, const unsigned c )
{
return ( w >> c ) | ( w << ( 32 - c ) );
}
-static inline uint64_t rotr64( const uint64_t w, const unsigned c )
+static inline uint64_t rotr64( const uint64_t w, const unsigned c )
{
return ( w >> c ) | ( w << ( 64 - c ) );
}
/* prevents compiler optimizing out memset() */
-static inline void secure_zero_memory(void *v, size_t n)
+static inline void secure_zero_memory(void *v, size_t n)
{
-#if defined(_WIN32) || defined(WIN32)
- SecureZeroMemory(v, n);
-#elif defined(__hpux)
+#if defined(_WIN32) || defined(WIN32)
+ SecureZeroMemory(v, n);
+#elif defined(__hpux)
static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
memset_v(v, 0, n);
-#else
-// prioritize first the general C11 call
-#if defined(HAVE_MEMSET_S)
- memset_s(v, n, 0, n);
-#elif defined(HAVE_EXPLICIT_BZERO)
- explicit_bzero(v, n);
-#elif defined(HAVE_EXPLICIT_MEMSET)
- explicit_memset(v, 0, n);
-#else
- memset(v, 0, n);
- __asm__ __volatile__("" :: "r"(v) : "memory");
-#endif
-#endif
+#else
+// prioritize first the general C11 call
+#if defined(HAVE_MEMSET_S)
+ memset_s(v, n, 0, n);
+#elif defined(HAVE_EXPLICIT_BZERO)
+ explicit_bzero(v, n);
+#elif defined(HAVE_EXPLICIT_MEMSET)
+ explicit_memset(v, 0, n);
+#else
+ memset(v, 0, n);
+ __asm__ __volatile__("" :: "r"(v) : "memory");
+#endif
+#endif
}
#endif
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-kat.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-kat.h
index 01fe12eef7..3d2072763a 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2-kat.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2-kat.h
@@ -1,16467 +1,16467 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2_KAT_H__
-#define __BLAKE2_KAT_H__
-
-
-#include <stdint.h>
-
-#define KAT_LENGTH 256
-
-
-
-static const uint8_t blake2s_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
-{
- {
- 0x69, 0x21, 0x7A, 0x30, 0x79, 0x90, 0x80, 0x94,
- 0xE1, 0x11, 0x21, 0xD0, 0x42, 0x35, 0x4A, 0x7C,
- 0x1F, 0x55, 0xB6, 0x48, 0x2C, 0xA1, 0xA5, 0x1E,
- 0x1B, 0x25, 0x0D, 0xFD, 0x1E, 0xD0, 0xEE, 0xF9
- },
- {
- 0xE3, 0x4D, 0x74, 0xDB, 0xAF, 0x4F, 0xF4, 0xC6,
- 0xAB, 0xD8, 0x71, 0xCC, 0x22, 0x04, 0x51, 0xD2,
- 0xEA, 0x26, 0x48, 0x84, 0x6C, 0x77, 0x57, 0xFB,
- 0xAA, 0xC8, 0x2F, 0xE5, 0x1A, 0xD6, 0x4B, 0xEA
- },
- {
- 0xDD, 0xAD, 0x9A, 0xB1, 0x5D, 0xAC, 0x45, 0x49,
- 0xBA, 0x42, 0xF4, 0x9D, 0x26, 0x24, 0x96, 0xBE,
- 0xF6, 0xC0, 0xBA, 0xE1, 0xDD, 0x34, 0x2A, 0x88,
- 0x08, 0xF8, 0xEA, 0x26, 0x7C, 0x6E, 0x21, 0x0C
- },
- {
- 0xE8, 0xF9, 0x1C, 0x6E, 0xF2, 0x32, 0xA0, 0x41,
- 0x45, 0x2A, 0xB0, 0xE1, 0x49, 0x07, 0x0C, 0xDD,
- 0x7D, 0xD1, 0x76, 0x9E, 0x75, 0xB3, 0xA5, 0x92,
- 0x1B, 0xE3, 0x78, 0x76, 0xC4, 0x5C, 0x99, 0x00
- },
- {
- 0x0C, 0xC7, 0x0E, 0x00, 0x34, 0x8B, 0x86, 0xBA,
- 0x29, 0x44, 0xD0, 0xC3, 0x20, 0x38, 0xB2, 0x5C,
- 0x55, 0x58, 0x4F, 0x90, 0xDF, 0x23, 0x04, 0xF5,
- 0x5F, 0xA3, 0x32, 0xAF, 0x5F, 0xB0, 0x1E, 0x20
- },
- {
- 0xEC, 0x19, 0x64, 0x19, 0x10, 0x87, 0xA4, 0xFE,
- 0x9D, 0xF1, 0xC7, 0x95, 0x34, 0x2A, 0x02, 0xFF,
- 0xC1, 0x91, 0xA5, 0xB2, 0x51, 0x76, 0x48, 0x56,
- 0xAE, 0x5B, 0x8B, 0x57, 0x69, 0xF0, 0xC6, 0xCD
- },
- {
- 0xE1, 0xFA, 0x51, 0x61, 0x8D, 0x7D, 0xF4, 0xEB,
- 0x70, 0xCF, 0x0D, 0x5A, 0x9E, 0x90, 0x6F, 0x80,
- 0x6E, 0x9D, 0x19, 0xF7, 0xF4, 0xF0, 0x1E, 0x3B,
- 0x62, 0x12, 0x88, 0xE4, 0x12, 0x04, 0x05, 0xD6
- },
- {
- 0x59, 0x80, 0x01, 0xFA, 0xFB, 0xE8, 0xF9, 0x4E,
- 0xC6, 0x6D, 0xC8, 0x27, 0xD0, 0x12, 0xCF, 0xCB,
- 0xBA, 0x22, 0x28, 0x56, 0x9F, 0x44, 0x8E, 0x89,
- 0xEA, 0x22, 0x08, 0xC8, 0xBF, 0x76, 0x92, 0x93
- },
- {
- 0xC7, 0xE8, 0x87, 0xB5, 0x46, 0x62, 0x36, 0x35,
- 0xE9, 0x3E, 0x04, 0x95, 0x59, 0x8F, 0x17, 0x26,
- 0x82, 0x19, 0x96, 0xC2, 0x37, 0x77, 0x05, 0xB9,
- 0x3A, 0x1F, 0x63, 0x6F, 0x87, 0x2B, 0xFA, 0x2D
- },
- {
- 0xC3, 0x15, 0xA4, 0x37, 0xDD, 0x28, 0x06, 0x2A,
- 0x77, 0x0D, 0x48, 0x19, 0x67, 0x13, 0x6B, 0x1B,
- 0x5E, 0xB8, 0x8B, 0x21, 0xEE, 0x53, 0xD0, 0x32,
- 0x9C, 0x58, 0x97, 0x12, 0x6E, 0x9D, 0xB0, 0x2C
- },
- {
- 0xBB, 0x47, 0x3D, 0xED, 0xDC, 0x05, 0x5F, 0xEA,
- 0x62, 0x28, 0xF2, 0x07, 0xDA, 0x57, 0x53, 0x47,
- 0xBB, 0x00, 0x40, 0x4C, 0xD3, 0x49, 0xD3, 0x8C,
- 0x18, 0x02, 0x63, 0x07, 0xA2, 0x24, 0xCB, 0xFF
- },
- {
- 0x68, 0x7E, 0x18, 0x73, 0xA8, 0x27, 0x75, 0x91,
- 0xBB, 0x33, 0xD9, 0xAD, 0xF9, 0xA1, 0x39, 0x12,
- 0xEF, 0xEF, 0xE5, 0x57, 0xCA, 0xFC, 0x39, 0xA7,
- 0x95, 0x26, 0x23, 0xE4, 0x72, 0x55, 0xF1, 0x6D
- },
- {
- 0x1A, 0xC7, 0xBA, 0x75, 0x4D, 0x6E, 0x2F, 0x94,
- 0xE0, 0xE8, 0x6C, 0x46, 0xBF, 0xB2, 0x62, 0xAB,
- 0xBB, 0x74, 0xF4, 0x50, 0xEF, 0x45, 0x6D, 0x6B,
- 0x4D, 0x97, 0xAA, 0x80, 0xCE, 0x6D, 0xA7, 0x67
- },
- {
- 0x01, 0x2C, 0x97, 0x80, 0x96, 0x14, 0x81, 0x6B,
- 0x5D, 0x94, 0x94, 0x47, 0x7D, 0x4B, 0x68, 0x7D,
- 0x15, 0xB9, 0x6E, 0xB6, 0x9C, 0x0E, 0x80, 0x74,
- 0xA8, 0x51, 0x6F, 0x31, 0x22, 0x4B, 0x5C, 0x98
- },
- {
- 0x91, 0xFF, 0xD2, 0x6C, 0xFA, 0x4D, 0xA5, 0x13,
- 0x4C, 0x7E, 0xA2, 0x62, 0xF7, 0x88, 0x9C, 0x32,
- 0x9F, 0x61, 0xF6, 0xA6, 0x57, 0x22, 0x5C, 0xC2,
- 0x12, 0xF4, 0x00, 0x56, 0xD9, 0x86, 0xB3, 0xF4
- },
- {
- 0xD9, 0x7C, 0x82, 0x8D, 0x81, 0x82, 0xA7, 0x21,
- 0x80, 0xA0, 0x6A, 0x78, 0x26, 0x83, 0x30, 0x67,
- 0x3F, 0x7C, 0x4E, 0x06, 0x35, 0x94, 0x7C, 0x04,
- 0xC0, 0x23, 0x23, 0xFD, 0x45, 0xC0, 0xA5, 0x2D
- },
- {
- 0xEF, 0xC0, 0x4C, 0xDC, 0x39, 0x1C, 0x7E, 0x91,
- 0x19, 0xBD, 0x38, 0x66, 0x8A, 0x53, 0x4E, 0x65,
- 0xFE, 0x31, 0x03, 0x6D, 0x6A, 0x62, 0x11, 0x2E,
- 0x44, 0xEB, 0xEB, 0x11, 0xF9, 0xC5, 0x70, 0x80
- },
- {
- 0x99, 0x2C, 0xF5, 0xC0, 0x53, 0x44, 0x2A, 0x5F,
- 0xBC, 0x4F, 0xAF, 0x58, 0x3E, 0x04, 0xE5, 0x0B,
- 0xB7, 0x0D, 0x2F, 0x39, 0xFB, 0xB6, 0xA5, 0x03,
- 0xF8, 0x9E, 0x56, 0xA6, 0x3E, 0x18, 0x57, 0x8A
- },
- {
- 0x38, 0x64, 0x0E, 0x9F, 0x21, 0x98, 0x3E, 0x67,
- 0xB5, 0x39, 0xCA, 0xCC, 0xAE, 0x5E, 0xCF, 0x61,
- 0x5A, 0xE2, 0x76, 0x4F, 0x75, 0xA0, 0x9C, 0x9C,
- 0x59, 0xB7, 0x64, 0x83, 0xC1, 0xFB, 0xC7, 0x35
- },
- {
- 0x21, 0x3D, 0xD3, 0x4C, 0x7E, 0xFE, 0x4F, 0xB2,
- 0x7A, 0x6B, 0x35, 0xF6, 0xB4, 0x00, 0x0D, 0x1F,
- 0xE0, 0x32, 0x81, 0xAF, 0x3C, 0x72, 0x3E, 0x5C,
- 0x9F, 0x94, 0x74, 0x7A, 0x5F, 0x31, 0xCD, 0x3B
- },
- {
- 0xEC, 0x24, 0x6E, 0xEE, 0xB9, 0xCE, 0xD3, 0xF7,
- 0xAD, 0x33, 0xED, 0x28, 0x66, 0x0D, 0xD9, 0xBB,
- 0x07, 0x32, 0x51, 0x3D, 0xB4, 0xE2, 0xFA, 0x27,
- 0x8B, 0x60, 0xCD, 0xE3, 0x68, 0x2A, 0x4C, 0xCD
- },
- {
- 0xAC, 0x9B, 0x61, 0xD4, 0x46, 0x64, 0x8C, 0x30,
- 0x05, 0xD7, 0x89, 0x2B, 0xF3, 0xA8, 0x71, 0x9F,
- 0x4C, 0x81, 0x81, 0xCF, 0xDC, 0xBC, 0x2B, 0x79,
- 0xFE, 0xF1, 0x0A, 0x27, 0x9B, 0x91, 0x10, 0x95
- },
- {
- 0x7B, 0xF8, 0xB2, 0x29, 0x59, 0xE3, 0x4E, 0x3A,
- 0x43, 0xF7, 0x07, 0x92, 0x23, 0xE8, 0x3A, 0x97,
- 0x54, 0x61, 0x7D, 0x39, 0x1E, 0x21, 0x3D, 0xFD,
- 0x80, 0x8E, 0x41, 0xB9, 0xBE, 0xAD, 0x4C, 0xE7
- },
- {
- 0x68, 0xD4, 0xB5, 0xD4, 0xFA, 0x0E, 0x30, 0x2B,
- 0x64, 0xCC, 0xC5, 0xAF, 0x79, 0x29, 0x13, 0xAC,
- 0x4C, 0x88, 0xEC, 0x95, 0xC0, 0x7D, 0xDF, 0x40,
- 0x69, 0x42, 0x56, 0xEB, 0x88, 0xCE, 0x9F, 0x3D
- },
- {
- 0xB2, 0xC2, 0x42, 0x0F, 0x05, 0xF9, 0xAB, 0xE3,
- 0x63, 0x15, 0x91, 0x93, 0x36, 0xB3, 0x7E, 0x4E,
- 0x0F, 0xA3, 0x3F, 0xF7, 0xE7, 0x6A, 0x49, 0x27,
- 0x67, 0x00, 0x6F, 0xDB, 0x5D, 0x93, 0x54, 0x62
- },
- {
- 0x13, 0x4F, 0x61, 0xBB, 0xD0, 0xBB, 0xB6, 0x9A,
- 0xED, 0x53, 0x43, 0x90, 0x45, 0x51, 0xA3, 0xE6,
- 0xC1, 0xAA, 0x7D, 0xCD, 0xD7, 0x7E, 0x90, 0x3E,
- 0x70, 0x23, 0xEB, 0x7C, 0x60, 0x32, 0x0A, 0xA7
- },
- {
- 0x46, 0x93, 0xF9, 0xBF, 0xF7, 0xD4, 0xF3, 0x98,
- 0x6A, 0x7D, 0x17, 0x6E, 0x6E, 0x06, 0xF7, 0x2A,
- 0xD1, 0x49, 0x0D, 0x80, 0x5C, 0x99, 0xE2, 0x53,
- 0x47, 0xB8, 0xDE, 0x77, 0xB4, 0xDB, 0x6D, 0x9B
- },
- {
- 0x85, 0x3E, 0x26, 0xF7, 0x41, 0x95, 0x3B, 0x0F,
- 0xD5, 0xBD, 0xB4, 0x24, 0xE8, 0xAB, 0x9E, 0x8B,
- 0x37, 0x50, 0xEA, 0xA8, 0xEF, 0x61, 0xE4, 0x79,
- 0x02, 0xC9, 0x1E, 0x55, 0x4E, 0x9C, 0x73, 0xB9
- },
- {
- 0xF7, 0xDE, 0x53, 0x63, 0x61, 0xAB, 0xAA, 0x0E,
- 0x15, 0x81, 0x56, 0xCF, 0x0E, 0xA4, 0xF6, 0x3A,
- 0x99, 0xB5, 0xE4, 0x05, 0x4F, 0x8F, 0xA4, 0xC9,
- 0xD4, 0x5F, 0x62, 0x85, 0xCA, 0xD5, 0x56, 0x94
- },
- {
- 0x4C, 0x23, 0x06, 0x08, 0x86, 0x0A, 0x99, 0xAE,
- 0x8D, 0x7B, 0xD5, 0xC2, 0xCC, 0x17, 0xFA, 0x52,
- 0x09, 0x6B, 0x9A, 0x61, 0xBE, 0xDB, 0x17, 0xCB,
- 0x76, 0x17, 0x86, 0x4A, 0xD2, 0x9C, 0xA7, 0xA6
- },
- {
- 0xAE, 0xB9, 0x20, 0xEA, 0x87, 0x95, 0x2D, 0xAD,
- 0xB1, 0xFB, 0x75, 0x92, 0x91, 0xE3, 0x38, 0x81,
- 0x39, 0xA8, 0x72, 0x86, 0x50, 0x01, 0x88, 0x6E,
- 0xD8, 0x47, 0x52, 0xE9, 0x3C, 0x25, 0x0C, 0x2A
- },
- {
- 0xAB, 0xA4, 0xAD, 0x9B, 0x48, 0x0B, 0x9D, 0xF3,
- 0xD0, 0x8C, 0xA5, 0xE8, 0x7B, 0x0C, 0x24, 0x40,
- 0xD4, 0xE4, 0xEA, 0x21, 0x22, 0x4C, 0x2E, 0xB4,
- 0x2C, 0xBA, 0xE4, 0x69, 0xD0, 0x89, 0xB9, 0x31
- },
- {
- 0x05, 0x82, 0x56, 0x07, 0xD7, 0xFD, 0xF2, 0xD8,
- 0x2E, 0xF4, 0xC3, 0xC8, 0xC2, 0xAE, 0xA9, 0x61,
- 0xAD, 0x98, 0xD6, 0x0E, 0xDF, 0xF7, 0xD0, 0x18,
- 0x98, 0x3E, 0x21, 0x20, 0x4C, 0x0D, 0x93, 0xD1
- },
- {
- 0xA7, 0x42, 0xF8, 0xB6, 0xAF, 0x82, 0xD8, 0xA6,
- 0xCA, 0x23, 0x57, 0xC5, 0xF1, 0xCF, 0x91, 0xDE,
- 0xFB, 0xD0, 0x66, 0x26, 0x7D, 0x75, 0xC0, 0x48,
- 0xB3, 0x52, 0x36, 0x65, 0x85, 0x02, 0x59, 0x62
- },
- {
- 0x2B, 0xCA, 0xC8, 0x95, 0x99, 0x00, 0x0B, 0x42,
- 0xC9, 0x5A, 0xE2, 0x38, 0x35, 0xA7, 0x13, 0x70,
- 0x4E, 0xD7, 0x97, 0x89, 0xC8, 0x4F, 0xEF, 0x14,
- 0x9A, 0x87, 0x4F, 0xF7, 0x33, 0xF0, 0x17, 0xA2
- },
- {
- 0xAC, 0x1E, 0xD0, 0x7D, 0x04, 0x8F, 0x10, 0x5A,
- 0x9E, 0x5B, 0x7A, 0xB8, 0x5B, 0x09, 0xA4, 0x92,
- 0xD5, 0xBA, 0xFF, 0x14, 0xB8, 0xBF, 0xB0, 0xE9,
- 0xFD, 0x78, 0x94, 0x86, 0xEE, 0xA2, 0xB9, 0x74
- },
- {
- 0xE4, 0x8D, 0x0E, 0xCF, 0xAF, 0x49, 0x7D, 0x5B,
- 0x27, 0xC2, 0x5D, 0x99, 0xE1, 0x56, 0xCB, 0x05,
- 0x79, 0xD4, 0x40, 0xD6, 0xE3, 0x1F, 0xB6, 0x24,
- 0x73, 0x69, 0x6D, 0xBF, 0x95, 0xE0, 0x10, 0xE4
- },
- {
- 0x12, 0xA9, 0x1F, 0xAD, 0xF8, 0xB2, 0x16, 0x44,
- 0xFD, 0x0F, 0x93, 0x4F, 0x3C, 0x4A, 0x8F, 0x62,
- 0xBA, 0x86, 0x2F, 0xFD, 0x20, 0xE8, 0xE9, 0x61,
- 0x15, 0x4C, 0x15, 0xC1, 0x38, 0x84, 0xED, 0x3D
- },
- {
- 0x7C, 0xBE, 0xE9, 0x6E, 0x13, 0x98, 0x97, 0xDC,
- 0x98, 0xFB, 0xEF, 0x3B, 0xE8, 0x1A, 0xD4, 0xD9,
- 0x64, 0xD2, 0x35, 0xCB, 0x12, 0x14, 0x1F, 0xB6,
- 0x67, 0x27, 0xE6, 0xE5, 0xDF, 0x73, 0xA8, 0x78
- },
- {
- 0xEB, 0xF6, 0x6A, 0xBB, 0x59, 0x7A, 0xE5, 0x72,
- 0xA7, 0x29, 0x7C, 0xB0, 0x87, 0x1E, 0x35, 0x5A,
- 0xCC, 0xAF, 0xAD, 0x83, 0x77, 0xB8, 0xE7, 0x8B,
- 0xF1, 0x64, 0xCE, 0x2A, 0x18, 0xDE, 0x4B, 0xAF
- },
- {
- 0x71, 0xB9, 0x33, 0xB0, 0x7E, 0x4F, 0xF7, 0x81,
- 0x8C, 0xE0, 0x59, 0xD0, 0x08, 0x82, 0x9E, 0x45,
- 0x3C, 0x6F, 0xF0, 0x2E, 0xC0, 0xA7, 0xDB, 0x39,
- 0x3F, 0xC2, 0xD8, 0x70, 0xF3, 0x7A, 0x72, 0x86
- },
- {
- 0x7C, 0xF7, 0xC5, 0x13, 0x31, 0x22, 0x0B, 0x8D,
- 0x3E, 0xBA, 0xED, 0x9C, 0x29, 0x39, 0x8A, 0x16,
- 0xD9, 0x81, 0x56, 0xE2, 0x61, 0x3C, 0xB0, 0x88,
- 0xF2, 0xB0, 0xE0, 0x8A, 0x1B, 0xE4, 0xCF, 0x4F
- },
- {
- 0x3E, 0x41, 0xA1, 0x08, 0xE0, 0xF6, 0x4A, 0xD2,
- 0x76, 0xB9, 0x79, 0xE1, 0xCE, 0x06, 0x82, 0x79,
- 0xE1, 0x6F, 0x7B, 0xC7, 0xE4, 0xAA, 0x1D, 0x21,
- 0x1E, 0x17, 0xB8, 0x11, 0x61, 0xDF, 0x16, 0x02
- },
- {
- 0x88, 0x65, 0x02, 0xA8, 0x2A, 0xB4, 0x7B, 0xA8,
- 0xD8, 0x67, 0x10, 0xAA, 0x9D, 0xE3, 0xD4, 0x6E,
- 0xA6, 0x5C, 0x47, 0xAF, 0x6E, 0xE8, 0xDE, 0x45,
- 0x0C, 0xCE, 0xB8, 0xB1, 0x1B, 0x04, 0x5F, 0x50
- },
- {
- 0xC0, 0x21, 0xBC, 0x5F, 0x09, 0x54, 0xFE, 0xE9,
- 0x4F, 0x46, 0xEA, 0x09, 0x48, 0x7E, 0x10, 0xA8,
- 0x48, 0x40, 0xD0, 0x2F, 0x64, 0x81, 0x0B, 0xC0,
- 0x8D, 0x9E, 0x55, 0x1F, 0x7D, 0x41, 0x68, 0x14
- },
- {
- 0x20, 0x30, 0x51, 0x6E, 0x8A, 0x5F, 0xE1, 0x9A,
- 0xE7, 0x9C, 0x33, 0x6F, 0xCE, 0x26, 0x38, 0x2A,
- 0x74, 0x9D, 0x3F, 0xD0, 0xEC, 0x91, 0xE5, 0x37,
- 0xD4, 0xBD, 0x23, 0x58, 0xC1, 0x2D, 0xFB, 0x22
- },
- {
- 0x55, 0x66, 0x98, 0xDA, 0xC8, 0x31, 0x7F, 0xD3,
- 0x6D, 0xFB, 0xDF, 0x25, 0xA7, 0x9C, 0xB1, 0x12,
- 0xD5, 0x42, 0x58, 0x60, 0x60, 0x5C, 0xBA, 0xF5,
- 0x07, 0xF2, 0x3B, 0xF7, 0xE9, 0xF4, 0x2A, 0xFE
- },
- {
- 0x2F, 0x86, 0x7B, 0xA6, 0x77, 0x73, 0xFD, 0xC3,
- 0xE9, 0x2F, 0xCE, 0xD9, 0x9A, 0x64, 0x09, 0xAD,
- 0x39, 0xD0, 0xB8, 0x80, 0xFD, 0xE8, 0xF1, 0x09,
- 0xA8, 0x17, 0x30, 0xC4, 0x45, 0x1D, 0x01, 0x78
- },
- {
- 0x17, 0x2E, 0xC2, 0x18, 0xF1, 0x19, 0xDF, 0xAE,
- 0x98, 0x89, 0x6D, 0xFF, 0x29, 0xDD, 0x98, 0x76,
- 0xC9, 0x4A, 0xF8, 0x74, 0x17, 0xF9, 0xAE, 0x4C,
- 0x70, 0x14, 0xBB, 0x4E, 0x4B, 0x96, 0xAF, 0xC7
- },
- {
- 0x3F, 0x85, 0x81, 0x4A, 0x18, 0x19, 0x5F, 0x87,
- 0x9A, 0xA9, 0x62, 0xF9, 0x5D, 0x26, 0xBD, 0x82,
- 0xA2, 0x78, 0xF2, 0xB8, 0x23, 0x20, 0x21, 0x8F,
- 0x6B, 0x3B, 0xD6, 0xF7, 0xF6, 0x67, 0xA6, 0xD9
- },
- {
- 0x1B, 0x61, 0x8F, 0xBA, 0xA5, 0x66, 0xB3, 0xD4,
- 0x98, 0xC1, 0x2E, 0x98, 0x2C, 0x9E, 0xC5, 0x2E,
- 0x4D, 0xA8, 0x5A, 0x8C, 0x54, 0xF3, 0x8F, 0x34,
- 0xC0, 0x90, 0x39, 0x4F, 0x23, 0xC1, 0x84, 0xC1
- },
- {
- 0x0C, 0x75, 0x8F, 0xB5, 0x69, 0x2F, 0xFD, 0x41,
- 0xA3, 0x57, 0x5D, 0x0A, 0xF0, 0x0C, 0xC7, 0xFB,
- 0xF2, 0xCB, 0xE5, 0x90, 0x5A, 0x58, 0x32, 0x3A,
- 0x88, 0xAE, 0x42, 0x44, 0xF6, 0xE4, 0xC9, 0x93
- },
- {
- 0xA9, 0x31, 0x36, 0x0C, 0xAD, 0x62, 0x8C, 0x7F,
- 0x12, 0xA6, 0xC1, 0xC4, 0xB7, 0x53, 0xB0, 0xF4,
- 0x06, 0x2A, 0xEF, 0x3C, 0xE6, 0x5A, 0x1A, 0xE3,
- 0xF1, 0x93, 0x69, 0xDA, 0xDF, 0x3A, 0xE2, 0x3D
- },
- {
- 0xCB, 0xAC, 0x7D, 0x77, 0x3B, 0x1E, 0x3B, 0x3C,
- 0x66, 0x91, 0xD7, 0xAB, 0xB7, 0xE9, 0xDF, 0x04,
- 0x5C, 0x8B, 0xA1, 0x92, 0x68, 0xDE, 0xD1, 0x53,
- 0x20, 0x7F, 0x5E, 0x80, 0x43, 0x52, 0xEC, 0x5D
- },
- {
- 0x23, 0xA1, 0x96, 0xD3, 0x80, 0x2E, 0xD3, 0xC1,
- 0xB3, 0x84, 0x01, 0x9A, 0x82, 0x32, 0x58, 0x40,
- 0xD3, 0x2F, 0x71, 0x95, 0x0C, 0x45, 0x80, 0xB0,
- 0x34, 0x45, 0xE0, 0x89, 0x8E, 0x14, 0x05, 0x3C
- },
- {
- 0xF4, 0x49, 0x54, 0x70, 0xF2, 0x26, 0xC8, 0xC2,
- 0x14, 0xBE, 0x08, 0xFD, 0xFA, 0xD4, 0xBC, 0x4A,
- 0x2A, 0x9D, 0xBE, 0xA9, 0x13, 0x6A, 0x21, 0x0D,
- 0xF0, 0xD4, 0xB6, 0x49, 0x29, 0xE6, 0xFC, 0x14
- },
- {
- 0xE2, 0x90, 0xDD, 0x27, 0x0B, 0x46, 0x7F, 0x34,
- 0xAB, 0x1C, 0x00, 0x2D, 0x34, 0x0F, 0xA0, 0x16,
- 0x25, 0x7F, 0xF1, 0x9E, 0x58, 0x33, 0xFD, 0xBB,
- 0xF2, 0xCB, 0x40, 0x1C, 0x3B, 0x28, 0x17, 0xDE
- },
- {
- 0x9F, 0xC7, 0xB5, 0xDE, 0xD3, 0xC1, 0x50, 0x42,
- 0xB2, 0xA6, 0x58, 0x2D, 0xC3, 0x9B, 0xE0, 0x16,
- 0xD2, 0x4A, 0x68, 0x2D, 0x5E, 0x61, 0xAD, 0x1E,
- 0xFF, 0x9C, 0x63, 0x30, 0x98, 0x48, 0xF7, 0x06
- },
- {
- 0x8C, 0xCA, 0x67, 0xA3, 0x6D, 0x17, 0xD5, 0xE6,
- 0x34, 0x1C, 0xB5, 0x92, 0xFD, 0x7B, 0xEF, 0x99,
- 0x26, 0xC9, 0xE3, 0xAA, 0x10, 0x27, 0xEA, 0x11,
- 0xA7, 0xD8, 0xBD, 0x26, 0x0B, 0x57, 0x6E, 0x04
- },
- {
- 0x40, 0x93, 0x92, 0xF5, 0x60, 0xF8, 0x68, 0x31,
- 0xDA, 0x43, 0x73, 0xEE, 0x5E, 0x00, 0x74, 0x26,
- 0x05, 0x95, 0xD7, 0xBC, 0x24, 0x18, 0x3B, 0x60,
- 0xED, 0x70, 0x0D, 0x45, 0x83, 0xD3, 0xF6, 0xF0
- },
- {
- 0x28, 0x02, 0x16, 0x5D, 0xE0, 0x90, 0x91, 0x55,
- 0x46, 0xF3, 0x39, 0x8C, 0xD8, 0x49, 0x16, 0x4A,
- 0x19, 0xF9, 0x2A, 0xDB, 0xC3, 0x61, 0xAD, 0xC9,
- 0x9B, 0x0F, 0x20, 0xC8, 0xEA, 0x07, 0x10, 0x54
- },
- {
- 0xAD, 0x83, 0x91, 0x68, 0xD9, 0xF8, 0xA4, 0xBE,
- 0x95, 0xBA, 0x9E, 0xF9, 0xA6, 0x92, 0xF0, 0x72,
- 0x56, 0xAE, 0x43, 0xFE, 0x6F, 0x98, 0x64, 0xE2,
- 0x90, 0x69, 0x1B, 0x02, 0x56, 0xCE, 0x50, 0xA9
- },
- {
- 0x75, 0xFD, 0xAA, 0x50, 0x38, 0xC2, 0x84, 0xB8,
- 0x6D, 0x6E, 0x8A, 0xFF, 0xE8, 0xB2, 0x80, 0x7E,
- 0x46, 0x7B, 0x86, 0x60, 0x0E, 0x79, 0xAF, 0x36,
- 0x89, 0xFB, 0xC0, 0x63, 0x28, 0xCB, 0xF8, 0x94
- },
- {
- 0xE5, 0x7C, 0xB7, 0x94, 0x87, 0xDD, 0x57, 0x90,
- 0x24, 0x32, 0xB2, 0x50, 0x73, 0x38, 0x13, 0xBD,
- 0x96, 0xA8, 0x4E, 0xFC, 0xE5, 0x9F, 0x65, 0x0F,
- 0xAC, 0x26, 0xE6, 0x69, 0x6A, 0xEF, 0xAF, 0xC3
- },
- {
- 0x56, 0xF3, 0x4E, 0x8B, 0x96, 0x55, 0x7E, 0x90,
- 0xC1, 0xF2, 0x4B, 0x52, 0xD0, 0xC8, 0x9D, 0x51,
- 0x08, 0x6A, 0xCF, 0x1B, 0x00, 0xF6, 0x34, 0xCF,
- 0x1D, 0xDE, 0x92, 0x33, 0xB8, 0xEA, 0xAA, 0x3E
- },
- {
- 0x1B, 0x53, 0xEE, 0x94, 0xAA, 0xF3, 0x4E, 0x4B,
- 0x15, 0x9D, 0x48, 0xDE, 0x35, 0x2C, 0x7F, 0x06,
- 0x61, 0xD0, 0xA4, 0x0E, 0xDF, 0xF9, 0x5A, 0x0B,
- 0x16, 0x39, 0xB4, 0x09, 0x0E, 0x97, 0x44, 0x72
- },
- {
- 0x05, 0x70, 0x5E, 0x2A, 0x81, 0x75, 0x7C, 0x14,
- 0xBD, 0x38, 0x3E, 0xA9, 0x8D, 0xDA, 0x54, 0x4E,
- 0xB1, 0x0E, 0x6B, 0xC0, 0x7B, 0xAE, 0x43, 0x5E,
- 0x25, 0x18, 0xDB, 0xE1, 0x33, 0x52, 0x53, 0x75
- },
- {
- 0xD8, 0xB2, 0x86, 0x6E, 0x8A, 0x30, 0x9D, 0xB5,
- 0x3E, 0x52, 0x9E, 0xC3, 0x29, 0x11, 0xD8, 0x2F,
- 0x5C, 0xA1, 0x6C, 0xFF, 0x76, 0x21, 0x68, 0x91,
- 0xA9, 0x67, 0x6A, 0xA3, 0x1A, 0xAA, 0x6C, 0x42
- },
- {
- 0xF5, 0x04, 0x1C, 0x24, 0x12, 0x70, 0xEB, 0x04,
- 0xC7, 0x1E, 0xC2, 0xC9, 0x5D, 0x4C, 0x38, 0xD8,
- 0x03, 0xB1, 0x23, 0x7B, 0x0F, 0x29, 0xFD, 0x4D,
- 0xB3, 0xEB, 0x39, 0x76, 0x69, 0xE8, 0x86, 0x99
- },
- {
- 0x9A, 0x4C, 0xE0, 0x77, 0xC3, 0x49, 0x32, 0x2F,
- 0x59, 0x5E, 0x0E, 0xE7, 0x9E, 0xD0, 0xDA, 0x5F,
- 0xAB, 0x66, 0x75, 0x2C, 0xBF, 0xEF, 0x8F, 0x87,
- 0xD0, 0xE9, 0xD0, 0x72, 0x3C, 0x75, 0x30, 0xDD
- },
- {
- 0x65, 0x7B, 0x09, 0xF3, 0xD0, 0xF5, 0x2B, 0x5B,
- 0x8F, 0x2F, 0x97, 0x16, 0x3A, 0x0E, 0xDF, 0x0C,
- 0x04, 0xF0, 0x75, 0x40, 0x8A, 0x07, 0xBB, 0xEB,
- 0x3A, 0x41, 0x01, 0xA8, 0x91, 0x99, 0x0D, 0x62
- },
- {
- 0x1E, 0x3F, 0x7B, 0xD5, 0xA5, 0x8F, 0xA5, 0x33,
- 0x34, 0x4A, 0xA8, 0xED, 0x3A, 0xC1, 0x22, 0xBB,
- 0x9E, 0x70, 0xD4, 0xEF, 0x50, 0xD0, 0x04, 0x53,
- 0x08, 0x21, 0x94, 0x8F, 0x5F, 0xE6, 0x31, 0x5A
- },
- {
- 0x80, 0xDC, 0xCF, 0x3F, 0xD8, 0x3D, 0xFD, 0x0D,
- 0x35, 0xAA, 0x28, 0x58, 0x59, 0x22, 0xAB, 0x89,
- 0xD5, 0x31, 0x39, 0x97, 0x67, 0x3E, 0xAF, 0x90,
- 0x5C, 0xEA, 0x9C, 0x0B, 0x22, 0x5C, 0x7B, 0x5F
- },
- {
- 0x8A, 0x0D, 0x0F, 0xBF, 0x63, 0x77, 0xD8, 0x3B,
- 0xB0, 0x8B, 0x51, 0x4B, 0x4B, 0x1C, 0x43, 0xAC,
- 0xC9, 0x5D, 0x75, 0x17, 0x14, 0xF8, 0x92, 0x56,
- 0x45, 0xCB, 0x6B, 0xC8, 0x56, 0xCA, 0x15, 0x0A
- },
- {
- 0x9F, 0xA5, 0xB4, 0x87, 0x73, 0x8A, 0xD2, 0x84,
- 0x4C, 0xC6, 0x34, 0x8A, 0x90, 0x19, 0x18, 0xF6,
- 0x59, 0xA3, 0xB8, 0x9E, 0x9C, 0x0D, 0xFE, 0xEA,
- 0xD3, 0x0D, 0xD9, 0x4B, 0xCF, 0x42, 0xEF, 0x8E
- },
- {
- 0x80, 0x83, 0x2C, 0x4A, 0x16, 0x77, 0xF5, 0xEA,
- 0x25, 0x60, 0xF6, 0x68, 0xE9, 0x35, 0x4D, 0xD3,
- 0x69, 0x97, 0xF0, 0x37, 0x28, 0xCF, 0xA5, 0x5E,
- 0x1B, 0x38, 0x33, 0x7C, 0x0C, 0x9E, 0xF8, 0x18
- },
- {
- 0xAB, 0x37, 0xDD, 0xB6, 0x83, 0x13, 0x7E, 0x74,
- 0x08, 0x0D, 0x02, 0x6B, 0x59, 0x0B, 0x96, 0xAE,
- 0x9B, 0xB4, 0x47, 0x72, 0x2F, 0x30, 0x5A, 0x5A,
- 0xC5, 0x70, 0xEC, 0x1D, 0xF9, 0xB1, 0x74, 0x3C
- },
- {
- 0x3E, 0xE7, 0x35, 0xA6, 0x94, 0xC2, 0x55, 0x9B,
- 0x69, 0x3A, 0xA6, 0x86, 0x29, 0x36, 0x1E, 0x15,
- 0xD1, 0x22, 0x65, 0xAD, 0x6A, 0x3D, 0xED, 0xF4,
- 0x88, 0xB0, 0xB0, 0x0F, 0xAC, 0x97, 0x54, 0xBA
- },
- {
- 0xD6, 0xFC, 0xD2, 0x32, 0x19, 0xB6, 0x47, 0xE4,
- 0xCB, 0xD5, 0xEB, 0x2D, 0x0A, 0xD0, 0x1E, 0xC8,
- 0x83, 0x8A, 0x4B, 0x29, 0x01, 0xFC, 0x32, 0x5C,
- 0xC3, 0x70, 0x19, 0x81, 0xCA, 0x6C, 0x88, 0x8B
- },
- {
- 0x05, 0x20, 0xEC, 0x2F, 0x5B, 0xF7, 0xA7, 0x55,
- 0xDA, 0xCB, 0x50, 0xC6, 0xBF, 0x23, 0x3E, 0x35,
- 0x15, 0x43, 0x47, 0x63, 0xDB, 0x01, 0x39, 0xCC,
- 0xD9, 0xFA, 0xEF, 0xBB, 0x82, 0x07, 0x61, 0x2D
- },
- {
- 0xAF, 0xF3, 0xB7, 0x5F, 0x3F, 0x58, 0x12, 0x64,
- 0xD7, 0x66, 0x16, 0x62, 0xB9, 0x2F, 0x5A, 0xD3,
- 0x7C, 0x1D, 0x32, 0xBD, 0x45, 0xFF, 0x81, 0xA4,
- 0xED, 0x8A, 0xDC, 0x9E, 0xF3, 0x0D, 0xD9, 0x89
- },
- {
- 0xD0, 0xDD, 0x65, 0x0B, 0xEF, 0xD3, 0xBA, 0x63,
- 0xDC, 0x25, 0x10, 0x2C, 0x62, 0x7C, 0x92, 0x1B,
- 0x9C, 0xBE, 0xB0, 0xB1, 0x30, 0x68, 0x69, 0x35,
- 0xB5, 0xC9, 0x27, 0xCB, 0x7C, 0xCD, 0x5E, 0x3B
- },
- {
- 0xE1, 0x14, 0x98, 0x16, 0xB1, 0x0A, 0x85, 0x14,
- 0xFB, 0x3E, 0x2C, 0xAB, 0x2C, 0x08, 0xBE, 0xE9,
- 0xF7, 0x3C, 0xE7, 0x62, 0x21, 0x70, 0x12, 0x46,
- 0xA5, 0x89, 0xBB, 0xB6, 0x73, 0x02, 0xD8, 0xA9
- },
- {
- 0x7D, 0xA3, 0xF4, 0x41, 0xDE, 0x90, 0x54, 0x31,
- 0x7E, 0x72, 0xB5, 0xDB, 0xF9, 0x79, 0xDA, 0x01,
- 0xE6, 0xBC, 0xEE, 0xBB, 0x84, 0x78, 0xEA, 0xE6,
- 0xA2, 0x28, 0x49, 0xD9, 0x02, 0x92, 0x63, 0x5C
- },
- {
- 0x12, 0x30, 0xB1, 0xFC, 0x8A, 0x7D, 0x92, 0x15,
- 0xED, 0xC2, 0xD4, 0xA2, 0xDE, 0xCB, 0xDD, 0x0A,
- 0x6E, 0x21, 0x6C, 0x92, 0x42, 0x78, 0xC9, 0x1F,
- 0xC5, 0xD1, 0x0E, 0x7D, 0x60, 0x19, 0x2D, 0x94
- },
- {
- 0x57, 0x50, 0xD7, 0x16, 0xB4, 0x80, 0x8F, 0x75,
- 0x1F, 0xEB, 0xC3, 0x88, 0x06, 0xBA, 0x17, 0x0B,
- 0xF6, 0xD5, 0x19, 0x9A, 0x78, 0x16, 0xBE, 0x51,
- 0x4E, 0x3F, 0x93, 0x2F, 0xBE, 0x0C, 0xB8, 0x71
- },
- {
- 0x6F, 0xC5, 0x9B, 0x2F, 0x10, 0xFE, 0xBA, 0x95,
- 0x4A, 0xA6, 0x82, 0x0B, 0x3C, 0xA9, 0x87, 0xEE,
- 0x81, 0xD5, 0xCC, 0x1D, 0xA3, 0xC6, 0x3C, 0xE8,
- 0x27, 0x30, 0x1C, 0x56, 0x9D, 0xFB, 0x39, 0xCE
- },
- {
- 0xC7, 0xC3, 0xFE, 0x1E, 0xEB, 0xDC, 0x7B, 0x5A,
- 0x93, 0x93, 0x26, 0xE8, 0xDD, 0xB8, 0x3E, 0x8B,
- 0xF2, 0xB7, 0x80, 0xB6, 0x56, 0x78, 0xCB, 0x62,
- 0xF2, 0x08, 0xB0, 0x40, 0xAB, 0xDD, 0x35, 0xE2
- },
- {
- 0x0C, 0x75, 0xC1, 0xA1, 0x5C, 0xF3, 0x4A, 0x31,
- 0x4E, 0xE4, 0x78, 0xF4, 0xA5, 0xCE, 0x0B, 0x8A,
- 0x6B, 0x36, 0x52, 0x8E, 0xF7, 0xA8, 0x20, 0x69,
- 0x6C, 0x3E, 0x42, 0x46, 0xC5, 0xA1, 0x58, 0x64
- },
- {
- 0x21, 0x6D, 0xC1, 0x2A, 0x10, 0x85, 0x69, 0xA3,
- 0xC7, 0xCD, 0xDE, 0x4A, 0xED, 0x43, 0xA6, 0xC3,
- 0x30, 0x13, 0x9D, 0xDA, 0x3C, 0xCC, 0x4A, 0x10,
- 0x89, 0x05, 0xDB, 0x38, 0x61, 0x89, 0x90, 0x50
- },
- {
- 0xA5, 0x7B, 0xE6, 0xAE, 0x67, 0x56, 0xF2, 0x8B,
- 0x02, 0xF5, 0x9D, 0xAD, 0xF7, 0xE0, 0xD7, 0xD8,
- 0x80, 0x7F, 0x10, 0xFA, 0x15, 0xCE, 0xD1, 0xAD,
- 0x35, 0x85, 0x52, 0x1A, 0x1D, 0x99, 0x5A, 0x89
- },
- {
- 0x81, 0x6A, 0xEF, 0x87, 0x59, 0x53, 0x71, 0x6C,
- 0xD7, 0xA5, 0x81, 0xF7, 0x32, 0xF5, 0x3D, 0xD4,
- 0x35, 0xDA, 0xB6, 0x6D, 0x09, 0xC3, 0x61, 0xD2,
- 0xD6, 0x59, 0x2D, 0xE1, 0x77, 0x55, 0xD8, 0xA8
- },
- {
- 0x9A, 0x76, 0x89, 0x32, 0x26, 0x69, 0x3B, 0x6E,
- 0xA9, 0x7E, 0x6A, 0x73, 0x8F, 0x9D, 0x10, 0xFB,
- 0x3D, 0x0B, 0x43, 0xAE, 0x0E, 0x8B, 0x7D, 0x81,
- 0x23, 0xEA, 0x76, 0xCE, 0x97, 0x98, 0x9C, 0x7E
- },
- {
- 0x8D, 0xAE, 0xDB, 0x9A, 0x27, 0x15, 0x29, 0xDB,
- 0xB7, 0xDC, 0x3B, 0x60, 0x7F, 0xE5, 0xEB, 0x2D,
- 0x32, 0x11, 0x77, 0x07, 0x58, 0xDD, 0x3B, 0x0A,
- 0x35, 0x93, 0xD2, 0xD7, 0x95, 0x4E, 0x2D, 0x5B
- },
- {
- 0x16, 0xDB, 0xC0, 0xAA, 0x5D, 0xD2, 0xC7, 0x74,
- 0xF5, 0x05, 0x10, 0x0F, 0x73, 0x37, 0x86, 0xD8,
- 0xA1, 0x75, 0xFC, 0xBB, 0xB5, 0x9C, 0x43, 0xE1,
- 0xFB, 0xFF, 0x3E, 0x1E, 0xAF, 0x31, 0xCB, 0x4A
- },
- {
- 0x86, 0x06, 0xCB, 0x89, 0x9C, 0x6A, 0xEA, 0xF5,
- 0x1B, 0x9D, 0xB0, 0xFE, 0x49, 0x24, 0xA9, 0xFD,
- 0x5D, 0xAB, 0xC1, 0x9F, 0x88, 0x26, 0xF2, 0xBC,
- 0x1C, 0x1D, 0x7D, 0xA1, 0x4D, 0x2C, 0x2C, 0x99
- },
- {
- 0x84, 0x79, 0x73, 0x1A, 0xED, 0xA5, 0x7B, 0xD3,
- 0x7E, 0xAD, 0xB5, 0x1A, 0x50, 0x7E, 0x30, 0x7F,
- 0x3B, 0xD9, 0x5E, 0x69, 0xDB, 0xCA, 0x94, 0xF3,
- 0xBC, 0x21, 0x72, 0x60, 0x66, 0xAD, 0x6D, 0xFD
- },
- {
- 0x58, 0x47, 0x3A, 0x9E, 0xA8, 0x2E, 0xFA, 0x3F,
- 0x3B, 0x3D, 0x8F, 0xC8, 0x3E, 0xD8, 0x86, 0x31,
- 0x27, 0xB3, 0x3A, 0xE8, 0xDE, 0xAE, 0x63, 0x07,
- 0x20, 0x1E, 0xDB, 0x6D, 0xDE, 0x61, 0xDE, 0x29
- },
- {
- 0x9A, 0x92, 0x55, 0xD5, 0x3A, 0xF1, 0x16, 0xDE,
- 0x8B, 0xA2, 0x7C, 0xE3, 0x5B, 0x4C, 0x7E, 0x15,
- 0x64, 0x06, 0x57, 0xA0, 0xFC, 0xB8, 0x88, 0xC7,
- 0x0D, 0x95, 0x43, 0x1D, 0xAC, 0xD8, 0xF8, 0x30
- },
- {
- 0x9E, 0xB0, 0x5F, 0xFB, 0xA3, 0x9F, 0xD8, 0x59,
- 0x6A, 0x45, 0x49, 0x3E, 0x18, 0xD2, 0x51, 0x0B,
- 0xF3, 0xEF, 0x06, 0x5C, 0x51, 0xD6, 0xE1, 0x3A,
- 0xBE, 0x66, 0xAA, 0x57, 0xE0, 0x5C, 0xFD, 0xB7
- },
- {
- 0x81, 0xDC, 0xC3, 0xA5, 0x05, 0xEA, 0xCE, 0x3F,
- 0x87, 0x9D, 0x8F, 0x70, 0x27, 0x76, 0x77, 0x0F,
- 0x9D, 0xF5, 0x0E, 0x52, 0x1D, 0x14, 0x28, 0xA8,
- 0x5D, 0xAF, 0x04, 0xF9, 0xAD, 0x21, 0x50, 0xE0
- },
- {
- 0xE3, 0xE3, 0xC4, 0xAA, 0x3A, 0xCB, 0xBC, 0x85,
- 0x33, 0x2A, 0xF9, 0xD5, 0x64, 0xBC, 0x24, 0x16,
- 0x5E, 0x16, 0x87, 0xF6, 0xB1, 0xAD, 0xCB, 0xFA,
- 0xE7, 0x7A, 0x8F, 0x03, 0xC7, 0x2A, 0xC2, 0x8C
- },
- {
- 0x67, 0x46, 0xC8, 0x0B, 0x4E, 0xB5, 0x6A, 0xEA,
- 0x45, 0xE6, 0x4E, 0x72, 0x89, 0xBB, 0xA3, 0xED,
- 0xBF, 0x45, 0xEC, 0xF8, 0x20, 0x64, 0x81, 0xFF,
- 0x63, 0x02, 0x12, 0x29, 0x84, 0xCD, 0x52, 0x6A
- },
- {
- 0x2B, 0x62, 0x8E, 0x52, 0x76, 0x4D, 0x7D, 0x62,
- 0xC0, 0x86, 0x8B, 0x21, 0x23, 0x57, 0xCD, 0xD1,
- 0x2D, 0x91, 0x49, 0x82, 0x2F, 0x4E, 0x98, 0x45,
- 0xD9, 0x18, 0xA0, 0x8D, 0x1A, 0xE9, 0x90, 0xC0
- },
- {
- 0xE4, 0xBF, 0xE8, 0x0D, 0x58, 0xC9, 0x19, 0x94,
- 0x61, 0x39, 0x09, 0xDC, 0x4B, 0x1A, 0x12, 0x49,
- 0x68, 0x96, 0xC0, 0x04, 0xAF, 0x7B, 0x57, 0x01,
- 0x48, 0x3D, 0xE4, 0x5D, 0x28, 0x23, 0xD7, 0x8E
- },
- {
- 0xEB, 0xB4, 0xBA, 0x15, 0x0C, 0xEF, 0x27, 0x34,
- 0x34, 0x5B, 0x5D, 0x64, 0x1B, 0xBE, 0xD0, 0x3A,
- 0x21, 0xEA, 0xFA, 0xE9, 0x33, 0xC9, 0x9E, 0x00,
- 0x92, 0x12, 0xEF, 0x04, 0x57, 0x4A, 0x85, 0x30
- },
- {
- 0x39, 0x66, 0xEC, 0x73, 0xB1, 0x54, 0xAC, 0xC6,
- 0x97, 0xAC, 0x5C, 0xF5, 0xB2, 0x4B, 0x40, 0xBD,
- 0xB0, 0xDB, 0x9E, 0x39, 0x88, 0x36, 0xD7, 0x6D,
- 0x4B, 0x88, 0x0E, 0x3B, 0x2A, 0xF1, 0xAA, 0x27
- },
- {
- 0xEF, 0x7E, 0x48, 0x31, 0xB3, 0xA8, 0x46, 0x36,
- 0x51, 0x8D, 0x6E, 0x4B, 0xFC, 0xE6, 0x4A, 0x43,
- 0xDB, 0x2A, 0x5D, 0xDA, 0x9C, 0xCA, 0x2B, 0x44,
- 0xF3, 0x90, 0x33, 0xBD, 0xC4, 0x0D, 0x62, 0x43
- },
- {
- 0x7A, 0xBF, 0x6A, 0xCF, 0x5C, 0x8E, 0x54, 0x9D,
- 0xDB, 0xB1, 0x5A, 0xE8, 0xD8, 0xB3, 0x88, 0xC1,
- 0xC1, 0x97, 0xE6, 0x98, 0x73, 0x7C, 0x97, 0x85,
- 0x50, 0x1E, 0xD1, 0xF9, 0x49, 0x30, 0xB7, 0xD9
- },
- {
- 0x88, 0x01, 0x8D, 0xED, 0x66, 0x81, 0x3F, 0x0C,
- 0xA9, 0x5D, 0xEF, 0x47, 0x4C, 0x63, 0x06, 0x92,
- 0x01, 0x99, 0x67, 0xB9, 0xE3, 0x68, 0x88, 0xDA,
- 0xDD, 0x94, 0x12, 0x47, 0x19, 0xB6, 0x82, 0xF6
- },
- {
- 0x39, 0x30, 0x87, 0x6B, 0x9F, 0xC7, 0x52, 0x90,
- 0x36, 0xB0, 0x08, 0xB1, 0xB8, 0xBB, 0x99, 0x75,
- 0x22, 0xA4, 0x41, 0x63, 0x5A, 0x0C, 0x25, 0xEC,
- 0x02, 0xFB, 0x6D, 0x90, 0x26, 0xE5, 0x5A, 0x97
- },
- {
- 0x0A, 0x40, 0x49, 0xD5, 0x7E, 0x83, 0x3B, 0x56,
- 0x95, 0xFA, 0xC9, 0x3D, 0xD1, 0xFB, 0xEF, 0x31,
- 0x66, 0xB4, 0x4B, 0x12, 0xAD, 0x11, 0x24, 0x86,
- 0x62, 0x38, 0x3A, 0xE0, 0x51, 0xE1, 0x58, 0x27
- },
- {
- 0x81, 0xDC, 0xC0, 0x67, 0x8B, 0xB6, 0xA7, 0x65,
- 0xE4, 0x8C, 0x32, 0x09, 0x65, 0x4F, 0xE9, 0x00,
- 0x89, 0xCE, 0x44, 0xFF, 0x56, 0x18, 0x47, 0x7E,
- 0x39, 0xAB, 0x28, 0x64, 0x76, 0xDF, 0x05, 0x2B
- },
- {
- 0xE6, 0x9B, 0x3A, 0x36, 0xA4, 0x46, 0x19, 0x12,
- 0xDC, 0x08, 0x34, 0x6B, 0x11, 0xDD, 0xCB, 0x9D,
- 0xB7, 0x96, 0xF8, 0x85, 0xFD, 0x01, 0x93, 0x6E,
- 0x66, 0x2F, 0xE2, 0x92, 0x97, 0xB0, 0x99, 0xA4
- },
- {
- 0x5A, 0xC6, 0x50, 0x3B, 0x0D, 0x8D, 0xA6, 0x91,
- 0x76, 0x46, 0xE6, 0xDC, 0xC8, 0x7E, 0xDC, 0x58,
- 0xE9, 0x42, 0x45, 0x32, 0x4C, 0xC2, 0x04, 0xF4,
- 0xDD, 0x4A, 0xF0, 0x15, 0x63, 0xAC, 0xD4, 0x27
- },
- {
- 0xDF, 0x6D, 0xDA, 0x21, 0x35, 0x9A, 0x30, 0xBC,
- 0x27, 0x17, 0x80, 0x97, 0x1C, 0x1A, 0xBD, 0x56,
- 0xA6, 0xEF, 0x16, 0x7E, 0x48, 0x08, 0x87, 0x88,
- 0x8E, 0x73, 0xA8, 0x6D, 0x3B, 0xF6, 0x05, 0xE9
- },
- {
- 0xE8, 0xE6, 0xE4, 0x70, 0x71, 0xE7, 0xB7, 0xDF,
- 0x25, 0x80, 0xF2, 0x25, 0xCF, 0xBB, 0xED, 0xF8,
- 0x4C, 0xE6, 0x77, 0x46, 0x62, 0x66, 0x28, 0xD3,
- 0x30, 0x97, 0xE4, 0xB7, 0xDC, 0x57, 0x11, 0x07
- },
- {
- 0x53, 0xE4, 0x0E, 0xAD, 0x62, 0x05, 0x1E, 0x19,
- 0xCB, 0x9B, 0xA8, 0x13, 0x3E, 0x3E, 0x5C, 0x1C,
- 0xE0, 0x0D, 0xDC, 0xAD, 0x8A, 0xCF, 0x34, 0x2A,
- 0x22, 0x43, 0x60, 0xB0, 0xAC, 0xC1, 0x47, 0x77
- },
- {
- 0x9C, 0xCD, 0x53, 0xFE, 0x80, 0xBE, 0x78, 0x6A,
- 0xA9, 0x84, 0x63, 0x84, 0x62, 0xFB, 0x28, 0xAF,
- 0xDF, 0x12, 0x2B, 0x34, 0xD7, 0x8F, 0x46, 0x87,
- 0xEC, 0x63, 0x2B, 0xB1, 0x9D, 0xE2, 0x37, 0x1A
- },
- {
- 0xCB, 0xD4, 0x80, 0x52, 0xC4, 0x8D, 0x78, 0x84,
- 0x66, 0xA3, 0xE8, 0x11, 0x8C, 0x56, 0xC9, 0x7F,
- 0xE1, 0x46, 0xE5, 0x54, 0x6F, 0xAA, 0xF9, 0x3E,
- 0x2B, 0xC3, 0xC4, 0x7E, 0x45, 0x93, 0x97, 0x53
- },
- {
- 0x25, 0x68, 0x83, 0xB1, 0x4E, 0x2A, 0xF4, 0x4D,
- 0xAD, 0xB2, 0x8E, 0x1B, 0x34, 0xB2, 0xAC, 0x0F,
- 0x0F, 0x4C, 0x91, 0xC3, 0x4E, 0xC9, 0x16, 0x9E,
- 0x29, 0x03, 0x61, 0x58, 0xAC, 0xAA, 0x95, 0xB9
- },
- {
- 0x44, 0x71, 0xB9, 0x1A, 0xB4, 0x2D, 0xB7, 0xC4,
- 0xDD, 0x84, 0x90, 0xAB, 0x95, 0xA2, 0xEE, 0x8D,
- 0x04, 0xE3, 0xEF, 0x5C, 0x3D, 0x6F, 0xC7, 0x1A,
- 0xC7, 0x4B, 0x2B, 0x26, 0x91, 0x4D, 0x16, 0x41
- },
- {
- 0xA5, 0xEB, 0x08, 0x03, 0x8F, 0x8F, 0x11, 0x55,
- 0xED, 0x86, 0xE6, 0x31, 0x90, 0x6F, 0xC1, 0x30,
- 0x95, 0xF6, 0xBB, 0xA4, 0x1D, 0xE5, 0xD4, 0xE7,
- 0x95, 0x75, 0x8E, 0xC8, 0xC8, 0xDF, 0x8A, 0xF1
- },
- {
- 0xDC, 0x1D, 0xB6, 0x4E, 0xD8, 0xB4, 0x8A, 0x91,
- 0x0E, 0x06, 0x0A, 0x6B, 0x86, 0x63, 0x74, 0xC5,
- 0x78, 0x78, 0x4E, 0x9A, 0xC4, 0x9A, 0xB2, 0x77,
- 0x40, 0x92, 0xAC, 0x71, 0x50, 0x19, 0x34, 0xAC
- },
- {
- 0x28, 0x54, 0x13, 0xB2, 0xF2, 0xEE, 0x87, 0x3D,
- 0x34, 0x31, 0x9E, 0xE0, 0xBB, 0xFB, 0xB9, 0x0F,
- 0x32, 0xDA, 0x43, 0x4C, 0xC8, 0x7E, 0x3D, 0xB5,
- 0xED, 0x12, 0x1B, 0xB3, 0x98, 0xED, 0x96, 0x4B
- },
- {
- 0x02, 0x16, 0xE0, 0xF8, 0x1F, 0x75, 0x0F, 0x26,
- 0xF1, 0x99, 0x8B, 0xC3, 0x93, 0x4E, 0x3E, 0x12,
- 0x4C, 0x99, 0x45, 0xE6, 0x85, 0xA6, 0x0B, 0x25,
- 0xE8, 0xFB, 0xD9, 0x62, 0x5A, 0xB6, 0xB5, 0x99
- },
- {
- 0x38, 0xC4, 0x10, 0xF5, 0xB9, 0xD4, 0x07, 0x20,
- 0x50, 0x75, 0x5B, 0x31, 0xDC, 0xA8, 0x9F, 0xD5,
- 0x39, 0x5C, 0x67, 0x85, 0xEE, 0xB3, 0xD7, 0x90,
- 0xF3, 0x20, 0xFF, 0x94, 0x1C, 0x5A, 0x93, 0xBF
- },
- {
- 0xF1, 0x84, 0x17, 0xB3, 0x9D, 0x61, 0x7A, 0xB1,
- 0xC1, 0x8F, 0xDF, 0x91, 0xEB, 0xD0, 0xFC, 0x6D,
- 0x55, 0x16, 0xBB, 0x34, 0xCF, 0x39, 0x36, 0x40,
- 0x37, 0xBC, 0xE8, 0x1F, 0xA0, 0x4C, 0xEC, 0xB1
- },
- {
- 0x1F, 0xA8, 0x77, 0xDE, 0x67, 0x25, 0x9D, 0x19,
- 0x86, 0x3A, 0x2A, 0x34, 0xBC, 0xC6, 0x96, 0x2A,
- 0x2B, 0x25, 0xFC, 0xBF, 0x5C, 0xBE, 0xCD, 0x7E,
- 0xDE, 0x8F, 0x1F, 0xA3, 0x66, 0x88, 0xA7, 0x96
- },
- {
- 0x5B, 0xD1, 0x69, 0xE6, 0x7C, 0x82, 0xC2, 0xC2,
- 0xE9, 0x8E, 0xF7, 0x00, 0x8B, 0xDF, 0x26, 0x1F,
- 0x2D, 0xDF, 0x30, 0xB1, 0xC0, 0x0F, 0x9E, 0x7F,
- 0x27, 0x5B, 0xB3, 0xE8, 0xA2, 0x8D, 0xC9, 0xA2
- },
- {
- 0xC8, 0x0A, 0xBE, 0xEB, 0xB6, 0x69, 0xAD, 0x5D,
- 0xEE, 0xB5, 0xF5, 0xEC, 0x8E, 0xA6, 0xB7, 0xA0,
- 0x5D, 0xDF, 0x7D, 0x31, 0xEC, 0x4C, 0x0A, 0x2E,
- 0xE2, 0x0B, 0x0B, 0x98, 0xCA, 0xEC, 0x67, 0x46
- },
- {
- 0xE7, 0x6D, 0x3F, 0xBD, 0xA5, 0xBA, 0x37, 0x4E,
- 0x6B, 0xF8, 0xE5, 0x0F, 0xAD, 0xC3, 0xBB, 0xB9,
- 0xBA, 0x5C, 0x20, 0x6E, 0xBD, 0xEC, 0x89, 0xA3,
- 0xA5, 0x4C, 0xF3, 0xDD, 0x84, 0xA0, 0x70, 0x16
- },
- {
- 0x7B, 0xBA, 0x9D, 0xC5, 0xB5, 0xDB, 0x20, 0x71,
- 0xD1, 0x77, 0x52, 0xB1, 0x04, 0x4C, 0x1E, 0xCE,
- 0xD9, 0x6A, 0xAF, 0x2D, 0xD4, 0x6E, 0x9B, 0x43,
- 0x37, 0x50, 0xE8, 0xEA, 0x0D, 0xCC, 0x18, 0x70
- },
- {
- 0xF2, 0x9B, 0x1B, 0x1A, 0xB9, 0xBA, 0xB1, 0x63,
- 0x01, 0x8E, 0xE3, 0xDA, 0x15, 0x23, 0x2C, 0xCA,
- 0x78, 0xEC, 0x52, 0xDB, 0xC3, 0x4E, 0xDA, 0x5B,
- 0x82, 0x2E, 0xC1, 0xD8, 0x0F, 0xC2, 0x1B, 0xD0
- },
- {
- 0x9E, 0xE3, 0xE3, 0xE7, 0xE9, 0x00, 0xF1, 0xE1,
- 0x1D, 0x30, 0x8C, 0x4B, 0x2B, 0x30, 0x76, 0xD2,
- 0x72, 0xCF, 0x70, 0x12, 0x4F, 0x9F, 0x51, 0xE1,
- 0xDA, 0x60, 0xF3, 0x78, 0x46, 0xCD, 0xD2, 0xF4
- },
- {
- 0x70, 0xEA, 0x3B, 0x01, 0x76, 0x92, 0x7D, 0x90,
- 0x96, 0xA1, 0x85, 0x08, 0xCD, 0x12, 0x3A, 0x29,
- 0x03, 0x25, 0x92, 0x0A, 0x9D, 0x00, 0xA8, 0x9B,
- 0x5D, 0xE0, 0x42, 0x73, 0xFB, 0xC7, 0x6B, 0x85
- },
- {
- 0x67, 0xDE, 0x25, 0xC0, 0x2A, 0x4A, 0xAB, 0xA2,
- 0x3B, 0xDC, 0x97, 0x3C, 0x8B, 0xB0, 0xB5, 0x79,
- 0x6D, 0x47, 0xCC, 0x06, 0x59, 0xD4, 0x3D, 0xFF,
- 0x1F, 0x97, 0xDE, 0x17, 0x49, 0x63, 0xB6, 0x8E
- },
- {
- 0xB2, 0x16, 0x8E, 0x4E, 0x0F, 0x18, 0xB0, 0xE6,
- 0x41, 0x00, 0xB5, 0x17, 0xED, 0x95, 0x25, 0x7D,
- 0x73, 0xF0, 0x62, 0x0D, 0xF8, 0x85, 0xC1, 0x3D,
- 0x2E, 0xCF, 0x79, 0x36, 0x7B, 0x38, 0x4C, 0xEE
- },
- {
- 0x2E, 0x7D, 0xEC, 0x24, 0x28, 0x85, 0x3B, 0x2C,
- 0x71, 0x76, 0x07, 0x45, 0x54, 0x1F, 0x7A, 0xFE,
- 0x98, 0x25, 0xB5, 0xDD, 0x77, 0xDF, 0x06, 0x51,
- 0x1D, 0x84, 0x41, 0xA9, 0x4B, 0xAC, 0xC9, 0x27
- },
- {
- 0xCA, 0x9F, 0xFA, 0xC4, 0xC4, 0x3F, 0x0B, 0x48,
- 0x46, 0x1D, 0xC5, 0xC2, 0x63, 0xBE, 0xA3, 0xF6,
- 0xF0, 0x06, 0x11, 0xCE, 0xAC, 0xAB, 0xF6, 0xF8,
- 0x95, 0xBA, 0x2B, 0x01, 0x01, 0xDB, 0xB6, 0x8D
- },
- {
- 0x74, 0x10, 0xD4, 0x2D, 0x8F, 0xD1, 0xD5, 0xE9,
- 0xD2, 0xF5, 0x81, 0x5C, 0xB9, 0x34, 0x17, 0x99,
- 0x88, 0x28, 0xEF, 0x3C, 0x42, 0x30, 0xBF, 0xBD,
- 0x41, 0x2D, 0xF0, 0xA4, 0xA7, 0xA2, 0x50, 0x7A
- },
- {
- 0x50, 0x10, 0xF6, 0x84, 0x51, 0x6D, 0xCC, 0xD0,
- 0xB6, 0xEE, 0x08, 0x52, 0xC2, 0x51, 0x2B, 0x4D,
- 0xC0, 0x06, 0x6C, 0xF0, 0xD5, 0x6F, 0x35, 0x30,
- 0x29, 0x78, 0xDB, 0x8A, 0xE3, 0x2C, 0x6A, 0x81
- },
- {
- 0xAC, 0xAA, 0xB5, 0x85, 0xF7, 0xB7, 0x9B, 0x71,
- 0x99, 0x35, 0xCE, 0xB8, 0x95, 0x23, 0xDD, 0xC5,
- 0x48, 0x27, 0xF7, 0x5C, 0x56, 0x88, 0x38, 0x56,
- 0x15, 0x4A, 0x56, 0xCD, 0xCD, 0x5E, 0xE9, 0x88
- },
- {
- 0x66, 0x6D, 0xE5, 0xD1, 0x44, 0x0F, 0xEE, 0x73,
- 0x31, 0xAA, 0xF0, 0x12, 0x3A, 0x62, 0xEF, 0x2D,
- 0x8B, 0xA5, 0x74, 0x53, 0xA0, 0x76, 0x96, 0x35,
- 0xAC, 0x6C, 0xD0, 0x1E, 0x63, 0x3F, 0x77, 0x12
- },
- {
- 0xA6, 0xF9, 0x86, 0x58, 0xF6, 0xEA, 0xBA, 0xF9,
- 0x02, 0xD8, 0xB3, 0x87, 0x1A, 0x4B, 0x10, 0x1D,
- 0x16, 0x19, 0x6E, 0x8A, 0x4B, 0x24, 0x1E, 0x15,
- 0x58, 0xFE, 0x29, 0x96, 0x6E, 0x10, 0x3E, 0x8D
- },
- {
- 0x89, 0x15, 0x46, 0xA8, 0xB2, 0x9F, 0x30, 0x47,
- 0xDD, 0xCF, 0xE5, 0xB0, 0x0E, 0x45, 0xFD, 0x55,
- 0x75, 0x63, 0x73, 0x10, 0x5E, 0xA8, 0x63, 0x7D,
- 0xFC, 0xFF, 0x54, 0x7B, 0x6E, 0xA9, 0x53, 0x5F
- },
- {
- 0x18, 0xDF, 0xBC, 0x1A, 0xC5, 0xD2, 0x5B, 0x07,
- 0x61, 0x13, 0x7D, 0xBD, 0x22, 0xC1, 0x7C, 0x82,
- 0x9D, 0x0F, 0x0E, 0xF1, 0xD8, 0x23, 0x44, 0xE9,
- 0xC8, 0x9C, 0x28, 0x66, 0x94, 0xDA, 0x24, 0xE8
- },
- {
- 0xB5, 0x4B, 0x9B, 0x67, 0xF8, 0xFE, 0xD5, 0x4B,
- 0xBF, 0x5A, 0x26, 0x66, 0xDB, 0xDF, 0x4B, 0x23,
- 0xCF, 0xF1, 0xD1, 0xB6, 0xF4, 0xAF, 0xC9, 0x85,
- 0xB2, 0xE6, 0xD3, 0x30, 0x5A, 0x9F, 0xF8, 0x0F
- },
- {
- 0x7D, 0xB4, 0x42, 0xE1, 0x32, 0xBA, 0x59, 0xBC,
- 0x12, 0x89, 0xAA, 0x98, 0xB0, 0xD3, 0xE8, 0x06,
- 0x00, 0x4F, 0x8E, 0xC1, 0x28, 0x11, 0xAF, 0x1E,
- 0x2E, 0x33, 0xC6, 0x9B, 0xFD, 0xE7, 0x29, 0xE1
- },
- {
- 0x25, 0x0F, 0x37, 0xCD, 0xC1, 0x5E, 0x81, 0x7D,
- 0x2F, 0x16, 0x0D, 0x99, 0x56, 0xC7, 0x1F, 0xE3,
- 0xEB, 0x5D, 0xB7, 0x45, 0x56, 0xE4, 0xAD, 0xF9,
- 0xA4, 0xFF, 0xAF, 0xBA, 0x74, 0x01, 0x03, 0x96
- },
- {
- 0x4A, 0xB8, 0xA3, 0xDD, 0x1D, 0xDF, 0x8A, 0xD4,
- 0x3D, 0xAB, 0x13, 0xA2, 0x7F, 0x66, 0xA6, 0x54,
- 0x4F, 0x29, 0x05, 0x97, 0xFA, 0x96, 0x04, 0x0E,
- 0x0E, 0x1D, 0xB9, 0x26, 0x3A, 0xA4, 0x79, 0xF8
- },
- {
- 0xEE, 0x61, 0x72, 0x7A, 0x07, 0x66, 0xDF, 0x93,
- 0x9C, 0xCD, 0xC8, 0x60, 0x33, 0x40, 0x44, 0xC7,
- 0x9A, 0x3C, 0x9B, 0x15, 0x62, 0x00, 0xBC, 0x3A,
- 0xA3, 0x29, 0x73, 0x48, 0x3D, 0x83, 0x41, 0xAE
- },
- {
- 0x3F, 0x68, 0xC7, 0xEC, 0x63, 0xAC, 0x11, 0xEB,
- 0xB9, 0x8F, 0x94, 0xB3, 0x39, 0xB0, 0x5C, 0x10,
- 0x49, 0x84, 0xFD, 0xA5, 0x01, 0x03, 0x06, 0x01,
- 0x44, 0xE5, 0xA2, 0xBF, 0xCC, 0xC9, 0xDA, 0x95
- },
- {
- 0x05, 0x6F, 0x29, 0x81, 0x6B, 0x8A, 0xF8, 0xF5,
- 0x66, 0x82, 0xBC, 0x4D, 0x7C, 0xF0, 0x94, 0x11,
- 0x1D, 0xA7, 0x73, 0x3E, 0x72, 0x6C, 0xD1, 0x3D,
- 0x6B, 0x3E, 0x8E, 0xA0, 0x3E, 0x92, 0xA0, 0xD5
- },
- {
- 0xF5, 0xEC, 0x43, 0xA2, 0x8A, 0xCB, 0xEF, 0xF1,
- 0xF3, 0x31, 0x8A, 0x5B, 0xCA, 0xC7, 0xC6, 0x6D,
- 0xDB, 0x52, 0x30, 0xB7, 0x9D, 0xB2, 0xD1, 0x05,
- 0xBC, 0xBE, 0x15, 0xF3, 0xC1, 0x14, 0x8D, 0x69
- },
- {
- 0x2A, 0x69, 0x60, 0xAD, 0x1D, 0x8D, 0xD5, 0x47,
- 0x55, 0x5C, 0xFB, 0xD5, 0xE4, 0x60, 0x0F, 0x1E,
- 0xAA, 0x1C, 0x8E, 0xDA, 0x34, 0xDE, 0x03, 0x74,
- 0xEC, 0x4A, 0x26, 0xEA, 0xAA, 0xA3, 0x3B, 0x4E
- },
- {
- 0xDC, 0xC1, 0xEA, 0x7B, 0xAA, 0xB9, 0x33, 0x84,
- 0xF7, 0x6B, 0x79, 0x68, 0x66, 0x19, 0x97, 0x54,
- 0x74, 0x2F, 0x7B, 0x96, 0xD6, 0xB4, 0xC1, 0x20,
- 0x16, 0x5C, 0x04, 0xA6, 0xC4, 0xF5, 0xCE, 0x10
- },
- {
- 0x13, 0xD5, 0xDF, 0x17, 0x92, 0x21, 0x37, 0x9C,
- 0x6A, 0x78, 0xC0, 0x7C, 0x79, 0x3F, 0xF5, 0x34,
- 0x87, 0xCA, 0xE6, 0xBF, 0x9F, 0xE8, 0x82, 0x54,
- 0x1A, 0xB0, 0xE7, 0x35, 0xE3, 0xEA, 0xDA, 0x3B
- },
- {
- 0x8C, 0x59, 0xE4, 0x40, 0x76, 0x41, 0xA0, 0x1E,
- 0x8F, 0xF9, 0x1F, 0x99, 0x80, 0xDC, 0x23, 0x6F,
- 0x4E, 0xCD, 0x6F, 0xCF, 0x52, 0x58, 0x9A, 0x09,
- 0x9A, 0x96, 0x16, 0x33, 0x96, 0x77, 0x14, 0xE1
- },
- {
- 0x83, 0x3B, 0x1A, 0xC6, 0xA2, 0x51, 0xFD, 0x08,
- 0xFD, 0x6D, 0x90, 0x8F, 0xEA, 0x2A, 0x4E, 0xE1,
- 0xE0, 0x40, 0xBC, 0xA9, 0x3F, 0xC1, 0xA3, 0x8E,
- 0xC3, 0x82, 0x0E, 0x0C, 0x10, 0xBD, 0x82, 0xEA
- },
- {
- 0xA2, 0x44, 0xF9, 0x27, 0xF3, 0xB4, 0x0B, 0x8F,
- 0x6C, 0x39, 0x15, 0x70, 0xC7, 0x65, 0x41, 0x8F,
- 0x2F, 0x6E, 0x70, 0x8E, 0xAC, 0x90, 0x06, 0xC5,
- 0x1A, 0x7F, 0xEF, 0xF4, 0xAF, 0x3B, 0x2B, 0x9E
- },
- {
- 0x3D, 0x99, 0xED, 0x95, 0x50, 0xCF, 0x11, 0x96,
- 0xE6, 0xC4, 0xD2, 0x0C, 0x25, 0x96, 0x20, 0xF8,
- 0x58, 0xC3, 0xD7, 0x03, 0x37, 0x4C, 0x12, 0x8C,
- 0xE7, 0xB5, 0x90, 0x31, 0x0C, 0x83, 0x04, 0x6D
- },
- {
- 0x2B, 0x35, 0xC4, 0x7D, 0x7B, 0x87, 0x76, 0x1F,
- 0x0A, 0xE4, 0x3A, 0xC5, 0x6A, 0xC2, 0x7B, 0x9F,
- 0x25, 0x83, 0x03, 0x67, 0xB5, 0x95, 0xBE, 0x8C,
- 0x24, 0x0E, 0x94, 0x60, 0x0C, 0x6E, 0x33, 0x12
- },
- {
- 0x5D, 0x11, 0xED, 0x37, 0xD2, 0x4D, 0xC7, 0x67,
- 0x30, 0x5C, 0xB7, 0xE1, 0x46, 0x7D, 0x87, 0xC0,
- 0x65, 0xAC, 0x4B, 0xC8, 0xA4, 0x26, 0xDE, 0x38,
- 0x99, 0x1F, 0xF5, 0x9A, 0xA8, 0x73, 0x5D, 0x02
- },
- {
- 0xB8, 0x36, 0x47, 0x8E, 0x1C, 0xA0, 0x64, 0x0D,
- 0xCE, 0x6F, 0xD9, 0x10, 0xA5, 0x09, 0x62, 0x72,
- 0xC8, 0x33, 0x09, 0x90, 0xCD, 0x97, 0x86, 0x4A,
- 0xC2, 0xBF, 0x14, 0xEF, 0x6B, 0x23, 0x91, 0x4A
- },
- {
- 0x91, 0x00, 0xF9, 0x46, 0xD6, 0xCC, 0xDE, 0x3A,
- 0x59, 0x7F, 0x90, 0xD3, 0x9F, 0xC1, 0x21, 0x5B,
- 0xAD, 0xDC, 0x74, 0x13, 0x64, 0x3D, 0x85, 0xC2,
- 0x1C, 0x3E, 0xEE, 0x5D, 0x2D, 0xD3, 0x28, 0x94
- },
- {
- 0xDA, 0x70, 0xEE, 0xDD, 0x23, 0xE6, 0x63, 0xAA,
- 0x1A, 0x74, 0xB9, 0x76, 0x69, 0x35, 0xB4, 0x79,
- 0x22, 0x2A, 0x72, 0xAF, 0xBA, 0x5C, 0x79, 0x51,
- 0x58, 0xDA, 0xD4, 0x1A, 0x3B, 0xD7, 0x7E, 0x40
- },
- {
- 0xF0, 0x67, 0xED, 0x6A, 0x0D, 0xBD, 0x43, 0xAA,
- 0x0A, 0x92, 0x54, 0xE6, 0x9F, 0xD6, 0x6B, 0xDD,
- 0x8A, 0xCB, 0x87, 0xDE, 0x93, 0x6C, 0x25, 0x8C,
- 0xFB, 0x02, 0x28, 0x5F, 0x2C, 0x11, 0xFA, 0x79
- },
- {
- 0x71, 0x5C, 0x99, 0xC7, 0xD5, 0x75, 0x80, 0xCF,
- 0x97, 0x53, 0xB4, 0xC1, 0xD7, 0x95, 0xE4, 0x5A,
- 0x83, 0xFB, 0xB2, 0x28, 0xC0, 0xD3, 0x6F, 0xBE,
- 0x20, 0xFA, 0xF3, 0x9B, 0xDD, 0x6D, 0x4E, 0x85
- },
- {
- 0xE4, 0x57, 0xD6, 0xAD, 0x1E, 0x67, 0xCB, 0x9B,
- 0xBD, 0x17, 0xCB, 0xD6, 0x98, 0xFA, 0x6D, 0x7D,
- 0xAE, 0x0C, 0x9B, 0x7A, 0xD6, 0xCB, 0xD6, 0x53,
- 0x96, 0x34, 0xE3, 0x2A, 0x71, 0x9C, 0x84, 0x92
- },
- {
- 0xEC, 0xE3, 0xEA, 0x81, 0x03, 0xE0, 0x24, 0x83,
- 0xC6, 0x4A, 0x70, 0xA4, 0xBD, 0xCE, 0xE8, 0xCE,
- 0xB6, 0x27, 0x8F, 0x25, 0x33, 0xF3, 0xF4, 0x8D,
- 0xBE, 0xED, 0xFB, 0xA9, 0x45, 0x31, 0xD4, 0xAE
- },
- {
- 0x38, 0x8A, 0xA5, 0xD3, 0x66, 0x7A, 0x97, 0xC6,
- 0x8D, 0x3D, 0x56, 0xF8, 0xF3, 0xEE, 0x8D, 0x3D,
- 0x36, 0x09, 0x1F, 0x17, 0xFE, 0x5D, 0x1B, 0x0D,
- 0x5D, 0x84, 0xC9, 0x3B, 0x2F, 0xFE, 0x40, 0xBD
- },
- {
- 0x8B, 0x6B, 0x31, 0xB9, 0xAD, 0x7C, 0x3D, 0x5C,
- 0xD8, 0x4B, 0xF9, 0x89, 0x47, 0xB9, 0xCD, 0xB5,
- 0x9D, 0xF8, 0xA2, 0x5F, 0xF7, 0x38, 0x10, 0x10,
- 0x13, 0xBE, 0x4F, 0xD6, 0x5E, 0x1D, 0xD1, 0xA3
- },
- {
- 0x06, 0x62, 0x91, 0xF6, 0xBB, 0xD2, 0x5F, 0x3C,
- 0x85, 0x3D, 0xB7, 0xD8, 0xB9, 0x5C, 0x9A, 0x1C,
- 0xFB, 0x9B, 0xF1, 0xC1, 0xC9, 0x9F, 0xB9, 0x5A,
- 0x9B, 0x78, 0x69, 0xD9, 0x0F, 0x1C, 0x29, 0x03
- },
- {
- 0xA7, 0x07, 0xEF, 0xBC, 0xCD, 0xCE, 0xED, 0x42,
- 0x96, 0x7A, 0x66, 0xF5, 0x53, 0x9B, 0x93, 0xED,
- 0x75, 0x60, 0xD4, 0x67, 0x30, 0x40, 0x16, 0xC4,
- 0x78, 0x0D, 0x77, 0x55, 0xA5, 0x65, 0xD4, 0xC4
- },
- {
- 0x38, 0xC5, 0x3D, 0xFB, 0x70, 0xBE, 0x7E, 0x79,
- 0x2B, 0x07, 0xA6, 0xA3, 0x5B, 0x8A, 0x6A, 0x0A,
- 0xBA, 0x02, 0xC5, 0xC5, 0xF3, 0x8B, 0xAF, 0x5C,
- 0x82, 0x3F, 0xDF, 0xD9, 0xE4, 0x2D, 0x65, 0x7E
- },
- {
- 0xF2, 0x91, 0x13, 0x86, 0x50, 0x1D, 0x9A, 0xB9,
- 0xD7, 0x20, 0xCF, 0x8A, 0xD1, 0x05, 0x03, 0xD5,
- 0x63, 0x4B, 0xF4, 0xB7, 0xD1, 0x2B, 0x56, 0xDF,
- 0xB7, 0x4F, 0xEC, 0xC6, 0xE4, 0x09, 0x3F, 0x68
- },
- {
- 0xC6, 0xF2, 0xBD, 0xD5, 0x2B, 0x81, 0xE6, 0xE4,
- 0xF6, 0x59, 0x5A, 0xBD, 0x4D, 0x7F, 0xB3, 0x1F,
- 0x65, 0x11, 0x69, 0xD0, 0x0F, 0xF3, 0x26, 0x92,
- 0x6B, 0x34, 0x94, 0x7B, 0x28, 0xA8, 0x39, 0x59
- },
- {
- 0x29, 0x3D, 0x94, 0xB1, 0x8C, 0x98, 0xBB, 0x32,
- 0x23, 0x36, 0x6B, 0x8C, 0xE7, 0x4C, 0x28, 0xFB,
- 0xDF, 0x28, 0xE1, 0xF8, 0x4A, 0x33, 0x50, 0xB0,
- 0xEB, 0x2D, 0x18, 0x04, 0xA5, 0x77, 0x57, 0x9B
- },
- {
- 0x2C, 0x2F, 0xA5, 0xC0, 0xB5, 0x15, 0x33, 0x16,
- 0x5B, 0xC3, 0x75, 0xC2, 0x2E, 0x27, 0x81, 0x76,
- 0x82, 0x70, 0xA3, 0x83, 0x98, 0x5D, 0x13, 0xBD,
- 0x6B, 0x67, 0xB6, 0xFD, 0x67, 0xF8, 0x89, 0xEB
- },
- {
- 0xCA, 0xA0, 0x9B, 0x82, 0xB7, 0x25, 0x62, 0xE4,
- 0x3F, 0x4B, 0x22, 0x75, 0xC0, 0x91, 0x91, 0x8E,
- 0x62, 0x4D, 0x91, 0x16, 0x61, 0xCC, 0x81, 0x1B,
- 0xB5, 0xFA, 0xEC, 0x51, 0xF6, 0x08, 0x8E, 0xF7
- },
- {
- 0x24, 0x76, 0x1E, 0x45, 0xE6, 0x74, 0x39, 0x53,
- 0x79, 0xFB, 0x17, 0x72, 0x9C, 0x78, 0xCB, 0x93,
- 0x9E, 0x6F, 0x74, 0xC5, 0xDF, 0xFB, 0x9C, 0x96,
- 0x1F, 0x49, 0x59, 0x82, 0xC3, 0xED, 0x1F, 0xE3
- },
- {
- 0x55, 0xB7, 0x0A, 0x82, 0x13, 0x1E, 0xC9, 0x48,
- 0x88, 0xD7, 0xAB, 0x54, 0xA7, 0xC5, 0x15, 0x25,
- 0x5C, 0x39, 0x38, 0xBB, 0x10, 0xBC, 0x78, 0x4D,
- 0xC9, 0xB6, 0x7F, 0x07, 0x6E, 0x34, 0x1A, 0x73
- },
- {
- 0x6A, 0xB9, 0x05, 0x7B, 0x97, 0x7E, 0xBC, 0x3C,
- 0xA4, 0xD4, 0xCE, 0x74, 0x50, 0x6C, 0x25, 0xCC,
- 0xCD, 0xC5, 0x66, 0x49, 0x7C, 0x45, 0x0B, 0x54,
- 0x15, 0xA3, 0x94, 0x86, 0xF8, 0x65, 0x7A, 0x03
- },
- {
- 0x24, 0x06, 0x6D, 0xEE, 0xE0, 0xEC, 0xEE, 0x15,
- 0xA4, 0x5F, 0x0A, 0x32, 0x6D, 0x0F, 0x8D, 0xBC,
- 0x79, 0x76, 0x1E, 0xBB, 0x93, 0xCF, 0x8C, 0x03,
- 0x77, 0xAF, 0x44, 0x09, 0x78, 0xFC, 0xF9, 0x94
- },
- {
- 0x20, 0x00, 0x0D, 0x3F, 0x66, 0xBA, 0x76, 0x86,
- 0x0D, 0x5A, 0x95, 0x06, 0x88, 0xB9, 0xAA, 0x0D,
- 0x76, 0xCF, 0xEA, 0x59, 0xB0, 0x05, 0xD8, 0x59,
- 0x91, 0x4B, 0x1A, 0x46, 0x65, 0x3A, 0x93, 0x9B
- },
- {
- 0xB9, 0x2D, 0xAA, 0x79, 0x60, 0x3E, 0x3B, 0xDB,
- 0xC3, 0xBF, 0xE0, 0xF4, 0x19, 0xE4, 0x09, 0xB2,
- 0xEA, 0x10, 0xDC, 0x43, 0x5B, 0xEE, 0xFE, 0x29,
- 0x59, 0xDA, 0x16, 0x89, 0x5D, 0x5D, 0xCA, 0x1C
- },
- {
- 0xE9, 0x47, 0x94, 0x87, 0x05, 0xB2, 0x06, 0xD5,
- 0x72, 0xB0, 0xE8, 0xF6, 0x2F, 0x66, 0xA6, 0x55,
- 0x1C, 0xBD, 0x6B, 0xC3, 0x05, 0xD2, 0x6C, 0xE7,
- 0x53, 0x9A, 0x12, 0xF9, 0xAA, 0xDF, 0x75, 0x71
- },
- {
- 0x3D, 0x67, 0xC1, 0xB3, 0xF9, 0xB2, 0x39, 0x10,
- 0xE3, 0xD3, 0x5E, 0x6B, 0x0F, 0x2C, 0xCF, 0x44,
- 0xA0, 0xB5, 0x40, 0xA4, 0x5C, 0x18, 0xBA, 0x3C,
- 0x36, 0x26, 0x4D, 0xD4, 0x8E, 0x96, 0xAF, 0x6A
- },
- {
- 0xC7, 0x55, 0x8B, 0xAB, 0xDA, 0x04, 0xBC, 0xCB,
- 0x76, 0x4D, 0x0B, 0xBF, 0x33, 0x58, 0x42, 0x51,
- 0x41, 0x90, 0x2D, 0x22, 0x39, 0x1D, 0x9F, 0x8C,
- 0x59, 0x15, 0x9F, 0xEC, 0x9E, 0x49, 0xB1, 0x51
- },
- {
- 0x0B, 0x73, 0x2B, 0xB0, 0x35, 0x67, 0x5A, 0x50,
- 0xFF, 0x58, 0xF2, 0xC2, 0x42, 0xE4, 0x71, 0x0A,
- 0xEC, 0xE6, 0x46, 0x70, 0x07, 0x9C, 0x13, 0x04,
- 0x4C, 0x79, 0xC9, 0xB7, 0x49, 0x1F, 0x70, 0x00
- },
- {
- 0xD1, 0x20, 0xB5, 0xEF, 0x6D, 0x57, 0xEB, 0xF0,
- 0x6E, 0xAF, 0x96, 0xBC, 0x93, 0x3C, 0x96, 0x7B,
- 0x16, 0xCB, 0xE6, 0xE2, 0xBF, 0x00, 0x74, 0x1C,
- 0x30, 0xAA, 0x1C, 0x54, 0xBA, 0x64, 0x80, 0x1F
- },
- {
- 0x58, 0xD2, 0x12, 0xAD, 0x6F, 0x58, 0xAE, 0xF0,
- 0xF8, 0x01, 0x16, 0xB4, 0x41, 0xE5, 0x7F, 0x61,
- 0x95, 0xBF, 0xEF, 0x26, 0xB6, 0x14, 0x63, 0xED,
- 0xEC, 0x11, 0x83, 0xCD, 0xB0, 0x4F, 0xE7, 0x6D
- },
- {
- 0xB8, 0x83, 0x6F, 0x51, 0xD1, 0xE2, 0x9B, 0xDF,
- 0xDB, 0xA3, 0x25, 0x56, 0x53, 0x60, 0x26, 0x8B,
- 0x8F, 0xAD, 0x62, 0x74, 0x73, 0xED, 0xEC, 0xEF,
- 0x7E, 0xAE, 0xFE, 0xE8, 0x37, 0xC7, 0x40, 0x03
- },
- {
- 0xC5, 0x47, 0xA3, 0xC1, 0x24, 0xAE, 0x56, 0x85,
- 0xFF, 0xA7, 0xB8, 0xED, 0xAF, 0x96, 0xEC, 0x86,
- 0xF8, 0xB2, 0xD0, 0xD5, 0x0C, 0xEE, 0x8B, 0xE3,
- 0xB1, 0xF0, 0xC7, 0x67, 0x63, 0x06, 0x9D, 0x9C
- },
- {
- 0x5D, 0x16, 0x8B, 0x76, 0x9A, 0x2F, 0x67, 0x85,
- 0x3D, 0x62, 0x95, 0xF7, 0x56, 0x8B, 0xE4, 0x0B,
- 0xB7, 0xA1, 0x6B, 0x8D, 0x65, 0xBA, 0x87, 0x63,
- 0x5D, 0x19, 0x78, 0xD2, 0xAB, 0x11, 0xBA, 0x2A
- },
- {
- 0xA2, 0xF6, 0x75, 0xDC, 0x73, 0x02, 0x63, 0x8C,
- 0xB6, 0x02, 0x01, 0x06, 0x4C, 0xA5, 0x50, 0x77,
- 0x71, 0x4D, 0x71, 0xFE, 0x09, 0x6A, 0x31, 0x5F,
- 0x2F, 0xE7, 0x40, 0x12, 0x77, 0xCA, 0xA5, 0xAF
- },
- {
- 0xC8, 0xAA, 0xB5, 0xCD, 0x01, 0x60, 0xAE, 0x78,
- 0xCD, 0x2E, 0x8A, 0xC5, 0xFB, 0x0E, 0x09, 0x3C,
- 0xDB, 0x5C, 0x4B, 0x60, 0x52, 0xA0, 0xA9, 0x7B,
- 0xB0, 0x42, 0x16, 0x82, 0x6F, 0xA7, 0xA4, 0x37
- },
- {
- 0xFF, 0x68, 0xCA, 0x40, 0x35, 0xBF, 0xEB, 0x43,
- 0xFB, 0xF1, 0x45, 0xFD, 0xDD, 0x5E, 0x43, 0xF1,
- 0xCE, 0xA5, 0x4F, 0x11, 0xF7, 0xBE, 0xE1, 0x30,
- 0x58, 0xF0, 0x27, 0x32, 0x9A, 0x4A, 0x5F, 0xA4
- },
- {
- 0x1D, 0x4E, 0x54, 0x87, 0xAE, 0x3C, 0x74, 0x0F,
- 0x2B, 0xA6, 0xE5, 0x41, 0xAC, 0x91, 0xBC, 0x2B,
- 0xFC, 0xD2, 0x99, 0x9C, 0x51, 0x8D, 0x80, 0x7B,
- 0x42, 0x67, 0x48, 0x80, 0x3A, 0x35, 0x0F, 0xD4
- },
- {
- 0x6D, 0x24, 0x4E, 0x1A, 0x06, 0xCE, 0x4E, 0xF5,
- 0x78, 0xDD, 0x0F, 0x63, 0xAF, 0xF0, 0x93, 0x67,
- 0x06, 0x73, 0x51, 0x19, 0xCA, 0x9C, 0x8D, 0x22,
- 0xD8, 0x6C, 0x80, 0x14, 0x14, 0xAB, 0x97, 0x41
- },
- {
- 0xDE, 0xCF, 0x73, 0x29, 0xDB, 0xCC, 0x82, 0x7B,
- 0x8F, 0xC5, 0x24, 0xC9, 0x43, 0x1E, 0x89, 0x98,
- 0x02, 0x9E, 0xCE, 0x12, 0xCE, 0x93, 0xB7, 0xB2,
- 0xF3, 0xE7, 0x69, 0xA9, 0x41, 0xFB, 0x8C, 0xEA
- },
- {
- 0x2F, 0xAF, 0xCC, 0x0F, 0x2E, 0x63, 0xCB, 0xD0,
- 0x77, 0x55, 0xBE, 0x7B, 0x75, 0xEC, 0xEA, 0x0A,
- 0xDF, 0xF9, 0xAA, 0x5E, 0xDE, 0x2A, 0x52, 0xFD,
- 0xAB, 0x4D, 0xFD, 0x03, 0x74, 0xCD, 0x48, 0x3F
- },
- {
- 0xAA, 0x85, 0x01, 0x0D, 0xD4, 0x6A, 0x54, 0x6B,
- 0x53, 0x5E, 0xF4, 0xCF, 0x5F, 0x07, 0xD6, 0x51,
- 0x61, 0xE8, 0x98, 0x28, 0xF3, 0xA7, 0x7D, 0xB7,
- 0xB9, 0xB5, 0x6F, 0x0D, 0xF5, 0x9A, 0xAE, 0x45
- },
- {
- 0x07, 0xE8, 0xE1, 0xEE, 0x73, 0x2C, 0xB0, 0xD3,
- 0x56, 0xC9, 0xC0, 0xD1, 0x06, 0x9C, 0x89, 0xD1,
- 0x7A, 0xDF, 0x6A, 0x9A, 0x33, 0x4F, 0x74, 0x5E,
- 0xC7, 0x86, 0x73, 0x32, 0x54, 0x8C, 0xA8, 0xE9
- },
- {
- 0x0E, 0x01, 0xE8, 0x1C, 0xAD, 0xA8, 0x16, 0x2B,
- 0xFD, 0x5F, 0x8A, 0x8C, 0x81, 0x8A, 0x6C, 0x69,
- 0xFE, 0xDF, 0x02, 0xCE, 0xB5, 0x20, 0x85, 0x23,
- 0xCB, 0xE5, 0x31, 0x3B, 0x89, 0xCA, 0x10, 0x53
- },
- {
- 0x6B, 0xB6, 0xC6, 0x47, 0x26, 0x55, 0x08, 0x43,
- 0x99, 0x85, 0x2E, 0x00, 0x24, 0x9F, 0x8C, 0xB2,
- 0x47, 0x89, 0x6D, 0x39, 0x2B, 0x02, 0xD7, 0x3B,
- 0x7F, 0x0D, 0xD8, 0x18, 0xE1, 0xE2, 0x9B, 0x07
- },
- {
- 0x42, 0xD4, 0x63, 0x6E, 0x20, 0x60, 0xF0, 0x8F,
- 0x41, 0xC8, 0x82, 0xE7, 0x6B, 0x39, 0x6B, 0x11,
- 0x2E, 0xF6, 0x27, 0xCC, 0x24, 0xC4, 0x3D, 0xD5,
- 0xF8, 0x3A, 0x1D, 0x1A, 0x7E, 0xAD, 0x71, 0x1A
- },
- {
- 0x48, 0x58, 0xC9, 0xA1, 0x88, 0xB0, 0x23, 0x4F,
- 0xB9, 0xA8, 0xD4, 0x7D, 0x0B, 0x41, 0x33, 0x65,
- 0x0A, 0x03, 0x0B, 0xD0, 0x61, 0x1B, 0x87, 0xC3,
- 0x89, 0x2E, 0x94, 0x95, 0x1F, 0x8D, 0xF8, 0x52
- },
- {
- 0x3F, 0xAB, 0x3E, 0x36, 0x98, 0x8D, 0x44, 0x5A,
- 0x51, 0xC8, 0x78, 0x3E, 0x53, 0x1B, 0xE3, 0xA0,
- 0x2B, 0xE4, 0x0C, 0xD0, 0x47, 0x96, 0xCF, 0xB6,
- 0x1D, 0x40, 0x34, 0x74, 0x42, 0xD3, 0xF7, 0x94
- },
- {
- 0xEB, 0xAB, 0xC4, 0x96, 0x36, 0xBD, 0x43, 0x3D,
- 0x2E, 0xC8, 0xF0, 0xE5, 0x18, 0x73, 0x2E, 0xF8,
- 0xFA, 0x21, 0xD4, 0xD0, 0x71, 0xCC, 0x3B, 0xC4,
- 0x6C, 0xD7, 0x9F, 0xA3, 0x8A, 0x28, 0xB8, 0x10
- },
- {
- 0xA1, 0xD0, 0x34, 0x35, 0x23, 0xB8, 0x93, 0xFC,
- 0xA8, 0x4F, 0x47, 0xFE, 0xB4, 0xA6, 0x4D, 0x35,
- 0x0A, 0x17, 0xD8, 0xEE, 0xF5, 0x49, 0x7E, 0xCE,
- 0x69, 0x7D, 0x02, 0xD7, 0x91, 0x78, 0xB5, 0x91
- },
- {
- 0x26, 0x2E, 0xBF, 0xD9, 0x13, 0x0B, 0x7D, 0x28,
- 0x76, 0x0D, 0x08, 0xEF, 0x8B, 0xFD, 0x3B, 0x86,
- 0xCD, 0xD3, 0xB2, 0x11, 0x3D, 0x2C, 0xAE, 0xF7,
- 0xEA, 0x95, 0x1A, 0x30, 0x3D, 0xFA, 0x38, 0x46
- },
- {
- 0xF7, 0x61, 0x58, 0xED, 0xD5, 0x0A, 0x15, 0x4F,
- 0xA7, 0x82, 0x03, 0xED, 0x23, 0x62, 0x93, 0x2F,
- 0xCB, 0x82, 0x53, 0xAA, 0xE3, 0x78, 0x90, 0x3E,
- 0xDE, 0xD1, 0xE0, 0x3F, 0x70, 0x21, 0xA2, 0x57
- },
- {
- 0x26, 0x17, 0x8E, 0x95, 0x0A, 0xC7, 0x22, 0xF6,
- 0x7A, 0xE5, 0x6E, 0x57, 0x1B, 0x28, 0x4C, 0x02,
- 0x07, 0x68, 0x4A, 0x63, 0x34, 0xA1, 0x77, 0x48,
- 0xA9, 0x4D, 0x26, 0x0B, 0xC5, 0xF5, 0x52, 0x74
- },
- {
- 0xC3, 0x78, 0xD1, 0xE4, 0x93, 0xB4, 0x0E, 0xF1,
- 0x1F, 0xE6, 0xA1, 0x5D, 0x9C, 0x27, 0x37, 0xA3,
- 0x78, 0x09, 0x63, 0x4C, 0x5A, 0xBA, 0xD5, 0xB3,
- 0x3D, 0x7E, 0x39, 0x3B, 0x4A, 0xE0, 0x5D, 0x03
- },
- {
- 0x98, 0x4B, 0xD8, 0x37, 0x91, 0x01, 0xBE, 0x8F,
- 0xD8, 0x06, 0x12, 0xD8, 0xEA, 0x29, 0x59, 0xA7,
- 0x86, 0x5E, 0xC9, 0x71, 0x85, 0x23, 0x55, 0x01,
- 0x07, 0xAE, 0x39, 0x38, 0xDF, 0x32, 0x01, 0x1B
- },
- {
- 0xC6, 0xF2, 0x5A, 0x81, 0x2A, 0x14, 0x48, 0x58,
- 0xAC, 0x5C, 0xED, 0x37, 0xA9, 0x3A, 0x9F, 0x47,
- 0x59, 0xBA, 0x0B, 0x1C, 0x0F, 0xDC, 0x43, 0x1D,
- 0xCE, 0x35, 0xF9, 0xEC, 0x1F, 0x1F, 0x4A, 0x99
- },
- {
- 0x92, 0x4C, 0x75, 0xC9, 0x44, 0x24, 0xFF, 0x75,
- 0xE7, 0x4B, 0x8B, 0x4E, 0x94, 0x35, 0x89, 0x58,
- 0xB0, 0x27, 0xB1, 0x71, 0xDF, 0x5E, 0x57, 0x89,
- 0x9A, 0xD0, 0xD4, 0xDA, 0xC3, 0x73, 0x53, 0xB6
- },
- {
- 0x0A, 0xF3, 0x58, 0x92, 0xA6, 0x3F, 0x45, 0x93,
- 0x1F, 0x68, 0x46, 0xED, 0x19, 0x03, 0x61, 0xCD,
- 0x07, 0x30, 0x89, 0xE0, 0x77, 0x16, 0x57, 0x14,
- 0xB5, 0x0B, 0x81, 0xA2, 0xE3, 0xDD, 0x9B, 0xA1
- },
- {
- 0xCC, 0x80, 0xCE, 0xFB, 0x26, 0xC3, 0xB2, 0xB0,
- 0xDA, 0xEF, 0x23, 0x3E, 0x60, 0x6D, 0x5F, 0xFC,
- 0x80, 0xFA, 0x17, 0x42, 0x7D, 0x18, 0xE3, 0x04,
- 0x89, 0x67, 0x3E, 0x06, 0xEF, 0x4B, 0x87, 0xF7
- },
- {
- 0xC2, 0xF8, 0xC8, 0x11, 0x74, 0x47, 0xF3, 0x97,
- 0x8B, 0x08, 0x18, 0xDC, 0xF6, 0xF7, 0x01, 0x16,
- 0xAC, 0x56, 0xFD, 0x18, 0x4D, 0xD1, 0x27, 0x84,
- 0x94, 0xE1, 0x03, 0xFC, 0x6D, 0x74, 0xA8, 0x87
- },
- {
- 0xBD, 0xEC, 0xF6, 0xBF, 0xC1, 0xBA, 0x0D, 0xF6,
- 0xE8, 0x62, 0xC8, 0x31, 0x99, 0x22, 0x07, 0x79,
- 0x6A, 0xCC, 0x79, 0x79, 0x68, 0x35, 0x88, 0x28,
- 0xC0, 0x6E, 0x7A, 0x51, 0xE0, 0x90, 0x09, 0x8F
- },
- {
- 0x24, 0xD1, 0xA2, 0x6E, 0x3D, 0xAB, 0x02, 0xFE,
- 0x45, 0x72, 0xD2, 0xAA, 0x7D, 0xBD, 0x3E, 0xC3,
- 0x0F, 0x06, 0x93, 0xDB, 0x26, 0xF2, 0x73, 0xD0,
- 0xAB, 0x2C, 0xB0, 0xC1, 0x3B, 0x5E, 0x64, 0x51
- },
- {
- 0xEC, 0x56, 0xF5, 0x8B, 0x09, 0x29, 0x9A, 0x30,
- 0x0B, 0x14, 0x05, 0x65, 0xD7, 0xD3, 0xE6, 0x87,
- 0x82, 0xB6, 0xE2, 0xFB, 0xEB, 0x4B, 0x7E, 0xA9,
- 0x7A, 0xC0, 0x57, 0x98, 0x90, 0x61, 0xDD, 0x3F
- },
- {
- 0x11, 0xA4, 0x37, 0xC1, 0xAB, 0xA3, 0xC1, 0x19,
- 0xDD, 0xFA, 0xB3, 0x1B, 0x3E, 0x8C, 0x84, 0x1D,
- 0xEE, 0xEB, 0x91, 0x3E, 0xF5, 0x7F, 0x7E, 0x48,
- 0xF2, 0xC9, 0xCF, 0x5A, 0x28, 0xFA, 0x42, 0xBC
- },
- {
- 0x53, 0xC7, 0xE6, 0x11, 0x4B, 0x85, 0x0A, 0x2C,
- 0xB4, 0x96, 0xC9, 0xB3, 0xC6, 0x9A, 0x62, 0x3E,
- 0xAE, 0xA2, 0xCB, 0x1D, 0x33, 0xDD, 0x81, 0x7E,
- 0x47, 0x65, 0xED, 0xAA, 0x68, 0x23, 0xC2, 0x28
- },
- {
- 0x15, 0x4C, 0x3E, 0x96, 0xFE, 0xE5, 0xDB, 0x14,
- 0xF8, 0x77, 0x3E, 0x18, 0xAF, 0x14, 0x85, 0x79,
- 0x13, 0x50, 0x9D, 0xA9, 0x99, 0xB4, 0x6C, 0xDD,
- 0x3D, 0x4C, 0x16, 0x97, 0x60, 0xC8, 0x3A, 0xD2
- },
- {
- 0x40, 0xB9, 0x91, 0x6F, 0x09, 0x3E, 0x02, 0x7A,
- 0x87, 0x86, 0x64, 0x18, 0x18, 0x92, 0x06, 0x20,
- 0x47, 0x2F, 0xBC, 0xF6, 0x8F, 0x70, 0x1D, 0x1B,
- 0x68, 0x06, 0x32, 0xE6, 0x99, 0x6B, 0xDE, 0xD3
- },
- {
- 0x24, 0xC4, 0xCB, 0xBA, 0x07, 0x11, 0x98, 0x31,
- 0xA7, 0x26, 0xB0, 0x53, 0x05, 0xD9, 0x6D, 0xA0,
- 0x2F, 0xF8, 0xB1, 0x48, 0xF0, 0xDA, 0x44, 0x0F,
- 0xE2, 0x33, 0xBC, 0xAA, 0x32, 0xC7, 0x2F, 0x6F
- },
- {
- 0x5D, 0x20, 0x15, 0x10, 0x25, 0x00, 0x20, 0xB7,
- 0x83, 0x68, 0x96, 0x88, 0xAB, 0xBF, 0x8E, 0xCF,
- 0x25, 0x94, 0xA9, 0x6A, 0x08, 0xF2, 0xBF, 0xEC,
- 0x6C, 0xE0, 0x57, 0x44, 0x65, 0xDD, 0xED, 0x71
- },
- {
- 0x04, 0x3B, 0x97, 0xE3, 0x36, 0xEE, 0x6F, 0xDB,
- 0xBE, 0x2B, 0x50, 0xF2, 0x2A, 0xF8, 0x32, 0x75,
- 0xA4, 0x08, 0x48, 0x05, 0xD2, 0xD5, 0x64, 0x59,
- 0x62, 0x45, 0x4B, 0x6C, 0x9B, 0x80, 0x53, 0xA0
- },
- {
- 0x56, 0x48, 0x35, 0xCB, 0xAE, 0xA7, 0x74, 0x94,
- 0x85, 0x68, 0xBE, 0x36, 0xCF, 0x52, 0xFC, 0xDD,
- 0x83, 0x93, 0x4E, 0xB0, 0xA2, 0x75, 0x12, 0xDB,
- 0xE3, 0xE2, 0xDB, 0x47, 0xB9, 0xE6, 0x63, 0x5A
- },
- {
- 0xF2, 0x1C, 0x33, 0xF4, 0x7B, 0xDE, 0x40, 0xA2,
- 0xA1, 0x01, 0xC9, 0xCD, 0xE8, 0x02, 0x7A, 0xAF,
- 0x61, 0xA3, 0x13, 0x7D, 0xE2, 0x42, 0x2B, 0x30,
- 0x03, 0x5A, 0x04, 0xC2, 0x70, 0x89, 0x41, 0x83
- },
- {
- 0x9D, 0xB0, 0xEF, 0x74, 0xE6, 0x6C, 0xBB, 0x84,
- 0x2E, 0xB0, 0xE0, 0x73, 0x43, 0xA0, 0x3C, 0x5C,
- 0x56, 0x7E, 0x37, 0x2B, 0x3F, 0x23, 0xB9, 0x43,
- 0xC7, 0x88, 0xA4, 0xF2, 0x50, 0xF6, 0x78, 0x91
- },
- {
- 0xAB, 0x8D, 0x08, 0x65, 0x5F, 0xF1, 0xD3, 0xFE,
- 0x87, 0x58, 0xD5, 0x62, 0x23, 0x5F, 0xD2, 0x3E,
- 0x7C, 0xF9, 0xDC, 0xAA, 0xD6, 0x58, 0x87, 0x2A,
- 0x49, 0xE5, 0xD3, 0x18, 0x3B, 0x6C, 0xCE, 0xBD
- },
- {
- 0x6F, 0x27, 0xF7, 0x7E, 0x7B, 0xCF, 0x46, 0xA1,
- 0xE9, 0x63, 0xAD, 0xE0, 0x30, 0x97, 0x33, 0x54,
- 0x30, 0x31, 0xDC, 0xCD, 0xD4, 0x7C, 0xAA, 0xC1,
- 0x74, 0xD7, 0xD2, 0x7C, 0xE8, 0x07, 0x7E, 0x8B
- },
- {
- 0xE3, 0xCD, 0x54, 0xDA, 0x7E, 0x44, 0x4C, 0xAA,
- 0x62, 0x07, 0x56, 0x95, 0x25, 0xA6, 0x70, 0xEB,
- 0xAE, 0x12, 0x78, 0xDE, 0x4E, 0x3F, 0xE2, 0x68,
- 0x4B, 0x3E, 0x33, 0xF5, 0xEF, 0x90, 0xCC, 0x1B
- },
- {
- 0xB2, 0xC3, 0xE3, 0x3A, 0x51, 0xD2, 0x2C, 0x4C,
- 0x08, 0xFC, 0x09, 0x89, 0xC8, 0x73, 0xC9, 0xCC,
- 0x41, 0x50, 0x57, 0x9B, 0x1E, 0x61, 0x63, 0xFA,
- 0x69, 0x4A, 0xD5, 0x1D, 0x53, 0xD7, 0x12, 0xDC
- },
- {
- 0xBE, 0x7F, 0xDA, 0x98, 0x3E, 0x13, 0x18, 0x9B,
- 0x4C, 0x77, 0xE0, 0xA8, 0x09, 0x20, 0xB6, 0xE0,
- 0xE0, 0xEA, 0x80, 0xC3, 0xB8, 0x4D, 0xBE, 0x7E,
- 0x71, 0x17, 0xD2, 0x53, 0xF4, 0x81, 0x12, 0xF4
- },
- {
- 0xB6, 0x00, 0x8C, 0x28, 0xFA, 0xE0, 0x8A, 0xA4,
- 0x27, 0xE5, 0xBD, 0x3A, 0xAD, 0x36, 0xF1, 0x00,
- 0x21, 0xF1, 0x6C, 0x77, 0xCF, 0xEA, 0xBE, 0xD0,
- 0x7F, 0x97, 0xCC, 0x7D, 0xC1, 0xF1, 0x28, 0x4A
- },
- {
- 0x6E, 0x4E, 0x67, 0x60, 0xC5, 0x38, 0xF2, 0xE9,
- 0x7B, 0x3A, 0xDB, 0xFB, 0xBC, 0xDE, 0x57, 0xF8,
- 0x96, 0x6B, 0x7E, 0xA8, 0xFC, 0xB5, 0xBF, 0x7E,
- 0xFE, 0xC9, 0x13, 0xFD, 0x2A, 0x2B, 0x0C, 0x55
- },
- {
- 0x4A, 0xE5, 0x1F, 0xD1, 0x83, 0x4A, 0xA5, 0xBD,
- 0x9A, 0x6F, 0x7E, 0xC3, 0x9F, 0xC6, 0x63, 0x33,
- 0x8D, 0xC5, 0xD2, 0xE2, 0x07, 0x61, 0x56, 0x6D,
- 0x90, 0xCC, 0x68, 0xB1, 0xCB, 0x87, 0x5E, 0xD8
- },
- {
- 0xB6, 0x73, 0xAA, 0xD7, 0x5A, 0xB1, 0xFD, 0xB5,
- 0x40, 0x1A, 0xBF, 0xA1, 0xBF, 0x89, 0xF3, 0xAD,
- 0xD2, 0xEB, 0xC4, 0x68, 0xDF, 0x36, 0x24, 0xA4,
- 0x78, 0xF4, 0xFE, 0x85, 0x9D, 0x8D, 0x55, 0xE2
- },
- {
- 0x13, 0xC9, 0x47, 0x1A, 0x98, 0x55, 0x91, 0x35,
- 0x39, 0x83, 0x66, 0x60, 0x39, 0x8D, 0xA0, 0xF3,
- 0xF9, 0x9A, 0xDA, 0x08, 0x47, 0x9C, 0x69, 0xD1,
- 0xB7, 0xFC, 0xAA, 0x34, 0x61, 0xDD, 0x7E, 0x59
- },
- {
- 0x2C, 0x11, 0xF4, 0xA7, 0xF9, 0x9A, 0x1D, 0x23,
- 0xA5, 0x8B, 0xB6, 0x36, 0x35, 0x0F, 0xE8, 0x49,
- 0xF2, 0x9C, 0xBA, 0xC1, 0xB2, 0xA1, 0x11, 0x2D,
- 0x9F, 0x1E, 0xD5, 0xBC, 0x5B, 0x31, 0x3C, 0xCD
- },
- {
- 0xC7, 0xD3, 0xC0, 0x70, 0x6B, 0x11, 0xAE, 0x74,
- 0x1C, 0x05, 0xA1, 0xEF, 0x15, 0x0D, 0xD6, 0x5B,
- 0x54, 0x94, 0xD6, 0xD5, 0x4C, 0x9A, 0x86, 0xE2,
- 0x61, 0x78, 0x54, 0xE6, 0xAE, 0xEE, 0xBB, 0xD9
- },
- {
- 0x19, 0x4E, 0x10, 0xC9, 0x38, 0x93, 0xAF, 0xA0,
- 0x64, 0xC3, 0xAC, 0x04, 0xC0, 0xDD, 0x80, 0x8D,
- 0x79, 0x1C, 0x3D, 0x4B, 0x75, 0x56, 0xE8, 0x9D,
- 0x8D, 0x9C, 0xB2, 0x25, 0xC4, 0xB3, 0x33, 0x39
- },
- {
- 0x6F, 0xC4, 0x98, 0x8B, 0x8F, 0x78, 0x54, 0x6B,
- 0x16, 0x88, 0x99, 0x18, 0x45, 0x90, 0x8F, 0x13,
- 0x4B, 0x6A, 0x48, 0x2E, 0x69, 0x94, 0xB3, 0xD4,
- 0x83, 0x17, 0xBF, 0x08, 0xDB, 0x29, 0x21, 0x85
- },
- {
- 0x56, 0x65, 0xBE, 0xB8, 0xB0, 0x95, 0x55, 0x25,
- 0x81, 0x3B, 0x59, 0x81, 0xCD, 0x14, 0x2E, 0xD4,
- 0xD0, 0x3F, 0xBA, 0x38, 0xA6, 0xF3, 0xE5, 0xAD,
- 0x26, 0x8E, 0x0C, 0xC2, 0x70, 0xD1, 0xCD, 0x11
- },
- {
- 0xB8, 0x83, 0xD6, 0x8F, 0x5F, 0xE5, 0x19, 0x36,
- 0x43, 0x1B, 0xA4, 0x25, 0x67, 0x38, 0x05, 0x3B,
- 0x1D, 0x04, 0x26, 0xD4, 0xCB, 0x64, 0xB1, 0x6E,
- 0x83, 0xBA, 0xDC, 0x5E, 0x9F, 0xBE, 0x3B, 0x81
- },
- {
- 0x53, 0xE7, 0xB2, 0x7E, 0xA5, 0x9C, 0x2F, 0x6D,
- 0xBB, 0x50, 0x76, 0x9E, 0x43, 0x55, 0x4D, 0xF3,
- 0x5A, 0xF8, 0x9F, 0x48, 0x22, 0xD0, 0x46, 0x6B,
- 0x00, 0x7D, 0xD6, 0xF6, 0xDE, 0xAF, 0xFF, 0x02
- },
- {
- 0x1F, 0x1A, 0x02, 0x29, 0xD4, 0x64, 0x0F, 0x01,
- 0x90, 0x15, 0x88, 0xD9, 0xDE, 0xC2, 0x2D, 0x13,
- 0xFC, 0x3E, 0xB3, 0x4A, 0x61, 0xB3, 0x29, 0x38,
- 0xEF, 0xBF, 0x53, 0x34, 0xB2, 0x80, 0x0A, 0xFA
- },
- {
- 0xC2, 0xB4, 0x05, 0xAF, 0xA0, 0xFA, 0x66, 0x68,
- 0x85, 0x2A, 0xEE, 0x4D, 0x88, 0x04, 0x08, 0x53,
- 0xFA, 0xB8, 0x00, 0xE7, 0x2B, 0x57, 0x58, 0x14,
- 0x18, 0xE5, 0x50, 0x6F, 0x21, 0x4C, 0x7D, 0x1F
- },
- {
- 0xC0, 0x8A, 0xA1, 0xC2, 0x86, 0xD7, 0x09, 0xFD,
- 0xC7, 0x47, 0x37, 0x44, 0x97, 0x71, 0x88, 0xC8,
- 0x95, 0xBA, 0x01, 0x10, 0x14, 0x24, 0x7E, 0x4E,
- 0xFA, 0x8D, 0x07, 0xE7, 0x8F, 0xEC, 0x69, 0x5C
- },
- {
- 0xF0, 0x3F, 0x57, 0x89, 0xD3, 0x33, 0x6B, 0x80,
- 0xD0, 0x02, 0xD5, 0x9F, 0xDF, 0x91, 0x8B, 0xDB,
- 0x77, 0x5B, 0x00, 0x95, 0x6E, 0xD5, 0x52, 0x8E,
- 0x86, 0xAA, 0x99, 0x4A, 0xCB, 0x38, 0xFE, 0x2D
- },
-};
-
-
-
-
-static const uint8_t blake2s_keyed_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
-{
- {
- 0x48, 0xA8, 0x99, 0x7D, 0xA4, 0x07, 0x87, 0x6B,
- 0x3D, 0x79, 0xC0, 0xD9, 0x23, 0x25, 0xAD, 0x3B,
- 0x89, 0xCB, 0xB7, 0x54, 0xD8, 0x6A, 0xB7, 0x1A,
- 0xEE, 0x04, 0x7A, 0xD3, 0x45, 0xFD, 0x2C, 0x49
- },
- {
- 0x40, 0xD1, 0x5F, 0xEE, 0x7C, 0x32, 0x88, 0x30,
- 0x16, 0x6A, 0xC3, 0xF9, 0x18, 0x65, 0x0F, 0x80,
- 0x7E, 0x7E, 0x01, 0xE1, 0x77, 0x25, 0x8C, 0xDC,
- 0x0A, 0x39, 0xB1, 0x1F, 0x59, 0x80, 0x66, 0xF1
- },
- {
- 0x6B, 0xB7, 0x13, 0x00, 0x64, 0x4C, 0xD3, 0x99,
- 0x1B, 0x26, 0xCC, 0xD4, 0xD2, 0x74, 0xAC, 0xD1,
- 0xAD, 0xEA, 0xB8, 0xB1, 0xD7, 0x91, 0x45, 0x46,
- 0xC1, 0x19, 0x8B, 0xBE, 0x9F, 0xC9, 0xD8, 0x03
- },
- {
- 0x1D, 0x22, 0x0D, 0xBE, 0x2E, 0xE1, 0x34, 0x66,
- 0x1F, 0xDF, 0x6D, 0x9E, 0x74, 0xB4, 0x17, 0x04,
- 0x71, 0x05, 0x56, 0xF2, 0xF6, 0xE5, 0xA0, 0x91,
- 0xB2, 0x27, 0x69, 0x74, 0x45, 0xDB, 0xEA, 0x6B
- },
- {
- 0xF6, 0xC3, 0xFB, 0xAD, 0xB4, 0xCC, 0x68, 0x7A,
- 0x00, 0x64, 0xA5, 0xBE, 0x6E, 0x79, 0x1B, 0xEC,
- 0x63, 0xB8, 0x68, 0xAD, 0x62, 0xFB, 0xA6, 0x1B,
- 0x37, 0x57, 0xEF, 0x9C, 0xA5, 0x2E, 0x05, 0xB2
- },
- {
- 0x49, 0xC1, 0xF2, 0x11, 0x88, 0xDF, 0xD7, 0x69,
- 0xAE, 0xA0, 0xE9, 0x11, 0xDD, 0x6B, 0x41, 0xF1,
- 0x4D, 0xAB, 0x10, 0x9D, 0x2B, 0x85, 0x97, 0x7A,
- 0xA3, 0x08, 0x8B, 0x5C, 0x70, 0x7E, 0x85, 0x98
- },
- {
- 0xFD, 0xD8, 0x99, 0x3D, 0xCD, 0x43, 0xF6, 0x96,
- 0xD4, 0x4F, 0x3C, 0xEA, 0x0F, 0xF3, 0x53, 0x45,
- 0x23, 0x4E, 0xC8, 0xEE, 0x08, 0x3E, 0xB3, 0xCA,
- 0xDA, 0x01, 0x7C, 0x7F, 0x78, 0xC1, 0x71, 0x43
- },
- {
- 0xE6, 0xC8, 0x12, 0x56, 0x37, 0x43, 0x8D, 0x09,
- 0x05, 0xB7, 0x49, 0xF4, 0x65, 0x60, 0xAC, 0x89,
- 0xFD, 0x47, 0x1C, 0xF8, 0x69, 0x2E, 0x28, 0xFA,
- 0xB9, 0x82, 0xF7, 0x3F, 0x01, 0x9B, 0x83, 0xA9
- },
- {
- 0x19, 0xFC, 0x8C, 0xA6, 0x97, 0x9D, 0x60, 0xE6,
- 0xED, 0xD3, 0xB4, 0x54, 0x1E, 0x2F, 0x96, 0x7C,
- 0xED, 0x74, 0x0D, 0xF6, 0xEC, 0x1E, 0xAE, 0xBB,
- 0xFE, 0x81, 0x38, 0x32, 0xE9, 0x6B, 0x29, 0x74
- },
- {
- 0xA6, 0xAD, 0x77, 0x7C, 0xE8, 0x81, 0xB5, 0x2B,
- 0xB5, 0xA4, 0x42, 0x1A, 0xB6, 0xCD, 0xD2, 0xDF,
- 0xBA, 0x13, 0xE9, 0x63, 0x65, 0x2D, 0x4D, 0x6D,
- 0x12, 0x2A, 0xEE, 0x46, 0x54, 0x8C, 0x14, 0xA7
- },
- {
- 0xF5, 0xC4, 0xB2, 0xBA, 0x1A, 0x00, 0x78, 0x1B,
- 0x13, 0xAB, 0xA0, 0x42, 0x52, 0x42, 0xC6, 0x9C,
- 0xB1, 0x55, 0x2F, 0x3F, 0x71, 0xA9, 0xA3, 0xBB,
- 0x22, 0xB4, 0xA6, 0xB4, 0x27, 0x7B, 0x46, 0xDD
- },
- {
- 0xE3, 0x3C, 0x4C, 0x9B, 0xD0, 0xCC, 0x7E, 0x45,
- 0xC8, 0x0E, 0x65, 0xC7, 0x7F, 0xA5, 0x99, 0x7F,
- 0xEC, 0x70, 0x02, 0x73, 0x85, 0x41, 0x50, 0x9E,
- 0x68, 0xA9, 0x42, 0x38, 0x91, 0xE8, 0x22, 0xA3
- },
- {
- 0xFB, 0xA1, 0x61, 0x69, 0xB2, 0xC3, 0xEE, 0x10,
- 0x5B, 0xE6, 0xE1, 0xE6, 0x50, 0xE5, 0xCB, 0xF4,
- 0x07, 0x46, 0xB6, 0x75, 0x3D, 0x03, 0x6A, 0xB5,
- 0x51, 0x79, 0x01, 0x4A, 0xD7, 0xEF, 0x66, 0x51
- },
- {
- 0xF5, 0xC4, 0xBE, 0xC6, 0xD6, 0x2F, 0xC6, 0x08,
- 0xBF, 0x41, 0xCC, 0x11, 0x5F, 0x16, 0xD6, 0x1C,
- 0x7E, 0xFD, 0x3F, 0xF6, 0xC6, 0x56, 0x92, 0xBB,
- 0xE0, 0xAF, 0xFF, 0xB1, 0xFE, 0xDE, 0x74, 0x75
- },
- {
- 0xA4, 0x86, 0x2E, 0x76, 0xDB, 0x84, 0x7F, 0x05,
- 0xBA, 0x17, 0xED, 0xE5, 0xDA, 0x4E, 0x7F, 0x91,
- 0xB5, 0x92, 0x5C, 0xF1, 0xAD, 0x4B, 0xA1, 0x27,
- 0x32, 0xC3, 0x99, 0x57, 0x42, 0xA5, 0xCD, 0x6E
- },
- {
- 0x65, 0xF4, 0xB8, 0x60, 0xCD, 0x15, 0xB3, 0x8E,
- 0xF8, 0x14, 0xA1, 0xA8, 0x04, 0x31, 0x4A, 0x55,
- 0xBE, 0x95, 0x3C, 0xAA, 0x65, 0xFD, 0x75, 0x8A,
- 0xD9, 0x89, 0xFF, 0x34, 0xA4, 0x1C, 0x1E, 0xEA
- },
- {
- 0x19, 0xBA, 0x23, 0x4F, 0x0A, 0x4F, 0x38, 0x63,
- 0x7D, 0x18, 0x39, 0xF9, 0xD9, 0xF7, 0x6A, 0xD9,
- 0x1C, 0x85, 0x22, 0x30, 0x71, 0x43, 0xC9, 0x7D,
- 0x5F, 0x93, 0xF6, 0x92, 0x74, 0xCE, 0xC9, 0xA7
- },
- {
- 0x1A, 0x67, 0x18, 0x6C, 0xA4, 0xA5, 0xCB, 0x8E,
- 0x65, 0xFC, 0xA0, 0xE2, 0xEC, 0xBC, 0x5D, 0xDC,
- 0x14, 0xAE, 0x38, 0x1B, 0xB8, 0xBF, 0xFE, 0xB9,
- 0xE0, 0xA1, 0x03, 0x44, 0x9E, 0x3E, 0xF0, 0x3C
- },
- {
- 0xAF, 0xBE, 0xA3, 0x17, 0xB5, 0xA2, 0xE8, 0x9C,
- 0x0B, 0xD9, 0x0C, 0xCF, 0x5D, 0x7F, 0xD0, 0xED,
- 0x57, 0xFE, 0x58, 0x5E, 0x4B, 0xE3, 0x27, 0x1B,
- 0x0A, 0x6B, 0xF0, 0xF5, 0x78, 0x6B, 0x0F, 0x26
- },
- {
- 0xF1, 0xB0, 0x15, 0x58, 0xCE, 0x54, 0x12, 0x62,
- 0xF5, 0xEC, 0x34, 0x29, 0x9D, 0x6F, 0xB4, 0x09,
- 0x00, 0x09, 0xE3, 0x43, 0x4B, 0xE2, 0xF4, 0x91,
- 0x05, 0xCF, 0x46, 0xAF, 0x4D, 0x2D, 0x41, 0x24
- },
- {
- 0x13, 0xA0, 0xA0, 0xC8, 0x63, 0x35, 0x63, 0x5E,
- 0xAA, 0x74, 0xCA, 0x2D, 0x5D, 0x48, 0x8C, 0x79,
- 0x7B, 0xBB, 0x4F, 0x47, 0xDC, 0x07, 0x10, 0x50,
- 0x15, 0xED, 0x6A, 0x1F, 0x33, 0x09, 0xEF, 0xCE
- },
- {
- 0x15, 0x80, 0xAF, 0xEE, 0xBE, 0xBB, 0x34, 0x6F,
- 0x94, 0xD5, 0x9F, 0xE6, 0x2D, 0xA0, 0xB7, 0x92,
- 0x37, 0xEA, 0xD7, 0xB1, 0x49, 0x1F, 0x56, 0x67,
- 0xA9, 0x0E, 0x45, 0xED, 0xF6, 0xCA, 0x8B, 0x03
- },
- {
- 0x20, 0xBE, 0x1A, 0x87, 0x5B, 0x38, 0xC5, 0x73,
- 0xDD, 0x7F, 0xAA, 0xA0, 0xDE, 0x48, 0x9D, 0x65,
- 0x5C, 0x11, 0xEF, 0xB6, 0xA5, 0x52, 0x69, 0x8E,
- 0x07, 0xA2, 0xD3, 0x31, 0xB5, 0xF6, 0x55, 0xC3
- },
- {
- 0xBE, 0x1F, 0xE3, 0xC4, 0xC0, 0x40, 0x18, 0xC5,
- 0x4C, 0x4A, 0x0F, 0x6B, 0x9A, 0x2E, 0xD3, 0xC5,
- 0x3A, 0xBE, 0x3A, 0x9F, 0x76, 0xB4, 0xD2, 0x6D,
- 0xE5, 0x6F, 0xC9, 0xAE, 0x95, 0x05, 0x9A, 0x99
- },
- {
- 0xE3, 0xE3, 0xAC, 0xE5, 0x37, 0xEB, 0x3E, 0xDD,
- 0x84, 0x63, 0xD9, 0xAD, 0x35, 0x82, 0xE1, 0x3C,
- 0xF8, 0x65, 0x33, 0xFF, 0xDE, 0x43, 0xD6, 0x68,
- 0xDD, 0x2E, 0x93, 0xBB, 0xDB, 0xD7, 0x19, 0x5A
- },
- {
- 0x11, 0x0C, 0x50, 0xC0, 0xBF, 0x2C, 0x6E, 0x7A,
- 0xEB, 0x7E, 0x43, 0x5D, 0x92, 0xD1, 0x32, 0xAB,
- 0x66, 0x55, 0x16, 0x8E, 0x78, 0xA2, 0xDE, 0xCD,
- 0xEC, 0x33, 0x30, 0x77, 0x76, 0x84, 0xD9, 0xC1
- },
- {
- 0xE9, 0xBA, 0x8F, 0x50, 0x5C, 0x9C, 0x80, 0xC0,
- 0x86, 0x66, 0xA7, 0x01, 0xF3, 0x36, 0x7E, 0x6C,
- 0xC6, 0x65, 0xF3, 0x4B, 0x22, 0xE7, 0x3C, 0x3C,
- 0x04, 0x17, 0xEB, 0x1C, 0x22, 0x06, 0x08, 0x2F
- },
- {
- 0x26, 0xCD, 0x66, 0xFC, 0xA0, 0x23, 0x79, 0xC7,
- 0x6D, 0xF1, 0x23, 0x17, 0x05, 0x2B, 0xCA, 0xFD,
- 0x6C, 0xD8, 0xC3, 0xA7, 0xB8, 0x90, 0xD8, 0x05,
- 0xF3, 0x6C, 0x49, 0x98, 0x97, 0x82, 0x43, 0x3A
- },
- {
- 0x21, 0x3F, 0x35, 0x96, 0xD6, 0xE3, 0xA5, 0xD0,
- 0xE9, 0x93, 0x2C, 0xD2, 0x15, 0x91, 0x46, 0x01,
- 0x5E, 0x2A, 0xBC, 0x94, 0x9F, 0x47, 0x29, 0xEE,
- 0x26, 0x32, 0xFE, 0x1E, 0xDB, 0x78, 0xD3, 0x37
- },
- {
- 0x10, 0x15, 0xD7, 0x01, 0x08, 0xE0, 0x3B, 0xE1,
- 0xC7, 0x02, 0xFE, 0x97, 0x25, 0x36, 0x07, 0xD1,
- 0x4A, 0xEE, 0x59, 0x1F, 0x24, 0x13, 0xEA, 0x67,
- 0x87, 0x42, 0x7B, 0x64, 0x59, 0xFF, 0x21, 0x9A
- },
- {
- 0x3C, 0xA9, 0x89, 0xDE, 0x10, 0xCF, 0xE6, 0x09,
- 0x90, 0x94, 0x72, 0xC8, 0xD3, 0x56, 0x10, 0x80,
- 0x5B, 0x2F, 0x97, 0x77, 0x34, 0xCF, 0x65, 0x2C,
- 0xC6, 0x4B, 0x3B, 0xFC, 0x88, 0x2D, 0x5D, 0x89
- },
- {
- 0xB6, 0x15, 0x6F, 0x72, 0xD3, 0x80, 0xEE, 0x9E,
- 0xA6, 0xAC, 0xD1, 0x90, 0x46, 0x4F, 0x23, 0x07,
- 0xA5, 0xC1, 0x79, 0xEF, 0x01, 0xFD, 0x71, 0xF9,
- 0x9F, 0x2D, 0x0F, 0x7A, 0x57, 0x36, 0x0A, 0xEA
- },
- {
- 0xC0, 0x3B, 0xC6, 0x42, 0xB2, 0x09, 0x59, 0xCB,
- 0xE1, 0x33, 0xA0, 0x30, 0x3E, 0x0C, 0x1A, 0xBF,
- 0xF3, 0xE3, 0x1E, 0xC8, 0xE1, 0xA3, 0x28, 0xEC,
- 0x85, 0x65, 0xC3, 0x6D, 0xEC, 0xFF, 0x52, 0x65
- },
- {
- 0x2C, 0x3E, 0x08, 0x17, 0x6F, 0x76, 0x0C, 0x62,
- 0x64, 0xC3, 0xA2, 0xCD, 0x66, 0xFE, 0xC6, 0xC3,
- 0xD7, 0x8D, 0xE4, 0x3F, 0xC1, 0x92, 0x45, 0x7B,
- 0x2A, 0x4A, 0x66, 0x0A, 0x1E, 0x0E, 0xB2, 0x2B
- },
- {
- 0xF7, 0x38, 0xC0, 0x2F, 0x3C, 0x1B, 0x19, 0x0C,
- 0x51, 0x2B, 0x1A, 0x32, 0xDE, 0xAB, 0xF3, 0x53,
- 0x72, 0x8E, 0x0E, 0x9A, 0xB0, 0x34, 0x49, 0x0E,
- 0x3C, 0x34, 0x09, 0x94, 0x6A, 0x97, 0xAE, 0xEC
- },
- {
- 0x8B, 0x18, 0x80, 0xDF, 0x30, 0x1C, 0xC9, 0x63,
- 0x41, 0x88, 0x11, 0x08, 0x89, 0x64, 0x83, 0x92,
- 0x87, 0xFF, 0x7F, 0xE3, 0x1C, 0x49, 0xEA, 0x6E,
- 0xBD, 0x9E, 0x48, 0xBD, 0xEE, 0xE4, 0x97, 0xC5
- },
- {
- 0x1E, 0x75, 0xCB, 0x21, 0xC6, 0x09, 0x89, 0x02,
- 0x03, 0x75, 0xF1, 0xA7, 0xA2, 0x42, 0x83, 0x9F,
- 0x0B, 0x0B, 0x68, 0x97, 0x3A, 0x4C, 0x2A, 0x05,
- 0xCF, 0x75, 0x55, 0xED, 0x5A, 0xAE, 0xC4, 0xC1
- },
- {
- 0x62, 0xBF, 0x8A, 0x9C, 0x32, 0xA5, 0xBC, 0xCF,
- 0x29, 0x0B, 0x6C, 0x47, 0x4D, 0x75, 0xB2, 0xA2,
- 0xA4, 0x09, 0x3F, 0x1A, 0x9E, 0x27, 0x13, 0x94,
- 0x33, 0xA8, 0xF2, 0xB3, 0xBC, 0xE7, 0xB8, 0xD7
- },
- {
- 0x16, 0x6C, 0x83, 0x50, 0xD3, 0x17, 0x3B, 0x5E,
- 0x70, 0x2B, 0x78, 0x3D, 0xFD, 0x33, 0xC6, 0x6E,
- 0xE0, 0x43, 0x27, 0x42, 0xE9, 0xB9, 0x2B, 0x99,
- 0x7F, 0xD2, 0x3C, 0x60, 0xDC, 0x67, 0x56, 0xCA
- },
- {
- 0x04, 0x4A, 0x14, 0xD8, 0x22, 0xA9, 0x0C, 0xAC,
- 0xF2, 0xF5, 0xA1, 0x01, 0x42, 0x8A, 0xDC, 0x8F,
- 0x41, 0x09, 0x38, 0x6C, 0xCB, 0x15, 0x8B, 0xF9,
- 0x05, 0xC8, 0x61, 0x8B, 0x8E, 0xE2, 0x4E, 0xC3
- },
- {
- 0x38, 0x7D, 0x39, 0x7E, 0xA4, 0x3A, 0x99, 0x4B,
- 0xE8, 0x4D, 0x2D, 0x54, 0x4A, 0xFB, 0xE4, 0x81,
- 0xA2, 0x00, 0x0F, 0x55, 0x25, 0x26, 0x96, 0xBB,
- 0xA2, 0xC5, 0x0C, 0x8E, 0xBD, 0x10, 0x13, 0x47
- },
- {
- 0x56, 0xF8, 0xCC, 0xF1, 0xF8, 0x64, 0x09, 0xB4,
- 0x6C, 0xE3, 0x61, 0x66, 0xAE, 0x91, 0x65, 0x13,
- 0x84, 0x41, 0x57, 0x75, 0x89, 0xDB, 0x08, 0xCB,
- 0xC5, 0xF6, 0x6C, 0xA2, 0x97, 0x43, 0xB9, 0xFD
- },
- {
- 0x97, 0x06, 0xC0, 0x92, 0xB0, 0x4D, 0x91, 0xF5,
- 0x3D, 0xFF, 0x91, 0xFA, 0x37, 0xB7, 0x49, 0x3D,
- 0x28, 0xB5, 0x76, 0xB5, 0xD7, 0x10, 0x46, 0x9D,
- 0xF7, 0x94, 0x01, 0x66, 0x22, 0x36, 0xFC, 0x03
- },
- {
- 0x87, 0x79, 0x68, 0x68, 0x6C, 0x06, 0x8C, 0xE2,
- 0xF7, 0xE2, 0xAD, 0xCF, 0xF6, 0x8B, 0xF8, 0x74,
- 0x8E, 0xDF, 0x3C, 0xF8, 0x62, 0xCF, 0xB4, 0xD3,
- 0x94, 0x7A, 0x31, 0x06, 0x95, 0x80, 0x54, 0xE3
- },
- {
- 0x88, 0x17, 0xE5, 0x71, 0x98, 0x79, 0xAC, 0xF7,
- 0x02, 0x47, 0x87, 0xEC, 0xCD, 0xB2, 0x71, 0x03,
- 0x55, 0x66, 0xCF, 0xA3, 0x33, 0xE0, 0x49, 0x40,
- 0x7C, 0x01, 0x78, 0xCC, 0xC5, 0x7A, 0x5B, 0x9F
- },
- {
- 0x89, 0x38, 0x24, 0x9E, 0x4B, 0x50, 0xCA, 0xDA,
- 0xCC, 0xDF, 0x5B, 0x18, 0x62, 0x13, 0x26, 0xCB,
- 0xB1, 0x52, 0x53, 0xE3, 0x3A, 0x20, 0xF5, 0x63,
- 0x6E, 0x99, 0x5D, 0x72, 0x47, 0x8D, 0xE4, 0x72
- },
- {
- 0xF1, 0x64, 0xAB, 0xBA, 0x49, 0x63, 0xA4, 0x4D,
- 0x10, 0x72, 0x57, 0xE3, 0x23, 0x2D, 0x90, 0xAC,
- 0xA5, 0xE6, 0x6A, 0x14, 0x08, 0x24, 0x8C, 0x51,
- 0x74, 0x1E, 0x99, 0x1D, 0xB5, 0x22, 0x77, 0x56
- },
- {
- 0xD0, 0x55, 0x63, 0xE2, 0xB1, 0xCB, 0xA0, 0xC4,
- 0xA2, 0xA1, 0xE8, 0xBD, 0xE3, 0xA1, 0xA0, 0xD9,
- 0xF5, 0xB4, 0x0C, 0x85, 0xA0, 0x70, 0xD6, 0xF5,
- 0xFB, 0x21, 0x06, 0x6E, 0xAD, 0x5D, 0x06, 0x01
- },
- {
- 0x03, 0xFB, 0xB1, 0x63, 0x84, 0xF0, 0xA3, 0x86,
- 0x6F, 0x4C, 0x31, 0x17, 0x87, 0x76, 0x66, 0xEF,
- 0xBF, 0x12, 0x45, 0x97, 0x56, 0x4B, 0x29, 0x3D,
- 0x4A, 0xAB, 0x0D, 0x26, 0x9F, 0xAB, 0xDD, 0xFA
- },
- {
- 0x5F, 0xA8, 0x48, 0x6A, 0xC0, 0xE5, 0x29, 0x64,
- 0xD1, 0x88, 0x1B, 0xBE, 0x33, 0x8E, 0xB5, 0x4B,
- 0xE2, 0xF7, 0x19, 0x54, 0x92, 0x24, 0x89, 0x20,
- 0x57, 0xB4, 0xDA, 0x04, 0xBA, 0x8B, 0x34, 0x75
- },
- {
- 0xCD, 0xFA, 0xBC, 0xEE, 0x46, 0x91, 0x11, 0x11,
- 0x23, 0x6A, 0x31, 0x70, 0x8B, 0x25, 0x39, 0xD7,
- 0x1F, 0xC2, 0x11, 0xD9, 0xB0, 0x9C, 0x0D, 0x85,
- 0x30, 0xA1, 0x1E, 0x1D, 0xBF, 0x6E, 0xED, 0x01
- },
- {
- 0x4F, 0x82, 0xDE, 0x03, 0xB9, 0x50, 0x47, 0x93,
- 0xB8, 0x2A, 0x07, 0xA0, 0xBD, 0xCD, 0xFF, 0x31,
- 0x4D, 0x75, 0x9E, 0x7B, 0x62, 0xD2, 0x6B, 0x78,
- 0x49, 0x46, 0xB0, 0xD3, 0x6F, 0x91, 0x6F, 0x52
- },
- {
- 0x25, 0x9E, 0xC7, 0xF1, 0x73, 0xBC, 0xC7, 0x6A,
- 0x09, 0x94, 0xC9, 0x67, 0xB4, 0xF5, 0xF0, 0x24,
- 0xC5, 0x60, 0x57, 0xFB, 0x79, 0xC9, 0x65, 0xC4,
- 0xFA, 0xE4, 0x18, 0x75, 0xF0, 0x6A, 0x0E, 0x4C
- },
- {
- 0x19, 0x3C, 0xC8, 0xE7, 0xC3, 0xE0, 0x8B, 0xB3,
- 0x0F, 0x54, 0x37, 0xAA, 0x27, 0xAD, 0xE1, 0xF1,
- 0x42, 0x36, 0x9B, 0x24, 0x6A, 0x67, 0x5B, 0x23,
- 0x83, 0xE6, 0xDA, 0x9B, 0x49, 0xA9, 0x80, 0x9E
- },
- {
- 0x5C, 0x10, 0x89, 0x6F, 0x0E, 0x28, 0x56, 0xB2,
- 0xA2, 0xEE, 0xE0, 0xFE, 0x4A, 0x2C, 0x16, 0x33,
- 0x56, 0x5D, 0x18, 0xF0, 0xE9, 0x3E, 0x1F, 0xAB,
- 0x26, 0xC3, 0x73, 0xE8, 0xF8, 0x29, 0x65, 0x4D
- },
- {
- 0xF1, 0x60, 0x12, 0xD9, 0x3F, 0x28, 0x85, 0x1A,
- 0x1E, 0xB9, 0x89, 0xF5, 0xD0, 0xB4, 0x3F, 0x3F,
- 0x39, 0xCA, 0x73, 0xC9, 0xA6, 0x2D, 0x51, 0x81,
- 0xBF, 0xF2, 0x37, 0x53, 0x6B, 0xD3, 0x48, 0xC3
- },
- {
- 0x29, 0x66, 0xB3, 0xCF, 0xAE, 0x1E, 0x44, 0xEA,
- 0x99, 0x6D, 0xC5, 0xD6, 0x86, 0xCF, 0x25, 0xFA,
- 0x05, 0x3F, 0xB6, 0xF6, 0x72, 0x01, 0xB9, 0xE4,
- 0x6E, 0xAD, 0xE8, 0x5D, 0x0A, 0xD6, 0xB8, 0x06
- },
- {
- 0xDD, 0xB8, 0x78, 0x24, 0x85, 0xE9, 0x00, 0xBC,
- 0x60, 0xBC, 0xF4, 0xC3, 0x3A, 0x6F, 0xD5, 0x85,
- 0x68, 0x0C, 0xC6, 0x83, 0xD5, 0x16, 0xEF, 0xA0,
- 0x3E, 0xB9, 0x98, 0x5F, 0xAD, 0x87, 0x15, 0xFB
- },
- {
- 0x4C, 0x4D, 0x6E, 0x71, 0xAE, 0xA0, 0x57, 0x86,
- 0x41, 0x31, 0x48, 0xFC, 0x7A, 0x78, 0x6B, 0x0E,
- 0xCA, 0xF5, 0x82, 0xCF, 0xF1, 0x20, 0x9F, 0x5A,
- 0x80, 0x9F, 0xBA, 0x85, 0x04, 0xCE, 0x66, 0x2C
- },
- {
- 0xFB, 0x4C, 0x5E, 0x86, 0xD7, 0xB2, 0x22, 0x9B,
- 0x99, 0xB8, 0xBA, 0x6D, 0x94, 0xC2, 0x47, 0xEF,
- 0x96, 0x4A, 0xA3, 0xA2, 0xBA, 0xE8, 0xED, 0xC7,
- 0x75, 0x69, 0xF2, 0x8D, 0xBB, 0xFF, 0x2D, 0x4E
- },
- {
- 0xE9, 0x4F, 0x52, 0x6D, 0xE9, 0x01, 0x96, 0x33,
- 0xEC, 0xD5, 0x4A, 0xC6, 0x12, 0x0F, 0x23, 0x95,
- 0x8D, 0x77, 0x18, 0xF1, 0xE7, 0x71, 0x7B, 0xF3,
- 0x29, 0x21, 0x1A, 0x4F, 0xAE, 0xED, 0x4E, 0x6D
- },
- {
- 0xCB, 0xD6, 0x66, 0x0A, 0x10, 0xDB, 0x3F, 0x23,
- 0xF7, 0xA0, 0x3D, 0x4B, 0x9D, 0x40, 0x44, 0xC7,
- 0x93, 0x2B, 0x28, 0x01, 0xAC, 0x89, 0xD6, 0x0B,
- 0xC9, 0xEB, 0x92, 0xD6, 0x5A, 0x46, 0xC2, 0xA0
- },
- {
- 0x88, 0x18, 0xBB, 0xD3, 0xDB, 0x4D, 0xC1, 0x23,
- 0xB2, 0x5C, 0xBB, 0xA5, 0xF5, 0x4C, 0x2B, 0xC4,
- 0xB3, 0xFC, 0xF9, 0xBF, 0x7D, 0x7A, 0x77, 0x09,
- 0xF4, 0xAE, 0x58, 0x8B, 0x26, 0x7C, 0x4E, 0xCE
- },
- {
- 0xC6, 0x53, 0x82, 0x51, 0x3F, 0x07, 0x46, 0x0D,
- 0xA3, 0x98, 0x33, 0xCB, 0x66, 0x6C, 0x5E, 0xD8,
- 0x2E, 0x61, 0xB9, 0xE9, 0x98, 0xF4, 0xB0, 0xC4,
- 0x28, 0x7C, 0xEE, 0x56, 0xC3, 0xCC, 0x9B, 0xCD
- },
- {
- 0x89, 0x75, 0xB0, 0x57, 0x7F, 0xD3, 0x55, 0x66,
- 0xD7, 0x50, 0xB3, 0x62, 0xB0, 0x89, 0x7A, 0x26,
- 0xC3, 0x99, 0x13, 0x6D, 0xF0, 0x7B, 0xAB, 0xAB,
- 0xBD, 0xE6, 0x20, 0x3F, 0xF2, 0x95, 0x4E, 0xD4
- },
- {
- 0x21, 0xFE, 0x0C, 0xEB, 0x00, 0x52, 0xBE, 0x7F,
- 0xB0, 0xF0, 0x04, 0x18, 0x7C, 0xAC, 0xD7, 0xDE,
- 0x67, 0xFA, 0x6E, 0xB0, 0x93, 0x8D, 0x92, 0x76,
- 0x77, 0xF2, 0x39, 0x8C, 0x13, 0x23, 0x17, 0xA8
- },
- {
- 0x2E, 0xF7, 0x3F, 0x3C, 0x26, 0xF1, 0x2D, 0x93,
- 0x88, 0x9F, 0x3C, 0x78, 0xB6, 0xA6, 0x6C, 0x1D,
- 0x52, 0xB6, 0x49, 0xDC, 0x9E, 0x85, 0x6E, 0x2C,
- 0x17, 0x2E, 0xA7, 0xC5, 0x8A, 0xC2, 0xB5, 0xE3
- },
- {
- 0x38, 0x8A, 0x3C, 0xD5, 0x6D, 0x73, 0x86, 0x7A,
- 0xBB, 0x5F, 0x84, 0x01, 0x49, 0x2B, 0x6E, 0x26,
- 0x81, 0xEB, 0x69, 0x85, 0x1E, 0x76, 0x7F, 0xD8,
- 0x42, 0x10, 0xA5, 0x60, 0x76, 0xFB, 0x3D, 0xD3
- },
- {
- 0xAF, 0x53, 0x3E, 0x02, 0x2F, 0xC9, 0x43, 0x9E,
- 0x4E, 0x3C, 0xB8, 0x38, 0xEC, 0xD1, 0x86, 0x92,
- 0x23, 0x2A, 0xDF, 0x6F, 0xE9, 0x83, 0x95, 0x26,
- 0xD3, 0xC3, 0xDD, 0x1B, 0x71, 0x91, 0x0B, 0x1A
- },
- {
- 0x75, 0x1C, 0x09, 0xD4, 0x1A, 0x93, 0x43, 0x88,
- 0x2A, 0x81, 0xCD, 0x13, 0xEE, 0x40, 0x81, 0x8D,
- 0x12, 0xEB, 0x44, 0xC6, 0xC7, 0xF4, 0x0D, 0xF1,
- 0x6E, 0x4A, 0xEA, 0x8F, 0xAB, 0x91, 0x97, 0x2A
- },
- {
- 0x5B, 0x73, 0xDD, 0xB6, 0x8D, 0x9D, 0x2B, 0x0A,
- 0xA2, 0x65, 0xA0, 0x79, 0x88, 0xD6, 0xB8, 0x8A,
- 0xE9, 0xAA, 0xC5, 0x82, 0xAF, 0x83, 0x03, 0x2F,
- 0x8A, 0x9B, 0x21, 0xA2, 0xE1, 0xB7, 0xBF, 0x18
- },
- {
- 0x3D, 0xA2, 0x91, 0x26, 0xC7, 0xC5, 0xD7, 0xF4,
- 0x3E, 0x64, 0x24, 0x2A, 0x79, 0xFE, 0xAA, 0x4E,
- 0xF3, 0x45, 0x9C, 0xDE, 0xCC, 0xC8, 0x98, 0xED,
- 0x59, 0xA9, 0x7F, 0x6E, 0xC9, 0x3B, 0x9D, 0xAB
- },
- {
- 0x56, 0x6D, 0xC9, 0x20, 0x29, 0x3D, 0xA5, 0xCB,
- 0x4F, 0xE0, 0xAA, 0x8A, 0xBD, 0xA8, 0xBB, 0xF5,
- 0x6F, 0x55, 0x23, 0x13, 0xBF, 0xF1, 0x90, 0x46,
- 0x64, 0x1E, 0x36, 0x15, 0xC1, 0xE3, 0xED, 0x3F
- },
- {
- 0x41, 0x15, 0xBE, 0xA0, 0x2F, 0x73, 0xF9, 0x7F,
- 0x62, 0x9E, 0x5C, 0x55, 0x90, 0x72, 0x0C, 0x01,
- 0xE7, 0xE4, 0x49, 0xAE, 0x2A, 0x66, 0x97, 0xD4,
- 0xD2, 0x78, 0x33, 0x21, 0x30, 0x36, 0x92, 0xF9
- },
- {
- 0x4C, 0xE0, 0x8F, 0x47, 0x62, 0x46, 0x8A, 0x76,
- 0x70, 0x01, 0x21, 0x64, 0x87, 0x8D, 0x68, 0x34,
- 0x0C, 0x52, 0xA3, 0x5E, 0x66, 0xC1, 0x88, 0x4D,
- 0x5C, 0x86, 0x48, 0x89, 0xAB, 0xC9, 0x66, 0x77
- },
- {
- 0x81, 0xEA, 0x0B, 0x78, 0x04, 0x12, 0x4E, 0x0C,
- 0x22, 0xEA, 0x5F, 0xC7, 0x11, 0x04, 0xA2, 0xAF,
- 0xCB, 0x52, 0xA1, 0xFA, 0x81, 0x6F, 0x3E, 0xCB,
- 0x7D, 0xCB, 0x5D, 0x9D, 0xEA, 0x17, 0x86, 0xD0
- },
- {
- 0xFE, 0x36, 0x27, 0x33, 0xB0, 0x5F, 0x6B, 0xED,
- 0xAF, 0x93, 0x79, 0xD7, 0xF7, 0x93, 0x6E, 0xDE,
- 0x20, 0x9B, 0x1F, 0x83, 0x23, 0xC3, 0x92, 0x25,
- 0x49, 0xD9, 0xE7, 0x36, 0x81, 0xB5, 0xDB, 0x7B
- },
- {
- 0xEF, 0xF3, 0x7D, 0x30, 0xDF, 0xD2, 0x03, 0x59,
- 0xBE, 0x4E, 0x73, 0xFD, 0xF4, 0x0D, 0x27, 0x73,
- 0x4B, 0x3D, 0xF9, 0x0A, 0x97, 0xA5, 0x5E, 0xD7,
- 0x45, 0x29, 0x72, 0x94, 0xCA, 0x85, 0xD0, 0x9F
- },
- {
- 0x17, 0x2F, 0xFC, 0x67, 0x15, 0x3D, 0x12, 0xE0,
- 0xCA, 0x76, 0xA8, 0xB6, 0xCD, 0x5D, 0x47, 0x31,
- 0x88, 0x5B, 0x39, 0xCE, 0x0C, 0xAC, 0x93, 0xA8,
- 0x97, 0x2A, 0x18, 0x00, 0x6C, 0x8B, 0x8B, 0xAF
- },
- {
- 0xC4, 0x79, 0x57, 0xF1, 0xCC, 0x88, 0xE8, 0x3E,
- 0xF9, 0x44, 0x58, 0x39, 0x70, 0x9A, 0x48, 0x0A,
- 0x03, 0x6B, 0xED, 0x5F, 0x88, 0xAC, 0x0F, 0xCC,
- 0x8E, 0x1E, 0x70, 0x3F, 0xFA, 0xAC, 0x13, 0x2C
- },
- {
- 0x30, 0xF3, 0x54, 0x83, 0x70, 0xCF, 0xDC, 0xED,
- 0xA5, 0xC3, 0x7B, 0x56, 0x9B, 0x61, 0x75, 0xE7,
- 0x99, 0xEE, 0xF1, 0xA6, 0x2A, 0xAA, 0x94, 0x32,
- 0x45, 0xAE, 0x76, 0x69, 0xC2, 0x27, 0xA7, 0xB5
- },
- {
- 0xC9, 0x5D, 0xCB, 0x3C, 0xF1, 0xF2, 0x7D, 0x0E,
- 0xEF, 0x2F, 0x25, 0xD2, 0x41, 0x38, 0x70, 0x90,
- 0x4A, 0x87, 0x7C, 0x4A, 0x56, 0xC2, 0xDE, 0x1E,
- 0x83, 0xE2, 0xBC, 0x2A, 0xE2, 0xE4, 0x68, 0x21
- },
- {
- 0xD5, 0xD0, 0xB5, 0xD7, 0x05, 0x43, 0x4C, 0xD4,
- 0x6B, 0x18, 0x57, 0x49, 0xF6, 0x6B, 0xFB, 0x58,
- 0x36, 0xDC, 0xDF, 0x6E, 0xE5, 0x49, 0xA2, 0xB7,
- 0xA4, 0xAE, 0xE7, 0xF5, 0x80, 0x07, 0xCA, 0xAF
- },
- {
- 0xBB, 0xC1, 0x24, 0xA7, 0x12, 0xF1, 0x5D, 0x07,
- 0xC3, 0x00, 0xE0, 0x5B, 0x66, 0x83, 0x89, 0xA4,
- 0x39, 0xC9, 0x17, 0x77, 0xF7, 0x21, 0xF8, 0x32,
- 0x0C, 0x1C, 0x90, 0x78, 0x06, 0x6D, 0x2C, 0x7E
- },
- {
- 0xA4, 0x51, 0xB4, 0x8C, 0x35, 0xA6, 0xC7, 0x85,
- 0x4C, 0xFA, 0xAE, 0x60, 0x26, 0x2E, 0x76, 0x99,
- 0x08, 0x16, 0x38, 0x2A, 0xC0, 0x66, 0x7E, 0x5A,
- 0x5C, 0x9E, 0x1B, 0x46, 0xC4, 0x34, 0x2D, 0xDF
- },
- {
- 0xB0, 0xD1, 0x50, 0xFB, 0x55, 0xE7, 0x78, 0xD0,
- 0x11, 0x47, 0xF0, 0xB5, 0xD8, 0x9D, 0x99, 0xEC,
- 0xB2, 0x0F, 0xF0, 0x7E, 0x5E, 0x67, 0x60, 0xD6,
- 0xB6, 0x45, 0xEB, 0x5B, 0x65, 0x4C, 0x62, 0x2B
- },
- {
- 0x34, 0xF7, 0x37, 0xC0, 0xAB, 0x21, 0x99, 0x51,
- 0xEE, 0xE8, 0x9A, 0x9F, 0x8D, 0xAC, 0x29, 0x9C,
- 0x9D, 0x4C, 0x38, 0xF3, 0x3F, 0xA4, 0x94, 0xC5,
- 0xC6, 0xEE, 0xFC, 0x92, 0xB6, 0xDB, 0x08, 0xBC
- },
- {
- 0x1A, 0x62, 0xCC, 0x3A, 0x00, 0x80, 0x0D, 0xCB,
- 0xD9, 0x98, 0x91, 0x08, 0x0C, 0x1E, 0x09, 0x84,
- 0x58, 0x19, 0x3A, 0x8C, 0xC9, 0xF9, 0x70, 0xEA,
- 0x99, 0xFB, 0xEF, 0xF0, 0x03, 0x18, 0xC2, 0x89
- },
- {
- 0xCF, 0xCE, 0x55, 0xEB, 0xAF, 0xC8, 0x40, 0xD7,
- 0xAE, 0x48, 0x28, 0x1C, 0x7F, 0xD5, 0x7E, 0xC8,
- 0xB4, 0x82, 0xD4, 0xB7, 0x04, 0x43, 0x74, 0x95,
- 0x49, 0x5A, 0xC4, 0x14, 0xCF, 0x4A, 0x37, 0x4B
- },
- {
- 0x67, 0x46, 0xFA, 0xCF, 0x71, 0x14, 0x6D, 0x99,
- 0x9D, 0xAB, 0xD0, 0x5D, 0x09, 0x3A, 0xE5, 0x86,
- 0x64, 0x8D, 0x1E, 0xE2, 0x8E, 0x72, 0x61, 0x7B,
- 0x99, 0xD0, 0xF0, 0x08, 0x6E, 0x1E, 0x45, 0xBF
- },
- {
- 0x57, 0x1C, 0xED, 0x28, 0x3B, 0x3F, 0x23, 0xB4,
- 0xE7, 0x50, 0xBF, 0x12, 0xA2, 0xCA, 0xF1, 0x78,
- 0x18, 0x47, 0xBD, 0x89, 0x0E, 0x43, 0x60, 0x3C,
- 0xDC, 0x59, 0x76, 0x10, 0x2B, 0x7B, 0xB1, 0x1B
- },
- {
- 0xCF, 0xCB, 0x76, 0x5B, 0x04, 0x8E, 0x35, 0x02,
- 0x2C, 0x5D, 0x08, 0x9D, 0x26, 0xE8, 0x5A, 0x36,
- 0xB0, 0x05, 0xA2, 0xB8, 0x04, 0x93, 0xD0, 0x3A,
- 0x14, 0x4E, 0x09, 0xF4, 0x09, 0xB6, 0xAF, 0xD1
- },
- {
- 0x40, 0x50, 0xC7, 0xA2, 0x77, 0x05, 0xBB, 0x27,
- 0xF4, 0x20, 0x89, 0xB2, 0x99, 0xF3, 0xCB, 0xE5,
- 0x05, 0x4E, 0xAD, 0x68, 0x72, 0x7E, 0x8E, 0xF9,
- 0x31, 0x8C, 0xE6, 0xF2, 0x5C, 0xD6, 0xF3, 0x1D
- },
- {
- 0x18, 0x40, 0x70, 0xBD, 0x5D, 0x26, 0x5F, 0xBD,
- 0xC1, 0x42, 0xCD, 0x1C, 0x5C, 0xD0, 0xD7, 0xE4,
- 0x14, 0xE7, 0x03, 0x69, 0xA2, 0x66, 0xD6, 0x27,
- 0xC8, 0xFB, 0xA8, 0x4F, 0xA5, 0xE8, 0x4C, 0x34
- },
- {
- 0x9E, 0xDD, 0xA9, 0xA4, 0x44, 0x39, 0x02, 0xA9,
- 0x58, 0x8C, 0x0D, 0x0C, 0xCC, 0x62, 0xB9, 0x30,
- 0x21, 0x84, 0x79, 0xA6, 0x84, 0x1E, 0x6F, 0xE7,
- 0xD4, 0x30, 0x03, 0xF0, 0x4B, 0x1F, 0xD6, 0x43
- },
- {
- 0xE4, 0x12, 0xFE, 0xEF, 0x79, 0x08, 0x32, 0x4A,
- 0x6D, 0xA1, 0x84, 0x16, 0x29, 0xF3, 0x5D, 0x3D,
- 0x35, 0x86, 0x42, 0x01, 0x93, 0x10, 0xEC, 0x57,
- 0xC6, 0x14, 0x83, 0x6B, 0x63, 0xD3, 0x07, 0x63
- },
- {
- 0x1A, 0x2B, 0x8E, 0xDF, 0xF3, 0xF9, 0xAC, 0xC1,
- 0x55, 0x4F, 0xCB, 0xAE, 0x3C, 0xF1, 0xD6, 0x29,
- 0x8C, 0x64, 0x62, 0xE2, 0x2E, 0x5E, 0xB0, 0x25,
- 0x96, 0x84, 0xF8, 0x35, 0x01, 0x2B, 0xD1, 0x3F
- },
- {
- 0x28, 0x8C, 0x4A, 0xD9, 0xB9, 0x40, 0x97, 0x62,
- 0xEA, 0x07, 0xC2, 0x4A, 0x41, 0xF0, 0x4F, 0x69,
- 0xA7, 0xD7, 0x4B, 0xEE, 0x2D, 0x95, 0x43, 0x53,
- 0x74, 0xBD, 0xE9, 0x46, 0xD7, 0x24, 0x1C, 0x7B
- },
- {
- 0x80, 0x56, 0x91, 0xBB, 0x28, 0x67, 0x48, 0xCF,
- 0xB5, 0x91, 0xD3, 0xAE, 0xBE, 0x7E, 0x6F, 0x4E,
- 0x4D, 0xC6, 0xE2, 0x80, 0x8C, 0x65, 0x14, 0x3C,
- 0xC0, 0x04, 0xE4, 0xEB, 0x6F, 0xD0, 0x9D, 0x43
- },
- {
- 0xD4, 0xAC, 0x8D, 0x3A, 0x0A, 0xFC, 0x6C, 0xFA,
- 0x7B, 0x46, 0x0A, 0xE3, 0x00, 0x1B, 0xAE, 0xB3,
- 0x6D, 0xAD, 0xB3, 0x7D, 0xA0, 0x7D, 0x2E, 0x8A,
- 0xC9, 0x18, 0x22, 0xDF, 0x34, 0x8A, 0xED, 0x3D
- },
- {
- 0xC3, 0x76, 0x61, 0x70, 0x14, 0xD2, 0x01, 0x58,
- 0xBC, 0xED, 0x3D, 0x3B, 0xA5, 0x52, 0xB6, 0xEC,
- 0xCF, 0x84, 0xE6, 0x2A, 0xA3, 0xEB, 0x65, 0x0E,
- 0x90, 0x02, 0x9C, 0x84, 0xD1, 0x3E, 0xEA, 0x69
- },
- {
- 0xC4, 0x1F, 0x09, 0xF4, 0x3C, 0xEC, 0xAE, 0x72,
- 0x93, 0xD6, 0x00, 0x7C, 0xA0, 0xA3, 0x57, 0x08,
- 0x7D, 0x5A, 0xE5, 0x9B, 0xE5, 0x00, 0xC1, 0xCD,
- 0x5B, 0x28, 0x9E, 0xE8, 0x10, 0xC7, 0xB0, 0x82
- },
- {
- 0x03, 0xD1, 0xCE, 0xD1, 0xFB, 0xA5, 0xC3, 0x91,
- 0x55, 0xC4, 0x4B, 0x77, 0x65, 0xCB, 0x76, 0x0C,
- 0x78, 0x70, 0x8D, 0xCF, 0xC8, 0x0B, 0x0B, 0xD8,
- 0xAD, 0xE3, 0xA5, 0x6D, 0xA8, 0x83, 0x0B, 0x29
- },
- {
- 0x09, 0xBD, 0xE6, 0xF1, 0x52, 0x21, 0x8D, 0xC9,
- 0x2C, 0x41, 0xD7, 0xF4, 0x53, 0x87, 0xE6, 0x3E,
- 0x58, 0x69, 0xD8, 0x07, 0xEC, 0x70, 0xB8, 0x21,
- 0x40, 0x5D, 0xBD, 0x88, 0x4B, 0x7F, 0xCF, 0x4B
- },
- {
- 0x71, 0xC9, 0x03, 0x6E, 0x18, 0x17, 0x9B, 0x90,
- 0xB3, 0x7D, 0x39, 0xE9, 0xF0, 0x5E, 0xB8, 0x9C,
- 0xC5, 0xFC, 0x34, 0x1F, 0xD7, 0xC4, 0x77, 0xD0,
- 0xD7, 0x49, 0x32, 0x85, 0xFA, 0xCA, 0x08, 0xA4
- },
- {
- 0x59, 0x16, 0x83, 0x3E, 0xBB, 0x05, 0xCD, 0x91,
- 0x9C, 0xA7, 0xFE, 0x83, 0xB6, 0x92, 0xD3, 0x20,
- 0x5B, 0xEF, 0x72, 0x39, 0x2B, 0x2C, 0xF6, 0xBB,
- 0x0A, 0x6D, 0x43, 0xF9, 0x94, 0xF9, 0x5F, 0x11
- },
- {
- 0xF6, 0x3A, 0xAB, 0x3E, 0xC6, 0x41, 0xB3, 0xB0,
- 0x24, 0x96, 0x4C, 0x2B, 0x43, 0x7C, 0x04, 0xF6,
- 0x04, 0x3C, 0x4C, 0x7E, 0x02, 0x79, 0x23, 0x99,
- 0x95, 0x40, 0x19, 0x58, 0xF8, 0x6B, 0xBE, 0x54
- },
- {
- 0xF1, 0x72, 0xB1, 0x80, 0xBF, 0xB0, 0x97, 0x40,
- 0x49, 0x31, 0x20, 0xB6, 0x32, 0x6C, 0xBD, 0xC5,
- 0x61, 0xE4, 0x77, 0xDE, 0xF9, 0xBB, 0xCF, 0xD2,
- 0x8C, 0xC8, 0xC1, 0xC5, 0xE3, 0x37, 0x9A, 0x31
- },
- {
- 0xCB, 0x9B, 0x89, 0xCC, 0x18, 0x38, 0x1D, 0xD9,
- 0x14, 0x1A, 0xDE, 0x58, 0x86, 0x54, 0xD4, 0xE6,
- 0xA2, 0x31, 0xD5, 0xBF, 0x49, 0xD4, 0xD5, 0x9A,
- 0xC2, 0x7D, 0x86, 0x9C, 0xBE, 0x10, 0x0C, 0xF3
- },
- {
- 0x7B, 0xD8, 0x81, 0x50, 0x46, 0xFD, 0xD8, 0x10,
- 0xA9, 0x23, 0xE1, 0x98, 0x4A, 0xAE, 0xBD, 0xCD,
- 0xF8, 0x4D, 0x87, 0xC8, 0x99, 0x2D, 0x68, 0xB5,
- 0xEE, 0xB4, 0x60, 0xF9, 0x3E, 0xB3, 0xC8, 0xD7
- },
- {
- 0x60, 0x7B, 0xE6, 0x68, 0x62, 0xFD, 0x08, 0xEE,
- 0x5B, 0x19, 0xFA, 0xCA, 0xC0, 0x9D, 0xFD, 0xBC,
- 0xD4, 0x0C, 0x31, 0x21, 0x01, 0xD6, 0x6E, 0x6E,
- 0xBD, 0x2B, 0x84, 0x1F, 0x1B, 0x9A, 0x93, 0x25
- },
- {
- 0x9F, 0xE0, 0x3B, 0xBE, 0x69, 0xAB, 0x18, 0x34,
- 0xF5, 0x21, 0x9B, 0x0D, 0xA8, 0x8A, 0x08, 0xB3,
- 0x0A, 0x66, 0xC5, 0x91, 0x3F, 0x01, 0x51, 0x96,
- 0x3C, 0x36, 0x05, 0x60, 0xDB, 0x03, 0x87, 0xB3
- },
- {
- 0x90, 0xA8, 0x35, 0x85, 0x71, 0x7B, 0x75, 0xF0,
- 0xE9, 0xB7, 0x25, 0xE0, 0x55, 0xEE, 0xEE, 0xB9,
- 0xE7, 0xA0, 0x28, 0xEA, 0x7E, 0x6C, 0xBC, 0x07,
- 0xB2, 0x09, 0x17, 0xEC, 0x03, 0x63, 0xE3, 0x8C
- },
- {
- 0x33, 0x6E, 0xA0, 0x53, 0x0F, 0x4A, 0x74, 0x69,
- 0x12, 0x6E, 0x02, 0x18, 0x58, 0x7E, 0xBB, 0xDE,
- 0x33, 0x58, 0xA0, 0xB3, 0x1C, 0x29, 0xD2, 0x00,
- 0xF7, 0xDC, 0x7E, 0xB1, 0x5C, 0x6A, 0xAD, 0xD8
- },
- {
- 0xA7, 0x9E, 0x76, 0xDC, 0x0A, 0xBC, 0xA4, 0x39,
- 0x6F, 0x07, 0x47, 0xCD, 0x7B, 0x74, 0x8D, 0xF9,
- 0x13, 0x00, 0x76, 0x26, 0xB1, 0xD6, 0x59, 0xDA,
- 0x0C, 0x1F, 0x78, 0xB9, 0x30, 0x3D, 0x01, 0xA3
- },
- {
- 0x44, 0xE7, 0x8A, 0x77, 0x37, 0x56, 0xE0, 0x95,
- 0x15, 0x19, 0x50, 0x4D, 0x70, 0x38, 0xD2, 0x8D,
- 0x02, 0x13, 0xA3, 0x7E, 0x0C, 0xE3, 0x75, 0x37,
- 0x17, 0x57, 0xBC, 0x99, 0x63, 0x11, 0xE3, 0xB8
- },
- {
- 0x77, 0xAC, 0x01, 0x2A, 0x3F, 0x75, 0x4D, 0xCF,
- 0xEA, 0xB5, 0xEB, 0x99, 0x6B, 0xE9, 0xCD, 0x2D,
- 0x1F, 0x96, 0x11, 0x1B, 0x6E, 0x49, 0xF3, 0x99,
- 0x4D, 0xF1, 0x81, 0xF2, 0x85, 0x69, 0xD8, 0x25
- },
- {
- 0xCE, 0x5A, 0x10, 0xDB, 0x6F, 0xCC, 0xDA, 0xF1,
- 0x40, 0xAA, 0xA4, 0xDE, 0xD6, 0x25, 0x0A, 0x9C,
- 0x06, 0xE9, 0x22, 0x2B, 0xC9, 0xF9, 0xF3, 0x65,
- 0x8A, 0x4A, 0xFF, 0x93, 0x5F, 0x2B, 0x9F, 0x3A
- },
- {
- 0xEC, 0xC2, 0x03, 0xA7, 0xFE, 0x2B, 0xE4, 0xAB,
- 0xD5, 0x5B, 0xB5, 0x3E, 0x6E, 0x67, 0x35, 0x72,
- 0xE0, 0x07, 0x8D, 0xA8, 0xCD, 0x37, 0x5E, 0xF4,
- 0x30, 0xCC, 0x97, 0xF9, 0xF8, 0x00, 0x83, 0xAF
- },
- {
- 0x14, 0xA5, 0x18, 0x6D, 0xE9, 0xD7, 0xA1, 0x8B,
- 0x04, 0x12, 0xB8, 0x56, 0x3E, 0x51, 0xCC, 0x54,
- 0x33, 0x84, 0x0B, 0x4A, 0x12, 0x9A, 0x8F, 0xF9,
- 0x63, 0xB3, 0x3A, 0x3C, 0x4A, 0xFE, 0x8E, 0xBB
- },
- {
- 0x13, 0xF8, 0xEF, 0x95, 0xCB, 0x86, 0xE6, 0xA6,
- 0x38, 0x93, 0x1C, 0x8E, 0x10, 0x76, 0x73, 0xEB,
- 0x76, 0xBA, 0x10, 0xD7, 0xC2, 0xCD, 0x70, 0xB9,
- 0xD9, 0x92, 0x0B, 0xBE, 0xED, 0x92, 0x94, 0x09
- },
- {
- 0x0B, 0x33, 0x8F, 0x4E, 0xE1, 0x2F, 0x2D, 0xFC,
- 0xB7, 0x87, 0x13, 0x37, 0x79, 0x41, 0xE0, 0xB0,
- 0x63, 0x21, 0x52, 0x58, 0x1D, 0x13, 0x32, 0x51,
- 0x6E, 0x4A, 0x2C, 0xAB, 0x19, 0x42, 0xCC, 0xA4
- },
- {
- 0xEA, 0xAB, 0x0E, 0xC3, 0x7B, 0x3B, 0x8A, 0xB7,
- 0x96, 0xE9, 0xF5, 0x72, 0x38, 0xDE, 0x14, 0xA2,
- 0x64, 0xA0, 0x76, 0xF3, 0x88, 0x7D, 0x86, 0xE2,
- 0x9B, 0xB5, 0x90, 0x6D, 0xB5, 0xA0, 0x0E, 0x02
- },
- {
- 0x23, 0xCB, 0x68, 0xB8, 0xC0, 0xE6, 0xDC, 0x26,
- 0xDC, 0x27, 0x76, 0x6D, 0xDC, 0x0A, 0x13, 0xA9,
- 0x94, 0x38, 0xFD, 0x55, 0x61, 0x7A, 0xA4, 0x09,
- 0x5D, 0x8F, 0x96, 0x97, 0x20, 0xC8, 0x72, 0xDF
- },
- {
- 0x09, 0x1D, 0x8E, 0xE3, 0x0D, 0x6F, 0x29, 0x68,
- 0xD4, 0x6B, 0x68, 0x7D, 0xD6, 0x52, 0x92, 0x66,
- 0x57, 0x42, 0xDE, 0x0B, 0xB8, 0x3D, 0xCC, 0x00,
- 0x04, 0xC7, 0x2C, 0xE1, 0x00, 0x07, 0xA5, 0x49
- },
- {
- 0x7F, 0x50, 0x7A, 0xBC, 0x6D, 0x19, 0xBA, 0x00,
- 0xC0, 0x65, 0xA8, 0x76, 0xEC, 0x56, 0x57, 0x86,
- 0x88, 0x82, 0xD1, 0x8A, 0x22, 0x1B, 0xC4, 0x6C,
- 0x7A, 0x69, 0x12, 0x54, 0x1F, 0x5B, 0xC7, 0xBA
- },
- {
- 0xA0, 0x60, 0x7C, 0x24, 0xE1, 0x4E, 0x8C, 0x22,
- 0x3D, 0xB0, 0xD7, 0x0B, 0x4D, 0x30, 0xEE, 0x88,
- 0x01, 0x4D, 0x60, 0x3F, 0x43, 0x7E, 0x9E, 0x02,
- 0xAA, 0x7D, 0xAF, 0xA3, 0xCD, 0xFB, 0xAD, 0x94
- },
- {
- 0xDD, 0xBF, 0xEA, 0x75, 0xCC, 0x46, 0x78, 0x82,
- 0xEB, 0x34, 0x83, 0xCE, 0x5E, 0x2E, 0x75, 0x6A,
- 0x4F, 0x47, 0x01, 0xB7, 0x6B, 0x44, 0x55, 0x19,
- 0xE8, 0x9F, 0x22, 0xD6, 0x0F, 0xA8, 0x6E, 0x06
- },
- {
- 0x0C, 0x31, 0x1F, 0x38, 0xC3, 0x5A, 0x4F, 0xB9,
- 0x0D, 0x65, 0x1C, 0x28, 0x9D, 0x48, 0x68, 0x56,
- 0xCD, 0x14, 0x13, 0xDF, 0x9B, 0x06, 0x77, 0xF5,
- 0x3E, 0xCE, 0x2C, 0xD9, 0xE4, 0x77, 0xC6, 0x0A
- },
- {
- 0x46, 0xA7, 0x3A, 0x8D, 0xD3, 0xE7, 0x0F, 0x59,
- 0xD3, 0x94, 0x2C, 0x01, 0xDF, 0x59, 0x9D, 0xEF,
- 0x78, 0x3C, 0x9D, 0xA8, 0x2F, 0xD8, 0x32, 0x22,
- 0xCD, 0x66, 0x2B, 0x53, 0xDC, 0xE7, 0xDB, 0xDF
- },
- {
- 0xAD, 0x03, 0x8F, 0xF9, 0xB1, 0x4D, 0xE8, 0x4A,
- 0x80, 0x1E, 0x4E, 0x62, 0x1C, 0xE5, 0xDF, 0x02,
- 0x9D, 0xD9, 0x35, 0x20, 0xD0, 0xC2, 0xFA, 0x38,
- 0xBF, 0xF1, 0x76, 0xA8, 0xB1, 0xD1, 0x69, 0x8C
- },
- {
- 0xAB, 0x70, 0xC5, 0xDF, 0xBD, 0x1E, 0xA8, 0x17,
- 0xFE, 0xD0, 0xCD, 0x06, 0x72, 0x93, 0xAB, 0xF3,
- 0x19, 0xE5, 0xD7, 0x90, 0x1C, 0x21, 0x41, 0xD5,
- 0xD9, 0x9B, 0x23, 0xF0, 0x3A, 0x38, 0xE7, 0x48
- },
- {
- 0x1F, 0xFF, 0xDA, 0x67, 0x93, 0x2B, 0x73, 0xC8,
- 0xEC, 0xAF, 0x00, 0x9A, 0x34, 0x91, 0xA0, 0x26,
- 0x95, 0x3B, 0xAB, 0xFE, 0x1F, 0x66, 0x3B, 0x06,
- 0x97, 0xC3, 0xC4, 0xAE, 0x8B, 0x2E, 0x7D, 0xCB
- },
- {
- 0xB0, 0xD2, 0xCC, 0x19, 0x47, 0x2D, 0xD5, 0x7F,
- 0x2B, 0x17, 0xEF, 0xC0, 0x3C, 0x8D, 0x58, 0xC2,
- 0x28, 0x3D, 0xBB, 0x19, 0xDA, 0x57, 0x2F, 0x77,
- 0x55, 0x85, 0x5A, 0xA9, 0x79, 0x43, 0x17, 0xA0
- },
- {
- 0xA0, 0xD1, 0x9A, 0x6E, 0xE3, 0x39, 0x79, 0xC3,
- 0x25, 0x51, 0x0E, 0x27, 0x66, 0x22, 0xDF, 0x41,
- 0xF7, 0x15, 0x83, 0xD0, 0x75, 0x01, 0xB8, 0x70,
- 0x71, 0x12, 0x9A, 0x0A, 0xD9, 0x47, 0x32, 0xA5
- },
- {
- 0x72, 0x46, 0x42, 0xA7, 0x03, 0x2D, 0x10, 0x62,
- 0xB8, 0x9E, 0x52, 0xBE, 0xA3, 0x4B, 0x75, 0xDF,
- 0x7D, 0x8F, 0xE7, 0x72, 0xD9, 0xFE, 0x3C, 0x93,
- 0xDD, 0xF3, 0xC4, 0x54, 0x5A, 0xB5, 0xA9, 0x9B
- },
- {
- 0xAD, 0xE5, 0xEA, 0xA7, 0xE6, 0x1F, 0x67, 0x2D,
- 0x58, 0x7E, 0xA0, 0x3D, 0xAE, 0x7D, 0x7B, 0x55,
- 0x22, 0x9C, 0x01, 0xD0, 0x6B, 0xC0, 0xA5, 0x70,
- 0x14, 0x36, 0xCB, 0xD1, 0x83, 0x66, 0xA6, 0x26
- },
- {
- 0x01, 0x3B, 0x31, 0xEB, 0xD2, 0x28, 0xFC, 0xDD,
- 0xA5, 0x1F, 0xAB, 0xB0, 0x3B, 0xB0, 0x2D, 0x60,
- 0xAC, 0x20, 0xCA, 0x21, 0x5A, 0xAF, 0xA8, 0x3B,
- 0xDD, 0x85, 0x5E, 0x37, 0x55, 0xA3, 0x5F, 0x0B
- },
- {
- 0x33, 0x2E, 0xD4, 0x0B, 0xB1, 0x0D, 0xDE, 0x3C,
- 0x95, 0x4A, 0x75, 0xD7, 0xB8, 0x99, 0x9D, 0x4B,
- 0x26, 0xA1, 0xC0, 0x63, 0xC1, 0xDC, 0x6E, 0x32,
- 0xC1, 0xD9, 0x1B, 0xAB, 0x7B, 0xBB, 0x7D, 0x16
- },
- {
- 0xC7, 0xA1, 0x97, 0xB3, 0xA0, 0x5B, 0x56, 0x6B,
- 0xCC, 0x9F, 0xAC, 0xD2, 0x0E, 0x44, 0x1D, 0x6F,
- 0x6C, 0x28, 0x60, 0xAC, 0x96, 0x51, 0xCD, 0x51,
- 0xD6, 0xB9, 0xD2, 0xCD, 0xEE, 0xEA, 0x03, 0x90
- },
- {
- 0xBD, 0x9C, 0xF6, 0x4E, 0xA8, 0x95, 0x3C, 0x03,
- 0x71, 0x08, 0xE6, 0xF6, 0x54, 0x91, 0x4F, 0x39,
- 0x58, 0xB6, 0x8E, 0x29, 0xC1, 0x67, 0x00, 0xDC,
- 0x18, 0x4D, 0x94, 0xA2, 0x17, 0x08, 0xFF, 0x60
- },
- {
- 0x88, 0x35, 0xB0, 0xAC, 0x02, 0x11, 0x51, 0xDF,
- 0x71, 0x64, 0x74, 0xCE, 0x27, 0xCE, 0x4D, 0x3C,
- 0x15, 0xF0, 0xB2, 0xDA, 0xB4, 0x80, 0x03, 0xCF,
- 0x3F, 0x3E, 0xFD, 0x09, 0x45, 0x10, 0x6B, 0x9A
- },
- {
- 0x3B, 0xFE, 0xFA, 0x33, 0x01, 0xAA, 0x55, 0xC0,
- 0x80, 0x19, 0x0C, 0xFF, 0xDA, 0x8E, 0xAE, 0x51,
- 0xD9, 0xAF, 0x48, 0x8B, 0x4C, 0x1F, 0x24, 0xC3,
- 0xD9, 0xA7, 0x52, 0x42, 0xFD, 0x8E, 0xA0, 0x1D
- },
- {
- 0x08, 0x28, 0x4D, 0x14, 0x99, 0x3C, 0xD4, 0x7D,
- 0x53, 0xEB, 0xAE, 0xCF, 0x0D, 0xF0, 0x47, 0x8C,
- 0xC1, 0x82, 0xC8, 0x9C, 0x00, 0xE1, 0x85, 0x9C,
- 0x84, 0x85, 0x16, 0x86, 0xDD, 0xF2, 0xC1, 0xB7
- },
- {
- 0x1E, 0xD7, 0xEF, 0x9F, 0x04, 0xC2, 0xAC, 0x8D,
- 0xB6, 0xA8, 0x64, 0xDB, 0x13, 0x10, 0x87, 0xF2,
- 0x70, 0x65, 0x09, 0x8E, 0x69, 0xC3, 0xFE, 0x78,
- 0x71, 0x8D, 0x9B, 0x94, 0x7F, 0x4A, 0x39, 0xD0
- },
- {
- 0xC1, 0x61, 0xF2, 0xDC, 0xD5, 0x7E, 0x9C, 0x14,
- 0x39, 0xB3, 0x1A, 0x9D, 0xD4, 0x3D, 0x8F, 0x3D,
- 0x7D, 0xD8, 0xF0, 0xEB, 0x7C, 0xFA, 0xC6, 0xFB,
- 0x25, 0xA0, 0xF2, 0x8E, 0x30, 0x6F, 0x06, 0x61
- },
- {
- 0xC0, 0x19, 0x69, 0xAD, 0x34, 0xC5, 0x2C, 0xAF,
- 0x3D, 0xC4, 0xD8, 0x0D, 0x19, 0x73, 0x5C, 0x29,
- 0x73, 0x1A, 0xC6, 0xE7, 0xA9, 0x20, 0x85, 0xAB,
- 0x92, 0x50, 0xC4, 0x8D, 0xEA, 0x48, 0xA3, 0xFC
- },
- {
- 0x17, 0x20, 0xB3, 0x65, 0x56, 0x19, 0xD2, 0xA5,
- 0x2B, 0x35, 0x21, 0xAE, 0x0E, 0x49, 0xE3, 0x45,
- 0xCB, 0x33, 0x89, 0xEB, 0xD6, 0x20, 0x8A, 0xCA,
- 0xF9, 0xF1, 0x3F, 0xDA, 0xCC, 0xA8, 0xBE, 0x49
- },
- {
- 0x75, 0x62, 0x88, 0x36, 0x1C, 0x83, 0xE2, 0x4C,
- 0x61, 0x7C, 0xF9, 0x5C, 0x90, 0x5B, 0x22, 0xD0,
- 0x17, 0xCD, 0xC8, 0x6F, 0x0B, 0xF1, 0xD6, 0x58,
- 0xF4, 0x75, 0x6C, 0x73, 0x79, 0x87, 0x3B, 0x7F
- },
- {
- 0xE7, 0xD0, 0xED, 0xA3, 0x45, 0x26, 0x93, 0xB7,
- 0x52, 0xAB, 0xCD, 0xA1, 0xB5, 0x5E, 0x27, 0x6F,
- 0x82, 0x69, 0x8F, 0x5F, 0x16, 0x05, 0x40, 0x3E,
- 0xFF, 0x83, 0x0B, 0xEA, 0x00, 0x71, 0xA3, 0x94
- },
- {
- 0x2C, 0x82, 0xEC, 0xAA, 0x6B, 0x84, 0x80, 0x3E,
- 0x04, 0x4A, 0xF6, 0x31, 0x18, 0xAF, 0xE5, 0x44,
- 0x68, 0x7C, 0xB6, 0xE6, 0xC7, 0xDF, 0x49, 0xED,
- 0x76, 0x2D, 0xFD, 0x7C, 0x86, 0x93, 0xA1, 0xBC
- },
- {
- 0x61, 0x36, 0xCB, 0xF4, 0xB4, 0x41, 0x05, 0x6F,
- 0xA1, 0xE2, 0x72, 0x24, 0x98, 0x12, 0x5D, 0x6D,
- 0xED, 0x45, 0xE1, 0x7B, 0x52, 0x14, 0x39, 0x59,
- 0xC7, 0xF4, 0xD4, 0xE3, 0x95, 0x21, 0x8A, 0xC2
- },
- {
- 0x72, 0x1D, 0x32, 0x45, 0xAA, 0xFE, 0xF2, 0x7F,
- 0x6A, 0x62, 0x4F, 0x47, 0x95, 0x4B, 0x6C, 0x25,
- 0x50, 0x79, 0x52, 0x6F, 0xFA, 0x25, 0xE9, 0xFF,
- 0x77, 0xE5, 0xDC, 0xFF, 0x47, 0x3B, 0x15, 0x97
- },
- {
- 0x9D, 0xD2, 0xFB, 0xD8, 0xCE, 0xF1, 0x6C, 0x35,
- 0x3C, 0x0A, 0xC2, 0x11, 0x91, 0xD5, 0x09, 0xEB,
- 0x28, 0xDD, 0x9E, 0x3E, 0x0D, 0x8C, 0xEA, 0x5D,
- 0x26, 0xCA, 0x83, 0x93, 0x93, 0x85, 0x1C, 0x3A
- },
- {
- 0xB2, 0x39, 0x4C, 0xEA, 0xCD, 0xEB, 0xF2, 0x1B,
- 0xF9, 0xDF, 0x2C, 0xED, 0x98, 0xE5, 0x8F, 0x1C,
- 0x3A, 0x4B, 0xBB, 0xFF, 0x66, 0x0D, 0xD9, 0x00,
- 0xF6, 0x22, 0x02, 0xD6, 0x78, 0x5C, 0xC4, 0x6E
- },
- {
- 0x57, 0x08, 0x9F, 0x22, 0x27, 0x49, 0xAD, 0x78,
- 0x71, 0x76, 0x5F, 0x06, 0x2B, 0x11, 0x4F, 0x43,
- 0xBA, 0x20, 0xEC, 0x56, 0x42, 0x2A, 0x8B, 0x1E,
- 0x3F, 0x87, 0x19, 0x2C, 0x0E, 0xA7, 0x18, 0xC6
- },
- {
- 0xE4, 0x9A, 0x94, 0x59, 0x96, 0x1C, 0xD3, 0x3C,
- 0xDF, 0x4A, 0xAE, 0x1B, 0x10, 0x78, 0xA5, 0xDE,
- 0xA7, 0xC0, 0x40, 0xE0, 0xFE, 0xA3, 0x40, 0xC9,
- 0x3A, 0x72, 0x48, 0x72, 0xFC, 0x4A, 0xF8, 0x06
- },
- {
- 0xED, 0xE6, 0x7F, 0x72, 0x0E, 0xFF, 0xD2, 0xCA,
- 0x9C, 0x88, 0x99, 0x41, 0x52, 0xD0, 0x20, 0x1D,
- 0xEE, 0x6B, 0x0A, 0x2D, 0x2C, 0x07, 0x7A, 0xCA,
- 0x6D, 0xAE, 0x29, 0xF7, 0x3F, 0x8B, 0x63, 0x09
- },
- {
- 0xE0, 0xF4, 0x34, 0xBF, 0x22, 0xE3, 0x08, 0x80,
- 0x39, 0xC2, 0x1F, 0x71, 0x9F, 0xFC, 0x67, 0xF0,
- 0xF2, 0xCB, 0x5E, 0x98, 0xA7, 0xA0, 0x19, 0x4C,
- 0x76, 0xE9, 0x6B, 0xF4, 0xE8, 0xE1, 0x7E, 0x61
- },
- {
- 0x27, 0x7C, 0x04, 0xE2, 0x85, 0x34, 0x84, 0xA4,
- 0xEB, 0xA9, 0x10, 0xAD, 0x33, 0x6D, 0x01, 0xB4,
- 0x77, 0xB6, 0x7C, 0xC2, 0x00, 0xC5, 0x9F, 0x3C,
- 0x8D, 0x77, 0xEE, 0xF8, 0x49, 0x4F, 0x29, 0xCD
- },
- {
- 0x15, 0x6D, 0x57, 0x47, 0xD0, 0xC9, 0x9C, 0x7F,
- 0x27, 0x09, 0x7D, 0x7B, 0x7E, 0x00, 0x2B, 0x2E,
- 0x18, 0x5C, 0xB7, 0x2D, 0x8D, 0xD7, 0xEB, 0x42,
- 0x4A, 0x03, 0x21, 0x52, 0x81, 0x61, 0x21, 0x9F
- },
- {
- 0x20, 0xDD, 0xD1, 0xED, 0x9B, 0x1C, 0xA8, 0x03,
- 0x94, 0x6D, 0x64, 0xA8, 0x3A, 0xE4, 0x65, 0x9D,
- 0xA6, 0x7F, 0xBA, 0x7A, 0x1A, 0x3E, 0xDD, 0xB1,
- 0xE1, 0x03, 0xC0, 0xF5, 0xE0, 0x3E, 0x3A, 0x2C
- },
- {
- 0xF0, 0xAF, 0x60, 0x4D, 0x3D, 0xAB, 0xBF, 0x9A,
- 0x0F, 0x2A, 0x7D, 0x3D, 0xDA, 0x6B, 0xD3, 0x8B,
- 0xBA, 0x72, 0xC6, 0xD0, 0x9B, 0xE4, 0x94, 0xFC,
- 0xEF, 0x71, 0x3F, 0xF1, 0x01, 0x89, 0xB6, 0xE6
- },
- {
- 0x98, 0x02, 0xBB, 0x87, 0xDE, 0xF4, 0xCC, 0x10,
- 0xC4, 0xA5, 0xFD, 0x49, 0xAA, 0x58, 0xDF, 0xE2,
- 0xF3, 0xFD, 0xDB, 0x46, 0xB4, 0x70, 0x88, 0x14,
- 0xEA, 0xD8, 0x1D, 0x23, 0xBA, 0x95, 0x13, 0x9B
- },
- {
- 0x4F, 0x8C, 0xE1, 0xE5, 0x1D, 0x2F, 0xE7, 0xF2,
- 0x40, 0x43, 0xA9, 0x04, 0xD8, 0x98, 0xEB, 0xFC,
- 0x91, 0x97, 0x54, 0x18, 0x75, 0x34, 0x13, 0xAA,
- 0x09, 0x9B, 0x79, 0x5E, 0xCB, 0x35, 0xCE, 0xDB
- },
- {
- 0xBD, 0xDC, 0x65, 0x14, 0xD7, 0xEE, 0x6A, 0xCE,
- 0x0A, 0x4A, 0xC1, 0xD0, 0xE0, 0x68, 0x11, 0x22,
- 0x88, 0xCB, 0xCF, 0x56, 0x04, 0x54, 0x64, 0x27,
- 0x05, 0x63, 0x01, 0x77, 0xCB, 0xA6, 0x08, 0xBD
- },
- {
- 0xD6, 0x35, 0x99, 0x4F, 0x62, 0x91, 0x51, 0x7B,
- 0x02, 0x81, 0xFF, 0xDD, 0x49, 0x6A, 0xFA, 0x86,
- 0x27, 0x12, 0xE5, 0xB3, 0xC4, 0xE5, 0x2E, 0x4C,
- 0xD5, 0xFD, 0xAE, 0x8C, 0x0E, 0x72, 0xFB, 0x08
- },
- {
- 0x87, 0x8D, 0x9C, 0xA6, 0x00, 0xCF, 0x87, 0xE7,
- 0x69, 0xCC, 0x30, 0x5C, 0x1B, 0x35, 0x25, 0x51,
- 0x86, 0x61, 0x5A, 0x73, 0xA0, 0xDA, 0x61, 0x3B,
- 0x5F, 0x1C, 0x98, 0xDB, 0xF8, 0x12, 0x83, 0xEA
- },
- {
- 0xA6, 0x4E, 0xBE, 0x5D, 0xC1, 0x85, 0xDE, 0x9F,
- 0xDD, 0xE7, 0x60, 0x7B, 0x69, 0x98, 0x70, 0x2E,
- 0xB2, 0x34, 0x56, 0x18, 0x49, 0x57, 0x30, 0x7D,
- 0x2F, 0xA7, 0x2E, 0x87, 0xA4, 0x77, 0x02, 0xD6
- },
- {
- 0xCE, 0x50, 0xEA, 0xB7, 0xB5, 0xEB, 0x52, 0xBD,
- 0xC9, 0xAD, 0x8E, 0x5A, 0x48, 0x0A, 0xB7, 0x80,
- 0xCA, 0x93, 0x20, 0xE4, 0x43, 0x60, 0xB1, 0xFE,
- 0x37, 0xE0, 0x3F, 0x2F, 0x7A, 0xD7, 0xDE, 0x01
- },
- {
- 0xEE, 0xDD, 0xB7, 0xC0, 0xDB, 0x6E, 0x30, 0xAB,
- 0xE6, 0x6D, 0x79, 0xE3, 0x27, 0x51, 0x1E, 0x61,
- 0xFC, 0xEB, 0xBC, 0x29, 0xF1, 0x59, 0xB4, 0x0A,
- 0x86, 0xB0, 0x46, 0xEC, 0xF0, 0x51, 0x38, 0x23
- },
- {
- 0x78, 0x7F, 0xC9, 0x34, 0x40, 0xC1, 0xEC, 0x96,
- 0xB5, 0xAD, 0x01, 0xC1, 0x6C, 0xF7, 0x79, 0x16,
- 0xA1, 0x40, 0x5F, 0x94, 0x26, 0x35, 0x6E, 0xC9,
- 0x21, 0xD8, 0xDF, 0xF3, 0xEA, 0x63, 0xB7, 0xE0
- },
- {
- 0x7F, 0x0D, 0x5E, 0xAB, 0x47, 0xEE, 0xFD, 0xA6,
- 0x96, 0xC0, 0xBF, 0x0F, 0xBF, 0x86, 0xAB, 0x21,
- 0x6F, 0xCE, 0x46, 0x1E, 0x93, 0x03, 0xAB, 0xA6,
- 0xAC, 0x37, 0x41, 0x20, 0xE8, 0x90, 0xE8, 0xDF
- },
- {
- 0xB6, 0x80, 0x04, 0xB4, 0x2F, 0x14, 0xAD, 0x02,
- 0x9F, 0x4C, 0x2E, 0x03, 0xB1, 0xD5, 0xEB, 0x76,
- 0xD5, 0x71, 0x60, 0xE2, 0x64, 0x76, 0xD2, 0x11,
- 0x31, 0xBE, 0xF2, 0x0A, 0xDA, 0x7D, 0x27, 0xF4
- },
- {
- 0xB0, 0xC4, 0xEB, 0x18, 0xAE, 0x25, 0x0B, 0x51,
- 0xA4, 0x13, 0x82, 0xEA, 0xD9, 0x2D, 0x0D, 0xC7,
- 0x45, 0x5F, 0x93, 0x79, 0xFC, 0x98, 0x84, 0x42,
- 0x8E, 0x47, 0x70, 0x60, 0x8D, 0xB0, 0xFA, 0xEC
- },
- {
- 0xF9, 0x2B, 0x7A, 0x87, 0x0C, 0x05, 0x9F, 0x4D,
- 0x46, 0x46, 0x4C, 0x82, 0x4E, 0xC9, 0x63, 0x55,
- 0x14, 0x0B, 0xDC, 0xE6, 0x81, 0x32, 0x2C, 0xC3,
- 0xA9, 0x92, 0xFF, 0x10, 0x3E, 0x3F, 0xEA, 0x52
- },
- {
- 0x53, 0x64, 0x31, 0x26, 0x14, 0x81, 0x33, 0x98,
- 0xCC, 0x52, 0x5D, 0x4C, 0x4E, 0x14, 0x6E, 0xDE,
- 0xB3, 0x71, 0x26, 0x5F, 0xBA, 0x19, 0x13, 0x3A,
- 0x2C, 0x3D, 0x21, 0x59, 0x29, 0x8A, 0x17, 0x42
- },
- {
- 0xF6, 0x62, 0x0E, 0x68, 0xD3, 0x7F, 0xB2, 0xAF,
- 0x50, 0x00, 0xFC, 0x28, 0xE2, 0x3B, 0x83, 0x22,
- 0x97, 0xEC, 0xD8, 0xBC, 0xE9, 0x9E, 0x8B, 0xE4,
- 0xD0, 0x4E, 0x85, 0x30, 0x9E, 0x3D, 0x33, 0x74
- },
- {
- 0x53, 0x16, 0xA2, 0x79, 0x69, 0xD7, 0xFE, 0x04,
- 0xFF, 0x27, 0xB2, 0x83, 0x96, 0x1B, 0xFF, 0xC3,
- 0xBF, 0x5D, 0xFB, 0x32, 0xFB, 0x6A, 0x89, 0xD1,
- 0x01, 0xC6, 0xC3, 0xB1, 0x93, 0x7C, 0x28, 0x71
- },
- {
- 0x81, 0xD1, 0x66, 0x4F, 0xDF, 0x3C, 0xB3, 0x3C,
- 0x24, 0xEE, 0xBA, 0xC0, 0xBD, 0x64, 0x24, 0x4B,
- 0x77, 0xC4, 0xAB, 0xEA, 0x90, 0xBB, 0xE8, 0xB5,
- 0xEE, 0x0B, 0x2A, 0xAF, 0xCF, 0x2D, 0x6A, 0x53
- },
- {
- 0x34, 0x57, 0x82, 0xF2, 0x95, 0xB0, 0x88, 0x03,
- 0x52, 0xE9, 0x24, 0xA0, 0x46, 0x7B, 0x5F, 0xBC,
- 0x3E, 0x8F, 0x3B, 0xFB, 0xC3, 0xC7, 0xE4, 0x8B,
- 0x67, 0x09, 0x1F, 0xB5, 0xE8, 0x0A, 0x94, 0x42
- },
- {
- 0x79, 0x41, 0x11, 0xEA, 0x6C, 0xD6, 0x5E, 0x31,
- 0x1F, 0x74, 0xEE, 0x41, 0xD4, 0x76, 0xCB, 0x63,
- 0x2C, 0xE1, 0xE4, 0xB0, 0x51, 0xDC, 0x1D, 0x9E,
- 0x9D, 0x06, 0x1A, 0x19, 0xE1, 0xD0, 0xBB, 0x49
- },
- {
- 0x2A, 0x85, 0xDA, 0xF6, 0x13, 0x88, 0x16, 0xB9,
- 0x9B, 0xF8, 0xD0, 0x8B, 0xA2, 0x11, 0x4B, 0x7A,
- 0xB0, 0x79, 0x75, 0xA7, 0x84, 0x20, 0xC1, 0xA3,
- 0xB0, 0x6A, 0x77, 0x7C, 0x22, 0xDD, 0x8B, 0xCB
- },
- {
- 0x89, 0xB0, 0xD5, 0xF2, 0x89, 0xEC, 0x16, 0x40,
- 0x1A, 0x06, 0x9A, 0x96, 0x0D, 0x0B, 0x09, 0x3E,
- 0x62, 0x5D, 0xA3, 0xCF, 0x41, 0xEE, 0x29, 0xB5,
- 0x9B, 0x93, 0x0C, 0x58, 0x20, 0x14, 0x54, 0x55
- },
- {
- 0xD0, 0xFD, 0xCB, 0x54, 0x39, 0x43, 0xFC, 0x27,
- 0xD2, 0x08, 0x64, 0xF5, 0x21, 0x81, 0x47, 0x1B,
- 0x94, 0x2C, 0xC7, 0x7C, 0xA6, 0x75, 0xBC, 0xB3,
- 0x0D, 0xF3, 0x1D, 0x35, 0x8E, 0xF7, 0xB1, 0xEB
- },
- {
- 0xB1, 0x7E, 0xA8, 0xD7, 0x70, 0x63, 0xC7, 0x09,
- 0xD4, 0xDC, 0x6B, 0x87, 0x94, 0x13, 0xC3, 0x43,
- 0xE3, 0x79, 0x0E, 0x9E, 0x62, 0xCA, 0x85, 0xB7,
- 0x90, 0x0B, 0x08, 0x6F, 0x6B, 0x75, 0xC6, 0x72
- },
- {
- 0xE7, 0x1A, 0x3E, 0x2C, 0x27, 0x4D, 0xB8, 0x42,
- 0xD9, 0x21, 0x14, 0xF2, 0x17, 0xE2, 0xC0, 0xEA,
- 0xC8, 0xB4, 0x50, 0x93, 0xFD, 0xFD, 0x9D, 0xF4,
- 0xCA, 0x71, 0x62, 0x39, 0x48, 0x62, 0xD5, 0x01
- },
- {
- 0xC0, 0x47, 0x67, 0x59, 0xAB, 0x7A, 0xA3, 0x33,
- 0x23, 0x4F, 0x6B, 0x44, 0xF5, 0xFD, 0x85, 0x83,
- 0x90, 0xEC, 0x23, 0x69, 0x4C, 0x62, 0x2C, 0xB9,
- 0x86, 0xE7, 0x69, 0xC7, 0x8E, 0xDD, 0x73, 0x3E
- },
- {
- 0x9A, 0xB8, 0xEA, 0xBB, 0x14, 0x16, 0x43, 0x4D,
- 0x85, 0x39, 0x13, 0x41, 0xD5, 0x69, 0x93, 0xC5,
- 0x54, 0x58, 0x16, 0x7D, 0x44, 0x18, 0xB1, 0x9A,
- 0x0F, 0x2A, 0xD8, 0xB7, 0x9A, 0x83, 0xA7, 0x5B
- },
- {
- 0x79, 0x92, 0xD0, 0xBB, 0xB1, 0x5E, 0x23, 0x82,
- 0x6F, 0x44, 0x3E, 0x00, 0x50, 0x5D, 0x68, 0xD3,
- 0xED, 0x73, 0x72, 0x99, 0x5A, 0x5C, 0x3E, 0x49,
- 0x86, 0x54, 0x10, 0x2F, 0xBC, 0xD0, 0x96, 0x4E
- },
- {
- 0xC0, 0x21, 0xB3, 0x00, 0x85, 0x15, 0x14, 0x35,
- 0xDF, 0x33, 0xB0, 0x07, 0xCC, 0xEC, 0xC6, 0x9D,
- 0xF1, 0x26, 0x9F, 0x39, 0xBA, 0x25, 0x09, 0x2B,
- 0xED, 0x59, 0xD9, 0x32, 0xAC, 0x0F, 0xDC, 0x28
- },
- {
- 0x91, 0xA2, 0x5E, 0xC0, 0xEC, 0x0D, 0x9A, 0x56,
- 0x7F, 0x89, 0xC4, 0xBF, 0xE1, 0xA6, 0x5A, 0x0E,
- 0x43, 0x2D, 0x07, 0x06, 0x4B, 0x41, 0x90, 0xE2,
- 0x7D, 0xFB, 0x81, 0x90, 0x1F, 0xD3, 0x13, 0x9B
- },
- {
- 0x59, 0x50, 0xD3, 0x9A, 0x23, 0xE1, 0x54, 0x5F,
- 0x30, 0x12, 0x70, 0xAA, 0x1A, 0x12, 0xF2, 0xE6,
- 0xC4, 0x53, 0x77, 0x6E, 0x4D, 0x63, 0x55, 0xDE,
- 0x42, 0x5C, 0xC1, 0x53, 0xF9, 0x81, 0x88, 0x67
- },
- {
- 0xD7, 0x9F, 0x14, 0x72, 0x0C, 0x61, 0x0A, 0xF1,
- 0x79, 0xA3, 0x76, 0x5D, 0x4B, 0x7C, 0x09, 0x68,
- 0xF9, 0x77, 0x96, 0x2D, 0xBF, 0x65, 0x5B, 0x52,
- 0x12, 0x72, 0xB6, 0xF1, 0xE1, 0x94, 0x48, 0x8E
- },
- {
- 0xE9, 0x53, 0x1B, 0xFC, 0x8B, 0x02, 0x99, 0x5A,
- 0xEA, 0xA7, 0x5B, 0xA2, 0x70, 0x31, 0xFA, 0xDB,
- 0xCB, 0xF4, 0xA0, 0xDA, 0xB8, 0x96, 0x1D, 0x92,
- 0x96, 0xCD, 0x7E, 0x84, 0xD2, 0x5D, 0x60, 0x06
- },
- {
- 0x34, 0xE9, 0xC2, 0x6A, 0x01, 0xD7, 0xF1, 0x61,
- 0x81, 0xB4, 0x54, 0xA9, 0xD1, 0x62, 0x3C, 0x23,
- 0x3C, 0xB9, 0x9D, 0x31, 0xC6, 0x94, 0x65, 0x6E,
- 0x94, 0x13, 0xAC, 0xA3, 0xE9, 0x18, 0x69, 0x2F
- },
- {
- 0xD9, 0xD7, 0x42, 0x2F, 0x43, 0x7B, 0xD4, 0x39,
- 0xDD, 0xD4, 0xD8, 0x83, 0xDA, 0xE2, 0xA0, 0x83,
- 0x50, 0x17, 0x34, 0x14, 0xBE, 0x78, 0x15, 0x51,
- 0x33, 0xFF, 0xF1, 0x96, 0x4C, 0x3D, 0x79, 0x72
- },
- {
- 0x4A, 0xEE, 0x0C, 0x7A, 0xAF, 0x07, 0x54, 0x14,
- 0xFF, 0x17, 0x93, 0xEA, 0xD7, 0xEA, 0xCA, 0x60,
- 0x17, 0x75, 0xC6, 0x15, 0xDB, 0xD6, 0x0B, 0x64,
- 0x0B, 0x0A, 0x9F, 0x0C, 0xE5, 0x05, 0xD4, 0x35
- },
- {
- 0x6B, 0xFD, 0xD1, 0x54, 0x59, 0xC8, 0x3B, 0x99,
- 0xF0, 0x96, 0xBF, 0xB4, 0x9E, 0xE8, 0x7B, 0x06,
- 0x3D, 0x69, 0xC1, 0x97, 0x4C, 0x69, 0x28, 0xAC,
- 0xFC, 0xFB, 0x40, 0x99, 0xF8, 0xC4, 0xEF, 0x67
- },
- {
- 0x9F, 0xD1, 0xC4, 0x08, 0xFD, 0x75, 0xC3, 0x36,
- 0x19, 0x3A, 0x2A, 0x14, 0xD9, 0x4F, 0x6A, 0xF5,
- 0xAD, 0xF0, 0x50, 0xB8, 0x03, 0x87, 0xB4, 0xB0,
- 0x10, 0xFB, 0x29, 0xF4, 0xCC, 0x72, 0x70, 0x7C
- },
- {
- 0x13, 0xC8, 0x84, 0x80, 0xA5, 0xD0, 0x0D, 0x6C,
- 0x8C, 0x7A, 0xD2, 0x11, 0x0D, 0x76, 0xA8, 0x2D,
- 0x9B, 0x70, 0xF4, 0xFA, 0x66, 0x96, 0xD4, 0xE5,
- 0xDD, 0x42, 0xA0, 0x66, 0xDC, 0xAF, 0x99, 0x20
- },
- {
- 0x82, 0x0E, 0x72, 0x5E, 0xE2, 0x5F, 0xE8, 0xFD,
- 0x3A, 0x8D, 0x5A, 0xBE, 0x4C, 0x46, 0xC3, 0xBA,
- 0x88, 0x9D, 0xE6, 0xFA, 0x91, 0x91, 0xAA, 0x22,
- 0xBA, 0x67, 0xD5, 0x70, 0x54, 0x21, 0x54, 0x2B
- },
- {
- 0x32, 0xD9, 0x3A, 0x0E, 0xB0, 0x2F, 0x42, 0xFB,
- 0xBC, 0xAF, 0x2B, 0xAD, 0x00, 0x85, 0xB2, 0x82,
- 0xE4, 0x60, 0x46, 0xA4, 0xDF, 0x7A, 0xD1, 0x06,
- 0x57, 0xC9, 0xD6, 0x47, 0x63, 0x75, 0xB9, 0x3E
- },
- {
- 0xAD, 0xC5, 0x18, 0x79, 0x05, 0xB1, 0x66, 0x9C,
- 0xD8, 0xEC, 0x9C, 0x72, 0x1E, 0x19, 0x53, 0x78,
- 0x6B, 0x9D, 0x89, 0xA9, 0xBA, 0xE3, 0x07, 0x80,
- 0xF1, 0xE1, 0xEA, 0xB2, 0x4A, 0x00, 0x52, 0x3C
- },
- {
- 0xE9, 0x07, 0x56, 0xFF, 0x7F, 0x9A, 0xD8, 0x10,
- 0xB2, 0x39, 0xA1, 0x0C, 0xED, 0x2C, 0xF9, 0xB2,
- 0x28, 0x43, 0x54, 0xC1, 0xF8, 0xC7, 0xE0, 0xAC,
- 0xCC, 0x24, 0x61, 0xDC, 0x79, 0x6D, 0x6E, 0x89
- },
- {
- 0x12, 0x51, 0xF7, 0x6E, 0x56, 0x97, 0x84, 0x81,
- 0x87, 0x53, 0x59, 0x80, 0x1D, 0xB5, 0x89, 0xA0,
- 0xB2, 0x2F, 0x86, 0xD8, 0xD6, 0x34, 0xDC, 0x04,
- 0x50, 0x6F, 0x32, 0x2E, 0xD7, 0x8F, 0x17, 0xE8
- },
- {
- 0x3A, 0xFA, 0x89, 0x9F, 0xD9, 0x80, 0xE7, 0x3E,
- 0xCB, 0x7F, 0x4D, 0x8B, 0x8F, 0x29, 0x1D, 0xC9,
- 0xAF, 0x79, 0x6B, 0xC6, 0x5D, 0x27, 0xF9, 0x74,
- 0xC6, 0xF1, 0x93, 0xC9, 0x19, 0x1A, 0x09, 0xFD
- },
- {
- 0xAA, 0x30, 0x5B, 0xE2, 0x6E, 0x5D, 0xED, 0xDC,
- 0x3C, 0x10, 0x10, 0xCB, 0xC2, 0x13, 0xF9, 0x5F,
- 0x05, 0x1C, 0x78, 0x5C, 0x5B, 0x43, 0x1E, 0x6A,
- 0x7C, 0xD0, 0x48, 0xF1, 0x61, 0x78, 0x75, 0x28
- },
- {
- 0x8E, 0xA1, 0x88, 0x4F, 0xF3, 0x2E, 0x9D, 0x10,
- 0xF0, 0x39, 0xB4, 0x07, 0xD0, 0xD4, 0x4E, 0x7E,
- 0x67, 0x0A, 0xBD, 0x88, 0x4A, 0xEE, 0xE0, 0xFB,
- 0x75, 0x7A, 0xE9, 0x4E, 0xAA, 0x97, 0x37, 0x3D
- },
- {
- 0xD4, 0x82, 0xB2, 0x15, 0x5D, 0x4D, 0xEC, 0x6B,
- 0x47, 0x36, 0xA1, 0xF1, 0x61, 0x7B, 0x53, 0xAA,
- 0xA3, 0x73, 0x10, 0x27, 0x7D, 0x3F, 0xEF, 0x0C,
- 0x37, 0xAD, 0x41, 0x76, 0x8F, 0xC2, 0x35, 0xB4
- },
- {
- 0x4D, 0x41, 0x39, 0x71, 0x38, 0x7E, 0x7A, 0x88,
- 0x98, 0xA8, 0xDC, 0x2A, 0x27, 0x50, 0x07, 0x78,
- 0x53, 0x9E, 0xA2, 0x14, 0xA2, 0xDF, 0xE9, 0xB3,
- 0xD7, 0xE8, 0xEB, 0xDC, 0xE5, 0xCF, 0x3D, 0xB3
- },
- {
- 0x69, 0x6E, 0x5D, 0x46, 0xE6, 0xC5, 0x7E, 0x87,
- 0x96, 0xE4, 0x73, 0x5D, 0x08, 0x91, 0x6E, 0x0B,
- 0x79, 0x29, 0xB3, 0xCF, 0x29, 0x8C, 0x29, 0x6D,
- 0x22, 0xE9, 0xD3, 0x01, 0x96, 0x53, 0x37, 0x1C
- },
- {
- 0x1F, 0x56, 0x47, 0xC1, 0xD3, 0xB0, 0x88, 0x22,
- 0x88, 0x85, 0x86, 0x5C, 0x89, 0x40, 0x90, 0x8B,
- 0xF4, 0x0D, 0x1A, 0x82, 0x72, 0x82, 0x19, 0x73,
- 0xB1, 0x60, 0x00, 0x8E, 0x7A, 0x3C, 0xE2, 0xEB
- },
- {
- 0xB6, 0xE7, 0x6C, 0x33, 0x0F, 0x02, 0x1A, 0x5B,
- 0xDA, 0x65, 0x87, 0x50, 0x10, 0xB0, 0xED, 0xF0,
- 0x91, 0x26, 0xC0, 0xF5, 0x10, 0xEA, 0x84, 0x90,
- 0x48, 0x19, 0x20, 0x03, 0xAE, 0xF4, 0xC6, 0x1C
- },
- {
- 0x3C, 0xD9, 0x52, 0xA0, 0xBE, 0xAD, 0xA4, 0x1A,
- 0xBB, 0x42, 0x4C, 0xE4, 0x7F, 0x94, 0xB4, 0x2B,
- 0xE6, 0x4E, 0x1F, 0xFB, 0x0F, 0xD0, 0x78, 0x22,
- 0x76, 0x80, 0x79, 0x46, 0xD0, 0xD0, 0xBC, 0x55
- },
- {
- 0x98, 0xD9, 0x26, 0x77, 0x43, 0x9B, 0x41, 0xB7,
- 0xBB, 0x51, 0x33, 0x12, 0xAF, 0xB9, 0x2B, 0xCC,
- 0x8E, 0xE9, 0x68, 0xB2, 0xE3, 0xB2, 0x38, 0xCE,
- 0xCB, 0x9B, 0x0F, 0x34, 0xC9, 0xBB, 0x63, 0xD0
- },
- {
- 0xEC, 0xBC, 0xA2, 0xCF, 0x08, 0xAE, 0x57, 0xD5,
- 0x17, 0xAD, 0x16, 0x15, 0x8A, 0x32, 0xBF, 0xA7,
- 0xDC, 0x03, 0x82, 0xEA, 0xED, 0xA1, 0x28, 0xE9,
- 0x18, 0x86, 0x73, 0x4C, 0x24, 0xA0, 0xB2, 0x9D
- },
- {
- 0x94, 0x2C, 0xC7, 0xC0, 0xB5, 0x2E, 0x2B, 0x16,
- 0xA4, 0xB8, 0x9F, 0xA4, 0xFC, 0x7E, 0x0B, 0xF6,
- 0x09, 0xE2, 0x9A, 0x08, 0xC1, 0xA8, 0x54, 0x34,
- 0x52, 0xB7, 0x7C, 0x7B, 0xFD, 0x11, 0xBB, 0x28
- },
- {
- 0x8A, 0x06, 0x5D, 0x8B, 0x61, 0xA0, 0xDF, 0xFB,
- 0x17, 0x0D, 0x56, 0x27, 0x73, 0x5A, 0x76, 0xB0,
- 0xE9, 0x50, 0x60, 0x37, 0x80, 0x8C, 0xBA, 0x16,
- 0xC3, 0x45, 0x00, 0x7C, 0x9F, 0x79, 0xCF, 0x8F
- },
- {
- 0x1B, 0x9F, 0xA1, 0x97, 0x14, 0x65, 0x9C, 0x78,
- 0xFF, 0x41, 0x38, 0x71, 0x84, 0x92, 0x15, 0x36,
- 0x10, 0x29, 0xAC, 0x80, 0x2B, 0x1C, 0xBC, 0xD5,
- 0x4E, 0x40, 0x8B, 0xD8, 0x72, 0x87, 0xF8, 0x1F
- },
- {
- 0x8D, 0xAB, 0x07, 0x1B, 0xCD, 0x6C, 0x72, 0x92,
- 0xA9, 0xEF, 0x72, 0x7B, 0x4A, 0xE0, 0xD8, 0x67,
- 0x13, 0x30, 0x1D, 0xA8, 0x61, 0x8D, 0x9A, 0x48,
- 0xAD, 0xCE, 0x55, 0xF3, 0x03, 0xA8, 0x69, 0xA1
- },
- {
- 0x82, 0x53, 0xE3, 0xE7, 0xC7, 0xB6, 0x84, 0xB9,
- 0xCB, 0x2B, 0xEB, 0x01, 0x4C, 0xE3, 0x30, 0xFF,
- 0x3D, 0x99, 0xD1, 0x7A, 0xBB, 0xDB, 0xAB, 0xE4,
- 0xF4, 0xD6, 0x74, 0xDE, 0xD5, 0x3F, 0xFC, 0x6B
- },
- {
- 0xF1, 0x95, 0xF3, 0x21, 0xE9, 0xE3, 0xD6, 0xBD,
- 0x7D, 0x07, 0x45, 0x04, 0xDD, 0x2A, 0xB0, 0xE6,
- 0x24, 0x1F, 0x92, 0xE7, 0x84, 0xB1, 0xAA, 0x27,
- 0x1F, 0xF6, 0x48, 0xB1, 0xCA, 0xB6, 0xD7, 0xF6
- },
- {
- 0x27, 0xE4, 0xCC, 0x72, 0x09, 0x0F, 0x24, 0x12,
- 0x66, 0x47, 0x6A, 0x7C, 0x09, 0x49, 0x5F, 0x2D,
- 0xB1, 0x53, 0xD5, 0xBC, 0xBD, 0x76, 0x19, 0x03,
- 0xEF, 0x79, 0x27, 0x5E, 0xC5, 0x6B, 0x2E, 0xD8
- },
- {
- 0x89, 0x9C, 0x24, 0x05, 0x78, 0x8E, 0x25, 0xB9,
- 0x9A, 0x18, 0x46, 0x35, 0x5E, 0x64, 0x6D, 0x77,
- 0xCF, 0x40, 0x00, 0x83, 0x41, 0x5F, 0x7D, 0xC5,
- 0xAF, 0xE6, 0x9D, 0x6E, 0x17, 0xC0, 0x00, 0x23
- },
- {
- 0xA5, 0x9B, 0x78, 0xC4, 0x90, 0x57, 0x44, 0x07,
- 0x6B, 0xFE, 0xE8, 0x94, 0xDE, 0x70, 0x7D, 0x4F,
- 0x12, 0x0B, 0x5C, 0x68, 0x93, 0xEA, 0x04, 0x00,
- 0x29, 0x7D, 0x0B, 0xB8, 0x34, 0x72, 0x76, 0x32
- },
- {
- 0x59, 0xDC, 0x78, 0xB1, 0x05, 0x64, 0x97, 0x07,
- 0xA2, 0xBB, 0x44, 0x19, 0xC4, 0x8F, 0x00, 0x54,
- 0x00, 0xD3, 0x97, 0x3D, 0xE3, 0x73, 0x66, 0x10,
- 0x23, 0x04, 0x35, 0xB1, 0x04, 0x24, 0xB2, 0x4F
- },
- {
- 0xC0, 0x14, 0x9D, 0x1D, 0x7E, 0x7A, 0x63, 0x53,
- 0xA6, 0xD9, 0x06, 0xEF, 0xE7, 0x28, 0xF2, 0xF3,
- 0x29, 0xFE, 0x14, 0xA4, 0x14, 0x9A, 0x3E, 0xA7,
- 0x76, 0x09, 0xBC, 0x42, 0xB9, 0x75, 0xDD, 0xFA
- },
- {
- 0xA3, 0x2F, 0x24, 0x14, 0x74, 0xA6, 0xC1, 0x69,
- 0x32, 0xE9, 0x24, 0x3B, 0xE0, 0xCF, 0x09, 0xBC,
- 0xDC, 0x7E, 0x0C, 0xA0, 0xE7, 0xA6, 0xA1, 0xB9,
- 0xB1, 0xA0, 0xF0, 0x1E, 0x41, 0x50, 0x23, 0x77
- },
- {
- 0xB2, 0x39, 0xB2, 0xE4, 0xF8, 0x18, 0x41, 0x36,
- 0x1C, 0x13, 0x39, 0xF6, 0x8E, 0x2C, 0x35, 0x9F,
- 0x92, 0x9A, 0xF9, 0xAD, 0x9F, 0x34, 0xE0, 0x1A,
- 0xAB, 0x46, 0x31, 0xAD, 0x6D, 0x55, 0x00, 0xB0
- },
- {
- 0x85, 0xFB, 0x41, 0x9C, 0x70, 0x02, 0xA3, 0xE0,
- 0xB4, 0xB6, 0xEA, 0x09, 0x3B, 0x4C, 0x1A, 0xC6,
- 0x93, 0x66, 0x45, 0xB6, 0x5D, 0xAC, 0x5A, 0xC1,
- 0x5A, 0x85, 0x28, 0xB7, 0xB9, 0x4C, 0x17, 0x54
- },
- {
- 0x96, 0x19, 0x72, 0x06, 0x25, 0xF1, 0x90, 0xB9,
- 0x3A, 0x3F, 0xAD, 0x18, 0x6A, 0xB3, 0x14, 0x18,
- 0x96, 0x33, 0xC0, 0xD3, 0xA0, 0x1E, 0x6F, 0x9B,
- 0xC8, 0xC4, 0xA8, 0xF8, 0x2F, 0x38, 0x3D, 0xBF
- },
- {
- 0x7D, 0x62, 0x0D, 0x90, 0xFE, 0x69, 0xFA, 0x46,
- 0x9A, 0x65, 0x38, 0x38, 0x89, 0x70, 0xA1, 0xAA,
- 0x09, 0xBB, 0x48, 0xA2, 0xD5, 0x9B, 0x34, 0x7B,
- 0x97, 0xE8, 0xCE, 0x71, 0xF4, 0x8C, 0x7F, 0x46
- },
- {
- 0x29, 0x43, 0x83, 0x56, 0x85, 0x96, 0xFB, 0x37,
- 0xC7, 0x5B, 0xBA, 0xCD, 0x97, 0x9C, 0x5F, 0xF6,
- 0xF2, 0x0A, 0x55, 0x6B, 0xF8, 0x87, 0x9C, 0xC7,
- 0x29, 0x24, 0x85, 0x5D, 0xF9, 0xB8, 0x24, 0x0E
- },
- {
- 0x16, 0xB1, 0x8A, 0xB3, 0x14, 0x35, 0x9C, 0x2B,
- 0x83, 0x3C, 0x1C, 0x69, 0x86, 0xD4, 0x8C, 0x55,
- 0xA9, 0xFC, 0x97, 0xCD, 0xE9, 0xA3, 0xC1, 0xF1,
- 0x0A, 0x31, 0x77, 0x14, 0x0F, 0x73, 0xF7, 0x38
- },
- {
- 0x8C, 0xBB, 0xDD, 0x14, 0xBC, 0x33, 0xF0, 0x4C,
- 0xF4, 0x58, 0x13, 0xE4, 0xA1, 0x53, 0xA2, 0x73,
- 0xD3, 0x6A, 0xDA, 0xD5, 0xCE, 0x71, 0xF4, 0x99,
- 0xEE, 0xB8, 0x7F, 0xB8, 0xAC, 0x63, 0xB7, 0x29
- },
- {
- 0x69, 0xC9, 0xA4, 0x98, 0xDB, 0x17, 0x4E, 0xCA,
- 0xEF, 0xCC, 0x5A, 0x3A, 0xC9, 0xFD, 0xED, 0xF0,
- 0xF8, 0x13, 0xA5, 0xBE, 0xC7, 0x27, 0xF1, 0xE7,
- 0x75, 0xBA, 0xBD, 0xEC, 0x77, 0x18, 0x81, 0x6E
- },
- {
- 0xB4, 0x62, 0xC3, 0xBE, 0x40, 0x44, 0x8F, 0x1D,
- 0x4F, 0x80, 0x62, 0x62, 0x54, 0xE5, 0x35, 0xB0,
- 0x8B, 0xC9, 0xCD, 0xCF, 0xF5, 0x99, 0xA7, 0x68,
- 0x57, 0x8D, 0x4B, 0x28, 0x81, 0xA8, 0xE3, 0xF0
- },
- {
- 0x55, 0x3E, 0x9D, 0x9C, 0x5F, 0x36, 0x0A, 0xC0,
- 0xB7, 0x4A, 0x7D, 0x44, 0xE5, 0xA3, 0x91, 0xDA,
- 0xD4, 0xCE, 0xD0, 0x3E, 0x0C, 0x24, 0x18, 0x3B,
- 0x7E, 0x8E, 0xCA, 0xBD, 0xF1, 0x71, 0x5A, 0x64
- },
- {
- 0x7A, 0x7C, 0x55, 0xA5, 0x6F, 0xA9, 0xAE, 0x51,
- 0xE6, 0x55, 0xE0, 0x19, 0x75, 0xD8, 0xA6, 0xFF,
- 0x4A, 0xE9, 0xE4, 0xB4, 0x86, 0xFC, 0xBE, 0x4E,
- 0xAC, 0x04, 0x45, 0x88, 0xF2, 0x45, 0xEB, 0xEA
- },
- {
- 0x2A, 0xFD, 0xF3, 0xC8, 0x2A, 0xBC, 0x48, 0x67,
- 0xF5, 0xDE, 0x11, 0x12, 0x86, 0xC2, 0xB3, 0xBE,
- 0x7D, 0x6E, 0x48, 0x65, 0x7B, 0xA9, 0x23, 0xCF,
- 0xBF, 0x10, 0x1A, 0x6D, 0xFC, 0xF9, 0xDB, 0x9A
- },
- {
- 0x41, 0x03, 0x7D, 0x2E, 0xDC, 0xDC, 0xE0, 0xC4,
- 0x9B, 0x7F, 0xB4, 0xA6, 0xAA, 0x09, 0x99, 0xCA,
- 0x66, 0x97, 0x6C, 0x74, 0x83, 0xAF, 0xE6, 0x31,
- 0xD4, 0xED, 0xA2, 0x83, 0x14, 0x4F, 0x6D, 0xFC
- },
- {
- 0xC4, 0x46, 0x6F, 0x84, 0x97, 0xCA, 0x2E, 0xEB,
- 0x45, 0x83, 0xA0, 0xB0, 0x8E, 0x9D, 0x9A, 0xC7,
- 0x43, 0x95, 0x70, 0x9F, 0xDA, 0x10, 0x9D, 0x24,
- 0xF2, 0xE4, 0x46, 0x21, 0x96, 0x77, 0x9C, 0x5D
- },
- {
- 0x75, 0xF6, 0x09, 0x33, 0x8A, 0xA6, 0x7D, 0x96,
- 0x9A, 0x2A, 0xE2, 0xA2, 0x36, 0x2B, 0x2D, 0xA9,
- 0xD7, 0x7C, 0x69, 0x5D, 0xFD, 0x1D, 0xF7, 0x22,
- 0x4A, 0x69, 0x01, 0xDB, 0x93, 0x2C, 0x33, 0x64
- },
- {
- 0x68, 0x60, 0x6C, 0xEB, 0x98, 0x9D, 0x54, 0x88,
- 0xFC, 0x7C, 0xF6, 0x49, 0xF3, 0xD7, 0xC2, 0x72,
- 0xEF, 0x05, 0x5D, 0xA1, 0xA9, 0x3F, 0xAE, 0xCD,
- 0x55, 0xFE, 0x06, 0xF6, 0x96, 0x70, 0x98, 0xCA
- },
- {
- 0x44, 0x34, 0x6B, 0xDE, 0xB7, 0xE0, 0x52, 0xF6,
- 0x25, 0x50, 0x48, 0xF0, 0xD9, 0xB4, 0x2C, 0x42,
- 0x5B, 0xAB, 0x9C, 0x3D, 0xD2, 0x41, 0x68, 0x21,
- 0x2C, 0x3E, 0xCF, 0x1E, 0xBF, 0x34, 0xE6, 0xAE
- },
- {
- 0x8E, 0x9C, 0xF6, 0xE1, 0xF3, 0x66, 0x47, 0x1F,
- 0x2A, 0xC7, 0xD2, 0xEE, 0x9B, 0x5E, 0x62, 0x66,
- 0xFD, 0xA7, 0x1F, 0x8F, 0x2E, 0x41, 0x09, 0xF2,
- 0x23, 0x7E, 0xD5, 0xF8, 0x81, 0x3F, 0xC7, 0x18
- },
- {
- 0x84, 0xBB, 0xEB, 0x84, 0x06, 0xD2, 0x50, 0x95,
- 0x1F, 0x8C, 0x1B, 0x3E, 0x86, 0xA7, 0xC0, 0x10,
- 0x08, 0x29, 0x21, 0x83, 0x3D, 0xFD, 0x95, 0x55,
- 0xA2, 0xF9, 0x09, 0xB1, 0x08, 0x6E, 0xB4, 0xB8
- },
- {
- 0xEE, 0x66, 0x6F, 0x3E, 0xEF, 0x0F, 0x7E, 0x2A,
- 0x9C, 0x22, 0x29, 0x58, 0xC9, 0x7E, 0xAF, 0x35,
- 0xF5, 0x1C, 0xED, 0x39, 0x3D, 0x71, 0x44, 0x85,
- 0xAB, 0x09, 0xA0, 0x69, 0x34, 0x0F, 0xDF, 0x88
- },
- {
- 0xC1, 0x53, 0xD3, 0x4A, 0x65, 0xC4, 0x7B, 0x4A,
- 0x62, 0xC5, 0xCA, 0xCF, 0x24, 0x01, 0x09, 0x75,
- 0xD0, 0x35, 0x6B, 0x2F, 0x32, 0xC8, 0xF5, 0xDA,
- 0x53, 0x0D, 0x33, 0x88, 0x16, 0xAD, 0x5D, 0xE6
- },
- {
- 0x9F, 0xC5, 0x45, 0x01, 0x09, 0xE1, 0xB7, 0x79,
- 0xF6, 0xC7, 0xAE, 0x79, 0xD5, 0x6C, 0x27, 0x63,
- 0x5C, 0x8D, 0xD4, 0x26, 0xC5, 0xA9, 0xD5, 0x4E,
- 0x25, 0x78, 0xDB, 0x98, 0x9B, 0x8C, 0x3B, 0x4E
- },
- {
- 0xD1, 0x2B, 0xF3, 0x73, 0x2E, 0xF4, 0xAF, 0x5C,
- 0x22, 0xFA, 0x90, 0x35, 0x6A, 0xF8, 0xFC, 0x50,
- 0xFC, 0xB4, 0x0F, 0x8F, 0x2E, 0xA5, 0xC8, 0x59,
- 0x47, 0x37, 0xA3, 0xB3, 0xD5, 0xAB, 0xDB, 0xD7
- },
- {
- 0x11, 0x03, 0x0B, 0x92, 0x89, 0xBB, 0xA5, 0xAF,
- 0x65, 0x26, 0x06, 0x72, 0xAB, 0x6F, 0xEE, 0x88,
- 0xB8, 0x74, 0x20, 0xAC, 0xEF, 0x4A, 0x17, 0x89,
- 0xA2, 0x07, 0x3B, 0x7E, 0xC2, 0xF2, 0xA0, 0x9E
- },
- {
- 0x69, 0xCB, 0x19, 0x2B, 0x84, 0x44, 0x00, 0x5C,
- 0x8C, 0x0C, 0xEB, 0x12, 0xC8, 0x46, 0x86, 0x07,
- 0x68, 0x18, 0x8C, 0xDA, 0x0A, 0xEC, 0x27, 0xA9,
- 0xC8, 0xA5, 0x5C, 0xDE, 0xE2, 0x12, 0x36, 0x32
- },
- {
- 0xDB, 0x44, 0x4C, 0x15, 0x59, 0x7B, 0x5F, 0x1A,
- 0x03, 0xD1, 0xF9, 0xED, 0xD1, 0x6E, 0x4A, 0x9F,
- 0x43, 0xA6, 0x67, 0xCC, 0x27, 0x51, 0x75, 0xDF,
- 0xA2, 0xB7, 0x04, 0xE3, 0xBB, 0x1A, 0x9B, 0x83
- },
- {
- 0x3F, 0xB7, 0x35, 0x06, 0x1A, 0xBC, 0x51, 0x9D,
- 0xFE, 0x97, 0x9E, 0x54, 0xC1, 0xEE, 0x5B, 0xFA,
- 0xD0, 0xA9, 0xD8, 0x58, 0xB3, 0x31, 0x5B, 0xAD,
- 0x34, 0xBD, 0xE9, 0x99, 0xEF, 0xD7, 0x24, 0xDD
- },
-};
-
-
-
-
-static const uint8_t blake2b_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
-{
- {
- 0x78, 0x6A, 0x02, 0xF7, 0x42, 0x01, 0x59, 0x03,
- 0xC6, 0xC6, 0xFD, 0x85, 0x25, 0x52, 0xD2, 0x72,
- 0x91, 0x2F, 0x47, 0x40, 0xE1, 0x58, 0x47, 0x61,
- 0x8A, 0x86, 0xE2, 0x17, 0xF7, 0x1F, 0x54, 0x19,
- 0xD2, 0x5E, 0x10, 0x31, 0xAF, 0xEE, 0x58, 0x53,
- 0x13, 0x89, 0x64, 0x44, 0x93, 0x4E, 0xB0, 0x4B,
- 0x90, 0x3A, 0x68, 0x5B, 0x14, 0x48, 0xB7, 0x55,
- 0xD5, 0x6F, 0x70, 0x1A, 0xFE, 0x9B, 0xE2, 0xCE
- },
- {
- 0x2F, 0xA3, 0xF6, 0x86, 0xDF, 0x87, 0x69, 0x95,
- 0x16, 0x7E, 0x7C, 0x2E, 0x5D, 0x74, 0xC4, 0xC7,
- 0xB6, 0xE4, 0x8F, 0x80, 0x68, 0xFE, 0x0E, 0x44,
- 0x20, 0x83, 0x44, 0xD4, 0x80, 0xF7, 0x90, 0x4C,
- 0x36, 0x96, 0x3E, 0x44, 0x11, 0x5F, 0xE3, 0xEB,
- 0x2A, 0x3A, 0xC8, 0x69, 0x4C, 0x28, 0xBC, 0xB4,
- 0xF5, 0xA0, 0xF3, 0x27, 0x6F, 0x2E, 0x79, 0x48,
- 0x7D, 0x82, 0x19, 0x05, 0x7A, 0x50, 0x6E, 0x4B
- },
- {
- 0x1C, 0x08, 0x79, 0x8D, 0xC6, 0x41, 0xAB, 0xA9,
- 0xDE, 0xE4, 0x35, 0xE2, 0x25, 0x19, 0xA4, 0x72,
- 0x9A, 0x09, 0xB2, 0xBF, 0xE0, 0xFF, 0x00, 0xEF,
- 0x2D, 0xCD, 0x8E, 0xD6, 0xF8, 0xA0, 0x7D, 0x15,
- 0xEA, 0xF4, 0xAE, 0xE5, 0x2B, 0xBF, 0x18, 0xAB,
- 0x56, 0x08, 0xA6, 0x19, 0x0F, 0x70, 0xB9, 0x04,
- 0x86, 0xC8, 0xA7, 0xD4, 0x87, 0x37, 0x10, 0xB1,
- 0x11, 0x5D, 0x3D, 0xEB, 0xBB, 0x43, 0x27, 0xB5
- },
- {
- 0x40, 0xA3, 0x74, 0x72, 0x73, 0x02, 0xD9, 0xA4,
- 0x76, 0x9C, 0x17, 0xB5, 0xF4, 0x09, 0xFF, 0x32,
- 0xF5, 0x8A, 0xA2, 0x4F, 0xF1, 0x22, 0xD7, 0x60,
- 0x3E, 0x4F, 0xDA, 0x15, 0x09, 0xE9, 0x19, 0xD4,
- 0x10, 0x7A, 0x52, 0xC5, 0x75, 0x70, 0xA6, 0xD9,
- 0x4E, 0x50, 0x96, 0x7A, 0xEA, 0x57, 0x3B, 0x11,
- 0xF8, 0x6F, 0x47, 0x3F, 0x53, 0x75, 0x65, 0xC6,
- 0x6F, 0x70, 0x39, 0x83, 0x0A, 0x85, 0xD1, 0x86
- },
- {
- 0x77, 0xDD, 0xF4, 0xB1, 0x44, 0x25, 0xEB, 0x3D,
- 0x05, 0x3C, 0x1E, 0x84, 0xE3, 0x46, 0x9D, 0x92,
- 0xC4, 0xCD, 0x91, 0x0E, 0xD2, 0x0F, 0x92, 0x03,
- 0x5E, 0x0C, 0x99, 0xD8, 0xA7, 0xA8, 0x6C, 0xEC,
- 0xAF, 0x69, 0xF9, 0x66, 0x3C, 0x20, 0xA7, 0xAA,
- 0x23, 0x0B, 0xC8, 0x2F, 0x60, 0xD2, 0x2F, 0xB4,
- 0xA0, 0x0B, 0x09, 0xD3, 0xEB, 0x8F, 0xC6, 0x5E,
- 0xF5, 0x47, 0xFE, 0x63, 0xC8, 0xD3, 0xDD, 0xCE
- },
- {
- 0xCB, 0xAA, 0x0B, 0xA7, 0xD4, 0x82, 0xB1, 0xF3,
- 0x01, 0x10, 0x9A, 0xE4, 0x10, 0x51, 0x99, 0x1A,
- 0x32, 0x89, 0xBC, 0x11, 0x98, 0x00, 0x5A, 0xF2,
- 0x26, 0xC5, 0xE4, 0xF1, 0x03, 0xB6, 0x65, 0x79,
- 0xF4, 0x61, 0x36, 0x10, 0x44, 0xC8, 0xBA, 0x34,
- 0x39, 0xFF, 0x12, 0xC5, 0x15, 0xFB, 0x29, 0xC5,
- 0x21, 0x61, 0xB7, 0xEB, 0x9C, 0x28, 0x37, 0xB7,
- 0x6A, 0x5D, 0xC3, 0x3F, 0x7C, 0xB2, 0xE2, 0xE8
- },
- {
- 0xF9, 0x5D, 0x45, 0xCF, 0x69, 0xAF, 0x5C, 0x20,
- 0x23, 0xBD, 0xB5, 0x05, 0x82, 0x1E, 0x62, 0xE8,
- 0x5D, 0x7C, 0xAE, 0xDF, 0x7B, 0xED, 0xA1, 0x2C,
- 0x02, 0x48, 0x77, 0x5B, 0x0C, 0x88, 0x20, 0x5E,
- 0xEB, 0x35, 0xAF, 0x3A, 0x90, 0x81, 0x6F, 0x66,
- 0x08, 0xCE, 0x7D, 0xD4, 0x4E, 0xC2, 0x8D, 0xB1,
- 0x14, 0x06, 0x14, 0xE1, 0xDD, 0xEB, 0xF3, 0xAA,
- 0x9C, 0xD1, 0x84, 0x3E, 0x0F, 0xAD, 0x2C, 0x36
- },
- {
- 0x8F, 0x94, 0x5B, 0xA7, 0x00, 0xF2, 0x53, 0x0E,
- 0x5C, 0x2A, 0x7D, 0xF7, 0xD5, 0xDC, 0xE0, 0xF8,
- 0x3F, 0x9E, 0xFC, 0x78, 0xC0, 0x73, 0xFE, 0x71,
- 0xAE, 0x1F, 0x88, 0x20, 0x4A, 0x4F, 0xD1, 0xCF,
- 0x70, 0xA0, 0x73, 0xF5, 0xD1, 0xF9, 0x42, 0xED,
- 0x62, 0x3A, 0xA1, 0x6E, 0x90, 0xA8, 0x71, 0x24,
- 0x6C, 0x90, 0xC4, 0x5B, 0x62, 0x1B, 0x34, 0x01,
- 0xA5, 0xDD, 0xBD, 0x9D, 0xF6, 0x26, 0x41, 0x65
- },
- {
- 0xE9, 0x98, 0xE0, 0xDC, 0x03, 0xEC, 0x30, 0xEB,
- 0x99, 0xBB, 0x6B, 0xFA, 0xAF, 0x66, 0x18, 0xAC,
- 0xC6, 0x20, 0x32, 0x0D, 0x72, 0x20, 0xB3, 0xAF,
- 0x2B, 0x23, 0xD1, 0x12, 0xD8, 0xE9, 0xCB, 0x12,
- 0x62, 0xF3, 0xC0, 0xD6, 0x0D, 0x18, 0x3B, 0x1E,
- 0xE7, 0xF0, 0x96, 0xD1, 0x2D, 0xAE, 0x42, 0xC9,
- 0x58, 0x41, 0x86, 0x00, 0x21, 0x4D, 0x04, 0xF5,
- 0xED, 0x6F, 0x5E, 0x71, 0x8B, 0xE3, 0x55, 0x66
- },
- {
- 0x6A, 0x9A, 0x09, 0x0C, 0x61, 0xB3, 0x41, 0x0A,
- 0xED, 0xE7, 0xEC, 0x91, 0x38, 0x14, 0x6C, 0xEB,
- 0x2C, 0x69, 0x66, 0x2F, 0x46, 0x0C, 0x3D, 0xA5,
- 0x3C, 0x65, 0x15, 0xC1, 0xEB, 0x31, 0xF4, 0x1C,
- 0xA3, 0xD2, 0x80, 0xE5, 0x67, 0x88, 0x2F, 0x95,
- 0xCF, 0x66, 0x4A, 0x94, 0x14, 0x7D, 0x78, 0xF4,
- 0x2C, 0xFC, 0x71, 0x4A, 0x40, 0xD2, 0x2E, 0xF1,
- 0x94, 0x70, 0xE0, 0x53, 0x49, 0x35, 0x08, 0xA2
- },
- {
- 0x29, 0x10, 0x25, 0x11, 0xD7, 0x49, 0xDB, 0x3C,
- 0xC9, 0xB4, 0xE3, 0x35, 0xFA, 0x1F, 0x5E, 0x8F,
- 0xAC, 0xA8, 0x42, 0x1D, 0x55, 0x8F, 0x6A, 0x3F,
- 0x33, 0x21, 0xD5, 0x0D, 0x04, 0x4A, 0x24, 0x8B,
- 0xA5, 0x95, 0xCF, 0xC3, 0xEF, 0xD3, 0xD2, 0xAD,
- 0xC9, 0x73, 0x34, 0xDA, 0x73, 0x24, 0x13, 0xF5,
- 0xCB, 0xF4, 0x75, 0x1C, 0x36, 0x2B, 0xA1, 0xD5,
- 0x38, 0x62, 0xAC, 0x1E, 0x8D, 0xAB, 0xEE, 0xE8
- },
- {
- 0xC9, 0x7A, 0x47, 0x79, 0xD4, 0x7E, 0x6F, 0x77,
- 0x72, 0x9B, 0x59, 0x17, 0xD0, 0x13, 0x8A, 0xBB,
- 0x35, 0x98, 0x0A, 0xB6, 0x41, 0xBD, 0x73, 0xA8,
- 0x85, 0x9E, 0xB1, 0xAC, 0x98, 0xC0, 0x53, 0x62,
- 0xED, 0x7D, 0x60, 0x8F, 0x2E, 0x95, 0x87, 0xD6,
- 0xBA, 0x9E, 0x27, 0x1D, 0x34, 0x31, 0x25, 0xD4,
- 0x0D, 0x93, 0x3A, 0x8E, 0xD0, 0x4E, 0xC1, 0xFE,
- 0x75, 0xEC, 0x40, 0x7C, 0x7A, 0x53, 0xC3, 0x4E
- },
- {
- 0x10, 0xF0, 0xDC, 0x91, 0xB9, 0xF8, 0x45, 0xFB,
- 0x95, 0xFA, 0xD6, 0x86, 0x0E, 0x6C, 0xE1, 0xAD,
- 0xFA, 0x00, 0x2C, 0x7F, 0xC3, 0x27, 0x11, 0x6D,
- 0x44, 0xD0, 0x47, 0xCD, 0x7D, 0x58, 0x70, 0xD7,
- 0x72, 0xBB, 0x12, 0xB5, 0xFA, 0xC0, 0x0E, 0x02,
- 0xB0, 0x8A, 0xC2, 0xA0, 0x17, 0x4D, 0x04, 0x46,
- 0xC3, 0x6A, 0xB3, 0x5F, 0x14, 0xCA, 0x31, 0x89,
- 0x4C, 0xD6, 0x1C, 0x78, 0xC8, 0x49, 0xB4, 0x8A
- },
- {
- 0xDE, 0xA9, 0x10, 0x1C, 0xAC, 0x62, 0xB8, 0xF6,
- 0xA3, 0xC6, 0x50, 0xF9, 0x0E, 0xEA, 0x5B, 0xFA,
- 0xE2, 0x65, 0x3A, 0x4E, 0xAF, 0xD6, 0x3A, 0x6D,
- 0x1F, 0x0F, 0x13, 0x2D, 0xB9, 0xE4, 0xF2, 0xB1,
- 0xB6, 0x62, 0x43, 0x2E, 0xC8, 0x5B, 0x17, 0xBC,
- 0xAC, 0x41, 0xE7, 0x75, 0x63, 0x78, 0x81, 0xF6,
- 0xAA, 0xB3, 0x8D, 0xD6, 0x6D, 0xCB, 0xD0, 0x80,
- 0xF0, 0x99, 0x0A, 0x7A, 0x6E, 0x98, 0x54, 0xFE
- },
- {
- 0x44, 0x1F, 0xFA, 0xA0, 0x8C, 0xD7, 0x9D, 0xFF,
- 0x4A, 0xFC, 0x9B, 0x9E, 0x5B, 0x56, 0x20, 0xEE,
- 0xC0, 0x86, 0x73, 0x0C, 0x25, 0xF6, 0x61, 0xB1,
- 0xD6, 0xFB, 0xFB, 0xD1, 0xCE, 0xC3, 0x14, 0x8D,
- 0xD7, 0x22, 0x58, 0xC6, 0x56, 0x41, 0xF2, 0xFC,
- 0xA5, 0xEB, 0x15, 0x5F, 0xAD, 0xBC, 0xAB, 0xB1,
- 0x3C, 0x6E, 0x21, 0xDC, 0x11, 0xFA, 0xF7, 0x2C,
- 0x2A, 0x28, 0x1B, 0x7D, 0x56, 0x14, 0x5F, 0x19
- },
- {
- 0x44, 0x4B, 0x24, 0x0F, 0xE3, 0xED, 0x86, 0xD0,
- 0xE2, 0xEF, 0x4C, 0xE7, 0xD8, 0x51, 0xED, 0xDE,
- 0x22, 0x15, 0x55, 0x82, 0xAA, 0x09, 0x14, 0x79,
- 0x7B, 0x72, 0x6C, 0xD0, 0x58, 0xB6, 0xF4, 0x59,
- 0x32, 0xE0, 0xE1, 0x29, 0x51, 0x68, 0x76, 0x52,
- 0x7B, 0x1D, 0xD8, 0x8F, 0xC6, 0x6D, 0x71, 0x19,
- 0xF4, 0xAB, 0x3B, 0xED, 0x93, 0xA6, 0x1A, 0x0E,
- 0x2D, 0x2D, 0x2A, 0xEA, 0xC3, 0x36, 0xD9, 0x58
- },
- {
- 0xBF, 0xBA, 0xBB, 0xEF, 0x45, 0x55, 0x4C, 0xCF,
- 0xA0, 0xDC, 0x83, 0x75, 0x2A, 0x19, 0xCC, 0x35,
- 0xD5, 0x92, 0x09, 0x56, 0xB3, 0x01, 0xD5, 0x58,
- 0xD7, 0x72, 0x28, 0x2B, 0xC8, 0x67, 0x00, 0x91,
- 0x68, 0xE9, 0xE9, 0x86, 0x06, 0xBB, 0x5B, 0xA7,
- 0x3A, 0x38, 0x5D, 0xE5, 0x74, 0x92, 0x28, 0xC9,
- 0x25, 0xA8, 0x50, 0x19, 0xB7, 0x1F, 0x72, 0xFE,
- 0x29, 0xB3, 0xCD, 0x37, 0xCA, 0x52, 0xEF, 0xE6
- },
- {
- 0x9C, 0x4D, 0x0C, 0x3E, 0x1C, 0xDB, 0xBF, 0x48,
- 0x5B, 0xEC, 0x86, 0xF4, 0x1C, 0xEC, 0x7C, 0x98,
- 0x37, 0x3F, 0x0E, 0x09, 0xF3, 0x92, 0x84, 0x9A,
- 0xAA, 0x22, 0x9E, 0xBF, 0xBF, 0x39, 0x7B, 0x22,
- 0x08, 0x55, 0x29, 0xCB, 0x7E, 0xF3, 0x9F, 0x9C,
- 0x7C, 0x22, 0x22, 0xA5, 0x14, 0x18, 0x2B, 0x1E,
- 0xFF, 0xAA, 0x17, 0x8C, 0xC3, 0x68, 0x7B, 0x1B,
- 0x2B, 0x6C, 0xBC, 0xB6, 0xFD, 0xEB, 0x96, 0xF8
- },
- {
- 0x47, 0x71, 0x76, 0xB3, 0xBF, 0xCB, 0xAD, 0xD7,
- 0x65, 0x7C, 0x23, 0xC2, 0x46, 0x25, 0xE4, 0xD0,
- 0xD6, 0x74, 0xD1, 0x86, 0x8F, 0x00, 0x60, 0x06,
- 0x39, 0x8A, 0xF9, 0x7A, 0xA4, 0x18, 0x77, 0xC8,
- 0xE7, 0x0D, 0x3D, 0x14, 0xC3, 0xBB, 0xC9, 0xBB,
- 0xCD, 0xCE, 0xA8, 0x01, 0xBD, 0x0E, 0x15, 0x99,
- 0xAF, 0x1F, 0x3E, 0xEC, 0x67, 0x40, 0x51, 0x70,
- 0xF4, 0xE2, 0x6C, 0x96, 0x4A, 0x57, 0xA8, 0xB7
- },
- {
- 0xA7, 0x8C, 0x49, 0x0E, 0xDA, 0x31, 0x73, 0xBB,
- 0x3F, 0x10, 0xDE, 0xE5, 0x2F, 0x11, 0x0F, 0xB1,
- 0xC0, 0x8E, 0x03, 0x02, 0x23, 0x0B, 0x85, 0xDD,
- 0xD7, 0xC1, 0x12, 0x57, 0xD9, 0x2D, 0xE1, 0x48,
- 0x78, 0x5E, 0xF0, 0x0C, 0x03, 0x9C, 0x0B, 0xB8,
- 0xEB, 0x98, 0x08, 0xA3, 0x5B, 0x2D, 0x8C, 0x08,
- 0x0F, 0x57, 0x28, 0x59, 0x71, 0x4C, 0x9D, 0x40,
- 0x69, 0xC5, 0xBC, 0xAF, 0x09, 0x0E, 0x89, 0x8E
- },
- {
- 0x58, 0xD0, 0x23, 0x39, 0x7B, 0xEB, 0x5B, 0x41,
- 0x45, 0xCB, 0x22, 0x55, 0xB0, 0x7D, 0x74, 0x29,
- 0x0B, 0x36, 0xD9, 0xFD, 0x1E, 0x59, 0x4A, 0xFB,
- 0xD8, 0xEE, 0xA4, 0x7C, 0x20, 0x5B, 0x2E, 0xFB,
- 0xFE, 0x6F, 0x46, 0x19, 0x0F, 0xAF, 0x95, 0xAF,
- 0x50, 0x4A, 0xB0, 0x72, 0xE3, 0x6F, 0x6C, 0x85,
- 0xD7, 0x67, 0xA3, 0x21, 0xBF, 0xD7, 0xF2, 0x26,
- 0x87, 0xA4, 0xAB, 0xBF, 0x49, 0x4A, 0x68, 0x9C
- },
- {
- 0x40, 0x01, 0xEC, 0x74, 0xD5, 0xA4, 0x6F, 0xD2,
- 0x9C, 0x2C, 0x3C, 0xDB, 0xE5, 0xD1, 0xB9, 0xF2,
- 0x0E, 0x51, 0xA9, 0x41, 0xBE, 0x98, 0xD2, 0xA4,
- 0xE1, 0xE2, 0xFB, 0xF8, 0x66, 0xA6, 0x72, 0x12,
- 0x1D, 0xB6, 0xF8, 0x1A, 0x51, 0x4C, 0xFD, 0x10,
- 0xE7, 0x35, 0x8D, 0x57, 0x1B, 0xDB, 0xA4, 0x8E,
- 0x4C, 0xE7, 0x08, 0xB9, 0xD1, 0x24, 0x89, 0x4B,
- 0xC0, 0xB5, 0xED, 0x55, 0x49, 0x35, 0xF7, 0x3A
- },
- {
- 0xCC, 0xD1, 0xB2, 0x2D, 0xAB, 0x65, 0x11, 0x22,
- 0x5D, 0x24, 0x01, 0xEA, 0x2D, 0x86, 0x25, 0xD2,
- 0x06, 0xA1, 0x24, 0x73, 0xCC, 0x73, 0x2B, 0x61,
- 0x5E, 0x56, 0x40, 0xCE, 0xFF, 0xF0, 0xA4, 0xAD,
- 0xF9, 0x71, 0xB0, 0xE8, 0x27, 0xA6, 0x19, 0xE0,
- 0xA8, 0x0F, 0x5D, 0xB9, 0xCC, 0xD0, 0x96, 0x23,
- 0x29, 0x01, 0x0D, 0x07, 0xE3, 0x4A, 0x20, 0x64,
- 0xE7, 0x31, 0xC5, 0x20, 0x81, 0x7B, 0x21, 0x83
- },
- {
- 0xB4, 0xA0, 0xA9, 0xE3, 0x57, 0x4E, 0xDB, 0x9E,
- 0x1E, 0x72, 0xAA, 0x31, 0xE3, 0x9C, 0xC5, 0xF3,
- 0x0D, 0xBF, 0x94, 0x3F, 0x8C, 0xAB, 0xC4, 0x08,
- 0x44, 0x96, 0x54, 0xA3, 0x91, 0x31, 0xE6, 0x6D,
- 0x71, 0x8A, 0x18, 0x81, 0x91, 0x43, 0xE3, 0xEA,
- 0x96, 0xB4, 0xA1, 0x89, 0x59, 0x88, 0xA1, 0xC0,
- 0x05, 0x6C, 0xF2, 0xB6, 0xE0, 0x4F, 0x9A, 0xC1,
- 0x9D, 0x65, 0x73, 0x83, 0xC2, 0x91, 0x0C, 0x44
- },
- {
- 0x44, 0x7B, 0xEC, 0xAB, 0x16, 0x63, 0x06, 0x08,
- 0xD3, 0x9F, 0x4F, 0x05, 0x8B, 0x16, 0xF7, 0xAF,
- 0x95, 0xB8, 0x5A, 0x76, 0xAA, 0x0F, 0xA7, 0xCE,
- 0xA2, 0xB8, 0x07, 0x55, 0xFB, 0x76, 0xE9, 0xC8,
- 0x04, 0xF2, 0xCA, 0x78, 0xF0, 0x26, 0x43, 0xC9,
- 0x15, 0xFB, 0xF2, 0xFC, 0xE5, 0xE1, 0x9D, 0xE8,
- 0x60, 0x00, 0xDE, 0x03, 0xB1, 0x88, 0x61, 0x81,
- 0x5A, 0x83, 0x12, 0x60, 0x71, 0xF8, 0xA3, 0x7B
- },
- {
- 0x54, 0xE6, 0xDA, 0xB9, 0x97, 0x73, 0x80, 0xA5,
- 0x66, 0x58, 0x22, 0xDB, 0x93, 0x37, 0x4E, 0xDA,
- 0x52, 0x8D, 0x9B, 0xEB, 0x62, 0x6F, 0x9B, 0x94,
- 0x02, 0x70, 0x71, 0xCB, 0x26, 0x67, 0x5E, 0x11,
- 0x2B, 0x4A, 0x7F, 0xEC, 0x94, 0x1E, 0xE6, 0x0A,
- 0x81, 0xE4, 0xD2, 0xEA, 0x3F, 0xF7, 0xBC, 0x52,
- 0xCF, 0xC4, 0x5D, 0xFB, 0xFE, 0x73, 0x5A, 0x1C,
- 0x64, 0x6B, 0x2C, 0xF6, 0xD6, 0xA4, 0x9B, 0x62
- },
- {
- 0x3E, 0xA6, 0x26, 0x25, 0x94, 0x9E, 0x36, 0x46,
- 0x70, 0x4D, 0x7E, 0x3C, 0x90, 0x6F, 0x82, 0xF6,
- 0xC0, 0x28, 0xF5, 0x40, 0xF5, 0xF7, 0x2A, 0x79,
- 0x4B, 0x0C, 0x57, 0xBF, 0x97, 0xB7, 0x64, 0x9B,
- 0xFE, 0xB9, 0x0B, 0x01, 0xD3, 0xCA, 0x3E, 0x82,
- 0x9D, 0xE2, 0x1B, 0x38, 0x26, 0xE6, 0xF8, 0x70,
- 0x14, 0xD3, 0xC7, 0x73, 0x50, 0xCB, 0x5A, 0x15,
- 0xFF, 0x5D, 0x46, 0x8A, 0x81, 0xBE, 0xC1, 0x60
- },
- {
- 0x21, 0x3C, 0xFE, 0x14, 0x5C, 0x54, 0xA3, 0x36,
- 0x91, 0x56, 0x99, 0x80, 0xE5, 0x93, 0x8C, 0x88,
- 0x83, 0xA4, 0x6D, 0x84, 0xD1, 0x49, 0xC8, 0xFF,
- 0x1A, 0x67, 0xCD, 0x28, 0x7B, 0x4D, 0x49, 0xC6,
- 0xDA, 0x69, 0xD3, 0xA0, 0x35, 0x44, 0x3D, 0xB0,
- 0x85, 0x98, 0x3D, 0x0E, 0xFE, 0x63, 0x70, 0x6B,
- 0xD5, 0xB6, 0xF1, 0x5A, 0x7D, 0xA4, 0x59, 0xE8,
- 0xD5, 0x0A, 0x19, 0x09, 0x3D, 0xB5, 0x5E, 0x80
- },
- {
- 0x57, 0x16, 0xC4, 0xA3, 0x8F, 0x38, 0xDB, 0x10,
- 0x4E, 0x49, 0x4A, 0x0A, 0x27, 0xCB, 0xE8, 0x9A,
- 0x26, 0xA6, 0xBB, 0x6F, 0x49, 0x9E, 0xC0, 0x1C,
- 0x8C, 0x01, 0xAA, 0x7C, 0xB8, 0x84, 0x97, 0xE7,
- 0x51, 0x48, 0xCD, 0x6E, 0xEE, 0x12, 0xA7, 0x16,
- 0x8B, 0x6F, 0x78, 0xAB, 0x74, 0xE4, 0xBE, 0x74,
- 0x92, 0x51, 0xA1, 0xA7, 0x4C, 0x38, 0xC8, 0x6D,
- 0x61, 0x29, 0x17, 0x7E, 0x28, 0x89, 0xE0, 0xB6
- },
- {
- 0x03, 0x04, 0x60, 0xA9, 0x8B, 0xDF, 0x9F, 0xF1,
- 0x7C, 0xD9, 0x64, 0x04, 0xF2, 0x8F, 0xC3, 0x04,
- 0xF2, 0xB7, 0xC0, 0x4E, 0xAA, 0xDE, 0x53, 0x67,
- 0x7F, 0xD2, 0x8F, 0x78, 0x8C, 0xA2, 0x21, 0x86,
- 0xB8, 0xBC, 0x80, 0xDD, 0x21, 0xD1, 0x7F, 0x85,
- 0x49, 0xC7, 0x11, 0xAF, 0xF0, 0xE5, 0x14, 0xE1,
- 0x9D, 0x4E, 0x15, 0xF5, 0x99, 0x02, 0x52, 0xA0,
- 0x3E, 0x08, 0x2F, 0x28, 0xDC, 0x20, 0x52, 0xF6
- },
- {
- 0x19, 0xE7, 0xF1, 0xCC, 0xEE, 0x88, 0xA1, 0x06,
- 0x72, 0x33, 0x3E, 0x39, 0x0C, 0xF2, 0x20, 0x13,
- 0xA8, 0xC7, 0x34, 0xC6, 0xCB, 0x9E, 0xAB, 0x41,
- 0xF1, 0x7C, 0x3C, 0x80, 0x32, 0xA2, 0xE4, 0xAC,
- 0xA0, 0x56, 0x9E, 0xA3, 0x6F, 0x08, 0x60, 0xC7,
- 0xA1, 0xAF, 0x28, 0xFA, 0x47, 0x68, 0x40, 0xD6,
- 0x60, 0x11, 0x16, 0x88, 0x59, 0x33, 0x4A, 0x9E,
- 0x4E, 0xF9, 0xCC, 0x2E, 0x61, 0xA0, 0xE2, 0x9E
- },
- {
- 0x29, 0xF8, 0xB8, 0xC7, 0x8C, 0x80, 0xF2, 0xFC,
- 0xB4, 0xBD, 0xF7, 0x82, 0x5E, 0xD9, 0x0A, 0x70,
- 0xD6, 0x25, 0xFF, 0x78, 0x5D, 0x26, 0x26, 0x77,
- 0xE2, 0x50, 0xC0, 0x4F, 0x37, 0x20, 0xC8, 0x88,
- 0xD0, 0x3F, 0x80, 0x45, 0xE4, 0xED, 0xF3, 0xF5,
- 0x28, 0x5B, 0xD3, 0x9D, 0x92, 0x8A, 0x10, 0xA7,
- 0xD0, 0xA5, 0xDF, 0x00, 0xB8, 0x48, 0x4A, 0xC2,
- 0x86, 0x81, 0x42, 0xA1, 0xE8, 0xBE, 0xA3, 0x51
- },
- {
- 0x5C, 0x52, 0x92, 0x0A, 0x72, 0x63, 0xE3, 0x9D,
- 0x57, 0x92, 0x0C, 0xA0, 0xCB, 0x75, 0x2A, 0xC6,
- 0xD7, 0x9A, 0x04, 0xFE, 0xF8, 0xA7, 0xA2, 0x16,
- 0xA1, 0xEC, 0xB7, 0x11, 0x5C, 0xE0, 0x6D, 0x89,
- 0xFD, 0x7D, 0x73, 0x5B, 0xD6, 0xF4, 0x27, 0x25,
- 0x55, 0xDB, 0xA2, 0x2C, 0x2D, 0x1C, 0x96, 0xE6,
- 0x35, 0x23, 0x22, 0xC6, 0x2C, 0x56, 0x30, 0xFD,
- 0xE0, 0xF4, 0x77, 0x7A, 0x76, 0xC3, 0xDE, 0x2C
- },
- {
- 0x83, 0xB0, 0x98, 0xF2, 0x62, 0x25, 0x1B, 0xF6,
- 0x60, 0x06, 0x4A, 0x9D, 0x35, 0x11, 0xCE, 0x76,
- 0x87, 0xA0, 0x9E, 0x6D, 0xFB, 0xB8, 0x78, 0x29,
- 0x9C, 0x30, 0xE9, 0x3D, 0xFB, 0x43, 0xA9, 0x31,
- 0x4D, 0xB9, 0xA6, 0x00, 0x33, 0x7D, 0xB2, 0x6E,
- 0xBE, 0xED, 0xAF, 0x22, 0x56, 0xA9, 0x6D, 0xAB,
- 0xE9, 0xB2, 0x9E, 0x75, 0x73, 0xAD, 0x11, 0xC3,
- 0x52, 0x3D, 0x87, 0x4D, 0xDE, 0x5B, 0xE7, 0xED
- },
- {
- 0x94, 0x47, 0xD9, 0x8A, 0xA5, 0xC9, 0x33, 0x13,
- 0x52, 0xF4, 0x3D, 0x3E, 0x56, 0xD0, 0xA9, 0xA9,
- 0xF9, 0x58, 0x18, 0x65, 0x99, 0x8E, 0x28, 0x85,
- 0xCC, 0x56, 0xDD, 0x0A, 0x0B, 0xD5, 0xA7, 0xB5,
- 0x05, 0x95, 0xBD, 0x10, 0xF7, 0x52, 0x9B, 0xCD,
- 0x31, 0xF3, 0x7D, 0xC1, 0x6A, 0x14, 0x65, 0xD5,
- 0x94, 0x07, 0x96, 0x67, 0xDA, 0x2A, 0x3F, 0xCB,
- 0x70, 0x40, 0x14, 0x98, 0x83, 0x7C, 0xED, 0xEB
- },
- {
- 0x86, 0x77, 0x32, 0xF2, 0xFE, 0xEB, 0x23, 0x89,
- 0x30, 0x97, 0x56, 0x1A, 0xC7, 0x10, 0xA4, 0xBF,
- 0xF4, 0x53, 0xBE, 0x9C, 0xFB, 0xED, 0xBA, 0x8B,
- 0xA3, 0x24, 0xF9, 0xD3, 0x12, 0xA8, 0x2D, 0x73,
- 0x2E, 0x1B, 0x83, 0xB8, 0x29, 0xFD, 0xCD, 0x17,
- 0x7B, 0x88, 0x2C, 0xA0, 0xC1, 0xBF, 0x54, 0x4B,
- 0x22, 0x3B, 0xE5, 0x29, 0x92, 0x4A, 0x24, 0x6A,
- 0x63, 0xCF, 0x05, 0x9B, 0xFD, 0xC5, 0x0A, 0x1B
- },
- {
- 0xF1, 0x5A, 0xB2, 0x6D, 0x4C, 0xDF, 0xCF, 0x56,
- 0xE1, 0x96, 0xBB, 0x6B, 0xA1, 0x70, 0xA8, 0xFC,
- 0xCC, 0x41, 0x4D, 0xE9, 0x28, 0x5A, 0xFD, 0x98,
- 0xA3, 0xD3, 0xCF, 0x2F, 0xB8, 0x8F, 0xCB, 0xC0,
- 0xF1, 0x98, 0x32, 0xAC, 0x43, 0x3A, 0x5B, 0x2C,
- 0xC2, 0x39, 0x2A, 0x4C, 0xE3, 0x43, 0x32, 0x98,
- 0x7D, 0x8D, 0x2C, 0x2B, 0xEF, 0x6C, 0x34, 0x66,
- 0x13, 0x8D, 0xB0, 0xC6, 0xE4, 0x2F, 0xA4, 0x7B
- },
- {
- 0x28, 0x13, 0x51, 0x6D, 0x68, 0xED, 0x4A, 0x08,
- 0xB3, 0x9D, 0x64, 0x8A, 0xA6, 0xAA, 0xCD, 0x81,
- 0xE9, 0xD6, 0x55, 0xEC, 0xD5, 0xF0, 0xC1, 0x35,
- 0x56, 0xC6, 0x0F, 0xDF, 0x0D, 0x33, 0x3E, 0xA3,
- 0x84, 0x64, 0xB3, 0x6C, 0x02, 0xBA, 0xCC, 0xD7,
- 0x46, 0xE9, 0x57, 0x5E, 0x96, 0xC6, 0x30, 0x14,
- 0xF0, 0x74, 0xAE, 0x34, 0xA0, 0xA2, 0x5B, 0x32,
- 0x0F, 0x0F, 0xBE, 0xDD, 0x6A, 0xCF, 0x76, 0x65
- },
- {
- 0xD3, 0x25, 0x9A, 0xFC, 0xA8, 0xA4, 0x89, 0x62,
- 0xFA, 0x89, 0x2E, 0x14, 0x5A, 0xCF, 0x54, 0x7F,
- 0x26, 0x92, 0x3A, 0xE8, 0xD4, 0x92, 0x4C, 0x8A,
- 0x53, 0x15, 0x81, 0x52, 0x6B, 0x04, 0xB4, 0x4C,
- 0x7A, 0xF8, 0x3C, 0x64, 0x3E, 0xF5, 0xA0, 0xBC,
- 0x28, 0x2D, 0x36, 0xF3, 0xFB, 0x04, 0xC8, 0x4E,
- 0x28, 0xB3, 0x51, 0xF4, 0x0C, 0x74, 0xB6, 0x9D,
- 0xC7, 0x84, 0x0B, 0xC7, 0x17, 0xB6, 0xF1, 0x5F
- },
- {
- 0xF1, 0x4B, 0x06, 0x1A, 0xE3, 0x59, 0xFA, 0x31,
- 0xB9, 0x89, 0xE3, 0x03, 0x32, 0xBF, 0xE8, 0xDE,
- 0x8C, 0xC8, 0xCD, 0xB5, 0x68, 0xE1, 0x4B, 0xE2,
- 0x14, 0xA2, 0x22, 0x3B, 0x84, 0xCA, 0xAB, 0x74,
- 0x19, 0x54, 0x9E, 0xCF, 0xCC, 0x96, 0xCE, 0x2A,
- 0xCE, 0xC1, 0x19, 0x48, 0x5D, 0x87, 0xD1, 0x57,
- 0xD3, 0xA8, 0x73, 0x4F, 0xC4, 0x26, 0x59, 0x7D,
- 0x64, 0xF3, 0x65, 0x70, 0xCE, 0xAF, 0x22, 0x4D
- },
- {
- 0x55, 0xE7, 0x0B, 0x01, 0xD1, 0xFB, 0xF8, 0xB2,
- 0x3B, 0x57, 0xFB, 0x62, 0xE2, 0x6C, 0x2C, 0xE5,
- 0x4F, 0x13, 0xF8, 0xFA, 0x24, 0x64, 0xE6, 0xEB,
- 0x98, 0xD1, 0x6A, 0x61, 0x17, 0x02, 0x6D, 0x8B,
- 0x90, 0x81, 0x90, 0x12, 0x49, 0x6D, 0x40, 0x71,
- 0xEB, 0xE2, 0xE5, 0x95, 0x57, 0xEC, 0xE3, 0x51,
- 0x9A, 0x7A, 0xA4, 0x58, 0x02, 0xF9, 0x61, 0x53,
- 0x74, 0x87, 0x73, 0x32, 0xB7, 0x34, 0x90, 0xB3
- },
- {
- 0x25, 0x26, 0x1E, 0xB2, 0x96, 0x97, 0x1D, 0x6E,
- 0x4A, 0x71, 0xB2, 0x92, 0x8E, 0x64, 0x83, 0x9C,
- 0x67, 0xD4, 0x22, 0x87, 0x2B, 0xF9, 0xF3, 0xC3,
- 0x19, 0x93, 0x61, 0x52, 0x22, 0xDE, 0x9F, 0x8F,
- 0x0B, 0x2C, 0x4B, 0xE8, 0x54, 0x85, 0x59, 0xB4,
- 0xB3, 0x54, 0xE7, 0x36, 0x41, 0x6E, 0x32, 0x18,
- 0xD4, 0xE8, 0xA1, 0xE2, 0x19, 0xA4, 0xA6, 0xD4,
- 0x3E, 0x1A, 0x9A, 0x52, 0x1D, 0x0E, 0x75, 0xFC
- },
- {
- 0x08, 0x30, 0x7F, 0x34, 0x7C, 0x41, 0x29, 0x4E,
- 0x34, 0xBB, 0x54, 0xCB, 0x42, 0xB1, 0x52, 0x2D,
- 0x22, 0xF8, 0x24, 0xF7, 0xB6, 0xE5, 0xDB, 0x50,
- 0xFD, 0xA0, 0x96, 0x79, 0x8E, 0x18, 0x1A, 0x8F,
- 0x02, 0x6F, 0xA2, 0x7B, 0x4A, 0xE4, 0x5D, 0x52,
- 0xA6, 0x2C, 0xAF, 0x9D, 0x51, 0x98, 0xE2, 0x4A,
- 0x49, 0x13, 0xC6, 0x67, 0x17, 0x75, 0xB2, 0xD7,
- 0x23, 0xC1, 0x23, 0x9B, 0xFB, 0xF0, 0x16, 0xD7
- },
- {
- 0x1E, 0x5C, 0x62, 0xE7, 0xE9, 0xBF, 0xA1, 0xB1,
- 0x18, 0x74, 0x7A, 0x2D, 0xE0, 0x8B, 0x3C, 0xA1,
- 0x01, 0x12, 0xAF, 0x96, 0xA4, 0x6E, 0x4B, 0x22,
- 0xC3, 0xFC, 0x06, 0xF9, 0xBF, 0xEE, 0x4E, 0xB5,
- 0xC4, 0x9E, 0x05, 0x7A, 0x4A, 0x48, 0x86, 0x23,
- 0x43, 0x24, 0x57, 0x25, 0x76, 0xBB, 0x9B, 0x5E,
- 0xCF, 0xDE, 0x0D, 0x99, 0xB0, 0xDE, 0x4F, 0x98,
- 0xEC, 0x16, 0xE4, 0xD1, 0xB8, 0x5F, 0xA9, 0x47
- },
- {
- 0xC7, 0x4A, 0x77, 0x39, 0x5F, 0xB8, 0xBC, 0x12,
- 0x64, 0x47, 0x45, 0x48, 0x38, 0xE5, 0x61, 0xE9,
- 0x62, 0x85, 0x3D, 0xC7, 0xEB, 0x49, 0xA1, 0xE3,
- 0xCB, 0x67, 0xC3, 0xD0, 0x85, 0x1F, 0x3E, 0x39,
- 0x51, 0x7B, 0xE8, 0xC3, 0x50, 0xAC, 0x91, 0x09,
- 0x03, 0xD4, 0x9C, 0xD2, 0xBF, 0xDF, 0x54, 0x5C,
- 0x99, 0x31, 0x6D, 0x03, 0x46, 0x17, 0x0B, 0x73,
- 0x9F, 0x0A, 0xDD, 0x5D, 0x53, 0x3C, 0x2C, 0xFC
- },
- {
- 0x0D, 0xD5, 0x7B, 0x42, 0x3C, 0xC0, 0x1E, 0xB2,
- 0x86, 0x13, 0x91, 0xEB, 0x88, 0x6A, 0x0D, 0x17,
- 0x07, 0x9B, 0x93, 0x3F, 0xC7, 0x6E, 0xB3, 0xFC,
- 0x08, 0xA1, 0x9F, 0x8A, 0x74, 0x95, 0x2C, 0xB6,
- 0x8F, 0x6B, 0xCD, 0xC6, 0x44, 0xF7, 0x73, 0x70,
- 0x96, 0x6E, 0x4D, 0x13, 0xE8, 0x05, 0x60, 0xBC,
- 0xF0, 0x82, 0xEF, 0x04, 0x79, 0xD4, 0x8F, 0xBB,
- 0xAB, 0x4D, 0xF0, 0x3B, 0x53, 0xA4, 0xE1, 0x78
- },
- {
- 0x4D, 0x8D, 0xC3, 0x92, 0x3E, 0xDC, 0xCD, 0xFC,
- 0xE7, 0x00, 0x72, 0x39, 0x8B, 0x8A, 0x3D, 0xA5,
- 0xC3, 0x1F, 0xCB, 0x3E, 0xE3, 0xB6, 0x45, 0xC8,
- 0x5F, 0x71, 0x7C, 0xBA, 0xEB, 0x4B, 0x67, 0x3A,
- 0x19, 0x39, 0x44, 0x25, 0xA5, 0x85, 0xBF, 0xB4,
- 0x64, 0xD9, 0x2F, 0x15, 0x97, 0xD0, 0xB7, 0x54,
- 0xD1, 0x63, 0xF9, 0x7C, 0xED, 0x34, 0x3B, 0x25,
- 0xDB, 0x5A, 0x70, 0xEF, 0x48, 0xEB, 0xB3, 0x4F
- },
- {
- 0xF0, 0xA5, 0x05, 0x53, 0xE4, 0xDF, 0xB0, 0xC4,
- 0xE3, 0xE3, 0xD3, 0xBA, 0x82, 0x03, 0x48, 0x57,
- 0xE3, 0xB1, 0xE5, 0x09, 0x18, 0xF5, 0xB8, 0xA7,
- 0xD6, 0x98, 0xE1, 0x0D, 0x24, 0x2B, 0x0F, 0xB5,
- 0x44, 0xAF, 0x6C, 0x92, 0xD0, 0xC3, 0xAA, 0xF9,
- 0x93, 0x22, 0x20, 0x41, 0x61, 0x17, 0xB4, 0xE7,
- 0x8E, 0xCB, 0x8A, 0x8F, 0x43, 0x0E, 0x13, 0xB8,
- 0x2A, 0x59, 0x15, 0x29, 0x0A, 0x58, 0x19, 0xC5
- },
- {
- 0xB1, 0x55, 0x43, 0xF3, 0xF7, 0x36, 0x08, 0x66,
- 0x27, 0xCC, 0x53, 0x65, 0xE7, 0xE8, 0x98, 0x8C,
- 0x2E, 0xF1, 0x55, 0xC0, 0xFD, 0x4F, 0x42, 0x89,
- 0x61, 0xB0, 0x0D, 0x15, 0x26, 0xF0, 0x4D, 0x6D,
- 0x6A, 0x65, 0x8B, 0x4B, 0x8E, 0xD3, 0x2C, 0x5D,
- 0x86, 0x21, 0xE7, 0xF4, 0xF8, 0xE8, 0xA9, 0x33,
- 0xD9, 0xEC, 0xC9, 0xDD, 0x1B, 0x83, 0x33, 0xCB,
- 0xE2, 0x8C, 0xFC, 0x37, 0xD9, 0x71, 0x9E, 0x1C
- },
- {
- 0x7B, 0x4F, 0xA1, 0x58, 0xE4, 0x15, 0xFE, 0xF0,
- 0x23, 0x24, 0x72, 0x64, 0xCB, 0xBE, 0x15, 0xD1,
- 0x6D, 0x91, 0xA4, 0x44, 0x24, 0xA8, 0xDB, 0x70,
- 0x7E, 0xB1, 0xE2, 0x03, 0x3C, 0x30, 0xE9, 0xE1,
- 0xE7, 0xC8, 0xC0, 0x86, 0x45, 0x95, 0xD2, 0xCB,
- 0x8C, 0x58, 0x0E, 0xB4, 0x7E, 0x9D, 0x16, 0xAB,
- 0xBD, 0x7E, 0x44, 0xE8, 0x24, 0xF7, 0xCE, 0xDB,
- 0x7D, 0xEF, 0x57, 0x13, 0x0E, 0x52, 0xCF, 0xE9
- },
- {
- 0x60, 0x42, 0x4F, 0xF2, 0x32, 0x34, 0xC3, 0x4D,
- 0xC9, 0x68, 0x7A, 0xD5, 0x02, 0x86, 0x93, 0x72,
- 0xCC, 0x31, 0xA5, 0x93, 0x80, 0x18, 0x6B, 0xC2,
- 0x36, 0x1C, 0x83, 0x5D, 0x97, 0x2F, 0x49, 0x66,
- 0x6E, 0xB1, 0xAC, 0x69, 0x62, 0x9D, 0xE6, 0x46,
- 0xF0, 0x3F, 0x9B, 0x4D, 0xB9, 0xE2, 0xAC, 0xE0,
- 0x93, 0xFB, 0xFD, 0xF8, 0xF2, 0x0A, 0xB5, 0xF9,
- 0x85, 0x41, 0x97, 0x8B, 0xE8, 0xEF, 0x54, 0x9F
- },
- {
- 0x74, 0x06, 0x01, 0x8C, 0xE7, 0x04, 0xD8, 0x4F,
- 0x5E, 0xB9, 0xC7, 0x9F, 0xEA, 0x97, 0xDA, 0x34,
- 0x56, 0x99, 0x46, 0x8A, 0x35, 0x0E, 0xE0, 0xB2,
- 0xD0, 0xF3, 0xA4, 0xBF, 0x20, 0x70, 0x30, 0x4E,
- 0xA8, 0x62, 0xD7, 0x2A, 0x51, 0xC5, 0x7D, 0x30,
- 0x64, 0x94, 0x72, 0x86, 0xF5, 0x31, 0xE0, 0xEA,
- 0xF7, 0x56, 0x37, 0x02, 0x26, 0x2E, 0x6C, 0x72,
- 0x4A, 0xBF, 0x5E, 0xD8, 0xC8, 0x39, 0x8D, 0x17
- },
- {
- 0x14, 0xEF, 0x5C, 0x6D, 0x64, 0x7B, 0x3B, 0xD1,
- 0xE6, 0xE3, 0x20, 0x06, 0xC2, 0x31, 0x19, 0x98,
- 0x10, 0xDE, 0x5C, 0x4D, 0xC8, 0x8E, 0x70, 0x24,
- 0x02, 0x73, 0xB0, 0xEA, 0x18, 0xE6, 0x51, 0xA3,
- 0xEB, 0x4F, 0x5C, 0xA3, 0x11, 0x4B, 0x8A, 0x56,
- 0x71, 0x69, 0x69, 0xC7, 0xCD, 0xA2, 0x7E, 0x0C,
- 0x8D, 0xB8, 0x32, 0xAD, 0x5E, 0x89, 0xA2, 0xDC,
- 0x6C, 0xB0, 0xAD, 0xBE, 0x7D, 0x93, 0xAB, 0xD1
- },
- {
- 0x38, 0xCF, 0x6C, 0x24, 0xE3, 0xE0, 0x8B, 0xCF,
- 0x1F, 0x6C, 0xF3, 0xD1, 0xB1, 0xF6, 0x5B, 0x90,
- 0x52, 0x39, 0xA3, 0x11, 0x80, 0x33, 0x24, 0x9E,
- 0x44, 0x81, 0x13, 0xEC, 0x63, 0x2E, 0xA6, 0xDC,
- 0x34, 0x6F, 0xEE, 0xB2, 0x57, 0x1C, 0x38, 0xBD,
- 0x9A, 0x73, 0x98, 0xB2, 0x22, 0x12, 0x80, 0x32,
- 0x80, 0x02, 0xB2, 0x3E, 0x1A, 0x45, 0xAD, 0xAF,
- 0xFE, 0x66, 0xD9, 0x3F, 0x65, 0x64, 0xEA, 0xA2
- },
- {
- 0x6C, 0xD7, 0x20, 0x8A, 0x4B, 0xC7, 0xE7, 0xE5,
- 0x62, 0x01, 0xBB, 0xBA, 0x02, 0xA0, 0xF4, 0x89,
- 0xCD, 0x38, 0x4A, 0xBE, 0x40, 0xAF, 0xD4, 0x22,
- 0x2F, 0x15, 0x8B, 0x3D, 0x98, 0x6E, 0xE7, 0x2A,
- 0x54, 0xC5, 0x0F, 0xB6, 0x4F, 0xD4, 0xED, 0x25,
- 0x30, 0xED, 0xA2, 0xC8, 0xAF, 0x29, 0x28, 0xA0,
- 0xDA, 0x6D, 0x4F, 0x83, 0x0A, 0xE1, 0xC9, 0xDB,
- 0x46, 0x9D, 0xFD, 0x97, 0x0F, 0x12, 0xA5, 0x6F
- },
- {
- 0x65, 0x98, 0x58, 0xF0, 0xB5, 0xC9, 0xED, 0xAB,
- 0x5B, 0x94, 0xFD, 0x73, 0x2F, 0x6E, 0x6B, 0x17,
- 0xC5, 0x1C, 0xC0, 0x96, 0x10, 0x4F, 0x09, 0xBE,
- 0xB3, 0xAF, 0xC3, 0xAA, 0x46, 0x7C, 0x2E, 0xCF,
- 0x88, 0x5C, 0x4C, 0x65, 0x41, 0xEF, 0xFA, 0x90,
- 0x23, 0xD3, 0xB5, 0x73, 0x8A, 0xE5, 0xA1, 0x4D,
- 0x86, 0x7E, 0x15, 0xDB, 0x06, 0xFE, 0x1F, 0x9D,
- 0x11, 0x27, 0xB7, 0x7E, 0x1A, 0xAB, 0xB5, 0x16
- },
- {
- 0x26, 0xCC, 0xA0, 0x12, 0x6F, 0x5D, 0x1A, 0x81,
- 0x3C, 0x62, 0xE5, 0xC7, 0x10, 0x01, 0xC0, 0x46,
- 0xF9, 0xC9, 0x20, 0x95, 0x70, 0x45, 0x50, 0xBE,
- 0x58, 0x73, 0xA4, 0x95, 0xA9, 0x99, 0xAD, 0x01,
- 0x0A, 0x4F, 0x79, 0x49, 0x1F, 0x24, 0xF2, 0x86,
- 0x50, 0x0A, 0xDC, 0xE1, 0xA1, 0x37, 0xBC, 0x20,
- 0x84, 0xE4, 0x94, 0x9F, 0x5B, 0x72, 0x94, 0xCE,
- 0xFE, 0x51, 0xEC, 0xAF, 0xF8, 0xE9, 0x5C, 0xBA
- },
- {
- 0x41, 0x47, 0xC1, 0xF5, 0x51, 0x72, 0x78, 0x8C,
- 0x55, 0x67, 0xC5, 0x61, 0xFE, 0xEF, 0x87, 0x6F,
- 0x62, 0x1F, 0xFF, 0x1C, 0xE8, 0x77, 0x86, 0xB8,
- 0x46, 0x76, 0x37, 0xE7, 0x0D, 0xFB, 0xCD, 0x0D,
- 0xBD, 0xB6, 0x41, 0x5C, 0xB6, 0x00, 0x95, 0x4A,
- 0xB9, 0xC0, 0x4C, 0x0E, 0x45, 0x7E, 0x62, 0x5B,
- 0x40, 0x72, 0x22, 0xC0, 0xFE, 0x1A, 0xE2, 0x1B,
- 0x21, 0x43, 0x68, 0x8A, 0xDA, 0x94, 0xDC, 0x58
- },
- {
- 0x5B, 0x1B, 0xF1, 0x54, 0xC6, 0x2A, 0x8A, 0xF6,
- 0xE9, 0x3D, 0x35, 0xF1, 0x8F, 0x7F, 0x90, 0xAB,
- 0xB1, 0x6A, 0x6E, 0xF0, 0xE8, 0xD1, 0xAE, 0xCD,
- 0x11, 0x8B, 0xF7, 0x01, 0x67, 0xBA, 0xB2, 0xAF,
- 0x08, 0x93, 0x5C, 0x6F, 0xDC, 0x06, 0x63, 0xCE,
- 0x74, 0x48, 0x2D, 0x17, 0xA8, 0xE5, 0x4B, 0x54,
- 0x6D, 0x1C, 0x29, 0x66, 0x31, 0xC6, 0x5F, 0x3B,
- 0x52, 0x2A, 0x51, 0x58, 0x39, 0xD4, 0x3D, 0x71
- },
- {
- 0x9F, 0x60, 0x04, 0x19, 0xA4, 0xE8, 0xF4, 0xFB,
- 0x83, 0x4C, 0x24, 0xB0, 0xF7, 0xFC, 0x13, 0xBF,
- 0x4E, 0x27, 0x9D, 0x98, 0xE8, 0xA3, 0xC7, 0x65,
- 0xEE, 0x93, 0x49, 0x17, 0x40, 0x3E, 0x3A, 0x66,
- 0x09, 0x71, 0x82, 0xEA, 0x21, 0x45, 0x3C, 0xB6,
- 0x3E, 0xBB, 0xE8, 0xB7, 0x3A, 0x9C, 0x21, 0x67,
- 0x59, 0x64, 0x46, 0x43, 0x8C, 0x57, 0x62, 0x7F,
- 0x33, 0x0B, 0xAD, 0xD4, 0xF5, 0x69, 0xF7, 0xD6
- },
- {
- 0x45, 0x7E, 0xF6, 0x46, 0x6A, 0x89, 0x24, 0xFD,
- 0x80, 0x11, 0xA3, 0x44, 0x71, 0xA5, 0xA1, 0xAC,
- 0x8C, 0xCD, 0x9B, 0xD0, 0xD0, 0x7A, 0x97, 0x41,
- 0x4A, 0xC9, 0x43, 0x02, 0x1C, 0xE4, 0xB9, 0xE4,
- 0xB9, 0xC8, 0xDB, 0x0A, 0x28, 0xF0, 0x16, 0xED,
- 0x43, 0xB1, 0x54, 0x24, 0x81, 0x99, 0x00, 0x22,
- 0x14, 0x7B, 0x31, 0x3E, 0x19, 0x46, 0x71, 0x13,
- 0x1E, 0x70, 0x8D, 0xD4, 0x3A, 0x3E, 0xD7, 0xDC
- },
- {
- 0x99, 0x97, 0xB2, 0x19, 0x4D, 0x9A, 0xF6, 0xDF,
- 0xCB, 0x91, 0x43, 0xF4, 0x1C, 0x0E, 0xD8, 0x3D,
- 0x3A, 0x3F, 0x43, 0x88, 0x36, 0x11, 0x03, 0xD3,
- 0x8C, 0x2A, 0x49, 0xB2, 0x80, 0xA5, 0x81, 0x21,
- 0x27, 0x15, 0xFD, 0x90, 0x8D, 0x41, 0xC6, 0x51,
- 0xF5, 0xC7, 0x15, 0xCA, 0x38, 0xC0, 0xCE, 0x28,
- 0x30, 0xA3, 0x7E, 0x00, 0xE5, 0x08, 0xCE, 0xD1,
- 0xBC, 0xDC, 0x32, 0x0E, 0x5E, 0x4D, 0x1E, 0x2E
- },
- {
- 0x5C, 0x6B, 0xBF, 0x16, 0xBA, 0xA1, 0x80, 0xF9,
- 0x86, 0xBD, 0x40, 0xA1, 0x28, 0x7E, 0xD4, 0xC5,
- 0x49, 0x77, 0x0E, 0x72, 0x84, 0x85, 0x8F, 0xC4,
- 0x7B, 0xC2, 0x1A, 0xB9, 0x5E, 0xBB, 0xF3, 0x37,
- 0x4B, 0x4E, 0xE3, 0xFD, 0x9F, 0x2A, 0xF6, 0x0F,
- 0x33, 0x95, 0x22, 0x1B, 0x2A, 0xCC, 0x76, 0xF2,
- 0xD3, 0x4C, 0x13, 0x29, 0x54, 0x04, 0x9F, 0x8A,
- 0x3A, 0x99, 0x6F, 0x1E, 0x32, 0xEC, 0x84, 0xE5
- },
- {
- 0xD1, 0x0B, 0xF9, 0xA1, 0x5B, 0x1C, 0x9F, 0xC8,
- 0xD4, 0x1F, 0x89, 0xBB, 0x14, 0x0B, 0xF0, 0xBE,
- 0x08, 0xD2, 0xF3, 0x66, 0x61, 0x76, 0xD1, 0x3B,
- 0xAA, 0xC4, 0xD3, 0x81, 0x35, 0x8A, 0xD0, 0x74,
- 0xC9, 0xD4, 0x74, 0x8C, 0x30, 0x05, 0x20, 0xEB,
- 0x02, 0x6D, 0xAE, 0xAE, 0xA7, 0xC5, 0xB1, 0x58,
- 0x89, 0x2F, 0xDE, 0x4E, 0x8E, 0xC1, 0x7D, 0xC9,
- 0x98, 0xDC, 0xD5, 0x07, 0xDF, 0x26, 0xEB, 0x63
- },
- {
- 0x2F, 0xC6, 0xE6, 0x9F, 0xA2, 0x6A, 0x89, 0xA5,
- 0xED, 0x26, 0x90, 0x92, 0xCB, 0x9B, 0x2A, 0x44,
- 0x9A, 0x44, 0x09, 0xA7, 0xA4, 0x40, 0x11, 0xEE,
- 0xCA, 0xD1, 0x3D, 0x7C, 0x4B, 0x04, 0x56, 0x60,
- 0x2D, 0x40, 0x2F, 0xA5, 0x84, 0x4F, 0x1A, 0x7A,
- 0x75, 0x81, 0x36, 0xCE, 0x3D, 0x5D, 0x8D, 0x0E,
- 0x8B, 0x86, 0x92, 0x1F, 0xFF, 0xF4, 0xF6, 0x92,
- 0xDD, 0x95, 0xBD, 0xC8, 0xE5, 0xFF, 0x00, 0x52
- },
- {
- 0xFC, 0xBE, 0x8B, 0xE7, 0xDC, 0xB4, 0x9A, 0x32,
- 0xDB, 0xDF, 0x23, 0x94, 0x59, 0xE2, 0x63, 0x08,
- 0xB8, 0x4D, 0xFF, 0x1E, 0xA4, 0x80, 0xDF, 0x8D,
- 0x10, 0x4E, 0xEF, 0xF3, 0x4B, 0x46, 0xFA, 0xE9,
- 0x86, 0x27, 0xB4, 0x50, 0xC2, 0x26, 0x7D, 0x48,
- 0xC0, 0x94, 0x6A, 0x69, 0x7C, 0x5B, 0x59, 0x53,
- 0x14, 0x52, 0xAC, 0x04, 0x84, 0xF1, 0xC8, 0x4E,
- 0x3A, 0x33, 0xD0, 0xC3, 0x39, 0xBB, 0x2E, 0x28
- },
- {
- 0xA1, 0x90, 0x93, 0xA6, 0xE3, 0xBC, 0xF5, 0x95,
- 0x2F, 0x85, 0x0F, 0x20, 0x30, 0xF6, 0x9B, 0x96,
- 0x06, 0xF1, 0x47, 0xF9, 0x0B, 0x8B, 0xAE, 0xE3,
- 0x36, 0x2D, 0xA7, 0x1D, 0x9F, 0x35, 0xB4, 0x4E,
- 0xF9, 0xD8, 0xF0, 0xA7, 0x71, 0x2B, 0xA1, 0x87,
- 0x7F, 0xDD, 0xCD, 0x2D, 0x8E, 0xA8, 0xF1, 0xE5,
- 0xA7, 0x73, 0xD0, 0xB7, 0x45, 0xD4, 0x72, 0x56,
- 0x05, 0x98, 0x3A, 0x2D, 0xE9, 0x01, 0xF8, 0x03
- },
- {
- 0x3C, 0x20, 0x06, 0x42, 0x3F, 0x73, 0xE2, 0x68,
- 0xFA, 0x59, 0xD2, 0x92, 0x03, 0x77, 0xEB, 0x29,
- 0xA4, 0xF9, 0xA8, 0xB4, 0x62, 0xBE, 0x15, 0x98,
- 0x3E, 0xE3, 0xB8, 0x5A, 0xE8, 0xA7, 0x8E, 0x99,
- 0x26, 0x33, 0x58, 0x1A, 0x90, 0x99, 0x89, 0x3B,
- 0x63, 0xDB, 0x30, 0x24, 0x1C, 0x34, 0xF6, 0x43,
- 0x02, 0x7D, 0xC8, 0x78, 0x27, 0x9A, 0xF5, 0x85,
- 0x0D, 0x7E, 0x2D, 0x4A, 0x26, 0x53, 0x07, 0x3A
- },
- {
- 0xD0, 0xF2, 0xF2, 0xE3, 0x78, 0x76, 0x53, 0xF7,
- 0x7C, 0xCE, 0x2F, 0xA2, 0x48, 0x35, 0x78, 0x5B,
- 0xBD, 0x0C, 0x43, 0x3F, 0xC7, 0x79, 0x46, 0x5A,
- 0x11, 0x51, 0x49, 0x90, 0x5A, 0x9D, 0xD1, 0xCB,
- 0x82, 0x7A, 0x62, 0x85, 0x06, 0xD4, 0x57, 0xFC,
- 0xF1, 0x24, 0xA0, 0xC2, 0xAE, 0xF9, 0xCE, 0x2D,
- 0x2A, 0x0A, 0x0F, 0x63, 0x54, 0x55, 0x70, 0xD8,
- 0x66, 0x7F, 0xF9, 0xE2, 0xEB, 0xA0, 0x73, 0x34
- },
- {
- 0x78, 0xA9, 0xFC, 0x04, 0x8E, 0x25, 0xC6, 0xDC,
- 0xB5, 0xDE, 0x45, 0x66, 0x7D, 0xE8, 0xFF, 0xDD,
- 0x3A, 0x93, 0x71, 0x11, 0x41, 0xD5, 0x94, 0xE9,
- 0xFA, 0x62, 0xA9, 0x59, 0x47, 0x5D, 0xA6, 0x07,
- 0x5E, 0xA8, 0xF0, 0x91, 0x6E, 0x84, 0xE4, 0x5A,
- 0xD9, 0x11, 0xB7, 0x54, 0x67, 0x07, 0x7E, 0xE5,
- 0x2D, 0x2C, 0x9A, 0xEB, 0xF4, 0xD5, 0x8F, 0x20,
- 0xCE, 0x4A, 0x3A, 0x00, 0x45, 0x8B, 0x05, 0xD4
- },
- {
- 0x45, 0x81, 0x3F, 0x44, 0x17, 0x69, 0xAB, 0x6E,
- 0xD3, 0x7D, 0x34, 0x9F, 0xF6, 0xE7, 0x22, 0x67,
- 0xD7, 0x6A, 0xE6, 0xBB, 0x3E, 0x3C, 0x61, 0x2E,
- 0xC0, 0x5C, 0x6E, 0x02, 0xA1, 0x2A, 0xF5, 0xA3,
- 0x7C, 0x91, 0x8B, 0x52, 0xBF, 0x74, 0x26, 0x7C,
- 0x3F, 0x6A, 0x3F, 0x18, 0x3A, 0x80, 0x64, 0xFF,
- 0x84, 0xC0, 0x7B, 0x19, 0x3D, 0x08, 0x06, 0x67,
- 0x89, 0xA0, 0x1A, 0xCC, 0xDB, 0x6F, 0x93, 0x40
- },
- {
- 0x95, 0x6D, 0xA1, 0xC6, 0x8D, 0x83, 0xA7, 0xB8,
- 0x81, 0xE0, 0x1B, 0x9A, 0x96, 0x6C, 0x3C, 0x0B,
- 0xF2, 0x7F, 0x68, 0x60, 0x6A, 0x8B, 0x71, 0xD4,
- 0x57, 0xBD, 0x01, 0x6D, 0x4C, 0x41, 0xDD, 0x8A,
- 0x38, 0x0C, 0x70, 0x9A, 0x29, 0x6C, 0xB4, 0xC6,
- 0x54, 0x47, 0x92, 0x92, 0x0F, 0xD7, 0x88, 0x83,
- 0x57, 0x71, 0xA0, 0x7D, 0x4A, 0x16, 0xFB, 0x52,
- 0xED, 0x48, 0x05, 0x03, 0x31, 0xDC, 0x4C, 0x8B
- },
- {
- 0xDF, 0x18, 0x6C, 0x2D, 0xC0, 0x9C, 0xAA, 0x48,
- 0xE1, 0x4E, 0x94, 0x2F, 0x75, 0xDE, 0x5A, 0xC1,
- 0xB7, 0xA2, 0x1E, 0x4F, 0x9F, 0x07, 0x2A, 0x5B,
- 0x37, 0x1E, 0x09, 0xE0, 0x73, 0x45, 0xB0, 0x74,
- 0x0C, 0x76, 0x17, 0x7B, 0x01, 0x27, 0x88, 0x08,
- 0xFE, 0xC0, 0x25, 0xED, 0xED, 0x98, 0x22, 0xC1,
- 0x22, 0xAF, 0xD1, 0xC6, 0x3E, 0x6F, 0x0C, 0xE2,
- 0xE3, 0x26, 0x31, 0x04, 0x10, 0x63, 0x14, 0x5C
- },
- {
- 0x87, 0x47, 0x56, 0x40, 0x96, 0x6A, 0x9F, 0xDC,
- 0xD6, 0xD3, 0xA3, 0xB5, 0xA2, 0xCC, 0xA5, 0xC0,
- 0x8F, 0x0D, 0x88, 0x2B, 0x10, 0x24, 0x3C, 0x0E,
- 0xC1, 0xBF, 0x3C, 0x6B, 0x1C, 0x37, 0xF2, 0xCD,
- 0x32, 0x12, 0xF1, 0x9A, 0x05, 0x78, 0x64, 0x47,
- 0x7D, 0x5E, 0xAF, 0x8F, 0xAE, 0xD7, 0x3F, 0x29,
- 0x37, 0xC7, 0x68, 0xA0, 0xAF, 0x41, 0x5E, 0x84,
- 0xBB, 0xCE, 0x6B, 0xD7, 0xDE, 0x23, 0xB6, 0x60
- },
- {
- 0xC3, 0xB5, 0x73, 0xBB, 0xE1, 0x09, 0x49, 0xA0,
- 0xFB, 0xD4, 0xFF, 0x88, 0x4C, 0x44, 0x6F, 0x22,
- 0x29, 0xB7, 0x69, 0x02, 0xF9, 0xDF, 0xDB, 0xB8,
- 0xA0, 0x35, 0x3D, 0xA5, 0xC8, 0x3C, 0xA1, 0x4E,
- 0x81, 0x51, 0xBB, 0xAA, 0xC8, 0x2F, 0xD1, 0x57,
- 0x6A, 0x00, 0x9A, 0xDC, 0x6F, 0x19, 0x35, 0xCF,
- 0x26, 0xED, 0xD4, 0xF1, 0xFB, 0x8D, 0xA4, 0x83,
- 0xE6, 0xC5, 0xCD, 0x9D, 0x89, 0x23, 0xAD, 0xC3
- },
- {
- 0xB0, 0x9D, 0x8D, 0x0B, 0xBA, 0x8A, 0x72, 0x86,
- 0xE4, 0x35, 0x68, 0xF7, 0x90, 0x75, 0x50, 0xE4,
- 0x20, 0x36, 0xD6, 0x74, 0xE3, 0xC8, 0xFC, 0x34,
- 0xD8, 0xCA, 0x46, 0xF7, 0x71, 0xD6, 0x46, 0x6B,
- 0x70, 0xFB, 0x60, 0x58, 0x75, 0xF6, 0xA8, 0x63,
- 0xC8, 0x77, 0xD1, 0x2F, 0x07, 0x06, 0x3F, 0xDC,
- 0x2E, 0x90, 0xCC, 0xD4, 0x59, 0xB1, 0x91, 0x0D,
- 0xCD, 0x52, 0xD8, 0xF1, 0x0B, 0x2B, 0x0A, 0x15
- },
- {
- 0xAF, 0x3A, 0x22, 0xBF, 0x75, 0xB2, 0x1A, 0xBF,
- 0xB0, 0xAC, 0xD5, 0x44, 0x22, 0xBA, 0x1B, 0x73,
- 0x00, 0xA9, 0x52, 0xEF, 0xF0, 0x2E, 0xBE, 0xB6,
- 0x5B, 0x5C, 0x23, 0x44, 0x71, 0xA9, 0x8D, 0xF3,
- 0x2F, 0x4F, 0x96, 0x43, 0xCE, 0x19, 0x04, 0x10,
- 0x8A, 0x16, 0x87, 0x67, 0x92, 0x42, 0x80, 0xBD,
- 0x76, 0xC8, 0x3F, 0x8C, 0x82, 0xD9, 0xA7, 0x9D,
- 0x92, 0x59, 0xB1, 0x95, 0x36, 0x2A, 0x2A, 0x04
- },
- {
- 0xBF, 0x4F, 0xF2, 0x22, 0x1B, 0x7E, 0x69, 0x57,
- 0xA7, 0x24, 0xCD, 0x96, 0x4A, 0xA3, 0xD5, 0xD0,
- 0xD9, 0x94, 0x1F, 0x54, 0x04, 0x13, 0x75, 0x2F,
- 0x46, 0x99, 0xD8, 0x10, 0x1B, 0x3E, 0x53, 0x75,
- 0x08, 0xBF, 0x09, 0xF8, 0x50, 0x8B, 0x31, 0x77,
- 0x36, 0xFF, 0xD2, 0x65, 0xF2, 0x84, 0x7A, 0xA7,
- 0xD8, 0x4B, 0xD2, 0xD9, 0x75, 0x69, 0xC4, 0x9D,
- 0x63, 0x2A, 0xED, 0x99, 0x45, 0xE5, 0xFA, 0x5E
- },
- {
- 0x9C, 0x6B, 0x6B, 0x78, 0x19, 0x9B, 0x1B, 0xDA,
- 0xCB, 0x43, 0x00, 0xE3, 0x14, 0x79, 0xFA, 0x62,
- 0x2A, 0x6B, 0x5B, 0xC8, 0x0D, 0x46, 0x78, 0xA6,
- 0x07, 0x8F, 0x88, 0xA8, 0x26, 0x8C, 0xD7, 0x20,
- 0x6A, 0x27, 0x99, 0xE8, 0xD4, 0x62, 0x1A, 0x46,
- 0x4E, 0xF6, 0xB4, 0x3D, 0xD8, 0xAD, 0xFF, 0xE9,
- 0x7C, 0xAF, 0x22, 0x1B, 0x22, 0xB6, 0xB8, 0x77,
- 0x8B, 0x14, 0x9A, 0x82, 0x2A, 0xEF, 0xBB, 0x09
- },
- {
- 0x89, 0x06, 0x56, 0xF0, 0x9C, 0x99, 0xD2, 0x80,
- 0xB5, 0xEC, 0xB3, 0x81, 0xF5, 0x64, 0x27, 0xB8,
- 0x13, 0x75, 0x1B, 0xC6, 0x52, 0xC7, 0x82, 0x80,
- 0x78, 0xB2, 0x3A, 0x4A, 0xF8, 0x3B, 0x4E, 0x3A,
- 0x61, 0xFD, 0xBA, 0xC6, 0x1F, 0x89, 0xBE, 0xE8,
- 0x4E, 0xA6, 0xBE, 0xE7, 0x60, 0xC0, 0x47, 0xF2,
- 0x5C, 0x6B, 0x0A, 0x20, 0x1C, 0x69, 0xA3, 0x8F,
- 0xD6, 0xFD, 0x97, 0x1A, 0xF1, 0x85, 0x88, 0xBB
- },
- {
- 0x31, 0xA0, 0x46, 0xF7, 0x88, 0x2F, 0xFE, 0x6F,
- 0x83, 0xCE, 0x47, 0x2E, 0x9A, 0x07, 0x01, 0x83,
- 0x2E, 0xC7, 0xB3, 0xF7, 0x6F, 0xBC, 0xFD, 0x1D,
- 0xF6, 0x0F, 0xE3, 0xEA, 0x48, 0xFD, 0xE1, 0x65,
- 0x12, 0x54, 0x24, 0x7C, 0x3F, 0xD9, 0x5E, 0x10,
- 0x0F, 0x91, 0x72, 0x73, 0x1E, 0x17, 0xFD, 0x52,
- 0x97, 0xC1, 0x1F, 0x4B, 0xB3, 0x28, 0x36, 0x3C,
- 0xA3, 0x61, 0x62, 0x4A, 0x81, 0xAF, 0x79, 0x7C
- },
- {
- 0x27, 0xA6, 0x0B, 0x2D, 0x00, 0xE7, 0xA6, 0x71,
- 0xD4, 0x7D, 0x0A, 0xEC, 0x2A, 0x68, 0x6A, 0x0A,
- 0xC0, 0x4B, 0x52, 0xF4, 0x0A, 0xB6, 0x62, 0x90,
- 0x28, 0xEB, 0x7D, 0x13, 0xF4, 0xBA, 0xA9, 0x9A,
- 0xC0, 0xFE, 0x46, 0xEE, 0x6C, 0x81, 0x49, 0x44,
- 0xF2, 0xF4, 0xB4, 0xD2, 0x0E, 0x93, 0x78, 0xE4,
- 0x84, 0x7E, 0xA4, 0x4C, 0x13, 0x17, 0x80, 0x91,
- 0xE2, 0x77, 0xB8, 0x7E, 0xA7, 0xA5, 0x57, 0x11
- },
- {
- 0x8B, 0x5C, 0xCE, 0xF1, 0x94, 0x16, 0x2C, 0x1F,
- 0x19, 0xD6, 0x8F, 0x91, 0xE0, 0xB0, 0x92, 0x8F,
- 0x28, 0x9E, 0xC5, 0x28, 0x37, 0x20, 0x84, 0x0C,
- 0x2F, 0x73, 0xD2, 0x53, 0x11, 0x12, 0x38, 0xDC,
- 0xFE, 0x94, 0xAF, 0x2B, 0x59, 0xC2, 0xC1, 0xCA,
- 0x25, 0x91, 0x90, 0x1A, 0x7B, 0xC0, 0x60, 0xE7,
- 0x45, 0x9B, 0x6C, 0x47, 0xDF, 0x0F, 0x71, 0x70,
- 0x1A, 0x35, 0xCC, 0x0A, 0xA8, 0x31, 0xB5, 0xB6
- },
- {
- 0x57, 0xAB, 0x6C, 0x4B, 0x22, 0x29, 0xAE, 0xB3,
- 0xB7, 0x04, 0x76, 0xD8, 0x03, 0xCD, 0x63, 0x81,
- 0x2F, 0x10, 0x7C, 0xE6, 0xDA, 0x17, 0xFE, 0xD9,
- 0xB1, 0x78, 0x75, 0xE8, 0xF8, 0x6C, 0x72, 0x4F,
- 0x49, 0xE0, 0x24, 0xCB, 0xF3, 0xA1, 0xB8, 0xB1,
- 0x19, 0xC5, 0x03, 0x57, 0x65, 0x2B, 0x81, 0x87,
- 0x9D, 0x2A, 0xDE, 0x2D, 0x58, 0x8B, 0x9E, 0x4F,
- 0x7C, 0xED, 0xBA, 0x0E, 0x46, 0x44, 0xC9, 0xEE
- },
- {
- 0x01, 0x90, 0xA8, 0xDA, 0xC3, 0x20, 0xA7, 0x39,
- 0xF3, 0x22, 0xE1, 0x57, 0x31, 0xAA, 0x14, 0x0D,
- 0xDA, 0xF5, 0xBE, 0xD2, 0x94, 0xD5, 0xC8, 0x2E,
- 0x54, 0xFE, 0xF2, 0x9F, 0x21, 0x4E, 0x18, 0xAA,
- 0xFA, 0xA8, 0x4F, 0x8B, 0xE9, 0x9A, 0xF6, 0x29,
- 0x50, 0x26, 0x6B, 0x8F, 0x90, 0x1F, 0x15, 0xDD,
- 0x4C, 0x5D, 0x35, 0x51, 0x6F, 0xC3, 0x5B, 0x4C,
- 0xAB, 0x2E, 0x96, 0xE4, 0x69, 0x5B, 0xBE, 0x1C
- },
- {
- 0xD1, 0x4D, 0x7C, 0x4C, 0x41, 0x5E, 0xEB, 0x0E,
- 0x10, 0xB1, 0x59, 0x22, 0x4B, 0xEA, 0x12, 0x7E,
- 0xBD, 0x84, 0xF9, 0x59, 0x1C, 0x70, 0x2A, 0x33,
- 0x0F, 0x5B, 0xB7, 0xBB, 0x7A, 0xA4, 0x4E, 0xA3,
- 0x9D, 0xE6, 0xED, 0x01, 0xF1, 0x8D, 0xA7, 0xAD,
- 0xF4, 0x0C, 0xFB, 0x97, 0xC5, 0xD1, 0x52, 0xC2,
- 0x75, 0x28, 0x82, 0x4B, 0x21, 0xE2, 0x39, 0x52,
- 0x6A, 0xF8, 0xF3, 0x6B, 0x21, 0x4E, 0x0C, 0xFB
- },
- {
- 0xBE, 0x28, 0xC4, 0xBE, 0x70, 0x69, 0x70, 0x48,
- 0x8F, 0xAC, 0x7D, 0x29, 0xC3, 0xBD, 0x5C, 0x4E,
- 0x98, 0x60, 0x85, 0xC4, 0xC3, 0x33, 0x2F, 0x1F,
- 0x3F, 0xD3, 0x09, 0x73, 0xDB, 0x61, 0x41, 0x64,
- 0xBA, 0x2F, 0x31, 0xA7, 0x88, 0x75, 0xFF, 0xDC,
- 0x15, 0x03, 0x25, 0xC8, 0x83, 0x27, 0xA9, 0x44,
- 0x3E, 0xD0, 0x4F, 0xDF, 0xE5, 0xBE, 0x93, 0x87,
- 0x6D, 0x16, 0x28, 0x56, 0x0C, 0x76, 0x4A, 0x80
- },
- {
- 0x03, 0x1D, 0xA1, 0x06, 0x9E, 0x3A, 0x2E, 0x9C,
- 0x33, 0x82, 0xE4, 0x36, 0xFF, 0xD7, 0x9D, 0xF7,
- 0x4B, 0x1C, 0xA6, 0xA8, 0xAD, 0xB2, 0xDE, 0xAB,
- 0xE6, 0x76, 0xAB, 0x45, 0x99, 0x4C, 0xBC, 0x05,
- 0x4F, 0x03, 0x7D, 0x2F, 0x0E, 0xAC, 0xE8, 0x58,
- 0xD3, 0x2C, 0x14, 0xE2, 0xD1, 0xC8, 0xB4, 0x60,
- 0x77, 0x30, 0x8E, 0x3B, 0xDC, 0x2C, 0x1B, 0x53,
- 0x17, 0x2E, 0xCF, 0x7A, 0x8C, 0x14, 0xE3, 0x49
- },
- {
- 0x46, 0x65, 0xCE, 0xF8, 0xBA, 0x4D, 0xB4, 0xD0,
- 0xAC, 0xB1, 0x18, 0xF2, 0x98, 0x7F, 0x0B, 0xB0,
- 0x9F, 0x8F, 0x86, 0xAA, 0x44, 0x5A, 0xA3, 0xD5,
- 0xFC, 0x9A, 0x8B, 0x34, 0x68, 0x64, 0x78, 0x74,
- 0x89, 0xE8, 0xFC, 0xEC, 0xC1, 0x25, 0xD1, 0x7E,
- 0x9B, 0x56, 0xE1, 0x29, 0x88, 0xEA, 0xC5, 0xEC,
- 0xC7, 0x28, 0x68, 0x83, 0xDB, 0x06, 0x61, 0xB8,
- 0xFF, 0x05, 0xDA, 0x2A, 0xFF, 0xF3, 0x0F, 0xE4
- },
- {
- 0x63, 0xB7, 0x03, 0x2E, 0x5F, 0x93, 0x0C, 0xC9,
- 0x93, 0x95, 0x17, 0xF9, 0xE9, 0x86, 0x81, 0x6C,
- 0xFB, 0xEC, 0x2B, 0xE5, 0x9B, 0x95, 0x68, 0xB1,
- 0x3F, 0x2E, 0xAD, 0x05, 0xBA, 0xE7, 0x77, 0x7C,
- 0xAB, 0x62, 0x0C, 0x66, 0x59, 0x40, 0x4F, 0x74,
- 0x09, 0xE4, 0x19, 0x9A, 0x3B, 0xE5, 0xF7, 0x86,
- 0x5A, 0xA7, 0xCB, 0xDF, 0x8C, 0x42, 0x53, 0xF7,
- 0xE8, 0x21, 0x9B, 0x1B, 0xD5, 0xF4, 0x6F, 0xEA
- },
- {
- 0x9F, 0x09, 0xBF, 0x09, 0x3A, 0x2B, 0x0F, 0xF8,
- 0xC2, 0x63, 0x4B, 0x49, 0xE3, 0x7F, 0x1B, 0x21,
- 0x35, 0xB4, 0x47, 0xAA, 0x91, 0x44, 0xC9, 0x78,
- 0x7D, 0xBF, 0xD9, 0x21, 0x29, 0x31, 0x6C, 0x99,
- 0xE8, 0x8A, 0xAB, 0x8A, 0x21, 0xFD, 0xEF, 0x23,
- 0x72, 0xD1, 0x18, 0x9A, 0xEC, 0x50, 0x0F, 0x95,
- 0x77, 0x5F, 0x1F, 0x92, 0xBF, 0xB4, 0x55, 0x45,
- 0xE4, 0x25, 0x9F, 0xB9, 0xB7, 0xB0, 0x2D, 0x14
- },
- {
- 0xF9, 0xF8, 0x49, 0x3C, 0x68, 0x08, 0x88, 0x07,
- 0xDF, 0x7F, 0x6A, 0x26, 0x93, 0xD6, 0x4E, 0xA5,
- 0x9F, 0x03, 0xE9, 0xE0, 0x5A, 0x22, 0x3E, 0x68,
- 0x52, 0x4C, 0xA3, 0x21, 0x95, 0xA4, 0x73, 0x4B,
- 0x65, 0x4F, 0xCE, 0xA4, 0xD2, 0x73, 0x4C, 0x86,
- 0x6C, 0xF9, 0x5C, 0x88, 0x9F, 0xB1, 0x0C, 0x49,
- 0x15, 0x9B, 0xE2, 0xF5, 0x04, 0x3D, 0xC9, 0x8B,
- 0xB5, 0x5E, 0x02, 0xEF, 0x7B, 0xDC, 0xB0, 0x82
- },
- {
- 0x3C, 0x9A, 0x73, 0x59, 0xAB, 0x4F, 0xEB, 0xCE,
- 0x07, 0xB2, 0x0A, 0xC4, 0x47, 0xB0, 0x6A, 0x24,
- 0x0B, 0x7F, 0xE1, 0xDA, 0xE5, 0x43, 0x9C, 0x49,
- 0xB6, 0x0B, 0x58, 0x19, 0xF7, 0x81, 0x2E, 0x4C,
- 0x17, 0x24, 0x06, 0xC1, 0xAA, 0xC3, 0x16, 0x71,
- 0x3C, 0xF0, 0xDD, 0xED, 0x10, 0x38, 0x07, 0x72,
- 0x58, 0xE2, 0xEF, 0xF5, 0xB3, 0x39, 0x13, 0xD9,
- 0xD9, 0x5C, 0xAE, 0xB4, 0xE6, 0xC6, 0xB9, 0x70
- },
- {
- 0xAD, 0x6A, 0xAB, 0x80, 0x84, 0x51, 0x0E, 0x82,
- 0x2C, 0xFC, 0xE8, 0x62, 0x5D, 0x62, 0xCF, 0x4D,
- 0xE6, 0x55, 0xF4, 0x76, 0x38, 0x84, 0xC7, 0x1E,
- 0x80, 0xBA, 0xB9, 0xAC, 0x9D, 0x53, 0x18, 0xDB,
- 0xA4, 0xA6, 0x03, 0x3E, 0xD2, 0x90, 0x84, 0xE6,
- 0x52, 0x16, 0xC0, 0x31, 0x60, 0x6C, 0xA1, 0x76,
- 0x15, 0xDC, 0xFE, 0x3B, 0xA1, 0x1D, 0x26, 0x85,
- 0x1A, 0xE0, 0x99, 0x9C, 0xA6, 0xE2, 0x32, 0xCF
- },
- {
- 0x15, 0x6E, 0x9E, 0x62, 0x61, 0x37, 0x4C, 0x9D,
- 0xC8, 0x84, 0xF3, 0x6E, 0x70, 0xF0, 0xFE, 0x1A,
- 0xB9, 0x29, 0x79, 0x97, 0xB8, 0x36, 0xFA, 0x7D,
- 0x17, 0x0A, 0x9C, 0x9E, 0xBF, 0x57, 0x5B, 0x88,
- 0x1E, 0x7B, 0xCE, 0xA4, 0x4D, 0x6C, 0x02, 0x48,
- 0xD3, 0x55, 0x97, 0x90, 0x71, 0x54, 0x82, 0x89,
- 0x55, 0xBE, 0x19, 0x13, 0x58, 0x52, 0xF9, 0x22,
- 0x88, 0x15, 0xEC, 0xA0, 0x24, 0xA8, 0xAD, 0xFB
- },
- {
- 0x42, 0x15, 0x40, 0x76, 0x33, 0xF4, 0xCC, 0xA9,
- 0xB6, 0x78, 0x8B, 0xE9, 0x3E, 0x6A, 0xA3, 0xD9,
- 0x63, 0xC7, 0xD6, 0xCE, 0x4B, 0x14, 0x72, 0x47,
- 0x09, 0x9F, 0x46, 0xA3, 0xAC, 0xB5, 0x00, 0xA3,
- 0x00, 0x38, 0xCB, 0x3E, 0x78, 0x8C, 0x3D, 0x29,
- 0xF1, 0x32, 0xAD, 0x84, 0x4E, 0x80, 0xE9, 0xE9,
- 0x92, 0x51, 0xF6, 0xDB, 0x96, 0xAC, 0xD8, 0xA0,
- 0x91, 0xCF, 0xC7, 0x70, 0xAF, 0x53, 0x84, 0x7B
- },
- {
- 0x1C, 0x07, 0x7E, 0x27, 0x9D, 0xE6, 0x54, 0x85,
- 0x23, 0x50, 0x2B, 0x6D, 0xF8, 0x00, 0xFF, 0xDA,
- 0xB5, 0xE2, 0xC3, 0xE9, 0x44, 0x2E, 0xB8, 0x38,
- 0xF5, 0x8C, 0x29, 0x5F, 0x3B, 0x14, 0x7C, 0xEF,
- 0x9D, 0x70, 0x1C, 0x41, 0xC3, 0x21, 0x28, 0x3F,
- 0x00, 0xC7, 0x1A, 0xFF, 0xA0, 0x61, 0x93, 0x10,
- 0x39, 0x91, 0x26, 0x29, 0x5B, 0x78, 0xDD, 0x4D,
- 0x1A, 0x74, 0x57, 0x2E, 0xF9, 0xED, 0x51, 0x35
- },
- {
- 0xF0, 0x7A, 0x55, 0x5F, 0x49, 0xFE, 0x48, 0x1C,
- 0xF4, 0xCD, 0x0A, 0x87, 0xB7, 0x1B, 0x82, 0xE4,
- 0xA9, 0x50, 0x64, 0xD0, 0x66, 0x77, 0xFD, 0xD9,
- 0x0A, 0x0E, 0xB5, 0x98, 0x87, 0x7B, 0xA1, 0xC8,
- 0x3D, 0x46, 0x77, 0xB3, 0x93, 0xC3, 0xA3, 0xB6,
- 0x66, 0x1C, 0x42, 0x1F, 0x5B, 0x12, 0xCB, 0x99,
- 0xD2, 0x03, 0x76, 0xBA, 0x72, 0x75, 0xC2, 0xF3,
- 0xA8, 0xF5, 0xA9, 0xB7, 0x82, 0x17, 0x20, 0xDA
- },
- {
- 0xB5, 0x91, 0x1B, 0x38, 0x0D, 0x20, 0xC7, 0xB0,
- 0x43, 0x23, 0xE4, 0x02, 0x6B, 0x38, 0xE2, 0x00,
- 0xF5, 0x34, 0x25, 0x92, 0x33, 0xB5, 0x81, 0xE0,
- 0x2C, 0x1E, 0x3E, 0x2D, 0x84, 0x38, 0xD6, 0xC6,
- 0x6D, 0x5A, 0x4E, 0xB2, 0x01, 0xD5, 0xA8, 0xB7,
- 0x50, 0x72, 0xC4, 0xEC, 0x29, 0x10, 0x63, 0x34,
- 0xDA, 0x70, 0xBC, 0x79, 0x52, 0x1B, 0x0C, 0xED,
- 0x2C, 0xFD, 0x53, 0x3F, 0x5F, 0xF8, 0x4F, 0x95
- },
- {
- 0x01, 0xF0, 0x70, 0xA0, 0x9B, 0xAE, 0x91, 0x12,
- 0x96, 0x36, 0x1F, 0x91, 0xAA, 0x0E, 0x8E, 0x0D,
- 0x09, 0xA7, 0x72, 0x54, 0x78, 0x53, 0x6D, 0x9D,
- 0x48, 0xC5, 0xFE, 0x1E, 0x5E, 0x7C, 0x3C, 0x5B,
- 0x9B, 0x9D, 0x6E, 0xB0, 0x77, 0x96, 0xF6, 0xDA,
- 0x57, 0xAE, 0x56, 0x2A, 0x7D, 0x70, 0xE8, 0x82,
- 0xE3, 0x7A, 0xDF, 0xDE, 0x83, 0xF0, 0xC4, 0x33,
- 0xC2, 0xCD, 0x36, 0x35, 0x36, 0xBB, 0x22, 0xC8
- },
- {
- 0x6F, 0x79, 0x3E, 0xB4, 0x37, 0x4A, 0x48, 0xB0,
- 0x77, 0x5A, 0xCA, 0xF9, 0xAD, 0xCF, 0x8E, 0x45,
- 0xE5, 0x42, 0x70, 0xC9, 0x47, 0x5F, 0x00, 0x4A,
- 0xD8, 0xD5, 0x97, 0x3E, 0x2A, 0xCA, 0x52, 0x74,
- 0x7F, 0xF4, 0xED, 0x04, 0xAE, 0x96, 0x72, 0x75,
- 0xB9, 0xF9, 0xEB, 0x0E, 0x1F, 0xF7, 0x5F, 0xB4,
- 0xF7, 0x94, 0xFA, 0x8B, 0xE9, 0xAD, 0xD7, 0xA4,
- 0x13, 0x04, 0x86, 0x8D, 0x10, 0x3F, 0xAB, 0x10
- },
- {
- 0x96, 0x5F, 0x20, 0xF1, 0x39, 0x76, 0x5F, 0xCC,
- 0x4C, 0xE4, 0xBA, 0x37, 0x94, 0x67, 0x58, 0x63,
- 0xCA, 0xC2, 0x4D, 0xB4, 0x72, 0xCD, 0x2B, 0x79,
- 0x9D, 0x03, 0x5B, 0xCE, 0x3D, 0xBE, 0xA5, 0x02,
- 0xDA, 0x7B, 0x52, 0x48, 0x65, 0xF6, 0xB8, 0x11,
- 0xD8, 0xC5, 0x82, 0x8D, 0x3A, 0x88, 0x96, 0x46,
- 0xFE, 0x64, 0xA3, 0x80, 0xDA, 0x1A, 0xA7, 0xC7,
- 0x04, 0x4E, 0x9F, 0x24, 0x5D, 0xCE, 0xD1, 0x28
- },
- {
- 0xEC, 0x29, 0x5B, 0x57, 0x83, 0x60, 0x12, 0x44,
- 0xC3, 0x0E, 0x46, 0x41, 0xE3, 0xB4, 0x5B, 0xE2,
- 0x22, 0xC4, 0xDC, 0xE7, 0x7A, 0x58, 0x70, 0x0F,
- 0x53, 0xBC, 0x8E, 0xC5, 0x2A, 0x94, 0x16, 0x90,
- 0xB4, 0xD0, 0xB0, 0x87, 0xFB, 0x6F, 0xCB, 0x3F,
- 0x39, 0x83, 0x2B, 0x9D, 0xE8, 0xF7, 0x5E, 0xC2,
- 0x0B, 0xD4, 0x30, 0x79, 0x81, 0x17, 0x49, 0xCD,
- 0xC9, 0x07, 0xED, 0xB9, 0x41, 0x57, 0xD1, 0x80
- },
- {
- 0x61, 0xC7, 0x2F, 0x8C, 0xCC, 0x91, 0xDB, 0xB5,
- 0x4C, 0xA6, 0x75, 0x0B, 0xC4, 0x89, 0x67, 0x2D,
- 0xE0, 0x9F, 0xAE, 0xDB, 0x8F, 0xDD, 0x4F, 0x94,
- 0xFF, 0x23, 0x20, 0x90, 0x9A, 0x30, 0x3F, 0x5D,
- 0x5A, 0x98, 0x48, 0x1C, 0x0B, 0xC1, 0xA6, 0x25,
- 0x41, 0x9F, 0xB4, 0xDE, 0xBF, 0xBF, 0x7F, 0x8A,
- 0x53, 0xBB, 0x07, 0xEC, 0x3D, 0x98, 0x5E, 0x8E,
- 0xA1, 0x1E, 0x72, 0xD5, 0x59, 0x94, 0x07, 0x80
- },
- {
- 0xAF, 0xD8, 0x14, 0x5B, 0x25, 0x9E, 0xEF, 0xC8,
- 0xD1, 0x26, 0x20, 0xC3, 0xC5, 0xB0, 0x3E, 0x1E,
- 0xD8, 0xFD, 0x2C, 0xCE, 0xFE, 0x03, 0x65, 0x07,
- 0x8C, 0x80, 0xFD, 0x42, 0xC1, 0x77, 0x0E, 0x28,
- 0xB4, 0x49, 0x48, 0xF2, 0x7E, 0x65, 0xA1, 0x88,
- 0x66, 0x90, 0x11, 0x0D, 0xB8, 0x14, 0x39, 0x7B,
- 0x68, 0xE4, 0x3D, 0x80, 0xD1, 0xBA, 0x16, 0xDF,
- 0xA3, 0x58, 0xE7, 0x39, 0xC8, 0x98, 0xCF, 0xA3
- },
- {
- 0x55, 0x2F, 0xC7, 0x89, 0x3C, 0xF1, 0xCE, 0x93,
- 0x3A, 0xDA, 0x35, 0xC0, 0xDA, 0x98, 0x84, 0x4E,
- 0x41, 0x54, 0x5E, 0x24, 0x4C, 0x31, 0x57, 0xA1,
- 0x42, 0x8D, 0x7B, 0x4C, 0x21, 0xF9, 0xCD, 0x7E,
- 0x40, 0x71, 0xAE, 0xD7, 0x7B, 0x7C, 0xA9, 0xF1,
- 0xC3, 0x8F, 0xBA, 0x32, 0x23, 0x74, 0x12, 0xEF,
- 0x21, 0xA3, 0x42, 0x74, 0x2E, 0xC8, 0x32, 0x43,
- 0x78, 0xF2, 0x1E, 0x50, 0x7F, 0xAF, 0xDD, 0x88
- },
- {
- 0x46, 0x7A, 0x33, 0xFB, 0xAD, 0xF5, 0xEB, 0xC5,
- 0x25, 0x96, 0xEF, 0x86, 0xAA, 0xAE, 0xFC, 0x6F,
- 0xAB, 0xA8, 0xEE, 0x65, 0x1B, 0x1C, 0xE0, 0x4D,
- 0xE3, 0x68, 0xA0, 0x3A, 0x5A, 0x90, 0x40, 0xEF,
- 0x28, 0x35, 0xE0, 0x0A, 0xDB, 0x09, 0xAB, 0xB3,
- 0xFB, 0xD2, 0xBC, 0xE8, 0x18, 0xA2, 0x41, 0x3D,
- 0x0B, 0x02, 0x53, 0xB5, 0xBD, 0xA4, 0xFC, 0x5B,
- 0x2F, 0x6F, 0x85, 0xF3, 0xFD, 0x5B, 0x55, 0xF2
- },
- {
- 0x22, 0xEF, 0xF8, 0xE6, 0xDD, 0x52, 0x36, 0xF5,
- 0xF5, 0x7D, 0x94, 0xED, 0xE8, 0x74, 0xD6, 0xC9,
- 0x42, 0x8E, 0x8F, 0x5D, 0x56, 0x6F, 0x17, 0xCD,
- 0x6D, 0x18, 0x48, 0xCD, 0x75, 0x2F, 0xE1, 0x3C,
- 0x65, 0x5C, 0xB1, 0x0F, 0xBA, 0xAF, 0xF7, 0x68,
- 0x72, 0xF2, 0xBF, 0x2D, 0xA9, 0x9E, 0x15, 0xDC,
- 0x62, 0x40, 0x75, 0xE1, 0xEC, 0x2F, 0x58, 0xA3,
- 0xF6, 0x40, 0x72, 0x12, 0x18, 0x38, 0x56, 0x9E
- },
- {
- 0x9C, 0xEC, 0x6B, 0xBF, 0x62, 0xC4, 0xBC, 0xE4,
- 0x13, 0x8A, 0xBA, 0xE1, 0xCB, 0xEC, 0x8D, 0xAD,
- 0x31, 0x95, 0x04, 0x44, 0xE9, 0x03, 0x21, 0xB1,
- 0x34, 0x71, 0x96, 0x83, 0x4C, 0x11, 0x4B, 0x86,
- 0x4A, 0xF3, 0xF3, 0xCC, 0x35, 0x08, 0xF8, 0x37,
- 0x51, 0xFF, 0xB4, 0xED, 0xA7, 0xC8, 0x4D, 0x14,
- 0x07, 0x34, 0xBB, 0x42, 0x63, 0xC3, 0x62, 0x5C,
- 0x00, 0xF0, 0x4F, 0x4C, 0x80, 0x68, 0x98, 0x1B
- },
- {
- 0xA8, 0xB6, 0x0F, 0xA4, 0xFC, 0x24, 0x42, 0xF6,
- 0xF1, 0x51, 0x4A, 0xD7, 0x40, 0x26, 0x26, 0x92,
- 0x0C, 0xC7, 0xC2, 0xC9, 0xF7, 0x21, 0x24, 0xB8,
- 0xCB, 0xA8, 0xEE, 0x2C, 0xB7, 0xC4, 0x58, 0x6F,
- 0x65, 0x8A, 0x44, 0x10, 0xCF, 0xFC, 0xC0, 0xAB,
- 0x88, 0x34, 0x39, 0x55, 0xE0, 0x94, 0xC6, 0xAF,
- 0x0D, 0x20, 0xD0, 0xC7, 0x14, 0xFB, 0x0A, 0x98,
- 0x8F, 0x54, 0x3F, 0x30, 0x0F, 0x58, 0xD3, 0x89
- },
- {
- 0x82, 0x71, 0xCC, 0x45, 0xDF, 0xA5, 0xE4, 0x17,
- 0x0E, 0x84, 0x7E, 0x86, 0x30, 0xB9, 0x52, 0xCF,
- 0x9C, 0x2A, 0xA7, 0x77, 0xD0, 0x6F, 0x26, 0xA7,
- 0x58, 0x5B, 0x83, 0x81, 0xF1, 0x88, 0xDA, 0xCC,
- 0x73, 0x37, 0x39, 0x1C, 0xFC, 0xC9, 0x4B, 0x05,
- 0x3D, 0xC4, 0xEC, 0x29, 0xCC, 0x17, 0xF0, 0x77,
- 0x87, 0x04, 0x28, 0xF1, 0xAC, 0x23, 0xFD, 0xDD,
- 0xA1, 0x65, 0xEF, 0x5A, 0x3F, 0x15, 0x5F, 0x39
- },
- {
- 0xBF, 0x23, 0xC0, 0xC2, 0x5C, 0x80, 0x60, 0xE4,
- 0xF6, 0x99, 0x5F, 0x16, 0x23, 0xA3, 0xBE, 0xBE,
- 0xCA, 0xA9, 0x6E, 0x30, 0x86, 0x80, 0x00, 0x0A,
- 0x8A, 0xA3, 0xCD, 0x56, 0xBB, 0x1A, 0x6D, 0xA0,
- 0x99, 0xE1, 0x0D, 0x92, 0x31, 0xB3, 0x7F, 0x45,
- 0x19, 0xB2, 0xEF, 0xD2, 0xC2, 0x4D, 0xE7, 0x2F,
- 0x31, 0xA5, 0xF1, 0x95, 0x35, 0x24, 0x1B, 0x4A,
- 0x59, 0xFA, 0x3C, 0x03, 0xCE, 0xB7, 0x90, 0xE7
- },
- {
- 0x87, 0x7F, 0xD6, 0x52, 0xC0, 0x52, 0x81, 0x00,
- 0x9C, 0x0A, 0x52, 0x50, 0xE7, 0xA3, 0xA6, 0x71,
- 0xF8, 0xB1, 0x8C, 0x10, 0x88, 0x17, 0xFE, 0x4A,
- 0x87, 0x4D, 0xE2, 0x2D, 0xA8, 0xE4, 0x5D, 0xB1,
- 0x19, 0x58, 0xA6, 0x00, 0xC5, 0xF6, 0x2E, 0x67,
- 0xD3, 0x6C, 0xBF, 0x84, 0x47, 0x4C, 0xF2, 0x44,
- 0xA9, 0xC2, 0xB0, 0x3A, 0x9F, 0xB9, 0xDC, 0x71,
- 0x1C, 0xD1, 0xA2, 0xCA, 0xB6, 0xF3, 0xFA, 0xE0
- },
- {
- 0x29, 0xDF, 0x4D, 0x87, 0xEA, 0x44, 0x4B, 0xAF,
- 0x5B, 0xCD, 0xF5, 0xF4, 0xE4, 0x15, 0x79, 0xE2,
- 0x8A, 0x67, 0xDE, 0x84, 0x14, 0x9F, 0x06, 0xC0,
- 0x3F, 0x11, 0x0E, 0xA8, 0x4F, 0x57, 0x2A, 0x9F,
- 0x67, 0x6A, 0xDD, 0xD0, 0x4C, 0x48, 0x78, 0xF4,
- 0x9C, 0x5C, 0x00, 0xAC, 0xCD, 0xA4, 0x41, 0xB1,
- 0xA3, 0x87, 0xCA, 0xCE, 0xB2, 0xE9, 0x93, 0xBB,
- 0x7A, 0x10, 0xCD, 0x8C, 0x2D, 0x67, 0x17, 0xE1
- },
- {
- 0x71, 0x0D, 0xAC, 0xB1, 0x66, 0x84, 0x46, 0x39,
- 0xCD, 0x7B, 0x63, 0x7C, 0x27, 0x42, 0x09, 0x42,
- 0x4E, 0x24, 0x49, 0xDC, 0x35, 0xD7, 0x90, 0xBB,
- 0xFA, 0x4F, 0x76, 0x17, 0x70, 0x54, 0xA3, 0x6B,
- 0x3B, 0x76, 0xFA, 0xC0, 0xCA, 0x6E, 0x61, 0xDF,
- 0x1E, 0x68, 0x70, 0x00, 0x67, 0x8A, 0xC0, 0x74,
- 0x6D, 0xF7, 0x5D, 0x0A, 0x39, 0x54, 0x89, 0x76,
- 0x81, 0xFD, 0x39, 0x3A, 0x15, 0x5A, 0x1B, 0xB4
- },
- {
- 0xC1, 0xD5, 0xF9, 0x3B, 0x8D, 0xEA, 0x1F, 0x25,
- 0x71, 0xBA, 0xBC, 0xCB, 0xC0, 0x17, 0x64, 0x54,
- 0x1A, 0x0C, 0xDA, 0x87, 0xE4, 0x44, 0xD6, 0x73,
- 0xC5, 0x09, 0x66, 0xCA, 0x55, 0x9C, 0x33, 0x35,
- 0x4B, 0x3A, 0xCB, 0x26, 0xE5, 0xD5, 0x78, 0x1F,
- 0xFB, 0x28, 0x84, 0x7A, 0x4B, 0x47, 0x54, 0xD7,
- 0x70, 0x08, 0xC6, 0x2A, 0x83, 0x58, 0x35, 0xF5,
- 0x00, 0xDE, 0xA7, 0xC3, 0xB5, 0x8B, 0xDA, 0xE2
- },
- {
- 0xA4, 0x1E, 0x41, 0x27, 0x1C, 0xDA, 0xB8, 0xAF,
- 0x4D, 0x72, 0xB1, 0x04, 0xBF, 0xB2, 0xAD, 0x04,
- 0x1A, 0xC4, 0xDF, 0x14, 0x67, 0x7D, 0xA6, 0x71,
- 0xD8, 0x56, 0x40, 0xC4, 0xB1, 0x87, 0xF5, 0x0C,
- 0x2B, 0x66, 0x51, 0x3C, 0x46, 0x19, 0xFB, 0xD5,
- 0xD5, 0xDC, 0x4F, 0xE6, 0x5D, 0xD3, 0x7B, 0x90,
- 0x42, 0xE9, 0x84, 0x8D, 0xDA, 0x55, 0x6A, 0x50,
- 0x4C, 0xAA, 0x2B, 0x1C, 0x6A, 0xFE, 0x47, 0x30
- },
- {
- 0xE7, 0xBC, 0xBA, 0xCD, 0xC3, 0x79, 0xC4, 0x3D,
- 0x81, 0xEB, 0xAD, 0xCB, 0x37, 0x78, 0x15, 0x52,
- 0xFC, 0x1D, 0x75, 0x3E, 0x8C, 0xF3, 0x10, 0xD9,
- 0x68, 0x39, 0x2D, 0x06, 0xC9, 0x1F, 0x1D, 0x64,
- 0xCC, 0x9E, 0x90, 0xCE, 0x1D, 0x22, 0xC3, 0x2D,
- 0x27, 0x7F, 0xC6, 0xCD, 0xA4, 0x33, 0xA4, 0xD4,
- 0x42, 0xC7, 0x62, 0xE9, 0xEA, 0xCF, 0x2C, 0x25,
- 0x9F, 0x32, 0xD6, 0x4C, 0xF9, 0xDA, 0x3A, 0x22
- },
- {
- 0x51, 0x75, 0x5B, 0x4A, 0xC5, 0x45, 0x6B, 0x13,
- 0x21, 0x8A, 0x19, 0xC5, 0xB9, 0x24, 0x2F, 0x57,
- 0xC4, 0xA9, 0x81, 0xE4, 0xD4, 0xEC, 0xDC, 0xE0,
- 0x9A, 0x31, 0x93, 0x36, 0x2B, 0x80, 0x8A, 0x57,
- 0x93, 0x45, 0xD4, 0x88, 0x1C, 0x26, 0x07, 0xA5,
- 0x65, 0x34, 0xDD, 0x7F, 0x21, 0x95, 0x6A, 0xFF,
- 0x72, 0xC2, 0xF4, 0x17, 0x3A, 0x6E, 0x7B, 0x6C,
- 0xC2, 0x21, 0x2B, 0xA0, 0xE3, 0xDA, 0xEE, 0x1F
- },
- {
- 0xDC, 0xC2, 0xC4, 0xBE, 0xB9, 0xC1, 0xF2, 0x60,
- 0x7B, 0x78, 0x6C, 0x20, 0xC6, 0x31, 0x97, 0x23,
- 0x47, 0x03, 0x4C, 0x1C, 0xC0, 0x2F, 0xCC, 0x7D,
- 0x02, 0xFF, 0x01, 0x09, 0x9C, 0xFE, 0x1C, 0x69,
- 0x89, 0x84, 0x0A, 0xC2, 0x13, 0x92, 0x36, 0x29,
- 0x11, 0x3A, 0xA8, 0xBA, 0xD7, 0x13, 0xCC, 0xF0,
- 0xFE, 0x4C, 0xE1, 0x32, 0x64, 0xFB, 0x32, 0xB8,
- 0xB0, 0xFE, 0x37, 0x2D, 0xA3, 0x82, 0x54, 0x4A
- },
- {
- 0x3D, 0x55, 0x17, 0x6A, 0xCE, 0xA4, 0xA7, 0xE3,
- 0xA6, 0x5F, 0xFA, 0x9F, 0xB1, 0x0A, 0x7A, 0x17,
- 0x67, 0x19, 0x9C, 0xF0, 0x77, 0xCE, 0xE9, 0xF7,
- 0x15, 0x32, 0xD6, 0x7C, 0xD7, 0xC7, 0x3C, 0x9F,
- 0x93, 0xCF, 0xC3, 0x7C, 0xCD, 0xCC, 0x1F, 0xDE,
- 0xF5, 0x0A, 0xAD, 0x46, 0xA5, 0x04, 0xA6, 0x50,
- 0xD2, 0x98, 0xD5, 0x97, 0xA3, 0xA9, 0xFA, 0x95,
- 0xC6, 0xC4, 0x0C, 0xB7, 0x1F, 0xA5, 0xE7, 0x25
- },
- {
- 0xD0, 0x77, 0x13, 0xC0, 0x05, 0xDE, 0x96, 0xDD,
- 0x21, 0xD2, 0xEB, 0x8B, 0xBE, 0xCA, 0x66, 0x74,
- 0x6E, 0xA5, 0x1A, 0x31, 0xAE, 0x92, 0x2A, 0x3E,
- 0x74, 0x86, 0x48, 0x89, 0x54, 0x0A, 0x48, 0xDB,
- 0x27, 0xD7, 0xE4, 0xC9, 0x03, 0x11, 0x63, 0x8B,
- 0x22, 0x4B, 0xF0, 0x20, 0x1B, 0x50, 0x18, 0x91,
- 0x75, 0x48, 0x48, 0x11, 0x3C, 0x26, 0x61, 0x08,
- 0xD0, 0xAD, 0xB1, 0x3D, 0xB7, 0x19, 0x09, 0xC7
- },
- {
- 0x58, 0x98, 0x3C, 0x21, 0x43, 0x3D, 0x95, 0x0C,
- 0xAA, 0x23, 0xE4, 0xBC, 0x18, 0x54, 0x3B, 0x8E,
- 0x60, 0x1C, 0x20, 0x43, 0x18, 0x53, 0x21, 0x52,
- 0xDA, 0xF5, 0xE1, 0x59, 0xA0, 0xCD, 0x14, 0x80,
- 0x18, 0x3D, 0x29, 0x28, 0x5C, 0x05, 0xF1, 0x29,
- 0xCB, 0x0C, 0xC3, 0x16, 0x46, 0x87, 0x92, 0x80,
- 0x86, 0xFF, 0xE3, 0x80, 0x15, 0x8D, 0xF1, 0xD3,
- 0x94, 0xC6, 0xAC, 0x0D, 0x42, 0x88, 0xBC, 0xA8
- },
- {
- 0x81, 0x00, 0xA8, 0xDC, 0x52, 0x8D, 0x2B, 0x68,
- 0x2A, 0xB4, 0x25, 0x08, 0x01, 0xBA, 0x33, 0xF0,
- 0x2A, 0x3E, 0x94, 0xC5, 0x4D, 0xAC, 0x0A, 0xE1,
- 0x48, 0x2A, 0xA2, 0x1F, 0x51, 0xEF, 0x3A, 0x82,
- 0xF3, 0x80, 0x7E, 0x6F, 0xAC, 0xB0, 0xAE, 0xB0,
- 0x59, 0x47, 0xBF, 0x7A, 0xA2, 0xAD, 0xCB, 0x03,
- 0x43, 0x56, 0xF9, 0x0F, 0xA4, 0x56, 0x0E, 0xDE,
- 0x02, 0x20, 0x1A, 0x37, 0xE4, 0x11, 0xEC, 0x1A
- },
- {
- 0x07, 0x02, 0x5F, 0x1B, 0xB6, 0xC7, 0x84, 0xF3,
- 0xFE, 0x49, 0xDE, 0x5C, 0x14, 0xB9, 0x36, 0xA5,
- 0xAC, 0xAC, 0xAC, 0xAA, 0xB3, 0x3F, 0x6A, 0xC4,
- 0xD0, 0xE0, 0x0A, 0xB6, 0xA1, 0x24, 0x83, 0xD6,
- 0xBE, 0xC0, 0x0B, 0x4F, 0xE6, 0x7C, 0x7C, 0xA5,
- 0xCC, 0x50, 0x8C, 0x2A, 0x53, 0xEF, 0xB5, 0xBF,
- 0xA5, 0x39, 0x87, 0x69, 0xD8, 0x43, 0xFF, 0x0D,
- 0x9E, 0x8B, 0x14, 0xD3, 0x6A, 0x01, 0xA7, 0x7F
- },
- {
- 0xBA, 0x6A, 0xEF, 0xD9, 0x72, 0xB6, 0x18, 0x6E,
- 0x02, 0x7A, 0x76, 0x27, 0x3A, 0x4A, 0x72, 0x33,
- 0x21, 0xA3, 0xF5, 0x80, 0xCF, 0xA8, 0x94, 0xDA,
- 0x5A, 0x9C, 0xE8, 0xE7, 0x21, 0xC8, 0x28, 0x55,
- 0x2C, 0x64, 0xDA, 0xCE, 0xE3, 0xA7, 0xFD, 0x2D,
- 0x74, 0x3B, 0x5C, 0x35, 0xAD, 0x0C, 0x8E, 0xFA,
- 0x71, 0xF8, 0xCE, 0x99, 0xBF, 0x96, 0x33, 0x47,
- 0x10, 0xE2, 0xC2, 0x34, 0x6E, 0x8F, 0x3C, 0x52
- },
- {
- 0xE0, 0x72, 0x1E, 0x02, 0x51, 0x7A, 0xED, 0xFA,
- 0x4E, 0x7E, 0x9B, 0xA5, 0x03, 0xE0, 0x25, 0xFD,
- 0x46, 0xE7, 0x14, 0x56, 0x6D, 0xC8, 0x89, 0xA8,
- 0x4C, 0xBF, 0xE5, 0x6A, 0x55, 0xDF, 0xBE, 0x2F,
- 0xC4, 0x93, 0x8A, 0xC4, 0x12, 0x05, 0x88, 0x33,
- 0x5D, 0xEA, 0xC8, 0xEF, 0x3F, 0xA2, 0x29, 0xAD,
- 0xC9, 0x64, 0x7F, 0x54, 0xAD, 0x2E, 0x34, 0x72,
- 0x23, 0x4F, 0x9B, 0x34, 0xEF, 0xC4, 0x65, 0x43
- },
- {
- 0xB6, 0x29, 0x26, 0x69, 0xCC, 0xD3, 0x8D, 0x5F,
- 0x01, 0xCA, 0xAE, 0x96, 0xBA, 0x27, 0x2C, 0x76,
- 0xA8, 0x79, 0xA4, 0x57, 0x43, 0xAF, 0xA0, 0x72,
- 0x5D, 0x83, 0xB9, 0xEB, 0xB2, 0x66, 0x65, 0xB7,
- 0x31, 0xF1, 0x84, 0x8C, 0x52, 0xF1, 0x19, 0x72,
- 0xB6, 0x64, 0x4F, 0x55, 0x4C, 0x06, 0x4F, 0xA9,
- 0x07, 0x80, 0xDB, 0xBB, 0xF3, 0xA8, 0x9D, 0x4F,
- 0xC3, 0x1F, 0x67, 0xDF, 0x3E, 0x58, 0x57, 0xEF
- },
- {
- 0x23, 0x19, 0xE3, 0x78, 0x9C, 0x47, 0xE2, 0xDA,
- 0xA5, 0xFE, 0x80, 0x7F, 0x61, 0xBE, 0xC2, 0xA1,
- 0xA6, 0x53, 0x7F, 0xA0, 0x3F, 0x19, 0xFF, 0x32,
- 0xE8, 0x7E, 0xEC, 0xBF, 0xD6, 0x4B, 0x7E, 0x0E,
- 0x8C, 0xCF, 0xF4, 0x39, 0xAC, 0x33, 0x3B, 0x04,
- 0x0F, 0x19, 0xB0, 0xC4, 0xDD, 0xD1, 0x1A, 0x61,
- 0xE2, 0x4A, 0xC1, 0xFE, 0x0F, 0x10, 0xA0, 0x39,
- 0x80, 0x6C, 0x5D, 0xCC, 0x0D, 0xA3, 0xD1, 0x15
- },
- {
- 0xF5, 0x97, 0x11, 0xD4, 0x4A, 0x03, 0x1D, 0x5F,
- 0x97, 0xA9, 0x41, 0x3C, 0x06, 0x5D, 0x1E, 0x61,
- 0x4C, 0x41, 0x7E, 0xDE, 0x99, 0x85, 0x90, 0x32,
- 0x5F, 0x49, 0xBA, 0xD2, 0xFD, 0x44, 0x4D, 0x3E,
- 0x44, 0x18, 0xBE, 0x19, 0xAE, 0xC4, 0xE1, 0x14,
- 0x49, 0xAC, 0x1A, 0x57, 0x20, 0x78, 0x98, 0xBC,
- 0x57, 0xD7, 0x6A, 0x1B, 0xCF, 0x35, 0x66, 0x29,
- 0x2C, 0x20, 0xC6, 0x83, 0xA5, 0xC4, 0x64, 0x8F
- },
- {
- 0xDF, 0x0A, 0x9D, 0x0C, 0x21, 0x28, 0x43, 0xA6,
- 0xA9, 0x34, 0xE3, 0x90, 0x2B, 0x2D, 0xD3, 0x0D,
- 0x17, 0xFB, 0xA5, 0xF9, 0x69, 0xD2, 0x03, 0x0B,
- 0x12, 0xA5, 0x46, 0xD8, 0xA6, 0xA4, 0x5E, 0x80,
- 0xCF, 0x56, 0x35, 0xF0, 0x71, 0xF0, 0x45, 0x2E,
- 0x9C, 0x91, 0x92, 0x75, 0xDA, 0x99, 0xBE, 0xD5,
- 0x1E, 0xB1, 0x17, 0x3C, 0x1A, 0xF0, 0x51, 0x87,
- 0x26, 0xB7, 0x5B, 0x0E, 0xC3, 0xBA, 0xE2, 0xB5
- },
- {
- 0xA3, 0xEB, 0x6E, 0x6C, 0x7B, 0xF2, 0xFB, 0x8B,
- 0x28, 0xBF, 0xE8, 0xB1, 0x5E, 0x15, 0xBB, 0x50,
- 0x0F, 0x78, 0x1E, 0xCC, 0x86, 0xF7, 0x78, 0xC3,
- 0xA4, 0xE6, 0x55, 0xFC, 0x58, 0x69, 0xBF, 0x28,
- 0x46, 0xA2, 0x45, 0xD4, 0xE3, 0x3B, 0x7B, 0x14,
- 0x43, 0x6A, 0x17, 0xE6, 0x3B, 0xE7, 0x9B, 0x36,
- 0x65, 0x5C, 0x22, 0x6A, 0x50, 0xFF, 0xBC, 0x71,
- 0x24, 0x20, 0x7B, 0x02, 0x02, 0x34, 0x2D, 0xB5
- },
- {
- 0x56, 0xD4, 0xCB, 0xCD, 0x07, 0x05, 0x63, 0x42,
- 0x6A, 0x01, 0x70, 0x69, 0x42, 0x5C, 0x2C, 0xD2,
- 0xAE, 0x54, 0x06, 0x68, 0x28, 0x7A, 0x5F, 0xB9,
- 0xDA, 0xC4, 0x32, 0xEB, 0x8A, 0xB1, 0xA3, 0x53,
- 0xA3, 0x0F, 0x2F, 0xE1, 0xF4, 0x0D, 0x83, 0x33,
- 0x3A, 0xFE, 0x69, 0x6A, 0x26, 0x77, 0x95, 0x40,
- 0x8A, 0x92, 0xFE, 0x7D, 0xA0, 0x7A, 0x0C, 0x18,
- 0x14, 0xCF, 0x77, 0xF3, 0x6E, 0x10, 0x5E, 0xE8
- },
- {
- 0xE5, 0x9B, 0x99, 0x87, 0xD4, 0x28, 0xB3, 0xED,
- 0xA3, 0x7D, 0x80, 0xAB, 0xDB, 0x16, 0xCD, 0x2B,
- 0x0A, 0xEF, 0x67, 0x4C, 0x2B, 0x1D, 0xDA, 0x44,
- 0x32, 0xEA, 0x91, 0xEE, 0x6C, 0x93, 0x5C, 0x68,
- 0x4B, 0x48, 0xB4, 0x42, 0x8A, 0x8C, 0xC7, 0x40,
- 0xE5, 0x79, 0xA3, 0x0D, 0xEF, 0xF3, 0x5A, 0x80,
- 0x30, 0x13, 0x82, 0x0D, 0xD2, 0x3F, 0x14, 0xAE,
- 0x1D, 0x84, 0x13, 0xB5, 0xC8, 0x67, 0x2A, 0xEC
- },
- {
- 0xCD, 0x9F, 0xCC, 0x99, 0xF9, 0x9D, 0x4C, 0xC1,
- 0x6D, 0x03, 0x19, 0x00, 0xB2, 0xA7, 0x36, 0xE1,
- 0x50, 0x8D, 0xB4, 0xB5, 0x86, 0x81, 0x4E, 0x63,
- 0x45, 0x85, 0x7F, 0x35, 0x4A, 0x70, 0xCC, 0xEC,
- 0xB1, 0xDF, 0x3B, 0x50, 0xA1, 0x9A, 0xDA, 0xF4,
- 0x3C, 0x27, 0x8E, 0xFA, 0x42, 0x3F, 0xF4, 0xBB,
- 0x6C, 0x52, 0x3E, 0xC7, 0xFD, 0x78, 0x59, 0xB9,
- 0x7B, 0x16, 0x8A, 0x7E, 0xBF, 0xF8, 0x46, 0x7C
- },
- {
- 0x06, 0x02, 0x18, 0x5D, 0x8C, 0x3A, 0x78, 0x73,
- 0x8B, 0x99, 0x16, 0x4B, 0x8B, 0xC6, 0xFF, 0xB2,
- 0x1C, 0x7D, 0xEB, 0xEB, 0xBF, 0x80, 0x63, 0x72,
- 0xE0, 0xDA, 0x44, 0xD1, 0x21, 0x54, 0x55, 0x97,
- 0xB9, 0xC6, 0x62, 0xA2, 0x55, 0xDC, 0x31, 0x54,
- 0x2C, 0xF9, 0x95, 0xEC, 0xBE, 0x6A, 0x50, 0xFB,
- 0x5E, 0x6E, 0x0E, 0xE4, 0xEF, 0x24, 0x0F, 0xE5,
- 0x57, 0xED, 0xED, 0x11, 0x88, 0x08, 0x7E, 0x86
- },
- {
- 0xC0, 0x8A, 0xFA, 0x5B, 0x92, 0x7B, 0xF0, 0x80,
- 0x97, 0xAF, 0xC5, 0xFF, 0xF9, 0xCA, 0x4E, 0x78,
- 0x00, 0x12, 0x5C, 0x1F, 0x52, 0xF2, 0xAF, 0x35,
- 0x53, 0xFA, 0x2B, 0x89, 0xE1, 0xE3, 0x01, 0x5C,
- 0x4F, 0x87, 0xD5, 0xE0, 0xA4, 0x89, 0x56, 0xAD,
- 0x31, 0x45, 0x0B, 0x08, 0x3D, 0xAD, 0x14, 0x7F,
- 0xFB, 0x5E, 0xC0, 0x34, 0x34, 0xA2, 0x68, 0x30,
- 0xCF, 0x37, 0xD1, 0x03, 0xAB, 0x50, 0xC5, 0xDA
- },
- {
- 0x36, 0xF1, 0xE1, 0xC1, 0x1D, 0x6E, 0xF6, 0xBC,
- 0x3B, 0x53, 0x6D, 0x50, 0x5D, 0x54, 0x4A, 0x87,
- 0x15, 0x22, 0xC5, 0xC2, 0xA2, 0x53, 0x06, 0x7E,
- 0xC9, 0x93, 0x3B, 0x6E, 0xC2, 0x54, 0x64, 0xDA,
- 0xF9, 0x85, 0x52, 0x5F, 0x5B, 0x95, 0x60, 0xA1,
- 0x6D, 0x89, 0x02, 0x59, 0xAC, 0x1B, 0xB5, 0xCC,
- 0x67, 0xC0, 0xC4, 0x69, 0xCD, 0xE1, 0x33, 0xDE,
- 0xF0, 0x00, 0xEA, 0x1D, 0x68, 0x6F, 0x4F, 0x5D
- },
- {
- 0xBF, 0x2A, 0xB2, 0xE2, 0x47, 0x0F, 0x54, 0x38,
- 0xC3, 0xB6, 0x89, 0xE6, 0x6E, 0x76, 0x86, 0xFF,
- 0xFA, 0x0C, 0xB1, 0xE1, 0x79, 0x8A, 0xD3, 0xA8,
- 0x6F, 0xF9, 0x90, 0x75, 0xBF, 0x61, 0x38, 0xE3,
- 0x3D, 0x9C, 0x0C, 0xE5, 0x9A, 0xFB, 0x24, 0xAC,
- 0x67, 0xA0, 0x2A, 0xF3, 0x44, 0x28, 0x19, 0x1A,
- 0x9A, 0x0A, 0x60, 0x41, 0xC0, 0x74, 0x71, 0xB7,
- 0xC3, 0xB1, 0xA7, 0x52, 0xD6, 0xFC, 0x0B, 0x8B
- },
- {
- 0xD4, 0x00, 0x60, 0x1F, 0x97, 0x28, 0xCC, 0xC4,
- 0xC9, 0x23, 0x42, 0xD9, 0x78, 0x7D, 0x8D, 0x28,
- 0xAB, 0x32, 0x3A, 0xF3, 0x75, 0xCA, 0x56, 0x24,
- 0xB4, 0xBB, 0x91, 0xD1, 0x72, 0x71, 0xFB, 0xAE,
- 0x86, 0x2E, 0x41, 0x3B, 0xE7, 0x3F, 0x1F, 0x68,
- 0xE6, 0x15, 0xB8, 0xC5, 0xC3, 0x91, 0xBE, 0x0D,
- 0xBD, 0x91, 0x44, 0x74, 0x6E, 0xB3, 0x39, 0xAD,
- 0x54, 0x15, 0x47, 0xBA, 0x9C, 0x46, 0x8A, 0x17
- },
- {
- 0x79, 0xFE, 0x2F, 0xE1, 0x57, 0xEB, 0x85, 0xA0,
- 0x38, 0xAB, 0xB8, 0xEB, 0xBC, 0x64, 0x77, 0x31,
- 0xD2, 0xC8, 0x3F, 0x51, 0xB0, 0xAC, 0x6E, 0xE1,
- 0x4A, 0xA2, 0x84, 0xCB, 0x6A, 0x35, 0x49, 0xA4,
- 0xDC, 0xCE, 0xB3, 0x00, 0x74, 0x0A, 0x82, 0x5F,
- 0x52, 0xF5, 0xFB, 0x30, 0xB0, 0x3B, 0x8C, 0x4D,
- 0x8B, 0x0F, 0x4A, 0xA6, 0x7A, 0x63, 0xF4, 0xA9,
- 0x4E, 0x33, 0x03, 0xC4, 0xED, 0xA4, 0xC0, 0x2B
- },
- {
- 0x75, 0x35, 0x13, 0x13, 0xB5, 0x2A, 0x85, 0x29,
- 0x29, 0x8D, 0x8C, 0x18, 0x6B, 0x17, 0x68, 0x66,
- 0x6D, 0xCC, 0xA8, 0x59, 0x53, 0x17, 0xD7, 0xA4,
- 0x81, 0x6E, 0xB8, 0x8C, 0x06, 0x20, 0x20, 0xC0,
- 0xC8, 0xEF, 0xC5, 0x54, 0xBB, 0x34, 0x1B, 0x64,
- 0x68, 0x8D, 0xB5, 0xCC, 0xAF, 0xC3, 0x5F, 0x3C,
- 0x3C, 0xD0, 0x9D, 0x65, 0x64, 0xB3, 0x6D, 0x7B,
- 0x04, 0xA2, 0x48, 0xE1, 0x46, 0x98, 0x0D, 0x4B
- },
- {
- 0xE3, 0x12, 0x8B, 0x1D, 0x31, 0x1D, 0x02, 0x17,
- 0x9D, 0x7F, 0x25, 0xF9, 0x7A, 0x5A, 0x8B, 0xEE,
- 0x2C, 0xC8, 0xC8, 0x63, 0x03, 0x64, 0x4F, 0xCD,
- 0x66, 0x4E, 0x15, 0x7D, 0x1F, 0xEF, 0x00, 0xF2,
- 0x3E, 0x46, 0xF9, 0xA5, 0xE8, 0xE5, 0xC8, 0x90,
- 0xCE, 0x56, 0x5B, 0xB6, 0xAB, 0xD4, 0x30, 0x2C,
- 0xE0, 0x64, 0x69, 0xD5, 0x2A, 0x5B, 0xD5, 0x3E,
- 0x1C, 0x5A, 0x54, 0xD0, 0x46, 0x49, 0xDC, 0x03
- },
- {
- 0xC2, 0x38, 0x2A, 0x72, 0xD2, 0xD3, 0xAC, 0xE9,
- 0xD5, 0x93, 0x3D, 0x00, 0xB6, 0x08, 0x27, 0xED,
- 0x38, 0x0C, 0xDA, 0x08, 0xD0, 0xBA, 0x5F, 0x6D,
- 0xD4, 0x1E, 0x29, 0xEE, 0x6D, 0xBE, 0x8E, 0xCB,
- 0x92, 0x35, 0xF0, 0x6B, 0xE9, 0x5D, 0x83, 0xB6,
- 0x81, 0x6A, 0x2F, 0xB7, 0xA5, 0xAD, 0x47, 0x03,
- 0x5E, 0x8A, 0x4B, 0x69, 0xA4, 0x88, 0x4B, 0x99,
- 0xE4, 0xBE, 0xCE, 0x58, 0xCA, 0xB2, 0x5D, 0x44
- },
- {
- 0x6B, 0x1C, 0x69, 0x46, 0x0B, 0xBD, 0x50, 0xAC,
- 0x2E, 0xD6, 0xF3, 0x2E, 0x6E, 0x88, 0x7C, 0xFE,
- 0xD4, 0x07, 0xD4, 0x7D, 0xCF, 0x0A, 0xAA, 0x60,
- 0x38, 0x7F, 0xE3, 0x20, 0xD7, 0x80, 0xBD, 0x03,
- 0xEA, 0xB6, 0xD7, 0xBA, 0xEB, 0x2A, 0x07, 0xD1,
- 0x0C, 0xD5, 0x52, 0xA3, 0x00, 0x34, 0x13, 0x54,
- 0xEA, 0x9A, 0x5F, 0x03, 0x18, 0x3A, 0x62, 0x3F,
- 0x92, 0xA2, 0xD4, 0xD9, 0xF0, 0x09, 0x26, 0xAF
- },
- {
- 0x6C, 0xDA, 0x20, 0x6C, 0x80, 0xCD, 0xC9, 0xC4,
- 0x4B, 0xA9, 0x90, 0xE0, 0x32, 0x8C, 0x31, 0x4F,
- 0x81, 0x9B, 0x14, 0x2D, 0x00, 0x63, 0x04, 0x04,
- 0xC4, 0x8C, 0x05, 0xDC, 0x76, 0xD1, 0xB0, 0x0C,
- 0xE4, 0xD7, 0x2F, 0xC6, 0xA4, 0x8E, 0x14, 0x69,
- 0xDD, 0xEF, 0x60, 0x94, 0x12, 0xC3, 0x64, 0x82,
- 0x08, 0x54, 0x21, 0x4B, 0x48, 0x69, 0xAF, 0x09,
- 0x0F, 0x00, 0xD3, 0xC1, 0xBA, 0x44, 0x3E, 0x1B
- },
- {
- 0x7F, 0xFC, 0x8C, 0x26, 0xFB, 0xD6, 0xA0, 0xF7,
- 0xA6, 0x09, 0xE6, 0xE1, 0x93, 0x9F, 0x6A, 0x9E,
- 0xDF, 0x1B, 0x0B, 0x06, 0x66, 0x41, 0xFB, 0x76,
- 0xC4, 0xF9, 0x60, 0x2E, 0xD7, 0x48, 0xD1, 0x16,
- 0x02, 0x49, 0x6B, 0x35, 0x35, 0x5B, 0x1A, 0xA2,
- 0x55, 0x85, 0x0A, 0x50, 0x9D, 0x2F, 0x8E, 0xE1,
- 0x8C, 0x8F, 0x3E, 0x1D, 0x7D, 0xCB, 0xC3, 0x7A,
- 0x13, 0x65, 0x98, 0xF5, 0x6A, 0x59, 0xED, 0x17
- },
- {
- 0x70, 0xDE, 0x1F, 0x08, 0xDD, 0x4E, 0x09, 0xD5,
- 0xFC, 0x15, 0x1F, 0x17, 0xFC, 0x99, 0x1A, 0x23,
- 0xAB, 0xFC, 0x05, 0x10, 0x42, 0x90, 0xD5, 0x04,
- 0x68, 0x88, 0x2E, 0xFA, 0xF5, 0x82, 0xB6, 0xEC,
- 0x2F, 0x14, 0xF5, 0x77, 0xC0, 0xD6, 0x8C, 0x3A,
- 0xD0, 0x66, 0x26, 0x91, 0x6E, 0x3C, 0x86, 0xE6,
- 0xDA, 0xAB, 0x6C, 0x53, 0xE5, 0x16, 0x3E, 0x82,
- 0xB6, 0xBD, 0x0C, 0xE4, 0x9F, 0xC0, 0xD8, 0xDF
- },
- {
- 0x4F, 0x81, 0x93, 0x57, 0x56, 0xED, 0x35, 0xEE,
- 0x20, 0x58, 0xEE, 0x0C, 0x6A, 0x61, 0x10, 0xD6,
- 0xFA, 0xC5, 0xCB, 0x6A, 0x4F, 0x46, 0xAA, 0x94,
- 0x11, 0x60, 0x3F, 0x99, 0x96, 0x58, 0x23, 0xB6,
- 0xDA, 0x48, 0x38, 0x27, 0x6C, 0x5C, 0x06, 0xBC,
- 0x78, 0x80, 0xE3, 0x76, 0xD9, 0x27, 0x58, 0x36,
- 0x9E, 0xE7, 0x30, 0x5B, 0xCE, 0xC8, 0xD3, 0xCF,
- 0xD2, 0x8C, 0xCA, 0xBB, 0x7B, 0x4F, 0x05, 0x79
- },
- {
- 0xAB, 0xCB, 0x61, 0xCB, 0x36, 0x83, 0xD1, 0x8F,
- 0x27, 0xAD, 0x52, 0x79, 0x08, 0xED, 0x2D, 0x32,
- 0xA0, 0x42, 0x6C, 0xB7, 0xBB, 0x4B, 0xF1, 0x80,
- 0x61, 0x90, 0x3A, 0x7D, 0xC4, 0x2E, 0x7E, 0x76,
- 0xF9, 0x82, 0x38, 0x23, 0x04, 0xD1, 0x8A, 0xF8,
- 0xC8, 0x0D, 0x91, 0xDD, 0x58, 0xDD, 0x47, 0xAF,
- 0x76, 0xF8, 0xE2, 0xC3, 0x6E, 0x28, 0xAF, 0x24,
- 0x76, 0xB4, 0xBC, 0xCF, 0x82, 0xE8, 0x9F, 0xDF
- },
- {
- 0x02, 0xD2, 0x61, 0xAD, 0x56, 0xA5, 0x26, 0x33,
- 0x1B, 0x64, 0x3D, 0xD2, 0x18, 0x6D, 0xE9, 0xA8,
- 0x2E, 0x72, 0xA5, 0x82, 0x23, 0xCD, 0x1E, 0x72,
- 0x36, 0x86, 0xC5, 0x3D, 0x86, 0x9B, 0x83, 0xB9,
- 0x46, 0x32, 0xB7, 0xB6, 0x47, 0xAB, 0x2A, 0xFC,
- 0x0D, 0x52, 0x2E, 0x29, 0xDA, 0x3A, 0x56, 0x15,
- 0xB7, 0x41, 0xD8, 0x28, 0x52, 0xE0, 0xDF, 0x41,
- 0xB6, 0x60, 0x07, 0xDB, 0xCB, 0xA9, 0x05, 0x43
- },
- {
- 0xC5, 0x83, 0x27, 0x41, 0xFA, 0x30, 0xC5, 0x43,
- 0x68, 0x23, 0x01, 0x53, 0x83, 0xD2, 0x97, 0xFF,
- 0x4C, 0x4A, 0x5D, 0x72, 0x76, 0xC3, 0xF9, 0x02,
- 0x12, 0x20, 0x66, 0xE0, 0x4B, 0xE5, 0x43, 0x1B,
- 0x1A, 0x85, 0xFA, 0xF7, 0x3B, 0x91, 0x84, 0x34,
- 0xF9, 0x30, 0x09, 0x63, 0xD1, 0xDE, 0xA9, 0xE8,
- 0xAC, 0x39, 0x24, 0xEF, 0x49, 0x02, 0x26, 0xED,
- 0xEE, 0xA5, 0xF7, 0x43, 0xE4, 0x10, 0x66, 0x9F
- },
- {
- 0xCF, 0xAE, 0xAB, 0x26, 0x8C, 0xD0, 0x75, 0xA5,
- 0xA6, 0xAE, 0xD5, 0x15, 0x02, 0x3A, 0x03, 0x2D,
- 0x54, 0xF2, 0xF2, 0xFF, 0x73, 0x3C, 0xE0, 0xCB,
- 0xC7, 0x8D, 0xB5, 0x1D, 0xB4, 0x50, 0x4D, 0x67,
- 0x59, 0x23, 0xF8, 0x27, 0x46, 0xD6, 0x59, 0x46,
- 0x06, 0xAD, 0x5D, 0x67, 0x73, 0x4B, 0x11, 0xA6,
- 0x7C, 0xC6, 0xA4, 0x68, 0xC2, 0x03, 0x2E, 0x43,
- 0xCA, 0x1A, 0x94, 0xC6, 0x27, 0x3A, 0x98, 0x5E
- },
- {
- 0x86, 0x08, 0x50, 0xF9, 0x2E, 0xB2, 0x68, 0x27,
- 0x2B, 0x67, 0xD1, 0x33, 0x60, 0x9B, 0xD6, 0x4E,
- 0x34, 0xF6, 0x1B, 0xF0, 0x3F, 0x4C, 0x17, 0x38,
- 0x64, 0x5C, 0x17, 0xFE, 0xC8, 0x18, 0x46, 0x5D,
- 0x7E, 0xCD, 0x2B, 0xE2, 0x90, 0x76, 0x41, 0x13,
- 0x00, 0x25, 0xFD, 0xA7, 0x94, 0x70, 0xAB, 0x73,
- 0x16, 0x46, 0xE7, 0xF6, 0x94, 0x40, 0xE8, 0x36,
- 0x7E, 0xA7, 0x6A, 0xC4, 0xCE, 0xE8, 0xA1, 0xDF
- },
- {
- 0x84, 0xB1, 0x54, 0xED, 0x29, 0xBB, 0xED, 0xEF,
- 0xA6, 0x48, 0x28, 0x68, 0x39, 0x04, 0x6F, 0x4B,
- 0x5A, 0xA3, 0x44, 0x30, 0xE2, 0xD6, 0x7F, 0x74,
- 0x96, 0xE4, 0xC3, 0x9F, 0x2C, 0x7E, 0xA7, 0x89,
- 0x95, 0xF6, 0x9E, 0x12, 0x92, 0x20, 0x00, 0x16,
- 0xF1, 0x6A, 0xC3, 0xB3, 0x77, 0x00, 0xE6, 0xC7,
- 0xE7, 0x86, 0x1A, 0xFC, 0x39, 0x6B, 0x64, 0xA5,
- 0x9A, 0x1D, 0xBF, 0x47, 0xA5, 0x5C, 0x4B, 0xBC
- },
- {
- 0xAE, 0xEE, 0xC2, 0x60, 0xA5, 0xD8, 0xEF, 0xF5,
- 0xCC, 0xAB, 0x8B, 0x95, 0xDA, 0x43, 0x5A, 0x63,
- 0xED, 0x7A, 0x21, 0xEA, 0x7F, 0xC7, 0x55, 0x94,
- 0x13, 0xFD, 0x61, 0x7E, 0x33, 0x60, 0x9F, 0x8C,
- 0x29, 0x0E, 0x64, 0xBB, 0xAC, 0xC5, 0x28, 0xF6,
- 0xC0, 0x80, 0x26, 0x22, 0x88, 0xB0, 0xF0, 0xA3,
- 0x21, 0x9B, 0xE2, 0x23, 0xC9, 0x91, 0xBE, 0xE9,
- 0x2E, 0x72, 0x34, 0x95, 0x93, 0xE6, 0x76, 0x38
- },
- {
- 0x8A, 0xD7, 0x8A, 0x9F, 0x26, 0x60, 0x1D, 0x12,
- 0x7E, 0x8D, 0x2F, 0x2F, 0x97, 0x6E, 0x63, 0xD1,
- 0x9A, 0x05, 0x4A, 0x17, 0xDC, 0xF5, 0x9E, 0x0F,
- 0x01, 0x3A, 0xB5, 0x4A, 0x68, 0x87, 0xBB, 0xDF,
- 0xFD, 0xE7, 0xAA, 0xAE, 0x11, 0x7E, 0x0F, 0xBF,
- 0x32, 0x71, 0x01, 0x65, 0x95, 0xB9, 0xD9, 0xC7,
- 0x12, 0xC0, 0x1B, 0x2C, 0x53, 0xE9, 0x65, 0x5A,
- 0x38, 0x2B, 0xC4, 0x52, 0x2E, 0x61, 0x66, 0x45
- },
- {
- 0x89, 0x34, 0x15, 0x9D, 0xAD, 0xE1, 0xAC, 0x74,
- 0x14, 0x7D, 0xFA, 0x28, 0x2C, 0x75, 0x95, 0x4F,
- 0xCE, 0xF4, 0x43, 0xEF, 0x25, 0xF8, 0x0D, 0xFE,
- 0x9F, 0xB6, 0xEA, 0x63, 0x3B, 0x85, 0x45, 0x11,
- 0x1D, 0x08, 0xB3, 0x4E, 0xF4, 0x3F, 0xFF, 0x17,
- 0x02, 0x6C, 0x79, 0x64, 0xF5, 0xDE, 0xAC, 0x6D,
- 0x2B, 0x3C, 0x29, 0xDA, 0xCF, 0x27, 0x47, 0xF0,
- 0x22, 0xDF, 0x59, 0x67, 0xDF, 0xDC, 0x1A, 0x0A
- },
- {
- 0xCD, 0x36, 0xDD, 0x0B, 0x24, 0x06, 0x14, 0xCF,
- 0x2F, 0xA2, 0xB9, 0xE9, 0x59, 0x67, 0x9D, 0xCD,
- 0xD7, 0x2E, 0xC0, 0xCD, 0x58, 0xA4, 0x3D, 0xA3,
- 0x79, 0x0A, 0x92, 0xF6, 0xCD, 0xEB, 0x9E, 0x1E,
- 0x79, 0x5E, 0x47, 0x8A, 0x0A, 0x47, 0xD3, 0x71,
- 0x10, 0x0D, 0x34, 0x0C, 0x5C, 0xED, 0xCD, 0xBB,
- 0xC9, 0xE6, 0x8B, 0x3F, 0x46, 0x08, 0x18, 0xE5,
- 0xBD, 0xFF, 0x7B, 0x4C, 0xDA, 0x4C, 0x27, 0x44
- },
- {
- 0x00, 0xDF, 0x4E, 0x09, 0x9B, 0x80, 0x71, 0x37,
- 0xA8, 0x59, 0x90, 0xF4, 0x9D, 0x3A, 0x94, 0x31,
- 0x5E, 0x5A, 0x5F, 0x7F, 0x7A, 0x60, 0x76, 0xB3,
- 0x03, 0xE9, 0x6B, 0x05, 0x6F, 0xB9, 0x38, 0x00,
- 0x11, 0x1F, 0x47, 0x96, 0x28, 0xE2, 0xF8, 0xDB,
- 0x59, 0xAE, 0xB6, 0xAC, 0x70, 0xC3, 0xB6, 0x1F,
- 0x51, 0xF9, 0xB4, 0x6E, 0x80, 0xFF, 0xDE, 0xAE,
- 0x25, 0xEB, 0xDD, 0xB4, 0xAF, 0x6C, 0xB4, 0xEE
- },
- {
- 0x2B, 0x9C, 0x95, 0x5E, 0x6C, 0xAE, 0xD4, 0xB7,
- 0xC9, 0xE2, 0x46, 0xB8, 0x6F, 0x9A, 0x17, 0x26,
- 0xE8, 0x10, 0xC5, 0x9D, 0x12, 0x6C, 0xEE, 0x66,
- 0xED, 0x71, 0xBF, 0x01, 0x5B, 0x83, 0x55, 0x8A,
- 0x4B, 0x6D, 0x84, 0xD1, 0x8D, 0xC3, 0xFF, 0x46,
- 0x20, 0xC2, 0xFF, 0xB7, 0x22, 0x35, 0x9F, 0xDE,
- 0xF8, 0x5B, 0xA0, 0xD4, 0xE2, 0xD2, 0x2E, 0xCB,
- 0xE0, 0xED, 0x78, 0x4F, 0x99, 0xAF, 0xE5, 0x87
- },
- {
- 0x18, 0x1D, 0xF0, 0xA2, 0x61, 0xA2, 0xF7, 0xD2,
- 0x9E, 0xA5, 0xA1, 0x57, 0x72, 0x71, 0x51, 0x05,
- 0xD4, 0x50, 0xA4, 0xB6, 0xC2, 0x36, 0xF6, 0x99,
- 0xF4, 0x62, 0xD6, 0x0C, 0xA7, 0x64, 0x87, 0xFE,
- 0xED, 0xFC, 0x9F, 0x5E, 0xB9, 0x2D, 0xF8, 0x38,
- 0xE8, 0xFB, 0x5D, 0xC3, 0x69, 0x4E, 0x84, 0xC5,
- 0xE0, 0xF4, 0xA1, 0x0B, 0x76, 0x1F, 0x50, 0x67,
- 0x62, 0xBE, 0x05, 0x2C, 0x74, 0x5A, 0x6E, 0xE8
- },
- {
- 0x21, 0xFB, 0x20, 0x34, 0x58, 0xBF, 0x3A, 0x7E,
- 0x9A, 0x80, 0x43, 0x9F, 0x9A, 0x90, 0x28, 0x99,
- 0xCD, 0x5D, 0xE0, 0x13, 0x9D, 0xFD, 0x56, 0xF7,
- 0x11, 0x0C, 0x9D, 0xEC, 0x84, 0x37, 0xB2, 0x6B,
- 0xDA, 0x63, 0xDE, 0x2F, 0x56, 0x59, 0x26, 0xD8,
- 0x5E, 0xDB, 0x1D, 0x6C, 0x68, 0x25, 0x66, 0x97,
- 0x43, 0xDD, 0x99, 0x92, 0x65, 0x3D, 0x13, 0x97,
- 0x95, 0x44, 0xD5, 0xDC, 0x82, 0x28, 0xBF, 0xAA
- },
- {
- 0xEF, 0x02, 0x1F, 0x29, 0xC5, 0xFF, 0xB8, 0x30,
- 0xE6, 0x4B, 0x9A, 0xA9, 0x05, 0x8D, 0xD6, 0x60,
- 0xFD, 0x2F, 0xCB, 0x81, 0xC4, 0x97, 0xA7, 0xE6,
- 0x98, 0xBC, 0xFB, 0xF5, 0x9D, 0xE5, 0xAD, 0x4A,
- 0x86, 0xFF, 0x93, 0xC1, 0x0A, 0x4B, 0x9D, 0x1A,
- 0xE5, 0x77, 0x47, 0x25, 0xF9, 0x07, 0x2D, 0xCD,
- 0xE9, 0xE1, 0xF1, 0x99, 0xBA, 0xB9, 0x1F, 0x8B,
- 0xFF, 0x92, 0x18, 0x64, 0xAA, 0x50, 0x2E, 0xEE
- },
- {
- 0xB3, 0xCF, 0xDA, 0x40, 0x52, 0x6B, 0x7F, 0x1D,
- 0x37, 0x56, 0x9B, 0xDF, 0xCD, 0xF9, 0x11, 0xE5,
- 0xA6, 0xEF, 0xE6, 0xB2, 0xEC, 0x90, 0xA0, 0x45,
- 0x4C, 0x47, 0xB2, 0xC0, 0x46, 0xBF, 0x13, 0x0F,
- 0xC3, 0xB3, 0x52, 0xB3, 0x4D, 0xF4, 0x81, 0x3D,
- 0x48, 0xD3, 0x3A, 0xB8, 0xE2, 0x69, 0xB6, 0x9B,
- 0x07, 0x56, 0x76, 0xCB, 0x6D, 0x00, 0xA8, 0xDC,
- 0xF9, 0xE1, 0xF9, 0x67, 0xEC, 0x19, 0x1B, 0x2C
- },
- {
- 0xB4, 0xC6, 0xC3, 0xB2, 0x67, 0x07, 0x1E, 0xEF,
- 0xB9, 0xC8, 0xC7, 0x2E, 0x0E, 0x2B, 0x94, 0x12,
- 0x93, 0x64, 0x1F, 0x86, 0x73, 0xCB, 0x70, 0xC1,
- 0xCC, 0x26, 0xAD, 0x1E, 0x73, 0xCF, 0x14, 0x17,
- 0x55, 0x86, 0x0A, 0xD1, 0x9B, 0x34, 0xC2, 0xF3,
- 0x4E, 0xD3, 0x5B, 0xB5, 0x2E, 0xC4, 0x50, 0x7C,
- 0xC1, 0xFE, 0x59, 0x04, 0x77, 0x43, 0xA5, 0xF0,
- 0xC6, 0xFE, 0xBD, 0xE6, 0x25, 0xE2, 0x60, 0x91
- },
- {
- 0x57, 0xA3, 0x4F, 0x2B, 0xCC, 0xA6, 0x0D, 0x4B,
- 0x85, 0x10, 0x3B, 0x83, 0x0C, 0x9D, 0x79, 0x52,
- 0xA4, 0x16, 0xBE, 0x52, 0x63, 0xAE, 0x42, 0x9C,
- 0x9E, 0x5E, 0x53, 0xFE, 0x85, 0x90, 0xA8, 0xF7,
- 0x8E, 0xC6, 0x5A, 0x51, 0x10, 0x9E, 0xA8, 0x5D,
- 0xCD, 0xF7, 0xB6, 0x22, 0x3F, 0x9F, 0x2B, 0x34,
- 0x05, 0x39, 0xFA, 0xD8, 0x19, 0x23, 0xDB, 0xF8,
- 0xED, 0xAB, 0xF9, 0x51, 0x29, 0xE4, 0xDF, 0xF6
- },
- {
- 0x9C, 0xF4, 0x66, 0x62, 0xFC, 0xD6, 0x1A, 0x23,
- 0x22, 0x77, 0xB6, 0x85, 0x66, 0x3B, 0x8B, 0x5D,
- 0xA8, 0x32, 0xDF, 0xD9, 0xA3, 0xB8, 0xCC, 0xFE,
- 0xEC, 0x99, 0x3E, 0xC6, 0xAC, 0x41, 0x5A, 0xD0,
- 0x7E, 0x04, 0x8A, 0xDF, 0xE4, 0x14, 0xDF, 0x27,
- 0x27, 0x70, 0xDB, 0xA8, 0x67, 0xDA, 0x5C, 0x12,
- 0x24, 0xC6, 0xFD, 0x0A, 0xA0, 0xC2, 0x18, 0x7D,
- 0x42, 0x6A, 0xC6, 0x47, 0xE9, 0x88, 0x73, 0x61
- },
- {
- 0x5C, 0xE1, 0x04, 0x2A, 0xB4, 0xD5, 0x42, 0xC2,
- 0xF9, 0xEE, 0x9D, 0x17, 0x26, 0x2A, 0xF8, 0x16,
- 0x40, 0x98, 0x93, 0x5B, 0xEF, 0x17, 0x3D, 0x0E,
- 0x18, 0x48, 0x9B, 0x04, 0x84, 0x17, 0x46, 0xCD,
- 0x2F, 0x2D, 0xF8, 0x66, 0xBD, 0x7D, 0xA6, 0xE5,
- 0xEF, 0x90, 0x24, 0xC6, 0x48, 0x02, 0x3E, 0xC7,
- 0x23, 0xAB, 0x9C, 0x62, 0xFD, 0x80, 0x28, 0x57,
- 0x39, 0xD8, 0x4F, 0x15, 0xD2, 0xAB, 0x51, 0x5A
- },
- {
- 0x84, 0x88, 0x39, 0x6B, 0xD4, 0xA8, 0x72, 0x9B,
- 0x7A, 0x47, 0x31, 0x78, 0xF2, 0x32, 0xDA, 0xDF,
- 0x3F, 0x0F, 0x8E, 0x22, 0x67, 0x8B, 0xA5, 0xA4,
- 0x3E, 0x04, 0x1E, 0x72, 0xDA, 0x1E, 0x2C, 0xF8,
- 0x21, 0x94, 0xC3, 0x07, 0x20, 0x7A, 0x54, 0xCB,
- 0x81, 0x56, 0x29, 0x33, 0x39, 0xEA, 0xEC, 0x69,
- 0x3F, 0xF6, 0x6B, 0xFC, 0xD5, 0xEF, 0xC6, 0x5E,
- 0x95, 0xE4, 0xEC, 0xAF, 0x54, 0x53, 0x0A, 0xBD
- },
- {
- 0xF5, 0x98, 0xDA, 0x90, 0x1C, 0x38, 0x35, 0xBC,
- 0xA5, 0x60, 0x77, 0x90, 0x37, 0xDF, 0xDE, 0x9F,
- 0x0C, 0x51, 0xDC, 0x61, 0xC0, 0xB7, 0x60, 0xFC,
- 0x15, 0x22, 0xD7, 0xB4, 0x70, 0xEE, 0x63, 0xF5,
- 0xBD, 0xC6, 0x49, 0x84, 0x76, 0xE8, 0x60, 0x49,
- 0xAD, 0x86, 0xE4, 0xE2, 0x1A, 0xF2, 0x85, 0x4A,
- 0x98, 0x4C, 0xC9, 0x05, 0x42, 0x7D, 0x2F, 0x17,
- 0xF6, 0x6B, 0x1F, 0x41, 0xC3, 0xDA, 0x6F, 0x61
- },
- {
- 0x5F, 0x93, 0x26, 0x97, 0x98, 0xCF, 0x02, 0x13,
- 0x21, 0x07, 0x33, 0x76, 0x60, 0xA8, 0xD7, 0xA1,
- 0x77, 0x35, 0x4C, 0x02, 0x12, 0xEB, 0x93, 0xE5,
- 0x55, 0xE7, 0xC3, 0x7A, 0x08, 0xAE, 0xF3, 0xD8,
- 0xDC, 0xE0, 0x12, 0x17, 0x01, 0x1C, 0xD9, 0x65,
- 0xC0, 0x4D, 0xD2, 0xC1, 0x05, 0xF2, 0xE2, 0xB6,
- 0xCA, 0xE5, 0xE4, 0xE6, 0xBC, 0xAF, 0x09, 0xDF,
- 0xBE, 0xE3, 0xE0, 0xA6, 0xA6, 0x35, 0x7C, 0x37
- },
- {
- 0x0E, 0xCF, 0x58, 0x1D, 0x47, 0xBA, 0xC9, 0x23,
- 0x09, 0x86, 0xFA, 0xAB, 0xD7, 0x0C, 0x2F, 0x5B,
- 0x80, 0xE9, 0x10, 0x66, 0xF0, 0xEC, 0x55, 0xA8,
- 0x42, 0x93, 0x78, 0x82, 0x28, 0x6D, 0x2C, 0xA0,
- 0x07, 0xBB, 0x4E, 0x97, 0x3B, 0x0B, 0x09, 0x1D,
- 0x52, 0x16, 0x7F, 0xF7, 0xC4, 0x00, 0x9C, 0x7A,
- 0xB4, 0xAD, 0x38, 0xFF, 0xF1, 0xDC, 0xEA, 0xCD,
- 0xB7, 0xBE, 0x81, 0xEF, 0x4A, 0x45, 0x29, 0x52
- },
- {
- 0x5A, 0xEC, 0xA8, 0xAB, 0xE1, 0x52, 0x85, 0x82,
- 0xB2, 0xA3, 0x07, 0xB4, 0x00, 0x95, 0x85, 0x49,
- 0x8A, 0x3D, 0x46, 0x7C, 0xA6, 0x10, 0x1C, 0xB0,
- 0xC5, 0x12, 0x6F, 0x99, 0x76, 0x05, 0x6E, 0x9F,
- 0xFC, 0x12, 0x3C, 0xC2, 0x0C, 0x30, 0x2B, 0x2A,
- 0x73, 0x7F, 0x49, 0x2C, 0x75, 0xD2, 0x1F, 0x01,
- 0x51, 0x2C, 0x90, 0xCA, 0x05, 0x41, 0xDF, 0xA5,
- 0x6E, 0x95, 0x0A, 0x32, 0x1D, 0xCB, 0x28, 0xD8
- },
- {
- 0x73, 0x2F, 0xBF, 0x8F, 0x1C, 0xB2, 0xB8, 0x32,
- 0x92, 0x63, 0xED, 0xE2, 0x78, 0x58, 0xFE, 0x46,
- 0xF8, 0xD3, 0x35, 0x4D, 0x37, 0x6B, 0xCD, 0xA0,
- 0x54, 0x8E, 0x7C, 0xE1, 0xFA, 0x9D, 0xD1, 0x1F,
- 0x85, 0xEB, 0x66, 0x1F, 0xE9, 0x50, 0xB5, 0x43,
- 0xAA, 0x63, 0x5C, 0xA4, 0xD3, 0xF0, 0x4E, 0xDE,
- 0x5B, 0x32, 0xD6, 0xB6, 0x56, 0xE5, 0xCE, 0x1C,
- 0x44, 0xD3, 0x5C, 0x4A, 0x6C, 0x56, 0xCF, 0xF8
- },
- {
- 0xD5, 0xE9, 0x38, 0x73, 0x5D, 0x63, 0x78, 0x8C,
- 0x80, 0x10, 0x0A, 0xEF, 0xD1, 0x86, 0x48, 0xD1,
- 0x8C, 0xF2, 0x72, 0xF6, 0x9F, 0x20, 0xFF, 0x24,
- 0xCF, 0xE2, 0x89, 0x5C, 0x08, 0x8A, 0xD0, 0x8B,
- 0x01, 0x04, 0xDA, 0x16, 0x72, 0xA4, 0xEB, 0x26,
- 0xFC, 0x52, 0x54, 0x5C, 0xC7, 0xD7, 0xA0, 0x1B,
- 0x26, 0x6C, 0xF5, 0x46, 0xC4, 0x03, 0xC4, 0x5B,
- 0xD1, 0x29, 0xEB, 0x41, 0xBD, 0xD9, 0x20, 0x0B
- },
- {
- 0x65, 0xA2, 0x45, 0xB4, 0x93, 0x52, 0xEE, 0x29,
- 0x7D, 0x91, 0xAF, 0x8C, 0x8B, 0xE0, 0x05, 0x28,
- 0xAC, 0x6E, 0x04, 0x6D, 0xD8, 0x3A, 0xC7, 0xBD,
- 0x46, 0x5A, 0x98, 0x81, 0x6D, 0xD6, 0x8F, 0x3E,
- 0x00, 0xE1, 0xAE, 0x8F, 0x89, 0x53, 0x27, 0xA7,
- 0xE9, 0xA8, 0xC9, 0x32, 0x65, 0x98, 0x37, 0x9A,
- 0x29, 0xC9, 0xFC, 0x91, 0xEC, 0x0C, 0x6E, 0xEF,
- 0x08, 0xF3, 0xE2, 0xB2, 0x16, 0xC1, 0x10, 0x08
- },
- {
- 0xC9, 0x56, 0x54, 0xB6, 0x30, 0x19, 0x13, 0x0A,
- 0xB4, 0x5D, 0xD0, 0xFB, 0x49, 0x41, 0xB9, 0x8A,
- 0xEB, 0x3A, 0xF2, 0xA1, 0x23, 0x91, 0x3E, 0xCA,
- 0x2C, 0xE9, 0x9B, 0x3E, 0x97, 0x41, 0x0A, 0x7B,
- 0xF8, 0x66, 0x1C, 0xC7, 0xFB, 0xAA, 0x2B, 0xC1,
- 0xCF, 0x2B, 0x13, 0x11, 0x3B, 0x1E, 0xD4, 0x0A,
- 0x01, 0x18, 0xB8, 0x8E, 0x5F, 0xFF, 0xC3, 0x54,
- 0x27, 0x59, 0xEA, 0x00, 0x7E, 0xD4, 0xC5, 0x8D
- },
- {
- 0x1E, 0xB2, 0x62, 0xF3, 0x8F, 0xA4, 0x94, 0x43,
- 0x1F, 0x01, 0x7D, 0xAD, 0x44, 0xC0, 0xDF, 0xB6,
- 0x93, 0x24, 0xAC, 0x03, 0x2F, 0x04, 0xB6, 0x57,
- 0xFC, 0x91, 0xA8, 0x86, 0x47, 0xBB, 0x74, 0x76,
- 0x0F, 0x24, 0xE7, 0xC9, 0x56, 0x51, 0x4F, 0x0C,
- 0xF0, 0x02, 0x99, 0x0B, 0x18, 0x2C, 0x16, 0x42,
- 0xB9, 0xB2, 0x42, 0x6E, 0x96, 0xA6, 0x11, 0x87,
- 0xE4, 0xE0, 0x12, 0xF0, 0x0E, 0x21, 0x7D, 0x84
- },
- {
- 0x3B, 0x95, 0x5A, 0xEE, 0xBF, 0xA5, 0x15, 0x1A,
- 0xC1, 0xAB, 0x8E, 0x3F, 0x5C, 0xC1, 0xE3, 0x76,
- 0x70, 0x84, 0xC8, 0x42, 0xA5, 0x75, 0xD3, 0x62,
- 0x69, 0x83, 0x6E, 0x97, 0x35, 0x3D, 0x41, 0x62,
- 0x2B, 0x73, 0x1D, 0xDD, 0xCD, 0x5F, 0x26, 0x95,
- 0x50, 0xA3, 0xA5, 0xB8, 0x7B, 0xE1, 0xE9, 0x03,
- 0x26, 0x34, 0x0B, 0x6E, 0x0E, 0x62, 0x55, 0x58,
- 0x15, 0xD9, 0x60, 0x05, 0x97, 0xAC, 0x6E, 0xF9
- },
- {
- 0x68, 0x28, 0x9F, 0x66, 0x05, 0x47, 0x3B, 0xA0,
- 0xE4, 0xF2, 0x41, 0xBA, 0xF7, 0x47, 0x7A, 0x98,
- 0x85, 0x42, 0x6A, 0x85, 0x8F, 0x19, 0xEF, 0x2A,
- 0x18, 0xB0, 0xD4, 0x0E, 0xF8, 0xE4, 0x12, 0x82,
- 0xED, 0x55, 0x26, 0xB5, 0x19, 0x79, 0x9E, 0x27,
- 0x0F, 0x13, 0x88, 0x13, 0x27, 0x91, 0x82, 0x78,
- 0x75, 0x57, 0x11, 0x07, 0x1D, 0x85, 0x11, 0xFE,
- 0x96, 0x3E, 0x3B, 0x56, 0x06, 0xAA, 0x37, 0x16
- },
- {
- 0x80, 0xA3, 0x37, 0x87, 0x54, 0x26, 0x12, 0xC3,
- 0x8F, 0x6B, 0xCD, 0x7C, 0xD8, 0x6C, 0xAB, 0x46,
- 0x02, 0x27, 0x50, 0x9B, 0x1C, 0xBA, 0xD5, 0xEC,
- 0x40, 0x8A, 0x91, 0x41, 0x3D, 0x51, 0x15, 0x5A,
- 0x04, 0x76, 0xDA, 0xDB, 0xF3, 0xA2, 0x51, 0x8E,
- 0x4A, 0x6E, 0x77, 0xCC, 0x34, 0x66, 0x22, 0xE3,
- 0x47, 0xA4, 0x69, 0xBF, 0x8B, 0xAA, 0x5F, 0x04,
- 0xEB, 0x2D, 0x98, 0x70, 0x53, 0x55, 0xD0, 0x63
- },
- {
- 0x34, 0x62, 0x9B, 0xC6, 0xD8, 0x31, 0x39, 0x1C,
- 0x4C, 0xDF, 0x8A, 0xF1, 0xB4, 0xB7, 0xB6, 0xB8,
- 0xE8, 0xEE, 0x17, 0xCF, 0x98, 0xC7, 0x0E, 0x5D,
- 0xD5, 0x86, 0xCD, 0x99, 0xF1, 0x4B, 0x11, 0xDF,
- 0x94, 0x51, 0x66, 0x23, 0x6A, 0x95, 0x71, 0xE6,
- 0xD5, 0x91, 0xBB, 0x83, 0xEE, 0x4D, 0x16, 0x4D,
- 0x46, 0xF6, 0xB9, 0xD8, 0xEF, 0x86, 0xFF, 0x86,
- 0x5A, 0x81, 0xBF, 0xB9, 0x1B, 0x00, 0x42, 0x4B
- },
- {
- 0x8B, 0x7C, 0xC3, 0x39, 0x16, 0x38, 0x63, 0xBB,
- 0x43, 0x83, 0xE5, 0x42, 0xB0, 0xEF, 0x0E, 0x7C,
- 0xF3, 0x6B, 0x84, 0xAD, 0x93, 0x2C, 0xDF, 0x5A,
- 0x80, 0x41, 0x9E, 0xC9, 0xAD, 0x69, 0x2E, 0x7A,
- 0x7E, 0x78, 0x4D, 0x2C, 0x7C, 0xB3, 0x79, 0x6A,
- 0x18, 0xB8, 0xF8, 0x00, 0x03, 0x5F, 0x3A, 0xA0,
- 0x6C, 0x82, 0x41, 0x00, 0x61, 0x11, 0x20, 0xA7,
- 0xBD, 0xEB, 0x35, 0x61, 0x8C, 0xCB, 0x81, 0xB7
- },
- {
- 0x4F, 0x08, 0x4E, 0x49, 0x39, 0xDD, 0x5A, 0x7F,
- 0x5A, 0x65, 0x8F, 0xAD, 0x58, 0xA1, 0x8A, 0x15,
- 0xC2, 0x5C, 0x32, 0xEC, 0x1C, 0x7F, 0xD5, 0xC5,
- 0xC6, 0xC3, 0xE8, 0x92, 0xB3, 0x97, 0x1A, 0xEA,
- 0xAC, 0x30, 0x83, 0x04, 0xEF, 0x17, 0xB1, 0xC4,
- 0x72, 0x39, 0xEA, 0x4B, 0xB3, 0x98, 0xB3, 0xFD,
- 0x6D, 0x45, 0x28, 0xD8, 0xDE, 0x8E, 0x76, 0x8A,
- 0xE0, 0xF1, 0xA5, 0xA5, 0xC6, 0xB5, 0xC2, 0x97
- },
- {
- 0x48, 0xF4, 0x07, 0xA1, 0xAF, 0x5B, 0x80, 0x09,
- 0xB2, 0x05, 0x17, 0x42, 0xE8, 0xCF, 0x5C, 0xD5,
- 0x65, 0x66, 0x69, 0xE7, 0xD7, 0x22, 0xEE, 0x8E,
- 0x7B, 0xD2, 0x02, 0x06, 0x08, 0x49, 0x44, 0x21,
- 0x68, 0xD8, 0xFA, 0xCC, 0x11, 0x7C, 0x01, 0x2B,
- 0xFB, 0x7B, 0xF4, 0x49, 0xD9, 0x9B, 0xEF, 0xFF,
- 0x6A, 0x34, 0xAE, 0xA2, 0x03, 0xF1, 0xD8, 0xD3,
- 0x52, 0x72, 0x2B, 0xE5, 0x01, 0x4E, 0xC8, 0x18
- },
- {
- 0xA6, 0xAA, 0x82, 0xCD, 0x1E, 0x42, 0x6F, 0x9A,
- 0x73, 0xBF, 0xA3, 0x9A, 0x29, 0x03, 0x78, 0x76,
- 0x11, 0x46, 0x55, 0xB8, 0xC2, 0x2D, 0x6D, 0x3F,
- 0xF8, 0xB6, 0x38, 0xAE, 0x7D, 0xEA, 0x6B, 0x17,
- 0x84, 0x3E, 0x09, 0xE5, 0x2E, 0xB6, 0x6F, 0xA1,
- 0xE4, 0x75, 0xE4, 0xA8, 0xA3, 0xDE, 0x42, 0x9B,
- 0x7D, 0x0F, 0x4A, 0x77, 0x6F, 0xCB, 0x8B, 0xDC,
- 0x9B, 0x9F, 0xED, 0xE7, 0xD5, 0x2E, 0x81, 0x5F
- },
- {
- 0x58, 0x17, 0x02, 0x7D, 0x6B, 0xDD, 0x00, 0xC5,
- 0xDD, 0x10, 0xAC, 0x59, 0x3C, 0xD5, 0x60, 0x37,
- 0x22, 0x70, 0x77, 0x5A, 0x18, 0x52, 0x6D, 0x7E,
- 0x6F, 0x13, 0x87, 0x2A, 0x2E, 0x20, 0xEA, 0xB6,
- 0x64, 0x62, 0x5B, 0xE7, 0x16, 0x8A, 0xC4, 0xBD,
- 0x7C, 0x9E, 0x0C, 0xE7, 0xFC, 0x40, 0x99, 0xE0,
- 0xF4, 0x84, 0x42, 0xE2, 0xC7, 0x67, 0x19, 0x1C,
- 0x6E, 0x12, 0x84, 0xE9, 0xB2, 0xCC, 0xEA, 0x8C
- },
- {
- 0x08, 0xE4, 0x10, 0x28, 0x34, 0x0A, 0x45, 0xC7,
- 0x4E, 0x40, 0x52, 0xB3, 0xA8, 0xD6, 0x38, 0x9E,
- 0x22, 0xE0, 0x43, 0xA1, 0xAD, 0xAB, 0x5E, 0x28,
- 0xD9, 0x76, 0x19, 0x45, 0x0D, 0x72, 0x34, 0x69,
- 0xB6, 0x20, 0xCA, 0xA5, 0x19, 0xB8, 0x1C, 0x14,
- 0x52, 0x38, 0x54, 0xF6, 0x19, 0xFD, 0x30, 0x27,
- 0xE3, 0x84, 0x7B, 0xD0, 0x32, 0x76, 0xE6, 0x06,
- 0x04, 0xA8, 0x0D, 0xDB, 0x4D, 0xE8, 0x76, 0xD6
- },
- {
- 0x13, 0x0B, 0x84, 0x20, 0x53, 0x7E, 0xB0, 0x7D,
- 0x72, 0xAB, 0xDA, 0x07, 0xC8, 0x5A, 0xCB, 0xD8,
- 0xB9, 0xA4, 0x4F, 0x16, 0x32, 0x1D, 0xD0, 0x42,
- 0x21, 0x45, 0xF8, 0x09, 0x67, 0x3D, 0x30, 0xF2,
- 0xB5, 0x32, 0x13, 0x26, 0xE2, 0xBF, 0xF3, 0x17,
- 0xEF, 0x3F, 0xEF, 0x98, 0x3C, 0x51, 0xC4, 0xF8,
- 0xAB, 0x24, 0xA3, 0x25, 0xD2, 0x98, 0xE3, 0x4A,
- 0xFC, 0xE5, 0x69, 0xA8, 0x25, 0x55, 0x77, 0x4C
- },
- {
- 0xAC, 0x49, 0xB8, 0x44, 0xAF, 0xAA, 0x01, 0x2E,
- 0x31, 0xC4, 0x74, 0xCA, 0x26, 0x36, 0x48, 0x84,
- 0x4F, 0xD2, 0xF6, 0x30, 0x79, 0x92, 0xC2, 0xF7,
- 0x52, 0xAC, 0xA0, 0x2C, 0x38, 0x28, 0x96, 0x51,
- 0x75, 0x79, 0x4D, 0xEE, 0xE2, 0xD2, 0xEE, 0x95,
- 0xC6, 0x1C, 0xD2, 0x84, 0xF6, 0xB5, 0xA2, 0xD7,
- 0x5E, 0x2E, 0xF2, 0xB2, 0x9E, 0xE8, 0x14, 0x9E,
- 0x77, 0xFB, 0x81, 0x44, 0x7B, 0x2F, 0xD0, 0x4B
- },
- {
- 0xB9, 0xD7, 0xCA, 0x81, 0xCC, 0x60, 0xBB, 0x95,
- 0x78, 0xE4, 0x40, 0x24, 0xE5, 0xA0, 0xA0, 0xBE,
- 0x80, 0xF2, 0x73, 0x36, 0xA6, 0xA9, 0xF4, 0xE5,
- 0x3D, 0xF3, 0x99, 0x9C, 0xB1, 0x91, 0x28, 0x0B,
- 0x09, 0x0E, 0x2A, 0xC2, 0xD2, 0x9C, 0x5B, 0xAA,
- 0xD9, 0xD7, 0x14, 0x15, 0xBD, 0xC1, 0x29, 0xE6,
- 0x9A, 0xA2, 0x66, 0x7A, 0xF6, 0xA7, 0xFD, 0x5E,
- 0x18, 0x9F, 0xCC, 0xDC, 0xEE, 0x81, 0x73, 0x40
- },
- {
- 0xA7, 0x55, 0xE1, 0x13, 0x38, 0x65, 0x72, 0xC7,
- 0x5C, 0xED, 0x61, 0xD7, 0x19, 0x70, 0x60, 0x70,
- 0xB9, 0x14, 0x60, 0x48, 0xE4, 0x2A, 0x9F, 0x8C,
- 0xD3, 0x56, 0x67, 0xA0, 0x88, 0xB4, 0x2F, 0x08,
- 0x80, 0x8A, 0xBD, 0xF7, 0x7E, 0x61, 0x8A, 0xBD,
- 0x95, 0x9A, 0xFC, 0x75, 0x73, 0x79, 0xCA, 0x2C,
- 0x00, 0xBC, 0xC1, 0xA4, 0x83, 0x90, 0xFA, 0x2B,
- 0xFF, 0x61, 0x8B, 0x1E, 0x00, 0x78, 0xA6, 0x13
- },
- {
- 0xA7, 0x3C, 0x7D, 0xEB, 0xED, 0x32, 0x6F, 0x1C,
- 0x0D, 0xB0, 0x79, 0x5E, 0xE7, 0xD6, 0xE3, 0x94,
- 0x68, 0x94, 0xB8, 0x26, 0xB1, 0xF8, 0x10, 0x1C,
- 0x56, 0xC8, 0x23, 0xBA, 0x17, 0x16, 0x83, 0x12,
- 0xE7, 0xF5, 0x3F, 0xC7, 0xDB, 0xE5, 0x2C, 0x3E,
- 0x11, 0xE6, 0x98, 0x52, 0xC4, 0x04, 0x85, 0xE2,
- 0xEF, 0x18, 0x24, 0x77, 0x86, 0x2E, 0xA6, 0xA3,
- 0x4E, 0xC1, 0x36, 0xE2, 0xDF, 0xEE, 0xA6, 0xF4
- },
- {
- 0x6C, 0xB8, 0xF9, 0xD5, 0x2C, 0x56, 0xD8, 0x2C,
- 0xAC, 0x28, 0xF3, 0x9E, 0xA1, 0x59, 0x3E, 0x8B,
- 0xB2, 0x50, 0x62, 0x93, 0xAC, 0x0D, 0x68, 0x37,
- 0x6A, 0x17, 0x09, 0xB6, 0x2A, 0x46, 0xDF, 0x14,
- 0xA4, 0xAE, 0x64, 0xB2, 0xD8, 0xFA, 0xB7, 0x67,
- 0x33, 0xA1, 0xCE, 0xD2, 0xD5, 0x48, 0xE3, 0xF3,
- 0xC6, 0xFC, 0xB4, 0x9D, 0x40, 0xC3, 0xD5, 0x80,
- 0x8E, 0x44, 0x9C, 0xD8, 0x3D, 0x1C, 0x2A, 0xA2
- },
- {
- 0x68, 0x3F, 0xA2, 0xB2, 0x36, 0x9A, 0x10, 0x16,
- 0x2C, 0x1C, 0x1C, 0x7B, 0x24, 0xBC, 0x97, 0x0E,
- 0xE6, 0x7D, 0xA2, 0x20, 0x56, 0x4F, 0x32, 0x20,
- 0x3F, 0x62, 0x56, 0x96, 0xC0, 0x35, 0x2A, 0x0B,
- 0x9A, 0xD9, 0x66, 0x24, 0x36, 0x2D, 0x95, 0x2D,
- 0x84, 0x46, 0x3C, 0x11, 0x06, 0xA2, 0xDB, 0xA7,
- 0xA0, 0x92, 0x59, 0x98, 0x84, 0xB3, 0x5A, 0x0B,
- 0x89, 0xC8, 0xF1, 0xB6, 0xA9, 0xB5, 0xA6, 0x1E
- },
- {
- 0xAA, 0xD9, 0xAD, 0x44, 0x61, 0x01, 0x18, 0xB7,
- 0x7D, 0x50, 0x8A, 0xEB, 0x1B, 0xBC, 0xD1, 0xC1,
- 0xB7, 0xD0, 0x17, 0x13, 0x97, 0xFB, 0x51, 0x0A,
- 0x40, 0x1B, 0xBC, 0x0E, 0xC3, 0x46, 0x23, 0x67,
- 0x0D, 0x86, 0xA2, 0xDC, 0x3C, 0x8F, 0x3A, 0xB5,
- 0xA2, 0x04, 0x4D, 0xF7, 0x30, 0x25, 0x67, 0x27,
- 0x54, 0x5F, 0x08, 0x60, 0xCE, 0x21, 0xA1, 0xEA,
- 0xC7, 0x17, 0xDF, 0xC4, 0x8F, 0x5D, 0x22, 0x8E
- },
- {
- 0xC4, 0x25, 0x78, 0xDE, 0x23, 0xB4, 0xC9, 0x87,
- 0xD5, 0xE1, 0xAC, 0x4D, 0x68, 0x9E, 0xD5, 0xDE,
- 0x4B, 0x04, 0x17, 0xF9, 0x70, 0x4B, 0xC6, 0xBC,
- 0xE9, 0x69, 0xFA, 0x13, 0x47, 0x15, 0x85, 0xD6,
- 0x2C, 0x2C, 0xB1, 0x21, 0x2A, 0x94, 0x4F, 0x39,
- 0x7F, 0xC9, 0xCA, 0x2C, 0x37, 0x47, 0xC3, 0xBE,
- 0xB6, 0x94, 0xEC, 0x4C, 0x5B, 0xE6, 0x88, 0x28,
- 0xDD, 0xA5, 0x3E, 0xF4, 0x3F, 0xAE, 0xC6, 0xC0
- },
- {
- 0x47, 0x0F, 0x00, 0x84, 0x1E, 0xE8, 0x24, 0x4E,
- 0x63, 0xED, 0x2C, 0x7E, 0xA3, 0x0E, 0x2E, 0x41,
- 0x98, 0x97, 0xC1, 0x97, 0x46, 0x2E, 0xCC, 0xCE,
- 0xCF, 0x71, 0x3B, 0x42, 0xA5, 0x06, 0x5F, 0xFF,
- 0x59, 0x14, 0xBC, 0x9B, 0x79, 0xAF, 0xFE, 0x8F,
- 0x6B, 0x65, 0x78, 0x75, 0xE7, 0x89, 0xAE, 0x21,
- 0x3B, 0xD9, 0x14, 0xCD, 0x35, 0xBD, 0x17, 0x4D,
- 0x46, 0xE9, 0xD1, 0x8B, 0xD8, 0x43, 0x77, 0x3D
- },
- {
- 0x34, 0xFC, 0x42, 0x13, 0x73, 0x0F, 0x47, 0xA5,
- 0xE9, 0xA3, 0x58, 0x0F, 0x64, 0x3E, 0x12, 0x94,
- 0x5C, 0xFC, 0xB3, 0x1B, 0xF2, 0x06, 0xF6, 0xAD,
- 0x45, 0x0C, 0xE5, 0x28, 0xDA, 0x3F, 0xA4, 0x32,
- 0xE0, 0x05, 0xD6, 0xB0, 0xEC, 0xCE, 0x10, 0xDC,
- 0xA7, 0xC5, 0x99, 0x5F, 0x6A, 0xAC, 0xC5, 0x15,
- 0x0E, 0x1B, 0x00, 0x9E, 0x19, 0x75, 0x1E, 0x83,
- 0x09, 0xF8, 0x85, 0x95, 0x31, 0x84, 0x43, 0x74
- },
- {
- 0xFB, 0x3C, 0x1F, 0x0F, 0x56, 0xA5, 0x6F, 0x8E,
- 0x31, 0x6F, 0xDF, 0x5D, 0x85, 0x3C, 0x8C, 0x87,
- 0x2C, 0x39, 0x63, 0x5D, 0x08, 0x36, 0x34, 0xC3,
- 0x90, 0x4F, 0xC3, 0xAC, 0x07, 0xD1, 0xB5, 0x78,
- 0xE8, 0x5F, 0xF0, 0xE4, 0x80, 0xE9, 0x2D, 0x44,
- 0xAD, 0xE3, 0x3B, 0x62, 0xE8, 0x93, 0xEE, 0x32,
- 0x34, 0x3E, 0x79, 0xDD, 0xF6, 0xEF, 0x29, 0x2E,
- 0x89, 0xB5, 0x82, 0xD3, 0x12, 0x50, 0x23, 0x14
- },
- {
- 0xC7, 0xC9, 0x7F, 0xC6, 0x5D, 0xD2, 0xB9, 0xE3,
- 0xD3, 0xD6, 0x07, 0xD3, 0x15, 0x98, 0xD3, 0xF8,
- 0x42, 0x61, 0xE9, 0x91, 0x92, 0x51, 0xE9, 0xC8,
- 0xE5, 0x7B, 0xB5, 0xF8, 0x29, 0x37, 0x7D, 0x5F,
- 0x73, 0xEA, 0xBB, 0xED, 0x55, 0xC6, 0xC3, 0x81,
- 0x18, 0x0F, 0x29, 0xAD, 0x02, 0xE5, 0xBE, 0x79,
- 0x7F, 0xFE, 0xC7, 0xE5, 0x7B, 0xDE, 0xCB, 0xC5,
- 0x0A, 0xD3, 0xD0, 0x62, 0xF0, 0x99, 0x3A, 0xB0
- },
- {
- 0xA5, 0x7A, 0x49, 0xCD, 0xBE, 0x67, 0xAE, 0x7D,
- 0x9F, 0x79, 0x7B, 0xB5, 0xCC, 0x7E, 0xFC, 0x2D,
- 0xF0, 0x7F, 0x4E, 0x1B, 0x15, 0x95, 0x5F, 0x85,
- 0xDA, 0xE7, 0x4B, 0x76, 0xE2, 0xEC, 0xB8, 0x5A,
- 0xFB, 0x6C, 0xD9, 0xEE, 0xED, 0x88, 0x88, 0xD5,
- 0xCA, 0x3E, 0xC5, 0xAB, 0x65, 0xD2, 0x7A, 0x7B,
- 0x19, 0xE5, 0x78, 0x47, 0x57, 0x60, 0xA0, 0x45,
- 0xAC, 0x3C, 0x92, 0xE1, 0x3A, 0x93, 0x8E, 0x77
- },
- {
- 0xC7, 0x14, 0x3F, 0xCE, 0x96, 0x14, 0xA1, 0x7F,
- 0xD6, 0x53, 0xAE, 0xB1, 0x40, 0x72, 0x6D, 0xC9,
- 0xC3, 0xDB, 0xB1, 0xDE, 0x6C, 0xC5, 0x81, 0xB2,
- 0x72, 0x68, 0x97, 0xEC, 0x24, 0xB7, 0xA5, 0x03,
- 0x59, 0xAD, 0x49, 0x22, 0x43, 0xBE, 0x66, 0xD9,
- 0xED, 0xD8, 0xC9, 0x33, 0xB5, 0xB8, 0x0E, 0x0B,
- 0x91, 0xBB, 0x61, 0xEA, 0x98, 0x05, 0x60, 0x06,
- 0x51, 0x69, 0x76, 0xFA, 0xE8, 0xD9, 0x9A, 0x35
- },
- {
- 0x65, 0xBB, 0x58, 0xD0, 0x7F, 0x93, 0x7E, 0x2D,
- 0x3C, 0x7E, 0x65, 0x38, 0x5F, 0x9C, 0x54, 0x73,
- 0x0B, 0x70, 0x41, 0x05, 0xCC, 0xDB, 0x69, 0x1F,
- 0x6E, 0x14, 0x6D, 0x4E, 0xE8, 0xF6, 0xC0, 0x86,
- 0xF4, 0x95, 0x11, 0x03, 0x51, 0x10, 0xA9, 0xAD,
- 0x60, 0x31, 0xFD, 0xCE, 0xB9, 0x43, 0xE0, 0xF9,
- 0x61, 0x3B, 0xCB, 0x27, 0x6D, 0xD4, 0x0F, 0x06,
- 0x24, 0xEF, 0x0F, 0x92, 0x4F, 0x80, 0x97, 0x83
- },
- {
- 0xE5, 0x40, 0x27, 0x7F, 0x68, 0x3B, 0x11, 0x86,
- 0xDD, 0x3B, 0x5B, 0x3F, 0x61, 0x43, 0x33, 0x96,
- 0x58, 0x1A, 0x35, 0xFE, 0xB1, 0x20, 0x02, 0xBE,
- 0x8C, 0x6A, 0x62, 0x31, 0xFC, 0x40, 0xFF, 0xA7,
- 0x0F, 0x08, 0x08, 0x1B, 0xC5, 0x8B, 0x2D, 0x94,
- 0xF7, 0x64, 0x95, 0x43, 0x61, 0x4A, 0x43, 0x5F,
- 0xAA, 0x2D, 0x62, 0x11, 0x0E, 0x13, 0xDA, 0xBC,
- 0x7B, 0x86, 0x62, 0x9B, 0x63, 0xAF, 0x9C, 0x24
- },
- {
- 0x41, 0x85, 0x00, 0x87, 0x8C, 0x5F, 0xBC, 0xB5,
- 0x84, 0xC4, 0x32, 0xF4, 0x28, 0x5E, 0x05, 0xE4,
- 0x9F, 0x2E, 0x3E, 0x07, 0x53, 0x99, 0xA0, 0xDB,
- 0xFC, 0xF8, 0x74, 0xEB, 0xF8, 0xC0, 0x3D, 0x02,
- 0xBF, 0x16, 0xBC, 0x69, 0x89, 0xD1, 0x61, 0xC7,
- 0x7C, 0xA0, 0x78, 0x6B, 0x05, 0x05, 0x3C, 0x6C,
- 0x70, 0x94, 0x33, 0x71, 0x23, 0x19, 0x19, 0x21,
- 0x28, 0x83, 0x5C, 0xF0, 0xB6, 0x60, 0x59, 0x5B
- },
- {
- 0x88, 0x90, 0x90, 0xDB, 0xB1, 0x94, 0x4B, 0xDC,
- 0x94, 0x33, 0xEE, 0x5E, 0xF1, 0x01, 0x0C, 0x7A,
- 0x4A, 0x24, 0xA8, 0xE7, 0x1E, 0xCE, 0xA8, 0xE1,
- 0x2A, 0x31, 0x31, 0x8C, 0xE4, 0x9D, 0xCA, 0xB0,
- 0xAC, 0xA5, 0xC3, 0x80, 0x23, 0x34, 0xAA, 0xB2,
- 0xCC, 0x84, 0xB1, 0x4C, 0x6B, 0x93, 0x21, 0xFE,
- 0x58, 0x6B, 0xF3, 0xF8, 0x76, 0xF1, 0x9C, 0xD4,
- 0x06, 0xEB, 0x11, 0x27, 0xFB, 0x94, 0x48, 0x01
- },
- {
- 0x53, 0xB6, 0xA2, 0x89, 0x10, 0xAA, 0x92, 0xE2,
- 0x7E, 0x53, 0x6F, 0xB5, 0x49, 0xCF, 0x9B, 0x99,
- 0x18, 0x79, 0x10, 0x60, 0x89, 0x8E, 0x0B, 0x9F,
- 0xE1, 0x83, 0x57, 0x7F, 0xF4, 0x3B, 0x5E, 0x9C,
- 0x76, 0x89, 0xC7, 0x45, 0xB3, 0x2E, 0x41, 0x22,
- 0x69, 0x83, 0x7C, 0x31, 0xB8, 0x9E, 0x6C, 0xC1,
- 0x2B, 0xF7, 0x6E, 0x13, 0xCA, 0xD3, 0x66, 0xB7,
- 0x4E, 0xCE, 0x48, 0xBB, 0x85, 0xFD, 0x09, 0xE9
- },
- {
- 0x7C, 0x09, 0x20, 0x80, 0xC6, 0xA8, 0x0D, 0x67,
- 0x24, 0x09, 0xD0, 0x81, 0xD3, 0xD1, 0x77, 0x10,
- 0x6B, 0xCD, 0x63, 0x56, 0x77, 0x85, 0x14, 0x07,
- 0x19, 0x49, 0x09, 0x50, 0xAE, 0x07, 0xAE, 0x8F,
- 0xCA, 0xAB, 0xBA, 0xAA, 0xB3, 0x30, 0xCF, 0xBC,
- 0xF7, 0x37, 0x44, 0x82, 0xC2, 0x20, 0xAF, 0x2E,
- 0xAD, 0xEE, 0xB7, 0x3D, 0xCB, 0xB3, 0x5E, 0xD8,
- 0x23, 0x34, 0x4E, 0x14, 0x4E, 0x7D, 0x48, 0x99
- },
- {
- 0x9C, 0xCD, 0xE5, 0x66, 0xD2, 0x40, 0x05, 0x09,
- 0x18, 0x11, 0x11, 0xF3, 0x2D, 0xDE, 0x4C, 0xD6,
- 0x32, 0x09, 0xFE, 0x59, 0xA3, 0x0C, 0x11, 0x45,
- 0x46, 0xAD, 0x27, 0x76, 0xD8, 0x89, 0xA4, 0x1B,
- 0xAD, 0x8F, 0xA1, 0xBB, 0x46, 0x8C, 0xB2, 0xF9,
- 0xD4, 0x2C, 0xA9, 0x92, 0x8A, 0x77, 0x70, 0xFE,
- 0xF8, 0xE8, 0xBA, 0x4D, 0x0C, 0x81, 0x2D, 0x9A,
- 0x1E, 0x75, 0xC3, 0xD8, 0xD2, 0xCC, 0xD7, 0x5A
- },
- {
- 0x6E, 0x29, 0x3B, 0xF5, 0xD0, 0x3F, 0xE4, 0x39,
- 0x77, 0xCF, 0xE3, 0xF5, 0x7C, 0xCD, 0xB3, 0xAE,
- 0x28, 0x2A, 0x85, 0x45, 0x5D, 0xCA, 0x33, 0xF3,
- 0x7F, 0x4B, 0x74, 0xF8, 0x39, 0x8C, 0xC6, 0x12,
- 0x43, 0x3D, 0x75, 0x5C, 0xBE, 0xC4, 0x12, 0xF8,
- 0xF8, 0x2A, 0x3B, 0xD3, 0xBC, 0x4A, 0x27, 0x8F,
- 0x7E, 0xCD, 0x0D, 0xFA, 0x9B, 0xBD, 0xC4, 0x0B,
- 0xE7, 0xA7, 0x87, 0xC8, 0xF1, 0x59, 0xB2, 0xDF
- },
- {
- 0xC5, 0x65, 0x46, 0xFB, 0x21, 0x78, 0x45, 0x6F,
- 0x33, 0x61, 0x64, 0xC1, 0x8B, 0x90, 0xDE, 0xFF,
- 0xC8, 0x3A, 0xE2, 0xB5, 0xA3, 0xAC, 0xA7, 0x7B,
- 0x68, 0x84, 0xD3, 0x6D, 0x2C, 0x1D, 0xB3, 0x95,
- 0x01, 0xB3, 0xE6, 0x5E, 0x36, 0xC7, 0x58, 0xC6,
- 0x6E, 0x31, 0x88, 0x45, 0x1F, 0xDB, 0x35, 0x15,
- 0xEE, 0x16, 0x2C, 0x00, 0x1F, 0x06, 0xC3, 0xE8,
- 0xCB, 0x57, 0x3A, 0xDF, 0x30, 0xF7, 0xA1, 0x01
- },
- {
- 0x6F, 0x82, 0xF8, 0x9F, 0x29, 0x9E, 0xBC, 0xA2,
- 0xFE, 0x01, 0x4B, 0x59, 0xBF, 0xFE, 0x1A, 0xA8,
- 0x4E, 0x88, 0xB1, 0x91, 0x5F, 0xE2, 0x56, 0xAF,
- 0xB6, 0x46, 0xFD, 0x84, 0x48, 0xAF, 0x2B, 0x88,
- 0x91, 0xA7, 0xFA, 0xB3, 0x7A, 0x4E, 0xA6, 0xF9,
- 0xA5, 0x0E, 0x6C, 0x31, 0x70, 0x39, 0xD8, 0xCF,
- 0x87, 0x8F, 0x4C, 0x8E, 0x1A, 0x0D, 0xD4, 0x64,
- 0xF0, 0xB4, 0xD6, 0xFF, 0x1C, 0x7E, 0xA8, 0x53
- },
- {
- 0x2B, 0x85, 0x99, 0xFF, 0x9C, 0x3D, 0x61, 0x98,
- 0x63, 0x7A, 0xD5, 0x1E, 0x57, 0xD1, 0x99, 0x8B,
- 0x0D, 0x75, 0x31, 0x3F, 0xE2, 0xDD, 0x61, 0xA5,
- 0x33, 0xC9, 0x64, 0xA6, 0xDD, 0x96, 0x07, 0xC6,
- 0xF7, 0x23, 0xE9, 0x45, 0x2C, 0xE4, 0x6E, 0x01,
- 0x4B, 0x1C, 0x1D, 0x6D, 0xE7, 0x7B, 0xA5, 0xB8,
- 0x8C, 0x91, 0x4D, 0x1C, 0x59, 0x7B, 0xF1, 0xEA,
- 0xE1, 0x34, 0x74, 0xB4, 0x29, 0x0E, 0x89, 0xB2
- },
- {
- 0x08, 0xBF, 0x34, 0x6D, 0x38, 0xE1, 0xDF, 0x06,
- 0xC8, 0x26, 0x0E, 0xDB, 0x1D, 0xA7, 0x55, 0x79,
- 0x27, 0x59, 0x48, 0xD5, 0xC0, 0xA0, 0xAA, 0x9E,
- 0xD2, 0x88, 0x6F, 0x88, 0x56, 0xDE, 0x54, 0x17,
- 0xA1, 0x56, 0x99, 0x87, 0x58, 0xF5, 0xB1, 0x7E,
- 0x52, 0xF1, 0x01, 0xCA, 0x95, 0x7A, 0x71, 0x13,
- 0x74, 0x73, 0xDF, 0xD1, 0x8D, 0x7D, 0x20, 0x9C,
- 0x4C, 0x10, 0xD9, 0x23, 0x3C, 0x93, 0x69, 0x1D
- },
- {
- 0x6D, 0xF2, 0x15, 0x6D, 0x77, 0x31, 0x14, 0xD3,
- 0x10, 0xB6, 0x3D, 0xB9, 0xEE, 0x53, 0x50, 0xD7,
- 0x7E, 0x6B, 0xCF, 0x25, 0xB0, 0x5F, 0xCD, 0x91,
- 0x0F, 0x9B, 0x31, 0xBC, 0x42, 0xBB, 0x13, 0xFE,
- 0x82, 0x25, 0xEB, 0xCB, 0x2A, 0x23, 0xA6, 0x22,
- 0x80, 0x77, 0x7B, 0x6B, 0xF7, 0x4E, 0x2C, 0xD0,
- 0x91, 0x7C, 0x76, 0x40, 0xB4, 0x3D, 0xEF, 0xE4,
- 0x68, 0xCD, 0x1E, 0x18, 0xC9, 0x43, 0xC6, 0x6A
- },
- {
- 0x7C, 0x70, 0x38, 0xBC, 0x13, 0xA9, 0x11, 0x51,
- 0x82, 0x8A, 0x5B, 0xA8, 0x2B, 0x4A, 0x96, 0x04,
- 0x0F, 0x25, 0x8A, 0x4D, 0xFB, 0x1B, 0x13, 0x73,
- 0xF0, 0xD3, 0x59, 0x16, 0x8A, 0xFB, 0x05, 0x17,
- 0xA2, 0x0B, 0x28, 0xA1, 0x2D, 0x36, 0x44, 0x04,
- 0x6B, 0xE6, 0x6B, 0x8D, 0x08, 0xD8, 0xAE, 0x7F,
- 0x6A, 0x92, 0x3E, 0xA1, 0xC0, 0x01, 0x87, 0xC6,
- 0xD1, 0x1D, 0xC5, 0x02, 0xBA, 0xC7, 0x13, 0x05
- },
- {
- 0xBC, 0xD1, 0xB3, 0x0D, 0x80, 0x8F, 0xB7, 0x39,
- 0xB9, 0x87, 0xCB, 0xF1, 0x54, 0xBE, 0xA0, 0x0D,
- 0xA9, 0xD4, 0x03, 0x80, 0xB8, 0x61, 0xD4, 0xC1,
- 0xD6, 0x37, 0x71, 0x22, 0xDA, 0xDD, 0x61, 0xC0,
- 0xE5, 0x90, 0x18, 0xB7, 0x19, 0x41, 0xCF, 0xB6,
- 0x2E, 0x00, 0xDC, 0xD7, 0x0A, 0xEB, 0x9A, 0xBF,
- 0x04, 0x73, 0xE8, 0x0F, 0x0A, 0x7E, 0xCA, 0x6B,
- 0x6D, 0xEA, 0x24, 0x6A, 0xB2, 0x29, 0xDD, 0x2B
- },
- {
- 0x7E, 0xD4, 0x46, 0x8D, 0x96, 0x85, 0x30, 0xFE,
- 0x7A, 0xB2, 0xC3, 0x35, 0x40, 0xB2, 0x6D, 0x8C,
- 0x3B, 0xD3, 0xED, 0x44, 0xB3, 0x4F, 0xBE, 0x8C,
- 0x2A, 0x9D, 0x7F, 0x80, 0x5B, 0x5A, 0xDA, 0x0E,
- 0xA2, 0x52, 0xEE, 0xAD, 0xE4, 0xFC, 0xE9, 0x7F,
- 0x89, 0x72, 0x8A, 0xD8, 0x5B, 0xC8, 0xBB, 0x24,
- 0x30, 0xB1, 0xBE, 0xF2, 0xCD, 0xDD, 0x32, 0xC8,
- 0x44, 0x6E, 0x59, 0xB8, 0xE8, 0xBA, 0x3C, 0x67
- },
- {
- 0x6D, 0x30, 0xB7, 0xC6, 0xCE, 0x8A, 0x32, 0x36,
- 0xC0, 0xCA, 0x2F, 0x8D, 0x72, 0x8B, 0x10, 0x88,
- 0xCA, 0x06, 0x98, 0x3A, 0x80, 0x43, 0xE6, 0x21,
- 0xD5, 0xDC, 0xF0, 0xC5, 0x37, 0xD1, 0x3B, 0x08,
- 0x79, 0x1E, 0xDE, 0xB0, 0x1A, 0x3C, 0xF0, 0x94,
- 0x3E, 0xC1, 0xC8, 0x90, 0xAB, 0x6E, 0x29, 0xB1,
- 0x46, 0xA2, 0x36, 0xCD, 0x46, 0xBC, 0xB9, 0xD9,
- 0x3B, 0xF5, 0x16, 0xFB, 0x67, 0xC6, 0x3F, 0xE5
- },
- {
- 0x97, 0xFE, 0x03, 0xCE, 0xF3, 0x14, 0x38, 0x50,
- 0x89, 0x11, 0xBD, 0xED, 0x97, 0x59, 0x80, 0xA6,
- 0x60, 0x29, 0x30, 0x5D, 0xC5, 0xE3, 0xFA, 0x8A,
- 0xD1, 0xB4, 0xFB, 0x22, 0xFC, 0xDF, 0x5A, 0x19,
- 0xA7, 0x33, 0x32, 0x03, 0x27, 0xD8, 0xF7, 0x1C,
- 0xCF, 0x49, 0x6C, 0xB3, 0xA4, 0x4A, 0x77, 0xAF,
- 0x56, 0xE3, 0xDD, 0xE7, 0x3D, 0x3A, 0x5F, 0x17,
- 0x68, 0x96, 0xCC, 0x57, 0xC9, 0xA5, 0xAD, 0x99
- },
- {
- 0x78, 0x5A, 0x9D, 0x0F, 0xBD, 0x21, 0x13, 0x6D,
- 0xBC, 0xE8, 0xFA, 0x7E, 0xAF, 0xD6, 0x3C, 0x9D,
- 0xAD, 0x22, 0x00, 0x52, 0x97, 0x84, 0x16, 0xB3,
- 0x1D, 0x97, 0x53, 0xEA, 0xA1, 0x49, 0x09, 0x78,
- 0x47, 0xED, 0x9B, 0x30, 0xA6, 0x5C, 0x70, 0x50,
- 0x7E, 0xFF, 0x01, 0x87, 0x91, 0x49, 0xED, 0x5C,
- 0xF0, 0x47, 0x1D, 0x37, 0x79, 0x8E, 0xDC, 0x05,
- 0xAB, 0xD5, 0x6A, 0xD4, 0xA2, 0xCC, 0xCB, 0x1D
- },
- {
- 0xAD, 0x40, 0x8D, 0x2A, 0xBD, 0xDF, 0xD3, 0x7B,
- 0x3B, 0xF3, 0x47, 0x94, 0xC1, 0xA3, 0x37, 0x1D,
- 0x92, 0x8E, 0xD7, 0xFC, 0x8D, 0x96, 0x62, 0x25,
- 0x33, 0x35, 0x84, 0xC5, 0x66, 0x58, 0x17, 0x83,
- 0x2A, 0x37, 0xC0, 0x7F, 0x0D, 0xC7, 0xCB, 0x5A,
- 0xA8, 0x74, 0xCD, 0x7D, 0x20, 0xFE, 0x8F, 0xAB,
- 0x8E, 0xAB, 0xCB, 0x9B, 0x33, 0xD2, 0xE0, 0x84,
- 0x1F, 0x6E, 0x20, 0x09, 0x60, 0x89, 0x9D, 0x95
- },
- {
- 0x97, 0x66, 0x8F, 0x74, 0x5B, 0x60, 0x32, 0xFC,
- 0x81, 0x5D, 0x95, 0x79, 0x32, 0x27, 0x69, 0xDC,
- 0xCD, 0x95, 0x01, 0xA5, 0x08, 0x00, 0x29, 0xB8,
- 0xAE, 0x82, 0x6B, 0xEF, 0xB6, 0x74, 0x23, 0x31,
- 0xBD, 0x9F, 0x76, 0xEF, 0xEB, 0x3E, 0x2B, 0x8E,
- 0x81, 0xA9, 0x78, 0x6B, 0x28, 0x2F, 0x50, 0x68,
- 0xA3, 0xA2, 0x42, 0x46, 0x97, 0xA7, 0x7C, 0x41,
- 0x87, 0x6B, 0x7E, 0x75, 0x3F, 0x4C, 0x77, 0x67
- },
- {
- 0x26, 0xBB, 0x98, 0x5F, 0x47, 0xE7, 0xFE, 0xE0,
- 0xCF, 0xD2, 0x52, 0xD4, 0xEF, 0x96, 0xBE, 0xD4,
- 0x2B, 0x9C, 0x37, 0x0C, 0x1C, 0x6A, 0x3E, 0x8C,
- 0x9E, 0xB0, 0x4E, 0xF7, 0xF7, 0x81, 0x8B, 0x83,
- 0x3A, 0x0D, 0x1F, 0x04, 0x3E, 0xBA, 0xFB, 0x91,
- 0x1D, 0xC7, 0x79, 0xE0, 0x27, 0x40, 0xA0, 0x2A,
- 0x44, 0xD3, 0xA1, 0xEA, 0x45, 0xED, 0x4A, 0xD5,
- 0x5E, 0x68, 0x6C, 0x92, 0x7C, 0xAF, 0xE9, 0x7E
- },
- {
- 0x5B, 0xFE, 0x2B, 0x1D, 0xCF, 0x7F, 0xE9, 0xB9,
- 0x50, 0x88, 0xAC, 0xED, 0xB5, 0x75, 0xC1, 0x90,
- 0x16, 0xC7, 0x43, 0xB2, 0xE7, 0x63, 0xBF, 0x58,
- 0x51, 0xAC, 0x40, 0x7C, 0x9E, 0xDA, 0x43, 0x71,
- 0x5E, 0xDF, 0xA4, 0x8B, 0x48, 0x25, 0x49, 0x2C,
- 0x51, 0x79, 0x59, 0x3F, 0xFF, 0x21, 0x35, 0x1B,
- 0x76, 0xE8, 0xB7, 0xE0, 0x34, 0xE4, 0xC5, 0x3C,
- 0x79, 0xF6, 0x1F, 0x29, 0xC4, 0x79, 0xBD, 0x08
- },
- {
- 0xC7, 0x65, 0x09, 0xEF, 0x72, 0xF4, 0xA6, 0xF9,
- 0xC9, 0xC4, 0x06, 0x18, 0xED, 0x52, 0xB2, 0x08,
- 0x4F, 0x83, 0x50, 0x22, 0x32, 0xE0, 0xAC, 0x8B,
- 0xDA, 0xF3, 0x26, 0x43, 0x68, 0xE4, 0xD0, 0x18,
- 0x0F, 0x68, 0x54, 0xC4, 0xAB, 0xF4, 0xF6, 0x50,
- 0x9C, 0x79, 0xCA, 0xAF, 0xC4, 0x4C, 0xF3, 0x19,
- 0x4A, 0xFC, 0x57, 0xBD, 0x07, 0x7B, 0xD7, 0xB3,
- 0xC9, 0xBD, 0xA3, 0xD4, 0xB8, 0x77, 0x58, 0x16
- },
- {
- 0xD6, 0x6F, 0x2B, 0xEA, 0xB9, 0x90, 0xE3, 0x54,
- 0xCC, 0xB9, 0x10, 0xE4, 0xE9, 0xC7, 0xAC, 0x61,
- 0x8C, 0x7B, 0x63, 0xEF, 0x29, 0x2A, 0x96, 0xB5,
- 0x52, 0x34, 0x1D, 0xE7, 0x8D, 0xC4, 0x6D, 0x3E,
- 0xC8, 0xCF, 0xAB, 0xC6, 0x99, 0xB5, 0x0A, 0xF4,
- 0x1F, 0xDA, 0x39, 0xCF, 0x1B, 0x01, 0x73, 0x66,
- 0x09, 0x23, 0x51, 0x0A, 0xD6, 0x7F, 0xAE, 0xDE,
- 0xF5, 0x20, 0x7C, 0xFF, 0xE8, 0x64, 0x1D, 0x20
- },
- {
- 0x7D, 0x8F, 0x06, 0x72, 0x99, 0x2B, 0x79, 0xBE,
- 0x3A, 0x36, 0x4D, 0x8E, 0x59, 0x04, 0xF4, 0xAB,
- 0x71, 0x3B, 0xBC, 0x8A, 0xB0, 0x1B, 0x4F, 0x30,
- 0x9A, 0xD8, 0xCC, 0xF2, 0x23, 0xCE, 0x10, 0x34,
- 0xA8, 0x60, 0xDC, 0xB0, 0xB0, 0x05, 0x50, 0x61,
- 0x2C, 0xC2, 0xFA, 0x17, 0xF2, 0x96, 0x9E, 0x18,
- 0xF2, 0x2E, 0x14, 0x27, 0xD2, 0x54, 0xB4, 0xA8,
- 0x2B, 0x3A, 0x03, 0xA3, 0xEB, 0x39, 0x4A, 0xDF
- },
- {
- 0xA5, 0x6D, 0x67, 0x25, 0xBF, 0xB3, 0xDE, 0x47,
- 0xC1, 0x41, 0x4A, 0xDF, 0x25, 0xFC, 0x8F, 0x0F,
- 0xC9, 0x84, 0x6F, 0x69, 0x87, 0x72, 0x2B, 0xC0,
- 0x63, 0x66, 0xD5, 0xCA, 0x4E, 0x89, 0x72, 0x29,
- 0x25, 0xEB, 0xBC, 0x88, 0x14, 0x18, 0x84, 0x40,
- 0x75, 0x39, 0x7A, 0x0C, 0xA8, 0x98, 0x42, 0xC7,
- 0xB9, 0xE9, 0xE0, 0x7E, 0x1D, 0x9D, 0x18, 0x3E,
- 0xBE, 0xB3, 0x9E, 0x12, 0x0B, 0x48, 0x3B, 0xF7
- },
- {
- 0xAF, 0x5E, 0x03, 0xD7, 0xFE, 0x60, 0xC6, 0x7E,
- 0x10, 0x31, 0x33, 0x44, 0x43, 0x4E, 0x79, 0x48,
- 0x5A, 0x03, 0xA7, 0x58, 0xD6, 0xDC, 0xE9, 0x85,
- 0x57, 0x47, 0x45, 0x76, 0x3C, 0x1C, 0x5C, 0x77,
- 0xD4, 0xFB, 0x3E, 0x6F, 0xB1, 0x22, 0x30, 0x36,
- 0x83, 0x70, 0x99, 0x3B, 0xF9, 0x0F, 0xEE, 0xD0,
- 0xC5, 0xD1, 0x60, 0x75, 0x24, 0x56, 0x2D, 0x7C,
- 0x09, 0xC0, 0xC2, 0x10, 0xED, 0x39, 0x3D, 0x7C
- },
- {
- 0x7A, 0x20, 0x54, 0x0C, 0xC0, 0x7B, 0xF7, 0x2B,
- 0x58, 0x24, 0x21, 0xFC, 0x34, 0x2E, 0x82, 0xF5,
- 0x21, 0x34, 0xB6, 0x98, 0x41, 0xEC, 0x28, 0xED,
- 0x18, 0x9E, 0x2E, 0xA6, 0xA2, 0x9D, 0xD2, 0xF8,
- 0x2A, 0x64, 0x03, 0x52, 0xD2, 0x22, 0xB5, 0x2F,
- 0x29, 0x11, 0xDC, 0x72, 0xA7, 0xDA, 0xB3, 0x1C,
- 0xAA, 0xDD, 0x80, 0xC6, 0x11, 0x8F, 0x13, 0xC5,
- 0x6B, 0x2A, 0x1E, 0x43, 0x73, 0xBE, 0x0E, 0xA3
- },
- {
- 0x48, 0x6F, 0x02, 0xC6, 0x3E, 0x54, 0x67, 0xEA,
- 0x1F, 0xDD, 0xE7, 0xE8, 0x2B, 0xFA, 0xCC, 0x2C,
- 0x1B, 0xA5, 0xD6, 0x36, 0xD9, 0xF3, 0xD0, 0x8B,
- 0x21, 0x0D, 0xA3, 0xF3, 0x72, 0xF7, 0x06, 0xEC,
- 0x21, 0x8C, 0xC1, 0x7F, 0xF6, 0x0A, 0xEF, 0x70,
- 0x3B, 0xBE, 0x0C, 0x15, 0xC3, 0x8A, 0xE5, 0x5D,
- 0x28, 0x6A, 0x68, 0x4F, 0x86, 0x4C, 0x78, 0x21,
- 0x1C, 0xCA, 0xB4, 0x17, 0x8C, 0x92, 0xAD, 0xBA
- },
- {
- 0x1C, 0x7A, 0x5C, 0x1D, 0xED, 0xCD, 0x04, 0xA9,
- 0x21, 0x78, 0x8F, 0x7E, 0xB2, 0x33, 0x61, 0xCA,
- 0x19, 0x53, 0xB0, 0x4B, 0x9C, 0x7A, 0xEC, 0x35,
- 0xD6, 0x5E, 0xA3, 0xE4, 0x99, 0x6D, 0xB2, 0x6F,
- 0x28, 0x12, 0x78, 0xEA, 0x4A, 0xE6, 0x66, 0xAD,
- 0x81, 0x02, 0x7D, 0x98, 0xAF, 0x57, 0x26, 0x2C,
- 0xDB, 0xFA, 0x4C, 0x08, 0x5F, 0x42, 0x10, 0x56,
- 0x8C, 0x7E, 0x15, 0xEE, 0xC7, 0x80, 0x51, 0x14
- },
- {
- 0x9C, 0xE3, 0xFA, 0x9A, 0x86, 0x0B, 0xDB, 0xD5,
- 0x37, 0x8F, 0xD6, 0xD7, 0xB8, 0xB6, 0x71, 0xC6,
- 0xCB, 0x76, 0x92, 0x91, 0x0C, 0xE8, 0xF9, 0xB6,
- 0xCB, 0x41, 0x22, 0xCB, 0xCB, 0xE6, 0xAC, 0x06,
- 0xCA, 0x04, 0x22, 0xCE, 0xF1, 0x22, 0x59, 0x35,
- 0x05, 0x3B, 0x7D, 0x19, 0x3A, 0x81, 0xB9, 0xE9,
- 0x72, 0xEB, 0x85, 0xA1, 0xD3, 0x07, 0x4F, 0x14,
- 0xCB, 0xB5, 0xEC, 0x9F, 0x05, 0x73, 0x89, 0x2D
- },
- {
- 0xA9, 0x11, 0x87, 0xBE, 0x5C, 0x37, 0x1C, 0x42,
- 0x65, 0xC1, 0x74, 0xFD, 0x46, 0x53, 0xB8, 0xAB,
- 0x70, 0x85, 0x51, 0xF8, 0x3D, 0x1F, 0xEE, 0x1C,
- 0xC1, 0x47, 0x95, 0x81, 0xBC, 0x00, 0x6D, 0x6F,
- 0xB7, 0x8F, 0xCC, 0x9A, 0x5D, 0xEE, 0x1D, 0xB3,
- 0x66, 0x6F, 0x50, 0x8F, 0x97, 0x80, 0xA3, 0x75,
- 0x93, 0xEB, 0xCC, 0xCF, 0x5F, 0xBE, 0xD3, 0x96,
- 0x67, 0xDC, 0x63, 0x61, 0xE9, 0x21, 0xF7, 0x79
- },
- {
- 0x46, 0x25, 0x76, 0x7D, 0x7B, 0x1D, 0x3D, 0x3E,
- 0xD2, 0xFB, 0xC6, 0x74, 0xAF, 0x14, 0xE0, 0x24,
- 0x41, 0x52, 0xF2, 0xA4, 0x02, 0x1F, 0xCF, 0x33,
- 0x11, 0x50, 0x5D, 0x89, 0xBD, 0x81, 0xE2, 0xF9,
- 0xF9, 0xA5, 0x00, 0xC3, 0xB1, 0x99, 0x91, 0x4D,
- 0xB4, 0x95, 0x00, 0xB3, 0xC9, 0x8D, 0x03, 0xEA,
- 0x93, 0x28, 0x67, 0x51, 0xA6, 0x86, 0xA3, 0xB8,
- 0x75, 0xDA, 0xAB, 0x0C, 0xCD, 0x63, 0xB4, 0x4F
- },
- {
- 0x43, 0xDF, 0xDF, 0xE1, 0xB0, 0x14, 0xFE, 0xD3,
- 0xA2, 0xAC, 0xAB, 0xB7, 0xF3, 0xE9, 0xA1, 0x82,
- 0xF2, 0xAA, 0x18, 0x01, 0x9D, 0x27, 0xE3, 0xE6,
- 0xCD, 0xCF, 0x31, 0xA1, 0x5B, 0x42, 0x8E, 0x91,
- 0xE7, 0xB0, 0x8C, 0xF5, 0xE5, 0xC3, 0x76, 0xFC,
- 0xE2, 0xD8, 0xA2, 0x8F, 0xF8, 0x5A, 0xB0, 0xA0,
- 0xA1, 0x65, 0x6E, 0xDB, 0x4A, 0x0A, 0x91, 0x53,
- 0x26, 0x20, 0x09, 0x6D, 0x9A, 0x5A, 0x65, 0x2D
- },
- {
- 0x27, 0x9E, 0x32, 0x02, 0xBE, 0x39, 0x89, 0xBA,
- 0x31, 0x12, 0x77, 0x25, 0x85, 0x17, 0x74, 0x87,
- 0xE4, 0xFE, 0x3E, 0xE3, 0xEA, 0xB4, 0x9C, 0x2F,
- 0x7F, 0xA7, 0xFE, 0x87, 0xCF, 0xE7, 0xB8, 0x0D,
- 0x3E, 0x03, 0x55, 0xED, 0xFF, 0x6D, 0x03, 0x1E,
- 0x6C, 0x96, 0xC7, 0x95, 0xDB, 0x1C, 0x6F, 0x04,
- 0x18, 0x80, 0xEC, 0x38, 0x24, 0xDE, 0xFA, 0xCF,
- 0x92, 0x63, 0x82, 0x0A, 0x8E, 0x73, 0x27, 0xDE
- },
- {
- 0xEA, 0x2D, 0x06, 0x6A, 0xC2, 0x29, 0xD4, 0xD4,
- 0xB6, 0x16, 0xA8, 0xBE, 0xDE, 0xC7, 0x34, 0x32,
- 0x52, 0x24, 0xE4, 0xB4, 0xE5, 0x8F, 0x1A, 0xE6,
- 0xDA, 0xD7, 0xE4, 0x0C, 0x2D, 0xA2, 0x91, 0x96,
- 0xC3, 0xB1, 0xEA, 0x95, 0x71, 0xDA, 0xCC, 0x81,
- 0xE8, 0x73, 0x28, 0xCA, 0xA0, 0x21, 0x1E, 0x09,
- 0x02, 0x7B, 0x05, 0x24, 0xAA, 0x3F, 0x4A, 0x84,
- 0x99, 0x17, 0xB3, 0x58, 0x67, 0x47, 0xEB, 0xBB
- },
- {
- 0x49, 0xF0, 0x14, 0xF5, 0xC6, 0x18, 0x22, 0xC8,
- 0x99, 0xAB, 0x5C, 0xAE, 0x51, 0xBE, 0x40, 0x44,
- 0xA4, 0x49, 0x5E, 0x77, 0x7D, 0xEB, 0x7D, 0xA9,
- 0xB6, 0xD8, 0x49, 0x0E, 0xFB, 0xB8, 0x75, 0x30,
- 0xAD, 0xF2, 0x93, 0xDA, 0xF0, 0x79, 0xF9, 0x4C,
- 0x33, 0xB7, 0x04, 0x4E, 0xF6, 0x2E, 0x2E, 0x5B,
- 0xB3, 0xEB, 0x11, 0xE1, 0x73, 0x04, 0xF8, 0x45,
- 0x3E, 0xE6, 0xCE, 0x24, 0xF0, 0x33, 0xDD, 0xB0
- },
- {
- 0x92, 0x33, 0x49, 0x03, 0x44, 0xE5, 0xB0, 0xDC,
- 0x59, 0x12, 0x67, 0x1B, 0x7A, 0xE5, 0x4C, 0xEE,
- 0x77, 0x30, 0xDB, 0xE1, 0xF4, 0xC7, 0xD9, 0x2A,
- 0x4D, 0x3E, 0x3A, 0xAB, 0x50, 0x57, 0x17, 0x08,
- 0xDB, 0x51, 0xDC, 0xF9, 0xC2, 0x94, 0x45, 0x91,
- 0xDB, 0x65, 0x1D, 0xB3, 0x2D, 0x22, 0x93, 0x5B,
- 0x86, 0x94, 0x49, 0x69, 0xBE, 0x77, 0xD5, 0xB5,
- 0xFE, 0xAE, 0x6C, 0x38, 0x40, 0xA8, 0xDB, 0x26
- },
- {
- 0xB6, 0xE7, 0x5E, 0x6F, 0x4C, 0x7F, 0x45, 0x3B,
- 0x74, 0x65, 0xD2, 0x5B, 0x5A, 0xC8, 0xC7, 0x19,
- 0x69, 0x02, 0xEA, 0xA9, 0x53, 0x87, 0x52, 0x28,
- 0xC8, 0x63, 0x4E, 0x16, 0xE2, 0xAE, 0x1F, 0x38,
- 0xBC, 0x32, 0x75, 0x30, 0x43, 0x35, 0xF5, 0x98,
- 0x9E, 0xCC, 0xC1, 0xE3, 0x41, 0x67, 0xD4, 0xE6,
- 0x8D, 0x77, 0x19, 0x96, 0x8F, 0xBA, 0x8E, 0x2F,
- 0xE6, 0x79, 0x47, 0xC3, 0x5C, 0x48, 0xE8, 0x06
- },
- {
- 0xCC, 0x14, 0xCA, 0x66, 0x5A, 0xF1, 0x48, 0x3E,
- 0xFB, 0xC3, 0xAF, 0x80, 0x08, 0x0E, 0x65, 0x0D,
- 0x50, 0x46, 0xA3, 0x93, 0x2F, 0x4F, 0x51, 0xF3,
- 0xFE, 0x90, 0xA0, 0x70, 0x5E, 0xC2, 0x51, 0x04,
- 0xAD, 0xF0, 0x78, 0x39, 0x26, 0x5D, 0xC5, 0x1D,
- 0x43, 0x40, 0x14, 0x11, 0x24, 0x6E, 0x47, 0x4F,
- 0x0D, 0x5E, 0x56, 0x37, 0xAF, 0x94, 0x76, 0x72,
- 0x83, 0xD5, 0x3E, 0x06, 0x17, 0xE9, 0x81, 0xF4
- },
- {
- 0x23, 0x0A, 0x1C, 0x85, 0x7C, 0xB2, 0xE7, 0x85,
- 0x2E, 0x41, 0xB6, 0x47, 0xE9, 0x0E, 0x45, 0x85,
- 0xD2, 0xD8, 0x81, 0xE1, 0x73, 0x4D, 0xC3, 0x89,
- 0x55, 0x35, 0x6E, 0x8D, 0xD7, 0xBF, 0xF3, 0x90,
- 0x53, 0x09, 0x2C, 0x6B, 0x38, 0xE2, 0x36, 0xE1,
- 0x89, 0x95, 0x25, 0x64, 0x70, 0x73, 0xDD, 0xDF,
- 0x68, 0x95, 0xD6, 0x42, 0x06, 0x32, 0x5E, 0x76,
- 0x47, 0xF2, 0x75, 0x56, 0x7B, 0x25, 0x59, 0x09
- },
- {
- 0xCB, 0xB6, 0x53, 0x21, 0xAC, 0x43, 0x6E, 0x2F,
- 0xFD, 0xAB, 0x29, 0x36, 0x35, 0x9C, 0xE4, 0x90,
- 0x23, 0xF7, 0xDE, 0xE7, 0x61, 0x4E, 0xF2, 0x8D,
- 0x17, 0x3C, 0x3D, 0x27, 0xC5, 0xD1, 0xBF, 0xFA,
- 0x51, 0x55, 0x3D, 0x43, 0x3F, 0x8E, 0xE3, 0xC9,
- 0xE4, 0x9C, 0x05, 0xA2, 0xB8, 0x83, 0xCC, 0xE9,
- 0x54, 0xC9, 0xA8, 0x09, 0x3B, 0x80, 0x61, 0x2A,
- 0x0C, 0xDD, 0x47, 0x32, 0xE0, 0x41, 0xF9, 0x95
- },
- {
- 0x3E, 0x7E, 0x57, 0x00, 0x74, 0x33, 0x72, 0x75,
- 0xEF, 0xB5, 0x13, 0x15, 0x58, 0x80, 0x34, 0xC3,
- 0xCF, 0x0D, 0xDD, 0xCA, 0x20, 0xB4, 0x61, 0x2E,
- 0x0B, 0xD5, 0xB8, 0x81, 0xE7, 0xE5, 0x47, 0x6D,
- 0x31, 0x9C, 0xE4, 0xFE, 0x9F, 0x19, 0x18, 0x6E,
- 0x4C, 0x08, 0x26, 0xF4, 0x4F, 0x13, 0x1E, 0xB0,
- 0x48, 0xE6, 0x5B, 0xE2, 0x42, 0xB1, 0x17, 0x2C,
- 0x63, 0xBA, 0xDB, 0x12, 0x3A, 0xB0, 0xCB, 0xE8
- },
- {
- 0xD3, 0x2E, 0x9E, 0xC0, 0x2D, 0x38, 0xD4, 0xE1,
- 0xB8, 0x24, 0x9D, 0xF8, 0xDC, 0xB0, 0x0C, 0x5B,
- 0x9C, 0x68, 0xEB, 0x89, 0x22, 0x67, 0x2E, 0x35,
- 0x05, 0x39, 0x3B, 0x6A, 0x21, 0x0B, 0xA5, 0x6F,
- 0x94, 0x96, 0xE5, 0xEE, 0x04, 0x90, 0xEF, 0x38,
- 0x7C, 0x3C, 0xDE, 0xC0, 0x61, 0xF0, 0x6B, 0xC0,
- 0x38, 0x2D, 0x93, 0x04, 0xCA, 0xFB, 0xB8, 0xE0,
- 0xCD, 0x33, 0xD5, 0x70, 0x29, 0xE6, 0x2D, 0xF2
- },
- {
- 0x8C, 0x15, 0x12, 0x46, 0x60, 0x89, 0xF0, 0x5B,
- 0x37, 0x75, 0xC2, 0x62, 0xB6, 0x2D, 0x22, 0xB8,
- 0x38, 0x54, 0xA8, 0x32, 0x18, 0x13, 0x0B, 0x4E,
- 0xC9, 0x1B, 0x3C, 0xCB, 0xD2, 0x93, 0xD2, 0xA5,
- 0x43, 0x02, 0xCE, 0xCA, 0xAB, 0x9B, 0x10, 0x0C,
- 0x68, 0xD1, 0xE6, 0xDD, 0xC8, 0xF0, 0x7C, 0xDD,
- 0xBD, 0xFE, 0x6F, 0xDA, 0xAA, 0xF0, 0x99, 0xCC,
- 0x09, 0xD6, 0xB7, 0x25, 0x87, 0x9C, 0x63, 0x69
- },
- {
- 0x91, 0xA7, 0xF6, 0x1C, 0x97, 0xC2, 0x91, 0x1E,
- 0x4C, 0x81, 0x2E, 0xF7, 0x1D, 0x78, 0x0A, 0xD8,
- 0xFA, 0x78, 0x87, 0x94, 0x56, 0x1D, 0x08, 0x30,
- 0x3F, 0xD1, 0xC1, 0xCB, 0x60, 0x8A, 0x46, 0xA1,
- 0x25, 0x63, 0x08, 0x6E, 0xC5, 0xB3, 0x9D, 0x47,
- 0x1A, 0xED, 0x94, 0xFB, 0x0F, 0x6C, 0x67, 0x8A,
- 0x43, 0xB8, 0x79, 0x29, 0x32, 0xF9, 0x02, 0x8D,
- 0x77, 0x2A, 0x22, 0x76, 0x8E, 0xA2, 0x3A, 0x9B
- },
- {
- 0x4F, 0x6B, 0xB2, 0x22, 0xA3, 0x95, 0xE8, 0xB1,
- 0x8F, 0x6B, 0xA1, 0x55, 0x47, 0x7A, 0xED, 0x3F,
- 0x07, 0x29, 0xAC, 0x9E, 0x83, 0xE1, 0x6D, 0x31,
- 0xA2, 0xA8, 0xBC, 0x65, 0x54, 0x22, 0xB8, 0x37,
- 0xC8, 0x91, 0xC6, 0x19, 0x9E, 0x6F, 0x0D, 0x75,
- 0x79, 0x9E, 0x3B, 0x69, 0x15, 0x25, 0xC5, 0x81,
- 0x95, 0x35, 0x17, 0xF2, 0x52, 0xC4, 0xB9, 0xE3,
- 0xA2, 0x7A, 0x28, 0xFB, 0xAF, 0x49, 0x64, 0x4C
- },
- {
- 0x5D, 0x06, 0xC0, 0x7E, 0x7A, 0x64, 0x6C, 0x41,
- 0x3A, 0x50, 0x1C, 0x3F, 0x4B, 0xB2, 0xFC, 0x38,
- 0x12, 0x7D, 0xE7, 0x50, 0x9B, 0x70, 0x77, 0xC4,
- 0xD9, 0xB5, 0x61, 0x32, 0x01, 0xC1, 0xAA, 0x02,
- 0xFD, 0x5F, 0x79, 0xD2, 0x74, 0x59, 0x15, 0xDD,
- 0x57, 0xFB, 0xCB, 0x4C, 0xE0, 0x86, 0x95, 0xF6,
- 0xEF, 0xC0, 0xCB, 0x3D, 0x2D, 0x33, 0x0E, 0x19,
- 0xB4, 0xB0, 0xE6, 0x00, 0x4E, 0xA6, 0x47, 0x1E
- },
- {
- 0xB9, 0x67, 0x56, 0xE5, 0x79, 0x09, 0x96, 0x8F,
- 0x14, 0xB7, 0x96, 0xA5, 0xD3, 0x0F, 0x4C, 0x9D,
- 0x67, 0x14, 0x72, 0xCF, 0x82, 0xC8, 0xCF, 0xB2,
- 0xCA, 0xCA, 0x7A, 0xC7, 0xA4, 0x4C, 0xA0, 0xA1,
- 0x4C, 0x98, 0x42, 0xD0, 0x0C, 0x82, 0xE3, 0x37,
- 0x50, 0x2C, 0x94, 0xD5, 0x96, 0x0A, 0xCA, 0x4C,
- 0x49, 0x2E, 0xA7, 0xB0, 0xDF, 0x91, 0x9D, 0xDF,
- 0x1A, 0xAD, 0xA2, 0xA2, 0x75, 0xBB, 0x10, 0xD4
- },
- {
- 0xFF, 0x0A, 0x01, 0x5E, 0x98, 0xDB, 0x9C, 0x99,
- 0xF0, 0x39, 0x77, 0x71, 0x0A, 0xAC, 0x3E, 0x65,
- 0x8C, 0x0D, 0x89, 0x6F, 0x6D, 0x71, 0xD6, 0x18,
- 0xBA, 0x79, 0xDC, 0x6C, 0xF7, 0x2A, 0xC7, 0x5B,
- 0x7C, 0x03, 0x8E, 0xB6, 0x86, 0x2D, 0xED, 0xE4,
- 0x54, 0x3E, 0x14, 0x54, 0x13, 0xA6, 0x36, 0x8D,
- 0x69, 0xF5, 0x72, 0x2C, 0x82, 0x7B, 0xA3, 0xEF,
- 0x25, 0xB6, 0xAE, 0x64, 0x40, 0xD3, 0x92, 0x76
- },
- {
- 0x5B, 0x21, 0xC5, 0xFD, 0x88, 0x68, 0x36, 0x76,
- 0x12, 0x47, 0x4F, 0xA2, 0xE7, 0x0E, 0x9C, 0xFA,
- 0x22, 0x01, 0xFF, 0xEE, 0xE8, 0xFA, 0xFA, 0xB5,
- 0x79, 0x7A, 0xD5, 0x8F, 0xEF, 0xA1, 0x7C, 0x9B,
- 0x5B, 0x10, 0x7D, 0xA4, 0xA3, 0xDB, 0x63, 0x20,
- 0xBA, 0xAF, 0x2C, 0x86, 0x17, 0xD5, 0xA5, 0x1D,
- 0xF9, 0x14, 0xAE, 0x88, 0xDA, 0x38, 0x67, 0xC2,
- 0xD4, 0x1F, 0x0C, 0xC1, 0x4F, 0xA6, 0x79, 0x28
- },
-};
-
-
-
-
-static const uint8_t blake2b_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
-{
- {
- 0x10, 0xEB, 0xB6, 0x77, 0x00, 0xB1, 0x86, 0x8E,
- 0xFB, 0x44, 0x17, 0x98, 0x7A, 0xCF, 0x46, 0x90,
- 0xAE, 0x9D, 0x97, 0x2F, 0xB7, 0xA5, 0x90, 0xC2,
- 0xF0, 0x28, 0x71, 0x79, 0x9A, 0xAA, 0x47, 0x86,
- 0xB5, 0xE9, 0x96, 0xE8, 0xF0, 0xF4, 0xEB, 0x98,
- 0x1F, 0xC2, 0x14, 0xB0, 0x05, 0xF4, 0x2D, 0x2F,
- 0xF4, 0x23, 0x34, 0x99, 0x39, 0x16, 0x53, 0xDF,
- 0x7A, 0xEF, 0xCB, 0xC1, 0x3F, 0xC5, 0x15, 0x68
- },
- {
- 0x96, 0x1F, 0x6D, 0xD1, 0xE4, 0xDD, 0x30, 0xF6,
- 0x39, 0x01, 0x69, 0x0C, 0x51, 0x2E, 0x78, 0xE4,
- 0xB4, 0x5E, 0x47, 0x42, 0xED, 0x19, 0x7C, 0x3C,
- 0x5E, 0x45, 0xC5, 0x49, 0xFD, 0x25, 0xF2, 0xE4,
- 0x18, 0x7B, 0x0B, 0xC9, 0xFE, 0x30, 0x49, 0x2B,
- 0x16, 0xB0, 0xD0, 0xBC, 0x4E, 0xF9, 0xB0, 0xF3,
- 0x4C, 0x70, 0x03, 0xFA, 0xC0, 0x9A, 0x5E, 0xF1,
- 0x53, 0x2E, 0x69, 0x43, 0x02, 0x34, 0xCE, 0xBD
- },
- {
- 0xDA, 0x2C, 0xFB, 0xE2, 0xD8, 0x40, 0x9A, 0x0F,
- 0x38, 0x02, 0x61, 0x13, 0x88, 0x4F, 0x84, 0xB5,
- 0x01, 0x56, 0x37, 0x1A, 0xE3, 0x04, 0xC4, 0x43,
- 0x01, 0x73, 0xD0, 0x8A, 0x99, 0xD9, 0xFB, 0x1B,
- 0x98, 0x31, 0x64, 0xA3, 0x77, 0x07, 0x06, 0xD5,
- 0x37, 0xF4, 0x9E, 0x0C, 0x91, 0x6D, 0x9F, 0x32,
- 0xB9, 0x5C, 0xC3, 0x7A, 0x95, 0xB9, 0x9D, 0x85,
- 0x74, 0x36, 0xF0, 0x23, 0x2C, 0x88, 0xA9, 0x65
- },
- {
- 0x33, 0xD0, 0x82, 0x5D, 0xDD, 0xF7, 0xAD, 0xA9,
- 0x9B, 0x0E, 0x7E, 0x30, 0x71, 0x04, 0xAD, 0x07,
- 0xCA, 0x9C, 0xFD, 0x96, 0x92, 0x21, 0x4F, 0x15,
- 0x61, 0x35, 0x63, 0x15, 0xE7, 0x84, 0xF3, 0xE5,
- 0xA1, 0x7E, 0x36, 0x4A, 0xE9, 0xDB, 0xB1, 0x4C,
- 0xB2, 0x03, 0x6D, 0xF9, 0x32, 0xB7, 0x7F, 0x4B,
- 0x29, 0x27, 0x61, 0x36, 0x5F, 0xB3, 0x28, 0xDE,
- 0x7A, 0xFD, 0xC6, 0xD8, 0x99, 0x8F, 0x5F, 0xC1
- },
- {
- 0xBE, 0xAA, 0x5A, 0x3D, 0x08, 0xF3, 0x80, 0x71,
- 0x43, 0xCF, 0x62, 0x1D, 0x95, 0xCD, 0x69, 0x05,
- 0x14, 0xD0, 0xB4, 0x9E, 0xFF, 0xF9, 0xC9, 0x1D,
- 0x24, 0xB5, 0x92, 0x41, 0xEC, 0x0E, 0xEF, 0xA5,
- 0xF6, 0x01, 0x96, 0xD4, 0x07, 0x04, 0x8B, 0xBA,
- 0x8D, 0x21, 0x46, 0x82, 0x8E, 0xBC, 0xB0, 0x48,
- 0x8D, 0x88, 0x42, 0xFD, 0x56, 0xBB, 0x4F, 0x6D,
- 0xF8, 0xE1, 0x9C, 0x4B, 0x4D, 0xAA, 0xB8, 0xAC
- },
- {
- 0x09, 0x80, 0x84, 0xB5, 0x1F, 0xD1, 0x3D, 0xEA,
- 0xE5, 0xF4, 0x32, 0x0D, 0xE9, 0x4A, 0x68, 0x8E,
- 0xE0, 0x7B, 0xAE, 0xA2, 0x80, 0x04, 0x86, 0x68,
- 0x9A, 0x86, 0x36, 0x11, 0x7B, 0x46, 0xC1, 0xF4,
- 0xC1, 0xF6, 0xAF, 0x7F, 0x74, 0xAE, 0x7C, 0x85,
- 0x76, 0x00, 0x45, 0x6A, 0x58, 0xA3, 0xAF, 0x25,
- 0x1D, 0xC4, 0x72, 0x3A, 0x64, 0xCC, 0x7C, 0x0A,
- 0x5A, 0xB6, 0xD9, 0xCA, 0xC9, 0x1C, 0x20, 0xBB
- },
- {
- 0x60, 0x44, 0x54, 0x0D, 0x56, 0x08, 0x53, 0xEB,
- 0x1C, 0x57, 0xDF, 0x00, 0x77, 0xDD, 0x38, 0x10,
- 0x94, 0x78, 0x1C, 0xDB, 0x90, 0x73, 0xE5, 0xB1,
- 0xB3, 0xD3, 0xF6, 0xC7, 0x82, 0x9E, 0x12, 0x06,
- 0x6B, 0xBA, 0xCA, 0x96, 0xD9, 0x89, 0xA6, 0x90,
- 0xDE, 0x72, 0xCA, 0x31, 0x33, 0xA8, 0x36, 0x52,
- 0xBA, 0x28, 0x4A, 0x6D, 0x62, 0x94, 0x2B, 0x27,
- 0x1F, 0xFA, 0x26, 0x20, 0xC9, 0xE7, 0x5B, 0x1F
- },
- {
- 0x7A, 0x8C, 0xFE, 0x9B, 0x90, 0xF7, 0x5F, 0x7E,
- 0xCB, 0x3A, 0xCC, 0x05, 0x3A, 0xAE, 0xD6, 0x19,
- 0x31, 0x12, 0xB6, 0xF6, 0xA4, 0xAE, 0xEB, 0x3F,
- 0x65, 0xD3, 0xDE, 0x54, 0x19, 0x42, 0xDE, 0xB9,
- 0xE2, 0x22, 0x81, 0x52, 0xA3, 0xC4, 0xBB, 0xBE,
- 0x72, 0xFC, 0x3B, 0x12, 0x62, 0x95, 0x28, 0xCF,
- 0xBB, 0x09, 0xFE, 0x63, 0x0F, 0x04, 0x74, 0x33,
- 0x9F, 0x54, 0xAB, 0xF4, 0x53, 0xE2, 0xED, 0x52
- },
- {
- 0x38, 0x0B, 0xEA, 0xF6, 0xEA, 0x7C, 0xC9, 0x36,
- 0x5E, 0x27, 0x0E, 0xF0, 0xE6, 0xF3, 0xA6, 0x4F,
- 0xB9, 0x02, 0xAC, 0xAE, 0x51, 0xDD, 0x55, 0x12,
- 0xF8, 0x42, 0x59, 0xAD, 0x2C, 0x91, 0xF4, 0xBC,
- 0x41, 0x08, 0xDB, 0x73, 0x19, 0x2A, 0x5B, 0xBF,
- 0xB0, 0xCB, 0xCF, 0x71, 0xE4, 0x6C, 0x3E, 0x21,
- 0xAE, 0xE1, 0xC5, 0xE8, 0x60, 0xDC, 0x96, 0xE8,
- 0xEB, 0x0B, 0x7B, 0x84, 0x26, 0xE6, 0xAB, 0xE9
- },
- {
- 0x60, 0xFE, 0x3C, 0x45, 0x35, 0xE1, 0xB5, 0x9D,
- 0x9A, 0x61, 0xEA, 0x85, 0x00, 0xBF, 0xAC, 0x41,
- 0xA6, 0x9D, 0xFF, 0xB1, 0xCE, 0xAD, 0xD9, 0xAC,
- 0xA3, 0x23, 0xE9, 0xA6, 0x25, 0xB6, 0x4D, 0xA5,
- 0x76, 0x3B, 0xAD, 0x72, 0x26, 0xDA, 0x02, 0xB9,
- 0xC8, 0xC4, 0xF1, 0xA5, 0xDE, 0x14, 0x0A, 0xC5,
- 0xA6, 0xC1, 0x12, 0x4E, 0x4F, 0x71, 0x8C, 0xE0,
- 0xB2, 0x8E, 0xA4, 0x73, 0x93, 0xAA, 0x66, 0x37
- },
- {
- 0x4F, 0xE1, 0x81, 0xF5, 0x4A, 0xD6, 0x3A, 0x29,
- 0x83, 0xFE, 0xAA, 0xF7, 0x7D, 0x1E, 0x72, 0x35,
- 0xC2, 0xBE, 0xB1, 0x7F, 0xA3, 0x28, 0xB6, 0xD9,
- 0x50, 0x5B, 0xDA, 0x32, 0x7D, 0xF1, 0x9F, 0xC3,
- 0x7F, 0x02, 0xC4, 0xB6, 0xF0, 0x36, 0x8C, 0xE2,
- 0x31, 0x47, 0x31, 0x3A, 0x8E, 0x57, 0x38, 0xB5,
- 0xFA, 0x2A, 0x95, 0xB2, 0x9D, 0xE1, 0xC7, 0xF8,
- 0x26, 0x4E, 0xB7, 0x7B, 0x69, 0xF5, 0x85, 0xCD
- },
- {
- 0xF2, 0x28, 0x77, 0x3C, 0xE3, 0xF3, 0xA4, 0x2B,
- 0x5F, 0x14, 0x4D, 0x63, 0x23, 0x7A, 0x72, 0xD9,
- 0x96, 0x93, 0xAD, 0xB8, 0x83, 0x7D, 0x0E, 0x11,
- 0x2A, 0x8A, 0x0F, 0x8F, 0xFF, 0xF2, 0xC3, 0x62,
- 0x85, 0x7A, 0xC4, 0x9C, 0x11, 0xEC, 0x74, 0x0D,
- 0x15, 0x00, 0x74, 0x9D, 0xAC, 0x9B, 0x1F, 0x45,
- 0x48, 0x10, 0x8B, 0xF3, 0x15, 0x57, 0x94, 0xDC,
- 0xC9, 0xE4, 0x08, 0x28, 0x49, 0xE2, 0xB8, 0x5B
- },
- {
- 0x96, 0x24, 0x52, 0xA8, 0x45, 0x5C, 0xC5, 0x6C,
- 0x85, 0x11, 0x31, 0x7E, 0x3B, 0x1F, 0x3B, 0x2C,
- 0x37, 0xDF, 0x75, 0xF5, 0x88, 0xE9, 0x43, 0x25,
- 0xFD, 0xD7, 0x70, 0x70, 0x35, 0x9C, 0xF6, 0x3A,
- 0x9A, 0xE6, 0xE9, 0x30, 0x93, 0x6F, 0xDF, 0x8E,
- 0x1E, 0x08, 0xFF, 0xCA, 0x44, 0x0C, 0xFB, 0x72,
- 0xC2, 0x8F, 0x06, 0xD8, 0x9A, 0x21, 0x51, 0xD1,
- 0xC4, 0x6C, 0xD5, 0xB2, 0x68, 0xEF, 0x85, 0x63
- },
- {
- 0x43, 0xD4, 0x4B, 0xFA, 0x18, 0x76, 0x8C, 0x59,
- 0x89, 0x6B, 0xF7, 0xED, 0x17, 0x65, 0xCB, 0x2D,
- 0x14, 0xAF, 0x8C, 0x26, 0x02, 0x66, 0x03, 0x90,
- 0x99, 0xB2, 0x5A, 0x60, 0x3E, 0x4D, 0xDC, 0x50,
- 0x39, 0xD6, 0xEF, 0x3A, 0x91, 0x84, 0x7D, 0x10,
- 0x88, 0xD4, 0x01, 0xC0, 0xC7, 0xE8, 0x47, 0x78,
- 0x1A, 0x8A, 0x59, 0x0D, 0x33, 0xA3, 0xC6, 0xCB,
- 0x4D, 0xF0, 0xFA, 0xB1, 0xC2, 0xF2, 0x23, 0x55
- },
- {
- 0xDC, 0xFF, 0xA9, 0xD5, 0x8C, 0x2A, 0x4C, 0xA2,
- 0xCD, 0xBB, 0x0C, 0x7A, 0xA4, 0xC4, 0xC1, 0xD4,
- 0x51, 0x65, 0x19, 0x00, 0x89, 0xF4, 0xE9, 0x83,
- 0xBB, 0x1C, 0x2C, 0xAB, 0x4A, 0xAE, 0xFF, 0x1F,
- 0xA2, 0xB5, 0xEE, 0x51, 0x6F, 0xEC, 0xD7, 0x80,
- 0x54, 0x02, 0x40, 0xBF, 0x37, 0xE5, 0x6C, 0x8B,
- 0xCC, 0xA7, 0xFA, 0xB9, 0x80, 0xE1, 0xE6, 0x1C,
- 0x94, 0x00, 0xD8, 0xA9, 0xA5, 0xB1, 0x4A, 0xC6
- },
- {
- 0x6F, 0xBF, 0x31, 0xB4, 0x5A, 0xB0, 0xC0, 0xB8,
- 0xDA, 0xD1, 0xC0, 0xF5, 0xF4, 0x06, 0x13, 0x79,
- 0x91, 0x2D, 0xDE, 0x5A, 0xA9, 0x22, 0x09, 0x9A,
- 0x03, 0x0B, 0x72, 0x5C, 0x73, 0x34, 0x6C, 0x52,
- 0x42, 0x91, 0xAD, 0xEF, 0x89, 0xD2, 0xF6, 0xFD,
- 0x8D, 0xFC, 0xDA, 0x6D, 0x07, 0xDA, 0xD8, 0x11,
- 0xA9, 0x31, 0x45, 0x36, 0xC2, 0x91, 0x5E, 0xD4,
- 0x5D, 0xA3, 0x49, 0x47, 0xE8, 0x3D, 0xE3, 0x4E
- },
- {
- 0xA0, 0xC6, 0x5B, 0xDD, 0xDE, 0x8A, 0xDE, 0xF5,
- 0x72, 0x82, 0xB0, 0x4B, 0x11, 0xE7, 0xBC, 0x8A,
- 0xAB, 0x10, 0x5B, 0x99, 0x23, 0x1B, 0x75, 0x0C,
- 0x02, 0x1F, 0x4A, 0x73, 0x5C, 0xB1, 0xBC, 0xFA,
- 0xB8, 0x75, 0x53, 0xBB, 0xA3, 0xAB, 0xB0, 0xC3,
- 0xE6, 0x4A, 0x0B, 0x69, 0x55, 0x28, 0x51, 0x85,
- 0xA0, 0xBD, 0x35, 0xFB, 0x8C, 0xFD, 0xE5, 0x57,
- 0x32, 0x9B, 0xEB, 0xB1, 0xF6, 0x29, 0xEE, 0x93
- },
- {
- 0xF9, 0x9D, 0x81, 0x55, 0x50, 0x55, 0x8E, 0x81,
- 0xEC, 0xA2, 0xF9, 0x67, 0x18, 0xAE, 0xD1, 0x0D,
- 0x86, 0xF3, 0xF1, 0xCF, 0xB6, 0x75, 0xCC, 0xE0,
- 0x6B, 0x0E, 0xFF, 0x02, 0xF6, 0x17, 0xC5, 0xA4,
- 0x2C, 0x5A, 0xA7, 0x60, 0x27, 0x0F, 0x26, 0x79,
- 0xDA, 0x26, 0x77, 0xC5, 0xAE, 0xB9, 0x4F, 0x11,
- 0x42, 0x27, 0x7F, 0x21, 0xC7, 0xF7, 0x9F, 0x3C,
- 0x4F, 0x0C, 0xCE, 0x4E, 0xD8, 0xEE, 0x62, 0xB1
- },
- {
- 0x95, 0x39, 0x1D, 0xA8, 0xFC, 0x7B, 0x91, 0x7A,
- 0x20, 0x44, 0xB3, 0xD6, 0xF5, 0x37, 0x4E, 0x1C,
- 0xA0, 0x72, 0xB4, 0x14, 0x54, 0xD5, 0x72, 0xC7,
- 0x35, 0x6C, 0x05, 0xFD, 0x4B, 0xC1, 0xE0, 0xF4,
- 0x0B, 0x8B, 0xB8, 0xB4, 0xA9, 0xF6, 0xBC, 0xE9,
- 0xBE, 0x2C, 0x46, 0x23, 0xC3, 0x99, 0xB0, 0xDC,
- 0xA0, 0xDA, 0xB0, 0x5C, 0xB7, 0x28, 0x1B, 0x71,
- 0xA2, 0x1B, 0x0E, 0xBC, 0xD9, 0xE5, 0x56, 0x70
- },
- {
- 0x04, 0xB9, 0xCD, 0x3D, 0x20, 0xD2, 0x21, 0xC0,
- 0x9A, 0xC8, 0x69, 0x13, 0xD3, 0xDC, 0x63, 0x04,
- 0x19, 0x89, 0xA9, 0xA1, 0xE6, 0x94, 0xF1, 0xE6,
- 0x39, 0xA3, 0xBA, 0x7E, 0x45, 0x18, 0x40, 0xF7,
- 0x50, 0xC2, 0xFC, 0x19, 0x1D, 0x56, 0xAD, 0x61,
- 0xF2, 0xE7, 0x93, 0x6B, 0xC0, 0xAC, 0x8E, 0x09,
- 0x4B, 0x60, 0xCA, 0xEE, 0xD8, 0x78, 0xC1, 0x87,
- 0x99, 0x04, 0x54, 0x02, 0xD6, 0x1C, 0xEA, 0xF9
- },
- {
- 0xEC, 0x0E, 0x0E, 0xF7, 0x07, 0xE4, 0xED, 0x6C,
- 0x0C, 0x66, 0xF9, 0xE0, 0x89, 0xE4, 0x95, 0x4B,
- 0x05, 0x80, 0x30, 0xD2, 0xDD, 0x86, 0x39, 0x8F,
- 0xE8, 0x40, 0x59, 0x63, 0x1F, 0x9E, 0xE5, 0x91,
- 0xD9, 0xD7, 0x73, 0x75, 0x35, 0x51, 0x49, 0x17,
- 0x8C, 0x0C, 0xF8, 0xF8, 0xE7, 0xC4, 0x9E, 0xD2,
- 0xA5, 0xE4, 0xF9, 0x54, 0x88, 0xA2, 0x24, 0x70,
- 0x67, 0xC2, 0x08, 0x51, 0x0F, 0xAD, 0xC4, 0x4C
- },
- {
- 0x9A, 0x37, 0xCC, 0xE2, 0x73, 0xB7, 0x9C, 0x09,
- 0x91, 0x36, 0x77, 0x51, 0x0E, 0xAF, 0x76, 0x88,
- 0xE8, 0x9B, 0x33, 0x14, 0xD3, 0x53, 0x2F, 0xD2,
- 0x76, 0x4C, 0x39, 0xDE, 0x02, 0x2A, 0x29, 0x45,
- 0xB5, 0x71, 0x0D, 0x13, 0x51, 0x7A, 0xF8, 0xDD,
- 0xC0, 0x31, 0x66, 0x24, 0xE7, 0x3B, 0xEC, 0x1C,
- 0xE6, 0x7D, 0xF1, 0x52, 0x28, 0x30, 0x20, 0x36,
- 0xF3, 0x30, 0xAB, 0x0C, 0xB4, 0xD2, 0x18, 0xDD
- },
- {
- 0x4C, 0xF9, 0xBB, 0x8F, 0xB3, 0xD4, 0xDE, 0x8B,
- 0x38, 0xB2, 0xF2, 0x62, 0xD3, 0xC4, 0x0F, 0x46,
- 0xDF, 0xE7, 0x47, 0xE8, 0xFC, 0x0A, 0x41, 0x4C,
- 0x19, 0x3D, 0x9F, 0xCF, 0x75, 0x31, 0x06, 0xCE,
- 0x47, 0xA1, 0x8F, 0x17, 0x2F, 0x12, 0xE8, 0xA2,
- 0xF1, 0xC2, 0x67, 0x26, 0x54, 0x53, 0x58, 0xE5,
- 0xEE, 0x28, 0xC9, 0xE2, 0x21, 0x3A, 0x87, 0x87,
- 0xAA, 0xFB, 0xC5, 0x16, 0xD2, 0x34, 0x31, 0x52
- },
- {
- 0x64, 0xE0, 0xC6, 0x3A, 0xF9, 0xC8, 0x08, 0xFD,
- 0x89, 0x31, 0x37, 0x12, 0x98, 0x67, 0xFD, 0x91,
- 0x93, 0x9D, 0x53, 0xF2, 0xAF, 0x04, 0xBE, 0x4F,
- 0xA2, 0x68, 0x00, 0x61, 0x00, 0x06, 0x9B, 0x2D,
- 0x69, 0xDA, 0xA5, 0xC5, 0xD8, 0xED, 0x7F, 0xDD,
- 0xCB, 0x2A, 0x70, 0xEE, 0xEC, 0xDF, 0x2B, 0x10,
- 0x5D, 0xD4, 0x6A, 0x1E, 0x3B, 0x73, 0x11, 0x72,
- 0x8F, 0x63, 0x9A, 0xB4, 0x89, 0x32, 0x6B, 0xC9
- },
- {
- 0x5E, 0x9C, 0x93, 0x15, 0x8D, 0x65, 0x9B, 0x2D,
- 0xEF, 0x06, 0xB0, 0xC3, 0xC7, 0x56, 0x50, 0x45,
- 0x54, 0x26, 0x62, 0xD6, 0xEE, 0xE8, 0xA9, 0x6A,
- 0x89, 0xB7, 0x8A, 0xDE, 0x09, 0xFE, 0x8B, 0x3D,
- 0xCC, 0x09, 0x6D, 0x4F, 0xE4, 0x88, 0x15, 0xD8,
- 0x8D, 0x8F, 0x82, 0x62, 0x01, 0x56, 0x60, 0x2A,
- 0xF5, 0x41, 0x95, 0x5E, 0x1F, 0x6C, 0xA3, 0x0D,
- 0xCE, 0x14, 0xE2, 0x54, 0xC3, 0x26, 0xB8, 0x8F
- },
- {
- 0x77, 0x75, 0xDF, 0xF8, 0x89, 0x45, 0x8D, 0xD1,
- 0x1A, 0xEF, 0x41, 0x72, 0x76, 0x85, 0x3E, 0x21,
- 0x33, 0x5E, 0xB8, 0x8E, 0x4D, 0xEC, 0x9C, 0xFB,
- 0x4E, 0x9E, 0xDB, 0x49, 0x82, 0x00, 0x88, 0x55,
- 0x1A, 0x2C, 0xA6, 0x03, 0x39, 0xF1, 0x20, 0x66,
- 0x10, 0x11, 0x69, 0xF0, 0xDF, 0xE8, 0x4B, 0x09,
- 0x8F, 0xDD, 0xB1, 0x48, 0xD9, 0xDA, 0x6B, 0x3D,
- 0x61, 0x3D, 0xF2, 0x63, 0x88, 0x9A, 0xD6, 0x4B
- },
- {
- 0xF0, 0xD2, 0x80, 0x5A, 0xFB, 0xB9, 0x1F, 0x74,
- 0x39, 0x51, 0x35, 0x1A, 0x6D, 0x02, 0x4F, 0x93,
- 0x53, 0xA2, 0x3C, 0x7C, 0xE1, 0xFC, 0x2B, 0x05,
- 0x1B, 0x3A, 0x8B, 0x96, 0x8C, 0x23, 0x3F, 0x46,
- 0xF5, 0x0F, 0x80, 0x6E, 0xCB, 0x15, 0x68, 0xFF,
- 0xAA, 0x0B, 0x60, 0x66, 0x1E, 0x33, 0x4B, 0x21,
- 0xDD, 0xE0, 0x4F, 0x8F, 0xA1, 0x55, 0xAC, 0x74,
- 0x0E, 0xEB, 0x42, 0xE2, 0x0B, 0x60, 0xD7, 0x64
- },
- {
- 0x86, 0xA2, 0xAF, 0x31, 0x6E, 0x7D, 0x77, 0x54,
- 0x20, 0x1B, 0x94, 0x2E, 0x27, 0x53, 0x64, 0xAC,
- 0x12, 0xEA, 0x89, 0x62, 0xAB, 0x5B, 0xD8, 0xD7,
- 0xFB, 0x27, 0x6D, 0xC5, 0xFB, 0xFF, 0xC8, 0xF9,
- 0xA2, 0x8C, 0xAE, 0x4E, 0x48, 0x67, 0xDF, 0x67,
- 0x80, 0xD9, 0xB7, 0x25, 0x24, 0x16, 0x09, 0x27,
- 0xC8, 0x55, 0xDA, 0x5B, 0x60, 0x78, 0xE0, 0xB5,
- 0x54, 0xAA, 0x91, 0xE3, 0x1C, 0xB9, 0xCA, 0x1D
- },
- {
- 0x10, 0xBD, 0xF0, 0xCA, 0xA0, 0x80, 0x27, 0x05,
- 0xE7, 0x06, 0x36, 0x9B, 0xAF, 0x8A, 0x3F, 0x79,
- 0xD7, 0x2C, 0x0A, 0x03, 0xA8, 0x06, 0x75, 0xA7,
- 0xBB, 0xB0, 0x0B, 0xE3, 0xA4, 0x5E, 0x51, 0x64,
- 0x24, 0xD1, 0xEE, 0x88, 0xEF, 0xB5, 0x6F, 0x6D,
- 0x57, 0x77, 0x54, 0x5A, 0xE6, 0xE2, 0x77, 0x65,
- 0xC3, 0xA8, 0xF5, 0xE4, 0x93, 0xFC, 0x30, 0x89,
- 0x15, 0x63, 0x89, 0x33, 0xA1, 0xDF, 0xEE, 0x55
- },
- {
- 0xB0, 0x17, 0x81, 0x09, 0x2B, 0x17, 0x48, 0x45,
- 0x9E, 0x2E, 0x4E, 0xC1, 0x78, 0x69, 0x66, 0x27,
- 0xBF, 0x4E, 0xBA, 0xFE, 0xBB, 0xA7, 0x74, 0xEC,
- 0xF0, 0x18, 0xB7, 0x9A, 0x68, 0xAE, 0xB8, 0x49,
- 0x17, 0xBF, 0x0B, 0x84, 0xBB, 0x79, 0xD1, 0x7B,
- 0x74, 0x31, 0x51, 0x14, 0x4C, 0xD6, 0x6B, 0x7B,
- 0x33, 0xA4, 0xB9, 0xE5, 0x2C, 0x76, 0xC4, 0xE1,
- 0x12, 0x05, 0x0F, 0xF5, 0x38, 0x5B, 0x7F, 0x0B
- },
- {
- 0xC6, 0xDB, 0xC6, 0x1D, 0xEC, 0x6E, 0xAE, 0xAC,
- 0x81, 0xE3, 0xD5, 0xF7, 0x55, 0x20, 0x3C, 0x8E,
- 0x22, 0x05, 0x51, 0x53, 0x4A, 0x0B, 0x2F, 0xD1,
- 0x05, 0xA9, 0x18, 0x89, 0x94, 0x5A, 0x63, 0x85,
- 0x50, 0x20, 0x4F, 0x44, 0x09, 0x3D, 0xD9, 0x98,
- 0xC0, 0x76, 0x20, 0x5D, 0xFF, 0xAD, 0x70, 0x3A,
- 0x0E, 0x5C, 0xD3, 0xC7, 0xF4, 0x38, 0xA7, 0xE6,
- 0x34, 0xCD, 0x59, 0xFE, 0xDE, 0xDB, 0x53, 0x9E
- },
- {
- 0xEB, 0xA5, 0x1A, 0xCF, 0xFB, 0x4C, 0xEA, 0x31,
- 0xDB, 0x4B, 0x8D, 0x87, 0xE9, 0xBF, 0x7D, 0xD4,
- 0x8F, 0xE9, 0x7B, 0x02, 0x53, 0xAE, 0x67, 0xAA,
- 0x58, 0x0F, 0x9A, 0xC4, 0xA9, 0xD9, 0x41, 0xF2,
- 0xBE, 0xA5, 0x18, 0xEE, 0x28, 0x68, 0x18, 0xCC,
- 0x9F, 0x63, 0x3F, 0x2A, 0x3B, 0x9F, 0xB6, 0x8E,
- 0x59, 0x4B, 0x48, 0xCD, 0xD6, 0xD5, 0x15, 0xBF,
- 0x1D, 0x52, 0xBA, 0x6C, 0x85, 0xA2, 0x03, 0xA7
- },
- {
- 0x86, 0x22, 0x1F, 0x3A, 0xDA, 0x52, 0x03, 0x7B,
- 0x72, 0x22, 0x4F, 0x10, 0x5D, 0x79, 0x99, 0x23,
- 0x1C, 0x5E, 0x55, 0x34, 0xD0, 0x3D, 0xA9, 0xD9,
- 0xC0, 0xA1, 0x2A, 0xCB, 0x68, 0x46, 0x0C, 0xD3,
- 0x75, 0xDA, 0xF8, 0xE2, 0x43, 0x86, 0x28, 0x6F,
- 0x96, 0x68, 0xF7, 0x23, 0x26, 0xDB, 0xF9, 0x9B,
- 0xA0, 0x94, 0x39, 0x24, 0x37, 0xD3, 0x98, 0xE9,
- 0x5B, 0xB8, 0x16, 0x1D, 0x71, 0x7F, 0x89, 0x91
- },
- {
- 0x55, 0x95, 0xE0, 0x5C, 0x13, 0xA7, 0xEC, 0x4D,
- 0xC8, 0xF4, 0x1F, 0xB7, 0x0C, 0xB5, 0x0A, 0x71,
- 0xBC, 0xE1, 0x7C, 0x02, 0x4F, 0xF6, 0xDE, 0x7A,
- 0xF6, 0x18, 0xD0, 0xCC, 0x4E, 0x9C, 0x32, 0xD9,
- 0x57, 0x0D, 0x6D, 0x3E, 0xA4, 0x5B, 0x86, 0x52,
- 0x54, 0x91, 0x03, 0x0C, 0x0D, 0x8F, 0x2B, 0x18,
- 0x36, 0xD5, 0x77, 0x8C, 0x1C, 0xE7, 0x35, 0xC1,
- 0x77, 0x07, 0xDF, 0x36, 0x4D, 0x05, 0x43, 0x47
- },
- {
- 0xCE, 0x0F, 0x4F, 0x6A, 0xCA, 0x89, 0x59, 0x0A,
- 0x37, 0xFE, 0x03, 0x4D, 0xD7, 0x4D, 0xD5, 0xFA,
- 0x65, 0xEB, 0x1C, 0xBD, 0x0A, 0x41, 0x50, 0x8A,
- 0xAD, 0xDC, 0x09, 0x35, 0x1A, 0x3C, 0xEA, 0x6D,
- 0x18, 0xCB, 0x21, 0x89, 0xC5, 0x4B, 0x70, 0x0C,
- 0x00, 0x9F, 0x4C, 0xBF, 0x05, 0x21, 0xC7, 0xEA,
- 0x01, 0xBE, 0x61, 0xC5, 0xAE, 0x09, 0xCB, 0x54,
- 0xF2, 0x7B, 0xC1, 0xB4, 0x4D, 0x65, 0x8C, 0x82
- },
- {
- 0x7E, 0xE8, 0x0B, 0x06, 0xA2, 0x15, 0xA3, 0xBC,
- 0xA9, 0x70, 0xC7, 0x7C, 0xDA, 0x87, 0x61, 0x82,
- 0x2B, 0xC1, 0x03, 0xD4, 0x4F, 0xA4, 0xB3, 0x3F,
- 0x4D, 0x07, 0xDC, 0xB9, 0x97, 0xE3, 0x6D, 0x55,
- 0x29, 0x8B, 0xCE, 0xAE, 0x12, 0x24, 0x1B, 0x3F,
- 0xA0, 0x7F, 0xA6, 0x3B, 0xE5, 0x57, 0x60, 0x68,
- 0xDA, 0x38, 0x7B, 0x8D, 0x58, 0x59, 0xAE, 0xAB,
- 0x70, 0x13, 0x69, 0x84, 0x8B, 0x17, 0x6D, 0x42
- },
- {
- 0x94, 0x0A, 0x84, 0xB6, 0xA8, 0x4D, 0x10, 0x9A,
- 0xAB, 0x20, 0x8C, 0x02, 0x4C, 0x6C, 0xE9, 0x64,
- 0x76, 0x76, 0xBA, 0x0A, 0xAA, 0x11, 0xF8, 0x6D,
- 0xBB, 0x70, 0x18, 0xF9, 0xFD, 0x22, 0x20, 0xA6,
- 0xD9, 0x01, 0xA9, 0x02, 0x7F, 0x9A, 0xBC, 0xF9,
- 0x35, 0x37, 0x27, 0x27, 0xCB, 0xF0, 0x9E, 0xBD,
- 0x61, 0xA2, 0xA2, 0xEE, 0xB8, 0x76, 0x53, 0xE8,
- 0xEC, 0xAD, 0x1B, 0xAB, 0x85, 0xDC, 0x83, 0x27
- },
- {
- 0x20, 0x20, 0xB7, 0x82, 0x64, 0xA8, 0x2D, 0x9F,
- 0x41, 0x51, 0x14, 0x1A, 0xDB, 0xA8, 0xD4, 0x4B,
- 0xF2, 0x0C, 0x5E, 0xC0, 0x62, 0xEE, 0xE9, 0xB5,
- 0x95, 0xA1, 0x1F, 0x9E, 0x84, 0x90, 0x1B, 0xF1,
- 0x48, 0xF2, 0x98, 0xE0, 0xC9, 0xF8, 0x77, 0x7D,
- 0xCD, 0xBC, 0x7C, 0xC4, 0x67, 0x0A, 0xAC, 0x35,
- 0x6C, 0xC2, 0xAD, 0x8C, 0xCB, 0x16, 0x29, 0xF1,
- 0x6F, 0x6A, 0x76, 0xBC, 0xEF, 0xBE, 0xE7, 0x60
- },
- {
- 0xD1, 0xB8, 0x97, 0xB0, 0xE0, 0x75, 0xBA, 0x68,
- 0xAB, 0x57, 0x2A, 0xDF, 0x9D, 0x9C, 0x43, 0x66,
- 0x63, 0xE4, 0x3E, 0xB3, 0xD8, 0xE6, 0x2D, 0x92,
- 0xFC, 0x49, 0xC9, 0xBE, 0x21, 0x4E, 0x6F, 0x27,
- 0x87, 0x3F, 0xE2, 0x15, 0xA6, 0x51, 0x70, 0xE6,
- 0xBE, 0xA9, 0x02, 0x40, 0x8A, 0x25, 0xB4, 0x95,
- 0x06, 0xF4, 0x7B, 0xAB, 0xD0, 0x7C, 0xEC, 0xF7,
- 0x11, 0x3E, 0xC1, 0x0C, 0x5D, 0xD3, 0x12, 0x52
- },
- {
- 0xB1, 0x4D, 0x0C, 0x62, 0xAB, 0xFA, 0x46, 0x9A,
- 0x35, 0x71, 0x77, 0xE5, 0x94, 0xC1, 0x0C, 0x19,
- 0x42, 0x43, 0xED, 0x20, 0x25, 0xAB, 0x8A, 0xA5,
- 0xAD, 0x2F, 0xA4, 0x1A, 0xD3, 0x18, 0xE0, 0xFF,
- 0x48, 0xCD, 0x5E, 0x60, 0xBE, 0xC0, 0x7B, 0x13,
- 0x63, 0x4A, 0x71, 0x1D, 0x23, 0x26, 0xE4, 0x88,
- 0xA9, 0x85, 0xF3, 0x1E, 0x31, 0x15, 0x33, 0x99,
- 0xE7, 0x30, 0x88, 0xEF, 0xC8, 0x6A, 0x5C, 0x55
- },
- {
- 0x41, 0x69, 0xC5, 0xCC, 0x80, 0x8D, 0x26, 0x97,
- 0xDC, 0x2A, 0x82, 0x43, 0x0D, 0xC2, 0x3E, 0x3C,
- 0xD3, 0x56, 0xDC, 0x70, 0xA9, 0x45, 0x66, 0x81,
- 0x05, 0x02, 0xB8, 0xD6, 0x55, 0xB3, 0x9A, 0xBF,
- 0x9E, 0x7F, 0x90, 0x2F, 0xE7, 0x17, 0xE0, 0x38,
- 0x92, 0x19, 0x85, 0x9E, 0x19, 0x45, 0xDF, 0x1A,
- 0xF6, 0xAD, 0xA4, 0x2E, 0x4C, 0xCD, 0xA5, 0x5A,
- 0x19, 0x7B, 0x71, 0x00, 0xA3, 0x0C, 0x30, 0xA1
- },
- {
- 0x25, 0x8A, 0x4E, 0xDB, 0x11, 0x3D, 0x66, 0xC8,
- 0x39, 0xC8, 0xB1, 0xC9, 0x1F, 0x15, 0xF3, 0x5A,
- 0xDE, 0x60, 0x9F, 0x11, 0xCD, 0x7F, 0x86, 0x81,
- 0xA4, 0x04, 0x5B, 0x9F, 0xEF, 0x7B, 0x0B, 0x24,
- 0xC8, 0x2C, 0xDA, 0x06, 0xA5, 0xF2, 0x06, 0x7B,
- 0x36, 0x88, 0x25, 0xE3, 0x91, 0x4E, 0x53, 0xD6,
- 0x94, 0x8E, 0xDE, 0x92, 0xEF, 0xD6, 0xE8, 0x38,
- 0x7F, 0xA2, 0xE5, 0x37, 0x23, 0x9B, 0x5B, 0xEE
- },
- {
- 0x79, 0xD2, 0xD8, 0x69, 0x6D, 0x30, 0xF3, 0x0F,
- 0xB3, 0x46, 0x57, 0x76, 0x11, 0x71, 0xA1, 0x1E,
- 0x6C, 0x3F, 0x1E, 0x64, 0xCB, 0xE7, 0xBE, 0xBE,
- 0xE1, 0x59, 0xCB, 0x95, 0xBF, 0xAF, 0x81, 0x2B,
- 0x4F, 0x41, 0x1E, 0x2F, 0x26, 0xD9, 0xC4, 0x21,
- 0xDC, 0x2C, 0x28, 0x4A, 0x33, 0x42, 0xD8, 0x23,
- 0xEC, 0x29, 0x38, 0x49, 0xE4, 0x2D, 0x1E, 0x46,
- 0xB0, 0xA4, 0xAC, 0x1E, 0x3C, 0x86, 0xAB, 0xAA
- },
- {
- 0x8B, 0x94, 0x36, 0x01, 0x0D, 0xC5, 0xDE, 0xE9,
- 0x92, 0xAE, 0x38, 0xAE, 0xA9, 0x7F, 0x2C, 0xD6,
- 0x3B, 0x94, 0x6D, 0x94, 0xFE, 0xDD, 0x2E, 0xC9,
- 0x67, 0x1D, 0xCD, 0xE3, 0xBD, 0x4C, 0xE9, 0x56,
- 0x4D, 0x55, 0x5C, 0x66, 0xC1, 0x5B, 0xB2, 0xB9,
- 0x00, 0xDF, 0x72, 0xED, 0xB6, 0xB8, 0x91, 0xEB,
- 0xCA, 0xDF, 0xEF, 0xF6, 0x3C, 0x9E, 0xA4, 0x03,
- 0x6A, 0x99, 0x8B, 0xE7, 0x97, 0x39, 0x81, 0xE7
- },
- {
- 0xC8, 0xF6, 0x8E, 0x69, 0x6E, 0xD2, 0x82, 0x42,
- 0xBF, 0x99, 0x7F, 0x5B, 0x3B, 0x34, 0x95, 0x95,
- 0x08, 0xE4, 0x2D, 0x61, 0x38, 0x10, 0xF1, 0xE2,
- 0xA4, 0x35, 0xC9, 0x6E, 0xD2, 0xFF, 0x56, 0x0C,
- 0x70, 0x22, 0xF3, 0x61, 0xA9, 0x23, 0x4B, 0x98,
- 0x37, 0xFE, 0xEE, 0x90, 0xBF, 0x47, 0x92, 0x2E,
- 0xE0, 0xFD, 0x5F, 0x8D, 0xDF, 0x82, 0x37, 0x18,
- 0xD8, 0x6D, 0x1E, 0x16, 0xC6, 0x09, 0x00, 0x71
- },
- {
- 0xB0, 0x2D, 0x3E, 0xEE, 0x48, 0x60, 0xD5, 0x86,
- 0x8B, 0x2C, 0x39, 0xCE, 0x39, 0xBF, 0xE8, 0x10,
- 0x11, 0x29, 0x05, 0x64, 0xDD, 0x67, 0x8C, 0x85,
- 0xE8, 0x78, 0x3F, 0x29, 0x30, 0x2D, 0xFC, 0x13,
- 0x99, 0xBA, 0x95, 0xB6, 0xB5, 0x3C, 0xD9, 0xEB,
- 0xBF, 0x40, 0x0C, 0xCA, 0x1D, 0xB0, 0xAB, 0x67,
- 0xE1, 0x9A, 0x32, 0x5F, 0x2D, 0x11, 0x58, 0x12,
- 0xD2, 0x5D, 0x00, 0x97, 0x8A, 0xD1, 0xBC, 0xA4
- },
- {
- 0x76, 0x93, 0xEA, 0x73, 0xAF, 0x3A, 0xC4, 0xDA,
- 0xD2, 0x1C, 0xA0, 0xD8, 0xDA, 0x85, 0xB3, 0x11,
- 0x8A, 0x7D, 0x1C, 0x60, 0x24, 0xCF, 0xAF, 0x55,
- 0x76, 0x99, 0x86, 0x82, 0x17, 0xBC, 0x0C, 0x2F,
- 0x44, 0xA1, 0x99, 0xBC, 0x6C, 0x0E, 0xDD, 0x51,
- 0x97, 0x98, 0xBA, 0x05, 0xBD, 0x5B, 0x1B, 0x44,
- 0x84, 0x34, 0x6A, 0x47, 0xC2, 0xCA, 0xDF, 0x6B,
- 0xF3, 0x0B, 0x78, 0x5C, 0xC8, 0x8B, 0x2B, 0xAF
- },
- {
- 0xA0, 0xE5, 0xC1, 0xC0, 0x03, 0x1C, 0x02, 0xE4,
- 0x8B, 0x7F, 0x09, 0xA5, 0xE8, 0x96, 0xEE, 0x9A,
- 0xEF, 0x2F, 0x17, 0xFC, 0x9E, 0x18, 0xE9, 0x97,
- 0xD7, 0xF6, 0xCA, 0xC7, 0xAE, 0x31, 0x64, 0x22,
- 0xC2, 0xB1, 0xE7, 0x79, 0x84, 0xE5, 0xF3, 0xA7,
- 0x3C, 0xB4, 0x5D, 0xEE, 0xD5, 0xD3, 0xF8, 0x46,
- 0x00, 0x10, 0x5E, 0x6E, 0xE3, 0x8F, 0x2D, 0x09,
- 0x0C, 0x7D, 0x04, 0x42, 0xEA, 0x34, 0xC4, 0x6D
- },
- {
- 0x41, 0xDA, 0xA6, 0xAD, 0xCF, 0xDB, 0x69, 0xF1,
- 0x44, 0x0C, 0x37, 0xB5, 0x96, 0x44, 0x01, 0x65,
- 0xC1, 0x5A, 0xDA, 0x59, 0x68, 0x13, 0xE2, 0xE2,
- 0x2F, 0x06, 0x0F, 0xCD, 0x55, 0x1F, 0x24, 0xDE,
- 0xE8, 0xE0, 0x4B, 0xA6, 0x89, 0x03, 0x87, 0x88,
- 0x6C, 0xEE, 0xC4, 0xA7, 0xA0, 0xD7, 0xFC, 0x6B,
- 0x44, 0x50, 0x63, 0x92, 0xEC, 0x38, 0x22, 0xC0,
- 0xD8, 0xC1, 0xAC, 0xFC, 0x7D, 0x5A, 0xEB, 0xE8
- },
- {
- 0x14, 0xD4, 0xD4, 0x0D, 0x59, 0x84, 0xD8, 0x4C,
- 0x5C, 0xF7, 0x52, 0x3B, 0x77, 0x98, 0xB2, 0x54,
- 0xE2, 0x75, 0xA3, 0xA8, 0xCC, 0x0A, 0x1B, 0xD0,
- 0x6E, 0xBC, 0x0B, 0xEE, 0x72, 0x68, 0x56, 0xAC,
- 0xC3, 0xCB, 0xF5, 0x16, 0xFF, 0x66, 0x7C, 0xDA,
- 0x20, 0x58, 0xAD, 0x5C, 0x34, 0x12, 0x25, 0x44,
- 0x60, 0xA8, 0x2C, 0x92, 0x18, 0x70, 0x41, 0x36,
- 0x3C, 0xC7, 0x7A, 0x4D, 0xC2, 0x15, 0xE4, 0x87
- },
- {
- 0xD0, 0xE7, 0xA1, 0xE2, 0xB9, 0xA4, 0x47, 0xFE,
- 0xE8, 0x3E, 0x22, 0x77, 0xE9, 0xFF, 0x80, 0x10,
- 0xC2, 0xF3, 0x75, 0xAE, 0x12, 0xFA, 0x7A, 0xAA,
- 0x8C, 0xA5, 0xA6, 0x31, 0x78, 0x68, 0xA2, 0x6A,
- 0x36, 0x7A, 0x0B, 0x69, 0xFB, 0xC1, 0xCF, 0x32,
- 0xA5, 0x5D, 0x34, 0xEB, 0x37, 0x06, 0x63, 0x01,
- 0x6F, 0x3D, 0x21, 0x10, 0x23, 0x0E, 0xBA, 0x75,
- 0x40, 0x28, 0xA5, 0x6F, 0x54, 0xAC, 0xF5, 0x7C
- },
- {
- 0xE7, 0x71, 0xAA, 0x8D, 0xB5, 0xA3, 0xE0, 0x43,
- 0xE8, 0x17, 0x8F, 0x39, 0xA0, 0x85, 0x7B, 0xA0,
- 0x4A, 0x3F, 0x18, 0xE4, 0xAA, 0x05, 0x74, 0x3C,
- 0xF8, 0xD2, 0x22, 0xB0, 0xB0, 0x95, 0x82, 0x53,
- 0x50, 0xBA, 0x42, 0x2F, 0x63, 0x38, 0x2A, 0x23,
- 0xD9, 0x2E, 0x41, 0x49, 0x07, 0x4E, 0x81, 0x6A,
- 0x36, 0xC1, 0xCD, 0x28, 0x28, 0x4D, 0x14, 0x62,
- 0x67, 0x94, 0x0B, 0x31, 0xF8, 0x81, 0x8E, 0xA2
- },
- {
- 0xFE, 0xB4, 0xFD, 0x6F, 0x9E, 0x87, 0xA5, 0x6B,
- 0xEF, 0x39, 0x8B, 0x32, 0x84, 0xD2, 0xBD, 0xA5,
- 0xB5, 0xB0, 0xE1, 0x66, 0x58, 0x3A, 0x66, 0xB6,
- 0x1E, 0x53, 0x84, 0x57, 0xFF, 0x05, 0x84, 0x87,
- 0x2C, 0x21, 0xA3, 0x29, 0x62, 0xB9, 0x92, 0x8F,
- 0xFA, 0xB5, 0x8D, 0xE4, 0xAF, 0x2E, 0xDD, 0x4E,
- 0x15, 0xD8, 0xB3, 0x55, 0x70, 0x52, 0x32, 0x07,
- 0xFF, 0x4E, 0x2A, 0x5A, 0xA7, 0x75, 0x4C, 0xAA
- },
- {
- 0x46, 0x2F, 0x17, 0xBF, 0x00, 0x5F, 0xB1, 0xC1,
- 0xB9, 0xE6, 0x71, 0x77, 0x9F, 0x66, 0x52, 0x09,
- 0xEC, 0x28, 0x73, 0xE3, 0xE4, 0x11, 0xF9, 0x8D,
- 0xAB, 0xF2, 0x40, 0xA1, 0xD5, 0xEC, 0x3F, 0x95,
- 0xCE, 0x67, 0x96, 0xB6, 0xFC, 0x23, 0xFE, 0x17,
- 0x19, 0x03, 0xB5, 0x02, 0x02, 0x34, 0x67, 0xDE,
- 0xC7, 0x27, 0x3F, 0xF7, 0x48, 0x79, 0xB9, 0x29,
- 0x67, 0xA2, 0xA4, 0x3A, 0x5A, 0x18, 0x3D, 0x33
- },
- {
- 0xD3, 0x33, 0x81, 0x93, 0xB6, 0x45, 0x53, 0xDB,
- 0xD3, 0x8D, 0x14, 0x4B, 0xEA, 0x71, 0xC5, 0x91,
- 0x5B, 0xB1, 0x10, 0xE2, 0xD8, 0x81, 0x80, 0xDB,
- 0xC5, 0xDB, 0x36, 0x4F, 0xD6, 0x17, 0x1D, 0xF3,
- 0x17, 0xFC, 0x72, 0x68, 0x83, 0x1B, 0x5A, 0xEF,
- 0x75, 0xE4, 0x34, 0x2B, 0x2F, 0xAD, 0x87, 0x97,
- 0xBA, 0x39, 0xED, 0xDC, 0xEF, 0x80, 0xE6, 0xEC,
- 0x08, 0x15, 0x93, 0x50, 0xB1, 0xAD, 0x69, 0x6D
- },
- {
- 0xE1, 0x59, 0x0D, 0x58, 0x5A, 0x3D, 0x39, 0xF7,
- 0xCB, 0x59, 0x9A, 0xBD, 0x47, 0x90, 0x70, 0x96,
- 0x64, 0x09, 0xA6, 0x84, 0x6D, 0x43, 0x77, 0xAC,
- 0xF4, 0x47, 0x1D, 0x06, 0x5D, 0x5D, 0xB9, 0x41,
- 0x29, 0xCC, 0x9B, 0xE9, 0x25, 0x73, 0xB0, 0x5E,
- 0xD2, 0x26, 0xBE, 0x1E, 0x9B, 0x7C, 0xB0, 0xCA,
- 0xBE, 0x87, 0x91, 0x85, 0x89, 0xF8, 0x0D, 0xAD,
- 0xD4, 0xEF, 0x5E, 0xF2, 0x5A, 0x93, 0xD2, 0x8E
- },
- {
- 0xF8, 0xF3, 0x72, 0x6A, 0xC5, 0xA2, 0x6C, 0xC8,
- 0x01, 0x32, 0x49, 0x3A, 0x6F, 0xED, 0xCB, 0x0E,
- 0x60, 0x76, 0x0C, 0x09, 0xCF, 0xC8, 0x4C, 0xAD,
- 0x17, 0x81, 0x75, 0x98, 0x68, 0x19, 0x66, 0x5E,
- 0x76, 0x84, 0x2D, 0x7B, 0x9F, 0xED, 0xF7, 0x6D,
- 0xDD, 0xEB, 0xF5, 0xD3, 0xF5, 0x6F, 0xAA, 0xAD,
- 0x44, 0x77, 0x58, 0x7A, 0xF2, 0x16, 0x06, 0xD3,
- 0x96, 0xAE, 0x57, 0x0D, 0x8E, 0x71, 0x9A, 0xF2
- },
- {
- 0x30, 0x18, 0x60, 0x55, 0xC0, 0x79, 0x49, 0x94,
- 0x81, 0x83, 0xC8, 0x50, 0xE9, 0xA7, 0x56, 0xCC,
- 0x09, 0x93, 0x7E, 0x24, 0x7D, 0x9D, 0x92, 0x8E,
- 0x86, 0x9E, 0x20, 0xBA, 0xFC, 0x3C, 0xD9, 0x72,
- 0x17, 0x19, 0xD3, 0x4E, 0x04, 0xA0, 0x89, 0x9B,
- 0x92, 0xC7, 0x36, 0x08, 0x45, 0x50, 0x18, 0x68,
- 0x86, 0xEF, 0xBA, 0x2E, 0x79, 0x0D, 0x8B, 0xE6,
- 0xEB, 0xF0, 0x40, 0xB2, 0x09, 0xC4, 0x39, 0xA4
- },
- {
- 0xF3, 0xC4, 0x27, 0x6C, 0xB8, 0x63, 0x63, 0x77,
- 0x12, 0xC2, 0x41, 0xC4, 0x44, 0xC5, 0xCC, 0x1E,
- 0x35, 0x54, 0xE0, 0xFD, 0xDB, 0x17, 0x4D, 0x03,
- 0x58, 0x19, 0xDD, 0x83, 0xEB, 0x70, 0x0B, 0x4C,
- 0xE8, 0x8D, 0xF3, 0xAB, 0x38, 0x41, 0xBA, 0x02,
- 0x08, 0x5E, 0x1A, 0x99, 0xB4, 0xE1, 0x73, 0x10,
- 0xC5, 0x34, 0x10, 0x75, 0xC0, 0x45, 0x8B, 0xA3,
- 0x76, 0xC9, 0x5A, 0x68, 0x18, 0xFB, 0xB3, 0xE2
- },
- {
- 0x0A, 0xA0, 0x07, 0xC4, 0xDD, 0x9D, 0x58, 0x32,
- 0x39, 0x30, 0x40, 0xA1, 0x58, 0x3C, 0x93, 0x0B,
- 0xCA, 0x7D, 0xC5, 0xE7, 0x7E, 0xA5, 0x3A, 0xDD,
- 0x7E, 0x2B, 0x3F, 0x7C, 0x8E, 0x23, 0x13, 0x68,
- 0x04, 0x35, 0x20, 0xD4, 0xA3, 0xEF, 0x53, 0xC9,
- 0x69, 0xB6, 0xBB, 0xFD, 0x02, 0x59, 0x46, 0xF6,
- 0x32, 0xBD, 0x7F, 0x76, 0x5D, 0x53, 0xC2, 0x10,
- 0x03, 0xB8, 0xF9, 0x83, 0xF7, 0x5E, 0x2A, 0x6A
- },
- {
- 0x08, 0xE9, 0x46, 0x47, 0x20, 0x53, 0x3B, 0x23,
- 0xA0, 0x4E, 0xC2, 0x4F, 0x7A, 0xE8, 0xC1, 0x03,
- 0x14, 0x5F, 0x76, 0x53, 0x87, 0xD7, 0x38, 0x77,
- 0x7D, 0x3D, 0x34, 0x34, 0x77, 0xFD, 0x1C, 0x58,
- 0xDB, 0x05, 0x21, 0x42, 0xCA, 0xB7, 0x54, 0xEA,
- 0x67, 0x43, 0x78, 0xE1, 0x87, 0x66, 0xC5, 0x35,
- 0x42, 0xF7, 0x19, 0x70, 0x17, 0x1C, 0xC4, 0xF8,
- 0x16, 0x94, 0x24, 0x6B, 0x71, 0x7D, 0x75, 0x64
- },
- {
- 0xD3, 0x7F, 0xF7, 0xAD, 0x29, 0x79, 0x93, 0xE7,
- 0xEC, 0x21, 0xE0, 0xF1, 0xB4, 0xB5, 0xAE, 0x71,
- 0x9C, 0xDC, 0x83, 0xC5, 0xDB, 0x68, 0x75, 0x27,
- 0xF2, 0x75, 0x16, 0xCB, 0xFF, 0xA8, 0x22, 0x88,
- 0x8A, 0x68, 0x10, 0xEE, 0x5C, 0x1C, 0xA7, 0xBF,
- 0xE3, 0x32, 0x11, 0x19, 0xBE, 0x1A, 0xB7, 0xBF,
- 0xA0, 0xA5, 0x02, 0x67, 0x1C, 0x83, 0x29, 0x49,
- 0x4D, 0xF7, 0xAD, 0x6F, 0x52, 0x2D, 0x44, 0x0F
- },
- {
- 0xDD, 0x90, 0x42, 0xF6, 0xE4, 0x64, 0xDC, 0xF8,
- 0x6B, 0x12, 0x62, 0xF6, 0xAC, 0xCF, 0xAF, 0xBD,
- 0x8C, 0xFD, 0x90, 0x2E, 0xD3, 0xED, 0x89, 0xAB,
- 0xF7, 0x8F, 0xFA, 0x48, 0x2D, 0xBD, 0xEE, 0xB6,
- 0x96, 0x98, 0x42, 0x39, 0x4C, 0x9A, 0x11, 0x68,
- 0xAE, 0x3D, 0x48, 0x1A, 0x01, 0x78, 0x42, 0xF6,
- 0x60, 0x00, 0x2D, 0x42, 0x44, 0x7C, 0x6B, 0x22,
- 0xF7, 0xB7, 0x2F, 0x21, 0xAA, 0xE0, 0x21, 0xC9
- },
- {
- 0xBD, 0x96, 0x5B, 0xF3, 0x1E, 0x87, 0xD7, 0x03,
- 0x27, 0x53, 0x6F, 0x2A, 0x34, 0x1C, 0xEB, 0xC4,
- 0x76, 0x8E, 0xCA, 0x27, 0x5F, 0xA0, 0x5E, 0xF9,
- 0x8F, 0x7F, 0x1B, 0x71, 0xA0, 0x35, 0x12, 0x98,
- 0xDE, 0x00, 0x6F, 0xBA, 0x73, 0xFE, 0x67, 0x33,
- 0xED, 0x01, 0xD7, 0x58, 0x01, 0xB4, 0xA9, 0x28,
- 0xE5, 0x42, 0x31, 0xB3, 0x8E, 0x38, 0xC5, 0x62,
- 0xB2, 0xE3, 0x3E, 0xA1, 0x28, 0x49, 0x92, 0xFA
- },
- {
- 0x65, 0x67, 0x6D, 0x80, 0x06, 0x17, 0x97, 0x2F,
- 0xBD, 0x87, 0xE4, 0xB9, 0x51, 0x4E, 0x1C, 0x67,
- 0x40, 0x2B, 0x7A, 0x33, 0x10, 0x96, 0xD3, 0xBF,
- 0xAC, 0x22, 0xF1, 0xAB, 0xB9, 0x53, 0x74, 0xAB,
- 0xC9, 0x42, 0xF1, 0x6E, 0x9A, 0xB0, 0xEA, 0xD3,
- 0x3B, 0x87, 0xC9, 0x19, 0x68, 0xA6, 0xE5, 0x09,
- 0xE1, 0x19, 0xFF, 0x07, 0x78, 0x7B, 0x3E, 0xF4,
- 0x83, 0xE1, 0xDC, 0xDC, 0xCF, 0x6E, 0x30, 0x22
- },
- {
- 0x93, 0x9F, 0xA1, 0x89, 0x69, 0x9C, 0x5D, 0x2C,
- 0x81, 0xDD, 0xD1, 0xFF, 0xC1, 0xFA, 0x20, 0x7C,
- 0x97, 0x0B, 0x6A, 0x36, 0x85, 0xBB, 0x29, 0xCE,
- 0x1D, 0x3E, 0x99, 0xD4, 0x2F, 0x2F, 0x74, 0x42,
- 0xDA, 0x53, 0xE9, 0x5A, 0x72, 0x90, 0x73, 0x14,
- 0xF4, 0x58, 0x83, 0x99, 0xA3, 0xFF, 0x5B, 0x0A,
- 0x92, 0xBE, 0xB3, 0xF6, 0xBE, 0x26, 0x94, 0xF9,
- 0xF8, 0x6E, 0xCF, 0x29, 0x52, 0xD5, 0xB4, 0x1C
- },
- {
- 0xC5, 0x16, 0x54, 0x17, 0x01, 0x86, 0x3F, 0x91,
- 0x00, 0x5F, 0x31, 0x41, 0x08, 0xCE, 0xEC, 0xE3,
- 0xC6, 0x43, 0xE0, 0x4F, 0xC8, 0xC4, 0x2F, 0xD2,
- 0xFF, 0x55, 0x62, 0x20, 0xE6, 0x16, 0xAA, 0xA6,
- 0xA4, 0x8A, 0xEB, 0x97, 0xA8, 0x4B, 0xAD, 0x74,
- 0x78, 0x2E, 0x8D, 0xFF, 0x96, 0xA1, 0xA2, 0xFA,
- 0x94, 0x93, 0x39, 0xD7, 0x22, 0xED, 0xCA, 0xA3,
- 0x2B, 0x57, 0x06, 0x70, 0x41, 0xDF, 0x88, 0xCC
- },
- {
- 0x98, 0x7F, 0xD6, 0xE0, 0xD6, 0x85, 0x7C, 0x55,
- 0x3E, 0xAE, 0xBB, 0x3D, 0x34, 0x97, 0x0A, 0x2C,
- 0x2F, 0x6E, 0x89, 0xA3, 0x54, 0x8F, 0x49, 0x25,
- 0x21, 0x72, 0x2B, 0x80, 0xA1, 0xC2, 0x1A, 0x15,
- 0x38, 0x92, 0x34, 0x6D, 0x2C, 0xBA, 0x64, 0x44,
- 0x21, 0x2D, 0x56, 0xDA, 0x9A, 0x26, 0xE3, 0x24,
- 0xDC, 0xCB, 0xC0, 0xDC, 0xDE, 0x85, 0xD4, 0xD2,
- 0xEE, 0x43, 0x99, 0xEE, 0xC5, 0xA6, 0x4E, 0x8F
- },
- {
- 0xAE, 0x56, 0xDE, 0xB1, 0xC2, 0x32, 0x8D, 0x9C,
- 0x40, 0x17, 0x70, 0x6B, 0xCE, 0x6E, 0x99, 0xD4,
- 0x13, 0x49, 0x05, 0x3B, 0xA9, 0xD3, 0x36, 0xD6,
- 0x77, 0xC4, 0xC2, 0x7D, 0x9F, 0xD5, 0x0A, 0xE6,
- 0xAE, 0xE1, 0x7E, 0x85, 0x31, 0x54, 0xE1, 0xF4,
- 0xFE, 0x76, 0x72, 0x34, 0x6D, 0xA2, 0xEA, 0xA3,
- 0x1E, 0xEA, 0x53, 0xFC, 0xF2, 0x4A, 0x22, 0x80,
- 0x4F, 0x11, 0xD0, 0x3D, 0xA6, 0xAB, 0xFC, 0x2B
- },
- {
- 0x49, 0xD6, 0xA6, 0x08, 0xC9, 0xBD, 0xE4, 0x49,
- 0x18, 0x70, 0x49, 0x85, 0x72, 0xAC, 0x31, 0xAA,
- 0xC3, 0xFA, 0x40, 0x93, 0x8B, 0x38, 0xA7, 0x81,
- 0x8F, 0x72, 0x38, 0x3E, 0xB0, 0x40, 0xAD, 0x39,
- 0x53, 0x2B, 0xC0, 0x65, 0x71, 0xE1, 0x3D, 0x76,
- 0x7E, 0x69, 0x45, 0xAB, 0x77, 0xC0, 0xBD, 0xC3,
- 0xB0, 0x28, 0x42, 0x53, 0x34, 0x3F, 0x9F, 0x6C,
- 0x12, 0x44, 0xEB, 0xF2, 0xFF, 0x0D, 0xF8, 0x66
- },
- {
- 0xDA, 0x58, 0x2A, 0xD8, 0xC5, 0x37, 0x0B, 0x44,
- 0x69, 0xAF, 0x86, 0x2A, 0xA6, 0x46, 0x7A, 0x22,
- 0x93, 0xB2, 0xB2, 0x8B, 0xD8, 0x0A, 0xE0, 0xE9,
- 0x1F, 0x42, 0x5A, 0xD3, 0xD4, 0x72, 0x49, 0xFD,
- 0xF9, 0x88, 0x25, 0xCC, 0x86, 0xF1, 0x40, 0x28,
- 0xC3, 0x30, 0x8C, 0x98, 0x04, 0xC7, 0x8B, 0xFE,
- 0xEE, 0xEE, 0x46, 0x14, 0x44, 0xCE, 0x24, 0x36,
- 0x87, 0xE1, 0xA5, 0x05, 0x22, 0x45, 0x6A, 0x1D
- },
- {
- 0xD5, 0x26, 0x6A, 0xA3, 0x33, 0x11, 0x94, 0xAE,
- 0xF8, 0x52, 0xEE, 0xD8, 0x6D, 0x7B, 0x5B, 0x26,
- 0x33, 0xA0, 0xAF, 0x1C, 0x73, 0x59, 0x06, 0xF2,
- 0xE1, 0x32, 0x79, 0xF1, 0x49, 0x31, 0xA9, 0xFC,
- 0x3B, 0x0E, 0xAC, 0x5C, 0xE9, 0x24, 0x52, 0x73,
- 0xBD, 0x1A, 0xA9, 0x29, 0x05, 0xAB, 0xE1, 0x62,
- 0x78, 0xEF, 0x7E, 0xFD, 0x47, 0x69, 0x47, 0x89,
- 0xA7, 0x28, 0x3B, 0x77, 0xDA, 0x3C, 0x70, 0xF8
- },
- {
- 0x29, 0x62, 0x73, 0x4C, 0x28, 0x25, 0x21, 0x86,
- 0xA9, 0xA1, 0x11, 0x1C, 0x73, 0x2A, 0xD4, 0xDE,
- 0x45, 0x06, 0xD4, 0xB4, 0x48, 0x09, 0x16, 0x30,
- 0x3E, 0xB7, 0x99, 0x1D, 0x65, 0x9C, 0xCD, 0xA0,
- 0x7A, 0x99, 0x11, 0x91, 0x4B, 0xC7, 0x5C, 0x41,
- 0x8A, 0xB7, 0xA4, 0x54, 0x17, 0x57, 0xAD, 0x05,
- 0x47, 0x96, 0xE2, 0x67, 0x97, 0xFE, 0xAF, 0x36,
- 0xE9, 0xF6, 0xAD, 0x43, 0xF1, 0x4B, 0x35, 0xA4
- },
- {
- 0xE8, 0xB7, 0x9E, 0xC5, 0xD0, 0x6E, 0x11, 0x1B,
- 0xDF, 0xAF, 0xD7, 0x1E, 0x9F, 0x57, 0x60, 0xF0,
- 0x0A, 0xC8, 0xAC, 0x5D, 0x8B, 0xF7, 0x68, 0xF9,
- 0xFF, 0x6F, 0x08, 0xB8, 0xF0, 0x26, 0x09, 0x6B,
- 0x1C, 0xC3, 0xA4, 0xC9, 0x73, 0x33, 0x30, 0x19,
- 0xF1, 0xE3, 0x55, 0x3E, 0x77, 0xDA, 0x3F, 0x98,
- 0xCB, 0x9F, 0x54, 0x2E, 0x0A, 0x90, 0xE5, 0xF8,
- 0xA9, 0x40, 0xCC, 0x58, 0xE5, 0x98, 0x44, 0xB3
- },
- {
- 0xDF, 0xB3, 0x20, 0xC4, 0x4F, 0x9D, 0x41, 0xD1,
- 0xEF, 0xDC, 0xC0, 0x15, 0xF0, 0x8D, 0xD5, 0x53,
- 0x9E, 0x52, 0x6E, 0x39, 0xC8, 0x7D, 0x50, 0x9A,
- 0xE6, 0x81, 0x2A, 0x96, 0x9E, 0x54, 0x31, 0xBF,
- 0x4F, 0xA7, 0xD9, 0x1F, 0xFD, 0x03, 0xB9, 0x81,
- 0xE0, 0xD5, 0x44, 0xCF, 0x72, 0xD7, 0xB1, 0xC0,
- 0x37, 0x4F, 0x88, 0x01, 0x48, 0x2E, 0x6D, 0xEA,
- 0x2E, 0xF9, 0x03, 0x87, 0x7E, 0xBA, 0x67, 0x5E
- },
- {
- 0xD8, 0x86, 0x75, 0x11, 0x8F, 0xDB, 0x55, 0xA5,
- 0xFB, 0x36, 0x5A, 0xC2, 0xAF, 0x1D, 0x21, 0x7B,
- 0xF5, 0x26, 0xCE, 0x1E, 0xE9, 0xC9, 0x4B, 0x2F,
- 0x00, 0x90, 0xB2, 0xC5, 0x8A, 0x06, 0xCA, 0x58,
- 0x18, 0x7D, 0x7F, 0xE5, 0x7C, 0x7B, 0xED, 0x9D,
- 0x26, 0xFC, 0xA0, 0x67, 0xB4, 0x11, 0x0E, 0xEF,
- 0xCD, 0x9A, 0x0A, 0x34, 0x5D, 0xE8, 0x72, 0xAB,
- 0xE2, 0x0D, 0xE3, 0x68, 0x00, 0x1B, 0x07, 0x45
- },
- {
- 0xB8, 0x93, 0xF2, 0xFC, 0x41, 0xF7, 0xB0, 0xDD,
- 0x6E, 0x2F, 0x6A, 0xA2, 0xE0, 0x37, 0x0C, 0x0C,
- 0xFF, 0x7D, 0xF0, 0x9E, 0x3A, 0xCF, 0xCC, 0x0E,
- 0x92, 0x0B, 0x6E, 0x6F, 0xAD, 0x0E, 0xF7, 0x47,
- 0xC4, 0x06, 0x68, 0x41, 0x7D, 0x34, 0x2B, 0x80,
- 0xD2, 0x35, 0x1E, 0x8C, 0x17, 0x5F, 0x20, 0x89,
- 0x7A, 0x06, 0x2E, 0x97, 0x65, 0xE6, 0xC6, 0x7B,
- 0x53, 0x9B, 0x6B, 0xA8, 0xB9, 0x17, 0x05, 0x45
- },
- {
- 0x6C, 0x67, 0xEC, 0x56, 0x97, 0xAC, 0xCD, 0x23,
- 0x5C, 0x59, 0xB4, 0x86, 0xD7, 0xB7, 0x0B, 0xAE,
- 0xED, 0xCB, 0xD4, 0xAA, 0x64, 0xEB, 0xD4, 0xEE,
- 0xF3, 0xC7, 0xEA, 0xC1, 0x89, 0x56, 0x1A, 0x72,
- 0x62, 0x50, 0xAE, 0xC4, 0xD4, 0x8C, 0xAD, 0xCA,
- 0xFB, 0xBE, 0x2C, 0xE3, 0xC1, 0x6C, 0xE2, 0xD6,
- 0x91, 0xA8, 0xCC, 0xE0, 0x6E, 0x88, 0x79, 0x55,
- 0x6D, 0x44, 0x83, 0xED, 0x71, 0x65, 0xC0, 0x63
- },
- {
- 0xF1, 0xAA, 0x2B, 0x04, 0x4F, 0x8F, 0x0C, 0x63,
- 0x8A, 0x3F, 0x36, 0x2E, 0x67, 0x7B, 0x5D, 0x89,
- 0x1D, 0x6F, 0xD2, 0xAB, 0x07, 0x65, 0xF6, 0xEE,
- 0x1E, 0x49, 0x87, 0xDE, 0x05, 0x7E, 0xAD, 0x35,
- 0x78, 0x83, 0xD9, 0xB4, 0x05, 0xB9, 0xD6, 0x09,
- 0xEE, 0xA1, 0xB8, 0x69, 0xD9, 0x7F, 0xB1, 0x6D,
- 0x9B, 0x51, 0x01, 0x7C, 0x55, 0x3F, 0x3B, 0x93,
- 0xC0, 0xA1, 0xE0, 0xF1, 0x29, 0x6F, 0xED, 0xCD
- },
- {
- 0xCB, 0xAA, 0x25, 0x95, 0x72, 0xD4, 0xAE, 0xBF,
- 0xC1, 0x91, 0x7A, 0xCD, 0xDC, 0x58, 0x2B, 0x9F,
- 0x8D, 0xFA, 0xA9, 0x28, 0xA1, 0x98, 0xCA, 0x7A,
- 0xCD, 0x0F, 0x2A, 0xA7, 0x6A, 0x13, 0x4A, 0x90,
- 0x25, 0x2E, 0x62, 0x98, 0xA6, 0x5B, 0x08, 0x18,
- 0x6A, 0x35, 0x0D, 0x5B, 0x76, 0x26, 0x69, 0x9F,
- 0x8C, 0xB7, 0x21, 0xA3, 0xEA, 0x59, 0x21, 0xB7,
- 0x53, 0xAE, 0x3A, 0x2D, 0xCE, 0x24, 0xBA, 0x3A
- },
- {
- 0xFA, 0x15, 0x49, 0xC9, 0x79, 0x6C, 0xD4, 0xD3,
- 0x03, 0xDC, 0xF4, 0x52, 0xC1, 0xFB, 0xD5, 0x74,
- 0x4F, 0xD9, 0xB9, 0xB4, 0x70, 0x03, 0xD9, 0x20,
- 0xB9, 0x2D, 0xE3, 0x48, 0x39, 0xD0, 0x7E, 0xF2,
- 0xA2, 0x9D, 0xED, 0x68, 0xF6, 0xFC, 0x9E, 0x6C,
- 0x45, 0xE0, 0x71, 0xA2, 0xE4, 0x8B, 0xD5, 0x0C,
- 0x50, 0x84, 0xE9, 0x6B, 0x65, 0x7D, 0xD0, 0x40,
- 0x40, 0x45, 0xA1, 0xDD, 0xEF, 0xE2, 0x82, 0xED
- },
- {
- 0x5C, 0xF2, 0xAC, 0x89, 0x7A, 0xB4, 0x44, 0xDC,
- 0xB5, 0xC8, 0xD8, 0x7C, 0x49, 0x5D, 0xBD, 0xB3,
- 0x4E, 0x18, 0x38, 0xB6, 0xB6, 0x29, 0x42, 0x7C,
- 0xAA, 0x51, 0x70, 0x2A, 0xD0, 0xF9, 0x68, 0x85,
- 0x25, 0xF1, 0x3B, 0xEC, 0x50, 0x3A, 0x3C, 0x3A,
- 0x2C, 0x80, 0xA6, 0x5E, 0x0B, 0x57, 0x15, 0xE8,
- 0xAF, 0xAB, 0x00, 0xFF, 0xA5, 0x6E, 0xC4, 0x55,
- 0xA4, 0x9A, 0x1A, 0xD3, 0x0A, 0xA2, 0x4F, 0xCD
- },
- {
- 0x9A, 0xAF, 0x80, 0x20, 0x7B, 0xAC, 0xE1, 0x7B,
- 0xB7, 0xAB, 0x14, 0x57, 0x57, 0xD5, 0x69, 0x6B,
- 0xDE, 0x32, 0x40, 0x6E, 0xF2, 0x2B, 0x44, 0x29,
- 0x2E, 0xF6, 0x5D, 0x45, 0x19, 0xC3, 0xBB, 0x2A,
- 0xD4, 0x1A, 0x59, 0xB6, 0x2C, 0xC3, 0xE9, 0x4B,
- 0x6F, 0xA9, 0x6D, 0x32, 0xA7, 0xFA, 0xAD, 0xAE,
- 0x28, 0xAF, 0x7D, 0x35, 0x09, 0x72, 0x19, 0xAA,
- 0x3F, 0xD8, 0xCD, 0xA3, 0x1E, 0x40, 0xC2, 0x75
- },
- {
- 0xAF, 0x88, 0xB1, 0x63, 0x40, 0x2C, 0x86, 0x74,
- 0x5C, 0xB6, 0x50, 0xC2, 0x98, 0x8F, 0xB9, 0x52,
- 0x11, 0xB9, 0x4B, 0x03, 0xEF, 0x29, 0x0E, 0xED,
- 0x96, 0x62, 0x03, 0x42, 0x41, 0xFD, 0x51, 0xCF,
- 0x39, 0x8F, 0x80, 0x73, 0xE3, 0x69, 0x35, 0x4C,
- 0x43, 0xEA, 0xE1, 0x05, 0x2F, 0x9B, 0x63, 0xB0,
- 0x81, 0x91, 0xCA, 0xA1, 0x38, 0xAA, 0x54, 0xFE,
- 0xA8, 0x89, 0xCC, 0x70, 0x24, 0x23, 0x68, 0x97
- },
- {
- 0x48, 0xFA, 0x7D, 0x64, 0xE1, 0xCE, 0xEE, 0x27,
- 0xB9, 0x86, 0x4D, 0xB5, 0xAD, 0xA4, 0xB5, 0x3D,
- 0x00, 0xC9, 0xBC, 0x76, 0x26, 0x55, 0x58, 0x13,
- 0xD3, 0xCD, 0x67, 0x30, 0xAB, 0x3C, 0xC0, 0x6F,
- 0xF3, 0x42, 0xD7, 0x27, 0x90, 0x5E, 0x33, 0x17,
- 0x1B, 0xDE, 0x6E, 0x84, 0x76, 0xE7, 0x7F, 0xB1,
- 0x72, 0x08, 0x61, 0xE9, 0x4B, 0x73, 0xA2, 0xC5,
- 0x38, 0xD2, 0x54, 0x74, 0x62, 0x85, 0xF4, 0x30
- },
- {
- 0x0E, 0x6F, 0xD9, 0x7A, 0x85, 0xE9, 0x04, 0xF8,
- 0x7B, 0xFE, 0x85, 0xBB, 0xEB, 0x34, 0xF6, 0x9E,
- 0x1F, 0x18, 0x10, 0x5C, 0xF4, 0xED, 0x4F, 0x87,
- 0xAE, 0xC3, 0x6C, 0x6E, 0x8B, 0x5F, 0x68, 0xBD,
- 0x2A, 0x6F, 0x3D, 0xC8, 0xA9, 0xEC, 0xB2, 0xB6,
- 0x1D, 0xB4, 0xEE, 0xDB, 0x6B, 0x2E, 0xA1, 0x0B,
- 0xF9, 0xCB, 0x02, 0x51, 0xFB, 0x0F, 0x8B, 0x34,
- 0x4A, 0xBF, 0x7F, 0x36, 0x6B, 0x6D, 0xE5, 0xAB
- },
- {
- 0x06, 0x62, 0x2D, 0xA5, 0x78, 0x71, 0x76, 0x28,
- 0x7F, 0xDC, 0x8F, 0xED, 0x44, 0x0B, 0xAD, 0x18,
- 0x7D, 0x83, 0x00, 0x99, 0xC9, 0x4E, 0x6D, 0x04,
- 0xC8, 0xE9, 0xC9, 0x54, 0xCD, 0xA7, 0x0C, 0x8B,
- 0xB9, 0xE1, 0xFC, 0x4A, 0x6D, 0x0B, 0xAA, 0x83,
- 0x1B, 0x9B, 0x78, 0xEF, 0x66, 0x48, 0x68, 0x1A,
- 0x48, 0x67, 0xA1, 0x1D, 0xA9, 0x3E, 0xE3, 0x6E,
- 0x5E, 0x6A, 0x37, 0xD8, 0x7F, 0xC6, 0x3F, 0x6F
- },
- {
- 0x1D, 0xA6, 0x77, 0x2B, 0x58, 0xFA, 0xBF, 0x9C,
- 0x61, 0xF6, 0x8D, 0x41, 0x2C, 0x82, 0xF1, 0x82,
- 0xC0, 0x23, 0x6D, 0x7D, 0x57, 0x5E, 0xF0, 0xB5,
- 0x8D, 0xD2, 0x24, 0x58, 0xD6, 0x43, 0xCD, 0x1D,
- 0xFC, 0x93, 0xB0, 0x38, 0x71, 0xC3, 0x16, 0xD8,
- 0x43, 0x0D, 0x31, 0x29, 0x95, 0xD4, 0x19, 0x7F,
- 0x08, 0x74, 0xC9, 0x91, 0x72, 0xBA, 0x00, 0x4A,
- 0x01, 0xEE, 0x29, 0x5A, 0xBA, 0xC2, 0x4E, 0x46
- },
- {
- 0x3C, 0xD2, 0xD9, 0x32, 0x0B, 0x7B, 0x1D, 0x5F,
- 0xB9, 0xAA, 0xB9, 0x51, 0xA7, 0x60, 0x23, 0xFA,
- 0x66, 0x7B, 0xE1, 0x4A, 0x91, 0x24, 0xE3, 0x94,
- 0x51, 0x39, 0x18, 0xA3, 0xF4, 0x40, 0x96, 0xAE,
- 0x49, 0x04, 0xBA, 0x0F, 0xFC, 0x15, 0x0B, 0x63,
- 0xBC, 0x7A, 0xB1, 0xEE, 0xB9, 0xA6, 0xE2, 0x57,
- 0xE5, 0xC8, 0xF0, 0x00, 0xA7, 0x03, 0x94, 0xA5,
- 0xAF, 0xD8, 0x42, 0x71, 0x5D, 0xE1, 0x5F, 0x29
- },
- {
- 0x04, 0xCD, 0xC1, 0x4F, 0x74, 0x34, 0xE0, 0xB4,
- 0xBE, 0x70, 0xCB, 0x41, 0xDB, 0x4C, 0x77, 0x9A,
- 0x88, 0xEA, 0xEF, 0x6A, 0xCC, 0xEB, 0xCB, 0x41,
- 0xF2, 0xD4, 0x2F, 0xFF, 0xE7, 0xF3, 0x2A, 0x8E,
- 0x28, 0x1B, 0x5C, 0x10, 0x3A, 0x27, 0x02, 0x1D,
- 0x0D, 0x08, 0x36, 0x22, 0x50, 0x75, 0x3C, 0xDF,
- 0x70, 0x29, 0x21, 0x95, 0xA5, 0x3A, 0x48, 0x72,
- 0x8C, 0xEB, 0x58, 0x44, 0xC2, 0xD9, 0x8B, 0xAB
- },
- {
- 0x90, 0x71, 0xB7, 0xA8, 0xA0, 0x75, 0xD0, 0x09,
- 0x5B, 0x8F, 0xB3, 0xAE, 0x51, 0x13, 0x78, 0x57,
- 0x35, 0xAB, 0x98, 0xE2, 0xB5, 0x2F, 0xAF, 0x91,
- 0xD5, 0xB8, 0x9E, 0x44, 0xAA, 0xC5, 0xB5, 0xD4,
- 0xEB, 0xBF, 0x91, 0x22, 0x3B, 0x0F, 0xF4, 0xC7,
- 0x19, 0x05, 0xDA, 0x55, 0x34, 0x2E, 0x64, 0x65,
- 0x5D, 0x6E, 0xF8, 0xC8, 0x9A, 0x47, 0x68, 0xC3,
- 0xF9, 0x3A, 0x6D, 0xC0, 0x36, 0x6B, 0x5B, 0xC8
- },
- {
- 0xEB, 0xB3, 0x02, 0x40, 0xDD, 0x96, 0xC7, 0xBC,
- 0x8D, 0x0A, 0xBE, 0x49, 0xAA, 0x4E, 0xDC, 0xBB,
- 0x4A, 0xFD, 0xC5, 0x1F, 0xF9, 0xAA, 0xF7, 0x20,
- 0xD3, 0xF9, 0xE7, 0xFB, 0xB0, 0xF9, 0xC6, 0xD6,
- 0x57, 0x13, 0x50, 0x50, 0x17, 0x69, 0xFC, 0x4E,
- 0xBD, 0x0B, 0x21, 0x41, 0x24, 0x7F, 0xF4, 0x00,
- 0xD4, 0xFD, 0x4B, 0xE4, 0x14, 0xED, 0xF3, 0x77,
- 0x57, 0xBB, 0x90, 0xA3, 0x2A, 0xC5, 0xC6, 0x5A
- },
- {
- 0x85, 0x32, 0xC5, 0x8B, 0xF3, 0xC8, 0x01, 0x5D,
- 0x9D, 0x1C, 0xBE, 0x00, 0xEE, 0xF1, 0xF5, 0x08,
- 0x2F, 0x8F, 0x36, 0x32, 0xFB, 0xE9, 0xF1, 0xED,
- 0x4F, 0x9D, 0xFB, 0x1F, 0xA7, 0x9E, 0x82, 0x83,
- 0x06, 0x6D, 0x77, 0xC4, 0x4C, 0x4A, 0xF9, 0x43,
- 0xD7, 0x6B, 0x30, 0x03, 0x64, 0xAE, 0xCB, 0xD0,
- 0x64, 0x8C, 0x8A, 0x89, 0x39, 0xBD, 0x20, 0x41,
- 0x23, 0xF4, 0xB5, 0x62, 0x60, 0x42, 0x2D, 0xEC
- },
- {
- 0xFE, 0x98, 0x46, 0xD6, 0x4F, 0x7C, 0x77, 0x08,
- 0x69, 0x6F, 0x84, 0x0E, 0x2D, 0x76, 0xCB, 0x44,
- 0x08, 0xB6, 0x59, 0x5C, 0x2F, 0x81, 0xEC, 0x6A,
- 0x28, 0xA7, 0xF2, 0xF2, 0x0C, 0xB8, 0x8C, 0xFE,
- 0x6A, 0xC0, 0xB9, 0xE9, 0xB8, 0x24, 0x4F, 0x08,
- 0xBD, 0x70, 0x95, 0xC3, 0x50, 0xC1, 0xD0, 0x84,
- 0x2F, 0x64, 0xFB, 0x01, 0xBB, 0x7F, 0x53, 0x2D,
- 0xFC, 0xD4, 0x73, 0x71, 0xB0, 0xAE, 0xEB, 0x79
- },
- {
- 0x28, 0xF1, 0x7E, 0xA6, 0xFB, 0x6C, 0x42, 0x09,
- 0x2D, 0xC2, 0x64, 0x25, 0x7E, 0x29, 0x74, 0x63,
- 0x21, 0xFB, 0x5B, 0xDA, 0xEA, 0x98, 0x73, 0xC2,
- 0xA7, 0xFA, 0x9D, 0x8F, 0x53, 0x81, 0x8E, 0x89,
- 0x9E, 0x16, 0x1B, 0xC7, 0x7D, 0xFE, 0x80, 0x90,
- 0xAF, 0xD8, 0x2B, 0xF2, 0x26, 0x6C, 0x5C, 0x1B,
- 0xC9, 0x30, 0xA8, 0xD1, 0x54, 0x76, 0x24, 0x43,
- 0x9E, 0x66, 0x2E, 0xF6, 0x95, 0xF2, 0x6F, 0x24
- },
- {
- 0xEC, 0x6B, 0x7D, 0x7F, 0x03, 0x0D, 0x48, 0x50,
- 0xAC, 0xAE, 0x3C, 0xB6, 0x15, 0xC2, 0x1D, 0xD2,
- 0x52, 0x06, 0xD6, 0x3E, 0x84, 0xD1, 0xDB, 0x8D,
- 0x95, 0x73, 0x70, 0x73, 0x7B, 0xA0, 0xE9, 0x84,
- 0x67, 0xEA, 0x0C, 0xE2, 0x74, 0xC6, 0x61, 0x99,
- 0x90, 0x1E, 0xAE, 0xC1, 0x8A, 0x08, 0x52, 0x57,
- 0x15, 0xF5, 0x3B, 0xFD, 0xB0, 0xAA, 0xCB, 0x61,
- 0x3D, 0x34, 0x2E, 0xBD, 0xCE, 0xED, 0xDC, 0x3B
- },
- {
- 0xB4, 0x03, 0xD3, 0x69, 0x1C, 0x03, 0xB0, 0xD3,
- 0x41, 0x8D, 0xF3, 0x27, 0xD5, 0x86, 0x0D, 0x34,
- 0xBB, 0xFC, 0xC4, 0x51, 0x9B, 0xFB, 0xCE, 0x36,
- 0xBF, 0x33, 0xB2, 0x08, 0x38, 0x5F, 0xAD, 0xB9,
- 0x18, 0x6B, 0xC7, 0x8A, 0x76, 0xC4, 0x89, 0xD8,
- 0x9F, 0xD5, 0x7E, 0x7D, 0xC7, 0x54, 0x12, 0xD2,
- 0x3B, 0xCD, 0x1D, 0xAE, 0x84, 0x70, 0xCE, 0x92,
- 0x74, 0x75, 0x4B, 0xB8, 0x58, 0x5B, 0x13, 0xC5
- },
- {
- 0x31, 0xFC, 0x79, 0x73, 0x8B, 0x87, 0x72, 0xB3,
- 0xF5, 0x5C, 0xD8, 0x17, 0x88, 0x13, 0xB3, 0xB5,
- 0x2D, 0x0D, 0xB5, 0xA4, 0x19, 0xD3, 0x0B, 0xA9,
- 0x49, 0x5C, 0x4B, 0x9D, 0xA0, 0x21, 0x9F, 0xAC,
- 0x6D, 0xF8, 0xE7, 0xC2, 0x3A, 0x81, 0x15, 0x51,
- 0xA6, 0x2B, 0x82, 0x7F, 0x25, 0x6E, 0xCD, 0xB8,
- 0x12, 0x4A, 0xC8, 0xA6, 0x79, 0x2C, 0xCF, 0xEC,
- 0xC3, 0xB3, 0x01, 0x27, 0x22, 0xE9, 0x44, 0x63
- },
- {
- 0xBB, 0x20, 0x39, 0xEC, 0x28, 0x70, 0x91, 0xBC,
- 0xC9, 0x64, 0x2F, 0xC9, 0x00, 0x49, 0xE7, 0x37,
- 0x32, 0xE0, 0x2E, 0x57, 0x7E, 0x28, 0x62, 0xB3,
- 0x22, 0x16, 0xAE, 0x9B, 0xED, 0xCD, 0x73, 0x0C,
- 0x4C, 0x28, 0x4E, 0xF3, 0x96, 0x8C, 0x36, 0x8B,
- 0x7D, 0x37, 0x58, 0x4F, 0x97, 0xBD, 0x4B, 0x4D,
- 0xC6, 0xEF, 0x61, 0x27, 0xAC, 0xFE, 0x2E, 0x6A,
- 0xE2, 0x50, 0x91, 0x24, 0xE6, 0x6C, 0x8A, 0xF4
- },
- {
- 0xF5, 0x3D, 0x68, 0xD1, 0x3F, 0x45, 0xED, 0xFC,
- 0xB9, 0xBD, 0x41, 0x5E, 0x28, 0x31, 0xE9, 0x38,
- 0x35, 0x0D, 0x53, 0x80, 0xD3, 0x43, 0x22, 0x78,
- 0xFC, 0x1C, 0x0C, 0x38, 0x1F, 0xCB, 0x7C, 0x65,
- 0xC8, 0x2D, 0xAF, 0xE0, 0x51, 0xD8, 0xC8, 0xB0,
- 0xD4, 0x4E, 0x09, 0x74, 0xA0, 0xE5, 0x9E, 0xC7,
- 0xBF, 0x7E, 0xD0, 0x45, 0x9F, 0x86, 0xE9, 0x6F,
- 0x32, 0x9F, 0xC7, 0x97, 0x52, 0x51, 0x0F, 0xD3
- },
- {
- 0x8D, 0x56, 0x8C, 0x79, 0x84, 0xF0, 0xEC, 0xDF,
- 0x76, 0x40, 0xFB, 0xC4, 0x83, 0xB5, 0xD8, 0xC9,
- 0xF8, 0x66, 0x34, 0xF6, 0xF4, 0x32, 0x91, 0x84,
- 0x1B, 0x30, 0x9A, 0x35, 0x0A, 0xB9, 0xC1, 0x13,
- 0x7D, 0x24, 0x06, 0x6B, 0x09, 0xDA, 0x99, 0x44,
- 0xBA, 0xC5, 0x4D, 0x5B, 0xB6, 0x58, 0x0D, 0x83,
- 0x60, 0x47, 0xAA, 0xC7, 0x4A, 0xB7, 0x24, 0xB8,
- 0x87, 0xEB, 0xF9, 0x3D, 0x4B, 0x32, 0xEC, 0xA9
- },
- {
- 0xC0, 0xB6, 0x5C, 0xE5, 0xA9, 0x6F, 0xF7, 0x74,
- 0xC4, 0x56, 0xCA, 0xC3, 0xB5, 0xF2, 0xC4, 0xCD,
- 0x35, 0x9B, 0x4F, 0xF5, 0x3E, 0xF9, 0x3A, 0x3D,
- 0xA0, 0x77, 0x8B, 0xE4, 0x90, 0x0D, 0x1E, 0x8D,
- 0xA1, 0x60, 0x1E, 0x76, 0x9E, 0x8F, 0x1B, 0x02,
- 0xD2, 0xA2, 0xF8, 0xC5, 0xB9, 0xFA, 0x10, 0xB4,
- 0x4F, 0x1C, 0x18, 0x69, 0x85, 0x46, 0x8F, 0xEE,
- 0xB0, 0x08, 0x73, 0x02, 0x83, 0xA6, 0x65, 0x7D
- },
- {
- 0x49, 0x00, 0xBB, 0xA6, 0xF5, 0xFB, 0x10, 0x3E,
- 0xCE, 0x8E, 0xC9, 0x6A, 0xDA, 0x13, 0xA5, 0xC3,
- 0xC8, 0x54, 0x88, 0xE0, 0x55, 0x51, 0xDA, 0x6B,
- 0x6B, 0x33, 0xD9, 0x88, 0xE6, 0x11, 0xEC, 0x0F,
- 0xE2, 0xE3, 0xC2, 0xAA, 0x48, 0xEA, 0x6A, 0xE8,
- 0x98, 0x6A, 0x3A, 0x23, 0x1B, 0x22, 0x3C, 0x5D,
- 0x27, 0xCE, 0xC2, 0xEA, 0xDD, 0xE9, 0x1C, 0xE0,
- 0x79, 0x81, 0xEE, 0x65, 0x28, 0x62, 0xD1, 0xE4
- },
- {
- 0xC7, 0xF5, 0xC3, 0x7C, 0x72, 0x85, 0xF9, 0x27,
- 0xF7, 0x64, 0x43, 0x41, 0x4D, 0x43, 0x57, 0xFF,
- 0x78, 0x96, 0x47, 0xD7, 0xA0, 0x05, 0xA5, 0xA7,
- 0x87, 0xE0, 0x3C, 0x34, 0x6B, 0x57, 0xF4, 0x9F,
- 0x21, 0xB6, 0x4F, 0xA9, 0xCF, 0x4B, 0x7E, 0x45,
- 0x57, 0x3E, 0x23, 0x04, 0x90, 0x17, 0x56, 0x71,
- 0x21, 0xA9, 0xC3, 0xD4, 0xB2, 0xB7, 0x3E, 0xC5,
- 0xE9, 0x41, 0x35, 0x77, 0x52, 0x5D, 0xB4, 0x5A
- },
- {
- 0xEC, 0x70, 0x96, 0x33, 0x07, 0x36, 0xFD, 0xB2,
- 0xD6, 0x4B, 0x56, 0x53, 0xE7, 0x47, 0x5D, 0xA7,
- 0x46, 0xC2, 0x3A, 0x46, 0x13, 0xA8, 0x26, 0x87,
- 0xA2, 0x80, 0x62, 0xD3, 0x23, 0x63, 0x64, 0x28,
- 0x4A, 0xC0, 0x17, 0x20, 0xFF, 0xB4, 0x06, 0xCF,
- 0xE2, 0x65, 0xC0, 0xDF, 0x62, 0x6A, 0x18, 0x8C,
- 0x9E, 0x59, 0x63, 0xAC, 0xE5, 0xD3, 0xD5, 0xBB,
- 0x36, 0x3E, 0x32, 0xC3, 0x8C, 0x21, 0x90, 0xA6
- },
- {
- 0x82, 0xE7, 0x44, 0xC7, 0x5F, 0x46, 0x49, 0xEC,
- 0x52, 0xB8, 0x07, 0x71, 0xA7, 0x7D, 0x47, 0x5A,
- 0x3B, 0xC0, 0x91, 0x98, 0x95, 0x56, 0x96, 0x0E,
- 0x27, 0x6A, 0x5F, 0x9E, 0xAD, 0x92, 0xA0, 0x3F,
- 0x71, 0x87, 0x42, 0xCD, 0xCF, 0xEA, 0xEE, 0x5C,
- 0xB8, 0x5C, 0x44, 0xAF, 0x19, 0x8A, 0xDC, 0x43,
- 0xA4, 0xA4, 0x28, 0xF5, 0xF0, 0xC2, 0xDD, 0xB0,
- 0xBE, 0x36, 0x05, 0x9F, 0x06, 0xD7, 0xDF, 0x73
- },
- {
- 0x28, 0x34, 0xB7, 0xA7, 0x17, 0x0F, 0x1F, 0x5B,
- 0x68, 0x55, 0x9A, 0xB7, 0x8C, 0x10, 0x50, 0xEC,
- 0x21, 0xC9, 0x19, 0x74, 0x0B, 0x78, 0x4A, 0x90,
- 0x72, 0xF6, 0xE5, 0xD6, 0x9F, 0x82, 0x8D, 0x70,
- 0xC9, 0x19, 0xC5, 0x03, 0x9F, 0xB1, 0x48, 0xE3,
- 0x9E, 0x2C, 0x8A, 0x52, 0x11, 0x83, 0x78, 0xB0,
- 0x64, 0xCA, 0x8D, 0x50, 0x01, 0xCD, 0x10, 0xA5,
- 0x47, 0x83, 0x87, 0xB9, 0x66, 0x71, 0x5E, 0xD6
- },
- {
- 0x16, 0xB4, 0xAD, 0xA8, 0x83, 0xF7, 0x2F, 0x85,
- 0x3B, 0xB7, 0xEF, 0x25, 0x3E, 0xFC, 0xAB, 0x0C,
- 0x3E, 0x21, 0x61, 0x68, 0x7A, 0xD6, 0x15, 0x43,
- 0xA0, 0xD2, 0x82, 0x4F, 0x91, 0xC1, 0xF8, 0x13,
- 0x47, 0xD8, 0x6B, 0xE7, 0x09, 0xB1, 0x69, 0x96,
- 0xE1, 0x7F, 0x2D, 0xD4, 0x86, 0x92, 0x7B, 0x02,
- 0x88, 0xAD, 0x38, 0xD1, 0x30, 0x63, 0xC4, 0xA9,
- 0x67, 0x2C, 0x39, 0x39, 0x7D, 0x37, 0x89, 0xB6
- },
- {
- 0x78, 0xD0, 0x48, 0xF3, 0xA6, 0x9D, 0x8B, 0x54,
- 0xAE, 0x0E, 0xD6, 0x3A, 0x57, 0x3A, 0xE3, 0x50,
- 0xD8, 0x9F, 0x7C, 0x6C, 0xF1, 0xF3, 0x68, 0x89,
- 0x30, 0xDE, 0x89, 0x9A, 0xFA, 0x03, 0x76, 0x97,
- 0x62, 0x9B, 0x31, 0x4E, 0x5C, 0xD3, 0x03, 0xAA,
- 0x62, 0xFE, 0xEA, 0x72, 0xA2, 0x5B, 0xF4, 0x2B,
- 0x30, 0x4B, 0x6C, 0x6B, 0xCB, 0x27, 0xFA, 0xE2,
- 0x1C, 0x16, 0xD9, 0x25, 0xE1, 0xFB, 0xDA, 0xC3
- },
- {
- 0x0F, 0x74, 0x6A, 0x48, 0x74, 0x92, 0x87, 0xAD,
- 0xA7, 0x7A, 0x82, 0x96, 0x1F, 0x05, 0xA4, 0xDA,
- 0x4A, 0xBD, 0xB7, 0xD7, 0x7B, 0x12, 0x20, 0xF8,
- 0x36, 0xD0, 0x9E, 0xC8, 0x14, 0x35, 0x9C, 0x0E,
- 0xC0, 0x23, 0x9B, 0x8C, 0x7B, 0x9F, 0xF9, 0xE0,
- 0x2F, 0x56, 0x9D, 0x1B, 0x30, 0x1E, 0xF6, 0x7C,
- 0x46, 0x12, 0xD1, 0xDE, 0x4F, 0x73, 0x0F, 0x81,
- 0xC1, 0x2C, 0x40, 0xCC, 0x06, 0x3C, 0x5C, 0xAA
- },
- {
- 0xF0, 0xFC, 0x85, 0x9D, 0x3B, 0xD1, 0x95, 0xFB,
- 0xDC, 0x2D, 0x59, 0x1E, 0x4C, 0xDA, 0xC1, 0x51,
- 0x79, 0xEC, 0x0F, 0x1D, 0xC8, 0x21, 0xC1, 0x1D,
- 0xF1, 0xF0, 0xC1, 0xD2, 0x6E, 0x62, 0x60, 0xAA,
- 0xA6, 0x5B, 0x79, 0xFA, 0xFA, 0xCA, 0xFD, 0x7D,
- 0x3A, 0xD6, 0x1E, 0x60, 0x0F, 0x25, 0x09, 0x05,
- 0xF5, 0x87, 0x8C, 0x87, 0x45, 0x28, 0x97, 0x64,
- 0x7A, 0x35, 0xB9, 0x95, 0xBC, 0xAD, 0xC3, 0xA3
- },
- {
- 0x26, 0x20, 0xF6, 0x87, 0xE8, 0x62, 0x5F, 0x6A,
- 0x41, 0x24, 0x60, 0xB4, 0x2E, 0x2C, 0xEF, 0x67,
- 0x63, 0x42, 0x08, 0xCE, 0x10, 0xA0, 0xCB, 0xD4,
- 0xDF, 0xF7, 0x04, 0x4A, 0x41, 0xB7, 0x88, 0x00,
- 0x77, 0xE9, 0xF8, 0xDC, 0x3B, 0x8D, 0x12, 0x16,
- 0xD3, 0x37, 0x6A, 0x21, 0xE0, 0x15, 0xB5, 0x8F,
- 0xB2, 0x79, 0xB5, 0x21, 0xD8, 0x3F, 0x93, 0x88,
- 0xC7, 0x38, 0x2C, 0x85, 0x05, 0x59, 0x0B, 0x9B
- },
- {
- 0x22, 0x7E, 0x3A, 0xED, 0x8D, 0x2C, 0xB1, 0x0B,
- 0x91, 0x8F, 0xCB, 0x04, 0xF9, 0xDE, 0x3E, 0x6D,
- 0x0A, 0x57, 0xE0, 0x84, 0x76, 0xD9, 0x37, 0x59,
- 0xCD, 0x7B, 0x2E, 0xD5, 0x4A, 0x1C, 0xBF, 0x02,
- 0x39, 0xC5, 0x28, 0xFB, 0x04, 0xBB, 0xF2, 0x88,
- 0x25, 0x3E, 0x60, 0x1D, 0x3B, 0xC3, 0x8B, 0x21,
- 0x79, 0x4A, 0xFE, 0xF9, 0x0B, 0x17, 0x09, 0x4A,
- 0x18, 0x2C, 0xAC, 0x55, 0x77, 0x45, 0xE7, 0x5F
- },
- {
- 0x1A, 0x92, 0x99, 0x01, 0xB0, 0x9C, 0x25, 0xF2,
- 0x7D, 0x6B, 0x35, 0xBE, 0x7B, 0x2F, 0x1C, 0x47,
- 0x45, 0x13, 0x1F, 0xDE, 0xBC, 0xA7, 0xF3, 0xE2,
- 0x45, 0x19, 0x26, 0x72, 0x04, 0x34, 0xE0, 0xDB,
- 0x6E, 0x74, 0xFD, 0x69, 0x3A, 0xD2, 0x9B, 0x77,
- 0x7D, 0xC3, 0x35, 0x5C, 0x59, 0x2A, 0x36, 0x1C,
- 0x48, 0x73, 0xB0, 0x11, 0x33, 0xA5, 0x7C, 0x2E,
- 0x3B, 0x70, 0x75, 0xCB, 0xDB, 0x86, 0xF4, 0xFC
- },
- {
- 0x5F, 0xD7, 0x96, 0x8B, 0xC2, 0xFE, 0x34, 0xF2,
- 0x20, 0xB5, 0xE3, 0xDC, 0x5A, 0xF9, 0x57, 0x17,
- 0x42, 0xD7, 0x3B, 0x7D, 0x60, 0x81, 0x9F, 0x28,
- 0x88, 0xB6, 0x29, 0x07, 0x2B, 0x96, 0xA9, 0xD8,
- 0xAB, 0x2D, 0x91, 0xB8, 0x2D, 0x0A, 0x9A, 0xAB,
- 0xA6, 0x1B, 0xBD, 0x39, 0x95, 0x81, 0x32, 0xFC,
- 0xC4, 0x25, 0x70, 0x23, 0xD1, 0xEC, 0xA5, 0x91,
- 0xB3, 0x05, 0x4E, 0x2D, 0xC8, 0x1C, 0x82, 0x00
- },
- {
- 0xDF, 0xCC, 0xE8, 0xCF, 0x32, 0x87, 0x0C, 0xC6,
- 0xA5, 0x03, 0xEA, 0xDA, 0xFC, 0x87, 0xFD, 0x6F,
- 0x78, 0x91, 0x8B, 0x9B, 0x4D, 0x07, 0x37, 0xDB,
- 0x68, 0x10, 0xBE, 0x99, 0x6B, 0x54, 0x97, 0xE7,
- 0xE5, 0xCC, 0x80, 0xE3, 0x12, 0xF6, 0x1E, 0x71,
- 0xFF, 0x3E, 0x96, 0x24, 0x43, 0x60, 0x73, 0x15,
- 0x64, 0x03, 0xF7, 0x35, 0xF5, 0x6B, 0x0B, 0x01,
- 0x84, 0x5C, 0x18, 0xF6, 0xCA, 0xF7, 0x72, 0xE6
- },
- {
- 0x02, 0xF7, 0xEF, 0x3A, 0x9C, 0xE0, 0xFF, 0xF9,
- 0x60, 0xF6, 0x70, 0x32, 0xB2, 0x96, 0xEF, 0xCA,
- 0x30, 0x61, 0xF4, 0x93, 0x4D, 0x69, 0x07, 0x49,
- 0xF2, 0xD0, 0x1C, 0x35, 0xC8, 0x1C, 0x14, 0xF3,
- 0x9A, 0x67, 0xFA, 0x35, 0x0B, 0xC8, 0xA0, 0x35,
- 0x9B, 0xF1, 0x72, 0x4B, 0xFF, 0xC3, 0xBC, 0xA6,
- 0xD7, 0xC7, 0xBB, 0xA4, 0x79, 0x1F, 0xD5, 0x22,
- 0xA3, 0xAD, 0x35, 0x3C, 0x02, 0xEC, 0x5A, 0xA8
- },
- {
- 0x64, 0xBE, 0x5C, 0x6A, 0xBA, 0x65, 0xD5, 0x94,
- 0x84, 0x4A, 0xE7, 0x8B, 0xB0, 0x22, 0xE5, 0xBE,
- 0xBE, 0x12, 0x7F, 0xD6, 0xB6, 0xFF, 0xA5, 0xA1,
- 0x37, 0x03, 0x85, 0x5A, 0xB6, 0x3B, 0x62, 0x4D,
- 0xCD, 0x1A, 0x36, 0x3F, 0x99, 0x20, 0x3F, 0x63,
- 0x2E, 0xC3, 0x86, 0xF3, 0xEA, 0x76, 0x7F, 0xC9,
- 0x92, 0xE8, 0xED, 0x96, 0x86, 0x58, 0x6A, 0xA2,
- 0x75, 0x55, 0xA8, 0x59, 0x9D, 0x5B, 0x80, 0x8F
- },
- {
- 0xF7, 0x85, 0x85, 0x50, 0x5C, 0x4E, 0xAA, 0x54,
- 0xA8, 0xB5, 0xBE, 0x70, 0xA6, 0x1E, 0x73, 0x5E,
- 0x0F, 0xF9, 0x7A, 0xF9, 0x44, 0xDD, 0xB3, 0x00,
- 0x1E, 0x35, 0xD8, 0x6C, 0x4E, 0x21, 0x99, 0xD9,
- 0x76, 0x10, 0x4B, 0x6A, 0xE3, 0x17, 0x50, 0xA3,
- 0x6A, 0x72, 0x6E, 0xD2, 0x85, 0x06, 0x4F, 0x59,
- 0x81, 0xB5, 0x03, 0x88, 0x9F, 0xEF, 0x82, 0x2F,
- 0xCD, 0xC2, 0x89, 0x8D, 0xDD, 0xB7, 0x88, 0x9A
- },
- {
- 0xE4, 0xB5, 0x56, 0x60, 0x33, 0x86, 0x95, 0x72,
- 0xED, 0xFD, 0x87, 0x47, 0x9A, 0x5B, 0xB7, 0x3C,
- 0x80, 0xE8, 0x75, 0x9B, 0x91, 0x23, 0x28, 0x79,
- 0xD9, 0x6B, 0x1D, 0xDA, 0x36, 0xC0, 0x12, 0x07,
- 0x6E, 0xE5, 0xA2, 0xED, 0x7A, 0xE2, 0xDE, 0x63,
- 0xEF, 0x84, 0x06, 0xA0, 0x6A, 0xEA, 0x82, 0xC1,
- 0x88, 0x03, 0x1B, 0x56, 0x0B, 0xEA, 0xFB, 0x58,
- 0x3F, 0xB3, 0xDE, 0x9E, 0x57, 0x95, 0x2A, 0x7E
- },
- {
- 0xE1, 0xB3, 0xE7, 0xED, 0x86, 0x7F, 0x6C, 0x94,
- 0x84, 0xA2, 0xA9, 0x7F, 0x77, 0x15, 0xF2, 0x5E,
- 0x25, 0x29, 0x4E, 0x99, 0x2E, 0x41, 0xF6, 0xA7,
- 0xC1, 0x61, 0xFF, 0xC2, 0xAD, 0xC6, 0xDA, 0xAE,
- 0xB7, 0x11, 0x31, 0x02, 0xD5, 0xE6, 0x09, 0x02,
- 0x87, 0xFE, 0x6A, 0xD9, 0x4C, 0xE5, 0xD6, 0xB7,
- 0x39, 0xC6, 0xCA, 0x24, 0x0B, 0x05, 0xC7, 0x6F,
- 0xB7, 0x3F, 0x25, 0xDD, 0x02, 0x4B, 0xF9, 0x35
- },
- {
- 0x85, 0xFD, 0x08, 0x5F, 0xDC, 0x12, 0xA0, 0x80,
- 0x98, 0x3D, 0xF0, 0x7B, 0xD7, 0x01, 0x2B, 0x0D,
- 0x40, 0x2A, 0x0F, 0x40, 0x43, 0xFC, 0xB2, 0x77,
- 0x5A, 0xDF, 0x0B, 0xAD, 0x17, 0x4F, 0x9B, 0x08,
- 0xD1, 0x67, 0x6E, 0x47, 0x69, 0x85, 0x78, 0x5C,
- 0x0A, 0x5D, 0xCC, 0x41, 0xDB, 0xFF, 0x6D, 0x95,
- 0xEF, 0x4D, 0x66, 0xA3, 0xFB, 0xDC, 0x4A, 0x74,
- 0xB8, 0x2B, 0xA5, 0x2D, 0xA0, 0x51, 0x2B, 0x74
- },
- {
- 0xAE, 0xD8, 0xFA, 0x76, 0x4B, 0x0F, 0xBF, 0xF8,
- 0x21, 0xE0, 0x52, 0x33, 0xD2, 0xF7, 0xB0, 0x90,
- 0x0E, 0xC4, 0x4D, 0x82, 0x6F, 0x95, 0xE9, 0x3C,
- 0x34, 0x3C, 0x1B, 0xC3, 0xBA, 0x5A, 0x24, 0x37,
- 0x4B, 0x1D, 0x61, 0x6E, 0x7E, 0x7A, 0xBA, 0x45,
- 0x3A, 0x0A, 0xDA, 0x5E, 0x4F, 0xAB, 0x53, 0x82,
- 0x40, 0x9E, 0x0D, 0x42, 0xCE, 0x9C, 0x2B, 0xC7,
- 0xFB, 0x39, 0xA9, 0x9C, 0x34, 0x0C, 0x20, 0xF0
- },
- {
- 0x7B, 0xA3, 0xB2, 0xE2, 0x97, 0x23, 0x35, 0x22,
- 0xEE, 0xB3, 0x43, 0xBD, 0x3E, 0xBC, 0xFD, 0x83,
- 0x5A, 0x04, 0x00, 0x77, 0x35, 0xE8, 0x7F, 0x0C,
- 0xA3, 0x00, 0xCB, 0xEE, 0x6D, 0x41, 0x65, 0x65,
- 0x16, 0x21, 0x71, 0x58, 0x1E, 0x40, 0x20, 0xFF,
- 0x4C, 0xF1, 0x76, 0x45, 0x0F, 0x12, 0x91, 0xEA,
- 0x22, 0x85, 0xCB, 0x9E, 0xBF, 0xFE, 0x4C, 0x56,
- 0x66, 0x06, 0x27, 0x68, 0x51, 0x45, 0x05, 0x1C
- },
- {
- 0xDE, 0x74, 0x8B, 0xCF, 0x89, 0xEC, 0x88, 0x08,
- 0x47, 0x21, 0xE1, 0x6B, 0x85, 0xF3, 0x0A, 0xDB,
- 0x1A, 0x61, 0x34, 0xD6, 0x64, 0xB5, 0x84, 0x35,
- 0x69, 0xBA, 0xBC, 0x5B, 0xBD, 0x1A, 0x15, 0xCA,
- 0x9B, 0x61, 0x80, 0x3C, 0x90, 0x1A, 0x4F, 0xEF,
- 0x32, 0x96, 0x5A, 0x17, 0x49, 0xC9, 0xF3, 0xA4,
- 0xE2, 0x43, 0xE1, 0x73, 0x93, 0x9D, 0xC5, 0xA8,
- 0xDC, 0x49, 0x5C, 0x67, 0x1A, 0xB5, 0x21, 0x45
- },
- {
- 0xAA, 0xF4, 0xD2, 0xBD, 0xF2, 0x00, 0xA9, 0x19,
- 0x70, 0x6D, 0x98, 0x42, 0xDC, 0xE1, 0x6C, 0x98,
- 0x14, 0x0D, 0x34, 0xBC, 0x43, 0x3D, 0xF3, 0x20,
- 0xAB, 0xA9, 0xBD, 0x42, 0x9E, 0x54, 0x9A, 0xA7,
- 0xA3, 0x39, 0x76, 0x52, 0xA4, 0xD7, 0x68, 0x27,
- 0x77, 0x86, 0xCF, 0x99, 0x3C, 0xDE, 0x23, 0x38,
- 0x67, 0x3E, 0xD2, 0xE6, 0xB6, 0x6C, 0x96, 0x1F,
- 0xEF, 0xB8, 0x2C, 0xD2, 0x0C, 0x93, 0x33, 0x8F
- },
- {
- 0xC4, 0x08, 0x21, 0x89, 0x68, 0xB7, 0x88, 0xBF,
- 0x86, 0x4F, 0x09, 0x97, 0xE6, 0xBC, 0x4C, 0x3D,
- 0xBA, 0x68, 0xB2, 0x76, 0xE2, 0x12, 0x5A, 0x48,
- 0x43, 0x29, 0x60, 0x52, 0xFF, 0x93, 0xBF, 0x57,
- 0x67, 0xB8, 0xCD, 0xCE, 0x71, 0x31, 0xF0, 0x87,
- 0x64, 0x30, 0xC1, 0x16, 0x5F, 0xEC, 0x6C, 0x4F,
- 0x47, 0xAD, 0xAA, 0x4F, 0xD8, 0xBC, 0xFA, 0xCE,
- 0xF4, 0x63, 0xB5, 0xD3, 0xD0, 0xFA, 0x61, 0xA0
- },
- {
- 0x76, 0xD2, 0xD8, 0x19, 0xC9, 0x2B, 0xCE, 0x55,
- 0xFA, 0x8E, 0x09, 0x2A, 0xB1, 0xBF, 0x9B, 0x9E,
- 0xAB, 0x23, 0x7A, 0x25, 0x26, 0x79, 0x86, 0xCA,
- 0xCF, 0x2B, 0x8E, 0xE1, 0x4D, 0x21, 0x4D, 0x73,
- 0x0D, 0xC9, 0xA5, 0xAA, 0x2D, 0x7B, 0x59, 0x6E,
- 0x86, 0xA1, 0xFD, 0x8F, 0xA0, 0x80, 0x4C, 0x77,
- 0x40, 0x2D, 0x2F, 0xCD, 0x45, 0x08, 0x36, 0x88,
- 0xB2, 0x18, 0xB1, 0xCD, 0xFA, 0x0D, 0xCB, 0xCB
- },
- {
- 0x72, 0x06, 0x5E, 0xE4, 0xDD, 0x91, 0xC2, 0xD8,
- 0x50, 0x9F, 0xA1, 0xFC, 0x28, 0xA3, 0x7C, 0x7F,
- 0xC9, 0xFA, 0x7D, 0x5B, 0x3F, 0x8A, 0xD3, 0xD0,
- 0xD7, 0xA2, 0x56, 0x26, 0xB5, 0x7B, 0x1B, 0x44,
- 0x78, 0x8D, 0x4C, 0xAF, 0x80, 0x62, 0x90, 0x42,
- 0x5F, 0x98, 0x90, 0xA3, 0xA2, 0xA3, 0x5A, 0x90,
- 0x5A, 0xB4, 0xB3, 0x7A, 0xCF, 0xD0, 0xDA, 0x6E,
- 0x45, 0x17, 0xB2, 0x52, 0x5C, 0x96, 0x51, 0xE4
- },
- {
- 0x64, 0x47, 0x5D, 0xFE, 0x76, 0x00, 0xD7, 0x17,
- 0x1B, 0xEA, 0x0B, 0x39, 0x4E, 0x27, 0xC9, 0xB0,
- 0x0D, 0x8E, 0x74, 0xDD, 0x1E, 0x41, 0x6A, 0x79,
- 0x47, 0x36, 0x82, 0xAD, 0x3D, 0xFD, 0xBB, 0x70,
- 0x66, 0x31, 0x55, 0x80, 0x55, 0xCF, 0xC8, 0xA4,
- 0x0E, 0x07, 0xBD, 0x01, 0x5A, 0x45, 0x40, 0xDC,
- 0xDE, 0xA1, 0x58, 0x83, 0xCB, 0xBF, 0x31, 0x41,
- 0x2D, 0xF1, 0xDE, 0x1C, 0xD4, 0x15, 0x2B, 0x91
- },
- {
- 0x12, 0xCD, 0x16, 0x74, 0xA4, 0x48, 0x8A, 0x5D,
- 0x7C, 0x2B, 0x31, 0x60, 0xD2, 0xE2, 0xC4, 0xB5,
- 0x83, 0x71, 0xBE, 0xDA, 0xD7, 0x93, 0x41, 0x8D,
- 0x6F, 0x19, 0xC6, 0xEE, 0x38, 0x5D, 0x70, 0xB3,
- 0xE0, 0x67, 0x39, 0x36, 0x9D, 0x4D, 0xF9, 0x10,
- 0xED, 0xB0, 0xB0, 0xA5, 0x4C, 0xBF, 0xF4, 0x3D,
- 0x54, 0x54, 0x4C, 0xD3, 0x7A, 0xB3, 0xA0, 0x6C,
- 0xFA, 0x0A, 0x3D, 0xDA, 0xC8, 0xB6, 0x6C, 0x89
- },
- {
- 0x60, 0x75, 0x69, 0x66, 0x47, 0x9D, 0xED, 0xC6,
- 0xDD, 0x4B, 0xCF, 0xF8, 0xEA, 0x7D, 0x1D, 0x4C,
- 0xE4, 0xD4, 0xAF, 0x2E, 0x7B, 0x09, 0x7E, 0x32,
- 0xE3, 0x76, 0x35, 0x18, 0x44, 0x11, 0x47, 0xCC,
- 0x12, 0xB3, 0xC0, 0xEE, 0x6D, 0x2E, 0xCA, 0xBF,
- 0x11, 0x98, 0xCE, 0xC9, 0x2E, 0x86, 0xA3, 0x61,
- 0x6F, 0xBA, 0x4F, 0x4E, 0x87, 0x2F, 0x58, 0x25,
- 0x33, 0x0A, 0xDB, 0xB4, 0xC1, 0xDE, 0xE4, 0x44
- },
- {
- 0xA7, 0x80, 0x3B, 0xCB, 0x71, 0xBC, 0x1D, 0x0F,
- 0x43, 0x83, 0xDD, 0xE1, 0xE0, 0x61, 0x2E, 0x04,
- 0xF8, 0x72, 0xB7, 0x15, 0xAD, 0x30, 0x81, 0x5C,
- 0x22, 0x49, 0xCF, 0x34, 0xAB, 0xB8, 0xB0, 0x24,
- 0x91, 0x5C, 0xB2, 0xFC, 0x9F, 0x4E, 0x7C, 0xC4,
- 0xC8, 0xCF, 0xD4, 0x5B, 0xE2, 0xD5, 0xA9, 0x1E,
- 0xAB, 0x09, 0x41, 0xC7, 0xD2, 0x70, 0xE2, 0xDA,
- 0x4C, 0xA4, 0xA9, 0xF7, 0xAC, 0x68, 0x66, 0x3A
- },
- {
- 0xB8, 0x4E, 0xF6, 0xA7, 0x22, 0x9A, 0x34, 0xA7,
- 0x50, 0xD9, 0xA9, 0x8E, 0xE2, 0x52, 0x98, 0x71,
- 0x81, 0x6B, 0x87, 0xFB, 0xE3, 0xBC, 0x45, 0xB4,
- 0x5F, 0xA5, 0xAE, 0x82, 0xD5, 0x14, 0x15, 0x40,
- 0x21, 0x11, 0x65, 0xC3, 0xC5, 0xD7, 0xA7, 0x47,
- 0x6B, 0xA5, 0xA4, 0xAA, 0x06, 0xD6, 0x64, 0x76,
- 0xF0, 0xD9, 0xDC, 0x49, 0xA3, 0xF1, 0xEE, 0x72,
- 0xC3, 0xAC, 0xAB, 0xD4, 0x98, 0x96, 0x74, 0x14
- },
- {
- 0xFA, 0xE4, 0xB6, 0xD8, 0xEF, 0xC3, 0xF8, 0xC8,
- 0xE6, 0x4D, 0x00, 0x1D, 0xAB, 0xEC, 0x3A, 0x21,
- 0xF5, 0x44, 0xE8, 0x27, 0x14, 0x74, 0x52, 0x51,
- 0xB2, 0xB4, 0xB3, 0x93, 0xF2, 0xF4, 0x3E, 0x0D,
- 0xA3, 0xD4, 0x03, 0xC6, 0x4D, 0xB9, 0x5A, 0x2C,
- 0xB6, 0xE2, 0x3E, 0xBB, 0x7B, 0x9E, 0x94, 0xCD,
- 0xD5, 0xDD, 0xAC, 0x54, 0xF0, 0x7C, 0x4A, 0x61,
- 0xBD, 0x3C, 0xB1, 0x0A, 0xA6, 0xF9, 0x3B, 0x49
- },
- {
- 0x34, 0xF7, 0x28, 0x66, 0x05, 0xA1, 0x22, 0x36,
- 0x95, 0x40, 0x14, 0x1D, 0xED, 0x79, 0xB8, 0x95,
- 0x72, 0x55, 0xDA, 0x2D, 0x41, 0x55, 0xAB, 0xBF,
- 0x5A, 0x8D, 0xBB, 0x89, 0xC8, 0xEB, 0x7E, 0xDE,
- 0x8E, 0xEE, 0xF1, 0xDA, 0xA4, 0x6D, 0xC2, 0x9D,
- 0x75, 0x1D, 0x04, 0x5D, 0xC3, 0xB1, 0xD6, 0x58,
- 0xBB, 0x64, 0xB8, 0x0F, 0xF8, 0x58, 0x9E, 0xDD,
- 0xB3, 0x82, 0x4B, 0x13, 0xDA, 0x23, 0x5A, 0x6B
- },
- {
- 0x3B, 0x3B, 0x48, 0x43, 0x4B, 0xE2, 0x7B, 0x9E,
- 0xAB, 0xAB, 0xBA, 0x43, 0xBF, 0x6B, 0x35, 0xF1,
- 0x4B, 0x30, 0xF6, 0xA8, 0x8D, 0xC2, 0xE7, 0x50,
- 0xC3, 0x58, 0x47, 0x0D, 0x6B, 0x3A, 0xA3, 0xC1,
- 0x8E, 0x47, 0xDB, 0x40, 0x17, 0xFA, 0x55, 0x10,
- 0x6D, 0x82, 0x52, 0xF0, 0x16, 0x37, 0x1A, 0x00,
- 0xF5, 0xF8, 0xB0, 0x70, 0xB7, 0x4B, 0xA5, 0xF2,
- 0x3C, 0xFF, 0xC5, 0x51, 0x1C, 0x9F, 0x09, 0xF0
- },
- {
- 0xBA, 0x28, 0x9E, 0xBD, 0x65, 0x62, 0xC4, 0x8C,
- 0x3E, 0x10, 0xA8, 0xAD, 0x6C, 0xE0, 0x2E, 0x73,
- 0x43, 0x3D, 0x1E, 0x93, 0xD7, 0xC9, 0x27, 0x9D,
- 0x4D, 0x60, 0xA7, 0xE8, 0x79, 0xEE, 0x11, 0xF4,
- 0x41, 0xA0, 0x00, 0xF4, 0x8E, 0xD9, 0xF7, 0xC4,
- 0xED, 0x87, 0xA4, 0x51, 0x36, 0xD7, 0xDC, 0xCD,
- 0xCA, 0x48, 0x21, 0x09, 0xC7, 0x8A, 0x51, 0x06,
- 0x2B, 0x3B, 0xA4, 0x04, 0x4A, 0xDA, 0x24, 0x69
- },
- {
- 0x02, 0x29, 0x39, 0xE2, 0x38, 0x6C, 0x5A, 0x37,
- 0x04, 0x98, 0x56, 0xC8, 0x50, 0xA2, 0xBB, 0x10,
- 0xA1, 0x3D, 0xFE, 0xA4, 0x21, 0x2B, 0x4C, 0x73,
- 0x2A, 0x88, 0x40, 0xA9, 0xFF, 0xA5, 0xFA, 0xF5,
- 0x48, 0x75, 0xC5, 0x44, 0x88, 0x16, 0xB2, 0x78,
- 0x5A, 0x00, 0x7D, 0xA8, 0xA8, 0xD2, 0xBC, 0x7D,
- 0x71, 0xA5, 0x4E, 0x4E, 0x65, 0x71, 0xF1, 0x0B,
- 0x60, 0x0C, 0xBD, 0xB2, 0x5D, 0x13, 0xED, 0xE3
- },
- {
- 0xE6, 0xFE, 0xC1, 0x9D, 0x89, 0xCE, 0x87, 0x17,
- 0xB1, 0xA0, 0x87, 0x02, 0x46, 0x70, 0xFE, 0x02,
- 0x6F, 0x6C, 0x7C, 0xBD, 0xA1, 0x1C, 0xAE, 0xF9,
- 0x59, 0xBB, 0x2D, 0x35, 0x1B, 0xF8, 0x56, 0xF8,
- 0x05, 0x5D, 0x1C, 0x0E, 0xBD, 0xAA, 0xA9, 0xD1,
- 0xB1, 0x78, 0x86, 0xFC, 0x2C, 0x56, 0x2B, 0x5E,
- 0x99, 0x64, 0x2F, 0xC0, 0x64, 0x71, 0x0C, 0x0D,
- 0x34, 0x88, 0xA0, 0x2B, 0x5E, 0xD7, 0xF6, 0xFD
- },
- {
- 0x94, 0xC9, 0x6F, 0x02, 0xA8, 0xF5, 0x76, 0xAC,
- 0xA3, 0x2B, 0xA6, 0x1C, 0x2B, 0x20, 0x6F, 0x90,
- 0x72, 0x85, 0xD9, 0x29, 0x9B, 0x83, 0xAC, 0x17,
- 0x5C, 0x20, 0x9A, 0x8D, 0x43, 0xD5, 0x3B, 0xFE,
- 0x68, 0x3D, 0xD1, 0xD8, 0x3E, 0x75, 0x49, 0xCB,
- 0x90, 0x6C, 0x28, 0xF5, 0x9A, 0xB7, 0xC4, 0x6F,
- 0x87, 0x51, 0x36, 0x6A, 0x28, 0xC3, 0x9D, 0xD5,
- 0xFE, 0x26, 0x93, 0xC9, 0x01, 0x96, 0x66, 0xC8
- },
- {
- 0x31, 0xA0, 0xCD, 0x21, 0x5E, 0xBD, 0x2C, 0xB6,
- 0x1D, 0xE5, 0xB9, 0xED, 0xC9, 0x1E, 0x61, 0x95,
- 0xE3, 0x1C, 0x59, 0xA5, 0x64, 0x8D, 0x5C, 0x9F,
- 0x73, 0x7E, 0x12, 0x5B, 0x26, 0x05, 0x70, 0x8F,
- 0x2E, 0x32, 0x5A, 0xB3, 0x38, 0x1C, 0x8D, 0xCE,
- 0x1A, 0x3E, 0x95, 0x88, 0x86, 0xF1, 0xEC, 0xDC,
- 0x60, 0x31, 0x8F, 0x88, 0x2C, 0xFE, 0x20, 0xA2,
- 0x41, 0x91, 0x35, 0x2E, 0x61, 0x7B, 0x0F, 0x21
- },
- {
- 0x91, 0xAB, 0x50, 0x4A, 0x52, 0x2D, 0xCE, 0x78,
- 0x77, 0x9F, 0x4C, 0x6C, 0x6B, 0xA2, 0xE6, 0xB6,
- 0xDB, 0x55, 0x65, 0xC7, 0x6D, 0x3E, 0x7E, 0x7C,
- 0x92, 0x0C, 0xAF, 0x7F, 0x75, 0x7E, 0xF9, 0xDB,
- 0x7C, 0x8F, 0xCF, 0x10, 0xE5, 0x7F, 0x03, 0x37,
- 0x9E, 0xA9, 0xBF, 0x75, 0xEB, 0x59, 0x89, 0x5D,
- 0x96, 0xE1, 0x49, 0x80, 0x0B, 0x6A, 0xAE, 0x01,
- 0xDB, 0x77, 0x8B, 0xB9, 0x0A, 0xFB, 0xC9, 0x89
- },
- {
- 0xD8, 0x5C, 0xAB, 0xC6, 0xBD, 0x5B, 0x1A, 0x01,
- 0xA5, 0xAF, 0xD8, 0xC6, 0x73, 0x47, 0x40, 0xDA,
- 0x9F, 0xD1, 0xC1, 0xAC, 0xC6, 0xDB, 0x29, 0xBF,
- 0xC8, 0xA2, 0xE5, 0xB6, 0x68, 0xB0, 0x28, 0xB6,
- 0xB3, 0x15, 0x4B, 0xFB, 0x87, 0x03, 0xFA, 0x31,
- 0x80, 0x25, 0x1D, 0x58, 0x9A, 0xD3, 0x80, 0x40,
- 0xCE, 0xB7, 0x07, 0xC4, 0xBA, 0xD1, 0xB5, 0x34,
- 0x3C, 0xB4, 0x26, 0xB6, 0x1E, 0xAA, 0x49, 0xC1
- },
- {
- 0xD6, 0x2E, 0xFB, 0xEC, 0x2C, 0xA9, 0xC1, 0xF8,
- 0xBD, 0x66, 0xCE, 0x8B, 0x3F, 0x6A, 0x89, 0x8C,
- 0xB3, 0xF7, 0x56, 0x6B, 0xA6, 0x56, 0x8C, 0x61,
- 0x8A, 0xD1, 0xFE, 0xB2, 0xB6, 0x5B, 0x76, 0xC3,
- 0xCE, 0x1D, 0xD2, 0x0F, 0x73, 0x95, 0x37, 0x2F,
- 0xAF, 0x28, 0x42, 0x7F, 0x61, 0xC9, 0x27, 0x80,
- 0x49, 0xCF, 0x01, 0x40, 0xDF, 0x43, 0x4F, 0x56,
- 0x33, 0x04, 0x8C, 0x86, 0xB8, 0x1E, 0x03, 0x99
- },
- {
- 0x7C, 0x8F, 0xDC, 0x61, 0x75, 0x43, 0x9E, 0x2C,
- 0x3D, 0xB1, 0x5B, 0xAF, 0xA7, 0xFB, 0x06, 0x14,
- 0x3A, 0x6A, 0x23, 0xBC, 0x90, 0xF4, 0x49, 0xE7,
- 0x9D, 0xEE, 0xF7, 0x3C, 0x3D, 0x49, 0x2A, 0x67,
- 0x17, 0x15, 0xC1, 0x93, 0xB6, 0xFE, 0xA9, 0xF0,
- 0x36, 0x05, 0x0B, 0x94, 0x60, 0x69, 0x85, 0x6B,
- 0x89, 0x7E, 0x08, 0xC0, 0x07, 0x68, 0xF5, 0xEE,
- 0x5D, 0xDC, 0xF7, 0x0B, 0x7C, 0xD6, 0xD0, 0xE0
- },
- {
- 0x58, 0x60, 0x2E, 0xE7, 0x46, 0x8E, 0x6B, 0xC9,
- 0xDF, 0x21, 0xBD, 0x51, 0xB2, 0x3C, 0x00, 0x5F,
- 0x72, 0xD6, 0xCB, 0x01, 0x3F, 0x0A, 0x1B, 0x48,
- 0xCB, 0xEC, 0x5E, 0xCA, 0x29, 0x92, 0x99, 0xF9,
- 0x7F, 0x09, 0xF5, 0x4A, 0x9A, 0x01, 0x48, 0x3E,
- 0xAE, 0xB3, 0x15, 0xA6, 0x47, 0x8B, 0xAD, 0x37,
- 0xBA, 0x47, 0xCA, 0x13, 0x47, 0xC7, 0xC8, 0xFC,
- 0x9E, 0x66, 0x95, 0x59, 0x2C, 0x91, 0xD7, 0x23
- },
- {
- 0x27, 0xF5, 0xB7, 0x9E, 0xD2, 0x56, 0xB0, 0x50,
- 0x99, 0x3D, 0x79, 0x34, 0x96, 0xED, 0xF4, 0x80,
- 0x7C, 0x1D, 0x85, 0xA7, 0xB0, 0xA6, 0x7C, 0x9C,
- 0x4F, 0xA9, 0x98, 0x60, 0x75, 0x0B, 0x0A, 0xE6,
- 0x69, 0x89, 0x67, 0x0A, 0x8F, 0xFD, 0x78, 0x56,
- 0xD7, 0xCE, 0x41, 0x15, 0x99, 0xE5, 0x8C, 0x4D,
- 0x77, 0xB2, 0x32, 0xA6, 0x2B, 0xEF, 0x64, 0xD1,
- 0x52, 0x75, 0xBE, 0x46, 0xA6, 0x82, 0x35, 0xFF
- },
- {
- 0x39, 0x57, 0xA9, 0x76, 0xB9, 0xF1, 0x88, 0x7B,
- 0xF0, 0x04, 0xA8, 0xDC, 0xA9, 0x42, 0xC9, 0x2D,
- 0x2B, 0x37, 0xEA, 0x52, 0x60, 0x0F, 0x25, 0xE0,
- 0xC9, 0xBC, 0x57, 0x07, 0xD0, 0x27, 0x9C, 0x00,
- 0xC6, 0xE8, 0x5A, 0x83, 0x9B, 0x0D, 0x2D, 0x8E,
- 0xB5, 0x9C, 0x51, 0xD9, 0x47, 0x88, 0xEB, 0xE6,
- 0x24, 0x74, 0xA7, 0x91, 0xCA, 0xDF, 0x52, 0xCC,
- 0xCF, 0x20, 0xF5, 0x07, 0x0B, 0x65, 0x73, 0xFC
- },
- {
- 0xEA, 0xA2, 0x37, 0x6D, 0x55, 0x38, 0x0B, 0xF7,
- 0x72, 0xEC, 0xCA, 0x9C, 0xB0, 0xAA, 0x46, 0x68,
- 0xC9, 0x5C, 0x70, 0x71, 0x62, 0xFA, 0x86, 0xD5,
- 0x18, 0xC8, 0xCE, 0x0C, 0xA9, 0xBF, 0x73, 0x62,
- 0xB9, 0xF2, 0xA0, 0xAD, 0xC3, 0xFF, 0x59, 0x92,
- 0x2D, 0xF9, 0x21, 0xB9, 0x45, 0x67, 0xE8, 0x1E,
- 0x45, 0x2F, 0x6C, 0x1A, 0x07, 0xFC, 0x81, 0x7C,
- 0xEB, 0xE9, 0x96, 0x04, 0xB3, 0x50, 0x5D, 0x38
- },
- {
- 0xC1, 0xE2, 0xC7, 0x8B, 0x6B, 0x27, 0x34, 0xE2,
- 0x48, 0x0E, 0xC5, 0x50, 0x43, 0x4C, 0xB5, 0xD6,
- 0x13, 0x11, 0x1A, 0xDC, 0xC2, 0x1D, 0x47, 0x55,
- 0x45, 0xC3, 0xB1, 0xB7, 0xE6, 0xFF, 0x12, 0x44,
- 0x44, 0x76, 0xE5, 0xC0, 0x55, 0x13, 0x2E, 0x22,
- 0x29, 0xDC, 0x0F, 0x80, 0x70, 0x44, 0xBB, 0x91,
- 0x9B, 0x1A, 0x56, 0x62, 0xDD, 0x38, 0xA9, 0xEE,
- 0x65, 0xE2, 0x43, 0xA3, 0x91, 0x1A, 0xED, 0x1A
- },
- {
- 0x8A, 0xB4, 0x87, 0x13, 0x38, 0x9D, 0xD0, 0xFC,
- 0xF9, 0xF9, 0x65, 0xD3, 0xCE, 0x66, 0xB1, 0xE5,
- 0x59, 0xA1, 0xF8, 0xC5, 0x87, 0x41, 0xD6, 0x76,
- 0x83, 0xCD, 0x97, 0x13, 0x54, 0xF4, 0x52, 0xE6,
- 0x2D, 0x02, 0x07, 0xA6, 0x5E, 0x43, 0x6C, 0x5D,
- 0x5D, 0x8F, 0x8E, 0xE7, 0x1C, 0x6A, 0xBF, 0xE5,
- 0x0E, 0x66, 0x90, 0x04, 0xC3, 0x02, 0xB3, 0x1A,
- 0x7E, 0xA8, 0x31, 0x1D, 0x4A, 0x91, 0x60, 0x51
- },
- {
- 0x24, 0xCE, 0x0A, 0xDD, 0xAA, 0x4C, 0x65, 0x03,
- 0x8B, 0xD1, 0xB1, 0xC0, 0xF1, 0x45, 0x2A, 0x0B,
- 0x12, 0x87, 0x77, 0xAA, 0xBC, 0x94, 0xA2, 0x9D,
- 0xF2, 0xFD, 0x6C, 0x7E, 0x2F, 0x85, 0xF8, 0xAB,
- 0x9A, 0xC7, 0xEF, 0xF5, 0x16, 0xB0, 0xE0, 0xA8,
- 0x25, 0xC8, 0x4A, 0x24, 0xCF, 0xE4, 0x92, 0xEA,
- 0xAD, 0x0A, 0x63, 0x08, 0xE4, 0x6D, 0xD4, 0x2F,
- 0xE8, 0x33, 0x3A, 0xB9, 0x71, 0xBB, 0x30, 0xCA
- },
- {
- 0x51, 0x54, 0xF9, 0x29, 0xEE, 0x03, 0x04, 0x5B,
- 0x6B, 0x0C, 0x00, 0x04, 0xFA, 0x77, 0x8E, 0xDE,
- 0xE1, 0xD1, 0x39, 0x89, 0x32, 0x67, 0xCC, 0x84,
- 0x82, 0x5A, 0xD7, 0xB3, 0x6C, 0x63, 0xDE, 0x32,
- 0x79, 0x8E, 0x4A, 0x16, 0x6D, 0x24, 0x68, 0x65,
- 0x61, 0x35, 0x4F, 0x63, 0xB0, 0x07, 0x09, 0xA1,
- 0x36, 0x4B, 0x3C, 0x24, 0x1D, 0xE3, 0xFE, 0xBF,
- 0x07, 0x54, 0x04, 0x58, 0x97, 0x46, 0x7C, 0xD4
- },
- {
- 0xE7, 0x4E, 0x90, 0x79, 0x20, 0xFD, 0x87, 0xBD,
- 0x5A, 0xD6, 0x36, 0xDD, 0x11, 0x08, 0x5E, 0x50,
- 0xEE, 0x70, 0x45, 0x9C, 0x44, 0x3E, 0x1C, 0xE5,
- 0x80, 0x9A, 0xF2, 0xBC, 0x2E, 0xBA, 0x39, 0xF9,
- 0xE6, 0xD7, 0x12, 0x8E, 0x0E, 0x37, 0x12, 0xC3,
- 0x16, 0xDA, 0x06, 0xF4, 0x70, 0x5D, 0x78, 0xA4,
- 0x83, 0x8E, 0x28, 0x12, 0x1D, 0x43, 0x44, 0xA2,
- 0xC7, 0x9C, 0x5E, 0x0D, 0xB3, 0x07, 0xA6, 0x77
- },
- {
- 0xBF, 0x91, 0xA2, 0x23, 0x34, 0xBA, 0xC2, 0x0F,
- 0x3F, 0xD8, 0x06, 0x63, 0xB3, 0xCD, 0x06, 0xC4,
- 0xE8, 0x80, 0x2F, 0x30, 0xE6, 0xB5, 0x9F, 0x90,
- 0xD3, 0x03, 0x5C, 0xC9, 0x79, 0x8A, 0x21, 0x7E,
- 0xD5, 0xA3, 0x1A, 0xBB, 0xDA, 0x7F, 0xA6, 0x84,
- 0x28, 0x27, 0xBD, 0xF2, 0xA7, 0xA1, 0xC2, 0x1F,
- 0x6F, 0xCF, 0xCC, 0xBB, 0x54, 0xC6, 0xC5, 0x29,
- 0x26, 0xF3, 0x2D, 0xA8, 0x16, 0x26, 0x9B, 0xE1
- },
- {
- 0xD9, 0xD5, 0xC7, 0x4B, 0xE5, 0x12, 0x1B, 0x0B,
- 0xD7, 0x42, 0xF2, 0x6B, 0xFF, 0xB8, 0xC8, 0x9F,
- 0x89, 0x17, 0x1F, 0x3F, 0x93, 0x49, 0x13, 0x49,
- 0x2B, 0x09, 0x03, 0xC2, 0x71, 0xBB, 0xE2, 0xB3,
- 0x39, 0x5E, 0xF2, 0x59, 0x66, 0x9B, 0xEF, 0x43,
- 0xB5, 0x7F, 0x7F, 0xCC, 0x30, 0x27, 0xDB, 0x01,
- 0x82, 0x3F, 0x6B, 0xAE, 0xE6, 0x6E, 0x4F, 0x9F,
- 0xEA, 0xD4, 0xD6, 0x72, 0x6C, 0x74, 0x1F, 0xCE
- },
- {
- 0x50, 0xC8, 0xB8, 0xCF, 0x34, 0xCD, 0x87, 0x9F,
- 0x80, 0xE2, 0xFA, 0xAB, 0x32, 0x30, 0xB0, 0xC0,
- 0xE1, 0xCC, 0x3E, 0x9D, 0xCA, 0xDE, 0xB1, 0xB9,
- 0xD9, 0x7A, 0xB9, 0x23, 0x41, 0x5D, 0xD9, 0xA1,
- 0xFE, 0x38, 0xAD, 0xDD, 0x5C, 0x11, 0x75, 0x6C,
- 0x67, 0x99, 0x0B, 0x25, 0x6E, 0x95, 0xAD, 0x6D,
- 0x8F, 0x9F, 0xED, 0xCE, 0x10, 0xBF, 0x1C, 0x90,
- 0x67, 0x9C, 0xDE, 0x0E, 0xCF, 0x1B, 0xE3, 0x47
- },
- {
- 0x0A, 0x38, 0x6E, 0x7C, 0xD5, 0xDD, 0x9B, 0x77,
- 0xA0, 0x35, 0xE0, 0x9F, 0xE6, 0xFE, 0xE2, 0xC8,
- 0xCE, 0x61, 0xB5, 0x38, 0x3C, 0x87, 0xEA, 0x43,
- 0x20, 0x50, 0x59, 0xC5, 0xE4, 0xCD, 0x4F, 0x44,
- 0x08, 0x31, 0x9B, 0xB0, 0xA8, 0x23, 0x60, 0xF6,
- 0xA5, 0x8E, 0x6C, 0x9C, 0xE3, 0xF4, 0x87, 0xC4,
- 0x46, 0x06, 0x3B, 0xF8, 0x13, 0xBC, 0x6B, 0xA5,
- 0x35, 0xE1, 0x7F, 0xC1, 0x82, 0x6C, 0xFC, 0x91
- },
- {
- 0x1F, 0x14, 0x59, 0xCB, 0x6B, 0x61, 0xCB, 0xAC,
- 0x5F, 0x0E, 0xFE, 0x8F, 0xC4, 0x87, 0x53, 0x8F,
- 0x42, 0x54, 0x89, 0x87, 0xFC, 0xD5, 0x62, 0x21,
- 0xCF, 0xA7, 0xBE, 0xB2, 0x25, 0x04, 0x76, 0x9E,
- 0x79, 0x2C, 0x45, 0xAD, 0xFB, 0x1D, 0x6B, 0x3D,
- 0x60, 0xD7, 0xB7, 0x49, 0xC8, 0xA7, 0x5B, 0x0B,
- 0xDF, 0x14, 0xE8, 0xEA, 0x72, 0x1B, 0x95, 0xDC,
- 0xA5, 0x38, 0xCA, 0x6E, 0x25, 0x71, 0x12, 0x09
- },
- {
- 0xE5, 0x8B, 0x38, 0x36, 0xB7, 0xD8, 0xFE, 0xDB,
- 0xB5, 0x0C, 0xA5, 0x72, 0x5C, 0x65, 0x71, 0xE7,
- 0x4C, 0x07, 0x85, 0xE9, 0x78, 0x21, 0xDA, 0xB8,
- 0xB6, 0x29, 0x8C, 0x10, 0xE4, 0xC0, 0x79, 0xD4,
- 0xA6, 0xCD, 0xF2, 0x2F, 0x0F, 0xED, 0xB5, 0x50,
- 0x32, 0x92, 0x5C, 0x16, 0x74, 0x81, 0x15, 0xF0,
- 0x1A, 0x10, 0x5E, 0x77, 0xE0, 0x0C, 0xEE, 0x3D,
- 0x07, 0x92, 0x4D, 0xC0, 0xD8, 0xF9, 0x06, 0x59
- },
- {
- 0xB9, 0x29, 0xCC, 0x65, 0x05, 0xF0, 0x20, 0x15,
- 0x86, 0x72, 0xDE, 0xDA, 0x56, 0xD0, 0xDB, 0x08,
- 0x1A, 0x2E, 0xE3, 0x4C, 0x00, 0xC1, 0x10, 0x00,
- 0x29, 0xBD, 0xF8, 0xEA, 0x98, 0x03, 0x4F, 0xA4,
- 0xBF, 0x3E, 0x86, 0x55, 0xEC, 0x69, 0x7F, 0xE3,
- 0x6F, 0x40, 0x55, 0x3C, 0x5B, 0xB4, 0x68, 0x01,
- 0x64, 0x4A, 0x62, 0x7D, 0x33, 0x42, 0xF4, 0xFC,
- 0x92, 0xB6, 0x1F, 0x03, 0x29, 0x0F, 0xB3, 0x81
- },
- {
- 0x72, 0xD3, 0x53, 0x99, 0x4B, 0x49, 0xD3, 0xE0,
- 0x31, 0x53, 0x92, 0x9A, 0x1E, 0x4D, 0x4F, 0x18,
- 0x8E, 0xE5, 0x8A, 0xB9, 0xE7, 0x2E, 0xE8, 0xE5,
- 0x12, 0xF2, 0x9B, 0xC7, 0x73, 0x91, 0x38, 0x19,
- 0xCE, 0x05, 0x7D, 0xDD, 0x70, 0x02, 0xC0, 0x43,
- 0x3E, 0xE0, 0xA1, 0x61, 0x14, 0xE3, 0xD1, 0x56,
- 0xDD, 0x2C, 0x4A, 0x7E, 0x80, 0xEE, 0x53, 0x37,
- 0x8B, 0x86, 0x70, 0xF2, 0x3E, 0x33, 0xEF, 0x56
- },
- {
- 0xC7, 0x0E, 0xF9, 0xBF, 0xD7, 0x75, 0xD4, 0x08,
- 0x17, 0x67, 0x37, 0xA0, 0x73, 0x6D, 0x68, 0x51,
- 0x7C, 0xE1, 0xAA, 0xAD, 0x7E, 0x81, 0xA9, 0x3C,
- 0x8C, 0x1E, 0xD9, 0x67, 0xEA, 0x21, 0x4F, 0x56,
- 0xC8, 0xA3, 0x77, 0xB1, 0x76, 0x3E, 0x67, 0x66,
- 0x15, 0xB6, 0x0F, 0x39, 0x88, 0x24, 0x1E, 0xAE,
- 0x6E, 0xAB, 0x96, 0x85, 0xA5, 0x12, 0x49, 0x29,
- 0xD2, 0x81, 0x88, 0xF2, 0x9E, 0xAB, 0x06, 0xF7
- },
- {
- 0xC2, 0x30, 0xF0, 0x80, 0x26, 0x79, 0xCB, 0x33,
- 0x82, 0x2E, 0xF8, 0xB3, 0xB2, 0x1B, 0xF7, 0xA9,
- 0xA2, 0x89, 0x42, 0x09, 0x29, 0x01, 0xD7, 0xDA,
- 0xC3, 0x76, 0x03, 0x00, 0x83, 0x10, 0x26, 0xCF,
- 0x35, 0x4C, 0x92, 0x32, 0xDF, 0x3E, 0x08, 0x4D,
- 0x99, 0x03, 0x13, 0x0C, 0x60, 0x1F, 0x63, 0xC1,
- 0xF4, 0xA4, 0xA4, 0xB8, 0x10, 0x6E, 0x46, 0x8C,
- 0xD4, 0x43, 0xBB, 0xE5, 0xA7, 0x34, 0xF4, 0x5F
- },
- {
- 0x6F, 0x43, 0x09, 0x4C, 0xAF, 0xB5, 0xEB, 0xF1,
- 0xF7, 0xA4, 0x93, 0x7E, 0xC5, 0x0F, 0x56, 0xA4,
- 0xC9, 0xDA, 0x30, 0x3C, 0xBB, 0x55, 0xAC, 0x1F,
- 0x27, 0xF1, 0xF1, 0x97, 0x6C, 0xD9, 0x6B, 0xED,
- 0xA9, 0x46, 0x4F, 0x0E, 0x7B, 0x9C, 0x54, 0x62,
- 0x0B, 0x8A, 0x9F, 0xBA, 0x98, 0x31, 0x64, 0xB8,
- 0xBE, 0x35, 0x78, 0x42, 0x5A, 0x02, 0x4F, 0x5F,
- 0xE1, 0x99, 0xC3, 0x63, 0x56, 0xB8, 0x89, 0x72
- },
- {
- 0x37, 0x45, 0x27, 0x3F, 0x4C, 0x38, 0x22, 0x5D,
- 0xB2, 0x33, 0x73, 0x81, 0x87, 0x1A, 0x0C, 0x6A,
- 0xAF, 0xD3, 0xAF, 0x9B, 0x01, 0x8C, 0x88, 0xAA,
- 0x02, 0x02, 0x58, 0x50, 0xA5, 0xDC, 0x3A, 0x42,
- 0xA1, 0xA3, 0xE0, 0x3E, 0x56, 0xCB, 0xF1, 0xB0,
- 0x87, 0x6D, 0x63, 0xA4, 0x41, 0xF1, 0xD2, 0x85,
- 0x6A, 0x39, 0xB8, 0x80, 0x1E, 0xB5, 0xAF, 0x32,
- 0x52, 0x01, 0xC4, 0x15, 0xD6, 0x5E, 0x97, 0xFE
- },
- {
- 0xC5, 0x0C, 0x44, 0xCC, 0xA3, 0xEC, 0x3E, 0xDA,
- 0xAE, 0x77, 0x9A, 0x7E, 0x17, 0x94, 0x50, 0xEB,
- 0xDD, 0xA2, 0xF9, 0x70, 0x67, 0xC6, 0x90, 0xAA,
- 0x6C, 0x5A, 0x4A, 0xC7, 0xC3, 0x01, 0x39, 0xBB,
- 0x27, 0xC0, 0xDF, 0x4D, 0xB3, 0x22, 0x0E, 0x63,
- 0xCB, 0x11, 0x0D, 0x64, 0xF3, 0x7F, 0xFE, 0x07,
- 0x8D, 0xB7, 0x26, 0x53, 0xE2, 0xDA, 0xAC, 0xF9,
- 0x3A, 0xE3, 0xF0, 0xA2, 0xD1, 0xA7, 0xEB, 0x2E
- },
- {
- 0x8A, 0xEF, 0x26, 0x3E, 0x38, 0x5C, 0xBC, 0x61,
- 0xE1, 0x9B, 0x28, 0x91, 0x42, 0x43, 0x26, 0x2A,
- 0xF5, 0xAF, 0xE8, 0x72, 0x6A, 0xF3, 0xCE, 0x39,
- 0xA7, 0x9C, 0x27, 0x02, 0x8C, 0xF3, 0xEC, 0xD3,
- 0xF8, 0xD2, 0xDF, 0xD9, 0xCF, 0xC9, 0xAD, 0x91,
- 0xB5, 0x8F, 0x6F, 0x20, 0x77, 0x8F, 0xD5, 0xF0,
- 0x28, 0x94, 0xA3, 0xD9, 0x1C, 0x7D, 0x57, 0xD1,
- 0xE4, 0xB8, 0x66, 0xA7, 0xF3, 0x64, 0xB6, 0xBE
- },
- {
- 0x28, 0x69, 0x61, 0x41, 0xDE, 0x6E, 0x2D, 0x9B,
- 0xCB, 0x32, 0x35, 0x57, 0x8A, 0x66, 0x16, 0x6C,
- 0x14, 0x48, 0xD3, 0xE9, 0x05, 0xA1, 0xB4, 0x82,
- 0xD4, 0x23, 0xBE, 0x4B, 0xC5, 0x36, 0x9B, 0xC8,
- 0xC7, 0x4D, 0xAE, 0x0A, 0xCC, 0x9C, 0xC1, 0x23,
- 0xE1, 0xD8, 0xDD, 0xCE, 0x9F, 0x97, 0x91, 0x7E,
- 0x8C, 0x01, 0x9C, 0x55, 0x2D, 0xA3, 0x2D, 0x39,
- 0xD2, 0x21, 0x9B, 0x9A, 0xBF, 0x0F, 0xA8, 0xC8
- },
- {
- 0x2F, 0xB9, 0xEB, 0x20, 0x85, 0x83, 0x01, 0x81,
- 0x90, 0x3A, 0x9D, 0xAF, 0xE3, 0xDB, 0x42, 0x8E,
- 0xE1, 0x5B, 0xE7, 0x66, 0x22, 0x24, 0xEF, 0xD6,
- 0x43, 0x37, 0x1F, 0xB2, 0x56, 0x46, 0xAE, 0xE7,
- 0x16, 0xE5, 0x31, 0xEC, 0xA6, 0x9B, 0x2B, 0xDC,
- 0x82, 0x33, 0xF1, 0xA8, 0x08, 0x1F, 0xA4, 0x3D,
- 0xA1, 0x50, 0x03, 0x02, 0x97, 0x5A, 0x77, 0xF4,
- 0x2F, 0xA5, 0x92, 0x13, 0x67, 0x10, 0xE9, 0xDC
- },
- {
- 0x66, 0xF9, 0xA7, 0x14, 0x3F, 0x7A, 0x33, 0x14,
- 0xA6, 0x69, 0xBF, 0x2E, 0x24, 0xBB, 0xB3, 0x50,
- 0x14, 0x26, 0x1D, 0x63, 0x9F, 0x49, 0x5B, 0x6C,
- 0x9C, 0x1F, 0x10, 0x4F, 0xE8, 0xE3, 0x20, 0xAC,
- 0xA6, 0x0D, 0x45, 0x50, 0xD6, 0x9D, 0x52, 0xED,
- 0xBD, 0x5A, 0x3C, 0xDE, 0xB4, 0x01, 0x4A, 0xE6,
- 0x5B, 0x1D, 0x87, 0xAA, 0x77, 0x0B, 0x69, 0xAE,
- 0x5C, 0x15, 0xF4, 0x33, 0x0B, 0x0B, 0x0A, 0xD8
- },
- {
- 0xF4, 0xC4, 0xDD, 0x1D, 0x59, 0x4C, 0x35, 0x65,
- 0xE3, 0xE2, 0x5C, 0xA4, 0x3D, 0xAD, 0x82, 0xF6,
- 0x2A, 0xBE, 0xA4, 0x83, 0x5E, 0xD4, 0xCD, 0x81,
- 0x1B, 0xCD, 0x97, 0x5E, 0x46, 0x27, 0x98, 0x28,
- 0xD4, 0x4D, 0x4C, 0x62, 0xC3, 0x67, 0x9F, 0x1B,
- 0x7F, 0x7B, 0x9D, 0xD4, 0x57, 0x1D, 0x7B, 0x49,
- 0x55, 0x73, 0x47, 0xB8, 0xC5, 0x46, 0x0C, 0xBD,
- 0xC1, 0xBE, 0xF6, 0x90, 0xFB, 0x2A, 0x08, 0xC0
- },
- {
- 0x8F, 0x1D, 0xC9, 0x64, 0x9C, 0x3A, 0x84, 0x55,
- 0x1F, 0x8F, 0x6E, 0x91, 0xCA, 0xC6, 0x82, 0x42,
- 0xA4, 0x3B, 0x1F, 0x8F, 0x32, 0x8E, 0xE9, 0x22,
- 0x80, 0x25, 0x73, 0x87, 0xFA, 0x75, 0x59, 0xAA,
- 0x6D, 0xB1, 0x2E, 0x4A, 0xEA, 0xDC, 0x2D, 0x26,
- 0x09, 0x91, 0x78, 0x74, 0x9C, 0x68, 0x64, 0xB3,
- 0x57, 0xF3, 0xF8, 0x3B, 0x2F, 0xB3, 0xEF, 0xA8,
- 0xD2, 0xA8, 0xDB, 0x05, 0x6B, 0xED, 0x6B, 0xCC
- },
- {
- 0x31, 0x39, 0xC1, 0xA7, 0xF9, 0x7A, 0xFD, 0x16,
- 0x75, 0xD4, 0x60, 0xEB, 0xBC, 0x07, 0xF2, 0x72,
- 0x8A, 0xA1, 0x50, 0xDF, 0x84, 0x96, 0x24, 0x51,
- 0x1E, 0xE0, 0x4B, 0x74, 0x3B, 0xA0, 0xA8, 0x33,
- 0x09, 0x2F, 0x18, 0xC1, 0x2D, 0xC9, 0x1B, 0x4D,
- 0xD2, 0x43, 0xF3, 0x33, 0x40, 0x2F, 0x59, 0xFE,
- 0x28, 0xAB, 0xDB, 0xBB, 0xAE, 0x30, 0x1E, 0x7B,
- 0x65, 0x9C, 0x7A, 0x26, 0xD5, 0xC0, 0xF9, 0x79
- },
- {
- 0x06, 0xF9, 0x4A, 0x29, 0x96, 0x15, 0x8A, 0x81,
- 0x9F, 0xE3, 0x4C, 0x40, 0xDE, 0x3C, 0xF0, 0x37,
- 0x9F, 0xD9, 0xFB, 0x85, 0xB3, 0xE3, 0x63, 0xBA,
- 0x39, 0x26, 0xA0, 0xE7, 0xD9, 0x60, 0xE3, 0xF4,
- 0xC2, 0xE0, 0xC7, 0x0C, 0x7C, 0xE0, 0xCC, 0xB2,
- 0xA6, 0x4F, 0xC2, 0x98, 0x69, 0xF6, 0xE7, 0xAB,
- 0x12, 0xBD, 0x4D, 0x3F, 0x14, 0xFC, 0xE9, 0x43,
- 0x27, 0x90, 0x27, 0xE7, 0x85, 0xFB, 0x5C, 0x29
- },
- {
- 0xC2, 0x9C, 0x39, 0x9E, 0xF3, 0xEE, 0xE8, 0x96,
- 0x1E, 0x87, 0x56, 0x5C, 0x1C, 0xE2, 0x63, 0x92,
- 0x5F, 0xC3, 0xD0, 0xCE, 0x26, 0x7D, 0x13, 0xE4,
- 0x8D, 0xD9, 0xE7, 0x32, 0xEE, 0x67, 0xB0, 0xF6,
- 0x9F, 0xAD, 0x56, 0x40, 0x1B, 0x0F, 0x10, 0xFC,
- 0xAA, 0xC1, 0x19, 0x20, 0x10, 0x46, 0xCC, 0xA2,
- 0x8C, 0x5B, 0x14, 0xAB, 0xDE, 0xA3, 0x21, 0x2A,
- 0xE6, 0x55, 0x62, 0xF7, 0xF1, 0x38, 0xDB, 0x3D
- },
- {
- 0x4C, 0xEC, 0x4C, 0x9D, 0xF5, 0x2E, 0xEF, 0x05,
- 0xC3, 0xF6, 0xFA, 0xAA, 0x97, 0x91, 0xBC, 0x74,
- 0x45, 0x93, 0x71, 0x83, 0x22, 0x4E, 0xCC, 0x37,
- 0xA1, 0xE5, 0x8D, 0x01, 0x32, 0xD3, 0x56, 0x17,
- 0x53, 0x1D, 0x7E, 0x79, 0x5F, 0x52, 0xAF, 0x7B,
- 0x1E, 0xB9, 0xD1, 0x47, 0xDE, 0x12, 0x92, 0xD3,
- 0x45, 0xFE, 0x34, 0x18, 0x23, 0xF8, 0xE6, 0xBC,
- 0x1E, 0x5B, 0xAD, 0xCA, 0x5C, 0x65, 0x61, 0x08
- },
- {
- 0x89, 0x8B, 0xFB, 0xAE, 0x93, 0xB3, 0xE1, 0x8D,
- 0x00, 0x69, 0x7E, 0xAB, 0x7D, 0x97, 0x04, 0xFA,
- 0x36, 0xEC, 0x33, 0x9D, 0x07, 0x61, 0x31, 0xCE,
- 0xFD, 0xF3, 0x0E, 0xDB, 0xE8, 0xD9, 0xCC, 0x81,
- 0xC3, 0xA8, 0x0B, 0x12, 0x96, 0x59, 0xB1, 0x63,
- 0xA3, 0x23, 0xBA, 0xB9, 0x79, 0x3D, 0x4F, 0xEE,
- 0xD9, 0x2D, 0x54, 0xDA, 0xE9, 0x66, 0xC7, 0x75,
- 0x29, 0x76, 0x4A, 0x09, 0xBE, 0x88, 0xDB, 0x45
- },
- {
- 0xEE, 0x9B, 0xD0, 0x46, 0x9D, 0x3A, 0xAF, 0x4F,
- 0x14, 0x03, 0x5B, 0xE4, 0x8A, 0x2C, 0x3B, 0x84,
- 0xD9, 0xB4, 0xB1, 0xFF, 0xF1, 0xD9, 0x45, 0xE1,
- 0xF1, 0xC1, 0xD3, 0x89, 0x80, 0xA9, 0x51, 0xBE,
- 0x19, 0x7B, 0x25, 0xFE, 0x22, 0xC7, 0x31, 0xF2,
- 0x0A, 0xEA, 0xCC, 0x93, 0x0B, 0xA9, 0xC4, 0xA1,
- 0xF4, 0x76, 0x22, 0x27, 0x61, 0x7A, 0xD3, 0x50,
- 0xFD, 0xAB, 0xB4, 0xE8, 0x02, 0x73, 0xA0, 0xF4
- },
- {
- 0x3D, 0x4D, 0x31, 0x13, 0x30, 0x05, 0x81, 0xCD,
- 0x96, 0xAC, 0xBF, 0x09, 0x1C, 0x3D, 0x0F, 0x3C,
- 0x31, 0x01, 0x38, 0xCD, 0x69, 0x79, 0xE6, 0x02,
- 0x6C, 0xDE, 0x62, 0x3E, 0x2D, 0xD1, 0xB2, 0x4D,
- 0x4A, 0x86, 0x38, 0xBE, 0xD1, 0x07, 0x33, 0x44,
- 0x78, 0x3A, 0xD0, 0x64, 0x9C, 0xC6, 0x30, 0x5C,
- 0xCE, 0xC0, 0x4B, 0xEB, 0x49, 0xF3, 0x1C, 0x63,
- 0x30, 0x88, 0xA9, 0x9B, 0x65, 0x13, 0x02, 0x67
- },
- {
- 0x95, 0xC0, 0x59, 0x1A, 0xD9, 0x1F, 0x92, 0x1A,
- 0xC7, 0xBE, 0x6D, 0x9C, 0xE3, 0x7E, 0x06, 0x63,
- 0xED, 0x80, 0x11, 0xC1, 0xCF, 0xD6, 0xD0, 0x16,
- 0x2A, 0x55, 0x72, 0xE9, 0x43, 0x68, 0xBA, 0xC0,
- 0x20, 0x24, 0x48, 0x5E, 0x6A, 0x39, 0x85, 0x4A,
- 0xA4, 0x6F, 0xE3, 0x8E, 0x97, 0xD6, 0xC6, 0xB1,
- 0x94, 0x7C, 0xD2, 0x72, 0xD8, 0x6B, 0x06, 0xBB,
- 0x5B, 0x2F, 0x78, 0xB9, 0xB6, 0x8D, 0x55, 0x9D
- },
- {
- 0x22, 0x7B, 0x79, 0xDE, 0xD3, 0x68, 0x15, 0x3B,
- 0xF4, 0x6C, 0x0A, 0x3C, 0xA9, 0x78, 0xBF, 0xDB,
- 0xEF, 0x31, 0xF3, 0x02, 0x4A, 0x56, 0x65, 0x84,
- 0x24, 0x68, 0x49, 0x0B, 0x0F, 0xF7, 0x48, 0xAE,
- 0x04, 0xE7, 0x83, 0x2E, 0xD4, 0xC9, 0xF4, 0x9D,
- 0xE9, 0xB1, 0x70, 0x67, 0x09, 0xD6, 0x23, 0xE5,
- 0xC8, 0xC1, 0x5E, 0x3C, 0xAE, 0xCA, 0xE8, 0xD5,
- 0xE4, 0x33, 0x43, 0x0F, 0xF7, 0x2F, 0x20, 0xEB
- },
- {
- 0x5D, 0x34, 0xF3, 0x95, 0x2F, 0x01, 0x05, 0xEE,
- 0xF8, 0x8A, 0xE8, 0xB6, 0x4C, 0x6C, 0xE9, 0x5E,
- 0xBF, 0xAD, 0xE0, 0xE0, 0x2C, 0x69, 0xB0, 0x87,
- 0x62, 0xA8, 0x71, 0x2D, 0x2E, 0x49, 0x11, 0xAD,
- 0x3F, 0x94, 0x1F, 0xC4, 0x03, 0x4D, 0xC9, 0xB2,
- 0xE4, 0x79, 0xFD, 0xBC, 0xD2, 0x79, 0xB9, 0x02,
- 0xFA, 0xF5, 0xD8, 0x38, 0xBB, 0x2E, 0x0C, 0x64,
- 0x95, 0xD3, 0x72, 0xB5, 0xB7, 0x02, 0x98, 0x13
- },
- {
- 0x7F, 0x93, 0x9B, 0xF8, 0x35, 0x3A, 0xBC, 0xE4,
- 0x9E, 0x77, 0xF1, 0x4F, 0x37, 0x50, 0xAF, 0x20,
- 0xB7, 0xB0, 0x39, 0x02, 0xE1, 0xA1, 0xE7, 0xFB,
- 0x6A, 0xAF, 0x76, 0xD0, 0x25, 0x9C, 0xD4, 0x01,
- 0xA8, 0x31, 0x90, 0xF1, 0x56, 0x40, 0xE7, 0x4F,
- 0x3E, 0x6C, 0x5A, 0x90, 0xE8, 0x39, 0xC7, 0x82,
- 0x1F, 0x64, 0x74, 0x75, 0x7F, 0x75, 0xC7, 0xBF,
- 0x90, 0x02, 0x08, 0x4D, 0xDC, 0x7A, 0x62, 0xDC
- },
- {
- 0x06, 0x2B, 0x61, 0xA2, 0xF9, 0xA3, 0x3A, 0x71,
- 0xD7, 0xD0, 0xA0, 0x61, 0x19, 0x64, 0x4C, 0x70,
- 0xB0, 0x71, 0x6A, 0x50, 0x4D, 0xE7, 0xE5, 0xE1,
- 0xBE, 0x49, 0xBD, 0x7B, 0x86, 0xE7, 0xED, 0x68,
- 0x17, 0x71, 0x4F, 0x9F, 0x0F, 0xC3, 0x13, 0xD0,
- 0x61, 0x29, 0x59, 0x7E, 0x9A, 0x22, 0x35, 0xEC,
- 0x85, 0x21, 0xDE, 0x36, 0xF7, 0x29, 0x0A, 0x90,
- 0xCC, 0xFC, 0x1F, 0xFA, 0x6D, 0x0A, 0xEE, 0x29
- },
- {
- 0xF2, 0x9E, 0x01, 0xEE, 0xAE, 0x64, 0x31, 0x1E,
- 0xB7, 0xF1, 0xC6, 0x42, 0x2F, 0x94, 0x6B, 0xF7,
- 0xBE, 0xA3, 0x63, 0x79, 0x52, 0x3E, 0x7B, 0x2B,
- 0xBA, 0xBA, 0x7D, 0x1D, 0x34, 0xA2, 0x2D, 0x5E,
- 0xA5, 0xF1, 0xC5, 0xA0, 0x9D, 0x5C, 0xE1, 0xFE,
- 0x68, 0x2C, 0xCE, 0xD9, 0xA4, 0x79, 0x8D, 0x1A,
- 0x05, 0xB4, 0x6C, 0xD7, 0x2D, 0xFF, 0x5C, 0x1B,
- 0x35, 0x54, 0x40, 0xB2, 0xA2, 0xD4, 0x76, 0xBC
- },
- {
- 0xEC, 0x38, 0xCD, 0x3B, 0xBA, 0xB3, 0xEF, 0x35,
- 0xD7, 0xCB, 0x6D, 0x5C, 0x91, 0x42, 0x98, 0x35,
- 0x1D, 0x8A, 0x9D, 0xC9, 0x7F, 0xCE, 0xE0, 0x51,
- 0xA8, 0xA0, 0x2F, 0x58, 0xE3, 0xED, 0x61, 0x84,
- 0xD0, 0xB7, 0x81, 0x0A, 0x56, 0x15, 0x41, 0x1A,
- 0xB1, 0xB9, 0x52, 0x09, 0xC3, 0xC8, 0x10, 0x11,
- 0x4F, 0xDE, 0xB2, 0x24, 0x52, 0x08, 0x4E, 0x77,
- 0xF3, 0xF8, 0x47, 0xC6, 0xDB, 0xAA, 0xFE, 0x16
- },
- {
- 0xC2, 0xAE, 0xF5, 0xE0, 0xCA, 0x43, 0xE8, 0x26,
- 0x41, 0x56, 0x5B, 0x8C, 0xB9, 0x43, 0xAA, 0x8B,
- 0xA5, 0x35, 0x50, 0xCA, 0xEF, 0x79, 0x3B, 0x65,
- 0x32, 0xFA, 0xFA, 0xD9, 0x4B, 0x81, 0x60, 0x82,
- 0xF0, 0x11, 0x3A, 0x3E, 0xA2, 0xF6, 0x36, 0x08,
- 0xAB, 0x40, 0x43, 0x7E, 0xCC, 0x0F, 0x02, 0x29,
- 0xCB, 0x8F, 0xA2, 0x24, 0xDC, 0xF1, 0xC4, 0x78,
- 0xA6, 0x7D, 0x9B, 0x64, 0x16, 0x2B, 0x92, 0xD1
- },
- {
- 0x15, 0xF5, 0x34, 0xEF, 0xFF, 0x71, 0x05, 0xCD,
- 0x1C, 0x25, 0x4D, 0x07, 0x4E, 0x27, 0xD5, 0x89,
- 0x8B, 0x89, 0x31, 0x3B, 0x7D, 0x36, 0x6D, 0xC2,
- 0xD7, 0xD8, 0x71, 0x13, 0xFA, 0x7D, 0x53, 0xAA,
- 0xE1, 0x3F, 0x6D, 0xBA, 0x48, 0x7A, 0xD8, 0x10,
- 0x3D, 0x5E, 0x85, 0x4C, 0x91, 0xFD, 0xB6, 0xE1,
- 0xE7, 0x4B, 0x2E, 0xF6, 0xD1, 0x43, 0x17, 0x69,
- 0xC3, 0x07, 0x67, 0xDD, 0xE0, 0x67, 0xA3, 0x5C
- },
- {
- 0x89, 0xAC, 0xBC, 0xA0, 0xB1, 0x69, 0x89, 0x7A,
- 0x0A, 0x27, 0x14, 0xC2, 0xDF, 0x8C, 0x95, 0xB5,
- 0xB7, 0x9C, 0xB6, 0x93, 0x90, 0x14, 0x2B, 0x7D,
- 0x60, 0x18, 0xBB, 0x3E, 0x30, 0x76, 0xB0, 0x99,
- 0xB7, 0x9A, 0x96, 0x41, 0x52, 0xA9, 0xD9, 0x12,
- 0xB1, 0xB8, 0x64, 0x12, 0xB7, 0xE3, 0x72, 0xE9,
- 0xCE, 0xCA, 0xD7, 0xF2, 0x5D, 0x4C, 0xBA, 0xB8,
- 0xA3, 0x17, 0xBE, 0x36, 0x49, 0x2A, 0x67, 0xD7
- },
- {
- 0xE3, 0xC0, 0x73, 0x91, 0x90, 0xED, 0x84, 0x9C,
- 0x9C, 0x96, 0x2F, 0xD9, 0xDB, 0xB5, 0x5E, 0x20,
- 0x7E, 0x62, 0x4F, 0xCA, 0xC1, 0xEB, 0x41, 0x76,
- 0x91, 0x51, 0x54, 0x99, 0xEE, 0xA8, 0xD8, 0x26,
- 0x7B, 0x7E, 0x8F, 0x12, 0x87, 0xA6, 0x36, 0x33,
- 0xAF, 0x50, 0x11, 0xFD, 0xE8, 0xC4, 0xDD, 0xF5,
- 0x5B, 0xFD, 0xF7, 0x22, 0xED, 0xF8, 0x88, 0x31,
- 0x41, 0x4F, 0x2C, 0xFA, 0xED, 0x59, 0xCB, 0x9A
- },
- {
- 0x8D, 0x6C, 0xF8, 0x7C, 0x08, 0x38, 0x0D, 0x2D,
- 0x15, 0x06, 0xEE, 0xE4, 0x6F, 0xD4, 0x22, 0x2D,
- 0x21, 0xD8, 0xC0, 0x4E, 0x58, 0x5F, 0xBF, 0xD0,
- 0x82, 0x69, 0xC9, 0x8F, 0x70, 0x28, 0x33, 0xA1,
- 0x56, 0x32, 0x6A, 0x07, 0x24, 0x65, 0x64, 0x00,
- 0xEE, 0x09, 0x35, 0x1D, 0x57, 0xB4, 0x40, 0x17,
- 0x5E, 0x2A, 0x5D, 0xE9, 0x3C, 0xC5, 0xF8, 0x0D,
- 0xB6, 0xDA, 0xF8, 0x35, 0x76, 0xCF, 0x75, 0xFA
- },
- {
- 0xDA, 0x24, 0xBE, 0xDE, 0x38, 0x36, 0x66, 0xD5,
- 0x63, 0xEE, 0xED, 0x37, 0xF6, 0x31, 0x9B, 0xAF,
- 0x20, 0xD5, 0xC7, 0x5D, 0x16, 0x35, 0xA6, 0xBA,
- 0x5E, 0xF4, 0xCF, 0xA1, 0xAC, 0x95, 0x48, 0x7E,
- 0x96, 0xF8, 0xC0, 0x8A, 0xF6, 0x00, 0xAA, 0xB8,
- 0x7C, 0x98, 0x6E, 0xBA, 0xD4, 0x9F, 0xC7, 0x0A,
- 0x58, 0xB4, 0x89, 0x0B, 0x9C, 0x87, 0x6E, 0x09,
- 0x10, 0x16, 0xDA, 0xF4, 0x9E, 0x1D, 0x32, 0x2E
- },
- {
- 0xF9, 0xD1, 0xD1, 0xB1, 0xE8, 0x7E, 0xA7, 0xAE,
- 0x75, 0x3A, 0x02, 0x97, 0x50, 0xCC, 0x1C, 0xF3,
- 0xD0, 0x15, 0x7D, 0x41, 0x80, 0x5E, 0x24, 0x5C,
- 0x56, 0x17, 0xBB, 0x93, 0x4E, 0x73, 0x2F, 0x0A,
- 0xE3, 0x18, 0x0B, 0x78, 0xE0, 0x5B, 0xFE, 0x76,
- 0xC7, 0xC3, 0x05, 0x1E, 0x3E, 0x3A, 0xC7, 0x8B,
- 0x9B, 0x50, 0xC0, 0x51, 0x42, 0x65, 0x7E, 0x1E,
- 0x03, 0x21, 0x5D, 0x6E, 0xC7, 0xBF, 0xD0, 0xFC
- },
- {
- 0x11, 0xB7, 0xBC, 0x16, 0x68, 0x03, 0x20, 0x48,
- 0xAA, 0x43, 0x34, 0x3D, 0xE4, 0x76, 0x39, 0x5E,
- 0x81, 0x4B, 0xBB, 0xC2, 0x23, 0x67, 0x8D, 0xB9,
- 0x51, 0xA1, 0xB0, 0x3A, 0x02, 0x1E, 0xFA, 0xC9,
- 0x48, 0xCF, 0xBE, 0x21, 0x5F, 0x97, 0xFE, 0x9A,
- 0x72, 0xA2, 0xF6, 0xBC, 0x03, 0x9E, 0x39, 0x56,
- 0xBF, 0xA4, 0x17, 0xC1, 0xA9, 0xF1, 0x0D, 0x6D,
- 0x7B, 0xA5, 0xD3, 0xD3, 0x2F, 0xF3, 0x23, 0xE5
- },
- {
- 0xB8, 0xD9, 0x00, 0x0E, 0x4F, 0xC2, 0xB0, 0x66,
- 0xED, 0xB9, 0x1A, 0xFE, 0xE8, 0xE7, 0xEB, 0x0F,
- 0x24, 0xE3, 0xA2, 0x01, 0xDB, 0x8B, 0x67, 0x93,
- 0xC0, 0x60, 0x85, 0x81, 0xE6, 0x28, 0xED, 0x0B,
- 0xCC, 0x4E, 0x5A, 0xA6, 0x78, 0x79, 0x92, 0xA4,
- 0xBC, 0xC4, 0x4E, 0x28, 0x80, 0x93, 0xE6, 0x3E,
- 0xE8, 0x3A, 0xBD, 0x0B, 0xC3, 0xEC, 0x6D, 0x09,
- 0x34, 0xA6, 0x74, 0xA4, 0xDA, 0x13, 0x83, 0x8A
- },
- {
- 0xCE, 0x32, 0x5E, 0x29, 0x4F, 0x9B, 0x67, 0x19,
- 0xD6, 0xB6, 0x12, 0x78, 0x27, 0x6A, 0xE0, 0x6A,
- 0x25, 0x64, 0xC0, 0x3B, 0xB0, 0xB7, 0x83, 0xFA,
- 0xFE, 0x78, 0x5B, 0xDF, 0x89, 0xC7, 0xD5, 0xAC,
- 0xD8, 0x3E, 0x78, 0x75, 0x6D, 0x30, 0x1B, 0x44,
- 0x56, 0x99, 0x02, 0x4E, 0xAE, 0xB7, 0x7B, 0x54,
- 0xD4, 0x77, 0x33, 0x6E, 0xC2, 0xA4, 0xF3, 0x32,
- 0xF2, 0xB3, 0xF8, 0x87, 0x65, 0xDD, 0xB0, 0xC3
- },
- {
- 0x29, 0xAC, 0xC3, 0x0E, 0x96, 0x03, 0xAE, 0x2F,
- 0xCC, 0xF9, 0x0B, 0xF9, 0x7E, 0x6C, 0xC4, 0x63,
- 0xEB, 0xE2, 0x8C, 0x1B, 0x2F, 0x9B, 0x4B, 0x76,
- 0x5E, 0x70, 0x53, 0x7C, 0x25, 0xC7, 0x02, 0xA2,
- 0x9D, 0xCB, 0xFB, 0xF1, 0x4C, 0x99, 0xC5, 0x43,
- 0x45, 0xBA, 0x2B, 0x51, 0xF1, 0x7B, 0x77, 0xB5,
- 0xF1, 0x5D, 0xB9, 0x2B, 0xBA, 0xD8, 0xFA, 0x95,
- 0xC4, 0x71, 0xF5, 0xD0, 0x70, 0xA1, 0x37, 0xCC
- },
- {
- 0x33, 0x79, 0xCB, 0xAA, 0xE5, 0x62, 0xA8, 0x7B,
- 0x4C, 0x04, 0x25, 0x55, 0x0F, 0xFD, 0xD6, 0xBF,
- 0xE1, 0x20, 0x3F, 0x0D, 0x66, 0x6C, 0xC7, 0xEA,
- 0x09, 0x5B, 0xE4, 0x07, 0xA5, 0xDF, 0xE6, 0x1E,
- 0xE9, 0x14, 0x41, 0xCD, 0x51, 0x54, 0xB3, 0xE5,
- 0x3B, 0x4F, 0x5F, 0xB3, 0x1A, 0xD4, 0xC7, 0xA9,
- 0xAD, 0x5C, 0x7A, 0xF4, 0xAE, 0x67, 0x9A, 0xA5,
- 0x1A, 0x54, 0x00, 0x3A, 0x54, 0xCA, 0x6B, 0x2D
- },
- {
- 0x30, 0x95, 0xA3, 0x49, 0xD2, 0x45, 0x70, 0x8C,
- 0x7C, 0xF5, 0x50, 0x11, 0x87, 0x03, 0xD7, 0x30,
- 0x2C, 0x27, 0xB6, 0x0A, 0xF5, 0xD4, 0xE6, 0x7F,
- 0xC9, 0x78, 0xF8, 0xA4, 0xE6, 0x09, 0x53, 0xC7,
- 0xA0, 0x4F, 0x92, 0xFC, 0xF4, 0x1A, 0xEE, 0x64,
- 0x32, 0x1C, 0xCB, 0x70, 0x7A, 0x89, 0x58, 0x51,
- 0x55, 0x2B, 0x1E, 0x37, 0xB0, 0x0B, 0xC5, 0xE6,
- 0xB7, 0x2F, 0xA5, 0xBC, 0xEF, 0x9E, 0x3F, 0xFF
- },
- {
- 0x07, 0x26, 0x2D, 0x73, 0x8B, 0x09, 0x32, 0x1F,
- 0x4D, 0xBC, 0xCE, 0xC4, 0xBB, 0x26, 0xF4, 0x8C,
- 0xB0, 0xF0, 0xED, 0x24, 0x6C, 0xE0, 0xB3, 0x1B,
- 0x9A, 0x6E, 0x7B, 0xC6, 0x83, 0x04, 0x9F, 0x1F,
- 0x3E, 0x55, 0x45, 0xF2, 0x8C, 0xE9, 0x32, 0xDD,
- 0x98, 0x5C, 0x5A, 0xB0, 0xF4, 0x3B, 0xD6, 0xDE,
- 0x07, 0x70, 0x56, 0x0A, 0xF3, 0x29, 0x06, 0x5E,
- 0xD2, 0xE4, 0x9D, 0x34, 0x62, 0x4C, 0x2C, 0xBB
- },
- {
- 0xB6, 0x40, 0x5E, 0xCA, 0x8E, 0xE3, 0x31, 0x6C,
- 0x87, 0x06, 0x1C, 0xC6, 0xEC, 0x18, 0xDB, 0xA5,
- 0x3E, 0x6C, 0x25, 0x0C, 0x63, 0xBA, 0x1F, 0x3B,
- 0xAE, 0x9E, 0x55, 0xDD, 0x34, 0x98, 0x03, 0x6A,
- 0xF0, 0x8C, 0xD2, 0x72, 0xAA, 0x24, 0xD7, 0x13,
- 0xC6, 0x02, 0x0D, 0x77, 0xAB, 0x2F, 0x39, 0x19,
- 0xAF, 0x1A, 0x32, 0xF3, 0x07, 0x42, 0x06, 0x18,
- 0xAB, 0x97, 0xE7, 0x39, 0x53, 0x99, 0x4F, 0xB4
- },
- {
- 0x7E, 0xE6, 0x82, 0xF6, 0x31, 0x48, 0xEE, 0x45,
- 0xF6, 0xE5, 0x31, 0x5D, 0xA8, 0x1E, 0x5C, 0x6E,
- 0x55, 0x7C, 0x2C, 0x34, 0x64, 0x1F, 0xC5, 0x09,
- 0xC7, 0xA5, 0x70, 0x10, 0x88, 0xC3, 0x8A, 0x74,
- 0x75, 0x61, 0x68, 0xE2, 0xCD, 0x8D, 0x35, 0x1E,
- 0x88, 0xFD, 0x1A, 0x45, 0x1F, 0x36, 0x0A, 0x01,
- 0xF5, 0xB2, 0x58, 0x0F, 0x9B, 0x5A, 0x2E, 0x8C,
- 0xFC, 0x13, 0x8F, 0x3D, 0xD5, 0x9A, 0x3F, 0xFC
- },
- {
- 0x1D, 0x26, 0x3C, 0x17, 0x9D, 0x6B, 0x26, 0x8F,
- 0x6F, 0xA0, 0x16, 0xF3, 0xA4, 0xF2, 0x9E, 0x94,
- 0x38, 0x91, 0x12, 0x5E, 0xD8, 0x59, 0x3C, 0x81,
- 0x25, 0x60, 0x59, 0xF5, 0xA7, 0xB4, 0x4A, 0xF2,
- 0xDC, 0xB2, 0x03, 0x0D, 0x17, 0x5C, 0x00, 0xE6,
- 0x2E, 0xCA, 0xF7, 0xEE, 0x96, 0x68, 0x2A, 0xA0,
- 0x7A, 0xB2, 0x0A, 0x61, 0x10, 0x24, 0xA2, 0x85,
- 0x32, 0xB1, 0xC2, 0x5B, 0x86, 0x65, 0x79, 0x02
- },
- {
- 0x10, 0x6D, 0x13, 0x2C, 0xBD, 0xB4, 0xCD, 0x25,
- 0x97, 0x81, 0x28, 0x46, 0xE2, 0xBC, 0x1B, 0xF7,
- 0x32, 0xFE, 0xC5, 0xF0, 0xA5, 0xF6, 0x5D, 0xBB,
- 0x39, 0xEC, 0x4E, 0x6D, 0xC6, 0x4A, 0xB2, 0xCE,
- 0x6D, 0x24, 0x63, 0x0D, 0x0F, 0x15, 0xA8, 0x05,
- 0xC3, 0x54, 0x00, 0x25, 0xD8, 0x4A, 0xFA, 0x98,
- 0xE3, 0x67, 0x03, 0xC3, 0xDB, 0xEE, 0x71, 0x3E,
- 0x72, 0xDD, 0xE8, 0x46, 0x5B, 0xC1, 0xBE, 0x7E
- },
- {
- 0x0E, 0x79, 0x96, 0x82, 0x26, 0x65, 0x06, 0x67,
- 0xA8, 0xD8, 0x62, 0xEA, 0x8D, 0xA4, 0x89, 0x1A,
- 0xF5, 0x6A, 0x4E, 0x3A, 0x8B, 0x6D, 0x17, 0x50,
- 0xE3, 0x94, 0xF0, 0xDE, 0xA7, 0x6D, 0x64, 0x0D,
- 0x85, 0x07, 0x7B, 0xCE, 0xC2, 0xCC, 0x86, 0x88,
- 0x6E, 0x50, 0x67, 0x51, 0xB4, 0xF6, 0xA5, 0x83,
- 0x8F, 0x7F, 0x0B, 0x5F, 0xEF, 0x76, 0x5D, 0x9D,
- 0xC9, 0x0D, 0xCD, 0xCB, 0xAF, 0x07, 0x9F, 0x08
- },
- {
- 0x52, 0x11, 0x56, 0xA8, 0x2A, 0xB0, 0xC4, 0xE5,
- 0x66, 0xE5, 0x84, 0x4D, 0x5E, 0x31, 0xAD, 0x9A,
- 0xAF, 0x14, 0x4B, 0xBD, 0x5A, 0x46, 0x4F, 0xDC,
- 0xA3, 0x4D, 0xBD, 0x57, 0x17, 0xE8, 0xFF, 0x71,
- 0x1D, 0x3F, 0xFE, 0xBB, 0xFA, 0x08, 0x5D, 0x67,
- 0xFE, 0x99, 0x6A, 0x34, 0xF6, 0xD3, 0xE4, 0xE6,
- 0x0B, 0x13, 0x96, 0xBF, 0x4B, 0x16, 0x10, 0xC2,
- 0x63, 0xBD, 0xBB, 0x83, 0x4D, 0x56, 0x08, 0x16
- },
- {
- 0x1A, 0xBA, 0x88, 0xBE, 0xFC, 0x55, 0xBC, 0x25,
- 0xEF, 0xBC, 0xE0, 0x2D, 0xB8, 0xB9, 0x93, 0x3E,
- 0x46, 0xF5, 0x76, 0x61, 0xBA, 0xEA, 0xBE, 0xB2,
- 0x1C, 0xC2, 0x57, 0x4D, 0x2A, 0x51, 0x8A, 0x3C,
- 0xBA, 0x5D, 0xC5, 0xA3, 0x8E, 0x49, 0x71, 0x34,
- 0x40, 0xB2, 0x5F, 0x9C, 0x74, 0x4E, 0x75, 0xF6,
- 0xB8, 0x5C, 0x9D, 0x8F, 0x46, 0x81, 0xF6, 0x76,
- 0x16, 0x0F, 0x61, 0x05, 0x35, 0x7B, 0x84, 0x06
- },
- {
- 0x5A, 0x99, 0x49, 0xFC, 0xB2, 0xC4, 0x73, 0xCD,
- 0xA9, 0x68, 0xAC, 0x1B, 0x5D, 0x08, 0x56, 0x6D,
- 0xC2, 0xD8, 0x16, 0xD9, 0x60, 0xF5, 0x7E, 0x63,
- 0xB8, 0x98, 0xFA, 0x70, 0x1C, 0xF8, 0xEB, 0xD3,
- 0xF5, 0x9B, 0x12, 0x4D, 0x95, 0xBF, 0xBB, 0xED,
- 0xC5, 0xF1, 0xCF, 0x0E, 0x17, 0xD5, 0xEA, 0xED,
- 0x0C, 0x02, 0xC5, 0x0B, 0x69, 0xD8, 0xA4, 0x02,
- 0xCA, 0xBC, 0xCA, 0x44, 0x33, 0xB5, 0x1F, 0xD4
- },
- {
- 0xB0, 0xCE, 0xAD, 0x09, 0x80, 0x7C, 0x67, 0x2A,
- 0xF2, 0xEB, 0x2B, 0x0F, 0x06, 0xDD, 0xE4, 0x6C,
- 0xF5, 0x37, 0x0E, 0x15, 0xA4, 0x09, 0x6B, 0x1A,
- 0x7D, 0x7C, 0xBB, 0x36, 0xEC, 0x31, 0xC2, 0x05,
- 0xFB, 0xEF, 0xCA, 0x00, 0xB7, 0xA4, 0x16, 0x2F,
- 0xA8, 0x9F, 0xB4, 0xFB, 0x3E, 0xB7, 0x8D, 0x79,
- 0x77, 0x0C, 0x23, 0xF4, 0x4E, 0x72, 0x06, 0x66,
- 0x4C, 0xE3, 0xCD, 0x93, 0x1C, 0x29, 0x1E, 0x5D
- },
- {
- 0xBB, 0x66, 0x64, 0x93, 0x1E, 0xC9, 0x70, 0x44,
- 0xE4, 0x5B, 0x2A, 0xE4, 0x20, 0xAE, 0x1C, 0x55,
- 0x1A, 0x88, 0x74, 0xBC, 0x93, 0x7D, 0x08, 0xE9,
- 0x69, 0x39, 0x9C, 0x39, 0x64, 0xEB, 0xDB, 0xA8,
- 0x34, 0x6C, 0xDD, 0x5D, 0x09, 0xCA, 0xAF, 0xE4,
- 0xC2, 0x8B, 0xA7, 0xEC, 0x78, 0x81, 0x91, 0xCE,
- 0xCA, 0x65, 0xDD, 0xD6, 0xF9, 0x5F, 0x18, 0x58,
- 0x3E, 0x04, 0x0D, 0x0F, 0x30, 0xD0, 0x36, 0x4D
- },
- {
- 0x65, 0xBC, 0x77, 0x0A, 0x5F, 0xAA, 0x37, 0x92,
- 0x36, 0x98, 0x03, 0x68, 0x3E, 0x84, 0x4B, 0x0B,
- 0xE7, 0xEE, 0x96, 0xF2, 0x9F, 0x6D, 0x6A, 0x35,
- 0x56, 0x80, 0x06, 0xBD, 0x55, 0x90, 0xF9, 0xA4,
- 0xEF, 0x63, 0x9B, 0x7A, 0x80, 0x61, 0xC7, 0xB0,
- 0x42, 0x4B, 0x66, 0xB6, 0x0A, 0xC3, 0x4A, 0xF3,
- 0x11, 0x99, 0x05, 0xF3, 0x3A, 0x9D, 0x8C, 0x3A,
- 0xE1, 0x83, 0x82, 0xCA, 0x9B, 0x68, 0x99, 0x00
- },
- {
- 0xEA, 0x9B, 0x4D, 0xCA, 0x33, 0x33, 0x36, 0xAA,
- 0xF8, 0x39, 0xA4, 0x5C, 0x6E, 0xAA, 0x48, 0xB8,
- 0xCB, 0x4C, 0x7D, 0xDA, 0xBF, 0xFE, 0xA4, 0xF6,
- 0x43, 0xD6, 0x35, 0x7E, 0xA6, 0x62, 0x8A, 0x48,
- 0x0A, 0x5B, 0x45, 0xF2, 0xB0, 0x52, 0xC1, 0xB0,
- 0x7D, 0x1F, 0xED, 0xCA, 0x91, 0x8B, 0x6F, 0x11,
- 0x39, 0xD8, 0x0F, 0x74, 0xC2, 0x45, 0x10, 0xDC,
- 0xBA, 0xA4, 0xBE, 0x70, 0xEA, 0xCC, 0x1B, 0x06
- },
- {
- 0xE6, 0x34, 0x2F, 0xB4, 0xA7, 0x80, 0xAD, 0x97,
- 0x5D, 0x0E, 0x24, 0xBC, 0xE1, 0x49, 0x98, 0x9B,
- 0x91, 0xD3, 0x60, 0x55, 0x7E, 0x87, 0x99, 0x4F,
- 0x6B, 0x45, 0x7B, 0x89, 0x55, 0x75, 0xCC, 0x02,
- 0xD0, 0xC1, 0x5B, 0xAD, 0x3C, 0xE7, 0x57, 0x7F,
- 0x4C, 0x63, 0x92, 0x7F, 0xF1, 0x3F, 0x3E, 0x38,
- 0x1F, 0xF7, 0xE7, 0x2B, 0xDB, 0xE7, 0x45, 0x32,
- 0x48, 0x44, 0xA9, 0xD2, 0x7E, 0x3F, 0x1C, 0x01
- },
- {
- 0x3E, 0x20, 0x9C, 0x9B, 0x33, 0xE8, 0xE4, 0x61,
- 0x17, 0x8A, 0xB4, 0x6B, 0x1C, 0x64, 0xB4, 0x9A,
- 0x07, 0xFB, 0x74, 0x5F, 0x1C, 0x8B, 0xC9, 0x5F,
- 0xBF, 0xB9, 0x4C, 0x6B, 0x87, 0xC6, 0x95, 0x16,
- 0x65, 0x1B, 0x26, 0x4E, 0xF9, 0x80, 0x93, 0x7F,
- 0xAD, 0x41, 0x23, 0x8B, 0x91, 0xDD, 0xC0, 0x11,
- 0xA5, 0xDD, 0x77, 0x7C, 0x7E, 0xFD, 0x44, 0x94,
- 0xB4, 0xB6, 0xEC, 0xD3, 0xA9, 0xC2, 0x2A, 0xC0
- },
- {
- 0xFD, 0x6A, 0x3D, 0x5B, 0x18, 0x75, 0xD8, 0x04,
- 0x86, 0xD6, 0xE6, 0x96, 0x94, 0xA5, 0x6D, 0xBB,
- 0x04, 0xA9, 0x9A, 0x4D, 0x05, 0x1F, 0x15, 0xDB,
- 0x26, 0x89, 0x77, 0x6B, 0xA1, 0xC4, 0x88, 0x2E,
- 0x6D, 0x46, 0x2A, 0x60, 0x3B, 0x70, 0x15, 0xDC,
- 0x9F, 0x4B, 0x74, 0x50, 0xF0, 0x53, 0x94, 0x30,
- 0x3B, 0x86, 0x52, 0xCF, 0xB4, 0x04, 0xA2, 0x66,
- 0x96, 0x2C, 0x41, 0xBA, 0xE6, 0xE1, 0x8A, 0x94
- },
- {
- 0x95, 0x1E, 0x27, 0x51, 0x7E, 0x6B, 0xAD, 0x9E,
- 0x41, 0x95, 0xFC, 0x86, 0x71, 0xDE, 0xE3, 0xE7,
- 0xE9, 0xBE, 0x69, 0xCE, 0xE1, 0x42, 0x2C, 0xB9,
- 0xFE, 0xCF, 0xCE, 0x0D, 0xBA, 0x87, 0x5F, 0x7B,
- 0x31, 0x0B, 0x93, 0xEE, 0x3A, 0x3D, 0x55, 0x8F,
- 0x94, 0x1F, 0x63, 0x5F, 0x66, 0x8F, 0xF8, 0x32,
- 0xD2, 0xC1, 0xD0, 0x33, 0xC5, 0xE2, 0xF0, 0x99,
- 0x7E, 0x4C, 0x66, 0xF1, 0x47, 0x34, 0x4E, 0x02
- },
- {
- 0x8E, 0xBA, 0x2F, 0x87, 0x4F, 0x1A, 0xE8, 0x40,
- 0x41, 0x90, 0x3C, 0x7C, 0x42, 0x53, 0xC8, 0x22,
- 0x92, 0x53, 0x0F, 0xC8, 0x50, 0x95, 0x50, 0xBF,
- 0xDC, 0x34, 0xC9, 0x5C, 0x7E, 0x28, 0x89, 0xD5,
- 0x65, 0x0B, 0x0A, 0xD8, 0xCB, 0x98, 0x8E, 0x5C,
- 0x48, 0x94, 0xCB, 0x87, 0xFB, 0xFB, 0xB1, 0x96,
- 0x12, 0xEA, 0x93, 0xCC, 0xC4, 0xC5, 0xCA, 0xD1,
- 0x71, 0x58, 0xB9, 0x76, 0x34, 0x64, 0xB4, 0x92
- },
- {
- 0x16, 0xF7, 0x12, 0xEA, 0xA1, 0xB7, 0xC6, 0x35,
- 0x47, 0x19, 0xA8, 0xE7, 0xDB, 0xDF, 0xAF, 0x55,
- 0xE4, 0x06, 0x3A, 0x4D, 0x27, 0x7D, 0x94, 0x75,
- 0x50, 0x01, 0x9B, 0x38, 0xDF, 0xB5, 0x64, 0x83,
- 0x09, 0x11, 0x05, 0x7D, 0x50, 0x50, 0x61, 0x36,
- 0xE2, 0x39, 0x4C, 0x3B, 0x28, 0x94, 0x5C, 0xC9,
- 0x64, 0x96, 0x7D, 0x54, 0xE3, 0x00, 0x0C, 0x21,
- 0x81, 0x62, 0x6C, 0xFB, 0x9B, 0x73, 0xEF, 0xD2
- },
- {
- 0xC3, 0x96, 0x39, 0xE7, 0xD5, 0xC7, 0xFB, 0x8C,
- 0xDD, 0x0F, 0xD3, 0xE6, 0xA5, 0x20, 0x96, 0x03,
- 0x94, 0x37, 0x12, 0x2F, 0x21, 0xC7, 0x8F, 0x16,
- 0x79, 0xCE, 0xA9, 0xD7, 0x8A, 0x73, 0x4C, 0x56,
- 0xEC, 0xBE, 0xB2, 0x86, 0x54, 0xB4, 0xF1, 0x8E,
- 0x34, 0x2C, 0x33, 0x1F, 0x6F, 0x72, 0x29, 0xEC,
- 0x4B, 0x4B, 0xC2, 0x81, 0xB2, 0xD8, 0x0A, 0x6E,
- 0xB5, 0x00, 0x43, 0xF3, 0x17, 0x96, 0xC8, 0x8C
- },
- {
- 0x72, 0xD0, 0x81, 0xAF, 0x99, 0xF8, 0xA1, 0x73,
- 0xDC, 0xC9, 0xA0, 0xAC, 0x4E, 0xB3, 0x55, 0x74,
- 0x05, 0x63, 0x9A, 0x29, 0x08, 0x4B, 0x54, 0xA4,
- 0x01, 0x72, 0x91, 0x2A, 0x2F, 0x8A, 0x39, 0x51,
- 0x29, 0xD5, 0x53, 0x6F, 0x09, 0x18, 0xE9, 0x02,
- 0xF9, 0xE8, 0xFA, 0x60, 0x00, 0x99, 0x5F, 0x41,
- 0x68, 0xDD, 0xC5, 0xF8, 0x93, 0x01, 0x1B, 0xE6,
- 0xA0, 0xDB, 0xC9, 0xB8, 0xA1, 0xA3, 0xF5, 0xBB
- },
- {
- 0xC1, 0x1A, 0xA8, 0x1E, 0x5E, 0xFD, 0x24, 0xD5,
- 0xFC, 0x27, 0xEE, 0x58, 0x6C, 0xFD, 0x88, 0x47,
- 0xFB, 0xB0, 0xE2, 0x76, 0x01, 0xCC, 0xEC, 0xE5,
- 0xEC, 0xCA, 0x01, 0x98, 0xE3, 0xC7, 0x76, 0x53,
- 0x93, 0xBB, 0x74, 0x45, 0x7C, 0x7E, 0x7A, 0x27,
- 0xEB, 0x91, 0x70, 0x35, 0x0E, 0x1F, 0xB5, 0x38,
- 0x57, 0x17, 0x75, 0x06, 0xBE, 0x3E, 0x76, 0x2C,
- 0xC0, 0xF1, 0x4D, 0x8C, 0x3A, 0xFE, 0x90, 0x77
- },
- {
- 0xC2, 0x8F, 0x21, 0x50, 0xB4, 0x52, 0xE6, 0xC0,
- 0xC4, 0x24, 0xBC, 0xDE, 0x6F, 0x8D, 0x72, 0x00,
- 0x7F, 0x93, 0x10, 0xFE, 0xD7, 0xF2, 0xF8, 0x7D,
- 0xE0, 0xDB, 0xB6, 0x4F, 0x44, 0x79, 0xD6, 0xC1,
- 0x44, 0x1B, 0xA6, 0x6F, 0x44, 0xB2, 0xAC, 0xCE,
- 0xE6, 0x16, 0x09, 0x17, 0x7E, 0xD3, 0x40, 0x12,
- 0x8B, 0x40, 0x7E, 0xCE, 0xC7, 0xC6, 0x4B, 0xBE,
- 0x50, 0xD6, 0x3D, 0x22, 0xD8, 0x62, 0x77, 0x27
- },
- {
- 0xF6, 0x3D, 0x88, 0x12, 0x28, 0x77, 0xEC, 0x30,
- 0xB8, 0xC8, 0xB0, 0x0D, 0x22, 0xE8, 0x90, 0x00,
- 0xA9, 0x66, 0x42, 0x61, 0x12, 0xBD, 0x44, 0x16,
- 0x6E, 0x2F, 0x52, 0x5B, 0x76, 0x9C, 0xCB, 0xE9,
- 0xB2, 0x86, 0xD4, 0x37, 0xA0, 0x12, 0x91, 0x30,
- 0xDD, 0xE1, 0xA8, 0x6C, 0x43, 0xE0, 0x4B, 0xED,
- 0xB5, 0x94, 0xE6, 0x71, 0xD9, 0x82, 0x83, 0xAF,
- 0xE6, 0x4C, 0xE3, 0x31, 0xDE, 0x98, 0x28, 0xFD
- },
- {
- 0x34, 0x8B, 0x05, 0x32, 0x88, 0x0B, 0x88, 0xA6,
- 0x61, 0x4A, 0x8D, 0x74, 0x08, 0xC3, 0xF9, 0x13,
- 0x35, 0x7F, 0xBB, 0x60, 0xE9, 0x95, 0xC6, 0x02,
- 0x05, 0xBE, 0x91, 0x39, 0xE7, 0x49, 0x98, 0xAE,
- 0xDE, 0x7F, 0x45, 0x81, 0xE4, 0x2F, 0x6B, 0x52,
- 0x69, 0x8F, 0x7F, 0xA1, 0x21, 0x97, 0x08, 0xC1,
- 0x44, 0x98, 0x06, 0x7F, 0xD1, 0xE0, 0x95, 0x02,
- 0xDE, 0x83, 0xA7, 0x7D, 0xD2, 0x81, 0x15, 0x0C
- },
- {
- 0x51, 0x33, 0xDC, 0x8B, 0xEF, 0x72, 0x53, 0x59,
- 0xDF, 0xF5, 0x97, 0x92, 0xD8, 0x5E, 0xAF, 0x75,
- 0xB7, 0xE1, 0xDC, 0xD1, 0x97, 0x8B, 0x01, 0xC3,
- 0x5B, 0x1B, 0x85, 0xFC, 0xEB, 0xC6, 0x33, 0x88,
- 0xAD, 0x99, 0xA1, 0x7B, 0x63, 0x46, 0xA2, 0x17,
- 0xDC, 0x1A, 0x96, 0x22, 0xEB, 0xD1, 0x22, 0xEC,
- 0xF6, 0x91, 0x3C, 0x4D, 0x31, 0xA6, 0xB5, 0x2A,
- 0x69, 0x5B, 0x86, 0xAF, 0x00, 0xD7, 0x41, 0xA0
- },
- {
- 0x27, 0x53, 0xC4, 0xC0, 0xE9, 0x8E, 0xCA, 0xD8,
- 0x06, 0xE8, 0x87, 0x80, 0xEC, 0x27, 0xFC, 0xCD,
- 0x0F, 0x5C, 0x1A, 0xB5, 0x47, 0xF9, 0xE4, 0xBF,
- 0x16, 0x59, 0xD1, 0x92, 0xC2, 0x3A, 0xA2, 0xCC,
- 0x97, 0x1B, 0x58, 0xB6, 0x80, 0x25, 0x80, 0xBA,
- 0xEF, 0x8A, 0xDC, 0x3B, 0x77, 0x6E, 0xF7, 0x08,
- 0x6B, 0x25, 0x45, 0xC2, 0x98, 0x7F, 0x34, 0x8E,
- 0xE3, 0x71, 0x9C, 0xDE, 0xF2, 0x58, 0xC4, 0x03
- },
- {
- 0xB1, 0x66, 0x35, 0x73, 0xCE, 0x4B, 0x9D, 0x8C,
- 0xAE, 0xFC, 0x86, 0x50, 0x12, 0xF3, 0xE3, 0x97,
- 0x14, 0xB9, 0x89, 0x8A, 0x5D, 0xA6, 0xCE, 0x17,
- 0xC2, 0x5A, 0x6A, 0x47, 0x93, 0x1A, 0x9D, 0xDB,
- 0x9B, 0xBE, 0x98, 0xAD, 0xAA, 0x55, 0x3B, 0xEE,
- 0xD4, 0x36, 0xE8, 0x95, 0x78, 0x45, 0x54, 0x16,
- 0xC2, 0xA5, 0x2A, 0x52, 0x5C, 0xF2, 0x86, 0x2B,
- 0x8D, 0x1D, 0x49, 0xA2, 0x53, 0x1B, 0x73, 0x91
- },
- {
- 0x64, 0xF5, 0x8B, 0xD6, 0xBF, 0xC8, 0x56, 0xF5,
- 0xE8, 0x73, 0xB2, 0xA2, 0x95, 0x6E, 0xA0, 0xED,
- 0xA0, 0xD6, 0xDB, 0x0D, 0xA3, 0x9C, 0x8C, 0x7F,
- 0xC6, 0x7C, 0x9F, 0x9F, 0xEE, 0xFC, 0xFF, 0x30,
- 0x72, 0xCD, 0xF9, 0xE6, 0xEA, 0x37, 0xF6, 0x9A,
- 0x44, 0xF0, 0xC6, 0x1A, 0xA0, 0xDA, 0x36, 0x93,
- 0xC2, 0xDB, 0x5B, 0x54, 0x96, 0x0C, 0x02, 0x81,
- 0xA0, 0x88, 0x15, 0x1D, 0xB4, 0x2B, 0x11, 0xE8
- },
- {
- 0x07, 0x64, 0xC7, 0xBE, 0x28, 0x12, 0x5D, 0x90,
- 0x65, 0xC4, 0xB9, 0x8A, 0x69, 0xD6, 0x0A, 0xED,
- 0xE7, 0x03, 0x54, 0x7C, 0x66, 0xA1, 0x2E, 0x17,
- 0xE1, 0xC6, 0x18, 0x99, 0x41, 0x32, 0xF5, 0xEF,
- 0x82, 0x48, 0x2C, 0x1E, 0x3F, 0xE3, 0x14, 0x6C,
- 0xC6, 0x53, 0x76, 0xCC, 0x10, 0x9F, 0x01, 0x38,
- 0xED, 0x9A, 0x80, 0xE4, 0x9F, 0x1F, 0x3C, 0x7D,
- 0x61, 0x0D, 0x2F, 0x24, 0x32, 0xF2, 0x06, 0x05
- },
- {
- 0xF7, 0x48, 0x78, 0x43, 0x98, 0xA2, 0xFF, 0x03,
- 0xEB, 0xEB, 0x07, 0xE1, 0x55, 0xE6, 0x61, 0x16,
- 0xA8, 0x39, 0x74, 0x1A, 0x33, 0x6E, 0x32, 0xDA,
- 0x71, 0xEC, 0x69, 0x60, 0x01, 0xF0, 0xAD, 0x1B,
- 0x25, 0xCD, 0x48, 0xC6, 0x9C, 0xFC, 0xA7, 0x26,
- 0x5E, 0xCA, 0x1D, 0xD7, 0x19, 0x04, 0xA0, 0xCE,
- 0x74, 0x8A, 0xC4, 0x12, 0x4F, 0x35, 0x71, 0x07,
- 0x6D, 0xFA, 0x71, 0x16, 0xA9, 0xCF, 0x00, 0xE9
- },
- {
- 0x3F, 0x0D, 0xBC, 0x01, 0x86, 0xBC, 0xEB, 0x6B,
- 0x78, 0x5B, 0xA7, 0x8D, 0x2A, 0x2A, 0x01, 0x3C,
- 0x91, 0x0B, 0xE1, 0x57, 0xBD, 0xAF, 0xFA, 0xE8,
- 0x1B, 0xB6, 0x66, 0x3B, 0x1A, 0x73, 0x72, 0x2F,
- 0x7F, 0x12, 0x28, 0x79, 0x5F, 0x3E, 0xCA, 0xDA,
- 0x87, 0xCF, 0x6E, 0xF0, 0x07, 0x84, 0x74, 0xAF,
- 0x73, 0xF3, 0x1E, 0xCA, 0x0C, 0xC2, 0x00, 0xED,
- 0x97, 0x5B, 0x68, 0x93, 0xF7, 0x61, 0xCB, 0x6D
- },
- {
- 0xD4, 0x76, 0x2C, 0xD4, 0x59, 0x98, 0x76, 0xCA,
- 0x75, 0xB2, 0xB8, 0xFE, 0x24, 0x99, 0x44, 0xDB,
- 0xD2, 0x7A, 0xCE, 0x74, 0x1F, 0xDA, 0xB9, 0x36,
- 0x16, 0xCB, 0xC6, 0xE4, 0x25, 0x46, 0x0F, 0xEB,
- 0x51, 0xD4, 0xE7, 0xAD, 0xCC, 0x38, 0x18, 0x0E,
- 0x7F, 0xC4, 0x7C, 0x89, 0x02, 0x4A, 0x7F, 0x56,
- 0x19, 0x1A, 0xDB, 0x87, 0x8D, 0xFD, 0xE4, 0xEA,
- 0xD6, 0x22, 0x23, 0xF5, 0xA2, 0x61, 0x0E, 0xFE
- },
- {
- 0xCD, 0x36, 0xB3, 0xD5, 0xB4, 0xC9, 0x1B, 0x90,
- 0xFC, 0xBB, 0xA7, 0x95, 0x13, 0xCF, 0xEE, 0x19,
- 0x07, 0xD8, 0x64, 0x5A, 0x16, 0x2A, 0xFD, 0x0C,
- 0xD4, 0xCF, 0x41, 0x92, 0xD4, 0xA5, 0xF4, 0xC8,
- 0x92, 0x18, 0x3A, 0x8E, 0xAC, 0xDB, 0x2B, 0x6B,
- 0x6A, 0x9D, 0x9A, 0xA8, 0xC1, 0x1A, 0xC1, 0xB2,
- 0x61, 0xB3, 0x80, 0xDB, 0xEE, 0x24, 0xCA, 0x46,
- 0x8F, 0x1B, 0xFD, 0x04, 0x3C, 0x58, 0xEE, 0xFE
- },
- {
- 0x98, 0x59, 0x34, 0x52, 0x28, 0x16, 0x61, 0xA5,
- 0x3C, 0x48, 0xA9, 0xD8, 0xCD, 0x79, 0x08, 0x26,
- 0xC1, 0xA1, 0xCE, 0x56, 0x77, 0x38, 0x05, 0x3D,
- 0x0B, 0xEE, 0x4A, 0x91, 0xA3, 0xD5, 0xBD, 0x92,
- 0xEE, 0xFD, 0xBA, 0xBE, 0xBE, 0x32, 0x04, 0xF2,
- 0x03, 0x1C, 0xA5, 0xF7, 0x81, 0xBD, 0xA9, 0x9E,
- 0xF5, 0xD8, 0xAE, 0x56, 0xE5, 0xB0, 0x4A, 0x9E,
- 0x1E, 0xCD, 0x21, 0xB0, 0xEB, 0x05, 0xD3, 0xE1
- },
- {
- 0x77, 0x1F, 0x57, 0xDD, 0x27, 0x75, 0xCC, 0xDA,
- 0xB5, 0x59, 0x21, 0xD3, 0xE8, 0xE3, 0x0C, 0xCF,
- 0x48, 0x4D, 0x61, 0xFE, 0x1C, 0x1B, 0x9C, 0x2A,
- 0xE8, 0x19, 0xD0, 0xFB, 0x2A, 0x12, 0xFA, 0xB9,
- 0xBE, 0x70, 0xC4, 0xA7, 0xA1, 0x38, 0xDA, 0x84,
- 0xE8, 0x28, 0x04, 0x35, 0xDA, 0xAD, 0xE5, 0xBB,
- 0xE6, 0x6A, 0xF0, 0x83, 0x6A, 0x15, 0x4F, 0x81,
- 0x7F, 0xB1, 0x7F, 0x33, 0x97, 0xE7, 0x25, 0xA3
- },
- {
- 0xC6, 0x08, 0x97, 0xC6, 0xF8, 0x28, 0xE2, 0x1F,
- 0x16, 0xFB, 0xB5, 0xF1, 0x5B, 0x32, 0x3F, 0x87,
- 0xB6, 0xC8, 0x95, 0x5E, 0xAB, 0xF1, 0xD3, 0x80,
- 0x61, 0xF7, 0x07, 0xF6, 0x08, 0xAB, 0xDD, 0x99,
- 0x3F, 0xAC, 0x30, 0x70, 0x63, 0x3E, 0x28, 0x6C,
- 0xF8, 0x33, 0x9C, 0xE2, 0x95, 0xDD, 0x35, 0x2D,
- 0xF4, 0xB4, 0xB4, 0x0B, 0x2F, 0x29, 0xDA, 0x1D,
- 0xD5, 0x0B, 0x3A, 0x05, 0xD0, 0x79, 0xE6, 0xBB
- },
- {
- 0x82, 0x10, 0xCD, 0x2C, 0x2D, 0x3B, 0x13, 0x5C,
- 0x2C, 0xF0, 0x7F, 0xA0, 0xD1, 0x43, 0x3C, 0xD7,
- 0x71, 0xF3, 0x25, 0xD0, 0x75, 0xC6, 0x46, 0x9D,
- 0x9C, 0x7F, 0x1B, 0xA0, 0x94, 0x3C, 0xD4, 0xAB,
- 0x09, 0x80, 0x8C, 0xAB, 0xF4, 0xAC, 0xB9, 0xCE,
- 0x5B, 0xB8, 0x8B, 0x49, 0x89, 0x29, 0xB4, 0xB8,
- 0x47, 0xF6, 0x81, 0xAD, 0x2C, 0x49, 0x0D, 0x04,
- 0x2D, 0xB2, 0xAE, 0xC9, 0x42, 0x14, 0xB0, 0x6B
- },
- {
- 0x1D, 0x4E, 0xDF, 0xFF, 0xD8, 0xFD, 0x80, 0xF7,
- 0xE4, 0x10, 0x78, 0x40, 0xFA, 0x3A, 0xA3, 0x1E,
- 0x32, 0x59, 0x84, 0x91, 0xE4, 0xAF, 0x70, 0x13,
- 0xC1, 0x97, 0xA6, 0x5B, 0x7F, 0x36, 0xDD, 0x3A,
- 0xC4, 0xB4, 0x78, 0x45, 0x61, 0x11, 0xCD, 0x43,
- 0x09, 0xD9, 0x24, 0x35, 0x10, 0x78, 0x2F, 0xA3,
- 0x1B, 0x7C, 0x4C, 0x95, 0xFA, 0x95, 0x15, 0x20,
- 0xD0, 0x20, 0xEB, 0x7E, 0x5C, 0x36, 0xE4, 0xEF
- },
- {
- 0xAF, 0x8E, 0x6E, 0x91, 0xFA, 0xB4, 0x6C, 0xE4,
- 0x87, 0x3E, 0x1A, 0x50, 0xA8, 0xEF, 0x44, 0x8C,
- 0xC2, 0x91, 0x21, 0xF7, 0xF7, 0x4D, 0xEE, 0xF3,
- 0x4A, 0x71, 0xEF, 0x89, 0xCC, 0x00, 0xD9, 0x27,
- 0x4B, 0xC6, 0xC2, 0x45, 0x4B, 0xBB, 0x32, 0x30,
- 0xD8, 0xB2, 0xEC, 0x94, 0xC6, 0x2B, 0x1D, 0xEC,
- 0x85, 0xF3, 0x59, 0x3B, 0xFA, 0x30, 0xEA, 0x6F,
- 0x7A, 0x44, 0xD7, 0xC0, 0x94, 0x65, 0xA2, 0x53
- },
- {
- 0x29, 0xFD, 0x38, 0x4E, 0xD4, 0x90, 0x6F, 0x2D,
- 0x13, 0xAA, 0x9F, 0xE7, 0xAF, 0x90, 0x59, 0x90,
- 0x93, 0x8B, 0xED, 0x80, 0x7F, 0x18, 0x32, 0x45,
- 0x4A, 0x37, 0x2A, 0xB4, 0x12, 0xEE, 0xA1, 0xF5,
- 0x62, 0x5A, 0x1F, 0xCC, 0x9A, 0xC8, 0x34, 0x3B,
- 0x7C, 0x67, 0xC5, 0xAB, 0xA6, 0xE0, 0xB1, 0xCC,
- 0x46, 0x44, 0x65, 0x49, 0x13, 0x69, 0x2C, 0x6B,
- 0x39, 0xEB, 0x91, 0x87, 0xCE, 0xAC, 0xD3, 0xEC
- },
- {
- 0xA2, 0x68, 0xC7, 0x88, 0x5D, 0x98, 0x74, 0xA5,
- 0x1C, 0x44, 0xDF, 0xFE, 0xD8, 0xEA, 0x53, 0xE9,
- 0x4F, 0x78, 0x45, 0x6E, 0x0B, 0x2E, 0xD9, 0x9F,
- 0xF5, 0xA3, 0x92, 0x47, 0x60, 0x81, 0x38, 0x26,
- 0xD9, 0x60, 0xA1, 0x5E, 0xDB, 0xED, 0xBB, 0x5D,
- 0xE5, 0x22, 0x6B, 0xA4, 0xB0, 0x74, 0xE7, 0x1B,
- 0x05, 0xC5, 0x5B, 0x97, 0x56, 0xBB, 0x79, 0xE5,
- 0x5C, 0x02, 0x75, 0x4C, 0x2C, 0x7B, 0x6C, 0x8A
- },
- {
- 0x0C, 0xF8, 0x54, 0x54, 0x88, 0xD5, 0x6A, 0x86,
- 0x81, 0x7C, 0xD7, 0xEC, 0xB1, 0x0F, 0x71, 0x16,
- 0xB7, 0xEA, 0x53, 0x0A, 0x45, 0xB6, 0xEA, 0x49,
- 0x7B, 0x6C, 0x72, 0xC9, 0x97, 0xE0, 0x9E, 0x3D,
- 0x0D, 0xA8, 0x69, 0x8F, 0x46, 0xBB, 0x00, 0x6F,
- 0xC9, 0x77, 0xC2, 0xCD, 0x3D, 0x11, 0x77, 0x46,
- 0x3A, 0xC9, 0x05, 0x7F, 0xDD, 0x16, 0x62, 0xC8,
- 0x5D, 0x0C, 0x12, 0x64, 0x43, 0xC1, 0x04, 0x73
- },
- {
- 0xB3, 0x96, 0x14, 0x26, 0x8F, 0xDD, 0x87, 0x81,
- 0x51, 0x5E, 0x2C, 0xFE, 0xBF, 0x89, 0xB4, 0xD5,
- 0x40, 0x2B, 0xAB, 0x10, 0xC2, 0x26, 0xE6, 0x34,
- 0x4E, 0x6B, 0x9A, 0xE0, 0x00, 0xFB, 0x0D, 0x6C,
- 0x79, 0xCB, 0x2F, 0x3E, 0xC8, 0x0E, 0x80, 0xEA,
- 0xEB, 0x19, 0x80, 0xD2, 0xF8, 0x69, 0x89, 0x16,
- 0xBD, 0x2E, 0x9F, 0x74, 0x72, 0x36, 0x65, 0x51,
- 0x16, 0x64, 0x9C, 0xD3, 0xCA, 0x23, 0xA8, 0x37
- },
- {
- 0x74, 0xBE, 0xF0, 0x92, 0xFC, 0x6F, 0x1E, 0x5D,
- 0xBA, 0x36, 0x63, 0xA3, 0xFB, 0x00, 0x3B, 0x2A,
- 0x5B, 0xA2, 0x57, 0x49, 0x65, 0x36, 0xD9, 0x9F,
- 0x62, 0xB9, 0xD7, 0x3F, 0x8F, 0x9E, 0xB3, 0xCE,
- 0x9F, 0xF3, 0xEE, 0xC7, 0x09, 0xEB, 0x88, 0x36,
- 0x55, 0xEC, 0x9E, 0xB8, 0x96, 0xB9, 0x12, 0x8F,
- 0x2A, 0xFC, 0x89, 0xCF, 0x7D, 0x1A, 0xB5, 0x8A,
- 0x72, 0xF4, 0xA3, 0xBF, 0x03, 0x4D, 0x2B, 0x4A
- },
- {
- 0x3A, 0x98, 0x8D, 0x38, 0xD7, 0x56, 0x11, 0xF3,
- 0xEF, 0x38, 0xB8, 0x77, 0x49, 0x80, 0xB3, 0x3E,
- 0x57, 0x3B, 0x6C, 0x57, 0xBE, 0xE0, 0x46, 0x9B,
- 0xA5, 0xEE, 0xD9, 0xB4, 0x4F, 0x29, 0x94, 0x5E,
- 0x73, 0x47, 0x96, 0x7F, 0xBA, 0x2C, 0x16, 0x2E,
- 0x1C, 0x3B, 0xE7, 0xF3, 0x10, 0xF2, 0xF7, 0x5E,
- 0xE2, 0x38, 0x1E, 0x7B, 0xFD, 0x6B, 0x3F, 0x0B,
- 0xAE, 0xA8, 0xD9, 0x5D, 0xFB, 0x1D, 0xAF, 0xB1
- },
- {
- 0x58, 0xAE, 0xDF, 0xCE, 0x6F, 0x67, 0xDD, 0xC8,
- 0x5A, 0x28, 0xC9, 0x92, 0xF1, 0xC0, 0xBD, 0x09,
- 0x69, 0xF0, 0x41, 0xE6, 0x6F, 0x1E, 0xE8, 0x80,
- 0x20, 0xA1, 0x25, 0xCB, 0xFC, 0xFE, 0xBC, 0xD6,
- 0x17, 0x09, 0xC9, 0xC4, 0xEB, 0xA1, 0x92, 0xC1,
- 0x5E, 0x69, 0xF0, 0x20, 0xD4, 0x62, 0x48, 0x60,
- 0x19, 0xFA, 0x8D, 0xEA, 0x0C, 0xD7, 0xA4, 0x29,
- 0x21, 0xA1, 0x9D, 0x2F, 0xE5, 0x46, 0xD4, 0x3D
- },
- {
- 0x93, 0x47, 0xBD, 0x29, 0x14, 0x73, 0xE6, 0xB4,
- 0xE3, 0x68, 0x43, 0x7B, 0x8E, 0x56, 0x1E, 0x06,
- 0x5F, 0x64, 0x9A, 0x6D, 0x8A, 0xDA, 0x47, 0x9A,
- 0xD0, 0x9B, 0x19, 0x99, 0xA8, 0xF2, 0x6B, 0x91,
- 0xCF, 0x61, 0x20, 0xFD, 0x3B, 0xFE, 0x01, 0x4E,
- 0x83, 0xF2, 0x3A, 0xCF, 0xA4, 0xC0, 0xAD, 0x7B,
- 0x37, 0x12, 0xB2, 0xC3, 0xC0, 0x73, 0x32, 0x70,
- 0x66, 0x31, 0x12, 0xCC, 0xD9, 0x28, 0x5C, 0xD9
- },
- {
- 0xB3, 0x21, 0x63, 0xE7, 0xC5, 0xDB, 0xB5, 0xF5,
- 0x1F, 0xDC, 0x11, 0xD2, 0xEA, 0xC8, 0x75, 0xEF,
- 0xBB, 0xCB, 0x7E, 0x76, 0x99, 0x09, 0x0A, 0x7E,
- 0x7F, 0xF8, 0xA8, 0xD5, 0x07, 0x95, 0xAF, 0x5D,
- 0x74, 0xD9, 0xFF, 0x98, 0x54, 0x3E, 0xF8, 0xCD,
- 0xF8, 0x9A, 0xC1, 0x3D, 0x04, 0x85, 0x27, 0x87,
- 0x56, 0xE0, 0xEF, 0x00, 0xC8, 0x17, 0x74, 0x56,
- 0x61, 0xE1, 0xD5, 0x9F, 0xE3, 0x8E, 0x75, 0x37
- },
- {
- 0x10, 0x85, 0xD7, 0x83, 0x07, 0xB1, 0xC4, 0xB0,
- 0x08, 0xC5, 0x7A, 0x2E, 0x7E, 0x5B, 0x23, 0x46,
- 0x58, 0xA0, 0xA8, 0x2E, 0x4F, 0xF1, 0xE4, 0xAA,
- 0xAC, 0x72, 0xB3, 0x12, 0xFD, 0xA0, 0xFE, 0x27,
- 0xD2, 0x33, 0xBC, 0x5B, 0x10, 0xE9, 0xCC, 0x17,
- 0xFD, 0xC7, 0x69, 0x7B, 0x54, 0x0C, 0x7D, 0x95,
- 0xEB, 0x21, 0x5A, 0x19, 0xA1, 0xA0, 0xE2, 0x0E,
- 0x1A, 0xBF, 0xA1, 0x26, 0xEF, 0xD5, 0x68, 0xC7
- },
- {
- 0x4E, 0x5C, 0x73, 0x4C, 0x7D, 0xDE, 0x01, 0x1D,
- 0x83, 0xEA, 0xC2, 0xB7, 0x34, 0x7B, 0x37, 0x35,
- 0x94, 0xF9, 0x2D, 0x70, 0x91, 0xB9, 0xCA, 0x34,
- 0xCB, 0x9C, 0x6F, 0x39, 0xBD, 0xF5, 0xA8, 0xD2,
- 0xF1, 0x34, 0x37, 0x9E, 0x16, 0xD8, 0x22, 0xF6,
- 0x52, 0x21, 0x70, 0xCC, 0xF2, 0xDD, 0xD5, 0x5C,
- 0x84, 0xB9, 0xE6, 0xC6, 0x4F, 0xC9, 0x27, 0xAC,
- 0x4C, 0xF8, 0xDF, 0xB2, 0xA1, 0x77, 0x01, 0xF2
- },
- {
- 0x69, 0x5D, 0x83, 0xBD, 0x99, 0x0A, 0x11, 0x17,
- 0xB3, 0xD0, 0xCE, 0x06, 0xCC, 0x88, 0x80, 0x27,
- 0xD1, 0x2A, 0x05, 0x4C, 0x26, 0x77, 0xFD, 0x82,
- 0xF0, 0xD4, 0xFB, 0xFC, 0x93, 0x57, 0x55, 0x23,
- 0xE7, 0x99, 0x1A, 0x5E, 0x35, 0xA3, 0x75, 0x2E,
- 0x9B, 0x70, 0xCE, 0x62, 0x99, 0x2E, 0x26, 0x8A,
- 0x87, 0x77, 0x44, 0xCD, 0xD4, 0x35, 0xF5, 0xF1,
- 0x30, 0x86, 0x9C, 0x9A, 0x20, 0x74, 0xB3, 0x38
- },
- {
- 0xA6, 0x21, 0x37, 0x43, 0x56, 0x8E, 0x3B, 0x31,
- 0x58, 0xB9, 0x18, 0x43, 0x01, 0xF3, 0x69, 0x08,
- 0x47, 0x55, 0x4C, 0x68, 0x45, 0x7C, 0xB4, 0x0F,
- 0xC9, 0xA4, 0xB8, 0xCF, 0xD8, 0xD4, 0xA1, 0x18,
- 0xC3, 0x01, 0xA0, 0x77, 0x37, 0xAE, 0xDA, 0x0F,
- 0x92, 0x9C, 0x68, 0x91, 0x3C, 0x5F, 0x51, 0xC8,
- 0x03, 0x94, 0xF5, 0x3B, 0xFF, 0x1C, 0x3E, 0x83,
- 0xB2, 0xE4, 0x0C, 0xA9, 0x7E, 0xBA, 0x9E, 0x15
- },
- {
- 0xD4, 0x44, 0xBF, 0xA2, 0x36, 0x2A, 0x96, 0xDF,
- 0x21, 0x3D, 0x07, 0x0E, 0x33, 0xFA, 0x84, 0x1F,
- 0x51, 0x33, 0x4E, 0x4E, 0x76, 0x86, 0x6B, 0x81,
- 0x39, 0xE8, 0xAF, 0x3B, 0xB3, 0x39, 0x8B, 0xE2,
- 0xDF, 0xAD, 0xDC, 0xBC, 0x56, 0xB9, 0x14, 0x6D,
- 0xE9, 0xF6, 0x81, 0x18, 0xDC, 0x58, 0x29, 0xE7,
- 0x4B, 0x0C, 0x28, 0xD7, 0x71, 0x19, 0x07, 0xB1,
- 0x21, 0xF9, 0x16, 0x1C, 0xB9, 0x2B, 0x69, 0xA9
- },
- {
- 0x14, 0x27, 0x09, 0xD6, 0x2E, 0x28, 0xFC, 0xCC,
- 0xD0, 0xAF, 0x97, 0xFA, 0xD0, 0xF8, 0x46, 0x5B,
- 0x97, 0x1E, 0x82, 0x20, 0x1D, 0xC5, 0x10, 0x70,
- 0xFA, 0xA0, 0x37, 0x2A, 0xA4, 0x3E, 0x92, 0x48,
- 0x4B, 0xE1, 0xC1, 0xE7, 0x3B, 0xA1, 0x09, 0x06,
- 0xD5, 0xD1, 0x85, 0x3D, 0xB6, 0xA4, 0x10, 0x6E,
- 0x0A, 0x7B, 0xF9, 0x80, 0x0D, 0x37, 0x3D, 0x6D,
- 0xEE, 0x2D, 0x46, 0xD6, 0x2E, 0xF2, 0xA4, 0x61
- },
-};
-
-
-
-
-static const uint8_t blake2sp_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
-{
- {
- 0xDD, 0x0E, 0x89, 0x17, 0x76, 0x93, 0x3F, 0x43,
- 0xC7, 0xD0, 0x32, 0xB0, 0x8A, 0x91, 0x7E, 0x25,
- 0x74, 0x1F, 0x8A, 0xA9, 0xA1, 0x2C, 0x12, 0xE1,
- 0xCA, 0xC8, 0x80, 0x15, 0x00, 0xF2, 0xCA, 0x4F
- },
- {
- 0xA6, 0xB9, 0xEE, 0xCC, 0x25, 0x22, 0x7A, 0xD7,
- 0x88, 0xC9, 0x9D, 0x3F, 0x23, 0x6D, 0xEB, 0xC8,
- 0xDA, 0x40, 0x88, 0x49, 0xE9, 0xA5, 0x17, 0x89,
- 0x78, 0x72, 0x7A, 0x81, 0x45, 0x7F, 0x72, 0x39
- },
- {
- 0xDA, 0xCA, 0xDE, 0xCE, 0x7A, 0x8E, 0x6B, 0xF3,
- 0xAB, 0xFE, 0x32, 0x4C, 0xA6, 0x95, 0x43, 0x69,
- 0x84, 0xB8, 0x19, 0x5D, 0x29, 0xF6, 0xBB, 0xD8,
- 0x96, 0xE4, 0x1E, 0x18, 0xE2, 0x1C, 0x91, 0x45
- },
- {
- 0xED, 0x14, 0x41, 0x3B, 0x40, 0xDA, 0x68, 0x9F,
- 0x1F, 0x7F, 0xED, 0x2B, 0x08, 0xDF, 0xF4, 0x5B,
- 0x80, 0x92, 0xDB, 0x5E, 0xC2, 0xC3, 0x61, 0x0E,
- 0x02, 0x72, 0x4D, 0x20, 0x2F, 0x42, 0x3C, 0x46
- },
- {
- 0x9B, 0x8A, 0x52, 0x7B, 0x52, 0x72, 0x25, 0x0A,
- 0x1E, 0xC3, 0x97, 0x38, 0x8F, 0x04, 0x09, 0x14,
- 0x95, 0x48, 0x06, 0xE7, 0x94, 0xDB, 0x04, 0xB7,
- 0x0A, 0x46, 0x11, 0xBC, 0x59, 0x58, 0x6A, 0x83
- },
- {
- 0x2B, 0xB6, 0x33, 0x37, 0x29, 0x00, 0x0B, 0xE3,
- 0xD5, 0xA2, 0x1B, 0x98, 0xF8, 0xE7, 0xEA, 0xD0,
- 0x77, 0xF1, 0x51, 0xA5, 0x39, 0x39, 0x19, 0xEB,
- 0x67, 0xC8, 0x76, 0xEE, 0x00, 0xBB, 0xBB, 0x04
- },
- {
- 0x63, 0xC0, 0x14, 0x08, 0x15, 0x4A, 0xD1, 0x9D,
- 0x7F, 0xB7, 0x39, 0xF3, 0x11, 0x78, 0x17, 0x80,
- 0x46, 0x2C, 0xF2, 0xEE, 0xCC, 0xE6, 0x0F, 0x06,
- 0x4E, 0x85, 0x34, 0x87, 0xC2, 0x72, 0xE3, 0xEB
- },
- {
- 0x3D, 0x05, 0x1A, 0x11, 0x76, 0x01, 0x9C, 0xA3,
- 0x7B, 0xF3, 0x3D, 0x60, 0x42, 0x7F, 0x8D, 0x9D,
- 0x1C, 0x3A, 0xBD, 0x59, 0x82, 0x97, 0xCF, 0xB4,
- 0x23, 0x5F, 0x74, 0x7D, 0x7C, 0x7C, 0x7F, 0xEC
- },
- {
- 0x39, 0x1E, 0xA9, 0x12, 0xDF, 0x4D, 0x4D, 0x79,
- 0xA4, 0x64, 0x6D, 0x9D, 0xA2, 0x54, 0x9A, 0x44,
- 0x6D, 0x22, 0x40, 0xF6, 0x24, 0x15, 0xD0, 0x70,
- 0xA2, 0xE0, 0x93, 0x99, 0x2B, 0x47, 0x1F, 0xBA
- },
- {
- 0x32, 0x46, 0x40, 0x44, 0x0E, 0xA5, 0xC3, 0x08,
- 0x2D, 0xDC, 0x30, 0x9E, 0x78, 0x09, 0xD7, 0x41,
- 0xD6, 0xCC, 0x1B, 0x2D, 0x49, 0x0F, 0xF8, 0xC0,
- 0x52, 0x12, 0x8A, 0x6E, 0xEB, 0x40, 0x9D, 0x62
- },
- {
- 0xAB, 0x85, 0x5E, 0x6F, 0xA3, 0x9A, 0x5E, 0x8F,
- 0xC9, 0x0E, 0xAC, 0xB9, 0x99, 0xC7, 0xF7, 0x8A,
- 0xE7, 0x1E, 0x59, 0xC3, 0xD9, 0x7D, 0x60, 0xAF,
- 0xE5, 0x17, 0xD5, 0x87, 0x92, 0x3B, 0x77, 0x11
- },
- {
- 0x2A, 0x39, 0xDA, 0x45, 0x86, 0xEF, 0xC4, 0x77,
- 0x85, 0xA7, 0xA8, 0xDA, 0x85, 0x68, 0x3A, 0x51,
- 0x72, 0x4C, 0xDE, 0xF5, 0x41, 0x3B, 0x35, 0x6D,
- 0xC4, 0xFB, 0x50, 0x05, 0x13, 0xF8, 0xFA, 0x2E
- },
- {
- 0x8A, 0x00, 0x57, 0xC1, 0xF7, 0x8A, 0xD6, 0x21,
- 0x45, 0x55, 0xC0, 0x67, 0x07, 0x33, 0xE2, 0x9A,
- 0x4C, 0x7E, 0x95, 0x62, 0x27, 0x66, 0x0E, 0xFE,
- 0xB1, 0xD7, 0xFC, 0x79, 0xF5, 0x8E, 0xC6, 0xF2
- },
- {
- 0x07, 0x64, 0xB0, 0x01, 0x7F, 0x5B, 0xD9, 0x51,
- 0xF0, 0x1D, 0x9F, 0xDF, 0x95, 0xC0, 0xCB, 0x41,
- 0x38, 0x98, 0x5D, 0x84, 0x79, 0x9C, 0xD4, 0x29,
- 0x84, 0xE2, 0x5B, 0x51, 0x28, 0x00, 0xE7, 0x3C
- },
- {
- 0xCC, 0x02, 0x49, 0x56, 0x93, 0xC8, 0xE1, 0x84,
- 0xAD, 0x2E, 0xD0, 0x9D, 0x53, 0x3D, 0xC3, 0x3B,
- 0x76, 0xA7, 0x78, 0x3D, 0x62, 0x07, 0xFC, 0xAC,
- 0xCB, 0x64, 0xF3, 0xED, 0x2C, 0x6D, 0x66, 0xE0
- },
- {
- 0xC0, 0xDF, 0x49, 0xC2, 0x06, 0xA3, 0x42, 0x88,
- 0x14, 0x32, 0x16, 0x84, 0x7D, 0xF3, 0x34, 0xD4,
- 0x56, 0x9D, 0xAD, 0x73, 0xC2, 0xB1, 0xFF, 0x62,
- 0x84, 0x88, 0x4F, 0xD3, 0x89, 0x41, 0xFB, 0x95
- },
- {
- 0xB9, 0x19, 0x45, 0x19, 0xE4, 0x97, 0x8A, 0x9D,
- 0xC8, 0x93, 0xB2, 0x8B, 0xD8, 0x08, 0xCD, 0xFA,
- 0xBB, 0x1B, 0xD5, 0x10, 0xD8, 0x62, 0xB3, 0x17,
- 0x1F, 0xF6, 0xE0, 0x17, 0xA4, 0x1B, 0x80, 0x4C
- },
- {
- 0xBB, 0xA9, 0x27, 0xAC, 0xF1, 0x1B, 0xEB, 0xD3,
- 0x62, 0xA3, 0xA3, 0xEB, 0x78, 0xC4, 0xBB, 0x65,
- 0xE6, 0x02, 0xA8, 0x70, 0x9F, 0xCE, 0xF3, 0x8D,
- 0xC6, 0xC8, 0xB7, 0xBD, 0xA6, 0x64, 0xC3, 0x2C
- },
- {
- 0xEC, 0xB4, 0x90, 0x0A, 0x63, 0x92, 0x4E, 0x72,
- 0x0D, 0x40, 0xF2, 0xD2, 0xB1, 0x4D, 0x1B, 0xB3,
- 0x9C, 0x37, 0x01, 0xAD, 0x73, 0x46, 0xBD, 0x0B,
- 0x67, 0x23, 0x42, 0x70, 0xBF, 0xBE, 0x7E, 0x70
- },
- {
- 0xF8, 0x31, 0x5A, 0x21, 0xB2, 0x5E, 0x6B, 0xA8,
- 0xBF, 0x59, 0xB1, 0x7B, 0x05, 0x91, 0x3B, 0x8C,
- 0xA4, 0x65, 0x9F, 0x1C, 0xD8, 0x38, 0xFC, 0xC7,
- 0x73, 0xC9, 0xEB, 0x12, 0xE7, 0x00, 0x4E, 0x09
- },
- {
- 0x4B, 0x77, 0xAF, 0x67, 0xA9, 0x23, 0x2B, 0xF1,
- 0x18, 0x4E, 0x57, 0x81, 0x82, 0x94, 0x03, 0x1E,
- 0x55, 0xF1, 0xF8, 0x53, 0xC9, 0x4D, 0xBA, 0xB5,
- 0x57, 0x75, 0x47, 0x33, 0x0D, 0x65, 0xAA, 0x61
- },
- {
- 0x76, 0x85, 0x68, 0x39, 0x0F, 0xD2, 0xB8, 0x70,
- 0x94, 0x11, 0x4E, 0xD4, 0xCF, 0x72, 0x3E, 0xA3,
- 0x20, 0xFE, 0x97, 0x7B, 0x53, 0x18, 0x03, 0x05,
- 0xC3, 0x84, 0x33, 0x54, 0x79, 0xF0, 0xB5, 0x9B
- },
- {
- 0xA4, 0x31, 0xCB, 0x27, 0x0F, 0x3E, 0x2C, 0x9B,
- 0x7A, 0x95, 0x93, 0xB1, 0x55, 0xCC, 0xEC, 0xFF,
- 0x5B, 0x5C, 0x4A, 0x2D, 0xCD, 0x5D, 0x6B, 0xB1,
- 0xC4, 0x85, 0xAA, 0x28, 0x69, 0x97, 0xF9, 0x15
- },
- {
- 0xD6, 0x91, 0xFA, 0x6A, 0x79, 0x0B, 0x1A, 0x51,
- 0x79, 0x80, 0x08, 0x7F, 0x50, 0xB0, 0x3D, 0xED,
- 0x8C, 0x6E, 0xD4, 0x86, 0xD0, 0x84, 0x22, 0x1C,
- 0x82, 0x7D, 0x9B, 0xD9, 0x22, 0xBE, 0xB8, 0xC0
- },
- {
- 0x8F, 0x97, 0x8A, 0x49, 0x32, 0xF4, 0x45, 0x98,
- 0x13, 0xE8, 0xFE, 0x15, 0x68, 0x6E, 0x4E, 0xFA,
- 0x25, 0xC2, 0xC5, 0xFF, 0x5A, 0x3A, 0x4F, 0x8C,
- 0x9B, 0x14, 0x96, 0x5D, 0x2F, 0x0B, 0xE4, 0x61
- },
- {
- 0x1E, 0xFB, 0xD0, 0xC1, 0x31, 0x44, 0x91, 0x42,
- 0xF2, 0x29, 0x5F, 0x2D, 0x42, 0x41, 0x1D, 0xFE,
- 0x0F, 0x48, 0xD4, 0xAC, 0xAE, 0x76, 0x2D, 0x8D,
- 0xF6, 0x7A, 0x57, 0x0B, 0xF7, 0xB1, 0xDC, 0xD5
- },
- {
- 0xD5, 0x3B, 0xA9, 0x33, 0x46, 0x14, 0x3A, 0xB8,
- 0xE0, 0xD3, 0xD1, 0xBF, 0x27, 0x27, 0x06, 0xD1,
- 0x69, 0xE6, 0x6C, 0x69, 0xC7, 0xB8, 0xF4, 0xA5,
- 0xE8, 0x2F, 0xEF, 0x44, 0x07, 0x02, 0xBC, 0xF2
- },
- {
- 0xF7, 0x1A, 0x3E, 0xC0, 0x1A, 0xA3, 0x82, 0xEA,
- 0x76, 0x99, 0x2B, 0x43, 0x0A, 0x7F, 0x42, 0xC7,
- 0xAD, 0x2A, 0x86, 0xAE, 0xA9, 0xC1, 0x9E, 0x76,
- 0xCD, 0x17, 0x32, 0xEC, 0x68, 0x30, 0xDE, 0x6F
- },
- {
- 0x80, 0xA6, 0xAB, 0x7B, 0x71, 0x04, 0x64, 0xF9,
- 0x3E, 0x6C, 0xBA, 0x96, 0x86, 0x4A, 0xA6, 0x40,
- 0x9B, 0xCA, 0xFC, 0x1B, 0xF4, 0xB3, 0x2A, 0x30,
- 0x93, 0x72, 0xE8, 0x57, 0xE8, 0x04, 0x06, 0x8C
- },
- {
- 0xDB, 0xDE, 0x81, 0xE5, 0x1A, 0x52, 0x17, 0x4B,
- 0x10, 0x14, 0x90, 0x1B, 0x53, 0xBE, 0xF8, 0x8D,
- 0xE9, 0x3B, 0x29, 0xE2, 0x74, 0x34, 0x7E, 0x8E,
- 0x9A, 0x7B, 0x03, 0x74, 0x56, 0x62, 0x9F, 0x35
- },
- {
- 0x75, 0xF2, 0x74, 0x46, 0x6B, 0x1A, 0x2D, 0x0F,
- 0xD8, 0x45, 0xBB, 0xB5, 0x7C, 0x38, 0xC9, 0x89,
- 0x51, 0x6E, 0x15, 0x68, 0x32, 0x0A, 0xB5, 0x17,
- 0xB1, 0x63, 0xEA, 0xF7, 0x09, 0x23, 0x4C, 0xC7
- },
- {
- 0xAF, 0xE1, 0xA0, 0x59, 0x1C, 0x49, 0x1D, 0x41,
- 0x6E, 0xB6, 0x4F, 0x62, 0x86, 0xF3, 0xBA, 0x29,
- 0xD4, 0xC9, 0x99, 0x82, 0x14, 0xA3, 0x83, 0x1C,
- 0x39, 0x01, 0x4A, 0xC0, 0x30, 0x55, 0x79, 0x45
- },
- {
- 0x67, 0xFF, 0x6A, 0xCD, 0xBE, 0x8A, 0x99, 0xA1,
- 0x66, 0xA5, 0xD9, 0xCF, 0x32, 0x13, 0x65, 0x06,
- 0xB5, 0x48, 0xD6, 0xC9, 0x47, 0xC2, 0x4C, 0x69,
- 0x9C, 0xEA, 0x3A, 0xFD, 0x92, 0xAD, 0xFA, 0xCA
- },
- {
- 0xBF, 0xB4, 0xD0, 0xC7, 0x11, 0x20, 0x75, 0x26,
- 0x2C, 0x2D, 0xD2, 0x48, 0xF3, 0x34, 0xB2, 0xEF,
- 0x15, 0x40, 0x08, 0x7E, 0xCC, 0x73, 0x82, 0xBC,
- 0x2A, 0x27, 0x25, 0x75, 0xC5, 0x00, 0x9F, 0x70
- },
- {
- 0x17, 0xC9, 0x4B, 0x9C, 0x53, 0x72, 0x43, 0xF2,
- 0x33, 0x5B, 0x86, 0x39, 0x49, 0xB2, 0xB9, 0x1C,
- 0x98, 0xA6, 0x95, 0x6D, 0x7C, 0x10, 0xAA, 0x98,
- 0x99, 0x59, 0xA8, 0x0F, 0x91, 0x0C, 0x25, 0x22
- },
- {
- 0xF6, 0x33, 0x8F, 0x43, 0x4D, 0x31, 0x94, 0x10,
- 0x19, 0x6D, 0x95, 0x19, 0xAB, 0xCA, 0xEF, 0xF7,
- 0xD5, 0x54, 0x39, 0xFD, 0x2A, 0xA5, 0xBA, 0xBF,
- 0x7A, 0x7E, 0x79, 0x13, 0xB2, 0x94, 0xED, 0x4D
- },
- {
- 0x08, 0xEF, 0x7D, 0x65, 0xF9, 0xBB, 0xF3, 0xDA,
- 0x1F, 0x78, 0x84, 0xAE, 0x9B, 0x75, 0x90, 0x1F,
- 0xD8, 0x52, 0x95, 0x66, 0x2A, 0x6E, 0xA7, 0x1D,
- 0xE0, 0x8B, 0xEE, 0x38, 0x34, 0x57, 0x62, 0x78
- },
- {
- 0x16, 0x47, 0xEC, 0xC2, 0xBA, 0x13, 0xF8, 0xB9,
- 0x3B, 0x2F, 0xBC, 0xDC, 0x4E, 0x8F, 0x1D, 0xFA,
- 0x47, 0xFE, 0x3B, 0xE1, 0x2A, 0xAA, 0x0E, 0x45,
- 0x9B, 0x0E, 0x5A, 0x87, 0xF3, 0xA6, 0x9B, 0xB0
- },
- {
- 0xFF, 0x92, 0x7A, 0x71, 0x78, 0x81, 0xF6, 0xFD,
- 0x8E, 0xD8, 0xBF, 0x5D, 0x5E, 0x35, 0xBD, 0x80,
- 0x16, 0x15, 0x73, 0xE5, 0x82, 0x94, 0x04, 0xC3,
- 0x2D, 0x2A, 0x27, 0x6A, 0x01, 0xF4, 0xB9, 0x06
- },
- {
- 0xC8, 0xCA, 0xF1, 0x36, 0xFF, 0x20, 0x9C, 0x82,
- 0xE0, 0x24, 0x0C, 0x1E, 0x62, 0xA3, 0xBC, 0x7E,
- 0x9C, 0xAC, 0x87, 0x3B, 0x01, 0x1C, 0xF7, 0xC5,
- 0xE6, 0x7E, 0xC1, 0x87, 0xA5, 0xFB, 0xCD, 0x96
- },
- {
- 0xD9, 0xAC, 0xC7, 0x3E, 0x3F, 0x42, 0x1E, 0x18,
- 0x83, 0xB5, 0xED, 0x53, 0xD8, 0x2A, 0x9A, 0xEC,
- 0x8F, 0x5D, 0xC9, 0x80, 0xC4, 0x2B, 0xCA, 0xEB,
- 0x0E, 0x7D, 0x89, 0x76, 0xA3, 0x38, 0xEF, 0x51
- },
- {
- 0x9F, 0x17, 0x3F, 0xCF, 0x08, 0xA5, 0x36, 0x21,
- 0x93, 0xF3, 0x52, 0xC8, 0x25, 0x6A, 0xE5, 0x34,
- 0xAE, 0x9C, 0xE7, 0xBF, 0xA4, 0xBC, 0x09, 0xFA,
- 0xC9, 0x00, 0x98, 0xF9, 0x8A, 0x71, 0x62, 0x94
- },
- {
- 0x0A, 0x72, 0x45, 0x79, 0xDC, 0x80, 0xBC, 0x0C,
- 0x90, 0x04, 0xE5, 0x1B, 0xE7, 0xEF, 0xF3, 0xAF,
- 0xA5, 0x30, 0x75, 0xAB, 0x4A, 0x32, 0x55, 0x77,
- 0x33, 0x58, 0x6E, 0x82, 0x0F, 0xD3, 0x64, 0x23
- },
- {
- 0x38, 0xF7, 0xC3, 0x40, 0xF4, 0xB1, 0x59, 0xB1,
- 0xE5, 0x94, 0xF6, 0xEB, 0x83, 0x28, 0x49, 0x17,
- 0xB7, 0xAA, 0x19, 0xC7, 0x4F, 0x57, 0x11, 0x7A,
- 0x4E, 0x08, 0xCF, 0x7C, 0x4E, 0x32, 0xA2, 0x3C
- },
- {
- 0x1C, 0x67, 0x4B, 0xE2, 0x57, 0xE9, 0xB3, 0x31,
- 0x34, 0xD4, 0x16, 0x8F, 0x15, 0x2F, 0x8B, 0x63,
- 0xDF, 0xD7, 0x80, 0xC9, 0x7D, 0xC4, 0xDC, 0x37,
- 0xAC, 0x26, 0xCC, 0x0A, 0xEF, 0xB7, 0x9C, 0x1A
- },
- {
- 0x2F, 0x0C, 0x59, 0x76, 0x16, 0xD5, 0x75, 0x17,
- 0x14, 0xA5, 0xFB, 0x4E, 0xBF, 0x3C, 0x48, 0x1A,
- 0x96, 0xC3, 0xAD, 0x14, 0x5E, 0xBD, 0xE0, 0x65,
- 0x09, 0xF3, 0xA2, 0xE5, 0xF2, 0xC1, 0x3F, 0xC8
- },
- {
- 0xFD, 0xDC, 0x69, 0xE0, 0xC9, 0x83, 0xCD, 0x82,
- 0x83, 0xED, 0x81, 0x88, 0xBE, 0xC4, 0xE5, 0xF4,
- 0x1D, 0xEA, 0x3D, 0x01, 0xB9, 0xE7, 0x4C, 0x4B,
- 0xAF, 0x73, 0x41, 0xD8, 0xB4, 0xBF, 0x55, 0x3D
- },
- {
- 0x24, 0xD0, 0x83, 0xCB, 0xA0, 0x38, 0xC8, 0x7E,
- 0x9A, 0xCB, 0x86, 0x81, 0x82, 0x02, 0x08, 0xB7,
- 0x5C, 0xB3, 0x29, 0x3A, 0x96, 0xC9, 0xEF, 0xA7,
- 0x5D, 0x2C, 0x63, 0xF1, 0x6B, 0x85, 0xFE, 0x1E
- },
- {
- 0x7F, 0x6A, 0x64, 0x9C, 0xCA, 0x89, 0xB2, 0x53,
- 0xFF, 0xBD, 0x20, 0xC0, 0x16, 0x98, 0x01, 0x00,
- 0xA8, 0x7C, 0x16, 0x81, 0x09, 0x62, 0x8F, 0xCC,
- 0x66, 0x52, 0x5D, 0x8B, 0xAA, 0xFE, 0x50, 0x5F
- },
- {
- 0x6D, 0xA3, 0x73, 0xB4, 0xC1, 0x87, 0x92, 0xB3,
- 0x20, 0x9A, 0xDD, 0x15, 0xA5, 0x07, 0x4A, 0x1D,
- 0x70, 0xC1, 0x0B, 0xB3, 0x94, 0x80, 0xCA, 0x3F,
- 0xE5, 0xC4, 0x39, 0xD9, 0x5F, 0xC2, 0x86, 0xCA
- },
- {
- 0x27, 0x0A, 0xFF, 0xA6, 0x42, 0x6F, 0x1A, 0x51,
- 0x5C, 0x9B, 0x76, 0xDF, 0xC2, 0x7D, 0x18, 0x1F,
- 0xC2, 0xFD, 0x57, 0xD0, 0x82, 0xA3, 0xBA, 0x2C,
- 0x1E, 0xEF, 0x07, 0x15, 0x33, 0xA6, 0xDF, 0xB7
- },
- {
- 0xC2, 0x2E, 0x15, 0xCF, 0xC5, 0xA3, 0xD1, 0x4B,
- 0x64, 0xD1, 0x31, 0xF3, 0x5F, 0xB3, 0x5D, 0xD5,
- 0xE6, 0xC5, 0x7D, 0xC4, 0xAF, 0xC5, 0x52, 0x27,
- 0x75, 0x01, 0xEC, 0xA7, 0x64, 0xDA, 0x74, 0xBF
- },
- {
- 0xAD, 0x68, 0x3E, 0x96, 0xB8, 0xAC, 0x65, 0x8C,
- 0x4F, 0x3F, 0x10, 0xAD, 0x22, 0xD9, 0x9B, 0x07,
- 0xCB, 0x5E, 0xF9, 0xE3, 0x1C, 0xBE, 0x11, 0xE7,
- 0xF7, 0xDC, 0x29, 0xF2, 0xAE, 0xE5, 0x02, 0x4C
- },
- {
- 0x78, 0xD3, 0xCE, 0xDA, 0x1C, 0xE0, 0x52, 0x93,
- 0xF4, 0x30, 0xF6, 0x16, 0x7B, 0x33, 0xC9, 0x9F,
- 0x0B, 0x1D, 0x6D, 0xAD, 0xE5, 0x21, 0x43, 0xC2,
- 0x92, 0x55, 0x77, 0xC0, 0xBA, 0x82, 0x53, 0xEB
- },
- {
- 0xE0, 0x06, 0x45, 0x63, 0x44, 0xF9, 0x0F, 0x50,
- 0x1C, 0x25, 0x81, 0x3F, 0x9B, 0xE2, 0xA3, 0xF4,
- 0x0B, 0x98, 0x74, 0xFA, 0x05, 0x63, 0x98, 0x1C,
- 0xD4, 0x56, 0xEE, 0x8D, 0x44, 0x80, 0x7C, 0x93
- },
- {
- 0x39, 0x08, 0xE8, 0xD5, 0x47, 0xC0, 0xAF, 0xB1,
- 0x13, 0x49, 0x49, 0x46, 0x63, 0x04, 0xA1, 0x45,
- 0x02, 0x7E, 0x6B, 0xB7, 0xA7, 0x4D, 0xD1, 0xC1,
- 0x62, 0xCD, 0xF0, 0xBC, 0xF7, 0x72, 0x37, 0xE8
- },
- {
- 0x1B, 0x6C, 0x87, 0xA3, 0x48, 0x38, 0xC7, 0xCD,
- 0x5F, 0xD0, 0x89, 0x14, 0x22, 0x4E, 0x90, 0xC2,
- 0x2A, 0xBF, 0x5A, 0x97, 0xB1, 0x06, 0x46, 0xD9,
- 0x8C, 0x49, 0x16, 0xD3, 0xA8, 0x93, 0x9E, 0x62
- },
- {
- 0xB0, 0xD3, 0x8F, 0x82, 0xF2, 0x48, 0x91, 0x69,
- 0x52, 0xB3, 0x16, 0xB6, 0xD3, 0x6D, 0x9E, 0x02,
- 0x2D, 0xF6, 0xEE, 0xCC, 0x26, 0xC7, 0x62, 0xA6,
- 0x55, 0xCF, 0x5F, 0x0A, 0xE6, 0x49, 0xE2, 0xBD
- },
- {
- 0x8D, 0x66, 0xFC, 0x9C, 0xED, 0xA5, 0xED, 0xDF,
- 0xB1, 0xE0, 0x4D, 0x09, 0x6C, 0xA7, 0x0E, 0xF5,
- 0x06, 0x50, 0xFB, 0x87, 0xCC, 0x6A, 0x9F, 0xFB,
- 0xB3, 0xD2, 0x0B, 0xCE, 0x7B, 0x5A, 0x60, 0x74
- },
- {
- 0x06, 0x43, 0x54, 0xE8, 0xE1, 0x1C, 0xF7, 0x13,
- 0xB2, 0xC7, 0x2B, 0xA6, 0x7A, 0xC7, 0xD7, 0x6E,
- 0x41, 0xBA, 0x61, 0xDB, 0x9C, 0x2D, 0xEA, 0x52,
- 0x2E, 0x0B, 0xDA, 0x17, 0xCB, 0xA5, 0xE3, 0x92
- },
- {
- 0xC8, 0xEF, 0x5F, 0x49, 0x8B, 0xD1, 0xBC, 0x70,
- 0x7F, 0xBC, 0x7B, 0x5C, 0xBC, 0x2D, 0xFF, 0x04,
- 0x93, 0x14, 0x4A, 0xC5, 0x27, 0x86, 0xDB, 0x3C,
- 0x79, 0x3E, 0xF4, 0xAE, 0x8A, 0x83, 0x88, 0x47
- },
- {
- 0x8A, 0x23, 0x97, 0xDF, 0x31, 0xE7, 0xF0, 0xCC,
- 0x29, 0x0D, 0xA9, 0xA8, 0xBB, 0xE4, 0xF5, 0xF7,
- 0xA3, 0xA1, 0x37, 0x50, 0x73, 0x0D, 0xB6, 0x2D,
- 0xC2, 0x54, 0x0F, 0xDB, 0xD6, 0x18, 0x85, 0x89
- },
- {
- 0xF1, 0x2D, 0x0B, 0x13, 0xC6, 0xAD, 0xFB, 0x3B,
- 0xE5, 0x0A, 0x51, 0xEB, 0x6B, 0xAF, 0x65, 0xAB,
- 0xFB, 0x17, 0x00, 0xBA, 0xA8, 0x7E, 0x52, 0x7D,
- 0xBE, 0x3E, 0x67, 0x5A, 0x7A, 0x99, 0x46, 0x61
- },
- {
- 0x10, 0x24, 0xC9, 0x40, 0xBE, 0x73, 0x41, 0x44,
- 0x9B, 0x50, 0x10, 0x52, 0x2B, 0x50, 0x9F, 0x65,
- 0xBB, 0xDC, 0x12, 0x87, 0xB4, 0x55, 0xC2, 0xBB,
- 0x7F, 0x72, 0xB2, 0xC9, 0x2F, 0xD0, 0xD1, 0x89
- },
- {
- 0x52, 0x60, 0x3B, 0x6C, 0xBF, 0xAD, 0x49, 0x66,
- 0xCB, 0x04, 0x4C, 0xB2, 0x67, 0x56, 0x83, 0x85,
- 0xCF, 0x35, 0xF2, 0x1E, 0x6C, 0x45, 0xCF, 0x30,
- 0xAE, 0xD1, 0x98, 0x32, 0xCB, 0x51, 0xE9, 0xF5
- },
- {
- 0xFF, 0xF2, 0x4D, 0x3C, 0xC7, 0x29, 0xD3, 0x95,
- 0xDA, 0xF9, 0x78, 0xB0, 0x15, 0x73, 0x06, 0xCB,
- 0x49, 0x57, 0x97, 0xE6, 0xC8, 0xDC, 0xA1, 0x73,
- 0x1D, 0x2F, 0x6F, 0x81, 0xB8, 0x49, 0xBA, 0xAE
- },
- {
- 0x41, 0xEE, 0xE9, 0x0D, 0x47, 0xEC, 0x27, 0x72,
- 0xCD, 0x35, 0x2D, 0xFD, 0x67, 0xE0, 0x60, 0x5F,
- 0xBD, 0xFC, 0x5F, 0xD6, 0xD8, 0x26, 0x45, 0x1E,
- 0x3D, 0x06, 0x4D, 0x38, 0x28, 0xBD, 0x3B, 0xAE
- },
- {
- 0x30, 0x0B, 0x6B, 0x36, 0xE5, 0x9F, 0x85, 0x1D,
- 0xDD, 0xC2, 0x9B, 0xFA, 0x93, 0x08, 0x25, 0x20,
- 0xCD, 0x77, 0xC5, 0x1E, 0x00, 0x7E, 0x00, 0xD2,
- 0xD7, 0x8B, 0x26, 0xF4, 0xAF, 0x96, 0x15, 0x32
- },
- {
- 0x9E, 0xF3, 0x03, 0x14, 0x83, 0x4E, 0x40, 0x1C,
- 0x87, 0x1A, 0x20, 0x04, 0xE3, 0x8D, 0x5C, 0xE3,
- 0x2E, 0xD2, 0x8E, 0x11, 0x37, 0xF1, 0x97, 0x0F,
- 0x4F, 0x43, 0x78, 0xC7, 0x37, 0x06, 0x76, 0x3D
- },
- {
- 0x3F, 0xBD, 0xCD, 0xE7, 0xB6, 0x43, 0x04, 0x02,
- 0x5E, 0xC0, 0x58, 0x26, 0x09, 0x03, 0x1E, 0xC2,
- 0x66, 0xD5, 0x0F, 0x56, 0x83, 0x5A, 0xE0, 0xCB,
- 0x72, 0xD8, 0xCD, 0xB4, 0xCF, 0xAF, 0x44, 0x19
- },
- {
- 0xE9, 0x0E, 0xAD, 0x3B, 0x98, 0x2B, 0x43, 0x5B,
- 0x66, 0x36, 0x6A, 0x49, 0x6C, 0x3F, 0x8A, 0xE6,
- 0x5B, 0x17, 0x61, 0x37, 0x00, 0xF5, 0x47, 0x67,
- 0x3F, 0x62, 0x15, 0x35, 0x41, 0x91, 0x28, 0x64
- },
- {
- 0xAB, 0xE3, 0x54, 0x7B, 0x33, 0x6D, 0x6E, 0x24,
- 0x0D, 0x7F, 0xE6, 0x82, 0xD7, 0x4B, 0x9C, 0xC7,
- 0xE8, 0xD7, 0xF9, 0xB5, 0x66, 0x48, 0x58, 0xB9,
- 0x4D, 0xF5, 0x9E, 0x9F, 0xC3, 0x30, 0xD9, 0xE5
- },
- {
- 0xB2, 0x99, 0x64, 0x20, 0x95, 0xB8, 0x28, 0x6C,
- 0x52, 0x1C, 0xDB, 0x21, 0xED, 0x0F, 0xE0, 0x57,
- 0x27, 0x80, 0x21, 0xBB, 0x40, 0x38, 0xEB, 0x5A,
- 0x3D, 0x79, 0x54, 0x2F, 0x5D, 0x75, 0x1F, 0x54
- },
- {
- 0xE4, 0xD7, 0x58, 0x35, 0x9F, 0x08, 0x67, 0x93,
- 0xA8, 0x37, 0x54, 0xAC, 0xA6, 0x96, 0x8C, 0x3E,
- 0x9F, 0xD9, 0x4B, 0x40, 0x49, 0x7F, 0x2E, 0xC2,
- 0x24, 0xA2, 0x91, 0x60, 0x63, 0xA2, 0x14, 0xA3
- },
- {
- 0x59, 0xA3, 0x04, 0xFC, 0x03, 0xAB, 0x75, 0xD5,
- 0x57, 0xDB, 0x04, 0xEB, 0xD0, 0x2D, 0xD4, 0xC6,
- 0xB8, 0x10, 0xA1, 0x38, 0xBB, 0xFE, 0xEA, 0x5D,
- 0xFC, 0xEE, 0xAA, 0x2B, 0x75, 0xB0, 0x64, 0x91
- },
- {
- 0x39, 0x95, 0x10, 0x22, 0x15, 0xF5, 0xFE, 0x92,
- 0x10, 0xEB, 0x30, 0xD9, 0x52, 0xD8, 0xC9, 0x19,
- 0x58, 0x9E, 0x71, 0x45, 0xFC, 0xD4, 0x95, 0xEA,
- 0x78, 0xD0, 0x2B, 0x9C, 0x14, 0x8F, 0xAF, 0x09
- },
- {
- 0x47, 0x2E, 0xE7, 0x11, 0x56, 0x35, 0x06, 0xA5,
- 0xF0, 0x08, 0x3F, 0xE8, 0x2B, 0x08, 0xB9, 0x92,
- 0x3C, 0xF6, 0xC8, 0x40, 0x4D, 0x0C, 0xBA, 0xCB,
- 0xF8, 0x48, 0x64, 0xF6, 0x48, 0x54, 0x2A, 0xC0
- },
- {
- 0x68, 0xFD, 0xB8, 0x2A, 0xDA, 0xE7, 0x9B, 0xEF,
- 0x59, 0x0A, 0xBA, 0x62, 0xD7, 0xAC, 0x55, 0x32,
- 0x12, 0x06, 0x1C, 0x36, 0xE3, 0x6F, 0x12, 0xC0,
- 0xEF, 0xA2, 0x9A, 0x17, 0x62, 0xDE, 0x3B, 0x6A
- },
- {
- 0x75, 0x85, 0xC0, 0x77, 0x33, 0x83, 0xF1, 0x74,
- 0xFD, 0x66, 0x65, 0x49, 0xA8, 0x35, 0x2B, 0x30,
- 0x5B, 0xF6, 0x85, 0x5B, 0xC9, 0x8B, 0xEA, 0x28,
- 0xC3, 0x91, 0xB3, 0xC0, 0x34, 0xDA, 0x5A, 0x5A
- },
- {
- 0xAC, 0xC5, 0x75, 0xFE, 0x2C, 0xD7, 0xBA, 0x2A,
- 0x31, 0xFC, 0x7D, 0x67, 0x0A, 0x92, 0x34, 0xAF,
- 0x68, 0x50, 0x33, 0x86, 0xE9, 0x59, 0x07, 0x3D,
- 0x16, 0xA8, 0x1B, 0x33, 0xB9, 0x22, 0xB5, 0x0E
- },
- {
- 0x9E, 0xC7, 0xD2, 0x99, 0x59, 0x43, 0xD3, 0x9D,
- 0x6B, 0x97, 0x14, 0x93, 0xB8, 0x97, 0xA0, 0xEE,
- 0x2D, 0x33, 0x92, 0xA7, 0x2D, 0xB8, 0x75, 0xC2,
- 0x40, 0x5D, 0x35, 0x71, 0x78, 0xFB, 0x69, 0x11
- },
- {
- 0x2D, 0x7E, 0xF1, 0x94, 0x01, 0x42, 0x5A, 0xBA,
- 0x45, 0x0E, 0x82, 0xD3, 0x6D, 0x0F, 0xE7, 0xB2,
- 0x08, 0x5E, 0xA0, 0xAF, 0x60, 0x45, 0xA5, 0x99,
- 0x4C, 0xF4, 0x31, 0xEA, 0x59, 0x93, 0x9C, 0xC9
- },
- {
- 0xF3, 0x2F, 0xD8, 0x55, 0xF0, 0x11, 0xC7, 0x18,
- 0x02, 0x7F, 0x2E, 0xBE, 0x37, 0x7D, 0x69, 0x39,
- 0xF1, 0x23, 0x70, 0xCA, 0xFF, 0x15, 0x1C, 0x1E,
- 0x5A, 0xCE, 0x43, 0x8D, 0x70, 0x3C, 0x6D, 0x9F
- },
- {
- 0xB2, 0xBD, 0x83, 0xD2, 0x31, 0x0D, 0x3D, 0x7B,
- 0x1D, 0x2D, 0x5A, 0xAF, 0x43, 0x59, 0xFA, 0xE2,
- 0x86, 0x12, 0x96, 0x27, 0x19, 0xFD, 0xDE, 0x4D,
- 0xDA, 0xF6, 0x9E, 0x78, 0x20, 0xF3, 0x3F, 0x61
- },
- {
- 0x1A, 0x7A, 0x9D, 0x0F, 0x44, 0xDD, 0xFA, 0x7F,
- 0xC2, 0xF4, 0x77, 0x0C, 0xAD, 0x74, 0x22, 0xFA,
- 0x6C, 0x4E, 0x37, 0xE6, 0xCB, 0x03, 0x6D, 0x89,
- 0x9E, 0x10, 0x27, 0x50, 0xE5, 0x94, 0xFF, 0xCD
- },
- {
- 0xDC, 0x69, 0xF6, 0x14, 0x1C, 0x8E, 0x10, 0x3F,
- 0xF6, 0x1F, 0x62, 0x98, 0xA2, 0xC4, 0x4F, 0x52,
- 0xD1, 0x47, 0x36, 0x6D, 0xDB, 0xD9, 0xC7, 0x9C,
- 0xC3, 0x08, 0xFE, 0x84, 0x33, 0x6A, 0x95, 0x64
- },
- {
- 0xE3, 0x4E, 0xD4, 0x17, 0xB0, 0x79, 0x1D, 0x9A,
- 0x77, 0xEE, 0x1E, 0x50, 0xCC, 0x2C, 0x20, 0x7E,
- 0x54, 0x0C, 0x77, 0x14, 0x04, 0x21, 0xC4, 0x6C,
- 0xE0, 0x86, 0x28, 0x78, 0xAA, 0xEB, 0x27, 0x09
- },
- {
- 0x21, 0x74, 0x42, 0x5C, 0x8C, 0xCA, 0xE3, 0x98,
- 0xC4, 0xFF, 0x06, 0xF8, 0x48, 0x99, 0x1C, 0x5E,
- 0x9B, 0xC0, 0xF3, 0x46, 0x11, 0x11, 0x70, 0x6F,
- 0xB9, 0x5D, 0x0B, 0xE1, 0xC6, 0x8E, 0x47, 0x60
- },
- {
- 0x18, 0x94, 0x58, 0x2A, 0x8A, 0x25, 0xFE, 0x8F,
- 0x84, 0x7A, 0x4A, 0x03, 0x25, 0x74, 0xB7, 0x7B,
- 0x8B, 0x36, 0xBF, 0x19, 0x99, 0x75, 0x26, 0xBB,
- 0x4B, 0xC8, 0x5F, 0x38, 0x24, 0x53, 0x7F, 0xEB
- },
- {
- 0x17, 0xED, 0x18, 0x8A, 0xE3, 0xC9, 0x53, 0xD6,
- 0x55, 0x44, 0x59, 0x83, 0xB8, 0x32, 0x5B, 0xAF,
- 0xFF, 0x32, 0xE2, 0x22, 0xB2, 0xDF, 0xEB, 0x16,
- 0xE8, 0x61, 0x7A, 0xBF, 0x86, 0xEE, 0x7C, 0xC5
- },
- {
- 0xF1, 0x48, 0x9A, 0xD1, 0xC3, 0x54, 0xCD, 0xE9,
- 0x78, 0x92, 0x37, 0xEA, 0x6D, 0xBF, 0x67, 0xFC,
- 0x1E, 0x44, 0xD1, 0xAC, 0xC8, 0xDC, 0x66, 0xAD,
- 0x83, 0x87, 0x27, 0xF4, 0x7D, 0x9A, 0x91, 0xFE
- },
- {
- 0x36, 0x7F, 0x22, 0x16, 0x5B, 0x8B, 0x66, 0xE9,
- 0x7F, 0x66, 0x70, 0xF3, 0x4E, 0xBA, 0x27, 0x49,
- 0xD2, 0x64, 0x3B, 0x21, 0xBE, 0xAD, 0xAD, 0xFE,
- 0xFE, 0xA2, 0x57, 0x4B, 0x7C, 0x9B, 0x21, 0x96
- },
- {
- 0x3D, 0x8D, 0xFE, 0xA1, 0x7E, 0xEA, 0x5D, 0x64,
- 0x5A, 0xC1, 0xD4, 0x1A, 0x5B, 0x59, 0x22, 0x6C,
- 0x48, 0x6C, 0x36, 0xBD, 0x77, 0xED, 0x44, 0xBB,
- 0x34, 0x91, 0x70, 0xD0, 0x80, 0xE3, 0x0E, 0x68
- },
- {
- 0x41, 0x15, 0xF8, 0x9E, 0x0B, 0x3B, 0x5C, 0x8F,
- 0x61, 0x22, 0xC0, 0x25, 0x00, 0x17, 0x1D, 0xCF,
- 0xFB, 0xCE, 0xA4, 0x66, 0x2A, 0x8C, 0x5F, 0x8C,
- 0x1C, 0x01, 0xA9, 0xCA, 0x7B, 0x10, 0x27, 0xBB
- },
- {
- 0xED, 0x6E, 0x91, 0x0B, 0x96, 0x02, 0x55, 0xD7,
- 0xD7, 0x92, 0xEB, 0xE6, 0x7F, 0x26, 0x0A, 0x14,
- 0x3C, 0xFA, 0xC1, 0x05, 0x1D, 0xFC, 0x05, 0x90,
- 0x25, 0xEE, 0x0C, 0x1B, 0xFC, 0xBC, 0x56, 0x81
- },
- {
- 0x55, 0x8F, 0xA8, 0xAF, 0xA1, 0x2B, 0xBE, 0xE5,
- 0x4A, 0xF7, 0x8F, 0x6B, 0x74, 0x45, 0xF9, 0x96,
- 0x65, 0xD4, 0xE3, 0x56, 0xBC, 0x07, 0xD3, 0xEF,
- 0xFD, 0x8F, 0xD6, 0x5A, 0xB9, 0xC7, 0x47, 0x16
- },
- {
- 0x5B, 0x60, 0x12, 0x76, 0x20, 0x53, 0xB8, 0x73,
- 0x4A, 0xF0, 0xE5, 0x55, 0xE6, 0xA2, 0xBB, 0x4F,
- 0xD4, 0x84, 0x0A, 0xF3, 0xB0, 0x4F, 0xCF, 0x63,
- 0x50, 0xA2, 0xB8, 0xA5, 0x1B, 0x67, 0x96, 0xAD
- },
- {
- 0xAB, 0x7A, 0xCC, 0xA5, 0xD7, 0x77, 0x10, 0xBA,
- 0xD3, 0x7B, 0xA0, 0xFF, 0x4C, 0xEA, 0xE2, 0x7E,
- 0x84, 0x71, 0x79, 0xF7, 0xFD, 0x7A, 0xEC, 0x88,
- 0x69, 0xC6, 0x49, 0xB3, 0x3F, 0x8D, 0x25, 0x77
- },
- {
- 0xFF, 0x77, 0x30, 0xB4, 0x74, 0xEC, 0x21, 0x45,
- 0xA9, 0x2D, 0xD1, 0xCF, 0xFE, 0x45, 0xC3, 0x42,
- 0xC6, 0xFD, 0x6B, 0xAC, 0x58, 0x0F, 0xF9, 0x5A,
- 0x75, 0xED, 0xA3, 0xBF, 0x90, 0xEB, 0x4F, 0x01
- },
- {
- 0xD1, 0x0F, 0x06, 0x1D, 0x5B, 0x9C, 0xB4, 0x4E,
- 0xE0, 0x78, 0xA9, 0x6B, 0x33, 0x18, 0x57, 0x9E,
- 0x5E, 0xF5, 0x0A, 0xEF, 0x3E, 0xD9, 0x6E, 0x4F,
- 0x62, 0x14, 0x9B, 0x2E, 0x9F, 0x7C, 0x66, 0x0C
- },
- {
- 0x67, 0xD2, 0x2B, 0x8E, 0xDF, 0x20, 0x01, 0xD8,
- 0x64, 0x22, 0x13, 0x6A, 0xC6, 0x51, 0x6C, 0xF3,
- 0x9F, 0x7F, 0xC6, 0xA7, 0x02, 0x98, 0x92, 0xFD,
- 0x75, 0xC9, 0x87, 0x90, 0x96, 0x4A, 0x72, 0x0B
- },
- {
- 0x7A, 0x5E, 0xC5, 0xBA, 0x76, 0x25, 0x9B, 0x07,
- 0xB4, 0xDA, 0x03, 0xF3, 0x81, 0xFE, 0x7B, 0xEA,
- 0x48, 0x65, 0xC8, 0x6C, 0x42, 0x4A, 0xBA, 0xA0,
- 0xDD, 0x1E, 0xCF, 0x74, 0xF8, 0x7D, 0x2A, 0xC0
- },
- {
- 0xE0, 0xFF, 0x60, 0xD6, 0x90, 0x29, 0xE6, 0xBD,
- 0x1C, 0x15, 0x95, 0x3E, 0x91, 0x50, 0x9C, 0x0C,
- 0x59, 0xED, 0x5D, 0xA5, 0x00, 0x01, 0x99, 0xF2,
- 0x16, 0xD2, 0x9F, 0x96, 0x07, 0x9C, 0x2F, 0xEF
- },
- {
- 0xFC, 0x13, 0xEA, 0xD8, 0x41, 0x01, 0x8F, 0x59,
- 0x90, 0x3B, 0x40, 0xF2, 0x02, 0x0C, 0x66, 0x38,
- 0xA6, 0x6A, 0x54, 0xC3, 0xA3, 0x38, 0x41, 0x4D,
- 0x97, 0xA5, 0xC3, 0x94, 0xF3, 0x26, 0x6F, 0x33
- },
- {
- 0x0C, 0x2F, 0x62, 0xB8, 0x98, 0xFB, 0x2F, 0x63,
- 0x61, 0x7E, 0x78, 0x73, 0x45, 0x26, 0x3C, 0xB9,
- 0xCF, 0x60, 0x65, 0x4B, 0x55, 0x3B, 0x20, 0x3E,
- 0xE4, 0x9D, 0xCB, 0xB8, 0xF2, 0xA6, 0xAF, 0xAC
- },
- {
- 0xD7, 0xD6, 0xCB, 0x55, 0x2A, 0xEB, 0x36, 0xEB,
- 0x96, 0xB1, 0xD5, 0xE0, 0x52, 0xF8, 0xD9, 0x21,
- 0xC3, 0x24, 0x5A, 0x97, 0x0D, 0x0B, 0xC8, 0x41,
- 0x0C, 0xD6, 0x5E, 0xA1, 0x04, 0xC8, 0xE7, 0x79
- },
- {
- 0xB7, 0x14, 0x1F, 0x30, 0x5E, 0xFD, 0xFE, 0xE5,
- 0x56, 0xBD, 0x13, 0xE0, 0x40, 0x0D, 0x1E, 0x8C,
- 0xFD, 0x65, 0x48, 0xBF, 0x81, 0xEE, 0x5D, 0x15,
- 0x32, 0x7E, 0x49, 0x95, 0xCA, 0x8A, 0xD6, 0xFD
- },
- {
- 0xB6, 0xB6, 0x38, 0xD2, 0x2B, 0x7A, 0x12, 0x82,
- 0x53, 0x74, 0xF7, 0x03, 0x48, 0xD7, 0x44, 0x8D,
- 0x4E, 0x7D, 0x90, 0x8C, 0xF6, 0xE7, 0xBB, 0xEF,
- 0x8C, 0x93, 0xEF, 0x67, 0x9B, 0x2A, 0x54, 0x78
- },
- {
- 0x0D, 0xF4, 0x58, 0x56, 0x41, 0xFA, 0x09, 0xF6,
- 0xCB, 0xA4, 0xCC, 0x16, 0x5A, 0x10, 0xAD, 0xDE,
- 0x34, 0xF8, 0x0D, 0x42, 0x5A, 0x70, 0xDB, 0x67,
- 0xE2, 0xFD, 0x23, 0x7B, 0x62, 0x7F, 0x43, 0x8A
- },
- {
- 0x10, 0x6B, 0x2B, 0x35, 0x4D, 0x95, 0xAC, 0xEC,
- 0xD0, 0xD9, 0x58, 0x8F, 0xBC, 0x23, 0x1F, 0x8B,
- 0xEA, 0x2E, 0x94, 0xEA, 0x66, 0x2D, 0xDD, 0x3F,
- 0x13, 0x9E, 0x1B, 0x67, 0x87, 0x46, 0x1E, 0xED
- },
- {
- 0xAE, 0x5C, 0x69, 0xEE, 0xFE, 0x90, 0x89, 0xB2,
- 0x9C, 0x6C, 0x1A, 0x23, 0x70, 0xD2, 0x05, 0x52,
- 0xBA, 0x40, 0xC3, 0xD5, 0xE3, 0x71, 0x3C, 0x12,
- 0xDE, 0xFC, 0xAE, 0x99, 0x7F, 0x43, 0x3E, 0xCD
- },
- {
- 0x1A, 0xAE, 0xF5, 0x5D, 0x4F, 0xA8, 0x92, 0xB6,
- 0x35, 0xFB, 0x2A, 0x7A, 0x25, 0xF9, 0xA8, 0xE0,
- 0x3B, 0x9F, 0xFB, 0x08, 0x2A, 0xE9, 0xC0, 0x7C,
- 0x20, 0x42, 0xA0, 0x49, 0xC6, 0x51, 0x5E, 0x45
- },
- {
- 0x29, 0x7D, 0xAA, 0xC4, 0xD5, 0x4D, 0xC4, 0x1C,
- 0x83, 0xE3, 0x23, 0x94, 0x59, 0x9F, 0x17, 0x1C,
- 0xDA, 0xA9, 0xDD, 0xB7, 0x17, 0x26, 0xDA, 0x4E,
- 0xCE, 0x3C, 0xCF, 0x95, 0xC1, 0x1F, 0x56, 0xDF
- },
- {
- 0x2C, 0x45, 0xAC, 0xF4, 0x91, 0xEC, 0x2F, 0x4B,
- 0x7E, 0x30, 0x9E, 0x7E, 0xDD, 0x81, 0x5B, 0xE5,
- 0xA5, 0x4C, 0x44, 0x58, 0xD1, 0xA5, 0x7C, 0x4F,
- 0x9B, 0x76, 0x3B, 0x0C, 0x67, 0x18, 0xD4, 0x3E
- },
- {
- 0x2F, 0x92, 0xF9, 0x01, 0x70, 0xD3, 0xAE, 0x95,
- 0xAB, 0xFA, 0xC3, 0xA6, 0x98, 0x9A, 0x2A, 0x60,
- 0xCB, 0x28, 0xB8, 0x58, 0x78, 0x2B, 0xE7, 0xEA,
- 0x17, 0x9B, 0x48, 0xA7, 0x27, 0x6D, 0xD8, 0x60
- },
- {
- 0xB4, 0x01, 0xE8, 0x4B, 0x15, 0xAC, 0xC4, 0x70,
- 0x93, 0x6D, 0x6E, 0x37, 0xF7, 0x88, 0x83, 0x33,
- 0x09, 0x27, 0x31, 0x13, 0x3B, 0x25, 0x1B, 0xEA,
- 0x22, 0x16, 0x58, 0xCA, 0x19, 0xA7, 0x56, 0x69
- },
- {
- 0xF8, 0xB3, 0x40, 0xD2, 0xB9, 0xB3, 0x3D, 0x43,
- 0xA0, 0xA6, 0x6F, 0x34, 0x97, 0x82, 0x0A, 0xFA,
- 0xAE, 0xE4, 0x34, 0xC4, 0xE3, 0xC0, 0xC1, 0x7E,
- 0x89, 0x8B, 0x83, 0x01, 0xC5, 0x7A, 0x26, 0xBD
- },
- {
- 0x56, 0x6D, 0xA2, 0x83, 0x99, 0x03, 0x89, 0x13,
- 0x8A, 0xA6, 0xF2, 0xAA, 0xA3, 0xB9, 0xE4, 0x0C,
- 0xBF, 0x90, 0x84, 0x0E, 0xC7, 0x62, 0xBD, 0x96,
- 0xB7, 0xE3, 0x3A, 0x31, 0x13, 0xB1, 0x01, 0x08
- },
- {
- 0x34, 0x06, 0x72, 0xB7, 0x04, 0x67, 0x60, 0x42,
- 0xC9, 0xBF, 0x3F, 0x33, 0x7B, 0xA7, 0x9F, 0x11,
- 0x33, 0x6A, 0xEB, 0xB5, 0xEC, 0x5D, 0x31, 0xDF,
- 0x54, 0xEB, 0x6A, 0xD3, 0xB0, 0x43, 0x04, 0x42
- },
- {
- 0x50, 0x50, 0xB7, 0x3B, 0x93, 0x16, 0xEE, 0xA2,
- 0xF1, 0x49, 0xBF, 0xFD, 0x22, 0xAE, 0xE3, 0x84,
- 0xDC, 0x54, 0x03, 0xB1, 0x8E, 0x16, 0xFA, 0x88,
- 0x82, 0x5E, 0x18, 0x16, 0x09, 0x49, 0x6F, 0xD2
- },
- {
- 0x13, 0x65, 0xCC, 0x6F, 0xB9, 0x26, 0x0E, 0x86,
- 0x88, 0x9B, 0x3A, 0xFB, 0xD1, 0xC8, 0xBC, 0x12,
- 0x92, 0x31, 0x97, 0x71, 0x5D, 0xB2, 0x66, 0xCC,
- 0x7A, 0x01, 0xCA, 0x57, 0x15, 0x9F, 0x75, 0x96
- },
- {
- 0x29, 0x46, 0x6F, 0x51, 0xC0, 0x11, 0xFD, 0x10,
- 0x18, 0x14, 0x94, 0xA9, 0x37, 0x9B, 0x61, 0x59,
- 0xB8, 0x08, 0xAE, 0x0F, 0xCB, 0x01, 0x61, 0xF8,
- 0xF0, 0x79, 0x09, 0xFF, 0x04, 0x1B, 0x19, 0x65
- },
- {
- 0x65, 0x91, 0xA3, 0xC3, 0xC7, 0x67, 0xB3, 0x8D,
- 0x80, 0x5E, 0xD3, 0xF7, 0xEB, 0x67, 0x63, 0xE8,
- 0xB3, 0xD2, 0xD6, 0x42, 0xE7, 0x30, 0x77, 0x45,
- 0xCD, 0x34, 0x18, 0xEF, 0xF6, 0x9A, 0x19, 0xED
- },
- {
- 0x1D, 0x84, 0xB0, 0x4B, 0x13, 0x38, 0xB0, 0xD2,
- 0xE3, 0xC9, 0x8F, 0x7A, 0xEA, 0x3E, 0x98, 0xEF,
- 0xFC, 0x53, 0x0A, 0x50, 0x44, 0xB9, 0x3B, 0x96,
- 0xC6, 0x7E, 0xE3, 0x79, 0xD6, 0x2E, 0x81, 0x5F
- },
- {
- 0x6F, 0xA2, 0x95, 0x27, 0x25, 0x32, 0xE9, 0x83,
- 0xE1, 0x66, 0xB1, 0x2E, 0x49, 0x99, 0xC0, 0x52,
- 0xF8, 0x9D, 0x9F, 0x30, 0xAE, 0x14, 0x81, 0xF3,
- 0xD6, 0x0E, 0xAE, 0x85, 0xF8, 0xEE, 0x17, 0x8A
- },
- {
- 0x4E, 0xD8, 0xCA, 0xA9, 0x8E, 0xC3, 0x9F, 0x6A,
- 0x62, 0x9F, 0x9A, 0x65, 0x4A, 0x44, 0x7E, 0x7E,
- 0x3E, 0x4F, 0xAE, 0xEC, 0xF3, 0x4D, 0xCF, 0x65,
- 0x8D, 0x2D, 0x4B, 0x98, 0xB7, 0xA2, 0xEC, 0x1A
- },
- {
- 0xCF, 0xAB, 0x82, 0x99, 0xA0, 0xDA, 0x0C, 0x2A,
- 0x7E, 0x8F, 0xF5, 0x4D, 0x0A, 0x67, 0x6D, 0x14,
- 0x1A, 0xB2, 0x6B, 0xC0, 0x01, 0x2E, 0x5F, 0x66,
- 0x8E, 0x85, 0xD8, 0x14, 0xBC, 0x98, 0x88, 0xB0
- },
- {
- 0xA6, 0x26, 0x54, 0x3C, 0x27, 0x1F, 0xCC, 0xC3,
- 0xE4, 0x45, 0x0B, 0x48, 0xD6, 0x6B, 0xC9, 0xCB,
- 0xDE, 0xB2, 0x5E, 0x5D, 0x07, 0x7A, 0x62, 0x13,
- 0xCD, 0x90, 0xCB, 0xBD, 0x0F, 0xD2, 0x20, 0x76
- },
- {
- 0x05, 0xCF, 0x3A, 0x90, 0x04, 0x91, 0x16, 0xDC,
- 0x60, 0xEF, 0xC3, 0x15, 0x36, 0xAA, 0xA3, 0xD1,
- 0x67, 0x76, 0x29, 0x94, 0x89, 0x28, 0x76, 0xDC,
- 0xB7, 0xEF, 0x3F, 0xBE, 0xCD, 0x74, 0x49, 0xC0
- },
- {
- 0xCC, 0xD6, 0x1C, 0x92, 0x6C, 0xC1, 0xE5, 0xE9,
- 0x12, 0x8C, 0x02, 0x1C, 0x0C, 0x6E, 0x92, 0xAE,
- 0xFC, 0x4F, 0xFB, 0xDE, 0x39, 0x4D, 0xD6, 0xF3,
- 0xB7, 0xD8, 0x7A, 0x8C, 0xED, 0x89, 0x60, 0x14
- },
- {
- 0x3F, 0xFA, 0x4F, 0x6D, 0xAF, 0xA5, 0x7F, 0x1C,
- 0x50, 0xF1, 0xAF, 0xA4, 0xF8, 0x12, 0x92, 0xAE,
- 0x71, 0xA0, 0x6F, 0xE4, 0xF8, 0xFF, 0x46, 0xC5,
- 0x1D, 0x32, 0xFF, 0x26, 0x13, 0x48, 0x9F, 0x2B
- },
- {
- 0x19, 0xD3, 0x92, 0x1C, 0xFC, 0x0F, 0x1A, 0x2B,
- 0xB8, 0x13, 0xB3, 0xDF, 0xA9, 0x6D, 0xF9, 0x0E,
- 0x2C, 0x6B, 0x87, 0xD7, 0x8E, 0x92, 0x38, 0xF8,
- 0x5B, 0xBC, 0x77, 0xAE, 0x9A, 0x73, 0xF9, 0x8F
- },
- {
- 0xF5, 0xC9, 0x16, 0xFF, 0x2B, 0xAD, 0xDE, 0x3E,
- 0x29, 0xA5, 0xF9, 0x40, 0x23, 0x3E, 0xA3, 0x40,
- 0x07, 0xD8, 0xF1, 0x82, 0xA4, 0x8A, 0x80, 0x8B,
- 0x46, 0xBB, 0x80, 0x58, 0x00, 0x3F, 0x19, 0x03
- },
- {
- 0x6B, 0xA0, 0x7A, 0x1A, 0xF7, 0x58, 0xE6, 0x82,
- 0xD3, 0xE0, 0x9A, 0xDD, 0x2D, 0x3D, 0xCD, 0xF3,
- 0x5D, 0x95, 0x53, 0xF6, 0x79, 0x98, 0x54, 0xA2,
- 0x7E, 0x53, 0x60, 0x63, 0xC5, 0x7F, 0x81, 0xA5
- },
- {
- 0xB7, 0x83, 0x78, 0xFB, 0x44, 0x6C, 0x54, 0x4B,
- 0x04, 0xD4, 0xA1, 0x52, 0xAC, 0x49, 0x57, 0x31,
- 0x61, 0xB3, 0xDD, 0xEB, 0xF6, 0x93, 0x86, 0x77,
- 0x0A, 0x55, 0xA7, 0xD4, 0x7B, 0x88, 0x0E, 0x5D
- },
- {
- 0xB5, 0x19, 0x53, 0x8F, 0xE1, 0x62, 0x6F, 0x0C,
- 0x59, 0x59, 0x45, 0xAD, 0xA5, 0x8A, 0x34, 0x4F,
- 0xAA, 0xC0, 0x06, 0x17, 0x61, 0xCC, 0x9D, 0x4A,
- 0x84, 0x14, 0x19, 0xBD, 0x32, 0xEE, 0xC0, 0xD9
- },
- {
- 0x96, 0xE4, 0x88, 0xB0, 0x27, 0x89, 0x64, 0x13,
- 0xF4, 0x03, 0x4B, 0x03, 0x54, 0xF4, 0x84, 0x84,
- 0xF6, 0xCF, 0xC1, 0x0F, 0x8E, 0xC5, 0x7B, 0x02,
- 0x6F, 0xD2, 0x1A, 0x3B, 0x88, 0x36, 0x1A, 0x74
- },
- {
- 0x77, 0x0C, 0x8A, 0x5F, 0x47, 0xBF, 0xD7, 0x69,
- 0xCE, 0xD3, 0x5A, 0x71, 0xAF, 0xC3, 0xCA, 0x1F,
- 0xF4, 0xC1, 0xF1, 0xE7, 0xCC, 0x3D, 0x23, 0x56,
- 0xDE, 0x94, 0x50, 0x04, 0x36, 0x8D, 0x81, 0x45
- },
- {
- 0x6D, 0xF9, 0xD8, 0xD0, 0xD3, 0xA8, 0xD9, 0x8C,
- 0x83, 0x50, 0xD7, 0x16, 0x2B, 0xD1, 0x55, 0x79,
- 0xD5, 0x70, 0x7A, 0xDD, 0x76, 0x11, 0xA0, 0x0E,
- 0xEB, 0x6C, 0xA5, 0x74, 0x3E, 0xD7, 0x8C, 0xB7
- },
- {
- 0x4F, 0x0F, 0xE8, 0xFC, 0x17, 0x90, 0x15, 0x91,
- 0xCF, 0x34, 0x87, 0x30, 0xE1, 0x87, 0xDE, 0x52,
- 0x3D, 0x6D, 0x75, 0x68, 0xC1, 0xFB, 0xD8, 0x24,
- 0x85, 0x91, 0x39, 0x85, 0xEB, 0x67, 0x97, 0x1C
- },
- {
- 0x0E, 0xF3, 0xBB, 0x35, 0xCF, 0x37, 0x2B, 0xD9,
- 0x4E, 0x3F, 0x80, 0xEE, 0xCE, 0xBD, 0x50, 0xEF,
- 0x0D, 0x03, 0x08, 0xE0, 0x1E, 0x0E, 0xD6, 0xDE,
- 0x0F, 0x5A, 0x8A, 0x8C, 0x81, 0x8A, 0x00, 0x74
- },
- {
- 0xC0, 0x38, 0xD3, 0xE8, 0x09, 0xA5, 0xE3, 0xA5,
- 0x8D, 0xB2, 0xF9, 0x1C, 0x15, 0xAE, 0x12, 0x43,
- 0x95, 0x78, 0xF7, 0x54, 0x85, 0xCD, 0x84, 0xF5,
- 0x56, 0xC6, 0x97, 0x1E, 0x8E, 0x25, 0x06, 0x20
- },
- {
- 0xCE, 0x39, 0x9A, 0x0F, 0x08, 0x27, 0x7D, 0x8D,
- 0x48, 0x16, 0x09, 0x50, 0x60, 0xEB, 0xBF, 0x33,
- 0xDA, 0x01, 0x6F, 0xB4, 0x3A, 0x6C, 0x35, 0x6D,
- 0x5A, 0x3F, 0xE4, 0xBB, 0x57, 0x4C, 0x5E, 0x7B
- },
- {
- 0x86, 0x9F, 0x7E, 0x31, 0x6B, 0x19, 0x4F, 0x95,
- 0x31, 0xBC, 0xAF, 0x33, 0xF7, 0x91, 0x3F, 0x1B,
- 0x9C, 0xFC, 0x6B, 0xB5, 0xDC, 0xF8, 0x6B, 0x69,
- 0x2B, 0xF8, 0xCA, 0xB2, 0x9B, 0x8A, 0xA9, 0x6F
- },
- {
- 0x32, 0x7D, 0xFA, 0x46, 0x44, 0x59, 0xD9, 0xE4,
- 0x8F, 0x5E, 0x55, 0xC7, 0xF5, 0xBA, 0xA6, 0x8F,
- 0xC4, 0xA2, 0x5A, 0xD6, 0x22, 0xBC, 0x7B, 0xF0,
- 0x1A, 0xCA, 0x82, 0xFD, 0x5E, 0x72, 0x31, 0x4C
- },
- {
- 0xE0, 0x0D, 0xAD, 0x31, 0x51, 0xB9, 0x08, 0x5E,
- 0xAE, 0x78, 0x69, 0x84, 0xFE, 0x20, 0x73, 0x52,
- 0x32, 0xB7, 0xFF, 0x7F, 0x1B, 0x1D, 0xB7, 0x96,
- 0x1F, 0xD0, 0xD0, 0xE0, 0xF6, 0x05, 0xDB, 0x9A
- },
- {
- 0x07, 0x6F, 0x64, 0x45, 0x20, 0xD0, 0xB4, 0x73,
- 0x2D, 0x6C, 0x53, 0x1C, 0x93, 0x49, 0x08, 0x90,
- 0x26, 0x93, 0x6D, 0x99, 0x82, 0x04, 0x61, 0xDA,
- 0x87, 0x74, 0x9A, 0x52, 0x0F, 0xBE, 0x90, 0xCE
- },
- {
- 0xB4, 0x41, 0x4C, 0xA1, 0x37, 0x3B, 0xE4, 0x6F,
- 0x15, 0xCE, 0xA6, 0xB1, 0x25, 0x5A, 0x7D, 0x18,
- 0x86, 0xC6, 0xFD, 0xB0, 0x8E, 0xD5, 0xAF, 0x96,
- 0x57, 0xD5, 0xAA, 0xC3, 0x17, 0xDE, 0x3A, 0x29
- },
- {
- 0x8D, 0x1A, 0xB0, 0x26, 0x3D, 0xAB, 0x7B, 0x86,
- 0xEC, 0xEE, 0x21, 0x91, 0x62, 0xD9, 0x99, 0xA0,
- 0x12, 0x45, 0x57, 0x22, 0x69, 0xDE, 0x31, 0x10,
- 0x0E, 0x5D, 0x88, 0xFC, 0x1B, 0x1E, 0xAA, 0x69
- },
- {
- 0xB4, 0x8D, 0x1C, 0x1F, 0x83, 0x92, 0x4A, 0x02,
- 0xA2, 0x3E, 0x5E, 0x0F, 0x97, 0x1E, 0x16, 0xE8,
- 0x7F, 0xC4, 0x88, 0x48, 0x53, 0x83, 0x34, 0x85,
- 0x19, 0x1A, 0x2B, 0x60, 0x72, 0x2F, 0xE2, 0x69
- },
- {
- 0xF2, 0xED, 0xD5, 0xF7, 0x50, 0xA2, 0x0A, 0x54,
- 0x1D, 0x3F, 0x6B, 0xD5, 0xDF, 0x80, 0x83, 0x8F,
- 0x11, 0x82, 0x5B, 0x25, 0xA9, 0x8F, 0x3D, 0xA5,
- 0xE1, 0x52, 0x3B, 0xFF, 0x81, 0x3B, 0xB5, 0x60
- },
- {
- 0x07, 0x16, 0x60, 0x04, 0xEF, 0x88, 0xE1, 0x61,
- 0x4E, 0xBD, 0xC8, 0x87, 0xDF, 0xC7, 0xDA, 0x42,
- 0xEB, 0xCD, 0xA0, 0x2D, 0x92, 0xC1, 0x2F, 0x18,
- 0xD1, 0x18, 0x6C, 0xE3, 0xC9, 0x87, 0x10, 0xE4
- },
- {
- 0x69, 0xF8, 0x3A, 0xA1, 0x01, 0xD6, 0x9B, 0x8F,
- 0x12, 0x20, 0xDC, 0x1C, 0x53, 0x8D, 0x89, 0x34,
- 0x45, 0x84, 0x20, 0xBE, 0x33, 0x5F, 0xEB, 0x46,
- 0xFF, 0xC4, 0x7A, 0x2C, 0x8E, 0x2E, 0x6A, 0x8A
- },
- {
- 0xE1, 0x46, 0x9F, 0x16, 0xC6, 0xFC, 0xA1, 0x51,
- 0x19, 0xA2, 0x72, 0xE5, 0x85, 0xC7, 0xF5, 0x04,
- 0x21, 0xBC, 0x8A, 0x41, 0x4C, 0x86, 0x4F, 0xC7,
- 0x6B, 0x01, 0x04, 0x8D, 0x4C, 0x6F, 0xC5, 0xD2
- },
- {
- 0x67, 0x63, 0x34, 0x3A, 0x1C, 0x80, 0xF1, 0x92,
- 0x83, 0xA8, 0x0A, 0xF8, 0x54, 0xE7, 0xE9, 0x06,
- 0x5C, 0x2A, 0x83, 0x49, 0xEF, 0x11, 0xF1, 0x1B,
- 0xFB, 0x76, 0xBA, 0x9F, 0x97, 0x04, 0x85, 0x39
- },
- {
- 0x1A, 0xE3, 0xA0, 0xB8, 0xB2, 0xC7, 0x88, 0x5B,
- 0xA3, 0x18, 0xAD, 0x6F, 0xD4, 0x49, 0xFC, 0x4D,
- 0x7F, 0x84, 0x04, 0xB5, 0x9C, 0xF3, 0x27, 0x5F,
- 0xCD, 0xEA, 0x13, 0x56, 0x34, 0x25, 0x77, 0x2D
- },
- {
- 0x3A, 0x71, 0x18, 0x4C, 0xBE, 0x8E, 0xB5, 0x8E,
- 0x68, 0x12, 0xBA, 0x7A, 0x7A, 0x1D, 0xCA, 0x0C,
- 0xA2, 0x8E, 0xEC, 0x63, 0x78, 0x2F, 0x2E, 0x6E,
- 0x3C, 0x0B, 0x87, 0x07, 0x3F, 0x53, 0x3F, 0xFD
- },
- {
- 0x18, 0x4C, 0xCF, 0x2A, 0x52, 0xF3, 0x88, 0xC9,
- 0xF8, 0x97, 0xA8, 0x57, 0xFE, 0x7C, 0xCE, 0xC2,
- 0x95, 0x99, 0x11, 0xA8, 0xD1, 0xE0, 0x9E, 0xE8,
- 0x80, 0x4D, 0x8D, 0x5D, 0x50, 0x8D, 0xD9, 0x18
- },
- {
- 0xA6, 0x6D, 0x40, 0x9A, 0xF7, 0xAF, 0xD7, 0x5B,
- 0xE8, 0x31, 0xDD, 0x49, 0x8C, 0x19, 0x6E, 0xF1,
- 0x2C, 0x73, 0xC3, 0x11, 0x29, 0xEC, 0x02, 0xD5,
- 0xF1, 0x2A, 0xB0, 0x2A, 0x2C, 0x63, 0xA2, 0x5E
- },
- {
- 0x58, 0xB3, 0x74, 0x97, 0xFC, 0xF0, 0xBE, 0x0E,
- 0x0C, 0xF1, 0x73, 0x40, 0x45, 0xC2, 0x95, 0xB2,
- 0x86, 0xC7, 0x6A, 0x7C, 0x04, 0x8E, 0x87, 0xC5,
- 0x40, 0x28, 0xED, 0x36, 0x91, 0x5B, 0x5D, 0xF3
- },
- {
- 0x2C, 0x73, 0x33, 0x54, 0x0A, 0x83, 0x2D, 0x64,
- 0x45, 0x6E, 0x43, 0x05, 0x8C, 0x50, 0xD9, 0x3C,
- 0x93, 0x2A, 0xD9, 0xB1, 0x8B, 0x3F, 0xC3, 0xA0,
- 0x59, 0x92, 0x07, 0xCD, 0xA3, 0xB3, 0xC7, 0xA6
- },
- {
- 0x3D, 0xC0, 0x62, 0xFF, 0xB5, 0x7D, 0x83, 0x5F,
- 0xE3, 0xAA, 0x40, 0x94, 0x66, 0x82, 0x2F, 0x91,
- 0x86, 0x91, 0x84, 0x23, 0x94, 0x75, 0x05, 0x16,
- 0x5F, 0xDC, 0xDF, 0xB7, 0x30, 0x6F, 0x72, 0x59
- },
- {
- 0x89, 0x20, 0x48, 0x44, 0xAC, 0xB9, 0x2F, 0x35,
- 0x3B, 0xFC, 0x89, 0xA3, 0xCE, 0x8A, 0x98, 0x17,
- 0x21, 0x9C, 0x10, 0x13, 0x85, 0xC5, 0x93, 0xCF,
- 0x60, 0xE0, 0xBE, 0xFA, 0x96, 0x38, 0xE1, 0x4E
- },
- {
- 0x78, 0x2B, 0xA9, 0x02, 0xE9, 0x12, 0x32, 0x94,
- 0x1C, 0x78, 0xC4, 0x9C, 0xD9, 0x77, 0x1A, 0x5D,
- 0x99, 0x92, 0xF9, 0xB0, 0x7D, 0x9C, 0x0A, 0x2D,
- 0xF8, 0x2D, 0x38, 0x5D, 0x15, 0xC4, 0x2B, 0xB3
- },
- {
- 0x0D, 0xC3, 0xFF, 0x7D, 0xF0, 0xDF, 0xC0, 0x23,
- 0x76, 0x3D, 0x76, 0x34, 0xE1, 0x8D, 0xA2, 0x73,
- 0x93, 0xFC, 0x9F, 0xDB, 0x1C, 0x15, 0x46, 0x46,
- 0x86, 0x10, 0x75, 0xF0, 0xA8, 0x7D, 0x0E, 0x90
- },
- {
- 0xB9, 0x5C, 0x65, 0xFB, 0x6F, 0x25, 0x4E, 0xDB,
- 0xDE, 0x8C, 0x03, 0x7D, 0x5C, 0x8B, 0x20, 0x39,
- 0x34, 0x0F, 0x4A, 0xC2, 0xB0, 0x23, 0xA6, 0xAA,
- 0x28, 0xA8, 0xFC, 0xD2, 0xD2, 0x68, 0x9C, 0xF4
- },
- {
- 0x87, 0xE8, 0xF5, 0x15, 0x72, 0xA5, 0xD6, 0xA2,
- 0x39, 0xF8, 0x5B, 0xC5, 0x3E, 0x11, 0x74, 0xE1,
- 0x5B, 0xE1, 0x2F, 0xCD, 0xF1, 0x51, 0xA0, 0xB9,
- 0xA2, 0xB4, 0x36, 0x40, 0xCA, 0xF7, 0x4C, 0x1D
- },
- {
- 0x2A, 0x6F, 0x3E, 0x46, 0x2C, 0x40, 0x5C, 0x35,
- 0x4F, 0xE8, 0x0F, 0xCC, 0xCE, 0xD1, 0xC9, 0xBE,
- 0x44, 0x32, 0x5D, 0x29, 0xE0, 0x7D, 0xA3, 0x09,
- 0x60, 0xB6, 0x25, 0xA7, 0x6E, 0xA4, 0x2F, 0x83
- },
- {
- 0x20, 0xB4, 0x6C, 0x8F, 0xBF, 0xCA, 0x97, 0x45,
- 0x32, 0x62, 0x46, 0x0F, 0x84, 0x98, 0xA7, 0xE2,
- 0xAF, 0x15, 0xAC, 0x79, 0xB5, 0x9D, 0xDF, 0xB0,
- 0x27, 0xBB, 0x52, 0xF2, 0xD6, 0x8E, 0x8F, 0x51
- },
- {
- 0x31, 0xB0, 0x76, 0x3C, 0xB9, 0xBA, 0x92, 0x40,
- 0x3D, 0xCA, 0x1A, 0xBD, 0xD7, 0x34, 0x2D, 0x7D,
- 0xE9, 0x4C, 0x58, 0x1E, 0x76, 0xF7, 0xC9, 0xA6,
- 0x1E, 0x51, 0x59, 0x28, 0xE1, 0x0B, 0x4E, 0x77
- },
- {
- 0xE1, 0x91, 0xE1, 0x17, 0x06, 0x3C, 0xFA, 0xC9,
- 0x64, 0x2C, 0xD9, 0x3C, 0xB4, 0x2B, 0x39, 0xED,
- 0xDD, 0x9E, 0x4A, 0xB6, 0x5F, 0x1D, 0x03, 0x97,
- 0xE3, 0xE1, 0x7D, 0xD0, 0x4C, 0xAB, 0x11, 0x80
- },
- {
- 0x22, 0x5A, 0x20, 0x21, 0x07, 0xA7, 0x47, 0x03,
- 0xE0, 0x41, 0xC6, 0xCC, 0xA4, 0xEA, 0xCF, 0x4F,
- 0x21, 0xEE, 0xA6, 0xF2, 0x2A, 0x14, 0x6D, 0x8D,
- 0xA2, 0xAB, 0x8C, 0xF6, 0x19, 0x72, 0x29, 0xA5
- },
- {
- 0xEF, 0xC4, 0x83, 0x6B, 0xE4, 0xAC, 0x3E, 0x97,
- 0x91, 0xD2, 0xEC, 0x62, 0x22, 0x6E, 0x7D, 0xF6,
- 0x41, 0x18, 0xF4, 0x56, 0x5C, 0x19, 0xE6, 0xC9,
- 0xE8, 0x40, 0x63, 0xF5, 0x66, 0x1C, 0x7B, 0x2F
- },
- {
- 0x3A, 0x76, 0xB0, 0x15, 0x2C, 0x0E, 0x1D, 0x1F,
- 0xD7, 0xAC, 0x9D, 0x91, 0xA2, 0x8A, 0x18, 0xE1,
- 0xA4, 0xC0, 0x60, 0x80, 0xF2, 0xB7, 0xEC, 0xEF,
- 0xB6, 0xEF, 0xFE, 0x28, 0xB8, 0xCF, 0xC7, 0x65
- },
- {
- 0x0D, 0x46, 0xAD, 0x03, 0x90, 0x70, 0x11, 0x58,
- 0x28, 0xF9, 0x4E, 0xB6, 0xB7, 0x29, 0x63, 0xE6,
- 0x0A, 0x7D, 0x2D, 0xB7, 0xCA, 0x89, 0x91, 0xD2,
- 0x25, 0xC3, 0x87, 0x7B, 0x14, 0x9B, 0x0A, 0x8A
- },
- {
- 0xE4, 0x4C, 0xFC, 0x42, 0x11, 0x8F, 0x09, 0x6B,
- 0xFC, 0x51, 0x52, 0x1C, 0xB1, 0x8D, 0x5D, 0x65,
- 0x25, 0x58, 0x6B, 0x98, 0x9F, 0x4E, 0xE2, 0xB8,
- 0x28, 0xC5, 0x19, 0x9F, 0xEA, 0xB9, 0x4B, 0x82
- },
- {
- 0x6D, 0x4B, 0xD2, 0xE0, 0x73, 0xEC, 0x49, 0x66,
- 0x84, 0x7F, 0x5C, 0xBE, 0x88, 0xDD, 0xFA, 0xBA,
- 0x2B, 0xE4, 0xCA, 0xF2, 0xF3, 0x33, 0x55, 0x2B,
- 0x85, 0x53, 0xDA, 0x53, 0x34, 0x87, 0xC2, 0x5B
- },
- {
- 0xBB, 0xC4, 0x6D, 0xB4, 0x37, 0xD1, 0x07, 0xC9,
- 0x67, 0xCA, 0x6D, 0x91, 0x45, 0x5B, 0xBD, 0xFE,
- 0x05, 0x21, 0x18, 0xAB, 0xD1, 0xD0, 0x69, 0xF0,
- 0x43, 0x59, 0x48, 0x7E, 0x13, 0xAE, 0xA0, 0xE1
- },
- {
- 0xB9, 0x74, 0xC1, 0x4D, 0xB7, 0xD3, 0x17, 0x4D,
- 0xD0, 0x60, 0x84, 0xBB, 0x30, 0x31, 0x08, 0xB2,
- 0xF0, 0xDA, 0xF5, 0x0E, 0xCC, 0xC3, 0x29, 0x35,
- 0x43, 0x79, 0x5C, 0x96, 0x36, 0xC6, 0x24, 0x82
- },
- {
- 0x0E, 0xEE, 0x23, 0x5B, 0x06, 0x93, 0x6A, 0xED,
- 0x71, 0x73, 0xC8, 0xC1, 0x9A, 0xA7, 0xC2, 0x17,
- 0xB9, 0xEE, 0xDA, 0xEB, 0x1A, 0x88, 0xF3, 0x05,
- 0x52, 0xE9, 0x22, 0x51, 0x45, 0x14, 0x9E, 0x82
- },
- {
- 0x36, 0xD0, 0x89, 0xE0, 0x25, 0xB5, 0x68, 0x69,
- 0x37, 0x74, 0x28, 0x25, 0xE6, 0xEE, 0x3D, 0x83,
- 0xE7, 0xD7, 0xA5, 0x0C, 0x82, 0x3C, 0x82, 0x88,
- 0x34, 0x60, 0xF3, 0x85, 0x14, 0x7D, 0xC1, 0x7B
- },
- {
- 0x77, 0xEE, 0x4F, 0xFC, 0x9F, 0x5D, 0xD6, 0x05,
- 0x47, 0x0D, 0xC0, 0xE7, 0x4D, 0x6B, 0x17, 0xC5,
- 0x13, 0x0D, 0x8B, 0x73, 0x91, 0x3F, 0x36, 0xD5,
- 0xF8, 0x78, 0x7E, 0x61, 0x9A, 0x94, 0x7C, 0xA0
- },
- {
- 0x0F, 0xE6, 0xC2, 0xAB, 0x75, 0x42, 0x33, 0x36,
- 0x0D, 0x68, 0xB9, 0xAC, 0x80, 0xCD, 0x61, 0x18,
- 0x4B, 0xFA, 0xA7, 0xD3, 0x56, 0x29, 0x41, 0x80,
- 0x02, 0x5F, 0xE4, 0x06, 0x39, 0xC7, 0x6C, 0x36
- },
- {
- 0x99, 0x60, 0x88, 0xC7, 0x94, 0x56, 0xEC, 0xDD,
- 0xA1, 0xFB, 0xC0, 0x2E, 0xE1, 0xBA, 0x42, 0xD9,
- 0x1D, 0x85, 0x8C, 0x31, 0x0A, 0x5A, 0x8B, 0x46,
- 0x74, 0xFE, 0x6A, 0x7C, 0x14, 0x44, 0x14, 0xA1
- },
- {
- 0x9E, 0x33, 0x8A, 0xED, 0x0B, 0xC7, 0x1C, 0x0C,
- 0x97, 0xF1, 0x98, 0x55, 0xBF, 0x49, 0x17, 0x4F,
- 0x70, 0xA9, 0xD7, 0x70, 0x14, 0x87, 0x36, 0x63,
- 0x21, 0x34, 0x27, 0x50, 0x2B, 0xD8, 0x5D, 0x9F
- },
- {
- 0x4A, 0x84, 0x3D, 0x26, 0xAD, 0xEC, 0x52, 0x0E,
- 0x4B, 0x5D, 0xBF, 0x01, 0x45, 0xCC, 0x4F, 0x50,
- 0x24, 0xFA, 0xFC, 0xDC, 0x20, 0x25, 0x82, 0x4A,
- 0x8C, 0x64, 0x65, 0x06, 0x17, 0x68, 0x7E, 0xE7
- },
- {
- 0xC9, 0x16, 0x78, 0xC4, 0xA6, 0x4E, 0x2F, 0xA4,
- 0xB7, 0x4D, 0xE6, 0x1A, 0xD0, 0xC0, 0x6F, 0xF0,
- 0x6B, 0x5D, 0x67, 0x2F, 0xA7, 0xC6, 0x87, 0x7A,
- 0x40, 0x14, 0xCE, 0x9E, 0x91, 0xBE, 0x38, 0xD7
- },
- {
- 0xFF, 0x77, 0x77, 0x40, 0x5D, 0x32, 0x7A, 0xDB,
- 0x58, 0x30, 0x1C, 0x71, 0x1E, 0xCD, 0xC2, 0xBC,
- 0xE1, 0xBF, 0xA8, 0x29, 0xFF, 0xC9, 0xB1, 0x17,
- 0xF2, 0x1A, 0x2B, 0x19, 0x8D, 0x0D, 0x68, 0x84
- },
- {
- 0x0A, 0x8D, 0xDA, 0xF1, 0x72, 0x8C, 0x5C, 0xD9,
- 0x3A, 0x25, 0x5D, 0x56, 0x23, 0xC3, 0xDA, 0xDA,
- 0x2D, 0x3D, 0x05, 0x71, 0xBF, 0x14, 0x38, 0xAD,
- 0xC8, 0xC9, 0x64, 0xA9, 0xAA, 0xD1, 0x18, 0xCB
- },
- {
- 0xC1, 0x33, 0xAB, 0xBD, 0x0D, 0x2D, 0x80, 0x8A,
- 0x67, 0xB6, 0x74, 0x5B, 0x4B, 0x36, 0x50, 0xB4,
- 0xA6, 0x4D, 0xC2, 0x76, 0xCF, 0x98, 0xE3, 0x03,
- 0x57, 0xB6, 0xAB, 0xD5, 0xC1, 0xD2, 0x2A, 0x9B
- },
- {
- 0xC5, 0x9E, 0xE5, 0xC1, 0x96, 0xBA, 0x3C, 0xFE,
- 0xF9, 0x40, 0x87, 0x79, 0x82, 0x07, 0xBD, 0xCE,
- 0xF1, 0x39, 0xCE, 0x2C, 0xF7, 0x8D, 0xCE, 0xD6,
- 0x19, 0x8F, 0x0F, 0xA3, 0xA4, 0x09, 0x13, 0x1C
- },
- {
- 0xC7, 0xFD, 0xAD, 0xE5, 0x9C, 0x46, 0x99, 0x38,
- 0x5E, 0xBA, 0x59, 0xE7, 0x56, 0xC2, 0xB1, 0x71,
- 0xB0, 0x23, 0xDE, 0xAE, 0x08, 0x2E, 0x5A, 0x6E,
- 0x3B, 0xFB, 0xDC, 0x10, 0x73, 0xA3, 0x20, 0x03
- },
- {
- 0x97, 0x53, 0x27, 0xC5, 0xF4, 0xDE, 0xC6, 0x41,
- 0x4B, 0x6E, 0x00, 0xCB, 0x04, 0x23, 0x37, 0xB8,
- 0xD2, 0xA6, 0x56, 0x46, 0x37, 0xA7, 0x44, 0x2A,
- 0xEC, 0x7B, 0xE8, 0xF8, 0xC8, 0x9A, 0x2F, 0x1C
- },
- {
- 0xA2, 0xF7, 0x24, 0x6D, 0xF4, 0xA2, 0x4E, 0xFB,
- 0xAC, 0xD3, 0xFD, 0x60, 0x68, 0x3A, 0xBC, 0x86,
- 0x8B, 0xEF, 0x25, 0x32, 0x70, 0x52, 0xCF, 0x2F,
- 0x1D, 0x93, 0xEC, 0xE4, 0xFF, 0xCD, 0x73, 0xC6
- },
- {
- 0x49, 0x7F, 0xB2, 0xAC, 0xAC, 0xF1, 0x23, 0xF3,
- 0x59, 0x5E, 0x40, 0xFC, 0x51, 0xA7, 0xBD, 0x24,
- 0x45, 0x8B, 0xBC, 0xBA, 0x4A, 0x29, 0x40, 0xA5,
- 0xCB, 0x03, 0xD6, 0x08, 0xFB, 0xDF, 0x28, 0x25
- },
- {
- 0x0E, 0x97, 0xD2, 0x27, 0x93, 0xCE, 0x6F, 0x28,
- 0x3D, 0x5C, 0x74, 0x0D, 0x30, 0x8A, 0x27, 0xAD,
- 0x7C, 0x3B, 0x0D, 0x9A, 0xFC, 0xD3, 0xD9, 0xE9,
- 0xB9, 0xCA, 0xC5, 0x6B, 0x10, 0x29, 0x0C, 0x8F
- },
- {
- 0x66, 0x30, 0xB3, 0x56, 0x18, 0xE7, 0x00, 0xD9,
- 0x10, 0x68, 0x38, 0x93, 0x79, 0x5E, 0xF7, 0x0B,
- 0xF0, 0x7E, 0xB1, 0x56, 0xF5, 0x5F, 0xFE, 0x3B,
- 0x69, 0xAD, 0x88, 0xA4, 0xB8, 0xB0, 0xBF, 0xA1
- },
- {
- 0x02, 0xF7, 0x42, 0xC6, 0xE9, 0x52, 0x78, 0x12,
- 0x1A, 0x05, 0xE4, 0x42, 0x05, 0x44, 0x4F, 0xC5,
- 0xEA, 0x6A, 0xF5, 0xE7, 0x41, 0xC5, 0x35, 0xBC,
- 0x2C, 0xBC, 0x3B, 0x23, 0x5A, 0x2E, 0xA2, 0xB0
- },
- {
- 0x46, 0x22, 0xF3, 0x6E, 0xB8, 0x98, 0x38, 0x3F,
- 0x60, 0xD5, 0xBE, 0xD8, 0x09, 0xAC, 0x5C, 0x47,
- 0x45, 0xC5, 0xD6, 0xAB, 0x84, 0xBC, 0xAD, 0xF7,
- 0x9C, 0xF2, 0xA9, 0x6D, 0x4E, 0xC8, 0x88, 0x18
- },
- {
- 0xCC, 0xD1, 0x1F, 0xAA, 0xA0, 0x58, 0x1E, 0xC3,
- 0x2C, 0x3A, 0x40, 0x3F, 0x92, 0xEF, 0x43, 0xD5,
- 0xDC, 0xF1, 0x95, 0xC1, 0xA1, 0x01, 0xDB, 0xFD,
- 0x49, 0x5D, 0xBB, 0x4D, 0xCE, 0x80, 0x69, 0xE0
- },
- {
- 0x06, 0x02, 0x4D, 0x6B, 0x07, 0xE0, 0x00, 0xBC,
- 0xE6, 0x13, 0x47, 0x0A, 0x28, 0x80, 0x51, 0x9B,
- 0x8B, 0xE4, 0xA3, 0x6B, 0xF3, 0x3C, 0x99, 0xC9,
- 0x17, 0x89, 0x3E, 0xC7, 0x5D, 0xD9, 0x0F, 0xE3
- },
- {
- 0xD9, 0x3A, 0xF9, 0x47, 0xB1, 0x46, 0x3A, 0x81,
- 0x7D, 0xB4, 0x41, 0xA4, 0x74, 0x58, 0x8D, 0x6F,
- 0x99, 0x6D, 0x24, 0x39, 0x83, 0xE8, 0x3C, 0x7E,
- 0xEE, 0x90, 0xE1, 0xEF, 0xA4, 0x40, 0xD9, 0xBA
- },
- {
- 0x94, 0x89, 0x89, 0x45, 0xA7, 0xDB, 0x25, 0x9E,
- 0x1B, 0x2E, 0x7C, 0xBE, 0xA4, 0x8A, 0xA0, 0xC6,
- 0xD6, 0x57, 0x0D, 0x18, 0x17, 0x9F, 0x06, 0x18,
- 0x47, 0x1C, 0x88, 0xF3, 0xEC, 0x3B, 0x0F, 0xC3
- },
- {
- 0x4C, 0x2D, 0x93, 0x52, 0x56, 0x39, 0x2A, 0xA2,
- 0xBE, 0x6E, 0x10, 0x78, 0xC0, 0x59, 0x38, 0x15,
- 0xAB, 0xEF, 0x46, 0x9D, 0xE9, 0x69, 0xB5, 0x7B,
- 0x88, 0x1B, 0x93, 0xAF, 0x55, 0x84, 0x65, 0xFA
- },
- {
- 0xAA, 0xC7, 0xBE, 0x16, 0xE5, 0x2F, 0x79, 0x0E,
- 0x4F, 0xF7, 0x0B, 0x24, 0x01, 0x5C, 0xB1, 0x1B,
- 0x40, 0x61, 0x6E, 0x94, 0xDB, 0x13, 0x88, 0x2B,
- 0x41, 0xD3, 0xDD, 0x8C, 0x8C, 0x19, 0x52, 0xB7
- },
- {
- 0x04, 0x34, 0xB4, 0x7C, 0x0E, 0xE7, 0xE6, 0xF5,
- 0x39, 0x06, 0x79, 0x9A, 0x43, 0x20, 0x9D, 0x3F,
- 0xC3, 0x7D, 0x3F, 0xD1, 0xF7, 0x45, 0x55, 0xDE,
- 0x67, 0xAB, 0xAC, 0xB9, 0x51, 0xB0, 0x06, 0xF4
- },
- {
- 0x04, 0x42, 0xFB, 0xDD, 0x5B, 0x58, 0x49, 0x6E,
- 0xC7, 0x81, 0x59, 0xCC, 0xAA, 0x88, 0x7C, 0x88,
- 0xA8, 0x61, 0xFC, 0xCA, 0x70, 0xE7, 0xAB, 0xC9,
- 0x76, 0xF2, 0x4C, 0x11, 0x58, 0x8B, 0xE6, 0xEE
- },
- {
- 0xA7, 0x3E, 0x68, 0xBB, 0x18, 0xB0, 0x07, 0x64,
- 0x8E, 0x76, 0xB5, 0x52, 0x8D, 0x1E, 0x50, 0xE7,
- 0xFA, 0x65, 0x4D, 0xA3, 0x97, 0x0E, 0xC3, 0x49,
- 0xBF, 0x59, 0x1A, 0x30, 0xD9, 0x32, 0xC8, 0xF6
- },
- {
- 0x84, 0x9C, 0xF8, 0x73, 0x16, 0x2B, 0xA7, 0x2C,
- 0x4B, 0x80, 0x08, 0xE6, 0x8F, 0x93, 0x2F, 0xB3,
- 0xA0, 0x15, 0xA7, 0x4F, 0xCF, 0x95, 0x71, 0x98,
- 0xD5, 0x6A, 0x0D, 0xC4, 0x62, 0x5A, 0x74, 0xF5
- },
- {
- 0xA6, 0xDE, 0xC6, 0xFC, 0x89, 0x49, 0x34, 0x9C,
- 0x4E, 0x9A, 0x9C, 0x62, 0x36, 0x87, 0xFB, 0xA4,
- 0xC9, 0xB2, 0x75, 0xBD, 0xB2, 0x30, 0x50, 0x9B,
- 0x72, 0xE3, 0xD6, 0x71, 0x19, 0x14, 0xE2, 0xD8
- },
- {
- 0x58, 0xAF, 0xC2, 0xB2, 0x4A, 0x19, 0xFD, 0xBF,
- 0x76, 0xA0, 0x9B, 0x70, 0xB1, 0xE3, 0xB7, 0x7F,
- 0xCB, 0xD4, 0x06, 0x50, 0x01, 0xD9, 0x63, 0x66,
- 0x40, 0xEB, 0x5A, 0x26, 0x28, 0xF4, 0x42, 0xCC
- },
- {
- 0x47, 0x3A, 0x43, 0xAA, 0x1D, 0x6A, 0x02, 0x87,
- 0x67, 0x43, 0x2A, 0x83, 0x0A, 0xD1, 0x22, 0x1E,
- 0x02, 0x9C, 0x58, 0x9A, 0xF9, 0xFD, 0x4D, 0x68,
- 0xD5, 0x6C, 0x4F, 0xB8, 0x20, 0x25, 0x93, 0x52
- },
- {
- 0xA0, 0xAE, 0xB4, 0xA5, 0xAD, 0x89, 0x9A, 0xF2,
- 0xE2, 0x91, 0xB2, 0xE7, 0x9D, 0xBB, 0x6B, 0x0B,
- 0xF5, 0x6B, 0x58, 0x44, 0x67, 0x6B, 0x95, 0x5D,
- 0x94, 0x5B, 0x6C, 0x4A, 0xE1, 0xC0, 0x1E, 0xED
- },
- {
- 0xCF, 0xC3, 0x02, 0x9A, 0x9E, 0xEB, 0x15, 0x22,
- 0x22, 0xD9, 0x66, 0x53, 0x49, 0x2E, 0x46, 0xCA,
- 0x64, 0xCA, 0x4F, 0x0D, 0x64, 0x68, 0x30, 0x28,
- 0xD3, 0xAE, 0xE5, 0xA4, 0x9C, 0xB4, 0x71, 0x63
- },
- {
- 0x74, 0x67, 0xCF, 0x77, 0x61, 0xCD, 0x9F, 0x55,
- 0x61, 0x8D, 0x30, 0xC9, 0xD8, 0xC5, 0xB4, 0x1E,
- 0x47, 0x01, 0x51, 0x0C, 0x7D, 0x16, 0xAB, 0x4E,
- 0x5D, 0x89, 0xA5, 0xD7, 0x71, 0x46, 0xB0, 0x92
- },
- {
- 0xC0, 0x16, 0xD8, 0x42, 0x4E, 0x53, 0x1E, 0xFC,
- 0x57, 0x37, 0xC0, 0x3F, 0xC9, 0x0A, 0x5E, 0xFC,
- 0x9F, 0x90, 0x22, 0xE4, 0xD5, 0xBA, 0x3B, 0x06,
- 0x95, 0xF7, 0xAE, 0x53, 0x82, 0x60, 0xC2, 0xEE
- },
- {
- 0x5D, 0x38, 0x11, 0x89, 0xE6, 0x00, 0x0F, 0xC1,
- 0x17, 0xC7, 0x1F, 0x59, 0xF7, 0x86, 0xFB, 0x4B,
- 0x79, 0xFD, 0xD4, 0xEC, 0x5D, 0x4C, 0xD3, 0x0A,
- 0xAC, 0x21, 0x57, 0xF7, 0x5D, 0xEA, 0xD7, 0x78
- },
- {
- 0x7C, 0x9C, 0xDD, 0x15, 0xC4, 0xC9, 0xAB, 0xCA,
- 0xCB, 0xFE, 0x6F, 0x66, 0x4A, 0x7F, 0x5F, 0x8B,
- 0x2E, 0x25, 0x91, 0x83, 0x29, 0x1A, 0xE5, 0xCC,
- 0x91, 0x30, 0xA0, 0xB2, 0x41, 0xE5, 0x73, 0x7F
- },
- {
- 0xB8, 0x81, 0x31, 0x72, 0xF5, 0x21, 0x8A, 0xC3,
- 0xEB, 0x68, 0x7B, 0xC4, 0xAF, 0xAF, 0xF8, 0x3F,
- 0xBC, 0xA4, 0xE9, 0xC1, 0xA4, 0x62, 0x96, 0x33,
- 0x01, 0xDD, 0x44, 0x59, 0x85, 0x01, 0x50, 0xA2
- },
- {
- 0xE3, 0xD1, 0x30, 0xE3, 0x6A, 0x02, 0x8E, 0xA8,
- 0x0C, 0x57, 0xA2, 0xAA, 0x48, 0x19, 0xFD, 0x34,
- 0xE4, 0xDB, 0xBE, 0xB1, 0x4A, 0x49, 0x58, 0x94,
- 0xB1, 0x5A, 0x87, 0x87, 0xDB, 0x1A, 0x9F, 0x9C
- },
- {
- 0xFF, 0xF1, 0xB4, 0x40, 0x0F, 0x48, 0x9E, 0x07,
- 0xD2, 0x23, 0x51, 0xC1, 0xF0, 0x95, 0x65, 0xE2,
- 0x65, 0xB6, 0x8A, 0xD2, 0x9F, 0x63, 0x29, 0x87,
- 0x9E, 0x6B, 0x5F, 0x7F, 0x6B, 0x41, 0x93, 0x50
- },
- {
- 0x55, 0x9E, 0xD5, 0xBB, 0x3E, 0x5F, 0x39, 0x85,
- 0xFB, 0x57, 0x82, 0x28, 0xBF, 0x8C, 0x0F, 0x0B,
- 0x17, 0x3F, 0x8D, 0x11, 0x53, 0xFA, 0xEB, 0x9F,
- 0xEC, 0x75, 0x6F, 0xFD, 0x18, 0xA8, 0x72, 0x38
- },
- {
- 0x88, 0x13, 0x12, 0x53, 0x01, 0x4D, 0x23, 0xC5,
- 0xE3, 0x8E, 0x78, 0xBD, 0xA1, 0x94, 0x55, 0xD8,
- 0xA0, 0x23, 0xBD, 0x7A, 0x7E, 0x72, 0x74, 0x57,
- 0xA1, 0x52, 0xA8, 0x1D, 0x0B, 0x17, 0x18, 0xA7
- },
- {
- 0xF4, 0xD3, 0xFA, 0xE7, 0xCD, 0xE6, 0xBB, 0x66,
- 0x71, 0x5A, 0x19, 0x8F, 0xA4, 0x8D, 0x21, 0x0C,
- 0x10, 0xF8, 0xDF, 0x32, 0x04, 0xAE, 0x5E, 0x33,
- 0xA6, 0x02, 0x46, 0x7F, 0x1B, 0x62, 0x26, 0x85
- },
- {
- 0xE6, 0x2B, 0x62, 0x2A, 0xC8, 0xA2, 0x13, 0x66,
- 0xBF, 0x2D, 0xED, 0x30, 0xF4, 0x08, 0x2A, 0x53,
- 0xE7, 0x7A, 0x9A, 0xA6, 0x96, 0xB1, 0xF3, 0xEE,
- 0x8C, 0xFE, 0x99, 0xC5, 0x93, 0x12, 0xD9, 0xC7
- },
- {
- 0x3D, 0x39, 0xFF, 0xA8, 0x55, 0x12, 0xC3, 0xC8,
- 0x89, 0x0D, 0x4B, 0xDF, 0x31, 0x88, 0x9C, 0xA6,
- 0x6E, 0x5C, 0xEC, 0xB6, 0x3C, 0xFE, 0xED, 0x57,
- 0xB9, 0x26, 0x37, 0x08, 0xE7, 0x4C, 0x55, 0x0B
- },
- {
- 0xB1, 0x70, 0x3B, 0x8A, 0x00, 0xE2, 0x61, 0x24,
- 0x97, 0xD1, 0x1C, 0x64, 0x9D, 0x15, 0x0A, 0x6C,
- 0x96, 0x3B, 0xF4, 0xFD, 0x38, 0xFE, 0xB1, 0xC3,
- 0x81, 0xFE, 0x0D, 0x9B, 0x04, 0xC0, 0x2B, 0x22
- },
- {
- 0x12, 0xFB, 0xAD, 0x9D, 0x37, 0x82, 0x81, 0x2D,
- 0x71, 0x17, 0x9A, 0x50, 0xFB, 0xD9, 0xB4, 0x56,
- 0x6C, 0x7B, 0x06, 0xF5, 0xD7, 0x7C, 0x6F, 0x32,
- 0x97, 0x17, 0xFB, 0x4A, 0xE2, 0xC5, 0xB4, 0xEC
- },
- {
- 0x76, 0x8B, 0x65, 0x9A, 0x82, 0x4B, 0x43, 0xF9,
- 0xCA, 0x56, 0x60, 0xB9, 0xDD, 0xF0, 0x5F, 0x8B,
- 0xA2, 0xBC, 0x49, 0x93, 0x86, 0x6B, 0x7C, 0x9B,
- 0xE6, 0x87, 0x91, 0xF5, 0xB2, 0x46, 0x44, 0xB3
- },
- {
- 0xC0, 0x20, 0x4E, 0x23, 0xCA, 0x86, 0xBE, 0x20,
- 0x5E, 0xED, 0x0C, 0xC3, 0xDD, 0x72, 0x25, 0xCE,
- 0x5F, 0xFE, 0x1E, 0xE1, 0x2D, 0xAC, 0xB9, 0x3C,
- 0x5D, 0x06, 0x29, 0xB7, 0x69, 0x9C, 0xD7, 0x33
- },
- {
- 0xF4, 0x32, 0x96, 0x96, 0x1F, 0x8E, 0xAE, 0xCC,
- 0xD8, 0x54, 0x41, 0x3D, 0xC5, 0xAD, 0xDA, 0x62,
- 0x39, 0x3A, 0x34, 0x46, 0x27, 0xE8, 0x6C, 0x06,
- 0x6E, 0x79, 0x07, 0x55, 0x00, 0x40, 0x74, 0x4F
- },
- {
- 0x82, 0xF4, 0x46, 0x9E, 0x80, 0x78, 0x90, 0x21,
- 0xC6, 0x1D, 0xB7, 0xE3, 0x2F, 0x36, 0xAC, 0xBE,
- 0x59, 0x1A, 0x64, 0xF2, 0x60, 0x59, 0x26, 0x57,
- 0x70, 0xAE, 0x65, 0x8D, 0x62, 0xBD, 0xE7, 0xEF
- },
- {
- 0x2A, 0x85, 0x67, 0x1A, 0x55, 0xC8, 0x9F, 0xA1,
- 0x56, 0xE2, 0x96, 0xF7, 0x5D, 0xF1, 0xC7, 0xDB,
- 0xAB, 0x17, 0x8E, 0xBB, 0xA6, 0x52, 0x04, 0xA7,
- 0xE8, 0x17, 0x8C, 0x91, 0x6A, 0xD0, 0x87, 0xF8
- },
- {
- 0x33, 0xE2, 0x45, 0x00, 0x28, 0x08, 0xF6, 0x93,
- 0x4B, 0x9B, 0xE3, 0xA6, 0xFA, 0x8E, 0x86, 0x70,
- 0xC9, 0x0B, 0xAA, 0x62, 0x57, 0x17, 0xB9, 0x20,
- 0x1E, 0xB9, 0xB9, 0xDD, 0x91, 0x2F, 0x5C, 0xE2
- },
- {
- 0x58, 0xEE, 0x5E, 0x79, 0x91, 0x84, 0xAD, 0x9D,
- 0xA9, 0xA1, 0x7C, 0x5B, 0x46, 0xA4, 0x81, 0x0E,
- 0x28, 0xBD, 0xD0, 0x8C, 0x35, 0x81, 0x63, 0x4C,
- 0x83, 0x50, 0x30, 0x53, 0x9B, 0x79, 0x54, 0x4D
- },
- {
- 0x26, 0xD8, 0xFA, 0x08, 0xDB, 0x30, 0x8E, 0xDF,
- 0x2F, 0x96, 0xF8, 0x2A, 0xF6, 0xB6, 0x0C, 0x17,
- 0xD8, 0xF1, 0xFF, 0x85, 0x8C, 0x52, 0xF2, 0xD0,
- 0xF3, 0x83, 0x10, 0x78, 0x12, 0x75, 0x26, 0xA3
- },
- {
- 0x25, 0xA5, 0x8D, 0xF4, 0x03, 0x92, 0x47, 0xA2,
- 0x2F, 0x68, 0xFF, 0x2B, 0x71, 0x76, 0x6B, 0x7B,
- 0x56, 0x00, 0xDD, 0xF4, 0x01, 0xD9, 0x9F, 0xF2,
- 0xC1, 0x95, 0x5A, 0xE7, 0xBB, 0x43, 0xE5, 0x6A
- },
- {
- 0xBE, 0x43, 0xE8, 0x68, 0x61, 0x60, 0xE9, 0x07,
- 0xBA, 0x54, 0x7D, 0x5A, 0x87, 0x9D, 0x10, 0xF7,
- 0x88, 0xAF, 0xC8, 0x42, 0xB8, 0xEB, 0xB9, 0xF3,
- 0xF7, 0x88, 0x53, 0x25, 0x15, 0x91, 0x2A, 0xE4
- },
- {
- 0xAA, 0x4A, 0xCB, 0x95, 0xD8, 0x79, 0x19, 0x2A,
- 0x69, 0x08, 0xE8, 0x8A, 0xE3, 0xD6, 0x58, 0x9F,
- 0x4E, 0x3E, 0xB3, 0xD4, 0xE0, 0x3A, 0x80, 0x6C,
- 0xCD, 0xB9, 0xB5, 0xD6, 0xA9, 0x58, 0x6F, 0xDF
- },
- {
- 0x84, 0x66, 0xD5, 0xE4, 0x4C, 0xE9, 0x5B, 0x4F,
- 0xA1, 0x79, 0x99, 0x24, 0x44, 0xB8, 0xC2, 0x48,
- 0x5B, 0x88, 0x64, 0x48, 0xA6, 0xDC, 0xCF, 0xCF,
- 0x0B, 0xC3, 0x0B, 0xC5, 0xF0, 0xF5, 0x6B, 0x01
- },
- {
- 0x00, 0x56, 0xD7, 0xE0, 0xAC, 0x33, 0x35, 0x57,
- 0x83, 0x65, 0x9B, 0x38, 0xEC, 0x8B, 0xEC, 0xCB,
- 0xF7, 0x83, 0x93, 0x99, 0x67, 0xFE, 0x37, 0xAE,
- 0xAC, 0xF3, 0x69, 0xDD, 0xB6, 0x70, 0xAD, 0xA0
- },
- {
- 0x90, 0x4F, 0x42, 0xF3, 0x45, 0x53, 0x0A, 0xC8,
- 0xA3, 0x52, 0xD0, 0x9B, 0x68, 0x72, 0xC5, 0xBC,
- 0xA3, 0x66, 0x1A, 0xBC, 0xA6, 0xCA, 0x64, 0xC8,
- 0x09, 0x9F, 0x2F, 0xB6, 0x86, 0x7C, 0x30, 0xFE
- },
- {
- 0xA8, 0xC3, 0xBF, 0x46, 0xF0, 0xB8, 0x8B, 0xBD,
- 0x16, 0xFD, 0xA4, 0xA8, 0xB5, 0xCA, 0x81, 0xF5,
- 0x24, 0x35, 0x20, 0xC3, 0x85, 0xD3, 0x8C, 0x0B,
- 0x4D, 0x23, 0x52, 0xAB, 0x34, 0xEA, 0x35, 0xE6
- },
- {
- 0x8D, 0x33, 0x17, 0xFC, 0x60, 0x6E, 0x56, 0x6D,
- 0x30, 0x2E, 0xDA, 0xB5, 0x5E, 0x80, 0x16, 0x11,
- 0xD8, 0xC1, 0x3F, 0x4A, 0x9A, 0x19, 0xD1, 0x85,
- 0x97, 0x8D, 0xEF, 0x72, 0x83, 0x9C, 0xDA, 0xA3
- },
- {
- 0x97, 0x38, 0x80, 0x11, 0xF5, 0x7A, 0x49, 0x86,
- 0x90, 0xEC, 0x79, 0x88, 0xEF, 0xF9, 0x03, 0xFF,
- 0x9B, 0x23, 0x58, 0xF5, 0xB6, 0x1B, 0xAA, 0x20,
- 0xF7, 0x32, 0x90, 0xD6, 0x29, 0x6C, 0x1C, 0x0B
- },
- {
- 0xCF, 0xB8, 0x0C, 0xAB, 0x89, 0x90, 0x95, 0x08,
- 0x09, 0x12, 0x3F, 0xBF, 0x85, 0xE9, 0x76, 0x45,
- 0x47, 0x08, 0xE0, 0xAF, 0xED, 0x69, 0x8E, 0x33,
- 0x52, 0xA3, 0x16, 0x35, 0x90, 0x9D, 0xB3, 0xE5
- },
- {
- 0x0D, 0xAA, 0xCA, 0x55, 0x13, 0x2A, 0x23, 0x5B,
- 0x83, 0x1A, 0x5E, 0xFF, 0x4E, 0xA4, 0x67, 0xCD,
- 0x10, 0xAF, 0x44, 0x20, 0x08, 0x47, 0x73, 0x5A,
- 0x1F, 0xFD, 0x51, 0xFA, 0x37, 0xEA, 0xA2, 0xA2
- },
- {
- 0x69, 0xB2, 0x14, 0x97, 0xEB, 0xB8, 0x24, 0xBA,
- 0x66, 0x53, 0x68, 0x18, 0x88, 0x25, 0xE6, 0xF6,
- 0xF1, 0x4C, 0xF2, 0xC3, 0xF7, 0xB5, 0x53, 0x0B,
- 0xB3, 0x4F, 0xA6, 0x58, 0xEE, 0xD9, 0xA7, 0x39
- },
- {
- 0xB9, 0xA1, 0x9F, 0x50, 0x9B, 0xE0, 0x3F, 0xBC,
- 0x40, 0xE2, 0x43, 0xA5, 0x8A, 0x3D, 0xED, 0x11,
- 0xF0, 0xD5, 0x1F, 0x80, 0xE3, 0xE2, 0x9A, 0x50,
- 0x56, 0x44, 0xCC, 0x05, 0x74, 0x38, 0x14, 0xEC
- },
- {
- 0xC4, 0xBC, 0xB2, 0x00, 0x25, 0x55, 0xD5, 0x44,
- 0xFD, 0x0B, 0x02, 0x77, 0x06, 0x23, 0x89, 0x1E,
- 0x70, 0xEE, 0xEC, 0x77, 0x44, 0x86, 0x5D, 0xD6,
- 0x45, 0x5A, 0xD6, 0x65, 0xCC, 0x82, 0xE8, 0x61
- },
- {
- 0x91, 0x2D, 0x24, 0xDC, 0x3D, 0x69, 0x23, 0xA4,
- 0x83, 0xC2, 0x63, 0xEB, 0xA8, 0x1B, 0x7A, 0x87,
- 0x97, 0xF2, 0x3C, 0xBF, 0x2F, 0x78, 0xB5, 0x1E,
- 0x22, 0x26, 0x63, 0x9F, 0x84, 0xA5, 0x90, 0x47
- },
- {
- 0x56, 0x82, 0x7A, 0x18, 0x88, 0x3A, 0xFD, 0xF9,
- 0xCE, 0xEC, 0x56, 0x2B, 0x20, 0x66, 0xD8, 0xAC,
- 0xB2, 0xC1, 0x95, 0x05, 0xEC, 0xE6, 0xF7, 0xA8,
- 0x3E, 0x9F, 0x33, 0x46, 0xCB, 0xB8, 0x28, 0xC9
- },
- {
- 0x25, 0x1D, 0x8D, 0x09, 0xFC, 0x48, 0xDD, 0x1D,
- 0x6A, 0xF8, 0xFF, 0xDF, 0x39, 0x50, 0x91, 0xA4,
- 0x6E, 0x05, 0xB8, 0xB7, 0xC5, 0xEC, 0x0C, 0x79,
- 0xB6, 0x8A, 0x89, 0x04, 0xC8, 0x27, 0xBD, 0xEA
- },
- {
- 0xC2, 0xD1, 0x4D, 0x69, 0xFD, 0x0B, 0xBD, 0x1C,
- 0x0F, 0xE8, 0xC8, 0x45, 0xD5, 0xFD, 0x6A, 0x8F,
- 0x74, 0x01, 0x51, 0xB1, 0xD8, 0xEB, 0x4D, 0x26,
- 0x36, 0x4B, 0xB0, 0x2D, 0xAE, 0x0C, 0x13, 0xBC
- },
- {
- 0x2E, 0x5F, 0xE2, 0x1F, 0x8F, 0x1B, 0x63, 0x97,
- 0xA3, 0x8A, 0x60, 0x3D, 0x60, 0xB6, 0xF5, 0x3C,
- 0x3B, 0x5D, 0xB2, 0x0A, 0xA5, 0x6C, 0x6D, 0x44,
- 0xBE, 0xBD, 0x48, 0x28, 0xCE, 0x28, 0xF9, 0x0F
- },
- {
- 0x25, 0x05, 0x9F, 0x10, 0x60, 0x5E, 0x67, 0xAD,
- 0xFE, 0x68, 0x13, 0x50, 0x66, 0x6E, 0x15, 0xAE,
- 0x97, 0x6A, 0x5A, 0x57, 0x1C, 0x13, 0xCF, 0x5B,
- 0xC8, 0x05, 0x3F, 0x43, 0x0E, 0x12, 0x0A, 0x52
- },
-};
-
-
-
-
-static const uint8_t blake2sp_keyed_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
-{
- {
- 0x71, 0x5C, 0xB1, 0x38, 0x95, 0xAE, 0xB6, 0x78,
- 0xF6, 0x12, 0x41, 0x60, 0xBF, 0xF2, 0x14, 0x65,
- 0xB3, 0x0F, 0x4F, 0x68, 0x74, 0x19, 0x3F, 0xC8,
- 0x51, 0xB4, 0x62, 0x10, 0x43, 0xF0, 0x9C, 0xC6
- },
- {
- 0x40, 0x57, 0x8F, 0xFA, 0x52, 0xBF, 0x51, 0xAE,
- 0x18, 0x66, 0xF4, 0x28, 0x4D, 0x3A, 0x15, 0x7F,
- 0xC1, 0xBC, 0xD3, 0x6A, 0xC1, 0x3C, 0xBD, 0xCB,
- 0x03, 0x77, 0xE4, 0xD0, 0xCD, 0x0B, 0x66, 0x03
- },
- {
- 0x67, 0xE3, 0x09, 0x75, 0x45, 0xBA, 0xD7, 0xE8,
- 0x52, 0xD7, 0x4D, 0x4E, 0xB5, 0x48, 0xEC, 0xA7,
- 0xC2, 0x19, 0xC2, 0x02, 0xA7, 0xD0, 0x88, 0xDB,
- 0x0E, 0xFE, 0xAC, 0x0E, 0xAC, 0x30, 0x42, 0x49
- },
- {
- 0x8D, 0xBC, 0xC0, 0x58, 0x9A, 0x3D, 0x17, 0x29,
- 0x6A, 0x7A, 0x58, 0xE2, 0xF1, 0xEF, 0xF0, 0xE2,
- 0xAA, 0x42, 0x10, 0xB5, 0x8D, 0x1F, 0x88, 0xB8,
- 0x6D, 0x7B, 0xA5, 0xF2, 0x9D, 0xD3, 0xB5, 0x83
- },
- {
- 0xA9, 0xA9, 0x65, 0x2C, 0x8C, 0x67, 0x75, 0x94,
- 0xC8, 0x72, 0x12, 0xD8, 0x9D, 0x5A, 0x75, 0xFB,
- 0x31, 0xEF, 0x4F, 0x47, 0xC6, 0x58, 0x2C, 0xDE,
- 0x5F, 0x1E, 0xF6, 0x6B, 0xD4, 0x94, 0x53, 0x3A
- },
- {
- 0x05, 0xA7, 0x18, 0x0E, 0x59, 0x50, 0x54, 0x73,
- 0x99, 0x48, 0xC5, 0xE3, 0x38, 0xC9, 0x5F, 0xE0,
- 0xB7, 0xFC, 0x61, 0xAC, 0x58, 0xA7, 0x35, 0x74,
- 0x74, 0x56, 0x33, 0xBB, 0xC1, 0xF7, 0x70, 0x31
- },
- {
- 0x81, 0x4D, 0xE8, 0x31, 0x53, 0xB8, 0xD7, 0x5D,
- 0xFA, 0xDE, 0x29, 0xFD, 0x39, 0xAC, 0x72, 0xDD,
- 0x09, 0xCA, 0x0F, 0x9B, 0xC8, 0xB7, 0xAB, 0x6A,
- 0x06, 0xBA, 0xEE, 0x7D, 0xD0, 0xF9, 0xF0, 0x83
- },
- {
- 0xDF, 0xD4, 0x19, 0x44, 0x91, 0x29, 0xFF, 0x60,
- 0x4F, 0x0A, 0x14, 0x8B, 0x4C, 0x7D, 0x68, 0xF1,
- 0x17, 0x4F, 0x7D, 0x0F, 0x8C, 0x8D, 0x2C, 0xE7,
- 0x7F, 0x44, 0x8F, 0xD3, 0x41, 0x9C, 0x6F, 0xB0
- },
- {
- 0xB9, 0xED, 0x22, 0xE7, 0xDD, 0x8D, 0xD1, 0x4E,
- 0xE8, 0xC9, 0x5B, 0x20, 0xE7, 0x63, 0x2E, 0x85,
- 0x53, 0xA2, 0x68, 0xD9, 0xFF, 0x86, 0x33, 0xED,
- 0x3C, 0x21, 0xD1, 0xB8, 0xC9, 0xA7, 0x0B, 0xE1
- },
- {
- 0x95, 0xF0, 0x31, 0x67, 0x1A, 0x4E, 0x3C, 0x54,
- 0x44, 0x1C, 0xEE, 0x9D, 0xBE, 0xF4, 0xB7, 0xAC,
- 0xA4, 0x46, 0x18, 0xA3, 0xA3, 0x33, 0xAD, 0x74,
- 0x06, 0xD1, 0x97, 0xAC, 0x5B, 0xA0, 0x79, 0x1A
- },
- {
- 0xE2, 0x92, 0x5B, 0x9D, 0x5C, 0xA0, 0xFF, 0x62,
- 0x88, 0xC5, 0xEA, 0x1A, 0xF2, 0xD2, 0x2B, 0x0A,
- 0x6B, 0x79, 0xE2, 0xDA, 0xE0, 0x8B, 0xFD, 0x36,
- 0xC3, 0xBE, 0x10, 0xBB, 0x8D, 0x71, 0xD8, 0x39
- },
- {
- 0x16, 0x24, 0x9C, 0x74, 0x4E, 0x49, 0x51, 0x45,
- 0x1D, 0x4C, 0x89, 0x4F, 0xB5, 0x9A, 0x3E, 0xCB,
- 0x3F, 0xBF, 0xB7, 0xA4, 0x5F, 0x96, 0xF8, 0x5D,
- 0x15, 0x80, 0xAC, 0x0B, 0x84, 0x2D, 0x96, 0xDA
- },
- {
- 0x43, 0x2B, 0xC9, 0x1C, 0x52, 0xAC, 0xEB, 0x9D,
- 0xAE, 0xD8, 0x83, 0x28, 0x81, 0x64, 0x86, 0x50,
- 0xC1, 0xB8, 0x1D, 0x11, 0x7A, 0xBD, 0x68, 0xE0,
- 0x84, 0x51, 0x50, 0x8A, 0x63, 0xBE, 0x00, 0x81
- },
- {
- 0xCD, 0xE8, 0x20, 0x2B, 0xCF, 0xA3, 0xF3, 0xE9,
- 0x5D, 0x79, 0xBA, 0xCC, 0x16, 0x5D, 0x52, 0x70,
- 0x0E, 0xF7, 0x1D, 0x87, 0x4A, 0x3C, 0x63, 0x7E,
- 0x63, 0x4F, 0x64, 0x44, 0x73, 0x72, 0x0D, 0x6B
- },
- {
- 0x16, 0x21, 0x62, 0x1F, 0x5C, 0x3E, 0xE4, 0x46,
- 0x89, 0x9D, 0x3C, 0x8A, 0xAE, 0x49, 0x17, 0xB1,
- 0xE6, 0xDB, 0x4A, 0x0E, 0xD0, 0x42, 0x31, 0x5F,
- 0xB2, 0xC1, 0x74, 0x82, 0x5E, 0x0A, 0x18, 0x19
- },
- {
- 0x33, 0x6E, 0x8E, 0xBC, 0x71, 0xE2, 0x09, 0x5C,
- 0x27, 0xF8, 0x64, 0xA3, 0x12, 0x1E, 0xFD, 0x0F,
- 0xAA, 0x7A, 0x41, 0x28, 0x57, 0x25, 0xA5, 0x92,
- 0xF6, 0x1B, 0xED, 0xED, 0x9D, 0xDE, 0x86, 0xED
- },
- {
- 0x07, 0x9B, 0xE0, 0x41, 0x0E, 0x78, 0x9B, 0x36,
- 0xEE, 0x7F, 0x55, 0xC1, 0x9F, 0xAA, 0xC6, 0x91,
- 0x65, 0x6E, 0xB0, 0x52, 0x1F, 0x42, 0x94, 0x9B,
- 0x84, 0xEE, 0x29, 0xFE, 0x2A, 0x0E, 0x7F, 0x36
- },
- {
- 0x17, 0x27, 0x0C, 0x4F, 0x34, 0x88, 0x08, 0x2D,
- 0x9F, 0xF9, 0x93, 0x7E, 0xAB, 0x3C, 0xA9, 0x9C,
- 0x97, 0xC5, 0xB4, 0x59, 0x61, 0x47, 0x37, 0x2D,
- 0xD4, 0xE9, 0x8A, 0xCF, 0x13, 0xDB, 0x28, 0x10
- },
- {
- 0x18, 0x3C, 0x38, 0x75, 0x4D, 0x03, 0x41, 0xCE,
- 0x07, 0xC1, 0x7A, 0x6C, 0xB6, 0xC2, 0xFD, 0x8B,
- 0xBC, 0xC1, 0x40, 0x4F, 0xDD, 0x01, 0x41, 0x99,
- 0xC7, 0x8B, 0xE1, 0xA9, 0x75, 0x59, 0xA9, 0x28
- },
- {
- 0x6E, 0x52, 0xD7, 0x28, 0xA4, 0x05, 0xA6, 0xE1,
- 0xF8, 0x75, 0x87, 0xBB, 0xC2, 0xAC, 0x91, 0xC5,
- 0xC0, 0x9B, 0x2D, 0x82, 0x8A, 0xC8, 0x1E, 0x5C,
- 0x4A, 0x81, 0xD0, 0x3D, 0xD4, 0xAA, 0x8D, 0x5C
- },
- {
- 0xF4, 0xE0, 0x8E, 0x05, 0x9B, 0x74, 0x14, 0x4B,
- 0xF9, 0x48, 0x14, 0x6D, 0x14, 0xA2, 0xC8, 0x1E,
- 0x46, 0xDC, 0x15, 0xFF, 0x26, 0xEB, 0x52, 0x34,
- 0x4C, 0xDD, 0x47, 0x4A, 0xBE, 0xA1, 0x4B, 0xC0
- },
- {
- 0x0F, 0x2E, 0x0A, 0x10, 0x0E, 0xD8, 0xA1, 0x17,
- 0x85, 0x96, 0x2A, 0xD4, 0x59, 0x6A, 0xF9, 0x55,
- 0xE3, 0x0B, 0x9A, 0xEF, 0x93, 0x0A, 0x24, 0x8D,
- 0xA9, 0x32, 0x2B, 0x70, 0x2D, 0x4B, 0x68, 0x72
- },
- {
- 0x51, 0x90, 0xFC, 0xC7, 0x32, 0xF4, 0x04, 0xAA,
- 0xD4, 0x36, 0x4A, 0xC7, 0x96, 0x0C, 0xFD, 0x5B,
- 0x4E, 0x34, 0x86, 0x29, 0xC3, 0x72, 0xEE, 0xB3,
- 0x25, 0xB5, 0xC6, 0xC7, 0xCB, 0xCE, 0x59, 0xAB
- },
- {
- 0xC0, 0xC4, 0xCB, 0x86, 0xEA, 0x25, 0xEA, 0x95,
- 0x7E, 0xEC, 0x5B, 0x22, 0xD2, 0x55, 0x0A, 0x16,
- 0x49, 0xE6, 0xDF, 0xFA, 0x31, 0x6B, 0xB8, 0xF4,
- 0xC9, 0x1B, 0x8F, 0xF7, 0xA2, 0x4B, 0x25, 0x31
- },
- {
- 0x2C, 0x9E, 0xDA, 0x13, 0x5A, 0x30, 0xAE, 0xCA,
- 0xF3, 0xAC, 0xB3, 0xD2, 0x3A, 0x30, 0x35, 0xFB,
- 0xAB, 0xBA, 0x98, 0x33, 0x31, 0x65, 0xD8, 0x7F,
- 0xCB, 0xF8, 0xFE, 0x10, 0x33, 0x6E, 0xCF, 0x20
- },
- {
- 0x3C, 0xD6, 0x69, 0xE8, 0xD5, 0x62, 0x62, 0xA2,
- 0x37, 0x13, 0x67, 0x22, 0x4D, 0xAE, 0x6D, 0x75,
- 0x9E, 0xE1, 0x52, 0xC3, 0x15, 0x33, 0xB2, 0x63,
- 0xFA, 0x2E, 0x64, 0x92, 0x08, 0x77, 0xB2, 0xA7
- },
- {
- 0x18, 0xA9, 0xA0, 0xC2, 0xD0, 0xEA, 0x6C, 0x3B,
- 0xB3, 0x32, 0x83, 0x0F, 0x89, 0x18, 0xB0, 0x68,
- 0x4F, 0x5D, 0x39, 0x94, 0xDF, 0x48, 0x67, 0x46,
- 0x2D, 0xD0, 0x6E, 0xF0, 0x86, 0x24, 0x24, 0xCC
- },
- {
- 0x73, 0x90, 0xEA, 0x41, 0x04, 0xA9, 0xF4, 0xEE,
- 0xA9, 0x0F, 0x81, 0xE2, 0x6A, 0x12, 0x9D, 0xCF,
- 0x9F, 0x4A, 0xF3, 0x83, 0x52, 0xD9, 0xCB, 0x6A,
- 0x81, 0x2C, 0xC8, 0x05, 0x69, 0x09, 0x05, 0x0E
- },
- {
- 0xE4, 0x9E, 0x01, 0x14, 0xC6, 0x29, 0xB4, 0x94,
- 0xB1, 0x1E, 0xA9, 0x8E, 0xCD, 0x40, 0x32, 0x73,
- 0x1F, 0x15, 0x3B, 0x46, 0x50, 0xAC, 0xAC, 0xD7,
- 0xE0, 0xF6, 0xE7, 0xDE, 0x3D, 0xF0, 0x19, 0x77
- },
- {
- 0x27, 0xC5, 0x70, 0x2B, 0xE1, 0x04, 0xB3, 0xA9,
- 0x4F, 0xC4, 0x34, 0x23, 0xAE, 0xEE, 0x83, 0xAC,
- 0x3C, 0xA7, 0x3B, 0x7F, 0x87, 0x83, 0x9A, 0x6B,
- 0x2E, 0x29, 0x60, 0x79, 0x03, 0xB7, 0xF2, 0x87
- },
- {
- 0x81, 0xD2, 0xE1, 0x2E, 0xB2, 0xF4, 0x27, 0x60,
- 0xC6, 0xE3, 0xBA, 0xA7, 0x8F, 0x84, 0x07, 0x3A,
- 0xE6, 0xF5, 0x61, 0x60, 0x70, 0xFE, 0x25, 0xBE,
- 0xDE, 0x7C, 0x7C, 0x82, 0x48, 0xAB, 0x1F, 0xBA
- },
- {
- 0xFA, 0xB2, 0x35, 0xD5, 0x93, 0x48, 0xAB, 0x8C,
- 0xE4, 0x9B, 0xEC, 0x77, 0xC0, 0xF1, 0x93, 0x28,
- 0xFD, 0x04, 0x5D, 0xFD, 0x60, 0x8A, 0x53, 0x03,
- 0x36, 0xDF, 0x4F, 0x94, 0xE1, 0x72, 0xA5, 0xC8
- },
- {
- 0x8A, 0xAA, 0x8D, 0x80, 0x5C, 0x58, 0x88, 0x1F,
- 0xF3, 0x79, 0xFB, 0xD4, 0x2C, 0x6B, 0xF6, 0xF1,
- 0x4C, 0x6C, 0x73, 0xDF, 0x80, 0x71, 0xB3, 0xB2,
- 0x28, 0x98, 0x11, 0x09, 0xCC, 0xC0, 0x15, 0xF9
- },
- {
- 0x91, 0xFD, 0xD2, 0x62, 0x20, 0x39, 0x16, 0x39,
- 0x47, 0x40, 0x95, 0x2B, 0xCE, 0x72, 0xB6, 0x4B,
- 0xAB, 0xB6, 0xF7, 0x21, 0x34, 0x4D, 0xEE, 0x82,
- 0x50, 0xBF, 0x0E, 0x46, 0xF1, 0xBA, 0x18, 0x8F
- },
- {
- 0xF7, 0xE5, 0x7B, 0x8F, 0x85, 0xF4, 0x7D, 0x59,
- 0x03, 0xAD, 0x4C, 0xCB, 0x8A, 0xF6, 0x2A, 0x3E,
- 0x85, 0x8A, 0xAB, 0x2B, 0x8C, 0xC2, 0x26, 0x49,
- 0x4F, 0x7B, 0x00, 0xBE, 0xDB, 0xF5, 0xB0, 0xD0
- },
- {
- 0xF7, 0x6F, 0x21, 0xAD, 0xDA, 0xE9, 0x6A, 0x96,
- 0x46, 0xFC, 0x06, 0xF9, 0xBF, 0x52, 0xAE, 0x08,
- 0x48, 0xF1, 0x8C, 0x35, 0x26, 0xB1, 0x29, 0xE1,
- 0x5B, 0x2C, 0x35, 0x5E, 0x2E, 0x79, 0xE5, 0xDA
- },
- {
- 0x8A, 0xEB, 0x1C, 0x79, 0x5F, 0x34, 0x90, 0x01,
- 0x5E, 0xF4, 0xCD, 0x61, 0xA2, 0x80, 0x7B, 0x23,
- 0x0E, 0xFD, 0xC8, 0x46, 0x01, 0x73, 0xDA, 0xD0,
- 0x26, 0xA4, 0xA0, 0xFC, 0xC2, 0xFB, 0xF2, 0x2A
- },
- {
- 0xC5, 0x64, 0xFF, 0xC6, 0x23, 0x07, 0x77, 0x65,
- 0xBB, 0x97, 0x87, 0x58, 0x56, 0x54, 0xCE, 0x74,
- 0x5D, 0xBD, 0x10, 0x8C, 0xEF, 0x24, 0x8A, 0xB0,
- 0x0A, 0xD1, 0xA2, 0x64, 0x7D, 0x99, 0x03, 0x87
- },
- {
- 0xFE, 0x89, 0x42, 0xA3, 0xE5, 0xF5, 0xE8, 0xCD,
- 0x70, 0x51, 0x04, 0xF8, 0x82, 0x10, 0x72, 0x6E,
- 0x53, 0xDD, 0x7E, 0xB3, 0xF9, 0xA2, 0x02, 0xBF,
- 0x93, 0x14, 0xB3, 0xB9, 0x06, 0x5E, 0xB7, 0x12
- },
- {
- 0xDC, 0x29, 0x53, 0x59, 0xD4, 0x36, 0xEE, 0xA7,
- 0x80, 0x84, 0xE7, 0xB0, 0x77, 0xFE, 0x09, 0xB1,
- 0x9C, 0x5B, 0xF3, 0xD2, 0xA7, 0x96, 0xDA, 0xB0,
- 0x19, 0xE4, 0x20, 0x05, 0x99, 0xFD, 0x82, 0x02
- },
- {
- 0x70, 0xB3, 0xF7, 0x2F, 0x74, 0x90, 0x32, 0xE2,
- 0x5E, 0x38, 0x3B, 0x96, 0x43, 0x78, 0xEA, 0x1C,
- 0x54, 0x3E, 0x9C, 0x15, 0xDE, 0x3A, 0x27, 0xD8,
- 0x6D, 0x2A, 0x9D, 0x22, 0x31, 0xEF, 0xF4, 0x8A
- },
- {
- 0x79, 0x82, 0xB5, 0x4C, 0x08, 0xDB, 0x2B, 0xFB,
- 0x6F, 0x45, 0xF3, 0x5B, 0xC3, 0x23, 0xBC, 0x09,
- 0x37, 0x79, 0xB6, 0xBB, 0x0E, 0x3E, 0xEA, 0x3E,
- 0x8C, 0x98, 0xB1, 0xDE, 0x99, 0xD3, 0xC5, 0x5E
- },
- {
- 0x75, 0xE4, 0x16, 0x22, 0x57, 0x01, 0x4B, 0xED,
- 0xCC, 0x05, 0xC2, 0x94, 0x4D, 0xCE, 0x0D, 0xF0,
- 0xC3, 0x5E, 0xBA, 0x13, 0x19, 0x54, 0x06, 0x4F,
- 0x6E, 0x4E, 0x09, 0x5F, 0xD0, 0x84, 0x45, 0xEE
- },
- {
- 0x4A, 0x12, 0x9E, 0xA6, 0xCD, 0xBA, 0xBC, 0x2D,
- 0x39, 0x24, 0x79, 0x37, 0x2F, 0x97, 0x5B, 0x9C,
- 0xF5, 0xA1, 0xB7, 0xDE, 0xB6, 0x9A, 0x32, 0x66,
- 0xF0, 0x3E, 0xBC, 0x6D, 0x11, 0x13, 0x93, 0xC4
- },
- {
- 0x8F, 0xED, 0x70, 0xF2, 0x79, 0x55, 0xDC, 0x8A,
- 0xD9, 0xF1, 0xB7, 0xB3, 0xF6, 0xF5, 0xDF, 0xBD,
- 0x96, 0x2A, 0x33, 0x59, 0x2B, 0x42, 0xDE, 0x85,
- 0x6D, 0x42, 0x1E, 0x29, 0x12, 0xBA, 0xB8, 0x6B
- },
- {
- 0xE2, 0xF2, 0x06, 0x60, 0x37, 0x6F, 0x2B, 0x18,
- 0x39, 0x66, 0x7C, 0xBF, 0xE5, 0xE1, 0x6E, 0xF0,
- 0x75, 0xAC, 0x39, 0x43, 0x64, 0x4F, 0x35, 0x32,
- 0x28, 0x2F, 0x8B, 0xB0, 0x72, 0x3B, 0x99, 0x86
- },
- {
- 0xAB, 0xF8, 0x4C, 0x91, 0x3A, 0x83, 0xDF, 0x98,
- 0xC7, 0x00, 0x29, 0x81, 0x9C, 0x06, 0x5F, 0x6D,
- 0x6D, 0xE4, 0xF6, 0xD4, 0x3A, 0xBF, 0x60, 0x0D,
- 0xAD, 0xE0, 0x35, 0xB2, 0x3B, 0xED, 0x7B, 0xAA
- },
- {
- 0x45, 0x9C, 0x15, 0xD4, 0x85, 0x6C, 0x7E, 0xCF,
- 0x82, 0x62, 0x03, 0x51, 0xC3, 0xC1, 0xC7, 0x6C,
- 0x40, 0x3F, 0x3E, 0x97, 0x07, 0x74, 0x13, 0x87,
- 0xE2, 0x99, 0x07, 0x3F, 0xB1, 0x70, 0x4B, 0x2B
- },
- {
- 0x9A, 0xB9, 0x12, 0xED, 0xA0, 0x76, 0x8A, 0xBD,
- 0xF8, 0x26, 0xB6, 0xE0, 0x5D, 0x0D, 0x73, 0x58,
- 0x39, 0xE6, 0xA5, 0xF0, 0x2E, 0x04, 0xC4, 0xCC,
- 0x75, 0x65, 0x0B, 0x2C, 0x8C, 0xAB, 0x67, 0x49
- },
- {
- 0x47, 0x40, 0xEB, 0xEC, 0xAC, 0x90, 0x03, 0x1B,
- 0xB7, 0xE6, 0x8E, 0x51, 0xC5, 0x53, 0x91, 0xAF,
- 0xB1, 0x89, 0xB3, 0x17, 0xF2, 0xDE, 0x55, 0x87,
- 0x66, 0xF7, 0x8F, 0x5C, 0xB7, 0x1F, 0x81, 0xB6
- },
- {
- 0x3C, 0xC4, 0x7F, 0x0E, 0xF6, 0x48, 0x21, 0x58,
- 0x7C, 0x93, 0x7C, 0xDD, 0xBA, 0x85, 0xC9, 0x93,
- 0xD3, 0xCE, 0x2D, 0xD0, 0xCE, 0xD4, 0x0D, 0x3B,
- 0xE3, 0x3C, 0xB7, 0xDC, 0x7E, 0xDA, 0xBC, 0xF1
- },
- {
- 0x9F, 0x47, 0x6A, 0x22, 0xDB, 0x54, 0xD6, 0xBB,
- 0x9B, 0xEF, 0xDB, 0x26, 0x0C, 0x66, 0x57, 0x8A,
- 0xE1, 0xD8, 0xA5, 0xF8, 0x7D, 0x3D, 0x8C, 0x01,
- 0x7F, 0xDB, 0x74, 0x75, 0x08, 0x0F, 0xA8, 0xE1
- },
- {
- 0x8B, 0x68, 0xC6, 0xFB, 0x07, 0x06, 0xA7, 0x95,
- 0xF3, 0xA8, 0x39, 0xD6, 0xFE, 0x25, 0xFD, 0x4A,
- 0xA7, 0xF9, 0x2E, 0x66, 0x4F, 0x76, 0x2D, 0x61,
- 0x53, 0x81, 0xBC, 0x85, 0x9A, 0xFA, 0x29, 0x2C
- },
- {
- 0xF6, 0x40, 0xD2, 0x25, 0xA6, 0xBC, 0xD2, 0xFC,
- 0x8A, 0xCC, 0xAF, 0xBE, 0xD5, 0xA8, 0x4B, 0x5B,
- 0xBB, 0x5D, 0x8A, 0xE5, 0xDB, 0x06, 0xA1, 0x0B,
- 0x6D, 0x9D, 0x93, 0x16, 0x0B, 0x39, 0x2E, 0xE0
- },
- {
- 0x70, 0x48, 0x60, 0xA7, 0xF5, 0xBA, 0x68, 0xDB,
- 0x27, 0x03, 0x1C, 0x15, 0xF2, 0x25, 0x50, 0x0D,
- 0x69, 0x2A, 0xB2, 0x47, 0x53, 0x42, 0x81, 0xC4,
- 0xF6, 0x84, 0xF6, 0xC6, 0xC8, 0xCD, 0x88, 0xC7
- },
- {
- 0xC1, 0xA7, 0x5B, 0xDD, 0xA1, 0x2B, 0x8B, 0x2A,
- 0xB1, 0xB9, 0x24, 0x84, 0x38, 0x58, 0x18, 0x3A,
- 0x09, 0xD2, 0x02, 0x42, 0x1F, 0xDB, 0xCD, 0xF0,
- 0xE6, 0x3E, 0xAE, 0x46, 0xF3, 0x7D, 0x91, 0xED
- },
- {
- 0x9A, 0x8C, 0xAB, 0x7A, 0x5F, 0x2E, 0x57, 0x62,
- 0x21, 0xA6, 0xA8, 0x5E, 0x5F, 0xDD, 0xEE, 0x75,
- 0x67, 0x8E, 0x06, 0x53, 0x24, 0xA6, 0x1D, 0xB0,
- 0x3A, 0x39, 0x26, 0x1D, 0xDF, 0x75, 0xE3, 0xF4
- },
- {
- 0x05, 0xC2, 0xB2, 0x6B, 0x03, 0xCE, 0x6C, 0xA5,
- 0x87, 0x1B, 0xE0, 0xDE, 0x84, 0xEE, 0x27, 0x86,
- 0xA7, 0x9B, 0xCD, 0x9F, 0x30, 0x03, 0x3E, 0x81,
- 0x9B, 0x4A, 0x87, 0xCC, 0xA2, 0x7A, 0xFC, 0x6A
- },
- {
- 0xB0, 0xB0, 0x99, 0x3C, 0x6D, 0x0C, 0x6E, 0xD5,
- 0xC3, 0x59, 0x04, 0x80, 0xF8, 0x65, 0xF4, 0x67,
- 0xF4, 0x33, 0x1A, 0x58, 0xDD, 0x8E, 0x47, 0xBD,
- 0x98, 0xEB, 0xBC, 0xDB, 0x8E, 0xB4, 0xF9, 0x4D
- },
- {
- 0xE5, 0x7C, 0x10, 0x3C, 0xF7, 0xB6, 0xBB, 0xEB,
- 0x8A, 0x0D, 0xC8, 0xF0, 0x48, 0x62, 0x5C, 0x3F,
- 0x4C, 0xE4, 0xF1, 0xA5, 0xAD, 0x4D, 0x07, 0x9C,
- 0x11, 0x87, 0xBF, 0xE9, 0xEE, 0x3B, 0x8A, 0x5F
- },
- {
- 0xF1, 0x00, 0x23, 0xE1, 0x5F, 0x3B, 0x72, 0xB7,
- 0x38, 0xAD, 0x61, 0xAE, 0x65, 0xAB, 0x9A, 0x07,
- 0xE7, 0x77, 0x4E, 0x2D, 0x7A, 0xB0, 0x2D, 0xBA,
- 0x4E, 0x0C, 0xAF, 0x56, 0x02, 0xC8, 0x01, 0x78
- },
- {
- 0x9A, 0x8F, 0xB3, 0xB5, 0x38, 0xC1, 0xD6, 0xC4,
- 0x50, 0x51, 0xFA, 0x9E, 0xD9, 0xB0, 0x7D, 0x3E,
- 0x89, 0xB4, 0x43, 0x03, 0x30, 0x01, 0x4A, 0x1E,
- 0xFA, 0x28, 0x23, 0xC0, 0x82, 0x3C, 0xF2, 0x37
- },
- {
- 0x30, 0x75, 0xC5, 0xBC, 0x7C, 0x3A, 0xD7, 0xE3,
- 0x92, 0x01, 0x01, 0xBC, 0x68, 0x99, 0xC5, 0x8E,
- 0xA7, 0x01, 0x67, 0xA7, 0x77, 0x2C, 0xA2, 0x8E,
- 0x38, 0xE2, 0xC1, 0xB0, 0xD3, 0x25, 0xE5, 0xA0
- },
- {
- 0xE8, 0x55, 0x94, 0x70, 0x0E, 0x39, 0x22, 0xA1,
- 0xE8, 0xE4, 0x1E, 0xB8, 0xB0, 0x64, 0xE7, 0xAC,
- 0x6D, 0x94, 0x9D, 0x13, 0xB5, 0xA3, 0x45, 0x23,
- 0xE5, 0xA6, 0xBE, 0xAC, 0x03, 0xC8, 0xAB, 0x29
- },
- {
- 0x1D, 0x37, 0x01, 0xA5, 0x66, 0x1B, 0xD3, 0x1A,
- 0xB2, 0x05, 0x62, 0xBD, 0x07, 0xB7, 0x4D, 0xD1,
- 0x9A, 0xC8, 0xF3, 0x52, 0x4B, 0x73, 0xCE, 0x7B,
- 0xC9, 0x96, 0xB7, 0x88, 0xAF, 0xD2, 0xF3, 0x17
- },
- {
- 0x87, 0x4E, 0x19, 0x38, 0x03, 0x3D, 0x7D, 0x38,
- 0x35, 0x97, 0xA2, 0xA6, 0x5F, 0x58, 0xB5, 0x54,
- 0xE4, 0x11, 0x06, 0xF6, 0xD1, 0xD5, 0x0E, 0x9B,
- 0xA0, 0xEB, 0x68, 0x5F, 0x6B, 0x6D, 0xA0, 0x71
- },
- {
- 0x93, 0xF2, 0xF3, 0xD6, 0x9B, 0x2D, 0x36, 0x52,
- 0x95, 0x56, 0xEC, 0xCA, 0xF9, 0xF9, 0x9A, 0xDB,
- 0xE8, 0x95, 0xE1, 0x57, 0x22, 0x31, 0xE6, 0x49,
- 0xB5, 0x05, 0x84, 0xB5, 0xD7, 0xD0, 0x8A, 0xF8
- },
- {
- 0x06, 0xE0, 0x6D, 0x61, 0x0F, 0x2E, 0xEB, 0xBA,
- 0x36, 0x76, 0x82, 0x3E, 0x77, 0x44, 0xD7, 0x51,
- 0xAF, 0xF7, 0x30, 0x76, 0xED, 0x65, 0xF3, 0xCF,
- 0xF5, 0xE7, 0x2F, 0xD2, 0x27, 0x99, 0x9C, 0x77
- },
- {
- 0x8D, 0xF7, 0x57, 0xB3, 0xA1, 0xE0, 0xF4, 0x80,
- 0xFA, 0x76, 0xC7, 0xF3, 0x58, 0xED, 0x03, 0x98,
- 0xBE, 0x3F, 0x2A, 0x8F, 0x7B, 0x90, 0xEA, 0x8C,
- 0x80, 0x75, 0x99, 0xDE, 0xDA, 0x1D, 0x05, 0x34
- },
- {
- 0xEE, 0xC9, 0xC5, 0xC6, 0x3C, 0xC5, 0x16, 0x9D,
- 0x96, 0x7B, 0xB1, 0x62, 0x4E, 0x9E, 0xE5, 0xCE,
- 0xD9, 0x28, 0x97, 0x73, 0x6E, 0xFB, 0xD1, 0x57,
- 0x54, 0x8D, 0x82, 0xE8, 0x7C, 0xC7, 0x2F, 0x25
- },
- {
- 0xCC, 0x2B, 0x58, 0x32, 0xAD, 0x27, 0x2C, 0xC5,
- 0x5C, 0x10, 0xD4, 0xF8, 0xC7, 0xF8, 0xBB, 0x38,
- 0xE6, 0xE4, 0xEB, 0x92, 0x2F, 0x93, 0x86, 0x83,
- 0x0F, 0x90, 0xB1, 0xE3, 0xDA, 0x39, 0x37, 0xD5
- },
- {
- 0x36, 0x89, 0x85, 0xD5, 0x38, 0x7C, 0x0B, 0xFC,
- 0x92, 0x8A, 0xC2, 0x54, 0xFA, 0x6D, 0x16, 0x67,
- 0x3E, 0x70, 0x94, 0x75, 0x66, 0x96, 0x1B, 0x5F,
- 0xB3, 0x32, 0x5A, 0x58, 0x8A, 0xB3, 0x17, 0x3A
- },
- {
- 0xF1, 0xE4, 0x42, 0xAF, 0xB8, 0x72, 0x15, 0x1F,
- 0x81, 0x34, 0x95, 0x6C, 0x54, 0x8A, 0xE3, 0x24,
- 0x0D, 0x07, 0xE6, 0xE3, 0x38, 0xD4, 0xA7, 0xA6,
- 0xAF, 0x8D, 0xA4, 0x11, 0x9A, 0xB0, 0xE2, 0xB0
- },
- {
- 0xB0, 0x12, 0xC7, 0x54, 0x6A, 0x39, 0xC4, 0x0C,
- 0xAD, 0xEC, 0xE4, 0xE0, 0x4E, 0x7F, 0x33, 0xC5,
- 0x93, 0xAD, 0x18, 0x2E, 0xBC, 0x5A, 0x46, 0xD2,
- 0xDB, 0xF4, 0xAD, 0x1A, 0x92, 0xF5, 0x9E, 0x7B
- },
- {
- 0x6C, 0x60, 0x97, 0xCD, 0x20, 0x33, 0x09, 0x6B,
- 0x4D, 0xF3, 0x17, 0xDE, 0x8A, 0x90, 0x8B, 0x7D,
- 0x0C, 0x72, 0x94, 0x39, 0x0C, 0x5A, 0x39, 0x9C,
- 0x30, 0x1B, 0xF2, 0xA2, 0x65, 0x2E, 0x82, 0x62
- },
- {
- 0xBA, 0x83, 0xFE, 0xB5, 0x10, 0xB4, 0x9A, 0xDE,
- 0x4F, 0xAE, 0xFB, 0xE9, 0x42, 0x78, 0x1E, 0xAF,
- 0xD4, 0x1A, 0xD5, 0xD4, 0x36, 0x88, 0x85, 0x31,
- 0xB6, 0x88, 0x59, 0xF2, 0x2C, 0x2D, 0x16, 0x4A
- },
- {
- 0x5A, 0x06, 0x9E, 0x43, 0x92, 0x19, 0x5A, 0xC9,
- 0xD2, 0x84, 0xA4, 0x7F, 0x3B, 0xD8, 0x54, 0xAF,
- 0x8F, 0xD0, 0xD7, 0xFD, 0xC3, 0x48, 0x3D, 0x2C,
- 0x5F, 0x34, 0x24, 0xCC, 0xFD, 0xA1, 0x5C, 0x8E
- },
- {
- 0x7E, 0x88, 0xD6, 0x4B, 0xBB, 0xE2, 0x02, 0x4F,
- 0x44, 0x54, 0xBA, 0x13, 0x98, 0xB3, 0xD8, 0x65,
- 0x2D, 0xCE, 0xC8, 0x20, 0xB1, 0x4C, 0x3B, 0x0A,
- 0xBF, 0xBF, 0x0F, 0x4F, 0x33, 0x06, 0xBB, 0x5E
- },
- {
- 0xF8, 0x74, 0x2F, 0xF4, 0x6D, 0xFD, 0xF3, 0xEC,
- 0x82, 0x64, 0xF9, 0x94, 0x5B, 0x20, 0x41, 0x94,
- 0x62, 0xF0, 0x69, 0xE8, 0x33, 0xC5, 0x94, 0xEC,
- 0x80, 0xFF, 0xAC, 0x5E, 0x7E, 0x51, 0x34, 0xF9
- },
- {
- 0xD3, 0xE0, 0xB7, 0x38, 0xD2, 0xE9, 0x2F, 0x3C,
- 0x47, 0xC7, 0x94, 0x66, 0x66, 0x09, 0xC0, 0xF5,
- 0x50, 0x4F, 0x67, 0xEC, 0x4E, 0x76, 0x0E, 0xEE,
- 0xCC, 0xF8, 0x64, 0x4E, 0x68, 0x33, 0x34, 0x11
- },
- {
- 0x0C, 0x90, 0xCE, 0x10, 0xED, 0xF0, 0xCE, 0x1D,
- 0x47, 0xEE, 0xB5, 0x0B, 0x5B, 0x7A, 0xFF, 0x8E,
- 0xE8, 0xA4, 0x3B, 0x64, 0xA8, 0x89, 0xC1, 0xC6,
- 0xC6, 0xB8, 0xE3, 0x1A, 0x3C, 0xFC, 0x45, 0xEE
- },
- {
- 0x83, 0x91, 0x7A, 0xC1, 0xCD, 0xAD, 0xE8, 0xF0,
- 0xE3, 0xBF, 0x42, 0x6F, 0xEA, 0xC1, 0x38, 0x8B,
- 0x3F, 0xCB, 0xE3, 0xE1, 0xBF, 0x98, 0x79, 0x8C,
- 0x81, 0x58, 0xBF, 0x75, 0x8E, 0x8D, 0x5D, 0x4E
- },
- {
- 0xDC, 0x8E, 0xB0, 0xC0, 0x13, 0xFA, 0x9D, 0x06,
- 0x4E, 0xE3, 0x76, 0x23, 0x36, 0x9F, 0xB3, 0x94,
- 0xAF, 0x97, 0x4B, 0x1A, 0xAC, 0x82, 0x40, 0x5B,
- 0x88, 0x97, 0x6C, 0xD8, 0xFC, 0xA1, 0x25, 0x30
- },
- {
- 0x9A, 0xF4, 0xFC, 0x92, 0xEA, 0x8D, 0x6B, 0x5F,
- 0xE7, 0x99, 0x0E, 0x3A, 0x02, 0x70, 0x1E, 0xC2,
- 0x2B, 0x2D, 0xFD, 0x71, 0x00, 0xB9, 0x0D, 0x05,
- 0x51, 0x86, 0x94, 0x17, 0x95, 0x5E, 0x44, 0xC8
- },
- {
- 0xC7, 0x22, 0xCE, 0xC1, 0x31, 0xBA, 0xA1, 0x63,
- 0xF4, 0x7E, 0x4B, 0x33, 0x9E, 0x1F, 0xB9, 0xB4,
- 0xAC, 0xA2, 0x48, 0xC4, 0x75, 0x93, 0x45, 0xEA,
- 0xDB, 0xD6, 0xC6, 0xA7, 0xDD, 0xB5, 0x04, 0x77
- },
- {
- 0x18, 0x37, 0xB1, 0x20, 0xD4, 0xE4, 0x04, 0x6C,
- 0x6D, 0xE8, 0xCC, 0xAF, 0x09, 0xF1, 0xCA, 0xF3,
- 0x02, 0xAD, 0x56, 0x23, 0x4E, 0x6B, 0x42, 0x2C,
- 0xE9, 0x0A, 0x61, 0xBF, 0x06, 0xAE, 0xE4, 0x3D
- },
- {
- 0x87, 0xAC, 0x9D, 0x0F, 0x8A, 0x0B, 0x11, 0xBF,
- 0xED, 0xD6, 0x99, 0x1A, 0x6D, 0xAF, 0x34, 0xC8,
- 0xAA, 0x5D, 0x7E, 0x8A, 0xE1, 0xB9, 0xDF, 0x4A,
- 0xF7, 0x38, 0x00, 0x5F, 0xE7, 0x8C, 0xE9, 0x3C
- },
- {
- 0xE2, 0x1F, 0xB6, 0x68, 0xEB, 0xB8, 0xBF, 0x2D,
- 0x82, 0x08, 0x6D, 0xED, 0xCB, 0x3A, 0x53, 0x71,
- 0xC2, 0xC4, 0x6F, 0xA1, 0xAC, 0x11, 0xD2, 0xE2,
- 0xC5, 0x66, 0xD1, 0x4A, 0xD3, 0xC3, 0x65, 0x3F
- },
- {
- 0x5A, 0x9A, 0x69, 0x81, 0x5E, 0x4D, 0x3E, 0xB7,
- 0x72, 0xED, 0x90, 0x8F, 0xE6, 0x58, 0xCE, 0x50,
- 0x87, 0x31, 0x0E, 0xC1, 0xD5, 0x0C, 0xB9, 0x4F,
- 0x56, 0x28, 0x33, 0x9A, 0x61, 0xDC, 0xD9, 0xEE
- },
- {
- 0xAA, 0xC2, 0x85, 0xF1, 0x20, 0x8F, 0x70, 0xA6,
- 0x47, 0x97, 0xD0, 0xA9, 0x40, 0x0D, 0xA6, 0x46,
- 0x53, 0x30, 0x18, 0x38, 0xFE, 0xF6, 0x69, 0x0B,
- 0x87, 0xCD, 0xA9, 0x15, 0x9E, 0xE0, 0x7E, 0xF4
- },
- {
- 0x05, 0x64, 0x3C, 0x1C, 0x6F, 0x26, 0x59, 0x25,
- 0xA6, 0x50, 0x93, 0xF9, 0xDE, 0x8A, 0x19, 0x1C,
- 0x4F, 0x6F, 0xD1, 0x41, 0x8F, 0xBF, 0x66, 0xBE,
- 0x80, 0x59, 0xA9, 0x1B, 0xA8, 0xDC, 0xDA, 0x61
- },
- {
- 0x1C, 0x6C, 0xDE, 0x5B, 0x78, 0x10, 0x3C, 0x9E,
- 0x6F, 0x04, 0x6D, 0xFE, 0x30, 0xF5, 0x12, 0x1C,
- 0xF9, 0xD4, 0x03, 0x9E, 0xFE, 0x22, 0x25, 0x40,
- 0xA4, 0x1B, 0xBC, 0x06, 0xE4, 0x69, 0xFE, 0xB6
- },
- {
- 0xB4, 0x9B, 0xB4, 0x6D, 0x1B, 0x19, 0x3B, 0x04,
- 0x5E, 0x74, 0x12, 0x05, 0x9F, 0xE7, 0x2D, 0x55,
- 0x25, 0x52, 0xA8, 0xFB, 0x6C, 0x36, 0x41, 0x07,
- 0x23, 0xDC, 0x7D, 0x05, 0xFC, 0xCE, 0xDE, 0xD3
- },
- {
- 0xB6, 0x12, 0xD3, 0xD2, 0x1F, 0xC4, 0xDE, 0x3C,
- 0x79, 0x1A, 0xF7, 0x35, 0xE5, 0x9F, 0xB7, 0x17,
- 0xD8, 0x39, 0x72, 0x3B, 0x42, 0x50, 0x8E, 0x9E,
- 0xBF, 0x78, 0x06, 0xD9, 0x3E, 0x9C, 0x83, 0x7F
- },
- {
- 0x7C, 0x33, 0x90, 0xA3, 0xE5, 0xCB, 0x27, 0xD1,
- 0x86, 0x8B, 0xA4, 0x55, 0xCF, 0xEB, 0x32, 0x22,
- 0xFD, 0xE2, 0x7B, 0xCD, 0xA4, 0xBF, 0x24, 0x8E,
- 0x3D, 0x29, 0xCF, 0x1F, 0x34, 0x32, 0x9F, 0x25
- },
- {
- 0xBD, 0x42, 0xEE, 0xA7, 0xB3, 0x54, 0x86, 0xCD,
- 0xD0, 0x90, 0x7C, 0xB4, 0x71, 0x2E, 0xDE, 0x2F,
- 0x4D, 0xEE, 0xCC, 0xBC, 0xA1, 0x91, 0x60, 0x38,
- 0x65, 0xA1, 0xCC, 0x80, 0x9F, 0x12, 0xB4, 0x46
- },
- {
- 0xD1, 0xDD, 0x62, 0x01, 0x74, 0x0C, 0xFA, 0xAD,
- 0x53, 0xCE, 0xCC, 0xB7, 0x56, 0xB1, 0x10, 0xF3,
- 0xD5, 0x0F, 0x81, 0x7B, 0x43, 0xD7, 0x55, 0x95,
- 0x57, 0xE5, 0x7A, 0xAD, 0x14, 0x3A, 0x85, 0xD9
- },
- {
- 0x58, 0x29, 0x64, 0x3C, 0x1B, 0x10, 0xE1, 0xC8,
- 0xCC, 0xF2, 0x0C, 0x9B, 0x4A, 0xF8, 0x21, 0xEA,
- 0x05, 0x2D, 0x7F, 0x0F, 0x7C, 0x22, 0xF7, 0x38,
- 0x0B, 0xBB, 0xCF, 0xAF, 0xB9, 0x77, 0xE2, 0x1F
- },
- {
- 0xFC, 0x4C, 0xF2, 0xA7, 0xFB, 0xE0, 0xB1, 0xE8,
- 0xAE, 0xFB, 0xE4, 0xB4, 0xB7, 0x9E, 0xD8, 0x4E,
- 0xC9, 0x7B, 0x03, 0x4F, 0x51, 0xB4, 0xE9, 0x7F,
- 0x76, 0x0B, 0x20, 0x63, 0x97, 0x65, 0xB9, 0x33
- },
- {
- 0x4D, 0x7C, 0x3B, 0x34, 0x38, 0xA0, 0xBD, 0xA2,
- 0x8E, 0x7A, 0x96, 0xE4, 0x20, 0x27, 0xD8, 0x13,
- 0xE8, 0x8A, 0xE6, 0x28, 0x85, 0x49, 0x98, 0x33,
- 0xD3, 0xC5, 0xF6, 0x35, 0x9E, 0xF7, 0xED, 0xBC
- },
- {
- 0x34, 0xCB, 0xD3, 0x20, 0x68, 0xEF, 0x7E, 0x82,
- 0x09, 0x9E, 0x58, 0x0B, 0xF9, 0xE2, 0x64, 0x23,
- 0xE9, 0x81, 0xE3, 0x1B, 0x1B, 0xBC, 0xE6, 0x1A,
- 0xEA, 0xB1, 0x4C, 0x32, 0xA2, 0x73, 0xE4, 0xCB
- },
- {
- 0xA0, 0x5D, 0xDA, 0x7D, 0x0D, 0xA9, 0xE0, 0x94,
- 0xAE, 0x22, 0x53, 0x3F, 0x79, 0xE7, 0xDC, 0xCD,
- 0x26, 0xB1, 0x75, 0x7C, 0xEF, 0xB9, 0x5B, 0xCF,
- 0x62, 0xC4, 0xFF, 0x9C, 0x26, 0x92, 0xE1, 0xC0
- },
- {
- 0x22, 0x4C, 0xCF, 0xFA, 0x7C, 0xCA, 0x4C, 0xE3,
- 0x4A, 0xFD, 0x47, 0xF6, 0x2A, 0xDE, 0x53, 0xC5,
- 0xE8, 0x48, 0x9B, 0x04, 0xAC, 0x9C, 0x41, 0xF7,
- 0xFA, 0xD0, 0xC8, 0xED, 0xEB, 0x89, 0xE9, 0x41
- },
- {
- 0x6B, 0xC6, 0x07, 0x64, 0x83, 0xAA, 0x11, 0xC0,
- 0x7F, 0xBA, 0x55, 0xC0, 0xF9, 0xA1, 0xB5, 0xDA,
- 0x87, 0xEC, 0xBF, 0xFE, 0xA7, 0x55, 0x98, 0xCC,
- 0x31, 0x8A, 0x51, 0x4C, 0xEC, 0x7B, 0x3B, 0x6A
- },
- {
- 0x9A, 0x03, 0x60, 0xE2, 0x3A, 0x22, 0xF4, 0xF7,
- 0x6C, 0x0E, 0x95, 0x28, 0xDA, 0xFD, 0x12, 0x9B,
- 0xB4, 0x67, 0x5F, 0xB8, 0x8D, 0x44, 0xEA, 0xF8,
- 0x57, 0x77, 0x30, 0x0C, 0xEC, 0x9B, 0xCC, 0x79
- },
- {
- 0x79, 0x01, 0x99, 0xB4, 0xCA, 0x90, 0xDE, 0xDC,
- 0xCF, 0xE3, 0x24, 0x74, 0xE8, 0x5B, 0x17, 0x4F,
- 0x06, 0x9E, 0x35, 0x42, 0xBE, 0x31, 0x04, 0xC1,
- 0x12, 0x5C, 0x2F, 0xDB, 0xD6, 0x9D, 0x32, 0xC7
- },
- {
- 0x55, 0x83, 0x99, 0x25, 0x83, 0x4C, 0xA3, 0xE8,
- 0x25, 0xE9, 0x92, 0x41, 0x87, 0x4D, 0x16, 0xD6,
- 0xC2, 0x62, 0x36, 0x29, 0xC4, 0xC2, 0xAD, 0xDD,
- 0xF0, 0xDB, 0xA0, 0x1E, 0x6C, 0xE8, 0xA0, 0xDC
- },
- {
- 0x61, 0x5F, 0xF8, 0x46, 0xD9, 0x93, 0x00, 0x7D,
- 0x38, 0xDE, 0x1A, 0xEC, 0xB3, 0x17, 0x82, 0x89,
- 0xDE, 0xD0, 0x9E, 0x6B, 0xB5, 0xCB, 0xD6, 0x0F,
- 0x69, 0xC6, 0xAA, 0x36, 0x38, 0x30, 0x20, 0xF7
- },
- {
- 0xF0, 0xE4, 0x0B, 0x4E, 0xD4, 0x0D, 0x34, 0x85,
- 0x1E, 0x72, 0xB4, 0xEE, 0x4D, 0x00, 0xEA, 0x6A,
- 0x40, 0xEA, 0x1C, 0x1B, 0xF9, 0xE5, 0xC2, 0x69,
- 0x71, 0x0C, 0x9D, 0x51, 0xCB, 0xB8, 0xA3, 0xC9
- },
- {
- 0x0B, 0x07, 0xB2, 0x33, 0x3B, 0x08, 0xD0, 0x8C,
- 0x11, 0xCA, 0x34, 0xAB, 0x44, 0x9B, 0x71, 0xD2,
- 0x9A, 0x0F, 0x43, 0xE1, 0xF7, 0x78, 0xE0, 0x73,
- 0xE7, 0x90, 0x06, 0xCC, 0xB7, 0x30, 0xED, 0x62
- },
- {
- 0xD1, 0xF4, 0xC2, 0x9D, 0x9F, 0x23, 0xEA, 0x35,
- 0xEC, 0x40, 0x35, 0xB3, 0x77, 0xD5, 0x06, 0x53,
- 0x8E, 0x72, 0x8B, 0xC7, 0x39, 0xC1, 0x45, 0x96,
- 0x80, 0xCF, 0x1C, 0xC6, 0x94, 0x24, 0x92, 0x4D
- },
- {
- 0x12, 0x79, 0xCF, 0x6F, 0x66, 0x9F, 0x92, 0xF6,
- 0xBF, 0xC2, 0x5D, 0x60, 0x5B, 0x94, 0x40, 0xC7,
- 0xDC, 0xCB, 0xD2, 0x5D, 0xF2, 0x8D, 0xC7, 0x35,
- 0x3A, 0xBC, 0x1C, 0x05, 0x30, 0x40, 0x5D, 0xC4
- },
- {
- 0x1F, 0xA0, 0xAF, 0x00, 0x77, 0x5D, 0xC2, 0xCE,
- 0x76, 0x50, 0x6D, 0x32, 0x80, 0xF4, 0x72, 0xD2,
- 0xF6, 0xFF, 0x97, 0xA2, 0x15, 0x1F, 0xAA, 0x82,
- 0x79, 0x42, 0xFE, 0xA4, 0x4A, 0xD0, 0xBA, 0x1F
- },
- {
- 0x3E, 0x1A, 0xD5, 0x4A, 0x5F, 0x83, 0x5B, 0x98,
- 0x3B, 0xD2, 0xAA, 0xB0, 0xED, 0x2A, 0x4C, 0x0B,
- 0xDD, 0x72, 0x16, 0x20, 0x9C, 0x36, 0xA7, 0x9E,
- 0x9E, 0x2A, 0xAB, 0xB9, 0x9F, 0xAF, 0x35, 0x12
- },
- {
- 0xC6, 0xED, 0x39, 0xE2, 0xD8, 0xB6, 0x36, 0xEC,
- 0xCB, 0xA2, 0x45, 0xEF, 0x4E, 0x88, 0x64, 0xF4,
- 0xCD, 0x94, 0x6B, 0xE2, 0x16, 0xB9, 0xBE, 0x48,
- 0x30, 0x3E, 0x08, 0xB9, 0x2D, 0xD0, 0x94, 0x34
- },
- {
- 0xE2, 0x47, 0x36, 0xC1, 0x3E, 0xCB, 0x9F, 0x36,
- 0xA0, 0xD8, 0x29, 0xD4, 0x79, 0x8D, 0x76, 0x99,
- 0xC1, 0x4C, 0xC6, 0x5B, 0x6D, 0xC4, 0x4E, 0xD6,
- 0xF1, 0x0C, 0xD4, 0x85, 0x3D, 0x6E, 0x07, 0x57
- },
- {
- 0x38, 0x9B, 0xE8, 0x80, 0x52, 0xA3, 0x81, 0x27,
- 0x2C, 0x6D, 0xF7, 0x41, 0xA8, 0x8A, 0xD3, 0x49,
- 0xB7, 0x12, 0x71, 0x84, 0x35, 0x48, 0x0A, 0x81,
- 0x90, 0xB7, 0x04, 0x77, 0x1D, 0x2D, 0xE6, 0x37
- },
- {
- 0x88, 0x9F, 0x2D, 0x57, 0x8A, 0x5D, 0xAE, 0xFD,
- 0x34, 0x1C, 0x21, 0x09, 0x84, 0xE1, 0x26, 0xD1,
- 0xD9, 0x6D, 0xA2, 0xDE, 0xE3, 0xC8, 0x1F, 0x7A,
- 0x60, 0x80, 0xBF, 0x84, 0x56, 0x9B, 0x31, 0x14
- },
- {
- 0xE9, 0x36, 0x09, 0x5B, 0x9B, 0x98, 0x2F, 0xFC,
- 0x85, 0x6D, 0x2F, 0x52, 0x76, 0xA4, 0xE5, 0x29,
- 0xEC, 0x73, 0x95, 0xDA, 0x31, 0x6D, 0x62, 0x87,
- 0x02, 0xFB, 0x28, 0x1A, 0xDA, 0x6F, 0x38, 0x99
- },
- {
- 0xEF, 0x89, 0xCE, 0x1D, 0x6F, 0x8B, 0x48, 0xEA,
- 0x5C, 0xD6, 0xAE, 0xAB, 0x6A, 0x83, 0xD0, 0xCC,
- 0x98, 0xC9, 0xA3, 0xA2, 0x07, 0xA1, 0x08, 0x57,
- 0x32, 0xF0, 0x47, 0xD9, 0x40, 0x38, 0xC2, 0x88
- },
- {
- 0xF9, 0x25, 0x01, 0x6D, 0x79, 0xF2, 0xAC, 0xA8,
- 0xC4, 0x9E, 0xDF, 0xCD, 0x66, 0x21, 0xD5, 0xBE,
- 0x3C, 0x8C, 0xEC, 0x61, 0xBD, 0x58, 0x71, 0xD8,
- 0xC1, 0xD3, 0xA5, 0x65, 0xF3, 0x5E, 0x0C, 0x9F
- },
- {
- 0x63, 0xE8, 0x63, 0x4B, 0x75, 0x7A, 0x38, 0xF9,
- 0x2B, 0x92, 0xFD, 0x23, 0x89, 0x3B, 0xA2, 0x99,
- 0x85, 0x3A, 0x86, 0x13, 0x67, 0x9F, 0xDF, 0x7E,
- 0x05, 0x11, 0x09, 0x5C, 0x0F, 0x04, 0x7B, 0xCA
- },
- {
- 0xCF, 0x2C, 0xCA, 0x07, 0x72, 0xB7, 0x05, 0xEB,
- 0x57, 0xD2, 0x89, 0x43, 0xF8, 0x3D, 0x35, 0x3F,
- 0xE2, 0x91, 0xE5, 0xB3, 0x77, 0x78, 0x0B, 0x37,
- 0x4C, 0x8B, 0xA4, 0x66, 0x58, 0x30, 0xBE, 0x87
- },
- {
- 0x46, 0xDF, 0x5B, 0x87, 0xC8, 0x0E, 0x7E, 0x40,
- 0x74, 0xAE, 0xE6, 0x85, 0x59, 0x42, 0x47, 0x42,
- 0x84, 0x5B, 0x9B, 0x35, 0x0F, 0x51, 0xBA, 0x55,
- 0xB0, 0x74, 0xBB, 0xAE, 0x4C, 0x62, 0x6A, 0xAB
- },
- {
- 0x65, 0x8A, 0xA4, 0xF9, 0xD2, 0xBC, 0xBD, 0x4F,
- 0x7F, 0x8E, 0xB6, 0x3E, 0x68, 0xF5, 0x36, 0x7E,
- 0xDB, 0xC5, 0x00, 0xA0, 0xB1, 0xFB, 0xB4, 0x1E,
- 0x9D, 0xF1, 0x41, 0xBC, 0xBA, 0x8F, 0xCD, 0x53
- },
- {
- 0xEE, 0x80, 0x55, 0x50, 0x08, 0xA7, 0x16, 0x55,
- 0xE0, 0x81, 0x09, 0x2B, 0xBA, 0x6F, 0x67, 0x0E,
- 0xD9, 0x8A, 0xF9, 0xA0, 0x9F, 0xB5, 0xAF, 0xB9,
- 0x4C, 0xBC, 0x5C, 0x75, 0x48, 0x14, 0xDB, 0x4F
- },
- {
- 0x2C, 0x5F, 0x9D, 0x04, 0x82, 0x20, 0xB0, 0x41,
- 0xB6, 0xD4, 0x52, 0x4B, 0x44, 0x90, 0xCF, 0x8C,
- 0x66, 0xFC, 0xB8, 0xE1, 0x4B, 0x0D, 0x64, 0x88,
- 0x7A, 0xA1, 0xE4, 0x76, 0x1A, 0x60, 0x2B, 0x39
- },
- {
- 0x44, 0xCB, 0x63, 0x11, 0xD0, 0x75, 0x0B, 0x7E,
- 0x33, 0xF7, 0x33, 0x3A, 0xA7, 0x8A, 0xAC, 0xA9,
- 0xC3, 0x4A, 0xD5, 0xF7, 0x9C, 0x1B, 0x15, 0x91,
- 0xEC, 0x33, 0x95, 0x1E, 0x69, 0xC4, 0xC4, 0x61
- },
- {
- 0x0C, 0x6C, 0xE3, 0x2A, 0x3E, 0xA0, 0x56, 0x12,
- 0xC5, 0xF8, 0x09, 0x0F, 0x6A, 0x7E, 0x87, 0xF5,
- 0xAB, 0x30, 0xE4, 0x1B, 0x70, 0x7D, 0xCB, 0xE5,
- 0x41, 0x55, 0x62, 0x0A, 0xD7, 0x70, 0xA3, 0x40
- },
- {
- 0xC6, 0x59, 0x38, 0xDD, 0x3A, 0x05, 0x3C, 0x72,
- 0x9C, 0xF5, 0xB7, 0xC8, 0x9F, 0x39, 0x0B, 0xFE,
- 0xBB, 0x51, 0x12, 0x76, 0x6B, 0xB0, 0x0A, 0xA5,
- 0xFA, 0x31, 0x64, 0xDF, 0xDF, 0x3B, 0x56, 0x47
- },
- {
- 0x7D, 0xE7, 0xF0, 0xD5, 0x9A, 0x90, 0x39, 0xAF,
- 0xF3, 0xAA, 0xF3, 0x2C, 0x3E, 0xE5, 0x2E, 0x79,
- 0x17, 0x53, 0x57, 0x29, 0x06, 0x21, 0x68, 0xD2,
- 0x49, 0x0B, 0x6B, 0x6C, 0xE2, 0x44, 0xB3, 0x80
- },
- {
- 0x89, 0x58, 0x98, 0xF5, 0x3A, 0x8F, 0x39, 0xE4,
- 0x24, 0x10, 0xDA, 0x77, 0xB6, 0xC4, 0x81, 0x5B,
- 0x0B, 0xB2, 0x39, 0x5E, 0x39, 0x22, 0xF5, 0xBE,
- 0xD0, 0xE1, 0xFB, 0xF2, 0xA4, 0xC6, 0xDF, 0xEB
- },
- {
- 0xC9, 0x05, 0xA8, 0x49, 0x84, 0x34, 0x8A, 0x64,
- 0xDB, 0x1F, 0x54, 0x20, 0x83, 0x74, 0x8A, 0xD9,
- 0x0A, 0x4B, 0xAD, 0x98, 0x33, 0xCB, 0x6D, 0xA3,
- 0x87, 0x29, 0x34, 0x31, 0xF1, 0x9E, 0x7C, 0x9C
- },
- {
- 0xED, 0x37, 0xD1, 0xA4, 0xD0, 0x6C, 0x90, 0xD1,
- 0x95, 0x78, 0x48, 0x66, 0x7E, 0x95, 0x48, 0xFE,
- 0xBB, 0x5D, 0x42, 0x3E, 0xAB, 0x4F, 0x56, 0x78,
- 0x5C, 0xC4, 0xB5, 0x41, 0x6B, 0x78, 0x00, 0x08
- },
- {
- 0x0B, 0xC6, 0x5D, 0x99, 0x97, 0xFB, 0x73, 0x4A,
- 0x56, 0x1F, 0xB1, 0xE9, 0xF8, 0xC0, 0x95, 0x8A,
- 0x02, 0xC7, 0xA4, 0xDB, 0xD0, 0x96, 0xEB, 0xEF,
- 0x1A, 0x17, 0x51, 0xAE, 0xD9, 0x59, 0xEE, 0xD7
- },
- {
- 0x7C, 0x5F, 0x43, 0x2E, 0xB8, 0xB7, 0x35, 0x2A,
- 0x94, 0x94, 0xDE, 0xA4, 0xD5, 0x3C, 0x21, 0x38,
- 0x70, 0x31, 0xCE, 0x70, 0xE8, 0x5D, 0x94, 0x08,
- 0xFC, 0x6F, 0x8C, 0xD9, 0x8A, 0x6A, 0xAA, 0x1E
- },
- {
- 0xB8, 0xBF, 0x8E, 0x2C, 0x34, 0xE0, 0x33, 0x98,
- 0x36, 0x39, 0x90, 0x9E, 0xAA, 0x37, 0x64, 0x0D,
- 0x87, 0x7B, 0x04, 0x8F, 0xE2, 0x99, 0xB4, 0x70,
- 0xAF, 0x2D, 0x0B, 0xA8, 0x2A, 0x5F, 0x14, 0xC0
- },
- {
- 0x88, 0xA9, 0xDD, 0x13, 0xD5, 0xDA, 0xDB, 0xDE,
- 0xE6, 0xBF, 0xF7, 0xEE, 0x1E, 0xF8, 0xC7, 0x1C,
- 0xC1, 0x93, 0xAA, 0x4B, 0xF3, 0xE8, 0x4F, 0x8F,
- 0xE8, 0x0C, 0xB0, 0x75, 0x68, 0x3C, 0x07, 0x79
- },
- {
- 0x9A, 0xED, 0xB8, 0x87, 0x6D, 0xD2, 0x1C, 0x8C,
- 0x84, 0xD2, 0xE7, 0x02, 0xA1, 0x36, 0x25, 0x98,
- 0x04, 0x62, 0xF6, 0x8B, 0xF0, 0xA1, 0xB7, 0x25,
- 0x4A, 0xD8, 0x06, 0xC3, 0x84, 0x03, 0xC9, 0xDE
- },
- {
- 0xD0, 0x97, 0x57, 0x3D, 0xF2, 0xD6, 0xB2, 0x48,
- 0x9A, 0x47, 0x94, 0x84, 0x86, 0x98, 0x00, 0xA1,
- 0xF8, 0x33, 0xEA, 0x16, 0x9E, 0xFF, 0x32, 0xAE,
- 0x3C, 0xE6, 0x3A, 0x20, 0x79, 0x54, 0x8D, 0x78
- },
- {
- 0xD1, 0x8F, 0x27, 0xA3, 0xE5, 0x55, 0xD7, 0xF9,
- 0x1A, 0x00, 0x7C, 0x67, 0xAC, 0xEE, 0xDE, 0x39,
- 0x1F, 0x75, 0xA6, 0x1F, 0xA4, 0x2A, 0x0B, 0x45,
- 0x66, 0xEB, 0x58, 0x2C, 0xA0, 0x5E, 0xBC, 0xE7
- },
- {
- 0xDF, 0x1D, 0xAA, 0x90, 0xB1, 0x70, 0x23, 0x13,
- 0xE6, 0xA5, 0x90, 0x1C, 0x7A, 0xFC, 0x5E, 0xD9,
- 0x65, 0x77, 0x17, 0xA7, 0x15, 0xFA, 0x53, 0xA4,
- 0x18, 0x9E, 0xC1, 0xE5, 0xDF, 0x29, 0x3A, 0x68
- },
- {
- 0x04, 0xE3, 0xA4, 0x96, 0xB6, 0x69, 0x96, 0xC6,
- 0x6E, 0x32, 0x91, 0x9E, 0xD1, 0xF9, 0x4C, 0x36,
- 0xEE, 0xBB, 0xF2, 0x40, 0x63, 0x3A, 0x2F, 0x73,
- 0x98, 0x45, 0xF0, 0x29, 0x5D, 0x34, 0xAF, 0xBA
- },
- {
- 0x8C, 0x45, 0xD8, 0x8C, 0x4E, 0x9C, 0x9D, 0x0C,
- 0x8C, 0x67, 0x7F, 0xE4, 0x8F, 0xA5, 0x44, 0x9B,
- 0xA3, 0x01, 0x78, 0xD4, 0x0A, 0xF0, 0xF0, 0x21,
- 0x79, 0x21, 0xC6, 0x2E, 0x4B, 0x60, 0xCD, 0xD3
- },
- {
- 0xE1, 0x49, 0xA6, 0xB1, 0x3B, 0xDE, 0xDE, 0xA2,
- 0xEE, 0xEE, 0x00, 0x9C, 0xE9, 0x44, 0x5E, 0x8D,
- 0xCF, 0x76, 0xB7, 0x6E, 0x55, 0xA5, 0x01, 0xD8,
- 0xF5, 0xB4, 0x3F, 0xF8, 0x96, 0x79, 0x6A, 0xD1
- },
- {
- 0xA8, 0x37, 0xC4, 0xC7, 0xC6, 0xF5, 0xCF, 0xB9,
- 0x9E, 0x10, 0x85, 0xFD, 0x43, 0x28, 0x7A, 0x41,
- 0x05, 0xCB, 0x28, 0xB7, 0x6F, 0xC3, 0x8B, 0x60,
- 0x55, 0xC5, 0xDC, 0xFF, 0x78, 0xB8, 0x25, 0x65
- },
- {
- 0x42, 0x41, 0x1F, 0x28, 0x78, 0x0B, 0x4F, 0x16,
- 0x38, 0x54, 0x0B, 0x87, 0x05, 0x21, 0xEC, 0x45,
- 0xBC, 0xEB, 0x1E, 0x0C, 0x71, 0x31, 0xF7, 0xE1,
- 0xC4, 0x67, 0x2E, 0x43, 0x6C, 0x88, 0xC8, 0xE9
- },
- {
- 0x34, 0xB4, 0xE8, 0x76, 0x76, 0x94, 0x71, 0xDF,
- 0x55, 0x2E, 0x55, 0x22, 0xCE, 0xA7, 0x84, 0xFA,
- 0x53, 0xAC, 0x61, 0xBE, 0xDE, 0x8C, 0xFE, 0x29,
- 0x14, 0x09, 0xE6, 0x8B, 0x69, 0xE8, 0x77, 0x6F
- },
- {
- 0x8F, 0x31, 0xD6, 0x37, 0xA9, 0x1D, 0xBD, 0x0E,
- 0xCB, 0x0B, 0xA0, 0xE6, 0x94, 0xBE, 0xC1, 0x44,
- 0x76, 0x58, 0xCE, 0x6C, 0x27, 0xEA, 0x9B, 0x95,
- 0xFF, 0x36, 0x70, 0x1C, 0xAF, 0x36, 0xF0, 0x01
- },
- {
- 0xB5, 0xC8, 0x95, 0xEB, 0x07, 0x1E, 0x3D, 0x38,
- 0x52, 0x8D, 0x47, 0x5D, 0x3B, 0xB0, 0xBA, 0x88,
- 0xB7, 0x17, 0x95, 0xE4, 0x0A, 0x98, 0x2E, 0x2A,
- 0xC2, 0xD8, 0x44, 0x22, 0xA0, 0xF2, 0x68, 0x5D
- },
- {
- 0xE9, 0x06, 0x25, 0x7C, 0x41, 0x9D, 0x94, 0x1E,
- 0xD2, 0xB8, 0xA9, 0xC1, 0x27, 0x81, 0xDB, 0x97,
- 0x59, 0xA3, 0xFC, 0xF3, 0xDC, 0x7C, 0xDB, 0x03,
- 0x15, 0x99, 0xE1, 0x08, 0x6B, 0x67, 0x2F, 0x10
- },
- {
- 0x98, 0xAD, 0x24, 0x39, 0x7C, 0x6E, 0xAE, 0x4C,
- 0xF7, 0x3E, 0xA8, 0xBB, 0xEF, 0x5A, 0x0B, 0x74,
- 0xD2, 0x1A, 0xD1, 0x5F, 0x33, 0x92, 0x0F, 0x44,
- 0x07, 0x0A, 0x98, 0xBD, 0xF5, 0x3D, 0x0B, 0x3A
- },
- {
- 0xDD, 0x51, 0x0C, 0xA5, 0x5B, 0x11, 0x70, 0xF9,
- 0xCE, 0xFD, 0xBB, 0x16, 0xFC, 0x14, 0x52, 0x62,
- 0xAA, 0x36, 0x3A, 0x87, 0x0A, 0x01, 0xE1, 0xBC,
- 0x4F, 0xBE, 0x40, 0x23, 0x4B, 0x4B, 0x6F, 0x2F
- },
- {
- 0xF2, 0xD8, 0xD9, 0x31, 0xB9, 0x2E, 0x1C, 0xB6,
- 0x98, 0xE5, 0x6E, 0xD0, 0x28, 0x19, 0xEA, 0x11,
- 0xD2, 0x66, 0x19, 0xB8, 0x3A, 0x62, 0x09, 0xAD,
- 0x67, 0x22, 0x53, 0x68, 0xFE, 0x11, 0x95, 0x71
- },
- {
- 0xE4, 0x63, 0x70, 0x55, 0xDB, 0x91, 0xF9, 0x43,
- 0x7C, 0xF4, 0x60, 0xEF, 0x40, 0xB5, 0x14, 0x5F,
- 0x69, 0x98, 0x26, 0x6A, 0x5E, 0x74, 0xE9, 0x6A,
- 0x00, 0x78, 0x2C, 0x62, 0xCF, 0x30, 0xCF, 0x1C
- },
- {
- 0x35, 0x63, 0x53, 0x0A, 0x89, 0xD3, 0x2B, 0x75,
- 0xF7, 0x8D, 0x83, 0xE9, 0x87, 0x2A, 0xD4, 0xC5,
- 0x75, 0xF5, 0x20, 0x39, 0x9D, 0x65, 0x03, 0x5D,
- 0xED, 0x99, 0xE5, 0xEE, 0xC5, 0x80, 0x71, 0x50
- },
- {
- 0x8E, 0x79, 0xF9, 0x2C, 0x86, 0x5B, 0xEB, 0x3E,
- 0x1C, 0xDB, 0xF0, 0x8F, 0x75, 0x4A, 0x26, 0x06,
- 0xE8, 0x53, 0x49, 0x05, 0x3D, 0x66, 0xD6, 0x16,
- 0x02, 0x4A, 0x81, 0x3F, 0xCA, 0x54, 0x1A, 0x4D
- },
- {
- 0x86, 0x42, 0x26, 0xF2, 0x83, 0x9C, 0x76, 0xB1,
- 0xD5, 0xF7, 0xC1, 0x3D, 0x98, 0xC2, 0xA5, 0x15,
- 0x8C, 0x2A, 0xBB, 0x71, 0xD9, 0xD8, 0xF0, 0xFA,
- 0x1F, 0x7C, 0x3F, 0x74, 0x68, 0x00, 0x16, 0x03
- },
- {
- 0xD3, 0xE3, 0xF5, 0xB8, 0xCE, 0xEB, 0xB1, 0x11,
- 0x84, 0x80, 0x35, 0x35, 0x90, 0x0B, 0x6E, 0xED,
- 0xDA, 0x60, 0x6E, 0xEB, 0x36, 0x97, 0x51, 0xA7,
- 0xCD, 0xA3, 0x6C, 0xA3, 0x02, 0x29, 0xFB, 0x02
- },
- {
- 0x8C, 0x7D, 0x6B, 0x98, 0x72, 0x69, 0x16, 0x90,
- 0x31, 0xF7, 0x1F, 0xD7, 0xE4, 0xC4, 0x45, 0x01,
- 0x2D, 0x3E, 0x6A, 0x3C, 0x88, 0x09, 0xF6, 0x47,
- 0x9B, 0xD6, 0x67, 0xCF, 0x31, 0x1E, 0x27, 0x6E
- },
- {
- 0xB9, 0x04, 0xB5, 0x71, 0x1B, 0xF1, 0x9E, 0x85,
- 0x32, 0xF7, 0xAD, 0x64, 0x27, 0x41, 0x0A, 0x62,
- 0xA1, 0xF7, 0x7F, 0x77, 0xB9, 0xB6, 0xD7, 0x1D,
- 0x2F, 0xC4, 0x3B, 0xC9, 0x0F, 0x73, 0x23, 0x5A
- },
- {
- 0x45, 0x36, 0x63, 0x43, 0x15, 0xC8, 0x67, 0x28,
- 0xF5, 0xAB, 0x74, 0x49, 0xEB, 0x2D, 0x04, 0x02,
- 0x0E, 0x9E, 0xAE, 0x8D, 0xD6, 0x79, 0x55, 0x00,
- 0xE9, 0xEC, 0x9A, 0x00, 0x66, 0x38, 0x6E, 0x69
- },
- {
- 0xFD, 0x5E, 0x49, 0xFE, 0xD4, 0x9D, 0xC4, 0x4B,
- 0xDE, 0x89, 0xF4, 0x60, 0xA9, 0x50, 0x19, 0x1E,
- 0xBB, 0x06, 0x7C, 0x69, 0x8A, 0x3F, 0x21, 0xEA,
- 0x14, 0x30, 0x8C, 0x74, 0x13, 0xB9, 0x16, 0x81
- },
- {
- 0x31, 0xF0, 0x1D, 0x03, 0x0B, 0x9B, 0x22, 0xD0,
- 0x0A, 0x0F, 0x71, 0xED, 0x2C, 0xEB, 0x5D, 0x2D,
- 0xC8, 0x1A, 0xF2, 0xC2, 0x4B, 0xF5, 0x67, 0x0F,
- 0xDE, 0x19, 0xA6, 0x85, 0xE8, 0xD1, 0x39, 0x2E
- },
- {
- 0x5F, 0x84, 0xD9, 0xDE, 0x28, 0x4B, 0x1E, 0x4F,
- 0x67, 0x8E, 0x31, 0xAB, 0x6A, 0x76, 0xF5, 0x66,
- 0x1B, 0x5A, 0xEA, 0xA7, 0x68, 0x53, 0x93, 0x84,
- 0xAA, 0x38, 0xF9, 0xE4, 0x9C, 0xCE, 0x6E, 0x6E
- },
- {
- 0xB2, 0x07, 0x9E, 0x59, 0x97, 0xA4, 0xEA, 0xD3,
- 0xA7, 0x1F, 0xEF, 0xC0, 0x2F, 0x90, 0xA7, 0x48,
- 0x3A, 0x10, 0xFD, 0x2E, 0x6F, 0x31, 0xBD, 0xA9,
- 0xD2, 0x08, 0x44, 0x85, 0xCC, 0x01, 0x6B, 0xBD
- },
- {
- 0xE0, 0xF8, 0x4D, 0x7F, 0x52, 0x5B, 0x6F, 0xED,
- 0x79, 0x1F, 0x77, 0x28, 0x9A, 0xE5, 0x8F, 0x7D,
- 0x50, 0xA2, 0x94, 0x32, 0xD4, 0x2C, 0x25, 0xC1,
- 0xE8, 0x39, 0x29, 0xB8, 0x38, 0x89, 0x1D, 0x79
- },
- {
- 0x70, 0x46, 0x96, 0x90, 0x95, 0x6D, 0x79, 0x18,
- 0xAC, 0xE7, 0xBA, 0x5F, 0x41, 0x30, 0x2D, 0xA1,
- 0x38, 0xC9, 0xB5, 0x6E, 0xCD, 0x41, 0x55, 0x44,
- 0xFA, 0xCE, 0x8D, 0x99, 0x8C, 0x21, 0xAB, 0xEB
- },
- {
- 0x45, 0xC9, 0x1A, 0x62, 0x24, 0x9B, 0x39, 0xCD,
- 0xA9, 0x4E, 0x50, 0x82, 0x95, 0xBE, 0xC7, 0x66,
- 0x71, 0x19, 0x44, 0x77, 0x65, 0xEF, 0x80, 0xEF,
- 0xA8, 0x2D, 0x1E, 0x92, 0xD5, 0x70, 0x67, 0xD8
- },
- {
- 0x1D, 0x9E, 0x00, 0x73, 0xEE, 0xD0, 0x73, 0x15,
- 0x54, 0xC3, 0xBE, 0xAA, 0x47, 0x46, 0x0D, 0x51,
- 0x1A, 0xD2, 0x61, 0xDD, 0x4D, 0x4A, 0x3B, 0xED,
- 0x9D, 0x8D, 0x20, 0x2F, 0x22, 0xF2, 0x15, 0x89
- },
- {
- 0x40, 0x82, 0x62, 0x73, 0x6D, 0x8A, 0xEC, 0x0B,
- 0x84, 0x7D, 0xBA, 0x25, 0x02, 0x58, 0x60, 0x8A,
- 0x43, 0x45, 0xA6, 0x3A, 0x1E, 0xB1, 0x95, 0xE5,
- 0xC7, 0xAE, 0x2E, 0xE8, 0x74, 0xC3, 0x4D, 0xA8
- },
- {
- 0x23, 0xD2, 0xB7, 0x04, 0x39, 0x46, 0x99, 0x49,
- 0x98, 0x23, 0x90, 0x53, 0x8D, 0x7E, 0x5A, 0xDE,
- 0x9F, 0x18, 0xC8, 0xE3, 0xBB, 0xF6, 0x60, 0x5A,
- 0xFC, 0xF4, 0x9B, 0x00, 0xC0, 0x61, 0xE8, 0x37
- },
- {
- 0x23, 0x2F, 0xB1, 0x87, 0xD2, 0x71, 0xBE, 0xA9,
- 0x12, 0xEF, 0xD4, 0x07, 0xFF, 0xE0, 0x80, 0x56,
- 0xD6, 0xA4, 0x2E, 0x53, 0x21, 0xEC, 0x79, 0x2D,
- 0xF3, 0xD5, 0x84, 0xA9, 0x4F, 0x63, 0x0A, 0xB2
- },
- {
- 0x13, 0x8E, 0x19, 0x44, 0xE4, 0xB5, 0x4D, 0xE8,
- 0x68, 0x1D, 0x7E, 0x48, 0xC4, 0xF0, 0x81, 0x48,
- 0xE4, 0x0A, 0x56, 0x7E, 0x5C, 0xAD, 0x94, 0x6A,
- 0x6A, 0xF4, 0xE8, 0xD5, 0xD2, 0x6F, 0x75, 0xC7
- },
- {
- 0x80, 0xC1, 0x51, 0x32, 0x5F, 0xBF, 0xC6, 0x78,
- 0xB7, 0xBE, 0x4E, 0x40, 0xB3, 0x0F, 0x29, 0xFE,
- 0x31, 0xCD, 0xBE, 0x1C, 0x84, 0x12, 0x6E, 0x00,
- 0x6D, 0xF3, 0xC1, 0x85, 0x24, 0xBD, 0x2D, 0x6C
- },
- {
- 0xA6, 0x42, 0x26, 0x73, 0x01, 0x66, 0x9D, 0xF2,
- 0x61, 0xB8, 0x39, 0xF8, 0x73, 0x65, 0x76, 0x29,
- 0x05, 0xFF, 0x32, 0x0A, 0x0A, 0x2F, 0xC4, 0xBD,
- 0xC4, 0x8E, 0x5A, 0x8E, 0x15, 0xD1, 0x32, 0x33
- },
- {
- 0x0F, 0x8B, 0x10, 0x99, 0x38, 0x60, 0x93, 0x7A,
- 0x74, 0xCC, 0x2D, 0xE4, 0x0A, 0x27, 0x31, 0xDD,
- 0x99, 0x54, 0xB6, 0x54, 0xBB, 0x94, 0xC3, 0x4E,
- 0x87, 0x66, 0x52, 0xE9, 0x8D, 0x4B, 0xBD, 0x16
- },
- {
- 0xE6, 0x34, 0xA5, 0x85, 0x12, 0x49, 0x32, 0x73,
- 0x26, 0x0F, 0x10, 0xD4, 0x49, 0x53, 0xCD, 0x99,
- 0x8E, 0x34, 0xCB, 0x82, 0x81, 0xC4, 0x1B, 0xF4,
- 0x2E, 0x0A, 0xE2, 0xF2, 0x5C, 0xBD, 0x1F, 0x75
- },
- {
- 0xBD, 0xE6, 0xAF, 0x9B, 0xAF, 0x3C, 0x07, 0xE9,
- 0x54, 0x23, 0xCA, 0xB5, 0x04, 0xDE, 0xE7, 0x0E,
- 0xDC, 0xC3, 0x31, 0x8B, 0x22, 0xDD, 0x1E, 0xB6,
- 0xFD, 0x85, 0xBE, 0x44, 0x7A, 0xC9, 0xF2, 0x09
- },
- {
- 0x91, 0x4B, 0x37, 0xAB, 0x5B, 0x8C, 0xFD, 0xE6,
- 0xA4, 0x80, 0x46, 0x6A, 0x0D, 0x82, 0x43, 0x2C,
- 0x7D, 0x76, 0x32, 0x8E, 0x9A, 0x88, 0xEF, 0x5B,
- 0x4F, 0x52, 0x42, 0x9F, 0x7A, 0x3F, 0xFC, 0x7D
- },
- {
- 0x55, 0xBE, 0x66, 0xE9, 0xA5, 0xAA, 0x67, 0x1A,
- 0x23, 0x88, 0x2E, 0xF3, 0xE7, 0xD9, 0xD3, 0x6E,
- 0xA9, 0x54, 0x87, 0xDC, 0x71, 0xB7, 0x25, 0xA5,
- 0xAD, 0x4B, 0x79, 0x8A, 0x87, 0x91, 0x43, 0xD0
- },
- {
- 0x3F, 0xD0, 0x45, 0x89, 0x4B, 0x83, 0x6E, 0x44,
- 0xE9, 0xCA, 0x75, 0xFB, 0xE3, 0xEA, 0xDC, 0x48,
- 0x6C, 0xBB, 0xD0, 0xD8, 0xCE, 0xE1, 0xB3, 0xCF,
- 0x14, 0xF7, 0x6E, 0x7F, 0x1E, 0x77, 0xAE, 0xF3
- },
- {
- 0xCE, 0x60, 0x34, 0x3D, 0xC4, 0x87, 0x4B, 0x66,
- 0x04, 0xE1, 0xFB, 0x23, 0x1E, 0x37, 0xEC, 0x1E,
- 0xEC, 0x3F, 0x06, 0x56, 0x6E, 0x42, 0x8A, 0xE7,
- 0x64, 0xEF, 0xFF, 0xA2, 0x30, 0xAD, 0xD4, 0x85
- },
- {
- 0xE3, 0x8C, 0x9D, 0xF0, 0x24, 0xDE, 0x21, 0x53,
- 0xD2, 0x26, 0x73, 0x8A, 0x0E, 0x5B, 0xA9, 0xB8,
- 0xC6, 0x78, 0x4D, 0xAC, 0xA6, 0x5C, 0x22, 0xA7,
- 0x62, 0x8E, 0xB5, 0x8E, 0xA0, 0xD4, 0x95, 0xA7
- },
- {
- 0x8D, 0xFE, 0xC0, 0xD4, 0xF3, 0x65, 0x8A, 0x20,
- 0xA0, 0xBA, 0xD6, 0x6F, 0x21, 0x60, 0x83, 0x2B,
- 0x16, 0x4E, 0x70, 0x0A, 0x21, 0xEC, 0x5A, 0x01,
- 0x65, 0xC3, 0x67, 0x72, 0xB2, 0x08, 0x61, 0x11
- },
- {
- 0x44, 0x01, 0xB5, 0x0E, 0x09, 0x86, 0x5F, 0x42,
- 0x38, 0x24, 0x3B, 0x82, 0x25, 0xCA, 0x40, 0xA0,
- 0x8D, 0xBB, 0x46, 0x85, 0xF5, 0xF8, 0x62, 0xFB,
- 0xDD, 0x72, 0x98, 0x04, 0x31, 0xA8, 0x5D, 0x3F
- },
- {
- 0x86, 0x68, 0x94, 0x27, 0x88, 0xC4, 0xCE, 0x8A,
- 0x33, 0x19, 0x0F, 0xFC, 0xFA, 0xD1, 0xC6, 0x78,
- 0xC4, 0xFA, 0x41, 0xE9, 0x94, 0x17, 0x09, 0x4E,
- 0x24, 0x0F, 0x4A, 0x43, 0xF3, 0x87, 0xA3, 0xB6
- },
- {
- 0xA7, 0x28, 0x8D, 0x5E, 0x09, 0x80, 0x9B, 0x69,
- 0x69, 0x84, 0xEC, 0xD5, 0x32, 0x6C, 0xDD, 0x84,
- 0xFB, 0xE3, 0x5F, 0xCF, 0x67, 0x23, 0x5D, 0x81,
- 0x1C, 0x82, 0x00, 0x25, 0x36, 0xA3, 0xC5, 0xE1
- },
- {
- 0x8E, 0x92, 0x5C, 0x3C, 0x14, 0x6B, 0xAC, 0xF3,
- 0x35, 0x1E, 0xC5, 0x32, 0x41, 0xAC, 0xE5, 0xF7,
- 0x3E, 0x8F, 0xC9, 0xBD, 0x8C, 0x61, 0xCA, 0xD9,
- 0x7F, 0xD7, 0x72, 0xB0, 0x7E, 0x1B, 0x83, 0x73
- },
- {
- 0xC7, 0xEB, 0x9E, 0x6D, 0xED, 0x2F, 0x99, 0x3D,
- 0x48, 0xB0, 0x17, 0x0D, 0xA2, 0x7C, 0x5B, 0x75,
- 0x3B, 0x12, 0x17, 0x6B, 0xE1, 0x26, 0xC7, 0xBA,
- 0x2D, 0x6A, 0xF8, 0x5F, 0x85, 0x93, 0xB7, 0x52
- },
- {
- 0xCA, 0x27, 0xF1, 0x6F, 0x94, 0xE4, 0xEC, 0x0E,
- 0x62, 0x8E, 0x7F, 0x8A, 0xEF, 0xC6, 0x65, 0x7B,
- 0xED, 0xC9, 0x37, 0x42, 0x96, 0x59, 0x40, 0xAE,
- 0x78, 0x6A, 0x73, 0xB5, 0xFD, 0x59, 0x3B, 0x97
- },
- {
- 0x8C, 0x21, 0xE6, 0x56, 0x8B, 0xC6, 0xDC, 0x00,
- 0xE3, 0xD6, 0xEB, 0xC0, 0x9E, 0xA9, 0xC2, 0xCE,
- 0x00, 0x6C, 0xD3, 0x11, 0xD3, 0xB3, 0xE9, 0xCC,
- 0x9D, 0x8D, 0xDB, 0xFB, 0x3C, 0x5A, 0x77, 0x76
- },
- {
- 0x52, 0x56, 0x66, 0x96, 0x8B, 0x3B, 0x7D, 0x00,
- 0x7B, 0xB9, 0x26, 0xB6, 0xEF, 0xDC, 0x7E, 0x21,
- 0x2A, 0x31, 0x15, 0x4C, 0x9A, 0xE1, 0x8D, 0x43,
- 0xEE, 0x0E, 0xB7, 0xE6, 0xB1, 0xA9, 0x38, 0xD3
- },
- {
- 0xE0, 0x9A, 0x4F, 0xA5, 0xC2, 0x8B, 0xDC, 0xD7,
- 0xC8, 0x39, 0x84, 0x0E, 0x0A, 0x38, 0x3E, 0x4F,
- 0x7A, 0x10, 0x2D, 0x0B, 0x1B, 0xC8, 0x49, 0xC9,
- 0x49, 0x62, 0x7C, 0x41, 0x00, 0xC1, 0x7D, 0xD3
- },
- {
- 0xC1, 0x9F, 0x3E, 0x29, 0x5D, 0xB2, 0xFC, 0x0E,
- 0x74, 0x81, 0xC4, 0xF1, 0x6A, 0xF0, 0x11, 0x55,
- 0xDD, 0xB0, 0xD7, 0xD1, 0x38, 0x3D, 0x4A, 0x1F,
- 0xF1, 0x69, 0x9D, 0xB7, 0x11, 0x77, 0x34, 0x0C
- },
- {
- 0x76, 0x9E, 0x67, 0x8C, 0x0A, 0x09, 0x09, 0xA2,
- 0x02, 0x1C, 0x4D, 0xC2, 0x6B, 0x1A, 0x3C, 0x9B,
- 0xC5, 0x57, 0xAD, 0xB2, 0x1A, 0x50, 0x83, 0x4C,
- 0xDC, 0x5C, 0x92, 0x93, 0xF7, 0x53, 0x65, 0xF8
- },
- {
- 0xB6, 0x48, 0x74, 0xAD, 0xAB, 0x6B, 0xCB, 0x85,
- 0xB9, 0x4B, 0xD9, 0xA6, 0xC5, 0x65, 0xD0, 0xD2,
- 0xBC, 0x35, 0x44, 0x5D, 0x75, 0x28, 0xBC, 0x85,
- 0xB4, 0x1F, 0xDC, 0x79, 0xDC, 0x76, 0xE3, 0x4F
- },
- {
- 0xFA, 0xF2, 0x50, 0xDE, 0x15, 0x82, 0x0F, 0x7F,
- 0xC6, 0x10, 0xDD, 0x53, 0xEE, 0xAE, 0x44, 0x60,
- 0x1C, 0x3E, 0xFF, 0xA3, 0xAC, 0xCD, 0x08, 0x8E,
- 0xB6, 0x69, 0x05, 0xBB, 0x26, 0x53, 0xBE, 0x8C
- },
- {
- 0x1E, 0x20, 0x38, 0x73, 0x9B, 0x2C, 0x01, 0x8B,
- 0x0E, 0x9E, 0x0E, 0x1E, 0x52, 0x2F, 0xD9, 0x65,
- 0x12, 0x87, 0xEE, 0x6E, 0x36, 0x65, 0x91, 0x9B,
- 0x24, 0xC2, 0x12, 0x4F, 0x0C, 0x1A, 0x3F, 0x3A
- },
- {
- 0x5F, 0xEC, 0x3A, 0xA0, 0x08, 0x61, 0xDE, 0x1A,
- 0xC5, 0xDA, 0xB3, 0xC1, 0x37, 0x06, 0x5D, 0x1E,
- 0x01, 0xBB, 0x03, 0xF6, 0x9D, 0xCC, 0x7D, 0x1C,
- 0xF7, 0xCA, 0x4F, 0x43, 0x56, 0xAE, 0xC9, 0xA3
- },
- {
- 0x44, 0x51, 0xFE, 0x6B, 0xBE, 0xF3, 0x93, 0x43,
- 0x91, 0x92, 0x44, 0xC5, 0x1D, 0xAE, 0x1E, 0xA9,
- 0xA9, 0x54, 0xCF, 0x2C, 0x09, 0x66, 0xAB, 0x04,
- 0x5B, 0x15, 0x52, 0x1E, 0xCF, 0x35, 0x00, 0x81
- },
- {
- 0x8C, 0x62, 0x2F, 0xA2, 0x16, 0x0E, 0x8E, 0x99,
- 0x18, 0x13, 0xF1, 0x80, 0xBF, 0xEC, 0x0B, 0x43,
- 0x1C, 0x6D, 0xBF, 0xA2, 0x95, 0x6D, 0x91, 0x75,
- 0x81, 0x6A, 0x23, 0xC3, 0x82, 0xC4, 0xF2, 0x00
- },
- {
- 0x81, 0x7D, 0x5C, 0x8F, 0x92, 0xE7, 0xB5, 0xCA,
- 0x57, 0xF5, 0xE1, 0x63, 0x90, 0x16, 0xAD, 0x57,
- 0x60, 0xE4, 0x46, 0xD6, 0xE9, 0xCA, 0xA7, 0x49,
- 0x84, 0x14, 0xAC, 0xE8, 0x22, 0x80, 0xB5, 0xCD
- },
- {
- 0xA6, 0xA1, 0xAD, 0x58, 0xCE, 0xE5, 0x4E, 0x69,
- 0xCB, 0xBC, 0xAA, 0x87, 0xDF, 0x07, 0xA6, 0x70,
- 0x7E, 0xB2, 0x24, 0x73, 0x9C, 0x21, 0x76, 0x13,
- 0x46, 0x0A, 0xB4, 0x54, 0xB4, 0x59, 0xCA, 0x9C
- },
- {
- 0x63, 0xB8, 0x47, 0x27, 0x52, 0x26, 0x60, 0x5B,
- 0xE6, 0x76, 0x81, 0x25, 0x8F, 0x7D, 0x00, 0xBB,
- 0xB3, 0x07, 0xC6, 0x6F, 0x19, 0x59, 0xBF, 0x2E,
- 0x46, 0x7A, 0x41, 0xAE, 0xE7, 0x14, 0xE5, 0x5C
- },
- {
- 0xFE, 0x52, 0xEB, 0xE5, 0xCF, 0xCF, 0xE6, 0xA2,
- 0x29, 0x7B, 0x53, 0x9F, 0xA3, 0xDA, 0xDB, 0xD6,
- 0xEB, 0xD2, 0x01, 0xAA, 0x2C, 0xA1, 0x35, 0x63,
- 0xE3, 0xD7, 0xF1, 0x4D, 0x15, 0xAB, 0xFF, 0x63
- },
- {
- 0xB7, 0xBE, 0xF9, 0xFA, 0x5A, 0x3D, 0x10, 0x42,
- 0x62, 0x46, 0xB5, 0xF6, 0x58, 0xC0, 0x8F, 0xDF,
- 0x80, 0x66, 0xEA, 0xA3, 0xE5, 0x5A, 0x2F, 0x7D,
- 0xA1, 0x59, 0x1E, 0x05, 0xC8, 0x7D, 0xF8, 0xC7
- },
- {
- 0xDE, 0xD1, 0xD6, 0xCA, 0xA9, 0xF8, 0xF3, 0xBD,
- 0xA9, 0x2C, 0xEA, 0x7F, 0x65, 0x49, 0xB1, 0xFB,
- 0x86, 0xA2, 0x21, 0x14, 0x78, 0xC4, 0xEC, 0x28,
- 0x9B, 0x83, 0x7E, 0xFC, 0x2B, 0x5C, 0x27, 0xD7
- },
- {
- 0x9F, 0x30, 0x00, 0x8A, 0x2E, 0xB0, 0x50, 0xF1,
- 0x8E, 0x56, 0xA7, 0x6B, 0xE9, 0x20, 0x91, 0xB2,
- 0xFD, 0xC1, 0x64, 0xD5, 0x6E, 0x32, 0xC8, 0x7D,
- 0xD6, 0x4C, 0x9E, 0x3A, 0x61, 0x10, 0x41, 0xB1
- },
- {
- 0x01, 0x0B, 0x6A, 0x3B, 0x11, 0x86, 0x00, 0x88,
- 0xF0, 0xAB, 0xC8, 0x0A, 0x89, 0x72, 0xCB, 0xBC,
- 0x32, 0x9D, 0x52, 0x75, 0x34, 0x29, 0x50, 0xEB,
- 0x9A, 0x04, 0x5A, 0xFD, 0xC8, 0xBB, 0xED, 0x24
- },
- {
- 0x0C, 0xD2, 0x10, 0xAA, 0xC1, 0x1F, 0x1C, 0x1C,
- 0xED, 0x49, 0x7F, 0x67, 0x3E, 0x53, 0xDB, 0x68,
- 0xC3, 0xEC, 0x36, 0x07, 0xF0, 0xC5, 0x78, 0x7D,
- 0xDC, 0x60, 0xA3, 0x55, 0xDF, 0xE5, 0x6C, 0x25
- },
- {
- 0x0E, 0x56, 0xFD, 0x01, 0xDA, 0x3B, 0x4F, 0x8B,
- 0xE2, 0xC9, 0x90, 0x55, 0x2A, 0xAC, 0x8D, 0x1E,
- 0x8D, 0xA2, 0x09, 0xBC, 0xF4, 0xAA, 0xD4, 0xFF,
- 0xB5, 0x42, 0x7F, 0xD6, 0x31, 0x72, 0x46, 0x3E
- },
- {
- 0xD6, 0xD5, 0xCD, 0xB1, 0x14, 0x40, 0xE3, 0x4A,
- 0xCA, 0x3A, 0x2F, 0xCF, 0x30, 0xF5, 0x9E, 0x08,
- 0xB1, 0x1A, 0x2A, 0x3D, 0xE5, 0x39, 0xE3, 0xE6,
- 0x51, 0x3E, 0xD7, 0x8A, 0x4F, 0xEE, 0x51, 0x3B
- },
- {
- 0xAA, 0x35, 0xAC, 0x90, 0x68, 0x06, 0x70, 0xC7,
- 0x32, 0xED, 0x1E, 0xF3, 0x7E, 0x8C, 0xBA, 0xAE,
- 0x49, 0xA4, 0xD8, 0x8E, 0xCF, 0x4D, 0xF2, 0xB6,
- 0x89, 0xA0, 0xF1, 0x01, 0xB7, 0x56, 0xAE, 0x47
- },
- {
- 0x27, 0x8E, 0x56, 0x12, 0x88, 0x72, 0x26, 0x30,
- 0xE2, 0x6A, 0x5F, 0xC9, 0x54, 0xBF, 0x2D, 0xCD,
- 0x6A, 0x65, 0x81, 0x67, 0x39, 0xAB, 0xEE, 0x7B,
- 0xE1, 0x43, 0x07, 0xA9, 0x61, 0x74, 0xE5, 0xB0
- },
- {
- 0xAB, 0x4B, 0x2C, 0xA1, 0xA2, 0xB3, 0x49, 0x98,
- 0x15, 0x24, 0xB6, 0x15, 0x54, 0x62, 0xF0, 0xFF,
- 0x10, 0x60, 0xBF, 0x9B, 0xFA, 0x07, 0xFB, 0x9E,
- 0xC6, 0x9C, 0xA4, 0x71, 0x64, 0x5B, 0x6A, 0x18
- },
- {
- 0x18, 0xA9, 0xBB, 0xEC, 0x3C, 0x8E, 0x1F, 0x8E,
- 0xE9, 0x57, 0x12, 0x97, 0xA9, 0x34, 0x36, 0xDE,
- 0x42, 0x7C, 0xD2, 0x70, 0xEC, 0x69, 0xDF, 0xE8,
- 0x88, 0xDB, 0x7D, 0xBF, 0x10, 0xB6, 0x49, 0x93
- },
- {
- 0xBA, 0xFC, 0x7E, 0x43, 0xD2, 0x65, 0xA1, 0x73,
- 0x02, 0x1A, 0x9D, 0x9E, 0x58, 0x3D, 0x60, 0xED,
- 0x42, 0xA8, 0x03, 0xFA, 0xCD, 0x6B, 0x83, 0x60,
- 0xDE, 0x1F, 0x91, 0x68, 0x35, 0x38, 0x9B, 0xF0
- },
- {
- 0xA5, 0xB6, 0x7B, 0xE9, 0x50, 0xFB, 0xC2, 0xF0,
- 0xDD, 0x32, 0x3A, 0x79, 0xA1, 0x9E, 0x3E, 0xD1,
- 0xF4, 0xAE, 0x4B, 0xA7, 0x89, 0x4F, 0x93, 0x0E,
- 0xA5, 0xEF, 0x73, 0x4D, 0xE7, 0xDB, 0x83, 0xAE
- },
- {
- 0xBF, 0x1E, 0x65, 0xF3, 0xCD, 0x84, 0x98, 0x88,
- 0x4D, 0x9D, 0x5C, 0x19, 0xEB, 0xF7, 0xB9, 0x16,
- 0x06, 0x76, 0x37, 0x60, 0x4E, 0x26, 0xDB, 0xE2,
- 0xB7, 0x28, 0x8E, 0xCB, 0x11, 0x42, 0x60, 0x68
- },
- {
- 0xC3, 0x34, 0x2C, 0xF9, 0xCB, 0xBF, 0x29, 0xD4,
- 0x06, 0xD7, 0x89, 0x5D, 0xD4, 0xD9, 0x54, 0x8D,
- 0x4A, 0xC7, 0x8B, 0x4D, 0x00, 0xE9, 0xB6, 0x3E,
- 0x20, 0x3E, 0x5E, 0x19, 0xE9, 0x97, 0x46, 0x20
- },
- {
- 0x1C, 0x0B, 0xE6, 0x02, 0x77, 0x43, 0x4B, 0x0E,
- 0x00, 0x4B, 0x7B, 0x38, 0x8A, 0x37, 0x55, 0x9F,
- 0x84, 0xB3, 0x0C, 0x6C, 0xF8, 0x60, 0x0F, 0x52,
- 0x8B, 0xFC, 0xD3, 0x3C, 0xAF, 0x52, 0xCB, 0x1E
- },
- {
- 0x73, 0x95, 0x45, 0x30, 0xD0, 0x3F, 0x10, 0xBE,
- 0xF5, 0x2A, 0xD5, 0xBC, 0x7F, 0xB4, 0xC0, 0x76,
- 0xF8, 0x3F, 0x63, 0x31, 0xC8, 0xBD, 0x1E, 0xEE,
- 0xC3, 0x88, 0x7F, 0x4A, 0xA2, 0x06, 0x92, 0x40
- },
- {
- 0x69, 0xC1, 0x1E, 0xE0, 0x49, 0x44, 0xDE, 0xA9,
- 0x85, 0xAC, 0x9F, 0x13, 0x96, 0x0E, 0x73, 0x98,
- 0x0E, 0x1B, 0xB0, 0xE3, 0x09, 0xF4, 0x38, 0x4A,
- 0x16, 0x76, 0xF8, 0xEF, 0xAB, 0x38, 0x42, 0x88
- },
- {
- 0x36, 0xFB, 0x8F, 0xDE, 0x0E, 0xC2, 0x8C, 0xE8,
- 0x53, 0xFB, 0x71, 0x75, 0xC1, 0xB7, 0x9D, 0xA3,
- 0xB5, 0xE8, 0xC3, 0x91, 0x86, 0xE7, 0x8A, 0xAE,
- 0xCE, 0x54, 0x64, 0xDB, 0xD9, 0xFE, 0x2A, 0xA2
- },
- {
- 0x6B, 0xB2, 0xA0, 0x9D, 0xFC, 0xAF, 0x96, 0x96,
- 0x2D, 0xE0, 0x0C, 0x8A, 0x08, 0x2D, 0x6D, 0xF9,
- 0x32, 0x2B, 0x49, 0x66, 0xAE, 0x8D, 0x2E, 0xCF,
- 0x73, 0x24, 0x11, 0xA7, 0x6A, 0x1A, 0x0E, 0xE6
- },
- {
- 0x74, 0x12, 0xE7, 0xDD, 0x1B, 0xF1, 0xAA, 0x93,
- 0x97, 0x41, 0x1B, 0xBA, 0x4D, 0x3E, 0x02, 0x76,
- 0xD2, 0xE7, 0xA1, 0xA2, 0x9A, 0x24, 0x77, 0x15,
- 0x7A, 0xD6, 0x03, 0x60, 0xD3, 0x3D, 0x4E, 0x76
- },
- {
- 0xDD, 0xDE, 0xAF, 0xCF, 0xC7, 0x23, 0x21, 0xC8,
- 0x49, 0xFB, 0x25, 0x94, 0x7A, 0xB4, 0x2C, 0x1A,
- 0xF2, 0xA5, 0xE4, 0x3F, 0xEF, 0x68, 0x1B, 0xE4,
- 0x2C, 0x7E, 0xAF, 0x36, 0x60, 0x08, 0x0A, 0xD3
- },
- {
- 0x9D, 0xEF, 0xEB, 0xAD, 0xBD, 0xCB, 0x0A, 0x0E,
- 0x7F, 0xF9, 0x92, 0xF9, 0x47, 0xCE, 0xD3, 0xD0,
- 0xA4, 0xC8, 0x99, 0xE6, 0x4F, 0xE7, 0x73, 0x60,
- 0xE8, 0x1E, 0x1F, 0x0E, 0x97, 0xF8, 0xC1, 0xA2
- },
- {
- 0x84, 0x4C, 0x59, 0xFB, 0xE6, 0x47, 0x6F, 0xD1,
- 0x89, 0x23, 0x99, 0x54, 0xF1, 0x7E, 0x36, 0xE1,
- 0xF6, 0x9E, 0x24, 0xAA, 0xED, 0x5D, 0x5C, 0x8B,
- 0x84, 0x05, 0xEF, 0x2A, 0x83, 0x0C, 0xC2, 0xA0
- },
- {
- 0xFF, 0x3F, 0xAF, 0xB6, 0x77, 0x86, 0xE0, 0x1A,
- 0x0C, 0x38, 0xEA, 0xDF, 0x99, 0xC4, 0xCA, 0xE8,
- 0x02, 0x9D, 0xA8, 0xCF, 0x29, 0x87, 0x5F, 0xC4,
- 0x19, 0xBF, 0x68, 0x00, 0x09, 0xB3, 0xBD, 0xB3
- },
- {
- 0xCA, 0x67, 0x60, 0xF3, 0x45, 0x67, 0x8F, 0x30,
- 0xA2, 0x8D, 0x62, 0x82, 0x94, 0x27, 0x2A, 0x19,
- 0xE3, 0x07, 0x2E, 0xBC, 0x61, 0xB1, 0x9F, 0xF1,
- 0x3B, 0x31, 0x89, 0x73, 0xE9, 0x7C, 0x27, 0x38
- },
- {
- 0xC0, 0x8E, 0x1A, 0x90, 0x47, 0xC5, 0x05, 0x26,
- 0x4A, 0x16, 0x44, 0x7C, 0x9E, 0xD9, 0x81, 0xA7,
- 0x19, 0xD3, 0x81, 0xF2, 0x8E, 0x60, 0x5F, 0xD7,
- 0xCA, 0xA9, 0xE8, 0xBD, 0xBB, 0x42, 0x99, 0x6A
- },
- {
- 0xF1, 0x73, 0xBA, 0x9D, 0x45, 0x84, 0xCD, 0x12,
- 0x60, 0x50, 0xC6, 0x9F, 0xC2, 0x19, 0xA9, 0x19,
- 0x0A, 0x0B, 0xF0, 0xAE, 0xCE, 0xCB, 0xE6, 0x11,
- 0xBE, 0xED, 0x19, 0x3D, 0xA6, 0xCA, 0x4D, 0xE7
- },
- {
- 0xB1, 0x84, 0x87, 0x65, 0x20, 0xDE, 0xD8, 0xBD,
- 0x7D, 0xE2, 0x5E, 0xAE, 0xFB, 0xD3, 0xE0, 0x36,
- 0x88, 0xC3, 0xBE, 0x39, 0xC1, 0x9F, 0xB7, 0x3E,
- 0x1F, 0x0E, 0xCC, 0xAC, 0x7C, 0xC0, 0xF0, 0x14
- },
- {
- 0x90, 0x25, 0xDB, 0x07, 0x58, 0xBD, 0xFB, 0x48,
- 0xF0, 0x66, 0x7E, 0xBD, 0x7E, 0x12, 0x02, 0x46,
- 0x59, 0x8F, 0xED, 0x01, 0xC2, 0x58, 0x76, 0x4F,
- 0xA0, 0xFA, 0xE3, 0x34, 0xA2, 0xA0, 0x0A, 0x97
- },
- {
- 0xE8, 0x3D, 0x80, 0x86, 0xFA, 0xBC, 0x46, 0x0D,
- 0x5E, 0xFC, 0x45, 0x9F, 0x95, 0xA2, 0x68, 0xF5,
- 0xDC, 0x4A, 0xC2, 0x84, 0x09, 0x3C, 0x24, 0x7C,
- 0xA6, 0xEC, 0x84, 0x1A, 0xD6, 0x18, 0x3F, 0xE1
- },
- {
- 0xCC, 0x9D, 0xF4, 0x1D, 0x35, 0xAA, 0x75, 0x92,
- 0x8C, 0x18, 0x5F, 0x73, 0x93, 0x66, 0x61, 0x10,
- 0xB8, 0x0F, 0x09, 0x86, 0xA2, 0x21, 0xC3, 0x70,
- 0xF4, 0x5C, 0x2E, 0xB9, 0x01, 0x6C, 0x9A, 0x3B
- },
- {
- 0x92, 0xF9, 0xA5, 0x94, 0x95, 0x45, 0x90, 0xFA,
- 0x81, 0x98, 0x17, 0xE5, 0xD1, 0xC2, 0x8A, 0xAB,
- 0x2B, 0x1C, 0xC5, 0x04, 0xD8, 0x6D, 0xBA, 0x44,
- 0x36, 0x76, 0xBD, 0xF8, 0x66, 0x79, 0x68, 0x11
- },
- {
- 0x72, 0x95, 0x62, 0xA1, 0xE0, 0x7B, 0x0E, 0x26,
- 0x05, 0x49, 0x48, 0x09, 0xBD, 0x48, 0x0F, 0x15,
- 0x37, 0xCE, 0xA1, 0x0D, 0xCA, 0xD4, 0x3E, 0xF9,
- 0xF6, 0x8C, 0x66, 0xE8, 0x25, 0xDC, 0x46, 0xB1
- },
- {
- 0x26, 0xF1, 0x60, 0xAB, 0x96, 0xF5, 0x58, 0x20,
- 0x45, 0x14, 0x6E, 0xAF, 0xF2, 0xE2, 0xA8, 0xD4,
- 0xDA, 0xB2, 0x98, 0xB4, 0xC5, 0x7E, 0x11, 0x7C,
- 0xDF, 0xC5, 0xD0, 0x25, 0xC9, 0x2A, 0x22, 0x68
- },
- {
- 0x87, 0xEB, 0xE7, 0x21, 0x38, 0x38, 0x73, 0xD2,
- 0x47, 0xF8, 0x61, 0x82, 0xE3, 0xF5, 0x99, 0xA7,
- 0x63, 0x4F, 0xCA, 0xEC, 0x5E, 0x07, 0xB1, 0xE8,
- 0x3E, 0xBB, 0x79, 0x62, 0x5B, 0xA3, 0x54, 0xE6
- },
- {
- 0xE0, 0x8D, 0x38, 0x9F, 0x75, 0x69, 0x4A, 0xDC,
- 0x99, 0x6C, 0x22, 0xF5, 0x5D, 0x4F, 0x85, 0x9F,
- 0xFD, 0x0C, 0x13, 0x19, 0xFF, 0x9C, 0xED, 0xF7,
- 0x8C, 0x31, 0xBE, 0x84, 0xB6, 0xF2, 0x1A, 0xBC
- },
- {
- 0x13, 0x63, 0xE2, 0x29, 0x13, 0xC6, 0xE1, 0x8E,
- 0x7A, 0xA6, 0x5B, 0x83, 0xE7, 0x51, 0xC8, 0xA2,
- 0xC6, 0x1B, 0x0F, 0x30, 0x71, 0x55, 0x86, 0x5A,
- 0x57, 0xDB, 0xA5, 0x69, 0xA9, 0x9C, 0x7B, 0x0E
- },
- {
- 0x88, 0x78, 0x08, 0x8E, 0xB2, 0xD1, 0xF6, 0xD0,
- 0xBB, 0x48, 0x1B, 0x4B, 0xB1, 0x87, 0xDA, 0x04,
- 0xBC, 0xD8, 0xC2, 0xC6, 0x39, 0xF0, 0x05, 0xB0,
- 0x80, 0x54, 0xCC, 0x41, 0x75, 0x39, 0x05, 0xFB
- },
- {
- 0x04, 0x18, 0xD6, 0x0D, 0x05, 0xB4, 0xE1, 0x24,
- 0x64, 0x6E, 0xE5, 0x0E, 0x77, 0x49, 0xA1, 0xD2,
- 0x09, 0x45, 0x7B, 0xC5, 0x43, 0xE3, 0xCC, 0x11,
- 0x30, 0x27, 0x4A, 0xEA, 0x0F, 0x7B, 0xF3, 0xC1
- },
- {
- 0x7A, 0x39, 0x7E, 0x50, 0x3F, 0x29, 0x3B, 0xC4,
- 0x2D, 0x5F, 0x7E, 0xF5, 0xEC, 0x37, 0x87, 0x24,
- 0x60, 0xA4, 0xF5, 0xB5, 0xCC, 0xDE, 0x77, 0xFB,
- 0x4D, 0x47, 0xAC, 0x06, 0x81, 0xE5, 0xA0, 0x49
- },
- {
- 0x5C, 0x0D, 0x29, 0x83, 0xE7, 0x2A, 0x6D, 0xD4,
- 0xE6, 0x52, 0xD7, 0x23, 0xC1, 0xDF, 0xC1, 0x2B,
- 0x41, 0x4C, 0x87, 0x3D, 0x4A, 0xB4, 0xA0, 0xA1,
- 0x50, 0x40, 0x8E, 0xB3, 0x43, 0x47, 0xE9, 0x95
- },
- {
- 0x56, 0x23, 0x36, 0x54, 0x53, 0xC0, 0x49, 0x89,
- 0xC7, 0xCF, 0x33, 0x63, 0x5E, 0x0F, 0xC4, 0xCD,
- 0xDD, 0x68, 0x6F, 0xC9, 0x5A, 0x33, 0xDF, 0xED,
- 0xCF, 0x33, 0x35, 0x79, 0x4C, 0x7D, 0xC3, 0x44
- },
- {
- 0x11, 0xF6, 0xDA, 0xD1, 0x88, 0x02, 0x8F, 0xDF,
- 0x13, 0x78, 0xA2, 0x56, 0xE4, 0x57, 0x0E, 0x90,
- 0x63, 0x10, 0x7B, 0x8F, 0x79, 0xDC, 0x66, 0x3F,
- 0xA5, 0x55, 0x6F, 0x56, 0xFD, 0x44, 0xA0, 0xF0
- },
- {
- 0x0E, 0xD8, 0x16, 0x17, 0x97, 0xEC, 0xEE, 0x88,
- 0x1E, 0x7D, 0x0E, 0x3F, 0x4C, 0x5F, 0xB8, 0x39,
- 0xC8, 0x4E, 0xB7, 0xA9, 0x24, 0x26, 0x57, 0xCC,
- 0x48, 0x30, 0x68, 0x07, 0xB3, 0x2B, 0xEF, 0xDE
- },
- {
- 0x73, 0x66, 0x67, 0xC9, 0x36, 0x4C, 0xE1, 0x2D,
- 0xB8, 0xF6, 0xB1, 0x43, 0xC6, 0xC1, 0x78, 0xCD,
- 0xEF, 0x1E, 0x14, 0x45, 0xBC, 0x5A, 0x2F, 0x26,
- 0x34, 0xF0, 0x8E, 0x99, 0x32, 0x27, 0x3C, 0xAA
- },
- {
- 0xE1, 0x5F, 0x36, 0x8B, 0x44, 0x06, 0xC1, 0xF6,
- 0x55, 0x57, 0xC8, 0x35, 0x5C, 0xBE, 0x69, 0x4B,
- 0x63, 0x3E, 0x26, 0xF1, 0x55, 0xF5, 0x2B, 0x7D,
- 0xA9, 0x4C, 0xFB, 0x23, 0xFD, 0x4A, 0x5D, 0x96
- },
- {
- 0x43, 0x7A, 0xB2, 0xD7, 0x4F, 0x50, 0xCA, 0x86,
- 0xCC, 0x3D, 0xE9, 0xBE, 0x70, 0xE4, 0x55, 0x48,
- 0x25, 0xE3, 0x3D, 0x82, 0x4B, 0x3A, 0x49, 0x23,
- 0x62, 0xE2, 0xE9, 0xD6, 0x11, 0xBC, 0x57, 0x9D
- },
- {
- 0x2B, 0x91, 0x58, 0xC7, 0x22, 0x89, 0x8E, 0x52,
- 0x6D, 0x2C, 0xDD, 0x3F, 0xC0, 0x88, 0xE9, 0xFF,
- 0xA7, 0x9A, 0x9B, 0x73, 0xB7, 0xD2, 0xD2, 0x4B,
- 0xC4, 0x78, 0xE2, 0x1C, 0xDB, 0x3B, 0x67, 0x63
- },
- {
- 0x0C, 0x8A, 0x36, 0x59, 0x7D, 0x74, 0x61, 0xC6,
- 0x3A, 0x94, 0x73, 0x28, 0x21, 0xC9, 0x41, 0x85,
- 0x6C, 0x66, 0x83, 0x76, 0x60, 0x6C, 0x86, 0xA5,
- 0x2D, 0xE0, 0xEE, 0x41, 0x04, 0xC6, 0x15, 0xDB
- },
-};
-
-
-
-
-static const uint8_t blake2bp_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
-{
- {
- 0xB5, 0xEF, 0x81, 0x1A, 0x80, 0x38, 0xF7, 0x0B,
- 0x62, 0x8F, 0xA8, 0xB2, 0x94, 0xDA, 0xAE, 0x74,
- 0x92, 0xB1, 0xEB, 0xE3, 0x43, 0xA8, 0x0E, 0xAA,
- 0xBB, 0xF1, 0xF6, 0xAE, 0x66, 0x4D, 0xD6, 0x7B,
- 0x9D, 0x90, 0xB0, 0x12, 0x07, 0x91, 0xEA, 0xB8,
- 0x1D, 0xC9, 0x69, 0x85, 0xF2, 0x88, 0x49, 0xF6,
- 0xA3, 0x05, 0x18, 0x6A, 0x85, 0x50, 0x1B, 0x40,
- 0x51, 0x14, 0xBF, 0xA6, 0x78, 0xDF, 0x93, 0x80
- },
- {
- 0xA1, 0x39, 0x28, 0x0E, 0x72, 0x75, 0x7B, 0x72,
- 0x3E, 0x64, 0x73, 0xD5, 0xBE, 0x59, 0xF3, 0x6E,
- 0x9D, 0x50, 0xFC, 0x5C, 0xD7, 0xD4, 0x58, 0x5C,
- 0xBC, 0x09, 0x80, 0x48, 0x95, 0xA3, 0x6C, 0x52,
- 0x12, 0x42, 0xFB, 0x27, 0x89, 0xF8, 0x5C, 0xB9,
- 0xE3, 0x54, 0x91, 0xF3, 0x1D, 0x4A, 0x69, 0x52,
- 0xF9, 0xD8, 0xE0, 0x97, 0xAE, 0xF9, 0x4F, 0xA1,
- 0xCA, 0x0B, 0x12, 0x52, 0x57, 0x21, 0xF0, 0x3D
- },
- {
- 0xEF, 0x8C, 0xDA, 0x96, 0x35, 0xD5, 0x06, 0x3A,
- 0xF8, 0x11, 0x15, 0xDA, 0x3C, 0x52, 0x32, 0x5A,
- 0x86, 0xE8, 0x40, 0x74, 0xF9, 0xF7, 0x24, 0xB7,
- 0xCB, 0xD0, 0xB0, 0x85, 0x6F, 0xF0, 0x01, 0x77,
- 0xCD, 0xD2, 0x83, 0xC2, 0x98, 0x32, 0x6C, 0xD0,
- 0x91, 0x77, 0x54, 0xC5, 0x24, 0x1F, 0x14, 0x80,
- 0xFB, 0x50, 0x9C, 0xF2, 0xD2, 0xC4, 0x49, 0x81,
- 0x80, 0x77, 0xAE, 0x35, 0xFC, 0x33, 0x07, 0x37
- },
- {
- 0x8C, 0xF9, 0x33, 0xA2, 0xD3, 0x61, 0xA3, 0xE6,
- 0xA1, 0x36, 0xDB, 0xE4, 0xA0, 0x1E, 0x79, 0x03,
- 0x79, 0x7A, 0xD6, 0xCE, 0x76, 0x6E, 0x2B, 0x91,
- 0xB9, 0xB4, 0xA4, 0x03, 0x51, 0x27, 0xD6, 0x5F,
- 0x4B, 0xE8, 0x65, 0x50, 0x11, 0x94, 0x18, 0xE2,
- 0x2D, 0xA0, 0x0F, 0xD0, 0x6B, 0xF2, 0xB2, 0x75,
- 0x96, 0xB3, 0x7F, 0x06, 0xBE, 0x0A, 0x15, 0x4A,
- 0xAF, 0x7E, 0xCA, 0x54, 0xC4, 0x52, 0x0B, 0x97
- },
- {
- 0x24, 0xDC, 0x1E, 0x6D, 0xC4, 0xE5, 0x1A, 0x3A,
- 0x3C, 0x8D, 0xA6, 0x7A, 0xAC, 0xB4, 0xC5, 0x41,
- 0xE4, 0x18, 0x18, 0xD1, 0x80, 0xE5, 0xBB, 0x69,
- 0x75, 0x3D, 0xBB, 0xFF, 0x2F, 0x44, 0xD0, 0xE7,
- 0xDA, 0x83, 0x03, 0x86, 0xBF, 0xC8, 0x3B, 0x27,
- 0xA5, 0x9D, 0xBB, 0x62, 0xB9, 0x64, 0xFC, 0x8E,
- 0xA6, 0xCB, 0xDF, 0x30, 0x49, 0xBF, 0xF8, 0x1F,
- 0x24, 0xF3, 0x48, 0xDB, 0x4E, 0xFD, 0x0D, 0x07
- },
- {
- 0xBC, 0x23, 0xF5, 0xAB, 0xDF, 0xFD, 0x6A, 0x32,
- 0xA5, 0xD4, 0x08, 0x11, 0x26, 0x2E, 0xD4, 0x47,
- 0x9E, 0xF7, 0x0B, 0x42, 0x33, 0xCA, 0x20, 0x5B,
- 0xC5, 0xB9, 0xBF, 0x85, 0x96, 0x73, 0x19, 0x82,
- 0xD0, 0x41, 0x69, 0xA9, 0x04, 0xDD, 0x43, 0xB0,
- 0xE0, 0xF9, 0x48, 0x99, 0xF7, 0x33, 0x02, 0x2D,
- 0x24, 0xD8, 0x4F, 0xAD, 0x0A, 0x99, 0x16, 0x00,
- 0xF1, 0x97, 0x9B, 0x27, 0x2A, 0xD6, 0x20, 0x73
- },
- {
- 0xEF, 0x10, 0x7F, 0xCD, 0x0D, 0x92, 0xD8, 0x4E,
- 0xF5, 0xEF, 0x94, 0x63, 0xE6, 0xE9, 0x62, 0x41,
- 0x25, 0x45, 0x29, 0xD2, 0xB9, 0x7F, 0xDB, 0xE5,
- 0x64, 0x19, 0x07, 0x0A, 0xDB, 0xC7, 0xD5, 0x70,
- 0x6F, 0xEB, 0x8F, 0x44, 0x95, 0x79, 0x81, 0x9E,
- 0xD4, 0xBE, 0x61, 0x97, 0x85, 0xFF, 0xFA, 0xAF,
- 0x0D, 0x97, 0x89, 0xCF, 0xE7, 0x26, 0x24, 0x9A,
- 0xB0, 0x8C, 0x94, 0x68, 0xCB, 0x5F, 0xDE, 0x22
- },
- {
- 0x23, 0x1F, 0xBF, 0xB7, 0xA1, 0xDD, 0xC5, 0xB7,
- 0x49, 0x33, 0xA2, 0x85, 0xA4, 0x22, 0x4C, 0x04,
- 0x9C, 0xBA, 0x14, 0x85, 0xCE, 0x35, 0x64, 0x0D,
- 0x9C, 0x51, 0x6E, 0xD7, 0x8E, 0xAA, 0x22, 0x6D,
- 0x36, 0xF6, 0x5B, 0x25, 0x89, 0xB8, 0x26, 0xC4,
- 0x59, 0xFA, 0x6A, 0x91, 0xC4, 0x26, 0xFD, 0x2A,
- 0x8A, 0xB4, 0x61, 0xC9, 0x76, 0x7E, 0x7B, 0xDD,
- 0x99, 0x6B, 0xEF, 0x5A, 0x78, 0xF4, 0x81, 0xB7
- },
- {
- 0x3A, 0x83, 0x1F, 0x2D, 0xA9, 0x69, 0xB9, 0xB7,
- 0x36, 0x0E, 0x74, 0xEE, 0x53, 0xB5, 0x18, 0x98,
- 0x0A, 0x5E, 0xBC, 0xDF, 0xD4, 0xEE, 0x23, 0xED,
- 0x80, 0x5C, 0x26, 0x39, 0x4D, 0x18, 0x24, 0x20,
- 0x8D, 0x7E, 0x8F, 0x63, 0x27, 0xD4, 0xEC, 0x87,
- 0x97, 0x9C, 0xE4, 0xAF, 0x8A, 0xB0, 0x97, 0xD6,
- 0x9E, 0x26, 0x1C, 0xA3, 0x2D, 0xB0, 0xEE, 0xFD,
- 0xBC, 0x18, 0xD1, 0x63, 0x77, 0xA6, 0xBD, 0x20
- },
- {
- 0x83, 0x49, 0xA2, 0x0F, 0xDD, 0xBA, 0xE1, 0xD8,
- 0x47, 0x2B, 0x67, 0xF0, 0x34, 0x7A, 0xA0, 0xFD,
- 0x40, 0x4D, 0x65, 0xC6, 0xFA, 0x14, 0x72, 0xB3,
- 0x10, 0x39, 0x0D, 0x75, 0x65, 0xBA, 0x6B, 0xC1,
- 0x02, 0x60, 0xD3, 0xDC, 0xE6, 0xA1, 0x4F, 0x4D,
- 0xD9, 0xB8, 0xB3, 0xE0, 0xA0, 0xC4, 0x7F, 0x6D,
- 0xB7, 0xE7, 0x10, 0x0A, 0x7A, 0x9B, 0x64, 0xA8,
- 0x44, 0xF0, 0x10, 0x64, 0xD0, 0x79, 0x05, 0xC5
- },
- {
- 0x23, 0x9A, 0xE3, 0xD6, 0x85, 0x9C, 0x7C, 0x97,
- 0x2A, 0x5D, 0xC8, 0xB9, 0xC5, 0x5A, 0xEB, 0x93,
- 0x85, 0x90, 0xCF, 0xB8, 0x55, 0x2A, 0xA3, 0x05,
- 0xA6, 0xF6, 0xF3, 0x1F, 0xFA, 0x95, 0xA8, 0x40,
- 0xF4, 0xEC, 0x36, 0xF6, 0xFB, 0x8F, 0x83, 0xB6,
- 0x9C, 0x1D, 0xA9, 0x81, 0xFC, 0x9B, 0xA1, 0x63,
- 0x60, 0xDB, 0x0F, 0x4F, 0x7C, 0x68, 0xEB, 0x54,
- 0x3E, 0xD5, 0x8B, 0x28, 0x75, 0x6A, 0x1E, 0x0D
- },
- {
- 0x7C, 0x56, 0x73, 0x28, 0x63, 0x08, 0x40, 0x8F,
- 0xBC, 0x62, 0x24, 0x0E, 0x07, 0x47, 0x28, 0xB2,
- 0x7A, 0x57, 0x5C, 0xAD, 0x2A, 0x15, 0x6E, 0x00,
- 0xB5, 0xC0, 0x8B, 0x21, 0x8D, 0x88, 0x87, 0x79,
- 0x1E, 0x47, 0xBF, 0x10, 0xB0, 0xBC, 0x61, 0xA5,
- 0x82, 0x54, 0x5A, 0x24, 0x69, 0x63, 0x9C, 0xE6,
- 0x28, 0xC4, 0x0F, 0x20, 0xEA, 0x8B, 0x84, 0x9C,
- 0xD0, 0x05, 0x44, 0x5F, 0x29, 0xA0, 0x8C, 0xCE
- },
- {
- 0xDD, 0x07, 0x7E, 0x76, 0x9E, 0x0D, 0xEF, 0x78,
- 0xDD, 0x7A, 0xAD, 0xD5, 0x7D, 0x58, 0x42, 0x1B,
- 0xDA, 0x3A, 0x1A, 0x4E, 0x69, 0x72, 0x05, 0x9F,
- 0x8E, 0x64, 0x9C, 0xD6, 0xBC, 0xA4, 0x4A, 0x13,
- 0xAB, 0x71, 0xEB, 0x53, 0x5D, 0x24, 0x49, 0x22,
- 0x94, 0x84, 0x65, 0xD7, 0x3B, 0xD6, 0x4E, 0xFB,
- 0x09, 0x10, 0x46, 0x94, 0x90, 0x66, 0x65, 0x36,
- 0x03, 0x57, 0x5A, 0x2E, 0x89, 0x1E, 0xBD, 0x54
- },
- {
- 0xB3, 0x6C, 0xEF, 0x28, 0x53, 0x2B, 0x40, 0xD8,
- 0x17, 0x86, 0x28, 0xF0, 0xFA, 0xB5, 0xE5, 0xB4,
- 0xA1, 0xDE, 0xC0, 0xC0, 0xE9, 0x11, 0xD7, 0x27,
- 0xBF, 0x09, 0x49, 0x0F, 0x5E, 0x8D, 0x9F, 0xAC,
- 0x57, 0x21, 0x3F, 0xD2, 0xA2, 0xD1, 0x2E, 0xD3,
- 0xD7, 0x7A, 0x41, 0xF5, 0xE2, 0xFE, 0xCC, 0x40,
- 0xE4, 0xEE, 0xCA, 0x16, 0x12, 0xF5, 0x1C, 0x45,
- 0x23, 0x31, 0xAE, 0x93, 0x96, 0x62, 0x35, 0xBC
- },
- {
- 0xDE, 0x73, 0x7D, 0xBC, 0x61, 0x2E, 0xBD, 0x31,
- 0xBC, 0x49, 0xA2, 0xD7, 0xC6, 0x44, 0xD4, 0xB1,
- 0x37, 0x81, 0x74, 0x19, 0x42, 0x1C, 0x32, 0xF4,
- 0xE7, 0x51, 0x14, 0xD8, 0x99, 0xE3, 0x13, 0x1D,
- 0x45, 0xCA, 0x54, 0x51, 0x24, 0x8F, 0x24, 0x16,
- 0x9F, 0xBF, 0x17, 0xEE, 0x60, 0xA9, 0xB7, 0x07,
- 0x98, 0xA4, 0xB9, 0x37, 0xCE, 0xA6, 0x27, 0x95,
- 0x28, 0x96, 0x39, 0xD1, 0x8F, 0xCD, 0x89, 0xE4
- },
- {
- 0xB4, 0xC1, 0xBB, 0xCB, 0xBC, 0xCD, 0xFC, 0xE4,
- 0xD2, 0xBE, 0x9D, 0xCD, 0xB9, 0x83, 0xC1, 0xB0,
- 0x20, 0xC5, 0xF7, 0x20, 0xDA, 0x5B, 0xEC, 0xF4,
- 0xCB, 0x2A, 0x9A, 0x3D, 0x1B, 0x8D, 0x23, 0xCE,
- 0xA7, 0xA9, 0xF5, 0xFD, 0x70, 0xD3, 0x74, 0x0E,
- 0xCD, 0x67, 0xCE, 0x7D, 0x1E, 0x9C, 0x5E, 0x31,
- 0xA3, 0x30, 0x2D, 0xF6, 0x6A, 0x9B, 0x5D, 0x54,
- 0x30, 0x44, 0x90, 0xFB, 0xE1, 0xC4, 0xA8, 0xB9
- },
- {
- 0xB1, 0xD6, 0x5E, 0x70, 0xC6, 0x9B, 0xA7, 0xE3,
- 0xA7, 0x28, 0xE8, 0xB6, 0x44, 0x94, 0x93, 0xF2,
- 0x37, 0x51, 0x0B, 0x23, 0xB6, 0xE7, 0x7D, 0x95,
- 0x84, 0xD0, 0x5F, 0xF4, 0xD3, 0xF0, 0x87, 0x80,
- 0x92, 0x9D, 0x74, 0xFA, 0x5B, 0xED, 0x9B, 0x75,
- 0xD4, 0xD6, 0xD1, 0xCA, 0x91, 0xAB, 0x8D, 0x26,
- 0x37, 0xDC, 0x2E, 0x79, 0xBA, 0x0F, 0xE0, 0x59,
- 0x4A, 0xCD, 0x68, 0xFB, 0x3C, 0xC6, 0x60, 0xB9
- },
- {
- 0xDA, 0x79, 0xF7, 0x29, 0xEA, 0xB9, 0x8C, 0x04,
- 0xF3, 0x7F, 0xCC, 0x85, 0x4B, 0x69, 0xA8, 0x4E,
- 0x46, 0x7D, 0xEA, 0x1E, 0x77, 0x82, 0xE7, 0xAF,
- 0x02, 0xCB, 0x44, 0xA4, 0x9D, 0x21, 0x0D, 0x25,
- 0x23, 0x68, 0x3D, 0x42, 0x0A, 0xC1, 0xDE, 0xC8,
- 0xAD, 0x1F, 0xB4, 0x0E, 0x65, 0xAB, 0x3F, 0xE2,
- 0x51, 0xA8, 0x51, 0xE2, 0x83, 0xD8, 0x58, 0x38,
- 0x08, 0x42, 0x61, 0x30, 0x1E, 0xCD, 0x08, 0x9B
- },
- {
- 0x71, 0x40, 0x40, 0x40, 0x39, 0x21, 0xAE, 0x55,
- 0x48, 0xA2, 0x03, 0x39, 0xD6, 0x9E, 0x09, 0x3F,
- 0x60, 0x9A, 0xA9, 0x9C, 0x22, 0xDB, 0x72, 0x59,
- 0x1D, 0x1E, 0xF4, 0xFC, 0xB0, 0xAF, 0x01, 0x61,
- 0x73, 0xE5, 0x77, 0xD8, 0xC1, 0xA3, 0x06, 0x3B,
- 0x44, 0x3A, 0x0E, 0x48, 0xF3, 0x13, 0xCF, 0x2E,
- 0x0F, 0x9B, 0x0C, 0x2E, 0xF9, 0x6A, 0x96, 0xC4,
- 0x24, 0x32, 0x2C, 0xCC, 0x0C, 0xD5, 0x30, 0x4C
- },
- {
- 0x8B, 0x2E, 0x8C, 0x3F, 0x0E, 0x3C, 0x31, 0x9B,
- 0xA6, 0x7E, 0x86, 0x01, 0x4B, 0xDA, 0x68, 0x3E,
- 0x53, 0x57, 0xA0, 0x40, 0x37, 0xB4, 0x56, 0x32,
- 0x86, 0xAC, 0x89, 0xCD, 0xDB, 0x7E, 0xE0, 0x4C,
- 0xF6, 0x67, 0x5F, 0x9A, 0xB6, 0x1F, 0xC8, 0x33,
- 0x2D, 0x21, 0x8D, 0x2B, 0xCA, 0x97, 0x15, 0xE7,
- 0xDB, 0xE5, 0x83, 0x72, 0xD1, 0xEE, 0xBF, 0x6B,
- 0xC2, 0x94, 0x84, 0x71, 0xCF, 0xCE, 0xBB, 0x77
- },
- {
- 0x32, 0xEE, 0x95, 0x49, 0xD4, 0xE3, 0x2F, 0x4B,
- 0xE9, 0xC5, 0x00, 0xBD, 0x85, 0x43, 0xAF, 0xD0,
- 0xB6, 0x97, 0x82, 0xD0, 0xB3, 0xFF, 0x7E, 0xD4,
- 0x7A, 0x88, 0x1A, 0x0E, 0x49, 0x1F, 0x37, 0x65,
- 0x0A, 0x21, 0xB2, 0x6C, 0x3F, 0x5D, 0x0A, 0x64,
- 0xE0, 0x90, 0x58, 0xB3, 0x00, 0x4A, 0x23, 0x68,
- 0xB9, 0x50, 0xE4, 0x72, 0x30, 0xC2, 0x29, 0x66,
- 0xD3, 0xF7, 0x9D, 0xA7, 0xBA, 0xA0, 0xB8, 0x7F
- },
- {
- 0xCA, 0xE7, 0xF2, 0x92, 0x71, 0x37, 0x82, 0xC4,
- 0x71, 0xFE, 0x31, 0x78, 0xA9, 0x42, 0x0C, 0xD4,
- 0xC1, 0x1F, 0xCD, 0x3F, 0x6D, 0xBE, 0x5D, 0x15,
- 0xC8, 0x4A, 0xB7, 0x35, 0x3C, 0x73, 0x9E, 0xF0,
- 0x64, 0x16, 0x39, 0xA2, 0xF9, 0x2A, 0xED, 0x31,
- 0xC5, 0x6A, 0x20, 0x21, 0xCC, 0x5E, 0x58, 0xCB,
- 0xEA, 0xD3, 0x74, 0xE2, 0xDC, 0x8A, 0x0D, 0xBC,
- 0xE5, 0x45, 0x0F, 0xE7, 0xA0, 0x18, 0xCF, 0xA4
- },
- {
- 0xF1, 0x7F, 0xEF, 0xAE, 0xAE, 0x7D, 0x40, 0xCD,
- 0x88, 0x5D, 0xAC, 0x0B, 0xC3, 0x50, 0xC0, 0x27,
- 0x36, 0x68, 0xEA, 0x02, 0x22, 0xDF, 0x5C, 0x75,
- 0x69, 0x4F, 0x5C, 0xB3, 0xA3, 0x21, 0x51, 0x9F,
- 0x6E, 0x0E, 0xC4, 0x3B, 0xA0, 0xC8, 0x59, 0x3D,
- 0xC7, 0x34, 0x13, 0x41, 0xE5, 0x19, 0x48, 0x8F,
- 0x20, 0xAB, 0xD5, 0xB8, 0x12, 0x4D, 0xFA, 0xCE,
- 0xA5, 0xCD, 0xE0, 0x96, 0x5B, 0x69, 0x70, 0xF9
- },
- {
- 0xE2, 0xCF, 0x86, 0xDD, 0xC8, 0x42, 0x4E, 0xE5,
- 0x47, 0xEB, 0x72, 0x45, 0xB7, 0x32, 0x5E, 0x02,
- 0xF2, 0xE3, 0xAC, 0x01, 0x3C, 0x8D, 0x38, 0x6B,
- 0x3D, 0x2E, 0x09, 0x20, 0x8A, 0x9B, 0xCC, 0x0B,
- 0x44, 0xC4, 0xC4, 0x38, 0xEA, 0xAF, 0x52, 0xD2,
- 0x07, 0x7E, 0x91, 0x77, 0xEB, 0x8E, 0xE1, 0xD5,
- 0x90, 0x75, 0xB5, 0x25, 0x92, 0x20, 0x20, 0x62,
- 0x22, 0x93, 0x54, 0xBF, 0x23, 0xC9, 0x62, 0x39
- },
- {
- 0x38, 0xF2, 0x6A, 0x11, 0x02, 0xCB, 0x16, 0x2D,
- 0x35, 0x1F, 0x84, 0x3B, 0x3C, 0x49, 0xF6, 0xFF,
- 0x85, 0x44, 0x16, 0x33, 0xB6, 0x70, 0x4A, 0x28,
- 0x6A, 0xF8, 0x1C, 0xCB, 0xAE, 0x5A, 0x67, 0xD3,
- 0x01, 0x5C, 0xC0, 0xEF, 0xAF, 0xB7, 0x05, 0x7D,
- 0xC2, 0xB2, 0x8D, 0x67, 0x66, 0xE8, 0x2A, 0x06,
- 0x8A, 0x4C, 0x0B, 0x52, 0x4B, 0x66, 0xD0, 0xA6,
- 0x32, 0x77, 0x5D, 0x93, 0x06, 0x15, 0x75, 0xF9
- },
- {
- 0xA2, 0xC4, 0x30, 0x2D, 0xAC, 0xA7, 0xA7, 0xC6,
- 0x32, 0xF6, 0x76, 0x30, 0x4E, 0x62, 0x75, 0xC1,
- 0xC1, 0xF0, 0xDB, 0xFE, 0x38, 0xDC, 0x57, 0x1C,
- 0xB2, 0x3E, 0x1F, 0x7B, 0xA5, 0xDC, 0x18, 0x18,
- 0x0F, 0xC4, 0x8A, 0x01, 0x5F, 0x92, 0x7C, 0x89,
- 0x96, 0x7C, 0x1E, 0x10, 0x4E, 0x66, 0xF5, 0xEA,
- 0x5B, 0x2D, 0xD3, 0x1D, 0x78, 0x1C, 0x38, 0x49,
- 0xBF, 0xC6, 0x49, 0x22, 0x0C, 0x38, 0x5C, 0x82
- },
- {
- 0xC1, 0x9C, 0x6B, 0x3F, 0xB5, 0x35, 0x2B, 0xB3,
- 0x94, 0xC2, 0x68, 0x46, 0x52, 0x3C, 0x25, 0xE8,
- 0x26, 0x5D, 0x50, 0x5F, 0x50, 0x1F, 0x96, 0x03,
- 0xA4, 0xF8, 0xBD, 0x55, 0x38, 0x6C, 0xF4, 0xCC,
- 0x9F, 0x4D, 0x71, 0xF3, 0x8F, 0xF4, 0x45, 0xF4,
- 0xEF, 0xC8, 0x30, 0x98, 0xD4, 0x79, 0x69, 0x33,
- 0x4E, 0x79, 0xA2, 0xBC, 0xB4, 0x02, 0x6B, 0xC6,
- 0x3B, 0x79, 0x59, 0xDE, 0xDB, 0x62, 0xB7, 0xBD
- },
- {
- 0x1F, 0x4A, 0xB9, 0x84, 0x0A, 0x1C, 0xFA, 0x8F,
- 0xE6, 0xC5, 0x62, 0x2D, 0x9B, 0x53, 0x8B, 0xEC,
- 0xB8, 0x80, 0x7A, 0x87, 0x78, 0xB6, 0x9D, 0x93,
- 0x05, 0xF9, 0x08, 0x57, 0x65, 0x73, 0xB2, 0x0C,
- 0xA3, 0x70, 0x4E, 0x89, 0x12, 0x97, 0x26, 0xD5,
- 0x02, 0xE1, 0x98, 0x58, 0x8D, 0x07, 0x26, 0x68,
- 0xBF, 0x03, 0x63, 0x0B, 0x5B, 0x5A, 0x92, 0x32,
- 0xFF, 0x39, 0x25, 0x27, 0x24, 0x9D, 0xF9, 0x9B
- },
- {
- 0xFE, 0x03, 0x17, 0x7B, 0x58, 0xB4, 0x88, 0x83,
- 0xA8, 0x6D, 0x42, 0x68, 0x33, 0x4B, 0x95, 0x91,
- 0xD9, 0xFB, 0xD8, 0xBF, 0x7C, 0xC2, 0xAA, 0xCC,
- 0x50, 0x25, 0xEF, 0x47, 0x6B, 0x45, 0x33, 0xBA,
- 0x7B, 0xD7, 0x81, 0xDF, 0x01, 0x11, 0x47, 0xB3,
- 0xCF, 0x51, 0x1D, 0x8B, 0x3D, 0xCD, 0x8C, 0x78,
- 0x0D, 0x30, 0xD7, 0xDA, 0x71, 0x8C, 0x22, 0x44,
- 0x23, 0x19, 0x81, 0x7B, 0xE3, 0x18, 0x6B, 0xC5
- },
- {
- 0xF4, 0xC3, 0xB0, 0x59, 0x10, 0x5B, 0x6A, 0xA5,
- 0xFE, 0x78, 0x84, 0x3A, 0x07, 0xD9, 0x4F, 0x71,
- 0x20, 0x62, 0xCB, 0x5A, 0x4D, 0xD6, 0x05, 0x9F,
- 0x97, 0x90, 0x4D, 0x0C, 0x57, 0x97, 0x3B, 0xA8,
- 0xDF, 0x71, 0xD1, 0x5A, 0x51, 0x1A, 0x06, 0x68,
- 0x64, 0xFE, 0x45, 0x5E, 0xDC, 0x9E, 0x5F, 0x16,
- 0x52, 0x4C, 0xEC, 0x7E, 0xE2, 0x48, 0xEE, 0x3E,
- 0xC9, 0x29, 0x06, 0x3B, 0xD1, 0x07, 0x98, 0xDA
- },
- {
- 0x57, 0xA1, 0x6F, 0x96, 0x4B, 0x18, 0x1B, 0x12,
- 0x03, 0xA5, 0x80, 0x3B, 0x73, 0x81, 0x7D, 0x77,
- 0x44, 0x83, 0x82, 0x6C, 0xEA, 0x11, 0x3B, 0x9C,
- 0xCF, 0xCF, 0x0E, 0xB8, 0x7C, 0xB2, 0x30, 0x64,
- 0x28, 0x49, 0x62, 0xD8, 0x47, 0xBB, 0x1F, 0xAE,
- 0x8C, 0xBF, 0x5C, 0xC6, 0x3B, 0x3C, 0xEA, 0xA1,
- 0x24, 0x1E, 0xA4, 0x2C, 0x63, 0xF8, 0x98, 0x01,
- 0x1F, 0xC4, 0xDB, 0xCA, 0xE6, 0xF5, 0xE8, 0xC5
- },
- {
- 0x79, 0x52, 0xFC, 0x83, 0xAC, 0xF1, 0x3A, 0x95,
- 0xCA, 0x9C, 0x27, 0xA2, 0x15, 0x6D, 0x9C, 0x1B,
- 0x63, 0x00, 0xB0, 0xEF, 0x79, 0x0F, 0x57, 0x2B,
- 0xC3, 0x94, 0xC6, 0x77, 0xF7, 0xC1, 0x46, 0x29,
- 0xEB, 0xD8, 0xE7, 0xD5, 0xD7, 0xC7, 0xF1, 0xA5,
- 0xEB, 0xBD, 0xC3, 0x90, 0xCC, 0x08, 0xCD, 0x58,
- 0xC2, 0x00, 0x89, 0x00, 0xCB, 0x55, 0xEB, 0x05,
- 0xE4, 0x44, 0xA6, 0x8C, 0x3B, 0x39, 0x3E, 0x60
- },
- {
- 0x2C, 0x22, 0x40, 0xD6, 0xB5, 0x41, 0xF4, 0x29,
- 0x4F, 0xF9, 0x76, 0x79, 0x1D, 0x35, 0xE6, 0xA2,
- 0xD4, 0x92, 0xF5, 0x7A, 0x91, 0x5F, 0xBA, 0xC5,
- 0x83, 0x26, 0x60, 0xC1, 0x0E, 0x9C, 0x96, 0x46,
- 0x5C, 0x7B, 0xD5, 0xFC, 0xA7, 0x51, 0xBF, 0x68,
- 0xE2, 0x67, 0x3A, 0x63, 0x8E, 0x3A, 0xF7, 0x35,
- 0xB0, 0x20, 0x91, 0xD7, 0x5D, 0x1A, 0x7F, 0x89,
- 0xE3, 0xF7, 0x61, 0xC5, 0xDF, 0x82, 0x1A, 0x6B
- },
- {
- 0x59, 0xDC, 0x84, 0x6D, 0x34, 0x05, 0xCC, 0xD8,
- 0x06, 0xF8, 0xFA, 0x20, 0xC8, 0x96, 0x9E, 0xF6,
- 0x8A, 0x43, 0x85, 0xEF, 0x6C, 0x27, 0x4E, 0xEE,
- 0x6D, 0xC0, 0x69, 0x2C, 0x3E, 0xCF, 0xB1, 0xA8,
- 0x34, 0xCE, 0x64, 0x43, 0x76, 0xC5, 0x2B, 0x80,
- 0x42, 0x1B, 0xAE, 0x94, 0xD6, 0xC7, 0xFD, 0xCC,
- 0xA5, 0xA8, 0xF1, 0x85, 0x9C, 0x45, 0xA1, 0x0C,
- 0x4E, 0xB2, 0x74, 0x82, 0x6F, 0x1F, 0x08, 0x9F
- },
- {
- 0xB7, 0x52, 0x96, 0x27, 0x07, 0xA1, 0x7B, 0x66,
- 0x4F, 0xAE, 0xB3, 0x13, 0xE2, 0xB9, 0x52, 0xDC,
- 0x03, 0xE7, 0x4A, 0x7E, 0x94, 0x47, 0x09, 0x8A,
- 0xA6, 0xD4, 0xEA, 0x5B, 0xD2, 0x87, 0xD0, 0x7A,
- 0x12, 0x25, 0xEC, 0xED, 0xA9, 0x81, 0x15, 0x70,
- 0x58, 0x0A, 0x51, 0x2B, 0x2B, 0x20, 0xB3, 0xFC,
- 0xFC, 0xA7, 0x0B, 0x44, 0xF6, 0x45, 0x4E, 0xF3,
- 0xC3, 0x52, 0x4C, 0xCA, 0x6B, 0x69, 0x47, 0x5B
- },
- {
- 0xDA, 0x0D, 0x8E, 0x54, 0x61, 0xF8, 0x10, 0x24,
- 0xEF, 0xFE, 0xED, 0x5D, 0x70, 0x76, 0xA0, 0x4F,
- 0xED, 0xED, 0xAC, 0x57, 0xE7, 0xC9, 0x8A, 0x59,
- 0x45, 0xBF, 0xDE, 0x66, 0x75, 0x58, 0x18, 0x85,
- 0x1B, 0xE1, 0x13, 0x6B, 0x71, 0xF4, 0x33, 0xA5,
- 0x6B, 0xDA, 0x18, 0x41, 0xAE, 0x71, 0x39, 0x2C,
- 0x4B, 0x82, 0x90, 0x82, 0x63, 0x59, 0xF5, 0x87,
- 0x22, 0x3C, 0x3E, 0xF7, 0x37, 0xFF, 0x73, 0x2A
- },
- {
- 0xED, 0xB8, 0x6A, 0x23, 0x7C, 0x6F, 0x13, 0x7D,
- 0xFB, 0xB3, 0x47, 0x01, 0x1E, 0xDB, 0x4C, 0x6E,
- 0x86, 0x1F, 0x4D, 0x58, 0x14, 0x60, 0x85, 0x46,
- 0x34, 0x41, 0x04, 0x2F, 0xA3, 0x63, 0x16, 0xF1,
- 0xFA, 0xF8, 0x87, 0x11, 0xBB, 0x0F, 0x18, 0x11,
- 0xDF, 0xBB, 0xBF, 0xA7, 0xB5, 0x1F, 0x9C, 0xE2,
- 0xD4, 0x96, 0x05, 0x24, 0x3E, 0xD0, 0x16, 0xCB,
- 0xAD, 0x68, 0x85, 0xEA, 0xE2, 0x03, 0x67, 0x4F
- },
- {
- 0xE6, 0xD8, 0xE0, 0xFB, 0xAA, 0x29, 0xDB, 0xEB,
- 0x60, 0xF3, 0xC7, 0xF9, 0x85, 0xBA, 0xD7, 0x54,
- 0xD7, 0x21, 0xAA, 0xC6, 0x3D, 0xA6, 0xF4, 0x49,
- 0x0C, 0x9D, 0x7E, 0xA2, 0x31, 0xD2, 0x62, 0x2F,
- 0xDF, 0xDE, 0xF1, 0x48, 0xD0, 0xCA, 0x44, 0x2B,
- 0x8D, 0x59, 0xCF, 0x3E, 0x4F, 0x98, 0x35, 0xCB,
- 0xC2, 0x40, 0xAF, 0x40, 0xFB, 0xA6, 0x3A, 0x2E,
- 0xA5, 0xA2, 0x35, 0xD4, 0x6E, 0xEA, 0x6E, 0xAC
- },
- {
- 0xD4, 0xE4, 0x63, 0xC4, 0x88, 0x29, 0x87, 0xEB,
- 0x44, 0xA5, 0xED, 0x0C, 0x82, 0x1D, 0x68, 0xB0,
- 0xFE, 0xF9, 0x9D, 0x6F, 0x53, 0xA5, 0x7B, 0xF3,
- 0x19, 0xBD, 0xAC, 0x25, 0xAC, 0x38, 0xEB, 0x0B,
- 0x23, 0xE1, 0x13, 0x8C, 0x00, 0x12, 0xF5, 0xF3,
- 0x83, 0x46, 0xA1, 0xDE, 0x9D, 0x4A, 0x99, 0x2A,
- 0x64, 0xB9, 0x42, 0x83, 0x4A, 0x85, 0x6E, 0xFB,
- 0xAA, 0x06, 0x20, 0xBD, 0xA2, 0x9F, 0x6A, 0x86
- },
- {
- 0x42, 0xD8, 0x10, 0xD0, 0x1C, 0x2D, 0xA2, 0x47,
- 0x35, 0xF0, 0x4A, 0x5E, 0x90, 0x13, 0x38, 0xFD,
- 0xFC, 0x2D, 0xE1, 0x71, 0x5F, 0xF6, 0x64, 0x3A,
- 0x37, 0x2F, 0x88, 0x0E, 0x6C, 0x5C, 0x6C, 0x13,
- 0xD2, 0xB3, 0xAD, 0x70, 0x77, 0x46, 0x9D, 0x64,
- 0x33, 0x54, 0x05, 0x4D, 0x32, 0xDD, 0x80, 0x49,
- 0xEA, 0x63, 0x73, 0x2B, 0x57, 0x45, 0xBD, 0xB2,
- 0x3B, 0xE2, 0xB5, 0x8E, 0x48, 0xC1, 0x01, 0x3A
- },
- {
- 0xCF, 0xBF, 0x54, 0x30, 0x07, 0x6F, 0x82, 0x5A,
- 0x3B, 0xBB, 0x88, 0xC1, 0xBC, 0x0A, 0xEF, 0x61,
- 0x25, 0x9E, 0x8F, 0x4D, 0x5F, 0xA3, 0x3C, 0x39,
- 0x82, 0x50, 0x62, 0xF1, 0x5D, 0x19, 0xFD, 0x4A,
- 0x01, 0x82, 0xCD, 0x97, 0x36, 0xD2, 0xAE, 0xC9,
- 0x74, 0x9C, 0xCF, 0x83, 0x18, 0x6C, 0x35, 0x74,
- 0xAB, 0x94, 0x42, 0x65, 0x40, 0x66, 0x0A, 0x9D,
- 0xB8, 0xC3, 0xAA, 0xBB, 0xCB, 0xDD, 0x9D, 0x0F
- },
- {
- 0x6C, 0x24, 0x34, 0xA1, 0xAF, 0xA1, 0x57, 0xAC,
- 0xCC, 0x34, 0xA5, 0xC4, 0x87, 0x2D, 0xFF, 0x69,
- 0xFE, 0x7F, 0x31, 0x96, 0xCB, 0x1A, 0x75, 0x0C,
- 0x54, 0x1D, 0x8B, 0x73, 0x92, 0x28, 0x88, 0xBA,
- 0xBE, 0x89, 0xB1, 0xC3, 0x82, 0x02, 0x21, 0x86,
- 0x20, 0xD8, 0x8D, 0x77, 0xDA, 0xD9, 0xDF, 0xBA,
- 0xB3, 0xFB, 0xF7, 0x40, 0xB2, 0xD1, 0xD8, 0xF3,
- 0x7E, 0xAD, 0x25, 0x8E, 0x2E, 0xF1, 0x06, 0x52
- },
- {
- 0x48, 0xB7, 0x26, 0x8A, 0xA4, 0x34, 0x2F, 0xAB,
- 0x02, 0x1D, 0x14, 0x72, 0xE9, 0x25, 0x7F, 0x76,
- 0x58, 0x5C, 0xC5, 0x68, 0x10, 0xC8, 0xF2, 0xA6,
- 0xE1, 0xD4, 0xA8, 0x94, 0x6B, 0x77, 0x71, 0x42,
- 0xD4, 0x4A, 0xE5, 0x13, 0xA8, 0x80, 0x9F, 0x2D,
- 0x6D, 0xC7, 0x26, 0x30, 0x5F, 0x79, 0x44, 0x60,
- 0x4D, 0x95, 0x2D, 0x4A, 0x9F, 0x08, 0x5C, 0x5C,
- 0x10, 0x50, 0xBA, 0xFD, 0xD2, 0x1D, 0x1E, 0x60
- },
- {
- 0xCE, 0xCF, 0xCE, 0x4B, 0x12, 0xC6, 0xCF, 0x53,
- 0xD1, 0xB1, 0xB2, 0xD4, 0x18, 0xA4, 0x93, 0xE3,
- 0xF4, 0x29, 0x17, 0x03, 0x21, 0xE8, 0x1A, 0xA2,
- 0x52, 0x63, 0xAA, 0xA7, 0x15, 0xD5, 0xCA, 0x38,
- 0x9F, 0x65, 0xC3, 0xAC, 0xF9, 0x9B, 0x18, 0x0E,
- 0x44, 0x6B, 0x50, 0xE6, 0x01, 0xFC, 0xBF, 0x44,
- 0x61, 0xD0, 0x42, 0x6A, 0x85, 0x92, 0xA0, 0x77,
- 0x42, 0x20, 0x18, 0x57, 0x12, 0x5F, 0x71, 0xEE
- },
- {
- 0x38, 0x5A, 0x75, 0x22, 0x42, 0xEB, 0x9E, 0xD5,
- 0x6B, 0x07, 0x4B, 0x70, 0x2C, 0x91, 0xE7, 0x5A,
- 0xEC, 0x0B, 0xE9, 0x06, 0x4B, 0xD9, 0xCF, 0x88,
- 0x03, 0x04, 0xC2, 0x13, 0x27, 0x0C, 0xB2, 0xEA,
- 0xE8, 0xE2, 0x1D, 0x9A, 0xE8, 0xC6, 0x08, 0x15,
- 0x19, 0xF7, 0x5D, 0xFA, 0xBB, 0x00, 0x3B, 0x24,
- 0x32, 0xB0, 0x47, 0x55, 0xB8, 0xC3, 0x2C, 0x97,
- 0xAC, 0x29, 0x14, 0xE8, 0xBF, 0x45, 0xB2, 0x34
- },
- {
- 0xD8, 0x9A, 0x12, 0x4A, 0x9B, 0x95, 0x8B, 0xA2,
- 0x3D, 0x09, 0x20, 0x7A, 0xCF, 0xA6, 0x2A, 0x33,
- 0xB8, 0x70, 0x89, 0xB2, 0x86, 0xE8, 0x43, 0x8B,
- 0xDC, 0x01, 0xE2, 0x33, 0xAB, 0x2A, 0x86, 0x30,
- 0xA1, 0xEE, 0xB6, 0xB2, 0xB9, 0xBA, 0x6B, 0x7D,
- 0x21, 0x00, 0x10, 0x77, 0x33, 0xDE, 0xAF, 0x4C,
- 0x20, 0x47, 0x8C, 0x26, 0xF2, 0x49, 0xC6, 0x89,
- 0xC5, 0x26, 0x84, 0x73, 0xE2, 0xE9, 0xFA, 0x60
- },
- {
- 0x43, 0xDE, 0x10, 0x92, 0xFF, 0x9F, 0xF5, 0x28,
- 0x20, 0x6C, 0x6F, 0xCF, 0x81, 0x32, 0x2E, 0xAD,
- 0x3D, 0x22, 0xEA, 0xA4, 0xC8, 0x54, 0x52, 0x15,
- 0x77, 0xDF, 0x33, 0x62, 0x47, 0x49, 0x5C, 0xE1,
- 0x72, 0xFC, 0x87, 0x39, 0x95, 0x30, 0x0B, 0x21,
- 0xB9, 0x46, 0x10, 0xC9, 0xD2, 0xF6, 0x33, 0xB5,
- 0x33, 0xBD, 0xE4, 0x56, 0x8C, 0xA0, 0x9C, 0x38,
- 0x0E, 0x84, 0x68, 0xFE, 0x6A, 0xD8, 0xD8, 0x1D
- },
- {
- 0x86, 0x8B, 0x60, 0x11, 0x99, 0xEF, 0x00, 0x0B,
- 0x70, 0x5C, 0xD6, 0x4D, 0x39, 0x30, 0x26, 0x2A,
- 0x5A, 0xB9, 0x10, 0xE3, 0x4E, 0x2D, 0x78, 0xE8,
- 0x58, 0x7B, 0x4E, 0x01, 0x0D, 0x37, 0x6D, 0xD4,
- 0xA0, 0x0D, 0xE4, 0x48, 0x67, 0xD0, 0xE9, 0x33,
- 0xEE, 0x39, 0xA1, 0xFA, 0x91, 0x47, 0xD4, 0x99,
- 0xD1, 0x84, 0xF3, 0xA9, 0xCF, 0x35, 0x4F, 0x2D,
- 0x3C, 0x51, 0x14, 0x6F, 0xF7, 0x15, 0x2D, 0x68
- },
- {
- 0x15, 0x17, 0xF8, 0xF0, 0x44, 0x2F, 0x0D, 0x50,
- 0xBB, 0xC0, 0xAA, 0xB6, 0x84, 0x6F, 0xDC, 0xE3,
- 0xB7, 0x0F, 0xAE, 0xA4, 0xBB, 0x51, 0x13, 0xAC,
- 0xB2, 0x3A, 0xBE, 0x10, 0x1D, 0x99, 0xA4, 0x0A,
- 0x1B, 0x76, 0xC1, 0xE8, 0xDC, 0x2E, 0xA1, 0x93,
- 0x62, 0x94, 0x82, 0x3A, 0xD8, 0x35, 0x4C, 0x11,
- 0xE2, 0xE9, 0x6C, 0x67, 0x12, 0xBE, 0x4C, 0xF7,
- 0x7C, 0x58, 0x3F, 0xD0, 0x6B, 0x5E, 0x5C, 0x55
- },
- {
- 0xAF, 0x4C, 0x6C, 0x67, 0xC5, 0xCA, 0x38, 0x38,
- 0x73, 0x48, 0xCA, 0x3E, 0xC2, 0xBE, 0xD7, 0xFB,
- 0xA8, 0xC2, 0xB3, 0xD2, 0x2D, 0xE1, 0x48, 0xD0,
- 0x8A, 0x61, 0x8C, 0x29, 0x70, 0x23, 0xFB, 0x7B,
- 0x6D, 0x2C, 0x15, 0x3D, 0x5E, 0xFC, 0xD1, 0x68,
- 0x89, 0x99, 0x91, 0x0B, 0x20, 0xE1, 0xEA, 0xC7,
- 0xC1, 0x00, 0xA2, 0xC5, 0xA6, 0xC1, 0xAC, 0xF5,
- 0xE9, 0x8F, 0x14, 0x3B, 0x41, 0xDC, 0x8A, 0x12
- },
- {
- 0xA2, 0xAD, 0x94, 0x24, 0x3B, 0x8E, 0xEA, 0x68,
- 0xF5, 0xFA, 0xDD, 0x69, 0x08, 0xAD, 0xB0, 0xDA,
- 0xCD, 0xAA, 0x6A, 0x6D, 0x24, 0xC2, 0x50, 0xD3,
- 0x39, 0x40, 0x3D, 0xBA, 0x82, 0x31, 0xBD, 0x51,
- 0xE8, 0x87, 0xCB, 0x5B, 0x1B, 0x7B, 0xDE, 0x27,
- 0x74, 0xC6, 0xB0, 0x8A, 0xCC, 0xE0, 0xF7, 0x49,
- 0x56, 0x48, 0xDA, 0x3B, 0xEB, 0xC7, 0xB1, 0xC2,
- 0x82, 0x15, 0x08, 0xC4, 0xD3, 0x82, 0xF7, 0x30
- },
- {
- 0x28, 0xF8, 0x8C, 0xDB, 0xE9, 0x03, 0xAD, 0x63,
- 0xA0, 0x23, 0x31, 0xDE, 0x1A, 0x32, 0xAF, 0x6D,
- 0xBB, 0xA8, 0x2D, 0x7F, 0xC0, 0x79, 0x87, 0x02,
- 0x72, 0x49, 0x33, 0xDA, 0x77, 0x38, 0x07, 0xBC,
- 0x80, 0x42, 0x78, 0x13, 0x47, 0x81, 0xF1, 0x26,
- 0x23, 0x32, 0x20, 0xE3, 0x07, 0x92, 0x81, 0x31,
- 0xB2, 0x47, 0x10, 0xB4, 0x67, 0x4E, 0xD7, 0x05,
- 0x11, 0x2F, 0x95, 0xD1, 0xAA, 0x37, 0xA2, 0xDC
- },
- {
- 0x5B, 0xB2, 0x92, 0x65, 0xE2, 0x46, 0xB8, 0x84,
- 0xFF, 0x40, 0x91, 0x4F, 0xFA, 0x93, 0xD9, 0xA1,
- 0x2E, 0xDC, 0x19, 0xEE, 0xE9, 0xCC, 0x8A, 0x83,
- 0x63, 0x1D, 0x68, 0xBD, 0x46, 0xAA, 0xD3, 0x35,
- 0x4B, 0xA6, 0x67, 0x4B, 0x91, 0x3F, 0x4F, 0x82,
- 0x3E, 0x79, 0x1F, 0x0C, 0xB1, 0x9E, 0xA6, 0xA6,
- 0x7C, 0x6E, 0x32, 0xE9, 0xBE, 0x0D, 0x0F, 0xF5,
- 0x76, 0x0F, 0x16, 0xDD, 0x75, 0xA8, 0x7B, 0x5D
- },
- {
- 0xBF, 0x3C, 0x06, 0xDC, 0x6D, 0x94, 0xE3, 0x85,
- 0x9A, 0x4D, 0xAA, 0x50, 0xEC, 0xA1, 0xAF, 0x53,
- 0x57, 0xE3, 0x45, 0x79, 0xE5, 0x99, 0xF8, 0x20,
- 0x49, 0xE1, 0xCC, 0xA7, 0xA7, 0xD4, 0xF3, 0x3F,
- 0xEA, 0x44, 0x3B, 0x44, 0x69, 0x1B, 0xD4, 0x36,
- 0x88, 0xF5, 0x55, 0x05, 0x31, 0xCF, 0x22, 0xB7,
- 0x12, 0x77, 0x89, 0x0B, 0xFF, 0xAE, 0x1E, 0xCE,
- 0x78, 0x3F, 0x56, 0x63, 0xA1, 0xC4, 0xD7, 0x1A
- },
- {
- 0xC9, 0x0D, 0xF5, 0x32, 0xF2, 0xF1, 0x49, 0x3A,
- 0x11, 0x55, 0xBE, 0x8C, 0x2A, 0x44, 0x00, 0x92,
- 0x20, 0x49, 0x97, 0x4E, 0x7D, 0x4F, 0x4B, 0x54,
- 0xF8, 0x20, 0xC2, 0x26, 0x9D, 0x3B, 0x16, 0x1B,
- 0x6E, 0x88, 0xEB, 0x77, 0x6B, 0x85, 0x9B, 0x89,
- 0xB8, 0x56, 0x7F, 0xBC, 0x55, 0x0C, 0x4F, 0x54,
- 0xAA, 0xD2, 0x7A, 0x16, 0x10, 0x65, 0x6D, 0x62,
- 0x5C, 0x32, 0x7F, 0x66, 0x5D, 0xCA, 0x70, 0x7C
- },
- {
- 0x3D, 0x39, 0xEE, 0xCC, 0x9E, 0x90, 0x42, 0x36,
- 0xDC, 0x85, 0x7B, 0xA4, 0x9D, 0x55, 0xD3, 0xBA,
- 0xD7, 0x65, 0x72, 0xA9, 0x1A, 0x75, 0x95, 0x03,
- 0x37, 0x6B, 0x77, 0x08, 0xD6, 0x2D, 0x5A, 0x78,
- 0x5C, 0x23, 0x06, 0x80, 0x59, 0xCF, 0x68, 0x89,
- 0x7F, 0x23, 0xEE, 0xC5, 0x07, 0x21, 0x9B, 0x0A,
- 0x02, 0xED, 0xA2, 0xD8, 0xBC, 0x94, 0xFA, 0x69,
- 0x89, 0xA5, 0x14, 0x82, 0x22, 0x03, 0xC8, 0xD1
- },
- {
- 0xE0, 0x8C, 0x54, 0xD9, 0x98, 0xF9, 0x2B, 0x7A,
- 0x54, 0xA2, 0x4C, 0xA6, 0xAE, 0xB1, 0x53, 0xA6,
- 0x4F, 0x9C, 0x9F, 0x1F, 0xC3, 0x36, 0x58, 0xB3,
- 0xED, 0xAC, 0x2C, 0x4B, 0xB5, 0x26, 0x31, 0x58,
- 0xDA, 0xDF, 0x00, 0xD3, 0x51, 0x9A, 0x11, 0x9A,
- 0x56, 0x14, 0xC7, 0xF3, 0x79, 0x40, 0xE5, 0x5D,
- 0x13, 0xCC, 0xE4, 0x66, 0xCB, 0x71, 0xA4, 0x07,
- 0xC3, 0x9F, 0xC5, 0x1E, 0x1E, 0xFE, 0x18, 0xDA
- },
- {
- 0x74, 0x76, 0x76, 0x07, 0x04, 0x1D, 0xD4, 0xB7,
- 0xC5, 0x6B, 0x18, 0x9E, 0xE8, 0xF2, 0x77, 0x31,
- 0xA5, 0x16, 0x72, 0x23, 0xEB, 0x7A, 0xF9, 0xB9,
- 0x39, 0xE1, 0x18, 0xF8, 0x7D, 0x80, 0xB4, 0x9E,
- 0xA8, 0xD0, 0xD0, 0x1F, 0x74, 0xF3, 0x98, 0xB1,
- 0x72, 0xA8, 0xAD, 0x0D, 0xBF, 0x99, 0x41, 0x4F,
- 0x08, 0xD2, 0xB7, 0xD8, 0xD7, 0x52, 0x16, 0xA1,
- 0x82, 0x25, 0x27, 0x3D, 0x8D, 0x7F, 0xD0, 0x5D
- },
- {
- 0xFE, 0xE8, 0x9A, 0x92, 0xCC, 0xF9, 0xF1, 0xEB,
- 0x08, 0x4A, 0xAB, 0xA9, 0x54, 0x97, 0xEF, 0x0F,
- 0x30, 0x13, 0x4C, 0x19, 0x1C, 0xF9, 0x0A, 0x49,
- 0xD2, 0x2C, 0x7D, 0x2F, 0x66, 0x14, 0x99, 0x3C,
- 0xBE, 0x1A, 0x4B, 0x65, 0x13, 0xED, 0xC1, 0x53,
- 0x86, 0x8A, 0x3D, 0x56, 0x2B, 0x5B, 0x02, 0x26,
- 0xBA, 0x8E, 0x1B, 0x0D, 0xCB, 0x69, 0xED, 0x45,
- 0xAF, 0x47, 0xCE, 0x4F, 0x86, 0xBA, 0x47, 0x4A
- },
- {
- 0xCD, 0xAE, 0x94, 0xB6, 0xD1, 0xD8, 0x35, 0xF6,
- 0xC7, 0x4C, 0x76, 0xEC, 0x3A, 0x2D, 0xB6, 0x5B,
- 0xBD, 0xFA, 0xE1, 0x9D, 0x7B, 0x05, 0x0D, 0xC9,
- 0x5D, 0x65, 0x87, 0x33, 0xB8, 0xB2, 0x2C, 0x6F,
- 0x9E, 0x0B, 0x63, 0xCC, 0x90, 0x5A, 0x29, 0xEA,
- 0x88, 0x78, 0xCA, 0x39, 0x45, 0x56, 0xB3, 0x67,
- 0x3C, 0x62, 0x79, 0x15, 0x46, 0xA9, 0xA1, 0xF0,
- 0xD1, 0x56, 0x5F, 0xAD, 0xC5, 0x35, 0x36, 0xC1
- },
- {
- 0xC7, 0x22, 0x8B, 0x6F, 0x00, 0x00, 0x17, 0xD2,
- 0xBE, 0x4B, 0xF2, 0xAE, 0x48, 0xAD, 0xDB, 0x78,
- 0x5E, 0x27, 0x35, 0xBF, 0x3C, 0x61, 0x4D, 0x3C,
- 0x34, 0x23, 0x1F, 0x1D, 0x0C, 0x88, 0x7D, 0x3A,
- 0x8E, 0x88, 0x88, 0x0B, 0x67, 0xAD, 0x3B, 0x2F,
- 0x65, 0x23, 0xDD, 0x67, 0x19, 0x34, 0x2C, 0xD4,
- 0xF0, 0x59, 0x35, 0xD2, 0xE5, 0x26, 0x7F, 0x36,
- 0x80, 0xE7, 0x73, 0xBD, 0x5E, 0xAD, 0xFE, 0x1D
- },
- {
- 0x12, 0x27, 0x44, 0xFE, 0x3F, 0xFF, 0x9A, 0x05,
- 0x5F, 0x0F, 0x3B, 0xDE, 0x01, 0xEB, 0x2F, 0x44,
- 0x6B, 0x0C, 0xDA, 0xF3, 0xAE, 0xD7, 0x2C, 0xAA,
- 0x29, 0x40, 0x74, 0x19, 0x20, 0x12, 0x0A, 0x96,
- 0x4F, 0xCF, 0xF8, 0x70, 0x99, 0xB0, 0x8E, 0xF3,
- 0x34, 0x96, 0xE3, 0x99, 0x03, 0x2A, 0x82, 0xDA,
- 0xAD, 0x4F, 0xED, 0x30, 0x31, 0x17, 0x2F, 0x77,
- 0x47, 0x92, 0x58, 0xFA, 0x39, 0xDB, 0x92, 0xFD
- },
- {
- 0x1F, 0xB4, 0xE3, 0x67, 0xEA, 0xB6, 0x42, 0xB7,
- 0x2E, 0x43, 0xAD, 0x4A, 0xBD, 0xFC, 0xAD, 0x74,
- 0x62, 0x0C, 0x3F, 0x6C, 0x63, 0xA8, 0x91, 0x31,
- 0x28, 0xD2, 0x22, 0x6E, 0xB1, 0x92, 0xF9, 0x99,
- 0x2E, 0xB9, 0xC8, 0xF7, 0x6A, 0xE2, 0x06, 0xD3,
- 0xF5, 0xDE, 0xC7, 0x26, 0xA5, 0xA6, 0x86, 0xB4,
- 0xAE, 0x37, 0xB5, 0x57, 0xAB, 0x57, 0xF9, 0x56,
- 0x48, 0x53, 0x34, 0xF7, 0x3D, 0xCE, 0x02, 0xE0
- },
- {
- 0x04, 0x25, 0xCA, 0xAA, 0x92, 0x3B, 0x47, 0xB3,
- 0x50, 0x45, 0xEB, 0x50, 0x82, 0x9C, 0x04, 0x8B,
- 0xC8, 0x90, 0x44, 0x4A, 0xFE, 0xEF, 0xC0, 0xAF,
- 0xC9, 0xD1, 0x87, 0x7B, 0x82, 0x1E, 0x04, 0x3C,
- 0x9C, 0x7B, 0x9D, 0x6D, 0xC3, 0x3F, 0xBB, 0xDF,
- 0xA5, 0x37, 0xC1, 0xEC, 0xE3, 0x11, 0x96, 0x5B,
- 0x2F, 0xEE, 0x89, 0x82, 0xBC, 0x46, 0xA2, 0xA7,
- 0x50, 0xBF, 0xC7, 0x1D, 0x79, 0xDB, 0xEA, 0x04
- },
- {
- 0x6B, 0x9D, 0x86, 0xF1, 0x5C, 0x09, 0x0A, 0x00,
- 0xFC, 0x3D, 0x90, 0x7F, 0x90, 0x6C, 0x5E, 0xB7,
- 0x92, 0x65, 0xE5, 0x8B, 0x88, 0xEB, 0x64, 0x29,
- 0x4B, 0x4C, 0xC4, 0xE2, 0xB8, 0x9B, 0x1A, 0x7C,
- 0x5E, 0xE3, 0x12, 0x7E, 0xD2, 0x1B, 0x45, 0x68,
- 0x62, 0xDE, 0x6B, 0x2A, 0xBD, 0xA5, 0x9E, 0xAA,
- 0xCF, 0x2D, 0xCB, 0xE9, 0x22, 0xCA, 0x75, 0x5E,
- 0x40, 0x73, 0x5B, 0xE8, 0x1D, 0x9C, 0x88, 0xA5
- },
- {
- 0x14, 0x6A, 0x18, 0x7A, 0x99, 0xE8, 0xA2, 0xD2,
- 0x33, 0xE0, 0xEB, 0x37, 0x3D, 0x43, 0x7B, 0x02,
- 0xBF, 0xA8, 0xD6, 0x51, 0x5B, 0x3C, 0xA1, 0xDE,
- 0x48, 0xA6, 0xB6, 0xAC, 0xF7, 0x43, 0x7E, 0xB7,
- 0xE7, 0xAC, 0x3F, 0x2D, 0x19, 0xEF, 0x3B, 0xB9,
- 0xB8, 0x33, 0xCC, 0x57, 0x61, 0xDB, 0xA2, 0x2D,
- 0x1A, 0xD0, 0x60, 0xBE, 0x76, 0xCD, 0xCB, 0x81,
- 0x2D, 0x64, 0xD5, 0x78, 0xE9, 0x89, 0xA5, 0xA4
- },
- {
- 0x25, 0x75, 0x4C, 0xA6, 0x66, 0x9C, 0x48, 0x70,
- 0x84, 0x03, 0x88, 0xEA, 0x64, 0xE9, 0x5B, 0xD2,
- 0xE0, 0x81, 0x0D, 0x36, 0x3C, 0x4C, 0xF6, 0xA1,
- 0x6E, 0xA1, 0xBD, 0x06, 0x68, 0x6A, 0x93, 0xC8,
- 0xA1, 0x25, 0xF2, 0x30, 0x22, 0x9D, 0x94, 0x84,
- 0x85, 0xE1, 0xA8, 0x2D, 0xE4, 0x82, 0x00, 0x35,
- 0x8F, 0x3E, 0x02, 0xB5, 0x05, 0xDA, 0xBC, 0x4F,
- 0x13, 0x9C, 0x03, 0x79, 0xDC, 0x2B, 0x30, 0x80
- },
- {
- 0x0E, 0x26, 0xCB, 0xC7, 0x8D, 0xC7, 0x54, 0xEC,
- 0xA0, 0x6C, 0xF8, 0xCB, 0x31, 0xFC, 0xBA, 0xBB,
- 0x18, 0x88, 0x92, 0xC1, 0x04, 0x50, 0x89, 0x05,
- 0x49, 0xB2, 0xD4, 0x03, 0xA2, 0xA3, 0xC4, 0x57,
- 0x70, 0x01, 0xF7, 0x4A, 0x76, 0xBD, 0x38, 0x99,
- 0x0D, 0x75, 0x5B, 0xAE, 0x05, 0x26, 0x64, 0x83,
- 0x29, 0xF6, 0x35, 0x45, 0xED, 0x16, 0x99, 0x5C,
- 0xB1, 0xE6, 0x34, 0x3F, 0x18, 0x9F, 0x8E, 0x6F
- },
- {
- 0x58, 0xE7, 0x98, 0x0B, 0x8B, 0x1A, 0x0B, 0x88,
- 0xDA, 0x9D, 0xA8, 0x64, 0x0F, 0x2B, 0x96, 0xE3,
- 0xE0, 0x48, 0x36, 0x61, 0x30, 0xC2, 0x66, 0x21,
- 0x7D, 0xDC, 0x79, 0x53, 0x50, 0x8F, 0x4A, 0x40,
- 0xD1, 0x67, 0x4D, 0xAB, 0xD3, 0x92, 0x89, 0xE3,
- 0xF1, 0x0C, 0x61, 0x19, 0x68, 0xCC, 0xD1, 0xE9,
- 0xCC, 0xC1, 0x8C, 0xAD, 0xC7, 0x77, 0x4A, 0x99,
- 0x7D, 0xD1, 0xFA, 0x94, 0xE8, 0x35, 0x47, 0x07
- },
- {
- 0x69, 0x6F, 0xB8, 0x47, 0x63, 0xE0, 0x23, 0x58,
- 0x4B, 0x35, 0x90, 0x7A, 0x8B, 0x8A, 0xAA, 0x9E,
- 0x0E, 0x78, 0x6F, 0x2C, 0xA5, 0x91, 0x45, 0x41,
- 0x91, 0x58, 0x48, 0xFB, 0x6D, 0xDA, 0xB8, 0xD3,
- 0xD2, 0xEA, 0xB6, 0x00, 0xC1, 0x38, 0xCE, 0x67,
- 0x17, 0xB0, 0xC7, 0x02, 0x59, 0xD3, 0x19, 0x3E,
- 0xA1, 0x56, 0x95, 0xC8, 0x50, 0x53, 0x7F, 0x2C,
- 0x70, 0x6C, 0xA4, 0xAF, 0x15, 0x8E, 0x95, 0x7E
- },
- {
- 0x23, 0xDE, 0x6E, 0x73, 0x07, 0x9C, 0x8C, 0x20,
- 0x47, 0xA7, 0x84, 0x6A, 0x83, 0xCC, 0xAC, 0xAB,
- 0xD3, 0x71, 0x16, 0x3B, 0x7B, 0x6D, 0x54, 0xEB,
- 0x03, 0x2B, 0xC4, 0x9B, 0x66, 0x97, 0x42, 0xBE,
- 0x71, 0x7B, 0x99, 0xDA, 0x12, 0xC6, 0x46, 0xAD,
- 0x52, 0x57, 0x06, 0xF2, 0x22, 0xE1, 0xDF, 0x4A,
- 0x91, 0xDD, 0x0C, 0xC6, 0x4D, 0xF1, 0x82, 0xDA,
- 0x00, 0x73, 0x1D, 0x43, 0x9C, 0x46, 0xF8, 0xD2
- },
- {
- 0xBB, 0x74, 0xF3, 0x6A, 0x9D, 0xB6, 0x96, 0xC9,
- 0x33, 0x35, 0xE6, 0xC4, 0x6A, 0xAB, 0x58, 0xDB,
- 0x10, 0xCB, 0x07, 0xEA, 0x4F, 0x1B, 0x71, 0x93,
- 0x63, 0x05, 0x22, 0x83, 0x90, 0x95, 0x94, 0x78,
- 0xF8, 0x73, 0x4E, 0x21, 0x54, 0x90, 0xE9, 0xAE,
- 0x2A, 0x3E, 0xC8, 0xF7, 0xF7, 0x67, 0x33, 0xAE,
- 0x3F, 0x8B, 0x9A, 0x3F, 0xD7, 0xC4, 0x06, 0xC6,
- 0xCA, 0xC7, 0x09, 0x97, 0x5C, 0x40, 0xF8, 0x56
- },
- {
- 0xEC, 0x63, 0x04, 0xD3, 0x8E, 0x23, 0x2C, 0x09,
- 0x6A, 0xB5, 0x86, 0xCA, 0xDF, 0x27, 0x02, 0x6D,
- 0xC5, 0xE5, 0x32, 0x17, 0xD0, 0xE8, 0xB0, 0xC6,
- 0x0A, 0xDA, 0xAE, 0x22, 0xF4, 0xE8, 0xC2, 0x2D,
- 0x30, 0xBC, 0x51, 0x77, 0xF1, 0xC8, 0x3A, 0xCD,
- 0x92, 0x5E, 0x02, 0xA2, 0xDA, 0x89, 0x59, 0x5F,
- 0xC1, 0x06, 0x09, 0x0E, 0x2E, 0x53, 0xED, 0xB3,
- 0x1C, 0xDB, 0x76, 0xFF, 0x37, 0xEB, 0x61, 0x80
- },
- {
- 0x92, 0xF9, 0xFC, 0x6B, 0xC5, 0x9A, 0x54, 0x3F,
- 0x0D, 0xC9, 0xA1, 0x79, 0x8F, 0xB1, 0xE5, 0xD5,
- 0x23, 0x47, 0x4E, 0x48, 0xFF, 0x3E, 0x29, 0x49,
- 0x7F, 0x72, 0x80, 0xD1, 0xC4, 0x08, 0xC8, 0x66,
- 0x33, 0x48, 0xFE, 0x2A, 0xF7, 0x8F, 0x6C, 0x4E,
- 0x5E, 0xF5, 0xC0, 0xA0, 0x17, 0xF3, 0xD3, 0xF2,
- 0x15, 0xEC, 0xDD, 0x7A, 0x40, 0x0A, 0xC5, 0x77,
- 0x3B, 0x9E, 0x25, 0x60, 0x68, 0x84, 0x5A, 0x92
- },
- {
- 0x4A, 0x25, 0xB5, 0x62, 0xF2, 0xFA, 0x01, 0xDD,
- 0xEE, 0x7E, 0xA2, 0xE9, 0xFB, 0xF5, 0x2F, 0x8C,
- 0x75, 0x6D, 0x28, 0xDB, 0x4A, 0x8B, 0xF7, 0x0E,
- 0x74, 0x0E, 0x90, 0x27, 0x42, 0x6E, 0x51, 0x63,
- 0x9D, 0xF8, 0x78, 0x8D, 0x13, 0x38, 0x56, 0x85,
- 0x8D, 0x01, 0xFD, 0xDB, 0xDD, 0x5B, 0x98, 0x79,
- 0x44, 0xC3, 0x00, 0xDC, 0x7F, 0x82, 0x41, 0xFB,
- 0xCE, 0xFA, 0x4F, 0x12, 0x94, 0x8A, 0xFE, 0xAE
- },
- {
- 0x34, 0x21, 0x2D, 0xD9, 0xF0, 0x65, 0x1F, 0x81,
- 0x80, 0x9A, 0x14, 0xED, 0xBC, 0xF7, 0xF3, 0xAC,
- 0xDE, 0xDE, 0x78, 0x72, 0xC7, 0xA4, 0x84, 0x7B,
- 0xEA, 0x9F, 0x7A, 0xB7, 0x59, 0x73, 0x82, 0x47,
- 0x7A, 0x4C, 0xB8, 0x47, 0x9A, 0x27, 0x63, 0x21,
- 0x23, 0x5E, 0x90, 0x21, 0x57, 0x94, 0x46, 0xA4,
- 0x38, 0x8A, 0x99, 0xE5, 0x60, 0xA3, 0x90, 0x7A,
- 0xEE, 0xF2, 0xB4, 0x38, 0xFE, 0x6B, 0x90, 0xC4
- },
- {
- 0xD6, 0x2C, 0xF7, 0xAB, 0xBC, 0x7D, 0x7B, 0xCD,
- 0x5B, 0xEB, 0x1E, 0xE4, 0x8C, 0x43, 0xB8, 0x04,
- 0xFD, 0x0D, 0xB4, 0x55, 0xE7, 0xF4, 0xFE, 0xBB,
- 0xCF, 0xF1, 0x4B, 0x05, 0xBE, 0x90, 0x47, 0xE2,
- 0x7E, 0x51, 0x8D, 0x6D, 0x3A, 0x6A, 0xDA, 0x4D,
- 0x58, 0x63, 0xB7, 0xEC, 0x7F, 0x84, 0x92, 0x45,
- 0x89, 0x40, 0xAC, 0x6B, 0xDD, 0xB5, 0x06, 0x59,
- 0x2C, 0xCB, 0xC8, 0x96, 0xAF, 0xBB, 0x77, 0xA3
- },
- {
- 0x33, 0xA3, 0xA2, 0x63, 0x6F, 0x91, 0x98, 0xD3,
- 0x7A, 0x5F, 0xF1, 0xBF, 0xF9, 0xEB, 0x10, 0x02,
- 0x4B, 0x28, 0x46, 0x80, 0x39, 0xF4, 0x91, 0x40,
- 0x2D, 0x39, 0xB7, 0x08, 0xC5, 0x5D, 0x27, 0xE5,
- 0xE8, 0xDF, 0x5E, 0x3E, 0x19, 0x49, 0x95, 0x82,
- 0x35, 0xCA, 0xD9, 0x80, 0x74, 0x20, 0x96, 0xF2,
- 0x77, 0x9A, 0x1D, 0x71, 0xDA, 0xD5, 0x8F, 0xAF,
- 0xA3, 0xCD, 0x02, 0xCB, 0x5E, 0xAA, 0x98, 0xC5
- },
- {
- 0xB7, 0xA3, 0x89, 0x90, 0xE6, 0xF4, 0x56, 0x4A,
- 0xA3, 0xD9, 0x3A, 0x79, 0x37, 0x10, 0x0C, 0x29,
- 0xF9, 0x40, 0xAF, 0xF7, 0xCB, 0x20, 0x86, 0x5A,
- 0x1C, 0x21, 0x89, 0x81, 0xA5, 0x42, 0x04, 0x86,
- 0x08, 0x17, 0x81, 0xF8, 0xD5, 0x0C, 0x86, 0x62,
- 0x5C, 0xC5, 0xD7, 0x6D, 0x0F, 0x5C, 0xCC, 0x4E,
- 0xB6, 0x5D, 0x43, 0x66, 0x09, 0x62, 0x4F, 0x21,
- 0xD0, 0x53, 0x39, 0xAB, 0x0C, 0xF7, 0x9F, 0x4C
- },
- {
- 0x9D, 0x66, 0x5A, 0x3F, 0xDD, 0x10, 0x45, 0x9E,
- 0x77, 0xF0, 0x3A, 0xC8, 0xC0, 0xE2, 0x39, 0x01,
- 0x94, 0x89, 0x69, 0x3C, 0xC9, 0x31, 0x5A, 0xA3,
- 0xFF, 0x11, 0x29, 0x11, 0xD2, 0xAC, 0xF0, 0xB7,
- 0xD2, 0x76, 0xAC, 0x76, 0x9B, 0xED, 0xFD, 0x85,
- 0x2D, 0x28, 0x89, 0xDD, 0x12, 0xDB, 0x91, 0x39,
- 0x8B, 0x01, 0xC4, 0xF4, 0xA5, 0xDA, 0x27, 0x80,
- 0xB1, 0xDE, 0xFE, 0x0D, 0x95, 0xB6, 0x32, 0x70
- },
- {
- 0x70, 0xFB, 0x9E, 0xFD, 0x5B, 0xCA, 0x7F, 0x19,
- 0xB6, 0xE3, 0x1D, 0x64, 0x0D, 0xCF, 0x88, 0xD7,
- 0x7E, 0x76, 0x8A, 0xE2, 0x27, 0xEC, 0xB3, 0xFD,
- 0x6B, 0x47, 0x13, 0x78, 0x94, 0xF5, 0x49, 0xBF,
- 0x1C, 0xF0, 0x6E, 0x5D, 0xB4, 0x54, 0x60, 0x44,
- 0xDD, 0x9F, 0x46, 0x5C, 0x9C, 0x85, 0xF7, 0x28,
- 0x4F, 0xE5, 0x4D, 0x2B, 0x71, 0x52, 0x69, 0x9B,
- 0xE4, 0xBD, 0x55, 0x5A, 0x90, 0x9A, 0x88, 0xA9
- },
- {
- 0x7A, 0xFD, 0xB0, 0x19, 0x30, 0x87, 0xE0, 0xC9,
- 0xF8, 0xB4, 0xDD, 0x8B, 0x48, 0xD9, 0xF2, 0x0A,
- 0xCE, 0x27, 0x13, 0xAF, 0xC7, 0x1B, 0xCC, 0x93,
- 0x82, 0xB5, 0x42, 0x90, 0xAE, 0xBF, 0xFE, 0xB2,
- 0xD1, 0x38, 0xF4, 0xDC, 0xF0, 0x28, 0xF9, 0xC4,
- 0x3C, 0xC1, 0x80, 0x89, 0x84, 0x77, 0xA3, 0x9E,
- 0x3F, 0x53, 0xA8, 0xD1, 0xBF, 0x67, 0xCE, 0xB6,
- 0x08, 0x26, 0x1F, 0xAE, 0x6D, 0xDB, 0x1A, 0xBC
- },
- {
- 0x05, 0x99, 0x0D, 0x7D, 0x7D, 0xF1, 0xD4, 0x84,
- 0xF5, 0xB1, 0xCA, 0xE9, 0xEE, 0x5D, 0xFC, 0xB4,
- 0x3F, 0x2C, 0xBE, 0x18, 0x6C, 0x1A, 0x5B, 0x18,
- 0x1A, 0x37, 0x31, 0xD4, 0xB1, 0x54, 0x8E, 0xBF,
- 0xF5, 0xBF, 0x61, 0xCB, 0x0F, 0x6D, 0x9F, 0xC2,
- 0x30, 0xF2, 0x5E, 0x86, 0x78, 0xB7, 0x99, 0xE0,
- 0xE8, 0x30, 0x26, 0xA0, 0x86, 0x6B, 0xF0, 0xAC,
- 0xAB, 0x08, 0x9E, 0x10, 0x2E, 0x67, 0xAB, 0x6B
- },
- {
- 0x1A, 0xF7, 0xA5, 0xCE, 0x58, 0x7C, 0x8D, 0x87,
- 0xC7, 0xB7, 0x9F, 0xA3, 0xE7, 0x23, 0xD7, 0x4C,
- 0xE0, 0x26, 0xB5, 0x28, 0x67, 0x52, 0xFD, 0x0C,
- 0x37, 0x42, 0xC6, 0xF0, 0x41, 0x8E, 0xD7, 0x85,
- 0x99, 0x0D, 0x21, 0xF2, 0x8D, 0xA8, 0x39, 0xCE,
- 0x82, 0x12, 0xED, 0x55, 0x0C, 0x37, 0x3E, 0x6D,
- 0x3A, 0x75, 0xD5, 0x5C, 0x31, 0x77, 0x04, 0x41,
- 0xEE, 0xAF, 0xF2, 0xD5, 0x0F, 0x6E, 0x61, 0xB6
- },
- {
- 0xDD, 0xEE, 0x0C, 0x76, 0xC9, 0xBD, 0xD3, 0x2D,
- 0x70, 0x49, 0x35, 0x4C, 0xFC, 0x85, 0xDC, 0x68,
- 0x67, 0xE2, 0x49, 0x2E, 0x47, 0xFE, 0xB0, 0x8E,
- 0x39, 0x83, 0xD0, 0xB6, 0x78, 0x84, 0x5D, 0x7E,
- 0xC6, 0xC9, 0x79, 0x3C, 0x33, 0x26, 0xBF, 0xDC,
- 0x1E, 0x11, 0x32, 0x76, 0xD1, 0x77, 0xFE, 0x38,
- 0x82, 0x52, 0x04, 0xDD, 0x00, 0x07, 0x39, 0x89,
- 0xC0, 0x81, 0xCC, 0x3B, 0x71, 0xC6, 0x8D, 0x5F
- },
- {
- 0xDE, 0x07, 0x06, 0x48, 0xB3, 0x7C, 0x47, 0xDC,
- 0x9F, 0x2F, 0x6D, 0x2A, 0xB2, 0x07, 0x73, 0xCD,
- 0x82, 0xFA, 0x57, 0x25, 0xA6, 0x90, 0x0E, 0xB7,
- 0x1C, 0xDD, 0xB0, 0xC9, 0xF3, 0x9B, 0x31, 0xDF,
- 0x6D, 0x07, 0x73, 0x24, 0x6E, 0x8E, 0xF9, 0x03,
- 0x49, 0x67, 0x75, 0x2D, 0xB7, 0xED, 0x22, 0x73,
- 0x3F, 0x43, 0x79, 0x94, 0x8D, 0xC3, 0x96, 0xDC,
- 0x35, 0xAD, 0xBB, 0xE9, 0xF6, 0x53, 0x77, 0x40
- },
- {
- 0xA6, 0x45, 0x6F, 0xBC, 0xFF, 0x9E, 0x3D, 0x5B,
- 0x11, 0x6A, 0x0E, 0x33, 0x1A, 0x1F, 0x97, 0x4F,
- 0x07, 0x0E, 0x95, 0x56, 0x09, 0x78, 0x1F, 0xA5,
- 0x99, 0xD6, 0x08, 0xA3, 0x1D, 0xA7, 0x6A, 0xD8,
- 0xAB, 0xFE, 0x34, 0x66, 0x17, 0xC2, 0x57, 0x86,
- 0x51, 0x3B, 0x2C, 0x44, 0xBF, 0xE2, 0xCB, 0x45,
- 0x7C, 0x43, 0xFA, 0x6F, 0x45, 0x36, 0x1C, 0xA9,
- 0xC6, 0x34, 0x13, 0x11, 0xB7, 0xDD, 0xFB, 0xD5
- },
- {
- 0x5C, 0x95, 0xD3, 0x82, 0x02, 0x18, 0x91, 0x04,
- 0x8B, 0x5E, 0xC8, 0x1C, 0xC8, 0x8E, 0x66, 0xB1,
- 0xB4, 0xD8, 0x0A, 0x00, 0xB5, 0xEE, 0x66, 0xB3,
- 0xC0, 0x30, 0x77, 0x49, 0xE6, 0xF2, 0x4D, 0x17,
- 0x0D, 0x23, 0xFA, 0xCC, 0x8E, 0xB2, 0x53, 0xB3,
- 0x56, 0x2B, 0xF8, 0xA4, 0x5C, 0x37, 0x99, 0x0C,
- 0xD2, 0xD3, 0xE4, 0x43, 0xB1, 0x8C, 0x68, 0xBB,
- 0xCC, 0x6C, 0x83, 0x1D, 0xFD, 0xE2, 0xF8, 0xE5
- },
- {
- 0xE3, 0x74, 0x00, 0xDB, 0xD9, 0x21, 0x0F, 0x31,
- 0x37, 0xAC, 0xAF, 0x49, 0x24, 0x2F, 0xA1, 0x23,
- 0xA0, 0x52, 0x95, 0x8A, 0x4C, 0x0D, 0x98, 0x90,
- 0x62, 0x47, 0xD5, 0x35, 0xA3, 0x51, 0xFD, 0x52,
- 0x29, 0x6E, 0x70, 0x10, 0x32, 0x5B, 0xDA, 0x84,
- 0x1F, 0xA2, 0xAA, 0xB4, 0x47, 0x63, 0x76, 0x3C,
- 0x55, 0x04, 0xD7, 0xB3, 0x0C, 0x6D, 0x79, 0xFC,
- 0x1D, 0xC8, 0xCF, 0x10, 0x24, 0x46, 0x6D, 0xB0
- },
- {
- 0x52, 0x73, 0xA3, 0xA1, 0x3C, 0xF0, 0xEC, 0x72,
- 0x00, 0x44, 0x2C, 0xBD, 0x7B, 0x37, 0x44, 0x66,
- 0xA7, 0x19, 0x0D, 0xDC, 0xA1, 0x31, 0xD9, 0x63,
- 0xF8, 0xF8, 0x39, 0x65, 0xAE, 0xD3, 0xDD, 0x86,
- 0xE9, 0xD4, 0x5A, 0xB4, 0x89, 0xB9, 0xC5, 0x62,
- 0x47, 0xC9, 0xF2, 0xAA, 0x69, 0xFD, 0x7E, 0x31,
- 0x87, 0xB8, 0xFA, 0x0D, 0xAC, 0x77, 0xC4, 0x7C,
- 0xB2, 0x95, 0xBA, 0x62, 0x96, 0x78, 0x43, 0x94
- },
- {
- 0x2A, 0xDB, 0x93, 0x49, 0xA9, 0xEC, 0x37, 0xFF,
- 0x49, 0x62, 0xF4, 0x21, 0x7E, 0x80, 0xEB, 0xDC,
- 0xD3, 0x60, 0x96, 0x7B, 0x51, 0x3D, 0x12, 0x02,
- 0xD9, 0x98, 0x28, 0x31, 0x15, 0x5D, 0x2F, 0x43,
- 0xEB, 0x9A, 0xDD, 0x63, 0xB5, 0xEC, 0x10, 0xD3,
- 0xD0, 0x43, 0x0D, 0xC9, 0xCF, 0x76, 0x48, 0x11,
- 0x7F, 0xC6, 0x0B, 0xAB, 0xBF, 0x8E, 0xBF, 0x19,
- 0xFA, 0xCE, 0xE5, 0x50, 0x45, 0x5B, 0x60, 0xC9
- },
- {
- 0xAC, 0xAA, 0xDA, 0x3E, 0x47, 0x37, 0xC6, 0x63,
- 0xEB, 0xF0, 0x3C, 0x02, 0x49, 0xCC, 0xA6, 0xF3,
- 0x17, 0x9A, 0x03, 0x84, 0xEA, 0x2A, 0xB1, 0x35,
- 0xD4, 0xD7, 0xA2, 0xBB, 0x8A, 0x2F, 0x40, 0x53,
- 0x9C, 0xDC, 0xE8, 0xA3, 0x76, 0x0F, 0xD1, 0x3D,
- 0xEE, 0xEC, 0xD1, 0x60, 0x61, 0x7F, 0x72, 0xDE,
- 0x63, 0x75, 0x4E, 0x21, 0x57, 0xCA, 0xDC, 0xF0,
- 0x67, 0x32, 0x9C, 0x2A, 0x51, 0x98, 0xF8, 0xE0
- },
- {
- 0xEF, 0x15, 0xE6, 0xDB, 0x96, 0xE6, 0xD0, 0xC1,
- 0x8C, 0x70, 0xAD, 0xC3, 0xCD, 0xB3, 0x2B, 0x28,
- 0x67, 0x74, 0x02, 0xE8, 0xEA, 0x44, 0x11, 0xEA,
- 0x2F, 0x34, 0x68, 0xED, 0x93, 0x82, 0xE1, 0x9B,
- 0xFE, 0xCA, 0xF5, 0xAC, 0xB8, 0x28, 0xA5, 0x2B,
- 0xE1, 0x6B, 0x98, 0x1E, 0x48, 0x7E, 0x5B, 0xB4,
- 0xA1, 0x43, 0x08, 0x65, 0x35, 0x8E, 0x97, 0x9F,
- 0xB1, 0x07, 0x1F, 0xB9, 0x51, 0x14, 0xFF, 0xDD
- },
- {
- 0x05, 0x7E, 0xAB, 0x8F, 0xA6, 0x1C, 0x23, 0x09,
- 0x67, 0xD9, 0x5D, 0xFB, 0x75, 0x45, 0x57, 0x0E,
- 0x34, 0x1A, 0xE3, 0xC6, 0x73, 0x7C, 0x7D, 0xB2,
- 0xA2, 0x27, 0xD9, 0x0F, 0xF3, 0x15, 0xD0, 0x98,
- 0xD4, 0x76, 0xF7, 0x15, 0x77, 0x9E, 0x67, 0x72,
- 0xB4, 0xED, 0x37, 0x54, 0x82, 0x66, 0xE6, 0x59,
- 0x8C, 0x6F, 0x09, 0x69, 0x13, 0xC2, 0xFD, 0xD8,
- 0xD6, 0xE4, 0x4F, 0xE2, 0xB5, 0x4D, 0x97, 0x80
- },
- {
- 0xED, 0xE6, 0x8D, 0x1B, 0x13, 0xE7, 0xEF, 0x78,
- 0xD9, 0xC4, 0xEE, 0x10, 0xEC, 0xEB, 0x1D, 0x2A,
- 0xEE, 0xC3, 0xB8, 0x15, 0x7F, 0xDB, 0x91, 0x41,
- 0x8C, 0x22, 0x19, 0xF6, 0x41, 0x49, 0x74, 0x70,
- 0x17, 0xAC, 0xA7, 0xD4, 0x65, 0xB8, 0xB4, 0x7F,
- 0xFA, 0x53, 0x64, 0x4B, 0x8B, 0xC6, 0xDA, 0x12,
- 0xDD, 0x45, 0xD1, 0x05, 0x5E, 0x47, 0xB4, 0xD8,
- 0x39, 0x0E, 0xB2, 0xBD, 0x60, 0x2B, 0xA0, 0x30
- },
- {
- 0x27, 0xF8, 0x56, 0xE6, 0x3E, 0xB9, 0x4D, 0x08,
- 0xFB, 0xBE, 0x50, 0x22, 0xB0, 0xED, 0xDB, 0xC7,
- 0xD8, 0xDB, 0x86, 0x5E, 0xF4, 0xFE, 0xC2, 0x05,
- 0x86, 0xDF, 0x3D, 0xD9, 0x02, 0xA0, 0x5B, 0x26,
- 0x35, 0x9E, 0x26, 0x7C, 0x78, 0x8D, 0x7C, 0x88,
- 0x03, 0x2E, 0x76, 0x6B, 0x11, 0x87, 0x40, 0x20,
- 0x0F, 0x49, 0xCB, 0x4D, 0x6E, 0xDB, 0x15, 0x61,
- 0xB2, 0xDE, 0x7D, 0xC6, 0x5E, 0xE6, 0x42, 0x3B
- },
- {
- 0xE9, 0xE9, 0x8D, 0x6D, 0xE0, 0xEF, 0x53, 0xFD,
- 0x24, 0x27, 0x66, 0x1E, 0x1A, 0xCF, 0x10, 0x3D,
- 0x4C, 0xAA, 0x4D, 0xC6, 0x10, 0x03, 0x62, 0x09,
- 0xEC, 0x99, 0x74, 0x19, 0xC1, 0x20, 0x63, 0x1C,
- 0x2C, 0x09, 0x4A, 0x8E, 0xE7, 0x82, 0x2D, 0x43,
- 0xF8, 0x77, 0x80, 0x11, 0xC6, 0x03, 0x11, 0x1F,
- 0x26, 0x28, 0xF8, 0x97, 0xC9, 0xB4, 0x31, 0x31,
- 0x54, 0x77, 0x75, 0x6B, 0x03, 0x2E, 0x1F, 0x8D
- },
- {
- 0x52, 0xEB, 0x1E, 0x6C, 0x8A, 0x54, 0x49, 0x2C,
- 0xA7, 0x60, 0xB5, 0x6C, 0xA8, 0x7D, 0xA3, 0xE1,
- 0xA9, 0xA6, 0xD8, 0xA4, 0x21, 0x92, 0x19, 0x35,
- 0x1D, 0x18, 0x71, 0x5A, 0x9A, 0x2C, 0x26, 0x70,
- 0x8B, 0xB7, 0x12, 0xCD, 0xAC, 0x04, 0x34, 0x48,
- 0x2E, 0x55, 0x1C, 0xB0, 0x9E, 0x3F, 0x16, 0x33,
- 0x8D, 0xE2, 0x9B, 0xE2, 0xC6, 0x67, 0x40, 0xC3,
- 0x44, 0xDF, 0x54, 0x88, 0xC5, 0xC2, 0xBB, 0x26
- },
- {
- 0x47, 0x3F, 0xA6, 0xC5, 0x1A, 0x48, 0x10, 0x5F,
- 0x72, 0x1C, 0x5C, 0xB8, 0xDB, 0xA6, 0x1C, 0x64,
- 0xA1, 0xE3, 0xDD, 0xCC, 0xC3, 0x25, 0x0E, 0x68,
- 0x22, 0x62, 0xF2, 0x12, 0xC0, 0x1A, 0xB4, 0x87,
- 0x4A, 0xFF, 0x68, 0x8F, 0xEA, 0x96, 0x37, 0x73,
- 0x9E, 0x2A, 0x25, 0xD2, 0xEE, 0x88, 0xDB, 0xDC,
- 0xC4, 0xF0, 0x4D, 0x01, 0x47, 0x9B, 0x30, 0x17,
- 0x17, 0x53, 0x3A, 0x64, 0x32, 0xB8, 0x50, 0xCD
- },
- {
- 0x6B, 0x76, 0x60, 0xD4, 0x10, 0xEA, 0xE5, 0xF3,
- 0x5A, 0xD0, 0xAE, 0x85, 0xE6, 0x3D, 0xA4, 0x53,
- 0xEB, 0xB0, 0x57, 0xE4, 0x3F, 0x42, 0xE8, 0x42,
- 0xCB, 0xF6, 0x25, 0x0D, 0xA6, 0x78, 0x66, 0xB4,
- 0x24, 0x0D, 0x57, 0xC8, 0x3B, 0x77, 0x1B, 0x0F,
- 0x70, 0x66, 0x3E, 0x17, 0xFB, 0xD9, 0x08, 0x7F,
- 0x76, 0xB4, 0xCE, 0x6B, 0xCD, 0x0B, 0x50, 0x2E,
- 0x33, 0x74, 0xB1, 0x50, 0x9B, 0xBA, 0x55, 0xA8
- },
- {
- 0xA4, 0xD0, 0x8A, 0xCA, 0x7A, 0x9E, 0xA6, 0x43,
- 0x99, 0x99, 0xEA, 0x21, 0xE4, 0xCF, 0xE9, 0x86,
- 0x9B, 0xB9, 0x0E, 0x3A, 0x01, 0x48, 0x71, 0xAD,
- 0x88, 0xED, 0x3A, 0x97, 0xAA, 0x89, 0x15, 0x95,
- 0x1C, 0x3F, 0xD0, 0xB3, 0x93, 0x3A, 0x50, 0x85,
- 0x88, 0x93, 0x8A, 0xF7, 0x54, 0x49, 0x44, 0xEF,
- 0x43, 0xC4, 0x40, 0xAA, 0x8F, 0xF1, 0xE5, 0xA8,
- 0x18, 0xA4, 0x66, 0x43, 0x5D, 0xE7, 0x0F, 0xA8
- },
- {
- 0x85, 0xE0, 0xE9, 0xB5, 0x0D, 0x2D, 0xB0, 0x22,
- 0xC2, 0x39, 0xD7, 0x23, 0x2A, 0xE4, 0x7C, 0x02,
- 0x59, 0x22, 0xE4, 0xF0, 0x7E, 0x2A, 0xFC, 0x65,
- 0x6C, 0xDC, 0x55, 0x53, 0xA2, 0x7D, 0x95, 0xBF,
- 0xA5, 0x8A, 0x57, 0x4D, 0x4E, 0xC3, 0xA9, 0x73,
- 0x28, 0x1A, 0x8F, 0x4E, 0x46, 0xA7, 0x1A, 0xB0,
- 0x34, 0x1C, 0x25, 0x77, 0x28, 0x74, 0x63, 0xE2,
- 0x51, 0x04, 0x4D, 0xB2, 0x39, 0x8D, 0x55, 0xE2
- },
- {
- 0x81, 0xA0, 0xD0, 0x24, 0x42, 0x90, 0x51, 0x91,
- 0x16, 0x33, 0x70, 0xAE, 0x29, 0xC7, 0xF8, 0x9C,
- 0x0F, 0x48, 0xBC, 0x1A, 0x1E, 0xB2, 0x94, 0x70,
- 0x47, 0xDA, 0x1C, 0x62, 0x2B, 0x86, 0x77, 0xE9,
- 0xEA, 0x9B, 0xEC, 0xED, 0x55, 0xD3, 0x3A, 0xDB,
- 0x15, 0x53, 0xBD, 0x58, 0x4A, 0xD2, 0xF8, 0x6A,
- 0x62, 0x07, 0xE8, 0x4E, 0x40, 0xE4, 0x60, 0x7E,
- 0x11, 0x65, 0x0E, 0xE2, 0x87, 0x9F, 0x4E, 0x0B
- },
- {
- 0x87, 0x79, 0x0D, 0xF6, 0xCF, 0x73, 0x94, 0x45,
- 0x1B, 0xCC, 0x73, 0x0E, 0x53, 0xFC, 0x57, 0xBE,
- 0x56, 0x45, 0x22, 0x77, 0x1E, 0x14, 0x43, 0x2A,
- 0x80, 0xAB, 0x0B, 0x06, 0xB7, 0xB1, 0xD2, 0x09,
- 0xAD, 0x69, 0x89, 0x95, 0x12, 0x53, 0x85, 0xDB,
- 0x8B, 0x3C, 0x09, 0x59, 0xB8, 0xA5, 0x33, 0x9E,
- 0xDA, 0x0A, 0xE6, 0x78, 0x59, 0xD8, 0x47, 0xF4,
- 0x4C, 0x81, 0x59, 0x72, 0x72, 0xCB, 0xF1, 0x95
- },
- {
- 0xCC, 0x06, 0x4E, 0xA8, 0x53, 0xDC, 0x01, 0x52,
- 0xCC, 0x03, 0xFE, 0xB5, 0xFB, 0x5D, 0xE7, 0x8B,
- 0x9B, 0x88, 0xE9, 0x61, 0x55, 0xD5, 0x35, 0x8B,
- 0xCE, 0x84, 0xA5, 0x4C, 0x0E, 0x0C, 0x42, 0xFB,
- 0xDA, 0x09, 0x2F, 0x22, 0xD0, 0x56, 0xDF, 0x99,
- 0x93, 0x26, 0x2E, 0x2B, 0xA4, 0x4A, 0x5B, 0x2D,
- 0x53, 0xC3, 0x75, 0x9D, 0x09, 0x45, 0xFE, 0xBA,
- 0xA6, 0xFD, 0x51, 0xB8, 0xFF, 0x38, 0xD8, 0x39
- },
- {
- 0x7E, 0x51, 0x7F, 0xC3, 0x83, 0xEE, 0x8C, 0x9F,
- 0x0A, 0x01, 0x68, 0x1D, 0x39, 0xE7, 0x3B, 0xEB,
- 0xA5, 0x96, 0x95, 0x95, 0xCE, 0x77, 0x92, 0x7F,
- 0x91, 0x69, 0x1F, 0x33, 0xBB, 0x3E, 0x13, 0x07,
- 0xEE, 0x03, 0x61, 0x6C, 0x27, 0xE6, 0x79, 0x51,
- 0x86, 0xF6, 0x94, 0x0F, 0xED, 0xD9, 0xD5, 0xC7,
- 0xF2, 0x1B, 0x6D, 0x2A, 0xAF, 0x70, 0x29, 0x9C,
- 0xDD, 0x83, 0x51, 0x25, 0x05, 0x0A, 0x8B, 0x3C
- },
- {
- 0x84, 0x5F, 0xCF, 0xA6, 0x7F, 0x6E, 0x06, 0x55,
- 0x10, 0xD2, 0x62, 0xF1, 0xDD, 0x69, 0x39, 0xEA,
- 0x4C, 0x0A, 0x4A, 0x59, 0xC8, 0xEE, 0x39, 0x77,
- 0xDB, 0x70, 0x05, 0xE1, 0xAE, 0xE4, 0x20, 0xBD,
- 0x3F, 0x38, 0x26, 0xEC, 0xFE, 0x59, 0x01, 0x5B,
- 0x4D, 0xFA, 0x0B, 0xD5, 0xBB, 0xF8, 0xD8, 0xA4,
- 0x34, 0x48, 0x5D, 0xC1, 0x1C, 0xB9, 0xCC, 0x85,
- 0x97, 0xCB, 0x8C, 0x95, 0x66, 0x11, 0x5F, 0x31
- },
- {
- 0x17, 0xCF, 0x2C, 0x23, 0x21, 0x5B, 0xCD, 0xFC,
- 0x24, 0x3D, 0x8A, 0x94, 0x5F, 0x3C, 0x5C, 0x25,
- 0x1D, 0x27, 0x18, 0xA3, 0xF7, 0x5F, 0xED, 0x6F,
- 0x33, 0x20, 0xBC, 0xC6, 0xFD, 0x92, 0x73, 0x86,
- 0xD5, 0x6F, 0x87, 0x19, 0xCC, 0xA0, 0x2E, 0xC5,
- 0xE9, 0x9C, 0xDA, 0xC4, 0xEA, 0x10, 0x95, 0xB4,
- 0x65, 0xBA, 0x9A, 0x29, 0x8B, 0x1D, 0x23, 0x8E,
- 0x38, 0xB3, 0xFA, 0x15, 0xE8, 0xB1, 0x4E, 0xE4
- },
- {
- 0xD7, 0x89, 0xCE, 0xC7, 0xD7, 0x52, 0x0F, 0x10,
- 0xE8, 0xB8, 0xB6, 0xC8, 0x40, 0x95, 0x89, 0xDF,
- 0x57, 0xB8, 0x56, 0xB8, 0x24, 0x55, 0x68, 0xF6,
- 0x4E, 0x2D, 0x21, 0x83, 0xE3, 0x59, 0xA7, 0x84,
- 0xC8, 0xD2, 0x6C, 0xF9, 0xB7, 0x20, 0xF5, 0xDF,
- 0x56, 0x7B, 0x01, 0xF3, 0xF4, 0x8D, 0xE6, 0x4D,
- 0x4F, 0x0D, 0xB1, 0x56, 0xBE, 0x52, 0x5D, 0x7C,
- 0x7A, 0x66, 0x5A, 0xAD, 0xC5, 0x91, 0xF0, 0xB6
- },
- {
- 0xB5, 0xE2, 0x46, 0xA9, 0x02, 0x77, 0x10, 0xC0,
- 0xB0, 0x55, 0xC7, 0x1F, 0x11, 0x67, 0xE0, 0xEE,
- 0x36, 0xEB, 0xC4, 0x32, 0xCF, 0x5D, 0x14, 0x27,
- 0x75, 0xA7, 0xAE, 0xCC, 0xCE, 0xA7, 0x83, 0x25,
- 0xED, 0x8C, 0x12, 0xF5, 0x0F, 0xBE, 0x64, 0x8A,
- 0xDD, 0xF0, 0x59, 0xB8, 0xC0, 0x2A, 0x61, 0x49,
- 0x2F, 0x83, 0x57, 0xBE, 0xE1, 0x42, 0xE7, 0xF7,
- 0xDE, 0x04, 0x33, 0x78, 0xDB, 0xCF, 0x2D, 0x33
- },
- {
- 0xB5, 0x23, 0xFD, 0x77, 0xAB, 0x9E, 0xEE, 0x42,
- 0x48, 0x72, 0xBC, 0x2E, 0x83, 0xFC, 0x0A, 0x77,
- 0xFF, 0x8A, 0x90, 0xC9, 0xA0, 0xCE, 0x9E, 0x8C,
- 0x87, 0x68, 0x0A, 0x0F, 0x62, 0x86, 0x33, 0x1F,
- 0x15, 0xC9, 0x3A, 0x2A, 0xFE, 0xCF, 0x75, 0x66,
- 0x65, 0x3F, 0x24, 0xD9, 0x30, 0xC3, 0x23, 0x19,
- 0x2D, 0x30, 0x43, 0xB9, 0x05, 0x72, 0x1C, 0xBD,
- 0xB6, 0x31, 0x11, 0xCA, 0x42, 0xF2, 0x8F, 0x4E
- },
- {
- 0x43, 0x59, 0xA4, 0x58, 0x76, 0xBF, 0x6A, 0xCC,
- 0x0A, 0xEC, 0xE7, 0xB9, 0xB4, 0xB4, 0xA8, 0x38,
- 0xB9, 0xDB, 0xA5, 0x77, 0x6A, 0x3B, 0x14, 0xDA,
- 0x2F, 0xBA, 0x91, 0x02, 0xE7, 0x8B, 0xF6, 0x48,
- 0xFF, 0xB4, 0xD8, 0x67, 0xBA, 0xE8, 0x5F, 0xD9,
- 0xB7, 0x13, 0x12, 0xDC, 0x46, 0x02, 0xD0, 0xD4,
- 0x9C, 0x90, 0x7B, 0xB9, 0x28, 0x9B, 0x22, 0x95,
- 0x96, 0x1E, 0x54, 0x13, 0x81, 0x23, 0xF5, 0x4A
- },
- {
- 0xD3, 0xF2, 0xC8, 0xE7, 0x4F, 0x34, 0x3A, 0x4E,
- 0x71, 0x90, 0xD4, 0x75, 0xCF, 0x9A, 0xF7, 0x54,
- 0xEE, 0xD5, 0x57, 0x72, 0x62, 0xB3, 0x5B, 0xD9,
- 0xA9, 0xC4, 0x2B, 0x58, 0xCE, 0x88, 0x26, 0x2E,
- 0x31, 0x14, 0x91, 0x7F, 0xB9, 0xE6, 0x83, 0xC6,
- 0x2D, 0x9F, 0x89, 0x47, 0xB5, 0x8A, 0x29, 0x4D,
- 0xA5, 0x06, 0xFB, 0x86, 0xB3, 0xED, 0xF2, 0x5C,
- 0xB9, 0xE2, 0xD2, 0xDF, 0x61, 0x1C, 0xD4, 0x48
- },
- {
- 0x41, 0xB8, 0x90, 0xF8, 0xE8, 0x45, 0x0D, 0xAD,
- 0xB6, 0x95, 0x9A, 0xCC, 0xBA, 0x19, 0x49, 0x17,
- 0xE0, 0x2F, 0x30, 0x67, 0x82, 0x1D, 0x4E, 0x99,
- 0x5A, 0x37, 0xAC, 0x18, 0xBA, 0x3E, 0x47, 0xC7,
- 0x50, 0x6E, 0x7A, 0x3D, 0xD1, 0xE1, 0x12, 0xE6,
- 0xEC, 0x41, 0xBE, 0xF5, 0x30, 0x85, 0x11, 0x20,
- 0x89, 0x4A, 0x7B, 0x34, 0xB3, 0xDB, 0xCD, 0xAE,
- 0x40, 0x73, 0x27, 0xF0, 0xC5, 0x73, 0x6E, 0xDF
- },
- {
- 0x19, 0xD7, 0x14, 0x4F, 0x0C, 0x85, 0x1E, 0xB8,
- 0xB0, 0x53, 0xA3, 0xA4, 0x35, 0x86, 0x52, 0x6D,
- 0xC5, 0xC7, 0x73, 0xE4, 0x97, 0x97, 0x51, 0x64,
- 0xD1, 0x11, 0x51, 0x36, 0x43, 0x68, 0xDF, 0x24,
- 0xBC, 0x44, 0xD5, 0x36, 0x07, 0x23, 0x04, 0xD7,
- 0x06, 0x31, 0xA8, 0x40, 0xB6, 0x36, 0xB9, 0x66,
- 0xFD, 0x02, 0x8F, 0x61, 0x06, 0x2B, 0xFC, 0x52,
- 0x85, 0x67, 0x01, 0x53, 0xA6, 0x36, 0x3A, 0x0A
- },
- {
- 0xC2, 0x18, 0x4C, 0x1A, 0x81, 0xE9, 0x83, 0xBE,
- 0x2C, 0x96, 0xE4, 0xCF, 0xD6, 0x5A, 0xFB, 0xDA,
- 0x1A, 0xC6, 0xEF, 0x35, 0x26, 0x6E, 0xE4, 0xB3,
- 0xAB, 0x1F, 0xB0, 0x3A, 0xBA, 0xDD, 0xFD, 0xD4,
- 0x03, 0xFF, 0xFC, 0xAF, 0xB4, 0xAD, 0xE0, 0xE9,
- 0x2D, 0xA3, 0x82, 0xDA, 0x8C, 0x40, 0x22, 0x2E,
- 0x10, 0xE9, 0xFD, 0xE8, 0x56, 0xC5, 0x1B, 0xDA,
- 0xCD, 0xE7, 0x41, 0xA6, 0x49, 0xF7, 0x33, 0x5D
- },
- {
- 0x48, 0x8C, 0x0D, 0x65, 0x2E, 0x42, 0xFD, 0x78,
- 0xAB, 0x3A, 0x2D, 0xC2, 0x8C, 0xF3, 0xEB, 0x35,
- 0xFC, 0xDD, 0xC8, 0xDE, 0xF7, 0xEA, 0xD4, 0x81,
- 0x7B, 0xFF, 0xB6, 0x4C, 0x1A, 0xE0, 0xF2, 0x08,
- 0xF7, 0x8C, 0xF4, 0x09, 0x76, 0xF7, 0xE2, 0xA2,
- 0xCB, 0x2D, 0xD3, 0x0F, 0x1C, 0x99, 0x13, 0x02,
- 0x08, 0xCE, 0xB6, 0x92, 0xC6, 0x68, 0x80, 0xD9,
- 0x52, 0x8C, 0xD6, 0xD3, 0x8A, 0xD2, 0x9D, 0xB2
- },
- {
- 0x51, 0x5B, 0x65, 0xBF, 0x65, 0x68, 0x83, 0x99,
- 0x57, 0x5F, 0x0E, 0x06, 0x77, 0xBB, 0x6A, 0x91,
- 0x9B, 0x66, 0x33, 0x55, 0x46, 0xD6, 0xCA, 0xE3,
- 0x36, 0xF5, 0xC6, 0xFE, 0xAE, 0x5E, 0x2B, 0xF7,
- 0x45, 0xE3, 0xA7, 0xB1, 0x3C, 0x32, 0x05, 0xDD,
- 0x8B, 0x5B, 0x92, 0xCF, 0x05, 0x3B, 0xE9, 0x69,
- 0xDF, 0x71, 0x20, 0xFC, 0xEF, 0x77, 0xE3, 0x89,
- 0x5F, 0x56, 0x0F, 0xD2, 0x32, 0xFB, 0x89, 0x50
- },
- {
- 0x3F, 0xDB, 0xC7, 0xD6, 0x9F, 0x4B, 0x53, 0xC2,
- 0x25, 0x66, 0x3D, 0xA3, 0x0D, 0x80, 0xF7, 0x2E,
- 0x54, 0x28, 0x10, 0x44, 0xA2, 0x2B, 0x98, 0x82,
- 0xC6, 0x63, 0x8F, 0x55, 0x26, 0x83, 0x4B, 0xD3,
- 0x16, 0x01, 0xCA, 0x5E, 0xB2, 0xCC, 0xA4, 0xF5,
- 0xFF, 0xCF, 0x67, 0x5D, 0xCB, 0xCF, 0xCA, 0x60,
- 0xC8, 0xA3, 0x61, 0x2D, 0x1A, 0xA9, 0xDA, 0xB6,
- 0x93, 0xB2, 0x35, 0x60, 0x69, 0x60, 0x3A, 0x0E
- },
- {
- 0x4F, 0xF6, 0xC3, 0x1A, 0x8F, 0xC0, 0x01, 0xAC,
- 0x3B, 0x7A, 0xE0, 0x20, 0xC5, 0xF7, 0xC4, 0x5E,
- 0xFB, 0x62, 0x71, 0xA2, 0xD7, 0xCC, 0xAB, 0x87,
- 0x13, 0xE5, 0x48, 0xB7, 0x29, 0xF0, 0xFF, 0xF9,
- 0xC8, 0x2F, 0xD4, 0xDB, 0x5C, 0xF6, 0x56, 0x43,
- 0xD4, 0x07, 0x6A, 0x3F, 0xB1, 0x7B, 0x3E, 0x89,
- 0x3C, 0x30, 0x2D, 0xC7, 0x5B, 0x61, 0x22, 0xFF,
- 0x86, 0x81, 0xD0, 0x37, 0x12, 0x0E, 0x27, 0x6A
- },
- {
- 0x43, 0xDF, 0xF2, 0x60, 0xDF, 0xEF, 0x1C, 0xB2,
- 0xD6, 0x16, 0x00, 0xE2, 0x40, 0xAA, 0xD6, 0xB7,
- 0x20, 0xE5, 0xF4, 0xF8, 0x30, 0x86, 0xE2, 0x6A,
- 0x49, 0xA0, 0xCE, 0x3E, 0x0C, 0xA4, 0x4B, 0x9A,
- 0x60, 0xFC, 0xF4, 0x6A, 0x8C, 0x3F, 0x1B, 0xB1,
- 0xA6, 0xF5, 0x76, 0x2B, 0x66, 0x51, 0x3F, 0xE3,
- 0xF7, 0xC5, 0xB0, 0xBC, 0x15, 0x0C, 0x08, 0x49,
- 0x1A, 0xCB, 0xC4, 0x36, 0x1C, 0xAB, 0xCF, 0xDF
- },
- {
- 0xB4, 0xDE, 0xA9, 0x4C, 0x9D, 0x36, 0x75, 0xBE,
- 0x05, 0x12, 0xEF, 0xDE, 0xA8, 0x16, 0x38, 0x70,
- 0xFE, 0x34, 0x25, 0xDC, 0xD7, 0x61, 0xF3, 0x63,
- 0xC4, 0x3A, 0x0C, 0xA5, 0x71, 0x6B, 0x76, 0x54,
- 0x06, 0x63, 0xFB, 0x2B, 0xE4, 0x9E, 0x2D, 0xB1,
- 0x06, 0x48, 0x5C, 0x9C, 0xDD, 0x3C, 0x16, 0x48,
- 0x98, 0xA9, 0x54, 0xB5, 0x87, 0x48, 0xC4, 0x2F,
- 0xEA, 0x16, 0xA4, 0x0F, 0xC4, 0x53, 0xD2, 0x10
- },
- {
- 0xE5, 0x27, 0x7B, 0x6F, 0x93, 0xEA, 0x1D, 0xE3,
- 0xE2, 0xD9, 0xFC, 0xD8, 0xC6, 0x79, 0x79, 0x3C,
- 0x6C, 0xCB, 0x8A, 0x3B, 0xE2, 0x6E, 0x8E, 0x31,
- 0x14, 0xF3, 0x5D, 0xA4, 0xF2, 0xAC, 0x01, 0x4F,
- 0x55, 0xC2, 0xF1, 0x5E, 0x09, 0xE9, 0x4A, 0xA0,
- 0x71, 0x29, 0x81, 0x67, 0xA2, 0xFB, 0x9B, 0xE3,
- 0x11, 0x70, 0x1F, 0xFB, 0xA9, 0xD3, 0xEE, 0xFF,
- 0x8F, 0xFC, 0x79, 0x93, 0xA3, 0xCE, 0xCE, 0x18
- },
- {
- 0xF0, 0x95, 0xA7, 0xC6, 0xE2, 0xB9, 0x16, 0x64,
- 0x73, 0x4F, 0x3E, 0x23, 0xF1, 0x8E, 0xB2, 0xBA,
- 0x9B, 0x00, 0xE7, 0x1F, 0xBF, 0xCB, 0x99, 0x31,
- 0xC0, 0xA6, 0x14, 0x79, 0x2A, 0x9D, 0x86, 0x75,
- 0x62, 0x2A, 0x87, 0x4C, 0x1B, 0xF5, 0x24, 0x1A,
- 0x2A, 0x87, 0x41, 0xED, 0x1C, 0x89, 0x3B, 0xDF,
- 0xA8, 0xE2, 0x8C, 0x2E, 0x20, 0xBB, 0x1C, 0x58,
- 0xEB, 0x4D, 0xE7, 0xD8, 0x01, 0x11, 0x6C, 0x78
- },
- {
- 0xDF, 0xA1, 0xFD, 0x80, 0x3A, 0x1D, 0x4A, 0x3E,
- 0x66, 0x1D, 0xF0, 0x1F, 0x49, 0x43, 0xEA, 0x66,
- 0x26, 0x0A, 0x18, 0xFE, 0xCE, 0x13, 0x4D, 0x62,
- 0xF9, 0x7D, 0xAC, 0xDB, 0x8B, 0x3B, 0xF9, 0xC8,
- 0x00, 0xAF, 0xE5, 0x79, 0xCF, 0xD1, 0x3F, 0xC0,
- 0x14, 0x8B, 0xDE, 0xFB, 0xFF, 0x4E, 0x76, 0x83,
- 0x56, 0x1C, 0x06, 0xA6, 0xF7, 0x22, 0x5E, 0x47,
- 0x81, 0x99, 0x3B, 0x4F, 0x4F, 0x2B, 0xCB, 0xFA
- },
- {
- 0x2B, 0x86, 0xCE, 0xB2, 0x70, 0xF6, 0x90, 0x8D,
- 0x8B, 0x16, 0x00, 0x75, 0xEA, 0x7F, 0x57, 0x16,
- 0x3A, 0xF5, 0xD5, 0xC6, 0xF8, 0xAA, 0xC5, 0x20,
- 0x40, 0xCC, 0x68, 0x7C, 0x17, 0xAB, 0xF3, 0xC7,
- 0x78, 0xC1, 0x39, 0x06, 0xE0, 0xE6, 0xF2, 0x9A,
- 0x6A, 0xB1, 0x23, 0xDE, 0xEB, 0xCE, 0x39, 0x1F,
- 0x90, 0x7D, 0x75, 0xD3, 0xA2, 0xCE, 0xFA, 0x0E,
- 0xFC, 0xB8, 0x80, 0xA0, 0xE7, 0x0D, 0x71, 0x96
- },
- {
- 0x32, 0x46, 0x6B, 0xCB, 0xDE, 0xD5, 0x38, 0xE5,
- 0x68, 0x79, 0x54, 0x30, 0x35, 0x25, 0x36, 0xFE,
- 0xB9, 0x19, 0xBF, 0x4D, 0x97, 0xCC, 0x44, 0xAB,
- 0x1D, 0x80, 0x50, 0x40, 0xF4, 0xBC, 0x4C, 0x2E,
- 0x79, 0x52, 0x72, 0x10, 0x18, 0x95, 0x8B, 0x4E,
- 0xE7, 0x83, 0x03, 0x59, 0x0E, 0xF6, 0xAC, 0x45,
- 0x0D, 0xF9, 0x2E, 0xC7, 0x7F, 0x47, 0x70, 0x54,
- 0xBF, 0xF8, 0x67, 0xB8, 0x89, 0x71, 0xD4, 0x21
- },
- {
- 0xEA, 0x64, 0xB0, 0x03, 0xA1, 0x35, 0x76, 0x61,
- 0x21, 0xCF, 0xBC, 0xCB, 0xDC, 0x08, 0xDC, 0xA2,
- 0x40, 0x29, 0x26, 0xBE, 0x78, 0xCE, 0xA3, 0xD0,
- 0xA7, 0x25, 0x3D, 0x9E, 0xC9, 0xE6, 0x3B, 0x8A,
- 0xCD, 0xD9, 0x94, 0x55, 0x99, 0x17, 0xE0, 0xE0,
- 0x3B, 0x5E, 0x15, 0x5F, 0x94, 0x4D, 0x71, 0x98,
- 0xD9, 0x92, 0x45, 0xA7, 0x94, 0xCE, 0x19, 0xC9,
- 0xB4, 0xDF, 0x4D, 0xA4, 0xA3, 0x39, 0x93, 0x34
- },
- {
- 0x05, 0xAD, 0x0F, 0x27, 0x1F, 0xAF, 0x7E, 0x36,
- 0x13, 0x20, 0x51, 0x84, 0x52, 0x81, 0x3F, 0xF9,
- 0xFB, 0x99, 0x76, 0xAC, 0x37, 0x80, 0x50, 0xB6,
- 0xEE, 0xFB, 0x05, 0xF7, 0x86, 0x7B, 0x57, 0x7B,
- 0x8F, 0x14, 0x47, 0x57, 0x94, 0xCF, 0xF6, 0x1B,
- 0x2B, 0xC0, 0x62, 0xD3, 0x46, 0xA7, 0xC6, 0x5C,
- 0x6E, 0x00, 0x67, 0xC6, 0x0A, 0x37, 0x4A, 0xF7,
- 0x94, 0x0F, 0x10, 0xAA, 0x44, 0x9D, 0x5F, 0xB9
- },
- {
- 0xB5, 0x45, 0x88, 0x02, 0x94, 0xAF, 0xA1, 0x53,
- 0xF8, 0xB9, 0xF4, 0x9C, 0x73, 0xD9, 0x52, 0xB5,
- 0xD1, 0x22, 0x8F, 0x1A, 0x1A, 0xB5, 0xEB, 0xCB,
- 0x05, 0xFF, 0x79, 0xE5, 0x60, 0xC0, 0x30, 0xF7,
- 0x50, 0x0F, 0xE2, 0x56, 0xA4, 0x0B, 0x6A, 0x0E,
- 0x6C, 0xB3, 0xD4, 0x2A, 0xCD, 0x4B, 0x98, 0x59,
- 0x5C, 0x5B, 0x51, 0xEA, 0xEC, 0x5A, 0xD6, 0x9C,
- 0xD4, 0x0F, 0x1F, 0xC1, 0x6D, 0x2D, 0x5F, 0x50
- },
- {
- 0xBB, 0xFB, 0x94, 0x77, 0xEC, 0x6A, 0x9F, 0x0C,
- 0x25, 0x40, 0x5A, 0xCD, 0x8A, 0x30, 0xD5, 0xDD,
- 0x7C, 0x73, 0x57, 0x1F, 0x1D, 0x1A, 0x6E, 0x8C,
- 0xE7, 0x2F, 0x8B, 0x9C, 0x94, 0x1C, 0xF7, 0x79,
- 0xB7, 0x64, 0x03, 0xAC, 0x7F, 0x04, 0x50, 0x05,
- 0x25, 0x84, 0x39, 0x0A, 0x14, 0xEA, 0xA3, 0x7C,
- 0x20, 0xB5, 0xBD, 0xB0, 0x38, 0x10, 0x54, 0xA9,
- 0xA4, 0x95, 0x34, 0xF8, 0x14, 0x66, 0xBA, 0x9D
- },
- {
- 0xC8, 0x28, 0x7E, 0x93, 0x3D, 0x95, 0x04, 0xBF,
- 0xFD, 0x7B, 0xE2, 0xAC, 0x02, 0x2B, 0x32, 0xF3,
- 0xF4, 0x6D, 0x87, 0xA7, 0xA0, 0xE7, 0x9B, 0xB2,
- 0xA1, 0xCB, 0xAA, 0xCC, 0x2E, 0x84, 0xCD, 0x70,
- 0x84, 0x5D, 0x0D, 0x42, 0x78, 0x48, 0xA6, 0xD7,
- 0x88, 0xD3, 0x96, 0x22, 0xE1, 0x0F, 0x43, 0x42,
- 0x23, 0x7E, 0xEF, 0xA6, 0xD3, 0xC0, 0x12, 0xDA,
- 0xE9, 0x6C, 0xC8, 0xA6, 0x50, 0xCC, 0x2E, 0x30
- },
- {
- 0xC4, 0x59, 0x6F, 0xCB, 0x0A, 0x28, 0xD2, 0x4A,
- 0xAD, 0x70, 0xCF, 0x18, 0x53, 0xEC, 0x29, 0xDA,
- 0xC0, 0xFB, 0x20, 0x2D, 0x8E, 0xC1, 0x40, 0xDA,
- 0x30, 0x00, 0x88, 0xBB, 0x85, 0xB9, 0x2C, 0x30,
- 0x29, 0x19, 0x46, 0xAD, 0x30, 0x7C, 0x09, 0x6E,
- 0x3B, 0x28, 0x66, 0x33, 0x5C, 0x93, 0x17, 0xAF,
- 0xE2, 0x8C, 0xAD, 0xAB, 0x5D, 0x62, 0xC3, 0x54,
- 0x32, 0x9C, 0x98, 0xD9, 0x93, 0xC5, 0xBE, 0x1C
- },
- {
- 0xE8, 0x8C, 0x38, 0xE6, 0x7E, 0x8D, 0x19, 0x83,
- 0x58, 0x08, 0x85, 0x46, 0x70, 0x77, 0x9E, 0xCA,
- 0x60, 0xBA, 0xD8, 0x54, 0xC5, 0x77, 0x87, 0x90,
- 0xA0, 0x72, 0x54, 0xA3, 0x0A, 0x14, 0xAE, 0x82,
- 0xB6, 0x1B, 0xB1, 0x69, 0x11, 0xFE, 0x57, 0x77,
- 0x1D, 0x19, 0xE9, 0xB7, 0xF5, 0x02, 0x3C, 0x0D,
- 0x4E, 0x8A, 0x8D, 0x37, 0x2E, 0x3D, 0x85, 0xE4,
- 0x3B, 0x03, 0xE5, 0xE0, 0x0E, 0x6E, 0xBA, 0x4B
- },
- {
- 0x2D, 0x66, 0x3E, 0x03, 0xE6, 0xF3, 0x55, 0x2C,
- 0xCD, 0xFB, 0xA4, 0x96, 0xA1, 0x4C, 0xC6, 0x22,
- 0x4C, 0xEB, 0x1E, 0xB6, 0x1A, 0xA2, 0x65, 0xE6,
- 0xA7, 0xD4, 0xA2, 0x6E, 0x54, 0x10, 0x61, 0x04,
- 0xA9, 0x6E, 0x33, 0x09, 0x59, 0xF9, 0x71, 0x3B,
- 0x34, 0x87, 0xC1, 0xB9, 0x49, 0x7C, 0xCF, 0x82,
- 0x61, 0x1D, 0xBF, 0xA3, 0x4F, 0xF1, 0x1D, 0x31,
- 0x33, 0xB5, 0xB5, 0xD1, 0xF1, 0xE4, 0xF8, 0xD0
- },
- {
- 0x70, 0x7D, 0x6A, 0x58, 0x42, 0x1B, 0x8F, 0x7E,
- 0x44, 0xFF, 0x1F, 0x83, 0x62, 0xBC, 0x70, 0x0F,
- 0x71, 0xEF, 0x7C, 0x39, 0x35, 0xE0, 0x76, 0x4B,
- 0xD1, 0x4D, 0x39, 0x0C, 0x1C, 0x72, 0x79, 0x2A,
- 0xF9, 0xC2, 0xC0, 0x2F, 0xB7, 0x2A, 0x2B, 0x9D,
- 0x9A, 0x07, 0x29, 0xCB, 0x3E, 0x99, 0x62, 0x6C,
- 0xF0, 0x34, 0xDF, 0x54, 0xB5, 0x06, 0xB5, 0xB1,
- 0x64, 0x64, 0xF4, 0x75, 0x86, 0x4F, 0x25, 0x90
- },
- {
- 0x9D, 0x88, 0xF8, 0xBA, 0xA4, 0xEB, 0x0F, 0x9A,
- 0xB2, 0x29, 0x2E, 0x49, 0x82, 0xAC, 0x80, 0x44,
- 0x53, 0x58, 0x22, 0x7D, 0x7F, 0x9C, 0xE7, 0xA4,
- 0xA6, 0x29, 0xF1, 0x80, 0xF7, 0x14, 0x1E, 0x08,
- 0xFE, 0x63, 0x55, 0xC6, 0x45, 0x21, 0xA6, 0x9B,
- 0xA2, 0xBF, 0xBD, 0x1C, 0x4A, 0x3E, 0xA0, 0x48,
- 0xD0, 0xBC, 0x8A, 0xB3, 0x70, 0x1F, 0x30, 0xEA,
- 0x83, 0xFB, 0xE0, 0x24, 0x74, 0xD8, 0x92, 0xBF
- },
- {
- 0x65, 0xEA, 0x4D, 0xB0, 0x4A, 0x75, 0x81, 0xC1,
- 0x81, 0x94, 0xA8, 0x92, 0x1A, 0xFD, 0xFA, 0x4F,
- 0x8D, 0x9A, 0xF6, 0x29, 0xDE, 0xD2, 0x77, 0x2C,
- 0x65, 0x8E, 0x08, 0x48, 0x5F, 0x67, 0xAD, 0x2C,
- 0xE2, 0x1A, 0x98, 0xCD, 0x29, 0x3F, 0xF2, 0x8D,
- 0x4D, 0xFC, 0xDF, 0x65, 0x8C, 0xDC, 0x7A, 0xE6,
- 0x70, 0x27, 0x84, 0x8E, 0x71, 0xCC, 0xC1, 0x15,
- 0xA3, 0xFF, 0xBA, 0xC4, 0xFA, 0x61, 0xBB, 0x73
- },
- {
- 0x0B, 0x4A, 0x68, 0x92, 0x9E, 0x7F, 0x15, 0xCA,
- 0x91, 0xBB, 0x44, 0x39, 0xF2, 0x40, 0x37, 0x02,
- 0x03, 0x4C, 0xD4, 0x74, 0x8E, 0x46, 0x92, 0x7A,
- 0xBA, 0x95, 0xCB, 0xEF, 0x80, 0x04, 0x8B, 0x25,
- 0xA6, 0x75, 0x97, 0x0F, 0xAC, 0x33, 0xC8, 0x74,
- 0xAB, 0xD3, 0xD8, 0x3A, 0xA0, 0xF3, 0x7B, 0xE2,
- 0x30, 0x83, 0x10, 0xE8, 0xDD, 0x79, 0x4F, 0x81,
- 0x92, 0x93, 0x0E, 0xD5, 0x6E, 0x70, 0xA8, 0xE4
- },
- {
- 0xC1, 0xC5, 0xD8, 0xAC, 0xFE, 0x3F, 0xDE, 0x67,
- 0x4E, 0xDD, 0x36, 0x20, 0x15, 0x7A, 0x8B, 0x6B,
- 0x4C, 0x8E, 0x67, 0xC6, 0xA7, 0xA9, 0x72, 0x67,
- 0x41, 0xD9, 0xC3, 0x05, 0xE2, 0xA5, 0x2A, 0x87,
- 0x97, 0xFD, 0xA0, 0xB2, 0xF1, 0x3A, 0xC7, 0x87,
- 0x34, 0xDB, 0x2F, 0x4F, 0xC8, 0x3E, 0xF3, 0x24,
- 0x14, 0xD9, 0x31, 0xEB, 0xAE, 0xAE, 0xCD, 0x82,
- 0x6D, 0x7C, 0x2B, 0xE2, 0x03, 0xBD, 0xC2, 0xD1
- },
- {
- 0x2D, 0xAD, 0xC8, 0xC9, 0xF7, 0x42, 0x5A, 0x01,
- 0x14, 0x49, 0x12, 0x87, 0xBD, 0xC6, 0x8E, 0xAE,
- 0x4F, 0xB6, 0x19, 0x4D, 0x1A, 0x10, 0x9D, 0xB9,
- 0xB6, 0xE8, 0xA2, 0xAC, 0x94, 0xD4, 0xE4, 0x40,
- 0x90, 0x99, 0x85, 0xC4, 0x29, 0x1F, 0xE8, 0x9F,
- 0xD8, 0x28, 0x1F, 0x8F, 0xCE, 0xF6, 0xF6, 0xBC,
- 0x32, 0x55, 0x0E, 0x53, 0xCB, 0x7A, 0x49, 0x42,
- 0x89, 0x81, 0xE8, 0xD5, 0x3C, 0xF5, 0xA2, 0x12
- },
- {
- 0xE5, 0x55, 0xF2, 0xA5, 0x8A, 0xCA, 0xC5, 0x50,
- 0x3F, 0x9E, 0x2D, 0x97, 0xB2, 0x46, 0x87, 0x2B,
- 0x4C, 0xA7, 0x8B, 0xD5, 0x6D, 0x47, 0xB7, 0x65,
- 0xF0, 0x52, 0xAA, 0xB3, 0xDC, 0x77, 0xDB, 0xE9,
- 0x93, 0x93, 0x6F, 0x22, 0x52, 0xF0, 0xAB, 0x2E,
- 0x01, 0xFB, 0x08, 0x74, 0x72, 0xCC, 0xB5, 0xA1,
- 0x21, 0xDD, 0xFF, 0xDE, 0x53, 0x1D, 0x3D, 0xC4,
- 0x02, 0x2A, 0x7D, 0x19, 0x56, 0xCE, 0x0E, 0x20
- },
- {
- 0x9B, 0x4E, 0xAE, 0x12, 0x95, 0x00, 0x0A, 0xEA,
- 0x79, 0x83, 0xEC, 0x3B, 0xCB, 0x48, 0x57, 0xCC,
- 0x71, 0x25, 0xFD, 0x73, 0x06, 0x78, 0x7C, 0x63,
- 0x13, 0x24, 0x73, 0xCF, 0xE8, 0xF4, 0xEB, 0x45,
- 0x31, 0x8A, 0x60, 0xDA, 0xAD, 0x64, 0x6D, 0x63,
- 0xA2, 0x7C, 0x4B, 0x9D, 0x1F, 0x50, 0x73, 0x70,
- 0x0A, 0x30, 0x57, 0xDE, 0x22, 0xA7, 0xFD, 0xF0,
- 0x9A, 0x87, 0xAA, 0xC6, 0x6E, 0xBE, 0x47, 0x58
- },
- {
- 0x96, 0x64, 0xAC, 0xC2, 0xDC, 0x72, 0x98, 0xB9,
- 0x86, 0x8D, 0xB4, 0x95, 0xEE, 0xBC, 0x6B, 0x59,
- 0x65, 0x7D, 0x13, 0x9A, 0x6A, 0xF0, 0x60, 0xA7,
- 0x2F, 0xB6, 0x91, 0x24, 0xBD, 0xD3, 0xA6, 0x59,
- 0x18, 0x88, 0xF0, 0x35, 0x4F, 0x70, 0x2B, 0x1B,
- 0x88, 0x86, 0x84, 0x41, 0x10, 0x58, 0xA3, 0x75,
- 0x9F, 0x7F, 0xD3, 0x7F, 0x06, 0xEA, 0xFB, 0x3B,
- 0x58, 0xEC, 0xF2, 0x6F, 0x45, 0x53, 0xBE, 0x27
- },
- {
- 0xFC, 0x16, 0xE0, 0x92, 0x5A, 0x35, 0xAA, 0xD4,
- 0x7A, 0xD6, 0x95, 0x54, 0xB2, 0x57, 0x96, 0xFC,
- 0xF9, 0x26, 0x0C, 0xB5, 0x0E, 0x6C, 0xC3, 0x74,
- 0x75, 0x35, 0x55, 0x9E, 0x99, 0xC8, 0x58, 0x81,
- 0xC7, 0x58, 0x89, 0xAC, 0x79, 0x3A, 0xB7, 0x8B,
- 0x88, 0xB0, 0x5F, 0xB1, 0x60, 0x89, 0x56, 0x55,
- 0xE4, 0xD6, 0x63, 0xA2, 0xA0, 0x9B, 0xA9, 0xFA,
- 0x61, 0x4A, 0x10, 0xC2, 0x29, 0x47, 0x21, 0x0D
- },
- {
- 0x22, 0x5E, 0x73, 0x41, 0xF8, 0x57, 0x52, 0x4F,
- 0x78, 0x90, 0x37, 0x6C, 0x50, 0xE6, 0x35, 0x4B,
- 0x16, 0xC1, 0xCD, 0xFB, 0xF5, 0x8F, 0xE5, 0xF3,
- 0xA4, 0x03, 0x94, 0x93, 0xB5, 0xDD, 0x40, 0x8D,
- 0x79, 0xD4, 0x8C, 0x56, 0xE1, 0xF8, 0x9B, 0x68,
- 0x7F, 0xBE, 0x33, 0x62, 0xA7, 0x7F, 0xA7, 0x5A,
- 0x54, 0x37, 0x4B, 0x7A, 0x48, 0x5E, 0x91, 0xB1,
- 0x89, 0xAF, 0x2E, 0x2F, 0x74, 0x9E, 0x2A, 0xDB
- },
- {
- 0xA0, 0x7A, 0x4C, 0x02, 0x3A, 0xC7, 0x04, 0xCE,
- 0x7C, 0x09, 0xDD, 0x6C, 0x92, 0xC6, 0xF1, 0x84,
- 0xF5, 0x3E, 0x8D, 0xD9, 0x6F, 0xE3, 0xBE, 0x9E,
- 0x93, 0xC3, 0x9C, 0x53, 0x44, 0x85, 0xB6, 0x4B,
- 0x39, 0xD5, 0xBE, 0x7F, 0x7B, 0x71, 0x70, 0x60,
- 0x4D, 0xE7, 0x7C, 0xE5, 0xA4, 0x37, 0xA9, 0x8E,
- 0x71, 0x2C, 0xC4, 0x4F, 0x19, 0xE2, 0x1D, 0x41,
- 0xF0, 0xE6, 0xE3, 0xEC, 0x1E, 0x00, 0xAC, 0x55
- },
- {
- 0x62, 0x85, 0x84, 0x63, 0x58, 0x2D, 0x22, 0xE6,
- 0x8E, 0x52, 0x27, 0xBF, 0xBA, 0xB5, 0x40, 0x04,
- 0x8F, 0x65, 0xED, 0xD6, 0xA6, 0x75, 0x5F, 0x6F,
- 0xAB, 0x53, 0xC0, 0x25, 0xB6, 0x63, 0xCA, 0x37,
- 0x7A, 0x0E, 0xD5, 0xEF, 0xD6, 0xAF, 0x16, 0x6C,
- 0xA5, 0x5A, 0x9C, 0x73, 0x3F, 0xCA, 0x80, 0x5A,
- 0xC4, 0xE4, 0x09, 0xCA, 0x56, 0x17, 0x7A, 0xA7,
- 0x49, 0x40, 0xDB, 0x9F, 0x40, 0xC3, 0xB9, 0xFF
- },
- {
- 0xA1, 0xAC, 0x53, 0x9D, 0x1A, 0xBB, 0xC2, 0xB0,
- 0x96, 0xFF, 0xAB, 0x81, 0x3B, 0x64, 0x45, 0x7F,
- 0xE6, 0xEB, 0x3B, 0x50, 0xFC, 0xD8, 0x89, 0x53,
- 0xD0, 0xCD, 0x9F, 0x65, 0x02, 0xF6, 0x89, 0x62,
- 0x0A, 0xD4, 0x42, 0xB5, 0x51, 0x70, 0x90, 0xB5,
- 0x0C, 0xFF, 0xB9, 0x58, 0x86, 0x6D, 0x7C, 0x16,
- 0x1D, 0x8A, 0x7D, 0x75, 0x60, 0xC8, 0x93, 0xE1,
- 0xDE, 0xF6, 0xAE, 0xC4, 0x37, 0xAD, 0x6D, 0x06
- },
- {
- 0xB5, 0x86, 0xB7, 0x5D, 0xA7, 0x0F, 0x6C, 0xC0,
- 0x62, 0x7E, 0xF3, 0xCF, 0x12, 0x37, 0xC9, 0x4B,
- 0x12, 0xD0, 0xF7, 0x4D, 0xCB, 0xA2, 0x6A, 0x9E,
- 0x7C, 0x7B, 0xC6, 0xC2, 0x1A, 0x33, 0x53, 0x37,
- 0xBF, 0x9F, 0x5B, 0x83, 0x0C, 0x63, 0x24, 0xAF,
- 0xA6, 0xEF, 0x64, 0x9E, 0x95, 0xAF, 0x87, 0x90,
- 0x87, 0x52, 0x34, 0xC6, 0xE6, 0x61, 0xD3, 0xF5,
- 0xE9, 0x8C, 0xA0, 0x12, 0xAE, 0x81, 0x48, 0x8A
- },
- {
- 0x56, 0x68, 0xA2, 0x98, 0x21, 0x37, 0xCB, 0xC6,
- 0x22, 0xEF, 0x8D, 0x06, 0xCF, 0x4E, 0x86, 0x16,
- 0x8C, 0xDD, 0x4A, 0x89, 0x9C, 0xD4, 0x46, 0x2A,
- 0xF6, 0xC3, 0xD4, 0x15, 0x42, 0x61, 0x56, 0xA5,
- 0xD8, 0xDD, 0x67, 0xC9, 0x60, 0x4F, 0x31, 0xB5,
- 0x7D, 0x6C, 0x9D, 0x59, 0x72, 0x50, 0x45, 0x7E,
- 0x4A, 0xB5, 0x2A, 0x58, 0x11, 0x55, 0x42, 0xAC,
- 0xF2, 0x7F, 0x92, 0x59, 0x30, 0xF6, 0xA1, 0x12
- },
- {
- 0xF2, 0xB1, 0xBD, 0x16, 0xD8, 0x8E, 0x37, 0xF3,
- 0xA5, 0x18, 0xD1, 0x93, 0xED, 0x06, 0x1A, 0x1D,
- 0xF7, 0xB4, 0x43, 0xA1, 0x8C, 0xE9, 0xF8, 0x44,
- 0x45, 0xEF, 0x86, 0xEF, 0xFB, 0xDF, 0xF1, 0x60,
- 0x55, 0x02, 0x3C, 0xD4, 0xE7, 0x8D, 0x03, 0x4D,
- 0xE4, 0x03, 0x2A, 0x77, 0xDD, 0xC1, 0xD3, 0x43,
- 0x52, 0xFE, 0x61, 0x7F, 0x82, 0x56, 0x24, 0x45,
- 0x9B, 0xC3, 0x26, 0x9F, 0x70, 0x4F, 0x34, 0x5B
- },
- {
- 0xF0, 0x85, 0xF3, 0xD8, 0xBD, 0x13, 0x8E, 0x05,
- 0x69, 0x24, 0x3F, 0x74, 0x52, 0x3E, 0x87, 0xFF,
- 0x37, 0x6F, 0x04, 0xEA, 0xBD, 0x5A, 0x2F, 0x6E,
- 0x53, 0xDF, 0x38, 0x99, 0x00, 0x0E, 0x2E, 0x94,
- 0xAF, 0x0D, 0x2B, 0xC7, 0x1C, 0x3F, 0x71, 0x10,
- 0x25, 0xC5, 0x38, 0xA6, 0xC8, 0xB1, 0x0B, 0x09,
- 0x04, 0xDF, 0xC3, 0x46, 0xAD, 0xAD, 0x7E, 0xF3,
- 0x6B, 0x1A, 0xE8, 0x8A, 0x6C, 0xFE, 0xAB, 0xBD
- },
- {
- 0x82, 0x91, 0xA4, 0xAF, 0xD2, 0xE4, 0xB7, 0x16,
- 0x61, 0x77, 0x3A, 0x46, 0xB3, 0xD4, 0x45, 0x5A,
- 0x8D, 0x33, 0xA7, 0x26, 0xD9, 0xD3, 0x87, 0x30,
- 0x83, 0xAB, 0x33, 0x70, 0x20, 0xC2, 0x7B, 0x4D,
- 0xD6, 0x43, 0xE2, 0x8C, 0x2F, 0xE4, 0x7A, 0xB2,
- 0xFB, 0xF5, 0xD1, 0x40, 0x81, 0xA3, 0xFC, 0x1C,
- 0x83, 0x9B, 0x12, 0xEA, 0x31, 0xD1, 0x3C, 0xF4,
- 0x9E, 0xEE, 0x97, 0xEF, 0x2E, 0xD7, 0xFA, 0x3E
- },
- {
- 0xB1, 0x26, 0xAE, 0x46, 0xA7, 0xA4, 0x59, 0x5E,
- 0x31, 0x60, 0x7E, 0xF8, 0x07, 0xA5, 0x60, 0x1F,
- 0x4E, 0xCD, 0x9E, 0x7D, 0x66, 0xC8, 0x2D, 0xAE,
- 0xB9, 0x71, 0x5F, 0x8D, 0xA1, 0xC1, 0x7D, 0x7D,
- 0x71, 0xC3, 0xE6, 0x82, 0x50, 0xC9, 0xDC, 0x01,
- 0xAC, 0x40, 0xA3, 0x6D, 0x2E, 0x63, 0x8B, 0xEF,
- 0x3D, 0x7B, 0xC7, 0x0E, 0xA2, 0xD0, 0xE3, 0x31,
- 0xE3, 0xD3, 0x3E, 0x17, 0x04, 0xEB, 0xA9, 0x2D
- },
- {
- 0x63, 0xB1, 0x4D, 0x8E, 0xD2, 0x47, 0x9C, 0xAA,
- 0x17, 0xC3, 0xE4, 0xCF, 0x20, 0x3B, 0x23, 0x3A,
- 0x7E, 0x37, 0x3E, 0xDB, 0x0C, 0x2F, 0x19, 0x71,
- 0x29, 0xA9, 0xA3, 0x6C, 0x5B, 0x3E, 0x1F, 0x38,
- 0x38, 0xF2, 0xE8, 0x2A, 0xC2, 0xC2, 0xAD, 0x9D,
- 0x52, 0xB3, 0x35, 0x79, 0x0B, 0xFF, 0x57, 0x73,
- 0x04, 0xA3, 0x78, 0xE3, 0x8E, 0xB6, 0xBB, 0x41,
- 0x62, 0x03, 0x0C, 0xE2, 0xA8, 0xBA, 0x29, 0x3C
- },
- {
- 0x34, 0x42, 0x2A, 0x32, 0x29, 0x66, 0x99, 0x28,
- 0xC4, 0x90, 0xF5, 0x7B, 0x8E, 0x76, 0x88, 0x52,
- 0xE5, 0xB7, 0xC0, 0x0D, 0xCA, 0xD6, 0x0B, 0x01,
- 0x2A, 0x5D, 0xB3, 0x9A, 0x2D, 0x59, 0x7C, 0x3D,
- 0x0A, 0x63, 0xBE, 0x6A, 0x26, 0x3E, 0xA5, 0x36,
- 0x08, 0xB7, 0x06, 0x92, 0xD7, 0x8E, 0x1B, 0x42,
- 0x7E, 0xAC, 0xEC, 0x01, 0xF4, 0xBE, 0xE0, 0xBD,
- 0xBB, 0x8F, 0x08, 0x81, 0x48, 0x8E, 0xFC, 0x28
- },
- {
- 0xE2, 0x6B, 0x7E, 0xD6, 0xB9, 0x07, 0xB5, 0x4C,
- 0xA2, 0x65, 0x67, 0xF1, 0x1E, 0xE5, 0xBB, 0x6D,
- 0x73, 0x9A, 0x00, 0x08, 0xA5, 0x34, 0x37, 0xAD,
- 0x75, 0x90, 0xA3, 0x13, 0x4C, 0xEB, 0x95, 0x19,
- 0x6E, 0x49, 0xB3, 0x44, 0x3F, 0x32, 0x49, 0x22,
- 0x51, 0x75, 0x23, 0xC0, 0xCD, 0x5A, 0x00, 0xD7,
- 0x7E, 0x4C, 0x4D, 0xE7, 0xA0, 0xDE, 0x96, 0x8A,
- 0x84, 0xFB, 0x1B, 0x3B, 0xE7, 0xB3, 0xB9, 0x63
- },
- {
- 0x26, 0x01, 0x97, 0xCA, 0xFB, 0xF4, 0x56, 0xB4,
- 0x11, 0xFA, 0x26, 0xD3, 0x83, 0xD6, 0x4D, 0x61,
- 0xE8, 0x1E, 0x5E, 0x52, 0xF8, 0x4C, 0xD9, 0xD5,
- 0x73, 0x86, 0xC7, 0x76, 0x23, 0x0C, 0x65, 0xA2,
- 0x68, 0x1C, 0xD2, 0xFD, 0xFD, 0x28, 0x67, 0x9F,
- 0x67, 0xFE, 0x1B, 0xD7, 0x46, 0x9C, 0xF7, 0x26,
- 0x95, 0x85, 0xFC, 0xCB, 0xAE, 0xCC, 0x22, 0xF5,
- 0x03, 0xD6, 0xE3, 0xFC, 0x39, 0x30, 0x14, 0x36
- },
- {
- 0xCB, 0xD5, 0xAB, 0xE3, 0x7B, 0xCC, 0x4F, 0x9A,
- 0x12, 0x70, 0xAD, 0xD0, 0xA5, 0x27, 0x0F, 0x42,
- 0x83, 0x9C, 0x7D, 0x24, 0x93, 0x20, 0xD1, 0xF1,
- 0xD8, 0x85, 0x53, 0xD0, 0x5F, 0xAF, 0x9A, 0x26,
- 0x79, 0xF4, 0x9B, 0x49, 0xC9, 0xE2, 0x0C, 0x1C,
- 0x85, 0xC6, 0x29, 0xAA, 0x0F, 0x09, 0x0C, 0xAE,
- 0x8F, 0x6E, 0x32, 0xC6, 0xCA, 0xD7, 0x17, 0x21,
- 0xFD, 0x06, 0x23, 0xE4, 0xED, 0x25, 0xB2, 0x56
- },
- {
- 0x78, 0x0E, 0x31, 0x4F, 0xD6, 0x97, 0xD2, 0xA9,
- 0x7D, 0x22, 0x1A, 0x22, 0xC3, 0x90, 0x11, 0xE2,
- 0x50, 0x69, 0x16, 0x3C, 0xD0, 0x8F, 0x00, 0x70,
- 0xD0, 0x67, 0xE8, 0xCD, 0xB0, 0xBC, 0x86, 0x73,
- 0xFD, 0xB0, 0xEC, 0x4F, 0x46, 0xE3, 0x1D, 0x74,
- 0x8C, 0xD3, 0xBB, 0x3D, 0x61, 0xB9, 0x01, 0x0A,
- 0x66, 0x12, 0xF3, 0x41, 0xD4, 0x71, 0xD9, 0xC5,
- 0xA2, 0xDE, 0x6B, 0x6D, 0xD5, 0x38, 0xA6, 0xB5
- },
- {
- 0x40, 0x8F, 0x16, 0xCE, 0x86, 0xF8, 0x01, 0xD0,
- 0x8B, 0xD0, 0x51, 0x36, 0x4B, 0x3E, 0xCD, 0x9A,
- 0x39, 0x45, 0x71, 0x58, 0x88, 0xDF, 0x46, 0x63,
- 0x21, 0x9A, 0x19, 0x0B, 0x35, 0x04, 0xE4, 0x61,
- 0x8E, 0x7B, 0xF5, 0x51, 0x71, 0x17, 0x8B, 0x04,
- 0x00, 0xFB, 0xEB, 0xFA, 0xA0, 0x1F, 0x6E, 0xEA,
- 0xB5, 0x4F, 0xF5, 0xE3, 0x1E, 0x6D, 0x7A, 0x55,
- 0xB8, 0x4A, 0xDB, 0x9E, 0x03, 0xDF, 0x48, 0x36
- },
- {
- 0x0B, 0xF9, 0x88, 0x69, 0xEC, 0x05, 0x80, 0x19,
- 0x9C, 0xA3, 0x70, 0x8E, 0xC9, 0xC4, 0x2C, 0x37,
- 0x6C, 0x5C, 0x36, 0xE0, 0xFB, 0x74, 0x92, 0x42,
- 0x57, 0x23, 0x98, 0xA0, 0xDA, 0x57, 0xF9, 0x8D,
- 0x1C, 0x4C, 0xD2, 0x96, 0x3B, 0x37, 0xC3, 0xC6,
- 0x5A, 0x10, 0xF1, 0x06, 0xB5, 0x6D, 0xCB, 0x96,
- 0xDC, 0xDD, 0x32, 0x57, 0x96, 0x29, 0x7A, 0xDB,
- 0xF6, 0xEE, 0x62, 0x70, 0xED, 0xD4, 0x59, 0x2A
- },
- {
- 0x05, 0x2C, 0x32, 0x98, 0x43, 0x87, 0xB1, 0x93,
- 0x0D, 0x3A, 0x96, 0xBE, 0x72, 0x36, 0x85, 0x35,
- 0x44, 0x4F, 0x13, 0x07, 0x57, 0xBF, 0x87, 0xE0,
- 0x76, 0x2D, 0x8B, 0x1C, 0x4F, 0x65, 0x70, 0xF4,
- 0xDC, 0x67, 0x4C, 0x4E, 0x6F, 0x5E, 0x21, 0xAB,
- 0xD0, 0xB3, 0x5E, 0x1C, 0xA1, 0x9D, 0xB8, 0x40,
- 0x68, 0x8D, 0x1B, 0x6E, 0x9E, 0xC9, 0x1F, 0x37,
- 0x30, 0xE8, 0xB2, 0x88, 0x0E, 0xC2, 0xC3, 0xDF
- },
- {
- 0x4B, 0xB7, 0x14, 0x09, 0xC1, 0x5A, 0x0D, 0x39,
- 0x32, 0xC5, 0x99, 0xEF, 0x0F, 0xF3, 0xEF, 0xF5,
- 0xC7, 0x60, 0x2D, 0x70, 0x00, 0xCD, 0xA9, 0x74,
- 0x08, 0x2C, 0x4A, 0x46, 0x82, 0x24, 0x9A, 0x19,
- 0xD4, 0x3A, 0x5C, 0x14, 0xE0, 0xAE, 0xEF, 0x89,
- 0x78, 0x21, 0x05, 0x63, 0x80, 0xAF, 0xF2, 0x75,
- 0x20, 0x1D, 0x74, 0x59, 0x14, 0x84, 0x96, 0xEA,
- 0xE9, 0x42, 0x0E, 0x71, 0x82, 0x88, 0xB4, 0x14
- },
- {
- 0x47, 0x95, 0xB2, 0x51, 0xCC, 0x7B, 0x35, 0xE6,
- 0x96, 0x92, 0xDB, 0x7F, 0xB4, 0x0E, 0xFD, 0x34,
- 0xF2, 0x94, 0xF5, 0x1A, 0xEC, 0x15, 0xD6, 0xC8,
- 0x67, 0x3E, 0x59, 0xF2, 0x04, 0xBE, 0xCF, 0x4C,
- 0xF9, 0xDF, 0x84, 0x95, 0x23, 0xF1, 0xDB, 0x73,
- 0xBE, 0x2A, 0x66, 0xC8, 0x39, 0xD8, 0x01, 0x97,
- 0x4D, 0x43, 0x3B, 0x47, 0x80, 0x67, 0x01, 0xA1,
- 0x63, 0xA7, 0x94, 0xB2, 0x6A, 0x84, 0x6B, 0x06
- },
- {
- 0xDD, 0x50, 0xF9, 0x65, 0xB6, 0x0B, 0xAF, 0x16,
- 0x8F, 0x5E, 0xA0, 0x5A, 0xC2, 0x0B, 0x8A, 0x78,
- 0xF4, 0x47, 0x5C, 0x18, 0x61, 0x0B, 0x9D, 0x9F,
- 0xC2, 0xB7, 0xC3, 0xAD, 0x5C, 0x6F, 0x97, 0xA4,
- 0xCF, 0x5E, 0xA4, 0x8E, 0xE4, 0x0A, 0x3C, 0xA2,
- 0x29, 0x3C, 0xC4, 0x21, 0x40, 0x82, 0xCF, 0x0F,
- 0x8E, 0xC8, 0x95, 0x55, 0x32, 0x69, 0xE1, 0x4D,
- 0xA9, 0xBD, 0x1A, 0x19, 0x65, 0x62, 0xCA, 0x59
- },
- {
- 0xE0, 0xB5, 0x4B, 0x61, 0x7F, 0x44, 0x92, 0x2C,
- 0x7F, 0x61, 0xC6, 0xA5, 0x4C, 0x98, 0xC6, 0x1E,
- 0x93, 0x2D, 0xED, 0x1F, 0xA9, 0x34, 0x02, 0x66,
- 0xEE, 0xA2, 0x5F, 0x01, 0xE8, 0x18, 0x0D, 0x1D,
- 0xDC, 0x6A, 0xD8, 0xDD, 0x6A, 0x0B, 0x8F, 0xAB,
- 0x8C, 0x73, 0xAE, 0xBB, 0x97, 0x73, 0x17, 0x1B,
- 0xBA, 0x04, 0xA7, 0x81, 0xB1, 0x13, 0x14, 0xD5,
- 0xA3, 0x0A, 0x9D, 0x1C, 0x28, 0x12, 0xCA, 0x7C
- },
- {
- 0x2D, 0xC4, 0xAD, 0x06, 0x89, 0xA4, 0x46, 0x0B,
- 0x5B, 0x39, 0x9E, 0x91, 0x1B, 0xDB, 0x41, 0x58,
- 0x6A, 0xC8, 0xAD, 0x36, 0x7B, 0x7A, 0xA3, 0x9E,
- 0x3E, 0xAE, 0xC8, 0x89, 0x9A, 0x2D, 0x3C, 0xE3,
- 0x8E, 0x34, 0xAB, 0x46, 0x08, 0x23, 0x4D, 0x75,
- 0xEB, 0x67, 0x37, 0xFE, 0x21, 0x58, 0x24, 0xC2,
- 0xA9, 0x78, 0x83, 0x59, 0x6F, 0x6F, 0x18, 0xDD,
- 0xEB, 0xBF, 0x16, 0x27, 0xDE, 0xD9, 0x1D, 0x84
- },
- {
- 0xF5, 0x6A, 0x11, 0xCB, 0xBF, 0x8A, 0x99, 0x7E,
- 0x14, 0x77, 0xEC, 0x76, 0xE5, 0x3C, 0x89, 0x4B,
- 0x14, 0x8D, 0x69, 0x25, 0xA4, 0x33, 0x6F, 0x0C,
- 0xB7, 0xAA, 0xB9, 0xD8, 0x02, 0xAC, 0x9B, 0x45,
- 0x36, 0xF4, 0x80, 0x10, 0x1F, 0x3F, 0x9A, 0x77,
- 0xEE, 0xCD, 0xCB, 0xAE, 0x7A, 0xA6, 0xEA, 0x44,
- 0x7A, 0x85, 0xDA, 0x90, 0xB5, 0x01, 0xF7, 0xDB,
- 0x2E, 0xF8, 0xDD, 0xF5, 0xDE, 0x17, 0x33, 0x63
- },
- {
- 0x6E, 0x17, 0x1D, 0x19, 0x6D, 0x0F, 0xC8, 0x2F,
- 0xB4, 0x73, 0xE2, 0x9D, 0xA8, 0xF4, 0x0F, 0x37,
- 0xEE, 0x97, 0x41, 0xAC, 0x3E, 0xAF, 0x17, 0x5D,
- 0xD4, 0x9F, 0xDB, 0x56, 0x53, 0x0D, 0xB5, 0x98,
- 0x98, 0xBA, 0xF3, 0xCE, 0xE7, 0x2E, 0xEF, 0x5E,
- 0x77, 0x27, 0x6C, 0xAD, 0xAB, 0xCD, 0x75, 0x2C,
- 0xA3, 0xA1, 0xB8, 0x64, 0xC1, 0x0A, 0xD2, 0x8D,
- 0x27, 0xEA, 0xAD, 0x86, 0xE3, 0xF2, 0x1D, 0x33
- },
- {
- 0x95, 0x20, 0x12, 0x33, 0x0D, 0x92, 0xBB, 0x9C,
- 0x18, 0x92, 0xF2, 0x5B, 0x7B, 0x5A, 0xA0, 0xFE,
- 0xD3, 0xC0, 0x39, 0x8A, 0x17, 0x08, 0x50, 0x9A,
- 0x66, 0x14, 0x74, 0xA3, 0xF5, 0xE5, 0x11, 0xD0,
- 0x9F, 0x21, 0xC3, 0x00, 0x08, 0x00, 0x2F, 0x10,
- 0x42, 0xD8, 0x3D, 0x2F, 0x7B, 0x11, 0x33, 0x6B,
- 0x8C, 0x2F, 0xE1, 0xD9, 0x79, 0xC1, 0xE3, 0x86,
- 0xE0, 0x20, 0x97, 0x48, 0x9B, 0x2D, 0xFC, 0xF5
- },
- {
- 0x2D, 0xCE, 0x47, 0xC3, 0x3A, 0x7E, 0x7F, 0x21,
- 0x5D, 0x34, 0xA5, 0x47, 0x1B, 0xCD, 0x11, 0x10,
- 0x60, 0x6C, 0x77, 0x13, 0x8F, 0x19, 0xD4, 0x17,
- 0x41, 0xED, 0x5D, 0x1B, 0x89, 0xE8, 0xF7, 0xC7,
- 0x74, 0xEE, 0xC4, 0xBB, 0xC1, 0x02, 0x76, 0x6E,
- 0xA1, 0x53, 0x2F, 0x2E, 0x43, 0x13, 0x4A, 0xD3,
- 0x66, 0xBD, 0xCC, 0x27, 0xD1, 0xA0, 0xCC, 0x95,
- 0x9E, 0x16, 0x48, 0x65, 0x9E, 0x44, 0xCB, 0xBE
- },
- {
- 0x7F, 0x06, 0x59, 0x59, 0x7E, 0x7A, 0xD1, 0x22,
- 0xD1, 0xC9, 0xED, 0x91, 0x93, 0x0B, 0x07, 0xDE,
- 0x40, 0xE2, 0x55, 0x20, 0x1A, 0x33, 0xEB, 0x2B,
- 0x31, 0x81, 0x37, 0x6E, 0x36, 0x8D, 0xF7, 0x76,
- 0x4C, 0x0C, 0x14, 0xBF, 0x79, 0x9F, 0x16, 0x1B,
- 0x9B, 0x00, 0x79, 0x57, 0x8B, 0x47, 0x09, 0x71,
- 0x3E, 0x24, 0xE4, 0x2F, 0xE7, 0xDD, 0x71, 0xB5,
- 0x09, 0x43, 0xF4, 0x40, 0xE2, 0x3C, 0xD1, 0xBE
- },
- {
- 0x1E, 0x66, 0xF7, 0xB3, 0x58, 0x80, 0x5D, 0xDD,
- 0xFF, 0xC5, 0x82, 0x68, 0x3E, 0x0B, 0xAD, 0x81,
- 0x8C, 0x87, 0x34, 0x03, 0xD4, 0xBA, 0x15, 0x06,
- 0xB9, 0x2F, 0xB3, 0x20, 0xCA, 0x8C, 0xF9, 0xCE,
- 0xE8, 0x15, 0x47, 0x15, 0xD6, 0xDB, 0x6F, 0x04,
- 0x09, 0x3D, 0x4B, 0x3F, 0xD8, 0xA6, 0xFC, 0x8E,
- 0x7E, 0xDD, 0xEA, 0xF2, 0x79, 0x5B, 0x3D, 0x22,
- 0xDE, 0x7C, 0x75, 0xEC, 0xFF, 0x6F, 0x92, 0xAF
- },
- {
- 0x1F, 0x60, 0xC1, 0x8D, 0xB1, 0x68, 0xD9, 0x0D,
- 0x2B, 0x46, 0x60, 0xE7, 0x58, 0xA3, 0xCD, 0x28,
- 0x02, 0x3D, 0x4C, 0x0B, 0x84, 0x8B, 0x5E, 0x33,
- 0xEA, 0x5C, 0xC1, 0x56, 0x29, 0xFD, 0x35, 0x2E,
- 0xAC, 0xB1, 0x4F, 0x05, 0xFD, 0xEC, 0x07, 0xAC,
- 0x23, 0xDA, 0x92, 0x04, 0x74, 0x5F, 0xA9, 0x73,
- 0xC3, 0x29, 0x55, 0x13, 0x5F, 0x8E, 0xC7, 0x41,
- 0x0A, 0x1C, 0xB5, 0x3B, 0xC7, 0x58, 0x06, 0x84
- },
- {
- 0xB9, 0xDF, 0x57, 0xB3, 0x45, 0xEE, 0x6F, 0x87,
- 0x0E, 0xE0, 0xE6, 0x3C, 0x55, 0x8B, 0x81, 0xC1,
- 0xBC, 0x38, 0x42, 0x97, 0x6F, 0xD3, 0xCF, 0xB1,
- 0xB5, 0x3B, 0x76, 0x6B, 0xF4, 0x36, 0xD1, 0xD1,
- 0x75, 0xF4, 0xD4, 0xC5, 0xF1, 0xBD, 0x8D, 0x7A,
- 0xF6, 0x5B, 0x5D, 0x18, 0xA7, 0x2F, 0x95, 0x71,
- 0xF2, 0x34, 0x70, 0x19, 0x32, 0xAF, 0xB7, 0xC3,
- 0xC9, 0x4A, 0x8C, 0x8F, 0xA0, 0x23, 0xDB, 0x4F
- },
- {
- 0xD8, 0xC8, 0x24, 0x95, 0xA2, 0xB5, 0xF6, 0x64,
- 0x51, 0xF8, 0xC5, 0xB2, 0xE8, 0xA1, 0x73, 0x33,
- 0xC2, 0xBE, 0x32, 0x20, 0xCE, 0x06, 0xA8, 0x14,
- 0xC2, 0xCE, 0xA9, 0x5C, 0xC8, 0x65, 0x92, 0xAA,
- 0x02, 0x15, 0xBF, 0x29, 0x46, 0x14, 0xA3, 0x28,
- 0xCF, 0x07, 0x22, 0x2B, 0x73, 0xF9, 0x3F, 0x24,
- 0x2A, 0x94, 0x8B, 0xCA, 0xE9, 0x56, 0x5F, 0xC9,
- 0x70, 0x57, 0xB5, 0x2E, 0x02, 0x80, 0xEB, 0x82
- },
- {
- 0x81, 0x34, 0xCE, 0x66, 0xD9, 0x5C, 0x40, 0x88,
- 0xA5, 0x66, 0xD4, 0xE4, 0x35, 0x99, 0x06, 0x9A,
- 0xD0, 0x45, 0x53, 0xB0, 0xFE, 0xA3, 0xD7, 0x48,
- 0x19, 0xA6, 0xFD, 0x76, 0x6F, 0x43, 0x67, 0x42,
- 0xF6, 0xB6, 0xEC, 0xC8, 0x27, 0x93, 0x98, 0x60,
- 0x9F, 0x60, 0xB4, 0xE4, 0xBB, 0x44, 0xFD, 0x72,
- 0xCD, 0xFB, 0xFF, 0x18, 0xD8, 0x03, 0x8A, 0xA7,
- 0x12, 0x30, 0x83, 0x8B, 0x12, 0x6B, 0xC3, 0x00
- },
- {
- 0x3D, 0xA8, 0x9F, 0x5C, 0x52, 0xB0, 0x52, 0xE0,
- 0x42, 0xE5, 0x11, 0x7B, 0x96, 0x80, 0x6E, 0xDB,
- 0x1C, 0x55, 0x22, 0x7E, 0x85, 0x14, 0xB3, 0x9E,
- 0x8B, 0x22, 0xBE, 0xA4, 0xC9, 0x53, 0x30, 0x80,
- 0xA4, 0xD7, 0xA9, 0x24, 0x92, 0xB7, 0x51, 0x76,
- 0x9B, 0x0E, 0x11, 0x9E, 0xF4, 0xDB, 0x2B, 0xB8,
- 0x8D, 0x5C, 0x1E, 0x75, 0xB4, 0x03, 0x10, 0x74,
- 0xD7, 0xF2, 0x1A, 0x78, 0x01, 0x4A, 0x1F, 0x96
- },
- {
- 0x9B, 0xDC, 0xB4, 0x69, 0xC2, 0x66, 0x5D, 0xD8,
- 0x46, 0x83, 0xE5, 0x81, 0x01, 0xFD, 0xAE, 0x5C,
- 0x88, 0x29, 0x2A, 0x4E, 0x05, 0xC4, 0x00, 0xCA,
- 0x08, 0x26, 0xDA, 0x79, 0x38, 0x2B, 0x8A, 0x28,
- 0x26, 0xFF, 0x24, 0xFC, 0xD5, 0x56, 0xC9, 0xD5,
- 0xB5, 0xAA, 0x89, 0x2F, 0x02, 0xB1, 0x67, 0x04,
- 0x77, 0x27, 0x9B, 0xD7, 0x5F, 0x1B, 0x2B, 0x7B,
- 0x67, 0x5E, 0xFA, 0xC3, 0x80, 0x60, 0x70, 0x36
- },
- {
- 0x6C, 0x77, 0x85, 0x7B, 0x38, 0x53, 0x3E, 0x41,
- 0x4A, 0xF7, 0x38, 0x7C, 0x98, 0x56, 0x8D, 0x71,
- 0xC8, 0xF0, 0xE3, 0x5E, 0x22, 0xB0, 0x2E, 0x2A,
- 0x1C, 0x0D, 0xC6, 0xD5, 0x7E, 0x37, 0xD8, 0x68,
- 0x72, 0x5A, 0xD8, 0x23, 0x58, 0x6A, 0x0B, 0xEE,
- 0xF3, 0x98, 0x89, 0xCC, 0x31, 0xF1, 0xF7, 0xFA,
- 0xD0, 0x96, 0x0A, 0x12, 0x5E, 0x29, 0xDF, 0xEA,
- 0x74, 0x55, 0x12, 0xD1, 0x79, 0xE5, 0xF5, 0x89
- },
- {
- 0x88, 0xC9, 0x83, 0x3A, 0x6D, 0x44, 0xFC, 0x25,
- 0xBB, 0x64, 0xF3, 0xE9, 0x8E, 0x83, 0x8F, 0xB4,
- 0xFF, 0x56, 0x48, 0x96, 0xDC, 0xD3, 0x58, 0x3A,
- 0x8B, 0x57, 0xC9, 0x46, 0x6E, 0x74, 0x0C, 0x62,
- 0x8B, 0x2D, 0x26, 0xEA, 0x14, 0x7C, 0xB3, 0x11,
- 0x10, 0xFB, 0xAD, 0xCF, 0x9D, 0x01, 0x08, 0xAC,
- 0xCE, 0xBE, 0x04, 0x31, 0x7D, 0x19, 0xFC, 0x03,
- 0x66, 0xDE, 0x0C, 0x28, 0xA1, 0xA4, 0x5E, 0x2A
- },
- {
- 0x0A, 0xAB, 0xB3, 0xA1, 0x78, 0x46, 0x4A, 0x01,
- 0x47, 0x64, 0x5F, 0x05, 0x71, 0x2A, 0x0A, 0x15,
- 0x55, 0xC5, 0xB9, 0xA3, 0xE9, 0x99, 0xAB, 0x25,
- 0x5A, 0xCA, 0x35, 0xC5, 0x03, 0x81, 0xF4, 0x90,
- 0x55, 0x1A, 0x40, 0x89, 0x31, 0xAA, 0x6B, 0xE9,
- 0xA4, 0xEF, 0x49, 0x7A, 0x16, 0x5B, 0x36, 0x66,
- 0x3B, 0x1E, 0x1F, 0x05, 0x13, 0x48, 0x02, 0xB1,
- 0x78, 0xB7, 0xC7, 0x04, 0x68, 0xCB, 0x98, 0xE8
- },
- {
- 0x58, 0x50, 0xD8, 0x93, 0x70, 0x6B, 0x3B, 0xC2,
- 0xDB, 0xBA, 0x9C, 0xFA, 0xB0, 0x28, 0xBE, 0xD8,
- 0x19, 0xA2, 0x83, 0x11, 0xD2, 0xD6, 0xF0, 0xCD,
- 0x8E, 0x27, 0x2E, 0xE6, 0x77, 0xBC, 0x87, 0x8A,
- 0x0C, 0xED, 0x6C, 0x0D, 0xEA, 0x9E, 0x5C, 0xC9,
- 0x4B, 0x2B, 0x4F, 0x59, 0x1A, 0x40, 0xEC, 0x9F,
- 0xB1, 0x82, 0x22, 0xD6, 0xDE, 0xAC, 0xE1, 0xF9,
- 0xC0, 0x83, 0xDC, 0x05, 0xDE, 0x11, 0x7A, 0x53
- },
- {
- 0xBE, 0xE6, 0x96, 0xA4, 0x76, 0x4F, 0x94, 0x25,
- 0xD9, 0x1B, 0x14, 0x17, 0x38, 0x62, 0x5A, 0x04,
- 0x47, 0xA8, 0x22, 0xBB, 0xA7, 0xA8, 0x47, 0x78,
- 0xCC, 0x3A, 0x77, 0xA3, 0x86, 0xCB, 0x18, 0x24,
- 0x87, 0xDB, 0x51, 0x3B, 0xB8, 0xF3, 0x6F, 0xC2,
- 0xF7, 0xE6, 0xD2, 0x89, 0x6E, 0x44, 0x56, 0xA5,
- 0x23, 0x46, 0xC4, 0x94, 0x8E, 0x3E, 0xC6, 0x34,
- 0xCB, 0xF1, 0x8F, 0x39, 0xC4, 0x46, 0xCB, 0xAB
- },
- {
- 0x3D, 0x9F, 0x75, 0xD3, 0xE5, 0x0D, 0x9B, 0xA3,
- 0xBC, 0xAC, 0x4A, 0x4E, 0x11, 0x6B, 0x9B, 0x30,
- 0x8D, 0xC6, 0x45, 0x99, 0xA3, 0x86, 0x4A, 0x9D,
- 0xAF, 0xD7, 0x5C, 0xB7, 0x1F, 0x2D, 0xE3, 0x10,
- 0x9F, 0x79, 0x56, 0xA7, 0xD2, 0xDD, 0x37, 0x4F,
- 0x84, 0x06, 0xD7, 0x7F, 0x79, 0x63, 0x11, 0xE3,
- 0xD3, 0x00, 0x89, 0xE5, 0x4D, 0xD6, 0xCE, 0x8A,
- 0xBB, 0x02, 0xA8, 0x5A, 0x85, 0xAE, 0x92, 0xE4
- },
- {
- 0xEF, 0x39, 0x51, 0x47, 0x5A, 0x16, 0xDF, 0x64,
- 0x98, 0x32, 0x24, 0x04, 0x65, 0x30, 0xDC, 0x7C,
- 0xB0, 0x53, 0xD2, 0x93, 0x94, 0x75, 0x39, 0x11,
- 0xC4, 0x94, 0x99, 0x50, 0xF2, 0x3E, 0x8A, 0x92,
- 0xC7, 0x09, 0xF4, 0x63, 0x69, 0xB2, 0x3A, 0x0D,
- 0x70, 0x3A, 0x6F, 0x36, 0x49, 0x0F, 0x75, 0xBE,
- 0x1E, 0x3E, 0x81, 0x29, 0xA8, 0x29, 0xF3, 0xDC,
- 0xD7, 0x2D, 0x0E, 0x55, 0x49, 0x7B, 0x81, 0x33
- },
- {
- 0xD4, 0x19, 0x7D, 0x2A, 0x68, 0x5B, 0xCA, 0x6B,
- 0xFB, 0xDD, 0x0E, 0x3D, 0x84, 0xC7, 0x48, 0x01,
- 0x35, 0x48, 0xBC, 0x84, 0x9F, 0xE6, 0x49, 0xDA,
- 0xE7, 0xC4, 0xA2, 0x77, 0xFC, 0xBD, 0x8F, 0x81,
- 0x8A, 0x9E, 0xDF, 0xA6, 0xCA, 0x14, 0xD7, 0xFE,
- 0xEA, 0x72, 0x6B, 0x23, 0xB4, 0xA3, 0x3A, 0xA8,
- 0xA3, 0xF5, 0xA6, 0x61, 0x67, 0x21, 0x5C, 0x61,
- 0x48, 0xC0, 0x6B, 0x94, 0xCD, 0x8B, 0xFE, 0x37
- },
- {
- 0x7A, 0x24, 0x40, 0x33, 0x35, 0xB8, 0x64, 0x10,
- 0xD8, 0xD6, 0x93, 0xF1, 0x63, 0xD6, 0x19, 0x8A,
- 0x68, 0x0F, 0x7E, 0x3A, 0xC0, 0x25, 0xEC, 0x44,
- 0x74, 0x24, 0x9B, 0x01, 0x16, 0x77, 0xFE, 0x1C,
- 0x86, 0x6A, 0xAF, 0x45, 0x3D, 0xB0, 0xE8, 0xF6,
- 0x54, 0x33, 0x51, 0x50, 0x86, 0x3A, 0xCE, 0x57,
- 0x66, 0x50, 0x80, 0x31, 0x91, 0x27, 0x8E, 0x9D,
- 0x4B, 0x54, 0x7A, 0x43, 0x4C, 0x56, 0x54, 0xE2
- },
- {
- 0xAF, 0x07, 0xC6, 0x7D, 0x58, 0x74, 0x3A, 0xEB,
- 0x18, 0x50, 0xEB, 0x53, 0xB2, 0xDA, 0x78, 0xEC,
- 0xF7, 0x09, 0x58, 0x18, 0x32, 0x5B, 0xEB, 0x86,
- 0x6F, 0xF3, 0x13, 0xE3, 0x94, 0xC0, 0x07, 0xE0,
- 0xC0, 0xB5, 0xA1, 0xCD, 0x7A, 0xE6, 0xBB, 0x37,
- 0xCD, 0x27, 0x81, 0xB5, 0x2D, 0x15, 0x4D, 0x18,
- 0x86, 0x5D, 0x5E, 0x37, 0xDB, 0xAA, 0x5F, 0x96,
- 0x73, 0x9B, 0xF7, 0x69, 0x59, 0x96, 0xAE, 0x30
- },
- {
- 0x28, 0xB3, 0xC2, 0x60, 0xFA, 0x7F, 0x23, 0xB9,
- 0xCC, 0xAD, 0xD6, 0x15, 0xA1, 0x14, 0x69, 0x49,
- 0x8A, 0xDB, 0x18, 0xD7, 0xA9, 0xF6, 0x84, 0xFD,
- 0xE4, 0x35, 0xC0, 0x65, 0x33, 0xF5, 0xF5, 0x08,
- 0xB2, 0x9B, 0x5E, 0xCD, 0x0E, 0xCD, 0x57, 0x36,
- 0x9F, 0x22, 0xF1, 0xC5, 0x4E, 0x61, 0xBE, 0x6C,
- 0xD1, 0x04, 0xC8, 0xF7, 0xD3, 0xE1, 0x84, 0x7A,
- 0xAD, 0x67, 0x07, 0x3A, 0x47, 0x86, 0xE1, 0xDB
- },
- {
- 0xD6, 0x43, 0x23, 0x33, 0x25, 0x23, 0x9E, 0x2E,
- 0xBD, 0x41, 0x1F, 0x0E, 0x00, 0x23, 0x30, 0x56,
- 0x2E, 0xB1, 0xBB, 0x08, 0xE6, 0x88, 0x24, 0xB7,
- 0x1B, 0x98, 0x19, 0x9C, 0x76, 0xD5, 0x31, 0x58,
- 0xD9, 0x1D, 0xDD, 0x6F, 0x4F, 0x82, 0x61, 0xEC,
- 0x1D, 0x72, 0xFC, 0x77, 0xC2, 0xCC, 0x23, 0x7E,
- 0xDA, 0x15, 0xF0, 0x25, 0x7C, 0xF0, 0x7B, 0x84,
- 0xCF, 0x1F, 0xBD, 0x1D, 0xBA, 0xFA, 0x1D, 0xFC
- },
- {
- 0x3D, 0x7B, 0x44, 0xCC, 0x82, 0xEF, 0xCA, 0xFC,
- 0xAB, 0xA6, 0xB1, 0x91, 0x05, 0x48, 0x95, 0x8C,
- 0x18, 0x0A, 0x0E, 0x8D, 0x84, 0xBC, 0x66, 0x3E,
- 0x8E, 0xF9, 0x53, 0x3B, 0xD8, 0x0C, 0x4B, 0xBA,
- 0xAA, 0x25, 0x5B, 0x19, 0x81, 0xF7, 0x56, 0xEB,
- 0x10, 0x79, 0xAD, 0x0F, 0x34, 0x71, 0xA1, 0xFC,
- 0x9D, 0x7A, 0x43, 0x23, 0x39, 0x30, 0x3A, 0x57,
- 0x81, 0xA3, 0x45, 0x35, 0x30, 0x9E, 0x5A, 0x24
- },
- {
- 0xEB, 0x08, 0x12, 0xC9, 0x67, 0x06, 0x46, 0xD5,
- 0x63, 0x19, 0x8B, 0x11, 0x7A, 0xAF, 0xC5, 0x6F,
- 0xA1, 0xB6, 0x56, 0x0F, 0x88, 0xB5, 0x75, 0x4E,
- 0xBF, 0xC3, 0x1B, 0x35, 0x52, 0x16, 0xD8, 0xD7,
- 0x4D, 0x34, 0x1E, 0x35, 0xB2, 0x43, 0xBC, 0x93,
- 0x8C, 0xF5, 0x46, 0xAF, 0x1F, 0x73, 0xC1, 0xB0,
- 0x04, 0x55, 0xDC, 0x06, 0xB2, 0xC6, 0xC5, 0x35,
- 0x27, 0x9E, 0x87, 0x67, 0x49, 0x8F, 0x14, 0xE6
- },
- {
- 0x7B, 0xBA, 0x7D, 0x73, 0x04, 0x02, 0x1C, 0x75,
- 0xB5, 0xD6, 0xCE, 0x66, 0xB4, 0xEF, 0xA5, 0x50,
- 0x19, 0xD9, 0x42, 0xD2, 0x08, 0xAF, 0xAC, 0x82,
- 0x11, 0xAA, 0x7E, 0x5E, 0x11, 0x1E, 0x27, 0x69,
- 0x76, 0x70, 0xE4, 0xEC, 0x91, 0xBA, 0x30, 0x8E,
- 0xBD, 0xFB, 0x19, 0x15, 0x4C, 0x3B, 0xAD, 0x05,
- 0x26, 0xA6, 0x25, 0x41, 0xAE, 0x5D, 0x43, 0xD0,
- 0xF5, 0x47, 0xB9, 0xD9, 0x8E, 0x07, 0x36, 0x60
- },
- {
- 0xA8, 0xE2, 0xA9, 0x46, 0x8D, 0xA3, 0xE3, 0x54,
- 0x3A, 0x23, 0xA5, 0x78, 0x78, 0x0E, 0x25, 0x62,
- 0xC7, 0xCE, 0x57, 0xFD, 0x11, 0x20, 0xE1, 0xC0,
- 0x24, 0xD7, 0xEA, 0x32, 0x90, 0x31, 0x70, 0x46,
- 0x61, 0x6E, 0x14, 0xCD, 0x0F, 0x15, 0xA8, 0x6B,
- 0x99, 0x39, 0x54, 0x9B, 0x14, 0x76, 0x11, 0xB6,
- 0xA5, 0x5D, 0x85, 0xAB, 0xC2, 0x5F, 0x63, 0x95,
- 0x46, 0xB8, 0x9D, 0xD2, 0x3D, 0x39, 0xA9, 0x85
- },
- {
- 0xCE, 0x87, 0x4C, 0xD6, 0xE1, 0x95, 0x8B, 0x9D,
- 0x7F, 0x11, 0xFF, 0x44, 0xAB, 0x08, 0x32, 0xE8,
- 0x48, 0x70, 0x2C, 0x8F, 0x26, 0x65, 0x6B, 0xA1,
- 0x0B, 0xF5, 0x72, 0x0A, 0x7C, 0xAA, 0x1F, 0x59,
- 0x08, 0xC9, 0x9A, 0x96, 0x03, 0xA9, 0x8B, 0x41,
- 0x6C, 0x57, 0x22, 0x8C, 0x81, 0x9C, 0xEA, 0xF8,
- 0x27, 0x01, 0x3B, 0x2E, 0x6D, 0x6B, 0x2D, 0xAE,
- 0x59, 0xDF, 0xF1, 0x04, 0xB9, 0x02, 0xC3, 0x1B
- },
- {
- 0x30, 0xFF, 0xFE, 0x37, 0x21, 0x8D, 0xB1, 0x94,
- 0xB2, 0x32, 0x73, 0x49, 0x8F, 0x45, 0x44, 0xD3,
- 0x84, 0x14, 0xBE, 0xE4, 0x1B, 0x17, 0x55, 0xA0,
- 0xC6, 0xC2, 0xDB, 0xCB, 0x41, 0x19, 0x42, 0xD5,
- 0xEC, 0xB9, 0xD4, 0x52, 0x3F, 0xB4, 0x79, 0x4B,
- 0xA3, 0x6E, 0x57, 0x9A, 0xF2, 0xF8, 0xDD, 0x85,
- 0x19, 0x99, 0x23, 0x31, 0x83, 0xFA, 0xB2, 0x7B,
- 0x47, 0xAD, 0xD8, 0x7D, 0xF3, 0x59, 0x14, 0xBB
- },
- {
- 0xCE, 0xF4, 0x43, 0x1D, 0xCE, 0x9F, 0xF5, 0x5A,
- 0x00, 0x30, 0x0E, 0xC8, 0x64, 0x9E, 0x27, 0x58,
- 0x36, 0x18, 0x22, 0x43, 0x69, 0xF6, 0x0A, 0x5C,
- 0x89, 0x6B, 0x2A, 0x31, 0x10, 0xB0, 0x32, 0xB8,
- 0x7C, 0x9E, 0xE4, 0xF2, 0x6C, 0x5F, 0x0B, 0xDB,
- 0x50, 0x3E, 0xA7, 0x44, 0x7A, 0x5D, 0xB3, 0xF7,
- 0x07, 0xFE, 0x34, 0x10, 0xDA, 0xCD, 0xD7, 0x57,
- 0x22, 0x19, 0xBD, 0xEA, 0x8E, 0x17, 0xDC, 0x04
- },
- {
- 0x8F, 0xF0, 0xBC, 0xB7, 0x5F, 0x00, 0x61, 0xB5,
- 0xF9, 0x09, 0x29, 0x8F, 0x56, 0x9E, 0x45, 0xC7,
- 0x5E, 0xD2, 0xD6, 0x4A, 0x81, 0x89, 0xCE, 0xBD,
- 0x4E, 0x02, 0x56, 0x6E, 0x1A, 0x1B, 0x8B, 0xE5,
- 0x3A, 0x78, 0x32, 0x28, 0x55, 0x8E, 0x28, 0xB5,
- 0xF8, 0x7C, 0xCC, 0x2F, 0x42, 0x8F, 0x7F, 0x87,
- 0x97, 0x44, 0xB5, 0x25, 0xB2, 0x49, 0x62, 0xB3,
- 0x60, 0x4B, 0x12, 0x0F, 0x06, 0x77, 0x9F, 0x2E
- },
- {
- 0x7F, 0x8D, 0xDF, 0xFB, 0x4D, 0xC1, 0x51, 0x91,
- 0xDE, 0x3D, 0xDB, 0xE4, 0xA0, 0xF8, 0x8B, 0x7A,
- 0xB0, 0x2D, 0x48, 0xE2, 0x5C, 0xFC, 0x1F, 0xE9,
- 0x1D, 0xA5, 0x57, 0xE8, 0x85, 0xD0, 0x12, 0xB8,
- 0xF6, 0x55, 0x26, 0xC5, 0xB7, 0xB1, 0x01, 0x3F,
- 0xC8, 0x16, 0x58, 0x50, 0x43, 0xA3, 0x45, 0x60,
- 0x5A, 0x39, 0xD8, 0xDA, 0xD7, 0x0D, 0x8A, 0x64,
- 0x48, 0x51, 0x32, 0x50, 0xAA, 0xC4, 0xF3, 0xD5
- },
- {
- 0xB1, 0xFE, 0x8C, 0x68, 0xAE, 0xF6, 0xB4, 0xD4,
- 0xB2, 0x33, 0x54, 0xEB, 0x8C, 0x1D, 0x8F, 0x5A,
- 0x56, 0xE3, 0x2E, 0x76, 0xB9, 0x6A, 0xC8, 0x44,
- 0x3B, 0x2A, 0xB8, 0x35, 0xE4, 0xC8, 0xB6, 0x74,
- 0xB3, 0x3E, 0x4C, 0x6C, 0x6D, 0xC1, 0x21, 0xD7,
- 0xC2, 0xD3, 0x4B, 0x59, 0xB3, 0x7A, 0x56, 0x8A,
- 0x1C, 0x98, 0xD5, 0x00, 0x32, 0x4E, 0x53, 0x08,
- 0x87, 0x85, 0xB6, 0xB0, 0x80, 0x63, 0x47, 0xD1
- },
- {
- 0x8E, 0x87, 0x34, 0xFC, 0xF9, 0x25, 0x9E, 0xE3,
- 0x7F, 0xE9, 0xC6, 0xCD, 0xA2, 0x82, 0xC2, 0xD5,
- 0xEB, 0x83, 0xD0, 0xCF, 0x43, 0x9C, 0x86, 0x19,
- 0xD4, 0xB0, 0x42, 0xFF, 0x69, 0x96, 0x6B, 0x03,
- 0x56, 0x5B, 0xE4, 0xDF, 0x96, 0x39, 0x3F, 0xE6,
- 0xBF, 0x35, 0xAF, 0xA1, 0x6E, 0x02, 0x73, 0xB6,
- 0xD3, 0x39, 0xC0, 0x09, 0x95, 0xBF, 0x6F, 0x60,
- 0xA7, 0x14, 0xEF, 0x18, 0x0E, 0xBB, 0x93, 0x15
- },
- {
- 0xAE, 0x15, 0x6D, 0x43, 0xA7, 0x2C, 0x04, 0x29,
- 0x42, 0x59, 0x58, 0x78, 0xA7, 0x83, 0x07, 0x97,
- 0x60, 0xF5, 0x21, 0xED, 0xB8, 0xB2, 0xC3, 0xD4,
- 0x1A, 0x56, 0x6B, 0x7C, 0xF7, 0x4A, 0x4A, 0x08,
- 0xEA, 0x0F, 0x11, 0x9D, 0x24, 0x0A, 0x62, 0xEC,
- 0x73, 0xB9, 0x50, 0x97, 0x88, 0xFA, 0x3A, 0xED,
- 0xF1, 0x20, 0xEE, 0x88, 0xCB, 0x95, 0x1B, 0x69,
- 0x3F, 0x8F, 0x7C, 0xAF, 0x8C, 0xBA, 0x37, 0x7F
- },
- {
- 0x93, 0x30, 0xAA, 0xCA, 0x8C, 0x08, 0x84, 0x46,
- 0x58, 0xC2, 0x95, 0x06, 0xB1, 0xC3, 0x42, 0x72,
- 0xE2, 0xB3, 0xC7, 0xB4, 0xE7, 0x5E, 0x6F, 0xE9,
- 0x9A, 0x01, 0x07, 0xEC, 0x5D, 0xA4, 0x53, 0x0F,
- 0xB1, 0xC8, 0x8C, 0xAA, 0x66, 0xDD, 0x9C, 0x47,
- 0x1E, 0x01, 0xCA, 0x21, 0xA1, 0x3A, 0x5D, 0x6F,
- 0x82, 0x15, 0xDE, 0xD3, 0x14, 0x7E, 0x94, 0xDE,
- 0x20, 0x88, 0x57, 0x1F, 0xD1, 0xBF, 0x23, 0xB6
- },
- {
- 0xC1, 0x29, 0xF2, 0x2C, 0x50, 0xF5, 0x99, 0x72,
- 0x32, 0xE2, 0xB9, 0xF9, 0x3D, 0xFA, 0xA0, 0x0A,
- 0xD8, 0xA5, 0x34, 0x29, 0xF9, 0xD1, 0x5B, 0x98,
- 0x42, 0xE3, 0xAE, 0x08, 0xD8, 0x49, 0xEB, 0xDD,
- 0x45, 0x23, 0x8C, 0x85, 0xF9, 0x2C, 0x6F, 0x91,
- 0x7E, 0x0F, 0x8F, 0x6F, 0x94, 0xE2, 0x34, 0xBE,
- 0x07, 0x61, 0x68, 0xE0, 0xDF, 0x43, 0xD0, 0x28,
- 0x45, 0x52, 0x79, 0xA6, 0xFF, 0x65, 0xDC, 0x84
- },
- {
- 0x0E, 0x2B, 0x4B, 0xC2, 0xF6, 0xA7, 0x5B, 0xE4,
- 0xB7, 0xC9, 0xD4, 0xB5, 0x3D, 0x10, 0x4D, 0xA0,
- 0x65, 0x85, 0x8D, 0x38, 0x7B, 0x34, 0x0B, 0xC1,
- 0x63, 0x4F, 0x3A, 0x83, 0x32, 0xD5, 0x4C, 0xAA,
- 0x94, 0x30, 0x24, 0xB2, 0x13, 0xDC, 0x8D, 0x4F,
- 0x21, 0x9E, 0xC8, 0xE1, 0xDE, 0xCA, 0xC7, 0xD5,
- 0xC6, 0xAE, 0x69, 0xC9, 0xEF, 0xD8, 0x81, 0x49,
- 0x36, 0x78, 0x38, 0x20, 0x5D, 0x0D, 0xC7, 0xC0
- },
- {
- 0x83, 0xB5, 0x43, 0x85, 0x3B, 0x81, 0x42, 0xA8,
- 0x3B, 0xEF, 0xF0, 0x73, 0x5F, 0x20, 0x18, 0x91,
- 0xE7, 0xFF, 0xC6, 0x7D, 0xBD, 0xCD, 0x21, 0xA4,
- 0x22, 0xBB, 0x33, 0x6D, 0xE3, 0x29, 0x72, 0xAE,
- 0x03, 0x92, 0x64, 0x6F, 0x68, 0x27, 0xD8, 0x0C,
- 0xDA, 0x65, 0x4F, 0xD3, 0xA0, 0x77, 0x4C, 0xD2,
- 0xF9, 0x95, 0x51, 0x7C, 0xF0, 0x64, 0xC6, 0x17,
- 0xF2, 0x1A, 0x54, 0x27, 0x5F, 0xE5, 0x0C, 0x8D
- },
- {
- 0x09, 0xBE, 0x15, 0xEB, 0x6A, 0x5C, 0x22, 0x6F,
- 0x6D, 0x95, 0x08, 0xCB, 0xA4, 0xA2, 0x51, 0x9F,
- 0xBA, 0x17, 0x2A, 0xF8, 0x37, 0x58, 0x27, 0xD7,
- 0x54, 0xA7, 0xA1, 0xBC, 0x19, 0x25, 0xD1, 0x3F,
- 0x5E, 0x63, 0x43, 0xF3, 0xE1, 0x4D, 0x08, 0xA0,
- 0x6E, 0x8D, 0x37, 0xF8, 0xEC, 0x56, 0xFB, 0x43,
- 0x8E, 0x62, 0x36, 0x66, 0xB6, 0xFB, 0x0E, 0x23,
- 0xFB, 0x50, 0x47, 0x7D, 0x41, 0x1B, 0x0C, 0x3A
- },
- {
- 0xC3, 0x57, 0x97, 0xE9, 0x83, 0x2D, 0x3E, 0x23,
- 0x23, 0x33, 0x5B, 0x8C, 0x19, 0xC5, 0xFA, 0x74,
- 0x91, 0x60, 0x2D, 0xBF, 0x6B, 0xEA, 0x77, 0xFA,
- 0xEE, 0xC9, 0x51, 0x0B, 0xC2, 0xE8, 0x91, 0xC8,
- 0xC3, 0x46, 0x21, 0x99, 0xF6, 0x04, 0x18, 0xD2,
- 0xE0, 0xAB, 0xFF, 0xE3, 0x1B, 0x61, 0x3B, 0xB9,
- 0x80, 0xEA, 0x32, 0xB7, 0x6C, 0x82, 0x43, 0x8D,
- 0x02, 0x5F, 0x67, 0x8C, 0xAF, 0x48, 0x24, 0xA4
- },
- {
- 0xCF, 0xC0, 0x57, 0xFD, 0xA7, 0x8A, 0x50, 0x31,
- 0x8F, 0x49, 0x78, 0xFF, 0xFF, 0xAF, 0x77, 0x17,
- 0x98, 0xE1, 0x2C, 0x3E, 0xA8, 0xC7, 0x98, 0x19,
- 0x5B, 0xC5, 0xB4, 0xE6, 0x89, 0x1E, 0x61, 0xAA,
- 0x25, 0xF7, 0xAF, 0x4A, 0xA7, 0x28, 0x6A, 0xC8,
- 0x50, 0x76, 0x62, 0xC9, 0x07, 0xED, 0x91, 0x3E,
- 0xDA, 0x65, 0x8F, 0x63, 0xFC, 0x47, 0x99, 0x7C,
- 0x59, 0xB8, 0x59, 0x70, 0xF8, 0x78, 0xCA, 0x18
- },
- {
- 0xD8, 0xEB, 0xE0, 0xE6, 0x38, 0xFC, 0x53, 0x5B,
- 0x52, 0xCB, 0x0A, 0xFC, 0xE0, 0xF8, 0x2D, 0xDE,
- 0x28, 0x57, 0x01, 0xAF, 0xF3, 0x29, 0xA5, 0x4B,
- 0xA0, 0x6D, 0xFD, 0x3D, 0x1B, 0x4B, 0x31, 0xF9,
- 0xF4, 0xB2, 0x4D, 0x9D, 0x68, 0x36, 0xF1, 0x22,
- 0x3D, 0x6D, 0xE6, 0x6B, 0xAE, 0x78, 0x88, 0xFE,
- 0xBC, 0x20, 0x40, 0xCF, 0xE9, 0x30, 0xE6, 0x9C,
- 0xED, 0x59, 0xDA, 0x6D, 0xA8, 0xA0, 0xA6, 0xA6
- },
- {
- 0x16, 0xB8, 0xC5, 0x5C, 0xF2, 0xF1, 0x35, 0xA4,
- 0x32, 0x59, 0x0D, 0x2D, 0x4C, 0xFA, 0x38, 0x59,
- 0x2F, 0x59, 0x35, 0xF8, 0xE7, 0x1C, 0xE0, 0x8A,
- 0x02, 0x06, 0xA0, 0xE5, 0xAB, 0xEA, 0x90, 0xB2,
- 0xE1, 0x07, 0xEB, 0x86, 0xB9, 0x18, 0x82, 0x3B,
- 0xDD, 0x3B, 0xD2, 0x66, 0x07, 0x22, 0xC8, 0xDB,
- 0xFA, 0x66, 0xAB, 0xB9, 0xF8, 0x63, 0x8E, 0x46,
- 0x34, 0x02, 0xF6, 0x57, 0xA1, 0x68, 0x64, 0x0A
- },
- {
- 0x6A, 0x6E, 0x89, 0x38, 0x4F, 0x53, 0x5F, 0x02,
- 0x17, 0x6C, 0x48, 0xA9, 0x93, 0xD3, 0x68, 0x7B,
- 0x38, 0x9B, 0xFC, 0x03, 0x05, 0x0C, 0x77, 0x70,
- 0x86, 0x35, 0x5C, 0x1A, 0x55, 0x59, 0x77, 0x42,
- 0xF0, 0xB7, 0x48, 0x34, 0xA7, 0x1D, 0x05, 0x2A,
- 0xE8, 0xA8, 0x3D, 0xC3, 0x4A, 0x8F, 0xD7, 0xBA,
- 0x5A, 0xA6, 0x9D, 0xBD, 0x61, 0x2A, 0x4C, 0x22,
- 0xDF, 0x4F, 0x74, 0xE2, 0x52, 0x8F, 0xB7, 0xA3
- },
- {
- 0x1E, 0x40, 0x38, 0xCF, 0xA5, 0x0D, 0x8B, 0x13,
- 0xEF, 0x68, 0xBE, 0xC3, 0xB0, 0xFF, 0xD5, 0x62,
- 0xA0, 0x7A, 0xD6, 0x34, 0xB5, 0x82, 0x82, 0x57,
- 0xDB, 0xA8, 0x73, 0x04, 0xF8, 0x23, 0xA9, 0x00,
- 0x49, 0x2A, 0x31, 0x37, 0x19, 0x8B, 0x60, 0x5C,
- 0xC7, 0xF7, 0x7C, 0x33, 0xB8, 0xCA, 0x3D, 0x94,
- 0x0F, 0xD9, 0xB3, 0x38, 0xCF, 0x6B, 0x7B, 0x36,
- 0xE7, 0xD9, 0xD9, 0x27, 0x20, 0x97, 0x93, 0xD0
- },
- {
- 0x5B, 0xA6, 0xCD, 0x98, 0x8F, 0xF9, 0xA4, 0x81,
- 0x91, 0x42, 0x21, 0x7E, 0xD6, 0x5D, 0x43, 0x7B,
- 0x41, 0x3B, 0xA5, 0x02, 0x6B, 0x55, 0x4D, 0x8D,
- 0x94, 0xEA, 0x27, 0x02, 0xC0, 0x96, 0xD1, 0x01,
- 0x47, 0x75, 0xDB, 0xA2, 0xCA, 0xE9, 0x6F, 0x1E,
- 0x2E, 0x72, 0x29, 0xC3, 0x78, 0xF2, 0x0B, 0x03,
- 0x89, 0xE1, 0x19, 0x54, 0x7F, 0xDD, 0x35, 0x22,
- 0x4A, 0x61, 0x7F, 0xCD, 0xCD, 0x0C, 0xB3, 0xAF
- },
- {
- 0x2D, 0x20, 0x96, 0x12, 0x30, 0xE2, 0x50, 0xF8,
- 0x1D, 0xDC, 0xD2, 0xD2, 0xAB, 0x3E, 0xF0, 0xDA,
- 0xCF, 0x96, 0x85, 0x1E, 0xBA, 0xE5, 0x96, 0x34,
- 0x47, 0x19, 0x2C, 0xDB, 0x89, 0xE4, 0x8E, 0x84,
- 0xF3, 0x96, 0xEC, 0x9A, 0x09, 0x25, 0x27, 0x84,
- 0xE1, 0x73, 0xAD, 0xA5, 0x2A, 0x9C, 0x81, 0xAC,
- 0xDA, 0xB3, 0xD8, 0xD6, 0x83, 0x80, 0x24, 0x7A,
- 0xE9, 0x75, 0x23, 0x9B, 0x01, 0x7D, 0xC1, 0xCE
- },
- {
- 0x35, 0x38, 0x3E, 0xA7, 0x76, 0x2B, 0x55, 0x31,
- 0x0A, 0x7D, 0x57, 0xFB, 0xD5, 0xA5, 0x49, 0x97,
- 0x57, 0x9B, 0x0B, 0xA3, 0x9A, 0x4E, 0xB8, 0x87,
- 0x94, 0x2B, 0xD1, 0x4F, 0xD8, 0x48, 0x31, 0x88,
- 0xE5, 0x00, 0x48, 0x83, 0x8D, 0x6C, 0x02, 0xDC,
- 0x75, 0x89, 0x59, 0xA9, 0xF7, 0x4D, 0x83, 0x37,
- 0x27, 0x43, 0xE8, 0x64, 0xC6, 0x01, 0xED, 0x70,
- 0x40, 0xA9, 0xE8, 0x71, 0x52, 0xD4, 0xCF, 0xFB
- },
- {
- 0x0B, 0x22, 0x3B, 0x6A, 0x1C, 0x2D, 0x3A, 0xB3,
- 0xF9, 0x07, 0x7A, 0x31, 0x7B, 0x7F, 0xE3, 0x2F,
- 0x6F, 0x95, 0x7B, 0x7B, 0x17, 0x41, 0xF2, 0x71,
- 0x77, 0x71, 0x83, 0x4D, 0x37, 0x96, 0xA1, 0x9B,
- 0xA3, 0x62, 0x73, 0xC9, 0xEE, 0xD6, 0x4C, 0x07,
- 0xFA, 0x4E, 0x9A, 0xF7, 0xA9, 0x8A, 0xCE, 0x9C,
- 0x78, 0x9A, 0x79, 0xA5, 0xA0, 0xF9, 0x4D, 0x04,
- 0x05, 0xAA, 0xF0, 0x4A, 0xF3, 0x1E, 0xD7, 0x97
- },
- {
- 0x5A, 0x00, 0x7F, 0x58, 0x95, 0x52, 0x4A, 0x5E,
- 0x80, 0x37, 0x03, 0x6E, 0x0F, 0x26, 0x39, 0xFD,
- 0xA8, 0xC5, 0xC1, 0x51, 0x2D, 0x76, 0xE9, 0xD1,
- 0x9B, 0x3D, 0xD2, 0xD5, 0xBA, 0x43, 0xF5, 0x07,
- 0x97, 0x41, 0xA4, 0x58, 0x31, 0x3C, 0x5E, 0x02,
- 0x40, 0x0C, 0xE0, 0x2C, 0xB6, 0x56, 0x80, 0xBE,
- 0x28, 0x2E, 0xAC, 0xD9, 0xA2, 0x54, 0xEF, 0x1C,
- 0xDD, 0xEE, 0xBD, 0xCE, 0xE8, 0x5D, 0x41, 0x87
- },
- {
- 0xBE, 0x4D, 0xD1, 0xCC, 0xBD, 0xE1, 0x67, 0x00,
- 0x04, 0xD0, 0xEF, 0xAB, 0x65, 0x43, 0xE9, 0x1C,
- 0x4E, 0x46, 0x64, 0xE5, 0xA2, 0xA8, 0x8B, 0xAC,
- 0x6D, 0xD2, 0x7D, 0x27, 0x64, 0x8D, 0x30, 0x2A,
- 0x06, 0x5B, 0xE6, 0x07, 0x8B, 0x22, 0xE4, 0xC4,
- 0xAB, 0x4F, 0x7F, 0x7C, 0xBF, 0xAF, 0xC1, 0xAD,
- 0x86, 0xEC, 0x2A, 0x50, 0x4F, 0xE5, 0x85, 0x17,
- 0x66, 0xF7, 0xA3, 0x24, 0x47, 0x57, 0xCB, 0x6F
- },
- {
- 0x0F, 0xB4, 0x48, 0x3F, 0x96, 0x59, 0x29, 0x6C,
- 0xB9, 0x24, 0x5B, 0x57, 0x79, 0x2A, 0x1E, 0x6A,
- 0x99, 0xF2, 0x87, 0x90, 0x07, 0x72, 0x87, 0x96,
- 0x8A, 0xB3, 0xEF, 0x35, 0x89, 0xE6, 0x90, 0x24,
- 0x06, 0xF1, 0xF3, 0x9D, 0xCC, 0xE0, 0x06, 0x1D,
- 0xEA, 0x94, 0x0F, 0xC8, 0xC1, 0xC4, 0x9F, 0x4B,
- 0x54, 0x5E, 0xED, 0x59, 0xE9, 0x6D, 0xDA, 0xE9,
- 0x6A, 0x6C, 0x35, 0xB5, 0x59, 0x3C, 0x29, 0x77
- },
- {
- 0x41, 0xD1, 0xFA, 0xDC, 0x60, 0xA4, 0x6C, 0x9A,
- 0xD0, 0x12, 0x0A, 0x3F, 0x54, 0xD0, 0x05, 0xF5,
- 0xA1, 0x07, 0x5E, 0x2F, 0x71, 0xEE, 0x0D, 0xA6,
- 0x18, 0xBA, 0xC1, 0x46, 0x1E, 0xFA, 0xE9, 0x69,
- 0xEC, 0xCD, 0x7A, 0xA5, 0x75, 0xC4, 0xCD, 0xAE,
- 0x97, 0x1D, 0xED, 0x13, 0xAE, 0x13, 0xC5, 0x06,
- 0x87, 0x2C, 0xEC, 0xB5, 0xB2, 0x08, 0xFA, 0x72,
- 0xA9, 0x48, 0x40, 0x02, 0x3E, 0xDB, 0x3E, 0xFE
- },
- {
- 0x2F, 0x7F, 0xDC, 0x1D, 0xA4, 0x4B, 0x6E, 0x5D,
- 0x2D, 0xEC, 0xDE, 0x82, 0x1A, 0xAF, 0x4B, 0x49,
- 0x16, 0x8C, 0x02, 0xE8, 0xD5, 0xF2, 0x5D, 0x5C,
- 0x69, 0x98, 0x71, 0x08, 0x3A, 0xEB, 0xD9, 0x28,
- 0xB7, 0x4D, 0xC2, 0x2D, 0xCB, 0xED, 0xFA, 0xBA,
- 0x93, 0x16, 0xAE, 0xFC, 0xA8, 0x48, 0xD1, 0x5F,
- 0x05, 0x17, 0x32, 0x99, 0x03, 0xD3, 0x4B, 0x83,
- 0x70, 0xDD, 0xF9, 0xBD, 0x58, 0xC6, 0xD0, 0xCD
- },
- {
- 0x88, 0x55, 0x8A, 0x46, 0x4E, 0xE1, 0xA8, 0x80,
- 0x3B, 0x23, 0x95, 0xAF, 0x6A, 0x64, 0x90, 0x84,
- 0x2B, 0x5C, 0xD4, 0x3D, 0x41, 0xF6, 0xC0, 0x7C,
- 0xD6, 0xC5, 0xF8, 0x5F, 0x82, 0xF5, 0x84, 0x32,
- 0xA0, 0xB1, 0x62, 0xB4, 0x38, 0xBF, 0x0C, 0xB7,
- 0x08, 0x2A, 0x76, 0x73, 0xE2, 0x87, 0xD6, 0xB9,
- 0x0F, 0x8D, 0x0D, 0xC8, 0xAA, 0x5C, 0xEB, 0xA3,
- 0x6B, 0xFA, 0x77, 0xB1, 0x5B, 0xA0, 0x69, 0x16
- },
- {
- 0xEC, 0xC1, 0x49, 0x91, 0x7B, 0x26, 0x63, 0x98,
- 0xB6, 0xF3, 0x29, 0x7E, 0x96, 0x96, 0x73, 0xB1,
- 0x4E, 0xAE, 0x69, 0xCE, 0x43, 0x67, 0x1F, 0xD3,
- 0xC6, 0xC2, 0x15, 0xC7, 0xCF, 0x42, 0xDE, 0xA1,
- 0x02, 0xFC, 0x6B, 0xD9, 0x0C, 0x87, 0xDB, 0xD4,
- 0x29, 0x02, 0x51, 0x12, 0x9C, 0xC1, 0x9B, 0x38,
- 0xCC, 0xF0, 0x0C, 0xBD, 0xB1, 0x6D, 0xD8, 0xDE,
- 0x51, 0x58, 0x60, 0x1A, 0x41, 0x6B, 0x1F, 0x00
- },
- {
- 0xED, 0x30, 0x12, 0xF8, 0x9D, 0x71, 0xED, 0x13,
- 0xBB, 0x82, 0x72, 0xEC, 0xDC, 0x3D, 0x0F, 0x51,
- 0xE1, 0x4A, 0x37, 0xC1, 0xEF, 0x77, 0x57, 0x77,
- 0x7A, 0xDA, 0x67, 0x12, 0x78, 0x4B, 0xE1, 0x6E,
- 0xCF, 0xD3, 0xE6, 0x40, 0x58, 0x30, 0xF5, 0x1D,
- 0xB3, 0x3D, 0xCB, 0x85, 0x52, 0x92, 0x93, 0xE2,
- 0x3E, 0x47, 0x3A, 0xBF, 0x8C, 0x5C, 0x76, 0x55,
- 0xD0, 0xC4, 0xF1, 0x52, 0xD0, 0x48, 0xBA, 0xB2
- },
- {
- 0x09, 0x7A, 0x81, 0x19, 0x1E, 0x10, 0x05, 0x67,
- 0x6D, 0x6E, 0x22, 0xA9, 0x63, 0x48, 0xFA, 0x4A,
- 0x7C, 0x95, 0x61, 0xFD, 0x4D, 0x22, 0x8E, 0xB2,
- 0x5F, 0x29, 0x47, 0x56, 0xBB, 0x87, 0xA2, 0xBA,
- 0x88, 0x47, 0x5B, 0x03, 0x6F, 0x79, 0xFE, 0x37,
- 0x3D, 0x75, 0x40, 0x87, 0x05, 0x52, 0x00, 0x1D,
- 0x54, 0x79, 0x5F, 0x25, 0x92, 0x39, 0xBE, 0x6D,
- 0x32, 0xC4, 0x87, 0xD1, 0x94, 0x4F, 0x1F, 0xE7
- },
- {
- 0x3F, 0xC7, 0x98, 0xE4, 0x69, 0xD3, 0x90, 0x86,
- 0xBA, 0x0B, 0xB4, 0x06, 0x3E, 0x80, 0x5F, 0xDF,
- 0xB2, 0x20, 0x8D, 0xE4, 0x99, 0x18, 0x41, 0x73,
- 0xF9, 0xA2, 0x36, 0x4D, 0x56, 0xBC, 0xD5, 0x63,
- 0xED, 0x61, 0x9B, 0xB6, 0x87, 0x32, 0x24, 0x25,
- 0x01, 0x4A, 0x1A, 0xAD, 0x3B, 0xCF, 0x50, 0xD2,
- 0x2D, 0x83, 0xA9, 0x9D, 0x09, 0x73, 0x0A, 0x92,
- 0xEC, 0x65, 0x46, 0xB3, 0xFC, 0x40, 0xA2, 0xC6
- },
- {
- 0x69, 0x12, 0xB4, 0xB3, 0x41, 0xC7, 0xDD, 0x70,
- 0x68, 0x37, 0x38, 0xBA, 0x0E, 0x7D, 0xEB, 0xBA,
- 0xBF, 0xCA, 0x5F, 0x4F, 0xB0, 0x76, 0x0C, 0x84,
- 0x97, 0x76, 0xE9, 0x20, 0x75, 0x0B, 0xF1, 0x37,
- 0x89, 0xA6, 0x99, 0x97, 0x96, 0x23, 0x4E, 0x9E,
- 0x24, 0x07, 0x15, 0xB2, 0x67, 0x67, 0x78, 0x2B,
- 0x85, 0xA6, 0x4D, 0x68, 0x0C, 0x6D, 0x4C, 0xD4,
- 0x26, 0xAD, 0x72, 0xB2, 0xFC, 0xE0, 0x81, 0xE8
- },
- {
- 0xCE, 0xCD, 0x14, 0x01, 0x50, 0x15, 0x7D, 0xC9,
- 0x06, 0xC0, 0xFF, 0x7F, 0x87, 0xC0, 0x08, 0x8F,
- 0x31, 0x64, 0x80, 0x78, 0x3B, 0x4F, 0xE0, 0xA5,
- 0x94, 0x45, 0x10, 0xC6, 0x4A, 0x87, 0xE3, 0xED,
- 0x06, 0x67, 0x97, 0xA2, 0x7C, 0xE9, 0xD0, 0xF2,
- 0x84, 0xDC, 0xA5, 0x18, 0x44, 0x18, 0x08, 0xAC,
- 0x18, 0x29, 0x0A, 0xFD, 0xC0, 0x31, 0x29, 0x4B,
- 0x31, 0xAA, 0x8B, 0x4A, 0x9F, 0xCD, 0x78, 0xF8
- },
- {
- 0x2A, 0x2B, 0xED, 0x5D, 0x6A, 0xC0, 0x89, 0x28,
- 0x11, 0xA4, 0x09, 0xD9, 0xF1, 0xFF, 0x63, 0x03,
- 0xCC, 0xF9, 0x55, 0x44, 0x57, 0x46, 0x99, 0xCD,
- 0xA7, 0xF7, 0x35, 0x03, 0x01, 0xF6, 0xD0, 0xC4,
- 0xE8, 0x6E, 0x63, 0x5C, 0x80, 0x87, 0x56, 0x66,
- 0xE2, 0xBB, 0x39, 0x07, 0x51, 0x0D, 0x0E, 0x72,
- 0x12, 0x0F, 0x04, 0x86, 0x5E, 0xDC, 0x4C, 0x6C,
- 0xEE, 0xCB, 0x44, 0x62, 0xD6, 0xAF, 0x60, 0xFB
- },
- {
- 0x03, 0x85, 0xAE, 0x9B, 0x73, 0x5D, 0xC5, 0x9F,
- 0x30, 0x4D, 0x41, 0x4C, 0xA0, 0x43, 0x74, 0x9A,
- 0xB5, 0x1A, 0xB6, 0x65, 0xEE, 0x01, 0xBE, 0x5E,
- 0x52, 0xDC, 0xF7, 0x25, 0xEE, 0x7D, 0xFE, 0xFE,
- 0xA6, 0xAD, 0x73, 0xF3, 0x35, 0xEE, 0xCF, 0x2A,
- 0x51, 0x02, 0xE8, 0x88, 0x07, 0xFD, 0xC7, 0x5A,
- 0xE6, 0xDC, 0x49, 0x0D, 0x7B, 0x8B, 0x5F, 0x11,
- 0x63, 0x03, 0xEF, 0x60, 0xA5, 0xF1, 0x7C, 0x06
- },
- {
- 0x0C, 0xA3, 0xFF, 0x03, 0x89, 0x65, 0xC0, 0x3B,
- 0xC6, 0x5B, 0xBE, 0x2D, 0x86, 0x6C, 0xE9, 0xE0,
- 0xE4, 0xE7, 0xD0, 0x3D, 0xC7, 0xF8, 0x6B, 0xA5,
- 0x65, 0x0F, 0x82, 0xDD, 0xB3, 0xA9, 0xAA, 0x84,
- 0x6B, 0x2B, 0x1F, 0x55, 0x3B, 0xD8, 0x9F, 0xB4,
- 0xF9, 0xB6, 0x2E, 0x3C, 0x7F, 0xAF, 0x9E, 0xC3,
- 0x10, 0x9F, 0xA9, 0x0E, 0xE5, 0x6C, 0x24, 0x63,
- 0xE6, 0xEF, 0xD1, 0xAB, 0xAD, 0x8E, 0x28, 0xE6
- },
- {
- 0x6D, 0xFD, 0x4F, 0x22, 0x18, 0x4E, 0xD0, 0x91,
- 0xFD, 0x5A, 0xBA, 0x03, 0x9F, 0xCD, 0x3D, 0xB9,
- 0x22, 0xF5, 0xE5, 0x9B, 0xF8, 0x38, 0xC0, 0x37,
- 0x35, 0x7F, 0xAD, 0x93, 0x4B, 0x45, 0x10, 0x60,
- 0x3F, 0x43, 0xA7, 0x31, 0x9F, 0xFF, 0xA6, 0x23,
- 0x86, 0xF8, 0x78, 0x8F, 0xDF, 0x9D, 0xED, 0x40,
- 0xC6, 0x66, 0xB4, 0xBD, 0xCA, 0x86, 0xD9, 0x32,
- 0x8F, 0xE5, 0x5A, 0xD8, 0x6B, 0x37, 0x2F, 0xC8
- },
- {
- 0xA3, 0x18, 0x97, 0x61, 0x02, 0x74, 0x7D, 0x80,
- 0x0F, 0x58, 0x4D, 0xF6, 0x5B, 0xFB, 0x44, 0x3B,
- 0x85, 0x6F, 0x00, 0x9E, 0x74, 0xF7, 0x29, 0x46,
- 0xD0, 0x07, 0x6C, 0xED, 0xAC, 0x04, 0x37, 0x6F,
- 0xAB, 0x97, 0x34, 0x53, 0xAD, 0xAD, 0xC3, 0x10,
- 0xF7, 0x20, 0x81, 0xCB, 0xBA, 0x96, 0x26, 0x4F,
- 0xFE, 0x2B, 0x21, 0xA3, 0xB1, 0x8B, 0xE9, 0xD8,
- 0x8C, 0x42, 0x46, 0xCB, 0xA6, 0xD3, 0x09, 0x01
- },
- {
- 0xB5, 0xE6, 0xE4, 0xFC, 0xA0, 0xCF, 0x98, 0x48,
- 0xA0, 0x05, 0x89, 0xC6, 0x54, 0x57, 0xDB, 0x68,
- 0xB3, 0x25, 0x3A, 0x6E, 0x17, 0x78, 0x85, 0x41,
- 0x47, 0x2E, 0x1F, 0xB9, 0x48, 0x17, 0xF8, 0x04,
- 0x05, 0x4D, 0x07, 0xA5, 0xD3, 0x2D, 0xFA, 0x0C,
- 0xDB, 0x6F, 0xB4, 0x4E, 0xED, 0x50, 0xD2, 0x0E,
- 0x5F, 0x22, 0x64, 0x36, 0x11, 0x32, 0xFA, 0x5F,
- 0xCF, 0xD6, 0xE1, 0xB3, 0x67, 0xC1, 0xBE, 0x28
- },
- {
- 0x2E, 0xA4, 0x57, 0x38, 0x29, 0x25, 0xE0, 0x3C,
- 0xF8, 0x11, 0x10, 0x05, 0x0E, 0x63, 0x6A, 0xD6,
- 0x78, 0xE0, 0xAA, 0x3C, 0xBC, 0x69, 0x00, 0xBD,
- 0xEF, 0x27, 0x8A, 0xAA, 0x18, 0xF2, 0x35, 0xE2,
- 0x51, 0x60, 0xA2, 0x0E, 0x23, 0xFE, 0x0E, 0x62,
- 0xA8, 0x51, 0x1B, 0x5D, 0xD0, 0x59, 0x2F, 0x79,
- 0xCB, 0xC8, 0xEB, 0x7D, 0xEA, 0x64, 0xAC, 0x86,
- 0x67, 0x49, 0x43, 0x45, 0xC6, 0x89, 0x2D, 0xD4
- },
- {
- 0x96, 0xB3, 0x49, 0x8B, 0xCC, 0xD7, 0x8B, 0x5A,
- 0x40, 0x1B, 0x27, 0x38, 0x78, 0x7D, 0x28, 0xA9,
- 0x8A, 0x0E, 0xDF, 0xDC, 0x7C, 0x0B, 0x5F, 0xF9,
- 0x43, 0xCF, 0xE1, 0xB1, 0x4E, 0x9C, 0xF5, 0xD9,
- 0xED, 0x43, 0x10, 0x7D, 0xFB, 0xDD, 0x9E, 0x97,
- 0x28, 0xD5, 0xFD, 0xD6, 0xF7, 0x1F, 0xBC, 0x77,
- 0x0E, 0xAD, 0xDC, 0x4F, 0x2E, 0x40, 0x9A, 0xBE,
- 0x71, 0x92, 0x7B, 0xAE, 0x1F, 0x8F, 0x73, 0xD1
- },
- {
- 0xCE, 0x1B, 0xFB, 0x9A, 0xFE, 0xD2, 0x8A, 0xF4,
- 0xDC, 0x75, 0x35, 0xAD, 0xEF, 0x71, 0xB8, 0xF1,
- 0xB8, 0x0A, 0x8D, 0x72, 0x94, 0xB4, 0x11, 0xFD,
- 0x1E, 0xD3, 0x93, 0xCF, 0x23, 0x2D, 0x3A, 0x5C,
- 0x5D, 0xF2, 0x3D, 0xBB, 0x1D, 0xB2, 0x6D, 0xDD,
- 0xF6, 0xF7, 0x45, 0xF8, 0xBC, 0x24, 0xC3, 0x78,
- 0x1F, 0x2D, 0xBB, 0xC8, 0x18, 0xA0, 0x0A, 0xE1,
- 0xFB, 0x9D, 0x64, 0x63, 0xE9, 0x5F, 0x29, 0x86
- },
- {
- 0xE6, 0x4D, 0x37, 0x35, 0x6B, 0x29, 0x6B, 0x36,
- 0x93, 0x0E, 0xAB, 0xE4, 0x54, 0xDB, 0x11, 0xB2,
- 0x09, 0x7B, 0x0C, 0x04, 0x0B, 0xED, 0x57, 0x98,
- 0x87, 0x8D, 0x38, 0xA8, 0xC4, 0xD1, 0xC6, 0xF3,
- 0x26, 0x1F, 0x36, 0xBF, 0xF7, 0x64, 0xE3, 0xB4,
- 0xD6, 0x06, 0xB3, 0x17, 0xE5, 0xFF, 0x50, 0x04,
- 0x18, 0x45, 0x92, 0xB0, 0xB7, 0xDD, 0xFB, 0x8C,
- 0x2F, 0xD8, 0x35, 0x23, 0x26, 0xCD, 0xDD, 0xB1
- },
- {
- 0x85, 0xE6, 0xFE, 0x54, 0xE1, 0xE7, 0x60, 0x46,
- 0xAF, 0x68, 0xF5, 0xC6, 0x04, 0x4C, 0x1E, 0x3F,
- 0xFF, 0x3B, 0xFC, 0xA0, 0xBA, 0xEC, 0xAE, 0xF6,
- 0xA1, 0xDF, 0x90, 0x35, 0x0D, 0xF2, 0xB0, 0xBE,
- 0xC6, 0xA4, 0x20, 0xEE, 0x8F, 0x49, 0xAD, 0x44,
- 0x64, 0xEC, 0x4C, 0x1E, 0x7D, 0x71, 0xF6, 0x67,
- 0x61, 0x4A, 0xCE, 0xBD, 0xAD, 0xA3, 0xDF, 0x32,
- 0x07, 0x79, 0x07, 0x83, 0x23, 0xF6, 0xA8, 0xAF
- },
- {
- 0xB1, 0x2F, 0xF1, 0xEB, 0x3B, 0xAB, 0x32, 0x0D,
- 0x78, 0x55, 0xB5, 0x49, 0xD7, 0x2B, 0x72, 0x47,
- 0x59, 0x91, 0x68, 0x11, 0xCB, 0xCF, 0x3E, 0x1A,
- 0x12, 0x82, 0x3F, 0x98, 0xB6, 0x4A, 0xB5, 0xC4,
- 0x59, 0x41, 0x61, 0x0F, 0x6B, 0x47, 0x1E, 0x35,
- 0xFF, 0x79, 0x28, 0x29, 0xDD, 0x5A, 0xDE, 0x51,
- 0x79, 0x12, 0x57, 0x38, 0xF3, 0xF2, 0x37, 0x28,
- 0x63, 0x0F, 0x1E, 0xEC, 0x57, 0x77, 0x5A, 0x19
- },
- {
- 0xB4, 0xDB, 0xE7, 0x2A, 0x1E, 0x21, 0x69, 0x7A,
- 0x47, 0x44, 0xBE, 0x65, 0x00, 0x0C, 0xB1, 0xBA,
- 0xD3, 0x7C, 0xE2, 0x14, 0x16, 0xEE, 0x6F, 0xCE,
- 0xA8, 0x4E, 0xBA, 0xF1, 0x2A, 0x59, 0xC1, 0x1D,
- 0x7C, 0x08, 0x0D, 0xF9, 0x2F, 0xB2, 0xAA, 0x8F,
- 0x1C, 0x4E, 0xE8, 0xE2, 0xA2, 0x2D, 0x30, 0xBE,
- 0x49, 0x85, 0x82, 0xD7, 0xC5, 0xFB, 0xBA, 0x16,
- 0x5A, 0x47, 0x26, 0x89, 0xAF, 0xF6, 0x01, 0xB6
- },
- {
- 0x34, 0x82, 0x18, 0xBE, 0x4D, 0xE0, 0x8D, 0xFB,
- 0x24, 0x5B, 0xF2, 0x52, 0x86, 0xE3, 0x66, 0x18,
- 0x63, 0x1D, 0x3B, 0xDB, 0x58, 0x27, 0xD9, 0xF7,
- 0x4F, 0xA0, 0x43, 0x01, 0x66, 0x11, 0x31, 0xA4,
- 0xD5, 0x5C, 0x76, 0x09, 0xB1, 0xA6, 0xA0, 0x3B,
- 0x85, 0x3F, 0x07, 0x33, 0xE0, 0xAE, 0xC0, 0x26,
- 0x16, 0xA0, 0xA4, 0x0E, 0x84, 0x91, 0xF4, 0x94,
- 0xD7, 0x6C, 0x15, 0x43, 0xCF, 0xC6, 0x82, 0x14
- },
- {
- 0x42, 0x87, 0xE1, 0x9B, 0xAB, 0x1D, 0x4F, 0x75,
- 0xE1, 0xD1, 0x97, 0xCB, 0xB4, 0x3F, 0x11, 0x33,
- 0x13, 0x07, 0xF2, 0xF7, 0x5B, 0x8D, 0x0D, 0x50,
- 0x27, 0x8E, 0xEC, 0x54, 0x09, 0x99, 0xA0, 0x09,
- 0xC0, 0x33, 0x73, 0x52, 0x96, 0x07, 0xFD, 0xA6,
- 0x05, 0xAA, 0x0F, 0x07, 0x39, 0xE2, 0x0B, 0xD1,
- 0xFD, 0xAA, 0x27, 0xD7, 0xC0, 0xCD, 0xC8, 0x28,
- 0x4D, 0x98, 0xE6, 0xC7, 0x55, 0xA7, 0x56, 0x2E
- },
- {
- 0x08, 0x56, 0x0C, 0x99, 0x88, 0xC8, 0xCE, 0x5A,
- 0x88, 0x76, 0xA6, 0x00, 0xB6, 0xE5, 0x12, 0xB4,
- 0xE2, 0x43, 0xA4, 0xA4, 0x30, 0x0A, 0xD5, 0xAB,
- 0x2F, 0xF0, 0x63, 0x7C, 0xC5, 0x6A, 0x04, 0x41,
- 0x64, 0x5B, 0x3D, 0xEB, 0x16, 0x84, 0x06, 0x4E,
- 0xA4, 0x3B, 0xAE, 0x1C, 0xB6, 0x2D, 0x3B, 0xC4,
- 0x15, 0x37, 0xFE, 0x8D, 0x7D, 0xEC, 0xA7, 0x17,
- 0x29, 0x37, 0x77, 0x6B, 0xBE, 0xD7, 0x93, 0xA9
- },
- {
- 0xB5, 0x36, 0x16, 0x23, 0x94, 0x77, 0x6F, 0xA7,
- 0xDD, 0x5E, 0x9F, 0xDD, 0x01, 0x53, 0x0F, 0xDA,
- 0x52, 0xBE, 0x1D, 0x39, 0xBD, 0x60, 0x9B, 0x3F,
- 0x3B, 0xD0, 0x47, 0x6B, 0x81, 0x60, 0xAA, 0x18,
- 0xAB, 0x2D, 0x37, 0xD2, 0x99, 0x16, 0x28, 0xBE,
- 0x2F, 0xCC, 0x12, 0x56, 0xCD, 0x48, 0x55, 0x25,
- 0xD1, 0xFA, 0x35, 0x6B, 0x04, 0xD3, 0x0E, 0x4A,
- 0x0F, 0x9F, 0xFF, 0xC9, 0x93, 0x5C, 0xF4, 0x32
- },
- {
- 0x02, 0xAB, 0xC9, 0x71, 0x75, 0xED, 0xB4, 0x7A,
- 0x4C, 0xB4, 0xBD, 0x38, 0xD8, 0x2F, 0x86, 0xAA,
- 0x09, 0x9C, 0x8B, 0x8F, 0xA8, 0xAB, 0x3F, 0xE1,
- 0xCE, 0x10, 0x5A, 0x22, 0xBD, 0x61, 0x65, 0x78,
- 0xC6, 0xDD, 0x15, 0x15, 0xDF, 0xB0, 0x39, 0x7E,
- 0x1D, 0x9D, 0x06, 0x71, 0x91, 0x6D, 0xE4, 0xB5,
- 0x22, 0xE7, 0x4E, 0x63, 0x75, 0x23, 0x68, 0x93,
- 0xC8, 0xFD, 0xA6, 0xD2, 0x36, 0xBC, 0x8D, 0xA1
- },
- {
- 0x21, 0xE1, 0xEB, 0x73, 0x12, 0x76, 0xA8, 0x35,
- 0xA6, 0xDD, 0xEA, 0x71, 0x78, 0xB2, 0x3E, 0xBC,
- 0x9A, 0xEC, 0xAA, 0xBC, 0x7C, 0xCD, 0x70, 0x65,
- 0x87, 0xD7, 0x1B, 0x85, 0x44, 0x97, 0x93, 0xB0,
- 0x7E, 0x7B, 0x17, 0x9A, 0x3D, 0xA7, 0xA5, 0x71,
- 0x98, 0x29, 0x97, 0xE8, 0xF5, 0xA6, 0x7F, 0x8C,
- 0x93, 0xDA, 0xF1, 0x1A, 0xAA, 0x23, 0xF0, 0x7E,
- 0x4D, 0xF7, 0xA1, 0x31, 0x05, 0xA5, 0x42, 0x09
- },
- {
- 0x1C, 0xC5, 0x37, 0xD3, 0xE5, 0x0E, 0xD9, 0xFD,
- 0xCD, 0xC4, 0xF3, 0xCC, 0xB4, 0x81, 0x93, 0x75,
- 0x41, 0x53, 0x04, 0xD8, 0xE5, 0xA6, 0xC0, 0x58,
- 0x05, 0xB6, 0xB5, 0xD9, 0xE1, 0xFC, 0x18, 0x25,
- 0x68, 0x64, 0xF1, 0x0C, 0xD8, 0x12, 0xF8, 0x48,
- 0x01, 0xB8, 0x61, 0x6A, 0x92, 0xB4, 0x07, 0x95,
- 0xA1, 0x55, 0x93, 0x24, 0x64, 0xF6, 0x2D, 0xBF,
- 0x6E, 0xBD, 0x2F, 0x9A, 0xC3, 0xEE, 0x28, 0x16
- },
- {
- 0x6F, 0x6C, 0xD2, 0x60, 0x05, 0xC8, 0xA5, 0x61,
- 0xCF, 0xF5, 0x1E, 0x30, 0x1D, 0x1A, 0x06, 0x8F,
- 0xC2, 0x8B, 0x9B, 0x65, 0x0D, 0xDD, 0x27, 0xAE,
- 0x97, 0xB5, 0x22, 0xDA, 0xE9, 0x63, 0x91, 0x34,
- 0xD5, 0xA1, 0x50, 0x58, 0x7B, 0x0A, 0x90, 0x1F,
- 0x3B, 0x9A, 0xAB, 0xC7, 0xE3, 0x97, 0x84, 0x98,
- 0x4C, 0xC5, 0x85, 0x23, 0x5D, 0x8E, 0x17, 0xCE,
- 0x9E, 0x3B, 0x42, 0x10, 0x5B, 0xF9, 0x03, 0x4C
- },
- {
- 0x69, 0xC1, 0x7C, 0x28, 0x64, 0xC3, 0x37, 0x9F,
- 0xAF, 0xB7, 0x14, 0xC0, 0x47, 0x5E, 0x00, 0xCF,
- 0x7C, 0x9B, 0x37, 0x7D, 0x57, 0xA8, 0xBC, 0x96,
- 0x98, 0xB4, 0xD3, 0x4A, 0x54, 0x85, 0x41, 0x76,
- 0xA2, 0xF8, 0xD1, 0x5A, 0xFB, 0x54, 0x77, 0x56,
- 0x04, 0x78, 0x73, 0x90, 0xD6, 0x00, 0x74, 0xCD,
- 0x4B, 0xCA, 0x69, 0x02, 0xEA, 0x23, 0xD3, 0xAE,
- 0x1A, 0xC0, 0x83, 0x40, 0x9F, 0xE3, 0x8A, 0x4D
- },
- {
- 0x86, 0x69, 0xB0, 0xAD, 0x35, 0x82, 0x9E, 0xDC,
- 0x2A, 0x8A, 0x09, 0x85, 0x2B, 0x0E, 0xE9, 0xB3,
- 0x90, 0x3B, 0xF6, 0xC1, 0xF8, 0x2F, 0x90, 0xA3,
- 0xF0, 0xED, 0x95, 0x24, 0x19, 0x2F, 0x10, 0x91,
- 0xFD, 0x64, 0x84, 0xE0, 0x4C, 0x3F, 0xEA, 0x8B,
- 0x02, 0x2F, 0x4A, 0x89, 0x50, 0xDB, 0x17, 0xD4,
- 0x73, 0x41, 0x45, 0xC0, 0xCE, 0xC5, 0xDC, 0x38,
- 0x74, 0x55, 0xC1, 0x26, 0x90, 0x3F, 0x77, 0x66
- },
- {
- 0x3F, 0x35, 0xC4, 0x5D, 0x24, 0xFC, 0xFB, 0x4A,
- 0xCC, 0xA6, 0x51, 0x07, 0x6C, 0x08, 0x00, 0x0E,
- 0x27, 0x9E, 0xBB, 0xFF, 0x37, 0xA1, 0x33, 0x3C,
- 0xE1, 0x9F, 0xD5, 0x77, 0x20, 0x2D, 0xBD, 0x24,
- 0xB5, 0x8C, 0x51, 0x4E, 0x36, 0xDD, 0x9B, 0xA6,
- 0x4A, 0xF4, 0xD7, 0x8E, 0xEA, 0x4E, 0x2D, 0xD1,
- 0x3B, 0xC1, 0x8D, 0x79, 0x88, 0x87, 0xDD, 0x97,
- 0x13, 0x76, 0xBC, 0xAE, 0x00, 0x87, 0xE1, 0x7E
- },
-};
-
-
-
-
-static const uint8_t blake2bp_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
-{
- {
- 0x9D, 0x94, 0x61, 0x07, 0x3E, 0x4E, 0xB6, 0x40,
- 0xA2, 0x55, 0x35, 0x7B, 0x83, 0x9F, 0x39, 0x4B,
- 0x83, 0x8C, 0x6F, 0xF5, 0x7C, 0x9B, 0x68, 0x6A,
- 0x3F, 0x76, 0x10, 0x7C, 0x10, 0x66, 0x72, 0x8F,
- 0x3C, 0x99, 0x56, 0xBD, 0x78, 0x5C, 0xBC, 0x3B,
- 0xF7, 0x9D, 0xC2, 0xAB, 0x57, 0x8C, 0x5A, 0x0C,
- 0x06, 0x3B, 0x9D, 0x9C, 0x40, 0x58, 0x48, 0xDE,
- 0x1D, 0xBE, 0x82, 0x1C, 0xD0, 0x5C, 0x94, 0x0A
- },
- {
- 0xFF, 0x8E, 0x90, 0xA3, 0x7B, 0x94, 0x62, 0x39,
- 0x32, 0xC5, 0x9F, 0x75, 0x59, 0xF2, 0x60, 0x35,
- 0x02, 0x9C, 0x37, 0x67, 0x32, 0xCB, 0x14, 0xD4,
- 0x16, 0x02, 0x00, 0x1C, 0xBB, 0x73, 0xAD, 0xB7,
- 0x92, 0x93, 0xA2, 0xDB, 0xDA, 0x5F, 0x60, 0x70,
- 0x30, 0x25, 0x14, 0x4D, 0x15, 0x8E, 0x27, 0x35,
- 0x52, 0x95, 0x96, 0x25, 0x1C, 0x73, 0xC0, 0x34,
- 0x5C, 0xA6, 0xFC, 0xCB, 0x1F, 0xB1, 0xE9, 0x7E
- },
- {
- 0xD6, 0x22, 0x0C, 0xA1, 0x95, 0xA0, 0xF3, 0x56,
- 0xA4, 0x79, 0x5E, 0x07, 0x1C, 0xEE, 0x1F, 0x54,
- 0x12, 0xEC, 0xD9, 0x5D, 0x8A, 0x5E, 0x01, 0xD7,
- 0xC2, 0xB8, 0x67, 0x50, 0xCA, 0x53, 0xD7, 0xF6,
- 0x4C, 0x29, 0xCB, 0xB3, 0xD2, 0x89, 0xC6, 0xF4,
- 0xEC, 0xC6, 0xC0, 0x1E, 0x3C, 0xA9, 0x33, 0x89,
- 0x71, 0x17, 0x03, 0x88, 0xE3, 0xE4, 0x02, 0x28,
- 0x47, 0x90, 0x06, 0xD1, 0xBB, 0xEB, 0xAD, 0x51
- },
- {
- 0x30, 0x30, 0x2C, 0x3F, 0xC9, 0x99, 0x06, 0x5D,
- 0x10, 0xDC, 0x98, 0x2C, 0x8F, 0xEE, 0xF4, 0x1B,
- 0xBB, 0x66, 0x42, 0x71, 0x8F, 0x62, 0x4A, 0xF6,
- 0xE3, 0xEA, 0xBE, 0xA0, 0x83, 0xE7, 0xFE, 0x78,
- 0x53, 0x40, 0xDB, 0x4B, 0x08, 0x97, 0xEF, 0xFF,
- 0x39, 0xCE, 0xE1, 0xDC, 0x1E, 0xB7, 0x37, 0xCD,
- 0x1E, 0xEA, 0x0F, 0xE7, 0x53, 0x84, 0x98, 0x4E,
- 0x7D, 0x8F, 0x44, 0x6F, 0xAA, 0x68, 0x3B, 0x80
- },
- {
- 0x32, 0xF3, 0x98, 0xA6, 0x0C, 0x1E, 0x53, 0xF1,
- 0xF8, 0x1D, 0x6D, 0x8D, 0xA2, 0xEC, 0x11, 0x75,
- 0x42, 0x2D, 0x6B, 0x2C, 0xFA, 0x0C, 0x0E, 0x66,
- 0xD8, 0xC4, 0xE7, 0x30, 0xB2, 0x96, 0xA4, 0xB5,
- 0x3E, 0x39, 0x2E, 0x39, 0x85, 0x98, 0x22, 0xA1,
- 0x45, 0xAE, 0x5F, 0x1A, 0x24, 0xC2, 0x7F, 0x55,
- 0x33, 0x9E, 0x2B, 0x4B, 0x44, 0x58, 0xE8, 0xC5,
- 0xEB, 0x19, 0xAA, 0x14, 0x20, 0x64, 0x27, 0xAA
- },
- {
- 0x23, 0x6D, 0xB9, 0x33, 0xF1, 0x8A, 0x9D, 0xBD,
- 0x4E, 0x50, 0xB7, 0x29, 0x53, 0x90, 0x65, 0xBD,
- 0xA4, 0x20, 0xDF, 0x97, 0xAC, 0x78, 0x0B, 0xE4,
- 0x3F, 0x59, 0x10, 0x3C, 0x47, 0x2E, 0x0B, 0xCC,
- 0xA6, 0xD4, 0x97, 0x38, 0x97, 0x86, 0xAF, 0x22,
- 0xBA, 0x94, 0x30, 0xB7, 0x4D, 0x6F, 0x74, 0xB1,
- 0x3F, 0x6F, 0x94, 0x9E, 0x25, 0x6A, 0x14, 0x0A,
- 0xA3, 0x4B, 0x47, 0x70, 0x0B, 0x10, 0x03, 0x43
- },
- {
- 0x23, 0x8C, 0x9D, 0x08, 0x02, 0x85, 0xE3, 0x54,
- 0x35, 0xCB, 0x53, 0x15, 0x5D, 0x9F, 0x79, 0x2C,
- 0xA1, 0xBB, 0x27, 0xDE, 0x4F, 0x9B, 0x6C, 0x87,
- 0x26, 0xE1, 0x1C, 0x02, 0x8E, 0x7B, 0x87, 0x87,
- 0x33, 0x54, 0x91, 0x12, 0xA3, 0x28, 0xB5, 0x0E,
- 0x8C, 0xD8, 0xBA, 0x27, 0x87, 0x21, 0x7E, 0x46,
- 0xB8, 0x16, 0x8D, 0x57, 0x11, 0x3D, 0xD4, 0x04,
- 0xD9, 0x14, 0xE2, 0x9A, 0x6A, 0x54, 0x70, 0xE6
- },
- {
- 0x9A, 0x02, 0x1E, 0xBD, 0x50, 0x4A, 0x97, 0x59,
- 0x6D, 0x0E, 0x85, 0x04, 0x8A, 0xE1, 0xDA, 0x89,
- 0x99, 0xE3, 0xA0, 0x47, 0x01, 0x6F, 0x17, 0xC6,
- 0xC5, 0x55, 0x6C, 0x27, 0x31, 0xE9, 0xB1, 0x39,
- 0x26, 0x1F, 0x84, 0x3F, 0xAD, 0x6B, 0xD4, 0x3F,
- 0x7C, 0x7C, 0x58, 0x7F, 0x69, 0x8D, 0x69, 0xB6,
- 0x82, 0xE5, 0x68, 0xB4, 0x42, 0xAC, 0x45, 0x88,
- 0x98, 0x57, 0xB7, 0x69, 0x07, 0x34, 0xCD, 0xBB
- },
- {
- 0x3A, 0xBA, 0x07, 0xAE, 0x98, 0x0E, 0x33, 0x86,
- 0x37, 0x47, 0x9D, 0xCA, 0x1E, 0x35, 0x28, 0x00,
- 0xF4, 0x58, 0x8E, 0x62, 0xD8, 0x23, 0x36, 0x5A,
- 0xA6, 0x9C, 0x5B, 0x25, 0xFC, 0xE1, 0x29, 0x68,
- 0xD2, 0x6C, 0x9B, 0xDB, 0xEE, 0x9A, 0x32, 0xBF,
- 0xFD, 0x42, 0xE6, 0xB2, 0x2C, 0x81, 0x38, 0xA6,
- 0x1C, 0x1F, 0xCE, 0x49, 0xFF, 0xBC, 0x19, 0x0E,
- 0x1E, 0x15, 0x16, 0x01, 0x53, 0xCC, 0xB6, 0xB4
- },
- {
- 0x77, 0x4C, 0xDF, 0x9A, 0xBB, 0x50, 0x81, 0xFE,
- 0x07, 0xEB, 0x57, 0x25, 0xE6, 0x06, 0x9B, 0x8D,
- 0x6C, 0x7E, 0x60, 0x04, 0xA2, 0x4D, 0x70, 0xF7,
- 0xDF, 0xAB, 0xFC, 0x03, 0x82, 0x5B, 0xBC, 0x3B,
- 0x30, 0xE6, 0x20, 0xB6, 0x04, 0x1F, 0x3C, 0xC2,
- 0x89, 0x6B, 0x14, 0xAB, 0x66, 0x0A, 0xF7, 0x2E,
- 0x24, 0x95, 0x10, 0xAC, 0x2F, 0xE8, 0x10, 0xCC,
- 0x77, 0x63, 0xA2, 0xE5, 0xC3, 0xFC, 0xA7, 0xFC
- },
- {
- 0x9E, 0x08, 0x9F, 0x51, 0x65, 0x7B, 0x29, 0xC2,
- 0x66, 0x8E, 0x28, 0x50, 0x52, 0x4E, 0x53, 0xAE,
- 0xAA, 0xA7, 0x30, 0x6F, 0x2A, 0xD5, 0xA2, 0x32,
- 0xB5, 0xF0, 0x7F, 0x68, 0x8D, 0x8A, 0xB2, 0xB4,
- 0x25, 0xDF, 0x7E, 0xA5, 0xBD, 0x3E, 0x9F, 0xFD,
- 0x61, 0x68, 0x38, 0x90, 0x15, 0x1D, 0x78, 0xBB,
- 0x94, 0x03, 0x11, 0x85, 0xAC, 0xA4, 0x81, 0xE2,
- 0x14, 0x0F, 0xE3, 0x79, 0x85, 0x36, 0x76, 0x43
- },
- {
- 0xB3, 0x5B, 0xD5, 0x4E, 0x4F, 0x81, 0x69, 0x6B,
- 0x4F, 0x22, 0x31, 0x6A, 0x1E, 0x33, 0x7D, 0x98,
- 0xD1, 0xC6, 0xB0, 0x61, 0x10, 0x99, 0x87, 0x63,
- 0xB5, 0x91, 0x33, 0x35, 0x92, 0x3A, 0x40, 0x76,
- 0xCB, 0x80, 0xD6, 0xD8, 0xA5, 0x18, 0x62, 0x91,
- 0x13, 0x47, 0x7B, 0x30, 0xA1, 0x32, 0xA6, 0xB2,
- 0x7F, 0xC1, 0xEE, 0x79, 0xF6, 0xB2, 0xE0, 0xD3,
- 0x5D, 0x5B, 0xC2, 0x97, 0x27, 0x46, 0x3D, 0xB5
- },
- {
- 0x12, 0x39, 0x30, 0xD5, 0xA4, 0xB7, 0x3B, 0x49,
- 0x1F, 0x50, 0xE5, 0x6E, 0x2B, 0x73, 0x97, 0xA4,
- 0x3D, 0x2E, 0x47, 0x87, 0x23, 0x76, 0x02, 0xB6,
- 0x6F, 0xE0, 0xA8, 0x47, 0xBD, 0x13, 0xCB, 0xE8,
- 0xB3, 0x7D, 0xC7, 0x03, 0xD7, 0xB2, 0xB4, 0xEA,
- 0xA8, 0xBF, 0xB9, 0xA5, 0x8A, 0x7D, 0x71, 0x9C,
- 0x90, 0x8F, 0x19, 0x66, 0xA2, 0xF1, 0x9F, 0xE6,
- 0xEB, 0x1A, 0x78, 0x96, 0x2A, 0xFA, 0x5B, 0xF9
- },
- {
- 0x08, 0x9C, 0xBC, 0x7E, 0xE1, 0xB1, 0x2C, 0x0C,
- 0xC9, 0xC8, 0x3F, 0xF6, 0x66, 0xFE, 0xC8, 0x02,
- 0x6B, 0xB7, 0x1B, 0x90, 0x84, 0x97, 0x9B, 0x0E,
- 0xA8, 0xB7, 0x23, 0xBB, 0xBE, 0x8B, 0x00, 0xD4,
- 0x10, 0x08, 0xB6, 0x04, 0x99, 0xF2, 0x4F, 0x24,
- 0x1B, 0x63, 0x28, 0x1F, 0xE5, 0xB4, 0xD8, 0x89,
- 0x66, 0x30, 0x9C, 0x0D, 0x7E, 0x64, 0x66, 0x91,
- 0x05, 0xE5, 0x1E, 0x69, 0xD7, 0xAF, 0x8C, 0xE5
- },
- {
- 0x6B, 0x3C, 0x67, 0x89, 0x47, 0xF6, 0x12, 0x52,
- 0x65, 0x7C, 0x35, 0x49, 0x78, 0xC1, 0x01, 0xB2,
- 0xFD, 0xD2, 0x72, 0x9E, 0xC3, 0x49, 0x27, 0xDD,
- 0x5E, 0xFF, 0x0A, 0x7C, 0x0A, 0x86, 0x58, 0x26,
- 0xE8, 0x33, 0xC3, 0x63, 0x23, 0x21, 0x31, 0xB1,
- 0x05, 0x93, 0xBE, 0x1C, 0xCF, 0x6B, 0xA5, 0x4E,
- 0xCC, 0x14, 0x31, 0x2F, 0x45, 0xBF, 0xFC, 0x24,
- 0x04, 0x62, 0x9F, 0xF8, 0x02, 0x67, 0xF0, 0x94
- },
- {
- 0xAA, 0x0C, 0x23, 0xEA, 0x1C, 0x6F, 0xE2, 0xE9,
- 0x0A, 0x77, 0x18, 0xEF, 0x4A, 0xA4, 0x75, 0x1F,
- 0xF6, 0xBE, 0xB9, 0xD4, 0x61, 0x63, 0x59, 0x5B,
- 0x5D, 0x4F, 0xB8, 0x96, 0x00, 0x52, 0x5C, 0x5B,
- 0x6C, 0xF1, 0x9E, 0xCD, 0xB2, 0x47, 0x78, 0x72,
- 0xA7, 0xA1, 0x2D, 0x40, 0xE5, 0x06, 0x36, 0x08,
- 0xE5, 0xF0, 0x00, 0x8E, 0x79, 0x72, 0xA9, 0xC0,
- 0x1A, 0x4B, 0xE2, 0xAF, 0xE9, 0x53, 0x2F, 0x9C
- },
- {
- 0x63, 0x34, 0x7A, 0xB4, 0xCB, 0xB6, 0xF2, 0x89,
- 0x52, 0x99, 0x2C, 0x07, 0x9D, 0x18, 0xD4, 0x20,
- 0x01, 0xB7, 0xF3, 0xA9, 0xD0, 0xFD, 0x90, 0xB0,
- 0xA4, 0x77, 0x1F, 0x69, 0x72, 0xF0, 0xC5, 0x32,
- 0x89, 0xC8, 0xAE, 0xE1, 0x43, 0x29, 0x4B, 0x50,
- 0xC6, 0x34, 0x12, 0x58, 0x5C, 0xDC, 0xE4, 0xFF,
- 0x7B, 0xED, 0x11, 0x2C, 0xD0, 0x3C, 0x9B, 0x1D,
- 0xF3, 0xDE, 0xF0, 0xCC, 0x32, 0x0D, 0x6B, 0x70
- },
- {
- 0x23, 0x96, 0xC0, 0xCB, 0x9E, 0xDA, 0xAC, 0xA9,
- 0xD8, 0xB1, 0x04, 0x65, 0x2C, 0xB7, 0xF1, 0x25,
- 0xF1, 0x93, 0x55, 0x1A, 0xE5, 0xD7, 0xBC, 0x94,
- 0x63, 0x30, 0x7C, 0x9E, 0x69, 0xCA, 0x7D, 0xA2,
- 0x3A, 0x9F, 0xBC, 0xBC, 0xB8, 0x66, 0x69, 0xD5,
- 0xBA, 0x63, 0x43, 0x85, 0x93, 0xE1, 0x32, 0xF9,
- 0x92, 0xB5, 0x7C, 0x00, 0x17, 0xC8, 0x6D, 0xDB,
- 0x9B, 0x47, 0x28, 0x6E, 0xF5, 0xB6, 0x87, 0x18
- },
- {
- 0xA9, 0x4B, 0x80, 0x22, 0x57, 0xFD, 0x03, 0x1E,
- 0xE6, 0x0F, 0x1B, 0xE1, 0x84, 0x38, 0x3A, 0x76,
- 0x32, 0x85, 0x39, 0xF9, 0xD8, 0x06, 0x08, 0x72,
- 0xEF, 0x35, 0x73, 0xBE, 0xB6, 0xF2, 0x73, 0x68,
- 0x08, 0x95, 0x90, 0xED, 0xBB, 0x21, 0xF4, 0xD8,
- 0xF1, 0x81, 0xBA, 0x66, 0x20, 0x75, 0xF9, 0x19,
- 0x05, 0x97, 0x4B, 0xEE, 0xEF, 0x1F, 0xC5, 0xCB,
- 0x9B, 0xCF, 0xB2, 0x8A, 0xAE, 0x1E, 0x4D, 0xE3
- },
- {
- 0x52, 0xC7, 0xD3, 0x39, 0x9A, 0x03, 0x80, 0x04,
- 0xBE, 0xA5, 0x2D, 0x3E, 0xA9, 0xE9, 0x1E, 0x25,
- 0x44, 0xC8, 0x65, 0x2A, 0xB8, 0xF5, 0x28, 0x5C,
- 0x9D, 0x32, 0x18, 0x63, 0x7A, 0x6D, 0x9F, 0xCA,
- 0xF0, 0xD9, 0x65, 0xB3, 0x58, 0x8E, 0xE6, 0xD7,
- 0x3F, 0xA5, 0x99, 0xDE, 0xCA, 0x1F, 0x41, 0xDE,
- 0xD8, 0x02, 0x5B, 0xF7, 0x76, 0x8E, 0x0E, 0x20,
- 0x0E, 0x8C, 0xD3, 0xFF, 0x86, 0x8C, 0x38, 0x00
- },
- {
- 0xB6, 0x29, 0xF5, 0x71, 0x62, 0x87, 0x6A, 0xDB,
- 0x8F, 0xA9, 0x57, 0x2E, 0xBA, 0x4E, 0x1E, 0xCD,
- 0x75, 0xA6, 0x56, 0x73, 0x08, 0xDE, 0x90, 0xDB,
- 0xB8, 0xFF, 0xDE, 0x77, 0xDE, 0x82, 0x13, 0xA4,
- 0xD7, 0xF7, 0xCB, 0x85, 0xAE, 0x1B, 0x71, 0xE6,
- 0x45, 0x7B, 0xC4, 0xE8, 0x9C, 0x0D, 0x9D, 0xE2,
- 0x41, 0xB6, 0xB9, 0xF3, 0x74, 0xB7, 0x34, 0x19,
- 0x4D, 0xB2, 0xB2, 0x67, 0x02, 0xD7, 0xCB, 0x7C
- },
- {
- 0x72, 0x28, 0x46, 0xDD, 0xAC, 0xAA, 0x94, 0xFD,
- 0xE6, 0x63, 0x2A, 0x2D, 0xC7, 0xDC, 0x70, 0x8B,
- 0xDF, 0x98, 0x31, 0x1C, 0x9F, 0xB6, 0x3C, 0x61,
- 0xE5, 0x25, 0xFD, 0x4B, 0x0D, 0x87, 0xB6, 0x38,
- 0x8B, 0x5A, 0xF7, 0x04, 0x20, 0x18, 0xDD, 0xCA,
- 0x06, 0x5E, 0x8A, 0x55, 0xBB, 0xFD, 0x68, 0xEE,
- 0x61, 0xFC, 0xD3, 0xC6, 0x87, 0x8F, 0x5B, 0x09,
- 0xBC, 0xC2, 0x7B, 0xED, 0x61, 0xDD, 0x93, 0xED
- },
- {
- 0x1C, 0xED, 0x6A, 0x0C, 0x78, 0x9D, 0xDB, 0x29,
- 0x56, 0x78, 0xAD, 0x43, 0xA3, 0x22, 0xD8, 0x96,
- 0x61, 0x7F, 0xDE, 0x27, 0x5F, 0x13, 0x8C, 0xCC,
- 0xFB, 0x13, 0x26, 0xCD, 0x3F, 0x76, 0x09, 0xC2,
- 0xAA, 0xA5, 0xEC, 0x10, 0x26, 0x97, 0x17, 0x3E,
- 0x12, 0x1A, 0xE1, 0x63, 0x02, 0x4F, 0x42, 0x8C,
- 0x98, 0x28, 0x35, 0xB4, 0xFA, 0x6D, 0xA6, 0xD6,
- 0x78, 0xAE, 0xB9, 0xEE, 0x10, 0x6A, 0x3F, 0x6C
- },
- {
- 0xE8, 0x69, 0x14, 0x8C, 0x05, 0x45, 0xB3, 0x58,
- 0x0E, 0x39, 0x5A, 0xFD, 0xC7, 0x45, 0xCD, 0x24,
- 0x3B, 0x6B, 0x5F, 0xE3, 0xB6, 0x7E, 0x29, 0x43,
- 0xF6, 0xF8, 0xD9, 0xF2, 0x4F, 0xFA, 0x40, 0xE8,
- 0x81, 0x75, 0x6E, 0x1C, 0x18, 0xD9, 0x2F, 0x3E,
- 0xBE, 0x84, 0x55, 0x9B, 0x57, 0xE2, 0xEE, 0x3A,
- 0x65, 0xD9, 0xEC, 0xE0, 0x49, 0x72, 0xB3, 0x5D,
- 0x4C, 0x4E, 0xBE, 0x78, 0x6C, 0x88, 0xDA, 0x62
- },
- {
- 0xDA, 0xDA, 0x15, 0x5E, 0x55, 0x42, 0x32, 0xB1,
- 0x6E, 0xCA, 0xD9, 0x31, 0xCB, 0x42, 0xE3, 0x25,
- 0xB5, 0x86, 0xDB, 0xF1, 0xCB, 0xD0, 0xCE, 0x38,
- 0x14, 0x45, 0x16, 0x6B, 0xD1, 0xBF, 0xA3, 0x32,
- 0x49, 0x85, 0xE7, 0x7C, 0x6F, 0x0D, 0x51, 0x2A,
- 0x02, 0x6E, 0x09, 0xD4, 0x86, 0x1C, 0x3B, 0xB8,
- 0x52, 0x9D, 0x72, 0x02, 0xEA, 0xC1, 0xC0, 0x44,
- 0x27, 0x44, 0xD3, 0x7C, 0x7F, 0x5A, 0xB8, 0xAF
- },
- {
- 0x2D, 0x14, 0x8C, 0x8E, 0x8F, 0x76, 0xFA, 0xAC,
- 0x6F, 0x7F, 0x01, 0xF2, 0x03, 0x9E, 0xA0, 0x2A,
- 0x42, 0xD9, 0x32, 0x57, 0x94, 0xC2, 0xC7, 0xA0,
- 0x0F, 0x83, 0xF4, 0xA7, 0x79, 0x8A, 0xFB, 0xA9,
- 0x93, 0xFF, 0x94, 0x91, 0x1E, 0x09, 0x8B, 0x00,
- 0x1A, 0x0B, 0xDF, 0xF4, 0xC8, 0x5A, 0x2A, 0x61,
- 0x31, 0xE0, 0xCF, 0xE7, 0x0F, 0x1D, 0x2E, 0x07,
- 0xAF, 0x02, 0x09, 0xDA, 0x77, 0x96, 0x09, 0x1F
- },
- {
- 0x99, 0x98, 0x3A, 0x75, 0x9C, 0xCF, 0x9C, 0xAC,
- 0xAE, 0x70, 0x2D, 0xCB, 0xFC, 0xDF, 0x72, 0x04,
- 0xDD, 0xF0, 0x33, 0x4B, 0xC6, 0x5D, 0xAD, 0x84,
- 0x6F, 0x83, 0x1F, 0x9F, 0x9D, 0x8A, 0x45, 0x3F,
- 0x0D, 0x24, 0x93, 0x5C, 0x4C, 0x65, 0x7F, 0xFF,
- 0x2E, 0xBB, 0xDB, 0xAF, 0x7B, 0xCE, 0x6A, 0xAC,
- 0xDB, 0xB8, 0x87, 0x6F, 0x16, 0x04, 0x59, 0xB1,
- 0xA4, 0xAA, 0xC9, 0x56, 0x97, 0xE0, 0x0D, 0x98
- },
- {
- 0x7E, 0x4A, 0x02, 0x12, 0x6D, 0x75, 0x52, 0xF4,
- 0xC9, 0xB9, 0x4D, 0x80, 0xE3, 0xCF, 0x7B, 0x89,
- 0x7E, 0x09, 0x84, 0xE4, 0x06, 0xF0, 0x78, 0x13,
- 0x5C, 0xF4, 0x56, 0xC0, 0xD5, 0x1E, 0x13, 0x91,
- 0xFF, 0x18, 0xA8, 0x8F, 0x93, 0x12, 0x2C, 0x83,
- 0x2C, 0xAC, 0x7D, 0x79, 0x6A, 0x6B, 0x42, 0x51,
- 0x9B, 0x1D, 0xB4, 0xEA, 0xD8, 0xF4, 0x98, 0x40,
- 0xCE, 0xB5, 0x52, 0x33, 0x6B, 0x29, 0xDE, 0x44
- },
- {
- 0xD7, 0xE1, 0x6F, 0xD1, 0x59, 0x65, 0x8A, 0xD7,
- 0xEE, 0x25, 0x1E, 0x51, 0x7D, 0xCE, 0x5A, 0x29,
- 0xF4, 0x6F, 0xD4, 0xB8, 0xD3, 0x19, 0xDB, 0x80,
- 0x5F, 0xC2, 0x5A, 0xA6, 0x20, 0x35, 0x0F, 0xF4,
- 0x23, 0xAD, 0x8D, 0x05, 0x37, 0xCD, 0x20, 0x69,
- 0x43, 0x2E, 0xBF, 0xF2, 0x92, 0x36, 0xF8, 0xC2,
- 0xA8, 0xA0, 0x4D, 0x04, 0xB3, 0xB4, 0x8C, 0x59,
- 0xA3, 0x55, 0xFC, 0xC6, 0x2D, 0x27, 0xF8, 0xEE
- },
- {
- 0x0D, 0x45, 0x17, 0xD4, 0xF1, 0xD0, 0x47, 0x30,
- 0xC6, 0x91, 0x69, 0x18, 0xA0, 0x4C, 0x9E, 0x90,
- 0xCC, 0xA3, 0xAC, 0x1C, 0x63, 0xD6, 0x45, 0x97,
- 0x8A, 0x7F, 0x07, 0x03, 0x9F, 0x92, 0x20, 0x64,
- 0x7C, 0x25, 0xC0, 0x4E, 0x85, 0xF6, 0xE2, 0x28,
- 0x6D, 0x2E, 0x35, 0x46, 0x0D, 0x0B, 0x2C, 0x1E,
- 0x25, 0xAF, 0x9D, 0x35, 0x37, 0xEF, 0x33, 0xFD,
- 0x7F, 0xE5, 0x1E, 0x2B, 0xA8, 0x76, 0x4B, 0x36
- },
- {
- 0x56, 0xB7, 0x2E, 0x51, 0x37, 0xC6, 0x89, 0xB2,
- 0x73, 0x66, 0xFB, 0x22, 0xC7, 0xC6, 0x75, 0x44,
- 0xF6, 0xBC, 0xE5, 0x76, 0x19, 0x41, 0x31, 0xC5,
- 0xBF, 0xAB, 0x1C, 0xF9, 0x3C, 0x2B, 0x51, 0xAA,
- 0xA3, 0x03, 0x36, 0x8A, 0xA8, 0x44, 0xD5, 0x8D,
- 0xF0, 0xEE, 0x5D, 0x4E, 0x31, 0x9F, 0xCD, 0x8E,
- 0xFF, 0xC6, 0x02, 0xCE, 0xE4, 0x35, 0x1B, 0xD2,
- 0xF5, 0x51, 0x43, 0x0B, 0x92, 0x11, 0xE7, 0x3C
- },
- {
- 0xF3, 0x35, 0xCC, 0x22, 0xFF, 0xEA, 0x5A, 0xA5,
- 0x9C, 0xDF, 0xC8, 0xF5, 0x02, 0x89, 0xCC, 0x92,
- 0x31, 0x9B, 0x8B, 0x14, 0x40, 0x8D, 0x7A, 0x5A,
- 0xA1, 0x23, 0x2A, 0xE2, 0x3A, 0xA1, 0xEA, 0x7F,
- 0x77, 0x48, 0xCF, 0xEF, 0x03, 0x20, 0x10, 0xF8,
- 0x62, 0x6D, 0x93, 0x18, 0xED, 0xBA, 0x98, 0xD4,
- 0x16, 0x62, 0x03, 0x35, 0xC9, 0x01, 0xED, 0x02,
- 0xEA, 0xBD, 0x27, 0x6A, 0x1B, 0x82, 0x9C, 0x9D
- },
- {
- 0xA9, 0x9A, 0x3D, 0x10, 0xF9, 0x5B, 0x44, 0x2F,
- 0xFF, 0xF7, 0xC4, 0x18, 0xFA, 0x94, 0x9D, 0x48,
- 0x30, 0x86, 0x9B, 0x0E, 0x60, 0xEC, 0x8B, 0x97,
- 0x2C, 0x30, 0xA3, 0x16, 0x9C, 0x27, 0xBE, 0xB5,
- 0xCF, 0x33, 0x05, 0x94, 0xF0, 0x14, 0xB6, 0x6B,
- 0x22, 0x00, 0xA7, 0xF0, 0x86, 0xD2, 0xC2, 0xF3,
- 0xF9, 0xFD, 0x85, 0x32, 0xA5, 0x71, 0x88, 0x76,
- 0xDF, 0xCA, 0x66, 0x1B, 0xA0, 0xF7, 0xB3, 0x6D
- },
- {
- 0x15, 0x8E, 0x25, 0x70, 0xD0, 0x84, 0xA4, 0x86,
- 0x9D, 0x96, 0x93, 0x43, 0xC0, 0x10, 0x86, 0x07,
- 0x17, 0xFF, 0x74, 0x11, 0x61, 0x88, 0x17, 0x5F,
- 0x2E, 0xD7, 0x4C, 0xD5, 0x78, 0xFA, 0x0D, 0x80,
- 0x91, 0xB0, 0x3F, 0xAD, 0x0C, 0x65, 0xCF, 0x59,
- 0xAB, 0x91, 0xDD, 0x73, 0xB3, 0x7F, 0xE3, 0xF5,
- 0x8A, 0x58, 0xE7, 0xB4, 0x47, 0x9C, 0x87, 0x5A,
- 0xCD, 0x63, 0xEC, 0x52, 0x58, 0x12, 0x35, 0x3F
- },
- {
- 0x7C, 0x49, 0x50, 0x1C, 0x58, 0x08, 0xB1, 0x5C,
- 0x0D, 0x31, 0xBD, 0xD5, 0xBB, 0x56, 0x31, 0xD5,
- 0x3A, 0xE0, 0x0D, 0xF4, 0x31, 0x02, 0x5F, 0xEA,
- 0x51, 0xEB, 0x47, 0x62, 0x54, 0x4E, 0xFD, 0xEE,
- 0x97, 0x8A, 0x83, 0x50, 0x8D, 0xEA, 0x6B, 0xFD,
- 0x3B, 0x93, 0x1A, 0x0E, 0x95, 0x83, 0xCC, 0xFC,
- 0x04, 0x9E, 0xA8, 0x46, 0x44, 0x70, 0x5D, 0x31,
- 0x9F, 0xDC, 0x5C, 0x16, 0x3B, 0xF4, 0x82, 0x24
- },
- {
- 0xFE, 0xF4, 0x36, 0xB3, 0x5F, 0x71, 0x7D, 0x59,
- 0xAC, 0xA1, 0x7E, 0x9B, 0xF5, 0xFF, 0xDA, 0x28,
- 0xF5, 0xF4, 0x01, 0x94, 0x3E, 0xFE, 0x93, 0xEB,
- 0x58, 0x0F, 0xFB, 0x98, 0xF1, 0x3B, 0xEA, 0x80,
- 0x94, 0x69, 0xA3, 0x44, 0xE7, 0x82, 0xA4, 0x43,
- 0xC6, 0x4E, 0xB2, 0x5A, 0xD0, 0x9D, 0x8D, 0xE2,
- 0x05, 0xFE, 0xE7, 0xD5, 0x63, 0x96, 0x86, 0xA1,
- 0x9E, 0x7C, 0x42, 0xB4, 0x0F, 0x70, 0x6A, 0x08
- },
- {
- 0x4D, 0x47, 0xA6, 0x7A, 0x5F, 0x8E, 0x17, 0xB7,
- 0x22, 0xDF, 0x98, 0x58, 0xAE, 0xB6, 0x7B, 0x99,
- 0x56, 0xB4, 0x59, 0x62, 0xEC, 0x35, 0x3D, 0xC2,
- 0xE2, 0x7F, 0x0F, 0x50, 0x1C, 0x39, 0x8E, 0x34,
- 0x39, 0x7B, 0xEB, 0xE0, 0x2B, 0x54, 0x92, 0x7E,
- 0x2D, 0x31, 0xF1, 0x2E, 0xCF, 0x55, 0xE8, 0x82,
- 0x69, 0xFA, 0xB5, 0x37, 0x0E, 0x7F, 0xA5, 0x70,
- 0x35, 0x26, 0x6F, 0x89, 0xD5, 0xC2, 0x64, 0x41
- },
- {
- 0x1B, 0x58, 0xDC, 0x7A, 0xAC, 0x36, 0x3B, 0x00,
- 0x44, 0x6E, 0xA8, 0x03, 0xBC, 0xD7, 0x49, 0xC3,
- 0xF5, 0xCA, 0xBE, 0xAA, 0xF2, 0x23, 0x99, 0x4C,
- 0x0C, 0x3E, 0xCC, 0x1B, 0x28, 0x47, 0x73, 0x44,
- 0xD7, 0xBF, 0x97, 0xC0, 0x8A, 0x95, 0x9D, 0x1A,
- 0xC2, 0x06, 0x0B, 0x47, 0x27, 0x89, 0x86, 0x92,
- 0x91, 0x88, 0xAD, 0x73, 0xDE, 0x67, 0x07, 0x8B,
- 0xA6, 0x80, 0x96, 0x3B, 0x9D, 0x3B, 0x12, 0xA4
- },
- {
- 0x3C, 0x52, 0x2C, 0x84, 0x3E, 0x69, 0x74, 0xEC,
- 0x75, 0x0D, 0xF2, 0x20, 0xD4, 0x1A, 0x00, 0x4A,
- 0xC2, 0xAD, 0xF0, 0x94, 0x56, 0xFA, 0x78, 0x7F,
- 0x7C, 0x65, 0x43, 0xAB, 0x17, 0x97, 0x9C, 0x77,
- 0x7B, 0x3E, 0x79, 0xD1, 0x78, 0x7D, 0xA5, 0xA8,
- 0x3F, 0x17, 0x8D, 0xA9, 0xF0, 0x4C, 0xF6, 0xF5,
- 0xB2, 0x55, 0xDD, 0xCB, 0x18, 0x74, 0x84, 0x1B,
- 0xBF, 0x70, 0x16, 0xE6, 0x13, 0x2B, 0x99, 0x8A
- },
- {
- 0x5A, 0x4F, 0xEB, 0x8F, 0x70, 0x75, 0xB4, 0xDC,
- 0x9C, 0xA1, 0x6C, 0x6F, 0x05, 0xCD, 0x6B, 0x70,
- 0x27, 0x48, 0x5F, 0xFE, 0xD9, 0x15, 0x7D, 0x82,
- 0x4D, 0x9D, 0x1A, 0x17, 0x20, 0xEE, 0xEE, 0xEA,
- 0x3F, 0x6C, 0x12, 0x5F, 0xDA, 0x4B, 0xA4, 0x40,
- 0x9D, 0x79, 0x80, 0x49, 0xFD, 0x18, 0x82, 0xC6,
- 0x90, 0x28, 0x8F, 0x33, 0x54, 0x7A, 0x3D, 0x8D,
- 0x62, 0x60, 0xB6, 0x54, 0x54, 0x88, 0x53, 0xD7
- },
- {
- 0xBC, 0xAA, 0x79, 0x36, 0x32, 0x56, 0x9E, 0x2F,
- 0x84, 0x17, 0xCC, 0x60, 0x32, 0x53, 0x53, 0x5B,
- 0xD7, 0xD8, 0x5F, 0x38, 0x53, 0x19, 0x92, 0x59,
- 0x1E, 0x56, 0xC1, 0xA4, 0xB6, 0xF5, 0x8E, 0xE7,
- 0xF8, 0x18, 0xFA, 0xE0, 0x27, 0x88, 0x8A, 0x86,
- 0x28, 0x43, 0x05, 0x10, 0x1E, 0xC0, 0x46, 0x61,
- 0xF5, 0x99, 0x53, 0x47, 0xA4, 0x67, 0xED, 0x8B,
- 0x92, 0x79, 0xF1, 0xAC, 0xC2, 0xB4, 0xBB, 0x1F
- },
- {
- 0x34, 0xAF, 0x91, 0xCC, 0x22, 0xA6, 0x9B, 0xCB,
- 0x55, 0xDD, 0xBF, 0x7F, 0x0F, 0x43, 0xEC, 0x56,
- 0x48, 0x40, 0x43, 0x32, 0x13, 0xEA, 0x55, 0xD9,
- 0xF8, 0x1A, 0xC4, 0x75, 0x20, 0x8D, 0x74, 0x85,
- 0x1D, 0xB7, 0x0F, 0xE4, 0x96, 0xAF, 0x9D, 0xA1,
- 0xD3, 0x93, 0xEC, 0xF8, 0x78, 0x69, 0x5D, 0xD3,
- 0x3F, 0xD5, 0x43, 0x49, 0xA6, 0xF8, 0x24, 0xAE,
- 0xED, 0x18, 0x3C, 0xB1, 0xB0, 0x8C, 0x54, 0x85
- },
- {
- 0xB8, 0xB7, 0xAD, 0x2E, 0xA2, 0xB6, 0xFA, 0x06,
- 0xD0, 0x0B, 0xCD, 0x59, 0x9C, 0x99, 0x71, 0xC5,
- 0xB4, 0xE1, 0x65, 0x58, 0xE1, 0x52, 0x12, 0xC9,
- 0xBF, 0xD3, 0x73, 0xE4, 0xBC, 0x79, 0x17, 0x05,
- 0x26, 0x01, 0xFF, 0xDB, 0x68, 0x01, 0xBE, 0x80,
- 0xBA, 0x50, 0x9D, 0xB8, 0x2A, 0x0B, 0x71, 0x95,
- 0x92, 0x91, 0x33, 0xAD, 0x53, 0x99, 0x56, 0x06,
- 0x52, 0x33, 0xF4, 0x9D, 0x07, 0x1C, 0x84, 0xE4
- },
- {
- 0xDC, 0xEE, 0x9C, 0x45, 0xBC, 0x5D, 0x1F, 0xE6,
- 0x30, 0xB1, 0x8B, 0x06, 0x3C, 0xE8, 0x2C, 0x38,
- 0x57, 0xE3, 0x0D, 0x20, 0xC6, 0x4B, 0x5C, 0xC2,
- 0x58, 0x84, 0x94, 0x3E, 0x7A, 0xE9, 0x4E, 0xDF,
- 0xF8, 0x50, 0xEB, 0x0E, 0x82, 0x44, 0x02, 0x3D,
- 0x3D, 0x07, 0xA8, 0xA0, 0x07, 0x06, 0xF0, 0x58,
- 0x2C, 0xC1, 0x02, 0xB6, 0x6C, 0x6D, 0xDA, 0x86,
- 0xE8, 0xF2, 0xDF, 0x32, 0x56, 0x59, 0x88, 0x6F
- },
- {
- 0x04, 0xF6, 0xE8, 0x22, 0xF1, 0x7C, 0xC7, 0xA5,
- 0x94, 0x6D, 0xF8, 0x0D, 0x95, 0x8A, 0xEF, 0x06,
- 0x5D, 0x87, 0x49, 0x16, 0xE1, 0x03, 0xA6, 0x83,
- 0x0C, 0x6E, 0x46, 0xB6, 0x05, 0x59, 0x18, 0x18,
- 0x0D, 0x14, 0x52, 0x29, 0x3C, 0x58, 0xA9, 0x74,
- 0x9C, 0xBC, 0x8F, 0x0A, 0xC4, 0x08, 0xA9, 0xCA,
- 0x89, 0x57, 0x61, 0xCF, 0xC4, 0x51, 0x16, 0x46,
- 0x41, 0xA1, 0x79, 0xFB, 0x5C, 0xD8, 0xFE, 0xBC
- },
- {
- 0x51, 0x1F, 0xDB, 0x7C, 0x88, 0x26, 0x85, 0x35,
- 0xE9, 0x7E, 0x4E, 0xD8, 0x92, 0xF3, 0xC0, 0x65,
- 0x83, 0x2B, 0x26, 0x59, 0x14, 0xFC, 0x61, 0x07,
- 0xA1, 0xD2, 0x7D, 0xBB, 0x7D, 0x51, 0xC3, 0x7E,
- 0x95, 0x98, 0x15, 0x06, 0xC1, 0x14, 0x72, 0x44,
- 0xD5, 0xBA, 0xE9, 0x0E, 0xE9, 0x0D, 0x08, 0x49,
- 0x84, 0xBA, 0xA7, 0x58, 0x7F, 0x41, 0xFF, 0x6F,
- 0x4B, 0xA7, 0x22, 0xC8, 0xB9, 0x2A, 0xEB, 0x99
- },
- {
- 0x2B, 0xA2, 0xBD, 0x17, 0xE9, 0x26, 0x27, 0x5B,
- 0x06, 0x83, 0xB2, 0x36, 0xBF, 0xE3, 0x76, 0x30,
- 0x26, 0x6E, 0x37, 0xF4, 0x18, 0x2F, 0x53, 0xA9,
- 0x82, 0x34, 0xE9, 0x15, 0xAB, 0x64, 0xC9, 0x59,
- 0x96, 0xC6, 0xCB, 0x7A, 0xE8, 0x80, 0xC3, 0xDF,
- 0xCB, 0x47, 0xD0, 0x5A, 0xAD, 0xD2, 0x1A, 0xBF,
- 0x8E, 0x40, 0xB7, 0x3F, 0x40, 0xF3, 0x98, 0xDC,
- 0x5B, 0x02, 0x14, 0x14, 0x57, 0x45, 0x6A, 0x09
- },
- {
- 0x9B, 0x66, 0x8D, 0x9B, 0x44, 0x47, 0xE3, 0x76,
- 0xF6, 0xC6, 0xCF, 0xA6, 0x8D, 0xBC, 0x79, 0x19,
- 0x83, 0x81, 0xAB, 0x60, 0x5F, 0x55, 0xD5, 0xA7,
- 0xEF, 0x68, 0x3B, 0xCE, 0xD4, 0x6F, 0x9A, 0xFD,
- 0x36, 0x85, 0x41, 0x1A, 0x66, 0xE2, 0x34, 0x6F,
- 0x96, 0x07, 0x77, 0xD0, 0xC9, 0x22, 0x71, 0x24,
- 0x30, 0xE0, 0x18, 0xBF, 0xAE, 0x86, 0x53, 0x01,
- 0x7E, 0xA2, 0x0E, 0xCD, 0x5F, 0x1F, 0x95, 0x6C
- },
- {
- 0x56, 0x81, 0x02, 0x4F, 0x53, 0x85, 0x88, 0xA0,
- 0x1B, 0x2C, 0x83, 0x94, 0xCA, 0xE8, 0x73, 0xC6,
- 0xD8, 0x5D, 0x6A, 0xA0, 0x6E, 0xDD, 0xB3, 0xA5,
- 0x02, 0x09, 0x6F, 0xC0, 0x82, 0xBB, 0x89, 0xCB,
- 0x24, 0x15, 0x31, 0xB3, 0x15, 0x75, 0x0D, 0x31,
- 0xBB, 0x0B, 0x63, 0x01, 0x28, 0xD1, 0x9D, 0x11,
- 0x39, 0x2B, 0xCF, 0x4B, 0x34, 0x78, 0xD5, 0x23,
- 0xD7, 0xD2, 0x13, 0xE4, 0x75, 0x0F, 0x55, 0x92
- },
- {
- 0x2A, 0xA9, 0x1B, 0xA6, 0xDE, 0x60, 0x17, 0xF1,
- 0x93, 0x0F, 0xC7, 0xD9, 0x6D, 0xCC, 0xD6, 0x70,
- 0x74, 0x8B, 0x7E, 0xB1, 0xD0, 0x94, 0xDF, 0xB4,
- 0xB3, 0xB1, 0x47, 0x8A, 0x61, 0x2E, 0xBF, 0x03,
- 0xDD, 0xD7, 0x21, 0x27, 0x9A, 0x26, 0x6D, 0xE3,
- 0x88, 0x45, 0xE6, 0x12, 0xC9, 0x30, 0x98, 0xC2,
- 0xEF, 0xFF, 0x34, 0xFE, 0x50, 0x06, 0x17, 0x20,
- 0x5B, 0x1D, 0xE2, 0xFE, 0xA1, 0xD8, 0x02, 0x46
- },
- {
- 0x82, 0x4D, 0x89, 0xC0, 0x63, 0x7C, 0xE1, 0x78,
- 0xB6, 0x30, 0x68, 0x4C, 0x72, 0x9E, 0x26, 0x65,
- 0x3F, 0x34, 0xEA, 0xC7, 0xE9, 0x04, 0x12, 0xE9,
- 0x63, 0xD3, 0xF1, 0x9D, 0x64, 0x51, 0xE8, 0x25,
- 0x85, 0x21, 0x67, 0xC4, 0x8D, 0xF7, 0xCC, 0x55,
- 0xB2, 0x57, 0xB2, 0x50, 0xA7, 0x0C, 0x7B, 0xCC,
- 0xFA, 0x9A, 0xA1, 0x5C, 0x18, 0x8A, 0xC4, 0x63,
- 0x7A, 0x52, 0x22, 0x89, 0xC0, 0x87, 0x6A, 0xD4
- },
- {
- 0x87, 0xE4, 0xAE, 0x11, 0xDA, 0x1A, 0x2C, 0xA8,
- 0x82, 0x2A, 0xE3, 0x30, 0xDC, 0x97, 0xAB, 0x2E,
- 0x47, 0xFF, 0x62, 0x32, 0x30, 0x93, 0xC2, 0xB7,
- 0xA6, 0xC0, 0xE2, 0xC1, 0x68, 0x21, 0xCD, 0x7C,
- 0xEC, 0x92, 0x18, 0x4D, 0xF4, 0xBB, 0x6E, 0x2B,
- 0x62, 0x6A, 0x44, 0x78, 0x03, 0x90, 0x63, 0xAF,
- 0xEE, 0xB0, 0xD2, 0x87, 0xF2, 0x42, 0x19, 0x20,
- 0x78, 0x98, 0xCC, 0xE7, 0xAD, 0xE0, 0x63, 0x9C
- },
- {
- 0xDD, 0x7F, 0x2F, 0x44, 0xA4, 0x02, 0xA0, 0x1E,
- 0x82, 0x16, 0xB1, 0x03, 0xA4, 0xE7, 0x23, 0x5C,
- 0x28, 0x30, 0x31, 0x9D, 0x56, 0xAF, 0x63, 0x9F,
- 0x23, 0xC4, 0x8C, 0x27, 0x59, 0xAB, 0xA6, 0xEB,
- 0x5E, 0xEE, 0xE3, 0x8C, 0x29, 0x8E, 0xBE, 0x41,
- 0x98, 0x26, 0x7A, 0x00, 0xEB, 0x2A, 0x08, 0xD9,
- 0x3A, 0x50, 0x37, 0x03, 0x17, 0x1C, 0x77, 0x33,
- 0x38, 0x62, 0x10, 0x10, 0x55, 0xBD, 0x7A, 0xD2
- },
- {
- 0x4C, 0xB8, 0x46, 0x59, 0x61, 0x93, 0xF7, 0xF2,
- 0x78, 0xAA, 0xAA, 0xC5, 0xCC, 0xFF, 0xD5, 0x35,
- 0x7A, 0xB0, 0xD1, 0x24, 0x5F, 0x69, 0x79, 0xD1,
- 0x41, 0xA4, 0x71, 0xBD, 0xAB, 0x55, 0xE2, 0x38,
- 0xB1, 0xAE, 0xD6, 0x7B, 0x73, 0x39, 0x95, 0x04,
- 0xB9, 0x7D, 0xF1, 0xA2, 0x5E, 0xB6, 0xFE, 0x27,
- 0x2B, 0x5C, 0xD4, 0x96, 0xA7, 0xC8, 0xA0, 0x60,
- 0x92, 0x6E, 0x74, 0x04, 0xFD, 0xA0, 0x79, 0x0D
- },
- {
- 0x6F, 0x44, 0xEC, 0xDA, 0xE1, 0x4E, 0x3B, 0x81,
- 0xA1, 0x91, 0x22, 0x03, 0x01, 0x5F, 0x59, 0x18,
- 0xEA, 0xC6, 0xFB, 0xF4, 0x96, 0x60, 0x10, 0xF4,
- 0x9D, 0x2B, 0xC2, 0xBC, 0xEF, 0xE7, 0xB1, 0xDF,
- 0xEC, 0x5C, 0x83, 0x5D, 0x7D, 0x87, 0xA4, 0x43,
- 0x71, 0xF1, 0x5A, 0x6C, 0x08, 0x42, 0x52, 0xB9,
- 0x34, 0x65, 0x26, 0x42, 0x72, 0xA4, 0x10, 0xD5,
- 0x0F, 0x89, 0xA1, 0x17, 0xF3, 0x1A, 0xF4, 0x63
- },
- {
- 0x1F, 0x70, 0x5F, 0x6E, 0x9F, 0x07, 0x0D, 0x87,
- 0xFD, 0xE8, 0xE2, 0x77, 0x46, 0x74, 0xFA, 0x9B,
- 0xF1, 0x20, 0xD2, 0x88, 0xEB, 0x0B, 0xE7, 0xAA,
- 0x12, 0x8D, 0xFB, 0x5D, 0x10, 0x11, 0xCE, 0x1F,
- 0xDA, 0x99, 0xB2, 0x55, 0x22, 0x66, 0x65, 0xD8,
- 0x3F, 0x63, 0x4E, 0x8F, 0xCA, 0xBD, 0xA9, 0xA2,
- 0x3C, 0x03, 0x51, 0x5E, 0x9C, 0xFE, 0xCE, 0x6E,
- 0x94, 0xA8, 0xEC, 0x92, 0xE4, 0xED, 0xEC, 0xB7
- },
- {
- 0x2D, 0x96, 0xC5, 0xB0, 0x15, 0x74, 0x72, 0x2B,
- 0x81, 0x7F, 0xEB, 0x48, 0x6C, 0x5F, 0xC9, 0x8F,
- 0x5F, 0x84, 0x61, 0xF4, 0xCE, 0xE9, 0x90, 0x5A,
- 0xF2, 0x06, 0xD4, 0x72, 0x33, 0x86, 0xD1, 0xC4,
- 0xC7, 0xCA, 0xC5, 0x84, 0x00, 0x28, 0xD7, 0xAF,
- 0xED, 0x0E, 0x38, 0xAD, 0x13, 0x96, 0x28, 0xEB,
- 0x6A, 0xF9, 0x2B, 0x4B, 0x88, 0xEB, 0xF0, 0x9B,
- 0x1F, 0xA0, 0x47, 0xFB, 0xE1, 0x0B, 0xC3, 0x1D
- },
- {
- 0x65, 0xDA, 0x78, 0x0A, 0x0A, 0x37, 0x47, 0x9D,
- 0xD8, 0xF4, 0xD6, 0x55, 0x64, 0xF9, 0xA7, 0x08,
- 0x9E, 0x42, 0x07, 0xEB, 0x16, 0xAC, 0xA3, 0xF6,
- 0x55, 0x31, 0xCF, 0xEE, 0x76, 0x25, 0xBA, 0x13,
- 0x80, 0xA4, 0x97, 0xB6, 0x24, 0x72, 0xFC, 0x7E,
- 0x00, 0x07, 0xA6, 0xB0, 0x35, 0x61, 0x04, 0x16,
- 0xA5, 0xF8, 0x2C, 0x10, 0x82, 0xFA, 0x06, 0x5C,
- 0x46, 0xDD, 0xEE, 0x49, 0x40, 0xD1, 0xFC, 0x46
- },
- {
- 0x1C, 0x09, 0xA3, 0xB3, 0x80, 0xB8, 0xA7, 0xFC,
- 0x33, 0x3F, 0xD2, 0x71, 0x4D, 0xF7, 0x12, 0x9B,
- 0x44, 0xA4, 0x67, 0x68, 0xBA, 0xCF, 0x0A, 0x67,
- 0xA3, 0x8A, 0x47, 0xB3, 0xAB, 0x31, 0xF5, 0x1B,
- 0x05, 0x33, 0xC2, 0xAA, 0x2B, 0x4B, 0x7B, 0xBB,
- 0x6A, 0xE5, 0xED, 0xF3, 0xDC, 0xB0, 0xEC, 0xC1,
- 0xA2, 0x83, 0xE8, 0x43, 0xF2, 0x90, 0x7B, 0x34,
- 0x1F, 0x17, 0x9A, 0xFD, 0x8B, 0x67, 0xDA, 0x90
- },
- {
- 0x67, 0x88, 0x8B, 0x83, 0xFA, 0xAF, 0xBB, 0x62,
- 0x29, 0x34, 0xB8, 0xD5, 0x59, 0x63, 0xE1, 0x86,
- 0x15, 0x3E, 0x59, 0x51, 0x88, 0x7C, 0x7F, 0x4A,
- 0x76, 0x35, 0xC7, 0x98, 0xD9, 0xA5, 0x82, 0x94,
- 0xBE, 0x26, 0xA3, 0xC5, 0x49, 0xC9, 0xFD, 0x59,
- 0x86, 0xAB, 0xD1, 0x9F, 0x40, 0x1E, 0xE2, 0x4E,
- 0xDA, 0x36, 0x02, 0x04, 0x2A, 0xD3, 0x83, 0x35,
- 0x7A, 0x31, 0x7D, 0x38, 0x07, 0x3B, 0x38, 0xCE
- },
- {
- 0xB4, 0xF7, 0x99, 0x63, 0xCA, 0x31, 0xBB, 0x62,
- 0x26, 0x5D, 0xD9, 0x29, 0xAF, 0x7D, 0x51, 0x27,
- 0x2F, 0xA6, 0x63, 0x1D, 0xE7, 0xFA, 0x35, 0xF7,
- 0xA6, 0xB0, 0x3F, 0x9F, 0xCF, 0xDB, 0x8E, 0x3B,
- 0x5B, 0xAC, 0xE3, 0x35, 0x91, 0xB7, 0xEC, 0x2C,
- 0xFA, 0xB4, 0x9C, 0x91, 0xA6, 0xDB, 0x1F, 0xF8,
- 0xF6, 0x78, 0x6D, 0x08, 0xF4, 0x4E, 0x80, 0x62,
- 0xD2, 0xFF, 0x69, 0x6A, 0x7D, 0x98, 0x41, 0x42
- },
- {
- 0x40, 0x84, 0x83, 0x69, 0x7B, 0xB6, 0xF9, 0xD0,
- 0x11, 0xA1, 0xF2, 0x9A, 0x23, 0xC2, 0x78, 0xA8,
- 0x1D, 0x37, 0x57, 0x8D, 0xCC, 0xCF, 0x42, 0x3B,
- 0xDF, 0x48, 0x93, 0x37, 0xF1, 0x82, 0xEA, 0xB7,
- 0x9A, 0x50, 0xB0, 0x5F, 0x3D, 0x2C, 0xCC, 0x49,
- 0x13, 0x37, 0xC7, 0xE4, 0x1F, 0x30, 0x79, 0x3B,
- 0xD2, 0x7D, 0x76, 0x61, 0xC2, 0xE3, 0x04, 0xC9,
- 0x46, 0xA5, 0xA4, 0x01, 0xAF, 0x8D, 0x94, 0x6F
- },
- {
- 0xEE, 0xB5, 0xAD, 0xE1, 0xAB, 0x97, 0xE7, 0x15,
- 0x43, 0x43, 0xA4, 0x6E, 0xB4, 0xCD, 0xD2, 0xA7,
- 0x73, 0xF3, 0x63, 0x01, 0xED, 0xC6, 0xA1, 0xBC,
- 0x1D, 0xD6, 0x48, 0x0E, 0x08, 0xF5, 0x87, 0x65,
- 0xCB, 0x93, 0x87, 0x82, 0x92, 0x3B, 0xC0, 0x1F,
- 0x8E, 0x0C, 0x61, 0xC6, 0xBE, 0x0D, 0xD1, 0xAB,
- 0x4C, 0x18, 0xCB, 0x15, 0xED, 0x52, 0x10, 0x11,
- 0x24, 0x05, 0xF1, 0xEA, 0x8F, 0x2E, 0x8C, 0x4E
- },
- {
- 0x71, 0x4A, 0xD1, 0x85, 0xF1, 0xEE, 0xC4, 0x3F,
- 0x46, 0xB6, 0x7E, 0x99, 0x2D, 0x2D, 0x38, 0xBC,
- 0x31, 0x49, 0xE3, 0x7D, 0xA7, 0xB4, 0x47, 0x48,
- 0xD4, 0xD1, 0x4C, 0x16, 0x1E, 0x08, 0x78, 0x02,
- 0x04, 0x42, 0x14, 0x95, 0x79, 0xA8, 0x65, 0xD8,
- 0x04, 0xB0, 0x49, 0xCD, 0x01, 0x55, 0xBA, 0x98,
- 0x33, 0x78, 0x75, 0x7A, 0x13, 0x88, 0x30, 0x1B,
- 0xDC, 0x0F, 0xAE, 0x2C, 0xEA, 0xEA, 0x07, 0xDD
- },
- {
- 0x22, 0xB8, 0x24, 0x9E, 0xAF, 0x72, 0x29, 0x64,
- 0xCE, 0x42, 0x4F, 0x71, 0xA7, 0x4D, 0x03, 0x8F,
- 0xF9, 0xB6, 0x15, 0xFB, 0xA5, 0xC7, 0xC2, 0x2C,
- 0xB6, 0x27, 0x97, 0xF5, 0x39, 0x82, 0x24, 0xC3,
- 0xF0, 0x72, 0xEB, 0xC1, 0xDA, 0xCB, 0xA3, 0x2F,
- 0xC6, 0xF6, 0x63, 0x60, 0xB3, 0xE1, 0x65, 0x8D,
- 0x0F, 0xA0, 0xDA, 0x1E, 0xD1, 0xC1, 0xDA, 0x66,
- 0x2A, 0x20, 0x37, 0xDA, 0x82, 0x3A, 0x33, 0x83
- },
- {
- 0xB8, 0xE9, 0x03, 0xE6, 0x91, 0xB9, 0x92, 0x78,
- 0x25, 0x28, 0xF8, 0xDB, 0x96, 0x4D, 0x08, 0xE3,
- 0xBA, 0xAF, 0xBD, 0x08, 0xBA, 0x60, 0xC7, 0x2A,
- 0xEC, 0x0C, 0x28, 0xEC, 0x6B, 0xFE, 0xCA, 0x4B,
- 0x2E, 0xC4, 0xC4, 0x6F, 0x22, 0xBF, 0x62, 0x1A,
- 0x5D, 0x74, 0xF7, 0x5C, 0x0D, 0x29, 0x69, 0x3E,
- 0x56, 0xC5, 0xC5, 0x84, 0xF4, 0x39, 0x9E, 0x94,
- 0x2F, 0x3B, 0xD8, 0xD3, 0x86, 0x13, 0xE6, 0x39
- },
- {
- 0xD5, 0xB4, 0x66, 0xFF, 0x1F, 0xD6, 0x8C, 0xFA,
- 0x8E, 0xDF, 0x0B, 0x68, 0x02, 0x44, 0x8F, 0x30,
- 0x2D, 0xCC, 0xDA, 0xF5, 0x66, 0x28, 0x78, 0x6B,
- 0x9D, 0xA0, 0xF6, 0x62, 0xFD, 0xA6, 0x90, 0x26,
- 0x6B, 0xD4, 0x0A, 0xB6, 0xF0, 0xBE, 0xC0, 0x43,
- 0xF1, 0x01, 0x28, 0xB3, 0x3D, 0x05, 0xDB, 0x82,
- 0xD4, 0xAB, 0x26, 0x8A, 0x4F, 0x91, 0xAC, 0x42,
- 0x86, 0x79, 0x5F, 0xC0, 0xF7, 0xCB, 0x48, 0x5C
- },
- {
- 0x0A, 0x1E, 0x8C, 0x0A, 0x8C, 0x48, 0xB8, 0x4B,
- 0x71, 0xBA, 0x0F, 0xE5, 0x6F, 0xA0, 0x56, 0x09,
- 0x8C, 0xA6, 0x92, 0xE9, 0x2F, 0x27, 0x6E, 0x85,
- 0xB3, 0x38, 0x26, 0xCD, 0x78, 0x75, 0xFC, 0xF8,
- 0x83, 0x85, 0x13, 0x1B, 0x43, 0xDF, 0x74, 0x53,
- 0x2E, 0xAA, 0x86, 0xCF, 0x17, 0x1F, 0x50, 0x76,
- 0xE6, 0xD1, 0x7B, 0x1C, 0x75, 0xFB, 0xA1, 0xDB,
- 0x00, 0x1B, 0x6E, 0x66, 0x97, 0x7C, 0xB8, 0xD7
- },
- {
- 0x65, 0xAA, 0x17, 0x99, 0x14, 0x36, 0x93, 0xAB,
- 0xD9, 0xCB, 0x21, 0x8D, 0x9B, 0x5E, 0xC6, 0x0C,
- 0x0E, 0xDD, 0xB0, 0x67, 0xE6, 0xA3, 0x2F, 0x76,
- 0x79, 0x60, 0x10, 0xAC, 0xB1, 0x1A, 0xD0, 0x13,
- 0x6C, 0xE4, 0x9F, 0x97, 0x6E, 0x74, 0xF8, 0x95,
- 0x04, 0x2F, 0x7C, 0xBF, 0x13, 0xFB, 0x73, 0xD1,
- 0x9D, 0xC8, 0x89, 0xD7, 0xE9, 0x03, 0x46, 0x9D,
- 0xEB, 0x33, 0x73, 0x1F, 0x24, 0x06, 0xB6, 0x63
- },
- {
- 0xDE, 0xB7, 0x12, 0xB9, 0xCC, 0x64, 0xF5, 0x88,
- 0x14, 0x86, 0x0B, 0x51, 0xFA, 0x89, 0xAD, 0x8A,
- 0x92, 0x6A, 0x69, 0x08, 0xC7, 0x96, 0xDE, 0x55,
- 0x7F, 0x90, 0xCF, 0xAD, 0xB0, 0xC6, 0x2C, 0x07,
- 0x87, 0x2F, 0x33, 0xFE, 0x18, 0x4E, 0x5E, 0x21,
- 0x2A, 0x3C, 0x5C, 0x37, 0x31, 0x74, 0x18, 0x44,
- 0x6E, 0xFD, 0x95, 0x61, 0x3F, 0x61, 0x8A, 0x35,
- 0xF7, 0xD2, 0x78, 0x9E, 0xFE, 0x0D, 0x96, 0x60
- },
- {
- 0xB4, 0x2F, 0x4A, 0x40, 0xB3, 0xC8, 0x8B, 0xCE,
- 0xCF, 0xE3, 0x28, 0xC8, 0x46, 0xBF, 0x06, 0x48,
- 0xA1, 0x69, 0x90, 0xCA, 0x53, 0x91, 0x95, 0xC0,
- 0xC1, 0xDC, 0x8D, 0x70, 0x30, 0x80, 0x67, 0x68,
- 0x5A, 0xF6, 0x77, 0xAD, 0x65, 0xAC, 0x0C, 0x7A,
- 0x9B, 0xCF, 0xA8, 0xF7, 0xAC, 0xC0, 0xAA, 0xCF,
- 0x45, 0xCA, 0x18, 0xAC, 0x83, 0x1F, 0xED, 0x64,
- 0x4E, 0xC3, 0xD9, 0x28, 0x31, 0x01, 0xFF, 0xEF
- },
- {
- 0xED, 0xCF, 0x6C, 0x81, 0xCC, 0xF1, 0x6E, 0x11,
- 0xDD, 0xF7, 0x19, 0xA3, 0x3D, 0xD0, 0xE5, 0x34,
- 0x9C, 0xAB, 0xAC, 0x5C, 0xFA, 0xE5, 0x97, 0x00,
- 0x98, 0x40, 0xE1, 0xC3, 0x93, 0x62, 0xC0, 0xF1,
- 0x19, 0x82, 0xFE, 0x2C, 0x27, 0x65, 0x85, 0x9A,
- 0x94, 0x26, 0x2D, 0xA2, 0x8D, 0xD3, 0x37, 0x3D,
- 0x52, 0x26, 0x93, 0x89, 0x75, 0x11, 0xEB, 0xA5,
- 0xE0, 0x7B, 0x8B, 0xC6, 0xB6, 0x06, 0x4D, 0xC0
- },
- {
- 0x46, 0xB9, 0x62, 0xD2, 0x28, 0x36, 0x94, 0xD2,
- 0x79, 0x75, 0xDC, 0xBF, 0x32, 0x56, 0x4C, 0x9B,
- 0x04, 0x03, 0x2B, 0x30, 0xA9, 0x3E, 0x05, 0x8F,
- 0xB7, 0x7B, 0x2B, 0x71, 0x8B, 0x4A, 0xD5, 0xFB,
- 0x78, 0x9A, 0xB7, 0xD7, 0xAA, 0x90, 0x85, 0x2D,
- 0xA2, 0xBF, 0xB6, 0xB3, 0x93, 0xB0, 0x9F, 0x98,
- 0xE8, 0x69, 0xB1, 0x6E, 0x41, 0x0E, 0x7D, 0xE2,
- 0x30, 0xB1, 0x79, 0xF6, 0x2E, 0xB5, 0x74, 0x71
- },
- {
- 0x29, 0x03, 0x6C, 0x3F, 0x53, 0x82, 0xE3, 0x5D,
- 0xE7, 0xA6, 0x9F, 0xA7, 0xA6, 0x3E, 0xC7, 0xBD,
- 0xCB, 0xC4, 0xE0, 0xCC, 0x5A, 0x7B, 0x64, 0x14,
- 0xCF, 0x44, 0xBF, 0x9A, 0x83, 0x83, 0xEF, 0xB5,
- 0x97, 0x23, 0x50, 0x6F, 0x0D, 0x51, 0xAD, 0x50,
- 0xAC, 0x1E, 0xAC, 0xF7, 0x04, 0x30, 0x8E, 0x8A,
- 0xEC, 0xB9, 0x66, 0xF6, 0xAC, 0x94, 0x1D, 0xB1,
- 0xCD, 0xE4, 0xB5, 0x9E, 0x84, 0xC1, 0xEB, 0xBA
- },
- {
- 0x17, 0x3F, 0x8A, 0xB8, 0x93, 0x3E, 0xB0, 0x7C,
- 0xC5, 0xFD, 0x6E, 0x4B, 0xCE, 0xBA, 0xE1, 0xFF,
- 0x35, 0xC7, 0x87, 0x9B, 0x93, 0x8A, 0x5A, 0x15,
- 0x79, 0xEA, 0x02, 0xF3, 0x83, 0x32, 0x48, 0x86,
- 0xC7, 0x0E, 0xD9, 0x10, 0x9D, 0xE1, 0x69, 0x0B,
- 0x8E, 0xE8, 0x01, 0xBC, 0x95, 0x9B, 0x21, 0xD3,
- 0x81, 0x17, 0xEB, 0xB8, 0x4A, 0xB5, 0x6F, 0x88,
- 0xF8, 0xA3, 0x72, 0x62, 0x00, 0x2D, 0xD9, 0x8E
- },
- {
- 0xC6, 0xAF, 0xA6, 0xA1, 0x91, 0x93, 0x1F, 0xD4,
- 0x5C, 0x3B, 0xAD, 0xBA, 0x72, 0x6E, 0x68, 0xA9,
- 0xBC, 0x73, 0x88, 0xC8, 0xCF, 0x37, 0xAD, 0xEC,
- 0x7C, 0x64, 0x56, 0x1C, 0xF4, 0x81, 0xFD, 0x25,
- 0x9A, 0x64, 0x6C, 0x8B, 0xD8, 0x43, 0xE7, 0x70,
- 0x9E, 0x11, 0xE6, 0x4D, 0xCF, 0xD5, 0xDF, 0xFF,
- 0xED, 0x79, 0x23, 0x5C, 0x68, 0x9B, 0x42, 0x00,
- 0xFE, 0x7A, 0xC8, 0xDF, 0xDA, 0xDD, 0xEC, 0xE0
- },
- {
- 0xA6, 0xDC, 0xCD, 0x8C, 0x19, 0x26, 0x64, 0x88,
- 0xBF, 0x77, 0xB9, 0xF2, 0x4B, 0x91, 0x43, 0xDE,
- 0xF1, 0xFE, 0xD6, 0x1D, 0x0C, 0x60, 0xB5, 0x00,
- 0x0A, 0x52, 0x3F, 0x45, 0x0D, 0xA2, 0x3D, 0x74,
- 0xE4, 0xE3, 0xF6, 0xEF, 0x04, 0x09, 0x0D, 0x10,
- 0x66, 0xB6, 0xAC, 0xE8, 0x5A, 0xBC, 0x0F, 0x03,
- 0x01, 0x73, 0xF5, 0x28, 0x17, 0x72, 0x7C, 0x4E,
- 0x40, 0x43, 0x2D, 0xD3, 0x4C, 0x6E, 0xF9, 0xF0
- },
- {
- 0xAA, 0xF8, 0x90, 0x8D, 0x54, 0x6E, 0x4F, 0x1E,
- 0x31, 0x4C, 0x00, 0xE9, 0xD2, 0xE8, 0x85, 0x5C,
- 0xB2, 0x56, 0x44, 0x5A, 0xAE, 0x3E, 0xCA, 0x44,
- 0x23, 0x83, 0x22, 0xAE, 0xC7, 0x40, 0x34, 0xA1,
- 0x45, 0x8A, 0x29, 0x36, 0x75, 0xDA, 0xD9, 0x49,
- 0x40, 0x8D, 0xE5, 0x55, 0x4F, 0x22, 0xD7, 0x34,
- 0x54, 0xF3, 0xF0, 0x70, 0x9C, 0xBC, 0xCC, 0x85,
- 0xCB, 0x05, 0x3A, 0x6F, 0x50, 0x38, 0x91, 0xA1
- },
- {
- 0x52, 0x5F, 0x4A, 0xAB, 0x9C, 0x32, 0x7D, 0x2A,
- 0x6A, 0x3C, 0x9D, 0xF8, 0x1F, 0xB7, 0xBE, 0x97,
- 0xEE, 0x03, 0xE3, 0xF7, 0xCE, 0x33, 0x21, 0x1C,
- 0x47, 0x78, 0x8A, 0xCD, 0x13, 0x46, 0x40, 0xDD,
- 0x90, 0xAD, 0x74, 0x99, 0x2D, 0x3D, 0xD6, 0xAC,
- 0x80, 0x63, 0x50, 0xF3, 0xBA, 0xBC, 0x7F, 0xE1,
- 0x98, 0xA6, 0x1D, 0xB3, 0x2D, 0x4A, 0xD1, 0xD6,
- 0x56, 0x9A, 0xE8, 0x41, 0x31, 0x04, 0xDE, 0xA4
- },
- {
- 0x2D, 0xAC, 0xCD, 0x88, 0x71, 0x9D, 0x0A, 0x00,
- 0xB5, 0x2C, 0x6E, 0xB7, 0x9E, 0x1C, 0xA8, 0xB4,
- 0xA1, 0xB4, 0xB4, 0x4F, 0xFA, 0x20, 0x88, 0x9F,
- 0x23, 0x63, 0xEF, 0x5C, 0x0D, 0x73, 0x7F, 0x1F,
- 0x81, 0xF5, 0x0D, 0xA1, 0xCA, 0xAC, 0x23, 0x1D,
- 0x6F, 0xCB, 0x48, 0x89, 0x5E, 0x72, 0x99, 0xB7,
- 0x7A, 0xF8, 0x1F, 0x0A, 0xA4, 0xA7, 0x61, 0x8A,
- 0xD2, 0x4B, 0x7A, 0xAF, 0xC8, 0xE3, 0xA2, 0xBE
- },
- {
- 0x7D, 0x28, 0x6F, 0x1F, 0x72, 0x1E, 0xC2, 0xD2,
- 0x11, 0x5E, 0xF4, 0xCC, 0xD8, 0x28, 0x58, 0xA4,
- 0xD5, 0x12, 0x21, 0x13, 0x55, 0xD4, 0xFC, 0x58,
- 0xE5, 0x34, 0xBF, 0xA5, 0x9C, 0x2E, 0x1B, 0xF5,
- 0x52, 0xA9, 0x6D, 0xC4, 0xB3, 0xE4, 0x6B, 0x01,
- 0x28, 0x65, 0xDA, 0x88, 0x13, 0x4C, 0xF0, 0x4E,
- 0x73, 0x1B, 0x19, 0x30, 0x75, 0x9E, 0x15, 0x8F,
- 0xF6, 0x20, 0xB6, 0xEC, 0x5A, 0xAF, 0xD0, 0x12
- },
- {
- 0x21, 0x82, 0x6B, 0x95, 0x29, 0xC4, 0xBC, 0x51,
- 0x91, 0x47, 0xF5, 0xF9, 0xFE, 0x6D, 0xB8, 0x78,
- 0x34, 0x52, 0x15, 0xE5, 0x09, 0x4F, 0x4E, 0x99,
- 0xB1, 0x31, 0xED, 0x54, 0xE2, 0x49, 0x53, 0xCE,
- 0xE9, 0xAD, 0xB7, 0x18, 0xD1, 0x74, 0x3E, 0x6C,
- 0x27, 0xFC, 0x94, 0x51, 0x6A, 0x99, 0x22, 0xFB,
- 0x97, 0x5A, 0x78, 0x16, 0xB8, 0xAA, 0xB0, 0x21,
- 0x12, 0x60, 0x8C, 0x03, 0x2B, 0xF1, 0x38, 0xE3
- },
- {
- 0xC1, 0x68, 0x9C, 0x69, 0x8A, 0xB0, 0x65, 0xF6,
- 0x2E, 0xEE, 0x65, 0xDD, 0xCA, 0x67, 0x6B, 0xAA,
- 0x45, 0xB5, 0x2F, 0x30, 0x8A, 0xFA, 0x80, 0x4A,
- 0xB4, 0xAA, 0x6A, 0xB8, 0x4B, 0x7A, 0xC1, 0xAA,
- 0x1D, 0xFF, 0x07, 0x17, 0x56, 0x10, 0xB1, 0x2A,
- 0xE1, 0x1F, 0x27, 0xB7, 0xC4, 0x30, 0xAF, 0xD5,
- 0x75, 0x56, 0xBD, 0x18, 0x1D, 0x02, 0x83, 0x2C,
- 0xD8, 0xD0, 0xA5, 0xFD, 0xC3, 0x02, 0x01, 0x24
- },
- {
- 0xA1, 0xA6, 0x28, 0x17, 0x47, 0xE3, 0x4D, 0x3E,
- 0xDE, 0x5E, 0x93, 0x34, 0x01, 0x74, 0x7C, 0xA7,
- 0xF7, 0x66, 0x28, 0xB6, 0x14, 0xC8, 0xA3, 0x94,
- 0xF5, 0x02, 0x56, 0x2B, 0xFE, 0xE0, 0xB9, 0x94,
- 0xEC, 0xB6, 0x5F, 0xBF, 0xE1, 0xFF, 0x70, 0x67,
- 0xDC, 0xB0, 0x1D, 0x02, 0xA9, 0x2B, 0xA4, 0x62,
- 0x20, 0x75, 0x87, 0xCE, 0xF7, 0xDC, 0x2C, 0xFD,
- 0xB4, 0x58, 0x48, 0x48, 0xAD, 0x55, 0x91, 0x4A
- },
- {
- 0x00, 0x70, 0xA0, 0x19, 0x0A, 0xA6, 0x96, 0x57,
- 0x2D, 0x85, 0x3F, 0x1D, 0x24, 0xAB, 0x63, 0x08,
- 0x48, 0xAC, 0x56, 0xAD, 0x5C, 0x2E, 0xBF, 0xCF,
- 0xDE, 0x27, 0xD1, 0x11, 0xCD, 0x55, 0x93, 0x9C,
- 0x1E, 0x4D, 0x07, 0x87, 0x2D, 0xDE, 0x7C, 0xE7,
- 0x8B, 0x53, 0x4B, 0x53, 0x0F, 0x0A, 0x39, 0x6E,
- 0x86, 0xAF, 0x9D, 0x57, 0x53, 0x54, 0xB5, 0xD7,
- 0xE3, 0x4A, 0xCD, 0xE1, 0x8C, 0xC7, 0x67, 0xAE
- },
- {
- 0x51, 0xB9, 0xB5, 0xED, 0x19, 0x3F, 0xD4, 0xB1,
- 0xA3, 0xA9, 0x2B, 0x46, 0xBD, 0x4B, 0xD1, 0xF6,
- 0xEC, 0x6B, 0x38, 0xA6, 0x0F, 0x2D, 0x02, 0x61,
- 0xD7, 0x2A, 0xBF, 0xD1, 0x64, 0x36, 0x12, 0x8D,
- 0xCB, 0xF2, 0x2C, 0x25, 0xE3, 0xE3, 0xC4, 0x3F,
- 0xE4, 0xD2, 0x9D, 0xB9, 0x12, 0x4D, 0x03, 0x33,
- 0x30, 0x18, 0x45, 0x92, 0xD2, 0x0C, 0x5B, 0x08,
- 0x2C, 0x23, 0x20, 0x64, 0x54, 0xCB, 0x3D, 0xD7
- },
- {
- 0x57, 0x8F, 0x24, 0x27, 0x46, 0x91, 0x4E, 0x36,
- 0xD0, 0xD9, 0xD4, 0x80, 0x96, 0x89, 0x57, 0x12,
- 0x16, 0xA4, 0x3E, 0x47, 0x33, 0x32, 0x39, 0x51,
- 0x62, 0x0F, 0x5E, 0xE7, 0x8C, 0xCF, 0xEE, 0x91,
- 0x9B, 0xF5, 0x5F, 0x28, 0x7B, 0x45, 0xA7, 0x3D,
- 0x44, 0x85, 0xAC, 0x74, 0x22, 0x87, 0x92, 0x39,
- 0x65, 0x3B, 0x05, 0x91, 0xC3, 0x6C, 0x86, 0x69,
- 0x41, 0xF8, 0xAF, 0xFE, 0x4A, 0xE5, 0x6E, 0x9E
- },
- {
- 0x94, 0x71, 0x30, 0xEF, 0x0B, 0x94, 0x8E, 0xE0,
- 0x45, 0x81, 0xAB, 0xA3, 0xE2, 0xCC, 0x4C, 0xEF,
- 0xC3, 0x8C, 0xCE, 0xDC, 0x86, 0x17, 0x92, 0xB7,
- 0xB5, 0xDC, 0xD9, 0xD9, 0x36, 0x1C, 0x72, 0x4A,
- 0x12, 0x20, 0x03, 0xBF, 0x79, 0x6C, 0xE0, 0x97,
- 0x98, 0x00, 0xAD, 0xAB, 0xC7, 0x45, 0x6F, 0x17,
- 0x3A, 0xE5, 0x26, 0x93, 0x15, 0xAF, 0xC0, 0x1B,
- 0x60, 0x6D, 0xB2, 0x9C, 0x75, 0x50, 0xE8, 0xCA
- },
- {
- 0xC8, 0x52, 0xE6, 0x77, 0xF7, 0x7B, 0x14, 0xB5,
- 0x85, 0xBD, 0x10, 0x2A, 0x0F, 0x14, 0x42, 0x43,
- 0x05, 0x9D, 0xAB, 0xEC, 0x7C, 0xB0, 0x1F, 0xFA,
- 0x61, 0xDF, 0x19, 0xFC, 0xE8, 0xAB, 0x43, 0x6B,
- 0xF5, 0xE2, 0xD5, 0xC7, 0x9A, 0xA2, 0xD7, 0xB6,
- 0x77, 0xF6, 0xC3, 0x75, 0xE9, 0x34, 0x3D, 0x34,
- 0x2E, 0x4F, 0xF4, 0xE3, 0xAB, 0x00, 0x1B, 0xC7,
- 0x98, 0x8C, 0x3C, 0x7A, 0x83, 0xCC, 0xB6, 0x9F
- },
- {
- 0x01, 0x19, 0x75, 0x26, 0x91, 0x7A, 0xC2, 0xC7,
- 0xBC, 0x53, 0x95, 0x19, 0xE6, 0x8B, 0xB2, 0x79,
- 0x81, 0x35, 0xF6, 0x03, 0x3E, 0xD5, 0x8F, 0x5C,
- 0x45, 0x1E, 0x0C, 0xE9, 0x46, 0xAF, 0xF0, 0xF9,
- 0x8D, 0xFD, 0xD1, 0x51, 0x01, 0x73, 0x1A, 0xC1,
- 0x66, 0x12, 0x6E, 0xAF, 0xB5, 0xE7, 0xCB, 0xE2,
- 0xE2, 0x72, 0xEE, 0x23, 0x3F, 0x34, 0xE5, 0xF3,
- 0xF8, 0xEA, 0x3D, 0x2D, 0x12, 0x24, 0x82, 0xFB
- },
- {
- 0x05, 0x9C, 0x90, 0x85, 0x89, 0x5E, 0xB7, 0x18,
- 0x30, 0x4E, 0x2D, 0xDA, 0x78, 0x68, 0x6B, 0xD9,
- 0x57, 0x49, 0x81, 0x5A, 0x5E, 0xE9, 0x02, 0x51,
- 0x0B, 0x00, 0x9A, 0xF6, 0x92, 0x48, 0xB6, 0xA7,
- 0xA7, 0x2F, 0xF8, 0xA6, 0x28, 0xD8, 0x17, 0x73,
- 0xE1, 0x1D, 0x5A, 0x1E, 0x7F, 0x69, 0x7A, 0x44,
- 0x9B, 0x7A, 0x1E, 0x27, 0x12, 0xD5, 0xCF, 0xAE,
- 0x7A, 0xB2, 0x65, 0x07, 0xD1, 0x11, 0x29, 0x18
- },
- {
- 0x29, 0x52, 0x43, 0xBD, 0x75, 0x8C, 0xF2, 0x1C,
- 0x80, 0x31, 0x25, 0xFC, 0xF3, 0x21, 0xDE, 0x5F,
- 0x97, 0x98, 0x7C, 0x8D, 0xB3, 0xBB, 0x3C, 0xB5,
- 0x1F, 0xF9, 0x7C, 0x4C, 0xDA, 0xC9, 0xD3, 0xBF,
- 0x0A, 0x67, 0xCE, 0xE7, 0xED, 0x35, 0x0A, 0x41,
- 0xFD, 0xE6, 0xAB, 0xCC, 0x25, 0x4F, 0xBC, 0x9F,
- 0x8E, 0x6B, 0x3E, 0x3C, 0xCE, 0xCB, 0xD0, 0xE4,
- 0xA6, 0x40, 0xA2, 0x0F, 0x36, 0x2B, 0xA3, 0xA0
- },
- {
- 0xDD, 0x82, 0x32, 0xD2, 0x41, 0x2C, 0xCE, 0xEC,
- 0xB5, 0x12, 0x31, 0x91, 0xF6, 0xE9, 0x22, 0x1E,
- 0x85, 0x1E, 0xCC, 0xE0, 0xFA, 0xEB, 0xF0, 0x50,
- 0x5F, 0x2A, 0xEE, 0xFF, 0x8A, 0x8C, 0x92, 0xD4,
- 0x1D, 0xAC, 0xF1, 0x77, 0xBD, 0xAE, 0x27, 0x76,
- 0x3E, 0xA4, 0xA8, 0x62, 0x05, 0xEF, 0x76, 0x34,
- 0xF7, 0xA6, 0x87, 0xCC, 0x44, 0xBB, 0xBB, 0xDE,
- 0xEE, 0x5E, 0x11, 0xE6, 0x5F, 0x9F, 0xBD, 0x69
- },
- {
- 0xB0, 0x46, 0xB6, 0x83, 0x71, 0x6D, 0x31, 0xC9,
- 0x14, 0xC7, 0x0B, 0x10, 0xF7, 0x64, 0x6D, 0xA3,
- 0x1E, 0xFA, 0xB2, 0x23, 0x63, 0x47, 0x45, 0x9C,
- 0xF8, 0xFA, 0x2C, 0x09, 0x12, 0x34, 0x31, 0xF7,
- 0x28, 0x07, 0xF1, 0x1D, 0x86, 0x7C, 0x37, 0x70,
- 0xB1, 0xF0, 0x61, 0xD5, 0x6C, 0xA0, 0xE5, 0xB1,
- 0xE8, 0x8A, 0x6B, 0x44, 0xA3, 0x3C, 0xF9, 0x3E,
- 0x18, 0xBC, 0xC9, 0xCE, 0xBB, 0xA5, 0xAD, 0xE7
- },
- {
- 0x20, 0xE5, 0xA2, 0x55, 0x05, 0x8B, 0xE5, 0x1E,
- 0x1A, 0x62, 0x9B, 0x4E, 0xBF, 0x81, 0xE5, 0xCB,
- 0xE0, 0x78, 0x1C, 0xB6, 0x7C, 0xA4, 0xE5, 0x7B,
- 0xA8, 0x6B, 0x30, 0x88, 0x96, 0xBC, 0xE7, 0x38,
- 0x20, 0xEB, 0x08, 0x43, 0x1C, 0xE8, 0xC9, 0xBC,
- 0x58, 0x10, 0xCC, 0x8D, 0x8B, 0x9C, 0x9D, 0x6F,
- 0xCF, 0x83, 0x4E, 0x42, 0xEA, 0x33, 0xEF, 0x73,
- 0xCE, 0xC4, 0x7D, 0x71, 0x3B, 0x6D, 0x8D, 0xFD
- },
- {
- 0x1E, 0x48, 0x04, 0xF9, 0xC0, 0xB1, 0xE8, 0x2B,
- 0x9E, 0xD3, 0x63, 0xBD, 0xE4, 0x47, 0x28, 0xAC,
- 0xF7, 0xD0, 0x90, 0xA1, 0xBF, 0xE2, 0xDD, 0xF8,
- 0x81, 0x9D, 0x65, 0x92, 0xEF, 0x45, 0x3B, 0x83,
- 0x5B, 0xD2, 0xEF, 0xE8, 0xB0, 0x20, 0x6E, 0x29,
- 0x25, 0x5B, 0x07, 0xFB, 0x90, 0xC7, 0xD3, 0x0D,
- 0x2C, 0x11, 0x48, 0x00, 0xB8, 0x6C, 0xB0, 0xE3,
- 0xE0, 0x7D, 0x38, 0x7E, 0x98, 0xCE, 0x95, 0x37
- },
- {
- 0x41, 0xC9, 0x53, 0xD8, 0xD2, 0x2A, 0x86, 0xC3,
- 0x63, 0x4D, 0xF4, 0x22, 0xB6, 0xDE, 0x4A, 0x4F,
- 0x14, 0x96, 0x66, 0xBE, 0x8C, 0x4F, 0x58, 0x1B,
- 0x26, 0x23, 0xEE, 0x65, 0xC3, 0x92, 0xA5, 0xC3,
- 0x28, 0x36, 0x63, 0x9E, 0xF5, 0x6B, 0x93, 0x68,
- 0x62, 0x20, 0xF4, 0x5C, 0xE6, 0x5B, 0x4F, 0xA8,
- 0x58, 0x9C, 0x91, 0x25, 0x64, 0x17, 0x90, 0xB6,
- 0x92, 0x5F, 0xAA, 0xD9, 0x48, 0xB8, 0xBE, 0x04
- },
- {
- 0x8B, 0xFC, 0xA4, 0xC8, 0xDF, 0xE3, 0xFD, 0xE4,
- 0x25, 0x7B, 0x75, 0xC3, 0xDB, 0x01, 0x86, 0x2E,
- 0xD3, 0x11, 0x67, 0xDE, 0x66, 0xC2, 0xE0, 0x3A,
- 0x25, 0x56, 0xC4, 0xF4, 0x6C, 0x9D, 0xFF, 0xC1,
- 0xAC, 0x45, 0xF7, 0xBC, 0x59, 0xA6, 0x7A, 0xB9,
- 0x36, 0x24, 0xBE, 0xB8, 0x6D, 0xDD, 0x0D, 0x02,
- 0x60, 0x3F, 0x0D, 0xCD, 0x03, 0x64, 0xF0, 0xF8,
- 0x08, 0x81, 0x9B, 0xE9, 0x6C, 0xD8, 0xD3, 0xB6
- },
- {
- 0xF6, 0xBF, 0x59, 0xD8, 0xD4, 0x5A, 0x55, 0x71,
- 0x11, 0xA2, 0x36, 0xCB, 0xBA, 0x52, 0x61, 0x9A,
- 0xE3, 0xDF, 0xCC, 0x43, 0x16, 0x94, 0x38, 0x43,
- 0xAF, 0xD1, 0x28, 0x1B, 0x28, 0x21, 0x4A, 0x4A,
- 0x5E, 0x85, 0x1E, 0xF8, 0xC5, 0x4F, 0x50, 0x5E,
- 0x3C, 0x4B, 0x60, 0x0E, 0xFF, 0xBE, 0xBB, 0x3E,
- 0xAC, 0x17, 0x08, 0x7F, 0x22, 0x27, 0x58, 0x12,
- 0x63, 0xF1, 0x7D, 0x7E, 0x5F, 0x68, 0xEA, 0x83
- },
- {
- 0x1B, 0xC9, 0xED, 0xE4, 0xD4, 0x1A, 0x4D, 0xF6,
- 0xE8, 0xE6, 0xF4, 0x7C, 0x2F, 0x4A, 0xD8, 0x73,
- 0x37, 0xB6, 0x9B, 0x19, 0xF7, 0x10, 0xF7, 0x66,
- 0xE1, 0xFA, 0xF5, 0xAA, 0x05, 0xA4, 0x3B, 0x66,
- 0x45, 0x39, 0x6E, 0x7F, 0xBE, 0xF4, 0x3B, 0xB7,
- 0x79, 0x5D, 0x39, 0x40, 0x7B, 0x58, 0x15, 0xB9,
- 0x2E, 0xCC, 0x23, 0xA6, 0xC1, 0x24, 0x14, 0x21,
- 0x15, 0x3A, 0x55, 0xD5, 0x1F, 0x12, 0xBF, 0xD8
- },
- {
- 0x76, 0xB3, 0x8B, 0x36, 0x31, 0x55, 0x5D, 0xBC,
- 0xFB, 0x21, 0x21, 0x8F, 0xF9, 0xE4, 0x12, 0xA2,
- 0x29, 0x88, 0x9E, 0xF2, 0xCE, 0x8A, 0xD7, 0x05,
- 0xE9, 0x0F, 0x96, 0xAA, 0xBB, 0xD5, 0xBE, 0x7E,
- 0x53, 0x29, 0xA4, 0x26, 0x53, 0x4C, 0x81, 0x5A,
- 0x56, 0x53, 0x77, 0x13, 0x18, 0x72, 0x66, 0x41,
- 0x42, 0x4E, 0x3B, 0x88, 0x29, 0x2F, 0xB1, 0xD8,
- 0x95, 0x44, 0x40, 0x6A, 0xDE, 0x9B, 0xCC, 0xB5
- },
- {
- 0xE5, 0x3F, 0x60, 0x07, 0x40, 0x22, 0x4E, 0x4D,
- 0x10, 0xD3, 0x1D, 0x24, 0x38, 0x00, 0x31, 0x43,
- 0xAF, 0xDB, 0x43, 0x6E, 0xB1, 0x79, 0x1B, 0x15,
- 0x0D, 0xE3, 0x56, 0x76, 0xF0, 0xE3, 0x2F, 0x80,
- 0xB0, 0xB6, 0x5F, 0x0A, 0xCF, 0x48, 0x1A, 0x5F,
- 0xBF, 0x95, 0x96, 0xC0, 0xCB, 0x0A, 0x27, 0xC7,
- 0xAF, 0xC1, 0x1D, 0x1E, 0x2C, 0x4D, 0x54, 0x02,
- 0x47, 0x5E, 0x4F, 0xFC, 0xC1, 0xCD, 0xA8, 0x11
- },
- {
- 0x62, 0x06, 0xB9, 0x1F, 0xC0, 0xB6, 0xF1, 0x21,
- 0x1E, 0x9F, 0xDE, 0xCD, 0xC9, 0xD5, 0x1A, 0x6F,
- 0x1E, 0xEE, 0x65, 0x54, 0xB1, 0x38, 0xAD, 0xCD,
- 0x4A, 0x82, 0x3D, 0xF0, 0x0D, 0xDE, 0xF6, 0x75,
- 0x9A, 0x9B, 0xFD, 0x7A, 0x4E, 0x98, 0x1E, 0x04,
- 0x52, 0x36, 0x83, 0x8F, 0x4A, 0xF6, 0x93, 0xF6,
- 0x93, 0x77, 0x93, 0x14, 0x84, 0xB3, 0xE8, 0x1E,
- 0x3E, 0x3B, 0xC2, 0xCB, 0x7E, 0xF7, 0x9F, 0xE9
- },
- {
- 0x76, 0xFD, 0x02, 0xDA, 0xDD, 0x96, 0x3B, 0xC0,
- 0x35, 0x39, 0x91, 0x46, 0xCE, 0x42, 0x98, 0x8C,
- 0xC0, 0x99, 0xD3, 0xCF, 0x4D, 0x32, 0xDF, 0x5C,
- 0x0B, 0xBF, 0x64, 0x10, 0x12, 0x46, 0xB1, 0xC7,
- 0x08, 0xD1, 0x67, 0xE2, 0x95, 0x95, 0xD1, 0x1D,
- 0x09, 0xB3, 0xF6, 0x34, 0x86, 0xB4, 0x05, 0x26,
- 0xAC, 0x1D, 0xFE, 0x31, 0xBC, 0x22, 0xDE, 0xC7,
- 0x0B, 0x74, 0x5E, 0x90, 0xE2, 0xEA, 0xAF, 0x5A
- },
- {
- 0xF0, 0xA1, 0xFB, 0xE3, 0x11, 0x63, 0xE4, 0x21,
- 0x01, 0x50, 0x72, 0x18, 0x3D, 0x68, 0xEE, 0x51,
- 0x91, 0xA9, 0x9C, 0xFD, 0xA1, 0x69, 0xBA, 0x5A,
- 0x19, 0x54, 0xC9, 0xF3, 0x10, 0x7D, 0x4E, 0xCA,
- 0x06, 0x3E, 0x13, 0x7A, 0x71, 0x14, 0xD3, 0x97,
- 0xC9, 0xDB, 0x67, 0x2B, 0x9F, 0x47, 0x8D, 0x41,
- 0xC3, 0x4E, 0x99, 0x1B, 0x06, 0x69, 0xA9, 0x51,
- 0x53, 0x92, 0x90, 0xC8, 0xED, 0x65, 0xE4, 0x6A
- },
- {
- 0x13, 0xC7, 0x2A, 0x6A, 0xA5, 0x71, 0xB1, 0x43,
- 0xDC, 0xCF, 0x45, 0xAD, 0xCD, 0x98, 0xEA, 0xE6,
- 0x99, 0xA1, 0x54, 0xB1, 0x10, 0xF2, 0x5E, 0x7E,
- 0x9E, 0x82, 0xB7, 0x65, 0xB9, 0xA0, 0x89, 0x23,
- 0x68, 0x8E, 0x8E, 0x0F, 0xF3, 0x11, 0xA6, 0x8A,
- 0x77, 0x1E, 0x14, 0x50, 0x96, 0xD6, 0x07, 0x76,
- 0xC6, 0xD6, 0xEE, 0x70, 0xAD, 0x6F, 0x69, 0xFA,
- 0x2B, 0x76, 0x77, 0x63, 0x40, 0x55, 0xA0, 0x0E
- },
- {
- 0x0E, 0x06, 0x2B, 0xFE, 0x81, 0x8E, 0xE1, 0x0F,
- 0x33, 0x48, 0x1D, 0xEA, 0x43, 0x02, 0x8B, 0x2C,
- 0xFB, 0xB4, 0x9E, 0xC9, 0x5E, 0x0F, 0x75, 0xA9,
- 0xE1, 0x6D, 0x40, 0x4B, 0xC5, 0x19, 0xB9, 0xAD,
- 0x50, 0xB4, 0xA7, 0x33, 0x69, 0x2C, 0xA5, 0x4E,
- 0xFB, 0x68, 0x04, 0x69, 0xED, 0x83, 0xDD, 0xEF,
- 0xBD, 0xDD, 0xB1, 0x39, 0x04, 0x2E, 0x0E, 0x1C,
- 0x09, 0xC3, 0xEB, 0x79, 0x03, 0xFA, 0x08, 0xDF
- },
- {
- 0x45, 0x3B, 0xE4, 0xAA, 0xB9, 0xF4, 0x23, 0xB3,
- 0x36, 0x52, 0xA0, 0xB5, 0xD0, 0x2A, 0x9A, 0xF8,
- 0x55, 0xDD, 0x0D, 0x42, 0xDD, 0x83, 0x11, 0x0B,
- 0xA3, 0xBC, 0x4B, 0x39, 0x94, 0xEA, 0x3F, 0x88,
- 0x5A, 0x71, 0x30, 0x89, 0x75, 0x08, 0x9B, 0x49,
- 0x03, 0xE2, 0xE4, 0xD6, 0xBA, 0x6D, 0xC2, 0xE8,
- 0x40, 0x31, 0xFF, 0xE9, 0xC8, 0x56, 0x39, 0x75,
- 0xC8, 0x61, 0x6A, 0xCA, 0x07, 0x42, 0xE8, 0x29
- },
- {
- 0x53, 0x61, 0xE3, 0xE8, 0x93, 0xDD, 0x36, 0x0B,
- 0xCB, 0xF5, 0x1C, 0x79, 0x3E, 0xC0, 0x92, 0xA6,
- 0xB0, 0x52, 0x05, 0x4F, 0x5F, 0x00, 0x0B, 0x9F,
- 0xCE, 0x50, 0x7B, 0x66, 0x45, 0xF8, 0xD4, 0x70,
- 0x13, 0xA8, 0x70, 0x6A, 0x58, 0xD4, 0xB1, 0x06,
- 0x29, 0xCC, 0x82, 0xB8, 0xD2, 0xD7, 0x96, 0xFD,
- 0xD3, 0x7B, 0x60, 0x8A, 0x58, 0x79, 0x52, 0xD6,
- 0x55, 0x3E, 0x01, 0xD1, 0xAF, 0x0E, 0x04, 0xB8
- },
- {
- 0x74, 0xB5, 0x67, 0x39, 0xF0, 0x1F, 0x82, 0x09,
- 0xA4, 0x04, 0x44, 0xDF, 0x4C, 0xCD, 0xEE, 0xEA,
- 0x8F, 0x97, 0xE8, 0xE7, 0x6E, 0xFA, 0x3C, 0x04,
- 0x33, 0x7F, 0x69, 0x94, 0x5C, 0x4D, 0x44, 0xC0,
- 0x85, 0xF1, 0xF4, 0x78, 0x96, 0x96, 0x36, 0x1E,
- 0x3C, 0x97, 0x77, 0x4A, 0x93, 0x5F, 0x86, 0x0D,
- 0x67, 0x46, 0x86, 0xDC, 0xBA, 0x3D, 0x45, 0xEC,
- 0xD8, 0x63, 0x9A, 0x64, 0xAE, 0xA0, 0x62, 0x1B
- },
- {
- 0xB4, 0xD3, 0x15, 0x87, 0xB9, 0x2B, 0x53, 0x61,
- 0xCD, 0xC2, 0xD3, 0xC4, 0x10, 0x86, 0xC1, 0x55,
- 0x3E, 0x7B, 0x55, 0xA1, 0xF6, 0x1E, 0x94, 0xD2,
- 0xBC, 0x30, 0xBC, 0x25, 0x1D, 0xAF, 0x8A, 0x5E,
- 0xBF, 0xC5, 0x07, 0x09, 0xCC, 0x04, 0xCB, 0xAF,
- 0x4B, 0x3B, 0x4D, 0xA2, 0xD2, 0x6B, 0x81, 0x23,
- 0x8F, 0xBA, 0x71, 0x8F, 0xA9, 0x17, 0x59, 0xB8,
- 0x0B, 0xD3, 0x10, 0x3A, 0xEC, 0x11, 0xE0, 0x6F
- },
- {
- 0xAA, 0xF6, 0x12, 0x7F, 0x00, 0xA0, 0x3D, 0x96,
- 0x40, 0x6B, 0x9F, 0xB4, 0xAC, 0x70, 0x16, 0x0D,
- 0xB5, 0x22, 0x42, 0x9B, 0x5C, 0xD9, 0x4E, 0x7F,
- 0xA0, 0x30, 0x3A, 0x74, 0x94, 0x78, 0xFE, 0x31,
- 0x89, 0xC8, 0xEA, 0x23, 0x93, 0x0A, 0x66, 0x25,
- 0x2A, 0x80, 0x26, 0x74, 0xDC, 0xAF, 0x77, 0x00,
- 0x46, 0x82, 0x0D, 0xD9, 0x64, 0xC6, 0x6F, 0x0F,
- 0x54, 0x75, 0x1A, 0x72, 0xF9, 0x7D, 0x9C, 0x35
- },
- {
- 0x2C, 0x30, 0xD4, 0x8D, 0xF9, 0x98, 0x4E, 0x02,
- 0xF7, 0x5A, 0x94, 0x54, 0x92, 0x17, 0x18, 0x4D,
- 0xD0, 0x2A, 0xAD, 0x3B, 0x57, 0x68, 0x3D, 0x09,
- 0xB5, 0xA8, 0xC2, 0xEF, 0x53, 0xA9, 0x6A, 0xFB,
- 0x73, 0xFE, 0xB6, 0xF9, 0x14, 0xE2, 0xD8, 0x15,
- 0xBB, 0x3B, 0x08, 0x65, 0x43, 0x32, 0xFC, 0xFE,
- 0x79, 0xF8, 0x0E, 0xC5, 0xF0, 0x51, 0xDA, 0x10,
- 0xD7, 0x21, 0x41, 0x3D, 0xDD, 0xE8, 0xFA, 0x60
- },
- {
- 0x92, 0xE2, 0xC5, 0xF7, 0x5D, 0x0C, 0xEA, 0xFC,
- 0x81, 0x8F, 0xA7, 0x93, 0x59, 0x39, 0xE4, 0x8B,
- 0x91, 0x59, 0x41, 0xEF, 0x73, 0x4D, 0x75, 0x27,
- 0x0E, 0xB3, 0x21, 0xBA, 0x20, 0x80, 0xEF, 0x6D,
- 0x25, 0x5E, 0x90, 0xEF, 0x96, 0xC6, 0x4C, 0xFF,
- 0x1D, 0x8C, 0x18, 0xF3, 0x3C, 0x2E, 0xAB, 0x10,
- 0x7F, 0xEF, 0x53, 0xE0, 0xD8, 0xBB, 0x16, 0x05,
- 0x16, 0x80, 0x74, 0x80, 0xFC, 0xBA, 0x53, 0x73
- },
- {
- 0x6E, 0x03, 0xA9, 0x1E, 0x20, 0x44, 0x46, 0x27,
- 0xE3, 0xD2, 0xE2, 0x22, 0x26, 0xCF, 0x47, 0x00,
- 0x26, 0x69, 0x44, 0x34, 0xED, 0x64, 0x79, 0x82,
- 0x8C, 0xB6, 0xDC, 0x8F, 0x27, 0x96, 0x0A, 0xEE,
- 0xE2, 0xF4, 0xAB, 0x87, 0x2A, 0x5C, 0xA2, 0xF7,
- 0xF6, 0x52, 0xF7, 0xDC, 0x77, 0xD5, 0xF9, 0x6D,
- 0x85, 0x82, 0x8B, 0x8F, 0x9C, 0x2D, 0x6C, 0x23,
- 0x9E, 0x79, 0x77, 0x24, 0xA1, 0x31, 0x31, 0xB1
- },
- {
- 0xBA, 0x43, 0x2D, 0xB0, 0xA3, 0x31, 0xBB, 0x8C,
- 0x39, 0xB1, 0x7B, 0xEE, 0x34, 0x46, 0x2B, 0x26,
- 0xDD, 0xB7, 0xAD, 0x91, 0xB6, 0xC7, 0x5A, 0xEC,
- 0x27, 0x65, 0xFB, 0xAE, 0x3A, 0x0E, 0x60, 0xEC,
- 0x54, 0x6D, 0x45, 0xF8, 0xE5, 0x84, 0x37, 0xB9,
- 0xD7, 0x7C, 0x3D, 0x2E, 0x8D, 0x7C, 0xE0, 0x69,
- 0x73, 0x15, 0x66, 0x51, 0xD4, 0x08, 0x22, 0x2A,
- 0xA2, 0x90, 0xCB, 0x58, 0xCA, 0xBC, 0x0A, 0xE5
- },
- {
- 0x83, 0xA0, 0x1E, 0x23, 0xAB, 0x27, 0x7B, 0x1F,
- 0xC2, 0x8C, 0xD8, 0xBB, 0x8D, 0xA7, 0xE9, 0x4C,
- 0x70, 0xF1, 0xDE, 0xE3, 0x2D, 0x19, 0x55, 0xCE,
- 0xE2, 0x50, 0xEE, 0x58, 0x41, 0x9A, 0x1F, 0xEE,
- 0x10, 0xA8, 0x99, 0x17, 0x97, 0xCE, 0x3D, 0x20,
- 0x93, 0x80, 0xCA, 0x9F, 0x98, 0x93, 0x39, 0xE2,
- 0xD8, 0xA8, 0x1C, 0x67, 0xD7, 0x37, 0xD8, 0x28,
- 0x8C, 0x7F, 0xAE, 0x46, 0x02, 0x83, 0x4A, 0x8B
- },
- {
- 0x0E, 0xA3, 0x21, 0x72, 0xCC, 0x19, 0x1D, 0xFC,
- 0x13, 0x1C, 0xD8, 0x8A, 0xA0, 0x3F, 0xF4, 0x18,
- 0x5C, 0x0B, 0xFA, 0x7B, 0x19, 0x11, 0x12, 0x19,
- 0xEE, 0xCB, 0x45, 0xB0, 0xFF, 0x60, 0x4D, 0x3E,
- 0xDB, 0x00, 0x55, 0x0A, 0xBB, 0xA1, 0x11, 0x52,
- 0x2B, 0x77, 0xAE, 0x61, 0xC9, 0xA8, 0xD6, 0xE9,
- 0x4F, 0xCA, 0x9D, 0x96, 0xC3, 0x8D, 0x6B, 0x7C,
- 0xCE, 0x27, 0x52, 0xF0, 0xD0, 0xC3, 0x7E, 0x78
- },
- {
- 0x54, 0xAD, 0xD6, 0x55, 0x2B, 0x08, 0x85, 0x8B,
- 0x23, 0xD6, 0x64, 0x5F, 0x6C, 0xE7, 0x9E, 0x92,
- 0xF3, 0x8B, 0x66, 0xAE, 0x91, 0x86, 0x77, 0xE6,
- 0xD9, 0x1F, 0x71, 0x87, 0xC4, 0x16, 0x05, 0x24,
- 0xDF, 0xA8, 0xD0, 0x1F, 0x00, 0xEA, 0x93, 0xDD,
- 0x29, 0x9F, 0x3C, 0xC4, 0x09, 0x01, 0xBD, 0x33,
- 0x27, 0xA0, 0xF1, 0x8C, 0xCD, 0x7B, 0x6B, 0x8E,
- 0x4E, 0x47, 0xCD, 0x28, 0xCF, 0x83, 0x8F, 0xAB
- },
- {
- 0xEF, 0x84, 0x74, 0x6D, 0xC2, 0x01, 0x56, 0xB6,
- 0x6B, 0xA5, 0xC7, 0x8A, 0x50, 0x83, 0x0A, 0xBD,
- 0x2A, 0xEF, 0x90, 0xE6, 0x67, 0xB9, 0x7E, 0xB5,
- 0x22, 0x91, 0xBC, 0x86, 0x9D, 0x8A, 0xA2, 0x45,
- 0x59, 0xA1, 0x42, 0xC6, 0x8F, 0xEA, 0x2E, 0xF3,
- 0x2A, 0xF2, 0x2D, 0xFC, 0xEA, 0x4C, 0x90, 0xB3,
- 0xD4, 0x90, 0x8C, 0xC9, 0xEA, 0x5C, 0xFC, 0x4E,
- 0x91, 0xBF, 0x11, 0xCE, 0x6A, 0x7E, 0x57, 0x61
- },
- {
- 0x5A, 0x1B, 0xF3, 0x81, 0xA0, 0x41, 0x19, 0xF9,
- 0x42, 0xE4, 0x63, 0xAB, 0xA2, 0xB1, 0x64, 0x38,
- 0x82, 0x46, 0x8A, 0xEC, 0xC1, 0xB1, 0xAA, 0x1E,
- 0x7B, 0xCA, 0xAB, 0x3B, 0x47, 0x8F, 0xC5, 0xF0,
- 0x56, 0xF1, 0x0D, 0xA9, 0x03, 0x7D, 0x40, 0xFA,
- 0x7F, 0x55, 0x70, 0x8E, 0x10, 0x3B, 0xDA, 0x96,
- 0x5E, 0x92, 0x0C, 0xF6, 0x7C, 0xE3, 0xAD, 0xF7,
- 0xE2, 0x00, 0xE8, 0x61, 0x01, 0x4D, 0xEC, 0xC6
- },
- {
- 0xAC, 0xF7, 0x8A, 0xA3, 0x28, 0x45, 0x96, 0xF3,
- 0x30, 0xB7, 0xE8, 0x47, 0x51, 0xB9, 0x4C, 0x31,
- 0x4C, 0xD8, 0x36, 0x36, 0x27, 0xBA, 0x99, 0x78,
- 0x81, 0x30, 0x85, 0x78, 0x87, 0x37, 0x59, 0x89,
- 0x5D, 0x13, 0xDF, 0xFF, 0xA5, 0xE5, 0x74, 0x50,
- 0x13, 0x61, 0xF0, 0x43, 0xC7, 0x4F, 0x57, 0xD2,
- 0xD0, 0xF1, 0x5C, 0x7A, 0x41, 0xC7, 0xC4, 0x5E,
- 0x3C, 0x09, 0xAD, 0x89, 0xD6, 0x99, 0xA9, 0x77
- },
- {
- 0x18, 0xB3, 0xE9, 0x04, 0x38, 0x44, 0xD4, 0xF3,
- 0xA2, 0xD0, 0x21, 0xF5, 0x4C, 0x38, 0xFA, 0xCC,
- 0x36, 0x4F, 0x84, 0xBA, 0x10, 0x58, 0xF2, 0x10,
- 0x09, 0xFC, 0x37, 0x1D, 0x2E, 0x4F, 0x38, 0xC7,
- 0x27, 0x51, 0x8A, 0xAB, 0xA6, 0xA2, 0x9E, 0x0F,
- 0xDA, 0xE6, 0xE7, 0x60, 0xA4, 0xF1, 0xA6, 0xD7,
- 0x58, 0xEB, 0xE4, 0x2C, 0x2A, 0xFC, 0x9D, 0x2C,
- 0xDC, 0x6D, 0xD5, 0x80, 0x77, 0x8C, 0x4B, 0x32
- },
- {
- 0x18, 0x96, 0xB2, 0x31, 0x70, 0x33, 0xCF, 0x31,
- 0x04, 0x68, 0x73, 0xD8, 0x7F, 0x26, 0xE6, 0xA4,
- 0x2A, 0x9D, 0x77, 0x0B, 0xBA, 0xF6, 0xE0, 0x62,
- 0xDF, 0x11, 0xF9, 0xB4, 0xA0, 0xEA, 0xB2, 0x75,
- 0xAA, 0xB1, 0x2C, 0xAA, 0xC2, 0xD3, 0xF5, 0x29,
- 0xEB, 0x20, 0xD0, 0x70, 0xFD, 0x84, 0x4D, 0x86,
- 0xD0, 0xA5, 0x71, 0xCD, 0xF6, 0x28, 0x5F, 0x80,
- 0xE2, 0x30, 0x8B, 0xB8, 0x2C, 0x6C, 0x5B, 0x3B
- },
- {
- 0x8C, 0x3D, 0xC4, 0x01, 0x94, 0xAA, 0x02, 0x1F,
- 0x3C, 0x4A, 0x1F, 0x9A, 0x05, 0x5E, 0x4D, 0x41,
- 0x9E, 0xB3, 0xA2, 0x6D, 0x4C, 0x2F, 0x1A, 0x8C,
- 0x7E, 0x18, 0x8B, 0x73, 0x48, 0x13, 0x40, 0x80,
- 0xB6, 0x3F, 0x6E, 0x57, 0x0A, 0xD1, 0x1C, 0x28,
- 0x78, 0x66, 0x53, 0x55, 0x41, 0x9C, 0x10, 0x20,
- 0xDE, 0x4B, 0x65, 0x5E, 0x7A, 0x6C, 0x2C, 0xCD,
- 0xE9, 0x07, 0x2C, 0xD4, 0x27, 0xFE, 0x8C, 0x4E
- },
- {
- 0x70, 0xAE, 0x04, 0x30, 0xD5, 0x45, 0xEC, 0x42,
- 0x7F, 0x85, 0x41, 0x21, 0x1D, 0x4F, 0xE0, 0x42,
- 0xB9, 0x82, 0x3A, 0xCE, 0xC0, 0x4B, 0x15, 0xC9,
- 0x0B, 0x7F, 0x4B, 0x8B, 0xDD, 0x3D, 0xC7, 0x85,
- 0x19, 0x90, 0xF3, 0x70, 0xE7, 0x14, 0x16, 0x75,
- 0x10, 0x66, 0x49, 0xD3, 0x91, 0x51, 0x09, 0x03,
- 0x18, 0x23, 0x1E, 0x4D, 0xED, 0x51, 0x22, 0x5D,
- 0x9A, 0x6F, 0xA6, 0xC4, 0x24, 0x69, 0x5D, 0xE2
- },
- {
- 0x07, 0x33, 0x6C, 0x42, 0xBD, 0x51, 0x49, 0x0E,
- 0xF8, 0x4D, 0xFB, 0xDF, 0xAB, 0x74, 0x66, 0xF6,
- 0xB6, 0x39, 0x99, 0xA5, 0xC0, 0x88, 0x72, 0xDF,
- 0xED, 0xA0, 0x20, 0x6F, 0xDA, 0x80, 0xB9, 0xA6,
- 0x2D, 0xE7, 0x28, 0xE3, 0xE3, 0xC3, 0xFD, 0x6B,
- 0x7D, 0x21, 0xA4, 0x38, 0xAA, 0xD1, 0xB8, 0xDD,
- 0x22, 0x38, 0x63, 0xC0, 0xD2, 0x6A, 0xCA, 0x27,
- 0x79, 0x01, 0x74, 0xD9, 0xD4, 0x42, 0xA6, 0x4C
- },
- {
- 0x79, 0x26, 0x70, 0x88, 0x59, 0xE6, 0xE2, 0xAB,
- 0x68, 0xF6, 0x04, 0xDA, 0x69, 0xA9, 0xFB, 0x50,
- 0x87, 0xBB, 0x33, 0xF4, 0xE8, 0xD8, 0x95, 0x73,
- 0x0E, 0x30, 0x1A, 0xB2, 0xD7, 0xDF, 0x74, 0x8B,
- 0x67, 0xDF, 0x0B, 0x6B, 0x86, 0x22, 0xE5, 0x2D,
- 0xD5, 0x7D, 0x8D, 0x3A, 0xD8, 0x7D, 0x58, 0x20,
- 0xD4, 0xEC, 0xFD, 0x24, 0x17, 0x8B, 0x2D, 0x2B,
- 0x78, 0xD6, 0x4F, 0x4F, 0xBD, 0x38, 0x75, 0x82
- },
- {
- 0x92, 0x80, 0xF4, 0xD1, 0x15, 0x70, 0x32, 0xAB,
- 0x31, 0x5C, 0x10, 0x0D, 0x63, 0x62, 0x83, 0xFB,
- 0xF4, 0xFB, 0xA2, 0xFB, 0xAD, 0x0F, 0x8B, 0xC0,
- 0x20, 0x72, 0x1D, 0x76, 0xBC, 0x1C, 0x89, 0x73,
- 0xCE, 0xD2, 0x88, 0x71, 0xCC, 0x90, 0x7D, 0xAB,
- 0x60, 0xE5, 0x97, 0x56, 0x98, 0x7B, 0x0E, 0x0F,
- 0x86, 0x7F, 0xA2, 0xFE, 0x9D, 0x90, 0x41, 0xF2,
- 0xC9, 0x61, 0x80, 0x74, 0xE4, 0x4F, 0xE5, 0xE9
- },
- {
- 0x55, 0x30, 0xC2, 0xD5, 0x9F, 0x14, 0x48, 0x72,
- 0xE9, 0x87, 0xE4, 0xE2, 0x58, 0xA7, 0xD8, 0xC3,
- 0x8C, 0xE8, 0x44, 0xE2, 0xCC, 0x2E, 0xED, 0x94,
- 0x0F, 0xFC, 0x68, 0x3B, 0x49, 0x88, 0x15, 0xE5,
- 0x3A, 0xDB, 0x1F, 0xAA, 0xF5, 0x68, 0x94, 0x61,
- 0x22, 0x80, 0x5A, 0xC3, 0xB8, 0xE2, 0xFE, 0xD4,
- 0x35, 0xFE, 0xD6, 0x16, 0x2E, 0x76, 0xF5, 0x64,
- 0xE5, 0x86, 0xBA, 0x46, 0x44, 0x24, 0xE8, 0x85
- },
- {
- 0xDA, 0x85, 0x0A, 0x2F, 0x54, 0xE9, 0x44, 0x89,
- 0x17, 0xD0, 0xDC, 0xAA, 0x63, 0x93, 0x7B, 0x95,
- 0xA4, 0xDA, 0x1E, 0xAC, 0x8A, 0xF4, 0xDD, 0xF2,
- 0x11, 0x3E, 0x5C, 0x8B, 0x0D, 0x4D, 0xB2, 0x66,
- 0x9A, 0xF3, 0xC2, 0xAC, 0xB0, 0x80, 0x3D, 0x05,
- 0x32, 0x3F, 0x3E, 0xC5, 0x5A, 0xBD, 0x33, 0xBD,
- 0xF9, 0xB2, 0xBE, 0x89, 0x0E, 0xE7, 0x9E, 0x7F,
- 0x3F, 0xCE, 0x4E, 0x19, 0x86, 0x96, 0xA7, 0xA3
- },
- {
- 0xF1, 0x60, 0x95, 0xDD, 0x9F, 0x1E, 0xEB, 0x77,
- 0xD5, 0xB9, 0x2F, 0x4B, 0x1F, 0xAC, 0x3A, 0x2C,
- 0x5D, 0xA6, 0xAE, 0x5D, 0x0A, 0xB3, 0xF2, 0x54,
- 0xE2, 0xA7, 0xFE, 0x52, 0x67, 0x24, 0x11, 0xD0,
- 0x1C, 0xFA, 0x6A, 0xC0, 0x5B, 0xF3, 0x9E, 0xF6,
- 0x5F, 0x4B, 0x22, 0x26, 0x4B, 0x41, 0xC3, 0xF3,
- 0x63, 0x56, 0x3A, 0xBF, 0x0E, 0x92, 0x42, 0x90,
- 0xC1, 0xC6, 0x80, 0xB1, 0x8A, 0xA6, 0x5B, 0x44
- },
- {
- 0x76, 0xD0, 0x0A, 0x09, 0xC5, 0xBD, 0xD3, 0x9E,
- 0xD3, 0x28, 0x71, 0x72, 0x2C, 0xFA, 0x00, 0x47,
- 0x67, 0x4B, 0xEC, 0x8D, 0x35, 0x17, 0x5A, 0xF9,
- 0x0D, 0x7A, 0xE9, 0x10, 0x74, 0x40, 0xA2, 0xA0,
- 0x63, 0x88, 0x56, 0xD8, 0x38, 0x4C, 0x81, 0x7D,
- 0x77, 0x2A, 0x4A, 0x59, 0x7A, 0x89, 0x55, 0x49,
- 0xC8, 0x48, 0x66, 0x37, 0x56, 0x31, 0xCB, 0xA0,
- 0x42, 0xF0, 0xEF, 0x6F, 0xFE, 0xB8, 0x9D, 0x44
- },
- {
- 0xA6, 0x51, 0x13, 0x7B, 0x2C, 0x47, 0xFB, 0x79,
- 0x51, 0xE7, 0xBD, 0xA7, 0x15, 0x43, 0xA6, 0xEB,
- 0xC6, 0x24, 0x2A, 0xCA, 0xB4, 0x34, 0x7D, 0x38,
- 0x8B, 0xE8, 0x35, 0x0F, 0x0C, 0x3F, 0xA3, 0xDF,
- 0x8D, 0x95, 0x2C, 0x7C, 0x8A, 0x3D, 0xAF, 0x01,
- 0xE0, 0x6C, 0x1D, 0xA6, 0x94, 0x96, 0xBB, 0xA8,
- 0xDE, 0x62, 0xD8, 0x6B, 0x50, 0x93, 0x25, 0x6F,
- 0x77, 0xA1, 0x87, 0xB5, 0x3D, 0xB0, 0x39, 0x88
- },
- {
- 0xF3, 0x2F, 0x15, 0x0C, 0x2D, 0x67, 0xC0, 0xC4,
- 0x37, 0x40, 0x1B, 0x70, 0xF6, 0x0B, 0x38, 0xF0,
- 0xA3, 0xA4, 0x70, 0x59, 0x03, 0x3E, 0x75, 0x05,
- 0xE6, 0x9A, 0x1D, 0x30, 0x12, 0x96, 0x03, 0x0B,
- 0xC9, 0xB2, 0x95, 0x19, 0xC7, 0xF8, 0xB7, 0xD5,
- 0x9A, 0x71, 0xFA, 0xB9, 0x05, 0x57, 0xDC, 0x3D,
- 0xC8, 0x23, 0xFA, 0xC9, 0x5B, 0x9E, 0x85, 0xE6,
- 0x52, 0x52, 0x8C, 0xBF, 0xB0, 0x1B, 0x11, 0x78
- },
- {
- 0x27, 0x02, 0x56, 0x61, 0x36, 0xC4, 0x92, 0xF4,
- 0x10, 0x89, 0xB0, 0x60, 0x10, 0x84, 0x60, 0xFA,
- 0x30, 0x22, 0xC9, 0xC2, 0x5D, 0x34, 0x3B, 0xCB,
- 0xD8, 0xAF, 0x2A, 0xF1, 0x9C, 0x17, 0xEF, 0x4C,
- 0xA9, 0xF2, 0x22, 0x4F, 0xE7, 0xC4, 0x70, 0x0A,
- 0x10, 0x19, 0x8E, 0xE5, 0x24, 0x8F, 0x30, 0x0B,
- 0x54, 0x8E, 0xBF, 0x5C, 0x8E, 0x71, 0x16, 0x32,
- 0x0C, 0xC8, 0x93, 0xFF, 0x7E, 0x23, 0x1F, 0xFB
- },
- {
- 0xFF, 0xE6, 0x87, 0x9F, 0x46, 0xB6, 0x29, 0x2B,
- 0x21, 0x96, 0x97, 0x2E, 0x3F, 0xDF, 0x4F, 0xE9,
- 0xEA, 0x4A, 0x81, 0x6D, 0x18, 0x07, 0xA3, 0x1C,
- 0xAE, 0xAD, 0x6A, 0xAC, 0x5F, 0x06, 0x3C, 0x8F,
- 0xE8, 0x77, 0x79, 0x75, 0x59, 0xA7, 0x59, 0xA0,
- 0x0F, 0x8B, 0xA8, 0xF6, 0x68, 0xD8, 0x96, 0x8F,
- 0xB3, 0x1D, 0x8A, 0x3B, 0x84, 0x57, 0x35, 0x90,
- 0x2C, 0x5E, 0x42, 0xE2, 0x89, 0xEE, 0x0B, 0x62
- },
- {
- 0x14, 0x48, 0x84, 0x28, 0x68, 0x22, 0xC2, 0x51,
- 0x2D, 0x61, 0xB0, 0x46, 0xE6, 0x74, 0xD8, 0x6B,
- 0x26, 0x4E, 0x9C, 0xC6, 0x89, 0x3E, 0xFF, 0x36,
- 0x73, 0x11, 0x24, 0xF5, 0x9D, 0x1A, 0x82, 0x00,
- 0x1E, 0x63, 0xF3, 0xE8, 0x05, 0x1C, 0xFE, 0x52,
- 0xE7, 0x59, 0x7E, 0x28, 0x73, 0x8E, 0x3C, 0x3A,
- 0x70, 0xF1, 0xBE, 0xD9, 0x68, 0x0E, 0x2C, 0x0E,
- 0xF3, 0x72, 0x8B, 0x10, 0xA5, 0x6E, 0xD9, 0x87
- },
- {
- 0x17, 0xC3, 0xF1, 0x46, 0xEE, 0x8D, 0xEC, 0x3B,
- 0xAF, 0xCB, 0x51, 0xC0, 0xDA, 0x37, 0xF1, 0x78,
- 0x71, 0xF2, 0x34, 0xC4, 0xA0, 0xFB, 0x7F, 0xA6,
- 0xD0, 0x70, 0x7A, 0x54, 0x3E, 0x3C, 0xBF, 0x3A,
- 0xDB, 0x81, 0xE3, 0x0C, 0x1E, 0x0A, 0xE9, 0xE1,
- 0xAC, 0xE7, 0x22, 0x3B, 0xDA, 0x99, 0xBD, 0x59,
- 0x19, 0xA3, 0xCF, 0xCC, 0x92, 0xC6, 0xA7, 0x55,
- 0xE4, 0x56, 0xF0, 0x93, 0x82, 0x3B, 0xD3, 0x3E
- },
- {
- 0x1B, 0x83, 0x7A, 0xF2, 0x33, 0xA8, 0xA6, 0x8B,
- 0xE7, 0x09, 0x52, 0xF7, 0x83, 0xC4, 0x96, 0x1A,
- 0x81, 0x52, 0xD1, 0xE0, 0xB0, 0xFA, 0x32, 0x5F,
- 0xF0, 0x86, 0xEA, 0x5B, 0x5F, 0x13, 0x12, 0xB8,
- 0x9C, 0x42, 0xE0, 0x1B, 0x8C, 0x3A, 0x47, 0x7C,
- 0xB5, 0x40, 0xC0, 0x6B, 0x2F, 0x37, 0xEE, 0x0E,
- 0x39, 0x24, 0xD7, 0x45, 0xB4, 0xFF, 0x5C, 0x6A,
- 0xF7, 0xD6, 0x1E, 0x0E, 0x37, 0xAC, 0x19, 0x31
- },
- {
- 0x78, 0x97, 0x88, 0x0C, 0x1E, 0xB0, 0x0F, 0xD2,
- 0x56, 0x7A, 0xE8, 0xA5, 0x9E, 0x64, 0x82, 0xAF,
- 0xE1, 0x73, 0x49, 0xCF, 0x93, 0x92, 0x4A, 0x91,
- 0x5F, 0x8C, 0x59, 0x26, 0x93, 0xD4, 0x52, 0x07,
- 0x55, 0x19, 0x68, 0x9D, 0xFC, 0xD2, 0x93, 0xE3,
- 0x76, 0x89, 0x7B, 0x3B, 0x0E, 0x03, 0x6F, 0x11,
- 0x4F, 0xE8, 0x1E, 0xBC, 0xB3, 0x15, 0x36, 0x71,
- 0xBD, 0x23, 0xBC, 0x2B, 0xED, 0x46, 0xF9, 0xC2
- },
- {
- 0xCA, 0x7B, 0x6C, 0x77, 0x5D, 0x20, 0x1E, 0x5B,
- 0x5A, 0x77, 0x22, 0x61, 0xDE, 0x52, 0x8E, 0x47,
- 0x5F, 0x4B, 0xDE, 0x51, 0x76, 0x60, 0x52, 0x9F,
- 0x41, 0xBE, 0xEB, 0x15, 0x78, 0xB2, 0x4B, 0xCB,
- 0x94, 0xB9, 0x41, 0x0F, 0x9B, 0xF3, 0x36, 0xC1,
- 0x09, 0xF9, 0xD4, 0x70, 0x93, 0xA1, 0x0B, 0xA6,
- 0xDE, 0xBE, 0x50, 0x43, 0x80, 0xD9, 0xD1, 0x50,
- 0x73, 0xBD, 0xD1, 0x11, 0xC8, 0xD1, 0x29, 0xFA
- },
- {
- 0x57, 0x18, 0xE0, 0xD4, 0x5D, 0xEB, 0xC3, 0x00,
- 0x2D, 0x52, 0xB2, 0x2C, 0x52, 0x73, 0x29, 0xAE,
- 0x5E, 0xBF, 0x27, 0xE8, 0xFA, 0x9C, 0x8F, 0xEA,
- 0xB4, 0x6C, 0x40, 0xBC, 0x64, 0x22, 0xCA, 0x03,
- 0x35, 0x30, 0x4C, 0xF9, 0xE7, 0xF1, 0x41, 0xDE,
- 0x7F, 0xA6, 0xAD, 0xB6, 0x78, 0x9B, 0xDB, 0xF3,
- 0x8D, 0x14, 0xDA, 0xBA, 0x3E, 0x62, 0x97, 0xD2,
- 0x5B, 0xF1, 0x7D, 0xE1, 0x70, 0xD6, 0xE3, 0xC8
- },
- {
- 0x48, 0xD0, 0xED, 0x24, 0x9F, 0x90, 0x28, 0x41,
- 0x99, 0x7C, 0x25, 0x5D, 0xAF, 0x99, 0x08, 0x9C,
- 0x9A, 0x31, 0x24, 0x69, 0x8B, 0x16, 0x4A, 0x30,
- 0x28, 0x33, 0x0F, 0xDD, 0x4C, 0xEE, 0x41, 0xE1,
- 0x68, 0x3F, 0xA4, 0xD9, 0xDC, 0x66, 0xB2, 0xA7,
- 0x9C, 0x8A, 0xA4, 0xC8, 0x28, 0x4E, 0x27, 0xBE,
- 0xE2, 0xA4, 0x28, 0xA6, 0x71, 0x9D, 0x6E, 0xC6,
- 0x55, 0xED, 0x76, 0x9D, 0xCB, 0x62, 0x4E, 0x24
- },
- {
- 0x79, 0x4E, 0x0B, 0x64, 0xAC, 0xE1, 0xFE, 0x5A,
- 0xE3, 0x79, 0x93, 0x70, 0x68, 0xD8, 0x2D, 0xF0,
- 0x48, 0x68, 0x61, 0x6C, 0xAE, 0x0C, 0x17, 0xD3,
- 0x05, 0x72, 0xC2, 0x02, 0x4E, 0x77, 0x48, 0x94,
- 0xE0, 0x66, 0x8C, 0x47, 0x2D, 0x62, 0x3C, 0x90,
- 0x3C, 0xC5, 0x88, 0x5F, 0x17, 0x84, 0x94, 0x51,
- 0x10, 0x32, 0x9E, 0xB4, 0x98, 0xA8, 0x95, 0xA9,
- 0xE5, 0x9A, 0x75, 0xE5, 0x27, 0x15, 0x8A, 0x5C
- },
- {
- 0x21, 0x79, 0xAA, 0x82, 0x0E, 0x03, 0xFA, 0x33,
- 0xD9, 0xBD, 0xE5, 0x56, 0x8C, 0x26, 0x2E, 0x2D,
- 0x34, 0x17, 0xA4, 0x02, 0xE0, 0x7A, 0x59, 0x1F,
- 0x9D, 0x55, 0x70, 0x68, 0x2D, 0xB5, 0xF9, 0xBB,
- 0xA4, 0xBB, 0x9D, 0x5A, 0x82, 0xEE, 0x5E, 0xFD,
- 0xB4, 0xF6, 0x5B, 0xBB, 0xFE, 0xEE, 0x2F, 0x4A,
- 0xB9, 0xE4, 0x6C, 0xF2, 0xCE, 0x7E, 0x3B, 0x05,
- 0x43, 0x27, 0xA7, 0x18, 0xD3, 0xF1, 0x08, 0x06
- },
- {
- 0xB0, 0xA4, 0x8C, 0x6A, 0xDA, 0x54, 0x87, 0x25,
- 0x79, 0x9B, 0x59, 0x86, 0xBA, 0xB4, 0x32, 0x69,
- 0x79, 0x60, 0x92, 0x24, 0xD8, 0x97, 0x18, 0x4B,
- 0x89, 0x97, 0x10, 0x4E, 0x0C, 0x6A, 0x24, 0xB3,
- 0xAB, 0xE5, 0x62, 0x16, 0x54, 0x22, 0xA4, 0x5D,
- 0x8A, 0xC8, 0x19, 0xB9, 0x9D, 0x37, 0x56, 0xEB,
- 0xBB, 0x64, 0xF8, 0x43, 0xE3, 0xE0, 0x93, 0x4D,
- 0xEC, 0x48, 0x7A, 0xED, 0x12, 0x13, 0x72, 0x79
- },
- {
- 0x84, 0x8D, 0x7F, 0x2E, 0xAD, 0x41, 0x29, 0x1D,
- 0x05, 0x38, 0x68, 0x0C, 0x64, 0x9D, 0x07, 0x89,
- 0x7E, 0x45, 0xC7, 0x0A, 0x0A, 0xA4, 0xF9, 0x35,
- 0x3F, 0x82, 0xC3, 0xF6, 0xFB, 0xB8, 0xE8, 0x48,
- 0x9C, 0x75, 0x3E, 0x90, 0xDB, 0xE8, 0x89, 0x00,
- 0x41, 0xA1, 0xAE, 0xEF, 0x84, 0xCD, 0x31, 0x36,
- 0x43, 0x4F, 0x53, 0x0E, 0x9D, 0xD9, 0xC2, 0x3F,
- 0xA5, 0x4F, 0xE1, 0x24, 0xEA, 0xFB, 0x72, 0xAD
- },
- {
- 0x0E, 0xD1, 0x46, 0x26, 0xEE, 0x6D, 0x0C, 0x8E,
- 0xD3, 0xF0, 0xC2, 0x00, 0xC1, 0x29, 0x85, 0x0F,
- 0xFF, 0x76, 0x31, 0x8F, 0xFF, 0xA1, 0xDD, 0xD7,
- 0xDD, 0x56, 0x3A, 0x01, 0xB7, 0x77, 0x97, 0x06,
- 0x86, 0x2B, 0x23, 0x99, 0x59, 0xB6, 0x15, 0xAE,
- 0x2E, 0xBE, 0x27, 0xC4, 0x50, 0x37, 0xE6, 0xFF,
- 0xAF, 0x99, 0x14, 0xDA, 0x8F, 0xF2, 0x77, 0x2B,
- 0xA5, 0xEE, 0x08, 0x11, 0xCD, 0x9E, 0xD5, 0x32
- },
- {
- 0x52, 0x03, 0xC0, 0x76, 0x38, 0xC4, 0xB6, 0x5F,
- 0x78, 0x43, 0x1E, 0x8B, 0x02, 0xE2, 0x0F, 0x6D,
- 0x68, 0x3F, 0x19, 0xFA, 0x8F, 0x83, 0xB5, 0x13,
- 0x4C, 0xD0, 0xF4, 0xE4, 0x68, 0xC9, 0x7E, 0xAC,
- 0xB5, 0x26, 0x7C, 0x7D, 0x3E, 0xAB, 0x58, 0x3C,
- 0xCA, 0xAC, 0xD0, 0xDB, 0xA4, 0xD5, 0x8A, 0xCE,
- 0x52, 0x19, 0x3A, 0x51, 0x78, 0xA7, 0xB1, 0x2D,
- 0x27, 0x95, 0xF5, 0xFD, 0xE8, 0xA3, 0x7B, 0xB9
- },
- {
- 0x48, 0xBE, 0x43, 0xD5, 0xE0, 0x04, 0x36, 0x88,
- 0xDF, 0x35, 0x32, 0xF7, 0x12, 0x1A, 0xFF, 0xFA,
- 0x16, 0x7D, 0xAB, 0xE4, 0xA4, 0x84, 0xFB, 0x75,
- 0xA0, 0x3A, 0xF3, 0x04, 0xA5, 0xC6, 0xF8, 0x25,
- 0xF3, 0x6C, 0xEC, 0xCB, 0xBB, 0xC0, 0x75, 0xEE,
- 0xF3, 0x20, 0xC4, 0xCD, 0x8D, 0x7E, 0xF8, 0xCB,
- 0x49, 0xE6, 0xDD, 0x59, 0x73, 0x37, 0x9E, 0xEC,
- 0x4C, 0x23, 0x3C, 0x45, 0x43, 0xD1, 0x32, 0xCE
- },
- {
- 0xB5, 0x46, 0x4E, 0x6A, 0xBA, 0xF5, 0xD3, 0xD4,
- 0x08, 0x3D, 0x1D, 0x7D, 0x2A, 0x8B, 0x0B, 0xAB,
- 0x78, 0xB6, 0x17, 0x09, 0x50, 0x0B, 0xBF, 0x77,
- 0x82, 0x3F, 0x60, 0x2D, 0x57, 0xD5, 0x13, 0xCA,
- 0x9E, 0x9F, 0xFF, 0x65, 0xEF, 0xAA, 0x89, 0x9C,
- 0xFE, 0x7B, 0xF8, 0x8A, 0x01, 0x88, 0x82, 0x9C,
- 0x24, 0xE4, 0x98, 0xAD, 0x00, 0x23, 0x5A, 0xBE,
- 0x8E, 0xEF, 0xA7, 0x19, 0xFA, 0x6A, 0xE6, 0xF6
- },
- {
- 0xAF, 0xE5, 0xE5, 0xE8, 0x3F, 0x19, 0xAD, 0xAD,
- 0x9E, 0x95, 0x90, 0x3E, 0xA9, 0xB2, 0x98, 0x10,
- 0x7D, 0x37, 0xDD, 0x38, 0x63, 0x2C, 0x95, 0x90,
- 0xBB, 0xFF, 0xC6, 0x24, 0xD4, 0xDE, 0x95, 0x8C,
- 0xB6, 0xB6, 0x1A, 0xF0, 0x80, 0xF0, 0x37, 0xAD,
- 0x17, 0xD0, 0x35, 0xB6, 0xBF, 0x58, 0xF7, 0x80,
- 0xFA, 0xDF, 0x70, 0xF3, 0xC9, 0x59, 0x66, 0x8A,
- 0x1B, 0x47, 0x21, 0x98, 0xA5, 0x9A, 0x8A, 0x00
- },
- {
- 0xEF, 0xA2, 0xC7, 0xC8, 0x02, 0xE2, 0x10, 0xD2,
- 0xD8, 0x0F, 0xB3, 0x50, 0xB3, 0xC2, 0xCB, 0x31,
- 0x56, 0x13, 0x18, 0x11, 0xE7, 0x18, 0xEE, 0xE5,
- 0xC9, 0xC6, 0x64, 0x0F, 0x87, 0x68, 0x2A, 0x55,
- 0x81, 0x2B, 0x10, 0xF4, 0x03, 0x10, 0xBA, 0xA7,
- 0xB8, 0x2B, 0x27, 0x3E, 0xF3, 0xAC, 0xC5, 0x5F,
- 0xED, 0xE0, 0xB5, 0xF1, 0x94, 0x9D, 0xE4, 0x29,
- 0x3D, 0x91, 0xB5, 0x89, 0xA2, 0x17, 0x5F, 0xF7
- },
- {
- 0xD6, 0xC6, 0x2A, 0x61, 0x82, 0x71, 0xF3, 0xBC,
- 0xBE, 0x00, 0x79, 0x24, 0xA0, 0xC9, 0x81, 0x2F,
- 0x83, 0x17, 0x44, 0x5F, 0xB6, 0xFB, 0x19, 0xEB,
- 0x58, 0x9A, 0x62, 0x9F, 0x51, 0x2F, 0xB3, 0x8A,
- 0x0B, 0x4E, 0x24, 0x7D, 0xEA, 0x88, 0xC5, 0x6A,
- 0x1B, 0xAF, 0x17, 0x88, 0x33, 0x65, 0xB4, 0x36,
- 0xF2, 0x84, 0x46, 0xFF, 0x66, 0xEA, 0x43, 0x18,
- 0x0B, 0xD0, 0x1E, 0xB5, 0xA6, 0x50, 0x9B, 0xD5
- },
- {
- 0x0B, 0x41, 0x16, 0x6B, 0xE6, 0x2F, 0x65, 0xE1,
- 0x93, 0xB3, 0xB8, 0x65, 0xE6, 0xC4, 0x7A, 0xAD,
- 0x26, 0x0A, 0xF5, 0xFC, 0xEE, 0xC9, 0xAB, 0x44,
- 0xAB, 0xAA, 0x46, 0x0A, 0x0C, 0x02, 0x46, 0xB6,
- 0xC6, 0x9B, 0x67, 0xD7, 0x1D, 0x3A, 0xDF, 0xEC,
- 0x60, 0xDC, 0x8E, 0x77, 0x37, 0x2F, 0x09, 0x49,
- 0x52, 0x34, 0x4F, 0xE1, 0x0C, 0x0D, 0x59, 0xEF,
- 0xEC, 0x0E, 0x11, 0xC4, 0xA5, 0x16, 0x93, 0x6D
- },
- {
- 0x79, 0xD5, 0xF9, 0xFF, 0xC0, 0x5E, 0xCF, 0x33,
- 0x7D, 0xE9, 0xF1, 0xE0, 0xF1, 0xD8, 0x9B, 0x30,
- 0xAC, 0xFE, 0xBB, 0xB8, 0x8A, 0x69, 0x35, 0x86,
- 0x78, 0x18, 0xCD, 0x8D, 0x45, 0xDA, 0x3D, 0x25,
- 0x18, 0xDE, 0x61, 0xA7, 0xFE, 0x28, 0x75, 0x1B,
- 0x61, 0x8F, 0x7A, 0x87, 0x5E, 0x11, 0x89, 0x8F,
- 0xFF, 0x74, 0x15, 0x7A, 0xB9, 0x06, 0x81, 0xBD,
- 0x53, 0xFA, 0x69, 0x62, 0x67, 0x1E, 0xD9, 0x9D
- },
- {
- 0xBE, 0xA9, 0x83, 0xD7, 0x6F, 0x24, 0xB1, 0xEE,
- 0xDE, 0x1D, 0x06, 0x71, 0x48, 0x05, 0x76, 0x8F,
- 0xAA, 0xAD, 0x47, 0x08, 0xC9, 0xA4, 0xFF, 0x9C,
- 0xD2, 0x42, 0x2F, 0x70, 0x6B, 0x6F, 0x0C, 0x30,
- 0x6D, 0x8B, 0x67, 0xF3, 0x40, 0x89, 0xC6, 0x5E,
- 0xD3, 0x88, 0x0C, 0x75, 0xF6, 0x7B, 0xBC, 0x4D,
- 0x89, 0xAD, 0x87, 0x12, 0x0A, 0x77, 0xD0, 0xFF,
- 0xE4, 0x36, 0xFB, 0x7B, 0x58, 0xB2, 0xCA, 0x41
- },
- {
- 0x46, 0x6F, 0xD9, 0x15, 0xEF, 0xD9, 0x50, 0xBC,
- 0x96, 0x65, 0x78, 0xCD, 0x92, 0xC6, 0x85, 0x92,
- 0x9D, 0x7B, 0x51, 0xA6, 0x3D, 0xB1, 0x42, 0xC7,
- 0xB9, 0xA9, 0x3D, 0x16, 0x52, 0x04, 0x95, 0x31,
- 0x9B, 0x87, 0xF6, 0x58, 0xE6, 0xAF, 0xDA, 0x1B,
- 0x42, 0x77, 0x3E, 0x2D, 0x49, 0xDA, 0x81, 0x45,
- 0x94, 0xA5, 0x54, 0x90, 0x89, 0xEF, 0xB1, 0xF3,
- 0xAB, 0x5F, 0x15, 0x90, 0xCA, 0x0A, 0x02, 0xAF
- },
- {
- 0xF6, 0x46, 0x11, 0x13, 0x7A, 0xD2, 0x95, 0x46,
- 0x70, 0xEA, 0xEC, 0xD6, 0x26, 0xD2, 0x12, 0xCF,
- 0xC5, 0xB9, 0xF6, 0xBB, 0x41, 0xAA, 0xEB, 0xB1,
- 0xD7, 0x1E, 0x89, 0x79, 0x2E, 0xB1, 0x31, 0x7A,
- 0xED, 0xC6, 0x38, 0x13, 0xFE, 0x63, 0xDE, 0x40,
- 0x17, 0x98, 0xDF, 0x75, 0x6C, 0xA1, 0xF2, 0x20,
- 0x35, 0xA0, 0xFA, 0xBD, 0x37, 0xFB, 0x11, 0x03,
- 0x43, 0x7F, 0x89, 0x1E, 0xAD, 0x5E, 0x64, 0x29
- },
- {
- 0x32, 0xE1, 0xF9, 0x38, 0xA2, 0x7F, 0xAA, 0xD8,
- 0xAC, 0x4A, 0x13, 0xFD, 0x4F, 0x6A, 0x8B, 0xF3,
- 0xDA, 0xBE, 0x4B, 0xC7, 0x2A, 0xF1, 0x1C, 0x8F,
- 0x0E, 0x1A, 0x06, 0x56, 0x7E, 0xD7, 0x04, 0xB8,
- 0xE7, 0x8E, 0x11, 0x40, 0xA0, 0xC7, 0x72, 0x4E,
- 0x3E, 0xFB, 0x70, 0xD2, 0x38, 0x07, 0xCF, 0x38,
- 0xE6, 0x27, 0xE3, 0x26, 0xAF, 0xC1, 0x64, 0xCD,
- 0xED, 0x52, 0xB4, 0x41, 0x39, 0xFF, 0xB3, 0xF3
- },
- {
- 0x48, 0x33, 0xAC, 0x92, 0xE3, 0x02, 0xAC, 0x2B,
- 0x67, 0xB0, 0x2B, 0x88, 0x27, 0x14, 0x3B, 0xAD,
- 0xA1, 0x5C, 0xED, 0x22, 0x0E, 0x1D, 0x1F, 0x5B,
- 0x71, 0x12, 0x0C, 0x51, 0xEE, 0x54, 0xC1, 0x9D,
- 0x30, 0x1F, 0x29, 0x60, 0xBD, 0xB5, 0xA2, 0xCE,
- 0x27, 0xD4, 0x41, 0xD1, 0x4A, 0xF0, 0x80, 0xCB,
- 0x01, 0x0A, 0x8A, 0x23, 0xEE, 0xFF, 0x58, 0x11,
- 0xDF, 0xA4, 0x4D, 0x1D, 0x7B, 0x35, 0x8B, 0x48
- },
- {
- 0x9A, 0x03, 0x88, 0xCE, 0xE1, 0xAD, 0x01, 0x46,
- 0x17, 0x7C, 0x48, 0xB5, 0xA0, 0x8A, 0x2D, 0xB3,
- 0xC4, 0x89, 0xE8, 0x4C, 0xE2, 0xAB, 0xA8, 0xC6,
- 0x45, 0x11, 0x2A, 0x02, 0x1E, 0x41, 0x1C, 0xF8,
- 0x29, 0x12, 0x7F, 0xA2, 0xF1, 0xD1, 0xAE, 0x1B,
- 0xAF, 0x3A, 0x33, 0xEA, 0x53, 0x09, 0x84, 0x77,
- 0xA7, 0xD1, 0x2B, 0xA7, 0x48, 0xD2, 0xAF, 0x24,
- 0xD1, 0x66, 0x02, 0xE9, 0x19, 0x07, 0x76, 0x23
- },
- {
- 0xE3, 0xDF, 0x00, 0x74, 0xA9, 0x37, 0x35, 0x13,
- 0x0D, 0x99, 0x22, 0xD2, 0xBE, 0x91, 0x6F, 0x35,
- 0x34, 0x3D, 0x98, 0x8C, 0xE5, 0x9D, 0x76, 0x97,
- 0x15, 0xA9, 0x83, 0xB4, 0xBA, 0x80, 0x7C, 0xE1,
- 0xEE, 0x70, 0xA3, 0x13, 0xE5, 0x92, 0x31, 0x58,
- 0x4F, 0x55, 0x6E, 0xBB, 0xA1, 0xB9, 0x0B, 0x1B,
- 0xB6, 0xA6, 0xC5, 0x81, 0xA4, 0xB4, 0x7C, 0x3F,
- 0xF5, 0x21, 0x89, 0x65, 0x2A, 0xAB, 0x36, 0xF5
- },
- {
- 0x91, 0x91, 0xCF, 0x46, 0x1B, 0x69, 0x59, 0xBE,
- 0xC9, 0x3E, 0xAE, 0x7F, 0xB1, 0xC6, 0xE3, 0x70,
- 0x73, 0xD1, 0xA6, 0x15, 0x27, 0xAD, 0x75, 0xD1,
- 0x0B, 0x7F, 0x89, 0x49, 0xD9, 0xB8, 0xAF, 0x70,
- 0xA2, 0x3A, 0xD1, 0x31, 0x2E, 0xD5, 0x1F, 0x70,
- 0xF0, 0xE9, 0xDF, 0x60, 0x1D, 0xDA, 0xE2, 0x38,
- 0x90, 0x6C, 0x0F, 0xE3, 0xF7, 0x66, 0xB1, 0x4F,
- 0x11, 0x3B, 0x26, 0xBC, 0x85, 0x42, 0xD1, 0xD2
- },
- {
- 0x2A, 0x8B, 0xAD, 0xE2, 0x72, 0xEE, 0x7A, 0xC6,
- 0x43, 0xC5, 0xE3, 0x71, 0x47, 0xFA, 0xAC, 0x92,
- 0xC3, 0x97, 0x0B, 0xD3, 0x86, 0x2F, 0x53, 0x1E,
- 0x5D, 0xCE, 0xA5, 0xCE, 0xAC, 0xD1, 0x83, 0x74,
- 0x53, 0xAA, 0x49, 0x8D, 0x78, 0x5B, 0x4D, 0x1F,
- 0x89, 0xE1, 0xB2, 0xA7, 0x39, 0xCA, 0x4A, 0x38,
- 0x49, 0x87, 0x30, 0x27, 0x46, 0xB4, 0xF1, 0x13,
- 0x42, 0x43, 0x02, 0xC4, 0xA1, 0xE0, 0xF9, 0xDF
- },
- {
- 0x32, 0x3E, 0x67, 0x93, 0xC7, 0xDD, 0x9B, 0x4D,
- 0x7B, 0xB7, 0xFB, 0xF2, 0x15, 0x31, 0xD3, 0x7F,
- 0x72, 0x64, 0x53, 0x2C, 0x58, 0xF1, 0x22, 0x55,
- 0x48, 0xD0, 0x6E, 0x69, 0x40, 0xC6, 0x3E, 0x91,
- 0x27, 0x09, 0x90, 0xE7, 0xF5, 0x64, 0x32, 0x03,
- 0xC9, 0x87, 0x64, 0x7E, 0x5C, 0xF6, 0x61, 0x03,
- 0xE7, 0x9B, 0x71, 0x4C, 0x58, 0x1B, 0xD8, 0x77,
- 0x2E, 0x19, 0xD0, 0xF0, 0x05, 0xDC, 0x86, 0x33
- },
- {
- 0xF9, 0x22, 0x07, 0x6D, 0x29, 0x5D, 0x23, 0xE2,
- 0x98, 0x58, 0x30, 0xAA, 0xD2, 0xF2, 0x3F, 0x65,
- 0x2F, 0x7F, 0x4D, 0xB4, 0x2C, 0x11, 0x9E, 0xD2,
- 0x20, 0xA5, 0x45, 0x14, 0x88, 0xA4, 0x53, 0xF5,
- 0x9F, 0xA8, 0xA2, 0xDE, 0x23, 0x03, 0x00, 0x0D,
- 0x6B, 0xFD, 0x8C, 0x48, 0x23, 0xA8, 0x5F, 0xAD,
- 0xB4, 0xFB, 0x8E, 0x7E, 0xAC, 0x12, 0x2B, 0xF0,
- 0x12, 0x47, 0xD7, 0x6F, 0x65, 0x24, 0x7D, 0x45
- },
- {
- 0xDC, 0x40, 0x00, 0x95, 0x60, 0x95, 0x92, 0x91,
- 0x55, 0x8E, 0xBE, 0x07, 0x20, 0x64, 0xCE, 0x67,
- 0x12, 0xC9, 0x21, 0xB5, 0x40, 0x9B, 0x44, 0xE0,
- 0x4F, 0x9A, 0x56, 0x5E, 0xEA, 0xDD, 0x39, 0xA7,
- 0x71, 0x6E, 0x21, 0xB4, 0x6D, 0xD8, 0x61, 0x65,
- 0x17, 0xA2, 0x1A, 0x0C, 0x03, 0x41, 0x9E, 0x94,
- 0xDB, 0x82, 0x0A, 0x35, 0x3F, 0x15, 0x2D, 0x10,
- 0x83, 0x84, 0xBE, 0x94, 0x70, 0x09, 0x3F, 0x89
- },
- {
- 0x7F, 0xA4, 0xBE, 0x91, 0xCA, 0x52, 0x07, 0xFF,
- 0x08, 0x7D, 0xE9, 0x2F, 0x1D, 0xB0, 0x9B, 0xF7,
- 0x1A, 0x67, 0x87, 0x8B, 0xED, 0x19, 0x3A, 0x5C,
- 0x2C, 0xC4, 0xE3, 0x53, 0x23, 0xB8, 0xDF, 0x99,
- 0xA2, 0x6E, 0xCB, 0x98, 0x88, 0xD7, 0xB3, 0x4A,
- 0x73, 0x9D, 0x64, 0x1A, 0x0E, 0xCD, 0x0A, 0x66,
- 0x47, 0xA6, 0xA0, 0x64, 0x26, 0xF3, 0xCC, 0x1F,
- 0xEF, 0xDF, 0x90, 0x69, 0x92, 0x2F, 0xAE, 0x4C
- },
- {
- 0xBA, 0xD3, 0xCD, 0x75, 0x90, 0x5D, 0x7B, 0xFD,
- 0xA3, 0x32, 0x2B, 0x44, 0xA7, 0xD3, 0x58, 0x87,
- 0x14, 0xD3, 0x33, 0xEE, 0x86, 0x85, 0x5A, 0x87,
- 0x27, 0x47, 0xE7, 0x04, 0xF6, 0x11, 0x94, 0x84,
- 0xBD, 0xB7, 0xD0, 0x77, 0xFA, 0x08, 0xED, 0xC4,
- 0xA7, 0x9D, 0xE0, 0xF4, 0x3F, 0xCA, 0x8D, 0x43,
- 0x6E, 0x8A, 0x10, 0x08, 0x57, 0xF5, 0x9B, 0xC7,
- 0xB0, 0x55, 0xB9, 0x87, 0xF9, 0x7A, 0xC6, 0xB9
- },
- {
- 0xB7, 0xDE, 0xE8, 0xE8, 0x33, 0x9D, 0xB2, 0x97,
- 0xFD, 0xAA, 0x3C, 0xA5, 0xC1, 0xDC, 0x19, 0x88,
- 0xD9, 0x7F, 0x5F, 0xB6, 0x20, 0x8C, 0x64, 0xDE,
- 0xA9, 0x5E, 0x1C, 0x78, 0xF3, 0x37, 0xCE, 0x20,
- 0xA2, 0xB4, 0xDF, 0x17, 0xA7, 0xB8, 0x23, 0x6A,
- 0x90, 0xD6, 0x28, 0x67, 0x33, 0x16, 0x35, 0x72,
- 0xC8, 0x67, 0xD9, 0x3D, 0xE8, 0x9E, 0xF6, 0x2F,
- 0xA0, 0x5D, 0xAB, 0x70, 0x7E, 0xC3, 0xA7, 0x70
- },
- {
- 0xA0, 0xF7, 0xE9, 0x3C, 0xF3, 0x25, 0x02, 0xB9,
- 0xFD, 0x79, 0xEC, 0x20, 0x54, 0x62, 0x07, 0xF3,
- 0x31, 0xC5, 0x29, 0x9E, 0xCE, 0xF3, 0x50, 0xD6,
- 0x6E, 0xA8, 0x55, 0xC8, 0x7F, 0xBD, 0xDF, 0x18,
- 0xE6, 0x91, 0xC2, 0x0D, 0x04, 0x5A, 0x30, 0x8F,
- 0x83, 0xF6, 0xCB, 0x8F, 0xCA, 0x69, 0xD7, 0xE2,
- 0xB3, 0x9B, 0x34, 0xD2, 0xF8, 0x77, 0x27, 0x6C,
- 0x19, 0x6B, 0xF5, 0x14, 0xBA, 0xC6, 0x02, 0x70
- },
- {
- 0x6F, 0x50, 0x93, 0xCF, 0xC8, 0x83, 0x00, 0xBF,
- 0x68, 0x8E, 0x88, 0x4B, 0x4C, 0x5E, 0xC2, 0xC3,
- 0x1A, 0x8C, 0xC2, 0x8D, 0x63, 0x31, 0xAD, 0x7C,
- 0xA7, 0x1D, 0x97, 0x60, 0x21, 0x64, 0x82, 0x05,
- 0x28, 0x15, 0xD4, 0x4F, 0xC6, 0x9E, 0x18, 0xA8,
- 0xDC, 0x8B, 0xD7, 0x1B, 0x31, 0xF2, 0xB5, 0x89,
- 0xA7, 0xC0, 0x78, 0x0B, 0x61, 0x99, 0x38, 0x5F,
- 0x8D, 0xAE, 0x6C, 0x9B, 0x79, 0x74, 0xC4, 0xCB
- },
- {
- 0x3C, 0xFF, 0x46, 0xAC, 0x35, 0x46, 0xF6, 0x5A,
- 0xD7, 0xA7, 0x20, 0x87, 0x1A, 0xFA, 0x20, 0xA9,
- 0x21, 0x6D, 0xDA, 0x5C, 0x45, 0x18, 0x81, 0x56,
- 0xA5, 0xBB, 0xED, 0xF2, 0x15, 0x46, 0xD4, 0xBB,
- 0x39, 0x40, 0xB2, 0x1A, 0x41, 0xA3, 0x94, 0x03,
- 0xE3, 0xCF, 0xD5, 0xE7, 0xA0, 0xE7, 0x90, 0x4D,
- 0xA9, 0x5F, 0x4D, 0x8E, 0x0C, 0x5B, 0xF5, 0xB7,
- 0x0E, 0xB0, 0x29, 0x55, 0x6E, 0xFD, 0x49, 0x7E
- },
- {
- 0xAF, 0x66, 0x8A, 0x80, 0x5E, 0x6D, 0x70, 0x4B,
- 0x1E, 0x58, 0x1F, 0x1E, 0x8E, 0x3C, 0x00, 0xCF,
- 0x4C, 0xF3, 0xE5, 0x46, 0x14, 0x7C, 0x40, 0x6D,
- 0x17, 0xCA, 0x97, 0x4D, 0x19, 0xA0, 0x14, 0xC7,
- 0x8B, 0x44, 0xE7, 0x2D, 0xDE, 0xEB, 0x65, 0x26,
- 0x07, 0xE8, 0x6D, 0x69, 0x02, 0x59, 0xDC, 0xAB,
- 0x0D, 0xDA, 0x81, 0xC7, 0x7C, 0x7E, 0xE2, 0x72,
- 0x1E, 0x82, 0xBB, 0xB1, 0x39, 0x43, 0x07, 0x1D
- },
- {
- 0x79, 0xDD, 0xEB, 0x5C, 0x54, 0xDE, 0xD1, 0xE4,
- 0x48, 0x40, 0x71, 0xC4, 0x6B, 0xB4, 0x28, 0x02,
- 0xD2, 0x3B, 0x3A, 0x08, 0xC1, 0x23, 0x11, 0xBE,
- 0x36, 0x3C, 0x7C, 0x7A, 0x02, 0x5A, 0x17, 0x64,
- 0xC8, 0xD8, 0x50, 0x69, 0xFD, 0xA8, 0xD5, 0x17,
- 0x77, 0x7D, 0x8D, 0xD8, 0x09, 0xE3, 0xD4, 0xA9,
- 0x56, 0x04, 0x1A, 0x70, 0x79, 0xF9, 0x16, 0x7B,
- 0x0F, 0xE9, 0x71, 0x2E, 0x5F, 0x12, 0x29, 0xF5
- },
- {
- 0x99, 0x8E, 0x82, 0xF4, 0x26, 0x3D, 0x53, 0xAE,
- 0xDA, 0xC9, 0x39, 0xEB, 0xB6, 0xEB, 0x8B, 0x19,
- 0x69, 0x74, 0x6C, 0xB8, 0x15, 0xBD, 0x72, 0x1F,
- 0x17, 0xA4, 0x8B, 0xEE, 0x9E, 0xCF, 0xF2, 0xFE,
- 0x59, 0x8C, 0x53, 0x9C, 0x41, 0x9A, 0x60, 0xE0,
- 0xD5, 0xA0, 0x4F, 0x1C, 0xB5, 0x23, 0xA2, 0xFD,
- 0x05, 0x38, 0xBB, 0x17, 0x8E, 0x44, 0x75, 0x8D,
- 0x31, 0x59, 0xAB, 0x9E, 0x02, 0x84, 0x01, 0xA3
- },
- {
- 0x33, 0x96, 0xCF, 0xD5, 0xCD, 0xE1, 0x4A, 0xEC,
- 0x1A, 0xAE, 0xD3, 0xE1, 0x22, 0x52, 0xCF, 0xD6,
- 0xE3, 0x42, 0xED, 0x25, 0x5E, 0x8E, 0x9E, 0x1B,
- 0xE1, 0x0F, 0x1F, 0x27, 0x38, 0x77, 0xF3, 0x63,
- 0x33, 0x81, 0xE3, 0xC9, 0x61, 0xE6, 0x7E, 0xC4,
- 0x1E, 0x8F, 0x9E, 0x16, 0x11, 0x0F, 0xC0, 0x3D,
- 0xDE, 0x88, 0xBF, 0xC0, 0x96, 0xFC, 0x15, 0x14,
- 0x46, 0x1D, 0x70, 0xD0, 0xBE, 0xCE, 0x0A, 0xF6
- },
- {
- 0x77, 0x7D, 0x9D, 0xC5, 0x5A, 0x2F, 0x57, 0xA4,
- 0x6E, 0xA0, 0x6A, 0x2F, 0x4C, 0xB9, 0x76, 0x0D,
- 0x00, 0xD7, 0xA8, 0x62, 0xD0, 0xA2, 0xAA, 0x19,
- 0x46, 0x7B, 0x57, 0x0F, 0x7C, 0x7D, 0x5E, 0xA7,
- 0x62, 0x9A, 0x95, 0xEB, 0x20, 0x0E, 0x1F, 0x9D,
- 0xB0, 0x66, 0x10, 0xCF, 0x8E, 0x30, 0xD5, 0xE6,
- 0xAD, 0x0A, 0x7B, 0x63, 0x29, 0x77, 0xFC, 0x21,
- 0xBB, 0x17, 0x89, 0x67, 0xF3, 0xB0, 0xE0, 0x9B
- },
- {
- 0x32, 0xEE, 0x35, 0x7F, 0xC9, 0x16, 0x36, 0xA8,
- 0x55, 0xBA, 0x01, 0xA0, 0xB8, 0xDA, 0x6F, 0x35,
- 0x53, 0xB1, 0xD5, 0x20, 0xAD, 0xCF, 0xE8, 0xFE,
- 0x9D, 0xEB, 0xCC, 0xB2, 0x6C, 0x5C, 0x4C, 0xE8,
- 0x50, 0x5B, 0xB1, 0xEF, 0xB5, 0xED, 0x5B, 0xAA,
- 0x4C, 0x52, 0x45, 0xB5, 0x0D, 0x74, 0x46, 0x3F,
- 0x07, 0x67, 0xB2, 0xC7, 0x83, 0xC4, 0x7A, 0x93,
- 0xB0, 0xFD, 0xA6, 0x68, 0x95, 0x69, 0x3C, 0xE6
- },
- {
- 0x34, 0x0C, 0x0A, 0x7C, 0xE4, 0x96, 0xFE, 0xBD,
- 0xA1, 0x3F, 0xA2, 0x40, 0x7A, 0x21, 0xDC, 0x19,
- 0x83, 0x9B, 0xED, 0xAE, 0x1A, 0x08, 0x6A, 0xD0,
- 0xFE, 0xD3, 0x91, 0x7D, 0xF9, 0xBF, 0x40, 0x94,
- 0x4A, 0x78, 0x7F, 0x64, 0x1E, 0x90, 0xDD, 0xBA,
- 0xE0, 0x3A, 0x93, 0x37, 0x72, 0x3E, 0x51, 0x66,
- 0x8F, 0xB8, 0x93, 0x77, 0x2C, 0x0F, 0xBD, 0xB3,
- 0xEB, 0x7E, 0xF7, 0x90, 0xDF, 0xCB, 0xB9, 0xAB
- },
- {
- 0xD8, 0x6A, 0x5B, 0xAA, 0x33, 0x65, 0xAB, 0xD8,
- 0xF4, 0x42, 0xCD, 0x6E, 0xBB, 0x93, 0x11, 0x38,
- 0x19, 0xF0, 0xB4, 0x60, 0x61, 0xE1, 0x34, 0x04,
- 0xEF, 0xAA, 0x1A, 0x58, 0xE1, 0xFF, 0x27, 0x2A,
- 0xD4, 0xBF, 0xD3, 0x08, 0x15, 0xAD, 0xD8, 0x8A,
- 0xD9, 0x8F, 0xCE, 0x9A, 0xF0, 0x18, 0x37, 0x4C,
- 0xA6, 0x0D, 0x89, 0x79, 0x0F, 0x71, 0xA6, 0x07,
- 0x5F, 0x3D, 0x68, 0xD3, 0x20, 0x21, 0xA9, 0xEB
- },
- {
- 0xA6, 0x7E, 0x6E, 0xC6, 0x57, 0xC9, 0x5E, 0xAB,
- 0x3C, 0x3C, 0x32, 0xE4, 0x1F, 0xBF, 0x39, 0xCF,
- 0x20, 0x33, 0xAB, 0x4B, 0xE2, 0xE2, 0xB8, 0x21,
- 0x10, 0x4A, 0xDB, 0xE6, 0x9D, 0x16, 0xE9, 0x48,
- 0xDC, 0xE4, 0xC4, 0xC6, 0xA3, 0xCF, 0x22, 0x76,
- 0x90, 0x1F, 0x7D, 0x4F, 0xFD, 0x69, 0x65, 0x46,
- 0x49, 0x88, 0x2C, 0x01, 0x4D, 0x2C, 0x10, 0xA1,
- 0x30, 0x2B, 0x79, 0xC6, 0x15, 0x69, 0xCD, 0x36
- },
- {
- 0x55, 0xCE, 0x19, 0x2A, 0xE4, 0xB3, 0xEA, 0xF8,
- 0x55, 0x59, 0x0E, 0x2D, 0x44, 0xE6, 0x25, 0xD9,
- 0xBA, 0x14, 0x6E, 0xB7, 0x50, 0x48, 0xE6, 0xB5,
- 0x6E, 0x02, 0x50, 0x31, 0xEF, 0xBA, 0x0B, 0xDA,
- 0x8A, 0xAA, 0xFA, 0x04, 0x70, 0xB7, 0xAC, 0x3D,
- 0x40, 0x6E, 0x5A, 0xBA, 0x3E, 0x83, 0x2F, 0x27,
- 0xA5, 0x07, 0x24, 0x6D, 0x1B, 0x5F, 0x33, 0xDE,
- 0xA1, 0xF7, 0x24, 0xE2, 0xB8, 0x1B, 0x0C, 0x98
- },
- {
- 0xB3, 0xA2, 0x0C, 0x1F, 0xB0, 0xB4, 0xF0, 0xD3,
- 0x77, 0x26, 0xC2, 0x3B, 0x58, 0x77, 0xDD, 0x8E,
- 0x72, 0xF6, 0x98, 0x86, 0xE0, 0x9A, 0x8C, 0x68,
- 0xCF, 0xC3, 0x01, 0xD2, 0xA3, 0xF2, 0xF9, 0x5C,
- 0xEF, 0xCF, 0xAB, 0xB8, 0x88, 0x99, 0x03, 0xC7,
- 0x32, 0xF4, 0xE8, 0x14, 0x32, 0xD3, 0xF6, 0x78,
- 0xCC, 0xDF, 0xC3, 0x98, 0xAC, 0xD8, 0xA2, 0xF0,
- 0x66, 0x41, 0x10, 0x04, 0x50, 0xD8, 0x9F, 0x32
- },
- {
- 0xF7, 0x27, 0x2D, 0x93, 0xC7, 0x01, 0x2D, 0x38,
- 0xB2, 0x7F, 0x0C, 0x9A, 0xE2, 0x01, 0x79, 0x58,
- 0xBB, 0xA6, 0x66, 0xA9, 0xDE, 0x1E, 0x88, 0x12,
- 0xE9, 0x74, 0x37, 0xAE, 0xB2, 0xE0, 0x3C, 0x99,
- 0x94, 0x38, 0xF0, 0xBE, 0x33, 0x3D, 0x09, 0xAD,
- 0xDB, 0xCF, 0xAA, 0xC7, 0xAA, 0x73, 0xF7, 0xB6,
- 0xCC, 0xEC, 0x67, 0xDC, 0x07, 0x79, 0x98, 0xDE,
- 0xDB, 0x8C, 0x13, 0x32, 0xBA, 0xC0, 0xFB, 0xA8
- },
- {
- 0x1F, 0xE7, 0xB3, 0xDE, 0x34, 0xC0, 0x47, 0x9C,
- 0xA8, 0x40, 0x5F, 0x3C, 0xBC, 0xD2, 0xDB, 0x64,
- 0xBB, 0x18, 0xDB, 0xB2, 0x91, 0xA5, 0xFE, 0xAA,
- 0x16, 0xC5, 0x22, 0x8C, 0x93, 0xEE, 0x21, 0xC7,
- 0x11, 0xD6, 0x8A, 0x01, 0x0C, 0x2A, 0xE8, 0x80,
- 0x05, 0xEB, 0xAC, 0x95, 0x9E, 0x3A, 0x32, 0x24,
- 0x52, 0xF8, 0x62, 0xDD, 0xE9, 0x4B, 0xB9, 0x41,
- 0x81, 0x3E, 0x52, 0x4D, 0x23, 0x47, 0xFE, 0xEE
- },
- {
- 0x4E, 0xE1, 0xD3, 0x88, 0x05, 0xC3, 0x22, 0x84,
- 0xEC, 0xEB, 0xE9, 0x2E, 0x3D, 0xF6, 0xCD, 0x98,
- 0xC7, 0xD6, 0x68, 0x0E, 0xAB, 0x0D, 0x68, 0x66,
- 0x4F, 0x96, 0x70, 0x6C, 0x45, 0x63, 0x3B, 0x1E,
- 0x26, 0x82, 0x22, 0xAA, 0x5A, 0x52, 0x79, 0xEF,
- 0x01, 0xFC, 0x28, 0x54, 0x32, 0xAB, 0xEE, 0xD7,
- 0x4B, 0xA3, 0xDF, 0x18, 0x9F, 0x50, 0xA9, 0x89,
- 0xD5, 0x8E, 0x71, 0x30, 0x62, 0x2D, 0xAA, 0x59
- },
- {
- 0x0E, 0x14, 0x05, 0x87, 0x1C, 0x87, 0xA5, 0xEA,
- 0x40, 0x83, 0x42, 0xF3, 0x9D, 0x34, 0x94, 0xF9,
- 0x39, 0xF7, 0x3C, 0x22, 0x60, 0xC2, 0xA4, 0x3A,
- 0x5C, 0x9F, 0x1B, 0x57, 0x33, 0x0C, 0xCA, 0x40,
- 0x93, 0xFC, 0x1F, 0x42, 0xF9, 0x6D, 0x83, 0x00,
- 0x56, 0x77, 0x03, 0x7D, 0xB5, 0x1A, 0xEF, 0x26,
- 0xF0, 0x54, 0x38, 0x05, 0x7A, 0xE7, 0x9E, 0xD1,
- 0x44, 0x64, 0xFD, 0x8E, 0x57, 0xD1, 0x55, 0x86
- },
- {
- 0x17, 0xC5, 0xCA, 0xB4, 0x09, 0x10, 0x73, 0x62,
- 0x1B, 0x5C, 0x24, 0xC3, 0x36, 0x31, 0x6D, 0x0C,
- 0xF6, 0x49, 0xBA, 0x1E, 0xFF, 0xEB, 0xFC, 0x87,
- 0xE0, 0x43, 0x9C, 0xDF, 0x57, 0x88, 0x87, 0xB2,
- 0x21, 0x65, 0x6D, 0x33, 0x9A, 0x6F, 0xD1, 0x98,
- 0xAB, 0xAE, 0xE6, 0x7E, 0xA1, 0x88, 0xDD, 0x66,
- 0x56, 0x78, 0x23, 0xFC, 0x22, 0x0C, 0x52, 0xB5,
- 0x74, 0x90, 0x25, 0x14, 0x69, 0xD2, 0x5D, 0x8C
- },
- {
- 0x57, 0xDC, 0x27, 0x97, 0xD1, 0x42, 0x68, 0x1C,
- 0x94, 0xFE, 0x48, 0x86, 0x26, 0x98, 0x6E, 0xD4,
- 0xB2, 0x67, 0x03, 0xCB, 0xF6, 0xBF, 0xE5, 0x93,
- 0x91, 0x64, 0x36, 0x57, 0x06, 0x5B, 0x2D, 0x46,
- 0xE4, 0xB1, 0xDD, 0xB3, 0xAA, 0x83, 0x2C, 0x9B,
- 0xD4, 0x49, 0x75, 0x5A, 0xC8, 0xB1, 0xBF, 0x93,
- 0x68, 0x97, 0xFB, 0xC6, 0xAD, 0xE3, 0x78, 0xF2,
- 0xBD, 0x64, 0x93, 0xE4, 0x86, 0xF4, 0x20, 0x29
- },
- {
- 0x44, 0x12, 0xDD, 0x6B, 0xED, 0x6D, 0xB2, 0xA8,
- 0x03, 0xC2, 0xE0, 0xDF, 0x8F, 0x58, 0x29, 0xE7,
- 0xA4, 0xB0, 0x41, 0x78, 0x89, 0x51, 0x0D, 0xF7,
- 0xDF, 0xEE, 0x49, 0x57, 0x4A, 0x71, 0xEC, 0x0D,
- 0x9E, 0x0D, 0x46, 0x06, 0x50, 0x17, 0xC7, 0x2D,
- 0xD9, 0x74, 0x39, 0x33, 0xCA, 0x83, 0x9A, 0x76,
- 0x8D, 0xD1, 0x5A, 0xB0, 0xB7, 0xC1, 0x4C, 0x62,
- 0x6A, 0x35, 0x41, 0x09, 0x69, 0x01, 0x96, 0xAE
- },
- {
- 0xD0, 0xEB, 0xC7, 0x71, 0x03, 0x1B, 0x7C, 0x16,
- 0x00, 0x21, 0xC9, 0xB6, 0xFB, 0xB2, 0xB6, 0x70,
- 0xE3, 0xB4, 0x02, 0x70, 0x02, 0x69, 0x07, 0xA3,
- 0x91, 0x63, 0xDB, 0x18, 0x73, 0xEC, 0xC3, 0xB8,
- 0x00, 0x11, 0x1D, 0xD7, 0xBF, 0x13, 0x8F, 0x83,
- 0xA6, 0x10, 0xDC, 0x04, 0x6D, 0xA2, 0x68, 0xB7,
- 0x2B, 0x8C, 0x90, 0x86, 0x92, 0x23, 0x77, 0xDB,
- 0xED, 0x73, 0x94, 0x82, 0x43, 0xCA, 0x1E, 0x14
- },
- {
- 0x10, 0xC4, 0xBA, 0x31, 0x55, 0x91, 0x69, 0x8D,
- 0xFB, 0x91, 0xA5, 0x73, 0x37, 0x63, 0x18, 0x84,
- 0xB4, 0x73, 0x8D, 0x9F, 0x59, 0x80, 0x78, 0x51,
- 0xA6, 0x79, 0x84, 0x0C, 0xC2, 0x87, 0xAC, 0xE3,
- 0x01, 0x1C, 0xCD, 0xC8, 0xF4, 0xA4, 0x85, 0xBB,
- 0x19, 0x73, 0x40, 0x4E, 0xF9, 0xEE, 0x9B, 0x9C,
- 0xF1, 0xEA, 0xDB, 0xC5, 0x40, 0x74, 0xC6, 0xD1,
- 0x13, 0xDE, 0x8F, 0xC9, 0x1D, 0x07, 0x97, 0xEB
- },
- {
- 0x14, 0x64, 0x34, 0x7B, 0xE3, 0x2C, 0x79, 0x59,
- 0x17, 0x2B, 0x74, 0x72, 0xD1, 0x1F, 0xE0, 0x78,
- 0x44, 0xA5, 0x2E, 0x2D, 0x3B, 0x2D, 0x05, 0x8C,
- 0xC6, 0xBC, 0xC0, 0xA8, 0xA2, 0x75, 0xD6, 0xB8,
- 0x2B, 0x2D, 0x62, 0x63, 0x75, 0x5E, 0xAF, 0x2A,
- 0x65, 0x88, 0xB6, 0xA1, 0xEB, 0x79, 0x9A, 0xF8,
- 0x3A, 0x4C, 0xE7, 0x53, 0xF8, 0xC7, 0x5A, 0x22,
- 0x84, 0xD0, 0x28, 0x5B, 0xAB, 0x5F, 0x7C, 0x1C
- },
- {
- 0xF4, 0x09, 0x23, 0x1E, 0xD1, 0x87, 0xF5, 0xC4,
- 0xE8, 0x33, 0xFA, 0x9E, 0x30, 0x42, 0xAC, 0xA6,
- 0xC8, 0x58, 0xB0, 0x8B, 0x49, 0x6B, 0x25, 0x31,
- 0xF8, 0x4F, 0xD5, 0xCE, 0xA9, 0x3E, 0xCD, 0x06,
- 0xDA, 0xFE, 0x0A, 0x10, 0xC3, 0xFF, 0x23, 0x76,
- 0xC7, 0x4D, 0xC8, 0x0D, 0xA0, 0x7D, 0xA0, 0x18,
- 0x64, 0xFB, 0xF2, 0x68, 0x59, 0x60, 0xB5, 0x40,
- 0xB3, 0xA2, 0xE9, 0x42, 0xCB, 0x8D, 0x90, 0x9F
- },
- {
- 0x39, 0x51, 0x32, 0xC5, 0x80, 0xC3, 0x55, 0xB5,
- 0xB0, 0xE2, 0x35, 0x33, 0x6C, 0x8D, 0xC1, 0x08,
- 0x5E, 0x59, 0x59, 0x64, 0x04, 0x3D, 0x38, 0x9E,
- 0x08, 0x1E, 0xFE, 0x48, 0x5B, 0xA4, 0xC6, 0x37,
- 0x72, 0xDB, 0x8D, 0x7E, 0x0F, 0x18, 0x6C, 0x50,
- 0x98, 0x2E, 0x12, 0x23, 0xEA, 0x78, 0x5A, 0xDC,
- 0x74, 0x0B, 0x0C, 0xF2, 0x18, 0x70, 0x74, 0x58,
- 0xB8, 0xB8, 0x03, 0x40, 0x42, 0xF9, 0x23, 0xC2
- },
- {
- 0xF9, 0x2A, 0xBA, 0xCA, 0x21, 0x32, 0x29, 0x66,
- 0x06, 0x49, 0xEF, 0x2D, 0x8F, 0x88, 0x11, 0x5B,
- 0x5B, 0xED, 0x8A, 0xB5, 0xB9, 0xBC, 0xA9, 0xA1,
- 0xB4, 0xC5, 0x24, 0x57, 0x03, 0x53, 0x10, 0xC4,
- 0x1A, 0x6B, 0xEA, 0x2B, 0x23, 0xB7, 0x91, 0x8B,
- 0x5B, 0x8B, 0xF3, 0x8B, 0x52, 0xEA, 0xC6, 0xFF,
- 0x3B, 0x62, 0x13, 0xA5, 0x22, 0xF3, 0x81, 0xBE,
- 0x7F, 0xF0, 0x90, 0x6D, 0xBA, 0x7B, 0xD0, 0x0C
- },
- {
- 0xCB, 0xAD, 0xE7, 0xAD, 0x3B, 0x5D, 0xEE, 0x0F,
- 0xF1, 0xA4, 0x6B, 0x08, 0x2C, 0xF4, 0xE1, 0xE1,
- 0xDC, 0x21, 0x62, 0x0D, 0xD2, 0xCC, 0x0E, 0xDC,
- 0x2C, 0x70, 0x7A, 0x21, 0x62, 0xD2, 0x14, 0x99,
- 0x69, 0xAB, 0xBB, 0x29, 0xC5, 0x72, 0x0B, 0x04,
- 0xBD, 0x15, 0x68, 0xA9, 0x55, 0x61, 0x95, 0xE6,
- 0x7F, 0x24, 0x32, 0x2D, 0xD9, 0xAA, 0x4E, 0x83,
- 0x65, 0x19, 0x1A, 0xA5, 0xB6, 0xC4, 0x45, 0x79
- },
- {
- 0xF5, 0x1B, 0x4A, 0xE4, 0xD4, 0xC5, 0x4A, 0x29,
- 0xCF, 0x71, 0x35, 0xA8, 0xFE, 0x1E, 0xAB, 0xD5,
- 0xE1, 0xBC, 0xBF, 0x82, 0x08, 0x96, 0x96, 0x7D,
- 0xC4, 0x1E, 0x38, 0x49, 0xDA, 0xC2, 0x25, 0x07,
- 0x69, 0x42, 0x10, 0xCA, 0x11, 0xC4, 0xEB, 0xF1,
- 0xC2, 0x9A, 0x8D, 0x4F, 0x71, 0xB3, 0x0F, 0x76,
- 0xC9, 0xB6, 0x01, 0x0A, 0xD9, 0x5B, 0xDF, 0xB0,
- 0xDE, 0x83, 0x79, 0x25, 0xF0, 0x61, 0x25, 0x97
- },
- {
- 0xCE, 0x38, 0x72, 0x11, 0x5D, 0x83, 0x3B, 0x34,
- 0x56, 0xCA, 0x94, 0x2E, 0x6E, 0x38, 0x5F, 0x28,
- 0xA9, 0x03, 0xBE, 0xAB, 0xFB, 0x75, 0x3F, 0x8A,
- 0xFC, 0xCC, 0x12, 0xF2, 0x58, 0x2C, 0xE1, 0xF3,
- 0x62, 0x12, 0xBD, 0x05, 0xE0, 0x5A, 0x46, 0xFC,
- 0x88, 0xD3, 0x19, 0x50, 0xB4, 0x91, 0x1A, 0xE5,
- 0xDC, 0xD8, 0xFF, 0x7A, 0x0B, 0x50, 0x47, 0x4C,
- 0xB4, 0x88, 0xCC, 0xF2, 0xA8, 0x9C, 0xD0, 0xEB
- },
- {
- 0x9B, 0xB7, 0x4C, 0xBD, 0x47, 0xA6, 0x24, 0xCB,
- 0xEA, 0xFC, 0xC1, 0x6D, 0x46, 0x29, 0x47, 0xBB,
- 0xEA, 0x13, 0x70, 0xB8, 0x5C, 0x96, 0x1A, 0x40,
- 0x7D, 0xF9, 0x86, 0x3E, 0x54, 0xE6, 0xD9, 0xE6,
- 0xA8, 0xD2, 0xEF, 0x0C, 0x64, 0x97, 0x20, 0x5E,
- 0x5E, 0xB7, 0xC3, 0xE5, 0x9E, 0x69, 0x8D, 0x99,
- 0x24, 0x63, 0xCA, 0x9D, 0xD4, 0xCF, 0x28, 0xCF,
- 0x9A, 0x2D, 0x4E, 0x30, 0xC1, 0x33, 0xE8, 0x55
- },
- {
- 0x72, 0x96, 0x33, 0x82, 0x0B, 0xF0, 0x13, 0xD9,
- 0xD2, 0xBD, 0x37, 0x3C, 0xCA, 0xC7, 0xBC, 0x9F,
- 0x37, 0x16, 0xF6, 0x9E, 0x16, 0xA4, 0x4E, 0x94,
- 0x9C, 0x7A, 0x9A, 0x93, 0xDC, 0xA1, 0x26, 0xBB,
- 0x1A, 0xA5, 0x4E, 0x5E, 0x70, 0x40, 0x70, 0x7F,
- 0x02, 0x87, 0x6A, 0xFD, 0x02, 0x0A, 0xF4, 0x72,
- 0x63, 0x9D, 0x49, 0xF5, 0x42, 0x0D, 0x29, 0x4C,
- 0x3A, 0xA3, 0x1D, 0x06, 0x7E, 0x3E, 0x85, 0x75
- },
- {
- 0x06, 0x86, 0x1D, 0xB3, 0x07, 0xC6, 0x78, 0x08,
- 0x6E, 0x8B, 0x2A, 0xEC, 0xDF, 0x18, 0x29, 0xD2,
- 0x88, 0x3D, 0x28, 0xB7, 0x31, 0xAB, 0xD0, 0xF1,
- 0xE7, 0x2F, 0x1C, 0xED, 0x6C, 0x7A, 0xD4, 0x17,
- 0x2E, 0xCA, 0x63, 0x22, 0xA8, 0x3F, 0xB6, 0xA6,
- 0x5A, 0xFA, 0x37, 0xE9, 0x4A, 0x3E, 0x2B, 0xA2,
- 0x05, 0xB8, 0x7B, 0xF3, 0x82, 0xD9, 0x15, 0x88,
- 0x49, 0x7A, 0x46, 0x50, 0x88, 0x3B, 0xD8, 0x75
- },
- {
- 0x35, 0x6E, 0xCE, 0xAF, 0x17, 0x02, 0xB3, 0x70,
- 0xF4, 0xAA, 0xB8, 0xEA, 0x82, 0x84, 0x86, 0xF3,
- 0x30, 0x13, 0xF7, 0x44, 0xB3, 0x9E, 0x7E, 0xA2,
- 0x6C, 0x69, 0x18, 0xD6, 0x0E, 0x1A, 0xBC, 0xF4,
- 0x4F, 0xB1, 0x6E, 0xDC, 0xA7, 0x72, 0x0A, 0xCF,
- 0xC6, 0xA7, 0x01, 0xBF, 0x1E, 0x2C, 0x35, 0xDD,
- 0xBD, 0x69, 0x5A, 0x8D, 0x40, 0x8E, 0x8C, 0x96,
- 0x32, 0xE8, 0xCD, 0x27, 0x23, 0x0C, 0xAD, 0x8D
- },
- {
- 0x48, 0x9A, 0x39, 0xD0, 0xFC, 0x3C, 0xDE, 0xAF,
- 0x42, 0x89, 0x2E, 0xD8, 0x03, 0x85, 0xC1, 0x1C,
- 0xE2, 0x93, 0xC9, 0x32, 0x21, 0x5B, 0xB2, 0x31,
- 0x88, 0x69, 0x2A, 0x86, 0xE6, 0x1B, 0xCA, 0xD9,
- 0x2C, 0x2A, 0x1D, 0x11, 0x42, 0x60, 0x1B, 0x1B,
- 0xDF, 0x09, 0x82, 0xD1, 0xCD, 0x1E, 0x05, 0xC0,
- 0x52, 0xDE, 0x81, 0x9E, 0x64, 0xF2, 0x47, 0xDB,
- 0x35, 0x91, 0x5D, 0xD1, 0xDB, 0x79, 0xA3, 0xB5
- },
- {
- 0xC0, 0x2F, 0x46, 0x4B, 0x4D, 0xD1, 0x81, 0x17,
- 0xE3, 0x0A, 0x8D, 0xB8, 0xEF, 0x1D, 0xA0, 0x67,
- 0x13, 0x4B, 0x60, 0x4E, 0xFA, 0x19, 0x51, 0x76,
- 0x7E, 0xE6, 0x32, 0xDC, 0x02, 0x4D, 0x64, 0xC0,
- 0x0F, 0x24, 0x49, 0xF0, 0x42, 0xDB, 0x3A, 0xEA,
- 0x01, 0x74, 0xEB, 0xCD, 0xBB, 0x4F, 0xF5, 0x9D,
- 0xAE, 0x75, 0x4F, 0x72, 0x39, 0x46, 0xF1, 0xB9,
- 0x0A, 0x77, 0xFD, 0x95, 0x23, 0x69, 0x0B, 0x7B
- },
- {
- 0xFB, 0x31, 0xE6, 0xDD, 0xB8, 0x6D, 0xBF, 0xF3,
- 0x72, 0x64, 0x6D, 0x1E, 0x3A, 0x3F, 0x31, 0xDD,
- 0x61, 0x15, 0x9F, 0xC3, 0x93, 0x65, 0x8C, 0x2E,
- 0xE9, 0x57, 0x10, 0x3B, 0xF2, 0x11, 0x6B, 0xDE,
- 0xF8, 0x2C, 0x33, 0xE8, 0x69, 0xF3, 0xC8, 0x3A,
- 0xC3, 0xC2, 0xF6, 0x38, 0x0C, 0xF6, 0x92, 0xF7,
- 0xB1, 0xDC, 0xBA, 0xE0, 0xBB, 0x22, 0x7A, 0xD3,
- 0x47, 0xE7, 0x54, 0x13, 0x74, 0x66, 0xC6, 0x9F
- },
- {
- 0x00, 0x60, 0x62, 0xAB, 0xE1, 0x6C, 0x2F, 0xE7,
- 0x9A, 0xF8, 0x80, 0x85, 0xE0, 0xB5, 0x82, 0xB1,
- 0x06, 0xE7, 0xF7, 0x9F, 0x01, 0xA4, 0x39, 0x46,
- 0xC7, 0x8B, 0x19, 0xF9, 0xBD, 0xD7, 0x25, 0x99,
- 0x76, 0x36, 0xA3, 0x32, 0xEB, 0x9A, 0x3A, 0xAA,
- 0x6D, 0xE0, 0xD4, 0xA8, 0xE9, 0xE2, 0x8E, 0x8C,
- 0x77, 0x87, 0x74, 0x22, 0x4C, 0x66, 0x5B, 0xF7,
- 0xBC, 0x36, 0x44, 0xFC, 0xE4, 0x11, 0x22, 0x8C
- },
- {
- 0xD4, 0x4A, 0x6D, 0xB3, 0xDE, 0x9F, 0xD4, 0xE4,
- 0xA7, 0xEF, 0x15, 0x5A, 0x01, 0xBC, 0xCB, 0x91,
- 0xC1, 0xBC, 0xF1, 0xCB, 0x53, 0x22, 0x56, 0x89,
- 0xA7, 0x7A, 0x0D, 0x23, 0xB4, 0xD3, 0x9A, 0x89,
- 0xA1, 0x89, 0xF2, 0x89, 0x80, 0xF9, 0x1C, 0x56,
- 0xEA, 0xC5, 0x87, 0x9E, 0xAE, 0x93, 0x3C, 0xED,
- 0x7F, 0x26, 0x7E, 0x2F, 0x70, 0x40, 0xEB, 0x38,
- 0x0F, 0xDB, 0xBF, 0x34, 0xA6, 0xB7, 0xB6, 0x15
- },
- {
- 0x5A, 0xFB, 0xFE, 0xA1, 0xDE, 0xDA, 0x5A, 0xEA,
- 0xB9, 0x2E, 0x4D, 0x0C, 0x31, 0xD1, 0x6A, 0x9A,
- 0x86, 0xBF, 0x7C, 0x75, 0x23, 0x27, 0x4A, 0x05,
- 0xC5, 0x05, 0x29, 0xF5, 0xC1, 0x39, 0xDB, 0x10,
- 0x93, 0x3A, 0x52, 0xC6, 0x22, 0x9C, 0xD3, 0x11,
- 0x08, 0xF0, 0x83, 0xFB, 0x0C, 0x85, 0xCF, 0x52,
- 0x83, 0x1B, 0x5A, 0x05, 0xF2, 0x55, 0x0A, 0x77,
- 0xB5, 0x70, 0x3C, 0xC6, 0x68, 0x91, 0x2D, 0xBC
- },
- {
- 0xD1, 0x7F, 0xCA, 0xD4, 0xE0, 0xD8, 0xBD, 0xE2,
- 0xED, 0xFD, 0xA1, 0x68, 0xBA, 0x47, 0x10, 0x4B,
- 0xBC, 0xA4, 0xD2, 0x6D, 0xA2, 0xD3, 0x1A, 0x07,
- 0x0B, 0x0F, 0xBA, 0x0B, 0x26, 0xEE, 0xDD, 0x95,
- 0xEE, 0xC1, 0xFC, 0x34, 0xD7, 0x6C, 0xD4, 0xA1,
- 0xCB, 0x15, 0xF2, 0x62, 0x16, 0x88, 0xA9, 0xCC,
- 0x0E, 0x96, 0x35, 0x8D, 0xE9, 0x93, 0x22, 0x2B,
- 0xB3, 0xE3, 0xCD, 0x0B, 0xFD, 0xCB, 0x74, 0x6C
- },
- {
- 0xBD, 0x6A, 0x59, 0x21, 0x63, 0x37, 0xB4, 0x5D,
- 0x6B, 0x71, 0xAE, 0xAC, 0x01, 0x36, 0x6B, 0xFE,
- 0x96, 0x60, 0xE0, 0xFB, 0xC2, 0x95, 0x9A, 0xDB,
- 0xB6, 0x8D, 0x52, 0x6C, 0x43, 0xD4, 0x8F, 0xFF,
- 0xFE, 0x2F, 0xFC, 0x43, 0x05, 0x88, 0xE7, 0x8E,
- 0x66, 0x54, 0x6A, 0x3C, 0x70, 0x9B, 0x0A, 0xCE,
- 0xA1, 0x7C, 0xBC, 0x5A, 0x21, 0x8C, 0x53, 0xCD,
- 0x47, 0xAA, 0x48, 0x71, 0xC1, 0xDD, 0x98, 0x4A
- },
- {
- 0x83, 0xEA, 0x5A, 0xE1, 0x89, 0x11, 0x45, 0xC4,
- 0x1A, 0x7C, 0x6C, 0x87, 0xFE, 0x92, 0x24, 0x87,
- 0xF5, 0xD2, 0x82, 0x93, 0x35, 0x69, 0xB7, 0xAE,
- 0x0E, 0x34, 0x56, 0x53, 0x38, 0x1E, 0xDE, 0x6D,
- 0x4B, 0x16, 0xE1, 0x44, 0xD1, 0xC3, 0xE8, 0xF0,
- 0x60, 0x5D, 0xAA, 0x0D, 0xB5, 0x96, 0x5A, 0x7B,
- 0x79, 0xD9, 0x1A, 0x8A, 0xFE, 0x11, 0xF1, 0xE0,
- 0xBC, 0x54, 0x9A, 0xC0, 0x74, 0xA0, 0x1A, 0xB7
- },
- {
- 0x37, 0x50, 0x50, 0xCF, 0x2E, 0x43, 0x0D, 0x0E,
- 0x29, 0x87, 0x58, 0x35, 0x20, 0x8E, 0x89, 0x06,
- 0xD7, 0x05, 0x2E, 0x47, 0x29, 0x2C, 0x5A, 0x38,
- 0xA6, 0x30, 0x82, 0x87, 0x3D, 0x31, 0xD5, 0x83,
- 0x13, 0x5C, 0x07, 0xA2, 0x0C, 0x52, 0xD9, 0x5B,
- 0x2D, 0x5D, 0xC3, 0xEA, 0xDE, 0x6B, 0xE1, 0x43,
- 0xCA, 0x34, 0x38, 0xF4, 0x4D, 0x02, 0x0A, 0xAE,
- 0x16, 0x0E, 0xD7, 0x7A, 0xB9, 0x88, 0x4F, 0x7D
- },
- {
- 0x30, 0x28, 0xB0, 0xE8, 0x24, 0x95, 0x7F, 0xF3,
- 0xB3, 0x05, 0xE9, 0x7F, 0xF5, 0x92, 0xAA, 0x8E,
- 0xF2, 0x9B, 0x3B, 0xEC, 0x1D, 0xC4, 0x7B, 0x76,
- 0x13, 0x3D, 0x10, 0x3F, 0xFE, 0x38, 0x71, 0xBF,
- 0x05, 0x12, 0xA2, 0x31, 0xAF, 0xCB, 0x1D, 0xF8,
- 0x65, 0x97, 0xEC, 0x5E, 0x46, 0xE9, 0x23, 0xC8,
- 0xB9, 0x85, 0xC2, 0x85, 0x08, 0x57, 0xC6, 0x40,
- 0x01, 0xB2, 0xC5, 0x51, 0xEA, 0x83, 0x3D, 0x0E
- },
- {
- 0x08, 0x7C, 0xCB, 0x1E, 0x5B, 0xD1, 0x72, 0x22,
- 0xB8, 0xAF, 0x20, 0x6D, 0xD6, 0x39, 0x08, 0xF8,
- 0x91, 0x72, 0x97, 0x62, 0x1A, 0x8C, 0xB9, 0x33,
- 0x0A, 0xE0, 0xBA, 0x4A, 0xF3, 0xE9, 0xD6, 0x0C,
- 0x98, 0xFC, 0xF1, 0xEF, 0xFC, 0xEC, 0x20, 0x13,
- 0x6B, 0x4F, 0x91, 0x88, 0x12, 0x6D, 0xFA, 0x04,
- 0x4E, 0x1C, 0x1C, 0xCD, 0xA3, 0xCE, 0xD8, 0x73,
- 0x73, 0xD9, 0x37, 0x9C, 0xCB, 0xED, 0xBD, 0xB3
- },
- {
- 0x7F, 0x17, 0x06, 0x24, 0x98, 0xBF, 0xA2, 0xBB,
- 0x58, 0x56, 0xCD, 0x0A, 0x62, 0xC5, 0x68, 0xC5,
- 0xC6, 0xB8, 0x97, 0x43, 0x24, 0x74, 0xEF, 0xB2,
- 0xE6, 0xA2, 0xEE, 0x18, 0xCA, 0xFF, 0xD2, 0x1E,
- 0x1E, 0xF3, 0x0D, 0x06, 0x47, 0x23, 0x85, 0x0F,
- 0x79, 0x90, 0xD2, 0x1B, 0xA3, 0x4E, 0x8F, 0x2B,
- 0x3B, 0xB0, 0x67, 0x02, 0x3A, 0x77, 0x27, 0x82,
- 0x15, 0x8A, 0x27, 0xC6, 0xC4, 0x67, 0xC9, 0x28
- },
- {
- 0x6B, 0xA9, 0x86, 0xA9, 0x42, 0x49, 0x7F, 0xD3,
- 0x84, 0x62, 0x97, 0x2F, 0x50, 0xA6, 0x19, 0x68,
- 0xC0, 0x65, 0x2D, 0xAC, 0x56, 0xCE, 0x9B, 0x9A,
- 0xC1, 0xBC, 0x06, 0x1A, 0xB6, 0x34, 0xFE, 0x5A,
- 0x77, 0xAC, 0xD0, 0x27, 0x5F, 0x83, 0x96, 0xE3,
- 0xC0, 0xBE, 0xF0, 0x12, 0xAE, 0x93, 0xB7, 0x27,
- 0x58, 0xB8, 0xD7, 0x67, 0x9C, 0x87, 0xE8, 0x47,
- 0xE6, 0x30, 0x17, 0xB5, 0x5A, 0x69, 0xC5, 0xC6
- },
- {
- 0x96, 0x7C, 0x81, 0xF5, 0x61, 0x95, 0x18, 0x33,
- 0xFA, 0x56, 0x6F, 0x6B, 0x36, 0x07, 0x7E, 0xAD,
- 0xB2, 0xA6, 0x15, 0xCC, 0x15, 0xF0, 0xED, 0xBB,
- 0xAE, 0x4F, 0x84, 0x4D, 0xDC, 0x8E, 0x9C, 0x1F,
- 0xB8, 0x3D, 0x31, 0xA9, 0x3F, 0xCB, 0x17, 0x74,
- 0xD7, 0x40, 0xD6, 0x92, 0x08, 0xCA, 0x59, 0x30,
- 0xBC, 0xFA, 0xC4, 0xA1, 0xF9, 0x44, 0x46, 0x9F,
- 0xEF, 0xD1, 0x9B, 0x6E, 0x93, 0x75, 0xE0, 0xB5
- },
- {
- 0xE8, 0xAE, 0xF1, 0x78, 0xE6, 0xDA, 0x3E, 0xF5,
- 0xCA, 0xED, 0x65, 0x30, 0xF7, 0xEB, 0x25, 0x60,
- 0x82, 0x56, 0xC2, 0x37, 0x7C, 0x4C, 0xF9, 0x6B,
- 0x0C, 0xFD, 0x0D, 0x76, 0xEE, 0xB4, 0xBB, 0x86,
- 0xEE, 0xFF, 0x7B, 0x7D, 0xF1, 0x58, 0x5C, 0x8D,
- 0x7A, 0x20, 0xC0, 0x63, 0x3A, 0x67, 0x90, 0x7F,
- 0x6D, 0x28, 0x67, 0xC3, 0x26, 0x4A, 0x91, 0xC0,
- 0x51, 0xAB, 0xAE, 0x6E, 0xEA, 0x5A, 0x91, 0xD8
- },
- {
- 0x64, 0x81, 0xDC, 0xC8, 0x15, 0x7A, 0xE6, 0x28,
- 0xB5, 0xCD, 0x52, 0x6B, 0xAC, 0x8F, 0x93, 0x31,
- 0x56, 0xDE, 0xDA, 0xC9, 0x56, 0xA2, 0xB2, 0x2A,
- 0x97, 0x4B, 0xF5, 0xF7, 0xEC, 0x2D, 0xB5, 0x80,
- 0x6F, 0x53, 0xDD, 0x0E, 0x2D, 0xD5, 0x3D, 0xB8,
- 0x7C, 0xD8, 0xF5, 0x8A, 0x58, 0x6F, 0x9B, 0x3C,
- 0x5C, 0x52, 0x23, 0x31, 0xA3, 0x11, 0x74, 0xC4,
- 0xE7, 0xB9, 0xB6, 0xF7, 0xF0, 0x57, 0xC2, 0x8F
- },
- {
- 0xA7, 0x1E, 0xA4, 0x5C, 0xE6, 0x61, 0x6A, 0x3D,
- 0x2F, 0x0A, 0x59, 0x2D, 0x5D, 0x02, 0x86, 0x93,
- 0x2D, 0xA6, 0x3C, 0x6D, 0xB1, 0x1D, 0x59, 0xC6,
- 0x69, 0x1C, 0x35, 0xA5, 0x6F, 0x7E, 0xE4, 0xF8,
- 0x0B, 0x6F, 0xC3, 0x40, 0xB4, 0xDB, 0xC1, 0x84,
- 0x4C, 0x50, 0x40, 0xE6, 0x68, 0xD2, 0x89, 0x2F,
- 0x4A, 0x4A, 0xE8, 0x53, 0x3F, 0x1B, 0x67, 0x71,
- 0xBC, 0xFC, 0xE7, 0xC3, 0xA2, 0x3E, 0x0D, 0x97
- },
- {
- 0x96, 0x93, 0x44, 0x87, 0x70, 0xFE, 0xAE, 0x42,
- 0x17, 0x26, 0xEB, 0x20, 0x3B, 0x01, 0xC7, 0x08,
- 0x23, 0xD5, 0xF4, 0x4C, 0xC5, 0x21, 0x3E, 0x6A,
- 0x68, 0x28, 0x47, 0x29, 0xBD, 0x11, 0x7D, 0x9B,
- 0xD1, 0x8F, 0xEC, 0x4A, 0x0A, 0x82, 0x4A, 0x24,
- 0x08, 0x0F, 0x29, 0x8B, 0xAC, 0xD2, 0x96, 0xD7,
- 0xB4, 0x97, 0x83, 0x8F, 0xBD, 0x7B, 0x0D, 0x57,
- 0x5C, 0x52, 0x49, 0x2B, 0x3E, 0x6F, 0x92, 0x6B
- },
- {
- 0x37, 0xA1, 0x50, 0x66, 0xF2, 0xB9, 0xF9, 0x4C,
- 0x24, 0x61, 0x1B, 0xC4, 0x53, 0xED, 0x02, 0x74,
- 0x07, 0x8D, 0x1F, 0x70, 0xB2, 0xD3, 0x4C, 0x8B,
- 0x96, 0x36, 0x08, 0x48, 0x9D, 0xCB, 0xE8, 0xDF,
- 0x44, 0x8E, 0xDD, 0x9C, 0x73, 0x36, 0x2B, 0xB2,
- 0xB6, 0x6B, 0xEE, 0xF6, 0x1F, 0xCE, 0x60, 0x10,
- 0x6F, 0x70, 0x19, 0xED, 0x37, 0x3C, 0x69, 0x22,
- 0x59, 0xD9, 0x55, 0x6A, 0x94, 0x0B, 0x1A, 0x06
- },
- {
- 0xBD, 0x44, 0xE7, 0x39, 0xE1, 0xF9, 0xDB, 0x1C,
- 0x6B, 0xAF, 0x42, 0xCA, 0x4A, 0x12, 0xAC, 0x09,
- 0x9B, 0x96, 0xF6, 0xB3, 0x6C, 0x4B, 0xCB, 0x1B,
- 0x72, 0xEE, 0xFF, 0x08, 0xA6, 0x49, 0x68, 0x35,
- 0xEC, 0x65, 0x15, 0x0B, 0xE8, 0xFE, 0x16, 0xCB,
- 0xE3, 0x27, 0x07, 0xE3, 0x47, 0x54, 0x7D, 0xC5,
- 0xA5, 0x83, 0xD2, 0x65, 0x74, 0x6F, 0xA5, 0x95,
- 0xC5, 0xE7, 0x73, 0x0F, 0xCF, 0x24, 0x58, 0x1E
- },
- {
- 0xFA, 0xB2, 0x03, 0x8E, 0x94, 0x98, 0xA1, 0xC3,
- 0x9E, 0x05, 0x78, 0xA0, 0xA5, 0xEA, 0x6B, 0x44,
- 0xF3, 0xC1, 0xB4, 0x1A, 0xE5, 0x67, 0xF9, 0x91,
- 0x4A, 0x95, 0xB1, 0x31, 0xC4, 0x8D, 0x12, 0x1E,
- 0xCA, 0xCE, 0xA8, 0x95, 0xA0, 0x9B, 0x1D, 0x4E,
- 0x04, 0x42, 0xBE, 0xC9, 0xC5, 0x0C, 0x50, 0xE0,
- 0x0A, 0x9F, 0xAF, 0xEF, 0xFA, 0xE0, 0x70, 0x88,
- 0x4C, 0x26, 0x25, 0xA8, 0xB1, 0xA2, 0x17, 0x26
- },
- {
- 0x05, 0xA1, 0xB7, 0x6B, 0x2F, 0xD5, 0x62, 0x11,
- 0xE0, 0xF2, 0xD7, 0x5A, 0x25, 0x16, 0x54, 0xA7,
- 0x72, 0xF5, 0x5E, 0x18, 0xCA, 0x02, 0x2A, 0xF5,
- 0x2C, 0xB3, 0x30, 0x19, 0x1E, 0x98, 0xA3, 0xB8,
- 0xEB, 0x87, 0xE5, 0x11, 0x7B, 0xAE, 0x58, 0x04,
- 0x4D, 0x94, 0x4C, 0x1F, 0x18, 0x85, 0x45, 0x12,
- 0x25, 0x41, 0x77, 0x35, 0xFC, 0x72, 0xF7, 0x39,
- 0x36, 0x69, 0x3C, 0xFF, 0x45, 0x46, 0x9F, 0x8C
- },
- {
- 0x2A, 0x30, 0xC9, 0x6B, 0xDA, 0xC7, 0x8A, 0x39,
- 0x94, 0xEE, 0xCA, 0xA5, 0xA5, 0x3F, 0x82, 0x7F,
- 0x58, 0xE1, 0x32, 0x31, 0xA0, 0xD1, 0x13, 0x08,
- 0x6C, 0x06, 0xB1, 0xBD, 0xAB, 0xDA, 0x38, 0xD0,
- 0x8F, 0x1A, 0xE2, 0x7D, 0xE2, 0x5F, 0xD2, 0x2E,
- 0xEA, 0x70, 0xC0, 0x5F, 0x01, 0x32, 0xBF, 0x7A,
- 0x50, 0x1C, 0x82, 0xAE, 0x62, 0x15, 0xBF, 0xEF,
- 0x3C, 0x01, 0x63, 0x98, 0xBA, 0xF2, 0xCB, 0x62
- },
- {
- 0x48, 0xDB, 0x53, 0x76, 0x5B, 0x82, 0xBD, 0x6F,
- 0x25, 0x33, 0xEA, 0xE1, 0x7F, 0x67, 0x69, 0xD7,
- 0xA4, 0xE3, 0xB2, 0x43, 0x74, 0x60, 0x1C, 0xDD,
- 0x8E, 0xC0, 0xCA, 0x3A, 0xAB, 0x30, 0x93, 0xFD,
- 0x2B, 0x99, 0x24, 0x38, 0x46, 0x0B, 0xAF, 0x8D,
- 0xA5, 0x8F, 0xB9, 0xA8, 0x9B, 0x2C, 0x58, 0xF9,
- 0x68, 0xE6, 0x36, 0x17, 0xCB, 0xEB, 0x18, 0x44,
- 0xB0, 0x2D, 0x6A, 0x27, 0xC5, 0xB4, 0xAD, 0x41
- },
- {
- 0x5C, 0x8B, 0x2E, 0x0E, 0x1B, 0x5C, 0x8F, 0x45,
- 0x7D, 0x7F, 0x7B, 0xD9, 0xF0, 0x5A, 0x97, 0xE5,
- 0x8D, 0xDA, 0x1D, 0x28, 0xDB, 0x9F, 0x34, 0xD1,
- 0xCE, 0x73, 0x25, 0x28, 0xF9, 0x68, 0xBE, 0xDD,
- 0x9E, 0x1C, 0xC9, 0x35, 0x2D, 0x0A, 0x5D, 0xF6,
- 0x67, 0x29, 0x28, 0xBD, 0xD3, 0xEA, 0x6F, 0x5C,
- 0xB0, 0x60, 0x77, 0xCF, 0x3A, 0xD3, 0xA7, 0x6E,
- 0x29, 0xB2, 0x2E, 0x82, 0xBA, 0xC6, 0x7B, 0x61
- },
- {
- 0x5B, 0x73, 0x91, 0xAA, 0x52, 0xF2, 0x76, 0xFA,
- 0xB9, 0xC1, 0x38, 0x77, 0xF1, 0x22, 0x32, 0x70,
- 0x84, 0x97, 0xFC, 0x02, 0x8F, 0xAA, 0x17, 0x32,
- 0xA5, 0xDB, 0x07, 0x9E, 0x7F, 0xE0, 0x73, 0xED,
- 0x0C, 0xC9, 0x52, 0x9C, 0xFC, 0x86, 0x3A, 0x4E,
- 0xCB, 0xA4, 0xDC, 0x2F, 0x1E, 0xA9, 0xF6, 0xBD,
- 0x69, 0x04, 0xF3, 0xA0, 0xC1, 0x07, 0x19, 0x3C,
- 0x5E, 0x71, 0x1C, 0xB9, 0x11, 0xF3, 0x80, 0x25
- },
- {
- 0x1D, 0x5A, 0xF7, 0x0F, 0x09, 0xA5, 0xFC, 0x69,
- 0x16, 0xEF, 0x59, 0xA3, 0x8A, 0x86, 0x92, 0x6D,
- 0xCA, 0xAE, 0x39, 0xA8, 0x95, 0x4D, 0x73, 0xFC,
- 0x80, 0xA3, 0x50, 0x75, 0x1A, 0xDD, 0xA3, 0x8C,
- 0x9D, 0x59, 0x75, 0x06, 0xDC, 0x05, 0xE1, 0xED,
- 0x37, 0xBD, 0x2D, 0xB1, 0x59, 0x0F, 0x99, 0xAA,
- 0x29, 0x6A, 0xEA, 0x13, 0xAB, 0x84, 0x43, 0xD5,
- 0xA9, 0x23, 0x47, 0xFB, 0x85, 0xFC, 0x81, 0x6D
- },
- {
- 0x80, 0xE3, 0x70, 0x92, 0x97, 0xD4, 0x41, 0x14,
- 0xB9, 0xFB, 0xDF, 0x55, 0x67, 0xF0, 0x5F, 0x33,
- 0x00, 0x94, 0xCF, 0x09, 0xF4, 0xC0, 0xEF, 0xCF,
- 0xAC, 0x05, 0x09, 0x5C, 0x36, 0x08, 0x10, 0x77,
- 0x30, 0xC1, 0xAA, 0x07, 0xFF, 0x23, 0x00, 0x25,
- 0x62, 0xC7, 0xE8, 0x41, 0xA9, 0xF5, 0x66, 0x24,
- 0xFF, 0xE2, 0xAB, 0xEC, 0x61, 0x1E, 0xB9, 0xE7,
- 0x3E, 0x1C, 0xCB, 0xD8, 0xF6, 0x2B, 0x11, 0x49
- },
- {
- 0xF9, 0x94, 0x5C, 0x19, 0x06, 0x77, 0x84, 0x61,
- 0x94, 0x13, 0x2B, 0x49, 0x6E, 0xC6, 0x01, 0x2C,
- 0x08, 0x75, 0x0E, 0x02, 0x5F, 0xD5, 0x52, 0xED,
- 0x32, 0x4D, 0x3A, 0x49, 0xD8, 0x63, 0x66, 0xC0,
- 0x3D, 0xCC, 0xDE, 0x8D, 0x5B, 0x5A, 0xC9, 0xA4,
- 0xBC, 0xB7, 0x19, 0x5E, 0x63, 0xBC, 0xAA, 0x93,
- 0x9E, 0x8E, 0xDA, 0x18, 0xF1, 0x16, 0x94, 0xB6,
- 0xFA, 0x69, 0x37, 0x39, 0x3B, 0xFF, 0xDB, 0xF4
- },
- {
- 0x8D, 0x8F, 0x2E, 0xD9, 0xAE, 0x39, 0x80, 0x9A,
- 0xAC, 0xAD, 0x2F, 0xCE, 0xDB, 0xD2, 0xDC, 0xA7,
- 0x30, 0xC7, 0x83, 0xE6, 0x2F, 0xF7, 0x0B, 0x8D,
- 0x3C, 0x53, 0x62, 0xF0, 0x73, 0xF8, 0x34, 0x67,
- 0x19, 0x7D, 0x37, 0x56, 0xB4, 0x45, 0x19, 0x5F,
- 0xE7, 0x52, 0x11, 0x73, 0x64, 0xD9, 0x2C, 0xF4,
- 0x2C, 0x02, 0x6E, 0x40, 0x9D, 0x5F, 0xF7, 0xA9,
- 0x53, 0x3E, 0xAB, 0x78, 0xF1, 0x75, 0x4A, 0x2D
- },
- {
- 0x3A, 0xC9, 0x9A, 0xC5, 0x3A, 0xC4, 0x9A, 0x56,
- 0xFA, 0xA1, 0x86, 0x46, 0xB8, 0xE0, 0x8A, 0x2D,
- 0x35, 0xBE, 0x80, 0xDF, 0x3E, 0xFB, 0xBB, 0xA6,
- 0xBD, 0xA4, 0xAE, 0x90, 0x2B, 0x8D, 0x3E, 0x17,
- 0x0A, 0x7B, 0xE8, 0x60, 0x5C, 0x34, 0xA4, 0xDC,
- 0x9A, 0x73, 0x62, 0xB1, 0xC2, 0x01, 0xD7, 0x02,
- 0x39, 0x1B, 0xD7, 0xD5, 0x20, 0x7F, 0x95, 0xFA,
- 0x39, 0x0C, 0xE3, 0x3C, 0x43, 0x14, 0xD4, 0x11
- },
- {
- 0xE4, 0x69, 0x4B, 0xDB, 0x31, 0x01, 0x6F, 0x25,
- 0x53, 0x2C, 0x04, 0x3C, 0x5C, 0x63, 0x08, 0xCC,
- 0x61, 0x9B, 0x0F, 0x87, 0x16, 0xF0, 0xC2, 0x9E,
- 0xEB, 0x9F, 0x34, 0x0F, 0x47, 0xB0, 0x7B, 0x4A,
- 0x4C, 0xE0, 0x98, 0x4C, 0x47, 0x24, 0xB1, 0x2A,
- 0xB3, 0xD3, 0x2A, 0xF5, 0x16, 0xAD, 0xA2, 0x64,
- 0x4C, 0xA6, 0x55, 0x8C, 0x1C, 0xB5, 0x81, 0x5C,
- 0x12, 0x12, 0xA9, 0xB5, 0xFA, 0x83, 0x44, 0x12
- },
- {
- 0xC6, 0x3C, 0x70, 0x3E, 0x62, 0x10, 0x8A, 0xA0,
- 0xED, 0xC6, 0x83, 0xF3, 0x67, 0x8A, 0x00, 0x78,
- 0x8F, 0xB1, 0x00, 0xC0, 0x96, 0x0B, 0x4E, 0x98,
- 0xB7, 0x6A, 0x48, 0xE4, 0xE5, 0x92, 0x3D, 0x34,
- 0x13, 0x44, 0x8D, 0xB8, 0x87, 0x5E, 0x3B, 0xCE,
- 0xA7, 0xB6, 0xB8, 0x5D, 0x9E, 0x3E, 0xEA, 0xB7,
- 0x2C, 0xD1, 0x50, 0x96, 0xFB, 0xBB, 0x2C, 0xC4,
- 0x27, 0x03, 0x17, 0xFC, 0x34, 0xD4, 0x04, 0x71
- },
- {
- 0x90, 0x80, 0xB7, 0xE8, 0x41, 0xEF, 0x51, 0x9C,
- 0x54, 0x17, 0xE6, 0x90, 0xAA, 0xF4, 0x32, 0x79,
- 0x07, 0xA8, 0x3D, 0xBC, 0xB7, 0x38, 0xD0, 0xF7,
- 0x30, 0x8B, 0x1D, 0x61, 0x1D, 0xEF, 0x16, 0x9A,
- 0x4F, 0x47, 0x42, 0x3E, 0x69, 0x0F, 0x27, 0xA7,
- 0xE2, 0x74, 0x1A, 0xE7, 0x86, 0x5D, 0xA2, 0x3C,
- 0x5D, 0x3F, 0x13, 0xC3, 0x16, 0x06, 0x3C, 0x7A,
- 0xA1, 0xA9, 0x58, 0xE5, 0xBE, 0x83, 0x8F, 0x04
- },
- {
- 0x29, 0x8D, 0xF6, 0x46, 0x91, 0x5F, 0x04, 0xD6,
- 0x65, 0xE9, 0x67, 0x5E, 0x6A, 0x10, 0x31, 0x87,
- 0x0D, 0x28, 0xEB, 0x7A, 0x04, 0x05, 0x66, 0x3E,
- 0xAC, 0x3B, 0x10, 0xD1, 0xB4, 0xFA, 0x2E, 0x86,
- 0x8E, 0x63, 0x73, 0xA5, 0x86, 0xCD, 0x73, 0xE0,
- 0x6D, 0x8E, 0x7A, 0xD7, 0x71, 0xB4, 0xFB, 0x0A,
- 0x8B, 0x4F, 0xC2, 0xDC, 0x6C, 0xE0, 0x9C, 0x64,
- 0x2E, 0xE8, 0x99, 0x26, 0xFD, 0xC6, 0x52, 0x60
- },
- {
- 0x4F, 0x2D, 0xE9, 0xC4, 0xF4, 0x34, 0x8B, 0xDB,
- 0x32, 0x3A, 0x66, 0x83, 0x72, 0xE7, 0x71, 0x42,
- 0x99, 0xC7, 0x76, 0xF9, 0x60, 0x2F, 0x3A, 0xF8,
- 0xFB, 0x77, 0x46, 0xF1, 0x76, 0x86, 0x8D, 0xF3,
- 0x54, 0x2B, 0x2F, 0xA6, 0x9E, 0xAE, 0x38, 0xB6,
- 0xA2, 0x6A, 0x06, 0xCA, 0x89, 0x42, 0xF8, 0x82,
- 0x78, 0xC6, 0x4E, 0x3D, 0x01, 0x7F, 0xEE, 0x67,
- 0xA9, 0x4E, 0xA0, 0x23, 0xB2, 0xB5, 0xBE, 0x5F
- },
- {
- 0x40, 0x18, 0xC5, 0xEE, 0x90, 0x93, 0xA6, 0x81,
- 0x11, 0x2F, 0x4C, 0xE1, 0x93, 0xA1, 0xD6, 0x5E,
- 0x05, 0x48, 0x72, 0x5F, 0x96, 0xAE, 0x31, 0x53,
- 0x87, 0xCD, 0x76, 0x5C, 0x2B, 0x9C, 0x30, 0x68,
- 0xAE, 0x4C, 0xBE, 0x5C, 0xD5, 0x40, 0x2C, 0x11,
- 0xC5, 0x5A, 0x9D, 0x78, 0x5F, 0xFD, 0xFC, 0x2B,
- 0xDE, 0x6E, 0x7A, 0xCF, 0x19, 0x61, 0x74, 0x75,
- 0xDA, 0xE0, 0xEB, 0x01, 0x44, 0x56, 0xCE, 0x45
- },
- {
- 0x6F, 0xCE, 0x66, 0x75, 0xE8, 0x6D, 0x7E, 0x85,
- 0x70, 0x4C, 0x96, 0xC2, 0x95, 0x70, 0x3C, 0xD9,
- 0x54, 0x98, 0x59, 0x0E, 0x50, 0x76, 0x4D, 0x23,
- 0xD7, 0xA7, 0xA3, 0xA3, 0x22, 0x68, 0xA0, 0xB3,
- 0xC9, 0x91, 0xE8, 0xF7, 0x84, 0x87, 0x69, 0x9A,
- 0x55, 0x4B, 0x58, 0x1E, 0x33, 0x9C, 0x09, 0xAE,
- 0xC9, 0x82, 0xE0, 0xBA, 0xA4, 0x31, 0x87, 0x93,
- 0x62, 0x06, 0x35, 0xE1, 0xE2, 0xC8, 0xD9, 0xF2
- },
- {
- 0xEB, 0xA9, 0x37, 0x85, 0x91, 0x97, 0xC7, 0xFD,
- 0x41, 0x2D, 0xBC, 0x9A, 0xFC, 0x0D, 0x67, 0xCC,
- 0x19, 0x81, 0x60, 0xB5, 0xA9, 0xCC, 0xEE, 0x87,
- 0xC4, 0x1A, 0x86, 0x64, 0x85, 0x9F, 0x3E, 0xFD,
- 0x96, 0x13, 0x66, 0xA8, 0x09, 0xC7, 0xC6, 0xBC,
- 0x6F, 0xA8, 0x44, 0x92, 0x68, 0x14, 0xE0, 0xB4,
- 0xEF, 0xA3, 0x7E, 0xDE, 0x2C, 0x88, 0x44, 0x26,
- 0x8D, 0x7F, 0x35, 0x56, 0xE4, 0x46, 0x58, 0x1D
- },
- {
- 0x83, 0xF4, 0x33, 0xE4, 0xF1, 0xC5, 0x07, 0x97,
- 0x49, 0x3C, 0x58, 0xC2, 0x64, 0xCF, 0xFA, 0x70,
- 0xC4, 0xA7, 0xA2, 0x4C, 0x33, 0x4D, 0xBA, 0xA3,
- 0xC5, 0x74, 0x89, 0xD9, 0x70, 0xD4, 0x9D, 0x69,
- 0x49, 0xFE, 0x45, 0xB7, 0x04, 0xF2, 0x65, 0xEF,
- 0xD2, 0xAE, 0xE1, 0xAC, 0x1B, 0x46, 0xF4, 0xAA,
- 0x3E, 0x4F, 0xAD, 0x68, 0xB3, 0x79, 0x61, 0xD2,
- 0xC7, 0x28, 0x0A, 0xE1, 0x96, 0x72, 0xC8, 0x50
- },
- {
- 0xB5, 0x57, 0xEC, 0xE1, 0x22, 0x72, 0x49, 0x3D,
- 0xC2, 0x7E, 0x88, 0xA0, 0x5A, 0xDC, 0xD8, 0x61,
- 0x87, 0x5A, 0x0C, 0xD0, 0x0B, 0xD6, 0x8A, 0xDC,
- 0x3A, 0x30, 0x1D, 0x26, 0x3A, 0x9C, 0xD9, 0x93,
- 0xA9, 0x6A, 0xE1, 0x4C, 0xFC, 0xDD, 0xCB, 0x99,
- 0x7C, 0xC9, 0x86, 0x23, 0x93, 0x50, 0x50, 0xEA,
- 0x43, 0x55, 0x2A, 0x34, 0x11, 0x07, 0x18, 0x7D,
- 0xE7, 0x5C, 0x4E, 0xDE, 0xD7, 0xC7, 0x86, 0xBD
- },
- {
- 0x95, 0x89, 0xC0, 0x81, 0x3B, 0x73, 0x93, 0xDB,
- 0xAA, 0xAF, 0xE4, 0x7A, 0xF5, 0xB4, 0x08, 0xB2,
- 0x3C, 0x8A, 0x8C, 0x8B, 0xAC, 0x62, 0x55, 0x4B,
- 0x8F, 0xA1, 0x32, 0xA3, 0x58, 0xCE, 0x30, 0x83,
- 0xB1, 0xD4, 0xE3, 0x97, 0x07, 0xCD, 0x54, 0xA5,
- 0x5F, 0x67, 0x3D, 0x48, 0x11, 0x6E, 0xB1, 0xF9,
- 0xED, 0x8D, 0xE9, 0xC9, 0x43, 0xCD, 0x2D, 0xE4,
- 0x60, 0xA6, 0x8B, 0xDD, 0xF7, 0x1E, 0x98, 0x03
- },
- {
- 0xAE, 0x4C, 0xCF, 0x27, 0xAB, 0x00, 0xA4, 0x0C,
- 0x36, 0x37, 0xD3, 0xD2, 0xCE, 0x51, 0xA8, 0x3E,
- 0xFB, 0xA6, 0x2D, 0x4A, 0x6F, 0xDA, 0xD6, 0x95,
- 0x06, 0x3F, 0xBC, 0x60, 0xA2, 0xD8, 0x2E, 0xC5,
- 0xA5, 0x4A, 0xCB, 0xE0, 0x9B, 0xA9, 0x38, 0x8F,
- 0x49, 0xAA, 0xC2, 0x7C, 0x99, 0x2D, 0x84, 0x63,
- 0x20, 0x36, 0xE1, 0xBD, 0xD4, 0xC5, 0x29, 0xBB,
- 0xF1, 0x85, 0x1E, 0xAE, 0x0C, 0x6E, 0xA9, 0x02
- },
- {
- 0xA3, 0x94, 0x4B, 0x2C, 0x31, 0xCB, 0x49, 0x40,
- 0x80, 0xB7, 0xEE, 0x1D, 0xB0, 0x81, 0x68, 0x53,
- 0xE4, 0x25, 0xB5, 0x4C, 0x48, 0xD6, 0x31, 0x44,
- 0x7E, 0xA5, 0x2C, 0x1D, 0x29, 0x52, 0x07, 0x9B,
- 0xD8, 0x8F, 0xAB, 0x9E, 0xD0, 0xB7, 0xD8, 0xC0,
- 0xBA, 0xAF, 0x0C, 0x4E, 0xCA, 0x19, 0x10, 0xDB,
- 0x6F, 0x98, 0x53, 0x4F, 0x0D, 0x42, 0xE5, 0xEB,
- 0xB6, 0xC0, 0xA7, 0x5E, 0xF0, 0xD8, 0xB2, 0xC0
- },
- {
- 0xCF, 0xA1, 0xA2, 0x24, 0x68, 0x5A, 0x5F, 0xB2,
- 0x01, 0x04, 0x58, 0x20, 0x1C, 0xEB, 0x0C, 0xDA,
- 0x21, 0xC8, 0x2B, 0x16, 0x02, 0xDC, 0x41, 0x35,
- 0x85, 0xFB, 0xCE, 0x80, 0x97, 0x6F, 0x06, 0x1C,
- 0x23, 0x5B, 0x13, 0x67, 0x71, 0x24, 0x98, 0x14,
- 0x4A, 0xC1, 0x6A, 0x98, 0x54, 0xF6, 0xFB, 0x32,
- 0x3C, 0xBE, 0xB6, 0x23, 0x69, 0xCF, 0x9B, 0x75,
- 0x2B, 0x92, 0x52, 0xA2, 0xA7, 0xAC, 0xE1, 0xFD
- },
- {
- 0xFA, 0x62, 0xC6, 0xCF, 0xC8, 0xF0, 0x79, 0xE5,
- 0x8F, 0x3D, 0x3F, 0xEF, 0xD7, 0xC2, 0x24, 0xE7,
- 0x1E, 0xBC, 0x69, 0xA9, 0x5B, 0x18, 0x35, 0xCC,
- 0xC3, 0x2F, 0x35, 0x07, 0x77, 0x05, 0x11, 0x02,
- 0x61, 0x54, 0x92, 0xD6, 0x7F, 0xB6, 0xDE, 0x62,
- 0xCF, 0x2A, 0xD5, 0xB1, 0x84, 0x67, 0xFE, 0x87,
- 0x15, 0x74, 0x88, 0x82, 0xDB, 0x89, 0xFF, 0x86,
- 0xEF, 0xDF, 0x2F, 0x96, 0xF8, 0x13, 0x5E, 0xD2
- },
- {
- 0xCC, 0x63, 0x3F, 0xD4, 0xEA, 0x6A, 0xC4, 0x08,
- 0xC3, 0x87, 0x57, 0x56, 0xB9, 0x01, 0x28, 0x8A,
- 0x1D, 0xE1, 0x91, 0x89, 0x28, 0x32, 0xBE, 0x2E,
- 0x90, 0x26, 0xDC, 0x65, 0xC2, 0xFF, 0x00, 0x00,
- 0x9F, 0x14, 0x36, 0xDD, 0xFF, 0x42, 0x06, 0x26,
- 0x0A, 0x3D, 0x66, 0xEF, 0x61, 0x92, 0x14, 0x3E,
- 0x57, 0x2F, 0x1E, 0x4B, 0xB8, 0xE5, 0xA7, 0x4B,
- 0x12, 0x05, 0x5E, 0x42, 0x41, 0x1C, 0x18, 0xBC
- },
- {
- 0x44, 0xD2, 0xBF, 0x7F, 0x36, 0x96, 0xB8, 0x93,
- 0x3F, 0x25, 0x5B, 0x9B, 0xE1, 0xA4, 0xA6, 0xAE,
- 0x33, 0x16, 0xC2, 0x5D, 0x03, 0x95, 0xF5, 0x90,
- 0xB9, 0xB9, 0x89, 0x8F, 0x12, 0x7E, 0x40, 0xD3,
- 0xF4, 0x12, 0x4D, 0x7B, 0xDB, 0xC8, 0x72, 0x5F,
- 0x00, 0xB0, 0xD2, 0x81, 0x50, 0xFF, 0x05, 0xB4,
- 0xA7, 0x9E, 0x5E, 0x04, 0xE3, 0x4A, 0x47, 0xE9,
- 0x08, 0x7B, 0x3F, 0x79, 0xD4, 0x13, 0xAB, 0x7F
- },
- {
- 0x96, 0xFB, 0xCB, 0xB6, 0x0B, 0xD3, 0x13, 0xB8,
- 0x84, 0x50, 0x33, 0xE5, 0xBC, 0x05, 0x8A, 0x38,
- 0x02, 0x74, 0x38, 0x57, 0x2D, 0x7E, 0x79, 0x57,
- 0xF3, 0x68, 0x4F, 0x62, 0x68, 0xAA, 0xDD, 0x3A,
- 0xD0, 0x8D, 0x21, 0x76, 0x7E, 0xD6, 0x87, 0x86,
- 0x85, 0x33, 0x1B, 0xA9, 0x85, 0x71, 0x48, 0x7E,
- 0x12, 0x47, 0x0A, 0xAD, 0x66, 0x93, 0x26, 0x71,
- 0x6E, 0x46, 0x66, 0x7F, 0x69, 0xF8, 0xD7, 0xE8
- },
-};
-
-
-
-
-#endif
-
-
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+#pragma once
+#ifndef __BLAKE2_KAT_H__
+#define __BLAKE2_KAT_H__
+
+
+#include <stdint.h>
+
+#define KAT_LENGTH 256
+
+
+
+static const uint8_t blake2s_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
+{
+ {
+ 0x69, 0x21, 0x7A, 0x30, 0x79, 0x90, 0x80, 0x94,
+ 0xE1, 0x11, 0x21, 0xD0, 0x42, 0x35, 0x4A, 0x7C,
+ 0x1F, 0x55, 0xB6, 0x48, 0x2C, 0xA1, 0xA5, 0x1E,
+ 0x1B, 0x25, 0x0D, 0xFD, 0x1E, 0xD0, 0xEE, 0xF9
+ },
+ {
+ 0xE3, 0x4D, 0x74, 0xDB, 0xAF, 0x4F, 0xF4, 0xC6,
+ 0xAB, 0xD8, 0x71, 0xCC, 0x22, 0x04, 0x51, 0xD2,
+ 0xEA, 0x26, 0x48, 0x84, 0x6C, 0x77, 0x57, 0xFB,
+ 0xAA, 0xC8, 0x2F, 0xE5, 0x1A, 0xD6, 0x4B, 0xEA
+ },
+ {
+ 0xDD, 0xAD, 0x9A, 0xB1, 0x5D, 0xAC, 0x45, 0x49,
+ 0xBA, 0x42, 0xF4, 0x9D, 0x26, 0x24, 0x96, 0xBE,
+ 0xF6, 0xC0, 0xBA, 0xE1, 0xDD, 0x34, 0x2A, 0x88,
+ 0x08, 0xF8, 0xEA, 0x26, 0x7C, 0x6E, 0x21, 0x0C
+ },
+ {
+ 0xE8, 0xF9, 0x1C, 0x6E, 0xF2, 0x32, 0xA0, 0x41,
+ 0x45, 0x2A, 0xB0, 0xE1, 0x49, 0x07, 0x0C, 0xDD,
+ 0x7D, 0xD1, 0x76, 0x9E, 0x75, 0xB3, 0xA5, 0x92,
+ 0x1B, 0xE3, 0x78, 0x76, 0xC4, 0x5C, 0x99, 0x00
+ },
+ {
+ 0x0C, 0xC7, 0x0E, 0x00, 0x34, 0x8B, 0x86, 0xBA,
+ 0x29, 0x44, 0xD0, 0xC3, 0x20, 0x38, 0xB2, 0x5C,
+ 0x55, 0x58, 0x4F, 0x90, 0xDF, 0x23, 0x04, 0xF5,
+ 0x5F, 0xA3, 0x32, 0xAF, 0x5F, 0xB0, 0x1E, 0x20
+ },
+ {
+ 0xEC, 0x19, 0x64, 0x19, 0x10, 0x87, 0xA4, 0xFE,
+ 0x9D, 0xF1, 0xC7, 0x95, 0x34, 0x2A, 0x02, 0xFF,
+ 0xC1, 0x91, 0xA5, 0xB2, 0x51, 0x76, 0x48, 0x56,
+ 0xAE, 0x5B, 0x8B, 0x57, 0x69, 0xF0, 0xC6, 0xCD
+ },
+ {
+ 0xE1, 0xFA, 0x51, 0x61, 0x8D, 0x7D, 0xF4, 0xEB,
+ 0x70, 0xCF, 0x0D, 0x5A, 0x9E, 0x90, 0x6F, 0x80,
+ 0x6E, 0x9D, 0x19, 0xF7, 0xF4, 0xF0, 0x1E, 0x3B,
+ 0x62, 0x12, 0x88, 0xE4, 0x12, 0x04, 0x05, 0xD6
+ },
+ {
+ 0x59, 0x80, 0x01, 0xFA, 0xFB, 0xE8, 0xF9, 0x4E,
+ 0xC6, 0x6D, 0xC8, 0x27, 0xD0, 0x12, 0xCF, 0xCB,
+ 0xBA, 0x22, 0x28, 0x56, 0x9F, 0x44, 0x8E, 0x89,
+ 0xEA, 0x22, 0x08, 0xC8, 0xBF, 0x76, 0x92, 0x93
+ },
+ {
+ 0xC7, 0xE8, 0x87, 0xB5, 0x46, 0x62, 0x36, 0x35,
+ 0xE9, 0x3E, 0x04, 0x95, 0x59, 0x8F, 0x17, 0x26,
+ 0x82, 0x19, 0x96, 0xC2, 0x37, 0x77, 0x05, 0xB9,
+ 0x3A, 0x1F, 0x63, 0x6F, 0x87, 0x2B, 0xFA, 0x2D
+ },
+ {
+ 0xC3, 0x15, 0xA4, 0x37, 0xDD, 0x28, 0x06, 0x2A,
+ 0x77, 0x0D, 0x48, 0x19, 0x67, 0x13, 0x6B, 0x1B,
+ 0x5E, 0xB8, 0x8B, 0x21, 0xEE, 0x53, 0xD0, 0x32,
+ 0x9C, 0x58, 0x97, 0x12, 0x6E, 0x9D, 0xB0, 0x2C
+ },
+ {
+ 0xBB, 0x47, 0x3D, 0xED, 0xDC, 0x05, 0x5F, 0xEA,
+ 0x62, 0x28, 0xF2, 0x07, 0xDA, 0x57, 0x53, 0x47,
+ 0xBB, 0x00, 0x40, 0x4C, 0xD3, 0x49, 0xD3, 0x8C,
+ 0x18, 0x02, 0x63, 0x07, 0xA2, 0x24, 0xCB, 0xFF
+ },
+ {
+ 0x68, 0x7E, 0x18, 0x73, 0xA8, 0x27, 0x75, 0x91,
+ 0xBB, 0x33, 0xD9, 0xAD, 0xF9, 0xA1, 0x39, 0x12,
+ 0xEF, 0xEF, 0xE5, 0x57, 0xCA, 0xFC, 0x39, 0xA7,
+ 0x95, 0x26, 0x23, 0xE4, 0x72, 0x55, 0xF1, 0x6D
+ },
+ {
+ 0x1A, 0xC7, 0xBA, 0x75, 0x4D, 0x6E, 0x2F, 0x94,
+ 0xE0, 0xE8, 0x6C, 0x46, 0xBF, 0xB2, 0x62, 0xAB,
+ 0xBB, 0x74, 0xF4, 0x50, 0xEF, 0x45, 0x6D, 0x6B,
+ 0x4D, 0x97, 0xAA, 0x80, 0xCE, 0x6D, 0xA7, 0x67
+ },
+ {
+ 0x01, 0x2C, 0x97, 0x80, 0x96, 0x14, 0x81, 0x6B,
+ 0x5D, 0x94, 0x94, 0x47, 0x7D, 0x4B, 0x68, 0x7D,
+ 0x15, 0xB9, 0x6E, 0xB6, 0x9C, 0x0E, 0x80, 0x74,
+ 0xA8, 0x51, 0x6F, 0x31, 0x22, 0x4B, 0x5C, 0x98
+ },
+ {
+ 0x91, 0xFF, 0xD2, 0x6C, 0xFA, 0x4D, 0xA5, 0x13,
+ 0x4C, 0x7E, 0xA2, 0x62, 0xF7, 0x88, 0x9C, 0x32,
+ 0x9F, 0x61, 0xF6, 0xA6, 0x57, 0x22, 0x5C, 0xC2,
+ 0x12, 0xF4, 0x00, 0x56, 0xD9, 0x86, 0xB3, 0xF4
+ },
+ {
+ 0xD9, 0x7C, 0x82, 0x8D, 0x81, 0x82, 0xA7, 0x21,
+ 0x80, 0xA0, 0x6A, 0x78, 0x26, 0x83, 0x30, 0x67,
+ 0x3F, 0x7C, 0x4E, 0x06, 0x35, 0x94, 0x7C, 0x04,
+ 0xC0, 0x23, 0x23, 0xFD, 0x45, 0xC0, 0xA5, 0x2D
+ },
+ {
+ 0xEF, 0xC0, 0x4C, 0xDC, 0x39, 0x1C, 0x7E, 0x91,
+ 0x19, 0xBD, 0x38, 0x66, 0x8A, 0x53, 0x4E, 0x65,
+ 0xFE, 0x31, 0x03, 0x6D, 0x6A, 0x62, 0x11, 0x2E,
+ 0x44, 0xEB, 0xEB, 0x11, 0xF9, 0xC5, 0x70, 0x80
+ },
+ {
+ 0x99, 0x2C, 0xF5, 0xC0, 0x53, 0x44, 0x2A, 0x5F,
+ 0xBC, 0x4F, 0xAF, 0x58, 0x3E, 0x04, 0xE5, 0x0B,
+ 0xB7, 0x0D, 0x2F, 0x39, 0xFB, 0xB6, 0xA5, 0x03,
+ 0xF8, 0x9E, 0x56, 0xA6, 0x3E, 0x18, 0x57, 0x8A
+ },
+ {
+ 0x38, 0x64, 0x0E, 0x9F, 0x21, 0x98, 0x3E, 0x67,
+ 0xB5, 0x39, 0xCA, 0xCC, 0xAE, 0x5E, 0xCF, 0x61,
+ 0x5A, 0xE2, 0x76, 0x4F, 0x75, 0xA0, 0x9C, 0x9C,
+ 0x59, 0xB7, 0x64, 0x83, 0xC1, 0xFB, 0xC7, 0x35
+ },
+ {
+ 0x21, 0x3D, 0xD3, 0x4C, 0x7E, 0xFE, 0x4F, 0xB2,
+ 0x7A, 0x6B, 0x35, 0xF6, 0xB4, 0x00, 0x0D, 0x1F,
+ 0xE0, 0x32, 0x81, 0xAF, 0x3C, 0x72, 0x3E, 0x5C,
+ 0x9F, 0x94, 0x74, 0x7A, 0x5F, 0x31, 0xCD, 0x3B
+ },
+ {
+ 0xEC, 0x24, 0x6E, 0xEE, 0xB9, 0xCE, 0xD3, 0xF7,
+ 0xAD, 0x33, 0xED, 0x28, 0x66, 0x0D, 0xD9, 0xBB,
+ 0x07, 0x32, 0x51, 0x3D, 0xB4, 0xE2, 0xFA, 0x27,
+ 0x8B, 0x60, 0xCD, 0xE3, 0x68, 0x2A, 0x4C, 0xCD
+ },
+ {
+ 0xAC, 0x9B, 0x61, 0xD4, 0x46, 0x64, 0x8C, 0x30,
+ 0x05, 0xD7, 0x89, 0x2B, 0xF3, 0xA8, 0x71, 0x9F,
+ 0x4C, 0x81, 0x81, 0xCF, 0xDC, 0xBC, 0x2B, 0x79,
+ 0xFE, 0xF1, 0x0A, 0x27, 0x9B, 0x91, 0x10, 0x95
+ },
+ {
+ 0x7B, 0xF8, 0xB2, 0x29, 0x59, 0xE3, 0x4E, 0x3A,
+ 0x43, 0xF7, 0x07, 0x92, 0x23, 0xE8, 0x3A, 0x97,
+ 0x54, 0x61, 0x7D, 0x39, 0x1E, 0x21, 0x3D, 0xFD,
+ 0x80, 0x8E, 0x41, 0xB9, 0xBE, 0xAD, 0x4C, 0xE7
+ },
+ {
+ 0x68, 0xD4, 0xB5, 0xD4, 0xFA, 0x0E, 0x30, 0x2B,
+ 0x64, 0xCC, 0xC5, 0xAF, 0x79, 0x29, 0x13, 0xAC,
+ 0x4C, 0x88, 0xEC, 0x95, 0xC0, 0x7D, 0xDF, 0x40,
+ 0x69, 0x42, 0x56, 0xEB, 0x88, 0xCE, 0x9F, 0x3D
+ },
+ {
+ 0xB2, 0xC2, 0x42, 0x0F, 0x05, 0xF9, 0xAB, 0xE3,
+ 0x63, 0x15, 0x91, 0x93, 0x36, 0xB3, 0x7E, 0x4E,
+ 0x0F, 0xA3, 0x3F, 0xF7, 0xE7, 0x6A, 0x49, 0x27,
+ 0x67, 0x00, 0x6F, 0xDB, 0x5D, 0x93, 0x54, 0x62
+ },
+ {
+ 0x13, 0x4F, 0x61, 0xBB, 0xD0, 0xBB, 0xB6, 0x9A,
+ 0xED, 0x53, 0x43, 0x90, 0x45, 0x51, 0xA3, 0xE6,
+ 0xC1, 0xAA, 0x7D, 0xCD, 0xD7, 0x7E, 0x90, 0x3E,
+ 0x70, 0x23, 0xEB, 0x7C, 0x60, 0x32, 0x0A, 0xA7
+ },
+ {
+ 0x46, 0x93, 0xF9, 0xBF, 0xF7, 0xD4, 0xF3, 0x98,
+ 0x6A, 0x7D, 0x17, 0x6E, 0x6E, 0x06, 0xF7, 0x2A,
+ 0xD1, 0x49, 0x0D, 0x80, 0x5C, 0x99, 0xE2, 0x53,
+ 0x47, 0xB8, 0xDE, 0x77, 0xB4, 0xDB, 0x6D, 0x9B
+ },
+ {
+ 0x85, 0x3E, 0x26, 0xF7, 0x41, 0x95, 0x3B, 0x0F,
+ 0xD5, 0xBD, 0xB4, 0x24, 0xE8, 0xAB, 0x9E, 0x8B,
+ 0x37, 0x50, 0xEA, 0xA8, 0xEF, 0x61, 0xE4, 0x79,
+ 0x02, 0xC9, 0x1E, 0x55, 0x4E, 0x9C, 0x73, 0xB9
+ },
+ {
+ 0xF7, 0xDE, 0x53, 0x63, 0x61, 0xAB, 0xAA, 0x0E,
+ 0x15, 0x81, 0x56, 0xCF, 0x0E, 0xA4, 0xF6, 0x3A,
+ 0x99, 0xB5, 0xE4, 0x05, 0x4F, 0x8F, 0xA4, 0xC9,
+ 0xD4, 0x5F, 0x62, 0x85, 0xCA, 0xD5, 0x56, 0x94
+ },
+ {
+ 0x4C, 0x23, 0x06, 0x08, 0x86, 0x0A, 0x99, 0xAE,
+ 0x8D, 0x7B, 0xD5, 0xC2, 0xCC, 0x17, 0xFA, 0x52,
+ 0x09, 0x6B, 0x9A, 0x61, 0xBE, 0xDB, 0x17, 0xCB,
+ 0x76, 0x17, 0x86, 0x4A, 0xD2, 0x9C, 0xA7, 0xA6
+ },
+ {
+ 0xAE, 0xB9, 0x20, 0xEA, 0x87, 0x95, 0x2D, 0xAD,
+ 0xB1, 0xFB, 0x75, 0x92, 0x91, 0xE3, 0x38, 0x81,
+ 0x39, 0xA8, 0x72, 0x86, 0x50, 0x01, 0x88, 0x6E,
+ 0xD8, 0x47, 0x52, 0xE9, 0x3C, 0x25, 0x0C, 0x2A
+ },
+ {
+ 0xAB, 0xA4, 0xAD, 0x9B, 0x48, 0x0B, 0x9D, 0xF3,
+ 0xD0, 0x8C, 0xA5, 0xE8, 0x7B, 0x0C, 0x24, 0x40,
+ 0xD4, 0xE4, 0xEA, 0x21, 0x22, 0x4C, 0x2E, 0xB4,
+ 0x2C, 0xBA, 0xE4, 0x69, 0xD0, 0x89, 0xB9, 0x31
+ },
+ {
+ 0x05, 0x82, 0x56, 0x07, 0xD7, 0xFD, 0xF2, 0xD8,
+ 0x2E, 0xF4, 0xC3, 0xC8, 0xC2, 0xAE, 0xA9, 0x61,
+ 0xAD, 0x98, 0xD6, 0x0E, 0xDF, 0xF7, 0xD0, 0x18,
+ 0x98, 0x3E, 0x21, 0x20, 0x4C, 0x0D, 0x93, 0xD1
+ },
+ {
+ 0xA7, 0x42, 0xF8, 0xB6, 0xAF, 0x82, 0xD8, 0xA6,
+ 0xCA, 0x23, 0x57, 0xC5, 0xF1, 0xCF, 0x91, 0xDE,
+ 0xFB, 0xD0, 0x66, 0x26, 0x7D, 0x75, 0xC0, 0x48,
+ 0xB3, 0x52, 0x36, 0x65, 0x85, 0x02, 0x59, 0x62
+ },
+ {
+ 0x2B, 0xCA, 0xC8, 0x95, 0x99, 0x00, 0x0B, 0x42,
+ 0xC9, 0x5A, 0xE2, 0x38, 0x35, 0xA7, 0x13, 0x70,
+ 0x4E, 0xD7, 0x97, 0x89, 0xC8, 0x4F, 0xEF, 0x14,
+ 0x9A, 0x87, 0x4F, 0xF7, 0x33, 0xF0, 0x17, 0xA2
+ },
+ {
+ 0xAC, 0x1E, 0xD0, 0x7D, 0x04, 0x8F, 0x10, 0x5A,
+ 0x9E, 0x5B, 0x7A, 0xB8, 0x5B, 0x09, 0xA4, 0x92,
+ 0xD5, 0xBA, 0xFF, 0x14, 0xB8, 0xBF, 0xB0, 0xE9,
+ 0xFD, 0x78, 0x94, 0x86, 0xEE, 0xA2, 0xB9, 0x74
+ },
+ {
+ 0xE4, 0x8D, 0x0E, 0xCF, 0xAF, 0x49, 0x7D, 0x5B,
+ 0x27, 0xC2, 0x5D, 0x99, 0xE1, 0x56, 0xCB, 0x05,
+ 0x79, 0xD4, 0x40, 0xD6, 0xE3, 0x1F, 0xB6, 0x24,
+ 0x73, 0x69, 0x6D, 0xBF, 0x95, 0xE0, 0x10, 0xE4
+ },
+ {
+ 0x12, 0xA9, 0x1F, 0xAD, 0xF8, 0xB2, 0x16, 0x44,
+ 0xFD, 0x0F, 0x93, 0x4F, 0x3C, 0x4A, 0x8F, 0x62,
+ 0xBA, 0x86, 0x2F, 0xFD, 0x20, 0xE8, 0xE9, 0x61,
+ 0x15, 0x4C, 0x15, 0xC1, 0x38, 0x84, 0xED, 0x3D
+ },
+ {
+ 0x7C, 0xBE, 0xE9, 0x6E, 0x13, 0x98, 0x97, 0xDC,
+ 0x98, 0xFB, 0xEF, 0x3B, 0xE8, 0x1A, 0xD4, 0xD9,
+ 0x64, 0xD2, 0x35, 0xCB, 0x12, 0x14, 0x1F, 0xB6,
+ 0x67, 0x27, 0xE6, 0xE5, 0xDF, 0x73, 0xA8, 0x78
+ },
+ {
+ 0xEB, 0xF6, 0x6A, 0xBB, 0x59, 0x7A, 0xE5, 0x72,
+ 0xA7, 0x29, 0x7C, 0xB0, 0x87, 0x1E, 0x35, 0x5A,
+ 0xCC, 0xAF, 0xAD, 0x83, 0x77, 0xB8, 0xE7, 0x8B,
+ 0xF1, 0x64, 0xCE, 0x2A, 0x18, 0xDE, 0x4B, 0xAF
+ },
+ {
+ 0x71, 0xB9, 0x33, 0xB0, 0x7E, 0x4F, 0xF7, 0x81,
+ 0x8C, 0xE0, 0x59, 0xD0, 0x08, 0x82, 0x9E, 0x45,
+ 0x3C, 0x6F, 0xF0, 0x2E, 0xC0, 0xA7, 0xDB, 0x39,
+ 0x3F, 0xC2, 0xD8, 0x70, 0xF3, 0x7A, 0x72, 0x86
+ },
+ {
+ 0x7C, 0xF7, 0xC5, 0x13, 0x31, 0x22, 0x0B, 0x8D,
+ 0x3E, 0xBA, 0xED, 0x9C, 0x29, 0x39, 0x8A, 0x16,
+ 0xD9, 0x81, 0x56, 0xE2, 0x61, 0x3C, 0xB0, 0x88,
+ 0xF2, 0xB0, 0xE0, 0x8A, 0x1B, 0xE4, 0xCF, 0x4F
+ },
+ {
+ 0x3E, 0x41, 0xA1, 0x08, 0xE0, 0xF6, 0x4A, 0xD2,
+ 0x76, 0xB9, 0x79, 0xE1, 0xCE, 0x06, 0x82, 0x79,
+ 0xE1, 0x6F, 0x7B, 0xC7, 0xE4, 0xAA, 0x1D, 0x21,
+ 0x1E, 0x17, 0xB8, 0x11, 0x61, 0xDF, 0x16, 0x02
+ },
+ {
+ 0x88, 0x65, 0x02, 0xA8, 0x2A, 0xB4, 0x7B, 0xA8,
+ 0xD8, 0x67, 0x10, 0xAA, 0x9D, 0xE3, 0xD4, 0x6E,
+ 0xA6, 0x5C, 0x47, 0xAF, 0x6E, 0xE8, 0xDE, 0x45,
+ 0x0C, 0xCE, 0xB8, 0xB1, 0x1B, 0x04, 0x5F, 0x50
+ },
+ {
+ 0xC0, 0x21, 0xBC, 0x5F, 0x09, 0x54, 0xFE, 0xE9,
+ 0x4F, 0x46, 0xEA, 0x09, 0x48, 0x7E, 0x10, 0xA8,
+ 0x48, 0x40, 0xD0, 0x2F, 0x64, 0x81, 0x0B, 0xC0,
+ 0x8D, 0x9E, 0x55, 0x1F, 0x7D, 0x41, 0x68, 0x14
+ },
+ {
+ 0x20, 0x30, 0x51, 0x6E, 0x8A, 0x5F, 0xE1, 0x9A,
+ 0xE7, 0x9C, 0x33, 0x6F, 0xCE, 0x26, 0x38, 0x2A,
+ 0x74, 0x9D, 0x3F, 0xD0, 0xEC, 0x91, 0xE5, 0x37,
+ 0xD4, 0xBD, 0x23, 0x58, 0xC1, 0x2D, 0xFB, 0x22
+ },
+ {
+ 0x55, 0x66, 0x98, 0xDA, 0xC8, 0x31, 0x7F, 0xD3,
+ 0x6D, 0xFB, 0xDF, 0x25, 0xA7, 0x9C, 0xB1, 0x12,
+ 0xD5, 0x42, 0x58, 0x60, 0x60, 0x5C, 0xBA, 0xF5,
+ 0x07, 0xF2, 0x3B, 0xF7, 0xE9, 0xF4, 0x2A, 0xFE
+ },
+ {
+ 0x2F, 0x86, 0x7B, 0xA6, 0x77, 0x73, 0xFD, 0xC3,
+ 0xE9, 0x2F, 0xCE, 0xD9, 0x9A, 0x64, 0x09, 0xAD,
+ 0x39, 0xD0, 0xB8, 0x80, 0xFD, 0xE8, 0xF1, 0x09,
+ 0xA8, 0x17, 0x30, 0xC4, 0x45, 0x1D, 0x01, 0x78
+ },
+ {
+ 0x17, 0x2E, 0xC2, 0x18, 0xF1, 0x19, 0xDF, 0xAE,
+ 0x98, 0x89, 0x6D, 0xFF, 0x29, 0xDD, 0x98, 0x76,
+ 0xC9, 0x4A, 0xF8, 0x74, 0x17, 0xF9, 0xAE, 0x4C,
+ 0x70, 0x14, 0xBB, 0x4E, 0x4B, 0x96, 0xAF, 0xC7
+ },
+ {
+ 0x3F, 0x85, 0x81, 0x4A, 0x18, 0x19, 0x5F, 0x87,
+ 0x9A, 0xA9, 0x62, 0xF9, 0x5D, 0x26, 0xBD, 0x82,
+ 0xA2, 0x78, 0xF2, 0xB8, 0x23, 0x20, 0x21, 0x8F,
+ 0x6B, 0x3B, 0xD6, 0xF7, 0xF6, 0x67, 0xA6, 0xD9
+ },
+ {
+ 0x1B, 0x61, 0x8F, 0xBA, 0xA5, 0x66, 0xB3, 0xD4,
+ 0x98, 0xC1, 0x2E, 0x98, 0x2C, 0x9E, 0xC5, 0x2E,
+ 0x4D, 0xA8, 0x5A, 0x8C, 0x54, 0xF3, 0x8F, 0x34,
+ 0xC0, 0x90, 0x39, 0x4F, 0x23, 0xC1, 0x84, 0xC1
+ },
+ {
+ 0x0C, 0x75, 0x8F, 0xB5, 0x69, 0x2F, 0xFD, 0x41,
+ 0xA3, 0x57, 0x5D, 0x0A, 0xF0, 0x0C, 0xC7, 0xFB,
+ 0xF2, 0xCB, 0xE5, 0x90, 0x5A, 0x58, 0x32, 0x3A,
+ 0x88, 0xAE, 0x42, 0x44, 0xF6, 0xE4, 0xC9, 0x93
+ },
+ {
+ 0xA9, 0x31, 0x36, 0x0C, 0xAD, 0x62, 0x8C, 0x7F,
+ 0x12, 0xA6, 0xC1, 0xC4, 0xB7, 0x53, 0xB0, 0xF4,
+ 0x06, 0x2A, 0xEF, 0x3C, 0xE6, 0x5A, 0x1A, 0xE3,
+ 0xF1, 0x93, 0x69, 0xDA, 0xDF, 0x3A, 0xE2, 0x3D
+ },
+ {
+ 0xCB, 0xAC, 0x7D, 0x77, 0x3B, 0x1E, 0x3B, 0x3C,
+ 0x66, 0x91, 0xD7, 0xAB, 0xB7, 0xE9, 0xDF, 0x04,
+ 0x5C, 0x8B, 0xA1, 0x92, 0x68, 0xDE, 0xD1, 0x53,
+ 0x20, 0x7F, 0x5E, 0x80, 0x43, 0x52, 0xEC, 0x5D
+ },
+ {
+ 0x23, 0xA1, 0x96, 0xD3, 0x80, 0x2E, 0xD3, 0xC1,
+ 0xB3, 0x84, 0x01, 0x9A, 0x82, 0x32, 0x58, 0x40,
+ 0xD3, 0x2F, 0x71, 0x95, 0x0C, 0x45, 0x80, 0xB0,
+ 0x34, 0x45, 0xE0, 0x89, 0x8E, 0x14, 0x05, 0x3C
+ },
+ {
+ 0xF4, 0x49, 0x54, 0x70, 0xF2, 0x26, 0xC8, 0xC2,
+ 0x14, 0xBE, 0x08, 0xFD, 0xFA, 0xD4, 0xBC, 0x4A,
+ 0x2A, 0x9D, 0xBE, 0xA9, 0x13, 0x6A, 0x21, 0x0D,
+ 0xF0, 0xD4, 0xB6, 0x49, 0x29, 0xE6, 0xFC, 0x14
+ },
+ {
+ 0xE2, 0x90, 0xDD, 0x27, 0x0B, 0x46, 0x7F, 0x34,
+ 0xAB, 0x1C, 0x00, 0x2D, 0x34, 0x0F, 0xA0, 0x16,
+ 0x25, 0x7F, 0xF1, 0x9E, 0x58, 0x33, 0xFD, 0xBB,
+ 0xF2, 0xCB, 0x40, 0x1C, 0x3B, 0x28, 0x17, 0xDE
+ },
+ {
+ 0x9F, 0xC7, 0xB5, 0xDE, 0xD3, 0xC1, 0x50, 0x42,
+ 0xB2, 0xA6, 0x58, 0x2D, 0xC3, 0x9B, 0xE0, 0x16,
+ 0xD2, 0x4A, 0x68, 0x2D, 0x5E, 0x61, 0xAD, 0x1E,
+ 0xFF, 0x9C, 0x63, 0x30, 0x98, 0x48, 0xF7, 0x06
+ },
+ {
+ 0x8C, 0xCA, 0x67, 0xA3, 0x6D, 0x17, 0xD5, 0xE6,
+ 0x34, 0x1C, 0xB5, 0x92, 0xFD, 0x7B, 0xEF, 0x99,
+ 0x26, 0xC9, 0xE3, 0xAA, 0x10, 0x27, 0xEA, 0x11,
+ 0xA7, 0xD8, 0xBD, 0x26, 0x0B, 0x57, 0x6E, 0x04
+ },
+ {
+ 0x40, 0x93, 0x92, 0xF5, 0x60, 0xF8, 0x68, 0x31,
+ 0xDA, 0x43, 0x73, 0xEE, 0x5E, 0x00, 0x74, 0x26,
+ 0x05, 0x95, 0xD7, 0xBC, 0x24, 0x18, 0x3B, 0x60,
+ 0xED, 0x70, 0x0D, 0x45, 0x83, 0xD3, 0xF6, 0xF0
+ },
+ {
+ 0x28, 0x02, 0x16, 0x5D, 0xE0, 0x90, 0x91, 0x55,
+ 0x46, 0xF3, 0x39, 0x8C, 0xD8, 0x49, 0x16, 0x4A,
+ 0x19, 0xF9, 0x2A, 0xDB, 0xC3, 0x61, 0xAD, 0xC9,
+ 0x9B, 0x0F, 0x20, 0xC8, 0xEA, 0x07, 0x10, 0x54
+ },
+ {
+ 0xAD, 0x83, 0x91, 0x68, 0xD9, 0xF8, 0xA4, 0xBE,
+ 0x95, 0xBA, 0x9E, 0xF9, 0xA6, 0x92, 0xF0, 0x72,
+ 0x56, 0xAE, 0x43, 0xFE, 0x6F, 0x98, 0x64, 0xE2,
+ 0x90, 0x69, 0x1B, 0x02, 0x56, 0xCE, 0x50, 0xA9
+ },
+ {
+ 0x75, 0xFD, 0xAA, 0x50, 0x38, 0xC2, 0x84, 0xB8,
+ 0x6D, 0x6E, 0x8A, 0xFF, 0xE8, 0xB2, 0x80, 0x7E,
+ 0x46, 0x7B, 0x86, 0x60, 0x0E, 0x79, 0xAF, 0x36,
+ 0x89, 0xFB, 0xC0, 0x63, 0x28, 0xCB, 0xF8, 0x94
+ },
+ {
+ 0xE5, 0x7C, 0xB7, 0x94, 0x87, 0xDD, 0x57, 0x90,
+ 0x24, 0x32, 0xB2, 0x50, 0x73, 0x38, 0x13, 0xBD,
+ 0x96, 0xA8, 0x4E, 0xFC, 0xE5, 0x9F, 0x65, 0x0F,
+ 0xAC, 0x26, 0xE6, 0x69, 0x6A, 0xEF, 0xAF, 0xC3
+ },
+ {
+ 0x56, 0xF3, 0x4E, 0x8B, 0x96, 0x55, 0x7E, 0x90,
+ 0xC1, 0xF2, 0x4B, 0x52, 0xD0, 0xC8, 0x9D, 0x51,
+ 0x08, 0x6A, 0xCF, 0x1B, 0x00, 0xF6, 0x34, 0xCF,
+ 0x1D, 0xDE, 0x92, 0x33, 0xB8, 0xEA, 0xAA, 0x3E
+ },
+ {
+ 0x1B, 0x53, 0xEE, 0x94, 0xAA, 0xF3, 0x4E, 0x4B,
+ 0x15, 0x9D, 0x48, 0xDE, 0x35, 0x2C, 0x7F, 0x06,
+ 0x61, 0xD0, 0xA4, 0x0E, 0xDF, 0xF9, 0x5A, 0x0B,
+ 0x16, 0x39, 0xB4, 0x09, 0x0E, 0x97, 0x44, 0x72
+ },
+ {
+ 0x05, 0x70, 0x5E, 0x2A, 0x81, 0x75, 0x7C, 0x14,
+ 0xBD, 0x38, 0x3E, 0xA9, 0x8D, 0xDA, 0x54, 0x4E,
+ 0xB1, 0x0E, 0x6B, 0xC0, 0x7B, 0xAE, 0x43, 0x5E,
+ 0x25, 0x18, 0xDB, 0xE1, 0x33, 0x52, 0x53, 0x75
+ },
+ {
+ 0xD8, 0xB2, 0x86, 0x6E, 0x8A, 0x30, 0x9D, 0xB5,
+ 0x3E, 0x52, 0x9E, 0xC3, 0x29, 0x11, 0xD8, 0x2F,
+ 0x5C, 0xA1, 0x6C, 0xFF, 0x76, 0x21, 0x68, 0x91,
+ 0xA9, 0x67, 0x6A, 0xA3, 0x1A, 0xAA, 0x6C, 0x42
+ },
+ {
+ 0xF5, 0x04, 0x1C, 0x24, 0x12, 0x70, 0xEB, 0x04,
+ 0xC7, 0x1E, 0xC2, 0xC9, 0x5D, 0x4C, 0x38, 0xD8,
+ 0x03, 0xB1, 0x23, 0x7B, 0x0F, 0x29, 0xFD, 0x4D,
+ 0xB3, 0xEB, 0x39, 0x76, 0x69, 0xE8, 0x86, 0x99
+ },
+ {
+ 0x9A, 0x4C, 0xE0, 0x77, 0xC3, 0x49, 0x32, 0x2F,
+ 0x59, 0x5E, 0x0E, 0xE7, 0x9E, 0xD0, 0xDA, 0x5F,
+ 0xAB, 0x66, 0x75, 0x2C, 0xBF, 0xEF, 0x8F, 0x87,
+ 0xD0, 0xE9, 0xD0, 0x72, 0x3C, 0x75, 0x30, 0xDD
+ },
+ {
+ 0x65, 0x7B, 0x09, 0xF3, 0xD0, 0xF5, 0x2B, 0x5B,
+ 0x8F, 0x2F, 0x97, 0x16, 0x3A, 0x0E, 0xDF, 0x0C,
+ 0x04, 0xF0, 0x75, 0x40, 0x8A, 0x07, 0xBB, 0xEB,
+ 0x3A, 0x41, 0x01, 0xA8, 0x91, 0x99, 0x0D, 0x62
+ },
+ {
+ 0x1E, 0x3F, 0x7B, 0xD5, 0xA5, 0x8F, 0xA5, 0x33,
+ 0x34, 0x4A, 0xA8, 0xED, 0x3A, 0xC1, 0x22, 0xBB,
+ 0x9E, 0x70, 0xD4, 0xEF, 0x50, 0xD0, 0x04, 0x53,
+ 0x08, 0x21, 0x94, 0x8F, 0x5F, 0xE6, 0x31, 0x5A
+ },
+ {
+ 0x80, 0xDC, 0xCF, 0x3F, 0xD8, 0x3D, 0xFD, 0x0D,
+ 0x35, 0xAA, 0x28, 0x58, 0x59, 0x22, 0xAB, 0x89,
+ 0xD5, 0x31, 0x39, 0x97, 0x67, 0x3E, 0xAF, 0x90,
+ 0x5C, 0xEA, 0x9C, 0x0B, 0x22, 0x5C, 0x7B, 0x5F
+ },
+ {
+ 0x8A, 0x0D, 0x0F, 0xBF, 0x63, 0x77, 0xD8, 0x3B,
+ 0xB0, 0x8B, 0x51, 0x4B, 0x4B, 0x1C, 0x43, 0xAC,
+ 0xC9, 0x5D, 0x75, 0x17, 0x14, 0xF8, 0x92, 0x56,
+ 0x45, 0xCB, 0x6B, 0xC8, 0x56, 0xCA, 0x15, 0x0A
+ },
+ {
+ 0x9F, 0xA5, 0xB4, 0x87, 0x73, 0x8A, 0xD2, 0x84,
+ 0x4C, 0xC6, 0x34, 0x8A, 0x90, 0x19, 0x18, 0xF6,
+ 0x59, 0xA3, 0xB8, 0x9E, 0x9C, 0x0D, 0xFE, 0xEA,
+ 0xD3, 0x0D, 0xD9, 0x4B, 0xCF, 0x42, 0xEF, 0x8E
+ },
+ {
+ 0x80, 0x83, 0x2C, 0x4A, 0x16, 0x77, 0xF5, 0xEA,
+ 0x25, 0x60, 0xF6, 0x68, 0xE9, 0x35, 0x4D, 0xD3,
+ 0x69, 0x97, 0xF0, 0x37, 0x28, 0xCF, 0xA5, 0x5E,
+ 0x1B, 0x38, 0x33, 0x7C, 0x0C, 0x9E, 0xF8, 0x18
+ },
+ {
+ 0xAB, 0x37, 0xDD, 0xB6, 0x83, 0x13, 0x7E, 0x74,
+ 0x08, 0x0D, 0x02, 0x6B, 0x59, 0x0B, 0x96, 0xAE,
+ 0x9B, 0xB4, 0x47, 0x72, 0x2F, 0x30, 0x5A, 0x5A,
+ 0xC5, 0x70, 0xEC, 0x1D, 0xF9, 0xB1, 0x74, 0x3C
+ },
+ {
+ 0x3E, 0xE7, 0x35, 0xA6, 0x94, 0xC2, 0x55, 0x9B,
+ 0x69, 0x3A, 0xA6, 0x86, 0x29, 0x36, 0x1E, 0x15,
+ 0xD1, 0x22, 0x65, 0xAD, 0x6A, 0x3D, 0xED, 0xF4,
+ 0x88, 0xB0, 0xB0, 0x0F, 0xAC, 0x97, 0x54, 0xBA
+ },
+ {
+ 0xD6, 0xFC, 0xD2, 0x32, 0x19, 0xB6, 0x47, 0xE4,
+ 0xCB, 0xD5, 0xEB, 0x2D, 0x0A, 0xD0, 0x1E, 0xC8,
+ 0x83, 0x8A, 0x4B, 0x29, 0x01, 0xFC, 0x32, 0x5C,
+ 0xC3, 0x70, 0x19, 0x81, 0xCA, 0x6C, 0x88, 0x8B
+ },
+ {
+ 0x05, 0x20, 0xEC, 0x2F, 0x5B, 0xF7, 0xA7, 0x55,
+ 0xDA, 0xCB, 0x50, 0xC6, 0xBF, 0x23, 0x3E, 0x35,
+ 0x15, 0x43, 0x47, 0x63, 0xDB, 0x01, 0x39, 0xCC,
+ 0xD9, 0xFA, 0xEF, 0xBB, 0x82, 0x07, 0x61, 0x2D
+ },
+ {
+ 0xAF, 0xF3, 0xB7, 0x5F, 0x3F, 0x58, 0x12, 0x64,
+ 0xD7, 0x66, 0x16, 0x62, 0xB9, 0x2F, 0x5A, 0xD3,
+ 0x7C, 0x1D, 0x32, 0xBD, 0x45, 0xFF, 0x81, 0xA4,
+ 0xED, 0x8A, 0xDC, 0x9E, 0xF3, 0x0D, 0xD9, 0x89
+ },
+ {
+ 0xD0, 0xDD, 0x65, 0x0B, 0xEF, 0xD3, 0xBA, 0x63,
+ 0xDC, 0x25, 0x10, 0x2C, 0x62, 0x7C, 0x92, 0x1B,
+ 0x9C, 0xBE, 0xB0, 0xB1, 0x30, 0x68, 0x69, 0x35,
+ 0xB5, 0xC9, 0x27, 0xCB, 0x7C, 0xCD, 0x5E, 0x3B
+ },
+ {
+ 0xE1, 0x14, 0x98, 0x16, 0xB1, 0x0A, 0x85, 0x14,
+ 0xFB, 0x3E, 0x2C, 0xAB, 0x2C, 0x08, 0xBE, 0xE9,
+ 0xF7, 0x3C, 0xE7, 0x62, 0x21, 0x70, 0x12, 0x46,
+ 0xA5, 0x89, 0xBB, 0xB6, 0x73, 0x02, 0xD8, 0xA9
+ },
+ {
+ 0x7D, 0xA3, 0xF4, 0x41, 0xDE, 0x90, 0x54, 0x31,
+ 0x7E, 0x72, 0xB5, 0xDB, 0xF9, 0x79, 0xDA, 0x01,
+ 0xE6, 0xBC, 0xEE, 0xBB, 0x84, 0x78, 0xEA, 0xE6,
+ 0xA2, 0x28, 0x49, 0xD9, 0x02, 0x92, 0x63, 0x5C
+ },
+ {
+ 0x12, 0x30, 0xB1, 0xFC, 0x8A, 0x7D, 0x92, 0x15,
+ 0xED, 0xC2, 0xD4, 0xA2, 0xDE, 0xCB, 0xDD, 0x0A,
+ 0x6E, 0x21, 0x6C, 0x92, 0x42, 0x78, 0xC9, 0x1F,
+ 0xC5, 0xD1, 0x0E, 0x7D, 0x60, 0x19, 0x2D, 0x94
+ },
+ {
+ 0x57, 0x50, 0xD7, 0x16, 0xB4, 0x80, 0x8F, 0x75,
+ 0x1F, 0xEB, 0xC3, 0x88, 0x06, 0xBA, 0x17, 0x0B,
+ 0xF6, 0xD5, 0x19, 0x9A, 0x78, 0x16, 0xBE, 0x51,
+ 0x4E, 0x3F, 0x93, 0x2F, 0xBE, 0x0C, 0xB8, 0x71
+ },
+ {
+ 0x6F, 0xC5, 0x9B, 0x2F, 0x10, 0xFE, 0xBA, 0x95,
+ 0x4A, 0xA6, 0x82, 0x0B, 0x3C, 0xA9, 0x87, 0xEE,
+ 0x81, 0xD5, 0xCC, 0x1D, 0xA3, 0xC6, 0x3C, 0xE8,
+ 0x27, 0x30, 0x1C, 0x56, 0x9D, 0xFB, 0x39, 0xCE
+ },
+ {
+ 0xC7, 0xC3, 0xFE, 0x1E, 0xEB, 0xDC, 0x7B, 0x5A,
+ 0x93, 0x93, 0x26, 0xE8, 0xDD, 0xB8, 0x3E, 0x8B,
+ 0xF2, 0xB7, 0x80, 0xB6, 0x56, 0x78, 0xCB, 0x62,
+ 0xF2, 0x08, 0xB0, 0x40, 0xAB, 0xDD, 0x35, 0xE2
+ },
+ {
+ 0x0C, 0x75, 0xC1, 0xA1, 0x5C, 0xF3, 0x4A, 0x31,
+ 0x4E, 0xE4, 0x78, 0xF4, 0xA5, 0xCE, 0x0B, 0x8A,
+ 0x6B, 0x36, 0x52, 0x8E, 0xF7, 0xA8, 0x20, 0x69,
+ 0x6C, 0x3E, 0x42, 0x46, 0xC5, 0xA1, 0x58, 0x64
+ },
+ {
+ 0x21, 0x6D, 0xC1, 0x2A, 0x10, 0x85, 0x69, 0xA3,
+ 0xC7, 0xCD, 0xDE, 0x4A, 0xED, 0x43, 0xA6, 0xC3,
+ 0x30, 0x13, 0x9D, 0xDA, 0x3C, 0xCC, 0x4A, 0x10,
+ 0x89, 0x05, 0xDB, 0x38, 0x61, 0x89, 0x90, 0x50
+ },
+ {
+ 0xA5, 0x7B, 0xE6, 0xAE, 0x67, 0x56, 0xF2, 0x8B,
+ 0x02, 0xF5, 0x9D, 0xAD, 0xF7, 0xE0, 0xD7, 0xD8,
+ 0x80, 0x7F, 0x10, 0xFA, 0x15, 0xCE, 0xD1, 0xAD,
+ 0x35, 0x85, 0x52, 0x1A, 0x1D, 0x99, 0x5A, 0x89
+ },
+ {
+ 0x81, 0x6A, 0xEF, 0x87, 0x59, 0x53, 0x71, 0x6C,
+ 0xD7, 0xA5, 0x81, 0xF7, 0x32, 0xF5, 0x3D, 0xD4,
+ 0x35, 0xDA, 0xB6, 0x6D, 0x09, 0xC3, 0x61, 0xD2,
+ 0xD6, 0x59, 0x2D, 0xE1, 0x77, 0x55, 0xD8, 0xA8
+ },
+ {
+ 0x9A, 0x76, 0x89, 0x32, 0x26, 0x69, 0x3B, 0x6E,
+ 0xA9, 0x7E, 0x6A, 0x73, 0x8F, 0x9D, 0x10, 0xFB,
+ 0x3D, 0x0B, 0x43, 0xAE, 0x0E, 0x8B, 0x7D, 0x81,
+ 0x23, 0xEA, 0x76, 0xCE, 0x97, 0x98, 0x9C, 0x7E
+ },
+ {
+ 0x8D, 0xAE, 0xDB, 0x9A, 0x27, 0x15, 0x29, 0xDB,
+ 0xB7, 0xDC, 0x3B, 0x60, 0x7F, 0xE5, 0xEB, 0x2D,
+ 0x32, 0x11, 0x77, 0x07, 0x58, 0xDD, 0x3B, 0x0A,
+ 0x35, 0x93, 0xD2, 0xD7, 0x95, 0x4E, 0x2D, 0x5B
+ },
+ {
+ 0x16, 0xDB, 0xC0, 0xAA, 0x5D, 0xD2, 0xC7, 0x74,
+ 0xF5, 0x05, 0x10, 0x0F, 0x73, 0x37, 0x86, 0xD8,
+ 0xA1, 0x75, 0xFC, 0xBB, 0xB5, 0x9C, 0x43, 0xE1,
+ 0xFB, 0xFF, 0x3E, 0x1E, 0xAF, 0x31, 0xCB, 0x4A
+ },
+ {
+ 0x86, 0x06, 0xCB, 0x89, 0x9C, 0x6A, 0xEA, 0xF5,
+ 0x1B, 0x9D, 0xB0, 0xFE, 0x49, 0x24, 0xA9, 0xFD,
+ 0x5D, 0xAB, 0xC1, 0x9F, 0x88, 0x26, 0xF2, 0xBC,
+ 0x1C, 0x1D, 0x7D, 0xA1, 0x4D, 0x2C, 0x2C, 0x99
+ },
+ {
+ 0x84, 0x79, 0x73, 0x1A, 0xED, 0xA5, 0x7B, 0xD3,
+ 0x7E, 0xAD, 0xB5, 0x1A, 0x50, 0x7E, 0x30, 0x7F,
+ 0x3B, 0xD9, 0x5E, 0x69, 0xDB, 0xCA, 0x94, 0xF3,
+ 0xBC, 0x21, 0x72, 0x60, 0x66, 0xAD, 0x6D, 0xFD
+ },
+ {
+ 0x58, 0x47, 0x3A, 0x9E, 0xA8, 0x2E, 0xFA, 0x3F,
+ 0x3B, 0x3D, 0x8F, 0xC8, 0x3E, 0xD8, 0x86, 0x31,
+ 0x27, 0xB3, 0x3A, 0xE8, 0xDE, 0xAE, 0x63, 0x07,
+ 0x20, 0x1E, 0xDB, 0x6D, 0xDE, 0x61, 0xDE, 0x29
+ },
+ {
+ 0x9A, 0x92, 0x55, 0xD5, 0x3A, 0xF1, 0x16, 0xDE,
+ 0x8B, 0xA2, 0x7C, 0xE3, 0x5B, 0x4C, 0x7E, 0x15,
+ 0x64, 0x06, 0x57, 0xA0, 0xFC, 0xB8, 0x88, 0xC7,
+ 0x0D, 0x95, 0x43, 0x1D, 0xAC, 0xD8, 0xF8, 0x30
+ },
+ {
+ 0x9E, 0xB0, 0x5F, 0xFB, 0xA3, 0x9F, 0xD8, 0x59,
+ 0x6A, 0x45, 0x49, 0x3E, 0x18, 0xD2, 0x51, 0x0B,
+ 0xF3, 0xEF, 0x06, 0x5C, 0x51, 0xD6, 0xE1, 0x3A,
+ 0xBE, 0x66, 0xAA, 0x57, 0xE0, 0x5C, 0xFD, 0xB7
+ },
+ {
+ 0x81, 0xDC, 0xC3, 0xA5, 0x05, 0xEA, 0xCE, 0x3F,
+ 0x87, 0x9D, 0x8F, 0x70, 0x27, 0x76, 0x77, 0x0F,
+ 0x9D, 0xF5, 0x0E, 0x52, 0x1D, 0x14, 0x28, 0xA8,
+ 0x5D, 0xAF, 0x04, 0xF9, 0xAD, 0x21, 0x50, 0xE0
+ },
+ {
+ 0xE3, 0xE3, 0xC4, 0xAA, 0x3A, 0xCB, 0xBC, 0x85,
+ 0x33, 0x2A, 0xF9, 0xD5, 0x64, 0xBC, 0x24, 0x16,
+ 0x5E, 0x16, 0x87, 0xF6, 0xB1, 0xAD, 0xCB, 0xFA,
+ 0xE7, 0x7A, 0x8F, 0x03, 0xC7, 0x2A, 0xC2, 0x8C
+ },
+ {
+ 0x67, 0x46, 0xC8, 0x0B, 0x4E, 0xB5, 0x6A, 0xEA,
+ 0x45, 0xE6, 0x4E, 0x72, 0x89, 0xBB, 0xA3, 0xED,
+ 0xBF, 0x45, 0xEC, 0xF8, 0x20, 0x64, 0x81, 0xFF,
+ 0x63, 0x02, 0x12, 0x29, 0x84, 0xCD, 0x52, 0x6A
+ },
+ {
+ 0x2B, 0x62, 0x8E, 0x52, 0x76, 0x4D, 0x7D, 0x62,
+ 0xC0, 0x86, 0x8B, 0x21, 0x23, 0x57, 0xCD, 0xD1,
+ 0x2D, 0x91, 0x49, 0x82, 0x2F, 0x4E, 0x98, 0x45,
+ 0xD9, 0x18, 0xA0, 0x8D, 0x1A, 0xE9, 0x90, 0xC0
+ },
+ {
+ 0xE4, 0xBF, 0xE8, 0x0D, 0x58, 0xC9, 0x19, 0x94,
+ 0x61, 0x39, 0x09, 0xDC, 0x4B, 0x1A, 0x12, 0x49,
+ 0x68, 0x96, 0xC0, 0x04, 0xAF, 0x7B, 0x57, 0x01,
+ 0x48, 0x3D, 0xE4, 0x5D, 0x28, 0x23, 0xD7, 0x8E
+ },
+ {
+ 0xEB, 0xB4, 0xBA, 0x15, 0x0C, 0xEF, 0x27, 0x34,
+ 0x34, 0x5B, 0x5D, 0x64, 0x1B, 0xBE, 0xD0, 0x3A,
+ 0x21, 0xEA, 0xFA, 0xE9, 0x33, 0xC9, 0x9E, 0x00,
+ 0x92, 0x12, 0xEF, 0x04, 0x57, 0x4A, 0x85, 0x30
+ },
+ {
+ 0x39, 0x66, 0xEC, 0x73, 0xB1, 0x54, 0xAC, 0xC6,
+ 0x97, 0xAC, 0x5C, 0xF5, 0xB2, 0x4B, 0x40, 0xBD,
+ 0xB0, 0xDB, 0x9E, 0x39, 0x88, 0x36, 0xD7, 0x6D,
+ 0x4B, 0x88, 0x0E, 0x3B, 0x2A, 0xF1, 0xAA, 0x27
+ },
+ {
+ 0xEF, 0x7E, 0x48, 0x31, 0xB3, 0xA8, 0x46, 0x36,
+ 0x51, 0x8D, 0x6E, 0x4B, 0xFC, 0xE6, 0x4A, 0x43,
+ 0xDB, 0x2A, 0x5D, 0xDA, 0x9C, 0xCA, 0x2B, 0x44,
+ 0xF3, 0x90, 0x33, 0xBD, 0xC4, 0x0D, 0x62, 0x43
+ },
+ {
+ 0x7A, 0xBF, 0x6A, 0xCF, 0x5C, 0x8E, 0x54, 0x9D,
+ 0xDB, 0xB1, 0x5A, 0xE8, 0xD8, 0xB3, 0x88, 0xC1,
+ 0xC1, 0x97, 0xE6, 0x98, 0x73, 0x7C, 0x97, 0x85,
+ 0x50, 0x1E, 0xD1, 0xF9, 0x49, 0x30, 0xB7, 0xD9
+ },
+ {
+ 0x88, 0x01, 0x8D, 0xED, 0x66, 0x81, 0x3F, 0x0C,
+ 0xA9, 0x5D, 0xEF, 0x47, 0x4C, 0x63, 0x06, 0x92,
+ 0x01, 0x99, 0x67, 0xB9, 0xE3, 0x68, 0x88, 0xDA,
+ 0xDD, 0x94, 0x12, 0x47, 0x19, 0xB6, 0x82, 0xF6
+ },
+ {
+ 0x39, 0x30, 0x87, 0x6B, 0x9F, 0xC7, 0x52, 0x90,
+ 0x36, 0xB0, 0x08, 0xB1, 0xB8, 0xBB, 0x99, 0x75,
+ 0x22, 0xA4, 0x41, 0x63, 0x5A, 0x0C, 0x25, 0xEC,
+ 0x02, 0xFB, 0x6D, 0x90, 0x26, 0xE5, 0x5A, 0x97
+ },
+ {
+ 0x0A, 0x40, 0x49, 0xD5, 0x7E, 0x83, 0x3B, 0x56,
+ 0x95, 0xFA, 0xC9, 0x3D, 0xD1, 0xFB, 0xEF, 0x31,
+ 0x66, 0xB4, 0x4B, 0x12, 0xAD, 0x11, 0x24, 0x86,
+ 0x62, 0x38, 0x3A, 0xE0, 0x51, 0xE1, 0x58, 0x27
+ },
+ {
+ 0x81, 0xDC, 0xC0, 0x67, 0x8B, 0xB6, 0xA7, 0x65,
+ 0xE4, 0x8C, 0x32, 0x09, 0x65, 0x4F, 0xE9, 0x00,
+ 0x89, 0xCE, 0x44, 0xFF, 0x56, 0x18, 0x47, 0x7E,
+ 0x39, 0xAB, 0x28, 0x64, 0x76, 0xDF, 0x05, 0x2B
+ },
+ {
+ 0xE6, 0x9B, 0x3A, 0x36, 0xA4, 0x46, 0x19, 0x12,
+ 0xDC, 0x08, 0x34, 0x6B, 0x11, 0xDD, 0xCB, 0x9D,
+ 0xB7, 0x96, 0xF8, 0x85, 0xFD, 0x01, 0x93, 0x6E,
+ 0x66, 0x2F, 0xE2, 0x92, 0x97, 0xB0, 0x99, 0xA4
+ },
+ {
+ 0x5A, 0xC6, 0x50, 0x3B, 0x0D, 0x8D, 0xA6, 0x91,
+ 0x76, 0x46, 0xE6, 0xDC, 0xC8, 0x7E, 0xDC, 0x58,
+ 0xE9, 0x42, 0x45, 0x32, 0x4C, 0xC2, 0x04, 0xF4,
+ 0xDD, 0x4A, 0xF0, 0x15, 0x63, 0xAC, 0xD4, 0x27
+ },
+ {
+ 0xDF, 0x6D, 0xDA, 0x21, 0x35, 0x9A, 0x30, 0xBC,
+ 0x27, 0x17, 0x80, 0x97, 0x1C, 0x1A, 0xBD, 0x56,
+ 0xA6, 0xEF, 0x16, 0x7E, 0x48, 0x08, 0x87, 0x88,
+ 0x8E, 0x73, 0xA8, 0x6D, 0x3B, 0xF6, 0x05, 0xE9
+ },
+ {
+ 0xE8, 0xE6, 0xE4, 0x70, 0x71, 0xE7, 0xB7, 0xDF,
+ 0x25, 0x80, 0xF2, 0x25, 0xCF, 0xBB, 0xED, 0xF8,
+ 0x4C, 0xE6, 0x77, 0x46, 0x62, 0x66, 0x28, 0xD3,
+ 0x30, 0x97, 0xE4, 0xB7, 0xDC, 0x57, 0x11, 0x07
+ },
+ {
+ 0x53, 0xE4, 0x0E, 0xAD, 0x62, 0x05, 0x1E, 0x19,
+ 0xCB, 0x9B, 0xA8, 0x13, 0x3E, 0x3E, 0x5C, 0x1C,
+ 0xE0, 0x0D, 0xDC, 0xAD, 0x8A, 0xCF, 0x34, 0x2A,
+ 0x22, 0x43, 0x60, 0xB0, 0xAC, 0xC1, 0x47, 0x77
+ },
+ {
+ 0x9C, 0xCD, 0x53, 0xFE, 0x80, 0xBE, 0x78, 0x6A,
+ 0xA9, 0x84, 0x63, 0x84, 0x62, 0xFB, 0x28, 0xAF,
+ 0xDF, 0x12, 0x2B, 0x34, 0xD7, 0x8F, 0x46, 0x87,
+ 0xEC, 0x63, 0x2B, 0xB1, 0x9D, 0xE2, 0x37, 0x1A
+ },
+ {
+ 0xCB, 0xD4, 0x80, 0x52, 0xC4, 0x8D, 0x78, 0x84,
+ 0x66, 0xA3, 0xE8, 0x11, 0x8C, 0x56, 0xC9, 0x7F,
+ 0xE1, 0x46, 0xE5, 0x54, 0x6F, 0xAA, 0xF9, 0x3E,
+ 0x2B, 0xC3, 0xC4, 0x7E, 0x45, 0x93, 0x97, 0x53
+ },
+ {
+ 0x25, 0x68, 0x83, 0xB1, 0x4E, 0x2A, 0xF4, 0x4D,
+ 0xAD, 0xB2, 0x8E, 0x1B, 0x34, 0xB2, 0xAC, 0x0F,
+ 0x0F, 0x4C, 0x91, 0xC3, 0x4E, 0xC9, 0x16, 0x9E,
+ 0x29, 0x03, 0x61, 0x58, 0xAC, 0xAA, 0x95, 0xB9
+ },
+ {
+ 0x44, 0x71, 0xB9, 0x1A, 0xB4, 0x2D, 0xB7, 0xC4,
+ 0xDD, 0x84, 0x90, 0xAB, 0x95, 0xA2, 0xEE, 0x8D,
+ 0x04, 0xE3, 0xEF, 0x5C, 0x3D, 0x6F, 0xC7, 0x1A,
+ 0xC7, 0x4B, 0x2B, 0x26, 0x91, 0x4D, 0x16, 0x41
+ },
+ {
+ 0xA5, 0xEB, 0x08, 0x03, 0x8F, 0x8F, 0x11, 0x55,
+ 0xED, 0x86, 0xE6, 0x31, 0x90, 0x6F, 0xC1, 0x30,
+ 0x95, 0xF6, 0xBB, 0xA4, 0x1D, 0xE5, 0xD4, 0xE7,
+ 0x95, 0x75, 0x8E, 0xC8, 0xC8, 0xDF, 0x8A, 0xF1
+ },
+ {
+ 0xDC, 0x1D, 0xB6, 0x4E, 0xD8, 0xB4, 0x8A, 0x91,
+ 0x0E, 0x06, 0x0A, 0x6B, 0x86, 0x63, 0x74, 0xC5,
+ 0x78, 0x78, 0x4E, 0x9A, 0xC4, 0x9A, 0xB2, 0x77,
+ 0x40, 0x92, 0xAC, 0x71, 0x50, 0x19, 0x34, 0xAC
+ },
+ {
+ 0x28, 0x54, 0x13, 0xB2, 0xF2, 0xEE, 0x87, 0x3D,
+ 0x34, 0x31, 0x9E, 0xE0, 0xBB, 0xFB, 0xB9, 0x0F,
+ 0x32, 0xDA, 0x43, 0x4C, 0xC8, 0x7E, 0x3D, 0xB5,
+ 0xED, 0x12, 0x1B, 0xB3, 0x98, 0xED, 0x96, 0x4B
+ },
+ {
+ 0x02, 0x16, 0xE0, 0xF8, 0x1F, 0x75, 0x0F, 0x26,
+ 0xF1, 0x99, 0x8B, 0xC3, 0x93, 0x4E, 0x3E, 0x12,
+ 0x4C, 0x99, 0x45, 0xE6, 0x85, 0xA6, 0x0B, 0x25,
+ 0xE8, 0xFB, 0xD9, 0x62, 0x5A, 0xB6, 0xB5, 0x99
+ },
+ {
+ 0x38, 0xC4, 0x10, 0xF5, 0xB9, 0xD4, 0x07, 0x20,
+ 0x50, 0x75, 0x5B, 0x31, 0xDC, 0xA8, 0x9F, 0xD5,
+ 0x39, 0x5C, 0x67, 0x85, 0xEE, 0xB3, 0xD7, 0x90,
+ 0xF3, 0x20, 0xFF, 0x94, 0x1C, 0x5A, 0x93, 0xBF
+ },
+ {
+ 0xF1, 0x84, 0x17, 0xB3, 0x9D, 0x61, 0x7A, 0xB1,
+ 0xC1, 0x8F, 0xDF, 0x91, 0xEB, 0xD0, 0xFC, 0x6D,
+ 0x55, 0x16, 0xBB, 0x34, 0xCF, 0x39, 0x36, 0x40,
+ 0x37, 0xBC, 0xE8, 0x1F, 0xA0, 0x4C, 0xEC, 0xB1
+ },
+ {
+ 0x1F, 0xA8, 0x77, 0xDE, 0x67, 0x25, 0x9D, 0x19,
+ 0x86, 0x3A, 0x2A, 0x34, 0xBC, 0xC6, 0x96, 0x2A,
+ 0x2B, 0x25, 0xFC, 0xBF, 0x5C, 0xBE, 0xCD, 0x7E,
+ 0xDE, 0x8F, 0x1F, 0xA3, 0x66, 0x88, 0xA7, 0x96
+ },
+ {
+ 0x5B, 0xD1, 0x69, 0xE6, 0x7C, 0x82, 0xC2, 0xC2,
+ 0xE9, 0x8E, 0xF7, 0x00, 0x8B, 0xDF, 0x26, 0x1F,
+ 0x2D, 0xDF, 0x30, 0xB1, 0xC0, 0x0F, 0x9E, 0x7F,
+ 0x27, 0x5B, 0xB3, 0xE8, 0xA2, 0x8D, 0xC9, 0xA2
+ },
+ {
+ 0xC8, 0x0A, 0xBE, 0xEB, 0xB6, 0x69, 0xAD, 0x5D,
+ 0xEE, 0xB5, 0xF5, 0xEC, 0x8E, 0xA6, 0xB7, 0xA0,
+ 0x5D, 0xDF, 0x7D, 0x31, 0xEC, 0x4C, 0x0A, 0x2E,
+ 0xE2, 0x0B, 0x0B, 0x98, 0xCA, 0xEC, 0x67, 0x46
+ },
+ {
+ 0xE7, 0x6D, 0x3F, 0xBD, 0xA5, 0xBA, 0x37, 0x4E,
+ 0x6B, 0xF8, 0xE5, 0x0F, 0xAD, 0xC3, 0xBB, 0xB9,
+ 0xBA, 0x5C, 0x20, 0x6E, 0xBD, 0xEC, 0x89, 0xA3,
+ 0xA5, 0x4C, 0xF3, 0xDD, 0x84, 0xA0, 0x70, 0x16
+ },
+ {
+ 0x7B, 0xBA, 0x9D, 0xC5, 0xB5, 0xDB, 0x20, 0x71,
+ 0xD1, 0x77, 0x52, 0xB1, 0x04, 0x4C, 0x1E, 0xCE,
+ 0xD9, 0x6A, 0xAF, 0x2D, 0xD4, 0x6E, 0x9B, 0x43,
+ 0x37, 0x50, 0xE8, 0xEA, 0x0D, 0xCC, 0x18, 0x70
+ },
+ {
+ 0xF2, 0x9B, 0x1B, 0x1A, 0xB9, 0xBA, 0xB1, 0x63,
+ 0x01, 0x8E, 0xE3, 0xDA, 0x15, 0x23, 0x2C, 0xCA,
+ 0x78, 0xEC, 0x52, 0xDB, 0xC3, 0x4E, 0xDA, 0x5B,
+ 0x82, 0x2E, 0xC1, 0xD8, 0x0F, 0xC2, 0x1B, 0xD0
+ },
+ {
+ 0x9E, 0xE3, 0xE3, 0xE7, 0xE9, 0x00, 0xF1, 0xE1,
+ 0x1D, 0x30, 0x8C, 0x4B, 0x2B, 0x30, 0x76, 0xD2,
+ 0x72, 0xCF, 0x70, 0x12, 0x4F, 0x9F, 0x51, 0xE1,
+ 0xDA, 0x60, 0xF3, 0x78, 0x46, 0xCD, 0xD2, 0xF4
+ },
+ {
+ 0x70, 0xEA, 0x3B, 0x01, 0x76, 0x92, 0x7D, 0x90,
+ 0x96, 0xA1, 0x85, 0x08, 0xCD, 0x12, 0x3A, 0x29,
+ 0x03, 0x25, 0x92, 0x0A, 0x9D, 0x00, 0xA8, 0x9B,
+ 0x5D, 0xE0, 0x42, 0x73, 0xFB, 0xC7, 0x6B, 0x85
+ },
+ {
+ 0x67, 0xDE, 0x25, 0xC0, 0x2A, 0x4A, 0xAB, 0xA2,
+ 0x3B, 0xDC, 0x97, 0x3C, 0x8B, 0xB0, 0xB5, 0x79,
+ 0x6D, 0x47, 0xCC, 0x06, 0x59, 0xD4, 0x3D, 0xFF,
+ 0x1F, 0x97, 0xDE, 0x17, 0x49, 0x63, 0xB6, 0x8E
+ },
+ {
+ 0xB2, 0x16, 0x8E, 0x4E, 0x0F, 0x18, 0xB0, 0xE6,
+ 0x41, 0x00, 0xB5, 0x17, 0xED, 0x95, 0x25, 0x7D,
+ 0x73, 0xF0, 0x62, 0x0D, 0xF8, 0x85, 0xC1, 0x3D,
+ 0x2E, 0xCF, 0x79, 0x36, 0x7B, 0x38, 0x4C, 0xEE
+ },
+ {
+ 0x2E, 0x7D, 0xEC, 0x24, 0x28, 0x85, 0x3B, 0x2C,
+ 0x71, 0x76, 0x07, 0x45, 0x54, 0x1F, 0x7A, 0xFE,
+ 0x98, 0x25, 0xB5, 0xDD, 0x77, 0xDF, 0x06, 0x51,
+ 0x1D, 0x84, 0x41, 0xA9, 0x4B, 0xAC, 0xC9, 0x27
+ },
+ {
+ 0xCA, 0x9F, 0xFA, 0xC4, 0xC4, 0x3F, 0x0B, 0x48,
+ 0x46, 0x1D, 0xC5, 0xC2, 0x63, 0xBE, 0xA3, 0xF6,
+ 0xF0, 0x06, 0x11, 0xCE, 0xAC, 0xAB, 0xF6, 0xF8,
+ 0x95, 0xBA, 0x2B, 0x01, 0x01, 0xDB, 0xB6, 0x8D
+ },
+ {
+ 0x74, 0x10, 0xD4, 0x2D, 0x8F, 0xD1, 0xD5, 0xE9,
+ 0xD2, 0xF5, 0x81, 0x5C, 0xB9, 0x34, 0x17, 0x99,
+ 0x88, 0x28, 0xEF, 0x3C, 0x42, 0x30, 0xBF, 0xBD,
+ 0x41, 0x2D, 0xF0, 0xA4, 0xA7, 0xA2, 0x50, 0x7A
+ },
+ {
+ 0x50, 0x10, 0xF6, 0x84, 0x51, 0x6D, 0xCC, 0xD0,
+ 0xB6, 0xEE, 0x08, 0x52, 0xC2, 0x51, 0x2B, 0x4D,
+ 0xC0, 0x06, 0x6C, 0xF0, 0xD5, 0x6F, 0x35, 0x30,
+ 0x29, 0x78, 0xDB, 0x8A, 0xE3, 0x2C, 0x6A, 0x81
+ },
+ {
+ 0xAC, 0xAA, 0xB5, 0x85, 0xF7, 0xB7, 0x9B, 0x71,
+ 0x99, 0x35, 0xCE, 0xB8, 0x95, 0x23, 0xDD, 0xC5,
+ 0x48, 0x27, 0xF7, 0x5C, 0x56, 0x88, 0x38, 0x56,
+ 0x15, 0x4A, 0x56, 0xCD, 0xCD, 0x5E, 0xE9, 0x88
+ },
+ {
+ 0x66, 0x6D, 0xE5, 0xD1, 0x44, 0x0F, 0xEE, 0x73,
+ 0x31, 0xAA, 0xF0, 0x12, 0x3A, 0x62, 0xEF, 0x2D,
+ 0x8B, 0xA5, 0x74, 0x53, 0xA0, 0x76, 0x96, 0x35,
+ 0xAC, 0x6C, 0xD0, 0x1E, 0x63, 0x3F, 0x77, 0x12
+ },
+ {
+ 0xA6, 0xF9, 0x86, 0x58, 0xF6, 0xEA, 0xBA, 0xF9,
+ 0x02, 0xD8, 0xB3, 0x87, 0x1A, 0x4B, 0x10, 0x1D,
+ 0x16, 0x19, 0x6E, 0x8A, 0x4B, 0x24, 0x1E, 0x15,
+ 0x58, 0xFE, 0x29, 0x96, 0x6E, 0x10, 0x3E, 0x8D
+ },
+ {
+ 0x89, 0x15, 0x46, 0xA8, 0xB2, 0x9F, 0x30, 0x47,
+ 0xDD, 0xCF, 0xE5, 0xB0, 0x0E, 0x45, 0xFD, 0x55,
+ 0x75, 0x63, 0x73, 0x10, 0x5E, 0xA8, 0x63, 0x7D,
+ 0xFC, 0xFF, 0x54, 0x7B, 0x6E, 0xA9, 0x53, 0x5F
+ },
+ {
+ 0x18, 0xDF, 0xBC, 0x1A, 0xC5, 0xD2, 0x5B, 0x07,
+ 0x61, 0x13, 0x7D, 0xBD, 0x22, 0xC1, 0x7C, 0x82,
+ 0x9D, 0x0F, 0x0E, 0xF1, 0xD8, 0x23, 0x44, 0xE9,
+ 0xC8, 0x9C, 0x28, 0x66, 0x94, 0xDA, 0x24, 0xE8
+ },
+ {
+ 0xB5, 0x4B, 0x9B, 0x67, 0xF8, 0xFE, 0xD5, 0x4B,
+ 0xBF, 0x5A, 0x26, 0x66, 0xDB, 0xDF, 0x4B, 0x23,
+ 0xCF, 0xF1, 0xD1, 0xB6, 0xF4, 0xAF, 0xC9, 0x85,
+ 0xB2, 0xE6, 0xD3, 0x30, 0x5A, 0x9F, 0xF8, 0x0F
+ },
+ {
+ 0x7D, 0xB4, 0x42, 0xE1, 0x32, 0xBA, 0x59, 0xBC,
+ 0x12, 0x89, 0xAA, 0x98, 0xB0, 0xD3, 0xE8, 0x06,
+ 0x00, 0x4F, 0x8E, 0xC1, 0x28, 0x11, 0xAF, 0x1E,
+ 0x2E, 0x33, 0xC6, 0x9B, 0xFD, 0xE7, 0x29, 0xE1
+ },
+ {
+ 0x25, 0x0F, 0x37, 0xCD, 0xC1, 0x5E, 0x81, 0x7D,
+ 0x2F, 0x16, 0x0D, 0x99, 0x56, 0xC7, 0x1F, 0xE3,
+ 0xEB, 0x5D, 0xB7, 0x45, 0x56, 0xE4, 0xAD, 0xF9,
+ 0xA4, 0xFF, 0xAF, 0xBA, 0x74, 0x01, 0x03, 0x96
+ },
+ {
+ 0x4A, 0xB8, 0xA3, 0xDD, 0x1D, 0xDF, 0x8A, 0xD4,
+ 0x3D, 0xAB, 0x13, 0xA2, 0x7F, 0x66, 0xA6, 0x54,
+ 0x4F, 0x29, 0x05, 0x97, 0xFA, 0x96, 0x04, 0x0E,
+ 0x0E, 0x1D, 0xB9, 0x26, 0x3A, 0xA4, 0x79, 0xF8
+ },
+ {
+ 0xEE, 0x61, 0x72, 0x7A, 0x07, 0x66, 0xDF, 0x93,
+ 0x9C, 0xCD, 0xC8, 0x60, 0x33, 0x40, 0x44, 0xC7,
+ 0x9A, 0x3C, 0x9B, 0x15, 0x62, 0x00, 0xBC, 0x3A,
+ 0xA3, 0x29, 0x73, 0x48, 0x3D, 0x83, 0x41, 0xAE
+ },
+ {
+ 0x3F, 0x68, 0xC7, 0xEC, 0x63, 0xAC, 0x11, 0xEB,
+ 0xB9, 0x8F, 0x94, 0xB3, 0x39, 0xB0, 0x5C, 0x10,
+ 0x49, 0x84, 0xFD, 0xA5, 0x01, 0x03, 0x06, 0x01,
+ 0x44, 0xE5, 0xA2, 0xBF, 0xCC, 0xC9, 0xDA, 0x95
+ },
+ {
+ 0x05, 0x6F, 0x29, 0x81, 0x6B, 0x8A, 0xF8, 0xF5,
+ 0x66, 0x82, 0xBC, 0x4D, 0x7C, 0xF0, 0x94, 0x11,
+ 0x1D, 0xA7, 0x73, 0x3E, 0x72, 0x6C, 0xD1, 0x3D,
+ 0x6B, 0x3E, 0x8E, 0xA0, 0x3E, 0x92, 0xA0, 0xD5
+ },
+ {
+ 0xF5, 0xEC, 0x43, 0xA2, 0x8A, 0xCB, 0xEF, 0xF1,
+ 0xF3, 0x31, 0x8A, 0x5B, 0xCA, 0xC7, 0xC6, 0x6D,
+ 0xDB, 0x52, 0x30, 0xB7, 0x9D, 0xB2, 0xD1, 0x05,
+ 0xBC, 0xBE, 0x15, 0xF3, 0xC1, 0x14, 0x8D, 0x69
+ },
+ {
+ 0x2A, 0x69, 0x60, 0xAD, 0x1D, 0x8D, 0xD5, 0x47,
+ 0x55, 0x5C, 0xFB, 0xD5, 0xE4, 0x60, 0x0F, 0x1E,
+ 0xAA, 0x1C, 0x8E, 0xDA, 0x34, 0xDE, 0x03, 0x74,
+ 0xEC, 0x4A, 0x26, 0xEA, 0xAA, 0xA3, 0x3B, 0x4E
+ },
+ {
+ 0xDC, 0xC1, 0xEA, 0x7B, 0xAA, 0xB9, 0x33, 0x84,
+ 0xF7, 0x6B, 0x79, 0x68, 0x66, 0x19, 0x97, 0x54,
+ 0x74, 0x2F, 0x7B, 0x96, 0xD6, 0xB4, 0xC1, 0x20,
+ 0x16, 0x5C, 0x04, 0xA6, 0xC4, 0xF5, 0xCE, 0x10
+ },
+ {
+ 0x13, 0xD5, 0xDF, 0x17, 0x92, 0x21, 0x37, 0x9C,
+ 0x6A, 0x78, 0xC0, 0x7C, 0x79, 0x3F, 0xF5, 0x34,
+ 0x87, 0xCA, 0xE6, 0xBF, 0x9F, 0xE8, 0x82, 0x54,
+ 0x1A, 0xB0, 0xE7, 0x35, 0xE3, 0xEA, 0xDA, 0x3B
+ },
+ {
+ 0x8C, 0x59, 0xE4, 0x40, 0x76, 0x41, 0xA0, 0x1E,
+ 0x8F, 0xF9, 0x1F, 0x99, 0x80, 0xDC, 0x23, 0x6F,
+ 0x4E, 0xCD, 0x6F, 0xCF, 0x52, 0x58, 0x9A, 0x09,
+ 0x9A, 0x96, 0x16, 0x33, 0x96, 0x77, 0x14, 0xE1
+ },
+ {
+ 0x83, 0x3B, 0x1A, 0xC6, 0xA2, 0x51, 0xFD, 0x08,
+ 0xFD, 0x6D, 0x90, 0x8F, 0xEA, 0x2A, 0x4E, 0xE1,
+ 0xE0, 0x40, 0xBC, 0xA9, 0x3F, 0xC1, 0xA3, 0x8E,
+ 0xC3, 0x82, 0x0E, 0x0C, 0x10, 0xBD, 0x82, 0xEA
+ },
+ {
+ 0xA2, 0x44, 0xF9, 0x27, 0xF3, 0xB4, 0x0B, 0x8F,
+ 0x6C, 0x39, 0x15, 0x70, 0xC7, 0x65, 0x41, 0x8F,
+ 0x2F, 0x6E, 0x70, 0x8E, 0xAC, 0x90, 0x06, 0xC5,
+ 0x1A, 0x7F, 0xEF, 0xF4, 0xAF, 0x3B, 0x2B, 0x9E
+ },
+ {
+ 0x3D, 0x99, 0xED, 0x95, 0x50, 0xCF, 0x11, 0x96,
+ 0xE6, 0xC4, 0xD2, 0x0C, 0x25, 0x96, 0x20, 0xF8,
+ 0x58, 0xC3, 0xD7, 0x03, 0x37, 0x4C, 0x12, 0x8C,
+ 0xE7, 0xB5, 0x90, 0x31, 0x0C, 0x83, 0x04, 0x6D
+ },
+ {
+ 0x2B, 0x35, 0xC4, 0x7D, 0x7B, 0x87, 0x76, 0x1F,
+ 0x0A, 0xE4, 0x3A, 0xC5, 0x6A, 0xC2, 0x7B, 0x9F,
+ 0x25, 0x83, 0x03, 0x67, 0xB5, 0x95, 0xBE, 0x8C,
+ 0x24, 0x0E, 0x94, 0x60, 0x0C, 0x6E, 0x33, 0x12
+ },
+ {
+ 0x5D, 0x11, 0xED, 0x37, 0xD2, 0x4D, 0xC7, 0x67,
+ 0x30, 0x5C, 0xB7, 0xE1, 0x46, 0x7D, 0x87, 0xC0,
+ 0x65, 0xAC, 0x4B, 0xC8, 0xA4, 0x26, 0xDE, 0x38,
+ 0x99, 0x1F, 0xF5, 0x9A, 0xA8, 0x73, 0x5D, 0x02
+ },
+ {
+ 0xB8, 0x36, 0x47, 0x8E, 0x1C, 0xA0, 0x64, 0x0D,
+ 0xCE, 0x6F, 0xD9, 0x10, 0xA5, 0x09, 0x62, 0x72,
+ 0xC8, 0x33, 0x09, 0x90, 0xCD, 0x97, 0x86, 0x4A,
+ 0xC2, 0xBF, 0x14, 0xEF, 0x6B, 0x23, 0x91, 0x4A
+ },
+ {
+ 0x91, 0x00, 0xF9, 0x46, 0xD6, 0xCC, 0xDE, 0x3A,
+ 0x59, 0x7F, 0x90, 0xD3, 0x9F, 0xC1, 0x21, 0x5B,
+ 0xAD, 0xDC, 0x74, 0x13, 0x64, 0x3D, 0x85, 0xC2,
+ 0x1C, 0x3E, 0xEE, 0x5D, 0x2D, 0xD3, 0x28, 0x94
+ },
+ {
+ 0xDA, 0x70, 0xEE, 0xDD, 0x23, 0xE6, 0x63, 0xAA,
+ 0x1A, 0x74, 0xB9, 0x76, 0x69, 0x35, 0xB4, 0x79,
+ 0x22, 0x2A, 0x72, 0xAF, 0xBA, 0x5C, 0x79, 0x51,
+ 0x58, 0xDA, 0xD4, 0x1A, 0x3B, 0xD7, 0x7E, 0x40
+ },
+ {
+ 0xF0, 0x67, 0xED, 0x6A, 0x0D, 0xBD, 0x43, 0xAA,
+ 0x0A, 0x92, 0x54, 0xE6, 0x9F, 0xD6, 0x6B, 0xDD,
+ 0x8A, 0xCB, 0x87, 0xDE, 0x93, 0x6C, 0x25, 0x8C,
+ 0xFB, 0x02, 0x28, 0x5F, 0x2C, 0x11, 0xFA, 0x79
+ },
+ {
+ 0x71, 0x5C, 0x99, 0xC7, 0xD5, 0x75, 0x80, 0xCF,
+ 0x97, 0x53, 0xB4, 0xC1, 0xD7, 0x95, 0xE4, 0x5A,
+ 0x83, 0xFB, 0xB2, 0x28, 0xC0, 0xD3, 0x6F, 0xBE,
+ 0x20, 0xFA, 0xF3, 0x9B, 0xDD, 0x6D, 0x4E, 0x85
+ },
+ {
+ 0xE4, 0x57, 0xD6, 0xAD, 0x1E, 0x67, 0xCB, 0x9B,
+ 0xBD, 0x17, 0xCB, 0xD6, 0x98, 0xFA, 0x6D, 0x7D,
+ 0xAE, 0x0C, 0x9B, 0x7A, 0xD6, 0xCB, 0xD6, 0x53,
+ 0x96, 0x34, 0xE3, 0x2A, 0x71, 0x9C, 0x84, 0x92
+ },
+ {
+ 0xEC, 0xE3, 0xEA, 0x81, 0x03, 0xE0, 0x24, 0x83,
+ 0xC6, 0x4A, 0x70, 0xA4, 0xBD, 0xCE, 0xE8, 0xCE,
+ 0xB6, 0x27, 0x8F, 0x25, 0x33, 0xF3, 0xF4, 0x8D,
+ 0xBE, 0xED, 0xFB, 0xA9, 0x45, 0x31, 0xD4, 0xAE
+ },
+ {
+ 0x38, 0x8A, 0xA5, 0xD3, 0x66, 0x7A, 0x97, 0xC6,
+ 0x8D, 0x3D, 0x56, 0xF8, 0xF3, 0xEE, 0x8D, 0x3D,
+ 0x36, 0x09, 0x1F, 0x17, 0xFE, 0x5D, 0x1B, 0x0D,
+ 0x5D, 0x84, 0xC9, 0x3B, 0x2F, 0xFE, 0x40, 0xBD
+ },
+ {
+ 0x8B, 0x6B, 0x31, 0xB9, 0xAD, 0x7C, 0x3D, 0x5C,
+ 0xD8, 0x4B, 0xF9, 0x89, 0x47, 0xB9, 0xCD, 0xB5,
+ 0x9D, 0xF8, 0xA2, 0x5F, 0xF7, 0x38, 0x10, 0x10,
+ 0x13, 0xBE, 0x4F, 0xD6, 0x5E, 0x1D, 0xD1, 0xA3
+ },
+ {
+ 0x06, 0x62, 0x91, 0xF6, 0xBB, 0xD2, 0x5F, 0x3C,
+ 0x85, 0x3D, 0xB7, 0xD8, 0xB9, 0x5C, 0x9A, 0x1C,
+ 0xFB, 0x9B, 0xF1, 0xC1, 0xC9, 0x9F, 0xB9, 0x5A,
+ 0x9B, 0x78, 0x69, 0xD9, 0x0F, 0x1C, 0x29, 0x03
+ },
+ {
+ 0xA7, 0x07, 0xEF, 0xBC, 0xCD, 0xCE, 0xED, 0x42,
+ 0x96, 0x7A, 0x66, 0xF5, 0x53, 0x9B, 0x93, 0xED,
+ 0x75, 0x60, 0xD4, 0x67, 0x30, 0x40, 0x16, 0xC4,
+ 0x78, 0x0D, 0x77, 0x55, 0xA5, 0x65, 0xD4, 0xC4
+ },
+ {
+ 0x38, 0xC5, 0x3D, 0xFB, 0x70, 0xBE, 0x7E, 0x79,
+ 0x2B, 0x07, 0xA6, 0xA3, 0x5B, 0x8A, 0x6A, 0x0A,
+ 0xBA, 0x02, 0xC5, 0xC5, 0xF3, 0x8B, 0xAF, 0x5C,
+ 0x82, 0x3F, 0xDF, 0xD9, 0xE4, 0x2D, 0x65, 0x7E
+ },
+ {
+ 0xF2, 0x91, 0x13, 0x86, 0x50, 0x1D, 0x9A, 0xB9,
+ 0xD7, 0x20, 0xCF, 0x8A, 0xD1, 0x05, 0x03, 0xD5,
+ 0x63, 0x4B, 0xF4, 0xB7, 0xD1, 0x2B, 0x56, 0xDF,
+ 0xB7, 0x4F, 0xEC, 0xC6, 0xE4, 0x09, 0x3F, 0x68
+ },
+ {
+ 0xC6, 0xF2, 0xBD, 0xD5, 0x2B, 0x81, 0xE6, 0xE4,
+ 0xF6, 0x59, 0x5A, 0xBD, 0x4D, 0x7F, 0xB3, 0x1F,
+ 0x65, 0x11, 0x69, 0xD0, 0x0F, 0xF3, 0x26, 0x92,
+ 0x6B, 0x34, 0x94, 0x7B, 0x28, 0xA8, 0x39, 0x59
+ },
+ {
+ 0x29, 0x3D, 0x94, 0xB1, 0x8C, 0x98, 0xBB, 0x32,
+ 0x23, 0x36, 0x6B, 0x8C, 0xE7, 0x4C, 0x28, 0xFB,
+ 0xDF, 0x28, 0xE1, 0xF8, 0x4A, 0x33, 0x50, 0xB0,
+ 0xEB, 0x2D, 0x18, 0x04, 0xA5, 0x77, 0x57, 0x9B
+ },
+ {
+ 0x2C, 0x2F, 0xA5, 0xC0, 0xB5, 0x15, 0x33, 0x16,
+ 0x5B, 0xC3, 0x75, 0xC2, 0x2E, 0x27, 0x81, 0x76,
+ 0x82, 0x70, 0xA3, 0x83, 0x98, 0x5D, 0x13, 0xBD,
+ 0x6B, 0x67, 0xB6, 0xFD, 0x67, 0xF8, 0x89, 0xEB
+ },
+ {
+ 0xCA, 0xA0, 0x9B, 0x82, 0xB7, 0x25, 0x62, 0xE4,
+ 0x3F, 0x4B, 0x22, 0x75, 0xC0, 0x91, 0x91, 0x8E,
+ 0x62, 0x4D, 0x91, 0x16, 0x61, 0xCC, 0x81, 0x1B,
+ 0xB5, 0xFA, 0xEC, 0x51, 0xF6, 0x08, 0x8E, 0xF7
+ },
+ {
+ 0x24, 0x76, 0x1E, 0x45, 0xE6, 0x74, 0x39, 0x53,
+ 0x79, 0xFB, 0x17, 0x72, 0x9C, 0x78, 0xCB, 0x93,
+ 0x9E, 0x6F, 0x74, 0xC5, 0xDF, 0xFB, 0x9C, 0x96,
+ 0x1F, 0x49, 0x59, 0x82, 0xC3, 0xED, 0x1F, 0xE3
+ },
+ {
+ 0x55, 0xB7, 0x0A, 0x82, 0x13, 0x1E, 0xC9, 0x48,
+ 0x88, 0xD7, 0xAB, 0x54, 0xA7, 0xC5, 0x15, 0x25,
+ 0x5C, 0x39, 0x38, 0xBB, 0x10, 0xBC, 0x78, 0x4D,
+ 0xC9, 0xB6, 0x7F, 0x07, 0x6E, 0x34, 0x1A, 0x73
+ },
+ {
+ 0x6A, 0xB9, 0x05, 0x7B, 0x97, 0x7E, 0xBC, 0x3C,
+ 0xA4, 0xD4, 0xCE, 0x74, 0x50, 0x6C, 0x25, 0xCC,
+ 0xCD, 0xC5, 0x66, 0x49, 0x7C, 0x45, 0x0B, 0x54,
+ 0x15, 0xA3, 0x94, 0x86, 0xF8, 0x65, 0x7A, 0x03
+ },
+ {
+ 0x24, 0x06, 0x6D, 0xEE, 0xE0, 0xEC, 0xEE, 0x15,
+ 0xA4, 0x5F, 0x0A, 0x32, 0x6D, 0x0F, 0x8D, 0xBC,
+ 0x79, 0x76, 0x1E, 0xBB, 0x93, 0xCF, 0x8C, 0x03,
+ 0x77, 0xAF, 0x44, 0x09, 0x78, 0xFC, 0xF9, 0x94
+ },
+ {
+ 0x20, 0x00, 0x0D, 0x3F, 0x66, 0xBA, 0x76, 0x86,
+ 0x0D, 0x5A, 0x95, 0x06, 0x88, 0xB9, 0xAA, 0x0D,
+ 0x76, 0xCF, 0xEA, 0x59, 0xB0, 0x05, 0xD8, 0x59,
+ 0x91, 0x4B, 0x1A, 0x46, 0x65, 0x3A, 0x93, 0x9B
+ },
+ {
+ 0xB9, 0x2D, 0xAA, 0x79, 0x60, 0x3E, 0x3B, 0xDB,
+ 0xC3, 0xBF, 0xE0, 0xF4, 0x19, 0xE4, 0x09, 0xB2,
+ 0xEA, 0x10, 0xDC, 0x43, 0x5B, 0xEE, 0xFE, 0x29,
+ 0x59, 0xDA, 0x16, 0x89, 0x5D, 0x5D, 0xCA, 0x1C
+ },
+ {
+ 0xE9, 0x47, 0x94, 0x87, 0x05, 0xB2, 0x06, 0xD5,
+ 0x72, 0xB0, 0xE8, 0xF6, 0x2F, 0x66, 0xA6, 0x55,
+ 0x1C, 0xBD, 0x6B, 0xC3, 0x05, 0xD2, 0x6C, 0xE7,
+ 0x53, 0x9A, 0x12, 0xF9, 0xAA, 0xDF, 0x75, 0x71
+ },
+ {
+ 0x3D, 0x67, 0xC1, 0xB3, 0xF9, 0xB2, 0x39, 0x10,
+ 0xE3, 0xD3, 0x5E, 0x6B, 0x0F, 0x2C, 0xCF, 0x44,
+ 0xA0, 0xB5, 0x40, 0xA4, 0x5C, 0x18, 0xBA, 0x3C,
+ 0x36, 0x26, 0x4D, 0xD4, 0x8E, 0x96, 0xAF, 0x6A
+ },
+ {
+ 0xC7, 0x55, 0x8B, 0xAB, 0xDA, 0x04, 0xBC, 0xCB,
+ 0x76, 0x4D, 0x0B, 0xBF, 0x33, 0x58, 0x42, 0x51,
+ 0x41, 0x90, 0x2D, 0x22, 0x39, 0x1D, 0x9F, 0x8C,
+ 0x59, 0x15, 0x9F, 0xEC, 0x9E, 0x49, 0xB1, 0x51
+ },
+ {
+ 0x0B, 0x73, 0x2B, 0xB0, 0x35, 0x67, 0x5A, 0x50,
+ 0xFF, 0x58, 0xF2, 0xC2, 0x42, 0xE4, 0x71, 0x0A,
+ 0xEC, 0xE6, 0x46, 0x70, 0x07, 0x9C, 0x13, 0x04,
+ 0x4C, 0x79, 0xC9, 0xB7, 0x49, 0x1F, 0x70, 0x00
+ },
+ {
+ 0xD1, 0x20, 0xB5, 0xEF, 0x6D, 0x57, 0xEB, 0xF0,
+ 0x6E, 0xAF, 0x96, 0xBC, 0x93, 0x3C, 0x96, 0x7B,
+ 0x16, 0xCB, 0xE6, 0xE2, 0xBF, 0x00, 0x74, 0x1C,
+ 0x30, 0xAA, 0x1C, 0x54, 0xBA, 0x64, 0x80, 0x1F
+ },
+ {
+ 0x58, 0xD2, 0x12, 0xAD, 0x6F, 0x58, 0xAE, 0xF0,
+ 0xF8, 0x01, 0x16, 0xB4, 0x41, 0xE5, 0x7F, 0x61,
+ 0x95, 0xBF, 0xEF, 0x26, 0xB6, 0x14, 0x63, 0xED,
+ 0xEC, 0x11, 0x83, 0xCD, 0xB0, 0x4F, 0xE7, 0x6D
+ },
+ {
+ 0xB8, 0x83, 0x6F, 0x51, 0xD1, 0xE2, 0x9B, 0xDF,
+ 0xDB, 0xA3, 0x25, 0x56, 0x53, 0x60, 0x26, 0x8B,
+ 0x8F, 0xAD, 0x62, 0x74, 0x73, 0xED, 0xEC, 0xEF,
+ 0x7E, 0xAE, 0xFE, 0xE8, 0x37, 0xC7, 0x40, 0x03
+ },
+ {
+ 0xC5, 0x47, 0xA3, 0xC1, 0x24, 0xAE, 0x56, 0x85,
+ 0xFF, 0xA7, 0xB8, 0xED, 0xAF, 0x96, 0xEC, 0x86,
+ 0xF8, 0xB2, 0xD0, 0xD5, 0x0C, 0xEE, 0x8B, 0xE3,
+ 0xB1, 0xF0, 0xC7, 0x67, 0x63, 0x06, 0x9D, 0x9C
+ },
+ {
+ 0x5D, 0x16, 0x8B, 0x76, 0x9A, 0x2F, 0x67, 0x85,
+ 0x3D, 0x62, 0x95, 0xF7, 0x56, 0x8B, 0xE4, 0x0B,
+ 0xB7, 0xA1, 0x6B, 0x8D, 0x65, 0xBA, 0x87, 0x63,
+ 0x5D, 0x19, 0x78, 0xD2, 0xAB, 0x11, 0xBA, 0x2A
+ },
+ {
+ 0xA2, 0xF6, 0x75, 0xDC, 0x73, 0x02, 0x63, 0x8C,
+ 0xB6, 0x02, 0x01, 0x06, 0x4C, 0xA5, 0x50, 0x77,
+ 0x71, 0x4D, 0x71, 0xFE, 0x09, 0x6A, 0x31, 0x5F,
+ 0x2F, 0xE7, 0x40, 0x12, 0x77, 0xCA, 0xA5, 0xAF
+ },
+ {
+ 0xC8, 0xAA, 0xB5, 0xCD, 0x01, 0x60, 0xAE, 0x78,
+ 0xCD, 0x2E, 0x8A, 0xC5, 0xFB, 0x0E, 0x09, 0x3C,
+ 0xDB, 0x5C, 0x4B, 0x60, 0x52, 0xA0, 0xA9, 0x7B,
+ 0xB0, 0x42, 0x16, 0x82, 0x6F, 0xA7, 0xA4, 0x37
+ },
+ {
+ 0xFF, 0x68, 0xCA, 0x40, 0x35, 0xBF, 0xEB, 0x43,
+ 0xFB, 0xF1, 0x45, 0xFD, 0xDD, 0x5E, 0x43, 0xF1,
+ 0xCE, 0xA5, 0x4F, 0x11, 0xF7, 0xBE, 0xE1, 0x30,
+ 0x58, 0xF0, 0x27, 0x32, 0x9A, 0x4A, 0x5F, 0xA4
+ },
+ {
+ 0x1D, 0x4E, 0x54, 0x87, 0xAE, 0x3C, 0x74, 0x0F,
+ 0x2B, 0xA6, 0xE5, 0x41, 0xAC, 0x91, 0xBC, 0x2B,
+ 0xFC, 0xD2, 0x99, 0x9C, 0x51, 0x8D, 0x80, 0x7B,
+ 0x42, 0x67, 0x48, 0x80, 0x3A, 0x35, 0x0F, 0xD4
+ },
+ {
+ 0x6D, 0x24, 0x4E, 0x1A, 0x06, 0xCE, 0x4E, 0xF5,
+ 0x78, 0xDD, 0x0F, 0x63, 0xAF, 0xF0, 0x93, 0x67,
+ 0x06, 0x73, 0x51, 0x19, 0xCA, 0x9C, 0x8D, 0x22,
+ 0xD8, 0x6C, 0x80, 0x14, 0x14, 0xAB, 0x97, 0x41
+ },
+ {
+ 0xDE, 0xCF, 0x73, 0x29, 0xDB, 0xCC, 0x82, 0x7B,
+ 0x8F, 0xC5, 0x24, 0xC9, 0x43, 0x1E, 0x89, 0x98,
+ 0x02, 0x9E, 0xCE, 0x12, 0xCE, 0x93, 0xB7, 0xB2,
+ 0xF3, 0xE7, 0x69, 0xA9, 0x41, 0xFB, 0x8C, 0xEA
+ },
+ {
+ 0x2F, 0xAF, 0xCC, 0x0F, 0x2E, 0x63, 0xCB, 0xD0,
+ 0x77, 0x55, 0xBE, 0x7B, 0x75, 0xEC, 0xEA, 0x0A,
+ 0xDF, 0xF9, 0xAA, 0x5E, 0xDE, 0x2A, 0x52, 0xFD,
+ 0xAB, 0x4D, 0xFD, 0x03, 0x74, 0xCD, 0x48, 0x3F
+ },
+ {
+ 0xAA, 0x85, 0x01, 0x0D, 0xD4, 0x6A, 0x54, 0x6B,
+ 0x53, 0x5E, 0xF4, 0xCF, 0x5F, 0x07, 0xD6, 0x51,
+ 0x61, 0xE8, 0x98, 0x28, 0xF3, 0xA7, 0x7D, 0xB7,
+ 0xB9, 0xB5, 0x6F, 0x0D, 0xF5, 0x9A, 0xAE, 0x45
+ },
+ {
+ 0x07, 0xE8, 0xE1, 0xEE, 0x73, 0x2C, 0xB0, 0xD3,
+ 0x56, 0xC9, 0xC0, 0xD1, 0x06, 0x9C, 0x89, 0xD1,
+ 0x7A, 0xDF, 0x6A, 0x9A, 0x33, 0x4F, 0x74, 0x5E,
+ 0xC7, 0x86, 0x73, 0x32, 0x54, 0x8C, 0xA8, 0xE9
+ },
+ {
+ 0x0E, 0x01, 0xE8, 0x1C, 0xAD, 0xA8, 0x16, 0x2B,
+ 0xFD, 0x5F, 0x8A, 0x8C, 0x81, 0x8A, 0x6C, 0x69,
+ 0xFE, 0xDF, 0x02, 0xCE, 0xB5, 0x20, 0x85, 0x23,
+ 0xCB, 0xE5, 0x31, 0x3B, 0x89, 0xCA, 0x10, 0x53
+ },
+ {
+ 0x6B, 0xB6, 0xC6, 0x47, 0x26, 0x55, 0x08, 0x43,
+ 0x99, 0x85, 0x2E, 0x00, 0x24, 0x9F, 0x8C, 0xB2,
+ 0x47, 0x89, 0x6D, 0x39, 0x2B, 0x02, 0xD7, 0x3B,
+ 0x7F, 0x0D, 0xD8, 0x18, 0xE1, 0xE2, 0x9B, 0x07
+ },
+ {
+ 0x42, 0xD4, 0x63, 0x6E, 0x20, 0x60, 0xF0, 0x8F,
+ 0x41, 0xC8, 0x82, 0xE7, 0x6B, 0x39, 0x6B, 0x11,
+ 0x2E, 0xF6, 0x27, 0xCC, 0x24, 0xC4, 0x3D, 0xD5,
+ 0xF8, 0x3A, 0x1D, 0x1A, 0x7E, 0xAD, 0x71, 0x1A
+ },
+ {
+ 0x48, 0x58, 0xC9, 0xA1, 0x88, 0xB0, 0x23, 0x4F,
+ 0xB9, 0xA8, 0xD4, 0x7D, 0x0B, 0x41, 0x33, 0x65,
+ 0x0A, 0x03, 0x0B, 0xD0, 0x61, 0x1B, 0x87, 0xC3,
+ 0x89, 0x2E, 0x94, 0x95, 0x1F, 0x8D, 0xF8, 0x52
+ },
+ {
+ 0x3F, 0xAB, 0x3E, 0x36, 0x98, 0x8D, 0x44, 0x5A,
+ 0x51, 0xC8, 0x78, 0x3E, 0x53, 0x1B, 0xE3, 0xA0,
+ 0x2B, 0xE4, 0x0C, 0xD0, 0x47, 0x96, 0xCF, 0xB6,
+ 0x1D, 0x40, 0x34, 0x74, 0x42, 0xD3, 0xF7, 0x94
+ },
+ {
+ 0xEB, 0xAB, 0xC4, 0x96, 0x36, 0xBD, 0x43, 0x3D,
+ 0x2E, 0xC8, 0xF0, 0xE5, 0x18, 0x73, 0x2E, 0xF8,
+ 0xFA, 0x21, 0xD4, 0xD0, 0x71, 0xCC, 0x3B, 0xC4,
+ 0x6C, 0xD7, 0x9F, 0xA3, 0x8A, 0x28, 0xB8, 0x10
+ },
+ {
+ 0xA1, 0xD0, 0x34, 0x35, 0x23, 0xB8, 0x93, 0xFC,
+ 0xA8, 0x4F, 0x47, 0xFE, 0xB4, 0xA6, 0x4D, 0x35,
+ 0x0A, 0x17, 0xD8, 0xEE, 0xF5, 0x49, 0x7E, 0xCE,
+ 0x69, 0x7D, 0x02, 0xD7, 0x91, 0x78, 0xB5, 0x91
+ },
+ {
+ 0x26, 0x2E, 0xBF, 0xD9, 0x13, 0x0B, 0x7D, 0x28,
+ 0x76, 0x0D, 0x08, 0xEF, 0x8B, 0xFD, 0x3B, 0x86,
+ 0xCD, 0xD3, 0xB2, 0x11, 0x3D, 0x2C, 0xAE, 0xF7,
+ 0xEA, 0x95, 0x1A, 0x30, 0x3D, 0xFA, 0x38, 0x46
+ },
+ {
+ 0xF7, 0x61, 0x58, 0xED, 0xD5, 0x0A, 0x15, 0x4F,
+ 0xA7, 0x82, 0x03, 0xED, 0x23, 0x62, 0x93, 0x2F,
+ 0xCB, 0x82, 0x53, 0xAA, 0xE3, 0x78, 0x90, 0x3E,
+ 0xDE, 0xD1, 0xE0, 0x3F, 0x70, 0x21, 0xA2, 0x57
+ },
+ {
+ 0x26, 0x17, 0x8E, 0x95, 0x0A, 0xC7, 0x22, 0xF6,
+ 0x7A, 0xE5, 0x6E, 0x57, 0x1B, 0x28, 0x4C, 0x02,
+ 0x07, 0x68, 0x4A, 0x63, 0x34, 0xA1, 0x77, 0x48,
+ 0xA9, 0x4D, 0x26, 0x0B, 0xC5, 0xF5, 0x52, 0x74
+ },
+ {
+ 0xC3, 0x78, 0xD1, 0xE4, 0x93, 0xB4, 0x0E, 0xF1,
+ 0x1F, 0xE6, 0xA1, 0x5D, 0x9C, 0x27, 0x37, 0xA3,
+ 0x78, 0x09, 0x63, 0x4C, 0x5A, 0xBA, 0xD5, 0xB3,
+ 0x3D, 0x7E, 0x39, 0x3B, 0x4A, 0xE0, 0x5D, 0x03
+ },
+ {
+ 0x98, 0x4B, 0xD8, 0x37, 0x91, 0x01, 0xBE, 0x8F,
+ 0xD8, 0x06, 0x12, 0xD8, 0xEA, 0x29, 0x59, 0xA7,
+ 0x86, 0x5E, 0xC9, 0x71, 0x85, 0x23, 0x55, 0x01,
+ 0x07, 0xAE, 0x39, 0x38, 0xDF, 0x32, 0x01, 0x1B
+ },
+ {
+ 0xC6, 0xF2, 0x5A, 0x81, 0x2A, 0x14, 0x48, 0x58,
+ 0xAC, 0x5C, 0xED, 0x37, 0xA9, 0x3A, 0x9F, 0x47,
+ 0x59, 0xBA, 0x0B, 0x1C, 0x0F, 0xDC, 0x43, 0x1D,
+ 0xCE, 0x35, 0xF9, 0xEC, 0x1F, 0x1F, 0x4A, 0x99
+ },
+ {
+ 0x92, 0x4C, 0x75, 0xC9, 0x44, 0x24, 0xFF, 0x75,
+ 0xE7, 0x4B, 0x8B, 0x4E, 0x94, 0x35, 0x89, 0x58,
+ 0xB0, 0x27, 0xB1, 0x71, 0xDF, 0x5E, 0x57, 0x89,
+ 0x9A, 0xD0, 0xD4, 0xDA, 0xC3, 0x73, 0x53, 0xB6
+ },
+ {
+ 0x0A, 0xF3, 0x58, 0x92, 0xA6, 0x3F, 0x45, 0x93,
+ 0x1F, 0x68, 0x46, 0xED, 0x19, 0x03, 0x61, 0xCD,
+ 0x07, 0x30, 0x89, 0xE0, 0x77, 0x16, 0x57, 0x14,
+ 0xB5, 0x0B, 0x81, 0xA2, 0xE3, 0xDD, 0x9B, 0xA1
+ },
+ {
+ 0xCC, 0x80, 0xCE, 0xFB, 0x26, 0xC3, 0xB2, 0xB0,
+ 0xDA, 0xEF, 0x23, 0x3E, 0x60, 0x6D, 0x5F, 0xFC,
+ 0x80, 0xFA, 0x17, 0x42, 0x7D, 0x18, 0xE3, 0x04,
+ 0x89, 0x67, 0x3E, 0x06, 0xEF, 0x4B, 0x87, 0xF7
+ },
+ {
+ 0xC2, 0xF8, 0xC8, 0x11, 0x74, 0x47, 0xF3, 0x97,
+ 0x8B, 0x08, 0x18, 0xDC, 0xF6, 0xF7, 0x01, 0x16,
+ 0xAC, 0x56, 0xFD, 0x18, 0x4D, 0xD1, 0x27, 0x84,
+ 0x94, 0xE1, 0x03, 0xFC, 0x6D, 0x74, 0xA8, 0x87
+ },
+ {
+ 0xBD, 0xEC, 0xF6, 0xBF, 0xC1, 0xBA, 0x0D, 0xF6,
+ 0xE8, 0x62, 0xC8, 0x31, 0x99, 0x22, 0x07, 0x79,
+ 0x6A, 0xCC, 0x79, 0x79, 0x68, 0x35, 0x88, 0x28,
+ 0xC0, 0x6E, 0x7A, 0x51, 0xE0, 0x90, 0x09, 0x8F
+ },
+ {
+ 0x24, 0xD1, 0xA2, 0x6E, 0x3D, 0xAB, 0x02, 0xFE,
+ 0x45, 0x72, 0xD2, 0xAA, 0x7D, 0xBD, 0x3E, 0xC3,
+ 0x0F, 0x06, 0x93, 0xDB, 0x26, 0xF2, 0x73, 0xD0,
+ 0xAB, 0x2C, 0xB0, 0xC1, 0x3B, 0x5E, 0x64, 0x51
+ },
+ {
+ 0xEC, 0x56, 0xF5, 0x8B, 0x09, 0x29, 0x9A, 0x30,
+ 0x0B, 0x14, 0x05, 0x65, 0xD7, 0xD3, 0xE6, 0x87,
+ 0x82, 0xB6, 0xE2, 0xFB, 0xEB, 0x4B, 0x7E, 0xA9,
+ 0x7A, 0xC0, 0x57, 0x98, 0x90, 0x61, 0xDD, 0x3F
+ },
+ {
+ 0x11, 0xA4, 0x37, 0xC1, 0xAB, 0xA3, 0xC1, 0x19,
+ 0xDD, 0xFA, 0xB3, 0x1B, 0x3E, 0x8C, 0x84, 0x1D,
+ 0xEE, 0xEB, 0x91, 0x3E, 0xF5, 0x7F, 0x7E, 0x48,
+ 0xF2, 0xC9, 0xCF, 0x5A, 0x28, 0xFA, 0x42, 0xBC
+ },
+ {
+ 0x53, 0xC7, 0xE6, 0x11, 0x4B, 0x85, 0x0A, 0x2C,
+ 0xB4, 0x96, 0xC9, 0xB3, 0xC6, 0x9A, 0x62, 0x3E,
+ 0xAE, 0xA2, 0xCB, 0x1D, 0x33, 0xDD, 0x81, 0x7E,
+ 0x47, 0x65, 0xED, 0xAA, 0x68, 0x23, 0xC2, 0x28
+ },
+ {
+ 0x15, 0x4C, 0x3E, 0x96, 0xFE, 0xE5, 0xDB, 0x14,
+ 0xF8, 0x77, 0x3E, 0x18, 0xAF, 0x14, 0x85, 0x79,
+ 0x13, 0x50, 0x9D, 0xA9, 0x99, 0xB4, 0x6C, 0xDD,
+ 0x3D, 0x4C, 0x16, 0x97, 0x60, 0xC8, 0x3A, 0xD2
+ },
+ {
+ 0x40, 0xB9, 0x91, 0x6F, 0x09, 0x3E, 0x02, 0x7A,
+ 0x87, 0x86, 0x64, 0x18, 0x18, 0x92, 0x06, 0x20,
+ 0x47, 0x2F, 0xBC, 0xF6, 0x8F, 0x70, 0x1D, 0x1B,
+ 0x68, 0x06, 0x32, 0xE6, 0x99, 0x6B, 0xDE, 0xD3
+ },
+ {
+ 0x24, 0xC4, 0xCB, 0xBA, 0x07, 0x11, 0x98, 0x31,
+ 0xA7, 0x26, 0xB0, 0x53, 0x05, 0xD9, 0x6D, 0xA0,
+ 0x2F, 0xF8, 0xB1, 0x48, 0xF0, 0xDA, 0x44, 0x0F,
+ 0xE2, 0x33, 0xBC, 0xAA, 0x32, 0xC7, 0x2F, 0x6F
+ },
+ {
+ 0x5D, 0x20, 0x15, 0x10, 0x25, 0x00, 0x20, 0xB7,
+ 0x83, 0x68, 0x96, 0x88, 0xAB, 0xBF, 0x8E, 0xCF,
+ 0x25, 0x94, 0xA9, 0x6A, 0x08, 0xF2, 0xBF, 0xEC,
+ 0x6C, 0xE0, 0x57, 0x44, 0x65, 0xDD, 0xED, 0x71
+ },
+ {
+ 0x04, 0x3B, 0x97, 0xE3, 0x36, 0xEE, 0x6F, 0xDB,
+ 0xBE, 0x2B, 0x50, 0xF2, 0x2A, 0xF8, 0x32, 0x75,
+ 0xA4, 0x08, 0x48, 0x05, 0xD2, 0xD5, 0x64, 0x59,
+ 0x62, 0x45, 0x4B, 0x6C, 0x9B, 0x80, 0x53, 0xA0
+ },
+ {
+ 0x56, 0x48, 0x35, 0xCB, 0xAE, 0xA7, 0x74, 0x94,
+ 0x85, 0x68, 0xBE, 0x36, 0xCF, 0x52, 0xFC, 0xDD,
+ 0x83, 0x93, 0x4E, 0xB0, 0xA2, 0x75, 0x12, 0xDB,
+ 0xE3, 0xE2, 0xDB, 0x47, 0xB9, 0xE6, 0x63, 0x5A
+ },
+ {
+ 0xF2, 0x1C, 0x33, 0xF4, 0x7B, 0xDE, 0x40, 0xA2,
+ 0xA1, 0x01, 0xC9, 0xCD, 0xE8, 0x02, 0x7A, 0xAF,
+ 0x61, 0xA3, 0x13, 0x7D, 0xE2, 0x42, 0x2B, 0x30,
+ 0x03, 0x5A, 0x04, 0xC2, 0x70, 0x89, 0x41, 0x83
+ },
+ {
+ 0x9D, 0xB0, 0xEF, 0x74, 0xE6, 0x6C, 0xBB, 0x84,
+ 0x2E, 0xB0, 0xE0, 0x73, 0x43, 0xA0, 0x3C, 0x5C,
+ 0x56, 0x7E, 0x37, 0x2B, 0x3F, 0x23, 0xB9, 0x43,
+ 0xC7, 0x88, 0xA4, 0xF2, 0x50, 0xF6, 0x78, 0x91
+ },
+ {
+ 0xAB, 0x8D, 0x08, 0x65, 0x5F, 0xF1, 0xD3, 0xFE,
+ 0x87, 0x58, 0xD5, 0x62, 0x23, 0x5F, 0xD2, 0x3E,
+ 0x7C, 0xF9, 0xDC, 0xAA, 0xD6, 0x58, 0x87, 0x2A,
+ 0x49, 0xE5, 0xD3, 0x18, 0x3B, 0x6C, 0xCE, 0xBD
+ },
+ {
+ 0x6F, 0x27, 0xF7, 0x7E, 0x7B, 0xCF, 0x46, 0xA1,
+ 0xE9, 0x63, 0xAD, 0xE0, 0x30, 0x97, 0x33, 0x54,
+ 0x30, 0x31, 0xDC, 0xCD, 0xD4, 0x7C, 0xAA, 0xC1,
+ 0x74, 0xD7, 0xD2, 0x7C, 0xE8, 0x07, 0x7E, 0x8B
+ },
+ {
+ 0xE3, 0xCD, 0x54, 0xDA, 0x7E, 0x44, 0x4C, 0xAA,
+ 0x62, 0x07, 0x56, 0x95, 0x25, 0xA6, 0x70, 0xEB,
+ 0xAE, 0x12, 0x78, 0xDE, 0x4E, 0x3F, 0xE2, 0x68,
+ 0x4B, 0x3E, 0x33, 0xF5, 0xEF, 0x90, 0xCC, 0x1B
+ },
+ {
+ 0xB2, 0xC3, 0xE3, 0x3A, 0x51, 0xD2, 0x2C, 0x4C,
+ 0x08, 0xFC, 0x09, 0x89, 0xC8, 0x73, 0xC9, 0xCC,
+ 0x41, 0x50, 0x57, 0x9B, 0x1E, 0x61, 0x63, 0xFA,
+ 0x69, 0x4A, 0xD5, 0x1D, 0x53, 0xD7, 0x12, 0xDC
+ },
+ {
+ 0xBE, 0x7F, 0xDA, 0x98, 0x3E, 0x13, 0x18, 0x9B,
+ 0x4C, 0x77, 0xE0, 0xA8, 0x09, 0x20, 0xB6, 0xE0,
+ 0xE0, 0xEA, 0x80, 0xC3, 0xB8, 0x4D, 0xBE, 0x7E,
+ 0x71, 0x17, 0xD2, 0x53, 0xF4, 0x81, 0x12, 0xF4
+ },
+ {
+ 0xB6, 0x00, 0x8C, 0x28, 0xFA, 0xE0, 0x8A, 0xA4,
+ 0x27, 0xE5, 0xBD, 0x3A, 0xAD, 0x36, 0xF1, 0x00,
+ 0x21, 0xF1, 0x6C, 0x77, 0xCF, 0xEA, 0xBE, 0xD0,
+ 0x7F, 0x97, 0xCC, 0x7D, 0xC1, 0xF1, 0x28, 0x4A
+ },
+ {
+ 0x6E, 0x4E, 0x67, 0x60, 0xC5, 0x38, 0xF2, 0xE9,
+ 0x7B, 0x3A, 0xDB, 0xFB, 0xBC, 0xDE, 0x57, 0xF8,
+ 0x96, 0x6B, 0x7E, 0xA8, 0xFC, 0xB5, 0xBF, 0x7E,
+ 0xFE, 0xC9, 0x13, 0xFD, 0x2A, 0x2B, 0x0C, 0x55
+ },
+ {
+ 0x4A, 0xE5, 0x1F, 0xD1, 0x83, 0x4A, 0xA5, 0xBD,
+ 0x9A, 0x6F, 0x7E, 0xC3, 0x9F, 0xC6, 0x63, 0x33,
+ 0x8D, 0xC5, 0xD2, 0xE2, 0x07, 0x61, 0x56, 0x6D,
+ 0x90, 0xCC, 0x68, 0xB1, 0xCB, 0x87, 0x5E, 0xD8
+ },
+ {
+ 0xB6, 0x73, 0xAA, 0xD7, 0x5A, 0xB1, 0xFD, 0xB5,
+ 0x40, 0x1A, 0xBF, 0xA1, 0xBF, 0x89, 0xF3, 0xAD,
+ 0xD2, 0xEB, 0xC4, 0x68, 0xDF, 0x36, 0x24, 0xA4,
+ 0x78, 0xF4, 0xFE, 0x85, 0x9D, 0x8D, 0x55, 0xE2
+ },
+ {
+ 0x13, 0xC9, 0x47, 0x1A, 0x98, 0x55, 0x91, 0x35,
+ 0x39, 0x83, 0x66, 0x60, 0x39, 0x8D, 0xA0, 0xF3,
+ 0xF9, 0x9A, 0xDA, 0x08, 0x47, 0x9C, 0x69, 0xD1,
+ 0xB7, 0xFC, 0xAA, 0x34, 0x61, 0xDD, 0x7E, 0x59
+ },
+ {
+ 0x2C, 0x11, 0xF4, 0xA7, 0xF9, 0x9A, 0x1D, 0x23,
+ 0xA5, 0x8B, 0xB6, 0x36, 0x35, 0x0F, 0xE8, 0x49,
+ 0xF2, 0x9C, 0xBA, 0xC1, 0xB2, 0xA1, 0x11, 0x2D,
+ 0x9F, 0x1E, 0xD5, 0xBC, 0x5B, 0x31, 0x3C, 0xCD
+ },
+ {
+ 0xC7, 0xD3, 0xC0, 0x70, 0x6B, 0x11, 0xAE, 0x74,
+ 0x1C, 0x05, 0xA1, 0xEF, 0x15, 0x0D, 0xD6, 0x5B,
+ 0x54, 0x94, 0xD6, 0xD5, 0x4C, 0x9A, 0x86, 0xE2,
+ 0x61, 0x78, 0x54, 0xE6, 0xAE, 0xEE, 0xBB, 0xD9
+ },
+ {
+ 0x19, 0x4E, 0x10, 0xC9, 0x38, 0x93, 0xAF, 0xA0,
+ 0x64, 0xC3, 0xAC, 0x04, 0xC0, 0xDD, 0x80, 0x8D,
+ 0x79, 0x1C, 0x3D, 0x4B, 0x75, 0x56, 0xE8, 0x9D,
+ 0x8D, 0x9C, 0xB2, 0x25, 0xC4, 0xB3, 0x33, 0x39
+ },
+ {
+ 0x6F, 0xC4, 0x98, 0x8B, 0x8F, 0x78, 0x54, 0x6B,
+ 0x16, 0x88, 0x99, 0x18, 0x45, 0x90, 0x8F, 0x13,
+ 0x4B, 0x6A, 0x48, 0x2E, 0x69, 0x94, 0xB3, 0xD4,
+ 0x83, 0x17, 0xBF, 0x08, 0xDB, 0x29, 0x21, 0x85
+ },
+ {
+ 0x56, 0x65, 0xBE, 0xB8, 0xB0, 0x95, 0x55, 0x25,
+ 0x81, 0x3B, 0x59, 0x81, 0xCD, 0x14, 0x2E, 0xD4,
+ 0xD0, 0x3F, 0xBA, 0x38, 0xA6, 0xF3, 0xE5, 0xAD,
+ 0x26, 0x8E, 0x0C, 0xC2, 0x70, 0xD1, 0xCD, 0x11
+ },
+ {
+ 0xB8, 0x83, 0xD6, 0x8F, 0x5F, 0xE5, 0x19, 0x36,
+ 0x43, 0x1B, 0xA4, 0x25, 0x67, 0x38, 0x05, 0x3B,
+ 0x1D, 0x04, 0x26, 0xD4, 0xCB, 0x64, 0xB1, 0x6E,
+ 0x83, 0xBA, 0xDC, 0x5E, 0x9F, 0xBE, 0x3B, 0x81
+ },
+ {
+ 0x53, 0xE7, 0xB2, 0x7E, 0xA5, 0x9C, 0x2F, 0x6D,
+ 0xBB, 0x50, 0x76, 0x9E, 0x43, 0x55, 0x4D, 0xF3,
+ 0x5A, 0xF8, 0x9F, 0x48, 0x22, 0xD0, 0x46, 0x6B,
+ 0x00, 0x7D, 0xD6, 0xF6, 0xDE, 0xAF, 0xFF, 0x02
+ },
+ {
+ 0x1F, 0x1A, 0x02, 0x29, 0xD4, 0x64, 0x0F, 0x01,
+ 0x90, 0x15, 0x88, 0xD9, 0xDE, 0xC2, 0x2D, 0x13,
+ 0xFC, 0x3E, 0xB3, 0x4A, 0x61, 0xB3, 0x29, 0x38,
+ 0xEF, 0xBF, 0x53, 0x34, 0xB2, 0x80, 0x0A, 0xFA
+ },
+ {
+ 0xC2, 0xB4, 0x05, 0xAF, 0xA0, 0xFA, 0x66, 0x68,
+ 0x85, 0x2A, 0xEE, 0x4D, 0x88, 0x04, 0x08, 0x53,
+ 0xFA, 0xB8, 0x00, 0xE7, 0x2B, 0x57, 0x58, 0x14,
+ 0x18, 0xE5, 0x50, 0x6F, 0x21, 0x4C, 0x7D, 0x1F
+ },
+ {
+ 0xC0, 0x8A, 0xA1, 0xC2, 0x86, 0xD7, 0x09, 0xFD,
+ 0xC7, 0x47, 0x37, 0x44, 0x97, 0x71, 0x88, 0xC8,
+ 0x95, 0xBA, 0x01, 0x10, 0x14, 0x24, 0x7E, 0x4E,
+ 0xFA, 0x8D, 0x07, 0xE7, 0x8F, 0xEC, 0x69, 0x5C
+ },
+ {
+ 0xF0, 0x3F, 0x57, 0x89, 0xD3, 0x33, 0x6B, 0x80,
+ 0xD0, 0x02, 0xD5, 0x9F, 0xDF, 0x91, 0x8B, 0xDB,
+ 0x77, 0x5B, 0x00, 0x95, 0x6E, 0xD5, 0x52, 0x8E,
+ 0x86, 0xAA, 0x99, 0x4A, 0xCB, 0x38, 0xFE, 0x2D
+ },
+};
+
+
+
+
+static const uint8_t blake2s_keyed_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
+{
+ {
+ 0x48, 0xA8, 0x99, 0x7D, 0xA4, 0x07, 0x87, 0x6B,
+ 0x3D, 0x79, 0xC0, 0xD9, 0x23, 0x25, 0xAD, 0x3B,
+ 0x89, 0xCB, 0xB7, 0x54, 0xD8, 0x6A, 0xB7, 0x1A,
+ 0xEE, 0x04, 0x7A, 0xD3, 0x45, 0xFD, 0x2C, 0x49
+ },
+ {
+ 0x40, 0xD1, 0x5F, 0xEE, 0x7C, 0x32, 0x88, 0x30,
+ 0x16, 0x6A, 0xC3, 0xF9, 0x18, 0x65, 0x0F, 0x80,
+ 0x7E, 0x7E, 0x01, 0xE1, 0x77, 0x25, 0x8C, 0xDC,
+ 0x0A, 0x39, 0xB1, 0x1F, 0x59, 0x80, 0x66, 0xF1
+ },
+ {
+ 0x6B, 0xB7, 0x13, 0x00, 0x64, 0x4C, 0xD3, 0x99,
+ 0x1B, 0x26, 0xCC, 0xD4, 0xD2, 0x74, 0xAC, 0xD1,
+ 0xAD, 0xEA, 0xB8, 0xB1, 0xD7, 0x91, 0x45, 0x46,
+ 0xC1, 0x19, 0x8B, 0xBE, 0x9F, 0xC9, 0xD8, 0x03
+ },
+ {
+ 0x1D, 0x22, 0x0D, 0xBE, 0x2E, 0xE1, 0x34, 0x66,
+ 0x1F, 0xDF, 0x6D, 0x9E, 0x74, 0xB4, 0x17, 0x04,
+ 0x71, 0x05, 0x56, 0xF2, 0xF6, 0xE5, 0xA0, 0x91,
+ 0xB2, 0x27, 0x69, 0x74, 0x45, 0xDB, 0xEA, 0x6B
+ },
+ {
+ 0xF6, 0xC3, 0xFB, 0xAD, 0xB4, 0xCC, 0x68, 0x7A,
+ 0x00, 0x64, 0xA5, 0xBE, 0x6E, 0x79, 0x1B, 0xEC,
+ 0x63, 0xB8, 0x68, 0xAD, 0x62, 0xFB, 0xA6, 0x1B,
+ 0x37, 0x57, 0xEF, 0x9C, 0xA5, 0x2E, 0x05, 0xB2
+ },
+ {
+ 0x49, 0xC1, 0xF2, 0x11, 0x88, 0xDF, 0xD7, 0x69,
+ 0xAE, 0xA0, 0xE9, 0x11, 0xDD, 0x6B, 0x41, 0xF1,
+ 0x4D, 0xAB, 0x10, 0x9D, 0x2B, 0x85, 0x97, 0x7A,
+ 0xA3, 0x08, 0x8B, 0x5C, 0x70, 0x7E, 0x85, 0x98
+ },
+ {
+ 0xFD, 0xD8, 0x99, 0x3D, 0xCD, 0x43, 0xF6, 0x96,
+ 0xD4, 0x4F, 0x3C, 0xEA, 0x0F, 0xF3, 0x53, 0x45,
+ 0x23, 0x4E, 0xC8, 0xEE, 0x08, 0x3E, 0xB3, 0xCA,
+ 0xDA, 0x01, 0x7C, 0x7F, 0x78, 0xC1, 0x71, 0x43
+ },
+ {
+ 0xE6, 0xC8, 0x12, 0x56, 0x37, 0x43, 0x8D, 0x09,
+ 0x05, 0xB7, 0x49, 0xF4, 0x65, 0x60, 0xAC, 0x89,
+ 0xFD, 0x47, 0x1C, 0xF8, 0x69, 0x2E, 0x28, 0xFA,
+ 0xB9, 0x82, 0xF7, 0x3F, 0x01, 0x9B, 0x83, 0xA9
+ },
+ {
+ 0x19, 0xFC, 0x8C, 0xA6, 0x97, 0x9D, 0x60, 0xE6,
+ 0xED, 0xD3, 0xB4, 0x54, 0x1E, 0x2F, 0x96, 0x7C,
+ 0xED, 0x74, 0x0D, 0xF6, 0xEC, 0x1E, 0xAE, 0xBB,
+ 0xFE, 0x81, 0x38, 0x32, 0xE9, 0x6B, 0x29, 0x74
+ },
+ {
+ 0xA6, 0xAD, 0x77, 0x7C, 0xE8, 0x81, 0xB5, 0x2B,
+ 0xB5, 0xA4, 0x42, 0x1A, 0xB6, 0xCD, 0xD2, 0xDF,
+ 0xBA, 0x13, 0xE9, 0x63, 0x65, 0x2D, 0x4D, 0x6D,
+ 0x12, 0x2A, 0xEE, 0x46, 0x54, 0x8C, 0x14, 0xA7
+ },
+ {
+ 0xF5, 0xC4, 0xB2, 0xBA, 0x1A, 0x00, 0x78, 0x1B,
+ 0x13, 0xAB, 0xA0, 0x42, 0x52, 0x42, 0xC6, 0x9C,
+ 0xB1, 0x55, 0x2F, 0x3F, 0x71, 0xA9, 0xA3, 0xBB,
+ 0x22, 0xB4, 0xA6, 0xB4, 0x27, 0x7B, 0x46, 0xDD
+ },
+ {
+ 0xE3, 0x3C, 0x4C, 0x9B, 0xD0, 0xCC, 0x7E, 0x45,
+ 0xC8, 0x0E, 0x65, 0xC7, 0x7F, 0xA5, 0x99, 0x7F,
+ 0xEC, 0x70, 0x02, 0x73, 0x85, 0x41, 0x50, 0x9E,
+ 0x68, 0xA9, 0x42, 0x38, 0x91, 0xE8, 0x22, 0xA3
+ },
+ {
+ 0xFB, 0xA1, 0x61, 0x69, 0xB2, 0xC3, 0xEE, 0x10,
+ 0x5B, 0xE6, 0xE1, 0xE6, 0x50, 0xE5, 0xCB, 0xF4,
+ 0x07, 0x46, 0xB6, 0x75, 0x3D, 0x03, 0x6A, 0xB5,
+ 0x51, 0x79, 0x01, 0x4A, 0xD7, 0xEF, 0x66, 0x51
+ },
+ {
+ 0xF5, 0xC4, 0xBE, 0xC6, 0xD6, 0x2F, 0xC6, 0x08,
+ 0xBF, 0x41, 0xCC, 0x11, 0x5F, 0x16, 0xD6, 0x1C,
+ 0x7E, 0xFD, 0x3F, 0xF6, 0xC6, 0x56, 0x92, 0xBB,
+ 0xE0, 0xAF, 0xFF, 0xB1, 0xFE, 0xDE, 0x74, 0x75
+ },
+ {
+ 0xA4, 0x86, 0x2E, 0x76, 0xDB, 0x84, 0x7F, 0x05,
+ 0xBA, 0x17, 0xED, 0xE5, 0xDA, 0x4E, 0x7F, 0x91,
+ 0xB5, 0x92, 0x5C, 0xF1, 0xAD, 0x4B, 0xA1, 0x27,
+ 0x32, 0xC3, 0x99, 0x57, 0x42, 0xA5, 0xCD, 0x6E
+ },
+ {
+ 0x65, 0xF4, 0xB8, 0x60, 0xCD, 0x15, 0xB3, 0x8E,
+ 0xF8, 0x14, 0xA1, 0xA8, 0x04, 0x31, 0x4A, 0x55,
+ 0xBE, 0x95, 0x3C, 0xAA, 0x65, 0xFD, 0x75, 0x8A,
+ 0xD9, 0x89, 0xFF, 0x34, 0xA4, 0x1C, 0x1E, 0xEA
+ },
+ {
+ 0x19, 0xBA, 0x23, 0x4F, 0x0A, 0x4F, 0x38, 0x63,
+ 0x7D, 0x18, 0x39, 0xF9, 0xD9, 0xF7, 0x6A, 0xD9,
+ 0x1C, 0x85, 0x22, 0x30, 0x71, 0x43, 0xC9, 0x7D,
+ 0x5F, 0x93, 0xF6, 0x92, 0x74, 0xCE, 0xC9, 0xA7
+ },
+ {
+ 0x1A, 0x67, 0x18, 0x6C, 0xA4, 0xA5, 0xCB, 0x8E,
+ 0x65, 0xFC, 0xA0, 0xE2, 0xEC, 0xBC, 0x5D, 0xDC,
+ 0x14, 0xAE, 0x38, 0x1B, 0xB8, 0xBF, 0xFE, 0xB9,
+ 0xE0, 0xA1, 0x03, 0x44, 0x9E, 0x3E, 0xF0, 0x3C
+ },
+ {
+ 0xAF, 0xBE, 0xA3, 0x17, 0xB5, 0xA2, 0xE8, 0x9C,
+ 0x0B, 0xD9, 0x0C, 0xCF, 0x5D, 0x7F, 0xD0, 0xED,
+ 0x57, 0xFE, 0x58, 0x5E, 0x4B, 0xE3, 0x27, 0x1B,
+ 0x0A, 0x6B, 0xF0, 0xF5, 0x78, 0x6B, 0x0F, 0x26
+ },
+ {
+ 0xF1, 0xB0, 0x15, 0x58, 0xCE, 0x54, 0x12, 0x62,
+ 0xF5, 0xEC, 0x34, 0x29, 0x9D, 0x6F, 0xB4, 0x09,
+ 0x00, 0x09, 0xE3, 0x43, 0x4B, 0xE2, 0xF4, 0x91,
+ 0x05, 0xCF, 0x46, 0xAF, 0x4D, 0x2D, 0x41, 0x24
+ },
+ {
+ 0x13, 0xA0, 0xA0, 0xC8, 0x63, 0x35, 0x63, 0x5E,
+ 0xAA, 0x74, 0xCA, 0x2D, 0x5D, 0x48, 0x8C, 0x79,
+ 0x7B, 0xBB, 0x4F, 0x47, 0xDC, 0x07, 0x10, 0x50,
+ 0x15, 0xED, 0x6A, 0x1F, 0x33, 0x09, 0xEF, 0xCE
+ },
+ {
+ 0x15, 0x80, 0xAF, 0xEE, 0xBE, 0xBB, 0x34, 0x6F,
+ 0x94, 0xD5, 0x9F, 0xE6, 0x2D, 0xA0, 0xB7, 0x92,
+ 0x37, 0xEA, 0xD7, 0xB1, 0x49, 0x1F, 0x56, 0x67,
+ 0xA9, 0x0E, 0x45, 0xED, 0xF6, 0xCA, 0x8B, 0x03
+ },
+ {
+ 0x20, 0xBE, 0x1A, 0x87, 0x5B, 0x38, 0xC5, 0x73,
+ 0xDD, 0x7F, 0xAA, 0xA0, 0xDE, 0x48, 0x9D, 0x65,
+ 0x5C, 0x11, 0xEF, 0xB6, 0xA5, 0x52, 0x69, 0x8E,
+ 0x07, 0xA2, 0xD3, 0x31, 0xB5, 0xF6, 0x55, 0xC3
+ },
+ {
+ 0xBE, 0x1F, 0xE3, 0xC4, 0xC0, 0x40, 0x18, 0xC5,
+ 0x4C, 0x4A, 0x0F, 0x6B, 0x9A, 0x2E, 0xD3, 0xC5,
+ 0x3A, 0xBE, 0x3A, 0x9F, 0x76, 0xB4, 0xD2, 0x6D,
+ 0xE5, 0x6F, 0xC9, 0xAE, 0x95, 0x05, 0x9A, 0x99
+ },
+ {
+ 0xE3, 0xE3, 0xAC, 0xE5, 0x37, 0xEB, 0x3E, 0xDD,
+ 0x84, 0x63, 0xD9, 0xAD, 0x35, 0x82, 0xE1, 0x3C,
+ 0xF8, 0x65, 0x33, 0xFF, 0xDE, 0x43, 0xD6, 0x68,
+ 0xDD, 0x2E, 0x93, 0xBB, 0xDB, 0xD7, 0x19, 0x5A
+ },
+ {
+ 0x11, 0x0C, 0x50, 0xC0, 0xBF, 0x2C, 0x6E, 0x7A,
+ 0xEB, 0x7E, 0x43, 0x5D, 0x92, 0xD1, 0x32, 0xAB,
+ 0x66, 0x55, 0x16, 0x8E, 0x78, 0xA2, 0xDE, 0xCD,
+ 0xEC, 0x33, 0x30, 0x77, 0x76, 0x84, 0xD9, 0xC1
+ },
+ {
+ 0xE9, 0xBA, 0x8F, 0x50, 0x5C, 0x9C, 0x80, 0xC0,
+ 0x86, 0x66, 0xA7, 0x01, 0xF3, 0x36, 0x7E, 0x6C,
+ 0xC6, 0x65, 0xF3, 0x4B, 0x22, 0xE7, 0x3C, 0x3C,
+ 0x04, 0x17, 0xEB, 0x1C, 0x22, 0x06, 0x08, 0x2F
+ },
+ {
+ 0x26, 0xCD, 0x66, 0xFC, 0xA0, 0x23, 0x79, 0xC7,
+ 0x6D, 0xF1, 0x23, 0x17, 0x05, 0x2B, 0xCA, 0xFD,
+ 0x6C, 0xD8, 0xC3, 0xA7, 0xB8, 0x90, 0xD8, 0x05,
+ 0xF3, 0x6C, 0x49, 0x98, 0x97, 0x82, 0x43, 0x3A
+ },
+ {
+ 0x21, 0x3F, 0x35, 0x96, 0xD6, 0xE3, 0xA5, 0xD0,
+ 0xE9, 0x93, 0x2C, 0xD2, 0x15, 0x91, 0x46, 0x01,
+ 0x5E, 0x2A, 0xBC, 0x94, 0x9F, 0x47, 0x29, 0xEE,
+ 0x26, 0x32, 0xFE, 0x1E, 0xDB, 0x78, 0xD3, 0x37
+ },
+ {
+ 0x10, 0x15, 0xD7, 0x01, 0x08, 0xE0, 0x3B, 0xE1,
+ 0xC7, 0x02, 0xFE, 0x97, 0x25, 0x36, 0x07, 0xD1,
+ 0x4A, 0xEE, 0x59, 0x1F, 0x24, 0x13, 0xEA, 0x67,
+ 0x87, 0x42, 0x7B, 0x64, 0x59, 0xFF, 0x21, 0x9A
+ },
+ {
+ 0x3C, 0xA9, 0x89, 0xDE, 0x10, 0xCF, 0xE6, 0x09,
+ 0x90, 0x94, 0x72, 0xC8, 0xD3, 0x56, 0x10, 0x80,
+ 0x5B, 0x2F, 0x97, 0x77, 0x34, 0xCF, 0x65, 0x2C,
+ 0xC6, 0x4B, 0x3B, 0xFC, 0x88, 0x2D, 0x5D, 0x89
+ },
+ {
+ 0xB6, 0x15, 0x6F, 0x72, 0xD3, 0x80, 0xEE, 0x9E,
+ 0xA6, 0xAC, 0xD1, 0x90, 0x46, 0x4F, 0x23, 0x07,
+ 0xA5, 0xC1, 0x79, 0xEF, 0x01, 0xFD, 0x71, 0xF9,
+ 0x9F, 0x2D, 0x0F, 0x7A, 0x57, 0x36, 0x0A, 0xEA
+ },
+ {
+ 0xC0, 0x3B, 0xC6, 0x42, 0xB2, 0x09, 0x59, 0xCB,
+ 0xE1, 0x33, 0xA0, 0x30, 0x3E, 0x0C, 0x1A, 0xBF,
+ 0xF3, 0xE3, 0x1E, 0xC8, 0xE1, 0xA3, 0x28, 0xEC,
+ 0x85, 0x65, 0xC3, 0x6D, 0xEC, 0xFF, 0x52, 0x65
+ },
+ {
+ 0x2C, 0x3E, 0x08, 0x17, 0x6F, 0x76, 0x0C, 0x62,
+ 0x64, 0xC3, 0xA2, 0xCD, 0x66, 0xFE, 0xC6, 0xC3,
+ 0xD7, 0x8D, 0xE4, 0x3F, 0xC1, 0x92, 0x45, 0x7B,
+ 0x2A, 0x4A, 0x66, 0x0A, 0x1E, 0x0E, 0xB2, 0x2B
+ },
+ {
+ 0xF7, 0x38, 0xC0, 0x2F, 0x3C, 0x1B, 0x19, 0x0C,
+ 0x51, 0x2B, 0x1A, 0x32, 0xDE, 0xAB, 0xF3, 0x53,
+ 0x72, 0x8E, 0x0E, 0x9A, 0xB0, 0x34, 0x49, 0x0E,
+ 0x3C, 0x34, 0x09, 0x94, 0x6A, 0x97, 0xAE, 0xEC
+ },
+ {
+ 0x8B, 0x18, 0x80, 0xDF, 0x30, 0x1C, 0xC9, 0x63,
+ 0x41, 0x88, 0x11, 0x08, 0x89, 0x64, 0x83, 0x92,
+ 0x87, 0xFF, 0x7F, 0xE3, 0x1C, 0x49, 0xEA, 0x6E,
+ 0xBD, 0x9E, 0x48, 0xBD, 0xEE, 0xE4, 0x97, 0xC5
+ },
+ {
+ 0x1E, 0x75, 0xCB, 0x21, 0xC6, 0x09, 0x89, 0x02,
+ 0x03, 0x75, 0xF1, 0xA7, 0xA2, 0x42, 0x83, 0x9F,
+ 0x0B, 0x0B, 0x68, 0x97, 0x3A, 0x4C, 0x2A, 0x05,
+ 0xCF, 0x75, 0x55, 0xED, 0x5A, 0xAE, 0xC4, 0xC1
+ },
+ {
+ 0x62, 0xBF, 0x8A, 0x9C, 0x32, 0xA5, 0xBC, 0xCF,
+ 0x29, 0x0B, 0x6C, 0x47, 0x4D, 0x75, 0xB2, 0xA2,
+ 0xA4, 0x09, 0x3F, 0x1A, 0x9E, 0x27, 0x13, 0x94,
+ 0x33, 0xA8, 0xF2, 0xB3, 0xBC, 0xE7, 0xB8, 0xD7
+ },
+ {
+ 0x16, 0x6C, 0x83, 0x50, 0xD3, 0x17, 0x3B, 0x5E,
+ 0x70, 0x2B, 0x78, 0x3D, 0xFD, 0x33, 0xC6, 0x6E,
+ 0xE0, 0x43, 0x27, 0x42, 0xE9, 0xB9, 0x2B, 0x99,
+ 0x7F, 0xD2, 0x3C, 0x60, 0xDC, 0x67, 0x56, 0xCA
+ },
+ {
+ 0x04, 0x4A, 0x14, 0xD8, 0x22, 0xA9, 0x0C, 0xAC,
+ 0xF2, 0xF5, 0xA1, 0x01, 0x42, 0x8A, 0xDC, 0x8F,
+ 0x41, 0x09, 0x38, 0x6C, 0xCB, 0x15, 0x8B, 0xF9,
+ 0x05, 0xC8, 0x61, 0x8B, 0x8E, 0xE2, 0x4E, 0xC3
+ },
+ {
+ 0x38, 0x7D, 0x39, 0x7E, 0xA4, 0x3A, 0x99, 0x4B,
+ 0xE8, 0x4D, 0x2D, 0x54, 0x4A, 0xFB, 0xE4, 0x81,
+ 0xA2, 0x00, 0x0F, 0x55, 0x25, 0x26, 0x96, 0xBB,
+ 0xA2, 0xC5, 0x0C, 0x8E, 0xBD, 0x10, 0x13, 0x47
+ },
+ {
+ 0x56, 0xF8, 0xCC, 0xF1, 0xF8, 0x64, 0x09, 0xB4,
+ 0x6C, 0xE3, 0x61, 0x66, 0xAE, 0x91, 0x65, 0x13,
+ 0x84, 0x41, 0x57, 0x75, 0x89, 0xDB, 0x08, 0xCB,
+ 0xC5, 0xF6, 0x6C, 0xA2, 0x97, 0x43, 0xB9, 0xFD
+ },
+ {
+ 0x97, 0x06, 0xC0, 0x92, 0xB0, 0x4D, 0x91, 0xF5,
+ 0x3D, 0xFF, 0x91, 0xFA, 0x37, 0xB7, 0x49, 0x3D,
+ 0x28, 0xB5, 0x76, 0xB5, 0xD7, 0x10, 0x46, 0x9D,
+ 0xF7, 0x94, 0x01, 0x66, 0x22, 0x36, 0xFC, 0x03
+ },
+ {
+ 0x87, 0x79, 0x68, 0x68, 0x6C, 0x06, 0x8C, 0xE2,
+ 0xF7, 0xE2, 0xAD, 0xCF, 0xF6, 0x8B, 0xF8, 0x74,
+ 0x8E, 0xDF, 0x3C, 0xF8, 0x62, 0xCF, 0xB4, 0xD3,
+ 0x94, 0x7A, 0x31, 0x06, 0x95, 0x80, 0x54, 0xE3
+ },
+ {
+ 0x88, 0x17, 0xE5, 0x71, 0x98, 0x79, 0xAC, 0xF7,
+ 0x02, 0x47, 0x87, 0xEC, 0xCD, 0xB2, 0x71, 0x03,
+ 0x55, 0x66, 0xCF, 0xA3, 0x33, 0xE0, 0x49, 0x40,
+ 0x7C, 0x01, 0x78, 0xCC, 0xC5, 0x7A, 0x5B, 0x9F
+ },
+ {
+ 0x89, 0x38, 0x24, 0x9E, 0x4B, 0x50, 0xCA, 0xDA,
+ 0xCC, 0xDF, 0x5B, 0x18, 0x62, 0x13, 0x26, 0xCB,
+ 0xB1, 0x52, 0x53, 0xE3, 0x3A, 0x20, 0xF5, 0x63,
+ 0x6E, 0x99, 0x5D, 0x72, 0x47, 0x8D, 0xE4, 0x72
+ },
+ {
+ 0xF1, 0x64, 0xAB, 0xBA, 0x49, 0x63, 0xA4, 0x4D,
+ 0x10, 0x72, 0x57, 0xE3, 0x23, 0x2D, 0x90, 0xAC,
+ 0xA5, 0xE6, 0x6A, 0x14, 0x08, 0x24, 0x8C, 0x51,
+ 0x74, 0x1E, 0x99, 0x1D, 0xB5, 0x22, 0x77, 0x56
+ },
+ {
+ 0xD0, 0x55, 0x63, 0xE2, 0xB1, 0xCB, 0xA0, 0xC4,
+ 0xA2, 0xA1, 0xE8, 0xBD, 0xE3, 0xA1, 0xA0, 0xD9,
+ 0xF5, 0xB4, 0x0C, 0x85, 0xA0, 0x70, 0xD6, 0xF5,
+ 0xFB, 0x21, 0x06, 0x6E, 0xAD, 0x5D, 0x06, 0x01
+ },
+ {
+ 0x03, 0xFB, 0xB1, 0x63, 0x84, 0xF0, 0xA3, 0x86,
+ 0x6F, 0x4C, 0x31, 0x17, 0x87, 0x76, 0x66, 0xEF,
+ 0xBF, 0x12, 0x45, 0x97, 0x56, 0x4B, 0x29, 0x3D,
+ 0x4A, 0xAB, 0x0D, 0x26, 0x9F, 0xAB, 0xDD, 0xFA
+ },
+ {
+ 0x5F, 0xA8, 0x48, 0x6A, 0xC0, 0xE5, 0x29, 0x64,
+ 0xD1, 0x88, 0x1B, 0xBE, 0x33, 0x8E, 0xB5, 0x4B,
+ 0xE2, 0xF7, 0x19, 0x54, 0x92, 0x24, 0x89, 0x20,
+ 0x57, 0xB4, 0xDA, 0x04, 0xBA, 0x8B, 0x34, 0x75
+ },
+ {
+ 0xCD, 0xFA, 0xBC, 0xEE, 0x46, 0x91, 0x11, 0x11,
+ 0x23, 0x6A, 0x31, 0x70, 0x8B, 0x25, 0x39, 0xD7,
+ 0x1F, 0xC2, 0x11, 0xD9, 0xB0, 0x9C, 0x0D, 0x85,
+ 0x30, 0xA1, 0x1E, 0x1D, 0xBF, 0x6E, 0xED, 0x01
+ },
+ {
+ 0x4F, 0x82, 0xDE, 0x03, 0xB9, 0x50, 0x47, 0x93,
+ 0xB8, 0x2A, 0x07, 0xA0, 0xBD, 0xCD, 0xFF, 0x31,
+ 0x4D, 0x75, 0x9E, 0x7B, 0x62, 0xD2, 0x6B, 0x78,
+ 0x49, 0x46, 0xB0, 0xD3, 0x6F, 0x91, 0x6F, 0x52
+ },
+ {
+ 0x25, 0x9E, 0xC7, 0xF1, 0x73, 0xBC, 0xC7, 0x6A,
+ 0x09, 0x94, 0xC9, 0x67, 0xB4, 0xF5, 0xF0, 0x24,
+ 0xC5, 0x60, 0x57, 0xFB, 0x79, 0xC9, 0x65, 0xC4,
+ 0xFA, 0xE4, 0x18, 0x75, 0xF0, 0x6A, 0x0E, 0x4C
+ },
+ {
+ 0x19, 0x3C, 0xC8, 0xE7, 0xC3, 0xE0, 0x8B, 0xB3,
+ 0x0F, 0x54, 0x37, 0xAA, 0x27, 0xAD, 0xE1, 0xF1,
+ 0x42, 0x36, 0x9B, 0x24, 0x6A, 0x67, 0x5B, 0x23,
+ 0x83, 0xE6, 0xDA, 0x9B, 0x49, 0xA9, 0x80, 0x9E
+ },
+ {
+ 0x5C, 0x10, 0x89, 0x6F, 0x0E, 0x28, 0x56, 0xB2,
+ 0xA2, 0xEE, 0xE0, 0xFE, 0x4A, 0x2C, 0x16, 0x33,
+ 0x56, 0x5D, 0x18, 0xF0, 0xE9, 0x3E, 0x1F, 0xAB,
+ 0x26, 0xC3, 0x73, 0xE8, 0xF8, 0x29, 0x65, 0x4D
+ },
+ {
+ 0xF1, 0x60, 0x12, 0xD9, 0x3F, 0x28, 0x85, 0x1A,
+ 0x1E, 0xB9, 0x89, 0xF5, 0xD0, 0xB4, 0x3F, 0x3F,
+ 0x39, 0xCA, 0x73, 0xC9, 0xA6, 0x2D, 0x51, 0x81,
+ 0xBF, 0xF2, 0x37, 0x53, 0x6B, 0xD3, 0x48, 0xC3
+ },
+ {
+ 0x29, 0x66, 0xB3, 0xCF, 0xAE, 0x1E, 0x44, 0xEA,
+ 0x99, 0x6D, 0xC5, 0xD6, 0x86, 0xCF, 0x25, 0xFA,
+ 0x05, 0x3F, 0xB6, 0xF6, 0x72, 0x01, 0xB9, 0xE4,
+ 0x6E, 0xAD, 0xE8, 0x5D, 0x0A, 0xD6, 0xB8, 0x06
+ },
+ {
+ 0xDD, 0xB8, 0x78, 0x24, 0x85, 0xE9, 0x00, 0xBC,
+ 0x60, 0xBC, 0xF4, 0xC3, 0x3A, 0x6F, 0xD5, 0x85,
+ 0x68, 0x0C, 0xC6, 0x83, 0xD5, 0x16, 0xEF, 0xA0,
+ 0x3E, 0xB9, 0x98, 0x5F, 0xAD, 0x87, 0x15, 0xFB
+ },
+ {
+ 0x4C, 0x4D, 0x6E, 0x71, 0xAE, 0xA0, 0x57, 0x86,
+ 0x41, 0x31, 0x48, 0xFC, 0x7A, 0x78, 0x6B, 0x0E,
+ 0xCA, 0xF5, 0x82, 0xCF, 0xF1, 0x20, 0x9F, 0x5A,
+ 0x80, 0x9F, 0xBA, 0x85, 0x04, 0xCE, 0x66, 0x2C
+ },
+ {
+ 0xFB, 0x4C, 0x5E, 0x86, 0xD7, 0xB2, 0x22, 0x9B,
+ 0x99, 0xB8, 0xBA, 0x6D, 0x94, 0xC2, 0x47, 0xEF,
+ 0x96, 0x4A, 0xA3, 0xA2, 0xBA, 0xE8, 0xED, 0xC7,
+ 0x75, 0x69, 0xF2, 0x8D, 0xBB, 0xFF, 0x2D, 0x4E
+ },
+ {
+ 0xE9, 0x4F, 0x52, 0x6D, 0xE9, 0x01, 0x96, 0x33,
+ 0xEC, 0xD5, 0x4A, 0xC6, 0x12, 0x0F, 0x23, 0x95,
+ 0x8D, 0x77, 0x18, 0xF1, 0xE7, 0x71, 0x7B, 0xF3,
+ 0x29, 0x21, 0x1A, 0x4F, 0xAE, 0xED, 0x4E, 0x6D
+ },
+ {
+ 0xCB, 0xD6, 0x66, 0x0A, 0x10, 0xDB, 0x3F, 0x23,
+ 0xF7, 0xA0, 0x3D, 0x4B, 0x9D, 0x40, 0x44, 0xC7,
+ 0x93, 0x2B, 0x28, 0x01, 0xAC, 0x89, 0xD6, 0x0B,
+ 0xC9, 0xEB, 0x92, 0xD6, 0x5A, 0x46, 0xC2, 0xA0
+ },
+ {
+ 0x88, 0x18, 0xBB, 0xD3, 0xDB, 0x4D, 0xC1, 0x23,
+ 0xB2, 0x5C, 0xBB, 0xA5, 0xF5, 0x4C, 0x2B, 0xC4,
+ 0xB3, 0xFC, 0xF9, 0xBF, 0x7D, 0x7A, 0x77, 0x09,
+ 0xF4, 0xAE, 0x58, 0x8B, 0x26, 0x7C, 0x4E, 0xCE
+ },
+ {
+ 0xC6, 0x53, 0x82, 0x51, 0x3F, 0x07, 0x46, 0x0D,
+ 0xA3, 0x98, 0x33, 0xCB, 0x66, 0x6C, 0x5E, 0xD8,
+ 0x2E, 0x61, 0xB9, 0xE9, 0x98, 0xF4, 0xB0, 0xC4,
+ 0x28, 0x7C, 0xEE, 0x56, 0xC3, 0xCC, 0x9B, 0xCD
+ },
+ {
+ 0x89, 0x75, 0xB0, 0x57, 0x7F, 0xD3, 0x55, 0x66,
+ 0xD7, 0x50, 0xB3, 0x62, 0xB0, 0x89, 0x7A, 0x26,
+ 0xC3, 0x99, 0x13, 0x6D, 0xF0, 0x7B, 0xAB, 0xAB,
+ 0xBD, 0xE6, 0x20, 0x3F, 0xF2, 0x95, 0x4E, 0xD4
+ },
+ {
+ 0x21, 0xFE, 0x0C, 0xEB, 0x00, 0x52, 0xBE, 0x7F,
+ 0xB0, 0xF0, 0x04, 0x18, 0x7C, 0xAC, 0xD7, 0xDE,
+ 0x67, 0xFA, 0x6E, 0xB0, 0x93, 0x8D, 0x92, 0x76,
+ 0x77, 0xF2, 0x39, 0x8C, 0x13, 0x23, 0x17, 0xA8
+ },
+ {
+ 0x2E, 0xF7, 0x3F, 0x3C, 0x26, 0xF1, 0x2D, 0x93,
+ 0x88, 0x9F, 0x3C, 0x78, 0xB6, 0xA6, 0x6C, 0x1D,
+ 0x52, 0xB6, 0x49, 0xDC, 0x9E, 0x85, 0x6E, 0x2C,
+ 0x17, 0x2E, 0xA7, 0xC5, 0x8A, 0xC2, 0xB5, 0xE3
+ },
+ {
+ 0x38, 0x8A, 0x3C, 0xD5, 0x6D, 0x73, 0x86, 0x7A,
+ 0xBB, 0x5F, 0x84, 0x01, 0x49, 0x2B, 0x6E, 0x26,
+ 0x81, 0xEB, 0x69, 0x85, 0x1E, 0x76, 0x7F, 0xD8,
+ 0x42, 0x10, 0xA5, 0x60, 0x76, 0xFB, 0x3D, 0xD3
+ },
+ {
+ 0xAF, 0x53, 0x3E, 0x02, 0x2F, 0xC9, 0x43, 0x9E,
+ 0x4E, 0x3C, 0xB8, 0x38, 0xEC, 0xD1, 0x86, 0x92,
+ 0x23, 0x2A, 0xDF, 0x6F, 0xE9, 0x83, 0x95, 0x26,
+ 0xD3, 0xC3, 0xDD, 0x1B, 0x71, 0x91, 0x0B, 0x1A
+ },
+ {
+ 0x75, 0x1C, 0x09, 0xD4, 0x1A, 0x93, 0x43, 0x88,
+ 0x2A, 0x81, 0xCD, 0x13, 0xEE, 0x40, 0x81, 0x8D,
+ 0x12, 0xEB, 0x44, 0xC6, 0xC7, 0xF4, 0x0D, 0xF1,
+ 0x6E, 0x4A, 0xEA, 0x8F, 0xAB, 0x91, 0x97, 0x2A
+ },
+ {
+ 0x5B, 0x73, 0xDD, 0xB6, 0x8D, 0x9D, 0x2B, 0x0A,
+ 0xA2, 0x65, 0xA0, 0x79, 0x88, 0xD6, 0xB8, 0x8A,
+ 0xE9, 0xAA, 0xC5, 0x82, 0xAF, 0x83, 0x03, 0x2F,
+ 0x8A, 0x9B, 0x21, 0xA2, 0xE1, 0xB7, 0xBF, 0x18
+ },
+ {
+ 0x3D, 0xA2, 0x91, 0x26, 0xC7, 0xC5, 0xD7, 0xF4,
+ 0x3E, 0x64, 0x24, 0x2A, 0x79, 0xFE, 0xAA, 0x4E,
+ 0xF3, 0x45, 0x9C, 0xDE, 0xCC, 0xC8, 0x98, 0xED,
+ 0x59, 0xA9, 0x7F, 0x6E, 0xC9, 0x3B, 0x9D, 0xAB
+ },
+ {
+ 0x56, 0x6D, 0xC9, 0x20, 0x29, 0x3D, 0xA5, 0xCB,
+ 0x4F, 0xE0, 0xAA, 0x8A, 0xBD, 0xA8, 0xBB, 0xF5,
+ 0x6F, 0x55, 0x23, 0x13, 0xBF, 0xF1, 0x90, 0x46,
+ 0x64, 0x1E, 0x36, 0x15, 0xC1, 0xE3, 0xED, 0x3F
+ },
+ {
+ 0x41, 0x15, 0xBE, 0xA0, 0x2F, 0x73, 0xF9, 0x7F,
+ 0x62, 0x9E, 0x5C, 0x55, 0x90, 0x72, 0x0C, 0x01,
+ 0xE7, 0xE4, 0x49, 0xAE, 0x2A, 0x66, 0x97, 0xD4,
+ 0xD2, 0x78, 0x33, 0x21, 0x30, 0x36, 0x92, 0xF9
+ },
+ {
+ 0x4C, 0xE0, 0x8F, 0x47, 0x62, 0x46, 0x8A, 0x76,
+ 0x70, 0x01, 0x21, 0x64, 0x87, 0x8D, 0x68, 0x34,
+ 0x0C, 0x52, 0xA3, 0x5E, 0x66, 0xC1, 0x88, 0x4D,
+ 0x5C, 0x86, 0x48, 0x89, 0xAB, 0xC9, 0x66, 0x77
+ },
+ {
+ 0x81, 0xEA, 0x0B, 0x78, 0x04, 0x12, 0x4E, 0x0C,
+ 0x22, 0xEA, 0x5F, 0xC7, 0x11, 0x04, 0xA2, 0xAF,
+ 0xCB, 0x52, 0xA1, 0xFA, 0x81, 0x6F, 0x3E, 0xCB,
+ 0x7D, 0xCB, 0x5D, 0x9D, 0xEA, 0x17, 0x86, 0xD0
+ },
+ {
+ 0xFE, 0x36, 0x27, 0x33, 0xB0, 0x5F, 0x6B, 0xED,
+ 0xAF, 0x93, 0x79, 0xD7, 0xF7, 0x93, 0x6E, 0xDE,
+ 0x20, 0x9B, 0x1F, 0x83, 0x23, 0xC3, 0x92, 0x25,
+ 0x49, 0xD9, 0xE7, 0x36, 0x81, 0xB5, 0xDB, 0x7B
+ },
+ {
+ 0xEF, 0xF3, 0x7D, 0x30, 0xDF, 0xD2, 0x03, 0x59,
+ 0xBE, 0x4E, 0x73, 0xFD, 0xF4, 0x0D, 0x27, 0x73,
+ 0x4B, 0x3D, 0xF9, 0x0A, 0x97, 0xA5, 0x5E, 0xD7,
+ 0x45, 0x29, 0x72, 0x94, 0xCA, 0x85, 0xD0, 0x9F
+ },
+ {
+ 0x17, 0x2F, 0xFC, 0x67, 0x15, 0x3D, 0x12, 0xE0,
+ 0xCA, 0x76, 0xA8, 0xB6, 0xCD, 0x5D, 0x47, 0x31,
+ 0x88, 0x5B, 0x39, 0xCE, 0x0C, 0xAC, 0x93, 0xA8,
+ 0x97, 0x2A, 0x18, 0x00, 0x6C, 0x8B, 0x8B, 0xAF
+ },
+ {
+ 0xC4, 0x79, 0x57, 0xF1, 0xCC, 0x88, 0xE8, 0x3E,
+ 0xF9, 0x44, 0x58, 0x39, 0x70, 0x9A, 0x48, 0x0A,
+ 0x03, 0x6B, 0xED, 0x5F, 0x88, 0xAC, 0x0F, 0xCC,
+ 0x8E, 0x1E, 0x70, 0x3F, 0xFA, 0xAC, 0x13, 0x2C
+ },
+ {
+ 0x30, 0xF3, 0x54, 0x83, 0x70, 0xCF, 0xDC, 0xED,
+ 0xA5, 0xC3, 0x7B, 0x56, 0x9B, 0x61, 0x75, 0xE7,
+ 0x99, 0xEE, 0xF1, 0xA6, 0x2A, 0xAA, 0x94, 0x32,
+ 0x45, 0xAE, 0x76, 0x69, 0xC2, 0x27, 0xA7, 0xB5
+ },
+ {
+ 0xC9, 0x5D, 0xCB, 0x3C, 0xF1, 0xF2, 0x7D, 0x0E,
+ 0xEF, 0x2F, 0x25, 0xD2, 0x41, 0x38, 0x70, 0x90,
+ 0x4A, 0x87, 0x7C, 0x4A, 0x56, 0xC2, 0xDE, 0x1E,
+ 0x83, 0xE2, 0xBC, 0x2A, 0xE2, 0xE4, 0x68, 0x21
+ },
+ {
+ 0xD5, 0xD0, 0xB5, 0xD7, 0x05, 0x43, 0x4C, 0xD4,
+ 0x6B, 0x18, 0x57, 0x49, 0xF6, 0x6B, 0xFB, 0x58,
+ 0x36, 0xDC, 0xDF, 0x6E, 0xE5, 0x49, 0xA2, 0xB7,
+ 0xA4, 0xAE, 0xE7, 0xF5, 0x80, 0x07, 0xCA, 0xAF
+ },
+ {
+ 0xBB, 0xC1, 0x24, 0xA7, 0x12, 0xF1, 0x5D, 0x07,
+ 0xC3, 0x00, 0xE0, 0x5B, 0x66, 0x83, 0x89, 0xA4,
+ 0x39, 0xC9, 0x17, 0x77, 0xF7, 0x21, 0xF8, 0x32,
+ 0x0C, 0x1C, 0x90, 0x78, 0x06, 0x6D, 0x2C, 0x7E
+ },
+ {
+ 0xA4, 0x51, 0xB4, 0x8C, 0x35, 0xA6, 0xC7, 0x85,
+ 0x4C, 0xFA, 0xAE, 0x60, 0x26, 0x2E, 0x76, 0x99,
+ 0x08, 0x16, 0x38, 0x2A, 0xC0, 0x66, 0x7E, 0x5A,
+ 0x5C, 0x9E, 0x1B, 0x46, 0xC4, 0x34, 0x2D, 0xDF
+ },
+ {
+ 0xB0, 0xD1, 0x50, 0xFB, 0x55, 0xE7, 0x78, 0xD0,
+ 0x11, 0x47, 0xF0, 0xB5, 0xD8, 0x9D, 0x99, 0xEC,
+ 0xB2, 0x0F, 0xF0, 0x7E, 0x5E, 0x67, 0x60, 0xD6,
+ 0xB6, 0x45, 0xEB, 0x5B, 0x65, 0x4C, 0x62, 0x2B
+ },
+ {
+ 0x34, 0xF7, 0x37, 0xC0, 0xAB, 0x21, 0x99, 0x51,
+ 0xEE, 0xE8, 0x9A, 0x9F, 0x8D, 0xAC, 0x29, 0x9C,
+ 0x9D, 0x4C, 0x38, 0xF3, 0x3F, 0xA4, 0x94, 0xC5,
+ 0xC6, 0xEE, 0xFC, 0x92, 0xB6, 0xDB, 0x08, 0xBC
+ },
+ {
+ 0x1A, 0x62, 0xCC, 0x3A, 0x00, 0x80, 0x0D, 0xCB,
+ 0xD9, 0x98, 0x91, 0x08, 0x0C, 0x1E, 0x09, 0x84,
+ 0x58, 0x19, 0x3A, 0x8C, 0xC9, 0xF9, 0x70, 0xEA,
+ 0x99, 0xFB, 0xEF, 0xF0, 0x03, 0x18, 0xC2, 0x89
+ },
+ {
+ 0xCF, 0xCE, 0x55, 0xEB, 0xAF, 0xC8, 0x40, 0xD7,
+ 0xAE, 0x48, 0x28, 0x1C, 0x7F, 0xD5, 0x7E, 0xC8,
+ 0xB4, 0x82, 0xD4, 0xB7, 0x04, 0x43, 0x74, 0x95,
+ 0x49, 0x5A, 0xC4, 0x14, 0xCF, 0x4A, 0x37, 0x4B
+ },
+ {
+ 0x67, 0x46, 0xFA, 0xCF, 0x71, 0x14, 0x6D, 0x99,
+ 0x9D, 0xAB, 0xD0, 0x5D, 0x09, 0x3A, 0xE5, 0x86,
+ 0x64, 0x8D, 0x1E, 0xE2, 0x8E, 0x72, 0x61, 0x7B,
+ 0x99, 0xD0, 0xF0, 0x08, 0x6E, 0x1E, 0x45, 0xBF
+ },
+ {
+ 0x57, 0x1C, 0xED, 0x28, 0x3B, 0x3F, 0x23, 0xB4,
+ 0xE7, 0x50, 0xBF, 0x12, 0xA2, 0xCA, 0xF1, 0x78,
+ 0x18, 0x47, 0xBD, 0x89, 0x0E, 0x43, 0x60, 0x3C,
+ 0xDC, 0x59, 0x76, 0x10, 0x2B, 0x7B, 0xB1, 0x1B
+ },
+ {
+ 0xCF, 0xCB, 0x76, 0x5B, 0x04, 0x8E, 0x35, 0x02,
+ 0x2C, 0x5D, 0x08, 0x9D, 0x26, 0xE8, 0x5A, 0x36,
+ 0xB0, 0x05, 0xA2, 0xB8, 0x04, 0x93, 0xD0, 0x3A,
+ 0x14, 0x4E, 0x09, 0xF4, 0x09, 0xB6, 0xAF, 0xD1
+ },
+ {
+ 0x40, 0x50, 0xC7, 0xA2, 0x77, 0x05, 0xBB, 0x27,
+ 0xF4, 0x20, 0x89, 0xB2, 0x99, 0xF3, 0xCB, 0xE5,
+ 0x05, 0x4E, 0xAD, 0x68, 0x72, 0x7E, 0x8E, 0xF9,
+ 0x31, 0x8C, 0xE6, 0xF2, 0x5C, 0xD6, 0xF3, 0x1D
+ },
+ {
+ 0x18, 0x40, 0x70, 0xBD, 0x5D, 0x26, 0x5F, 0xBD,
+ 0xC1, 0x42, 0xCD, 0x1C, 0x5C, 0xD0, 0xD7, 0xE4,
+ 0x14, 0xE7, 0x03, 0x69, 0xA2, 0x66, 0xD6, 0x27,
+ 0xC8, 0xFB, 0xA8, 0x4F, 0xA5, 0xE8, 0x4C, 0x34
+ },
+ {
+ 0x9E, 0xDD, 0xA9, 0xA4, 0x44, 0x39, 0x02, 0xA9,
+ 0x58, 0x8C, 0x0D, 0x0C, 0xCC, 0x62, 0xB9, 0x30,
+ 0x21, 0x84, 0x79, 0xA6, 0x84, 0x1E, 0x6F, 0xE7,
+ 0xD4, 0x30, 0x03, 0xF0, 0x4B, 0x1F, 0xD6, 0x43
+ },
+ {
+ 0xE4, 0x12, 0xFE, 0xEF, 0x79, 0x08, 0x32, 0x4A,
+ 0x6D, 0xA1, 0x84, 0x16, 0x29, 0xF3, 0x5D, 0x3D,
+ 0x35, 0x86, 0x42, 0x01, 0x93, 0x10, 0xEC, 0x57,
+ 0xC6, 0x14, 0x83, 0x6B, 0x63, 0xD3, 0x07, 0x63
+ },
+ {
+ 0x1A, 0x2B, 0x8E, 0xDF, 0xF3, 0xF9, 0xAC, 0xC1,
+ 0x55, 0x4F, 0xCB, 0xAE, 0x3C, 0xF1, 0xD6, 0x29,
+ 0x8C, 0x64, 0x62, 0xE2, 0x2E, 0x5E, 0xB0, 0x25,
+ 0x96, 0x84, 0xF8, 0x35, 0x01, 0x2B, 0xD1, 0x3F
+ },
+ {
+ 0x28, 0x8C, 0x4A, 0xD9, 0xB9, 0x40, 0x97, 0x62,
+ 0xEA, 0x07, 0xC2, 0x4A, 0x41, 0xF0, 0x4F, 0x69,
+ 0xA7, 0xD7, 0x4B, 0xEE, 0x2D, 0x95, 0x43, 0x53,
+ 0x74, 0xBD, 0xE9, 0x46, 0xD7, 0x24, 0x1C, 0x7B
+ },
+ {
+ 0x80, 0x56, 0x91, 0xBB, 0x28, 0x67, 0x48, 0xCF,
+ 0xB5, 0x91, 0xD3, 0xAE, 0xBE, 0x7E, 0x6F, 0x4E,
+ 0x4D, 0xC6, 0xE2, 0x80, 0x8C, 0x65, 0x14, 0x3C,
+ 0xC0, 0x04, 0xE4, 0xEB, 0x6F, 0xD0, 0x9D, 0x43
+ },
+ {
+ 0xD4, 0xAC, 0x8D, 0x3A, 0x0A, 0xFC, 0x6C, 0xFA,
+ 0x7B, 0x46, 0x0A, 0xE3, 0x00, 0x1B, 0xAE, 0xB3,
+ 0x6D, 0xAD, 0xB3, 0x7D, 0xA0, 0x7D, 0x2E, 0x8A,
+ 0xC9, 0x18, 0x22, 0xDF, 0x34, 0x8A, 0xED, 0x3D
+ },
+ {
+ 0xC3, 0x76, 0x61, 0x70, 0x14, 0xD2, 0x01, 0x58,
+ 0xBC, 0xED, 0x3D, 0x3B, 0xA5, 0x52, 0xB6, 0xEC,
+ 0xCF, 0x84, 0xE6, 0x2A, 0xA3, 0xEB, 0x65, 0x0E,
+ 0x90, 0x02, 0x9C, 0x84, 0xD1, 0x3E, 0xEA, 0x69
+ },
+ {
+ 0xC4, 0x1F, 0x09, 0xF4, 0x3C, 0xEC, 0xAE, 0x72,
+ 0x93, 0xD6, 0x00, 0x7C, 0xA0, 0xA3, 0x57, 0x08,
+ 0x7D, 0x5A, 0xE5, 0x9B, 0xE5, 0x00, 0xC1, 0xCD,
+ 0x5B, 0x28, 0x9E, 0xE8, 0x10, 0xC7, 0xB0, 0x82
+ },
+ {
+ 0x03, 0xD1, 0xCE, 0xD1, 0xFB, 0xA5, 0xC3, 0x91,
+ 0x55, 0xC4, 0x4B, 0x77, 0x65, 0xCB, 0x76, 0x0C,
+ 0x78, 0x70, 0x8D, 0xCF, 0xC8, 0x0B, 0x0B, 0xD8,
+ 0xAD, 0xE3, 0xA5, 0x6D, 0xA8, 0x83, 0x0B, 0x29
+ },
+ {
+ 0x09, 0xBD, 0xE6, 0xF1, 0x52, 0x21, 0x8D, 0xC9,
+ 0x2C, 0x41, 0xD7, 0xF4, 0x53, 0x87, 0xE6, 0x3E,
+ 0x58, 0x69, 0xD8, 0x07, 0xEC, 0x70, 0xB8, 0x21,
+ 0x40, 0x5D, 0xBD, 0x88, 0x4B, 0x7F, 0xCF, 0x4B
+ },
+ {
+ 0x71, 0xC9, 0x03, 0x6E, 0x18, 0x17, 0x9B, 0x90,
+ 0xB3, 0x7D, 0x39, 0xE9, 0xF0, 0x5E, 0xB8, 0x9C,
+ 0xC5, 0xFC, 0x34, 0x1F, 0xD7, 0xC4, 0x77, 0xD0,
+ 0xD7, 0x49, 0x32, 0x85, 0xFA, 0xCA, 0x08, 0xA4
+ },
+ {
+ 0x59, 0x16, 0x83, 0x3E, 0xBB, 0x05, 0xCD, 0x91,
+ 0x9C, 0xA7, 0xFE, 0x83, 0xB6, 0x92, 0xD3, 0x20,
+ 0x5B, 0xEF, 0x72, 0x39, 0x2B, 0x2C, 0xF6, 0xBB,
+ 0x0A, 0x6D, 0x43, 0xF9, 0x94, 0xF9, 0x5F, 0x11
+ },
+ {
+ 0xF6, 0x3A, 0xAB, 0x3E, 0xC6, 0x41, 0xB3, 0xB0,
+ 0x24, 0x96, 0x4C, 0x2B, 0x43, 0x7C, 0x04, 0xF6,
+ 0x04, 0x3C, 0x4C, 0x7E, 0x02, 0x79, 0x23, 0x99,
+ 0x95, 0x40, 0x19, 0x58, 0xF8, 0x6B, 0xBE, 0x54
+ },
+ {
+ 0xF1, 0x72, 0xB1, 0x80, 0xBF, 0xB0, 0x97, 0x40,
+ 0x49, 0x31, 0x20, 0xB6, 0x32, 0x6C, 0xBD, 0xC5,
+ 0x61, 0xE4, 0x77, 0xDE, 0xF9, 0xBB, 0xCF, 0xD2,
+ 0x8C, 0xC8, 0xC1, 0xC5, 0xE3, 0x37, 0x9A, 0x31
+ },
+ {
+ 0xCB, 0x9B, 0x89, 0xCC, 0x18, 0x38, 0x1D, 0xD9,
+ 0x14, 0x1A, 0xDE, 0x58, 0x86, 0x54, 0xD4, 0xE6,
+ 0xA2, 0x31, 0xD5, 0xBF, 0x49, 0xD4, 0xD5, 0x9A,
+ 0xC2, 0x7D, 0x86, 0x9C, 0xBE, 0x10, 0x0C, 0xF3
+ },
+ {
+ 0x7B, 0xD8, 0x81, 0x50, 0x46, 0xFD, 0xD8, 0x10,
+ 0xA9, 0x23, 0xE1, 0x98, 0x4A, 0xAE, 0xBD, 0xCD,
+ 0xF8, 0x4D, 0x87, 0xC8, 0x99, 0x2D, 0x68, 0xB5,
+ 0xEE, 0xB4, 0x60, 0xF9, 0x3E, 0xB3, 0xC8, 0xD7
+ },
+ {
+ 0x60, 0x7B, 0xE6, 0x68, 0x62, 0xFD, 0x08, 0xEE,
+ 0x5B, 0x19, 0xFA, 0xCA, 0xC0, 0x9D, 0xFD, 0xBC,
+ 0xD4, 0x0C, 0x31, 0x21, 0x01, 0xD6, 0x6E, 0x6E,
+ 0xBD, 0x2B, 0x84, 0x1F, 0x1B, 0x9A, 0x93, 0x25
+ },
+ {
+ 0x9F, 0xE0, 0x3B, 0xBE, 0x69, 0xAB, 0x18, 0x34,
+ 0xF5, 0x21, 0x9B, 0x0D, 0xA8, 0x8A, 0x08, 0xB3,
+ 0x0A, 0x66, 0xC5, 0x91, 0x3F, 0x01, 0x51, 0x96,
+ 0x3C, 0x36, 0x05, 0x60, 0xDB, 0x03, 0x87, 0xB3
+ },
+ {
+ 0x90, 0xA8, 0x35, 0x85, 0x71, 0x7B, 0x75, 0xF0,
+ 0xE9, 0xB7, 0x25, 0xE0, 0x55, 0xEE, 0xEE, 0xB9,
+ 0xE7, 0xA0, 0x28, 0xEA, 0x7E, 0x6C, 0xBC, 0x07,
+ 0xB2, 0x09, 0x17, 0xEC, 0x03, 0x63, 0xE3, 0x8C
+ },
+ {
+ 0x33, 0x6E, 0xA0, 0x53, 0x0F, 0x4A, 0x74, 0x69,
+ 0x12, 0x6E, 0x02, 0x18, 0x58, 0x7E, 0xBB, 0xDE,
+ 0x33, 0x58, 0xA0, 0xB3, 0x1C, 0x29, 0xD2, 0x00,
+ 0xF7, 0xDC, 0x7E, 0xB1, 0x5C, 0x6A, 0xAD, 0xD8
+ },
+ {
+ 0xA7, 0x9E, 0x76, 0xDC, 0x0A, 0xBC, 0xA4, 0x39,
+ 0x6F, 0x07, 0x47, 0xCD, 0x7B, 0x74, 0x8D, 0xF9,
+ 0x13, 0x00, 0x76, 0x26, 0xB1, 0xD6, 0x59, 0xDA,
+ 0x0C, 0x1F, 0x78, 0xB9, 0x30, 0x3D, 0x01, 0xA3
+ },
+ {
+ 0x44, 0xE7, 0x8A, 0x77, 0x37, 0x56, 0xE0, 0x95,
+ 0x15, 0x19, 0x50, 0x4D, 0x70, 0x38, 0xD2, 0x8D,
+ 0x02, 0x13, 0xA3, 0x7E, 0x0C, 0xE3, 0x75, 0x37,
+ 0x17, 0x57, 0xBC, 0x99, 0x63, 0x11, 0xE3, 0xB8
+ },
+ {
+ 0x77, 0xAC, 0x01, 0x2A, 0x3F, 0x75, 0x4D, 0xCF,
+ 0xEA, 0xB5, 0xEB, 0x99, 0x6B, 0xE9, 0xCD, 0x2D,
+ 0x1F, 0x96, 0x11, 0x1B, 0x6E, 0x49, 0xF3, 0x99,
+ 0x4D, 0xF1, 0x81, 0xF2, 0x85, 0x69, 0xD8, 0x25
+ },
+ {
+ 0xCE, 0x5A, 0x10, 0xDB, 0x6F, 0xCC, 0xDA, 0xF1,
+ 0x40, 0xAA, 0xA4, 0xDE, 0xD6, 0x25, 0x0A, 0x9C,
+ 0x06, 0xE9, 0x22, 0x2B, 0xC9, 0xF9, 0xF3, 0x65,
+ 0x8A, 0x4A, 0xFF, 0x93, 0x5F, 0x2B, 0x9F, 0x3A
+ },
+ {
+ 0xEC, 0xC2, 0x03, 0xA7, 0xFE, 0x2B, 0xE4, 0xAB,
+ 0xD5, 0x5B, 0xB5, 0x3E, 0x6E, 0x67, 0x35, 0x72,
+ 0xE0, 0x07, 0x8D, 0xA8, 0xCD, 0x37, 0x5E, 0xF4,
+ 0x30, 0xCC, 0x97, 0xF9, 0xF8, 0x00, 0x83, 0xAF
+ },
+ {
+ 0x14, 0xA5, 0x18, 0x6D, 0xE9, 0xD7, 0xA1, 0x8B,
+ 0x04, 0x12, 0xB8, 0x56, 0x3E, 0x51, 0xCC, 0x54,
+ 0x33, 0x84, 0x0B, 0x4A, 0x12, 0x9A, 0x8F, 0xF9,
+ 0x63, 0xB3, 0x3A, 0x3C, 0x4A, 0xFE, 0x8E, 0xBB
+ },
+ {
+ 0x13, 0xF8, 0xEF, 0x95, 0xCB, 0x86, 0xE6, 0xA6,
+ 0x38, 0x93, 0x1C, 0x8E, 0x10, 0x76, 0x73, 0xEB,
+ 0x76, 0xBA, 0x10, 0xD7, 0xC2, 0xCD, 0x70, 0xB9,
+ 0xD9, 0x92, 0x0B, 0xBE, 0xED, 0x92, 0x94, 0x09
+ },
+ {
+ 0x0B, 0x33, 0x8F, 0x4E, 0xE1, 0x2F, 0x2D, 0xFC,
+ 0xB7, 0x87, 0x13, 0x37, 0x79, 0x41, 0xE0, 0xB0,
+ 0x63, 0x21, 0x52, 0x58, 0x1D, 0x13, 0x32, 0x51,
+ 0x6E, 0x4A, 0x2C, 0xAB, 0x19, 0x42, 0xCC, 0xA4
+ },
+ {
+ 0xEA, 0xAB, 0x0E, 0xC3, 0x7B, 0x3B, 0x8A, 0xB7,
+ 0x96, 0xE9, 0xF5, 0x72, 0x38, 0xDE, 0x14, 0xA2,
+ 0x64, 0xA0, 0x76, 0xF3, 0x88, 0x7D, 0x86, 0xE2,
+ 0x9B, 0xB5, 0x90, 0x6D, 0xB5, 0xA0, 0x0E, 0x02
+ },
+ {
+ 0x23, 0xCB, 0x68, 0xB8, 0xC0, 0xE6, 0xDC, 0x26,
+ 0xDC, 0x27, 0x76, 0x6D, 0xDC, 0x0A, 0x13, 0xA9,
+ 0x94, 0x38, 0xFD, 0x55, 0x61, 0x7A, 0xA4, 0x09,
+ 0x5D, 0x8F, 0x96, 0x97, 0x20, 0xC8, 0x72, 0xDF
+ },
+ {
+ 0x09, 0x1D, 0x8E, 0xE3, 0x0D, 0x6F, 0x29, 0x68,
+ 0xD4, 0x6B, 0x68, 0x7D, 0xD6, 0x52, 0x92, 0x66,
+ 0x57, 0x42, 0xDE, 0x0B, 0xB8, 0x3D, 0xCC, 0x00,
+ 0x04, 0xC7, 0x2C, 0xE1, 0x00, 0x07, 0xA5, 0x49
+ },
+ {
+ 0x7F, 0x50, 0x7A, 0xBC, 0x6D, 0x19, 0xBA, 0x00,
+ 0xC0, 0x65, 0xA8, 0x76, 0xEC, 0x56, 0x57, 0x86,
+ 0x88, 0x82, 0xD1, 0x8A, 0x22, 0x1B, 0xC4, 0x6C,
+ 0x7A, 0x69, 0x12, 0x54, 0x1F, 0x5B, 0xC7, 0xBA
+ },
+ {
+ 0xA0, 0x60, 0x7C, 0x24, 0xE1, 0x4E, 0x8C, 0x22,
+ 0x3D, 0xB0, 0xD7, 0x0B, 0x4D, 0x30, 0xEE, 0x88,
+ 0x01, 0x4D, 0x60, 0x3F, 0x43, 0x7E, 0x9E, 0x02,
+ 0xAA, 0x7D, 0xAF, 0xA3, 0xCD, 0xFB, 0xAD, 0x94
+ },
+ {
+ 0xDD, 0xBF, 0xEA, 0x75, 0xCC, 0x46, 0x78, 0x82,
+ 0xEB, 0x34, 0x83, 0xCE, 0x5E, 0x2E, 0x75, 0x6A,
+ 0x4F, 0x47, 0x01, 0xB7, 0x6B, 0x44, 0x55, 0x19,
+ 0xE8, 0x9F, 0x22, 0xD6, 0x0F, 0xA8, 0x6E, 0x06
+ },
+ {
+ 0x0C, 0x31, 0x1F, 0x38, 0xC3, 0x5A, 0x4F, 0xB9,
+ 0x0D, 0x65, 0x1C, 0x28, 0x9D, 0x48, 0x68, 0x56,
+ 0xCD, 0x14, 0x13, 0xDF, 0x9B, 0x06, 0x77, 0xF5,
+ 0x3E, 0xCE, 0x2C, 0xD9, 0xE4, 0x77, 0xC6, 0x0A
+ },
+ {
+ 0x46, 0xA7, 0x3A, 0x8D, 0xD3, 0xE7, 0x0F, 0x59,
+ 0xD3, 0x94, 0x2C, 0x01, 0xDF, 0x59, 0x9D, 0xEF,
+ 0x78, 0x3C, 0x9D, 0xA8, 0x2F, 0xD8, 0x32, 0x22,
+ 0xCD, 0x66, 0x2B, 0x53, 0xDC, 0xE7, 0xDB, 0xDF
+ },
+ {
+ 0xAD, 0x03, 0x8F, 0xF9, 0xB1, 0x4D, 0xE8, 0x4A,
+ 0x80, 0x1E, 0x4E, 0x62, 0x1C, 0xE5, 0xDF, 0x02,
+ 0x9D, 0xD9, 0x35, 0x20, 0xD0, 0xC2, 0xFA, 0x38,
+ 0xBF, 0xF1, 0x76, 0xA8, 0xB1, 0xD1, 0x69, 0x8C
+ },
+ {
+ 0xAB, 0x70, 0xC5, 0xDF, 0xBD, 0x1E, 0xA8, 0x17,
+ 0xFE, 0xD0, 0xCD, 0x06, 0x72, 0x93, 0xAB, 0xF3,
+ 0x19, 0xE5, 0xD7, 0x90, 0x1C, 0x21, 0x41, 0xD5,
+ 0xD9, 0x9B, 0x23, 0xF0, 0x3A, 0x38, 0xE7, 0x48
+ },
+ {
+ 0x1F, 0xFF, 0xDA, 0x67, 0x93, 0x2B, 0x73, 0xC8,
+ 0xEC, 0xAF, 0x00, 0x9A, 0x34, 0x91, 0xA0, 0x26,
+ 0x95, 0x3B, 0xAB, 0xFE, 0x1F, 0x66, 0x3B, 0x06,
+ 0x97, 0xC3, 0xC4, 0xAE, 0x8B, 0x2E, 0x7D, 0xCB
+ },
+ {
+ 0xB0, 0xD2, 0xCC, 0x19, 0x47, 0x2D, 0xD5, 0x7F,
+ 0x2B, 0x17, 0xEF, 0xC0, 0x3C, 0x8D, 0x58, 0xC2,
+ 0x28, 0x3D, 0xBB, 0x19, 0xDA, 0x57, 0x2F, 0x77,
+ 0x55, 0x85, 0x5A, 0xA9, 0x79, 0x43, 0x17, 0xA0
+ },
+ {
+ 0xA0, 0xD1, 0x9A, 0x6E, 0xE3, 0x39, 0x79, 0xC3,
+ 0x25, 0x51, 0x0E, 0x27, 0x66, 0x22, 0xDF, 0x41,
+ 0xF7, 0x15, 0x83, 0xD0, 0x75, 0x01, 0xB8, 0x70,
+ 0x71, 0x12, 0x9A, 0x0A, 0xD9, 0x47, 0x32, 0xA5
+ },
+ {
+ 0x72, 0x46, 0x42, 0xA7, 0x03, 0x2D, 0x10, 0x62,
+ 0xB8, 0x9E, 0x52, 0xBE, 0xA3, 0x4B, 0x75, 0xDF,
+ 0x7D, 0x8F, 0xE7, 0x72, 0xD9, 0xFE, 0x3C, 0x93,
+ 0xDD, 0xF3, 0xC4, 0x54, 0x5A, 0xB5, 0xA9, 0x9B
+ },
+ {
+ 0xAD, 0xE5, 0xEA, 0xA7, 0xE6, 0x1F, 0x67, 0x2D,
+ 0x58, 0x7E, 0xA0, 0x3D, 0xAE, 0x7D, 0x7B, 0x55,
+ 0x22, 0x9C, 0x01, 0xD0, 0x6B, 0xC0, 0xA5, 0x70,
+ 0x14, 0x36, 0xCB, 0xD1, 0x83, 0x66, 0xA6, 0x26
+ },
+ {
+ 0x01, 0x3B, 0x31, 0xEB, 0xD2, 0x28, 0xFC, 0xDD,
+ 0xA5, 0x1F, 0xAB, 0xB0, 0x3B, 0xB0, 0x2D, 0x60,
+ 0xAC, 0x20, 0xCA, 0x21, 0x5A, 0xAF, 0xA8, 0x3B,
+ 0xDD, 0x85, 0x5E, 0x37, 0x55, 0xA3, 0x5F, 0x0B
+ },
+ {
+ 0x33, 0x2E, 0xD4, 0x0B, 0xB1, 0x0D, 0xDE, 0x3C,
+ 0x95, 0x4A, 0x75, 0xD7, 0xB8, 0x99, 0x9D, 0x4B,
+ 0x26, 0xA1, 0xC0, 0x63, 0xC1, 0xDC, 0x6E, 0x32,
+ 0xC1, 0xD9, 0x1B, 0xAB, 0x7B, 0xBB, 0x7D, 0x16
+ },
+ {
+ 0xC7, 0xA1, 0x97, 0xB3, 0xA0, 0x5B, 0x56, 0x6B,
+ 0xCC, 0x9F, 0xAC, 0xD2, 0x0E, 0x44, 0x1D, 0x6F,
+ 0x6C, 0x28, 0x60, 0xAC, 0x96, 0x51, 0xCD, 0x51,
+ 0xD6, 0xB9, 0xD2, 0xCD, 0xEE, 0xEA, 0x03, 0x90
+ },
+ {
+ 0xBD, 0x9C, 0xF6, 0x4E, 0xA8, 0x95, 0x3C, 0x03,
+ 0x71, 0x08, 0xE6, 0xF6, 0x54, 0x91, 0x4F, 0x39,
+ 0x58, 0xB6, 0x8E, 0x29, 0xC1, 0x67, 0x00, 0xDC,
+ 0x18, 0x4D, 0x94, 0xA2, 0x17, 0x08, 0xFF, 0x60
+ },
+ {
+ 0x88, 0x35, 0xB0, 0xAC, 0x02, 0x11, 0x51, 0xDF,
+ 0x71, 0x64, 0x74, 0xCE, 0x27, 0xCE, 0x4D, 0x3C,
+ 0x15, 0xF0, 0xB2, 0xDA, 0xB4, 0x80, 0x03, 0xCF,
+ 0x3F, 0x3E, 0xFD, 0x09, 0x45, 0x10, 0x6B, 0x9A
+ },
+ {
+ 0x3B, 0xFE, 0xFA, 0x33, 0x01, 0xAA, 0x55, 0xC0,
+ 0x80, 0x19, 0x0C, 0xFF, 0xDA, 0x8E, 0xAE, 0x51,
+ 0xD9, 0xAF, 0x48, 0x8B, 0x4C, 0x1F, 0x24, 0xC3,
+ 0xD9, 0xA7, 0x52, 0x42, 0xFD, 0x8E, 0xA0, 0x1D
+ },
+ {
+ 0x08, 0x28, 0x4D, 0x14, 0x99, 0x3C, 0xD4, 0x7D,
+ 0x53, 0xEB, 0xAE, 0xCF, 0x0D, 0xF0, 0x47, 0x8C,
+ 0xC1, 0x82, 0xC8, 0x9C, 0x00, 0xE1, 0x85, 0x9C,
+ 0x84, 0x85, 0x16, 0x86, 0xDD, 0xF2, 0xC1, 0xB7
+ },
+ {
+ 0x1E, 0xD7, 0xEF, 0x9F, 0x04, 0xC2, 0xAC, 0x8D,
+ 0xB6, 0xA8, 0x64, 0xDB, 0x13, 0x10, 0x87, 0xF2,
+ 0x70, 0x65, 0x09, 0x8E, 0x69, 0xC3, 0xFE, 0x78,
+ 0x71, 0x8D, 0x9B, 0x94, 0x7F, 0x4A, 0x39, 0xD0
+ },
+ {
+ 0xC1, 0x61, 0xF2, 0xDC, 0xD5, 0x7E, 0x9C, 0x14,
+ 0x39, 0xB3, 0x1A, 0x9D, 0xD4, 0x3D, 0x8F, 0x3D,
+ 0x7D, 0xD8, 0xF0, 0xEB, 0x7C, 0xFA, 0xC6, 0xFB,
+ 0x25, 0xA0, 0xF2, 0x8E, 0x30, 0x6F, 0x06, 0x61
+ },
+ {
+ 0xC0, 0x19, 0x69, 0xAD, 0x34, 0xC5, 0x2C, 0xAF,
+ 0x3D, 0xC4, 0xD8, 0x0D, 0x19, 0x73, 0x5C, 0x29,
+ 0x73, 0x1A, 0xC6, 0xE7, 0xA9, 0x20, 0x85, 0xAB,
+ 0x92, 0x50, 0xC4, 0x8D, 0xEA, 0x48, 0xA3, 0xFC
+ },
+ {
+ 0x17, 0x20, 0xB3, 0x65, 0x56, 0x19, 0xD2, 0xA5,
+ 0x2B, 0x35, 0x21, 0xAE, 0x0E, 0x49, 0xE3, 0x45,
+ 0xCB, 0x33, 0x89, 0xEB, 0xD6, 0x20, 0x8A, 0xCA,
+ 0xF9, 0xF1, 0x3F, 0xDA, 0xCC, 0xA8, 0xBE, 0x49
+ },
+ {
+ 0x75, 0x62, 0x88, 0x36, 0x1C, 0x83, 0xE2, 0x4C,
+ 0x61, 0x7C, 0xF9, 0x5C, 0x90, 0x5B, 0x22, 0xD0,
+ 0x17, 0xCD, 0xC8, 0x6F, 0x0B, 0xF1, 0xD6, 0x58,
+ 0xF4, 0x75, 0x6C, 0x73, 0x79, 0x87, 0x3B, 0x7F
+ },
+ {
+ 0xE7, 0xD0, 0xED, 0xA3, 0x45, 0x26, 0x93, 0xB7,
+ 0x52, 0xAB, 0xCD, 0xA1, 0xB5, 0x5E, 0x27, 0x6F,
+ 0x82, 0x69, 0x8F, 0x5F, 0x16, 0x05, 0x40, 0x3E,
+ 0xFF, 0x83, 0x0B, 0xEA, 0x00, 0x71, 0xA3, 0x94
+ },
+ {
+ 0x2C, 0x82, 0xEC, 0xAA, 0x6B, 0x84, 0x80, 0x3E,
+ 0x04, 0x4A, 0xF6, 0x31, 0x18, 0xAF, 0xE5, 0x44,
+ 0x68, 0x7C, 0xB6, 0xE6, 0xC7, 0xDF, 0x49, 0xED,
+ 0x76, 0x2D, 0xFD, 0x7C, 0x86, 0x93, 0xA1, 0xBC
+ },
+ {
+ 0x61, 0x36, 0xCB, 0xF4, 0xB4, 0x41, 0x05, 0x6F,
+ 0xA1, 0xE2, 0x72, 0x24, 0x98, 0x12, 0x5D, 0x6D,
+ 0xED, 0x45, 0xE1, 0x7B, 0x52, 0x14, 0x39, 0x59,
+ 0xC7, 0xF4, 0xD4, 0xE3, 0x95, 0x21, 0x8A, 0xC2
+ },
+ {
+ 0x72, 0x1D, 0x32, 0x45, 0xAA, 0xFE, 0xF2, 0x7F,
+ 0x6A, 0x62, 0x4F, 0x47, 0x95, 0x4B, 0x6C, 0x25,
+ 0x50, 0x79, 0x52, 0x6F, 0xFA, 0x25, 0xE9, 0xFF,
+ 0x77, 0xE5, 0xDC, 0xFF, 0x47, 0x3B, 0x15, 0x97
+ },
+ {
+ 0x9D, 0xD2, 0xFB, 0xD8, 0xCE, 0xF1, 0x6C, 0x35,
+ 0x3C, 0x0A, 0xC2, 0x11, 0x91, 0xD5, 0x09, 0xEB,
+ 0x28, 0xDD, 0x9E, 0x3E, 0x0D, 0x8C, 0xEA, 0x5D,
+ 0x26, 0xCA, 0x83, 0x93, 0x93, 0x85, 0x1C, 0x3A
+ },
+ {
+ 0xB2, 0x39, 0x4C, 0xEA, 0xCD, 0xEB, 0xF2, 0x1B,
+ 0xF9, 0xDF, 0x2C, 0xED, 0x98, 0xE5, 0x8F, 0x1C,
+ 0x3A, 0x4B, 0xBB, 0xFF, 0x66, 0x0D, 0xD9, 0x00,
+ 0xF6, 0x22, 0x02, 0xD6, 0x78, 0x5C, 0xC4, 0x6E
+ },
+ {
+ 0x57, 0x08, 0x9F, 0x22, 0x27, 0x49, 0xAD, 0x78,
+ 0x71, 0x76, 0x5F, 0x06, 0x2B, 0x11, 0x4F, 0x43,
+ 0xBA, 0x20, 0xEC, 0x56, 0x42, 0x2A, 0x8B, 0x1E,
+ 0x3F, 0x87, 0x19, 0x2C, 0x0E, 0xA7, 0x18, 0xC6
+ },
+ {
+ 0xE4, 0x9A, 0x94, 0x59, 0x96, 0x1C, 0xD3, 0x3C,
+ 0xDF, 0x4A, 0xAE, 0x1B, 0x10, 0x78, 0xA5, 0xDE,
+ 0xA7, 0xC0, 0x40, 0xE0, 0xFE, 0xA3, 0x40, 0xC9,
+ 0x3A, 0x72, 0x48, 0x72, 0xFC, 0x4A, 0xF8, 0x06
+ },
+ {
+ 0xED, 0xE6, 0x7F, 0x72, 0x0E, 0xFF, 0xD2, 0xCA,
+ 0x9C, 0x88, 0x99, 0x41, 0x52, 0xD0, 0x20, 0x1D,
+ 0xEE, 0x6B, 0x0A, 0x2D, 0x2C, 0x07, 0x7A, 0xCA,
+ 0x6D, 0xAE, 0x29, 0xF7, 0x3F, 0x8B, 0x63, 0x09
+ },
+ {
+ 0xE0, 0xF4, 0x34, 0xBF, 0x22, 0xE3, 0x08, 0x80,
+ 0x39, 0xC2, 0x1F, 0x71, 0x9F, 0xFC, 0x67, 0xF0,
+ 0xF2, 0xCB, 0x5E, 0x98, 0xA7, 0xA0, 0x19, 0x4C,
+ 0x76, 0xE9, 0x6B, 0xF4, 0xE8, 0xE1, 0x7E, 0x61
+ },
+ {
+ 0x27, 0x7C, 0x04, 0xE2, 0x85, 0x34, 0x84, 0xA4,
+ 0xEB, 0xA9, 0x10, 0xAD, 0x33, 0x6D, 0x01, 0xB4,
+ 0x77, 0xB6, 0x7C, 0xC2, 0x00, 0xC5, 0x9F, 0x3C,
+ 0x8D, 0x77, 0xEE, 0xF8, 0x49, 0x4F, 0x29, 0xCD
+ },
+ {
+ 0x15, 0x6D, 0x57, 0x47, 0xD0, 0xC9, 0x9C, 0x7F,
+ 0x27, 0x09, 0x7D, 0x7B, 0x7E, 0x00, 0x2B, 0x2E,
+ 0x18, 0x5C, 0xB7, 0x2D, 0x8D, 0xD7, 0xEB, 0x42,
+ 0x4A, 0x03, 0x21, 0x52, 0x81, 0x61, 0x21, 0x9F
+ },
+ {
+ 0x20, 0xDD, 0xD1, 0xED, 0x9B, 0x1C, 0xA8, 0x03,
+ 0x94, 0x6D, 0x64, 0xA8, 0x3A, 0xE4, 0x65, 0x9D,
+ 0xA6, 0x7F, 0xBA, 0x7A, 0x1A, 0x3E, 0xDD, 0xB1,
+ 0xE1, 0x03, 0xC0, 0xF5, 0xE0, 0x3E, 0x3A, 0x2C
+ },
+ {
+ 0xF0, 0xAF, 0x60, 0x4D, 0x3D, 0xAB, 0xBF, 0x9A,
+ 0x0F, 0x2A, 0x7D, 0x3D, 0xDA, 0x6B, 0xD3, 0x8B,
+ 0xBA, 0x72, 0xC6, 0xD0, 0x9B, 0xE4, 0x94, 0xFC,
+ 0xEF, 0x71, 0x3F, 0xF1, 0x01, 0x89, 0xB6, 0xE6
+ },
+ {
+ 0x98, 0x02, 0xBB, 0x87, 0xDE, 0xF4, 0xCC, 0x10,
+ 0xC4, 0xA5, 0xFD, 0x49, 0xAA, 0x58, 0xDF, 0xE2,
+ 0xF3, 0xFD, 0xDB, 0x46, 0xB4, 0x70, 0x88, 0x14,
+ 0xEA, 0xD8, 0x1D, 0x23, 0xBA, 0x95, 0x13, 0x9B
+ },
+ {
+ 0x4F, 0x8C, 0xE1, 0xE5, 0x1D, 0x2F, 0xE7, 0xF2,
+ 0x40, 0x43, 0xA9, 0x04, 0xD8, 0x98, 0xEB, 0xFC,
+ 0x91, 0x97, 0x54, 0x18, 0x75, 0x34, 0x13, 0xAA,
+ 0x09, 0x9B, 0x79, 0x5E, 0xCB, 0x35, 0xCE, 0xDB
+ },
+ {
+ 0xBD, 0xDC, 0x65, 0x14, 0xD7, 0xEE, 0x6A, 0xCE,
+ 0x0A, 0x4A, 0xC1, 0xD0, 0xE0, 0x68, 0x11, 0x22,
+ 0x88, 0xCB, 0xCF, 0x56, 0x04, 0x54, 0x64, 0x27,
+ 0x05, 0x63, 0x01, 0x77, 0xCB, 0xA6, 0x08, 0xBD
+ },
+ {
+ 0xD6, 0x35, 0x99, 0x4F, 0x62, 0x91, 0x51, 0x7B,
+ 0x02, 0x81, 0xFF, 0xDD, 0x49, 0x6A, 0xFA, 0x86,
+ 0x27, 0x12, 0xE5, 0xB3, 0xC4, 0xE5, 0x2E, 0x4C,
+ 0xD5, 0xFD, 0xAE, 0x8C, 0x0E, 0x72, 0xFB, 0x08
+ },
+ {
+ 0x87, 0x8D, 0x9C, 0xA6, 0x00, 0xCF, 0x87, 0xE7,
+ 0x69, 0xCC, 0x30, 0x5C, 0x1B, 0x35, 0x25, 0x51,
+ 0x86, 0x61, 0x5A, 0x73, 0xA0, 0xDA, 0x61, 0x3B,
+ 0x5F, 0x1C, 0x98, 0xDB, 0xF8, 0x12, 0x83, 0xEA
+ },
+ {
+ 0xA6, 0x4E, 0xBE, 0x5D, 0xC1, 0x85, 0xDE, 0x9F,
+ 0xDD, 0xE7, 0x60, 0x7B, 0x69, 0x98, 0x70, 0x2E,
+ 0xB2, 0x34, 0x56, 0x18, 0x49, 0x57, 0x30, 0x7D,
+ 0x2F, 0xA7, 0x2E, 0x87, 0xA4, 0x77, 0x02, 0xD6
+ },
+ {
+ 0xCE, 0x50, 0xEA, 0xB7, 0xB5, 0xEB, 0x52, 0xBD,
+ 0xC9, 0xAD, 0x8E, 0x5A, 0x48, 0x0A, 0xB7, 0x80,
+ 0xCA, 0x93, 0x20, 0xE4, 0x43, 0x60, 0xB1, 0xFE,
+ 0x37, 0xE0, 0x3F, 0x2F, 0x7A, 0xD7, 0xDE, 0x01
+ },
+ {
+ 0xEE, 0xDD, 0xB7, 0xC0, 0xDB, 0x6E, 0x30, 0xAB,
+ 0xE6, 0x6D, 0x79, 0xE3, 0x27, 0x51, 0x1E, 0x61,
+ 0xFC, 0xEB, 0xBC, 0x29, 0xF1, 0x59, 0xB4, 0x0A,
+ 0x86, 0xB0, 0x46, 0xEC, 0xF0, 0x51, 0x38, 0x23
+ },
+ {
+ 0x78, 0x7F, 0xC9, 0x34, 0x40, 0xC1, 0xEC, 0x96,
+ 0xB5, 0xAD, 0x01, 0xC1, 0x6C, 0xF7, 0x79, 0x16,
+ 0xA1, 0x40, 0x5F, 0x94, 0x26, 0x35, 0x6E, 0xC9,
+ 0x21, 0xD8, 0xDF, 0xF3, 0xEA, 0x63, 0xB7, 0xE0
+ },
+ {
+ 0x7F, 0x0D, 0x5E, 0xAB, 0x47, 0xEE, 0xFD, 0xA6,
+ 0x96, 0xC0, 0xBF, 0x0F, 0xBF, 0x86, 0xAB, 0x21,
+ 0x6F, 0xCE, 0x46, 0x1E, 0x93, 0x03, 0xAB, 0xA6,
+ 0xAC, 0x37, 0x41, 0x20, 0xE8, 0x90, 0xE8, 0xDF
+ },
+ {
+ 0xB6, 0x80, 0x04, 0xB4, 0x2F, 0x14, 0xAD, 0x02,
+ 0x9F, 0x4C, 0x2E, 0x03, 0xB1, 0xD5, 0xEB, 0x76,
+ 0xD5, 0x71, 0x60, 0xE2, 0x64, 0x76, 0xD2, 0x11,
+ 0x31, 0xBE, 0xF2, 0x0A, 0xDA, 0x7D, 0x27, 0xF4
+ },
+ {
+ 0xB0, 0xC4, 0xEB, 0x18, 0xAE, 0x25, 0x0B, 0x51,
+ 0xA4, 0x13, 0x82, 0xEA, 0xD9, 0x2D, 0x0D, 0xC7,
+ 0x45, 0x5F, 0x93, 0x79, 0xFC, 0x98, 0x84, 0x42,
+ 0x8E, 0x47, 0x70, 0x60, 0x8D, 0xB0, 0xFA, 0xEC
+ },
+ {
+ 0xF9, 0x2B, 0x7A, 0x87, 0x0C, 0x05, 0x9F, 0x4D,
+ 0x46, 0x46, 0x4C, 0x82, 0x4E, 0xC9, 0x63, 0x55,
+ 0x14, 0x0B, 0xDC, 0xE6, 0x81, 0x32, 0x2C, 0xC3,
+ 0xA9, 0x92, 0xFF, 0x10, 0x3E, 0x3F, 0xEA, 0x52
+ },
+ {
+ 0x53, 0x64, 0x31, 0x26, 0x14, 0x81, 0x33, 0x98,
+ 0xCC, 0x52, 0x5D, 0x4C, 0x4E, 0x14, 0x6E, 0xDE,
+ 0xB3, 0x71, 0x26, 0x5F, 0xBA, 0x19, 0x13, 0x3A,
+ 0x2C, 0x3D, 0x21, 0x59, 0x29, 0x8A, 0x17, 0x42
+ },
+ {
+ 0xF6, 0x62, 0x0E, 0x68, 0xD3, 0x7F, 0xB2, 0xAF,
+ 0x50, 0x00, 0xFC, 0x28, 0xE2, 0x3B, 0x83, 0x22,
+ 0x97, 0xEC, 0xD8, 0xBC, 0xE9, 0x9E, 0x8B, 0xE4,
+ 0xD0, 0x4E, 0x85, 0x30, 0x9E, 0x3D, 0x33, 0x74
+ },
+ {
+ 0x53, 0x16, 0xA2, 0x79, 0x69, 0xD7, 0xFE, 0x04,
+ 0xFF, 0x27, 0xB2, 0x83, 0x96, 0x1B, 0xFF, 0xC3,
+ 0xBF, 0x5D, 0xFB, 0x32, 0xFB, 0x6A, 0x89, 0xD1,
+ 0x01, 0xC6, 0xC3, 0xB1, 0x93, 0x7C, 0x28, 0x71
+ },
+ {
+ 0x81, 0xD1, 0x66, 0x4F, 0xDF, 0x3C, 0xB3, 0x3C,
+ 0x24, 0xEE, 0xBA, 0xC0, 0xBD, 0x64, 0x24, 0x4B,
+ 0x77, 0xC4, 0xAB, 0xEA, 0x90, 0xBB, 0xE8, 0xB5,
+ 0xEE, 0x0B, 0x2A, 0xAF, 0xCF, 0x2D, 0x6A, 0x53
+ },
+ {
+ 0x34, 0x57, 0x82, 0xF2, 0x95, 0xB0, 0x88, 0x03,
+ 0x52, 0xE9, 0x24, 0xA0, 0x46, 0x7B, 0x5F, 0xBC,
+ 0x3E, 0x8F, 0x3B, 0xFB, 0xC3, 0xC7, 0xE4, 0x8B,
+ 0x67, 0x09, 0x1F, 0xB5, 0xE8, 0x0A, 0x94, 0x42
+ },
+ {
+ 0x79, 0x41, 0x11, 0xEA, 0x6C, 0xD6, 0x5E, 0x31,
+ 0x1F, 0x74, 0xEE, 0x41, 0xD4, 0x76, 0xCB, 0x63,
+ 0x2C, 0xE1, 0xE4, 0xB0, 0x51, 0xDC, 0x1D, 0x9E,
+ 0x9D, 0x06, 0x1A, 0x19, 0xE1, 0xD0, 0xBB, 0x49
+ },
+ {
+ 0x2A, 0x85, 0xDA, 0xF6, 0x13, 0x88, 0x16, 0xB9,
+ 0x9B, 0xF8, 0xD0, 0x8B, 0xA2, 0x11, 0x4B, 0x7A,
+ 0xB0, 0x79, 0x75, 0xA7, 0x84, 0x20, 0xC1, 0xA3,
+ 0xB0, 0x6A, 0x77, 0x7C, 0x22, 0xDD, 0x8B, 0xCB
+ },
+ {
+ 0x89, 0xB0, 0xD5, 0xF2, 0x89, 0xEC, 0x16, 0x40,
+ 0x1A, 0x06, 0x9A, 0x96, 0x0D, 0x0B, 0x09, 0x3E,
+ 0x62, 0x5D, 0xA3, 0xCF, 0x41, 0xEE, 0x29, 0xB5,
+ 0x9B, 0x93, 0x0C, 0x58, 0x20, 0x14, 0x54, 0x55
+ },
+ {
+ 0xD0, 0xFD, 0xCB, 0x54, 0x39, 0x43, 0xFC, 0x27,
+ 0xD2, 0x08, 0x64, 0xF5, 0x21, 0x81, 0x47, 0x1B,
+ 0x94, 0x2C, 0xC7, 0x7C, 0xA6, 0x75, 0xBC, 0xB3,
+ 0x0D, 0xF3, 0x1D, 0x35, 0x8E, 0xF7, 0xB1, 0xEB
+ },
+ {
+ 0xB1, 0x7E, 0xA8, 0xD7, 0x70, 0x63, 0xC7, 0x09,
+ 0xD4, 0xDC, 0x6B, 0x87, 0x94, 0x13, 0xC3, 0x43,
+ 0xE3, 0x79, 0x0E, 0x9E, 0x62, 0xCA, 0x85, 0xB7,
+ 0x90, 0x0B, 0x08, 0x6F, 0x6B, 0x75, 0xC6, 0x72
+ },
+ {
+ 0xE7, 0x1A, 0x3E, 0x2C, 0x27, 0x4D, 0xB8, 0x42,
+ 0xD9, 0x21, 0x14, 0xF2, 0x17, 0xE2, 0xC0, 0xEA,
+ 0xC8, 0xB4, 0x50, 0x93, 0xFD, 0xFD, 0x9D, 0xF4,
+ 0xCA, 0x71, 0x62, 0x39, 0x48, 0x62, 0xD5, 0x01
+ },
+ {
+ 0xC0, 0x47, 0x67, 0x59, 0xAB, 0x7A, 0xA3, 0x33,
+ 0x23, 0x4F, 0x6B, 0x44, 0xF5, 0xFD, 0x85, 0x83,
+ 0x90, 0xEC, 0x23, 0x69, 0x4C, 0x62, 0x2C, 0xB9,
+ 0x86, 0xE7, 0x69, 0xC7, 0x8E, 0xDD, 0x73, 0x3E
+ },
+ {
+ 0x9A, 0xB8, 0xEA, 0xBB, 0x14, 0x16, 0x43, 0x4D,
+ 0x85, 0x39, 0x13, 0x41, 0xD5, 0x69, 0x93, 0xC5,
+ 0x54, 0x58, 0x16, 0x7D, 0x44, 0x18, 0xB1, 0x9A,
+ 0x0F, 0x2A, 0xD8, 0xB7, 0x9A, 0x83, 0xA7, 0x5B
+ },
+ {
+ 0x79, 0x92, 0xD0, 0xBB, 0xB1, 0x5E, 0x23, 0x82,
+ 0x6F, 0x44, 0x3E, 0x00, 0x50, 0x5D, 0x68, 0xD3,
+ 0xED, 0x73, 0x72, 0x99, 0x5A, 0x5C, 0x3E, 0x49,
+ 0x86, 0x54, 0x10, 0x2F, 0xBC, 0xD0, 0x96, 0x4E
+ },
+ {
+ 0xC0, 0x21, 0xB3, 0x00, 0x85, 0x15, 0x14, 0x35,
+ 0xDF, 0x33, 0xB0, 0x07, 0xCC, 0xEC, 0xC6, 0x9D,
+ 0xF1, 0x26, 0x9F, 0x39, 0xBA, 0x25, 0x09, 0x2B,
+ 0xED, 0x59, 0xD9, 0x32, 0xAC, 0x0F, 0xDC, 0x28
+ },
+ {
+ 0x91, 0xA2, 0x5E, 0xC0, 0xEC, 0x0D, 0x9A, 0x56,
+ 0x7F, 0x89, 0xC4, 0xBF, 0xE1, 0xA6, 0x5A, 0x0E,
+ 0x43, 0x2D, 0x07, 0x06, 0x4B, 0x41, 0x90, 0xE2,
+ 0x7D, 0xFB, 0x81, 0x90, 0x1F, 0xD3, 0x13, 0x9B
+ },
+ {
+ 0x59, 0x50, 0xD3, 0x9A, 0x23, 0xE1, 0x54, 0x5F,
+ 0x30, 0x12, 0x70, 0xAA, 0x1A, 0x12, 0xF2, 0xE6,
+ 0xC4, 0x53, 0x77, 0x6E, 0x4D, 0x63, 0x55, 0xDE,
+ 0x42, 0x5C, 0xC1, 0x53, 0xF9, 0x81, 0x88, 0x67
+ },
+ {
+ 0xD7, 0x9F, 0x14, 0x72, 0x0C, 0x61, 0x0A, 0xF1,
+ 0x79, 0xA3, 0x76, 0x5D, 0x4B, 0x7C, 0x09, 0x68,
+ 0xF9, 0x77, 0x96, 0x2D, 0xBF, 0x65, 0x5B, 0x52,
+ 0x12, 0x72, 0xB6, 0xF1, 0xE1, 0x94, 0x48, 0x8E
+ },
+ {
+ 0xE9, 0x53, 0x1B, 0xFC, 0x8B, 0x02, 0x99, 0x5A,
+ 0xEA, 0xA7, 0x5B, 0xA2, 0x70, 0x31, 0xFA, 0xDB,
+ 0xCB, 0xF4, 0xA0, 0xDA, 0xB8, 0x96, 0x1D, 0x92,
+ 0x96, 0xCD, 0x7E, 0x84, 0xD2, 0x5D, 0x60, 0x06
+ },
+ {
+ 0x34, 0xE9, 0xC2, 0x6A, 0x01, 0xD7, 0xF1, 0x61,
+ 0x81, 0xB4, 0x54, 0xA9, 0xD1, 0x62, 0x3C, 0x23,
+ 0x3C, 0xB9, 0x9D, 0x31, 0xC6, 0x94, 0x65, 0x6E,
+ 0x94, 0x13, 0xAC, 0xA3, 0xE9, 0x18, 0x69, 0x2F
+ },
+ {
+ 0xD9, 0xD7, 0x42, 0x2F, 0x43, 0x7B, 0xD4, 0x39,
+ 0xDD, 0xD4, 0xD8, 0x83, 0xDA, 0xE2, 0xA0, 0x83,
+ 0x50, 0x17, 0x34, 0x14, 0xBE, 0x78, 0x15, 0x51,
+ 0x33, 0xFF, 0xF1, 0x96, 0x4C, 0x3D, 0x79, 0x72
+ },
+ {
+ 0x4A, 0xEE, 0x0C, 0x7A, 0xAF, 0x07, 0x54, 0x14,
+ 0xFF, 0x17, 0x93, 0xEA, 0xD7, 0xEA, 0xCA, 0x60,
+ 0x17, 0x75, 0xC6, 0x15, 0xDB, 0xD6, 0x0B, 0x64,
+ 0x0B, 0x0A, 0x9F, 0x0C, 0xE5, 0x05, 0xD4, 0x35
+ },
+ {
+ 0x6B, 0xFD, 0xD1, 0x54, 0x59, 0xC8, 0x3B, 0x99,
+ 0xF0, 0x96, 0xBF, 0xB4, 0x9E, 0xE8, 0x7B, 0x06,
+ 0x3D, 0x69, 0xC1, 0x97, 0x4C, 0x69, 0x28, 0xAC,
+ 0xFC, 0xFB, 0x40, 0x99, 0xF8, 0xC4, 0xEF, 0x67
+ },
+ {
+ 0x9F, 0xD1, 0xC4, 0x08, 0xFD, 0x75, 0xC3, 0x36,
+ 0x19, 0x3A, 0x2A, 0x14, 0xD9, 0x4F, 0x6A, 0xF5,
+ 0xAD, 0xF0, 0x50, 0xB8, 0x03, 0x87, 0xB4, 0xB0,
+ 0x10, 0xFB, 0x29, 0xF4, 0xCC, 0x72, 0x70, 0x7C
+ },
+ {
+ 0x13, 0xC8, 0x84, 0x80, 0xA5, 0xD0, 0x0D, 0x6C,
+ 0x8C, 0x7A, 0xD2, 0x11, 0x0D, 0x76, 0xA8, 0x2D,
+ 0x9B, 0x70, 0xF4, 0xFA, 0x66, 0x96, 0xD4, 0xE5,
+ 0xDD, 0x42, 0xA0, 0x66, 0xDC, 0xAF, 0x99, 0x20
+ },
+ {
+ 0x82, 0x0E, 0x72, 0x5E, 0xE2, 0x5F, 0xE8, 0xFD,
+ 0x3A, 0x8D, 0x5A, 0xBE, 0x4C, 0x46, 0xC3, 0xBA,
+ 0x88, 0x9D, 0xE6, 0xFA, 0x91, 0x91, 0xAA, 0x22,
+ 0xBA, 0x67, 0xD5, 0x70, 0x54, 0x21, 0x54, 0x2B
+ },
+ {
+ 0x32, 0xD9, 0x3A, 0x0E, 0xB0, 0x2F, 0x42, 0xFB,
+ 0xBC, 0xAF, 0x2B, 0xAD, 0x00, 0x85, 0xB2, 0x82,
+ 0xE4, 0x60, 0x46, 0xA4, 0xDF, 0x7A, 0xD1, 0x06,
+ 0x57, 0xC9, 0xD6, 0x47, 0x63, 0x75, 0xB9, 0x3E
+ },
+ {
+ 0xAD, 0xC5, 0x18, 0x79, 0x05, 0xB1, 0x66, 0x9C,
+ 0xD8, 0xEC, 0x9C, 0x72, 0x1E, 0x19, 0x53, 0x78,
+ 0x6B, 0x9D, 0x89, 0xA9, 0xBA, 0xE3, 0x07, 0x80,
+ 0xF1, 0xE1, 0xEA, 0xB2, 0x4A, 0x00, 0x52, 0x3C
+ },
+ {
+ 0xE9, 0x07, 0x56, 0xFF, 0x7F, 0x9A, 0xD8, 0x10,
+ 0xB2, 0x39, 0xA1, 0x0C, 0xED, 0x2C, 0xF9, 0xB2,
+ 0x28, 0x43, 0x54, 0xC1, 0xF8, 0xC7, 0xE0, 0xAC,
+ 0xCC, 0x24, 0x61, 0xDC, 0x79, 0x6D, 0x6E, 0x89
+ },
+ {
+ 0x12, 0x51, 0xF7, 0x6E, 0x56, 0x97, 0x84, 0x81,
+ 0x87, 0x53, 0x59, 0x80, 0x1D, 0xB5, 0x89, 0xA0,
+ 0xB2, 0x2F, 0x86, 0xD8, 0xD6, 0x34, 0xDC, 0x04,
+ 0x50, 0x6F, 0x32, 0x2E, 0xD7, 0x8F, 0x17, 0xE8
+ },
+ {
+ 0x3A, 0xFA, 0x89, 0x9F, 0xD9, 0x80, 0xE7, 0x3E,
+ 0xCB, 0x7F, 0x4D, 0x8B, 0x8F, 0x29, 0x1D, 0xC9,
+ 0xAF, 0x79, 0x6B, 0xC6, 0x5D, 0x27, 0xF9, 0x74,
+ 0xC6, 0xF1, 0x93, 0xC9, 0x19, 0x1A, 0x09, 0xFD
+ },
+ {
+ 0xAA, 0x30, 0x5B, 0xE2, 0x6E, 0x5D, 0xED, 0xDC,
+ 0x3C, 0x10, 0x10, 0xCB, 0xC2, 0x13, 0xF9, 0x5F,
+ 0x05, 0x1C, 0x78, 0x5C, 0x5B, 0x43, 0x1E, 0x6A,
+ 0x7C, 0xD0, 0x48, 0xF1, 0x61, 0x78, 0x75, 0x28
+ },
+ {
+ 0x8E, 0xA1, 0x88, 0x4F, 0xF3, 0x2E, 0x9D, 0x10,
+ 0xF0, 0x39, 0xB4, 0x07, 0xD0, 0xD4, 0x4E, 0x7E,
+ 0x67, 0x0A, 0xBD, 0x88, 0x4A, 0xEE, 0xE0, 0xFB,
+ 0x75, 0x7A, 0xE9, 0x4E, 0xAA, 0x97, 0x37, 0x3D
+ },
+ {
+ 0xD4, 0x82, 0xB2, 0x15, 0x5D, 0x4D, 0xEC, 0x6B,
+ 0x47, 0x36, 0xA1, 0xF1, 0x61, 0x7B, 0x53, 0xAA,
+ 0xA3, 0x73, 0x10, 0x27, 0x7D, 0x3F, 0xEF, 0x0C,
+ 0x37, 0xAD, 0x41, 0x76, 0x8F, 0xC2, 0x35, 0xB4
+ },
+ {
+ 0x4D, 0x41, 0x39, 0x71, 0x38, 0x7E, 0x7A, 0x88,
+ 0x98, 0xA8, 0xDC, 0x2A, 0x27, 0x50, 0x07, 0x78,
+ 0x53, 0x9E, 0xA2, 0x14, 0xA2, 0xDF, 0xE9, 0xB3,
+ 0xD7, 0xE8, 0xEB, 0xDC, 0xE5, 0xCF, 0x3D, 0xB3
+ },
+ {
+ 0x69, 0x6E, 0x5D, 0x46, 0xE6, 0xC5, 0x7E, 0x87,
+ 0x96, 0xE4, 0x73, 0x5D, 0x08, 0x91, 0x6E, 0x0B,
+ 0x79, 0x29, 0xB3, 0xCF, 0x29, 0x8C, 0x29, 0x6D,
+ 0x22, 0xE9, 0xD3, 0x01, 0x96, 0x53, 0x37, 0x1C
+ },
+ {
+ 0x1F, 0x56, 0x47, 0xC1, 0xD3, 0xB0, 0x88, 0x22,
+ 0x88, 0x85, 0x86, 0x5C, 0x89, 0x40, 0x90, 0x8B,
+ 0xF4, 0x0D, 0x1A, 0x82, 0x72, 0x82, 0x19, 0x73,
+ 0xB1, 0x60, 0x00, 0x8E, 0x7A, 0x3C, 0xE2, 0xEB
+ },
+ {
+ 0xB6, 0xE7, 0x6C, 0x33, 0x0F, 0x02, 0x1A, 0x5B,
+ 0xDA, 0x65, 0x87, 0x50, 0x10, 0xB0, 0xED, 0xF0,
+ 0x91, 0x26, 0xC0, 0xF5, 0x10, 0xEA, 0x84, 0x90,
+ 0x48, 0x19, 0x20, 0x03, 0xAE, 0xF4, 0xC6, 0x1C
+ },
+ {
+ 0x3C, 0xD9, 0x52, 0xA0, 0xBE, 0xAD, 0xA4, 0x1A,
+ 0xBB, 0x42, 0x4C, 0xE4, 0x7F, 0x94, 0xB4, 0x2B,
+ 0xE6, 0x4E, 0x1F, 0xFB, 0x0F, 0xD0, 0x78, 0x22,
+ 0x76, 0x80, 0x79, 0x46, 0xD0, 0xD0, 0xBC, 0x55
+ },
+ {
+ 0x98, 0xD9, 0x26, 0x77, 0x43, 0x9B, 0x41, 0xB7,
+ 0xBB, 0x51, 0x33, 0x12, 0xAF, 0xB9, 0x2B, 0xCC,
+ 0x8E, 0xE9, 0x68, 0xB2, 0xE3, 0xB2, 0x38, 0xCE,
+ 0xCB, 0x9B, 0x0F, 0x34, 0xC9, 0xBB, 0x63, 0xD0
+ },
+ {
+ 0xEC, 0xBC, 0xA2, 0xCF, 0x08, 0xAE, 0x57, 0xD5,
+ 0x17, 0xAD, 0x16, 0x15, 0x8A, 0x32, 0xBF, 0xA7,
+ 0xDC, 0x03, 0x82, 0xEA, 0xED, 0xA1, 0x28, 0xE9,
+ 0x18, 0x86, 0x73, 0x4C, 0x24, 0xA0, 0xB2, 0x9D
+ },
+ {
+ 0x94, 0x2C, 0xC7, 0xC0, 0xB5, 0x2E, 0x2B, 0x16,
+ 0xA4, 0xB8, 0x9F, 0xA4, 0xFC, 0x7E, 0x0B, 0xF6,
+ 0x09, 0xE2, 0x9A, 0x08, 0xC1, 0xA8, 0x54, 0x34,
+ 0x52, 0xB7, 0x7C, 0x7B, 0xFD, 0x11, 0xBB, 0x28
+ },
+ {
+ 0x8A, 0x06, 0x5D, 0x8B, 0x61, 0xA0, 0xDF, 0xFB,
+ 0x17, 0x0D, 0x56, 0x27, 0x73, 0x5A, 0x76, 0xB0,
+ 0xE9, 0x50, 0x60, 0x37, 0x80, 0x8C, 0xBA, 0x16,
+ 0xC3, 0x45, 0x00, 0x7C, 0x9F, 0x79, 0xCF, 0x8F
+ },
+ {
+ 0x1B, 0x9F, 0xA1, 0x97, 0x14, 0x65, 0x9C, 0x78,
+ 0xFF, 0x41, 0x38, 0x71, 0x84, 0x92, 0x15, 0x36,
+ 0x10, 0x29, 0xAC, 0x80, 0x2B, 0x1C, 0xBC, 0xD5,
+ 0x4E, 0x40, 0x8B, 0xD8, 0x72, 0x87, 0xF8, 0x1F
+ },
+ {
+ 0x8D, 0xAB, 0x07, 0x1B, 0xCD, 0x6C, 0x72, 0x92,
+ 0xA9, 0xEF, 0x72, 0x7B, 0x4A, 0xE0, 0xD8, 0x67,
+ 0x13, 0x30, 0x1D, 0xA8, 0x61, 0x8D, 0x9A, 0x48,
+ 0xAD, 0xCE, 0x55, 0xF3, 0x03, 0xA8, 0x69, 0xA1
+ },
+ {
+ 0x82, 0x53, 0xE3, 0xE7, 0xC7, 0xB6, 0x84, 0xB9,
+ 0xCB, 0x2B, 0xEB, 0x01, 0x4C, 0xE3, 0x30, 0xFF,
+ 0x3D, 0x99, 0xD1, 0x7A, 0xBB, 0xDB, 0xAB, 0xE4,
+ 0xF4, 0xD6, 0x74, 0xDE, 0xD5, 0x3F, 0xFC, 0x6B
+ },
+ {
+ 0xF1, 0x95, 0xF3, 0x21, 0xE9, 0xE3, 0xD6, 0xBD,
+ 0x7D, 0x07, 0x45, 0x04, 0xDD, 0x2A, 0xB0, 0xE6,
+ 0x24, 0x1F, 0x92, 0xE7, 0x84, 0xB1, 0xAA, 0x27,
+ 0x1F, 0xF6, 0x48, 0xB1, 0xCA, 0xB6, 0xD7, 0xF6
+ },
+ {
+ 0x27, 0xE4, 0xCC, 0x72, 0x09, 0x0F, 0x24, 0x12,
+ 0x66, 0x47, 0x6A, 0x7C, 0x09, 0x49, 0x5F, 0x2D,
+ 0xB1, 0x53, 0xD5, 0xBC, 0xBD, 0x76, 0x19, 0x03,
+ 0xEF, 0x79, 0x27, 0x5E, 0xC5, 0x6B, 0x2E, 0xD8
+ },
+ {
+ 0x89, 0x9C, 0x24, 0x05, 0x78, 0x8E, 0x25, 0xB9,
+ 0x9A, 0x18, 0x46, 0x35, 0x5E, 0x64, 0x6D, 0x77,
+ 0xCF, 0x40, 0x00, 0x83, 0x41, 0x5F, 0x7D, 0xC5,
+ 0xAF, 0xE6, 0x9D, 0x6E, 0x17, 0xC0, 0x00, 0x23
+ },
+ {
+ 0xA5, 0x9B, 0x78, 0xC4, 0x90, 0x57, 0x44, 0x07,
+ 0x6B, 0xFE, 0xE8, 0x94, 0xDE, 0x70, 0x7D, 0x4F,
+ 0x12, 0x0B, 0x5C, 0x68, 0x93, 0xEA, 0x04, 0x00,
+ 0x29, 0x7D, 0x0B, 0xB8, 0x34, 0x72, 0x76, 0x32
+ },
+ {
+ 0x59, 0xDC, 0x78, 0xB1, 0x05, 0x64, 0x97, 0x07,
+ 0xA2, 0xBB, 0x44, 0x19, 0xC4, 0x8F, 0x00, 0x54,
+ 0x00, 0xD3, 0x97, 0x3D, 0xE3, 0x73, 0x66, 0x10,
+ 0x23, 0x04, 0x35, 0xB1, 0x04, 0x24, 0xB2, 0x4F
+ },
+ {
+ 0xC0, 0x14, 0x9D, 0x1D, 0x7E, 0x7A, 0x63, 0x53,
+ 0xA6, 0xD9, 0x06, 0xEF, 0xE7, 0x28, 0xF2, 0xF3,
+ 0x29, 0xFE, 0x14, 0xA4, 0x14, 0x9A, 0x3E, 0xA7,
+ 0x76, 0x09, 0xBC, 0x42, 0xB9, 0x75, 0xDD, 0xFA
+ },
+ {
+ 0xA3, 0x2F, 0x24, 0x14, 0x74, 0xA6, 0xC1, 0x69,
+ 0x32, 0xE9, 0x24, 0x3B, 0xE0, 0xCF, 0x09, 0xBC,
+ 0xDC, 0x7E, 0x0C, 0xA0, 0xE7, 0xA6, 0xA1, 0xB9,
+ 0xB1, 0xA0, 0xF0, 0x1E, 0x41, 0x50, 0x23, 0x77
+ },
+ {
+ 0xB2, 0x39, 0xB2, 0xE4, 0xF8, 0x18, 0x41, 0x36,
+ 0x1C, 0x13, 0x39, 0xF6, 0x8E, 0x2C, 0x35, 0x9F,
+ 0x92, 0x9A, 0xF9, 0xAD, 0x9F, 0x34, 0xE0, 0x1A,
+ 0xAB, 0x46, 0x31, 0xAD, 0x6D, 0x55, 0x00, 0xB0
+ },
+ {
+ 0x85, 0xFB, 0x41, 0x9C, 0x70, 0x02, 0xA3, 0xE0,
+ 0xB4, 0xB6, 0xEA, 0x09, 0x3B, 0x4C, 0x1A, 0xC6,
+ 0x93, 0x66, 0x45, 0xB6, 0x5D, 0xAC, 0x5A, 0xC1,
+ 0x5A, 0x85, 0x28, 0xB7, 0xB9, 0x4C, 0x17, 0x54
+ },
+ {
+ 0x96, 0x19, 0x72, 0x06, 0x25, 0xF1, 0x90, 0xB9,
+ 0x3A, 0x3F, 0xAD, 0x18, 0x6A, 0xB3, 0x14, 0x18,
+ 0x96, 0x33, 0xC0, 0xD3, 0xA0, 0x1E, 0x6F, 0x9B,
+ 0xC8, 0xC4, 0xA8, 0xF8, 0x2F, 0x38, 0x3D, 0xBF
+ },
+ {
+ 0x7D, 0x62, 0x0D, 0x90, 0xFE, 0x69, 0xFA, 0x46,
+ 0x9A, 0x65, 0x38, 0x38, 0x89, 0x70, 0xA1, 0xAA,
+ 0x09, 0xBB, 0x48, 0xA2, 0xD5, 0x9B, 0x34, 0x7B,
+ 0x97, 0xE8, 0xCE, 0x71, 0xF4, 0x8C, 0x7F, 0x46
+ },
+ {
+ 0x29, 0x43, 0x83, 0x56, 0x85, 0x96, 0xFB, 0x37,
+ 0xC7, 0x5B, 0xBA, 0xCD, 0x97, 0x9C, 0x5F, 0xF6,
+ 0xF2, 0x0A, 0x55, 0x6B, 0xF8, 0x87, 0x9C, 0xC7,
+ 0x29, 0x24, 0x85, 0x5D, 0xF9, 0xB8, 0x24, 0x0E
+ },
+ {
+ 0x16, 0xB1, 0x8A, 0xB3, 0x14, 0x35, 0x9C, 0x2B,
+ 0x83, 0x3C, 0x1C, 0x69, 0x86, 0xD4, 0x8C, 0x55,
+ 0xA9, 0xFC, 0x97, 0xCD, 0xE9, 0xA3, 0xC1, 0xF1,
+ 0x0A, 0x31, 0x77, 0x14, 0x0F, 0x73, 0xF7, 0x38
+ },
+ {
+ 0x8C, 0xBB, 0xDD, 0x14, 0xBC, 0x33, 0xF0, 0x4C,
+ 0xF4, 0x58, 0x13, 0xE4, 0xA1, 0x53, 0xA2, 0x73,
+ 0xD3, 0x6A, 0xDA, 0xD5, 0xCE, 0x71, 0xF4, 0x99,
+ 0xEE, 0xB8, 0x7F, 0xB8, 0xAC, 0x63, 0xB7, 0x29
+ },
+ {
+ 0x69, 0xC9, 0xA4, 0x98, 0xDB, 0x17, 0x4E, 0xCA,
+ 0xEF, 0xCC, 0x5A, 0x3A, 0xC9, 0xFD, 0xED, 0xF0,
+ 0xF8, 0x13, 0xA5, 0xBE, 0xC7, 0x27, 0xF1, 0xE7,
+ 0x75, 0xBA, 0xBD, 0xEC, 0x77, 0x18, 0x81, 0x6E
+ },
+ {
+ 0xB4, 0x62, 0xC3, 0xBE, 0x40, 0x44, 0x8F, 0x1D,
+ 0x4F, 0x80, 0x62, 0x62, 0x54, 0xE5, 0x35, 0xB0,
+ 0x8B, 0xC9, 0xCD, 0xCF, 0xF5, 0x99, 0xA7, 0x68,
+ 0x57, 0x8D, 0x4B, 0x28, 0x81, 0xA8, 0xE3, 0xF0
+ },
+ {
+ 0x55, 0x3E, 0x9D, 0x9C, 0x5F, 0x36, 0x0A, 0xC0,
+ 0xB7, 0x4A, 0x7D, 0x44, 0xE5, 0xA3, 0x91, 0xDA,
+ 0xD4, 0xCE, 0xD0, 0x3E, 0x0C, 0x24, 0x18, 0x3B,
+ 0x7E, 0x8E, 0xCA, 0xBD, 0xF1, 0x71, 0x5A, 0x64
+ },
+ {
+ 0x7A, 0x7C, 0x55, 0xA5, 0x6F, 0xA9, 0xAE, 0x51,
+ 0xE6, 0x55, 0xE0, 0x19, 0x75, 0xD8, 0xA6, 0xFF,
+ 0x4A, 0xE9, 0xE4, 0xB4, 0x86, 0xFC, 0xBE, 0x4E,
+ 0xAC, 0x04, 0x45, 0x88, 0xF2, 0x45, 0xEB, 0xEA
+ },
+ {
+ 0x2A, 0xFD, 0xF3, 0xC8, 0x2A, 0xBC, 0x48, 0x67,
+ 0xF5, 0xDE, 0x11, 0x12, 0x86, 0xC2, 0xB3, 0xBE,
+ 0x7D, 0x6E, 0x48, 0x65, 0x7B, 0xA9, 0x23, 0xCF,
+ 0xBF, 0x10, 0x1A, 0x6D, 0xFC, 0xF9, 0xDB, 0x9A
+ },
+ {
+ 0x41, 0x03, 0x7D, 0x2E, 0xDC, 0xDC, 0xE0, 0xC4,
+ 0x9B, 0x7F, 0xB4, 0xA6, 0xAA, 0x09, 0x99, 0xCA,
+ 0x66, 0x97, 0x6C, 0x74, 0x83, 0xAF, 0xE6, 0x31,
+ 0xD4, 0xED, 0xA2, 0x83, 0x14, 0x4F, 0x6D, 0xFC
+ },
+ {
+ 0xC4, 0x46, 0x6F, 0x84, 0x97, 0xCA, 0x2E, 0xEB,
+ 0x45, 0x83, 0xA0, 0xB0, 0x8E, 0x9D, 0x9A, 0xC7,
+ 0x43, 0x95, 0x70, 0x9F, 0xDA, 0x10, 0x9D, 0x24,
+ 0xF2, 0xE4, 0x46, 0x21, 0x96, 0x77, 0x9C, 0x5D
+ },
+ {
+ 0x75, 0xF6, 0x09, 0x33, 0x8A, 0xA6, 0x7D, 0x96,
+ 0x9A, 0x2A, 0xE2, 0xA2, 0x36, 0x2B, 0x2D, 0xA9,
+ 0xD7, 0x7C, 0x69, 0x5D, 0xFD, 0x1D, 0xF7, 0x22,
+ 0x4A, 0x69, 0x01, 0xDB, 0x93, 0x2C, 0x33, 0x64
+ },
+ {
+ 0x68, 0x60, 0x6C, 0xEB, 0x98, 0x9D, 0x54, 0x88,
+ 0xFC, 0x7C, 0xF6, 0x49, 0xF3, 0xD7, 0xC2, 0x72,
+ 0xEF, 0x05, 0x5D, 0xA1, 0xA9, 0x3F, 0xAE, 0xCD,
+ 0x55, 0xFE, 0x06, 0xF6, 0x96, 0x70, 0x98, 0xCA
+ },
+ {
+ 0x44, 0x34, 0x6B, 0xDE, 0xB7, 0xE0, 0x52, 0xF6,
+ 0x25, 0x50, 0x48, 0xF0, 0xD9, 0xB4, 0x2C, 0x42,
+ 0x5B, 0xAB, 0x9C, 0x3D, 0xD2, 0x41, 0x68, 0x21,
+ 0x2C, 0x3E, 0xCF, 0x1E, 0xBF, 0x34, 0xE6, 0xAE
+ },
+ {
+ 0x8E, 0x9C, 0xF6, 0xE1, 0xF3, 0x66, 0x47, 0x1F,
+ 0x2A, 0xC7, 0xD2, 0xEE, 0x9B, 0x5E, 0x62, 0x66,
+ 0xFD, 0xA7, 0x1F, 0x8F, 0x2E, 0x41, 0x09, 0xF2,
+ 0x23, 0x7E, 0xD5, 0xF8, 0x81, 0x3F, 0xC7, 0x18
+ },
+ {
+ 0x84, 0xBB, 0xEB, 0x84, 0x06, 0xD2, 0x50, 0x95,
+ 0x1F, 0x8C, 0x1B, 0x3E, 0x86, 0xA7, 0xC0, 0x10,
+ 0x08, 0x29, 0x21, 0x83, 0x3D, 0xFD, 0x95, 0x55,
+ 0xA2, 0xF9, 0x09, 0xB1, 0x08, 0x6E, 0xB4, 0xB8
+ },
+ {
+ 0xEE, 0x66, 0x6F, 0x3E, 0xEF, 0x0F, 0x7E, 0x2A,
+ 0x9C, 0x22, 0x29, 0x58, 0xC9, 0x7E, 0xAF, 0x35,
+ 0xF5, 0x1C, 0xED, 0x39, 0x3D, 0x71, 0x44, 0x85,
+ 0xAB, 0x09, 0xA0, 0x69, 0x34, 0x0F, 0xDF, 0x88
+ },
+ {
+ 0xC1, 0x53, 0xD3, 0x4A, 0x65, 0xC4, 0x7B, 0x4A,
+ 0x62, 0xC5, 0xCA, 0xCF, 0x24, 0x01, 0x09, 0x75,
+ 0xD0, 0x35, 0x6B, 0x2F, 0x32, 0xC8, 0xF5, 0xDA,
+ 0x53, 0x0D, 0x33, 0x88, 0x16, 0xAD, 0x5D, 0xE6
+ },
+ {
+ 0x9F, 0xC5, 0x45, 0x01, 0x09, 0xE1, 0xB7, 0x79,
+ 0xF6, 0xC7, 0xAE, 0x79, 0xD5, 0x6C, 0x27, 0x63,
+ 0x5C, 0x8D, 0xD4, 0x26, 0xC5, 0xA9, 0xD5, 0x4E,
+ 0x25, 0x78, 0xDB, 0x98, 0x9B, 0x8C, 0x3B, 0x4E
+ },
+ {
+ 0xD1, 0x2B, 0xF3, 0x73, 0x2E, 0xF4, 0xAF, 0x5C,
+ 0x22, 0xFA, 0x90, 0x35, 0x6A, 0xF8, 0xFC, 0x50,
+ 0xFC, 0xB4, 0x0F, 0x8F, 0x2E, 0xA5, 0xC8, 0x59,
+ 0x47, 0x37, 0xA3, 0xB3, 0xD5, 0xAB, 0xDB, 0xD7
+ },
+ {
+ 0x11, 0x03, 0x0B, 0x92, 0x89, 0xBB, 0xA5, 0xAF,
+ 0x65, 0x26, 0x06, 0x72, 0xAB, 0x6F, 0xEE, 0x88,
+ 0xB8, 0x74, 0x20, 0xAC, 0xEF, 0x4A, 0x17, 0x89,
+ 0xA2, 0x07, 0x3B, 0x7E, 0xC2, 0xF2, 0xA0, 0x9E
+ },
+ {
+ 0x69, 0xCB, 0x19, 0x2B, 0x84, 0x44, 0x00, 0x5C,
+ 0x8C, 0x0C, 0xEB, 0x12, 0xC8, 0x46, 0x86, 0x07,
+ 0x68, 0x18, 0x8C, 0xDA, 0x0A, 0xEC, 0x27, 0xA9,
+ 0xC8, 0xA5, 0x5C, 0xDE, 0xE2, 0x12, 0x36, 0x32
+ },
+ {
+ 0xDB, 0x44, 0x4C, 0x15, 0x59, 0x7B, 0x5F, 0x1A,
+ 0x03, 0xD1, 0xF9, 0xED, 0xD1, 0x6E, 0x4A, 0x9F,
+ 0x43, 0xA6, 0x67, 0xCC, 0x27, 0x51, 0x75, 0xDF,
+ 0xA2, 0xB7, 0x04, 0xE3, 0xBB, 0x1A, 0x9B, 0x83
+ },
+ {
+ 0x3F, 0xB7, 0x35, 0x06, 0x1A, 0xBC, 0x51, 0x9D,
+ 0xFE, 0x97, 0x9E, 0x54, 0xC1, 0xEE, 0x5B, 0xFA,
+ 0xD0, 0xA9, 0xD8, 0x58, 0xB3, 0x31, 0x5B, 0xAD,
+ 0x34, 0xBD, 0xE9, 0x99, 0xEF, 0xD7, 0x24, 0xDD
+ },
+};
+
+
+
+
+static const uint8_t blake2b_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
+{
+ {
+ 0x78, 0x6A, 0x02, 0xF7, 0x42, 0x01, 0x59, 0x03,
+ 0xC6, 0xC6, 0xFD, 0x85, 0x25, 0x52, 0xD2, 0x72,
+ 0x91, 0x2F, 0x47, 0x40, 0xE1, 0x58, 0x47, 0x61,
+ 0x8A, 0x86, 0xE2, 0x17, 0xF7, 0x1F, 0x54, 0x19,
+ 0xD2, 0x5E, 0x10, 0x31, 0xAF, 0xEE, 0x58, 0x53,
+ 0x13, 0x89, 0x64, 0x44, 0x93, 0x4E, 0xB0, 0x4B,
+ 0x90, 0x3A, 0x68, 0x5B, 0x14, 0x48, 0xB7, 0x55,
+ 0xD5, 0x6F, 0x70, 0x1A, 0xFE, 0x9B, 0xE2, 0xCE
+ },
+ {
+ 0x2F, 0xA3, 0xF6, 0x86, 0xDF, 0x87, 0x69, 0x95,
+ 0x16, 0x7E, 0x7C, 0x2E, 0x5D, 0x74, 0xC4, 0xC7,
+ 0xB6, 0xE4, 0x8F, 0x80, 0x68, 0xFE, 0x0E, 0x44,
+ 0x20, 0x83, 0x44, 0xD4, 0x80, 0xF7, 0x90, 0x4C,
+ 0x36, 0x96, 0x3E, 0x44, 0x11, 0x5F, 0xE3, 0xEB,
+ 0x2A, 0x3A, 0xC8, 0x69, 0x4C, 0x28, 0xBC, 0xB4,
+ 0xF5, 0xA0, 0xF3, 0x27, 0x6F, 0x2E, 0x79, 0x48,
+ 0x7D, 0x82, 0x19, 0x05, 0x7A, 0x50, 0x6E, 0x4B
+ },
+ {
+ 0x1C, 0x08, 0x79, 0x8D, 0xC6, 0x41, 0xAB, 0xA9,
+ 0xDE, 0xE4, 0x35, 0xE2, 0x25, 0x19, 0xA4, 0x72,
+ 0x9A, 0x09, 0xB2, 0xBF, 0xE0, 0xFF, 0x00, 0xEF,
+ 0x2D, 0xCD, 0x8E, 0xD6, 0xF8, 0xA0, 0x7D, 0x15,
+ 0xEA, 0xF4, 0xAE, 0xE5, 0x2B, 0xBF, 0x18, 0xAB,
+ 0x56, 0x08, 0xA6, 0x19, 0x0F, 0x70, 0xB9, 0x04,
+ 0x86, 0xC8, 0xA7, 0xD4, 0x87, 0x37, 0x10, 0xB1,
+ 0x11, 0x5D, 0x3D, 0xEB, 0xBB, 0x43, 0x27, 0xB5
+ },
+ {
+ 0x40, 0xA3, 0x74, 0x72, 0x73, 0x02, 0xD9, 0xA4,
+ 0x76, 0x9C, 0x17, 0xB5, 0xF4, 0x09, 0xFF, 0x32,
+ 0xF5, 0x8A, 0xA2, 0x4F, 0xF1, 0x22, 0xD7, 0x60,
+ 0x3E, 0x4F, 0xDA, 0x15, 0x09, 0xE9, 0x19, 0xD4,
+ 0x10, 0x7A, 0x52, 0xC5, 0x75, 0x70, 0xA6, 0xD9,
+ 0x4E, 0x50, 0x96, 0x7A, 0xEA, 0x57, 0x3B, 0x11,
+ 0xF8, 0x6F, 0x47, 0x3F, 0x53, 0x75, 0x65, 0xC6,
+ 0x6F, 0x70, 0x39, 0x83, 0x0A, 0x85, 0xD1, 0x86
+ },
+ {
+ 0x77, 0xDD, 0xF4, 0xB1, 0x44, 0x25, 0xEB, 0x3D,
+ 0x05, 0x3C, 0x1E, 0x84, 0xE3, 0x46, 0x9D, 0x92,
+ 0xC4, 0xCD, 0x91, 0x0E, 0xD2, 0x0F, 0x92, 0x03,
+ 0x5E, 0x0C, 0x99, 0xD8, 0xA7, 0xA8, 0x6C, 0xEC,
+ 0xAF, 0x69, 0xF9, 0x66, 0x3C, 0x20, 0xA7, 0xAA,
+ 0x23, 0x0B, 0xC8, 0x2F, 0x60, 0xD2, 0x2F, 0xB4,
+ 0xA0, 0x0B, 0x09, 0xD3, 0xEB, 0x8F, 0xC6, 0x5E,
+ 0xF5, 0x47, 0xFE, 0x63, 0xC8, 0xD3, 0xDD, 0xCE
+ },
+ {
+ 0xCB, 0xAA, 0x0B, 0xA7, 0xD4, 0x82, 0xB1, 0xF3,
+ 0x01, 0x10, 0x9A, 0xE4, 0x10, 0x51, 0x99, 0x1A,
+ 0x32, 0x89, 0xBC, 0x11, 0x98, 0x00, 0x5A, 0xF2,
+ 0x26, 0xC5, 0xE4, 0xF1, 0x03, 0xB6, 0x65, 0x79,
+ 0xF4, 0x61, 0x36, 0x10, 0x44, 0xC8, 0xBA, 0x34,
+ 0x39, 0xFF, 0x12, 0xC5, 0x15, 0xFB, 0x29, 0xC5,
+ 0x21, 0x61, 0xB7, 0xEB, 0x9C, 0x28, 0x37, 0xB7,
+ 0x6A, 0x5D, 0xC3, 0x3F, 0x7C, 0xB2, 0xE2, 0xE8
+ },
+ {
+ 0xF9, 0x5D, 0x45, 0xCF, 0x69, 0xAF, 0x5C, 0x20,
+ 0x23, 0xBD, 0xB5, 0x05, 0x82, 0x1E, 0x62, 0xE8,
+ 0x5D, 0x7C, 0xAE, 0xDF, 0x7B, 0xED, 0xA1, 0x2C,
+ 0x02, 0x48, 0x77, 0x5B, 0x0C, 0x88, 0x20, 0x5E,
+ 0xEB, 0x35, 0xAF, 0x3A, 0x90, 0x81, 0x6F, 0x66,
+ 0x08, 0xCE, 0x7D, 0xD4, 0x4E, 0xC2, 0x8D, 0xB1,
+ 0x14, 0x06, 0x14, 0xE1, 0xDD, 0xEB, 0xF3, 0xAA,
+ 0x9C, 0xD1, 0x84, 0x3E, 0x0F, 0xAD, 0x2C, 0x36
+ },
+ {
+ 0x8F, 0x94, 0x5B, 0xA7, 0x00, 0xF2, 0x53, 0x0E,
+ 0x5C, 0x2A, 0x7D, 0xF7, 0xD5, 0xDC, 0xE0, 0xF8,
+ 0x3F, 0x9E, 0xFC, 0x78, 0xC0, 0x73, 0xFE, 0x71,
+ 0xAE, 0x1F, 0x88, 0x20, 0x4A, 0x4F, 0xD1, 0xCF,
+ 0x70, 0xA0, 0x73, 0xF5, 0xD1, 0xF9, 0x42, 0xED,
+ 0x62, 0x3A, 0xA1, 0x6E, 0x90, 0xA8, 0x71, 0x24,
+ 0x6C, 0x90, 0xC4, 0x5B, 0x62, 0x1B, 0x34, 0x01,
+ 0xA5, 0xDD, 0xBD, 0x9D, 0xF6, 0x26, 0x41, 0x65
+ },
+ {
+ 0xE9, 0x98, 0xE0, 0xDC, 0x03, 0xEC, 0x30, 0xEB,
+ 0x99, 0xBB, 0x6B, 0xFA, 0xAF, 0x66, 0x18, 0xAC,
+ 0xC6, 0x20, 0x32, 0x0D, 0x72, 0x20, 0xB3, 0xAF,
+ 0x2B, 0x23, 0xD1, 0x12, 0xD8, 0xE9, 0xCB, 0x12,
+ 0x62, 0xF3, 0xC0, 0xD6, 0x0D, 0x18, 0x3B, 0x1E,
+ 0xE7, 0xF0, 0x96, 0xD1, 0x2D, 0xAE, 0x42, 0xC9,
+ 0x58, 0x41, 0x86, 0x00, 0x21, 0x4D, 0x04, 0xF5,
+ 0xED, 0x6F, 0x5E, 0x71, 0x8B, 0xE3, 0x55, 0x66
+ },
+ {
+ 0x6A, 0x9A, 0x09, 0x0C, 0x61, 0xB3, 0x41, 0x0A,
+ 0xED, 0xE7, 0xEC, 0x91, 0x38, 0x14, 0x6C, 0xEB,
+ 0x2C, 0x69, 0x66, 0x2F, 0x46, 0x0C, 0x3D, 0xA5,
+ 0x3C, 0x65, 0x15, 0xC1, 0xEB, 0x31, 0xF4, 0x1C,
+ 0xA3, 0xD2, 0x80, 0xE5, 0x67, 0x88, 0x2F, 0x95,
+ 0xCF, 0x66, 0x4A, 0x94, 0x14, 0x7D, 0x78, 0xF4,
+ 0x2C, 0xFC, 0x71, 0x4A, 0x40, 0xD2, 0x2E, 0xF1,
+ 0x94, 0x70, 0xE0, 0x53, 0x49, 0x35, 0x08, 0xA2
+ },
+ {
+ 0x29, 0x10, 0x25, 0x11, 0xD7, 0x49, 0xDB, 0x3C,
+ 0xC9, 0xB4, 0xE3, 0x35, 0xFA, 0x1F, 0x5E, 0x8F,
+ 0xAC, 0xA8, 0x42, 0x1D, 0x55, 0x8F, 0x6A, 0x3F,
+ 0x33, 0x21, 0xD5, 0x0D, 0x04, 0x4A, 0x24, 0x8B,
+ 0xA5, 0x95, 0xCF, 0xC3, 0xEF, 0xD3, 0xD2, 0xAD,
+ 0xC9, 0x73, 0x34, 0xDA, 0x73, 0x24, 0x13, 0xF5,
+ 0xCB, 0xF4, 0x75, 0x1C, 0x36, 0x2B, 0xA1, 0xD5,
+ 0x38, 0x62, 0xAC, 0x1E, 0x8D, 0xAB, 0xEE, 0xE8
+ },
+ {
+ 0xC9, 0x7A, 0x47, 0x79, 0xD4, 0x7E, 0x6F, 0x77,
+ 0x72, 0x9B, 0x59, 0x17, 0xD0, 0x13, 0x8A, 0xBB,
+ 0x35, 0x98, 0x0A, 0xB6, 0x41, 0xBD, 0x73, 0xA8,
+ 0x85, 0x9E, 0xB1, 0xAC, 0x98, 0xC0, 0x53, 0x62,
+ 0xED, 0x7D, 0x60, 0x8F, 0x2E, 0x95, 0x87, 0xD6,
+ 0xBA, 0x9E, 0x27, 0x1D, 0x34, 0x31, 0x25, 0xD4,
+ 0x0D, 0x93, 0x3A, 0x8E, 0xD0, 0x4E, 0xC1, 0xFE,
+ 0x75, 0xEC, 0x40, 0x7C, 0x7A, 0x53, 0xC3, 0x4E
+ },
+ {
+ 0x10, 0xF0, 0xDC, 0x91, 0xB9, 0xF8, 0x45, 0xFB,
+ 0x95, 0xFA, 0xD6, 0x86, 0x0E, 0x6C, 0xE1, 0xAD,
+ 0xFA, 0x00, 0x2C, 0x7F, 0xC3, 0x27, 0x11, 0x6D,
+ 0x44, 0xD0, 0x47, 0xCD, 0x7D, 0x58, 0x70, 0xD7,
+ 0x72, 0xBB, 0x12, 0xB5, 0xFA, 0xC0, 0x0E, 0x02,
+ 0xB0, 0x8A, 0xC2, 0xA0, 0x17, 0x4D, 0x04, 0x46,
+ 0xC3, 0x6A, 0xB3, 0x5F, 0x14, 0xCA, 0x31, 0x89,
+ 0x4C, 0xD6, 0x1C, 0x78, 0xC8, 0x49, 0xB4, 0x8A
+ },
+ {
+ 0xDE, 0xA9, 0x10, 0x1C, 0xAC, 0x62, 0xB8, 0xF6,
+ 0xA3, 0xC6, 0x50, 0xF9, 0x0E, 0xEA, 0x5B, 0xFA,
+ 0xE2, 0x65, 0x3A, 0x4E, 0xAF, 0xD6, 0x3A, 0x6D,
+ 0x1F, 0x0F, 0x13, 0x2D, 0xB9, 0xE4, 0xF2, 0xB1,
+ 0xB6, 0x62, 0x43, 0x2E, 0xC8, 0x5B, 0x17, 0xBC,
+ 0xAC, 0x41, 0xE7, 0x75, 0x63, 0x78, 0x81, 0xF6,
+ 0xAA, 0xB3, 0x8D, 0xD6, 0x6D, 0xCB, 0xD0, 0x80,
+ 0xF0, 0x99, 0x0A, 0x7A, 0x6E, 0x98, 0x54, 0xFE
+ },
+ {
+ 0x44, 0x1F, 0xFA, 0xA0, 0x8C, 0xD7, 0x9D, 0xFF,
+ 0x4A, 0xFC, 0x9B, 0x9E, 0x5B, 0x56, 0x20, 0xEE,
+ 0xC0, 0x86, 0x73, 0x0C, 0x25, 0xF6, 0x61, 0xB1,
+ 0xD6, 0xFB, 0xFB, 0xD1, 0xCE, 0xC3, 0x14, 0x8D,
+ 0xD7, 0x22, 0x58, 0xC6, 0x56, 0x41, 0xF2, 0xFC,
+ 0xA5, 0xEB, 0x15, 0x5F, 0xAD, 0xBC, 0xAB, 0xB1,
+ 0x3C, 0x6E, 0x21, 0xDC, 0x11, 0xFA, 0xF7, 0x2C,
+ 0x2A, 0x28, 0x1B, 0x7D, 0x56, 0x14, 0x5F, 0x19
+ },
+ {
+ 0x44, 0x4B, 0x24, 0x0F, 0xE3, 0xED, 0x86, 0xD0,
+ 0xE2, 0xEF, 0x4C, 0xE7, 0xD8, 0x51, 0xED, 0xDE,
+ 0x22, 0x15, 0x55, 0x82, 0xAA, 0x09, 0x14, 0x79,
+ 0x7B, 0x72, 0x6C, 0xD0, 0x58, 0xB6, 0xF4, 0x59,
+ 0x32, 0xE0, 0xE1, 0x29, 0x51, 0x68, 0x76, 0x52,
+ 0x7B, 0x1D, 0xD8, 0x8F, 0xC6, 0x6D, 0x71, 0x19,
+ 0xF4, 0xAB, 0x3B, 0xED, 0x93, 0xA6, 0x1A, 0x0E,
+ 0x2D, 0x2D, 0x2A, 0xEA, 0xC3, 0x36, 0xD9, 0x58
+ },
+ {
+ 0xBF, 0xBA, 0xBB, 0xEF, 0x45, 0x55, 0x4C, 0xCF,
+ 0xA0, 0xDC, 0x83, 0x75, 0x2A, 0x19, 0xCC, 0x35,
+ 0xD5, 0x92, 0x09, 0x56, 0xB3, 0x01, 0xD5, 0x58,
+ 0xD7, 0x72, 0x28, 0x2B, 0xC8, 0x67, 0x00, 0x91,
+ 0x68, 0xE9, 0xE9, 0x86, 0x06, 0xBB, 0x5B, 0xA7,
+ 0x3A, 0x38, 0x5D, 0xE5, 0x74, 0x92, 0x28, 0xC9,
+ 0x25, 0xA8, 0x50, 0x19, 0xB7, 0x1F, 0x72, 0xFE,
+ 0x29, 0xB3, 0xCD, 0x37, 0xCA, 0x52, 0xEF, 0xE6
+ },
+ {
+ 0x9C, 0x4D, 0x0C, 0x3E, 0x1C, 0xDB, 0xBF, 0x48,
+ 0x5B, 0xEC, 0x86, 0xF4, 0x1C, 0xEC, 0x7C, 0x98,
+ 0x37, 0x3F, 0x0E, 0x09, 0xF3, 0x92, 0x84, 0x9A,
+ 0xAA, 0x22, 0x9E, 0xBF, 0xBF, 0x39, 0x7B, 0x22,
+ 0x08, 0x55, 0x29, 0xCB, 0x7E, 0xF3, 0x9F, 0x9C,
+ 0x7C, 0x22, 0x22, 0xA5, 0x14, 0x18, 0x2B, 0x1E,
+ 0xFF, 0xAA, 0x17, 0x8C, 0xC3, 0x68, 0x7B, 0x1B,
+ 0x2B, 0x6C, 0xBC, 0xB6, 0xFD, 0xEB, 0x96, 0xF8
+ },
+ {
+ 0x47, 0x71, 0x76, 0xB3, 0xBF, 0xCB, 0xAD, 0xD7,
+ 0x65, 0x7C, 0x23, 0xC2, 0x46, 0x25, 0xE4, 0xD0,
+ 0xD6, 0x74, 0xD1, 0x86, 0x8F, 0x00, 0x60, 0x06,
+ 0x39, 0x8A, 0xF9, 0x7A, 0xA4, 0x18, 0x77, 0xC8,
+ 0xE7, 0x0D, 0x3D, 0x14, 0xC3, 0xBB, 0xC9, 0xBB,
+ 0xCD, 0xCE, 0xA8, 0x01, 0xBD, 0x0E, 0x15, 0x99,
+ 0xAF, 0x1F, 0x3E, 0xEC, 0x67, 0x40, 0x51, 0x70,
+ 0xF4, 0xE2, 0x6C, 0x96, 0x4A, 0x57, 0xA8, 0xB7
+ },
+ {
+ 0xA7, 0x8C, 0x49, 0x0E, 0xDA, 0x31, 0x73, 0xBB,
+ 0x3F, 0x10, 0xDE, 0xE5, 0x2F, 0x11, 0x0F, 0xB1,
+ 0xC0, 0x8E, 0x03, 0x02, 0x23, 0x0B, 0x85, 0xDD,
+ 0xD7, 0xC1, 0x12, 0x57, 0xD9, 0x2D, 0xE1, 0x48,
+ 0x78, 0x5E, 0xF0, 0x0C, 0x03, 0x9C, 0x0B, 0xB8,
+ 0xEB, 0x98, 0x08, 0xA3, 0x5B, 0x2D, 0x8C, 0x08,
+ 0x0F, 0x57, 0x28, 0x59, 0x71, 0x4C, 0x9D, 0x40,
+ 0x69, 0xC5, 0xBC, 0xAF, 0x09, 0x0E, 0x89, 0x8E
+ },
+ {
+ 0x58, 0xD0, 0x23, 0x39, 0x7B, 0xEB, 0x5B, 0x41,
+ 0x45, 0xCB, 0x22, 0x55, 0xB0, 0x7D, 0x74, 0x29,
+ 0x0B, 0x36, 0xD9, 0xFD, 0x1E, 0x59, 0x4A, 0xFB,
+ 0xD8, 0xEE, 0xA4, 0x7C, 0x20, 0x5B, 0x2E, 0xFB,
+ 0xFE, 0x6F, 0x46, 0x19, 0x0F, 0xAF, 0x95, 0xAF,
+ 0x50, 0x4A, 0xB0, 0x72, 0xE3, 0x6F, 0x6C, 0x85,
+ 0xD7, 0x67, 0xA3, 0x21, 0xBF, 0xD7, 0xF2, 0x26,
+ 0x87, 0xA4, 0xAB, 0xBF, 0x49, 0x4A, 0x68, 0x9C
+ },
+ {
+ 0x40, 0x01, 0xEC, 0x74, 0xD5, 0xA4, 0x6F, 0xD2,
+ 0x9C, 0x2C, 0x3C, 0xDB, 0xE5, 0xD1, 0xB9, 0xF2,
+ 0x0E, 0x51, 0xA9, 0x41, 0xBE, 0x98, 0xD2, 0xA4,
+ 0xE1, 0xE2, 0xFB, 0xF8, 0x66, 0xA6, 0x72, 0x12,
+ 0x1D, 0xB6, 0xF8, 0x1A, 0x51, 0x4C, 0xFD, 0x10,
+ 0xE7, 0x35, 0x8D, 0x57, 0x1B, 0xDB, 0xA4, 0x8E,
+ 0x4C, 0xE7, 0x08, 0xB9, 0xD1, 0x24, 0x89, 0x4B,
+ 0xC0, 0xB5, 0xED, 0x55, 0x49, 0x35, 0xF7, 0x3A
+ },
+ {
+ 0xCC, 0xD1, 0xB2, 0x2D, 0xAB, 0x65, 0x11, 0x22,
+ 0x5D, 0x24, 0x01, 0xEA, 0x2D, 0x86, 0x25, 0xD2,
+ 0x06, 0xA1, 0x24, 0x73, 0xCC, 0x73, 0x2B, 0x61,
+ 0x5E, 0x56, 0x40, 0xCE, 0xFF, 0xF0, 0xA4, 0xAD,
+ 0xF9, 0x71, 0xB0, 0xE8, 0x27, 0xA6, 0x19, 0xE0,
+ 0xA8, 0x0F, 0x5D, 0xB9, 0xCC, 0xD0, 0x96, 0x23,
+ 0x29, 0x01, 0x0D, 0x07, 0xE3, 0x4A, 0x20, 0x64,
+ 0xE7, 0x31, 0xC5, 0x20, 0x81, 0x7B, 0x21, 0x83
+ },
+ {
+ 0xB4, 0xA0, 0xA9, 0xE3, 0x57, 0x4E, 0xDB, 0x9E,
+ 0x1E, 0x72, 0xAA, 0x31, 0xE3, 0x9C, 0xC5, 0xF3,
+ 0x0D, 0xBF, 0x94, 0x3F, 0x8C, 0xAB, 0xC4, 0x08,
+ 0x44, 0x96, 0x54, 0xA3, 0x91, 0x31, 0xE6, 0x6D,
+ 0x71, 0x8A, 0x18, 0x81, 0x91, 0x43, 0xE3, 0xEA,
+ 0x96, 0xB4, 0xA1, 0x89, 0x59, 0x88, 0xA1, 0xC0,
+ 0x05, 0x6C, 0xF2, 0xB6, 0xE0, 0x4F, 0x9A, 0xC1,
+ 0x9D, 0x65, 0x73, 0x83, 0xC2, 0x91, 0x0C, 0x44
+ },
+ {
+ 0x44, 0x7B, 0xEC, 0xAB, 0x16, 0x63, 0x06, 0x08,
+ 0xD3, 0x9F, 0x4F, 0x05, 0x8B, 0x16, 0xF7, 0xAF,
+ 0x95, 0xB8, 0x5A, 0x76, 0xAA, 0x0F, 0xA7, 0xCE,
+ 0xA2, 0xB8, 0x07, 0x55, 0xFB, 0x76, 0xE9, 0xC8,
+ 0x04, 0xF2, 0xCA, 0x78, 0xF0, 0x26, 0x43, 0xC9,
+ 0x15, 0xFB, 0xF2, 0xFC, 0xE5, 0xE1, 0x9D, 0xE8,
+ 0x60, 0x00, 0xDE, 0x03, 0xB1, 0x88, 0x61, 0x81,
+ 0x5A, 0x83, 0x12, 0x60, 0x71, 0xF8, 0xA3, 0x7B
+ },
+ {
+ 0x54, 0xE6, 0xDA, 0xB9, 0x97, 0x73, 0x80, 0xA5,
+ 0x66, 0x58, 0x22, 0xDB, 0x93, 0x37, 0x4E, 0xDA,
+ 0x52, 0x8D, 0x9B, 0xEB, 0x62, 0x6F, 0x9B, 0x94,
+ 0x02, 0x70, 0x71, 0xCB, 0x26, 0x67, 0x5E, 0x11,
+ 0x2B, 0x4A, 0x7F, 0xEC, 0x94, 0x1E, 0xE6, 0x0A,
+ 0x81, 0xE4, 0xD2, 0xEA, 0x3F, 0xF7, 0xBC, 0x52,
+ 0xCF, 0xC4, 0x5D, 0xFB, 0xFE, 0x73, 0x5A, 0x1C,
+ 0x64, 0x6B, 0x2C, 0xF6, 0xD6, 0xA4, 0x9B, 0x62
+ },
+ {
+ 0x3E, 0xA6, 0x26, 0x25, 0x94, 0x9E, 0x36, 0x46,
+ 0x70, 0x4D, 0x7E, 0x3C, 0x90, 0x6F, 0x82, 0xF6,
+ 0xC0, 0x28, 0xF5, 0x40, 0xF5, 0xF7, 0x2A, 0x79,
+ 0x4B, 0x0C, 0x57, 0xBF, 0x97, 0xB7, 0x64, 0x9B,
+ 0xFE, 0xB9, 0x0B, 0x01, 0xD3, 0xCA, 0x3E, 0x82,
+ 0x9D, 0xE2, 0x1B, 0x38, 0x26, 0xE6, 0xF8, 0x70,
+ 0x14, 0xD3, 0xC7, 0x73, 0x50, 0xCB, 0x5A, 0x15,
+ 0xFF, 0x5D, 0x46, 0x8A, 0x81, 0xBE, 0xC1, 0x60
+ },
+ {
+ 0x21, 0x3C, 0xFE, 0x14, 0x5C, 0x54, 0xA3, 0x36,
+ 0x91, 0x56, 0x99, 0x80, 0xE5, 0x93, 0x8C, 0x88,
+ 0x83, 0xA4, 0x6D, 0x84, 0xD1, 0x49, 0xC8, 0xFF,
+ 0x1A, 0x67, 0xCD, 0x28, 0x7B, 0x4D, 0x49, 0xC6,
+ 0xDA, 0x69, 0xD3, 0xA0, 0x35, 0x44, 0x3D, 0xB0,
+ 0x85, 0x98, 0x3D, 0x0E, 0xFE, 0x63, 0x70, 0x6B,
+ 0xD5, 0xB6, 0xF1, 0x5A, 0x7D, 0xA4, 0x59, 0xE8,
+ 0xD5, 0x0A, 0x19, 0x09, 0x3D, 0xB5, 0x5E, 0x80
+ },
+ {
+ 0x57, 0x16, 0xC4, 0xA3, 0x8F, 0x38, 0xDB, 0x10,
+ 0x4E, 0x49, 0x4A, 0x0A, 0x27, 0xCB, 0xE8, 0x9A,
+ 0x26, 0xA6, 0xBB, 0x6F, 0x49, 0x9E, 0xC0, 0x1C,
+ 0x8C, 0x01, 0xAA, 0x7C, 0xB8, 0x84, 0x97, 0xE7,
+ 0x51, 0x48, 0xCD, 0x6E, 0xEE, 0x12, 0xA7, 0x16,
+ 0x8B, 0x6F, 0x78, 0xAB, 0x74, 0xE4, 0xBE, 0x74,
+ 0x92, 0x51, 0xA1, 0xA7, 0x4C, 0x38, 0xC8, 0x6D,
+ 0x61, 0x29, 0x17, 0x7E, 0x28, 0x89, 0xE0, 0xB6
+ },
+ {
+ 0x03, 0x04, 0x60, 0xA9, 0x8B, 0xDF, 0x9F, 0xF1,
+ 0x7C, 0xD9, 0x64, 0x04, 0xF2, 0x8F, 0xC3, 0x04,
+ 0xF2, 0xB7, 0xC0, 0x4E, 0xAA, 0xDE, 0x53, 0x67,
+ 0x7F, 0xD2, 0x8F, 0x78, 0x8C, 0xA2, 0x21, 0x86,
+ 0xB8, 0xBC, 0x80, 0xDD, 0x21, 0xD1, 0x7F, 0x85,
+ 0x49, 0xC7, 0x11, 0xAF, 0xF0, 0xE5, 0x14, 0xE1,
+ 0x9D, 0x4E, 0x15, 0xF5, 0x99, 0x02, 0x52, 0xA0,
+ 0x3E, 0x08, 0x2F, 0x28, 0xDC, 0x20, 0x52, 0xF6
+ },
+ {
+ 0x19, 0xE7, 0xF1, 0xCC, 0xEE, 0x88, 0xA1, 0x06,
+ 0x72, 0x33, 0x3E, 0x39, 0x0C, 0xF2, 0x20, 0x13,
+ 0xA8, 0xC7, 0x34, 0xC6, 0xCB, 0x9E, 0xAB, 0x41,
+ 0xF1, 0x7C, 0x3C, 0x80, 0x32, 0xA2, 0xE4, 0xAC,
+ 0xA0, 0x56, 0x9E, 0xA3, 0x6F, 0x08, 0x60, 0xC7,
+ 0xA1, 0xAF, 0x28, 0xFA, 0x47, 0x68, 0x40, 0xD6,
+ 0x60, 0x11, 0x16, 0x88, 0x59, 0x33, 0x4A, 0x9E,
+ 0x4E, 0xF9, 0xCC, 0x2E, 0x61, 0xA0, 0xE2, 0x9E
+ },
+ {
+ 0x29, 0xF8, 0xB8, 0xC7, 0x8C, 0x80, 0xF2, 0xFC,
+ 0xB4, 0xBD, 0xF7, 0x82, 0x5E, 0xD9, 0x0A, 0x70,
+ 0xD6, 0x25, 0xFF, 0x78, 0x5D, 0x26, 0x26, 0x77,
+ 0xE2, 0x50, 0xC0, 0x4F, 0x37, 0x20, 0xC8, 0x88,
+ 0xD0, 0x3F, 0x80, 0x45, 0xE4, 0xED, 0xF3, 0xF5,
+ 0x28, 0x5B, 0xD3, 0x9D, 0x92, 0x8A, 0x10, 0xA7,
+ 0xD0, 0xA5, 0xDF, 0x00, 0xB8, 0x48, 0x4A, 0xC2,
+ 0x86, 0x81, 0x42, 0xA1, 0xE8, 0xBE, 0xA3, 0x51
+ },
+ {
+ 0x5C, 0x52, 0x92, 0x0A, 0x72, 0x63, 0xE3, 0x9D,
+ 0x57, 0x92, 0x0C, 0xA0, 0xCB, 0x75, 0x2A, 0xC6,
+ 0xD7, 0x9A, 0x04, 0xFE, 0xF8, 0xA7, 0xA2, 0x16,
+ 0xA1, 0xEC, 0xB7, 0x11, 0x5C, 0xE0, 0x6D, 0x89,
+ 0xFD, 0x7D, 0x73, 0x5B, 0xD6, 0xF4, 0x27, 0x25,
+ 0x55, 0xDB, 0xA2, 0x2C, 0x2D, 0x1C, 0x96, 0xE6,
+ 0x35, 0x23, 0x22, 0xC6, 0x2C, 0x56, 0x30, 0xFD,
+ 0xE0, 0xF4, 0x77, 0x7A, 0x76, 0xC3, 0xDE, 0x2C
+ },
+ {
+ 0x83, 0xB0, 0x98, 0xF2, 0x62, 0x25, 0x1B, 0xF6,
+ 0x60, 0x06, 0x4A, 0x9D, 0x35, 0x11, 0xCE, 0x76,
+ 0x87, 0xA0, 0x9E, 0x6D, 0xFB, 0xB8, 0x78, 0x29,
+ 0x9C, 0x30, 0xE9, 0x3D, 0xFB, 0x43, 0xA9, 0x31,
+ 0x4D, 0xB9, 0xA6, 0x00, 0x33, 0x7D, 0xB2, 0x6E,
+ 0xBE, 0xED, 0xAF, 0x22, 0x56, 0xA9, 0x6D, 0xAB,
+ 0xE9, 0xB2, 0x9E, 0x75, 0x73, 0xAD, 0x11, 0xC3,
+ 0x52, 0x3D, 0x87, 0x4D, 0xDE, 0x5B, 0xE7, 0xED
+ },
+ {
+ 0x94, 0x47, 0xD9, 0x8A, 0xA5, 0xC9, 0x33, 0x13,
+ 0x52, 0xF4, 0x3D, 0x3E, 0x56, 0xD0, 0xA9, 0xA9,
+ 0xF9, 0x58, 0x18, 0x65, 0x99, 0x8E, 0x28, 0x85,
+ 0xCC, 0x56, 0xDD, 0x0A, 0x0B, 0xD5, 0xA7, 0xB5,
+ 0x05, 0x95, 0xBD, 0x10, 0xF7, 0x52, 0x9B, 0xCD,
+ 0x31, 0xF3, 0x7D, 0xC1, 0x6A, 0x14, 0x65, 0xD5,
+ 0x94, 0x07, 0x96, 0x67, 0xDA, 0x2A, 0x3F, 0xCB,
+ 0x70, 0x40, 0x14, 0x98, 0x83, 0x7C, 0xED, 0xEB
+ },
+ {
+ 0x86, 0x77, 0x32, 0xF2, 0xFE, 0xEB, 0x23, 0x89,
+ 0x30, 0x97, 0x56, 0x1A, 0xC7, 0x10, 0xA4, 0xBF,
+ 0xF4, 0x53, 0xBE, 0x9C, 0xFB, 0xED, 0xBA, 0x8B,
+ 0xA3, 0x24, 0xF9, 0xD3, 0x12, 0xA8, 0x2D, 0x73,
+ 0x2E, 0x1B, 0x83, 0xB8, 0x29, 0xFD, 0xCD, 0x17,
+ 0x7B, 0x88, 0x2C, 0xA0, 0xC1, 0xBF, 0x54, 0x4B,
+ 0x22, 0x3B, 0xE5, 0x29, 0x92, 0x4A, 0x24, 0x6A,
+ 0x63, 0xCF, 0x05, 0x9B, 0xFD, 0xC5, 0x0A, 0x1B
+ },
+ {
+ 0xF1, 0x5A, 0xB2, 0x6D, 0x4C, 0xDF, 0xCF, 0x56,
+ 0xE1, 0x96, 0xBB, 0x6B, 0xA1, 0x70, 0xA8, 0xFC,
+ 0xCC, 0x41, 0x4D, 0xE9, 0x28, 0x5A, 0xFD, 0x98,
+ 0xA3, 0xD3, 0xCF, 0x2F, 0xB8, 0x8F, 0xCB, 0xC0,
+ 0xF1, 0x98, 0x32, 0xAC, 0x43, 0x3A, 0x5B, 0x2C,
+ 0xC2, 0x39, 0x2A, 0x4C, 0xE3, 0x43, 0x32, 0x98,
+ 0x7D, 0x8D, 0x2C, 0x2B, 0xEF, 0x6C, 0x34, 0x66,
+ 0x13, 0x8D, 0xB0, 0xC6, 0xE4, 0x2F, 0xA4, 0x7B
+ },
+ {
+ 0x28, 0x13, 0x51, 0x6D, 0x68, 0xED, 0x4A, 0x08,
+ 0xB3, 0x9D, 0x64, 0x8A, 0xA6, 0xAA, 0xCD, 0x81,
+ 0xE9, 0xD6, 0x55, 0xEC, 0xD5, 0xF0, 0xC1, 0x35,
+ 0x56, 0xC6, 0x0F, 0xDF, 0x0D, 0x33, 0x3E, 0xA3,
+ 0x84, 0x64, 0xB3, 0x6C, 0x02, 0xBA, 0xCC, 0xD7,
+ 0x46, 0xE9, 0x57, 0x5E, 0x96, 0xC6, 0x30, 0x14,
+ 0xF0, 0x74, 0xAE, 0x34, 0xA0, 0xA2, 0x5B, 0x32,
+ 0x0F, 0x0F, 0xBE, 0xDD, 0x6A, 0xCF, 0x76, 0x65
+ },
+ {
+ 0xD3, 0x25, 0x9A, 0xFC, 0xA8, 0xA4, 0x89, 0x62,
+ 0xFA, 0x89, 0x2E, 0x14, 0x5A, 0xCF, 0x54, 0x7F,
+ 0x26, 0x92, 0x3A, 0xE8, 0xD4, 0x92, 0x4C, 0x8A,
+ 0x53, 0x15, 0x81, 0x52, 0x6B, 0x04, 0xB4, 0x4C,
+ 0x7A, 0xF8, 0x3C, 0x64, 0x3E, 0xF5, 0xA0, 0xBC,
+ 0x28, 0x2D, 0x36, 0xF3, 0xFB, 0x04, 0xC8, 0x4E,
+ 0x28, 0xB3, 0x51, 0xF4, 0x0C, 0x74, 0xB6, 0x9D,
+ 0xC7, 0x84, 0x0B, 0xC7, 0x17, 0xB6, 0xF1, 0x5F
+ },
+ {
+ 0xF1, 0x4B, 0x06, 0x1A, 0xE3, 0x59, 0xFA, 0x31,
+ 0xB9, 0x89, 0xE3, 0x03, 0x32, 0xBF, 0xE8, 0xDE,
+ 0x8C, 0xC8, 0xCD, 0xB5, 0x68, 0xE1, 0x4B, 0xE2,
+ 0x14, 0xA2, 0x22, 0x3B, 0x84, 0xCA, 0xAB, 0x74,
+ 0x19, 0x54, 0x9E, 0xCF, 0xCC, 0x96, 0xCE, 0x2A,
+ 0xCE, 0xC1, 0x19, 0x48, 0x5D, 0x87, 0xD1, 0x57,
+ 0xD3, 0xA8, 0x73, 0x4F, 0xC4, 0x26, 0x59, 0x7D,
+ 0x64, 0xF3, 0x65, 0x70, 0xCE, 0xAF, 0x22, 0x4D
+ },
+ {
+ 0x55, 0xE7, 0x0B, 0x01, 0xD1, 0xFB, 0xF8, 0xB2,
+ 0x3B, 0x57, 0xFB, 0x62, 0xE2, 0x6C, 0x2C, 0xE5,
+ 0x4F, 0x13, 0xF8, 0xFA, 0x24, 0x64, 0xE6, 0xEB,
+ 0x98, 0xD1, 0x6A, 0x61, 0x17, 0x02, 0x6D, 0x8B,
+ 0x90, 0x81, 0x90, 0x12, 0x49, 0x6D, 0x40, 0x71,
+ 0xEB, 0xE2, 0xE5, 0x95, 0x57, 0xEC, 0xE3, 0x51,
+ 0x9A, 0x7A, 0xA4, 0x58, 0x02, 0xF9, 0x61, 0x53,
+ 0x74, 0x87, 0x73, 0x32, 0xB7, 0x34, 0x90, 0xB3
+ },
+ {
+ 0x25, 0x26, 0x1E, 0xB2, 0x96, 0x97, 0x1D, 0x6E,
+ 0x4A, 0x71, 0xB2, 0x92, 0x8E, 0x64, 0x83, 0x9C,
+ 0x67, 0xD4, 0x22, 0x87, 0x2B, 0xF9, 0xF3, 0xC3,
+ 0x19, 0x93, 0x61, 0x52, 0x22, 0xDE, 0x9F, 0x8F,
+ 0x0B, 0x2C, 0x4B, 0xE8, 0x54, 0x85, 0x59, 0xB4,
+ 0xB3, 0x54, 0xE7, 0x36, 0x41, 0x6E, 0x32, 0x18,
+ 0xD4, 0xE8, 0xA1, 0xE2, 0x19, 0xA4, 0xA6, 0xD4,
+ 0x3E, 0x1A, 0x9A, 0x52, 0x1D, 0x0E, 0x75, 0xFC
+ },
+ {
+ 0x08, 0x30, 0x7F, 0x34, 0x7C, 0x41, 0x29, 0x4E,
+ 0x34, 0xBB, 0x54, 0xCB, 0x42, 0xB1, 0x52, 0x2D,
+ 0x22, 0xF8, 0x24, 0xF7, 0xB6, 0xE5, 0xDB, 0x50,
+ 0xFD, 0xA0, 0x96, 0x79, 0x8E, 0x18, 0x1A, 0x8F,
+ 0x02, 0x6F, 0xA2, 0x7B, 0x4A, 0xE4, 0x5D, 0x52,
+ 0xA6, 0x2C, 0xAF, 0x9D, 0x51, 0x98, 0xE2, 0x4A,
+ 0x49, 0x13, 0xC6, 0x67, 0x17, 0x75, 0xB2, 0xD7,
+ 0x23, 0xC1, 0x23, 0x9B, 0xFB, 0xF0, 0x16, 0xD7
+ },
+ {
+ 0x1E, 0x5C, 0x62, 0xE7, 0xE9, 0xBF, 0xA1, 0xB1,
+ 0x18, 0x74, 0x7A, 0x2D, 0xE0, 0x8B, 0x3C, 0xA1,
+ 0x01, 0x12, 0xAF, 0x96, 0xA4, 0x6E, 0x4B, 0x22,
+ 0xC3, 0xFC, 0x06, 0xF9, 0xBF, 0xEE, 0x4E, 0xB5,
+ 0xC4, 0x9E, 0x05, 0x7A, 0x4A, 0x48, 0x86, 0x23,
+ 0x43, 0x24, 0x57, 0x25, 0x76, 0xBB, 0x9B, 0x5E,
+ 0xCF, 0xDE, 0x0D, 0x99, 0xB0, 0xDE, 0x4F, 0x98,
+ 0xEC, 0x16, 0xE4, 0xD1, 0xB8, 0x5F, 0xA9, 0x47
+ },
+ {
+ 0xC7, 0x4A, 0x77, 0x39, 0x5F, 0xB8, 0xBC, 0x12,
+ 0x64, 0x47, 0x45, 0x48, 0x38, 0xE5, 0x61, 0xE9,
+ 0x62, 0x85, 0x3D, 0xC7, 0xEB, 0x49, 0xA1, 0xE3,
+ 0xCB, 0x67, 0xC3, 0xD0, 0x85, 0x1F, 0x3E, 0x39,
+ 0x51, 0x7B, 0xE8, 0xC3, 0x50, 0xAC, 0x91, 0x09,
+ 0x03, 0xD4, 0x9C, 0xD2, 0xBF, 0xDF, 0x54, 0x5C,
+ 0x99, 0x31, 0x6D, 0x03, 0x46, 0x17, 0x0B, 0x73,
+ 0x9F, 0x0A, 0xDD, 0x5D, 0x53, 0x3C, 0x2C, 0xFC
+ },
+ {
+ 0x0D, 0xD5, 0x7B, 0x42, 0x3C, 0xC0, 0x1E, 0xB2,
+ 0x86, 0x13, 0x91, 0xEB, 0x88, 0x6A, 0x0D, 0x17,
+ 0x07, 0x9B, 0x93, 0x3F, 0xC7, 0x6E, 0xB3, 0xFC,
+ 0x08, 0xA1, 0x9F, 0x8A, 0x74, 0x95, 0x2C, 0xB6,
+ 0x8F, 0x6B, 0xCD, 0xC6, 0x44, 0xF7, 0x73, 0x70,
+ 0x96, 0x6E, 0x4D, 0x13, 0xE8, 0x05, 0x60, 0xBC,
+ 0xF0, 0x82, 0xEF, 0x04, 0x79, 0xD4, 0x8F, 0xBB,
+ 0xAB, 0x4D, 0xF0, 0x3B, 0x53, 0xA4, 0xE1, 0x78
+ },
+ {
+ 0x4D, 0x8D, 0xC3, 0x92, 0x3E, 0xDC, 0xCD, 0xFC,
+ 0xE7, 0x00, 0x72, 0x39, 0x8B, 0x8A, 0x3D, 0xA5,
+ 0xC3, 0x1F, 0xCB, 0x3E, 0xE3, 0xB6, 0x45, 0xC8,
+ 0x5F, 0x71, 0x7C, 0xBA, 0xEB, 0x4B, 0x67, 0x3A,
+ 0x19, 0x39, 0x44, 0x25, 0xA5, 0x85, 0xBF, 0xB4,
+ 0x64, 0xD9, 0x2F, 0x15, 0x97, 0xD0, 0xB7, 0x54,
+ 0xD1, 0x63, 0xF9, 0x7C, 0xED, 0x34, 0x3B, 0x25,
+ 0xDB, 0x5A, 0x70, 0xEF, 0x48, 0xEB, 0xB3, 0x4F
+ },
+ {
+ 0xF0, 0xA5, 0x05, 0x53, 0xE4, 0xDF, 0xB0, 0xC4,
+ 0xE3, 0xE3, 0xD3, 0xBA, 0x82, 0x03, 0x48, 0x57,
+ 0xE3, 0xB1, 0xE5, 0x09, 0x18, 0xF5, 0xB8, 0xA7,
+ 0xD6, 0x98, 0xE1, 0x0D, 0x24, 0x2B, 0x0F, 0xB5,
+ 0x44, 0xAF, 0x6C, 0x92, 0xD0, 0xC3, 0xAA, 0xF9,
+ 0x93, 0x22, 0x20, 0x41, 0x61, 0x17, 0xB4, 0xE7,
+ 0x8E, 0xCB, 0x8A, 0x8F, 0x43, 0x0E, 0x13, 0xB8,
+ 0x2A, 0x59, 0x15, 0x29, 0x0A, 0x58, 0x19, 0xC5
+ },
+ {
+ 0xB1, 0x55, 0x43, 0xF3, 0xF7, 0x36, 0x08, 0x66,
+ 0x27, 0xCC, 0x53, 0x65, 0xE7, 0xE8, 0x98, 0x8C,
+ 0x2E, 0xF1, 0x55, 0xC0, 0xFD, 0x4F, 0x42, 0x89,
+ 0x61, 0xB0, 0x0D, 0x15, 0x26, 0xF0, 0x4D, 0x6D,
+ 0x6A, 0x65, 0x8B, 0x4B, 0x8E, 0xD3, 0x2C, 0x5D,
+ 0x86, 0x21, 0xE7, 0xF4, 0xF8, 0xE8, 0xA9, 0x33,
+ 0xD9, 0xEC, 0xC9, 0xDD, 0x1B, 0x83, 0x33, 0xCB,
+ 0xE2, 0x8C, 0xFC, 0x37, 0xD9, 0x71, 0x9E, 0x1C
+ },
+ {
+ 0x7B, 0x4F, 0xA1, 0x58, 0xE4, 0x15, 0xFE, 0xF0,
+ 0x23, 0x24, 0x72, 0x64, 0xCB, 0xBE, 0x15, 0xD1,
+ 0x6D, 0x91, 0xA4, 0x44, 0x24, 0xA8, 0xDB, 0x70,
+ 0x7E, 0xB1, 0xE2, 0x03, 0x3C, 0x30, 0xE9, 0xE1,
+ 0xE7, 0xC8, 0xC0, 0x86, 0x45, 0x95, 0xD2, 0xCB,
+ 0x8C, 0x58, 0x0E, 0xB4, 0x7E, 0x9D, 0x16, 0xAB,
+ 0xBD, 0x7E, 0x44, 0xE8, 0x24, 0xF7, 0xCE, 0xDB,
+ 0x7D, 0xEF, 0x57, 0x13, 0x0E, 0x52, 0xCF, 0xE9
+ },
+ {
+ 0x60, 0x42, 0x4F, 0xF2, 0x32, 0x34, 0xC3, 0x4D,
+ 0xC9, 0x68, 0x7A, 0xD5, 0x02, 0x86, 0x93, 0x72,
+ 0xCC, 0x31, 0xA5, 0x93, 0x80, 0x18, 0x6B, 0xC2,
+ 0x36, 0x1C, 0x83, 0x5D, 0x97, 0x2F, 0x49, 0x66,
+ 0x6E, 0xB1, 0xAC, 0x69, 0x62, 0x9D, 0xE6, 0x46,
+ 0xF0, 0x3F, 0x9B, 0x4D, 0xB9, 0xE2, 0xAC, 0xE0,
+ 0x93, 0xFB, 0xFD, 0xF8, 0xF2, 0x0A, 0xB5, 0xF9,
+ 0x85, 0x41, 0x97, 0x8B, 0xE8, 0xEF, 0x54, 0x9F
+ },
+ {
+ 0x74, 0x06, 0x01, 0x8C, 0xE7, 0x04, 0xD8, 0x4F,
+ 0x5E, 0xB9, 0xC7, 0x9F, 0xEA, 0x97, 0xDA, 0x34,
+ 0x56, 0x99, 0x46, 0x8A, 0x35, 0x0E, 0xE0, 0xB2,
+ 0xD0, 0xF3, 0xA4, 0xBF, 0x20, 0x70, 0x30, 0x4E,
+ 0xA8, 0x62, 0xD7, 0x2A, 0x51, 0xC5, 0x7D, 0x30,
+ 0x64, 0x94, 0x72, 0x86, 0xF5, 0x31, 0xE0, 0xEA,
+ 0xF7, 0x56, 0x37, 0x02, 0x26, 0x2E, 0x6C, 0x72,
+ 0x4A, 0xBF, 0x5E, 0xD8, 0xC8, 0x39, 0x8D, 0x17
+ },
+ {
+ 0x14, 0xEF, 0x5C, 0x6D, 0x64, 0x7B, 0x3B, 0xD1,
+ 0xE6, 0xE3, 0x20, 0x06, 0xC2, 0x31, 0x19, 0x98,
+ 0x10, 0xDE, 0x5C, 0x4D, 0xC8, 0x8E, 0x70, 0x24,
+ 0x02, 0x73, 0xB0, 0xEA, 0x18, 0xE6, 0x51, 0xA3,
+ 0xEB, 0x4F, 0x5C, 0xA3, 0x11, 0x4B, 0x8A, 0x56,
+ 0x71, 0x69, 0x69, 0xC7, 0xCD, 0xA2, 0x7E, 0x0C,
+ 0x8D, 0xB8, 0x32, 0xAD, 0x5E, 0x89, 0xA2, 0xDC,
+ 0x6C, 0xB0, 0xAD, 0xBE, 0x7D, 0x93, 0xAB, 0xD1
+ },
+ {
+ 0x38, 0xCF, 0x6C, 0x24, 0xE3, 0xE0, 0x8B, 0xCF,
+ 0x1F, 0x6C, 0xF3, 0xD1, 0xB1, 0xF6, 0x5B, 0x90,
+ 0x52, 0x39, 0xA3, 0x11, 0x80, 0x33, 0x24, 0x9E,
+ 0x44, 0x81, 0x13, 0xEC, 0x63, 0x2E, 0xA6, 0xDC,
+ 0x34, 0x6F, 0xEE, 0xB2, 0x57, 0x1C, 0x38, 0xBD,
+ 0x9A, 0x73, 0x98, 0xB2, 0x22, 0x12, 0x80, 0x32,
+ 0x80, 0x02, 0xB2, 0x3E, 0x1A, 0x45, 0xAD, 0xAF,
+ 0xFE, 0x66, 0xD9, 0x3F, 0x65, 0x64, 0xEA, 0xA2
+ },
+ {
+ 0x6C, 0xD7, 0x20, 0x8A, 0x4B, 0xC7, 0xE7, 0xE5,
+ 0x62, 0x01, 0xBB, 0xBA, 0x02, 0xA0, 0xF4, 0x89,
+ 0xCD, 0x38, 0x4A, 0xBE, 0x40, 0xAF, 0xD4, 0x22,
+ 0x2F, 0x15, 0x8B, 0x3D, 0x98, 0x6E, 0xE7, 0x2A,
+ 0x54, 0xC5, 0x0F, 0xB6, 0x4F, 0xD4, 0xED, 0x25,
+ 0x30, 0xED, 0xA2, 0xC8, 0xAF, 0x29, 0x28, 0xA0,
+ 0xDA, 0x6D, 0x4F, 0x83, 0x0A, 0xE1, 0xC9, 0xDB,
+ 0x46, 0x9D, 0xFD, 0x97, 0x0F, 0x12, 0xA5, 0x6F
+ },
+ {
+ 0x65, 0x98, 0x58, 0xF0, 0xB5, 0xC9, 0xED, 0xAB,
+ 0x5B, 0x94, 0xFD, 0x73, 0x2F, 0x6E, 0x6B, 0x17,
+ 0xC5, 0x1C, 0xC0, 0x96, 0x10, 0x4F, 0x09, 0xBE,
+ 0xB3, 0xAF, 0xC3, 0xAA, 0x46, 0x7C, 0x2E, 0xCF,
+ 0x88, 0x5C, 0x4C, 0x65, 0x41, 0xEF, 0xFA, 0x90,
+ 0x23, 0xD3, 0xB5, 0x73, 0x8A, 0xE5, 0xA1, 0x4D,
+ 0x86, 0x7E, 0x15, 0xDB, 0x06, 0xFE, 0x1F, 0x9D,
+ 0x11, 0x27, 0xB7, 0x7E, 0x1A, 0xAB, 0xB5, 0x16
+ },
+ {
+ 0x26, 0xCC, 0xA0, 0x12, 0x6F, 0x5D, 0x1A, 0x81,
+ 0x3C, 0x62, 0xE5, 0xC7, 0x10, 0x01, 0xC0, 0x46,
+ 0xF9, 0xC9, 0x20, 0x95, 0x70, 0x45, 0x50, 0xBE,
+ 0x58, 0x73, 0xA4, 0x95, 0xA9, 0x99, 0xAD, 0x01,
+ 0x0A, 0x4F, 0x79, 0x49, 0x1F, 0x24, 0xF2, 0x86,
+ 0x50, 0x0A, 0xDC, 0xE1, 0xA1, 0x37, 0xBC, 0x20,
+ 0x84, 0xE4, 0x94, 0x9F, 0x5B, 0x72, 0x94, 0xCE,
+ 0xFE, 0x51, 0xEC, 0xAF, 0xF8, 0xE9, 0x5C, 0xBA
+ },
+ {
+ 0x41, 0x47, 0xC1, 0xF5, 0x51, 0x72, 0x78, 0x8C,
+ 0x55, 0x67, 0xC5, 0x61, 0xFE, 0xEF, 0x87, 0x6F,
+ 0x62, 0x1F, 0xFF, 0x1C, 0xE8, 0x77, 0x86, 0xB8,
+ 0x46, 0x76, 0x37, 0xE7, 0x0D, 0xFB, 0xCD, 0x0D,
+ 0xBD, 0xB6, 0x41, 0x5C, 0xB6, 0x00, 0x95, 0x4A,
+ 0xB9, 0xC0, 0x4C, 0x0E, 0x45, 0x7E, 0x62, 0x5B,
+ 0x40, 0x72, 0x22, 0xC0, 0xFE, 0x1A, 0xE2, 0x1B,
+ 0x21, 0x43, 0x68, 0x8A, 0xDA, 0x94, 0xDC, 0x58
+ },
+ {
+ 0x5B, 0x1B, 0xF1, 0x54, 0xC6, 0x2A, 0x8A, 0xF6,
+ 0xE9, 0x3D, 0x35, 0xF1, 0x8F, 0x7F, 0x90, 0xAB,
+ 0xB1, 0x6A, 0x6E, 0xF0, 0xE8, 0xD1, 0xAE, 0xCD,
+ 0x11, 0x8B, 0xF7, 0x01, 0x67, 0xBA, 0xB2, 0xAF,
+ 0x08, 0x93, 0x5C, 0x6F, 0xDC, 0x06, 0x63, 0xCE,
+ 0x74, 0x48, 0x2D, 0x17, 0xA8, 0xE5, 0x4B, 0x54,
+ 0x6D, 0x1C, 0x29, 0x66, 0x31, 0xC6, 0x5F, 0x3B,
+ 0x52, 0x2A, 0x51, 0x58, 0x39, 0xD4, 0x3D, 0x71
+ },
+ {
+ 0x9F, 0x60, 0x04, 0x19, 0xA4, 0xE8, 0xF4, 0xFB,
+ 0x83, 0x4C, 0x24, 0xB0, 0xF7, 0xFC, 0x13, 0xBF,
+ 0x4E, 0x27, 0x9D, 0x98, 0xE8, 0xA3, 0xC7, 0x65,
+ 0xEE, 0x93, 0x49, 0x17, 0x40, 0x3E, 0x3A, 0x66,
+ 0x09, 0x71, 0x82, 0xEA, 0x21, 0x45, 0x3C, 0xB6,
+ 0x3E, 0xBB, 0xE8, 0xB7, 0x3A, 0x9C, 0x21, 0x67,
+ 0x59, 0x64, 0x46, 0x43, 0x8C, 0x57, 0x62, 0x7F,
+ 0x33, 0x0B, 0xAD, 0xD4, 0xF5, 0x69, 0xF7, 0xD6
+ },
+ {
+ 0x45, 0x7E, 0xF6, 0x46, 0x6A, 0x89, 0x24, 0xFD,
+ 0x80, 0x11, 0xA3, 0x44, 0x71, 0xA5, 0xA1, 0xAC,
+ 0x8C, 0xCD, 0x9B, 0xD0, 0xD0, 0x7A, 0x97, 0x41,
+ 0x4A, 0xC9, 0x43, 0x02, 0x1C, 0xE4, 0xB9, 0xE4,
+ 0xB9, 0xC8, 0xDB, 0x0A, 0x28, 0xF0, 0x16, 0xED,
+ 0x43, 0xB1, 0x54, 0x24, 0x81, 0x99, 0x00, 0x22,
+ 0x14, 0x7B, 0x31, 0x3E, 0x19, 0x46, 0x71, 0x13,
+ 0x1E, 0x70, 0x8D, 0xD4, 0x3A, 0x3E, 0xD7, 0xDC
+ },
+ {
+ 0x99, 0x97, 0xB2, 0x19, 0x4D, 0x9A, 0xF6, 0xDF,
+ 0xCB, 0x91, 0x43, 0xF4, 0x1C, 0x0E, 0xD8, 0x3D,
+ 0x3A, 0x3F, 0x43, 0x88, 0x36, 0x11, 0x03, 0xD3,
+ 0x8C, 0x2A, 0x49, 0xB2, 0x80, 0xA5, 0x81, 0x21,
+ 0x27, 0x15, 0xFD, 0x90, 0x8D, 0x41, 0xC6, 0x51,
+ 0xF5, 0xC7, 0x15, 0xCA, 0x38, 0xC0, 0xCE, 0x28,
+ 0x30, 0xA3, 0x7E, 0x00, 0xE5, 0x08, 0xCE, 0xD1,
+ 0xBC, 0xDC, 0x32, 0x0E, 0x5E, 0x4D, 0x1E, 0x2E
+ },
+ {
+ 0x5C, 0x6B, 0xBF, 0x16, 0xBA, 0xA1, 0x80, 0xF9,
+ 0x86, 0xBD, 0x40, 0xA1, 0x28, 0x7E, 0xD4, 0xC5,
+ 0x49, 0x77, 0x0E, 0x72, 0x84, 0x85, 0x8F, 0xC4,
+ 0x7B, 0xC2, 0x1A, 0xB9, 0x5E, 0xBB, 0xF3, 0x37,
+ 0x4B, 0x4E, 0xE3, 0xFD, 0x9F, 0x2A, 0xF6, 0x0F,
+ 0x33, 0x95, 0x22, 0x1B, 0x2A, 0xCC, 0x76, 0xF2,
+ 0xD3, 0x4C, 0x13, 0x29, 0x54, 0x04, 0x9F, 0x8A,
+ 0x3A, 0x99, 0x6F, 0x1E, 0x32, 0xEC, 0x84, 0xE5
+ },
+ {
+ 0xD1, 0x0B, 0xF9, 0xA1, 0x5B, 0x1C, 0x9F, 0xC8,
+ 0xD4, 0x1F, 0x89, 0xBB, 0x14, 0x0B, 0xF0, 0xBE,
+ 0x08, 0xD2, 0xF3, 0x66, 0x61, 0x76, 0xD1, 0x3B,
+ 0xAA, 0xC4, 0xD3, 0x81, 0x35, 0x8A, 0xD0, 0x74,
+ 0xC9, 0xD4, 0x74, 0x8C, 0x30, 0x05, 0x20, 0xEB,
+ 0x02, 0x6D, 0xAE, 0xAE, 0xA7, 0xC5, 0xB1, 0x58,
+ 0x89, 0x2F, 0xDE, 0x4E, 0x8E, 0xC1, 0x7D, 0xC9,
+ 0x98, 0xDC, 0xD5, 0x07, 0xDF, 0x26, 0xEB, 0x63
+ },
+ {
+ 0x2F, 0xC6, 0xE6, 0x9F, 0xA2, 0x6A, 0x89, 0xA5,
+ 0xED, 0x26, 0x90, 0x92, 0xCB, 0x9B, 0x2A, 0x44,
+ 0x9A, 0x44, 0x09, 0xA7, 0xA4, 0x40, 0x11, 0xEE,
+ 0xCA, 0xD1, 0x3D, 0x7C, 0x4B, 0x04, 0x56, 0x60,
+ 0x2D, 0x40, 0x2F, 0xA5, 0x84, 0x4F, 0x1A, 0x7A,
+ 0x75, 0x81, 0x36, 0xCE, 0x3D, 0x5D, 0x8D, 0x0E,
+ 0x8B, 0x86, 0x92, 0x1F, 0xFF, 0xF4, 0xF6, 0x92,
+ 0xDD, 0x95, 0xBD, 0xC8, 0xE5, 0xFF, 0x00, 0x52
+ },
+ {
+ 0xFC, 0xBE, 0x8B, 0xE7, 0xDC, 0xB4, 0x9A, 0x32,
+ 0xDB, 0xDF, 0x23, 0x94, 0x59, 0xE2, 0x63, 0x08,
+ 0xB8, 0x4D, 0xFF, 0x1E, 0xA4, 0x80, 0xDF, 0x8D,
+ 0x10, 0x4E, 0xEF, 0xF3, 0x4B, 0x46, 0xFA, 0xE9,
+ 0x86, 0x27, 0xB4, 0x50, 0xC2, 0x26, 0x7D, 0x48,
+ 0xC0, 0x94, 0x6A, 0x69, 0x7C, 0x5B, 0x59, 0x53,
+ 0x14, 0x52, 0xAC, 0x04, 0x84, 0xF1, 0xC8, 0x4E,
+ 0x3A, 0x33, 0xD0, 0xC3, 0x39, 0xBB, 0x2E, 0x28
+ },
+ {
+ 0xA1, 0x90, 0x93, 0xA6, 0xE3, 0xBC, 0xF5, 0x95,
+ 0x2F, 0x85, 0x0F, 0x20, 0x30, 0xF6, 0x9B, 0x96,
+ 0x06, 0xF1, 0x47, 0xF9, 0x0B, 0x8B, 0xAE, 0xE3,
+ 0x36, 0x2D, 0xA7, 0x1D, 0x9F, 0x35, 0xB4, 0x4E,
+ 0xF9, 0xD8, 0xF0, 0xA7, 0x71, 0x2B, 0xA1, 0x87,
+ 0x7F, 0xDD, 0xCD, 0x2D, 0x8E, 0xA8, 0xF1, 0xE5,
+ 0xA7, 0x73, 0xD0, 0xB7, 0x45, 0xD4, 0x72, 0x56,
+ 0x05, 0x98, 0x3A, 0x2D, 0xE9, 0x01, 0xF8, 0x03
+ },
+ {
+ 0x3C, 0x20, 0x06, 0x42, 0x3F, 0x73, 0xE2, 0x68,
+ 0xFA, 0x59, 0xD2, 0x92, 0x03, 0x77, 0xEB, 0x29,
+ 0xA4, 0xF9, 0xA8, 0xB4, 0x62, 0xBE, 0x15, 0x98,
+ 0x3E, 0xE3, 0xB8, 0x5A, 0xE8, 0xA7, 0x8E, 0x99,
+ 0x26, 0x33, 0x58, 0x1A, 0x90, 0x99, 0x89, 0x3B,
+ 0x63, 0xDB, 0x30, 0x24, 0x1C, 0x34, 0xF6, 0x43,
+ 0x02, 0x7D, 0xC8, 0x78, 0x27, 0x9A, 0xF5, 0x85,
+ 0x0D, 0x7E, 0x2D, 0x4A, 0x26, 0x53, 0x07, 0x3A
+ },
+ {
+ 0xD0, 0xF2, 0xF2, 0xE3, 0x78, 0x76, 0x53, 0xF7,
+ 0x7C, 0xCE, 0x2F, 0xA2, 0x48, 0x35, 0x78, 0x5B,
+ 0xBD, 0x0C, 0x43, 0x3F, 0xC7, 0x79, 0x46, 0x5A,
+ 0x11, 0x51, 0x49, 0x90, 0x5A, 0x9D, 0xD1, 0xCB,
+ 0x82, 0x7A, 0x62, 0x85, 0x06, 0xD4, 0x57, 0xFC,
+ 0xF1, 0x24, 0xA0, 0xC2, 0xAE, 0xF9, 0xCE, 0x2D,
+ 0x2A, 0x0A, 0x0F, 0x63, 0x54, 0x55, 0x70, 0xD8,
+ 0x66, 0x7F, 0xF9, 0xE2, 0xEB, 0xA0, 0x73, 0x34
+ },
+ {
+ 0x78, 0xA9, 0xFC, 0x04, 0x8E, 0x25, 0xC6, 0xDC,
+ 0xB5, 0xDE, 0x45, 0x66, 0x7D, 0xE8, 0xFF, 0xDD,
+ 0x3A, 0x93, 0x71, 0x11, 0x41, 0xD5, 0x94, 0xE9,
+ 0xFA, 0x62, 0xA9, 0x59, 0x47, 0x5D, 0xA6, 0x07,
+ 0x5E, 0xA8, 0xF0, 0x91, 0x6E, 0x84, 0xE4, 0x5A,
+ 0xD9, 0x11, 0xB7, 0x54, 0x67, 0x07, 0x7E, 0xE5,
+ 0x2D, 0x2C, 0x9A, 0xEB, 0xF4, 0xD5, 0x8F, 0x20,
+ 0xCE, 0x4A, 0x3A, 0x00, 0x45, 0x8B, 0x05, 0xD4
+ },
+ {
+ 0x45, 0x81, 0x3F, 0x44, 0x17, 0x69, 0xAB, 0x6E,
+ 0xD3, 0x7D, 0x34, 0x9F, 0xF6, 0xE7, 0x22, 0x67,
+ 0xD7, 0x6A, 0xE6, 0xBB, 0x3E, 0x3C, 0x61, 0x2E,
+ 0xC0, 0x5C, 0x6E, 0x02, 0xA1, 0x2A, 0xF5, 0xA3,
+ 0x7C, 0x91, 0x8B, 0x52, 0xBF, 0x74, 0x26, 0x7C,
+ 0x3F, 0x6A, 0x3F, 0x18, 0x3A, 0x80, 0x64, 0xFF,
+ 0x84, 0xC0, 0x7B, 0x19, 0x3D, 0x08, 0x06, 0x67,
+ 0x89, 0xA0, 0x1A, 0xCC, 0xDB, 0x6F, 0x93, 0x40
+ },
+ {
+ 0x95, 0x6D, 0xA1, 0xC6, 0x8D, 0x83, 0xA7, 0xB8,
+ 0x81, 0xE0, 0x1B, 0x9A, 0x96, 0x6C, 0x3C, 0x0B,
+ 0xF2, 0x7F, 0x68, 0x60, 0x6A, 0x8B, 0x71, 0xD4,
+ 0x57, 0xBD, 0x01, 0x6D, 0x4C, 0x41, 0xDD, 0x8A,
+ 0x38, 0x0C, 0x70, 0x9A, 0x29, 0x6C, 0xB4, 0xC6,
+ 0x54, 0x47, 0x92, 0x92, 0x0F, 0xD7, 0x88, 0x83,
+ 0x57, 0x71, 0xA0, 0x7D, 0x4A, 0x16, 0xFB, 0x52,
+ 0xED, 0x48, 0x05, 0x03, 0x31, 0xDC, 0x4C, 0x8B
+ },
+ {
+ 0xDF, 0x18, 0x6C, 0x2D, 0xC0, 0x9C, 0xAA, 0x48,
+ 0xE1, 0x4E, 0x94, 0x2F, 0x75, 0xDE, 0x5A, 0xC1,
+ 0xB7, 0xA2, 0x1E, 0x4F, 0x9F, 0x07, 0x2A, 0x5B,
+ 0x37, 0x1E, 0x09, 0xE0, 0x73, 0x45, 0xB0, 0x74,
+ 0x0C, 0x76, 0x17, 0x7B, 0x01, 0x27, 0x88, 0x08,
+ 0xFE, 0xC0, 0x25, 0xED, 0xED, 0x98, 0x22, 0xC1,
+ 0x22, 0xAF, 0xD1, 0xC6, 0x3E, 0x6F, 0x0C, 0xE2,
+ 0xE3, 0x26, 0x31, 0x04, 0x10, 0x63, 0x14, 0x5C
+ },
+ {
+ 0x87, 0x47, 0x56, 0x40, 0x96, 0x6A, 0x9F, 0xDC,
+ 0xD6, 0xD3, 0xA3, 0xB5, 0xA2, 0xCC, 0xA5, 0xC0,
+ 0x8F, 0x0D, 0x88, 0x2B, 0x10, 0x24, 0x3C, 0x0E,
+ 0xC1, 0xBF, 0x3C, 0x6B, 0x1C, 0x37, 0xF2, 0xCD,
+ 0x32, 0x12, 0xF1, 0x9A, 0x05, 0x78, 0x64, 0x47,
+ 0x7D, 0x5E, 0xAF, 0x8F, 0xAE, 0xD7, 0x3F, 0x29,
+ 0x37, 0xC7, 0x68, 0xA0, 0xAF, 0x41, 0x5E, 0x84,
+ 0xBB, 0xCE, 0x6B, 0xD7, 0xDE, 0x23, 0xB6, 0x60
+ },
+ {
+ 0xC3, 0xB5, 0x73, 0xBB, 0xE1, 0x09, 0x49, 0xA0,
+ 0xFB, 0xD4, 0xFF, 0x88, 0x4C, 0x44, 0x6F, 0x22,
+ 0x29, 0xB7, 0x69, 0x02, 0xF9, 0xDF, 0xDB, 0xB8,
+ 0xA0, 0x35, 0x3D, 0xA5, 0xC8, 0x3C, 0xA1, 0x4E,
+ 0x81, 0x51, 0xBB, 0xAA, 0xC8, 0x2F, 0xD1, 0x57,
+ 0x6A, 0x00, 0x9A, 0xDC, 0x6F, 0x19, 0x35, 0xCF,
+ 0x26, 0xED, 0xD4, 0xF1, 0xFB, 0x8D, 0xA4, 0x83,
+ 0xE6, 0xC5, 0xCD, 0x9D, 0x89, 0x23, 0xAD, 0xC3
+ },
+ {
+ 0xB0, 0x9D, 0x8D, 0x0B, 0xBA, 0x8A, 0x72, 0x86,
+ 0xE4, 0x35, 0x68, 0xF7, 0x90, 0x75, 0x50, 0xE4,
+ 0x20, 0x36, 0xD6, 0x74, 0xE3, 0xC8, 0xFC, 0x34,
+ 0xD8, 0xCA, 0x46, 0xF7, 0x71, 0xD6, 0x46, 0x6B,
+ 0x70, 0xFB, 0x60, 0x58, 0x75, 0xF6, 0xA8, 0x63,
+ 0xC8, 0x77, 0xD1, 0x2F, 0x07, 0x06, 0x3F, 0xDC,
+ 0x2E, 0x90, 0xCC, 0xD4, 0x59, 0xB1, 0x91, 0x0D,
+ 0xCD, 0x52, 0xD8, 0xF1, 0x0B, 0x2B, 0x0A, 0x15
+ },
+ {
+ 0xAF, 0x3A, 0x22, 0xBF, 0x75, 0xB2, 0x1A, 0xBF,
+ 0xB0, 0xAC, 0xD5, 0x44, 0x22, 0xBA, 0x1B, 0x73,
+ 0x00, 0xA9, 0x52, 0xEF, 0xF0, 0x2E, 0xBE, 0xB6,
+ 0x5B, 0x5C, 0x23, 0x44, 0x71, 0xA9, 0x8D, 0xF3,
+ 0x2F, 0x4F, 0x96, 0x43, 0xCE, 0x19, 0x04, 0x10,
+ 0x8A, 0x16, 0x87, 0x67, 0x92, 0x42, 0x80, 0xBD,
+ 0x76, 0xC8, 0x3F, 0x8C, 0x82, 0xD9, 0xA7, 0x9D,
+ 0x92, 0x59, 0xB1, 0x95, 0x36, 0x2A, 0x2A, 0x04
+ },
+ {
+ 0xBF, 0x4F, 0xF2, 0x22, 0x1B, 0x7E, 0x69, 0x57,
+ 0xA7, 0x24, 0xCD, 0x96, 0x4A, 0xA3, 0xD5, 0xD0,
+ 0xD9, 0x94, 0x1F, 0x54, 0x04, 0x13, 0x75, 0x2F,
+ 0x46, 0x99, 0xD8, 0x10, 0x1B, 0x3E, 0x53, 0x75,
+ 0x08, 0xBF, 0x09, 0xF8, 0x50, 0x8B, 0x31, 0x77,
+ 0x36, 0xFF, 0xD2, 0x65, 0xF2, 0x84, 0x7A, 0xA7,
+ 0xD8, 0x4B, 0xD2, 0xD9, 0x75, 0x69, 0xC4, 0x9D,
+ 0x63, 0x2A, 0xED, 0x99, 0x45, 0xE5, 0xFA, 0x5E
+ },
+ {
+ 0x9C, 0x6B, 0x6B, 0x78, 0x19, 0x9B, 0x1B, 0xDA,
+ 0xCB, 0x43, 0x00, 0xE3, 0x14, 0x79, 0xFA, 0x62,
+ 0x2A, 0x6B, 0x5B, 0xC8, 0x0D, 0x46, 0x78, 0xA6,
+ 0x07, 0x8F, 0x88, 0xA8, 0x26, 0x8C, 0xD7, 0x20,
+ 0x6A, 0x27, 0x99, 0xE8, 0xD4, 0x62, 0x1A, 0x46,
+ 0x4E, 0xF6, 0xB4, 0x3D, 0xD8, 0xAD, 0xFF, 0xE9,
+ 0x7C, 0xAF, 0x22, 0x1B, 0x22, 0xB6, 0xB8, 0x77,
+ 0x8B, 0x14, 0x9A, 0x82, 0x2A, 0xEF, 0xBB, 0x09
+ },
+ {
+ 0x89, 0x06, 0x56, 0xF0, 0x9C, 0x99, 0xD2, 0x80,
+ 0xB5, 0xEC, 0xB3, 0x81, 0xF5, 0x64, 0x27, 0xB8,
+ 0x13, 0x75, 0x1B, 0xC6, 0x52, 0xC7, 0x82, 0x80,
+ 0x78, 0xB2, 0x3A, 0x4A, 0xF8, 0x3B, 0x4E, 0x3A,
+ 0x61, 0xFD, 0xBA, 0xC6, 0x1F, 0x89, 0xBE, 0xE8,
+ 0x4E, 0xA6, 0xBE, 0xE7, 0x60, 0xC0, 0x47, 0xF2,
+ 0x5C, 0x6B, 0x0A, 0x20, 0x1C, 0x69, 0xA3, 0x8F,
+ 0xD6, 0xFD, 0x97, 0x1A, 0xF1, 0x85, 0x88, 0xBB
+ },
+ {
+ 0x31, 0xA0, 0x46, 0xF7, 0x88, 0x2F, 0xFE, 0x6F,
+ 0x83, 0xCE, 0x47, 0x2E, 0x9A, 0x07, 0x01, 0x83,
+ 0x2E, 0xC7, 0xB3, 0xF7, 0x6F, 0xBC, 0xFD, 0x1D,
+ 0xF6, 0x0F, 0xE3, 0xEA, 0x48, 0xFD, 0xE1, 0x65,
+ 0x12, 0x54, 0x24, 0x7C, 0x3F, 0xD9, 0x5E, 0x10,
+ 0x0F, 0x91, 0x72, 0x73, 0x1E, 0x17, 0xFD, 0x52,
+ 0x97, 0xC1, 0x1F, 0x4B, 0xB3, 0x28, 0x36, 0x3C,
+ 0xA3, 0x61, 0x62, 0x4A, 0x81, 0xAF, 0x79, 0x7C
+ },
+ {
+ 0x27, 0xA6, 0x0B, 0x2D, 0x00, 0xE7, 0xA6, 0x71,
+ 0xD4, 0x7D, 0x0A, 0xEC, 0x2A, 0x68, 0x6A, 0x0A,
+ 0xC0, 0x4B, 0x52, 0xF4, 0x0A, 0xB6, 0x62, 0x90,
+ 0x28, 0xEB, 0x7D, 0x13, 0xF4, 0xBA, 0xA9, 0x9A,
+ 0xC0, 0xFE, 0x46, 0xEE, 0x6C, 0x81, 0x49, 0x44,
+ 0xF2, 0xF4, 0xB4, 0xD2, 0x0E, 0x93, 0x78, 0xE4,
+ 0x84, 0x7E, 0xA4, 0x4C, 0x13, 0x17, 0x80, 0x91,
+ 0xE2, 0x77, 0xB8, 0x7E, 0xA7, 0xA5, 0x57, 0x11
+ },
+ {
+ 0x8B, 0x5C, 0xCE, 0xF1, 0x94, 0x16, 0x2C, 0x1F,
+ 0x19, 0xD6, 0x8F, 0x91, 0xE0, 0xB0, 0x92, 0x8F,
+ 0x28, 0x9E, 0xC5, 0x28, 0x37, 0x20, 0x84, 0x0C,
+ 0x2F, 0x73, 0xD2, 0x53, 0x11, 0x12, 0x38, 0xDC,
+ 0xFE, 0x94, 0xAF, 0x2B, 0x59, 0xC2, 0xC1, 0xCA,
+ 0x25, 0x91, 0x90, 0x1A, 0x7B, 0xC0, 0x60, 0xE7,
+ 0x45, 0x9B, 0x6C, 0x47, 0xDF, 0x0F, 0x71, 0x70,
+ 0x1A, 0x35, 0xCC, 0x0A, 0xA8, 0x31, 0xB5, 0xB6
+ },
+ {
+ 0x57, 0xAB, 0x6C, 0x4B, 0x22, 0x29, 0xAE, 0xB3,
+ 0xB7, 0x04, 0x76, 0xD8, 0x03, 0xCD, 0x63, 0x81,
+ 0x2F, 0x10, 0x7C, 0xE6, 0xDA, 0x17, 0xFE, 0xD9,
+ 0xB1, 0x78, 0x75, 0xE8, 0xF8, 0x6C, 0x72, 0x4F,
+ 0x49, 0xE0, 0x24, 0xCB, 0xF3, 0xA1, 0xB8, 0xB1,
+ 0x19, 0xC5, 0x03, 0x57, 0x65, 0x2B, 0x81, 0x87,
+ 0x9D, 0x2A, 0xDE, 0x2D, 0x58, 0x8B, 0x9E, 0x4F,
+ 0x7C, 0xED, 0xBA, 0x0E, 0x46, 0x44, 0xC9, 0xEE
+ },
+ {
+ 0x01, 0x90, 0xA8, 0xDA, 0xC3, 0x20, 0xA7, 0x39,
+ 0xF3, 0x22, 0xE1, 0x57, 0x31, 0xAA, 0x14, 0x0D,
+ 0xDA, 0xF5, 0xBE, 0xD2, 0x94, 0xD5, 0xC8, 0x2E,
+ 0x54, 0xFE, 0xF2, 0x9F, 0x21, 0x4E, 0x18, 0xAA,
+ 0xFA, 0xA8, 0x4F, 0x8B, 0xE9, 0x9A, 0xF6, 0x29,
+ 0x50, 0x26, 0x6B, 0x8F, 0x90, 0x1F, 0x15, 0xDD,
+ 0x4C, 0x5D, 0x35, 0x51, 0x6F, 0xC3, 0x5B, 0x4C,
+ 0xAB, 0x2E, 0x96, 0xE4, 0x69, 0x5B, 0xBE, 0x1C
+ },
+ {
+ 0xD1, 0x4D, 0x7C, 0x4C, 0x41, 0x5E, 0xEB, 0x0E,
+ 0x10, 0xB1, 0x59, 0x22, 0x4B, 0xEA, 0x12, 0x7E,
+ 0xBD, 0x84, 0xF9, 0x59, 0x1C, 0x70, 0x2A, 0x33,
+ 0x0F, 0x5B, 0xB7, 0xBB, 0x7A, 0xA4, 0x4E, 0xA3,
+ 0x9D, 0xE6, 0xED, 0x01, 0xF1, 0x8D, 0xA7, 0xAD,
+ 0xF4, 0x0C, 0xFB, 0x97, 0xC5, 0xD1, 0x52, 0xC2,
+ 0x75, 0x28, 0x82, 0x4B, 0x21, 0xE2, 0x39, 0x52,
+ 0x6A, 0xF8, 0xF3, 0x6B, 0x21, 0x4E, 0x0C, 0xFB
+ },
+ {
+ 0xBE, 0x28, 0xC4, 0xBE, 0x70, 0x69, 0x70, 0x48,
+ 0x8F, 0xAC, 0x7D, 0x29, 0xC3, 0xBD, 0x5C, 0x4E,
+ 0x98, 0x60, 0x85, 0xC4, 0xC3, 0x33, 0x2F, 0x1F,
+ 0x3F, 0xD3, 0x09, 0x73, 0xDB, 0x61, 0x41, 0x64,
+ 0xBA, 0x2F, 0x31, 0xA7, 0x88, 0x75, 0xFF, 0xDC,
+ 0x15, 0x03, 0x25, 0xC8, 0x83, 0x27, 0xA9, 0x44,
+ 0x3E, 0xD0, 0x4F, 0xDF, 0xE5, 0xBE, 0x93, 0x87,
+ 0x6D, 0x16, 0x28, 0x56, 0x0C, 0x76, 0x4A, 0x80
+ },
+ {
+ 0x03, 0x1D, 0xA1, 0x06, 0x9E, 0x3A, 0x2E, 0x9C,
+ 0x33, 0x82, 0xE4, 0x36, 0xFF, 0xD7, 0x9D, 0xF7,
+ 0x4B, 0x1C, 0xA6, 0xA8, 0xAD, 0xB2, 0xDE, 0xAB,
+ 0xE6, 0x76, 0xAB, 0x45, 0x99, 0x4C, 0xBC, 0x05,
+ 0x4F, 0x03, 0x7D, 0x2F, 0x0E, 0xAC, 0xE8, 0x58,
+ 0xD3, 0x2C, 0x14, 0xE2, 0xD1, 0xC8, 0xB4, 0x60,
+ 0x77, 0x30, 0x8E, 0x3B, 0xDC, 0x2C, 0x1B, 0x53,
+ 0x17, 0x2E, 0xCF, 0x7A, 0x8C, 0x14, 0xE3, 0x49
+ },
+ {
+ 0x46, 0x65, 0xCE, 0xF8, 0xBA, 0x4D, 0xB4, 0xD0,
+ 0xAC, 0xB1, 0x18, 0xF2, 0x98, 0x7F, 0x0B, 0xB0,
+ 0x9F, 0x8F, 0x86, 0xAA, 0x44, 0x5A, 0xA3, 0xD5,
+ 0xFC, 0x9A, 0x8B, 0x34, 0x68, 0x64, 0x78, 0x74,
+ 0x89, 0xE8, 0xFC, 0xEC, 0xC1, 0x25, 0xD1, 0x7E,
+ 0x9B, 0x56, 0xE1, 0x29, 0x88, 0xEA, 0xC5, 0xEC,
+ 0xC7, 0x28, 0x68, 0x83, 0xDB, 0x06, 0x61, 0xB8,
+ 0xFF, 0x05, 0xDA, 0x2A, 0xFF, 0xF3, 0x0F, 0xE4
+ },
+ {
+ 0x63, 0xB7, 0x03, 0x2E, 0x5F, 0x93, 0x0C, 0xC9,
+ 0x93, 0x95, 0x17, 0xF9, 0xE9, 0x86, 0x81, 0x6C,
+ 0xFB, 0xEC, 0x2B, 0xE5, 0x9B, 0x95, 0x68, 0xB1,
+ 0x3F, 0x2E, 0xAD, 0x05, 0xBA, 0xE7, 0x77, 0x7C,
+ 0xAB, 0x62, 0x0C, 0x66, 0x59, 0x40, 0x4F, 0x74,
+ 0x09, 0xE4, 0x19, 0x9A, 0x3B, 0xE5, 0xF7, 0x86,
+ 0x5A, 0xA7, 0xCB, 0xDF, 0x8C, 0x42, 0x53, 0xF7,
+ 0xE8, 0x21, 0x9B, 0x1B, 0xD5, 0xF4, 0x6F, 0xEA
+ },
+ {
+ 0x9F, 0x09, 0xBF, 0x09, 0x3A, 0x2B, 0x0F, 0xF8,
+ 0xC2, 0x63, 0x4B, 0x49, 0xE3, 0x7F, 0x1B, 0x21,
+ 0x35, 0xB4, 0x47, 0xAA, 0x91, 0x44, 0xC9, 0x78,
+ 0x7D, 0xBF, 0xD9, 0x21, 0x29, 0x31, 0x6C, 0x99,
+ 0xE8, 0x8A, 0xAB, 0x8A, 0x21, 0xFD, 0xEF, 0x23,
+ 0x72, 0xD1, 0x18, 0x9A, 0xEC, 0x50, 0x0F, 0x95,
+ 0x77, 0x5F, 0x1F, 0x92, 0xBF, 0xB4, 0x55, 0x45,
+ 0xE4, 0x25, 0x9F, 0xB9, 0xB7, 0xB0, 0x2D, 0x14
+ },
+ {
+ 0xF9, 0xF8, 0x49, 0x3C, 0x68, 0x08, 0x88, 0x07,
+ 0xDF, 0x7F, 0x6A, 0x26, 0x93, 0xD6, 0x4E, 0xA5,
+ 0x9F, 0x03, 0xE9, 0xE0, 0x5A, 0x22, 0x3E, 0x68,
+ 0x52, 0x4C, 0xA3, 0x21, 0x95, 0xA4, 0x73, 0x4B,
+ 0x65, 0x4F, 0xCE, 0xA4, 0xD2, 0x73, 0x4C, 0x86,
+ 0x6C, 0xF9, 0x5C, 0x88, 0x9F, 0xB1, 0x0C, 0x49,
+ 0x15, 0x9B, 0xE2, 0xF5, 0x04, 0x3D, 0xC9, 0x8B,
+ 0xB5, 0x5E, 0x02, 0xEF, 0x7B, 0xDC, 0xB0, 0x82
+ },
+ {
+ 0x3C, 0x9A, 0x73, 0x59, 0xAB, 0x4F, 0xEB, 0xCE,
+ 0x07, 0xB2, 0x0A, 0xC4, 0x47, 0xB0, 0x6A, 0x24,
+ 0x0B, 0x7F, 0xE1, 0xDA, 0xE5, 0x43, 0x9C, 0x49,
+ 0xB6, 0x0B, 0x58, 0x19, 0xF7, 0x81, 0x2E, 0x4C,
+ 0x17, 0x24, 0x06, 0xC1, 0xAA, 0xC3, 0x16, 0x71,
+ 0x3C, 0xF0, 0xDD, 0xED, 0x10, 0x38, 0x07, 0x72,
+ 0x58, 0xE2, 0xEF, 0xF5, 0xB3, 0x39, 0x13, 0xD9,
+ 0xD9, 0x5C, 0xAE, 0xB4, 0xE6, 0xC6, 0xB9, 0x70
+ },
+ {
+ 0xAD, 0x6A, 0xAB, 0x80, 0x84, 0x51, 0x0E, 0x82,
+ 0x2C, 0xFC, 0xE8, 0x62, 0x5D, 0x62, 0xCF, 0x4D,
+ 0xE6, 0x55, 0xF4, 0x76, 0x38, 0x84, 0xC7, 0x1E,
+ 0x80, 0xBA, 0xB9, 0xAC, 0x9D, 0x53, 0x18, 0xDB,
+ 0xA4, 0xA6, 0x03, 0x3E, 0xD2, 0x90, 0x84, 0xE6,
+ 0x52, 0x16, 0xC0, 0x31, 0x60, 0x6C, 0xA1, 0x76,
+ 0x15, 0xDC, 0xFE, 0x3B, 0xA1, 0x1D, 0x26, 0x85,
+ 0x1A, 0xE0, 0x99, 0x9C, 0xA6, 0xE2, 0x32, 0xCF
+ },
+ {
+ 0x15, 0x6E, 0x9E, 0x62, 0x61, 0x37, 0x4C, 0x9D,
+ 0xC8, 0x84, 0xF3, 0x6E, 0x70, 0xF0, 0xFE, 0x1A,
+ 0xB9, 0x29, 0x79, 0x97, 0xB8, 0x36, 0xFA, 0x7D,
+ 0x17, 0x0A, 0x9C, 0x9E, 0xBF, 0x57, 0x5B, 0x88,
+ 0x1E, 0x7B, 0xCE, 0xA4, 0x4D, 0x6C, 0x02, 0x48,
+ 0xD3, 0x55, 0x97, 0x90, 0x71, 0x54, 0x82, 0x89,
+ 0x55, 0xBE, 0x19, 0x13, 0x58, 0x52, 0xF9, 0x22,
+ 0x88, 0x15, 0xEC, 0xA0, 0x24, 0xA8, 0xAD, 0xFB
+ },
+ {
+ 0x42, 0x15, 0x40, 0x76, 0x33, 0xF4, 0xCC, 0xA9,
+ 0xB6, 0x78, 0x8B, 0xE9, 0x3E, 0x6A, 0xA3, 0xD9,
+ 0x63, 0xC7, 0xD6, 0xCE, 0x4B, 0x14, 0x72, 0x47,
+ 0x09, 0x9F, 0x46, 0xA3, 0xAC, 0xB5, 0x00, 0xA3,
+ 0x00, 0x38, 0xCB, 0x3E, 0x78, 0x8C, 0x3D, 0x29,
+ 0xF1, 0x32, 0xAD, 0x84, 0x4E, 0x80, 0xE9, 0xE9,
+ 0x92, 0x51, 0xF6, 0xDB, 0x96, 0xAC, 0xD8, 0xA0,
+ 0x91, 0xCF, 0xC7, 0x70, 0xAF, 0x53, 0x84, 0x7B
+ },
+ {
+ 0x1C, 0x07, 0x7E, 0x27, 0x9D, 0xE6, 0x54, 0x85,
+ 0x23, 0x50, 0x2B, 0x6D, 0xF8, 0x00, 0xFF, 0xDA,
+ 0xB5, 0xE2, 0xC3, 0xE9, 0x44, 0x2E, 0xB8, 0x38,
+ 0xF5, 0x8C, 0x29, 0x5F, 0x3B, 0x14, 0x7C, 0xEF,
+ 0x9D, 0x70, 0x1C, 0x41, 0xC3, 0x21, 0x28, 0x3F,
+ 0x00, 0xC7, 0x1A, 0xFF, 0xA0, 0x61, 0x93, 0x10,
+ 0x39, 0x91, 0x26, 0x29, 0x5B, 0x78, 0xDD, 0x4D,
+ 0x1A, 0x74, 0x57, 0x2E, 0xF9, 0xED, 0x51, 0x35
+ },
+ {
+ 0xF0, 0x7A, 0x55, 0x5F, 0x49, 0xFE, 0x48, 0x1C,
+ 0xF4, 0xCD, 0x0A, 0x87, 0xB7, 0x1B, 0x82, 0xE4,
+ 0xA9, 0x50, 0x64, 0xD0, 0x66, 0x77, 0xFD, 0xD9,
+ 0x0A, 0x0E, 0xB5, 0x98, 0x87, 0x7B, 0xA1, 0xC8,
+ 0x3D, 0x46, 0x77, 0xB3, 0x93, 0xC3, 0xA3, 0xB6,
+ 0x66, 0x1C, 0x42, 0x1F, 0x5B, 0x12, 0xCB, 0x99,
+ 0xD2, 0x03, 0x76, 0xBA, 0x72, 0x75, 0xC2, 0xF3,
+ 0xA8, 0xF5, 0xA9, 0xB7, 0x82, 0x17, 0x20, 0xDA
+ },
+ {
+ 0xB5, 0x91, 0x1B, 0x38, 0x0D, 0x20, 0xC7, 0xB0,
+ 0x43, 0x23, 0xE4, 0x02, 0x6B, 0x38, 0xE2, 0x00,
+ 0xF5, 0x34, 0x25, 0x92, 0x33, 0xB5, 0x81, 0xE0,
+ 0x2C, 0x1E, 0x3E, 0x2D, 0x84, 0x38, 0xD6, 0xC6,
+ 0x6D, 0x5A, 0x4E, 0xB2, 0x01, 0xD5, 0xA8, 0xB7,
+ 0x50, 0x72, 0xC4, 0xEC, 0x29, 0x10, 0x63, 0x34,
+ 0xDA, 0x70, 0xBC, 0x79, 0x52, 0x1B, 0x0C, 0xED,
+ 0x2C, 0xFD, 0x53, 0x3F, 0x5F, 0xF8, 0x4F, 0x95
+ },
+ {
+ 0x01, 0xF0, 0x70, 0xA0, 0x9B, 0xAE, 0x91, 0x12,
+ 0x96, 0x36, 0x1F, 0x91, 0xAA, 0x0E, 0x8E, 0x0D,
+ 0x09, 0xA7, 0x72, 0x54, 0x78, 0x53, 0x6D, 0x9D,
+ 0x48, 0xC5, 0xFE, 0x1E, 0x5E, 0x7C, 0x3C, 0x5B,
+ 0x9B, 0x9D, 0x6E, 0xB0, 0x77, 0x96, 0xF6, 0xDA,
+ 0x57, 0xAE, 0x56, 0x2A, 0x7D, 0x70, 0xE8, 0x82,
+ 0xE3, 0x7A, 0xDF, 0xDE, 0x83, 0xF0, 0xC4, 0x33,
+ 0xC2, 0xCD, 0x36, 0x35, 0x36, 0xBB, 0x22, 0xC8
+ },
+ {
+ 0x6F, 0x79, 0x3E, 0xB4, 0x37, 0x4A, 0x48, 0xB0,
+ 0x77, 0x5A, 0xCA, 0xF9, 0xAD, 0xCF, 0x8E, 0x45,
+ 0xE5, 0x42, 0x70, 0xC9, 0x47, 0x5F, 0x00, 0x4A,
+ 0xD8, 0xD5, 0x97, 0x3E, 0x2A, 0xCA, 0x52, 0x74,
+ 0x7F, 0xF4, 0xED, 0x04, 0xAE, 0x96, 0x72, 0x75,
+ 0xB9, 0xF9, 0xEB, 0x0E, 0x1F, 0xF7, 0x5F, 0xB4,
+ 0xF7, 0x94, 0xFA, 0x8B, 0xE9, 0xAD, 0xD7, 0xA4,
+ 0x13, 0x04, 0x86, 0x8D, 0x10, 0x3F, 0xAB, 0x10
+ },
+ {
+ 0x96, 0x5F, 0x20, 0xF1, 0x39, 0x76, 0x5F, 0xCC,
+ 0x4C, 0xE4, 0xBA, 0x37, 0x94, 0x67, 0x58, 0x63,
+ 0xCA, 0xC2, 0x4D, 0xB4, 0x72, 0xCD, 0x2B, 0x79,
+ 0x9D, 0x03, 0x5B, 0xCE, 0x3D, 0xBE, 0xA5, 0x02,
+ 0xDA, 0x7B, 0x52, 0x48, 0x65, 0xF6, 0xB8, 0x11,
+ 0xD8, 0xC5, 0x82, 0x8D, 0x3A, 0x88, 0x96, 0x46,
+ 0xFE, 0x64, 0xA3, 0x80, 0xDA, 0x1A, 0xA7, 0xC7,
+ 0x04, 0x4E, 0x9F, 0x24, 0x5D, 0xCE, 0xD1, 0x28
+ },
+ {
+ 0xEC, 0x29, 0x5B, 0x57, 0x83, 0x60, 0x12, 0x44,
+ 0xC3, 0x0E, 0x46, 0x41, 0xE3, 0xB4, 0x5B, 0xE2,
+ 0x22, 0xC4, 0xDC, 0xE7, 0x7A, 0x58, 0x70, 0x0F,
+ 0x53, 0xBC, 0x8E, 0xC5, 0x2A, 0x94, 0x16, 0x90,
+ 0xB4, 0xD0, 0xB0, 0x87, 0xFB, 0x6F, 0xCB, 0x3F,
+ 0x39, 0x83, 0x2B, 0x9D, 0xE8, 0xF7, 0x5E, 0xC2,
+ 0x0B, 0xD4, 0x30, 0x79, 0x81, 0x17, 0x49, 0xCD,
+ 0xC9, 0x07, 0xED, 0xB9, 0x41, 0x57, 0xD1, 0x80
+ },
+ {
+ 0x61, 0xC7, 0x2F, 0x8C, 0xCC, 0x91, 0xDB, 0xB5,
+ 0x4C, 0xA6, 0x75, 0x0B, 0xC4, 0x89, 0x67, 0x2D,
+ 0xE0, 0x9F, 0xAE, 0xDB, 0x8F, 0xDD, 0x4F, 0x94,
+ 0xFF, 0x23, 0x20, 0x90, 0x9A, 0x30, 0x3F, 0x5D,
+ 0x5A, 0x98, 0x48, 0x1C, 0x0B, 0xC1, 0xA6, 0x25,
+ 0x41, 0x9F, 0xB4, 0xDE, 0xBF, 0xBF, 0x7F, 0x8A,
+ 0x53, 0xBB, 0x07, 0xEC, 0x3D, 0x98, 0x5E, 0x8E,
+ 0xA1, 0x1E, 0x72, 0xD5, 0x59, 0x94, 0x07, 0x80
+ },
+ {
+ 0xAF, 0xD8, 0x14, 0x5B, 0x25, 0x9E, 0xEF, 0xC8,
+ 0xD1, 0x26, 0x20, 0xC3, 0xC5, 0xB0, 0x3E, 0x1E,
+ 0xD8, 0xFD, 0x2C, 0xCE, 0xFE, 0x03, 0x65, 0x07,
+ 0x8C, 0x80, 0xFD, 0x42, 0xC1, 0x77, 0x0E, 0x28,
+ 0xB4, 0x49, 0x48, 0xF2, 0x7E, 0x65, 0xA1, 0x88,
+ 0x66, 0x90, 0x11, 0x0D, 0xB8, 0x14, 0x39, 0x7B,
+ 0x68, 0xE4, 0x3D, 0x80, 0xD1, 0xBA, 0x16, 0xDF,
+ 0xA3, 0x58, 0xE7, 0x39, 0xC8, 0x98, 0xCF, 0xA3
+ },
+ {
+ 0x55, 0x2F, 0xC7, 0x89, 0x3C, 0xF1, 0xCE, 0x93,
+ 0x3A, 0xDA, 0x35, 0xC0, 0xDA, 0x98, 0x84, 0x4E,
+ 0x41, 0x54, 0x5E, 0x24, 0x4C, 0x31, 0x57, 0xA1,
+ 0x42, 0x8D, 0x7B, 0x4C, 0x21, 0xF9, 0xCD, 0x7E,
+ 0x40, 0x71, 0xAE, 0xD7, 0x7B, 0x7C, 0xA9, 0xF1,
+ 0xC3, 0x8F, 0xBA, 0x32, 0x23, 0x74, 0x12, 0xEF,
+ 0x21, 0xA3, 0x42, 0x74, 0x2E, 0xC8, 0x32, 0x43,
+ 0x78, 0xF2, 0x1E, 0x50, 0x7F, 0xAF, 0xDD, 0x88
+ },
+ {
+ 0x46, 0x7A, 0x33, 0xFB, 0xAD, 0xF5, 0xEB, 0xC5,
+ 0x25, 0x96, 0xEF, 0x86, 0xAA, 0xAE, 0xFC, 0x6F,
+ 0xAB, 0xA8, 0xEE, 0x65, 0x1B, 0x1C, 0xE0, 0x4D,
+ 0xE3, 0x68, 0xA0, 0x3A, 0x5A, 0x90, 0x40, 0xEF,
+ 0x28, 0x35, 0xE0, 0x0A, 0xDB, 0x09, 0xAB, 0xB3,
+ 0xFB, 0xD2, 0xBC, 0xE8, 0x18, 0xA2, 0x41, 0x3D,
+ 0x0B, 0x02, 0x53, 0xB5, 0xBD, 0xA4, 0xFC, 0x5B,
+ 0x2F, 0x6F, 0x85, 0xF3, 0xFD, 0x5B, 0x55, 0xF2
+ },
+ {
+ 0x22, 0xEF, 0xF8, 0xE6, 0xDD, 0x52, 0x36, 0xF5,
+ 0xF5, 0x7D, 0x94, 0xED, 0xE8, 0x74, 0xD6, 0xC9,
+ 0x42, 0x8E, 0x8F, 0x5D, 0x56, 0x6F, 0x17, 0xCD,
+ 0x6D, 0x18, 0x48, 0xCD, 0x75, 0x2F, 0xE1, 0x3C,
+ 0x65, 0x5C, 0xB1, 0x0F, 0xBA, 0xAF, 0xF7, 0x68,
+ 0x72, 0xF2, 0xBF, 0x2D, 0xA9, 0x9E, 0x15, 0xDC,
+ 0x62, 0x40, 0x75, 0xE1, 0xEC, 0x2F, 0x58, 0xA3,
+ 0xF6, 0x40, 0x72, 0x12, 0x18, 0x38, 0x56, 0x9E
+ },
+ {
+ 0x9C, 0xEC, 0x6B, 0xBF, 0x62, 0xC4, 0xBC, 0xE4,
+ 0x13, 0x8A, 0xBA, 0xE1, 0xCB, 0xEC, 0x8D, 0xAD,
+ 0x31, 0x95, 0x04, 0x44, 0xE9, 0x03, 0x21, 0xB1,
+ 0x34, 0x71, 0x96, 0x83, 0x4C, 0x11, 0x4B, 0x86,
+ 0x4A, 0xF3, 0xF3, 0xCC, 0x35, 0x08, 0xF8, 0x37,
+ 0x51, 0xFF, 0xB4, 0xED, 0xA7, 0xC8, 0x4D, 0x14,
+ 0x07, 0x34, 0xBB, 0x42, 0x63, 0xC3, 0x62, 0x5C,
+ 0x00, 0xF0, 0x4F, 0x4C, 0x80, 0x68, 0x98, 0x1B
+ },
+ {
+ 0xA8, 0xB6, 0x0F, 0xA4, 0xFC, 0x24, 0x42, 0xF6,
+ 0xF1, 0x51, 0x4A, 0xD7, 0x40, 0x26, 0x26, 0x92,
+ 0x0C, 0xC7, 0xC2, 0xC9, 0xF7, 0x21, 0x24, 0xB8,
+ 0xCB, 0xA8, 0xEE, 0x2C, 0xB7, 0xC4, 0x58, 0x6F,
+ 0x65, 0x8A, 0x44, 0x10, 0xCF, 0xFC, 0xC0, 0xAB,
+ 0x88, 0x34, 0x39, 0x55, 0xE0, 0x94, 0xC6, 0xAF,
+ 0x0D, 0x20, 0xD0, 0xC7, 0x14, 0xFB, 0x0A, 0x98,
+ 0x8F, 0x54, 0x3F, 0x30, 0x0F, 0x58, 0xD3, 0x89
+ },
+ {
+ 0x82, 0x71, 0xCC, 0x45, 0xDF, 0xA5, 0xE4, 0x17,
+ 0x0E, 0x84, 0x7E, 0x86, 0x30, 0xB9, 0x52, 0xCF,
+ 0x9C, 0x2A, 0xA7, 0x77, 0xD0, 0x6F, 0x26, 0xA7,
+ 0x58, 0x5B, 0x83, 0x81, 0xF1, 0x88, 0xDA, 0xCC,
+ 0x73, 0x37, 0x39, 0x1C, 0xFC, 0xC9, 0x4B, 0x05,
+ 0x3D, 0xC4, 0xEC, 0x29, 0xCC, 0x17, 0xF0, 0x77,
+ 0x87, 0x04, 0x28, 0xF1, 0xAC, 0x23, 0xFD, 0xDD,
+ 0xA1, 0x65, 0xEF, 0x5A, 0x3F, 0x15, 0x5F, 0x39
+ },
+ {
+ 0xBF, 0x23, 0xC0, 0xC2, 0x5C, 0x80, 0x60, 0xE4,
+ 0xF6, 0x99, 0x5F, 0x16, 0x23, 0xA3, 0xBE, 0xBE,
+ 0xCA, 0xA9, 0x6E, 0x30, 0x86, 0x80, 0x00, 0x0A,
+ 0x8A, 0xA3, 0xCD, 0x56, 0xBB, 0x1A, 0x6D, 0xA0,
+ 0x99, 0xE1, 0x0D, 0x92, 0x31, 0xB3, 0x7F, 0x45,
+ 0x19, 0xB2, 0xEF, 0xD2, 0xC2, 0x4D, 0xE7, 0x2F,
+ 0x31, 0xA5, 0xF1, 0x95, 0x35, 0x24, 0x1B, 0x4A,
+ 0x59, 0xFA, 0x3C, 0x03, 0xCE, 0xB7, 0x90, 0xE7
+ },
+ {
+ 0x87, 0x7F, 0xD6, 0x52, 0xC0, 0x52, 0x81, 0x00,
+ 0x9C, 0x0A, 0x52, 0x50, 0xE7, 0xA3, 0xA6, 0x71,
+ 0xF8, 0xB1, 0x8C, 0x10, 0x88, 0x17, 0xFE, 0x4A,
+ 0x87, 0x4D, 0xE2, 0x2D, 0xA8, 0xE4, 0x5D, 0xB1,
+ 0x19, 0x58, 0xA6, 0x00, 0xC5, 0xF6, 0x2E, 0x67,
+ 0xD3, 0x6C, 0xBF, 0x84, 0x47, 0x4C, 0xF2, 0x44,
+ 0xA9, 0xC2, 0xB0, 0x3A, 0x9F, 0xB9, 0xDC, 0x71,
+ 0x1C, 0xD1, 0xA2, 0xCA, 0xB6, 0xF3, 0xFA, 0xE0
+ },
+ {
+ 0x29, 0xDF, 0x4D, 0x87, 0xEA, 0x44, 0x4B, 0xAF,
+ 0x5B, 0xCD, 0xF5, 0xF4, 0xE4, 0x15, 0x79, 0xE2,
+ 0x8A, 0x67, 0xDE, 0x84, 0x14, 0x9F, 0x06, 0xC0,
+ 0x3F, 0x11, 0x0E, 0xA8, 0x4F, 0x57, 0x2A, 0x9F,
+ 0x67, 0x6A, 0xDD, 0xD0, 0x4C, 0x48, 0x78, 0xF4,
+ 0x9C, 0x5C, 0x00, 0xAC, 0xCD, 0xA4, 0x41, 0xB1,
+ 0xA3, 0x87, 0xCA, 0xCE, 0xB2, 0xE9, 0x93, 0xBB,
+ 0x7A, 0x10, 0xCD, 0x8C, 0x2D, 0x67, 0x17, 0xE1
+ },
+ {
+ 0x71, 0x0D, 0xAC, 0xB1, 0x66, 0x84, 0x46, 0x39,
+ 0xCD, 0x7B, 0x63, 0x7C, 0x27, 0x42, 0x09, 0x42,
+ 0x4E, 0x24, 0x49, 0xDC, 0x35, 0xD7, 0x90, 0xBB,
+ 0xFA, 0x4F, 0x76, 0x17, 0x70, 0x54, 0xA3, 0x6B,
+ 0x3B, 0x76, 0xFA, 0xC0, 0xCA, 0x6E, 0x61, 0xDF,
+ 0x1E, 0x68, 0x70, 0x00, 0x67, 0x8A, 0xC0, 0x74,
+ 0x6D, 0xF7, 0x5D, 0x0A, 0x39, 0x54, 0x89, 0x76,
+ 0x81, 0xFD, 0x39, 0x3A, 0x15, 0x5A, 0x1B, 0xB4
+ },
+ {
+ 0xC1, 0xD5, 0xF9, 0x3B, 0x8D, 0xEA, 0x1F, 0x25,
+ 0x71, 0xBA, 0xBC, 0xCB, 0xC0, 0x17, 0x64, 0x54,
+ 0x1A, 0x0C, 0xDA, 0x87, 0xE4, 0x44, 0xD6, 0x73,
+ 0xC5, 0x09, 0x66, 0xCA, 0x55, 0x9C, 0x33, 0x35,
+ 0x4B, 0x3A, 0xCB, 0x26, 0xE5, 0xD5, 0x78, 0x1F,
+ 0xFB, 0x28, 0x84, 0x7A, 0x4B, 0x47, 0x54, 0xD7,
+ 0x70, 0x08, 0xC6, 0x2A, 0x83, 0x58, 0x35, 0xF5,
+ 0x00, 0xDE, 0xA7, 0xC3, 0xB5, 0x8B, 0xDA, 0xE2
+ },
+ {
+ 0xA4, 0x1E, 0x41, 0x27, 0x1C, 0xDA, 0xB8, 0xAF,
+ 0x4D, 0x72, 0xB1, 0x04, 0xBF, 0xB2, 0xAD, 0x04,
+ 0x1A, 0xC4, 0xDF, 0x14, 0x67, 0x7D, 0xA6, 0x71,
+ 0xD8, 0x56, 0x40, 0xC4, 0xB1, 0x87, 0xF5, 0x0C,
+ 0x2B, 0x66, 0x51, 0x3C, 0x46, 0x19, 0xFB, 0xD5,
+ 0xD5, 0xDC, 0x4F, 0xE6, 0x5D, 0xD3, 0x7B, 0x90,
+ 0x42, 0xE9, 0x84, 0x8D, 0xDA, 0x55, 0x6A, 0x50,
+ 0x4C, 0xAA, 0x2B, 0x1C, 0x6A, 0xFE, 0x47, 0x30
+ },
+ {
+ 0xE7, 0xBC, 0xBA, 0xCD, 0xC3, 0x79, 0xC4, 0x3D,
+ 0x81, 0xEB, 0xAD, 0xCB, 0x37, 0x78, 0x15, 0x52,
+ 0xFC, 0x1D, 0x75, 0x3E, 0x8C, 0xF3, 0x10, 0xD9,
+ 0x68, 0x39, 0x2D, 0x06, 0xC9, 0x1F, 0x1D, 0x64,
+ 0xCC, 0x9E, 0x90, 0xCE, 0x1D, 0x22, 0xC3, 0x2D,
+ 0x27, 0x7F, 0xC6, 0xCD, 0xA4, 0x33, 0xA4, 0xD4,
+ 0x42, 0xC7, 0x62, 0xE9, 0xEA, 0xCF, 0x2C, 0x25,
+ 0x9F, 0x32, 0xD6, 0x4C, 0xF9, 0xDA, 0x3A, 0x22
+ },
+ {
+ 0x51, 0x75, 0x5B, 0x4A, 0xC5, 0x45, 0x6B, 0x13,
+ 0x21, 0x8A, 0x19, 0xC5, 0xB9, 0x24, 0x2F, 0x57,
+ 0xC4, 0xA9, 0x81, 0xE4, 0xD4, 0xEC, 0xDC, 0xE0,
+ 0x9A, 0x31, 0x93, 0x36, 0x2B, 0x80, 0x8A, 0x57,
+ 0x93, 0x45, 0xD4, 0x88, 0x1C, 0x26, 0x07, 0xA5,
+ 0x65, 0x34, 0xDD, 0x7F, 0x21, 0x95, 0x6A, 0xFF,
+ 0x72, 0xC2, 0xF4, 0x17, 0x3A, 0x6E, 0x7B, 0x6C,
+ 0xC2, 0x21, 0x2B, 0xA0, 0xE3, 0xDA, 0xEE, 0x1F
+ },
+ {
+ 0xDC, 0xC2, 0xC4, 0xBE, 0xB9, 0xC1, 0xF2, 0x60,
+ 0x7B, 0x78, 0x6C, 0x20, 0xC6, 0x31, 0x97, 0x23,
+ 0x47, 0x03, 0x4C, 0x1C, 0xC0, 0x2F, 0xCC, 0x7D,
+ 0x02, 0xFF, 0x01, 0x09, 0x9C, 0xFE, 0x1C, 0x69,
+ 0x89, 0x84, 0x0A, 0xC2, 0x13, 0x92, 0x36, 0x29,
+ 0x11, 0x3A, 0xA8, 0xBA, 0xD7, 0x13, 0xCC, 0xF0,
+ 0xFE, 0x4C, 0xE1, 0x32, 0x64, 0xFB, 0x32, 0xB8,
+ 0xB0, 0xFE, 0x37, 0x2D, 0xA3, 0x82, 0x54, 0x4A
+ },
+ {
+ 0x3D, 0x55, 0x17, 0x6A, 0xCE, 0xA4, 0xA7, 0xE3,
+ 0xA6, 0x5F, 0xFA, 0x9F, 0xB1, 0x0A, 0x7A, 0x17,
+ 0x67, 0x19, 0x9C, 0xF0, 0x77, 0xCE, 0xE9, 0xF7,
+ 0x15, 0x32, 0xD6, 0x7C, 0xD7, 0xC7, 0x3C, 0x9F,
+ 0x93, 0xCF, 0xC3, 0x7C, 0xCD, 0xCC, 0x1F, 0xDE,
+ 0xF5, 0x0A, 0xAD, 0x46, 0xA5, 0x04, 0xA6, 0x50,
+ 0xD2, 0x98, 0xD5, 0x97, 0xA3, 0xA9, 0xFA, 0x95,
+ 0xC6, 0xC4, 0x0C, 0xB7, 0x1F, 0xA5, 0xE7, 0x25
+ },
+ {
+ 0xD0, 0x77, 0x13, 0xC0, 0x05, 0xDE, 0x96, 0xDD,
+ 0x21, 0xD2, 0xEB, 0x8B, 0xBE, 0xCA, 0x66, 0x74,
+ 0x6E, 0xA5, 0x1A, 0x31, 0xAE, 0x92, 0x2A, 0x3E,
+ 0x74, 0x86, 0x48, 0x89, 0x54, 0x0A, 0x48, 0xDB,
+ 0x27, 0xD7, 0xE4, 0xC9, 0x03, 0x11, 0x63, 0x8B,
+ 0x22, 0x4B, 0xF0, 0x20, 0x1B, 0x50, 0x18, 0x91,
+ 0x75, 0x48, 0x48, 0x11, 0x3C, 0x26, 0x61, 0x08,
+ 0xD0, 0xAD, 0xB1, 0x3D, 0xB7, 0x19, 0x09, 0xC7
+ },
+ {
+ 0x58, 0x98, 0x3C, 0x21, 0x43, 0x3D, 0x95, 0x0C,
+ 0xAA, 0x23, 0xE4, 0xBC, 0x18, 0x54, 0x3B, 0x8E,
+ 0x60, 0x1C, 0x20, 0x43, 0x18, 0x53, 0x21, 0x52,
+ 0xDA, 0xF5, 0xE1, 0x59, 0xA0, 0xCD, 0x14, 0x80,
+ 0x18, 0x3D, 0x29, 0x28, 0x5C, 0x05, 0xF1, 0x29,
+ 0xCB, 0x0C, 0xC3, 0x16, 0x46, 0x87, 0x92, 0x80,
+ 0x86, 0xFF, 0xE3, 0x80, 0x15, 0x8D, 0xF1, 0xD3,
+ 0x94, 0xC6, 0xAC, 0x0D, 0x42, 0x88, 0xBC, 0xA8
+ },
+ {
+ 0x81, 0x00, 0xA8, 0xDC, 0x52, 0x8D, 0x2B, 0x68,
+ 0x2A, 0xB4, 0x25, 0x08, 0x01, 0xBA, 0x33, 0xF0,
+ 0x2A, 0x3E, 0x94, 0xC5, 0x4D, 0xAC, 0x0A, 0xE1,
+ 0x48, 0x2A, 0xA2, 0x1F, 0x51, 0xEF, 0x3A, 0x82,
+ 0xF3, 0x80, 0x7E, 0x6F, 0xAC, 0xB0, 0xAE, 0xB0,
+ 0x59, 0x47, 0xBF, 0x7A, 0xA2, 0xAD, 0xCB, 0x03,
+ 0x43, 0x56, 0xF9, 0x0F, 0xA4, 0x56, 0x0E, 0xDE,
+ 0x02, 0x20, 0x1A, 0x37, 0xE4, 0x11, 0xEC, 0x1A
+ },
+ {
+ 0x07, 0x02, 0x5F, 0x1B, 0xB6, 0xC7, 0x84, 0xF3,
+ 0xFE, 0x49, 0xDE, 0x5C, 0x14, 0xB9, 0x36, 0xA5,
+ 0xAC, 0xAC, 0xAC, 0xAA, 0xB3, 0x3F, 0x6A, 0xC4,
+ 0xD0, 0xE0, 0x0A, 0xB6, 0xA1, 0x24, 0x83, 0xD6,
+ 0xBE, 0xC0, 0x0B, 0x4F, 0xE6, 0x7C, 0x7C, 0xA5,
+ 0xCC, 0x50, 0x8C, 0x2A, 0x53, 0xEF, 0xB5, 0xBF,
+ 0xA5, 0x39, 0x87, 0x69, 0xD8, 0x43, 0xFF, 0x0D,
+ 0x9E, 0x8B, 0x14, 0xD3, 0x6A, 0x01, 0xA7, 0x7F
+ },
+ {
+ 0xBA, 0x6A, 0xEF, 0xD9, 0x72, 0xB6, 0x18, 0x6E,
+ 0x02, 0x7A, 0x76, 0x27, 0x3A, 0x4A, 0x72, 0x33,
+ 0x21, 0xA3, 0xF5, 0x80, 0xCF, 0xA8, 0x94, 0xDA,
+ 0x5A, 0x9C, 0xE8, 0xE7, 0x21, 0xC8, 0x28, 0x55,
+ 0x2C, 0x64, 0xDA, 0xCE, 0xE3, 0xA7, 0xFD, 0x2D,
+ 0x74, 0x3B, 0x5C, 0x35, 0xAD, 0x0C, 0x8E, 0xFA,
+ 0x71, 0xF8, 0xCE, 0x99, 0xBF, 0x96, 0x33, 0x47,
+ 0x10, 0xE2, 0xC2, 0x34, 0x6E, 0x8F, 0x3C, 0x52
+ },
+ {
+ 0xE0, 0x72, 0x1E, 0x02, 0x51, 0x7A, 0xED, 0xFA,
+ 0x4E, 0x7E, 0x9B, 0xA5, 0x03, 0xE0, 0x25, 0xFD,
+ 0x46, 0xE7, 0x14, 0x56, 0x6D, 0xC8, 0x89, 0xA8,
+ 0x4C, 0xBF, 0xE5, 0x6A, 0x55, 0xDF, 0xBE, 0x2F,
+ 0xC4, 0x93, 0x8A, 0xC4, 0x12, 0x05, 0x88, 0x33,
+ 0x5D, 0xEA, 0xC8, 0xEF, 0x3F, 0xA2, 0x29, 0xAD,
+ 0xC9, 0x64, 0x7F, 0x54, 0xAD, 0x2E, 0x34, 0x72,
+ 0x23, 0x4F, 0x9B, 0x34, 0xEF, 0xC4, 0x65, 0x43
+ },
+ {
+ 0xB6, 0x29, 0x26, 0x69, 0xCC, 0xD3, 0x8D, 0x5F,
+ 0x01, 0xCA, 0xAE, 0x96, 0xBA, 0x27, 0x2C, 0x76,
+ 0xA8, 0x79, 0xA4, 0x57, 0x43, 0xAF, 0xA0, 0x72,
+ 0x5D, 0x83, 0xB9, 0xEB, 0xB2, 0x66, 0x65, 0xB7,
+ 0x31, 0xF1, 0x84, 0x8C, 0x52, 0xF1, 0x19, 0x72,
+ 0xB6, 0x64, 0x4F, 0x55, 0x4C, 0x06, 0x4F, 0xA9,
+ 0x07, 0x80, 0xDB, 0xBB, 0xF3, 0xA8, 0x9D, 0x4F,
+ 0xC3, 0x1F, 0x67, 0xDF, 0x3E, 0x58, 0x57, 0xEF
+ },
+ {
+ 0x23, 0x19, 0xE3, 0x78, 0x9C, 0x47, 0xE2, 0xDA,
+ 0xA5, 0xFE, 0x80, 0x7F, 0x61, 0xBE, 0xC2, 0xA1,
+ 0xA6, 0x53, 0x7F, 0xA0, 0x3F, 0x19, 0xFF, 0x32,
+ 0xE8, 0x7E, 0xEC, 0xBF, 0xD6, 0x4B, 0x7E, 0x0E,
+ 0x8C, 0xCF, 0xF4, 0x39, 0xAC, 0x33, 0x3B, 0x04,
+ 0x0F, 0x19, 0xB0, 0xC4, 0xDD, 0xD1, 0x1A, 0x61,
+ 0xE2, 0x4A, 0xC1, 0xFE, 0x0F, 0x10, 0xA0, 0x39,
+ 0x80, 0x6C, 0x5D, 0xCC, 0x0D, 0xA3, 0xD1, 0x15
+ },
+ {
+ 0xF5, 0x97, 0x11, 0xD4, 0x4A, 0x03, 0x1D, 0x5F,
+ 0x97, 0xA9, 0x41, 0x3C, 0x06, 0x5D, 0x1E, 0x61,
+ 0x4C, 0x41, 0x7E, 0xDE, 0x99, 0x85, 0x90, 0x32,
+ 0x5F, 0x49, 0xBA, 0xD2, 0xFD, 0x44, 0x4D, 0x3E,
+ 0x44, 0x18, 0xBE, 0x19, 0xAE, 0xC4, 0xE1, 0x14,
+ 0x49, 0xAC, 0x1A, 0x57, 0x20, 0x78, 0x98, 0xBC,
+ 0x57, 0xD7, 0x6A, 0x1B, 0xCF, 0x35, 0x66, 0x29,
+ 0x2C, 0x20, 0xC6, 0x83, 0xA5, 0xC4, 0x64, 0x8F
+ },
+ {
+ 0xDF, 0x0A, 0x9D, 0x0C, 0x21, 0x28, 0x43, 0xA6,
+ 0xA9, 0x34, 0xE3, 0x90, 0x2B, 0x2D, 0xD3, 0x0D,
+ 0x17, 0xFB, 0xA5, 0xF9, 0x69, 0xD2, 0x03, 0x0B,
+ 0x12, 0xA5, 0x46, 0xD8, 0xA6, 0xA4, 0x5E, 0x80,
+ 0xCF, 0x56, 0x35, 0xF0, 0x71, 0xF0, 0x45, 0x2E,
+ 0x9C, 0x91, 0x92, 0x75, 0xDA, 0x99, 0xBE, 0xD5,
+ 0x1E, 0xB1, 0x17, 0x3C, 0x1A, 0xF0, 0x51, 0x87,
+ 0x26, 0xB7, 0x5B, 0x0E, 0xC3, 0xBA, 0xE2, 0xB5
+ },
+ {
+ 0xA3, 0xEB, 0x6E, 0x6C, 0x7B, 0xF2, 0xFB, 0x8B,
+ 0x28, 0xBF, 0xE8, 0xB1, 0x5E, 0x15, 0xBB, 0x50,
+ 0x0F, 0x78, 0x1E, 0xCC, 0x86, 0xF7, 0x78, 0xC3,
+ 0xA4, 0xE6, 0x55, 0xFC, 0x58, 0x69, 0xBF, 0x28,
+ 0x46, 0xA2, 0x45, 0xD4, 0xE3, 0x3B, 0x7B, 0x14,
+ 0x43, 0x6A, 0x17, 0xE6, 0x3B, 0xE7, 0x9B, 0x36,
+ 0x65, 0x5C, 0x22, 0x6A, 0x50, 0xFF, 0xBC, 0x71,
+ 0x24, 0x20, 0x7B, 0x02, 0x02, 0x34, 0x2D, 0xB5
+ },
+ {
+ 0x56, 0xD4, 0xCB, 0xCD, 0x07, 0x05, 0x63, 0x42,
+ 0x6A, 0x01, 0x70, 0x69, 0x42, 0x5C, 0x2C, 0xD2,
+ 0xAE, 0x54, 0x06, 0x68, 0x28, 0x7A, 0x5F, 0xB9,
+ 0xDA, 0xC4, 0x32, 0xEB, 0x8A, 0xB1, 0xA3, 0x53,
+ 0xA3, 0x0F, 0x2F, 0xE1, 0xF4, 0x0D, 0x83, 0x33,
+ 0x3A, 0xFE, 0x69, 0x6A, 0x26, 0x77, 0x95, 0x40,
+ 0x8A, 0x92, 0xFE, 0x7D, 0xA0, 0x7A, 0x0C, 0x18,
+ 0x14, 0xCF, 0x77, 0xF3, 0x6E, 0x10, 0x5E, 0xE8
+ },
+ {
+ 0xE5, 0x9B, 0x99, 0x87, 0xD4, 0x28, 0xB3, 0xED,
+ 0xA3, 0x7D, 0x80, 0xAB, 0xDB, 0x16, 0xCD, 0x2B,
+ 0x0A, 0xEF, 0x67, 0x4C, 0x2B, 0x1D, 0xDA, 0x44,
+ 0x32, 0xEA, 0x91, 0xEE, 0x6C, 0x93, 0x5C, 0x68,
+ 0x4B, 0x48, 0xB4, 0x42, 0x8A, 0x8C, 0xC7, 0x40,
+ 0xE5, 0x79, 0xA3, 0x0D, 0xEF, 0xF3, 0x5A, 0x80,
+ 0x30, 0x13, 0x82, 0x0D, 0xD2, 0x3F, 0x14, 0xAE,
+ 0x1D, 0x84, 0x13, 0xB5, 0xC8, 0x67, 0x2A, 0xEC
+ },
+ {
+ 0xCD, 0x9F, 0xCC, 0x99, 0xF9, 0x9D, 0x4C, 0xC1,
+ 0x6D, 0x03, 0x19, 0x00, 0xB2, 0xA7, 0x36, 0xE1,
+ 0x50, 0x8D, 0xB4, 0xB5, 0x86, 0x81, 0x4E, 0x63,
+ 0x45, 0x85, 0x7F, 0x35, 0x4A, 0x70, 0xCC, 0xEC,
+ 0xB1, 0xDF, 0x3B, 0x50, 0xA1, 0x9A, 0xDA, 0xF4,
+ 0x3C, 0x27, 0x8E, 0xFA, 0x42, 0x3F, 0xF4, 0xBB,
+ 0x6C, 0x52, 0x3E, 0xC7, 0xFD, 0x78, 0x59, 0xB9,
+ 0x7B, 0x16, 0x8A, 0x7E, 0xBF, 0xF8, 0x46, 0x7C
+ },
+ {
+ 0x06, 0x02, 0x18, 0x5D, 0x8C, 0x3A, 0x78, 0x73,
+ 0x8B, 0x99, 0x16, 0x4B, 0x8B, 0xC6, 0xFF, 0xB2,
+ 0x1C, 0x7D, 0xEB, 0xEB, 0xBF, 0x80, 0x63, 0x72,
+ 0xE0, 0xDA, 0x44, 0xD1, 0x21, 0x54, 0x55, 0x97,
+ 0xB9, 0xC6, 0x62, 0xA2, 0x55, 0xDC, 0x31, 0x54,
+ 0x2C, 0xF9, 0x95, 0xEC, 0xBE, 0x6A, 0x50, 0xFB,
+ 0x5E, 0x6E, 0x0E, 0xE4, 0xEF, 0x24, 0x0F, 0xE5,
+ 0x57, 0xED, 0xED, 0x11, 0x88, 0x08, 0x7E, 0x86
+ },
+ {
+ 0xC0, 0x8A, 0xFA, 0x5B, 0x92, 0x7B, 0xF0, 0x80,
+ 0x97, 0xAF, 0xC5, 0xFF, 0xF9, 0xCA, 0x4E, 0x78,
+ 0x00, 0x12, 0x5C, 0x1F, 0x52, 0xF2, 0xAF, 0x35,
+ 0x53, 0xFA, 0x2B, 0x89, 0xE1, 0xE3, 0x01, 0x5C,
+ 0x4F, 0x87, 0xD5, 0xE0, 0xA4, 0x89, 0x56, 0xAD,
+ 0x31, 0x45, 0x0B, 0x08, 0x3D, 0xAD, 0x14, 0x7F,
+ 0xFB, 0x5E, 0xC0, 0x34, 0x34, 0xA2, 0x68, 0x30,
+ 0xCF, 0x37, 0xD1, 0x03, 0xAB, 0x50, 0xC5, 0xDA
+ },
+ {
+ 0x36, 0xF1, 0xE1, 0xC1, 0x1D, 0x6E, 0xF6, 0xBC,
+ 0x3B, 0x53, 0x6D, 0x50, 0x5D, 0x54, 0x4A, 0x87,
+ 0x15, 0x22, 0xC5, 0xC2, 0xA2, 0x53, 0x06, 0x7E,
+ 0xC9, 0x93, 0x3B, 0x6E, 0xC2, 0x54, 0x64, 0xDA,
+ 0xF9, 0x85, 0x52, 0x5F, 0x5B, 0x95, 0x60, 0xA1,
+ 0x6D, 0x89, 0x02, 0x59, 0xAC, 0x1B, 0xB5, 0xCC,
+ 0x67, 0xC0, 0xC4, 0x69, 0xCD, 0xE1, 0x33, 0xDE,
+ 0xF0, 0x00, 0xEA, 0x1D, 0x68, 0x6F, 0x4F, 0x5D
+ },
+ {
+ 0xBF, 0x2A, 0xB2, 0xE2, 0x47, 0x0F, 0x54, 0x38,
+ 0xC3, 0xB6, 0x89, 0xE6, 0x6E, 0x76, 0x86, 0xFF,
+ 0xFA, 0x0C, 0xB1, 0xE1, 0x79, 0x8A, 0xD3, 0xA8,
+ 0x6F, 0xF9, 0x90, 0x75, 0xBF, 0x61, 0x38, 0xE3,
+ 0x3D, 0x9C, 0x0C, 0xE5, 0x9A, 0xFB, 0x24, 0xAC,
+ 0x67, 0xA0, 0x2A, 0xF3, 0x44, 0x28, 0x19, 0x1A,
+ 0x9A, 0x0A, 0x60, 0x41, 0xC0, 0x74, 0x71, 0xB7,
+ 0xC3, 0xB1, 0xA7, 0x52, 0xD6, 0xFC, 0x0B, 0x8B
+ },
+ {
+ 0xD4, 0x00, 0x60, 0x1F, 0x97, 0x28, 0xCC, 0xC4,
+ 0xC9, 0x23, 0x42, 0xD9, 0x78, 0x7D, 0x8D, 0x28,
+ 0xAB, 0x32, 0x3A, 0xF3, 0x75, 0xCA, 0x56, 0x24,
+ 0xB4, 0xBB, 0x91, 0xD1, 0x72, 0x71, 0xFB, 0xAE,
+ 0x86, 0x2E, 0x41, 0x3B, 0xE7, 0x3F, 0x1F, 0x68,
+ 0xE6, 0x15, 0xB8, 0xC5, 0xC3, 0x91, 0xBE, 0x0D,
+ 0xBD, 0x91, 0x44, 0x74, 0x6E, 0xB3, 0x39, 0xAD,
+ 0x54, 0x15, 0x47, 0xBA, 0x9C, 0x46, 0x8A, 0x17
+ },
+ {
+ 0x79, 0xFE, 0x2F, 0xE1, 0x57, 0xEB, 0x85, 0xA0,
+ 0x38, 0xAB, 0xB8, 0xEB, 0xBC, 0x64, 0x77, 0x31,
+ 0xD2, 0xC8, 0x3F, 0x51, 0xB0, 0xAC, 0x6E, 0xE1,
+ 0x4A, 0xA2, 0x84, 0xCB, 0x6A, 0x35, 0x49, 0xA4,
+ 0xDC, 0xCE, 0xB3, 0x00, 0x74, 0x0A, 0x82, 0x5F,
+ 0x52, 0xF5, 0xFB, 0x30, 0xB0, 0x3B, 0x8C, 0x4D,
+ 0x8B, 0x0F, 0x4A, 0xA6, 0x7A, 0x63, 0xF4, 0xA9,
+ 0x4E, 0x33, 0x03, 0xC4, 0xED, 0xA4, 0xC0, 0x2B
+ },
+ {
+ 0x75, 0x35, 0x13, 0x13, 0xB5, 0x2A, 0x85, 0x29,
+ 0x29, 0x8D, 0x8C, 0x18, 0x6B, 0x17, 0x68, 0x66,
+ 0x6D, 0xCC, 0xA8, 0x59, 0x53, 0x17, 0xD7, 0xA4,
+ 0x81, 0x6E, 0xB8, 0x8C, 0x06, 0x20, 0x20, 0xC0,
+ 0xC8, 0xEF, 0xC5, 0x54, 0xBB, 0x34, 0x1B, 0x64,
+ 0x68, 0x8D, 0xB5, 0xCC, 0xAF, 0xC3, 0x5F, 0x3C,
+ 0x3C, 0xD0, 0x9D, 0x65, 0x64, 0xB3, 0x6D, 0x7B,
+ 0x04, 0xA2, 0x48, 0xE1, 0x46, 0x98, 0x0D, 0x4B
+ },
+ {
+ 0xE3, 0x12, 0x8B, 0x1D, 0x31, 0x1D, 0x02, 0x17,
+ 0x9D, 0x7F, 0x25, 0xF9, 0x7A, 0x5A, 0x8B, 0xEE,
+ 0x2C, 0xC8, 0xC8, 0x63, 0x03, 0x64, 0x4F, 0xCD,
+ 0x66, 0x4E, 0x15, 0x7D, 0x1F, 0xEF, 0x00, 0xF2,
+ 0x3E, 0x46, 0xF9, 0xA5, 0xE8, 0xE5, 0xC8, 0x90,
+ 0xCE, 0x56, 0x5B, 0xB6, 0xAB, 0xD4, 0x30, 0x2C,
+ 0xE0, 0x64, 0x69, 0xD5, 0x2A, 0x5B, 0xD5, 0x3E,
+ 0x1C, 0x5A, 0x54, 0xD0, 0x46, 0x49, 0xDC, 0x03
+ },
+ {
+ 0xC2, 0x38, 0x2A, 0x72, 0xD2, 0xD3, 0xAC, 0xE9,
+ 0xD5, 0x93, 0x3D, 0x00, 0xB6, 0x08, 0x27, 0xED,
+ 0x38, 0x0C, 0xDA, 0x08, 0xD0, 0xBA, 0x5F, 0x6D,
+ 0xD4, 0x1E, 0x29, 0xEE, 0x6D, 0xBE, 0x8E, 0xCB,
+ 0x92, 0x35, 0xF0, 0x6B, 0xE9, 0x5D, 0x83, 0xB6,
+ 0x81, 0x6A, 0x2F, 0xB7, 0xA5, 0xAD, 0x47, 0x03,
+ 0x5E, 0x8A, 0x4B, 0x69, 0xA4, 0x88, 0x4B, 0x99,
+ 0xE4, 0xBE, 0xCE, 0x58, 0xCA, 0xB2, 0x5D, 0x44
+ },
+ {
+ 0x6B, 0x1C, 0x69, 0x46, 0x0B, 0xBD, 0x50, 0xAC,
+ 0x2E, 0xD6, 0xF3, 0x2E, 0x6E, 0x88, 0x7C, 0xFE,
+ 0xD4, 0x07, 0xD4, 0x7D, 0xCF, 0x0A, 0xAA, 0x60,
+ 0x38, 0x7F, 0xE3, 0x20, 0xD7, 0x80, 0xBD, 0x03,
+ 0xEA, 0xB6, 0xD7, 0xBA, 0xEB, 0x2A, 0x07, 0xD1,
+ 0x0C, 0xD5, 0x52, 0xA3, 0x00, 0x34, 0x13, 0x54,
+ 0xEA, 0x9A, 0x5F, 0x03, 0x18, 0x3A, 0x62, 0x3F,
+ 0x92, 0xA2, 0xD4, 0xD9, 0xF0, 0x09, 0x26, 0xAF
+ },
+ {
+ 0x6C, 0xDA, 0x20, 0x6C, 0x80, 0xCD, 0xC9, 0xC4,
+ 0x4B, 0xA9, 0x90, 0xE0, 0x32, 0x8C, 0x31, 0x4F,
+ 0x81, 0x9B, 0x14, 0x2D, 0x00, 0x63, 0x04, 0x04,
+ 0xC4, 0x8C, 0x05, 0xDC, 0x76, 0xD1, 0xB0, 0x0C,
+ 0xE4, 0xD7, 0x2F, 0xC6, 0xA4, 0x8E, 0x14, 0x69,
+ 0xDD, 0xEF, 0x60, 0x94, 0x12, 0xC3, 0x64, 0x82,
+ 0x08, 0x54, 0x21, 0x4B, 0x48, 0x69, 0xAF, 0x09,
+ 0x0F, 0x00, 0xD3, 0xC1, 0xBA, 0x44, 0x3E, 0x1B
+ },
+ {
+ 0x7F, 0xFC, 0x8C, 0x26, 0xFB, 0xD6, 0xA0, 0xF7,
+ 0xA6, 0x09, 0xE6, 0xE1, 0x93, 0x9F, 0x6A, 0x9E,
+ 0xDF, 0x1B, 0x0B, 0x06, 0x66, 0x41, 0xFB, 0x76,
+ 0xC4, 0xF9, 0x60, 0x2E, 0xD7, 0x48, 0xD1, 0x16,
+ 0x02, 0x49, 0x6B, 0x35, 0x35, 0x5B, 0x1A, 0xA2,
+ 0x55, 0x85, 0x0A, 0x50, 0x9D, 0x2F, 0x8E, 0xE1,
+ 0x8C, 0x8F, 0x3E, 0x1D, 0x7D, 0xCB, 0xC3, 0x7A,
+ 0x13, 0x65, 0x98, 0xF5, 0x6A, 0x59, 0xED, 0x17
+ },
+ {
+ 0x70, 0xDE, 0x1F, 0x08, 0xDD, 0x4E, 0x09, 0xD5,
+ 0xFC, 0x15, 0x1F, 0x17, 0xFC, 0x99, 0x1A, 0x23,
+ 0xAB, 0xFC, 0x05, 0x10, 0x42, 0x90, 0xD5, 0x04,
+ 0x68, 0x88, 0x2E, 0xFA, 0xF5, 0x82, 0xB6, 0xEC,
+ 0x2F, 0x14, 0xF5, 0x77, 0xC0, 0xD6, 0x8C, 0x3A,
+ 0xD0, 0x66, 0x26, 0x91, 0x6E, 0x3C, 0x86, 0xE6,
+ 0xDA, 0xAB, 0x6C, 0x53, 0xE5, 0x16, 0x3E, 0x82,
+ 0xB6, 0xBD, 0x0C, 0xE4, 0x9F, 0xC0, 0xD8, 0xDF
+ },
+ {
+ 0x4F, 0x81, 0x93, 0x57, 0x56, 0xED, 0x35, 0xEE,
+ 0x20, 0x58, 0xEE, 0x0C, 0x6A, 0x61, 0x10, 0xD6,
+ 0xFA, 0xC5, 0xCB, 0x6A, 0x4F, 0x46, 0xAA, 0x94,
+ 0x11, 0x60, 0x3F, 0x99, 0x96, 0x58, 0x23, 0xB6,
+ 0xDA, 0x48, 0x38, 0x27, 0x6C, 0x5C, 0x06, 0xBC,
+ 0x78, 0x80, 0xE3, 0x76, 0xD9, 0x27, 0x58, 0x36,
+ 0x9E, 0xE7, 0x30, 0x5B, 0xCE, 0xC8, 0xD3, 0xCF,
+ 0xD2, 0x8C, 0xCA, 0xBB, 0x7B, 0x4F, 0x05, 0x79
+ },
+ {
+ 0xAB, 0xCB, 0x61, 0xCB, 0x36, 0x83, 0xD1, 0x8F,
+ 0x27, 0xAD, 0x52, 0x79, 0x08, 0xED, 0x2D, 0x32,
+ 0xA0, 0x42, 0x6C, 0xB7, 0xBB, 0x4B, 0xF1, 0x80,
+ 0x61, 0x90, 0x3A, 0x7D, 0xC4, 0x2E, 0x7E, 0x76,
+ 0xF9, 0x82, 0x38, 0x23, 0x04, 0xD1, 0x8A, 0xF8,
+ 0xC8, 0x0D, 0x91, 0xDD, 0x58, 0xDD, 0x47, 0xAF,
+ 0x76, 0xF8, 0xE2, 0xC3, 0x6E, 0x28, 0xAF, 0x24,
+ 0x76, 0xB4, 0xBC, 0xCF, 0x82, 0xE8, 0x9F, 0xDF
+ },
+ {
+ 0x02, 0xD2, 0x61, 0xAD, 0x56, 0xA5, 0x26, 0x33,
+ 0x1B, 0x64, 0x3D, 0xD2, 0x18, 0x6D, 0xE9, 0xA8,
+ 0x2E, 0x72, 0xA5, 0x82, 0x23, 0xCD, 0x1E, 0x72,
+ 0x36, 0x86, 0xC5, 0x3D, 0x86, 0x9B, 0x83, 0xB9,
+ 0x46, 0x32, 0xB7, 0xB6, 0x47, 0xAB, 0x2A, 0xFC,
+ 0x0D, 0x52, 0x2E, 0x29, 0xDA, 0x3A, 0x56, 0x15,
+ 0xB7, 0x41, 0xD8, 0x28, 0x52, 0xE0, 0xDF, 0x41,
+ 0xB6, 0x60, 0x07, 0xDB, 0xCB, 0xA9, 0x05, 0x43
+ },
+ {
+ 0xC5, 0x83, 0x27, 0x41, 0xFA, 0x30, 0xC5, 0x43,
+ 0x68, 0x23, 0x01, 0x53, 0x83, 0xD2, 0x97, 0xFF,
+ 0x4C, 0x4A, 0x5D, 0x72, 0x76, 0xC3, 0xF9, 0x02,
+ 0x12, 0x20, 0x66, 0xE0, 0x4B, 0xE5, 0x43, 0x1B,
+ 0x1A, 0x85, 0xFA, 0xF7, 0x3B, 0x91, 0x84, 0x34,
+ 0xF9, 0x30, 0x09, 0x63, 0xD1, 0xDE, 0xA9, 0xE8,
+ 0xAC, 0x39, 0x24, 0xEF, 0x49, 0x02, 0x26, 0xED,
+ 0xEE, 0xA5, 0xF7, 0x43, 0xE4, 0x10, 0x66, 0x9F
+ },
+ {
+ 0xCF, 0xAE, 0xAB, 0x26, 0x8C, 0xD0, 0x75, 0xA5,
+ 0xA6, 0xAE, 0xD5, 0x15, 0x02, 0x3A, 0x03, 0x2D,
+ 0x54, 0xF2, 0xF2, 0xFF, 0x73, 0x3C, 0xE0, 0xCB,
+ 0xC7, 0x8D, 0xB5, 0x1D, 0xB4, 0x50, 0x4D, 0x67,
+ 0x59, 0x23, 0xF8, 0x27, 0x46, 0xD6, 0x59, 0x46,
+ 0x06, 0xAD, 0x5D, 0x67, 0x73, 0x4B, 0x11, 0xA6,
+ 0x7C, 0xC6, 0xA4, 0x68, 0xC2, 0x03, 0x2E, 0x43,
+ 0xCA, 0x1A, 0x94, 0xC6, 0x27, 0x3A, 0x98, 0x5E
+ },
+ {
+ 0x86, 0x08, 0x50, 0xF9, 0x2E, 0xB2, 0x68, 0x27,
+ 0x2B, 0x67, 0xD1, 0x33, 0x60, 0x9B, 0xD6, 0x4E,
+ 0x34, 0xF6, 0x1B, 0xF0, 0x3F, 0x4C, 0x17, 0x38,
+ 0x64, 0x5C, 0x17, 0xFE, 0xC8, 0x18, 0x46, 0x5D,
+ 0x7E, 0xCD, 0x2B, 0xE2, 0x90, 0x76, 0x41, 0x13,
+ 0x00, 0x25, 0xFD, 0xA7, 0x94, 0x70, 0xAB, 0x73,
+ 0x16, 0x46, 0xE7, 0xF6, 0x94, 0x40, 0xE8, 0x36,
+ 0x7E, 0xA7, 0x6A, 0xC4, 0xCE, 0xE8, 0xA1, 0xDF
+ },
+ {
+ 0x84, 0xB1, 0x54, 0xED, 0x29, 0xBB, 0xED, 0xEF,
+ 0xA6, 0x48, 0x28, 0x68, 0x39, 0x04, 0x6F, 0x4B,
+ 0x5A, 0xA3, 0x44, 0x30, 0xE2, 0xD6, 0x7F, 0x74,
+ 0x96, 0xE4, 0xC3, 0x9F, 0x2C, 0x7E, 0xA7, 0x89,
+ 0x95, 0xF6, 0x9E, 0x12, 0x92, 0x20, 0x00, 0x16,
+ 0xF1, 0x6A, 0xC3, 0xB3, 0x77, 0x00, 0xE6, 0xC7,
+ 0xE7, 0x86, 0x1A, 0xFC, 0x39, 0x6B, 0x64, 0xA5,
+ 0x9A, 0x1D, 0xBF, 0x47, 0xA5, 0x5C, 0x4B, 0xBC
+ },
+ {
+ 0xAE, 0xEE, 0xC2, 0x60, 0xA5, 0xD8, 0xEF, 0xF5,
+ 0xCC, 0xAB, 0x8B, 0x95, 0xDA, 0x43, 0x5A, 0x63,
+ 0xED, 0x7A, 0x21, 0xEA, 0x7F, 0xC7, 0x55, 0x94,
+ 0x13, 0xFD, 0x61, 0x7E, 0x33, 0x60, 0x9F, 0x8C,
+ 0x29, 0x0E, 0x64, 0xBB, 0xAC, 0xC5, 0x28, 0xF6,
+ 0xC0, 0x80, 0x26, 0x22, 0x88, 0xB0, 0xF0, 0xA3,
+ 0x21, 0x9B, 0xE2, 0x23, 0xC9, 0x91, 0xBE, 0xE9,
+ 0x2E, 0x72, 0x34, 0x95, 0x93, 0xE6, 0x76, 0x38
+ },
+ {
+ 0x8A, 0xD7, 0x8A, 0x9F, 0x26, 0x60, 0x1D, 0x12,
+ 0x7E, 0x8D, 0x2F, 0x2F, 0x97, 0x6E, 0x63, 0xD1,
+ 0x9A, 0x05, 0x4A, 0x17, 0xDC, 0xF5, 0x9E, 0x0F,
+ 0x01, 0x3A, 0xB5, 0x4A, 0x68, 0x87, 0xBB, 0xDF,
+ 0xFD, 0xE7, 0xAA, 0xAE, 0x11, 0x7E, 0x0F, 0xBF,
+ 0x32, 0x71, 0x01, 0x65, 0x95, 0xB9, 0xD9, 0xC7,
+ 0x12, 0xC0, 0x1B, 0x2C, 0x53, 0xE9, 0x65, 0x5A,
+ 0x38, 0x2B, 0xC4, 0x52, 0x2E, 0x61, 0x66, 0x45
+ },
+ {
+ 0x89, 0x34, 0x15, 0x9D, 0xAD, 0xE1, 0xAC, 0x74,
+ 0x14, 0x7D, 0xFA, 0x28, 0x2C, 0x75, 0x95, 0x4F,
+ 0xCE, 0xF4, 0x43, 0xEF, 0x25, 0xF8, 0x0D, 0xFE,
+ 0x9F, 0xB6, 0xEA, 0x63, 0x3B, 0x85, 0x45, 0x11,
+ 0x1D, 0x08, 0xB3, 0x4E, 0xF4, 0x3F, 0xFF, 0x17,
+ 0x02, 0x6C, 0x79, 0x64, 0xF5, 0xDE, 0xAC, 0x6D,
+ 0x2B, 0x3C, 0x29, 0xDA, 0xCF, 0x27, 0x47, 0xF0,
+ 0x22, 0xDF, 0x59, 0x67, 0xDF, 0xDC, 0x1A, 0x0A
+ },
+ {
+ 0xCD, 0x36, 0xDD, 0x0B, 0x24, 0x06, 0x14, 0xCF,
+ 0x2F, 0xA2, 0xB9, 0xE9, 0x59, 0x67, 0x9D, 0xCD,
+ 0xD7, 0x2E, 0xC0, 0xCD, 0x58, 0xA4, 0x3D, 0xA3,
+ 0x79, 0x0A, 0x92, 0xF6, 0xCD, 0xEB, 0x9E, 0x1E,
+ 0x79, 0x5E, 0x47, 0x8A, 0x0A, 0x47, 0xD3, 0x71,
+ 0x10, 0x0D, 0x34, 0x0C, 0x5C, 0xED, 0xCD, 0xBB,
+ 0xC9, 0xE6, 0x8B, 0x3F, 0x46, 0x08, 0x18, 0xE5,
+ 0xBD, 0xFF, 0x7B, 0x4C, 0xDA, 0x4C, 0x27, 0x44
+ },
+ {
+ 0x00, 0xDF, 0x4E, 0x09, 0x9B, 0x80, 0x71, 0x37,
+ 0xA8, 0x59, 0x90, 0xF4, 0x9D, 0x3A, 0x94, 0x31,
+ 0x5E, 0x5A, 0x5F, 0x7F, 0x7A, 0x60, 0x76, 0xB3,
+ 0x03, 0xE9, 0x6B, 0x05, 0x6F, 0xB9, 0x38, 0x00,
+ 0x11, 0x1F, 0x47, 0x96, 0x28, 0xE2, 0xF8, 0xDB,
+ 0x59, 0xAE, 0xB6, 0xAC, 0x70, 0xC3, 0xB6, 0x1F,
+ 0x51, 0xF9, 0xB4, 0x6E, 0x80, 0xFF, 0xDE, 0xAE,
+ 0x25, 0xEB, 0xDD, 0xB4, 0xAF, 0x6C, 0xB4, 0xEE
+ },
+ {
+ 0x2B, 0x9C, 0x95, 0x5E, 0x6C, 0xAE, 0xD4, 0xB7,
+ 0xC9, 0xE2, 0x46, 0xB8, 0x6F, 0x9A, 0x17, 0x26,
+ 0xE8, 0x10, 0xC5, 0x9D, 0x12, 0x6C, 0xEE, 0x66,
+ 0xED, 0x71, 0xBF, 0x01, 0x5B, 0x83, 0x55, 0x8A,
+ 0x4B, 0x6D, 0x84, 0xD1, 0x8D, 0xC3, 0xFF, 0x46,
+ 0x20, 0xC2, 0xFF, 0xB7, 0x22, 0x35, 0x9F, 0xDE,
+ 0xF8, 0x5B, 0xA0, 0xD4, 0xE2, 0xD2, 0x2E, 0xCB,
+ 0xE0, 0xED, 0x78, 0x4F, 0x99, 0xAF, 0xE5, 0x87
+ },
+ {
+ 0x18, 0x1D, 0xF0, 0xA2, 0x61, 0xA2, 0xF7, 0xD2,
+ 0x9E, 0xA5, 0xA1, 0x57, 0x72, 0x71, 0x51, 0x05,
+ 0xD4, 0x50, 0xA4, 0xB6, 0xC2, 0x36, 0xF6, 0x99,
+ 0xF4, 0x62, 0xD6, 0x0C, 0xA7, 0x64, 0x87, 0xFE,
+ 0xED, 0xFC, 0x9F, 0x5E, 0xB9, 0x2D, 0xF8, 0x38,
+ 0xE8, 0xFB, 0x5D, 0xC3, 0x69, 0x4E, 0x84, 0xC5,
+ 0xE0, 0xF4, 0xA1, 0x0B, 0x76, 0x1F, 0x50, 0x67,
+ 0x62, 0xBE, 0x05, 0x2C, 0x74, 0x5A, 0x6E, 0xE8
+ },
+ {
+ 0x21, 0xFB, 0x20, 0x34, 0x58, 0xBF, 0x3A, 0x7E,
+ 0x9A, 0x80, 0x43, 0x9F, 0x9A, 0x90, 0x28, 0x99,
+ 0xCD, 0x5D, 0xE0, 0x13, 0x9D, 0xFD, 0x56, 0xF7,
+ 0x11, 0x0C, 0x9D, 0xEC, 0x84, 0x37, 0xB2, 0x6B,
+ 0xDA, 0x63, 0xDE, 0x2F, 0x56, 0x59, 0x26, 0xD8,
+ 0x5E, 0xDB, 0x1D, 0x6C, 0x68, 0x25, 0x66, 0x97,
+ 0x43, 0xDD, 0x99, 0x92, 0x65, 0x3D, 0x13, 0x97,
+ 0x95, 0x44, 0xD5, 0xDC, 0x82, 0x28, 0xBF, 0xAA
+ },
+ {
+ 0xEF, 0x02, 0x1F, 0x29, 0xC5, 0xFF, 0xB8, 0x30,
+ 0xE6, 0x4B, 0x9A, 0xA9, 0x05, 0x8D, 0xD6, 0x60,
+ 0xFD, 0x2F, 0xCB, 0x81, 0xC4, 0x97, 0xA7, 0xE6,
+ 0x98, 0xBC, 0xFB, 0xF5, 0x9D, 0xE5, 0xAD, 0x4A,
+ 0x86, 0xFF, 0x93, 0xC1, 0x0A, 0x4B, 0x9D, 0x1A,
+ 0xE5, 0x77, 0x47, 0x25, 0xF9, 0x07, 0x2D, 0xCD,
+ 0xE9, 0xE1, 0xF1, 0x99, 0xBA, 0xB9, 0x1F, 0x8B,
+ 0xFF, 0x92, 0x18, 0x64, 0xAA, 0x50, 0x2E, 0xEE
+ },
+ {
+ 0xB3, 0xCF, 0xDA, 0x40, 0x52, 0x6B, 0x7F, 0x1D,
+ 0x37, 0x56, 0x9B, 0xDF, 0xCD, 0xF9, 0x11, 0xE5,
+ 0xA6, 0xEF, 0xE6, 0xB2, 0xEC, 0x90, 0xA0, 0x45,
+ 0x4C, 0x47, 0xB2, 0xC0, 0x46, 0xBF, 0x13, 0x0F,
+ 0xC3, 0xB3, 0x52, 0xB3, 0x4D, 0xF4, 0x81, 0x3D,
+ 0x48, 0xD3, 0x3A, 0xB8, 0xE2, 0x69, 0xB6, 0x9B,
+ 0x07, 0x56, 0x76, 0xCB, 0x6D, 0x00, 0xA8, 0xDC,
+ 0xF9, 0xE1, 0xF9, 0x67, 0xEC, 0x19, 0x1B, 0x2C
+ },
+ {
+ 0xB4, 0xC6, 0xC3, 0xB2, 0x67, 0x07, 0x1E, 0xEF,
+ 0xB9, 0xC8, 0xC7, 0x2E, 0x0E, 0x2B, 0x94, 0x12,
+ 0x93, 0x64, 0x1F, 0x86, 0x73, 0xCB, 0x70, 0xC1,
+ 0xCC, 0x26, 0xAD, 0x1E, 0x73, 0xCF, 0x14, 0x17,
+ 0x55, 0x86, 0x0A, 0xD1, 0x9B, 0x34, 0xC2, 0xF3,
+ 0x4E, 0xD3, 0x5B, 0xB5, 0x2E, 0xC4, 0x50, 0x7C,
+ 0xC1, 0xFE, 0x59, 0x04, 0x77, 0x43, 0xA5, 0xF0,
+ 0xC6, 0xFE, 0xBD, 0xE6, 0x25, 0xE2, 0x60, 0x91
+ },
+ {
+ 0x57, 0xA3, 0x4F, 0x2B, 0xCC, 0xA6, 0x0D, 0x4B,
+ 0x85, 0x10, 0x3B, 0x83, 0x0C, 0x9D, 0x79, 0x52,
+ 0xA4, 0x16, 0xBE, 0x52, 0x63, 0xAE, 0x42, 0x9C,
+ 0x9E, 0x5E, 0x53, 0xFE, 0x85, 0x90, 0xA8, 0xF7,
+ 0x8E, 0xC6, 0x5A, 0x51, 0x10, 0x9E, 0xA8, 0x5D,
+ 0xCD, 0xF7, 0xB6, 0x22, 0x3F, 0x9F, 0x2B, 0x34,
+ 0x05, 0x39, 0xFA, 0xD8, 0x19, 0x23, 0xDB, 0xF8,
+ 0xED, 0xAB, 0xF9, 0x51, 0x29, 0xE4, 0xDF, 0xF6
+ },
+ {
+ 0x9C, 0xF4, 0x66, 0x62, 0xFC, 0xD6, 0x1A, 0x23,
+ 0x22, 0x77, 0xB6, 0x85, 0x66, 0x3B, 0x8B, 0x5D,
+ 0xA8, 0x32, 0xDF, 0xD9, 0xA3, 0xB8, 0xCC, 0xFE,
+ 0xEC, 0x99, 0x3E, 0xC6, 0xAC, 0x41, 0x5A, 0xD0,
+ 0x7E, 0x04, 0x8A, 0xDF, 0xE4, 0x14, 0xDF, 0x27,
+ 0x27, 0x70, 0xDB, 0xA8, 0x67, 0xDA, 0x5C, 0x12,
+ 0x24, 0xC6, 0xFD, 0x0A, 0xA0, 0xC2, 0x18, 0x7D,
+ 0x42, 0x6A, 0xC6, 0x47, 0xE9, 0x88, 0x73, 0x61
+ },
+ {
+ 0x5C, 0xE1, 0x04, 0x2A, 0xB4, 0xD5, 0x42, 0xC2,
+ 0xF9, 0xEE, 0x9D, 0x17, 0x26, 0x2A, 0xF8, 0x16,
+ 0x40, 0x98, 0x93, 0x5B, 0xEF, 0x17, 0x3D, 0x0E,
+ 0x18, 0x48, 0x9B, 0x04, 0x84, 0x17, 0x46, 0xCD,
+ 0x2F, 0x2D, 0xF8, 0x66, 0xBD, 0x7D, 0xA6, 0xE5,
+ 0xEF, 0x90, 0x24, 0xC6, 0x48, 0x02, 0x3E, 0xC7,
+ 0x23, 0xAB, 0x9C, 0x62, 0xFD, 0x80, 0x28, 0x57,
+ 0x39, 0xD8, 0x4F, 0x15, 0xD2, 0xAB, 0x51, 0x5A
+ },
+ {
+ 0x84, 0x88, 0x39, 0x6B, 0xD4, 0xA8, 0x72, 0x9B,
+ 0x7A, 0x47, 0x31, 0x78, 0xF2, 0x32, 0xDA, 0xDF,
+ 0x3F, 0x0F, 0x8E, 0x22, 0x67, 0x8B, 0xA5, 0xA4,
+ 0x3E, 0x04, 0x1E, 0x72, 0xDA, 0x1E, 0x2C, 0xF8,
+ 0x21, 0x94, 0xC3, 0x07, 0x20, 0x7A, 0x54, 0xCB,
+ 0x81, 0x56, 0x29, 0x33, 0x39, 0xEA, 0xEC, 0x69,
+ 0x3F, 0xF6, 0x6B, 0xFC, 0xD5, 0xEF, 0xC6, 0x5E,
+ 0x95, 0xE4, 0xEC, 0xAF, 0x54, 0x53, 0x0A, 0xBD
+ },
+ {
+ 0xF5, 0x98, 0xDA, 0x90, 0x1C, 0x38, 0x35, 0xBC,
+ 0xA5, 0x60, 0x77, 0x90, 0x37, 0xDF, 0xDE, 0x9F,
+ 0x0C, 0x51, 0xDC, 0x61, 0xC0, 0xB7, 0x60, 0xFC,
+ 0x15, 0x22, 0xD7, 0xB4, 0x70, 0xEE, 0x63, 0xF5,
+ 0xBD, 0xC6, 0x49, 0x84, 0x76, 0xE8, 0x60, 0x49,
+ 0xAD, 0x86, 0xE4, 0xE2, 0x1A, 0xF2, 0x85, 0x4A,
+ 0x98, 0x4C, 0xC9, 0x05, 0x42, 0x7D, 0x2F, 0x17,
+ 0xF6, 0x6B, 0x1F, 0x41, 0xC3, 0xDA, 0x6F, 0x61
+ },
+ {
+ 0x5F, 0x93, 0x26, 0x97, 0x98, 0xCF, 0x02, 0x13,
+ 0x21, 0x07, 0x33, 0x76, 0x60, 0xA8, 0xD7, 0xA1,
+ 0x77, 0x35, 0x4C, 0x02, 0x12, 0xEB, 0x93, 0xE5,
+ 0x55, 0xE7, 0xC3, 0x7A, 0x08, 0xAE, 0xF3, 0xD8,
+ 0xDC, 0xE0, 0x12, 0x17, 0x01, 0x1C, 0xD9, 0x65,
+ 0xC0, 0x4D, 0xD2, 0xC1, 0x05, 0xF2, 0xE2, 0xB6,
+ 0xCA, 0xE5, 0xE4, 0xE6, 0xBC, 0xAF, 0x09, 0xDF,
+ 0xBE, 0xE3, 0xE0, 0xA6, 0xA6, 0x35, 0x7C, 0x37
+ },
+ {
+ 0x0E, 0xCF, 0x58, 0x1D, 0x47, 0xBA, 0xC9, 0x23,
+ 0x09, 0x86, 0xFA, 0xAB, 0xD7, 0x0C, 0x2F, 0x5B,
+ 0x80, 0xE9, 0x10, 0x66, 0xF0, 0xEC, 0x55, 0xA8,
+ 0x42, 0x93, 0x78, 0x82, 0x28, 0x6D, 0x2C, 0xA0,
+ 0x07, 0xBB, 0x4E, 0x97, 0x3B, 0x0B, 0x09, 0x1D,
+ 0x52, 0x16, 0x7F, 0xF7, 0xC4, 0x00, 0x9C, 0x7A,
+ 0xB4, 0xAD, 0x38, 0xFF, 0xF1, 0xDC, 0xEA, 0xCD,
+ 0xB7, 0xBE, 0x81, 0xEF, 0x4A, 0x45, 0x29, 0x52
+ },
+ {
+ 0x5A, 0xEC, 0xA8, 0xAB, 0xE1, 0x52, 0x85, 0x82,
+ 0xB2, 0xA3, 0x07, 0xB4, 0x00, 0x95, 0x85, 0x49,
+ 0x8A, 0x3D, 0x46, 0x7C, 0xA6, 0x10, 0x1C, 0xB0,
+ 0xC5, 0x12, 0x6F, 0x99, 0x76, 0x05, 0x6E, 0x9F,
+ 0xFC, 0x12, 0x3C, 0xC2, 0x0C, 0x30, 0x2B, 0x2A,
+ 0x73, 0x7F, 0x49, 0x2C, 0x75, 0xD2, 0x1F, 0x01,
+ 0x51, 0x2C, 0x90, 0xCA, 0x05, 0x41, 0xDF, 0xA5,
+ 0x6E, 0x95, 0x0A, 0x32, 0x1D, 0xCB, 0x28, 0xD8
+ },
+ {
+ 0x73, 0x2F, 0xBF, 0x8F, 0x1C, 0xB2, 0xB8, 0x32,
+ 0x92, 0x63, 0xED, 0xE2, 0x78, 0x58, 0xFE, 0x46,
+ 0xF8, 0xD3, 0x35, 0x4D, 0x37, 0x6B, 0xCD, 0xA0,
+ 0x54, 0x8E, 0x7C, 0xE1, 0xFA, 0x9D, 0xD1, 0x1F,
+ 0x85, 0xEB, 0x66, 0x1F, 0xE9, 0x50, 0xB5, 0x43,
+ 0xAA, 0x63, 0x5C, 0xA4, 0xD3, 0xF0, 0x4E, 0xDE,
+ 0x5B, 0x32, 0xD6, 0xB6, 0x56, 0xE5, 0xCE, 0x1C,
+ 0x44, 0xD3, 0x5C, 0x4A, 0x6C, 0x56, 0xCF, 0xF8
+ },
+ {
+ 0xD5, 0xE9, 0x38, 0x73, 0x5D, 0x63, 0x78, 0x8C,
+ 0x80, 0x10, 0x0A, 0xEF, 0xD1, 0x86, 0x48, 0xD1,
+ 0x8C, 0xF2, 0x72, 0xF6, 0x9F, 0x20, 0xFF, 0x24,
+ 0xCF, 0xE2, 0x89, 0x5C, 0x08, 0x8A, 0xD0, 0x8B,
+ 0x01, 0x04, 0xDA, 0x16, 0x72, 0xA4, 0xEB, 0x26,
+ 0xFC, 0x52, 0x54, 0x5C, 0xC7, 0xD7, 0xA0, 0x1B,
+ 0x26, 0x6C, 0xF5, 0x46, 0xC4, 0x03, 0xC4, 0x5B,
+ 0xD1, 0x29, 0xEB, 0x41, 0xBD, 0xD9, 0x20, 0x0B
+ },
+ {
+ 0x65, 0xA2, 0x45, 0xB4, 0x93, 0x52, 0xEE, 0x29,
+ 0x7D, 0x91, 0xAF, 0x8C, 0x8B, 0xE0, 0x05, 0x28,
+ 0xAC, 0x6E, 0x04, 0x6D, 0xD8, 0x3A, 0xC7, 0xBD,
+ 0x46, 0x5A, 0x98, 0x81, 0x6D, 0xD6, 0x8F, 0x3E,
+ 0x00, 0xE1, 0xAE, 0x8F, 0x89, 0x53, 0x27, 0xA7,
+ 0xE9, 0xA8, 0xC9, 0x32, 0x65, 0x98, 0x37, 0x9A,
+ 0x29, 0xC9, 0xFC, 0x91, 0xEC, 0x0C, 0x6E, 0xEF,
+ 0x08, 0xF3, 0xE2, 0xB2, 0x16, 0xC1, 0x10, 0x08
+ },
+ {
+ 0xC9, 0x56, 0x54, 0xB6, 0x30, 0x19, 0x13, 0x0A,
+ 0xB4, 0x5D, 0xD0, 0xFB, 0x49, 0x41, 0xB9, 0x8A,
+ 0xEB, 0x3A, 0xF2, 0xA1, 0x23, 0x91, 0x3E, 0xCA,
+ 0x2C, 0xE9, 0x9B, 0x3E, 0x97, 0x41, 0x0A, 0x7B,
+ 0xF8, 0x66, 0x1C, 0xC7, 0xFB, 0xAA, 0x2B, 0xC1,
+ 0xCF, 0x2B, 0x13, 0x11, 0x3B, 0x1E, 0xD4, 0x0A,
+ 0x01, 0x18, 0xB8, 0x8E, 0x5F, 0xFF, 0xC3, 0x54,
+ 0x27, 0x59, 0xEA, 0x00, 0x7E, 0xD4, 0xC5, 0x8D
+ },
+ {
+ 0x1E, 0xB2, 0x62, 0xF3, 0x8F, 0xA4, 0x94, 0x43,
+ 0x1F, 0x01, 0x7D, 0xAD, 0x44, 0xC0, 0xDF, 0xB6,
+ 0x93, 0x24, 0xAC, 0x03, 0x2F, 0x04, 0xB6, 0x57,
+ 0xFC, 0x91, 0xA8, 0x86, 0x47, 0xBB, 0x74, 0x76,
+ 0x0F, 0x24, 0xE7, 0xC9, 0x56, 0x51, 0x4F, 0x0C,
+ 0xF0, 0x02, 0x99, 0x0B, 0x18, 0x2C, 0x16, 0x42,
+ 0xB9, 0xB2, 0x42, 0x6E, 0x96, 0xA6, 0x11, 0x87,
+ 0xE4, 0xE0, 0x12, 0xF0, 0x0E, 0x21, 0x7D, 0x84
+ },
+ {
+ 0x3B, 0x95, 0x5A, 0xEE, 0xBF, 0xA5, 0x15, 0x1A,
+ 0xC1, 0xAB, 0x8E, 0x3F, 0x5C, 0xC1, 0xE3, 0x76,
+ 0x70, 0x84, 0xC8, 0x42, 0xA5, 0x75, 0xD3, 0x62,
+ 0x69, 0x83, 0x6E, 0x97, 0x35, 0x3D, 0x41, 0x62,
+ 0x2B, 0x73, 0x1D, 0xDD, 0xCD, 0x5F, 0x26, 0x95,
+ 0x50, 0xA3, 0xA5, 0xB8, 0x7B, 0xE1, 0xE9, 0x03,
+ 0x26, 0x34, 0x0B, 0x6E, 0x0E, 0x62, 0x55, 0x58,
+ 0x15, 0xD9, 0x60, 0x05, 0x97, 0xAC, 0x6E, 0xF9
+ },
+ {
+ 0x68, 0x28, 0x9F, 0x66, 0x05, 0x47, 0x3B, 0xA0,
+ 0xE4, 0xF2, 0x41, 0xBA, 0xF7, 0x47, 0x7A, 0x98,
+ 0x85, 0x42, 0x6A, 0x85, 0x8F, 0x19, 0xEF, 0x2A,
+ 0x18, 0xB0, 0xD4, 0x0E, 0xF8, 0xE4, 0x12, 0x82,
+ 0xED, 0x55, 0x26, 0xB5, 0x19, 0x79, 0x9E, 0x27,
+ 0x0F, 0x13, 0x88, 0x13, 0x27, 0x91, 0x82, 0x78,
+ 0x75, 0x57, 0x11, 0x07, 0x1D, 0x85, 0x11, 0xFE,
+ 0x96, 0x3E, 0x3B, 0x56, 0x06, 0xAA, 0x37, 0x16
+ },
+ {
+ 0x80, 0xA3, 0x37, 0x87, 0x54, 0x26, 0x12, 0xC3,
+ 0x8F, 0x6B, 0xCD, 0x7C, 0xD8, 0x6C, 0xAB, 0x46,
+ 0x02, 0x27, 0x50, 0x9B, 0x1C, 0xBA, 0xD5, 0xEC,
+ 0x40, 0x8A, 0x91, 0x41, 0x3D, 0x51, 0x15, 0x5A,
+ 0x04, 0x76, 0xDA, 0xDB, 0xF3, 0xA2, 0x51, 0x8E,
+ 0x4A, 0x6E, 0x77, 0xCC, 0x34, 0x66, 0x22, 0xE3,
+ 0x47, 0xA4, 0x69, 0xBF, 0x8B, 0xAA, 0x5F, 0x04,
+ 0xEB, 0x2D, 0x98, 0x70, 0x53, 0x55, 0xD0, 0x63
+ },
+ {
+ 0x34, 0x62, 0x9B, 0xC6, 0xD8, 0x31, 0x39, 0x1C,
+ 0x4C, 0xDF, 0x8A, 0xF1, 0xB4, 0xB7, 0xB6, 0xB8,
+ 0xE8, 0xEE, 0x17, 0xCF, 0x98, 0xC7, 0x0E, 0x5D,
+ 0xD5, 0x86, 0xCD, 0x99, 0xF1, 0x4B, 0x11, 0xDF,
+ 0x94, 0x51, 0x66, 0x23, 0x6A, 0x95, 0x71, 0xE6,
+ 0xD5, 0x91, 0xBB, 0x83, 0xEE, 0x4D, 0x16, 0x4D,
+ 0x46, 0xF6, 0xB9, 0xD8, 0xEF, 0x86, 0xFF, 0x86,
+ 0x5A, 0x81, 0xBF, 0xB9, 0x1B, 0x00, 0x42, 0x4B
+ },
+ {
+ 0x8B, 0x7C, 0xC3, 0x39, 0x16, 0x38, 0x63, 0xBB,
+ 0x43, 0x83, 0xE5, 0x42, 0xB0, 0xEF, 0x0E, 0x7C,
+ 0xF3, 0x6B, 0x84, 0xAD, 0x93, 0x2C, 0xDF, 0x5A,
+ 0x80, 0x41, 0x9E, 0xC9, 0xAD, 0x69, 0x2E, 0x7A,
+ 0x7E, 0x78, 0x4D, 0x2C, 0x7C, 0xB3, 0x79, 0x6A,
+ 0x18, 0xB8, 0xF8, 0x00, 0x03, 0x5F, 0x3A, 0xA0,
+ 0x6C, 0x82, 0x41, 0x00, 0x61, 0x11, 0x20, 0xA7,
+ 0xBD, 0xEB, 0x35, 0x61, 0x8C, 0xCB, 0x81, 0xB7
+ },
+ {
+ 0x4F, 0x08, 0x4E, 0x49, 0x39, 0xDD, 0x5A, 0x7F,
+ 0x5A, 0x65, 0x8F, 0xAD, 0x58, 0xA1, 0x8A, 0x15,
+ 0xC2, 0x5C, 0x32, 0xEC, 0x1C, 0x7F, 0xD5, 0xC5,
+ 0xC6, 0xC3, 0xE8, 0x92, 0xB3, 0x97, 0x1A, 0xEA,
+ 0xAC, 0x30, 0x83, 0x04, 0xEF, 0x17, 0xB1, 0xC4,
+ 0x72, 0x39, 0xEA, 0x4B, 0xB3, 0x98, 0xB3, 0xFD,
+ 0x6D, 0x45, 0x28, 0xD8, 0xDE, 0x8E, 0x76, 0x8A,
+ 0xE0, 0xF1, 0xA5, 0xA5, 0xC6, 0xB5, 0xC2, 0x97
+ },
+ {
+ 0x48, 0xF4, 0x07, 0xA1, 0xAF, 0x5B, 0x80, 0x09,
+ 0xB2, 0x05, 0x17, 0x42, 0xE8, 0xCF, 0x5C, 0xD5,
+ 0x65, 0x66, 0x69, 0xE7, 0xD7, 0x22, 0xEE, 0x8E,
+ 0x7B, 0xD2, 0x02, 0x06, 0x08, 0x49, 0x44, 0x21,
+ 0x68, 0xD8, 0xFA, 0xCC, 0x11, 0x7C, 0x01, 0x2B,
+ 0xFB, 0x7B, 0xF4, 0x49, 0xD9, 0x9B, 0xEF, 0xFF,
+ 0x6A, 0x34, 0xAE, 0xA2, 0x03, 0xF1, 0xD8, 0xD3,
+ 0x52, 0x72, 0x2B, 0xE5, 0x01, 0x4E, 0xC8, 0x18
+ },
+ {
+ 0xA6, 0xAA, 0x82, 0xCD, 0x1E, 0x42, 0x6F, 0x9A,
+ 0x73, 0xBF, 0xA3, 0x9A, 0x29, 0x03, 0x78, 0x76,
+ 0x11, 0x46, 0x55, 0xB8, 0xC2, 0x2D, 0x6D, 0x3F,
+ 0xF8, 0xB6, 0x38, 0xAE, 0x7D, 0xEA, 0x6B, 0x17,
+ 0x84, 0x3E, 0x09, 0xE5, 0x2E, 0xB6, 0x6F, 0xA1,
+ 0xE4, 0x75, 0xE4, 0xA8, 0xA3, 0xDE, 0x42, 0x9B,
+ 0x7D, 0x0F, 0x4A, 0x77, 0x6F, 0xCB, 0x8B, 0xDC,
+ 0x9B, 0x9F, 0xED, 0xE7, 0xD5, 0x2E, 0x81, 0x5F
+ },
+ {
+ 0x58, 0x17, 0x02, 0x7D, 0x6B, 0xDD, 0x00, 0xC5,
+ 0xDD, 0x10, 0xAC, 0x59, 0x3C, 0xD5, 0x60, 0x37,
+ 0x22, 0x70, 0x77, 0x5A, 0x18, 0x52, 0x6D, 0x7E,
+ 0x6F, 0x13, 0x87, 0x2A, 0x2E, 0x20, 0xEA, 0xB6,
+ 0x64, 0x62, 0x5B, 0xE7, 0x16, 0x8A, 0xC4, 0xBD,
+ 0x7C, 0x9E, 0x0C, 0xE7, 0xFC, 0x40, 0x99, 0xE0,
+ 0xF4, 0x84, 0x42, 0xE2, 0xC7, 0x67, 0x19, 0x1C,
+ 0x6E, 0x12, 0x84, 0xE9, 0xB2, 0xCC, 0xEA, 0x8C
+ },
+ {
+ 0x08, 0xE4, 0x10, 0x28, 0x34, 0x0A, 0x45, 0xC7,
+ 0x4E, 0x40, 0x52, 0xB3, 0xA8, 0xD6, 0x38, 0x9E,
+ 0x22, 0xE0, 0x43, 0xA1, 0xAD, 0xAB, 0x5E, 0x28,
+ 0xD9, 0x76, 0x19, 0x45, 0x0D, 0x72, 0x34, 0x69,
+ 0xB6, 0x20, 0xCA, 0xA5, 0x19, 0xB8, 0x1C, 0x14,
+ 0x52, 0x38, 0x54, 0xF6, 0x19, 0xFD, 0x30, 0x27,
+ 0xE3, 0x84, 0x7B, 0xD0, 0x32, 0x76, 0xE6, 0x06,
+ 0x04, 0xA8, 0x0D, 0xDB, 0x4D, 0xE8, 0x76, 0xD6
+ },
+ {
+ 0x13, 0x0B, 0x84, 0x20, 0x53, 0x7E, 0xB0, 0x7D,
+ 0x72, 0xAB, 0xDA, 0x07, 0xC8, 0x5A, 0xCB, 0xD8,
+ 0xB9, 0xA4, 0x4F, 0x16, 0x32, 0x1D, 0xD0, 0x42,
+ 0x21, 0x45, 0xF8, 0x09, 0x67, 0x3D, 0x30, 0xF2,
+ 0xB5, 0x32, 0x13, 0x26, 0xE2, 0xBF, 0xF3, 0x17,
+ 0xEF, 0x3F, 0xEF, 0x98, 0x3C, 0x51, 0xC4, 0xF8,
+ 0xAB, 0x24, 0xA3, 0x25, 0xD2, 0x98, 0xE3, 0x4A,
+ 0xFC, 0xE5, 0x69, 0xA8, 0x25, 0x55, 0x77, 0x4C
+ },
+ {
+ 0xAC, 0x49, 0xB8, 0x44, 0xAF, 0xAA, 0x01, 0x2E,
+ 0x31, 0xC4, 0x74, 0xCA, 0x26, 0x36, 0x48, 0x84,
+ 0x4F, 0xD2, 0xF6, 0x30, 0x79, 0x92, 0xC2, 0xF7,
+ 0x52, 0xAC, 0xA0, 0x2C, 0x38, 0x28, 0x96, 0x51,
+ 0x75, 0x79, 0x4D, 0xEE, 0xE2, 0xD2, 0xEE, 0x95,
+ 0xC6, 0x1C, 0xD2, 0x84, 0xF6, 0xB5, 0xA2, 0xD7,
+ 0x5E, 0x2E, 0xF2, 0xB2, 0x9E, 0xE8, 0x14, 0x9E,
+ 0x77, 0xFB, 0x81, 0x44, 0x7B, 0x2F, 0xD0, 0x4B
+ },
+ {
+ 0xB9, 0xD7, 0xCA, 0x81, 0xCC, 0x60, 0xBB, 0x95,
+ 0x78, 0xE4, 0x40, 0x24, 0xE5, 0xA0, 0xA0, 0xBE,
+ 0x80, 0xF2, 0x73, 0x36, 0xA6, 0xA9, 0xF4, 0xE5,
+ 0x3D, 0xF3, 0x99, 0x9C, 0xB1, 0x91, 0x28, 0x0B,
+ 0x09, 0x0E, 0x2A, 0xC2, 0xD2, 0x9C, 0x5B, 0xAA,
+ 0xD9, 0xD7, 0x14, 0x15, 0xBD, 0xC1, 0x29, 0xE6,
+ 0x9A, 0xA2, 0x66, 0x7A, 0xF6, 0xA7, 0xFD, 0x5E,
+ 0x18, 0x9F, 0xCC, 0xDC, 0xEE, 0x81, 0x73, 0x40
+ },
+ {
+ 0xA7, 0x55, 0xE1, 0x13, 0x38, 0x65, 0x72, 0xC7,
+ 0x5C, 0xED, 0x61, 0xD7, 0x19, 0x70, 0x60, 0x70,
+ 0xB9, 0x14, 0x60, 0x48, 0xE4, 0x2A, 0x9F, 0x8C,
+ 0xD3, 0x56, 0x67, 0xA0, 0x88, 0xB4, 0x2F, 0x08,
+ 0x80, 0x8A, 0xBD, 0xF7, 0x7E, 0x61, 0x8A, 0xBD,
+ 0x95, 0x9A, 0xFC, 0x75, 0x73, 0x79, 0xCA, 0x2C,
+ 0x00, 0xBC, 0xC1, 0xA4, 0x83, 0x90, 0xFA, 0x2B,
+ 0xFF, 0x61, 0x8B, 0x1E, 0x00, 0x78, 0xA6, 0x13
+ },
+ {
+ 0xA7, 0x3C, 0x7D, 0xEB, 0xED, 0x32, 0x6F, 0x1C,
+ 0x0D, 0xB0, 0x79, 0x5E, 0xE7, 0xD6, 0xE3, 0x94,
+ 0x68, 0x94, 0xB8, 0x26, 0xB1, 0xF8, 0x10, 0x1C,
+ 0x56, 0xC8, 0x23, 0xBA, 0x17, 0x16, 0x83, 0x12,
+ 0xE7, 0xF5, 0x3F, 0xC7, 0xDB, 0xE5, 0x2C, 0x3E,
+ 0x11, 0xE6, 0x98, 0x52, 0xC4, 0x04, 0x85, 0xE2,
+ 0xEF, 0x18, 0x24, 0x77, 0x86, 0x2E, 0xA6, 0xA3,
+ 0x4E, 0xC1, 0x36, 0xE2, 0xDF, 0xEE, 0xA6, 0xF4
+ },
+ {
+ 0x6C, 0xB8, 0xF9, 0xD5, 0x2C, 0x56, 0xD8, 0x2C,
+ 0xAC, 0x28, 0xF3, 0x9E, 0xA1, 0x59, 0x3E, 0x8B,
+ 0xB2, 0x50, 0x62, 0x93, 0xAC, 0x0D, 0x68, 0x37,
+ 0x6A, 0x17, 0x09, 0xB6, 0x2A, 0x46, 0xDF, 0x14,
+ 0xA4, 0xAE, 0x64, 0xB2, 0xD8, 0xFA, 0xB7, 0x67,
+ 0x33, 0xA1, 0xCE, 0xD2, 0xD5, 0x48, 0xE3, 0xF3,
+ 0xC6, 0xFC, 0xB4, 0x9D, 0x40, 0xC3, 0xD5, 0x80,
+ 0x8E, 0x44, 0x9C, 0xD8, 0x3D, 0x1C, 0x2A, 0xA2
+ },
+ {
+ 0x68, 0x3F, 0xA2, 0xB2, 0x36, 0x9A, 0x10, 0x16,
+ 0x2C, 0x1C, 0x1C, 0x7B, 0x24, 0xBC, 0x97, 0x0E,
+ 0xE6, 0x7D, 0xA2, 0x20, 0x56, 0x4F, 0x32, 0x20,
+ 0x3F, 0x62, 0x56, 0x96, 0xC0, 0x35, 0x2A, 0x0B,
+ 0x9A, 0xD9, 0x66, 0x24, 0x36, 0x2D, 0x95, 0x2D,
+ 0x84, 0x46, 0x3C, 0x11, 0x06, 0xA2, 0xDB, 0xA7,
+ 0xA0, 0x92, 0x59, 0x98, 0x84, 0xB3, 0x5A, 0x0B,
+ 0x89, 0xC8, 0xF1, 0xB6, 0xA9, 0xB5, 0xA6, 0x1E
+ },
+ {
+ 0xAA, 0xD9, 0xAD, 0x44, 0x61, 0x01, 0x18, 0xB7,
+ 0x7D, 0x50, 0x8A, 0xEB, 0x1B, 0xBC, 0xD1, 0xC1,
+ 0xB7, 0xD0, 0x17, 0x13, 0x97, 0xFB, 0x51, 0x0A,
+ 0x40, 0x1B, 0xBC, 0x0E, 0xC3, 0x46, 0x23, 0x67,
+ 0x0D, 0x86, 0xA2, 0xDC, 0x3C, 0x8F, 0x3A, 0xB5,
+ 0xA2, 0x04, 0x4D, 0xF7, 0x30, 0x25, 0x67, 0x27,
+ 0x54, 0x5F, 0x08, 0x60, 0xCE, 0x21, 0xA1, 0xEA,
+ 0xC7, 0x17, 0xDF, 0xC4, 0x8F, 0x5D, 0x22, 0x8E
+ },
+ {
+ 0xC4, 0x25, 0x78, 0xDE, 0x23, 0xB4, 0xC9, 0x87,
+ 0xD5, 0xE1, 0xAC, 0x4D, 0x68, 0x9E, 0xD5, 0xDE,
+ 0x4B, 0x04, 0x17, 0xF9, 0x70, 0x4B, 0xC6, 0xBC,
+ 0xE9, 0x69, 0xFA, 0x13, 0x47, 0x15, 0x85, 0xD6,
+ 0x2C, 0x2C, 0xB1, 0x21, 0x2A, 0x94, 0x4F, 0x39,
+ 0x7F, 0xC9, 0xCA, 0x2C, 0x37, 0x47, 0xC3, 0xBE,
+ 0xB6, 0x94, 0xEC, 0x4C, 0x5B, 0xE6, 0x88, 0x28,
+ 0xDD, 0xA5, 0x3E, 0xF4, 0x3F, 0xAE, 0xC6, 0xC0
+ },
+ {
+ 0x47, 0x0F, 0x00, 0x84, 0x1E, 0xE8, 0x24, 0x4E,
+ 0x63, 0xED, 0x2C, 0x7E, 0xA3, 0x0E, 0x2E, 0x41,
+ 0x98, 0x97, 0xC1, 0x97, 0x46, 0x2E, 0xCC, 0xCE,
+ 0xCF, 0x71, 0x3B, 0x42, 0xA5, 0x06, 0x5F, 0xFF,
+ 0x59, 0x14, 0xBC, 0x9B, 0x79, 0xAF, 0xFE, 0x8F,
+ 0x6B, 0x65, 0x78, 0x75, 0xE7, 0x89, 0xAE, 0x21,
+ 0x3B, 0xD9, 0x14, 0xCD, 0x35, 0xBD, 0x17, 0x4D,
+ 0x46, 0xE9, 0xD1, 0x8B, 0xD8, 0x43, 0x77, 0x3D
+ },
+ {
+ 0x34, 0xFC, 0x42, 0x13, 0x73, 0x0F, 0x47, 0xA5,
+ 0xE9, 0xA3, 0x58, 0x0F, 0x64, 0x3E, 0x12, 0x94,
+ 0x5C, 0xFC, 0xB3, 0x1B, 0xF2, 0x06, 0xF6, 0xAD,
+ 0x45, 0x0C, 0xE5, 0x28, 0xDA, 0x3F, 0xA4, 0x32,
+ 0xE0, 0x05, 0xD6, 0xB0, 0xEC, 0xCE, 0x10, 0xDC,
+ 0xA7, 0xC5, 0x99, 0x5F, 0x6A, 0xAC, 0xC5, 0x15,
+ 0x0E, 0x1B, 0x00, 0x9E, 0x19, 0x75, 0x1E, 0x83,
+ 0x09, 0xF8, 0x85, 0x95, 0x31, 0x84, 0x43, 0x74
+ },
+ {
+ 0xFB, 0x3C, 0x1F, 0x0F, 0x56, 0xA5, 0x6F, 0x8E,
+ 0x31, 0x6F, 0xDF, 0x5D, 0x85, 0x3C, 0x8C, 0x87,
+ 0x2C, 0x39, 0x63, 0x5D, 0x08, 0x36, 0x34, 0xC3,
+ 0x90, 0x4F, 0xC3, 0xAC, 0x07, 0xD1, 0xB5, 0x78,
+ 0xE8, 0x5F, 0xF0, 0xE4, 0x80, 0xE9, 0x2D, 0x44,
+ 0xAD, 0xE3, 0x3B, 0x62, 0xE8, 0x93, 0xEE, 0x32,
+ 0x34, 0x3E, 0x79, 0xDD, 0xF6, 0xEF, 0x29, 0x2E,
+ 0x89, 0xB5, 0x82, 0xD3, 0x12, 0x50, 0x23, 0x14
+ },
+ {
+ 0xC7, 0xC9, 0x7F, 0xC6, 0x5D, 0xD2, 0xB9, 0xE3,
+ 0xD3, 0xD6, 0x07, 0xD3, 0x15, 0x98, 0xD3, 0xF8,
+ 0x42, 0x61, 0xE9, 0x91, 0x92, 0x51, 0xE9, 0xC8,
+ 0xE5, 0x7B, 0xB5, 0xF8, 0x29, 0x37, 0x7D, 0x5F,
+ 0x73, 0xEA, 0xBB, 0xED, 0x55, 0xC6, 0xC3, 0x81,
+ 0x18, 0x0F, 0x29, 0xAD, 0x02, 0xE5, 0xBE, 0x79,
+ 0x7F, 0xFE, 0xC7, 0xE5, 0x7B, 0xDE, 0xCB, 0xC5,
+ 0x0A, 0xD3, 0xD0, 0x62, 0xF0, 0x99, 0x3A, 0xB0
+ },
+ {
+ 0xA5, 0x7A, 0x49, 0xCD, 0xBE, 0x67, 0xAE, 0x7D,
+ 0x9F, 0x79, 0x7B, 0xB5, 0xCC, 0x7E, 0xFC, 0x2D,
+ 0xF0, 0x7F, 0x4E, 0x1B, 0x15, 0x95, 0x5F, 0x85,
+ 0xDA, 0xE7, 0x4B, 0x76, 0xE2, 0xEC, 0xB8, 0x5A,
+ 0xFB, 0x6C, 0xD9, 0xEE, 0xED, 0x88, 0x88, 0xD5,
+ 0xCA, 0x3E, 0xC5, 0xAB, 0x65, 0xD2, 0x7A, 0x7B,
+ 0x19, 0xE5, 0x78, 0x47, 0x57, 0x60, 0xA0, 0x45,
+ 0xAC, 0x3C, 0x92, 0xE1, 0x3A, 0x93, 0x8E, 0x77
+ },
+ {
+ 0xC7, 0x14, 0x3F, 0xCE, 0x96, 0x14, 0xA1, 0x7F,
+ 0xD6, 0x53, 0xAE, 0xB1, 0x40, 0x72, 0x6D, 0xC9,
+ 0xC3, 0xDB, 0xB1, 0xDE, 0x6C, 0xC5, 0x81, 0xB2,
+ 0x72, 0x68, 0x97, 0xEC, 0x24, 0xB7, 0xA5, 0x03,
+ 0x59, 0xAD, 0x49, 0x22, 0x43, 0xBE, 0x66, 0xD9,
+ 0xED, 0xD8, 0xC9, 0x33, 0xB5, 0xB8, 0x0E, 0x0B,
+ 0x91, 0xBB, 0x61, 0xEA, 0x98, 0x05, 0x60, 0x06,
+ 0x51, 0x69, 0x76, 0xFA, 0xE8, 0xD9, 0x9A, 0x35
+ },
+ {
+ 0x65, 0xBB, 0x58, 0xD0, 0x7F, 0x93, 0x7E, 0x2D,
+ 0x3C, 0x7E, 0x65, 0x38, 0x5F, 0x9C, 0x54, 0x73,
+ 0x0B, 0x70, 0x41, 0x05, 0xCC, 0xDB, 0x69, 0x1F,
+ 0x6E, 0x14, 0x6D, 0x4E, 0xE8, 0xF6, 0xC0, 0x86,
+ 0xF4, 0x95, 0x11, 0x03, 0x51, 0x10, 0xA9, 0xAD,
+ 0x60, 0x31, 0xFD, 0xCE, 0xB9, 0x43, 0xE0, 0xF9,
+ 0x61, 0x3B, 0xCB, 0x27, 0x6D, 0xD4, 0x0F, 0x06,
+ 0x24, 0xEF, 0x0F, 0x92, 0x4F, 0x80, 0x97, 0x83
+ },
+ {
+ 0xE5, 0x40, 0x27, 0x7F, 0x68, 0x3B, 0x11, 0x86,
+ 0xDD, 0x3B, 0x5B, 0x3F, 0x61, 0x43, 0x33, 0x96,
+ 0x58, 0x1A, 0x35, 0xFE, 0xB1, 0x20, 0x02, 0xBE,
+ 0x8C, 0x6A, 0x62, 0x31, 0xFC, 0x40, 0xFF, 0xA7,
+ 0x0F, 0x08, 0x08, 0x1B, 0xC5, 0x8B, 0x2D, 0x94,
+ 0xF7, 0x64, 0x95, 0x43, 0x61, 0x4A, 0x43, 0x5F,
+ 0xAA, 0x2D, 0x62, 0x11, 0x0E, 0x13, 0xDA, 0xBC,
+ 0x7B, 0x86, 0x62, 0x9B, 0x63, 0xAF, 0x9C, 0x24
+ },
+ {
+ 0x41, 0x85, 0x00, 0x87, 0x8C, 0x5F, 0xBC, 0xB5,
+ 0x84, 0xC4, 0x32, 0xF4, 0x28, 0x5E, 0x05, 0xE4,
+ 0x9F, 0x2E, 0x3E, 0x07, 0x53, 0x99, 0xA0, 0xDB,
+ 0xFC, 0xF8, 0x74, 0xEB, 0xF8, 0xC0, 0x3D, 0x02,
+ 0xBF, 0x16, 0xBC, 0x69, 0x89, 0xD1, 0x61, 0xC7,
+ 0x7C, 0xA0, 0x78, 0x6B, 0x05, 0x05, 0x3C, 0x6C,
+ 0x70, 0x94, 0x33, 0x71, 0x23, 0x19, 0x19, 0x21,
+ 0x28, 0x83, 0x5C, 0xF0, 0xB6, 0x60, 0x59, 0x5B
+ },
+ {
+ 0x88, 0x90, 0x90, 0xDB, 0xB1, 0x94, 0x4B, 0xDC,
+ 0x94, 0x33, 0xEE, 0x5E, 0xF1, 0x01, 0x0C, 0x7A,
+ 0x4A, 0x24, 0xA8, 0xE7, 0x1E, 0xCE, 0xA8, 0xE1,
+ 0x2A, 0x31, 0x31, 0x8C, 0xE4, 0x9D, 0xCA, 0xB0,
+ 0xAC, 0xA5, 0xC3, 0x80, 0x23, 0x34, 0xAA, 0xB2,
+ 0xCC, 0x84, 0xB1, 0x4C, 0x6B, 0x93, 0x21, 0xFE,
+ 0x58, 0x6B, 0xF3, 0xF8, 0x76, 0xF1, 0x9C, 0xD4,
+ 0x06, 0xEB, 0x11, 0x27, 0xFB, 0x94, 0x48, 0x01
+ },
+ {
+ 0x53, 0xB6, 0xA2, 0x89, 0x10, 0xAA, 0x92, 0xE2,
+ 0x7E, 0x53, 0x6F, 0xB5, 0x49, 0xCF, 0x9B, 0x99,
+ 0x18, 0x79, 0x10, 0x60, 0x89, 0x8E, 0x0B, 0x9F,
+ 0xE1, 0x83, 0x57, 0x7F, 0xF4, 0x3B, 0x5E, 0x9C,
+ 0x76, 0x89, 0xC7, 0x45, 0xB3, 0x2E, 0x41, 0x22,
+ 0x69, 0x83, 0x7C, 0x31, 0xB8, 0x9E, 0x6C, 0xC1,
+ 0x2B, 0xF7, 0x6E, 0x13, 0xCA, 0xD3, 0x66, 0xB7,
+ 0x4E, 0xCE, 0x48, 0xBB, 0x85, 0xFD, 0x09, 0xE9
+ },
+ {
+ 0x7C, 0x09, 0x20, 0x80, 0xC6, 0xA8, 0x0D, 0x67,
+ 0x24, 0x09, 0xD0, 0x81, 0xD3, 0xD1, 0x77, 0x10,
+ 0x6B, 0xCD, 0x63, 0x56, 0x77, 0x85, 0x14, 0x07,
+ 0x19, 0x49, 0x09, 0x50, 0xAE, 0x07, 0xAE, 0x8F,
+ 0xCA, 0xAB, 0xBA, 0xAA, 0xB3, 0x30, 0xCF, 0xBC,
+ 0xF7, 0x37, 0x44, 0x82, 0xC2, 0x20, 0xAF, 0x2E,
+ 0xAD, 0xEE, 0xB7, 0x3D, 0xCB, 0xB3, 0x5E, 0xD8,
+ 0x23, 0x34, 0x4E, 0x14, 0x4E, 0x7D, 0x48, 0x99
+ },
+ {
+ 0x9C, 0xCD, 0xE5, 0x66, 0xD2, 0x40, 0x05, 0x09,
+ 0x18, 0x11, 0x11, 0xF3, 0x2D, 0xDE, 0x4C, 0xD6,
+ 0x32, 0x09, 0xFE, 0x59, 0xA3, 0x0C, 0x11, 0x45,
+ 0x46, 0xAD, 0x27, 0x76, 0xD8, 0x89, 0xA4, 0x1B,
+ 0xAD, 0x8F, 0xA1, 0xBB, 0x46, 0x8C, 0xB2, 0xF9,
+ 0xD4, 0x2C, 0xA9, 0x92, 0x8A, 0x77, 0x70, 0xFE,
+ 0xF8, 0xE8, 0xBA, 0x4D, 0x0C, 0x81, 0x2D, 0x9A,
+ 0x1E, 0x75, 0xC3, 0xD8, 0xD2, 0xCC, 0xD7, 0x5A
+ },
+ {
+ 0x6E, 0x29, 0x3B, 0xF5, 0xD0, 0x3F, 0xE4, 0x39,
+ 0x77, 0xCF, 0xE3, 0xF5, 0x7C, 0xCD, 0xB3, 0xAE,
+ 0x28, 0x2A, 0x85, 0x45, 0x5D, 0xCA, 0x33, 0xF3,
+ 0x7F, 0x4B, 0x74, 0xF8, 0x39, 0x8C, 0xC6, 0x12,
+ 0x43, 0x3D, 0x75, 0x5C, 0xBE, 0xC4, 0x12, 0xF8,
+ 0xF8, 0x2A, 0x3B, 0xD3, 0xBC, 0x4A, 0x27, 0x8F,
+ 0x7E, 0xCD, 0x0D, 0xFA, 0x9B, 0xBD, 0xC4, 0x0B,
+ 0xE7, 0xA7, 0x87, 0xC8, 0xF1, 0x59, 0xB2, 0xDF
+ },
+ {
+ 0xC5, 0x65, 0x46, 0xFB, 0x21, 0x78, 0x45, 0x6F,
+ 0x33, 0x61, 0x64, 0xC1, 0x8B, 0x90, 0xDE, 0xFF,
+ 0xC8, 0x3A, 0xE2, 0xB5, 0xA3, 0xAC, 0xA7, 0x7B,
+ 0x68, 0x84, 0xD3, 0x6D, 0x2C, 0x1D, 0xB3, 0x95,
+ 0x01, 0xB3, 0xE6, 0x5E, 0x36, 0xC7, 0x58, 0xC6,
+ 0x6E, 0x31, 0x88, 0x45, 0x1F, 0xDB, 0x35, 0x15,
+ 0xEE, 0x16, 0x2C, 0x00, 0x1F, 0x06, 0xC3, 0xE8,
+ 0xCB, 0x57, 0x3A, 0xDF, 0x30, 0xF7, 0xA1, 0x01
+ },
+ {
+ 0x6F, 0x82, 0xF8, 0x9F, 0x29, 0x9E, 0xBC, 0xA2,
+ 0xFE, 0x01, 0x4B, 0x59, 0xBF, 0xFE, 0x1A, 0xA8,
+ 0x4E, 0x88, 0xB1, 0x91, 0x5F, 0xE2, 0x56, 0xAF,
+ 0xB6, 0x46, 0xFD, 0x84, 0x48, 0xAF, 0x2B, 0x88,
+ 0x91, 0xA7, 0xFA, 0xB3, 0x7A, 0x4E, 0xA6, 0xF9,
+ 0xA5, 0x0E, 0x6C, 0x31, 0x70, 0x39, 0xD8, 0xCF,
+ 0x87, 0x8F, 0x4C, 0x8E, 0x1A, 0x0D, 0xD4, 0x64,
+ 0xF0, 0xB4, 0xD6, 0xFF, 0x1C, 0x7E, 0xA8, 0x53
+ },
+ {
+ 0x2B, 0x85, 0x99, 0xFF, 0x9C, 0x3D, 0x61, 0x98,
+ 0x63, 0x7A, 0xD5, 0x1E, 0x57, 0xD1, 0x99, 0x8B,
+ 0x0D, 0x75, 0x31, 0x3F, 0xE2, 0xDD, 0x61, 0xA5,
+ 0x33, 0xC9, 0x64, 0xA6, 0xDD, 0x96, 0x07, 0xC6,
+ 0xF7, 0x23, 0xE9, 0x45, 0x2C, 0xE4, 0x6E, 0x01,
+ 0x4B, 0x1C, 0x1D, 0x6D, 0xE7, 0x7B, 0xA5, 0xB8,
+ 0x8C, 0x91, 0x4D, 0x1C, 0x59, 0x7B, 0xF1, 0xEA,
+ 0xE1, 0x34, 0x74, 0xB4, 0x29, 0x0E, 0x89, 0xB2
+ },
+ {
+ 0x08, 0xBF, 0x34, 0x6D, 0x38, 0xE1, 0xDF, 0x06,
+ 0xC8, 0x26, 0x0E, 0xDB, 0x1D, 0xA7, 0x55, 0x79,
+ 0x27, 0x59, 0x48, 0xD5, 0xC0, 0xA0, 0xAA, 0x9E,
+ 0xD2, 0x88, 0x6F, 0x88, 0x56, 0xDE, 0x54, 0x17,
+ 0xA1, 0x56, 0x99, 0x87, 0x58, 0xF5, 0xB1, 0x7E,
+ 0x52, 0xF1, 0x01, 0xCA, 0x95, 0x7A, 0x71, 0x13,
+ 0x74, 0x73, 0xDF, 0xD1, 0x8D, 0x7D, 0x20, 0x9C,
+ 0x4C, 0x10, 0xD9, 0x23, 0x3C, 0x93, 0x69, 0x1D
+ },
+ {
+ 0x6D, 0xF2, 0x15, 0x6D, 0x77, 0x31, 0x14, 0xD3,
+ 0x10, 0xB6, 0x3D, 0xB9, 0xEE, 0x53, 0x50, 0xD7,
+ 0x7E, 0x6B, 0xCF, 0x25, 0xB0, 0x5F, 0xCD, 0x91,
+ 0x0F, 0x9B, 0x31, 0xBC, 0x42, 0xBB, 0x13, 0xFE,
+ 0x82, 0x25, 0xEB, 0xCB, 0x2A, 0x23, 0xA6, 0x22,
+ 0x80, 0x77, 0x7B, 0x6B, 0xF7, 0x4E, 0x2C, 0xD0,
+ 0x91, 0x7C, 0x76, 0x40, 0xB4, 0x3D, 0xEF, 0xE4,
+ 0x68, 0xCD, 0x1E, 0x18, 0xC9, 0x43, 0xC6, 0x6A
+ },
+ {
+ 0x7C, 0x70, 0x38, 0xBC, 0x13, 0xA9, 0x11, 0x51,
+ 0x82, 0x8A, 0x5B, 0xA8, 0x2B, 0x4A, 0x96, 0x04,
+ 0x0F, 0x25, 0x8A, 0x4D, 0xFB, 0x1B, 0x13, 0x73,
+ 0xF0, 0xD3, 0x59, 0x16, 0x8A, 0xFB, 0x05, 0x17,
+ 0xA2, 0x0B, 0x28, 0xA1, 0x2D, 0x36, 0x44, 0x04,
+ 0x6B, 0xE6, 0x6B, 0x8D, 0x08, 0xD8, 0xAE, 0x7F,
+ 0x6A, 0x92, 0x3E, 0xA1, 0xC0, 0x01, 0x87, 0xC6,
+ 0xD1, 0x1D, 0xC5, 0x02, 0xBA, 0xC7, 0x13, 0x05
+ },
+ {
+ 0xBC, 0xD1, 0xB3, 0x0D, 0x80, 0x8F, 0xB7, 0x39,
+ 0xB9, 0x87, 0xCB, 0xF1, 0x54, 0xBE, 0xA0, 0x0D,
+ 0xA9, 0xD4, 0x03, 0x80, 0xB8, 0x61, 0xD4, 0xC1,
+ 0xD6, 0x37, 0x71, 0x22, 0xDA, 0xDD, 0x61, 0xC0,
+ 0xE5, 0x90, 0x18, 0xB7, 0x19, 0x41, 0xCF, 0xB6,
+ 0x2E, 0x00, 0xDC, 0xD7, 0x0A, 0xEB, 0x9A, 0xBF,
+ 0x04, 0x73, 0xE8, 0x0F, 0x0A, 0x7E, 0xCA, 0x6B,
+ 0x6D, 0xEA, 0x24, 0x6A, 0xB2, 0x29, 0xDD, 0x2B
+ },
+ {
+ 0x7E, 0xD4, 0x46, 0x8D, 0x96, 0x85, 0x30, 0xFE,
+ 0x7A, 0xB2, 0xC3, 0x35, 0x40, 0xB2, 0x6D, 0x8C,
+ 0x3B, 0xD3, 0xED, 0x44, 0xB3, 0x4F, 0xBE, 0x8C,
+ 0x2A, 0x9D, 0x7F, 0x80, 0x5B, 0x5A, 0xDA, 0x0E,
+ 0xA2, 0x52, 0xEE, 0xAD, 0xE4, 0xFC, 0xE9, 0x7F,
+ 0x89, 0x72, 0x8A, 0xD8, 0x5B, 0xC8, 0xBB, 0x24,
+ 0x30, 0xB1, 0xBE, 0xF2, 0xCD, 0xDD, 0x32, 0xC8,
+ 0x44, 0x6E, 0x59, 0xB8, 0xE8, 0xBA, 0x3C, 0x67
+ },
+ {
+ 0x6D, 0x30, 0xB7, 0xC6, 0xCE, 0x8A, 0x32, 0x36,
+ 0xC0, 0xCA, 0x2F, 0x8D, 0x72, 0x8B, 0x10, 0x88,
+ 0xCA, 0x06, 0x98, 0x3A, 0x80, 0x43, 0xE6, 0x21,
+ 0xD5, 0xDC, 0xF0, 0xC5, 0x37, 0xD1, 0x3B, 0x08,
+ 0x79, 0x1E, 0xDE, 0xB0, 0x1A, 0x3C, 0xF0, 0x94,
+ 0x3E, 0xC1, 0xC8, 0x90, 0xAB, 0x6E, 0x29, 0xB1,
+ 0x46, 0xA2, 0x36, 0xCD, 0x46, 0xBC, 0xB9, 0xD9,
+ 0x3B, 0xF5, 0x16, 0xFB, 0x67, 0xC6, 0x3F, 0xE5
+ },
+ {
+ 0x97, 0xFE, 0x03, 0xCE, 0xF3, 0x14, 0x38, 0x50,
+ 0x89, 0x11, 0xBD, 0xED, 0x97, 0x59, 0x80, 0xA6,
+ 0x60, 0x29, 0x30, 0x5D, 0xC5, 0xE3, 0xFA, 0x8A,
+ 0xD1, 0xB4, 0xFB, 0x22, 0xFC, 0xDF, 0x5A, 0x19,
+ 0xA7, 0x33, 0x32, 0x03, 0x27, 0xD8, 0xF7, 0x1C,
+ 0xCF, 0x49, 0x6C, 0xB3, 0xA4, 0x4A, 0x77, 0xAF,
+ 0x56, 0xE3, 0xDD, 0xE7, 0x3D, 0x3A, 0x5F, 0x17,
+ 0x68, 0x96, 0xCC, 0x57, 0xC9, 0xA5, 0xAD, 0x99
+ },
+ {
+ 0x78, 0x5A, 0x9D, 0x0F, 0xBD, 0x21, 0x13, 0x6D,
+ 0xBC, 0xE8, 0xFA, 0x7E, 0xAF, 0xD6, 0x3C, 0x9D,
+ 0xAD, 0x22, 0x00, 0x52, 0x97, 0x84, 0x16, 0xB3,
+ 0x1D, 0x97, 0x53, 0xEA, 0xA1, 0x49, 0x09, 0x78,
+ 0x47, 0xED, 0x9B, 0x30, 0xA6, 0x5C, 0x70, 0x50,
+ 0x7E, 0xFF, 0x01, 0x87, 0x91, 0x49, 0xED, 0x5C,
+ 0xF0, 0x47, 0x1D, 0x37, 0x79, 0x8E, 0xDC, 0x05,
+ 0xAB, 0xD5, 0x6A, 0xD4, 0xA2, 0xCC, 0xCB, 0x1D
+ },
+ {
+ 0xAD, 0x40, 0x8D, 0x2A, 0xBD, 0xDF, 0xD3, 0x7B,
+ 0x3B, 0xF3, 0x47, 0x94, 0xC1, 0xA3, 0x37, 0x1D,
+ 0x92, 0x8E, 0xD7, 0xFC, 0x8D, 0x96, 0x62, 0x25,
+ 0x33, 0x35, 0x84, 0xC5, 0x66, 0x58, 0x17, 0x83,
+ 0x2A, 0x37, 0xC0, 0x7F, 0x0D, 0xC7, 0xCB, 0x5A,
+ 0xA8, 0x74, 0xCD, 0x7D, 0x20, 0xFE, 0x8F, 0xAB,
+ 0x8E, 0xAB, 0xCB, 0x9B, 0x33, 0xD2, 0xE0, 0x84,
+ 0x1F, 0x6E, 0x20, 0x09, 0x60, 0x89, 0x9D, 0x95
+ },
+ {
+ 0x97, 0x66, 0x8F, 0x74, 0x5B, 0x60, 0x32, 0xFC,
+ 0x81, 0x5D, 0x95, 0x79, 0x32, 0x27, 0x69, 0xDC,
+ 0xCD, 0x95, 0x01, 0xA5, 0x08, 0x00, 0x29, 0xB8,
+ 0xAE, 0x82, 0x6B, 0xEF, 0xB6, 0x74, 0x23, 0x31,
+ 0xBD, 0x9F, 0x76, 0xEF, 0xEB, 0x3E, 0x2B, 0x8E,
+ 0x81, 0xA9, 0x78, 0x6B, 0x28, 0x2F, 0x50, 0x68,
+ 0xA3, 0xA2, 0x42, 0x46, 0x97, 0xA7, 0x7C, 0x41,
+ 0x87, 0x6B, 0x7E, 0x75, 0x3F, 0x4C, 0x77, 0x67
+ },
+ {
+ 0x26, 0xBB, 0x98, 0x5F, 0x47, 0xE7, 0xFE, 0xE0,
+ 0xCF, 0xD2, 0x52, 0xD4, 0xEF, 0x96, 0xBE, 0xD4,
+ 0x2B, 0x9C, 0x37, 0x0C, 0x1C, 0x6A, 0x3E, 0x8C,
+ 0x9E, 0xB0, 0x4E, 0xF7, 0xF7, 0x81, 0x8B, 0x83,
+ 0x3A, 0x0D, 0x1F, 0x04, 0x3E, 0xBA, 0xFB, 0x91,
+ 0x1D, 0xC7, 0x79, 0xE0, 0x27, 0x40, 0xA0, 0x2A,
+ 0x44, 0xD3, 0xA1, 0xEA, 0x45, 0xED, 0x4A, 0xD5,
+ 0x5E, 0x68, 0x6C, 0x92, 0x7C, 0xAF, 0xE9, 0x7E
+ },
+ {
+ 0x5B, 0xFE, 0x2B, 0x1D, 0xCF, 0x7F, 0xE9, 0xB9,
+ 0x50, 0x88, 0xAC, 0xED, 0xB5, 0x75, 0xC1, 0x90,
+ 0x16, 0xC7, 0x43, 0xB2, 0xE7, 0x63, 0xBF, 0x58,
+ 0x51, 0xAC, 0x40, 0x7C, 0x9E, 0xDA, 0x43, 0x71,
+ 0x5E, 0xDF, 0xA4, 0x8B, 0x48, 0x25, 0x49, 0x2C,
+ 0x51, 0x79, 0x59, 0x3F, 0xFF, 0x21, 0x35, 0x1B,
+ 0x76, 0xE8, 0xB7, 0xE0, 0x34, 0xE4, 0xC5, 0x3C,
+ 0x79, 0xF6, 0x1F, 0x29, 0xC4, 0x79, 0xBD, 0x08
+ },
+ {
+ 0xC7, 0x65, 0x09, 0xEF, 0x72, 0xF4, 0xA6, 0xF9,
+ 0xC9, 0xC4, 0x06, 0x18, 0xED, 0x52, 0xB2, 0x08,
+ 0x4F, 0x83, 0x50, 0x22, 0x32, 0xE0, 0xAC, 0x8B,
+ 0xDA, 0xF3, 0x26, 0x43, 0x68, 0xE4, 0xD0, 0x18,
+ 0x0F, 0x68, 0x54, 0xC4, 0xAB, 0xF4, 0xF6, 0x50,
+ 0x9C, 0x79, 0xCA, 0xAF, 0xC4, 0x4C, 0xF3, 0x19,
+ 0x4A, 0xFC, 0x57, 0xBD, 0x07, 0x7B, 0xD7, 0xB3,
+ 0xC9, 0xBD, 0xA3, 0xD4, 0xB8, 0x77, 0x58, 0x16
+ },
+ {
+ 0xD6, 0x6F, 0x2B, 0xEA, 0xB9, 0x90, 0xE3, 0x54,
+ 0xCC, 0xB9, 0x10, 0xE4, 0xE9, 0xC7, 0xAC, 0x61,
+ 0x8C, 0x7B, 0x63, 0xEF, 0x29, 0x2A, 0x96, 0xB5,
+ 0x52, 0x34, 0x1D, 0xE7, 0x8D, 0xC4, 0x6D, 0x3E,
+ 0xC8, 0xCF, 0xAB, 0xC6, 0x99, 0xB5, 0x0A, 0xF4,
+ 0x1F, 0xDA, 0x39, 0xCF, 0x1B, 0x01, 0x73, 0x66,
+ 0x09, 0x23, 0x51, 0x0A, 0xD6, 0x7F, 0xAE, 0xDE,
+ 0xF5, 0x20, 0x7C, 0xFF, 0xE8, 0x64, 0x1D, 0x20
+ },
+ {
+ 0x7D, 0x8F, 0x06, 0x72, 0x99, 0x2B, 0x79, 0xBE,
+ 0x3A, 0x36, 0x4D, 0x8E, 0x59, 0x04, 0xF4, 0xAB,
+ 0x71, 0x3B, 0xBC, 0x8A, 0xB0, 0x1B, 0x4F, 0x30,
+ 0x9A, 0xD8, 0xCC, 0xF2, 0x23, 0xCE, 0x10, 0x34,
+ 0xA8, 0x60, 0xDC, 0xB0, 0xB0, 0x05, 0x50, 0x61,
+ 0x2C, 0xC2, 0xFA, 0x17, 0xF2, 0x96, 0x9E, 0x18,
+ 0xF2, 0x2E, 0x14, 0x27, 0xD2, 0x54, 0xB4, 0xA8,
+ 0x2B, 0x3A, 0x03, 0xA3, 0xEB, 0x39, 0x4A, 0xDF
+ },
+ {
+ 0xA5, 0x6D, 0x67, 0x25, 0xBF, 0xB3, 0xDE, 0x47,
+ 0xC1, 0x41, 0x4A, 0xDF, 0x25, 0xFC, 0x8F, 0x0F,
+ 0xC9, 0x84, 0x6F, 0x69, 0x87, 0x72, 0x2B, 0xC0,
+ 0x63, 0x66, 0xD5, 0xCA, 0x4E, 0x89, 0x72, 0x29,
+ 0x25, 0xEB, 0xBC, 0x88, 0x14, 0x18, 0x84, 0x40,
+ 0x75, 0x39, 0x7A, 0x0C, 0xA8, 0x98, 0x42, 0xC7,
+ 0xB9, 0xE9, 0xE0, 0x7E, 0x1D, 0x9D, 0x18, 0x3E,
+ 0xBE, 0xB3, 0x9E, 0x12, 0x0B, 0x48, 0x3B, 0xF7
+ },
+ {
+ 0xAF, 0x5E, 0x03, 0xD7, 0xFE, 0x60, 0xC6, 0x7E,
+ 0x10, 0x31, 0x33, 0x44, 0x43, 0x4E, 0x79, 0x48,
+ 0x5A, 0x03, 0xA7, 0x58, 0xD6, 0xDC, 0xE9, 0x85,
+ 0x57, 0x47, 0x45, 0x76, 0x3C, 0x1C, 0x5C, 0x77,
+ 0xD4, 0xFB, 0x3E, 0x6F, 0xB1, 0x22, 0x30, 0x36,
+ 0x83, 0x70, 0x99, 0x3B, 0xF9, 0x0F, 0xEE, 0xD0,
+ 0xC5, 0xD1, 0x60, 0x75, 0x24, 0x56, 0x2D, 0x7C,
+ 0x09, 0xC0, 0xC2, 0x10, 0xED, 0x39, 0x3D, 0x7C
+ },
+ {
+ 0x7A, 0x20, 0x54, 0x0C, 0xC0, 0x7B, 0xF7, 0x2B,
+ 0x58, 0x24, 0x21, 0xFC, 0x34, 0x2E, 0x82, 0xF5,
+ 0x21, 0x34, 0xB6, 0x98, 0x41, 0xEC, 0x28, 0xED,
+ 0x18, 0x9E, 0x2E, 0xA6, 0xA2, 0x9D, 0xD2, 0xF8,
+ 0x2A, 0x64, 0x03, 0x52, 0xD2, 0x22, 0xB5, 0x2F,
+ 0x29, 0x11, 0xDC, 0x72, 0xA7, 0xDA, 0xB3, 0x1C,
+ 0xAA, 0xDD, 0x80, 0xC6, 0x11, 0x8F, 0x13, 0xC5,
+ 0x6B, 0x2A, 0x1E, 0x43, 0x73, 0xBE, 0x0E, 0xA3
+ },
+ {
+ 0x48, 0x6F, 0x02, 0xC6, 0x3E, 0x54, 0x67, 0xEA,
+ 0x1F, 0xDD, 0xE7, 0xE8, 0x2B, 0xFA, 0xCC, 0x2C,
+ 0x1B, 0xA5, 0xD6, 0x36, 0xD9, 0xF3, 0xD0, 0x8B,
+ 0x21, 0x0D, 0xA3, 0xF3, 0x72, 0xF7, 0x06, 0xEC,
+ 0x21, 0x8C, 0xC1, 0x7F, 0xF6, 0x0A, 0xEF, 0x70,
+ 0x3B, 0xBE, 0x0C, 0x15, 0xC3, 0x8A, 0xE5, 0x5D,
+ 0x28, 0x6A, 0x68, 0x4F, 0x86, 0x4C, 0x78, 0x21,
+ 0x1C, 0xCA, 0xB4, 0x17, 0x8C, 0x92, 0xAD, 0xBA
+ },
+ {
+ 0x1C, 0x7A, 0x5C, 0x1D, 0xED, 0xCD, 0x04, 0xA9,
+ 0x21, 0x78, 0x8F, 0x7E, 0xB2, 0x33, 0x61, 0xCA,
+ 0x19, 0x53, 0xB0, 0x4B, 0x9C, 0x7A, 0xEC, 0x35,
+ 0xD6, 0x5E, 0xA3, 0xE4, 0x99, 0x6D, 0xB2, 0x6F,
+ 0x28, 0x12, 0x78, 0xEA, 0x4A, 0xE6, 0x66, 0xAD,
+ 0x81, 0x02, 0x7D, 0x98, 0xAF, 0x57, 0x26, 0x2C,
+ 0xDB, 0xFA, 0x4C, 0x08, 0x5F, 0x42, 0x10, 0x56,
+ 0x8C, 0x7E, 0x15, 0xEE, 0xC7, 0x80, 0x51, 0x14
+ },
+ {
+ 0x9C, 0xE3, 0xFA, 0x9A, 0x86, 0x0B, 0xDB, 0xD5,
+ 0x37, 0x8F, 0xD6, 0xD7, 0xB8, 0xB6, 0x71, 0xC6,
+ 0xCB, 0x76, 0x92, 0x91, 0x0C, 0xE8, 0xF9, 0xB6,
+ 0xCB, 0x41, 0x22, 0xCB, 0xCB, 0xE6, 0xAC, 0x06,
+ 0xCA, 0x04, 0x22, 0xCE, 0xF1, 0x22, 0x59, 0x35,
+ 0x05, 0x3B, 0x7D, 0x19, 0x3A, 0x81, 0xB9, 0xE9,
+ 0x72, 0xEB, 0x85, 0xA1, 0xD3, 0x07, 0x4F, 0x14,
+ 0xCB, 0xB5, 0xEC, 0x9F, 0x05, 0x73, 0x89, 0x2D
+ },
+ {
+ 0xA9, 0x11, 0x87, 0xBE, 0x5C, 0x37, 0x1C, 0x42,
+ 0x65, 0xC1, 0x74, 0xFD, 0x46, 0x53, 0xB8, 0xAB,
+ 0x70, 0x85, 0x51, 0xF8, 0x3D, 0x1F, 0xEE, 0x1C,
+ 0xC1, 0x47, 0x95, 0x81, 0xBC, 0x00, 0x6D, 0x6F,
+ 0xB7, 0x8F, 0xCC, 0x9A, 0x5D, 0xEE, 0x1D, 0xB3,
+ 0x66, 0x6F, 0x50, 0x8F, 0x97, 0x80, 0xA3, 0x75,
+ 0x93, 0xEB, 0xCC, 0xCF, 0x5F, 0xBE, 0xD3, 0x96,
+ 0x67, 0xDC, 0x63, 0x61, 0xE9, 0x21, 0xF7, 0x79
+ },
+ {
+ 0x46, 0x25, 0x76, 0x7D, 0x7B, 0x1D, 0x3D, 0x3E,
+ 0xD2, 0xFB, 0xC6, 0x74, 0xAF, 0x14, 0xE0, 0x24,
+ 0x41, 0x52, 0xF2, 0xA4, 0x02, 0x1F, 0xCF, 0x33,
+ 0x11, 0x50, 0x5D, 0x89, 0xBD, 0x81, 0xE2, 0xF9,
+ 0xF9, 0xA5, 0x00, 0xC3, 0xB1, 0x99, 0x91, 0x4D,
+ 0xB4, 0x95, 0x00, 0xB3, 0xC9, 0x8D, 0x03, 0xEA,
+ 0x93, 0x28, 0x67, 0x51, 0xA6, 0x86, 0xA3, 0xB8,
+ 0x75, 0xDA, 0xAB, 0x0C, 0xCD, 0x63, 0xB4, 0x4F
+ },
+ {
+ 0x43, 0xDF, 0xDF, 0xE1, 0xB0, 0x14, 0xFE, 0xD3,
+ 0xA2, 0xAC, 0xAB, 0xB7, 0xF3, 0xE9, 0xA1, 0x82,
+ 0xF2, 0xAA, 0x18, 0x01, 0x9D, 0x27, 0xE3, 0xE6,
+ 0xCD, 0xCF, 0x31, 0xA1, 0x5B, 0x42, 0x8E, 0x91,
+ 0xE7, 0xB0, 0x8C, 0xF5, 0xE5, 0xC3, 0x76, 0xFC,
+ 0xE2, 0xD8, 0xA2, 0x8F, 0xF8, 0x5A, 0xB0, 0xA0,
+ 0xA1, 0x65, 0x6E, 0xDB, 0x4A, 0x0A, 0x91, 0x53,
+ 0x26, 0x20, 0x09, 0x6D, 0x9A, 0x5A, 0x65, 0x2D
+ },
+ {
+ 0x27, 0x9E, 0x32, 0x02, 0xBE, 0x39, 0x89, 0xBA,
+ 0x31, 0x12, 0x77, 0x25, 0x85, 0x17, 0x74, 0x87,
+ 0xE4, 0xFE, 0x3E, 0xE3, 0xEA, 0xB4, 0x9C, 0x2F,
+ 0x7F, 0xA7, 0xFE, 0x87, 0xCF, 0xE7, 0xB8, 0x0D,
+ 0x3E, 0x03, 0x55, 0xED, 0xFF, 0x6D, 0x03, 0x1E,
+ 0x6C, 0x96, 0xC7, 0x95, 0xDB, 0x1C, 0x6F, 0x04,
+ 0x18, 0x80, 0xEC, 0x38, 0x24, 0xDE, 0xFA, 0xCF,
+ 0x92, 0x63, 0x82, 0x0A, 0x8E, 0x73, 0x27, 0xDE
+ },
+ {
+ 0xEA, 0x2D, 0x06, 0x6A, 0xC2, 0x29, 0xD4, 0xD4,
+ 0xB6, 0x16, 0xA8, 0xBE, 0xDE, 0xC7, 0x34, 0x32,
+ 0x52, 0x24, 0xE4, 0xB4, 0xE5, 0x8F, 0x1A, 0xE6,
+ 0xDA, 0xD7, 0xE4, 0x0C, 0x2D, 0xA2, 0x91, 0x96,
+ 0xC3, 0xB1, 0xEA, 0x95, 0x71, 0xDA, 0xCC, 0x81,
+ 0xE8, 0x73, 0x28, 0xCA, 0xA0, 0x21, 0x1E, 0x09,
+ 0x02, 0x7B, 0x05, 0x24, 0xAA, 0x3F, 0x4A, 0x84,
+ 0x99, 0x17, 0xB3, 0x58, 0x67, 0x47, 0xEB, 0xBB
+ },
+ {
+ 0x49, 0xF0, 0x14, 0xF5, 0xC6, 0x18, 0x22, 0xC8,
+ 0x99, 0xAB, 0x5C, 0xAE, 0x51, 0xBE, 0x40, 0x44,
+ 0xA4, 0x49, 0x5E, 0x77, 0x7D, 0xEB, 0x7D, 0xA9,
+ 0xB6, 0xD8, 0x49, 0x0E, 0xFB, 0xB8, 0x75, 0x30,
+ 0xAD, 0xF2, 0x93, 0xDA, 0xF0, 0x79, 0xF9, 0x4C,
+ 0x33, 0xB7, 0x04, 0x4E, 0xF6, 0x2E, 0x2E, 0x5B,
+ 0xB3, 0xEB, 0x11, 0xE1, 0x73, 0x04, 0xF8, 0x45,
+ 0x3E, 0xE6, 0xCE, 0x24, 0xF0, 0x33, 0xDD, 0xB0
+ },
+ {
+ 0x92, 0x33, 0x49, 0x03, 0x44, 0xE5, 0xB0, 0xDC,
+ 0x59, 0x12, 0x67, 0x1B, 0x7A, 0xE5, 0x4C, 0xEE,
+ 0x77, 0x30, 0xDB, 0xE1, 0xF4, 0xC7, 0xD9, 0x2A,
+ 0x4D, 0x3E, 0x3A, 0xAB, 0x50, 0x57, 0x17, 0x08,
+ 0xDB, 0x51, 0xDC, 0xF9, 0xC2, 0x94, 0x45, 0x91,
+ 0xDB, 0x65, 0x1D, 0xB3, 0x2D, 0x22, 0x93, 0x5B,
+ 0x86, 0x94, 0x49, 0x69, 0xBE, 0x77, 0xD5, 0xB5,
+ 0xFE, 0xAE, 0x6C, 0x38, 0x40, 0xA8, 0xDB, 0x26
+ },
+ {
+ 0xB6, 0xE7, 0x5E, 0x6F, 0x4C, 0x7F, 0x45, 0x3B,
+ 0x74, 0x65, 0xD2, 0x5B, 0x5A, 0xC8, 0xC7, 0x19,
+ 0x69, 0x02, 0xEA, 0xA9, 0x53, 0x87, 0x52, 0x28,
+ 0xC8, 0x63, 0x4E, 0x16, 0xE2, 0xAE, 0x1F, 0x38,
+ 0xBC, 0x32, 0x75, 0x30, 0x43, 0x35, 0xF5, 0x98,
+ 0x9E, 0xCC, 0xC1, 0xE3, 0x41, 0x67, 0xD4, 0xE6,
+ 0x8D, 0x77, 0x19, 0x96, 0x8F, 0xBA, 0x8E, 0x2F,
+ 0xE6, 0x79, 0x47, 0xC3, 0x5C, 0x48, 0xE8, 0x06
+ },
+ {
+ 0xCC, 0x14, 0xCA, 0x66, 0x5A, 0xF1, 0x48, 0x3E,
+ 0xFB, 0xC3, 0xAF, 0x80, 0x08, 0x0E, 0x65, 0x0D,
+ 0x50, 0x46, 0xA3, 0x93, 0x2F, 0x4F, 0x51, 0xF3,
+ 0xFE, 0x90, 0xA0, 0x70, 0x5E, 0xC2, 0x51, 0x04,
+ 0xAD, 0xF0, 0x78, 0x39, 0x26, 0x5D, 0xC5, 0x1D,
+ 0x43, 0x40, 0x14, 0x11, 0x24, 0x6E, 0x47, 0x4F,
+ 0x0D, 0x5E, 0x56, 0x37, 0xAF, 0x94, 0x76, 0x72,
+ 0x83, 0xD5, 0x3E, 0x06, 0x17, 0xE9, 0x81, 0xF4
+ },
+ {
+ 0x23, 0x0A, 0x1C, 0x85, 0x7C, 0xB2, 0xE7, 0x85,
+ 0x2E, 0x41, 0xB6, 0x47, 0xE9, 0x0E, 0x45, 0x85,
+ 0xD2, 0xD8, 0x81, 0xE1, 0x73, 0x4D, 0xC3, 0x89,
+ 0x55, 0x35, 0x6E, 0x8D, 0xD7, 0xBF, 0xF3, 0x90,
+ 0x53, 0x09, 0x2C, 0x6B, 0x38, 0xE2, 0x36, 0xE1,
+ 0x89, 0x95, 0x25, 0x64, 0x70, 0x73, 0xDD, 0xDF,
+ 0x68, 0x95, 0xD6, 0x42, 0x06, 0x32, 0x5E, 0x76,
+ 0x47, 0xF2, 0x75, 0x56, 0x7B, 0x25, 0x59, 0x09
+ },
+ {
+ 0xCB, 0xB6, 0x53, 0x21, 0xAC, 0x43, 0x6E, 0x2F,
+ 0xFD, 0xAB, 0x29, 0x36, 0x35, 0x9C, 0xE4, 0x90,
+ 0x23, 0xF7, 0xDE, 0xE7, 0x61, 0x4E, 0xF2, 0x8D,
+ 0x17, 0x3C, 0x3D, 0x27, 0xC5, 0xD1, 0xBF, 0xFA,
+ 0x51, 0x55, 0x3D, 0x43, 0x3F, 0x8E, 0xE3, 0xC9,
+ 0xE4, 0x9C, 0x05, 0xA2, 0xB8, 0x83, 0xCC, 0xE9,
+ 0x54, 0xC9, 0xA8, 0x09, 0x3B, 0x80, 0x61, 0x2A,
+ 0x0C, 0xDD, 0x47, 0x32, 0xE0, 0x41, 0xF9, 0x95
+ },
+ {
+ 0x3E, 0x7E, 0x57, 0x00, 0x74, 0x33, 0x72, 0x75,
+ 0xEF, 0xB5, 0x13, 0x15, 0x58, 0x80, 0x34, 0xC3,
+ 0xCF, 0x0D, 0xDD, 0xCA, 0x20, 0xB4, 0x61, 0x2E,
+ 0x0B, 0xD5, 0xB8, 0x81, 0xE7, 0xE5, 0x47, 0x6D,
+ 0x31, 0x9C, 0xE4, 0xFE, 0x9F, 0x19, 0x18, 0x6E,
+ 0x4C, 0x08, 0x26, 0xF4, 0x4F, 0x13, 0x1E, 0xB0,
+ 0x48, 0xE6, 0x5B, 0xE2, 0x42, 0xB1, 0x17, 0x2C,
+ 0x63, 0xBA, 0xDB, 0x12, 0x3A, 0xB0, 0xCB, 0xE8
+ },
+ {
+ 0xD3, 0x2E, 0x9E, 0xC0, 0x2D, 0x38, 0xD4, 0xE1,
+ 0xB8, 0x24, 0x9D, 0xF8, 0xDC, 0xB0, 0x0C, 0x5B,
+ 0x9C, 0x68, 0xEB, 0x89, 0x22, 0x67, 0x2E, 0x35,
+ 0x05, 0x39, 0x3B, 0x6A, 0x21, 0x0B, 0xA5, 0x6F,
+ 0x94, 0x96, 0xE5, 0xEE, 0x04, 0x90, 0xEF, 0x38,
+ 0x7C, 0x3C, 0xDE, 0xC0, 0x61, 0xF0, 0x6B, 0xC0,
+ 0x38, 0x2D, 0x93, 0x04, 0xCA, 0xFB, 0xB8, 0xE0,
+ 0xCD, 0x33, 0xD5, 0x70, 0x29, 0xE6, 0x2D, 0xF2
+ },
+ {
+ 0x8C, 0x15, 0x12, 0x46, 0x60, 0x89, 0xF0, 0x5B,
+ 0x37, 0x75, 0xC2, 0x62, 0xB6, 0x2D, 0x22, 0xB8,
+ 0x38, 0x54, 0xA8, 0x32, 0x18, 0x13, 0x0B, 0x4E,
+ 0xC9, 0x1B, 0x3C, 0xCB, 0xD2, 0x93, 0xD2, 0xA5,
+ 0x43, 0x02, 0xCE, 0xCA, 0xAB, 0x9B, 0x10, 0x0C,
+ 0x68, 0xD1, 0xE6, 0xDD, 0xC8, 0xF0, 0x7C, 0xDD,
+ 0xBD, 0xFE, 0x6F, 0xDA, 0xAA, 0xF0, 0x99, 0xCC,
+ 0x09, 0xD6, 0xB7, 0x25, 0x87, 0x9C, 0x63, 0x69
+ },
+ {
+ 0x91, 0xA7, 0xF6, 0x1C, 0x97, 0xC2, 0x91, 0x1E,
+ 0x4C, 0x81, 0x2E, 0xF7, 0x1D, 0x78, 0x0A, 0xD8,
+ 0xFA, 0x78, 0x87, 0x94, 0x56, 0x1D, 0x08, 0x30,
+ 0x3F, 0xD1, 0xC1, 0xCB, 0x60, 0x8A, 0x46, 0xA1,
+ 0x25, 0x63, 0x08, 0x6E, 0xC5, 0xB3, 0x9D, 0x47,
+ 0x1A, 0xED, 0x94, 0xFB, 0x0F, 0x6C, 0x67, 0x8A,
+ 0x43, 0xB8, 0x79, 0x29, 0x32, 0xF9, 0x02, 0x8D,
+ 0x77, 0x2A, 0x22, 0x76, 0x8E, 0xA2, 0x3A, 0x9B
+ },
+ {
+ 0x4F, 0x6B, 0xB2, 0x22, 0xA3, 0x95, 0xE8, 0xB1,
+ 0x8F, 0x6B, 0xA1, 0x55, 0x47, 0x7A, 0xED, 0x3F,
+ 0x07, 0x29, 0xAC, 0x9E, 0x83, 0xE1, 0x6D, 0x31,
+ 0xA2, 0xA8, 0xBC, 0x65, 0x54, 0x22, 0xB8, 0x37,
+ 0xC8, 0x91, 0xC6, 0x19, 0x9E, 0x6F, 0x0D, 0x75,
+ 0x79, 0x9E, 0x3B, 0x69, 0x15, 0x25, 0xC5, 0x81,
+ 0x95, 0x35, 0x17, 0xF2, 0x52, 0xC4, 0xB9, 0xE3,
+ 0xA2, 0x7A, 0x28, 0xFB, 0xAF, 0x49, 0x64, 0x4C
+ },
+ {
+ 0x5D, 0x06, 0xC0, 0x7E, 0x7A, 0x64, 0x6C, 0x41,
+ 0x3A, 0x50, 0x1C, 0x3F, 0x4B, 0xB2, 0xFC, 0x38,
+ 0x12, 0x7D, 0xE7, 0x50, 0x9B, 0x70, 0x77, 0xC4,
+ 0xD9, 0xB5, 0x61, 0x32, 0x01, 0xC1, 0xAA, 0x02,
+ 0xFD, 0x5F, 0x79, 0xD2, 0x74, 0x59, 0x15, 0xDD,
+ 0x57, 0xFB, 0xCB, 0x4C, 0xE0, 0x86, 0x95, 0xF6,
+ 0xEF, 0xC0, 0xCB, 0x3D, 0x2D, 0x33, 0x0E, 0x19,
+ 0xB4, 0xB0, 0xE6, 0x00, 0x4E, 0xA6, 0x47, 0x1E
+ },
+ {
+ 0xB9, 0x67, 0x56, 0xE5, 0x79, 0x09, 0x96, 0x8F,
+ 0x14, 0xB7, 0x96, 0xA5, 0xD3, 0x0F, 0x4C, 0x9D,
+ 0x67, 0x14, 0x72, 0xCF, 0x82, 0xC8, 0xCF, 0xB2,
+ 0xCA, 0xCA, 0x7A, 0xC7, 0xA4, 0x4C, 0xA0, 0xA1,
+ 0x4C, 0x98, 0x42, 0xD0, 0x0C, 0x82, 0xE3, 0x37,
+ 0x50, 0x2C, 0x94, 0xD5, 0x96, 0x0A, 0xCA, 0x4C,
+ 0x49, 0x2E, 0xA7, 0xB0, 0xDF, 0x91, 0x9D, 0xDF,
+ 0x1A, 0xAD, 0xA2, 0xA2, 0x75, 0xBB, 0x10, 0xD4
+ },
+ {
+ 0xFF, 0x0A, 0x01, 0x5E, 0x98, 0xDB, 0x9C, 0x99,
+ 0xF0, 0x39, 0x77, 0x71, 0x0A, 0xAC, 0x3E, 0x65,
+ 0x8C, 0x0D, 0x89, 0x6F, 0x6D, 0x71, 0xD6, 0x18,
+ 0xBA, 0x79, 0xDC, 0x6C, 0xF7, 0x2A, 0xC7, 0x5B,
+ 0x7C, 0x03, 0x8E, 0xB6, 0x86, 0x2D, 0xED, 0xE4,
+ 0x54, 0x3E, 0x14, 0x54, 0x13, 0xA6, 0x36, 0x8D,
+ 0x69, 0xF5, 0x72, 0x2C, 0x82, 0x7B, 0xA3, 0xEF,
+ 0x25, 0xB6, 0xAE, 0x64, 0x40, 0xD3, 0x92, 0x76
+ },
+ {
+ 0x5B, 0x21, 0xC5, 0xFD, 0x88, 0x68, 0x36, 0x76,
+ 0x12, 0x47, 0x4F, 0xA2, 0xE7, 0x0E, 0x9C, 0xFA,
+ 0x22, 0x01, 0xFF, 0xEE, 0xE8, 0xFA, 0xFA, 0xB5,
+ 0x79, 0x7A, 0xD5, 0x8F, 0xEF, 0xA1, 0x7C, 0x9B,
+ 0x5B, 0x10, 0x7D, 0xA4, 0xA3, 0xDB, 0x63, 0x20,
+ 0xBA, 0xAF, 0x2C, 0x86, 0x17, 0xD5, 0xA5, 0x1D,
+ 0xF9, 0x14, 0xAE, 0x88, 0xDA, 0x38, 0x67, 0xC2,
+ 0xD4, 0x1F, 0x0C, 0xC1, 0x4F, 0xA6, 0x79, 0x28
+ },
+};
+
+
+
+
+static const uint8_t blake2b_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
+{
+ {
+ 0x10, 0xEB, 0xB6, 0x77, 0x00, 0xB1, 0x86, 0x8E,
+ 0xFB, 0x44, 0x17, 0x98, 0x7A, 0xCF, 0x46, 0x90,
+ 0xAE, 0x9D, 0x97, 0x2F, 0xB7, 0xA5, 0x90, 0xC2,
+ 0xF0, 0x28, 0x71, 0x79, 0x9A, 0xAA, 0x47, 0x86,
+ 0xB5, 0xE9, 0x96, 0xE8, 0xF0, 0xF4, 0xEB, 0x98,
+ 0x1F, 0xC2, 0x14, 0xB0, 0x05, 0xF4, 0x2D, 0x2F,
+ 0xF4, 0x23, 0x34, 0x99, 0x39, 0x16, 0x53, 0xDF,
+ 0x7A, 0xEF, 0xCB, 0xC1, 0x3F, 0xC5, 0x15, 0x68
+ },
+ {
+ 0x96, 0x1F, 0x6D, 0xD1, 0xE4, 0xDD, 0x30, 0xF6,
+ 0x39, 0x01, 0x69, 0x0C, 0x51, 0x2E, 0x78, 0xE4,
+ 0xB4, 0x5E, 0x47, 0x42, 0xED, 0x19, 0x7C, 0x3C,
+ 0x5E, 0x45, 0xC5, 0x49, 0xFD, 0x25, 0xF2, 0xE4,
+ 0x18, 0x7B, 0x0B, 0xC9, 0xFE, 0x30, 0x49, 0x2B,
+ 0x16, 0xB0, 0xD0, 0xBC, 0x4E, 0xF9, 0xB0, 0xF3,
+ 0x4C, 0x70, 0x03, 0xFA, 0xC0, 0x9A, 0x5E, 0xF1,
+ 0x53, 0x2E, 0x69, 0x43, 0x02, 0x34, 0xCE, 0xBD
+ },
+ {
+ 0xDA, 0x2C, 0xFB, 0xE2, 0xD8, 0x40, 0x9A, 0x0F,
+ 0x38, 0x02, 0x61, 0x13, 0x88, 0x4F, 0x84, 0xB5,
+ 0x01, 0x56, 0x37, 0x1A, 0xE3, 0x04, 0xC4, 0x43,
+ 0x01, 0x73, 0xD0, 0x8A, 0x99, 0xD9, 0xFB, 0x1B,
+ 0x98, 0x31, 0x64, 0xA3, 0x77, 0x07, 0x06, 0xD5,
+ 0x37, 0xF4, 0x9E, 0x0C, 0x91, 0x6D, 0x9F, 0x32,
+ 0xB9, 0x5C, 0xC3, 0x7A, 0x95, 0xB9, 0x9D, 0x85,
+ 0x74, 0x36, 0xF0, 0x23, 0x2C, 0x88, 0xA9, 0x65
+ },
+ {
+ 0x33, 0xD0, 0x82, 0x5D, 0xDD, 0xF7, 0xAD, 0xA9,
+ 0x9B, 0x0E, 0x7E, 0x30, 0x71, 0x04, 0xAD, 0x07,
+ 0xCA, 0x9C, 0xFD, 0x96, 0x92, 0x21, 0x4F, 0x15,
+ 0x61, 0x35, 0x63, 0x15, 0xE7, 0x84, 0xF3, 0xE5,
+ 0xA1, 0x7E, 0x36, 0x4A, 0xE9, 0xDB, 0xB1, 0x4C,
+ 0xB2, 0x03, 0x6D, 0xF9, 0x32, 0xB7, 0x7F, 0x4B,
+ 0x29, 0x27, 0x61, 0x36, 0x5F, 0xB3, 0x28, 0xDE,
+ 0x7A, 0xFD, 0xC6, 0xD8, 0x99, 0x8F, 0x5F, 0xC1
+ },
+ {
+ 0xBE, 0xAA, 0x5A, 0x3D, 0x08, 0xF3, 0x80, 0x71,
+ 0x43, 0xCF, 0x62, 0x1D, 0x95, 0xCD, 0x69, 0x05,
+ 0x14, 0xD0, 0xB4, 0x9E, 0xFF, 0xF9, 0xC9, 0x1D,
+ 0x24, 0xB5, 0x92, 0x41, 0xEC, 0x0E, 0xEF, 0xA5,
+ 0xF6, 0x01, 0x96, 0xD4, 0x07, 0x04, 0x8B, 0xBA,
+ 0x8D, 0x21, 0x46, 0x82, 0x8E, 0xBC, 0xB0, 0x48,
+ 0x8D, 0x88, 0x42, 0xFD, 0x56, 0xBB, 0x4F, 0x6D,
+ 0xF8, 0xE1, 0x9C, 0x4B, 0x4D, 0xAA, 0xB8, 0xAC
+ },
+ {
+ 0x09, 0x80, 0x84, 0xB5, 0x1F, 0xD1, 0x3D, 0xEA,
+ 0xE5, 0xF4, 0x32, 0x0D, 0xE9, 0x4A, 0x68, 0x8E,
+ 0xE0, 0x7B, 0xAE, 0xA2, 0x80, 0x04, 0x86, 0x68,
+ 0x9A, 0x86, 0x36, 0x11, 0x7B, 0x46, 0xC1, 0xF4,
+ 0xC1, 0xF6, 0xAF, 0x7F, 0x74, 0xAE, 0x7C, 0x85,
+ 0x76, 0x00, 0x45, 0x6A, 0x58, 0xA3, 0xAF, 0x25,
+ 0x1D, 0xC4, 0x72, 0x3A, 0x64, 0xCC, 0x7C, 0x0A,
+ 0x5A, 0xB6, 0xD9, 0xCA, 0xC9, 0x1C, 0x20, 0xBB
+ },
+ {
+ 0x60, 0x44, 0x54, 0x0D, 0x56, 0x08, 0x53, 0xEB,
+ 0x1C, 0x57, 0xDF, 0x00, 0x77, 0xDD, 0x38, 0x10,
+ 0x94, 0x78, 0x1C, 0xDB, 0x90, 0x73, 0xE5, 0xB1,
+ 0xB3, 0xD3, 0xF6, 0xC7, 0x82, 0x9E, 0x12, 0x06,
+ 0x6B, 0xBA, 0xCA, 0x96, 0xD9, 0x89, 0xA6, 0x90,
+ 0xDE, 0x72, 0xCA, 0x31, 0x33, 0xA8, 0x36, 0x52,
+ 0xBA, 0x28, 0x4A, 0x6D, 0x62, 0x94, 0x2B, 0x27,
+ 0x1F, 0xFA, 0x26, 0x20, 0xC9, 0xE7, 0x5B, 0x1F
+ },
+ {
+ 0x7A, 0x8C, 0xFE, 0x9B, 0x90, 0xF7, 0x5F, 0x7E,
+ 0xCB, 0x3A, 0xCC, 0x05, 0x3A, 0xAE, 0xD6, 0x19,
+ 0x31, 0x12, 0xB6, 0xF6, 0xA4, 0xAE, 0xEB, 0x3F,
+ 0x65, 0xD3, 0xDE, 0x54, 0x19, 0x42, 0xDE, 0xB9,
+ 0xE2, 0x22, 0x81, 0x52, 0xA3, 0xC4, 0xBB, 0xBE,
+ 0x72, 0xFC, 0x3B, 0x12, 0x62, 0x95, 0x28, 0xCF,
+ 0xBB, 0x09, 0xFE, 0x63, 0x0F, 0x04, 0x74, 0x33,
+ 0x9F, 0x54, 0xAB, 0xF4, 0x53, 0xE2, 0xED, 0x52
+ },
+ {
+ 0x38, 0x0B, 0xEA, 0xF6, 0xEA, 0x7C, 0xC9, 0x36,
+ 0x5E, 0x27, 0x0E, 0xF0, 0xE6, 0xF3, 0xA6, 0x4F,
+ 0xB9, 0x02, 0xAC, 0xAE, 0x51, 0xDD, 0x55, 0x12,
+ 0xF8, 0x42, 0x59, 0xAD, 0x2C, 0x91, 0xF4, 0xBC,
+ 0x41, 0x08, 0xDB, 0x73, 0x19, 0x2A, 0x5B, 0xBF,
+ 0xB0, 0xCB, 0xCF, 0x71, 0xE4, 0x6C, 0x3E, 0x21,
+ 0xAE, 0xE1, 0xC5, 0xE8, 0x60, 0xDC, 0x96, 0xE8,
+ 0xEB, 0x0B, 0x7B, 0x84, 0x26, 0xE6, 0xAB, 0xE9
+ },
+ {
+ 0x60, 0xFE, 0x3C, 0x45, 0x35, 0xE1, 0xB5, 0x9D,
+ 0x9A, 0x61, 0xEA, 0x85, 0x00, 0xBF, 0xAC, 0x41,
+ 0xA6, 0x9D, 0xFF, 0xB1, 0xCE, 0xAD, 0xD9, 0xAC,
+ 0xA3, 0x23, 0xE9, 0xA6, 0x25, 0xB6, 0x4D, 0xA5,
+ 0x76, 0x3B, 0xAD, 0x72, 0x26, 0xDA, 0x02, 0xB9,
+ 0xC8, 0xC4, 0xF1, 0xA5, 0xDE, 0x14, 0x0A, 0xC5,
+ 0xA6, 0xC1, 0x12, 0x4E, 0x4F, 0x71, 0x8C, 0xE0,
+ 0xB2, 0x8E, 0xA4, 0x73, 0x93, 0xAA, 0x66, 0x37
+ },
+ {
+ 0x4F, 0xE1, 0x81, 0xF5, 0x4A, 0xD6, 0x3A, 0x29,
+ 0x83, 0xFE, 0xAA, 0xF7, 0x7D, 0x1E, 0x72, 0x35,
+ 0xC2, 0xBE, 0xB1, 0x7F, 0xA3, 0x28, 0xB6, 0xD9,
+ 0x50, 0x5B, 0xDA, 0x32, 0x7D, 0xF1, 0x9F, 0xC3,
+ 0x7F, 0x02, 0xC4, 0xB6, 0xF0, 0x36, 0x8C, 0xE2,
+ 0x31, 0x47, 0x31, 0x3A, 0x8E, 0x57, 0x38, 0xB5,
+ 0xFA, 0x2A, 0x95, 0xB2, 0x9D, 0xE1, 0xC7, 0xF8,
+ 0x26, 0x4E, 0xB7, 0x7B, 0x69, 0xF5, 0x85, 0xCD
+ },
+ {
+ 0xF2, 0x28, 0x77, 0x3C, 0xE3, 0xF3, 0xA4, 0x2B,
+ 0x5F, 0x14, 0x4D, 0x63, 0x23, 0x7A, 0x72, 0xD9,
+ 0x96, 0x93, 0xAD, 0xB8, 0x83, 0x7D, 0x0E, 0x11,
+ 0x2A, 0x8A, 0x0F, 0x8F, 0xFF, 0xF2, 0xC3, 0x62,
+ 0x85, 0x7A, 0xC4, 0x9C, 0x11, 0xEC, 0x74, 0x0D,
+ 0x15, 0x00, 0x74, 0x9D, 0xAC, 0x9B, 0x1F, 0x45,
+ 0x48, 0x10, 0x8B, 0xF3, 0x15, 0x57, 0x94, 0xDC,
+ 0xC9, 0xE4, 0x08, 0x28, 0x49, 0xE2, 0xB8, 0x5B
+ },
+ {
+ 0x96, 0x24, 0x52, 0xA8, 0x45, 0x5C, 0xC5, 0x6C,
+ 0x85, 0x11, 0x31, 0x7E, 0x3B, 0x1F, 0x3B, 0x2C,
+ 0x37, 0xDF, 0x75, 0xF5, 0x88, 0xE9, 0x43, 0x25,
+ 0xFD, 0xD7, 0x70, 0x70, 0x35, 0x9C, 0xF6, 0x3A,
+ 0x9A, 0xE6, 0xE9, 0x30, 0x93, 0x6F, 0xDF, 0x8E,
+ 0x1E, 0x08, 0xFF, 0xCA, 0x44, 0x0C, 0xFB, 0x72,
+ 0xC2, 0x8F, 0x06, 0xD8, 0x9A, 0x21, 0x51, 0xD1,
+ 0xC4, 0x6C, 0xD5, 0xB2, 0x68, 0xEF, 0x85, 0x63
+ },
+ {
+ 0x43, 0xD4, 0x4B, 0xFA, 0x18, 0x76, 0x8C, 0x59,
+ 0x89, 0x6B, 0xF7, 0xED, 0x17, 0x65, 0xCB, 0x2D,
+ 0x14, 0xAF, 0x8C, 0x26, 0x02, 0x66, 0x03, 0x90,
+ 0x99, 0xB2, 0x5A, 0x60, 0x3E, 0x4D, 0xDC, 0x50,
+ 0x39, 0xD6, 0xEF, 0x3A, 0x91, 0x84, 0x7D, 0x10,
+ 0x88, 0xD4, 0x01, 0xC0, 0xC7, 0xE8, 0x47, 0x78,
+ 0x1A, 0x8A, 0x59, 0x0D, 0x33, 0xA3, 0xC6, 0xCB,
+ 0x4D, 0xF0, 0xFA, 0xB1, 0xC2, 0xF2, 0x23, 0x55
+ },
+ {
+ 0xDC, 0xFF, 0xA9, 0xD5, 0x8C, 0x2A, 0x4C, 0xA2,
+ 0xCD, 0xBB, 0x0C, 0x7A, 0xA4, 0xC4, 0xC1, 0xD4,
+ 0x51, 0x65, 0x19, 0x00, 0x89, 0xF4, 0xE9, 0x83,
+ 0xBB, 0x1C, 0x2C, 0xAB, 0x4A, 0xAE, 0xFF, 0x1F,
+ 0xA2, 0xB5, 0xEE, 0x51, 0x6F, 0xEC, 0xD7, 0x80,
+ 0x54, 0x02, 0x40, 0xBF, 0x37, 0xE5, 0x6C, 0x8B,
+ 0xCC, 0xA7, 0xFA, 0xB9, 0x80, 0xE1, 0xE6, 0x1C,
+ 0x94, 0x00, 0xD8, 0xA9, 0xA5, 0xB1, 0x4A, 0xC6
+ },
+ {
+ 0x6F, 0xBF, 0x31, 0xB4, 0x5A, 0xB0, 0xC0, 0xB8,
+ 0xDA, 0xD1, 0xC0, 0xF5, 0xF4, 0x06, 0x13, 0x79,
+ 0x91, 0x2D, 0xDE, 0x5A, 0xA9, 0x22, 0x09, 0x9A,
+ 0x03, 0x0B, 0x72, 0x5C, 0x73, 0x34, 0x6C, 0x52,
+ 0x42, 0x91, 0xAD, 0xEF, 0x89, 0xD2, 0xF6, 0xFD,
+ 0x8D, 0xFC, 0xDA, 0x6D, 0x07, 0xDA, 0xD8, 0x11,
+ 0xA9, 0x31, 0x45, 0x36, 0xC2, 0x91, 0x5E, 0xD4,
+ 0x5D, 0xA3, 0x49, 0x47, 0xE8, 0x3D, 0xE3, 0x4E
+ },
+ {
+ 0xA0, 0xC6, 0x5B, 0xDD, 0xDE, 0x8A, 0xDE, 0xF5,
+ 0x72, 0x82, 0xB0, 0x4B, 0x11, 0xE7, 0xBC, 0x8A,
+ 0xAB, 0x10, 0x5B, 0x99, 0x23, 0x1B, 0x75, 0x0C,
+ 0x02, 0x1F, 0x4A, 0x73, 0x5C, 0xB1, 0xBC, 0xFA,
+ 0xB8, 0x75, 0x53, 0xBB, 0xA3, 0xAB, 0xB0, 0xC3,
+ 0xE6, 0x4A, 0x0B, 0x69, 0x55, 0x28, 0x51, 0x85,
+ 0xA0, 0xBD, 0x35, 0xFB, 0x8C, 0xFD, 0xE5, 0x57,
+ 0x32, 0x9B, 0xEB, 0xB1, 0xF6, 0x29, 0xEE, 0x93
+ },
+ {
+ 0xF9, 0x9D, 0x81, 0x55, 0x50, 0x55, 0x8E, 0x81,
+ 0xEC, 0xA2, 0xF9, 0x67, 0x18, 0xAE, 0xD1, 0x0D,
+ 0x86, 0xF3, 0xF1, 0xCF, 0xB6, 0x75, 0xCC, 0xE0,
+ 0x6B, 0x0E, 0xFF, 0x02, 0xF6, 0x17, 0xC5, 0xA4,
+ 0x2C, 0x5A, 0xA7, 0x60, 0x27, 0x0F, 0x26, 0x79,
+ 0xDA, 0x26, 0x77, 0xC5, 0xAE, 0xB9, 0x4F, 0x11,
+ 0x42, 0x27, 0x7F, 0x21, 0xC7, 0xF7, 0x9F, 0x3C,
+ 0x4F, 0x0C, 0xCE, 0x4E, 0xD8, 0xEE, 0x62, 0xB1
+ },
+ {
+ 0x95, 0x39, 0x1D, 0xA8, 0xFC, 0x7B, 0x91, 0x7A,
+ 0x20, 0x44, 0xB3, 0xD6, 0xF5, 0x37, 0x4E, 0x1C,
+ 0xA0, 0x72, 0xB4, 0x14, 0x54, 0xD5, 0x72, 0xC7,
+ 0x35, 0x6C, 0x05, 0xFD, 0x4B, 0xC1, 0xE0, 0xF4,
+ 0x0B, 0x8B, 0xB8, 0xB4, 0xA9, 0xF6, 0xBC, 0xE9,
+ 0xBE, 0x2C, 0x46, 0x23, 0xC3, 0x99, 0xB0, 0xDC,
+ 0xA0, 0xDA, 0xB0, 0x5C, 0xB7, 0x28, 0x1B, 0x71,
+ 0xA2, 0x1B, 0x0E, 0xBC, 0xD9, 0xE5, 0x56, 0x70
+ },
+ {
+ 0x04, 0xB9, 0xCD, 0x3D, 0x20, 0xD2, 0x21, 0xC0,
+ 0x9A, 0xC8, 0x69, 0x13, 0xD3, 0xDC, 0x63, 0x04,
+ 0x19, 0x89, 0xA9, 0xA1, 0xE6, 0x94, 0xF1, 0xE6,
+ 0x39, 0xA3, 0xBA, 0x7E, 0x45, 0x18, 0x40, 0xF7,
+ 0x50, 0xC2, 0xFC, 0x19, 0x1D, 0x56, 0xAD, 0x61,
+ 0xF2, 0xE7, 0x93, 0x6B, 0xC0, 0xAC, 0x8E, 0x09,
+ 0x4B, 0x60, 0xCA, 0xEE, 0xD8, 0x78, 0xC1, 0x87,
+ 0x99, 0x04, 0x54, 0x02, 0xD6, 0x1C, 0xEA, 0xF9
+ },
+ {
+ 0xEC, 0x0E, 0x0E, 0xF7, 0x07, 0xE4, 0xED, 0x6C,
+ 0x0C, 0x66, 0xF9, 0xE0, 0x89, 0xE4, 0x95, 0x4B,
+ 0x05, 0x80, 0x30, 0xD2, 0xDD, 0x86, 0x39, 0x8F,
+ 0xE8, 0x40, 0x59, 0x63, 0x1F, 0x9E, 0xE5, 0x91,
+ 0xD9, 0xD7, 0x73, 0x75, 0x35, 0x51, 0x49, 0x17,
+ 0x8C, 0x0C, 0xF8, 0xF8, 0xE7, 0xC4, 0x9E, 0xD2,
+ 0xA5, 0xE4, 0xF9, 0x54, 0x88, 0xA2, 0x24, 0x70,
+ 0x67, 0xC2, 0x08, 0x51, 0x0F, 0xAD, 0xC4, 0x4C
+ },
+ {
+ 0x9A, 0x37, 0xCC, 0xE2, 0x73, 0xB7, 0x9C, 0x09,
+ 0x91, 0x36, 0x77, 0x51, 0x0E, 0xAF, 0x76, 0x88,
+ 0xE8, 0x9B, 0x33, 0x14, 0xD3, 0x53, 0x2F, 0xD2,
+ 0x76, 0x4C, 0x39, 0xDE, 0x02, 0x2A, 0x29, 0x45,
+ 0xB5, 0x71, 0x0D, 0x13, 0x51, 0x7A, 0xF8, 0xDD,
+ 0xC0, 0x31, 0x66, 0x24, 0xE7, 0x3B, 0xEC, 0x1C,
+ 0xE6, 0x7D, 0xF1, 0x52, 0x28, 0x30, 0x20, 0x36,
+ 0xF3, 0x30, 0xAB, 0x0C, 0xB4, 0xD2, 0x18, 0xDD
+ },
+ {
+ 0x4C, 0xF9, 0xBB, 0x8F, 0xB3, 0xD4, 0xDE, 0x8B,
+ 0x38, 0xB2, 0xF2, 0x62, 0xD3, 0xC4, 0x0F, 0x46,
+ 0xDF, 0xE7, 0x47, 0xE8, 0xFC, 0x0A, 0x41, 0x4C,
+ 0x19, 0x3D, 0x9F, 0xCF, 0x75, 0x31, 0x06, 0xCE,
+ 0x47, 0xA1, 0x8F, 0x17, 0x2F, 0x12, 0xE8, 0xA2,
+ 0xF1, 0xC2, 0x67, 0x26, 0x54, 0x53, 0x58, 0xE5,
+ 0xEE, 0x28, 0xC9, 0xE2, 0x21, 0x3A, 0x87, 0x87,
+ 0xAA, 0xFB, 0xC5, 0x16, 0xD2, 0x34, 0x31, 0x52
+ },
+ {
+ 0x64, 0xE0, 0xC6, 0x3A, 0xF9, 0xC8, 0x08, 0xFD,
+ 0x89, 0x31, 0x37, 0x12, 0x98, 0x67, 0xFD, 0x91,
+ 0x93, 0x9D, 0x53, 0xF2, 0xAF, 0x04, 0xBE, 0x4F,
+ 0xA2, 0x68, 0x00, 0x61, 0x00, 0x06, 0x9B, 0x2D,
+ 0x69, 0xDA, 0xA5, 0xC5, 0xD8, 0xED, 0x7F, 0xDD,
+ 0xCB, 0x2A, 0x70, 0xEE, 0xEC, 0xDF, 0x2B, 0x10,
+ 0x5D, 0xD4, 0x6A, 0x1E, 0x3B, 0x73, 0x11, 0x72,
+ 0x8F, 0x63, 0x9A, 0xB4, 0x89, 0x32, 0x6B, 0xC9
+ },
+ {
+ 0x5E, 0x9C, 0x93, 0x15, 0x8D, 0x65, 0x9B, 0x2D,
+ 0xEF, 0x06, 0xB0, 0xC3, 0xC7, 0x56, 0x50, 0x45,
+ 0x54, 0x26, 0x62, 0xD6, 0xEE, 0xE8, 0xA9, 0x6A,
+ 0x89, 0xB7, 0x8A, 0xDE, 0x09, 0xFE, 0x8B, 0x3D,
+ 0xCC, 0x09, 0x6D, 0x4F, 0xE4, 0x88, 0x15, 0xD8,
+ 0x8D, 0x8F, 0x82, 0x62, 0x01, 0x56, 0x60, 0x2A,
+ 0xF5, 0x41, 0x95, 0x5E, 0x1F, 0x6C, 0xA3, 0x0D,
+ 0xCE, 0x14, 0xE2, 0x54, 0xC3, 0x26, 0xB8, 0x8F
+ },
+ {
+ 0x77, 0x75, 0xDF, 0xF8, 0x89, 0x45, 0x8D, 0xD1,
+ 0x1A, 0xEF, 0x41, 0x72, 0x76, 0x85, 0x3E, 0x21,
+ 0x33, 0x5E, 0xB8, 0x8E, 0x4D, 0xEC, 0x9C, 0xFB,
+ 0x4E, 0x9E, 0xDB, 0x49, 0x82, 0x00, 0x88, 0x55,
+ 0x1A, 0x2C, 0xA6, 0x03, 0x39, 0xF1, 0x20, 0x66,
+ 0x10, 0x11, 0x69, 0xF0, 0xDF, 0xE8, 0x4B, 0x09,
+ 0x8F, 0xDD, 0xB1, 0x48, 0xD9, 0xDA, 0x6B, 0x3D,
+ 0x61, 0x3D, 0xF2, 0x63, 0x88, 0x9A, 0xD6, 0x4B
+ },
+ {
+ 0xF0, 0xD2, 0x80, 0x5A, 0xFB, 0xB9, 0x1F, 0x74,
+ 0x39, 0x51, 0x35, 0x1A, 0x6D, 0x02, 0x4F, 0x93,
+ 0x53, 0xA2, 0x3C, 0x7C, 0xE1, 0xFC, 0x2B, 0x05,
+ 0x1B, 0x3A, 0x8B, 0x96, 0x8C, 0x23, 0x3F, 0x46,
+ 0xF5, 0x0F, 0x80, 0x6E, 0xCB, 0x15, 0x68, 0xFF,
+ 0xAA, 0x0B, 0x60, 0x66, 0x1E, 0x33, 0x4B, 0x21,
+ 0xDD, 0xE0, 0x4F, 0x8F, 0xA1, 0x55, 0xAC, 0x74,
+ 0x0E, 0xEB, 0x42, 0xE2, 0x0B, 0x60, 0xD7, 0x64
+ },
+ {
+ 0x86, 0xA2, 0xAF, 0x31, 0x6E, 0x7D, 0x77, 0x54,
+ 0x20, 0x1B, 0x94, 0x2E, 0x27, 0x53, 0x64, 0xAC,
+ 0x12, 0xEA, 0x89, 0x62, 0xAB, 0x5B, 0xD8, 0xD7,
+ 0xFB, 0x27, 0x6D, 0xC5, 0xFB, 0xFF, 0xC8, 0xF9,
+ 0xA2, 0x8C, 0xAE, 0x4E, 0x48, 0x67, 0xDF, 0x67,
+ 0x80, 0xD9, 0xB7, 0x25, 0x24, 0x16, 0x09, 0x27,
+ 0xC8, 0x55, 0xDA, 0x5B, 0x60, 0x78, 0xE0, 0xB5,
+ 0x54, 0xAA, 0x91, 0xE3, 0x1C, 0xB9, 0xCA, 0x1D
+ },
+ {
+ 0x10, 0xBD, 0xF0, 0xCA, 0xA0, 0x80, 0x27, 0x05,
+ 0xE7, 0x06, 0x36, 0x9B, 0xAF, 0x8A, 0x3F, 0x79,
+ 0xD7, 0x2C, 0x0A, 0x03, 0xA8, 0x06, 0x75, 0xA7,
+ 0xBB, 0xB0, 0x0B, 0xE3, 0xA4, 0x5E, 0x51, 0x64,
+ 0x24, 0xD1, 0xEE, 0x88, 0xEF, 0xB5, 0x6F, 0x6D,
+ 0x57, 0x77, 0x54, 0x5A, 0xE6, 0xE2, 0x77, 0x65,
+ 0xC3, 0xA8, 0xF5, 0xE4, 0x93, 0xFC, 0x30, 0x89,
+ 0x15, 0x63, 0x89, 0x33, 0xA1, 0xDF, 0xEE, 0x55
+ },
+ {
+ 0xB0, 0x17, 0x81, 0x09, 0x2B, 0x17, 0x48, 0x45,
+ 0x9E, 0x2E, 0x4E, 0xC1, 0x78, 0x69, 0x66, 0x27,
+ 0xBF, 0x4E, 0xBA, 0xFE, 0xBB, 0xA7, 0x74, 0xEC,
+ 0xF0, 0x18, 0xB7, 0x9A, 0x68, 0xAE, 0xB8, 0x49,
+ 0x17, 0xBF, 0x0B, 0x84, 0xBB, 0x79, 0xD1, 0x7B,
+ 0x74, 0x31, 0x51, 0x14, 0x4C, 0xD6, 0x6B, 0x7B,
+ 0x33, 0xA4, 0xB9, 0xE5, 0x2C, 0x76, 0xC4, 0xE1,
+ 0x12, 0x05, 0x0F, 0xF5, 0x38, 0x5B, 0x7F, 0x0B
+ },
+ {
+ 0xC6, 0xDB, 0xC6, 0x1D, 0xEC, 0x6E, 0xAE, 0xAC,
+ 0x81, 0xE3, 0xD5, 0xF7, 0x55, 0x20, 0x3C, 0x8E,
+ 0x22, 0x05, 0x51, 0x53, 0x4A, 0x0B, 0x2F, 0xD1,
+ 0x05, 0xA9, 0x18, 0x89, 0x94, 0x5A, 0x63, 0x85,
+ 0x50, 0x20, 0x4F, 0x44, 0x09, 0x3D, 0xD9, 0x98,
+ 0xC0, 0x76, 0x20, 0x5D, 0xFF, 0xAD, 0x70, 0x3A,
+ 0x0E, 0x5C, 0xD3, 0xC7, 0xF4, 0x38, 0xA7, 0xE6,
+ 0x34, 0xCD, 0x59, 0xFE, 0xDE, 0xDB, 0x53, 0x9E
+ },
+ {
+ 0xEB, 0xA5, 0x1A, 0xCF, 0xFB, 0x4C, 0xEA, 0x31,
+ 0xDB, 0x4B, 0x8D, 0x87, 0xE9, 0xBF, 0x7D, 0xD4,
+ 0x8F, 0xE9, 0x7B, 0x02, 0x53, 0xAE, 0x67, 0xAA,
+ 0x58, 0x0F, 0x9A, 0xC4, 0xA9, 0xD9, 0x41, 0xF2,
+ 0xBE, 0xA5, 0x18, 0xEE, 0x28, 0x68, 0x18, 0xCC,
+ 0x9F, 0x63, 0x3F, 0x2A, 0x3B, 0x9F, 0xB6, 0x8E,
+ 0x59, 0x4B, 0x48, 0xCD, 0xD6, 0xD5, 0x15, 0xBF,
+ 0x1D, 0x52, 0xBA, 0x6C, 0x85, 0xA2, 0x03, 0xA7
+ },
+ {
+ 0x86, 0x22, 0x1F, 0x3A, 0xDA, 0x52, 0x03, 0x7B,
+ 0x72, 0x22, 0x4F, 0x10, 0x5D, 0x79, 0x99, 0x23,
+ 0x1C, 0x5E, 0x55, 0x34, 0xD0, 0x3D, 0xA9, 0xD9,
+ 0xC0, 0xA1, 0x2A, 0xCB, 0x68, 0x46, 0x0C, 0xD3,
+ 0x75, 0xDA, 0xF8, 0xE2, 0x43, 0x86, 0x28, 0x6F,
+ 0x96, 0x68, 0xF7, 0x23, 0x26, 0xDB, 0xF9, 0x9B,
+ 0xA0, 0x94, 0x39, 0x24, 0x37, 0xD3, 0x98, 0xE9,
+ 0x5B, 0xB8, 0x16, 0x1D, 0x71, 0x7F, 0x89, 0x91
+ },
+ {
+ 0x55, 0x95, 0xE0, 0x5C, 0x13, 0xA7, 0xEC, 0x4D,
+ 0xC8, 0xF4, 0x1F, 0xB7, 0x0C, 0xB5, 0x0A, 0x71,
+ 0xBC, 0xE1, 0x7C, 0x02, 0x4F, 0xF6, 0xDE, 0x7A,
+ 0xF6, 0x18, 0xD0, 0xCC, 0x4E, 0x9C, 0x32, 0xD9,
+ 0x57, 0x0D, 0x6D, 0x3E, 0xA4, 0x5B, 0x86, 0x52,
+ 0x54, 0x91, 0x03, 0x0C, 0x0D, 0x8F, 0x2B, 0x18,
+ 0x36, 0xD5, 0x77, 0x8C, 0x1C, 0xE7, 0x35, 0xC1,
+ 0x77, 0x07, 0xDF, 0x36, 0x4D, 0x05, 0x43, 0x47
+ },
+ {
+ 0xCE, 0x0F, 0x4F, 0x6A, 0xCA, 0x89, 0x59, 0x0A,
+ 0x37, 0xFE, 0x03, 0x4D, 0xD7, 0x4D, 0xD5, 0xFA,
+ 0x65, 0xEB, 0x1C, 0xBD, 0x0A, 0x41, 0x50, 0x8A,
+ 0xAD, 0xDC, 0x09, 0x35, 0x1A, 0x3C, 0xEA, 0x6D,
+ 0x18, 0xCB, 0x21, 0x89, 0xC5, 0x4B, 0x70, 0x0C,
+ 0x00, 0x9F, 0x4C, 0xBF, 0x05, 0x21, 0xC7, 0xEA,
+ 0x01, 0xBE, 0x61, 0xC5, 0xAE, 0x09, 0xCB, 0x54,
+ 0xF2, 0x7B, 0xC1, 0xB4, 0x4D, 0x65, 0x8C, 0x82
+ },
+ {
+ 0x7E, 0xE8, 0x0B, 0x06, 0xA2, 0x15, 0xA3, 0xBC,
+ 0xA9, 0x70, 0xC7, 0x7C, 0xDA, 0x87, 0x61, 0x82,
+ 0x2B, 0xC1, 0x03, 0xD4, 0x4F, 0xA4, 0xB3, 0x3F,
+ 0x4D, 0x07, 0xDC, 0xB9, 0x97, 0xE3, 0x6D, 0x55,
+ 0x29, 0x8B, 0xCE, 0xAE, 0x12, 0x24, 0x1B, 0x3F,
+ 0xA0, 0x7F, 0xA6, 0x3B, 0xE5, 0x57, 0x60, 0x68,
+ 0xDA, 0x38, 0x7B, 0x8D, 0x58, 0x59, 0xAE, 0xAB,
+ 0x70, 0x13, 0x69, 0x84, 0x8B, 0x17, 0x6D, 0x42
+ },
+ {
+ 0x94, 0x0A, 0x84, 0xB6, 0xA8, 0x4D, 0x10, 0x9A,
+ 0xAB, 0x20, 0x8C, 0x02, 0x4C, 0x6C, 0xE9, 0x64,
+ 0x76, 0x76, 0xBA, 0x0A, 0xAA, 0x11, 0xF8, 0x6D,
+ 0xBB, 0x70, 0x18, 0xF9, 0xFD, 0x22, 0x20, 0xA6,
+ 0xD9, 0x01, 0xA9, 0x02, 0x7F, 0x9A, 0xBC, 0xF9,
+ 0x35, 0x37, 0x27, 0x27, 0xCB, 0xF0, 0x9E, 0xBD,
+ 0x61, 0xA2, 0xA2, 0xEE, 0xB8, 0x76, 0x53, 0xE8,
+ 0xEC, 0xAD, 0x1B, 0xAB, 0x85, 0xDC, 0x83, 0x27
+ },
+ {
+ 0x20, 0x20, 0xB7, 0x82, 0x64, 0xA8, 0x2D, 0x9F,
+ 0x41, 0x51, 0x14, 0x1A, 0xDB, 0xA8, 0xD4, 0x4B,
+ 0xF2, 0x0C, 0x5E, 0xC0, 0x62, 0xEE, 0xE9, 0xB5,
+ 0x95, 0xA1, 0x1F, 0x9E, 0x84, 0x90, 0x1B, 0xF1,
+ 0x48, 0xF2, 0x98, 0xE0, 0xC9, 0xF8, 0x77, 0x7D,
+ 0xCD, 0xBC, 0x7C, 0xC4, 0x67, 0x0A, 0xAC, 0x35,
+ 0x6C, 0xC2, 0xAD, 0x8C, 0xCB, 0x16, 0x29, 0xF1,
+ 0x6F, 0x6A, 0x76, 0xBC, 0xEF, 0xBE, 0xE7, 0x60
+ },
+ {
+ 0xD1, 0xB8, 0x97, 0xB0, 0xE0, 0x75, 0xBA, 0x68,
+ 0xAB, 0x57, 0x2A, 0xDF, 0x9D, 0x9C, 0x43, 0x66,
+ 0x63, 0xE4, 0x3E, 0xB3, 0xD8, 0xE6, 0x2D, 0x92,
+ 0xFC, 0x49, 0xC9, 0xBE, 0x21, 0x4E, 0x6F, 0x27,
+ 0x87, 0x3F, 0xE2, 0x15, 0xA6, 0x51, 0x70, 0xE6,
+ 0xBE, 0xA9, 0x02, 0x40, 0x8A, 0x25, 0xB4, 0x95,
+ 0x06, 0xF4, 0x7B, 0xAB, 0xD0, 0x7C, 0xEC, 0xF7,
+ 0x11, 0x3E, 0xC1, 0x0C, 0x5D, 0xD3, 0x12, 0x52
+ },
+ {
+ 0xB1, 0x4D, 0x0C, 0x62, 0xAB, 0xFA, 0x46, 0x9A,
+ 0x35, 0x71, 0x77, 0xE5, 0x94, 0xC1, 0x0C, 0x19,
+ 0x42, 0x43, 0xED, 0x20, 0x25, 0xAB, 0x8A, 0xA5,
+ 0xAD, 0x2F, 0xA4, 0x1A, 0xD3, 0x18, 0xE0, 0xFF,
+ 0x48, 0xCD, 0x5E, 0x60, 0xBE, 0xC0, 0x7B, 0x13,
+ 0x63, 0x4A, 0x71, 0x1D, 0x23, 0x26, 0xE4, 0x88,
+ 0xA9, 0x85, 0xF3, 0x1E, 0x31, 0x15, 0x33, 0x99,
+ 0xE7, 0x30, 0x88, 0xEF, 0xC8, 0x6A, 0x5C, 0x55
+ },
+ {
+ 0x41, 0x69, 0xC5, 0xCC, 0x80, 0x8D, 0x26, 0x97,
+ 0xDC, 0x2A, 0x82, 0x43, 0x0D, 0xC2, 0x3E, 0x3C,
+ 0xD3, 0x56, 0xDC, 0x70, 0xA9, 0x45, 0x66, 0x81,
+ 0x05, 0x02, 0xB8, 0xD6, 0x55, 0xB3, 0x9A, 0xBF,
+ 0x9E, 0x7F, 0x90, 0x2F, 0xE7, 0x17, 0xE0, 0x38,
+ 0x92, 0x19, 0x85, 0x9E, 0x19, 0x45, 0xDF, 0x1A,
+ 0xF6, 0xAD, 0xA4, 0x2E, 0x4C, 0xCD, 0xA5, 0x5A,
+ 0x19, 0x7B, 0x71, 0x00, 0xA3, 0x0C, 0x30, 0xA1
+ },
+ {
+ 0x25, 0x8A, 0x4E, 0xDB, 0x11, 0x3D, 0x66, 0xC8,
+ 0x39, 0xC8, 0xB1, 0xC9, 0x1F, 0x15, 0xF3, 0x5A,
+ 0xDE, 0x60, 0x9F, 0x11, 0xCD, 0x7F, 0x86, 0x81,
+ 0xA4, 0x04, 0x5B, 0x9F, 0xEF, 0x7B, 0x0B, 0x24,
+ 0xC8, 0x2C, 0xDA, 0x06, 0xA5, 0xF2, 0x06, 0x7B,
+ 0x36, 0x88, 0x25, 0xE3, 0x91, 0x4E, 0x53, 0xD6,
+ 0x94, 0x8E, 0xDE, 0x92, 0xEF, 0xD6, 0xE8, 0x38,
+ 0x7F, 0xA2, 0xE5, 0x37, 0x23, 0x9B, 0x5B, 0xEE
+ },
+ {
+ 0x79, 0xD2, 0xD8, 0x69, 0x6D, 0x30, 0xF3, 0x0F,
+ 0xB3, 0x46, 0x57, 0x76, 0x11, 0x71, 0xA1, 0x1E,
+ 0x6C, 0x3F, 0x1E, 0x64, 0xCB, 0xE7, 0xBE, 0xBE,
+ 0xE1, 0x59, 0xCB, 0x95, 0xBF, 0xAF, 0x81, 0x2B,
+ 0x4F, 0x41, 0x1E, 0x2F, 0x26, 0xD9, 0xC4, 0x21,
+ 0xDC, 0x2C, 0x28, 0x4A, 0x33, 0x42, 0xD8, 0x23,
+ 0xEC, 0x29, 0x38, 0x49, 0xE4, 0x2D, 0x1E, 0x46,
+ 0xB0, 0xA4, 0xAC, 0x1E, 0x3C, 0x86, 0xAB, 0xAA
+ },
+ {
+ 0x8B, 0x94, 0x36, 0x01, 0x0D, 0xC5, 0xDE, 0xE9,
+ 0x92, 0xAE, 0x38, 0xAE, 0xA9, 0x7F, 0x2C, 0xD6,
+ 0x3B, 0x94, 0x6D, 0x94, 0xFE, 0xDD, 0x2E, 0xC9,
+ 0x67, 0x1D, 0xCD, 0xE3, 0xBD, 0x4C, 0xE9, 0x56,
+ 0x4D, 0x55, 0x5C, 0x66, 0xC1, 0x5B, 0xB2, 0xB9,
+ 0x00, 0xDF, 0x72, 0xED, 0xB6, 0xB8, 0x91, 0xEB,
+ 0xCA, 0xDF, 0xEF, 0xF6, 0x3C, 0x9E, 0xA4, 0x03,
+ 0x6A, 0x99, 0x8B, 0xE7, 0x97, 0x39, 0x81, 0xE7
+ },
+ {
+ 0xC8, 0xF6, 0x8E, 0x69, 0x6E, 0xD2, 0x82, 0x42,
+ 0xBF, 0x99, 0x7F, 0x5B, 0x3B, 0x34, 0x95, 0x95,
+ 0x08, 0xE4, 0x2D, 0x61, 0x38, 0x10, 0xF1, 0xE2,
+ 0xA4, 0x35, 0xC9, 0x6E, 0xD2, 0xFF, 0x56, 0x0C,
+ 0x70, 0x22, 0xF3, 0x61, 0xA9, 0x23, 0x4B, 0x98,
+ 0x37, 0xFE, 0xEE, 0x90, 0xBF, 0x47, 0x92, 0x2E,
+ 0xE0, 0xFD, 0x5F, 0x8D, 0xDF, 0x82, 0x37, 0x18,
+ 0xD8, 0x6D, 0x1E, 0x16, 0xC6, 0x09, 0x00, 0x71
+ },
+ {
+ 0xB0, 0x2D, 0x3E, 0xEE, 0x48, 0x60, 0xD5, 0x86,
+ 0x8B, 0x2C, 0x39, 0xCE, 0x39, 0xBF, 0xE8, 0x10,
+ 0x11, 0x29, 0x05, 0x64, 0xDD, 0x67, 0x8C, 0x85,
+ 0xE8, 0x78, 0x3F, 0x29, 0x30, 0x2D, 0xFC, 0x13,
+ 0x99, 0xBA, 0x95, 0xB6, 0xB5, 0x3C, 0xD9, 0xEB,
+ 0xBF, 0x40, 0x0C, 0xCA, 0x1D, 0xB0, 0xAB, 0x67,
+ 0xE1, 0x9A, 0x32, 0x5F, 0x2D, 0x11, 0x58, 0x12,
+ 0xD2, 0x5D, 0x00, 0x97, 0x8A, 0xD1, 0xBC, 0xA4
+ },
+ {
+ 0x76, 0x93, 0xEA, 0x73, 0xAF, 0x3A, 0xC4, 0xDA,
+ 0xD2, 0x1C, 0xA0, 0xD8, 0xDA, 0x85, 0xB3, 0x11,
+ 0x8A, 0x7D, 0x1C, 0x60, 0x24, 0xCF, 0xAF, 0x55,
+ 0x76, 0x99, 0x86, 0x82, 0x17, 0xBC, 0x0C, 0x2F,
+ 0x44, 0xA1, 0x99, 0xBC, 0x6C, 0x0E, 0xDD, 0x51,
+ 0x97, 0x98, 0xBA, 0x05, 0xBD, 0x5B, 0x1B, 0x44,
+ 0x84, 0x34, 0x6A, 0x47, 0xC2, 0xCA, 0xDF, 0x6B,
+ 0xF3, 0x0B, 0x78, 0x5C, 0xC8, 0x8B, 0x2B, 0xAF
+ },
+ {
+ 0xA0, 0xE5, 0xC1, 0xC0, 0x03, 0x1C, 0x02, 0xE4,
+ 0x8B, 0x7F, 0x09, 0xA5, 0xE8, 0x96, 0xEE, 0x9A,
+ 0xEF, 0x2F, 0x17, 0xFC, 0x9E, 0x18, 0xE9, 0x97,
+ 0xD7, 0xF6, 0xCA, 0xC7, 0xAE, 0x31, 0x64, 0x22,
+ 0xC2, 0xB1, 0xE7, 0x79, 0x84, 0xE5, 0xF3, 0xA7,
+ 0x3C, 0xB4, 0x5D, 0xEE, 0xD5, 0xD3, 0xF8, 0x46,
+ 0x00, 0x10, 0x5E, 0x6E, 0xE3, 0x8F, 0x2D, 0x09,
+ 0x0C, 0x7D, 0x04, 0x42, 0xEA, 0x34, 0xC4, 0x6D
+ },
+ {
+ 0x41, 0xDA, 0xA6, 0xAD, 0xCF, 0xDB, 0x69, 0xF1,
+ 0x44, 0x0C, 0x37, 0xB5, 0x96, 0x44, 0x01, 0x65,
+ 0xC1, 0x5A, 0xDA, 0x59, 0x68, 0x13, 0xE2, 0xE2,
+ 0x2F, 0x06, 0x0F, 0xCD, 0x55, 0x1F, 0x24, 0xDE,
+ 0xE8, 0xE0, 0x4B, 0xA6, 0x89, 0x03, 0x87, 0x88,
+ 0x6C, 0xEE, 0xC4, 0xA7, 0xA0, 0xD7, 0xFC, 0x6B,
+ 0x44, 0x50, 0x63, 0x92, 0xEC, 0x38, 0x22, 0xC0,
+ 0xD8, 0xC1, 0xAC, 0xFC, 0x7D, 0x5A, 0xEB, 0xE8
+ },
+ {
+ 0x14, 0xD4, 0xD4, 0x0D, 0x59, 0x84, 0xD8, 0x4C,
+ 0x5C, 0xF7, 0x52, 0x3B, 0x77, 0x98, 0xB2, 0x54,
+ 0xE2, 0x75, 0xA3, 0xA8, 0xCC, 0x0A, 0x1B, 0xD0,
+ 0x6E, 0xBC, 0x0B, 0xEE, 0x72, 0x68, 0x56, 0xAC,
+ 0xC3, 0xCB, 0xF5, 0x16, 0xFF, 0x66, 0x7C, 0xDA,
+ 0x20, 0x58, 0xAD, 0x5C, 0x34, 0x12, 0x25, 0x44,
+ 0x60, 0xA8, 0x2C, 0x92, 0x18, 0x70, 0x41, 0x36,
+ 0x3C, 0xC7, 0x7A, 0x4D, 0xC2, 0x15, 0xE4, 0x87
+ },
+ {
+ 0xD0, 0xE7, 0xA1, 0xE2, 0xB9, 0xA4, 0x47, 0xFE,
+ 0xE8, 0x3E, 0x22, 0x77, 0xE9, 0xFF, 0x80, 0x10,
+ 0xC2, 0xF3, 0x75, 0xAE, 0x12, 0xFA, 0x7A, 0xAA,
+ 0x8C, 0xA5, 0xA6, 0x31, 0x78, 0x68, 0xA2, 0x6A,
+ 0x36, 0x7A, 0x0B, 0x69, 0xFB, 0xC1, 0xCF, 0x32,
+ 0xA5, 0x5D, 0x34, 0xEB, 0x37, 0x06, 0x63, 0x01,
+ 0x6F, 0x3D, 0x21, 0x10, 0x23, 0x0E, 0xBA, 0x75,
+ 0x40, 0x28, 0xA5, 0x6F, 0x54, 0xAC, 0xF5, 0x7C
+ },
+ {
+ 0xE7, 0x71, 0xAA, 0x8D, 0xB5, 0xA3, 0xE0, 0x43,
+ 0xE8, 0x17, 0x8F, 0x39, 0xA0, 0x85, 0x7B, 0xA0,
+ 0x4A, 0x3F, 0x18, 0xE4, 0xAA, 0x05, 0x74, 0x3C,
+ 0xF8, 0xD2, 0x22, 0xB0, 0xB0, 0x95, 0x82, 0x53,
+ 0x50, 0xBA, 0x42, 0x2F, 0x63, 0x38, 0x2A, 0x23,
+ 0xD9, 0x2E, 0x41, 0x49, 0x07, 0x4E, 0x81, 0x6A,
+ 0x36, 0xC1, 0xCD, 0x28, 0x28, 0x4D, 0x14, 0x62,
+ 0x67, 0x94, 0x0B, 0x31, 0xF8, 0x81, 0x8E, 0xA2
+ },
+ {
+ 0xFE, 0xB4, 0xFD, 0x6F, 0x9E, 0x87, 0xA5, 0x6B,
+ 0xEF, 0x39, 0x8B, 0x32, 0x84, 0xD2, 0xBD, 0xA5,
+ 0xB5, 0xB0, 0xE1, 0x66, 0x58, 0x3A, 0x66, 0xB6,
+ 0x1E, 0x53, 0x84, 0x57, 0xFF, 0x05, 0x84, 0x87,
+ 0x2C, 0x21, 0xA3, 0x29, 0x62, 0xB9, 0x92, 0x8F,
+ 0xFA, 0xB5, 0x8D, 0xE4, 0xAF, 0x2E, 0xDD, 0x4E,
+ 0x15, 0xD8, 0xB3, 0x55, 0x70, 0x52, 0x32, 0x07,
+ 0xFF, 0x4E, 0x2A, 0x5A, 0xA7, 0x75, 0x4C, 0xAA
+ },
+ {
+ 0x46, 0x2F, 0x17, 0xBF, 0x00, 0x5F, 0xB1, 0xC1,
+ 0xB9, 0xE6, 0x71, 0x77, 0x9F, 0x66, 0x52, 0x09,
+ 0xEC, 0x28, 0x73, 0xE3, 0xE4, 0x11, 0xF9, 0x8D,
+ 0xAB, 0xF2, 0x40, 0xA1, 0xD5, 0xEC, 0x3F, 0x95,
+ 0xCE, 0x67, 0x96, 0xB6, 0xFC, 0x23, 0xFE, 0x17,
+ 0x19, 0x03, 0xB5, 0x02, 0x02, 0x34, 0x67, 0xDE,
+ 0xC7, 0x27, 0x3F, 0xF7, 0x48, 0x79, 0xB9, 0x29,
+ 0x67, 0xA2, 0xA4, 0x3A, 0x5A, 0x18, 0x3D, 0x33
+ },
+ {
+ 0xD3, 0x33, 0x81, 0x93, 0xB6, 0x45, 0x53, 0xDB,
+ 0xD3, 0x8D, 0x14, 0x4B, 0xEA, 0x71, 0xC5, 0x91,
+ 0x5B, 0xB1, 0x10, 0xE2, 0xD8, 0x81, 0x80, 0xDB,
+ 0xC5, 0xDB, 0x36, 0x4F, 0xD6, 0x17, 0x1D, 0xF3,
+ 0x17, 0xFC, 0x72, 0x68, 0x83, 0x1B, 0x5A, 0xEF,
+ 0x75, 0xE4, 0x34, 0x2B, 0x2F, 0xAD, 0x87, 0x97,
+ 0xBA, 0x39, 0xED, 0xDC, 0xEF, 0x80, 0xE6, 0xEC,
+ 0x08, 0x15, 0x93, 0x50, 0xB1, 0xAD, 0x69, 0x6D
+ },
+ {
+ 0xE1, 0x59, 0x0D, 0x58, 0x5A, 0x3D, 0x39, 0xF7,
+ 0xCB, 0x59, 0x9A, 0xBD, 0x47, 0x90, 0x70, 0x96,
+ 0x64, 0x09, 0xA6, 0x84, 0x6D, 0x43, 0x77, 0xAC,
+ 0xF4, 0x47, 0x1D, 0x06, 0x5D, 0x5D, 0xB9, 0x41,
+ 0x29, 0xCC, 0x9B, 0xE9, 0x25, 0x73, 0xB0, 0x5E,
+ 0xD2, 0x26, 0xBE, 0x1E, 0x9B, 0x7C, 0xB0, 0xCA,
+ 0xBE, 0x87, 0x91, 0x85, 0x89, 0xF8, 0x0D, 0xAD,
+ 0xD4, 0xEF, 0x5E, 0xF2, 0x5A, 0x93, 0xD2, 0x8E
+ },
+ {
+ 0xF8, 0xF3, 0x72, 0x6A, 0xC5, 0xA2, 0x6C, 0xC8,
+ 0x01, 0x32, 0x49, 0x3A, 0x6F, 0xED, 0xCB, 0x0E,
+ 0x60, 0x76, 0x0C, 0x09, 0xCF, 0xC8, 0x4C, 0xAD,
+ 0x17, 0x81, 0x75, 0x98, 0x68, 0x19, 0x66, 0x5E,
+ 0x76, 0x84, 0x2D, 0x7B, 0x9F, 0xED, 0xF7, 0x6D,
+ 0xDD, 0xEB, 0xF5, 0xD3, 0xF5, 0x6F, 0xAA, 0xAD,
+ 0x44, 0x77, 0x58, 0x7A, 0xF2, 0x16, 0x06, 0xD3,
+ 0x96, 0xAE, 0x57, 0x0D, 0x8E, 0x71, 0x9A, 0xF2
+ },
+ {
+ 0x30, 0x18, 0x60, 0x55, 0xC0, 0x79, 0x49, 0x94,
+ 0x81, 0x83, 0xC8, 0x50, 0xE9, 0xA7, 0x56, 0xCC,
+ 0x09, 0x93, 0x7E, 0x24, 0x7D, 0x9D, 0x92, 0x8E,
+ 0x86, 0x9E, 0x20, 0xBA, 0xFC, 0x3C, 0xD9, 0x72,
+ 0x17, 0x19, 0xD3, 0x4E, 0x04, 0xA0, 0x89, 0x9B,
+ 0x92, 0xC7, 0x36, 0x08, 0x45, 0x50, 0x18, 0x68,
+ 0x86, 0xEF, 0xBA, 0x2E, 0x79, 0x0D, 0x8B, 0xE6,
+ 0xEB, 0xF0, 0x40, 0xB2, 0x09, 0xC4, 0x39, 0xA4
+ },
+ {
+ 0xF3, 0xC4, 0x27, 0x6C, 0xB8, 0x63, 0x63, 0x77,
+ 0x12, 0xC2, 0x41, 0xC4, 0x44, 0xC5, 0xCC, 0x1E,
+ 0x35, 0x54, 0xE0, 0xFD, 0xDB, 0x17, 0x4D, 0x03,
+ 0x58, 0x19, 0xDD, 0x83, 0xEB, 0x70, 0x0B, 0x4C,
+ 0xE8, 0x8D, 0xF3, 0xAB, 0x38, 0x41, 0xBA, 0x02,
+ 0x08, 0x5E, 0x1A, 0x99, 0xB4, 0xE1, 0x73, 0x10,
+ 0xC5, 0x34, 0x10, 0x75, 0xC0, 0x45, 0x8B, 0xA3,
+ 0x76, 0xC9, 0x5A, 0x68, 0x18, 0xFB, 0xB3, 0xE2
+ },
+ {
+ 0x0A, 0xA0, 0x07, 0xC4, 0xDD, 0x9D, 0x58, 0x32,
+ 0x39, 0x30, 0x40, 0xA1, 0x58, 0x3C, 0x93, 0x0B,
+ 0xCA, 0x7D, 0xC5, 0xE7, 0x7E, 0xA5, 0x3A, 0xDD,
+ 0x7E, 0x2B, 0x3F, 0x7C, 0x8E, 0x23, 0x13, 0x68,
+ 0x04, 0x35, 0x20, 0xD4, 0xA3, 0xEF, 0x53, 0xC9,
+ 0x69, 0xB6, 0xBB, 0xFD, 0x02, 0x59, 0x46, 0xF6,
+ 0x32, 0xBD, 0x7F, 0x76, 0x5D, 0x53, 0xC2, 0x10,
+ 0x03, 0xB8, 0xF9, 0x83, 0xF7, 0x5E, 0x2A, 0x6A
+ },
+ {
+ 0x08, 0xE9, 0x46, 0x47, 0x20, 0x53, 0x3B, 0x23,
+ 0xA0, 0x4E, 0xC2, 0x4F, 0x7A, 0xE8, 0xC1, 0x03,
+ 0x14, 0x5F, 0x76, 0x53, 0x87, 0xD7, 0x38, 0x77,
+ 0x7D, 0x3D, 0x34, 0x34, 0x77, 0xFD, 0x1C, 0x58,
+ 0xDB, 0x05, 0x21, 0x42, 0xCA, 0xB7, 0x54, 0xEA,
+ 0x67, 0x43, 0x78, 0xE1, 0x87, 0x66, 0xC5, 0x35,
+ 0x42, 0xF7, 0x19, 0x70, 0x17, 0x1C, 0xC4, 0xF8,
+ 0x16, 0x94, 0x24, 0x6B, 0x71, 0x7D, 0x75, 0x64
+ },
+ {
+ 0xD3, 0x7F, 0xF7, 0xAD, 0x29, 0x79, 0x93, 0xE7,
+ 0xEC, 0x21, 0xE0, 0xF1, 0xB4, 0xB5, 0xAE, 0x71,
+ 0x9C, 0xDC, 0x83, 0xC5, 0xDB, 0x68, 0x75, 0x27,
+ 0xF2, 0x75, 0x16, 0xCB, 0xFF, 0xA8, 0x22, 0x88,
+ 0x8A, 0x68, 0x10, 0xEE, 0x5C, 0x1C, 0xA7, 0xBF,
+ 0xE3, 0x32, 0x11, 0x19, 0xBE, 0x1A, 0xB7, 0xBF,
+ 0xA0, 0xA5, 0x02, 0x67, 0x1C, 0x83, 0x29, 0x49,
+ 0x4D, 0xF7, 0xAD, 0x6F, 0x52, 0x2D, 0x44, 0x0F
+ },
+ {
+ 0xDD, 0x90, 0x42, 0xF6, 0xE4, 0x64, 0xDC, 0xF8,
+ 0x6B, 0x12, 0x62, 0xF6, 0xAC, 0xCF, 0xAF, 0xBD,
+ 0x8C, 0xFD, 0x90, 0x2E, 0xD3, 0xED, 0x89, 0xAB,
+ 0xF7, 0x8F, 0xFA, 0x48, 0x2D, 0xBD, 0xEE, 0xB6,
+ 0x96, 0x98, 0x42, 0x39, 0x4C, 0x9A, 0x11, 0x68,
+ 0xAE, 0x3D, 0x48, 0x1A, 0x01, 0x78, 0x42, 0xF6,
+ 0x60, 0x00, 0x2D, 0x42, 0x44, 0x7C, 0x6B, 0x22,
+ 0xF7, 0xB7, 0x2F, 0x21, 0xAA, 0xE0, 0x21, 0xC9
+ },
+ {
+ 0xBD, 0x96, 0x5B, 0xF3, 0x1E, 0x87, 0xD7, 0x03,
+ 0x27, 0x53, 0x6F, 0x2A, 0x34, 0x1C, 0xEB, 0xC4,
+ 0x76, 0x8E, 0xCA, 0x27, 0x5F, 0xA0, 0x5E, 0xF9,
+ 0x8F, 0x7F, 0x1B, 0x71, 0xA0, 0x35, 0x12, 0x98,
+ 0xDE, 0x00, 0x6F, 0xBA, 0x73, 0xFE, 0x67, 0x33,
+ 0xED, 0x01, 0xD7, 0x58, 0x01, 0xB4, 0xA9, 0x28,
+ 0xE5, 0x42, 0x31, 0xB3, 0x8E, 0x38, 0xC5, 0x62,
+ 0xB2, 0xE3, 0x3E, 0xA1, 0x28, 0x49, 0x92, 0xFA
+ },
+ {
+ 0x65, 0x67, 0x6D, 0x80, 0x06, 0x17, 0x97, 0x2F,
+ 0xBD, 0x87, 0xE4, 0xB9, 0x51, 0x4E, 0x1C, 0x67,
+ 0x40, 0x2B, 0x7A, 0x33, 0x10, 0x96, 0xD3, 0xBF,
+ 0xAC, 0x22, 0xF1, 0xAB, 0xB9, 0x53, 0x74, 0xAB,
+ 0xC9, 0x42, 0xF1, 0x6E, 0x9A, 0xB0, 0xEA, 0xD3,
+ 0x3B, 0x87, 0xC9, 0x19, 0x68, 0xA6, 0xE5, 0x09,
+ 0xE1, 0x19, 0xFF, 0x07, 0x78, 0x7B, 0x3E, 0xF4,
+ 0x83, 0xE1, 0xDC, 0xDC, 0xCF, 0x6E, 0x30, 0x22
+ },
+ {
+ 0x93, 0x9F, 0xA1, 0x89, 0x69, 0x9C, 0x5D, 0x2C,
+ 0x81, 0xDD, 0xD1, 0xFF, 0xC1, 0xFA, 0x20, 0x7C,
+ 0x97, 0x0B, 0x6A, 0x36, 0x85, 0xBB, 0x29, 0xCE,
+ 0x1D, 0x3E, 0x99, 0xD4, 0x2F, 0x2F, 0x74, 0x42,
+ 0xDA, 0x53, 0xE9, 0x5A, 0x72, 0x90, 0x73, 0x14,
+ 0xF4, 0x58, 0x83, 0x99, 0xA3, 0xFF, 0x5B, 0x0A,
+ 0x92, 0xBE, 0xB3, 0xF6, 0xBE, 0x26, 0x94, 0xF9,
+ 0xF8, 0x6E, 0xCF, 0x29, 0x52, 0xD5, 0xB4, 0x1C
+ },
+ {
+ 0xC5, 0x16, 0x54, 0x17, 0x01, 0x86, 0x3F, 0x91,
+ 0x00, 0x5F, 0x31, 0x41, 0x08, 0xCE, 0xEC, 0xE3,
+ 0xC6, 0x43, 0xE0, 0x4F, 0xC8, 0xC4, 0x2F, 0xD2,
+ 0xFF, 0x55, 0x62, 0x20, 0xE6, 0x16, 0xAA, 0xA6,
+ 0xA4, 0x8A, 0xEB, 0x97, 0xA8, 0x4B, 0xAD, 0x74,
+ 0x78, 0x2E, 0x8D, 0xFF, 0x96, 0xA1, 0xA2, 0xFA,
+ 0x94, 0x93, 0x39, 0xD7, 0x22, 0xED, 0xCA, 0xA3,
+ 0x2B, 0x57, 0x06, 0x70, 0x41, 0xDF, 0x88, 0xCC
+ },
+ {
+ 0x98, 0x7F, 0xD6, 0xE0, 0xD6, 0x85, 0x7C, 0x55,
+ 0x3E, 0xAE, 0xBB, 0x3D, 0x34, 0x97, 0x0A, 0x2C,
+ 0x2F, 0x6E, 0x89, 0xA3, 0x54, 0x8F, 0x49, 0x25,
+ 0x21, 0x72, 0x2B, 0x80, 0xA1, 0xC2, 0x1A, 0x15,
+ 0x38, 0x92, 0x34, 0x6D, 0x2C, 0xBA, 0x64, 0x44,
+ 0x21, 0x2D, 0x56, 0xDA, 0x9A, 0x26, 0xE3, 0x24,
+ 0xDC, 0xCB, 0xC0, 0xDC, 0xDE, 0x85, 0xD4, 0xD2,
+ 0xEE, 0x43, 0x99, 0xEE, 0xC5, 0xA6, 0x4E, 0x8F
+ },
+ {
+ 0xAE, 0x56, 0xDE, 0xB1, 0xC2, 0x32, 0x8D, 0x9C,
+ 0x40, 0x17, 0x70, 0x6B, 0xCE, 0x6E, 0x99, 0xD4,
+ 0x13, 0x49, 0x05, 0x3B, 0xA9, 0xD3, 0x36, 0xD6,
+ 0x77, 0xC4, 0xC2, 0x7D, 0x9F, 0xD5, 0x0A, 0xE6,
+ 0xAE, 0xE1, 0x7E, 0x85, 0x31, 0x54, 0xE1, 0xF4,
+ 0xFE, 0x76, 0x72, 0x34, 0x6D, 0xA2, 0xEA, 0xA3,
+ 0x1E, 0xEA, 0x53, 0xFC, 0xF2, 0x4A, 0x22, 0x80,
+ 0x4F, 0x11, 0xD0, 0x3D, 0xA6, 0xAB, 0xFC, 0x2B
+ },
+ {
+ 0x49, 0xD6, 0xA6, 0x08, 0xC9, 0xBD, 0xE4, 0x49,
+ 0x18, 0x70, 0x49, 0x85, 0x72, 0xAC, 0x31, 0xAA,
+ 0xC3, 0xFA, 0x40, 0x93, 0x8B, 0x38, 0xA7, 0x81,
+ 0x8F, 0x72, 0x38, 0x3E, 0xB0, 0x40, 0xAD, 0x39,
+ 0x53, 0x2B, 0xC0, 0x65, 0x71, 0xE1, 0x3D, 0x76,
+ 0x7E, 0x69, 0x45, 0xAB, 0x77, 0xC0, 0xBD, 0xC3,
+ 0xB0, 0x28, 0x42, 0x53, 0x34, 0x3F, 0x9F, 0x6C,
+ 0x12, 0x44, 0xEB, 0xF2, 0xFF, 0x0D, 0xF8, 0x66
+ },
+ {
+ 0xDA, 0x58, 0x2A, 0xD8, 0xC5, 0x37, 0x0B, 0x44,
+ 0x69, 0xAF, 0x86, 0x2A, 0xA6, 0x46, 0x7A, 0x22,
+ 0x93, 0xB2, 0xB2, 0x8B, 0xD8, 0x0A, 0xE0, 0xE9,
+ 0x1F, 0x42, 0x5A, 0xD3, 0xD4, 0x72, 0x49, 0xFD,
+ 0xF9, 0x88, 0x25, 0xCC, 0x86, 0xF1, 0x40, 0x28,
+ 0xC3, 0x30, 0x8C, 0x98, 0x04, 0xC7, 0x8B, 0xFE,
+ 0xEE, 0xEE, 0x46, 0x14, 0x44, 0xCE, 0x24, 0x36,
+ 0x87, 0xE1, 0xA5, 0x05, 0x22, 0x45, 0x6A, 0x1D
+ },
+ {
+ 0xD5, 0x26, 0x6A, 0xA3, 0x33, 0x11, 0x94, 0xAE,
+ 0xF8, 0x52, 0xEE, 0xD8, 0x6D, 0x7B, 0x5B, 0x26,
+ 0x33, 0xA0, 0xAF, 0x1C, 0x73, 0x59, 0x06, 0xF2,
+ 0xE1, 0x32, 0x79, 0xF1, 0x49, 0x31, 0xA9, 0xFC,
+ 0x3B, 0x0E, 0xAC, 0x5C, 0xE9, 0x24, 0x52, 0x73,
+ 0xBD, 0x1A, 0xA9, 0x29, 0x05, 0xAB, 0xE1, 0x62,
+ 0x78, 0xEF, 0x7E, 0xFD, 0x47, 0x69, 0x47, 0x89,
+ 0xA7, 0x28, 0x3B, 0x77, 0xDA, 0x3C, 0x70, 0xF8
+ },
+ {
+ 0x29, 0x62, 0x73, 0x4C, 0x28, 0x25, 0x21, 0x86,
+ 0xA9, 0xA1, 0x11, 0x1C, 0x73, 0x2A, 0xD4, 0xDE,
+ 0x45, 0x06, 0xD4, 0xB4, 0x48, 0x09, 0x16, 0x30,
+ 0x3E, 0xB7, 0x99, 0x1D, 0x65, 0x9C, 0xCD, 0xA0,
+ 0x7A, 0x99, 0x11, 0x91, 0x4B, 0xC7, 0x5C, 0x41,
+ 0x8A, 0xB7, 0xA4, 0x54, 0x17, 0x57, 0xAD, 0x05,
+ 0x47, 0x96, 0xE2, 0x67, 0x97, 0xFE, 0xAF, 0x36,
+ 0xE9, 0xF6, 0xAD, 0x43, 0xF1, 0x4B, 0x35, 0xA4
+ },
+ {
+ 0xE8, 0xB7, 0x9E, 0xC5, 0xD0, 0x6E, 0x11, 0x1B,
+ 0xDF, 0xAF, 0xD7, 0x1E, 0x9F, 0x57, 0x60, 0xF0,
+ 0x0A, 0xC8, 0xAC, 0x5D, 0x8B, 0xF7, 0x68, 0xF9,
+ 0xFF, 0x6F, 0x08, 0xB8, 0xF0, 0x26, 0x09, 0x6B,
+ 0x1C, 0xC3, 0xA4, 0xC9, 0x73, 0x33, 0x30, 0x19,
+ 0xF1, 0xE3, 0x55, 0x3E, 0x77, 0xDA, 0x3F, 0x98,
+ 0xCB, 0x9F, 0x54, 0x2E, 0x0A, 0x90, 0xE5, 0xF8,
+ 0xA9, 0x40, 0xCC, 0x58, 0xE5, 0x98, 0x44, 0xB3
+ },
+ {
+ 0xDF, 0xB3, 0x20, 0xC4, 0x4F, 0x9D, 0x41, 0xD1,
+ 0xEF, 0xDC, 0xC0, 0x15, 0xF0, 0x8D, 0xD5, 0x53,
+ 0x9E, 0x52, 0x6E, 0x39, 0xC8, 0x7D, 0x50, 0x9A,
+ 0xE6, 0x81, 0x2A, 0x96, 0x9E, 0x54, 0x31, 0xBF,
+ 0x4F, 0xA7, 0xD9, 0x1F, 0xFD, 0x03, 0xB9, 0x81,
+ 0xE0, 0xD5, 0x44, 0xCF, 0x72, 0xD7, 0xB1, 0xC0,
+ 0x37, 0x4F, 0x88, 0x01, 0x48, 0x2E, 0x6D, 0xEA,
+ 0x2E, 0xF9, 0x03, 0x87, 0x7E, 0xBA, 0x67, 0x5E
+ },
+ {
+ 0xD8, 0x86, 0x75, 0x11, 0x8F, 0xDB, 0x55, 0xA5,
+ 0xFB, 0x36, 0x5A, 0xC2, 0xAF, 0x1D, 0x21, 0x7B,
+ 0xF5, 0x26, 0xCE, 0x1E, 0xE9, 0xC9, 0x4B, 0x2F,
+ 0x00, 0x90, 0xB2, 0xC5, 0x8A, 0x06, 0xCA, 0x58,
+ 0x18, 0x7D, 0x7F, 0xE5, 0x7C, 0x7B, 0xED, 0x9D,
+ 0x26, 0xFC, 0xA0, 0x67, 0xB4, 0x11, 0x0E, 0xEF,
+ 0xCD, 0x9A, 0x0A, 0x34, 0x5D, 0xE8, 0x72, 0xAB,
+ 0xE2, 0x0D, 0xE3, 0x68, 0x00, 0x1B, 0x07, 0x45
+ },
+ {
+ 0xB8, 0x93, 0xF2, 0xFC, 0x41, 0xF7, 0xB0, 0xDD,
+ 0x6E, 0x2F, 0x6A, 0xA2, 0xE0, 0x37, 0x0C, 0x0C,
+ 0xFF, 0x7D, 0xF0, 0x9E, 0x3A, 0xCF, 0xCC, 0x0E,
+ 0x92, 0x0B, 0x6E, 0x6F, 0xAD, 0x0E, 0xF7, 0x47,
+ 0xC4, 0x06, 0x68, 0x41, 0x7D, 0x34, 0x2B, 0x80,
+ 0xD2, 0x35, 0x1E, 0x8C, 0x17, 0x5F, 0x20, 0x89,
+ 0x7A, 0x06, 0x2E, 0x97, 0x65, 0xE6, 0xC6, 0x7B,
+ 0x53, 0x9B, 0x6B, 0xA8, 0xB9, 0x17, 0x05, 0x45
+ },
+ {
+ 0x6C, 0x67, 0xEC, 0x56, 0x97, 0xAC, 0xCD, 0x23,
+ 0x5C, 0x59, 0xB4, 0x86, 0xD7, 0xB7, 0x0B, 0xAE,
+ 0xED, 0xCB, 0xD4, 0xAA, 0x64, 0xEB, 0xD4, 0xEE,
+ 0xF3, 0xC7, 0xEA, 0xC1, 0x89, 0x56, 0x1A, 0x72,
+ 0x62, 0x50, 0xAE, 0xC4, 0xD4, 0x8C, 0xAD, 0xCA,
+ 0xFB, 0xBE, 0x2C, 0xE3, 0xC1, 0x6C, 0xE2, 0xD6,
+ 0x91, 0xA8, 0xCC, 0xE0, 0x6E, 0x88, 0x79, 0x55,
+ 0x6D, 0x44, 0x83, 0xED, 0x71, 0x65, 0xC0, 0x63
+ },
+ {
+ 0xF1, 0xAA, 0x2B, 0x04, 0x4F, 0x8F, 0x0C, 0x63,
+ 0x8A, 0x3F, 0x36, 0x2E, 0x67, 0x7B, 0x5D, 0x89,
+ 0x1D, 0x6F, 0xD2, 0xAB, 0x07, 0x65, 0xF6, 0xEE,
+ 0x1E, 0x49, 0x87, 0xDE, 0x05, 0x7E, 0xAD, 0x35,
+ 0x78, 0x83, 0xD9, 0xB4, 0x05, 0xB9, 0xD6, 0x09,
+ 0xEE, 0xA1, 0xB8, 0x69, 0xD9, 0x7F, 0xB1, 0x6D,
+ 0x9B, 0x51, 0x01, 0x7C, 0x55, 0x3F, 0x3B, 0x93,
+ 0xC0, 0xA1, 0xE0, 0xF1, 0x29, 0x6F, 0xED, 0xCD
+ },
+ {
+ 0xCB, 0xAA, 0x25, 0x95, 0x72, 0xD4, 0xAE, 0xBF,
+ 0xC1, 0x91, 0x7A, 0xCD, 0xDC, 0x58, 0x2B, 0x9F,
+ 0x8D, 0xFA, 0xA9, 0x28, 0xA1, 0x98, 0xCA, 0x7A,
+ 0xCD, 0x0F, 0x2A, 0xA7, 0x6A, 0x13, 0x4A, 0x90,
+ 0x25, 0x2E, 0x62, 0x98, 0xA6, 0x5B, 0x08, 0x18,
+ 0x6A, 0x35, 0x0D, 0x5B, 0x76, 0x26, 0x69, 0x9F,
+ 0x8C, 0xB7, 0x21, 0xA3, 0xEA, 0x59, 0x21, 0xB7,
+ 0x53, 0xAE, 0x3A, 0x2D, 0xCE, 0x24, 0xBA, 0x3A
+ },
+ {
+ 0xFA, 0x15, 0x49, 0xC9, 0x79, 0x6C, 0xD4, 0xD3,
+ 0x03, 0xDC, 0xF4, 0x52, 0xC1, 0xFB, 0xD5, 0x74,
+ 0x4F, 0xD9, 0xB9, 0xB4, 0x70, 0x03, 0xD9, 0x20,
+ 0xB9, 0x2D, 0xE3, 0x48, 0x39, 0xD0, 0x7E, 0xF2,
+ 0xA2, 0x9D, 0xED, 0x68, 0xF6, 0xFC, 0x9E, 0x6C,
+ 0x45, 0xE0, 0x71, 0xA2, 0xE4, 0x8B, 0xD5, 0x0C,
+ 0x50, 0x84, 0xE9, 0x6B, 0x65, 0x7D, 0xD0, 0x40,
+ 0x40, 0x45, 0xA1, 0xDD, 0xEF, 0xE2, 0x82, 0xED
+ },
+ {
+ 0x5C, 0xF2, 0xAC, 0x89, 0x7A, 0xB4, 0x44, 0xDC,
+ 0xB5, 0xC8, 0xD8, 0x7C, 0x49, 0x5D, 0xBD, 0xB3,
+ 0x4E, 0x18, 0x38, 0xB6, 0xB6, 0x29, 0x42, 0x7C,
+ 0xAA, 0x51, 0x70, 0x2A, 0xD0, 0xF9, 0x68, 0x85,
+ 0x25, 0xF1, 0x3B, 0xEC, 0x50, 0x3A, 0x3C, 0x3A,
+ 0x2C, 0x80, 0xA6, 0x5E, 0x0B, 0x57, 0x15, 0xE8,
+ 0xAF, 0xAB, 0x00, 0xFF, 0xA5, 0x6E, 0xC4, 0x55,
+ 0xA4, 0x9A, 0x1A, 0xD3, 0x0A, 0xA2, 0x4F, 0xCD
+ },
+ {
+ 0x9A, 0xAF, 0x80, 0x20, 0x7B, 0xAC, 0xE1, 0x7B,
+ 0xB7, 0xAB, 0x14, 0x57, 0x57, 0xD5, 0x69, 0x6B,
+ 0xDE, 0x32, 0x40, 0x6E, 0xF2, 0x2B, 0x44, 0x29,
+ 0x2E, 0xF6, 0x5D, 0x45, 0x19, 0xC3, 0xBB, 0x2A,
+ 0xD4, 0x1A, 0x59, 0xB6, 0x2C, 0xC3, 0xE9, 0x4B,
+ 0x6F, 0xA9, 0x6D, 0x32, 0xA7, 0xFA, 0xAD, 0xAE,
+ 0x28, 0xAF, 0x7D, 0x35, 0x09, 0x72, 0x19, 0xAA,
+ 0x3F, 0xD8, 0xCD, 0xA3, 0x1E, 0x40, 0xC2, 0x75
+ },
+ {
+ 0xAF, 0x88, 0xB1, 0x63, 0x40, 0x2C, 0x86, 0x74,
+ 0x5C, 0xB6, 0x50, 0xC2, 0x98, 0x8F, 0xB9, 0x52,
+ 0x11, 0xB9, 0x4B, 0x03, 0xEF, 0x29, 0x0E, 0xED,
+ 0x96, 0x62, 0x03, 0x42, 0x41, 0xFD, 0x51, 0xCF,
+ 0x39, 0x8F, 0x80, 0x73, 0xE3, 0x69, 0x35, 0x4C,
+ 0x43, 0xEA, 0xE1, 0x05, 0x2F, 0x9B, 0x63, 0xB0,
+ 0x81, 0x91, 0xCA, 0xA1, 0x38, 0xAA, 0x54, 0xFE,
+ 0xA8, 0x89, 0xCC, 0x70, 0x24, 0x23, 0x68, 0x97
+ },
+ {
+ 0x48, 0xFA, 0x7D, 0x64, 0xE1, 0xCE, 0xEE, 0x27,
+ 0xB9, 0x86, 0x4D, 0xB5, 0xAD, 0xA4, 0xB5, 0x3D,
+ 0x00, 0xC9, 0xBC, 0x76, 0x26, 0x55, 0x58, 0x13,
+ 0xD3, 0xCD, 0x67, 0x30, 0xAB, 0x3C, 0xC0, 0x6F,
+ 0xF3, 0x42, 0xD7, 0x27, 0x90, 0x5E, 0x33, 0x17,
+ 0x1B, 0xDE, 0x6E, 0x84, 0x76, 0xE7, 0x7F, 0xB1,
+ 0x72, 0x08, 0x61, 0xE9, 0x4B, 0x73, 0xA2, 0xC5,
+ 0x38, 0xD2, 0x54, 0x74, 0x62, 0x85, 0xF4, 0x30
+ },
+ {
+ 0x0E, 0x6F, 0xD9, 0x7A, 0x85, 0xE9, 0x04, 0xF8,
+ 0x7B, 0xFE, 0x85, 0xBB, 0xEB, 0x34, 0xF6, 0x9E,
+ 0x1F, 0x18, 0x10, 0x5C, 0xF4, 0xED, 0x4F, 0x87,
+ 0xAE, 0xC3, 0x6C, 0x6E, 0x8B, 0x5F, 0x68, 0xBD,
+ 0x2A, 0x6F, 0x3D, 0xC8, 0xA9, 0xEC, 0xB2, 0xB6,
+ 0x1D, 0xB4, 0xEE, 0xDB, 0x6B, 0x2E, 0xA1, 0x0B,
+ 0xF9, 0xCB, 0x02, 0x51, 0xFB, 0x0F, 0x8B, 0x34,
+ 0x4A, 0xBF, 0x7F, 0x36, 0x6B, 0x6D, 0xE5, 0xAB
+ },
+ {
+ 0x06, 0x62, 0x2D, 0xA5, 0x78, 0x71, 0x76, 0x28,
+ 0x7F, 0xDC, 0x8F, 0xED, 0x44, 0x0B, 0xAD, 0x18,
+ 0x7D, 0x83, 0x00, 0x99, 0xC9, 0x4E, 0x6D, 0x04,
+ 0xC8, 0xE9, 0xC9, 0x54, 0xCD, 0xA7, 0x0C, 0x8B,
+ 0xB9, 0xE1, 0xFC, 0x4A, 0x6D, 0x0B, 0xAA, 0x83,
+ 0x1B, 0x9B, 0x78, 0xEF, 0x66, 0x48, 0x68, 0x1A,
+ 0x48, 0x67, 0xA1, 0x1D, 0xA9, 0x3E, 0xE3, 0x6E,
+ 0x5E, 0x6A, 0x37, 0xD8, 0x7F, 0xC6, 0x3F, 0x6F
+ },
+ {
+ 0x1D, 0xA6, 0x77, 0x2B, 0x58, 0xFA, 0xBF, 0x9C,
+ 0x61, 0xF6, 0x8D, 0x41, 0x2C, 0x82, 0xF1, 0x82,
+ 0xC0, 0x23, 0x6D, 0x7D, 0x57, 0x5E, 0xF0, 0xB5,
+ 0x8D, 0xD2, 0x24, 0x58, 0xD6, 0x43, 0xCD, 0x1D,
+ 0xFC, 0x93, 0xB0, 0x38, 0x71, 0xC3, 0x16, 0xD8,
+ 0x43, 0x0D, 0x31, 0x29, 0x95, 0xD4, 0x19, 0x7F,
+ 0x08, 0x74, 0xC9, 0x91, 0x72, 0xBA, 0x00, 0x4A,
+ 0x01, 0xEE, 0x29, 0x5A, 0xBA, 0xC2, 0x4E, 0x46
+ },
+ {
+ 0x3C, 0xD2, 0xD9, 0x32, 0x0B, 0x7B, 0x1D, 0x5F,
+ 0xB9, 0xAA, 0xB9, 0x51, 0xA7, 0x60, 0x23, 0xFA,
+ 0x66, 0x7B, 0xE1, 0x4A, 0x91, 0x24, 0xE3, 0x94,
+ 0x51, 0x39, 0x18, 0xA3, 0xF4, 0x40, 0x96, 0xAE,
+ 0x49, 0x04, 0xBA, 0x0F, 0xFC, 0x15, 0x0B, 0x63,
+ 0xBC, 0x7A, 0xB1, 0xEE, 0xB9, 0xA6, 0xE2, 0x57,
+ 0xE5, 0xC8, 0xF0, 0x00, 0xA7, 0x03, 0x94, 0xA5,
+ 0xAF, 0xD8, 0x42, 0x71, 0x5D, 0xE1, 0x5F, 0x29
+ },
+ {
+ 0x04, 0xCD, 0xC1, 0x4F, 0x74, 0x34, 0xE0, 0xB4,
+ 0xBE, 0x70, 0xCB, 0x41, 0xDB, 0x4C, 0x77, 0x9A,
+ 0x88, 0xEA, 0xEF, 0x6A, 0xCC, 0xEB, 0xCB, 0x41,
+ 0xF2, 0xD4, 0x2F, 0xFF, 0xE7, 0xF3, 0x2A, 0x8E,
+ 0x28, 0x1B, 0x5C, 0x10, 0x3A, 0x27, 0x02, 0x1D,
+ 0x0D, 0x08, 0x36, 0x22, 0x50, 0x75, 0x3C, 0xDF,
+ 0x70, 0x29, 0x21, 0x95, 0xA5, 0x3A, 0x48, 0x72,
+ 0x8C, 0xEB, 0x58, 0x44, 0xC2, 0xD9, 0x8B, 0xAB
+ },
+ {
+ 0x90, 0x71, 0xB7, 0xA8, 0xA0, 0x75, 0xD0, 0x09,
+ 0x5B, 0x8F, 0xB3, 0xAE, 0x51, 0x13, 0x78, 0x57,
+ 0x35, 0xAB, 0x98, 0xE2, 0xB5, 0x2F, 0xAF, 0x91,
+ 0xD5, 0xB8, 0x9E, 0x44, 0xAA, 0xC5, 0xB5, 0xD4,
+ 0xEB, 0xBF, 0x91, 0x22, 0x3B, 0x0F, 0xF4, 0xC7,
+ 0x19, 0x05, 0xDA, 0x55, 0x34, 0x2E, 0x64, 0x65,
+ 0x5D, 0x6E, 0xF8, 0xC8, 0x9A, 0x47, 0x68, 0xC3,
+ 0xF9, 0x3A, 0x6D, 0xC0, 0x36, 0x6B, 0x5B, 0xC8
+ },
+ {
+ 0xEB, 0xB3, 0x02, 0x40, 0xDD, 0x96, 0xC7, 0xBC,
+ 0x8D, 0x0A, 0xBE, 0x49, 0xAA, 0x4E, 0xDC, 0xBB,
+ 0x4A, 0xFD, 0xC5, 0x1F, 0xF9, 0xAA, 0xF7, 0x20,
+ 0xD3, 0xF9, 0xE7, 0xFB, 0xB0, 0xF9, 0xC6, 0xD6,
+ 0x57, 0x13, 0x50, 0x50, 0x17, 0x69, 0xFC, 0x4E,
+ 0xBD, 0x0B, 0x21, 0x41, 0x24, 0x7F, 0xF4, 0x00,
+ 0xD4, 0xFD, 0x4B, 0xE4, 0x14, 0xED, 0xF3, 0x77,
+ 0x57, 0xBB, 0x90, 0xA3, 0x2A, 0xC5, 0xC6, 0x5A
+ },
+ {
+ 0x85, 0x32, 0xC5, 0x8B, 0xF3, 0xC8, 0x01, 0x5D,
+ 0x9D, 0x1C, 0xBE, 0x00, 0xEE, 0xF1, 0xF5, 0x08,
+ 0x2F, 0x8F, 0x36, 0x32, 0xFB, 0xE9, 0xF1, 0xED,
+ 0x4F, 0x9D, 0xFB, 0x1F, 0xA7, 0x9E, 0x82, 0x83,
+ 0x06, 0x6D, 0x77, 0xC4, 0x4C, 0x4A, 0xF9, 0x43,
+ 0xD7, 0x6B, 0x30, 0x03, 0x64, 0xAE, 0xCB, 0xD0,
+ 0x64, 0x8C, 0x8A, 0x89, 0x39, 0xBD, 0x20, 0x41,
+ 0x23, 0xF4, 0xB5, 0x62, 0x60, 0x42, 0x2D, 0xEC
+ },
+ {
+ 0xFE, 0x98, 0x46, 0xD6, 0x4F, 0x7C, 0x77, 0x08,
+ 0x69, 0x6F, 0x84, 0x0E, 0x2D, 0x76, 0xCB, 0x44,
+ 0x08, 0xB6, 0x59, 0x5C, 0x2F, 0x81, 0xEC, 0x6A,
+ 0x28, 0xA7, 0xF2, 0xF2, 0x0C, 0xB8, 0x8C, 0xFE,
+ 0x6A, 0xC0, 0xB9, 0xE9, 0xB8, 0x24, 0x4F, 0x08,
+ 0xBD, 0x70, 0x95, 0xC3, 0x50, 0xC1, 0xD0, 0x84,
+ 0x2F, 0x64, 0xFB, 0x01, 0xBB, 0x7F, 0x53, 0x2D,
+ 0xFC, 0xD4, 0x73, 0x71, 0xB0, 0xAE, 0xEB, 0x79
+ },
+ {
+ 0x28, 0xF1, 0x7E, 0xA6, 0xFB, 0x6C, 0x42, 0x09,
+ 0x2D, 0xC2, 0x64, 0x25, 0x7E, 0x29, 0x74, 0x63,
+ 0x21, 0xFB, 0x5B, 0xDA, 0xEA, 0x98, 0x73, 0xC2,
+ 0xA7, 0xFA, 0x9D, 0x8F, 0x53, 0x81, 0x8E, 0x89,
+ 0x9E, 0x16, 0x1B, 0xC7, 0x7D, 0xFE, 0x80, 0x90,
+ 0xAF, 0xD8, 0x2B, 0xF2, 0x26, 0x6C, 0x5C, 0x1B,
+ 0xC9, 0x30, 0xA8, 0xD1, 0x54, 0x76, 0x24, 0x43,
+ 0x9E, 0x66, 0x2E, 0xF6, 0x95, 0xF2, 0x6F, 0x24
+ },
+ {
+ 0xEC, 0x6B, 0x7D, 0x7F, 0x03, 0x0D, 0x48, 0x50,
+ 0xAC, 0xAE, 0x3C, 0xB6, 0x15, 0xC2, 0x1D, 0xD2,
+ 0x52, 0x06, 0xD6, 0x3E, 0x84, 0xD1, 0xDB, 0x8D,
+ 0x95, 0x73, 0x70, 0x73, 0x7B, 0xA0, 0xE9, 0x84,
+ 0x67, 0xEA, 0x0C, 0xE2, 0x74, 0xC6, 0x61, 0x99,
+ 0x90, 0x1E, 0xAE, 0xC1, 0x8A, 0x08, 0x52, 0x57,
+ 0x15, 0xF5, 0x3B, 0xFD, 0xB0, 0xAA, 0xCB, 0x61,
+ 0x3D, 0x34, 0x2E, 0xBD, 0xCE, 0xED, 0xDC, 0x3B
+ },
+ {
+ 0xB4, 0x03, 0xD3, 0x69, 0x1C, 0x03, 0xB0, 0xD3,
+ 0x41, 0x8D, 0xF3, 0x27, 0xD5, 0x86, 0x0D, 0x34,
+ 0xBB, 0xFC, 0xC4, 0x51, 0x9B, 0xFB, 0xCE, 0x36,
+ 0xBF, 0x33, 0xB2, 0x08, 0x38, 0x5F, 0xAD, 0xB9,
+ 0x18, 0x6B, 0xC7, 0x8A, 0x76, 0xC4, 0x89, 0xD8,
+ 0x9F, 0xD5, 0x7E, 0x7D, 0xC7, 0x54, 0x12, 0xD2,
+ 0x3B, 0xCD, 0x1D, 0xAE, 0x84, 0x70, 0xCE, 0x92,
+ 0x74, 0x75, 0x4B, 0xB8, 0x58, 0x5B, 0x13, 0xC5
+ },
+ {
+ 0x31, 0xFC, 0x79, 0x73, 0x8B, 0x87, 0x72, 0xB3,
+ 0xF5, 0x5C, 0xD8, 0x17, 0x88, 0x13, 0xB3, 0xB5,
+ 0x2D, 0x0D, 0xB5, 0xA4, 0x19, 0xD3, 0x0B, 0xA9,
+ 0x49, 0x5C, 0x4B, 0x9D, 0xA0, 0x21, 0x9F, 0xAC,
+ 0x6D, 0xF8, 0xE7, 0xC2, 0x3A, 0x81, 0x15, 0x51,
+ 0xA6, 0x2B, 0x82, 0x7F, 0x25, 0x6E, 0xCD, 0xB8,
+ 0x12, 0x4A, 0xC8, 0xA6, 0x79, 0x2C, 0xCF, 0xEC,
+ 0xC3, 0xB3, 0x01, 0x27, 0x22, 0xE9, 0x44, 0x63
+ },
+ {
+ 0xBB, 0x20, 0x39, 0xEC, 0x28, 0x70, 0x91, 0xBC,
+ 0xC9, 0x64, 0x2F, 0xC9, 0x00, 0x49, 0xE7, 0x37,
+ 0x32, 0xE0, 0x2E, 0x57, 0x7E, 0x28, 0x62, 0xB3,
+ 0x22, 0x16, 0xAE, 0x9B, 0xED, 0xCD, 0x73, 0x0C,
+ 0x4C, 0x28, 0x4E, 0xF3, 0x96, 0x8C, 0x36, 0x8B,
+ 0x7D, 0x37, 0x58, 0x4F, 0x97, 0xBD, 0x4B, 0x4D,
+ 0xC6, 0xEF, 0x61, 0x27, 0xAC, 0xFE, 0x2E, 0x6A,
+ 0xE2, 0x50, 0x91, 0x24, 0xE6, 0x6C, 0x8A, 0xF4
+ },
+ {
+ 0xF5, 0x3D, 0x68, 0xD1, 0x3F, 0x45, 0xED, 0xFC,
+ 0xB9, 0xBD, 0x41, 0x5E, 0x28, 0x31, 0xE9, 0x38,
+ 0x35, 0x0D, 0x53, 0x80, 0xD3, 0x43, 0x22, 0x78,
+ 0xFC, 0x1C, 0x0C, 0x38, 0x1F, 0xCB, 0x7C, 0x65,
+ 0xC8, 0x2D, 0xAF, 0xE0, 0x51, 0xD8, 0xC8, 0xB0,
+ 0xD4, 0x4E, 0x09, 0x74, 0xA0, 0xE5, 0x9E, 0xC7,
+ 0xBF, 0x7E, 0xD0, 0x45, 0x9F, 0x86, 0xE9, 0x6F,
+ 0x32, 0x9F, 0xC7, 0x97, 0x52, 0x51, 0x0F, 0xD3
+ },
+ {
+ 0x8D, 0x56, 0x8C, 0x79, 0x84, 0xF0, 0xEC, 0xDF,
+ 0x76, 0x40, 0xFB, 0xC4, 0x83, 0xB5, 0xD8, 0xC9,
+ 0xF8, 0x66, 0x34, 0xF6, 0xF4, 0x32, 0x91, 0x84,
+ 0x1B, 0x30, 0x9A, 0x35, 0x0A, 0xB9, 0xC1, 0x13,
+ 0x7D, 0x24, 0x06, 0x6B, 0x09, 0xDA, 0x99, 0x44,
+ 0xBA, 0xC5, 0x4D, 0x5B, 0xB6, 0x58, 0x0D, 0x83,
+ 0x60, 0x47, 0xAA, 0xC7, 0x4A, 0xB7, 0x24, 0xB8,
+ 0x87, 0xEB, 0xF9, 0x3D, 0x4B, 0x32, 0xEC, 0xA9
+ },
+ {
+ 0xC0, 0xB6, 0x5C, 0xE5, 0xA9, 0x6F, 0xF7, 0x74,
+ 0xC4, 0x56, 0xCA, 0xC3, 0xB5, 0xF2, 0xC4, 0xCD,
+ 0x35, 0x9B, 0x4F, 0xF5, 0x3E, 0xF9, 0x3A, 0x3D,
+ 0xA0, 0x77, 0x8B, 0xE4, 0x90, 0x0D, 0x1E, 0x8D,
+ 0xA1, 0x60, 0x1E, 0x76, 0x9E, 0x8F, 0x1B, 0x02,
+ 0xD2, 0xA2, 0xF8, 0xC5, 0xB9, 0xFA, 0x10, 0xB4,
+ 0x4F, 0x1C, 0x18, 0x69, 0x85, 0x46, 0x8F, 0xEE,
+ 0xB0, 0x08, 0x73, 0x02, 0x83, 0xA6, 0x65, 0x7D
+ },
+ {
+ 0x49, 0x00, 0xBB, 0xA6, 0xF5, 0xFB, 0x10, 0x3E,
+ 0xCE, 0x8E, 0xC9, 0x6A, 0xDA, 0x13, 0xA5, 0xC3,
+ 0xC8, 0x54, 0x88, 0xE0, 0x55, 0x51, 0xDA, 0x6B,
+ 0x6B, 0x33, 0xD9, 0x88, 0xE6, 0x11, 0xEC, 0x0F,
+ 0xE2, 0xE3, 0xC2, 0xAA, 0x48, 0xEA, 0x6A, 0xE8,
+ 0x98, 0x6A, 0x3A, 0x23, 0x1B, 0x22, 0x3C, 0x5D,
+ 0x27, 0xCE, 0xC2, 0xEA, 0xDD, 0xE9, 0x1C, 0xE0,
+ 0x79, 0x81, 0xEE, 0x65, 0x28, 0x62, 0xD1, 0xE4
+ },
+ {
+ 0xC7, 0xF5, 0xC3, 0x7C, 0x72, 0x85, 0xF9, 0x27,
+ 0xF7, 0x64, 0x43, 0x41, 0x4D, 0x43, 0x57, 0xFF,
+ 0x78, 0x96, 0x47, 0xD7, 0xA0, 0x05, 0xA5, 0xA7,
+ 0x87, 0xE0, 0x3C, 0x34, 0x6B, 0x57, 0xF4, 0x9F,
+ 0x21, 0xB6, 0x4F, 0xA9, 0xCF, 0x4B, 0x7E, 0x45,
+ 0x57, 0x3E, 0x23, 0x04, 0x90, 0x17, 0x56, 0x71,
+ 0x21, 0xA9, 0xC3, 0xD4, 0xB2, 0xB7, 0x3E, 0xC5,
+ 0xE9, 0x41, 0x35, 0x77, 0x52, 0x5D, 0xB4, 0x5A
+ },
+ {
+ 0xEC, 0x70, 0x96, 0x33, 0x07, 0x36, 0xFD, 0xB2,
+ 0xD6, 0x4B, 0x56, 0x53, 0xE7, 0x47, 0x5D, 0xA7,
+ 0x46, 0xC2, 0x3A, 0x46, 0x13, 0xA8, 0x26, 0x87,
+ 0xA2, 0x80, 0x62, 0xD3, 0x23, 0x63, 0x64, 0x28,
+ 0x4A, 0xC0, 0x17, 0x20, 0xFF, 0xB4, 0x06, 0xCF,
+ 0xE2, 0x65, 0xC0, 0xDF, 0x62, 0x6A, 0x18, 0x8C,
+ 0x9E, 0x59, 0x63, 0xAC, 0xE5, 0xD3, 0xD5, 0xBB,
+ 0x36, 0x3E, 0x32, 0xC3, 0x8C, 0x21, 0x90, 0xA6
+ },
+ {
+ 0x82, 0xE7, 0x44, 0xC7, 0x5F, 0x46, 0x49, 0xEC,
+ 0x52, 0xB8, 0x07, 0x71, 0xA7, 0x7D, 0x47, 0x5A,
+ 0x3B, 0xC0, 0x91, 0x98, 0x95, 0x56, 0x96, 0x0E,
+ 0x27, 0x6A, 0x5F, 0x9E, 0xAD, 0x92, 0xA0, 0x3F,
+ 0x71, 0x87, 0x42, 0xCD, 0xCF, 0xEA, 0xEE, 0x5C,
+ 0xB8, 0x5C, 0x44, 0xAF, 0x19, 0x8A, 0xDC, 0x43,
+ 0xA4, 0xA4, 0x28, 0xF5, 0xF0, 0xC2, 0xDD, 0xB0,
+ 0xBE, 0x36, 0x05, 0x9F, 0x06, 0xD7, 0xDF, 0x73
+ },
+ {
+ 0x28, 0x34, 0xB7, 0xA7, 0x17, 0x0F, 0x1F, 0x5B,
+ 0x68, 0x55, 0x9A, 0xB7, 0x8C, 0x10, 0x50, 0xEC,
+ 0x21, 0xC9, 0x19, 0x74, 0x0B, 0x78, 0x4A, 0x90,
+ 0x72, 0xF6, 0xE5, 0xD6, 0x9F, 0x82, 0x8D, 0x70,
+ 0xC9, 0x19, 0xC5, 0x03, 0x9F, 0xB1, 0x48, 0xE3,
+ 0x9E, 0x2C, 0x8A, 0x52, 0x11, 0x83, 0x78, 0xB0,
+ 0x64, 0xCA, 0x8D, 0x50, 0x01, 0xCD, 0x10, 0xA5,
+ 0x47, 0x83, 0x87, 0xB9, 0x66, 0x71, 0x5E, 0xD6
+ },
+ {
+ 0x16, 0xB4, 0xAD, 0xA8, 0x83, 0xF7, 0x2F, 0x85,
+ 0x3B, 0xB7, 0xEF, 0x25, 0x3E, 0xFC, 0xAB, 0x0C,
+ 0x3E, 0x21, 0x61, 0x68, 0x7A, 0xD6, 0x15, 0x43,
+ 0xA0, 0xD2, 0x82, 0x4F, 0x91, 0xC1, 0xF8, 0x13,
+ 0x47, 0xD8, 0x6B, 0xE7, 0x09, 0xB1, 0x69, 0x96,
+ 0xE1, 0x7F, 0x2D, 0xD4, 0x86, 0x92, 0x7B, 0x02,
+ 0x88, 0xAD, 0x38, 0xD1, 0x30, 0x63, 0xC4, 0xA9,
+ 0x67, 0x2C, 0x39, 0x39, 0x7D, 0x37, 0x89, 0xB6
+ },
+ {
+ 0x78, 0xD0, 0x48, 0xF3, 0xA6, 0x9D, 0x8B, 0x54,
+ 0xAE, 0x0E, 0xD6, 0x3A, 0x57, 0x3A, 0xE3, 0x50,
+ 0xD8, 0x9F, 0x7C, 0x6C, 0xF1, 0xF3, 0x68, 0x89,
+ 0x30, 0xDE, 0x89, 0x9A, 0xFA, 0x03, 0x76, 0x97,
+ 0x62, 0x9B, 0x31, 0x4E, 0x5C, 0xD3, 0x03, 0xAA,
+ 0x62, 0xFE, 0xEA, 0x72, 0xA2, 0x5B, 0xF4, 0x2B,
+ 0x30, 0x4B, 0x6C, 0x6B, 0xCB, 0x27, 0xFA, 0xE2,
+ 0x1C, 0x16, 0xD9, 0x25, 0xE1, 0xFB, 0xDA, 0xC3
+ },
+ {
+ 0x0F, 0x74, 0x6A, 0x48, 0x74, 0x92, 0x87, 0xAD,
+ 0xA7, 0x7A, 0x82, 0x96, 0x1F, 0x05, 0xA4, 0xDA,
+ 0x4A, 0xBD, 0xB7, 0xD7, 0x7B, 0x12, 0x20, 0xF8,
+ 0x36, 0xD0, 0x9E, 0xC8, 0x14, 0x35, 0x9C, 0x0E,
+ 0xC0, 0x23, 0x9B, 0x8C, 0x7B, 0x9F, 0xF9, 0xE0,
+ 0x2F, 0x56, 0x9D, 0x1B, 0x30, 0x1E, 0xF6, 0x7C,
+ 0x46, 0x12, 0xD1, 0xDE, 0x4F, 0x73, 0x0F, 0x81,
+ 0xC1, 0x2C, 0x40, 0xCC, 0x06, 0x3C, 0x5C, 0xAA
+ },
+ {
+ 0xF0, 0xFC, 0x85, 0x9D, 0x3B, 0xD1, 0x95, 0xFB,
+ 0xDC, 0x2D, 0x59, 0x1E, 0x4C, 0xDA, 0xC1, 0x51,
+ 0x79, 0xEC, 0x0F, 0x1D, 0xC8, 0x21, 0xC1, 0x1D,
+ 0xF1, 0xF0, 0xC1, 0xD2, 0x6E, 0x62, 0x60, 0xAA,
+ 0xA6, 0x5B, 0x79, 0xFA, 0xFA, 0xCA, 0xFD, 0x7D,
+ 0x3A, 0xD6, 0x1E, 0x60, 0x0F, 0x25, 0x09, 0x05,
+ 0xF5, 0x87, 0x8C, 0x87, 0x45, 0x28, 0x97, 0x64,
+ 0x7A, 0x35, 0xB9, 0x95, 0xBC, 0xAD, 0xC3, 0xA3
+ },
+ {
+ 0x26, 0x20, 0xF6, 0x87, 0xE8, 0x62, 0x5F, 0x6A,
+ 0x41, 0x24, 0x60, 0xB4, 0x2E, 0x2C, 0xEF, 0x67,
+ 0x63, 0x42, 0x08, 0xCE, 0x10, 0xA0, 0xCB, 0xD4,
+ 0xDF, 0xF7, 0x04, 0x4A, 0x41, 0xB7, 0x88, 0x00,
+ 0x77, 0xE9, 0xF8, 0xDC, 0x3B, 0x8D, 0x12, 0x16,
+ 0xD3, 0x37, 0x6A, 0x21, 0xE0, 0x15, 0xB5, 0x8F,
+ 0xB2, 0x79, 0xB5, 0x21, 0xD8, 0x3F, 0x93, 0x88,
+ 0xC7, 0x38, 0x2C, 0x85, 0x05, 0x59, 0x0B, 0x9B
+ },
+ {
+ 0x22, 0x7E, 0x3A, 0xED, 0x8D, 0x2C, 0xB1, 0x0B,
+ 0x91, 0x8F, 0xCB, 0x04, 0xF9, 0xDE, 0x3E, 0x6D,
+ 0x0A, 0x57, 0xE0, 0x84, 0x76, 0xD9, 0x37, 0x59,
+ 0xCD, 0x7B, 0x2E, 0xD5, 0x4A, 0x1C, 0xBF, 0x02,
+ 0x39, 0xC5, 0x28, 0xFB, 0x04, 0xBB, 0xF2, 0x88,
+ 0x25, 0x3E, 0x60, 0x1D, 0x3B, 0xC3, 0x8B, 0x21,
+ 0x79, 0x4A, 0xFE, 0xF9, 0x0B, 0x17, 0x09, 0x4A,
+ 0x18, 0x2C, 0xAC, 0x55, 0x77, 0x45, 0xE7, 0x5F
+ },
+ {
+ 0x1A, 0x92, 0x99, 0x01, 0xB0, 0x9C, 0x25, 0xF2,
+ 0x7D, 0x6B, 0x35, 0xBE, 0x7B, 0x2F, 0x1C, 0x47,
+ 0x45, 0x13, 0x1F, 0xDE, 0xBC, 0xA7, 0xF3, 0xE2,
+ 0x45, 0x19, 0x26, 0x72, 0x04, 0x34, 0xE0, 0xDB,
+ 0x6E, 0x74, 0xFD, 0x69, 0x3A, 0xD2, 0x9B, 0x77,
+ 0x7D, 0xC3, 0x35, 0x5C, 0x59, 0x2A, 0x36, 0x1C,
+ 0x48, 0x73, 0xB0, 0x11, 0x33, 0xA5, 0x7C, 0x2E,
+ 0x3B, 0x70, 0x75, 0xCB, 0xDB, 0x86, 0xF4, 0xFC
+ },
+ {
+ 0x5F, 0xD7, 0x96, 0x8B, 0xC2, 0xFE, 0x34, 0xF2,
+ 0x20, 0xB5, 0xE3, 0xDC, 0x5A, 0xF9, 0x57, 0x17,
+ 0x42, 0xD7, 0x3B, 0x7D, 0x60, 0x81, 0x9F, 0x28,
+ 0x88, 0xB6, 0x29, 0x07, 0x2B, 0x96, 0xA9, 0xD8,
+ 0xAB, 0x2D, 0x91, 0xB8, 0x2D, 0x0A, 0x9A, 0xAB,
+ 0xA6, 0x1B, 0xBD, 0x39, 0x95, 0x81, 0x32, 0xFC,
+ 0xC4, 0x25, 0x70, 0x23, 0xD1, 0xEC, 0xA5, 0x91,
+ 0xB3, 0x05, 0x4E, 0x2D, 0xC8, 0x1C, 0x82, 0x00
+ },
+ {
+ 0xDF, 0xCC, 0xE8, 0xCF, 0x32, 0x87, 0x0C, 0xC6,
+ 0xA5, 0x03, 0xEA, 0xDA, 0xFC, 0x87, 0xFD, 0x6F,
+ 0x78, 0x91, 0x8B, 0x9B, 0x4D, 0x07, 0x37, 0xDB,
+ 0x68, 0x10, 0xBE, 0x99, 0x6B, 0x54, 0x97, 0xE7,
+ 0xE5, 0xCC, 0x80, 0xE3, 0x12, 0xF6, 0x1E, 0x71,
+ 0xFF, 0x3E, 0x96, 0x24, 0x43, 0x60, 0x73, 0x15,
+ 0x64, 0x03, 0xF7, 0x35, 0xF5, 0x6B, 0x0B, 0x01,
+ 0x84, 0x5C, 0x18, 0xF6, 0xCA, 0xF7, 0x72, 0xE6
+ },
+ {
+ 0x02, 0xF7, 0xEF, 0x3A, 0x9C, 0xE0, 0xFF, 0xF9,
+ 0x60, 0xF6, 0x70, 0x32, 0xB2, 0x96, 0xEF, 0xCA,
+ 0x30, 0x61, 0xF4, 0x93, 0x4D, 0x69, 0x07, 0x49,
+ 0xF2, 0xD0, 0x1C, 0x35, 0xC8, 0x1C, 0x14, 0xF3,
+ 0x9A, 0x67, 0xFA, 0x35, 0x0B, 0xC8, 0xA0, 0x35,
+ 0x9B, 0xF1, 0x72, 0x4B, 0xFF, 0xC3, 0xBC, 0xA6,
+ 0xD7, 0xC7, 0xBB, 0xA4, 0x79, 0x1F, 0xD5, 0x22,
+ 0xA3, 0xAD, 0x35, 0x3C, 0x02, 0xEC, 0x5A, 0xA8
+ },
+ {
+ 0x64, 0xBE, 0x5C, 0x6A, 0xBA, 0x65, 0xD5, 0x94,
+ 0x84, 0x4A, 0xE7, 0x8B, 0xB0, 0x22, 0xE5, 0xBE,
+ 0xBE, 0x12, 0x7F, 0xD6, 0xB6, 0xFF, 0xA5, 0xA1,
+ 0x37, 0x03, 0x85, 0x5A, 0xB6, 0x3B, 0x62, 0x4D,
+ 0xCD, 0x1A, 0x36, 0x3F, 0x99, 0x20, 0x3F, 0x63,
+ 0x2E, 0xC3, 0x86, 0xF3, 0xEA, 0x76, 0x7F, 0xC9,
+ 0x92, 0xE8, 0xED, 0x96, 0x86, 0x58, 0x6A, 0xA2,
+ 0x75, 0x55, 0xA8, 0x59, 0x9D, 0x5B, 0x80, 0x8F
+ },
+ {
+ 0xF7, 0x85, 0x85, 0x50, 0x5C, 0x4E, 0xAA, 0x54,
+ 0xA8, 0xB5, 0xBE, 0x70, 0xA6, 0x1E, 0x73, 0x5E,
+ 0x0F, 0xF9, 0x7A, 0xF9, 0x44, 0xDD, 0xB3, 0x00,
+ 0x1E, 0x35, 0xD8, 0x6C, 0x4E, 0x21, 0x99, 0xD9,
+ 0x76, 0x10, 0x4B, 0x6A, 0xE3, 0x17, 0x50, 0xA3,
+ 0x6A, 0x72, 0x6E, 0xD2, 0x85, 0x06, 0x4F, 0x59,
+ 0x81, 0xB5, 0x03, 0x88, 0x9F, 0xEF, 0x82, 0x2F,
+ 0xCD, 0xC2, 0x89, 0x8D, 0xDD, 0xB7, 0x88, 0x9A
+ },
+ {
+ 0xE4, 0xB5, 0x56, 0x60, 0x33, 0x86, 0x95, 0x72,
+ 0xED, 0xFD, 0x87, 0x47, 0x9A, 0x5B, 0xB7, 0x3C,
+ 0x80, 0xE8, 0x75, 0x9B, 0x91, 0x23, 0x28, 0x79,
+ 0xD9, 0x6B, 0x1D, 0xDA, 0x36, 0xC0, 0x12, 0x07,
+ 0x6E, 0xE5, 0xA2, 0xED, 0x7A, 0xE2, 0xDE, 0x63,
+ 0xEF, 0x84, 0x06, 0xA0, 0x6A, 0xEA, 0x82, 0xC1,
+ 0x88, 0x03, 0x1B, 0x56, 0x0B, 0xEA, 0xFB, 0x58,
+ 0x3F, 0xB3, 0xDE, 0x9E, 0x57, 0x95, 0x2A, 0x7E
+ },
+ {
+ 0xE1, 0xB3, 0xE7, 0xED, 0x86, 0x7F, 0x6C, 0x94,
+ 0x84, 0xA2, 0xA9, 0x7F, 0x77, 0x15, 0xF2, 0x5E,
+ 0x25, 0x29, 0x4E, 0x99, 0x2E, 0x41, 0xF6, 0xA7,
+ 0xC1, 0x61, 0xFF, 0xC2, 0xAD, 0xC6, 0xDA, 0xAE,
+ 0xB7, 0x11, 0x31, 0x02, 0xD5, 0xE6, 0x09, 0x02,
+ 0x87, 0xFE, 0x6A, 0xD9, 0x4C, 0xE5, 0xD6, 0xB7,
+ 0x39, 0xC6, 0xCA, 0x24, 0x0B, 0x05, 0xC7, 0x6F,
+ 0xB7, 0x3F, 0x25, 0xDD, 0x02, 0x4B, 0xF9, 0x35
+ },
+ {
+ 0x85, 0xFD, 0x08, 0x5F, 0xDC, 0x12, 0xA0, 0x80,
+ 0x98, 0x3D, 0xF0, 0x7B, 0xD7, 0x01, 0x2B, 0x0D,
+ 0x40, 0x2A, 0x0F, 0x40, 0x43, 0xFC, 0xB2, 0x77,
+ 0x5A, 0xDF, 0x0B, 0xAD, 0x17, 0x4F, 0x9B, 0x08,
+ 0xD1, 0x67, 0x6E, 0x47, 0x69, 0x85, 0x78, 0x5C,
+ 0x0A, 0x5D, 0xCC, 0x41, 0xDB, 0xFF, 0x6D, 0x95,
+ 0xEF, 0x4D, 0x66, 0xA3, 0xFB, 0xDC, 0x4A, 0x74,
+ 0xB8, 0x2B, 0xA5, 0x2D, 0xA0, 0x51, 0x2B, 0x74
+ },
+ {
+ 0xAE, 0xD8, 0xFA, 0x76, 0x4B, 0x0F, 0xBF, 0xF8,
+ 0x21, 0xE0, 0x52, 0x33, 0xD2, 0xF7, 0xB0, 0x90,
+ 0x0E, 0xC4, 0x4D, 0x82, 0x6F, 0x95, 0xE9, 0x3C,
+ 0x34, 0x3C, 0x1B, 0xC3, 0xBA, 0x5A, 0x24, 0x37,
+ 0x4B, 0x1D, 0x61, 0x6E, 0x7E, 0x7A, 0xBA, 0x45,
+ 0x3A, 0x0A, 0xDA, 0x5E, 0x4F, 0xAB, 0x53, 0x82,
+ 0x40, 0x9E, 0x0D, 0x42, 0xCE, 0x9C, 0x2B, 0xC7,
+ 0xFB, 0x39, 0xA9, 0x9C, 0x34, 0x0C, 0x20, 0xF0
+ },
+ {
+ 0x7B, 0xA3, 0xB2, 0xE2, 0x97, 0x23, 0x35, 0x22,
+ 0xEE, 0xB3, 0x43, 0xBD, 0x3E, 0xBC, 0xFD, 0x83,
+ 0x5A, 0x04, 0x00, 0x77, 0x35, 0xE8, 0x7F, 0x0C,
+ 0xA3, 0x00, 0xCB, 0xEE, 0x6D, 0x41, 0x65, 0x65,
+ 0x16, 0x21, 0x71, 0x58, 0x1E, 0x40, 0x20, 0xFF,
+ 0x4C, 0xF1, 0x76, 0x45, 0x0F, 0x12, 0x91, 0xEA,
+ 0x22, 0x85, 0xCB, 0x9E, 0xBF, 0xFE, 0x4C, 0x56,
+ 0x66, 0x06, 0x27, 0x68, 0x51, 0x45, 0x05, 0x1C
+ },
+ {
+ 0xDE, 0x74, 0x8B, 0xCF, 0x89, 0xEC, 0x88, 0x08,
+ 0x47, 0x21, 0xE1, 0x6B, 0x85, 0xF3, 0x0A, 0xDB,
+ 0x1A, 0x61, 0x34, 0xD6, 0x64, 0xB5, 0x84, 0x35,
+ 0x69, 0xBA, 0xBC, 0x5B, 0xBD, 0x1A, 0x15, 0xCA,
+ 0x9B, 0x61, 0x80, 0x3C, 0x90, 0x1A, 0x4F, 0xEF,
+ 0x32, 0x96, 0x5A, 0x17, 0x49, 0xC9, 0xF3, 0xA4,
+ 0xE2, 0x43, 0xE1, 0x73, 0x93, 0x9D, 0xC5, 0xA8,
+ 0xDC, 0x49, 0x5C, 0x67, 0x1A, 0xB5, 0x21, 0x45
+ },
+ {
+ 0xAA, 0xF4, 0xD2, 0xBD, 0xF2, 0x00, 0xA9, 0x19,
+ 0x70, 0x6D, 0x98, 0x42, 0xDC, 0xE1, 0x6C, 0x98,
+ 0x14, 0x0D, 0x34, 0xBC, 0x43, 0x3D, 0xF3, 0x20,
+ 0xAB, 0xA9, 0xBD, 0x42, 0x9E, 0x54, 0x9A, 0xA7,
+ 0xA3, 0x39, 0x76, 0x52, 0xA4, 0xD7, 0x68, 0x27,
+ 0x77, 0x86, 0xCF, 0x99, 0x3C, 0xDE, 0x23, 0x38,
+ 0x67, 0x3E, 0xD2, 0xE6, 0xB6, 0x6C, 0x96, 0x1F,
+ 0xEF, 0xB8, 0x2C, 0xD2, 0x0C, 0x93, 0x33, 0x8F
+ },
+ {
+ 0xC4, 0x08, 0x21, 0x89, 0x68, 0xB7, 0x88, 0xBF,
+ 0x86, 0x4F, 0x09, 0x97, 0xE6, 0xBC, 0x4C, 0x3D,
+ 0xBA, 0x68, 0xB2, 0x76, 0xE2, 0x12, 0x5A, 0x48,
+ 0x43, 0x29, 0x60, 0x52, 0xFF, 0x93, 0xBF, 0x57,
+ 0x67, 0xB8, 0xCD, 0xCE, 0x71, 0x31, 0xF0, 0x87,
+ 0x64, 0x30, 0xC1, 0x16, 0x5F, 0xEC, 0x6C, 0x4F,
+ 0x47, 0xAD, 0xAA, 0x4F, 0xD8, 0xBC, 0xFA, 0xCE,
+ 0xF4, 0x63, 0xB5, 0xD3, 0xD0, 0xFA, 0x61, 0xA0
+ },
+ {
+ 0x76, 0xD2, 0xD8, 0x19, 0xC9, 0x2B, 0xCE, 0x55,
+ 0xFA, 0x8E, 0x09, 0x2A, 0xB1, 0xBF, 0x9B, 0x9E,
+ 0xAB, 0x23, 0x7A, 0x25, 0x26, 0x79, 0x86, 0xCA,
+ 0xCF, 0x2B, 0x8E, 0xE1, 0x4D, 0x21, 0x4D, 0x73,
+ 0x0D, 0xC9, 0xA5, 0xAA, 0x2D, 0x7B, 0x59, 0x6E,
+ 0x86, 0xA1, 0xFD, 0x8F, 0xA0, 0x80, 0x4C, 0x77,
+ 0x40, 0x2D, 0x2F, 0xCD, 0x45, 0x08, 0x36, 0x88,
+ 0xB2, 0x18, 0xB1, 0xCD, 0xFA, 0x0D, 0xCB, 0xCB
+ },
+ {
+ 0x72, 0x06, 0x5E, 0xE4, 0xDD, 0x91, 0xC2, 0xD8,
+ 0x50, 0x9F, 0xA1, 0xFC, 0x28, 0xA3, 0x7C, 0x7F,
+ 0xC9, 0xFA, 0x7D, 0x5B, 0x3F, 0x8A, 0xD3, 0xD0,
+ 0xD7, 0xA2, 0x56, 0x26, 0xB5, 0x7B, 0x1B, 0x44,
+ 0x78, 0x8D, 0x4C, 0xAF, 0x80, 0x62, 0x90, 0x42,
+ 0x5F, 0x98, 0x90, 0xA3, 0xA2, 0xA3, 0x5A, 0x90,
+ 0x5A, 0xB4, 0xB3, 0x7A, 0xCF, 0xD0, 0xDA, 0x6E,
+ 0x45, 0x17, 0xB2, 0x52, 0x5C, 0x96, 0x51, 0xE4
+ },
+ {
+ 0x64, 0x47, 0x5D, 0xFE, 0x76, 0x00, 0xD7, 0x17,
+ 0x1B, 0xEA, 0x0B, 0x39, 0x4E, 0x27, 0xC9, 0xB0,
+ 0x0D, 0x8E, 0x74, 0xDD, 0x1E, 0x41, 0x6A, 0x79,
+ 0x47, 0x36, 0x82, 0xAD, 0x3D, 0xFD, 0xBB, 0x70,
+ 0x66, 0x31, 0x55, 0x80, 0x55, 0xCF, 0xC8, 0xA4,
+ 0x0E, 0x07, 0xBD, 0x01, 0x5A, 0x45, 0x40, 0xDC,
+ 0xDE, 0xA1, 0x58, 0x83, 0xCB, 0xBF, 0x31, 0x41,
+ 0x2D, 0xF1, 0xDE, 0x1C, 0xD4, 0x15, 0x2B, 0x91
+ },
+ {
+ 0x12, 0xCD, 0x16, 0x74, 0xA4, 0x48, 0x8A, 0x5D,
+ 0x7C, 0x2B, 0x31, 0x60, 0xD2, 0xE2, 0xC4, 0xB5,
+ 0x83, 0x71, 0xBE, 0xDA, 0xD7, 0x93, 0x41, 0x8D,
+ 0x6F, 0x19, 0xC6, 0xEE, 0x38, 0x5D, 0x70, 0xB3,
+ 0xE0, 0x67, 0x39, 0x36, 0x9D, 0x4D, 0xF9, 0x10,
+ 0xED, 0xB0, 0xB0, 0xA5, 0x4C, 0xBF, 0xF4, 0x3D,
+ 0x54, 0x54, 0x4C, 0xD3, 0x7A, 0xB3, 0xA0, 0x6C,
+ 0xFA, 0x0A, 0x3D, 0xDA, 0xC8, 0xB6, 0x6C, 0x89
+ },
+ {
+ 0x60, 0x75, 0x69, 0x66, 0x47, 0x9D, 0xED, 0xC6,
+ 0xDD, 0x4B, 0xCF, 0xF8, 0xEA, 0x7D, 0x1D, 0x4C,
+ 0xE4, 0xD4, 0xAF, 0x2E, 0x7B, 0x09, 0x7E, 0x32,
+ 0xE3, 0x76, 0x35, 0x18, 0x44, 0x11, 0x47, 0xCC,
+ 0x12, 0xB3, 0xC0, 0xEE, 0x6D, 0x2E, 0xCA, 0xBF,
+ 0x11, 0x98, 0xCE, 0xC9, 0x2E, 0x86, 0xA3, 0x61,
+ 0x6F, 0xBA, 0x4F, 0x4E, 0x87, 0x2F, 0x58, 0x25,
+ 0x33, 0x0A, 0xDB, 0xB4, 0xC1, 0xDE, 0xE4, 0x44
+ },
+ {
+ 0xA7, 0x80, 0x3B, 0xCB, 0x71, 0xBC, 0x1D, 0x0F,
+ 0x43, 0x83, 0xDD, 0xE1, 0xE0, 0x61, 0x2E, 0x04,
+ 0xF8, 0x72, 0xB7, 0x15, 0xAD, 0x30, 0x81, 0x5C,
+ 0x22, 0x49, 0xCF, 0x34, 0xAB, 0xB8, 0xB0, 0x24,
+ 0x91, 0x5C, 0xB2, 0xFC, 0x9F, 0x4E, 0x7C, 0xC4,
+ 0xC8, 0xCF, 0xD4, 0x5B, 0xE2, 0xD5, 0xA9, 0x1E,
+ 0xAB, 0x09, 0x41, 0xC7, 0xD2, 0x70, 0xE2, 0xDA,
+ 0x4C, 0xA4, 0xA9, 0xF7, 0xAC, 0x68, 0x66, 0x3A
+ },
+ {
+ 0xB8, 0x4E, 0xF6, 0xA7, 0x22, 0x9A, 0x34, 0xA7,
+ 0x50, 0xD9, 0xA9, 0x8E, 0xE2, 0x52, 0x98, 0x71,
+ 0x81, 0x6B, 0x87, 0xFB, 0xE3, 0xBC, 0x45, 0xB4,
+ 0x5F, 0xA5, 0xAE, 0x82, 0xD5, 0x14, 0x15, 0x40,
+ 0x21, 0x11, 0x65, 0xC3, 0xC5, 0xD7, 0xA7, 0x47,
+ 0x6B, 0xA5, 0xA4, 0xAA, 0x06, 0xD6, 0x64, 0x76,
+ 0xF0, 0xD9, 0xDC, 0x49, 0xA3, 0xF1, 0xEE, 0x72,
+ 0xC3, 0xAC, 0xAB, 0xD4, 0x98, 0x96, 0x74, 0x14
+ },
+ {
+ 0xFA, 0xE4, 0xB6, 0xD8, 0xEF, 0xC3, 0xF8, 0xC8,
+ 0xE6, 0x4D, 0x00, 0x1D, 0xAB, 0xEC, 0x3A, 0x21,
+ 0xF5, 0x44, 0xE8, 0x27, 0x14, 0x74, 0x52, 0x51,
+ 0xB2, 0xB4, 0xB3, 0x93, 0xF2, 0xF4, 0x3E, 0x0D,
+ 0xA3, 0xD4, 0x03, 0xC6, 0x4D, 0xB9, 0x5A, 0x2C,
+ 0xB6, 0xE2, 0x3E, 0xBB, 0x7B, 0x9E, 0x94, 0xCD,
+ 0xD5, 0xDD, 0xAC, 0x54, 0xF0, 0x7C, 0x4A, 0x61,
+ 0xBD, 0x3C, 0xB1, 0x0A, 0xA6, 0xF9, 0x3B, 0x49
+ },
+ {
+ 0x34, 0xF7, 0x28, 0x66, 0x05, 0xA1, 0x22, 0x36,
+ 0x95, 0x40, 0x14, 0x1D, 0xED, 0x79, 0xB8, 0x95,
+ 0x72, 0x55, 0xDA, 0x2D, 0x41, 0x55, 0xAB, 0xBF,
+ 0x5A, 0x8D, 0xBB, 0x89, 0xC8, 0xEB, 0x7E, 0xDE,
+ 0x8E, 0xEE, 0xF1, 0xDA, 0xA4, 0x6D, 0xC2, 0x9D,
+ 0x75, 0x1D, 0x04, 0x5D, 0xC3, 0xB1, 0xD6, 0x58,
+ 0xBB, 0x64, 0xB8, 0x0F, 0xF8, 0x58, 0x9E, 0xDD,
+ 0xB3, 0x82, 0x4B, 0x13, 0xDA, 0x23, 0x5A, 0x6B
+ },
+ {
+ 0x3B, 0x3B, 0x48, 0x43, 0x4B, 0xE2, 0x7B, 0x9E,
+ 0xAB, 0xAB, 0xBA, 0x43, 0xBF, 0x6B, 0x35, 0xF1,
+ 0x4B, 0x30, 0xF6, 0xA8, 0x8D, 0xC2, 0xE7, 0x50,
+ 0xC3, 0x58, 0x47, 0x0D, 0x6B, 0x3A, 0xA3, 0xC1,
+ 0x8E, 0x47, 0xDB, 0x40, 0x17, 0xFA, 0x55, 0x10,
+ 0x6D, 0x82, 0x52, 0xF0, 0x16, 0x37, 0x1A, 0x00,
+ 0xF5, 0xF8, 0xB0, 0x70, 0xB7, 0x4B, 0xA5, 0xF2,
+ 0x3C, 0xFF, 0xC5, 0x51, 0x1C, 0x9F, 0x09, 0xF0
+ },
+ {
+ 0xBA, 0x28, 0x9E, 0xBD, 0x65, 0x62, 0xC4, 0x8C,
+ 0x3E, 0x10, 0xA8, 0xAD, 0x6C, 0xE0, 0x2E, 0x73,
+ 0x43, 0x3D, 0x1E, 0x93, 0xD7, 0xC9, 0x27, 0x9D,
+ 0x4D, 0x60, 0xA7, 0xE8, 0x79, 0xEE, 0x11, 0xF4,
+ 0x41, 0xA0, 0x00, 0xF4, 0x8E, 0xD9, 0xF7, 0xC4,
+ 0xED, 0x87, 0xA4, 0x51, 0x36, 0xD7, 0xDC, 0xCD,
+ 0xCA, 0x48, 0x21, 0x09, 0xC7, 0x8A, 0x51, 0x06,
+ 0x2B, 0x3B, 0xA4, 0x04, 0x4A, 0xDA, 0x24, 0x69
+ },
+ {
+ 0x02, 0x29, 0x39, 0xE2, 0x38, 0x6C, 0x5A, 0x37,
+ 0x04, 0x98, 0x56, 0xC8, 0x50, 0xA2, 0xBB, 0x10,
+ 0xA1, 0x3D, 0xFE, 0xA4, 0x21, 0x2B, 0x4C, 0x73,
+ 0x2A, 0x88, 0x40, 0xA9, 0xFF, 0xA5, 0xFA, 0xF5,
+ 0x48, 0x75, 0xC5, 0x44, 0x88, 0x16, 0xB2, 0x78,
+ 0x5A, 0x00, 0x7D, 0xA8, 0xA8, 0xD2, 0xBC, 0x7D,
+ 0x71, 0xA5, 0x4E, 0x4E, 0x65, 0x71, 0xF1, 0x0B,
+ 0x60, 0x0C, 0xBD, 0xB2, 0x5D, 0x13, 0xED, 0xE3
+ },
+ {
+ 0xE6, 0xFE, 0xC1, 0x9D, 0x89, 0xCE, 0x87, 0x17,
+ 0xB1, 0xA0, 0x87, 0x02, 0x46, 0x70, 0xFE, 0x02,
+ 0x6F, 0x6C, 0x7C, 0xBD, 0xA1, 0x1C, 0xAE, 0xF9,
+ 0x59, 0xBB, 0x2D, 0x35, 0x1B, 0xF8, 0x56, 0xF8,
+ 0x05, 0x5D, 0x1C, 0x0E, 0xBD, 0xAA, 0xA9, 0xD1,
+ 0xB1, 0x78, 0x86, 0xFC, 0x2C, 0x56, 0x2B, 0x5E,
+ 0x99, 0x64, 0x2F, 0xC0, 0x64, 0x71, 0x0C, 0x0D,
+ 0x34, 0x88, 0xA0, 0x2B, 0x5E, 0xD7, 0xF6, 0xFD
+ },
+ {
+ 0x94, 0xC9, 0x6F, 0x02, 0xA8, 0xF5, 0x76, 0xAC,
+ 0xA3, 0x2B, 0xA6, 0x1C, 0x2B, 0x20, 0x6F, 0x90,
+ 0x72, 0x85, 0xD9, 0x29, 0x9B, 0x83, 0xAC, 0x17,
+ 0x5C, 0x20, 0x9A, 0x8D, 0x43, 0xD5, 0x3B, 0xFE,
+ 0x68, 0x3D, 0xD1, 0xD8, 0x3E, 0x75, 0x49, 0xCB,
+ 0x90, 0x6C, 0x28, 0xF5, 0x9A, 0xB7, 0xC4, 0x6F,
+ 0x87, 0x51, 0x36, 0x6A, 0x28, 0xC3, 0x9D, 0xD5,
+ 0xFE, 0x26, 0x93, 0xC9, 0x01, 0x96, 0x66, 0xC8
+ },
+ {
+ 0x31, 0xA0, 0xCD, 0x21, 0x5E, 0xBD, 0x2C, 0xB6,
+ 0x1D, 0xE5, 0xB9, 0xED, 0xC9, 0x1E, 0x61, 0x95,
+ 0xE3, 0x1C, 0x59, 0xA5, 0x64, 0x8D, 0x5C, 0x9F,
+ 0x73, 0x7E, 0x12, 0x5B, 0x26, 0x05, 0x70, 0x8F,
+ 0x2E, 0x32, 0x5A, 0xB3, 0x38, 0x1C, 0x8D, 0xCE,
+ 0x1A, 0x3E, 0x95, 0x88, 0x86, 0xF1, 0xEC, 0xDC,
+ 0x60, 0x31, 0x8F, 0x88, 0x2C, 0xFE, 0x20, 0xA2,
+ 0x41, 0x91, 0x35, 0x2E, 0x61, 0x7B, 0x0F, 0x21
+ },
+ {
+ 0x91, 0xAB, 0x50, 0x4A, 0x52, 0x2D, 0xCE, 0x78,
+ 0x77, 0x9F, 0x4C, 0x6C, 0x6B, 0xA2, 0xE6, 0xB6,
+ 0xDB, 0x55, 0x65, 0xC7, 0x6D, 0x3E, 0x7E, 0x7C,
+ 0x92, 0x0C, 0xAF, 0x7F, 0x75, 0x7E, 0xF9, 0xDB,
+ 0x7C, 0x8F, 0xCF, 0x10, 0xE5, 0x7F, 0x03, 0x37,
+ 0x9E, 0xA9, 0xBF, 0x75, 0xEB, 0x59, 0x89, 0x5D,
+ 0x96, 0xE1, 0x49, 0x80, 0x0B, 0x6A, 0xAE, 0x01,
+ 0xDB, 0x77, 0x8B, 0xB9, 0x0A, 0xFB, 0xC9, 0x89
+ },
+ {
+ 0xD8, 0x5C, 0xAB, 0xC6, 0xBD, 0x5B, 0x1A, 0x01,
+ 0xA5, 0xAF, 0xD8, 0xC6, 0x73, 0x47, 0x40, 0xDA,
+ 0x9F, 0xD1, 0xC1, 0xAC, 0xC6, 0xDB, 0x29, 0xBF,
+ 0xC8, 0xA2, 0xE5, 0xB6, 0x68, 0xB0, 0x28, 0xB6,
+ 0xB3, 0x15, 0x4B, 0xFB, 0x87, 0x03, 0xFA, 0x31,
+ 0x80, 0x25, 0x1D, 0x58, 0x9A, 0xD3, 0x80, 0x40,
+ 0xCE, 0xB7, 0x07, 0xC4, 0xBA, 0xD1, 0xB5, 0x34,
+ 0x3C, 0xB4, 0x26, 0xB6, 0x1E, 0xAA, 0x49, 0xC1
+ },
+ {
+ 0xD6, 0x2E, 0xFB, 0xEC, 0x2C, 0xA9, 0xC1, 0xF8,
+ 0xBD, 0x66, 0xCE, 0x8B, 0x3F, 0x6A, 0x89, 0x8C,
+ 0xB3, 0xF7, 0x56, 0x6B, 0xA6, 0x56, 0x8C, 0x61,
+ 0x8A, 0xD1, 0xFE, 0xB2, 0xB6, 0x5B, 0x76, 0xC3,
+ 0xCE, 0x1D, 0xD2, 0x0F, 0x73, 0x95, 0x37, 0x2F,
+ 0xAF, 0x28, 0x42, 0x7F, 0x61, 0xC9, 0x27, 0x80,
+ 0x49, 0xCF, 0x01, 0x40, 0xDF, 0x43, 0x4F, 0x56,
+ 0x33, 0x04, 0x8C, 0x86, 0xB8, 0x1E, 0x03, 0x99
+ },
+ {
+ 0x7C, 0x8F, 0xDC, 0x61, 0x75, 0x43, 0x9E, 0x2C,
+ 0x3D, 0xB1, 0x5B, 0xAF, 0xA7, 0xFB, 0x06, 0x14,
+ 0x3A, 0x6A, 0x23, 0xBC, 0x90, 0xF4, 0x49, 0xE7,
+ 0x9D, 0xEE, 0xF7, 0x3C, 0x3D, 0x49, 0x2A, 0x67,
+ 0x17, 0x15, 0xC1, 0x93, 0xB6, 0xFE, 0xA9, 0xF0,
+ 0x36, 0x05, 0x0B, 0x94, 0x60, 0x69, 0x85, 0x6B,
+ 0x89, 0x7E, 0x08, 0xC0, 0x07, 0x68, 0xF5, 0xEE,
+ 0x5D, 0xDC, 0xF7, 0x0B, 0x7C, 0xD6, 0xD0, 0xE0
+ },
+ {
+ 0x58, 0x60, 0x2E, 0xE7, 0x46, 0x8E, 0x6B, 0xC9,
+ 0xDF, 0x21, 0xBD, 0x51, 0xB2, 0x3C, 0x00, 0x5F,
+ 0x72, 0xD6, 0xCB, 0x01, 0x3F, 0x0A, 0x1B, 0x48,
+ 0xCB, 0xEC, 0x5E, 0xCA, 0x29, 0x92, 0x99, 0xF9,
+ 0x7F, 0x09, 0xF5, 0x4A, 0x9A, 0x01, 0x48, 0x3E,
+ 0xAE, 0xB3, 0x15, 0xA6, 0x47, 0x8B, 0xAD, 0x37,
+ 0xBA, 0x47, 0xCA, 0x13, 0x47, 0xC7, 0xC8, 0xFC,
+ 0x9E, 0x66, 0x95, 0x59, 0x2C, 0x91, 0xD7, 0x23
+ },
+ {
+ 0x27, 0xF5, 0xB7, 0x9E, 0xD2, 0x56, 0xB0, 0x50,
+ 0x99, 0x3D, 0x79, 0x34, 0x96, 0xED, 0xF4, 0x80,
+ 0x7C, 0x1D, 0x85, 0xA7, 0xB0, 0xA6, 0x7C, 0x9C,
+ 0x4F, 0xA9, 0x98, 0x60, 0x75, 0x0B, 0x0A, 0xE6,
+ 0x69, 0x89, 0x67, 0x0A, 0x8F, 0xFD, 0x78, 0x56,
+ 0xD7, 0xCE, 0x41, 0x15, 0x99, 0xE5, 0x8C, 0x4D,
+ 0x77, 0xB2, 0x32, 0xA6, 0x2B, 0xEF, 0x64, 0xD1,
+ 0x52, 0x75, 0xBE, 0x46, 0xA6, 0x82, 0x35, 0xFF
+ },
+ {
+ 0x39, 0x57, 0xA9, 0x76, 0xB9, 0xF1, 0x88, 0x7B,
+ 0xF0, 0x04, 0xA8, 0xDC, 0xA9, 0x42, 0xC9, 0x2D,
+ 0x2B, 0x37, 0xEA, 0x52, 0x60, 0x0F, 0x25, 0xE0,
+ 0xC9, 0xBC, 0x57, 0x07, 0xD0, 0x27, 0x9C, 0x00,
+ 0xC6, 0xE8, 0x5A, 0x83, 0x9B, 0x0D, 0x2D, 0x8E,
+ 0xB5, 0x9C, 0x51, 0xD9, 0x47, 0x88, 0xEB, 0xE6,
+ 0x24, 0x74, 0xA7, 0x91, 0xCA, 0xDF, 0x52, 0xCC,
+ 0xCF, 0x20, 0xF5, 0x07, 0x0B, 0x65, 0x73, 0xFC
+ },
+ {
+ 0xEA, 0xA2, 0x37, 0x6D, 0x55, 0x38, 0x0B, 0xF7,
+ 0x72, 0xEC, 0xCA, 0x9C, 0xB0, 0xAA, 0x46, 0x68,
+ 0xC9, 0x5C, 0x70, 0x71, 0x62, 0xFA, 0x86, 0xD5,
+ 0x18, 0xC8, 0xCE, 0x0C, 0xA9, 0xBF, 0x73, 0x62,
+ 0xB9, 0xF2, 0xA0, 0xAD, 0xC3, 0xFF, 0x59, 0x92,
+ 0x2D, 0xF9, 0x21, 0xB9, 0x45, 0x67, 0xE8, 0x1E,
+ 0x45, 0x2F, 0x6C, 0x1A, 0x07, 0xFC, 0x81, 0x7C,
+ 0xEB, 0xE9, 0x96, 0x04, 0xB3, 0x50, 0x5D, 0x38
+ },
+ {
+ 0xC1, 0xE2, 0xC7, 0x8B, 0x6B, 0x27, 0x34, 0xE2,
+ 0x48, 0x0E, 0xC5, 0x50, 0x43, 0x4C, 0xB5, 0xD6,
+ 0x13, 0x11, 0x1A, 0xDC, 0xC2, 0x1D, 0x47, 0x55,
+ 0x45, 0xC3, 0xB1, 0xB7, 0xE6, 0xFF, 0x12, 0x44,
+ 0x44, 0x76, 0xE5, 0xC0, 0x55, 0x13, 0x2E, 0x22,
+ 0x29, 0xDC, 0x0F, 0x80, 0x70, 0x44, 0xBB, 0x91,
+ 0x9B, 0x1A, 0x56, 0x62, 0xDD, 0x38, 0xA9, 0xEE,
+ 0x65, 0xE2, 0x43, 0xA3, 0x91, 0x1A, 0xED, 0x1A
+ },
+ {
+ 0x8A, 0xB4, 0x87, 0x13, 0x38, 0x9D, 0xD0, 0xFC,
+ 0xF9, 0xF9, 0x65, 0xD3, 0xCE, 0x66, 0xB1, 0xE5,
+ 0x59, 0xA1, 0xF8, 0xC5, 0x87, 0x41, 0xD6, 0x76,
+ 0x83, 0xCD, 0x97, 0x13, 0x54, 0xF4, 0x52, 0xE6,
+ 0x2D, 0x02, 0x07, 0xA6, 0x5E, 0x43, 0x6C, 0x5D,
+ 0x5D, 0x8F, 0x8E, 0xE7, 0x1C, 0x6A, 0xBF, 0xE5,
+ 0x0E, 0x66, 0x90, 0x04, 0xC3, 0x02, 0xB3, 0x1A,
+ 0x7E, 0xA8, 0x31, 0x1D, 0x4A, 0x91, 0x60, 0x51
+ },
+ {
+ 0x24, 0xCE, 0x0A, 0xDD, 0xAA, 0x4C, 0x65, 0x03,
+ 0x8B, 0xD1, 0xB1, 0xC0, 0xF1, 0x45, 0x2A, 0x0B,
+ 0x12, 0x87, 0x77, 0xAA, 0xBC, 0x94, 0xA2, 0x9D,
+ 0xF2, 0xFD, 0x6C, 0x7E, 0x2F, 0x85, 0xF8, 0xAB,
+ 0x9A, 0xC7, 0xEF, 0xF5, 0x16, 0xB0, 0xE0, 0xA8,
+ 0x25, 0xC8, 0x4A, 0x24, 0xCF, 0xE4, 0x92, 0xEA,
+ 0xAD, 0x0A, 0x63, 0x08, 0xE4, 0x6D, 0xD4, 0x2F,
+ 0xE8, 0x33, 0x3A, 0xB9, 0x71, 0xBB, 0x30, 0xCA
+ },
+ {
+ 0x51, 0x54, 0xF9, 0x29, 0xEE, 0x03, 0x04, 0x5B,
+ 0x6B, 0x0C, 0x00, 0x04, 0xFA, 0x77, 0x8E, 0xDE,
+ 0xE1, 0xD1, 0x39, 0x89, 0x32, 0x67, 0xCC, 0x84,
+ 0x82, 0x5A, 0xD7, 0xB3, 0x6C, 0x63, 0xDE, 0x32,
+ 0x79, 0x8E, 0x4A, 0x16, 0x6D, 0x24, 0x68, 0x65,
+ 0x61, 0x35, 0x4F, 0x63, 0xB0, 0x07, 0x09, 0xA1,
+ 0x36, 0x4B, 0x3C, 0x24, 0x1D, 0xE3, 0xFE, 0xBF,
+ 0x07, 0x54, 0x04, 0x58, 0x97, 0x46, 0x7C, 0xD4
+ },
+ {
+ 0xE7, 0x4E, 0x90, 0x79, 0x20, 0xFD, 0x87, 0xBD,
+ 0x5A, 0xD6, 0x36, 0xDD, 0x11, 0x08, 0x5E, 0x50,
+ 0xEE, 0x70, 0x45, 0x9C, 0x44, 0x3E, 0x1C, 0xE5,
+ 0x80, 0x9A, 0xF2, 0xBC, 0x2E, 0xBA, 0x39, 0xF9,
+ 0xE6, 0xD7, 0x12, 0x8E, 0x0E, 0x37, 0x12, 0xC3,
+ 0x16, 0xDA, 0x06, 0xF4, 0x70, 0x5D, 0x78, 0xA4,
+ 0x83, 0x8E, 0x28, 0x12, 0x1D, 0x43, 0x44, 0xA2,
+ 0xC7, 0x9C, 0x5E, 0x0D, 0xB3, 0x07, 0xA6, 0x77
+ },
+ {
+ 0xBF, 0x91, 0xA2, 0x23, 0x34, 0xBA, 0xC2, 0x0F,
+ 0x3F, 0xD8, 0x06, 0x63, 0xB3, 0xCD, 0x06, 0xC4,
+ 0xE8, 0x80, 0x2F, 0x30, 0xE6, 0xB5, 0x9F, 0x90,
+ 0xD3, 0x03, 0x5C, 0xC9, 0x79, 0x8A, 0x21, 0x7E,
+ 0xD5, 0xA3, 0x1A, 0xBB, 0xDA, 0x7F, 0xA6, 0x84,
+ 0x28, 0x27, 0xBD, 0xF2, 0xA7, 0xA1, 0xC2, 0x1F,
+ 0x6F, 0xCF, 0xCC, 0xBB, 0x54, 0xC6, 0xC5, 0x29,
+ 0x26, 0xF3, 0x2D, 0xA8, 0x16, 0x26, 0x9B, 0xE1
+ },
+ {
+ 0xD9, 0xD5, 0xC7, 0x4B, 0xE5, 0x12, 0x1B, 0x0B,
+ 0xD7, 0x42, 0xF2, 0x6B, 0xFF, 0xB8, 0xC8, 0x9F,
+ 0x89, 0x17, 0x1F, 0x3F, 0x93, 0x49, 0x13, 0x49,
+ 0x2B, 0x09, 0x03, 0xC2, 0x71, 0xBB, 0xE2, 0xB3,
+ 0x39, 0x5E, 0xF2, 0x59, 0x66, 0x9B, 0xEF, 0x43,
+ 0xB5, 0x7F, 0x7F, 0xCC, 0x30, 0x27, 0xDB, 0x01,
+ 0x82, 0x3F, 0x6B, 0xAE, 0xE6, 0x6E, 0x4F, 0x9F,
+ 0xEA, 0xD4, 0xD6, 0x72, 0x6C, 0x74, 0x1F, 0xCE
+ },
+ {
+ 0x50, 0xC8, 0xB8, 0xCF, 0x34, 0xCD, 0x87, 0x9F,
+ 0x80, 0xE2, 0xFA, 0xAB, 0x32, 0x30, 0xB0, 0xC0,
+ 0xE1, 0xCC, 0x3E, 0x9D, 0xCA, 0xDE, 0xB1, 0xB9,
+ 0xD9, 0x7A, 0xB9, 0x23, 0x41, 0x5D, 0xD9, 0xA1,
+ 0xFE, 0x38, 0xAD, 0xDD, 0x5C, 0x11, 0x75, 0x6C,
+ 0x67, 0x99, 0x0B, 0x25, 0x6E, 0x95, 0xAD, 0x6D,
+ 0x8F, 0x9F, 0xED, 0xCE, 0x10, 0xBF, 0x1C, 0x90,
+ 0x67, 0x9C, 0xDE, 0x0E, 0xCF, 0x1B, 0xE3, 0x47
+ },
+ {
+ 0x0A, 0x38, 0x6E, 0x7C, 0xD5, 0xDD, 0x9B, 0x77,
+ 0xA0, 0x35, 0xE0, 0x9F, 0xE6, 0xFE, 0xE2, 0xC8,
+ 0xCE, 0x61, 0xB5, 0x38, 0x3C, 0x87, 0xEA, 0x43,
+ 0x20, 0x50, 0x59, 0xC5, 0xE4, 0xCD, 0x4F, 0x44,
+ 0x08, 0x31, 0x9B, 0xB0, 0xA8, 0x23, 0x60, 0xF6,
+ 0xA5, 0x8E, 0x6C, 0x9C, 0xE3, 0xF4, 0x87, 0xC4,
+ 0x46, 0x06, 0x3B, 0xF8, 0x13, 0xBC, 0x6B, 0xA5,
+ 0x35, 0xE1, 0x7F, 0xC1, 0x82, 0x6C, 0xFC, 0x91
+ },
+ {
+ 0x1F, 0x14, 0x59, 0xCB, 0x6B, 0x61, 0xCB, 0xAC,
+ 0x5F, 0x0E, 0xFE, 0x8F, 0xC4, 0x87, 0x53, 0x8F,
+ 0x42, 0x54, 0x89, 0x87, 0xFC, 0xD5, 0x62, 0x21,
+ 0xCF, 0xA7, 0xBE, 0xB2, 0x25, 0x04, 0x76, 0x9E,
+ 0x79, 0x2C, 0x45, 0xAD, 0xFB, 0x1D, 0x6B, 0x3D,
+ 0x60, 0xD7, 0xB7, 0x49, 0xC8, 0xA7, 0x5B, 0x0B,
+ 0xDF, 0x14, 0xE8, 0xEA, 0x72, 0x1B, 0x95, 0xDC,
+ 0xA5, 0x38, 0xCA, 0x6E, 0x25, 0x71, 0x12, 0x09
+ },
+ {
+ 0xE5, 0x8B, 0x38, 0x36, 0xB7, 0xD8, 0xFE, 0xDB,
+ 0xB5, 0x0C, 0xA5, 0x72, 0x5C, 0x65, 0x71, 0xE7,
+ 0x4C, 0x07, 0x85, 0xE9, 0x78, 0x21, 0xDA, 0xB8,
+ 0xB6, 0x29, 0x8C, 0x10, 0xE4, 0xC0, 0x79, 0xD4,
+ 0xA6, 0xCD, 0xF2, 0x2F, 0x0F, 0xED, 0xB5, 0x50,
+ 0x32, 0x92, 0x5C, 0x16, 0x74, 0x81, 0x15, 0xF0,
+ 0x1A, 0x10, 0x5E, 0x77, 0xE0, 0x0C, 0xEE, 0x3D,
+ 0x07, 0x92, 0x4D, 0xC0, 0xD8, 0xF9, 0x06, 0x59
+ },
+ {
+ 0xB9, 0x29, 0xCC, 0x65, 0x05, 0xF0, 0x20, 0x15,
+ 0x86, 0x72, 0xDE, 0xDA, 0x56, 0xD0, 0xDB, 0x08,
+ 0x1A, 0x2E, 0xE3, 0x4C, 0x00, 0xC1, 0x10, 0x00,
+ 0x29, 0xBD, 0xF8, 0xEA, 0x98, 0x03, 0x4F, 0xA4,
+ 0xBF, 0x3E, 0x86, 0x55, 0xEC, 0x69, 0x7F, 0xE3,
+ 0x6F, 0x40, 0x55, 0x3C, 0x5B, 0xB4, 0x68, 0x01,
+ 0x64, 0x4A, 0x62, 0x7D, 0x33, 0x42, 0xF4, 0xFC,
+ 0x92, 0xB6, 0x1F, 0x03, 0x29, 0x0F, 0xB3, 0x81
+ },
+ {
+ 0x72, 0xD3, 0x53, 0x99, 0x4B, 0x49, 0xD3, 0xE0,
+ 0x31, 0x53, 0x92, 0x9A, 0x1E, 0x4D, 0x4F, 0x18,
+ 0x8E, 0xE5, 0x8A, 0xB9, 0xE7, 0x2E, 0xE8, 0xE5,
+ 0x12, 0xF2, 0x9B, 0xC7, 0x73, 0x91, 0x38, 0x19,
+ 0xCE, 0x05, 0x7D, 0xDD, 0x70, 0x02, 0xC0, 0x43,
+ 0x3E, 0xE0, 0xA1, 0x61, 0x14, 0xE3, 0xD1, 0x56,
+ 0xDD, 0x2C, 0x4A, 0x7E, 0x80, 0xEE, 0x53, 0x37,
+ 0x8B, 0x86, 0x70, 0xF2, 0x3E, 0x33, 0xEF, 0x56
+ },
+ {
+ 0xC7, 0x0E, 0xF9, 0xBF, 0xD7, 0x75, 0xD4, 0x08,
+ 0x17, 0x67, 0x37, 0xA0, 0x73, 0x6D, 0x68, 0x51,
+ 0x7C, 0xE1, 0xAA, 0xAD, 0x7E, 0x81, 0xA9, 0x3C,
+ 0x8C, 0x1E, 0xD9, 0x67, 0xEA, 0x21, 0x4F, 0x56,
+ 0xC8, 0xA3, 0x77, 0xB1, 0x76, 0x3E, 0x67, 0x66,
+ 0x15, 0xB6, 0x0F, 0x39, 0x88, 0x24, 0x1E, 0xAE,
+ 0x6E, 0xAB, 0x96, 0x85, 0xA5, 0x12, 0x49, 0x29,
+ 0xD2, 0x81, 0x88, 0xF2, 0x9E, 0xAB, 0x06, 0xF7
+ },
+ {
+ 0xC2, 0x30, 0xF0, 0x80, 0x26, 0x79, 0xCB, 0x33,
+ 0x82, 0x2E, 0xF8, 0xB3, 0xB2, 0x1B, 0xF7, 0xA9,
+ 0xA2, 0x89, 0x42, 0x09, 0x29, 0x01, 0xD7, 0xDA,
+ 0xC3, 0x76, 0x03, 0x00, 0x83, 0x10, 0x26, 0xCF,
+ 0x35, 0x4C, 0x92, 0x32, 0xDF, 0x3E, 0x08, 0x4D,
+ 0x99, 0x03, 0x13, 0x0C, 0x60, 0x1F, 0x63, 0xC1,
+ 0xF4, 0xA4, 0xA4, 0xB8, 0x10, 0x6E, 0x46, 0x8C,
+ 0xD4, 0x43, 0xBB, 0xE5, 0xA7, 0x34, 0xF4, 0x5F
+ },
+ {
+ 0x6F, 0x43, 0x09, 0x4C, 0xAF, 0xB5, 0xEB, 0xF1,
+ 0xF7, 0xA4, 0x93, 0x7E, 0xC5, 0x0F, 0x56, 0xA4,
+ 0xC9, 0xDA, 0x30, 0x3C, 0xBB, 0x55, 0xAC, 0x1F,
+ 0x27, 0xF1, 0xF1, 0x97, 0x6C, 0xD9, 0x6B, 0xED,
+ 0xA9, 0x46, 0x4F, 0x0E, 0x7B, 0x9C, 0x54, 0x62,
+ 0x0B, 0x8A, 0x9F, 0xBA, 0x98, 0x31, 0x64, 0xB8,
+ 0xBE, 0x35, 0x78, 0x42, 0x5A, 0x02, 0x4F, 0x5F,
+ 0xE1, 0x99, 0xC3, 0x63, 0x56, 0xB8, 0x89, 0x72
+ },
+ {
+ 0x37, 0x45, 0x27, 0x3F, 0x4C, 0x38, 0x22, 0x5D,
+ 0xB2, 0x33, 0x73, 0x81, 0x87, 0x1A, 0x0C, 0x6A,
+ 0xAF, 0xD3, 0xAF, 0x9B, 0x01, 0x8C, 0x88, 0xAA,
+ 0x02, 0x02, 0x58, 0x50, 0xA5, 0xDC, 0x3A, 0x42,
+ 0xA1, 0xA3, 0xE0, 0x3E, 0x56, 0xCB, 0xF1, 0xB0,
+ 0x87, 0x6D, 0x63, 0xA4, 0x41, 0xF1, 0xD2, 0x85,
+ 0x6A, 0x39, 0xB8, 0x80, 0x1E, 0xB5, 0xAF, 0x32,
+ 0x52, 0x01, 0xC4, 0x15, 0xD6, 0x5E, 0x97, 0xFE
+ },
+ {
+ 0xC5, 0x0C, 0x44, 0xCC, 0xA3, 0xEC, 0x3E, 0xDA,
+ 0xAE, 0x77, 0x9A, 0x7E, 0x17, 0x94, 0x50, 0xEB,
+ 0xDD, 0xA2, 0xF9, 0x70, 0x67, 0xC6, 0x90, 0xAA,
+ 0x6C, 0x5A, 0x4A, 0xC7, 0xC3, 0x01, 0x39, 0xBB,
+ 0x27, 0xC0, 0xDF, 0x4D, 0xB3, 0x22, 0x0E, 0x63,
+ 0xCB, 0x11, 0x0D, 0x64, 0xF3, 0x7F, 0xFE, 0x07,
+ 0x8D, 0xB7, 0x26, 0x53, 0xE2, 0xDA, 0xAC, 0xF9,
+ 0x3A, 0xE3, 0xF0, 0xA2, 0xD1, 0xA7, 0xEB, 0x2E
+ },
+ {
+ 0x8A, 0xEF, 0x26, 0x3E, 0x38, 0x5C, 0xBC, 0x61,
+ 0xE1, 0x9B, 0x28, 0x91, 0x42, 0x43, 0x26, 0x2A,
+ 0xF5, 0xAF, 0xE8, 0x72, 0x6A, 0xF3, 0xCE, 0x39,
+ 0xA7, 0x9C, 0x27, 0x02, 0x8C, 0xF3, 0xEC, 0xD3,
+ 0xF8, 0xD2, 0xDF, 0xD9, 0xCF, 0xC9, 0xAD, 0x91,
+ 0xB5, 0x8F, 0x6F, 0x20, 0x77, 0x8F, 0xD5, 0xF0,
+ 0x28, 0x94, 0xA3, 0xD9, 0x1C, 0x7D, 0x57, 0xD1,
+ 0xE4, 0xB8, 0x66, 0xA7, 0xF3, 0x64, 0xB6, 0xBE
+ },
+ {
+ 0x28, 0x69, 0x61, 0x41, 0xDE, 0x6E, 0x2D, 0x9B,
+ 0xCB, 0x32, 0x35, 0x57, 0x8A, 0x66, 0x16, 0x6C,
+ 0x14, 0x48, 0xD3, 0xE9, 0x05, 0xA1, 0xB4, 0x82,
+ 0xD4, 0x23, 0xBE, 0x4B, 0xC5, 0x36, 0x9B, 0xC8,
+ 0xC7, 0x4D, 0xAE, 0x0A, 0xCC, 0x9C, 0xC1, 0x23,
+ 0xE1, 0xD8, 0xDD, 0xCE, 0x9F, 0x97, 0x91, 0x7E,
+ 0x8C, 0x01, 0x9C, 0x55, 0x2D, 0xA3, 0x2D, 0x39,
+ 0xD2, 0x21, 0x9B, 0x9A, 0xBF, 0x0F, 0xA8, 0xC8
+ },
+ {
+ 0x2F, 0xB9, 0xEB, 0x20, 0x85, 0x83, 0x01, 0x81,
+ 0x90, 0x3A, 0x9D, 0xAF, 0xE3, 0xDB, 0x42, 0x8E,
+ 0xE1, 0x5B, 0xE7, 0x66, 0x22, 0x24, 0xEF, 0xD6,
+ 0x43, 0x37, 0x1F, 0xB2, 0x56, 0x46, 0xAE, 0xE7,
+ 0x16, 0xE5, 0x31, 0xEC, 0xA6, 0x9B, 0x2B, 0xDC,
+ 0x82, 0x33, 0xF1, 0xA8, 0x08, 0x1F, 0xA4, 0x3D,
+ 0xA1, 0x50, 0x03, 0x02, 0x97, 0x5A, 0x77, 0xF4,
+ 0x2F, 0xA5, 0x92, 0x13, 0x67, 0x10, 0xE9, 0xDC
+ },
+ {
+ 0x66, 0xF9, 0xA7, 0x14, 0x3F, 0x7A, 0x33, 0x14,
+ 0xA6, 0x69, 0xBF, 0x2E, 0x24, 0xBB, 0xB3, 0x50,
+ 0x14, 0x26, 0x1D, 0x63, 0x9F, 0x49, 0x5B, 0x6C,
+ 0x9C, 0x1F, 0x10, 0x4F, 0xE8, 0xE3, 0x20, 0xAC,
+ 0xA6, 0x0D, 0x45, 0x50, 0xD6, 0x9D, 0x52, 0xED,
+ 0xBD, 0x5A, 0x3C, 0xDE, 0xB4, 0x01, 0x4A, 0xE6,
+ 0x5B, 0x1D, 0x87, 0xAA, 0x77, 0x0B, 0x69, 0xAE,
+ 0x5C, 0x15, 0xF4, 0x33, 0x0B, 0x0B, 0x0A, 0xD8
+ },
+ {
+ 0xF4, 0xC4, 0xDD, 0x1D, 0x59, 0x4C, 0x35, 0x65,
+ 0xE3, 0xE2, 0x5C, 0xA4, 0x3D, 0xAD, 0x82, 0xF6,
+ 0x2A, 0xBE, 0xA4, 0x83, 0x5E, 0xD4, 0xCD, 0x81,
+ 0x1B, 0xCD, 0x97, 0x5E, 0x46, 0x27, 0x98, 0x28,
+ 0xD4, 0x4D, 0x4C, 0x62, 0xC3, 0x67, 0x9F, 0x1B,
+ 0x7F, 0x7B, 0x9D, 0xD4, 0x57, 0x1D, 0x7B, 0x49,
+ 0x55, 0x73, 0x47, 0xB8, 0xC5, 0x46, 0x0C, 0xBD,
+ 0xC1, 0xBE, 0xF6, 0x90, 0xFB, 0x2A, 0x08, 0xC0
+ },
+ {
+ 0x8F, 0x1D, 0xC9, 0x64, 0x9C, 0x3A, 0x84, 0x55,
+ 0x1F, 0x8F, 0x6E, 0x91, 0xCA, 0xC6, 0x82, 0x42,
+ 0xA4, 0x3B, 0x1F, 0x8F, 0x32, 0x8E, 0xE9, 0x22,
+ 0x80, 0x25, 0x73, 0x87, 0xFA, 0x75, 0x59, 0xAA,
+ 0x6D, 0xB1, 0x2E, 0x4A, 0xEA, 0xDC, 0x2D, 0x26,
+ 0x09, 0x91, 0x78, 0x74, 0x9C, 0x68, 0x64, 0xB3,
+ 0x57, 0xF3, 0xF8, 0x3B, 0x2F, 0xB3, 0xEF, 0xA8,
+ 0xD2, 0xA8, 0xDB, 0x05, 0x6B, 0xED, 0x6B, 0xCC
+ },
+ {
+ 0x31, 0x39, 0xC1, 0xA7, 0xF9, 0x7A, 0xFD, 0x16,
+ 0x75, 0xD4, 0x60, 0xEB, 0xBC, 0x07, 0xF2, 0x72,
+ 0x8A, 0xA1, 0x50, 0xDF, 0x84, 0x96, 0x24, 0x51,
+ 0x1E, 0xE0, 0x4B, 0x74, 0x3B, 0xA0, 0xA8, 0x33,
+ 0x09, 0x2F, 0x18, 0xC1, 0x2D, 0xC9, 0x1B, 0x4D,
+ 0xD2, 0x43, 0xF3, 0x33, 0x40, 0x2F, 0x59, 0xFE,
+ 0x28, 0xAB, 0xDB, 0xBB, 0xAE, 0x30, 0x1E, 0x7B,
+ 0x65, 0x9C, 0x7A, 0x26, 0xD5, 0xC0, 0xF9, 0x79
+ },
+ {
+ 0x06, 0xF9, 0x4A, 0x29, 0x96, 0x15, 0x8A, 0x81,
+ 0x9F, 0xE3, 0x4C, 0x40, 0xDE, 0x3C, 0xF0, 0x37,
+ 0x9F, 0xD9, 0xFB, 0x85, 0xB3, 0xE3, 0x63, 0xBA,
+ 0x39, 0x26, 0xA0, 0xE7, 0xD9, 0x60, 0xE3, 0xF4,
+ 0xC2, 0xE0, 0xC7, 0x0C, 0x7C, 0xE0, 0xCC, 0xB2,
+ 0xA6, 0x4F, 0xC2, 0x98, 0x69, 0xF6, 0xE7, 0xAB,
+ 0x12, 0xBD, 0x4D, 0x3F, 0x14, 0xFC, 0xE9, 0x43,
+ 0x27, 0x90, 0x27, 0xE7, 0x85, 0xFB, 0x5C, 0x29
+ },
+ {
+ 0xC2, 0x9C, 0x39, 0x9E, 0xF3, 0xEE, 0xE8, 0x96,
+ 0x1E, 0x87, 0x56, 0x5C, 0x1C, 0xE2, 0x63, 0x92,
+ 0x5F, 0xC3, 0xD0, 0xCE, 0x26, 0x7D, 0x13, 0xE4,
+ 0x8D, 0xD9, 0xE7, 0x32, 0xEE, 0x67, 0xB0, 0xF6,
+ 0x9F, 0xAD, 0x56, 0x40, 0x1B, 0x0F, 0x10, 0xFC,
+ 0xAA, 0xC1, 0x19, 0x20, 0x10, 0x46, 0xCC, 0xA2,
+ 0x8C, 0x5B, 0x14, 0xAB, 0xDE, 0xA3, 0x21, 0x2A,
+ 0xE6, 0x55, 0x62, 0xF7, 0xF1, 0x38, 0xDB, 0x3D
+ },
+ {
+ 0x4C, 0xEC, 0x4C, 0x9D, 0xF5, 0x2E, 0xEF, 0x05,
+ 0xC3, 0xF6, 0xFA, 0xAA, 0x97, 0x91, 0xBC, 0x74,
+ 0x45, 0x93, 0x71, 0x83, 0x22, 0x4E, 0xCC, 0x37,
+ 0xA1, 0xE5, 0x8D, 0x01, 0x32, 0xD3, 0x56, 0x17,
+ 0x53, 0x1D, 0x7E, 0x79, 0x5F, 0x52, 0xAF, 0x7B,
+ 0x1E, 0xB9, 0xD1, 0x47, 0xDE, 0x12, 0x92, 0xD3,
+ 0x45, 0xFE, 0x34, 0x18, 0x23, 0xF8, 0xE6, 0xBC,
+ 0x1E, 0x5B, 0xAD, 0xCA, 0x5C, 0x65, 0x61, 0x08
+ },
+ {
+ 0x89, 0x8B, 0xFB, 0xAE, 0x93, 0xB3, 0xE1, 0x8D,
+ 0x00, 0x69, 0x7E, 0xAB, 0x7D, 0x97, 0x04, 0xFA,
+ 0x36, 0xEC, 0x33, 0x9D, 0x07, 0x61, 0x31, 0xCE,
+ 0xFD, 0xF3, 0x0E, 0xDB, 0xE8, 0xD9, 0xCC, 0x81,
+ 0xC3, 0xA8, 0x0B, 0x12, 0x96, 0x59, 0xB1, 0x63,
+ 0xA3, 0x23, 0xBA, 0xB9, 0x79, 0x3D, 0x4F, 0xEE,
+ 0xD9, 0x2D, 0x54, 0xDA, 0xE9, 0x66, 0xC7, 0x75,
+ 0x29, 0x76, 0x4A, 0x09, 0xBE, 0x88, 0xDB, 0x45
+ },
+ {
+ 0xEE, 0x9B, 0xD0, 0x46, 0x9D, 0x3A, 0xAF, 0x4F,
+ 0x14, 0x03, 0x5B, 0xE4, 0x8A, 0x2C, 0x3B, 0x84,
+ 0xD9, 0xB4, 0xB1, 0xFF, 0xF1, 0xD9, 0x45, 0xE1,
+ 0xF1, 0xC1, 0xD3, 0x89, 0x80, 0xA9, 0x51, 0xBE,
+ 0x19, 0x7B, 0x25, 0xFE, 0x22, 0xC7, 0x31, 0xF2,
+ 0x0A, 0xEA, 0xCC, 0x93, 0x0B, 0xA9, 0xC4, 0xA1,
+ 0xF4, 0x76, 0x22, 0x27, 0x61, 0x7A, 0xD3, 0x50,
+ 0xFD, 0xAB, 0xB4, 0xE8, 0x02, 0x73, 0xA0, 0xF4
+ },
+ {
+ 0x3D, 0x4D, 0x31, 0x13, 0x30, 0x05, 0x81, 0xCD,
+ 0x96, 0xAC, 0xBF, 0x09, 0x1C, 0x3D, 0x0F, 0x3C,
+ 0x31, 0x01, 0x38, 0xCD, 0x69, 0x79, 0xE6, 0x02,
+ 0x6C, 0xDE, 0x62, 0x3E, 0x2D, 0xD1, 0xB2, 0x4D,
+ 0x4A, 0x86, 0x38, 0xBE, 0xD1, 0x07, 0x33, 0x44,
+ 0x78, 0x3A, 0xD0, 0x64, 0x9C, 0xC6, 0x30, 0x5C,
+ 0xCE, 0xC0, 0x4B, 0xEB, 0x49, 0xF3, 0x1C, 0x63,
+ 0x30, 0x88, 0xA9, 0x9B, 0x65, 0x13, 0x02, 0x67
+ },
+ {
+ 0x95, 0xC0, 0x59, 0x1A, 0xD9, 0x1F, 0x92, 0x1A,
+ 0xC7, 0xBE, 0x6D, 0x9C, 0xE3, 0x7E, 0x06, 0x63,
+ 0xED, 0x80, 0x11, 0xC1, 0xCF, 0xD6, 0xD0, 0x16,
+ 0x2A, 0x55, 0x72, 0xE9, 0x43, 0x68, 0xBA, 0xC0,
+ 0x20, 0x24, 0x48, 0x5E, 0x6A, 0x39, 0x85, 0x4A,
+ 0xA4, 0x6F, 0xE3, 0x8E, 0x97, 0xD6, 0xC6, 0xB1,
+ 0x94, 0x7C, 0xD2, 0x72, 0xD8, 0x6B, 0x06, 0xBB,
+ 0x5B, 0x2F, 0x78, 0xB9, 0xB6, 0x8D, 0x55, 0x9D
+ },
+ {
+ 0x22, 0x7B, 0x79, 0xDE, 0xD3, 0x68, 0x15, 0x3B,
+ 0xF4, 0x6C, 0x0A, 0x3C, 0xA9, 0x78, 0xBF, 0xDB,
+ 0xEF, 0x31, 0xF3, 0x02, 0x4A, 0x56, 0x65, 0x84,
+ 0x24, 0x68, 0x49, 0x0B, 0x0F, 0xF7, 0x48, 0xAE,
+ 0x04, 0xE7, 0x83, 0x2E, 0xD4, 0xC9, 0xF4, 0x9D,
+ 0xE9, 0xB1, 0x70, 0x67, 0x09, 0xD6, 0x23, 0xE5,
+ 0xC8, 0xC1, 0x5E, 0x3C, 0xAE, 0xCA, 0xE8, 0xD5,
+ 0xE4, 0x33, 0x43, 0x0F, 0xF7, 0x2F, 0x20, 0xEB
+ },
+ {
+ 0x5D, 0x34, 0xF3, 0x95, 0x2F, 0x01, 0x05, 0xEE,
+ 0xF8, 0x8A, 0xE8, 0xB6, 0x4C, 0x6C, 0xE9, 0x5E,
+ 0xBF, 0xAD, 0xE0, 0xE0, 0x2C, 0x69, 0xB0, 0x87,
+ 0x62, 0xA8, 0x71, 0x2D, 0x2E, 0x49, 0x11, 0xAD,
+ 0x3F, 0x94, 0x1F, 0xC4, 0x03, 0x4D, 0xC9, 0xB2,
+ 0xE4, 0x79, 0xFD, 0xBC, 0xD2, 0x79, 0xB9, 0x02,
+ 0xFA, 0xF5, 0xD8, 0x38, 0xBB, 0x2E, 0x0C, 0x64,
+ 0x95, 0xD3, 0x72, 0xB5, 0xB7, 0x02, 0x98, 0x13
+ },
+ {
+ 0x7F, 0x93, 0x9B, 0xF8, 0x35, 0x3A, 0xBC, 0xE4,
+ 0x9E, 0x77, 0xF1, 0x4F, 0x37, 0x50, 0xAF, 0x20,
+ 0xB7, 0xB0, 0x39, 0x02, 0xE1, 0xA1, 0xE7, 0xFB,
+ 0x6A, 0xAF, 0x76, 0xD0, 0x25, 0x9C, 0xD4, 0x01,
+ 0xA8, 0x31, 0x90, 0xF1, 0x56, 0x40, 0xE7, 0x4F,
+ 0x3E, 0x6C, 0x5A, 0x90, 0xE8, 0x39, 0xC7, 0x82,
+ 0x1F, 0x64, 0x74, 0x75, 0x7F, 0x75, 0xC7, 0xBF,
+ 0x90, 0x02, 0x08, 0x4D, 0xDC, 0x7A, 0x62, 0xDC
+ },
+ {
+ 0x06, 0x2B, 0x61, 0xA2, 0xF9, 0xA3, 0x3A, 0x71,
+ 0xD7, 0xD0, 0xA0, 0x61, 0x19, 0x64, 0x4C, 0x70,
+ 0xB0, 0x71, 0x6A, 0x50, 0x4D, 0xE7, 0xE5, 0xE1,
+ 0xBE, 0x49, 0xBD, 0x7B, 0x86, 0xE7, 0xED, 0x68,
+ 0x17, 0x71, 0x4F, 0x9F, 0x0F, 0xC3, 0x13, 0xD0,
+ 0x61, 0x29, 0x59, 0x7E, 0x9A, 0x22, 0x35, 0xEC,
+ 0x85, 0x21, 0xDE, 0x36, 0xF7, 0x29, 0x0A, 0x90,
+ 0xCC, 0xFC, 0x1F, 0xFA, 0x6D, 0x0A, 0xEE, 0x29
+ },
+ {
+ 0xF2, 0x9E, 0x01, 0xEE, 0xAE, 0x64, 0x31, 0x1E,
+ 0xB7, 0xF1, 0xC6, 0x42, 0x2F, 0x94, 0x6B, 0xF7,
+ 0xBE, 0xA3, 0x63, 0x79, 0x52, 0x3E, 0x7B, 0x2B,
+ 0xBA, 0xBA, 0x7D, 0x1D, 0x34, 0xA2, 0x2D, 0x5E,
+ 0xA5, 0xF1, 0xC5, 0xA0, 0x9D, 0x5C, 0xE1, 0xFE,
+ 0x68, 0x2C, 0xCE, 0xD9, 0xA4, 0x79, 0x8D, 0x1A,
+ 0x05, 0xB4, 0x6C, 0xD7, 0x2D, 0xFF, 0x5C, 0x1B,
+ 0x35, 0x54, 0x40, 0xB2, 0xA2, 0xD4, 0x76, 0xBC
+ },
+ {
+ 0xEC, 0x38, 0xCD, 0x3B, 0xBA, 0xB3, 0xEF, 0x35,
+ 0xD7, 0xCB, 0x6D, 0x5C, 0x91, 0x42, 0x98, 0x35,
+ 0x1D, 0x8A, 0x9D, 0xC9, 0x7F, 0xCE, 0xE0, 0x51,
+ 0xA8, 0xA0, 0x2F, 0x58, 0xE3, 0xED, 0x61, 0x84,
+ 0xD0, 0xB7, 0x81, 0x0A, 0x56, 0x15, 0x41, 0x1A,
+ 0xB1, 0xB9, 0x52, 0x09, 0xC3, 0xC8, 0x10, 0x11,
+ 0x4F, 0xDE, 0xB2, 0x24, 0x52, 0x08, 0x4E, 0x77,
+ 0xF3, 0xF8, 0x47, 0xC6, 0xDB, 0xAA, 0xFE, 0x16
+ },
+ {
+ 0xC2, 0xAE, 0xF5, 0xE0, 0xCA, 0x43, 0xE8, 0x26,
+ 0x41, 0x56, 0x5B, 0x8C, 0xB9, 0x43, 0xAA, 0x8B,
+ 0xA5, 0x35, 0x50, 0xCA, 0xEF, 0x79, 0x3B, 0x65,
+ 0x32, 0xFA, 0xFA, 0xD9, 0x4B, 0x81, 0x60, 0x82,
+ 0xF0, 0x11, 0x3A, 0x3E, 0xA2, 0xF6, 0x36, 0x08,
+ 0xAB, 0x40, 0x43, 0x7E, 0xCC, 0x0F, 0x02, 0x29,
+ 0xCB, 0x8F, 0xA2, 0x24, 0xDC, 0xF1, 0xC4, 0x78,
+ 0xA6, 0x7D, 0x9B, 0x64, 0x16, 0x2B, 0x92, 0xD1
+ },
+ {
+ 0x15, 0xF5, 0x34, 0xEF, 0xFF, 0x71, 0x05, 0xCD,
+ 0x1C, 0x25, 0x4D, 0x07, 0x4E, 0x27, 0xD5, 0x89,
+ 0x8B, 0x89, 0x31, 0x3B, 0x7D, 0x36, 0x6D, 0xC2,
+ 0xD7, 0xD8, 0x71, 0x13, 0xFA, 0x7D, 0x53, 0xAA,
+ 0xE1, 0x3F, 0x6D, 0xBA, 0x48, 0x7A, 0xD8, 0x10,
+ 0x3D, 0x5E, 0x85, 0x4C, 0x91, 0xFD, 0xB6, 0xE1,
+ 0xE7, 0x4B, 0x2E, 0xF6, 0xD1, 0x43, 0x17, 0x69,
+ 0xC3, 0x07, 0x67, 0xDD, 0xE0, 0x67, 0xA3, 0x5C
+ },
+ {
+ 0x89, 0xAC, 0xBC, 0xA0, 0xB1, 0x69, 0x89, 0x7A,
+ 0x0A, 0x27, 0x14, 0xC2, 0xDF, 0x8C, 0x95, 0xB5,
+ 0xB7, 0x9C, 0xB6, 0x93, 0x90, 0x14, 0x2B, 0x7D,
+ 0x60, 0x18, 0xBB, 0x3E, 0x30, 0x76, 0xB0, 0x99,
+ 0xB7, 0x9A, 0x96, 0x41, 0x52, 0xA9, 0xD9, 0x12,
+ 0xB1, 0xB8, 0x64, 0x12, 0xB7, 0xE3, 0x72, 0xE9,
+ 0xCE, 0xCA, 0xD7, 0xF2, 0x5D, 0x4C, 0xBA, 0xB8,
+ 0xA3, 0x17, 0xBE, 0x36, 0x49, 0x2A, 0x67, 0xD7
+ },
+ {
+ 0xE3, 0xC0, 0x73, 0x91, 0x90, 0xED, 0x84, 0x9C,
+ 0x9C, 0x96, 0x2F, 0xD9, 0xDB, 0xB5, 0x5E, 0x20,
+ 0x7E, 0x62, 0x4F, 0xCA, 0xC1, 0xEB, 0x41, 0x76,
+ 0x91, 0x51, 0x54, 0x99, 0xEE, 0xA8, 0xD8, 0x26,
+ 0x7B, 0x7E, 0x8F, 0x12, 0x87, 0xA6, 0x36, 0x33,
+ 0xAF, 0x50, 0x11, 0xFD, 0xE8, 0xC4, 0xDD, 0xF5,
+ 0x5B, 0xFD, 0xF7, 0x22, 0xED, 0xF8, 0x88, 0x31,
+ 0x41, 0x4F, 0x2C, 0xFA, 0xED, 0x59, 0xCB, 0x9A
+ },
+ {
+ 0x8D, 0x6C, 0xF8, 0x7C, 0x08, 0x38, 0x0D, 0x2D,
+ 0x15, 0x06, 0xEE, 0xE4, 0x6F, 0xD4, 0x22, 0x2D,
+ 0x21, 0xD8, 0xC0, 0x4E, 0x58, 0x5F, 0xBF, 0xD0,
+ 0x82, 0x69, 0xC9, 0x8F, 0x70, 0x28, 0x33, 0xA1,
+ 0x56, 0x32, 0x6A, 0x07, 0x24, 0x65, 0x64, 0x00,
+ 0xEE, 0x09, 0x35, 0x1D, 0x57, 0xB4, 0x40, 0x17,
+ 0x5E, 0x2A, 0x5D, 0xE9, 0x3C, 0xC5, 0xF8, 0x0D,
+ 0xB6, 0xDA, 0xF8, 0x35, 0x76, 0xCF, 0x75, 0xFA
+ },
+ {
+ 0xDA, 0x24, 0xBE, 0xDE, 0x38, 0x36, 0x66, 0xD5,
+ 0x63, 0xEE, 0xED, 0x37, 0xF6, 0x31, 0x9B, 0xAF,
+ 0x20, 0xD5, 0xC7, 0x5D, 0x16, 0x35, 0xA6, 0xBA,
+ 0x5E, 0xF4, 0xCF, 0xA1, 0xAC, 0x95, 0x48, 0x7E,
+ 0x96, 0xF8, 0xC0, 0x8A, 0xF6, 0x00, 0xAA, 0xB8,
+ 0x7C, 0x98, 0x6E, 0xBA, 0xD4, 0x9F, 0xC7, 0x0A,
+ 0x58, 0xB4, 0x89, 0x0B, 0x9C, 0x87, 0x6E, 0x09,
+ 0x10, 0x16, 0xDA, 0xF4, 0x9E, 0x1D, 0x32, 0x2E
+ },
+ {
+ 0xF9, 0xD1, 0xD1, 0xB1, 0xE8, 0x7E, 0xA7, 0xAE,
+ 0x75, 0x3A, 0x02, 0x97, 0x50, 0xCC, 0x1C, 0xF3,
+ 0xD0, 0x15, 0x7D, 0x41, 0x80, 0x5E, 0x24, 0x5C,
+ 0x56, 0x17, 0xBB, 0x93, 0x4E, 0x73, 0x2F, 0x0A,
+ 0xE3, 0x18, 0x0B, 0x78, 0xE0, 0x5B, 0xFE, 0x76,
+ 0xC7, 0xC3, 0x05, 0x1E, 0x3E, 0x3A, 0xC7, 0x8B,
+ 0x9B, 0x50, 0xC0, 0x51, 0x42, 0x65, 0x7E, 0x1E,
+ 0x03, 0x21, 0x5D, 0x6E, 0xC7, 0xBF, 0xD0, 0xFC
+ },
+ {
+ 0x11, 0xB7, 0xBC, 0x16, 0x68, 0x03, 0x20, 0x48,
+ 0xAA, 0x43, 0x34, 0x3D, 0xE4, 0x76, 0x39, 0x5E,
+ 0x81, 0x4B, 0xBB, 0xC2, 0x23, 0x67, 0x8D, 0xB9,
+ 0x51, 0xA1, 0xB0, 0x3A, 0x02, 0x1E, 0xFA, 0xC9,
+ 0x48, 0xCF, 0xBE, 0x21, 0x5F, 0x97, 0xFE, 0x9A,
+ 0x72, 0xA2, 0xF6, 0xBC, 0x03, 0x9E, 0x39, 0x56,
+ 0xBF, 0xA4, 0x17, 0xC1, 0xA9, 0xF1, 0x0D, 0x6D,
+ 0x7B, 0xA5, 0xD3, 0xD3, 0x2F, 0xF3, 0x23, 0xE5
+ },
+ {
+ 0xB8, 0xD9, 0x00, 0x0E, 0x4F, 0xC2, 0xB0, 0x66,
+ 0xED, 0xB9, 0x1A, 0xFE, 0xE8, 0xE7, 0xEB, 0x0F,
+ 0x24, 0xE3, 0xA2, 0x01, 0xDB, 0x8B, 0x67, 0x93,
+ 0xC0, 0x60, 0x85, 0x81, 0xE6, 0x28, 0xED, 0x0B,
+ 0xCC, 0x4E, 0x5A, 0xA6, 0x78, 0x79, 0x92, 0xA4,
+ 0xBC, 0xC4, 0x4E, 0x28, 0x80, 0x93, 0xE6, 0x3E,
+ 0xE8, 0x3A, 0xBD, 0x0B, 0xC3, 0xEC, 0x6D, 0x09,
+ 0x34, 0xA6, 0x74, 0xA4, 0xDA, 0x13, 0x83, 0x8A
+ },
+ {
+ 0xCE, 0x32, 0x5E, 0x29, 0x4F, 0x9B, 0x67, 0x19,
+ 0xD6, 0xB6, 0x12, 0x78, 0x27, 0x6A, 0xE0, 0x6A,
+ 0x25, 0x64, 0xC0, 0x3B, 0xB0, 0xB7, 0x83, 0xFA,
+ 0xFE, 0x78, 0x5B, 0xDF, 0x89, 0xC7, 0xD5, 0xAC,
+ 0xD8, 0x3E, 0x78, 0x75, 0x6D, 0x30, 0x1B, 0x44,
+ 0x56, 0x99, 0x02, 0x4E, 0xAE, 0xB7, 0x7B, 0x54,
+ 0xD4, 0x77, 0x33, 0x6E, 0xC2, 0xA4, 0xF3, 0x32,
+ 0xF2, 0xB3, 0xF8, 0x87, 0x65, 0xDD, 0xB0, 0xC3
+ },
+ {
+ 0x29, 0xAC, 0xC3, 0x0E, 0x96, 0x03, 0xAE, 0x2F,
+ 0xCC, 0xF9, 0x0B, 0xF9, 0x7E, 0x6C, 0xC4, 0x63,
+ 0xEB, 0xE2, 0x8C, 0x1B, 0x2F, 0x9B, 0x4B, 0x76,
+ 0x5E, 0x70, 0x53, 0x7C, 0x25, 0xC7, 0x02, 0xA2,
+ 0x9D, 0xCB, 0xFB, 0xF1, 0x4C, 0x99, 0xC5, 0x43,
+ 0x45, 0xBA, 0x2B, 0x51, 0xF1, 0x7B, 0x77, 0xB5,
+ 0xF1, 0x5D, 0xB9, 0x2B, 0xBA, 0xD8, 0xFA, 0x95,
+ 0xC4, 0x71, 0xF5, 0xD0, 0x70, 0xA1, 0x37, 0xCC
+ },
+ {
+ 0x33, 0x79, 0xCB, 0xAA, 0xE5, 0x62, 0xA8, 0x7B,
+ 0x4C, 0x04, 0x25, 0x55, 0x0F, 0xFD, 0xD6, 0xBF,
+ 0xE1, 0x20, 0x3F, 0x0D, 0x66, 0x6C, 0xC7, 0xEA,
+ 0x09, 0x5B, 0xE4, 0x07, 0xA5, 0xDF, 0xE6, 0x1E,
+ 0xE9, 0x14, 0x41, 0xCD, 0x51, 0x54, 0xB3, 0xE5,
+ 0x3B, 0x4F, 0x5F, 0xB3, 0x1A, 0xD4, 0xC7, 0xA9,
+ 0xAD, 0x5C, 0x7A, 0xF4, 0xAE, 0x67, 0x9A, 0xA5,
+ 0x1A, 0x54, 0x00, 0x3A, 0x54, 0xCA, 0x6B, 0x2D
+ },
+ {
+ 0x30, 0x95, 0xA3, 0x49, 0xD2, 0x45, 0x70, 0x8C,
+ 0x7C, 0xF5, 0x50, 0x11, 0x87, 0x03, 0xD7, 0x30,
+ 0x2C, 0x27, 0xB6, 0x0A, 0xF5, 0xD4, 0xE6, 0x7F,
+ 0xC9, 0x78, 0xF8, 0xA4, 0xE6, 0x09, 0x53, 0xC7,
+ 0xA0, 0x4F, 0x92, 0xFC, 0xF4, 0x1A, 0xEE, 0x64,
+ 0x32, 0x1C, 0xCB, 0x70, 0x7A, 0x89, 0x58, 0x51,
+ 0x55, 0x2B, 0x1E, 0x37, 0xB0, 0x0B, 0xC5, 0xE6,
+ 0xB7, 0x2F, 0xA5, 0xBC, 0xEF, 0x9E, 0x3F, 0xFF
+ },
+ {
+ 0x07, 0x26, 0x2D, 0x73, 0x8B, 0x09, 0x32, 0x1F,
+ 0x4D, 0xBC, 0xCE, 0xC4, 0xBB, 0x26, 0xF4, 0x8C,
+ 0xB0, 0xF0, 0xED, 0x24, 0x6C, 0xE0, 0xB3, 0x1B,
+ 0x9A, 0x6E, 0x7B, 0xC6, 0x83, 0x04, 0x9F, 0x1F,
+ 0x3E, 0x55, 0x45, 0xF2, 0x8C, 0xE9, 0x32, 0xDD,
+ 0x98, 0x5C, 0x5A, 0xB0, 0xF4, 0x3B, 0xD6, 0xDE,
+ 0x07, 0x70, 0x56, 0x0A, 0xF3, 0x29, 0x06, 0x5E,
+ 0xD2, 0xE4, 0x9D, 0x34, 0x62, 0x4C, 0x2C, 0xBB
+ },
+ {
+ 0xB6, 0x40, 0x5E, 0xCA, 0x8E, 0xE3, 0x31, 0x6C,
+ 0x87, 0x06, 0x1C, 0xC6, 0xEC, 0x18, 0xDB, 0xA5,
+ 0x3E, 0x6C, 0x25, 0x0C, 0x63, 0xBA, 0x1F, 0x3B,
+ 0xAE, 0x9E, 0x55, 0xDD, 0x34, 0x98, 0x03, 0x6A,
+ 0xF0, 0x8C, 0xD2, 0x72, 0xAA, 0x24, 0xD7, 0x13,
+ 0xC6, 0x02, 0x0D, 0x77, 0xAB, 0x2F, 0x39, 0x19,
+ 0xAF, 0x1A, 0x32, 0xF3, 0x07, 0x42, 0x06, 0x18,
+ 0xAB, 0x97, 0xE7, 0x39, 0x53, 0x99, 0x4F, 0xB4
+ },
+ {
+ 0x7E, 0xE6, 0x82, 0xF6, 0x31, 0x48, 0xEE, 0x45,
+ 0xF6, 0xE5, 0x31, 0x5D, 0xA8, 0x1E, 0x5C, 0x6E,
+ 0x55, 0x7C, 0x2C, 0x34, 0x64, 0x1F, 0xC5, 0x09,
+ 0xC7, 0xA5, 0x70, 0x10, 0x88, 0xC3, 0x8A, 0x74,
+ 0x75, 0x61, 0x68, 0xE2, 0xCD, 0x8D, 0x35, 0x1E,
+ 0x88, 0xFD, 0x1A, 0x45, 0x1F, 0x36, 0x0A, 0x01,
+ 0xF5, 0xB2, 0x58, 0x0F, 0x9B, 0x5A, 0x2E, 0x8C,
+ 0xFC, 0x13, 0x8F, 0x3D, 0xD5, 0x9A, 0x3F, 0xFC
+ },
+ {
+ 0x1D, 0x26, 0x3C, 0x17, 0x9D, 0x6B, 0x26, 0x8F,
+ 0x6F, 0xA0, 0x16, 0xF3, 0xA4, 0xF2, 0x9E, 0x94,
+ 0x38, 0x91, 0x12, 0x5E, 0xD8, 0x59, 0x3C, 0x81,
+ 0x25, 0x60, 0x59, 0xF5, 0xA7, 0xB4, 0x4A, 0xF2,
+ 0xDC, 0xB2, 0x03, 0x0D, 0x17, 0x5C, 0x00, 0xE6,
+ 0x2E, 0xCA, 0xF7, 0xEE, 0x96, 0x68, 0x2A, 0xA0,
+ 0x7A, 0xB2, 0x0A, 0x61, 0x10, 0x24, 0xA2, 0x85,
+ 0x32, 0xB1, 0xC2, 0x5B, 0x86, 0x65, 0x79, 0x02
+ },
+ {
+ 0x10, 0x6D, 0x13, 0x2C, 0xBD, 0xB4, 0xCD, 0x25,
+ 0x97, 0x81, 0x28, 0x46, 0xE2, 0xBC, 0x1B, 0xF7,
+ 0x32, 0xFE, 0xC5, 0xF0, 0xA5, 0xF6, 0x5D, 0xBB,
+ 0x39, 0xEC, 0x4E, 0x6D, 0xC6, 0x4A, 0xB2, 0xCE,
+ 0x6D, 0x24, 0x63, 0x0D, 0x0F, 0x15, 0xA8, 0x05,
+ 0xC3, 0x54, 0x00, 0x25, 0xD8, 0x4A, 0xFA, 0x98,
+ 0xE3, 0x67, 0x03, 0xC3, 0xDB, 0xEE, 0x71, 0x3E,
+ 0x72, 0xDD, 0xE8, 0x46, 0x5B, 0xC1, 0xBE, 0x7E
+ },
+ {
+ 0x0E, 0x79, 0x96, 0x82, 0x26, 0x65, 0x06, 0x67,
+ 0xA8, 0xD8, 0x62, 0xEA, 0x8D, 0xA4, 0x89, 0x1A,
+ 0xF5, 0x6A, 0x4E, 0x3A, 0x8B, 0x6D, 0x17, 0x50,
+ 0xE3, 0x94, 0xF0, 0xDE, 0xA7, 0x6D, 0x64, 0x0D,
+ 0x85, 0x07, 0x7B, 0xCE, 0xC2, 0xCC, 0x86, 0x88,
+ 0x6E, 0x50, 0x67, 0x51, 0xB4, 0xF6, 0xA5, 0x83,
+ 0x8F, 0x7F, 0x0B, 0x5F, 0xEF, 0x76, 0x5D, 0x9D,
+ 0xC9, 0x0D, 0xCD, 0xCB, 0xAF, 0x07, 0x9F, 0x08
+ },
+ {
+ 0x52, 0x11, 0x56, 0xA8, 0x2A, 0xB0, 0xC4, 0xE5,
+ 0x66, 0xE5, 0x84, 0x4D, 0x5E, 0x31, 0xAD, 0x9A,
+ 0xAF, 0x14, 0x4B, 0xBD, 0x5A, 0x46, 0x4F, 0xDC,
+ 0xA3, 0x4D, 0xBD, 0x57, 0x17, 0xE8, 0xFF, 0x71,
+ 0x1D, 0x3F, 0xFE, 0xBB, 0xFA, 0x08, 0x5D, 0x67,
+ 0xFE, 0x99, 0x6A, 0x34, 0xF6, 0xD3, 0xE4, 0xE6,
+ 0x0B, 0x13, 0x96, 0xBF, 0x4B, 0x16, 0x10, 0xC2,
+ 0x63, 0xBD, 0xBB, 0x83, 0x4D, 0x56, 0x08, 0x16
+ },
+ {
+ 0x1A, 0xBA, 0x88, 0xBE, 0xFC, 0x55, 0xBC, 0x25,
+ 0xEF, 0xBC, 0xE0, 0x2D, 0xB8, 0xB9, 0x93, 0x3E,
+ 0x46, 0xF5, 0x76, 0x61, 0xBA, 0xEA, 0xBE, 0xB2,
+ 0x1C, 0xC2, 0x57, 0x4D, 0x2A, 0x51, 0x8A, 0x3C,
+ 0xBA, 0x5D, 0xC5, 0xA3, 0x8E, 0x49, 0x71, 0x34,
+ 0x40, 0xB2, 0x5F, 0x9C, 0x74, 0x4E, 0x75, 0xF6,
+ 0xB8, 0x5C, 0x9D, 0x8F, 0x46, 0x81, 0xF6, 0x76,
+ 0x16, 0x0F, 0x61, 0x05, 0x35, 0x7B, 0x84, 0x06
+ },
+ {
+ 0x5A, 0x99, 0x49, 0xFC, 0xB2, 0xC4, 0x73, 0xCD,
+ 0xA9, 0x68, 0xAC, 0x1B, 0x5D, 0x08, 0x56, 0x6D,
+ 0xC2, 0xD8, 0x16, 0xD9, 0x60, 0xF5, 0x7E, 0x63,
+ 0xB8, 0x98, 0xFA, 0x70, 0x1C, 0xF8, 0xEB, 0xD3,
+ 0xF5, 0x9B, 0x12, 0x4D, 0x95, 0xBF, 0xBB, 0xED,
+ 0xC5, 0xF1, 0xCF, 0x0E, 0x17, 0xD5, 0xEA, 0xED,
+ 0x0C, 0x02, 0xC5, 0x0B, 0x69, 0xD8, 0xA4, 0x02,
+ 0xCA, 0xBC, 0xCA, 0x44, 0x33, 0xB5, 0x1F, 0xD4
+ },
+ {
+ 0xB0, 0xCE, 0xAD, 0x09, 0x80, 0x7C, 0x67, 0x2A,
+ 0xF2, 0xEB, 0x2B, 0x0F, 0x06, 0xDD, 0xE4, 0x6C,
+ 0xF5, 0x37, 0x0E, 0x15, 0xA4, 0x09, 0x6B, 0x1A,
+ 0x7D, 0x7C, 0xBB, 0x36, 0xEC, 0x31, 0xC2, 0x05,
+ 0xFB, 0xEF, 0xCA, 0x00, 0xB7, 0xA4, 0x16, 0x2F,
+ 0xA8, 0x9F, 0xB4, 0xFB, 0x3E, 0xB7, 0x8D, 0x79,
+ 0x77, 0x0C, 0x23, 0xF4, 0x4E, 0x72, 0x06, 0x66,
+ 0x4C, 0xE3, 0xCD, 0x93, 0x1C, 0x29, 0x1E, 0x5D
+ },
+ {
+ 0xBB, 0x66, 0x64, 0x93, 0x1E, 0xC9, 0x70, 0x44,
+ 0xE4, 0x5B, 0x2A, 0xE4, 0x20, 0xAE, 0x1C, 0x55,
+ 0x1A, 0x88, 0x74, 0xBC, 0x93, 0x7D, 0x08, 0xE9,
+ 0x69, 0x39, 0x9C, 0x39, 0x64, 0xEB, 0xDB, 0xA8,
+ 0x34, 0x6C, 0xDD, 0x5D, 0x09, 0xCA, 0xAF, 0xE4,
+ 0xC2, 0x8B, 0xA7, 0xEC, 0x78, 0x81, 0x91, 0xCE,
+ 0xCA, 0x65, 0xDD, 0xD6, 0xF9, 0x5F, 0x18, 0x58,
+ 0x3E, 0x04, 0x0D, 0x0F, 0x30, 0xD0, 0x36, 0x4D
+ },
+ {
+ 0x65, 0xBC, 0x77, 0x0A, 0x5F, 0xAA, 0x37, 0x92,
+ 0x36, 0x98, 0x03, 0x68, 0x3E, 0x84, 0x4B, 0x0B,
+ 0xE7, 0xEE, 0x96, 0xF2, 0x9F, 0x6D, 0x6A, 0x35,
+ 0x56, 0x80, 0x06, 0xBD, 0x55, 0x90, 0xF9, 0xA4,
+ 0xEF, 0x63, 0x9B, 0x7A, 0x80, 0x61, 0xC7, 0xB0,
+ 0x42, 0x4B, 0x66, 0xB6, 0x0A, 0xC3, 0x4A, 0xF3,
+ 0x11, 0x99, 0x05, 0xF3, 0x3A, 0x9D, 0x8C, 0x3A,
+ 0xE1, 0x83, 0x82, 0xCA, 0x9B, 0x68, 0x99, 0x00
+ },
+ {
+ 0xEA, 0x9B, 0x4D, 0xCA, 0x33, 0x33, 0x36, 0xAA,
+ 0xF8, 0x39, 0xA4, 0x5C, 0x6E, 0xAA, 0x48, 0xB8,
+ 0xCB, 0x4C, 0x7D, 0xDA, 0xBF, 0xFE, 0xA4, 0xF6,
+ 0x43, 0xD6, 0x35, 0x7E, 0xA6, 0x62, 0x8A, 0x48,
+ 0x0A, 0x5B, 0x45, 0xF2, 0xB0, 0x52, 0xC1, 0xB0,
+ 0x7D, 0x1F, 0xED, 0xCA, 0x91, 0x8B, 0x6F, 0x11,
+ 0x39, 0xD8, 0x0F, 0x74, 0xC2, 0x45, 0x10, 0xDC,
+ 0xBA, 0xA4, 0xBE, 0x70, 0xEA, 0xCC, 0x1B, 0x06
+ },
+ {
+ 0xE6, 0x34, 0x2F, 0xB4, 0xA7, 0x80, 0xAD, 0x97,
+ 0x5D, 0x0E, 0x24, 0xBC, 0xE1, 0x49, 0x98, 0x9B,
+ 0x91, 0xD3, 0x60, 0x55, 0x7E, 0x87, 0x99, 0x4F,
+ 0x6B, 0x45, 0x7B, 0x89, 0x55, 0x75, 0xCC, 0x02,
+ 0xD0, 0xC1, 0x5B, 0xAD, 0x3C, 0xE7, 0x57, 0x7F,
+ 0x4C, 0x63, 0x92, 0x7F, 0xF1, 0x3F, 0x3E, 0x38,
+ 0x1F, 0xF7, 0xE7, 0x2B, 0xDB, 0xE7, 0x45, 0x32,
+ 0x48, 0x44, 0xA9, 0xD2, 0x7E, 0x3F, 0x1C, 0x01
+ },
+ {
+ 0x3E, 0x20, 0x9C, 0x9B, 0x33, 0xE8, 0xE4, 0x61,
+ 0x17, 0x8A, 0xB4, 0x6B, 0x1C, 0x64, 0xB4, 0x9A,
+ 0x07, 0xFB, 0x74, 0x5F, 0x1C, 0x8B, 0xC9, 0x5F,
+ 0xBF, 0xB9, 0x4C, 0x6B, 0x87, 0xC6, 0x95, 0x16,
+ 0x65, 0x1B, 0x26, 0x4E, 0xF9, 0x80, 0x93, 0x7F,
+ 0xAD, 0x41, 0x23, 0x8B, 0x91, 0xDD, 0xC0, 0x11,
+ 0xA5, 0xDD, 0x77, 0x7C, 0x7E, 0xFD, 0x44, 0x94,
+ 0xB4, 0xB6, 0xEC, 0xD3, 0xA9, 0xC2, 0x2A, 0xC0
+ },
+ {
+ 0xFD, 0x6A, 0x3D, 0x5B, 0x18, 0x75, 0xD8, 0x04,
+ 0x86, 0xD6, 0xE6, 0x96, 0x94, 0xA5, 0x6D, 0xBB,
+ 0x04, 0xA9, 0x9A, 0x4D, 0x05, 0x1F, 0x15, 0xDB,
+ 0x26, 0x89, 0x77, 0x6B, 0xA1, 0xC4, 0x88, 0x2E,
+ 0x6D, 0x46, 0x2A, 0x60, 0x3B, 0x70, 0x15, 0xDC,
+ 0x9F, 0x4B, 0x74, 0x50, 0xF0, 0x53, 0x94, 0x30,
+ 0x3B, 0x86, 0x52, 0xCF, 0xB4, 0x04, 0xA2, 0x66,
+ 0x96, 0x2C, 0x41, 0xBA, 0xE6, 0xE1, 0x8A, 0x94
+ },
+ {
+ 0x95, 0x1E, 0x27, 0x51, 0x7E, 0x6B, 0xAD, 0x9E,
+ 0x41, 0x95, 0xFC, 0x86, 0x71, 0xDE, 0xE3, 0xE7,
+ 0xE9, 0xBE, 0x69, 0xCE, 0xE1, 0x42, 0x2C, 0xB9,
+ 0xFE, 0xCF, 0xCE, 0x0D, 0xBA, 0x87, 0x5F, 0x7B,
+ 0x31, 0x0B, 0x93, 0xEE, 0x3A, 0x3D, 0x55, 0x8F,
+ 0x94, 0x1F, 0x63, 0x5F, 0x66, 0x8F, 0xF8, 0x32,
+ 0xD2, 0xC1, 0xD0, 0x33, 0xC5, 0xE2, 0xF0, 0x99,
+ 0x7E, 0x4C, 0x66, 0xF1, 0x47, 0x34, 0x4E, 0x02
+ },
+ {
+ 0x8E, 0xBA, 0x2F, 0x87, 0x4F, 0x1A, 0xE8, 0x40,
+ 0x41, 0x90, 0x3C, 0x7C, 0x42, 0x53, 0xC8, 0x22,
+ 0x92, 0x53, 0x0F, 0xC8, 0x50, 0x95, 0x50, 0xBF,
+ 0xDC, 0x34, 0xC9, 0x5C, 0x7E, 0x28, 0x89, 0xD5,
+ 0x65, 0x0B, 0x0A, 0xD8, 0xCB, 0x98, 0x8E, 0x5C,
+ 0x48, 0x94, 0xCB, 0x87, 0xFB, 0xFB, 0xB1, 0x96,
+ 0x12, 0xEA, 0x93, 0xCC, 0xC4, 0xC5, 0xCA, 0xD1,
+ 0x71, 0x58, 0xB9, 0x76, 0x34, 0x64, 0xB4, 0x92
+ },
+ {
+ 0x16, 0xF7, 0x12, 0xEA, 0xA1, 0xB7, 0xC6, 0x35,
+ 0x47, 0x19, 0xA8, 0xE7, 0xDB, 0xDF, 0xAF, 0x55,
+ 0xE4, 0x06, 0x3A, 0x4D, 0x27, 0x7D, 0x94, 0x75,
+ 0x50, 0x01, 0x9B, 0x38, 0xDF, 0xB5, 0x64, 0x83,
+ 0x09, 0x11, 0x05, 0x7D, 0x50, 0x50, 0x61, 0x36,
+ 0xE2, 0x39, 0x4C, 0x3B, 0x28, 0x94, 0x5C, 0xC9,
+ 0x64, 0x96, 0x7D, 0x54, 0xE3, 0x00, 0x0C, 0x21,
+ 0x81, 0x62, 0x6C, 0xFB, 0x9B, 0x73, 0xEF, 0xD2
+ },
+ {
+ 0xC3, 0x96, 0x39, 0xE7, 0xD5, 0xC7, 0xFB, 0x8C,
+ 0xDD, 0x0F, 0xD3, 0xE6, 0xA5, 0x20, 0x96, 0x03,
+ 0x94, 0x37, 0x12, 0x2F, 0x21, 0xC7, 0x8F, 0x16,
+ 0x79, 0xCE, 0xA9, 0xD7, 0x8A, 0x73, 0x4C, 0x56,
+ 0xEC, 0xBE, 0xB2, 0x86, 0x54, 0xB4, 0xF1, 0x8E,
+ 0x34, 0x2C, 0x33, 0x1F, 0x6F, 0x72, 0x29, 0xEC,
+ 0x4B, 0x4B, 0xC2, 0x81, 0xB2, 0xD8, 0x0A, 0x6E,
+ 0xB5, 0x00, 0x43, 0xF3, 0x17, 0x96, 0xC8, 0x8C
+ },
+ {
+ 0x72, 0xD0, 0x81, 0xAF, 0x99, 0xF8, 0xA1, 0x73,
+ 0xDC, 0xC9, 0xA0, 0xAC, 0x4E, 0xB3, 0x55, 0x74,
+ 0x05, 0x63, 0x9A, 0x29, 0x08, 0x4B, 0x54, 0xA4,
+ 0x01, 0x72, 0x91, 0x2A, 0x2F, 0x8A, 0x39, 0x51,
+ 0x29, 0xD5, 0x53, 0x6F, 0x09, 0x18, 0xE9, 0x02,
+ 0xF9, 0xE8, 0xFA, 0x60, 0x00, 0x99, 0x5F, 0x41,
+ 0x68, 0xDD, 0xC5, 0xF8, 0x93, 0x01, 0x1B, 0xE6,
+ 0xA0, 0xDB, 0xC9, 0xB8, 0xA1, 0xA3, 0xF5, 0xBB
+ },
+ {
+ 0xC1, 0x1A, 0xA8, 0x1E, 0x5E, 0xFD, 0x24, 0xD5,
+ 0xFC, 0x27, 0xEE, 0x58, 0x6C, 0xFD, 0x88, 0x47,
+ 0xFB, 0xB0, 0xE2, 0x76, 0x01, 0xCC, 0xEC, 0xE5,
+ 0xEC, 0xCA, 0x01, 0x98, 0xE3, 0xC7, 0x76, 0x53,
+ 0x93, 0xBB, 0x74, 0x45, 0x7C, 0x7E, 0x7A, 0x27,
+ 0xEB, 0x91, 0x70, 0x35, 0x0E, 0x1F, 0xB5, 0x38,
+ 0x57, 0x17, 0x75, 0x06, 0xBE, 0x3E, 0x76, 0x2C,
+ 0xC0, 0xF1, 0x4D, 0x8C, 0x3A, 0xFE, 0x90, 0x77
+ },
+ {
+ 0xC2, 0x8F, 0x21, 0x50, 0xB4, 0x52, 0xE6, 0xC0,
+ 0xC4, 0x24, 0xBC, 0xDE, 0x6F, 0x8D, 0x72, 0x00,
+ 0x7F, 0x93, 0x10, 0xFE, 0xD7, 0xF2, 0xF8, 0x7D,
+ 0xE0, 0xDB, 0xB6, 0x4F, 0x44, 0x79, 0xD6, 0xC1,
+ 0x44, 0x1B, 0xA6, 0x6F, 0x44, 0xB2, 0xAC, 0xCE,
+ 0xE6, 0x16, 0x09, 0x17, 0x7E, 0xD3, 0x40, 0x12,
+ 0x8B, 0x40, 0x7E, 0xCE, 0xC7, 0xC6, 0x4B, 0xBE,
+ 0x50, 0xD6, 0x3D, 0x22, 0xD8, 0x62, 0x77, 0x27
+ },
+ {
+ 0xF6, 0x3D, 0x88, 0x12, 0x28, 0x77, 0xEC, 0x30,
+ 0xB8, 0xC8, 0xB0, 0x0D, 0x22, 0xE8, 0x90, 0x00,
+ 0xA9, 0x66, 0x42, 0x61, 0x12, 0xBD, 0x44, 0x16,
+ 0x6E, 0x2F, 0x52, 0x5B, 0x76, 0x9C, 0xCB, 0xE9,
+ 0xB2, 0x86, 0xD4, 0x37, 0xA0, 0x12, 0x91, 0x30,
+ 0xDD, 0xE1, 0xA8, 0x6C, 0x43, 0xE0, 0x4B, 0xED,
+ 0xB5, 0x94, 0xE6, 0x71, 0xD9, 0x82, 0x83, 0xAF,
+ 0xE6, 0x4C, 0xE3, 0x31, 0xDE, 0x98, 0x28, 0xFD
+ },
+ {
+ 0x34, 0x8B, 0x05, 0x32, 0x88, 0x0B, 0x88, 0xA6,
+ 0x61, 0x4A, 0x8D, 0x74, 0x08, 0xC3, 0xF9, 0x13,
+ 0x35, 0x7F, 0xBB, 0x60, 0xE9, 0x95, 0xC6, 0x02,
+ 0x05, 0xBE, 0x91, 0x39, 0xE7, 0x49, 0x98, 0xAE,
+ 0xDE, 0x7F, 0x45, 0x81, 0xE4, 0x2F, 0x6B, 0x52,
+ 0x69, 0x8F, 0x7F, 0xA1, 0x21, 0x97, 0x08, 0xC1,
+ 0x44, 0x98, 0x06, 0x7F, 0xD1, 0xE0, 0x95, 0x02,
+ 0xDE, 0x83, 0xA7, 0x7D, 0xD2, 0x81, 0x15, 0x0C
+ },
+ {
+ 0x51, 0x33, 0xDC, 0x8B, 0xEF, 0x72, 0x53, 0x59,
+ 0xDF, 0xF5, 0x97, 0x92, 0xD8, 0x5E, 0xAF, 0x75,
+ 0xB7, 0xE1, 0xDC, 0xD1, 0x97, 0x8B, 0x01, 0xC3,
+ 0x5B, 0x1B, 0x85, 0xFC, 0xEB, 0xC6, 0x33, 0x88,
+ 0xAD, 0x99, 0xA1, 0x7B, 0x63, 0x46, 0xA2, 0x17,
+ 0xDC, 0x1A, 0x96, 0x22, 0xEB, 0xD1, 0x22, 0xEC,
+ 0xF6, 0x91, 0x3C, 0x4D, 0x31, 0xA6, 0xB5, 0x2A,
+ 0x69, 0x5B, 0x86, 0xAF, 0x00, 0xD7, 0x41, 0xA0
+ },
+ {
+ 0x27, 0x53, 0xC4, 0xC0, 0xE9, 0x8E, 0xCA, 0xD8,
+ 0x06, 0xE8, 0x87, 0x80, 0xEC, 0x27, 0xFC, 0xCD,
+ 0x0F, 0x5C, 0x1A, 0xB5, 0x47, 0xF9, 0xE4, 0xBF,
+ 0x16, 0x59, 0xD1, 0x92, 0xC2, 0x3A, 0xA2, 0xCC,
+ 0x97, 0x1B, 0x58, 0xB6, 0x80, 0x25, 0x80, 0xBA,
+ 0xEF, 0x8A, 0xDC, 0x3B, 0x77, 0x6E, 0xF7, 0x08,
+ 0x6B, 0x25, 0x45, 0xC2, 0x98, 0x7F, 0x34, 0x8E,
+ 0xE3, 0x71, 0x9C, 0xDE, 0xF2, 0x58, 0xC4, 0x03
+ },
+ {
+ 0xB1, 0x66, 0x35, 0x73, 0xCE, 0x4B, 0x9D, 0x8C,
+ 0xAE, 0xFC, 0x86, 0x50, 0x12, 0xF3, 0xE3, 0x97,
+ 0x14, 0xB9, 0x89, 0x8A, 0x5D, 0xA6, 0xCE, 0x17,
+ 0xC2, 0x5A, 0x6A, 0x47, 0x93, 0x1A, 0x9D, 0xDB,
+ 0x9B, 0xBE, 0x98, 0xAD, 0xAA, 0x55, 0x3B, 0xEE,
+ 0xD4, 0x36, 0xE8, 0x95, 0x78, 0x45, 0x54, 0x16,
+ 0xC2, 0xA5, 0x2A, 0x52, 0x5C, 0xF2, 0x86, 0x2B,
+ 0x8D, 0x1D, 0x49, 0xA2, 0x53, 0x1B, 0x73, 0x91
+ },
+ {
+ 0x64, 0xF5, 0x8B, 0xD6, 0xBF, 0xC8, 0x56, 0xF5,
+ 0xE8, 0x73, 0xB2, 0xA2, 0x95, 0x6E, 0xA0, 0xED,
+ 0xA0, 0xD6, 0xDB, 0x0D, 0xA3, 0x9C, 0x8C, 0x7F,
+ 0xC6, 0x7C, 0x9F, 0x9F, 0xEE, 0xFC, 0xFF, 0x30,
+ 0x72, 0xCD, 0xF9, 0xE6, 0xEA, 0x37, 0xF6, 0x9A,
+ 0x44, 0xF0, 0xC6, 0x1A, 0xA0, 0xDA, 0x36, 0x93,
+ 0xC2, 0xDB, 0x5B, 0x54, 0x96, 0x0C, 0x02, 0x81,
+ 0xA0, 0x88, 0x15, 0x1D, 0xB4, 0x2B, 0x11, 0xE8
+ },
+ {
+ 0x07, 0x64, 0xC7, 0xBE, 0x28, 0x12, 0x5D, 0x90,
+ 0x65, 0xC4, 0xB9, 0x8A, 0x69, 0xD6, 0x0A, 0xED,
+ 0xE7, 0x03, 0x54, 0x7C, 0x66, 0xA1, 0x2E, 0x17,
+ 0xE1, 0xC6, 0x18, 0x99, 0x41, 0x32, 0xF5, 0xEF,
+ 0x82, 0x48, 0x2C, 0x1E, 0x3F, 0xE3, 0x14, 0x6C,
+ 0xC6, 0x53, 0x76, 0xCC, 0x10, 0x9F, 0x01, 0x38,
+ 0xED, 0x9A, 0x80, 0xE4, 0x9F, 0x1F, 0x3C, 0x7D,
+ 0x61, 0x0D, 0x2F, 0x24, 0x32, 0xF2, 0x06, 0x05
+ },
+ {
+ 0xF7, 0x48, 0x78, 0x43, 0x98, 0xA2, 0xFF, 0x03,
+ 0xEB, 0xEB, 0x07, 0xE1, 0x55, 0xE6, 0x61, 0x16,
+ 0xA8, 0x39, 0x74, 0x1A, 0x33, 0x6E, 0x32, 0xDA,
+ 0x71, 0xEC, 0x69, 0x60, 0x01, 0xF0, 0xAD, 0x1B,
+ 0x25, 0xCD, 0x48, 0xC6, 0x9C, 0xFC, 0xA7, 0x26,
+ 0x5E, 0xCA, 0x1D, 0xD7, 0x19, 0x04, 0xA0, 0xCE,
+ 0x74, 0x8A, 0xC4, 0x12, 0x4F, 0x35, 0x71, 0x07,
+ 0x6D, 0xFA, 0x71, 0x16, 0xA9, 0xCF, 0x00, 0xE9
+ },
+ {
+ 0x3F, 0x0D, 0xBC, 0x01, 0x86, 0xBC, 0xEB, 0x6B,
+ 0x78, 0x5B, 0xA7, 0x8D, 0x2A, 0x2A, 0x01, 0x3C,
+ 0x91, 0x0B, 0xE1, 0x57, 0xBD, 0xAF, 0xFA, 0xE8,
+ 0x1B, 0xB6, 0x66, 0x3B, 0x1A, 0x73, 0x72, 0x2F,
+ 0x7F, 0x12, 0x28, 0x79, 0x5F, 0x3E, 0xCA, 0xDA,
+ 0x87, 0xCF, 0x6E, 0xF0, 0x07, 0x84, 0x74, 0xAF,
+ 0x73, 0xF3, 0x1E, 0xCA, 0x0C, 0xC2, 0x00, 0xED,
+ 0x97, 0x5B, 0x68, 0x93, 0xF7, 0x61, 0xCB, 0x6D
+ },
+ {
+ 0xD4, 0x76, 0x2C, 0xD4, 0x59, 0x98, 0x76, 0xCA,
+ 0x75, 0xB2, 0xB8, 0xFE, 0x24, 0x99, 0x44, 0xDB,
+ 0xD2, 0x7A, 0xCE, 0x74, 0x1F, 0xDA, 0xB9, 0x36,
+ 0x16, 0xCB, 0xC6, 0xE4, 0x25, 0x46, 0x0F, 0xEB,
+ 0x51, 0xD4, 0xE7, 0xAD, 0xCC, 0x38, 0x18, 0x0E,
+ 0x7F, 0xC4, 0x7C, 0x89, 0x02, 0x4A, 0x7F, 0x56,
+ 0x19, 0x1A, 0xDB, 0x87, 0x8D, 0xFD, 0xE4, 0xEA,
+ 0xD6, 0x22, 0x23, 0xF5, 0xA2, 0x61, 0x0E, 0xFE
+ },
+ {
+ 0xCD, 0x36, 0xB3, 0xD5, 0xB4, 0xC9, 0x1B, 0x90,
+ 0xFC, 0xBB, 0xA7, 0x95, 0x13, 0xCF, 0xEE, 0x19,
+ 0x07, 0xD8, 0x64, 0x5A, 0x16, 0x2A, 0xFD, 0x0C,
+ 0xD4, 0xCF, 0x41, 0x92, 0xD4, 0xA5, 0xF4, 0xC8,
+ 0x92, 0x18, 0x3A, 0x8E, 0xAC, 0xDB, 0x2B, 0x6B,
+ 0x6A, 0x9D, 0x9A, 0xA8, 0xC1, 0x1A, 0xC1, 0xB2,
+ 0x61, 0xB3, 0x80, 0xDB, 0xEE, 0x24, 0xCA, 0x46,
+ 0x8F, 0x1B, 0xFD, 0x04, 0x3C, 0x58, 0xEE, 0xFE
+ },
+ {
+ 0x98, 0x59, 0x34, 0x52, 0x28, 0x16, 0x61, 0xA5,
+ 0x3C, 0x48, 0xA9, 0xD8, 0xCD, 0x79, 0x08, 0x26,
+ 0xC1, 0xA1, 0xCE, 0x56, 0x77, 0x38, 0x05, 0x3D,
+ 0x0B, 0xEE, 0x4A, 0x91, 0xA3, 0xD5, 0xBD, 0x92,
+ 0xEE, 0xFD, 0xBA, 0xBE, 0xBE, 0x32, 0x04, 0xF2,
+ 0x03, 0x1C, 0xA5, 0xF7, 0x81, 0xBD, 0xA9, 0x9E,
+ 0xF5, 0xD8, 0xAE, 0x56, 0xE5, 0xB0, 0x4A, 0x9E,
+ 0x1E, 0xCD, 0x21, 0xB0, 0xEB, 0x05, 0xD3, 0xE1
+ },
+ {
+ 0x77, 0x1F, 0x57, 0xDD, 0x27, 0x75, 0xCC, 0xDA,
+ 0xB5, 0x59, 0x21, 0xD3, 0xE8, 0xE3, 0x0C, 0xCF,
+ 0x48, 0x4D, 0x61, 0xFE, 0x1C, 0x1B, 0x9C, 0x2A,
+ 0xE8, 0x19, 0xD0, 0xFB, 0x2A, 0x12, 0xFA, 0xB9,
+ 0xBE, 0x70, 0xC4, 0xA7, 0xA1, 0x38, 0xDA, 0x84,
+ 0xE8, 0x28, 0x04, 0x35, 0xDA, 0xAD, 0xE5, 0xBB,
+ 0xE6, 0x6A, 0xF0, 0x83, 0x6A, 0x15, 0x4F, 0x81,
+ 0x7F, 0xB1, 0x7F, 0x33, 0x97, 0xE7, 0x25, 0xA3
+ },
+ {
+ 0xC6, 0x08, 0x97, 0xC6, 0xF8, 0x28, 0xE2, 0x1F,
+ 0x16, 0xFB, 0xB5, 0xF1, 0x5B, 0x32, 0x3F, 0x87,
+ 0xB6, 0xC8, 0x95, 0x5E, 0xAB, 0xF1, 0xD3, 0x80,
+ 0x61, 0xF7, 0x07, 0xF6, 0x08, 0xAB, 0xDD, 0x99,
+ 0x3F, 0xAC, 0x30, 0x70, 0x63, 0x3E, 0x28, 0x6C,
+ 0xF8, 0x33, 0x9C, 0xE2, 0x95, 0xDD, 0x35, 0x2D,
+ 0xF4, 0xB4, 0xB4, 0x0B, 0x2F, 0x29, 0xDA, 0x1D,
+ 0xD5, 0x0B, 0x3A, 0x05, 0xD0, 0x79, 0xE6, 0xBB
+ },
+ {
+ 0x82, 0x10, 0xCD, 0x2C, 0x2D, 0x3B, 0x13, 0x5C,
+ 0x2C, 0xF0, 0x7F, 0xA0, 0xD1, 0x43, 0x3C, 0xD7,
+ 0x71, 0xF3, 0x25, 0xD0, 0x75, 0xC6, 0x46, 0x9D,
+ 0x9C, 0x7F, 0x1B, 0xA0, 0x94, 0x3C, 0xD4, 0xAB,
+ 0x09, 0x80, 0x8C, 0xAB, 0xF4, 0xAC, 0xB9, 0xCE,
+ 0x5B, 0xB8, 0x8B, 0x49, 0x89, 0x29, 0xB4, 0xB8,
+ 0x47, 0xF6, 0x81, 0xAD, 0x2C, 0x49, 0x0D, 0x04,
+ 0x2D, 0xB2, 0xAE, 0xC9, 0x42, 0x14, 0xB0, 0x6B
+ },
+ {
+ 0x1D, 0x4E, 0xDF, 0xFF, 0xD8, 0xFD, 0x80, 0xF7,
+ 0xE4, 0x10, 0x78, 0x40, 0xFA, 0x3A, 0xA3, 0x1E,
+ 0x32, 0x59, 0x84, 0x91, 0xE4, 0xAF, 0x70, 0x13,
+ 0xC1, 0x97, 0xA6, 0x5B, 0x7F, 0x36, 0xDD, 0x3A,
+ 0xC4, 0xB4, 0x78, 0x45, 0x61, 0x11, 0xCD, 0x43,
+ 0x09, 0xD9, 0x24, 0x35, 0x10, 0x78, 0x2F, 0xA3,
+ 0x1B, 0x7C, 0x4C, 0x95, 0xFA, 0x95, 0x15, 0x20,
+ 0xD0, 0x20, 0xEB, 0x7E, 0x5C, 0x36, 0xE4, 0xEF
+ },
+ {
+ 0xAF, 0x8E, 0x6E, 0x91, 0xFA, 0xB4, 0x6C, 0xE4,
+ 0x87, 0x3E, 0x1A, 0x50, 0xA8, 0xEF, 0x44, 0x8C,
+ 0xC2, 0x91, 0x21, 0xF7, 0xF7, 0x4D, 0xEE, 0xF3,
+ 0x4A, 0x71, 0xEF, 0x89, 0xCC, 0x00, 0xD9, 0x27,
+ 0x4B, 0xC6, 0xC2, 0x45, 0x4B, 0xBB, 0x32, 0x30,
+ 0xD8, 0xB2, 0xEC, 0x94, 0xC6, 0x2B, 0x1D, 0xEC,
+ 0x85, 0xF3, 0x59, 0x3B, 0xFA, 0x30, 0xEA, 0x6F,
+ 0x7A, 0x44, 0xD7, 0xC0, 0x94, 0x65, 0xA2, 0x53
+ },
+ {
+ 0x29, 0xFD, 0x38, 0x4E, 0xD4, 0x90, 0x6F, 0x2D,
+ 0x13, 0xAA, 0x9F, 0xE7, 0xAF, 0x90, 0x59, 0x90,
+ 0x93, 0x8B, 0xED, 0x80, 0x7F, 0x18, 0x32, 0x45,
+ 0x4A, 0x37, 0x2A, 0xB4, 0x12, 0xEE, 0xA1, 0xF5,
+ 0x62, 0x5A, 0x1F, 0xCC, 0x9A, 0xC8, 0x34, 0x3B,
+ 0x7C, 0x67, 0xC5, 0xAB, 0xA6, 0xE0, 0xB1, 0xCC,
+ 0x46, 0x44, 0x65, 0x49, 0x13, 0x69, 0x2C, 0x6B,
+ 0x39, 0xEB, 0x91, 0x87, 0xCE, 0xAC, 0xD3, 0xEC
+ },
+ {
+ 0xA2, 0x68, 0xC7, 0x88, 0x5D, 0x98, 0x74, 0xA5,
+ 0x1C, 0x44, 0xDF, 0xFE, 0xD8, 0xEA, 0x53, 0xE9,
+ 0x4F, 0x78, 0x45, 0x6E, 0x0B, 0x2E, 0xD9, 0x9F,
+ 0xF5, 0xA3, 0x92, 0x47, 0x60, 0x81, 0x38, 0x26,
+ 0xD9, 0x60, 0xA1, 0x5E, 0xDB, 0xED, 0xBB, 0x5D,
+ 0xE5, 0x22, 0x6B, 0xA4, 0xB0, 0x74, 0xE7, 0x1B,
+ 0x05, 0xC5, 0x5B, 0x97, 0x56, 0xBB, 0x79, 0xE5,
+ 0x5C, 0x02, 0x75, 0x4C, 0x2C, 0x7B, 0x6C, 0x8A
+ },
+ {
+ 0x0C, 0xF8, 0x54, 0x54, 0x88, 0xD5, 0x6A, 0x86,
+ 0x81, 0x7C, 0xD7, 0xEC, 0xB1, 0x0F, 0x71, 0x16,
+ 0xB7, 0xEA, 0x53, 0x0A, 0x45, 0xB6, 0xEA, 0x49,
+ 0x7B, 0x6C, 0x72, 0xC9, 0x97, 0xE0, 0x9E, 0x3D,
+ 0x0D, 0xA8, 0x69, 0x8F, 0x46, 0xBB, 0x00, 0x6F,
+ 0xC9, 0x77, 0xC2, 0xCD, 0x3D, 0x11, 0x77, 0x46,
+ 0x3A, 0xC9, 0x05, 0x7F, 0xDD, 0x16, 0x62, 0xC8,
+ 0x5D, 0x0C, 0x12, 0x64, 0x43, 0xC1, 0x04, 0x73
+ },
+ {
+ 0xB3, 0x96, 0x14, 0x26, 0x8F, 0xDD, 0x87, 0x81,
+ 0x51, 0x5E, 0x2C, 0xFE, 0xBF, 0x89, 0xB4, 0xD5,
+ 0x40, 0x2B, 0xAB, 0x10, 0xC2, 0x26, 0xE6, 0x34,
+ 0x4E, 0x6B, 0x9A, 0xE0, 0x00, 0xFB, 0x0D, 0x6C,
+ 0x79, 0xCB, 0x2F, 0x3E, 0xC8, 0x0E, 0x80, 0xEA,
+ 0xEB, 0x19, 0x80, 0xD2, 0xF8, 0x69, 0x89, 0x16,
+ 0xBD, 0x2E, 0x9F, 0x74, 0x72, 0x36, 0x65, 0x51,
+ 0x16, 0x64, 0x9C, 0xD3, 0xCA, 0x23, 0xA8, 0x37
+ },
+ {
+ 0x74, 0xBE, 0xF0, 0x92, 0xFC, 0x6F, 0x1E, 0x5D,
+ 0xBA, 0x36, 0x63, 0xA3, 0xFB, 0x00, 0x3B, 0x2A,
+ 0x5B, 0xA2, 0x57, 0x49, 0x65, 0x36, 0xD9, 0x9F,
+ 0x62, 0xB9, 0xD7, 0x3F, 0x8F, 0x9E, 0xB3, 0xCE,
+ 0x9F, 0xF3, 0xEE, 0xC7, 0x09, 0xEB, 0x88, 0x36,
+ 0x55, 0xEC, 0x9E, 0xB8, 0x96, 0xB9, 0x12, 0x8F,
+ 0x2A, 0xFC, 0x89, 0xCF, 0x7D, 0x1A, 0xB5, 0x8A,
+ 0x72, 0xF4, 0xA3, 0xBF, 0x03, 0x4D, 0x2B, 0x4A
+ },
+ {
+ 0x3A, 0x98, 0x8D, 0x38, 0xD7, 0x56, 0x11, 0xF3,
+ 0xEF, 0x38, 0xB8, 0x77, 0x49, 0x80, 0xB3, 0x3E,
+ 0x57, 0x3B, 0x6C, 0x57, 0xBE, 0xE0, 0x46, 0x9B,
+ 0xA5, 0xEE, 0xD9, 0xB4, 0x4F, 0x29, 0x94, 0x5E,
+ 0x73, 0x47, 0x96, 0x7F, 0xBA, 0x2C, 0x16, 0x2E,
+ 0x1C, 0x3B, 0xE7, 0xF3, 0x10, 0xF2, 0xF7, 0x5E,
+ 0xE2, 0x38, 0x1E, 0x7B, 0xFD, 0x6B, 0x3F, 0x0B,
+ 0xAE, 0xA8, 0xD9, 0x5D, 0xFB, 0x1D, 0xAF, 0xB1
+ },
+ {
+ 0x58, 0xAE, 0xDF, 0xCE, 0x6F, 0x67, 0xDD, 0xC8,
+ 0x5A, 0x28, 0xC9, 0x92, 0xF1, 0xC0, 0xBD, 0x09,
+ 0x69, 0xF0, 0x41, 0xE6, 0x6F, 0x1E, 0xE8, 0x80,
+ 0x20, 0xA1, 0x25, 0xCB, 0xFC, 0xFE, 0xBC, 0xD6,
+ 0x17, 0x09, 0xC9, 0xC4, 0xEB, 0xA1, 0x92, 0xC1,
+ 0x5E, 0x69, 0xF0, 0x20, 0xD4, 0x62, 0x48, 0x60,
+ 0x19, 0xFA, 0x8D, 0xEA, 0x0C, 0xD7, 0xA4, 0x29,
+ 0x21, 0xA1, 0x9D, 0x2F, 0xE5, 0x46, 0xD4, 0x3D
+ },
+ {
+ 0x93, 0x47, 0xBD, 0x29, 0x14, 0x73, 0xE6, 0xB4,
+ 0xE3, 0x68, 0x43, 0x7B, 0x8E, 0x56, 0x1E, 0x06,
+ 0x5F, 0x64, 0x9A, 0x6D, 0x8A, 0xDA, 0x47, 0x9A,
+ 0xD0, 0x9B, 0x19, 0x99, 0xA8, 0xF2, 0x6B, 0x91,
+ 0xCF, 0x61, 0x20, 0xFD, 0x3B, 0xFE, 0x01, 0x4E,
+ 0x83, 0xF2, 0x3A, 0xCF, 0xA4, 0xC0, 0xAD, 0x7B,
+ 0x37, 0x12, 0xB2, 0xC3, 0xC0, 0x73, 0x32, 0x70,
+ 0x66, 0x31, 0x12, 0xCC, 0xD9, 0x28, 0x5C, 0xD9
+ },
+ {
+ 0xB3, 0x21, 0x63, 0xE7, 0xC5, 0xDB, 0xB5, 0xF5,
+ 0x1F, 0xDC, 0x11, 0xD2, 0xEA, 0xC8, 0x75, 0xEF,
+ 0xBB, 0xCB, 0x7E, 0x76, 0x99, 0x09, 0x0A, 0x7E,
+ 0x7F, 0xF8, 0xA8, 0xD5, 0x07, 0x95, 0xAF, 0x5D,
+ 0x74, 0xD9, 0xFF, 0x98, 0x54, 0x3E, 0xF8, 0xCD,
+ 0xF8, 0x9A, 0xC1, 0x3D, 0x04, 0x85, 0x27, 0x87,
+ 0x56, 0xE0, 0xEF, 0x00, 0xC8, 0x17, 0x74, 0x56,
+ 0x61, 0xE1, 0xD5, 0x9F, 0xE3, 0x8E, 0x75, 0x37
+ },
+ {
+ 0x10, 0x85, 0xD7, 0x83, 0x07, 0xB1, 0xC4, 0xB0,
+ 0x08, 0xC5, 0x7A, 0x2E, 0x7E, 0x5B, 0x23, 0x46,
+ 0x58, 0xA0, 0xA8, 0x2E, 0x4F, 0xF1, 0xE4, 0xAA,
+ 0xAC, 0x72, 0xB3, 0x12, 0xFD, 0xA0, 0xFE, 0x27,
+ 0xD2, 0x33, 0xBC, 0x5B, 0x10, 0xE9, 0xCC, 0x17,
+ 0xFD, 0xC7, 0x69, 0x7B, 0x54, 0x0C, 0x7D, 0x95,
+ 0xEB, 0x21, 0x5A, 0x19, 0xA1, 0xA0, 0xE2, 0x0E,
+ 0x1A, 0xBF, 0xA1, 0x26, 0xEF, 0xD5, 0x68, 0xC7
+ },
+ {
+ 0x4E, 0x5C, 0x73, 0x4C, 0x7D, 0xDE, 0x01, 0x1D,
+ 0x83, 0xEA, 0xC2, 0xB7, 0x34, 0x7B, 0x37, 0x35,
+ 0x94, 0xF9, 0x2D, 0x70, 0x91, 0xB9, 0xCA, 0x34,
+ 0xCB, 0x9C, 0x6F, 0x39, 0xBD, 0xF5, 0xA8, 0xD2,
+ 0xF1, 0x34, 0x37, 0x9E, 0x16, 0xD8, 0x22, 0xF6,
+ 0x52, 0x21, 0x70, 0xCC, 0xF2, 0xDD, 0xD5, 0x5C,
+ 0x84, 0xB9, 0xE6, 0xC6, 0x4F, 0xC9, 0x27, 0xAC,
+ 0x4C, 0xF8, 0xDF, 0xB2, 0xA1, 0x77, 0x01, 0xF2
+ },
+ {
+ 0x69, 0x5D, 0x83, 0xBD, 0x99, 0x0A, 0x11, 0x17,
+ 0xB3, 0xD0, 0xCE, 0x06, 0xCC, 0x88, 0x80, 0x27,
+ 0xD1, 0x2A, 0x05, 0x4C, 0x26, 0x77, 0xFD, 0x82,
+ 0xF0, 0xD4, 0xFB, 0xFC, 0x93, 0x57, 0x55, 0x23,
+ 0xE7, 0x99, 0x1A, 0x5E, 0x35, 0xA3, 0x75, 0x2E,
+ 0x9B, 0x70, 0xCE, 0x62, 0x99, 0x2E, 0x26, 0x8A,
+ 0x87, 0x77, 0x44, 0xCD, 0xD4, 0x35, 0xF5, 0xF1,
+ 0x30, 0x86, 0x9C, 0x9A, 0x20, 0x74, 0xB3, 0x38
+ },
+ {
+ 0xA6, 0x21, 0x37, 0x43, 0x56, 0x8E, 0x3B, 0x31,
+ 0x58, 0xB9, 0x18, 0x43, 0x01, 0xF3, 0x69, 0x08,
+ 0x47, 0x55, 0x4C, 0x68, 0x45, 0x7C, 0xB4, 0x0F,
+ 0xC9, 0xA4, 0xB8, 0xCF, 0xD8, 0xD4, 0xA1, 0x18,
+ 0xC3, 0x01, 0xA0, 0x77, 0x37, 0xAE, 0xDA, 0x0F,
+ 0x92, 0x9C, 0x68, 0x91, 0x3C, 0x5F, 0x51, 0xC8,
+ 0x03, 0x94, 0xF5, 0x3B, 0xFF, 0x1C, 0x3E, 0x83,
+ 0xB2, 0xE4, 0x0C, 0xA9, 0x7E, 0xBA, 0x9E, 0x15
+ },
+ {
+ 0xD4, 0x44, 0xBF, 0xA2, 0x36, 0x2A, 0x96, 0xDF,
+ 0x21, 0x3D, 0x07, 0x0E, 0x33, 0xFA, 0x84, 0x1F,
+ 0x51, 0x33, 0x4E, 0x4E, 0x76, 0x86, 0x6B, 0x81,
+ 0x39, 0xE8, 0xAF, 0x3B, 0xB3, 0x39, 0x8B, 0xE2,
+ 0xDF, 0xAD, 0xDC, 0xBC, 0x56, 0xB9, 0x14, 0x6D,
+ 0xE9, 0xF6, 0x81, 0x18, 0xDC, 0x58, 0x29, 0xE7,
+ 0x4B, 0x0C, 0x28, 0xD7, 0x71, 0x19, 0x07, 0xB1,
+ 0x21, 0xF9, 0x16, 0x1C, 0xB9, 0x2B, 0x69, 0xA9
+ },
+ {
+ 0x14, 0x27, 0x09, 0xD6, 0x2E, 0x28, 0xFC, 0xCC,
+ 0xD0, 0xAF, 0x97, 0xFA, 0xD0, 0xF8, 0x46, 0x5B,
+ 0x97, 0x1E, 0x82, 0x20, 0x1D, 0xC5, 0x10, 0x70,
+ 0xFA, 0xA0, 0x37, 0x2A, 0xA4, 0x3E, 0x92, 0x48,
+ 0x4B, 0xE1, 0xC1, 0xE7, 0x3B, 0xA1, 0x09, 0x06,
+ 0xD5, 0xD1, 0x85, 0x3D, 0xB6, 0xA4, 0x10, 0x6E,
+ 0x0A, 0x7B, 0xF9, 0x80, 0x0D, 0x37, 0x3D, 0x6D,
+ 0xEE, 0x2D, 0x46, 0xD6, 0x2E, 0xF2, 0xA4, 0x61
+ },
+};
+
+
+
+
+static const uint8_t blake2sp_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
+{
+ {
+ 0xDD, 0x0E, 0x89, 0x17, 0x76, 0x93, 0x3F, 0x43,
+ 0xC7, 0xD0, 0x32, 0xB0, 0x8A, 0x91, 0x7E, 0x25,
+ 0x74, 0x1F, 0x8A, 0xA9, 0xA1, 0x2C, 0x12, 0xE1,
+ 0xCA, 0xC8, 0x80, 0x15, 0x00, 0xF2, 0xCA, 0x4F
+ },
+ {
+ 0xA6, 0xB9, 0xEE, 0xCC, 0x25, 0x22, 0x7A, 0xD7,
+ 0x88, 0xC9, 0x9D, 0x3F, 0x23, 0x6D, 0xEB, 0xC8,
+ 0xDA, 0x40, 0x88, 0x49, 0xE9, 0xA5, 0x17, 0x89,
+ 0x78, 0x72, 0x7A, 0x81, 0x45, 0x7F, 0x72, 0x39
+ },
+ {
+ 0xDA, 0xCA, 0xDE, 0xCE, 0x7A, 0x8E, 0x6B, 0xF3,
+ 0xAB, 0xFE, 0x32, 0x4C, 0xA6, 0x95, 0x43, 0x69,
+ 0x84, 0xB8, 0x19, 0x5D, 0x29, 0xF6, 0xBB, 0xD8,
+ 0x96, 0xE4, 0x1E, 0x18, 0xE2, 0x1C, 0x91, 0x45
+ },
+ {
+ 0xED, 0x14, 0x41, 0x3B, 0x40, 0xDA, 0x68, 0x9F,
+ 0x1F, 0x7F, 0xED, 0x2B, 0x08, 0xDF, 0xF4, 0x5B,
+ 0x80, 0x92, 0xDB, 0x5E, 0xC2, 0xC3, 0x61, 0x0E,
+ 0x02, 0x72, 0x4D, 0x20, 0x2F, 0x42, 0x3C, 0x46
+ },
+ {
+ 0x9B, 0x8A, 0x52, 0x7B, 0x52, 0x72, 0x25, 0x0A,
+ 0x1E, 0xC3, 0x97, 0x38, 0x8F, 0x04, 0x09, 0x14,
+ 0x95, 0x48, 0x06, 0xE7, 0x94, 0xDB, 0x04, 0xB7,
+ 0x0A, 0x46, 0x11, 0xBC, 0x59, 0x58, 0x6A, 0x83
+ },
+ {
+ 0x2B, 0xB6, 0x33, 0x37, 0x29, 0x00, 0x0B, 0xE3,
+ 0xD5, 0xA2, 0x1B, 0x98, 0xF8, 0xE7, 0xEA, 0xD0,
+ 0x77, 0xF1, 0x51, 0xA5, 0x39, 0x39, 0x19, 0xEB,
+ 0x67, 0xC8, 0x76, 0xEE, 0x00, 0xBB, 0xBB, 0x04
+ },
+ {
+ 0x63, 0xC0, 0x14, 0x08, 0x15, 0x4A, 0xD1, 0x9D,
+ 0x7F, 0xB7, 0x39, 0xF3, 0x11, 0x78, 0x17, 0x80,
+ 0x46, 0x2C, 0xF2, 0xEE, 0xCC, 0xE6, 0x0F, 0x06,
+ 0x4E, 0x85, 0x34, 0x87, 0xC2, 0x72, 0xE3, 0xEB
+ },
+ {
+ 0x3D, 0x05, 0x1A, 0x11, 0x76, 0x01, 0x9C, 0xA3,
+ 0x7B, 0xF3, 0x3D, 0x60, 0x42, 0x7F, 0x8D, 0x9D,
+ 0x1C, 0x3A, 0xBD, 0x59, 0x82, 0x97, 0xCF, 0xB4,
+ 0x23, 0x5F, 0x74, 0x7D, 0x7C, 0x7C, 0x7F, 0xEC
+ },
+ {
+ 0x39, 0x1E, 0xA9, 0x12, 0xDF, 0x4D, 0x4D, 0x79,
+ 0xA4, 0x64, 0x6D, 0x9D, 0xA2, 0x54, 0x9A, 0x44,
+ 0x6D, 0x22, 0x40, 0xF6, 0x24, 0x15, 0xD0, 0x70,
+ 0xA2, 0xE0, 0x93, 0x99, 0x2B, 0x47, 0x1F, 0xBA
+ },
+ {
+ 0x32, 0x46, 0x40, 0x44, 0x0E, 0xA5, 0xC3, 0x08,
+ 0x2D, 0xDC, 0x30, 0x9E, 0x78, 0x09, 0xD7, 0x41,
+ 0xD6, 0xCC, 0x1B, 0x2D, 0x49, 0x0F, 0xF8, 0xC0,
+ 0x52, 0x12, 0x8A, 0x6E, 0xEB, 0x40, 0x9D, 0x62
+ },
+ {
+ 0xAB, 0x85, 0x5E, 0x6F, 0xA3, 0x9A, 0x5E, 0x8F,
+ 0xC9, 0x0E, 0xAC, 0xB9, 0x99, 0xC7, 0xF7, 0x8A,
+ 0xE7, 0x1E, 0x59, 0xC3, 0xD9, 0x7D, 0x60, 0xAF,
+ 0xE5, 0x17, 0xD5, 0x87, 0x92, 0x3B, 0x77, 0x11
+ },
+ {
+ 0x2A, 0x39, 0xDA, 0x45, 0x86, 0xEF, 0xC4, 0x77,
+ 0x85, 0xA7, 0xA8, 0xDA, 0x85, 0x68, 0x3A, 0x51,
+ 0x72, 0x4C, 0xDE, 0xF5, 0x41, 0x3B, 0x35, 0x6D,
+ 0xC4, 0xFB, 0x50, 0x05, 0x13, 0xF8, 0xFA, 0x2E
+ },
+ {
+ 0x8A, 0x00, 0x57, 0xC1, 0xF7, 0x8A, 0xD6, 0x21,
+ 0x45, 0x55, 0xC0, 0x67, 0x07, 0x33, 0xE2, 0x9A,
+ 0x4C, 0x7E, 0x95, 0x62, 0x27, 0x66, 0x0E, 0xFE,
+ 0xB1, 0xD7, 0xFC, 0x79, 0xF5, 0x8E, 0xC6, 0xF2
+ },
+ {
+ 0x07, 0x64, 0xB0, 0x01, 0x7F, 0x5B, 0xD9, 0x51,
+ 0xF0, 0x1D, 0x9F, 0xDF, 0x95, 0xC0, 0xCB, 0x41,
+ 0x38, 0x98, 0x5D, 0x84, 0x79, 0x9C, 0xD4, 0x29,
+ 0x84, 0xE2, 0x5B, 0x51, 0x28, 0x00, 0xE7, 0x3C
+ },
+ {
+ 0xCC, 0x02, 0x49, 0x56, 0x93, 0xC8, 0xE1, 0x84,
+ 0xAD, 0x2E, 0xD0, 0x9D, 0x53, 0x3D, 0xC3, 0x3B,
+ 0x76, 0xA7, 0x78, 0x3D, 0x62, 0x07, 0xFC, 0xAC,
+ 0xCB, 0x64, 0xF3, 0xED, 0x2C, 0x6D, 0x66, 0xE0
+ },
+ {
+ 0xC0, 0xDF, 0x49, 0xC2, 0x06, 0xA3, 0x42, 0x88,
+ 0x14, 0x32, 0x16, 0x84, 0x7D, 0xF3, 0x34, 0xD4,
+ 0x56, 0x9D, 0xAD, 0x73, 0xC2, 0xB1, 0xFF, 0x62,
+ 0x84, 0x88, 0x4F, 0xD3, 0x89, 0x41, 0xFB, 0x95
+ },
+ {
+ 0xB9, 0x19, 0x45, 0x19, 0xE4, 0x97, 0x8A, 0x9D,
+ 0xC8, 0x93, 0xB2, 0x8B, 0xD8, 0x08, 0xCD, 0xFA,
+ 0xBB, 0x1B, 0xD5, 0x10, 0xD8, 0x62, 0xB3, 0x17,
+ 0x1F, 0xF6, 0xE0, 0x17, 0xA4, 0x1B, 0x80, 0x4C
+ },
+ {
+ 0xBB, 0xA9, 0x27, 0xAC, 0xF1, 0x1B, 0xEB, 0xD3,
+ 0x62, 0xA3, 0xA3, 0xEB, 0x78, 0xC4, 0xBB, 0x65,
+ 0xE6, 0x02, 0xA8, 0x70, 0x9F, 0xCE, 0xF3, 0x8D,
+ 0xC6, 0xC8, 0xB7, 0xBD, 0xA6, 0x64, 0xC3, 0x2C
+ },
+ {
+ 0xEC, 0xB4, 0x90, 0x0A, 0x63, 0x92, 0x4E, 0x72,
+ 0x0D, 0x40, 0xF2, 0xD2, 0xB1, 0x4D, 0x1B, 0xB3,
+ 0x9C, 0x37, 0x01, 0xAD, 0x73, 0x46, 0xBD, 0x0B,
+ 0x67, 0x23, 0x42, 0x70, 0xBF, 0xBE, 0x7E, 0x70
+ },
+ {
+ 0xF8, 0x31, 0x5A, 0x21, 0xB2, 0x5E, 0x6B, 0xA8,
+ 0xBF, 0x59, 0xB1, 0x7B, 0x05, 0x91, 0x3B, 0x8C,
+ 0xA4, 0x65, 0x9F, 0x1C, 0xD8, 0x38, 0xFC, 0xC7,
+ 0x73, 0xC9, 0xEB, 0x12, 0xE7, 0x00, 0x4E, 0x09
+ },
+ {
+ 0x4B, 0x77, 0xAF, 0x67, 0xA9, 0x23, 0x2B, 0xF1,
+ 0x18, 0x4E, 0x57, 0x81, 0x82, 0x94, 0x03, 0x1E,
+ 0x55, 0xF1, 0xF8, 0x53, 0xC9, 0x4D, 0xBA, 0xB5,
+ 0x57, 0x75, 0x47, 0x33, 0x0D, 0x65, 0xAA, 0x61
+ },
+ {
+ 0x76, 0x85, 0x68, 0x39, 0x0F, 0xD2, 0xB8, 0x70,
+ 0x94, 0x11, 0x4E, 0xD4, 0xCF, 0x72, 0x3E, 0xA3,
+ 0x20, 0xFE, 0x97, 0x7B, 0x53, 0x18, 0x03, 0x05,
+ 0xC3, 0x84, 0x33, 0x54, 0x79, 0xF0, 0xB5, 0x9B
+ },
+ {
+ 0xA4, 0x31, 0xCB, 0x27, 0x0F, 0x3E, 0x2C, 0x9B,
+ 0x7A, 0x95, 0x93, 0xB1, 0x55, 0xCC, 0xEC, 0xFF,
+ 0x5B, 0x5C, 0x4A, 0x2D, 0xCD, 0x5D, 0x6B, 0xB1,
+ 0xC4, 0x85, 0xAA, 0x28, 0x69, 0x97, 0xF9, 0x15
+ },
+ {
+ 0xD6, 0x91, 0xFA, 0x6A, 0x79, 0x0B, 0x1A, 0x51,
+ 0x79, 0x80, 0x08, 0x7F, 0x50, 0xB0, 0x3D, 0xED,
+ 0x8C, 0x6E, 0xD4, 0x86, 0xD0, 0x84, 0x22, 0x1C,
+ 0x82, 0x7D, 0x9B, 0xD9, 0x22, 0xBE, 0xB8, 0xC0
+ },
+ {
+ 0x8F, 0x97, 0x8A, 0x49, 0x32, 0xF4, 0x45, 0x98,
+ 0x13, 0xE8, 0xFE, 0x15, 0x68, 0x6E, 0x4E, 0xFA,
+ 0x25, 0xC2, 0xC5, 0xFF, 0x5A, 0x3A, 0x4F, 0x8C,
+ 0x9B, 0x14, 0x96, 0x5D, 0x2F, 0x0B, 0xE4, 0x61
+ },
+ {
+ 0x1E, 0xFB, 0xD0, 0xC1, 0x31, 0x44, 0x91, 0x42,
+ 0xF2, 0x29, 0x5F, 0x2D, 0x42, 0x41, 0x1D, 0xFE,
+ 0x0F, 0x48, 0xD4, 0xAC, 0xAE, 0x76, 0x2D, 0x8D,
+ 0xF6, 0x7A, 0x57, 0x0B, 0xF7, 0xB1, 0xDC, 0xD5
+ },
+ {
+ 0xD5, 0x3B, 0xA9, 0x33, 0x46, 0x14, 0x3A, 0xB8,
+ 0xE0, 0xD3, 0xD1, 0xBF, 0x27, 0x27, 0x06, 0xD1,
+ 0x69, 0xE6, 0x6C, 0x69, 0xC7, 0xB8, 0xF4, 0xA5,
+ 0xE8, 0x2F, 0xEF, 0x44, 0x07, 0x02, 0xBC, 0xF2
+ },
+ {
+ 0xF7, 0x1A, 0x3E, 0xC0, 0x1A, 0xA3, 0x82, 0xEA,
+ 0x76, 0x99, 0x2B, 0x43, 0x0A, 0x7F, 0x42, 0xC7,
+ 0xAD, 0x2A, 0x86, 0xAE, 0xA9, 0xC1, 0x9E, 0x76,
+ 0xCD, 0x17, 0x32, 0xEC, 0x68, 0x30, 0xDE, 0x6F
+ },
+ {
+ 0x80, 0xA6, 0xAB, 0x7B, 0x71, 0x04, 0x64, 0xF9,
+ 0x3E, 0x6C, 0xBA, 0x96, 0x86, 0x4A, 0xA6, 0x40,
+ 0x9B, 0xCA, 0xFC, 0x1B, 0xF4, 0xB3, 0x2A, 0x30,
+ 0x93, 0x72, 0xE8, 0x57, 0xE8, 0x04, 0x06, 0x8C
+ },
+ {
+ 0xDB, 0xDE, 0x81, 0xE5, 0x1A, 0x52, 0x17, 0x4B,
+ 0x10, 0x14, 0x90, 0x1B, 0x53, 0xBE, 0xF8, 0x8D,
+ 0xE9, 0x3B, 0x29, 0xE2, 0x74, 0x34, 0x7E, 0x8E,
+ 0x9A, 0x7B, 0x03, 0x74, 0x56, 0x62, 0x9F, 0x35
+ },
+ {
+ 0x75, 0xF2, 0x74, 0x46, 0x6B, 0x1A, 0x2D, 0x0F,
+ 0xD8, 0x45, 0xBB, 0xB5, 0x7C, 0x38, 0xC9, 0x89,
+ 0x51, 0x6E, 0x15, 0x68, 0x32, 0x0A, 0xB5, 0x17,
+ 0xB1, 0x63, 0xEA, 0xF7, 0x09, 0x23, 0x4C, 0xC7
+ },
+ {
+ 0xAF, 0xE1, 0xA0, 0x59, 0x1C, 0x49, 0x1D, 0x41,
+ 0x6E, 0xB6, 0x4F, 0x62, 0x86, 0xF3, 0xBA, 0x29,
+ 0xD4, 0xC9, 0x99, 0x82, 0x14, 0xA3, 0x83, 0x1C,
+ 0x39, 0x01, 0x4A, 0xC0, 0x30, 0x55, 0x79, 0x45
+ },
+ {
+ 0x67, 0xFF, 0x6A, 0xCD, 0xBE, 0x8A, 0x99, 0xA1,
+ 0x66, 0xA5, 0xD9, 0xCF, 0x32, 0x13, 0x65, 0x06,
+ 0xB5, 0x48, 0xD6, 0xC9, 0x47, 0xC2, 0x4C, 0x69,
+ 0x9C, 0xEA, 0x3A, 0xFD, 0x92, 0xAD, 0xFA, 0xCA
+ },
+ {
+ 0xBF, 0xB4, 0xD0, 0xC7, 0x11, 0x20, 0x75, 0x26,
+ 0x2C, 0x2D, 0xD2, 0x48, 0xF3, 0x34, 0xB2, 0xEF,
+ 0x15, 0x40, 0x08, 0x7E, 0xCC, 0x73, 0x82, 0xBC,
+ 0x2A, 0x27, 0x25, 0x75, 0xC5, 0x00, 0x9F, 0x70
+ },
+ {
+ 0x17, 0xC9, 0x4B, 0x9C, 0x53, 0x72, 0x43, 0xF2,
+ 0x33, 0x5B, 0x86, 0x39, 0x49, 0xB2, 0xB9, 0x1C,
+ 0x98, 0xA6, 0x95, 0x6D, 0x7C, 0x10, 0xAA, 0x98,
+ 0x99, 0x59, 0xA8, 0x0F, 0x91, 0x0C, 0x25, 0x22
+ },
+ {
+ 0xF6, 0x33, 0x8F, 0x43, 0x4D, 0x31, 0x94, 0x10,
+ 0x19, 0x6D, 0x95, 0x19, 0xAB, 0xCA, 0xEF, 0xF7,
+ 0xD5, 0x54, 0x39, 0xFD, 0x2A, 0xA5, 0xBA, 0xBF,
+ 0x7A, 0x7E, 0x79, 0x13, 0xB2, 0x94, 0xED, 0x4D
+ },
+ {
+ 0x08, 0xEF, 0x7D, 0x65, 0xF9, 0xBB, 0xF3, 0xDA,
+ 0x1F, 0x78, 0x84, 0xAE, 0x9B, 0x75, 0x90, 0x1F,
+ 0xD8, 0x52, 0x95, 0x66, 0x2A, 0x6E, 0xA7, 0x1D,
+ 0xE0, 0x8B, 0xEE, 0x38, 0x34, 0x57, 0x62, 0x78
+ },
+ {
+ 0x16, 0x47, 0xEC, 0xC2, 0xBA, 0x13, 0xF8, 0xB9,
+ 0x3B, 0x2F, 0xBC, 0xDC, 0x4E, 0x8F, 0x1D, 0xFA,
+ 0x47, 0xFE, 0x3B, 0xE1, 0x2A, 0xAA, 0x0E, 0x45,
+ 0x9B, 0x0E, 0x5A, 0x87, 0xF3, 0xA6, 0x9B, 0xB0
+ },
+ {
+ 0xFF, 0x92, 0x7A, 0x71, 0x78, 0x81, 0xF6, 0xFD,
+ 0x8E, 0xD8, 0xBF, 0x5D, 0x5E, 0x35, 0xBD, 0x80,
+ 0x16, 0x15, 0x73, 0xE5, 0x82, 0x94, 0x04, 0xC3,
+ 0x2D, 0x2A, 0x27, 0x6A, 0x01, 0xF4, 0xB9, 0x06
+ },
+ {
+ 0xC8, 0xCA, 0xF1, 0x36, 0xFF, 0x20, 0x9C, 0x82,
+ 0xE0, 0x24, 0x0C, 0x1E, 0x62, 0xA3, 0xBC, 0x7E,
+ 0x9C, 0xAC, 0x87, 0x3B, 0x01, 0x1C, 0xF7, 0xC5,
+ 0xE6, 0x7E, 0xC1, 0x87, 0xA5, 0xFB, 0xCD, 0x96
+ },
+ {
+ 0xD9, 0xAC, 0xC7, 0x3E, 0x3F, 0x42, 0x1E, 0x18,
+ 0x83, 0xB5, 0xED, 0x53, 0xD8, 0x2A, 0x9A, 0xEC,
+ 0x8F, 0x5D, 0xC9, 0x80, 0xC4, 0x2B, 0xCA, 0xEB,
+ 0x0E, 0x7D, 0x89, 0x76, 0xA3, 0x38, 0xEF, 0x51
+ },
+ {
+ 0x9F, 0x17, 0x3F, 0xCF, 0x08, 0xA5, 0x36, 0x21,
+ 0x93, 0xF3, 0x52, 0xC8, 0x25, 0x6A, 0xE5, 0x34,
+ 0xAE, 0x9C, 0xE7, 0xBF, 0xA4, 0xBC, 0x09, 0xFA,
+ 0xC9, 0x00, 0x98, 0xF9, 0x8A, 0x71, 0x62, 0x94
+ },
+ {
+ 0x0A, 0x72, 0x45, 0x79, 0xDC, 0x80, 0xBC, 0x0C,
+ 0x90, 0x04, 0xE5, 0x1B, 0xE7, 0xEF, 0xF3, 0xAF,
+ 0xA5, 0x30, 0x75, 0xAB, 0x4A, 0x32, 0x55, 0x77,
+ 0x33, 0x58, 0x6E, 0x82, 0x0F, 0xD3, 0x64, 0x23
+ },
+ {
+ 0x38, 0xF7, 0xC3, 0x40, 0xF4, 0xB1, 0x59, 0xB1,
+ 0xE5, 0x94, 0xF6, 0xEB, 0x83, 0x28, 0x49, 0x17,
+ 0xB7, 0xAA, 0x19, 0xC7, 0x4F, 0x57, 0x11, 0x7A,
+ 0x4E, 0x08, 0xCF, 0x7C, 0x4E, 0x32, 0xA2, 0x3C
+ },
+ {
+ 0x1C, 0x67, 0x4B, 0xE2, 0x57, 0xE9, 0xB3, 0x31,
+ 0x34, 0xD4, 0x16, 0x8F, 0x15, 0x2F, 0x8B, 0x63,
+ 0xDF, 0xD7, 0x80, 0xC9, 0x7D, 0xC4, 0xDC, 0x37,
+ 0xAC, 0x26, 0xCC, 0x0A, 0xEF, 0xB7, 0x9C, 0x1A
+ },
+ {
+ 0x2F, 0x0C, 0x59, 0x76, 0x16, 0xD5, 0x75, 0x17,
+ 0x14, 0xA5, 0xFB, 0x4E, 0xBF, 0x3C, 0x48, 0x1A,
+ 0x96, 0xC3, 0xAD, 0x14, 0x5E, 0xBD, 0xE0, 0x65,
+ 0x09, 0xF3, 0xA2, 0xE5, 0xF2, 0xC1, 0x3F, 0xC8
+ },
+ {
+ 0xFD, 0xDC, 0x69, 0xE0, 0xC9, 0x83, 0xCD, 0x82,
+ 0x83, 0xED, 0x81, 0x88, 0xBE, 0xC4, 0xE5, 0xF4,
+ 0x1D, 0xEA, 0x3D, 0x01, 0xB9, 0xE7, 0x4C, 0x4B,
+ 0xAF, 0x73, 0x41, 0xD8, 0xB4, 0xBF, 0x55, 0x3D
+ },
+ {
+ 0x24, 0xD0, 0x83, 0xCB, 0xA0, 0x38, 0xC8, 0x7E,
+ 0x9A, 0xCB, 0x86, 0x81, 0x82, 0x02, 0x08, 0xB7,
+ 0x5C, 0xB3, 0x29, 0x3A, 0x96, 0xC9, 0xEF, 0xA7,
+ 0x5D, 0x2C, 0x63, 0xF1, 0x6B, 0x85, 0xFE, 0x1E
+ },
+ {
+ 0x7F, 0x6A, 0x64, 0x9C, 0xCA, 0x89, 0xB2, 0x53,
+ 0xFF, 0xBD, 0x20, 0xC0, 0x16, 0x98, 0x01, 0x00,
+ 0xA8, 0x7C, 0x16, 0x81, 0x09, 0x62, 0x8F, 0xCC,
+ 0x66, 0x52, 0x5D, 0x8B, 0xAA, 0xFE, 0x50, 0x5F
+ },
+ {
+ 0x6D, 0xA3, 0x73, 0xB4, 0xC1, 0x87, 0x92, 0xB3,
+ 0x20, 0x9A, 0xDD, 0x15, 0xA5, 0x07, 0x4A, 0x1D,
+ 0x70, 0xC1, 0x0B, 0xB3, 0x94, 0x80, 0xCA, 0x3F,
+ 0xE5, 0xC4, 0x39, 0xD9, 0x5F, 0xC2, 0x86, 0xCA
+ },
+ {
+ 0x27, 0x0A, 0xFF, 0xA6, 0x42, 0x6F, 0x1A, 0x51,
+ 0x5C, 0x9B, 0x76, 0xDF, 0xC2, 0x7D, 0x18, 0x1F,
+ 0xC2, 0xFD, 0x57, 0xD0, 0x82, 0xA3, 0xBA, 0x2C,
+ 0x1E, 0xEF, 0x07, 0x15, 0x33, 0xA6, 0xDF, 0xB7
+ },
+ {
+ 0xC2, 0x2E, 0x15, 0xCF, 0xC5, 0xA3, 0xD1, 0x4B,
+ 0x64, 0xD1, 0x31, 0xF3, 0x5F, 0xB3, 0x5D, 0xD5,
+ 0xE6, 0xC5, 0x7D, 0xC4, 0xAF, 0xC5, 0x52, 0x27,
+ 0x75, 0x01, 0xEC, 0xA7, 0x64, 0xDA, 0x74, 0xBF
+ },
+ {
+ 0xAD, 0x68, 0x3E, 0x96, 0xB8, 0xAC, 0x65, 0x8C,
+ 0x4F, 0x3F, 0x10, 0xAD, 0x22, 0xD9, 0x9B, 0x07,
+ 0xCB, 0x5E, 0xF9, 0xE3, 0x1C, 0xBE, 0x11, 0xE7,
+ 0xF7, 0xDC, 0x29, 0xF2, 0xAE, 0xE5, 0x02, 0x4C
+ },
+ {
+ 0x78, 0xD3, 0xCE, 0xDA, 0x1C, 0xE0, 0x52, 0x93,
+ 0xF4, 0x30, 0xF6, 0x16, 0x7B, 0x33, 0xC9, 0x9F,
+ 0x0B, 0x1D, 0x6D, 0xAD, 0xE5, 0x21, 0x43, 0xC2,
+ 0x92, 0x55, 0x77, 0xC0, 0xBA, 0x82, 0x53, 0xEB
+ },
+ {
+ 0xE0, 0x06, 0x45, 0x63, 0x44, 0xF9, 0x0F, 0x50,
+ 0x1C, 0x25, 0x81, 0x3F, 0x9B, 0xE2, 0xA3, 0xF4,
+ 0x0B, 0x98, 0x74, 0xFA, 0x05, 0x63, 0x98, 0x1C,
+ 0xD4, 0x56, 0xEE, 0x8D, 0x44, 0x80, 0x7C, 0x93
+ },
+ {
+ 0x39, 0x08, 0xE8, 0xD5, 0x47, 0xC0, 0xAF, 0xB1,
+ 0x13, 0x49, 0x49, 0x46, 0x63, 0x04, 0xA1, 0x45,
+ 0x02, 0x7E, 0x6B, 0xB7, 0xA7, 0x4D, 0xD1, 0xC1,
+ 0x62, 0xCD, 0xF0, 0xBC, 0xF7, 0x72, 0x37, 0xE8
+ },
+ {
+ 0x1B, 0x6C, 0x87, 0xA3, 0x48, 0x38, 0xC7, 0xCD,
+ 0x5F, 0xD0, 0x89, 0x14, 0x22, 0x4E, 0x90, 0xC2,
+ 0x2A, 0xBF, 0x5A, 0x97, 0xB1, 0x06, 0x46, 0xD9,
+ 0x8C, 0x49, 0x16, 0xD3, 0xA8, 0x93, 0x9E, 0x62
+ },
+ {
+ 0xB0, 0xD3, 0x8F, 0x82, 0xF2, 0x48, 0x91, 0x69,
+ 0x52, 0xB3, 0x16, 0xB6, 0xD3, 0x6D, 0x9E, 0x02,
+ 0x2D, 0xF6, 0xEE, 0xCC, 0x26, 0xC7, 0x62, 0xA6,
+ 0x55, 0xCF, 0x5F, 0x0A, 0xE6, 0x49, 0xE2, 0xBD
+ },
+ {
+ 0x8D, 0x66, 0xFC, 0x9C, 0xED, 0xA5, 0xED, 0xDF,
+ 0xB1, 0xE0, 0x4D, 0x09, 0x6C, 0xA7, 0x0E, 0xF5,
+ 0x06, 0x50, 0xFB, 0x87, 0xCC, 0x6A, 0x9F, 0xFB,
+ 0xB3, 0xD2, 0x0B, 0xCE, 0x7B, 0x5A, 0x60, 0x74
+ },
+ {
+ 0x06, 0x43, 0x54, 0xE8, 0xE1, 0x1C, 0xF7, 0x13,
+ 0xB2, 0xC7, 0x2B, 0xA6, 0x7A, 0xC7, 0xD7, 0x6E,
+ 0x41, 0xBA, 0x61, 0xDB, 0x9C, 0x2D, 0xEA, 0x52,
+ 0x2E, 0x0B, 0xDA, 0x17, 0xCB, 0xA5, 0xE3, 0x92
+ },
+ {
+ 0xC8, 0xEF, 0x5F, 0x49, 0x8B, 0xD1, 0xBC, 0x70,
+ 0x7F, 0xBC, 0x7B, 0x5C, 0xBC, 0x2D, 0xFF, 0x04,
+ 0x93, 0x14, 0x4A, 0xC5, 0x27, 0x86, 0xDB, 0x3C,
+ 0x79, 0x3E, 0xF4, 0xAE, 0x8A, 0x83, 0x88, 0x47
+ },
+ {
+ 0x8A, 0x23, 0x97, 0xDF, 0x31, 0xE7, 0xF0, 0xCC,
+ 0x29, 0x0D, 0xA9, 0xA8, 0xBB, 0xE4, 0xF5, 0xF7,
+ 0xA3, 0xA1, 0x37, 0x50, 0x73, 0x0D, 0xB6, 0x2D,
+ 0xC2, 0x54, 0x0F, 0xDB, 0xD6, 0x18, 0x85, 0x89
+ },
+ {
+ 0xF1, 0x2D, 0x0B, 0x13, 0xC6, 0xAD, 0xFB, 0x3B,
+ 0xE5, 0x0A, 0x51, 0xEB, 0x6B, 0xAF, 0x65, 0xAB,
+ 0xFB, 0x17, 0x00, 0xBA, 0xA8, 0x7E, 0x52, 0x7D,
+ 0xBE, 0x3E, 0x67, 0x5A, 0x7A, 0x99, 0x46, 0x61
+ },
+ {
+ 0x10, 0x24, 0xC9, 0x40, 0xBE, 0x73, 0x41, 0x44,
+ 0x9B, 0x50, 0x10, 0x52, 0x2B, 0x50, 0x9F, 0x65,
+ 0xBB, 0xDC, 0x12, 0x87, 0xB4, 0x55, 0xC2, 0xBB,
+ 0x7F, 0x72, 0xB2, 0xC9, 0x2F, 0xD0, 0xD1, 0x89
+ },
+ {
+ 0x52, 0x60, 0x3B, 0x6C, 0xBF, 0xAD, 0x49, 0x66,
+ 0xCB, 0x04, 0x4C, 0xB2, 0x67, 0x56, 0x83, 0x85,
+ 0xCF, 0x35, 0xF2, 0x1E, 0x6C, 0x45, 0xCF, 0x30,
+ 0xAE, 0xD1, 0x98, 0x32, 0xCB, 0x51, 0xE9, 0xF5
+ },
+ {
+ 0xFF, 0xF2, 0x4D, 0x3C, 0xC7, 0x29, 0xD3, 0x95,
+ 0xDA, 0xF9, 0x78, 0xB0, 0x15, 0x73, 0x06, 0xCB,
+ 0x49, 0x57, 0x97, 0xE6, 0xC8, 0xDC, 0xA1, 0x73,
+ 0x1D, 0x2F, 0x6F, 0x81, 0xB8, 0x49, 0xBA, 0xAE
+ },
+ {
+ 0x41, 0xEE, 0xE9, 0x0D, 0x47, 0xEC, 0x27, 0x72,
+ 0xCD, 0x35, 0x2D, 0xFD, 0x67, 0xE0, 0x60, 0x5F,
+ 0xBD, 0xFC, 0x5F, 0xD6, 0xD8, 0x26, 0x45, 0x1E,
+ 0x3D, 0x06, 0x4D, 0x38, 0x28, 0xBD, 0x3B, 0xAE
+ },
+ {
+ 0x30, 0x0B, 0x6B, 0x36, 0xE5, 0x9F, 0x85, 0x1D,
+ 0xDD, 0xC2, 0x9B, 0xFA, 0x93, 0x08, 0x25, 0x20,
+ 0xCD, 0x77, 0xC5, 0x1E, 0x00, 0x7E, 0x00, 0xD2,
+ 0xD7, 0x8B, 0x26, 0xF4, 0xAF, 0x96, 0x15, 0x32
+ },
+ {
+ 0x9E, 0xF3, 0x03, 0x14, 0x83, 0x4E, 0x40, 0x1C,
+ 0x87, 0x1A, 0x20, 0x04, 0xE3, 0x8D, 0x5C, 0xE3,
+ 0x2E, 0xD2, 0x8E, 0x11, 0x37, 0xF1, 0x97, 0x0F,
+ 0x4F, 0x43, 0x78, 0xC7, 0x37, 0x06, 0x76, 0x3D
+ },
+ {
+ 0x3F, 0xBD, 0xCD, 0xE7, 0xB6, 0x43, 0x04, 0x02,
+ 0x5E, 0xC0, 0x58, 0x26, 0x09, 0x03, 0x1E, 0xC2,
+ 0x66, 0xD5, 0x0F, 0x56, 0x83, 0x5A, 0xE0, 0xCB,
+ 0x72, 0xD8, 0xCD, 0xB4, 0xCF, 0xAF, 0x44, 0x19
+ },
+ {
+ 0xE9, 0x0E, 0xAD, 0x3B, 0x98, 0x2B, 0x43, 0x5B,
+ 0x66, 0x36, 0x6A, 0x49, 0x6C, 0x3F, 0x8A, 0xE6,
+ 0x5B, 0x17, 0x61, 0x37, 0x00, 0xF5, 0x47, 0x67,
+ 0x3F, 0x62, 0x15, 0x35, 0x41, 0x91, 0x28, 0x64
+ },
+ {
+ 0xAB, 0xE3, 0x54, 0x7B, 0x33, 0x6D, 0x6E, 0x24,
+ 0x0D, 0x7F, 0xE6, 0x82, 0xD7, 0x4B, 0x9C, 0xC7,
+ 0xE8, 0xD7, 0xF9, 0xB5, 0x66, 0x48, 0x58, 0xB9,
+ 0x4D, 0xF5, 0x9E, 0x9F, 0xC3, 0x30, 0xD9, 0xE5
+ },
+ {
+ 0xB2, 0x99, 0x64, 0x20, 0x95, 0xB8, 0x28, 0x6C,
+ 0x52, 0x1C, 0xDB, 0x21, 0xED, 0x0F, 0xE0, 0x57,
+ 0x27, 0x80, 0x21, 0xBB, 0x40, 0x38, 0xEB, 0x5A,
+ 0x3D, 0x79, 0x54, 0x2F, 0x5D, 0x75, 0x1F, 0x54
+ },
+ {
+ 0xE4, 0xD7, 0x58, 0x35, 0x9F, 0x08, 0x67, 0x93,
+ 0xA8, 0x37, 0x54, 0xAC, 0xA6, 0x96, 0x8C, 0x3E,
+ 0x9F, 0xD9, 0x4B, 0x40, 0x49, 0x7F, 0x2E, 0xC2,
+ 0x24, 0xA2, 0x91, 0x60, 0x63, 0xA2, 0x14, 0xA3
+ },
+ {
+ 0x59, 0xA3, 0x04, 0xFC, 0x03, 0xAB, 0x75, 0xD5,
+ 0x57, 0xDB, 0x04, 0xEB, 0xD0, 0x2D, 0xD4, 0xC6,
+ 0xB8, 0x10, 0xA1, 0x38, 0xBB, 0xFE, 0xEA, 0x5D,
+ 0xFC, 0xEE, 0xAA, 0x2B, 0x75, 0xB0, 0x64, 0x91
+ },
+ {
+ 0x39, 0x95, 0x10, 0x22, 0x15, 0xF5, 0xFE, 0x92,
+ 0x10, 0xEB, 0x30, 0xD9, 0x52, 0xD8, 0xC9, 0x19,
+ 0x58, 0x9E, 0x71, 0x45, 0xFC, 0xD4, 0x95, 0xEA,
+ 0x78, 0xD0, 0x2B, 0x9C, 0x14, 0x8F, 0xAF, 0x09
+ },
+ {
+ 0x47, 0x2E, 0xE7, 0x11, 0x56, 0x35, 0x06, 0xA5,
+ 0xF0, 0x08, 0x3F, 0xE8, 0x2B, 0x08, 0xB9, 0x92,
+ 0x3C, 0xF6, 0xC8, 0x40, 0x4D, 0x0C, 0xBA, 0xCB,
+ 0xF8, 0x48, 0x64, 0xF6, 0x48, 0x54, 0x2A, 0xC0
+ },
+ {
+ 0x68, 0xFD, 0xB8, 0x2A, 0xDA, 0xE7, 0x9B, 0xEF,
+ 0x59, 0x0A, 0xBA, 0x62, 0xD7, 0xAC, 0x55, 0x32,
+ 0x12, 0x06, 0x1C, 0x36, 0xE3, 0x6F, 0x12, 0xC0,
+ 0xEF, 0xA2, 0x9A, 0x17, 0x62, 0xDE, 0x3B, 0x6A
+ },
+ {
+ 0x75, 0x85, 0xC0, 0x77, 0x33, 0x83, 0xF1, 0x74,
+ 0xFD, 0x66, 0x65, 0x49, 0xA8, 0x35, 0x2B, 0x30,
+ 0x5B, 0xF6, 0x85, 0x5B, 0xC9, 0x8B, 0xEA, 0x28,
+ 0xC3, 0x91, 0xB3, 0xC0, 0x34, 0xDA, 0x5A, 0x5A
+ },
+ {
+ 0xAC, 0xC5, 0x75, 0xFE, 0x2C, 0xD7, 0xBA, 0x2A,
+ 0x31, 0xFC, 0x7D, 0x67, 0x0A, 0x92, 0x34, 0xAF,
+ 0x68, 0x50, 0x33, 0x86, 0xE9, 0x59, 0x07, 0x3D,
+ 0x16, 0xA8, 0x1B, 0x33, 0xB9, 0x22, 0xB5, 0x0E
+ },
+ {
+ 0x9E, 0xC7, 0xD2, 0x99, 0x59, 0x43, 0xD3, 0x9D,
+ 0x6B, 0x97, 0x14, 0x93, 0xB8, 0x97, 0xA0, 0xEE,
+ 0x2D, 0x33, 0x92, 0xA7, 0x2D, 0xB8, 0x75, 0xC2,
+ 0x40, 0x5D, 0x35, 0x71, 0x78, 0xFB, 0x69, 0x11
+ },
+ {
+ 0x2D, 0x7E, 0xF1, 0x94, 0x01, 0x42, 0x5A, 0xBA,
+ 0x45, 0x0E, 0x82, 0xD3, 0x6D, 0x0F, 0xE7, 0xB2,
+ 0x08, 0x5E, 0xA0, 0xAF, 0x60, 0x45, 0xA5, 0x99,
+ 0x4C, 0xF4, 0x31, 0xEA, 0x59, 0x93, 0x9C, 0xC9
+ },
+ {
+ 0xF3, 0x2F, 0xD8, 0x55, 0xF0, 0x11, 0xC7, 0x18,
+ 0x02, 0x7F, 0x2E, 0xBE, 0x37, 0x7D, 0x69, 0x39,
+ 0xF1, 0x23, 0x70, 0xCA, 0xFF, 0x15, 0x1C, 0x1E,
+ 0x5A, 0xCE, 0x43, 0x8D, 0x70, 0x3C, 0x6D, 0x9F
+ },
+ {
+ 0xB2, 0xBD, 0x83, 0xD2, 0x31, 0x0D, 0x3D, 0x7B,
+ 0x1D, 0x2D, 0x5A, 0xAF, 0x43, 0x59, 0xFA, 0xE2,
+ 0x86, 0x12, 0x96, 0x27, 0x19, 0xFD, 0xDE, 0x4D,
+ 0xDA, 0xF6, 0x9E, 0x78, 0x20, 0xF3, 0x3F, 0x61
+ },
+ {
+ 0x1A, 0x7A, 0x9D, 0x0F, 0x44, 0xDD, 0xFA, 0x7F,
+ 0xC2, 0xF4, 0x77, 0x0C, 0xAD, 0x74, 0x22, 0xFA,
+ 0x6C, 0x4E, 0x37, 0xE6, 0xCB, 0x03, 0x6D, 0x89,
+ 0x9E, 0x10, 0x27, 0x50, 0xE5, 0x94, 0xFF, 0xCD
+ },
+ {
+ 0xDC, 0x69, 0xF6, 0x14, 0x1C, 0x8E, 0x10, 0x3F,
+ 0xF6, 0x1F, 0x62, 0x98, 0xA2, 0xC4, 0x4F, 0x52,
+ 0xD1, 0x47, 0x36, 0x6D, 0xDB, 0xD9, 0xC7, 0x9C,
+ 0xC3, 0x08, 0xFE, 0x84, 0x33, 0x6A, 0x95, 0x64
+ },
+ {
+ 0xE3, 0x4E, 0xD4, 0x17, 0xB0, 0x79, 0x1D, 0x9A,
+ 0x77, 0xEE, 0x1E, 0x50, 0xCC, 0x2C, 0x20, 0x7E,
+ 0x54, 0x0C, 0x77, 0x14, 0x04, 0x21, 0xC4, 0x6C,
+ 0xE0, 0x86, 0x28, 0x78, 0xAA, 0xEB, 0x27, 0x09
+ },
+ {
+ 0x21, 0x74, 0x42, 0x5C, 0x8C, 0xCA, 0xE3, 0x98,
+ 0xC4, 0xFF, 0x06, 0xF8, 0x48, 0x99, 0x1C, 0x5E,
+ 0x9B, 0xC0, 0xF3, 0x46, 0x11, 0x11, 0x70, 0x6F,
+ 0xB9, 0x5D, 0x0B, 0xE1, 0xC6, 0x8E, 0x47, 0x60
+ },
+ {
+ 0x18, 0x94, 0x58, 0x2A, 0x8A, 0x25, 0xFE, 0x8F,
+ 0x84, 0x7A, 0x4A, 0x03, 0x25, 0x74, 0xB7, 0x7B,
+ 0x8B, 0x36, 0xBF, 0x19, 0x99, 0x75, 0x26, 0xBB,
+ 0x4B, 0xC8, 0x5F, 0x38, 0x24, 0x53, 0x7F, 0xEB
+ },
+ {
+ 0x17, 0xED, 0x18, 0x8A, 0xE3, 0xC9, 0x53, 0xD6,
+ 0x55, 0x44, 0x59, 0x83, 0xB8, 0x32, 0x5B, 0xAF,
+ 0xFF, 0x32, 0xE2, 0x22, 0xB2, 0xDF, 0xEB, 0x16,
+ 0xE8, 0x61, 0x7A, 0xBF, 0x86, 0xEE, 0x7C, 0xC5
+ },
+ {
+ 0xF1, 0x48, 0x9A, 0xD1, 0xC3, 0x54, 0xCD, 0xE9,
+ 0x78, 0x92, 0x37, 0xEA, 0x6D, 0xBF, 0x67, 0xFC,
+ 0x1E, 0x44, 0xD1, 0xAC, 0xC8, 0xDC, 0x66, 0xAD,
+ 0x83, 0x87, 0x27, 0xF4, 0x7D, 0x9A, 0x91, 0xFE
+ },
+ {
+ 0x36, 0x7F, 0x22, 0x16, 0x5B, 0x8B, 0x66, 0xE9,
+ 0x7F, 0x66, 0x70, 0xF3, 0x4E, 0xBA, 0x27, 0x49,
+ 0xD2, 0x64, 0x3B, 0x21, 0xBE, 0xAD, 0xAD, 0xFE,
+ 0xFE, 0xA2, 0x57, 0x4B, 0x7C, 0x9B, 0x21, 0x96
+ },
+ {
+ 0x3D, 0x8D, 0xFE, 0xA1, 0x7E, 0xEA, 0x5D, 0x64,
+ 0x5A, 0xC1, 0xD4, 0x1A, 0x5B, 0x59, 0x22, 0x6C,
+ 0x48, 0x6C, 0x36, 0xBD, 0x77, 0xED, 0x44, 0xBB,
+ 0x34, 0x91, 0x70, 0xD0, 0x80, 0xE3, 0x0E, 0x68
+ },
+ {
+ 0x41, 0x15, 0xF8, 0x9E, 0x0B, 0x3B, 0x5C, 0x8F,
+ 0x61, 0x22, 0xC0, 0x25, 0x00, 0x17, 0x1D, 0xCF,
+ 0xFB, 0xCE, 0xA4, 0x66, 0x2A, 0x8C, 0x5F, 0x8C,
+ 0x1C, 0x01, 0xA9, 0xCA, 0x7B, 0x10, 0x27, 0xBB
+ },
+ {
+ 0xED, 0x6E, 0x91, 0x0B, 0x96, 0x02, 0x55, 0xD7,
+ 0xD7, 0x92, 0xEB, 0xE6, 0x7F, 0x26, 0x0A, 0x14,
+ 0x3C, 0xFA, 0xC1, 0x05, 0x1D, 0xFC, 0x05, 0x90,
+ 0x25, 0xEE, 0x0C, 0x1B, 0xFC, 0xBC, 0x56, 0x81
+ },
+ {
+ 0x55, 0x8F, 0xA8, 0xAF, 0xA1, 0x2B, 0xBE, 0xE5,
+ 0x4A, 0xF7, 0x8F, 0x6B, 0x74, 0x45, 0xF9, 0x96,
+ 0x65, 0xD4, 0xE3, 0x56, 0xBC, 0x07, 0xD3, 0xEF,
+ 0xFD, 0x8F, 0xD6, 0x5A, 0xB9, 0xC7, 0x47, 0x16
+ },
+ {
+ 0x5B, 0x60, 0x12, 0x76, 0x20, 0x53, 0xB8, 0x73,
+ 0x4A, 0xF0, 0xE5, 0x55, 0xE6, 0xA2, 0xBB, 0x4F,
+ 0xD4, 0x84, 0x0A, 0xF3, 0xB0, 0x4F, 0xCF, 0x63,
+ 0x50, 0xA2, 0xB8, 0xA5, 0x1B, 0x67, 0x96, 0xAD
+ },
+ {
+ 0xAB, 0x7A, 0xCC, 0xA5, 0xD7, 0x77, 0x10, 0xBA,
+ 0xD3, 0x7B, 0xA0, 0xFF, 0x4C, 0xEA, 0xE2, 0x7E,
+ 0x84, 0x71, 0x79, 0xF7, 0xFD, 0x7A, 0xEC, 0x88,
+ 0x69, 0xC6, 0x49, 0xB3, 0x3F, 0x8D, 0x25, 0x77
+ },
+ {
+ 0xFF, 0x77, 0x30, 0xB4, 0x74, 0xEC, 0x21, 0x45,
+ 0xA9, 0x2D, 0xD1, 0xCF, 0xFE, 0x45, 0xC3, 0x42,
+ 0xC6, 0xFD, 0x6B, 0xAC, 0x58, 0x0F, 0xF9, 0x5A,
+ 0x75, 0xED, 0xA3, 0xBF, 0x90, 0xEB, 0x4F, 0x01
+ },
+ {
+ 0xD1, 0x0F, 0x06, 0x1D, 0x5B, 0x9C, 0xB4, 0x4E,
+ 0xE0, 0x78, 0xA9, 0x6B, 0x33, 0x18, 0x57, 0x9E,
+ 0x5E, 0xF5, 0x0A, 0xEF, 0x3E, 0xD9, 0x6E, 0x4F,
+ 0x62, 0x14, 0x9B, 0x2E, 0x9F, 0x7C, 0x66, 0x0C
+ },
+ {
+ 0x67, 0xD2, 0x2B, 0x8E, 0xDF, 0x20, 0x01, 0xD8,
+ 0x64, 0x22, 0x13, 0x6A, 0xC6, 0x51, 0x6C, 0xF3,
+ 0x9F, 0x7F, 0xC6, 0xA7, 0x02, 0x98, 0x92, 0xFD,
+ 0x75, 0xC9, 0x87, 0x90, 0x96, 0x4A, 0x72, 0x0B
+ },
+ {
+ 0x7A, 0x5E, 0xC5, 0xBA, 0x76, 0x25, 0x9B, 0x07,
+ 0xB4, 0xDA, 0x03, 0xF3, 0x81, 0xFE, 0x7B, 0xEA,
+ 0x48, 0x65, 0xC8, 0x6C, 0x42, 0x4A, 0xBA, 0xA0,
+ 0xDD, 0x1E, 0xCF, 0x74, 0xF8, 0x7D, 0x2A, 0xC0
+ },
+ {
+ 0xE0, 0xFF, 0x60, 0xD6, 0x90, 0x29, 0xE6, 0xBD,
+ 0x1C, 0x15, 0x95, 0x3E, 0x91, 0x50, 0x9C, 0x0C,
+ 0x59, 0xED, 0x5D, 0xA5, 0x00, 0x01, 0x99, 0xF2,
+ 0x16, 0xD2, 0x9F, 0x96, 0x07, 0x9C, 0x2F, 0xEF
+ },
+ {
+ 0xFC, 0x13, 0xEA, 0xD8, 0x41, 0x01, 0x8F, 0x59,
+ 0x90, 0x3B, 0x40, 0xF2, 0x02, 0x0C, 0x66, 0x38,
+ 0xA6, 0x6A, 0x54, 0xC3, 0xA3, 0x38, 0x41, 0x4D,
+ 0x97, 0xA5, 0xC3, 0x94, 0xF3, 0x26, 0x6F, 0x33
+ },
+ {
+ 0x0C, 0x2F, 0x62, 0xB8, 0x98, 0xFB, 0x2F, 0x63,
+ 0x61, 0x7E, 0x78, 0x73, 0x45, 0x26, 0x3C, 0xB9,
+ 0xCF, 0x60, 0x65, 0x4B, 0x55, 0x3B, 0x20, 0x3E,
+ 0xE4, 0x9D, 0xCB, 0xB8, 0xF2, 0xA6, 0xAF, 0xAC
+ },
+ {
+ 0xD7, 0xD6, 0xCB, 0x55, 0x2A, 0xEB, 0x36, 0xEB,
+ 0x96, 0xB1, 0xD5, 0xE0, 0x52, 0xF8, 0xD9, 0x21,
+ 0xC3, 0x24, 0x5A, 0x97, 0x0D, 0x0B, 0xC8, 0x41,
+ 0x0C, 0xD6, 0x5E, 0xA1, 0x04, 0xC8, 0xE7, 0x79
+ },
+ {
+ 0xB7, 0x14, 0x1F, 0x30, 0x5E, 0xFD, 0xFE, 0xE5,
+ 0x56, 0xBD, 0x13, 0xE0, 0x40, 0x0D, 0x1E, 0x8C,
+ 0xFD, 0x65, 0x48, 0xBF, 0x81, 0xEE, 0x5D, 0x15,
+ 0x32, 0x7E, 0x49, 0x95, 0xCA, 0x8A, 0xD6, 0xFD
+ },
+ {
+ 0xB6, 0xB6, 0x38, 0xD2, 0x2B, 0x7A, 0x12, 0x82,
+ 0x53, 0x74, 0xF7, 0x03, 0x48, 0xD7, 0x44, 0x8D,
+ 0x4E, 0x7D, 0x90, 0x8C, 0xF6, 0xE7, 0xBB, 0xEF,
+ 0x8C, 0x93, 0xEF, 0x67, 0x9B, 0x2A, 0x54, 0x78
+ },
+ {
+ 0x0D, 0xF4, 0x58, 0x56, 0x41, 0xFA, 0x09, 0xF6,
+ 0xCB, 0xA4, 0xCC, 0x16, 0x5A, 0x10, 0xAD, 0xDE,
+ 0x34, 0xF8, 0x0D, 0x42, 0x5A, 0x70, 0xDB, 0x67,
+ 0xE2, 0xFD, 0x23, 0x7B, 0x62, 0x7F, 0x43, 0x8A
+ },
+ {
+ 0x10, 0x6B, 0x2B, 0x35, 0x4D, 0x95, 0xAC, 0xEC,
+ 0xD0, 0xD9, 0x58, 0x8F, 0xBC, 0x23, 0x1F, 0x8B,
+ 0xEA, 0x2E, 0x94, 0xEA, 0x66, 0x2D, 0xDD, 0x3F,
+ 0x13, 0x9E, 0x1B, 0x67, 0x87, 0x46, 0x1E, 0xED
+ },
+ {
+ 0xAE, 0x5C, 0x69, 0xEE, 0xFE, 0x90, 0x89, 0xB2,
+ 0x9C, 0x6C, 0x1A, 0x23, 0x70, 0xD2, 0x05, 0x52,
+ 0xBA, 0x40, 0xC3, 0xD5, 0xE3, 0x71, 0x3C, 0x12,
+ 0xDE, 0xFC, 0xAE, 0x99, 0x7F, 0x43, 0x3E, 0xCD
+ },
+ {
+ 0x1A, 0xAE, 0xF5, 0x5D, 0x4F, 0xA8, 0x92, 0xB6,
+ 0x35, 0xFB, 0x2A, 0x7A, 0x25, 0xF9, 0xA8, 0xE0,
+ 0x3B, 0x9F, 0xFB, 0x08, 0x2A, 0xE9, 0xC0, 0x7C,
+ 0x20, 0x42, 0xA0, 0x49, 0xC6, 0x51, 0x5E, 0x45
+ },
+ {
+ 0x29, 0x7D, 0xAA, 0xC4, 0xD5, 0x4D, 0xC4, 0x1C,
+ 0x83, 0xE3, 0x23, 0x94, 0x59, 0x9F, 0x17, 0x1C,
+ 0xDA, 0xA9, 0xDD, 0xB7, 0x17, 0x26, 0xDA, 0x4E,
+ 0xCE, 0x3C, 0xCF, 0x95, 0xC1, 0x1F, 0x56, 0xDF
+ },
+ {
+ 0x2C, 0x45, 0xAC, 0xF4, 0x91, 0xEC, 0x2F, 0x4B,
+ 0x7E, 0x30, 0x9E, 0x7E, 0xDD, 0x81, 0x5B, 0xE5,
+ 0xA5, 0x4C, 0x44, 0x58, 0xD1, 0xA5, 0x7C, 0x4F,
+ 0x9B, 0x76, 0x3B, 0x0C, 0x67, 0x18, 0xD4, 0x3E
+ },
+ {
+ 0x2F, 0x92, 0xF9, 0x01, 0x70, 0xD3, 0xAE, 0x95,
+ 0xAB, 0xFA, 0xC3, 0xA6, 0x98, 0x9A, 0x2A, 0x60,
+ 0xCB, 0x28, 0xB8, 0x58, 0x78, 0x2B, 0xE7, 0xEA,
+ 0x17, 0x9B, 0x48, 0xA7, 0x27, 0x6D, 0xD8, 0x60
+ },
+ {
+ 0xB4, 0x01, 0xE8, 0x4B, 0x15, 0xAC, 0xC4, 0x70,
+ 0x93, 0x6D, 0x6E, 0x37, 0xF7, 0x88, 0x83, 0x33,
+ 0x09, 0x27, 0x31, 0x13, 0x3B, 0x25, 0x1B, 0xEA,
+ 0x22, 0x16, 0x58, 0xCA, 0x19, 0xA7, 0x56, 0x69
+ },
+ {
+ 0xF8, 0xB3, 0x40, 0xD2, 0xB9, 0xB3, 0x3D, 0x43,
+ 0xA0, 0xA6, 0x6F, 0x34, 0x97, 0x82, 0x0A, 0xFA,
+ 0xAE, 0xE4, 0x34, 0xC4, 0xE3, 0xC0, 0xC1, 0x7E,
+ 0x89, 0x8B, 0x83, 0x01, 0xC5, 0x7A, 0x26, 0xBD
+ },
+ {
+ 0x56, 0x6D, 0xA2, 0x83, 0x99, 0x03, 0x89, 0x13,
+ 0x8A, 0xA6, 0xF2, 0xAA, 0xA3, 0xB9, 0xE4, 0x0C,
+ 0xBF, 0x90, 0x84, 0x0E, 0xC7, 0x62, 0xBD, 0x96,
+ 0xB7, 0xE3, 0x3A, 0x31, 0x13, 0xB1, 0x01, 0x08
+ },
+ {
+ 0x34, 0x06, 0x72, 0xB7, 0x04, 0x67, 0x60, 0x42,
+ 0xC9, 0xBF, 0x3F, 0x33, 0x7B, 0xA7, 0x9F, 0x11,
+ 0x33, 0x6A, 0xEB, 0xB5, 0xEC, 0x5D, 0x31, 0xDF,
+ 0x54, 0xEB, 0x6A, 0xD3, 0xB0, 0x43, 0x04, 0x42
+ },
+ {
+ 0x50, 0x50, 0xB7, 0x3B, 0x93, 0x16, 0xEE, 0xA2,
+ 0xF1, 0x49, 0xBF, 0xFD, 0x22, 0xAE, 0xE3, 0x84,
+ 0xDC, 0x54, 0x03, 0xB1, 0x8E, 0x16, 0xFA, 0x88,
+ 0x82, 0x5E, 0x18, 0x16, 0x09, 0x49, 0x6F, 0xD2
+ },
+ {
+ 0x13, 0x65, 0xCC, 0x6F, 0xB9, 0x26, 0x0E, 0x86,
+ 0x88, 0x9B, 0x3A, 0xFB, 0xD1, 0xC8, 0xBC, 0x12,
+ 0x92, 0x31, 0x97, 0x71, 0x5D, 0xB2, 0x66, 0xCC,
+ 0x7A, 0x01, 0xCA, 0x57, 0x15, 0x9F, 0x75, 0x96
+ },
+ {
+ 0x29, 0x46, 0x6F, 0x51, 0xC0, 0x11, 0xFD, 0x10,
+ 0x18, 0x14, 0x94, 0xA9, 0x37, 0x9B, 0x61, 0x59,
+ 0xB8, 0x08, 0xAE, 0x0F, 0xCB, 0x01, 0x61, 0xF8,
+ 0xF0, 0x79, 0x09, 0xFF, 0x04, 0x1B, 0x19, 0x65
+ },
+ {
+ 0x65, 0x91, 0xA3, 0xC3, 0xC7, 0x67, 0xB3, 0x8D,
+ 0x80, 0x5E, 0xD3, 0xF7, 0xEB, 0x67, 0x63, 0xE8,
+ 0xB3, 0xD2, 0xD6, 0x42, 0xE7, 0x30, 0x77, 0x45,
+ 0xCD, 0x34, 0x18, 0xEF, 0xF6, 0x9A, 0x19, 0xED
+ },
+ {
+ 0x1D, 0x84, 0xB0, 0x4B, 0x13, 0x38, 0xB0, 0xD2,
+ 0xE3, 0xC9, 0x8F, 0x7A, 0xEA, 0x3E, 0x98, 0xEF,
+ 0xFC, 0x53, 0x0A, 0x50, 0x44, 0xB9, 0x3B, 0x96,
+ 0xC6, 0x7E, 0xE3, 0x79, 0xD6, 0x2E, 0x81, 0x5F
+ },
+ {
+ 0x6F, 0xA2, 0x95, 0x27, 0x25, 0x32, 0xE9, 0x83,
+ 0xE1, 0x66, 0xB1, 0x2E, 0x49, 0x99, 0xC0, 0x52,
+ 0xF8, 0x9D, 0x9F, 0x30, 0xAE, 0x14, 0x81, 0xF3,
+ 0xD6, 0x0E, 0xAE, 0x85, 0xF8, 0xEE, 0x17, 0x8A
+ },
+ {
+ 0x4E, 0xD8, 0xCA, 0xA9, 0x8E, 0xC3, 0x9F, 0x6A,
+ 0x62, 0x9F, 0x9A, 0x65, 0x4A, 0x44, 0x7E, 0x7E,
+ 0x3E, 0x4F, 0xAE, 0xEC, 0xF3, 0x4D, 0xCF, 0x65,
+ 0x8D, 0x2D, 0x4B, 0x98, 0xB7, 0xA2, 0xEC, 0x1A
+ },
+ {
+ 0xCF, 0xAB, 0x82, 0x99, 0xA0, 0xDA, 0x0C, 0x2A,
+ 0x7E, 0x8F, 0xF5, 0x4D, 0x0A, 0x67, 0x6D, 0x14,
+ 0x1A, 0xB2, 0x6B, 0xC0, 0x01, 0x2E, 0x5F, 0x66,
+ 0x8E, 0x85, 0xD8, 0x14, 0xBC, 0x98, 0x88, 0xB0
+ },
+ {
+ 0xA6, 0x26, 0x54, 0x3C, 0x27, 0x1F, 0xCC, 0xC3,
+ 0xE4, 0x45, 0x0B, 0x48, 0xD6, 0x6B, 0xC9, 0xCB,
+ 0xDE, 0xB2, 0x5E, 0x5D, 0x07, 0x7A, 0x62, 0x13,
+ 0xCD, 0x90, 0xCB, 0xBD, 0x0F, 0xD2, 0x20, 0x76
+ },
+ {
+ 0x05, 0xCF, 0x3A, 0x90, 0x04, 0x91, 0x16, 0xDC,
+ 0x60, 0xEF, 0xC3, 0x15, 0x36, 0xAA, 0xA3, 0xD1,
+ 0x67, 0x76, 0x29, 0x94, 0x89, 0x28, 0x76, 0xDC,
+ 0xB7, 0xEF, 0x3F, 0xBE, 0xCD, 0x74, 0x49, 0xC0
+ },
+ {
+ 0xCC, 0xD6, 0x1C, 0x92, 0x6C, 0xC1, 0xE5, 0xE9,
+ 0x12, 0x8C, 0x02, 0x1C, 0x0C, 0x6E, 0x92, 0xAE,
+ 0xFC, 0x4F, 0xFB, 0xDE, 0x39, 0x4D, 0xD6, 0xF3,
+ 0xB7, 0xD8, 0x7A, 0x8C, 0xED, 0x89, 0x60, 0x14
+ },
+ {
+ 0x3F, 0xFA, 0x4F, 0x6D, 0xAF, 0xA5, 0x7F, 0x1C,
+ 0x50, 0xF1, 0xAF, 0xA4, 0xF8, 0x12, 0x92, 0xAE,
+ 0x71, 0xA0, 0x6F, 0xE4, 0xF8, 0xFF, 0x46, 0xC5,
+ 0x1D, 0x32, 0xFF, 0x26, 0x13, 0x48, 0x9F, 0x2B
+ },
+ {
+ 0x19, 0xD3, 0x92, 0x1C, 0xFC, 0x0F, 0x1A, 0x2B,
+ 0xB8, 0x13, 0xB3, 0xDF, 0xA9, 0x6D, 0xF9, 0x0E,
+ 0x2C, 0x6B, 0x87, 0xD7, 0x8E, 0x92, 0x38, 0xF8,
+ 0x5B, 0xBC, 0x77, 0xAE, 0x9A, 0x73, 0xF9, 0x8F
+ },
+ {
+ 0xF5, 0xC9, 0x16, 0xFF, 0x2B, 0xAD, 0xDE, 0x3E,
+ 0x29, 0xA5, 0xF9, 0x40, 0x23, 0x3E, 0xA3, 0x40,
+ 0x07, 0xD8, 0xF1, 0x82, 0xA4, 0x8A, 0x80, 0x8B,
+ 0x46, 0xBB, 0x80, 0x58, 0x00, 0x3F, 0x19, 0x03
+ },
+ {
+ 0x6B, 0xA0, 0x7A, 0x1A, 0xF7, 0x58, 0xE6, 0x82,
+ 0xD3, 0xE0, 0x9A, 0xDD, 0x2D, 0x3D, 0xCD, 0xF3,
+ 0x5D, 0x95, 0x53, 0xF6, 0x79, 0x98, 0x54, 0xA2,
+ 0x7E, 0x53, 0x60, 0x63, 0xC5, 0x7F, 0x81, 0xA5
+ },
+ {
+ 0xB7, 0x83, 0x78, 0xFB, 0x44, 0x6C, 0x54, 0x4B,
+ 0x04, 0xD4, 0xA1, 0x52, 0xAC, 0x49, 0x57, 0x31,
+ 0x61, 0xB3, 0xDD, 0xEB, 0xF6, 0x93, 0x86, 0x77,
+ 0x0A, 0x55, 0xA7, 0xD4, 0x7B, 0x88, 0x0E, 0x5D
+ },
+ {
+ 0xB5, 0x19, 0x53, 0x8F, 0xE1, 0x62, 0x6F, 0x0C,
+ 0x59, 0x59, 0x45, 0xAD, 0xA5, 0x8A, 0x34, 0x4F,
+ 0xAA, 0xC0, 0x06, 0x17, 0x61, 0xCC, 0x9D, 0x4A,
+ 0x84, 0x14, 0x19, 0xBD, 0x32, 0xEE, 0xC0, 0xD9
+ },
+ {
+ 0x96, 0xE4, 0x88, 0xB0, 0x27, 0x89, 0x64, 0x13,
+ 0xF4, 0x03, 0x4B, 0x03, 0x54, 0xF4, 0x84, 0x84,
+ 0xF6, 0xCF, 0xC1, 0x0F, 0x8E, 0xC5, 0x7B, 0x02,
+ 0x6F, 0xD2, 0x1A, 0x3B, 0x88, 0x36, 0x1A, 0x74
+ },
+ {
+ 0x77, 0x0C, 0x8A, 0x5F, 0x47, 0xBF, 0xD7, 0x69,
+ 0xCE, 0xD3, 0x5A, 0x71, 0xAF, 0xC3, 0xCA, 0x1F,
+ 0xF4, 0xC1, 0xF1, 0xE7, 0xCC, 0x3D, 0x23, 0x56,
+ 0xDE, 0x94, 0x50, 0x04, 0x36, 0x8D, 0x81, 0x45
+ },
+ {
+ 0x6D, 0xF9, 0xD8, 0xD0, 0xD3, 0xA8, 0xD9, 0x8C,
+ 0x83, 0x50, 0xD7, 0x16, 0x2B, 0xD1, 0x55, 0x79,
+ 0xD5, 0x70, 0x7A, 0xDD, 0x76, 0x11, 0xA0, 0x0E,
+ 0xEB, 0x6C, 0xA5, 0x74, 0x3E, 0xD7, 0x8C, 0xB7
+ },
+ {
+ 0x4F, 0x0F, 0xE8, 0xFC, 0x17, 0x90, 0x15, 0x91,
+ 0xCF, 0x34, 0x87, 0x30, 0xE1, 0x87, 0xDE, 0x52,
+ 0x3D, 0x6D, 0x75, 0x68, 0xC1, 0xFB, 0xD8, 0x24,
+ 0x85, 0x91, 0x39, 0x85, 0xEB, 0x67, 0x97, 0x1C
+ },
+ {
+ 0x0E, 0xF3, 0xBB, 0x35, 0xCF, 0x37, 0x2B, 0xD9,
+ 0x4E, 0x3F, 0x80, 0xEE, 0xCE, 0xBD, 0x50, 0xEF,
+ 0x0D, 0x03, 0x08, 0xE0, 0x1E, 0x0E, 0xD6, 0xDE,
+ 0x0F, 0x5A, 0x8A, 0x8C, 0x81, 0x8A, 0x00, 0x74
+ },
+ {
+ 0xC0, 0x38, 0xD3, 0xE8, 0x09, 0xA5, 0xE3, 0xA5,
+ 0x8D, 0xB2, 0xF9, 0x1C, 0x15, 0xAE, 0x12, 0x43,
+ 0x95, 0x78, 0xF7, 0x54, 0x85, 0xCD, 0x84, 0xF5,
+ 0x56, 0xC6, 0x97, 0x1E, 0x8E, 0x25, 0x06, 0x20
+ },
+ {
+ 0xCE, 0x39, 0x9A, 0x0F, 0x08, 0x27, 0x7D, 0x8D,
+ 0x48, 0x16, 0x09, 0x50, 0x60, 0xEB, 0xBF, 0x33,
+ 0xDA, 0x01, 0x6F, 0xB4, 0x3A, 0x6C, 0x35, 0x6D,
+ 0x5A, 0x3F, 0xE4, 0xBB, 0x57, 0x4C, 0x5E, 0x7B
+ },
+ {
+ 0x86, 0x9F, 0x7E, 0x31, 0x6B, 0x19, 0x4F, 0x95,
+ 0x31, 0xBC, 0xAF, 0x33, 0xF7, 0x91, 0x3F, 0x1B,
+ 0x9C, 0xFC, 0x6B, 0xB5, 0xDC, 0xF8, 0x6B, 0x69,
+ 0x2B, 0xF8, 0xCA, 0xB2, 0x9B, 0x8A, 0xA9, 0x6F
+ },
+ {
+ 0x32, 0x7D, 0xFA, 0x46, 0x44, 0x59, 0xD9, 0xE4,
+ 0x8F, 0x5E, 0x55, 0xC7, 0xF5, 0xBA, 0xA6, 0x8F,
+ 0xC4, 0xA2, 0x5A, 0xD6, 0x22, 0xBC, 0x7B, 0xF0,
+ 0x1A, 0xCA, 0x82, 0xFD, 0x5E, 0x72, 0x31, 0x4C
+ },
+ {
+ 0xE0, 0x0D, 0xAD, 0x31, 0x51, 0xB9, 0x08, 0x5E,
+ 0xAE, 0x78, 0x69, 0x84, 0xFE, 0x20, 0x73, 0x52,
+ 0x32, 0xB7, 0xFF, 0x7F, 0x1B, 0x1D, 0xB7, 0x96,
+ 0x1F, 0xD0, 0xD0, 0xE0, 0xF6, 0x05, 0xDB, 0x9A
+ },
+ {
+ 0x07, 0x6F, 0x64, 0x45, 0x20, 0xD0, 0xB4, 0x73,
+ 0x2D, 0x6C, 0x53, 0x1C, 0x93, 0x49, 0x08, 0x90,
+ 0x26, 0x93, 0x6D, 0x99, 0x82, 0x04, 0x61, 0xDA,
+ 0x87, 0x74, 0x9A, 0x52, 0x0F, 0xBE, 0x90, 0xCE
+ },
+ {
+ 0xB4, 0x41, 0x4C, 0xA1, 0x37, 0x3B, 0xE4, 0x6F,
+ 0x15, 0xCE, 0xA6, 0xB1, 0x25, 0x5A, 0x7D, 0x18,
+ 0x86, 0xC6, 0xFD, 0xB0, 0x8E, 0xD5, 0xAF, 0x96,
+ 0x57, 0xD5, 0xAA, 0xC3, 0x17, 0xDE, 0x3A, 0x29
+ },
+ {
+ 0x8D, 0x1A, 0xB0, 0x26, 0x3D, 0xAB, 0x7B, 0x86,
+ 0xEC, 0xEE, 0x21, 0x91, 0x62, 0xD9, 0x99, 0xA0,
+ 0x12, 0x45, 0x57, 0x22, 0x69, 0xDE, 0x31, 0x10,
+ 0x0E, 0x5D, 0x88, 0xFC, 0x1B, 0x1E, 0xAA, 0x69
+ },
+ {
+ 0xB4, 0x8D, 0x1C, 0x1F, 0x83, 0x92, 0x4A, 0x02,
+ 0xA2, 0x3E, 0x5E, 0x0F, 0x97, 0x1E, 0x16, 0xE8,
+ 0x7F, 0xC4, 0x88, 0x48, 0x53, 0x83, 0x34, 0x85,
+ 0x19, 0x1A, 0x2B, 0x60, 0x72, 0x2F, 0xE2, 0x69
+ },
+ {
+ 0xF2, 0xED, 0xD5, 0xF7, 0x50, 0xA2, 0x0A, 0x54,
+ 0x1D, 0x3F, 0x6B, 0xD5, 0xDF, 0x80, 0x83, 0x8F,
+ 0x11, 0x82, 0x5B, 0x25, 0xA9, 0x8F, 0x3D, 0xA5,
+ 0xE1, 0x52, 0x3B, 0xFF, 0x81, 0x3B, 0xB5, 0x60
+ },
+ {
+ 0x07, 0x16, 0x60, 0x04, 0xEF, 0x88, 0xE1, 0x61,
+ 0x4E, 0xBD, 0xC8, 0x87, 0xDF, 0xC7, 0xDA, 0x42,
+ 0xEB, 0xCD, 0xA0, 0x2D, 0x92, 0xC1, 0x2F, 0x18,
+ 0xD1, 0x18, 0x6C, 0xE3, 0xC9, 0x87, 0x10, 0xE4
+ },
+ {
+ 0x69, 0xF8, 0x3A, 0xA1, 0x01, 0xD6, 0x9B, 0x8F,
+ 0x12, 0x20, 0xDC, 0x1C, 0x53, 0x8D, 0x89, 0x34,
+ 0x45, 0x84, 0x20, 0xBE, 0x33, 0x5F, 0xEB, 0x46,
+ 0xFF, 0xC4, 0x7A, 0x2C, 0x8E, 0x2E, 0x6A, 0x8A
+ },
+ {
+ 0xE1, 0x46, 0x9F, 0x16, 0xC6, 0xFC, 0xA1, 0x51,
+ 0x19, 0xA2, 0x72, 0xE5, 0x85, 0xC7, 0xF5, 0x04,
+ 0x21, 0xBC, 0x8A, 0x41, 0x4C, 0x86, 0x4F, 0xC7,
+ 0x6B, 0x01, 0x04, 0x8D, 0x4C, 0x6F, 0xC5, 0xD2
+ },
+ {
+ 0x67, 0x63, 0x34, 0x3A, 0x1C, 0x80, 0xF1, 0x92,
+ 0x83, 0xA8, 0x0A, 0xF8, 0x54, 0xE7, 0xE9, 0x06,
+ 0x5C, 0x2A, 0x83, 0x49, 0xEF, 0x11, 0xF1, 0x1B,
+ 0xFB, 0x76, 0xBA, 0x9F, 0x97, 0x04, 0x85, 0x39
+ },
+ {
+ 0x1A, 0xE3, 0xA0, 0xB8, 0xB2, 0xC7, 0x88, 0x5B,
+ 0xA3, 0x18, 0xAD, 0x6F, 0xD4, 0x49, 0xFC, 0x4D,
+ 0x7F, 0x84, 0x04, 0xB5, 0x9C, 0xF3, 0x27, 0x5F,
+ 0xCD, 0xEA, 0x13, 0x56, 0x34, 0x25, 0x77, 0x2D
+ },
+ {
+ 0x3A, 0x71, 0x18, 0x4C, 0xBE, 0x8E, 0xB5, 0x8E,
+ 0x68, 0x12, 0xBA, 0x7A, 0x7A, 0x1D, 0xCA, 0x0C,
+ 0xA2, 0x8E, 0xEC, 0x63, 0x78, 0x2F, 0x2E, 0x6E,
+ 0x3C, 0x0B, 0x87, 0x07, 0x3F, 0x53, 0x3F, 0xFD
+ },
+ {
+ 0x18, 0x4C, 0xCF, 0x2A, 0x52, 0xF3, 0x88, 0xC9,
+ 0xF8, 0x97, 0xA8, 0x57, 0xFE, 0x7C, 0xCE, 0xC2,
+ 0x95, 0x99, 0x11, 0xA8, 0xD1, 0xE0, 0x9E, 0xE8,
+ 0x80, 0x4D, 0x8D, 0x5D, 0x50, 0x8D, 0xD9, 0x18
+ },
+ {
+ 0xA6, 0x6D, 0x40, 0x9A, 0xF7, 0xAF, 0xD7, 0x5B,
+ 0xE8, 0x31, 0xDD, 0x49, 0x8C, 0x19, 0x6E, 0xF1,
+ 0x2C, 0x73, 0xC3, 0x11, 0x29, 0xEC, 0x02, 0xD5,
+ 0xF1, 0x2A, 0xB0, 0x2A, 0x2C, 0x63, 0xA2, 0x5E
+ },
+ {
+ 0x58, 0xB3, 0x74, 0x97, 0xFC, 0xF0, 0xBE, 0x0E,
+ 0x0C, 0xF1, 0x73, 0x40, 0x45, 0xC2, 0x95, 0xB2,
+ 0x86, 0xC7, 0x6A, 0x7C, 0x04, 0x8E, 0x87, 0xC5,
+ 0x40, 0x28, 0xED, 0x36, 0x91, 0x5B, 0x5D, 0xF3
+ },
+ {
+ 0x2C, 0x73, 0x33, 0x54, 0x0A, 0x83, 0x2D, 0x64,
+ 0x45, 0x6E, 0x43, 0x05, 0x8C, 0x50, 0xD9, 0x3C,
+ 0x93, 0x2A, 0xD9, 0xB1, 0x8B, 0x3F, 0xC3, 0xA0,
+ 0x59, 0x92, 0x07, 0xCD, 0xA3, 0xB3, 0xC7, 0xA6
+ },
+ {
+ 0x3D, 0xC0, 0x62, 0xFF, 0xB5, 0x7D, 0x83, 0x5F,
+ 0xE3, 0xAA, 0x40, 0x94, 0x66, 0x82, 0x2F, 0x91,
+ 0x86, 0x91, 0x84, 0x23, 0x94, 0x75, 0x05, 0x16,
+ 0x5F, 0xDC, 0xDF, 0xB7, 0x30, 0x6F, 0x72, 0x59
+ },
+ {
+ 0x89, 0x20, 0x48, 0x44, 0xAC, 0xB9, 0x2F, 0x35,
+ 0x3B, 0xFC, 0x89, 0xA3, 0xCE, 0x8A, 0x98, 0x17,
+ 0x21, 0x9C, 0x10, 0x13, 0x85, 0xC5, 0x93, 0xCF,
+ 0x60, 0xE0, 0xBE, 0xFA, 0x96, 0x38, 0xE1, 0x4E
+ },
+ {
+ 0x78, 0x2B, 0xA9, 0x02, 0xE9, 0x12, 0x32, 0x94,
+ 0x1C, 0x78, 0xC4, 0x9C, 0xD9, 0x77, 0x1A, 0x5D,
+ 0x99, 0x92, 0xF9, 0xB0, 0x7D, 0x9C, 0x0A, 0x2D,
+ 0xF8, 0x2D, 0x38, 0x5D, 0x15, 0xC4, 0x2B, 0xB3
+ },
+ {
+ 0x0D, 0xC3, 0xFF, 0x7D, 0xF0, 0xDF, 0xC0, 0x23,
+ 0x76, 0x3D, 0x76, 0x34, 0xE1, 0x8D, 0xA2, 0x73,
+ 0x93, 0xFC, 0x9F, 0xDB, 0x1C, 0x15, 0x46, 0x46,
+ 0x86, 0x10, 0x75, 0xF0, 0xA8, 0x7D, 0x0E, 0x90
+ },
+ {
+ 0xB9, 0x5C, 0x65, 0xFB, 0x6F, 0x25, 0x4E, 0xDB,
+ 0xDE, 0x8C, 0x03, 0x7D, 0x5C, 0x8B, 0x20, 0x39,
+ 0x34, 0x0F, 0x4A, 0xC2, 0xB0, 0x23, 0xA6, 0xAA,
+ 0x28, 0xA8, 0xFC, 0xD2, 0xD2, 0x68, 0x9C, 0xF4
+ },
+ {
+ 0x87, 0xE8, 0xF5, 0x15, 0x72, 0xA5, 0xD6, 0xA2,
+ 0x39, 0xF8, 0x5B, 0xC5, 0x3E, 0x11, 0x74, 0xE1,
+ 0x5B, 0xE1, 0x2F, 0xCD, 0xF1, 0x51, 0xA0, 0xB9,
+ 0xA2, 0xB4, 0x36, 0x40, 0xCA, 0xF7, 0x4C, 0x1D
+ },
+ {
+ 0x2A, 0x6F, 0x3E, 0x46, 0x2C, 0x40, 0x5C, 0x35,
+ 0x4F, 0xE8, 0x0F, 0xCC, 0xCE, 0xD1, 0xC9, 0xBE,
+ 0x44, 0x32, 0x5D, 0x29, 0xE0, 0x7D, 0xA3, 0x09,
+ 0x60, 0xB6, 0x25, 0xA7, 0x6E, 0xA4, 0x2F, 0x83
+ },
+ {
+ 0x20, 0xB4, 0x6C, 0x8F, 0xBF, 0xCA, 0x97, 0x45,
+ 0x32, 0x62, 0x46, 0x0F, 0x84, 0x98, 0xA7, 0xE2,
+ 0xAF, 0x15, 0xAC, 0x79, 0xB5, 0x9D, 0xDF, 0xB0,
+ 0x27, 0xBB, 0x52, 0xF2, 0xD6, 0x8E, 0x8F, 0x51
+ },
+ {
+ 0x31, 0xB0, 0x76, 0x3C, 0xB9, 0xBA, 0x92, 0x40,
+ 0x3D, 0xCA, 0x1A, 0xBD, 0xD7, 0x34, 0x2D, 0x7D,
+ 0xE9, 0x4C, 0x58, 0x1E, 0x76, 0xF7, 0xC9, 0xA6,
+ 0x1E, 0x51, 0x59, 0x28, 0xE1, 0x0B, 0x4E, 0x77
+ },
+ {
+ 0xE1, 0x91, 0xE1, 0x17, 0x06, 0x3C, 0xFA, 0xC9,
+ 0x64, 0x2C, 0xD9, 0x3C, 0xB4, 0x2B, 0x39, 0xED,
+ 0xDD, 0x9E, 0x4A, 0xB6, 0x5F, 0x1D, 0x03, 0x97,
+ 0xE3, 0xE1, 0x7D, 0xD0, 0x4C, 0xAB, 0x11, 0x80
+ },
+ {
+ 0x22, 0x5A, 0x20, 0x21, 0x07, 0xA7, 0x47, 0x03,
+ 0xE0, 0x41, 0xC6, 0xCC, 0xA4, 0xEA, 0xCF, 0x4F,
+ 0x21, 0xEE, 0xA6, 0xF2, 0x2A, 0x14, 0x6D, 0x8D,
+ 0xA2, 0xAB, 0x8C, 0xF6, 0x19, 0x72, 0x29, 0xA5
+ },
+ {
+ 0xEF, 0xC4, 0x83, 0x6B, 0xE4, 0xAC, 0x3E, 0x97,
+ 0x91, 0xD2, 0xEC, 0x62, 0x22, 0x6E, 0x7D, 0xF6,
+ 0x41, 0x18, 0xF4, 0x56, 0x5C, 0x19, 0xE6, 0xC9,
+ 0xE8, 0x40, 0x63, 0xF5, 0x66, 0x1C, 0x7B, 0x2F
+ },
+ {
+ 0x3A, 0x76, 0xB0, 0x15, 0x2C, 0x0E, 0x1D, 0x1F,
+ 0xD7, 0xAC, 0x9D, 0x91, 0xA2, 0x8A, 0x18, 0xE1,
+ 0xA4, 0xC0, 0x60, 0x80, 0xF2, 0xB7, 0xEC, 0xEF,
+ 0xB6, 0xEF, 0xFE, 0x28, 0xB8, 0xCF, 0xC7, 0x65
+ },
+ {
+ 0x0D, 0x46, 0xAD, 0x03, 0x90, 0x70, 0x11, 0x58,
+ 0x28, 0xF9, 0x4E, 0xB6, 0xB7, 0x29, 0x63, 0xE6,
+ 0x0A, 0x7D, 0x2D, 0xB7, 0xCA, 0x89, 0x91, 0xD2,
+ 0x25, 0xC3, 0x87, 0x7B, 0x14, 0x9B, 0x0A, 0x8A
+ },
+ {
+ 0xE4, 0x4C, 0xFC, 0x42, 0x11, 0x8F, 0x09, 0x6B,
+ 0xFC, 0x51, 0x52, 0x1C, 0xB1, 0x8D, 0x5D, 0x65,
+ 0x25, 0x58, 0x6B, 0x98, 0x9F, 0x4E, 0xE2, 0xB8,
+ 0x28, 0xC5, 0x19, 0x9F, 0xEA, 0xB9, 0x4B, 0x82
+ },
+ {
+ 0x6D, 0x4B, 0xD2, 0xE0, 0x73, 0xEC, 0x49, 0x66,
+ 0x84, 0x7F, 0x5C, 0xBE, 0x88, 0xDD, 0xFA, 0xBA,
+ 0x2B, 0xE4, 0xCA, 0xF2, 0xF3, 0x33, 0x55, 0x2B,
+ 0x85, 0x53, 0xDA, 0x53, 0x34, 0x87, 0xC2, 0x5B
+ },
+ {
+ 0xBB, 0xC4, 0x6D, 0xB4, 0x37, 0xD1, 0x07, 0xC9,
+ 0x67, 0xCA, 0x6D, 0x91, 0x45, 0x5B, 0xBD, 0xFE,
+ 0x05, 0x21, 0x18, 0xAB, 0xD1, 0xD0, 0x69, 0xF0,
+ 0x43, 0x59, 0x48, 0x7E, 0x13, 0xAE, 0xA0, 0xE1
+ },
+ {
+ 0xB9, 0x74, 0xC1, 0x4D, 0xB7, 0xD3, 0x17, 0x4D,
+ 0xD0, 0x60, 0x84, 0xBB, 0x30, 0x31, 0x08, 0xB2,
+ 0xF0, 0xDA, 0xF5, 0x0E, 0xCC, 0xC3, 0x29, 0x35,
+ 0x43, 0x79, 0x5C, 0x96, 0x36, 0xC6, 0x24, 0x82
+ },
+ {
+ 0x0E, 0xEE, 0x23, 0x5B, 0x06, 0x93, 0x6A, 0xED,
+ 0x71, 0x73, 0xC8, 0xC1, 0x9A, 0xA7, 0xC2, 0x17,
+ 0xB9, 0xEE, 0xDA, 0xEB, 0x1A, 0x88, 0xF3, 0x05,
+ 0x52, 0xE9, 0x22, 0x51, 0x45, 0x14, 0x9E, 0x82
+ },
+ {
+ 0x36, 0xD0, 0x89, 0xE0, 0x25, 0xB5, 0x68, 0x69,
+ 0x37, 0x74, 0x28, 0x25, 0xE6, 0xEE, 0x3D, 0x83,
+ 0xE7, 0xD7, 0xA5, 0x0C, 0x82, 0x3C, 0x82, 0x88,
+ 0x34, 0x60, 0xF3, 0x85, 0x14, 0x7D, 0xC1, 0x7B
+ },
+ {
+ 0x77, 0xEE, 0x4F, 0xFC, 0x9F, 0x5D, 0xD6, 0x05,
+ 0x47, 0x0D, 0xC0, 0xE7, 0x4D, 0x6B, 0x17, 0xC5,
+ 0x13, 0x0D, 0x8B, 0x73, 0x91, 0x3F, 0x36, 0xD5,
+ 0xF8, 0x78, 0x7E, 0x61, 0x9A, 0x94, 0x7C, 0xA0
+ },
+ {
+ 0x0F, 0xE6, 0xC2, 0xAB, 0x75, 0x42, 0x33, 0x36,
+ 0x0D, 0x68, 0xB9, 0xAC, 0x80, 0xCD, 0x61, 0x18,
+ 0x4B, 0xFA, 0xA7, 0xD3, 0x56, 0x29, 0x41, 0x80,
+ 0x02, 0x5F, 0xE4, 0x06, 0x39, 0xC7, 0x6C, 0x36
+ },
+ {
+ 0x99, 0x60, 0x88, 0xC7, 0x94, 0x56, 0xEC, 0xDD,
+ 0xA1, 0xFB, 0xC0, 0x2E, 0xE1, 0xBA, 0x42, 0xD9,
+ 0x1D, 0x85, 0x8C, 0x31, 0x0A, 0x5A, 0x8B, 0x46,
+ 0x74, 0xFE, 0x6A, 0x7C, 0x14, 0x44, 0x14, 0xA1
+ },
+ {
+ 0x9E, 0x33, 0x8A, 0xED, 0x0B, 0xC7, 0x1C, 0x0C,
+ 0x97, 0xF1, 0x98, 0x55, 0xBF, 0x49, 0x17, 0x4F,
+ 0x70, 0xA9, 0xD7, 0x70, 0x14, 0x87, 0x36, 0x63,
+ 0x21, 0x34, 0x27, 0x50, 0x2B, 0xD8, 0x5D, 0x9F
+ },
+ {
+ 0x4A, 0x84, 0x3D, 0x26, 0xAD, 0xEC, 0x52, 0x0E,
+ 0x4B, 0x5D, 0xBF, 0x01, 0x45, 0xCC, 0x4F, 0x50,
+ 0x24, 0xFA, 0xFC, 0xDC, 0x20, 0x25, 0x82, 0x4A,
+ 0x8C, 0x64, 0x65, 0x06, 0x17, 0x68, 0x7E, 0xE7
+ },
+ {
+ 0xC9, 0x16, 0x78, 0xC4, 0xA6, 0x4E, 0x2F, 0xA4,
+ 0xB7, 0x4D, 0xE6, 0x1A, 0xD0, 0xC0, 0x6F, 0xF0,
+ 0x6B, 0x5D, 0x67, 0x2F, 0xA7, 0xC6, 0x87, 0x7A,
+ 0x40, 0x14, 0xCE, 0x9E, 0x91, 0xBE, 0x38, 0xD7
+ },
+ {
+ 0xFF, 0x77, 0x77, 0x40, 0x5D, 0x32, 0x7A, 0xDB,
+ 0x58, 0x30, 0x1C, 0x71, 0x1E, 0xCD, 0xC2, 0xBC,
+ 0xE1, 0xBF, 0xA8, 0x29, 0xFF, 0xC9, 0xB1, 0x17,
+ 0xF2, 0x1A, 0x2B, 0x19, 0x8D, 0x0D, 0x68, 0x84
+ },
+ {
+ 0x0A, 0x8D, 0xDA, 0xF1, 0x72, 0x8C, 0x5C, 0xD9,
+ 0x3A, 0x25, 0x5D, 0x56, 0x23, 0xC3, 0xDA, 0xDA,
+ 0x2D, 0x3D, 0x05, 0x71, 0xBF, 0x14, 0x38, 0xAD,
+ 0xC8, 0xC9, 0x64, 0xA9, 0xAA, 0xD1, 0x18, 0xCB
+ },
+ {
+ 0xC1, 0x33, 0xAB, 0xBD, 0x0D, 0x2D, 0x80, 0x8A,
+ 0x67, 0xB6, 0x74, 0x5B, 0x4B, 0x36, 0x50, 0xB4,
+ 0xA6, 0x4D, 0xC2, 0x76, 0xCF, 0x98, 0xE3, 0x03,
+ 0x57, 0xB6, 0xAB, 0xD5, 0xC1, 0xD2, 0x2A, 0x9B
+ },
+ {
+ 0xC5, 0x9E, 0xE5, 0xC1, 0x96, 0xBA, 0x3C, 0xFE,
+ 0xF9, 0x40, 0x87, 0x79, 0x82, 0x07, 0xBD, 0xCE,
+ 0xF1, 0x39, 0xCE, 0x2C, 0xF7, 0x8D, 0xCE, 0xD6,
+ 0x19, 0x8F, 0x0F, 0xA3, 0xA4, 0x09, 0x13, 0x1C
+ },
+ {
+ 0xC7, 0xFD, 0xAD, 0xE5, 0x9C, 0x46, 0x99, 0x38,
+ 0x5E, 0xBA, 0x59, 0xE7, 0x56, 0xC2, 0xB1, 0x71,
+ 0xB0, 0x23, 0xDE, 0xAE, 0x08, 0x2E, 0x5A, 0x6E,
+ 0x3B, 0xFB, 0xDC, 0x10, 0x73, 0xA3, 0x20, 0x03
+ },
+ {
+ 0x97, 0x53, 0x27, 0xC5, 0xF4, 0xDE, 0xC6, 0x41,
+ 0x4B, 0x6E, 0x00, 0xCB, 0x04, 0x23, 0x37, 0xB8,
+ 0xD2, 0xA6, 0x56, 0x46, 0x37, 0xA7, 0x44, 0x2A,
+ 0xEC, 0x7B, 0xE8, 0xF8, 0xC8, 0x9A, 0x2F, 0x1C
+ },
+ {
+ 0xA2, 0xF7, 0x24, 0x6D, 0xF4, 0xA2, 0x4E, 0xFB,
+ 0xAC, 0xD3, 0xFD, 0x60, 0x68, 0x3A, 0xBC, 0x86,
+ 0x8B, 0xEF, 0x25, 0x32, 0x70, 0x52, 0xCF, 0x2F,
+ 0x1D, 0x93, 0xEC, 0xE4, 0xFF, 0xCD, 0x73, 0xC6
+ },
+ {
+ 0x49, 0x7F, 0xB2, 0xAC, 0xAC, 0xF1, 0x23, 0xF3,
+ 0x59, 0x5E, 0x40, 0xFC, 0x51, 0xA7, 0xBD, 0x24,
+ 0x45, 0x8B, 0xBC, 0xBA, 0x4A, 0x29, 0x40, 0xA5,
+ 0xCB, 0x03, 0xD6, 0x08, 0xFB, 0xDF, 0x28, 0x25
+ },
+ {
+ 0x0E, 0x97, 0xD2, 0x27, 0x93, 0xCE, 0x6F, 0x28,
+ 0x3D, 0x5C, 0x74, 0x0D, 0x30, 0x8A, 0x27, 0xAD,
+ 0x7C, 0x3B, 0x0D, 0x9A, 0xFC, 0xD3, 0xD9, 0xE9,
+ 0xB9, 0xCA, 0xC5, 0x6B, 0x10, 0x29, 0x0C, 0x8F
+ },
+ {
+ 0x66, 0x30, 0xB3, 0x56, 0x18, 0xE7, 0x00, 0xD9,
+ 0x10, 0x68, 0x38, 0x93, 0x79, 0x5E, 0xF7, 0x0B,
+ 0xF0, 0x7E, 0xB1, 0x56, 0xF5, 0x5F, 0xFE, 0x3B,
+ 0x69, 0xAD, 0x88, 0xA4, 0xB8, 0xB0, 0xBF, 0xA1
+ },
+ {
+ 0x02, 0xF7, 0x42, 0xC6, 0xE9, 0x52, 0x78, 0x12,
+ 0x1A, 0x05, 0xE4, 0x42, 0x05, 0x44, 0x4F, 0xC5,
+ 0xEA, 0x6A, 0xF5, 0xE7, 0x41, 0xC5, 0x35, 0xBC,
+ 0x2C, 0xBC, 0x3B, 0x23, 0x5A, 0x2E, 0xA2, 0xB0
+ },
+ {
+ 0x46, 0x22, 0xF3, 0x6E, 0xB8, 0x98, 0x38, 0x3F,
+ 0x60, 0xD5, 0xBE, 0xD8, 0x09, 0xAC, 0x5C, 0x47,
+ 0x45, 0xC5, 0xD6, 0xAB, 0x84, 0xBC, 0xAD, 0xF7,
+ 0x9C, 0xF2, 0xA9, 0x6D, 0x4E, 0xC8, 0x88, 0x18
+ },
+ {
+ 0xCC, 0xD1, 0x1F, 0xAA, 0xA0, 0x58, 0x1E, 0xC3,
+ 0x2C, 0x3A, 0x40, 0x3F, 0x92, 0xEF, 0x43, 0xD5,
+ 0xDC, 0xF1, 0x95, 0xC1, 0xA1, 0x01, 0xDB, 0xFD,
+ 0x49, 0x5D, 0xBB, 0x4D, 0xCE, 0x80, 0x69, 0xE0
+ },
+ {
+ 0x06, 0x02, 0x4D, 0x6B, 0x07, 0xE0, 0x00, 0xBC,
+ 0xE6, 0x13, 0x47, 0x0A, 0x28, 0x80, 0x51, 0x9B,
+ 0x8B, 0xE4, 0xA3, 0x6B, 0xF3, 0x3C, 0x99, 0xC9,
+ 0x17, 0x89, 0x3E, 0xC7, 0x5D, 0xD9, 0x0F, 0xE3
+ },
+ {
+ 0xD9, 0x3A, 0xF9, 0x47, 0xB1, 0x46, 0x3A, 0x81,
+ 0x7D, 0xB4, 0x41, 0xA4, 0x74, 0x58, 0x8D, 0x6F,
+ 0x99, 0x6D, 0x24, 0x39, 0x83, 0xE8, 0x3C, 0x7E,
+ 0xEE, 0x90, 0xE1, 0xEF, 0xA4, 0x40, 0xD9, 0xBA
+ },
+ {
+ 0x94, 0x89, 0x89, 0x45, 0xA7, 0xDB, 0x25, 0x9E,
+ 0x1B, 0x2E, 0x7C, 0xBE, 0xA4, 0x8A, 0xA0, 0xC6,
+ 0xD6, 0x57, 0x0D, 0x18, 0x17, 0x9F, 0x06, 0x18,
+ 0x47, 0x1C, 0x88, 0xF3, 0xEC, 0x3B, 0x0F, 0xC3
+ },
+ {
+ 0x4C, 0x2D, 0x93, 0x52, 0x56, 0x39, 0x2A, 0xA2,
+ 0xBE, 0x6E, 0x10, 0x78, 0xC0, 0x59, 0x38, 0x15,
+ 0xAB, 0xEF, 0x46, 0x9D, 0xE9, 0x69, 0xB5, 0x7B,
+ 0x88, 0x1B, 0x93, 0xAF, 0x55, 0x84, 0x65, 0xFA
+ },
+ {
+ 0xAA, 0xC7, 0xBE, 0x16, 0xE5, 0x2F, 0x79, 0x0E,
+ 0x4F, 0xF7, 0x0B, 0x24, 0x01, 0x5C, 0xB1, 0x1B,
+ 0x40, 0x61, 0x6E, 0x94, 0xDB, 0x13, 0x88, 0x2B,
+ 0x41, 0xD3, 0xDD, 0x8C, 0x8C, 0x19, 0x52, 0xB7
+ },
+ {
+ 0x04, 0x34, 0xB4, 0x7C, 0x0E, 0xE7, 0xE6, 0xF5,
+ 0x39, 0x06, 0x79, 0x9A, 0x43, 0x20, 0x9D, 0x3F,
+ 0xC3, 0x7D, 0x3F, 0xD1, 0xF7, 0x45, 0x55, 0xDE,
+ 0x67, 0xAB, 0xAC, 0xB9, 0x51, 0xB0, 0x06, 0xF4
+ },
+ {
+ 0x04, 0x42, 0xFB, 0xDD, 0x5B, 0x58, 0x49, 0x6E,
+ 0xC7, 0x81, 0x59, 0xCC, 0xAA, 0x88, 0x7C, 0x88,
+ 0xA8, 0x61, 0xFC, 0xCA, 0x70, 0xE7, 0xAB, 0xC9,
+ 0x76, 0xF2, 0x4C, 0x11, 0x58, 0x8B, 0xE6, 0xEE
+ },
+ {
+ 0xA7, 0x3E, 0x68, 0xBB, 0x18, 0xB0, 0x07, 0x64,
+ 0x8E, 0x76, 0xB5, 0x52, 0x8D, 0x1E, 0x50, 0xE7,
+ 0xFA, 0x65, 0x4D, 0xA3, 0x97, 0x0E, 0xC3, 0x49,
+ 0xBF, 0x59, 0x1A, 0x30, 0xD9, 0x32, 0xC8, 0xF6
+ },
+ {
+ 0x84, 0x9C, 0xF8, 0x73, 0x16, 0x2B, 0xA7, 0x2C,
+ 0x4B, 0x80, 0x08, 0xE6, 0x8F, 0x93, 0x2F, 0xB3,
+ 0xA0, 0x15, 0xA7, 0x4F, 0xCF, 0x95, 0x71, 0x98,
+ 0xD5, 0x6A, 0x0D, 0xC4, 0x62, 0x5A, 0x74, 0xF5
+ },
+ {
+ 0xA6, 0xDE, 0xC6, 0xFC, 0x89, 0x49, 0x34, 0x9C,
+ 0x4E, 0x9A, 0x9C, 0x62, 0x36, 0x87, 0xFB, 0xA4,
+ 0xC9, 0xB2, 0x75, 0xBD, 0xB2, 0x30, 0x50, 0x9B,
+ 0x72, 0xE3, 0xD6, 0x71, 0x19, 0x14, 0xE2, 0xD8
+ },
+ {
+ 0x58, 0xAF, 0xC2, 0xB2, 0x4A, 0x19, 0xFD, 0xBF,
+ 0x76, 0xA0, 0x9B, 0x70, 0xB1, 0xE3, 0xB7, 0x7F,
+ 0xCB, 0xD4, 0x06, 0x50, 0x01, 0xD9, 0x63, 0x66,
+ 0x40, 0xEB, 0x5A, 0x26, 0x28, 0xF4, 0x42, 0xCC
+ },
+ {
+ 0x47, 0x3A, 0x43, 0xAA, 0x1D, 0x6A, 0x02, 0x87,
+ 0x67, 0x43, 0x2A, 0x83, 0x0A, 0xD1, 0x22, 0x1E,
+ 0x02, 0x9C, 0x58, 0x9A, 0xF9, 0xFD, 0x4D, 0x68,
+ 0xD5, 0x6C, 0x4F, 0xB8, 0x20, 0x25, 0x93, 0x52
+ },
+ {
+ 0xA0, 0xAE, 0xB4, 0xA5, 0xAD, 0x89, 0x9A, 0xF2,
+ 0xE2, 0x91, 0xB2, 0xE7, 0x9D, 0xBB, 0x6B, 0x0B,
+ 0xF5, 0x6B, 0x58, 0x44, 0x67, 0x6B, 0x95, 0x5D,
+ 0x94, 0x5B, 0x6C, 0x4A, 0xE1, 0xC0, 0x1E, 0xED
+ },
+ {
+ 0xCF, 0xC3, 0x02, 0x9A, 0x9E, 0xEB, 0x15, 0x22,
+ 0x22, 0xD9, 0x66, 0x53, 0x49, 0x2E, 0x46, 0xCA,
+ 0x64, 0xCA, 0x4F, 0x0D, 0x64, 0x68, 0x30, 0x28,
+ 0xD3, 0xAE, 0xE5, 0xA4, 0x9C, 0xB4, 0x71, 0x63
+ },
+ {
+ 0x74, 0x67, 0xCF, 0x77, 0x61, 0xCD, 0x9F, 0x55,
+ 0x61, 0x8D, 0x30, 0xC9, 0xD8, 0xC5, 0xB4, 0x1E,
+ 0x47, 0x01, 0x51, 0x0C, 0x7D, 0x16, 0xAB, 0x4E,
+ 0x5D, 0x89, 0xA5, 0xD7, 0x71, 0x46, 0xB0, 0x92
+ },
+ {
+ 0xC0, 0x16, 0xD8, 0x42, 0x4E, 0x53, 0x1E, 0xFC,
+ 0x57, 0x37, 0xC0, 0x3F, 0xC9, 0x0A, 0x5E, 0xFC,
+ 0x9F, 0x90, 0x22, 0xE4, 0xD5, 0xBA, 0x3B, 0x06,
+ 0x95, 0xF7, 0xAE, 0x53, 0x82, 0x60, 0xC2, 0xEE
+ },
+ {
+ 0x5D, 0x38, 0x11, 0x89, 0xE6, 0x00, 0x0F, 0xC1,
+ 0x17, 0xC7, 0x1F, 0x59, 0xF7, 0x86, 0xFB, 0x4B,
+ 0x79, 0xFD, 0xD4, 0xEC, 0x5D, 0x4C, 0xD3, 0x0A,
+ 0xAC, 0x21, 0x57, 0xF7, 0x5D, 0xEA, 0xD7, 0x78
+ },
+ {
+ 0x7C, 0x9C, 0xDD, 0x15, 0xC4, 0xC9, 0xAB, 0xCA,
+ 0xCB, 0xFE, 0x6F, 0x66, 0x4A, 0x7F, 0x5F, 0x8B,
+ 0x2E, 0x25, 0x91, 0x83, 0x29, 0x1A, 0xE5, 0xCC,
+ 0x91, 0x30, 0xA0, 0xB2, 0x41, 0xE5, 0x73, 0x7F
+ },
+ {
+ 0xB8, 0x81, 0x31, 0x72, 0xF5, 0x21, 0x8A, 0xC3,
+ 0xEB, 0x68, 0x7B, 0xC4, 0xAF, 0xAF, 0xF8, 0x3F,
+ 0xBC, 0xA4, 0xE9, 0xC1, 0xA4, 0x62, 0x96, 0x33,
+ 0x01, 0xDD, 0x44, 0x59, 0x85, 0x01, 0x50, 0xA2
+ },
+ {
+ 0xE3, 0xD1, 0x30, 0xE3, 0x6A, 0x02, 0x8E, 0xA8,
+ 0x0C, 0x57, 0xA2, 0xAA, 0x48, 0x19, 0xFD, 0x34,
+ 0xE4, 0xDB, 0xBE, 0xB1, 0x4A, 0x49, 0x58, 0x94,
+ 0xB1, 0x5A, 0x87, 0x87, 0xDB, 0x1A, 0x9F, 0x9C
+ },
+ {
+ 0xFF, 0xF1, 0xB4, 0x40, 0x0F, 0x48, 0x9E, 0x07,
+ 0xD2, 0x23, 0x51, 0xC1, 0xF0, 0x95, 0x65, 0xE2,
+ 0x65, 0xB6, 0x8A, 0xD2, 0x9F, 0x63, 0x29, 0x87,
+ 0x9E, 0x6B, 0x5F, 0x7F, 0x6B, 0x41, 0x93, 0x50
+ },
+ {
+ 0x55, 0x9E, 0xD5, 0xBB, 0x3E, 0x5F, 0x39, 0x85,
+ 0xFB, 0x57, 0x82, 0x28, 0xBF, 0x8C, 0x0F, 0x0B,
+ 0x17, 0x3F, 0x8D, 0x11, 0x53, 0xFA, 0xEB, 0x9F,
+ 0xEC, 0x75, 0x6F, 0xFD, 0x18, 0xA8, 0x72, 0x38
+ },
+ {
+ 0x88, 0x13, 0x12, 0x53, 0x01, 0x4D, 0x23, 0xC5,
+ 0xE3, 0x8E, 0x78, 0xBD, 0xA1, 0x94, 0x55, 0xD8,
+ 0xA0, 0x23, 0xBD, 0x7A, 0x7E, 0x72, 0x74, 0x57,
+ 0xA1, 0x52, 0xA8, 0x1D, 0x0B, 0x17, 0x18, 0xA7
+ },
+ {
+ 0xF4, 0xD3, 0xFA, 0xE7, 0xCD, 0xE6, 0xBB, 0x66,
+ 0x71, 0x5A, 0x19, 0x8F, 0xA4, 0x8D, 0x21, 0x0C,
+ 0x10, 0xF8, 0xDF, 0x32, 0x04, 0xAE, 0x5E, 0x33,
+ 0xA6, 0x02, 0x46, 0x7F, 0x1B, 0x62, 0x26, 0x85
+ },
+ {
+ 0xE6, 0x2B, 0x62, 0x2A, 0xC8, 0xA2, 0x13, 0x66,
+ 0xBF, 0x2D, 0xED, 0x30, 0xF4, 0x08, 0x2A, 0x53,
+ 0xE7, 0x7A, 0x9A, 0xA6, 0x96, 0xB1, 0xF3, 0xEE,
+ 0x8C, 0xFE, 0x99, 0xC5, 0x93, 0x12, 0xD9, 0xC7
+ },
+ {
+ 0x3D, 0x39, 0xFF, 0xA8, 0x55, 0x12, 0xC3, 0xC8,
+ 0x89, 0x0D, 0x4B, 0xDF, 0x31, 0x88, 0x9C, 0xA6,
+ 0x6E, 0x5C, 0xEC, 0xB6, 0x3C, 0xFE, 0xED, 0x57,
+ 0xB9, 0x26, 0x37, 0x08, 0xE7, 0x4C, 0x55, 0x0B
+ },
+ {
+ 0xB1, 0x70, 0x3B, 0x8A, 0x00, 0xE2, 0x61, 0x24,
+ 0x97, 0xD1, 0x1C, 0x64, 0x9D, 0x15, 0x0A, 0x6C,
+ 0x96, 0x3B, 0xF4, 0xFD, 0x38, 0xFE, 0xB1, 0xC3,
+ 0x81, 0xFE, 0x0D, 0x9B, 0x04, 0xC0, 0x2B, 0x22
+ },
+ {
+ 0x12, 0xFB, 0xAD, 0x9D, 0x37, 0x82, 0x81, 0x2D,
+ 0x71, 0x17, 0x9A, 0x50, 0xFB, 0xD9, 0xB4, 0x56,
+ 0x6C, 0x7B, 0x06, 0xF5, 0xD7, 0x7C, 0x6F, 0x32,
+ 0x97, 0x17, 0xFB, 0x4A, 0xE2, 0xC5, 0xB4, 0xEC
+ },
+ {
+ 0x76, 0x8B, 0x65, 0x9A, 0x82, 0x4B, 0x43, 0xF9,
+ 0xCA, 0x56, 0x60, 0xB9, 0xDD, 0xF0, 0x5F, 0x8B,
+ 0xA2, 0xBC, 0x49, 0x93, 0x86, 0x6B, 0x7C, 0x9B,
+ 0xE6, 0x87, 0x91, 0xF5, 0xB2, 0x46, 0x44, 0xB3
+ },
+ {
+ 0xC0, 0x20, 0x4E, 0x23, 0xCA, 0x86, 0xBE, 0x20,
+ 0x5E, 0xED, 0x0C, 0xC3, 0xDD, 0x72, 0x25, 0xCE,
+ 0x5F, 0xFE, 0x1E, 0xE1, 0x2D, 0xAC, 0xB9, 0x3C,
+ 0x5D, 0x06, 0x29, 0xB7, 0x69, 0x9C, 0xD7, 0x33
+ },
+ {
+ 0xF4, 0x32, 0x96, 0x96, 0x1F, 0x8E, 0xAE, 0xCC,
+ 0xD8, 0x54, 0x41, 0x3D, 0xC5, 0xAD, 0xDA, 0x62,
+ 0x39, 0x3A, 0x34, 0x46, 0x27, 0xE8, 0x6C, 0x06,
+ 0x6E, 0x79, 0x07, 0x55, 0x00, 0x40, 0x74, 0x4F
+ },
+ {
+ 0x82, 0xF4, 0x46, 0x9E, 0x80, 0x78, 0x90, 0x21,
+ 0xC6, 0x1D, 0xB7, 0xE3, 0x2F, 0x36, 0xAC, 0xBE,
+ 0x59, 0x1A, 0x64, 0xF2, 0x60, 0x59, 0x26, 0x57,
+ 0x70, 0xAE, 0x65, 0x8D, 0x62, 0xBD, 0xE7, 0xEF
+ },
+ {
+ 0x2A, 0x85, 0x67, 0x1A, 0x55, 0xC8, 0x9F, 0xA1,
+ 0x56, 0xE2, 0x96, 0xF7, 0x5D, 0xF1, 0xC7, 0xDB,
+ 0xAB, 0x17, 0x8E, 0xBB, 0xA6, 0x52, 0x04, 0xA7,
+ 0xE8, 0x17, 0x8C, 0x91, 0x6A, 0xD0, 0x87, 0xF8
+ },
+ {
+ 0x33, 0xE2, 0x45, 0x00, 0x28, 0x08, 0xF6, 0x93,
+ 0x4B, 0x9B, 0xE3, 0xA6, 0xFA, 0x8E, 0x86, 0x70,
+ 0xC9, 0x0B, 0xAA, 0x62, 0x57, 0x17, 0xB9, 0x20,
+ 0x1E, 0xB9, 0xB9, 0xDD, 0x91, 0x2F, 0x5C, 0xE2
+ },
+ {
+ 0x58, 0xEE, 0x5E, 0x79, 0x91, 0x84, 0xAD, 0x9D,
+ 0xA9, 0xA1, 0x7C, 0x5B, 0x46, 0xA4, 0x81, 0x0E,
+ 0x28, 0xBD, 0xD0, 0x8C, 0x35, 0x81, 0x63, 0x4C,
+ 0x83, 0x50, 0x30, 0x53, 0x9B, 0x79, 0x54, 0x4D
+ },
+ {
+ 0x26, 0xD8, 0xFA, 0x08, 0xDB, 0x30, 0x8E, 0xDF,
+ 0x2F, 0x96, 0xF8, 0x2A, 0xF6, 0xB6, 0x0C, 0x17,
+ 0xD8, 0xF1, 0xFF, 0x85, 0x8C, 0x52, 0xF2, 0xD0,
+ 0xF3, 0x83, 0x10, 0x78, 0x12, 0x75, 0x26, 0xA3
+ },
+ {
+ 0x25, 0xA5, 0x8D, 0xF4, 0x03, 0x92, 0x47, 0xA2,
+ 0x2F, 0x68, 0xFF, 0x2B, 0x71, 0x76, 0x6B, 0x7B,
+ 0x56, 0x00, 0xDD, 0xF4, 0x01, 0xD9, 0x9F, 0xF2,
+ 0xC1, 0x95, 0x5A, 0xE7, 0xBB, 0x43, 0xE5, 0x6A
+ },
+ {
+ 0xBE, 0x43, 0xE8, 0x68, 0x61, 0x60, 0xE9, 0x07,
+ 0xBA, 0x54, 0x7D, 0x5A, 0x87, 0x9D, 0x10, 0xF7,
+ 0x88, 0xAF, 0xC8, 0x42, 0xB8, 0xEB, 0xB9, 0xF3,
+ 0xF7, 0x88, 0x53, 0x25, 0x15, 0x91, 0x2A, 0xE4
+ },
+ {
+ 0xAA, 0x4A, 0xCB, 0x95, 0xD8, 0x79, 0x19, 0x2A,
+ 0x69, 0x08, 0xE8, 0x8A, 0xE3, 0xD6, 0x58, 0x9F,
+ 0x4E, 0x3E, 0xB3, 0xD4, 0xE0, 0x3A, 0x80, 0x6C,
+ 0xCD, 0xB9, 0xB5, 0xD6, 0xA9, 0x58, 0x6F, 0xDF
+ },
+ {
+ 0x84, 0x66, 0xD5, 0xE4, 0x4C, 0xE9, 0x5B, 0x4F,
+ 0xA1, 0x79, 0x99, 0x24, 0x44, 0xB8, 0xC2, 0x48,
+ 0x5B, 0x88, 0x64, 0x48, 0xA6, 0xDC, 0xCF, 0xCF,
+ 0x0B, 0xC3, 0x0B, 0xC5, 0xF0, 0xF5, 0x6B, 0x01
+ },
+ {
+ 0x00, 0x56, 0xD7, 0xE0, 0xAC, 0x33, 0x35, 0x57,
+ 0x83, 0x65, 0x9B, 0x38, 0xEC, 0x8B, 0xEC, 0xCB,
+ 0xF7, 0x83, 0x93, 0x99, 0x67, 0xFE, 0x37, 0xAE,
+ 0xAC, 0xF3, 0x69, 0xDD, 0xB6, 0x70, 0xAD, 0xA0
+ },
+ {
+ 0x90, 0x4F, 0x42, 0xF3, 0x45, 0x53, 0x0A, 0xC8,
+ 0xA3, 0x52, 0xD0, 0x9B, 0x68, 0x72, 0xC5, 0xBC,
+ 0xA3, 0x66, 0x1A, 0xBC, 0xA6, 0xCA, 0x64, 0xC8,
+ 0x09, 0x9F, 0x2F, 0xB6, 0x86, 0x7C, 0x30, 0xFE
+ },
+ {
+ 0xA8, 0xC3, 0xBF, 0x46, 0xF0, 0xB8, 0x8B, 0xBD,
+ 0x16, 0xFD, 0xA4, 0xA8, 0xB5, 0xCA, 0x81, 0xF5,
+ 0x24, 0x35, 0x20, 0xC3, 0x85, 0xD3, 0x8C, 0x0B,
+ 0x4D, 0x23, 0x52, 0xAB, 0x34, 0xEA, 0x35, 0xE6
+ },
+ {
+ 0x8D, 0x33, 0x17, 0xFC, 0x60, 0x6E, 0x56, 0x6D,
+ 0x30, 0x2E, 0xDA, 0xB5, 0x5E, 0x80, 0x16, 0x11,
+ 0xD8, 0xC1, 0x3F, 0x4A, 0x9A, 0x19, 0xD1, 0x85,
+ 0x97, 0x8D, 0xEF, 0x72, 0x83, 0x9C, 0xDA, 0xA3
+ },
+ {
+ 0x97, 0x38, 0x80, 0x11, 0xF5, 0x7A, 0x49, 0x86,
+ 0x90, 0xEC, 0x79, 0x88, 0xEF, 0xF9, 0x03, 0xFF,
+ 0x9B, 0x23, 0x58, 0xF5, 0xB6, 0x1B, 0xAA, 0x20,
+ 0xF7, 0x32, 0x90, 0xD6, 0x29, 0x6C, 0x1C, 0x0B
+ },
+ {
+ 0xCF, 0xB8, 0x0C, 0xAB, 0x89, 0x90, 0x95, 0x08,
+ 0x09, 0x12, 0x3F, 0xBF, 0x85, 0xE9, 0x76, 0x45,
+ 0x47, 0x08, 0xE0, 0xAF, 0xED, 0x69, 0x8E, 0x33,
+ 0x52, 0xA3, 0x16, 0x35, 0x90, 0x9D, 0xB3, 0xE5
+ },
+ {
+ 0x0D, 0xAA, 0xCA, 0x55, 0x13, 0x2A, 0x23, 0x5B,
+ 0x83, 0x1A, 0x5E, 0xFF, 0x4E, 0xA4, 0x67, 0xCD,
+ 0x10, 0xAF, 0x44, 0x20, 0x08, 0x47, 0x73, 0x5A,
+ 0x1F, 0xFD, 0x51, 0xFA, 0x37, 0xEA, 0xA2, 0xA2
+ },
+ {
+ 0x69, 0xB2, 0x14, 0x97, 0xEB, 0xB8, 0x24, 0xBA,
+ 0x66, 0x53, 0x68, 0x18, 0x88, 0x25, 0xE6, 0xF6,
+ 0xF1, 0x4C, 0xF2, 0xC3, 0xF7, 0xB5, 0x53, 0x0B,
+ 0xB3, 0x4F, 0xA6, 0x58, 0xEE, 0xD9, 0xA7, 0x39
+ },
+ {
+ 0xB9, 0xA1, 0x9F, 0x50, 0x9B, 0xE0, 0x3F, 0xBC,
+ 0x40, 0xE2, 0x43, 0xA5, 0x8A, 0x3D, 0xED, 0x11,
+ 0xF0, 0xD5, 0x1F, 0x80, 0xE3, 0xE2, 0x9A, 0x50,
+ 0x56, 0x44, 0xCC, 0x05, 0x74, 0x38, 0x14, 0xEC
+ },
+ {
+ 0xC4, 0xBC, 0xB2, 0x00, 0x25, 0x55, 0xD5, 0x44,
+ 0xFD, 0x0B, 0x02, 0x77, 0x06, 0x23, 0x89, 0x1E,
+ 0x70, 0xEE, 0xEC, 0x77, 0x44, 0x86, 0x5D, 0xD6,
+ 0x45, 0x5A, 0xD6, 0x65, 0xCC, 0x82, 0xE8, 0x61
+ },
+ {
+ 0x91, 0x2D, 0x24, 0xDC, 0x3D, 0x69, 0x23, 0xA4,
+ 0x83, 0xC2, 0x63, 0xEB, 0xA8, 0x1B, 0x7A, 0x87,
+ 0x97, 0xF2, 0x3C, 0xBF, 0x2F, 0x78, 0xB5, 0x1E,
+ 0x22, 0x26, 0x63, 0x9F, 0x84, 0xA5, 0x90, 0x47
+ },
+ {
+ 0x56, 0x82, 0x7A, 0x18, 0x88, 0x3A, 0xFD, 0xF9,
+ 0xCE, 0xEC, 0x56, 0x2B, 0x20, 0x66, 0xD8, 0xAC,
+ 0xB2, 0xC1, 0x95, 0x05, 0xEC, 0xE6, 0xF7, 0xA8,
+ 0x3E, 0x9F, 0x33, 0x46, 0xCB, 0xB8, 0x28, 0xC9
+ },
+ {
+ 0x25, 0x1D, 0x8D, 0x09, 0xFC, 0x48, 0xDD, 0x1D,
+ 0x6A, 0xF8, 0xFF, 0xDF, 0x39, 0x50, 0x91, 0xA4,
+ 0x6E, 0x05, 0xB8, 0xB7, 0xC5, 0xEC, 0x0C, 0x79,
+ 0xB6, 0x8A, 0x89, 0x04, 0xC8, 0x27, 0xBD, 0xEA
+ },
+ {
+ 0xC2, 0xD1, 0x4D, 0x69, 0xFD, 0x0B, 0xBD, 0x1C,
+ 0x0F, 0xE8, 0xC8, 0x45, 0xD5, 0xFD, 0x6A, 0x8F,
+ 0x74, 0x01, 0x51, 0xB1, 0xD8, 0xEB, 0x4D, 0x26,
+ 0x36, 0x4B, 0xB0, 0x2D, 0xAE, 0x0C, 0x13, 0xBC
+ },
+ {
+ 0x2E, 0x5F, 0xE2, 0x1F, 0x8F, 0x1B, 0x63, 0x97,
+ 0xA3, 0x8A, 0x60, 0x3D, 0x60, 0xB6, 0xF5, 0x3C,
+ 0x3B, 0x5D, 0xB2, 0x0A, 0xA5, 0x6C, 0x6D, 0x44,
+ 0xBE, 0xBD, 0x48, 0x28, 0xCE, 0x28, 0xF9, 0x0F
+ },
+ {
+ 0x25, 0x05, 0x9F, 0x10, 0x60, 0x5E, 0x67, 0xAD,
+ 0xFE, 0x68, 0x13, 0x50, 0x66, 0x6E, 0x15, 0xAE,
+ 0x97, 0x6A, 0x5A, 0x57, 0x1C, 0x13, 0xCF, 0x5B,
+ 0xC8, 0x05, 0x3F, 0x43, 0x0E, 0x12, 0x0A, 0x52
+ },
+};
+
+
+
+
+static const uint8_t blake2sp_keyed_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] =
+{
+ {
+ 0x71, 0x5C, 0xB1, 0x38, 0x95, 0xAE, 0xB6, 0x78,
+ 0xF6, 0x12, 0x41, 0x60, 0xBF, 0xF2, 0x14, 0x65,
+ 0xB3, 0x0F, 0x4F, 0x68, 0x74, 0x19, 0x3F, 0xC8,
+ 0x51, 0xB4, 0x62, 0x10, 0x43, 0xF0, 0x9C, 0xC6
+ },
+ {
+ 0x40, 0x57, 0x8F, 0xFA, 0x52, 0xBF, 0x51, 0xAE,
+ 0x18, 0x66, 0xF4, 0x28, 0x4D, 0x3A, 0x15, 0x7F,
+ 0xC1, 0xBC, 0xD3, 0x6A, 0xC1, 0x3C, 0xBD, 0xCB,
+ 0x03, 0x77, 0xE4, 0xD0, 0xCD, 0x0B, 0x66, 0x03
+ },
+ {
+ 0x67, 0xE3, 0x09, 0x75, 0x45, 0xBA, 0xD7, 0xE8,
+ 0x52, 0xD7, 0x4D, 0x4E, 0xB5, 0x48, 0xEC, 0xA7,
+ 0xC2, 0x19, 0xC2, 0x02, 0xA7, 0xD0, 0x88, 0xDB,
+ 0x0E, 0xFE, 0xAC, 0x0E, 0xAC, 0x30, 0x42, 0x49
+ },
+ {
+ 0x8D, 0xBC, 0xC0, 0x58, 0x9A, 0x3D, 0x17, 0x29,
+ 0x6A, 0x7A, 0x58, 0xE2, 0xF1, 0xEF, 0xF0, 0xE2,
+ 0xAA, 0x42, 0x10, 0xB5, 0x8D, 0x1F, 0x88, 0xB8,
+ 0x6D, 0x7B, 0xA5, 0xF2, 0x9D, 0xD3, 0xB5, 0x83
+ },
+ {
+ 0xA9, 0xA9, 0x65, 0x2C, 0x8C, 0x67, 0x75, 0x94,
+ 0xC8, 0x72, 0x12, 0xD8, 0x9D, 0x5A, 0x75, 0xFB,
+ 0x31, 0xEF, 0x4F, 0x47, 0xC6, 0x58, 0x2C, 0xDE,
+ 0x5F, 0x1E, 0xF6, 0x6B, 0xD4, 0x94, 0x53, 0x3A
+ },
+ {
+ 0x05, 0xA7, 0x18, 0x0E, 0x59, 0x50, 0x54, 0x73,
+ 0x99, 0x48, 0xC5, 0xE3, 0x38, 0xC9, 0x5F, 0xE0,
+ 0xB7, 0xFC, 0x61, 0xAC, 0x58, 0xA7, 0x35, 0x74,
+ 0x74, 0x56, 0x33, 0xBB, 0xC1, 0xF7, 0x70, 0x31
+ },
+ {
+ 0x81, 0x4D, 0xE8, 0x31, 0x53, 0xB8, 0xD7, 0x5D,
+ 0xFA, 0xDE, 0x29, 0xFD, 0x39, 0xAC, 0x72, 0xDD,
+ 0x09, 0xCA, 0x0F, 0x9B, 0xC8, 0xB7, 0xAB, 0x6A,
+ 0x06, 0xBA, 0xEE, 0x7D, 0xD0, 0xF9, 0xF0, 0x83
+ },
+ {
+ 0xDF, 0xD4, 0x19, 0x44, 0x91, 0x29, 0xFF, 0x60,
+ 0x4F, 0x0A, 0x14, 0x8B, 0x4C, 0x7D, 0x68, 0xF1,
+ 0x17, 0x4F, 0x7D, 0x0F, 0x8C, 0x8D, 0x2C, 0xE7,
+ 0x7F, 0x44, 0x8F, 0xD3, 0x41, 0x9C, 0x6F, 0xB0
+ },
+ {
+ 0xB9, 0xED, 0x22, 0xE7, 0xDD, 0x8D, 0xD1, 0x4E,
+ 0xE8, 0xC9, 0x5B, 0x20, 0xE7, 0x63, 0x2E, 0x85,
+ 0x53, 0xA2, 0x68, 0xD9, 0xFF, 0x86, 0x33, 0xED,
+ 0x3C, 0x21, 0xD1, 0xB8, 0xC9, 0xA7, 0x0B, 0xE1
+ },
+ {
+ 0x95, 0xF0, 0x31, 0x67, 0x1A, 0x4E, 0x3C, 0x54,
+ 0x44, 0x1C, 0xEE, 0x9D, 0xBE, 0xF4, 0xB7, 0xAC,
+ 0xA4, 0x46, 0x18, 0xA3, 0xA3, 0x33, 0xAD, 0x74,
+ 0x06, 0xD1, 0x97, 0xAC, 0x5B, 0xA0, 0x79, 0x1A
+ },
+ {
+ 0xE2, 0x92, 0x5B, 0x9D, 0x5C, 0xA0, 0xFF, 0x62,
+ 0x88, 0xC5, 0xEA, 0x1A, 0xF2, 0xD2, 0x2B, 0x0A,
+ 0x6B, 0x79, 0xE2, 0xDA, 0xE0, 0x8B, 0xFD, 0x36,
+ 0xC3, 0xBE, 0x10, 0xBB, 0x8D, 0x71, 0xD8, 0x39
+ },
+ {
+ 0x16, 0x24, 0x9C, 0x74, 0x4E, 0x49, 0x51, 0x45,
+ 0x1D, 0x4C, 0x89, 0x4F, 0xB5, 0x9A, 0x3E, 0xCB,
+ 0x3F, 0xBF, 0xB7, 0xA4, 0x5F, 0x96, 0xF8, 0x5D,
+ 0x15, 0x80, 0xAC, 0x0B, 0x84, 0x2D, 0x96, 0xDA
+ },
+ {
+ 0x43, 0x2B, 0xC9, 0x1C, 0x52, 0xAC, 0xEB, 0x9D,
+ 0xAE, 0xD8, 0x83, 0x28, 0x81, 0x64, 0x86, 0x50,
+ 0xC1, 0xB8, 0x1D, 0x11, 0x7A, 0xBD, 0x68, 0xE0,
+ 0x84, 0x51, 0x50, 0x8A, 0x63, 0xBE, 0x00, 0x81
+ },
+ {
+ 0xCD, 0xE8, 0x20, 0x2B, 0xCF, 0xA3, 0xF3, 0xE9,
+ 0x5D, 0x79, 0xBA, 0xCC, 0x16, 0x5D, 0x52, 0x70,
+ 0x0E, 0xF7, 0x1D, 0x87, 0x4A, 0x3C, 0x63, 0x7E,
+ 0x63, 0x4F, 0x64, 0x44, 0x73, 0x72, 0x0D, 0x6B
+ },
+ {
+ 0x16, 0x21, 0x62, 0x1F, 0x5C, 0x3E, 0xE4, 0x46,
+ 0x89, 0x9D, 0x3C, 0x8A, 0xAE, 0x49, 0x17, 0xB1,
+ 0xE6, 0xDB, 0x4A, 0x0E, 0xD0, 0x42, 0x31, 0x5F,
+ 0xB2, 0xC1, 0x74, 0x82, 0x5E, 0x0A, 0x18, 0x19
+ },
+ {
+ 0x33, 0x6E, 0x8E, 0xBC, 0x71, 0xE2, 0x09, 0x5C,
+ 0x27, 0xF8, 0x64, 0xA3, 0x12, 0x1E, 0xFD, 0x0F,
+ 0xAA, 0x7A, 0x41, 0x28, 0x57, 0x25, 0xA5, 0x92,
+ 0xF6, 0x1B, 0xED, 0xED, 0x9D, 0xDE, 0x86, 0xED
+ },
+ {
+ 0x07, 0x9B, 0xE0, 0x41, 0x0E, 0x78, 0x9B, 0x36,
+ 0xEE, 0x7F, 0x55, 0xC1, 0x9F, 0xAA, 0xC6, 0x91,
+ 0x65, 0x6E, 0xB0, 0x52, 0x1F, 0x42, 0x94, 0x9B,
+ 0x84, 0xEE, 0x29, 0xFE, 0x2A, 0x0E, 0x7F, 0x36
+ },
+ {
+ 0x17, 0x27, 0x0C, 0x4F, 0x34, 0x88, 0x08, 0x2D,
+ 0x9F, 0xF9, 0x93, 0x7E, 0xAB, 0x3C, 0xA9, 0x9C,
+ 0x97, 0xC5, 0xB4, 0x59, 0x61, 0x47, 0x37, 0x2D,
+ 0xD4, 0xE9, 0x8A, 0xCF, 0x13, 0xDB, 0x28, 0x10
+ },
+ {
+ 0x18, 0x3C, 0x38, 0x75, 0x4D, 0x03, 0x41, 0xCE,
+ 0x07, 0xC1, 0x7A, 0x6C, 0xB6, 0xC2, 0xFD, 0x8B,
+ 0xBC, 0xC1, 0x40, 0x4F, 0xDD, 0x01, 0x41, 0x99,
+ 0xC7, 0x8B, 0xE1, 0xA9, 0x75, 0x59, 0xA9, 0x28
+ },
+ {
+ 0x6E, 0x52, 0xD7, 0x28, 0xA4, 0x05, 0xA6, 0xE1,
+ 0xF8, 0x75, 0x87, 0xBB, 0xC2, 0xAC, 0x91, 0xC5,
+ 0xC0, 0x9B, 0x2D, 0x82, 0x8A, 0xC8, 0x1E, 0x5C,
+ 0x4A, 0x81, 0xD0, 0x3D, 0xD4, 0xAA, 0x8D, 0x5C
+ },
+ {
+ 0xF4, 0xE0, 0x8E, 0x05, 0x9B, 0x74, 0x14, 0x4B,
+ 0xF9, 0x48, 0x14, 0x6D, 0x14, 0xA2, 0xC8, 0x1E,
+ 0x46, 0xDC, 0x15, 0xFF, 0x26, 0xEB, 0x52, 0x34,
+ 0x4C, 0xDD, 0x47, 0x4A, 0xBE, 0xA1, 0x4B, 0xC0
+ },
+ {
+ 0x0F, 0x2E, 0x0A, 0x10, 0x0E, 0xD8, 0xA1, 0x17,
+ 0x85, 0x96, 0x2A, 0xD4, 0x59, 0x6A, 0xF9, 0x55,
+ 0xE3, 0x0B, 0x9A, 0xEF, 0x93, 0x0A, 0x24, 0x8D,
+ 0xA9, 0x32, 0x2B, 0x70, 0x2D, 0x4B, 0x68, 0x72
+ },
+ {
+ 0x51, 0x90, 0xFC, 0xC7, 0x32, 0xF4, 0x04, 0xAA,
+ 0xD4, 0x36, 0x4A, 0xC7, 0x96, 0x0C, 0xFD, 0x5B,
+ 0x4E, 0x34, 0x86, 0x29, 0xC3, 0x72, 0xEE, 0xB3,
+ 0x25, 0xB5, 0xC6, 0xC7, 0xCB, 0xCE, 0x59, 0xAB
+ },
+ {
+ 0xC0, 0xC4, 0xCB, 0x86, 0xEA, 0x25, 0xEA, 0x95,
+ 0x7E, 0xEC, 0x5B, 0x22, 0xD2, 0x55, 0x0A, 0x16,
+ 0x49, 0xE6, 0xDF, 0xFA, 0x31, 0x6B, 0xB8, 0xF4,
+ 0xC9, 0x1B, 0x8F, 0xF7, 0xA2, 0x4B, 0x25, 0x31
+ },
+ {
+ 0x2C, 0x9E, 0xDA, 0x13, 0x5A, 0x30, 0xAE, 0xCA,
+ 0xF3, 0xAC, 0xB3, 0xD2, 0x3A, 0x30, 0x35, 0xFB,
+ 0xAB, 0xBA, 0x98, 0x33, 0x31, 0x65, 0xD8, 0x7F,
+ 0xCB, 0xF8, 0xFE, 0x10, 0x33, 0x6E, 0xCF, 0x20
+ },
+ {
+ 0x3C, 0xD6, 0x69, 0xE8, 0xD5, 0x62, 0x62, 0xA2,
+ 0x37, 0x13, 0x67, 0x22, 0x4D, 0xAE, 0x6D, 0x75,
+ 0x9E, 0xE1, 0x52, 0xC3, 0x15, 0x33, 0xB2, 0x63,
+ 0xFA, 0x2E, 0x64, 0x92, 0x08, 0x77, 0xB2, 0xA7
+ },
+ {
+ 0x18, 0xA9, 0xA0, 0xC2, 0xD0, 0xEA, 0x6C, 0x3B,
+ 0xB3, 0x32, 0x83, 0x0F, 0x89, 0x18, 0xB0, 0x68,
+ 0x4F, 0x5D, 0x39, 0x94, 0xDF, 0x48, 0x67, 0x46,
+ 0x2D, 0xD0, 0x6E, 0xF0, 0x86, 0x24, 0x24, 0xCC
+ },
+ {
+ 0x73, 0x90, 0xEA, 0x41, 0x04, 0xA9, 0xF4, 0xEE,
+ 0xA9, 0x0F, 0x81, 0xE2, 0x6A, 0x12, 0x9D, 0xCF,
+ 0x9F, 0x4A, 0xF3, 0x83, 0x52, 0xD9, 0xCB, 0x6A,
+ 0x81, 0x2C, 0xC8, 0x05, 0x69, 0x09, 0x05, 0x0E
+ },
+ {
+ 0xE4, 0x9E, 0x01, 0x14, 0xC6, 0x29, 0xB4, 0x94,
+ 0xB1, 0x1E, 0xA9, 0x8E, 0xCD, 0x40, 0x32, 0x73,
+ 0x1F, 0x15, 0x3B, 0x46, 0x50, 0xAC, 0xAC, 0xD7,
+ 0xE0, 0xF6, 0xE7, 0xDE, 0x3D, 0xF0, 0x19, 0x77
+ },
+ {
+ 0x27, 0xC5, 0x70, 0x2B, 0xE1, 0x04, 0xB3, 0xA9,
+ 0x4F, 0xC4, 0x34, 0x23, 0xAE, 0xEE, 0x83, 0xAC,
+ 0x3C, 0xA7, 0x3B, 0x7F, 0x87, 0x83, 0x9A, 0x6B,
+ 0x2E, 0x29, 0x60, 0x79, 0x03, 0xB7, 0xF2, 0x87
+ },
+ {
+ 0x81, 0xD2, 0xE1, 0x2E, 0xB2, 0xF4, 0x27, 0x60,
+ 0xC6, 0xE3, 0xBA, 0xA7, 0x8F, 0x84, 0x07, 0x3A,
+ 0xE6, 0xF5, 0x61, 0x60, 0x70, 0xFE, 0x25, 0xBE,
+ 0xDE, 0x7C, 0x7C, 0x82, 0x48, 0xAB, 0x1F, 0xBA
+ },
+ {
+ 0xFA, 0xB2, 0x35, 0xD5, 0x93, 0x48, 0xAB, 0x8C,
+ 0xE4, 0x9B, 0xEC, 0x77, 0xC0, 0xF1, 0x93, 0x28,
+ 0xFD, 0x04, 0x5D, 0xFD, 0x60, 0x8A, 0x53, 0x03,
+ 0x36, 0xDF, 0x4F, 0x94, 0xE1, 0x72, 0xA5, 0xC8
+ },
+ {
+ 0x8A, 0xAA, 0x8D, 0x80, 0x5C, 0x58, 0x88, 0x1F,
+ 0xF3, 0x79, 0xFB, 0xD4, 0x2C, 0x6B, 0xF6, 0xF1,
+ 0x4C, 0x6C, 0x73, 0xDF, 0x80, 0x71, 0xB3, 0xB2,
+ 0x28, 0x98, 0x11, 0x09, 0xCC, 0xC0, 0x15, 0xF9
+ },
+ {
+ 0x91, 0xFD, 0xD2, 0x62, 0x20, 0x39, 0x16, 0x39,
+ 0x47, 0x40, 0x95, 0x2B, 0xCE, 0x72, 0xB6, 0x4B,
+ 0xAB, 0xB6, 0xF7, 0x21, 0x34, 0x4D, 0xEE, 0x82,
+ 0x50, 0xBF, 0x0E, 0x46, 0xF1, 0xBA, 0x18, 0x8F
+ },
+ {
+ 0xF7, 0xE5, 0x7B, 0x8F, 0x85, 0xF4, 0x7D, 0x59,
+ 0x03, 0xAD, 0x4C, 0xCB, 0x8A, 0xF6, 0x2A, 0x3E,
+ 0x85, 0x8A, 0xAB, 0x2B, 0x8C, 0xC2, 0x26, 0x49,
+ 0x4F, 0x7B, 0x00, 0xBE, 0xDB, 0xF5, 0xB0, 0xD0
+ },
+ {
+ 0xF7, 0x6F, 0x21, 0xAD, 0xDA, 0xE9, 0x6A, 0x96,
+ 0x46, 0xFC, 0x06, 0xF9, 0xBF, 0x52, 0xAE, 0x08,
+ 0x48, 0xF1, 0x8C, 0x35, 0x26, 0xB1, 0x29, 0xE1,
+ 0x5B, 0x2C, 0x35, 0x5E, 0x2E, 0x79, 0xE5, 0xDA
+ },
+ {
+ 0x8A, 0xEB, 0x1C, 0x79, 0x5F, 0x34, 0x90, 0x01,
+ 0x5E, 0xF4, 0xCD, 0x61, 0xA2, 0x80, 0x7B, 0x23,
+ 0x0E, 0xFD, 0xC8, 0x46, 0x01, 0x73, 0xDA, 0xD0,
+ 0x26, 0xA4, 0xA0, 0xFC, 0xC2, 0xFB, 0xF2, 0x2A
+ },
+ {
+ 0xC5, 0x64, 0xFF, 0xC6, 0x23, 0x07, 0x77, 0x65,
+ 0xBB, 0x97, 0x87, 0x58, 0x56, 0x54, 0xCE, 0x74,
+ 0x5D, 0xBD, 0x10, 0x8C, 0xEF, 0x24, 0x8A, 0xB0,
+ 0x0A, 0xD1, 0xA2, 0x64, 0x7D, 0x99, 0x03, 0x87
+ },
+ {
+ 0xFE, 0x89, 0x42, 0xA3, 0xE5, 0xF5, 0xE8, 0xCD,
+ 0x70, 0x51, 0x04, 0xF8, 0x82, 0x10, 0x72, 0x6E,
+ 0x53, 0xDD, 0x7E, 0xB3, 0xF9, 0xA2, 0x02, 0xBF,
+ 0x93, 0x14, 0xB3, 0xB9, 0x06, 0x5E, 0xB7, 0x12
+ },
+ {
+ 0xDC, 0x29, 0x53, 0x59, 0xD4, 0x36, 0xEE, 0xA7,
+ 0x80, 0x84, 0xE7, 0xB0, 0x77, 0xFE, 0x09, 0xB1,
+ 0x9C, 0x5B, 0xF3, 0xD2, 0xA7, 0x96, 0xDA, 0xB0,
+ 0x19, 0xE4, 0x20, 0x05, 0x99, 0xFD, 0x82, 0x02
+ },
+ {
+ 0x70, 0xB3, 0xF7, 0x2F, 0x74, 0x90, 0x32, 0xE2,
+ 0x5E, 0x38, 0x3B, 0x96, 0x43, 0x78, 0xEA, 0x1C,
+ 0x54, 0x3E, 0x9C, 0x15, 0xDE, 0x3A, 0x27, 0xD8,
+ 0x6D, 0x2A, 0x9D, 0x22, 0x31, 0xEF, 0xF4, 0x8A
+ },
+ {
+ 0x79, 0x82, 0xB5, 0x4C, 0x08, 0xDB, 0x2B, 0xFB,
+ 0x6F, 0x45, 0xF3, 0x5B, 0xC3, 0x23, 0xBC, 0x09,
+ 0x37, 0x79, 0xB6, 0xBB, 0x0E, 0x3E, 0xEA, 0x3E,
+ 0x8C, 0x98, 0xB1, 0xDE, 0x99, 0xD3, 0xC5, 0x5E
+ },
+ {
+ 0x75, 0xE4, 0x16, 0x22, 0x57, 0x01, 0x4B, 0xED,
+ 0xCC, 0x05, 0xC2, 0x94, 0x4D, 0xCE, 0x0D, 0xF0,
+ 0xC3, 0x5E, 0xBA, 0x13, 0x19, 0x54, 0x06, 0x4F,
+ 0x6E, 0x4E, 0x09, 0x5F, 0xD0, 0x84, 0x45, 0xEE
+ },
+ {
+ 0x4A, 0x12, 0x9E, 0xA6, 0xCD, 0xBA, 0xBC, 0x2D,
+ 0x39, 0x24, 0x79, 0x37, 0x2F, 0x97, 0x5B, 0x9C,
+ 0xF5, 0xA1, 0xB7, 0xDE, 0xB6, 0x9A, 0x32, 0x66,
+ 0xF0, 0x3E, 0xBC, 0x6D, 0x11, 0x13, 0x93, 0xC4
+ },
+ {
+ 0x8F, 0xED, 0x70, 0xF2, 0x79, 0x55, 0xDC, 0x8A,
+ 0xD9, 0xF1, 0xB7, 0xB3, 0xF6, 0xF5, 0xDF, 0xBD,
+ 0x96, 0x2A, 0x33, 0x59, 0x2B, 0x42, 0xDE, 0x85,
+ 0x6D, 0x42, 0x1E, 0x29, 0x12, 0xBA, 0xB8, 0x6B
+ },
+ {
+ 0xE2, 0xF2, 0x06, 0x60, 0x37, 0x6F, 0x2B, 0x18,
+ 0x39, 0x66, 0x7C, 0xBF, 0xE5, 0xE1, 0x6E, 0xF0,
+ 0x75, 0xAC, 0x39, 0x43, 0x64, 0x4F, 0x35, 0x32,
+ 0x28, 0x2F, 0x8B, 0xB0, 0x72, 0x3B, 0x99, 0x86
+ },
+ {
+ 0xAB, 0xF8, 0x4C, 0x91, 0x3A, 0x83, 0xDF, 0x98,
+ 0xC7, 0x00, 0x29, 0x81, 0x9C, 0x06, 0x5F, 0x6D,
+ 0x6D, 0xE4, 0xF6, 0xD4, 0x3A, 0xBF, 0x60, 0x0D,
+ 0xAD, 0xE0, 0x35, 0xB2, 0x3B, 0xED, 0x7B, 0xAA
+ },
+ {
+ 0x45, 0x9C, 0x15, 0xD4, 0x85, 0x6C, 0x7E, 0xCF,
+ 0x82, 0x62, 0x03, 0x51, 0xC3, 0xC1, 0xC7, 0x6C,
+ 0x40, 0x3F, 0x3E, 0x97, 0x07, 0x74, 0x13, 0x87,
+ 0xE2, 0x99, 0x07, 0x3F, 0xB1, 0x70, 0x4B, 0x2B
+ },
+ {
+ 0x9A, 0xB9, 0x12, 0xED, 0xA0, 0x76, 0x8A, 0xBD,
+ 0xF8, 0x26, 0xB6, 0xE0, 0x5D, 0x0D, 0x73, 0x58,
+ 0x39, 0xE6, 0xA5, 0xF0, 0x2E, 0x04, 0xC4, 0xCC,
+ 0x75, 0x65, 0x0B, 0x2C, 0x8C, 0xAB, 0x67, 0x49
+ },
+ {
+ 0x47, 0x40, 0xEB, 0xEC, 0xAC, 0x90, 0x03, 0x1B,
+ 0xB7, 0xE6, 0x8E, 0x51, 0xC5, 0x53, 0x91, 0xAF,
+ 0xB1, 0x89, 0xB3, 0x17, 0xF2, 0xDE, 0x55, 0x87,
+ 0x66, 0xF7, 0x8F, 0x5C, 0xB7, 0x1F, 0x81, 0xB6
+ },
+ {
+ 0x3C, 0xC4, 0x7F, 0x0E, 0xF6, 0x48, 0x21, 0x58,
+ 0x7C, 0x93, 0x7C, 0xDD, 0xBA, 0x85, 0xC9, 0x93,
+ 0xD3, 0xCE, 0x2D, 0xD0, 0xCE, 0xD4, 0x0D, 0x3B,
+ 0xE3, 0x3C, 0xB7, 0xDC, 0x7E, 0xDA, 0xBC, 0xF1
+ },
+ {
+ 0x9F, 0x47, 0x6A, 0x22, 0xDB, 0x54, 0xD6, 0xBB,
+ 0x9B, 0xEF, 0xDB, 0x26, 0x0C, 0x66, 0x57, 0x8A,
+ 0xE1, 0xD8, 0xA5, 0xF8, 0x7D, 0x3D, 0x8C, 0x01,
+ 0x7F, 0xDB, 0x74, 0x75, 0x08, 0x0F, 0xA8, 0xE1
+ },
+ {
+ 0x8B, 0x68, 0xC6, 0xFB, 0x07, 0x06, 0xA7, 0x95,
+ 0xF3, 0xA8, 0x39, 0xD6, 0xFE, 0x25, 0xFD, 0x4A,
+ 0xA7, 0xF9, 0x2E, 0x66, 0x4F, 0x76, 0x2D, 0x61,
+ 0x53, 0x81, 0xBC, 0x85, 0x9A, 0xFA, 0x29, 0x2C
+ },
+ {
+ 0xF6, 0x40, 0xD2, 0x25, 0xA6, 0xBC, 0xD2, 0xFC,
+ 0x8A, 0xCC, 0xAF, 0xBE, 0xD5, 0xA8, 0x4B, 0x5B,
+ 0xBB, 0x5D, 0x8A, 0xE5, 0xDB, 0x06, 0xA1, 0x0B,
+ 0x6D, 0x9D, 0x93, 0x16, 0x0B, 0x39, 0x2E, 0xE0
+ },
+ {
+ 0x70, 0x48, 0x60, 0xA7, 0xF5, 0xBA, 0x68, 0xDB,
+ 0x27, 0x03, 0x1C, 0x15, 0xF2, 0x25, 0x50, 0x0D,
+ 0x69, 0x2A, 0xB2, 0x47, 0x53, 0x42, 0x81, 0xC4,
+ 0xF6, 0x84, 0xF6, 0xC6, 0xC8, 0xCD, 0x88, 0xC7
+ },
+ {
+ 0xC1, 0xA7, 0x5B, 0xDD, 0xA1, 0x2B, 0x8B, 0x2A,
+ 0xB1, 0xB9, 0x24, 0x84, 0x38, 0x58, 0x18, 0x3A,
+ 0x09, 0xD2, 0x02, 0x42, 0x1F, 0xDB, 0xCD, 0xF0,
+ 0xE6, 0x3E, 0xAE, 0x46, 0xF3, 0x7D, 0x91, 0xED
+ },
+ {
+ 0x9A, 0x8C, 0xAB, 0x7A, 0x5F, 0x2E, 0x57, 0x62,
+ 0x21, 0xA6, 0xA8, 0x5E, 0x5F, 0xDD, 0xEE, 0x75,
+ 0x67, 0x8E, 0x06, 0x53, 0x24, 0xA6, 0x1D, 0xB0,
+ 0x3A, 0x39, 0x26, 0x1D, 0xDF, 0x75, 0xE3, 0xF4
+ },
+ {
+ 0x05, 0xC2, 0xB2, 0x6B, 0x03, 0xCE, 0x6C, 0xA5,
+ 0x87, 0x1B, 0xE0, 0xDE, 0x84, 0xEE, 0x27, 0x86,
+ 0xA7, 0x9B, 0xCD, 0x9F, 0x30, 0x03, 0x3E, 0x81,
+ 0x9B, 0x4A, 0x87, 0xCC, 0xA2, 0x7A, 0xFC, 0x6A
+ },
+ {
+ 0xB0, 0xB0, 0x99, 0x3C, 0x6D, 0x0C, 0x6E, 0xD5,
+ 0xC3, 0x59, 0x04, 0x80, 0xF8, 0x65, 0xF4, 0x67,
+ 0xF4, 0x33, 0x1A, 0x58, 0xDD, 0x8E, 0x47, 0xBD,
+ 0x98, 0xEB, 0xBC, 0xDB, 0x8E, 0xB4, 0xF9, 0x4D
+ },
+ {
+ 0xE5, 0x7C, 0x10, 0x3C, 0xF7, 0xB6, 0xBB, 0xEB,
+ 0x8A, 0x0D, 0xC8, 0xF0, 0x48, 0x62, 0x5C, 0x3F,
+ 0x4C, 0xE4, 0xF1, 0xA5, 0xAD, 0x4D, 0x07, 0x9C,
+ 0x11, 0x87, 0xBF, 0xE9, 0xEE, 0x3B, 0x8A, 0x5F
+ },
+ {
+ 0xF1, 0x00, 0x23, 0xE1, 0x5F, 0x3B, 0x72, 0xB7,
+ 0x38, 0xAD, 0x61, 0xAE, 0x65, 0xAB, 0x9A, 0x07,
+ 0xE7, 0x77, 0x4E, 0x2D, 0x7A, 0xB0, 0x2D, 0xBA,
+ 0x4E, 0x0C, 0xAF, 0x56, 0x02, 0xC8, 0x01, 0x78
+ },
+ {
+ 0x9A, 0x8F, 0xB3, 0xB5, 0x38, 0xC1, 0xD6, 0xC4,
+ 0x50, 0x51, 0xFA, 0x9E, 0xD9, 0xB0, 0x7D, 0x3E,
+ 0x89, 0xB4, 0x43, 0x03, 0x30, 0x01, 0x4A, 0x1E,
+ 0xFA, 0x28, 0x23, 0xC0, 0x82, 0x3C, 0xF2, 0x37
+ },
+ {
+ 0x30, 0x75, 0xC5, 0xBC, 0x7C, 0x3A, 0xD7, 0xE3,
+ 0x92, 0x01, 0x01, 0xBC, 0x68, 0x99, 0xC5, 0x8E,
+ 0xA7, 0x01, 0x67, 0xA7, 0x77, 0x2C, 0xA2, 0x8E,
+ 0x38, 0xE2, 0xC1, 0xB0, 0xD3, 0x25, 0xE5, 0xA0
+ },
+ {
+ 0xE8, 0x55, 0x94, 0x70, 0x0E, 0x39, 0x22, 0xA1,
+ 0xE8, 0xE4, 0x1E, 0xB8, 0xB0, 0x64, 0xE7, 0xAC,
+ 0x6D, 0x94, 0x9D, 0x13, 0xB5, 0xA3, 0x45, 0x23,
+ 0xE5, 0xA6, 0xBE, 0xAC, 0x03, 0xC8, 0xAB, 0x29
+ },
+ {
+ 0x1D, 0x37, 0x01, 0xA5, 0x66, 0x1B, 0xD3, 0x1A,
+ 0xB2, 0x05, 0x62, 0xBD, 0x07, 0xB7, 0x4D, 0xD1,
+ 0x9A, 0xC8, 0xF3, 0x52, 0x4B, 0x73, 0xCE, 0x7B,
+ 0xC9, 0x96, 0xB7, 0x88, 0xAF, 0xD2, 0xF3, 0x17
+ },
+ {
+ 0x87, 0x4E, 0x19, 0x38, 0x03, 0x3D, 0x7D, 0x38,
+ 0x35, 0x97, 0xA2, 0xA6, 0x5F, 0x58, 0xB5, 0x54,
+ 0xE4, 0x11, 0x06, 0xF6, 0xD1, 0xD5, 0x0E, 0x9B,
+ 0xA0, 0xEB, 0x68, 0x5F, 0x6B, 0x6D, 0xA0, 0x71
+ },
+ {
+ 0x93, 0xF2, 0xF3, 0xD6, 0x9B, 0x2D, 0x36, 0x52,
+ 0x95, 0x56, 0xEC, 0xCA, 0xF9, 0xF9, 0x9A, 0xDB,
+ 0xE8, 0x95, 0xE1, 0x57, 0x22, 0x31, 0xE6, 0x49,
+ 0xB5, 0x05, 0x84, 0xB5, 0xD7, 0xD0, 0x8A, 0xF8
+ },
+ {
+ 0x06, 0xE0, 0x6D, 0x61, 0x0F, 0x2E, 0xEB, 0xBA,
+ 0x36, 0x76, 0x82, 0x3E, 0x77, 0x44, 0xD7, 0x51,
+ 0xAF, 0xF7, 0x30, 0x76, 0xED, 0x65, 0xF3, 0xCF,
+ 0xF5, 0xE7, 0x2F, 0xD2, 0x27, 0x99, 0x9C, 0x77
+ },
+ {
+ 0x8D, 0xF7, 0x57, 0xB3, 0xA1, 0xE0, 0xF4, 0x80,
+ 0xFA, 0x76, 0xC7, 0xF3, 0x58, 0xED, 0x03, 0x98,
+ 0xBE, 0x3F, 0x2A, 0x8F, 0x7B, 0x90, 0xEA, 0x8C,
+ 0x80, 0x75, 0x99, 0xDE, 0xDA, 0x1D, 0x05, 0x34
+ },
+ {
+ 0xEE, 0xC9, 0xC5, 0xC6, 0x3C, 0xC5, 0x16, 0x9D,
+ 0x96, 0x7B, 0xB1, 0x62, 0x4E, 0x9E, 0xE5, 0xCE,
+ 0xD9, 0x28, 0x97, 0x73, 0x6E, 0xFB, 0xD1, 0x57,
+ 0x54, 0x8D, 0x82, 0xE8, 0x7C, 0xC7, 0x2F, 0x25
+ },
+ {
+ 0xCC, 0x2B, 0x58, 0x32, 0xAD, 0x27, 0x2C, 0xC5,
+ 0x5C, 0x10, 0xD4, 0xF8, 0xC7, 0xF8, 0xBB, 0x38,
+ 0xE6, 0xE4, 0xEB, 0x92, 0x2F, 0x93, 0x86, 0x83,
+ 0x0F, 0x90, 0xB1, 0xE3, 0xDA, 0x39, 0x37, 0xD5
+ },
+ {
+ 0x36, 0x89, 0x85, 0xD5, 0x38, 0x7C, 0x0B, 0xFC,
+ 0x92, 0x8A, 0xC2, 0x54, 0xFA, 0x6D, 0x16, 0x67,
+ 0x3E, 0x70, 0x94, 0x75, 0x66, 0x96, 0x1B, 0x5F,
+ 0xB3, 0x32, 0x5A, 0x58, 0x8A, 0xB3, 0x17, 0x3A
+ },
+ {
+ 0xF1, 0xE4, 0x42, 0xAF, 0xB8, 0x72, 0x15, 0x1F,
+ 0x81, 0x34, 0x95, 0x6C, 0x54, 0x8A, 0xE3, 0x24,
+ 0x0D, 0x07, 0xE6, 0xE3, 0x38, 0xD4, 0xA7, 0xA6,
+ 0xAF, 0x8D, 0xA4, 0x11, 0x9A, 0xB0, 0xE2, 0xB0
+ },
+ {
+ 0xB0, 0x12, 0xC7, 0x54, 0x6A, 0x39, 0xC4, 0x0C,
+ 0xAD, 0xEC, 0xE4, 0xE0, 0x4E, 0x7F, 0x33, 0xC5,
+ 0x93, 0xAD, 0x18, 0x2E, 0xBC, 0x5A, 0x46, 0xD2,
+ 0xDB, 0xF4, 0xAD, 0x1A, 0x92, 0xF5, 0x9E, 0x7B
+ },
+ {
+ 0x6C, 0x60, 0x97, 0xCD, 0x20, 0x33, 0x09, 0x6B,
+ 0x4D, 0xF3, 0x17, 0xDE, 0x8A, 0x90, 0x8B, 0x7D,
+ 0x0C, 0x72, 0x94, 0x39, 0x0C, 0x5A, 0x39, 0x9C,
+ 0x30, 0x1B, 0xF2, 0xA2, 0x65, 0x2E, 0x82, 0x62
+ },
+ {
+ 0xBA, 0x83, 0xFE, 0xB5, 0x10, 0xB4, 0x9A, 0xDE,
+ 0x4F, 0xAE, 0xFB, 0xE9, 0x42, 0x78, 0x1E, 0xAF,
+ 0xD4, 0x1A, 0xD5, 0xD4, 0x36, 0x88, 0x85, 0x31,
+ 0xB6, 0x88, 0x59, 0xF2, 0x2C, 0x2D, 0x16, 0x4A
+ },
+ {
+ 0x5A, 0x06, 0x9E, 0x43, 0x92, 0x19, 0x5A, 0xC9,
+ 0xD2, 0x84, 0xA4, 0x7F, 0x3B, 0xD8, 0x54, 0xAF,
+ 0x8F, 0xD0, 0xD7, 0xFD, 0xC3, 0x48, 0x3D, 0x2C,
+ 0x5F, 0x34, 0x24, 0xCC, 0xFD, 0xA1, 0x5C, 0x8E
+ },
+ {
+ 0x7E, 0x88, 0xD6, 0x4B, 0xBB, 0xE2, 0x02, 0x4F,
+ 0x44, 0x54, 0xBA, 0x13, 0x98, 0xB3, 0xD8, 0x65,
+ 0x2D, 0xCE, 0xC8, 0x20, 0xB1, 0x4C, 0x3B, 0x0A,
+ 0xBF, 0xBF, 0x0F, 0x4F, 0x33, 0x06, 0xBB, 0x5E
+ },
+ {
+ 0xF8, 0x74, 0x2F, 0xF4, 0x6D, 0xFD, 0xF3, 0xEC,
+ 0x82, 0x64, 0xF9, 0x94, 0x5B, 0x20, 0x41, 0x94,
+ 0x62, 0xF0, 0x69, 0xE8, 0x33, 0xC5, 0x94, 0xEC,
+ 0x80, 0xFF, 0xAC, 0x5E, 0x7E, 0x51, 0x34, 0xF9
+ },
+ {
+ 0xD3, 0xE0, 0xB7, 0x38, 0xD2, 0xE9, 0x2F, 0x3C,
+ 0x47, 0xC7, 0x94, 0x66, 0x66, 0x09, 0xC0, 0xF5,
+ 0x50, 0x4F, 0x67, 0xEC, 0x4E, 0x76, 0x0E, 0xEE,
+ 0xCC, 0xF8, 0x64, 0x4E, 0x68, 0x33, 0x34, 0x11
+ },
+ {
+ 0x0C, 0x90, 0xCE, 0x10, 0xED, 0xF0, 0xCE, 0x1D,
+ 0x47, 0xEE, 0xB5, 0x0B, 0x5B, 0x7A, 0xFF, 0x8E,
+ 0xE8, 0xA4, 0x3B, 0x64, 0xA8, 0x89, 0xC1, 0xC6,
+ 0xC6, 0xB8, 0xE3, 0x1A, 0x3C, 0xFC, 0x45, 0xEE
+ },
+ {
+ 0x83, 0x91, 0x7A, 0xC1, 0xCD, 0xAD, 0xE8, 0xF0,
+ 0xE3, 0xBF, 0x42, 0x6F, 0xEA, 0xC1, 0x38, 0x8B,
+ 0x3F, 0xCB, 0xE3, 0xE1, 0xBF, 0x98, 0x79, 0x8C,
+ 0x81, 0x58, 0xBF, 0x75, 0x8E, 0x8D, 0x5D, 0x4E
+ },
+ {
+ 0xDC, 0x8E, 0xB0, 0xC0, 0x13, 0xFA, 0x9D, 0x06,
+ 0x4E, 0xE3, 0x76, 0x23, 0x36, 0x9F, 0xB3, 0x94,
+ 0xAF, 0x97, 0x4B, 0x1A, 0xAC, 0x82, 0x40, 0x5B,
+ 0x88, 0x97, 0x6C, 0xD8, 0xFC, 0xA1, 0x25, 0x30
+ },
+ {
+ 0x9A, 0xF4, 0xFC, 0x92, 0xEA, 0x8D, 0x6B, 0x5F,
+ 0xE7, 0x99, 0x0E, 0x3A, 0x02, 0x70, 0x1E, 0xC2,
+ 0x2B, 0x2D, 0xFD, 0x71, 0x00, 0xB9, 0x0D, 0x05,
+ 0x51, 0x86, 0x94, 0x17, 0x95, 0x5E, 0x44, 0xC8
+ },
+ {
+ 0xC7, 0x22, 0xCE, 0xC1, 0x31, 0xBA, 0xA1, 0x63,
+ 0xF4, 0x7E, 0x4B, 0x33, 0x9E, 0x1F, 0xB9, 0xB4,
+ 0xAC, 0xA2, 0x48, 0xC4, 0x75, 0x93, 0x45, 0xEA,
+ 0xDB, 0xD6, 0xC6, 0xA7, 0xDD, 0xB5, 0x04, 0x77
+ },
+ {
+ 0x18, 0x37, 0xB1, 0x20, 0xD4, 0xE4, 0x04, 0x6C,
+ 0x6D, 0xE8, 0xCC, 0xAF, 0x09, 0xF1, 0xCA, 0xF3,
+ 0x02, 0xAD, 0x56, 0x23, 0x4E, 0x6B, 0x42, 0x2C,
+ 0xE9, 0x0A, 0x61, 0xBF, 0x06, 0xAE, 0xE4, 0x3D
+ },
+ {
+ 0x87, 0xAC, 0x9D, 0x0F, 0x8A, 0x0B, 0x11, 0xBF,
+ 0xED, 0xD6, 0x99, 0x1A, 0x6D, 0xAF, 0x34, 0xC8,
+ 0xAA, 0x5D, 0x7E, 0x8A, 0xE1, 0xB9, 0xDF, 0x4A,
+ 0xF7, 0x38, 0x00, 0x5F, 0xE7, 0x8C, 0xE9, 0x3C
+ },
+ {
+ 0xE2, 0x1F, 0xB6, 0x68, 0xEB, 0xB8, 0xBF, 0x2D,
+ 0x82, 0x08, 0x6D, 0xED, 0xCB, 0x3A, 0x53, 0x71,
+ 0xC2, 0xC4, 0x6F, 0xA1, 0xAC, 0x11, 0xD2, 0xE2,
+ 0xC5, 0x66, 0xD1, 0x4A, 0xD3, 0xC3, 0x65, 0x3F
+ },
+ {
+ 0x5A, 0x9A, 0x69, 0x81, 0x5E, 0x4D, 0x3E, 0xB7,
+ 0x72, 0xED, 0x90, 0x8F, 0xE6, 0x58, 0xCE, 0x50,
+ 0x87, 0x31, 0x0E, 0xC1, 0xD5, 0x0C, 0xB9, 0x4F,
+ 0x56, 0x28, 0x33, 0x9A, 0x61, 0xDC, 0xD9, 0xEE
+ },
+ {
+ 0xAA, 0xC2, 0x85, 0xF1, 0x20, 0x8F, 0x70, 0xA6,
+ 0x47, 0x97, 0xD0, 0xA9, 0x40, 0x0D, 0xA6, 0x46,
+ 0x53, 0x30, 0x18, 0x38, 0xFE, 0xF6, 0x69, 0x0B,
+ 0x87, 0xCD, 0xA9, 0x15, 0x9E, 0xE0, 0x7E, 0xF4
+ },
+ {
+ 0x05, 0x64, 0x3C, 0x1C, 0x6F, 0x26, 0x59, 0x25,
+ 0xA6, 0x50, 0x93, 0xF9, 0xDE, 0x8A, 0x19, 0x1C,
+ 0x4F, 0x6F, 0xD1, 0x41, 0x8F, 0xBF, 0x66, 0xBE,
+ 0x80, 0x59, 0xA9, 0x1B, 0xA8, 0xDC, 0xDA, 0x61
+ },
+ {
+ 0x1C, 0x6C, 0xDE, 0x5B, 0x78, 0x10, 0x3C, 0x9E,
+ 0x6F, 0x04, 0x6D, 0xFE, 0x30, 0xF5, 0x12, 0x1C,
+ 0xF9, 0xD4, 0x03, 0x9E, 0xFE, 0x22, 0x25, 0x40,
+ 0xA4, 0x1B, 0xBC, 0x06, 0xE4, 0x69, 0xFE, 0xB6
+ },
+ {
+ 0xB4, 0x9B, 0xB4, 0x6D, 0x1B, 0x19, 0x3B, 0x04,
+ 0x5E, 0x74, 0x12, 0x05, 0x9F, 0xE7, 0x2D, 0x55,
+ 0x25, 0x52, 0xA8, 0xFB, 0x6C, 0x36, 0x41, 0x07,
+ 0x23, 0xDC, 0x7D, 0x05, 0xFC, 0xCE, 0xDE, 0xD3
+ },
+ {
+ 0xB6, 0x12, 0xD3, 0xD2, 0x1F, 0xC4, 0xDE, 0x3C,
+ 0x79, 0x1A, 0xF7, 0x35, 0xE5, 0x9F, 0xB7, 0x17,
+ 0xD8, 0x39, 0x72, 0x3B, 0x42, 0x50, 0x8E, 0x9E,
+ 0xBF, 0x78, 0x06, 0xD9, 0x3E, 0x9C, 0x83, 0x7F
+ },
+ {
+ 0x7C, 0x33, 0x90, 0xA3, 0xE5, 0xCB, 0x27, 0xD1,
+ 0x86, 0x8B, 0xA4, 0x55, 0xCF, 0xEB, 0x32, 0x22,
+ 0xFD, 0xE2, 0x7B, 0xCD, 0xA4, 0xBF, 0x24, 0x8E,
+ 0x3D, 0x29, 0xCF, 0x1F, 0x34, 0x32, 0x9F, 0x25
+ },
+ {
+ 0xBD, 0x42, 0xEE, 0xA7, 0xB3, 0x54, 0x86, 0xCD,
+ 0xD0, 0x90, 0x7C, 0xB4, 0x71, 0x2E, 0xDE, 0x2F,
+ 0x4D, 0xEE, 0xCC, 0xBC, 0xA1, 0x91, 0x60, 0x38,
+ 0x65, 0xA1, 0xCC, 0x80, 0x9F, 0x12, 0xB4, 0x46
+ },
+ {
+ 0xD1, 0xDD, 0x62, 0x01, 0x74, 0x0C, 0xFA, 0xAD,
+ 0x53, 0xCE, 0xCC, 0xB7, 0x56, 0xB1, 0x10, 0xF3,
+ 0xD5, 0x0F, 0x81, 0x7B, 0x43, 0xD7, 0x55, 0x95,
+ 0x57, 0xE5, 0x7A, 0xAD, 0x14, 0x3A, 0x85, 0xD9
+ },
+ {
+ 0x58, 0x29, 0x64, 0x3C, 0x1B, 0x10, 0xE1, 0xC8,
+ 0xCC, 0xF2, 0x0C, 0x9B, 0x4A, 0xF8, 0x21, 0xEA,
+ 0x05, 0x2D, 0x7F, 0x0F, 0x7C, 0x22, 0xF7, 0x38,
+ 0x0B, 0xBB, 0xCF, 0xAF, 0xB9, 0x77, 0xE2, 0x1F
+ },
+ {
+ 0xFC, 0x4C, 0xF2, 0xA7, 0xFB, 0xE0, 0xB1, 0xE8,
+ 0xAE, 0xFB, 0xE4, 0xB4, 0xB7, 0x9E, 0xD8, 0x4E,
+ 0xC9, 0x7B, 0x03, 0x4F, 0x51, 0xB4, 0xE9, 0x7F,
+ 0x76, 0x0B, 0x20, 0x63, 0x97, 0x65, 0xB9, 0x33
+ },
+ {
+ 0x4D, 0x7C, 0x3B, 0x34, 0x38, 0xA0, 0xBD, 0xA2,
+ 0x8E, 0x7A, 0x96, 0xE4, 0x20, 0x27, 0xD8, 0x13,
+ 0xE8, 0x8A, 0xE6, 0x28, 0x85, 0x49, 0x98, 0x33,
+ 0xD3, 0xC5, 0xF6, 0x35, 0x9E, 0xF7, 0xED, 0xBC
+ },
+ {
+ 0x34, 0xCB, 0xD3, 0x20, 0x68, 0xEF, 0x7E, 0x82,
+ 0x09, 0x9E, 0x58, 0x0B, 0xF9, 0xE2, 0x64, 0x23,
+ 0xE9, 0x81, 0xE3, 0x1B, 0x1B, 0xBC, 0xE6, 0x1A,
+ 0xEA, 0xB1, 0x4C, 0x32, 0xA2, 0x73, 0xE4, 0xCB
+ },
+ {
+ 0xA0, 0x5D, 0xDA, 0x7D, 0x0D, 0xA9, 0xE0, 0x94,
+ 0xAE, 0x22, 0x53, 0x3F, 0x79, 0xE7, 0xDC, 0xCD,
+ 0x26, 0xB1, 0x75, 0x7C, 0xEF, 0xB9, 0x5B, 0xCF,
+ 0x62, 0xC4, 0xFF, 0x9C, 0x26, 0x92, 0xE1, 0xC0
+ },
+ {
+ 0x22, 0x4C, 0xCF, 0xFA, 0x7C, 0xCA, 0x4C, 0xE3,
+ 0x4A, 0xFD, 0x47, 0xF6, 0x2A, 0xDE, 0x53, 0xC5,
+ 0xE8, 0x48, 0x9B, 0x04, 0xAC, 0x9C, 0x41, 0xF7,
+ 0xFA, 0xD0, 0xC8, 0xED, 0xEB, 0x89, 0xE9, 0x41
+ },
+ {
+ 0x6B, 0xC6, 0x07, 0x64, 0x83, 0xAA, 0x11, 0xC0,
+ 0x7F, 0xBA, 0x55, 0xC0, 0xF9, 0xA1, 0xB5, 0xDA,
+ 0x87, 0xEC, 0xBF, 0xFE, 0xA7, 0x55, 0x98, 0xCC,
+ 0x31, 0x8A, 0x51, 0x4C, 0xEC, 0x7B, 0x3B, 0x6A
+ },
+ {
+ 0x9A, 0x03, 0x60, 0xE2, 0x3A, 0x22, 0xF4, 0xF7,
+ 0x6C, 0x0E, 0x95, 0x28, 0xDA, 0xFD, 0x12, 0x9B,
+ 0xB4, 0x67, 0x5F, 0xB8, 0x8D, 0x44, 0xEA, 0xF8,
+ 0x57, 0x77, 0x30, 0x0C, 0xEC, 0x9B, 0xCC, 0x79
+ },
+ {
+ 0x79, 0x01, 0x99, 0xB4, 0xCA, 0x90, 0xDE, 0xDC,
+ 0xCF, 0xE3, 0x24, 0x74, 0xE8, 0x5B, 0x17, 0x4F,
+ 0x06, 0x9E, 0x35, 0x42, 0xBE, 0x31, 0x04, 0xC1,
+ 0x12, 0x5C, 0x2F, 0xDB, 0xD6, 0x9D, 0x32, 0xC7
+ },
+ {
+ 0x55, 0x83, 0x99, 0x25, 0x83, 0x4C, 0xA3, 0xE8,
+ 0x25, 0xE9, 0x92, 0x41, 0x87, 0x4D, 0x16, 0xD6,
+ 0xC2, 0x62, 0x36, 0x29, 0xC4, 0xC2, 0xAD, 0xDD,
+ 0xF0, 0xDB, 0xA0, 0x1E, 0x6C, 0xE8, 0xA0, 0xDC
+ },
+ {
+ 0x61, 0x5F, 0xF8, 0x46, 0xD9, 0x93, 0x00, 0x7D,
+ 0x38, 0xDE, 0x1A, 0xEC, 0xB3, 0x17, 0x82, 0x89,
+ 0xDE, 0xD0, 0x9E, 0x6B, 0xB5, 0xCB, 0xD6, 0x0F,
+ 0x69, 0xC6, 0xAA, 0x36, 0x38, 0x30, 0x20, 0xF7
+ },
+ {
+ 0xF0, 0xE4, 0x0B, 0x4E, 0xD4, 0x0D, 0x34, 0x85,
+ 0x1E, 0x72, 0xB4, 0xEE, 0x4D, 0x00, 0xEA, 0x6A,
+ 0x40, 0xEA, 0x1C, 0x1B, 0xF9, 0xE5, 0xC2, 0x69,
+ 0x71, 0x0C, 0x9D, 0x51, 0xCB, 0xB8, 0xA3, 0xC9
+ },
+ {
+ 0x0B, 0x07, 0xB2, 0x33, 0x3B, 0x08, 0xD0, 0x8C,
+ 0x11, 0xCA, 0x34, 0xAB, 0x44, 0x9B, 0x71, 0xD2,
+ 0x9A, 0x0F, 0x43, 0xE1, 0xF7, 0x78, 0xE0, 0x73,
+ 0xE7, 0x90, 0x06, 0xCC, 0xB7, 0x30, 0xED, 0x62
+ },
+ {
+ 0xD1, 0xF4, 0xC2, 0x9D, 0x9F, 0x23, 0xEA, 0x35,
+ 0xEC, 0x40, 0x35, 0xB3, 0x77, 0xD5, 0x06, 0x53,
+ 0x8E, 0x72, 0x8B, 0xC7, 0x39, 0xC1, 0x45, 0x96,
+ 0x80, 0xCF, 0x1C, 0xC6, 0x94, 0x24, 0x92, 0x4D
+ },
+ {
+ 0x12, 0x79, 0xCF, 0x6F, 0x66, 0x9F, 0x92, 0xF6,
+ 0xBF, 0xC2, 0x5D, 0x60, 0x5B, 0x94, 0x40, 0xC7,
+ 0xDC, 0xCB, 0xD2, 0x5D, 0xF2, 0x8D, 0xC7, 0x35,
+ 0x3A, 0xBC, 0x1C, 0x05, 0x30, 0x40, 0x5D, 0xC4
+ },
+ {
+ 0x1F, 0xA0, 0xAF, 0x00, 0x77, 0x5D, 0xC2, 0xCE,
+ 0x76, 0x50, 0x6D, 0x32, 0x80, 0xF4, 0x72, 0xD2,
+ 0xF6, 0xFF, 0x97, 0xA2, 0x15, 0x1F, 0xAA, 0x82,
+ 0x79, 0x42, 0xFE, 0xA4, 0x4A, 0xD0, 0xBA, 0x1F
+ },
+ {
+ 0x3E, 0x1A, 0xD5, 0x4A, 0x5F, 0x83, 0x5B, 0x98,
+ 0x3B, 0xD2, 0xAA, 0xB0, 0xED, 0x2A, 0x4C, 0x0B,
+ 0xDD, 0x72, 0x16, 0x20, 0x9C, 0x36, 0xA7, 0x9E,
+ 0x9E, 0x2A, 0xAB, 0xB9, 0x9F, 0xAF, 0x35, 0x12
+ },
+ {
+ 0xC6, 0xED, 0x39, 0xE2, 0xD8, 0xB6, 0x36, 0xEC,
+ 0xCB, 0xA2, 0x45, 0xEF, 0x4E, 0x88, 0x64, 0xF4,
+ 0xCD, 0x94, 0x6B, 0xE2, 0x16, 0xB9, 0xBE, 0x48,
+ 0x30, 0x3E, 0x08, 0xB9, 0x2D, 0xD0, 0x94, 0x34
+ },
+ {
+ 0xE2, 0x47, 0x36, 0xC1, 0x3E, 0xCB, 0x9F, 0x36,
+ 0xA0, 0xD8, 0x29, 0xD4, 0x79, 0x8D, 0x76, 0x99,
+ 0xC1, 0x4C, 0xC6, 0x5B, 0x6D, 0xC4, 0x4E, 0xD6,
+ 0xF1, 0x0C, 0xD4, 0x85, 0x3D, 0x6E, 0x07, 0x57
+ },
+ {
+ 0x38, 0x9B, 0xE8, 0x80, 0x52, 0xA3, 0x81, 0x27,
+ 0x2C, 0x6D, 0xF7, 0x41, 0xA8, 0x8A, 0xD3, 0x49,
+ 0xB7, 0x12, 0x71, 0x84, 0x35, 0x48, 0x0A, 0x81,
+ 0x90, 0xB7, 0x04, 0x77, 0x1D, 0x2D, 0xE6, 0x37
+ },
+ {
+ 0x88, 0x9F, 0x2D, 0x57, 0x8A, 0x5D, 0xAE, 0xFD,
+ 0x34, 0x1C, 0x21, 0x09, 0x84, 0xE1, 0x26, 0xD1,
+ 0xD9, 0x6D, 0xA2, 0xDE, 0xE3, 0xC8, 0x1F, 0x7A,
+ 0x60, 0x80, 0xBF, 0x84, 0x56, 0x9B, 0x31, 0x14
+ },
+ {
+ 0xE9, 0x36, 0x09, 0x5B, 0x9B, 0x98, 0x2F, 0xFC,
+ 0x85, 0x6D, 0x2F, 0x52, 0x76, 0xA4, 0xE5, 0x29,
+ 0xEC, 0x73, 0x95, 0xDA, 0x31, 0x6D, 0x62, 0x87,
+ 0x02, 0xFB, 0x28, 0x1A, 0xDA, 0x6F, 0x38, 0x99
+ },
+ {
+ 0xEF, 0x89, 0xCE, 0x1D, 0x6F, 0x8B, 0x48, 0xEA,
+ 0x5C, 0xD6, 0xAE, 0xAB, 0x6A, 0x83, 0xD0, 0xCC,
+ 0x98, 0xC9, 0xA3, 0xA2, 0x07, 0xA1, 0x08, 0x57,
+ 0x32, 0xF0, 0x47, 0xD9, 0x40, 0x38, 0xC2, 0x88
+ },
+ {
+ 0xF9, 0x25, 0x01, 0x6D, 0x79, 0xF2, 0xAC, 0xA8,
+ 0xC4, 0x9E, 0xDF, 0xCD, 0x66, 0x21, 0xD5, 0xBE,
+ 0x3C, 0x8C, 0xEC, 0x61, 0xBD, 0x58, 0x71, 0xD8,
+ 0xC1, 0xD3, 0xA5, 0x65, 0xF3, 0x5E, 0x0C, 0x9F
+ },
+ {
+ 0x63, 0xE8, 0x63, 0x4B, 0x75, 0x7A, 0x38, 0xF9,
+ 0x2B, 0x92, 0xFD, 0x23, 0x89, 0x3B, 0xA2, 0x99,
+ 0x85, 0x3A, 0x86, 0x13, 0x67, 0x9F, 0xDF, 0x7E,
+ 0x05, 0x11, 0x09, 0x5C, 0x0F, 0x04, 0x7B, 0xCA
+ },
+ {
+ 0xCF, 0x2C, 0xCA, 0x07, 0x72, 0xB7, 0x05, 0xEB,
+ 0x57, 0xD2, 0x89, 0x43, 0xF8, 0x3D, 0x35, 0x3F,
+ 0xE2, 0x91, 0xE5, 0xB3, 0x77, 0x78, 0x0B, 0x37,
+ 0x4C, 0x8B, 0xA4, 0x66, 0x58, 0x30, 0xBE, 0x87
+ },
+ {
+ 0x46, 0xDF, 0x5B, 0x87, 0xC8, 0x0E, 0x7E, 0x40,
+ 0x74, 0xAE, 0xE6, 0x85, 0x59, 0x42, 0x47, 0x42,
+ 0x84, 0x5B, 0x9B, 0x35, 0x0F, 0x51, 0xBA, 0x55,
+ 0xB0, 0x74, 0xBB, 0xAE, 0x4C, 0x62, 0x6A, 0xAB
+ },
+ {
+ 0x65, 0x8A, 0xA4, 0xF9, 0xD2, 0xBC, 0xBD, 0x4F,
+ 0x7F, 0x8E, 0xB6, 0x3E, 0x68, 0xF5, 0x36, 0x7E,
+ 0xDB, 0xC5, 0x00, 0xA0, 0xB1, 0xFB, 0xB4, 0x1E,
+ 0x9D, 0xF1, 0x41, 0xBC, 0xBA, 0x8F, 0xCD, 0x53
+ },
+ {
+ 0xEE, 0x80, 0x55, 0x50, 0x08, 0xA7, 0x16, 0x55,
+ 0xE0, 0x81, 0x09, 0x2B, 0xBA, 0x6F, 0x67, 0x0E,
+ 0xD9, 0x8A, 0xF9, 0xA0, 0x9F, 0xB5, 0xAF, 0xB9,
+ 0x4C, 0xBC, 0x5C, 0x75, 0x48, 0x14, 0xDB, 0x4F
+ },
+ {
+ 0x2C, 0x5F, 0x9D, 0x04, 0x82, 0x20, 0xB0, 0x41,
+ 0xB6, 0xD4, 0x52, 0x4B, 0x44, 0x90, 0xCF, 0x8C,
+ 0x66, 0xFC, 0xB8, 0xE1, 0x4B, 0x0D, 0x64, 0x88,
+ 0x7A, 0xA1, 0xE4, 0x76, 0x1A, 0x60, 0x2B, 0x39
+ },
+ {
+ 0x44, 0xCB, 0x63, 0x11, 0xD0, 0x75, 0x0B, 0x7E,
+ 0x33, 0xF7, 0x33, 0x3A, 0xA7, 0x8A, 0xAC, 0xA9,
+ 0xC3, 0x4A, 0xD5, 0xF7, 0x9C, 0x1B, 0x15, 0x91,
+ 0xEC, 0x33, 0x95, 0x1E, 0x69, 0xC4, 0xC4, 0x61
+ },
+ {
+ 0x0C, 0x6C, 0xE3, 0x2A, 0x3E, 0xA0, 0x56, 0x12,
+ 0xC5, 0xF8, 0x09, 0x0F, 0x6A, 0x7E, 0x87, 0xF5,
+ 0xAB, 0x30, 0xE4, 0x1B, 0x70, 0x7D, 0xCB, 0xE5,
+ 0x41, 0x55, 0x62, 0x0A, 0xD7, 0x70, 0xA3, 0x40
+ },
+ {
+ 0xC6, 0x59, 0x38, 0xDD, 0x3A, 0x05, 0x3C, 0x72,
+ 0x9C, 0xF5, 0xB7, 0xC8, 0x9F, 0x39, 0x0B, 0xFE,
+ 0xBB, 0x51, 0x12, 0x76, 0x6B, 0xB0, 0x0A, 0xA5,
+ 0xFA, 0x31, 0x64, 0xDF, 0xDF, 0x3B, 0x56, 0x47
+ },
+ {
+ 0x7D, 0xE7, 0xF0, 0xD5, 0x9A, 0x90, 0x39, 0xAF,
+ 0xF3, 0xAA, 0xF3, 0x2C, 0x3E, 0xE5, 0x2E, 0x79,
+ 0x17, 0x53, 0x57, 0x29, 0x06, 0x21, 0x68, 0xD2,
+ 0x49, 0x0B, 0x6B, 0x6C, 0xE2, 0x44, 0xB3, 0x80
+ },
+ {
+ 0x89, 0x58, 0x98, 0xF5, 0x3A, 0x8F, 0x39, 0xE4,
+ 0x24, 0x10, 0xDA, 0x77, 0xB6, 0xC4, 0x81, 0x5B,
+ 0x0B, 0xB2, 0x39, 0x5E, 0x39, 0x22, 0xF5, 0xBE,
+ 0xD0, 0xE1, 0xFB, 0xF2, 0xA4, 0xC6, 0xDF, 0xEB
+ },
+ {
+ 0xC9, 0x05, 0xA8, 0x49, 0x84, 0x34, 0x8A, 0x64,
+ 0xDB, 0x1F, 0x54, 0x20, 0x83, 0x74, 0x8A, 0xD9,
+ 0x0A, 0x4B, 0xAD, 0x98, 0x33, 0xCB, 0x6D, 0xA3,
+ 0x87, 0x29, 0x34, 0x31, 0xF1, 0x9E, 0x7C, 0x9C
+ },
+ {
+ 0xED, 0x37, 0xD1, 0xA4, 0xD0, 0x6C, 0x90, 0xD1,
+ 0x95, 0x78, 0x48, 0x66, 0x7E, 0x95, 0x48, 0xFE,
+ 0xBB, 0x5D, 0x42, 0x3E, 0xAB, 0x4F, 0x56, 0x78,
+ 0x5C, 0xC4, 0xB5, 0x41, 0x6B, 0x78, 0x00, 0x08
+ },
+ {
+ 0x0B, 0xC6, 0x5D, 0x99, 0x97, 0xFB, 0x73, 0x4A,
+ 0x56, 0x1F, 0xB1, 0xE9, 0xF8, 0xC0, 0x95, 0x8A,
+ 0x02, 0xC7, 0xA4, 0xDB, 0xD0, 0x96, 0xEB, 0xEF,
+ 0x1A, 0x17, 0x51, 0xAE, 0xD9, 0x59, 0xEE, 0xD7
+ },
+ {
+ 0x7C, 0x5F, 0x43, 0x2E, 0xB8, 0xB7, 0x35, 0x2A,
+ 0x94, 0x94, 0xDE, 0xA4, 0xD5, 0x3C, 0x21, 0x38,
+ 0x70, 0x31, 0xCE, 0x70, 0xE8, 0x5D, 0x94, 0x08,
+ 0xFC, 0x6F, 0x8C, 0xD9, 0x8A, 0x6A, 0xAA, 0x1E
+ },
+ {
+ 0xB8, 0xBF, 0x8E, 0x2C, 0x34, 0xE0, 0x33, 0x98,
+ 0x36, 0x39, 0x90, 0x9E, 0xAA, 0x37, 0x64, 0x0D,
+ 0x87, 0x7B, 0x04, 0x8F, 0xE2, 0x99, 0xB4, 0x70,
+ 0xAF, 0x2D, 0x0B, 0xA8, 0x2A, 0x5F, 0x14, 0xC0
+ },
+ {
+ 0x88, 0xA9, 0xDD, 0x13, 0xD5, 0xDA, 0xDB, 0xDE,
+ 0xE6, 0xBF, 0xF7, 0xEE, 0x1E, 0xF8, 0xC7, 0x1C,
+ 0xC1, 0x93, 0xAA, 0x4B, 0xF3, 0xE8, 0x4F, 0x8F,
+ 0xE8, 0x0C, 0xB0, 0x75, 0x68, 0x3C, 0x07, 0x79
+ },
+ {
+ 0x9A, 0xED, 0xB8, 0x87, 0x6D, 0xD2, 0x1C, 0x8C,
+ 0x84, 0xD2, 0xE7, 0x02, 0xA1, 0x36, 0x25, 0x98,
+ 0x04, 0x62, 0xF6, 0x8B, 0xF0, 0xA1, 0xB7, 0x25,
+ 0x4A, 0xD8, 0x06, 0xC3, 0x84, 0x03, 0xC9, 0xDE
+ },
+ {
+ 0xD0, 0x97, 0x57, 0x3D, 0xF2, 0xD6, 0xB2, 0x48,
+ 0x9A, 0x47, 0x94, 0x84, 0x86, 0x98, 0x00, 0xA1,
+ 0xF8, 0x33, 0xEA, 0x16, 0x9E, 0xFF, 0x32, 0xAE,
+ 0x3C, 0xE6, 0x3A, 0x20, 0x79, 0x54, 0x8D, 0x78
+ },
+ {
+ 0xD1, 0x8F, 0x27, 0xA3, 0xE5, 0x55, 0xD7, 0xF9,
+ 0x1A, 0x00, 0x7C, 0x67, 0xAC, 0xEE, 0xDE, 0x39,
+ 0x1F, 0x75, 0xA6, 0x1F, 0xA4, 0x2A, 0x0B, 0x45,
+ 0x66, 0xEB, 0x58, 0x2C, 0xA0, 0x5E, 0xBC, 0xE7
+ },
+ {
+ 0xDF, 0x1D, 0xAA, 0x90, 0xB1, 0x70, 0x23, 0x13,
+ 0xE6, 0xA5, 0x90, 0x1C, 0x7A, 0xFC, 0x5E, 0xD9,
+ 0x65, 0x77, 0x17, 0xA7, 0x15, 0xFA, 0x53, 0xA4,
+ 0x18, 0x9E, 0xC1, 0xE5, 0xDF, 0x29, 0x3A, 0x68
+ },
+ {
+ 0x04, 0xE3, 0xA4, 0x96, 0xB6, 0x69, 0x96, 0xC6,
+ 0x6E, 0x32, 0x91, 0x9E, 0xD1, 0xF9, 0x4C, 0x36,
+ 0xEE, 0xBB, 0xF2, 0x40, 0x63, 0x3A, 0x2F, 0x73,
+ 0x98, 0x45, 0xF0, 0x29, 0x5D, 0x34, 0xAF, 0xBA
+ },
+ {
+ 0x8C, 0x45, 0xD8, 0x8C, 0x4E, 0x9C, 0x9D, 0x0C,
+ 0x8C, 0x67, 0x7F, 0xE4, 0x8F, 0xA5, 0x44, 0x9B,
+ 0xA3, 0x01, 0x78, 0xD4, 0x0A, 0xF0, 0xF0, 0x21,
+ 0x79, 0x21, 0xC6, 0x2E, 0x4B, 0x60, 0xCD, 0xD3
+ },
+ {
+ 0xE1, 0x49, 0xA6, 0xB1, 0x3B, 0xDE, 0xDE, 0xA2,
+ 0xEE, 0xEE, 0x00, 0x9C, 0xE9, 0x44, 0x5E, 0x8D,
+ 0xCF, 0x76, 0xB7, 0x6E, 0x55, 0xA5, 0x01, 0xD8,
+ 0xF5, 0xB4, 0x3F, 0xF8, 0x96, 0x79, 0x6A, 0xD1
+ },
+ {
+ 0xA8, 0x37, 0xC4, 0xC7, 0xC6, 0xF5, 0xCF, 0xB9,
+ 0x9E, 0x10, 0x85, 0xFD, 0x43, 0x28, 0x7A, 0x41,
+ 0x05, 0xCB, 0x28, 0xB7, 0x6F, 0xC3, 0x8B, 0x60,
+ 0x55, 0xC5, 0xDC, 0xFF, 0x78, 0xB8, 0x25, 0x65
+ },
+ {
+ 0x42, 0x41, 0x1F, 0x28, 0x78, 0x0B, 0x4F, 0x16,
+ 0x38, 0x54, 0x0B, 0x87, 0x05, 0x21, 0xEC, 0x45,
+ 0xBC, 0xEB, 0x1E, 0x0C, 0x71, 0x31, 0xF7, 0xE1,
+ 0xC4, 0x67, 0x2E, 0x43, 0x6C, 0x88, 0xC8, 0xE9
+ },
+ {
+ 0x34, 0xB4, 0xE8, 0x76, 0x76, 0x94, 0x71, 0xDF,
+ 0x55, 0x2E, 0x55, 0x22, 0xCE, 0xA7, 0x84, 0xFA,
+ 0x53, 0xAC, 0x61, 0xBE, 0xDE, 0x8C, 0xFE, 0x29,
+ 0x14, 0x09, 0xE6, 0x8B, 0x69, 0xE8, 0x77, 0x6F
+ },
+ {
+ 0x8F, 0x31, 0xD6, 0x37, 0xA9, 0x1D, 0xBD, 0x0E,
+ 0xCB, 0x0B, 0xA0, 0xE6, 0x94, 0xBE, 0xC1, 0x44,
+ 0x76, 0x58, 0xCE, 0x6C, 0x27, 0xEA, 0x9B, 0x95,
+ 0xFF, 0x36, 0x70, 0x1C, 0xAF, 0x36, 0xF0, 0x01
+ },
+ {
+ 0xB5, 0xC8, 0x95, 0xEB, 0x07, 0x1E, 0x3D, 0x38,
+ 0x52, 0x8D, 0x47, 0x5D, 0x3B, 0xB0, 0xBA, 0x88,
+ 0xB7, 0x17, 0x95, 0xE4, 0x0A, 0x98, 0x2E, 0x2A,
+ 0xC2, 0xD8, 0x44, 0x22, 0xA0, 0xF2, 0x68, 0x5D
+ },
+ {
+ 0xE9, 0x06, 0x25, 0x7C, 0x41, 0x9D, 0x94, 0x1E,
+ 0xD2, 0xB8, 0xA9, 0xC1, 0x27, 0x81, 0xDB, 0x97,
+ 0x59, 0xA3, 0xFC, 0xF3, 0xDC, 0x7C, 0xDB, 0x03,
+ 0x15, 0x99, 0xE1, 0x08, 0x6B, 0x67, 0x2F, 0x10
+ },
+ {
+ 0x98, 0xAD, 0x24, 0x39, 0x7C, 0x6E, 0xAE, 0x4C,
+ 0xF7, 0x3E, 0xA8, 0xBB, 0xEF, 0x5A, 0x0B, 0x74,
+ 0xD2, 0x1A, 0xD1, 0x5F, 0x33, 0x92, 0x0F, 0x44,
+ 0x07, 0x0A, 0x98, 0xBD, 0xF5, 0x3D, 0x0B, 0x3A
+ },
+ {
+ 0xDD, 0x51, 0x0C, 0xA5, 0x5B, 0x11, 0x70, 0xF9,
+ 0xCE, 0xFD, 0xBB, 0x16, 0xFC, 0x14, 0x52, 0x62,
+ 0xAA, 0x36, 0x3A, 0x87, 0x0A, 0x01, 0xE1, 0xBC,
+ 0x4F, 0xBE, 0x40, 0x23, 0x4B, 0x4B, 0x6F, 0x2F
+ },
+ {
+ 0xF2, 0xD8, 0xD9, 0x31, 0xB9, 0x2E, 0x1C, 0xB6,
+ 0x98, 0xE5, 0x6E, 0xD0, 0x28, 0x19, 0xEA, 0x11,
+ 0xD2, 0x66, 0x19, 0xB8, 0x3A, 0x62, 0x09, 0xAD,
+ 0x67, 0x22, 0x53, 0x68, 0xFE, 0x11, 0x95, 0x71
+ },
+ {
+ 0xE4, 0x63, 0x70, 0x55, 0xDB, 0x91, 0xF9, 0x43,
+ 0x7C, 0xF4, 0x60, 0xEF, 0x40, 0xB5, 0x14, 0x5F,
+ 0x69, 0x98, 0x26, 0x6A, 0x5E, 0x74, 0xE9, 0x6A,
+ 0x00, 0x78, 0x2C, 0x62, 0xCF, 0x30, 0xCF, 0x1C
+ },
+ {
+ 0x35, 0x63, 0x53, 0x0A, 0x89, 0xD3, 0x2B, 0x75,
+ 0xF7, 0x8D, 0x83, 0xE9, 0x87, 0x2A, 0xD4, 0xC5,
+ 0x75, 0xF5, 0x20, 0x39, 0x9D, 0x65, 0x03, 0x5D,
+ 0xED, 0x99, 0xE5, 0xEE, 0xC5, 0x80, 0x71, 0x50
+ },
+ {
+ 0x8E, 0x79, 0xF9, 0x2C, 0x86, 0x5B, 0xEB, 0x3E,
+ 0x1C, 0xDB, 0xF0, 0x8F, 0x75, 0x4A, 0x26, 0x06,
+ 0xE8, 0x53, 0x49, 0x05, 0x3D, 0x66, 0xD6, 0x16,
+ 0x02, 0x4A, 0x81, 0x3F, 0xCA, 0x54, 0x1A, 0x4D
+ },
+ {
+ 0x86, 0x42, 0x26, 0xF2, 0x83, 0x9C, 0x76, 0xB1,
+ 0xD5, 0xF7, 0xC1, 0x3D, 0x98, 0xC2, 0xA5, 0x15,
+ 0x8C, 0x2A, 0xBB, 0x71, 0xD9, 0xD8, 0xF0, 0xFA,
+ 0x1F, 0x7C, 0x3F, 0x74, 0x68, 0x00, 0x16, 0x03
+ },
+ {
+ 0xD3, 0xE3, 0xF5, 0xB8, 0xCE, 0xEB, 0xB1, 0x11,
+ 0x84, 0x80, 0x35, 0x35, 0x90, 0x0B, 0x6E, 0xED,
+ 0xDA, 0x60, 0x6E, 0xEB, 0x36, 0x97, 0x51, 0xA7,
+ 0xCD, 0xA3, 0x6C, 0xA3, 0x02, 0x29, 0xFB, 0x02
+ },
+ {
+ 0x8C, 0x7D, 0x6B, 0x98, 0x72, 0x69, 0x16, 0x90,
+ 0x31, 0xF7, 0x1F, 0xD7, 0xE4, 0xC4, 0x45, 0x01,
+ 0x2D, 0x3E, 0x6A, 0x3C, 0x88, 0x09, 0xF6, 0x47,
+ 0x9B, 0xD6, 0x67, 0xCF, 0x31, 0x1E, 0x27, 0x6E
+ },
+ {
+ 0xB9, 0x04, 0xB5, 0x71, 0x1B, 0xF1, 0x9E, 0x85,
+ 0x32, 0xF7, 0xAD, 0x64, 0x27, 0x41, 0x0A, 0x62,
+ 0xA1, 0xF7, 0x7F, 0x77, 0xB9, 0xB6, 0xD7, 0x1D,
+ 0x2F, 0xC4, 0x3B, 0xC9, 0x0F, 0x73, 0x23, 0x5A
+ },
+ {
+ 0x45, 0x36, 0x63, 0x43, 0x15, 0xC8, 0x67, 0x28,
+ 0xF5, 0xAB, 0x74, 0x49, 0xEB, 0x2D, 0x04, 0x02,
+ 0x0E, 0x9E, 0xAE, 0x8D, 0xD6, 0x79, 0x55, 0x00,
+ 0xE9, 0xEC, 0x9A, 0x00, 0x66, 0x38, 0x6E, 0x69
+ },
+ {
+ 0xFD, 0x5E, 0x49, 0xFE, 0xD4, 0x9D, 0xC4, 0x4B,
+ 0xDE, 0x89, 0xF4, 0x60, 0xA9, 0x50, 0x19, 0x1E,
+ 0xBB, 0x06, 0x7C, 0x69, 0x8A, 0x3F, 0x21, 0xEA,
+ 0x14, 0x30, 0x8C, 0x74, 0x13, 0xB9, 0x16, 0x81
+ },
+ {
+ 0x31, 0xF0, 0x1D, 0x03, 0x0B, 0x9B, 0x22, 0xD0,
+ 0x0A, 0x0F, 0x71, 0xED, 0x2C, 0xEB, 0x5D, 0x2D,
+ 0xC8, 0x1A, 0xF2, 0xC2, 0x4B, 0xF5, 0x67, 0x0F,
+ 0xDE, 0x19, 0xA6, 0x85, 0xE8, 0xD1, 0x39, 0x2E
+ },
+ {
+ 0x5F, 0x84, 0xD9, 0xDE, 0x28, 0x4B, 0x1E, 0x4F,
+ 0x67, 0x8E, 0x31, 0xAB, 0x6A, 0x76, 0xF5, 0x66,
+ 0x1B, 0x5A, 0xEA, 0xA7, 0x68, 0x53, 0x93, 0x84,
+ 0xAA, 0x38, 0xF9, 0xE4, 0x9C, 0xCE, 0x6E, 0x6E
+ },
+ {
+ 0xB2, 0x07, 0x9E, 0x59, 0x97, 0xA4, 0xEA, 0xD3,
+ 0xA7, 0x1F, 0xEF, 0xC0, 0x2F, 0x90, 0xA7, 0x48,
+ 0x3A, 0x10, 0xFD, 0x2E, 0x6F, 0x31, 0xBD, 0xA9,
+ 0xD2, 0x08, 0x44, 0x85, 0xCC, 0x01, 0x6B, 0xBD
+ },
+ {
+ 0xE0, 0xF8, 0x4D, 0x7F, 0x52, 0x5B, 0x6F, 0xED,
+ 0x79, 0x1F, 0x77, 0x28, 0x9A, 0xE5, 0x8F, 0x7D,
+ 0x50, 0xA2, 0x94, 0x32, 0xD4, 0x2C, 0x25, 0xC1,
+ 0xE8, 0x39, 0x29, 0xB8, 0x38, 0x89, 0x1D, 0x79
+ },
+ {
+ 0x70, 0x46, 0x96, 0x90, 0x95, 0x6D, 0x79, 0x18,
+ 0xAC, 0xE7, 0xBA, 0x5F, 0x41, 0x30, 0x2D, 0xA1,
+ 0x38, 0xC9, 0xB5, 0x6E, 0xCD, 0x41, 0x55, 0x44,
+ 0xFA, 0xCE, 0x8D, 0x99, 0x8C, 0x21, 0xAB, 0xEB
+ },
+ {
+ 0x45, 0xC9, 0x1A, 0x62, 0x24, 0x9B, 0x39, 0xCD,
+ 0xA9, 0x4E, 0x50, 0x82, 0x95, 0xBE, 0xC7, 0x66,
+ 0x71, 0x19, 0x44, 0x77, 0x65, 0xEF, 0x80, 0xEF,
+ 0xA8, 0x2D, 0x1E, 0x92, 0xD5, 0x70, 0x67, 0xD8
+ },
+ {
+ 0x1D, 0x9E, 0x00, 0x73, 0xEE, 0xD0, 0x73, 0x15,
+ 0x54, 0xC3, 0xBE, 0xAA, 0x47, 0x46, 0x0D, 0x51,
+ 0x1A, 0xD2, 0x61, 0xDD, 0x4D, 0x4A, 0x3B, 0xED,
+ 0x9D, 0x8D, 0x20, 0x2F, 0x22, 0xF2, 0x15, 0x89
+ },
+ {
+ 0x40, 0x82, 0x62, 0x73, 0x6D, 0x8A, 0xEC, 0x0B,
+ 0x84, 0x7D, 0xBA, 0x25, 0x02, 0x58, 0x60, 0x8A,
+ 0x43, 0x45, 0xA6, 0x3A, 0x1E, 0xB1, 0x95, 0xE5,
+ 0xC7, 0xAE, 0x2E, 0xE8, 0x74, 0xC3, 0x4D, 0xA8
+ },
+ {
+ 0x23, 0xD2, 0xB7, 0x04, 0x39, 0x46, 0x99, 0x49,
+ 0x98, 0x23, 0x90, 0x53, 0x8D, 0x7E, 0x5A, 0xDE,
+ 0x9F, 0x18, 0xC8, 0xE3, 0xBB, 0xF6, 0x60, 0x5A,
+ 0xFC, 0xF4, 0x9B, 0x00, 0xC0, 0x61, 0xE8, 0x37
+ },
+ {
+ 0x23, 0x2F, 0xB1, 0x87, 0xD2, 0x71, 0xBE, 0xA9,
+ 0x12, 0xEF, 0xD4, 0x07, 0xFF, 0xE0, 0x80, 0x56,
+ 0xD6, 0xA4, 0x2E, 0x53, 0x21, 0xEC, 0x79, 0x2D,
+ 0xF3, 0xD5, 0x84, 0xA9, 0x4F, 0x63, 0x0A, 0xB2
+ },
+ {
+ 0x13, 0x8E, 0x19, 0x44, 0xE4, 0xB5, 0x4D, 0xE8,
+ 0x68, 0x1D, 0x7E, 0x48, 0xC4, 0xF0, 0x81, 0x48,
+ 0xE4, 0x0A, 0x56, 0x7E, 0x5C, 0xAD, 0x94, 0x6A,
+ 0x6A, 0xF4, 0xE8, 0xD5, 0xD2, 0x6F, 0x75, 0xC7
+ },
+ {
+ 0x80, 0xC1, 0x51, 0x32, 0x5F, 0xBF, 0xC6, 0x78,
+ 0xB7, 0xBE, 0x4E, 0x40, 0xB3, 0x0F, 0x29, 0xFE,
+ 0x31, 0xCD, 0xBE, 0x1C, 0x84, 0x12, 0x6E, 0x00,
+ 0x6D, 0xF3, 0xC1, 0x85, 0x24, 0xBD, 0x2D, 0x6C
+ },
+ {
+ 0xA6, 0x42, 0x26, 0x73, 0x01, 0x66, 0x9D, 0xF2,
+ 0x61, 0xB8, 0x39, 0xF8, 0x73, 0x65, 0x76, 0x29,
+ 0x05, 0xFF, 0x32, 0x0A, 0x0A, 0x2F, 0xC4, 0xBD,
+ 0xC4, 0x8E, 0x5A, 0x8E, 0x15, 0xD1, 0x32, 0x33
+ },
+ {
+ 0x0F, 0x8B, 0x10, 0x99, 0x38, 0x60, 0x93, 0x7A,
+ 0x74, 0xCC, 0x2D, 0xE4, 0x0A, 0x27, 0x31, 0xDD,
+ 0x99, 0x54, 0xB6, 0x54, 0xBB, 0x94, 0xC3, 0x4E,
+ 0x87, 0x66, 0x52, 0xE9, 0x8D, 0x4B, 0xBD, 0x16
+ },
+ {
+ 0xE6, 0x34, 0xA5, 0x85, 0x12, 0x49, 0x32, 0x73,
+ 0x26, 0x0F, 0x10, 0xD4, 0x49, 0x53, 0xCD, 0x99,
+ 0x8E, 0x34, 0xCB, 0x82, 0x81, 0xC4, 0x1B, 0xF4,
+ 0x2E, 0x0A, 0xE2, 0xF2, 0x5C, 0xBD, 0x1F, 0x75
+ },
+ {
+ 0xBD, 0xE6, 0xAF, 0x9B, 0xAF, 0x3C, 0x07, 0xE9,
+ 0x54, 0x23, 0xCA, 0xB5, 0x04, 0xDE, 0xE7, 0x0E,
+ 0xDC, 0xC3, 0x31, 0x8B, 0x22, 0xDD, 0x1E, 0xB6,
+ 0xFD, 0x85, 0xBE, 0x44, 0x7A, 0xC9, 0xF2, 0x09
+ },
+ {
+ 0x91, 0x4B, 0x37, 0xAB, 0x5B, 0x8C, 0xFD, 0xE6,
+ 0xA4, 0x80, 0x46, 0x6A, 0x0D, 0x82, 0x43, 0x2C,
+ 0x7D, 0x76, 0x32, 0x8E, 0x9A, 0x88, 0xEF, 0x5B,
+ 0x4F, 0x52, 0x42, 0x9F, 0x7A, 0x3F, 0xFC, 0x7D
+ },
+ {
+ 0x55, 0xBE, 0x66, 0xE9, 0xA5, 0xAA, 0x67, 0x1A,
+ 0x23, 0x88, 0x2E, 0xF3, 0xE7, 0xD9, 0xD3, 0x6E,
+ 0xA9, 0x54, 0x87, 0xDC, 0x71, 0xB7, 0x25, 0xA5,
+ 0xAD, 0x4B, 0x79, 0x8A, 0x87, 0x91, 0x43, 0xD0
+ },
+ {
+ 0x3F, 0xD0, 0x45, 0x89, 0x4B, 0x83, 0x6E, 0x44,
+ 0xE9, 0xCA, 0x75, 0xFB, 0xE3, 0xEA, 0xDC, 0x48,
+ 0x6C, 0xBB, 0xD0, 0xD8, 0xCE, 0xE1, 0xB3, 0xCF,
+ 0x14, 0xF7, 0x6E, 0x7F, 0x1E, 0x77, 0xAE, 0xF3
+ },
+ {
+ 0xCE, 0x60, 0x34, 0x3D, 0xC4, 0x87, 0x4B, 0x66,
+ 0x04, 0xE1, 0xFB, 0x23, 0x1E, 0x37, 0xEC, 0x1E,
+ 0xEC, 0x3F, 0x06, 0x56, 0x6E, 0x42, 0x8A, 0xE7,
+ 0x64, 0xEF, 0xFF, 0xA2, 0x30, 0xAD, 0xD4, 0x85
+ },
+ {
+ 0xE3, 0x8C, 0x9D, 0xF0, 0x24, 0xDE, 0x21, 0x53,
+ 0xD2, 0x26, 0x73, 0x8A, 0x0E, 0x5B, 0xA9, 0xB8,
+ 0xC6, 0x78, 0x4D, 0xAC, 0xA6, 0x5C, 0x22, 0xA7,
+ 0x62, 0x8E, 0xB5, 0x8E, 0xA0, 0xD4, 0x95, 0xA7
+ },
+ {
+ 0x8D, 0xFE, 0xC0, 0xD4, 0xF3, 0x65, 0x8A, 0x20,
+ 0xA0, 0xBA, 0xD6, 0x6F, 0x21, 0x60, 0x83, 0x2B,
+ 0x16, 0x4E, 0x70, 0x0A, 0x21, 0xEC, 0x5A, 0x01,
+ 0x65, 0xC3, 0x67, 0x72, 0xB2, 0x08, 0x61, 0x11
+ },
+ {
+ 0x44, 0x01, 0xB5, 0x0E, 0x09, 0x86, 0x5F, 0x42,
+ 0x38, 0x24, 0x3B, 0x82, 0x25, 0xCA, 0x40, 0xA0,
+ 0x8D, 0xBB, 0x46, 0x85, 0xF5, 0xF8, 0x62, 0xFB,
+ 0xDD, 0x72, 0x98, 0x04, 0x31, 0xA8, 0x5D, 0x3F
+ },
+ {
+ 0x86, 0x68, 0x94, 0x27, 0x88, 0xC4, 0xCE, 0x8A,
+ 0x33, 0x19, 0x0F, 0xFC, 0xFA, 0xD1, 0xC6, 0x78,
+ 0xC4, 0xFA, 0x41, 0xE9, 0x94, 0x17, 0x09, 0x4E,
+ 0x24, 0x0F, 0x4A, 0x43, 0xF3, 0x87, 0xA3, 0xB6
+ },
+ {
+ 0xA7, 0x28, 0x8D, 0x5E, 0x09, 0x80, 0x9B, 0x69,
+ 0x69, 0x84, 0xEC, 0xD5, 0x32, 0x6C, 0xDD, 0x84,
+ 0xFB, 0xE3, 0x5F, 0xCF, 0x67, 0x23, 0x5D, 0x81,
+ 0x1C, 0x82, 0x00, 0x25, 0x36, 0xA3, 0xC5, 0xE1
+ },
+ {
+ 0x8E, 0x92, 0x5C, 0x3C, 0x14, 0x6B, 0xAC, 0xF3,
+ 0x35, 0x1E, 0xC5, 0x32, 0x41, 0xAC, 0xE5, 0xF7,
+ 0x3E, 0x8F, 0xC9, 0xBD, 0x8C, 0x61, 0xCA, 0xD9,
+ 0x7F, 0xD7, 0x72, 0xB0, 0x7E, 0x1B, 0x83, 0x73
+ },
+ {
+ 0xC7, 0xEB, 0x9E, 0x6D, 0xED, 0x2F, 0x99, 0x3D,
+ 0x48, 0xB0, 0x17, 0x0D, 0xA2, 0x7C, 0x5B, 0x75,
+ 0x3B, 0x12, 0x17, 0x6B, 0xE1, 0x26, 0xC7, 0xBA,
+ 0x2D, 0x6A, 0xF8, 0x5F, 0x85, 0x93, 0xB7, 0x52
+ },
+ {
+ 0xCA, 0x27, 0xF1, 0x6F, 0x94, 0xE4, 0xEC, 0x0E,
+ 0x62, 0x8E, 0x7F, 0x8A, 0xEF, 0xC6, 0x65, 0x7B,
+ 0xED, 0xC9, 0x37, 0x42, 0x96, 0x59, 0x40, 0xAE,
+ 0x78, 0x6A, 0x73, 0xB5, 0xFD, 0x59, 0x3B, 0x97
+ },
+ {
+ 0x8C, 0x21, 0xE6, 0x56, 0x8B, 0xC6, 0xDC, 0x00,
+ 0xE3, 0xD6, 0xEB, 0xC0, 0x9E, 0xA9, 0xC2, 0xCE,
+ 0x00, 0x6C, 0xD3, 0x11, 0xD3, 0xB3, 0xE9, 0xCC,
+ 0x9D, 0x8D, 0xDB, 0xFB, 0x3C, 0x5A, 0x77, 0x76
+ },
+ {
+ 0x52, 0x56, 0x66, 0x96, 0x8B, 0x3B, 0x7D, 0x00,
+ 0x7B, 0xB9, 0x26, 0xB6, 0xEF, 0xDC, 0x7E, 0x21,
+ 0x2A, 0x31, 0x15, 0x4C, 0x9A, 0xE1, 0x8D, 0x43,
+ 0xEE, 0x0E, 0xB7, 0xE6, 0xB1, 0xA9, 0x38, 0xD3
+ },
+ {
+ 0xE0, 0x9A, 0x4F, 0xA5, 0xC2, 0x8B, 0xDC, 0xD7,
+ 0xC8, 0x39, 0x84, 0x0E, 0x0A, 0x38, 0x3E, 0x4F,
+ 0x7A, 0x10, 0x2D, 0x0B, 0x1B, 0xC8, 0x49, 0xC9,
+ 0x49, 0x62, 0x7C, 0x41, 0x00, 0xC1, 0x7D, 0xD3
+ },
+ {
+ 0xC1, 0x9F, 0x3E, 0x29, 0x5D, 0xB2, 0xFC, 0x0E,
+ 0x74, 0x81, 0xC4, 0xF1, 0x6A, 0xF0, 0x11, 0x55,
+ 0xDD, 0xB0, 0xD7, 0xD1, 0x38, 0x3D, 0x4A, 0x1F,
+ 0xF1, 0x69, 0x9D, 0xB7, 0x11, 0x77, 0x34, 0x0C
+ },
+ {
+ 0x76, 0x9E, 0x67, 0x8C, 0x0A, 0x09, 0x09, 0xA2,
+ 0x02, 0x1C, 0x4D, 0xC2, 0x6B, 0x1A, 0x3C, 0x9B,
+ 0xC5, 0x57, 0xAD, 0xB2, 0x1A, 0x50, 0x83, 0x4C,
+ 0xDC, 0x5C, 0x92, 0x93, 0xF7, 0x53, 0x65, 0xF8
+ },
+ {
+ 0xB6, 0x48, 0x74, 0xAD, 0xAB, 0x6B, 0xCB, 0x85,
+ 0xB9, 0x4B, 0xD9, 0xA6, 0xC5, 0x65, 0xD0, 0xD2,
+ 0xBC, 0x35, 0x44, 0x5D, 0x75, 0x28, 0xBC, 0x85,
+ 0xB4, 0x1F, 0xDC, 0x79, 0xDC, 0x76, 0xE3, 0x4F
+ },
+ {
+ 0xFA, 0xF2, 0x50, 0xDE, 0x15, 0x82, 0x0F, 0x7F,
+ 0xC6, 0x10, 0xDD, 0x53, 0xEE, 0xAE, 0x44, 0x60,
+ 0x1C, 0x3E, 0xFF, 0xA3, 0xAC, 0xCD, 0x08, 0x8E,
+ 0xB6, 0x69, 0x05, 0xBB, 0x26, 0x53, 0xBE, 0x8C
+ },
+ {
+ 0x1E, 0x20, 0x38, 0x73, 0x9B, 0x2C, 0x01, 0x8B,
+ 0x0E, 0x9E, 0x0E, 0x1E, 0x52, 0x2F, 0xD9, 0x65,
+ 0x12, 0x87, 0xEE, 0x6E, 0x36, 0x65, 0x91, 0x9B,
+ 0x24, 0xC2, 0x12, 0x4F, 0x0C, 0x1A, 0x3F, 0x3A
+ },
+ {
+ 0x5F, 0xEC, 0x3A, 0xA0, 0x08, 0x61, 0xDE, 0x1A,
+ 0xC5, 0xDA, 0xB3, 0xC1, 0x37, 0x06, 0x5D, 0x1E,
+ 0x01, 0xBB, 0x03, 0xF6, 0x9D, 0xCC, 0x7D, 0x1C,
+ 0xF7, 0xCA, 0x4F, 0x43, 0x56, 0xAE, 0xC9, 0xA3
+ },
+ {
+ 0x44, 0x51, 0xFE, 0x6B, 0xBE, 0xF3, 0x93, 0x43,
+ 0x91, 0x92, 0x44, 0xC5, 0x1D, 0xAE, 0x1E, 0xA9,
+ 0xA9, 0x54, 0xCF, 0x2C, 0x09, 0x66, 0xAB, 0x04,
+ 0x5B, 0x15, 0x52, 0x1E, 0xCF, 0x35, 0x00, 0x81
+ },
+ {
+ 0x8C, 0x62, 0x2F, 0xA2, 0x16, 0x0E, 0x8E, 0x99,
+ 0x18, 0x13, 0xF1, 0x80, 0xBF, 0xEC, 0x0B, 0x43,
+ 0x1C, 0x6D, 0xBF, 0xA2, 0x95, 0x6D, 0x91, 0x75,
+ 0x81, 0x6A, 0x23, 0xC3, 0x82, 0xC4, 0xF2, 0x00
+ },
+ {
+ 0x81, 0x7D, 0x5C, 0x8F, 0x92, 0xE7, 0xB5, 0xCA,
+ 0x57, 0xF5, 0xE1, 0x63, 0x90, 0x16, 0xAD, 0x57,
+ 0x60, 0xE4, 0x46, 0xD6, 0xE9, 0xCA, 0xA7, 0x49,
+ 0x84, 0x14, 0xAC, 0xE8, 0x22, 0x80, 0xB5, 0xCD
+ },
+ {
+ 0xA6, 0xA1, 0xAD, 0x58, 0xCE, 0xE5, 0x4E, 0x69,
+ 0xCB, 0xBC, 0xAA, 0x87, 0xDF, 0x07, 0xA6, 0x70,
+ 0x7E, 0xB2, 0x24, 0x73, 0x9C, 0x21, 0x76, 0x13,
+ 0x46, 0x0A, 0xB4, 0x54, 0xB4, 0x59, 0xCA, 0x9C
+ },
+ {
+ 0x63, 0xB8, 0x47, 0x27, 0x52, 0x26, 0x60, 0x5B,
+ 0xE6, 0x76, 0x81, 0x25, 0x8F, 0x7D, 0x00, 0xBB,
+ 0xB3, 0x07, 0xC6, 0x6F, 0x19, 0x59, 0xBF, 0x2E,
+ 0x46, 0x7A, 0x41, 0xAE, 0xE7, 0x14, 0xE5, 0x5C
+ },
+ {
+ 0xFE, 0x52, 0xEB, 0xE5, 0xCF, 0xCF, 0xE6, 0xA2,
+ 0x29, 0x7B, 0x53, 0x9F, 0xA3, 0xDA, 0xDB, 0xD6,
+ 0xEB, 0xD2, 0x01, 0xAA, 0x2C, 0xA1, 0x35, 0x63,
+ 0xE3, 0xD7, 0xF1, 0x4D, 0x15, 0xAB, 0xFF, 0x63
+ },
+ {
+ 0xB7, 0xBE, 0xF9, 0xFA, 0x5A, 0x3D, 0x10, 0x42,
+ 0x62, 0x46, 0xB5, 0xF6, 0x58, 0xC0, 0x8F, 0xDF,
+ 0x80, 0x66, 0xEA, 0xA3, 0xE5, 0x5A, 0x2F, 0x7D,
+ 0xA1, 0x59, 0x1E, 0x05, 0xC8, 0x7D, 0xF8, 0xC7
+ },
+ {
+ 0xDE, 0xD1, 0xD6, 0xCA, 0xA9, 0xF8, 0xF3, 0xBD,
+ 0xA9, 0x2C, 0xEA, 0x7F, 0x65, 0x49, 0xB1, 0xFB,
+ 0x86, 0xA2, 0x21, 0x14, 0x78, 0xC4, 0xEC, 0x28,
+ 0x9B, 0x83, 0x7E, 0xFC, 0x2B, 0x5C, 0x27, 0xD7
+ },
+ {
+ 0x9F, 0x30, 0x00, 0x8A, 0x2E, 0xB0, 0x50, 0xF1,
+ 0x8E, 0x56, 0xA7, 0x6B, 0xE9, 0x20, 0x91, 0xB2,
+ 0xFD, 0xC1, 0x64, 0xD5, 0x6E, 0x32, 0xC8, 0x7D,
+ 0xD6, 0x4C, 0x9E, 0x3A, 0x61, 0x10, 0x41, 0xB1
+ },
+ {
+ 0x01, 0x0B, 0x6A, 0x3B, 0x11, 0x86, 0x00, 0x88,
+ 0xF0, 0xAB, 0xC8, 0x0A, 0x89, 0x72, 0xCB, 0xBC,
+ 0x32, 0x9D, 0x52, 0x75, 0x34, 0x29, 0x50, 0xEB,
+ 0x9A, 0x04, 0x5A, 0xFD, 0xC8, 0xBB, 0xED, 0x24
+ },
+ {
+ 0x0C, 0xD2, 0x10, 0xAA, 0xC1, 0x1F, 0x1C, 0x1C,
+ 0xED, 0x49, 0x7F, 0x67, 0x3E, 0x53, 0xDB, 0x68,
+ 0xC3, 0xEC, 0x36, 0x07, 0xF0, 0xC5, 0x78, 0x7D,
+ 0xDC, 0x60, 0xA3, 0x55, 0xDF, 0xE5, 0x6C, 0x25
+ },
+ {
+ 0x0E, 0x56, 0xFD, 0x01, 0xDA, 0x3B, 0x4F, 0x8B,
+ 0xE2, 0xC9, 0x90, 0x55, 0x2A, 0xAC, 0x8D, 0x1E,
+ 0x8D, 0xA2, 0x09, 0xBC, 0xF4, 0xAA, 0xD4, 0xFF,
+ 0xB5, 0x42, 0x7F, 0xD6, 0x31, 0x72, 0x46, 0x3E
+ },
+ {
+ 0xD6, 0xD5, 0xCD, 0xB1, 0x14, 0x40, 0xE3, 0x4A,
+ 0xCA, 0x3A, 0x2F, 0xCF, 0x30, 0xF5, 0x9E, 0x08,
+ 0xB1, 0x1A, 0x2A, 0x3D, 0xE5, 0x39, 0xE3, 0xE6,
+ 0x51, 0x3E, 0xD7, 0x8A, 0x4F, 0xEE, 0x51, 0x3B
+ },
+ {
+ 0xAA, 0x35, 0xAC, 0x90, 0x68, 0x06, 0x70, 0xC7,
+ 0x32, 0xED, 0x1E, 0xF3, 0x7E, 0x8C, 0xBA, 0xAE,
+ 0x49, 0xA4, 0xD8, 0x8E, 0xCF, 0x4D, 0xF2, 0xB6,
+ 0x89, 0xA0, 0xF1, 0x01, 0xB7, 0x56, 0xAE, 0x47
+ },
+ {
+ 0x27, 0x8E, 0x56, 0x12, 0x88, 0x72, 0x26, 0x30,
+ 0xE2, 0x6A, 0x5F, 0xC9, 0x54, 0xBF, 0x2D, 0xCD,
+ 0x6A, 0x65, 0x81, 0x67, 0x39, 0xAB, 0xEE, 0x7B,
+ 0xE1, 0x43, 0x07, 0xA9, 0x61, 0x74, 0xE5, 0xB0
+ },
+ {
+ 0xAB, 0x4B, 0x2C, 0xA1, 0xA2, 0xB3, 0x49, 0x98,
+ 0x15, 0x24, 0xB6, 0x15, 0x54, 0x62, 0xF0, 0xFF,
+ 0x10, 0x60, 0xBF, 0x9B, 0xFA, 0x07, 0xFB, 0x9E,
+ 0xC6, 0x9C, 0xA4, 0x71, 0x64, 0x5B, 0x6A, 0x18
+ },
+ {
+ 0x18, 0xA9, 0xBB, 0xEC, 0x3C, 0x8E, 0x1F, 0x8E,
+ 0xE9, 0x57, 0x12, 0x97, 0xA9, 0x34, 0x36, 0xDE,
+ 0x42, 0x7C, 0xD2, 0x70, 0xEC, 0x69, 0xDF, 0xE8,
+ 0x88, 0xDB, 0x7D, 0xBF, 0x10, 0xB6, 0x49, 0x93
+ },
+ {
+ 0xBA, 0xFC, 0x7E, 0x43, 0xD2, 0x65, 0xA1, 0x73,
+ 0x02, 0x1A, 0x9D, 0x9E, 0x58, 0x3D, 0x60, 0xED,
+ 0x42, 0xA8, 0x03, 0xFA, 0xCD, 0x6B, 0x83, 0x60,
+ 0xDE, 0x1F, 0x91, 0x68, 0x35, 0x38, 0x9B, 0xF0
+ },
+ {
+ 0xA5, 0xB6, 0x7B, 0xE9, 0x50, 0xFB, 0xC2, 0xF0,
+ 0xDD, 0x32, 0x3A, 0x79, 0xA1, 0x9E, 0x3E, 0xD1,
+ 0xF4, 0xAE, 0x4B, 0xA7, 0x89, 0x4F, 0x93, 0x0E,
+ 0xA5, 0xEF, 0x73, 0x4D, 0xE7, 0xDB, 0x83, 0xAE
+ },
+ {
+ 0xBF, 0x1E, 0x65, 0xF3, 0xCD, 0x84, 0x98, 0x88,
+ 0x4D, 0x9D, 0x5C, 0x19, 0xEB, 0xF7, 0xB9, 0x16,
+ 0x06, 0x76, 0x37, 0x60, 0x4E, 0x26, 0xDB, 0xE2,
+ 0xB7, 0x28, 0x8E, 0xCB, 0x11, 0x42, 0x60, 0x68
+ },
+ {
+ 0xC3, 0x34, 0x2C, 0xF9, 0xCB, 0xBF, 0x29, 0xD4,
+ 0x06, 0xD7, 0x89, 0x5D, 0xD4, 0xD9, 0x54, 0x8D,
+ 0x4A, 0xC7, 0x8B, 0x4D, 0x00, 0xE9, 0xB6, 0x3E,
+ 0x20, 0x3E, 0x5E, 0x19, 0xE9, 0x97, 0x46, 0x20
+ },
+ {
+ 0x1C, 0x0B, 0xE6, 0x02, 0x77, 0x43, 0x4B, 0x0E,
+ 0x00, 0x4B, 0x7B, 0x38, 0x8A, 0x37, 0x55, 0x9F,
+ 0x84, 0xB3, 0x0C, 0x6C, 0xF8, 0x60, 0x0F, 0x52,
+ 0x8B, 0xFC, 0xD3, 0x3C, 0xAF, 0x52, 0xCB, 0x1E
+ },
+ {
+ 0x73, 0x95, 0x45, 0x30, 0xD0, 0x3F, 0x10, 0xBE,
+ 0xF5, 0x2A, 0xD5, 0xBC, 0x7F, 0xB4, 0xC0, 0x76,
+ 0xF8, 0x3F, 0x63, 0x31, 0xC8, 0xBD, 0x1E, 0xEE,
+ 0xC3, 0x88, 0x7F, 0x4A, 0xA2, 0x06, 0x92, 0x40
+ },
+ {
+ 0x69, 0xC1, 0x1E, 0xE0, 0x49, 0x44, 0xDE, 0xA9,
+ 0x85, 0xAC, 0x9F, 0x13, 0x96, 0x0E, 0x73, 0x98,
+ 0x0E, 0x1B, 0xB0, 0xE3, 0x09, 0xF4, 0x38, 0x4A,
+ 0x16, 0x76, 0xF8, 0xEF, 0xAB, 0x38, 0x42, 0x88
+ },
+ {
+ 0x36, 0xFB, 0x8F, 0xDE, 0x0E, 0xC2, 0x8C, 0xE8,
+ 0x53, 0xFB, 0x71, 0x75, 0xC1, 0xB7, 0x9D, 0xA3,
+ 0xB5, 0xE8, 0xC3, 0x91, 0x86, 0xE7, 0x8A, 0xAE,
+ 0xCE, 0x54, 0x64, 0xDB, 0xD9, 0xFE, 0x2A, 0xA2
+ },
+ {
+ 0x6B, 0xB2, 0xA0, 0x9D, 0xFC, 0xAF, 0x96, 0x96,
+ 0x2D, 0xE0, 0x0C, 0x8A, 0x08, 0x2D, 0x6D, 0xF9,
+ 0x32, 0x2B, 0x49, 0x66, 0xAE, 0x8D, 0x2E, 0xCF,
+ 0x73, 0x24, 0x11, 0xA7, 0x6A, 0x1A, 0x0E, 0xE6
+ },
+ {
+ 0x74, 0x12, 0xE7, 0xDD, 0x1B, 0xF1, 0xAA, 0x93,
+ 0x97, 0x41, 0x1B, 0xBA, 0x4D, 0x3E, 0x02, 0x76,
+ 0xD2, 0xE7, 0xA1, 0xA2, 0x9A, 0x24, 0x77, 0x15,
+ 0x7A, 0xD6, 0x03, 0x60, 0xD3, 0x3D, 0x4E, 0x76
+ },
+ {
+ 0xDD, 0xDE, 0xAF, 0xCF, 0xC7, 0x23, 0x21, 0xC8,
+ 0x49, 0xFB, 0x25, 0x94, 0x7A, 0xB4, 0x2C, 0x1A,
+ 0xF2, 0xA5, 0xE4, 0x3F, 0xEF, 0x68, 0x1B, 0xE4,
+ 0x2C, 0x7E, 0xAF, 0x36, 0x60, 0x08, 0x0A, 0xD3
+ },
+ {
+ 0x9D, 0xEF, 0xEB, 0xAD, 0xBD, 0xCB, 0x0A, 0x0E,
+ 0x7F, 0xF9, 0x92, 0xF9, 0x47, 0xCE, 0xD3, 0xD0,
+ 0xA4, 0xC8, 0x99, 0xE6, 0x4F, 0xE7, 0x73, 0x60,
+ 0xE8, 0x1E, 0x1F, 0x0E, 0x97, 0xF8, 0xC1, 0xA2
+ },
+ {
+ 0x84, 0x4C, 0x59, 0xFB, 0xE6, 0x47, 0x6F, 0xD1,
+ 0x89, 0x23, 0x99, 0x54, 0xF1, 0x7E, 0x36, 0xE1,
+ 0xF6, 0x9E, 0x24, 0xAA, 0xED, 0x5D, 0x5C, 0x8B,
+ 0x84, 0x05, 0xEF, 0x2A, 0x83, 0x0C, 0xC2, 0xA0
+ },
+ {
+ 0xFF, 0x3F, 0xAF, 0xB6, 0x77, 0x86, 0xE0, 0x1A,
+ 0x0C, 0x38, 0xEA, 0xDF, 0x99, 0xC4, 0xCA, 0xE8,
+ 0x02, 0x9D, 0xA8, 0xCF, 0x29, 0x87, 0x5F, 0xC4,
+ 0x19, 0xBF, 0x68, 0x00, 0x09, 0xB3, 0xBD, 0xB3
+ },
+ {
+ 0xCA, 0x67, 0x60, 0xF3, 0x45, 0x67, 0x8F, 0x30,
+ 0xA2, 0x8D, 0x62, 0x82, 0x94, 0x27, 0x2A, 0x19,
+ 0xE3, 0x07, 0x2E, 0xBC, 0x61, 0xB1, 0x9F, 0xF1,
+ 0x3B, 0x31, 0x89, 0x73, 0xE9, 0x7C, 0x27, 0x38
+ },
+ {
+ 0xC0, 0x8E, 0x1A, 0x90, 0x47, 0xC5, 0x05, 0x26,
+ 0x4A, 0x16, 0x44, 0x7C, 0x9E, 0xD9, 0x81, 0xA7,
+ 0x19, 0xD3, 0x81, 0xF2, 0x8E, 0x60, 0x5F, 0xD7,
+ 0xCA, 0xA9, 0xE8, 0xBD, 0xBB, 0x42, 0x99, 0x6A
+ },
+ {
+ 0xF1, 0x73, 0xBA, 0x9D, 0x45, 0x84, 0xCD, 0x12,
+ 0x60, 0x50, 0xC6, 0x9F, 0xC2, 0x19, 0xA9, 0x19,
+ 0x0A, 0x0B, 0xF0, 0xAE, 0xCE, 0xCB, 0xE6, 0x11,
+ 0xBE, 0xED, 0x19, 0x3D, 0xA6, 0xCA, 0x4D, 0xE7
+ },
+ {
+ 0xB1, 0x84, 0x87, 0x65, 0x20, 0xDE, 0xD8, 0xBD,
+ 0x7D, 0xE2, 0x5E, 0xAE, 0xFB, 0xD3, 0xE0, 0x36,
+ 0x88, 0xC3, 0xBE, 0x39, 0xC1, 0x9F, 0xB7, 0x3E,
+ 0x1F, 0x0E, 0xCC, 0xAC, 0x7C, 0xC0, 0xF0, 0x14
+ },
+ {
+ 0x90, 0x25, 0xDB, 0x07, 0x58, 0xBD, 0xFB, 0x48,
+ 0xF0, 0x66, 0x7E, 0xBD, 0x7E, 0x12, 0x02, 0x46,
+ 0x59, 0x8F, 0xED, 0x01, 0xC2, 0x58, 0x76, 0x4F,
+ 0xA0, 0xFA, 0xE3, 0x34, 0xA2, 0xA0, 0x0A, 0x97
+ },
+ {
+ 0xE8, 0x3D, 0x80, 0x86, 0xFA, 0xBC, 0x46, 0x0D,
+ 0x5E, 0xFC, 0x45, 0x9F, 0x95, 0xA2, 0x68, 0xF5,
+ 0xDC, 0x4A, 0xC2, 0x84, 0x09, 0x3C, 0x24, 0x7C,
+ 0xA6, 0xEC, 0x84, 0x1A, 0xD6, 0x18, 0x3F, 0xE1
+ },
+ {
+ 0xCC, 0x9D, 0xF4, 0x1D, 0x35, 0xAA, 0x75, 0x92,
+ 0x8C, 0x18, 0x5F, 0x73, 0x93, 0x66, 0x61, 0x10,
+ 0xB8, 0x0F, 0x09, 0x86, 0xA2, 0x21, 0xC3, 0x70,
+ 0xF4, 0x5C, 0x2E, 0xB9, 0x01, 0x6C, 0x9A, 0x3B
+ },
+ {
+ 0x92, 0xF9, 0xA5, 0x94, 0x95, 0x45, 0x90, 0xFA,
+ 0x81, 0x98, 0x17, 0xE5, 0xD1, 0xC2, 0x8A, 0xAB,
+ 0x2B, 0x1C, 0xC5, 0x04, 0xD8, 0x6D, 0xBA, 0x44,
+ 0x36, 0x76, 0xBD, 0xF8, 0x66, 0x79, 0x68, 0x11
+ },
+ {
+ 0x72, 0x95, 0x62, 0xA1, 0xE0, 0x7B, 0x0E, 0x26,
+ 0x05, 0x49, 0x48, 0x09, 0xBD, 0x48, 0x0F, 0x15,
+ 0x37, 0xCE, 0xA1, 0x0D, 0xCA, 0xD4, 0x3E, 0xF9,
+ 0xF6, 0x8C, 0x66, 0xE8, 0x25, 0xDC, 0x46, 0xB1
+ },
+ {
+ 0x26, 0xF1, 0x60, 0xAB, 0x96, 0xF5, 0x58, 0x20,
+ 0x45, 0x14, 0x6E, 0xAF, 0xF2, 0xE2, 0xA8, 0xD4,
+ 0xDA, 0xB2, 0x98, 0xB4, 0xC5, 0x7E, 0x11, 0x7C,
+ 0xDF, 0xC5, 0xD0, 0x25, 0xC9, 0x2A, 0x22, 0x68
+ },
+ {
+ 0x87, 0xEB, 0xE7, 0x21, 0x38, 0x38, 0x73, 0xD2,
+ 0x47, 0xF8, 0x61, 0x82, 0xE3, 0xF5, 0x99, 0xA7,
+ 0x63, 0x4F, 0xCA, 0xEC, 0x5E, 0x07, 0xB1, 0xE8,
+ 0x3E, 0xBB, 0x79, 0x62, 0x5B, 0xA3, 0x54, 0xE6
+ },
+ {
+ 0xE0, 0x8D, 0x38, 0x9F, 0x75, 0x69, 0x4A, 0xDC,
+ 0x99, 0x6C, 0x22, 0xF5, 0x5D, 0x4F, 0x85, 0x9F,
+ 0xFD, 0x0C, 0x13, 0x19, 0xFF, 0x9C, 0xED, 0xF7,
+ 0x8C, 0x31, 0xBE, 0x84, 0xB6, 0xF2, 0x1A, 0xBC
+ },
+ {
+ 0x13, 0x63, 0xE2, 0x29, 0x13, 0xC6, 0xE1, 0x8E,
+ 0x7A, 0xA6, 0x5B, 0x83, 0xE7, 0x51, 0xC8, 0xA2,
+ 0xC6, 0x1B, 0x0F, 0x30, 0x71, 0x55, 0x86, 0x5A,
+ 0x57, 0xDB, 0xA5, 0x69, 0xA9, 0x9C, 0x7B, 0x0E
+ },
+ {
+ 0x88, 0x78, 0x08, 0x8E, 0xB2, 0xD1, 0xF6, 0xD0,
+ 0xBB, 0x48, 0x1B, 0x4B, 0xB1, 0x87, 0xDA, 0x04,
+ 0xBC, 0xD8, 0xC2, 0xC6, 0x39, 0xF0, 0x05, 0xB0,
+ 0x80, 0x54, 0xCC, 0x41, 0x75, 0x39, 0x05, 0xFB
+ },
+ {
+ 0x04, 0x18, 0xD6, 0x0D, 0x05, 0xB4, 0xE1, 0x24,
+ 0x64, 0x6E, 0xE5, 0x0E, 0x77, 0x49, 0xA1, 0xD2,
+ 0x09, 0x45, 0x7B, 0xC5, 0x43, 0xE3, 0xCC, 0x11,
+ 0x30, 0x27, 0x4A, 0xEA, 0x0F, 0x7B, 0xF3, 0xC1
+ },
+ {
+ 0x7A, 0x39, 0x7E, 0x50, 0x3F, 0x29, 0x3B, 0xC4,
+ 0x2D, 0x5F, 0x7E, 0xF5, 0xEC, 0x37, 0x87, 0x24,
+ 0x60, 0xA4, 0xF5, 0xB5, 0xCC, 0xDE, 0x77, 0xFB,
+ 0x4D, 0x47, 0xAC, 0x06, 0x81, 0xE5, 0xA0, 0x49
+ },
+ {
+ 0x5C, 0x0D, 0x29, 0x83, 0xE7, 0x2A, 0x6D, 0xD4,
+ 0xE6, 0x52, 0xD7, 0x23, 0xC1, 0xDF, 0xC1, 0x2B,
+ 0x41, 0x4C, 0x87, 0x3D, 0x4A, 0xB4, 0xA0, 0xA1,
+ 0x50, 0x40, 0x8E, 0xB3, 0x43, 0x47, 0xE9, 0x95
+ },
+ {
+ 0x56, 0x23, 0x36, 0x54, 0x53, 0xC0, 0x49, 0x89,
+ 0xC7, 0xCF, 0x33, 0x63, 0x5E, 0x0F, 0xC4, 0xCD,
+ 0xDD, 0x68, 0x6F, 0xC9, 0x5A, 0x33, 0xDF, 0xED,
+ 0xCF, 0x33, 0x35, 0x79, 0x4C, 0x7D, 0xC3, 0x44
+ },
+ {
+ 0x11, 0xF6, 0xDA, 0xD1, 0x88, 0x02, 0x8F, 0xDF,
+ 0x13, 0x78, 0xA2, 0x56, 0xE4, 0x57, 0x0E, 0x90,
+ 0x63, 0x10, 0x7B, 0x8F, 0x79, 0xDC, 0x66, 0x3F,
+ 0xA5, 0x55, 0x6F, 0x56, 0xFD, 0x44, 0xA0, 0xF0
+ },
+ {
+ 0x0E, 0xD8, 0x16, 0x17, 0x97, 0xEC, 0xEE, 0x88,
+ 0x1E, 0x7D, 0x0E, 0x3F, 0x4C, 0x5F, 0xB8, 0x39,
+ 0xC8, 0x4E, 0xB7, 0xA9, 0x24, 0x26, 0x57, 0xCC,
+ 0x48, 0x30, 0x68, 0x07, 0xB3, 0x2B, 0xEF, 0xDE
+ },
+ {
+ 0x73, 0x66, 0x67, 0xC9, 0x36, 0x4C, 0xE1, 0x2D,
+ 0xB8, 0xF6, 0xB1, 0x43, 0xC6, 0xC1, 0x78, 0xCD,
+ 0xEF, 0x1E, 0x14, 0x45, 0xBC, 0x5A, 0x2F, 0x26,
+ 0x34, 0xF0, 0x8E, 0x99, 0x32, 0x27, 0x3C, 0xAA
+ },
+ {
+ 0xE1, 0x5F, 0x36, 0x8B, 0x44, 0x06, 0xC1, 0xF6,
+ 0x55, 0x57, 0xC8, 0x35, 0x5C, 0xBE, 0x69, 0x4B,
+ 0x63, 0x3E, 0x26, 0xF1, 0x55, 0xF5, 0x2B, 0x7D,
+ 0xA9, 0x4C, 0xFB, 0x23, 0xFD, 0x4A, 0x5D, 0x96
+ },
+ {
+ 0x43, 0x7A, 0xB2, 0xD7, 0x4F, 0x50, 0xCA, 0x86,
+ 0xCC, 0x3D, 0xE9, 0xBE, 0x70, 0xE4, 0x55, 0x48,
+ 0x25, 0xE3, 0x3D, 0x82, 0x4B, 0x3A, 0x49, 0x23,
+ 0x62, 0xE2, 0xE9, 0xD6, 0x11, 0xBC, 0x57, 0x9D
+ },
+ {
+ 0x2B, 0x91, 0x58, 0xC7, 0x22, 0x89, 0x8E, 0x52,
+ 0x6D, 0x2C, 0xDD, 0x3F, 0xC0, 0x88, 0xE9, 0xFF,
+ 0xA7, 0x9A, 0x9B, 0x73, 0xB7, 0xD2, 0xD2, 0x4B,
+ 0xC4, 0x78, 0xE2, 0x1C, 0xDB, 0x3B, 0x67, 0x63
+ },
+ {
+ 0x0C, 0x8A, 0x36, 0x59, 0x7D, 0x74, 0x61, 0xC6,
+ 0x3A, 0x94, 0x73, 0x28, 0x21, 0xC9, 0x41, 0x85,
+ 0x6C, 0x66, 0x83, 0x76, 0x60, 0x6C, 0x86, 0xA5,
+ 0x2D, 0xE0, 0xEE, 0x41, 0x04, 0xC6, 0x15, 0xDB
+ },
+};
+
+
+
+
+static const uint8_t blake2bp_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
+{
+ {
+ 0xB5, 0xEF, 0x81, 0x1A, 0x80, 0x38, 0xF7, 0x0B,
+ 0x62, 0x8F, 0xA8, 0xB2, 0x94, 0xDA, 0xAE, 0x74,
+ 0x92, 0xB1, 0xEB, 0xE3, 0x43, 0xA8, 0x0E, 0xAA,
+ 0xBB, 0xF1, 0xF6, 0xAE, 0x66, 0x4D, 0xD6, 0x7B,
+ 0x9D, 0x90, 0xB0, 0x12, 0x07, 0x91, 0xEA, 0xB8,
+ 0x1D, 0xC9, 0x69, 0x85, 0xF2, 0x88, 0x49, 0xF6,
+ 0xA3, 0x05, 0x18, 0x6A, 0x85, 0x50, 0x1B, 0x40,
+ 0x51, 0x14, 0xBF, 0xA6, 0x78, 0xDF, 0x93, 0x80
+ },
+ {
+ 0xA1, 0x39, 0x28, 0x0E, 0x72, 0x75, 0x7B, 0x72,
+ 0x3E, 0x64, 0x73, 0xD5, 0xBE, 0x59, 0xF3, 0x6E,
+ 0x9D, 0x50, 0xFC, 0x5C, 0xD7, 0xD4, 0x58, 0x5C,
+ 0xBC, 0x09, 0x80, 0x48, 0x95, 0xA3, 0x6C, 0x52,
+ 0x12, 0x42, 0xFB, 0x27, 0x89, 0xF8, 0x5C, 0xB9,
+ 0xE3, 0x54, 0x91, 0xF3, 0x1D, 0x4A, 0x69, 0x52,
+ 0xF9, 0xD8, 0xE0, 0x97, 0xAE, 0xF9, 0x4F, 0xA1,
+ 0xCA, 0x0B, 0x12, 0x52, 0x57, 0x21, 0xF0, 0x3D
+ },
+ {
+ 0xEF, 0x8C, 0xDA, 0x96, 0x35, 0xD5, 0x06, 0x3A,
+ 0xF8, 0x11, 0x15, 0xDA, 0x3C, 0x52, 0x32, 0x5A,
+ 0x86, 0xE8, 0x40, 0x74, 0xF9, 0xF7, 0x24, 0xB7,
+ 0xCB, 0xD0, 0xB0, 0x85, 0x6F, 0xF0, 0x01, 0x77,
+ 0xCD, 0xD2, 0x83, 0xC2, 0x98, 0x32, 0x6C, 0xD0,
+ 0x91, 0x77, 0x54, 0xC5, 0x24, 0x1F, 0x14, 0x80,
+ 0xFB, 0x50, 0x9C, 0xF2, 0xD2, 0xC4, 0x49, 0x81,
+ 0x80, 0x77, 0xAE, 0x35, 0xFC, 0x33, 0x07, 0x37
+ },
+ {
+ 0x8C, 0xF9, 0x33, 0xA2, 0xD3, 0x61, 0xA3, 0xE6,
+ 0xA1, 0x36, 0xDB, 0xE4, 0xA0, 0x1E, 0x79, 0x03,
+ 0x79, 0x7A, 0xD6, 0xCE, 0x76, 0x6E, 0x2B, 0x91,
+ 0xB9, 0xB4, 0xA4, 0x03, 0x51, 0x27, 0xD6, 0x5F,
+ 0x4B, 0xE8, 0x65, 0x50, 0x11, 0x94, 0x18, 0xE2,
+ 0x2D, 0xA0, 0x0F, 0xD0, 0x6B, 0xF2, 0xB2, 0x75,
+ 0x96, 0xB3, 0x7F, 0x06, 0xBE, 0x0A, 0x15, 0x4A,
+ 0xAF, 0x7E, 0xCA, 0x54, 0xC4, 0x52, 0x0B, 0x97
+ },
+ {
+ 0x24, 0xDC, 0x1E, 0x6D, 0xC4, 0xE5, 0x1A, 0x3A,
+ 0x3C, 0x8D, 0xA6, 0x7A, 0xAC, 0xB4, 0xC5, 0x41,
+ 0xE4, 0x18, 0x18, 0xD1, 0x80, 0xE5, 0xBB, 0x69,
+ 0x75, 0x3D, 0xBB, 0xFF, 0x2F, 0x44, 0xD0, 0xE7,
+ 0xDA, 0x83, 0x03, 0x86, 0xBF, 0xC8, 0x3B, 0x27,
+ 0xA5, 0x9D, 0xBB, 0x62, 0xB9, 0x64, 0xFC, 0x8E,
+ 0xA6, 0xCB, 0xDF, 0x30, 0x49, 0xBF, 0xF8, 0x1F,
+ 0x24, 0xF3, 0x48, 0xDB, 0x4E, 0xFD, 0x0D, 0x07
+ },
+ {
+ 0xBC, 0x23, 0xF5, 0xAB, 0xDF, 0xFD, 0x6A, 0x32,
+ 0xA5, 0xD4, 0x08, 0x11, 0x26, 0x2E, 0xD4, 0x47,
+ 0x9E, 0xF7, 0x0B, 0x42, 0x33, 0xCA, 0x20, 0x5B,
+ 0xC5, 0xB9, 0xBF, 0x85, 0x96, 0x73, 0x19, 0x82,
+ 0xD0, 0x41, 0x69, 0xA9, 0x04, 0xDD, 0x43, 0xB0,
+ 0xE0, 0xF9, 0x48, 0x99, 0xF7, 0x33, 0x02, 0x2D,
+ 0x24, 0xD8, 0x4F, 0xAD, 0x0A, 0x99, 0x16, 0x00,
+ 0xF1, 0x97, 0x9B, 0x27, 0x2A, 0xD6, 0x20, 0x73
+ },
+ {
+ 0xEF, 0x10, 0x7F, 0xCD, 0x0D, 0x92, 0xD8, 0x4E,
+ 0xF5, 0xEF, 0x94, 0x63, 0xE6, 0xE9, 0x62, 0x41,
+ 0x25, 0x45, 0x29, 0xD2, 0xB9, 0x7F, 0xDB, 0xE5,
+ 0x64, 0x19, 0x07, 0x0A, 0xDB, 0xC7, 0xD5, 0x70,
+ 0x6F, 0xEB, 0x8F, 0x44, 0x95, 0x79, 0x81, 0x9E,
+ 0xD4, 0xBE, 0x61, 0x97, 0x85, 0xFF, 0xFA, 0xAF,
+ 0x0D, 0x97, 0x89, 0xCF, 0xE7, 0x26, 0x24, 0x9A,
+ 0xB0, 0x8C, 0x94, 0x68, 0xCB, 0x5F, 0xDE, 0x22
+ },
+ {
+ 0x23, 0x1F, 0xBF, 0xB7, 0xA1, 0xDD, 0xC5, 0xB7,
+ 0x49, 0x33, 0xA2, 0x85, 0xA4, 0x22, 0x4C, 0x04,
+ 0x9C, 0xBA, 0x14, 0x85, 0xCE, 0x35, 0x64, 0x0D,
+ 0x9C, 0x51, 0x6E, 0xD7, 0x8E, 0xAA, 0x22, 0x6D,
+ 0x36, 0xF6, 0x5B, 0x25, 0x89, 0xB8, 0x26, 0xC4,
+ 0x59, 0xFA, 0x6A, 0x91, 0xC4, 0x26, 0xFD, 0x2A,
+ 0x8A, 0xB4, 0x61, 0xC9, 0x76, 0x7E, 0x7B, 0xDD,
+ 0x99, 0x6B, 0xEF, 0x5A, 0x78, 0xF4, 0x81, 0xB7
+ },
+ {
+ 0x3A, 0x83, 0x1F, 0x2D, 0xA9, 0x69, 0xB9, 0xB7,
+ 0x36, 0x0E, 0x74, 0xEE, 0x53, 0xB5, 0x18, 0x98,
+ 0x0A, 0x5E, 0xBC, 0xDF, 0xD4, 0xEE, 0x23, 0xED,
+ 0x80, 0x5C, 0x26, 0x39, 0x4D, 0x18, 0x24, 0x20,
+ 0x8D, 0x7E, 0x8F, 0x63, 0x27, 0xD4, 0xEC, 0x87,
+ 0x97, 0x9C, 0xE4, 0xAF, 0x8A, 0xB0, 0x97, 0xD6,
+ 0x9E, 0x26, 0x1C, 0xA3, 0x2D, 0xB0, 0xEE, 0xFD,
+ 0xBC, 0x18, 0xD1, 0x63, 0x77, 0xA6, 0xBD, 0x20
+ },
+ {
+ 0x83, 0x49, 0xA2, 0x0F, 0xDD, 0xBA, 0xE1, 0xD8,
+ 0x47, 0x2B, 0x67, 0xF0, 0x34, 0x7A, 0xA0, 0xFD,
+ 0x40, 0x4D, 0x65, 0xC6, 0xFA, 0x14, 0x72, 0xB3,
+ 0x10, 0x39, 0x0D, 0x75, 0x65, 0xBA, 0x6B, 0xC1,
+ 0x02, 0x60, 0xD3, 0xDC, 0xE6, 0xA1, 0x4F, 0x4D,
+ 0xD9, 0xB8, 0xB3, 0xE0, 0xA0, 0xC4, 0x7F, 0x6D,
+ 0xB7, 0xE7, 0x10, 0x0A, 0x7A, 0x9B, 0x64, 0xA8,
+ 0x44, 0xF0, 0x10, 0x64, 0xD0, 0x79, 0x05, 0xC5
+ },
+ {
+ 0x23, 0x9A, 0xE3, 0xD6, 0x85, 0x9C, 0x7C, 0x97,
+ 0x2A, 0x5D, 0xC8, 0xB9, 0xC5, 0x5A, 0xEB, 0x93,
+ 0x85, 0x90, 0xCF, 0xB8, 0x55, 0x2A, 0xA3, 0x05,
+ 0xA6, 0xF6, 0xF3, 0x1F, 0xFA, 0x95, 0xA8, 0x40,
+ 0xF4, 0xEC, 0x36, 0xF6, 0xFB, 0x8F, 0x83, 0xB6,
+ 0x9C, 0x1D, 0xA9, 0x81, 0xFC, 0x9B, 0xA1, 0x63,
+ 0x60, 0xDB, 0x0F, 0x4F, 0x7C, 0x68, 0xEB, 0x54,
+ 0x3E, 0xD5, 0x8B, 0x28, 0x75, 0x6A, 0x1E, 0x0D
+ },
+ {
+ 0x7C, 0x56, 0x73, 0x28, 0x63, 0x08, 0x40, 0x8F,
+ 0xBC, 0x62, 0x24, 0x0E, 0x07, 0x47, 0x28, 0xB2,
+ 0x7A, 0x57, 0x5C, 0xAD, 0x2A, 0x15, 0x6E, 0x00,
+ 0xB5, 0xC0, 0x8B, 0x21, 0x8D, 0x88, 0x87, 0x79,
+ 0x1E, 0x47, 0xBF, 0x10, 0xB0, 0xBC, 0x61, 0xA5,
+ 0x82, 0x54, 0x5A, 0x24, 0x69, 0x63, 0x9C, 0xE6,
+ 0x28, 0xC4, 0x0F, 0x20, 0xEA, 0x8B, 0x84, 0x9C,
+ 0xD0, 0x05, 0x44, 0x5F, 0x29, 0xA0, 0x8C, 0xCE
+ },
+ {
+ 0xDD, 0x07, 0x7E, 0x76, 0x9E, 0x0D, 0xEF, 0x78,
+ 0xDD, 0x7A, 0xAD, 0xD5, 0x7D, 0x58, 0x42, 0x1B,
+ 0xDA, 0x3A, 0x1A, 0x4E, 0x69, 0x72, 0x05, 0x9F,
+ 0x8E, 0x64, 0x9C, 0xD6, 0xBC, 0xA4, 0x4A, 0x13,
+ 0xAB, 0x71, 0xEB, 0x53, 0x5D, 0x24, 0x49, 0x22,
+ 0x94, 0x84, 0x65, 0xD7, 0x3B, 0xD6, 0x4E, 0xFB,
+ 0x09, 0x10, 0x46, 0x94, 0x90, 0x66, 0x65, 0x36,
+ 0x03, 0x57, 0x5A, 0x2E, 0x89, 0x1E, 0xBD, 0x54
+ },
+ {
+ 0xB3, 0x6C, 0xEF, 0x28, 0x53, 0x2B, 0x40, 0xD8,
+ 0x17, 0x86, 0x28, 0xF0, 0xFA, 0xB5, 0xE5, 0xB4,
+ 0xA1, 0xDE, 0xC0, 0xC0, 0xE9, 0x11, 0xD7, 0x27,
+ 0xBF, 0x09, 0x49, 0x0F, 0x5E, 0x8D, 0x9F, 0xAC,
+ 0x57, 0x21, 0x3F, 0xD2, 0xA2, 0xD1, 0x2E, 0xD3,
+ 0xD7, 0x7A, 0x41, 0xF5, 0xE2, 0xFE, 0xCC, 0x40,
+ 0xE4, 0xEE, 0xCA, 0x16, 0x12, 0xF5, 0x1C, 0x45,
+ 0x23, 0x31, 0xAE, 0x93, 0x96, 0x62, 0x35, 0xBC
+ },
+ {
+ 0xDE, 0x73, 0x7D, 0xBC, 0x61, 0x2E, 0xBD, 0x31,
+ 0xBC, 0x49, 0xA2, 0xD7, 0xC6, 0x44, 0xD4, 0xB1,
+ 0x37, 0x81, 0x74, 0x19, 0x42, 0x1C, 0x32, 0xF4,
+ 0xE7, 0x51, 0x14, 0xD8, 0x99, 0xE3, 0x13, 0x1D,
+ 0x45, 0xCA, 0x54, 0x51, 0x24, 0x8F, 0x24, 0x16,
+ 0x9F, 0xBF, 0x17, 0xEE, 0x60, 0xA9, 0xB7, 0x07,
+ 0x98, 0xA4, 0xB9, 0x37, 0xCE, 0xA6, 0x27, 0x95,
+ 0x28, 0x96, 0x39, 0xD1, 0x8F, 0xCD, 0x89, 0xE4
+ },
+ {
+ 0xB4, 0xC1, 0xBB, 0xCB, 0xBC, 0xCD, 0xFC, 0xE4,
+ 0xD2, 0xBE, 0x9D, 0xCD, 0xB9, 0x83, 0xC1, 0xB0,
+ 0x20, 0xC5, 0xF7, 0x20, 0xDA, 0x5B, 0xEC, 0xF4,
+ 0xCB, 0x2A, 0x9A, 0x3D, 0x1B, 0x8D, 0x23, 0xCE,
+ 0xA7, 0xA9, 0xF5, 0xFD, 0x70, 0xD3, 0x74, 0x0E,
+ 0xCD, 0x67, 0xCE, 0x7D, 0x1E, 0x9C, 0x5E, 0x31,
+ 0xA3, 0x30, 0x2D, 0xF6, 0x6A, 0x9B, 0x5D, 0x54,
+ 0x30, 0x44, 0x90, 0xFB, 0xE1, 0xC4, 0xA8, 0xB9
+ },
+ {
+ 0xB1, 0xD6, 0x5E, 0x70, 0xC6, 0x9B, 0xA7, 0xE3,
+ 0xA7, 0x28, 0xE8, 0xB6, 0x44, 0x94, 0x93, 0xF2,
+ 0x37, 0x51, 0x0B, 0x23, 0xB6, 0xE7, 0x7D, 0x95,
+ 0x84, 0xD0, 0x5F, 0xF4, 0xD3, 0xF0, 0x87, 0x80,
+ 0x92, 0x9D, 0x74, 0xFA, 0x5B, 0xED, 0x9B, 0x75,
+ 0xD4, 0xD6, 0xD1, 0xCA, 0x91, 0xAB, 0x8D, 0x26,
+ 0x37, 0xDC, 0x2E, 0x79, 0xBA, 0x0F, 0xE0, 0x59,
+ 0x4A, 0xCD, 0x68, 0xFB, 0x3C, 0xC6, 0x60, 0xB9
+ },
+ {
+ 0xDA, 0x79, 0xF7, 0x29, 0xEA, 0xB9, 0x8C, 0x04,
+ 0xF3, 0x7F, 0xCC, 0x85, 0x4B, 0x69, 0xA8, 0x4E,
+ 0x46, 0x7D, 0xEA, 0x1E, 0x77, 0x82, 0xE7, 0xAF,
+ 0x02, 0xCB, 0x44, 0xA4, 0x9D, 0x21, 0x0D, 0x25,
+ 0x23, 0x68, 0x3D, 0x42, 0x0A, 0xC1, 0xDE, 0xC8,
+ 0xAD, 0x1F, 0xB4, 0x0E, 0x65, 0xAB, 0x3F, 0xE2,
+ 0x51, 0xA8, 0x51, 0xE2, 0x83, 0xD8, 0x58, 0x38,
+ 0x08, 0x42, 0x61, 0x30, 0x1E, 0xCD, 0x08, 0x9B
+ },
+ {
+ 0x71, 0x40, 0x40, 0x40, 0x39, 0x21, 0xAE, 0x55,
+ 0x48, 0xA2, 0x03, 0x39, 0xD6, 0x9E, 0x09, 0x3F,
+ 0x60, 0x9A, 0xA9, 0x9C, 0x22, 0xDB, 0x72, 0x59,
+ 0x1D, 0x1E, 0xF4, 0xFC, 0xB0, 0xAF, 0x01, 0x61,
+ 0x73, 0xE5, 0x77, 0xD8, 0xC1, 0xA3, 0x06, 0x3B,
+ 0x44, 0x3A, 0x0E, 0x48, 0xF3, 0x13, 0xCF, 0x2E,
+ 0x0F, 0x9B, 0x0C, 0x2E, 0xF9, 0x6A, 0x96, 0xC4,
+ 0x24, 0x32, 0x2C, 0xCC, 0x0C, 0xD5, 0x30, 0x4C
+ },
+ {
+ 0x8B, 0x2E, 0x8C, 0x3F, 0x0E, 0x3C, 0x31, 0x9B,
+ 0xA6, 0x7E, 0x86, 0x01, 0x4B, 0xDA, 0x68, 0x3E,
+ 0x53, 0x57, 0xA0, 0x40, 0x37, 0xB4, 0x56, 0x32,
+ 0x86, 0xAC, 0x89, 0xCD, 0xDB, 0x7E, 0xE0, 0x4C,
+ 0xF6, 0x67, 0x5F, 0x9A, 0xB6, 0x1F, 0xC8, 0x33,
+ 0x2D, 0x21, 0x8D, 0x2B, 0xCA, 0x97, 0x15, 0xE7,
+ 0xDB, 0xE5, 0x83, 0x72, 0xD1, 0xEE, 0xBF, 0x6B,
+ 0xC2, 0x94, 0x84, 0x71, 0xCF, 0xCE, 0xBB, 0x77
+ },
+ {
+ 0x32, 0xEE, 0x95, 0x49, 0xD4, 0xE3, 0x2F, 0x4B,
+ 0xE9, 0xC5, 0x00, 0xBD, 0x85, 0x43, 0xAF, 0xD0,
+ 0xB6, 0x97, 0x82, 0xD0, 0xB3, 0xFF, 0x7E, 0xD4,
+ 0x7A, 0x88, 0x1A, 0x0E, 0x49, 0x1F, 0x37, 0x65,
+ 0x0A, 0x21, 0xB2, 0x6C, 0x3F, 0x5D, 0x0A, 0x64,
+ 0xE0, 0x90, 0x58, 0xB3, 0x00, 0x4A, 0x23, 0x68,
+ 0xB9, 0x50, 0xE4, 0x72, 0x30, 0xC2, 0x29, 0x66,
+ 0xD3, 0xF7, 0x9D, 0xA7, 0xBA, 0xA0, 0xB8, 0x7F
+ },
+ {
+ 0xCA, 0xE7, 0xF2, 0x92, 0x71, 0x37, 0x82, 0xC4,
+ 0x71, 0xFE, 0x31, 0x78, 0xA9, 0x42, 0x0C, 0xD4,
+ 0xC1, 0x1F, 0xCD, 0x3F, 0x6D, 0xBE, 0x5D, 0x15,
+ 0xC8, 0x4A, 0xB7, 0x35, 0x3C, 0x73, 0x9E, 0xF0,
+ 0x64, 0x16, 0x39, 0xA2, 0xF9, 0x2A, 0xED, 0x31,
+ 0xC5, 0x6A, 0x20, 0x21, 0xCC, 0x5E, 0x58, 0xCB,
+ 0xEA, 0xD3, 0x74, 0xE2, 0xDC, 0x8A, 0x0D, 0xBC,
+ 0xE5, 0x45, 0x0F, 0xE7, 0xA0, 0x18, 0xCF, 0xA4
+ },
+ {
+ 0xF1, 0x7F, 0xEF, 0xAE, 0xAE, 0x7D, 0x40, 0xCD,
+ 0x88, 0x5D, 0xAC, 0x0B, 0xC3, 0x50, 0xC0, 0x27,
+ 0x36, 0x68, 0xEA, 0x02, 0x22, 0xDF, 0x5C, 0x75,
+ 0x69, 0x4F, 0x5C, 0xB3, 0xA3, 0x21, 0x51, 0x9F,
+ 0x6E, 0x0E, 0xC4, 0x3B, 0xA0, 0xC8, 0x59, 0x3D,
+ 0xC7, 0x34, 0x13, 0x41, 0xE5, 0x19, 0x48, 0x8F,
+ 0x20, 0xAB, 0xD5, 0xB8, 0x12, 0x4D, 0xFA, 0xCE,
+ 0xA5, 0xCD, 0xE0, 0x96, 0x5B, 0x69, 0x70, 0xF9
+ },
+ {
+ 0xE2, 0xCF, 0x86, 0xDD, 0xC8, 0x42, 0x4E, 0xE5,
+ 0x47, 0xEB, 0x72, 0x45, 0xB7, 0x32, 0x5E, 0x02,
+ 0xF2, 0xE3, 0xAC, 0x01, 0x3C, 0x8D, 0x38, 0x6B,
+ 0x3D, 0x2E, 0x09, 0x20, 0x8A, 0x9B, 0xCC, 0x0B,
+ 0x44, 0xC4, 0xC4, 0x38, 0xEA, 0xAF, 0x52, 0xD2,
+ 0x07, 0x7E, 0x91, 0x77, 0xEB, 0x8E, 0xE1, 0xD5,
+ 0x90, 0x75, 0xB5, 0x25, 0x92, 0x20, 0x20, 0x62,
+ 0x22, 0x93, 0x54, 0xBF, 0x23, 0xC9, 0x62, 0x39
+ },
+ {
+ 0x38, 0xF2, 0x6A, 0x11, 0x02, 0xCB, 0x16, 0x2D,
+ 0x35, 0x1F, 0x84, 0x3B, 0x3C, 0x49, 0xF6, 0xFF,
+ 0x85, 0x44, 0x16, 0x33, 0xB6, 0x70, 0x4A, 0x28,
+ 0x6A, 0xF8, 0x1C, 0xCB, 0xAE, 0x5A, 0x67, 0xD3,
+ 0x01, 0x5C, 0xC0, 0xEF, 0xAF, 0xB7, 0x05, 0x7D,
+ 0xC2, 0xB2, 0x8D, 0x67, 0x66, 0xE8, 0x2A, 0x06,
+ 0x8A, 0x4C, 0x0B, 0x52, 0x4B, 0x66, 0xD0, 0xA6,
+ 0x32, 0x77, 0x5D, 0x93, 0x06, 0x15, 0x75, 0xF9
+ },
+ {
+ 0xA2, 0xC4, 0x30, 0x2D, 0xAC, 0xA7, 0xA7, 0xC6,
+ 0x32, 0xF6, 0x76, 0x30, 0x4E, 0x62, 0x75, 0xC1,
+ 0xC1, 0xF0, 0xDB, 0xFE, 0x38, 0xDC, 0x57, 0x1C,
+ 0xB2, 0x3E, 0x1F, 0x7B, 0xA5, 0xDC, 0x18, 0x18,
+ 0x0F, 0xC4, 0x8A, 0x01, 0x5F, 0x92, 0x7C, 0x89,
+ 0x96, 0x7C, 0x1E, 0x10, 0x4E, 0x66, 0xF5, 0xEA,
+ 0x5B, 0x2D, 0xD3, 0x1D, 0x78, 0x1C, 0x38, 0x49,
+ 0xBF, 0xC6, 0x49, 0x22, 0x0C, 0x38, 0x5C, 0x82
+ },
+ {
+ 0xC1, 0x9C, 0x6B, 0x3F, 0xB5, 0x35, 0x2B, 0xB3,
+ 0x94, 0xC2, 0x68, 0x46, 0x52, 0x3C, 0x25, 0xE8,
+ 0x26, 0x5D, 0x50, 0x5F, 0x50, 0x1F, 0x96, 0x03,
+ 0xA4, 0xF8, 0xBD, 0x55, 0x38, 0x6C, 0xF4, 0xCC,
+ 0x9F, 0x4D, 0x71, 0xF3, 0x8F, 0xF4, 0x45, 0xF4,
+ 0xEF, 0xC8, 0x30, 0x98, 0xD4, 0x79, 0x69, 0x33,
+ 0x4E, 0x79, 0xA2, 0xBC, 0xB4, 0x02, 0x6B, 0xC6,
+ 0x3B, 0x79, 0x59, 0xDE, 0xDB, 0x62, 0xB7, 0xBD
+ },
+ {
+ 0x1F, 0x4A, 0xB9, 0x84, 0x0A, 0x1C, 0xFA, 0x8F,
+ 0xE6, 0xC5, 0x62, 0x2D, 0x9B, 0x53, 0x8B, 0xEC,
+ 0xB8, 0x80, 0x7A, 0x87, 0x78, 0xB6, 0x9D, 0x93,
+ 0x05, 0xF9, 0x08, 0x57, 0x65, 0x73, 0xB2, 0x0C,
+ 0xA3, 0x70, 0x4E, 0x89, 0x12, 0x97, 0x26, 0xD5,
+ 0x02, 0xE1, 0x98, 0x58, 0x8D, 0x07, 0x26, 0x68,
+ 0xBF, 0x03, 0x63, 0x0B, 0x5B, 0x5A, 0x92, 0x32,
+ 0xFF, 0x39, 0x25, 0x27, 0x24, 0x9D, 0xF9, 0x9B
+ },
+ {
+ 0xFE, 0x03, 0x17, 0x7B, 0x58, 0xB4, 0x88, 0x83,
+ 0xA8, 0x6D, 0x42, 0x68, 0x33, 0x4B, 0x95, 0x91,
+ 0xD9, 0xFB, 0xD8, 0xBF, 0x7C, 0xC2, 0xAA, 0xCC,
+ 0x50, 0x25, 0xEF, 0x47, 0x6B, 0x45, 0x33, 0xBA,
+ 0x7B, 0xD7, 0x81, 0xDF, 0x01, 0x11, 0x47, 0xB3,
+ 0xCF, 0x51, 0x1D, 0x8B, 0x3D, 0xCD, 0x8C, 0x78,
+ 0x0D, 0x30, 0xD7, 0xDA, 0x71, 0x8C, 0x22, 0x44,
+ 0x23, 0x19, 0x81, 0x7B, 0xE3, 0x18, 0x6B, 0xC5
+ },
+ {
+ 0xF4, 0xC3, 0xB0, 0x59, 0x10, 0x5B, 0x6A, 0xA5,
+ 0xFE, 0x78, 0x84, 0x3A, 0x07, 0xD9, 0x4F, 0x71,
+ 0x20, 0x62, 0xCB, 0x5A, 0x4D, 0xD6, 0x05, 0x9F,
+ 0x97, 0x90, 0x4D, 0x0C, 0x57, 0x97, 0x3B, 0xA8,
+ 0xDF, 0x71, 0xD1, 0x5A, 0x51, 0x1A, 0x06, 0x68,
+ 0x64, 0xFE, 0x45, 0x5E, 0xDC, 0x9E, 0x5F, 0x16,
+ 0x52, 0x4C, 0xEC, 0x7E, 0xE2, 0x48, 0xEE, 0x3E,
+ 0xC9, 0x29, 0x06, 0x3B, 0xD1, 0x07, 0x98, 0xDA
+ },
+ {
+ 0x57, 0xA1, 0x6F, 0x96, 0x4B, 0x18, 0x1B, 0x12,
+ 0x03, 0xA5, 0x80, 0x3B, 0x73, 0x81, 0x7D, 0x77,
+ 0x44, 0x83, 0x82, 0x6C, 0xEA, 0x11, 0x3B, 0x9C,
+ 0xCF, 0xCF, 0x0E, 0xB8, 0x7C, 0xB2, 0x30, 0x64,
+ 0x28, 0x49, 0x62, 0xD8, 0x47, 0xBB, 0x1F, 0xAE,
+ 0x8C, 0xBF, 0x5C, 0xC6, 0x3B, 0x3C, 0xEA, 0xA1,
+ 0x24, 0x1E, 0xA4, 0x2C, 0x63, 0xF8, 0x98, 0x01,
+ 0x1F, 0xC4, 0xDB, 0xCA, 0xE6, 0xF5, 0xE8, 0xC5
+ },
+ {
+ 0x79, 0x52, 0xFC, 0x83, 0xAC, 0xF1, 0x3A, 0x95,
+ 0xCA, 0x9C, 0x27, 0xA2, 0x15, 0x6D, 0x9C, 0x1B,
+ 0x63, 0x00, 0xB0, 0xEF, 0x79, 0x0F, 0x57, 0x2B,
+ 0xC3, 0x94, 0xC6, 0x77, 0xF7, 0xC1, 0x46, 0x29,
+ 0xEB, 0xD8, 0xE7, 0xD5, 0xD7, 0xC7, 0xF1, 0xA5,
+ 0xEB, 0xBD, 0xC3, 0x90, 0xCC, 0x08, 0xCD, 0x58,
+ 0xC2, 0x00, 0x89, 0x00, 0xCB, 0x55, 0xEB, 0x05,
+ 0xE4, 0x44, 0xA6, 0x8C, 0x3B, 0x39, 0x3E, 0x60
+ },
+ {
+ 0x2C, 0x22, 0x40, 0xD6, 0xB5, 0x41, 0xF4, 0x29,
+ 0x4F, 0xF9, 0x76, 0x79, 0x1D, 0x35, 0xE6, 0xA2,
+ 0xD4, 0x92, 0xF5, 0x7A, 0x91, 0x5F, 0xBA, 0xC5,
+ 0x83, 0x26, 0x60, 0xC1, 0x0E, 0x9C, 0x96, 0x46,
+ 0x5C, 0x7B, 0xD5, 0xFC, 0xA7, 0x51, 0xBF, 0x68,
+ 0xE2, 0x67, 0x3A, 0x63, 0x8E, 0x3A, 0xF7, 0x35,
+ 0xB0, 0x20, 0x91, 0xD7, 0x5D, 0x1A, 0x7F, 0x89,
+ 0xE3, 0xF7, 0x61, 0xC5, 0xDF, 0x82, 0x1A, 0x6B
+ },
+ {
+ 0x59, 0xDC, 0x84, 0x6D, 0x34, 0x05, 0xCC, 0xD8,
+ 0x06, 0xF8, 0xFA, 0x20, 0xC8, 0x96, 0x9E, 0xF6,
+ 0x8A, 0x43, 0x85, 0xEF, 0x6C, 0x27, 0x4E, 0xEE,
+ 0x6D, 0xC0, 0x69, 0x2C, 0x3E, 0xCF, 0xB1, 0xA8,
+ 0x34, 0xCE, 0x64, 0x43, 0x76, 0xC5, 0x2B, 0x80,
+ 0x42, 0x1B, 0xAE, 0x94, 0xD6, 0xC7, 0xFD, 0xCC,
+ 0xA5, 0xA8, 0xF1, 0x85, 0x9C, 0x45, 0xA1, 0x0C,
+ 0x4E, 0xB2, 0x74, 0x82, 0x6F, 0x1F, 0x08, 0x9F
+ },
+ {
+ 0xB7, 0x52, 0x96, 0x27, 0x07, 0xA1, 0x7B, 0x66,
+ 0x4F, 0xAE, 0xB3, 0x13, 0xE2, 0xB9, 0x52, 0xDC,
+ 0x03, 0xE7, 0x4A, 0x7E, 0x94, 0x47, 0x09, 0x8A,
+ 0xA6, 0xD4, 0xEA, 0x5B, 0xD2, 0x87, 0xD0, 0x7A,
+ 0x12, 0x25, 0xEC, 0xED, 0xA9, 0x81, 0x15, 0x70,
+ 0x58, 0x0A, 0x51, 0x2B, 0x2B, 0x20, 0xB3, 0xFC,
+ 0xFC, 0xA7, 0x0B, 0x44, 0xF6, 0x45, 0x4E, 0xF3,
+ 0xC3, 0x52, 0x4C, 0xCA, 0x6B, 0x69, 0x47, 0x5B
+ },
+ {
+ 0xDA, 0x0D, 0x8E, 0x54, 0x61, 0xF8, 0x10, 0x24,
+ 0xEF, 0xFE, 0xED, 0x5D, 0x70, 0x76, 0xA0, 0x4F,
+ 0xED, 0xED, 0xAC, 0x57, 0xE7, 0xC9, 0x8A, 0x59,
+ 0x45, 0xBF, 0xDE, 0x66, 0x75, 0x58, 0x18, 0x85,
+ 0x1B, 0xE1, 0x13, 0x6B, 0x71, 0xF4, 0x33, 0xA5,
+ 0x6B, 0xDA, 0x18, 0x41, 0xAE, 0x71, 0x39, 0x2C,
+ 0x4B, 0x82, 0x90, 0x82, 0x63, 0x59, 0xF5, 0x87,
+ 0x22, 0x3C, 0x3E, 0xF7, 0x37, 0xFF, 0x73, 0x2A
+ },
+ {
+ 0xED, 0xB8, 0x6A, 0x23, 0x7C, 0x6F, 0x13, 0x7D,
+ 0xFB, 0xB3, 0x47, 0x01, 0x1E, 0xDB, 0x4C, 0x6E,
+ 0x86, 0x1F, 0x4D, 0x58, 0x14, 0x60, 0x85, 0x46,
+ 0x34, 0x41, 0x04, 0x2F, 0xA3, 0x63, 0x16, 0xF1,
+ 0xFA, 0xF8, 0x87, 0x11, 0xBB, 0x0F, 0x18, 0x11,
+ 0xDF, 0xBB, 0xBF, 0xA7, 0xB5, 0x1F, 0x9C, 0xE2,
+ 0xD4, 0x96, 0x05, 0x24, 0x3E, 0xD0, 0x16, 0xCB,
+ 0xAD, 0x68, 0x85, 0xEA, 0xE2, 0x03, 0x67, 0x4F
+ },
+ {
+ 0xE6, 0xD8, 0xE0, 0xFB, 0xAA, 0x29, 0xDB, 0xEB,
+ 0x60, 0xF3, 0xC7, 0xF9, 0x85, 0xBA, 0xD7, 0x54,
+ 0xD7, 0x21, 0xAA, 0xC6, 0x3D, 0xA6, 0xF4, 0x49,
+ 0x0C, 0x9D, 0x7E, 0xA2, 0x31, 0xD2, 0x62, 0x2F,
+ 0xDF, 0xDE, 0xF1, 0x48, 0xD0, 0xCA, 0x44, 0x2B,
+ 0x8D, 0x59, 0xCF, 0x3E, 0x4F, 0x98, 0x35, 0xCB,
+ 0xC2, 0x40, 0xAF, 0x40, 0xFB, 0xA6, 0x3A, 0x2E,
+ 0xA5, 0xA2, 0x35, 0xD4, 0x6E, 0xEA, 0x6E, 0xAC
+ },
+ {
+ 0xD4, 0xE4, 0x63, 0xC4, 0x88, 0x29, 0x87, 0xEB,
+ 0x44, 0xA5, 0xED, 0x0C, 0x82, 0x1D, 0x68, 0xB0,
+ 0xFE, 0xF9, 0x9D, 0x6F, 0x53, 0xA5, 0x7B, 0xF3,
+ 0x19, 0xBD, 0xAC, 0x25, 0xAC, 0x38, 0xEB, 0x0B,
+ 0x23, 0xE1, 0x13, 0x8C, 0x00, 0x12, 0xF5, 0xF3,
+ 0x83, 0x46, 0xA1, 0xDE, 0x9D, 0x4A, 0x99, 0x2A,
+ 0x64, 0xB9, 0x42, 0x83, 0x4A, 0x85, 0x6E, 0xFB,
+ 0xAA, 0x06, 0x20, 0xBD, 0xA2, 0x9F, 0x6A, 0x86
+ },
+ {
+ 0x42, 0xD8, 0x10, 0xD0, 0x1C, 0x2D, 0xA2, 0x47,
+ 0x35, 0xF0, 0x4A, 0x5E, 0x90, 0x13, 0x38, 0xFD,
+ 0xFC, 0x2D, 0xE1, 0x71, 0x5F, 0xF6, 0x64, 0x3A,
+ 0x37, 0x2F, 0x88, 0x0E, 0x6C, 0x5C, 0x6C, 0x13,
+ 0xD2, 0xB3, 0xAD, 0x70, 0x77, 0x46, 0x9D, 0x64,
+ 0x33, 0x54, 0x05, 0x4D, 0x32, 0xDD, 0x80, 0x49,
+ 0xEA, 0x63, 0x73, 0x2B, 0x57, 0x45, 0xBD, 0xB2,
+ 0x3B, 0xE2, 0xB5, 0x8E, 0x48, 0xC1, 0x01, 0x3A
+ },
+ {
+ 0xCF, 0xBF, 0x54, 0x30, 0x07, 0x6F, 0x82, 0x5A,
+ 0x3B, 0xBB, 0x88, 0xC1, 0xBC, 0x0A, 0xEF, 0x61,
+ 0x25, 0x9E, 0x8F, 0x4D, 0x5F, 0xA3, 0x3C, 0x39,
+ 0x82, 0x50, 0x62, 0xF1, 0x5D, 0x19, 0xFD, 0x4A,
+ 0x01, 0x82, 0xCD, 0x97, 0x36, 0xD2, 0xAE, 0xC9,
+ 0x74, 0x9C, 0xCF, 0x83, 0x18, 0x6C, 0x35, 0x74,
+ 0xAB, 0x94, 0x42, 0x65, 0x40, 0x66, 0x0A, 0x9D,
+ 0xB8, 0xC3, 0xAA, 0xBB, 0xCB, 0xDD, 0x9D, 0x0F
+ },
+ {
+ 0x6C, 0x24, 0x34, 0xA1, 0xAF, 0xA1, 0x57, 0xAC,
+ 0xCC, 0x34, 0xA5, 0xC4, 0x87, 0x2D, 0xFF, 0x69,
+ 0xFE, 0x7F, 0x31, 0x96, 0xCB, 0x1A, 0x75, 0x0C,
+ 0x54, 0x1D, 0x8B, 0x73, 0x92, 0x28, 0x88, 0xBA,
+ 0xBE, 0x89, 0xB1, 0xC3, 0x82, 0x02, 0x21, 0x86,
+ 0x20, 0xD8, 0x8D, 0x77, 0xDA, 0xD9, 0xDF, 0xBA,
+ 0xB3, 0xFB, 0xF7, 0x40, 0xB2, 0xD1, 0xD8, 0xF3,
+ 0x7E, 0xAD, 0x25, 0x8E, 0x2E, 0xF1, 0x06, 0x52
+ },
+ {
+ 0x48, 0xB7, 0x26, 0x8A, 0xA4, 0x34, 0x2F, 0xAB,
+ 0x02, 0x1D, 0x14, 0x72, 0xE9, 0x25, 0x7F, 0x76,
+ 0x58, 0x5C, 0xC5, 0x68, 0x10, 0xC8, 0xF2, 0xA6,
+ 0xE1, 0xD4, 0xA8, 0x94, 0x6B, 0x77, 0x71, 0x42,
+ 0xD4, 0x4A, 0xE5, 0x13, 0xA8, 0x80, 0x9F, 0x2D,
+ 0x6D, 0xC7, 0x26, 0x30, 0x5F, 0x79, 0x44, 0x60,
+ 0x4D, 0x95, 0x2D, 0x4A, 0x9F, 0x08, 0x5C, 0x5C,
+ 0x10, 0x50, 0xBA, 0xFD, 0xD2, 0x1D, 0x1E, 0x60
+ },
+ {
+ 0xCE, 0xCF, 0xCE, 0x4B, 0x12, 0xC6, 0xCF, 0x53,
+ 0xD1, 0xB1, 0xB2, 0xD4, 0x18, 0xA4, 0x93, 0xE3,
+ 0xF4, 0x29, 0x17, 0x03, 0x21, 0xE8, 0x1A, 0xA2,
+ 0x52, 0x63, 0xAA, 0xA7, 0x15, 0xD5, 0xCA, 0x38,
+ 0x9F, 0x65, 0xC3, 0xAC, 0xF9, 0x9B, 0x18, 0x0E,
+ 0x44, 0x6B, 0x50, 0xE6, 0x01, 0xFC, 0xBF, 0x44,
+ 0x61, 0xD0, 0x42, 0x6A, 0x85, 0x92, 0xA0, 0x77,
+ 0x42, 0x20, 0x18, 0x57, 0x12, 0x5F, 0x71, 0xEE
+ },
+ {
+ 0x38, 0x5A, 0x75, 0x22, 0x42, 0xEB, 0x9E, 0xD5,
+ 0x6B, 0x07, 0x4B, 0x70, 0x2C, 0x91, 0xE7, 0x5A,
+ 0xEC, 0x0B, 0xE9, 0x06, 0x4B, 0xD9, 0xCF, 0x88,
+ 0x03, 0x04, 0xC2, 0x13, 0x27, 0x0C, 0xB2, 0xEA,
+ 0xE8, 0xE2, 0x1D, 0x9A, 0xE8, 0xC6, 0x08, 0x15,
+ 0x19, 0xF7, 0x5D, 0xFA, 0xBB, 0x00, 0x3B, 0x24,
+ 0x32, 0xB0, 0x47, 0x55, 0xB8, 0xC3, 0x2C, 0x97,
+ 0xAC, 0x29, 0x14, 0xE8, 0xBF, 0x45, 0xB2, 0x34
+ },
+ {
+ 0xD8, 0x9A, 0x12, 0x4A, 0x9B, 0x95, 0x8B, 0xA2,
+ 0x3D, 0x09, 0x20, 0x7A, 0xCF, 0xA6, 0x2A, 0x33,
+ 0xB8, 0x70, 0x89, 0xB2, 0x86, 0xE8, 0x43, 0x8B,
+ 0xDC, 0x01, 0xE2, 0x33, 0xAB, 0x2A, 0x86, 0x30,
+ 0xA1, 0xEE, 0xB6, 0xB2, 0xB9, 0xBA, 0x6B, 0x7D,
+ 0x21, 0x00, 0x10, 0x77, 0x33, 0xDE, 0xAF, 0x4C,
+ 0x20, 0x47, 0x8C, 0x26, 0xF2, 0x49, 0xC6, 0x89,
+ 0xC5, 0x26, 0x84, 0x73, 0xE2, 0xE9, 0xFA, 0x60
+ },
+ {
+ 0x43, 0xDE, 0x10, 0x92, 0xFF, 0x9F, 0xF5, 0x28,
+ 0x20, 0x6C, 0x6F, 0xCF, 0x81, 0x32, 0x2E, 0xAD,
+ 0x3D, 0x22, 0xEA, 0xA4, 0xC8, 0x54, 0x52, 0x15,
+ 0x77, 0xDF, 0x33, 0x62, 0x47, 0x49, 0x5C, 0xE1,
+ 0x72, 0xFC, 0x87, 0x39, 0x95, 0x30, 0x0B, 0x21,
+ 0xB9, 0x46, 0x10, 0xC9, 0xD2, 0xF6, 0x33, 0xB5,
+ 0x33, 0xBD, 0xE4, 0x56, 0x8C, 0xA0, 0x9C, 0x38,
+ 0x0E, 0x84, 0x68, 0xFE, 0x6A, 0xD8, 0xD8, 0x1D
+ },
+ {
+ 0x86, 0x8B, 0x60, 0x11, 0x99, 0xEF, 0x00, 0x0B,
+ 0x70, 0x5C, 0xD6, 0x4D, 0x39, 0x30, 0x26, 0x2A,
+ 0x5A, 0xB9, 0x10, 0xE3, 0x4E, 0x2D, 0x78, 0xE8,
+ 0x58, 0x7B, 0x4E, 0x01, 0x0D, 0x37, 0x6D, 0xD4,
+ 0xA0, 0x0D, 0xE4, 0x48, 0x67, 0xD0, 0xE9, 0x33,
+ 0xEE, 0x39, 0xA1, 0xFA, 0x91, 0x47, 0xD4, 0x99,
+ 0xD1, 0x84, 0xF3, 0xA9, 0xCF, 0x35, 0x4F, 0x2D,
+ 0x3C, 0x51, 0x14, 0x6F, 0xF7, 0x15, 0x2D, 0x68
+ },
+ {
+ 0x15, 0x17, 0xF8, 0xF0, 0x44, 0x2F, 0x0D, 0x50,
+ 0xBB, 0xC0, 0xAA, 0xB6, 0x84, 0x6F, 0xDC, 0xE3,
+ 0xB7, 0x0F, 0xAE, 0xA4, 0xBB, 0x51, 0x13, 0xAC,
+ 0xB2, 0x3A, 0xBE, 0x10, 0x1D, 0x99, 0xA4, 0x0A,
+ 0x1B, 0x76, 0xC1, 0xE8, 0xDC, 0x2E, 0xA1, 0x93,
+ 0x62, 0x94, 0x82, 0x3A, 0xD8, 0x35, 0x4C, 0x11,
+ 0xE2, 0xE9, 0x6C, 0x67, 0x12, 0xBE, 0x4C, 0xF7,
+ 0x7C, 0x58, 0x3F, 0xD0, 0x6B, 0x5E, 0x5C, 0x55
+ },
+ {
+ 0xAF, 0x4C, 0x6C, 0x67, 0xC5, 0xCA, 0x38, 0x38,
+ 0x73, 0x48, 0xCA, 0x3E, 0xC2, 0xBE, 0xD7, 0xFB,
+ 0xA8, 0xC2, 0xB3, 0xD2, 0x2D, 0xE1, 0x48, 0xD0,
+ 0x8A, 0x61, 0x8C, 0x29, 0x70, 0x23, 0xFB, 0x7B,
+ 0x6D, 0x2C, 0x15, 0x3D, 0x5E, 0xFC, 0xD1, 0x68,
+ 0x89, 0x99, 0x91, 0x0B, 0x20, 0xE1, 0xEA, 0xC7,
+ 0xC1, 0x00, 0xA2, 0xC5, 0xA6, 0xC1, 0xAC, 0xF5,
+ 0xE9, 0x8F, 0x14, 0x3B, 0x41, 0xDC, 0x8A, 0x12
+ },
+ {
+ 0xA2, 0xAD, 0x94, 0x24, 0x3B, 0x8E, 0xEA, 0x68,
+ 0xF5, 0xFA, 0xDD, 0x69, 0x08, 0xAD, 0xB0, 0xDA,
+ 0xCD, 0xAA, 0x6A, 0x6D, 0x24, 0xC2, 0x50, 0xD3,
+ 0x39, 0x40, 0x3D, 0xBA, 0x82, 0x31, 0xBD, 0x51,
+ 0xE8, 0x87, 0xCB, 0x5B, 0x1B, 0x7B, 0xDE, 0x27,
+ 0x74, 0xC6, 0xB0, 0x8A, 0xCC, 0xE0, 0xF7, 0x49,
+ 0x56, 0x48, 0xDA, 0x3B, 0xEB, 0xC7, 0xB1, 0xC2,
+ 0x82, 0x15, 0x08, 0xC4, 0xD3, 0x82, 0xF7, 0x30
+ },
+ {
+ 0x28, 0xF8, 0x8C, 0xDB, 0xE9, 0x03, 0xAD, 0x63,
+ 0xA0, 0x23, 0x31, 0xDE, 0x1A, 0x32, 0xAF, 0x6D,
+ 0xBB, 0xA8, 0x2D, 0x7F, 0xC0, 0x79, 0x87, 0x02,
+ 0x72, 0x49, 0x33, 0xDA, 0x77, 0x38, 0x07, 0xBC,
+ 0x80, 0x42, 0x78, 0x13, 0x47, 0x81, 0xF1, 0x26,
+ 0x23, 0x32, 0x20, 0xE3, 0x07, 0x92, 0x81, 0x31,
+ 0xB2, 0x47, 0x10, 0xB4, 0x67, 0x4E, 0xD7, 0x05,
+ 0x11, 0x2F, 0x95, 0xD1, 0xAA, 0x37, 0xA2, 0xDC
+ },
+ {
+ 0x5B, 0xB2, 0x92, 0x65, 0xE2, 0x46, 0xB8, 0x84,
+ 0xFF, 0x40, 0x91, 0x4F, 0xFA, 0x93, 0xD9, 0xA1,
+ 0x2E, 0xDC, 0x19, 0xEE, 0xE9, 0xCC, 0x8A, 0x83,
+ 0x63, 0x1D, 0x68, 0xBD, 0x46, 0xAA, 0xD3, 0x35,
+ 0x4B, 0xA6, 0x67, 0x4B, 0x91, 0x3F, 0x4F, 0x82,
+ 0x3E, 0x79, 0x1F, 0x0C, 0xB1, 0x9E, 0xA6, 0xA6,
+ 0x7C, 0x6E, 0x32, 0xE9, 0xBE, 0x0D, 0x0F, 0xF5,
+ 0x76, 0x0F, 0x16, 0xDD, 0x75, 0xA8, 0x7B, 0x5D
+ },
+ {
+ 0xBF, 0x3C, 0x06, 0xDC, 0x6D, 0x94, 0xE3, 0x85,
+ 0x9A, 0x4D, 0xAA, 0x50, 0xEC, 0xA1, 0xAF, 0x53,
+ 0x57, 0xE3, 0x45, 0x79, 0xE5, 0x99, 0xF8, 0x20,
+ 0x49, 0xE1, 0xCC, 0xA7, 0xA7, 0xD4, 0xF3, 0x3F,
+ 0xEA, 0x44, 0x3B, 0x44, 0x69, 0x1B, 0xD4, 0x36,
+ 0x88, 0xF5, 0x55, 0x05, 0x31, 0xCF, 0x22, 0xB7,
+ 0x12, 0x77, 0x89, 0x0B, 0xFF, 0xAE, 0x1E, 0xCE,
+ 0x78, 0x3F, 0x56, 0x63, 0xA1, 0xC4, 0xD7, 0x1A
+ },
+ {
+ 0xC9, 0x0D, 0xF5, 0x32, 0xF2, 0xF1, 0x49, 0x3A,
+ 0x11, 0x55, 0xBE, 0x8C, 0x2A, 0x44, 0x00, 0x92,
+ 0x20, 0x49, 0x97, 0x4E, 0x7D, 0x4F, 0x4B, 0x54,
+ 0xF8, 0x20, 0xC2, 0x26, 0x9D, 0x3B, 0x16, 0x1B,
+ 0x6E, 0x88, 0xEB, 0x77, 0x6B, 0x85, 0x9B, 0x89,
+ 0xB8, 0x56, 0x7F, 0xBC, 0x55, 0x0C, 0x4F, 0x54,
+ 0xAA, 0xD2, 0x7A, 0x16, 0x10, 0x65, 0x6D, 0x62,
+ 0x5C, 0x32, 0x7F, 0x66, 0x5D, 0xCA, 0x70, 0x7C
+ },
+ {
+ 0x3D, 0x39, 0xEE, 0xCC, 0x9E, 0x90, 0x42, 0x36,
+ 0xDC, 0x85, 0x7B, 0xA4, 0x9D, 0x55, 0xD3, 0xBA,
+ 0xD7, 0x65, 0x72, 0xA9, 0x1A, 0x75, 0x95, 0x03,
+ 0x37, 0x6B, 0x77, 0x08, 0xD6, 0x2D, 0x5A, 0x78,
+ 0x5C, 0x23, 0x06, 0x80, 0x59, 0xCF, 0x68, 0x89,
+ 0x7F, 0x23, 0xEE, 0xC5, 0x07, 0x21, 0x9B, 0x0A,
+ 0x02, 0xED, 0xA2, 0xD8, 0xBC, 0x94, 0xFA, 0x69,
+ 0x89, 0xA5, 0x14, 0x82, 0x22, 0x03, 0xC8, 0xD1
+ },
+ {
+ 0xE0, 0x8C, 0x54, 0xD9, 0x98, 0xF9, 0x2B, 0x7A,
+ 0x54, 0xA2, 0x4C, 0xA6, 0xAE, 0xB1, 0x53, 0xA6,
+ 0x4F, 0x9C, 0x9F, 0x1F, 0xC3, 0x36, 0x58, 0xB3,
+ 0xED, 0xAC, 0x2C, 0x4B, 0xB5, 0x26, 0x31, 0x58,
+ 0xDA, 0xDF, 0x00, 0xD3, 0x51, 0x9A, 0x11, 0x9A,
+ 0x56, 0x14, 0xC7, 0xF3, 0x79, 0x40, 0xE5, 0x5D,
+ 0x13, 0xCC, 0xE4, 0x66, 0xCB, 0x71, 0xA4, 0x07,
+ 0xC3, 0x9F, 0xC5, 0x1E, 0x1E, 0xFE, 0x18, 0xDA
+ },
+ {
+ 0x74, 0x76, 0x76, 0x07, 0x04, 0x1D, 0xD4, 0xB7,
+ 0xC5, 0x6B, 0x18, 0x9E, 0xE8, 0xF2, 0x77, 0x31,
+ 0xA5, 0x16, 0x72, 0x23, 0xEB, 0x7A, 0xF9, 0xB9,
+ 0x39, 0xE1, 0x18, 0xF8, 0x7D, 0x80, 0xB4, 0x9E,
+ 0xA8, 0xD0, 0xD0, 0x1F, 0x74, 0xF3, 0x98, 0xB1,
+ 0x72, 0xA8, 0xAD, 0x0D, 0xBF, 0x99, 0x41, 0x4F,
+ 0x08, 0xD2, 0xB7, 0xD8, 0xD7, 0x52, 0x16, 0xA1,
+ 0x82, 0x25, 0x27, 0x3D, 0x8D, 0x7F, 0xD0, 0x5D
+ },
+ {
+ 0xFE, 0xE8, 0x9A, 0x92, 0xCC, 0xF9, 0xF1, 0xEB,
+ 0x08, 0x4A, 0xAB, 0xA9, 0x54, 0x97, 0xEF, 0x0F,
+ 0x30, 0x13, 0x4C, 0x19, 0x1C, 0xF9, 0x0A, 0x49,
+ 0xD2, 0x2C, 0x7D, 0x2F, 0x66, 0x14, 0x99, 0x3C,
+ 0xBE, 0x1A, 0x4B, 0x65, 0x13, 0xED, 0xC1, 0x53,
+ 0x86, 0x8A, 0x3D, 0x56, 0x2B, 0x5B, 0x02, 0x26,
+ 0xBA, 0x8E, 0x1B, 0x0D, 0xCB, 0x69, 0xED, 0x45,
+ 0xAF, 0x47, 0xCE, 0x4F, 0x86, 0xBA, 0x47, 0x4A
+ },
+ {
+ 0xCD, 0xAE, 0x94, 0xB6, 0xD1, 0xD8, 0x35, 0xF6,
+ 0xC7, 0x4C, 0x76, 0xEC, 0x3A, 0x2D, 0xB6, 0x5B,
+ 0xBD, 0xFA, 0xE1, 0x9D, 0x7B, 0x05, 0x0D, 0xC9,
+ 0x5D, 0x65, 0x87, 0x33, 0xB8, 0xB2, 0x2C, 0x6F,
+ 0x9E, 0x0B, 0x63, 0xCC, 0x90, 0x5A, 0x29, 0xEA,
+ 0x88, 0x78, 0xCA, 0x39, 0x45, 0x56, 0xB3, 0x67,
+ 0x3C, 0x62, 0x79, 0x15, 0x46, 0xA9, 0xA1, 0xF0,
+ 0xD1, 0x56, 0x5F, 0xAD, 0xC5, 0x35, 0x36, 0xC1
+ },
+ {
+ 0xC7, 0x22, 0x8B, 0x6F, 0x00, 0x00, 0x17, 0xD2,
+ 0xBE, 0x4B, 0xF2, 0xAE, 0x48, 0xAD, 0xDB, 0x78,
+ 0x5E, 0x27, 0x35, 0xBF, 0x3C, 0x61, 0x4D, 0x3C,
+ 0x34, 0x23, 0x1F, 0x1D, 0x0C, 0x88, 0x7D, 0x3A,
+ 0x8E, 0x88, 0x88, 0x0B, 0x67, 0xAD, 0x3B, 0x2F,
+ 0x65, 0x23, 0xDD, 0x67, 0x19, 0x34, 0x2C, 0xD4,
+ 0xF0, 0x59, 0x35, 0xD2, 0xE5, 0x26, 0x7F, 0x36,
+ 0x80, 0xE7, 0x73, 0xBD, 0x5E, 0xAD, 0xFE, 0x1D
+ },
+ {
+ 0x12, 0x27, 0x44, 0xFE, 0x3F, 0xFF, 0x9A, 0x05,
+ 0x5F, 0x0F, 0x3B, 0xDE, 0x01, 0xEB, 0x2F, 0x44,
+ 0x6B, 0x0C, 0xDA, 0xF3, 0xAE, 0xD7, 0x2C, 0xAA,
+ 0x29, 0x40, 0x74, 0x19, 0x20, 0x12, 0x0A, 0x96,
+ 0x4F, 0xCF, 0xF8, 0x70, 0x99, 0xB0, 0x8E, 0xF3,
+ 0x34, 0x96, 0xE3, 0x99, 0x03, 0x2A, 0x82, 0xDA,
+ 0xAD, 0x4F, 0xED, 0x30, 0x31, 0x17, 0x2F, 0x77,
+ 0x47, 0x92, 0x58, 0xFA, 0x39, 0xDB, 0x92, 0xFD
+ },
+ {
+ 0x1F, 0xB4, 0xE3, 0x67, 0xEA, 0xB6, 0x42, 0xB7,
+ 0x2E, 0x43, 0xAD, 0x4A, 0xBD, 0xFC, 0xAD, 0x74,
+ 0x62, 0x0C, 0x3F, 0x6C, 0x63, 0xA8, 0x91, 0x31,
+ 0x28, 0xD2, 0x22, 0x6E, 0xB1, 0x92, 0xF9, 0x99,
+ 0x2E, 0xB9, 0xC8, 0xF7, 0x6A, 0xE2, 0x06, 0xD3,
+ 0xF5, 0xDE, 0xC7, 0x26, 0xA5, 0xA6, 0x86, 0xB4,
+ 0xAE, 0x37, 0xB5, 0x57, 0xAB, 0x57, 0xF9, 0x56,
+ 0x48, 0x53, 0x34, 0xF7, 0x3D, 0xCE, 0x02, 0xE0
+ },
+ {
+ 0x04, 0x25, 0xCA, 0xAA, 0x92, 0x3B, 0x47, 0xB3,
+ 0x50, 0x45, 0xEB, 0x50, 0x82, 0x9C, 0x04, 0x8B,
+ 0xC8, 0x90, 0x44, 0x4A, 0xFE, 0xEF, 0xC0, 0xAF,
+ 0xC9, 0xD1, 0x87, 0x7B, 0x82, 0x1E, 0x04, 0x3C,
+ 0x9C, 0x7B, 0x9D, 0x6D, 0xC3, 0x3F, 0xBB, 0xDF,
+ 0xA5, 0x37, 0xC1, 0xEC, 0xE3, 0x11, 0x96, 0x5B,
+ 0x2F, 0xEE, 0x89, 0x82, 0xBC, 0x46, 0xA2, 0xA7,
+ 0x50, 0xBF, 0xC7, 0x1D, 0x79, 0xDB, 0xEA, 0x04
+ },
+ {
+ 0x6B, 0x9D, 0x86, 0xF1, 0x5C, 0x09, 0x0A, 0x00,
+ 0xFC, 0x3D, 0x90, 0x7F, 0x90, 0x6C, 0x5E, 0xB7,
+ 0x92, 0x65, 0xE5, 0x8B, 0x88, 0xEB, 0x64, 0x29,
+ 0x4B, 0x4C, 0xC4, 0xE2, 0xB8, 0x9B, 0x1A, 0x7C,
+ 0x5E, 0xE3, 0x12, 0x7E, 0xD2, 0x1B, 0x45, 0x68,
+ 0x62, 0xDE, 0x6B, 0x2A, 0xBD, 0xA5, 0x9E, 0xAA,
+ 0xCF, 0x2D, 0xCB, 0xE9, 0x22, 0xCA, 0x75, 0x5E,
+ 0x40, 0x73, 0x5B, 0xE8, 0x1D, 0x9C, 0x88, 0xA5
+ },
+ {
+ 0x14, 0x6A, 0x18, 0x7A, 0x99, 0xE8, 0xA2, 0xD2,
+ 0x33, 0xE0, 0xEB, 0x37, 0x3D, 0x43, 0x7B, 0x02,
+ 0xBF, 0xA8, 0xD6, 0x51, 0x5B, 0x3C, 0xA1, 0xDE,
+ 0x48, 0xA6, 0xB6, 0xAC, 0xF7, 0x43, 0x7E, 0xB7,
+ 0xE7, 0xAC, 0x3F, 0x2D, 0x19, 0xEF, 0x3B, 0xB9,
+ 0xB8, 0x33, 0xCC, 0x57, 0x61, 0xDB, 0xA2, 0x2D,
+ 0x1A, 0xD0, 0x60, 0xBE, 0x76, 0xCD, 0xCB, 0x81,
+ 0x2D, 0x64, 0xD5, 0x78, 0xE9, 0x89, 0xA5, 0xA4
+ },
+ {
+ 0x25, 0x75, 0x4C, 0xA6, 0x66, 0x9C, 0x48, 0x70,
+ 0x84, 0x03, 0x88, 0xEA, 0x64, 0xE9, 0x5B, 0xD2,
+ 0xE0, 0x81, 0x0D, 0x36, 0x3C, 0x4C, 0xF6, 0xA1,
+ 0x6E, 0xA1, 0xBD, 0x06, 0x68, 0x6A, 0x93, 0xC8,
+ 0xA1, 0x25, 0xF2, 0x30, 0x22, 0x9D, 0x94, 0x84,
+ 0x85, 0xE1, 0xA8, 0x2D, 0xE4, 0x82, 0x00, 0x35,
+ 0x8F, 0x3E, 0x02, 0xB5, 0x05, 0xDA, 0xBC, 0x4F,
+ 0x13, 0x9C, 0x03, 0x79, 0xDC, 0x2B, 0x30, 0x80
+ },
+ {
+ 0x0E, 0x26, 0xCB, 0xC7, 0x8D, 0xC7, 0x54, 0xEC,
+ 0xA0, 0x6C, 0xF8, 0xCB, 0x31, 0xFC, 0xBA, 0xBB,
+ 0x18, 0x88, 0x92, 0xC1, 0x04, 0x50, 0x89, 0x05,
+ 0x49, 0xB2, 0xD4, 0x03, 0xA2, 0xA3, 0xC4, 0x57,
+ 0x70, 0x01, 0xF7, 0x4A, 0x76, 0xBD, 0x38, 0x99,
+ 0x0D, 0x75, 0x5B, 0xAE, 0x05, 0x26, 0x64, 0x83,
+ 0x29, 0xF6, 0x35, 0x45, 0xED, 0x16, 0x99, 0x5C,
+ 0xB1, 0xE6, 0x34, 0x3F, 0x18, 0x9F, 0x8E, 0x6F
+ },
+ {
+ 0x58, 0xE7, 0x98, 0x0B, 0x8B, 0x1A, 0x0B, 0x88,
+ 0xDA, 0x9D, 0xA8, 0x64, 0x0F, 0x2B, 0x96, 0xE3,
+ 0xE0, 0x48, 0x36, 0x61, 0x30, 0xC2, 0x66, 0x21,
+ 0x7D, 0xDC, 0x79, 0x53, 0x50, 0x8F, 0x4A, 0x40,
+ 0xD1, 0x67, 0x4D, 0xAB, 0xD3, 0x92, 0x89, 0xE3,
+ 0xF1, 0x0C, 0x61, 0x19, 0x68, 0xCC, 0xD1, 0xE9,
+ 0xCC, 0xC1, 0x8C, 0xAD, 0xC7, 0x77, 0x4A, 0x99,
+ 0x7D, 0xD1, 0xFA, 0x94, 0xE8, 0x35, 0x47, 0x07
+ },
+ {
+ 0x69, 0x6F, 0xB8, 0x47, 0x63, 0xE0, 0x23, 0x58,
+ 0x4B, 0x35, 0x90, 0x7A, 0x8B, 0x8A, 0xAA, 0x9E,
+ 0x0E, 0x78, 0x6F, 0x2C, 0xA5, 0x91, 0x45, 0x41,
+ 0x91, 0x58, 0x48, 0xFB, 0x6D, 0xDA, 0xB8, 0xD3,
+ 0xD2, 0xEA, 0xB6, 0x00, 0xC1, 0x38, 0xCE, 0x67,
+ 0x17, 0xB0, 0xC7, 0x02, 0x59, 0xD3, 0x19, 0x3E,
+ 0xA1, 0x56, 0x95, 0xC8, 0x50, 0x53, 0x7F, 0x2C,
+ 0x70, 0x6C, 0xA4, 0xAF, 0x15, 0x8E, 0x95, 0x7E
+ },
+ {
+ 0x23, 0xDE, 0x6E, 0x73, 0x07, 0x9C, 0x8C, 0x20,
+ 0x47, 0xA7, 0x84, 0x6A, 0x83, 0xCC, 0xAC, 0xAB,
+ 0xD3, 0x71, 0x16, 0x3B, 0x7B, 0x6D, 0x54, 0xEB,
+ 0x03, 0x2B, 0xC4, 0x9B, 0x66, 0x97, 0x42, 0xBE,
+ 0x71, 0x7B, 0x99, 0xDA, 0x12, 0xC6, 0x46, 0xAD,
+ 0x52, 0x57, 0x06, 0xF2, 0x22, 0xE1, 0xDF, 0x4A,
+ 0x91, 0xDD, 0x0C, 0xC6, 0x4D, 0xF1, 0x82, 0xDA,
+ 0x00, 0x73, 0x1D, 0x43, 0x9C, 0x46, 0xF8, 0xD2
+ },
+ {
+ 0xBB, 0x74, 0xF3, 0x6A, 0x9D, 0xB6, 0x96, 0xC9,
+ 0x33, 0x35, 0xE6, 0xC4, 0x6A, 0xAB, 0x58, 0xDB,
+ 0x10, 0xCB, 0x07, 0xEA, 0x4F, 0x1B, 0x71, 0x93,
+ 0x63, 0x05, 0x22, 0x83, 0x90, 0x95, 0x94, 0x78,
+ 0xF8, 0x73, 0x4E, 0x21, 0x54, 0x90, 0xE9, 0xAE,
+ 0x2A, 0x3E, 0xC8, 0xF7, 0xF7, 0x67, 0x33, 0xAE,
+ 0x3F, 0x8B, 0x9A, 0x3F, 0xD7, 0xC4, 0x06, 0xC6,
+ 0xCA, 0xC7, 0x09, 0x97, 0x5C, 0x40, 0xF8, 0x56
+ },
+ {
+ 0xEC, 0x63, 0x04, 0xD3, 0x8E, 0x23, 0x2C, 0x09,
+ 0x6A, 0xB5, 0x86, 0xCA, 0xDF, 0x27, 0x02, 0x6D,
+ 0xC5, 0xE5, 0x32, 0x17, 0xD0, 0xE8, 0xB0, 0xC6,
+ 0x0A, 0xDA, 0xAE, 0x22, 0xF4, 0xE8, 0xC2, 0x2D,
+ 0x30, 0xBC, 0x51, 0x77, 0xF1, 0xC8, 0x3A, 0xCD,
+ 0x92, 0x5E, 0x02, 0xA2, 0xDA, 0x89, 0x59, 0x5F,
+ 0xC1, 0x06, 0x09, 0x0E, 0x2E, 0x53, 0xED, 0xB3,
+ 0x1C, 0xDB, 0x76, 0xFF, 0x37, 0xEB, 0x61, 0x80
+ },
+ {
+ 0x92, 0xF9, 0xFC, 0x6B, 0xC5, 0x9A, 0x54, 0x3F,
+ 0x0D, 0xC9, 0xA1, 0x79, 0x8F, 0xB1, 0xE5, 0xD5,
+ 0x23, 0x47, 0x4E, 0x48, 0xFF, 0x3E, 0x29, 0x49,
+ 0x7F, 0x72, 0x80, 0xD1, 0xC4, 0x08, 0xC8, 0x66,
+ 0x33, 0x48, 0xFE, 0x2A, 0xF7, 0x8F, 0x6C, 0x4E,
+ 0x5E, 0xF5, 0xC0, 0xA0, 0x17, 0xF3, 0xD3, 0xF2,
+ 0x15, 0xEC, 0xDD, 0x7A, 0x40, 0x0A, 0xC5, 0x77,
+ 0x3B, 0x9E, 0x25, 0x60, 0x68, 0x84, 0x5A, 0x92
+ },
+ {
+ 0x4A, 0x25, 0xB5, 0x62, 0xF2, 0xFA, 0x01, 0xDD,
+ 0xEE, 0x7E, 0xA2, 0xE9, 0xFB, 0xF5, 0x2F, 0x8C,
+ 0x75, 0x6D, 0x28, 0xDB, 0x4A, 0x8B, 0xF7, 0x0E,
+ 0x74, 0x0E, 0x90, 0x27, 0x42, 0x6E, 0x51, 0x63,
+ 0x9D, 0xF8, 0x78, 0x8D, 0x13, 0x38, 0x56, 0x85,
+ 0x8D, 0x01, 0xFD, 0xDB, 0xDD, 0x5B, 0x98, 0x79,
+ 0x44, 0xC3, 0x00, 0xDC, 0x7F, 0x82, 0x41, 0xFB,
+ 0xCE, 0xFA, 0x4F, 0x12, 0x94, 0x8A, 0xFE, 0xAE
+ },
+ {
+ 0x34, 0x21, 0x2D, 0xD9, 0xF0, 0x65, 0x1F, 0x81,
+ 0x80, 0x9A, 0x14, 0xED, 0xBC, 0xF7, 0xF3, 0xAC,
+ 0xDE, 0xDE, 0x78, 0x72, 0xC7, 0xA4, 0x84, 0x7B,
+ 0xEA, 0x9F, 0x7A, 0xB7, 0x59, 0x73, 0x82, 0x47,
+ 0x7A, 0x4C, 0xB8, 0x47, 0x9A, 0x27, 0x63, 0x21,
+ 0x23, 0x5E, 0x90, 0x21, 0x57, 0x94, 0x46, 0xA4,
+ 0x38, 0x8A, 0x99, 0xE5, 0x60, 0xA3, 0x90, 0x7A,
+ 0xEE, 0xF2, 0xB4, 0x38, 0xFE, 0x6B, 0x90, 0xC4
+ },
+ {
+ 0xD6, 0x2C, 0xF7, 0xAB, 0xBC, 0x7D, 0x7B, 0xCD,
+ 0x5B, 0xEB, 0x1E, 0xE4, 0x8C, 0x43, 0xB8, 0x04,
+ 0xFD, 0x0D, 0xB4, 0x55, 0xE7, 0xF4, 0xFE, 0xBB,
+ 0xCF, 0xF1, 0x4B, 0x05, 0xBE, 0x90, 0x47, 0xE2,
+ 0x7E, 0x51, 0x8D, 0x6D, 0x3A, 0x6A, 0xDA, 0x4D,
+ 0x58, 0x63, 0xB7, 0xEC, 0x7F, 0x84, 0x92, 0x45,
+ 0x89, 0x40, 0xAC, 0x6B, 0xDD, 0xB5, 0x06, 0x59,
+ 0x2C, 0xCB, 0xC8, 0x96, 0xAF, 0xBB, 0x77, 0xA3
+ },
+ {
+ 0x33, 0xA3, 0xA2, 0x63, 0x6F, 0x91, 0x98, 0xD3,
+ 0x7A, 0x5F, 0xF1, 0xBF, 0xF9, 0xEB, 0x10, 0x02,
+ 0x4B, 0x28, 0x46, 0x80, 0x39, 0xF4, 0x91, 0x40,
+ 0x2D, 0x39, 0xB7, 0x08, 0xC5, 0x5D, 0x27, 0xE5,
+ 0xE8, 0xDF, 0x5E, 0x3E, 0x19, 0x49, 0x95, 0x82,
+ 0x35, 0xCA, 0xD9, 0x80, 0x74, 0x20, 0x96, 0xF2,
+ 0x77, 0x9A, 0x1D, 0x71, 0xDA, 0xD5, 0x8F, 0xAF,
+ 0xA3, 0xCD, 0x02, 0xCB, 0x5E, 0xAA, 0x98, 0xC5
+ },
+ {
+ 0xB7, 0xA3, 0x89, 0x90, 0xE6, 0xF4, 0x56, 0x4A,
+ 0xA3, 0xD9, 0x3A, 0x79, 0x37, 0x10, 0x0C, 0x29,
+ 0xF9, 0x40, 0xAF, 0xF7, 0xCB, 0x20, 0x86, 0x5A,
+ 0x1C, 0x21, 0x89, 0x81, 0xA5, 0x42, 0x04, 0x86,
+ 0x08, 0x17, 0x81, 0xF8, 0xD5, 0x0C, 0x86, 0x62,
+ 0x5C, 0xC5, 0xD7, 0x6D, 0x0F, 0x5C, 0xCC, 0x4E,
+ 0xB6, 0x5D, 0x43, 0x66, 0x09, 0x62, 0x4F, 0x21,
+ 0xD0, 0x53, 0x39, 0xAB, 0x0C, 0xF7, 0x9F, 0x4C
+ },
+ {
+ 0x9D, 0x66, 0x5A, 0x3F, 0xDD, 0x10, 0x45, 0x9E,
+ 0x77, 0xF0, 0x3A, 0xC8, 0xC0, 0xE2, 0x39, 0x01,
+ 0x94, 0x89, 0x69, 0x3C, 0xC9, 0x31, 0x5A, 0xA3,
+ 0xFF, 0x11, 0x29, 0x11, 0xD2, 0xAC, 0xF0, 0xB7,
+ 0xD2, 0x76, 0xAC, 0x76, 0x9B, 0xED, 0xFD, 0x85,
+ 0x2D, 0x28, 0x89, 0xDD, 0x12, 0xDB, 0x91, 0x39,
+ 0x8B, 0x01, 0xC4, 0xF4, 0xA5, 0xDA, 0x27, 0x80,
+ 0xB1, 0xDE, 0xFE, 0x0D, 0x95, 0xB6, 0x32, 0x70
+ },
+ {
+ 0x70, 0xFB, 0x9E, 0xFD, 0x5B, 0xCA, 0x7F, 0x19,
+ 0xB6, 0xE3, 0x1D, 0x64, 0x0D, 0xCF, 0x88, 0xD7,
+ 0x7E, 0x76, 0x8A, 0xE2, 0x27, 0xEC, 0xB3, 0xFD,
+ 0x6B, 0x47, 0x13, 0x78, 0x94, 0xF5, 0x49, 0xBF,
+ 0x1C, 0xF0, 0x6E, 0x5D, 0xB4, 0x54, 0x60, 0x44,
+ 0xDD, 0x9F, 0x46, 0x5C, 0x9C, 0x85, 0xF7, 0x28,
+ 0x4F, 0xE5, 0x4D, 0x2B, 0x71, 0x52, 0x69, 0x9B,
+ 0xE4, 0xBD, 0x55, 0x5A, 0x90, 0x9A, 0x88, 0xA9
+ },
+ {
+ 0x7A, 0xFD, 0xB0, 0x19, 0x30, 0x87, 0xE0, 0xC9,
+ 0xF8, 0xB4, 0xDD, 0x8B, 0x48, 0xD9, 0xF2, 0x0A,
+ 0xCE, 0x27, 0x13, 0xAF, 0xC7, 0x1B, 0xCC, 0x93,
+ 0x82, 0xB5, 0x42, 0x90, 0xAE, 0xBF, 0xFE, 0xB2,
+ 0xD1, 0x38, 0xF4, 0xDC, 0xF0, 0x28, 0xF9, 0xC4,
+ 0x3C, 0xC1, 0x80, 0x89, 0x84, 0x77, 0xA3, 0x9E,
+ 0x3F, 0x53, 0xA8, 0xD1, 0xBF, 0x67, 0xCE, 0xB6,
+ 0x08, 0x26, 0x1F, 0xAE, 0x6D, 0xDB, 0x1A, 0xBC
+ },
+ {
+ 0x05, 0x99, 0x0D, 0x7D, 0x7D, 0xF1, 0xD4, 0x84,
+ 0xF5, 0xB1, 0xCA, 0xE9, 0xEE, 0x5D, 0xFC, 0xB4,
+ 0x3F, 0x2C, 0xBE, 0x18, 0x6C, 0x1A, 0x5B, 0x18,
+ 0x1A, 0x37, 0x31, 0xD4, 0xB1, 0x54, 0x8E, 0xBF,
+ 0xF5, 0xBF, 0x61, 0xCB, 0x0F, 0x6D, 0x9F, 0xC2,
+ 0x30, 0xF2, 0x5E, 0x86, 0x78, 0xB7, 0x99, 0xE0,
+ 0xE8, 0x30, 0x26, 0xA0, 0x86, 0x6B, 0xF0, 0xAC,
+ 0xAB, 0x08, 0x9E, 0x10, 0x2E, 0x67, 0xAB, 0x6B
+ },
+ {
+ 0x1A, 0xF7, 0xA5, 0xCE, 0x58, 0x7C, 0x8D, 0x87,
+ 0xC7, 0xB7, 0x9F, 0xA3, 0xE7, 0x23, 0xD7, 0x4C,
+ 0xE0, 0x26, 0xB5, 0x28, 0x67, 0x52, 0xFD, 0x0C,
+ 0x37, 0x42, 0xC6, 0xF0, 0x41, 0x8E, 0xD7, 0x85,
+ 0x99, 0x0D, 0x21, 0xF2, 0x8D, 0xA8, 0x39, 0xCE,
+ 0x82, 0x12, 0xED, 0x55, 0x0C, 0x37, 0x3E, 0x6D,
+ 0x3A, 0x75, 0xD5, 0x5C, 0x31, 0x77, 0x04, 0x41,
+ 0xEE, 0xAF, 0xF2, 0xD5, 0x0F, 0x6E, 0x61, 0xB6
+ },
+ {
+ 0xDD, 0xEE, 0x0C, 0x76, 0xC9, 0xBD, 0xD3, 0x2D,
+ 0x70, 0x49, 0x35, 0x4C, 0xFC, 0x85, 0xDC, 0x68,
+ 0x67, 0xE2, 0x49, 0x2E, 0x47, 0xFE, 0xB0, 0x8E,
+ 0x39, 0x83, 0xD0, 0xB6, 0x78, 0x84, 0x5D, 0x7E,
+ 0xC6, 0xC9, 0x79, 0x3C, 0x33, 0x26, 0xBF, 0xDC,
+ 0x1E, 0x11, 0x32, 0x76, 0xD1, 0x77, 0xFE, 0x38,
+ 0x82, 0x52, 0x04, 0xDD, 0x00, 0x07, 0x39, 0x89,
+ 0xC0, 0x81, 0xCC, 0x3B, 0x71, 0xC6, 0x8D, 0x5F
+ },
+ {
+ 0xDE, 0x07, 0x06, 0x48, 0xB3, 0x7C, 0x47, 0xDC,
+ 0x9F, 0x2F, 0x6D, 0x2A, 0xB2, 0x07, 0x73, 0xCD,
+ 0x82, 0xFA, 0x57, 0x25, 0xA6, 0x90, 0x0E, 0xB7,
+ 0x1C, 0xDD, 0xB0, 0xC9, 0xF3, 0x9B, 0x31, 0xDF,
+ 0x6D, 0x07, 0x73, 0x24, 0x6E, 0x8E, 0xF9, 0x03,
+ 0x49, 0x67, 0x75, 0x2D, 0xB7, 0xED, 0x22, 0x73,
+ 0x3F, 0x43, 0x79, 0x94, 0x8D, 0xC3, 0x96, 0xDC,
+ 0x35, 0xAD, 0xBB, 0xE9, 0xF6, 0x53, 0x77, 0x40
+ },
+ {
+ 0xA6, 0x45, 0x6F, 0xBC, 0xFF, 0x9E, 0x3D, 0x5B,
+ 0x11, 0x6A, 0x0E, 0x33, 0x1A, 0x1F, 0x97, 0x4F,
+ 0x07, 0x0E, 0x95, 0x56, 0x09, 0x78, 0x1F, 0xA5,
+ 0x99, 0xD6, 0x08, 0xA3, 0x1D, 0xA7, 0x6A, 0xD8,
+ 0xAB, 0xFE, 0x34, 0x66, 0x17, 0xC2, 0x57, 0x86,
+ 0x51, 0x3B, 0x2C, 0x44, 0xBF, 0xE2, 0xCB, 0x45,
+ 0x7C, 0x43, 0xFA, 0x6F, 0x45, 0x36, 0x1C, 0xA9,
+ 0xC6, 0x34, 0x13, 0x11, 0xB7, 0xDD, 0xFB, 0xD5
+ },
+ {
+ 0x5C, 0x95, 0xD3, 0x82, 0x02, 0x18, 0x91, 0x04,
+ 0x8B, 0x5E, 0xC8, 0x1C, 0xC8, 0x8E, 0x66, 0xB1,
+ 0xB4, 0xD8, 0x0A, 0x00, 0xB5, 0xEE, 0x66, 0xB3,
+ 0xC0, 0x30, 0x77, 0x49, 0xE6, 0xF2, 0x4D, 0x17,
+ 0x0D, 0x23, 0xFA, 0xCC, 0x8E, 0xB2, 0x53, 0xB3,
+ 0x56, 0x2B, 0xF8, 0xA4, 0x5C, 0x37, 0x99, 0x0C,
+ 0xD2, 0xD3, 0xE4, 0x43, 0xB1, 0x8C, 0x68, 0xBB,
+ 0xCC, 0x6C, 0x83, 0x1D, 0xFD, 0xE2, 0xF8, 0xE5
+ },
+ {
+ 0xE3, 0x74, 0x00, 0xDB, 0xD9, 0x21, 0x0F, 0x31,
+ 0x37, 0xAC, 0xAF, 0x49, 0x24, 0x2F, 0xA1, 0x23,
+ 0xA0, 0x52, 0x95, 0x8A, 0x4C, 0x0D, 0x98, 0x90,
+ 0x62, 0x47, 0xD5, 0x35, 0xA3, 0x51, 0xFD, 0x52,
+ 0x29, 0x6E, 0x70, 0x10, 0x32, 0x5B, 0xDA, 0x84,
+ 0x1F, 0xA2, 0xAA, 0xB4, 0x47, 0x63, 0x76, 0x3C,
+ 0x55, 0x04, 0xD7, 0xB3, 0x0C, 0x6D, 0x79, 0xFC,
+ 0x1D, 0xC8, 0xCF, 0x10, 0x24, 0x46, 0x6D, 0xB0
+ },
+ {
+ 0x52, 0x73, 0xA3, 0xA1, 0x3C, 0xF0, 0xEC, 0x72,
+ 0x00, 0x44, 0x2C, 0xBD, 0x7B, 0x37, 0x44, 0x66,
+ 0xA7, 0x19, 0x0D, 0xDC, 0xA1, 0x31, 0xD9, 0x63,
+ 0xF8, 0xF8, 0x39, 0x65, 0xAE, 0xD3, 0xDD, 0x86,
+ 0xE9, 0xD4, 0x5A, 0xB4, 0x89, 0xB9, 0xC5, 0x62,
+ 0x47, 0xC9, 0xF2, 0xAA, 0x69, 0xFD, 0x7E, 0x31,
+ 0x87, 0xB8, 0xFA, 0x0D, 0xAC, 0x77, 0xC4, 0x7C,
+ 0xB2, 0x95, 0xBA, 0x62, 0x96, 0x78, 0x43, 0x94
+ },
+ {
+ 0x2A, 0xDB, 0x93, 0x49, 0xA9, 0xEC, 0x37, 0xFF,
+ 0x49, 0x62, 0xF4, 0x21, 0x7E, 0x80, 0xEB, 0xDC,
+ 0xD3, 0x60, 0x96, 0x7B, 0x51, 0x3D, 0x12, 0x02,
+ 0xD9, 0x98, 0x28, 0x31, 0x15, 0x5D, 0x2F, 0x43,
+ 0xEB, 0x9A, 0xDD, 0x63, 0xB5, 0xEC, 0x10, 0xD3,
+ 0xD0, 0x43, 0x0D, 0xC9, 0xCF, 0x76, 0x48, 0x11,
+ 0x7F, 0xC6, 0x0B, 0xAB, 0xBF, 0x8E, 0xBF, 0x19,
+ 0xFA, 0xCE, 0xE5, 0x50, 0x45, 0x5B, 0x60, 0xC9
+ },
+ {
+ 0xAC, 0xAA, 0xDA, 0x3E, 0x47, 0x37, 0xC6, 0x63,
+ 0xEB, 0xF0, 0x3C, 0x02, 0x49, 0xCC, 0xA6, 0xF3,
+ 0x17, 0x9A, 0x03, 0x84, 0xEA, 0x2A, 0xB1, 0x35,
+ 0xD4, 0xD7, 0xA2, 0xBB, 0x8A, 0x2F, 0x40, 0x53,
+ 0x9C, 0xDC, 0xE8, 0xA3, 0x76, 0x0F, 0xD1, 0x3D,
+ 0xEE, 0xEC, 0xD1, 0x60, 0x61, 0x7F, 0x72, 0xDE,
+ 0x63, 0x75, 0x4E, 0x21, 0x57, 0xCA, 0xDC, 0xF0,
+ 0x67, 0x32, 0x9C, 0x2A, 0x51, 0x98, 0xF8, 0xE0
+ },
+ {
+ 0xEF, 0x15, 0xE6, 0xDB, 0x96, 0xE6, 0xD0, 0xC1,
+ 0x8C, 0x70, 0xAD, 0xC3, 0xCD, 0xB3, 0x2B, 0x28,
+ 0x67, 0x74, 0x02, 0xE8, 0xEA, 0x44, 0x11, 0xEA,
+ 0x2F, 0x34, 0x68, 0xED, 0x93, 0x82, 0xE1, 0x9B,
+ 0xFE, 0xCA, 0xF5, 0xAC, 0xB8, 0x28, 0xA5, 0x2B,
+ 0xE1, 0x6B, 0x98, 0x1E, 0x48, 0x7E, 0x5B, 0xB4,
+ 0xA1, 0x43, 0x08, 0x65, 0x35, 0x8E, 0x97, 0x9F,
+ 0xB1, 0x07, 0x1F, 0xB9, 0x51, 0x14, 0xFF, 0xDD
+ },
+ {
+ 0x05, 0x7E, 0xAB, 0x8F, 0xA6, 0x1C, 0x23, 0x09,
+ 0x67, 0xD9, 0x5D, 0xFB, 0x75, 0x45, 0x57, 0x0E,
+ 0x34, 0x1A, 0xE3, 0xC6, 0x73, 0x7C, 0x7D, 0xB2,
+ 0xA2, 0x27, 0xD9, 0x0F, 0xF3, 0x15, 0xD0, 0x98,
+ 0xD4, 0x76, 0xF7, 0x15, 0x77, 0x9E, 0x67, 0x72,
+ 0xB4, 0xED, 0x37, 0x54, 0x82, 0x66, 0xE6, 0x59,
+ 0x8C, 0x6F, 0x09, 0x69, 0x13, 0xC2, 0xFD, 0xD8,
+ 0xD6, 0xE4, 0x4F, 0xE2, 0xB5, 0x4D, 0x97, 0x80
+ },
+ {
+ 0xED, 0xE6, 0x8D, 0x1B, 0x13, 0xE7, 0xEF, 0x78,
+ 0xD9, 0xC4, 0xEE, 0x10, 0xEC, 0xEB, 0x1D, 0x2A,
+ 0xEE, 0xC3, 0xB8, 0x15, 0x7F, 0xDB, 0x91, 0x41,
+ 0x8C, 0x22, 0x19, 0xF6, 0x41, 0x49, 0x74, 0x70,
+ 0x17, 0xAC, 0xA7, 0xD4, 0x65, 0xB8, 0xB4, 0x7F,
+ 0xFA, 0x53, 0x64, 0x4B, 0x8B, 0xC6, 0xDA, 0x12,
+ 0xDD, 0x45, 0xD1, 0x05, 0x5E, 0x47, 0xB4, 0xD8,
+ 0x39, 0x0E, 0xB2, 0xBD, 0x60, 0x2B, 0xA0, 0x30
+ },
+ {
+ 0x27, 0xF8, 0x56, 0xE6, 0x3E, 0xB9, 0x4D, 0x08,
+ 0xFB, 0xBE, 0x50, 0x22, 0xB0, 0xED, 0xDB, 0xC7,
+ 0xD8, 0xDB, 0x86, 0x5E, 0xF4, 0xFE, 0xC2, 0x05,
+ 0x86, 0xDF, 0x3D, 0xD9, 0x02, 0xA0, 0x5B, 0x26,
+ 0x35, 0x9E, 0x26, 0x7C, 0x78, 0x8D, 0x7C, 0x88,
+ 0x03, 0x2E, 0x76, 0x6B, 0x11, 0x87, 0x40, 0x20,
+ 0x0F, 0x49, 0xCB, 0x4D, 0x6E, 0xDB, 0x15, 0x61,
+ 0xB2, 0xDE, 0x7D, 0xC6, 0x5E, 0xE6, 0x42, 0x3B
+ },
+ {
+ 0xE9, 0xE9, 0x8D, 0x6D, 0xE0, 0xEF, 0x53, 0xFD,
+ 0x24, 0x27, 0x66, 0x1E, 0x1A, 0xCF, 0x10, 0x3D,
+ 0x4C, 0xAA, 0x4D, 0xC6, 0x10, 0x03, 0x62, 0x09,
+ 0xEC, 0x99, 0x74, 0x19, 0xC1, 0x20, 0x63, 0x1C,
+ 0x2C, 0x09, 0x4A, 0x8E, 0xE7, 0x82, 0x2D, 0x43,
+ 0xF8, 0x77, 0x80, 0x11, 0xC6, 0x03, 0x11, 0x1F,
+ 0x26, 0x28, 0xF8, 0x97, 0xC9, 0xB4, 0x31, 0x31,
+ 0x54, 0x77, 0x75, 0x6B, 0x03, 0x2E, 0x1F, 0x8D
+ },
+ {
+ 0x52, 0xEB, 0x1E, 0x6C, 0x8A, 0x54, 0x49, 0x2C,
+ 0xA7, 0x60, 0xB5, 0x6C, 0xA8, 0x7D, 0xA3, 0xE1,
+ 0xA9, 0xA6, 0xD8, 0xA4, 0x21, 0x92, 0x19, 0x35,
+ 0x1D, 0x18, 0x71, 0x5A, 0x9A, 0x2C, 0x26, 0x70,
+ 0x8B, 0xB7, 0x12, 0xCD, 0xAC, 0x04, 0x34, 0x48,
+ 0x2E, 0x55, 0x1C, 0xB0, 0x9E, 0x3F, 0x16, 0x33,
+ 0x8D, 0xE2, 0x9B, 0xE2, 0xC6, 0x67, 0x40, 0xC3,
+ 0x44, 0xDF, 0x54, 0x88, 0xC5, 0xC2, 0xBB, 0x26
+ },
+ {
+ 0x47, 0x3F, 0xA6, 0xC5, 0x1A, 0x48, 0x10, 0x5F,
+ 0x72, 0x1C, 0x5C, 0xB8, 0xDB, 0xA6, 0x1C, 0x64,
+ 0xA1, 0xE3, 0xDD, 0xCC, 0xC3, 0x25, 0x0E, 0x68,
+ 0x22, 0x62, 0xF2, 0x12, 0xC0, 0x1A, 0xB4, 0x87,
+ 0x4A, 0xFF, 0x68, 0x8F, 0xEA, 0x96, 0x37, 0x73,
+ 0x9E, 0x2A, 0x25, 0xD2, 0xEE, 0x88, 0xDB, 0xDC,
+ 0xC4, 0xF0, 0x4D, 0x01, 0x47, 0x9B, 0x30, 0x17,
+ 0x17, 0x53, 0x3A, 0x64, 0x32, 0xB8, 0x50, 0xCD
+ },
+ {
+ 0x6B, 0x76, 0x60, 0xD4, 0x10, 0xEA, 0xE5, 0xF3,
+ 0x5A, 0xD0, 0xAE, 0x85, 0xE6, 0x3D, 0xA4, 0x53,
+ 0xEB, 0xB0, 0x57, 0xE4, 0x3F, 0x42, 0xE8, 0x42,
+ 0xCB, 0xF6, 0x25, 0x0D, 0xA6, 0x78, 0x66, 0xB4,
+ 0x24, 0x0D, 0x57, 0xC8, 0x3B, 0x77, 0x1B, 0x0F,
+ 0x70, 0x66, 0x3E, 0x17, 0xFB, 0xD9, 0x08, 0x7F,
+ 0x76, 0xB4, 0xCE, 0x6B, 0xCD, 0x0B, 0x50, 0x2E,
+ 0x33, 0x74, 0xB1, 0x50, 0x9B, 0xBA, 0x55, 0xA8
+ },
+ {
+ 0xA4, 0xD0, 0x8A, 0xCA, 0x7A, 0x9E, 0xA6, 0x43,
+ 0x99, 0x99, 0xEA, 0x21, 0xE4, 0xCF, 0xE9, 0x86,
+ 0x9B, 0xB9, 0x0E, 0x3A, 0x01, 0x48, 0x71, 0xAD,
+ 0x88, 0xED, 0x3A, 0x97, 0xAA, 0x89, 0x15, 0x95,
+ 0x1C, 0x3F, 0xD0, 0xB3, 0x93, 0x3A, 0x50, 0x85,
+ 0x88, 0x93, 0x8A, 0xF7, 0x54, 0x49, 0x44, 0xEF,
+ 0x43, 0xC4, 0x40, 0xAA, 0x8F, 0xF1, 0xE5, 0xA8,
+ 0x18, 0xA4, 0x66, 0x43, 0x5D, 0xE7, 0x0F, 0xA8
+ },
+ {
+ 0x85, 0xE0, 0xE9, 0xB5, 0x0D, 0x2D, 0xB0, 0x22,
+ 0xC2, 0x39, 0xD7, 0x23, 0x2A, 0xE4, 0x7C, 0x02,
+ 0x59, 0x22, 0xE4, 0xF0, 0x7E, 0x2A, 0xFC, 0x65,
+ 0x6C, 0xDC, 0x55, 0x53, 0xA2, 0x7D, 0x95, 0xBF,
+ 0xA5, 0x8A, 0x57, 0x4D, 0x4E, 0xC3, 0xA9, 0x73,
+ 0x28, 0x1A, 0x8F, 0x4E, 0x46, 0xA7, 0x1A, 0xB0,
+ 0x34, 0x1C, 0x25, 0x77, 0x28, 0x74, 0x63, 0xE2,
+ 0x51, 0x04, 0x4D, 0xB2, 0x39, 0x8D, 0x55, 0xE2
+ },
+ {
+ 0x81, 0xA0, 0xD0, 0x24, 0x42, 0x90, 0x51, 0x91,
+ 0x16, 0x33, 0x70, 0xAE, 0x29, 0xC7, 0xF8, 0x9C,
+ 0x0F, 0x48, 0xBC, 0x1A, 0x1E, 0xB2, 0x94, 0x70,
+ 0x47, 0xDA, 0x1C, 0x62, 0x2B, 0x86, 0x77, 0xE9,
+ 0xEA, 0x9B, 0xEC, 0xED, 0x55, 0xD3, 0x3A, 0xDB,
+ 0x15, 0x53, 0xBD, 0x58, 0x4A, 0xD2, 0xF8, 0x6A,
+ 0x62, 0x07, 0xE8, 0x4E, 0x40, 0xE4, 0x60, 0x7E,
+ 0x11, 0x65, 0x0E, 0xE2, 0x87, 0x9F, 0x4E, 0x0B
+ },
+ {
+ 0x87, 0x79, 0x0D, 0xF6, 0xCF, 0x73, 0x94, 0x45,
+ 0x1B, 0xCC, 0x73, 0x0E, 0x53, 0xFC, 0x57, 0xBE,
+ 0x56, 0x45, 0x22, 0x77, 0x1E, 0x14, 0x43, 0x2A,
+ 0x80, 0xAB, 0x0B, 0x06, 0xB7, 0xB1, 0xD2, 0x09,
+ 0xAD, 0x69, 0x89, 0x95, 0x12, 0x53, 0x85, 0xDB,
+ 0x8B, 0x3C, 0x09, 0x59, 0xB8, 0xA5, 0x33, 0x9E,
+ 0xDA, 0x0A, 0xE6, 0x78, 0x59, 0xD8, 0x47, 0xF4,
+ 0x4C, 0x81, 0x59, 0x72, 0x72, 0xCB, 0xF1, 0x95
+ },
+ {
+ 0xCC, 0x06, 0x4E, 0xA8, 0x53, 0xDC, 0x01, 0x52,
+ 0xCC, 0x03, 0xFE, 0xB5, 0xFB, 0x5D, 0xE7, 0x8B,
+ 0x9B, 0x88, 0xE9, 0x61, 0x55, 0xD5, 0x35, 0x8B,
+ 0xCE, 0x84, 0xA5, 0x4C, 0x0E, 0x0C, 0x42, 0xFB,
+ 0xDA, 0x09, 0x2F, 0x22, 0xD0, 0x56, 0xDF, 0x99,
+ 0x93, 0x26, 0x2E, 0x2B, 0xA4, 0x4A, 0x5B, 0x2D,
+ 0x53, 0xC3, 0x75, 0x9D, 0x09, 0x45, 0xFE, 0xBA,
+ 0xA6, 0xFD, 0x51, 0xB8, 0xFF, 0x38, 0xD8, 0x39
+ },
+ {
+ 0x7E, 0x51, 0x7F, 0xC3, 0x83, 0xEE, 0x8C, 0x9F,
+ 0x0A, 0x01, 0x68, 0x1D, 0x39, 0xE7, 0x3B, 0xEB,
+ 0xA5, 0x96, 0x95, 0x95, 0xCE, 0x77, 0x92, 0x7F,
+ 0x91, 0x69, 0x1F, 0x33, 0xBB, 0x3E, 0x13, 0x07,
+ 0xEE, 0x03, 0x61, 0x6C, 0x27, 0xE6, 0x79, 0x51,
+ 0x86, 0xF6, 0x94, 0x0F, 0xED, 0xD9, 0xD5, 0xC7,
+ 0xF2, 0x1B, 0x6D, 0x2A, 0xAF, 0x70, 0x29, 0x9C,
+ 0xDD, 0x83, 0x51, 0x25, 0x05, 0x0A, 0x8B, 0x3C
+ },
+ {
+ 0x84, 0x5F, 0xCF, 0xA6, 0x7F, 0x6E, 0x06, 0x55,
+ 0x10, 0xD2, 0x62, 0xF1, 0xDD, 0x69, 0x39, 0xEA,
+ 0x4C, 0x0A, 0x4A, 0x59, 0xC8, 0xEE, 0x39, 0x77,
+ 0xDB, 0x70, 0x05, 0xE1, 0xAE, 0xE4, 0x20, 0xBD,
+ 0x3F, 0x38, 0x26, 0xEC, 0xFE, 0x59, 0x01, 0x5B,
+ 0x4D, 0xFA, 0x0B, 0xD5, 0xBB, 0xF8, 0xD8, 0xA4,
+ 0x34, 0x48, 0x5D, 0xC1, 0x1C, 0xB9, 0xCC, 0x85,
+ 0x97, 0xCB, 0x8C, 0x95, 0x66, 0x11, 0x5F, 0x31
+ },
+ {
+ 0x17, 0xCF, 0x2C, 0x23, 0x21, 0x5B, 0xCD, 0xFC,
+ 0x24, 0x3D, 0x8A, 0x94, 0x5F, 0x3C, 0x5C, 0x25,
+ 0x1D, 0x27, 0x18, 0xA3, 0xF7, 0x5F, 0xED, 0x6F,
+ 0x33, 0x20, 0xBC, 0xC6, 0xFD, 0x92, 0x73, 0x86,
+ 0xD5, 0x6F, 0x87, 0x19, 0xCC, 0xA0, 0x2E, 0xC5,
+ 0xE9, 0x9C, 0xDA, 0xC4, 0xEA, 0x10, 0x95, 0xB4,
+ 0x65, 0xBA, 0x9A, 0x29, 0x8B, 0x1D, 0x23, 0x8E,
+ 0x38, 0xB3, 0xFA, 0x15, 0xE8, 0xB1, 0x4E, 0xE4
+ },
+ {
+ 0xD7, 0x89, 0xCE, 0xC7, 0xD7, 0x52, 0x0F, 0x10,
+ 0xE8, 0xB8, 0xB6, 0xC8, 0x40, 0x95, 0x89, 0xDF,
+ 0x57, 0xB8, 0x56, 0xB8, 0x24, 0x55, 0x68, 0xF6,
+ 0x4E, 0x2D, 0x21, 0x83, 0xE3, 0x59, 0xA7, 0x84,
+ 0xC8, 0xD2, 0x6C, 0xF9, 0xB7, 0x20, 0xF5, 0xDF,
+ 0x56, 0x7B, 0x01, 0xF3, 0xF4, 0x8D, 0xE6, 0x4D,
+ 0x4F, 0x0D, 0xB1, 0x56, 0xBE, 0x52, 0x5D, 0x7C,
+ 0x7A, 0x66, 0x5A, 0xAD, 0xC5, 0x91, 0xF0, 0xB6
+ },
+ {
+ 0xB5, 0xE2, 0x46, 0xA9, 0x02, 0x77, 0x10, 0xC0,
+ 0xB0, 0x55, 0xC7, 0x1F, 0x11, 0x67, 0xE0, 0xEE,
+ 0x36, 0xEB, 0xC4, 0x32, 0xCF, 0x5D, 0x14, 0x27,
+ 0x75, 0xA7, 0xAE, 0xCC, 0xCE, 0xA7, 0x83, 0x25,
+ 0xED, 0x8C, 0x12, 0xF5, 0x0F, 0xBE, 0x64, 0x8A,
+ 0xDD, 0xF0, 0x59, 0xB8, 0xC0, 0x2A, 0x61, 0x49,
+ 0x2F, 0x83, 0x57, 0xBE, 0xE1, 0x42, 0xE7, 0xF7,
+ 0xDE, 0x04, 0x33, 0x78, 0xDB, 0xCF, 0x2D, 0x33
+ },
+ {
+ 0xB5, 0x23, 0xFD, 0x77, 0xAB, 0x9E, 0xEE, 0x42,
+ 0x48, 0x72, 0xBC, 0x2E, 0x83, 0xFC, 0x0A, 0x77,
+ 0xFF, 0x8A, 0x90, 0xC9, 0xA0, 0xCE, 0x9E, 0x8C,
+ 0x87, 0x68, 0x0A, 0x0F, 0x62, 0x86, 0x33, 0x1F,
+ 0x15, 0xC9, 0x3A, 0x2A, 0xFE, 0xCF, 0x75, 0x66,
+ 0x65, 0x3F, 0x24, 0xD9, 0x30, 0xC3, 0x23, 0x19,
+ 0x2D, 0x30, 0x43, 0xB9, 0x05, 0x72, 0x1C, 0xBD,
+ 0xB6, 0x31, 0x11, 0xCA, 0x42, 0xF2, 0x8F, 0x4E
+ },
+ {
+ 0x43, 0x59, 0xA4, 0x58, 0x76, 0xBF, 0x6A, 0xCC,
+ 0x0A, 0xEC, 0xE7, 0xB9, 0xB4, 0xB4, 0xA8, 0x38,
+ 0xB9, 0xDB, 0xA5, 0x77, 0x6A, 0x3B, 0x14, 0xDA,
+ 0x2F, 0xBA, 0x91, 0x02, 0xE7, 0x8B, 0xF6, 0x48,
+ 0xFF, 0xB4, 0xD8, 0x67, 0xBA, 0xE8, 0x5F, 0xD9,
+ 0xB7, 0x13, 0x12, 0xDC, 0x46, 0x02, 0xD0, 0xD4,
+ 0x9C, 0x90, 0x7B, 0xB9, 0x28, 0x9B, 0x22, 0x95,
+ 0x96, 0x1E, 0x54, 0x13, 0x81, 0x23, 0xF5, 0x4A
+ },
+ {
+ 0xD3, 0xF2, 0xC8, 0xE7, 0x4F, 0x34, 0x3A, 0x4E,
+ 0x71, 0x90, 0xD4, 0x75, 0xCF, 0x9A, 0xF7, 0x54,
+ 0xEE, 0xD5, 0x57, 0x72, 0x62, 0xB3, 0x5B, 0xD9,
+ 0xA9, 0xC4, 0x2B, 0x58, 0xCE, 0x88, 0x26, 0x2E,
+ 0x31, 0x14, 0x91, 0x7F, 0xB9, 0xE6, 0x83, 0xC6,
+ 0x2D, 0x9F, 0x89, 0x47, 0xB5, 0x8A, 0x29, 0x4D,
+ 0xA5, 0x06, 0xFB, 0x86, 0xB3, 0xED, 0xF2, 0x5C,
+ 0xB9, 0xE2, 0xD2, 0xDF, 0x61, 0x1C, 0xD4, 0x48
+ },
+ {
+ 0x41, 0xB8, 0x90, 0xF8, 0xE8, 0x45, 0x0D, 0xAD,
+ 0xB6, 0x95, 0x9A, 0xCC, 0xBA, 0x19, 0x49, 0x17,
+ 0xE0, 0x2F, 0x30, 0x67, 0x82, 0x1D, 0x4E, 0x99,
+ 0x5A, 0x37, 0xAC, 0x18, 0xBA, 0x3E, 0x47, 0xC7,
+ 0x50, 0x6E, 0x7A, 0x3D, 0xD1, 0xE1, 0x12, 0xE6,
+ 0xEC, 0x41, 0xBE, 0xF5, 0x30, 0x85, 0x11, 0x20,
+ 0x89, 0x4A, 0x7B, 0x34, 0xB3, 0xDB, 0xCD, 0xAE,
+ 0x40, 0x73, 0x27, 0xF0, 0xC5, 0x73, 0x6E, 0xDF
+ },
+ {
+ 0x19, 0xD7, 0x14, 0x4F, 0x0C, 0x85, 0x1E, 0xB8,
+ 0xB0, 0x53, 0xA3, 0xA4, 0x35, 0x86, 0x52, 0x6D,
+ 0xC5, 0xC7, 0x73, 0xE4, 0x97, 0x97, 0x51, 0x64,
+ 0xD1, 0x11, 0x51, 0x36, 0x43, 0x68, 0xDF, 0x24,
+ 0xBC, 0x44, 0xD5, 0x36, 0x07, 0x23, 0x04, 0xD7,
+ 0x06, 0x31, 0xA8, 0x40, 0xB6, 0x36, 0xB9, 0x66,
+ 0xFD, 0x02, 0x8F, 0x61, 0x06, 0x2B, 0xFC, 0x52,
+ 0x85, 0x67, 0x01, 0x53, 0xA6, 0x36, 0x3A, 0x0A
+ },
+ {
+ 0xC2, 0x18, 0x4C, 0x1A, 0x81, 0xE9, 0x83, 0xBE,
+ 0x2C, 0x96, 0xE4, 0xCF, 0xD6, 0x5A, 0xFB, 0xDA,
+ 0x1A, 0xC6, 0xEF, 0x35, 0x26, 0x6E, 0xE4, 0xB3,
+ 0xAB, 0x1F, 0xB0, 0x3A, 0xBA, 0xDD, 0xFD, 0xD4,
+ 0x03, 0xFF, 0xFC, 0xAF, 0xB4, 0xAD, 0xE0, 0xE9,
+ 0x2D, 0xA3, 0x82, 0xDA, 0x8C, 0x40, 0x22, 0x2E,
+ 0x10, 0xE9, 0xFD, 0xE8, 0x56, 0xC5, 0x1B, 0xDA,
+ 0xCD, 0xE7, 0x41, 0xA6, 0x49, 0xF7, 0x33, 0x5D
+ },
+ {
+ 0x48, 0x8C, 0x0D, 0x65, 0x2E, 0x42, 0xFD, 0x78,
+ 0xAB, 0x3A, 0x2D, 0xC2, 0x8C, 0xF3, 0xEB, 0x35,
+ 0xFC, 0xDD, 0xC8, 0xDE, 0xF7, 0xEA, 0xD4, 0x81,
+ 0x7B, 0xFF, 0xB6, 0x4C, 0x1A, 0xE0, 0xF2, 0x08,
+ 0xF7, 0x8C, 0xF4, 0x09, 0x76, 0xF7, 0xE2, 0xA2,
+ 0xCB, 0x2D, 0xD3, 0x0F, 0x1C, 0x99, 0x13, 0x02,
+ 0x08, 0xCE, 0xB6, 0x92, 0xC6, 0x68, 0x80, 0xD9,
+ 0x52, 0x8C, 0xD6, 0xD3, 0x8A, 0xD2, 0x9D, 0xB2
+ },
+ {
+ 0x51, 0x5B, 0x65, 0xBF, 0x65, 0x68, 0x83, 0x99,
+ 0x57, 0x5F, 0x0E, 0x06, 0x77, 0xBB, 0x6A, 0x91,
+ 0x9B, 0x66, 0x33, 0x55, 0x46, 0xD6, 0xCA, 0xE3,
+ 0x36, 0xF5, 0xC6, 0xFE, 0xAE, 0x5E, 0x2B, 0xF7,
+ 0x45, 0xE3, 0xA7, 0xB1, 0x3C, 0x32, 0x05, 0xDD,
+ 0x8B, 0x5B, 0x92, 0xCF, 0x05, 0x3B, 0xE9, 0x69,
+ 0xDF, 0x71, 0x20, 0xFC, 0xEF, 0x77, 0xE3, 0x89,
+ 0x5F, 0x56, 0x0F, 0xD2, 0x32, 0xFB, 0x89, 0x50
+ },
+ {
+ 0x3F, 0xDB, 0xC7, 0xD6, 0x9F, 0x4B, 0x53, 0xC2,
+ 0x25, 0x66, 0x3D, 0xA3, 0x0D, 0x80, 0xF7, 0x2E,
+ 0x54, 0x28, 0x10, 0x44, 0xA2, 0x2B, 0x98, 0x82,
+ 0xC6, 0x63, 0x8F, 0x55, 0x26, 0x83, 0x4B, 0xD3,
+ 0x16, 0x01, 0xCA, 0x5E, 0xB2, 0xCC, 0xA4, 0xF5,
+ 0xFF, 0xCF, 0x67, 0x5D, 0xCB, 0xCF, 0xCA, 0x60,
+ 0xC8, 0xA3, 0x61, 0x2D, 0x1A, 0xA9, 0xDA, 0xB6,
+ 0x93, 0xB2, 0x35, 0x60, 0x69, 0x60, 0x3A, 0x0E
+ },
+ {
+ 0x4F, 0xF6, 0xC3, 0x1A, 0x8F, 0xC0, 0x01, 0xAC,
+ 0x3B, 0x7A, 0xE0, 0x20, 0xC5, 0xF7, 0xC4, 0x5E,
+ 0xFB, 0x62, 0x71, 0xA2, 0xD7, 0xCC, 0xAB, 0x87,
+ 0x13, 0xE5, 0x48, 0xB7, 0x29, 0xF0, 0xFF, 0xF9,
+ 0xC8, 0x2F, 0xD4, 0xDB, 0x5C, 0xF6, 0x56, 0x43,
+ 0xD4, 0x07, 0x6A, 0x3F, 0xB1, 0x7B, 0x3E, 0x89,
+ 0x3C, 0x30, 0x2D, 0xC7, 0x5B, 0x61, 0x22, 0xFF,
+ 0x86, 0x81, 0xD0, 0x37, 0x12, 0x0E, 0x27, 0x6A
+ },
+ {
+ 0x43, 0xDF, 0xF2, 0x60, 0xDF, 0xEF, 0x1C, 0xB2,
+ 0xD6, 0x16, 0x00, 0xE2, 0x40, 0xAA, 0xD6, 0xB7,
+ 0x20, 0xE5, 0xF4, 0xF8, 0x30, 0x86, 0xE2, 0x6A,
+ 0x49, 0xA0, 0xCE, 0x3E, 0x0C, 0xA4, 0x4B, 0x9A,
+ 0x60, 0xFC, 0xF4, 0x6A, 0x8C, 0x3F, 0x1B, 0xB1,
+ 0xA6, 0xF5, 0x76, 0x2B, 0x66, 0x51, 0x3F, 0xE3,
+ 0xF7, 0xC5, 0xB0, 0xBC, 0x15, 0x0C, 0x08, 0x49,
+ 0x1A, 0xCB, 0xC4, 0x36, 0x1C, 0xAB, 0xCF, 0xDF
+ },
+ {
+ 0xB4, 0xDE, 0xA9, 0x4C, 0x9D, 0x36, 0x75, 0xBE,
+ 0x05, 0x12, 0xEF, 0xDE, 0xA8, 0x16, 0x38, 0x70,
+ 0xFE, 0x34, 0x25, 0xDC, 0xD7, 0x61, 0xF3, 0x63,
+ 0xC4, 0x3A, 0x0C, 0xA5, 0x71, 0x6B, 0x76, 0x54,
+ 0x06, 0x63, 0xFB, 0x2B, 0xE4, 0x9E, 0x2D, 0xB1,
+ 0x06, 0x48, 0x5C, 0x9C, 0xDD, 0x3C, 0x16, 0x48,
+ 0x98, 0xA9, 0x54, 0xB5, 0x87, 0x48, 0xC4, 0x2F,
+ 0xEA, 0x16, 0xA4, 0x0F, 0xC4, 0x53, 0xD2, 0x10
+ },
+ {
+ 0xE5, 0x27, 0x7B, 0x6F, 0x93, 0xEA, 0x1D, 0xE3,
+ 0xE2, 0xD9, 0xFC, 0xD8, 0xC6, 0x79, 0x79, 0x3C,
+ 0x6C, 0xCB, 0x8A, 0x3B, 0xE2, 0x6E, 0x8E, 0x31,
+ 0x14, 0xF3, 0x5D, 0xA4, 0xF2, 0xAC, 0x01, 0x4F,
+ 0x55, 0xC2, 0xF1, 0x5E, 0x09, 0xE9, 0x4A, 0xA0,
+ 0x71, 0x29, 0x81, 0x67, 0xA2, 0xFB, 0x9B, 0xE3,
+ 0x11, 0x70, 0x1F, 0xFB, 0xA9, 0xD3, 0xEE, 0xFF,
+ 0x8F, 0xFC, 0x79, 0x93, 0xA3, 0xCE, 0xCE, 0x18
+ },
+ {
+ 0xF0, 0x95, 0xA7, 0xC6, 0xE2, 0xB9, 0x16, 0x64,
+ 0x73, 0x4F, 0x3E, 0x23, 0xF1, 0x8E, 0xB2, 0xBA,
+ 0x9B, 0x00, 0xE7, 0x1F, 0xBF, 0xCB, 0x99, 0x31,
+ 0xC0, 0xA6, 0x14, 0x79, 0x2A, 0x9D, 0x86, 0x75,
+ 0x62, 0x2A, 0x87, 0x4C, 0x1B, 0xF5, 0x24, 0x1A,
+ 0x2A, 0x87, 0x41, 0xED, 0x1C, 0x89, 0x3B, 0xDF,
+ 0xA8, 0xE2, 0x8C, 0x2E, 0x20, 0xBB, 0x1C, 0x58,
+ 0xEB, 0x4D, 0xE7, 0xD8, 0x01, 0x11, 0x6C, 0x78
+ },
+ {
+ 0xDF, 0xA1, 0xFD, 0x80, 0x3A, 0x1D, 0x4A, 0x3E,
+ 0x66, 0x1D, 0xF0, 0x1F, 0x49, 0x43, 0xEA, 0x66,
+ 0x26, 0x0A, 0x18, 0xFE, 0xCE, 0x13, 0x4D, 0x62,
+ 0xF9, 0x7D, 0xAC, 0xDB, 0x8B, 0x3B, 0xF9, 0xC8,
+ 0x00, 0xAF, 0xE5, 0x79, 0xCF, 0xD1, 0x3F, 0xC0,
+ 0x14, 0x8B, 0xDE, 0xFB, 0xFF, 0x4E, 0x76, 0x83,
+ 0x56, 0x1C, 0x06, 0xA6, 0xF7, 0x22, 0x5E, 0x47,
+ 0x81, 0x99, 0x3B, 0x4F, 0x4F, 0x2B, 0xCB, 0xFA
+ },
+ {
+ 0x2B, 0x86, 0xCE, 0xB2, 0x70, 0xF6, 0x90, 0x8D,
+ 0x8B, 0x16, 0x00, 0x75, 0xEA, 0x7F, 0x57, 0x16,
+ 0x3A, 0xF5, 0xD5, 0xC6, 0xF8, 0xAA, 0xC5, 0x20,
+ 0x40, 0xCC, 0x68, 0x7C, 0x17, 0xAB, 0xF3, 0xC7,
+ 0x78, 0xC1, 0x39, 0x06, 0xE0, 0xE6, 0xF2, 0x9A,
+ 0x6A, 0xB1, 0x23, 0xDE, 0xEB, 0xCE, 0x39, 0x1F,
+ 0x90, 0x7D, 0x75, 0xD3, 0xA2, 0xCE, 0xFA, 0x0E,
+ 0xFC, 0xB8, 0x80, 0xA0, 0xE7, 0x0D, 0x71, 0x96
+ },
+ {
+ 0x32, 0x46, 0x6B, 0xCB, 0xDE, 0xD5, 0x38, 0xE5,
+ 0x68, 0x79, 0x54, 0x30, 0x35, 0x25, 0x36, 0xFE,
+ 0xB9, 0x19, 0xBF, 0x4D, 0x97, 0xCC, 0x44, 0xAB,
+ 0x1D, 0x80, 0x50, 0x40, 0xF4, 0xBC, 0x4C, 0x2E,
+ 0x79, 0x52, 0x72, 0x10, 0x18, 0x95, 0x8B, 0x4E,
+ 0xE7, 0x83, 0x03, 0x59, 0x0E, 0xF6, 0xAC, 0x45,
+ 0x0D, 0xF9, 0x2E, 0xC7, 0x7F, 0x47, 0x70, 0x54,
+ 0xBF, 0xF8, 0x67, 0xB8, 0x89, 0x71, 0xD4, 0x21
+ },
+ {
+ 0xEA, 0x64, 0xB0, 0x03, 0xA1, 0x35, 0x76, 0x61,
+ 0x21, 0xCF, 0xBC, 0xCB, 0xDC, 0x08, 0xDC, 0xA2,
+ 0x40, 0x29, 0x26, 0xBE, 0x78, 0xCE, 0xA3, 0xD0,
+ 0xA7, 0x25, 0x3D, 0x9E, 0xC9, 0xE6, 0x3B, 0x8A,
+ 0xCD, 0xD9, 0x94, 0x55, 0x99, 0x17, 0xE0, 0xE0,
+ 0x3B, 0x5E, 0x15, 0x5F, 0x94, 0x4D, 0x71, 0x98,
+ 0xD9, 0x92, 0x45, 0xA7, 0x94, 0xCE, 0x19, 0xC9,
+ 0xB4, 0xDF, 0x4D, 0xA4, 0xA3, 0x39, 0x93, 0x34
+ },
+ {
+ 0x05, 0xAD, 0x0F, 0x27, 0x1F, 0xAF, 0x7E, 0x36,
+ 0x13, 0x20, 0x51, 0x84, 0x52, 0x81, 0x3F, 0xF9,
+ 0xFB, 0x99, 0x76, 0xAC, 0x37, 0x80, 0x50, 0xB6,
+ 0xEE, 0xFB, 0x05, 0xF7, 0x86, 0x7B, 0x57, 0x7B,
+ 0x8F, 0x14, 0x47, 0x57, 0x94, 0xCF, 0xF6, 0x1B,
+ 0x2B, 0xC0, 0x62, 0xD3, 0x46, 0xA7, 0xC6, 0x5C,
+ 0x6E, 0x00, 0x67, 0xC6, 0x0A, 0x37, 0x4A, 0xF7,
+ 0x94, 0x0F, 0x10, 0xAA, 0x44, 0x9D, 0x5F, 0xB9
+ },
+ {
+ 0xB5, 0x45, 0x88, 0x02, 0x94, 0xAF, 0xA1, 0x53,
+ 0xF8, 0xB9, 0xF4, 0x9C, 0x73, 0xD9, 0x52, 0xB5,
+ 0xD1, 0x22, 0x8F, 0x1A, 0x1A, 0xB5, 0xEB, 0xCB,
+ 0x05, 0xFF, 0x79, 0xE5, 0x60, 0xC0, 0x30, 0xF7,
+ 0x50, 0x0F, 0xE2, 0x56, 0xA4, 0x0B, 0x6A, 0x0E,
+ 0x6C, 0xB3, 0xD4, 0x2A, 0xCD, 0x4B, 0x98, 0x59,
+ 0x5C, 0x5B, 0x51, 0xEA, 0xEC, 0x5A, 0xD6, 0x9C,
+ 0xD4, 0x0F, 0x1F, 0xC1, 0x6D, 0x2D, 0x5F, 0x50
+ },
+ {
+ 0xBB, 0xFB, 0x94, 0x77, 0xEC, 0x6A, 0x9F, 0x0C,
+ 0x25, 0x40, 0x5A, 0xCD, 0x8A, 0x30, 0xD5, 0xDD,
+ 0x7C, 0x73, 0x57, 0x1F, 0x1D, 0x1A, 0x6E, 0x8C,
+ 0xE7, 0x2F, 0x8B, 0x9C, 0x94, 0x1C, 0xF7, 0x79,
+ 0xB7, 0x64, 0x03, 0xAC, 0x7F, 0x04, 0x50, 0x05,
+ 0x25, 0x84, 0x39, 0x0A, 0x14, 0xEA, 0xA3, 0x7C,
+ 0x20, 0xB5, 0xBD, 0xB0, 0x38, 0x10, 0x54, 0xA9,
+ 0xA4, 0x95, 0x34, 0xF8, 0x14, 0x66, 0xBA, 0x9D
+ },
+ {
+ 0xC8, 0x28, 0x7E, 0x93, 0x3D, 0x95, 0x04, 0xBF,
+ 0xFD, 0x7B, 0xE2, 0xAC, 0x02, 0x2B, 0x32, 0xF3,
+ 0xF4, 0x6D, 0x87, 0xA7, 0xA0, 0xE7, 0x9B, 0xB2,
+ 0xA1, 0xCB, 0xAA, 0xCC, 0x2E, 0x84, 0xCD, 0x70,
+ 0x84, 0x5D, 0x0D, 0x42, 0x78, 0x48, 0xA6, 0xD7,
+ 0x88, 0xD3, 0x96, 0x22, 0xE1, 0x0F, 0x43, 0x42,
+ 0x23, 0x7E, 0xEF, 0xA6, 0xD3, 0xC0, 0x12, 0xDA,
+ 0xE9, 0x6C, 0xC8, 0xA6, 0x50, 0xCC, 0x2E, 0x30
+ },
+ {
+ 0xC4, 0x59, 0x6F, 0xCB, 0x0A, 0x28, 0xD2, 0x4A,
+ 0xAD, 0x70, 0xCF, 0x18, 0x53, 0xEC, 0x29, 0xDA,
+ 0xC0, 0xFB, 0x20, 0x2D, 0x8E, 0xC1, 0x40, 0xDA,
+ 0x30, 0x00, 0x88, 0xBB, 0x85, 0xB9, 0x2C, 0x30,
+ 0x29, 0x19, 0x46, 0xAD, 0x30, 0x7C, 0x09, 0x6E,
+ 0x3B, 0x28, 0x66, 0x33, 0x5C, 0x93, 0x17, 0xAF,
+ 0xE2, 0x8C, 0xAD, 0xAB, 0x5D, 0x62, 0xC3, 0x54,
+ 0x32, 0x9C, 0x98, 0xD9, 0x93, 0xC5, 0xBE, 0x1C
+ },
+ {
+ 0xE8, 0x8C, 0x38, 0xE6, 0x7E, 0x8D, 0x19, 0x83,
+ 0x58, 0x08, 0x85, 0x46, 0x70, 0x77, 0x9E, 0xCA,
+ 0x60, 0xBA, 0xD8, 0x54, 0xC5, 0x77, 0x87, 0x90,
+ 0xA0, 0x72, 0x54, 0xA3, 0x0A, 0x14, 0xAE, 0x82,
+ 0xB6, 0x1B, 0xB1, 0x69, 0x11, 0xFE, 0x57, 0x77,
+ 0x1D, 0x19, 0xE9, 0xB7, 0xF5, 0x02, 0x3C, 0x0D,
+ 0x4E, 0x8A, 0x8D, 0x37, 0x2E, 0x3D, 0x85, 0xE4,
+ 0x3B, 0x03, 0xE5, 0xE0, 0x0E, 0x6E, 0xBA, 0x4B
+ },
+ {
+ 0x2D, 0x66, 0x3E, 0x03, 0xE6, 0xF3, 0x55, 0x2C,
+ 0xCD, 0xFB, 0xA4, 0x96, 0xA1, 0x4C, 0xC6, 0x22,
+ 0x4C, 0xEB, 0x1E, 0xB6, 0x1A, 0xA2, 0x65, 0xE6,
+ 0xA7, 0xD4, 0xA2, 0x6E, 0x54, 0x10, 0x61, 0x04,
+ 0xA9, 0x6E, 0x33, 0x09, 0x59, 0xF9, 0x71, 0x3B,
+ 0x34, 0x87, 0xC1, 0xB9, 0x49, 0x7C, 0xCF, 0x82,
+ 0x61, 0x1D, 0xBF, 0xA3, 0x4F, 0xF1, 0x1D, 0x31,
+ 0x33, 0xB5, 0xB5, 0xD1, 0xF1, 0xE4, 0xF8, 0xD0
+ },
+ {
+ 0x70, 0x7D, 0x6A, 0x58, 0x42, 0x1B, 0x8F, 0x7E,
+ 0x44, 0xFF, 0x1F, 0x83, 0x62, 0xBC, 0x70, 0x0F,
+ 0x71, 0xEF, 0x7C, 0x39, 0x35, 0xE0, 0x76, 0x4B,
+ 0xD1, 0x4D, 0x39, 0x0C, 0x1C, 0x72, 0x79, 0x2A,
+ 0xF9, 0xC2, 0xC0, 0x2F, 0xB7, 0x2A, 0x2B, 0x9D,
+ 0x9A, 0x07, 0x29, 0xCB, 0x3E, 0x99, 0x62, 0x6C,
+ 0xF0, 0x34, 0xDF, 0x54, 0xB5, 0x06, 0xB5, 0xB1,
+ 0x64, 0x64, 0xF4, 0x75, 0x86, 0x4F, 0x25, 0x90
+ },
+ {
+ 0x9D, 0x88, 0xF8, 0xBA, 0xA4, 0xEB, 0x0F, 0x9A,
+ 0xB2, 0x29, 0x2E, 0x49, 0x82, 0xAC, 0x80, 0x44,
+ 0x53, 0x58, 0x22, 0x7D, 0x7F, 0x9C, 0xE7, 0xA4,
+ 0xA6, 0x29, 0xF1, 0x80, 0xF7, 0x14, 0x1E, 0x08,
+ 0xFE, 0x63, 0x55, 0xC6, 0x45, 0x21, 0xA6, 0x9B,
+ 0xA2, 0xBF, 0xBD, 0x1C, 0x4A, 0x3E, 0xA0, 0x48,
+ 0xD0, 0xBC, 0x8A, 0xB3, 0x70, 0x1F, 0x30, 0xEA,
+ 0x83, 0xFB, 0xE0, 0x24, 0x74, 0xD8, 0x92, 0xBF
+ },
+ {
+ 0x65, 0xEA, 0x4D, 0xB0, 0x4A, 0x75, 0x81, 0xC1,
+ 0x81, 0x94, 0xA8, 0x92, 0x1A, 0xFD, 0xFA, 0x4F,
+ 0x8D, 0x9A, 0xF6, 0x29, 0xDE, 0xD2, 0x77, 0x2C,
+ 0x65, 0x8E, 0x08, 0x48, 0x5F, 0x67, 0xAD, 0x2C,
+ 0xE2, 0x1A, 0x98, 0xCD, 0x29, 0x3F, 0xF2, 0x8D,
+ 0x4D, 0xFC, 0xDF, 0x65, 0x8C, 0xDC, 0x7A, 0xE6,
+ 0x70, 0x27, 0x84, 0x8E, 0x71, 0xCC, 0xC1, 0x15,
+ 0xA3, 0xFF, 0xBA, 0xC4, 0xFA, 0x61, 0xBB, 0x73
+ },
+ {
+ 0x0B, 0x4A, 0x68, 0x92, 0x9E, 0x7F, 0x15, 0xCA,
+ 0x91, 0xBB, 0x44, 0x39, 0xF2, 0x40, 0x37, 0x02,
+ 0x03, 0x4C, 0xD4, 0x74, 0x8E, 0x46, 0x92, 0x7A,
+ 0xBA, 0x95, 0xCB, 0xEF, 0x80, 0x04, 0x8B, 0x25,
+ 0xA6, 0x75, 0x97, 0x0F, 0xAC, 0x33, 0xC8, 0x74,
+ 0xAB, 0xD3, 0xD8, 0x3A, 0xA0, 0xF3, 0x7B, 0xE2,
+ 0x30, 0x83, 0x10, 0xE8, 0xDD, 0x79, 0x4F, 0x81,
+ 0x92, 0x93, 0x0E, 0xD5, 0x6E, 0x70, 0xA8, 0xE4
+ },
+ {
+ 0xC1, 0xC5, 0xD8, 0xAC, 0xFE, 0x3F, 0xDE, 0x67,
+ 0x4E, 0xDD, 0x36, 0x20, 0x15, 0x7A, 0x8B, 0x6B,
+ 0x4C, 0x8E, 0x67, 0xC6, 0xA7, 0xA9, 0x72, 0x67,
+ 0x41, 0xD9, 0xC3, 0x05, 0xE2, 0xA5, 0x2A, 0x87,
+ 0x97, 0xFD, 0xA0, 0xB2, 0xF1, 0x3A, 0xC7, 0x87,
+ 0x34, 0xDB, 0x2F, 0x4F, 0xC8, 0x3E, 0xF3, 0x24,
+ 0x14, 0xD9, 0x31, 0xEB, 0xAE, 0xAE, 0xCD, 0x82,
+ 0x6D, 0x7C, 0x2B, 0xE2, 0x03, 0xBD, 0xC2, 0xD1
+ },
+ {
+ 0x2D, 0xAD, 0xC8, 0xC9, 0xF7, 0x42, 0x5A, 0x01,
+ 0x14, 0x49, 0x12, 0x87, 0xBD, 0xC6, 0x8E, 0xAE,
+ 0x4F, 0xB6, 0x19, 0x4D, 0x1A, 0x10, 0x9D, 0xB9,
+ 0xB6, 0xE8, 0xA2, 0xAC, 0x94, 0xD4, 0xE4, 0x40,
+ 0x90, 0x99, 0x85, 0xC4, 0x29, 0x1F, 0xE8, 0x9F,
+ 0xD8, 0x28, 0x1F, 0x8F, 0xCE, 0xF6, 0xF6, 0xBC,
+ 0x32, 0x55, 0x0E, 0x53, 0xCB, 0x7A, 0x49, 0x42,
+ 0x89, 0x81, 0xE8, 0xD5, 0x3C, 0xF5, 0xA2, 0x12
+ },
+ {
+ 0xE5, 0x55, 0xF2, 0xA5, 0x8A, 0xCA, 0xC5, 0x50,
+ 0x3F, 0x9E, 0x2D, 0x97, 0xB2, 0x46, 0x87, 0x2B,
+ 0x4C, 0xA7, 0x8B, 0xD5, 0x6D, 0x47, 0xB7, 0x65,
+ 0xF0, 0x52, 0xAA, 0xB3, 0xDC, 0x77, 0xDB, 0xE9,
+ 0x93, 0x93, 0x6F, 0x22, 0x52, 0xF0, 0xAB, 0x2E,
+ 0x01, 0xFB, 0x08, 0x74, 0x72, 0xCC, 0xB5, 0xA1,
+ 0x21, 0xDD, 0xFF, 0xDE, 0x53, 0x1D, 0x3D, 0xC4,
+ 0x02, 0x2A, 0x7D, 0x19, 0x56, 0xCE, 0x0E, 0x20
+ },
+ {
+ 0x9B, 0x4E, 0xAE, 0x12, 0x95, 0x00, 0x0A, 0xEA,
+ 0x79, 0x83, 0xEC, 0x3B, 0xCB, 0x48, 0x57, 0xCC,
+ 0x71, 0x25, 0xFD, 0x73, 0x06, 0x78, 0x7C, 0x63,
+ 0x13, 0x24, 0x73, 0xCF, 0xE8, 0xF4, 0xEB, 0x45,
+ 0x31, 0x8A, 0x60, 0xDA, 0xAD, 0x64, 0x6D, 0x63,
+ 0xA2, 0x7C, 0x4B, 0x9D, 0x1F, 0x50, 0x73, 0x70,
+ 0x0A, 0x30, 0x57, 0xDE, 0x22, 0xA7, 0xFD, 0xF0,
+ 0x9A, 0x87, 0xAA, 0xC6, 0x6E, 0xBE, 0x47, 0x58
+ },
+ {
+ 0x96, 0x64, 0xAC, 0xC2, 0xDC, 0x72, 0x98, 0xB9,
+ 0x86, 0x8D, 0xB4, 0x95, 0xEE, 0xBC, 0x6B, 0x59,
+ 0x65, 0x7D, 0x13, 0x9A, 0x6A, 0xF0, 0x60, 0xA7,
+ 0x2F, 0xB6, 0x91, 0x24, 0xBD, 0xD3, 0xA6, 0x59,
+ 0x18, 0x88, 0xF0, 0x35, 0x4F, 0x70, 0x2B, 0x1B,
+ 0x88, 0x86, 0x84, 0x41, 0x10, 0x58, 0xA3, 0x75,
+ 0x9F, 0x7F, 0xD3, 0x7F, 0x06, 0xEA, 0xFB, 0x3B,
+ 0x58, 0xEC, 0xF2, 0x6F, 0x45, 0x53, 0xBE, 0x27
+ },
+ {
+ 0xFC, 0x16, 0xE0, 0x92, 0x5A, 0x35, 0xAA, 0xD4,
+ 0x7A, 0xD6, 0x95, 0x54, 0xB2, 0x57, 0x96, 0xFC,
+ 0xF9, 0x26, 0x0C, 0xB5, 0x0E, 0x6C, 0xC3, 0x74,
+ 0x75, 0x35, 0x55, 0x9E, 0x99, 0xC8, 0x58, 0x81,
+ 0xC7, 0x58, 0x89, 0xAC, 0x79, 0x3A, 0xB7, 0x8B,
+ 0x88, 0xB0, 0x5F, 0xB1, 0x60, 0x89, 0x56, 0x55,
+ 0xE4, 0xD6, 0x63, 0xA2, 0xA0, 0x9B, 0xA9, 0xFA,
+ 0x61, 0x4A, 0x10, 0xC2, 0x29, 0x47, 0x21, 0x0D
+ },
+ {
+ 0x22, 0x5E, 0x73, 0x41, 0xF8, 0x57, 0x52, 0x4F,
+ 0x78, 0x90, 0x37, 0x6C, 0x50, 0xE6, 0x35, 0x4B,
+ 0x16, 0xC1, 0xCD, 0xFB, 0xF5, 0x8F, 0xE5, 0xF3,
+ 0xA4, 0x03, 0x94, 0x93, 0xB5, 0xDD, 0x40, 0x8D,
+ 0x79, 0xD4, 0x8C, 0x56, 0xE1, 0xF8, 0x9B, 0x68,
+ 0x7F, 0xBE, 0x33, 0x62, 0xA7, 0x7F, 0xA7, 0x5A,
+ 0x54, 0x37, 0x4B, 0x7A, 0x48, 0x5E, 0x91, 0xB1,
+ 0x89, 0xAF, 0x2E, 0x2F, 0x74, 0x9E, 0x2A, 0xDB
+ },
+ {
+ 0xA0, 0x7A, 0x4C, 0x02, 0x3A, 0xC7, 0x04, 0xCE,
+ 0x7C, 0x09, 0xDD, 0x6C, 0x92, 0xC6, 0xF1, 0x84,
+ 0xF5, 0x3E, 0x8D, 0xD9, 0x6F, 0xE3, 0xBE, 0x9E,
+ 0x93, 0xC3, 0x9C, 0x53, 0x44, 0x85, 0xB6, 0x4B,
+ 0x39, 0xD5, 0xBE, 0x7F, 0x7B, 0x71, 0x70, 0x60,
+ 0x4D, 0xE7, 0x7C, 0xE5, 0xA4, 0x37, 0xA9, 0x8E,
+ 0x71, 0x2C, 0xC4, 0x4F, 0x19, 0xE2, 0x1D, 0x41,
+ 0xF0, 0xE6, 0xE3, 0xEC, 0x1E, 0x00, 0xAC, 0x55
+ },
+ {
+ 0x62, 0x85, 0x84, 0x63, 0x58, 0x2D, 0x22, 0xE6,
+ 0x8E, 0x52, 0x27, 0xBF, 0xBA, 0xB5, 0x40, 0x04,
+ 0x8F, 0x65, 0xED, 0xD6, 0xA6, 0x75, 0x5F, 0x6F,
+ 0xAB, 0x53, 0xC0, 0x25, 0xB6, 0x63, 0xCA, 0x37,
+ 0x7A, 0x0E, 0xD5, 0xEF, 0xD6, 0xAF, 0x16, 0x6C,
+ 0xA5, 0x5A, 0x9C, 0x73, 0x3F, 0xCA, 0x80, 0x5A,
+ 0xC4, 0xE4, 0x09, 0xCA, 0x56, 0x17, 0x7A, 0xA7,
+ 0x49, 0x40, 0xDB, 0x9F, 0x40, 0xC3, 0xB9, 0xFF
+ },
+ {
+ 0xA1, 0xAC, 0x53, 0x9D, 0x1A, 0xBB, 0xC2, 0xB0,
+ 0x96, 0xFF, 0xAB, 0x81, 0x3B, 0x64, 0x45, 0x7F,
+ 0xE6, 0xEB, 0x3B, 0x50, 0xFC, 0xD8, 0x89, 0x53,
+ 0xD0, 0xCD, 0x9F, 0x65, 0x02, 0xF6, 0x89, 0x62,
+ 0x0A, 0xD4, 0x42, 0xB5, 0x51, 0x70, 0x90, 0xB5,
+ 0x0C, 0xFF, 0xB9, 0x58, 0x86, 0x6D, 0x7C, 0x16,
+ 0x1D, 0x8A, 0x7D, 0x75, 0x60, 0xC8, 0x93, 0xE1,
+ 0xDE, 0xF6, 0xAE, 0xC4, 0x37, 0xAD, 0x6D, 0x06
+ },
+ {
+ 0xB5, 0x86, 0xB7, 0x5D, 0xA7, 0x0F, 0x6C, 0xC0,
+ 0x62, 0x7E, 0xF3, 0xCF, 0x12, 0x37, 0xC9, 0x4B,
+ 0x12, 0xD0, 0xF7, 0x4D, 0xCB, 0xA2, 0x6A, 0x9E,
+ 0x7C, 0x7B, 0xC6, 0xC2, 0x1A, 0x33, 0x53, 0x37,
+ 0xBF, 0x9F, 0x5B, 0x83, 0x0C, 0x63, 0x24, 0xAF,
+ 0xA6, 0xEF, 0x64, 0x9E, 0x95, 0xAF, 0x87, 0x90,
+ 0x87, 0x52, 0x34, 0xC6, 0xE6, 0x61, 0xD3, 0xF5,
+ 0xE9, 0x8C, 0xA0, 0x12, 0xAE, 0x81, 0x48, 0x8A
+ },
+ {
+ 0x56, 0x68, 0xA2, 0x98, 0x21, 0x37, 0xCB, 0xC6,
+ 0x22, 0xEF, 0x8D, 0x06, 0xCF, 0x4E, 0x86, 0x16,
+ 0x8C, 0xDD, 0x4A, 0x89, 0x9C, 0xD4, 0x46, 0x2A,
+ 0xF6, 0xC3, 0xD4, 0x15, 0x42, 0x61, 0x56, 0xA5,
+ 0xD8, 0xDD, 0x67, 0xC9, 0x60, 0x4F, 0x31, 0xB5,
+ 0x7D, 0x6C, 0x9D, 0x59, 0x72, 0x50, 0x45, 0x7E,
+ 0x4A, 0xB5, 0x2A, 0x58, 0x11, 0x55, 0x42, 0xAC,
+ 0xF2, 0x7F, 0x92, 0x59, 0x30, 0xF6, 0xA1, 0x12
+ },
+ {
+ 0xF2, 0xB1, 0xBD, 0x16, 0xD8, 0x8E, 0x37, 0xF3,
+ 0xA5, 0x18, 0xD1, 0x93, 0xED, 0x06, 0x1A, 0x1D,
+ 0xF7, 0xB4, 0x43, 0xA1, 0x8C, 0xE9, 0xF8, 0x44,
+ 0x45, 0xEF, 0x86, 0xEF, 0xFB, 0xDF, 0xF1, 0x60,
+ 0x55, 0x02, 0x3C, 0xD4, 0xE7, 0x8D, 0x03, 0x4D,
+ 0xE4, 0x03, 0x2A, 0x77, 0xDD, 0xC1, 0xD3, 0x43,
+ 0x52, 0xFE, 0x61, 0x7F, 0x82, 0x56, 0x24, 0x45,
+ 0x9B, 0xC3, 0x26, 0x9F, 0x70, 0x4F, 0x34, 0x5B
+ },
+ {
+ 0xF0, 0x85, 0xF3, 0xD8, 0xBD, 0x13, 0x8E, 0x05,
+ 0x69, 0x24, 0x3F, 0x74, 0x52, 0x3E, 0x87, 0xFF,
+ 0x37, 0x6F, 0x04, 0xEA, 0xBD, 0x5A, 0x2F, 0x6E,
+ 0x53, 0xDF, 0x38, 0x99, 0x00, 0x0E, 0x2E, 0x94,
+ 0xAF, 0x0D, 0x2B, 0xC7, 0x1C, 0x3F, 0x71, 0x10,
+ 0x25, 0xC5, 0x38, 0xA6, 0xC8, 0xB1, 0x0B, 0x09,
+ 0x04, 0xDF, 0xC3, 0x46, 0xAD, 0xAD, 0x7E, 0xF3,
+ 0x6B, 0x1A, 0xE8, 0x8A, 0x6C, 0xFE, 0xAB, 0xBD
+ },
+ {
+ 0x82, 0x91, 0xA4, 0xAF, 0xD2, 0xE4, 0xB7, 0x16,
+ 0x61, 0x77, 0x3A, 0x46, 0xB3, 0xD4, 0x45, 0x5A,
+ 0x8D, 0x33, 0xA7, 0x26, 0xD9, 0xD3, 0x87, 0x30,
+ 0x83, 0xAB, 0x33, 0x70, 0x20, 0xC2, 0x7B, 0x4D,
+ 0xD6, 0x43, 0xE2, 0x8C, 0x2F, 0xE4, 0x7A, 0xB2,
+ 0xFB, 0xF5, 0xD1, 0x40, 0x81, 0xA3, 0xFC, 0x1C,
+ 0x83, 0x9B, 0x12, 0xEA, 0x31, 0xD1, 0x3C, 0xF4,
+ 0x9E, 0xEE, 0x97, 0xEF, 0x2E, 0xD7, 0xFA, 0x3E
+ },
+ {
+ 0xB1, 0x26, 0xAE, 0x46, 0xA7, 0xA4, 0x59, 0x5E,
+ 0x31, 0x60, 0x7E, 0xF8, 0x07, 0xA5, 0x60, 0x1F,
+ 0x4E, 0xCD, 0x9E, 0x7D, 0x66, 0xC8, 0x2D, 0xAE,
+ 0xB9, 0x71, 0x5F, 0x8D, 0xA1, 0xC1, 0x7D, 0x7D,
+ 0x71, 0xC3, 0xE6, 0x82, 0x50, 0xC9, 0xDC, 0x01,
+ 0xAC, 0x40, 0xA3, 0x6D, 0x2E, 0x63, 0x8B, 0xEF,
+ 0x3D, 0x7B, 0xC7, 0x0E, 0xA2, 0xD0, 0xE3, 0x31,
+ 0xE3, 0xD3, 0x3E, 0x17, 0x04, 0xEB, 0xA9, 0x2D
+ },
+ {
+ 0x63, 0xB1, 0x4D, 0x8E, 0xD2, 0x47, 0x9C, 0xAA,
+ 0x17, 0xC3, 0xE4, 0xCF, 0x20, 0x3B, 0x23, 0x3A,
+ 0x7E, 0x37, 0x3E, 0xDB, 0x0C, 0x2F, 0x19, 0x71,
+ 0x29, 0xA9, 0xA3, 0x6C, 0x5B, 0x3E, 0x1F, 0x38,
+ 0x38, 0xF2, 0xE8, 0x2A, 0xC2, 0xC2, 0xAD, 0x9D,
+ 0x52, 0xB3, 0x35, 0x79, 0x0B, 0xFF, 0x57, 0x73,
+ 0x04, 0xA3, 0x78, 0xE3, 0x8E, 0xB6, 0xBB, 0x41,
+ 0x62, 0x03, 0x0C, 0xE2, 0xA8, 0xBA, 0x29, 0x3C
+ },
+ {
+ 0x34, 0x42, 0x2A, 0x32, 0x29, 0x66, 0x99, 0x28,
+ 0xC4, 0x90, 0xF5, 0x7B, 0x8E, 0x76, 0x88, 0x52,
+ 0xE5, 0xB7, 0xC0, 0x0D, 0xCA, 0xD6, 0x0B, 0x01,
+ 0x2A, 0x5D, 0xB3, 0x9A, 0x2D, 0x59, 0x7C, 0x3D,
+ 0x0A, 0x63, 0xBE, 0x6A, 0x26, 0x3E, 0xA5, 0x36,
+ 0x08, 0xB7, 0x06, 0x92, 0xD7, 0x8E, 0x1B, 0x42,
+ 0x7E, 0xAC, 0xEC, 0x01, 0xF4, 0xBE, 0xE0, 0xBD,
+ 0xBB, 0x8F, 0x08, 0x81, 0x48, 0x8E, 0xFC, 0x28
+ },
+ {
+ 0xE2, 0x6B, 0x7E, 0xD6, 0xB9, 0x07, 0xB5, 0x4C,
+ 0xA2, 0x65, 0x67, 0xF1, 0x1E, 0xE5, 0xBB, 0x6D,
+ 0x73, 0x9A, 0x00, 0x08, 0xA5, 0x34, 0x37, 0xAD,
+ 0x75, 0x90, 0xA3, 0x13, 0x4C, 0xEB, 0x95, 0x19,
+ 0x6E, 0x49, 0xB3, 0x44, 0x3F, 0x32, 0x49, 0x22,
+ 0x51, 0x75, 0x23, 0xC0, 0xCD, 0x5A, 0x00, 0xD7,
+ 0x7E, 0x4C, 0x4D, 0xE7, 0xA0, 0xDE, 0x96, 0x8A,
+ 0x84, 0xFB, 0x1B, 0x3B, 0xE7, 0xB3, 0xB9, 0x63
+ },
+ {
+ 0x26, 0x01, 0x97, 0xCA, 0xFB, 0xF4, 0x56, 0xB4,
+ 0x11, 0xFA, 0x26, 0xD3, 0x83, 0xD6, 0x4D, 0x61,
+ 0xE8, 0x1E, 0x5E, 0x52, 0xF8, 0x4C, 0xD9, 0xD5,
+ 0x73, 0x86, 0xC7, 0x76, 0x23, 0x0C, 0x65, 0xA2,
+ 0x68, 0x1C, 0xD2, 0xFD, 0xFD, 0x28, 0x67, 0x9F,
+ 0x67, 0xFE, 0x1B, 0xD7, 0x46, 0x9C, 0xF7, 0x26,
+ 0x95, 0x85, 0xFC, 0xCB, 0xAE, 0xCC, 0x22, 0xF5,
+ 0x03, 0xD6, 0xE3, 0xFC, 0x39, 0x30, 0x14, 0x36
+ },
+ {
+ 0xCB, 0xD5, 0xAB, 0xE3, 0x7B, 0xCC, 0x4F, 0x9A,
+ 0x12, 0x70, 0xAD, 0xD0, 0xA5, 0x27, 0x0F, 0x42,
+ 0x83, 0x9C, 0x7D, 0x24, 0x93, 0x20, 0xD1, 0xF1,
+ 0xD8, 0x85, 0x53, 0xD0, 0x5F, 0xAF, 0x9A, 0x26,
+ 0x79, 0xF4, 0x9B, 0x49, 0xC9, 0xE2, 0x0C, 0x1C,
+ 0x85, 0xC6, 0x29, 0xAA, 0x0F, 0x09, 0x0C, 0xAE,
+ 0x8F, 0x6E, 0x32, 0xC6, 0xCA, 0xD7, 0x17, 0x21,
+ 0xFD, 0x06, 0x23, 0xE4, 0xED, 0x25, 0xB2, 0x56
+ },
+ {
+ 0x78, 0x0E, 0x31, 0x4F, 0xD6, 0x97, 0xD2, 0xA9,
+ 0x7D, 0x22, 0x1A, 0x22, 0xC3, 0x90, 0x11, 0xE2,
+ 0x50, 0x69, 0x16, 0x3C, 0xD0, 0x8F, 0x00, 0x70,
+ 0xD0, 0x67, 0xE8, 0xCD, 0xB0, 0xBC, 0x86, 0x73,
+ 0xFD, 0xB0, 0xEC, 0x4F, 0x46, 0xE3, 0x1D, 0x74,
+ 0x8C, 0xD3, 0xBB, 0x3D, 0x61, 0xB9, 0x01, 0x0A,
+ 0x66, 0x12, 0xF3, 0x41, 0xD4, 0x71, 0xD9, 0xC5,
+ 0xA2, 0xDE, 0x6B, 0x6D, 0xD5, 0x38, 0xA6, 0xB5
+ },
+ {
+ 0x40, 0x8F, 0x16, 0xCE, 0x86, 0xF8, 0x01, 0xD0,
+ 0x8B, 0xD0, 0x51, 0x36, 0x4B, 0x3E, 0xCD, 0x9A,
+ 0x39, 0x45, 0x71, 0x58, 0x88, 0xDF, 0x46, 0x63,
+ 0x21, 0x9A, 0x19, 0x0B, 0x35, 0x04, 0xE4, 0x61,
+ 0x8E, 0x7B, 0xF5, 0x51, 0x71, 0x17, 0x8B, 0x04,
+ 0x00, 0xFB, 0xEB, 0xFA, 0xA0, 0x1F, 0x6E, 0xEA,
+ 0xB5, 0x4F, 0xF5, 0xE3, 0x1E, 0x6D, 0x7A, 0x55,
+ 0xB8, 0x4A, 0xDB, 0x9E, 0x03, 0xDF, 0x48, 0x36
+ },
+ {
+ 0x0B, 0xF9, 0x88, 0x69, 0xEC, 0x05, 0x80, 0x19,
+ 0x9C, 0xA3, 0x70, 0x8E, 0xC9, 0xC4, 0x2C, 0x37,
+ 0x6C, 0x5C, 0x36, 0xE0, 0xFB, 0x74, 0x92, 0x42,
+ 0x57, 0x23, 0x98, 0xA0, 0xDA, 0x57, 0xF9, 0x8D,
+ 0x1C, 0x4C, 0xD2, 0x96, 0x3B, 0x37, 0xC3, 0xC6,
+ 0x5A, 0x10, 0xF1, 0x06, 0xB5, 0x6D, 0xCB, 0x96,
+ 0xDC, 0xDD, 0x32, 0x57, 0x96, 0x29, 0x7A, 0xDB,
+ 0xF6, 0xEE, 0x62, 0x70, 0xED, 0xD4, 0x59, 0x2A
+ },
+ {
+ 0x05, 0x2C, 0x32, 0x98, 0x43, 0x87, 0xB1, 0x93,
+ 0x0D, 0x3A, 0x96, 0xBE, 0x72, 0x36, 0x85, 0x35,
+ 0x44, 0x4F, 0x13, 0x07, 0x57, 0xBF, 0x87, 0xE0,
+ 0x76, 0x2D, 0x8B, 0x1C, 0x4F, 0x65, 0x70, 0xF4,
+ 0xDC, 0x67, 0x4C, 0x4E, 0x6F, 0x5E, 0x21, 0xAB,
+ 0xD0, 0xB3, 0x5E, 0x1C, 0xA1, 0x9D, 0xB8, 0x40,
+ 0x68, 0x8D, 0x1B, 0x6E, 0x9E, 0xC9, 0x1F, 0x37,
+ 0x30, 0xE8, 0xB2, 0x88, 0x0E, 0xC2, 0xC3, 0xDF
+ },
+ {
+ 0x4B, 0xB7, 0x14, 0x09, 0xC1, 0x5A, 0x0D, 0x39,
+ 0x32, 0xC5, 0x99, 0xEF, 0x0F, 0xF3, 0xEF, 0xF5,
+ 0xC7, 0x60, 0x2D, 0x70, 0x00, 0xCD, 0xA9, 0x74,
+ 0x08, 0x2C, 0x4A, 0x46, 0x82, 0x24, 0x9A, 0x19,
+ 0xD4, 0x3A, 0x5C, 0x14, 0xE0, 0xAE, 0xEF, 0x89,
+ 0x78, 0x21, 0x05, 0x63, 0x80, 0xAF, 0xF2, 0x75,
+ 0x20, 0x1D, 0x74, 0x59, 0x14, 0x84, 0x96, 0xEA,
+ 0xE9, 0x42, 0x0E, 0x71, 0x82, 0x88, 0xB4, 0x14
+ },
+ {
+ 0x47, 0x95, 0xB2, 0x51, 0xCC, 0x7B, 0x35, 0xE6,
+ 0x96, 0x92, 0xDB, 0x7F, 0xB4, 0x0E, 0xFD, 0x34,
+ 0xF2, 0x94, 0xF5, 0x1A, 0xEC, 0x15, 0xD6, 0xC8,
+ 0x67, 0x3E, 0x59, 0xF2, 0x04, 0xBE, 0xCF, 0x4C,
+ 0xF9, 0xDF, 0x84, 0x95, 0x23, 0xF1, 0xDB, 0x73,
+ 0xBE, 0x2A, 0x66, 0xC8, 0x39, 0xD8, 0x01, 0x97,
+ 0x4D, 0x43, 0x3B, 0x47, 0x80, 0x67, 0x01, 0xA1,
+ 0x63, 0xA7, 0x94, 0xB2, 0x6A, 0x84, 0x6B, 0x06
+ },
+ {
+ 0xDD, 0x50, 0xF9, 0x65, 0xB6, 0x0B, 0xAF, 0x16,
+ 0x8F, 0x5E, 0xA0, 0x5A, 0xC2, 0x0B, 0x8A, 0x78,
+ 0xF4, 0x47, 0x5C, 0x18, 0x61, 0x0B, 0x9D, 0x9F,
+ 0xC2, 0xB7, 0xC3, 0xAD, 0x5C, 0x6F, 0x97, 0xA4,
+ 0xCF, 0x5E, 0xA4, 0x8E, 0xE4, 0x0A, 0x3C, 0xA2,
+ 0x29, 0x3C, 0xC4, 0x21, 0x40, 0x82, 0xCF, 0x0F,
+ 0x8E, 0xC8, 0x95, 0x55, 0x32, 0x69, 0xE1, 0x4D,
+ 0xA9, 0xBD, 0x1A, 0x19, 0x65, 0x62, 0xCA, 0x59
+ },
+ {
+ 0xE0, 0xB5, 0x4B, 0x61, 0x7F, 0x44, 0x92, 0x2C,
+ 0x7F, 0x61, 0xC6, 0xA5, 0x4C, 0x98, 0xC6, 0x1E,
+ 0x93, 0x2D, 0xED, 0x1F, 0xA9, 0x34, 0x02, 0x66,
+ 0xEE, 0xA2, 0x5F, 0x01, 0xE8, 0x18, 0x0D, 0x1D,
+ 0xDC, 0x6A, 0xD8, 0xDD, 0x6A, 0x0B, 0x8F, 0xAB,
+ 0x8C, 0x73, 0xAE, 0xBB, 0x97, 0x73, 0x17, 0x1B,
+ 0xBA, 0x04, 0xA7, 0x81, 0xB1, 0x13, 0x14, 0xD5,
+ 0xA3, 0x0A, 0x9D, 0x1C, 0x28, 0x12, 0xCA, 0x7C
+ },
+ {
+ 0x2D, 0xC4, 0xAD, 0x06, 0x89, 0xA4, 0x46, 0x0B,
+ 0x5B, 0x39, 0x9E, 0x91, 0x1B, 0xDB, 0x41, 0x58,
+ 0x6A, 0xC8, 0xAD, 0x36, 0x7B, 0x7A, 0xA3, 0x9E,
+ 0x3E, 0xAE, 0xC8, 0x89, 0x9A, 0x2D, 0x3C, 0xE3,
+ 0x8E, 0x34, 0xAB, 0x46, 0x08, 0x23, 0x4D, 0x75,
+ 0xEB, 0x67, 0x37, 0xFE, 0x21, 0x58, 0x24, 0xC2,
+ 0xA9, 0x78, 0x83, 0x59, 0x6F, 0x6F, 0x18, 0xDD,
+ 0xEB, 0xBF, 0x16, 0x27, 0xDE, 0xD9, 0x1D, 0x84
+ },
+ {
+ 0xF5, 0x6A, 0x11, 0xCB, 0xBF, 0x8A, 0x99, 0x7E,
+ 0x14, 0x77, 0xEC, 0x76, 0xE5, 0x3C, 0x89, 0x4B,
+ 0x14, 0x8D, 0x69, 0x25, 0xA4, 0x33, 0x6F, 0x0C,
+ 0xB7, 0xAA, 0xB9, 0xD8, 0x02, 0xAC, 0x9B, 0x45,
+ 0x36, 0xF4, 0x80, 0x10, 0x1F, 0x3F, 0x9A, 0x77,
+ 0xEE, 0xCD, 0xCB, 0xAE, 0x7A, 0xA6, 0xEA, 0x44,
+ 0x7A, 0x85, 0xDA, 0x90, 0xB5, 0x01, 0xF7, 0xDB,
+ 0x2E, 0xF8, 0xDD, 0xF5, 0xDE, 0x17, 0x33, 0x63
+ },
+ {
+ 0x6E, 0x17, 0x1D, 0x19, 0x6D, 0x0F, 0xC8, 0x2F,
+ 0xB4, 0x73, 0xE2, 0x9D, 0xA8, 0xF4, 0x0F, 0x37,
+ 0xEE, 0x97, 0x41, 0xAC, 0x3E, 0xAF, 0x17, 0x5D,
+ 0xD4, 0x9F, 0xDB, 0x56, 0x53, 0x0D, 0xB5, 0x98,
+ 0x98, 0xBA, 0xF3, 0xCE, 0xE7, 0x2E, 0xEF, 0x5E,
+ 0x77, 0x27, 0x6C, 0xAD, 0xAB, 0xCD, 0x75, 0x2C,
+ 0xA3, 0xA1, 0xB8, 0x64, 0xC1, 0x0A, 0xD2, 0x8D,
+ 0x27, 0xEA, 0xAD, 0x86, 0xE3, 0xF2, 0x1D, 0x33
+ },
+ {
+ 0x95, 0x20, 0x12, 0x33, 0x0D, 0x92, 0xBB, 0x9C,
+ 0x18, 0x92, 0xF2, 0x5B, 0x7B, 0x5A, 0xA0, 0xFE,
+ 0xD3, 0xC0, 0x39, 0x8A, 0x17, 0x08, 0x50, 0x9A,
+ 0x66, 0x14, 0x74, 0xA3, 0xF5, 0xE5, 0x11, 0xD0,
+ 0x9F, 0x21, 0xC3, 0x00, 0x08, 0x00, 0x2F, 0x10,
+ 0x42, 0xD8, 0x3D, 0x2F, 0x7B, 0x11, 0x33, 0x6B,
+ 0x8C, 0x2F, 0xE1, 0xD9, 0x79, 0xC1, 0xE3, 0x86,
+ 0xE0, 0x20, 0x97, 0x48, 0x9B, 0x2D, 0xFC, 0xF5
+ },
+ {
+ 0x2D, 0xCE, 0x47, 0xC3, 0x3A, 0x7E, 0x7F, 0x21,
+ 0x5D, 0x34, 0xA5, 0x47, 0x1B, 0xCD, 0x11, 0x10,
+ 0x60, 0x6C, 0x77, 0x13, 0x8F, 0x19, 0xD4, 0x17,
+ 0x41, 0xED, 0x5D, 0x1B, 0x89, 0xE8, 0xF7, 0xC7,
+ 0x74, 0xEE, 0xC4, 0xBB, 0xC1, 0x02, 0x76, 0x6E,
+ 0xA1, 0x53, 0x2F, 0x2E, 0x43, 0x13, 0x4A, 0xD3,
+ 0x66, 0xBD, 0xCC, 0x27, 0xD1, 0xA0, 0xCC, 0x95,
+ 0x9E, 0x16, 0x48, 0x65, 0x9E, 0x44, 0xCB, 0xBE
+ },
+ {
+ 0x7F, 0x06, 0x59, 0x59, 0x7E, 0x7A, 0xD1, 0x22,
+ 0xD1, 0xC9, 0xED, 0x91, 0x93, 0x0B, 0x07, 0xDE,
+ 0x40, 0xE2, 0x55, 0x20, 0x1A, 0x33, 0xEB, 0x2B,
+ 0x31, 0x81, 0x37, 0x6E, 0x36, 0x8D, 0xF7, 0x76,
+ 0x4C, 0x0C, 0x14, 0xBF, 0x79, 0x9F, 0x16, 0x1B,
+ 0x9B, 0x00, 0x79, 0x57, 0x8B, 0x47, 0x09, 0x71,
+ 0x3E, 0x24, 0xE4, 0x2F, 0xE7, 0xDD, 0x71, 0xB5,
+ 0x09, 0x43, 0xF4, 0x40, 0xE2, 0x3C, 0xD1, 0xBE
+ },
+ {
+ 0x1E, 0x66, 0xF7, 0xB3, 0x58, 0x80, 0x5D, 0xDD,
+ 0xFF, 0xC5, 0x82, 0x68, 0x3E, 0x0B, 0xAD, 0x81,
+ 0x8C, 0x87, 0x34, 0x03, 0xD4, 0xBA, 0x15, 0x06,
+ 0xB9, 0x2F, 0xB3, 0x20, 0xCA, 0x8C, 0xF9, 0xCE,
+ 0xE8, 0x15, 0x47, 0x15, 0xD6, 0xDB, 0x6F, 0x04,
+ 0x09, 0x3D, 0x4B, 0x3F, 0xD8, 0xA6, 0xFC, 0x8E,
+ 0x7E, 0xDD, 0xEA, 0xF2, 0x79, 0x5B, 0x3D, 0x22,
+ 0xDE, 0x7C, 0x75, 0xEC, 0xFF, 0x6F, 0x92, 0xAF
+ },
+ {
+ 0x1F, 0x60, 0xC1, 0x8D, 0xB1, 0x68, 0xD9, 0x0D,
+ 0x2B, 0x46, 0x60, 0xE7, 0x58, 0xA3, 0xCD, 0x28,
+ 0x02, 0x3D, 0x4C, 0x0B, 0x84, 0x8B, 0x5E, 0x33,
+ 0xEA, 0x5C, 0xC1, 0x56, 0x29, 0xFD, 0x35, 0x2E,
+ 0xAC, 0xB1, 0x4F, 0x05, 0xFD, 0xEC, 0x07, 0xAC,
+ 0x23, 0xDA, 0x92, 0x04, 0x74, 0x5F, 0xA9, 0x73,
+ 0xC3, 0x29, 0x55, 0x13, 0x5F, 0x8E, 0xC7, 0x41,
+ 0x0A, 0x1C, 0xB5, 0x3B, 0xC7, 0x58, 0x06, 0x84
+ },
+ {
+ 0xB9, 0xDF, 0x57, 0xB3, 0x45, 0xEE, 0x6F, 0x87,
+ 0x0E, 0xE0, 0xE6, 0x3C, 0x55, 0x8B, 0x81, 0xC1,
+ 0xBC, 0x38, 0x42, 0x97, 0x6F, 0xD3, 0xCF, 0xB1,
+ 0xB5, 0x3B, 0x76, 0x6B, 0xF4, 0x36, 0xD1, 0xD1,
+ 0x75, 0xF4, 0xD4, 0xC5, 0xF1, 0xBD, 0x8D, 0x7A,
+ 0xF6, 0x5B, 0x5D, 0x18, 0xA7, 0x2F, 0x95, 0x71,
+ 0xF2, 0x34, 0x70, 0x19, 0x32, 0xAF, 0xB7, 0xC3,
+ 0xC9, 0x4A, 0x8C, 0x8F, 0xA0, 0x23, 0xDB, 0x4F
+ },
+ {
+ 0xD8, 0xC8, 0x24, 0x95, 0xA2, 0xB5, 0xF6, 0x64,
+ 0x51, 0xF8, 0xC5, 0xB2, 0xE8, 0xA1, 0x73, 0x33,
+ 0xC2, 0xBE, 0x32, 0x20, 0xCE, 0x06, 0xA8, 0x14,
+ 0xC2, 0xCE, 0xA9, 0x5C, 0xC8, 0x65, 0x92, 0xAA,
+ 0x02, 0x15, 0xBF, 0x29, 0x46, 0x14, 0xA3, 0x28,
+ 0xCF, 0x07, 0x22, 0x2B, 0x73, 0xF9, 0x3F, 0x24,
+ 0x2A, 0x94, 0x8B, 0xCA, 0xE9, 0x56, 0x5F, 0xC9,
+ 0x70, 0x57, 0xB5, 0x2E, 0x02, 0x80, 0xEB, 0x82
+ },
+ {
+ 0x81, 0x34, 0xCE, 0x66, 0xD9, 0x5C, 0x40, 0x88,
+ 0xA5, 0x66, 0xD4, 0xE4, 0x35, 0x99, 0x06, 0x9A,
+ 0xD0, 0x45, 0x53, 0xB0, 0xFE, 0xA3, 0xD7, 0x48,
+ 0x19, 0xA6, 0xFD, 0x76, 0x6F, 0x43, 0x67, 0x42,
+ 0xF6, 0xB6, 0xEC, 0xC8, 0x27, 0x93, 0x98, 0x60,
+ 0x9F, 0x60, 0xB4, 0xE4, 0xBB, 0x44, 0xFD, 0x72,
+ 0xCD, 0xFB, 0xFF, 0x18, 0xD8, 0x03, 0x8A, 0xA7,
+ 0x12, 0x30, 0x83, 0x8B, 0x12, 0x6B, 0xC3, 0x00
+ },
+ {
+ 0x3D, 0xA8, 0x9F, 0x5C, 0x52, 0xB0, 0x52, 0xE0,
+ 0x42, 0xE5, 0x11, 0x7B, 0x96, 0x80, 0x6E, 0xDB,
+ 0x1C, 0x55, 0x22, 0x7E, 0x85, 0x14, 0xB3, 0x9E,
+ 0x8B, 0x22, 0xBE, 0xA4, 0xC9, 0x53, 0x30, 0x80,
+ 0xA4, 0xD7, 0xA9, 0x24, 0x92, 0xB7, 0x51, 0x76,
+ 0x9B, 0x0E, 0x11, 0x9E, 0xF4, 0xDB, 0x2B, 0xB8,
+ 0x8D, 0x5C, 0x1E, 0x75, 0xB4, 0x03, 0x10, 0x74,
+ 0xD7, 0xF2, 0x1A, 0x78, 0x01, 0x4A, 0x1F, 0x96
+ },
+ {
+ 0x9B, 0xDC, 0xB4, 0x69, 0xC2, 0x66, 0x5D, 0xD8,
+ 0x46, 0x83, 0xE5, 0x81, 0x01, 0xFD, 0xAE, 0x5C,
+ 0x88, 0x29, 0x2A, 0x4E, 0x05, 0xC4, 0x00, 0xCA,
+ 0x08, 0x26, 0xDA, 0x79, 0x38, 0x2B, 0x8A, 0x28,
+ 0x26, 0xFF, 0x24, 0xFC, 0xD5, 0x56, 0xC9, 0xD5,
+ 0xB5, 0xAA, 0x89, 0x2F, 0x02, 0xB1, 0x67, 0x04,
+ 0x77, 0x27, 0x9B, 0xD7, 0x5F, 0x1B, 0x2B, 0x7B,
+ 0x67, 0x5E, 0xFA, 0xC3, 0x80, 0x60, 0x70, 0x36
+ },
+ {
+ 0x6C, 0x77, 0x85, 0x7B, 0x38, 0x53, 0x3E, 0x41,
+ 0x4A, 0xF7, 0x38, 0x7C, 0x98, 0x56, 0x8D, 0x71,
+ 0xC8, 0xF0, 0xE3, 0x5E, 0x22, 0xB0, 0x2E, 0x2A,
+ 0x1C, 0x0D, 0xC6, 0xD5, 0x7E, 0x37, 0xD8, 0x68,
+ 0x72, 0x5A, 0xD8, 0x23, 0x58, 0x6A, 0x0B, 0xEE,
+ 0xF3, 0x98, 0x89, 0xCC, 0x31, 0xF1, 0xF7, 0xFA,
+ 0xD0, 0x96, 0x0A, 0x12, 0x5E, 0x29, 0xDF, 0xEA,
+ 0x74, 0x55, 0x12, 0xD1, 0x79, 0xE5, 0xF5, 0x89
+ },
+ {
+ 0x88, 0xC9, 0x83, 0x3A, 0x6D, 0x44, 0xFC, 0x25,
+ 0xBB, 0x64, 0xF3, 0xE9, 0x8E, 0x83, 0x8F, 0xB4,
+ 0xFF, 0x56, 0x48, 0x96, 0xDC, 0xD3, 0x58, 0x3A,
+ 0x8B, 0x57, 0xC9, 0x46, 0x6E, 0x74, 0x0C, 0x62,
+ 0x8B, 0x2D, 0x26, 0xEA, 0x14, 0x7C, 0xB3, 0x11,
+ 0x10, 0xFB, 0xAD, 0xCF, 0x9D, 0x01, 0x08, 0xAC,
+ 0xCE, 0xBE, 0x04, 0x31, 0x7D, 0x19, 0xFC, 0x03,
+ 0x66, 0xDE, 0x0C, 0x28, 0xA1, 0xA4, 0x5E, 0x2A
+ },
+ {
+ 0x0A, 0xAB, 0xB3, 0xA1, 0x78, 0x46, 0x4A, 0x01,
+ 0x47, 0x64, 0x5F, 0x05, 0x71, 0x2A, 0x0A, 0x15,
+ 0x55, 0xC5, 0xB9, 0xA3, 0xE9, 0x99, 0xAB, 0x25,
+ 0x5A, 0xCA, 0x35, 0xC5, 0x03, 0x81, 0xF4, 0x90,
+ 0x55, 0x1A, 0x40, 0x89, 0x31, 0xAA, 0x6B, 0xE9,
+ 0xA4, 0xEF, 0x49, 0x7A, 0x16, 0x5B, 0x36, 0x66,
+ 0x3B, 0x1E, 0x1F, 0x05, 0x13, 0x48, 0x02, 0xB1,
+ 0x78, 0xB7, 0xC7, 0x04, 0x68, 0xCB, 0x98, 0xE8
+ },
+ {
+ 0x58, 0x50, 0xD8, 0x93, 0x70, 0x6B, 0x3B, 0xC2,
+ 0xDB, 0xBA, 0x9C, 0xFA, 0xB0, 0x28, 0xBE, 0xD8,
+ 0x19, 0xA2, 0x83, 0x11, 0xD2, 0xD6, 0xF0, 0xCD,
+ 0x8E, 0x27, 0x2E, 0xE6, 0x77, 0xBC, 0x87, 0x8A,
+ 0x0C, 0xED, 0x6C, 0x0D, 0xEA, 0x9E, 0x5C, 0xC9,
+ 0x4B, 0x2B, 0x4F, 0x59, 0x1A, 0x40, 0xEC, 0x9F,
+ 0xB1, 0x82, 0x22, 0xD6, 0xDE, 0xAC, 0xE1, 0xF9,
+ 0xC0, 0x83, 0xDC, 0x05, 0xDE, 0x11, 0x7A, 0x53
+ },
+ {
+ 0xBE, 0xE6, 0x96, 0xA4, 0x76, 0x4F, 0x94, 0x25,
+ 0xD9, 0x1B, 0x14, 0x17, 0x38, 0x62, 0x5A, 0x04,
+ 0x47, 0xA8, 0x22, 0xBB, 0xA7, 0xA8, 0x47, 0x78,
+ 0xCC, 0x3A, 0x77, 0xA3, 0x86, 0xCB, 0x18, 0x24,
+ 0x87, 0xDB, 0x51, 0x3B, 0xB8, 0xF3, 0x6F, 0xC2,
+ 0xF7, 0xE6, 0xD2, 0x89, 0x6E, 0x44, 0x56, 0xA5,
+ 0x23, 0x46, 0xC4, 0x94, 0x8E, 0x3E, 0xC6, 0x34,
+ 0xCB, 0xF1, 0x8F, 0x39, 0xC4, 0x46, 0xCB, 0xAB
+ },
+ {
+ 0x3D, 0x9F, 0x75, 0xD3, 0xE5, 0x0D, 0x9B, 0xA3,
+ 0xBC, 0xAC, 0x4A, 0x4E, 0x11, 0x6B, 0x9B, 0x30,
+ 0x8D, 0xC6, 0x45, 0x99, 0xA3, 0x86, 0x4A, 0x9D,
+ 0xAF, 0xD7, 0x5C, 0xB7, 0x1F, 0x2D, 0xE3, 0x10,
+ 0x9F, 0x79, 0x56, 0xA7, 0xD2, 0xDD, 0x37, 0x4F,
+ 0x84, 0x06, 0xD7, 0x7F, 0x79, 0x63, 0x11, 0xE3,
+ 0xD3, 0x00, 0x89, 0xE5, 0x4D, 0xD6, 0xCE, 0x8A,
+ 0xBB, 0x02, 0xA8, 0x5A, 0x85, 0xAE, 0x92, 0xE4
+ },
+ {
+ 0xEF, 0x39, 0x51, 0x47, 0x5A, 0x16, 0xDF, 0x64,
+ 0x98, 0x32, 0x24, 0x04, 0x65, 0x30, 0xDC, 0x7C,
+ 0xB0, 0x53, 0xD2, 0x93, 0x94, 0x75, 0x39, 0x11,
+ 0xC4, 0x94, 0x99, 0x50, 0xF2, 0x3E, 0x8A, 0x92,
+ 0xC7, 0x09, 0xF4, 0x63, 0x69, 0xB2, 0x3A, 0x0D,
+ 0x70, 0x3A, 0x6F, 0x36, 0x49, 0x0F, 0x75, 0xBE,
+ 0x1E, 0x3E, 0x81, 0x29, 0xA8, 0x29, 0xF3, 0xDC,
+ 0xD7, 0x2D, 0x0E, 0x55, 0x49, 0x7B, 0x81, 0x33
+ },
+ {
+ 0xD4, 0x19, 0x7D, 0x2A, 0x68, 0x5B, 0xCA, 0x6B,
+ 0xFB, 0xDD, 0x0E, 0x3D, 0x84, 0xC7, 0x48, 0x01,
+ 0x35, 0x48, 0xBC, 0x84, 0x9F, 0xE6, 0x49, 0xDA,
+ 0xE7, 0xC4, 0xA2, 0x77, 0xFC, 0xBD, 0x8F, 0x81,
+ 0x8A, 0x9E, 0xDF, 0xA6, 0xCA, 0x14, 0xD7, 0xFE,
+ 0xEA, 0x72, 0x6B, 0x23, 0xB4, 0xA3, 0x3A, 0xA8,
+ 0xA3, 0xF5, 0xA6, 0x61, 0x67, 0x21, 0x5C, 0x61,
+ 0x48, 0xC0, 0x6B, 0x94, 0xCD, 0x8B, 0xFE, 0x37
+ },
+ {
+ 0x7A, 0x24, 0x40, 0x33, 0x35, 0xB8, 0x64, 0x10,
+ 0xD8, 0xD6, 0x93, 0xF1, 0x63, 0xD6, 0x19, 0x8A,
+ 0x68, 0x0F, 0x7E, 0x3A, 0xC0, 0x25, 0xEC, 0x44,
+ 0x74, 0x24, 0x9B, 0x01, 0x16, 0x77, 0xFE, 0x1C,
+ 0x86, 0x6A, 0xAF, 0x45, 0x3D, 0xB0, 0xE8, 0xF6,
+ 0x54, 0x33, 0x51, 0x50, 0x86, 0x3A, 0xCE, 0x57,
+ 0x66, 0x50, 0x80, 0x31, 0x91, 0x27, 0x8E, 0x9D,
+ 0x4B, 0x54, 0x7A, 0x43, 0x4C, 0x56, 0x54, 0xE2
+ },
+ {
+ 0xAF, 0x07, 0xC6, 0x7D, 0x58, 0x74, 0x3A, 0xEB,
+ 0x18, 0x50, 0xEB, 0x53, 0xB2, 0xDA, 0x78, 0xEC,
+ 0xF7, 0x09, 0x58, 0x18, 0x32, 0x5B, 0xEB, 0x86,
+ 0x6F, 0xF3, 0x13, 0xE3, 0x94, 0xC0, 0x07, 0xE0,
+ 0xC0, 0xB5, 0xA1, 0xCD, 0x7A, 0xE6, 0xBB, 0x37,
+ 0xCD, 0x27, 0x81, 0xB5, 0x2D, 0x15, 0x4D, 0x18,
+ 0x86, 0x5D, 0x5E, 0x37, 0xDB, 0xAA, 0x5F, 0x96,
+ 0x73, 0x9B, 0xF7, 0x69, 0x59, 0x96, 0xAE, 0x30
+ },
+ {
+ 0x28, 0xB3, 0xC2, 0x60, 0xFA, 0x7F, 0x23, 0xB9,
+ 0xCC, 0xAD, 0xD6, 0x15, 0xA1, 0x14, 0x69, 0x49,
+ 0x8A, 0xDB, 0x18, 0xD7, 0xA9, 0xF6, 0x84, 0xFD,
+ 0xE4, 0x35, 0xC0, 0x65, 0x33, 0xF5, 0xF5, 0x08,
+ 0xB2, 0x9B, 0x5E, 0xCD, 0x0E, 0xCD, 0x57, 0x36,
+ 0x9F, 0x22, 0xF1, 0xC5, 0x4E, 0x61, 0xBE, 0x6C,
+ 0xD1, 0x04, 0xC8, 0xF7, 0xD3, 0xE1, 0x84, 0x7A,
+ 0xAD, 0x67, 0x07, 0x3A, 0x47, 0x86, 0xE1, 0xDB
+ },
+ {
+ 0xD6, 0x43, 0x23, 0x33, 0x25, 0x23, 0x9E, 0x2E,
+ 0xBD, 0x41, 0x1F, 0x0E, 0x00, 0x23, 0x30, 0x56,
+ 0x2E, 0xB1, 0xBB, 0x08, 0xE6, 0x88, 0x24, 0xB7,
+ 0x1B, 0x98, 0x19, 0x9C, 0x76, 0xD5, 0x31, 0x58,
+ 0xD9, 0x1D, 0xDD, 0x6F, 0x4F, 0x82, 0x61, 0xEC,
+ 0x1D, 0x72, 0xFC, 0x77, 0xC2, 0xCC, 0x23, 0x7E,
+ 0xDA, 0x15, 0xF0, 0x25, 0x7C, 0xF0, 0x7B, 0x84,
+ 0xCF, 0x1F, 0xBD, 0x1D, 0xBA, 0xFA, 0x1D, 0xFC
+ },
+ {
+ 0x3D, 0x7B, 0x44, 0xCC, 0x82, 0xEF, 0xCA, 0xFC,
+ 0xAB, 0xA6, 0xB1, 0x91, 0x05, 0x48, 0x95, 0x8C,
+ 0x18, 0x0A, 0x0E, 0x8D, 0x84, 0xBC, 0x66, 0x3E,
+ 0x8E, 0xF9, 0x53, 0x3B, 0xD8, 0x0C, 0x4B, 0xBA,
+ 0xAA, 0x25, 0x5B, 0x19, 0x81, 0xF7, 0x56, 0xEB,
+ 0x10, 0x79, 0xAD, 0x0F, 0x34, 0x71, 0xA1, 0xFC,
+ 0x9D, 0x7A, 0x43, 0x23, 0x39, 0x30, 0x3A, 0x57,
+ 0x81, 0xA3, 0x45, 0x35, 0x30, 0x9E, 0x5A, 0x24
+ },
+ {
+ 0xEB, 0x08, 0x12, 0xC9, 0x67, 0x06, 0x46, 0xD5,
+ 0x63, 0x19, 0x8B, 0x11, 0x7A, 0xAF, 0xC5, 0x6F,
+ 0xA1, 0xB6, 0x56, 0x0F, 0x88, 0xB5, 0x75, 0x4E,
+ 0xBF, 0xC3, 0x1B, 0x35, 0x52, 0x16, 0xD8, 0xD7,
+ 0x4D, 0x34, 0x1E, 0x35, 0xB2, 0x43, 0xBC, 0x93,
+ 0x8C, 0xF5, 0x46, 0xAF, 0x1F, 0x73, 0xC1, 0xB0,
+ 0x04, 0x55, 0xDC, 0x06, 0xB2, 0xC6, 0xC5, 0x35,
+ 0x27, 0x9E, 0x87, 0x67, 0x49, 0x8F, 0x14, 0xE6
+ },
+ {
+ 0x7B, 0xBA, 0x7D, 0x73, 0x04, 0x02, 0x1C, 0x75,
+ 0xB5, 0xD6, 0xCE, 0x66, 0xB4, 0xEF, 0xA5, 0x50,
+ 0x19, 0xD9, 0x42, 0xD2, 0x08, 0xAF, 0xAC, 0x82,
+ 0x11, 0xAA, 0x7E, 0x5E, 0x11, 0x1E, 0x27, 0x69,
+ 0x76, 0x70, 0xE4, 0xEC, 0x91, 0xBA, 0x30, 0x8E,
+ 0xBD, 0xFB, 0x19, 0x15, 0x4C, 0x3B, 0xAD, 0x05,
+ 0x26, 0xA6, 0x25, 0x41, 0xAE, 0x5D, 0x43, 0xD0,
+ 0xF5, 0x47, 0xB9, 0xD9, 0x8E, 0x07, 0x36, 0x60
+ },
+ {
+ 0xA8, 0xE2, 0xA9, 0x46, 0x8D, 0xA3, 0xE3, 0x54,
+ 0x3A, 0x23, 0xA5, 0x78, 0x78, 0x0E, 0x25, 0x62,
+ 0xC7, 0xCE, 0x57, 0xFD, 0x11, 0x20, 0xE1, 0xC0,
+ 0x24, 0xD7, 0xEA, 0x32, 0x90, 0x31, 0x70, 0x46,
+ 0x61, 0x6E, 0x14, 0xCD, 0x0F, 0x15, 0xA8, 0x6B,
+ 0x99, 0x39, 0x54, 0x9B, 0x14, 0x76, 0x11, 0xB6,
+ 0xA5, 0x5D, 0x85, 0xAB, 0xC2, 0x5F, 0x63, 0x95,
+ 0x46, 0xB8, 0x9D, 0xD2, 0x3D, 0x39, 0xA9, 0x85
+ },
+ {
+ 0xCE, 0x87, 0x4C, 0xD6, 0xE1, 0x95, 0x8B, 0x9D,
+ 0x7F, 0x11, 0xFF, 0x44, 0xAB, 0x08, 0x32, 0xE8,
+ 0x48, 0x70, 0x2C, 0x8F, 0x26, 0x65, 0x6B, 0xA1,
+ 0x0B, 0xF5, 0x72, 0x0A, 0x7C, 0xAA, 0x1F, 0x59,
+ 0x08, 0xC9, 0x9A, 0x96, 0x03, 0xA9, 0x8B, 0x41,
+ 0x6C, 0x57, 0x22, 0x8C, 0x81, 0x9C, 0xEA, 0xF8,
+ 0x27, 0x01, 0x3B, 0x2E, 0x6D, 0x6B, 0x2D, 0xAE,
+ 0x59, 0xDF, 0xF1, 0x04, 0xB9, 0x02, 0xC3, 0x1B
+ },
+ {
+ 0x30, 0xFF, 0xFE, 0x37, 0x21, 0x8D, 0xB1, 0x94,
+ 0xB2, 0x32, 0x73, 0x49, 0x8F, 0x45, 0x44, 0xD3,
+ 0x84, 0x14, 0xBE, 0xE4, 0x1B, 0x17, 0x55, 0xA0,
+ 0xC6, 0xC2, 0xDB, 0xCB, 0x41, 0x19, 0x42, 0xD5,
+ 0xEC, 0xB9, 0xD4, 0x52, 0x3F, 0xB4, 0x79, 0x4B,
+ 0xA3, 0x6E, 0x57, 0x9A, 0xF2, 0xF8, 0xDD, 0x85,
+ 0x19, 0x99, 0x23, 0x31, 0x83, 0xFA, 0xB2, 0x7B,
+ 0x47, 0xAD, 0xD8, 0x7D, 0xF3, 0x59, 0x14, 0xBB
+ },
+ {
+ 0xCE, 0xF4, 0x43, 0x1D, 0xCE, 0x9F, 0xF5, 0x5A,
+ 0x00, 0x30, 0x0E, 0xC8, 0x64, 0x9E, 0x27, 0x58,
+ 0x36, 0x18, 0x22, 0x43, 0x69, 0xF6, 0x0A, 0x5C,
+ 0x89, 0x6B, 0x2A, 0x31, 0x10, 0xB0, 0x32, 0xB8,
+ 0x7C, 0x9E, 0xE4, 0xF2, 0x6C, 0x5F, 0x0B, 0xDB,
+ 0x50, 0x3E, 0xA7, 0x44, 0x7A, 0x5D, 0xB3, 0xF7,
+ 0x07, 0xFE, 0x34, 0x10, 0xDA, 0xCD, 0xD7, 0x57,
+ 0x22, 0x19, 0xBD, 0xEA, 0x8E, 0x17, 0xDC, 0x04
+ },
+ {
+ 0x8F, 0xF0, 0xBC, 0xB7, 0x5F, 0x00, 0x61, 0xB5,
+ 0xF9, 0x09, 0x29, 0x8F, 0x56, 0x9E, 0x45, 0xC7,
+ 0x5E, 0xD2, 0xD6, 0x4A, 0x81, 0x89, 0xCE, 0xBD,
+ 0x4E, 0x02, 0x56, 0x6E, 0x1A, 0x1B, 0x8B, 0xE5,
+ 0x3A, 0x78, 0x32, 0x28, 0x55, 0x8E, 0x28, 0xB5,
+ 0xF8, 0x7C, 0xCC, 0x2F, 0x42, 0x8F, 0x7F, 0x87,
+ 0x97, 0x44, 0xB5, 0x25, 0xB2, 0x49, 0x62, 0xB3,
+ 0x60, 0x4B, 0x12, 0x0F, 0x06, 0x77, 0x9F, 0x2E
+ },
+ {
+ 0x7F, 0x8D, 0xDF, 0xFB, 0x4D, 0xC1, 0x51, 0x91,
+ 0xDE, 0x3D, 0xDB, 0xE4, 0xA0, 0xF8, 0x8B, 0x7A,
+ 0xB0, 0x2D, 0x48, 0xE2, 0x5C, 0xFC, 0x1F, 0xE9,
+ 0x1D, 0xA5, 0x57, 0xE8, 0x85, 0xD0, 0x12, 0xB8,
+ 0xF6, 0x55, 0x26, 0xC5, 0xB7, 0xB1, 0x01, 0x3F,
+ 0xC8, 0x16, 0x58, 0x50, 0x43, 0xA3, 0x45, 0x60,
+ 0x5A, 0x39, 0xD8, 0xDA, 0xD7, 0x0D, 0x8A, 0x64,
+ 0x48, 0x51, 0x32, 0x50, 0xAA, 0xC4, 0xF3, 0xD5
+ },
+ {
+ 0xB1, 0xFE, 0x8C, 0x68, 0xAE, 0xF6, 0xB4, 0xD4,
+ 0xB2, 0x33, 0x54, 0xEB, 0x8C, 0x1D, 0x8F, 0x5A,
+ 0x56, 0xE3, 0x2E, 0x76, 0xB9, 0x6A, 0xC8, 0x44,
+ 0x3B, 0x2A, 0xB8, 0x35, 0xE4, 0xC8, 0xB6, 0x74,
+ 0xB3, 0x3E, 0x4C, 0x6C, 0x6D, 0xC1, 0x21, 0xD7,
+ 0xC2, 0xD3, 0x4B, 0x59, 0xB3, 0x7A, 0x56, 0x8A,
+ 0x1C, 0x98, 0xD5, 0x00, 0x32, 0x4E, 0x53, 0x08,
+ 0x87, 0x85, 0xB6, 0xB0, 0x80, 0x63, 0x47, 0xD1
+ },
+ {
+ 0x8E, 0x87, 0x34, 0xFC, 0xF9, 0x25, 0x9E, 0xE3,
+ 0x7F, 0xE9, 0xC6, 0xCD, 0xA2, 0x82, 0xC2, 0xD5,
+ 0xEB, 0x83, 0xD0, 0xCF, 0x43, 0x9C, 0x86, 0x19,
+ 0xD4, 0xB0, 0x42, 0xFF, 0x69, 0x96, 0x6B, 0x03,
+ 0x56, 0x5B, 0xE4, 0xDF, 0x96, 0x39, 0x3F, 0xE6,
+ 0xBF, 0x35, 0xAF, 0xA1, 0x6E, 0x02, 0x73, 0xB6,
+ 0xD3, 0x39, 0xC0, 0x09, 0x95, 0xBF, 0x6F, 0x60,
+ 0xA7, 0x14, 0xEF, 0x18, 0x0E, 0xBB, 0x93, 0x15
+ },
+ {
+ 0xAE, 0x15, 0x6D, 0x43, 0xA7, 0x2C, 0x04, 0x29,
+ 0x42, 0x59, 0x58, 0x78, 0xA7, 0x83, 0x07, 0x97,
+ 0x60, 0xF5, 0x21, 0xED, 0xB8, 0xB2, 0xC3, 0xD4,
+ 0x1A, 0x56, 0x6B, 0x7C, 0xF7, 0x4A, 0x4A, 0x08,
+ 0xEA, 0x0F, 0x11, 0x9D, 0x24, 0x0A, 0x62, 0xEC,
+ 0x73, 0xB9, 0x50, 0x97, 0x88, 0xFA, 0x3A, 0xED,
+ 0xF1, 0x20, 0xEE, 0x88, 0xCB, 0x95, 0x1B, 0x69,
+ 0x3F, 0x8F, 0x7C, 0xAF, 0x8C, 0xBA, 0x37, 0x7F
+ },
+ {
+ 0x93, 0x30, 0xAA, 0xCA, 0x8C, 0x08, 0x84, 0x46,
+ 0x58, 0xC2, 0x95, 0x06, 0xB1, 0xC3, 0x42, 0x72,
+ 0xE2, 0xB3, 0xC7, 0xB4, 0xE7, 0x5E, 0x6F, 0xE9,
+ 0x9A, 0x01, 0x07, 0xEC, 0x5D, 0xA4, 0x53, 0x0F,
+ 0xB1, 0xC8, 0x8C, 0xAA, 0x66, 0xDD, 0x9C, 0x47,
+ 0x1E, 0x01, 0xCA, 0x21, 0xA1, 0x3A, 0x5D, 0x6F,
+ 0x82, 0x15, 0xDE, 0xD3, 0x14, 0x7E, 0x94, 0xDE,
+ 0x20, 0x88, 0x57, 0x1F, 0xD1, 0xBF, 0x23, 0xB6
+ },
+ {
+ 0xC1, 0x29, 0xF2, 0x2C, 0x50, 0xF5, 0x99, 0x72,
+ 0x32, 0xE2, 0xB9, 0xF9, 0x3D, 0xFA, 0xA0, 0x0A,
+ 0xD8, 0xA5, 0x34, 0x29, 0xF9, 0xD1, 0x5B, 0x98,
+ 0x42, 0xE3, 0xAE, 0x08, 0xD8, 0x49, 0xEB, 0xDD,
+ 0x45, 0x23, 0x8C, 0x85, 0xF9, 0x2C, 0x6F, 0x91,
+ 0x7E, 0x0F, 0x8F, 0x6F, 0x94, 0xE2, 0x34, 0xBE,
+ 0x07, 0x61, 0x68, 0xE0, 0xDF, 0x43, 0xD0, 0x28,
+ 0x45, 0x52, 0x79, 0xA6, 0xFF, 0x65, 0xDC, 0x84
+ },
+ {
+ 0x0E, 0x2B, 0x4B, 0xC2, 0xF6, 0xA7, 0x5B, 0xE4,
+ 0xB7, 0xC9, 0xD4, 0xB5, 0x3D, 0x10, 0x4D, 0xA0,
+ 0x65, 0x85, 0x8D, 0x38, 0x7B, 0x34, 0x0B, 0xC1,
+ 0x63, 0x4F, 0x3A, 0x83, 0x32, 0xD5, 0x4C, 0xAA,
+ 0x94, 0x30, 0x24, 0xB2, 0x13, 0xDC, 0x8D, 0x4F,
+ 0x21, 0x9E, 0xC8, 0xE1, 0xDE, 0xCA, 0xC7, 0xD5,
+ 0xC6, 0xAE, 0x69, 0xC9, 0xEF, 0xD8, 0x81, 0x49,
+ 0x36, 0x78, 0x38, 0x20, 0x5D, 0x0D, 0xC7, 0xC0
+ },
+ {
+ 0x83, 0xB5, 0x43, 0x85, 0x3B, 0x81, 0x42, 0xA8,
+ 0x3B, 0xEF, 0xF0, 0x73, 0x5F, 0x20, 0x18, 0x91,
+ 0xE7, 0xFF, 0xC6, 0x7D, 0xBD, 0xCD, 0x21, 0xA4,
+ 0x22, 0xBB, 0x33, 0x6D, 0xE3, 0x29, 0x72, 0xAE,
+ 0x03, 0x92, 0x64, 0x6F, 0x68, 0x27, 0xD8, 0x0C,
+ 0xDA, 0x65, 0x4F, 0xD3, 0xA0, 0x77, 0x4C, 0xD2,
+ 0xF9, 0x95, 0x51, 0x7C, 0xF0, 0x64, 0xC6, 0x17,
+ 0xF2, 0x1A, 0x54, 0x27, 0x5F, 0xE5, 0x0C, 0x8D
+ },
+ {
+ 0x09, 0xBE, 0x15, 0xEB, 0x6A, 0x5C, 0x22, 0x6F,
+ 0x6D, 0x95, 0x08, 0xCB, 0xA4, 0xA2, 0x51, 0x9F,
+ 0xBA, 0x17, 0x2A, 0xF8, 0x37, 0x58, 0x27, 0xD7,
+ 0x54, 0xA7, 0xA1, 0xBC, 0x19, 0x25, 0xD1, 0x3F,
+ 0x5E, 0x63, 0x43, 0xF3, 0xE1, 0x4D, 0x08, 0xA0,
+ 0x6E, 0x8D, 0x37, 0xF8, 0xEC, 0x56, 0xFB, 0x43,
+ 0x8E, 0x62, 0x36, 0x66, 0xB6, 0xFB, 0x0E, 0x23,
+ 0xFB, 0x50, 0x47, 0x7D, 0x41, 0x1B, 0x0C, 0x3A
+ },
+ {
+ 0xC3, 0x57, 0x97, 0xE9, 0x83, 0x2D, 0x3E, 0x23,
+ 0x23, 0x33, 0x5B, 0x8C, 0x19, 0xC5, 0xFA, 0x74,
+ 0x91, 0x60, 0x2D, 0xBF, 0x6B, 0xEA, 0x77, 0xFA,
+ 0xEE, 0xC9, 0x51, 0x0B, 0xC2, 0xE8, 0x91, 0xC8,
+ 0xC3, 0x46, 0x21, 0x99, 0xF6, 0x04, 0x18, 0xD2,
+ 0xE0, 0xAB, 0xFF, 0xE3, 0x1B, 0x61, 0x3B, 0xB9,
+ 0x80, 0xEA, 0x32, 0xB7, 0x6C, 0x82, 0x43, 0x8D,
+ 0x02, 0x5F, 0x67, 0x8C, 0xAF, 0x48, 0x24, 0xA4
+ },
+ {
+ 0xCF, 0xC0, 0x57, 0xFD, 0xA7, 0x8A, 0x50, 0x31,
+ 0x8F, 0x49, 0x78, 0xFF, 0xFF, 0xAF, 0x77, 0x17,
+ 0x98, 0xE1, 0x2C, 0x3E, 0xA8, 0xC7, 0x98, 0x19,
+ 0x5B, 0xC5, 0xB4, 0xE6, 0x89, 0x1E, 0x61, 0xAA,
+ 0x25, 0xF7, 0xAF, 0x4A, 0xA7, 0x28, 0x6A, 0xC8,
+ 0x50, 0x76, 0x62, 0xC9, 0x07, 0xED, 0x91, 0x3E,
+ 0xDA, 0x65, 0x8F, 0x63, 0xFC, 0x47, 0x99, 0x7C,
+ 0x59, 0xB8, 0x59, 0x70, 0xF8, 0x78, 0xCA, 0x18
+ },
+ {
+ 0xD8, 0xEB, 0xE0, 0xE6, 0x38, 0xFC, 0x53, 0x5B,
+ 0x52, 0xCB, 0x0A, 0xFC, 0xE0, 0xF8, 0x2D, 0xDE,
+ 0x28, 0x57, 0x01, 0xAF, 0xF3, 0x29, 0xA5, 0x4B,
+ 0xA0, 0x6D, 0xFD, 0x3D, 0x1B, 0x4B, 0x31, 0xF9,
+ 0xF4, 0xB2, 0x4D, 0x9D, 0x68, 0x36, 0xF1, 0x22,
+ 0x3D, 0x6D, 0xE6, 0x6B, 0xAE, 0x78, 0x88, 0xFE,
+ 0xBC, 0x20, 0x40, 0xCF, 0xE9, 0x30, 0xE6, 0x9C,
+ 0xED, 0x59, 0xDA, 0x6D, 0xA8, 0xA0, 0xA6, 0xA6
+ },
+ {
+ 0x16, 0xB8, 0xC5, 0x5C, 0xF2, 0xF1, 0x35, 0xA4,
+ 0x32, 0x59, 0x0D, 0x2D, 0x4C, 0xFA, 0x38, 0x59,
+ 0x2F, 0x59, 0x35, 0xF8, 0xE7, 0x1C, 0xE0, 0x8A,
+ 0x02, 0x06, 0xA0, 0xE5, 0xAB, 0xEA, 0x90, 0xB2,
+ 0xE1, 0x07, 0xEB, 0x86, 0xB9, 0x18, 0x82, 0x3B,
+ 0xDD, 0x3B, 0xD2, 0x66, 0x07, 0x22, 0xC8, 0xDB,
+ 0xFA, 0x66, 0xAB, 0xB9, 0xF8, 0x63, 0x8E, 0x46,
+ 0x34, 0x02, 0xF6, 0x57, 0xA1, 0x68, 0x64, 0x0A
+ },
+ {
+ 0x6A, 0x6E, 0x89, 0x38, 0x4F, 0x53, 0x5F, 0x02,
+ 0x17, 0x6C, 0x48, 0xA9, 0x93, 0xD3, 0x68, 0x7B,
+ 0x38, 0x9B, 0xFC, 0x03, 0x05, 0x0C, 0x77, 0x70,
+ 0x86, 0x35, 0x5C, 0x1A, 0x55, 0x59, 0x77, 0x42,
+ 0xF0, 0xB7, 0x48, 0x34, 0xA7, 0x1D, 0x05, 0x2A,
+ 0xE8, 0xA8, 0x3D, 0xC3, 0x4A, 0x8F, 0xD7, 0xBA,
+ 0x5A, 0xA6, 0x9D, 0xBD, 0x61, 0x2A, 0x4C, 0x22,
+ 0xDF, 0x4F, 0x74, 0xE2, 0x52, 0x8F, 0xB7, 0xA3
+ },
+ {
+ 0x1E, 0x40, 0x38, 0xCF, 0xA5, 0x0D, 0x8B, 0x13,
+ 0xEF, 0x68, 0xBE, 0xC3, 0xB0, 0xFF, 0xD5, 0x62,
+ 0xA0, 0x7A, 0xD6, 0x34, 0xB5, 0x82, 0x82, 0x57,
+ 0xDB, 0xA8, 0x73, 0x04, 0xF8, 0x23, 0xA9, 0x00,
+ 0x49, 0x2A, 0x31, 0x37, 0x19, 0x8B, 0x60, 0x5C,
+ 0xC7, 0xF7, 0x7C, 0x33, 0xB8, 0xCA, 0x3D, 0x94,
+ 0x0F, 0xD9, 0xB3, 0x38, 0xCF, 0x6B, 0x7B, 0x36,
+ 0xE7, 0xD9, 0xD9, 0x27, 0x20, 0x97, 0x93, 0xD0
+ },
+ {
+ 0x5B, 0xA6, 0xCD, 0x98, 0x8F, 0xF9, 0xA4, 0x81,
+ 0x91, 0x42, 0x21, 0x7E, 0xD6, 0x5D, 0x43, 0x7B,
+ 0x41, 0x3B, 0xA5, 0x02, 0x6B, 0x55, 0x4D, 0x8D,
+ 0x94, 0xEA, 0x27, 0x02, 0xC0, 0x96, 0xD1, 0x01,
+ 0x47, 0x75, 0xDB, 0xA2, 0xCA, 0xE9, 0x6F, 0x1E,
+ 0x2E, 0x72, 0x29, 0xC3, 0x78, 0xF2, 0x0B, 0x03,
+ 0x89, 0xE1, 0x19, 0x54, 0x7F, 0xDD, 0x35, 0x22,
+ 0x4A, 0x61, 0x7F, 0xCD, 0xCD, 0x0C, 0xB3, 0xAF
+ },
+ {
+ 0x2D, 0x20, 0x96, 0x12, 0x30, 0xE2, 0x50, 0xF8,
+ 0x1D, 0xDC, 0xD2, 0xD2, 0xAB, 0x3E, 0xF0, 0xDA,
+ 0xCF, 0x96, 0x85, 0x1E, 0xBA, 0xE5, 0x96, 0x34,
+ 0x47, 0x19, 0x2C, 0xDB, 0x89, 0xE4, 0x8E, 0x84,
+ 0xF3, 0x96, 0xEC, 0x9A, 0x09, 0x25, 0x27, 0x84,
+ 0xE1, 0x73, 0xAD, 0xA5, 0x2A, 0x9C, 0x81, 0xAC,
+ 0xDA, 0xB3, 0xD8, 0xD6, 0x83, 0x80, 0x24, 0x7A,
+ 0xE9, 0x75, 0x23, 0x9B, 0x01, 0x7D, 0xC1, 0xCE
+ },
+ {
+ 0x35, 0x38, 0x3E, 0xA7, 0x76, 0x2B, 0x55, 0x31,
+ 0x0A, 0x7D, 0x57, 0xFB, 0xD5, 0xA5, 0x49, 0x97,
+ 0x57, 0x9B, 0x0B, 0xA3, 0x9A, 0x4E, 0xB8, 0x87,
+ 0x94, 0x2B, 0xD1, 0x4F, 0xD8, 0x48, 0x31, 0x88,
+ 0xE5, 0x00, 0x48, 0x83, 0x8D, 0x6C, 0x02, 0xDC,
+ 0x75, 0x89, 0x59, 0xA9, 0xF7, 0x4D, 0x83, 0x37,
+ 0x27, 0x43, 0xE8, 0x64, 0xC6, 0x01, 0xED, 0x70,
+ 0x40, 0xA9, 0xE8, 0x71, 0x52, 0xD4, 0xCF, 0xFB
+ },
+ {
+ 0x0B, 0x22, 0x3B, 0x6A, 0x1C, 0x2D, 0x3A, 0xB3,
+ 0xF9, 0x07, 0x7A, 0x31, 0x7B, 0x7F, 0xE3, 0x2F,
+ 0x6F, 0x95, 0x7B, 0x7B, 0x17, 0x41, 0xF2, 0x71,
+ 0x77, 0x71, 0x83, 0x4D, 0x37, 0x96, 0xA1, 0x9B,
+ 0xA3, 0x62, 0x73, 0xC9, 0xEE, 0xD6, 0x4C, 0x07,
+ 0xFA, 0x4E, 0x9A, 0xF7, 0xA9, 0x8A, 0xCE, 0x9C,
+ 0x78, 0x9A, 0x79, 0xA5, 0xA0, 0xF9, 0x4D, 0x04,
+ 0x05, 0xAA, 0xF0, 0x4A, 0xF3, 0x1E, 0xD7, 0x97
+ },
+ {
+ 0x5A, 0x00, 0x7F, 0x58, 0x95, 0x52, 0x4A, 0x5E,
+ 0x80, 0x37, 0x03, 0x6E, 0x0F, 0x26, 0x39, 0xFD,
+ 0xA8, 0xC5, 0xC1, 0x51, 0x2D, 0x76, 0xE9, 0xD1,
+ 0x9B, 0x3D, 0xD2, 0xD5, 0xBA, 0x43, 0xF5, 0x07,
+ 0x97, 0x41, 0xA4, 0x58, 0x31, 0x3C, 0x5E, 0x02,
+ 0x40, 0x0C, 0xE0, 0x2C, 0xB6, 0x56, 0x80, 0xBE,
+ 0x28, 0x2E, 0xAC, 0xD9, 0xA2, 0x54, 0xEF, 0x1C,
+ 0xDD, 0xEE, 0xBD, 0xCE, 0xE8, 0x5D, 0x41, 0x87
+ },
+ {
+ 0xBE, 0x4D, 0xD1, 0xCC, 0xBD, 0xE1, 0x67, 0x00,
+ 0x04, 0xD0, 0xEF, 0xAB, 0x65, 0x43, 0xE9, 0x1C,
+ 0x4E, 0x46, 0x64, 0xE5, 0xA2, 0xA8, 0x8B, 0xAC,
+ 0x6D, 0xD2, 0x7D, 0x27, 0x64, 0x8D, 0x30, 0x2A,
+ 0x06, 0x5B, 0xE6, 0x07, 0x8B, 0x22, 0xE4, 0xC4,
+ 0xAB, 0x4F, 0x7F, 0x7C, 0xBF, 0xAF, 0xC1, 0xAD,
+ 0x86, 0xEC, 0x2A, 0x50, 0x4F, 0xE5, 0x85, 0x17,
+ 0x66, 0xF7, 0xA3, 0x24, 0x47, 0x57, 0xCB, 0x6F
+ },
+ {
+ 0x0F, 0xB4, 0x48, 0x3F, 0x96, 0x59, 0x29, 0x6C,
+ 0xB9, 0x24, 0x5B, 0x57, 0x79, 0x2A, 0x1E, 0x6A,
+ 0x99, 0xF2, 0x87, 0x90, 0x07, 0x72, 0x87, 0x96,
+ 0x8A, 0xB3, 0xEF, 0x35, 0x89, 0xE6, 0x90, 0x24,
+ 0x06, 0xF1, 0xF3, 0x9D, 0xCC, 0xE0, 0x06, 0x1D,
+ 0xEA, 0x94, 0x0F, 0xC8, 0xC1, 0xC4, 0x9F, 0x4B,
+ 0x54, 0x5E, 0xED, 0x59, 0xE9, 0x6D, 0xDA, 0xE9,
+ 0x6A, 0x6C, 0x35, 0xB5, 0x59, 0x3C, 0x29, 0x77
+ },
+ {
+ 0x41, 0xD1, 0xFA, 0xDC, 0x60, 0xA4, 0x6C, 0x9A,
+ 0xD0, 0x12, 0x0A, 0x3F, 0x54, 0xD0, 0x05, 0xF5,
+ 0xA1, 0x07, 0x5E, 0x2F, 0x71, 0xEE, 0x0D, 0xA6,
+ 0x18, 0xBA, 0xC1, 0x46, 0x1E, 0xFA, 0xE9, 0x69,
+ 0xEC, 0xCD, 0x7A, 0xA5, 0x75, 0xC4, 0xCD, 0xAE,
+ 0x97, 0x1D, 0xED, 0x13, 0xAE, 0x13, 0xC5, 0x06,
+ 0x87, 0x2C, 0xEC, 0xB5, 0xB2, 0x08, 0xFA, 0x72,
+ 0xA9, 0x48, 0x40, 0x02, 0x3E, 0xDB, 0x3E, 0xFE
+ },
+ {
+ 0x2F, 0x7F, 0xDC, 0x1D, 0xA4, 0x4B, 0x6E, 0x5D,
+ 0x2D, 0xEC, 0xDE, 0x82, 0x1A, 0xAF, 0x4B, 0x49,
+ 0x16, 0x8C, 0x02, 0xE8, 0xD5, 0xF2, 0x5D, 0x5C,
+ 0x69, 0x98, 0x71, 0x08, 0x3A, 0xEB, 0xD9, 0x28,
+ 0xB7, 0x4D, 0xC2, 0x2D, 0xCB, 0xED, 0xFA, 0xBA,
+ 0x93, 0x16, 0xAE, 0xFC, 0xA8, 0x48, 0xD1, 0x5F,
+ 0x05, 0x17, 0x32, 0x99, 0x03, 0xD3, 0x4B, 0x83,
+ 0x70, 0xDD, 0xF9, 0xBD, 0x58, 0xC6, 0xD0, 0xCD
+ },
+ {
+ 0x88, 0x55, 0x8A, 0x46, 0x4E, 0xE1, 0xA8, 0x80,
+ 0x3B, 0x23, 0x95, 0xAF, 0x6A, 0x64, 0x90, 0x84,
+ 0x2B, 0x5C, 0xD4, 0x3D, 0x41, 0xF6, 0xC0, 0x7C,
+ 0xD6, 0xC5, 0xF8, 0x5F, 0x82, 0xF5, 0x84, 0x32,
+ 0xA0, 0xB1, 0x62, 0xB4, 0x38, 0xBF, 0x0C, 0xB7,
+ 0x08, 0x2A, 0x76, 0x73, 0xE2, 0x87, 0xD6, 0xB9,
+ 0x0F, 0x8D, 0x0D, 0xC8, 0xAA, 0x5C, 0xEB, 0xA3,
+ 0x6B, 0xFA, 0x77, 0xB1, 0x5B, 0xA0, 0x69, 0x16
+ },
+ {
+ 0xEC, 0xC1, 0x49, 0x91, 0x7B, 0x26, 0x63, 0x98,
+ 0xB6, 0xF3, 0x29, 0x7E, 0x96, 0x96, 0x73, 0xB1,
+ 0x4E, 0xAE, 0x69, 0xCE, 0x43, 0x67, 0x1F, 0xD3,
+ 0xC6, 0xC2, 0x15, 0xC7, 0xCF, 0x42, 0xDE, 0xA1,
+ 0x02, 0xFC, 0x6B, 0xD9, 0x0C, 0x87, 0xDB, 0xD4,
+ 0x29, 0x02, 0x51, 0x12, 0x9C, 0xC1, 0x9B, 0x38,
+ 0xCC, 0xF0, 0x0C, 0xBD, 0xB1, 0x6D, 0xD8, 0xDE,
+ 0x51, 0x58, 0x60, 0x1A, 0x41, 0x6B, 0x1F, 0x00
+ },
+ {
+ 0xED, 0x30, 0x12, 0xF8, 0x9D, 0x71, 0xED, 0x13,
+ 0xBB, 0x82, 0x72, 0xEC, 0xDC, 0x3D, 0x0F, 0x51,
+ 0xE1, 0x4A, 0x37, 0xC1, 0xEF, 0x77, 0x57, 0x77,
+ 0x7A, 0xDA, 0x67, 0x12, 0x78, 0x4B, 0xE1, 0x6E,
+ 0xCF, 0xD3, 0xE6, 0x40, 0x58, 0x30, 0xF5, 0x1D,
+ 0xB3, 0x3D, 0xCB, 0x85, 0x52, 0x92, 0x93, 0xE2,
+ 0x3E, 0x47, 0x3A, 0xBF, 0x8C, 0x5C, 0x76, 0x55,
+ 0xD0, 0xC4, 0xF1, 0x52, 0xD0, 0x48, 0xBA, 0xB2
+ },
+ {
+ 0x09, 0x7A, 0x81, 0x19, 0x1E, 0x10, 0x05, 0x67,
+ 0x6D, 0x6E, 0x22, 0xA9, 0x63, 0x48, 0xFA, 0x4A,
+ 0x7C, 0x95, 0x61, 0xFD, 0x4D, 0x22, 0x8E, 0xB2,
+ 0x5F, 0x29, 0x47, 0x56, 0xBB, 0x87, 0xA2, 0xBA,
+ 0x88, 0x47, 0x5B, 0x03, 0x6F, 0x79, 0xFE, 0x37,
+ 0x3D, 0x75, 0x40, 0x87, 0x05, 0x52, 0x00, 0x1D,
+ 0x54, 0x79, 0x5F, 0x25, 0x92, 0x39, 0xBE, 0x6D,
+ 0x32, 0xC4, 0x87, 0xD1, 0x94, 0x4F, 0x1F, 0xE7
+ },
+ {
+ 0x3F, 0xC7, 0x98, 0xE4, 0x69, 0xD3, 0x90, 0x86,
+ 0xBA, 0x0B, 0xB4, 0x06, 0x3E, 0x80, 0x5F, 0xDF,
+ 0xB2, 0x20, 0x8D, 0xE4, 0x99, 0x18, 0x41, 0x73,
+ 0xF9, 0xA2, 0x36, 0x4D, 0x56, 0xBC, 0xD5, 0x63,
+ 0xED, 0x61, 0x9B, 0xB6, 0x87, 0x32, 0x24, 0x25,
+ 0x01, 0x4A, 0x1A, 0xAD, 0x3B, 0xCF, 0x50, 0xD2,
+ 0x2D, 0x83, 0xA9, 0x9D, 0x09, 0x73, 0x0A, 0x92,
+ 0xEC, 0x65, 0x46, 0xB3, 0xFC, 0x40, 0xA2, 0xC6
+ },
+ {
+ 0x69, 0x12, 0xB4, 0xB3, 0x41, 0xC7, 0xDD, 0x70,
+ 0x68, 0x37, 0x38, 0xBA, 0x0E, 0x7D, 0xEB, 0xBA,
+ 0xBF, 0xCA, 0x5F, 0x4F, 0xB0, 0x76, 0x0C, 0x84,
+ 0x97, 0x76, 0xE9, 0x20, 0x75, 0x0B, 0xF1, 0x37,
+ 0x89, 0xA6, 0x99, 0x97, 0x96, 0x23, 0x4E, 0x9E,
+ 0x24, 0x07, 0x15, 0xB2, 0x67, 0x67, 0x78, 0x2B,
+ 0x85, 0xA6, 0x4D, 0x68, 0x0C, 0x6D, 0x4C, 0xD4,
+ 0x26, 0xAD, 0x72, 0xB2, 0xFC, 0xE0, 0x81, 0xE8
+ },
+ {
+ 0xCE, 0xCD, 0x14, 0x01, 0x50, 0x15, 0x7D, 0xC9,
+ 0x06, 0xC0, 0xFF, 0x7F, 0x87, 0xC0, 0x08, 0x8F,
+ 0x31, 0x64, 0x80, 0x78, 0x3B, 0x4F, 0xE0, 0xA5,
+ 0x94, 0x45, 0x10, 0xC6, 0x4A, 0x87, 0xE3, 0xED,
+ 0x06, 0x67, 0x97, 0xA2, 0x7C, 0xE9, 0xD0, 0xF2,
+ 0x84, 0xDC, 0xA5, 0x18, 0x44, 0x18, 0x08, 0xAC,
+ 0x18, 0x29, 0x0A, 0xFD, 0xC0, 0x31, 0x29, 0x4B,
+ 0x31, 0xAA, 0x8B, 0x4A, 0x9F, 0xCD, 0x78, 0xF8
+ },
+ {
+ 0x2A, 0x2B, 0xED, 0x5D, 0x6A, 0xC0, 0x89, 0x28,
+ 0x11, 0xA4, 0x09, 0xD9, 0xF1, 0xFF, 0x63, 0x03,
+ 0xCC, 0xF9, 0x55, 0x44, 0x57, 0x46, 0x99, 0xCD,
+ 0xA7, 0xF7, 0x35, 0x03, 0x01, 0xF6, 0xD0, 0xC4,
+ 0xE8, 0x6E, 0x63, 0x5C, 0x80, 0x87, 0x56, 0x66,
+ 0xE2, 0xBB, 0x39, 0x07, 0x51, 0x0D, 0x0E, 0x72,
+ 0x12, 0x0F, 0x04, 0x86, 0x5E, 0xDC, 0x4C, 0x6C,
+ 0xEE, 0xCB, 0x44, 0x62, 0xD6, 0xAF, 0x60, 0xFB
+ },
+ {
+ 0x03, 0x85, 0xAE, 0x9B, 0x73, 0x5D, 0xC5, 0x9F,
+ 0x30, 0x4D, 0x41, 0x4C, 0xA0, 0x43, 0x74, 0x9A,
+ 0xB5, 0x1A, 0xB6, 0x65, 0xEE, 0x01, 0xBE, 0x5E,
+ 0x52, 0xDC, 0xF7, 0x25, 0xEE, 0x7D, 0xFE, 0xFE,
+ 0xA6, 0xAD, 0x73, 0xF3, 0x35, 0xEE, 0xCF, 0x2A,
+ 0x51, 0x02, 0xE8, 0x88, 0x07, 0xFD, 0xC7, 0x5A,
+ 0xE6, 0xDC, 0x49, 0x0D, 0x7B, 0x8B, 0x5F, 0x11,
+ 0x63, 0x03, 0xEF, 0x60, 0xA5, 0xF1, 0x7C, 0x06
+ },
+ {
+ 0x0C, 0xA3, 0xFF, 0x03, 0x89, 0x65, 0xC0, 0x3B,
+ 0xC6, 0x5B, 0xBE, 0x2D, 0x86, 0x6C, 0xE9, 0xE0,
+ 0xE4, 0xE7, 0xD0, 0x3D, 0xC7, 0xF8, 0x6B, 0xA5,
+ 0x65, 0x0F, 0x82, 0xDD, 0xB3, 0xA9, 0xAA, 0x84,
+ 0x6B, 0x2B, 0x1F, 0x55, 0x3B, 0xD8, 0x9F, 0xB4,
+ 0xF9, 0xB6, 0x2E, 0x3C, 0x7F, 0xAF, 0x9E, 0xC3,
+ 0x10, 0x9F, 0xA9, 0x0E, 0xE5, 0x6C, 0x24, 0x63,
+ 0xE6, 0xEF, 0xD1, 0xAB, 0xAD, 0x8E, 0x28, 0xE6
+ },
+ {
+ 0x6D, 0xFD, 0x4F, 0x22, 0x18, 0x4E, 0xD0, 0x91,
+ 0xFD, 0x5A, 0xBA, 0x03, 0x9F, 0xCD, 0x3D, 0xB9,
+ 0x22, 0xF5, 0xE5, 0x9B, 0xF8, 0x38, 0xC0, 0x37,
+ 0x35, 0x7F, 0xAD, 0x93, 0x4B, 0x45, 0x10, 0x60,
+ 0x3F, 0x43, 0xA7, 0x31, 0x9F, 0xFF, 0xA6, 0x23,
+ 0x86, 0xF8, 0x78, 0x8F, 0xDF, 0x9D, 0xED, 0x40,
+ 0xC6, 0x66, 0xB4, 0xBD, 0xCA, 0x86, 0xD9, 0x32,
+ 0x8F, 0xE5, 0x5A, 0xD8, 0x6B, 0x37, 0x2F, 0xC8
+ },
+ {
+ 0xA3, 0x18, 0x97, 0x61, 0x02, 0x74, 0x7D, 0x80,
+ 0x0F, 0x58, 0x4D, 0xF6, 0x5B, 0xFB, 0x44, 0x3B,
+ 0x85, 0x6F, 0x00, 0x9E, 0x74, 0xF7, 0x29, 0x46,
+ 0xD0, 0x07, 0x6C, 0xED, 0xAC, 0x04, 0x37, 0x6F,
+ 0xAB, 0x97, 0x34, 0x53, 0xAD, 0xAD, 0xC3, 0x10,
+ 0xF7, 0x20, 0x81, 0xCB, 0xBA, 0x96, 0x26, 0x4F,
+ 0xFE, 0x2B, 0x21, 0xA3, 0xB1, 0x8B, 0xE9, 0xD8,
+ 0x8C, 0x42, 0x46, 0xCB, 0xA6, 0xD3, 0x09, 0x01
+ },
+ {
+ 0xB5, 0xE6, 0xE4, 0xFC, 0xA0, 0xCF, 0x98, 0x48,
+ 0xA0, 0x05, 0x89, 0xC6, 0x54, 0x57, 0xDB, 0x68,
+ 0xB3, 0x25, 0x3A, 0x6E, 0x17, 0x78, 0x85, 0x41,
+ 0x47, 0x2E, 0x1F, 0xB9, 0x48, 0x17, 0xF8, 0x04,
+ 0x05, 0x4D, 0x07, 0xA5, 0xD3, 0x2D, 0xFA, 0x0C,
+ 0xDB, 0x6F, 0xB4, 0x4E, 0xED, 0x50, 0xD2, 0x0E,
+ 0x5F, 0x22, 0x64, 0x36, 0x11, 0x32, 0xFA, 0x5F,
+ 0xCF, 0xD6, 0xE1, 0xB3, 0x67, 0xC1, 0xBE, 0x28
+ },
+ {
+ 0x2E, 0xA4, 0x57, 0x38, 0x29, 0x25, 0xE0, 0x3C,
+ 0xF8, 0x11, 0x10, 0x05, 0x0E, 0x63, 0x6A, 0xD6,
+ 0x78, 0xE0, 0xAA, 0x3C, 0xBC, 0x69, 0x00, 0xBD,
+ 0xEF, 0x27, 0x8A, 0xAA, 0x18, 0xF2, 0x35, 0xE2,
+ 0x51, 0x60, 0xA2, 0x0E, 0x23, 0xFE, 0x0E, 0x62,
+ 0xA8, 0x51, 0x1B, 0x5D, 0xD0, 0x59, 0x2F, 0x79,
+ 0xCB, 0xC8, 0xEB, 0x7D, 0xEA, 0x64, 0xAC, 0x86,
+ 0x67, 0x49, 0x43, 0x45, 0xC6, 0x89, 0x2D, 0xD4
+ },
+ {
+ 0x96, 0xB3, 0x49, 0x8B, 0xCC, 0xD7, 0x8B, 0x5A,
+ 0x40, 0x1B, 0x27, 0x38, 0x78, 0x7D, 0x28, 0xA9,
+ 0x8A, 0x0E, 0xDF, 0xDC, 0x7C, 0x0B, 0x5F, 0xF9,
+ 0x43, 0xCF, 0xE1, 0xB1, 0x4E, 0x9C, 0xF5, 0xD9,
+ 0xED, 0x43, 0x10, 0x7D, 0xFB, 0xDD, 0x9E, 0x97,
+ 0x28, 0xD5, 0xFD, 0xD6, 0xF7, 0x1F, 0xBC, 0x77,
+ 0x0E, 0xAD, 0xDC, 0x4F, 0x2E, 0x40, 0x9A, 0xBE,
+ 0x71, 0x92, 0x7B, 0xAE, 0x1F, 0x8F, 0x73, 0xD1
+ },
+ {
+ 0xCE, 0x1B, 0xFB, 0x9A, 0xFE, 0xD2, 0x8A, 0xF4,
+ 0xDC, 0x75, 0x35, 0xAD, 0xEF, 0x71, 0xB8, 0xF1,
+ 0xB8, 0x0A, 0x8D, 0x72, 0x94, 0xB4, 0x11, 0xFD,
+ 0x1E, 0xD3, 0x93, 0xCF, 0x23, 0x2D, 0x3A, 0x5C,
+ 0x5D, 0xF2, 0x3D, 0xBB, 0x1D, 0xB2, 0x6D, 0xDD,
+ 0xF6, 0xF7, 0x45, 0xF8, 0xBC, 0x24, 0xC3, 0x78,
+ 0x1F, 0x2D, 0xBB, 0xC8, 0x18, 0xA0, 0x0A, 0xE1,
+ 0xFB, 0x9D, 0x64, 0x63, 0xE9, 0x5F, 0x29, 0x86
+ },
+ {
+ 0xE6, 0x4D, 0x37, 0x35, 0x6B, 0x29, 0x6B, 0x36,
+ 0x93, 0x0E, 0xAB, 0xE4, 0x54, 0xDB, 0x11, 0xB2,
+ 0x09, 0x7B, 0x0C, 0x04, 0x0B, 0xED, 0x57, 0x98,
+ 0x87, 0x8D, 0x38, 0xA8, 0xC4, 0xD1, 0xC6, 0xF3,
+ 0x26, 0x1F, 0x36, 0xBF, 0xF7, 0x64, 0xE3, 0xB4,
+ 0xD6, 0x06, 0xB3, 0x17, 0xE5, 0xFF, 0x50, 0x04,
+ 0x18, 0x45, 0x92, 0xB0, 0xB7, 0xDD, 0xFB, 0x8C,
+ 0x2F, 0xD8, 0x35, 0x23, 0x26, 0xCD, 0xDD, 0xB1
+ },
+ {
+ 0x85, 0xE6, 0xFE, 0x54, 0xE1, 0xE7, 0x60, 0x46,
+ 0xAF, 0x68, 0xF5, 0xC6, 0x04, 0x4C, 0x1E, 0x3F,
+ 0xFF, 0x3B, 0xFC, 0xA0, 0xBA, 0xEC, 0xAE, 0xF6,
+ 0xA1, 0xDF, 0x90, 0x35, 0x0D, 0xF2, 0xB0, 0xBE,
+ 0xC6, 0xA4, 0x20, 0xEE, 0x8F, 0x49, 0xAD, 0x44,
+ 0x64, 0xEC, 0x4C, 0x1E, 0x7D, 0x71, 0xF6, 0x67,
+ 0x61, 0x4A, 0xCE, 0xBD, 0xAD, 0xA3, 0xDF, 0x32,
+ 0x07, 0x79, 0x07, 0x83, 0x23, 0xF6, 0xA8, 0xAF
+ },
+ {
+ 0xB1, 0x2F, 0xF1, 0xEB, 0x3B, 0xAB, 0x32, 0x0D,
+ 0x78, 0x55, 0xB5, 0x49, 0xD7, 0x2B, 0x72, 0x47,
+ 0x59, 0x91, 0x68, 0x11, 0xCB, 0xCF, 0x3E, 0x1A,
+ 0x12, 0x82, 0x3F, 0x98, 0xB6, 0x4A, 0xB5, 0xC4,
+ 0x59, 0x41, 0x61, 0x0F, 0x6B, 0x47, 0x1E, 0x35,
+ 0xFF, 0x79, 0x28, 0x29, 0xDD, 0x5A, 0xDE, 0x51,
+ 0x79, 0x12, 0x57, 0x38, 0xF3, 0xF2, 0x37, 0x28,
+ 0x63, 0x0F, 0x1E, 0xEC, 0x57, 0x77, 0x5A, 0x19
+ },
+ {
+ 0xB4, 0xDB, 0xE7, 0x2A, 0x1E, 0x21, 0x69, 0x7A,
+ 0x47, 0x44, 0xBE, 0x65, 0x00, 0x0C, 0xB1, 0xBA,
+ 0xD3, 0x7C, 0xE2, 0x14, 0x16, 0xEE, 0x6F, 0xCE,
+ 0xA8, 0x4E, 0xBA, 0xF1, 0x2A, 0x59, 0xC1, 0x1D,
+ 0x7C, 0x08, 0x0D, 0xF9, 0x2F, 0xB2, 0xAA, 0x8F,
+ 0x1C, 0x4E, 0xE8, 0xE2, 0xA2, 0x2D, 0x30, 0xBE,
+ 0x49, 0x85, 0x82, 0xD7, 0xC5, 0xFB, 0xBA, 0x16,
+ 0x5A, 0x47, 0x26, 0x89, 0xAF, 0xF6, 0x01, 0xB6
+ },
+ {
+ 0x34, 0x82, 0x18, 0xBE, 0x4D, 0xE0, 0x8D, 0xFB,
+ 0x24, 0x5B, 0xF2, 0x52, 0x86, 0xE3, 0x66, 0x18,
+ 0x63, 0x1D, 0x3B, 0xDB, 0x58, 0x27, 0xD9, 0xF7,
+ 0x4F, 0xA0, 0x43, 0x01, 0x66, 0x11, 0x31, 0xA4,
+ 0xD5, 0x5C, 0x76, 0x09, 0xB1, 0xA6, 0xA0, 0x3B,
+ 0x85, 0x3F, 0x07, 0x33, 0xE0, 0xAE, 0xC0, 0x26,
+ 0x16, 0xA0, 0xA4, 0x0E, 0x84, 0x91, 0xF4, 0x94,
+ 0xD7, 0x6C, 0x15, 0x43, 0xCF, 0xC6, 0x82, 0x14
+ },
+ {
+ 0x42, 0x87, 0xE1, 0x9B, 0xAB, 0x1D, 0x4F, 0x75,
+ 0xE1, 0xD1, 0x97, 0xCB, 0xB4, 0x3F, 0x11, 0x33,
+ 0x13, 0x07, 0xF2, 0xF7, 0x5B, 0x8D, 0x0D, 0x50,
+ 0x27, 0x8E, 0xEC, 0x54, 0x09, 0x99, 0xA0, 0x09,
+ 0xC0, 0x33, 0x73, 0x52, 0x96, 0x07, 0xFD, 0xA6,
+ 0x05, 0xAA, 0x0F, 0x07, 0x39, 0xE2, 0x0B, 0xD1,
+ 0xFD, 0xAA, 0x27, 0xD7, 0xC0, 0xCD, 0xC8, 0x28,
+ 0x4D, 0x98, 0xE6, 0xC7, 0x55, 0xA7, 0x56, 0x2E
+ },
+ {
+ 0x08, 0x56, 0x0C, 0x99, 0x88, 0xC8, 0xCE, 0x5A,
+ 0x88, 0x76, 0xA6, 0x00, 0xB6, 0xE5, 0x12, 0xB4,
+ 0xE2, 0x43, 0xA4, 0xA4, 0x30, 0x0A, 0xD5, 0xAB,
+ 0x2F, 0xF0, 0x63, 0x7C, 0xC5, 0x6A, 0x04, 0x41,
+ 0x64, 0x5B, 0x3D, 0xEB, 0x16, 0x84, 0x06, 0x4E,
+ 0xA4, 0x3B, 0xAE, 0x1C, 0xB6, 0x2D, 0x3B, 0xC4,
+ 0x15, 0x37, 0xFE, 0x8D, 0x7D, 0xEC, 0xA7, 0x17,
+ 0x29, 0x37, 0x77, 0x6B, 0xBE, 0xD7, 0x93, 0xA9
+ },
+ {
+ 0xB5, 0x36, 0x16, 0x23, 0x94, 0x77, 0x6F, 0xA7,
+ 0xDD, 0x5E, 0x9F, 0xDD, 0x01, 0x53, 0x0F, 0xDA,
+ 0x52, 0xBE, 0x1D, 0x39, 0xBD, 0x60, 0x9B, 0x3F,
+ 0x3B, 0xD0, 0x47, 0x6B, 0x81, 0x60, 0xAA, 0x18,
+ 0xAB, 0x2D, 0x37, 0xD2, 0x99, 0x16, 0x28, 0xBE,
+ 0x2F, 0xCC, 0x12, 0x56, 0xCD, 0x48, 0x55, 0x25,
+ 0xD1, 0xFA, 0x35, 0x6B, 0x04, 0xD3, 0x0E, 0x4A,
+ 0x0F, 0x9F, 0xFF, 0xC9, 0x93, 0x5C, 0xF4, 0x32
+ },
+ {
+ 0x02, 0xAB, 0xC9, 0x71, 0x75, 0xED, 0xB4, 0x7A,
+ 0x4C, 0xB4, 0xBD, 0x38, 0xD8, 0x2F, 0x86, 0xAA,
+ 0x09, 0x9C, 0x8B, 0x8F, 0xA8, 0xAB, 0x3F, 0xE1,
+ 0xCE, 0x10, 0x5A, 0x22, 0xBD, 0x61, 0x65, 0x78,
+ 0xC6, 0xDD, 0x15, 0x15, 0xDF, 0xB0, 0x39, 0x7E,
+ 0x1D, 0x9D, 0x06, 0x71, 0x91, 0x6D, 0xE4, 0xB5,
+ 0x22, 0xE7, 0x4E, 0x63, 0x75, 0x23, 0x68, 0x93,
+ 0xC8, 0xFD, 0xA6, 0xD2, 0x36, 0xBC, 0x8D, 0xA1
+ },
+ {
+ 0x21, 0xE1, 0xEB, 0x73, 0x12, 0x76, 0xA8, 0x35,
+ 0xA6, 0xDD, 0xEA, 0x71, 0x78, 0xB2, 0x3E, 0xBC,
+ 0x9A, 0xEC, 0xAA, 0xBC, 0x7C, 0xCD, 0x70, 0x65,
+ 0x87, 0xD7, 0x1B, 0x85, 0x44, 0x97, 0x93, 0xB0,
+ 0x7E, 0x7B, 0x17, 0x9A, 0x3D, 0xA7, 0xA5, 0x71,
+ 0x98, 0x29, 0x97, 0xE8, 0xF5, 0xA6, 0x7F, 0x8C,
+ 0x93, 0xDA, 0xF1, 0x1A, 0xAA, 0x23, 0xF0, 0x7E,
+ 0x4D, 0xF7, 0xA1, 0x31, 0x05, 0xA5, 0x42, 0x09
+ },
+ {
+ 0x1C, 0xC5, 0x37, 0xD3, 0xE5, 0x0E, 0xD9, 0xFD,
+ 0xCD, 0xC4, 0xF3, 0xCC, 0xB4, 0x81, 0x93, 0x75,
+ 0x41, 0x53, 0x04, 0xD8, 0xE5, 0xA6, 0xC0, 0x58,
+ 0x05, 0xB6, 0xB5, 0xD9, 0xE1, 0xFC, 0x18, 0x25,
+ 0x68, 0x64, 0xF1, 0x0C, 0xD8, 0x12, 0xF8, 0x48,
+ 0x01, 0xB8, 0x61, 0x6A, 0x92, 0xB4, 0x07, 0x95,
+ 0xA1, 0x55, 0x93, 0x24, 0x64, 0xF6, 0x2D, 0xBF,
+ 0x6E, 0xBD, 0x2F, 0x9A, 0xC3, 0xEE, 0x28, 0x16
+ },
+ {
+ 0x6F, 0x6C, 0xD2, 0x60, 0x05, 0xC8, 0xA5, 0x61,
+ 0xCF, 0xF5, 0x1E, 0x30, 0x1D, 0x1A, 0x06, 0x8F,
+ 0xC2, 0x8B, 0x9B, 0x65, 0x0D, 0xDD, 0x27, 0xAE,
+ 0x97, 0xB5, 0x22, 0xDA, 0xE9, 0x63, 0x91, 0x34,
+ 0xD5, 0xA1, 0x50, 0x58, 0x7B, 0x0A, 0x90, 0x1F,
+ 0x3B, 0x9A, 0xAB, 0xC7, 0xE3, 0x97, 0x84, 0x98,
+ 0x4C, 0xC5, 0x85, 0x23, 0x5D, 0x8E, 0x17, 0xCE,
+ 0x9E, 0x3B, 0x42, 0x10, 0x5B, 0xF9, 0x03, 0x4C
+ },
+ {
+ 0x69, 0xC1, 0x7C, 0x28, 0x64, 0xC3, 0x37, 0x9F,
+ 0xAF, 0xB7, 0x14, 0xC0, 0x47, 0x5E, 0x00, 0xCF,
+ 0x7C, 0x9B, 0x37, 0x7D, 0x57, 0xA8, 0xBC, 0x96,
+ 0x98, 0xB4, 0xD3, 0x4A, 0x54, 0x85, 0x41, 0x76,
+ 0xA2, 0xF8, 0xD1, 0x5A, 0xFB, 0x54, 0x77, 0x56,
+ 0x04, 0x78, 0x73, 0x90, 0xD6, 0x00, 0x74, 0xCD,
+ 0x4B, 0xCA, 0x69, 0x02, 0xEA, 0x23, 0xD3, 0xAE,
+ 0x1A, 0xC0, 0x83, 0x40, 0x9F, 0xE3, 0x8A, 0x4D
+ },
+ {
+ 0x86, 0x69, 0xB0, 0xAD, 0x35, 0x82, 0x9E, 0xDC,
+ 0x2A, 0x8A, 0x09, 0x85, 0x2B, 0x0E, 0xE9, 0xB3,
+ 0x90, 0x3B, 0xF6, 0xC1, 0xF8, 0x2F, 0x90, 0xA3,
+ 0xF0, 0xED, 0x95, 0x24, 0x19, 0x2F, 0x10, 0x91,
+ 0xFD, 0x64, 0x84, 0xE0, 0x4C, 0x3F, 0xEA, 0x8B,
+ 0x02, 0x2F, 0x4A, 0x89, 0x50, 0xDB, 0x17, 0xD4,
+ 0x73, 0x41, 0x45, 0xC0, 0xCE, 0xC5, 0xDC, 0x38,
+ 0x74, 0x55, 0xC1, 0x26, 0x90, 0x3F, 0x77, 0x66
+ },
+ {
+ 0x3F, 0x35, 0xC4, 0x5D, 0x24, 0xFC, 0xFB, 0x4A,
+ 0xCC, 0xA6, 0x51, 0x07, 0x6C, 0x08, 0x00, 0x0E,
+ 0x27, 0x9E, 0xBB, 0xFF, 0x37, 0xA1, 0x33, 0x3C,
+ 0xE1, 0x9F, 0xD5, 0x77, 0x20, 0x2D, 0xBD, 0x24,
+ 0xB5, 0x8C, 0x51, 0x4E, 0x36, 0xDD, 0x9B, 0xA6,
+ 0x4A, 0xF4, 0xD7, 0x8E, 0xEA, 0x4E, 0x2D, 0xD1,
+ 0x3B, 0xC1, 0x8D, 0x79, 0x88, 0x87, 0xDD, 0x97,
+ 0x13, 0x76, 0xBC, 0xAE, 0x00, 0x87, 0xE1, 0x7E
+ },
+};
+
+
+
+
+static const uint8_t blake2bp_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
+{
+ {
+ 0x9D, 0x94, 0x61, 0x07, 0x3E, 0x4E, 0xB6, 0x40,
+ 0xA2, 0x55, 0x35, 0x7B, 0x83, 0x9F, 0x39, 0x4B,
+ 0x83, 0x8C, 0x6F, 0xF5, 0x7C, 0x9B, 0x68, 0x6A,
+ 0x3F, 0x76, 0x10, 0x7C, 0x10, 0x66, 0x72, 0x8F,
+ 0x3C, 0x99, 0x56, 0xBD, 0x78, 0x5C, 0xBC, 0x3B,
+ 0xF7, 0x9D, 0xC2, 0xAB, 0x57, 0x8C, 0x5A, 0x0C,
+ 0x06, 0x3B, 0x9D, 0x9C, 0x40, 0x58, 0x48, 0xDE,
+ 0x1D, 0xBE, 0x82, 0x1C, 0xD0, 0x5C, 0x94, 0x0A
+ },
+ {
+ 0xFF, 0x8E, 0x90, 0xA3, 0x7B, 0x94, 0x62, 0x39,
+ 0x32, 0xC5, 0x9F, 0x75, 0x59, 0xF2, 0x60, 0x35,
+ 0x02, 0x9C, 0x37, 0x67, 0x32, 0xCB, 0x14, 0xD4,
+ 0x16, 0x02, 0x00, 0x1C, 0xBB, 0x73, 0xAD, 0xB7,
+ 0x92, 0x93, 0xA2, 0xDB, 0xDA, 0x5F, 0x60, 0x70,
+ 0x30, 0x25, 0x14, 0x4D, 0x15, 0x8E, 0x27, 0x35,
+ 0x52, 0x95, 0x96, 0x25, 0x1C, 0x73, 0xC0, 0x34,
+ 0x5C, 0xA6, 0xFC, 0xCB, 0x1F, 0xB1, 0xE9, 0x7E
+ },
+ {
+ 0xD6, 0x22, 0x0C, 0xA1, 0x95, 0xA0, 0xF3, 0x56,
+ 0xA4, 0x79, 0x5E, 0x07, 0x1C, 0xEE, 0x1F, 0x54,
+ 0x12, 0xEC, 0xD9, 0x5D, 0x8A, 0x5E, 0x01, 0xD7,
+ 0xC2, 0xB8, 0x67, 0x50, 0xCA, 0x53, 0xD7, 0xF6,
+ 0x4C, 0x29, 0xCB, 0xB3, 0xD2, 0x89, 0xC6, 0xF4,
+ 0xEC, 0xC6, 0xC0, 0x1E, 0x3C, 0xA9, 0x33, 0x89,
+ 0x71, 0x17, 0x03, 0x88, 0xE3, 0xE4, 0x02, 0x28,
+ 0x47, 0x90, 0x06, 0xD1, 0xBB, 0xEB, 0xAD, 0x51
+ },
+ {
+ 0x30, 0x30, 0x2C, 0x3F, 0xC9, 0x99, 0x06, 0x5D,
+ 0x10, 0xDC, 0x98, 0x2C, 0x8F, 0xEE, 0xF4, 0x1B,
+ 0xBB, 0x66, 0x42, 0x71, 0x8F, 0x62, 0x4A, 0xF6,
+ 0xE3, 0xEA, 0xBE, 0xA0, 0x83, 0xE7, 0xFE, 0x78,
+ 0x53, 0x40, 0xDB, 0x4B, 0x08, 0x97, 0xEF, 0xFF,
+ 0x39, 0xCE, 0xE1, 0xDC, 0x1E, 0xB7, 0x37, 0xCD,
+ 0x1E, 0xEA, 0x0F, 0xE7, 0x53, 0x84, 0x98, 0x4E,
+ 0x7D, 0x8F, 0x44, 0x6F, 0xAA, 0x68, 0x3B, 0x80
+ },
+ {
+ 0x32, 0xF3, 0x98, 0xA6, 0x0C, 0x1E, 0x53, 0xF1,
+ 0xF8, 0x1D, 0x6D, 0x8D, 0xA2, 0xEC, 0x11, 0x75,
+ 0x42, 0x2D, 0x6B, 0x2C, 0xFA, 0x0C, 0x0E, 0x66,
+ 0xD8, 0xC4, 0xE7, 0x30, 0xB2, 0x96, 0xA4, 0xB5,
+ 0x3E, 0x39, 0x2E, 0x39, 0x85, 0x98, 0x22, 0xA1,
+ 0x45, 0xAE, 0x5F, 0x1A, 0x24, 0xC2, 0x7F, 0x55,
+ 0x33, 0x9E, 0x2B, 0x4B, 0x44, 0x58, 0xE8, 0xC5,
+ 0xEB, 0x19, 0xAA, 0x14, 0x20, 0x64, 0x27, 0xAA
+ },
+ {
+ 0x23, 0x6D, 0xB9, 0x33, 0xF1, 0x8A, 0x9D, 0xBD,
+ 0x4E, 0x50, 0xB7, 0x29, 0x53, 0x90, 0x65, 0xBD,
+ 0xA4, 0x20, 0xDF, 0x97, 0xAC, 0x78, 0x0B, 0xE4,
+ 0x3F, 0x59, 0x10, 0x3C, 0x47, 0x2E, 0x0B, 0xCC,
+ 0xA6, 0xD4, 0x97, 0x38, 0x97, 0x86, 0xAF, 0x22,
+ 0xBA, 0x94, 0x30, 0xB7, 0x4D, 0x6F, 0x74, 0xB1,
+ 0x3F, 0x6F, 0x94, 0x9E, 0x25, 0x6A, 0x14, 0x0A,
+ 0xA3, 0x4B, 0x47, 0x70, 0x0B, 0x10, 0x03, 0x43
+ },
+ {
+ 0x23, 0x8C, 0x9D, 0x08, 0x02, 0x85, 0xE3, 0x54,
+ 0x35, 0xCB, 0x53, 0x15, 0x5D, 0x9F, 0x79, 0x2C,
+ 0xA1, 0xBB, 0x27, 0xDE, 0x4F, 0x9B, 0x6C, 0x87,
+ 0x26, 0xE1, 0x1C, 0x02, 0x8E, 0x7B, 0x87, 0x87,
+ 0x33, 0x54, 0x91, 0x12, 0xA3, 0x28, 0xB5, 0x0E,
+ 0x8C, 0xD8, 0xBA, 0x27, 0x87, 0x21, 0x7E, 0x46,
+ 0xB8, 0x16, 0x8D, 0x57, 0x11, 0x3D, 0xD4, 0x04,
+ 0xD9, 0x14, 0xE2, 0x9A, 0x6A, 0x54, 0x70, 0xE6
+ },
+ {
+ 0x9A, 0x02, 0x1E, 0xBD, 0x50, 0x4A, 0x97, 0x59,
+ 0x6D, 0x0E, 0x85, 0x04, 0x8A, 0xE1, 0xDA, 0x89,
+ 0x99, 0xE3, 0xA0, 0x47, 0x01, 0x6F, 0x17, 0xC6,
+ 0xC5, 0x55, 0x6C, 0x27, 0x31, 0xE9, 0xB1, 0x39,
+ 0x26, 0x1F, 0x84, 0x3F, 0xAD, 0x6B, 0xD4, 0x3F,
+ 0x7C, 0x7C, 0x58, 0x7F, 0x69, 0x8D, 0x69, 0xB6,
+ 0x82, 0xE5, 0x68, 0xB4, 0x42, 0xAC, 0x45, 0x88,
+ 0x98, 0x57, 0xB7, 0x69, 0x07, 0x34, 0xCD, 0xBB
+ },
+ {
+ 0x3A, 0xBA, 0x07, 0xAE, 0x98, 0x0E, 0x33, 0x86,
+ 0x37, 0x47, 0x9D, 0xCA, 0x1E, 0x35, 0x28, 0x00,
+ 0xF4, 0x58, 0x8E, 0x62, 0xD8, 0x23, 0x36, 0x5A,
+ 0xA6, 0x9C, 0x5B, 0x25, 0xFC, 0xE1, 0x29, 0x68,
+ 0xD2, 0x6C, 0x9B, 0xDB, 0xEE, 0x9A, 0x32, 0xBF,
+ 0xFD, 0x42, 0xE6, 0xB2, 0x2C, 0x81, 0x38, 0xA6,
+ 0x1C, 0x1F, 0xCE, 0x49, 0xFF, 0xBC, 0x19, 0x0E,
+ 0x1E, 0x15, 0x16, 0x01, 0x53, 0xCC, 0xB6, 0xB4
+ },
+ {
+ 0x77, 0x4C, 0xDF, 0x9A, 0xBB, 0x50, 0x81, 0xFE,
+ 0x07, 0xEB, 0x57, 0x25, 0xE6, 0x06, 0x9B, 0x8D,
+ 0x6C, 0x7E, 0x60, 0x04, 0xA2, 0x4D, 0x70, 0xF7,
+ 0xDF, 0xAB, 0xFC, 0x03, 0x82, 0x5B, 0xBC, 0x3B,
+ 0x30, 0xE6, 0x20, 0xB6, 0x04, 0x1F, 0x3C, 0xC2,
+ 0x89, 0x6B, 0x14, 0xAB, 0x66, 0x0A, 0xF7, 0x2E,
+ 0x24, 0x95, 0x10, 0xAC, 0x2F, 0xE8, 0x10, 0xCC,
+ 0x77, 0x63, 0xA2, 0xE5, 0xC3, 0xFC, 0xA7, 0xFC
+ },
+ {
+ 0x9E, 0x08, 0x9F, 0x51, 0x65, 0x7B, 0x29, 0xC2,
+ 0x66, 0x8E, 0x28, 0x50, 0x52, 0x4E, 0x53, 0xAE,
+ 0xAA, 0xA7, 0x30, 0x6F, 0x2A, 0xD5, 0xA2, 0x32,
+ 0xB5, 0xF0, 0x7F, 0x68, 0x8D, 0x8A, 0xB2, 0xB4,
+ 0x25, 0xDF, 0x7E, 0xA5, 0xBD, 0x3E, 0x9F, 0xFD,
+ 0x61, 0x68, 0x38, 0x90, 0x15, 0x1D, 0x78, 0xBB,
+ 0x94, 0x03, 0x11, 0x85, 0xAC, 0xA4, 0x81, 0xE2,
+ 0x14, 0x0F, 0xE3, 0x79, 0x85, 0x36, 0x76, 0x43
+ },
+ {
+ 0xB3, 0x5B, 0xD5, 0x4E, 0x4F, 0x81, 0x69, 0x6B,
+ 0x4F, 0x22, 0x31, 0x6A, 0x1E, 0x33, 0x7D, 0x98,
+ 0xD1, 0xC6, 0xB0, 0x61, 0x10, 0x99, 0x87, 0x63,
+ 0xB5, 0x91, 0x33, 0x35, 0x92, 0x3A, 0x40, 0x76,
+ 0xCB, 0x80, 0xD6, 0xD8, 0xA5, 0x18, 0x62, 0x91,
+ 0x13, 0x47, 0x7B, 0x30, 0xA1, 0x32, 0xA6, 0xB2,
+ 0x7F, 0xC1, 0xEE, 0x79, 0xF6, 0xB2, 0xE0, 0xD3,
+ 0x5D, 0x5B, 0xC2, 0x97, 0x27, 0x46, 0x3D, 0xB5
+ },
+ {
+ 0x12, 0x39, 0x30, 0xD5, 0xA4, 0xB7, 0x3B, 0x49,
+ 0x1F, 0x50, 0xE5, 0x6E, 0x2B, 0x73, 0x97, 0xA4,
+ 0x3D, 0x2E, 0x47, 0x87, 0x23, 0x76, 0x02, 0xB6,
+ 0x6F, 0xE0, 0xA8, 0x47, 0xBD, 0x13, 0xCB, 0xE8,
+ 0xB3, 0x7D, 0xC7, 0x03, 0xD7, 0xB2, 0xB4, 0xEA,
+ 0xA8, 0xBF, 0xB9, 0xA5, 0x8A, 0x7D, 0x71, 0x9C,
+ 0x90, 0x8F, 0x19, 0x66, 0xA2, 0xF1, 0x9F, 0xE6,
+ 0xEB, 0x1A, 0x78, 0x96, 0x2A, 0xFA, 0x5B, 0xF9
+ },
+ {
+ 0x08, 0x9C, 0xBC, 0x7E, 0xE1, 0xB1, 0x2C, 0x0C,
+ 0xC9, 0xC8, 0x3F, 0xF6, 0x66, 0xFE, 0xC8, 0x02,
+ 0x6B, 0xB7, 0x1B, 0x90, 0x84, 0x97, 0x9B, 0x0E,
+ 0xA8, 0xB7, 0x23, 0xBB, 0xBE, 0x8B, 0x00, 0xD4,
+ 0x10, 0x08, 0xB6, 0x04, 0x99, 0xF2, 0x4F, 0x24,
+ 0x1B, 0x63, 0x28, 0x1F, 0xE5, 0xB4, 0xD8, 0x89,
+ 0x66, 0x30, 0x9C, 0x0D, 0x7E, 0x64, 0x66, 0x91,
+ 0x05, 0xE5, 0x1E, 0x69, 0xD7, 0xAF, 0x8C, 0xE5
+ },
+ {
+ 0x6B, 0x3C, 0x67, 0x89, 0x47, 0xF6, 0x12, 0x52,
+ 0x65, 0x7C, 0x35, 0x49, 0x78, 0xC1, 0x01, 0xB2,
+ 0xFD, 0xD2, 0x72, 0x9E, 0xC3, 0x49, 0x27, 0xDD,
+ 0x5E, 0xFF, 0x0A, 0x7C, 0x0A, 0x86, 0x58, 0x26,
+ 0xE8, 0x33, 0xC3, 0x63, 0x23, 0x21, 0x31, 0xB1,
+ 0x05, 0x93, 0xBE, 0x1C, 0xCF, 0x6B, 0xA5, 0x4E,
+ 0xCC, 0x14, 0x31, 0x2F, 0x45, 0xBF, 0xFC, 0x24,
+ 0x04, 0x62, 0x9F, 0xF8, 0x02, 0x67, 0xF0, 0x94
+ },
+ {
+ 0xAA, 0x0C, 0x23, 0xEA, 0x1C, 0x6F, 0xE2, 0xE9,
+ 0x0A, 0x77, 0x18, 0xEF, 0x4A, 0xA4, 0x75, 0x1F,
+ 0xF6, 0xBE, 0xB9, 0xD4, 0x61, 0x63, 0x59, 0x5B,
+ 0x5D, 0x4F, 0xB8, 0x96, 0x00, 0x52, 0x5C, 0x5B,
+ 0x6C, 0xF1, 0x9E, 0xCD, 0xB2, 0x47, 0x78, 0x72,
+ 0xA7, 0xA1, 0x2D, 0x40, 0xE5, 0x06, 0x36, 0x08,
+ 0xE5, 0xF0, 0x00, 0x8E, 0x79, 0x72, 0xA9, 0xC0,
+ 0x1A, 0x4B, 0xE2, 0xAF, 0xE9, 0x53, 0x2F, 0x9C
+ },
+ {
+ 0x63, 0x34, 0x7A, 0xB4, 0xCB, 0xB6, 0xF2, 0x89,
+ 0x52, 0x99, 0x2C, 0x07, 0x9D, 0x18, 0xD4, 0x20,
+ 0x01, 0xB7, 0xF3, 0xA9, 0xD0, 0xFD, 0x90, 0xB0,
+ 0xA4, 0x77, 0x1F, 0x69, 0x72, 0xF0, 0xC5, 0x32,
+ 0x89, 0xC8, 0xAE, 0xE1, 0x43, 0x29, 0x4B, 0x50,
+ 0xC6, 0x34, 0x12, 0x58, 0x5C, 0xDC, 0xE4, 0xFF,
+ 0x7B, 0xED, 0x11, 0x2C, 0xD0, 0x3C, 0x9B, 0x1D,
+ 0xF3, 0xDE, 0xF0, 0xCC, 0x32, 0x0D, 0x6B, 0x70
+ },
+ {
+ 0x23, 0x96, 0xC0, 0xCB, 0x9E, 0xDA, 0xAC, 0xA9,
+ 0xD8, 0xB1, 0x04, 0x65, 0x2C, 0xB7, 0xF1, 0x25,
+ 0xF1, 0x93, 0x55, 0x1A, 0xE5, 0xD7, 0xBC, 0x94,
+ 0x63, 0x30, 0x7C, 0x9E, 0x69, 0xCA, 0x7D, 0xA2,
+ 0x3A, 0x9F, 0xBC, 0xBC, 0xB8, 0x66, 0x69, 0xD5,
+ 0xBA, 0x63, 0x43, 0x85, 0x93, 0xE1, 0x32, 0xF9,
+ 0x92, 0xB5, 0x7C, 0x00, 0x17, 0xC8, 0x6D, 0xDB,
+ 0x9B, 0x47, 0x28, 0x6E, 0xF5, 0xB6, 0x87, 0x18
+ },
+ {
+ 0xA9, 0x4B, 0x80, 0x22, 0x57, 0xFD, 0x03, 0x1E,
+ 0xE6, 0x0F, 0x1B, 0xE1, 0x84, 0x38, 0x3A, 0x76,
+ 0x32, 0x85, 0x39, 0xF9, 0xD8, 0x06, 0x08, 0x72,
+ 0xEF, 0x35, 0x73, 0xBE, 0xB6, 0xF2, 0x73, 0x68,
+ 0x08, 0x95, 0x90, 0xED, 0xBB, 0x21, 0xF4, 0xD8,
+ 0xF1, 0x81, 0xBA, 0x66, 0x20, 0x75, 0xF9, 0x19,
+ 0x05, 0x97, 0x4B, 0xEE, 0xEF, 0x1F, 0xC5, 0xCB,
+ 0x9B, 0xCF, 0xB2, 0x8A, 0xAE, 0x1E, 0x4D, 0xE3
+ },
+ {
+ 0x52, 0xC7, 0xD3, 0x39, 0x9A, 0x03, 0x80, 0x04,
+ 0xBE, 0xA5, 0x2D, 0x3E, 0xA9, 0xE9, 0x1E, 0x25,
+ 0x44, 0xC8, 0x65, 0x2A, 0xB8, 0xF5, 0x28, 0x5C,
+ 0x9D, 0x32, 0x18, 0x63, 0x7A, 0x6D, 0x9F, 0xCA,
+ 0xF0, 0xD9, 0x65, 0xB3, 0x58, 0x8E, 0xE6, 0xD7,
+ 0x3F, 0xA5, 0x99, 0xDE, 0xCA, 0x1F, 0x41, 0xDE,
+ 0xD8, 0x02, 0x5B, 0xF7, 0x76, 0x8E, 0x0E, 0x20,
+ 0x0E, 0x8C, 0xD3, 0xFF, 0x86, 0x8C, 0x38, 0x00
+ },
+ {
+ 0xB6, 0x29, 0xF5, 0x71, 0x62, 0x87, 0x6A, 0xDB,
+ 0x8F, 0xA9, 0x57, 0x2E, 0xBA, 0x4E, 0x1E, 0xCD,
+ 0x75, 0xA6, 0x56, 0x73, 0x08, 0xDE, 0x90, 0xDB,
+ 0xB8, 0xFF, 0xDE, 0x77, 0xDE, 0x82, 0x13, 0xA4,
+ 0xD7, 0xF7, 0xCB, 0x85, 0xAE, 0x1B, 0x71, 0xE6,
+ 0x45, 0x7B, 0xC4, 0xE8, 0x9C, 0x0D, 0x9D, 0xE2,
+ 0x41, 0xB6, 0xB9, 0xF3, 0x74, 0xB7, 0x34, 0x19,
+ 0x4D, 0xB2, 0xB2, 0x67, 0x02, 0xD7, 0xCB, 0x7C
+ },
+ {
+ 0x72, 0x28, 0x46, 0xDD, 0xAC, 0xAA, 0x94, 0xFD,
+ 0xE6, 0x63, 0x2A, 0x2D, 0xC7, 0xDC, 0x70, 0x8B,
+ 0xDF, 0x98, 0x31, 0x1C, 0x9F, 0xB6, 0x3C, 0x61,
+ 0xE5, 0x25, 0xFD, 0x4B, 0x0D, 0x87, 0xB6, 0x38,
+ 0x8B, 0x5A, 0xF7, 0x04, 0x20, 0x18, 0xDD, 0xCA,
+ 0x06, 0x5E, 0x8A, 0x55, 0xBB, 0xFD, 0x68, 0xEE,
+ 0x61, 0xFC, 0xD3, 0xC6, 0x87, 0x8F, 0x5B, 0x09,
+ 0xBC, 0xC2, 0x7B, 0xED, 0x61, 0xDD, 0x93, 0xED
+ },
+ {
+ 0x1C, 0xED, 0x6A, 0x0C, 0x78, 0x9D, 0xDB, 0x29,
+ 0x56, 0x78, 0xAD, 0x43, 0xA3, 0x22, 0xD8, 0x96,
+ 0x61, 0x7F, 0xDE, 0x27, 0x5F, 0x13, 0x8C, 0xCC,
+ 0xFB, 0x13, 0x26, 0xCD, 0x3F, 0x76, 0x09, 0xC2,
+ 0xAA, 0xA5, 0xEC, 0x10, 0x26, 0x97, 0x17, 0x3E,
+ 0x12, 0x1A, 0xE1, 0x63, 0x02, 0x4F, 0x42, 0x8C,
+ 0x98, 0x28, 0x35, 0xB4, 0xFA, 0x6D, 0xA6, 0xD6,
+ 0x78, 0xAE, 0xB9, 0xEE, 0x10, 0x6A, 0x3F, 0x6C
+ },
+ {
+ 0xE8, 0x69, 0x14, 0x8C, 0x05, 0x45, 0xB3, 0x58,
+ 0x0E, 0x39, 0x5A, 0xFD, 0xC7, 0x45, 0xCD, 0x24,
+ 0x3B, 0x6B, 0x5F, 0xE3, 0xB6, 0x7E, 0x29, 0x43,
+ 0xF6, 0xF8, 0xD9, 0xF2, 0x4F, 0xFA, 0x40, 0xE8,
+ 0x81, 0x75, 0x6E, 0x1C, 0x18, 0xD9, 0x2F, 0x3E,
+ 0xBE, 0x84, 0x55, 0x9B, 0x57, 0xE2, 0xEE, 0x3A,
+ 0x65, 0xD9, 0xEC, 0xE0, 0x49, 0x72, 0xB3, 0x5D,
+ 0x4C, 0x4E, 0xBE, 0x78, 0x6C, 0x88, 0xDA, 0x62
+ },
+ {
+ 0xDA, 0xDA, 0x15, 0x5E, 0x55, 0x42, 0x32, 0xB1,
+ 0x6E, 0xCA, 0xD9, 0x31, 0xCB, 0x42, 0xE3, 0x25,
+ 0xB5, 0x86, 0xDB, 0xF1, 0xCB, 0xD0, 0xCE, 0x38,
+ 0x14, 0x45, 0x16, 0x6B, 0xD1, 0xBF, 0xA3, 0x32,
+ 0x49, 0x85, 0xE7, 0x7C, 0x6F, 0x0D, 0x51, 0x2A,
+ 0x02, 0x6E, 0x09, 0xD4, 0x86, 0x1C, 0x3B, 0xB8,
+ 0x52, 0x9D, 0x72, 0x02, 0xEA, 0xC1, 0xC0, 0x44,
+ 0x27, 0x44, 0xD3, 0x7C, 0x7F, 0x5A, 0xB8, 0xAF
+ },
+ {
+ 0x2D, 0x14, 0x8C, 0x8E, 0x8F, 0x76, 0xFA, 0xAC,
+ 0x6F, 0x7F, 0x01, 0xF2, 0x03, 0x9E, 0xA0, 0x2A,
+ 0x42, 0xD9, 0x32, 0x57, 0x94, 0xC2, 0xC7, 0xA0,
+ 0x0F, 0x83, 0xF4, 0xA7, 0x79, 0x8A, 0xFB, 0xA9,
+ 0x93, 0xFF, 0x94, 0x91, 0x1E, 0x09, 0x8B, 0x00,
+ 0x1A, 0x0B, 0xDF, 0xF4, 0xC8, 0x5A, 0x2A, 0x61,
+ 0x31, 0xE0, 0xCF, 0xE7, 0x0F, 0x1D, 0x2E, 0x07,
+ 0xAF, 0x02, 0x09, 0xDA, 0x77, 0x96, 0x09, 0x1F
+ },
+ {
+ 0x99, 0x98, 0x3A, 0x75, 0x9C, 0xCF, 0x9C, 0xAC,
+ 0xAE, 0x70, 0x2D, 0xCB, 0xFC, 0xDF, 0x72, 0x04,
+ 0xDD, 0xF0, 0x33, 0x4B, 0xC6, 0x5D, 0xAD, 0x84,
+ 0x6F, 0x83, 0x1F, 0x9F, 0x9D, 0x8A, 0x45, 0x3F,
+ 0x0D, 0x24, 0x93, 0x5C, 0x4C, 0x65, 0x7F, 0xFF,
+ 0x2E, 0xBB, 0xDB, 0xAF, 0x7B, 0xCE, 0x6A, 0xAC,
+ 0xDB, 0xB8, 0x87, 0x6F, 0x16, 0x04, 0x59, 0xB1,
+ 0xA4, 0xAA, 0xC9, 0x56, 0x97, 0xE0, 0x0D, 0x98
+ },
+ {
+ 0x7E, 0x4A, 0x02, 0x12, 0x6D, 0x75, 0x52, 0xF4,
+ 0xC9, 0xB9, 0x4D, 0x80, 0xE3, 0xCF, 0x7B, 0x89,
+ 0x7E, 0x09, 0x84, 0xE4, 0x06, 0xF0, 0x78, 0x13,
+ 0x5C, 0xF4, 0x56, 0xC0, 0xD5, 0x1E, 0x13, 0x91,
+ 0xFF, 0x18, 0xA8, 0x8F, 0x93, 0x12, 0x2C, 0x83,
+ 0x2C, 0xAC, 0x7D, 0x79, 0x6A, 0x6B, 0x42, 0x51,
+ 0x9B, 0x1D, 0xB4, 0xEA, 0xD8, 0xF4, 0x98, 0x40,
+ 0xCE, 0xB5, 0x52, 0x33, 0x6B, 0x29, 0xDE, 0x44
+ },
+ {
+ 0xD7, 0xE1, 0x6F, 0xD1, 0x59, 0x65, 0x8A, 0xD7,
+ 0xEE, 0x25, 0x1E, 0x51, 0x7D, 0xCE, 0x5A, 0x29,
+ 0xF4, 0x6F, 0xD4, 0xB8, 0xD3, 0x19, 0xDB, 0x80,
+ 0x5F, 0xC2, 0x5A, 0xA6, 0x20, 0x35, 0x0F, 0xF4,
+ 0x23, 0xAD, 0x8D, 0x05, 0x37, 0xCD, 0x20, 0x69,
+ 0x43, 0x2E, 0xBF, 0xF2, 0x92, 0x36, 0xF8, 0xC2,
+ 0xA8, 0xA0, 0x4D, 0x04, 0xB3, 0xB4, 0x8C, 0x59,
+ 0xA3, 0x55, 0xFC, 0xC6, 0x2D, 0x27, 0xF8, 0xEE
+ },
+ {
+ 0x0D, 0x45, 0x17, 0xD4, 0xF1, 0xD0, 0x47, 0x30,
+ 0xC6, 0x91, 0x69, 0x18, 0xA0, 0x4C, 0x9E, 0x90,
+ 0xCC, 0xA3, 0xAC, 0x1C, 0x63, 0xD6, 0x45, 0x97,
+ 0x8A, 0x7F, 0x07, 0x03, 0x9F, 0x92, 0x20, 0x64,
+ 0x7C, 0x25, 0xC0, 0x4E, 0x85, 0xF6, 0xE2, 0x28,
+ 0x6D, 0x2E, 0x35, 0x46, 0x0D, 0x0B, 0x2C, 0x1E,
+ 0x25, 0xAF, 0x9D, 0x35, 0x37, 0xEF, 0x33, 0xFD,
+ 0x7F, 0xE5, 0x1E, 0x2B, 0xA8, 0x76, 0x4B, 0x36
+ },
+ {
+ 0x56, 0xB7, 0x2E, 0x51, 0x37, 0xC6, 0x89, 0xB2,
+ 0x73, 0x66, 0xFB, 0x22, 0xC7, 0xC6, 0x75, 0x44,
+ 0xF6, 0xBC, 0xE5, 0x76, 0x19, 0x41, 0x31, 0xC5,
+ 0xBF, 0xAB, 0x1C, 0xF9, 0x3C, 0x2B, 0x51, 0xAA,
+ 0xA3, 0x03, 0x36, 0x8A, 0xA8, 0x44, 0xD5, 0x8D,
+ 0xF0, 0xEE, 0x5D, 0x4E, 0x31, 0x9F, 0xCD, 0x8E,
+ 0xFF, 0xC6, 0x02, 0xCE, 0xE4, 0x35, 0x1B, 0xD2,
+ 0xF5, 0x51, 0x43, 0x0B, 0x92, 0x11, 0xE7, 0x3C
+ },
+ {
+ 0xF3, 0x35, 0xCC, 0x22, 0xFF, 0xEA, 0x5A, 0xA5,
+ 0x9C, 0xDF, 0xC8, 0xF5, 0x02, 0x89, 0xCC, 0x92,
+ 0x31, 0x9B, 0x8B, 0x14, 0x40, 0x8D, 0x7A, 0x5A,
+ 0xA1, 0x23, 0x2A, 0xE2, 0x3A, 0xA1, 0xEA, 0x7F,
+ 0x77, 0x48, 0xCF, 0xEF, 0x03, 0x20, 0x10, 0xF8,
+ 0x62, 0x6D, 0x93, 0x18, 0xED, 0xBA, 0x98, 0xD4,
+ 0x16, 0x62, 0x03, 0x35, 0xC9, 0x01, 0xED, 0x02,
+ 0xEA, 0xBD, 0x27, 0x6A, 0x1B, 0x82, 0x9C, 0x9D
+ },
+ {
+ 0xA9, 0x9A, 0x3D, 0x10, 0xF9, 0x5B, 0x44, 0x2F,
+ 0xFF, 0xF7, 0xC4, 0x18, 0xFA, 0x94, 0x9D, 0x48,
+ 0x30, 0x86, 0x9B, 0x0E, 0x60, 0xEC, 0x8B, 0x97,
+ 0x2C, 0x30, 0xA3, 0x16, 0x9C, 0x27, 0xBE, 0xB5,
+ 0xCF, 0x33, 0x05, 0x94, 0xF0, 0x14, 0xB6, 0x6B,
+ 0x22, 0x00, 0xA7, 0xF0, 0x86, 0xD2, 0xC2, 0xF3,
+ 0xF9, 0xFD, 0x85, 0x32, 0xA5, 0x71, 0x88, 0x76,
+ 0xDF, 0xCA, 0x66, 0x1B, 0xA0, 0xF7, 0xB3, 0x6D
+ },
+ {
+ 0x15, 0x8E, 0x25, 0x70, 0xD0, 0x84, 0xA4, 0x86,
+ 0x9D, 0x96, 0x93, 0x43, 0xC0, 0x10, 0x86, 0x07,
+ 0x17, 0xFF, 0x74, 0x11, 0x61, 0x88, 0x17, 0x5F,
+ 0x2E, 0xD7, 0x4C, 0xD5, 0x78, 0xFA, 0x0D, 0x80,
+ 0x91, 0xB0, 0x3F, 0xAD, 0x0C, 0x65, 0xCF, 0x59,
+ 0xAB, 0x91, 0xDD, 0x73, 0xB3, 0x7F, 0xE3, 0xF5,
+ 0x8A, 0x58, 0xE7, 0xB4, 0x47, 0x9C, 0x87, 0x5A,
+ 0xCD, 0x63, 0xEC, 0x52, 0x58, 0x12, 0x35, 0x3F
+ },
+ {
+ 0x7C, 0x49, 0x50, 0x1C, 0x58, 0x08, 0xB1, 0x5C,
+ 0x0D, 0x31, 0xBD, 0xD5, 0xBB, 0x56, 0x31, 0xD5,
+ 0x3A, 0xE0, 0x0D, 0xF4, 0x31, 0x02, 0x5F, 0xEA,
+ 0x51, 0xEB, 0x47, 0x62, 0x54, 0x4E, 0xFD, 0xEE,
+ 0x97, 0x8A, 0x83, 0x50, 0x8D, 0xEA, 0x6B, 0xFD,
+ 0x3B, 0x93, 0x1A, 0x0E, 0x95, 0x83, 0xCC, 0xFC,
+ 0x04, 0x9E, 0xA8, 0x46, 0x44, 0x70, 0x5D, 0x31,
+ 0x9F, 0xDC, 0x5C, 0x16, 0x3B, 0xF4, 0x82, 0x24
+ },
+ {
+ 0xFE, 0xF4, 0x36, 0xB3, 0x5F, 0x71, 0x7D, 0x59,
+ 0xAC, 0xA1, 0x7E, 0x9B, 0xF5, 0xFF, 0xDA, 0x28,
+ 0xF5, 0xF4, 0x01, 0x94, 0x3E, 0xFE, 0x93, 0xEB,
+ 0x58, 0x0F, 0xFB, 0x98, 0xF1, 0x3B, 0xEA, 0x80,
+ 0x94, 0x69, 0xA3, 0x44, 0xE7, 0x82, 0xA4, 0x43,
+ 0xC6, 0x4E, 0xB2, 0x5A, 0xD0, 0x9D, 0x8D, 0xE2,
+ 0x05, 0xFE, 0xE7, 0xD5, 0x63, 0x96, 0x86, 0xA1,
+ 0x9E, 0x7C, 0x42, 0xB4, 0x0F, 0x70, 0x6A, 0x08
+ },
+ {
+ 0x4D, 0x47, 0xA6, 0x7A, 0x5F, 0x8E, 0x17, 0xB7,
+ 0x22, 0xDF, 0x98, 0x58, 0xAE, 0xB6, 0x7B, 0x99,
+ 0x56, 0xB4, 0x59, 0x62, 0xEC, 0x35, 0x3D, 0xC2,
+ 0xE2, 0x7F, 0x0F, 0x50, 0x1C, 0x39, 0x8E, 0x34,
+ 0x39, 0x7B, 0xEB, 0xE0, 0x2B, 0x54, 0x92, 0x7E,
+ 0x2D, 0x31, 0xF1, 0x2E, 0xCF, 0x55, 0xE8, 0x82,
+ 0x69, 0xFA, 0xB5, 0x37, 0x0E, 0x7F, 0xA5, 0x70,
+ 0x35, 0x26, 0x6F, 0x89, 0xD5, 0xC2, 0x64, 0x41
+ },
+ {
+ 0x1B, 0x58, 0xDC, 0x7A, 0xAC, 0x36, 0x3B, 0x00,
+ 0x44, 0x6E, 0xA8, 0x03, 0xBC, 0xD7, 0x49, 0xC3,
+ 0xF5, 0xCA, 0xBE, 0xAA, 0xF2, 0x23, 0x99, 0x4C,
+ 0x0C, 0x3E, 0xCC, 0x1B, 0x28, 0x47, 0x73, 0x44,
+ 0xD7, 0xBF, 0x97, 0xC0, 0x8A, 0x95, 0x9D, 0x1A,
+ 0xC2, 0x06, 0x0B, 0x47, 0x27, 0x89, 0x86, 0x92,
+ 0x91, 0x88, 0xAD, 0x73, 0xDE, 0x67, 0x07, 0x8B,
+ 0xA6, 0x80, 0x96, 0x3B, 0x9D, 0x3B, 0x12, 0xA4
+ },
+ {
+ 0x3C, 0x52, 0x2C, 0x84, 0x3E, 0x69, 0x74, 0xEC,
+ 0x75, 0x0D, 0xF2, 0x20, 0xD4, 0x1A, 0x00, 0x4A,
+ 0xC2, 0xAD, 0xF0, 0x94, 0x56, 0xFA, 0x78, 0x7F,
+ 0x7C, 0x65, 0x43, 0xAB, 0x17, 0x97, 0x9C, 0x77,
+ 0x7B, 0x3E, 0x79, 0xD1, 0x78, 0x7D, 0xA5, 0xA8,
+ 0x3F, 0x17, 0x8D, 0xA9, 0xF0, 0x4C, 0xF6, 0xF5,
+ 0xB2, 0x55, 0xDD, 0xCB, 0x18, 0x74, 0x84, 0x1B,
+ 0xBF, 0x70, 0x16, 0xE6, 0x13, 0x2B, 0x99, 0x8A
+ },
+ {
+ 0x5A, 0x4F, 0xEB, 0x8F, 0x70, 0x75, 0xB4, 0xDC,
+ 0x9C, 0xA1, 0x6C, 0x6F, 0x05, 0xCD, 0x6B, 0x70,
+ 0x27, 0x48, 0x5F, 0xFE, 0xD9, 0x15, 0x7D, 0x82,
+ 0x4D, 0x9D, 0x1A, 0x17, 0x20, 0xEE, 0xEE, 0xEA,
+ 0x3F, 0x6C, 0x12, 0x5F, 0xDA, 0x4B, 0xA4, 0x40,
+ 0x9D, 0x79, 0x80, 0x49, 0xFD, 0x18, 0x82, 0xC6,
+ 0x90, 0x28, 0x8F, 0x33, 0x54, 0x7A, 0x3D, 0x8D,
+ 0x62, 0x60, 0xB6, 0x54, 0x54, 0x88, 0x53, 0xD7
+ },
+ {
+ 0xBC, 0xAA, 0x79, 0x36, 0x32, 0x56, 0x9E, 0x2F,
+ 0x84, 0x17, 0xCC, 0x60, 0x32, 0x53, 0x53, 0x5B,
+ 0xD7, 0xD8, 0x5F, 0x38, 0x53, 0x19, 0x92, 0x59,
+ 0x1E, 0x56, 0xC1, 0xA4, 0xB6, 0xF5, 0x8E, 0xE7,
+ 0xF8, 0x18, 0xFA, 0xE0, 0x27, 0x88, 0x8A, 0x86,
+ 0x28, 0x43, 0x05, 0x10, 0x1E, 0xC0, 0x46, 0x61,
+ 0xF5, 0x99, 0x53, 0x47, 0xA4, 0x67, 0xED, 0x8B,
+ 0x92, 0x79, 0xF1, 0xAC, 0xC2, 0xB4, 0xBB, 0x1F
+ },
+ {
+ 0x34, 0xAF, 0x91, 0xCC, 0x22, 0xA6, 0x9B, 0xCB,
+ 0x55, 0xDD, 0xBF, 0x7F, 0x0F, 0x43, 0xEC, 0x56,
+ 0x48, 0x40, 0x43, 0x32, 0x13, 0xEA, 0x55, 0xD9,
+ 0xF8, 0x1A, 0xC4, 0x75, 0x20, 0x8D, 0x74, 0x85,
+ 0x1D, 0xB7, 0x0F, 0xE4, 0x96, 0xAF, 0x9D, 0xA1,
+ 0xD3, 0x93, 0xEC, 0xF8, 0x78, 0x69, 0x5D, 0xD3,
+ 0x3F, 0xD5, 0x43, 0x49, 0xA6, 0xF8, 0x24, 0xAE,
+ 0xED, 0x18, 0x3C, 0xB1, 0xB0, 0x8C, 0x54, 0x85
+ },
+ {
+ 0xB8, 0xB7, 0xAD, 0x2E, 0xA2, 0xB6, 0xFA, 0x06,
+ 0xD0, 0x0B, 0xCD, 0x59, 0x9C, 0x99, 0x71, 0xC5,
+ 0xB4, 0xE1, 0x65, 0x58, 0xE1, 0x52, 0x12, 0xC9,
+ 0xBF, 0xD3, 0x73, 0xE4, 0xBC, 0x79, 0x17, 0x05,
+ 0x26, 0x01, 0xFF, 0xDB, 0x68, 0x01, 0xBE, 0x80,
+ 0xBA, 0x50, 0x9D, 0xB8, 0x2A, 0x0B, 0x71, 0x95,
+ 0x92, 0x91, 0x33, 0xAD, 0x53, 0x99, 0x56, 0x06,
+ 0x52, 0x33, 0xF4, 0x9D, 0x07, 0x1C, 0x84, 0xE4
+ },
+ {
+ 0xDC, 0xEE, 0x9C, 0x45, 0xBC, 0x5D, 0x1F, 0xE6,
+ 0x30, 0xB1, 0x8B, 0x06, 0x3C, 0xE8, 0x2C, 0x38,
+ 0x57, 0xE3, 0x0D, 0x20, 0xC6, 0x4B, 0x5C, 0xC2,
+ 0x58, 0x84, 0x94, 0x3E, 0x7A, 0xE9, 0x4E, 0xDF,
+ 0xF8, 0x50, 0xEB, 0x0E, 0x82, 0x44, 0x02, 0x3D,
+ 0x3D, 0x07, 0xA8, 0xA0, 0x07, 0x06, 0xF0, 0x58,
+ 0x2C, 0xC1, 0x02, 0xB6, 0x6C, 0x6D, 0xDA, 0x86,
+ 0xE8, 0xF2, 0xDF, 0x32, 0x56, 0x59, 0x88, 0x6F
+ },
+ {
+ 0x04, 0xF6, 0xE8, 0x22, 0xF1, 0x7C, 0xC7, 0xA5,
+ 0x94, 0x6D, 0xF8, 0x0D, 0x95, 0x8A, 0xEF, 0x06,
+ 0x5D, 0x87, 0x49, 0x16, 0xE1, 0x03, 0xA6, 0x83,
+ 0x0C, 0x6E, 0x46, 0xB6, 0x05, 0x59, 0x18, 0x18,
+ 0x0D, 0x14, 0x52, 0x29, 0x3C, 0x58, 0xA9, 0x74,
+ 0x9C, 0xBC, 0x8F, 0x0A, 0xC4, 0x08, 0xA9, 0xCA,
+ 0x89, 0x57, 0x61, 0xCF, 0xC4, 0x51, 0x16, 0x46,
+ 0x41, 0xA1, 0x79, 0xFB, 0x5C, 0xD8, 0xFE, 0xBC
+ },
+ {
+ 0x51, 0x1F, 0xDB, 0x7C, 0x88, 0x26, 0x85, 0x35,
+ 0xE9, 0x7E, 0x4E, 0xD8, 0x92, 0xF3, 0xC0, 0x65,
+ 0x83, 0x2B, 0x26, 0x59, 0x14, 0xFC, 0x61, 0x07,
+ 0xA1, 0xD2, 0x7D, 0xBB, 0x7D, 0x51, 0xC3, 0x7E,
+ 0x95, 0x98, 0x15, 0x06, 0xC1, 0x14, 0x72, 0x44,
+ 0xD5, 0xBA, 0xE9, 0x0E, 0xE9, 0x0D, 0x08, 0x49,
+ 0x84, 0xBA, 0xA7, 0x58, 0x7F, 0x41, 0xFF, 0x6F,
+ 0x4B, 0xA7, 0x22, 0xC8, 0xB9, 0x2A, 0xEB, 0x99
+ },
+ {
+ 0x2B, 0xA2, 0xBD, 0x17, 0xE9, 0x26, 0x27, 0x5B,
+ 0x06, 0x83, 0xB2, 0x36, 0xBF, 0xE3, 0x76, 0x30,
+ 0x26, 0x6E, 0x37, 0xF4, 0x18, 0x2F, 0x53, 0xA9,
+ 0x82, 0x34, 0xE9, 0x15, 0xAB, 0x64, 0xC9, 0x59,
+ 0x96, 0xC6, 0xCB, 0x7A, 0xE8, 0x80, 0xC3, 0xDF,
+ 0xCB, 0x47, 0xD0, 0x5A, 0xAD, 0xD2, 0x1A, 0xBF,
+ 0x8E, 0x40, 0xB7, 0x3F, 0x40, 0xF3, 0x98, 0xDC,
+ 0x5B, 0x02, 0x14, 0x14, 0x57, 0x45, 0x6A, 0x09
+ },
+ {
+ 0x9B, 0x66, 0x8D, 0x9B, 0x44, 0x47, 0xE3, 0x76,
+ 0xF6, 0xC6, 0xCF, 0xA6, 0x8D, 0xBC, 0x79, 0x19,
+ 0x83, 0x81, 0xAB, 0x60, 0x5F, 0x55, 0xD5, 0xA7,
+ 0xEF, 0x68, 0x3B, 0xCE, 0xD4, 0x6F, 0x9A, 0xFD,
+ 0x36, 0x85, 0x41, 0x1A, 0x66, 0xE2, 0x34, 0x6F,
+ 0x96, 0x07, 0x77, 0xD0, 0xC9, 0x22, 0x71, 0x24,
+ 0x30, 0xE0, 0x18, 0xBF, 0xAE, 0x86, 0x53, 0x01,
+ 0x7E, 0xA2, 0x0E, 0xCD, 0x5F, 0x1F, 0x95, 0x6C
+ },
+ {
+ 0x56, 0x81, 0x02, 0x4F, 0x53, 0x85, 0x88, 0xA0,
+ 0x1B, 0x2C, 0x83, 0x94, 0xCA, 0xE8, 0x73, 0xC6,
+ 0xD8, 0x5D, 0x6A, 0xA0, 0x6E, 0xDD, 0xB3, 0xA5,
+ 0x02, 0x09, 0x6F, 0xC0, 0x82, 0xBB, 0x89, 0xCB,
+ 0x24, 0x15, 0x31, 0xB3, 0x15, 0x75, 0x0D, 0x31,
+ 0xBB, 0x0B, 0x63, 0x01, 0x28, 0xD1, 0x9D, 0x11,
+ 0x39, 0x2B, 0xCF, 0x4B, 0x34, 0x78, 0xD5, 0x23,
+ 0xD7, 0xD2, 0x13, 0xE4, 0x75, 0x0F, 0x55, 0x92
+ },
+ {
+ 0x2A, 0xA9, 0x1B, 0xA6, 0xDE, 0x60, 0x17, 0xF1,
+ 0x93, 0x0F, 0xC7, 0xD9, 0x6D, 0xCC, 0xD6, 0x70,
+ 0x74, 0x8B, 0x7E, 0xB1, 0xD0, 0x94, 0xDF, 0xB4,
+ 0xB3, 0xB1, 0x47, 0x8A, 0x61, 0x2E, 0xBF, 0x03,
+ 0xDD, 0xD7, 0x21, 0x27, 0x9A, 0x26, 0x6D, 0xE3,
+ 0x88, 0x45, 0xE6, 0x12, 0xC9, 0x30, 0x98, 0xC2,
+ 0xEF, 0xFF, 0x34, 0xFE, 0x50, 0x06, 0x17, 0x20,
+ 0x5B, 0x1D, 0xE2, 0xFE, 0xA1, 0xD8, 0x02, 0x46
+ },
+ {
+ 0x82, 0x4D, 0x89, 0xC0, 0x63, 0x7C, 0xE1, 0x78,
+ 0xB6, 0x30, 0x68, 0x4C, 0x72, 0x9E, 0x26, 0x65,
+ 0x3F, 0x34, 0xEA, 0xC7, 0xE9, 0x04, 0x12, 0xE9,
+ 0x63, 0xD3, 0xF1, 0x9D, 0x64, 0x51, 0xE8, 0x25,
+ 0x85, 0x21, 0x67, 0xC4, 0x8D, 0xF7, 0xCC, 0x55,
+ 0xB2, 0x57, 0xB2, 0x50, 0xA7, 0x0C, 0x7B, 0xCC,
+ 0xFA, 0x9A, 0xA1, 0x5C, 0x18, 0x8A, 0xC4, 0x63,
+ 0x7A, 0x52, 0x22, 0x89, 0xC0, 0x87, 0x6A, 0xD4
+ },
+ {
+ 0x87, 0xE4, 0xAE, 0x11, 0xDA, 0x1A, 0x2C, 0xA8,
+ 0x82, 0x2A, 0xE3, 0x30, 0xDC, 0x97, 0xAB, 0x2E,
+ 0x47, 0xFF, 0x62, 0x32, 0x30, 0x93, 0xC2, 0xB7,
+ 0xA6, 0xC0, 0xE2, 0xC1, 0x68, 0x21, 0xCD, 0x7C,
+ 0xEC, 0x92, 0x18, 0x4D, 0xF4, 0xBB, 0x6E, 0x2B,
+ 0x62, 0x6A, 0x44, 0x78, 0x03, 0x90, 0x63, 0xAF,
+ 0xEE, 0xB0, 0xD2, 0x87, 0xF2, 0x42, 0x19, 0x20,
+ 0x78, 0x98, 0xCC, 0xE7, 0xAD, 0xE0, 0x63, 0x9C
+ },
+ {
+ 0xDD, 0x7F, 0x2F, 0x44, 0xA4, 0x02, 0xA0, 0x1E,
+ 0x82, 0x16, 0xB1, 0x03, 0xA4, 0xE7, 0x23, 0x5C,
+ 0x28, 0x30, 0x31, 0x9D, 0x56, 0xAF, 0x63, 0x9F,
+ 0x23, 0xC4, 0x8C, 0x27, 0x59, 0xAB, 0xA6, 0xEB,
+ 0x5E, 0xEE, 0xE3, 0x8C, 0x29, 0x8E, 0xBE, 0x41,
+ 0x98, 0x26, 0x7A, 0x00, 0xEB, 0x2A, 0x08, 0xD9,
+ 0x3A, 0x50, 0x37, 0x03, 0x17, 0x1C, 0x77, 0x33,
+ 0x38, 0x62, 0x10, 0x10, 0x55, 0xBD, 0x7A, 0xD2
+ },
+ {
+ 0x4C, 0xB8, 0x46, 0x59, 0x61, 0x93, 0xF7, 0xF2,
+ 0x78, 0xAA, 0xAA, 0xC5, 0xCC, 0xFF, 0xD5, 0x35,
+ 0x7A, 0xB0, 0xD1, 0x24, 0x5F, 0x69, 0x79, 0xD1,
+ 0x41, 0xA4, 0x71, 0xBD, 0xAB, 0x55, 0xE2, 0x38,
+ 0xB1, 0xAE, 0xD6, 0x7B, 0x73, 0x39, 0x95, 0x04,
+ 0xB9, 0x7D, 0xF1, 0xA2, 0x5E, 0xB6, 0xFE, 0x27,
+ 0x2B, 0x5C, 0xD4, 0x96, 0xA7, 0xC8, 0xA0, 0x60,
+ 0x92, 0x6E, 0x74, 0x04, 0xFD, 0xA0, 0x79, 0x0D
+ },
+ {
+ 0x6F, 0x44, 0xEC, 0xDA, 0xE1, 0x4E, 0x3B, 0x81,
+ 0xA1, 0x91, 0x22, 0x03, 0x01, 0x5F, 0x59, 0x18,
+ 0xEA, 0xC6, 0xFB, 0xF4, 0x96, 0x60, 0x10, 0xF4,
+ 0x9D, 0x2B, 0xC2, 0xBC, 0xEF, 0xE7, 0xB1, 0xDF,
+ 0xEC, 0x5C, 0x83, 0x5D, 0x7D, 0x87, 0xA4, 0x43,
+ 0x71, 0xF1, 0x5A, 0x6C, 0x08, 0x42, 0x52, 0xB9,
+ 0x34, 0x65, 0x26, 0x42, 0x72, 0xA4, 0x10, 0xD5,
+ 0x0F, 0x89, 0xA1, 0x17, 0xF3, 0x1A, 0xF4, 0x63
+ },
+ {
+ 0x1F, 0x70, 0x5F, 0x6E, 0x9F, 0x07, 0x0D, 0x87,
+ 0xFD, 0xE8, 0xE2, 0x77, 0x46, 0x74, 0xFA, 0x9B,
+ 0xF1, 0x20, 0xD2, 0x88, 0xEB, 0x0B, 0xE7, 0xAA,
+ 0x12, 0x8D, 0xFB, 0x5D, 0x10, 0x11, 0xCE, 0x1F,
+ 0xDA, 0x99, 0xB2, 0x55, 0x22, 0x66, 0x65, 0xD8,
+ 0x3F, 0x63, 0x4E, 0x8F, 0xCA, 0xBD, 0xA9, 0xA2,
+ 0x3C, 0x03, 0x51, 0x5E, 0x9C, 0xFE, 0xCE, 0x6E,
+ 0x94, 0xA8, 0xEC, 0x92, 0xE4, 0xED, 0xEC, 0xB7
+ },
+ {
+ 0x2D, 0x96, 0xC5, 0xB0, 0x15, 0x74, 0x72, 0x2B,
+ 0x81, 0x7F, 0xEB, 0x48, 0x6C, 0x5F, 0xC9, 0x8F,
+ 0x5F, 0x84, 0x61, 0xF4, 0xCE, 0xE9, 0x90, 0x5A,
+ 0xF2, 0x06, 0xD4, 0x72, 0x33, 0x86, 0xD1, 0xC4,
+ 0xC7, 0xCA, 0xC5, 0x84, 0x00, 0x28, 0xD7, 0xAF,
+ 0xED, 0x0E, 0x38, 0xAD, 0x13, 0x96, 0x28, 0xEB,
+ 0x6A, 0xF9, 0x2B, 0x4B, 0x88, 0xEB, 0xF0, 0x9B,
+ 0x1F, 0xA0, 0x47, 0xFB, 0xE1, 0x0B, 0xC3, 0x1D
+ },
+ {
+ 0x65, 0xDA, 0x78, 0x0A, 0x0A, 0x37, 0x47, 0x9D,
+ 0xD8, 0xF4, 0xD6, 0x55, 0x64, 0xF9, 0xA7, 0x08,
+ 0x9E, 0x42, 0x07, 0xEB, 0x16, 0xAC, 0xA3, 0xF6,
+ 0x55, 0x31, 0xCF, 0xEE, 0x76, 0x25, 0xBA, 0x13,
+ 0x80, 0xA4, 0x97, 0xB6, 0x24, 0x72, 0xFC, 0x7E,
+ 0x00, 0x07, 0xA6, 0xB0, 0x35, 0x61, 0x04, 0x16,
+ 0xA5, 0xF8, 0x2C, 0x10, 0x82, 0xFA, 0x06, 0x5C,
+ 0x46, 0xDD, 0xEE, 0x49, 0x40, 0xD1, 0xFC, 0x46
+ },
+ {
+ 0x1C, 0x09, 0xA3, 0xB3, 0x80, 0xB8, 0xA7, 0xFC,
+ 0x33, 0x3F, 0xD2, 0x71, 0x4D, 0xF7, 0x12, 0x9B,
+ 0x44, 0xA4, 0x67, 0x68, 0xBA, 0xCF, 0x0A, 0x67,
+ 0xA3, 0x8A, 0x47, 0xB3, 0xAB, 0x31, 0xF5, 0x1B,
+ 0x05, 0x33, 0xC2, 0xAA, 0x2B, 0x4B, 0x7B, 0xBB,
+ 0x6A, 0xE5, 0xED, 0xF3, 0xDC, 0xB0, 0xEC, 0xC1,
+ 0xA2, 0x83, 0xE8, 0x43, 0xF2, 0x90, 0x7B, 0x34,
+ 0x1F, 0x17, 0x9A, 0xFD, 0x8B, 0x67, 0xDA, 0x90
+ },
+ {
+ 0x67, 0x88, 0x8B, 0x83, 0xFA, 0xAF, 0xBB, 0x62,
+ 0x29, 0x34, 0xB8, 0xD5, 0x59, 0x63, 0xE1, 0x86,
+ 0x15, 0x3E, 0x59, 0x51, 0x88, 0x7C, 0x7F, 0x4A,
+ 0x76, 0x35, 0xC7, 0x98, 0xD9, 0xA5, 0x82, 0x94,
+ 0xBE, 0x26, 0xA3, 0xC5, 0x49, 0xC9, 0xFD, 0x59,
+ 0x86, 0xAB, 0xD1, 0x9F, 0x40, 0x1E, 0xE2, 0x4E,
+ 0xDA, 0x36, 0x02, 0x04, 0x2A, 0xD3, 0x83, 0x35,
+ 0x7A, 0x31, 0x7D, 0x38, 0x07, 0x3B, 0x38, 0xCE
+ },
+ {
+ 0xB4, 0xF7, 0x99, 0x63, 0xCA, 0x31, 0xBB, 0x62,
+ 0x26, 0x5D, 0xD9, 0x29, 0xAF, 0x7D, 0x51, 0x27,
+ 0x2F, 0xA6, 0x63, 0x1D, 0xE7, 0xFA, 0x35, 0xF7,
+ 0xA6, 0xB0, 0x3F, 0x9F, 0xCF, 0xDB, 0x8E, 0x3B,
+ 0x5B, 0xAC, 0xE3, 0x35, 0x91, 0xB7, 0xEC, 0x2C,
+ 0xFA, 0xB4, 0x9C, 0x91, 0xA6, 0xDB, 0x1F, 0xF8,
+ 0xF6, 0x78, 0x6D, 0x08, 0xF4, 0x4E, 0x80, 0x62,
+ 0xD2, 0xFF, 0x69, 0x6A, 0x7D, 0x98, 0x41, 0x42
+ },
+ {
+ 0x40, 0x84, 0x83, 0x69, 0x7B, 0xB6, 0xF9, 0xD0,
+ 0x11, 0xA1, 0xF2, 0x9A, 0x23, 0xC2, 0x78, 0xA8,
+ 0x1D, 0x37, 0x57, 0x8D, 0xCC, 0xCF, 0x42, 0x3B,
+ 0xDF, 0x48, 0x93, 0x37, 0xF1, 0x82, 0xEA, 0xB7,
+ 0x9A, 0x50, 0xB0, 0x5F, 0x3D, 0x2C, 0xCC, 0x49,
+ 0x13, 0x37, 0xC7, 0xE4, 0x1F, 0x30, 0x79, 0x3B,
+ 0xD2, 0x7D, 0x76, 0x61, 0xC2, 0xE3, 0x04, 0xC9,
+ 0x46, 0xA5, 0xA4, 0x01, 0xAF, 0x8D, 0x94, 0x6F
+ },
+ {
+ 0xEE, 0xB5, 0xAD, 0xE1, 0xAB, 0x97, 0xE7, 0x15,
+ 0x43, 0x43, 0xA4, 0x6E, 0xB4, 0xCD, 0xD2, 0xA7,
+ 0x73, 0xF3, 0x63, 0x01, 0xED, 0xC6, 0xA1, 0xBC,
+ 0x1D, 0xD6, 0x48, 0x0E, 0x08, 0xF5, 0x87, 0x65,
+ 0xCB, 0x93, 0x87, 0x82, 0x92, 0x3B, 0xC0, 0x1F,
+ 0x8E, 0x0C, 0x61, 0xC6, 0xBE, 0x0D, 0xD1, 0xAB,
+ 0x4C, 0x18, 0xCB, 0x15, 0xED, 0x52, 0x10, 0x11,
+ 0x24, 0x05, 0xF1, 0xEA, 0x8F, 0x2E, 0x8C, 0x4E
+ },
+ {
+ 0x71, 0x4A, 0xD1, 0x85, 0xF1, 0xEE, 0xC4, 0x3F,
+ 0x46, 0xB6, 0x7E, 0x99, 0x2D, 0x2D, 0x38, 0xBC,
+ 0x31, 0x49, 0xE3, 0x7D, 0xA7, 0xB4, 0x47, 0x48,
+ 0xD4, 0xD1, 0x4C, 0x16, 0x1E, 0x08, 0x78, 0x02,
+ 0x04, 0x42, 0x14, 0x95, 0x79, 0xA8, 0x65, 0xD8,
+ 0x04, 0xB0, 0x49, 0xCD, 0x01, 0x55, 0xBA, 0x98,
+ 0x33, 0x78, 0x75, 0x7A, 0x13, 0x88, 0x30, 0x1B,
+ 0xDC, 0x0F, 0xAE, 0x2C, 0xEA, 0xEA, 0x07, 0xDD
+ },
+ {
+ 0x22, 0xB8, 0x24, 0x9E, 0xAF, 0x72, 0x29, 0x64,
+ 0xCE, 0x42, 0x4F, 0x71, 0xA7, 0x4D, 0x03, 0x8F,
+ 0xF9, 0xB6, 0x15, 0xFB, 0xA5, 0xC7, 0xC2, 0x2C,
+ 0xB6, 0x27, 0x97, 0xF5, 0x39, 0x82, 0x24, 0xC3,
+ 0xF0, 0x72, 0xEB, 0xC1, 0xDA, 0xCB, 0xA3, 0x2F,
+ 0xC6, 0xF6, 0x63, 0x60, 0xB3, 0xE1, 0x65, 0x8D,
+ 0x0F, 0xA0, 0xDA, 0x1E, 0xD1, 0xC1, 0xDA, 0x66,
+ 0x2A, 0x20, 0x37, 0xDA, 0x82, 0x3A, 0x33, 0x83
+ },
+ {
+ 0xB8, 0xE9, 0x03, 0xE6, 0x91, 0xB9, 0x92, 0x78,
+ 0x25, 0x28, 0xF8, 0xDB, 0x96, 0x4D, 0x08, 0xE3,
+ 0xBA, 0xAF, 0xBD, 0x08, 0xBA, 0x60, 0xC7, 0x2A,
+ 0xEC, 0x0C, 0x28, 0xEC, 0x6B, 0xFE, 0xCA, 0x4B,
+ 0x2E, 0xC4, 0xC4, 0x6F, 0x22, 0xBF, 0x62, 0x1A,
+ 0x5D, 0x74, 0xF7, 0x5C, 0x0D, 0x29, 0x69, 0x3E,
+ 0x56, 0xC5, 0xC5, 0x84, 0xF4, 0x39, 0x9E, 0x94,
+ 0x2F, 0x3B, 0xD8, 0xD3, 0x86, 0x13, 0xE6, 0x39
+ },
+ {
+ 0xD5, 0xB4, 0x66, 0xFF, 0x1F, 0xD6, 0x8C, 0xFA,
+ 0x8E, 0xDF, 0x0B, 0x68, 0x02, 0x44, 0x8F, 0x30,
+ 0x2D, 0xCC, 0xDA, 0xF5, 0x66, 0x28, 0x78, 0x6B,
+ 0x9D, 0xA0, 0xF6, 0x62, 0xFD, 0xA6, 0x90, 0x26,
+ 0x6B, 0xD4, 0x0A, 0xB6, 0xF0, 0xBE, 0xC0, 0x43,
+ 0xF1, 0x01, 0x28, 0xB3, 0x3D, 0x05, 0xDB, 0x82,
+ 0xD4, 0xAB, 0x26, 0x8A, 0x4F, 0x91, 0xAC, 0x42,
+ 0x86, 0x79, 0x5F, 0xC0, 0xF7, 0xCB, 0x48, 0x5C
+ },
+ {
+ 0x0A, 0x1E, 0x8C, 0x0A, 0x8C, 0x48, 0xB8, 0x4B,
+ 0x71, 0xBA, 0x0F, 0xE5, 0x6F, 0xA0, 0x56, 0x09,
+ 0x8C, 0xA6, 0x92, 0xE9, 0x2F, 0x27, 0x6E, 0x85,
+ 0xB3, 0x38, 0x26, 0xCD, 0x78, 0x75, 0xFC, 0xF8,
+ 0x83, 0x85, 0x13, 0x1B, 0x43, 0xDF, 0x74, 0x53,
+ 0x2E, 0xAA, 0x86, 0xCF, 0x17, 0x1F, 0x50, 0x76,
+ 0xE6, 0xD1, 0x7B, 0x1C, 0x75, 0xFB, 0xA1, 0xDB,
+ 0x00, 0x1B, 0x6E, 0x66, 0x97, 0x7C, 0xB8, 0xD7
+ },
+ {
+ 0x65, 0xAA, 0x17, 0x99, 0x14, 0x36, 0x93, 0xAB,
+ 0xD9, 0xCB, 0x21, 0x8D, 0x9B, 0x5E, 0xC6, 0x0C,
+ 0x0E, 0xDD, 0xB0, 0x67, 0xE6, 0xA3, 0x2F, 0x76,
+ 0x79, 0x60, 0x10, 0xAC, 0xB1, 0x1A, 0xD0, 0x13,
+ 0x6C, 0xE4, 0x9F, 0x97, 0x6E, 0x74, 0xF8, 0x95,
+ 0x04, 0x2F, 0x7C, 0xBF, 0x13, 0xFB, 0x73, 0xD1,
+ 0x9D, 0xC8, 0x89, 0xD7, 0xE9, 0x03, 0x46, 0x9D,
+ 0xEB, 0x33, 0x73, 0x1F, 0x24, 0x06, 0xB6, 0x63
+ },
+ {
+ 0xDE, 0xB7, 0x12, 0xB9, 0xCC, 0x64, 0xF5, 0x88,
+ 0x14, 0x86, 0x0B, 0x51, 0xFA, 0x89, 0xAD, 0x8A,
+ 0x92, 0x6A, 0x69, 0x08, 0xC7, 0x96, 0xDE, 0x55,
+ 0x7F, 0x90, 0xCF, 0xAD, 0xB0, 0xC6, 0x2C, 0x07,
+ 0x87, 0x2F, 0x33, 0xFE, 0x18, 0x4E, 0x5E, 0x21,
+ 0x2A, 0x3C, 0x5C, 0x37, 0x31, 0x74, 0x18, 0x44,
+ 0x6E, 0xFD, 0x95, 0x61, 0x3F, 0x61, 0x8A, 0x35,
+ 0xF7, 0xD2, 0x78, 0x9E, 0xFE, 0x0D, 0x96, 0x60
+ },
+ {
+ 0xB4, 0x2F, 0x4A, 0x40, 0xB3, 0xC8, 0x8B, 0xCE,
+ 0xCF, 0xE3, 0x28, 0xC8, 0x46, 0xBF, 0x06, 0x48,
+ 0xA1, 0x69, 0x90, 0xCA, 0x53, 0x91, 0x95, 0xC0,
+ 0xC1, 0xDC, 0x8D, 0x70, 0x30, 0x80, 0x67, 0x68,
+ 0x5A, 0xF6, 0x77, 0xAD, 0x65, 0xAC, 0x0C, 0x7A,
+ 0x9B, 0xCF, 0xA8, 0xF7, 0xAC, 0xC0, 0xAA, 0xCF,
+ 0x45, 0xCA, 0x18, 0xAC, 0x83, 0x1F, 0xED, 0x64,
+ 0x4E, 0xC3, 0xD9, 0x28, 0x31, 0x01, 0xFF, 0xEF
+ },
+ {
+ 0xED, 0xCF, 0x6C, 0x81, 0xCC, 0xF1, 0x6E, 0x11,
+ 0xDD, 0xF7, 0x19, 0xA3, 0x3D, 0xD0, 0xE5, 0x34,
+ 0x9C, 0xAB, 0xAC, 0x5C, 0xFA, 0xE5, 0x97, 0x00,
+ 0x98, 0x40, 0xE1, 0xC3, 0x93, 0x62, 0xC0, 0xF1,
+ 0x19, 0x82, 0xFE, 0x2C, 0x27, 0x65, 0x85, 0x9A,
+ 0x94, 0x26, 0x2D, 0xA2, 0x8D, 0xD3, 0x37, 0x3D,
+ 0x52, 0x26, 0x93, 0x89, 0x75, 0x11, 0xEB, 0xA5,
+ 0xE0, 0x7B, 0x8B, 0xC6, 0xB6, 0x06, 0x4D, 0xC0
+ },
+ {
+ 0x46, 0xB9, 0x62, 0xD2, 0x28, 0x36, 0x94, 0xD2,
+ 0x79, 0x75, 0xDC, 0xBF, 0x32, 0x56, 0x4C, 0x9B,
+ 0x04, 0x03, 0x2B, 0x30, 0xA9, 0x3E, 0x05, 0x8F,
+ 0xB7, 0x7B, 0x2B, 0x71, 0x8B, 0x4A, 0xD5, 0xFB,
+ 0x78, 0x9A, 0xB7, 0xD7, 0xAA, 0x90, 0x85, 0x2D,
+ 0xA2, 0xBF, 0xB6, 0xB3, 0x93, 0xB0, 0x9F, 0x98,
+ 0xE8, 0x69, 0xB1, 0x6E, 0x41, 0x0E, 0x7D, 0xE2,
+ 0x30, 0xB1, 0x79, 0xF6, 0x2E, 0xB5, 0x74, 0x71
+ },
+ {
+ 0x29, 0x03, 0x6C, 0x3F, 0x53, 0x82, 0xE3, 0x5D,
+ 0xE7, 0xA6, 0x9F, 0xA7, 0xA6, 0x3E, 0xC7, 0xBD,
+ 0xCB, 0xC4, 0xE0, 0xCC, 0x5A, 0x7B, 0x64, 0x14,
+ 0xCF, 0x44, 0xBF, 0x9A, 0x83, 0x83, 0xEF, 0xB5,
+ 0x97, 0x23, 0x50, 0x6F, 0x0D, 0x51, 0xAD, 0x50,
+ 0xAC, 0x1E, 0xAC, 0xF7, 0x04, 0x30, 0x8E, 0x8A,
+ 0xEC, 0xB9, 0x66, 0xF6, 0xAC, 0x94, 0x1D, 0xB1,
+ 0xCD, 0xE4, 0xB5, 0x9E, 0x84, 0xC1, 0xEB, 0xBA
+ },
+ {
+ 0x17, 0x3F, 0x8A, 0xB8, 0x93, 0x3E, 0xB0, 0x7C,
+ 0xC5, 0xFD, 0x6E, 0x4B, 0xCE, 0xBA, 0xE1, 0xFF,
+ 0x35, 0xC7, 0x87, 0x9B, 0x93, 0x8A, 0x5A, 0x15,
+ 0x79, 0xEA, 0x02, 0xF3, 0x83, 0x32, 0x48, 0x86,
+ 0xC7, 0x0E, 0xD9, 0x10, 0x9D, 0xE1, 0x69, 0x0B,
+ 0x8E, 0xE8, 0x01, 0xBC, 0x95, 0x9B, 0x21, 0xD3,
+ 0x81, 0x17, 0xEB, 0xB8, 0x4A, 0xB5, 0x6F, 0x88,
+ 0xF8, 0xA3, 0x72, 0x62, 0x00, 0x2D, 0xD9, 0x8E
+ },
+ {
+ 0xC6, 0xAF, 0xA6, 0xA1, 0x91, 0x93, 0x1F, 0xD4,
+ 0x5C, 0x3B, 0xAD, 0xBA, 0x72, 0x6E, 0x68, 0xA9,
+ 0xBC, 0x73, 0x88, 0xC8, 0xCF, 0x37, 0xAD, 0xEC,
+ 0x7C, 0x64, 0x56, 0x1C, 0xF4, 0x81, 0xFD, 0x25,
+ 0x9A, 0x64, 0x6C, 0x8B, 0xD8, 0x43, 0xE7, 0x70,
+ 0x9E, 0x11, 0xE6, 0x4D, 0xCF, 0xD5, 0xDF, 0xFF,
+ 0xED, 0x79, 0x23, 0x5C, 0x68, 0x9B, 0x42, 0x00,
+ 0xFE, 0x7A, 0xC8, 0xDF, 0xDA, 0xDD, 0xEC, 0xE0
+ },
+ {
+ 0xA6, 0xDC, 0xCD, 0x8C, 0x19, 0x26, 0x64, 0x88,
+ 0xBF, 0x77, 0xB9, 0xF2, 0x4B, 0x91, 0x43, 0xDE,
+ 0xF1, 0xFE, 0xD6, 0x1D, 0x0C, 0x60, 0xB5, 0x00,
+ 0x0A, 0x52, 0x3F, 0x45, 0x0D, 0xA2, 0x3D, 0x74,
+ 0xE4, 0xE3, 0xF6, 0xEF, 0x04, 0x09, 0x0D, 0x10,
+ 0x66, 0xB6, 0xAC, 0xE8, 0x5A, 0xBC, 0x0F, 0x03,
+ 0x01, 0x73, 0xF5, 0x28, 0x17, 0x72, 0x7C, 0x4E,
+ 0x40, 0x43, 0x2D, 0xD3, 0x4C, 0x6E, 0xF9, 0xF0
+ },
+ {
+ 0xAA, 0xF8, 0x90, 0x8D, 0x54, 0x6E, 0x4F, 0x1E,
+ 0x31, 0x4C, 0x00, 0xE9, 0xD2, 0xE8, 0x85, 0x5C,
+ 0xB2, 0x56, 0x44, 0x5A, 0xAE, 0x3E, 0xCA, 0x44,
+ 0x23, 0x83, 0x22, 0xAE, 0xC7, 0x40, 0x34, 0xA1,
+ 0x45, 0x8A, 0x29, 0x36, 0x75, 0xDA, 0xD9, 0x49,
+ 0x40, 0x8D, 0xE5, 0x55, 0x4F, 0x22, 0xD7, 0x34,
+ 0x54, 0xF3, 0xF0, 0x70, 0x9C, 0xBC, 0xCC, 0x85,
+ 0xCB, 0x05, 0x3A, 0x6F, 0x50, 0x38, 0x91, 0xA1
+ },
+ {
+ 0x52, 0x5F, 0x4A, 0xAB, 0x9C, 0x32, 0x7D, 0x2A,
+ 0x6A, 0x3C, 0x9D, 0xF8, 0x1F, 0xB7, 0xBE, 0x97,
+ 0xEE, 0x03, 0xE3, 0xF7, 0xCE, 0x33, 0x21, 0x1C,
+ 0x47, 0x78, 0x8A, 0xCD, 0x13, 0x46, 0x40, 0xDD,
+ 0x90, 0xAD, 0x74, 0x99, 0x2D, 0x3D, 0xD6, 0xAC,
+ 0x80, 0x63, 0x50, 0xF3, 0xBA, 0xBC, 0x7F, 0xE1,
+ 0x98, 0xA6, 0x1D, 0xB3, 0x2D, 0x4A, 0xD1, 0xD6,
+ 0x56, 0x9A, 0xE8, 0x41, 0x31, 0x04, 0xDE, 0xA4
+ },
+ {
+ 0x2D, 0xAC, 0xCD, 0x88, 0x71, 0x9D, 0x0A, 0x00,
+ 0xB5, 0x2C, 0x6E, 0xB7, 0x9E, 0x1C, 0xA8, 0xB4,
+ 0xA1, 0xB4, 0xB4, 0x4F, 0xFA, 0x20, 0x88, 0x9F,
+ 0x23, 0x63, 0xEF, 0x5C, 0x0D, 0x73, 0x7F, 0x1F,
+ 0x81, 0xF5, 0x0D, 0xA1, 0xCA, 0xAC, 0x23, 0x1D,
+ 0x6F, 0xCB, 0x48, 0x89, 0x5E, 0x72, 0x99, 0xB7,
+ 0x7A, 0xF8, 0x1F, 0x0A, 0xA4, 0xA7, 0x61, 0x8A,
+ 0xD2, 0x4B, 0x7A, 0xAF, 0xC8, 0xE3, 0xA2, 0xBE
+ },
+ {
+ 0x7D, 0x28, 0x6F, 0x1F, 0x72, 0x1E, 0xC2, 0xD2,
+ 0x11, 0x5E, 0xF4, 0xCC, 0xD8, 0x28, 0x58, 0xA4,
+ 0xD5, 0x12, 0x21, 0x13, 0x55, 0xD4, 0xFC, 0x58,
+ 0xE5, 0x34, 0xBF, 0xA5, 0x9C, 0x2E, 0x1B, 0xF5,
+ 0x52, 0xA9, 0x6D, 0xC4, 0xB3, 0xE4, 0x6B, 0x01,
+ 0x28, 0x65, 0xDA, 0x88, 0x13, 0x4C, 0xF0, 0x4E,
+ 0x73, 0x1B, 0x19, 0x30, 0x75, 0x9E, 0x15, 0x8F,
+ 0xF6, 0x20, 0xB6, 0xEC, 0x5A, 0xAF, 0xD0, 0x12
+ },
+ {
+ 0x21, 0x82, 0x6B, 0x95, 0x29, 0xC4, 0xBC, 0x51,
+ 0x91, 0x47, 0xF5, 0xF9, 0xFE, 0x6D, 0xB8, 0x78,
+ 0x34, 0x52, 0x15, 0xE5, 0x09, 0x4F, 0x4E, 0x99,
+ 0xB1, 0x31, 0xED, 0x54, 0xE2, 0x49, 0x53, 0xCE,
+ 0xE9, 0xAD, 0xB7, 0x18, 0xD1, 0x74, 0x3E, 0x6C,
+ 0x27, 0xFC, 0x94, 0x51, 0x6A, 0x99, 0x22, 0xFB,
+ 0x97, 0x5A, 0x78, 0x16, 0xB8, 0xAA, 0xB0, 0x21,
+ 0x12, 0x60, 0x8C, 0x03, 0x2B, 0xF1, 0x38, 0xE3
+ },
+ {
+ 0xC1, 0x68, 0x9C, 0x69, 0x8A, 0xB0, 0x65, 0xF6,
+ 0x2E, 0xEE, 0x65, 0xDD, 0xCA, 0x67, 0x6B, 0xAA,
+ 0x45, 0xB5, 0x2F, 0x30, 0x8A, 0xFA, 0x80, 0x4A,
+ 0xB4, 0xAA, 0x6A, 0xB8, 0x4B, 0x7A, 0xC1, 0xAA,
+ 0x1D, 0xFF, 0x07, 0x17, 0x56, 0x10, 0xB1, 0x2A,
+ 0xE1, 0x1F, 0x27, 0xB7, 0xC4, 0x30, 0xAF, 0xD5,
+ 0x75, 0x56, 0xBD, 0x18, 0x1D, 0x02, 0x83, 0x2C,
+ 0xD8, 0xD0, 0xA5, 0xFD, 0xC3, 0x02, 0x01, 0x24
+ },
+ {
+ 0xA1, 0xA6, 0x28, 0x17, 0x47, 0xE3, 0x4D, 0x3E,
+ 0xDE, 0x5E, 0x93, 0x34, 0x01, 0x74, 0x7C, 0xA7,
+ 0xF7, 0x66, 0x28, 0xB6, 0x14, 0xC8, 0xA3, 0x94,
+ 0xF5, 0x02, 0x56, 0x2B, 0xFE, 0xE0, 0xB9, 0x94,
+ 0xEC, 0xB6, 0x5F, 0xBF, 0xE1, 0xFF, 0x70, 0x67,
+ 0xDC, 0xB0, 0x1D, 0x02, 0xA9, 0x2B, 0xA4, 0x62,
+ 0x20, 0x75, 0x87, 0xCE, 0xF7, 0xDC, 0x2C, 0xFD,
+ 0xB4, 0x58, 0x48, 0x48, 0xAD, 0x55, 0x91, 0x4A
+ },
+ {
+ 0x00, 0x70, 0xA0, 0x19, 0x0A, 0xA6, 0x96, 0x57,
+ 0x2D, 0x85, 0x3F, 0x1D, 0x24, 0xAB, 0x63, 0x08,
+ 0x48, 0xAC, 0x56, 0xAD, 0x5C, 0x2E, 0xBF, 0xCF,
+ 0xDE, 0x27, 0xD1, 0x11, 0xCD, 0x55, 0x93, 0x9C,
+ 0x1E, 0x4D, 0x07, 0x87, 0x2D, 0xDE, 0x7C, 0xE7,
+ 0x8B, 0x53, 0x4B, 0x53, 0x0F, 0x0A, 0x39, 0x6E,
+ 0x86, 0xAF, 0x9D, 0x57, 0x53, 0x54, 0xB5, 0xD7,
+ 0xE3, 0x4A, 0xCD, 0xE1, 0x8C, 0xC7, 0x67, 0xAE
+ },
+ {
+ 0x51, 0xB9, 0xB5, 0xED, 0x19, 0x3F, 0xD4, 0xB1,
+ 0xA3, 0xA9, 0x2B, 0x46, 0xBD, 0x4B, 0xD1, 0xF6,
+ 0xEC, 0x6B, 0x38, 0xA6, 0x0F, 0x2D, 0x02, 0x61,
+ 0xD7, 0x2A, 0xBF, 0xD1, 0x64, 0x36, 0x12, 0x8D,
+ 0xCB, 0xF2, 0x2C, 0x25, 0xE3, 0xE3, 0xC4, 0x3F,
+ 0xE4, 0xD2, 0x9D, 0xB9, 0x12, 0x4D, 0x03, 0x33,
+ 0x30, 0x18, 0x45, 0x92, 0xD2, 0x0C, 0x5B, 0x08,
+ 0x2C, 0x23, 0x20, 0x64, 0x54, 0xCB, 0x3D, 0xD7
+ },
+ {
+ 0x57, 0x8F, 0x24, 0x27, 0x46, 0x91, 0x4E, 0x36,
+ 0xD0, 0xD9, 0xD4, 0x80, 0x96, 0x89, 0x57, 0x12,
+ 0x16, 0xA4, 0x3E, 0x47, 0x33, 0x32, 0x39, 0x51,
+ 0x62, 0x0F, 0x5E, 0xE7, 0x8C, 0xCF, 0xEE, 0x91,
+ 0x9B, 0xF5, 0x5F, 0x28, 0x7B, 0x45, 0xA7, 0x3D,
+ 0x44, 0x85, 0xAC, 0x74, 0x22, 0x87, 0x92, 0x39,
+ 0x65, 0x3B, 0x05, 0x91, 0xC3, 0x6C, 0x86, 0x69,
+ 0x41, 0xF8, 0xAF, 0xFE, 0x4A, 0xE5, 0x6E, 0x9E
+ },
+ {
+ 0x94, 0x71, 0x30, 0xEF, 0x0B, 0x94, 0x8E, 0xE0,
+ 0x45, 0x81, 0xAB, 0xA3, 0xE2, 0xCC, 0x4C, 0xEF,
+ 0xC3, 0x8C, 0xCE, 0xDC, 0x86, 0x17, 0x92, 0xB7,
+ 0xB5, 0xDC, 0xD9, 0xD9, 0x36, 0x1C, 0x72, 0x4A,
+ 0x12, 0x20, 0x03, 0xBF, 0x79, 0x6C, 0xE0, 0x97,
+ 0x98, 0x00, 0xAD, 0xAB, 0xC7, 0x45, 0x6F, 0x17,
+ 0x3A, 0xE5, 0x26, 0x93, 0x15, 0xAF, 0xC0, 0x1B,
+ 0x60, 0x6D, 0xB2, 0x9C, 0x75, 0x50, 0xE8, 0xCA
+ },
+ {
+ 0xC8, 0x52, 0xE6, 0x77, 0xF7, 0x7B, 0x14, 0xB5,
+ 0x85, 0xBD, 0x10, 0x2A, 0x0F, 0x14, 0x42, 0x43,
+ 0x05, 0x9D, 0xAB, 0xEC, 0x7C, 0xB0, 0x1F, 0xFA,
+ 0x61, 0xDF, 0x19, 0xFC, 0xE8, 0xAB, 0x43, 0x6B,
+ 0xF5, 0xE2, 0xD5, 0xC7, 0x9A, 0xA2, 0xD7, 0xB6,
+ 0x77, 0xF6, 0xC3, 0x75, 0xE9, 0x34, 0x3D, 0x34,
+ 0x2E, 0x4F, 0xF4, 0xE3, 0xAB, 0x00, 0x1B, 0xC7,
+ 0x98, 0x8C, 0x3C, 0x7A, 0x83, 0xCC, 0xB6, 0x9F
+ },
+ {
+ 0x01, 0x19, 0x75, 0x26, 0x91, 0x7A, 0xC2, 0xC7,
+ 0xBC, 0x53, 0x95, 0x19, 0xE6, 0x8B, 0xB2, 0x79,
+ 0x81, 0x35, 0xF6, 0x03, 0x3E, 0xD5, 0x8F, 0x5C,
+ 0x45, 0x1E, 0x0C, 0xE9, 0x46, 0xAF, 0xF0, 0xF9,
+ 0x8D, 0xFD, 0xD1, 0x51, 0x01, 0x73, 0x1A, 0xC1,
+ 0x66, 0x12, 0x6E, 0xAF, 0xB5, 0xE7, 0xCB, 0xE2,
+ 0xE2, 0x72, 0xEE, 0x23, 0x3F, 0x34, 0xE5, 0xF3,
+ 0xF8, 0xEA, 0x3D, 0x2D, 0x12, 0x24, 0x82, 0xFB
+ },
+ {
+ 0x05, 0x9C, 0x90, 0x85, 0x89, 0x5E, 0xB7, 0x18,
+ 0x30, 0x4E, 0x2D, 0xDA, 0x78, 0x68, 0x6B, 0xD9,
+ 0x57, 0x49, 0x81, 0x5A, 0x5E, 0xE9, 0x02, 0x51,
+ 0x0B, 0x00, 0x9A, 0xF6, 0x92, 0x48, 0xB6, 0xA7,
+ 0xA7, 0x2F, 0xF8, 0xA6, 0x28, 0xD8, 0x17, 0x73,
+ 0xE1, 0x1D, 0x5A, 0x1E, 0x7F, 0x69, 0x7A, 0x44,
+ 0x9B, 0x7A, 0x1E, 0x27, 0x12, 0xD5, 0xCF, 0xAE,
+ 0x7A, 0xB2, 0x65, 0x07, 0xD1, 0x11, 0x29, 0x18
+ },
+ {
+ 0x29, 0x52, 0x43, 0xBD, 0x75, 0x8C, 0xF2, 0x1C,
+ 0x80, 0x31, 0x25, 0xFC, 0xF3, 0x21, 0xDE, 0x5F,
+ 0x97, 0x98, 0x7C, 0x8D, 0xB3, 0xBB, 0x3C, 0xB5,
+ 0x1F, 0xF9, 0x7C, 0x4C, 0xDA, 0xC9, 0xD3, 0xBF,
+ 0x0A, 0x67, 0xCE, 0xE7, 0xED, 0x35, 0x0A, 0x41,
+ 0xFD, 0xE6, 0xAB, 0xCC, 0x25, 0x4F, 0xBC, 0x9F,
+ 0x8E, 0x6B, 0x3E, 0x3C, 0xCE, 0xCB, 0xD0, 0xE4,
+ 0xA6, 0x40, 0xA2, 0x0F, 0x36, 0x2B, 0xA3, 0xA0
+ },
+ {
+ 0xDD, 0x82, 0x32, 0xD2, 0x41, 0x2C, 0xCE, 0xEC,
+ 0xB5, 0x12, 0x31, 0x91, 0xF6, 0xE9, 0x22, 0x1E,
+ 0x85, 0x1E, 0xCC, 0xE0, 0xFA, 0xEB, 0xF0, 0x50,
+ 0x5F, 0x2A, 0xEE, 0xFF, 0x8A, 0x8C, 0x92, 0xD4,
+ 0x1D, 0xAC, 0xF1, 0x77, 0xBD, 0xAE, 0x27, 0x76,
+ 0x3E, 0xA4, 0xA8, 0x62, 0x05, 0xEF, 0x76, 0x34,
+ 0xF7, 0xA6, 0x87, 0xCC, 0x44, 0xBB, 0xBB, 0xDE,
+ 0xEE, 0x5E, 0x11, 0xE6, 0x5F, 0x9F, 0xBD, 0x69
+ },
+ {
+ 0xB0, 0x46, 0xB6, 0x83, 0x71, 0x6D, 0x31, 0xC9,
+ 0x14, 0xC7, 0x0B, 0x10, 0xF7, 0x64, 0x6D, 0xA3,
+ 0x1E, 0xFA, 0xB2, 0x23, 0x63, 0x47, 0x45, 0x9C,
+ 0xF8, 0xFA, 0x2C, 0x09, 0x12, 0x34, 0x31, 0xF7,
+ 0x28, 0x07, 0xF1, 0x1D, 0x86, 0x7C, 0x37, 0x70,
+ 0xB1, 0xF0, 0x61, 0xD5, 0x6C, 0xA0, 0xE5, 0xB1,
+ 0xE8, 0x8A, 0x6B, 0x44, 0xA3, 0x3C, 0xF9, 0x3E,
+ 0x18, 0xBC, 0xC9, 0xCE, 0xBB, 0xA5, 0xAD, 0xE7
+ },
+ {
+ 0x20, 0xE5, 0xA2, 0x55, 0x05, 0x8B, 0xE5, 0x1E,
+ 0x1A, 0x62, 0x9B, 0x4E, 0xBF, 0x81, 0xE5, 0xCB,
+ 0xE0, 0x78, 0x1C, 0xB6, 0x7C, 0xA4, 0xE5, 0x7B,
+ 0xA8, 0x6B, 0x30, 0x88, 0x96, 0xBC, 0xE7, 0x38,
+ 0x20, 0xEB, 0x08, 0x43, 0x1C, 0xE8, 0xC9, 0xBC,
+ 0x58, 0x10, 0xCC, 0x8D, 0x8B, 0x9C, 0x9D, 0x6F,
+ 0xCF, 0x83, 0x4E, 0x42, 0xEA, 0x33, 0xEF, 0x73,
+ 0xCE, 0xC4, 0x7D, 0x71, 0x3B, 0x6D, 0x8D, 0xFD
+ },
+ {
+ 0x1E, 0x48, 0x04, 0xF9, 0xC0, 0xB1, 0xE8, 0x2B,
+ 0x9E, 0xD3, 0x63, 0xBD, 0xE4, 0x47, 0x28, 0xAC,
+ 0xF7, 0xD0, 0x90, 0xA1, 0xBF, 0xE2, 0xDD, 0xF8,
+ 0x81, 0x9D, 0x65, 0x92, 0xEF, 0x45, 0x3B, 0x83,
+ 0x5B, 0xD2, 0xEF, 0xE8, 0xB0, 0x20, 0x6E, 0x29,
+ 0x25, 0x5B, 0x07, 0xFB, 0x90, 0xC7, 0xD3, 0x0D,
+ 0x2C, 0x11, 0x48, 0x00, 0xB8, 0x6C, 0xB0, 0xE3,
+ 0xE0, 0x7D, 0x38, 0x7E, 0x98, 0xCE, 0x95, 0x37
+ },
+ {
+ 0x41, 0xC9, 0x53, 0xD8, 0xD2, 0x2A, 0x86, 0xC3,
+ 0x63, 0x4D, 0xF4, 0x22, 0xB6, 0xDE, 0x4A, 0x4F,
+ 0x14, 0x96, 0x66, 0xBE, 0x8C, 0x4F, 0x58, 0x1B,
+ 0x26, 0x23, 0xEE, 0x65, 0xC3, 0x92, 0xA5, 0xC3,
+ 0x28, 0x36, 0x63, 0x9E, 0xF5, 0x6B, 0x93, 0x68,
+ 0x62, 0x20, 0xF4, 0x5C, 0xE6, 0x5B, 0x4F, 0xA8,
+ 0x58, 0x9C, 0x91, 0x25, 0x64, 0x17, 0x90, 0xB6,
+ 0x92, 0x5F, 0xAA, 0xD9, 0x48, 0xB8, 0xBE, 0x04
+ },
+ {
+ 0x8B, 0xFC, 0xA4, 0xC8, 0xDF, 0xE3, 0xFD, 0xE4,
+ 0x25, 0x7B, 0x75, 0xC3, 0xDB, 0x01, 0x86, 0x2E,
+ 0xD3, 0x11, 0x67, 0xDE, 0x66, 0xC2, 0xE0, 0x3A,
+ 0x25, 0x56, 0xC4, 0xF4, 0x6C, 0x9D, 0xFF, 0xC1,
+ 0xAC, 0x45, 0xF7, 0xBC, 0x59, 0xA6, 0x7A, 0xB9,
+ 0x36, 0x24, 0xBE, 0xB8, 0x6D, 0xDD, 0x0D, 0x02,
+ 0x60, 0x3F, 0x0D, 0xCD, 0x03, 0x64, 0xF0, 0xF8,
+ 0x08, 0x81, 0x9B, 0xE9, 0x6C, 0xD8, 0xD3, 0xB6
+ },
+ {
+ 0xF6, 0xBF, 0x59, 0xD8, 0xD4, 0x5A, 0x55, 0x71,
+ 0x11, 0xA2, 0x36, 0xCB, 0xBA, 0x52, 0x61, 0x9A,
+ 0xE3, 0xDF, 0xCC, 0x43, 0x16, 0x94, 0x38, 0x43,
+ 0xAF, 0xD1, 0x28, 0x1B, 0x28, 0x21, 0x4A, 0x4A,
+ 0x5E, 0x85, 0x1E, 0xF8, 0xC5, 0x4F, 0x50, 0x5E,
+ 0x3C, 0x4B, 0x60, 0x0E, 0xFF, 0xBE, 0xBB, 0x3E,
+ 0xAC, 0x17, 0x08, 0x7F, 0x22, 0x27, 0x58, 0x12,
+ 0x63, 0xF1, 0x7D, 0x7E, 0x5F, 0x68, 0xEA, 0x83
+ },
+ {
+ 0x1B, 0xC9, 0xED, 0xE4, 0xD4, 0x1A, 0x4D, 0xF6,
+ 0xE8, 0xE6, 0xF4, 0x7C, 0x2F, 0x4A, 0xD8, 0x73,
+ 0x37, 0xB6, 0x9B, 0x19, 0xF7, 0x10, 0xF7, 0x66,
+ 0xE1, 0xFA, 0xF5, 0xAA, 0x05, 0xA4, 0x3B, 0x66,
+ 0x45, 0x39, 0x6E, 0x7F, 0xBE, 0xF4, 0x3B, 0xB7,
+ 0x79, 0x5D, 0x39, 0x40, 0x7B, 0x58, 0x15, 0xB9,
+ 0x2E, 0xCC, 0x23, 0xA6, 0xC1, 0x24, 0x14, 0x21,
+ 0x15, 0x3A, 0x55, 0xD5, 0x1F, 0x12, 0xBF, 0xD8
+ },
+ {
+ 0x76, 0xB3, 0x8B, 0x36, 0x31, 0x55, 0x5D, 0xBC,
+ 0xFB, 0x21, 0x21, 0x8F, 0xF9, 0xE4, 0x12, 0xA2,
+ 0x29, 0x88, 0x9E, 0xF2, 0xCE, 0x8A, 0xD7, 0x05,
+ 0xE9, 0x0F, 0x96, 0xAA, 0xBB, 0xD5, 0xBE, 0x7E,
+ 0x53, 0x29, 0xA4, 0x26, 0x53, 0x4C, 0x81, 0x5A,
+ 0x56, 0x53, 0x77, 0x13, 0x18, 0x72, 0x66, 0x41,
+ 0x42, 0x4E, 0x3B, 0x88, 0x29, 0x2F, 0xB1, 0xD8,
+ 0x95, 0x44, 0x40, 0x6A, 0xDE, 0x9B, 0xCC, 0xB5
+ },
+ {
+ 0xE5, 0x3F, 0x60, 0x07, 0x40, 0x22, 0x4E, 0x4D,
+ 0x10, 0xD3, 0x1D, 0x24, 0x38, 0x00, 0x31, 0x43,
+ 0xAF, 0xDB, 0x43, 0x6E, 0xB1, 0x79, 0x1B, 0x15,
+ 0x0D, 0xE3, 0x56, 0x76, 0xF0, 0xE3, 0x2F, 0x80,
+ 0xB0, 0xB6, 0x5F, 0x0A, 0xCF, 0x48, 0x1A, 0x5F,
+ 0xBF, 0x95, 0x96, 0xC0, 0xCB, 0x0A, 0x27, 0xC7,
+ 0xAF, 0xC1, 0x1D, 0x1E, 0x2C, 0x4D, 0x54, 0x02,
+ 0x47, 0x5E, 0x4F, 0xFC, 0xC1, 0xCD, 0xA8, 0x11
+ },
+ {
+ 0x62, 0x06, 0xB9, 0x1F, 0xC0, 0xB6, 0xF1, 0x21,
+ 0x1E, 0x9F, 0xDE, 0xCD, 0xC9, 0xD5, 0x1A, 0x6F,
+ 0x1E, 0xEE, 0x65, 0x54, 0xB1, 0x38, 0xAD, 0xCD,
+ 0x4A, 0x82, 0x3D, 0xF0, 0x0D, 0xDE, 0xF6, 0x75,
+ 0x9A, 0x9B, 0xFD, 0x7A, 0x4E, 0x98, 0x1E, 0x04,
+ 0x52, 0x36, 0x83, 0x8F, 0x4A, 0xF6, 0x93, 0xF6,
+ 0x93, 0x77, 0x93, 0x14, 0x84, 0xB3, 0xE8, 0x1E,
+ 0x3E, 0x3B, 0xC2, 0xCB, 0x7E, 0xF7, 0x9F, 0xE9
+ },
+ {
+ 0x76, 0xFD, 0x02, 0xDA, 0xDD, 0x96, 0x3B, 0xC0,
+ 0x35, 0x39, 0x91, 0x46, 0xCE, 0x42, 0x98, 0x8C,
+ 0xC0, 0x99, 0xD3, 0xCF, 0x4D, 0x32, 0xDF, 0x5C,
+ 0x0B, 0xBF, 0x64, 0x10, 0x12, 0x46, 0xB1, 0xC7,
+ 0x08, 0xD1, 0x67, 0xE2, 0x95, 0x95, 0xD1, 0x1D,
+ 0x09, 0xB3, 0xF6, 0x34, 0x86, 0xB4, 0x05, 0x26,
+ 0xAC, 0x1D, 0xFE, 0x31, 0xBC, 0x22, 0xDE, 0xC7,
+ 0x0B, 0x74, 0x5E, 0x90, 0xE2, 0xEA, 0xAF, 0x5A
+ },
+ {
+ 0xF0, 0xA1, 0xFB, 0xE3, 0x11, 0x63, 0xE4, 0x21,
+ 0x01, 0x50, 0x72, 0x18, 0x3D, 0x68, 0xEE, 0x51,
+ 0x91, 0xA9, 0x9C, 0xFD, 0xA1, 0x69, 0xBA, 0x5A,
+ 0x19, 0x54, 0xC9, 0xF3, 0x10, 0x7D, 0x4E, 0xCA,
+ 0x06, 0x3E, 0x13, 0x7A, 0x71, 0x14, 0xD3, 0x97,
+ 0xC9, 0xDB, 0x67, 0x2B, 0x9F, 0x47, 0x8D, 0x41,
+ 0xC3, 0x4E, 0x99, 0x1B, 0x06, 0x69, 0xA9, 0x51,
+ 0x53, 0x92, 0x90, 0xC8, 0xED, 0x65, 0xE4, 0x6A
+ },
+ {
+ 0x13, 0xC7, 0x2A, 0x6A, 0xA5, 0x71, 0xB1, 0x43,
+ 0xDC, 0xCF, 0x45, 0xAD, 0xCD, 0x98, 0xEA, 0xE6,
+ 0x99, 0xA1, 0x54, 0xB1, 0x10, 0xF2, 0x5E, 0x7E,
+ 0x9E, 0x82, 0xB7, 0x65, 0xB9, 0xA0, 0x89, 0x23,
+ 0x68, 0x8E, 0x8E, 0x0F, 0xF3, 0x11, 0xA6, 0x8A,
+ 0x77, 0x1E, 0x14, 0x50, 0x96, 0xD6, 0x07, 0x76,
+ 0xC6, 0xD6, 0xEE, 0x70, 0xAD, 0x6F, 0x69, 0xFA,
+ 0x2B, 0x76, 0x77, 0x63, 0x40, 0x55, 0xA0, 0x0E
+ },
+ {
+ 0x0E, 0x06, 0x2B, 0xFE, 0x81, 0x8E, 0xE1, 0x0F,
+ 0x33, 0x48, 0x1D, 0xEA, 0x43, 0x02, 0x8B, 0x2C,
+ 0xFB, 0xB4, 0x9E, 0xC9, 0x5E, 0x0F, 0x75, 0xA9,
+ 0xE1, 0x6D, 0x40, 0x4B, 0xC5, 0x19, 0xB9, 0xAD,
+ 0x50, 0xB4, 0xA7, 0x33, 0x69, 0x2C, 0xA5, 0x4E,
+ 0xFB, 0x68, 0x04, 0x69, 0xED, 0x83, 0xDD, 0xEF,
+ 0xBD, 0xDD, 0xB1, 0x39, 0x04, 0x2E, 0x0E, 0x1C,
+ 0x09, 0xC3, 0xEB, 0x79, 0x03, 0xFA, 0x08, 0xDF
+ },
+ {
+ 0x45, 0x3B, 0xE4, 0xAA, 0xB9, 0xF4, 0x23, 0xB3,
+ 0x36, 0x52, 0xA0, 0xB5, 0xD0, 0x2A, 0x9A, 0xF8,
+ 0x55, 0xDD, 0x0D, 0x42, 0xDD, 0x83, 0x11, 0x0B,
+ 0xA3, 0xBC, 0x4B, 0x39, 0x94, 0xEA, 0x3F, 0x88,
+ 0x5A, 0x71, 0x30, 0x89, 0x75, 0x08, 0x9B, 0x49,
+ 0x03, 0xE2, 0xE4, 0xD6, 0xBA, 0x6D, 0xC2, 0xE8,
+ 0x40, 0x31, 0xFF, 0xE9, 0xC8, 0x56, 0x39, 0x75,
+ 0xC8, 0x61, 0x6A, 0xCA, 0x07, 0x42, 0xE8, 0x29
+ },
+ {
+ 0x53, 0x61, 0xE3, 0xE8, 0x93, 0xDD, 0x36, 0x0B,
+ 0xCB, 0xF5, 0x1C, 0x79, 0x3E, 0xC0, 0x92, 0xA6,
+ 0xB0, 0x52, 0x05, 0x4F, 0x5F, 0x00, 0x0B, 0x9F,
+ 0xCE, 0x50, 0x7B, 0x66, 0x45, 0xF8, 0xD4, 0x70,
+ 0x13, 0xA8, 0x70, 0x6A, 0x58, 0xD4, 0xB1, 0x06,
+ 0x29, 0xCC, 0x82, 0xB8, 0xD2, 0xD7, 0x96, 0xFD,
+ 0xD3, 0x7B, 0x60, 0x8A, 0x58, 0x79, 0x52, 0xD6,
+ 0x55, 0x3E, 0x01, 0xD1, 0xAF, 0x0E, 0x04, 0xB8
+ },
+ {
+ 0x74, 0xB5, 0x67, 0x39, 0xF0, 0x1F, 0x82, 0x09,
+ 0xA4, 0x04, 0x44, 0xDF, 0x4C, 0xCD, 0xEE, 0xEA,
+ 0x8F, 0x97, 0xE8, 0xE7, 0x6E, 0xFA, 0x3C, 0x04,
+ 0x33, 0x7F, 0x69, 0x94, 0x5C, 0x4D, 0x44, 0xC0,
+ 0x85, 0xF1, 0xF4, 0x78, 0x96, 0x96, 0x36, 0x1E,
+ 0x3C, 0x97, 0x77, 0x4A, 0x93, 0x5F, 0x86, 0x0D,
+ 0x67, 0x46, 0x86, 0xDC, 0xBA, 0x3D, 0x45, 0xEC,
+ 0xD8, 0x63, 0x9A, 0x64, 0xAE, 0xA0, 0x62, 0x1B
+ },
+ {
+ 0xB4, 0xD3, 0x15, 0x87, 0xB9, 0x2B, 0x53, 0x61,
+ 0xCD, 0xC2, 0xD3, 0xC4, 0x10, 0x86, 0xC1, 0x55,
+ 0x3E, 0x7B, 0x55, 0xA1, 0xF6, 0x1E, 0x94, 0xD2,
+ 0xBC, 0x30, 0xBC, 0x25, 0x1D, 0xAF, 0x8A, 0x5E,
+ 0xBF, 0xC5, 0x07, 0x09, 0xCC, 0x04, 0xCB, 0xAF,
+ 0x4B, 0x3B, 0x4D, 0xA2, 0xD2, 0x6B, 0x81, 0x23,
+ 0x8F, 0xBA, 0x71, 0x8F, 0xA9, 0x17, 0x59, 0xB8,
+ 0x0B, 0xD3, 0x10, 0x3A, 0xEC, 0x11, 0xE0, 0x6F
+ },
+ {
+ 0xAA, 0xF6, 0x12, 0x7F, 0x00, 0xA0, 0x3D, 0x96,
+ 0x40, 0x6B, 0x9F, 0xB4, 0xAC, 0x70, 0x16, 0x0D,
+ 0xB5, 0x22, 0x42, 0x9B, 0x5C, 0xD9, 0x4E, 0x7F,
+ 0xA0, 0x30, 0x3A, 0x74, 0x94, 0x78, 0xFE, 0x31,
+ 0x89, 0xC8, 0xEA, 0x23, 0x93, 0x0A, 0x66, 0x25,
+ 0x2A, 0x80, 0x26, 0x74, 0xDC, 0xAF, 0x77, 0x00,
+ 0x46, 0x82, 0x0D, 0xD9, 0x64, 0xC6, 0x6F, 0x0F,
+ 0x54, 0x75, 0x1A, 0x72, 0xF9, 0x7D, 0x9C, 0x35
+ },
+ {
+ 0x2C, 0x30, 0xD4, 0x8D, 0xF9, 0x98, 0x4E, 0x02,
+ 0xF7, 0x5A, 0x94, 0x54, 0x92, 0x17, 0x18, 0x4D,
+ 0xD0, 0x2A, 0xAD, 0x3B, 0x57, 0x68, 0x3D, 0x09,
+ 0xB5, 0xA8, 0xC2, 0xEF, 0x53, 0xA9, 0x6A, 0xFB,
+ 0x73, 0xFE, 0xB6, 0xF9, 0x14, 0xE2, 0xD8, 0x15,
+ 0xBB, 0x3B, 0x08, 0x65, 0x43, 0x32, 0xFC, 0xFE,
+ 0x79, 0xF8, 0x0E, 0xC5, 0xF0, 0x51, 0xDA, 0x10,
+ 0xD7, 0x21, 0x41, 0x3D, 0xDD, 0xE8, 0xFA, 0x60
+ },
+ {
+ 0x92, 0xE2, 0xC5, 0xF7, 0x5D, 0x0C, 0xEA, 0xFC,
+ 0x81, 0x8F, 0xA7, 0x93, 0x59, 0x39, 0xE4, 0x8B,
+ 0x91, 0x59, 0x41, 0xEF, 0x73, 0x4D, 0x75, 0x27,
+ 0x0E, 0xB3, 0x21, 0xBA, 0x20, 0x80, 0xEF, 0x6D,
+ 0x25, 0x5E, 0x90, 0xEF, 0x96, 0xC6, 0x4C, 0xFF,
+ 0x1D, 0x8C, 0x18, 0xF3, 0x3C, 0x2E, 0xAB, 0x10,
+ 0x7F, 0xEF, 0x53, 0xE0, 0xD8, 0xBB, 0x16, 0x05,
+ 0x16, 0x80, 0x74, 0x80, 0xFC, 0xBA, 0x53, 0x73
+ },
+ {
+ 0x6E, 0x03, 0xA9, 0x1E, 0x20, 0x44, 0x46, 0x27,
+ 0xE3, 0xD2, 0xE2, 0x22, 0x26, 0xCF, 0x47, 0x00,
+ 0x26, 0x69, 0x44, 0x34, 0xED, 0x64, 0x79, 0x82,
+ 0x8C, 0xB6, 0xDC, 0x8F, 0x27, 0x96, 0x0A, 0xEE,
+ 0xE2, 0xF4, 0xAB, 0x87, 0x2A, 0x5C, 0xA2, 0xF7,
+ 0xF6, 0x52, 0xF7, 0xDC, 0x77, 0xD5, 0xF9, 0x6D,
+ 0x85, 0x82, 0x8B, 0x8F, 0x9C, 0x2D, 0x6C, 0x23,
+ 0x9E, 0x79, 0x77, 0x24, 0xA1, 0x31, 0x31, 0xB1
+ },
+ {
+ 0xBA, 0x43, 0x2D, 0xB0, 0xA3, 0x31, 0xBB, 0x8C,
+ 0x39, 0xB1, 0x7B, 0xEE, 0x34, 0x46, 0x2B, 0x26,
+ 0xDD, 0xB7, 0xAD, 0x91, 0xB6, 0xC7, 0x5A, 0xEC,
+ 0x27, 0x65, 0xFB, 0xAE, 0x3A, 0x0E, 0x60, 0xEC,
+ 0x54, 0x6D, 0x45, 0xF8, 0xE5, 0x84, 0x37, 0xB9,
+ 0xD7, 0x7C, 0x3D, 0x2E, 0x8D, 0x7C, 0xE0, 0x69,
+ 0x73, 0x15, 0x66, 0x51, 0xD4, 0x08, 0x22, 0x2A,
+ 0xA2, 0x90, 0xCB, 0x58, 0xCA, 0xBC, 0x0A, 0xE5
+ },
+ {
+ 0x83, 0xA0, 0x1E, 0x23, 0xAB, 0x27, 0x7B, 0x1F,
+ 0xC2, 0x8C, 0xD8, 0xBB, 0x8D, 0xA7, 0xE9, 0x4C,
+ 0x70, 0xF1, 0xDE, 0xE3, 0x2D, 0x19, 0x55, 0xCE,
+ 0xE2, 0x50, 0xEE, 0x58, 0x41, 0x9A, 0x1F, 0xEE,
+ 0x10, 0xA8, 0x99, 0x17, 0x97, 0xCE, 0x3D, 0x20,
+ 0x93, 0x80, 0xCA, 0x9F, 0x98, 0x93, 0x39, 0xE2,
+ 0xD8, 0xA8, 0x1C, 0x67, 0xD7, 0x37, 0xD8, 0x28,
+ 0x8C, 0x7F, 0xAE, 0x46, 0x02, 0x83, 0x4A, 0x8B
+ },
+ {
+ 0x0E, 0xA3, 0x21, 0x72, 0xCC, 0x19, 0x1D, 0xFC,
+ 0x13, 0x1C, 0xD8, 0x8A, 0xA0, 0x3F, 0xF4, 0x18,
+ 0x5C, 0x0B, 0xFA, 0x7B, 0x19, 0x11, 0x12, 0x19,
+ 0xEE, 0xCB, 0x45, 0xB0, 0xFF, 0x60, 0x4D, 0x3E,
+ 0xDB, 0x00, 0x55, 0x0A, 0xBB, 0xA1, 0x11, 0x52,
+ 0x2B, 0x77, 0xAE, 0x61, 0xC9, 0xA8, 0xD6, 0xE9,
+ 0x4F, 0xCA, 0x9D, 0x96, 0xC3, 0x8D, 0x6B, 0x7C,
+ 0xCE, 0x27, 0x52, 0xF0, 0xD0, 0xC3, 0x7E, 0x78
+ },
+ {
+ 0x54, 0xAD, 0xD6, 0x55, 0x2B, 0x08, 0x85, 0x8B,
+ 0x23, 0xD6, 0x64, 0x5F, 0x6C, 0xE7, 0x9E, 0x92,
+ 0xF3, 0x8B, 0x66, 0xAE, 0x91, 0x86, 0x77, 0xE6,
+ 0xD9, 0x1F, 0x71, 0x87, 0xC4, 0x16, 0x05, 0x24,
+ 0xDF, 0xA8, 0xD0, 0x1F, 0x00, 0xEA, 0x93, 0xDD,
+ 0x29, 0x9F, 0x3C, 0xC4, 0x09, 0x01, 0xBD, 0x33,
+ 0x27, 0xA0, 0xF1, 0x8C, 0xCD, 0x7B, 0x6B, 0x8E,
+ 0x4E, 0x47, 0xCD, 0x28, 0xCF, 0x83, 0x8F, 0xAB
+ },
+ {
+ 0xEF, 0x84, 0x74, 0x6D, 0xC2, 0x01, 0x56, 0xB6,
+ 0x6B, 0xA5, 0xC7, 0x8A, 0x50, 0x83, 0x0A, 0xBD,
+ 0x2A, 0xEF, 0x90, 0xE6, 0x67, 0xB9, 0x7E, 0xB5,
+ 0x22, 0x91, 0xBC, 0x86, 0x9D, 0x8A, 0xA2, 0x45,
+ 0x59, 0xA1, 0x42, 0xC6, 0x8F, 0xEA, 0x2E, 0xF3,
+ 0x2A, 0xF2, 0x2D, 0xFC, 0xEA, 0x4C, 0x90, 0xB3,
+ 0xD4, 0x90, 0x8C, 0xC9, 0xEA, 0x5C, 0xFC, 0x4E,
+ 0x91, 0xBF, 0x11, 0xCE, 0x6A, 0x7E, 0x57, 0x61
+ },
+ {
+ 0x5A, 0x1B, 0xF3, 0x81, 0xA0, 0x41, 0x19, 0xF9,
+ 0x42, 0xE4, 0x63, 0xAB, 0xA2, 0xB1, 0x64, 0x38,
+ 0x82, 0x46, 0x8A, 0xEC, 0xC1, 0xB1, 0xAA, 0x1E,
+ 0x7B, 0xCA, 0xAB, 0x3B, 0x47, 0x8F, 0xC5, 0xF0,
+ 0x56, 0xF1, 0x0D, 0xA9, 0x03, 0x7D, 0x40, 0xFA,
+ 0x7F, 0x55, 0x70, 0x8E, 0x10, 0x3B, 0xDA, 0x96,
+ 0x5E, 0x92, 0x0C, 0xF6, 0x7C, 0xE3, 0xAD, 0xF7,
+ 0xE2, 0x00, 0xE8, 0x61, 0x01, 0x4D, 0xEC, 0xC6
+ },
+ {
+ 0xAC, 0xF7, 0x8A, 0xA3, 0x28, 0x45, 0x96, 0xF3,
+ 0x30, 0xB7, 0xE8, 0x47, 0x51, 0xB9, 0x4C, 0x31,
+ 0x4C, 0xD8, 0x36, 0x36, 0x27, 0xBA, 0x99, 0x78,
+ 0x81, 0x30, 0x85, 0x78, 0x87, 0x37, 0x59, 0x89,
+ 0x5D, 0x13, 0xDF, 0xFF, 0xA5, 0xE5, 0x74, 0x50,
+ 0x13, 0x61, 0xF0, 0x43, 0xC7, 0x4F, 0x57, 0xD2,
+ 0xD0, 0xF1, 0x5C, 0x7A, 0x41, 0xC7, 0xC4, 0x5E,
+ 0x3C, 0x09, 0xAD, 0x89, 0xD6, 0x99, 0xA9, 0x77
+ },
+ {
+ 0x18, 0xB3, 0xE9, 0x04, 0x38, 0x44, 0xD4, 0xF3,
+ 0xA2, 0xD0, 0x21, 0xF5, 0x4C, 0x38, 0xFA, 0xCC,
+ 0x36, 0x4F, 0x84, 0xBA, 0x10, 0x58, 0xF2, 0x10,
+ 0x09, 0xFC, 0x37, 0x1D, 0x2E, 0x4F, 0x38, 0xC7,
+ 0x27, 0x51, 0x8A, 0xAB, 0xA6, 0xA2, 0x9E, 0x0F,
+ 0xDA, 0xE6, 0xE7, 0x60, 0xA4, 0xF1, 0xA6, 0xD7,
+ 0x58, 0xEB, 0xE4, 0x2C, 0x2A, 0xFC, 0x9D, 0x2C,
+ 0xDC, 0x6D, 0xD5, 0x80, 0x77, 0x8C, 0x4B, 0x32
+ },
+ {
+ 0x18, 0x96, 0xB2, 0x31, 0x70, 0x33, 0xCF, 0x31,
+ 0x04, 0x68, 0x73, 0xD8, 0x7F, 0x26, 0xE6, 0xA4,
+ 0x2A, 0x9D, 0x77, 0x0B, 0xBA, 0xF6, 0xE0, 0x62,
+ 0xDF, 0x11, 0xF9, 0xB4, 0xA0, 0xEA, 0xB2, 0x75,
+ 0xAA, 0xB1, 0x2C, 0xAA, 0xC2, 0xD3, 0xF5, 0x29,
+ 0xEB, 0x20, 0xD0, 0x70, 0xFD, 0x84, 0x4D, 0x86,
+ 0xD0, 0xA5, 0x71, 0xCD, 0xF6, 0x28, 0x5F, 0x80,
+ 0xE2, 0x30, 0x8B, 0xB8, 0x2C, 0x6C, 0x5B, 0x3B
+ },
+ {
+ 0x8C, 0x3D, 0xC4, 0x01, 0x94, 0xAA, 0x02, 0x1F,
+ 0x3C, 0x4A, 0x1F, 0x9A, 0x05, 0x5E, 0x4D, 0x41,
+ 0x9E, 0xB3, 0xA2, 0x6D, 0x4C, 0x2F, 0x1A, 0x8C,
+ 0x7E, 0x18, 0x8B, 0x73, 0x48, 0x13, 0x40, 0x80,
+ 0xB6, 0x3F, 0x6E, 0x57, 0x0A, 0xD1, 0x1C, 0x28,
+ 0x78, 0x66, 0x53, 0x55, 0x41, 0x9C, 0x10, 0x20,
+ 0xDE, 0x4B, 0x65, 0x5E, 0x7A, 0x6C, 0x2C, 0xCD,
+ 0xE9, 0x07, 0x2C, 0xD4, 0x27, 0xFE, 0x8C, 0x4E
+ },
+ {
+ 0x70, 0xAE, 0x04, 0x30, 0xD5, 0x45, 0xEC, 0x42,
+ 0x7F, 0x85, 0x41, 0x21, 0x1D, 0x4F, 0xE0, 0x42,
+ 0xB9, 0x82, 0x3A, 0xCE, 0xC0, 0x4B, 0x15, 0xC9,
+ 0x0B, 0x7F, 0x4B, 0x8B, 0xDD, 0x3D, 0xC7, 0x85,
+ 0x19, 0x90, 0xF3, 0x70, 0xE7, 0x14, 0x16, 0x75,
+ 0x10, 0x66, 0x49, 0xD3, 0x91, 0x51, 0x09, 0x03,
+ 0x18, 0x23, 0x1E, 0x4D, 0xED, 0x51, 0x22, 0x5D,
+ 0x9A, 0x6F, 0xA6, 0xC4, 0x24, 0x69, 0x5D, 0xE2
+ },
+ {
+ 0x07, 0x33, 0x6C, 0x42, 0xBD, 0x51, 0x49, 0x0E,
+ 0xF8, 0x4D, 0xFB, 0xDF, 0xAB, 0x74, 0x66, 0xF6,
+ 0xB6, 0x39, 0x99, 0xA5, 0xC0, 0x88, 0x72, 0xDF,
+ 0xED, 0xA0, 0x20, 0x6F, 0xDA, 0x80, 0xB9, 0xA6,
+ 0x2D, 0xE7, 0x28, 0xE3, 0xE3, 0xC3, 0xFD, 0x6B,
+ 0x7D, 0x21, 0xA4, 0x38, 0xAA, 0xD1, 0xB8, 0xDD,
+ 0x22, 0x38, 0x63, 0xC0, 0xD2, 0x6A, 0xCA, 0x27,
+ 0x79, 0x01, 0x74, 0xD9, 0xD4, 0x42, 0xA6, 0x4C
+ },
+ {
+ 0x79, 0x26, 0x70, 0x88, 0x59, 0xE6, 0xE2, 0xAB,
+ 0x68, 0xF6, 0x04, 0xDA, 0x69, 0xA9, 0xFB, 0x50,
+ 0x87, 0xBB, 0x33, 0xF4, 0xE8, 0xD8, 0x95, 0x73,
+ 0x0E, 0x30, 0x1A, 0xB2, 0xD7, 0xDF, 0x74, 0x8B,
+ 0x67, 0xDF, 0x0B, 0x6B, 0x86, 0x22, 0xE5, 0x2D,
+ 0xD5, 0x7D, 0x8D, 0x3A, 0xD8, 0x7D, 0x58, 0x20,
+ 0xD4, 0xEC, 0xFD, 0x24, 0x17, 0x8B, 0x2D, 0x2B,
+ 0x78, 0xD6, 0x4F, 0x4F, 0xBD, 0x38, 0x75, 0x82
+ },
+ {
+ 0x92, 0x80, 0xF4, 0xD1, 0x15, 0x70, 0x32, 0xAB,
+ 0x31, 0x5C, 0x10, 0x0D, 0x63, 0x62, 0x83, 0xFB,
+ 0xF4, 0xFB, 0xA2, 0xFB, 0xAD, 0x0F, 0x8B, 0xC0,
+ 0x20, 0x72, 0x1D, 0x76, 0xBC, 0x1C, 0x89, 0x73,
+ 0xCE, 0xD2, 0x88, 0x71, 0xCC, 0x90, 0x7D, 0xAB,
+ 0x60, 0xE5, 0x97, 0x56, 0x98, 0x7B, 0x0E, 0x0F,
+ 0x86, 0x7F, 0xA2, 0xFE, 0x9D, 0x90, 0x41, 0xF2,
+ 0xC9, 0x61, 0x80, 0x74, 0xE4, 0x4F, 0xE5, 0xE9
+ },
+ {
+ 0x55, 0x30, 0xC2, 0xD5, 0x9F, 0x14, 0x48, 0x72,
+ 0xE9, 0x87, 0xE4, 0xE2, 0x58, 0xA7, 0xD8, 0xC3,
+ 0x8C, 0xE8, 0x44, 0xE2, 0xCC, 0x2E, 0xED, 0x94,
+ 0x0F, 0xFC, 0x68, 0x3B, 0x49, 0x88, 0x15, 0xE5,
+ 0x3A, 0xDB, 0x1F, 0xAA, 0xF5, 0x68, 0x94, 0x61,
+ 0x22, 0x80, 0x5A, 0xC3, 0xB8, 0xE2, 0xFE, 0xD4,
+ 0x35, 0xFE, 0xD6, 0x16, 0x2E, 0x76, 0xF5, 0x64,
+ 0xE5, 0x86, 0xBA, 0x46, 0x44, 0x24, 0xE8, 0x85
+ },
+ {
+ 0xDA, 0x85, 0x0A, 0x2F, 0x54, 0xE9, 0x44, 0x89,
+ 0x17, 0xD0, 0xDC, 0xAA, 0x63, 0x93, 0x7B, 0x95,
+ 0xA4, 0xDA, 0x1E, 0xAC, 0x8A, 0xF4, 0xDD, 0xF2,
+ 0x11, 0x3E, 0x5C, 0x8B, 0x0D, 0x4D, 0xB2, 0x66,
+ 0x9A, 0xF3, 0xC2, 0xAC, 0xB0, 0x80, 0x3D, 0x05,
+ 0x32, 0x3F, 0x3E, 0xC5, 0x5A, 0xBD, 0x33, 0xBD,
+ 0xF9, 0xB2, 0xBE, 0x89, 0x0E, 0xE7, 0x9E, 0x7F,
+ 0x3F, 0xCE, 0x4E, 0x19, 0x86, 0x96, 0xA7, 0xA3
+ },
+ {
+ 0xF1, 0x60, 0x95, 0xDD, 0x9F, 0x1E, 0xEB, 0x77,
+ 0xD5, 0xB9, 0x2F, 0x4B, 0x1F, 0xAC, 0x3A, 0x2C,
+ 0x5D, 0xA6, 0xAE, 0x5D, 0x0A, 0xB3, 0xF2, 0x54,
+ 0xE2, 0xA7, 0xFE, 0x52, 0x67, 0x24, 0x11, 0xD0,
+ 0x1C, 0xFA, 0x6A, 0xC0, 0x5B, 0xF3, 0x9E, 0xF6,
+ 0x5F, 0x4B, 0x22, 0x26, 0x4B, 0x41, 0xC3, 0xF3,
+ 0x63, 0x56, 0x3A, 0xBF, 0x0E, 0x92, 0x42, 0x90,
+ 0xC1, 0xC6, 0x80, 0xB1, 0x8A, 0xA6, 0x5B, 0x44
+ },
+ {
+ 0x76, 0xD0, 0x0A, 0x09, 0xC5, 0xBD, 0xD3, 0x9E,
+ 0xD3, 0x28, 0x71, 0x72, 0x2C, 0xFA, 0x00, 0x47,
+ 0x67, 0x4B, 0xEC, 0x8D, 0x35, 0x17, 0x5A, 0xF9,
+ 0x0D, 0x7A, 0xE9, 0x10, 0x74, 0x40, 0xA2, 0xA0,
+ 0x63, 0x88, 0x56, 0xD8, 0x38, 0x4C, 0x81, 0x7D,
+ 0x77, 0x2A, 0x4A, 0x59, 0x7A, 0x89, 0x55, 0x49,
+ 0xC8, 0x48, 0x66, 0x37, 0x56, 0x31, 0xCB, 0xA0,
+ 0x42, 0xF0, 0xEF, 0x6F, 0xFE, 0xB8, 0x9D, 0x44
+ },
+ {
+ 0xA6, 0x51, 0x13, 0x7B, 0x2C, 0x47, 0xFB, 0x79,
+ 0x51, 0xE7, 0xBD, 0xA7, 0x15, 0x43, 0xA6, 0xEB,
+ 0xC6, 0x24, 0x2A, 0xCA, 0xB4, 0x34, 0x7D, 0x38,
+ 0x8B, 0xE8, 0x35, 0x0F, 0x0C, 0x3F, 0xA3, 0xDF,
+ 0x8D, 0x95, 0x2C, 0x7C, 0x8A, 0x3D, 0xAF, 0x01,
+ 0xE0, 0x6C, 0x1D, 0xA6, 0x94, 0x96, 0xBB, 0xA8,
+ 0xDE, 0x62, 0xD8, 0x6B, 0x50, 0x93, 0x25, 0x6F,
+ 0x77, 0xA1, 0x87, 0xB5, 0x3D, 0xB0, 0x39, 0x88
+ },
+ {
+ 0xF3, 0x2F, 0x15, 0x0C, 0x2D, 0x67, 0xC0, 0xC4,
+ 0x37, 0x40, 0x1B, 0x70, 0xF6, 0x0B, 0x38, 0xF0,
+ 0xA3, 0xA4, 0x70, 0x59, 0x03, 0x3E, 0x75, 0x05,
+ 0xE6, 0x9A, 0x1D, 0x30, 0x12, 0x96, 0x03, 0x0B,
+ 0xC9, 0xB2, 0x95, 0x19, 0xC7, 0xF8, 0xB7, 0xD5,
+ 0x9A, 0x71, 0xFA, 0xB9, 0x05, 0x57, 0xDC, 0x3D,
+ 0xC8, 0x23, 0xFA, 0xC9, 0x5B, 0x9E, 0x85, 0xE6,
+ 0x52, 0x52, 0x8C, 0xBF, 0xB0, 0x1B, 0x11, 0x78
+ },
+ {
+ 0x27, 0x02, 0x56, 0x61, 0x36, 0xC4, 0x92, 0xF4,
+ 0x10, 0x89, 0xB0, 0x60, 0x10, 0x84, 0x60, 0xFA,
+ 0x30, 0x22, 0xC9, 0xC2, 0x5D, 0x34, 0x3B, 0xCB,
+ 0xD8, 0xAF, 0x2A, 0xF1, 0x9C, 0x17, 0xEF, 0x4C,
+ 0xA9, 0xF2, 0x22, 0x4F, 0xE7, 0xC4, 0x70, 0x0A,
+ 0x10, 0x19, 0x8E, 0xE5, 0x24, 0x8F, 0x30, 0x0B,
+ 0x54, 0x8E, 0xBF, 0x5C, 0x8E, 0x71, 0x16, 0x32,
+ 0x0C, 0xC8, 0x93, 0xFF, 0x7E, 0x23, 0x1F, 0xFB
+ },
+ {
+ 0xFF, 0xE6, 0x87, 0x9F, 0x46, 0xB6, 0x29, 0x2B,
+ 0x21, 0x96, 0x97, 0x2E, 0x3F, 0xDF, 0x4F, 0xE9,
+ 0xEA, 0x4A, 0x81, 0x6D, 0x18, 0x07, 0xA3, 0x1C,
+ 0xAE, 0xAD, 0x6A, 0xAC, 0x5F, 0x06, 0x3C, 0x8F,
+ 0xE8, 0x77, 0x79, 0x75, 0x59, 0xA7, 0x59, 0xA0,
+ 0x0F, 0x8B, 0xA8, 0xF6, 0x68, 0xD8, 0x96, 0x8F,
+ 0xB3, 0x1D, 0x8A, 0x3B, 0x84, 0x57, 0x35, 0x90,
+ 0x2C, 0x5E, 0x42, 0xE2, 0x89, 0xEE, 0x0B, 0x62
+ },
+ {
+ 0x14, 0x48, 0x84, 0x28, 0x68, 0x22, 0xC2, 0x51,
+ 0x2D, 0x61, 0xB0, 0x46, 0xE6, 0x74, 0xD8, 0x6B,
+ 0x26, 0x4E, 0x9C, 0xC6, 0x89, 0x3E, 0xFF, 0x36,
+ 0x73, 0x11, 0x24, 0xF5, 0x9D, 0x1A, 0x82, 0x00,
+ 0x1E, 0x63, 0xF3, 0xE8, 0x05, 0x1C, 0xFE, 0x52,
+ 0xE7, 0x59, 0x7E, 0x28, 0x73, 0x8E, 0x3C, 0x3A,
+ 0x70, 0xF1, 0xBE, 0xD9, 0x68, 0x0E, 0x2C, 0x0E,
+ 0xF3, 0x72, 0x8B, 0x10, 0xA5, 0x6E, 0xD9, 0x87
+ },
+ {
+ 0x17, 0xC3, 0xF1, 0x46, 0xEE, 0x8D, 0xEC, 0x3B,
+ 0xAF, 0xCB, 0x51, 0xC0, 0xDA, 0x37, 0xF1, 0x78,
+ 0x71, 0xF2, 0x34, 0xC4, 0xA0, 0xFB, 0x7F, 0xA6,
+ 0xD0, 0x70, 0x7A, 0x54, 0x3E, 0x3C, 0xBF, 0x3A,
+ 0xDB, 0x81, 0xE3, 0x0C, 0x1E, 0x0A, 0xE9, 0xE1,
+ 0xAC, 0xE7, 0x22, 0x3B, 0xDA, 0x99, 0xBD, 0x59,
+ 0x19, 0xA3, 0xCF, 0xCC, 0x92, 0xC6, 0xA7, 0x55,
+ 0xE4, 0x56, 0xF0, 0x93, 0x82, 0x3B, 0xD3, 0x3E
+ },
+ {
+ 0x1B, 0x83, 0x7A, 0xF2, 0x33, 0xA8, 0xA6, 0x8B,
+ 0xE7, 0x09, 0x52, 0xF7, 0x83, 0xC4, 0x96, 0x1A,
+ 0x81, 0x52, 0xD1, 0xE0, 0xB0, 0xFA, 0x32, 0x5F,
+ 0xF0, 0x86, 0xEA, 0x5B, 0x5F, 0x13, 0x12, 0xB8,
+ 0x9C, 0x42, 0xE0, 0x1B, 0x8C, 0x3A, 0x47, 0x7C,
+ 0xB5, 0x40, 0xC0, 0x6B, 0x2F, 0x37, 0xEE, 0x0E,
+ 0x39, 0x24, 0xD7, 0x45, 0xB4, 0xFF, 0x5C, 0x6A,
+ 0xF7, 0xD6, 0x1E, 0x0E, 0x37, 0xAC, 0x19, 0x31
+ },
+ {
+ 0x78, 0x97, 0x88, 0x0C, 0x1E, 0xB0, 0x0F, 0xD2,
+ 0x56, 0x7A, 0xE8, 0xA5, 0x9E, 0x64, 0x82, 0xAF,
+ 0xE1, 0x73, 0x49, 0xCF, 0x93, 0x92, 0x4A, 0x91,
+ 0x5F, 0x8C, 0x59, 0x26, 0x93, 0xD4, 0x52, 0x07,
+ 0x55, 0x19, 0x68, 0x9D, 0xFC, 0xD2, 0x93, 0xE3,
+ 0x76, 0x89, 0x7B, 0x3B, 0x0E, 0x03, 0x6F, 0x11,
+ 0x4F, 0xE8, 0x1E, 0xBC, 0xB3, 0x15, 0x36, 0x71,
+ 0xBD, 0x23, 0xBC, 0x2B, 0xED, 0x46, 0xF9, 0xC2
+ },
+ {
+ 0xCA, 0x7B, 0x6C, 0x77, 0x5D, 0x20, 0x1E, 0x5B,
+ 0x5A, 0x77, 0x22, 0x61, 0xDE, 0x52, 0x8E, 0x47,
+ 0x5F, 0x4B, 0xDE, 0x51, 0x76, 0x60, 0x52, 0x9F,
+ 0x41, 0xBE, 0xEB, 0x15, 0x78, 0xB2, 0x4B, 0xCB,
+ 0x94, 0xB9, 0x41, 0x0F, 0x9B, 0xF3, 0x36, 0xC1,
+ 0x09, 0xF9, 0xD4, 0x70, 0x93, 0xA1, 0x0B, 0xA6,
+ 0xDE, 0xBE, 0x50, 0x43, 0x80, 0xD9, 0xD1, 0x50,
+ 0x73, 0xBD, 0xD1, 0x11, 0xC8, 0xD1, 0x29, 0xFA
+ },
+ {
+ 0x57, 0x18, 0xE0, 0xD4, 0x5D, 0xEB, 0xC3, 0x00,
+ 0x2D, 0x52, 0xB2, 0x2C, 0x52, 0x73, 0x29, 0xAE,
+ 0x5E, 0xBF, 0x27, 0xE8, 0xFA, 0x9C, 0x8F, 0xEA,
+ 0xB4, 0x6C, 0x40, 0xBC, 0x64, 0x22, 0xCA, 0x03,
+ 0x35, 0x30, 0x4C, 0xF9, 0xE7, 0xF1, 0x41, 0xDE,
+ 0x7F, 0xA6, 0xAD, 0xB6, 0x78, 0x9B, 0xDB, 0xF3,
+ 0x8D, 0x14, 0xDA, 0xBA, 0x3E, 0x62, 0x97, 0xD2,
+ 0x5B, 0xF1, 0x7D, 0xE1, 0x70, 0xD6, 0xE3, 0xC8
+ },
+ {
+ 0x48, 0xD0, 0xED, 0x24, 0x9F, 0x90, 0x28, 0x41,
+ 0x99, 0x7C, 0x25, 0x5D, 0xAF, 0x99, 0x08, 0x9C,
+ 0x9A, 0x31, 0x24, 0x69, 0x8B, 0x16, 0x4A, 0x30,
+ 0x28, 0x33, 0x0F, 0xDD, 0x4C, 0xEE, 0x41, 0xE1,
+ 0x68, 0x3F, 0xA4, 0xD9, 0xDC, 0x66, 0xB2, 0xA7,
+ 0x9C, 0x8A, 0xA4, 0xC8, 0x28, 0x4E, 0x27, 0xBE,
+ 0xE2, 0xA4, 0x28, 0xA6, 0x71, 0x9D, 0x6E, 0xC6,
+ 0x55, 0xED, 0x76, 0x9D, 0xCB, 0x62, 0x4E, 0x24
+ },
+ {
+ 0x79, 0x4E, 0x0B, 0x64, 0xAC, 0xE1, 0xFE, 0x5A,
+ 0xE3, 0x79, 0x93, 0x70, 0x68, 0xD8, 0x2D, 0xF0,
+ 0x48, 0x68, 0x61, 0x6C, 0xAE, 0x0C, 0x17, 0xD3,
+ 0x05, 0x72, 0xC2, 0x02, 0x4E, 0x77, 0x48, 0x94,
+ 0xE0, 0x66, 0x8C, 0x47, 0x2D, 0x62, 0x3C, 0x90,
+ 0x3C, 0xC5, 0x88, 0x5F, 0x17, 0x84, 0x94, 0x51,
+ 0x10, 0x32, 0x9E, 0xB4, 0x98, 0xA8, 0x95, 0xA9,
+ 0xE5, 0x9A, 0x75, 0xE5, 0x27, 0x15, 0x8A, 0x5C
+ },
+ {
+ 0x21, 0x79, 0xAA, 0x82, 0x0E, 0x03, 0xFA, 0x33,
+ 0xD9, 0xBD, 0xE5, 0x56, 0x8C, 0x26, 0x2E, 0x2D,
+ 0x34, 0x17, 0xA4, 0x02, 0xE0, 0x7A, 0x59, 0x1F,
+ 0x9D, 0x55, 0x70, 0x68, 0x2D, 0xB5, 0xF9, 0xBB,
+ 0xA4, 0xBB, 0x9D, 0x5A, 0x82, 0xEE, 0x5E, 0xFD,
+ 0xB4, 0xF6, 0x5B, 0xBB, 0xFE, 0xEE, 0x2F, 0x4A,
+ 0xB9, 0xE4, 0x6C, 0xF2, 0xCE, 0x7E, 0x3B, 0x05,
+ 0x43, 0x27, 0xA7, 0x18, 0xD3, 0xF1, 0x08, 0x06
+ },
+ {
+ 0xB0, 0xA4, 0x8C, 0x6A, 0xDA, 0x54, 0x87, 0x25,
+ 0x79, 0x9B, 0x59, 0x86, 0xBA, 0xB4, 0x32, 0x69,
+ 0x79, 0x60, 0x92, 0x24, 0xD8, 0x97, 0x18, 0x4B,
+ 0x89, 0x97, 0x10, 0x4E, 0x0C, 0x6A, 0x24, 0xB3,
+ 0xAB, 0xE5, 0x62, 0x16, 0x54, 0x22, 0xA4, 0x5D,
+ 0x8A, 0xC8, 0x19, 0xB9, 0x9D, 0x37, 0x56, 0xEB,
+ 0xBB, 0x64, 0xF8, 0x43, 0xE3, 0xE0, 0x93, 0x4D,
+ 0xEC, 0x48, 0x7A, 0xED, 0x12, 0x13, 0x72, 0x79
+ },
+ {
+ 0x84, 0x8D, 0x7F, 0x2E, 0xAD, 0x41, 0x29, 0x1D,
+ 0x05, 0x38, 0x68, 0x0C, 0x64, 0x9D, 0x07, 0x89,
+ 0x7E, 0x45, 0xC7, 0x0A, 0x0A, 0xA4, 0xF9, 0x35,
+ 0x3F, 0x82, 0xC3, 0xF6, 0xFB, 0xB8, 0xE8, 0x48,
+ 0x9C, 0x75, 0x3E, 0x90, 0xDB, 0xE8, 0x89, 0x00,
+ 0x41, 0xA1, 0xAE, 0xEF, 0x84, 0xCD, 0x31, 0x36,
+ 0x43, 0x4F, 0x53, 0x0E, 0x9D, 0xD9, 0xC2, 0x3F,
+ 0xA5, 0x4F, 0xE1, 0x24, 0xEA, 0xFB, 0x72, 0xAD
+ },
+ {
+ 0x0E, 0xD1, 0x46, 0x26, 0xEE, 0x6D, 0x0C, 0x8E,
+ 0xD3, 0xF0, 0xC2, 0x00, 0xC1, 0x29, 0x85, 0x0F,
+ 0xFF, 0x76, 0x31, 0x8F, 0xFF, 0xA1, 0xDD, 0xD7,
+ 0xDD, 0x56, 0x3A, 0x01, 0xB7, 0x77, 0x97, 0x06,
+ 0x86, 0x2B, 0x23, 0x99, 0x59, 0xB6, 0x15, 0xAE,
+ 0x2E, 0xBE, 0x27, 0xC4, 0x50, 0x37, 0xE6, 0xFF,
+ 0xAF, 0x99, 0x14, 0xDA, 0x8F, 0xF2, 0x77, 0x2B,
+ 0xA5, 0xEE, 0x08, 0x11, 0xCD, 0x9E, 0xD5, 0x32
+ },
+ {
+ 0x52, 0x03, 0xC0, 0x76, 0x38, 0xC4, 0xB6, 0x5F,
+ 0x78, 0x43, 0x1E, 0x8B, 0x02, 0xE2, 0x0F, 0x6D,
+ 0x68, 0x3F, 0x19, 0xFA, 0x8F, 0x83, 0xB5, 0x13,
+ 0x4C, 0xD0, 0xF4, 0xE4, 0x68, 0xC9, 0x7E, 0xAC,
+ 0xB5, 0x26, 0x7C, 0x7D, 0x3E, 0xAB, 0x58, 0x3C,
+ 0xCA, 0xAC, 0xD0, 0xDB, 0xA4, 0xD5, 0x8A, 0xCE,
+ 0x52, 0x19, 0x3A, 0x51, 0x78, 0xA7, 0xB1, 0x2D,
+ 0x27, 0x95, 0xF5, 0xFD, 0xE8, 0xA3, 0x7B, 0xB9
+ },
+ {
+ 0x48, 0xBE, 0x43, 0xD5, 0xE0, 0x04, 0x36, 0x88,
+ 0xDF, 0x35, 0x32, 0xF7, 0x12, 0x1A, 0xFF, 0xFA,
+ 0x16, 0x7D, 0xAB, 0xE4, 0xA4, 0x84, 0xFB, 0x75,
+ 0xA0, 0x3A, 0xF3, 0x04, 0xA5, 0xC6, 0xF8, 0x25,
+ 0xF3, 0x6C, 0xEC, 0xCB, 0xBB, 0xC0, 0x75, 0xEE,
+ 0xF3, 0x20, 0xC4, 0xCD, 0x8D, 0x7E, 0xF8, 0xCB,
+ 0x49, 0xE6, 0xDD, 0x59, 0x73, 0x37, 0x9E, 0xEC,
+ 0x4C, 0x23, 0x3C, 0x45, 0x43, 0xD1, 0x32, 0xCE
+ },
+ {
+ 0xB5, 0x46, 0x4E, 0x6A, 0xBA, 0xF5, 0xD3, 0xD4,
+ 0x08, 0x3D, 0x1D, 0x7D, 0x2A, 0x8B, 0x0B, 0xAB,
+ 0x78, 0xB6, 0x17, 0x09, 0x50, 0x0B, 0xBF, 0x77,
+ 0x82, 0x3F, 0x60, 0x2D, 0x57, 0xD5, 0x13, 0xCA,
+ 0x9E, 0x9F, 0xFF, 0x65, 0xEF, 0xAA, 0x89, 0x9C,
+ 0xFE, 0x7B, 0xF8, 0x8A, 0x01, 0x88, 0x82, 0x9C,
+ 0x24, 0xE4, 0x98, 0xAD, 0x00, 0x23, 0x5A, 0xBE,
+ 0x8E, 0xEF, 0xA7, 0x19, 0xFA, 0x6A, 0xE6, 0xF6
+ },
+ {
+ 0xAF, 0xE5, 0xE5, 0xE8, 0x3F, 0x19, 0xAD, 0xAD,
+ 0x9E, 0x95, 0x90, 0x3E, 0xA9, 0xB2, 0x98, 0x10,
+ 0x7D, 0x37, 0xDD, 0x38, 0x63, 0x2C, 0x95, 0x90,
+ 0xBB, 0xFF, 0xC6, 0x24, 0xD4, 0xDE, 0x95, 0x8C,
+ 0xB6, 0xB6, 0x1A, 0xF0, 0x80, 0xF0, 0x37, 0xAD,
+ 0x17, 0xD0, 0x35, 0xB6, 0xBF, 0x58, 0xF7, 0x80,
+ 0xFA, 0xDF, 0x70, 0xF3, 0xC9, 0x59, 0x66, 0x8A,
+ 0x1B, 0x47, 0x21, 0x98, 0xA5, 0x9A, 0x8A, 0x00
+ },
+ {
+ 0xEF, 0xA2, 0xC7, 0xC8, 0x02, 0xE2, 0x10, 0xD2,
+ 0xD8, 0x0F, 0xB3, 0x50, 0xB3, 0xC2, 0xCB, 0x31,
+ 0x56, 0x13, 0x18, 0x11, 0xE7, 0x18, 0xEE, 0xE5,
+ 0xC9, 0xC6, 0x64, 0x0F, 0x87, 0x68, 0x2A, 0x55,
+ 0x81, 0x2B, 0x10, 0xF4, 0x03, 0x10, 0xBA, 0xA7,
+ 0xB8, 0x2B, 0x27, 0x3E, 0xF3, 0xAC, 0xC5, 0x5F,
+ 0xED, 0xE0, 0xB5, 0xF1, 0x94, 0x9D, 0xE4, 0x29,
+ 0x3D, 0x91, 0xB5, 0x89, 0xA2, 0x17, 0x5F, 0xF7
+ },
+ {
+ 0xD6, 0xC6, 0x2A, 0x61, 0x82, 0x71, 0xF3, 0xBC,
+ 0xBE, 0x00, 0x79, 0x24, 0xA0, 0xC9, 0x81, 0x2F,
+ 0x83, 0x17, 0x44, 0x5F, 0xB6, 0xFB, 0x19, 0xEB,
+ 0x58, 0x9A, 0x62, 0x9F, 0x51, 0x2F, 0xB3, 0x8A,
+ 0x0B, 0x4E, 0x24, 0x7D, 0xEA, 0x88, 0xC5, 0x6A,
+ 0x1B, 0xAF, 0x17, 0x88, 0x33, 0x65, 0xB4, 0x36,
+ 0xF2, 0x84, 0x46, 0xFF, 0x66, 0xEA, 0x43, 0x18,
+ 0x0B, 0xD0, 0x1E, 0xB5, 0xA6, 0x50, 0x9B, 0xD5
+ },
+ {
+ 0x0B, 0x41, 0x16, 0x6B, 0xE6, 0x2F, 0x65, 0xE1,
+ 0x93, 0xB3, 0xB8, 0x65, 0xE6, 0xC4, 0x7A, 0xAD,
+ 0x26, 0x0A, 0xF5, 0xFC, 0xEE, 0xC9, 0xAB, 0x44,
+ 0xAB, 0xAA, 0x46, 0x0A, 0x0C, 0x02, 0x46, 0xB6,
+ 0xC6, 0x9B, 0x67, 0xD7, 0x1D, 0x3A, 0xDF, 0xEC,
+ 0x60, 0xDC, 0x8E, 0x77, 0x37, 0x2F, 0x09, 0x49,
+ 0x52, 0x34, 0x4F, 0xE1, 0x0C, 0x0D, 0x59, 0xEF,
+ 0xEC, 0x0E, 0x11, 0xC4, 0xA5, 0x16, 0x93, 0x6D
+ },
+ {
+ 0x79, 0xD5, 0xF9, 0xFF, 0xC0, 0x5E, 0xCF, 0x33,
+ 0x7D, 0xE9, 0xF1, 0xE0, 0xF1, 0xD8, 0x9B, 0x30,
+ 0xAC, 0xFE, 0xBB, 0xB8, 0x8A, 0x69, 0x35, 0x86,
+ 0x78, 0x18, 0xCD, 0x8D, 0x45, 0xDA, 0x3D, 0x25,
+ 0x18, 0xDE, 0x61, 0xA7, 0xFE, 0x28, 0x75, 0x1B,
+ 0x61, 0x8F, 0x7A, 0x87, 0x5E, 0x11, 0x89, 0x8F,
+ 0xFF, 0x74, 0x15, 0x7A, 0xB9, 0x06, 0x81, 0xBD,
+ 0x53, 0xFA, 0x69, 0x62, 0x67, 0x1E, 0xD9, 0x9D
+ },
+ {
+ 0xBE, 0xA9, 0x83, 0xD7, 0x6F, 0x24, 0xB1, 0xEE,
+ 0xDE, 0x1D, 0x06, 0x71, 0x48, 0x05, 0x76, 0x8F,
+ 0xAA, 0xAD, 0x47, 0x08, 0xC9, 0xA4, 0xFF, 0x9C,
+ 0xD2, 0x42, 0x2F, 0x70, 0x6B, 0x6F, 0x0C, 0x30,
+ 0x6D, 0x8B, 0x67, 0xF3, 0x40, 0x89, 0xC6, 0x5E,
+ 0xD3, 0x88, 0x0C, 0x75, 0xF6, 0x7B, 0xBC, 0x4D,
+ 0x89, 0xAD, 0x87, 0x12, 0x0A, 0x77, 0xD0, 0xFF,
+ 0xE4, 0x36, 0xFB, 0x7B, 0x58, 0xB2, 0xCA, 0x41
+ },
+ {
+ 0x46, 0x6F, 0xD9, 0x15, 0xEF, 0xD9, 0x50, 0xBC,
+ 0x96, 0x65, 0x78, 0xCD, 0x92, 0xC6, 0x85, 0x92,
+ 0x9D, 0x7B, 0x51, 0xA6, 0x3D, 0xB1, 0x42, 0xC7,
+ 0xB9, 0xA9, 0x3D, 0x16, 0x52, 0x04, 0x95, 0x31,
+ 0x9B, 0x87, 0xF6, 0x58, 0xE6, 0xAF, 0xDA, 0x1B,
+ 0x42, 0x77, 0x3E, 0x2D, 0x49, 0xDA, 0x81, 0x45,
+ 0x94, 0xA5, 0x54, 0x90, 0x89, 0xEF, 0xB1, 0xF3,
+ 0xAB, 0x5F, 0x15, 0x90, 0xCA, 0x0A, 0x02, 0xAF
+ },
+ {
+ 0xF6, 0x46, 0x11, 0x13, 0x7A, 0xD2, 0x95, 0x46,
+ 0x70, 0xEA, 0xEC, 0xD6, 0x26, 0xD2, 0x12, 0xCF,
+ 0xC5, 0xB9, 0xF6, 0xBB, 0x41, 0xAA, 0xEB, 0xB1,
+ 0xD7, 0x1E, 0x89, 0x79, 0x2E, 0xB1, 0x31, 0x7A,
+ 0xED, 0xC6, 0x38, 0x13, 0xFE, 0x63, 0xDE, 0x40,
+ 0x17, 0x98, 0xDF, 0x75, 0x6C, 0xA1, 0xF2, 0x20,
+ 0x35, 0xA0, 0xFA, 0xBD, 0x37, 0xFB, 0x11, 0x03,
+ 0x43, 0x7F, 0x89, 0x1E, 0xAD, 0x5E, 0x64, 0x29
+ },
+ {
+ 0x32, 0xE1, 0xF9, 0x38, 0xA2, 0x7F, 0xAA, 0xD8,
+ 0xAC, 0x4A, 0x13, 0xFD, 0x4F, 0x6A, 0x8B, 0xF3,
+ 0xDA, 0xBE, 0x4B, 0xC7, 0x2A, 0xF1, 0x1C, 0x8F,
+ 0x0E, 0x1A, 0x06, 0x56, 0x7E, 0xD7, 0x04, 0xB8,
+ 0xE7, 0x8E, 0x11, 0x40, 0xA0, 0xC7, 0x72, 0x4E,
+ 0x3E, 0xFB, 0x70, 0xD2, 0x38, 0x07, 0xCF, 0x38,
+ 0xE6, 0x27, 0xE3, 0x26, 0xAF, 0xC1, 0x64, 0xCD,
+ 0xED, 0x52, 0xB4, 0x41, 0x39, 0xFF, 0xB3, 0xF3
+ },
+ {
+ 0x48, 0x33, 0xAC, 0x92, 0xE3, 0x02, 0xAC, 0x2B,
+ 0x67, 0xB0, 0x2B, 0x88, 0x27, 0x14, 0x3B, 0xAD,
+ 0xA1, 0x5C, 0xED, 0x22, 0x0E, 0x1D, 0x1F, 0x5B,
+ 0x71, 0x12, 0x0C, 0x51, 0xEE, 0x54, 0xC1, 0x9D,
+ 0x30, 0x1F, 0x29, 0x60, 0xBD, 0xB5, 0xA2, 0xCE,
+ 0x27, 0xD4, 0x41, 0xD1, 0x4A, 0xF0, 0x80, 0xCB,
+ 0x01, 0x0A, 0x8A, 0x23, 0xEE, 0xFF, 0x58, 0x11,
+ 0xDF, 0xA4, 0x4D, 0x1D, 0x7B, 0x35, 0x8B, 0x48
+ },
+ {
+ 0x9A, 0x03, 0x88, 0xCE, 0xE1, 0xAD, 0x01, 0x46,
+ 0x17, 0x7C, 0x48, 0xB5, 0xA0, 0x8A, 0x2D, 0xB3,
+ 0xC4, 0x89, 0xE8, 0x4C, 0xE2, 0xAB, 0xA8, 0xC6,
+ 0x45, 0x11, 0x2A, 0x02, 0x1E, 0x41, 0x1C, 0xF8,
+ 0x29, 0x12, 0x7F, 0xA2, 0xF1, 0xD1, 0xAE, 0x1B,
+ 0xAF, 0x3A, 0x33, 0xEA, 0x53, 0x09, 0x84, 0x77,
+ 0xA7, 0xD1, 0x2B, 0xA7, 0x48, 0xD2, 0xAF, 0x24,
+ 0xD1, 0x66, 0x02, 0xE9, 0x19, 0x07, 0x76, 0x23
+ },
+ {
+ 0xE3, 0xDF, 0x00, 0x74, 0xA9, 0x37, 0x35, 0x13,
+ 0x0D, 0x99, 0x22, 0xD2, 0xBE, 0x91, 0x6F, 0x35,
+ 0x34, 0x3D, 0x98, 0x8C, 0xE5, 0x9D, 0x76, 0x97,
+ 0x15, 0xA9, 0x83, 0xB4, 0xBA, 0x80, 0x7C, 0xE1,
+ 0xEE, 0x70, 0xA3, 0x13, 0xE5, 0x92, 0x31, 0x58,
+ 0x4F, 0x55, 0x6E, 0xBB, 0xA1, 0xB9, 0x0B, 0x1B,
+ 0xB6, 0xA6, 0xC5, 0x81, 0xA4, 0xB4, 0x7C, 0x3F,
+ 0xF5, 0x21, 0x89, 0x65, 0x2A, 0xAB, 0x36, 0xF5
+ },
+ {
+ 0x91, 0x91, 0xCF, 0x46, 0x1B, 0x69, 0x59, 0xBE,
+ 0xC9, 0x3E, 0xAE, 0x7F, 0xB1, 0xC6, 0xE3, 0x70,
+ 0x73, 0xD1, 0xA6, 0x15, 0x27, 0xAD, 0x75, 0xD1,
+ 0x0B, 0x7F, 0x89, 0x49, 0xD9, 0xB8, 0xAF, 0x70,
+ 0xA2, 0x3A, 0xD1, 0x31, 0x2E, 0xD5, 0x1F, 0x70,
+ 0xF0, 0xE9, 0xDF, 0x60, 0x1D, 0xDA, 0xE2, 0x38,
+ 0x90, 0x6C, 0x0F, 0xE3, 0xF7, 0x66, 0xB1, 0x4F,
+ 0x11, 0x3B, 0x26, 0xBC, 0x85, 0x42, 0xD1, 0xD2
+ },
+ {
+ 0x2A, 0x8B, 0xAD, 0xE2, 0x72, 0xEE, 0x7A, 0xC6,
+ 0x43, 0xC5, 0xE3, 0x71, 0x47, 0xFA, 0xAC, 0x92,
+ 0xC3, 0x97, 0x0B, 0xD3, 0x86, 0x2F, 0x53, 0x1E,
+ 0x5D, 0xCE, 0xA5, 0xCE, 0xAC, 0xD1, 0x83, 0x74,
+ 0x53, 0xAA, 0x49, 0x8D, 0x78, 0x5B, 0x4D, 0x1F,
+ 0x89, 0xE1, 0xB2, 0xA7, 0x39, 0xCA, 0x4A, 0x38,
+ 0x49, 0x87, 0x30, 0x27, 0x46, 0xB4, 0xF1, 0x13,
+ 0x42, 0x43, 0x02, 0xC4, 0xA1, 0xE0, 0xF9, 0xDF
+ },
+ {
+ 0x32, 0x3E, 0x67, 0x93, 0xC7, 0xDD, 0x9B, 0x4D,
+ 0x7B, 0xB7, 0xFB, 0xF2, 0x15, 0x31, 0xD3, 0x7F,
+ 0x72, 0x64, 0x53, 0x2C, 0x58, 0xF1, 0x22, 0x55,
+ 0x48, 0xD0, 0x6E, 0x69, 0x40, 0xC6, 0x3E, 0x91,
+ 0x27, 0x09, 0x90, 0xE7, 0xF5, 0x64, 0x32, 0x03,
+ 0xC9, 0x87, 0x64, 0x7E, 0x5C, 0xF6, 0x61, 0x03,
+ 0xE7, 0x9B, 0x71, 0x4C, 0x58, 0x1B, 0xD8, 0x77,
+ 0x2E, 0x19, 0xD0, 0xF0, 0x05, 0xDC, 0x86, 0x33
+ },
+ {
+ 0xF9, 0x22, 0x07, 0x6D, 0x29, 0x5D, 0x23, 0xE2,
+ 0x98, 0x58, 0x30, 0xAA, 0xD2, 0xF2, 0x3F, 0x65,
+ 0x2F, 0x7F, 0x4D, 0xB4, 0x2C, 0x11, 0x9E, 0xD2,
+ 0x20, 0xA5, 0x45, 0x14, 0x88, 0xA4, 0x53, 0xF5,
+ 0x9F, 0xA8, 0xA2, 0xDE, 0x23, 0x03, 0x00, 0x0D,
+ 0x6B, 0xFD, 0x8C, 0x48, 0x23, 0xA8, 0x5F, 0xAD,
+ 0xB4, 0xFB, 0x8E, 0x7E, 0xAC, 0x12, 0x2B, 0xF0,
+ 0x12, 0x47, 0xD7, 0x6F, 0x65, 0x24, 0x7D, 0x45
+ },
+ {
+ 0xDC, 0x40, 0x00, 0x95, 0x60, 0x95, 0x92, 0x91,
+ 0x55, 0x8E, 0xBE, 0x07, 0x20, 0x64, 0xCE, 0x67,
+ 0x12, 0xC9, 0x21, 0xB5, 0x40, 0x9B, 0x44, 0xE0,
+ 0x4F, 0x9A, 0x56, 0x5E, 0xEA, 0xDD, 0x39, 0xA7,
+ 0x71, 0x6E, 0x21, 0xB4, 0x6D, 0xD8, 0x61, 0x65,
+ 0x17, 0xA2, 0x1A, 0x0C, 0x03, 0x41, 0x9E, 0x94,
+ 0xDB, 0x82, 0x0A, 0x35, 0x3F, 0x15, 0x2D, 0x10,
+ 0x83, 0x84, 0xBE, 0x94, 0x70, 0x09, 0x3F, 0x89
+ },
+ {
+ 0x7F, 0xA4, 0xBE, 0x91, 0xCA, 0x52, 0x07, 0xFF,
+ 0x08, 0x7D, 0xE9, 0x2F, 0x1D, 0xB0, 0x9B, 0xF7,
+ 0x1A, 0x67, 0x87, 0x8B, 0xED, 0x19, 0x3A, 0x5C,
+ 0x2C, 0xC4, 0xE3, 0x53, 0x23, 0xB8, 0xDF, 0x99,
+ 0xA2, 0x6E, 0xCB, 0x98, 0x88, 0xD7, 0xB3, 0x4A,
+ 0x73, 0x9D, 0x64, 0x1A, 0x0E, 0xCD, 0x0A, 0x66,
+ 0x47, 0xA6, 0xA0, 0x64, 0x26, 0xF3, 0xCC, 0x1F,
+ 0xEF, 0xDF, 0x90, 0x69, 0x92, 0x2F, 0xAE, 0x4C
+ },
+ {
+ 0xBA, 0xD3, 0xCD, 0x75, 0x90, 0x5D, 0x7B, 0xFD,
+ 0xA3, 0x32, 0x2B, 0x44, 0xA7, 0xD3, 0x58, 0x87,
+ 0x14, 0xD3, 0x33, 0xEE, 0x86, 0x85, 0x5A, 0x87,
+ 0x27, 0x47, 0xE7, 0x04, 0xF6, 0x11, 0x94, 0x84,
+ 0xBD, 0xB7, 0xD0, 0x77, 0xFA, 0x08, 0xED, 0xC4,
+ 0xA7, 0x9D, 0xE0, 0xF4, 0x3F, 0xCA, 0x8D, 0x43,
+ 0x6E, 0x8A, 0x10, 0x08, 0x57, 0xF5, 0x9B, 0xC7,
+ 0xB0, 0x55, 0xB9, 0x87, 0xF9, 0x7A, 0xC6, 0xB9
+ },
+ {
+ 0xB7, 0xDE, 0xE8, 0xE8, 0x33, 0x9D, 0xB2, 0x97,
+ 0xFD, 0xAA, 0x3C, 0xA5, 0xC1, 0xDC, 0x19, 0x88,
+ 0xD9, 0x7F, 0x5F, 0xB6, 0x20, 0x8C, 0x64, 0xDE,
+ 0xA9, 0x5E, 0x1C, 0x78, 0xF3, 0x37, 0xCE, 0x20,
+ 0xA2, 0xB4, 0xDF, 0x17, 0xA7, 0xB8, 0x23, 0x6A,
+ 0x90, 0xD6, 0x28, 0x67, 0x33, 0x16, 0x35, 0x72,
+ 0xC8, 0x67, 0xD9, 0x3D, 0xE8, 0x9E, 0xF6, 0x2F,
+ 0xA0, 0x5D, 0xAB, 0x70, 0x7E, 0xC3, 0xA7, 0x70
+ },
+ {
+ 0xA0, 0xF7, 0xE9, 0x3C, 0xF3, 0x25, 0x02, 0xB9,
+ 0xFD, 0x79, 0xEC, 0x20, 0x54, 0x62, 0x07, 0xF3,
+ 0x31, 0xC5, 0x29, 0x9E, 0xCE, 0xF3, 0x50, 0xD6,
+ 0x6E, 0xA8, 0x55, 0xC8, 0x7F, 0xBD, 0xDF, 0x18,
+ 0xE6, 0x91, 0xC2, 0x0D, 0x04, 0x5A, 0x30, 0x8F,
+ 0x83, 0xF6, 0xCB, 0x8F, 0xCA, 0x69, 0xD7, 0xE2,
+ 0xB3, 0x9B, 0x34, 0xD2, 0xF8, 0x77, 0x27, 0x6C,
+ 0x19, 0x6B, 0xF5, 0x14, 0xBA, 0xC6, 0x02, 0x70
+ },
+ {
+ 0x6F, 0x50, 0x93, 0xCF, 0xC8, 0x83, 0x00, 0xBF,
+ 0x68, 0x8E, 0x88, 0x4B, 0x4C, 0x5E, 0xC2, 0xC3,
+ 0x1A, 0x8C, 0xC2, 0x8D, 0x63, 0x31, 0xAD, 0x7C,
+ 0xA7, 0x1D, 0x97, 0x60, 0x21, 0x64, 0x82, 0x05,
+ 0x28, 0x15, 0xD4, 0x4F, 0xC6, 0x9E, 0x18, 0xA8,
+ 0xDC, 0x8B, 0xD7, 0x1B, 0x31, 0xF2, 0xB5, 0x89,
+ 0xA7, 0xC0, 0x78, 0x0B, 0x61, 0x99, 0x38, 0x5F,
+ 0x8D, 0xAE, 0x6C, 0x9B, 0x79, 0x74, 0xC4, 0xCB
+ },
+ {
+ 0x3C, 0xFF, 0x46, 0xAC, 0x35, 0x46, 0xF6, 0x5A,
+ 0xD7, 0xA7, 0x20, 0x87, 0x1A, 0xFA, 0x20, 0xA9,
+ 0x21, 0x6D, 0xDA, 0x5C, 0x45, 0x18, 0x81, 0x56,
+ 0xA5, 0xBB, 0xED, 0xF2, 0x15, 0x46, 0xD4, 0xBB,
+ 0x39, 0x40, 0xB2, 0x1A, 0x41, 0xA3, 0x94, 0x03,
+ 0xE3, 0xCF, 0xD5, 0xE7, 0xA0, 0xE7, 0x90, 0x4D,
+ 0xA9, 0x5F, 0x4D, 0x8E, 0x0C, 0x5B, 0xF5, 0xB7,
+ 0x0E, 0xB0, 0x29, 0x55, 0x6E, 0xFD, 0x49, 0x7E
+ },
+ {
+ 0xAF, 0x66, 0x8A, 0x80, 0x5E, 0x6D, 0x70, 0x4B,
+ 0x1E, 0x58, 0x1F, 0x1E, 0x8E, 0x3C, 0x00, 0xCF,
+ 0x4C, 0xF3, 0xE5, 0x46, 0x14, 0x7C, 0x40, 0x6D,
+ 0x17, 0xCA, 0x97, 0x4D, 0x19, 0xA0, 0x14, 0xC7,
+ 0x8B, 0x44, 0xE7, 0x2D, 0xDE, 0xEB, 0x65, 0x26,
+ 0x07, 0xE8, 0x6D, 0x69, 0x02, 0x59, 0xDC, 0xAB,
+ 0x0D, 0xDA, 0x81, 0xC7, 0x7C, 0x7E, 0xE2, 0x72,
+ 0x1E, 0x82, 0xBB, 0xB1, 0x39, 0x43, 0x07, 0x1D
+ },
+ {
+ 0x79, 0xDD, 0xEB, 0x5C, 0x54, 0xDE, 0xD1, 0xE4,
+ 0x48, 0x40, 0x71, 0xC4, 0x6B, 0xB4, 0x28, 0x02,
+ 0xD2, 0x3B, 0x3A, 0x08, 0xC1, 0x23, 0x11, 0xBE,
+ 0x36, 0x3C, 0x7C, 0x7A, 0x02, 0x5A, 0x17, 0x64,
+ 0xC8, 0xD8, 0x50, 0x69, 0xFD, 0xA8, 0xD5, 0x17,
+ 0x77, 0x7D, 0x8D, 0xD8, 0x09, 0xE3, 0xD4, 0xA9,
+ 0x56, 0x04, 0x1A, 0x70, 0x79, 0xF9, 0x16, 0x7B,
+ 0x0F, 0xE9, 0x71, 0x2E, 0x5F, 0x12, 0x29, 0xF5
+ },
+ {
+ 0x99, 0x8E, 0x82, 0xF4, 0x26, 0x3D, 0x53, 0xAE,
+ 0xDA, 0xC9, 0x39, 0xEB, 0xB6, 0xEB, 0x8B, 0x19,
+ 0x69, 0x74, 0x6C, 0xB8, 0x15, 0xBD, 0x72, 0x1F,
+ 0x17, 0xA4, 0x8B, 0xEE, 0x9E, 0xCF, 0xF2, 0xFE,
+ 0x59, 0x8C, 0x53, 0x9C, 0x41, 0x9A, 0x60, 0xE0,
+ 0xD5, 0xA0, 0x4F, 0x1C, 0xB5, 0x23, 0xA2, 0xFD,
+ 0x05, 0x38, 0xBB, 0x17, 0x8E, 0x44, 0x75, 0x8D,
+ 0x31, 0x59, 0xAB, 0x9E, 0x02, 0x84, 0x01, 0xA3
+ },
+ {
+ 0x33, 0x96, 0xCF, 0xD5, 0xCD, 0xE1, 0x4A, 0xEC,
+ 0x1A, 0xAE, 0xD3, 0xE1, 0x22, 0x52, 0xCF, 0xD6,
+ 0xE3, 0x42, 0xED, 0x25, 0x5E, 0x8E, 0x9E, 0x1B,
+ 0xE1, 0x0F, 0x1F, 0x27, 0x38, 0x77, 0xF3, 0x63,
+ 0x33, 0x81, 0xE3, 0xC9, 0x61, 0xE6, 0x7E, 0xC4,
+ 0x1E, 0x8F, 0x9E, 0x16, 0x11, 0x0F, 0xC0, 0x3D,
+ 0xDE, 0x88, 0xBF, 0xC0, 0x96, 0xFC, 0x15, 0x14,
+ 0x46, 0x1D, 0x70, 0xD0, 0xBE, 0xCE, 0x0A, 0xF6
+ },
+ {
+ 0x77, 0x7D, 0x9D, 0xC5, 0x5A, 0x2F, 0x57, 0xA4,
+ 0x6E, 0xA0, 0x6A, 0x2F, 0x4C, 0xB9, 0x76, 0x0D,
+ 0x00, 0xD7, 0xA8, 0x62, 0xD0, 0xA2, 0xAA, 0x19,
+ 0x46, 0x7B, 0x57, 0x0F, 0x7C, 0x7D, 0x5E, 0xA7,
+ 0x62, 0x9A, 0x95, 0xEB, 0x20, 0x0E, 0x1F, 0x9D,
+ 0xB0, 0x66, 0x10, 0xCF, 0x8E, 0x30, 0xD5, 0xE6,
+ 0xAD, 0x0A, 0x7B, 0x63, 0x29, 0x77, 0xFC, 0x21,
+ 0xBB, 0x17, 0x89, 0x67, 0xF3, 0xB0, 0xE0, 0x9B
+ },
+ {
+ 0x32, 0xEE, 0x35, 0x7F, 0xC9, 0x16, 0x36, 0xA8,
+ 0x55, 0xBA, 0x01, 0xA0, 0xB8, 0xDA, 0x6F, 0x35,
+ 0x53, 0xB1, 0xD5, 0x20, 0xAD, 0xCF, 0xE8, 0xFE,
+ 0x9D, 0xEB, 0xCC, 0xB2, 0x6C, 0x5C, 0x4C, 0xE8,
+ 0x50, 0x5B, 0xB1, 0xEF, 0xB5, 0xED, 0x5B, 0xAA,
+ 0x4C, 0x52, 0x45, 0xB5, 0x0D, 0x74, 0x46, 0x3F,
+ 0x07, 0x67, 0xB2, 0xC7, 0x83, 0xC4, 0x7A, 0x93,
+ 0xB0, 0xFD, 0xA6, 0x68, 0x95, 0x69, 0x3C, 0xE6
+ },
+ {
+ 0x34, 0x0C, 0x0A, 0x7C, 0xE4, 0x96, 0xFE, 0xBD,
+ 0xA1, 0x3F, 0xA2, 0x40, 0x7A, 0x21, 0xDC, 0x19,
+ 0x83, 0x9B, 0xED, 0xAE, 0x1A, 0x08, 0x6A, 0xD0,
+ 0xFE, 0xD3, 0x91, 0x7D, 0xF9, 0xBF, 0x40, 0x94,
+ 0x4A, 0x78, 0x7F, 0x64, 0x1E, 0x90, 0xDD, 0xBA,
+ 0xE0, 0x3A, 0x93, 0x37, 0x72, 0x3E, 0x51, 0x66,
+ 0x8F, 0xB8, 0x93, 0x77, 0x2C, 0x0F, 0xBD, 0xB3,
+ 0xEB, 0x7E, 0xF7, 0x90, 0xDF, 0xCB, 0xB9, 0xAB
+ },
+ {
+ 0xD8, 0x6A, 0x5B, 0xAA, 0x33, 0x65, 0xAB, 0xD8,
+ 0xF4, 0x42, 0xCD, 0x6E, 0xBB, 0x93, 0x11, 0x38,
+ 0x19, 0xF0, 0xB4, 0x60, 0x61, 0xE1, 0x34, 0x04,
+ 0xEF, 0xAA, 0x1A, 0x58, 0xE1, 0xFF, 0x27, 0x2A,
+ 0xD4, 0xBF, 0xD3, 0x08, 0x15, 0xAD, 0xD8, 0x8A,
+ 0xD9, 0x8F, 0xCE, 0x9A, 0xF0, 0x18, 0x37, 0x4C,
+ 0xA6, 0x0D, 0x89, 0x79, 0x0F, 0x71, 0xA6, 0x07,
+ 0x5F, 0x3D, 0x68, 0xD3, 0x20, 0x21, 0xA9, 0xEB
+ },
+ {
+ 0xA6, 0x7E, 0x6E, 0xC6, 0x57, 0xC9, 0x5E, 0xAB,
+ 0x3C, 0x3C, 0x32, 0xE4, 0x1F, 0xBF, 0x39, 0xCF,
+ 0x20, 0x33, 0xAB, 0x4B, 0xE2, 0xE2, 0xB8, 0x21,
+ 0x10, 0x4A, 0xDB, 0xE6, 0x9D, 0x16, 0xE9, 0x48,
+ 0xDC, 0xE4, 0xC4, 0xC6, 0xA3, 0xCF, 0x22, 0x76,
+ 0x90, 0x1F, 0x7D, 0x4F, 0xFD, 0x69, 0x65, 0x46,
+ 0x49, 0x88, 0x2C, 0x01, 0x4D, 0x2C, 0x10, 0xA1,
+ 0x30, 0x2B, 0x79, 0xC6, 0x15, 0x69, 0xCD, 0x36
+ },
+ {
+ 0x55, 0xCE, 0x19, 0x2A, 0xE4, 0xB3, 0xEA, 0xF8,
+ 0x55, 0x59, 0x0E, 0x2D, 0x44, 0xE6, 0x25, 0xD9,
+ 0xBA, 0x14, 0x6E, 0xB7, 0x50, 0x48, 0xE6, 0xB5,
+ 0x6E, 0x02, 0x50, 0x31, 0xEF, 0xBA, 0x0B, 0xDA,
+ 0x8A, 0xAA, 0xFA, 0x04, 0x70, 0xB7, 0xAC, 0x3D,
+ 0x40, 0x6E, 0x5A, 0xBA, 0x3E, 0x83, 0x2F, 0x27,
+ 0xA5, 0x07, 0x24, 0x6D, 0x1B, 0x5F, 0x33, 0xDE,
+ 0xA1, 0xF7, 0x24, 0xE2, 0xB8, 0x1B, 0x0C, 0x98
+ },
+ {
+ 0xB3, 0xA2, 0x0C, 0x1F, 0xB0, 0xB4, 0xF0, 0xD3,
+ 0x77, 0x26, 0xC2, 0x3B, 0x58, 0x77, 0xDD, 0x8E,
+ 0x72, 0xF6, 0x98, 0x86, 0xE0, 0x9A, 0x8C, 0x68,
+ 0xCF, 0xC3, 0x01, 0xD2, 0xA3, 0xF2, 0xF9, 0x5C,
+ 0xEF, 0xCF, 0xAB, 0xB8, 0x88, 0x99, 0x03, 0xC7,
+ 0x32, 0xF4, 0xE8, 0x14, 0x32, 0xD3, 0xF6, 0x78,
+ 0xCC, 0xDF, 0xC3, 0x98, 0xAC, 0xD8, 0xA2, 0xF0,
+ 0x66, 0x41, 0x10, 0x04, 0x50, 0xD8, 0x9F, 0x32
+ },
+ {
+ 0xF7, 0x27, 0x2D, 0x93, 0xC7, 0x01, 0x2D, 0x38,
+ 0xB2, 0x7F, 0x0C, 0x9A, 0xE2, 0x01, 0x79, 0x58,
+ 0xBB, 0xA6, 0x66, 0xA9, 0xDE, 0x1E, 0x88, 0x12,
+ 0xE9, 0x74, 0x37, 0xAE, 0xB2, 0xE0, 0x3C, 0x99,
+ 0x94, 0x38, 0xF0, 0xBE, 0x33, 0x3D, 0x09, 0xAD,
+ 0xDB, 0xCF, 0xAA, 0xC7, 0xAA, 0x73, 0xF7, 0xB6,
+ 0xCC, 0xEC, 0x67, 0xDC, 0x07, 0x79, 0x98, 0xDE,
+ 0xDB, 0x8C, 0x13, 0x32, 0xBA, 0xC0, 0xFB, 0xA8
+ },
+ {
+ 0x1F, 0xE7, 0xB3, 0xDE, 0x34, 0xC0, 0x47, 0x9C,
+ 0xA8, 0x40, 0x5F, 0x3C, 0xBC, 0xD2, 0xDB, 0x64,
+ 0xBB, 0x18, 0xDB, 0xB2, 0x91, 0xA5, 0xFE, 0xAA,
+ 0x16, 0xC5, 0x22, 0x8C, 0x93, 0xEE, 0x21, 0xC7,
+ 0x11, 0xD6, 0x8A, 0x01, 0x0C, 0x2A, 0xE8, 0x80,
+ 0x05, 0xEB, 0xAC, 0x95, 0x9E, 0x3A, 0x32, 0x24,
+ 0x52, 0xF8, 0x62, 0xDD, 0xE9, 0x4B, 0xB9, 0x41,
+ 0x81, 0x3E, 0x52, 0x4D, 0x23, 0x47, 0xFE, 0xEE
+ },
+ {
+ 0x4E, 0xE1, 0xD3, 0x88, 0x05, 0xC3, 0x22, 0x84,
+ 0xEC, 0xEB, 0xE9, 0x2E, 0x3D, 0xF6, 0xCD, 0x98,
+ 0xC7, 0xD6, 0x68, 0x0E, 0xAB, 0x0D, 0x68, 0x66,
+ 0x4F, 0x96, 0x70, 0x6C, 0x45, 0x63, 0x3B, 0x1E,
+ 0x26, 0x82, 0x22, 0xAA, 0x5A, 0x52, 0x79, 0xEF,
+ 0x01, 0xFC, 0x28, 0x54, 0x32, 0xAB, 0xEE, 0xD7,
+ 0x4B, 0xA3, 0xDF, 0x18, 0x9F, 0x50, 0xA9, 0x89,
+ 0xD5, 0x8E, 0x71, 0x30, 0x62, 0x2D, 0xAA, 0x59
+ },
+ {
+ 0x0E, 0x14, 0x05, 0x87, 0x1C, 0x87, 0xA5, 0xEA,
+ 0x40, 0x83, 0x42, 0xF3, 0x9D, 0x34, 0x94, 0xF9,
+ 0x39, 0xF7, 0x3C, 0x22, 0x60, 0xC2, 0xA4, 0x3A,
+ 0x5C, 0x9F, 0x1B, 0x57, 0x33, 0x0C, 0xCA, 0x40,
+ 0x93, 0xFC, 0x1F, 0x42, 0xF9, 0x6D, 0x83, 0x00,
+ 0x56, 0x77, 0x03, 0x7D, 0xB5, 0x1A, 0xEF, 0x26,
+ 0xF0, 0x54, 0x38, 0x05, 0x7A, 0xE7, 0x9E, 0xD1,
+ 0x44, 0x64, 0xFD, 0x8E, 0x57, 0xD1, 0x55, 0x86
+ },
+ {
+ 0x17, 0xC5, 0xCA, 0xB4, 0x09, 0x10, 0x73, 0x62,
+ 0x1B, 0x5C, 0x24, 0xC3, 0x36, 0x31, 0x6D, 0x0C,
+ 0xF6, 0x49, 0xBA, 0x1E, 0xFF, 0xEB, 0xFC, 0x87,
+ 0xE0, 0x43, 0x9C, 0xDF, 0x57, 0x88, 0x87, 0xB2,
+ 0x21, 0x65, 0x6D, 0x33, 0x9A, 0x6F, 0xD1, 0x98,
+ 0xAB, 0xAE, 0xE6, 0x7E, 0xA1, 0x88, 0xDD, 0x66,
+ 0x56, 0x78, 0x23, 0xFC, 0x22, 0x0C, 0x52, 0xB5,
+ 0x74, 0x90, 0x25, 0x14, 0x69, 0xD2, 0x5D, 0x8C
+ },
+ {
+ 0x57, 0xDC, 0x27, 0x97, 0xD1, 0x42, 0x68, 0x1C,
+ 0x94, 0xFE, 0x48, 0x86, 0x26, 0x98, 0x6E, 0xD4,
+ 0xB2, 0x67, 0x03, 0xCB, 0xF6, 0xBF, 0xE5, 0x93,
+ 0x91, 0x64, 0x36, 0x57, 0x06, 0x5B, 0x2D, 0x46,
+ 0xE4, 0xB1, 0xDD, 0xB3, 0xAA, 0x83, 0x2C, 0x9B,
+ 0xD4, 0x49, 0x75, 0x5A, 0xC8, 0xB1, 0xBF, 0x93,
+ 0x68, 0x97, 0xFB, 0xC6, 0xAD, 0xE3, 0x78, 0xF2,
+ 0xBD, 0x64, 0x93, 0xE4, 0x86, 0xF4, 0x20, 0x29
+ },
+ {
+ 0x44, 0x12, 0xDD, 0x6B, 0xED, 0x6D, 0xB2, 0xA8,
+ 0x03, 0xC2, 0xE0, 0xDF, 0x8F, 0x58, 0x29, 0xE7,
+ 0xA4, 0xB0, 0x41, 0x78, 0x89, 0x51, 0x0D, 0xF7,
+ 0xDF, 0xEE, 0x49, 0x57, 0x4A, 0x71, 0xEC, 0x0D,
+ 0x9E, 0x0D, 0x46, 0x06, 0x50, 0x17, 0xC7, 0x2D,
+ 0xD9, 0x74, 0x39, 0x33, 0xCA, 0x83, 0x9A, 0x76,
+ 0x8D, 0xD1, 0x5A, 0xB0, 0xB7, 0xC1, 0x4C, 0x62,
+ 0x6A, 0x35, 0x41, 0x09, 0x69, 0x01, 0x96, 0xAE
+ },
+ {
+ 0xD0, 0xEB, 0xC7, 0x71, 0x03, 0x1B, 0x7C, 0x16,
+ 0x00, 0x21, 0xC9, 0xB6, 0xFB, 0xB2, 0xB6, 0x70,
+ 0xE3, 0xB4, 0x02, 0x70, 0x02, 0x69, 0x07, 0xA3,
+ 0x91, 0x63, 0xDB, 0x18, 0x73, 0xEC, 0xC3, 0xB8,
+ 0x00, 0x11, 0x1D, 0xD7, 0xBF, 0x13, 0x8F, 0x83,
+ 0xA6, 0x10, 0xDC, 0x04, 0x6D, 0xA2, 0x68, 0xB7,
+ 0x2B, 0x8C, 0x90, 0x86, 0x92, 0x23, 0x77, 0xDB,
+ 0xED, 0x73, 0x94, 0x82, 0x43, 0xCA, 0x1E, 0x14
+ },
+ {
+ 0x10, 0xC4, 0xBA, 0x31, 0x55, 0x91, 0x69, 0x8D,
+ 0xFB, 0x91, 0xA5, 0x73, 0x37, 0x63, 0x18, 0x84,
+ 0xB4, 0x73, 0x8D, 0x9F, 0x59, 0x80, 0x78, 0x51,
+ 0xA6, 0x79, 0x84, 0x0C, 0xC2, 0x87, 0xAC, 0xE3,
+ 0x01, 0x1C, 0xCD, 0xC8, 0xF4, 0xA4, 0x85, 0xBB,
+ 0x19, 0x73, 0x40, 0x4E, 0xF9, 0xEE, 0x9B, 0x9C,
+ 0xF1, 0xEA, 0xDB, 0xC5, 0x40, 0x74, 0xC6, 0xD1,
+ 0x13, 0xDE, 0x8F, 0xC9, 0x1D, 0x07, 0x97, 0xEB
+ },
+ {
+ 0x14, 0x64, 0x34, 0x7B, 0xE3, 0x2C, 0x79, 0x59,
+ 0x17, 0x2B, 0x74, 0x72, 0xD1, 0x1F, 0xE0, 0x78,
+ 0x44, 0xA5, 0x2E, 0x2D, 0x3B, 0x2D, 0x05, 0x8C,
+ 0xC6, 0xBC, 0xC0, 0xA8, 0xA2, 0x75, 0xD6, 0xB8,
+ 0x2B, 0x2D, 0x62, 0x63, 0x75, 0x5E, 0xAF, 0x2A,
+ 0x65, 0x88, 0xB6, 0xA1, 0xEB, 0x79, 0x9A, 0xF8,
+ 0x3A, 0x4C, 0xE7, 0x53, 0xF8, 0xC7, 0x5A, 0x22,
+ 0x84, 0xD0, 0x28, 0x5B, 0xAB, 0x5F, 0x7C, 0x1C
+ },
+ {
+ 0xF4, 0x09, 0x23, 0x1E, 0xD1, 0x87, 0xF5, 0xC4,
+ 0xE8, 0x33, 0xFA, 0x9E, 0x30, 0x42, 0xAC, 0xA6,
+ 0xC8, 0x58, 0xB0, 0x8B, 0x49, 0x6B, 0x25, 0x31,
+ 0xF8, 0x4F, 0xD5, 0xCE, 0xA9, 0x3E, 0xCD, 0x06,
+ 0xDA, 0xFE, 0x0A, 0x10, 0xC3, 0xFF, 0x23, 0x76,
+ 0xC7, 0x4D, 0xC8, 0x0D, 0xA0, 0x7D, 0xA0, 0x18,
+ 0x64, 0xFB, 0xF2, 0x68, 0x59, 0x60, 0xB5, 0x40,
+ 0xB3, 0xA2, 0xE9, 0x42, 0xCB, 0x8D, 0x90, 0x9F
+ },
+ {
+ 0x39, 0x51, 0x32, 0xC5, 0x80, 0xC3, 0x55, 0xB5,
+ 0xB0, 0xE2, 0x35, 0x33, 0x6C, 0x8D, 0xC1, 0x08,
+ 0x5E, 0x59, 0x59, 0x64, 0x04, 0x3D, 0x38, 0x9E,
+ 0x08, 0x1E, 0xFE, 0x48, 0x5B, 0xA4, 0xC6, 0x37,
+ 0x72, 0xDB, 0x8D, 0x7E, 0x0F, 0x18, 0x6C, 0x50,
+ 0x98, 0x2E, 0x12, 0x23, 0xEA, 0x78, 0x5A, 0xDC,
+ 0x74, 0x0B, 0x0C, 0xF2, 0x18, 0x70, 0x74, 0x58,
+ 0xB8, 0xB8, 0x03, 0x40, 0x42, 0xF9, 0x23, 0xC2
+ },
+ {
+ 0xF9, 0x2A, 0xBA, 0xCA, 0x21, 0x32, 0x29, 0x66,
+ 0x06, 0x49, 0xEF, 0x2D, 0x8F, 0x88, 0x11, 0x5B,
+ 0x5B, 0xED, 0x8A, 0xB5, 0xB9, 0xBC, 0xA9, 0xA1,
+ 0xB4, 0xC5, 0x24, 0x57, 0x03, 0x53, 0x10, 0xC4,
+ 0x1A, 0x6B, 0xEA, 0x2B, 0x23, 0xB7, 0x91, 0x8B,
+ 0x5B, 0x8B, 0xF3, 0x8B, 0x52, 0xEA, 0xC6, 0xFF,
+ 0x3B, 0x62, 0x13, 0xA5, 0x22, 0xF3, 0x81, 0xBE,
+ 0x7F, 0xF0, 0x90, 0x6D, 0xBA, 0x7B, 0xD0, 0x0C
+ },
+ {
+ 0xCB, 0xAD, 0xE7, 0xAD, 0x3B, 0x5D, 0xEE, 0x0F,
+ 0xF1, 0xA4, 0x6B, 0x08, 0x2C, 0xF4, 0xE1, 0xE1,
+ 0xDC, 0x21, 0x62, 0x0D, 0xD2, 0xCC, 0x0E, 0xDC,
+ 0x2C, 0x70, 0x7A, 0x21, 0x62, 0xD2, 0x14, 0x99,
+ 0x69, 0xAB, 0xBB, 0x29, 0xC5, 0x72, 0x0B, 0x04,
+ 0xBD, 0x15, 0x68, 0xA9, 0x55, 0x61, 0x95, 0xE6,
+ 0x7F, 0x24, 0x32, 0x2D, 0xD9, 0xAA, 0x4E, 0x83,
+ 0x65, 0x19, 0x1A, 0xA5, 0xB6, 0xC4, 0x45, 0x79
+ },
+ {
+ 0xF5, 0x1B, 0x4A, 0xE4, 0xD4, 0xC5, 0x4A, 0x29,
+ 0xCF, 0x71, 0x35, 0xA8, 0xFE, 0x1E, 0xAB, 0xD5,
+ 0xE1, 0xBC, 0xBF, 0x82, 0x08, 0x96, 0x96, 0x7D,
+ 0xC4, 0x1E, 0x38, 0x49, 0xDA, 0xC2, 0x25, 0x07,
+ 0x69, 0x42, 0x10, 0xCA, 0x11, 0xC4, 0xEB, 0xF1,
+ 0xC2, 0x9A, 0x8D, 0x4F, 0x71, 0xB3, 0x0F, 0x76,
+ 0xC9, 0xB6, 0x01, 0x0A, 0xD9, 0x5B, 0xDF, 0xB0,
+ 0xDE, 0x83, 0x79, 0x25, 0xF0, 0x61, 0x25, 0x97
+ },
+ {
+ 0xCE, 0x38, 0x72, 0x11, 0x5D, 0x83, 0x3B, 0x34,
+ 0x56, 0xCA, 0x94, 0x2E, 0x6E, 0x38, 0x5F, 0x28,
+ 0xA9, 0x03, 0xBE, 0xAB, 0xFB, 0x75, 0x3F, 0x8A,
+ 0xFC, 0xCC, 0x12, 0xF2, 0x58, 0x2C, 0xE1, 0xF3,
+ 0x62, 0x12, 0xBD, 0x05, 0xE0, 0x5A, 0x46, 0xFC,
+ 0x88, 0xD3, 0x19, 0x50, 0xB4, 0x91, 0x1A, 0xE5,
+ 0xDC, 0xD8, 0xFF, 0x7A, 0x0B, 0x50, 0x47, 0x4C,
+ 0xB4, 0x88, 0xCC, 0xF2, 0xA8, 0x9C, 0xD0, 0xEB
+ },
+ {
+ 0x9B, 0xB7, 0x4C, 0xBD, 0x47, 0xA6, 0x24, 0xCB,
+ 0xEA, 0xFC, 0xC1, 0x6D, 0x46, 0x29, 0x47, 0xBB,
+ 0xEA, 0x13, 0x70, 0xB8, 0x5C, 0x96, 0x1A, 0x40,
+ 0x7D, 0xF9, 0x86, 0x3E, 0x54, 0xE6, 0xD9, 0xE6,
+ 0xA8, 0xD2, 0xEF, 0x0C, 0x64, 0x97, 0x20, 0x5E,
+ 0x5E, 0xB7, 0xC3, 0xE5, 0x9E, 0x69, 0x8D, 0x99,
+ 0x24, 0x63, 0xCA, 0x9D, 0xD4, 0xCF, 0x28, 0xCF,
+ 0x9A, 0x2D, 0x4E, 0x30, 0xC1, 0x33, 0xE8, 0x55
+ },
+ {
+ 0x72, 0x96, 0x33, 0x82, 0x0B, 0xF0, 0x13, 0xD9,
+ 0xD2, 0xBD, 0x37, 0x3C, 0xCA, 0xC7, 0xBC, 0x9F,
+ 0x37, 0x16, 0xF6, 0x9E, 0x16, 0xA4, 0x4E, 0x94,
+ 0x9C, 0x7A, 0x9A, 0x93, 0xDC, 0xA1, 0x26, 0xBB,
+ 0x1A, 0xA5, 0x4E, 0x5E, 0x70, 0x40, 0x70, 0x7F,
+ 0x02, 0x87, 0x6A, 0xFD, 0x02, 0x0A, 0xF4, 0x72,
+ 0x63, 0x9D, 0x49, 0xF5, 0x42, 0x0D, 0x29, 0x4C,
+ 0x3A, 0xA3, 0x1D, 0x06, 0x7E, 0x3E, 0x85, 0x75
+ },
+ {
+ 0x06, 0x86, 0x1D, 0xB3, 0x07, 0xC6, 0x78, 0x08,
+ 0x6E, 0x8B, 0x2A, 0xEC, 0xDF, 0x18, 0x29, 0xD2,
+ 0x88, 0x3D, 0x28, 0xB7, 0x31, 0xAB, 0xD0, 0xF1,
+ 0xE7, 0x2F, 0x1C, 0xED, 0x6C, 0x7A, 0xD4, 0x17,
+ 0x2E, 0xCA, 0x63, 0x22, 0xA8, 0x3F, 0xB6, 0xA6,
+ 0x5A, 0xFA, 0x37, 0xE9, 0x4A, 0x3E, 0x2B, 0xA2,
+ 0x05, 0xB8, 0x7B, 0xF3, 0x82, 0xD9, 0x15, 0x88,
+ 0x49, 0x7A, 0x46, 0x50, 0x88, 0x3B, 0xD8, 0x75
+ },
+ {
+ 0x35, 0x6E, 0xCE, 0xAF, 0x17, 0x02, 0xB3, 0x70,
+ 0xF4, 0xAA, 0xB8, 0xEA, 0x82, 0x84, 0x86, 0xF3,
+ 0x30, 0x13, 0xF7, 0x44, 0xB3, 0x9E, 0x7E, 0xA2,
+ 0x6C, 0x69, 0x18, 0xD6, 0x0E, 0x1A, 0xBC, 0xF4,
+ 0x4F, 0xB1, 0x6E, 0xDC, 0xA7, 0x72, 0x0A, 0xCF,
+ 0xC6, 0xA7, 0x01, 0xBF, 0x1E, 0x2C, 0x35, 0xDD,
+ 0xBD, 0x69, 0x5A, 0x8D, 0x40, 0x8E, 0x8C, 0x96,
+ 0x32, 0xE8, 0xCD, 0x27, 0x23, 0x0C, 0xAD, 0x8D
+ },
+ {
+ 0x48, 0x9A, 0x39, 0xD0, 0xFC, 0x3C, 0xDE, 0xAF,
+ 0x42, 0x89, 0x2E, 0xD8, 0x03, 0x85, 0xC1, 0x1C,
+ 0xE2, 0x93, 0xC9, 0x32, 0x21, 0x5B, 0xB2, 0x31,
+ 0x88, 0x69, 0x2A, 0x86, 0xE6, 0x1B, 0xCA, 0xD9,
+ 0x2C, 0x2A, 0x1D, 0x11, 0x42, 0x60, 0x1B, 0x1B,
+ 0xDF, 0x09, 0x82, 0xD1, 0xCD, 0x1E, 0x05, 0xC0,
+ 0x52, 0xDE, 0x81, 0x9E, 0x64, 0xF2, 0x47, 0xDB,
+ 0x35, 0x91, 0x5D, 0xD1, 0xDB, 0x79, 0xA3, 0xB5
+ },
+ {
+ 0xC0, 0x2F, 0x46, 0x4B, 0x4D, 0xD1, 0x81, 0x17,
+ 0xE3, 0x0A, 0x8D, 0xB8, 0xEF, 0x1D, 0xA0, 0x67,
+ 0x13, 0x4B, 0x60, 0x4E, 0xFA, 0x19, 0x51, 0x76,
+ 0x7E, 0xE6, 0x32, 0xDC, 0x02, 0x4D, 0x64, 0xC0,
+ 0x0F, 0x24, 0x49, 0xF0, 0x42, 0xDB, 0x3A, 0xEA,
+ 0x01, 0x74, 0xEB, 0xCD, 0xBB, 0x4F, 0xF5, 0x9D,
+ 0xAE, 0x75, 0x4F, 0x72, 0x39, 0x46, 0xF1, 0xB9,
+ 0x0A, 0x77, 0xFD, 0x95, 0x23, 0x69, 0x0B, 0x7B
+ },
+ {
+ 0xFB, 0x31, 0xE6, 0xDD, 0xB8, 0x6D, 0xBF, 0xF3,
+ 0x72, 0x64, 0x6D, 0x1E, 0x3A, 0x3F, 0x31, 0xDD,
+ 0x61, 0x15, 0x9F, 0xC3, 0x93, 0x65, 0x8C, 0x2E,
+ 0xE9, 0x57, 0x10, 0x3B, 0xF2, 0x11, 0x6B, 0xDE,
+ 0xF8, 0x2C, 0x33, 0xE8, 0x69, 0xF3, 0xC8, 0x3A,
+ 0xC3, 0xC2, 0xF6, 0x38, 0x0C, 0xF6, 0x92, 0xF7,
+ 0xB1, 0xDC, 0xBA, 0xE0, 0xBB, 0x22, 0x7A, 0xD3,
+ 0x47, 0xE7, 0x54, 0x13, 0x74, 0x66, 0xC6, 0x9F
+ },
+ {
+ 0x00, 0x60, 0x62, 0xAB, 0xE1, 0x6C, 0x2F, 0xE7,
+ 0x9A, 0xF8, 0x80, 0x85, 0xE0, 0xB5, 0x82, 0xB1,
+ 0x06, 0xE7, 0xF7, 0x9F, 0x01, 0xA4, 0x39, 0x46,
+ 0xC7, 0x8B, 0x19, 0xF9, 0xBD, 0xD7, 0x25, 0x99,
+ 0x76, 0x36, 0xA3, 0x32, 0xEB, 0x9A, 0x3A, 0xAA,
+ 0x6D, 0xE0, 0xD4, 0xA8, 0xE9, 0xE2, 0x8E, 0x8C,
+ 0x77, 0x87, 0x74, 0x22, 0x4C, 0x66, 0x5B, 0xF7,
+ 0xBC, 0x36, 0x44, 0xFC, 0xE4, 0x11, 0x22, 0x8C
+ },
+ {
+ 0xD4, 0x4A, 0x6D, 0xB3, 0xDE, 0x9F, 0xD4, 0xE4,
+ 0xA7, 0xEF, 0x15, 0x5A, 0x01, 0xBC, 0xCB, 0x91,
+ 0xC1, 0xBC, 0xF1, 0xCB, 0x53, 0x22, 0x56, 0x89,
+ 0xA7, 0x7A, 0x0D, 0x23, 0xB4, 0xD3, 0x9A, 0x89,
+ 0xA1, 0x89, 0xF2, 0x89, 0x80, 0xF9, 0x1C, 0x56,
+ 0xEA, 0xC5, 0x87, 0x9E, 0xAE, 0x93, 0x3C, 0xED,
+ 0x7F, 0x26, 0x7E, 0x2F, 0x70, 0x40, 0xEB, 0x38,
+ 0x0F, 0xDB, 0xBF, 0x34, 0xA6, 0xB7, 0xB6, 0x15
+ },
+ {
+ 0x5A, 0xFB, 0xFE, 0xA1, 0xDE, 0xDA, 0x5A, 0xEA,
+ 0xB9, 0x2E, 0x4D, 0x0C, 0x31, 0xD1, 0x6A, 0x9A,
+ 0x86, 0xBF, 0x7C, 0x75, 0x23, 0x27, 0x4A, 0x05,
+ 0xC5, 0x05, 0x29, 0xF5, 0xC1, 0x39, 0xDB, 0x10,
+ 0x93, 0x3A, 0x52, 0xC6, 0x22, 0x9C, 0xD3, 0x11,
+ 0x08, 0xF0, 0x83, 0xFB, 0x0C, 0x85, 0xCF, 0x52,
+ 0x83, 0x1B, 0x5A, 0x05, 0xF2, 0x55, 0x0A, 0x77,
+ 0xB5, 0x70, 0x3C, 0xC6, 0x68, 0x91, 0x2D, 0xBC
+ },
+ {
+ 0xD1, 0x7F, 0xCA, 0xD4, 0xE0, 0xD8, 0xBD, 0xE2,
+ 0xED, 0xFD, 0xA1, 0x68, 0xBA, 0x47, 0x10, 0x4B,
+ 0xBC, 0xA4, 0xD2, 0x6D, 0xA2, 0xD3, 0x1A, 0x07,
+ 0x0B, 0x0F, 0xBA, 0x0B, 0x26, 0xEE, 0xDD, 0x95,
+ 0xEE, 0xC1, 0xFC, 0x34, 0xD7, 0x6C, 0xD4, 0xA1,
+ 0xCB, 0x15, 0xF2, 0x62, 0x16, 0x88, 0xA9, 0xCC,
+ 0x0E, 0x96, 0x35, 0x8D, 0xE9, 0x93, 0x22, 0x2B,
+ 0xB3, 0xE3, 0xCD, 0x0B, 0xFD, 0xCB, 0x74, 0x6C
+ },
+ {
+ 0xBD, 0x6A, 0x59, 0x21, 0x63, 0x37, 0xB4, 0x5D,
+ 0x6B, 0x71, 0xAE, 0xAC, 0x01, 0x36, 0x6B, 0xFE,
+ 0x96, 0x60, 0xE0, 0xFB, 0xC2, 0x95, 0x9A, 0xDB,
+ 0xB6, 0x8D, 0x52, 0x6C, 0x43, 0xD4, 0x8F, 0xFF,
+ 0xFE, 0x2F, 0xFC, 0x43, 0x05, 0x88, 0xE7, 0x8E,
+ 0x66, 0x54, 0x6A, 0x3C, 0x70, 0x9B, 0x0A, 0xCE,
+ 0xA1, 0x7C, 0xBC, 0x5A, 0x21, 0x8C, 0x53, 0xCD,
+ 0x47, 0xAA, 0x48, 0x71, 0xC1, 0xDD, 0x98, 0x4A
+ },
+ {
+ 0x83, 0xEA, 0x5A, 0xE1, 0x89, 0x11, 0x45, 0xC4,
+ 0x1A, 0x7C, 0x6C, 0x87, 0xFE, 0x92, 0x24, 0x87,
+ 0xF5, 0xD2, 0x82, 0x93, 0x35, 0x69, 0xB7, 0xAE,
+ 0x0E, 0x34, 0x56, 0x53, 0x38, 0x1E, 0xDE, 0x6D,
+ 0x4B, 0x16, 0xE1, 0x44, 0xD1, 0xC3, 0xE8, 0xF0,
+ 0x60, 0x5D, 0xAA, 0x0D, 0xB5, 0x96, 0x5A, 0x7B,
+ 0x79, 0xD9, 0x1A, 0x8A, 0xFE, 0x11, 0xF1, 0xE0,
+ 0xBC, 0x54, 0x9A, 0xC0, 0x74, 0xA0, 0x1A, 0xB7
+ },
+ {
+ 0x37, 0x50, 0x50, 0xCF, 0x2E, 0x43, 0x0D, 0x0E,
+ 0x29, 0x87, 0x58, 0x35, 0x20, 0x8E, 0x89, 0x06,
+ 0xD7, 0x05, 0x2E, 0x47, 0x29, 0x2C, 0x5A, 0x38,
+ 0xA6, 0x30, 0x82, 0x87, 0x3D, 0x31, 0xD5, 0x83,
+ 0x13, 0x5C, 0x07, 0xA2, 0x0C, 0x52, 0xD9, 0x5B,
+ 0x2D, 0x5D, 0xC3, 0xEA, 0xDE, 0x6B, 0xE1, 0x43,
+ 0xCA, 0x34, 0x38, 0xF4, 0x4D, 0x02, 0x0A, 0xAE,
+ 0x16, 0x0E, 0xD7, 0x7A, 0xB9, 0x88, 0x4F, 0x7D
+ },
+ {
+ 0x30, 0x28, 0xB0, 0xE8, 0x24, 0x95, 0x7F, 0xF3,
+ 0xB3, 0x05, 0xE9, 0x7F, 0xF5, 0x92, 0xAA, 0x8E,
+ 0xF2, 0x9B, 0x3B, 0xEC, 0x1D, 0xC4, 0x7B, 0x76,
+ 0x13, 0x3D, 0x10, 0x3F, 0xFE, 0x38, 0x71, 0xBF,
+ 0x05, 0x12, 0xA2, 0x31, 0xAF, 0xCB, 0x1D, 0xF8,
+ 0x65, 0x97, 0xEC, 0x5E, 0x46, 0xE9, 0x23, 0xC8,
+ 0xB9, 0x85, 0xC2, 0x85, 0x08, 0x57, 0xC6, 0x40,
+ 0x01, 0xB2, 0xC5, 0x51, 0xEA, 0x83, 0x3D, 0x0E
+ },
+ {
+ 0x08, 0x7C, 0xCB, 0x1E, 0x5B, 0xD1, 0x72, 0x22,
+ 0xB8, 0xAF, 0x20, 0x6D, 0xD6, 0x39, 0x08, 0xF8,
+ 0x91, 0x72, 0x97, 0x62, 0x1A, 0x8C, 0xB9, 0x33,
+ 0x0A, 0xE0, 0xBA, 0x4A, 0xF3, 0xE9, 0xD6, 0x0C,
+ 0x98, 0xFC, 0xF1, 0xEF, 0xFC, 0xEC, 0x20, 0x13,
+ 0x6B, 0x4F, 0x91, 0x88, 0x12, 0x6D, 0xFA, 0x04,
+ 0x4E, 0x1C, 0x1C, 0xCD, 0xA3, 0xCE, 0xD8, 0x73,
+ 0x73, 0xD9, 0x37, 0x9C, 0xCB, 0xED, 0xBD, 0xB3
+ },
+ {
+ 0x7F, 0x17, 0x06, 0x24, 0x98, 0xBF, 0xA2, 0xBB,
+ 0x58, 0x56, 0xCD, 0x0A, 0x62, 0xC5, 0x68, 0xC5,
+ 0xC6, 0xB8, 0x97, 0x43, 0x24, 0x74, 0xEF, 0xB2,
+ 0xE6, 0xA2, 0xEE, 0x18, 0xCA, 0xFF, 0xD2, 0x1E,
+ 0x1E, 0xF3, 0x0D, 0x06, 0x47, 0x23, 0x85, 0x0F,
+ 0x79, 0x90, 0xD2, 0x1B, 0xA3, 0x4E, 0x8F, 0x2B,
+ 0x3B, 0xB0, 0x67, 0x02, 0x3A, 0x77, 0x27, 0x82,
+ 0x15, 0x8A, 0x27, 0xC6, 0xC4, 0x67, 0xC9, 0x28
+ },
+ {
+ 0x6B, 0xA9, 0x86, 0xA9, 0x42, 0x49, 0x7F, 0xD3,
+ 0x84, 0x62, 0x97, 0x2F, 0x50, 0xA6, 0x19, 0x68,
+ 0xC0, 0x65, 0x2D, 0xAC, 0x56, 0xCE, 0x9B, 0x9A,
+ 0xC1, 0xBC, 0x06, 0x1A, 0xB6, 0x34, 0xFE, 0x5A,
+ 0x77, 0xAC, 0xD0, 0x27, 0x5F, 0x83, 0x96, 0xE3,
+ 0xC0, 0xBE, 0xF0, 0x12, 0xAE, 0x93, 0xB7, 0x27,
+ 0x58, 0xB8, 0xD7, 0x67, 0x9C, 0x87, 0xE8, 0x47,
+ 0xE6, 0x30, 0x17, 0xB5, 0x5A, 0x69, 0xC5, 0xC6
+ },
+ {
+ 0x96, 0x7C, 0x81, 0xF5, 0x61, 0x95, 0x18, 0x33,
+ 0xFA, 0x56, 0x6F, 0x6B, 0x36, 0x07, 0x7E, 0xAD,
+ 0xB2, 0xA6, 0x15, 0xCC, 0x15, 0xF0, 0xED, 0xBB,
+ 0xAE, 0x4F, 0x84, 0x4D, 0xDC, 0x8E, 0x9C, 0x1F,
+ 0xB8, 0x3D, 0x31, 0xA9, 0x3F, 0xCB, 0x17, 0x74,
+ 0xD7, 0x40, 0xD6, 0x92, 0x08, 0xCA, 0x59, 0x30,
+ 0xBC, 0xFA, 0xC4, 0xA1, 0xF9, 0x44, 0x46, 0x9F,
+ 0xEF, 0xD1, 0x9B, 0x6E, 0x93, 0x75, 0xE0, 0xB5
+ },
+ {
+ 0xE8, 0xAE, 0xF1, 0x78, 0xE6, 0xDA, 0x3E, 0xF5,
+ 0xCA, 0xED, 0x65, 0x30, 0xF7, 0xEB, 0x25, 0x60,
+ 0x82, 0x56, 0xC2, 0x37, 0x7C, 0x4C, 0xF9, 0x6B,
+ 0x0C, 0xFD, 0x0D, 0x76, 0xEE, 0xB4, 0xBB, 0x86,
+ 0xEE, 0xFF, 0x7B, 0x7D, 0xF1, 0x58, 0x5C, 0x8D,
+ 0x7A, 0x20, 0xC0, 0x63, 0x3A, 0x67, 0x90, 0x7F,
+ 0x6D, 0x28, 0x67, 0xC3, 0x26, 0x4A, 0x91, 0xC0,
+ 0x51, 0xAB, 0xAE, 0x6E, 0xEA, 0x5A, 0x91, 0xD8
+ },
+ {
+ 0x64, 0x81, 0xDC, 0xC8, 0x15, 0x7A, 0xE6, 0x28,
+ 0xB5, 0xCD, 0x52, 0x6B, 0xAC, 0x8F, 0x93, 0x31,
+ 0x56, 0xDE, 0xDA, 0xC9, 0x56, 0xA2, 0xB2, 0x2A,
+ 0x97, 0x4B, 0xF5, 0xF7, 0xEC, 0x2D, 0xB5, 0x80,
+ 0x6F, 0x53, 0xDD, 0x0E, 0x2D, 0xD5, 0x3D, 0xB8,
+ 0x7C, 0xD8, 0xF5, 0x8A, 0x58, 0x6F, 0x9B, 0x3C,
+ 0x5C, 0x52, 0x23, 0x31, 0xA3, 0x11, 0x74, 0xC4,
+ 0xE7, 0xB9, 0xB6, 0xF7, 0xF0, 0x57, 0xC2, 0x8F
+ },
+ {
+ 0xA7, 0x1E, 0xA4, 0x5C, 0xE6, 0x61, 0x6A, 0x3D,
+ 0x2F, 0x0A, 0x59, 0x2D, 0x5D, 0x02, 0x86, 0x93,
+ 0x2D, 0xA6, 0x3C, 0x6D, 0xB1, 0x1D, 0x59, 0xC6,
+ 0x69, 0x1C, 0x35, 0xA5, 0x6F, 0x7E, 0xE4, 0xF8,
+ 0x0B, 0x6F, 0xC3, 0x40, 0xB4, 0xDB, 0xC1, 0x84,
+ 0x4C, 0x50, 0x40, 0xE6, 0x68, 0xD2, 0x89, 0x2F,
+ 0x4A, 0x4A, 0xE8, 0x53, 0x3F, 0x1B, 0x67, 0x71,
+ 0xBC, 0xFC, 0xE7, 0xC3, 0xA2, 0x3E, 0x0D, 0x97
+ },
+ {
+ 0x96, 0x93, 0x44, 0x87, 0x70, 0xFE, 0xAE, 0x42,
+ 0x17, 0x26, 0xEB, 0x20, 0x3B, 0x01, 0xC7, 0x08,
+ 0x23, 0xD5, 0xF4, 0x4C, 0xC5, 0x21, 0x3E, 0x6A,
+ 0x68, 0x28, 0x47, 0x29, 0xBD, 0x11, 0x7D, 0x9B,
+ 0xD1, 0x8F, 0xEC, 0x4A, 0x0A, 0x82, 0x4A, 0x24,
+ 0x08, 0x0F, 0x29, 0x8B, 0xAC, 0xD2, 0x96, 0xD7,
+ 0xB4, 0x97, 0x83, 0x8F, 0xBD, 0x7B, 0x0D, 0x57,
+ 0x5C, 0x52, 0x49, 0x2B, 0x3E, 0x6F, 0x92, 0x6B
+ },
+ {
+ 0x37, 0xA1, 0x50, 0x66, 0xF2, 0xB9, 0xF9, 0x4C,
+ 0x24, 0x61, 0x1B, 0xC4, 0x53, 0xED, 0x02, 0x74,
+ 0x07, 0x8D, 0x1F, 0x70, 0xB2, 0xD3, 0x4C, 0x8B,
+ 0x96, 0x36, 0x08, 0x48, 0x9D, 0xCB, 0xE8, 0xDF,
+ 0x44, 0x8E, 0xDD, 0x9C, 0x73, 0x36, 0x2B, 0xB2,
+ 0xB6, 0x6B, 0xEE, 0xF6, 0x1F, 0xCE, 0x60, 0x10,
+ 0x6F, 0x70, 0x19, 0xED, 0x37, 0x3C, 0x69, 0x22,
+ 0x59, 0xD9, 0x55, 0x6A, 0x94, 0x0B, 0x1A, 0x06
+ },
+ {
+ 0xBD, 0x44, 0xE7, 0x39, 0xE1, 0xF9, 0xDB, 0x1C,
+ 0x6B, 0xAF, 0x42, 0xCA, 0x4A, 0x12, 0xAC, 0x09,
+ 0x9B, 0x96, 0xF6, 0xB3, 0x6C, 0x4B, 0xCB, 0x1B,
+ 0x72, 0xEE, 0xFF, 0x08, 0xA6, 0x49, 0x68, 0x35,
+ 0xEC, 0x65, 0x15, 0x0B, 0xE8, 0xFE, 0x16, 0xCB,
+ 0xE3, 0x27, 0x07, 0xE3, 0x47, 0x54, 0x7D, 0xC5,
+ 0xA5, 0x83, 0xD2, 0x65, 0x74, 0x6F, 0xA5, 0x95,
+ 0xC5, 0xE7, 0x73, 0x0F, 0xCF, 0x24, 0x58, 0x1E
+ },
+ {
+ 0xFA, 0xB2, 0x03, 0x8E, 0x94, 0x98, 0xA1, 0xC3,
+ 0x9E, 0x05, 0x78, 0xA0, 0xA5, 0xEA, 0x6B, 0x44,
+ 0xF3, 0xC1, 0xB4, 0x1A, 0xE5, 0x67, 0xF9, 0x91,
+ 0x4A, 0x95, 0xB1, 0x31, 0xC4, 0x8D, 0x12, 0x1E,
+ 0xCA, 0xCE, 0xA8, 0x95, 0xA0, 0x9B, 0x1D, 0x4E,
+ 0x04, 0x42, 0xBE, 0xC9, 0xC5, 0x0C, 0x50, 0xE0,
+ 0x0A, 0x9F, 0xAF, 0xEF, 0xFA, 0xE0, 0x70, 0x88,
+ 0x4C, 0x26, 0x25, 0xA8, 0xB1, 0xA2, 0x17, 0x26
+ },
+ {
+ 0x05, 0xA1, 0xB7, 0x6B, 0x2F, 0xD5, 0x62, 0x11,
+ 0xE0, 0xF2, 0xD7, 0x5A, 0x25, 0x16, 0x54, 0xA7,
+ 0x72, 0xF5, 0x5E, 0x18, 0xCA, 0x02, 0x2A, 0xF5,
+ 0x2C, 0xB3, 0x30, 0x19, 0x1E, 0x98, 0xA3, 0xB8,
+ 0xEB, 0x87, 0xE5, 0x11, 0x7B, 0xAE, 0x58, 0x04,
+ 0x4D, 0x94, 0x4C, 0x1F, 0x18, 0x85, 0x45, 0x12,
+ 0x25, 0x41, 0x77, 0x35, 0xFC, 0x72, 0xF7, 0x39,
+ 0x36, 0x69, 0x3C, 0xFF, 0x45, 0x46, 0x9F, 0x8C
+ },
+ {
+ 0x2A, 0x30, 0xC9, 0x6B, 0xDA, 0xC7, 0x8A, 0x39,
+ 0x94, 0xEE, 0xCA, 0xA5, 0xA5, 0x3F, 0x82, 0x7F,
+ 0x58, 0xE1, 0x32, 0x31, 0xA0, 0xD1, 0x13, 0x08,
+ 0x6C, 0x06, 0xB1, 0xBD, 0xAB, 0xDA, 0x38, 0xD0,
+ 0x8F, 0x1A, 0xE2, 0x7D, 0xE2, 0x5F, 0xD2, 0x2E,
+ 0xEA, 0x70, 0xC0, 0x5F, 0x01, 0x32, 0xBF, 0x7A,
+ 0x50, 0x1C, 0x82, 0xAE, 0x62, 0x15, 0xBF, 0xEF,
+ 0x3C, 0x01, 0x63, 0x98, 0xBA, 0xF2, 0xCB, 0x62
+ },
+ {
+ 0x48, 0xDB, 0x53, 0x76, 0x5B, 0x82, 0xBD, 0x6F,
+ 0x25, 0x33, 0xEA, 0xE1, 0x7F, 0x67, 0x69, 0xD7,
+ 0xA4, 0xE3, 0xB2, 0x43, 0x74, 0x60, 0x1C, 0xDD,
+ 0x8E, 0xC0, 0xCA, 0x3A, 0xAB, 0x30, 0x93, 0xFD,
+ 0x2B, 0x99, 0x24, 0x38, 0x46, 0x0B, 0xAF, 0x8D,
+ 0xA5, 0x8F, 0xB9, 0xA8, 0x9B, 0x2C, 0x58, 0xF9,
+ 0x68, 0xE6, 0x36, 0x17, 0xCB, 0xEB, 0x18, 0x44,
+ 0xB0, 0x2D, 0x6A, 0x27, 0xC5, 0xB4, 0xAD, 0x41
+ },
+ {
+ 0x5C, 0x8B, 0x2E, 0x0E, 0x1B, 0x5C, 0x8F, 0x45,
+ 0x7D, 0x7F, 0x7B, 0xD9, 0xF0, 0x5A, 0x97, 0xE5,
+ 0x8D, 0xDA, 0x1D, 0x28, 0xDB, 0x9F, 0x34, 0xD1,
+ 0xCE, 0x73, 0x25, 0x28, 0xF9, 0x68, 0xBE, 0xDD,
+ 0x9E, 0x1C, 0xC9, 0x35, 0x2D, 0x0A, 0x5D, 0xF6,
+ 0x67, 0x29, 0x28, 0xBD, 0xD3, 0xEA, 0x6F, 0x5C,
+ 0xB0, 0x60, 0x77, 0xCF, 0x3A, 0xD3, 0xA7, 0x6E,
+ 0x29, 0xB2, 0x2E, 0x82, 0xBA, 0xC6, 0x7B, 0x61
+ },
+ {
+ 0x5B, 0x73, 0x91, 0xAA, 0x52, 0xF2, 0x76, 0xFA,
+ 0xB9, 0xC1, 0x38, 0x77, 0xF1, 0x22, 0x32, 0x70,
+ 0x84, 0x97, 0xFC, 0x02, 0x8F, 0xAA, 0x17, 0x32,
+ 0xA5, 0xDB, 0x07, 0x9E, 0x7F, 0xE0, 0x73, 0xED,
+ 0x0C, 0xC9, 0x52, 0x9C, 0xFC, 0x86, 0x3A, 0x4E,
+ 0xCB, 0xA4, 0xDC, 0x2F, 0x1E, 0xA9, 0xF6, 0xBD,
+ 0x69, 0x04, 0xF3, 0xA0, 0xC1, 0x07, 0x19, 0x3C,
+ 0x5E, 0x71, 0x1C, 0xB9, 0x11, 0xF3, 0x80, 0x25
+ },
+ {
+ 0x1D, 0x5A, 0xF7, 0x0F, 0x09, 0xA5, 0xFC, 0x69,
+ 0x16, 0xEF, 0x59, 0xA3, 0x8A, 0x86, 0x92, 0x6D,
+ 0xCA, 0xAE, 0x39, 0xA8, 0x95, 0x4D, 0x73, 0xFC,
+ 0x80, 0xA3, 0x50, 0x75, 0x1A, 0xDD, 0xA3, 0x8C,
+ 0x9D, 0x59, 0x75, 0x06, 0xDC, 0x05, 0xE1, 0xED,
+ 0x37, 0xBD, 0x2D, 0xB1, 0x59, 0x0F, 0x99, 0xAA,
+ 0x29, 0x6A, 0xEA, 0x13, 0xAB, 0x84, 0x43, 0xD5,
+ 0xA9, 0x23, 0x47, 0xFB, 0x85, 0xFC, 0x81, 0x6D
+ },
+ {
+ 0x80, 0xE3, 0x70, 0x92, 0x97, 0xD4, 0x41, 0x14,
+ 0xB9, 0xFB, 0xDF, 0x55, 0x67, 0xF0, 0x5F, 0x33,
+ 0x00, 0x94, 0xCF, 0x09, 0xF4, 0xC0, 0xEF, 0xCF,
+ 0xAC, 0x05, 0x09, 0x5C, 0x36, 0x08, 0x10, 0x77,
+ 0x30, 0xC1, 0xAA, 0x07, 0xFF, 0x23, 0x00, 0x25,
+ 0x62, 0xC7, 0xE8, 0x41, 0xA9, 0xF5, 0x66, 0x24,
+ 0xFF, 0xE2, 0xAB, 0xEC, 0x61, 0x1E, 0xB9, 0xE7,
+ 0x3E, 0x1C, 0xCB, 0xD8, 0xF6, 0x2B, 0x11, 0x49
+ },
+ {
+ 0xF9, 0x94, 0x5C, 0x19, 0x06, 0x77, 0x84, 0x61,
+ 0x94, 0x13, 0x2B, 0x49, 0x6E, 0xC6, 0x01, 0x2C,
+ 0x08, 0x75, 0x0E, 0x02, 0x5F, 0xD5, 0x52, 0xED,
+ 0x32, 0x4D, 0x3A, 0x49, 0xD8, 0x63, 0x66, 0xC0,
+ 0x3D, 0xCC, 0xDE, 0x8D, 0x5B, 0x5A, 0xC9, 0xA4,
+ 0xBC, 0xB7, 0x19, 0x5E, 0x63, 0xBC, 0xAA, 0x93,
+ 0x9E, 0x8E, 0xDA, 0x18, 0xF1, 0x16, 0x94, 0xB6,
+ 0xFA, 0x69, 0x37, 0x39, 0x3B, 0xFF, 0xDB, 0xF4
+ },
+ {
+ 0x8D, 0x8F, 0x2E, 0xD9, 0xAE, 0x39, 0x80, 0x9A,
+ 0xAC, 0xAD, 0x2F, 0xCE, 0xDB, 0xD2, 0xDC, 0xA7,
+ 0x30, 0xC7, 0x83, 0xE6, 0x2F, 0xF7, 0x0B, 0x8D,
+ 0x3C, 0x53, 0x62, 0xF0, 0x73, 0xF8, 0x34, 0x67,
+ 0x19, 0x7D, 0x37, 0x56, 0xB4, 0x45, 0x19, 0x5F,
+ 0xE7, 0x52, 0x11, 0x73, 0x64, 0xD9, 0x2C, 0xF4,
+ 0x2C, 0x02, 0x6E, 0x40, 0x9D, 0x5F, 0xF7, 0xA9,
+ 0x53, 0x3E, 0xAB, 0x78, 0xF1, 0x75, 0x4A, 0x2D
+ },
+ {
+ 0x3A, 0xC9, 0x9A, 0xC5, 0x3A, 0xC4, 0x9A, 0x56,
+ 0xFA, 0xA1, 0x86, 0x46, 0xB8, 0xE0, 0x8A, 0x2D,
+ 0x35, 0xBE, 0x80, 0xDF, 0x3E, 0xFB, 0xBB, 0xA6,
+ 0xBD, 0xA4, 0xAE, 0x90, 0x2B, 0x8D, 0x3E, 0x17,
+ 0x0A, 0x7B, 0xE8, 0x60, 0x5C, 0x34, 0xA4, 0xDC,
+ 0x9A, 0x73, 0x62, 0xB1, 0xC2, 0x01, 0xD7, 0x02,
+ 0x39, 0x1B, 0xD7, 0xD5, 0x20, 0x7F, 0x95, 0xFA,
+ 0x39, 0x0C, 0xE3, 0x3C, 0x43, 0x14, 0xD4, 0x11
+ },
+ {
+ 0xE4, 0x69, 0x4B, 0xDB, 0x31, 0x01, 0x6F, 0x25,
+ 0x53, 0x2C, 0x04, 0x3C, 0x5C, 0x63, 0x08, 0xCC,
+ 0x61, 0x9B, 0x0F, 0x87, 0x16, 0xF0, 0xC2, 0x9E,
+ 0xEB, 0x9F, 0x34, 0x0F, 0x47, 0xB0, 0x7B, 0x4A,
+ 0x4C, 0xE0, 0x98, 0x4C, 0x47, 0x24, 0xB1, 0x2A,
+ 0xB3, 0xD3, 0x2A, 0xF5, 0x16, 0xAD, 0xA2, 0x64,
+ 0x4C, 0xA6, 0x55, 0x8C, 0x1C, 0xB5, 0x81, 0x5C,
+ 0x12, 0x12, 0xA9, 0xB5, 0xFA, 0x83, 0x44, 0x12
+ },
+ {
+ 0xC6, 0x3C, 0x70, 0x3E, 0x62, 0x10, 0x8A, 0xA0,
+ 0xED, 0xC6, 0x83, 0xF3, 0x67, 0x8A, 0x00, 0x78,
+ 0x8F, 0xB1, 0x00, 0xC0, 0x96, 0x0B, 0x4E, 0x98,
+ 0xB7, 0x6A, 0x48, 0xE4, 0xE5, 0x92, 0x3D, 0x34,
+ 0x13, 0x44, 0x8D, 0xB8, 0x87, 0x5E, 0x3B, 0xCE,
+ 0xA7, 0xB6, 0xB8, 0x5D, 0x9E, 0x3E, 0xEA, 0xB7,
+ 0x2C, 0xD1, 0x50, 0x96, 0xFB, 0xBB, 0x2C, 0xC4,
+ 0x27, 0x03, 0x17, 0xFC, 0x34, 0xD4, 0x04, 0x71
+ },
+ {
+ 0x90, 0x80, 0xB7, 0xE8, 0x41, 0xEF, 0x51, 0x9C,
+ 0x54, 0x17, 0xE6, 0x90, 0xAA, 0xF4, 0x32, 0x79,
+ 0x07, 0xA8, 0x3D, 0xBC, 0xB7, 0x38, 0xD0, 0xF7,
+ 0x30, 0x8B, 0x1D, 0x61, 0x1D, 0xEF, 0x16, 0x9A,
+ 0x4F, 0x47, 0x42, 0x3E, 0x69, 0x0F, 0x27, 0xA7,
+ 0xE2, 0x74, 0x1A, 0xE7, 0x86, 0x5D, 0xA2, 0x3C,
+ 0x5D, 0x3F, 0x13, 0xC3, 0x16, 0x06, 0x3C, 0x7A,
+ 0xA1, 0xA9, 0x58, 0xE5, 0xBE, 0x83, 0x8F, 0x04
+ },
+ {
+ 0x29, 0x8D, 0xF6, 0x46, 0x91, 0x5F, 0x04, 0xD6,
+ 0x65, 0xE9, 0x67, 0x5E, 0x6A, 0x10, 0x31, 0x87,
+ 0x0D, 0x28, 0xEB, 0x7A, 0x04, 0x05, 0x66, 0x3E,
+ 0xAC, 0x3B, 0x10, 0xD1, 0xB4, 0xFA, 0x2E, 0x86,
+ 0x8E, 0x63, 0x73, 0xA5, 0x86, 0xCD, 0x73, 0xE0,
+ 0x6D, 0x8E, 0x7A, 0xD7, 0x71, 0xB4, 0xFB, 0x0A,
+ 0x8B, 0x4F, 0xC2, 0xDC, 0x6C, 0xE0, 0x9C, 0x64,
+ 0x2E, 0xE8, 0x99, 0x26, 0xFD, 0xC6, 0x52, 0x60
+ },
+ {
+ 0x4F, 0x2D, 0xE9, 0xC4, 0xF4, 0x34, 0x8B, 0xDB,
+ 0x32, 0x3A, 0x66, 0x83, 0x72, 0xE7, 0x71, 0x42,
+ 0x99, 0xC7, 0x76, 0xF9, 0x60, 0x2F, 0x3A, 0xF8,
+ 0xFB, 0x77, 0x46, 0xF1, 0x76, 0x86, 0x8D, 0xF3,
+ 0x54, 0x2B, 0x2F, 0xA6, 0x9E, 0xAE, 0x38, 0xB6,
+ 0xA2, 0x6A, 0x06, 0xCA, 0x89, 0x42, 0xF8, 0x82,
+ 0x78, 0xC6, 0x4E, 0x3D, 0x01, 0x7F, 0xEE, 0x67,
+ 0xA9, 0x4E, 0xA0, 0x23, 0xB2, 0xB5, 0xBE, 0x5F
+ },
+ {
+ 0x40, 0x18, 0xC5, 0xEE, 0x90, 0x93, 0xA6, 0x81,
+ 0x11, 0x2F, 0x4C, 0xE1, 0x93, 0xA1, 0xD6, 0x5E,
+ 0x05, 0x48, 0x72, 0x5F, 0x96, 0xAE, 0x31, 0x53,
+ 0x87, 0xCD, 0x76, 0x5C, 0x2B, 0x9C, 0x30, 0x68,
+ 0xAE, 0x4C, 0xBE, 0x5C, 0xD5, 0x40, 0x2C, 0x11,
+ 0xC5, 0x5A, 0x9D, 0x78, 0x5F, 0xFD, 0xFC, 0x2B,
+ 0xDE, 0x6E, 0x7A, 0xCF, 0x19, 0x61, 0x74, 0x75,
+ 0xDA, 0xE0, 0xEB, 0x01, 0x44, 0x56, 0xCE, 0x45
+ },
+ {
+ 0x6F, 0xCE, 0x66, 0x75, 0xE8, 0x6D, 0x7E, 0x85,
+ 0x70, 0x4C, 0x96, 0xC2, 0x95, 0x70, 0x3C, 0xD9,
+ 0x54, 0x98, 0x59, 0x0E, 0x50, 0x76, 0x4D, 0x23,
+ 0xD7, 0xA7, 0xA3, 0xA3, 0x22, 0x68, 0xA0, 0xB3,
+ 0xC9, 0x91, 0xE8, 0xF7, 0x84, 0x87, 0x69, 0x9A,
+ 0x55, 0x4B, 0x58, 0x1E, 0x33, 0x9C, 0x09, 0xAE,
+ 0xC9, 0x82, 0xE0, 0xBA, 0xA4, 0x31, 0x87, 0x93,
+ 0x62, 0x06, 0x35, 0xE1, 0xE2, 0xC8, 0xD9, 0xF2
+ },
+ {
+ 0xEB, 0xA9, 0x37, 0x85, 0x91, 0x97, 0xC7, 0xFD,
+ 0x41, 0x2D, 0xBC, 0x9A, 0xFC, 0x0D, 0x67, 0xCC,
+ 0x19, 0x81, 0x60, 0xB5, 0xA9, 0xCC, 0xEE, 0x87,
+ 0xC4, 0x1A, 0x86, 0x64, 0x85, 0x9F, 0x3E, 0xFD,
+ 0x96, 0x13, 0x66, 0xA8, 0x09, 0xC7, 0xC6, 0xBC,
+ 0x6F, 0xA8, 0x44, 0x92, 0x68, 0x14, 0xE0, 0xB4,
+ 0xEF, 0xA3, 0x7E, 0xDE, 0x2C, 0x88, 0x44, 0x26,
+ 0x8D, 0x7F, 0x35, 0x56, 0xE4, 0x46, 0x58, 0x1D
+ },
+ {
+ 0x83, 0xF4, 0x33, 0xE4, 0xF1, 0xC5, 0x07, 0x97,
+ 0x49, 0x3C, 0x58, 0xC2, 0x64, 0xCF, 0xFA, 0x70,
+ 0xC4, 0xA7, 0xA2, 0x4C, 0x33, 0x4D, 0xBA, 0xA3,
+ 0xC5, 0x74, 0x89, 0xD9, 0x70, 0xD4, 0x9D, 0x69,
+ 0x49, 0xFE, 0x45, 0xB7, 0x04, 0xF2, 0x65, 0xEF,
+ 0xD2, 0xAE, 0xE1, 0xAC, 0x1B, 0x46, 0xF4, 0xAA,
+ 0x3E, 0x4F, 0xAD, 0x68, 0xB3, 0x79, 0x61, 0xD2,
+ 0xC7, 0x28, 0x0A, 0xE1, 0x96, 0x72, 0xC8, 0x50
+ },
+ {
+ 0xB5, 0x57, 0xEC, 0xE1, 0x22, 0x72, 0x49, 0x3D,
+ 0xC2, 0x7E, 0x88, 0xA0, 0x5A, 0xDC, 0xD8, 0x61,
+ 0x87, 0x5A, 0x0C, 0xD0, 0x0B, 0xD6, 0x8A, 0xDC,
+ 0x3A, 0x30, 0x1D, 0x26, 0x3A, 0x9C, 0xD9, 0x93,
+ 0xA9, 0x6A, 0xE1, 0x4C, 0xFC, 0xDD, 0xCB, 0x99,
+ 0x7C, 0xC9, 0x86, 0x23, 0x93, 0x50, 0x50, 0xEA,
+ 0x43, 0x55, 0x2A, 0x34, 0x11, 0x07, 0x18, 0x7D,
+ 0xE7, 0x5C, 0x4E, 0xDE, 0xD7, 0xC7, 0x86, 0xBD
+ },
+ {
+ 0x95, 0x89, 0xC0, 0x81, 0x3B, 0x73, 0x93, 0xDB,
+ 0xAA, 0xAF, 0xE4, 0x7A, 0xF5, 0xB4, 0x08, 0xB2,
+ 0x3C, 0x8A, 0x8C, 0x8B, 0xAC, 0x62, 0x55, 0x4B,
+ 0x8F, 0xA1, 0x32, 0xA3, 0x58, 0xCE, 0x30, 0x83,
+ 0xB1, 0xD4, 0xE3, 0x97, 0x07, 0xCD, 0x54, 0xA5,
+ 0x5F, 0x67, 0x3D, 0x48, 0x11, 0x6E, 0xB1, 0xF9,
+ 0xED, 0x8D, 0xE9, 0xC9, 0x43, 0xCD, 0x2D, 0xE4,
+ 0x60, 0xA6, 0x8B, 0xDD, 0xF7, 0x1E, 0x98, 0x03
+ },
+ {
+ 0xAE, 0x4C, 0xCF, 0x27, 0xAB, 0x00, 0xA4, 0x0C,
+ 0x36, 0x37, 0xD3, 0xD2, 0xCE, 0x51, 0xA8, 0x3E,
+ 0xFB, 0xA6, 0x2D, 0x4A, 0x6F, 0xDA, 0xD6, 0x95,
+ 0x06, 0x3F, 0xBC, 0x60, 0xA2, 0xD8, 0x2E, 0xC5,
+ 0xA5, 0x4A, 0xCB, 0xE0, 0x9B, 0xA9, 0x38, 0x8F,
+ 0x49, 0xAA, 0xC2, 0x7C, 0x99, 0x2D, 0x84, 0x63,
+ 0x20, 0x36, 0xE1, 0xBD, 0xD4, 0xC5, 0x29, 0xBB,
+ 0xF1, 0x85, 0x1E, 0xAE, 0x0C, 0x6E, 0xA9, 0x02
+ },
+ {
+ 0xA3, 0x94, 0x4B, 0x2C, 0x31, 0xCB, 0x49, 0x40,
+ 0x80, 0xB7, 0xEE, 0x1D, 0xB0, 0x81, 0x68, 0x53,
+ 0xE4, 0x25, 0xB5, 0x4C, 0x48, 0xD6, 0x31, 0x44,
+ 0x7E, 0xA5, 0x2C, 0x1D, 0x29, 0x52, 0x07, 0x9B,
+ 0xD8, 0x8F, 0xAB, 0x9E, 0xD0, 0xB7, 0xD8, 0xC0,
+ 0xBA, 0xAF, 0x0C, 0x4E, 0xCA, 0x19, 0x10, 0xDB,
+ 0x6F, 0x98, 0x53, 0x4F, 0x0D, 0x42, 0xE5, 0xEB,
+ 0xB6, 0xC0, 0xA7, 0x5E, 0xF0, 0xD8, 0xB2, 0xC0
+ },
+ {
+ 0xCF, 0xA1, 0xA2, 0x24, 0x68, 0x5A, 0x5F, 0xB2,
+ 0x01, 0x04, 0x58, 0x20, 0x1C, 0xEB, 0x0C, 0xDA,
+ 0x21, 0xC8, 0x2B, 0x16, 0x02, 0xDC, 0x41, 0x35,
+ 0x85, 0xFB, 0xCE, 0x80, 0x97, 0x6F, 0x06, 0x1C,
+ 0x23, 0x5B, 0x13, 0x67, 0x71, 0x24, 0x98, 0x14,
+ 0x4A, 0xC1, 0x6A, 0x98, 0x54, 0xF6, 0xFB, 0x32,
+ 0x3C, 0xBE, 0xB6, 0x23, 0x69, 0xCF, 0x9B, 0x75,
+ 0x2B, 0x92, 0x52, 0xA2, 0xA7, 0xAC, 0xE1, 0xFD
+ },
+ {
+ 0xFA, 0x62, 0xC6, 0xCF, 0xC8, 0xF0, 0x79, 0xE5,
+ 0x8F, 0x3D, 0x3F, 0xEF, 0xD7, 0xC2, 0x24, 0xE7,
+ 0x1E, 0xBC, 0x69, 0xA9, 0x5B, 0x18, 0x35, 0xCC,
+ 0xC3, 0x2F, 0x35, 0x07, 0x77, 0x05, 0x11, 0x02,
+ 0x61, 0x54, 0x92, 0xD6, 0x7F, 0xB6, 0xDE, 0x62,
+ 0xCF, 0x2A, 0xD5, 0xB1, 0x84, 0x67, 0xFE, 0x87,
+ 0x15, 0x74, 0x88, 0x82, 0xDB, 0x89, 0xFF, 0x86,
+ 0xEF, 0xDF, 0x2F, 0x96, 0xF8, 0x13, 0x5E, 0xD2
+ },
+ {
+ 0xCC, 0x63, 0x3F, 0xD4, 0xEA, 0x6A, 0xC4, 0x08,
+ 0xC3, 0x87, 0x57, 0x56, 0xB9, 0x01, 0x28, 0x8A,
+ 0x1D, 0xE1, 0x91, 0x89, 0x28, 0x32, 0xBE, 0x2E,
+ 0x90, 0x26, 0xDC, 0x65, 0xC2, 0xFF, 0x00, 0x00,
+ 0x9F, 0x14, 0x36, 0xDD, 0xFF, 0x42, 0x06, 0x26,
+ 0x0A, 0x3D, 0x66, 0xEF, 0x61, 0x92, 0x14, 0x3E,
+ 0x57, 0x2F, 0x1E, 0x4B, 0xB8, 0xE5, 0xA7, 0x4B,
+ 0x12, 0x05, 0x5E, 0x42, 0x41, 0x1C, 0x18, 0xBC
+ },
+ {
+ 0x44, 0xD2, 0xBF, 0x7F, 0x36, 0x96, 0xB8, 0x93,
+ 0x3F, 0x25, 0x5B, 0x9B, 0xE1, 0xA4, 0xA6, 0xAE,
+ 0x33, 0x16, 0xC2, 0x5D, 0x03, 0x95, 0xF5, 0x90,
+ 0xB9, 0xB9, 0x89, 0x8F, 0x12, 0x7E, 0x40, 0xD3,
+ 0xF4, 0x12, 0x4D, 0x7B, 0xDB, 0xC8, 0x72, 0x5F,
+ 0x00, 0xB0, 0xD2, 0x81, 0x50, 0xFF, 0x05, 0xB4,
+ 0xA7, 0x9E, 0x5E, 0x04, 0xE3, 0x4A, 0x47, 0xE9,
+ 0x08, 0x7B, 0x3F, 0x79, 0xD4, 0x13, 0xAB, 0x7F
+ },
+ {
+ 0x96, 0xFB, 0xCB, 0xB6, 0x0B, 0xD3, 0x13, 0xB8,
+ 0x84, 0x50, 0x33, 0xE5, 0xBC, 0x05, 0x8A, 0x38,
+ 0x02, 0x74, 0x38, 0x57, 0x2D, 0x7E, 0x79, 0x57,
+ 0xF3, 0x68, 0x4F, 0x62, 0x68, 0xAA, 0xDD, 0x3A,
+ 0xD0, 0x8D, 0x21, 0x76, 0x7E, 0xD6, 0x87, 0x86,
+ 0x85, 0x33, 0x1B, 0xA9, 0x85, 0x71, 0x48, 0x7E,
+ 0x12, 0x47, 0x0A, 0xAD, 0x66, 0x93, 0x26, 0x71,
+ 0x6E, 0x46, 0x66, 0x7F, 0x69, 0xF8, 0xD7, 0xE8
+ },
+};
+
+
+
+
+#endif
+
+
+
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2.h
index 5672a786aa..a08d82efef 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2.h
@@ -1,14 +1,14 @@
/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2_H__
@@ -17,36 +17,36 @@
#include <stddef.h>
#include <stdint.h>
-#if defined(_WIN32) || defined(__CYGWIN__)
- #define BLAKE2_DLL_IMPORT __declspec(dllimport)
- #define BLAKE2_DLL_EXPORT __declspec(dllexport)
- #define BLAKE2_DLL_PRIVATE
-#elif __GNUC__ >= 4
- #define BLAKE2_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define BLAKE2_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define BLAKE2_DLL_PRIVATE __attribute__ ((visibility ("hidden")))
-#else
- #define BLAKE2_DLL_IMPORT
- #define BLAKE2_DLL_EXPORT
- #define BLAKE2_DLL_PRIVATE
+#if defined(_WIN32) || defined(__CYGWIN__)
+ #define BLAKE2_DLL_IMPORT __declspec(dllimport)
+ #define BLAKE2_DLL_EXPORT __declspec(dllexport)
+ #define BLAKE2_DLL_PRIVATE
+#elif __GNUC__ >= 4
+ #define BLAKE2_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define BLAKE2_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define BLAKE2_DLL_PRIVATE __attribute__ ((visibility ("hidden")))
+#else
+ #define BLAKE2_DLL_IMPORT
+ #define BLAKE2_DLL_EXPORT
+ #define BLAKE2_DLL_PRIVATE
#endif
-#if defined(BLAKE2_DLL)
- #if defined(BLAKE2_DLL_EXPORTS) // defined if we are building the DLL
- #define BLAKE2_API BLAKE2_DLL_EXPORT
- #else
- #define BLAKE2_API BLAKE2_DLL_IMPORT
- #endif
- #define BLAKE2_PRIVATE BLAKE2_DLL_PRIVATE // must only be used by hidden logic
-#else
- #define BLAKE2_API
- #define BLAKE2_PRIVATE
+#if defined(BLAKE2_DLL)
+ #if defined(BLAKE2_DLL_EXPORTS) // defined if we are building the DLL
+ #define BLAKE2_API BLAKE2_DLL_EXPORT
+ #else
+ #define BLAKE2_API BLAKE2_DLL_IMPORT
+ #endif
+ #define BLAKE2_PRIVATE BLAKE2_DLL_PRIVATE // must only be used by hidden logic
+#else
+ #define BLAKE2_API
+ #define BLAKE2_PRIVATE
#endif
#if defined(__cplusplus)
extern "C" {
-#elif defined(_MSC_VER) && !defined(inline)
-#define inline __inline
+#elif defined(_MSC_VER) && !defined(inline)
+#define inline __inline
#endif
enum blake2s_constant
@@ -67,56 +67,56 @@ extern "C" {
BLAKE2B_PERSONALBYTES = 16
};
-#pragma pack(push, 1)
- typedef struct __blake2s_param
- {
- uint8_t digest_length; // 1
- uint8_t key_length; // 2
- uint8_t fanout; // 3
- uint8_t depth; // 4
- uint32_t leaf_length; // 8
- uint8_t node_offset[6];// 14
- uint8_t node_depth; // 15
- uint8_t inner_length; // 16
- // uint8_t reserved[0];
- uint8_t salt[BLAKE2S_SALTBYTES]; // 24
- uint8_t personal[BLAKE2S_PERSONALBYTES]; // 32
- } blake2s_param;
-
+#pragma pack(push, 1)
+ typedef struct __blake2s_param
+ {
+ uint8_t digest_length; // 1
+ uint8_t key_length; // 2
+ uint8_t fanout; // 3
+ uint8_t depth; // 4
+ uint32_t leaf_length; // 8
+ uint8_t node_offset[6];// 14
+ uint8_t node_depth; // 15
+ uint8_t inner_length; // 16
+ // uint8_t reserved[0];
+ uint8_t salt[BLAKE2S_SALTBYTES]; // 24
+ uint8_t personal[BLAKE2S_PERSONALBYTES]; // 32
+ } blake2s_param;
+
typedef struct __blake2s_state
{
uint32_t h[8];
uint32_t t[2];
uint32_t f[2];
uint8_t buf[2 * BLAKE2S_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
+ uint32_t buflen;
+ uint8_t outlen;
uint8_t last_node;
} blake2s_state;
- typedef struct __blake2b_param
- {
- uint8_t digest_length; // 1
- uint8_t key_length; // 2
- uint8_t fanout; // 3
- uint8_t depth; // 4
- uint32_t leaf_length; // 8
- uint64_t node_offset; // 16
- uint8_t node_depth; // 17
- uint8_t inner_length; // 18
- uint8_t reserved[14]; // 32
- uint8_t salt[BLAKE2B_SALTBYTES]; // 48
- uint8_t personal[BLAKE2B_PERSONALBYTES]; // 64
- } blake2b_param;
-
+ typedef struct __blake2b_param
+ {
+ uint8_t digest_length; // 1
+ uint8_t key_length; // 2
+ uint8_t fanout; // 3
+ uint8_t depth; // 4
+ uint32_t leaf_length; // 8
+ uint64_t node_offset; // 16
+ uint8_t node_depth; // 17
+ uint8_t inner_length; // 18
+ uint8_t reserved[14]; // 32
+ uint8_t salt[BLAKE2B_SALTBYTES]; // 48
+ uint8_t personal[BLAKE2B_PERSONALBYTES]; // 64
+ } blake2b_param;
+
typedef struct __blake2b_state
{
uint64_t h[8];
uint64_t t[2];
uint64_t f[2];
uint8_t buf[2 * BLAKE2B_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
+ uint32_t buflen;
+ uint8_t outlen;
uint8_t last_node;
} blake2b_state;
@@ -124,50 +124,50 @@ extern "C" {
{
blake2s_state S[8][1];
blake2s_state R[1];
- uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
+ uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
+ uint32_t buflen;
+ uint8_t outlen;
} blake2sp_state;
typedef struct __blake2bp_state
{
blake2b_state S[4][1];
blake2b_state R[1];
- uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
+ uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
+ uint32_t buflen;
+ uint8_t outlen;
} blake2bp_state;
#pragma pack(pop)
- // Streaming API
- BLAKE2_API int blake2s_init( blake2s_state *S, size_t outlen );
- BLAKE2_API int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- BLAKE2_API int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
-
- BLAKE2_API int blake2b_init( blake2b_state *S, size_t outlen );
- BLAKE2_API int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- BLAKE2_API int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
-
- BLAKE2_API int blake2sp_init( blake2sp_state *S, size_t outlen );
- BLAKE2_API int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2sp_update( blake2sp_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2sp_final( blake2sp_state *S, uint8_t *out, size_t outlen );
-
- BLAKE2_API int blake2bp_init( blake2bp_state *S, size_t outlen );
- BLAKE2_API int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2bp_update( blake2bp_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2bp_final( blake2bp_state *S, uint8_t *out, size_t outlen );
-
- // Simple API
- BLAKE2_API int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
- BLAKE2_API int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- BLAKE2_API int blake2sp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
- BLAKE2_API int blake2bp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+ // Streaming API
+ BLAKE2_API int blake2s_init( blake2s_state *S, size_t outlen );
+ BLAKE2_API int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ BLAKE2_API int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
+ BLAKE2_API int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
+ BLAKE2_API int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
+
+ BLAKE2_API int blake2b_init( blake2b_state *S, size_t outlen );
+ BLAKE2_API int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ BLAKE2_API int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
+ BLAKE2_API int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
+ BLAKE2_API int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
+
+ BLAKE2_API int blake2sp_init( blake2sp_state *S, size_t outlen );
+ BLAKE2_API int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
+ BLAKE2_API int blake2sp_update( blake2sp_state *S, const uint8_t *in, size_t inlen );
+ BLAKE2_API int blake2sp_final( blake2sp_state *S, uint8_t *out, size_t outlen );
+
+ BLAKE2_API int blake2bp_init( blake2bp_state *S, size_t outlen );
+ BLAKE2_API int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
+ BLAKE2_API int blake2bp_update( blake2bp_state *S, const uint8_t *in, size_t inlen );
+ BLAKE2_API int blake2bp_final( blake2bp_state *S, uint8_t *out, size_t outlen );
+
+ // Simple API
+ BLAKE2_API int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+ BLAKE2_API int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+
+ BLAKE2_API int blake2sp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+ BLAKE2_API int blake2bp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
#if defined(__cplusplus)
}
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse2.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse2.h
index e27266568e..1ba153c87d 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse2.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse2.h
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2B_LOAD_SSE2_H__
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse41.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse41.h
index 6d1e4845f5..f6c1bc8393 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse41.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-load-sse41.h
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2B_LOAD_SSE41_H__
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-ref.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-ref.c
index d41eef290a..e58c43659d 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-ref.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-ref.c
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - reference C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#include <stdint.h>
@@ -43,36 +43,36 @@ static const uint8_t blake2b_sigma[12][16] =
};
-static inline int blake2b_set_lastnode( blake2b_state *S )
+static inline int blake2b_set_lastnode( blake2b_state *S )
{
- S->f[1] = ~0ULL;
+ S->f[1] = ~0ULL;
return 0;
}
-static inline int blake2b_clear_lastnode( blake2b_state *S )
+static inline int blake2b_clear_lastnode( blake2b_state *S )
{
- S->f[1] = 0ULL;
+ S->f[1] = 0ULL;
return 0;
}
/* Some helper functions, not necessarily useful */
-static inline int blake2b_set_lastblock( blake2b_state *S )
+static inline int blake2b_set_lastblock( blake2b_state *S )
{
if( S->last_node ) blake2b_set_lastnode( S );
- S->f[0] = ~0ULL;
+ S->f[0] = ~0ULL;
return 0;
}
-static inline int blake2b_clear_lastblock( blake2b_state *S )
+static inline int blake2b_clear_lastblock( blake2b_state *S )
{
if( S->last_node ) blake2b_clear_lastnode( S );
- S->f[0] = 0ULL;
+ S->f[0] = 0ULL;
return 0;
}
-static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
+static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
{
S->t[0] += inc;
S->t[1] += ( S->t[0] < inc );
@@ -81,106 +81,106 @@ static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t in
-// Parameter-related functions
-static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length )
+// Parameter-related functions
+static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length )
{
P->digest_length = digest_length;
return 0;
}
-static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout )
+static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout )
{
P->fanout = fanout;
return 0;
}
-static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth )
+static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth )
{
P->depth = depth;
return 0;
}
-static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length )
+static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length )
{
store32( &P->leaf_length, leaf_length );
return 0;
}
-static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset )
+static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset )
{
store64( &P->node_offset, node_offset );
return 0;
}
-static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth )
+static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth )
{
P->node_depth = node_depth;
return 0;
}
-static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length )
+static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length )
{
P->inner_length = inner_length;
return 0;
}
-static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] )
+static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] )
{
memcpy( P->salt, salt, BLAKE2B_SALTBYTES );
return 0;
}
-static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] )
+static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] )
{
memcpy( P->personal, personal, BLAKE2B_PERSONALBYTES );
return 0;
}
-static inline int blake2b_init0( blake2b_state *S )
+static inline int blake2b_init0( blake2b_state *S )
{
memset( S, 0, sizeof( blake2b_state ) );
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
+ for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
return 0;
}
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2b_init( blake2b_state *S, size_t outlen );
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
+#if defined(__cplusplus)
+extern "C" {
+#endif
+ int blake2b_init( blake2b_state *S, size_t outlen );
+ int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
+ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+#if defined(__cplusplus)
+}
+#endif
+
/* init xors IV with input parameter block */
int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
{
blake2b_init0( S );
- uint8_t *p = ( uint8_t * )( P );
+ uint8_t *p = ( uint8_t * )( P );
/* IV XOR ParamBlock */
- for( size_t i = 0; i < 8; ++i )
+ for( size_t i = 0; i < 8; ++i )
S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
- S->outlen = P->digest_length;
+ S->outlen = P->digest_length;
return 0;
}
-int blake2b_init( blake2b_state *S, size_t outlen )
+int blake2b_init( blake2b_state *S, size_t outlen )
{
blake2b_param P[1];
if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
- P->digest_length = ( uint8_t ) outlen;
+ P->digest_length = ( uint8_t ) outlen;
P->key_length = 0;
P->fanout = 1;
P->depth = 1;
@@ -195,7 +195,7 @@ int blake2b_init( blake2b_state *S, size_t outlen )
}
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
+int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
{
blake2b_param P[1];
@@ -203,8 +203,8 @@ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t k
if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
- P->digest_length = ( uint8_t ) outlen;
- P->key_length = ( uint8_t ) keylen;
+ P->digest_length = ( uint8_t ) outlen;
+ P->key_length = ( uint8_t ) keylen;
P->fanout = 1;
P->depth = 1;
store32( &P->leaf_length, 0 );
@@ -231,7 +231,7 @@ static int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCK
{
uint64_t m[16];
uint64_t v[16];
- size_t i;
+ size_t i;
for( i = 0; i < 16; ++i )
m[i] = load64( block + i * sizeof( m[i] ) );
@@ -290,29 +290,29 @@ static int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCK
return 0;
}
-
-int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
+
+int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
{
while( inlen > 0 )
{
- uint32_t left = S->buflen;
- uint32_t fill = 2 * BLAKE2B_BLOCKBYTES - left;
+ uint32_t left = S->buflen;
+ uint32_t fill = 2 * BLAKE2B_BLOCKBYTES - left;
if( inlen > fill )
{
- memcpy( S->buf + left, in, fill ); // Fill buffer
+ memcpy( S->buf + left, in, fill ); // Fill buffer
S->buflen += fill;
blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left
+ blake2b_compress( S, S->buf ); // Compress
+ memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left
S->buflen -= BLAKE2B_BLOCKBYTES;
in += fill;
inlen -= fill;
}
- else // inlen <= fill
+ else // inlen <= fill
{
- memcpy( S->buf + left, in, inlen );
- S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
+ memcpy( S->buf + left, in, inlen );
+ S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
in += inlen;
inlen -= inlen;
}
@@ -321,19 +321,19 @@ int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
return 0;
}
-int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
+int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
{
- uint8_t buffer[BLAKE2B_OUTBYTES];
- size_t i;
+ uint8_t buffer[BLAKE2B_OUTBYTES];
+ size_t i;
- if(S->outlen != outlen) return -1;
+ if(S->outlen != outlen) return -1;
if( S->buflen > BLAKE2B_BLOCKBYTES )
{
blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
blake2b_compress( S, S->buf );
S->buflen -= BLAKE2B_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen );
+ memmove( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen );
}
blake2b_increment_counter( S, S->buflen );
@@ -348,7 +348,7 @@ int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
return 0;
}
-int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
{
blake2b_state S[1];
@@ -372,8 +372,8 @@ int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_
if( blake2b_init( S, outlen ) < 0 ) return -1;
}
- if( blake2b_update( S, ( uint8_t * )in, inlen ) < 0 ) return -1;
- return blake2b_final( S, out, outlen );
+ if( blake2b_update( S, ( uint8_t * )in, inlen ) < 0 ) return -1;
+ return blake2b_final( S, out, outlen );
}
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-round.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-round.h
index 335f3689ff..cebc22550d 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-round.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-round.h
@@ -1,23 +1,23 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2B_ROUND_H__
#define __BLAKE2B_ROUND_H__
-#define LOAD(p) _mm_load_si128( (__m128i *)(p) )
-#define STORE(p,r) _mm_store_si128((__m128i *)(p), r)
-
-#define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
+#define LOAD(p) _mm_load_si128( (__m128i *)(p) )
+#define STORE(p,r) _mm_store_si128((__m128i *)(p), r)
+
+#define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
#define TOF(reg) _mm_castsi128_ps((reg))
@@ -138,7 +138,7 @@
#endif
-#if defined(HAVE_SSE4_1)
+#if defined(HAVE_SSE4_1)
#include "blake2b-load-sse41.h"
#else
#include "blake2b-load-sse2.h"
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-test.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-test.c
index 4404d2b33b..fe14c1f043 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-test.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b-test.c
@@ -1,43 +1,43 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#include <stdio.h>
-#include <string.h>
-#include "blake2.h"
-#include "blake2-kat.h" // Y_IGNORE
-int main( int argc, char **argv )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[KAT_LENGTH];
-
- for( size_t i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
-
- if( blake2b( hash, buf, key, BLAKE2B_OUTBYTES, i, BLAKE2B_KEYBYTES ) < 0 ||
- 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- puts( "error" );
- return -1;
- }
- }
-
- puts( "ok" );
- return 0;
-}
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+#include <stdio.h>
+#include <string.h>
+#include "blake2.h"
+#include "blake2-kat.h" // Y_IGNORE
+int main( int argc, char **argv )
+{
+ uint8_t key[BLAKE2B_KEYBYTES];
+ uint8_t buf[KAT_LENGTH];
+
+ for( size_t i = 0; i < BLAKE2B_KEYBYTES; ++i )
+ key[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ buf[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ {
+ uint8_t hash[BLAKE2B_OUTBYTES];
+
+ if( blake2b( hash, buf, key, BLAKE2B_OUTBYTES, i, BLAKE2B_KEYBYTES ) < 0 ||
+ 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
+ {
+ puts( "error" );
+ return -1;
+ }
+ }
+
+ puts( "ok" );
+ return 0;
+}
+
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b.c
index 0807184dd5..c1068e8640 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2b.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2b.c
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#include <stdint.h>
@@ -20,36 +20,36 @@
#include "blake2-config.h"
-#if defined(_MSC_VER)
-#include <intrin.h>
+#if defined(_MSC_VER)
+#include <intrin.h>
#endif
-
-#if defined(HAVE_SSE2)
+
+#if defined(HAVE_SSE2)
#include <emmintrin.h>
-// MSVC only defines _mm_set_epi64x for x86_64...
-#if defined(_MSC_VER) && !defined(_M_X64)
-static inline __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
-{
- return _mm_set_epi32( u1 >> 32, u1, u0 >> 32, u0 );
-}
-#endif
-#endif
-
+// MSVC only defines _mm_set_epi64x for x86_64...
+#if defined(_MSC_VER) && !defined(_M_X64)
+static inline __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
+{
+ return _mm_set_epi32( u1 >> 32, u1, u0 >> 32, u0 );
+}
+#endif
+#endif
+
#if defined(HAVE_SSSE3)
#include <tmmintrin.h>
#endif
-#if defined(HAVE_SSE4_1)
+#if defined(HAVE_SSE4_1)
#include <smmintrin.h>
#endif
#if defined(HAVE_AVX)
#include <immintrin.h>
#endif
-#if defined(HAVE_XOP) && !defined(_MSC_VER)
+#if defined(HAVE_XOP) && !defined(_MSC_VER)
#include <x86intrin.h>
#endif
-
-
+
+
#include "blake2b-round.h"
static const uint64_t blake2b_IV[8] =
@@ -78,39 +78,39 @@ static const uint8_t blake2b_sigma[12][16] =
/* Some helper functions, not necessarily useful */
-static inline int blake2b_set_lastnode( blake2b_state *S )
+static inline int blake2b_set_lastnode( blake2b_state *S )
{
- S->f[1] = ~0ULL;
+ S->f[1] = ~0ULL;
return 0;
}
-static inline int blake2b_clear_lastnode( blake2b_state *S )
+static inline int blake2b_clear_lastnode( blake2b_state *S )
{
- S->f[1] = 0ULL;
+ S->f[1] = 0ULL;
return 0;
}
-static inline int blake2b_set_lastblock( blake2b_state *S )
+static inline int blake2b_set_lastblock( blake2b_state *S )
{
if( S->last_node ) blake2b_set_lastnode( S );
- S->f[0] = ~0ULL;
+ S->f[0] = ~0ULL;
return 0;
}
-static inline int blake2b_clear_lastblock( blake2b_state *S )
+static inline int blake2b_clear_lastblock( blake2b_state *S )
{
if( S->last_node ) blake2b_clear_lastnode( S );
- S->f[0] = 0ULL;
+ S->f[0] = 0ULL;
return 0;
}
-static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
+static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
{
-#if defined(__x86_64__) && (defined(__GNUC__) || defined(__clang__))
- // ADD/ADC chain
+#if defined(__x86_64__) && (defined(__GNUC__) || defined(__clang__))
+ // ADD/ADC chain
__uint128_t t = ( ( __uint128_t )S->t[1] << 64 ) | S->t[0];
t += inc;
S->t[0] = ( uint64_t )( t >> 0 );
@@ -123,112 +123,112 @@ static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t in
}
-// Parameter-related functions
-static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length )
+// Parameter-related functions
+static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length )
{
P->digest_length = digest_length;
return 0;
}
-static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout )
+static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout )
{
P->fanout = fanout;
return 0;
}
-static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth )
+static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth )
{
P->depth = depth;
return 0;
}
-static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length )
+static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length )
{
P->leaf_length = leaf_length;
return 0;
}
-static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset )
+static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset )
{
P->node_offset = node_offset;
return 0;
}
-static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth )
+static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth )
{
P->node_depth = node_depth;
return 0;
}
-static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length )
+static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length )
{
P->inner_length = inner_length;
return 0;
}
-static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] )
+static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] )
{
memcpy( P->salt, salt, BLAKE2B_SALTBYTES );
return 0;
}
-static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] )
+static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] )
{
memcpy( P->personal, personal, BLAKE2B_PERSONALBYTES );
return 0;
}
-static inline int blake2b_init0( blake2b_state *S )
+static inline int blake2b_init0( blake2b_state *S )
{
memset( S, 0, sizeof( blake2b_state ) );
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
+ for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
return 0;
}
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2b_init( blake2b_state *S, size_t outlen );
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
+
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+ int blake2b_init( blake2b_state *S, size_t outlen );
+ int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
+ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
+ int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
+ int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+#if defined(__cplusplus)
+}
+#endif
+
/* init xors IV with input parameter block */
int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
{
- uint8_t *p, *h, *v;
- //blake2b_init0( S );
- v = ( uint8_t * )( blake2b_IV );
- h = ( uint8_t * )( S->h );
- p = ( uint8_t * )( P );
+ uint8_t *p, *h, *v;
+ //blake2b_init0( S );
+ v = ( uint8_t * )( blake2b_IV );
+ h = ( uint8_t * )( S->h );
+ p = ( uint8_t * )( P );
/* IV XOR ParamBlock */
memset( S, 0, sizeof( blake2b_state ) );
- for( int i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
+ for( int i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
- S->outlen = P->digest_length;
+ S->outlen = P->digest_length;
return 0;
}
/* Some sort of default parameter block initialization, for sequential blake2b */
-
-int blake2b_init( blake2b_state *S, size_t outlen )
+
+int blake2b_init( blake2b_state *S, size_t outlen )
{
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
+ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
+
const blake2b_param P =
{
- ( uint8_t ) outlen,
+ ( uint8_t ) outlen,
0,
1,
1,
@@ -240,19 +240,19 @@ int blake2b_init( blake2b_state *S, size_t outlen )
{0},
{0}
};
- return blake2b_init_param( S, &P );
-}
+ return blake2b_init_param( S, &P );
+}
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
+int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
+{
if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
- if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1;
+ if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1;
const blake2b_param P =
{
- ( uint8_t ) outlen,
- ( uint8_t ) keylen,
+ ( uint8_t ) outlen,
+ ( uint8_t ) keylen,
1,
1,
0,
@@ -277,7 +277,7 @@ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t k
return 0;
}
-static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
+static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
{
__m128i row1l, row1h;
__m128i row2l, row2h;
@@ -289,7 +289,7 @@ static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2
const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 );
const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 );
#endif
-#if defined(HAVE_SSE4_1)
+#if defined(HAVE_SSE4_1)
const __m128i m0 = LOADU( block + 00 );
const __m128i m1 = LOADU( block + 16 );
const __m128i m2 = LOADU( block + 32 );
@@ -348,28 +348,28 @@ static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2
}
-int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
+int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
{
while( inlen > 0 )
{
- uint32_t left = S->buflen;
- uint32_t fill = 2 * BLAKE2B_BLOCKBYTES - left;
+ uint32_t left = S->buflen;
+ uint32_t fill = 2 * BLAKE2B_BLOCKBYTES - left;
if( inlen > fill )
{
- memcpy( S->buf + left, in, fill ); // Fill buffer
+ memcpy( S->buf + left, in, fill ); // Fill buffer
S->buflen += fill;
blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left
+ blake2b_compress( S, S->buf ); // Compress
+ memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left
S->buflen -= BLAKE2B_BLOCKBYTES;
in += fill;
inlen -= fill;
}
- else // inlen <= fill
+ else // inlen <= fill
{
memcpy( S->buf + left, in, inlen );
- S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
+ S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
in += inlen;
inlen -= inlen;
}
@@ -379,16 +379,16 @@ int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
}
-int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
+int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
{
- if(S->outlen != outlen) return -1;
+ if(S->outlen != outlen) return -1;
if( S->buflen > BLAKE2B_BLOCKBYTES )
{
blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
blake2b_compress( S, S->buf );
S->buflen -= BLAKE2B_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen );
+ memmove( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen );
}
blake2b_increment_counter( S, S->buflen );
@@ -400,7 +400,7 @@ int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
}
-int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
{
blake2b_state S[1];
@@ -424,8 +424,8 @@ int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_
if( blake2b_init( S, outlen ) < 0 ) return -1;
}
- if( blake2b_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
- return blake2b_final( S, out, outlen );
+ if( blake2b_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
+ return blake2b_final( S, out, outlen );
}
#if defined(SUPERCOP)
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp-test.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp-test.c
index e6a67b03ce..95fd5e43ac 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp-test.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp-test.c
@@ -1,44 +1,44 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#include <stdio.h>
-#include <string.h>
-#include "blake2.h"
-#include "blake2-kat.h" // Y_IGNORE
-
-int main( int argc, char **argv )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[KAT_LENGTH];
-
- for( size_t i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
-
- if( blake2bp( hash, buf, key, BLAKE2B_OUTBYTES, i, BLAKE2B_KEYBYTES ) < 0 ||
- 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- puts( "error" );
- return -1;
- }
- }
-
- puts( "ok" );
- return 0;
-}
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+#include <stdio.h>
+#include <string.h>
+#include "blake2.h"
+#include "blake2-kat.h" // Y_IGNORE
+
+int main( int argc, char **argv )
+{
+ uint8_t key[BLAKE2B_KEYBYTES];
+ uint8_t buf[KAT_LENGTH];
+
+ for( size_t i = 0; i < BLAKE2B_KEYBYTES; ++i )
+ key[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ buf[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ {
+ uint8_t hash[BLAKE2B_OUTBYTES];
+
+ if( blake2bp( hash, buf, key, BLAKE2B_OUTBYTES, i, BLAKE2B_KEYBYTES ) < 0 ||
+ 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
+ {
+ puts( "error" );
+ return -1;
+ }
+ }
+
+ puts( "ok" );
+ return 0;
+}
+
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp.c
index f7e1923cd5..4522161171 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2bp.c
@@ -1,274 +1,274 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-
-#if defined(_OPENMP)
-#include <omp.h>
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 4
-
-static int blake2bp_init_leaf( blake2b_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset )
-{
- blake2b_param P[1];
- P->digest_length = outlen;
- P->key_length = keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32(&P->leaf_length, 0);
- store64(&P->node_offset, offset);
- P->node_depth = 0;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- blake2b_init_param( S, P );
- S->outlen = P->inner_length;
- return 0;
-}
-
-static int blake2bp_init_root( blake2b_state *S, uint8_t outlen, uint8_t keylen )
-{
- blake2b_param P[1];
- P->digest_length = outlen;
- P->key_length = keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32(&P->leaf_length, 0);
- store64(&P->node_offset, 0);
- P->node_depth = 1;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- blake2b_init_param( S, P );
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-int blake2bp_init( blake2bp_state *S, size_t outlen )
-{
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
-
- if( blake2bp_init_root( S->R, ( uint8_t ) outlen, 0 ) < 0 )
- return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], ( uint8_t ) outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- S->outlen = ( uint8_t ) outlen;
- return 0;
-}
-
-int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
-
- if( blake2bp_init_root( S->R, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
- return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
- return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- S->outlen = ( uint8_t ) outlen;
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2bp_update( blake2bp_state *S, const uint8_t *in, size_t inlen )
-{
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- omp_set_num_threads(PARALLELISM_DEGREE);
- #pragma omp parallel shared(S)
-#else
- for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
-#endif
- {
-#if defined(_OPENMP)
- size_t id__ = ( size_t ) omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const uint8_t *in__ = ( const uint8_t * )in;
- in__ += id__ * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S->S[id__], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = ( uint32_t ) left + ( uint32_t ) inlen;
- return 0;
-}
-
-
-
-int blake2bp_final( blake2bp_state *S, uint8_t *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
-
- if(S->outlen != outlen) return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2B_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
-
- if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
-
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
- }
-
- blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
- }
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( S->R, out, outlen );
-}
-
-int blake2bp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
- blake2b_state S[PARALLELISM_DEGREE][1];
- blake2b_state FS[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
- return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- omp_set_num_threads(PARALLELISM_DEGREE);
- #pragma omp parallel shared(S,hash)
-#else
- for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
-#endif
- {
-#if defined(_OPENMP)
- size_t id__ = ( size_t ) omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const uint8_t *in__ = ( const uint8_t * )in;
- in__ += id__ * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S[id__], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
-
- if( inlen__ > id__ * BLAKE2B_BLOCKBYTES )
- {
- const size_t left = inlen__ - id__ * BLAKE2B_BLOCKBYTES;
- const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
- blake2b_update( S[id__], in__, len );
- }
-
- blake2b_final( S[id__], hash[id__], BLAKE2B_OUTBYTES );
- }
-
- if( blake2bp_init_root( FS, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
- return -1;
-
- FS->last_node = 1; // Mark as last node
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( FS, out, outlen );
-}
-
-
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#if defined(_OPENMP)
+#include <omp.h>
+#endif
+
+#include "blake2.h"
+#include "blake2-impl.h"
+
+#define PARALLELISM_DEGREE 4
+
+static int blake2bp_init_leaf( blake2b_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset )
+{
+ blake2b_param P[1];
+ P->digest_length = outlen;
+ P->key_length = keylen;
+ P->fanout = PARALLELISM_DEGREE;
+ P->depth = 2;
+ store32(&P->leaf_length, 0);
+ store64(&P->node_offset, offset);
+ P->node_depth = 0;
+ P->inner_length = BLAKE2B_OUTBYTES;
+ memset( P->reserved, 0, sizeof( P->reserved ) );
+ memset( P->salt, 0, sizeof( P->salt ) );
+ memset( P->personal, 0, sizeof( P->personal ) );
+ blake2b_init_param( S, P );
+ S->outlen = P->inner_length;
+ return 0;
+}
+
+static int blake2bp_init_root( blake2b_state *S, uint8_t outlen, uint8_t keylen )
+{
+ blake2b_param P[1];
+ P->digest_length = outlen;
+ P->key_length = keylen;
+ P->fanout = PARALLELISM_DEGREE;
+ P->depth = 2;
+ store32(&P->leaf_length, 0);
+ store64(&P->node_offset, 0);
+ P->node_depth = 1;
+ P->inner_length = BLAKE2B_OUTBYTES;
+ memset( P->reserved, 0, sizeof( P->reserved ) );
+ memset( P->salt, 0, sizeof( P->salt ) );
+ memset( P->personal, 0, sizeof( P->personal ) );
+ blake2b_init_param( S, P );
+ S->outlen = P->digest_length;
+ return 0;
+}
+
+
+int blake2bp_init( blake2bp_state *S, size_t outlen )
+{
+ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
+
+ memset( S->buf, 0, sizeof( S->buf ) );
+ S->buflen = 0;
+
+ if( blake2bp_init_root( S->R, ( uint8_t ) outlen, 0 ) < 0 )
+ return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ if( blake2bp_init_leaf( S->S[i], ( uint8_t ) outlen, 0, i ) < 0 ) return -1;
+
+ S->R->last_node = 1;
+ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+ S->outlen = ( uint8_t ) outlen;
+ return 0;
+}
+
+int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
+{
+ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
+
+ if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
+
+ memset( S->buf, 0, sizeof( S->buf ) );
+ S->buflen = 0;
+
+ if( blake2bp_init_root( S->R, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
+ return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ if( blake2bp_init_leaf( S->S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
+ return -1;
+
+ S->R->last_node = 1;
+ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+ S->outlen = ( uint8_t ) outlen;
+ {
+ uint8_t block[BLAKE2B_BLOCKBYTES];
+ memset( block, 0, BLAKE2B_BLOCKBYTES );
+ memcpy( block, key, keylen );
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
+
+ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
+ }
+ return 0;
+}
+
+
+int blake2bp_update( blake2bp_state *S, const uint8_t *in, size_t inlen )
+{
+ size_t left = S->buflen;
+ size_t fill = sizeof( S->buf ) - left;
+
+ if( left && inlen >= fill )
+ {
+ memcpy( S->buf + left, in, fill );
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
+
+ in += fill;
+ inlen -= fill;
+ left = 0;
+ }
+
+#if defined(_OPENMP)
+ omp_set_num_threads(PARALLELISM_DEGREE);
+ #pragma omp parallel shared(S)
+#else
+ for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
+#endif
+ {
+#if defined(_OPENMP)
+ size_t id__ = ( size_t ) omp_get_thread_num();
+#endif
+ size_t inlen__ = inlen;
+ const uint8_t *in__ = ( const uint8_t * )in;
+ in__ += id__ * BLAKE2B_BLOCKBYTES;
+
+ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
+ {
+ blake2b_update( S->S[id__], in__, BLAKE2B_BLOCKBYTES );
+ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+ }
+ }
+
+ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
+ inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+
+ if( inlen > 0 )
+ memcpy( S->buf + left, in, inlen );
+
+ S->buflen = ( uint32_t ) left + ( uint32_t ) inlen;
+ return 0;
+}
+
+
+
+int blake2bp_final( blake2bp_state *S, uint8_t *out, size_t outlen )
+{
+ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
+
+ if(S->outlen != outlen) return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ {
+ if( S->buflen > i * BLAKE2B_BLOCKBYTES )
+ {
+ size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
+
+ if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
+
+ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
+ }
+
+ blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
+ }
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
+
+ return blake2b_final( S->R, out, outlen );
+}
+
+int blake2bp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+{
+ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
+ blake2b_state S[PARALLELISM_DEGREE][1];
+ blake2b_state FS[1];
+
+ /* Verify parameters */
+ if ( NULL == in && inlen > 0 ) return -1;
+
+ if ( NULL == out ) return -1;
+
+ if ( NULL == key && keylen > 0) return -1;
+
+ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
+
+ if( keylen > BLAKE2B_KEYBYTES ) return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ if( blake2bp_init_leaf( S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
+ return -1;
+
+ S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node
+
+ if( keylen > 0 )
+ {
+ uint8_t block[BLAKE2B_BLOCKBYTES];
+ memset( block, 0, BLAKE2B_BLOCKBYTES );
+ memcpy( block, key, keylen );
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
+
+ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
+ }
+
+#if defined(_OPENMP)
+ omp_set_num_threads(PARALLELISM_DEGREE);
+ #pragma omp parallel shared(S,hash)
+#else
+ for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
+#endif
+ {
+#if defined(_OPENMP)
+ size_t id__ = ( size_t ) omp_get_thread_num();
+#endif
+ size_t inlen__ = inlen;
+ const uint8_t *in__ = ( const uint8_t * )in;
+ in__ += id__ * BLAKE2B_BLOCKBYTES;
+
+ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
+ {
+ blake2b_update( S[id__], in__, BLAKE2B_BLOCKBYTES );
+ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
+ }
+
+ if( inlen__ > id__ * BLAKE2B_BLOCKBYTES )
+ {
+ const size_t left = inlen__ - id__ * BLAKE2B_BLOCKBYTES;
+ const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
+ blake2b_update( S[id__], in__, len );
+ }
+
+ blake2b_final( S[id__], hash[id__], BLAKE2B_OUTBYTES );
+ }
+
+ if( blake2bp_init_root( FS, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
+ return -1;
+
+ FS->last_node = 1; // Mark as last node
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
+
+ return blake2b_final( FS, out, outlen );
+}
+
+
+
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse2.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse2.h
index 3b5120d300..b24483cf93 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse2.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse2.h
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2S_LOAD_SSE2_H__
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse41.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse41.h
index 49579f1e49..3ac12eb6f5 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse41.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-sse41.h
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2S_LOAD_SSE41_H__
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-xop.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-xop.h
index 3115ef637c..ac591a77d1 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-xop.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-load-xop.h
@@ -1,31 +1,31 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2S_LOAD_XOP_H__
#define __BLAKE2S_LOAD_XOP_H__
-#define TOB(x) ((x)*4*0x01010101 + 0x03020100) // ..or not TOB
+#define TOB(x) ((x)*4*0x01010101 + 0x03020100) // ..or not TOB
/* Basic VPPERM emulation, for testing purposes */
-/*static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel)
+/*static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel)
{
const __m128i sixteen = _mm_set1_epi8(16);
const __m128i t0 = _mm_shuffle_epi8(src1, sel);
const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen));
const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen),
- _mm_cmpgt_epi8(sel, sixteen)); // (>=16) = 0xff : 00
+ _mm_cmpgt_epi8(sel, sixteen)); // (>=16) = 0xff : 00
return _mm_blendv_epi8(t0, s1, mask);
-}*/
+}*/
#define LOAD_MSG_0_1(buf) \
buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) );
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-ref.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-ref.c
index 65c5a5ccc9..ab86cc1b34 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-ref.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-ref.c
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - reference C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#include <stdint.h>
@@ -38,143 +38,143 @@ static const uint8_t blake2s_sigma[10][16] =
{ 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
};
-static inline int blake2s_set_lastnode( blake2s_state *S )
+static inline int blake2s_set_lastnode( blake2s_state *S )
{
- S->f[1] = ~0U;
+ S->f[1] = ~0U;
return 0;
}
-static inline int blake2s_clear_lastnode( blake2s_state *S )
+static inline int blake2s_clear_lastnode( blake2s_state *S )
{
- S->f[1] = 0U;
+ S->f[1] = 0U;
return 0;
}
/* Some helper functions, not necessarily useful */
-static inline int blake2s_set_lastblock( blake2s_state *S )
+static inline int blake2s_set_lastblock( blake2s_state *S )
{
if( S->last_node ) blake2s_set_lastnode( S );
- S->f[0] = ~0U;
+ S->f[0] = ~0U;
return 0;
}
-static inline int blake2s_clear_lastblock( blake2s_state *S )
+static inline int blake2s_clear_lastblock( blake2s_state *S )
{
if( S->last_node ) blake2s_clear_lastnode( S );
- S->f[0] = 0U;
+ S->f[0] = 0U;
return 0;
}
-static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
+static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
{
S->t[0] += inc;
S->t[1] += ( S->t[0] < inc );
return 0;
}
-// Parameter-related functions
-static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length )
+// Parameter-related functions
+static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length )
{
P->digest_length = digest_length;
return 0;
}
-static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout )
+static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout )
{
P->fanout = fanout;
return 0;
}
-static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth )
+static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth )
{
P->depth = depth;
return 0;
}
-static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length )
+static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length )
{
store32( &P->leaf_length, leaf_length );
return 0;
}
-static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset )
+static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset )
{
store48( P->node_offset, node_offset );
return 0;
}
-static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth )
+static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth )
{
P->node_depth = node_depth;
return 0;
}
-static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length )
+static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length )
{
P->inner_length = inner_length;
return 0;
}
-static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] )
+static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] )
{
memcpy( P->salt, salt, BLAKE2S_SALTBYTES );
return 0;
}
-static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] )
+static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] )
{
memcpy( P->personal, personal, BLAKE2S_PERSONALBYTES );
return 0;
}
-static inline int blake2s_init0( blake2s_state *S )
+static inline int blake2s_init0( blake2s_state *S )
{
memset( S, 0, sizeof( blake2s_state ) );
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
+ for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
return 0;
}
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2s_init( blake2s_state *S, size_t outlen );
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
+#if defined(__cplusplus)
+extern "C" {
+#endif
+ int blake2s_init( blake2s_state *S, size_t outlen );
+ int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
+ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+#if defined(__cplusplus)
+}
+#endif
+
/* init2 xors IV with input parameter block */
int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
{
blake2s_init0( S );
- uint32_t *p = ( uint32_t * )( P );
+ uint32_t *p = ( uint32_t * )( P );
/* IV XOR ParamBlock */
- for( size_t i = 0; i < 8; ++i )
+ for( size_t i = 0; i < 8; ++i )
S->h[i] ^= load32( &p[i] );
- S->outlen = P->digest_length;
+ S->outlen = P->digest_length;
return 0;
}
-// Sequential blake2s initialization
-int blake2s_init( blake2s_state *S, size_t outlen )
+// Sequential blake2s initialization
+int blake2s_init( blake2s_state *S, size_t outlen )
{
blake2s_param P[1];
/* Move interval verification here? */
if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
- P->digest_length = ( uint8_t) outlen;
+ P->digest_length = ( uint8_t) outlen;
P->key_length = 0;
P->fanout = 1;
P->depth = 1;
@@ -182,13 +182,13 @@ int blake2s_init( blake2s_state *S, size_t outlen )
store48( &P->node_offset, 0 );
P->node_depth = 0;
P->inner_length = 0;
- // memset(P->reserved, 0, sizeof(P->reserved) );
+ // memset(P->reserved, 0, sizeof(P->reserved) );
memset( P->salt, 0, sizeof( P->salt ) );
memset( P->personal, 0, sizeof( P->personal ) );
return blake2s_init_param( S, P );
}
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
+int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
{
blake2s_param P[1];
@@ -196,15 +196,15 @@ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t k
if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
- P->digest_length = ( uint8_t ) outlen;
- P->key_length = ( uint8_t ) keylen;
+ P->digest_length = ( uint8_t ) outlen;
+ P->key_length = ( uint8_t ) keylen;
P->fanout = 1;
P->depth = 1;
store32( &P->leaf_length, 0 );
store48( &P->node_offset, 0 );
P->node_depth = 0;
P->inner_length = 0;
- // memset(P->reserved, 0, sizeof(P->reserved) );
+ // memset(P->reserved, 0, sizeof(P->reserved) );
memset( P->salt, 0, sizeof( P->salt ) );
memset( P->personal, 0, sizeof( P->personal ) );
@@ -225,10 +225,10 @@ static int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCK
uint32_t m[16];
uint32_t v[16];
- for( size_t i = 0; i < 16; ++i )
+ for( size_t i = 0; i < 16; ++i )
m[i] = load32( block + i * sizeof( m[i] ) );
- for( size_t i = 0; i < 8; ++i )
+ for( size_t i = 0; i < 8; ++i )
v[i] = S->h[i];
v[ 8] = blake2s_IV[0];
@@ -272,7 +272,7 @@ static int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCK
ROUND( 8 );
ROUND( 9 );
- for( size_t i = 0; i < 8; ++i )
+ for( size_t i = 0; i < 8; ++i )
S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
#undef G
@@ -281,28 +281,28 @@ static int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCK
}
-int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
+int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
{
while( inlen > 0 )
{
- uint32_t left = S->buflen;
- uint32_t fill = 2 * BLAKE2S_BLOCKBYTES - left;
+ uint32_t left = S->buflen;
+ uint32_t fill = 2 * BLAKE2S_BLOCKBYTES - left;
if( inlen > fill )
{
- memcpy( S->buf + left, in, fill ); // Fill buffer
+ memcpy( S->buf + left, in, fill ); // Fill buffer
S->buflen += fill;
blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
+ blake2s_compress( S, S->buf ); // Compress
+ memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
S->buflen -= BLAKE2S_BLOCKBYTES;
in += fill;
inlen -= fill;
}
- else // inlen <= fill
+ else // inlen <= fill
{
- memcpy( S->buf + left, in, inlen );
- S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
+ memcpy( S->buf + left, in, inlen );
+ S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
in += inlen;
inlen -= inlen;
}
@@ -311,19 +311,19 @@ int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
return 0;
}
-int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
+int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
{
- uint8_t buffer[BLAKE2S_OUTBYTES];
- size_t i;
+ uint8_t buffer[BLAKE2S_OUTBYTES];
+ size_t i;
- if(S->outlen != outlen) return -1;
+ if(S->outlen != outlen) return -1;
if( S->buflen > BLAKE2S_BLOCKBYTES )
{
blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
blake2s_compress( S, S->buf );
S->buflen -= BLAKE2S_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen );
+ memmove( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen );
}
blake2s_increment_counter( S, ( uint32_t )S->buflen );
@@ -333,12 +333,12 @@ int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
+
memcpy( out, buffer, outlen );
return 0;
}
-int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
{
blake2s_state S[1];
@@ -347,7 +347,7 @@ int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_
if ( NULL == out ) return -1;
- if ( NULL == key && keylen > 0 ) return -1;
+ if ( NULL == key && keylen > 0 ) return -1;
if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
@@ -362,7 +362,7 @@ int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_
if( blake2s_init( S, outlen ) < 0 ) return -1;
}
- if( blake2s_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
- return blake2s_final( S, out, outlen );
+ if( blake2s_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
+ return blake2s_final( S, out, outlen );
}
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-round.h b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-round.h
index aea97119cd..1e2f2b7f59 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-round.h
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-round.h
@@ -1,23 +1,23 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#pragma once
#ifndef __BLAKE2S_ROUND_H__
#define __BLAKE2S_ROUND_H__
-#define LOAD(p) _mm_load_si128( (__m128i *)(p) )
-#define STORE(p,r) _mm_store_si128((__m128i *)(p), r)
-
-#define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
+#define LOAD(p) _mm_load_si128( (__m128i *)(p) )
+#define STORE(p,r) _mm_store_si128((__m128i *)(p), r)
+
+#define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
#define TOF(reg) _mm_castsi128_ps((reg))
@@ -69,7 +69,7 @@
#if defined(HAVE_XOP)
#include "blake2s-load-xop.h"
-#elif defined(HAVE_SSE4_1)
+#elif defined(HAVE_SSE4_1)
#include "blake2s-load-sse41.h"
#else
#include "blake2s-load-sse2.h"
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-test.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-test.c
index 7a7c3a5d61..caab342e6f 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-test.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s-test.c
@@ -1,43 +1,43 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#include <stdio.h>
-#include <string.h>
-#include "blake2.h"
-#include "blake2-kat.h" // Y_IGNORE
-int main( int argc, char **argv )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[KAT_LENGTH];
-
- for( size_t i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
-
- if( blake2s( hash, buf, key, BLAKE2S_OUTBYTES, i, BLAKE2S_KEYBYTES ) < 0 ||
- 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- puts( "error" );
- return -1;
- }
- }
-
- puts( "ok" );
- return 0;
-}
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+#include <stdio.h>
+#include <string.h>
+#include "blake2.h"
+#include "blake2-kat.h" // Y_IGNORE
+int main( int argc, char **argv )
+{
+ uint8_t key[BLAKE2S_KEYBYTES];
+ uint8_t buf[KAT_LENGTH];
+
+ for( size_t i = 0; i < BLAKE2S_KEYBYTES; ++i )
+ key[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ buf[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ {
+ uint8_t hash[BLAKE2S_OUTBYTES];
+
+ if( blake2s( hash, buf, key, BLAKE2S_OUTBYTES, i, BLAKE2S_KEYBYTES ) < 0 ||
+ 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
+ {
+ puts( "error" );
+ return -1;
+ }
+ }
+
+ puts( "ok" );
+ return 0;
+}
+
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s.c
index 245abff6fa..47514685b8 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2s.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2s.c
@@ -1,14 +1,14 @@
/*
BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
#include <stdint.h>
@@ -20,32 +20,32 @@
#include "blake2-config.h"
-#if defined(_MSC_VER)
-#include <intrin.h>
-#endif
+#if defined(_MSC_VER)
+#include <intrin.h>
+#endif
-#if defined(HAVE_SSE2)
+#if defined(HAVE_SSE2)
#include <emmintrin.h>
-// MSVC only defines _mm_set_epi64x for x86_64...
-#if defined(_MSC_VER) && !defined(_M_X64)
-static inline __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
-{
- return _mm_set_epi32( u1 >> 32, u1, u0 >> 32, u0 );
-}
-#endif
-#endif
-
-
+// MSVC only defines _mm_set_epi64x for x86_64...
+#if defined(_MSC_VER) && !defined(_M_X64)
+static inline __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
+{
+ return _mm_set_epi32( u1 >> 32, u1, u0 >> 32, u0 );
+}
+#endif
+#endif
+
+
#if defined(HAVE_SSSE3)
#include <tmmintrin.h>
#endif
-#if defined(HAVE_SSE4_1)
+#if defined(HAVE_SSE4_1)
#include <smmintrin.h>
#endif
#if defined(HAVE_AVX)
#include <immintrin.h>
#endif
-#if defined(HAVE_XOP) && !defined(_MSC_VER)
+#if defined(HAVE_XOP) && !defined(_MSC_VER)
#include <x86intrin.h>
#endif
@@ -73,35 +73,35 @@ static const uint8_t blake2s_sigma[10][16] =
/* Some helper functions, not necessarily useful */
-static inline int blake2s_set_lastnode( blake2s_state *S )
+static inline int blake2s_set_lastnode( blake2s_state *S )
{
- S->f[1] = ~0U;
+ S->f[1] = ~0U;
return 0;
}
-static inline int blake2s_clear_lastnode( blake2s_state *S )
+static inline int blake2s_clear_lastnode( blake2s_state *S )
{
- S->f[1] = 0U;
+ S->f[1] = 0U;
return 0;
}
-static inline int blake2s_set_lastblock( blake2s_state *S )
+static inline int blake2s_set_lastblock( blake2s_state *S )
{
if( S->last_node ) blake2s_set_lastnode( S );
- S->f[0] = ~0U;
+ S->f[0] = ~0U;
return 0;
}
-static inline int blake2s_clear_lastblock( blake2s_state *S )
+static inline int blake2s_clear_lastblock( blake2s_state *S )
{
if( S->last_node ) blake2s_clear_lastnode( S );
- S->f[0] = 0U;
+ S->f[0] = 0U;
return 0;
}
-static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
+static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
{
uint64_t t = ( ( uint64_t )S->t[1] << 32 ) | S->t[0];
t += inc;
@@ -111,107 +111,107 @@ static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t in
}
-// Parameter-related functions
-static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length )
+// Parameter-related functions
+static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length )
{
P->digest_length = digest_length;
return 0;
}
-static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout )
+static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout )
{
P->fanout = fanout;
return 0;
}
-static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth )
+static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth )
{
P->depth = depth;
return 0;
}
-static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length )
+static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length )
{
P->leaf_length = leaf_length;
return 0;
}
-static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset )
+static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset )
{
store48( P->node_offset, node_offset );
return 0;
}
-static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth )
+static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth )
{
P->node_depth = node_depth;
return 0;
}
-static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length )
+static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length )
{
P->inner_length = inner_length;
return 0;
}
-static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] )
+static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] )
{
memcpy( P->salt, salt, BLAKE2S_SALTBYTES );
return 0;
}
-static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] )
+static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] )
{
memcpy( P->personal, personal, BLAKE2S_PERSONALBYTES );
return 0;
}
-static inline int blake2s_init0( blake2s_state *S )
+static inline int blake2s_init0( blake2s_state *S )
{
memset( S, 0, sizeof( blake2s_state ) );
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
+ for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
return 0;
}
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2s_init( blake2s_state *S, size_t outlen );
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
-
+#if defined(__cplusplus)
+extern "C" {
+#endif
+ int blake2s_init( blake2s_state *S, size_t outlen );
+ int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
+ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
+ int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
+ int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
+ int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
+#if defined(__cplusplus)
+}
+#endif
+
+
/* init2 xors IV with input parameter block */
int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
{
- uint8_t *p, *h, *v;
- //blake2s_init0( S );
- v = ( uint8_t * )( blake2s_IV );
- h = ( uint8_t * )( S->h );
- p = ( uint8_t * )( P );
+ uint8_t *p, *h, *v;
+ //blake2s_init0( S );
+ v = ( uint8_t * )( blake2s_IV );
+ h = ( uint8_t * )( S->h );
+ p = ( uint8_t * )( P );
/* IV XOR ParamBlock */
memset( S, 0, sizeof( blake2s_state ) );
- for( int i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
+ for( int i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
- S->outlen = P->digest_length;
+ S->outlen = P->digest_length;
return 0;
}
/* Some sort of default parameter block initialization, for sequential blake2s */
-int blake2s_init( blake2s_state *S, size_t outlen )
+int blake2s_init( blake2s_state *S, size_t outlen )
{
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
+ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
+
const blake2s_param P =
{
outlen,
@@ -229,12 +229,12 @@ int blake2s_init( blake2s_state *S, size_t outlen )
}
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
+int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
{
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1;
-
+ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
+
+ if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1;
+
const blake2s_param P =
{
outlen,
@@ -263,11 +263,11 @@ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t k
}
-static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] )
+static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] )
{
__m128i row1, row2, row3, row4;
__m128i buf1, buf2, buf3, buf4;
-#if defined(HAVE_SSE4_1)
+#if defined(HAVE_SSE4_1)
__m128i t0, t1;
#if !defined(HAVE_XOP)
__m128i t2;
@@ -278,7 +278,7 @@ static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2
const __m128i r8 = _mm_set_epi8( 12, 15, 14, 13, 8, 11, 10, 9, 4, 7, 6, 5, 0, 3, 2, 1 );
const __m128i r16 = _mm_set_epi8( 13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2 );
#endif
-#if defined(HAVE_SSE4_1)
+#if defined(HAVE_SSE4_1)
const __m128i m0 = LOADU( block + 00 );
const __m128i m1 = LOADU( block + 16 );
const __m128i m2 = LOADU( block + 32 );
@@ -320,8 +320,8 @@ static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2
return 0;
}
-
-int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
+
+int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
{
while( inlen > 0 )
{
@@ -330,11 +330,11 @@ int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
if( inlen > fill )
{
- memcpy( S->buf + left, in, fill ); // Fill buffer
+ memcpy( S->buf + left, in, fill ); // Fill buffer
S->buflen += fill;
blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
+ blake2s_compress( S, S->buf ); // Compress
+ memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
S->buflen -= BLAKE2S_BLOCKBYTES;
in += fill;
inlen -= fill;
@@ -342,7 +342,7 @@ int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
else /* inlen <= fill */
{
memcpy( S->buf + left, in, inlen );
- S->buflen += inlen; // Be lazy, do not compress
+ S->buflen += inlen; // Be lazy, do not compress
in += inlen;
inlen -= inlen;
}
@@ -351,19 +351,19 @@ int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
return 0;
}
-
-int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
+
+int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
{
- uint8_t buffer[BLAKE2S_OUTBYTES];
+ uint8_t buffer[BLAKE2S_OUTBYTES];
- if(outlen != S->outlen ) return -1;
+ if(outlen != S->outlen ) return -1;
if( S->buflen > BLAKE2S_BLOCKBYTES )
{
blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
blake2s_compress( S, S->buf );
S->buflen -= BLAKE2S_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen );
+ memmove( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen );
}
blake2s_increment_counter( S, ( uint32_t )S->buflen );
@@ -371,14 +371,14 @@ int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
memset( S->buf + S->buflen, 0, 2 * BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
blake2s_compress( S, S->buf );
- for( int i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
+ for( int i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
memcpy( out, buffer, outlen );
return 0;
}
-int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
{
blake2s_state S[1];
@@ -402,14 +402,14 @@ int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_
if( blake2s_init( S, outlen ) < 0 ) return -1;
}
- if( blake2s_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
- return blake2s_final( S, out, outlen );
+ if( blake2s_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
+ return blake2s_final( S, out, outlen );
}
#if defined(SUPERCOP)
int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
{
- return blake2s( out, in, NULL, BLAKE2S_OUTBYTES, (size_t)inlen, 0 );
+ return blake2s( out, in, NULL, BLAKE2S_OUTBYTES, (size_t)inlen, 0 );
}
#endif
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp-test.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp-test.c
index b69c8ddb27..80a38ad320 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp-test.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp-test.c
@@ -1,43 +1,43 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#include <stdio.h>
-#include <string.h>
-#include "blake2.h"
-#include "blake2-kat.h" // Y_IGNORE
-
-int main( int argc, char **argv )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[KAT_LENGTH];
-
- for( size_t i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- for( size_t i = 0; i < KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- if( blake2sp( hash, buf, key, BLAKE2S_OUTBYTES, i, BLAKE2S_KEYBYTES ) < 0 ||
- 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- puts( "error" );
- return -1;
- }
- }
-
- puts( "ok" );
- return 0;
-}
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+#include <stdio.h>
+#include <string.h>
+#include "blake2.h"
+#include "blake2-kat.h" // Y_IGNORE
+
+int main( int argc, char **argv )
+{
+ uint8_t key[BLAKE2S_KEYBYTES];
+ uint8_t buf[KAT_LENGTH];
+
+ for( size_t i = 0; i < BLAKE2S_KEYBYTES; ++i )
+ key[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ buf[i] = ( uint8_t )i;
+
+ for( size_t i = 0; i < KAT_LENGTH; ++i )
+ {
+ uint8_t hash[BLAKE2S_OUTBYTES];
+ if( blake2sp( hash, buf, key, BLAKE2S_OUTBYTES, i, BLAKE2S_KEYBYTES ) < 0 ||
+ 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
+ {
+ puts( "error" );
+ return -1;
+ }
+ }
+
+ puts( "ok" );
+ return 0;
+}
+
diff --git a/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp.c b/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp.c
index f7da2ac10f..2f32bf3a22 100644
--- a/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp.c
+++ b/contrib/tools/python3/src/Modules/_blake2/impl/blake2sp.c
@@ -1,274 +1,274 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#if defined(_OPENMP)
-#include <omp.h>
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 8
-
-static int blake2sp_init_leaf( blake2s_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset )
-{
- blake2s_param P[1];
- P->digest_length = outlen;
- P->key_length = keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- P->leaf_length = 0;
- store48( P->node_offset, offset );
- P->node_depth = 0;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- blake2s_init_param( S, P );
- S->outlen = P->inner_length;
- return 0;
-}
-
-static int blake2sp_init_root( blake2s_state *S, uint8_t outlen, uint8_t keylen )
-{
- blake2s_param P[1];
- P->digest_length = outlen;
- P->key_length = keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- P->leaf_length = 0;
- store48( P->node_offset, 0ULL );
- P->node_depth = 1;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- blake2s_init_param( S, P );
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-int blake2sp_init( blake2sp_state *S, size_t outlen )
-{
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
-
- if( blake2sp_init_root( S->R, ( uint8_t ) outlen, 0 ) < 0 )
- return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], ( uint8_t ) outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- S->outlen = ( uint8_t ) outlen;
- return 0;
-}
-
-int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
-
- if( blake2sp_init_root( S->R, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
- return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
- return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- S->outlen = ( uint8_t ) outlen;
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2sp_update( blake2sp_state *S, const uint8_t *in, size_t inlen )
-{
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- omp_set_num_threads(PARALLELISM_DEGREE);
- #pragma omp parallel shared(S)
-#else
- for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
-#endif
- {
-#if defined(_OPENMP)
- size_t id__ = ( size_t ) omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const uint8_t *in__ = ( const uint8_t * )in;
- in__ += id__ * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S->S[id__], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = ( uint32_t ) left + ( uint32_t ) inlen;
- return 0;
-}
-
-
-int blake2sp_final( blake2sp_state *S, uint8_t *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
-
- if(S->outlen != outlen) return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2S_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
-
- if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
-
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
- }
-
- blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
- }
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
-
- blake2s_final( S->R, out, outlen );
- return 0;
-}
-
-
-int blake2sp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
- blake2s_state S[PARALLELISM_DEGREE][1];
- blake2s_state FS[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
- return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- omp_set_num_threads(PARALLELISM_DEGREE);
- #pragma omp parallel shared(S,hash)
-#else
-
- for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
-#endif
- {
-#if defined(_OPENMP)
- size_t id__ = ( size_t ) omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const uint8_t *in__ = ( const uint8_t * )in;
- in__ += id__ * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S[id__], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
-
- if( inlen__ > id__ * BLAKE2S_BLOCKBYTES )
- {
- const size_t left = inlen__ - id__ * BLAKE2S_BLOCKBYTES;
- const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
- blake2s_update( S[id__], in__, len );
- }
-
- blake2s_final( S[id__], hash[id__], BLAKE2S_OUTBYTES );
- }
-
- if( blake2sp_init_root( FS, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
- return -1;
-
- FS->last_node = 1;
-
- for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
-
- return blake2s_final( FS, out, outlen );
-}
-
-
-
-
+/*
+ BLAKE2 reference source code package - optimized C implementations
+
+ Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#if defined(_OPENMP)
+#include <omp.h>
+#endif
+
+#include "blake2.h"
+#include "blake2-impl.h"
+
+#define PARALLELISM_DEGREE 8
+
+static int blake2sp_init_leaf( blake2s_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset )
+{
+ blake2s_param P[1];
+ P->digest_length = outlen;
+ P->key_length = keylen;
+ P->fanout = PARALLELISM_DEGREE;
+ P->depth = 2;
+ P->leaf_length = 0;
+ store48( P->node_offset, offset );
+ P->node_depth = 0;
+ P->inner_length = BLAKE2S_OUTBYTES;
+ memset( P->salt, 0, sizeof( P->salt ) );
+ memset( P->personal, 0, sizeof( P->personal ) );
+ blake2s_init_param( S, P );
+ S->outlen = P->inner_length;
+ return 0;
+}
+
+static int blake2sp_init_root( blake2s_state *S, uint8_t outlen, uint8_t keylen )
+{
+ blake2s_param P[1];
+ P->digest_length = outlen;
+ P->key_length = keylen;
+ P->fanout = PARALLELISM_DEGREE;
+ P->depth = 2;
+ P->leaf_length = 0;
+ store48( P->node_offset, 0ULL );
+ P->node_depth = 1;
+ P->inner_length = BLAKE2S_OUTBYTES;
+ memset( P->salt, 0, sizeof( P->salt ) );
+ memset( P->personal, 0, sizeof( P->personal ) );
+ blake2s_init_param( S, P );
+ S->outlen = P->digest_length;
+ return 0;
+}
+
+
+int blake2sp_init( blake2sp_state *S, size_t outlen )
+{
+ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
+
+ memset( S->buf, 0, sizeof( S->buf ) );
+ S->buflen = 0;
+
+ if( blake2sp_init_root( S->R, ( uint8_t ) outlen, 0 ) < 0 )
+ return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ if( blake2sp_init_leaf( S->S[i], ( uint8_t ) outlen, 0, i ) < 0 ) return -1;
+
+ S->R->last_node = 1;
+ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+ S->outlen = ( uint8_t ) outlen;
+ return 0;
+}
+
+int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
+{
+ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
+
+ if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
+
+ memset( S->buf, 0, sizeof( S->buf ) );
+ S->buflen = 0;
+
+ if( blake2sp_init_root( S->R, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
+ return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ if( blake2sp_init_leaf( S->S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
+ return -1;
+
+ S->R->last_node = 1;
+ S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
+ S->outlen = ( uint8_t ) outlen;
+ {
+ uint8_t block[BLAKE2S_BLOCKBYTES];
+ memset( block, 0, BLAKE2S_BLOCKBYTES );
+ memcpy( block, key, keylen );
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
+
+ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
+ }
+ return 0;
+}
+
+
+int blake2sp_update( blake2sp_state *S, const uint8_t *in, size_t inlen )
+{
+ size_t left = S->buflen;
+ size_t fill = sizeof( S->buf ) - left;
+
+ if( left && inlen >= fill )
+ {
+ memcpy( S->buf + left, in, fill );
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
+
+ in += fill;
+ inlen -= fill;
+ left = 0;
+ }
+
+#if defined(_OPENMP)
+ omp_set_num_threads(PARALLELISM_DEGREE);
+ #pragma omp parallel shared(S)
+#else
+ for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
+#endif
+ {
+#if defined(_OPENMP)
+ size_t id__ = ( size_t ) omp_get_thread_num();
+#endif
+ size_t inlen__ = inlen;
+ const uint8_t *in__ = ( const uint8_t * )in;
+ in__ += id__ * BLAKE2S_BLOCKBYTES;
+
+ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
+ {
+ blake2s_update( S->S[id__], in__, BLAKE2S_BLOCKBYTES );
+ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+ }
+ }
+
+ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
+ inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+
+ if( inlen > 0 )
+ memcpy( S->buf + left, in, inlen );
+
+ S->buflen = ( uint32_t ) left + ( uint32_t ) inlen;
+ return 0;
+}
+
+
+int blake2sp_final( blake2sp_state *S, uint8_t *out, size_t outlen )
+{
+ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
+
+ if(S->outlen != outlen) return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ {
+ if( S->buflen > i * BLAKE2S_BLOCKBYTES )
+ {
+ size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
+
+ if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
+
+ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
+ }
+
+ blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
+ }
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
+
+ blake2s_final( S->R, out, outlen );
+ return 0;
+}
+
+
+int blake2sp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
+{
+ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
+ blake2s_state S[PARALLELISM_DEGREE][1];
+ blake2s_state FS[1];
+
+ /* Verify parameters */
+ if ( NULL == in && inlen > 0 ) return -1;
+
+ if ( NULL == out ) return -1;
+
+ if ( NULL == key && keylen > 0 ) return -1;
+
+ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
+
+ if( keylen > BLAKE2S_KEYBYTES ) return -1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ if( blake2sp_init_leaf( S[i], ( uint8_t ) outlen, ( uint8_t ) keylen, i ) < 0 )
+ return -1;
+
+ S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node
+
+ if( keylen > 0 )
+ {
+ uint8_t block[BLAKE2S_BLOCKBYTES];
+ memset( block, 0, BLAKE2S_BLOCKBYTES );
+ memcpy( block, key, keylen );
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
+
+ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
+ }
+
+#if defined(_OPENMP)
+ omp_set_num_threads(PARALLELISM_DEGREE);
+ #pragma omp parallel shared(S,hash)
+#else
+
+ for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ )
+#endif
+ {
+#if defined(_OPENMP)
+ size_t id__ = ( size_t ) omp_get_thread_num();
+#endif
+ size_t inlen__ = inlen;
+ const uint8_t *in__ = ( const uint8_t * )in;
+ in__ += id__ * BLAKE2S_BLOCKBYTES;
+
+ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
+ {
+ blake2s_update( S[id__], in__, BLAKE2S_BLOCKBYTES );
+ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
+ }
+
+ if( inlen__ > id__ * BLAKE2S_BLOCKBYTES )
+ {
+ const size_t left = inlen__ - id__ * BLAKE2S_BLOCKBYTES;
+ const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
+ blake2s_update( S[id__], in__, len );
+ }
+
+ blake2s_final( S[id__], hash[id__], BLAKE2S_OUTBYTES );
+ }
+
+ if( blake2sp_init_root( FS, ( uint8_t ) outlen, ( uint8_t ) keylen ) < 0 )
+ return -1;
+
+ FS->last_node = 1;
+
+ for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
+ blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
+
+ return blake2s_final( FS, out, outlen );
+}
+
+
+
+
diff --git a/contrib/tools/python3/src/Modules/_bz2module.c b/contrib/tools/python3/src/Modules/_bz2module.c
index 82f3be6c67..880632c623 100644
--- a/contrib/tools/python3/src/Modules/_bz2module.c
+++ b/contrib/tools/python3/src/Modules/_bz2module.c
@@ -3,7 +3,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include <bzlib.h>
#include <stdio.h>
@@ -347,10 +347,10 @@ static PyTypeObject BZ2Compressor_Type = {
sizeof(BZ2Compressor), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)BZ2Compressor_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -688,10 +688,10 @@ static PyTypeObject BZ2Decompressor_Type = {
sizeof(BZ2Decompressor), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)BZ2Decompressor_dealloc,/* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -726,32 +726,32 @@ static PyTypeObject BZ2Decompressor_Type = {
/* Module initialization. */
-static int
-_bz2_exec(PyObject *module)
-{
- if (PyModule_AddType(module, &BZ2Compressor_Type) < 0) {
- return -1;
- }
-
- if (PyModule_AddType(module, &BZ2Decompressor_Type) < 0) {
- return -1;
- }
-
- return 0;
-}
-
-static struct PyModuleDef_Slot _bz2_slots[] = {
- {Py_mod_exec, _bz2_exec},
- {0, NULL}
-};
-
+static int
+_bz2_exec(PyObject *module)
+{
+ if (PyModule_AddType(module, &BZ2Compressor_Type) < 0) {
+ return -1;
+ }
+
+ if (PyModule_AddType(module, &BZ2Decompressor_Type) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+static struct PyModuleDef_Slot _bz2_slots[] = {
+ {Py_mod_exec, _bz2_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef _bz2module = {
PyModuleDef_HEAD_INIT,
"_bz2",
NULL,
- 0,
+ 0,
NULL,
- _bz2_slots,
+ _bz2_slots,
NULL,
NULL,
NULL
@@ -760,5 +760,5 @@ static struct PyModuleDef _bz2module = {
PyMODINIT_FUNC
PyInit__bz2(void)
{
- return PyModuleDef_Init(&_bz2module);
+ return PyModuleDef_Init(&_bz2module);
}
diff --git a/contrib/tools/python3/src/Modules/_codecsmodule.c b/contrib/tools/python3/src/Modules/_codecsmodule.c
index 66c1e60d78..cbe5cc50f1 100644
--- a/contrib/tools/python3/src/Modules/_codecsmodule.c
+++ b/contrib/tools/python3/src/Modules/_codecsmodule.c
@@ -21,7 +21,7 @@
(Unicode object, bytes consumed)
These <encoding>s are available: utf_8, unicode_escape,
- raw_unicode_escape, latin_1, ascii (7-bit), mbcs (on win32).
+ raw_unicode_escape, latin_1, ascii (7-bit), mbcs (on win32).
Written by Marc-Andre Lemburg (mal@lemburg.com).
@@ -171,14 +171,14 @@ PyObject *codec_tuple(PyObject *decoded,
/*[clinic input]
_codecs.escape_decode
data: Py_buffer(accept={str, buffer})
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_escape_decode_impl(PyObject *module, Py_buffer *data,
const char *errors)
-/*[clinic end generated code: output=505200ba8056979a input=77298a561c90bd82]*/
+/*[clinic end generated code: output=505200ba8056979a input=77298a561c90bd82]*/
{
PyObject *decoded = PyBytes_DecodeEscape(data->buf, data->len,
errors, 0, NULL);
@@ -188,14 +188,14 @@ _codecs_escape_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.escape_encode
data: object(subclass_of='&PyBytes_Type')
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_escape_encode_impl(PyObject *module, PyObject *data,
const char *errors)
-/*[clinic end generated code: output=4af1d477834bab34 input=8f4b144799a94245]*/
+/*[clinic end generated code: output=4af1d477834bab34 input=8f4b144799a94245]*/
{
Py_ssize_t size;
Py_ssize_t newsize;
@@ -252,7 +252,7 @@ _codecs_escape_encode_impl(PyObject *module, PyObject *data,
/*[clinic input]
_codecs.utf_7_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -260,7 +260,7 @@ _codecs.utf_7_decode
static PyObject *
_codecs_utf_7_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=0cd3a944a32a4089 input=22c395d357815d26]*/
+/*[clinic end generated code: output=0cd3a944a32a4089 input=22c395d357815d26]*/
{
Py_ssize_t consumed = data->len;
PyObject *decoded = PyUnicode_DecodeUTF7Stateful(data->buf, data->len,
@@ -272,7 +272,7 @@ _codecs_utf_7_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_8_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -280,7 +280,7 @@ _codecs.utf_8_decode
static PyObject *
_codecs_utf_8_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=10f74dec8d9bb8bf input=f611b3867352ba59]*/
+/*[clinic end generated code: output=10f74dec8d9bb8bf input=f611b3867352ba59]*/
{
Py_ssize_t consumed = data->len;
PyObject *decoded = PyUnicode_DecodeUTF8Stateful(data->buf, data->len,
@@ -292,7 +292,7 @@ _codecs_utf_8_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_16_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -300,7 +300,7 @@ _codecs.utf_16_decode
static PyObject *
_codecs_utf_16_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=783b442abcbcc2d0 input=191d360bd7309180]*/
+/*[clinic end generated code: output=783b442abcbcc2d0 input=191d360bd7309180]*/
{
int byteorder = 0;
/* This is overwritten unless final is true. */
@@ -314,7 +314,7 @@ _codecs_utf_16_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_16_le_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -322,7 +322,7 @@ _codecs.utf_16_le_decode
static PyObject *
_codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=899b9e6364379dcd input=c6904fdc27fb4724]*/
+/*[clinic end generated code: output=899b9e6364379dcd input=c6904fdc27fb4724]*/
{
int byteorder = -1;
/* This is overwritten unless final is true. */
@@ -336,7 +336,7 @@ _codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_16_be_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -344,7 +344,7 @@ _codecs.utf_16_be_decode
static PyObject *
_codecs_utf_16_be_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=49f6465ea07669c8 input=e49012400974649b]*/
+/*[clinic end generated code: output=49f6465ea07669c8 input=e49012400974649b]*/
{
int byteorder = 1;
/* This is overwritten unless final is true. */
@@ -365,7 +365,7 @@ _codecs_utf_16_be_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_16_ex_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
byteorder: int = 0
final: bool(accept={int}) = False
/
@@ -374,7 +374,7 @@ _codecs.utf_16_ex_decode
static PyObject *
_codecs_utf_16_ex_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int byteorder, int final)
-/*[clinic end generated code: output=0f385f251ecc1988 input=5a9c19f2e6b6cf0e]*/
+/*[clinic end generated code: output=0f385f251ecc1988 input=5a9c19f2e6b6cf0e]*/
{
/* This is overwritten unless final is true. */
Py_ssize_t consumed = data->len;
@@ -390,7 +390,7 @@ _codecs_utf_16_ex_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_32_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -398,7 +398,7 @@ _codecs.utf_32_decode
static PyObject *
_codecs_utf_32_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=2fc961807f7b145f input=fd7193965627eb58]*/
+/*[clinic end generated code: output=2fc961807f7b145f input=fd7193965627eb58]*/
{
int byteorder = 0;
/* This is overwritten unless final is true. */
@@ -412,7 +412,7 @@ _codecs_utf_32_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_32_le_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -420,7 +420,7 @@ _codecs.utf_32_le_decode
static PyObject *
_codecs_utf_32_le_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=ec8f46b67a94f3e6 input=9078ec70acfe7613]*/
+/*[clinic end generated code: output=ec8f46b67a94f3e6 input=9078ec70acfe7613]*/
{
int byteorder = -1;
/* This is overwritten unless final is true. */
@@ -434,7 +434,7 @@ _codecs_utf_32_le_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_32_be_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -442,7 +442,7 @@ _codecs.utf_32_be_decode
static PyObject *
_codecs_utf_32_be_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=ff82bae862c92c4e input=f1ae1bbbb86648ff]*/
+/*[clinic end generated code: output=ff82bae862c92c4e input=f1ae1bbbb86648ff]*/
{
int byteorder = 1;
/* This is overwritten unless final is true. */
@@ -463,7 +463,7 @@ _codecs_utf_32_be_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_32_ex_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
byteorder: int = 0
final: bool(accept={int}) = False
/
@@ -472,7 +472,7 @@ _codecs.utf_32_ex_decode
static PyObject *
_codecs_utf_32_ex_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int byteorder, int final)
-/*[clinic end generated code: output=6bfb177dceaf4848 input=e46a73bc859d0bd0]*/
+/*[clinic end generated code: output=6bfb177dceaf4848 input=e46a73bc859d0bd0]*/
{
Py_ssize_t consumed = data->len;
PyObject *decoded = PyUnicode_DecodeUTF32Stateful(data->buf, data->len,
@@ -486,54 +486,54 @@ _codecs_utf_32_ex_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.unicode_escape_decode
data: Py_buffer(accept={str, buffer})
- errors: str(accept={str, NoneType}) = None
- final: bool(accept={int}) = True
+ errors: str(accept={str, NoneType}) = None
+ final: bool(accept={int}) = True
/
[clinic start generated code]*/
static PyObject *
_codecs_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
- const char *errors, int final)
-/*[clinic end generated code: output=b284f97b12c635ee input=6154f039a9f7c639]*/
+ const char *errors, int final)
+/*[clinic end generated code: output=b284f97b12c635ee input=6154f039a9f7c639]*/
{
- Py_ssize_t consumed = data->len;
- PyObject *decoded = _PyUnicode_DecodeUnicodeEscapeStateful(data->buf, data->len,
- errors,
- final ? NULL : &consumed);
- return codec_tuple(decoded, consumed);
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = _PyUnicode_DecodeUnicodeEscapeStateful(data->buf, data->len,
+ errors,
+ final ? NULL : &consumed);
+ return codec_tuple(decoded, consumed);
}
/*[clinic input]
_codecs.raw_unicode_escape_decode
data: Py_buffer(accept={str, buffer})
- errors: str(accept={str, NoneType}) = None
- final: bool(accept={int}) = True
+ errors: str(accept={str, NoneType}) = None
+ final: bool(accept={int}) = True
/
[clinic start generated code]*/
static PyObject *
_codecs_raw_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
- const char *errors, int final)
-/*[clinic end generated code: output=11dbd96301e2879e input=2d166191beb3235a]*/
+ const char *errors, int final)
+/*[clinic end generated code: output=11dbd96301e2879e input=2d166191beb3235a]*/
{
- Py_ssize_t consumed = data->len;
- PyObject *decoded = _PyUnicode_DecodeRawUnicodeEscapeStateful(data->buf, data->len,
- errors,
- final ? NULL : &consumed);
- return codec_tuple(decoded, consumed);
+ Py_ssize_t consumed = data->len;
+ PyObject *decoded = _PyUnicode_DecodeRawUnicodeEscapeStateful(data->buf, data->len,
+ errors,
+ final ? NULL : &consumed);
+ return codec_tuple(decoded, consumed);
}
/*[clinic input]
_codecs.latin_1_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_latin_1_decode_impl(PyObject *module, Py_buffer *data,
const char *errors)
-/*[clinic end generated code: output=07f3dfa3f72c7d8f input=76ca58fd6dcd08c7]*/
+/*[clinic end generated code: output=07f3dfa3f72c7d8f input=76ca58fd6dcd08c7]*/
{
PyObject *decoded = PyUnicode_DecodeLatin1(data->buf, data->len, errors);
return codec_tuple(decoded, data->len);
@@ -542,14 +542,14 @@ _codecs_latin_1_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.ascii_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_ascii_decode_impl(PyObject *module, Py_buffer *data,
const char *errors)
-/*[clinic end generated code: output=2627d72058d42429 input=e428a267a04b4481]*/
+/*[clinic end generated code: output=2627d72058d42429 input=e428a267a04b4481]*/
{
PyObject *decoded = PyUnicode_DecodeASCII(data->buf, data->len, errors);
return codec_tuple(decoded, data->len);
@@ -558,15 +558,15 @@ _codecs_ascii_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.charmap_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
- mapping: object = None
+ errors: str(accept={str, NoneType}) = None
+ mapping: object = None
/
[clinic start generated code]*/
static PyObject *
_codecs_charmap_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, PyObject *mapping)
-/*[clinic end generated code: output=2c335b09778cf895 input=15b69df43458eb40]*/
+/*[clinic end generated code: output=2c335b09778cf895 input=15b69df43458eb40]*/
{
PyObject *decoded;
@@ -582,7 +582,7 @@ _codecs_charmap_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.mbcs_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -590,7 +590,7 @@ _codecs.mbcs_decode
static PyObject *
_codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=39b65b8598938c4b input=1c1d50f08fa53789]*/
+/*[clinic end generated code: output=39b65b8598938c4b input=1c1d50f08fa53789]*/
{
Py_ssize_t consumed = data->len;
PyObject *decoded = PyUnicode_DecodeMBCSStateful(data->buf, data->len,
@@ -601,7 +601,7 @@ _codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.oem_decode
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -609,7 +609,7 @@ _codecs.oem_decode
static PyObject *
_codecs_oem_decode_impl(PyObject *module, Py_buffer *data,
const char *errors, int final)
-/*[clinic end generated code: output=da1617612f3fcad8 input=81b67cba811022e5]*/
+/*[clinic end generated code: output=da1617612f3fcad8 input=81b67cba811022e5]*/
{
Py_ssize_t consumed = data->len;
PyObject *decoded = PyUnicode_DecodeCodePageStateful(CP_OEMCP,
@@ -621,7 +621,7 @@ _codecs_oem_decode_impl(PyObject *module, Py_buffer *data,
_codecs.code_page_decode
codepage: int
data: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
final: bool(accept={int}) = False
/
[clinic start generated code]*/
@@ -629,7 +629,7 @@ _codecs.code_page_decode
static PyObject *
_codecs_code_page_decode_impl(PyObject *module, int codepage,
Py_buffer *data, const char *errors, int final)
-/*[clinic end generated code: output=53008ea967da3fff input=c5f58d036cb63575]*/
+/*[clinic end generated code: output=53008ea967da3fff input=c5f58d036cb63575]*/
{
Py_ssize_t consumed = data->len;
PyObject *decoded = PyUnicode_DecodeCodePageStateful(codepage,
@@ -646,14 +646,14 @@ _codecs_code_page_decode_impl(PyObject *module, int codepage,
/*[clinic input]
_codecs.readbuffer_encode
data: Py_buffer(accept={str, buffer})
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_readbuffer_encode_impl(PyObject *module, Py_buffer *data,
const char *errors)
-/*[clinic end generated code: output=c645ea7cdb3d6e86 input=aa10cfdf252455c5]*/
+/*[clinic end generated code: output=c645ea7cdb3d6e86 input=aa10cfdf252455c5]*/
{
PyObject *result = PyBytes_FromStringAndSize(data->buf, data->len);
return codec_tuple(result, data->len);
@@ -662,14 +662,14 @@ _codecs_readbuffer_encode_impl(PyObject *module, Py_buffer *data,
/*[clinic input]
_codecs.utf_7_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_utf_7_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=0feda21ffc921bc8 input=2546dbbb3fa53114]*/
+/*[clinic end generated code: output=0feda21ffc921bc8 input=2546dbbb3fa53114]*/
{
return codec_tuple(_PyUnicode_EncodeUTF7(str, 0, 0, errors),
PyUnicode_GET_LENGTH(str));
@@ -678,14 +678,14 @@ _codecs_utf_7_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.utf_8_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_utf_8_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=02bf47332b9c796c input=a3e71ae01c3f93f3]*/
+/*[clinic end generated code: output=02bf47332b9c796c input=a3e71ae01c3f93f3]*/
{
return codec_tuple(_PyUnicode_AsUTF8String(str, errors),
PyUnicode_GET_LENGTH(str));
@@ -701,7 +701,7 @@ _codecs_utf_8_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.utf_16_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
byteorder: int = 0
/
[clinic start generated code]*/
@@ -709,7 +709,7 @@ _codecs.utf_16_encode
static PyObject *
_codecs_utf_16_encode_impl(PyObject *module, PyObject *str,
const char *errors, int byteorder)
-/*[clinic end generated code: output=c654e13efa2e64e4 input=68cdc2eb8338555d]*/
+/*[clinic end generated code: output=c654e13efa2e64e4 input=68cdc2eb8338555d]*/
{
return codec_tuple(_PyUnicode_EncodeUTF16(str, errors, byteorder),
PyUnicode_GET_LENGTH(str));
@@ -718,14 +718,14 @@ _codecs_utf_16_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.utf_16_le_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_utf_16_le_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=431b01e55f2d4995 input=83d042706eed6798]*/
+/*[clinic end generated code: output=431b01e55f2d4995 input=83d042706eed6798]*/
{
return codec_tuple(_PyUnicode_EncodeUTF16(str, errors, -1),
PyUnicode_GET_LENGTH(str));
@@ -734,14 +734,14 @@ _codecs_utf_16_le_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.utf_16_be_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_utf_16_be_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=96886a6fd54dcae3 input=6f1e9e623b03071b]*/
+/*[clinic end generated code: output=96886a6fd54dcae3 input=6f1e9e623b03071b]*/
{
return codec_tuple(_PyUnicode_EncodeUTF16(str, errors, +1),
PyUnicode_GET_LENGTH(str));
@@ -757,7 +757,7 @@ _codecs_utf_16_be_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.utf_32_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
byteorder: int = 0
/
[clinic start generated code]*/
@@ -765,7 +765,7 @@ _codecs.utf_32_encode
static PyObject *
_codecs_utf_32_encode_impl(PyObject *module, PyObject *str,
const char *errors, int byteorder)
-/*[clinic end generated code: output=5c760da0c09a8b83 input=8ec4c64d983bc52b]*/
+/*[clinic end generated code: output=5c760da0c09a8b83 input=8ec4c64d983bc52b]*/
{
return codec_tuple(_PyUnicode_EncodeUTF32(str, errors, byteorder),
PyUnicode_GET_LENGTH(str));
@@ -774,14 +774,14 @@ _codecs_utf_32_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.utf_32_le_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_utf_32_le_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=b65cd176de8e36d6 input=f0918d41de3eb1b1]*/
+/*[clinic end generated code: output=b65cd176de8e36d6 input=f0918d41de3eb1b1]*/
{
return codec_tuple(_PyUnicode_EncodeUTF32(str, errors, -1),
PyUnicode_GET_LENGTH(str));
@@ -790,14 +790,14 @@ _codecs_utf_32_le_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.utf_32_be_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_utf_32_be_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=1d9e71a9358709e9 input=967a99a95748b557]*/
+/*[clinic end generated code: output=1d9e71a9358709e9 input=967a99a95748b557]*/
{
return codec_tuple(_PyUnicode_EncodeUTF32(str, errors, +1),
PyUnicode_GET_LENGTH(str));
@@ -806,14 +806,14 @@ _codecs_utf_32_be_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.unicode_escape_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_unicode_escape_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=66271b30bc4f7a3c input=8c4de07597054e33]*/
+/*[clinic end generated code: output=66271b30bc4f7a3c input=8c4de07597054e33]*/
{
return codec_tuple(PyUnicode_AsUnicodeEscapeString(str),
PyUnicode_GET_LENGTH(str));
@@ -822,14 +822,14 @@ _codecs_unicode_escape_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.raw_unicode_escape_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_raw_unicode_escape_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=a66a806ed01c830a input=4aa6f280d78e4574]*/
+/*[clinic end generated code: output=a66a806ed01c830a input=4aa6f280d78e4574]*/
{
return codec_tuple(PyUnicode_AsRawUnicodeEscapeString(str),
PyUnicode_GET_LENGTH(str));
@@ -838,14 +838,14 @@ _codecs_raw_unicode_escape_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.latin_1_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_latin_1_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=2c28c83a27884e08 input=ec3ef74bf85c5c5d]*/
+/*[clinic end generated code: output=2c28c83a27884e08 input=ec3ef74bf85c5c5d]*/
{
return codec_tuple(_PyUnicode_AsLatin1String(str, errors),
PyUnicode_GET_LENGTH(str));
@@ -854,14 +854,14 @@ _codecs_latin_1_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.ascii_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_ascii_encode_impl(PyObject *module, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=b5e035182d33befc input=93e6e602838bd3de]*/
+/*[clinic end generated code: output=b5e035182d33befc input=93e6e602838bd3de]*/
{
return codec_tuple(_PyUnicode_AsASCIIString(str, errors),
PyUnicode_GET_LENGTH(str));
@@ -870,15 +870,15 @@ _codecs_ascii_encode_impl(PyObject *module, PyObject *str,
/*[clinic input]
_codecs.charmap_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
- mapping: object = None
+ errors: str(accept={str, NoneType}) = None
+ mapping: object = None
/
[clinic start generated code]*/
static PyObject *
_codecs_charmap_encode_impl(PyObject *module, PyObject *str,
const char *errors, PyObject *mapping)
-/*[clinic end generated code: output=047476f48495a9e9 input=2a98feae73dadce8]*/
+/*[clinic end generated code: output=047476f48495a9e9 input=2a98feae73dadce8]*/
{
if (mapping == Py_None)
mapping = NULL;
@@ -905,13 +905,13 @@ _codecs_charmap_build_impl(PyObject *module, PyObject *map)
/*[clinic input]
_codecs.mbcs_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_mbcs_encode_impl(PyObject *module, PyObject *str, const char *errors)
-/*[clinic end generated code: output=76e2e170c966c080 input=2e932fc289ea5a5b]*/
+/*[clinic end generated code: output=76e2e170c966c080 input=2e932fc289ea5a5b]*/
{
return codec_tuple(PyUnicode_EncodeCodePage(CP_ACP, str, errors),
PyUnicode_GET_LENGTH(str));
@@ -920,13 +920,13 @@ _codecs_mbcs_encode_impl(PyObject *module, PyObject *str, const char *errors)
/*[clinic input]
_codecs.oem_encode
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_oem_encode_impl(PyObject *module, PyObject *str, const char *errors)
-/*[clinic end generated code: output=65d5982c737de649 input=9eac86dc21eb14f2]*/
+/*[clinic end generated code: output=65d5982c737de649 input=9eac86dc21eb14f2]*/
{
return codec_tuple(PyUnicode_EncodeCodePage(CP_OEMCP, str, errors),
PyUnicode_GET_LENGTH(str));
@@ -936,14 +936,14 @@ _codecs_oem_encode_impl(PyObject *module, PyObject *str, const char *errors)
_codecs.code_page_encode
code_page: int
str: unicode
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
/
[clinic start generated code]*/
static PyObject *
_codecs_code_page_encode_impl(PyObject *module, int code_page, PyObject *str,
const char *errors)
-/*[clinic end generated code: output=45673f6085657a9e input=7d18a33bc8cd0f94]*/
+/*[clinic end generated code: output=45673f6085657a9e input=7d18a33bc8cd0f94]*/
{
return codec_tuple(PyUnicode_EncodeCodePage(code_page, str, errors),
PyUnicode_GET_LENGTH(str));
@@ -1045,17 +1045,17 @@ static PyMethodDef _codecs_functions[] = {
{NULL, NULL} /* sentinel */
};
-static PyModuleDef_Slot _codecs_slots[] = {
- {0, NULL}
-};
-
+static PyModuleDef_Slot _codecs_slots[] = {
+ {0, NULL}
+};
+
static struct PyModuleDef codecsmodule = {
PyModuleDef_HEAD_INIT,
"_codecs",
NULL,
- 0,
+ 0,
_codecs_functions,
- _codecs_slots,
+ _codecs_slots,
NULL,
NULL,
NULL
@@ -1064,5 +1064,5 @@ static struct PyModuleDef codecsmodule = {
PyMODINIT_FUNC
PyInit__codecs(void)
{
- return PyModuleDef_Init(&codecsmodule);
+ return PyModuleDef_Init(&codecsmodule);
}
diff --git a/contrib/tools/python3/src/Modules/_collectionsmodule.c b/contrib/tools/python3/src/Modules/_collectionsmodule.c
index dac8c1589b..2e19b83dce 100644
--- a/contrib/tools/python3/src/Modules/_collectionsmodule.c
+++ b/contrib/tools/python3/src/Modules/_collectionsmodule.c
@@ -1,21 +1,21 @@
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#ifdef STDC_HEADERS
#include <stddef.h>
#else
-#include <sys/types.h> // size_t
+#include <sys/types.h> // size_t
#endif
-/*[clinic input]
-module _collections
-class _tuplegetter "_tuplegetterobject *" "&tuplegetter_type"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=a8ece4ccad7e30ac]*/
-
-static PyTypeObject tuplegetter_type;
-#include "clinic/_collectionsmodule.c.h"
-
+/*[clinic input]
+module _collections
+class _tuplegetter "_tuplegetterobject *" "&tuplegetter_type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=a8ece4ccad7e30ac]*/
+
+static PyTypeObject tuplegetter_type;
+#include "clinic/_collectionsmodule.c.h"
+
/* collections module implementation of a deque() datatype
Written and maintained by Raymond D. Hettinger <python@rcn.com>
*/
@@ -172,7 +172,7 @@ deque_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
MARK_END(b->rightlink);
assert(BLOCKLEN >= 2);
- Py_SET_SIZE(deque, 0);
+ Py_SET_SIZE(deque, 0);
deque->leftblock = b;
deque->rightblock = b;
deque->leftindex = CENTER + 1;
@@ -196,7 +196,7 @@ deque_pop(dequeobject *deque, PyObject *unused)
}
item = deque->rightblock->data[deque->rightindex];
deque->rightindex--;
- Py_SET_SIZE(deque, Py_SIZE(deque) - 1);
+ Py_SET_SIZE(deque, Py_SIZE(deque) - 1);
deque->state++;
if (deque->rightindex < 0) {
@@ -234,7 +234,7 @@ deque_popleft(dequeobject *deque, PyObject *unused)
assert(deque->leftblock != NULL);
item = deque->leftblock->data[deque->leftindex];
deque->leftindex++;
- Py_SET_SIZE(deque, Py_SIZE(deque) - 1);
+ Py_SET_SIZE(deque, Py_SIZE(deque) - 1);
deque->state++;
if (deque->leftindex == BLOCKLEN) {
@@ -273,7 +273,7 @@ PyDoc_STRVAR(popleft_doc, "Remove and return the leftmost element.");
#define NEEDS_TRIM(deque, maxlen) ((size_t)(maxlen) < (size_t)(Py_SIZE(deque)))
-static inline int
+static inline int
deque_append_internal(dequeobject *deque, PyObject *item, Py_ssize_t maxlen)
{
if (deque->rightindex == BLOCKLEN - 1) {
@@ -287,7 +287,7 @@ deque_append_internal(dequeobject *deque, PyObject *item, Py_ssize_t maxlen)
MARK_END(b->rightlink);
deque->rightindex = -1;
}
- Py_SET_SIZE(deque, Py_SIZE(deque) + 1);
+ Py_SET_SIZE(deque, Py_SIZE(deque) + 1);
deque->rightindex++;
deque->rightblock->data[deque->rightindex] = item;
if (NEEDS_TRIM(deque, maxlen)) {
@@ -310,7 +310,7 @@ deque_append(dequeobject *deque, PyObject *item)
PyDoc_STRVAR(append_doc, "Add an element to the right side of the deque.");
-static inline int
+static inline int
deque_appendleft_internal(dequeobject *deque, PyObject *item, Py_ssize_t maxlen)
{
if (deque->leftindex == 0) {
@@ -324,7 +324,7 @@ deque_appendleft_internal(dequeobject *deque, PyObject *item, Py_ssize_t maxlen)
MARK_END(b->leftlink);
deque->leftindex = BLOCKLEN;
}
- Py_SET_SIZE(deque, Py_SIZE(deque) + 1);
+ Py_SET_SIZE(deque, Py_SIZE(deque) + 1);
deque->leftindex--;
deque->leftblock->data[deque->leftindex] = item;
if (NEEDS_TRIM(deque, deque->maxlen)) {
@@ -412,10 +412,10 @@ deque_extend(dequeobject *deque, PyObject *iterable)
iternext = *Py_TYPE(it)->tp_iternext;
while ((item = iternext(it)) != NULL) {
- if (deque_append_internal(deque, item, maxlen) == -1) {
- Py_DECREF(item);
- Py_DECREF(it);
- return NULL;
+ if (deque_append_internal(deque, item, maxlen) == -1) {
+ Py_DECREF(item);
+ Py_DECREF(it);
+ return NULL;
}
}
return finalize_iterator(it);
@@ -459,10 +459,10 @@ deque_extendleft(dequeobject *deque, PyObject *iterable)
iternext = *Py_TYPE(it)->tp_iternext;
while ((item = iternext(it)) != NULL) {
- if (deque_appendleft_internal(deque, item, maxlen) == -1) {
- Py_DECREF(item);
- Py_DECREF(it);
- return NULL;
+ if (deque_appendleft_internal(deque, item, maxlen) == -1) {
+ Py_DECREF(item);
+ Py_DECREF(it);
+ return NULL;
}
}
return finalize_iterator(it);
@@ -485,11 +485,11 @@ deque_inplace_concat(dequeobject *deque, PyObject *other)
}
static PyObject *
-deque_copy(PyObject *deque, PyObject *Py_UNUSED(ignored))
+deque_copy(PyObject *deque, PyObject *Py_UNUSED(ignored))
{
PyObject *result;
dequeobject *old_deque = (dequeobject *)deque;
- if (Py_IS_TYPE(deque, &deque_type)) {
+ if (Py_IS_TYPE(deque, &deque_type)) {
dequeobject *new_deque;
PyObject *rv;
@@ -512,7 +512,7 @@ deque_copy(PyObject *deque, PyObject *Py_UNUSED(ignored))
return NULL;
}
if (old_deque->maxlen < 0)
- result = PyObject_CallOneArg((PyObject *)(Py_TYPE(deque)), deque);
+ result = PyObject_CallOneArg((PyObject *)(Py_TYPE(deque)), deque);
else
result = PyObject_CallFunction((PyObject *)(Py_TYPE(deque)), "Oi",
deque, old_deque->maxlen, NULL);
@@ -539,12 +539,12 @@ deque_concat(dequeobject *deque, PyObject *other)
if (rv == 0) {
PyErr_Format(PyExc_TypeError,
"can only concatenate deque (not \"%.200s\") to deque",
- Py_TYPE(other)->tp_name);
+ Py_TYPE(other)->tp_name);
}
return NULL;
}
- new_deque = deque_copy((PyObject *)deque, NULL);
+ new_deque = deque_copy((PyObject *)deque, NULL);
if (new_deque == NULL)
return NULL;
result = deque_extend((dequeobject *)new_deque, other);
@@ -597,7 +597,7 @@ deque_clear(dequeobject *deque)
/* Set the deque to be empty using the newly allocated block */
MARK_END(b->leftlink);
MARK_END(b->rightlink);
- Py_SET_SIZE(deque, 0);
+ Py_SET_SIZE(deque, 0);
deque->leftblock = b;
deque->rightblock = b;
deque->leftindex = CENTER + 1;
@@ -641,7 +641,7 @@ deque_clear(dequeobject *deque)
}
static PyObject *
-deque_clearmethod(dequeobject *deque, PyObject *Py_UNUSED(ignored))
+deque_clearmethod(dequeobject *deque, PyObject *Py_UNUSED(ignored))
{
deque_clear(deque);
Py_RETURN_NONE;
@@ -680,7 +680,7 @@ deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)
if (deque->rightindex == BLOCKLEN - 1) {
block *b = newblock();
if (b == NULL) {
- Py_SET_SIZE(deque, Py_SIZE(deque) + i);
+ Py_SET_SIZE(deque, Py_SIZE(deque) + i);
return NULL;
}
b->leftlink = deque->rightblock;
@@ -700,7 +700,7 @@ deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)
deque->rightblock->data[deque->rightindex] = item;
}
}
- Py_SET_SIZE(deque, Py_SIZE(deque) + i);
+ Py_SET_SIZE(deque, Py_SIZE(deque) + i);
Py_INCREF(deque);
return (PyObject *)deque;
}
@@ -736,7 +736,7 @@ deque_repeat(dequeobject *deque, Py_ssize_t n)
dequeobject *new_deque;
PyObject *rv;
- new_deque = (dequeobject *)deque_copy((PyObject *) deque, NULL);
+ new_deque = (dequeobject *)deque_copy((PyObject *) deque, NULL);
if (new_deque == NULL)
return NULL;
rv = deque_inplace_repeat(new_deque, n);
@@ -965,9 +965,9 @@ deque_count(dequeobject *deque, PyObject *v)
while (--n >= 0) {
CHECK_NOT_END(b);
item = b->data[index];
- Py_INCREF(item);
+ Py_INCREF(item);
cmp = PyObject_RichCompareBool(item, v, Py_EQ);
- Py_DECREF(item);
+ Py_DECREF(item);
if (cmp < 0)
return NULL;
count += cmp;
@@ -1004,9 +1004,9 @@ deque_contains(dequeobject *deque, PyObject *v)
while (--n >= 0) {
CHECK_NOT_END(b);
item = b->data[index];
- Py_INCREF(item);
+ Py_INCREF(item);
cmp = PyObject_RichCompareBool(item, v, Py_EQ);
- Py_DECREF(item);
+ Py_DECREF(item);
if (cmp) {
return cmp;
}
@@ -1062,10 +1062,10 @@ deque_index(dequeobject *deque, PyObject *const *args, Py_ssize_t nargs)
start = stop;
assert(0 <= start && start <= stop && stop <= Py_SIZE(deque));
- for (i=0 ; i < start - BLOCKLEN ; i += BLOCKLEN) {
- b = b->rightlink;
- }
- for ( ; i < start ; i++) {
+ for (i=0 ; i < start - BLOCKLEN ; i += BLOCKLEN) {
+ b = b->rightlink;
+ }
+ for ( ; i < start ; i++) {
index++;
if (index == BLOCKLEN) {
b = b->rightlink;
@@ -1467,13 +1467,13 @@ deque_init(dequeobject *deque, PyObject *args, PyObject *kwdargs)
Py_ssize_t maxlen = -1;
char *kwlist[] = {"iterable", "maxlen", 0};
- if (kwdargs == NULL && PyTuple_GET_SIZE(args) <= 2) {
- if (PyTuple_GET_SIZE(args) > 0) {
- iterable = PyTuple_GET_ITEM(args, 0);
- }
- if (PyTuple_GET_SIZE(args) > 1) {
- maxlenobj = PyTuple_GET_ITEM(args, 1);
- }
+ if (kwdargs == NULL && PyTuple_GET_SIZE(args) <= 2) {
+ if (PyTuple_GET_SIZE(args) > 0) {
+ iterable = PyTuple_GET_ITEM(args, 0);
+ }
+ if (PyTuple_GET_SIZE(args) > 1) {
+ maxlenobj = PyTuple_GET_ITEM(args, 1);
+ }
} else {
if (!PyArg_ParseTupleAndKeywords(args, kwdargs, "|OO:deque", kwlist,
&iterable, &maxlenobj))
@@ -1568,7 +1568,7 @@ static PyNumberMethods deque_as_number = {
};
static PyObject *deque_iter(dequeobject *deque);
-static PyObject *deque_reviter(dequeobject *deque, PyObject *Py_UNUSED(ignored));
+static PyObject *deque_reviter(dequeobject *deque, PyObject *Py_UNUSED(ignored));
PyDoc_STRVAR(reversed_doc,
"D.__reversed__() -- return a reverse iterator over the deque");
@@ -1579,9 +1579,9 @@ static PyMethodDef deque_methods[] = {
METH_O, appendleft_doc},
{"clear", (PyCFunction)deque_clearmethod,
METH_NOARGS, clear_doc},
- {"__copy__", deque_copy,
+ {"__copy__", deque_copy,
METH_NOARGS, copy_doc},
- {"copy", deque_copy,
+ {"copy", deque_copy,
METH_NOARGS, copy_doc},
{"count", (PyCFunction)deque_count,
METH_O, count_doc},
@@ -1589,9 +1589,9 @@ static PyMethodDef deque_methods[] = {
METH_O, extend_doc},
{"extendleft", (PyCFunction)deque_extendleft,
METH_O, extendleft_doc},
- {"index", (PyCFunction)(void(*)(void))deque_index,
+ {"index", (PyCFunction)(void(*)(void))deque_index,
METH_FASTCALL, index_doc},
- {"insert", (PyCFunction)(void(*)(void))deque_insert,
+ {"insert", (PyCFunction)(void(*)(void))deque_insert,
METH_FASTCALL, insert_doc},
{"pop", (PyCFunction)deque_pop,
METH_NOARGS, pop_doc},
@@ -1605,12 +1605,12 @@ static PyMethodDef deque_methods[] = {
METH_NOARGS, reversed_doc},
{"reverse", (PyCFunction)deque_reverse,
METH_NOARGS, reverse_doc},
- {"rotate", (PyCFunction)(void(*)(void))deque_rotate,
+ {"rotate", (PyCFunction)(void(*)(void))deque_rotate,
METH_FASTCALL, rotate_doc},
{"__sizeof__", (PyCFunction)deque_sizeof,
METH_NOARGS, sizeof_doc},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -1626,10 +1626,10 @@ static PyTypeObject deque_type = {
0, /* tp_itemsize */
/* methods */
(destructor)deque_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
deque_repr, /* tp_repr */
&deque_as_number, /* tp_as_number */
&deque_as_sequence, /* tp_as_sequence */
@@ -1768,7 +1768,7 @@ dequeiter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
}
static PyObject *
-dequeiter_len(dequeiterobject *it, PyObject *Py_UNUSED(ignored))
+dequeiter_len(dequeiterobject *it, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromSsize_t(it->counter);
}
@@ -1776,7 +1776,7 @@ dequeiter_len(dequeiterobject *it, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
static PyObject *
-dequeiter_reduce(dequeiterobject *it, PyObject *Py_UNUSED(ignored))
+dequeiter_reduce(dequeiterobject *it, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(On)", Py_TYPE(it), it->deque, Py_SIZE(it->deque) - it->counter);
}
@@ -1794,10 +1794,10 @@ static PyTypeObject dequeiter_type = {
0, /* tp_itemsize */
/* methods */
(destructor)dequeiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1835,7 +1835,7 @@ static PyTypeObject dequeiter_type = {
static PyTypeObject dequereviter_type;
static PyObject *
-deque_reviter(dequeobject *deque, PyObject *Py_UNUSED(ignored))
+deque_reviter(dequeobject *deque, PyObject *Py_UNUSED(ignored))
{
dequeiterobject *it;
@@ -1890,7 +1890,7 @@ dequereviter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return NULL;
assert(type == &dequereviter_type);
- it = (dequeiterobject*)deque_reviter((dequeobject *)deque, NULL);
+ it = (dequeiterobject*)deque_reviter((dequeobject *)deque, NULL);
if (!it)
return NULL;
/* consume items from the queue */
@@ -1916,10 +1916,10 @@ static PyTypeObject dequereviter_type = {
0, /* tp_itemsize */
/* methods */
(destructor)dequeiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1982,7 +1982,7 @@ defdict_missing(defdictobject *dd, PyObject *key)
Py_DECREF(tup);
return NULL;
}
- value = _PyObject_CallNoArg(factory);
+ value = _PyObject_CallNoArg(factory);
if (value == NULL)
return value;
if (PyObject_SetItem((PyObject *)dd, key, value) < 0) {
@@ -1992,27 +1992,27 @@ defdict_missing(defdictobject *dd, PyObject *key)
return value;
}
-static inline PyObject*
-new_defdict(defdictobject *dd, PyObject *arg)
-{
- return PyObject_CallFunctionObjArgs((PyObject*)Py_TYPE(dd),
- dd->default_factory ? dd->default_factory : Py_None, arg, NULL);
-}
-
+static inline PyObject*
+new_defdict(defdictobject *dd, PyObject *arg)
+{
+ return PyObject_CallFunctionObjArgs((PyObject*)Py_TYPE(dd),
+ dd->default_factory ? dd->default_factory : Py_None, arg, NULL);
+}
+
PyDoc_STRVAR(defdict_copy_doc, "D.copy() -> a shallow copy of D.");
static PyObject *
-defdict_copy(defdictobject *dd, PyObject *Py_UNUSED(ignored))
+defdict_copy(defdictobject *dd, PyObject *Py_UNUSED(ignored))
{
/* This calls the object's class. That only works for subclasses
whose class constructor has the same signature. Subclasses that
define a different constructor signature must override copy().
*/
- return new_defdict(dd, (PyObject*)dd);
+ return new_defdict(dd, (PyObject*)dd);
}
static PyObject *
-defdict_reduce(defdictobject *dd, PyObject *Py_UNUSED(ignored))
+defdict_reduce(defdictobject *dd, PyObject *Py_UNUSED(ignored))
{
/* __reduce__ must return a 5-tuple as follows:
@@ -2048,7 +2048,7 @@ defdict_reduce(defdictobject *dd, PyObject *Py_UNUSED(ignored))
args = PyTuple_Pack(1, dd->default_factory);
if (args == NULL)
return NULL;
- items = _PyObject_CallMethodIdNoArgs((PyObject *)dd, &PyId_items);
+ items = _PyObject_CallMethodIdNoArgs((PyObject *)dd, &PyId_items);
if (items == NULL) {
Py_DECREF(args);
return NULL;
@@ -2076,8 +2076,8 @@ static PyMethodDef defdict_methods[] = {
defdict_copy_doc},
{"__reduce__", (PyCFunction)defdict_reduce, METH_NOARGS,
reduce_doc},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
- PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
+ PyDoc_STR("See PEP 585")},
{NULL}
};
@@ -2134,38 +2134,38 @@ defdict_repr(defdictobject *dd)
return result;
}
-static PyObject*
-defdict_or(PyObject* left, PyObject* right)
-{
- PyObject *self, *other;
- if (PyObject_TypeCheck(left, &defdict_type)) {
- self = left;
- other = right;
- }
- else {
- self = right;
- other = left;
- }
- if (!PyDict_Check(other)) {
- Py_RETURN_NOTIMPLEMENTED;
- }
- // Like copy(), this calls the object's class.
- // Override __or__/__ror__ for subclasses with different constructors.
- PyObject *new = new_defdict((defdictobject*)self, left);
- if (!new) {
- return NULL;
- }
- if (PyDict_Update(new, right)) {
- Py_DECREF(new);
- return NULL;
- }
- return new;
-}
-
-static PyNumberMethods defdict_as_number = {
- .nb_or = defdict_or,
-};
-
+static PyObject*
+defdict_or(PyObject* left, PyObject* right)
+{
+ PyObject *self, *other;
+ if (PyObject_TypeCheck(left, &defdict_type)) {
+ self = left;
+ other = right;
+ }
+ else {
+ self = right;
+ other = left;
+ }
+ if (!PyDict_Check(other)) {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+ // Like copy(), this calls the object's class.
+ // Override __or__/__ror__ for subclasses with different constructors.
+ PyObject *new = new_defdict((defdictobject*)self, left);
+ if (!new) {
+ return NULL;
+ }
+ if (PyDict_Update(new, right)) {
+ Py_DECREF(new);
+ return NULL;
+ }
+ return new;
+}
+
+static PyNumberMethods defdict_as_number = {
+ .nb_or = defdict_or,
+};
+
static int
defdict_traverse(PyObject *self, visitproc visit, void *arg)
{
@@ -2213,7 +2213,7 @@ defdict_init(PyObject *self, PyObject *args, PyObject *kwds)
}
PyDoc_STRVAR(defdict_doc,
-"defaultdict(default_factory=None, /, [...]) --> dict with default factory\n\
+"defaultdict(default_factory=None, /, [...]) --> dict with default factory\n\
\n\
The default factory is called without arguments to produce\n\
a new value when a key is not present, in __getitem__ only.\n\
@@ -2232,12 +2232,12 @@ static PyTypeObject defdict_type = {
0, /* tp_itemsize */
/* methods */
(destructor)defdict_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)defdict_repr, /* tp_repr */
- &defdict_as_number, /* tp_as_number */
+ &defdict_as_number, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
@@ -2271,24 +2271,24 @@ static PyTypeObject defdict_type = {
/* helper function for Counter *********************************************/
-/*[clinic input]
-_collections._count_elements
+/*[clinic input]
+_collections._count_elements
+
+ mapping: object
+ iterable: object
+ /
+
+Count elements in the iterable, updating the mapping
+[clinic start generated code]*/
- mapping: object
- iterable: object
- /
-
-Count elements in the iterable, updating the mapping
-[clinic start generated code]*/
-
static PyObject *
-_collections__count_elements_impl(PyObject *module, PyObject *mapping,
- PyObject *iterable)
-/*[clinic end generated code: output=7e0c1789636b3d8f input=e79fad04534a0b45]*/
+_collections__count_elements_impl(PyObject *module, PyObject *mapping,
+ PyObject *iterable)
+/*[clinic end generated code: output=7e0c1789636b3d8f input=e79fad04534a0b45]*/
{
_Py_IDENTIFIER(get);
_Py_IDENTIFIER(__setitem__);
- PyObject *it, *oldval;
+ PyObject *it, *oldval;
PyObject *newval = NULL;
PyObject *key = NULL;
PyObject *bound_get = NULL;
@@ -2387,222 +2387,222 @@ done:
Py_RETURN_NONE;
}
-/* Helper function for namedtuple() ************************************/
-
-typedef struct {
- PyObject_HEAD
- Py_ssize_t index;
- PyObject* doc;
-} _tuplegetterobject;
-
-/*[clinic input]
-@classmethod
-_tuplegetter.__new__ as tuplegetter_new
-
- index: Py_ssize_t
- doc: object
- /
-[clinic start generated code]*/
-
-static PyObject *
-tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc)
-/*[clinic end generated code: output=014be444ad80263f input=87c576a5bdbc0bbb]*/
-{
- _tuplegetterobject* self;
- self = (_tuplegetterobject *)type->tp_alloc(type, 0);
- if (self == NULL) {
- return NULL;
- }
- self->index = index;
- Py_INCREF(doc);
- self->doc = doc;
- return (PyObject *)self;
-}
-
-static PyObject *
-tuplegetter_descr_get(PyObject *self, PyObject *obj, PyObject *type)
-{
- Py_ssize_t index = ((_tuplegetterobject*)self)->index;
- PyObject *result;
-
- if (obj == NULL) {
- Py_INCREF(self);
- return self;
- }
- if (!PyTuple_Check(obj)) {
- if (obj == Py_None) {
- Py_INCREF(self);
- return self;
- }
- PyErr_Format(PyExc_TypeError,
- "descriptor for index '%zd' for tuple subclasses "
- "doesn't apply to '%s' object",
- index,
- Py_TYPE(obj)->tp_name);
- return NULL;
- }
-
- if (!valid_index(index, PyTuple_GET_SIZE(obj))) {
- PyErr_SetString(PyExc_IndexError, "tuple index out of range");
- return NULL;
- }
-
- result = PyTuple_GET_ITEM(obj, index);
- Py_INCREF(result);
- return result;
-}
-
-static int
-tuplegetter_descr_set(PyObject *self, PyObject *obj, PyObject *value)
-{
- if (value == NULL) {
- PyErr_SetString(PyExc_AttributeError, "can't delete attribute");
- } else {
- PyErr_SetString(PyExc_AttributeError, "can't set attribute");
- }
- return -1;
-}
-
-static int
-tuplegetter_traverse(PyObject *self, visitproc visit, void *arg)
-{
- _tuplegetterobject *tuplegetter = (_tuplegetterobject *)self;
- Py_VISIT(tuplegetter->doc);
- return 0;
-}
-
-static int
-tuplegetter_clear(PyObject *self)
-{
- _tuplegetterobject *tuplegetter = (_tuplegetterobject *)self;
- Py_CLEAR(tuplegetter->doc);
- return 0;
-}
-
-static void
-tuplegetter_dealloc(_tuplegetterobject *self)
-{
- PyObject_GC_UnTrack(self);
- tuplegetter_clear((PyObject*)self);
- Py_TYPE(self)->tp_free((PyObject*)self);
-}
-
-static PyObject*
-tuplegetter_reduce(_tuplegetterobject *self, PyObject *Py_UNUSED(ignored))
-{
- return Py_BuildValue("(O(nO))", (PyObject*) Py_TYPE(self), self->index, self->doc);
-}
-
-static PyObject*
-tuplegetter_repr(_tuplegetterobject *self)
-{
- return PyUnicode_FromFormat("%s(%zd, %R)",
- _PyType_Name(Py_TYPE(self)),
- self->index, self->doc);
-}
-
-
-static PyMemberDef tuplegetter_members[] = {
- {"__doc__", T_OBJECT, offsetof(_tuplegetterobject, doc), 0},
- {0}
-};
-
-static PyMethodDef tuplegetter_methods[] = {
- {"__reduce__", (PyCFunction)tuplegetter_reduce, METH_NOARGS, NULL},
- {NULL},
-};
-
-static PyTypeObject tuplegetter_type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "_collections._tuplegetter", /* tp_name */
- sizeof(_tuplegetterobject), /* tp_basicsize */
- 0, /* tp_itemsize */
- /* methods */
- (destructor)tuplegetter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_as_async */
- (reprfunc)tuplegetter_repr, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
- 0, /* tp_doc */
- (traverseproc)tuplegetter_traverse, /* tp_traverse */
- (inquiry)tuplegetter_clear, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- tuplegetter_methods, /* tp_methods */
- tuplegetter_members, /* tp_members */
- 0, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- tuplegetter_descr_get, /* tp_descr_get */
- tuplegetter_descr_set, /* tp_descr_set */
- 0, /* tp_dictoffset */
- 0, /* tp_init */
- 0, /* tp_alloc */
- tuplegetter_new, /* tp_new */
- 0,
-};
-
-
+/* Helper function for namedtuple() ************************************/
+
+typedef struct {
+ PyObject_HEAD
+ Py_ssize_t index;
+ PyObject* doc;
+} _tuplegetterobject;
+
+/*[clinic input]
+@classmethod
+_tuplegetter.__new__ as tuplegetter_new
+
+ index: Py_ssize_t
+ doc: object
+ /
+[clinic start generated code]*/
+
+static PyObject *
+tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc)
+/*[clinic end generated code: output=014be444ad80263f input=87c576a5bdbc0bbb]*/
+{
+ _tuplegetterobject* self;
+ self = (_tuplegetterobject *)type->tp_alloc(type, 0);
+ if (self == NULL) {
+ return NULL;
+ }
+ self->index = index;
+ Py_INCREF(doc);
+ self->doc = doc;
+ return (PyObject *)self;
+}
+
+static PyObject *
+tuplegetter_descr_get(PyObject *self, PyObject *obj, PyObject *type)
+{
+ Py_ssize_t index = ((_tuplegetterobject*)self)->index;
+ PyObject *result;
+
+ if (obj == NULL) {
+ Py_INCREF(self);
+ return self;
+ }
+ if (!PyTuple_Check(obj)) {
+ if (obj == Py_None) {
+ Py_INCREF(self);
+ return self;
+ }
+ PyErr_Format(PyExc_TypeError,
+ "descriptor for index '%zd' for tuple subclasses "
+ "doesn't apply to '%s' object",
+ index,
+ Py_TYPE(obj)->tp_name);
+ return NULL;
+ }
+
+ if (!valid_index(index, PyTuple_GET_SIZE(obj))) {
+ PyErr_SetString(PyExc_IndexError, "tuple index out of range");
+ return NULL;
+ }
+
+ result = PyTuple_GET_ITEM(obj, index);
+ Py_INCREF(result);
+ return result;
+}
+
+static int
+tuplegetter_descr_set(PyObject *self, PyObject *obj, PyObject *value)
+{
+ if (value == NULL) {
+ PyErr_SetString(PyExc_AttributeError, "can't delete attribute");
+ } else {
+ PyErr_SetString(PyExc_AttributeError, "can't set attribute");
+ }
+ return -1;
+}
+
+static int
+tuplegetter_traverse(PyObject *self, visitproc visit, void *arg)
+{
+ _tuplegetterobject *tuplegetter = (_tuplegetterobject *)self;
+ Py_VISIT(tuplegetter->doc);
+ return 0;
+}
+
+static int
+tuplegetter_clear(PyObject *self)
+{
+ _tuplegetterobject *tuplegetter = (_tuplegetterobject *)self;
+ Py_CLEAR(tuplegetter->doc);
+ return 0;
+}
+
+static void
+tuplegetter_dealloc(_tuplegetterobject *self)
+{
+ PyObject_GC_UnTrack(self);
+ tuplegetter_clear((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
+}
+
+static PyObject*
+tuplegetter_reduce(_tuplegetterobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return Py_BuildValue("(O(nO))", (PyObject*) Py_TYPE(self), self->index, self->doc);
+}
+
+static PyObject*
+tuplegetter_repr(_tuplegetterobject *self)
+{
+ return PyUnicode_FromFormat("%s(%zd, %R)",
+ _PyType_Name(Py_TYPE(self)),
+ self->index, self->doc);
+}
+
+
+static PyMemberDef tuplegetter_members[] = {
+ {"__doc__", T_OBJECT, offsetof(_tuplegetterobject, doc), 0},
+ {0}
+};
+
+static PyMethodDef tuplegetter_methods[] = {
+ {"__reduce__", (PyCFunction)tuplegetter_reduce, METH_NOARGS, NULL},
+ {NULL},
+};
+
+static PyTypeObject tuplegetter_type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_collections._tuplegetter", /* tp_name */
+ sizeof(_tuplegetterobject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor)tuplegetter_dealloc, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_as_async */
+ (reprfunc)tuplegetter_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ 0, /* tp_doc */
+ (traverseproc)tuplegetter_traverse, /* tp_traverse */
+ (inquiry)tuplegetter_clear, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ tuplegetter_methods, /* tp_methods */
+ tuplegetter_members, /* tp_members */
+ 0, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ tuplegetter_descr_get, /* tp_descr_get */
+ tuplegetter_descr_set, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ tuplegetter_new, /* tp_new */
+ 0,
+};
+
+
/* module level code ********************************************************/
-PyDoc_STRVAR(collections_doc,
+PyDoc_STRVAR(collections_doc,
"High performance data structures.\n\
- deque: ordered collection accessible from endpoints only\n\
- defaultdict: dict subclass with a default value factory\n\
");
-static struct PyMethodDef collections_methods[] = {
- _COLLECTIONS__COUNT_ELEMENTS_METHODDEF
+static struct PyMethodDef collections_methods[] = {
+ _COLLECTIONS__COUNT_ELEMENTS_METHODDEF
{NULL, NULL} /* sentinel */
};
-static int
-collections_exec(PyObject *module) {
- PyTypeObject *typelist[] = {
- &deque_type,
- &defdict_type,
- &PyODict_Type,
- &dequeiter_type,
- &dequereviter_type,
- &tuplegetter_type
- };
-
- defdict_type.tp_base = &PyDict_Type;
-
- for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
- if (PyModule_AddType(module, typelist[i]) < 0) {
- return -1;
- }
- }
-
- return 0;
-}
-
-static struct PyModuleDef_Slot collections_slots[] = {
- {Py_mod_exec, collections_exec},
- {0, NULL}
-};
-
+static int
+collections_exec(PyObject *module) {
+ PyTypeObject *typelist[] = {
+ &deque_type,
+ &defdict_type,
+ &PyODict_Type,
+ &dequeiter_type,
+ &dequereviter_type,
+ &tuplegetter_type
+ };
+
+ defdict_type.tp_base = &PyDict_Type;
+
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
+ if (PyModule_AddType(module, typelist[i]) < 0) {
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static struct PyModuleDef_Slot collections_slots[] = {
+ {Py_mod_exec, collections_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef _collectionsmodule = {
PyModuleDef_HEAD_INIT,
"_collections",
- collections_doc,
- 0,
- collections_methods,
- collections_slots,
+ collections_doc,
+ 0,
+ collections_methods,
+ collections_slots,
NULL,
NULL,
NULL
@@ -2611,5 +2611,5 @@ static struct PyModuleDef _collectionsmodule = {
PyMODINIT_FUNC
PyInit__collections(void)
{
- return PyModuleDef_Init(&_collectionsmodule);
+ return PyModuleDef_Init(&_collectionsmodule);
}
diff --git a/contrib/tools/python3/src/Modules/_contextvarsmodule.c b/contrib/tools/python3/src/Modules/_contextvarsmodule.c
index 2e6566fc87..d6d7f375d1 100644
--- a/contrib/tools/python3/src/Modules/_contextvarsmodule.c
+++ b/contrib/tools/python3/src/Modules/_contextvarsmodule.c
@@ -27,15 +27,15 @@ static PyMethodDef _contextvars_methods[] = {
{NULL, NULL}
};
-static int
-_contextvars_exec(PyObject *m)
+static int
+_contextvars_exec(PyObject *m)
{
Py_INCREF(&PyContext_Type);
if (PyModule_AddObject(m, "Context",
(PyObject *)&PyContext_Type) < 0)
{
Py_DECREF(&PyContext_Type);
- return -1;
+ return -1;
}
Py_INCREF(&PyContextVar_Type);
@@ -43,7 +43,7 @@ _contextvars_exec(PyObject *m)
(PyObject *)&PyContextVar_Type) < 0)
{
Py_DECREF(&PyContextVar_Type);
- return -1;
+ return -1;
}
Py_INCREF(&PyContextToken_Type);
@@ -51,31 +51,31 @@ _contextvars_exec(PyObject *m)
(PyObject *)&PyContextToken_Type) < 0)
{
Py_DECREF(&PyContextToken_Type);
- return -1;
+ return -1;
}
- return 0;
+ return 0;
+}
+
+static struct PyModuleDef_Slot _contextvars_slots[] = {
+ {Py_mod_exec, _contextvars_exec},
+ {0, NULL}
+};
+
+static struct PyModuleDef _contextvarsmodule = {
+ PyModuleDef_HEAD_INIT, /* m_base */
+ "_contextvars", /* m_name */
+ module_doc, /* m_doc */
+ 0, /* m_size */
+ _contextvars_methods, /* m_methods */
+ _contextvars_slots, /* m_slots */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
+};
+
+PyMODINIT_FUNC
+PyInit__contextvars(void)
+{
+ return PyModuleDef_Init(&_contextvarsmodule);
}
-
-static struct PyModuleDef_Slot _contextvars_slots[] = {
- {Py_mod_exec, _contextvars_exec},
- {0, NULL}
-};
-
-static struct PyModuleDef _contextvarsmodule = {
- PyModuleDef_HEAD_INIT, /* m_base */
- "_contextvars", /* m_name */
- module_doc, /* m_doc */
- 0, /* m_size */
- _contextvars_methods, /* m_methods */
- _contextvars_slots, /* m_slots */
- NULL, /* m_traverse */
- NULL, /* m_clear */
- NULL, /* m_free */
-};
-
-PyMODINIT_FUNC
-PyInit__contextvars(void)
-{
- return PyModuleDef_Init(&_contextvarsmodule);
-}
diff --git a/contrib/tools/python3/src/Modules/_cryptmodule.c b/contrib/tools/python3/src/Modules/_cryptmodule.c
index 73bb2277db..72a4f44600 100644
--- a/contrib/tools/python3/src/Modules/_cryptmodule.c
+++ b/contrib/tools/python3/src/Modules/_cryptmodule.c
@@ -1,80 +1,80 @@
-/* cryptmodule.c - by Steve Majewski
- */
-
-#include "Python.h"
-
-#include <sys/types.h>
-#ifdef HAVE_CRYPT_H
-#include <crypt.h>
-#endif
-
-/* Module crypt */
-
-/*[clinic input]
-module crypt
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=c6252cf4f2f2ae81]*/
-
-#include "clinic/_cryptmodule.c.h"
-
-/*[clinic input]
-crypt.crypt
-
- word: str
- salt: str
- /
-
-Hash a *word* with the given *salt* and return the hashed password.
-
-*word* will usually be a user's password. *salt* (either a random 2 or 16
-character string, possibly prefixed with $digit$ to indicate the method)
-will be used to perturb the encryption algorithm and produce distinct
-results for a given *word*.
-
-[clinic start generated code]*/
-
-static PyObject *
-crypt_crypt_impl(PyObject *module, const char *word, const char *salt)
-/*[clinic end generated code: output=0512284a03d2803c input=0e8edec9c364352b]*/
-{
- char *crypt_result;
-#ifdef HAVE_CRYPT_R
- struct crypt_data data;
- memset(&data, 0, sizeof(data));
- crypt_result = crypt_r(word, salt, &data);
-#else
- crypt_result = crypt(word, salt);
-#endif
- if (crypt_result == NULL) {
- return PyErr_SetFromErrno(PyExc_OSError);
- }
- return Py_BuildValue("s", crypt_result);
-}
-
-
-static PyMethodDef crypt_methods[] = {
- CRYPT_CRYPT_METHODDEF
- {NULL, NULL} /* sentinel */
-};
-
-static PyModuleDef_Slot _crypt_slots[] = {
- {0, NULL}
-};
-
-static struct PyModuleDef cryptmodule = {
- PyModuleDef_HEAD_INIT,
- "_crypt",
- NULL,
- 0,
- crypt_methods,
- _crypt_slots,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit__crypt(void)
-{
- return PyModuleDef_Init(&cryptmodule);
-}
+/* cryptmodule.c - by Steve Majewski
+ */
+
+#include "Python.h"
+
+#include <sys/types.h>
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
+
+/* Module crypt */
+
+/*[clinic input]
+module crypt
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=c6252cf4f2f2ae81]*/
+
+#include "clinic/_cryptmodule.c.h"
+
+/*[clinic input]
+crypt.crypt
+
+ word: str
+ salt: str
+ /
+
+Hash a *word* with the given *salt* and return the hashed password.
+
+*word* will usually be a user's password. *salt* (either a random 2 or 16
+character string, possibly prefixed with $digit$ to indicate the method)
+will be used to perturb the encryption algorithm and produce distinct
+results for a given *word*.
+
+[clinic start generated code]*/
+
+static PyObject *
+crypt_crypt_impl(PyObject *module, const char *word, const char *salt)
+/*[clinic end generated code: output=0512284a03d2803c input=0e8edec9c364352b]*/
+{
+ char *crypt_result;
+#ifdef HAVE_CRYPT_R
+ struct crypt_data data;
+ memset(&data, 0, sizeof(data));
+ crypt_result = crypt_r(word, salt, &data);
+#else
+ crypt_result = crypt(word, salt);
+#endif
+ if (crypt_result == NULL) {
+ return PyErr_SetFromErrno(PyExc_OSError);
+ }
+ return Py_BuildValue("s", crypt_result);
+}
+
+
+static PyMethodDef crypt_methods[] = {
+ CRYPT_CRYPT_METHODDEF
+ {NULL, NULL} /* sentinel */
+};
+
+static PyModuleDef_Slot _crypt_slots[] = {
+ {0, NULL}
+};
+
+static struct PyModuleDef cryptmodule = {
+ PyModuleDef_HEAD_INIT,
+ "_crypt",
+ NULL,
+ 0,
+ crypt_methods,
+ _crypt_slots,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC
+PyInit__crypt(void)
+{
+ return PyModuleDef_Init(&cryptmodule);
+}
diff --git a/contrib/tools/python3/src/Modules/_csv.c b/contrib/tools/python3/src/Modules/_csv.c
index 25aabd4155..029f473ae8 100644
--- a/contrib/tools/python3/src/Modules/_csv.c
+++ b/contrib/tools/python3/src/Modules/_csv.c
@@ -11,8 +11,8 @@ module instead.
#define MODULE_VERSION "1.0"
#include "Python.h"
-#include "structmember.h" // PyMemberDef
-#include <stdbool.h>
+#include "structmember.h" // PyMemberDef
+#include <stdbool.h>
typedef struct {
@@ -21,27 +21,27 @@ typedef struct {
long field_limit; /* max parsed field size */
} _csvstate;
-static inline _csvstate*
-get_csv_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_csvstate *)state;
-}
+static inline _csvstate*
+get_csv_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_csvstate *)state;
+}
static int
_csv_clear(PyObject *m)
{
- Py_CLEAR(get_csv_state(m)->error_obj);
- Py_CLEAR(get_csv_state(m)->dialects);
+ Py_CLEAR(get_csv_state(m)->error_obj);
+ Py_CLEAR(get_csv_state(m)->dialects);
return 0;
}
static int
_csv_traverse(PyObject *m, visitproc visit, void *arg)
{
- Py_VISIT(get_csv_state(m)->error_obj);
- Py_VISIT(get_csv_state(m)->dialects);
+ Py_VISIT(get_csv_state(m)->error_obj);
+ Py_VISIT(get_csv_state(m)->dialects);
return 0;
}
@@ -81,14 +81,14 @@ static const StyleDesc quote_styles[] = {
typedef struct {
PyObject_HEAD
- char doublequote; /* is " represented by ""? */
- char skipinitialspace; /* ignore spaces following delimiter? */
- char strict; /* raise exception on bad CSV */
+ char doublequote; /* is " represented by ""? */
+ char skipinitialspace; /* ignore spaces following delimiter? */
+ char strict; /* raise exception on bad CSV */
int quoting; /* style of quoting to write */
- Py_UCS4 delimiter; /* field separator */
- Py_UCS4 quotechar; /* quote character */
- Py_UCS4 escapechar; /* escape character */
- PyObject *lineterminator; /* string to write between records */
+ Py_UCS4 delimiter; /* field separator */
+ Py_UCS4 quotechar; /* quote character */
+ Py_UCS4 escapechar; /* escape character */
+ PyObject *lineterminator; /* string to write between records */
} DialectObj;
@@ -112,12 +112,12 @@ typedef struct {
static PyTypeObject Reader_Type;
-#define ReaderObject_Check(v) Py_IS_TYPE(v, &Reader_Type)
+#define ReaderObject_Check(v) Py_IS_TYPE(v, &Reader_Type)
typedef struct {
PyObject_HEAD
- PyObject *write; /* write output lines to this file */
+ PyObject *write; /* write output lines to this file */
DialectObj *dialect; /* parsing dialect */
@@ -138,7 +138,7 @@ get_dialect_from_registry(PyObject * name_obj)
{
PyObject *dialect_obj;
- dialect_obj = PyDict_GetItemWithError(_csvstate_global->dialects, name_obj);
+ dialect_obj = PyDict_GetItemWithError(_csvstate_global->dialects, name_obj);
if (dialect_obj == NULL) {
if (!PyErr_Occurred())
PyErr_Format(_csvstate_global->error_obj, "unknown dialect");
@@ -196,7 +196,7 @@ Dialect_get_quoting(DialectObj *self, void *Py_UNUSED(ignored))
}
static int
-_set_bool(const char *name, char *target, PyObject *src, bool dflt)
+_set_bool(const char *name, char *target, PyObject *src, bool dflt)
{
if (src == NULL)
*target = dflt;
@@ -204,7 +204,7 @@ _set_bool(const char *name, char *target, PyObject *src, bool dflt)
int b = PyObject_IsTrue(src);
if (b < 0)
return -1;
- *target = (char)b;
+ *target = (char)b;
}
return 0;
}
@@ -231,24 +231,24 @@ _set_int(const char *name, int *target, PyObject *src, int dflt)
}
static int
-_set_char_or_none(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
+_set_char_or_none(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
{
- if (src == NULL) {
+ if (src == NULL) {
*target = dflt;
- }
+ }
else {
*target = '\0';
if (src != Py_None) {
if (!PyUnicode_Check(src)) {
PyErr_Format(PyExc_TypeError,
- "\"%s\" must be string or None, not %.200s", name,
- Py_TYPE(src)->tp_name);
+ "\"%s\" must be string or None, not %.200s", name,
+ Py_TYPE(src)->tp_name);
+ return -1;
+ }
+ Py_ssize_t len = PyUnicode_GetLength(src);
+ if (len < 0) {
return -1;
}
- Py_ssize_t len = PyUnicode_GetLength(src);
- if (len < 0) {
- return -1;
- }
if (len > 1) {
PyErr_Format(PyExc_TypeError,
"\"%s\" must be a 1-character string",
@@ -256,47 +256,47 @@ _set_char_or_none(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt
return -1;
}
/* PyUnicode_READY() is called in PyUnicode_GetLength() */
- else {
+ else {
*target = PyUnicode_READ_CHAR(src, 0);
- }
+ }
+ }
+ }
+ return 0;
+}
+
+static int
+_set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
+{
+ if (src == NULL) {
+ *target = dflt;
+ }
+ else {
+ *target = '\0';
+ if (!PyUnicode_Check(src)) {
+ PyErr_Format(PyExc_TypeError,
+ "\"%s\" must be string, not %.200s", name,
+ Py_TYPE(src)->tp_name);
+ return -1;
+ }
+ Py_ssize_t len = PyUnicode_GetLength(src);
+ if (len < 0) {
+ return -1;
+ }
+ if (len > 1) {
+ PyErr_Format(PyExc_TypeError,
+ "\"%s\" must be a 1-character string",
+ name);
+ return -1;
+ }
+ /* PyUnicode_READY() is called in PyUnicode_GetLength() */
+ else {
+ *target = PyUnicode_READ_CHAR(src, 0);
}
}
return 0;
}
static int
-_set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
-{
- if (src == NULL) {
- *target = dflt;
- }
- else {
- *target = '\0';
- if (!PyUnicode_Check(src)) {
- PyErr_Format(PyExc_TypeError,
- "\"%s\" must be string, not %.200s", name,
- Py_TYPE(src)->tp_name);
- return -1;
- }
- Py_ssize_t len = PyUnicode_GetLength(src);
- if (len < 0) {
- return -1;
- }
- if (len > 1) {
- PyErr_Format(PyExc_TypeError,
- "\"%s\" must be a 1-character string",
- name);
- return -1;
- }
- /* PyUnicode_READY() is called in PyUnicode_GetLength() */
- else {
- *target = PyUnicode_READ_CHAR(src, 0);
- }
- }
- return 0;
-}
-
-static int
_set_str(const char *name, PyObject **target, PyObject *src, const char *dflt)
{
if (src == NULL)
@@ -335,9 +335,9 @@ dialect_check_quoting(int quoting)
#define D_OFF(x) offsetof(DialectObj, x)
static struct PyMemberDef Dialect_memberlist[] = {
- { "skipinitialspace", T_BOOL, D_OFF(skipinitialspace), READONLY },
- { "doublequote", T_BOOL, D_OFF(doublequote), READONLY },
- { "strict", T_BOOL, D_OFF(strict), READONLY },
+ { "skipinitialspace", T_BOOL, D_OFF(skipinitialspace), READONLY },
+ { "doublequote", T_BOOL, D_OFF(doublequote), READONLY },
+ { "strict", T_BOOL, D_OFF(strict), READONLY },
{ NULL }
};
@@ -435,14 +435,14 @@ dialect_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
Py_XINCREF(skipinitialspace);
Py_XINCREF(strict);
if (dialect != NULL) {
-#define DIALECT_GETATTR(v, n) \
- do { \
- if (v == NULL) { \
- v = PyObject_GetAttrString(dialect, n); \
- if (v == NULL) \
- PyErr_Clear(); \
- } \
- } while (0)
+#define DIALECT_GETATTR(v, n) \
+ do { \
+ if (v == NULL) { \
+ v = PyObject_GetAttrString(dialect, n); \
+ if (v == NULL) \
+ PyErr_Clear(); \
+ } \
+ } while (0)
DIALECT_GETATTR(delimiter, "delimiter");
DIALECT_GETATTR(doublequote, "doublequote");
DIALECT_GETATTR(escapechar, "escapechar");
@@ -458,13 +458,13 @@ dialect_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
if (meth(name, target, src, dflt)) \
goto err
DIASET(_set_char, "delimiter", &self->delimiter, delimiter, ',');
- DIASET(_set_bool, "doublequote", &self->doublequote, doublequote, true);
- DIASET(_set_char_or_none, "escapechar", &self->escapechar, escapechar, 0);
+ DIASET(_set_bool, "doublequote", &self->doublequote, doublequote, true);
+ DIASET(_set_char_or_none, "escapechar", &self->escapechar, escapechar, 0);
DIASET(_set_str, "lineterminator", &self->lineterminator, lineterminator, "\r\n");
- DIASET(_set_char_or_none, "quotechar", &self->quotechar, quotechar, '"');
+ DIASET(_set_char_or_none, "quotechar", &self->quotechar, quotechar, '"');
DIASET(_set_int, "quoting", &self->quoting, quoting, QUOTE_MINIMAL);
- DIASET(_set_bool, "skipinitialspace", &self->skipinitialspace, skipinitialspace, false);
- DIASET(_set_bool, "strict", &self->strict, strict, false);
+ DIASET(_set_bool, "skipinitialspace", &self->skipinitialspace, skipinitialspace, false);
+ DIASET(_set_bool, "strict", &self->strict, strict, false);
/* validate options */
if (dialect_check_quoting(self->quoting))
@@ -515,10 +515,10 @@ static PyTypeObject Dialect_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)Dialect_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
(getattrfunc)0, /* tp_getattr */
(setattrfunc)0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -560,10 +560,10 @@ _call_dialect(PyObject *dialect_inst, PyObject *kwargs)
{
PyObject *type = (PyObject *)&Dialect_Type;
if (dialect_inst) {
- return PyObject_VectorcallDict(type, &dialect_inst, 1, kwargs);
+ return PyObject_VectorcallDict(type, &dialect_inst, 1, kwargs);
}
else {
- return PyObject_VectorcallDict(type, NULL, 0, kwargs);
+ return PyObject_VectorcallDict(type, NULL, 0, kwargs);
}
}
@@ -829,7 +829,7 @@ Reader_iternext(ReaderObj *self)
Py_UCS4 c;
Py_ssize_t pos, linelen;
unsigned int kind;
- const void *data;
+ const void *data;
PyObject *lineobj;
if (parse_reset(self) < 0)
@@ -853,7 +853,7 @@ Reader_iternext(ReaderObj *self)
"iterator should return strings, "
"not %.200s "
"(did you open the file in text mode?)",
- Py_TYPE(lineobj)->tp_name
+ Py_TYPE(lineobj)->tp_name
);
Py_DECREF(lineobj);
return NULL;
@@ -872,7 +872,7 @@ Reader_iternext(ReaderObj *self)
if (c == '\0') {
Py_DECREF(lineobj);
PyErr_Format(_csvstate_global->error_obj,
- "line contains NUL");
+ "line contains NUL");
goto err;
}
if (parse_process_char(self, c) < 0) {
@@ -948,10 +948,10 @@ static PyTypeObject Reader_Type = {
0, /*tp_itemsize*/
/* methods */
(destructor)Reader_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
(getattrfunc)0, /*tp_getattr*/
(setattrfunc)0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -1034,7 +1034,7 @@ join_reset(WriterObj *self)
* record length.
*/
static Py_ssize_t
-join_append_data(WriterObj *self, unsigned int field_kind, const void *field_data,
+join_append_data(WriterObj *self, unsigned int field_kind, const void *field_data,
Py_ssize_t field_len, int *quoted,
int copy_phase)
{
@@ -1145,7 +1145,7 @@ static int
join_append(WriterObj *self, PyObject *field, int quoted)
{
unsigned int field_kind = -1;
- const void *field_data = NULL;
+ const void *field_data = NULL;
Py_ssize_t field_len = 0;
Py_ssize_t rec_len;
@@ -1177,7 +1177,7 @@ join_append_lineterminator(WriterObj *self)
{
Py_ssize_t terminator_len, i;
unsigned int term_kind;
- const void *term_data;
+ const void *term_data;
terminator_len = PyUnicode_GET_LENGTH(self->dialect->lineterminator);
if (terminator_len == -1)
@@ -1209,14 +1209,14 @@ csv_writerow(WriterObj *self, PyObject *seq)
PyObject *iter, *field, *line, *result;
iter = PyObject_GetIter(seq);
- if (iter == NULL) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_Format(_csvstate_global->error_obj,
- "iterable expected, not %.200s",
- Py_TYPE(seq)->tp_name);
- }
- return NULL;
- }
+ if (iter == NULL) {
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_Format(_csvstate_global->error_obj,
+ "iterable expected, not %.200s",
+ Py_TYPE(seq)->tp_name);
+ }
+ return NULL;
+ }
/* Join all fields in internal buffer.
*/
@@ -1279,16 +1279,16 @@ csv_writerow(WriterObj *self, PyObject *seq)
/* Add line terminator.
*/
- if (!join_append_lineterminator(self)) {
+ if (!join_append_lineterminator(self)) {
return NULL;
- }
+ }
line = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND,
(void *) self->rec, self->rec_len);
- if (line == NULL) {
+ if (line == NULL) {
return NULL;
- }
- result = PyObject_CallOneArg(self->write, line);
+ }
+ result = PyObject_CallOneArg(self->write, line);
Py_DECREF(line);
return result;
}
@@ -1342,7 +1342,7 @@ Writer_dealloc(WriterObj *self)
{
PyObject_GC_UnTrack(self);
Py_XDECREF(self->dialect);
- Py_XDECREF(self->write);
+ Py_XDECREF(self->write);
if (self->rec != NULL)
PyMem_Free(self->rec);
PyObject_GC_Del(self);
@@ -1352,7 +1352,7 @@ static int
Writer_traverse(WriterObj *self, visitproc visit, void *arg)
{
Py_VISIT(self->dialect);
- Py_VISIT(self->write);
+ Py_VISIT(self->write);
return 0;
}
@@ -1360,7 +1360,7 @@ static int
Writer_clear(WriterObj *self)
{
Py_CLEAR(self->dialect);
- Py_CLEAR(self->write);
+ Py_CLEAR(self->write);
return 0;
}
@@ -1378,10 +1378,10 @@ static PyTypeObject Writer_Type = {
0, /*tp_itemsize*/
/* methods */
(destructor)Writer_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
(getattrfunc)0, /*tp_getattr*/
(setattrfunc)0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -1417,7 +1417,7 @@ csv_writer(PyObject *module, PyObject *args, PyObject *keyword_args)
return NULL;
self->dialect = NULL;
- self->write = NULL;
+ self->write = NULL;
self->rec = NULL;
self->rec_size = 0;
@@ -1428,11 +1428,11 @@ csv_writer(PyObject *module, PyObject *args, PyObject *keyword_args)
Py_DECREF(self);
return NULL;
}
- if (_PyObject_LookupAttrId(output_file, &PyId_write, &self->write) < 0) {
- Py_DECREF(self);
- return NULL;
- }
- if (self->write == NULL || !PyCallable_Check(self->write)) {
+ if (_PyObject_LookupAttrId(output_file, &PyId_write, &self->write) < 0) {
+ Py_DECREF(self);
+ return NULL;
+ }
+ if (self->write == NULL || !PyCallable_Check(self->write)) {
PyErr_SetString(PyExc_TypeError,
"argument 1 must have a \"write\" method");
Py_DECREF(self);
@@ -1485,12 +1485,12 @@ csv_register_dialect(PyObject *module, PyObject *args, PyObject *kwargs)
static PyObject *
csv_unregister_dialect(PyObject *module, PyObject *name_obj)
{
- if (PyDict_DelItem(_csvstate_global->dialects, name_obj) < 0) {
- if (PyErr_ExceptionMatches(PyExc_KeyError)) {
- PyErr_Format(_csvstate_global->error_obj, "unknown dialect");
- }
- return NULL;
- }
+ if (PyDict_DelItem(_csvstate_global->dialects, name_obj) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_KeyError)) {
+ PyErr_Format(_csvstate_global->error_obj, "unknown dialect");
+ }
+ return NULL;
+ }
Py_RETURN_NONE;
}
@@ -1558,15 +1558,15 @@ PyDoc_STRVAR(csv_module_doc,
"\n"
"SETTINGS:\n"
"\n"
-" * quotechar - specifies a one-character string to use as the\n"
+" * quotechar - specifies a one-character string to use as the\n"
" quoting character. It defaults to '\"'.\n"
-" * delimiter - specifies a one-character string to use as the\n"
+" * delimiter - specifies a one-character string to use as the\n"
" field separator. It defaults to ','.\n"
" * skipinitialspace - specifies how to interpret whitespace which\n"
" immediately follows a delimiter. It defaults to False, which\n"
" means that whitespace immediately following a delimiter is part\n"
" of the following field.\n"
-" * lineterminator - specifies the character sequence which should\n"
+" * lineterminator - specifies the character sequence which should\n"
" terminate rows.\n"
" * quoting - controls when quotes should be generated by the writer.\n"
" It can take on any of the following module constants:\n"
@@ -1578,7 +1578,7 @@ PyDoc_STRVAR(csv_module_doc,
" fields which do not parse as integers or floating point\n"
" numbers.\n"
" csv.QUOTE_NONE means that quotes are never placed around fields.\n"
-" * escapechar - specifies a one-character string used to escape\n"
+" * escapechar - specifies a one-character string used to escape\n"
" the delimiter when quoting is set to QUOTE_NONE.\n"
" * doublequote - controls the handling of quotes inside fields. When\n"
" True, two consecutive quotes are interpreted as one during read,\n"
@@ -1638,13 +1638,13 @@ PyDoc_STRVAR(csv_field_size_limit_doc,
"the old limit is returned");
static struct PyMethodDef csv_methods[] = {
- { "reader", (PyCFunction)(void(*)(void))csv_reader,
+ { "reader", (PyCFunction)(void(*)(void))csv_reader,
METH_VARARGS | METH_KEYWORDS, csv_reader_doc},
- { "writer", (PyCFunction)(void(*)(void))csv_writer,
+ { "writer", (PyCFunction)(void(*)(void))csv_writer,
METH_VARARGS | METH_KEYWORDS, csv_writer_doc},
{ "list_dialects", (PyCFunction)csv_list_dialects,
METH_NOARGS, csv_list_dialects_doc},
- { "register_dialect", (PyCFunction)(void(*)(void))csv_register_dialect,
+ { "register_dialect", (PyCFunction)(void(*)(void))csv_register_dialect,
METH_VARARGS | METH_KEYWORDS, csv_register_dialect_doc},
{ "unregister_dialect", (PyCFunction)csv_unregister_dialect,
METH_O, csv_unregister_dialect_doc},
@@ -1690,15 +1690,15 @@ PyInit__csv(void)
return NULL;
/* Set the field limit */
- get_csv_state(module)->field_limit = 128 * 1024;
+ get_csv_state(module)->field_limit = 128 * 1024;
/* Do I still need to add this var to the Module Dict? */
/* Add _dialects dictionary */
- get_csv_state(module)->dialects = PyDict_New();
- if (get_csv_state(module)->dialects == NULL)
+ get_csv_state(module)->dialects = PyDict_New();
+ if (get_csv_state(module)->dialects == NULL)
return NULL;
- Py_INCREF(get_csv_state(module)->dialects);
- if (PyModule_AddObject(module, "_dialects", get_csv_state(module)->dialects))
+ Py_INCREF(get_csv_state(module)->dialects);
+ if (PyModule_AddObject(module, "_dialects", get_csv_state(module)->dialects))
return NULL;
/* Add quote styles into dictionary */
@@ -1708,15 +1708,15 @@ PyInit__csv(void)
return NULL;
}
- if (PyModule_AddType(module, &Dialect_Type)) {
+ if (PyModule_AddType(module, &Dialect_Type)) {
return NULL;
- }
+ }
/* Add the CSV exception object to the module. */
- get_csv_state(module)->error_obj = PyErr_NewException("_csv.Error", NULL, NULL);
- if (get_csv_state(module)->error_obj == NULL)
+ get_csv_state(module)->error_obj = PyErr_NewException("_csv.Error", NULL, NULL);
+ if (get_csv_state(module)->error_obj == NULL)
return NULL;
- Py_INCREF(get_csv_state(module)->error_obj);
- PyModule_AddObject(module, "Error", get_csv_state(module)->error_obj);
+ Py_INCREF(get_csv_state(module)->error_obj);
+ PyModule_AddObject(module, "Error", get_csv_state(module)->error_obj);
return module;
}
diff --git a/contrib/tools/python3/src/Modules/_ctypes/_ctypes.c b/contrib/tools/python3/src/Modules/_ctypes/_ctypes.c
index 5cad87636e..0f7b8003f2 100644
--- a/contrib/tools/python3/src/Modules/_ctypes/_ctypes.c
+++ b/contrib/tools/python3/src/Modules/_ctypes/_ctypes.c
@@ -102,7 +102,7 @@ bytes(cdata)
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include <ffi.h>
#ifdef MS_WIN32
@@ -151,9 +151,9 @@ _DictRemover_call(PyObject *myself, PyObject *args, PyObject *kw)
{
DictRemoverObject *self = (DictRemoverObject *)myself;
if (self->key && self->dict) {
- if (-1 == PyDict_DelItem(self->dict, self->key)) {
- _PyErr_WriteUnraisableMsg("on calling _ctypes.DictRemover", NULL);
- }
+ if (-1 == PyDict_DelItem(self->dict, self->key)) {
+ _PyErr_WriteUnraisableMsg("on calling _ctypes.DictRemover", NULL);
+ }
Py_CLEAR(self->key);
Py_CLEAR(self->dict);
}
@@ -166,10 +166,10 @@ static PyTypeObject DictRemover_Type = {
sizeof(DictRemoverObject), /* tp_basicsize */
0, /* tp_itemsize */
_DictRemover_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -237,7 +237,7 @@ PyObject *
PyDict_GetItemProxy(PyObject *dict, PyObject *key)
{
PyObject *result;
- PyObject *item = PyDict_GetItemWithError(dict, key);
+ PyObject *item = PyDict_GetItemWithError(dict, key);
if (item == NULL)
return NULL;
@@ -393,35 +393,35 @@ _ctypes_alloc_format_string_with_shape(int ndim, const Py_ssize_t *shape,
return result;
}
-/* StructParamObject and StructParam_Type are used in _ctypes_callproc()
- for argument.keep to call PyMem_Free(ptr) on Py_DECREF(argument).
-
- StructUnionType_paramfunc() creates such object when a ctypes Structure is
- passed by copy to a C function. */
-typedef struct {
- PyObject_HEAD
- void *ptr;
-} StructParamObject;
-
-
-static void
-StructParam_dealloc(PyObject *myself)
-{
- StructParamObject *self = (StructParamObject *)myself;
- PyMem_Free(self->ptr);
- Py_TYPE(self)->tp_free(myself);
-}
-
-
-static PyTypeObject StructParam_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- .tp_name = "_ctypes.StructParam_Type",
- .tp_basicsize = sizeof(StructParamObject),
- .tp_dealloc = StructParam_dealloc,
- .tp_flags = Py_TPFLAGS_DEFAULT,
-};
-
-
+/* StructParamObject and StructParam_Type are used in _ctypes_callproc()
+ for argument.keep to call PyMem_Free(ptr) on Py_DECREF(argument).
+
+ StructUnionType_paramfunc() creates such object when a ctypes Structure is
+ passed by copy to a C function. */
+typedef struct {
+ PyObject_HEAD
+ void *ptr;
+} StructParamObject;
+
+
+static void
+StructParam_dealloc(PyObject *myself)
+{
+ StructParamObject *self = (StructParamObject *)myself;
+ PyMem_Free(self->ptr);
+ Py_TYPE(self)->tp_free(myself);
+}
+
+
+static PyTypeObject StructParam_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ .tp_name = "_ctypes.StructParam_Type",
+ .tp_basicsize = sizeof(StructParamObject),
+ .tp_dealloc = StructParam_dealloc,
+ .tp_flags = Py_TPFLAGS_DEFAULT,
+};
+
+
/*
PyCStructType_Type - a meta type/class. Creating a new class using this one as
__metaclass__ will call the constructor StructUnionType_new. It replaces the
@@ -433,47 +433,47 @@ static PyCArgObject *
StructUnionType_paramfunc(CDataObject *self)
{
PyCArgObject *parg;
- PyObject *obj;
+ PyObject *obj;
StgDictObject *stgdict;
- void *ptr;
-
- if ((size_t)self->b_size > sizeof(void*)) {
- ptr = PyMem_Malloc(self->b_size);
- if (ptr == NULL) {
- return NULL;
- }
- memcpy(ptr, self->b_ptr, self->b_size);
-
- /* Create a Python object which calls PyMem_Free(ptr) in
- its deallocator. The object will be destroyed
- at _ctypes_callproc() cleanup. */
- obj = (&StructParam_Type)->tp_alloc(&StructParam_Type, 0);
- if (obj == NULL) {
- PyMem_Free(ptr);
- return NULL;
- }
-
- StructParamObject *struct_param = (StructParamObject *)obj;
- struct_param->ptr = ptr;
- } else {
- ptr = self->b_ptr;
- obj = (PyObject *)self;
- Py_INCREF(obj);
- }
-
+ void *ptr;
+
+ if ((size_t)self->b_size > sizeof(void*)) {
+ ptr = PyMem_Malloc(self->b_size);
+ if (ptr == NULL) {
+ return NULL;
+ }
+ memcpy(ptr, self->b_ptr, self->b_size);
+
+ /* Create a Python object which calls PyMem_Free(ptr) in
+ its deallocator. The object will be destroyed
+ at _ctypes_callproc() cleanup. */
+ obj = (&StructParam_Type)->tp_alloc(&StructParam_Type, 0);
+ if (obj == NULL) {
+ PyMem_Free(ptr);
+ return NULL;
+ }
+
+ StructParamObject *struct_param = (StructParamObject *)obj;
+ struct_param->ptr = ptr;
+ } else {
+ ptr = self->b_ptr;
+ obj = (PyObject *)self;
+ Py_INCREF(obj);
+ }
+
parg = PyCArgObject_new();
- if (parg == NULL) {
- Py_DECREF(obj);
+ if (parg == NULL) {
+ Py_DECREF(obj);
return NULL;
- }
+ }
parg->tag = 'V';
stgdict = PyObject_stgdict((PyObject *)self);
assert(stgdict); /* Cannot be NULL for structure/union instances */
parg->pffi_type = &stgdict->ffi_type_pointer;
- parg->value.p = ptr;
+ parg->value.p = ptr;
parg->size = self->b_size;
- parg->obj = obj;
+ parg->obj = obj;
return parg;
}
@@ -483,8 +483,8 @@ StructUnionType_new(PyTypeObject *type, PyObject *args, PyObject *kwds, int isSt
PyTypeObject *result;
PyObject *fields;
StgDictObject *dict;
- _Py_IDENTIFIER(_abstract_);
- _Py_IDENTIFIER(_fields_);
+ _Py_IDENTIFIER(_abstract_);
+ _Py_IDENTIFIER(_fields_);
/* create the new instance (which is a class,
since we are a metatype!) */
@@ -493,21 +493,21 @@ StructUnionType_new(PyTypeObject *type, PyObject *args, PyObject *kwds, int isSt
return NULL;
/* keep this for bw compatibility */
- if (_PyDict_GetItemIdWithError(result->tp_dict, &PyId__abstract_))
+ if (_PyDict_GetItemIdWithError(result->tp_dict, &PyId__abstract_))
return (PyObject *)result;
- if (PyErr_Occurred()) {
- Py_DECREF(result);
- return NULL;
- }
+ if (PyErr_Occurred()) {
+ Py_DECREF(result);
+ return NULL;
+ }
dict = (StgDictObject *)_PyObject_CallNoArg((PyObject *)&PyCStgDict_Type);
if (!dict) {
Py_DECREF(result);
return NULL;
}
- if (!isStruct) {
- dict->flags |= TYPEFLAG_HASUNION;
- }
+ if (!isStruct) {
+ dict->flags |= TYPEFLAG_HASUNION;
+ }
/* replace the class dict by our updated stgdict, which holds info
about storage requirements of the instances */
if (-1 == PyDict_Update((PyObject *)dict, result->tp_dict)) {
@@ -524,19 +524,19 @@ StructUnionType_new(PyTypeObject *type, PyObject *args, PyObject *kwds, int isSt
dict->paramfunc = StructUnionType_paramfunc;
- fields = _PyDict_GetItemIdWithError((PyObject *)dict, &PyId__fields_);
- if (fields) {
- if (_PyObject_SetAttrId((PyObject *)result, &PyId__fields_, fields) < 0) {
- Py_DECREF(result);
- return NULL;
- }
- return (PyObject *)result;
- }
- else if (PyErr_Occurred()) {
- Py_DECREF(result);
- return NULL;
- }
- else {
+ fields = _PyDict_GetItemIdWithError((PyObject *)dict, &PyId__fields_);
+ if (fields) {
+ if (_PyObject_SetAttrId((PyObject *)result, &PyId__fields_, fields) < 0) {
+ Py_DECREF(result);
+ return NULL;
+ }
+ return (PyObject *)result;
+ }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(result);
+ return NULL;
+ }
+ else {
StgDictObject *basedict = PyType_stgdict((PyObject *)result->tp_base);
if (basedict == NULL)
@@ -642,12 +642,12 @@ CDataType_from_buffer(PyObject *type, PyObject *args)
return NULL;
}
- if (PySys_Audit("ctypes.cdata/buffer", "nnn",
- (Py_ssize_t)buffer->buf, buffer->len, offset) < 0) {
- Py_DECREF(mv);
- return NULL;
- }
-
+ if (PySys_Audit("ctypes.cdata/buffer", "nnn",
+ (Py_ssize_t)buffer->buf, buffer->len, offset) < 0) {
+ Py_DECREF(mv);
+ return NULL;
+ }
+
result = PyCData_AtAddress(type, (char *)buffer->buf + offset);
if (result == NULL) {
Py_DECREF(mv);
@@ -698,12 +698,12 @@ CDataType_from_buffer_copy(PyObject *type, PyObject *args)
return NULL;
}
- if (PySys_Audit("ctypes.cdata/buffer", "nnn",
- (Py_ssize_t)buffer.buf, buffer.len, offset) < 0) {
- PyBuffer_Release(&buffer);
- return NULL;
- }
-
+ if (PySys_Audit("ctypes.cdata/buffer", "nnn",
+ (Py_ssize_t)buffer.buf, buffer.len, offset) < 0) {
+ PyBuffer_Release(&buffer);
+ return NULL;
+ }
+
result = GenericPyCData_new((PyTypeObject *)type, NULL, NULL);
if (result != NULL) {
memcpy(((CDataObject *)result)->b_ptr,
@@ -727,9 +727,9 @@ CDataType_in_dll(PyObject *type, PyObject *args)
if (!PyArg_ParseTuple(args, "Os:in_dll", &dll, &name))
return NULL;
- if (PySys_Audit("ctypes.dlsym", "O", args) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.dlsym", "O", args) < 0) {
+ return NULL;
+ }
obj = PyObject_GetAttrString(dll, "_handle");
if (!obj)
@@ -749,9 +749,9 @@ CDataType_in_dll(PyObject *type, PyObject *args)
}
#ifdef MS_WIN32
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
address = (void *)GetProcAddress(handle, name);
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (!address) {
PyErr_Format(PyExc_ValueError,
"symbol '%s' not found",
@@ -781,7 +781,7 @@ static const char from_param_doc[] =
static PyObject *
CDataType_from_param(PyObject *type, PyObject *value)
{
- _Py_IDENTIFIER(_as_parameter_);
+ _Py_IDENTIFIER(_as_parameter_);
PyObject *as_parameter;
int res = PyObject_IsInstance(value, type);
if (res == -1)
@@ -815,9 +815,9 @@ CDataType_from_param(PyObject *type, PyObject *value)
return NULL;
}
- if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
+ return NULL;
+ }
if (as_parameter) {
value = CDataType_from_param(type, as_parameter);
Py_DECREF(as_parameter);
@@ -915,10 +915,10 @@ PyTypeObject PyCStructType_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
&CDataType_as_sequence, /* tp_as_sequence */
@@ -957,10 +957,10 @@ static PyTypeObject UnionType_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
&CDataType_as_sequence, /* tp_as_sequence */
@@ -1052,7 +1052,7 @@ PyCPointerType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
StgDictObject *stgdict;
PyObject *proto;
PyObject *typedict;
- _Py_IDENTIFIER(_type_);
+ _Py_IDENTIFIER(_type_);
typedict = PyTuple_GetItem(args, 2);
if (!typedict)
@@ -1061,8 +1061,8 @@ PyCPointerType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
stgdict items size, align, length contain info about pointers itself,
stgdict->proto has info about the pointed to type!
*/
- stgdict = (StgDictObject *)_PyObject_CallNoArg(
- (PyObject *)&PyCStgDict_Type);
+ stgdict = (StgDictObject *)_PyObject_CallNoArg(
+ (PyObject *)&PyCStgDict_Type);
if (!stgdict)
return NULL;
stgdict->size = sizeof(void *);
@@ -1072,15 +1072,15 @@ PyCPointerType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
stgdict->paramfunc = PyCPointerType_paramfunc;
stgdict->flags |= TYPEFLAG_ISPOINTER;
- proto = _PyDict_GetItemIdWithError(typedict, &PyId__type_); /* Borrowed ref */
+ proto = _PyDict_GetItemIdWithError(typedict, &PyId__type_); /* Borrowed ref */
if (proto) {
- StgDictObject *itemdict;
+ StgDictObject *itemdict;
const char *current_format;
- if (-1 == PyCPointerType_SetProto(stgdict, proto)) {
- Py_DECREF((PyObject *)stgdict);
- return NULL;
- }
- itemdict = PyType_stgdict(proto);
+ if (-1 == PyCPointerType_SetProto(stgdict, proto)) {
+ Py_DECREF((PyObject *)stgdict);
+ return NULL;
+ }
+ itemdict = PyType_stgdict(proto);
/* PyCPointerType_SetProto has verified proto has a stgdict. */
assert(itemdict);
/* If itemdict->format is NULL, then this is a pointer to an
@@ -1101,10 +1101,10 @@ PyCPointerType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return NULL;
}
}
- else if (PyErr_Occurred()) {
- Py_DECREF((PyObject *)stgdict);
- return NULL;
- }
+ else if (PyErr_Occurred()) {
+ Py_DECREF((PyObject *)stgdict);
+ return NULL;
+ }
/* create the new instance (which is a class,
since we are a metatype!) */
@@ -1130,7 +1130,7 @@ static PyObject *
PyCPointerType_set_type(PyTypeObject *self, PyObject *type)
{
StgDictObject *dict;
- _Py_IDENTIFIER(_type_);
+ _Py_IDENTIFIER(_type_);
dict = PyType_stgdict((PyObject *)self);
if (!dict) {
@@ -1142,7 +1142,7 @@ PyCPointerType_set_type(PyTypeObject *self, PyObject *type)
if (-1 == PyCPointerType_SetProto(dict, type))
return NULL;
- if (-1 == _PyDict_SetItemId((PyObject *)dict, &PyId__type_, type))
+ if (-1 == _PyDict_SetItemId((PyObject *)dict, &PyId__type_, type))
return NULL;
Py_RETURN_NONE;
@@ -1187,11 +1187,11 @@ PyCPointerType_from_param(PyObject *type, PyObject *value)
*/
StgDictObject *v = PyObject_stgdict(value);
assert(v); /* Cannot be NULL for pointer or array objects */
- int ret = PyObject_IsSubclass(v->proto, typedict->proto);
- if (ret < 0) {
- return NULL;
- }
- if (ret) {
+ int ret = PyObject_IsSubclass(v->proto, typedict->proto);
+ if (ret < 0) {
+ return NULL;
+ }
+ if (ret) {
Py_INCREF(value);
return value;
}
@@ -1215,10 +1215,10 @@ PyTypeObject PyCPointerType_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
&CDataType_as_sequence, /* tp_as_sequence */
@@ -1311,7 +1311,7 @@ CharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))
static int
CharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
- const char *ptr;
+ const char *ptr;
Py_ssize_t size;
if (value == NULL) {
@@ -1382,14 +1382,14 @@ WCharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored
} else
Py_INCREF(value);
- Py_ssize_t len = PyUnicode_AsWideChar(value, NULL, 0);
- if (len < 0) {
+ Py_ssize_t len = PyUnicode_AsWideChar(value, NULL, 0);
+ if (len < 0) {
return -1;
- }
- // PyUnicode_AsWideChar() returns number of wchars including trailing null byte,
- // when it is called with NULL.
- if (((size_t)len-1) > self->b_size/sizeof(wchar_t)) {
- PyErr_SetString(PyExc_ValueError, "string too long");
+ }
+ // PyUnicode_AsWideChar() returns number of wchars including trailing null byte,
+ // when it is called with NULL.
+ if (((size_t)len-1) > self->b_size/sizeof(wchar_t)) {
+ PyErr_SetString(PyExc_ValueError, "string too long");
result = -1;
goto done;
}
@@ -1491,8 +1491,8 @@ PyCArrayType_paramfunc(CDataObject *self)
static PyObject *
PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
- _Py_IDENTIFIER(_length_);
- _Py_IDENTIFIER(_type_);
+ _Py_IDENTIFIER(_length_);
+ _Py_IDENTIFIER(_type_);
PyTypeObject *result;
StgDictObject *stgdict;
StgDictObject *itemdict;
@@ -1511,29 +1511,29 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
stgdict = NULL;
type_attr = NULL;
- if (_PyObject_LookupAttrId((PyObject *)result, &PyId__length_, &length_attr) < 0) {
- goto error;
- }
- if (!length_attr) {
+ if (_PyObject_LookupAttrId((PyObject *)result, &PyId__length_, &length_attr) < 0) {
+ goto error;
+ }
+ if (!length_attr) {
PyErr_SetString(PyExc_AttributeError,
- "class must define a '_length_' attribute");
+ "class must define a '_length_' attribute");
+ goto error;
+ }
+
+ if (!PyLong_Check(length_attr)) {
+ Py_DECREF(length_attr);
+ PyErr_SetString(PyExc_TypeError,
+ "The '_length_' attribute must be an integer");
+ goto error;
+ }
+
+ if (_PyLong_Sign(length_attr) == -1) {
+ Py_DECREF(length_attr);
+ PyErr_SetString(PyExc_ValueError,
+ "The '_length_' attribute must not be negative");
goto error;
}
-
- if (!PyLong_Check(length_attr)) {
- Py_DECREF(length_attr);
- PyErr_SetString(PyExc_TypeError,
- "The '_length_' attribute must be an integer");
- goto error;
- }
-
- if (_PyLong_Sign(length_attr) == -1) {
- Py_DECREF(length_attr);
- PyErr_SetString(PyExc_ValueError,
- "The '_length_' attribute must not be negative");
- goto error;
- }
-
+
length = PyLong_AsSsize_t(length_attr);
Py_DECREF(length_attr);
if (length == -1 && PyErr_Occurred()) {
@@ -1544,17 +1544,17 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
goto error;
}
- if (_PyObject_LookupAttrId((PyObject *)result, &PyId__type_, &type_attr) < 0) {
- goto error;
- }
+ if (_PyObject_LookupAttrId((PyObject *)result, &PyId__type_, &type_attr) < 0) {
+ goto error;
+ }
if (!type_attr) {
PyErr_SetString(PyExc_AttributeError,
"class must define a '_type_' attribute");
goto error;
}
- stgdict = (StgDictObject *)_PyObject_CallNoArg(
- (PyObject *)&PyCStgDict_Type);
+ stgdict = (StgDictObject *)_PyObject_CallNoArg(
+ (PyObject *)&PyCStgDict_Type);
if (!stgdict)
goto error;
@@ -1582,7 +1582,7 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
}
itemsize = itemdict->size;
- if (itemsize != 0 && length > PY_SSIZE_T_MAX / itemsize) {
+ if (itemsize != 0 && length > PY_SSIZE_T_MAX / itemsize) {
PyErr_SetString(PyExc_OverflowError,
"array too large");
goto error;
@@ -1597,7 +1597,7 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
stgdict->align = itemalign;
stgdict->length = length;
stgdict->proto = type_attr;
- type_attr = NULL;
+ type_attr = NULL;
stgdict->paramfunc = &PyCArrayType_paramfunc;
@@ -1637,10 +1637,10 @@ PyTypeObject PyCArrayType_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
&CDataType_as_sequence, /* tp_as_sequence */
@@ -1690,7 +1690,7 @@ static const char SIMPLE_TYPE_CHARS[] = "cbBhHiIlLdfuzZqQPXOv?g";
static PyObject *
c_wchar_p_from_param(PyObject *type, PyObject *value)
{
- _Py_IDENTIFIER(_as_parameter_);
+ _Py_IDENTIFIER(_as_parameter_);
PyObject *as_parameter;
int res;
if (value == Py_None) {
@@ -1740,9 +1740,9 @@ c_wchar_p_from_param(PyObject *type, PyObject *value)
}
}
- if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
+ return NULL;
+ }
if (as_parameter) {
value = c_wchar_p_from_param(type, as_parameter);
Py_DECREF(as_parameter);
@@ -1757,7 +1757,7 @@ c_wchar_p_from_param(PyObject *type, PyObject *value)
static PyObject *
c_char_p_from_param(PyObject *type, PyObject *value)
{
- _Py_IDENTIFIER(_as_parameter_);
+ _Py_IDENTIFIER(_as_parameter_);
PyObject *as_parameter;
int res;
if (value == Py_None) {
@@ -1807,9 +1807,9 @@ c_char_p_from_param(PyObject *type, PyObject *value)
}
}
- if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
+ return NULL;
+ }
if (as_parameter) {
value = c_char_p_from_param(type, as_parameter);
Py_DECREF(as_parameter);
@@ -1824,7 +1824,7 @@ c_char_p_from_param(PyObject *type, PyObject *value)
static PyObject *
c_void_p_from_param(PyObject *type, PyObject *value)
{
- _Py_IDENTIFIER(_as_parameter_);
+ _Py_IDENTIFIER(_as_parameter_);
StgDictObject *stgd;
PyObject *as_parameter;
int res;
@@ -1946,9 +1946,9 @@ c_void_p_from_param(PyObject *type, PyObject *value)
}
}
- if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
+ return NULL;
+ }
if (as_parameter) {
value = c_void_p_from_param(type, as_parameter);
Py_DECREF(as_parameter);
@@ -2010,8 +2010,8 @@ static PyObject *CreateSwappedType(PyTypeObject *type, PyObject *args, PyObject
if (result == NULL)
return NULL;
- stgdict = (StgDictObject *)_PyObject_CallNoArg(
- (PyObject *)&PyCStgDict_Type);
+ stgdict = (StgDictObject *)_PyObject_CallNoArg(
+ (PyObject *)&PyCStgDict_Type);
if (!stgdict) {
Py_DECREF(result);
return NULL;
@@ -2069,7 +2069,7 @@ PyCSimpleType_paramfunc(CDataObject *self)
static PyObject *
PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
- _Py_IDENTIFIER(_type_);
+ _Py_IDENTIFIER(_type_);
PyTypeObject *result;
StgDictObject *stgdict;
PyObject *proto;
@@ -2084,15 +2084,15 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (result == NULL)
return NULL;
- if (_PyObject_LookupAttrId((PyObject *)result, &PyId__type_, &proto) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId((PyObject *)result, &PyId__type_, &proto) < 0) {
+ return NULL;
+ }
if (!proto) {
PyErr_SetString(PyExc_AttributeError,
"class must define a '_type_' attribute");
error:
Py_XDECREF(proto);
- Py_DECREF(result);
+ Py_DECREF(result);
return NULL;
}
if (PyUnicode_Check(proto)) {
@@ -2124,8 +2124,8 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
goto error;
}
- stgdict = (StgDictObject *)_PyObject_CallNoArg(
- (PyObject *)&PyCStgDict_Type);
+ stgdict = (StgDictObject *)_PyObject_CallNoArg(
+ (PyObject *)&PyCStgDict_Type);
if (!stgdict)
goto error;
@@ -2254,7 +2254,7 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static PyObject *
PyCSimpleType_from_param(PyObject *type, PyObject *value)
{
- _Py_IDENTIFIER(_as_parameter_);
+ _Py_IDENTIFIER(_as_parameter_);
StgDictObject *dict;
const char *fmt;
PyCArgObject *parg;
@@ -2298,9 +2298,9 @@ PyCSimpleType_from_param(PyObject *type, PyObject *value)
PyErr_Clear();
Py_DECREF(parg);
- if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(value, &PyId__as_parameter_, &as_parameter) < 0) {
+ return NULL;
+ }
if (as_parameter) {
if (Py_EnterRecursiveCall("while processing _as_parameter_")) {
Py_DECREF(as_parameter);
@@ -2331,10 +2331,10 @@ PyTypeObject PyCSimpleType_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
&CDataType_as_sequence, /* tp_as_sequence */
@@ -2375,7 +2375,7 @@ PyTypeObject PyCSimpleType_Type = {
static PyObject *
converters_from_argtypes(PyObject *ob)
{
- _Py_IDENTIFIER(from_param);
+ _Py_IDENTIFIER(from_param);
PyObject *converters;
Py_ssize_t i;
Py_ssize_t nArgs;
@@ -2400,64 +2400,64 @@ converters_from_argtypes(PyObject *ob)
*/
for (i = 0; i < nArgs; ++i) {
- PyObject *cnv;
+ PyObject *cnv;
PyObject *tp = PyTuple_GET_ITEM(ob, i);
-/*
- * The following checks, relating to bpo-16575 and bpo-16576, have been
- * disabled. The reason is that, although there is a definite problem with
- * how libffi handles unions (https://github.com/libffi/libffi/issues/33),
- * there are numerous libraries which pass structures containing unions
- * by values - especially on Windows but examples also exist on Linux
- * (https://bugs.python.org/msg359834).
- *
- * It may not be possible to get proper support for unions and bitfields
- * until support is forthcoming in libffi, but for now, adding the checks
- * has caused problems in otherwise-working software, which suggests it
- * is better to disable the checks.
- *
- * Although specific examples reported relate specifically to unions and
- * not bitfields, the bitfields check is also being disabled as a
- * precaution.
-
- StgDictObject *stgdict = PyType_stgdict(tp);
-
- if (stgdict != NULL) {
- if (stgdict->flags & TYPEFLAG_HASUNION) {
- Py_DECREF(converters);
- Py_DECREF(ob);
- if (!PyErr_Occurred()) {
- PyErr_Format(PyExc_TypeError,
- "item %zd in _argtypes_ passes a union by "
- "value, which is unsupported.",
- i + 1);
- }
- return NULL;
- }
- if (stgdict->flags & TYPEFLAG_HASBITFIELD) {
- Py_DECREF(converters);
- Py_DECREF(ob);
- if (!PyErr_Occurred()) {
- PyErr_Format(PyExc_TypeError,
- "item %zd in _argtypes_ passes a struct/"
- "union with a bitfield by value, which is "
- "unsupported.",
- i + 1);
- }
- return NULL;
- }
- }
- */
-
- if (_PyObject_LookupAttrId(tp, &PyId_from_param, &cnv) <= 0) {
- Py_DECREF(converters);
- Py_DECREF(ob);
- if (!PyErr_Occurred()) {
- PyErr_Format(PyExc_TypeError,
- "item %zd in _argtypes_ has no from_param method",
- i+1);
- }
- return NULL;
- }
+/*
+ * The following checks, relating to bpo-16575 and bpo-16576, have been
+ * disabled. The reason is that, although there is a definite problem with
+ * how libffi handles unions (https://github.com/libffi/libffi/issues/33),
+ * there are numerous libraries which pass structures containing unions
+ * by values - especially on Windows but examples also exist on Linux
+ * (https://bugs.python.org/msg359834).
+ *
+ * It may not be possible to get proper support for unions and bitfields
+ * until support is forthcoming in libffi, but for now, adding the checks
+ * has caused problems in otherwise-working software, which suggests it
+ * is better to disable the checks.
+ *
+ * Although specific examples reported relate specifically to unions and
+ * not bitfields, the bitfields check is also being disabled as a
+ * precaution.
+
+ StgDictObject *stgdict = PyType_stgdict(tp);
+
+ if (stgdict != NULL) {
+ if (stgdict->flags & TYPEFLAG_HASUNION) {
+ Py_DECREF(converters);
+ Py_DECREF(ob);
+ if (!PyErr_Occurred()) {
+ PyErr_Format(PyExc_TypeError,
+ "item %zd in _argtypes_ passes a union by "
+ "value, which is unsupported.",
+ i + 1);
+ }
+ return NULL;
+ }
+ if (stgdict->flags & TYPEFLAG_HASBITFIELD) {
+ Py_DECREF(converters);
+ Py_DECREF(ob);
+ if (!PyErr_Occurred()) {
+ PyErr_Format(PyExc_TypeError,
+ "item %zd in _argtypes_ passes a struct/"
+ "union with a bitfield by value, which is "
+ "unsupported.",
+ i + 1);
+ }
+ return NULL;
+ }
+ }
+ */
+
+ if (_PyObject_LookupAttrId(tp, &PyId_from_param, &cnv) <= 0) {
+ Py_DECREF(converters);
+ Py_DECREF(ob);
+ if (!PyErr_Occurred()) {
+ PyErr_Format(PyExc_TypeError,
+ "item %zd in _argtypes_ has no from_param method",
+ i+1);
+ }
+ return NULL;
+ }
PyTuple_SET_ITEM(converters, i, cnv);
}
Py_DECREF(ob);
@@ -2469,10 +2469,10 @@ make_funcptrtype_dict(StgDictObject *stgdict)
{
PyObject *ob;
PyObject *converters = NULL;
- _Py_IDENTIFIER(_flags_);
- _Py_IDENTIFIER(_argtypes_);
- _Py_IDENTIFIER(_restype_);
- _Py_IDENTIFIER(_check_retval_);
+ _Py_IDENTIFIER(_flags_);
+ _Py_IDENTIFIER(_argtypes_);
+ _Py_IDENTIFIER(_restype_);
+ _Py_IDENTIFIER(_check_retval_);
stgdict->align = _ctypes_get_fielddesc("P")->pffi_type->alignment;
stgdict->length = 1;
@@ -2481,31 +2481,31 @@ make_funcptrtype_dict(StgDictObject *stgdict)
stgdict->getfunc = NULL;
stgdict->ffi_type_pointer = ffi_type_pointer;
- ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__flags_);
+ ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__flags_);
if (!ob || !PyLong_Check(ob)) {
- if (!PyErr_Occurred()) {
- PyErr_SetString(PyExc_TypeError,
- "class must define _flags_ which must be an integer");
- }
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(PyExc_TypeError,
+ "class must define _flags_ which must be an integer");
+ }
return -1;
}
- stgdict->flags = PyLong_AsUnsignedLongMask(ob) | TYPEFLAG_ISPOINTER;
+ stgdict->flags = PyLong_AsUnsignedLongMask(ob) | TYPEFLAG_ISPOINTER;
/* _argtypes_ is optional... */
- ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__argtypes_);
+ ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__argtypes_);
if (ob) {
converters = converters_from_argtypes(ob);
if (!converters)
- return -1;
+ return -1;
Py_INCREF(ob);
stgdict->argtypes = ob;
stgdict->converters = converters;
}
- else if (PyErr_Occurred()) {
- return -1;
- }
+ else if (PyErr_Occurred()) {
+ return -1;
+ }
- ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__restype_);
+ ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__restype_);
if (ob) {
if (ob != Py_None && !PyType_stgdict(ob) && !PyCallable_Check(ob)) {
PyErr_SetString(PyExc_TypeError,
@@ -2514,17 +2514,17 @@ make_funcptrtype_dict(StgDictObject *stgdict)
}
Py_INCREF(ob);
stgdict->restype = ob;
- if (_PyObject_LookupAttrId(ob, &PyId__check_retval_,
- &stgdict->checker) < 0)
- {
- return -1;
- }
- }
- else if (PyErr_Occurred()) {
- return -1;
- }
+ if (_PyObject_LookupAttrId(ob, &PyId__check_retval_,
+ &stgdict->checker) < 0)
+ {
+ return -1;
+ }
+ }
+ else if (PyErr_Occurred()) {
+ return -1;
+ }
/* XXX later, maybe.
- ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__errcheck_);
+ ob = _PyDict_GetItemIdWithError((PyObject *)stgdict, &PyId__errcheck_);
if (ob) {
if (!PyCallable_Check(ob)) {
PyErr_SetString(PyExc_TypeError,
@@ -2534,9 +2534,9 @@ make_funcptrtype_dict(StgDictObject *stgdict)
Py_INCREF(ob);
stgdict->errcheck = ob;
}
- else if (PyErr_Occurred()) {
- return -1;
- }
+ else if (PyErr_Occurred()) {
+ return -1;
+ }
*/
return 0;
}
@@ -2564,8 +2564,8 @@ PyCFuncPtrType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
PyTypeObject *result;
StgDictObject *stgdict;
- stgdict = (StgDictObject *)_PyObject_CallNoArg(
- (PyObject *)&PyCStgDict_Type);
+ stgdict = (StgDictObject *)_PyObject_CallNoArg(
+ (PyObject *)&PyCStgDict_Type);
if (!stgdict)
return NULL;
@@ -2613,10 +2613,10 @@ PyTypeObject PyCFuncPtrType_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
&CDataType_as_sequence, /* tp_as_sequence */
@@ -2853,11 +2853,11 @@ PyCData_reduce(PyObject *myself, PyObject *args)
"ctypes objects containing pointers cannot be pickled");
return NULL;
}
- PyObject *dict = PyObject_GetAttrString(myself, "__dict__");
- if (dict == NULL) {
- return NULL;
- }
- return Py_BuildValue("O(O(NN))", _unpickle, Py_TYPE(myself), dict,
+ PyObject *dict = PyObject_GetAttrString(myself, "__dict__");
+ if (dict == NULL) {
+ return NULL;
+ }
+ return Py_BuildValue("O(O(NN))", _unpickle, Py_TYPE(myself), dict,
PyBytes_FromStringAndSize(self->b_ptr, self->b_size));
}
@@ -2918,10 +2918,10 @@ PyTypeObject PyCData_Type = {
sizeof(CDataObject), /* tp_basicsize */
0, /* tp_itemsize */
PyCData_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3030,10 +3030,10 @@ PyCData_AtAddress(PyObject *type, void *buf)
CDataObject *pd;
StgDictObject *dict;
- if (PySys_Audit("ctypes.cdata", "n", (Py_ssize_t)buf) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("ctypes.cdata", "n", (Py_ssize_t)buf) < 0) {
+ return NULL;
+ }
+
assert(PyType_Check(type));
dict = PyType_stgdict(type);
if (!dict) {
@@ -3278,13 +3278,13 @@ PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
static int
PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(_check_retval_);
- PyObject *checker, *oldchecker;
+ _Py_IDENTIFIER(_check_retval_);
+ PyObject *checker, *oldchecker;
if (ob == NULL) {
- oldchecker = self->checker;
- self->checker = NULL;
+ oldchecker = self->checker;
+ self->checker = NULL;
Py_CLEAR(self->restype);
- Py_XDECREF(oldchecker);
+ Py_XDECREF(oldchecker);
return 0;
}
if (ob != Py_None && !PyType_stgdict(ob) && !PyCallable_Check(ob)) {
@@ -3292,14 +3292,14 @@ PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ign
"restype must be a type, a callable, or None");
return -1;
}
- if (_PyObject_LookupAttrId(ob, &PyId__check_retval_, &checker) < 0) {
- return -1;
- }
- oldchecker = self->checker;
- self->checker = checker;
+ if (_PyObject_LookupAttrId(ob, &PyId__check_retval_, &checker) < 0) {
+ return -1;
+ }
+ oldchecker = self->checker;
+ self->checker = checker;
Py_INCREF(ob);
Py_XSETREF(self->restype, ob);
- Py_XDECREF(oldchecker);
+ Py_XDECREF(oldchecker);
return 0;
}
@@ -3372,23 +3372,23 @@ static PyGetSetDef PyCFuncPtr_getsets[] = {
#ifdef MS_WIN32
static PPROC FindAddress(void *handle, const char *name, PyObject *type)
{
- PPROC address;
+ PPROC address;
#ifdef MS_WIN64
/* win64 has no stdcall calling conv, so it should
also not have the name mangling of it.
*/
- Py_BEGIN_ALLOW_THREADS
- address = (PPROC)GetProcAddress(handle, name);
- Py_END_ALLOW_THREADS
- return address;
+ Py_BEGIN_ALLOW_THREADS
+ address = (PPROC)GetProcAddress(handle, name);
+ Py_END_ALLOW_THREADS
+ return address;
#else
char *mangled_name;
int i;
StgDictObject *dict;
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
address = (PPROC)GetProcAddress(handle, name);
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (address)
return address;
if (((size_t)name & ~0xFFFF) == 0) {
@@ -3409,9 +3409,9 @@ static PPROC FindAddress(void *handle, const char *name, PyObject *type)
return NULL;
for (i = 0; i < 32; ++i) {
sprintf(mangled_name, "_%s@%d", name, i*4);
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
address = (PPROC)GetProcAddress(handle, mangled_name);
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (address)
return address;
}
@@ -3569,20 +3569,20 @@ PyCFuncPtr_FromDll(PyTypeObject *type, PyObject *args, PyObject *kwds)
return NULL;
}
-#ifdef MS_WIN32
- if (PySys_Audit("ctypes.dlsym",
- ((uintptr_t)name & ~0xFFFF) ? "Os" : "On",
- dll, name) < 0) {
- Py_DECREF(ftuple);
- return NULL;
- }
-#else
- if (PySys_Audit("ctypes.dlsym", "Os", dll, name) < 0) {
- Py_DECREF(ftuple);
- return NULL;
- }
-#endif
-
+#ifdef MS_WIN32
+ if (PySys_Audit("ctypes.dlsym",
+ ((uintptr_t)name & ~0xFFFF) ? "Os" : "On",
+ dll, name) < 0) {
+ Py_DECREF(ftuple);
+ return NULL;
+ }
+#else
+ if (PySys_Audit("ctypes.dlsym", "Os", dll, name) < 0) {
+ Py_DECREF(ftuple);
+ return NULL;
+ }
+#endif
+
obj = PyObject_GetAttrString(dll, "_handle");
if (!obj) {
Py_DECREF(ftuple);
@@ -3750,12 +3750,12 @@ PyCFuncPtr_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
like that.
*/
/*
- if (kwds && _PyDict_GetItemIdWithError(kwds, &PyId_options)) {
+ if (kwds && _PyDict_GetItemIdWithError(kwds, &PyId_options)) {
...
}
- else if (PyErr_Occurred()) {
- return NULL;
- }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
*/
dict = PyType_stgdict((PyObject *)type);
@@ -3832,16 +3832,16 @@ _get_arg(int *pindex, PyObject *name, PyObject *defval, PyObject *inargs, PyObje
Py_INCREF(v);
return v;
}
- if (kwds && name) {
- v = PyDict_GetItemWithError(kwds, name);
- if (v) {
- ++*pindex;
- Py_INCREF(v);
- return v;
- }
- else if (PyErr_Occurred()) {
- return NULL;
- }
+ if (kwds && name) {
+ v = PyDict_GetItemWithError(kwds, name);
+ if (v) {
+ ++*pindex;
+ Py_INCREF(v);
+ return v;
+ }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
}
if (defval) {
Py_INCREF(defval);
@@ -3918,7 +3918,7 @@ _build_callargs(PyCFuncPtrObject *self, PyObject *argtypes,
for (i = 0; i < len; ++i) {
PyObject *item = PyTuple_GET_ITEM(paramflags, i);
PyObject *ob;
- unsigned int flag;
+ unsigned int flag;
PyObject *name = NULL;
PyObject *defval = NULL;
@@ -3926,7 +3926,7 @@ _build_callargs(PyCFuncPtrObject *self, PyObject *argtypes,
calls below. */
/* We HAVE already checked that the tuple can be parsed with "i|ZO", so... */
Py_ssize_t tsize = PyTuple_GET_SIZE(item);
- flag = PyLong_AsUnsignedLongMask(PyTuple_GET_ITEM(item, 0));
+ flag = PyLong_AsUnsignedLongMask(PyTuple_GET_ITEM(item, 0));
name = tsize > 1 ? PyTuple_GET_ITEM(item, 1) : NULL;
defval = tsize > 2 ? PyTuple_GET_ITEM(item, 2) : NULL;
@@ -4006,7 +4006,7 @@ _build_callargs(PyCFuncPtrObject *self, PyObject *argtypes,
break;
default:
PyErr_Format(PyExc_ValueError,
- "paramflag %u not yet implemented", flag);
+ "paramflag %u not yet implemented", flag);
goto error;
break;
}
@@ -4086,7 +4086,7 @@ _build_result(PyObject *result, PyObject *callargs,
_Py_IDENTIFIER(__ctypes_from_outparam__);
v = PyTuple_GET_ITEM(callargs, i);
- v = _PyObject_CallMethodIdNoArgs(v, &PyId___ctypes_from_outparam__);
+ v = _PyObject_CallMethodIdNoArgs(v, &PyId___ctypes_from_outparam__);
if (v == NULL || numretvals == 1) {
Py_DECREF(callargs);
return v;
@@ -4313,10 +4313,10 @@ PyTypeObject PyCFuncPtr_Type = {
sizeof(PyCFuncPtrObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)PyCFuncPtr_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)PyCFuncPtr_repr, /* tp_repr */
&PyCFuncPtr_as_number, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4369,7 +4369,7 @@ _init_pos_args(PyObject *self, PyTypeObject *type,
StgDictObject *dict;
PyObject *fields;
Py_ssize_t i;
- _Py_IDENTIFIER(_fields_);
+ _Py_IDENTIFIER(_fields_);
if (PyType_stgdict((PyObject *)type->tp_base)) {
index = _init_pos_args(self, type->tp_base,
@@ -4380,13 +4380,13 @@ _init_pos_args(PyObject *self, PyTypeObject *type,
}
dict = PyType_stgdict((PyObject *)type);
- fields = _PyDict_GetItemIdWithError((PyObject *)dict, &PyId__fields_);
- if (fields == NULL) {
- if (PyErr_Occurred()) {
- return -1;
- }
+ fields = _PyDict_GetItemIdWithError((PyObject *)dict, &PyId__fields_);
+ if (fields == NULL) {
+ if (PyErr_Occurred()) {
+ return -1;
+ }
return index;
- }
+ }
for (i = 0;
i < dict->length && (i+index) < PyTuple_GET_SIZE(args);
@@ -4402,20 +4402,20 @@ _init_pos_args(PyObject *self, PyTypeObject *type,
return -1;
}
val = PyTuple_GET_ITEM(args, i + index);
- if (kwds) {
- if (PyDict_GetItemWithError(kwds, name)) {
- PyErr_Format(PyExc_TypeError,
- "duplicate values for field %R",
- name);
- Py_DECREF(pair);
- Py_DECREF(name);
- return -1;
- }
- else if (PyErr_Occurred()) {
- Py_DECREF(pair);
- Py_DECREF(name);
- return -1;
- }
+ if (kwds) {
+ if (PyDict_GetItemWithError(kwds, name)) {
+ PyErr_Format(PyExc_TypeError,
+ "duplicate values for field %R",
+ name);
+ Py_DECREF(pair);
+ Py_DECREF(name);
+ return -1;
+ }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(pair);
+ Py_DECREF(name);
+ return -1;
+ }
}
res = PyObject_SetAttr(self, name, val);
@@ -4467,10 +4467,10 @@ static PyTypeObject Struct_Type = {
sizeof(CDataObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4509,10 +4509,10 @@ static PyTypeObject Union_Type = {
sizeof(CDataObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4615,8 +4615,8 @@ Array_subscript(PyObject *myself, PyObject *item)
StgDictObject *stgdict, *itemdict;
PyObject *proto;
PyObject *np;
- Py_ssize_t start, stop, step, slicelen, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelen, i;
+ size_t cur;
if (PySlice_Unpack(item, &start, &stop, &step) < 0) {
return NULL;
@@ -4756,8 +4756,8 @@ Array_ass_subscript(PyObject *myself, PyObject *item, PyObject *value)
return Array_ass_item(myself, i, value);
}
else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelen, otherlen, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelen, otherlen, i;
+ size_t cur;
if (PySlice_Unpack(item, &start, &stop, &step) < 0) {
return -1;
@@ -4799,12 +4799,12 @@ Array_length(PyObject *myself)
return self->b_length;
}
-static PyMethodDef Array_methods[] = {
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
- { NULL, NULL }
-};
-
+static PyMethodDef Array_methods[] = {
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ { NULL, NULL }
+};
+
static PySequenceMethods Array_as_sequence = {
Array_length, /* sq_length; */
0, /* sq_concat; */
@@ -4831,10 +4831,10 @@ PyTypeObject PyCArray_Type = {
sizeof(CDataObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
&Array_as_sequence, /* tp_as_sequence */
@@ -4853,7 +4853,7 @@ PyTypeObject PyCArray_Type = {
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
- Array_methods, /* tp_methods */
+ Array_methods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
@@ -4894,10 +4894,10 @@ PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length)
Py_DECREF(key);
return result;
}
- else if (PyErr_Occurred()) {
- Py_DECREF(key);
- return NULL;
- }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(key);
+ return NULL;
+ }
if (!PyType_Check(itemtype)) {
PyErr_SetString(PyExc_TypeError,
@@ -5050,10 +5050,10 @@ static PyTypeObject Simple_Type = {
sizeof(CDataObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)&Simple_repr, /* tp_repr */
&Simple_as_number, /* tp_as_number */
0, /* tp_as_sequence */
@@ -5272,8 +5272,8 @@ Pointer_subscript(PyObject *myself, PyObject *item)
PyObject *np;
StgDictObject *stgdict, *itemdict;
PyObject *proto;
- Py_ssize_t i, len;
- size_t cur;
+ Py_ssize_t i, len;
+ size_t cur;
/* Since pointers have no length, and we want to apply
different semantics to negative indices than normal
@@ -5434,10 +5434,10 @@ PyTypeObject PyCPointer_Type = {
sizeof(CDataObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
&Pointer_as_number, /* tp_as_number */
&Pointer_as_sequence, /* tp_as_sequence */
@@ -5525,10 +5525,10 @@ static PyTypeObject PyComError_Type = {
sizeof(PyBaseExceptionObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -5577,9 +5577,9 @@ create_comerror(void)
static PyObject *
string_at(const char *ptr, int size)
{
- if (PySys_Audit("ctypes.string_at", "ni", (Py_ssize_t)ptr, size) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.string_at", "ni", (Py_ssize_t)ptr, size) < 0) {
+ return NULL;
+ }
if (size == -1)
return PyBytes_FromStringAndSize(ptr, strlen(ptr));
return PyBytes_FromStringAndSize(ptr, size);
@@ -5671,9 +5671,9 @@ static PyObject *
wstring_at(const wchar_t *ptr, int size)
{
Py_ssize_t ssize = size;
- if (PySys_Audit("ctypes.wstring_at", "nn", (Py_ssize_t)ptr, ssize) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.wstring_at", "nn", (Py_ssize_t)ptr, ssize) < 0) {
+ return NULL;
+ }
if (ssize == -1)
ssize = wcslen(ptr);
return PyUnicode_FromWideChar(ptr, ssize);
@@ -5764,42 +5764,42 @@ PyInit__ctypes(void)
if (PyType_Ready(&PyCData_Type) < 0)
return NULL;
- Py_SET_TYPE(&Struct_Type, &PyCStructType_Type);
+ Py_SET_TYPE(&Struct_Type, &PyCStructType_Type);
Struct_Type.tp_base = &PyCData_Type;
if (PyType_Ready(&Struct_Type) < 0)
return NULL;
Py_INCREF(&Struct_Type);
PyModule_AddObject(m, "Structure", (PyObject *)&Struct_Type);
- Py_SET_TYPE(&Union_Type, &UnionType_Type);
+ Py_SET_TYPE(&Union_Type, &UnionType_Type);
Union_Type.tp_base = &PyCData_Type;
if (PyType_Ready(&Union_Type) < 0)
return NULL;
Py_INCREF(&Union_Type);
PyModule_AddObject(m, "Union", (PyObject *)&Union_Type);
- Py_SET_TYPE(&PyCPointer_Type, &PyCPointerType_Type);
+ Py_SET_TYPE(&PyCPointer_Type, &PyCPointerType_Type);
PyCPointer_Type.tp_base = &PyCData_Type;
if (PyType_Ready(&PyCPointer_Type) < 0)
return NULL;
Py_INCREF(&PyCPointer_Type);
PyModule_AddObject(m, "_Pointer", (PyObject *)&PyCPointer_Type);
- Py_SET_TYPE(&PyCArray_Type, &PyCArrayType_Type);
+ Py_SET_TYPE(&PyCArray_Type, &PyCArrayType_Type);
PyCArray_Type.tp_base = &PyCData_Type;
if (PyType_Ready(&PyCArray_Type) < 0)
return NULL;
Py_INCREF(&PyCArray_Type);
PyModule_AddObject(m, "Array", (PyObject *)&PyCArray_Type);
- Py_SET_TYPE(&Simple_Type, &PyCSimpleType_Type);
+ Py_SET_TYPE(&Simple_Type, &PyCSimpleType_Type);
Simple_Type.tp_base = &PyCData_Type;
if (PyType_Ready(&Simple_Type) < 0)
return NULL;
Py_INCREF(&Simple_Type);
PyModule_AddObject(m, "_SimpleCData", (PyObject *)&Simple_Type);
- Py_SET_TYPE(&PyCFuncPtr_Type, &PyCFuncPtrType_Type);
+ Py_SET_TYPE(&PyCFuncPtr_Type, &PyCFuncPtrType_Type);
PyCFuncPtr_Type.tp_base = &PyCData_Type;
if (PyType_Ready(&PyCFuncPtr_Type) < 0)
return NULL;
@@ -5824,10 +5824,10 @@ PyInit__ctypes(void)
if (PyType_Ready(&DictRemover_Type) < 0)
return NULL;
- if (PyType_Ready(&StructParam_Type) < 0) {
- return NULL;
- }
-
+ if (PyType_Ready(&StructParam_Type) < 0) {
+ return NULL;
+ }
+
#ifdef MS_WIN32
if (create_comerror() < 0)
return NULL;
diff --git a/contrib/tools/python3/src/Modules/_ctypes/callbacks.c b/contrib/tools/python3/src/Modules/_ctypes/callbacks.c
index c9a1f939d5..0dc8242817 100644
--- a/contrib/tools/python3/src/Modules/_ctypes/callbacks.c
+++ b/contrib/tools/python3/src/Modules/_ctypes/callbacks.c
@@ -1,8 +1,8 @@
#include "Python.h"
#include "frameobject.h"
-#include <stdbool.h>
-
+#include <stdbool.h>
+
#include <ffi.h>
#ifdef MS_WIN32
#include <windows.h>
@@ -21,7 +21,7 @@ CThunkObject_dealloc(PyObject *myself)
Py_XDECREF(self->callable);
Py_XDECREF(self->restype);
if (self->pcl_write)
- Py_ffi_closure_free(self->pcl_write);
+ Py_ffi_closure_free(self->pcl_write);
PyObject_GC_Del(self);
}
@@ -51,10 +51,10 @@ PyTypeObject PyCThunk_Type = {
sizeof(CThunkObject), /* tp_basicsize */
sizeof(ffi_type), /* tp_itemsize */
CThunkObject_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -87,7 +87,7 @@ PrintError(const char *msg, ...)
va_list marker;
va_start(marker, msg);
- PyOS_vsnprintf(buf, sizeof(buf), msg, marker);
+ PyOS_vsnprintf(buf, sizeof(buf), msg, marker);
va_end(marker);
if (f != NULL && f != Py_None)
PyFile_WriteString(buf, f);
@@ -110,14 +110,14 @@ static void
TryAddRef(StgDictObject *dict, CDataObject *obj)
{
IUnknown *punk;
- _Py_IDENTIFIER(_needs_com_addref_);
+ _Py_IDENTIFIER(_needs_com_addref_);
- if (!_PyDict_GetItemIdWithError((PyObject *)dict, &PyId__needs_com_addref_)) {
- if (PyErr_Occurred()) {
- PrintError("getting _needs_com_addref_");
- }
+ if (!_PyDict_GetItemIdWithError((PyObject *)dict, &PyId__needs_com_addref_)) {
+ if (PyErr_Occurred()) {
+ PrintError("getting _needs_com_addref_");
+ }
return;
- }
+ }
punk = *(IUnknown **)obj->b_ptr;
if (punk)
@@ -168,14 +168,14 @@ static void _CallPythonObject(void *mem,
if (cnv)
dict = PyType_stgdict(cnv);
else {
- PrintError("Getting argument converter %zd\n", i);
+ PrintError("Getting argument converter %zd\n", i);
goto Done;
}
if (dict && dict->getfunc && !_ctypes_simple_instance(cnv)) {
PyObject *v = dict->getfunc(*pArgs, dict->size);
if (!v) {
- PrintError("create argument %zd:\n", i);
+ PrintError("create argument %zd:\n", i);
Py_DECREF(cnv);
goto Done;
}
@@ -189,14 +189,14 @@ static void _CallPythonObject(void *mem,
/* Hm, shouldn't we use PyCData_AtAddress() or something like that instead? */
CDataObject *obj = (CDataObject *)_PyObject_CallNoArg(cnv);
if (!obj) {
- PrintError("create argument %zd:\n", i);
+ PrintError("create argument %zd:\n", i);
Py_DECREF(cnv);
goto Done;
}
if (!CDataObject_Check(obj)) {
Py_DECREF(obj);
Py_DECREF(cnv);
- PrintError("unexpected result of create argument %zd:\n", i);
+ PrintError("unexpected result of create argument %zd:\n", i);
goto Done;
}
memcpy(obj->b_ptr, *pArgs, dict->size);
@@ -207,7 +207,7 @@ static void _CallPythonObject(void *mem,
} else {
PyErr_SetString(PyExc_TypeError,
"cannot build parameter");
- PrintError("Parsing argument %zd\n", i);
+ PrintError("Parsing argument %zd\n", i);
Py_DECREF(cnv);
goto Done;
}
@@ -235,10 +235,10 @@ static void _CallPythonObject(void *mem,
}
result = PyObject_CallObject(callable, arglist);
- if (result == NULL) {
- _PyErr_WriteUnraisableMsg("on calling ctypes callback function",
- callable);
- }
+ if (result == NULL) {
+ _PyErr_WriteUnraisableMsg("on calling ctypes callback function",
+ callable);
+ }
#ifdef MS_WIN32
if (flags & FUNCFLAG_USE_LASTERROR) {
@@ -254,17 +254,17 @@ static void _CallPythonObject(void *mem,
}
Py_XDECREF(error_object);
- if (restype != &ffi_type_void && result) {
+ if (restype != &ffi_type_void && result) {
assert(setfunc);
-
+
#ifdef WORDS_BIGENDIAN
- /* See the corresponding code in _ctypes_callproc():
- in callproc.c, around line 1219. */
- if (restype->type != FFI_TYPE_FLOAT && restype->size < sizeof(ffi_arg)) {
+ /* See the corresponding code in _ctypes_callproc():
+ in callproc.c, around line 1219. */
+ if (restype->type != FFI_TYPE_FLOAT && restype->size < sizeof(ffi_arg)) {
mem = (char *)mem + sizeof(ffi_arg) - restype->size;
- }
+ }
#endif
-
+
/* keep is an object we have to keep alive so that the result
stays valid. If there is no such object, the setfunc will
have returned Py_None.
@@ -274,32 +274,32 @@ static void _CallPythonObject(void *mem,
be the result. EXCEPT when restype is py_object - Python
itself knows how to manage the refcount of these objects.
*/
- PyObject *keep = setfunc(mem, result, 0);
-
- if (keep == NULL) {
- /* Could not convert callback result. */
- _PyErr_WriteUnraisableMsg("on converting result "
- "of ctypes callback function",
- callable);
- }
- else if (keep == Py_None) {
- /* Nothing to keep */
+ PyObject *keep = setfunc(mem, result, 0);
+
+ if (keep == NULL) {
+ /* Could not convert callback result. */
+ _PyErr_WriteUnraisableMsg("on converting result "
+ "of ctypes callback function",
+ callable);
+ }
+ else if (keep == Py_None) {
+ /* Nothing to keep */
Py_DECREF(keep);
- }
+ }
else if (setfunc != _ctypes_get_fielddesc("O")->setfunc) {
if (-1 == PyErr_WarnEx(PyExc_RuntimeWarning,
"memory leak in callback function.",
1))
- {
- _PyErr_WriteUnraisableMsg("on converting result "
- "of ctypes callback function",
- callable);
- }
+ {
+ _PyErr_WriteUnraisableMsg("on converting result "
+ "of ctypes callback function",
+ callable);
+ }
}
}
-
+
Py_XDECREF(result);
-
+
Done:
Py_XDECREF(arglist);
PyGILState_Release(state);
@@ -364,7 +364,7 @@ CThunkObject *_ctypes_alloc_callback(PyObject *callable,
assert(CThunk_CheckExact((PyObject *)p));
- p->pcl_write = Py_ffi_closure_alloc(sizeof(ffi_closure), &p->pcl_exec);
+ p->pcl_write = Py_ffi_closure_alloc(sizeof(ffi_closure), &p->pcl_exec);
if (p->pcl_write == NULL) {
PyErr_NoMemory();
goto error;
@@ -397,7 +397,7 @@ CThunkObject *_ctypes_alloc_callback(PyObject *callable,
}
cc = FFI_DEFAULT_ABI;
-#if defined(MS_WIN32) && !defined(_WIN32_WCE) && !defined(MS_WIN64) && !defined(_M_ARM)
+#if defined(MS_WIN32) && !defined(_WIN32_WCE) && !defined(MS_WIN64) && !defined(_M_ARM)
if ((flags & FUNCFLAG_CDECL) == 0)
cc = FFI_STDCALL;
#endif
@@ -410,42 +410,42 @@ CThunkObject *_ctypes_alloc_callback(PyObject *callable,
"ffi_prep_cif failed with %d", result);
goto error;
}
-#if HAVE_FFI_PREP_CLOSURE_LOC
-# if USING_APPLE_OS_LIBFFI
-# define HAVE_FFI_PREP_CLOSURE_LOC_RUNTIME __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
-# else
-# define HAVE_FFI_PREP_CLOSURE_LOC_RUNTIME 1
-# endif
- if (HAVE_FFI_PREP_CLOSURE_LOC_RUNTIME) {
- result = ffi_prep_closure_loc(p->pcl_write, &p->cif, closure_fcn,
- p,
- p->pcl_exec);
- } else
-#endif
- {
-#if USING_APPLE_OS_LIBFFI && defined(__arm64__)
- PyErr_Format(PyExc_NotImplementedError, "ffi_prep_closure_loc() is missing");
- goto error;
+#if HAVE_FFI_PREP_CLOSURE_LOC
+# if USING_APPLE_OS_LIBFFI
+# define HAVE_FFI_PREP_CLOSURE_LOC_RUNTIME __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
+# else
+# define HAVE_FFI_PREP_CLOSURE_LOC_RUNTIME 1
+# endif
+ if (HAVE_FFI_PREP_CLOSURE_LOC_RUNTIME) {
+ result = ffi_prep_closure_loc(p->pcl_write, &p->cif, closure_fcn,
+ p,
+ p->pcl_exec);
+ } else
+#endif
+ {
+#if USING_APPLE_OS_LIBFFI && defined(__arm64__)
+ PyErr_Format(PyExc_NotImplementedError, "ffi_prep_closure_loc() is missing");
+ goto error;
#else
-#if defined(__clang__) || defined(MACOSX)
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#if defined(__clang__) || defined(MACOSX)
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
-#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
- result = ffi_prep_closure(p->pcl_write, &p->cif, closure_fcn, p);
-
-#if defined(__clang__) || defined(MACOSX)
- #pragma clang diagnostic pop
-#endif
-#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
- #pragma GCC diagnostic pop
-#endif
-
-#endif
- }
+ result = ffi_prep_closure(p->pcl_write, &p->cif, closure_fcn, p);
+
+#if defined(__clang__) || defined(MACOSX)
+ #pragma clang diagnostic pop
+#endif
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))
+ #pragma GCC diagnostic pop
+#endif
+
+#endif
+ }
if (result != FFI_OK) {
PyErr_Format(PyExc_RuntimeError,
"ffi_prep_closure failed with %d", result);
@@ -468,7 +468,7 @@ CThunkObject *_ctypes_alloc_callback(PyObject *callable,
static void LoadPython(void)
{
if (!Py_IsInitialized()) {
- Py_Initialize();
+ Py_Initialize();
}
}
diff --git a/contrib/tools/python3/src/Modules/_ctypes/callproc.c b/contrib/tools/python3/src/Modules/_ctypes/callproc.c
index efad2e30d5..287bec47aa 100644
--- a/contrib/tools/python3/src/Modules/_ctypes/callproc.c
+++ b/contrib/tools/python3/src/Modules/_ctypes/callproc.c
@@ -55,10 +55,10 @@
*/
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
+
+#include <stdbool.h>
-#include <stdbool.h>
-
#ifdef MS_WIN32
#include <windows.h>
#include <Unknwn.h>
@@ -67,10 +67,10 @@
#include "ctypes_dlfcn.h"
#endif
-#ifdef __APPLE__
-#include <mach-o/dyld.h>
-#endif
-
+#ifdef __APPLE__
+#include <mach-o/dyld.h>
+#endif
+
#ifdef MS_WIN32
#include <malloc.h>
#endif
@@ -117,7 +117,7 @@ static void pymem_destructor(PyObject *ptr)
WinDLL(..., use_last_error=True) swap the system LastError value with the
ctypes private copy.
- The values are also swapped immediately before and after ctypes callback
+ The values are also swapped immediately before and after ctypes callback
functions are called, if the callbacks are constructed using the new
optional use_errno parameter set to True: CFUNCTYPE(..., use_errno=TRUE) or
WINFUNCTYPE(..., use_errno=True).
@@ -153,7 +153,7 @@ _ctypes_get_errobj(int **pspace)
if (error_object_name == NULL)
return NULL;
}
- errobj = PyDict_GetItemWithError(dict, error_object_name);
+ errobj = PyDict_GetItemWithError(dict, error_object_name);
if (errobj) {
if (!PyCapsule_IsValid(errobj, CTYPES_CAPSULE_NAME_PYMEM)) {
PyErr_SetString(PyExc_RuntimeError,
@@ -162,8 +162,8 @@ _ctypes_get_errobj(int **pspace)
}
Py_INCREF(errobj);
}
- else if (!PyErr_Occurred()) {
- void *space = PyMem_Calloc(2, sizeof(int));
+ else if (!PyErr_Occurred()) {
+ void *space = PyMem_Calloc(2, sizeof(int));
if (space == NULL)
return NULL;
errobj = PyCapsule_New(space, CTYPES_CAPSULE_NAME_PYMEM, pymem_destructor);
@@ -177,9 +177,9 @@ _ctypes_get_errobj(int **pspace)
return NULL;
}
}
- else {
- return NULL;
- }
+ else {
+ return NULL;
+ }
*pspace = (int *)PyCapsule_GetPointer(errobj, CTYPES_CAPSULE_NAME_PYMEM);
return errobj;
}
@@ -205,9 +205,9 @@ set_error_internal(PyObject *self, PyObject *args, int index)
PyObject *errobj;
int *space;
- if (!PyArg_ParseTuple(args, "i", &new_errno)) {
+ if (!PyArg_ParseTuple(args, "i", &new_errno)) {
return NULL;
- }
+ }
errobj = _ctypes_get_errobj(&space);
if (errobj == NULL)
return NULL;
@@ -220,18 +220,18 @@ set_error_internal(PyObject *self, PyObject *args, int index)
static PyObject *
get_errno(PyObject *self, PyObject *args)
{
- if (PySys_Audit("ctypes.get_errno", NULL) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.get_errno", NULL) < 0) {
+ return NULL;
+ }
return get_error_internal(self, args, 0);
}
static PyObject *
set_errno(PyObject *self, PyObject *args)
{
- if (PySys_Audit("ctypes.set_errno", "O", args) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.set_errno", "O", args) < 0) {
+ return NULL;
+ }
return set_error_internal(self, args, 0);
}
@@ -240,18 +240,18 @@ set_errno(PyObject *self, PyObject *args)
static PyObject *
get_last_error(PyObject *self, PyObject *args)
{
- if (PySys_Audit("ctypes.get_last_error", NULL) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.get_last_error", NULL) < 0) {
+ return NULL;
+ }
return get_error_internal(self, args, 1);
}
static PyObject *
set_last_error(PyObject *self, PyObject *args)
{
- if (PySys_Audit("ctypes.set_last_error", "O", args) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.set_last_error", "O", args) < 0) {
+ return NULL;
+ }
return set_error_internal(self, args, 1);
}
@@ -261,9 +261,9 @@ static WCHAR *FormatError(DWORD code)
{
WCHAR *lpMsgBuf;
DWORD n;
- n = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
+ n = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
code,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
@@ -281,11 +281,11 @@ static WCHAR *FormatError(DWORD code)
#ifndef DONT_USE_SEH
static void SetException(DWORD code, EXCEPTION_RECORD *pr)
{
- if (PySys_Audit("ctypes.seh_exception", "I", code) < 0) {
- /* An exception was set by the audit hook */
- return;
- }
-
+ if (PySys_Audit("ctypes.seh_exception", "I", code) < 0) {
+ /* An exception was set by the audit hook */
+ return;
+ }
+
/* The 'code' is a normal win32 error code so it could be handled by
PyErr_SetFromWindowsErr(). However, for some errors, we have additional
information not included in the error code. We handle those here and
@@ -493,42 +493,42 @@ PyCArg_repr(PyCArgObject *self)
switch(self->tag) {
case 'b':
case 'B':
- return PyUnicode_FromFormat("<cparam '%c' (%d)>",
+ return PyUnicode_FromFormat("<cparam '%c' (%d)>",
self->tag, self->value.b);
case 'h':
case 'H':
- return PyUnicode_FromFormat("<cparam '%c' (%d)>",
+ return PyUnicode_FromFormat("<cparam '%c' (%d)>",
self->tag, self->value.h);
case 'i':
case 'I':
- return PyUnicode_FromFormat("<cparam '%c' (%d)>",
+ return PyUnicode_FromFormat("<cparam '%c' (%d)>",
self->tag, self->value.i);
case 'l':
case 'L':
- return PyUnicode_FromFormat("<cparam '%c' (%ld)>",
+ return PyUnicode_FromFormat("<cparam '%c' (%ld)>",
self->tag, self->value.l);
case 'q':
case 'Q':
- return PyUnicode_FromFormat("<cparam '%c' (%lld)>",
+ return PyUnicode_FromFormat("<cparam '%c' (%lld)>",
self->tag, self->value.q);
case 'd':
- case 'f': {
- PyObject *f = PyFloat_FromDouble((self->tag == 'f') ? self->value.f : self->value.d);
- if (f == NULL) {
- return NULL;
- }
- PyObject *result = PyUnicode_FromFormat("<cparam '%c' (%R)>", self->tag, f);
- Py_DECREF(f);
- return result;
- }
+ case 'f': {
+ PyObject *f = PyFloat_FromDouble((self->tag == 'f') ? self->value.f : self->value.d);
+ if (f == NULL) {
+ return NULL;
+ }
+ PyObject *result = PyUnicode_FromFormat("<cparam '%c' (%R)>", self->tag, f);
+ Py_DECREF(f);
+ return result;
+ }
case 'c':
if (is_literal_char((unsigned char)self->value.c)) {
- return PyUnicode_FromFormat("<cparam '%c' ('%c')>",
+ return PyUnicode_FromFormat("<cparam '%c' ('%c')>",
self->tag, self->value.c);
}
else {
- return PyUnicode_FromFormat("<cparam '%c' ('\\x%02x')>",
+ return PyUnicode_FromFormat("<cparam '%c' ('\\x%02x')>",
self->tag, (unsigned char)self->value.c);
}
@@ -539,18 +539,18 @@ PyCArg_repr(PyCArgObject *self)
case 'z':
case 'Z':
case 'P':
- return PyUnicode_FromFormat("<cparam '%c' (%p)>",
+ return PyUnicode_FromFormat("<cparam '%c' (%p)>",
self->tag, self->value.p);
break;
default:
if (is_literal_char((unsigned char)self->tag)) {
- return PyUnicode_FromFormat("<cparam '%c' at %p>",
- (unsigned char)self->tag, (void *)self);
+ return PyUnicode_FromFormat("<cparam '%c' at %p>",
+ (unsigned char)self->tag, (void *)self);
}
else {
- return PyUnicode_FromFormat("<cparam 0x%02x at %p>",
- (unsigned char)self->tag, (void *)self);
+ return PyUnicode_FromFormat("<cparam 0x%02x at %p>",
+ (unsigned char)self->tag, (void *)self);
}
}
}
@@ -568,10 +568,10 @@ PyTypeObject PyCArg_Type = {
sizeof(PyCArgObject),
0,
(destructor)PyCArg_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)PyCArg_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -719,11 +719,11 @@ static int ConvParam(PyObject *obj, Py_ssize_t index, struct argument *pa)
#endif
{
- _Py_IDENTIFIER(_as_parameter_);
+ _Py_IDENTIFIER(_as_parameter_);
PyObject *arg;
- if (_PyObject_LookupAttrId(obj, &PyId__as_parameter_, &arg) < 0) {
- return -1;
- }
+ if (_PyObject_LookupAttrId(obj, &PyId__as_parameter_, &arg) < 0) {
+ return -1;
+ }
/* Which types should we exactly allow here?
integers are required for using Python classes
as parameters (they have to expose the '_as_parameter_'
@@ -742,29 +742,29 @@ static int ConvParam(PyObject *obj, Py_ssize_t index, struct argument *pa)
}
}
-#if defined(MS_WIN32) && !defined(_WIN32_WCE)
+#if defined(MS_WIN32) && !defined(_WIN32_WCE)
/*
Per: https://msdn.microsoft.com/en-us/library/7572ztz4.aspx
-To be returned by value in RAX, user-defined types must have a length
+To be returned by value in RAX, user-defined types must have a length
of 1, 2, 4, 8, 16, 32, or 64 bits
*/
-int can_return_struct_as_int(size_t s)
+int can_return_struct_as_int(size_t s)
{
return s == 1 || s == 2 || s == 4;
}
-int can_return_struct_as_sint64(size_t s)
+int can_return_struct_as_sint64(size_t s)
{
-#ifdef _M_ARM
- // 8 byte structs cannot be returned in a register on ARM32
- return 0;
-#else
+#ifdef _M_ARM
+ // 8 byte structs cannot be returned in a register on ARM32
+ return 0;
+#else
return s == 8;
-#endif
+#endif
}
-#endif
+#endif
+
-
ffi_type *_ctypes_get_ffi_type(PyObject *obj)
{
StgDictObject *dict;
@@ -806,15 +806,15 @@ static int _call_function_pointer(int flags,
ffi_type **atypes,
ffi_type *restype,
void *resmem,
- int argcount,
- int argtypecount)
+ int argcount,
+ int argtypecount)
{
PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */
PyObject *error_object = NULL;
int *space;
ffi_cif cif;
int cc;
-#if defined(MS_WIN32) && !defined(DONT_USE_SEH)
+#if defined(MS_WIN32) && !defined(DONT_USE_SEH)
DWORD dwExceptionCode = 0;
EXCEPTION_RECORD record;
#endif
@@ -826,76 +826,76 @@ static int _call_function_pointer(int flags,
}
cc = FFI_DEFAULT_ABI;
-#if defined(MS_WIN32) && !defined(MS_WIN64) && !defined(_WIN32_WCE) && !defined(_M_ARM)
+#if defined(MS_WIN32) && !defined(MS_WIN64) && !defined(_WIN32_WCE) && !defined(_M_ARM)
if ((flags & FUNCFLAG_CDECL) == 0)
cc = FFI_STDCALL;
#endif
-
-# if USING_APPLE_OS_LIBFFI
-# define HAVE_FFI_PREP_CIF_VAR_RUNTIME __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
-# elif HAVE_FFI_PREP_CIF_VAR
-# define HAVE_FFI_PREP_CIF_VAR_RUNTIME true
-# else
-# define HAVE_FFI_PREP_CIF_VAR_RUNTIME false
-# endif
-
- /* Even on Apple-arm64 the calling convention for variadic functions coincides
- * with the standard calling convention in the case that the function called
- * only with its fixed arguments. Thus, we do not need a special flag to be
- * set on variadic functions. We treat a function as variadic if it is called
- * with a nonzero number of variadic arguments */
- bool is_variadic = (argtypecount != 0 && argcount > argtypecount);
- (void) is_variadic;
-
-#if defined(__APPLE__) && defined(__arm64__)
- if (is_variadic) {
- if (HAVE_FFI_PREP_CIF_VAR_RUNTIME) {
- } else {
- PyErr_SetString(PyExc_NotImplementedError, "ffi_prep_cif_var() is missing");
- return -1;
- }
- }
-#endif
-
-#if HAVE_FFI_PREP_CIF_VAR
- if (is_variadic) {
- if (HAVE_FFI_PREP_CIF_VAR_RUNTIME) {
- if (FFI_OK != ffi_prep_cif_var(&cif,
- cc,
- argtypecount,
- argcount,
- restype,
- atypes)) {
- PyErr_SetString(PyExc_RuntimeError,
- "ffi_prep_cif_var failed");
- return -1;
- }
- } else {
- if (FFI_OK != ffi_prep_cif(&cif,
- cc,
- argcount,
- restype,
- atypes)) {
- PyErr_SetString(PyExc_RuntimeError,
- "ffi_prep_cif failed");
- return -1;
- }
- }
- } else
-#endif
-
- {
- if (FFI_OK != ffi_prep_cif(&cif,
- cc,
- argcount,
- restype,
- atypes)) {
- PyErr_SetString(PyExc_RuntimeError,
- "ffi_prep_cif failed");
- return -1;
- }
- }
-
+
+# if USING_APPLE_OS_LIBFFI
+# define HAVE_FFI_PREP_CIF_VAR_RUNTIME __builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)
+# elif HAVE_FFI_PREP_CIF_VAR
+# define HAVE_FFI_PREP_CIF_VAR_RUNTIME true
+# else
+# define HAVE_FFI_PREP_CIF_VAR_RUNTIME false
+# endif
+
+ /* Even on Apple-arm64 the calling convention for variadic functions coincides
+ * with the standard calling convention in the case that the function called
+ * only with its fixed arguments. Thus, we do not need a special flag to be
+ * set on variadic functions. We treat a function as variadic if it is called
+ * with a nonzero number of variadic arguments */
+ bool is_variadic = (argtypecount != 0 && argcount > argtypecount);
+ (void) is_variadic;
+
+#if defined(__APPLE__) && defined(__arm64__)
+ if (is_variadic) {
+ if (HAVE_FFI_PREP_CIF_VAR_RUNTIME) {
+ } else {
+ PyErr_SetString(PyExc_NotImplementedError, "ffi_prep_cif_var() is missing");
+ return -1;
+ }
+ }
+#endif
+
+#if HAVE_FFI_PREP_CIF_VAR
+ if (is_variadic) {
+ if (HAVE_FFI_PREP_CIF_VAR_RUNTIME) {
+ if (FFI_OK != ffi_prep_cif_var(&cif,
+ cc,
+ argtypecount,
+ argcount,
+ restype,
+ atypes)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "ffi_prep_cif_var failed");
+ return -1;
+ }
+ } else {
+ if (FFI_OK != ffi_prep_cif(&cif,
+ cc,
+ argcount,
+ restype,
+ atypes)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "ffi_prep_cif failed");
+ return -1;
+ }
+ }
+ } else
+#endif
+
+ {
+ if (FFI_OK != ffi_prep_cif(&cif,
+ cc,
+ argcount,
+ restype,
+ atypes)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "ffi_prep_cif failed");
+ return -1;
+ }
+ }
+
if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) {
error_object = _ctypes_get_errobj(&space);
if (error_object == NULL)
@@ -995,7 +995,7 @@ static PyObject *GetResult(PyObject *restype, void *result, PyObject *checker)
if (!checker || !retval)
return retval;
- v = PyObject_CallOneArg(checker, retval);
+ v = PyObject_CallOneArg(checker, retval);
if (v == NULL)
_PyTraceback_Add("GetResult", "_ctypes/callproc.c", __LINE__-2);
Py_DECREF(retval);
@@ -1124,14 +1124,14 @@ GetComError(HRESULT errcode, GUID *riid, IUnknown *pIunk)
#endif
/*
- * bpo-13097: Max number of arguments _ctypes_callproc will accept.
- *
- * This limit is enforced for the `alloca()` call in `_ctypes_callproc`,
- * to avoid allocating a massive buffer on the stack.
- */
-#define CTYPES_MAX_ARGCOUNT 1024
-
-/*
+ * bpo-13097: Max number of arguments _ctypes_callproc will accept.
+ *
+ * This limit is enforced for the `alloca()` call in `_ctypes_callproc`,
+ * to avoid allocating a massive buffer on the stack.
+ */
+#define CTYPES_MAX_ARGCOUNT 1024
+
+/*
* Requirements, must be ensured by the caller:
* - argtuple is tuple of arguments
* - argtypes is either NULL, or a tuple of the same size as argtuple
@@ -1166,13 +1166,13 @@ PyObject *_ctypes_callproc(PPROC pProc,
++argcount;
#endif
- if (argcount > CTYPES_MAX_ARGCOUNT)
- {
- PyErr_Format(PyExc_ArgError, "too many arguments (%zi), maximum is %i",
- argcount, CTYPES_MAX_ARGCOUNT);
- return NULL;
- }
-
+ if (argcount > CTYPES_MAX_ARGCOUNT)
+ {
+ PyErr_Format(PyExc_ArgError, "too many arguments (%zi), maximum is %i",
+ argcount, CTYPES_MAX_ARGCOUNT);
+ return NULL;
+ }
+
args = (struct argument *)alloca(sizeof(struct argument) * argcount);
if (!args) {
PyErr_NoMemory();
@@ -1203,22 +1203,22 @@ PyObject *_ctypes_callproc(PPROC pProc,
if (argtypes && argtype_count > i) {
PyObject *v;
converter = PyTuple_GET_ITEM(argtypes, i);
- v = PyObject_CallOneArg(converter, arg);
+ v = PyObject_CallOneArg(converter, arg);
if (v == NULL) {
- _ctypes_extend_error(PyExc_ArgError, "argument %zd: ", i+1);
+ _ctypes_extend_error(PyExc_ArgError, "argument %zd: ", i+1);
goto cleanup;
}
err = ConvParam(v, i+1, pa);
Py_DECREF(v);
if (-1 == err) {
- _ctypes_extend_error(PyExc_ArgError, "argument %zd: ", i+1);
+ _ctypes_extend_error(PyExc_ArgError, "argument %zd: ", i+1);
goto cleanup;
}
} else {
err = ConvParam(arg, i+1, pa);
if (-1 == err) {
- _ctypes_extend_error(PyExc_ArgError, "argument %zd: ", i+1);
+ _ctypes_extend_error(PyExc_ArgError, "argument %zd: ", i+1);
goto cleanup; /* leaking ? */
}
}
@@ -1263,8 +1263,8 @@ PyObject *_ctypes_callproc(PPROC pProc,
if (-1 == _call_function_pointer(flags, pProc, avalues, atypes,
rtype, resbuf,
- Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int),
- Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int)))
+ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int),
+ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int)))
goto cleanup;
#ifdef WORDS_BIGENDIAN
@@ -1281,9 +1281,9 @@ PyObject *_ctypes_callproc(PPROC pProc,
if (rtype->type != FFI_TYPE_FLOAT
&& rtype->type != FFI_TYPE_STRUCT
&& rtype->size < sizeof(ffi_arg))
- {
+ {
resbuf = (char *)resbuf + sizeof(ffi_arg) - rtype->size;
- }
+ }
#endif
#ifdef MS_WIN32
@@ -1342,52 +1342,52 @@ static PyObject *format_error(PyObject *self, PyObject *args)
}
static const char load_library_doc[] =
-"LoadLibrary(name, load_flags) -> handle\n\
+"LoadLibrary(name, load_flags) -> handle\n\
\n\
Load an executable (usually a DLL), and return a handle to it.\n\
The handle may be used to locate exported functions in this\n\
-module. load_flags are as defined for LoadLibraryEx in the\n\
-Windows API.\n";
+module. load_flags are as defined for LoadLibraryEx in the\n\
+Windows API.\n";
static PyObject *load_library(PyObject *self, PyObject *args)
{
const WCHAR *name;
PyObject *nameobj;
- int load_flags = 0;
+ int load_flags = 0;
HMODULE hMod;
- DWORD err;
+ DWORD err;
- if (!PyArg_ParseTuple(args, "U|i:LoadLibrary", &nameobj, &load_flags))
+ if (!PyArg_ParseTuple(args, "U|i:LoadLibrary", &nameobj, &load_flags))
return NULL;
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
name = _PyUnicode_AsUnicode(nameobj);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (!name)
return NULL;
- if (PySys_Audit("ctypes.dlopen", "O", nameobj) < 0) {
- return NULL;
- }
-
- Py_BEGIN_ALLOW_THREADS
- /* bpo-36085: Limit DLL search directories to avoid pre-loading
- * attacks and enable use of the AddDllDirectory function.
- */
- hMod = LoadLibraryExW(name, NULL, (DWORD)load_flags);
- err = hMod ? 0 : GetLastError();
- Py_END_ALLOW_THREADS
-
- if (err == ERROR_MOD_NOT_FOUND) {
- PyErr_Format(PyExc_FileNotFoundError,
- ("Could not find module '%.500S' (or one of its "
- "dependencies). Try using the full path with "
- "constructor syntax."),
- nameobj);
- return NULL;
- } else if (err) {
- return PyErr_SetFromWindowsErr(err);
- }
+ if (PySys_Audit("ctypes.dlopen", "O", nameobj) < 0) {
+ return NULL;
+ }
+
+ Py_BEGIN_ALLOW_THREADS
+ /* bpo-36085: Limit DLL search directories to avoid pre-loading
+ * attacks and enable use of the AddDllDirectory function.
+ */
+ hMod = LoadLibraryExW(name, NULL, (DWORD)load_flags);
+ err = hMod ? 0 : GetLastError();
+ Py_END_ALLOW_THREADS
+
+ if (err == ERROR_MOD_NOT_FOUND) {
+ PyErr_Format(PyExc_FileNotFoundError,
+ ("Could not find module '%.500S' (or one of its "
+ "dependencies). Try using the full path with "
+ "constructor syntax."),
+ nameobj);
+ return NULL;
+ } else if (err) {
+ return PyErr_SetFromWindowsErr(err);
+ }
#ifdef _WIN64
return PyLong_FromVoidPtr(hMod);
#else
@@ -1402,19 +1402,19 @@ Free the handle of an executable previously loaded by LoadLibrary.\n";
static PyObject *free_library(PyObject *self, PyObject *args)
{
void *hMod;
- BOOL result;
- DWORD err;
+ BOOL result;
+ DWORD err;
if (!PyArg_ParseTuple(args, "O&:FreeLibrary", &_parse_voidp, &hMod))
return NULL;
-
- Py_BEGIN_ALLOW_THREADS
- result = FreeLibrary((HMODULE)hMod);
- err = result ? 0 : GetLastError();
- Py_END_ALLOW_THREADS
-
- if (!result) {
- return PyErr_SetFromWindowsErr(err);
- }
+
+ Py_BEGIN_ALLOW_THREADS
+ result = FreeLibrary((HMODULE)hMod);
+ err = result ? 0 : GetLastError();
+ Py_END_ALLOW_THREADS
+
+ if (!result) {
+ return PyErr_SetFromWindowsErr(err);
+ }
Py_RETURN_NONE;
}
@@ -1450,70 +1450,70 @@ copy_com_pointer(PyObject *self, PyObject *args)
return r;
}
#else
-#ifdef __APPLE__
-#ifdef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH
-#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \
- __builtin_available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
-#else
-// Support the deprecated case of compiling on an older macOS version
-static void *libsystem_b_handle;
-static bool (*_dyld_shared_cache_contains_path)(const char *path);
-
-__attribute__((constructor)) void load_dyld_shared_cache_contains_path(void) {
- libsystem_b_handle = dlopen("/usr/lib/libSystem.B.dylib", RTLD_LAZY);
- if (libsystem_b_handle != NULL) {
- _dyld_shared_cache_contains_path = dlsym(libsystem_b_handle, "_dyld_shared_cache_contains_path");
- }
-}
-
-__attribute__((destructor)) void unload_dyld_shared_cache_contains_path(void) {
- if (libsystem_b_handle != NULL) {
- dlclose(libsystem_b_handle);
- }
-}
-#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \
- _dyld_shared_cache_contains_path != NULL
-#endif
-
-static PyObject *py_dyld_shared_cache_contains_path(PyObject *self, PyObject *args)
-{
- PyObject *name, *name2;
- char *name_str;
-
- if (HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME) {
- int r;
-
- if (!PyArg_ParseTuple(args, "O", &name))
- return NULL;
-
- if (name == Py_None)
- Py_RETURN_FALSE;
-
- if (PyUnicode_FSConverter(name, &name2) == 0)
- return NULL;
- name_str = PyBytes_AS_STRING(name2);
-
- r = _dyld_shared_cache_contains_path(name_str);
- Py_DECREF(name2);
-
- if (r) {
- Py_RETURN_TRUE;
- } else {
- Py_RETURN_FALSE;
- }
-
- } else {
- PyErr_SetString(PyExc_NotImplementedError, "_dyld_shared_cache_contains_path symbol is missing");
- return NULL;
- }
-
- }
-#endif
-
+#ifdef __APPLE__
+#ifdef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH
+#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \
+ __builtin_available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
+#else
+// Support the deprecated case of compiling on an older macOS version
+static void *libsystem_b_handle;
+static bool (*_dyld_shared_cache_contains_path)(const char *path);
+
+__attribute__((constructor)) void load_dyld_shared_cache_contains_path(void) {
+ libsystem_b_handle = dlopen("/usr/lib/libSystem.B.dylib", RTLD_LAZY);
+ if (libsystem_b_handle != NULL) {
+ _dyld_shared_cache_contains_path = dlsym(libsystem_b_handle, "_dyld_shared_cache_contains_path");
+ }
+}
+
+__attribute__((destructor)) void unload_dyld_shared_cache_contains_path(void) {
+ if (libsystem_b_handle != NULL) {
+ dlclose(libsystem_b_handle);
+ }
+}
+#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \
+ _dyld_shared_cache_contains_path != NULL
+#endif
+
+static PyObject *py_dyld_shared_cache_contains_path(PyObject *self, PyObject *args)
+{
+ PyObject *name, *name2;
+ char *name_str;
+
+ if (HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME) {
+ int r;
+
+ if (!PyArg_ParseTuple(args, "O", &name))
+ return NULL;
+
+ if (name == Py_None)
+ Py_RETURN_FALSE;
+
+ if (PyUnicode_FSConverter(name, &name2) == 0)
+ return NULL;
+ name_str = PyBytes_AS_STRING(name2);
+
+ r = _dyld_shared_cache_contains_path(name_str);
+ Py_DECREF(name2);
+
+ if (r) {
+ Py_RETURN_TRUE;
+ } else {
+ Py_RETURN_FALSE;
+ }
+
+ } else {
+ PyErr_SetString(PyExc_NotImplementedError, "_dyld_shared_cache_contains_path symbol is missing");
+ return NULL;
+ }
+
+ }
+#endif
+
static PyObject *py_dl_open(PyObject *self, PyObject *args)
{
PyObject *name, *name2;
- const char *name_str;
+ const char *name_str;
void * handle;
#if HAVE_DECL_RTLD_LOCAL
int mode = RTLD_NOW | RTLD_LOCAL;
@@ -1527,14 +1527,14 @@ static PyObject *py_dl_open(PyObject *self, PyObject *args)
if (name != Py_None) {
if (PyUnicode_FSConverter(name, &name2) == 0)
return NULL;
- name_str = PyBytes_AS_STRING(name2);
+ name_str = PyBytes_AS_STRING(name2);
} else {
name_str = NULL;
name2 = NULL;
}
- if (PySys_Audit("ctypes.dlopen", "O", name) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.dlopen", "O", name) < 0) {
+ return NULL;
+ }
handle = ctypes_dlopen(name_str, mode);
Py_XDECREF(name2);
if (!handle) {
@@ -1571,9 +1571,9 @@ static PyObject *py_dl_sym(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "O&s:dlsym",
&_parse_voidp, &handle, &name))
return NULL;
- if (PySys_Audit("ctypes.dlsym/handle", "O", args) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.dlsym/handle", "O", args) < 0) {
+ return NULL;
+ }
ptr = ctypes_dlsym((void*)handle, name);
if (!ptr) {
PyErr_SetString(PyExc_OSError,
@@ -1601,10 +1601,10 @@ call_function(PyObject *self, PyObject *args)
&_parse_voidp, &func,
&PyTuple_Type, &arguments))
return NULL;
- if (PySys_Audit("ctypes.call_function", "nO",
- (Py_ssize_t)func, arguments) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.call_function", "nO",
+ (Py_ssize_t)func, arguments) < 0) {
+ return NULL;
+ }
result = _ctypes_callproc((PPROC)func,
arguments,
@@ -1636,10 +1636,10 @@ call_cdeclfunction(PyObject *self, PyObject *args)
&_parse_voidp, &func,
&PyTuple_Type, &arguments))
return NULL;
- if (PySys_Audit("ctypes.call_function", "nO",
- (Py_ssize_t)func, arguments) < 0) {
- return NULL;
- }
+ if (PySys_Audit("ctypes.call_function", "nO",
+ (Py_ssize_t)func, arguments) < 0) {
+ return NULL;
+ }
result = _ctypes_callproc((PPROC)func,
arguments,
@@ -1752,15 +1752,15 @@ static const char addressof_doc[] =
static PyObject *
addressof(PyObject *self, PyObject *obj)
{
- if (!CDataObject_Check(obj)) {
- PyErr_SetString(PyExc_TypeError,
- "invalid type");
- return NULL;
- }
- if (PySys_Audit("ctypes.addressof", "(O)", obj) < 0) {
- return NULL;
- }
- return PyLong_FromVoidPtr(((CDataObject *)obj)->b_ptr);
+ if (!CDataObject_Check(obj)) {
+ PyErr_SetString(PyExc_TypeError,
+ "invalid type");
+ return NULL;
+ }
+ if (PySys_Audit("ctypes.addressof", "(O)", obj) < 0) {
+ return NULL;
+ }
+ return PyLong_FromVoidPtr(((CDataObject *)obj)->b_ptr);
}
static int
@@ -1774,12 +1774,12 @@ static PyObject *
My_PyObj_FromPtr(PyObject *self, PyObject *args)
{
PyObject *ob;
- if (!PyArg_ParseTuple(args, "O&:PyObj_FromPtr", converter, &ob)) {
+ if (!PyArg_ParseTuple(args, "O&:PyObj_FromPtr", converter, &ob)) {
+ return NULL;
+ }
+ if (PySys_Audit("ctypes.PyObj_FromPtr", "(O)", ob) < 0) {
return NULL;
- }
- if (PySys_Audit("ctypes.PyObj_FromPtr", "(O)", ob) < 0) {
- return NULL;
- }
+ }
Py_INCREF(ob);
return ob;
}
@@ -1837,7 +1837,7 @@ resize(PyObject *self, PyObject *args)
if (!_CDataObject_HasExternalBuffer(obj)) {
/* We are currently using the objects default buffer, but it
isn't large enough any more. */
- void *ptr = PyMem_Calloc(1, size);
+ void *ptr = PyMem_Calloc(1, size);
if (ptr == NULL)
return PyErr_NoMemory();
memmove(ptr, obj->b_ptr, obj->b_size);
@@ -1863,7 +1863,7 @@ unpickle(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OO!", &typ, &PyTuple_Type, &state))
return NULL;
- obj = _PyObject_CallMethodIdOneArg(typ, &PyId___new__, typ);
+ obj = _PyObject_CallMethodIdOneArg(typ, &PyId___new__, typ);
if (obj == NULL)
return NULL;
@@ -1894,14 +1894,14 @@ POINTER(PyObject *self, PyObject *cls)
PyObject *key;
char *buf;
- result = PyDict_GetItemWithError(_ctypes_ptrtype_cache, cls);
+ result = PyDict_GetItemWithError(_ctypes_ptrtype_cache, cls);
if (result) {
Py_INCREF(result);
return result;
}
- else if (PyErr_Occurred()) {
- return NULL;
- }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
if (PyUnicode_CheckExact(cls)) {
const char *name = PyUnicode_AsUTF8(cls);
if (name == NULL)
@@ -1957,17 +1957,17 @@ pointer(PyObject *self, PyObject *arg)
PyObject *result;
PyObject *typ;
- typ = PyDict_GetItemWithError(_ctypes_ptrtype_cache, (PyObject *)Py_TYPE(arg));
- if (typ) {
- return PyObject_CallOneArg(typ, arg);
- }
- else if (PyErr_Occurred()) {
- return NULL;
- }
+ typ = PyDict_GetItemWithError(_ctypes_ptrtype_cache, (PyObject *)Py_TYPE(arg));
+ if (typ) {
+ return PyObject_CallOneArg(typ, arg);
+ }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
typ = POINTER(NULL, (PyObject *)Py_TYPE(arg));
if (typ == NULL)
- return NULL;
- result = PyObject_CallOneArg(typ, arg);
+ return NULL;
+ result = PyObject_CallOneArg(typ, arg);
Py_DECREF(typ);
return result;
}
@@ -1999,8 +1999,8 @@ buffer_info(PyObject *self, PyObject *arg)
return Py_BuildValue("siN", dict->format, dict->ndim, shape);
}
-
-
+
+
PyMethodDef _ctypes_module_methods[] = {
{"get_errno", get_errno, METH_NOARGS},
{"set_errno", set_errno, METH_VARARGS},
@@ -2023,9 +2023,9 @@ PyMethodDef _ctypes_module_methods[] = {
{"dlclose", py_dl_close, METH_VARARGS, "dlclose a library"},
{"dlsym", py_dl_sym, METH_VARARGS, "find symbol in shared library"},
#endif
-#ifdef __APPLE__
- {"_dyld_shared_cache_contains_path", py_dyld_shared_cache_contains_path, METH_VARARGS, "check if path is in the shared cache"},
-#endif
+#ifdef __APPLE__
+ {"_dyld_shared_cache_contains_path", py_dyld_shared_cache_contains_path, METH_VARARGS, "check if path is in the shared cache"},
+#endif
{"alignment", align_func, METH_O, alignment_doc},
{"sizeof", sizeof_func, METH_O, sizeof_doc},
{"byref", byref, METH_VARARGS, byref_doc},
diff --git a/contrib/tools/python3/src/Modules/_ctypes/cfield.c b/contrib/tools/python3/src/Modules/_ctypes/cfield.c
index 4691f1e12f..2647777666 100644
--- a/contrib/tools/python3/src/Modules/_ctypes/cfield.c
+++ b/contrib/tools/python3/src/Modules/_ctypes/cfield.c
@@ -1,5 +1,5 @@
#include "Python.h"
-#include "pycore_byteswap.h" // _Py_bswap32()
+#include "pycore_byteswap.h" // _Py_bswap32()
#include <ffi.h>
#ifdef MS_WIN32
@@ -36,7 +36,7 @@ PyCField_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
* Expects the size, index and offset for the current field in *psize and
* *poffset, stores the total size so far in *psize, the offset for the next
* field in *poffset, the alignment requirements for the current field in
- * *palign, and returns a field descriptor for this field.
+ * *palign, and returns a field descriptor for this field.
*/
/*
* bitfields extension:
@@ -62,7 +62,7 @@ PyCField_FromDesc(PyObject *desc, Py_ssize_t index,
#define CONT_BITFIELD 2
#define EXPAND_BITFIELD 3
- self = (CFieldObject *)_PyObject_CallNoArg((PyObject *)&PyCField_Type);
+ self = (CFieldObject *)_PyObject_CallNoArg((PyObject *)&PyCField_Type);
if (self == NULL)
return NULL;
dict = PyType_stgdict(desc);
@@ -276,7 +276,7 @@ static void
PyCField_dealloc(PyObject *self)
{
PyCField_clear((CFieldObject *)self);
- Py_TYPE(self)->tp_free((PyObject *)self);
+ Py_TYPE(self)->tp_free((PyObject *)self);
}
static PyObject *
@@ -306,10 +306,10 @@ PyTypeObject PyCField_Type = {
sizeof(CFieldObject), /* tp_basicsize */
0, /* tp_itemsize */
PyCField_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)PyCField_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -450,32 +450,32 @@ get_ulonglong(PyObject *v, unsigned long long *p)
( ( (type)x & ~(BIT_MASK(type, size) << LOW_BIT(size)) ) | ( ((type)v & BIT_MASK(type, size)) << LOW_BIT(size) ) ) \
: (type)v)
-#if SIZEOF_SHORT == 2
-# define SWAP_SHORT _Py_bswap16
-#else
-# error "unsupported short size"
-#endif
+#if SIZEOF_SHORT == 2
+# define SWAP_SHORT _Py_bswap16
+#else
+# error "unsupported short size"
+#endif
-#if SIZEOF_INT == 4
-# define SWAP_INT _Py_bswap32
+#if SIZEOF_INT == 4
+# define SWAP_INT _Py_bswap32
#else
-# error "unsupported int size"
+# error "unsupported int size"
#endif
#if SIZEOF_LONG == 4
-# define SWAP_LONG _Py_bswap32
+# define SWAP_LONG _Py_bswap32
#elif SIZEOF_LONG == 8
-# define SWAP_LONG _Py_bswap64
-#else
-# error "unsupported long size"
+# define SWAP_LONG _Py_bswap64
+#else
+# error "unsupported long size"
#endif
-
-#if SIZEOF_LONG_LONG == 8
-# define SWAP_LONG_LONG _Py_bswap64
-#else
-# error "unsupported long long size"
-#endif
-
+
+#if SIZEOF_LONG_LONG == 8
+# define SWAP_LONG_LONG _Py_bswap64
+#else
+# error "unsupported long long size"
+#endif
+
/*****************************************************************
* The setter methods return an object which must be kept alive, to keep the
* data valid which has been stored in the memory block. The ctypes object
@@ -557,13 +557,13 @@ h_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
long val;
short field;
- if (get_long(value, &val) < 0) {
+ if (get_long(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
- field = SWAP_SHORT(field);
+ field = SWAP_SHORT(field);
field = SET(short, field, val, size);
- field = SWAP_SHORT(field);
+ field = SWAP_SHORT(field);
memcpy(ptr, &field, sizeof(field));
_RET(value);
}
@@ -582,7 +582,7 @@ h_get_sw(void *ptr, Py_ssize_t size)
{
short val;
memcpy(&val, ptr, sizeof(val));
- val = SWAP_SHORT(val);
+ val = SWAP_SHORT(val);
GET_BITFIELD(val, size);
return PyLong_FromLong(val);
}
@@ -605,13 +605,13 @@ H_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
unsigned long val;
unsigned short field;
- if (get_ulong(value, &val) < 0) {
+ if (get_ulong(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
- field = SWAP_SHORT(field);
+ field = SWAP_SHORT(field);
field = SET(unsigned short, field, val, size);
- field = SWAP_SHORT(field);
+ field = SWAP_SHORT(field);
memcpy(ptr, &field, sizeof(field));
_RET(value);
}
@@ -631,7 +631,7 @@ H_get_sw(void *ptr, Py_ssize_t size)
{
unsigned short val;
memcpy(&val, ptr, sizeof(val));
- val = SWAP_SHORT(val);
+ val = SWAP_SHORT(val);
GET_BITFIELD(val, size);
return PyLong_FromLong(val);
}
@@ -654,9 +654,9 @@ i_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
long val;
int field;
- if (get_long(value, &val) < 0) {
+ if (get_long(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
field = SWAP_INT(field);
field = SET(int, field, val, size);
@@ -685,11 +685,11 @@ i_get_sw(void *ptr, Py_ssize_t size)
return PyLong_FromLong(val);
}
-#ifndef MS_WIN32
-/* http://msdn.microsoft.com/en-us/library/cc237864.aspx */
-#define VARIANT_FALSE 0x0000
-#define VARIANT_TRUE 0xFFFF
-#endif
+#ifndef MS_WIN32
+/* http://msdn.microsoft.com/en-us/library/cc237864.aspx */
+#define VARIANT_FALSE 0x0000
+#define VARIANT_TRUE 0xFFFF
+#endif
/* short BOOL - VARIANT_BOOL */
static PyObject *
vBOOL_set(void *ptr, PyObject *value, Py_ssize_t size)
@@ -751,9 +751,9 @@ I_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
unsigned long val;
unsigned int field;
- if (get_ulong(value, &val) < 0) {
+ if (get_ulong(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
field = SWAP_INT(field);
field = SET(unsigned int, field, (unsigned int)val, size);
@@ -800,9 +800,9 @@ l_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
long val;
long field;
- if (get_long(value, &val) < 0) {
+ if (get_long(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
field = SWAP_LONG(field);
field = SET(long, field, val, size);
@@ -849,9 +849,9 @@ L_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
unsigned long val;
unsigned long field;
- if (get_ulong(value, &val) < 0) {
+ if (get_ulong(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
field = SWAP_LONG(field);
field = SET(unsigned long, field, val, size);
@@ -898,13 +898,13 @@ q_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
long long val;
long long field;
- if (get_longlong(value, &val) < 0) {
+ if (get_longlong(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
- field = SWAP_LONG_LONG(field);
+ field = SWAP_LONG_LONG(field);
field = SET(long long, field, val, size);
- field = SWAP_LONG_LONG(field);
+ field = SWAP_LONG_LONG(field);
memcpy(ptr, &field, sizeof(field));
_RET(value);
}
@@ -923,7 +923,7 @@ q_get_sw(void *ptr, Py_ssize_t size)
{
long long val;
memcpy(&val, ptr, sizeof(val));
- val = SWAP_LONG_LONG(val);
+ val = SWAP_LONG_LONG(val);
GET_BITFIELD(val, size);
return PyLong_FromLongLong(val);
}
@@ -946,13 +946,13 @@ Q_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
{
unsigned long long val;
unsigned long long field;
- if (get_ulonglong(value, &val) < 0) {
+ if (get_ulonglong(value, &val) < 0) {
return NULL;
- }
+ }
memcpy(&field, ptr, sizeof(field));
- field = SWAP_LONG_LONG(field);
+ field = SWAP_LONG_LONG(field);
field = SET(unsigned long long, field, val, size);
- field = SWAP_LONG_LONG(field);
+ field = SWAP_LONG_LONG(field);
memcpy(ptr, &field, sizeof(field));
_RET(value);
}
@@ -971,7 +971,7 @@ Q_get_sw(void *ptr, Py_ssize_t size)
{
unsigned long long val;
memcpy(&val, ptr, sizeof(val));
- val = SWAP_LONG_LONG(val);
+ val = SWAP_LONG_LONG(val);
GET_BITFIELD(val, size);
return PyLong_FromUnsignedLongLong(val);
}
@@ -1145,7 +1145,7 @@ c_set(void *ptr, PyObject *value, Py_ssize_t size)
}
if (PyLong_Check(value))
{
- long longval = PyLong_AsLong(value);
+ long longval = PyLong_AsLong(value);
if (longval < 0 || longval >= 256)
goto error;
*(char *)ptr = (char)longval;
@@ -1174,7 +1174,7 @@ u_set(void *ptr, PyObject *value, Py_ssize_t size)
if (!PyUnicode_Check(value)) {
PyErr_Format(PyExc_TypeError,
"unicode string expected instead of %s instance",
- Py_TYPE(value)->tp_name);
+ Py_TYPE(value)->tp_name);
return NULL;
} else
Py_INCREF(value);
@@ -1233,18 +1233,18 @@ U_set(void *ptr, PyObject *value, Py_ssize_t length)
if (!PyUnicode_Check(value)) {
PyErr_Format(PyExc_TypeError,
"unicode string expected instead of %s instance",
- Py_TYPE(value)->tp_name);
+ Py_TYPE(value)->tp_name);
return NULL;
}
- Py_ssize_t size = PyUnicode_AsWideChar(value, NULL, 0);
- if (size < 0) {
+ Py_ssize_t size = PyUnicode_AsWideChar(value, NULL, 0);
+ if (size < 0) {
return NULL;
- }
- // PyUnicode_AsWideChar() returns number of wchars including trailing null byte,
- // when it is called with NULL.
- size--;
- assert(size >= 0);
+ }
+ // PyUnicode_AsWideChar() returns number of wchars including trailing null byte,
+ // when it is called with NULL.
+ size--;
+ assert(size >= 0);
if (size > length) {
PyErr_Format(PyExc_ValueError,
"string too long (%zd, maximum length %zd)",
@@ -1282,13 +1282,13 @@ s_get(void *ptr, Py_ssize_t size)
static PyObject *
s_set(void *ptr, PyObject *value, Py_ssize_t length)
{
- const char *data;
+ const char *data;
Py_ssize_t size;
if(!PyBytes_Check(value)) {
PyErr_Format(PyExc_TypeError,
"expected bytes, %s found",
- Py_TYPE(value)->tp_name);
+ Py_TYPE(value)->tp_name);
return NULL;
}
@@ -1320,7 +1320,7 @@ z_set(void *ptr, PyObject *value, Py_ssize_t size)
return value;
}
if (PyBytes_Check(value)) {
- *(const char **)ptr = PyBytes_AsString(value);
+ *(const char **)ptr = PyBytes_AsString(value);
Py_INCREF(value);
return value;
} else if (PyLong_Check(value)) {
@@ -1333,7 +1333,7 @@ z_set(void *ptr, PyObject *value, Py_ssize_t size)
}
PyErr_Format(PyExc_TypeError,
"bytes or integer address expected instead of %s instance",
- Py_TYPE(value)->tp_name);
+ Py_TYPE(value)->tp_name);
return NULL;
}
@@ -1355,7 +1355,7 @@ Z_set(void *ptr, PyObject *value, Py_ssize_t size)
{
PyObject *keep;
wchar_t *buffer;
- Py_ssize_t bsize;
+ Py_ssize_t bsize;
if (value == Py_None) {
*(wchar_t **)ptr = NULL;
@@ -1373,13 +1373,13 @@ Z_set(void *ptr, PyObject *value, Py_ssize_t size)
if (!PyUnicode_Check(value)) {
PyErr_Format(PyExc_TypeError,
"unicode string or integer address expected instead of %s instance",
- Py_TYPE(value)->tp_name);
+ Py_TYPE(value)->tp_name);
return NULL;
}
/* We must create a wchar_t* buffer from the unicode object,
and keep it alive */
- buffer = PyUnicode_AsWideCharString(value, &bsize);
+ buffer = PyUnicode_AsWideCharString(value, &bsize);
if (!buffer)
return NULL;
keep = PyCapsule_New(buffer, CTYPES_CFIELD_CAPSULE_NAME_PYMEM, pymem_destructor);
@@ -1416,24 +1416,24 @@ BSTR_set(void *ptr, PyObject *value, Py_ssize_t size)
} else if (!PyUnicode_Check(value)) {
PyErr_Format(PyExc_TypeError,
"unicode string expected instead of %s instance",
- Py_TYPE(value)->tp_name);
+ Py_TYPE(value)->tp_name);
return NULL;
}
/* create a BSTR from value */
if (value) {
Py_ssize_t wsize;
- wchar_t *wvalue = PyUnicode_AsWideCharString(value, &wsize);
- if (wvalue == NULL) {
+ wchar_t *wvalue = PyUnicode_AsWideCharString(value, &wsize);
+ if (wvalue == NULL) {
return NULL;
- }
+ }
if ((unsigned) wsize != wsize) {
PyErr_SetString(PyExc_ValueError, "String too long for BSTR");
- PyMem_Free(wvalue);
+ PyMem_Free(wvalue);
return NULL;
}
bstr = SysAllocStringLen(wvalue, (unsigned)wsize);
- PyMem_Free(wvalue);
+ PyMem_Free(wvalue);
} else
bstr = NULL;
@@ -1543,7 +1543,7 @@ static struct fielddesc formattable[] = {
#endif
#ifdef MS_WIN32
{ 'X', BSTR_set, BSTR_get, &ffi_type_pointer},
-#endif
+#endif
{ 'v', vBOOL_set, vBOOL_get, &ffi_type_sshort},
#if SIZEOF__BOOL == 1
{ '?', bool_set, bool_get, &ffi_type_uchar}, /* Also fallback for no native _Bool support */
diff --git a/contrib/tools/python3/src/Modules/_ctypes/ctypes.h b/contrib/tools/python3/src/Modules/_ctypes/ctypes.h
index 4d3b9eef24..0f422113a8 100644
--- a/contrib/tools/python3/src/Modules/_ctypes/ctypes.h
+++ b/contrib/tools/python3/src/Modules/_ctypes/ctypes.h
@@ -68,7 +68,7 @@ typedef struct {
ffi_type *atypes[1];
} CThunkObject;
extern PyTypeObject PyCThunk_Type;
-#define CThunk_CheckExact(v) Py_IS_TYPE(v, &PyCThunk_Type)
+#define CThunk_CheckExact(v) Py_IS_TYPE(v, &PyCThunk_Type)
typedef struct {
/* First part identical to tagCDataObject */
@@ -102,7 +102,7 @@ typedef struct {
} PyCFuncPtrObject;
extern PyTypeObject PyCStgDict_Type;
-#define PyCStgDict_CheckExact(v) Py_IS_TYPE(v, &PyCStgDict_Type)
+#define PyCStgDict_CheckExact(v) Py_IS_TYPE(v, &PyCStgDict_Type)
#define PyCStgDict_Check(v) PyObject_TypeCheck(v, &PyCStgDict_Type)
extern int PyCStructUnionType_update_stgdict(PyObject *fields, PyObject *type, int isStruct);
@@ -112,12 +112,12 @@ extern int PyObject_stginfo(PyObject *self, Py_ssize_t *psize, Py_ssize_t *palig
extern PyTypeObject PyCData_Type;
-#define CDataObject_CheckExact(v) Py_IS_TYPE(v, &PyCData_Type)
+#define CDataObject_CheckExact(v) Py_IS_TYPE(v, &PyCData_Type)
#define CDataObject_Check(v) PyObject_TypeCheck(v, &PyCData_Type)
#define _CDataObject_HasExternalBuffer(v) ((v)->b_ptr != (char *)&(v)->b_value)
extern PyTypeObject PyCSimpleType_Type;
-#define PyCSimpleTypeObject_CheckExact(v) Py_IS_TYPE(v, &PyCSimpleType_Type)
+#define PyCSimpleTypeObject_CheckExact(v) Py_IS_TYPE(v, &PyCSimpleType_Type)
#define PyCSimpleTypeObject_Check(v) PyObject_TypeCheck(v, &PyCSimpleType_Type)
extern PyTypeObject PyCField_Type;
@@ -208,7 +208,7 @@ typedef struct {
PyObject *checker;
int flags; /* calling convention and such */
- /* pep3118 fields, pointers need PyMem_Free */
+ /* pep3118 fields, pointers need PyMem_Free */
char *format;
int ndim;
Py_ssize_t *shape;
@@ -288,8 +288,8 @@ PyObject *_ctypes_callproc(PPROC pProc,
#define TYPEFLAG_ISPOINTER 0x100
#define TYPEFLAG_HASPOINTER 0x200
-#define TYPEFLAG_HASUNION 0x400
-#define TYPEFLAG_HASBITFIELD 0x800
+#define TYPEFLAG_HASUNION 0x400
+#define TYPEFLAG_HASBITFIELD 0x800
#define DICTFLAG_FINAL 0x1000
@@ -314,7 +314,7 @@ struct tagPyCArgObject {
};
extern PyTypeObject PyCArg_Type;
-#define PyCArg_CheckExact(v) Py_IS_TYPE(v, &PyCArg_Type)
+#define PyCArg_CheckExact(v) Py_IS_TYPE(v, &PyCArg_Type)
extern PyCArgObject *PyCArgObject_new(void);
extern PyObject *
@@ -366,14 +366,14 @@ PyObject *_ctypes_get_errobj(int **pspace);
extern PyObject *ComError;
#endif
-#if USING_MALLOC_CLOSURE_DOT_C
-void Py_ffi_closure_free(void *p);
-void *Py_ffi_closure_alloc(size_t size, void** codeloc);
-#else
-#define Py_ffi_closure_free ffi_closure_free
-#define Py_ffi_closure_alloc ffi_closure_alloc
-#endif
-
+#if USING_MALLOC_CLOSURE_DOT_C
+void Py_ffi_closure_free(void *p);
+void *Py_ffi_closure_alloc(size_t size, void** codeloc);
+#else
+#define Py_ffi_closure_free ffi_closure_free
+#define Py_ffi_closure_alloc ffi_closure_alloc
+#endif
+
/*
Local Variables:
compile-command: "python setup.py -q build install --home ~"
diff --git a/contrib/tools/python3/src/Modules/_ctypes/stgdict.c b/contrib/tools/python3/src/Modules/_ctypes/stgdict.c
index d56b0db90e..bbef2921e6 100644
--- a/contrib/tools/python3/src/Modules/_ctypes/stgdict.c
+++ b/contrib/tools/python3/src/Modules/_ctypes/stgdict.c
@@ -133,10 +133,10 @@ PyTypeObject PyCStgDict_Type = {
sizeof(StgDictObject),
0,
(destructor)PyCStgDict_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -191,7 +191,7 @@ PyType_stgdict(PyObject *obj)
StgDictObject *
PyObject_stgdict(PyObject *self)
{
- PyTypeObject *type = Py_TYPE(self);
+ PyTypeObject *type = Py_TYPE(self);
if (!type->tp_dict || !PyCStgDict_CheckExact(type->tp_dict))
return NULL;
return (StgDictObject *)type->tp_dict;
@@ -232,7 +232,7 @@ MakeFields(PyObject *type, CFieldObject *descr,
Py_DECREF(fieldlist);
return -1;
}
- if (!Py_IS_TYPE(fdescr, &PyCField_Type)) {
+ if (!Py_IS_TYPE(fdescr, &PyCField_Type)) {
PyErr_SetString(PyExc_TypeError, "unexpected type");
Py_DECREF(fdescr);
Py_DECREF(fieldlist);
@@ -255,7 +255,7 @@ MakeFields(PyObject *type, CFieldObject *descr,
Py_DECREF(fieldlist);
return -1;
}
- assert(Py_IS_TYPE(new_descr, &PyCField_Type));
+ assert(Py_IS_TYPE(new_descr, &PyCField_Type));
new_descr->size = fdescr->size;
new_descr->offset = fdescr->offset + offset;
new_descr->index = fdescr->index + index;
@@ -282,14 +282,14 @@ MakeFields(PyObject *type, CFieldObject *descr,
static int
MakeAnonFields(PyObject *type)
{
- _Py_IDENTIFIER(_anonymous_);
+ _Py_IDENTIFIER(_anonymous_);
PyObject *anon;
PyObject *anon_names;
Py_ssize_t i;
- if (_PyObject_LookupAttrId(type, &PyId__anonymous_, &anon) < 0) {
- return -1;
- }
+ if (_PyObject_LookupAttrId(type, &PyId__anonymous_, &anon) < 0) {
+ return -1;
+ }
if (anon == NULL) {
return 0;
}
@@ -305,7 +305,7 @@ MakeAnonFields(PyObject *type)
Py_DECREF(anon_names);
return -1;
}
- if (!Py_IS_TYPE(descr, &PyCField_Type)) {
+ if (!Py_IS_TYPE(descr, &PyCField_Type)) {
PyErr_Format(PyExc_AttributeError,
"'%U' is specified in _anonymous_ but not in "
"_fields_",
@@ -338,23 +338,23 @@ MakeAnonFields(PyObject *type)
int
PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct)
{
- _Py_IDENTIFIER(_swappedbytes_);
- _Py_IDENTIFIER(_use_broken_old_ctypes_structure_semantics_);
- _Py_IDENTIFIER(_pack_);
+ _Py_IDENTIFIER(_swappedbytes_);
+ _Py_IDENTIFIER(_use_broken_old_ctypes_structure_semantics_);
+ _Py_IDENTIFIER(_pack_);
StgDictObject *stgdict, *basedict;
Py_ssize_t len, offset, size, align, i;
Py_ssize_t union_size, total_align;
Py_ssize_t field_size = 0;
int bitofs;
- PyObject *tmp;
- int isPacked;
- int pack;
+ PyObject *tmp;
+ int isPacked;
+ int pack;
Py_ssize_t ffi_ofs;
int big_endian;
- int arrays_seen = 0;
+ int arrays_seen = 0;
/* HACK Alert: I cannot be bothered to fix ctypes.com, so there has to
- be a way to use the old, broken semantics: _fields_ are not extended
+ be a way to use the old, broken semantics: _fields_ are not extended
but replaced in subclasses.
XXX Remove this in ctypes 1.0!
@@ -364,59 +364,59 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
if (fields == NULL)
return 0;
- if (_PyObject_LookupAttrId(type, &PyId__swappedbytes_, &tmp) < 0) {
- return -1;
- }
- if (tmp) {
- Py_DECREF(tmp);
- big_endian = !PY_BIG_ENDIAN;
- }
- else {
- big_endian = PY_BIG_ENDIAN;
- }
-
- if (_PyObject_LookupAttrId(type,
- &PyId__use_broken_old_ctypes_structure_semantics_, &tmp) < 0)
- {
- return -1;
- }
- if (tmp) {
- Py_DECREF(tmp);
- use_broken_old_ctypes_semantics = 1;
- }
- else {
- use_broken_old_ctypes_semantics = 0;
- }
-
- if (_PyObject_LookupAttrId(type, &PyId__pack_, &tmp) < 0) {
- return -1;
- }
- if (tmp) {
- isPacked = 1;
- pack = _PyLong_AsInt(tmp);
- Py_DECREF(tmp);
- if (pack < 0) {
- if (!PyErr_Occurred() ||
- PyErr_ExceptionMatches(PyExc_TypeError) ||
- PyErr_ExceptionMatches(PyExc_OverflowError))
- {
- PyErr_SetString(PyExc_ValueError,
- "_pack_ must be a non-negative integer");
- }
+ if (_PyObject_LookupAttrId(type, &PyId__swappedbytes_, &tmp) < 0) {
+ return -1;
+ }
+ if (tmp) {
+ Py_DECREF(tmp);
+ big_endian = !PY_BIG_ENDIAN;
+ }
+ else {
+ big_endian = PY_BIG_ENDIAN;
+ }
+
+ if (_PyObject_LookupAttrId(type,
+ &PyId__use_broken_old_ctypes_structure_semantics_, &tmp) < 0)
+ {
+ return -1;
+ }
+ if (tmp) {
+ Py_DECREF(tmp);
+ use_broken_old_ctypes_semantics = 1;
+ }
+ else {
+ use_broken_old_ctypes_semantics = 0;
+ }
+
+ if (_PyObject_LookupAttrId(type, &PyId__pack_, &tmp) < 0) {
+ return -1;
+ }
+ if (tmp) {
+ isPacked = 1;
+ pack = _PyLong_AsInt(tmp);
+ Py_DECREF(tmp);
+ if (pack < 0) {
+ if (!PyErr_Occurred() ||
+ PyErr_ExceptionMatches(PyExc_TypeError) ||
+ PyErr_ExceptionMatches(PyExc_OverflowError))
+ {
+ PyErr_SetString(PyExc_ValueError,
+ "_pack_ must be a non-negative integer");
+ }
return -1;
}
- }
- else {
- isPacked = 0;
- pack = 0;
- }
+ }
+ else {
+ isPacked = 0;
+ pack = 0;
+ }
- len = PySequence_Size(fields);
+ len = PySequence_Size(fields);
if (len == -1) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_SetString(PyExc_TypeError,
- "'_fields_' must be a sequence of pairs");
- }
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "'_fields_' must be a sequence of pairs");
+ }
return -1;
}
@@ -441,13 +441,13 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
PyMem_Free(stgdict->ffi_type_pointer.elements);
basedict = PyType_stgdict((PyObject *)((PyTypeObject *)type)->tp_base);
- if (basedict) {
- stgdict->flags |= (basedict->flags &
- (TYPEFLAG_HASUNION | TYPEFLAG_HASBITFIELD));
- }
- if (!isStruct) {
- stgdict->flags |= TYPEFLAG_HASUNION;
- }
+ if (basedict) {
+ stgdict->flags |= (basedict->flags &
+ (TYPEFLAG_HASUNION | TYPEFLAG_HASBITFIELD));
+ }
+ if (!isStruct) {
+ stgdict->flags |= TYPEFLAG_HASUNION;
+ }
if (basedict && !use_broken_old_ctypes_semantics) {
size = offset = basedict->size;
align = basedict->align;
@@ -510,8 +510,8 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
Py_XDECREF(pair);
return -1;
}
- if (PyCArrayTypeObject_Check(desc))
- arrays_seen = 1;
+ if (PyCArrayTypeObject_Check(desc))
+ arrays_seen = 1;
dict = PyType_stgdict(desc);
if (dict == NULL) {
Py_DECREF(pair);
@@ -523,10 +523,10 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
stgdict->ffi_type_pointer.elements[ffi_ofs + i] = &dict->ffi_type_pointer;
if (dict->flags & (TYPEFLAG_ISPOINTER | TYPEFLAG_HASPOINTER))
stgdict->flags |= TYPEFLAG_HASPOINTER;
- stgdict->flags |= dict->flags & (TYPEFLAG_HASUNION | TYPEFLAG_HASBITFIELD);
+ stgdict->flags |= dict->flags & (TYPEFLAG_HASUNION | TYPEFLAG_HASBITFIELD);
dict->flags |= DICTFLAG_FINAL; /* mark field type final */
if (PyTuple_Size(pair) == 3) { /* bits specified */
- stgdict->flags |= TYPEFLAG_HASBITFIELD;
+ stgdict->flags |= TYPEFLAG_HASBITFIELD;
switch(dict->ffi_type_pointer.type) {
case FFI_TYPE_UINT8:
case FFI_TYPE_UINT16:
@@ -654,240 +654,240 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
stgdict->align = total_align;
stgdict->length = len; /* ADD ffi_ofs? */
-#define MAX_STRUCT_SIZE 16
-
- if (arrays_seen && (size <= MAX_STRUCT_SIZE)) {
- /*
- * See bpo-22273. Arrays are normally treated as pointers, which is
- * fine when an array name is being passed as parameter, but not when
- * passing structures by value that contain arrays. On 64-bit Linux,
- * small structures passed by value are passed in registers, and in
- * order to do this, libffi needs to know the true type of the array
- * members of structs. Treating them as pointers breaks things.
- *
- * By small structures, we mean ones that are 16 bytes or less. In that
- * case, there can't be more than 16 elements after unrolling arrays,
- * as we (will) disallow bitfields. So we can collect the true ffi_type
- * values in a fixed-size local array on the stack and, if any arrays
- * were seen, replace the ffi_type_pointer.elements with a more
- * accurate set, to allow libffi to marshal them into registers
- * correctly. It means one more loop over the fields, but if we got
- * here, the structure is small, so there aren't too many of those.
- *
- * Although the passing in registers is specific to 64-bit Linux, the
- * array-in-struct vs. pointer problem is general. But we restrict the
- * type transformation to small structs nonetheless.
- *
- * Note that although a union may be small in terms of memory usage, it
- * could contain many overlapping declarations of arrays, e.g.
- *
- * union {
- * unsigned int_8 foo [16];
- * unsigned uint_8 bar [16];
- * unsigned int_16 baz[8];
- * unsigned uint_16 bozz[8];
- * unsigned int_32 fizz[4];
- * unsigned uint_32 buzz[4];
- * }
- *
- * which is still only 16 bytes in size. We need to convert this into
- * the following equivalent for libffi:
- *
- * union {
- * struct { int_8 e1; int_8 e2; ... int_8 e_16; } f1;
- * struct { uint_8 e1; uint_8 e2; ... uint_8 e_16; } f2;
- * struct { int_16 e1; int_16 e2; ... int_16 e_8; } f3;
- * struct { uint_16 e1; uint_16 e2; ... uint_16 e_8; } f4;
- * struct { int_32 e1; int_32 e2; ... int_32 e_4; } f5;
- * struct { uint_32 e1; uint_32 e2; ... uint_32 e_4; } f6;
- * }
- *
- * So the struct/union needs setting up as follows: all non-array
- * elements copied across as is, and all array elements replaced with
- * an equivalent struct which has as many fields as the array has
- * elements, plus one NULL pointer.
- */
-
- Py_ssize_t num_ffi_type_pointers = 0; /* for the dummy fields */
- Py_ssize_t num_ffi_types = 0; /* for the dummy structures */
- size_t alloc_size; /* total bytes to allocate */
- void *type_block; /* to hold all the type information needed */
- ffi_type **element_types; /* of this struct/union */
- ffi_type **dummy_types; /* of the dummy struct elements */
- ffi_type *structs; /* point to struct aliases of arrays */
- Py_ssize_t element_index; /* index into element_types for this */
- Py_ssize_t dummy_index = 0; /* index into dummy field pointers */
- Py_ssize_t struct_index = 0; /* index into dummy structs */
-
- /* first pass to see how much memory to allocate */
- for (i = 0; i < len; ++i) {
- PyObject *name, *desc;
- PyObject *pair = PySequence_GetItem(fields, i);
- StgDictObject *dict;
- int bitsize = 0;
-
- if (pair == NULL) {
- return -1;
- }
- if (!PyArg_ParseTuple(pair, "UO|i", &name, &desc, &bitsize)) {
- PyErr_SetString(PyExc_TypeError,
- "'_fields_' must be a sequence of (name, C type) pairs");
- Py_DECREF(pair);
- return -1;
- }
- dict = PyType_stgdict(desc);
- if (dict == NULL) {
- Py_DECREF(pair);
- PyErr_Format(PyExc_TypeError,
- "second item in _fields_ tuple (index %zd) must be a C type",
- i);
- return -1;
- }
- if (!PyCArrayTypeObject_Check(desc)) {
- /* Not an array. Just need an ffi_type pointer. */
- num_ffi_type_pointers++;
- }
- else {
- /* It's an array. */
- Py_ssize_t length = dict->length;
- StgDictObject *edict;
-
- edict = PyType_stgdict(dict->proto);
- if (edict == NULL) {
- Py_DECREF(pair);
- PyErr_Format(PyExc_TypeError,
- "second item in _fields_ tuple (index %zd) must be a C type",
- i);
- return -1;
- }
- /*
- * We need one extra ffi_type to hold the struct, and one
- * ffi_type pointer per array element + one for a NULL to
- * mark the end.
- */
- num_ffi_types++;
- num_ffi_type_pointers += length + 1;
- }
- Py_DECREF(pair);
- }
-
- /*
- * At this point, we know we need storage for some ffi_types and some
- * ffi_type pointers. We'll allocate these in one block.
- * There are three sub-blocks of information: the ffi_type pointers to
- * this structure/union's elements, the ffi_type_pointers to the
- * dummy fields standing in for array elements, and the
- * ffi_types representing the dummy structures.
- */
- alloc_size = (ffi_ofs + 1 + len + num_ffi_type_pointers) * sizeof(ffi_type *) +
- num_ffi_types * sizeof(ffi_type);
- type_block = PyMem_Malloc(alloc_size);
-
- if (type_block == NULL) {
- PyErr_NoMemory();
- return -1;
- }
- /*
- * the first block takes up ffi_ofs + len + 1 which is the pointers *
- * for this struct/union. The second block takes up
- * num_ffi_type_pointers, so the sum of these is ffi_ofs + len + 1 +
- * num_ffi_type_pointers as allocated above. The last bit is the
- * num_ffi_types structs.
- */
- element_types = (ffi_type **) type_block;
- dummy_types = &element_types[ffi_ofs + len + 1];
- structs = (ffi_type *) &dummy_types[num_ffi_type_pointers];
-
- if (num_ffi_types > 0) {
- memset(structs, 0, num_ffi_types * sizeof(ffi_type));
- }
- if (ffi_ofs && (basedict != NULL)) {
- memcpy(element_types,
- basedict->ffi_type_pointer.elements,
- ffi_ofs * sizeof(ffi_type *));
- }
- element_index = ffi_ofs;
-
- /* second pass to actually set the type pointers */
- for (i = 0; i < len; ++i) {
- PyObject *name, *desc;
- PyObject *pair = PySequence_GetItem(fields, i);
- StgDictObject *dict;
- int bitsize = 0;
-
- if (pair == NULL) {
- PyMem_Free(type_block);
- return -1;
- }
- /* In theory, we made this call in the first pass, so it *shouldn't*
- * fail. However, you never know, and the code above might change
- * later - keeping the check in here is a tad defensive but it
- * will affect program size only slightly and performance hardly at
- * all.
- */
- if (!PyArg_ParseTuple(pair, "UO|i", &name, &desc, &bitsize)) {
- PyErr_SetString(PyExc_TypeError,
- "'_fields_' must be a sequence of (name, C type) pairs");
- Py_DECREF(pair);
- PyMem_Free(type_block);
- return -1;
- }
- dict = PyType_stgdict(desc);
- /* Possibly this check could be avoided, but see above comment. */
- if (dict == NULL) {
- Py_DECREF(pair);
- PyMem_Free(type_block);
- PyErr_Format(PyExc_TypeError,
- "second item in _fields_ tuple (index %zd) must be a C type",
- i);
- return -1;
- }
- assert(element_index < (ffi_ofs + len)); /* will be used below */
- if (!PyCArrayTypeObject_Check(desc)) {
- /* Not an array. Just copy over the element ffi_type. */
- element_types[element_index++] = &dict->ffi_type_pointer;
- }
- else {
- Py_ssize_t length = dict->length;
- StgDictObject *edict;
-
- edict = PyType_stgdict(dict->proto);
- if (edict == NULL) {
- Py_DECREF(pair);
- PyMem_Free(type_block);
- PyErr_Format(PyExc_TypeError,
- "second item in _fields_ tuple (index %zd) must be a C type",
- i);
- return -1;
- }
- element_types[element_index++] = &structs[struct_index];
- structs[struct_index].size = length * edict->ffi_type_pointer.size;
- structs[struct_index].alignment = edict->ffi_type_pointer.alignment;
- structs[struct_index].type = FFI_TYPE_STRUCT;
- structs[struct_index].elements = &dummy_types[dummy_index];
- ++struct_index;
- /* Copy over the element's type, length times. */
- while (length > 0) {
- assert(dummy_index < (num_ffi_type_pointers));
- dummy_types[dummy_index++] = &edict->ffi_type_pointer;
- length--;
- }
- assert(dummy_index < (num_ffi_type_pointers));
- dummy_types[dummy_index++] = NULL;
- }
- Py_DECREF(pair);
- }
-
- element_types[element_index] = NULL;
- /*
- * Replace the old elements with the new, taking into account
- * base class elements where necessary.
- */
- assert(stgdict->ffi_type_pointer.elements);
- PyMem_Free(stgdict->ffi_type_pointer.elements);
- stgdict->ffi_type_pointer.elements = element_types;
- }
-
+#define MAX_STRUCT_SIZE 16
+
+ if (arrays_seen && (size <= MAX_STRUCT_SIZE)) {
+ /*
+ * See bpo-22273. Arrays are normally treated as pointers, which is
+ * fine when an array name is being passed as parameter, but not when
+ * passing structures by value that contain arrays. On 64-bit Linux,
+ * small structures passed by value are passed in registers, and in
+ * order to do this, libffi needs to know the true type of the array
+ * members of structs. Treating them as pointers breaks things.
+ *
+ * By small structures, we mean ones that are 16 bytes or less. In that
+ * case, there can't be more than 16 elements after unrolling arrays,
+ * as we (will) disallow bitfields. So we can collect the true ffi_type
+ * values in a fixed-size local array on the stack and, if any arrays
+ * were seen, replace the ffi_type_pointer.elements with a more
+ * accurate set, to allow libffi to marshal them into registers
+ * correctly. It means one more loop over the fields, but if we got
+ * here, the structure is small, so there aren't too many of those.
+ *
+ * Although the passing in registers is specific to 64-bit Linux, the
+ * array-in-struct vs. pointer problem is general. But we restrict the
+ * type transformation to small structs nonetheless.
+ *
+ * Note that although a union may be small in terms of memory usage, it
+ * could contain many overlapping declarations of arrays, e.g.
+ *
+ * union {
+ * unsigned int_8 foo [16];
+ * unsigned uint_8 bar [16];
+ * unsigned int_16 baz[8];
+ * unsigned uint_16 bozz[8];
+ * unsigned int_32 fizz[4];
+ * unsigned uint_32 buzz[4];
+ * }
+ *
+ * which is still only 16 bytes in size. We need to convert this into
+ * the following equivalent for libffi:
+ *
+ * union {
+ * struct { int_8 e1; int_8 e2; ... int_8 e_16; } f1;
+ * struct { uint_8 e1; uint_8 e2; ... uint_8 e_16; } f2;
+ * struct { int_16 e1; int_16 e2; ... int_16 e_8; } f3;
+ * struct { uint_16 e1; uint_16 e2; ... uint_16 e_8; } f4;
+ * struct { int_32 e1; int_32 e2; ... int_32 e_4; } f5;
+ * struct { uint_32 e1; uint_32 e2; ... uint_32 e_4; } f6;
+ * }
+ *
+ * So the struct/union needs setting up as follows: all non-array
+ * elements copied across as is, and all array elements replaced with
+ * an equivalent struct which has as many fields as the array has
+ * elements, plus one NULL pointer.
+ */
+
+ Py_ssize_t num_ffi_type_pointers = 0; /* for the dummy fields */
+ Py_ssize_t num_ffi_types = 0; /* for the dummy structures */
+ size_t alloc_size; /* total bytes to allocate */
+ void *type_block; /* to hold all the type information needed */
+ ffi_type **element_types; /* of this struct/union */
+ ffi_type **dummy_types; /* of the dummy struct elements */
+ ffi_type *structs; /* point to struct aliases of arrays */
+ Py_ssize_t element_index; /* index into element_types for this */
+ Py_ssize_t dummy_index = 0; /* index into dummy field pointers */
+ Py_ssize_t struct_index = 0; /* index into dummy structs */
+
+ /* first pass to see how much memory to allocate */
+ for (i = 0; i < len; ++i) {
+ PyObject *name, *desc;
+ PyObject *pair = PySequence_GetItem(fields, i);
+ StgDictObject *dict;
+ int bitsize = 0;
+
+ if (pair == NULL) {
+ return -1;
+ }
+ if (!PyArg_ParseTuple(pair, "UO|i", &name, &desc, &bitsize)) {
+ PyErr_SetString(PyExc_TypeError,
+ "'_fields_' must be a sequence of (name, C type) pairs");
+ Py_DECREF(pair);
+ return -1;
+ }
+ dict = PyType_stgdict(desc);
+ if (dict == NULL) {
+ Py_DECREF(pair);
+ PyErr_Format(PyExc_TypeError,
+ "second item in _fields_ tuple (index %zd) must be a C type",
+ i);
+ return -1;
+ }
+ if (!PyCArrayTypeObject_Check(desc)) {
+ /* Not an array. Just need an ffi_type pointer. */
+ num_ffi_type_pointers++;
+ }
+ else {
+ /* It's an array. */
+ Py_ssize_t length = dict->length;
+ StgDictObject *edict;
+
+ edict = PyType_stgdict(dict->proto);
+ if (edict == NULL) {
+ Py_DECREF(pair);
+ PyErr_Format(PyExc_TypeError,
+ "second item in _fields_ tuple (index %zd) must be a C type",
+ i);
+ return -1;
+ }
+ /*
+ * We need one extra ffi_type to hold the struct, and one
+ * ffi_type pointer per array element + one for a NULL to
+ * mark the end.
+ */
+ num_ffi_types++;
+ num_ffi_type_pointers += length + 1;
+ }
+ Py_DECREF(pair);
+ }
+
+ /*
+ * At this point, we know we need storage for some ffi_types and some
+ * ffi_type pointers. We'll allocate these in one block.
+ * There are three sub-blocks of information: the ffi_type pointers to
+ * this structure/union's elements, the ffi_type_pointers to the
+ * dummy fields standing in for array elements, and the
+ * ffi_types representing the dummy structures.
+ */
+ alloc_size = (ffi_ofs + 1 + len + num_ffi_type_pointers) * sizeof(ffi_type *) +
+ num_ffi_types * sizeof(ffi_type);
+ type_block = PyMem_Malloc(alloc_size);
+
+ if (type_block == NULL) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ /*
+ * the first block takes up ffi_ofs + len + 1 which is the pointers *
+ * for this struct/union. The second block takes up
+ * num_ffi_type_pointers, so the sum of these is ffi_ofs + len + 1 +
+ * num_ffi_type_pointers as allocated above. The last bit is the
+ * num_ffi_types structs.
+ */
+ element_types = (ffi_type **) type_block;
+ dummy_types = &element_types[ffi_ofs + len + 1];
+ structs = (ffi_type *) &dummy_types[num_ffi_type_pointers];
+
+ if (num_ffi_types > 0) {
+ memset(structs, 0, num_ffi_types * sizeof(ffi_type));
+ }
+ if (ffi_ofs && (basedict != NULL)) {
+ memcpy(element_types,
+ basedict->ffi_type_pointer.elements,
+ ffi_ofs * sizeof(ffi_type *));
+ }
+ element_index = ffi_ofs;
+
+ /* second pass to actually set the type pointers */
+ for (i = 0; i < len; ++i) {
+ PyObject *name, *desc;
+ PyObject *pair = PySequence_GetItem(fields, i);
+ StgDictObject *dict;
+ int bitsize = 0;
+
+ if (pair == NULL) {
+ PyMem_Free(type_block);
+ return -1;
+ }
+ /* In theory, we made this call in the first pass, so it *shouldn't*
+ * fail. However, you never know, and the code above might change
+ * later - keeping the check in here is a tad defensive but it
+ * will affect program size only slightly and performance hardly at
+ * all.
+ */
+ if (!PyArg_ParseTuple(pair, "UO|i", &name, &desc, &bitsize)) {
+ PyErr_SetString(PyExc_TypeError,
+ "'_fields_' must be a sequence of (name, C type) pairs");
+ Py_DECREF(pair);
+ PyMem_Free(type_block);
+ return -1;
+ }
+ dict = PyType_stgdict(desc);
+ /* Possibly this check could be avoided, but see above comment. */
+ if (dict == NULL) {
+ Py_DECREF(pair);
+ PyMem_Free(type_block);
+ PyErr_Format(PyExc_TypeError,
+ "second item in _fields_ tuple (index %zd) must be a C type",
+ i);
+ return -1;
+ }
+ assert(element_index < (ffi_ofs + len)); /* will be used below */
+ if (!PyCArrayTypeObject_Check(desc)) {
+ /* Not an array. Just copy over the element ffi_type. */
+ element_types[element_index++] = &dict->ffi_type_pointer;
+ }
+ else {
+ Py_ssize_t length = dict->length;
+ StgDictObject *edict;
+
+ edict = PyType_stgdict(dict->proto);
+ if (edict == NULL) {
+ Py_DECREF(pair);
+ PyMem_Free(type_block);
+ PyErr_Format(PyExc_TypeError,
+ "second item in _fields_ tuple (index %zd) must be a C type",
+ i);
+ return -1;
+ }
+ element_types[element_index++] = &structs[struct_index];
+ structs[struct_index].size = length * edict->ffi_type_pointer.size;
+ structs[struct_index].alignment = edict->ffi_type_pointer.alignment;
+ structs[struct_index].type = FFI_TYPE_STRUCT;
+ structs[struct_index].elements = &dummy_types[dummy_index];
+ ++struct_index;
+ /* Copy over the element's type, length times. */
+ while (length > 0) {
+ assert(dummy_index < (num_ffi_type_pointers));
+ dummy_types[dummy_index++] = &edict->ffi_type_pointer;
+ length--;
+ }
+ assert(dummy_index < (num_ffi_type_pointers));
+ dummy_types[dummy_index++] = NULL;
+ }
+ Py_DECREF(pair);
+ }
+
+ element_types[element_index] = NULL;
+ /*
+ * Replace the old elements with the new, taking into account
+ * base class elements where necessary.
+ */
+ assert(stgdict->ffi_type_pointer.elements);
+ PyMem_Free(stgdict->ffi_type_pointer.elements);
+ stgdict->ffi_type_pointer.elements = element_types;
+ }
+
/* We did check that this flag was NOT set above, it must not
have been set until now. */
if (stgdict->flags & DICTFLAG_FINAL) {
diff --git a/contrib/tools/python3/src/Modules/_datetimemodule.c b/contrib/tools/python3/src/Modules/_datetimemodule.c
index 6f3f053588..9602375405 100644
--- a/contrib/tools/python3/src/Modules/_datetimemodule.c
+++ b/contrib/tools/python3/src/Modules/_datetimemodule.c
@@ -2,14 +2,14 @@
* http://www.zope.org/Members/fdrake/DateTimeWiki/FrontPage
*/
-/* bpo-35081: Defining this prevents including the C API capsule;
- * internal versions of the Py*_Check macros which do not require
- * the capsule are defined below */
-#define _PY_DATETIME_IMPL
-
+/* bpo-35081: Defining this prevents including the C API capsule;
+ * internal versions of the Py*_Check macros which do not require
+ * the capsule are defined below */
+#define _PY_DATETIME_IMPL
+
#include "Python.h"
-#include "datetime.h"
-#include "structmember.h" // PyMemberDef
+#include "datetime.h"
+#include "structmember.h" // PyMemberDef
#include <time.h>
@@ -17,30 +17,30 @@
# include <winsock2.h> /* struct timeval */
#endif
-#define PyDate_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateType)
-#define PyDate_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DateType)
-
-#define PyDateTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateTimeType)
-#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DateTimeType)
-
-#define PyTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeType)
-#define PyTime_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_TimeType)
-
-#define PyDelta_Check(op) PyObject_TypeCheck(op, &PyDateTime_DeltaType)
-#define PyDelta_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DeltaType)
-
-#define PyTZInfo_Check(op) PyObject_TypeCheck(op, &PyDateTime_TZInfoType)
-#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_TZInfoType)
-
-#define PyTimezone_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeZoneType)
-
+#define PyDate_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateType)
+#define PyDate_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DateType)
+
+#define PyDateTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateTimeType)
+#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DateTimeType)
+
+#define PyTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeType)
+#define PyTime_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_TimeType)
+
+#define PyDelta_Check(op) PyObject_TypeCheck(op, &PyDateTime_DeltaType)
+#define PyDelta_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DeltaType)
+
+#define PyTZInfo_Check(op) PyObject_TypeCheck(op, &PyDateTime_TZInfoType)
+#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_TZInfoType)
+
+#define PyTimezone_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeZoneType)
+
/*[clinic input]
module datetime
class datetime.datetime "PyDateTime_DateTime *" "&PyDateTime_DateTimeType"
-class datetime.date "PyDateTime_Date *" "&PyDateTime_DateType"
-class datetime.IsoCalendarDate "PyDateTime_IsoCalendarDate *" "&PyDateTime_IsoCalendarDateType"
+class datetime.date "PyDateTime_Date *" "&PyDateTime_DateType"
+class datetime.IsoCalendarDate "PyDateTime_IsoCalendarDate *" "&PyDateTime_IsoCalendarDateType"
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=81bec0fa19837f63]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=81bec0fa19837f63]*/
#include "clinic/_datetimemodule.c.h"
@@ -132,7 +132,7 @@ class datetime.IsoCalendarDate "PyDateTime_IsoCalendarDate *" "&PyDateTime_IsoCa
static PyTypeObject PyDateTime_DateType;
static PyTypeObject PyDateTime_DateTimeType;
static PyTypeObject PyDateTime_DeltaType;
-static PyTypeObject PyDateTime_IsoCalendarDateType;
+static PyTypeObject PyDateTime_IsoCalendarDateType;
static PyTypeObject PyDateTime_TimeType;
static PyTypeObject PyDateTime_TZInfoType;
static PyTypeObject PyDateTime_TimeZoneType;
@@ -1022,7 +1022,7 @@ new_time_ex(int hour, int minute, int second, int usecond,
* true. Passing false is a speed optimization, if you know for sure
* that seconds and microseconds are already in their proper ranges. In any
* case, raises OverflowError and returns NULL if the normalized days is out
- * of range.
+ * of range.
*/
static PyObject *
new_delta_ex(int days, int seconds, int microseconds, int normalize,
@@ -1102,9 +1102,9 @@ new_timezone(PyObject *offset, PyObject *name)
Py_INCREF(PyDateTime_TimeZone_UTC);
return PyDateTime_TimeZone_UTC;
}
- if ((GET_TD_DAYS(offset) == -1 &&
- GET_TD_SECONDS(offset) == 0 &&
- GET_TD_MICROSECONDS(offset) < 1) ||
+ if ((GET_TD_DAYS(offset) == -1 &&
+ GET_TD_SECONDS(offset) == 0 &&
+ GET_TD_MICROSECONDS(offset) < 1) ||
GET_TD_DAYS(offset) < -1 || GET_TD_DAYS(offset) >= 1) {
PyErr_Format(PyExc_ValueError, "offset must be a timedelta"
" strictly between -timedelta(hours=24) and"
@@ -1174,9 +1174,9 @@ call_tzinfo_method(PyObject *tzinfo, const char *name, PyObject *tzinfoarg)
if (offset == Py_None || offset == NULL)
return offset;
if (PyDelta_Check(offset)) {
- if ((GET_TD_DAYS(offset) == -1 &&
- GET_TD_SECONDS(offset) == 0 &&
- GET_TD_MICROSECONDS(offset) < 1) ||
+ if ((GET_TD_DAYS(offset) == -1 &&
+ GET_TD_SECONDS(offset) == 0 &&
+ GET_TD_MICROSECONDS(offset) < 1) ||
GET_TD_DAYS(offset) < -1 || GET_TD_DAYS(offset) >= 1) {
Py_DECREF(offset);
PyErr_Format(PyExc_ValueError, "offset must be a timedelta"
@@ -1244,7 +1244,7 @@ call_tzname(PyObject *tzinfo, PyObject *tzinfoarg)
if (tzinfo == Py_None)
Py_RETURN_NONE;
- result = _PyObject_CallMethodIdOneArg(tzinfo, &PyId_tzname, tzinfoarg);
+ result = _PyObject_CallMethodIdOneArg(tzinfo, &PyId_tzname, tzinfoarg);
if (result == NULL || result == Py_None)
return result;
@@ -1534,8 +1534,8 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
ntoappend = 1;
}
else if ((ch = *pin++) == '\0') {
- /* Null byte follows %, copy only '%'.
- *
+ /* Null byte follows %, copy only '%'.
+ *
* Back the pin up one char so that we catch the null check
* the next time through the loop.*/
pin--;
@@ -1625,7 +1625,7 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
usednew += ntoappend;
assert(usednew <= totalnew);
} /* end while() */
-
+
if (_PyBytes_Resize(&newfmt, usednew) < 0)
goto Done;
{
@@ -1665,7 +1665,7 @@ time_time(void)
if (time != NULL) {
_Py_IDENTIFIER(time);
- result = _PyObject_CallMethodIdNoArgs(time, &PyId_time);
+ result = _PyObject_CallMethodIdNoArgs(time, &PyId_time);
Py_DECREF(time);
}
return result;
@@ -1699,7 +1699,7 @@ build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)
return NULL;
}
- result = _PyObject_CallMethodIdOneArg(time, &PyId_struct_time, args);
+ result = _PyObject_CallMethodIdOneArg(time, &PyId_struct_time, args);
Py_DECREF(time);
Py_DECREF(args);
return result;
@@ -1709,7 +1709,7 @@ build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)
* Miscellaneous helpers.
*/
-/* The comparisons here all most naturally compute a cmp()-like result.
+/* The comparisons here all most naturally compute a cmp()-like result.
* This little helper turns that into a bool result for rich comparisons.
*/
static PyObject *
@@ -1812,7 +1812,7 @@ checked_divmod(PyObject *a, PyObject *b)
if (!PyTuple_Check(result)) {
PyErr_Format(PyExc_TypeError,
"divmod() returned non-tuple (type %.200s)",
- Py_TYPE(result)->tp_name);
+ Py_TYPE(result)->tp_name);
Py_DECREF(result);
return NULL;
}
@@ -1923,7 +1923,7 @@ get_float_as_integer_ratio(PyObject *floatobj)
PyObject *ratio;
assert(floatobj && PyFloat_Check(floatobj));
- ratio = _PyObject_CallMethodIdNoArgs(floatobj, &PyId_as_integer_ratio);
+ ratio = _PyObject_CallMethodIdNoArgs(floatobj, &PyId_as_integer_ratio);
if (ratio == NULL) {
return NULL;
}
@@ -2628,7 +2628,7 @@ delta_getstate(PyDateTime_Delta *self)
}
static PyObject *
-delta_total_seconds(PyObject *self, PyObject *Py_UNUSED(ignored))
+delta_total_seconds(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *total_seconds;
PyObject *total_microseconds;
@@ -2644,7 +2644,7 @@ delta_total_seconds(PyObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-delta_reduce(PyDateTime_Delta* self, PyObject *Py_UNUSED(ignored))
+delta_reduce(PyDateTime_Delta* self, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("ON", Py_TYPE(self), delta_getstate(self));
}
@@ -2665,7 +2665,7 @@ static PyMemberDef delta_members[] = {
};
static PyMethodDef delta_methods[] = {
- {"total_seconds", delta_total_seconds, METH_NOARGS,
+ {"total_seconds", delta_total_seconds, METH_NOARGS,
PyDoc_STR("Total seconds in the duration.")},
{"__reduce__", (PyCFunction)delta_reduce, METH_NOARGS,
@@ -2723,10 +2723,10 @@ static PyTypeObject PyDateTime_DeltaType = {
sizeof(PyDateTime_Delta), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)delta_repr, /* tp_repr */
&delta_as_number, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2859,7 +2859,7 @@ date_new(PyTypeObject *type, PyObject *args, PyObject *kw)
}
static PyObject *
-date_fromtimestamp(PyObject *cls, PyObject *obj)
+date_fromtimestamp(PyObject *cls, PyObject *obj)
{
struct tm tm;
time_t t;
@@ -2898,45 +2898,45 @@ date_today(PyObject *cls, PyObject *dummy)
* time.time() delivers; if someone were gonzo about optimization,
* date.today() could get away with plain C time().
*/
- result = _PyObject_CallMethodIdOneArg(cls, &PyId_fromtimestamp, time);
+ result = _PyObject_CallMethodIdOneArg(cls, &PyId_fromtimestamp, time);
Py_DECREF(time);
return result;
}
-/*[clinic input]
-@classmethod
-datetime.date.fromtimestamp
-
- timestamp: object
- /
-
-Create a date from a POSIX timestamp.
-
-The timestamp is a number, e.g. created via time.time(), that is interpreted
-as local time.
-[clinic start generated code]*/
-
-static PyObject *
-datetime_date_fromtimestamp(PyTypeObject *type, PyObject *timestamp)
-/*[clinic end generated code: output=fd045fda58168869 input=eabb3fe7f40491fe]*/
-{
- return date_fromtimestamp((PyObject *) type, timestamp);
-}
-
-/* bpo-36025: This is a wrapper for API compatibility with the public C API,
- * which expects a function that takes an *args tuple, whereas the argument
- * clinic generates code that takes METH_O.
- */
-static PyObject *
-datetime_date_fromtimestamp_capi(PyObject *cls, PyObject *args)
-{
+/*[clinic input]
+@classmethod
+datetime.date.fromtimestamp
+
+ timestamp: object
+ /
+
+Create a date from a POSIX timestamp.
+
+The timestamp is a number, e.g. created via time.time(), that is interpreted
+as local time.
+[clinic start generated code]*/
+
+static PyObject *
+datetime_date_fromtimestamp(PyTypeObject *type, PyObject *timestamp)
+/*[clinic end generated code: output=fd045fda58168869 input=eabb3fe7f40491fe]*/
+{
+ return date_fromtimestamp((PyObject *) type, timestamp);
+}
+
+/* bpo-36025: This is a wrapper for API compatibility with the public C API,
+ * which expects a function that takes an *args tuple, whereas the argument
+ * clinic generates code that takes METH_O.
+ */
+static PyObject *
+datetime_date_fromtimestamp_capi(PyObject *cls, PyObject *args)
+{
PyObject *timestamp;
PyObject *result = NULL;
- if (PyArg_UnpackTuple(args, "fromtimestamp", 1, 1, &timestamp)) {
- result = date_fromtimestamp(cls, timestamp);
- }
-
+ if (PyArg_UnpackTuple(args, "fromtimestamp", 1, 1, &timestamp)) {
+ result = date_fromtimestamp(cls, timestamp);
+ }
+
return result;
}
@@ -3005,67 +3005,67 @@ invalid_string_error:
return NULL;
}
-
-static PyObject *
-date_fromisocalendar(PyObject *cls, PyObject *args, PyObject *kw)
-{
- static char *keywords[] = {
- "year", "week", "day", NULL
- };
-
- int year, week, day;
- if (PyArg_ParseTupleAndKeywords(args, kw, "iii:fromisocalendar",
- keywords,
- &year, &week, &day) == 0) {
- if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
- PyErr_Format(PyExc_ValueError,
- "ISO calendar component out of range");
-
- }
- return NULL;
- }
-
- // Year is bounded to 0 < year < 10000 because 9999-12-31 is (9999, 52, 5)
- if (year < MINYEAR || year > MAXYEAR) {
- PyErr_Format(PyExc_ValueError, "Year is out of range: %d", year);
- return NULL;
- }
-
- if (week <= 0 || week >= 53) {
- int out_of_range = 1;
- if (week == 53) {
- // ISO years have 53 weeks in it on years starting with a Thursday
- // and on leap years starting on Wednesday
- int first_weekday = weekday(year, 1, 1);
- if (first_weekday == 3 || (first_weekday == 2 && is_leap(year))) {
- out_of_range = 0;
- }
- }
-
- if (out_of_range) {
- PyErr_Format(PyExc_ValueError, "Invalid week: %d", week);
- return NULL;
- }
- }
-
- if (day <= 0 || day >= 8) {
- PyErr_Format(PyExc_ValueError, "Invalid day: %d (range is [1, 7])",
- day);
- return NULL;
- }
-
- // Convert (Y, W, D) to (Y, M, D) in-place
- int day_1 = iso_week1_monday(year);
-
- int month = week;
- int day_offset = (month - 1)*7 + day - 1;
-
- ord_to_ymd(day_1 + day_offset, &year, &month, &day);
-
- return new_date_subclass_ex(year, month, day, cls);
-}
-
-
+
+static PyObject *
+date_fromisocalendar(PyObject *cls, PyObject *args, PyObject *kw)
+{
+ static char *keywords[] = {
+ "year", "week", "day", NULL
+ };
+
+ int year, week, day;
+ if (PyArg_ParseTupleAndKeywords(args, kw, "iii:fromisocalendar",
+ keywords,
+ &year, &week, &day) == 0) {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
+ PyErr_Format(PyExc_ValueError,
+ "ISO calendar component out of range");
+
+ }
+ return NULL;
+ }
+
+ // Year is bounded to 0 < year < 10000 because 9999-12-31 is (9999, 52, 5)
+ if (year < MINYEAR || year > MAXYEAR) {
+ PyErr_Format(PyExc_ValueError, "Year is out of range: %d", year);
+ return NULL;
+ }
+
+ if (week <= 0 || week >= 53) {
+ int out_of_range = 1;
+ if (week == 53) {
+ // ISO years have 53 weeks in it on years starting with a Thursday
+ // and on leap years starting on Wednesday
+ int first_weekday = weekday(year, 1, 1);
+ if (first_weekday == 3 || (first_weekday == 2 && is_leap(year))) {
+ out_of_range = 0;
+ }
+ }
+
+ if (out_of_range) {
+ PyErr_Format(PyExc_ValueError, "Invalid week: %d", week);
+ return NULL;
+ }
+ }
+
+ if (day <= 0 || day >= 8) {
+ PyErr_Format(PyExc_ValueError, "Invalid day: %d (range is [1, 7])",
+ day);
+ return NULL;
+ }
+
+ // Convert (Y, W, D) to (Y, M, D) in-place
+ int day_1 = iso_week1_monday(year);
+
+ int month = week;
+ int day_offset = (month - 1)*7 + day - 1;
+
+ ord_to_ymd(day_1 + day_offset, &year, &month, &day);
+
+ return new_date_subclass_ex(year, month, day, cls);
+}
+
+
/*
* Date arithmetic.
*/
@@ -3084,8 +3084,8 @@ add_date_timedelta(PyDateTime_Date *date, PyDateTime_Delta *delta, int negate)
int day = GET_DAY(date) + (negate ? -deltadays : deltadays);
if (normalize_date(&year, &month, &day) >= 0)
- result = new_date_subclass_ex(year, month, day,
- (PyObject* )Py_TYPE(date));
+ result = new_date_subclass_ex(year, month, day,
+ (PyObject* )Py_TYPE(date));
return result;
}
@@ -3155,7 +3155,7 @@ date_repr(PyDateTime_Date *self)
}
static PyObject *
-date_isoformat(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
+date_isoformat(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
{
return PyUnicode_FromFormat("%04d-%02d-%02d",
GET_YEAR(self), GET_MONTH(self), GET_DAY(self));
@@ -3165,12 +3165,12 @@ date_isoformat(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
static PyObject *
date_str(PyDateTime_Date *self)
{
- return _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_isoformat);
+ return _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_isoformat);
}
static PyObject *
-date_ctime(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
+date_ctime(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
{
return format_ctime(self, 0, 0, 0);
}
@@ -3191,7 +3191,7 @@ date_strftime(PyDateTime_Date *self, PyObject *args, PyObject *kw)
&format))
return NULL;
- tuple = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_timetuple);
+ tuple = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_timetuple);
if (tuple == NULL)
return NULL;
result = wrap_strftime((PyObject *)self, format, tuple,
@@ -3212,152 +3212,152 @@ date_format(PyDateTime_Date *self, PyObject *args)
if (PyUnicode_GetLength(format) == 0)
return PyObject_Str((PyObject *)self);
- return _PyObject_CallMethodIdOneArg((PyObject *)self, &PyId_strftime,
- format);
+ return _PyObject_CallMethodIdOneArg((PyObject *)self, &PyId_strftime,
+ format);
}
/* ISO methods. */
static PyObject *
-date_isoweekday(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
+date_isoweekday(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
{
int dow = weekday(GET_YEAR(self), GET_MONTH(self), GET_DAY(self));
return PyLong_FromLong(dow + 1);
}
-PyDoc_STRVAR(iso_calendar_date__doc__,
-"The result of date.isocalendar() or datetime.isocalendar()\n\n\
-This object may be accessed either as a tuple of\n\
- ((year, week, weekday)\n\
-or via the object attributes as named in the above tuple.");
-
-typedef struct {
- PyTupleObject tuple;
-} PyDateTime_IsoCalendarDate;
-
-static PyObject *
-iso_calendar_date_repr(PyDateTime_IsoCalendarDate *self)
-{
- PyObject* year = PyTuple_GetItem((PyObject *)self, 0);
- if (year == NULL) {
- return NULL;
- }
- PyObject* week = PyTuple_GetItem((PyObject *)self, 1);
- if (week == NULL) {
- return NULL;
- }
- PyObject* weekday = PyTuple_GetItem((PyObject *)self, 2);
- if (weekday == NULL) {
- return NULL;
- }
-
- return PyUnicode_FromFormat("%.200s(year=%S, week=%S, weekday=%S)",
- Py_TYPE(self)->tp_name, year, week, weekday);
-}
-
-static PyObject *
-iso_calendar_date_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- // Construct the tuple that this reduces to
- PyObject * reduce_tuple = Py_BuildValue(
- "O((OOO))", &PyTuple_Type,
- PyTuple_GET_ITEM(self, 0),
- PyTuple_GET_ITEM(self, 1),
- PyTuple_GET_ITEM(self, 2)
- );
-
- return reduce_tuple;
-}
-
-static PyObject *
-iso_calendar_date_year(PyDateTime_IsoCalendarDate *self, void *unused)
-{
- PyObject *year = PyTuple_GetItem((PyObject *)self, 0);
- if (year == NULL) {
- return NULL;
- }
- Py_INCREF(year);
- return year;
-}
-
-static PyObject *
-iso_calendar_date_week(PyDateTime_IsoCalendarDate *self, void *unused)
-{
- PyObject *week = PyTuple_GetItem((PyObject *)self, 1);
- if (week == NULL) {
- return NULL;
- }
- Py_INCREF(week);
- return week;
-}
-
-static PyObject *
-iso_calendar_date_weekday(PyDateTime_IsoCalendarDate *self, void *unused)
-{
- PyObject *weekday = PyTuple_GetItem((PyObject *)self, 2);
- if (weekday == NULL) {
- return NULL;
- }
- Py_INCREF(weekday);
- return weekday;
-}
-
-static PyGetSetDef iso_calendar_date_getset[] = {
- {"year", (getter)iso_calendar_date_year},
- {"week", (getter)iso_calendar_date_week},
- {"weekday", (getter)iso_calendar_date_weekday},
- {NULL}
-};
-
-static PyMethodDef iso_calendar_date_methods[] = {
- {"__reduce__", (PyCFunction)iso_calendar_date_reduce, METH_NOARGS,
- PyDoc_STR("__reduce__() -> (cls, state)")},
- {NULL, NULL},
-};
-
-static PyTypeObject PyDateTime_IsoCalendarDateType = {
- PyVarObject_HEAD_INIT(NULL, 0)
- .tp_name = "datetime.IsoCalendarDate",
- .tp_basicsize = sizeof(PyDateTime_IsoCalendarDate),
- .tp_repr = (reprfunc) iso_calendar_date_repr,
- .tp_flags = Py_TPFLAGS_DEFAULT,
- .tp_doc = iso_calendar_date__doc__,
- .tp_methods = iso_calendar_date_methods,
- .tp_getset = iso_calendar_date_getset,
- // .tp_base = &PyTuple_Type, // filled in PyInit__datetime
- .tp_new = iso_calendar_date_new,
-};
-
-/*[clinic input]
-@classmethod
-datetime.IsoCalendarDate.__new__ as iso_calendar_date_new
- year: int
- week: int
- weekday: int
-[clinic start generated code]*/
-
-static PyObject *
-iso_calendar_date_new_impl(PyTypeObject *type, int year, int week,
- int weekday)
-/*[clinic end generated code: output=383d33d8dc7183a2 input=4f2c663c9d19c4ee]*/
-
-{
- PyDateTime_IsoCalendarDate *self;
- self = (PyDateTime_IsoCalendarDate *) type->tp_alloc(type, 3);
- if (self == NULL) {
- return NULL;
- }
-
- PyTuple_SET_ITEM(self, 0, PyLong_FromLong(year));
- PyTuple_SET_ITEM(self, 1, PyLong_FromLong(week));
- PyTuple_SET_ITEM(self, 2, PyLong_FromLong(weekday));
-
- return (PyObject *)self;
-}
-
-static PyObject *
-date_isocalendar(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
+PyDoc_STRVAR(iso_calendar_date__doc__,
+"The result of date.isocalendar() or datetime.isocalendar()\n\n\
+This object may be accessed either as a tuple of\n\
+ ((year, week, weekday)\n\
+or via the object attributes as named in the above tuple.");
+
+typedef struct {
+ PyTupleObject tuple;
+} PyDateTime_IsoCalendarDate;
+
+static PyObject *
+iso_calendar_date_repr(PyDateTime_IsoCalendarDate *self)
+{
+ PyObject* year = PyTuple_GetItem((PyObject *)self, 0);
+ if (year == NULL) {
+ return NULL;
+ }
+ PyObject* week = PyTuple_GetItem((PyObject *)self, 1);
+ if (week == NULL) {
+ return NULL;
+ }
+ PyObject* weekday = PyTuple_GetItem((PyObject *)self, 2);
+ if (weekday == NULL) {
+ return NULL;
+ }
+
+ return PyUnicode_FromFormat("%.200s(year=%S, week=%S, weekday=%S)",
+ Py_TYPE(self)->tp_name, year, week, weekday);
+}
+
+static PyObject *
+iso_calendar_date_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ // Construct the tuple that this reduces to
+ PyObject * reduce_tuple = Py_BuildValue(
+ "O((OOO))", &PyTuple_Type,
+ PyTuple_GET_ITEM(self, 0),
+ PyTuple_GET_ITEM(self, 1),
+ PyTuple_GET_ITEM(self, 2)
+ );
+
+ return reduce_tuple;
+}
+
+static PyObject *
+iso_calendar_date_year(PyDateTime_IsoCalendarDate *self, void *unused)
+{
+ PyObject *year = PyTuple_GetItem((PyObject *)self, 0);
+ if (year == NULL) {
+ return NULL;
+ }
+ Py_INCREF(year);
+ return year;
+}
+
+static PyObject *
+iso_calendar_date_week(PyDateTime_IsoCalendarDate *self, void *unused)
+{
+ PyObject *week = PyTuple_GetItem((PyObject *)self, 1);
+ if (week == NULL) {
+ return NULL;
+ }
+ Py_INCREF(week);
+ return week;
+}
+
+static PyObject *
+iso_calendar_date_weekday(PyDateTime_IsoCalendarDate *self, void *unused)
+{
+ PyObject *weekday = PyTuple_GetItem((PyObject *)self, 2);
+ if (weekday == NULL) {
+ return NULL;
+ }
+ Py_INCREF(weekday);
+ return weekday;
+}
+
+static PyGetSetDef iso_calendar_date_getset[] = {
+ {"year", (getter)iso_calendar_date_year},
+ {"week", (getter)iso_calendar_date_week},
+ {"weekday", (getter)iso_calendar_date_weekday},
+ {NULL}
+};
+
+static PyMethodDef iso_calendar_date_methods[] = {
+ {"__reduce__", (PyCFunction)iso_calendar_date_reduce, METH_NOARGS,
+ PyDoc_STR("__reduce__() -> (cls, state)")},
+ {NULL, NULL},
+};
+
+static PyTypeObject PyDateTime_IsoCalendarDateType = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ .tp_name = "datetime.IsoCalendarDate",
+ .tp_basicsize = sizeof(PyDateTime_IsoCalendarDate),
+ .tp_repr = (reprfunc) iso_calendar_date_repr,
+ .tp_flags = Py_TPFLAGS_DEFAULT,
+ .tp_doc = iso_calendar_date__doc__,
+ .tp_methods = iso_calendar_date_methods,
+ .tp_getset = iso_calendar_date_getset,
+ // .tp_base = &PyTuple_Type, // filled in PyInit__datetime
+ .tp_new = iso_calendar_date_new,
+};
+
+/*[clinic input]
+@classmethod
+datetime.IsoCalendarDate.__new__ as iso_calendar_date_new
+ year: int
+ week: int
+ weekday: int
+[clinic start generated code]*/
+
+static PyObject *
+iso_calendar_date_new_impl(PyTypeObject *type, int year, int week,
+ int weekday)
+/*[clinic end generated code: output=383d33d8dc7183a2 input=4f2c663c9d19c4ee]*/
+
+{
+ PyDateTime_IsoCalendarDate *self;
+ self = (PyDateTime_IsoCalendarDate *) type->tp_alloc(type, 3);
+ if (self == NULL) {
+ return NULL;
+ }
+
+ PyTuple_SET_ITEM(self, 0, PyLong_FromLong(year));
+ PyTuple_SET_ITEM(self, 1, PyLong_FromLong(week));
+ PyTuple_SET_ITEM(self, 2, PyLong_FromLong(weekday));
+
+ return (PyObject *)self;
+}
+
+static PyObject *
+date_isocalendar(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
{
int year = GET_YEAR(self);
int week1_monday = iso_week1_monday(year);
@@ -3375,13 +3375,13 @@ date_isocalendar(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
++year;
week = 0;
}
-
- PyObject* v = iso_calendar_date_new_impl(&PyDateTime_IsoCalendarDateType,
- year, week + 1, day + 1);
- if (v == NULL) {
- return NULL;
- }
- return v;
+
+ PyObject* v = iso_calendar_date_new_impl(&PyDateTime_IsoCalendarDateType,
+ year, week + 1, day + 1);
+ if (v == NULL) {
+ return NULL;
+ }
+ return v;
}
/* Miscellaneous methods. */
@@ -3400,7 +3400,7 @@ date_richcompare(PyObject *self, PyObject *other, int op)
}
static PyObject *
-date_timetuple(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
+date_timetuple(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
{
return build_struct_time(GET_YEAR(self),
GET_MONTH(self),
@@ -3449,14 +3449,14 @@ date_hash(PyDateTime_Date *self)
}
static PyObject *
-date_toordinal(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
+date_toordinal(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromLong(ymd_to_ord(GET_YEAR(self), GET_MONTH(self),
GET_DAY(self)));
}
static PyObject *
-date_weekday(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
+date_weekday(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
{
int dow = weekday(GET_YEAR(self), GET_MONTH(self), GET_DAY(self));
@@ -3484,7 +3484,7 @@ date_reduce(PyDateTime_Date *self, PyObject *arg)
static PyMethodDef date_methods[] = {
/* Class methods: */
- DATETIME_DATE_FROMTIMESTAMP_METHODDEF
+ DATETIME_DATE_FROMTIMESTAMP_METHODDEF
{"fromordinal", (PyCFunction)date_fromordinal, METH_VARARGS |
METH_CLASS,
@@ -3495,12 +3495,12 @@ static PyMethodDef date_methods[] = {
METH_CLASS,
PyDoc_STR("str -> Construct a date from the output of date.isoformat()")},
- {"fromisocalendar", (PyCFunction)(void(*)(void))date_fromisocalendar,
- METH_VARARGS | METH_KEYWORDS | METH_CLASS,
- PyDoc_STR("int, int, int -> Construct a date from the ISO year, week "
- "number and weekday.\n\n"
- "This is the inverse of the date.isocalendar() function")},
-
+ {"fromisocalendar", (PyCFunction)(void(*)(void))date_fromisocalendar,
+ METH_VARARGS | METH_KEYWORDS | METH_CLASS,
+ PyDoc_STR("int, int, int -> Construct a date from the ISO year, week "
+ "number and weekday.\n\n"
+ "This is the inverse of the date.isocalendar() function")},
+
{"today", (PyCFunction)date_today, METH_NOARGS | METH_CLASS,
PyDoc_STR("Current date or datetime: same as "
"self.__class__.fromtimestamp(time.time()).")},
@@ -3510,7 +3510,7 @@ static PyMethodDef date_methods[] = {
{"ctime", (PyCFunction)date_ctime, METH_NOARGS,
PyDoc_STR("Return ctime() style string.")},
- {"strftime", (PyCFunction)(void(*)(void))date_strftime, METH_VARARGS | METH_KEYWORDS,
+ {"strftime", (PyCFunction)(void(*)(void))date_strftime, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("format -> strftime() style string.")},
{"__format__", (PyCFunction)date_format, METH_VARARGS,
@@ -3520,7 +3520,7 @@ static PyMethodDef date_methods[] = {
PyDoc_STR("Return time tuple, compatible with time.localtime().")},
{"isocalendar", (PyCFunction)date_isocalendar, METH_NOARGS,
- PyDoc_STR("Return a named tuple containing ISO year, week number, and "
+ PyDoc_STR("Return a named tuple containing ISO year, week number, and "
"weekday.")},
{"isoformat", (PyCFunction)date_isoformat, METH_NOARGS,
@@ -3538,7 +3538,7 @@ static PyMethodDef date_methods[] = {
PyDoc_STR("Return the day of the week represented by the date.\n"
"Monday == 0 ... Sunday == 6")},
- {"replace", (PyCFunction)(void(*)(void))date_replace, METH_VARARGS | METH_KEYWORDS,
+ {"replace", (PyCFunction)(void(*)(void))date_replace, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("Return date with new specified fields.")},
{"__reduce__", (PyCFunction)date_reduce, METH_NOARGS,
@@ -3569,10 +3569,10 @@ static PyTypeObject PyDateTime_DateType = {
sizeof(PyDateTime_Date), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)date_repr, /* tp_repr */
&date_as_number, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3737,33 +3737,33 @@ Fail:
*/
static PyObject *
-tzinfo_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))
+tzinfo_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *args, *state;
PyObject *getinitargs, *getstate;
_Py_IDENTIFIER(__getinitargs__);
_Py_IDENTIFIER(__getstate__);
- if (_PyObject_LookupAttrId(self, &PyId___getinitargs__, &getinitargs) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(self, &PyId___getinitargs__, &getinitargs) < 0) {
+ return NULL;
+ }
if (getinitargs != NULL) {
- args = PyObject_CallNoArgs(getinitargs);
+ args = PyObject_CallNoArgs(getinitargs);
Py_DECREF(getinitargs);
}
else {
args = PyTuple_New(0);
}
- if (args == NULL) {
- return NULL;
- }
+ if (args == NULL) {
+ return NULL;
+ }
- if (_PyObject_LookupAttrId(self, &PyId___getstate__, &getstate) < 0) {
- Py_DECREF(args);
- return NULL;
- }
+ if (_PyObject_LookupAttrId(self, &PyId___getstate__, &getstate) < 0) {
+ Py_DECREF(args);
+ return NULL;
+ }
if (getstate != NULL) {
- state = PyObject_CallNoArgs(getstate);
+ state = PyObject_CallNoArgs(getstate);
Py_DECREF(getstate);
if (state == NULL) {
Py_DECREF(args);
@@ -3803,7 +3803,7 @@ static PyMethodDef tzinfo_methods[] = {
{"fromutc", (PyCFunction)tzinfo_fromutc, METH_O,
PyDoc_STR("datetime in UTC -> datetime in local time.")},
- {"__reduce__", tzinfo_reduce, METH_NOARGS,
+ {"__reduce__", tzinfo_reduce, METH_NOARGS,
PyDoc_STR("-> (cls, state)")},
{NULL, NULL}
@@ -3818,10 +3818,10 @@ static PyTypeObject PyDateTime_TZInfoType = {
sizeof(PyDateTime_TZInfo), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3882,8 +3882,8 @@ timezone_richcompare(PyDateTime_TimeZone *self,
{
if (op != Py_EQ && op != Py_NE)
Py_RETURN_NOTIMPLEMENTED;
- if (!PyTimezone_Check(other)) {
- Py_RETURN_NOTIMPLEMENTED;
+ if (!PyTimezone_Check(other)) {
+ Py_RETURN_NOTIMPLEMENTED;
}
return delta_richcompare(self->offset, other->offset, op);
}
@@ -4018,7 +4018,7 @@ timezone_fromutc(PyDateTime_TimeZone *self, PyDateTime_DateTime *dt)
}
static PyObject *
-timezone_getinitargs(PyDateTime_TimeZone *self, PyObject *Py_UNUSED(ignored))
+timezone_getinitargs(PyDateTime_TimeZone *self, PyObject *Py_UNUSED(ignored))
{
if (self->name == NULL)
return Py_BuildValue("(O)", self->offset);
@@ -4054,10 +4054,10 @@ static PyTypeObject PyDateTime_TimeZoneType = {
sizeof(PyDateTime_TimeZone), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)timezone_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)timezone_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4079,7 +4079,7 @@ static PyTypeObject PyDateTime_TimeZoneType = {
timezone_methods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
- 0, /* tp_base; filled in PyInit__datetime */
+ 0, /* tp_base; filled in PyInit__datetime */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
@@ -4214,7 +4214,7 @@ time_new(PyTypeObject *type, PyObject *args, PyObject *kw)
return NULL;
}
if (PyUnicode_GET_LENGTH(state) == _PyDateTime_TIME_DATASIZE &&
- (0x7F & PyUnicode_READ_CHAR(state, 0)) < 24)
+ (0x7F & PyUnicode_READ_CHAR(state, 0)) < 24)
{
state = PyUnicode_AsLatin1String(state);
if (state == NULL) {
@@ -4310,18 +4310,18 @@ time_repr(PyDateTime_Time *self)
static PyObject *
time_str(PyDateTime_Time *self)
{
- return _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_isoformat);
+ return _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_isoformat);
}
static PyObject *
time_isoformat(PyDateTime_Time *self, PyObject *args, PyObject *kw)
{
char buf[100];
- const char *timespec = NULL;
+ const char *timespec = NULL;
static char *keywords[] = {"timespec", NULL};
PyObject *result;
int us = TIME_GET_MICROSECOND(self);
- static const char *specs[][2] = {
+ static const char *specs[][2] = {
{"hours", "%02d"},
{"minutes", "%02d:%02d"},
{"seconds", "%02d:%02d:%02d"},
@@ -4670,15 +4670,15 @@ time_reduce(PyDateTime_Time *self, PyObject *arg)
static PyMethodDef time_methods[] = {
- {"isoformat", (PyCFunction)(void(*)(void))time_isoformat, METH_VARARGS | METH_KEYWORDS,
+ {"isoformat", (PyCFunction)(void(*)(void))time_isoformat, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("Return string in ISO 8601 format, [HH[:MM[:SS[.mmm[uuu]]]]]"
"[+HH:MM].\n\n"
- "The optional argument timespec specifies the number "
- "of additional terms\nof the time to include. Valid "
- "options are 'auto', 'hours', 'minutes',\n'seconds', "
- "'milliseconds' and 'microseconds'.\n")},
+ "The optional argument timespec specifies the number "
+ "of additional terms\nof the time to include. Valid "
+ "options are 'auto', 'hours', 'minutes',\n'seconds', "
+ "'milliseconds' and 'microseconds'.\n")},
- {"strftime", (PyCFunction)(void(*)(void))time_strftime, METH_VARARGS | METH_KEYWORDS,
+ {"strftime", (PyCFunction)(void(*)(void))time_strftime, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("format -> strftime() style string.")},
{"__format__", (PyCFunction)date_format, METH_VARARGS,
@@ -4693,7 +4693,7 @@ static PyMethodDef time_methods[] = {
{"dst", (PyCFunction)time_dst, METH_NOARGS,
PyDoc_STR("Return self.tzinfo.dst(self).")},
- {"replace", (PyCFunction)(void(*)(void))time_replace, METH_VARARGS | METH_KEYWORDS,
+ {"replace", (PyCFunction)(void(*)(void))time_replace, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("Return time with new specified fields.")},
{"fromisoformat", (PyCFunction)time_fromisoformat, METH_O | METH_CLASS,
@@ -4720,10 +4720,10 @@ static PyTypeObject PyDateTime_TimeType = {
sizeof(PyDateTime_Time), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)time_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)time_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -5388,10 +5388,10 @@ add_datetime_timedelta(PyDateTime_DateTime *date, PyDateTime_Delta *delta,
return NULL;
}
- return new_datetime_subclass_ex(year, month, day,
- hour, minute, second, microsecond,
- HASTZINFO(date) ? date->tzinfo : Py_None,
- (PyObject *)Py_TYPE(date));
+ return new_datetime_subclass_ex(year, month, day,
+ hour, minute, second, microsecond,
+ HASTZINFO(date) ? date->tzinfo : Py_None,
+ (PyObject *)Py_TYPE(date));
}
static PyObject *
@@ -5556,7 +5556,7 @@ datetime_isoformat(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
char buffer[100];
PyObject *result = NULL;
int us = DATE_GET_MICROSECOND(self);
- static const char *specs[][2] = {
+ static const char *specs[][2] = {
{"hours", "%04d-%02d-%02d%c%02d"},
{"minutes", "%04d-%02d-%02d%c%02d:%02d"},
{"seconds", "%04d-%02d-%02d%c%02d:%02d:%02d"},
@@ -5615,7 +5615,7 @@ datetime_isoformat(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
}
static PyObject *
-datetime_ctime(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
+datetime_ctime(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
{
return format_ctime((PyDateTime_Date *)self,
DATE_GET_HOUR(self),
@@ -6098,14 +6098,14 @@ datetime_astimezone(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
temp = (PyObject *)result;
result = (PyDateTime_DateTime *)
- _PyObject_CallMethodIdOneArg(tzinfo, &PyId_fromutc, temp);
+ _PyObject_CallMethodIdOneArg(tzinfo, &PyId_fromutc, temp);
Py_DECREF(temp);
return result;
}
static PyObject *
-datetime_timetuple(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
+datetime_timetuple(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
{
int dstflag = -1;
@@ -6180,7 +6180,7 @@ local_to_seconds(int year, int month, int day,
#define EPOCH_SECONDS (719163LL * 24 * 60 * 60)
static PyObject *
-datetime_timestamp(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
+datetime_timestamp(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
{
PyObject *result;
@@ -6189,7 +6189,7 @@ datetime_timestamp(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
delta = datetime_subtract((PyObject *)self, PyDateTime_Epoch);
if (delta == NULL)
return NULL;
- result = delta_total_seconds(delta, NULL);
+ result = delta_total_seconds(delta, NULL);
Py_DECREF(delta);
}
else {
@@ -6210,7 +6210,7 @@ datetime_timestamp(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-datetime_getdate(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
+datetime_getdate(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
{
return new_date(GET_YEAR(self),
GET_MONTH(self),
@@ -6218,7 +6218,7 @@ datetime_getdate(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-datetime_gettime(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
+datetime_gettime(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
{
return new_time(DATE_GET_HOUR(self),
DATE_GET_MINUTE(self),
@@ -6229,7 +6229,7 @@ datetime_gettime(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-datetime_gettimetz(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
+datetime_gettimetz(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
{
return new_time(DATE_GET_HOUR(self),
DATE_GET_MINUTE(self),
@@ -6240,7 +6240,7 @@ datetime_gettimetz(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-datetime_utctimetuple(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
+datetime_utctimetuple(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))
{
int y, m, d, hh, mm, ss;
PyObject *tzinfo;
@@ -6334,7 +6334,7 @@ static PyMethodDef datetime_methods[] = {
METH_NOARGS | METH_CLASS,
PyDoc_STR("Return a new datetime representing UTC day and time.")},
- {"fromtimestamp", (PyCFunction)(void(*)(void))datetime_fromtimestamp,
+ {"fromtimestamp", (PyCFunction)(void(*)(void))datetime_fromtimestamp,
METH_VARARGS | METH_KEYWORDS | METH_CLASS,
PyDoc_STR("timestamp[, tz] -> tz's local time from POSIX timestamp.")},
@@ -6347,7 +6347,7 @@ static PyMethodDef datetime_methods[] = {
PyDoc_STR("string, format -> new datetime parsed from a string "
"(like time.strptime()).")},
- {"combine", (PyCFunction)(void(*)(void))datetime_combine,
+ {"combine", (PyCFunction)(void(*)(void))datetime_combine,
METH_VARARGS | METH_KEYWORDS | METH_CLASS,
PyDoc_STR("date, time -> datetime with same date and time fields")},
@@ -6378,15 +6378,15 @@ static PyMethodDef datetime_methods[] = {
{"utctimetuple", (PyCFunction)datetime_utctimetuple, METH_NOARGS,
PyDoc_STR("Return UTC time tuple, compatible with time.localtime().")},
- {"isoformat", (PyCFunction)(void(*)(void))datetime_isoformat, METH_VARARGS | METH_KEYWORDS,
+ {"isoformat", (PyCFunction)(void(*)(void))datetime_isoformat, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("[sep] -> string in ISO 8601 format, "
"YYYY-MM-DDT[HH[:MM[:SS[.mmm[uuu]]]]][+HH:MM].\n"
"sep is used to separate the year from the time, and "
"defaults to 'T'.\n"
- "The optional argument timespec specifies the number "
- "of additional terms\nof the time to include. Valid "
- "options are 'auto', 'hours', 'minutes',\n'seconds', "
- "'milliseconds' and 'microseconds'.\n")},
+ "The optional argument timespec specifies the number "
+ "of additional terms\nof the time to include. Valid "
+ "options are 'auto', 'hours', 'minutes',\n'seconds', "
+ "'milliseconds' and 'microseconds'.\n")},
{"utcoffset", (PyCFunction)datetime_utcoffset, METH_NOARGS,
PyDoc_STR("Return self.tzinfo.utcoffset(self).")},
@@ -6397,10 +6397,10 @@ static PyMethodDef datetime_methods[] = {
{"dst", (PyCFunction)datetime_dst, METH_NOARGS,
PyDoc_STR("Return self.tzinfo.dst(self).")},
- {"replace", (PyCFunction)(void(*)(void))datetime_replace, METH_VARARGS | METH_KEYWORDS,
+ {"replace", (PyCFunction)(void(*)(void))datetime_replace, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("Return datetime with new specified fields.")},
- {"astimezone", (PyCFunction)(void(*)(void))datetime_astimezone, METH_VARARGS | METH_KEYWORDS,
+ {"astimezone", (PyCFunction)(void(*)(void))datetime_astimezone, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("tz -> convert to local time in new timezone tz\n")},
{"__reduce_ex__", (PyCFunction)datetime_reduce_ex, METH_VARARGS,
@@ -6437,10 +6437,10 @@ static PyTypeObject PyDateTime_DateTimeType = {
sizeof(PyDateTime_DateTime), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)datetime_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)datetime_repr, /* tp_repr */
&datetime_as_number, /* tp_as_number */
0, /* tp_as_sequence */
@@ -6462,8 +6462,8 @@ static PyTypeObject PyDateTime_DateTimeType = {
datetime_methods, /* tp_methods */
0, /* tp_members */
datetime_getset, /* tp_getset */
- 0, /* tp_base; filled in
- PyInit__datetime */
+ 0, /* tp_base; filled in
+ PyInit__datetime */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
@@ -6498,7 +6498,7 @@ static PyDateTime_CAPI CAPI = {
new_delta_ex,
new_timezone,
datetime_fromtimestamp,
- datetime_date_fromtimestamp_capi,
+ datetime_date_fromtimestamp_capi,
new_datetime_ex2,
new_time_ex2
};
@@ -6529,32 +6529,32 @@ PyInit__datetime(void)
if (m == NULL)
return NULL;
- // `&...` is not a constant expression according to a strict reading
- // of C standards. Fill tp_base at run-time rather than statically.
- // See https://bugs.python.org/issue40777
- PyDateTime_IsoCalendarDateType.tp_base = &PyTuple_Type;
- PyDateTime_TimeZoneType.tp_base = &PyDateTime_TZInfoType;
- PyDateTime_DateTimeType.tp_base = &PyDateTime_DateType;
-
- PyTypeObject *types[] = {
- &PyDateTime_DateType,
- &PyDateTime_DateTimeType,
- &PyDateTime_TimeType,
- &PyDateTime_DeltaType,
- &PyDateTime_TZInfoType,
- &PyDateTime_TimeZoneType,
- };
-
- for (size_t i = 0; i < Py_ARRAY_LENGTH(types); i++) {
- if (PyModule_AddType(m, types[i]) < 0) {
- return NULL;
- }
- }
-
- if (PyType_Ready(&PyDateTime_IsoCalendarDateType) < 0) {
- return NULL;
- }
- Py_INCREF(&PyDateTime_IsoCalendarDateType);
+ // `&...` is not a constant expression according to a strict reading
+ // of C standards. Fill tp_base at run-time rather than statically.
+ // See https://bugs.python.org/issue40777
+ PyDateTime_IsoCalendarDateType.tp_base = &PyTuple_Type;
+ PyDateTime_TimeZoneType.tp_base = &PyDateTime_TZInfoType;
+ PyDateTime_DateTimeType.tp_base = &PyDateTime_DateType;
+
+ PyTypeObject *types[] = {
+ &PyDateTime_DateType,
+ &PyDateTime_DateTimeType,
+ &PyDateTime_TimeType,
+ &PyDateTime_DeltaType,
+ &PyDateTime_TZInfoType,
+ &PyDateTime_TimeZoneType,
+ };
+
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(types); i++) {
+ if (PyModule_AddType(m, types[i]) < 0) {
+ return NULL;
+ }
+ }
+
+ if (PyType_Ready(&PyDateTime_IsoCalendarDateType) < 0) {
+ return NULL;
+ }
+ Py_INCREF(&PyDateTime_IsoCalendarDateType);
/* timedelta values */
d = PyDateTime_DeltaType.tp_dict;
@@ -6641,9 +6641,9 @@ PyInit__datetime(void)
PyDateTime_TimeZone_UTC = x;
CAPI.TimeZone_UTC = PyDateTime_TimeZone_UTC;
- /* bpo-37642: These attributes are rounded to the nearest minute for backwards
- * compatibility, even though the constructor will accept a wider range of
- * values. This may change in the future.*/
+ /* bpo-37642: These attributes are rounded to the nearest minute for backwards
+ * compatibility, even though the constructor will accept a wider range of
+ * values. This may change in the future.*/
delta = new_delta(-1, 60, 0, 1); /* -23:59 */
if (delta == NULL)
return NULL;
diff --git a/contrib/tools/python3/src/Modules/_decimal/_decimal.c b/contrib/tools/python3/src/Modules/_decimal/_decimal.c
index 0aec963f04..d80d791550 100644
--- a/contrib/tools/python3/src/Modules/_decimal/_decimal.c
+++ b/contrib/tools/python3/src/Modules/_decimal/_decimal.c
@@ -36,8 +36,8 @@
#include "docstrings.h"
-#if !defined(MPD_VERSION_HEX) || MPD_VERSION_HEX < 0x02050000
- #error "libmpdec version >= 2.5.0 required"
+#if !defined(MPD_VERSION_HEX) || MPD_VERSION_HEX < 0x02050000
+ #error "libmpdec version >= 2.5.0 required"
#endif
@@ -56,11 +56,11 @@
#define BOUNDS_CHECK(x, MIN, MAX) x = (x < MIN || MAX < x) ? MAX : x
-#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
- #define UNUSED __attribute__((unused))
-#else
- #define UNUSED
-#endif
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
+ #define UNUSED __attribute__((unused))
+#else
+ #define UNUSED
+#endif
/* _Py_DEC_MINALLOC >= MPD_MINALLOC */
#define _Py_DEC_MINALLOC 4
@@ -99,9 +99,9 @@ static PyTypeObject PyDec_Type;
static PyTypeObject *PyDecSignalDict_Type;
static PyTypeObject PyDecContext_Type;
static PyTypeObject PyDecContextManager_Type;
-#define PyDec_CheckExact(v) Py_IS_TYPE(v, &PyDec_Type)
+#define PyDec_CheckExact(v) Py_IS_TYPE(v, &PyDec_Type)
#define PyDec_Check(v) PyObject_TypeCheck(v, &PyDec_Type)
-#define PyDecSignalDict_Check(v) Py_IS_TYPE(v, PyDecSignalDict_Type)
+#define PyDecSignalDict_Check(v) Py_IS_TYPE(v, PyDecSignalDict_Type)
#define PyDecContext_Check(v) PyObject_TypeCheck(v, &PyDecContext_Type)
#define MPD(v) (&((PyDecObject *)v)->dec)
#define SdFlagAddr(v) (((PyDecSignalDictObject *)v)->flags)
@@ -125,14 +125,14 @@ incr_false(void)
}
-#ifndef WITH_DECIMAL_CONTEXTVAR
-/* Key for thread state dictionary */
-static PyObject *tls_context_key = NULL;
-/* Invariant: NULL or the most recently accessed thread local context */
-static PyDecContextObject *cached_context = NULL;
-#else
-static PyObject *current_context_var = NULL;
-#endif
+#ifndef WITH_DECIMAL_CONTEXTVAR
+/* Key for thread state dictionary */
+static PyObject *tls_context_key = NULL;
+/* Invariant: NULL or the most recently accessed thread local context */
+static PyDecContextObject *cached_context = NULL;
+#else
+static PyObject *current_context_var = NULL;
+#endif
/* Template for creating new thread contexts, calling Context() without
* arguments and initializing the module_context on first access. */
@@ -682,10 +682,10 @@ static PyTypeObject PyDecSignalDictMixin_Type =
sizeof(PyDecSignalDictObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
(getattrfunc) 0, /* tp_getattr */
(setattrfunc) 0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc) signaldict_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -696,7 +696,7 @@ static PyTypeObject PyDecSignalDictMixin_Type =
PyObject_GenericGetAttr, /* tp_getattro */
(setattrofunc) 0, /* tp_setattro */
(PyBufferProcs *) 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
+ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
0, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
@@ -1226,12 +1226,12 @@ context_new(PyTypeObject *type, PyObject *args UNUSED, PyObject *kwds UNUSED)
static void
context_dealloc(PyDecContextObject *self)
{
-#ifndef WITH_DECIMAL_CONTEXTVAR
- if (self == cached_context) {
- cached_context = NULL;
- }
-#endif
-
+#ifndef WITH_DECIMAL_CONTEXTVAR
+ if (self == cached_context) {
+ cached_context = NULL;
+ }
+#endif
+
Py_XDECREF(self->traps);
Py_XDECREF(self->flags);
Py_TYPE(self)->tp_free(self);
@@ -1506,135 +1506,135 @@ static PyGetSetDef context_getsets [] =
* operation.
*/
-#ifndef WITH_DECIMAL_CONTEXTVAR
-/* Get the context from the thread state dictionary. */
+#ifndef WITH_DECIMAL_CONTEXTVAR
+/* Get the context from the thread state dictionary. */
+static PyObject *
+current_context_from_dict(void)
+{
+ PyObject *dict;
+ PyObject *tl_context;
+ PyThreadState *tstate;
+
+ dict = PyThreadState_GetDict();
+ if (dict == NULL) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "cannot get thread state");
+ return NULL;
+ }
+
+ tl_context = PyDict_GetItemWithError(dict, tls_context_key);
+ if (tl_context != NULL) {
+ /* We already have a thread local context. */
+ CONTEXT_CHECK(tl_context);
+ }
+ else {
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+
+ /* Set up a new thread local context. */
+ tl_context = context_copy(default_context_template, NULL);
+ if (tl_context == NULL) {
+ return NULL;
+ }
+ CTX(tl_context)->status = 0;
+
+ if (PyDict_SetItem(dict, tls_context_key, tl_context) < 0) {
+ Py_DECREF(tl_context);
+ return NULL;
+ }
+ Py_DECREF(tl_context);
+ }
+
+ /* Cache the context of the current thread, assuming that it
+ * will be accessed several times before a thread switch. */
+ tstate = PyThreadState_GET();
+ if (tstate) {
+ cached_context = (PyDecContextObject *)tl_context;
+ cached_context->tstate = tstate;
+ }
+
+ /* Borrowed reference with refcount==1 */
+ return tl_context;
+}
+
+/* Return borrowed reference to thread local context. */
+static PyObject *
+current_context(void)
+{
+ PyThreadState *tstate;
+
+ tstate = PyThreadState_GET();
+ if (cached_context && cached_context->tstate == tstate) {
+ return (PyObject *)cached_context;
+ }
+
+ return current_context_from_dict();
+}
+
+/* ctxobj := borrowed reference to the current context */
+#define CURRENT_CONTEXT(ctxobj) \
+ ctxobj = current_context(); \
+ if (ctxobj == NULL) { \
+ return NULL; \
+ }
+
+/* Return a new reference to the current context */
+static PyObject *
+PyDec_GetCurrentContext(PyObject *self UNUSED, PyObject *args UNUSED)
+{
+ PyObject *context;
+
+ context = current_context();
+ if (context == NULL) {
+ return NULL;
+ }
+
+ Py_INCREF(context);
+ return context;
+}
+
+/* Set the thread local context to a new context, decrement old reference */
+static PyObject *
+PyDec_SetCurrentContext(PyObject *self UNUSED, PyObject *v)
+{
+ PyObject *dict;
+
+ CONTEXT_CHECK(v);
+
+ dict = PyThreadState_GetDict();
+ if (dict == NULL) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "cannot get thread state");
+ return NULL;
+ }
+
+ /* If the new context is one of the templates, make a copy.
+ * This is the current behavior of decimal.py. */
+ if (v == default_context_template ||
+ v == basic_context_template ||
+ v == extended_context_template) {
+ v = context_copy(v, NULL);
+ if (v == NULL) {
+ return NULL;
+ }
+ CTX(v)->status = 0;
+ }
+ else {
+ Py_INCREF(v);
+ }
+
+ cached_context = NULL;
+ if (PyDict_SetItem(dict, tls_context_key, v) < 0) {
+ Py_DECREF(v);
+ return NULL;
+ }
+
+ Py_DECREF(v);
+ Py_RETURN_NONE;
+}
+#else
static PyObject *
-current_context_from_dict(void)
-{
- PyObject *dict;
- PyObject *tl_context;
- PyThreadState *tstate;
-
- dict = PyThreadState_GetDict();
- if (dict == NULL) {
- PyErr_SetString(PyExc_RuntimeError,
- "cannot get thread state");
- return NULL;
- }
-
- tl_context = PyDict_GetItemWithError(dict, tls_context_key);
- if (tl_context != NULL) {
- /* We already have a thread local context. */
- CONTEXT_CHECK(tl_context);
- }
- else {
- if (PyErr_Occurred()) {
- return NULL;
- }
-
- /* Set up a new thread local context. */
- tl_context = context_copy(default_context_template, NULL);
- if (tl_context == NULL) {
- return NULL;
- }
- CTX(tl_context)->status = 0;
-
- if (PyDict_SetItem(dict, tls_context_key, tl_context) < 0) {
- Py_DECREF(tl_context);
- return NULL;
- }
- Py_DECREF(tl_context);
- }
-
- /* Cache the context of the current thread, assuming that it
- * will be accessed several times before a thread switch. */
- tstate = PyThreadState_GET();
- if (tstate) {
- cached_context = (PyDecContextObject *)tl_context;
- cached_context->tstate = tstate;
- }
-
- /* Borrowed reference with refcount==1 */
- return tl_context;
-}
-
-/* Return borrowed reference to thread local context. */
-static PyObject *
-current_context(void)
-{
- PyThreadState *tstate;
-
- tstate = PyThreadState_GET();
- if (cached_context && cached_context->tstate == tstate) {
- return (PyObject *)cached_context;
- }
-
- return current_context_from_dict();
-}
-
-/* ctxobj := borrowed reference to the current context */
-#define CURRENT_CONTEXT(ctxobj) \
- ctxobj = current_context(); \
- if (ctxobj == NULL) { \
- return NULL; \
- }
-
-/* Return a new reference to the current context */
-static PyObject *
-PyDec_GetCurrentContext(PyObject *self UNUSED, PyObject *args UNUSED)
-{
- PyObject *context;
-
- context = current_context();
- if (context == NULL) {
- return NULL;
- }
-
- Py_INCREF(context);
- return context;
-}
-
-/* Set the thread local context to a new context, decrement old reference */
-static PyObject *
-PyDec_SetCurrentContext(PyObject *self UNUSED, PyObject *v)
-{
- PyObject *dict;
-
- CONTEXT_CHECK(v);
-
- dict = PyThreadState_GetDict();
- if (dict == NULL) {
- PyErr_SetString(PyExc_RuntimeError,
- "cannot get thread state");
- return NULL;
- }
-
- /* If the new context is one of the templates, make a copy.
- * This is the current behavior of decimal.py. */
- if (v == default_context_template ||
- v == basic_context_template ||
- v == extended_context_template) {
- v = context_copy(v, NULL);
- if (v == NULL) {
- return NULL;
- }
- CTX(v)->status = 0;
- }
- else {
- Py_INCREF(v);
- }
-
- cached_context = NULL;
- if (PyDict_SetItem(dict, tls_context_key, v) < 0) {
- Py_DECREF(v);
- return NULL;
- }
-
- Py_DECREF(v);
- Py_RETURN_NONE;
-}
-#else
-static PyObject *
init_current_context(void)
{
PyObject *tl_context = context_copy(default_context_template, NULL);
@@ -1713,7 +1713,7 @@ PyDec_SetCurrentContext(PyObject *self UNUSED, PyObject *v)
Py_RETURN_NONE;
}
-#endif
+#endif
/* Context manager object for the 'with' statement. The manager
* owns one reference to the global (outer) context and one
@@ -1809,10 +1809,10 @@ static PyTypeObject PyDecContextManager_Type =
sizeof(PyDecContextManagerObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor) ctxmanager_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
(getattrfunc) 0, /* tp_getattr */
(setattrfunc) 0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc) 0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1880,7 +1880,7 @@ dec_dealloc(PyObject *dec)
/******************************************************************************/
Py_LOCAL_INLINE(int)
-is_space(enum PyUnicode_Kind kind, const void *data, Py_ssize_t pos)
+is_space(enum PyUnicode_Kind kind, const void *data, Py_ssize_t pos)
{
Py_UCS4 ch = PyUnicode_READ(kind, data, pos);
return Py_UNICODE_ISSPACE(ch);
@@ -1898,7 +1898,7 @@ static char *
numeric_as_ascii(const PyObject *u, int strip_ws, int ignore_underscores)
{
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
Py_UCS4 ch;
char *res, *cp;
Py_ssize_t j, len;
@@ -2728,7 +2728,7 @@ PyDecType_FromObjectExact(PyTypeObject *type, PyObject *v, PyObject *context)
else {
PyErr_Format(PyExc_TypeError,
"conversion from %s to Decimal is not supported",
- Py_TYPE(v)->tp_name);
+ Py_TYPE(v)->tp_name);
return NULL;
}
}
@@ -2777,7 +2777,7 @@ PyDec_FromObject(PyObject *v, PyObject *context)
else {
PyErr_Format(PyExc_TypeError,
"conversion from %s to Decimal is not supported",
- Py_TYPE(v)->tp_name);
+ Py_TYPE(v)->tp_name);
return NULL;
}
}
@@ -2840,7 +2840,7 @@ convert_op(int type_err, PyObject **conv, PyObject *v, PyObject *context)
if (type_err) {
PyErr_Format(PyExc_TypeError,
"conversion from %s to Decimal is not supported",
- Py_TYPE(v)->tp_name);
+ Py_TYPE(v)->tp_name);
}
else {
Py_INCREF(Py_NotImplemented);
@@ -3397,9 +3397,9 @@ dec_as_long(PyObject *dec, PyObject *context, int round)
i--;
}
- Py_SET_SIZE(pylong, i);
+ Py_SET_SIZE(pylong, i);
if (mpd_isnegative(x) && !mpd_iszero(x)) {
- Py_SET_SIZE(pylong, -i);
+ Py_SET_SIZE(pylong, -i);
}
mpd_del(x);
@@ -4735,30 +4735,30 @@ static PyNumberMethods dec_number_methods =
static PyMethodDef dec_methods [] =
{
/* Unary arithmetic functions, optional context arg */
- { "exp", (PyCFunction)(void(*)(void))dec_mpd_qexp, METH_VARARGS|METH_KEYWORDS, doc_exp },
- { "ln", (PyCFunction)(void(*)(void))dec_mpd_qln, METH_VARARGS|METH_KEYWORDS, doc_ln },
- { "log10", (PyCFunction)(void(*)(void))dec_mpd_qlog10, METH_VARARGS|METH_KEYWORDS, doc_log10 },
- { "next_minus", (PyCFunction)(void(*)(void))dec_mpd_qnext_minus, METH_VARARGS|METH_KEYWORDS, doc_next_minus },
- { "next_plus", (PyCFunction)(void(*)(void))dec_mpd_qnext_plus, METH_VARARGS|METH_KEYWORDS, doc_next_plus },
- { "normalize", (PyCFunction)(void(*)(void))dec_mpd_qreduce, METH_VARARGS|METH_KEYWORDS, doc_normalize },
- { "to_integral", (PyCFunction)(void(*)(void))PyDec_ToIntegralValue, METH_VARARGS|METH_KEYWORDS, doc_to_integral },
- { "to_integral_exact", (PyCFunction)(void(*)(void))PyDec_ToIntegralExact, METH_VARARGS|METH_KEYWORDS, doc_to_integral_exact },
- { "to_integral_value", (PyCFunction)(void(*)(void))PyDec_ToIntegralValue, METH_VARARGS|METH_KEYWORDS, doc_to_integral_value },
- { "sqrt", (PyCFunction)(void(*)(void))dec_mpd_qsqrt, METH_VARARGS|METH_KEYWORDS, doc_sqrt },
+ { "exp", (PyCFunction)(void(*)(void))dec_mpd_qexp, METH_VARARGS|METH_KEYWORDS, doc_exp },
+ { "ln", (PyCFunction)(void(*)(void))dec_mpd_qln, METH_VARARGS|METH_KEYWORDS, doc_ln },
+ { "log10", (PyCFunction)(void(*)(void))dec_mpd_qlog10, METH_VARARGS|METH_KEYWORDS, doc_log10 },
+ { "next_minus", (PyCFunction)(void(*)(void))dec_mpd_qnext_minus, METH_VARARGS|METH_KEYWORDS, doc_next_minus },
+ { "next_plus", (PyCFunction)(void(*)(void))dec_mpd_qnext_plus, METH_VARARGS|METH_KEYWORDS, doc_next_plus },
+ { "normalize", (PyCFunction)(void(*)(void))dec_mpd_qreduce, METH_VARARGS|METH_KEYWORDS, doc_normalize },
+ { "to_integral", (PyCFunction)(void(*)(void))PyDec_ToIntegralValue, METH_VARARGS|METH_KEYWORDS, doc_to_integral },
+ { "to_integral_exact", (PyCFunction)(void(*)(void))PyDec_ToIntegralExact, METH_VARARGS|METH_KEYWORDS, doc_to_integral_exact },
+ { "to_integral_value", (PyCFunction)(void(*)(void))PyDec_ToIntegralValue, METH_VARARGS|METH_KEYWORDS, doc_to_integral_value },
+ { "sqrt", (PyCFunction)(void(*)(void))dec_mpd_qsqrt, METH_VARARGS|METH_KEYWORDS, doc_sqrt },
/* Binary arithmetic functions, optional context arg */
- { "compare", (PyCFunction)(void(*)(void))dec_mpd_qcompare, METH_VARARGS|METH_KEYWORDS, doc_compare },
- { "compare_signal", (PyCFunction)(void(*)(void))dec_mpd_qcompare_signal, METH_VARARGS|METH_KEYWORDS, doc_compare_signal },
- { "max", (PyCFunction)(void(*)(void))dec_mpd_qmax, METH_VARARGS|METH_KEYWORDS, doc_max },
- { "max_mag", (PyCFunction)(void(*)(void))dec_mpd_qmax_mag, METH_VARARGS|METH_KEYWORDS, doc_max_mag },
- { "min", (PyCFunction)(void(*)(void))dec_mpd_qmin, METH_VARARGS|METH_KEYWORDS, doc_min },
- { "min_mag", (PyCFunction)(void(*)(void))dec_mpd_qmin_mag, METH_VARARGS|METH_KEYWORDS, doc_min_mag },
- { "next_toward", (PyCFunction)(void(*)(void))dec_mpd_qnext_toward, METH_VARARGS|METH_KEYWORDS, doc_next_toward },
- { "quantize", (PyCFunction)(void(*)(void))dec_mpd_qquantize, METH_VARARGS|METH_KEYWORDS, doc_quantize },
- { "remainder_near", (PyCFunction)(void(*)(void))dec_mpd_qrem_near, METH_VARARGS|METH_KEYWORDS, doc_remainder_near },
+ { "compare", (PyCFunction)(void(*)(void))dec_mpd_qcompare, METH_VARARGS|METH_KEYWORDS, doc_compare },
+ { "compare_signal", (PyCFunction)(void(*)(void))dec_mpd_qcompare_signal, METH_VARARGS|METH_KEYWORDS, doc_compare_signal },
+ { "max", (PyCFunction)(void(*)(void))dec_mpd_qmax, METH_VARARGS|METH_KEYWORDS, doc_max },
+ { "max_mag", (PyCFunction)(void(*)(void))dec_mpd_qmax_mag, METH_VARARGS|METH_KEYWORDS, doc_max_mag },
+ { "min", (PyCFunction)(void(*)(void))dec_mpd_qmin, METH_VARARGS|METH_KEYWORDS, doc_min },
+ { "min_mag", (PyCFunction)(void(*)(void))dec_mpd_qmin_mag, METH_VARARGS|METH_KEYWORDS, doc_min_mag },
+ { "next_toward", (PyCFunction)(void(*)(void))dec_mpd_qnext_toward, METH_VARARGS|METH_KEYWORDS, doc_next_toward },
+ { "quantize", (PyCFunction)(void(*)(void))dec_mpd_qquantize, METH_VARARGS|METH_KEYWORDS, doc_quantize },
+ { "remainder_near", (PyCFunction)(void(*)(void))dec_mpd_qrem_near, METH_VARARGS|METH_KEYWORDS, doc_remainder_near },
/* Ternary arithmetic functions, optional context arg */
- { "fma", (PyCFunction)(void(*)(void))dec_mpd_qfma, METH_VARARGS|METH_KEYWORDS, doc_fma },
+ { "fma", (PyCFunction)(void(*)(void))dec_mpd_qfma, METH_VARARGS|METH_KEYWORDS, doc_fma },
/* Boolean functions, no context arg */
{ "is_canonical", dec_mpd_iscanonical, METH_NOARGS, doc_is_canonical },
@@ -4771,8 +4771,8 @@ static PyMethodDef dec_methods [] =
{ "is_zero", dec_mpd_iszero, METH_NOARGS, doc_is_zero },
/* Boolean functions, optional context arg */
- { "is_normal", (PyCFunction)(void(*)(void))dec_mpd_isnormal, METH_VARARGS|METH_KEYWORDS, doc_is_normal },
- { "is_subnormal", (PyCFunction)(void(*)(void))dec_mpd_issubnormal, METH_VARARGS|METH_KEYWORDS, doc_is_subnormal },
+ { "is_normal", (PyCFunction)(void(*)(void))dec_mpd_isnormal, METH_VARARGS|METH_KEYWORDS, doc_is_normal },
+ { "is_subnormal", (PyCFunction)(void(*)(void))dec_mpd_issubnormal, METH_VARARGS|METH_KEYWORDS, doc_is_subnormal },
/* Unary functions, no context arg */
{ "adjusted", dec_mpd_adjexp, METH_NOARGS, doc_adjusted },
@@ -4785,24 +4785,24 @@ static PyMethodDef dec_methods [] =
{ "copy_negate", dec_mpd_qcopy_negate, METH_NOARGS, doc_copy_negate },
/* Unary functions, optional context arg */
- { "logb", (PyCFunction)(void(*)(void))dec_mpd_qlogb, METH_VARARGS|METH_KEYWORDS, doc_logb },
- { "logical_invert", (PyCFunction)(void(*)(void))dec_mpd_qinvert, METH_VARARGS|METH_KEYWORDS, doc_logical_invert },
- { "number_class", (PyCFunction)(void(*)(void))dec_mpd_class, METH_VARARGS|METH_KEYWORDS, doc_number_class },
- { "to_eng_string", (PyCFunction)(void(*)(void))dec_mpd_to_eng, METH_VARARGS|METH_KEYWORDS, doc_to_eng_string },
+ { "logb", (PyCFunction)(void(*)(void))dec_mpd_qlogb, METH_VARARGS|METH_KEYWORDS, doc_logb },
+ { "logical_invert", (PyCFunction)(void(*)(void))dec_mpd_qinvert, METH_VARARGS|METH_KEYWORDS, doc_logical_invert },
+ { "number_class", (PyCFunction)(void(*)(void))dec_mpd_class, METH_VARARGS|METH_KEYWORDS, doc_number_class },
+ { "to_eng_string", (PyCFunction)(void(*)(void))dec_mpd_to_eng, METH_VARARGS|METH_KEYWORDS, doc_to_eng_string },
/* Binary functions, optional context arg for conversion errors */
- { "compare_total", (PyCFunction)(void(*)(void))dec_mpd_compare_total, METH_VARARGS|METH_KEYWORDS, doc_compare_total },
- { "compare_total_mag", (PyCFunction)(void(*)(void))dec_mpd_compare_total_mag, METH_VARARGS|METH_KEYWORDS, doc_compare_total_mag },
- { "copy_sign", (PyCFunction)(void(*)(void))dec_mpd_qcopy_sign, METH_VARARGS|METH_KEYWORDS, doc_copy_sign },
- { "same_quantum", (PyCFunction)(void(*)(void))dec_mpd_same_quantum, METH_VARARGS|METH_KEYWORDS, doc_same_quantum },
+ { "compare_total", (PyCFunction)(void(*)(void))dec_mpd_compare_total, METH_VARARGS|METH_KEYWORDS, doc_compare_total },
+ { "compare_total_mag", (PyCFunction)(void(*)(void))dec_mpd_compare_total_mag, METH_VARARGS|METH_KEYWORDS, doc_compare_total_mag },
+ { "copy_sign", (PyCFunction)(void(*)(void))dec_mpd_qcopy_sign, METH_VARARGS|METH_KEYWORDS, doc_copy_sign },
+ { "same_quantum", (PyCFunction)(void(*)(void))dec_mpd_same_quantum, METH_VARARGS|METH_KEYWORDS, doc_same_quantum },
/* Binary functions, optional context arg */
- { "logical_and", (PyCFunction)(void(*)(void))dec_mpd_qand, METH_VARARGS|METH_KEYWORDS, doc_logical_and },
- { "logical_or", (PyCFunction)(void(*)(void))dec_mpd_qor, METH_VARARGS|METH_KEYWORDS, doc_logical_or },
- { "logical_xor", (PyCFunction)(void(*)(void))dec_mpd_qxor, METH_VARARGS|METH_KEYWORDS, doc_logical_xor },
- { "rotate", (PyCFunction)(void(*)(void))dec_mpd_qrotate, METH_VARARGS|METH_KEYWORDS, doc_rotate },
- { "scaleb", (PyCFunction)(void(*)(void))dec_mpd_qscaleb, METH_VARARGS|METH_KEYWORDS, doc_scaleb },
- { "shift", (PyCFunction)(void(*)(void))dec_mpd_qshift, METH_VARARGS|METH_KEYWORDS, doc_shift },
+ { "logical_and", (PyCFunction)(void(*)(void))dec_mpd_qand, METH_VARARGS|METH_KEYWORDS, doc_logical_and },
+ { "logical_or", (PyCFunction)(void(*)(void))dec_mpd_qor, METH_VARARGS|METH_KEYWORDS, doc_logical_or },
+ { "logical_xor", (PyCFunction)(void(*)(void))dec_mpd_qxor, METH_VARARGS|METH_KEYWORDS, doc_logical_xor },
+ { "rotate", (PyCFunction)(void(*)(void))dec_mpd_qrotate, METH_VARARGS|METH_KEYWORDS, doc_rotate },
+ { "scaleb", (PyCFunction)(void(*)(void))dec_mpd_qscaleb, METH_VARARGS|METH_KEYWORDS, doc_scaleb },
+ { "shift", (PyCFunction)(void(*)(void))dec_mpd_qshift, METH_VARARGS|METH_KEYWORDS, doc_shift },
/* Miscellaneous */
{ "from_float", dec_from_float, METH_O|METH_CLASS, doc_from_float },
@@ -4831,10 +4831,10 @@ static PyTypeObject PyDec_Type =
sizeof(PyDecObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor) dec_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
(getattrfunc) 0, /* tp_getattr */
(setattrfunc) 0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc) dec_repr, /* tp_repr */
&dec_number_methods, /* tp_as_number */
0, /* tp_as_sequence */
@@ -5440,7 +5440,7 @@ static PyMethodDef context_methods [] =
{ "subtract", ctx_mpd_qsub, METH_VARARGS, doc_ctx_subtract },
/* Binary or ternary arithmetic functions */
- { "power", (PyCFunction)(void(*)(void))ctx_mpd_qpow, METH_VARARGS|METH_KEYWORDS, doc_ctx_power },
+ { "power", (PyCFunction)(void(*)(void))ctx_mpd_qpow, METH_VARARGS|METH_KEYWORDS, doc_ctx_power },
/* Ternary arithmetic functions */
{ "fma", ctx_mpd_qfma, METH_VARARGS, doc_ctx_fma },
@@ -5517,17 +5517,17 @@ static PyTypeObject PyDecContext_Type =
sizeof(PyDecContextObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor) context_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
(getattrfunc) 0, /* tp_getattr */
(setattrfunc) 0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc) context_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
(hashfunc) 0, /* tp_hash */
0, /* tp_call */
- 0, /* tp_str */
+ 0, /* tp_str */
(getattrofunc) context_getattr, /* tp_getattro */
(setattrofunc) context_setattr, /* tp_setattro */
(PyBufferProcs *) 0, /* tp_as_buffer */
@@ -5558,7 +5558,7 @@ static PyMethodDef _decimal_methods [] =
{
{ "getcontext", (PyCFunction)PyDec_GetCurrentContext, METH_NOARGS, doc_getcontext},
{ "setcontext", (PyCFunction)PyDec_SetCurrentContext, METH_O, doc_setcontext},
- { "localcontext", (PyCFunction)(void(*)(void))ctxmanager_new, METH_VARARGS|METH_KEYWORDS, doc_localcontext},
+ { "localcontext", (PyCFunction)(void(*)(void))ctxmanager_new, METH_VARARGS|METH_KEYWORDS, doc_localcontext},
#ifdef EXTRA_FUNCTIONALITY
{ "IEEEContext", (PyCFunction)ieee_context, METH_O, doc_ieee_context},
#endif
@@ -5846,16 +5846,16 @@ PyInit__decimal(void)
CHECK_INT(PyModule_AddObject(m, "DefaultContext",
default_context_template));
-#ifndef WITH_DECIMAL_CONTEXTVAR
- ASSIGN_PTR(tls_context_key, PyUnicode_FromString("___DECIMAL_CTX__"));
- Py_INCREF(Py_False);
- CHECK_INT(PyModule_AddObject(m, "HAVE_CONTEXTVAR", Py_False));
-#else
- ASSIGN_PTR(current_context_var, PyContextVar_New("decimal_context", NULL));
+#ifndef WITH_DECIMAL_CONTEXTVAR
+ ASSIGN_PTR(tls_context_key, PyUnicode_FromString("___DECIMAL_CTX__"));
+ Py_INCREF(Py_False);
+ CHECK_INT(PyModule_AddObject(m, "HAVE_CONTEXTVAR", Py_False));
+#else
+ ASSIGN_PTR(current_context_var, PyContextVar_New("decimal_context", NULL));
+ Py_INCREF(Py_True);
+ CHECK_INT(PyModule_AddObject(m, "HAVE_CONTEXTVAR", Py_True));
+#endif
Py_INCREF(Py_True);
- CHECK_INT(PyModule_AddObject(m, "HAVE_CONTEXTVAR", Py_True));
-#endif
- Py_INCREF(Py_True);
CHECK_INT(PyModule_AddObject(m, "HAVE_THREADS", Py_True));
/* Init basic context template */
@@ -5914,11 +5914,11 @@ error:
Py_CLEAR(SignalTuple); /* GCOV_NOT_REACHED */
Py_CLEAR(DecimalTuple); /* GCOV_NOT_REACHED */
Py_CLEAR(default_context_template); /* GCOV_NOT_REACHED */
-#ifndef WITH_DECIMAL_CONTEXTVAR
- Py_CLEAR(tls_context_key); /* GCOV_NOT_REACHED */
-#else
- Py_CLEAR(current_context_var); /* GCOV_NOT_REACHED */
-#endif
+#ifndef WITH_DECIMAL_CONTEXTVAR
+ Py_CLEAR(tls_context_key); /* GCOV_NOT_REACHED */
+#else
+ Py_CLEAR(current_context_var); /* GCOV_NOT_REACHED */
+#endif
Py_CLEAR(basic_context_template); /* GCOV_NOT_REACHED */
Py_CLEAR(extended_context_template); /* GCOV_NOT_REACHED */
Py_CLEAR(m); /* GCOV_NOT_REACHED */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.c
index ce8a84586c..85c608fadf 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,11 +27,11 @@
#include "mpdecimal.h"
-
-#include <assert.h>
+
+#include <assert.h>
#include <stdio.h>
-
-#include "basearith.h"
+
+#include "basearith.h"
#include "constants.h"
#include "typearith.h"
@@ -337,7 +337,7 @@ _mpd_basedivmod(mpd_uint_t *q, mpd_uint_t *r,
/* D2: loop */
for (j=m; j != MPD_SIZE_MAX; j--) {
- assert(2 <= j+n && j+n <= nplusm); /* annotation for scan-build */
+ assert(2 <= j+n && j+n <= nplusm); /* annotation for scan-build */
/* D3: calculate qhat and rhat */
rhat = _mpd_shortdiv(w2, u+j+n-1, 2, v[n-1]);
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.h
index 0aac9ba0f9..d35925aadd 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/basearith.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_BASEARITH_H_
-#define LIBMPDEC_BASEARITH_H_
+#ifndef LIBMPDEC_BASEARITH_H_
+#define LIBMPDEC_BASEARITH_H_
#include "mpdecimal.h"
@@ -215,4 +215,4 @@ _mpd_isallnine(const mpd_uint_t *data, mpd_ssize_t len)
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_BASEARITH_H_ */
+#endif /* LIBMPDEC_BASEARITH_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/bits.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/bits.h
index 85ad10ad3a..aa9c3e7798 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/bits.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/bits.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_BITS_H_
-#define LIBMPDEC_BITS_H_
+#ifndef LIBMPDEC_BITS_H_
+#define LIBMPDEC_BITS_H_
#include "mpdecimal.h"
@@ -185,4 +185,4 @@ mpd_bsf(mpd_size_t a)
#endif /* BSR/BSF */
-#endif /* LIBMPDEC_BITS_H_ */
+#endif /* LIBMPDEC_BITS_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.c
index c5dcfdb582..4c4de622bc 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.h
index 48fc359a06..7c1db839c2 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/constants.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,15 +26,15 @@
*/
-#ifndef LIBMPDEC_CONSTANTS_H_
-#define LIBMPDEC_CONSTANTS_H_
+#ifndef LIBMPDEC_CONSTANTS_H_
+#define LIBMPDEC_CONSTANTS_H_
#include "mpdecimal.h"
-#include <stdint.h>
+#include <stdint.h>
+
-
/* Internal header file: all symbols have local scope in the DSO */
MPD_PRAGMA(MPD_HIDE_SYMBOLS_START)
@@ -86,4 +86,4 @@ extern const mpd_uint_t UH_P1P2;
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_CONSTANTS_H_ */
+#endif /* LIBMPDEC_CONSTANTS_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/context.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/context.c
index cc2e965e49..9cbc205095 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/context.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/context.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,16 +27,16 @@
#include "mpdecimal.h"
-
-#include <signal.h>
+
+#include <signal.h>
#include <stdio.h>
#include <string.h>
void
-mpd_dflt_traphandler(mpd_context_t *ctx)
+mpd_dflt_traphandler(mpd_context_t *ctx)
{
- (void)ctx;
+ (void)ctx;
raise(SIGFPE);
}
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.c
index 5de2570538..4bc8e8b5fd 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -29,7 +29,7 @@
#include "mpdecimal.h"
#include "bits.h"
#include "constants.h"
-#include "convolute.h"
+#include "convolute.h"
#include "fnt.h"
#include "fourstep.h"
#include "numbertheory.h"
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.h
index 18716b23ff..62edb3e457 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/convolute.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_CONVOLUTE_H_
-#define LIBMPDEC_CONVOLUTE_H_
+#ifndef LIBMPDEC_CONVOLUTE_H_
+#define LIBMPDEC_CONVOLUTE_H_
#include "mpdecimal.h"
@@ -46,4 +46,4 @@ int fnt_autoconvolute(mpd_uint_t *c1, mpd_size_t n, int modnum);
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_CONVOLUTE_H_ */
+#endif /* LIBMPDEC_CONVOLUTE_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.c
index dd8418671d..613274ee0c 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,14 +27,14 @@
#include "mpdecimal.h"
-
+
#include <assert.h>
-
-#include "constants.h"
-#include "crt.h"
+
+#include "constants.h"
+#include "crt.h"
#include "numbertheory.h"
#include "umodarith.h"
-#include "typearith.h"
+#include "typearith.h"
/* Bignum: Chinese Remainder Theorem, extends the maximum transform length. */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.h
index ae0765ee10..15a347d4cb 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/crt.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_CRT_H_
-#define LIBMPDEC_CRT_H_
+#ifndef LIBMPDEC_CRT_H_
+#define LIBMPDEC_CRT_H_
#include "mpdecimal.h"
@@ -43,4 +43,4 @@ void crt3(mpd_uint_t *x1, mpd_uint_t *x2, mpd_uint_t *x3, mpd_size_t nmemb);
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_CRT_H_ */
+#endif /* LIBMPDEC_CRT_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.c
index 661783cc15..049ecff65b 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,12 +27,12 @@
#include "mpdecimal.h"
-
+
#include <assert.h>
-
+
#include "bits.h"
-#include "constants.h"
-#include "difradix2.h"
+#include "constants.h"
+#include "difradix2.h"
#include "numbertheory.h"
#include "umodarith.h"
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.h
index 868878e439..cdcbcf9a71 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/difradix2.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_DIFRADIX2_H_
-#define LIBMPDEC_DIFRADIX2_H_
+#ifndef LIBMPDEC_DIFRADIX2_H_
+#define LIBMPDEC_DIFRADIX2_H_
#include "mpdecimal.h"
@@ -44,4 +44,4 @@ void fnt_dif2(mpd_uint_t a[], mpd_size_t n, struct fnt_params *tparams);
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_DIFRADIX2_H_ */
+#endif /* LIBMPDEC_DIFRADIX2_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.c
index 56f39dcfda..0dbe98fc71 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,13 +27,13 @@
#include "mpdecimal.h"
-
-#include <assert.h>
+
+#include <assert.h>
#include <stdio.h>
-
+
#include "bits.h"
#include "difradix2.h"
-#include "fnt.h"
+#include "fnt.h"
#include "numbertheory.h"
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.h
index 92f352d43d..5222c476a3 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fnt.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_FNT_H_
-#define LIBMPDEC_FNT_H_
+#ifndef LIBMPDEC_FNT_H_
+#define LIBMPDEC_FNT_H_
#include "mpdecimal.h"
@@ -44,4 +44,4 @@ int std_inv_fnt(mpd_uint_t a[], mpd_size_t n, int modnum);
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_FNT_H_ */
+#endif /* LIBMPDEC_FNT_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.c
index c54f39561d..fb173ed5a5 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,11 +27,11 @@
#include "mpdecimal.h"
-
+
#include <assert.h>
-
-#include "constants.h"
-#include "fourstep.h"
+
+#include "constants.h"
+#include "fourstep.h"
#include "numbertheory.h"
#include "sixstep.h"
#include "umodarith.h"
@@ -189,7 +189,7 @@ four_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
#if 0
/* An unordered transform is sufficient for convolution. */
/* Transpose the matrix. */
- #include "transpose.h"
+ #include "transpose.h"
transpose_3xpow2(a, R, C);
#endif
@@ -220,7 +220,7 @@ inv_four_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
#if 0
/* An unordered transform is sufficient for convolution. */
/* Transpose the matrix, producing an R*C matrix. */
- #include "transpose.h"
+ #include "transpose.h"
transpose_3xpow2(a, C, R);
#endif
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.h
index 123d59b57b..5ffb6fcc8e 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/fourstep.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_FOURSTEP_H_
-#define LIBMPDEC_FOURSTEP_H_
+#ifndef LIBMPDEC_FOURSTEP_H_
+#define LIBMPDEC_FOURSTEP_H_
#include "mpdecimal.h"
@@ -44,4 +44,4 @@ int inv_four_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum);
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_FOURSTEP_H_ */
+#endif /* LIBMPDEC_FOURSTEP_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/io.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/io.c
index c873fd1670..03f2acfc1a 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/io.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/io.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,16 +27,16 @@
#include "mpdecimal.h"
-
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <limits.h>
-#include <locale.h>
+
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <limits.h>
+#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-
+
#include "typearith.h"
#include "mpd_io.h"
@@ -277,7 +277,7 @@ mpd_qset_string(mpd_t *dec, const char *s, const mpd_context_t *ctx,
}
}
- digits = end - coeff;
+ digits = end - coeff;
if (dpoint) {
size_t fracdigits = end-dpoint-1;
if (dpoint > coeff) digits--;
@@ -326,22 +326,22 @@ conversion_error:
mpd_seterror(dec, MPD_Conversion_syntax, status);
}
-/* convert a character string to a decimal, use a maxcontext for conversion */
-void
-mpd_qset_string_exact(mpd_t *dec, const char *s, uint32_t *status)
-{
- mpd_context_t maxcontext;
-
- mpd_maxcontext(&maxcontext);
- mpd_qset_string(dec, s, &maxcontext, status);
-
- if (*status & (MPD_Inexact|MPD_Rounded|MPD_Clamped)) {
- /* we want exact results */
- mpd_seterror(dec, MPD_Invalid_operation, status);
- }
- *status &= MPD_Errors;
-}
-
+/* convert a character string to a decimal, use a maxcontext for conversion */
+void
+mpd_qset_string_exact(mpd_t *dec, const char *s, uint32_t *status)
+{
+ mpd_context_t maxcontext;
+
+ mpd_maxcontext(&maxcontext);
+ mpd_qset_string(dec, s, &maxcontext, status);
+
+ if (*status & (MPD_Inexact|MPD_Rounded|MPD_Clamped)) {
+ /* we want exact results */
+ mpd_seterror(dec, MPD_Invalid_operation, status);
+ }
+ *status &= MPD_Errors;
+}
+
/* Print word x with n decimal digits to string s. dot is either NULL
or the location of a decimal point. */
#define EXTRACT_DIGIT(s, x, d, dot) \
@@ -555,8 +555,8 @@ _mpd_to_string(char **result, const mpd_t *dec, int flags, mpd_ssize_t dplace)
dplace = -1 + mod_mpd_ssize_t(dec->exp+2, 3);
}
else { /* ldigits-1 is the adjusted exponent, which
- * should be divisible by three. If not, move
- * dplace one or two places to the right. */
+ * should be divisible by three. If not, move
+ * dplace one or two places to the right. */
dplace += mod_mpd_ssize_t(ldigits-1, 3);
}
}
@@ -1263,7 +1263,7 @@ mpd_qformat_spec(const mpd_t *dec, const mpd_spec_t *spec,
}
if (isupper((uchar)type)) {
- type = (char)tolower((uchar)type);
+ type = (char)tolower((uchar)type);
flags |= MPD_FMT_UPPER;
}
if (spec->sign == ' ') {
@@ -1281,7 +1281,7 @@ mpd_qformat_spec(const mpd_t *dec, const mpd_spec_t *spec,
stackspec.align = '>';
spec = &stackspec;
}
- assert(strlen(spec->fill) == 1); /* annotation for scan-build */
+ assert(strlen(spec->fill) == 1); /* annotation for scan-build */
if (type == '%') {
flags |= MPD_FMT_PERCENT;
}
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.c
index 04a42e7058..eb5ee7a807 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.c
@@ -1,356 +1,356 @@
-/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-
-#include "mpdecimal.h"
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "mpalloc.h"
-#include "typearith.h"
-
-
-#if defined(_MSC_VER)
- #pragma warning(disable : 4232)
-#endif
-
-
-/* Guaranteed minimum allocation for a coefficient. May be changed once
- at program start using mpd_setminalloc(). */
-mpd_ssize_t MPD_MINALLOC = MPD_MINALLOC_MIN;
-
-/* Custom allocation and free functions */
-void *(* mpd_mallocfunc)(size_t size) = malloc;
-void *(* mpd_reallocfunc)(void *ptr, size_t size) = realloc;
-void *(* mpd_callocfunc)(size_t nmemb, size_t size) = calloc;
-void (* mpd_free)(void *ptr) = free;
-
-
-/* emulate calloc if it is not available */
-void *
-mpd_callocfunc_em(size_t nmemb, size_t size)
-{
- void *ptr;
- size_t req;
- mpd_size_t overflow;
-
-#if MPD_SIZE_MAX < SIZE_MAX
- /* full_coverage test only */
- if (nmemb > MPD_SIZE_MAX || size > MPD_SIZE_MAX) {
- return NULL;
- }
-#endif
-
- req = mul_size_t_overflow((mpd_size_t)nmemb, (mpd_size_t)size,
- &overflow);
- if (overflow) {
- return NULL;
- }
-
- ptr = mpd_mallocfunc(req);
- if (ptr == NULL) {
- return NULL;
- }
- /* used on uint32_t or uint64_t */
- memset(ptr, 0, req);
-
- return ptr;
-}
-
-
-/* malloc with overflow checking */
-void *
-mpd_alloc(mpd_size_t nmemb, mpd_size_t size)
-{
- mpd_size_t req, overflow;
-
- req = mul_size_t_overflow(nmemb, size, &overflow);
- if (overflow) {
- return NULL;
- }
-
- return mpd_mallocfunc(req);
-}
-
-/* calloc with overflow checking */
-void *
-mpd_calloc(mpd_size_t nmemb, mpd_size_t size)
-{
- mpd_size_t overflow;
-
- (void)mul_size_t_overflow(nmemb, size, &overflow);
- if (overflow) {
- return NULL;
- }
-
- return mpd_callocfunc(nmemb, size);
-}
-
-/* realloc with overflow checking */
-void *
-mpd_realloc(void *ptr, mpd_size_t nmemb, mpd_size_t size, uint8_t *err)
-{
- void *new;
- mpd_size_t req, overflow;
-
- req = mul_size_t_overflow(nmemb, size, &overflow);
- if (overflow) {
- *err = 1;
- return ptr;
- }
-
- new = mpd_reallocfunc(ptr, req);
- if (new == NULL) {
- *err = 1;
- return ptr;
- }
-
- return new;
-}
-
-/* struct hack malloc with overflow checking */
-void *
-mpd_sh_alloc(mpd_size_t struct_size, mpd_size_t nmemb, mpd_size_t size)
-{
- mpd_size_t req, overflow;
-
- req = mul_size_t_overflow(nmemb, size, &overflow);
- if (overflow) {
- return NULL;
- }
-
- req = add_size_t_overflow(req, struct_size, &overflow);
- if (overflow) {
- return NULL;
- }
-
- return mpd_mallocfunc(req);
-}
-
-
-/* Allocate a new decimal with a coefficient of length 'nwords'. In case
- of an error the return value is NULL. */
-mpd_t *
-mpd_qnew_size(mpd_ssize_t nwords)
-{
- mpd_t *result;
-
- nwords = (nwords < MPD_MINALLOC) ? MPD_MINALLOC : nwords;
-
- result = mpd_alloc(1, sizeof *result);
- if (result == NULL) {
- return NULL;
- }
-
- result->data = mpd_alloc(nwords, sizeof *result->data);
- if (result->data == NULL) {
- mpd_free(result);
- return NULL;
- }
-
- result->flags = 0;
- result->exp = 0;
- result->digits = 0;
- result->len = 0;
- result->alloc = nwords;
-
- return result;
-}
-
-/* Allocate a new decimal with a coefficient of length MPD_MINALLOC.
- In case of an error the return value is NULL. */
-mpd_t *
-mpd_qnew(void)
-{
- return mpd_qnew_size(MPD_MINALLOC);
-}
-
-/* Allocate new decimal. Caller can check for NULL or MPD_Malloc_error.
- Raises on error. */
-mpd_t *
-mpd_new(mpd_context_t *ctx)
-{
- mpd_t *result;
-
- result = mpd_qnew();
- if (result == NULL) {
- mpd_addstatus_raise(ctx, MPD_Malloc_error);
- }
- return result;
-}
-
-/*
- * Input: 'result' is a static mpd_t with a static coefficient.
- * Assumption: 'nwords' >= result->alloc.
- *
- * Resize the static coefficient to a larger dynamic one and copy the
- * existing data. If successful, the value of 'result' is unchanged.
- * Otherwise, set 'result' to NaN and update 'status' with MPD_Malloc_error.
- */
-int
-mpd_switch_to_dyn(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
-{
- mpd_uint_t *p = result->data;
-
- assert(nwords >= result->alloc);
-
- result->data = mpd_alloc(nwords, sizeof *result->data);
- if (result->data == NULL) {
- result->data = p;
- mpd_set_qnan(result);
- mpd_set_positive(result);
- result->exp = result->digits = result->len = 0;
- *status |= MPD_Malloc_error;
- return 0;
- }
-
- memcpy(result->data, p, result->alloc * (sizeof *result->data));
- result->alloc = nwords;
- mpd_set_dynamic_data(result);
- return 1;
-}
-
-/*
- * Input: 'result' is a static mpd_t with a static coefficient.
- *
- * Convert the coefficient to a dynamic one that is initialized to zero. If
- * malloc fails, set 'result' to NaN and update 'status' with MPD_Malloc_error.
- */
-int
-mpd_switch_to_dyn_zero(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
-{
- mpd_uint_t *p = result->data;
-
- result->data = mpd_calloc(nwords, sizeof *result->data);
- if (result->data == NULL) {
- result->data = p;
- mpd_set_qnan(result);
- mpd_set_positive(result);
- result->exp = result->digits = result->len = 0;
- *status |= MPD_Malloc_error;
- return 0;
- }
-
- result->alloc = nwords;
- mpd_set_dynamic_data(result);
-
- return 1;
-}
-
-/*
- * Input: 'result' is a static or a dynamic mpd_t with a dynamic coefficient.
- * Resize the coefficient to length 'nwords':
- * Case nwords > result->alloc:
- * If realloc is successful:
- * 'result' has a larger coefficient but the same value. Return 1.
- * Otherwise:
- * Set 'result' to NaN, update status with MPD_Malloc_error and return 0.
- * Case nwords < result->alloc:
- * If realloc is successful:
- * 'result' has a smaller coefficient. result->len is undefined. Return 1.
- * Otherwise (unlikely):
- * 'result' is unchanged. Reuse the now oversized coefficient. Return 1.
- */
-int
-mpd_realloc_dyn(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
-{
- uint8_t err = 0;
-
- result->data = mpd_realloc(result->data, nwords, sizeof *result->data, &err);
- if (!err) {
- result->alloc = nwords;
- }
- else if (nwords > result->alloc) {
- mpd_set_qnan(result);
- mpd_set_positive(result);
- result->exp = result->digits = result->len = 0;
- *status |= MPD_Malloc_error;
- return 0;
- }
-
- return 1;
-}
-
-/*
- * Input: 'result' is a static mpd_t with a static coefficient.
- * Assumption: 'nwords' >= result->alloc.
- *
- * Resize the static coefficient to a larger dynamic one and copy the
- * existing data.
- *
- * On failure the value of 'result' is unchanged.
- */
-int
-mpd_switch_to_dyn_cxx(mpd_t *result, mpd_ssize_t nwords)
-{
- assert(nwords >= result->alloc);
-
- mpd_uint_t *data = mpd_alloc(nwords, sizeof *result->data);
- if (data == NULL) {
- return 0;
- }
-
- memcpy(data, result->data, result->alloc * (sizeof *result->data));
- result->data = data;
- result->alloc = nwords;
- mpd_set_dynamic_data(result);
- return 1;
-}
-
-/*
- * Input: 'result' is a static or a dynamic mpd_t with a dynamic coefficient.
- * Resize the coefficient to length 'nwords':
- * Case nwords > result->alloc:
- * If realloc is successful:
- * 'result' has a larger coefficient but the same value. Return 1.
- * Otherwise:
- * 'result' has a the same coefficient. Return 0.
- * Case nwords < result->alloc:
- * If realloc is successful:
- * 'result' has a smaller coefficient. result->len is undefined. Return 1.
- * Otherwise (unlikely):
- * 'result' is unchanged. Reuse the now oversized coefficient. Return 1.
- */
-int
-mpd_realloc_dyn_cxx(mpd_t *result, mpd_ssize_t nwords)
-{
- uint8_t err = 0;
-
- mpd_uint_t *p = mpd_realloc(result->data, nwords, sizeof *result->data, &err);
- if (!err) {
- result->data = p;
- result->alloc = nwords;
- }
- else if (nwords > result->alloc) {
- return 0;
- }
-
- return 1;
-}
+/*
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+#include "mpdecimal.h"
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "mpalloc.h"
+#include "typearith.h"
+
+
+#if defined(_MSC_VER)
+ #pragma warning(disable : 4232)
+#endif
+
+
+/* Guaranteed minimum allocation for a coefficient. May be changed once
+ at program start using mpd_setminalloc(). */
+mpd_ssize_t MPD_MINALLOC = MPD_MINALLOC_MIN;
+
+/* Custom allocation and free functions */
+void *(* mpd_mallocfunc)(size_t size) = malloc;
+void *(* mpd_reallocfunc)(void *ptr, size_t size) = realloc;
+void *(* mpd_callocfunc)(size_t nmemb, size_t size) = calloc;
+void (* mpd_free)(void *ptr) = free;
+
+
+/* emulate calloc if it is not available */
+void *
+mpd_callocfunc_em(size_t nmemb, size_t size)
+{
+ void *ptr;
+ size_t req;
+ mpd_size_t overflow;
+
+#if MPD_SIZE_MAX < SIZE_MAX
+ /* full_coverage test only */
+ if (nmemb > MPD_SIZE_MAX || size > MPD_SIZE_MAX) {
+ return NULL;
+ }
+#endif
+
+ req = mul_size_t_overflow((mpd_size_t)nmemb, (mpd_size_t)size,
+ &overflow);
+ if (overflow) {
+ return NULL;
+ }
+
+ ptr = mpd_mallocfunc(req);
+ if (ptr == NULL) {
+ return NULL;
+ }
+ /* used on uint32_t or uint64_t */
+ memset(ptr, 0, req);
+
+ return ptr;
+}
+
+
+/* malloc with overflow checking */
+void *
+mpd_alloc(mpd_size_t nmemb, mpd_size_t size)
+{
+ mpd_size_t req, overflow;
+
+ req = mul_size_t_overflow(nmemb, size, &overflow);
+ if (overflow) {
+ return NULL;
+ }
+
+ return mpd_mallocfunc(req);
+}
+
+/* calloc with overflow checking */
+void *
+mpd_calloc(mpd_size_t nmemb, mpd_size_t size)
+{
+ mpd_size_t overflow;
+
+ (void)mul_size_t_overflow(nmemb, size, &overflow);
+ if (overflow) {
+ return NULL;
+ }
+
+ return mpd_callocfunc(nmemb, size);
+}
+
+/* realloc with overflow checking */
+void *
+mpd_realloc(void *ptr, mpd_size_t nmemb, mpd_size_t size, uint8_t *err)
+{
+ void *new;
+ mpd_size_t req, overflow;
+
+ req = mul_size_t_overflow(nmemb, size, &overflow);
+ if (overflow) {
+ *err = 1;
+ return ptr;
+ }
+
+ new = mpd_reallocfunc(ptr, req);
+ if (new == NULL) {
+ *err = 1;
+ return ptr;
+ }
+
+ return new;
+}
+
+/* struct hack malloc with overflow checking */
+void *
+mpd_sh_alloc(mpd_size_t struct_size, mpd_size_t nmemb, mpd_size_t size)
+{
+ mpd_size_t req, overflow;
+
+ req = mul_size_t_overflow(nmemb, size, &overflow);
+ if (overflow) {
+ return NULL;
+ }
+
+ req = add_size_t_overflow(req, struct_size, &overflow);
+ if (overflow) {
+ return NULL;
+ }
+
+ return mpd_mallocfunc(req);
+}
+
+
+/* Allocate a new decimal with a coefficient of length 'nwords'. In case
+ of an error the return value is NULL. */
+mpd_t *
+mpd_qnew_size(mpd_ssize_t nwords)
+{
+ mpd_t *result;
+
+ nwords = (nwords < MPD_MINALLOC) ? MPD_MINALLOC : nwords;
+
+ result = mpd_alloc(1, sizeof *result);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ result->data = mpd_alloc(nwords, sizeof *result->data);
+ if (result->data == NULL) {
+ mpd_free(result);
+ return NULL;
+ }
+
+ result->flags = 0;
+ result->exp = 0;
+ result->digits = 0;
+ result->len = 0;
+ result->alloc = nwords;
+
+ return result;
+}
+
+/* Allocate a new decimal with a coefficient of length MPD_MINALLOC.
+ In case of an error the return value is NULL. */
+mpd_t *
+mpd_qnew(void)
+{
+ return mpd_qnew_size(MPD_MINALLOC);
+}
+
+/* Allocate new decimal. Caller can check for NULL or MPD_Malloc_error.
+ Raises on error. */
+mpd_t *
+mpd_new(mpd_context_t *ctx)
+{
+ mpd_t *result;
+
+ result = mpd_qnew();
+ if (result == NULL) {
+ mpd_addstatus_raise(ctx, MPD_Malloc_error);
+ }
+ return result;
+}
+
+/*
+ * Input: 'result' is a static mpd_t with a static coefficient.
+ * Assumption: 'nwords' >= result->alloc.
+ *
+ * Resize the static coefficient to a larger dynamic one and copy the
+ * existing data. If successful, the value of 'result' is unchanged.
+ * Otherwise, set 'result' to NaN and update 'status' with MPD_Malloc_error.
+ */
+int
+mpd_switch_to_dyn(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
+{
+ mpd_uint_t *p = result->data;
+
+ assert(nwords >= result->alloc);
+
+ result->data = mpd_alloc(nwords, sizeof *result->data);
+ if (result->data == NULL) {
+ result->data = p;
+ mpd_set_qnan(result);
+ mpd_set_positive(result);
+ result->exp = result->digits = result->len = 0;
+ *status |= MPD_Malloc_error;
+ return 0;
+ }
+
+ memcpy(result->data, p, result->alloc * (sizeof *result->data));
+ result->alloc = nwords;
+ mpd_set_dynamic_data(result);
+ return 1;
+}
+
+/*
+ * Input: 'result' is a static mpd_t with a static coefficient.
+ *
+ * Convert the coefficient to a dynamic one that is initialized to zero. If
+ * malloc fails, set 'result' to NaN and update 'status' with MPD_Malloc_error.
+ */
+int
+mpd_switch_to_dyn_zero(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
+{
+ mpd_uint_t *p = result->data;
+
+ result->data = mpd_calloc(nwords, sizeof *result->data);
+ if (result->data == NULL) {
+ result->data = p;
+ mpd_set_qnan(result);
+ mpd_set_positive(result);
+ result->exp = result->digits = result->len = 0;
+ *status |= MPD_Malloc_error;
+ return 0;
+ }
+
+ result->alloc = nwords;
+ mpd_set_dynamic_data(result);
+
+ return 1;
+}
+
+/*
+ * Input: 'result' is a static or a dynamic mpd_t with a dynamic coefficient.
+ * Resize the coefficient to length 'nwords':
+ * Case nwords > result->alloc:
+ * If realloc is successful:
+ * 'result' has a larger coefficient but the same value. Return 1.
+ * Otherwise:
+ * Set 'result' to NaN, update status with MPD_Malloc_error and return 0.
+ * Case nwords < result->alloc:
+ * If realloc is successful:
+ * 'result' has a smaller coefficient. result->len is undefined. Return 1.
+ * Otherwise (unlikely):
+ * 'result' is unchanged. Reuse the now oversized coefficient. Return 1.
+ */
+int
+mpd_realloc_dyn(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
+{
+ uint8_t err = 0;
+
+ result->data = mpd_realloc(result->data, nwords, sizeof *result->data, &err);
+ if (!err) {
+ result->alloc = nwords;
+ }
+ else if (nwords > result->alloc) {
+ mpd_set_qnan(result);
+ mpd_set_positive(result);
+ result->exp = result->digits = result->len = 0;
+ *status |= MPD_Malloc_error;
+ return 0;
+ }
+
+ return 1;
+}
+
+/*
+ * Input: 'result' is a static mpd_t with a static coefficient.
+ * Assumption: 'nwords' >= result->alloc.
+ *
+ * Resize the static coefficient to a larger dynamic one and copy the
+ * existing data.
+ *
+ * On failure the value of 'result' is unchanged.
+ */
+int
+mpd_switch_to_dyn_cxx(mpd_t *result, mpd_ssize_t nwords)
+{
+ assert(nwords >= result->alloc);
+
+ mpd_uint_t *data = mpd_alloc(nwords, sizeof *result->data);
+ if (data == NULL) {
+ return 0;
+ }
+
+ memcpy(data, result->data, result->alloc * (sizeof *result->data));
+ result->data = data;
+ result->alloc = nwords;
+ mpd_set_dynamic_data(result);
+ return 1;
+}
+
+/*
+ * Input: 'result' is a static or a dynamic mpd_t with a dynamic coefficient.
+ * Resize the coefficient to length 'nwords':
+ * Case nwords > result->alloc:
+ * If realloc is successful:
+ * 'result' has a larger coefficient but the same value. Return 1.
+ * Otherwise:
+ * 'result' has a the same coefficient. Return 0.
+ * Case nwords < result->alloc:
+ * If realloc is successful:
+ * 'result' has a smaller coefficient. result->len is undefined. Return 1.
+ * Otherwise (unlikely):
+ * 'result' is unchanged. Reuse the now oversized coefficient. Return 1.
+ */
+int
+mpd_realloc_dyn_cxx(mpd_t *result, mpd_ssize_t nwords)
+{
+ uint8_t err = 0;
+
+ mpd_uint_t *p = mpd_realloc(result->data, nwords, sizeof *result->data, &err);
+ if (!err) {
+ result->data = p;
+ result->alloc = nwords;
+ }
+ else if (nwords > result->alloc) {
+ return 0;
+ }
+
+ return 1;
+}
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.h
index f8f3ae2e5c..186808457b 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpalloc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,15 +26,15 @@
*/
-#ifndef LIBMPDEC_MPALLOC_H_
-#define LIBMPDEC_MPALLOC_H_
+#ifndef LIBMPDEC_MPALLOC_H_
+#define LIBMPDEC_MPALLOC_H_
#include "mpdecimal.h"
-#include <stdint.h>
+#include <stdint.h>
+
-
/* Internal header file: all symbols have local scope in the DSO */
MPD_PRAGMA(MPD_HIDE_SYMBOLS_START)
@@ -43,11 +43,11 @@ int mpd_switch_to_dyn(mpd_t *result, mpd_ssize_t size, uint32_t *status);
int mpd_switch_to_dyn_zero(mpd_t *result, mpd_ssize_t size, uint32_t *status);
int mpd_realloc_dyn(mpd_t *result, mpd_ssize_t size, uint32_t *status);
-int mpd_switch_to_dyn_cxx(mpd_t *result, mpd_ssize_t size);
-int mpd_realloc_dyn_cxx(mpd_t *result, mpd_ssize_t size);
+int mpd_switch_to_dyn_cxx(mpd_t *result, mpd_ssize_t size);
+int mpd_realloc_dyn_cxx(mpd_t *result, mpd_ssize_t size);
+
-
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_MPALLOC_H_ */
+#endif /* LIBMPDEC_MPALLOC_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpd_io.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpd_io.h
index 2c7a37c3dd..79d7c05ce3 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpd_io.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpd_io.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,20 +26,20 @@
*/
-#ifndef LIBMPDEC_IO_H_
-#define LIBMPDEC_IO_H_
+#ifndef LIBMPDEC_IO_H_
+#define LIBMPDEC_IO_H_
#include "mpdecimal.h"
-#include <stdint.h>
+#include <stdint.h>
+
-
#if SIZE_MAX == MPD_SIZE_MAX
#define mpd_strtossize _mpd_strtossize
#else
-#include <errno.h>
-
+#include <errno.h>
+
static inline mpd_ssize_t
mpd_strtossize(const char *s, char **end, int base)
{
@@ -59,4 +59,4 @@ mpd_strtossize(const char *s, char **end, int base)
#endif
-#endif /* LIBMPDEC_IO_H_ */
+#endif /* LIBMPDEC_IO_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.c
index a73d20bd68..28b639ccb4 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,17 +27,17 @@
#include "mpdecimal.h"
-
-#include <assert.h>
-#include <limits.h>
-#include <math.h>
+
+#include <assert.h>
+#include <limits.h>
+#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-
+
#include "basearith.h"
#include "bits.h"
-#include "constants.h"
+#include "constants.h"
#include "convolute.h"
#include "crt.h"
#include "mpalloc.h"
@@ -64,7 +64,7 @@
#if defined(_MSC_VER)
#define ALWAYS_INLINE __forceinline
-#elif defined(__IBMC__) || defined(LEGACY_COMPILER)
+#elif defined(__IBMC__) || defined(LEGACY_COMPILER)
#define ALWAYS_INLINE
#undef inline
#define inline
@@ -244,7 +244,7 @@ mpd_lsd(mpd_uint_t word)
}
/* Coefficient size needed to store 'digits' */
-mpd_ssize_t
+mpd_ssize_t
mpd_digits_to_size(mpd_ssize_t digits)
{
mpd_ssize_t q, r;
@@ -263,9 +263,9 @@ mpd_exp_digits(mpd_ssize_t exp)
/* Canonical */
ALWAYS_INLINE int
-mpd_iscanonical(const mpd_t *dec)
+mpd_iscanonical(const mpd_t *dec)
{
- (void)dec;
+ (void)dec;
return 1;
}
@@ -516,28 +516,28 @@ mpd_qresize(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
return mpd_realloc_dyn(result, nwords, status);
}
-/* Same as mpd_qresize, but do not set the result no NaN on failure. */
-static ALWAYS_INLINE int
-mpd_qresize_cxx(mpd_t *result, mpd_ssize_t nwords)
-{
- assert(!mpd_isconst_data(result)); /* illegal operation for a const */
- assert(!mpd_isshared_data(result)); /* illegal operation for a shared */
- assert(MPD_MINALLOC <= result->alloc);
-
- nwords = (nwords <= MPD_MINALLOC) ? MPD_MINALLOC : nwords;
- if (nwords == result->alloc) {
- return 1;
- }
- if (mpd_isstatic_data(result)) {
- if (nwords > result->alloc) {
- return mpd_switch_to_dyn_cxx(result, nwords);
- }
- return 1;
- }
-
- return mpd_realloc_dyn_cxx(result, nwords);
-}
-
+/* Same as mpd_qresize, but do not set the result no NaN on failure. */
+static ALWAYS_INLINE int
+mpd_qresize_cxx(mpd_t *result, mpd_ssize_t nwords)
+{
+ assert(!mpd_isconst_data(result)); /* illegal operation for a const */
+ assert(!mpd_isshared_data(result)); /* illegal operation for a shared */
+ assert(MPD_MINALLOC <= result->alloc);
+
+ nwords = (nwords <= MPD_MINALLOC) ? MPD_MINALLOC : nwords;
+ if (nwords == result->alloc) {
+ return 1;
+ }
+ if (mpd_isstatic_data(result)) {
+ if (nwords > result->alloc) {
+ return mpd_switch_to_dyn_cxx(result, nwords);
+ }
+ return 1;
+ }
+
+ return mpd_realloc_dyn_cxx(result, nwords);
+}
+
/* Same as mpd_qresize, but the complete coefficient (including the old
* memory area!) is initialized to zero. */
ALWAYS_INLINE int
@@ -1218,7 +1218,7 @@ _c32setu64(mpd_t *result, uint64_t u, uint8_t sign, uint32_t *status)
result->data[i] = w[i];
}
- mpd_set_flags(result, sign);
+ mpd_set_flags(result, sign);
result->exp = 0;
result->len = len;
mpd_setdigits(result);
@@ -1270,26 +1270,26 @@ mpd_qset_i64(mpd_t *result, int64_t a, const mpd_context_t *ctx,
#endif
}
-/* quietly set a decimal from an int64_t, use a maxcontext for conversion */
-void
-mpd_qset_i64_exact(mpd_t *result, int64_t a, uint32_t *status)
-{
- mpd_context_t maxcontext;
-
- mpd_maxcontext(&maxcontext);
-#ifdef CONFIG_64
- mpd_qset_ssize(result, a, &maxcontext, status);
-#else
- _c32_qset_i64(result, a, &maxcontext, status);
-#endif
-
- if (*status & (MPD_Inexact|MPD_Rounded|MPD_Clamped)) {
- /* we want exact results */
- mpd_seterror(result, MPD_Invalid_operation, status);
- }
- *status &= MPD_Errors;
-}
-
+/* quietly set a decimal from an int64_t, use a maxcontext for conversion */
+void
+mpd_qset_i64_exact(mpd_t *result, int64_t a, uint32_t *status)
+{
+ mpd_context_t maxcontext;
+
+ mpd_maxcontext(&maxcontext);
+#ifdef CONFIG_64
+ mpd_qset_ssize(result, a, &maxcontext, status);
+#else
+ _c32_qset_i64(result, a, &maxcontext, status);
+#endif
+
+ if (*status & (MPD_Inexact|MPD_Rounded|MPD_Clamped)) {
+ /* we want exact results */
+ mpd_seterror(result, MPD_Invalid_operation, status);
+ }
+ *status &= MPD_Errors;
+}
+
/* quietly set a decimal from a uint64_t */
void
mpd_qset_u64(mpd_t *result, uint64_t a, const mpd_context_t *ctx,
@@ -1301,26 +1301,26 @@ mpd_qset_u64(mpd_t *result, uint64_t a, const mpd_context_t *ctx,
_c32_qset_u64(result, a, ctx, status);
#endif
}
-
-/* quietly set a decimal from a uint64_t, use a maxcontext for conversion */
-void
-mpd_qset_u64_exact(mpd_t *result, uint64_t a, uint32_t *status)
-{
- mpd_context_t maxcontext;
-
- mpd_maxcontext(&maxcontext);
-#ifdef CONFIG_64
- mpd_qset_uint(result, a, &maxcontext, status);
-#else
- _c32_qset_u64(result, a, &maxcontext, status);
-#endif
-
- if (*status & (MPD_Inexact|MPD_Rounded|MPD_Clamped)) {
- /* we want exact results */
- mpd_seterror(result, MPD_Invalid_operation, status);
- }
- *status &= MPD_Errors;
-}
+
+/* quietly set a decimal from a uint64_t, use a maxcontext for conversion */
+void
+mpd_qset_u64_exact(mpd_t *result, uint64_t a, uint32_t *status)
+{
+ mpd_context_t maxcontext;
+
+ mpd_maxcontext(&maxcontext);
+#ifdef CONFIG_64
+ mpd_qset_uint(result, a, &maxcontext, status);
+#else
+ _c32_qset_u64(result, a, &maxcontext, status);
+#endif
+
+ if (*status & (MPD_Inexact|MPD_Rounded|MPD_Clamped)) {
+ /* we want exact results */
+ mpd_seterror(result, MPD_Invalid_operation, status);
+ }
+ *status &= MPD_Errors;
+}
#endif /* !LEGACY_COMPILER */
/*
@@ -1410,13 +1410,13 @@ mpd_qabs_uint(const mpd_t *a, uint32_t *status)
mpd_ssize_t
mpd_qget_ssize(const mpd_t *a, uint32_t *status)
{
- uint32_t workstatus = 0;
+ uint32_t workstatus = 0;
mpd_uint_t u;
int isneg;
- u = mpd_qabs_uint(a, &workstatus);
- if (workstatus&MPD_Invalid_operation) {
- *status |= workstatus;
+ u = mpd_qabs_uint(a, &workstatus);
+ if (workstatus&MPD_Invalid_operation) {
+ *status |= workstatus;
return MPD_SSIZE_MAX;
}
@@ -1536,11 +1536,11 @@ mpd_qget_i64(const mpd_t *a, uint32_t *status)
uint32_t
mpd_qget_u32(const mpd_t *a, uint32_t *status)
{
- uint32_t workstatus = 0;
- uint64_t x = mpd_qget_uint(a, &workstatus);
+ uint32_t workstatus = 0;
+ uint64_t x = mpd_qget_uint(a, &workstatus);
- if (workstatus&MPD_Invalid_operation) {
- *status |= workstatus;
+ if (workstatus&MPD_Invalid_operation) {
+ *status |= workstatus;
return UINT32_MAX;
}
if (x > UINT32_MAX) {
@@ -1555,11 +1555,11 @@ mpd_qget_u32(const mpd_t *a, uint32_t *status)
int32_t
mpd_qget_i32(const mpd_t *a, uint32_t *status)
{
- uint32_t workstatus = 0;
- int64_t x = mpd_qget_ssize(a, &workstatus);
+ uint32_t workstatus = 0;
+ int64_t x = mpd_qget_ssize(a, &workstatus);
- if (workstatus&MPD_Invalid_operation) {
- *status |= workstatus;
+ if (workstatus&MPD_Invalid_operation) {
+ *status |= workstatus;
return INT32_MAX;
}
if (x < INT32_MIN || x > INT32_MAX) {
@@ -1575,20 +1575,20 @@ mpd_qget_i32(const mpd_t *a, uint32_t *status)
uint64_t
mpd_qget_u64(const mpd_t *a, uint32_t *status)
{
- uint32_t workstatus = 0;
- uint64_t x = _c32_qget_u64(1, a, &workstatus);
- *status |= workstatus;
- return x;
+ uint32_t workstatus = 0;
+ uint64_t x = _c32_qget_u64(1, a, &workstatus);
+ *status |= workstatus;
+ return x;
}
/* quietly get an int64_t from a decimal */
int64_t
mpd_qget_i64(const mpd_t *a, uint32_t *status)
{
- uint32_t workstatus = 0;
- int64_t x = _c32_qget_i64(a, &workstatus);
- *status |= workstatus;
- return x;
+ uint32_t workstatus = 0;
+ int64_t x = _c32_qget_i64(a, &workstatus);
+ *status |= workstatus;
+ return x;
}
#endif
@@ -2014,25 +2014,25 @@ mpd_qcopy(mpd_t *result, const mpd_t *a, uint32_t *status)
return 1;
}
-/* Same as mpd_qcopy, but do not set the result to NaN on failure. */
-int
-mpd_qcopy_cxx(mpd_t *result, const mpd_t *a)
-{
- if (result == a) return 1;
-
- if (!mpd_qresize_cxx(result, a->len)) {
- return 0;
- }
-
- mpd_copy_flags(result, a);
- result->exp = a->exp;
- result->digits = a->digits;
- result->len = a->len;
- memcpy(result->data, a->data, a->len * (sizeof *result->data));
-
- return 1;
-}
-
+/* Same as mpd_qcopy, but do not set the result to NaN on failure. */
+int
+mpd_qcopy_cxx(mpd_t *result, const mpd_t *a)
+{
+ if (result == a) return 1;
+
+ if (!mpd_qresize_cxx(result, a->len)) {
+ return 0;
+ }
+
+ mpd_copy_flags(result, a);
+ result->exp = a->exp;
+ result->digits = a->digits;
+ result->len = a->len;
+ memcpy(result->data, a->data, a->len * (sizeof *result->data));
+
+ return 1;
+}
+
/*
* Copy to a decimal with a static buffer. The caller has to make sure that
* the buffer is big enough. Cannot fail.
@@ -3876,72 +3876,72 @@ void
mpd_qdiv(mpd_t *q, const mpd_t *a, const mpd_t *b,
const mpd_context_t *ctx, uint32_t *status)
{
- MPD_NEW_STATIC(aa,0,0,0,0);
- MPD_NEW_STATIC(bb,0,0,0,0);
- uint32_t xstatus = 0;
-
- if (q == a) {
- if (!mpd_qcopy(&aa, a, status)) {
- mpd_seterror(q, MPD_Malloc_error, status);
- goto out;
- }
- a = &aa;
- }
-
- if (q == b) {
- if (!mpd_qcopy(&bb, b, status)) {
- mpd_seterror(q, MPD_Malloc_error, status);
- goto out;
- }
- b = &bb;
- }
-
- _mpd_qdiv(SET_IDEAL_EXP, q, a, b, ctx, &xstatus);
-
- if (xstatus & (MPD_Malloc_error|MPD_Division_impossible)) {
- /* Inexact quotients (the usual case) fill the entire context precision,
- * which can lead to the above errors for very high precisions. Retry
- * the operation with a lower precision in case the result is exact.
- *
- * We need an upper bound for the number of digits of a_coeff / b_coeff
- * when the result is exact. If a_coeff' * 1 / b_coeff' is in lowest
- * terms, then maxdigits(a_coeff') + maxdigits(1 / b_coeff') is a suitable
- * bound.
- *
- * 1 / b_coeff' is exact iff b_coeff' exclusively has prime factors 2 or 5.
- * The largest amount of digits is generated if b_coeff' is a power of 2 or
- * a power of 5 and is less than or equal to log5(b_coeff') <= log2(b_coeff').
- *
- * We arrive at a total upper bound:
- *
- * maxdigits(a_coeff') + maxdigits(1 / b_coeff') <=
- * log10(a_coeff) + log2(b_coeff) =
- * log10(a_coeff) + log10(b_coeff) / log10(2) <=
- * a->digits + b->digits * 4;
- */
- mpd_context_t workctx = *ctx;
- uint32_t ystatus = 0;
-
- workctx.prec = a->digits + b->digits * 4;
- if (workctx.prec >= ctx->prec) {
- *status |= (xstatus&MPD_Errors);
- goto out; /* No point in retrying, keep the original error. */
- }
-
- _mpd_qdiv(SET_IDEAL_EXP, q, a, b, &workctx, &ystatus);
- if (ystatus != 0) {
- ystatus = *status | ((ystatus|xstatus)&MPD_Errors);
- mpd_seterror(q, ystatus, status);
- }
- }
- else {
- *status |= xstatus;
- }
-
-
-out:
- mpd_del(&aa);
- mpd_del(&bb);
+ MPD_NEW_STATIC(aa,0,0,0,0);
+ MPD_NEW_STATIC(bb,0,0,0,0);
+ uint32_t xstatus = 0;
+
+ if (q == a) {
+ if (!mpd_qcopy(&aa, a, status)) {
+ mpd_seterror(q, MPD_Malloc_error, status);
+ goto out;
+ }
+ a = &aa;
+ }
+
+ if (q == b) {
+ if (!mpd_qcopy(&bb, b, status)) {
+ mpd_seterror(q, MPD_Malloc_error, status);
+ goto out;
+ }
+ b = &bb;
+ }
+
+ _mpd_qdiv(SET_IDEAL_EXP, q, a, b, ctx, &xstatus);
+
+ if (xstatus & (MPD_Malloc_error|MPD_Division_impossible)) {
+ /* Inexact quotients (the usual case) fill the entire context precision,
+ * which can lead to the above errors for very high precisions. Retry
+ * the operation with a lower precision in case the result is exact.
+ *
+ * We need an upper bound for the number of digits of a_coeff / b_coeff
+ * when the result is exact. If a_coeff' * 1 / b_coeff' is in lowest
+ * terms, then maxdigits(a_coeff') + maxdigits(1 / b_coeff') is a suitable
+ * bound.
+ *
+ * 1 / b_coeff' is exact iff b_coeff' exclusively has prime factors 2 or 5.
+ * The largest amount of digits is generated if b_coeff' is a power of 2 or
+ * a power of 5 and is less than or equal to log5(b_coeff') <= log2(b_coeff').
+ *
+ * We arrive at a total upper bound:
+ *
+ * maxdigits(a_coeff') + maxdigits(1 / b_coeff') <=
+ * log10(a_coeff) + log2(b_coeff) =
+ * log10(a_coeff) + log10(b_coeff) / log10(2) <=
+ * a->digits + b->digits * 4;
+ */
+ mpd_context_t workctx = *ctx;
+ uint32_t ystatus = 0;
+
+ workctx.prec = a->digits + b->digits * 4;
+ if (workctx.prec >= ctx->prec) {
+ *status |= (xstatus&MPD_Errors);
+ goto out; /* No point in retrying, keep the original error. */
+ }
+
+ _mpd_qdiv(SET_IDEAL_EXP, q, a, b, &workctx, &ystatus);
+ if (ystatus != 0) {
+ ystatus = *status | ((ystatus|xstatus)&MPD_Errors);
+ mpd_seterror(q, ystatus, status);
+ }
+ }
+ else {
+ *status |= xstatus;
+ }
+
+
+out:
+ mpd_del(&aa);
+ mpd_del(&bb);
}
/* Internal function. */
@@ -4031,7 +4031,7 @@ _mpd_qdivmod(mpd_t *q, mpd_t *r, const mpd_t *a, const mpd_t *b,
}
if (b->len == 1) {
- assert(b->data[0] != 0); /* annotation for scan-build */
+ assert(b->data[0] != 0); /* annotation for scan-build */
if (a->len == 1) {
_mpd_div_word(&q->data[0], &r->data[0], a->data[0], b->data[0]);
}
@@ -6376,11 +6376,11 @@ _mpd_qpow_int(mpd_t *result, const mpd_t *base, const mpd_t *exp,
workctx.round = MPD_ROUND_HALF_EVEN;
workctx.clamp = 0;
if (mpd_isnegative(exp)) {
- uint32_t workstatus = 0;
+ uint32_t workstatus = 0;
workctx.prec += 1;
- mpd_qdiv(&tbase, &one, base, &workctx, &workstatus);
- *status |= workstatus;
- if (workstatus&MPD_Errors) {
+ mpd_qdiv(&tbase, &one, base, &workctx, &workstatus);
+ *status |= workstatus;
+ if (workstatus&MPD_Errors) {
mpd_setspecial(result, MPD_POS, MPD_NAN);
goto finish;
}
@@ -7115,8 +7115,8 @@ mpd_qrem_near(mpd_t *r, const mpd_t *a, const mpd_t *b,
mpd_ssize_t expdiff, qdigits;
int cmp, isodd, allnine;
- assert(r != NULL); /* annotation for scan-build */
-
+ assert(r != NULL); /* annotation for scan-build */
+
if (mpd_isspecial(a) || mpd_isspecial(b)) {
if (mpd_qcheck_nans(r, a, b, ctx, status)) {
return;
@@ -7347,11 +7347,11 @@ void
mpd_qtrunc(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
uint32_t *status)
{
- if (mpd_isspecial(a)) {
- mpd_seterror(result, MPD_Invalid_operation, status);
- return;
- }
-
+ if (mpd_isspecial(a)) {
+ mpd_seterror(result, MPD_Invalid_operation, status);
+ return;
+ }
+
(void)_mpd_qround_to_integral(TO_INT_TRUNC, result, a, ctx, status);
}
@@ -7360,12 +7360,12 @@ mpd_qfloor(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
uint32_t *status)
{
mpd_context_t workctx = *ctx;
-
- if (mpd_isspecial(a)) {
- mpd_seterror(result, MPD_Invalid_operation, status);
- return;
- }
-
+
+ if (mpd_isspecial(a)) {
+ mpd_seterror(result, MPD_Invalid_operation, status);
+ return;
+ }
+
workctx.round = MPD_ROUND_FLOOR;
(void)_mpd_qround_to_integral(TO_INT_SILENT, result, a,
&workctx, status);
@@ -7376,12 +7376,12 @@ mpd_qceil(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
uint32_t *status)
{
mpd_context_t workctx = *ctx;
-
- if (mpd_isspecial(a)) {
- mpd_seterror(result, MPD_Invalid_operation, status);
- return;
- }
-
+
+ if (mpd_isspecial(a)) {
+ mpd_seterror(result, MPD_Invalid_operation, status);
+ return;
+ }
+
workctx.round = MPD_ROUND_CEILING;
(void)_mpd_qround_to_integral(TO_INT_SILENT, result, a,
&workctx, status);
@@ -7885,9 +7885,9 @@ mpd_qinvroot(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
/* END LIBMPDEC_ONLY */
/* Algorithm from decimal.py */
-static void
-_mpd_qsqrt(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
- uint32_t *status)
+static void
+_mpd_qsqrt(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
+ uint32_t *status)
{
mpd_context_t maxcontext;
MPD_NEW_STATIC(c,0,0,0,0);
@@ -8019,57 +8019,57 @@ malloc_error:
goto out;
}
-void
-mpd_qsqrt(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
- uint32_t *status)
-{
- MPD_NEW_STATIC(aa,0,0,0,0);
- uint32_t xstatus = 0;
-
- if (result == a) {
- if (!mpd_qcopy(&aa, a, status)) {
- mpd_seterror(result, MPD_Malloc_error, status);
- goto out;
- }
- a = &aa;
- }
-
- _mpd_qsqrt(result, a, ctx, &xstatus);
-
- if (xstatus & (MPD_Malloc_error|MPD_Division_impossible)) {
- /* The above conditions can occur at very high context precisions
- * if intermediate values get too large. Retry the operation with
- * a lower context precision in case the result is exact.
- *
- * If the result is exact, an upper bound for the number of digits
- * is the number of digits in the input.
- *
- * NOTE: sqrt(40e9) = 2.0e+5 /\ digits(40e9) = digits(2.0e+5) = 2
- */
- uint32_t ystatus = 0;
- mpd_context_t workctx = *ctx;
-
- workctx.prec = a->digits;
- if (workctx.prec >= ctx->prec) {
- *status |= (xstatus|MPD_Errors);
- goto out; /* No point in repeating this, keep the original error. */
- }
-
- _mpd_qsqrt(result, a, &workctx, &ystatus);
- if (ystatus != 0) {
- ystatus = *status | ((xstatus|ystatus)&MPD_Errors);
- mpd_seterror(result, ystatus, status);
- }
- }
- else {
- *status |= xstatus;
- }
-
-out:
- mpd_del(&aa);
-}
-
-
+void
+mpd_qsqrt(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,
+ uint32_t *status)
+{
+ MPD_NEW_STATIC(aa,0,0,0,0);
+ uint32_t xstatus = 0;
+
+ if (result == a) {
+ if (!mpd_qcopy(&aa, a, status)) {
+ mpd_seterror(result, MPD_Malloc_error, status);
+ goto out;
+ }
+ a = &aa;
+ }
+
+ _mpd_qsqrt(result, a, ctx, &xstatus);
+
+ if (xstatus & (MPD_Malloc_error|MPD_Division_impossible)) {
+ /* The above conditions can occur at very high context precisions
+ * if intermediate values get too large. Retry the operation with
+ * a lower context precision in case the result is exact.
+ *
+ * If the result is exact, an upper bound for the number of digits
+ * is the number of digits in the input.
+ *
+ * NOTE: sqrt(40e9) = 2.0e+5 /\ digits(40e9) = digits(2.0e+5) = 2
+ */
+ uint32_t ystatus = 0;
+ mpd_context_t workctx = *ctx;
+
+ workctx.prec = a->digits;
+ if (workctx.prec >= ctx->prec) {
+ *status |= (xstatus|MPD_Errors);
+ goto out; /* No point in repeating this, keep the original error. */
+ }
+
+ _mpd_qsqrt(result, a, &workctx, &ystatus);
+ if (ystatus != 0) {
+ ystatus = *status | ((xstatus|ystatus)&MPD_Errors);
+ mpd_seterror(result, ystatus, status);
+ }
+ }
+ else {
+ *status |= xstatus;
+ }
+
+out:
+ mpd_del(&aa);
+}
+
+
/******************************************************************************/
/* Base conversions */
/******************************************************************************/
@@ -8080,7 +8080,7 @@ mpd_sizeinbase(const mpd_t *a, uint32_t base)
{
double x;
size_t digits;
- double upper_bound;
+ double upper_bound;
assert(mpd_isinteger(a));
assert(base >= 2);
@@ -8097,14 +8097,14 @@ mpd_sizeinbase(const mpd_t *a, uint32_t base)
if (digits > 2711437152599294ULL) {
return SIZE_MAX;
}
-
- upper_bound = (double)((1ULL<<53)-1);
-#else
- upper_bound = (double)(SIZE_MAX-1);
+
+ upper_bound = (double)((1ULL<<53)-1);
+#else
+ upper_bound = (double)(SIZE_MAX-1);
#endif
x = (double)digits / log10(base);
- return (x > upper_bound) ? SIZE_MAX : (size_t)x + 1;
+ return (x > upper_bound) ? SIZE_MAX : (size_t)x + 1;
}
/* Space needed to import a base 'base' integer of length 'srclen'. */
@@ -8112,7 +8112,7 @@ static mpd_ssize_t
_mpd_importsize(size_t srclen, uint32_t base)
{
double x;
- double upper_bound;
+ double upper_bound;
assert(srclen > 0);
assert(base >= 2);
@@ -8121,15 +8121,15 @@ _mpd_importsize(size_t srclen, uint32_t base)
if (srclen > (1ULL<<53)) {
return MPD_SSIZE_MAX;
}
-
- assert((1ULL<<53) <= MPD_MAXIMPORT);
- upper_bound = (double)((1ULL<<53)-1);
-#else
- upper_bound = MPD_MAXIMPORT-1;
+
+ assert((1ULL<<53) <= MPD_MAXIMPORT);
+ upper_bound = (double)((1ULL<<53)-1);
+#else
+ upper_bound = MPD_MAXIMPORT-1;
#endif
x = (double)srclen * (log10(base)/MPD_RDIGITS);
- return (x > upper_bound) ? MPD_SSIZE_MAX : (mpd_ssize_t)x + 1;
+ return (x > upper_bound) ? MPD_SSIZE_MAX : (mpd_ssize_t)x + 1;
}
static uint8_t
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.h
index 10adca58de..f66f6e5920 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/mpdecimal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,42 +26,42 @@
*/
-#ifndef LIBMPDEC_MPDECIMAL_H_
-#define LIBMPDEC_MPDECIMAL_H_
+#ifndef LIBMPDEC_MPDECIMAL_H_
+#define LIBMPDEC_MPDECIMAL_H_
-#ifndef _MSC_VER
- #include "pyconfig.h"
-#endif
-
+#ifndef _MSC_VER
+ #include "pyconfig.h"
+#endif
+
#ifdef __cplusplus
- #include <cinttypes>
- #include <climits>
- #include <cstdint>
- #include <cstdio>
- #include <cstdlib>
+ #include <cinttypes>
+ #include <climits>
+ #include <cstdint>
+ #include <cstdio>
+ #include <cstdlib>
extern "C" {
-#else
- #include <inttypes.h>
- #include <limits.h>
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
+#else
+ #include <inttypes.h>
+ #include <limits.h>
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <stdlib.h>
#endif
-#if (defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)) && \
- defined(__GNUC__) && __GNUC__ >= 4 && !defined(__INTEL_COMPILER)
- #define MPD_PRAGMA(x) _Pragma(x)
- #define MPD_HIDE_SYMBOLS_START "GCC visibility push(hidden)"
- #define MPD_HIDE_SYMBOLS_END "GCC visibility pop"
-#else
- #define MPD_PRAGMA(x)
- #define MPD_HIDE_SYMBOLS_START
- #define MPD_HIDE_SYMBOLS_END
+#if (defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)) && \
+ defined(__GNUC__) && __GNUC__ >= 4 && !defined(__INTEL_COMPILER)
+ #define MPD_PRAGMA(x) _Pragma(x)
+ #define MPD_HIDE_SYMBOLS_START "GCC visibility push(hidden)"
+ #define MPD_HIDE_SYMBOLS_END "GCC visibility pop"
+#else
+ #define MPD_PRAGMA(x)
+ #define MPD_HIDE_SYMBOLS_START
+ #define MPD_HIDE_SYMBOLS_END
#endif
-#if defined(_MSC_VER)
+#if defined(_MSC_VER)
#include "vccompat.h"
#define EXTINLINE extern inline
#else
@@ -89,10 +89,10 @@ MPD_PRAGMA(MPD_HIDE_SYMBOLS_START)
/******************************************************************************/
#define MPD_MAJOR_VERSION 2
-#define MPD_MINOR_VERSION 5
-#define MPD_MICRO_VERSION 0
+#define MPD_MINOR_VERSION 5
+#define MPD_MICRO_VERSION 0
-#define MPD_VERSION "2.5.0"
+#define MPD_VERSION "2.5.0"
#define MPD_VERSION_HEX ((MPD_MAJOR_VERSION << 24) | \
(MPD_MINOR_VERSION << 16) | \
@@ -121,9 +121,9 @@ const char *mpd_version(void);
#elif defined(__x86_64__)
#define CONFIG_64
#define ASM
- #elif defined(__arm64__)
- #define CONFIG_64
- #define ANSI
+ #elif defined(__arm64__)
+ #define CONFIG_64
+ #define ANSI
#else
#error "unknown architecture for universal build."
#endif
@@ -412,7 +412,7 @@ void mpd_print(const mpd_t *dec);
/* assignment from a string */
void mpd_qset_string(mpd_t *dec, const char *s, const mpd_context_t *ctx, uint32_t *status);
-void mpd_qset_string_exact(mpd_t *dec, const char *s, uint32_t *status);
+void mpd_qset_string_exact(mpd_t *dec, const char *s, uint32_t *status);
/* set to NaN with error flags */
void mpd_seterror(mpd_t *result, uint32_t flags, uint32_t *status);
@@ -430,8 +430,8 @@ void mpd_qset_u32(mpd_t *result, uint32_t a, const mpd_context_t *ctx, uint32_t
#ifndef LEGACY_COMPILER
void mpd_qset_i64(mpd_t *result, int64_t a, const mpd_context_t *ctx, uint32_t *status);
void mpd_qset_u64(mpd_t *result, uint64_t a, const mpd_context_t *ctx, uint32_t *status);
-void mpd_qset_i64_exact(mpd_t *result, int64_t a, uint32_t *status);
-void mpd_qset_u64_exact(mpd_t *result, uint64_t a, uint32_t *status);
+void mpd_qset_i64_exact(mpd_t *result, int64_t a, uint32_t *status);
+void mpd_qset_u64_exact(mpd_t *result, uint64_t a, uint32_t *status);
#endif
/* quietly assign a C integer type to an mpd_t with a static coefficient */
@@ -459,8 +459,8 @@ void mpd_qfinalize(mpd_t *result, const mpd_context_t *ctx, uint32_t *status);
const char *mpd_class(const mpd_t *a, const mpd_context_t *ctx);
-int mpd_qcopy(mpd_t *result, const mpd_t *a, uint32_t *status);
-int mpd_qcopy_cxx(mpd_t *result, const mpd_t *a);
+int mpd_qcopy(mpd_t *result, const mpd_t *a, uint32_t *status);
+int mpd_qcopy_cxx(mpd_t *result, const mpd_t *a);
mpd_t *mpd_qncopy(const mpd_t *a);
int mpd_qcopy_abs(mpd_t *result, const mpd_t *a, uint32_t *status);
int mpd_qcopy_negate(mpd_t *result, const mpd_t *a, uint32_t *status);
@@ -714,7 +714,7 @@ EXTINLINE mpd_uint_t mpd_lsd(mpd_uint_t word);
EXTINLINE mpd_ssize_t mpd_digits_to_size(mpd_ssize_t digits);
/* number of digits in the exponent, undefined for MPD_SSIZE_MIN */
EXTINLINE int mpd_exp_digits(mpd_ssize_t exp);
-EXTINLINE int mpd_iscanonical(const mpd_t *dec);
+EXTINLINE int mpd_iscanonical(const mpd_t *dec);
EXTINLINE int mpd_isfinite(const mpd_t *dec);
EXTINLINE int mpd_isinfinite(const mpd_t *dec);
EXTINLINE int mpd_isinteger(const mpd_t *dec);
@@ -830,4 +830,4 @@ MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
#endif
-#endif /* LIBMPDEC_MPDECIMAL_H_ */
+#endif /* LIBMPDEC_MPDECIMAL_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.c
index b476b8682c..210e0deb37 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,12 +27,12 @@
#include "mpdecimal.h"
-
-#include <assert.h>
+
+#include <assert.h>
#include <stdlib.h>
-
+
#include "bits.h"
-#include "numbertheory.h"
+#include "numbertheory.h"
#include "umodarith.h"
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.h
index 20db08b080..47b7753b83 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/numbertheory.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,11 +26,11 @@
*/
-#ifndef LIBMPDEC_NUMBERTHEORY_H_
-#define LIBMPDEC_NUMBERTHEORY_H_
+#ifndef LIBMPDEC_NUMBERTHEORY_H_
+#define LIBMPDEC_NUMBERTHEORY_H_
-#include "mpdecimal.h"
+#include "mpdecimal.h"
#include "constants.h"
@@ -73,4 +73,4 @@ std_setmodulus(int modnum, mpd_uint_t *umod)
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_NUMBERTHEORY_H_ */
+#endif /* LIBMPDEC_NUMBERTHEORY_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.c
index 8e643603ac..a4d1dbed78 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,15 +27,15 @@
#include "mpdecimal.h"
-
-#include <assert.h>
+
+#include <assert.h>
#include <stdio.h>
-
+
#include "bits.h"
-#include "constants.h"
+#include "constants.h"
#include "difradix2.h"
#include "numbertheory.h"
-#include "sixstep.h"
+#include "sixstep.h"
#include "transpose.h"
#include "umodarith.h"
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.h
index 6af6243a14..89b4a33afc 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/sixstep.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_SIXSTEP_H_
-#define LIBMPDEC_SIXSTEP_H_
+#ifndef LIBMPDEC_SIXSTEP_H_
+#define LIBMPDEC_SIXSTEP_H_
#include "mpdecimal.h"
@@ -44,4 +44,4 @@ int inv_six_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum);
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_SIXSTEP_H_ */
+#endif /* LIBMPDEC_SIXSTEP_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.c b/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.c
index 4604335622..56321b5f39 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.c
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,16 +27,16 @@
#include "mpdecimal.h"
-
-#include <assert.h>
-#include <limits.h>
+
+#include <assert.h>
+#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-
+
#include "bits.h"
#include "constants.h"
-#include "transpose.h"
+#include "transpose.h"
#include "typearith.h"
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.h
index ec6da2b7c5..e91c18d743 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/transpose.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,8 +26,8 @@
*/
-#ifndef LIBMPDEC_TRANSPOSE_H_
-#define LIBMPDEC_TRANSPOSE_H_
+#ifndef LIBMPDEC_TRANSPOSE_H_
+#define LIBMPDEC_TRANSPOSE_H_
#include "mpdecimal.h"
@@ -58,4 +58,4 @@ static inline void pointerswap(mpd_uint_t **a, mpd_uint_t **b)
MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
-#endif /* LIBMPDEC_TRANSPOSE_H_ */
+#endif /* LIBMPDEC_TRANSPOSE_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/typearith.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/typearith.h
index 886c527296..47961788d7 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/typearith.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/typearith.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,15 +26,15 @@
*/
-#ifndef LIBMPDEC_TYPEARITH_H_
-#define LIBMPDEC_TYPEARITH_H_
+#ifndef LIBMPDEC_TYPEARITH_H_
+#define LIBMPDEC_TYPEARITH_H_
#include "mpdecimal.h"
-#include <assert.h>
+#include <assert.h>
+
-
/*****************************************************************************/
/* Low level native arithmetic on basic types */
/*****************************************************************************/
@@ -665,4 +665,4 @@ mulmod_size_t(mpd_size_t a, mpd_size_t b, mpd_size_t m)
}
-#endif /* LIBMPDEC_TYPEARITH_H_ */
+#endif /* LIBMPDEC_TYPEARITH_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/umodarith.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/umodarith.h
index 62633ae395..d7dbbbe6a7 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/umodarith.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/umodarith.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,12 +26,12 @@
*/
-#ifndef LIBMPDEC_UMODARITH_H_
-#define LIBMPDEC_UMODARITH_H_
+#ifndef LIBMPDEC_UMODARITH_H_
+#define LIBMPDEC_UMODARITH_H_
-#include "mpdecimal.h"
-
+#include "mpdecimal.h"
+
#include "constants.h"
#include "typearith.h"
@@ -645,4 +645,4 @@ ppro_powmod(mpd_uint_t base, mpd_uint_t exp, double *dmod, uint32_t *dinvmod)
#endif /* CONFIG_32 */
-#endif /* LIBMPDEC_UMODARITH_H_ */
+#endif /* LIBMPDEC_UMODARITH_H_ */
diff --git a/contrib/tools/python3/src/Modules/_decimal/libmpdec/vccompat.h b/contrib/tools/python3/src/Modules/_decimal/libmpdec/vccompat.h
index 8e349a7cf0..e2e1c42cc0 100644
--- a/contrib/tools/python3/src/Modules/_decimal/libmpdec/vccompat.h
+++ b/contrib/tools/python3/src/Modules/_decimal/libmpdec/vccompat.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
+ * Copyright (c) 2008-2020 Stefan Krah. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,16 +26,16 @@
*/
-#ifndef LIBMPDEC_VCCOMPAT_H_
-#define LIBMPDEC_VCCOMPAT_H_
+#ifndef LIBMPDEC_VCCOMPAT_H_
+#define LIBMPDEC_VCCOMPAT_H_
-/* Visual C fixes: no snprintf ... */
+/* Visual C fixes: no snprintf ... */
#ifdef _MSC_VER
- #ifndef __cplusplus
- #undef inline
- #define inline __inline
- #endif
+ #ifndef __cplusplus
+ #undef inline
+ #define inline __inline
+ #endif
#undef random
#define random rand
#undef srandom
@@ -53,4 +53,4 @@
#endif
-#endif /* LIBMPDEC_VCCOMPAT_H_ */
+#endif /* LIBMPDEC_VCCOMPAT_H_ */
diff --git a/contrib/tools/python3/src/Modules/_elementtree.c b/contrib/tools/python3/src/Modules/_elementtree.c
index 3837b48344..d9c2a23ccb 100644
--- a/contrib/tools/python3/src/Modules/_elementtree.c
+++ b/contrib/tools/python3/src/Modules/_elementtree.c
@@ -1,6 +1,6 @@
/*--------------------------------------------------------------------
* Licensed to PSF under a Contributor Agreement.
- * See https://www.python.org/psf/license for licensing details.
+ * See https://www.python.org/psf/license for licensing details.
*
* _elementtree - C accelerator for xml.etree.ElementTree
* Copyright (c) 1999-2009 by Secret Labs AB. All rights reserved.
@@ -14,7 +14,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
/* -------------------------------------------------------------------- */
/* configuration */
@@ -92,8 +92,8 @@ typedef struct {
PyObject *parseerror_obj;
PyObject *deepcopy_obj;
PyObject *elementpath_obj;
- PyObject *comment_factory;
- PyObject *pi_factory;
+ PyObject *comment_factory;
+ PyObject *pi_factory;
} elementtreestate;
static struct PyModuleDef elementtreemodule;
@@ -101,13 +101,13 @@ static struct PyModuleDef elementtreemodule;
/* Given a module object (assumed to be _elementtree), get its per-module
* state.
*/
-static inline elementtreestate*
-get_elementtree_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (elementtreestate *)state;
-}
+static inline elementtreestate*
+get_elementtree_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (elementtreestate *)state;
+}
/* Find the module instance imported in the currently running sub-interpreter
* and get its state.
@@ -118,24 +118,24 @@ get_elementtree_state(PyObject *module)
static int
elementtree_clear(PyObject *m)
{
- elementtreestate *st = get_elementtree_state(m);
+ elementtreestate *st = get_elementtree_state(m);
Py_CLEAR(st->parseerror_obj);
Py_CLEAR(st->deepcopy_obj);
Py_CLEAR(st->elementpath_obj);
- Py_CLEAR(st->comment_factory);
- Py_CLEAR(st->pi_factory);
+ Py_CLEAR(st->comment_factory);
+ Py_CLEAR(st->pi_factory);
return 0;
}
static int
elementtree_traverse(PyObject *m, visitproc visit, void *arg)
{
- elementtreestate *st = get_elementtree_state(m);
+ elementtreestate *st = get_elementtree_state(m);
Py_VISIT(st->parseerror_obj);
Py_VISIT(st->deepcopy_obj);
Py_VISIT(st->elementpath_obj);
- Py_VISIT(st->comment_factory);
- Py_VISIT(st->pi_factory);
+ Py_VISIT(st->comment_factory);
+ Py_VISIT(st->pi_factory);
return 0;
}
@@ -176,7 +176,7 @@ is_empty_dict(PyObject *obj)
typedef struct {
- /* attributes (a dictionary object), or NULL if no attributes */
+ /* attributes (a dictionary object), or NULL if no attributes */
PyObject* attrib;
/* child elements */
@@ -215,7 +215,7 @@ typedef struct {
} ElementObject;
-#define Element_CheckExact(op) Py_IS_TYPE(op, &Element_Type)
+#define Element_CheckExact(op) Py_IS_TYPE(op, &Element_Type)
#define Element_Check(op) PyObject_TypeCheck(op, &Element_Type)
@@ -231,7 +231,7 @@ create_extra(ElementObject* self, PyObject* attrib)
return -1;
}
- Py_XINCREF(attrib);
+ Py_XINCREF(attrib);
self->extra->attrib = attrib;
self->extra->length = 0;
@@ -249,7 +249,7 @@ dealloc_extra(ElementObjectExtra *extra)
if (!extra)
return;
- Py_XDECREF(extra->attrib);
+ Py_XDECREF(extra->attrib);
for (i = 0; i < extra->length; i++)
Py_DECREF(extra->children[i]);
@@ -303,7 +303,7 @@ create_new_element(PyObject* tag, PyObject* attrib)
ALLOC(sizeof(ElementObject), "create element");
PyObject_GC_Track(self);
- if (attrib != NULL && !is_empty_dict(attrib)) {
+ if (attrib != NULL && !is_empty_dict(attrib)) {
if (create_extra(self, attrib) < 0) {
Py_DECREF(self);
return NULL;
@@ -348,7 +348,7 @@ get_attrib_from_keywords(PyObject *kwds)
if (attrib_str == NULL) {
return NULL;
}
- PyObject *attrib = PyDict_GetItemWithError(kwds, attrib_str);
+ PyObject *attrib = PyDict_GetItemWithError(kwds, attrib_str);
if (attrib) {
/* If attrib was found in kwds, copy its value and remove it from
@@ -365,8 +365,8 @@ get_attrib_from_keywords(PyObject *kwds)
Py_DECREF(attrib);
attrib = NULL;
}
- }
- else if (!PyErr_Occurred()) {
+ }
+ else if (!PyErr_Occurred()) {
attrib = PyDict_New();
}
@@ -496,24 +496,24 @@ element_resize(ElementObject* self, Py_ssize_t extra)
return -1;
}
-LOCAL(void)
-raise_type_error(PyObject *element)
-{
- PyErr_Format(PyExc_TypeError,
- "expected an Element, not \"%.200s\"",
- Py_TYPE(element)->tp_name);
-}
-
+LOCAL(void)
+raise_type_error(PyObject *element)
+{
+ PyErr_Format(PyExc_TypeError,
+ "expected an Element, not \"%.200s\"",
+ Py_TYPE(element)->tp_name);
+}
+
LOCAL(int)
element_add_subelement(ElementObject* self, PyObject* element)
{
/* add a child element to a parent */
- if (!Element_Check(element)) {
- raise_type_error(element);
- return -1;
- }
-
+ if (!Element_Check(element)) {
+ raise_type_error(element);
+ return -1;
+ }
+
if (element_resize(self, 1) < 0)
return -1;
@@ -533,9 +533,9 @@ element_get_attrib(ElementObject* self)
PyObject* res = self->extra->attrib;
- if (!res) {
+ if (!res) {
/* create missing dictionary */
- res = self->extra->attrib = PyDict_New();
+ res = self->extra->attrib = PyDict_New();
}
return res;
@@ -618,7 +618,7 @@ subelement(PyObject *self, PyObject *args, PyObject *kwds)
}
elem = create_new_element(tag, attrib);
- Py_XDECREF(attrib);
+ Py_XDECREF(attrib);
if (elem == NULL)
return NULL;
@@ -666,7 +666,7 @@ element_dealloc(ElementObject* self)
{
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(self);
- Py_TRASHCAN_BEGIN(self, element_dealloc)
+ Py_TRASHCAN_BEGIN(self, element_dealloc)
if (self->weakreflist != NULL)
PyObject_ClearWeakRefs((PyObject *) self);
@@ -677,7 +677,7 @@ element_dealloc(ElementObject* self)
RELEASE(sizeof(ElementObject), "destroy element");
Py_TYPE(self)->tp_free((PyObject *)self);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
/* -------------------------------------------------------------------- */
@@ -733,7 +733,7 @@ _elementtree_Element___copy___impl(ElementObject *self)
ElementObject* element;
element = (ElementObject*) create_new_element(
- self->tag, self->extra ? self->extra->attrib : NULL);
+ self->tag, self->extra ? self->extra->attrib : NULL);
if (!element)
return NULL;
@@ -789,20 +789,20 @@ _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)
if (!tag)
return NULL;
- if (self->extra && self->extra->attrib) {
+ if (self->extra && self->extra->attrib) {
attrib = deepcopy(self->extra->attrib, memo);
if (!attrib) {
Py_DECREF(tag);
return NULL;
}
} else {
- attrib = NULL;
+ attrib = NULL;
}
element = (ElementObject*) create_new_element(tag, attrib);
Py_DECREF(tag);
- Py_XDECREF(attrib);
+ Py_XDECREF(attrib);
if (!element)
return NULL;
@@ -824,11 +824,11 @@ _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)
for (i = 0; i < self->extra->length; i++) {
PyObject* child = deepcopy(self->extra->children[i], memo);
- if (!child || !Element_Check(child)) {
- if (child) {
- raise_type_error(child);
- Py_DECREF(child);
- }
+ if (!child || !Element_Check(child)) {
+ if (child) {
+ raise_type_error(child);
+ Py_DECREF(child);
+ }
element->extra->length = i;
goto error;
}
@@ -946,8 +946,8 @@ static PyObject *
_elementtree_Element___getstate___impl(ElementObject *self)
/*[clinic end generated code: output=37279aeeb6bb5b04 input=f0d16d7ec2f7adc1]*/
{
- Py_ssize_t i;
- PyObject *children, *attrib;
+ Py_ssize_t i;
+ PyObject *children, *attrib;
/* Build a list of children. */
children = PyList_New(self->extra ? self->extra->length : 0);
@@ -959,24 +959,24 @@ _elementtree_Element___getstate___impl(ElementObject *self)
PyList_SET_ITEM(children, i, child);
}
- if (self->extra && self->extra->attrib) {
- attrib = self->extra->attrib;
- Py_INCREF(attrib);
+ if (self->extra && self->extra->attrib) {
+ attrib = self->extra->attrib;
+ Py_INCREF(attrib);
}
else {
- attrib = PyDict_New();
- if (!attrib) {
- Py_DECREF(children);
- return NULL;
- }
- }
-
- return Py_BuildValue("{sOsNsNsOsO}",
- PICKLED_TAG, self->tag,
- PICKLED_CHILDREN, children,
- PICKLED_ATTRIB, attrib,
- PICKLED_TEXT, JOIN_OBJ(self->text),
- PICKLED_TAIL, JOIN_OBJ(self->tail));
+ attrib = PyDict_New();
+ if (!attrib) {
+ Py_DECREF(children);
+ return NULL;
+ }
+ }
+
+ return Py_BuildValue("{sOsNsNsOsO}",
+ PICKLED_TAG, self->tag,
+ PICKLED_CHILDREN, children,
+ PICKLED_ATTRIB, attrib,
+ PICKLED_TEXT, JOIN_OBJ(self->text),
+ PICKLED_TAIL, JOIN_OBJ(self->tail));
}
static PyObject *
@@ -1033,22 +1033,22 @@ element_setstate_from_attributes(ElementObject *self,
assert(self->extra);
assert(self->extra->allocated >= nchildren);
if (oldextra) {
- assert(self->extra->attrib == NULL);
+ assert(self->extra->attrib == NULL);
self->extra->attrib = oldextra->attrib;
- oldextra->attrib = NULL;
+ oldextra->attrib = NULL;
}
/* Copy children */
for (i = 0; i < nchildren; i++) {
- PyObject *child = PyList_GET_ITEM(children, i);
- if (!Element_Check(child)) {
- raise_type_error(child);
- self->extra->length = i;
- dealloc_extra(oldextra);
- return NULL;
- }
- Py_INCREF(child);
- self->extra->children[i] = child;
+ PyObject *child = PyList_GET_ITEM(children, i);
+ if (!Element_Check(child)) {
+ raise_type_error(child);
+ self->extra->length = i;
+ dealloc_extra(oldextra);
+ return NULL;
+ }
+ Py_INCREF(child);
+ self->extra->children[i] = child;
}
assert(!self->extra->length);
@@ -1061,8 +1061,8 @@ element_setstate_from_attributes(ElementObject *self,
}
/* Stash attrib. */
- Py_XINCREF(attrib);
- Py_XSETREF(self->extra->attrib, attrib);
+ Py_XINCREF(attrib);
+ Py_XSETREF(self->extra->attrib, attrib);
dealloc_extra(oldextra);
Py_RETURN_NONE;
@@ -1132,15 +1132,15 @@ checkpath(PyObject* tag)
if (PyUnicode_Check(tag)) {
const Py_ssize_t len = PyUnicode_GET_LENGTH(tag);
- const void *data = PyUnicode_DATA(tag);
+ const void *data = PyUnicode_DATA(tag);
unsigned int kind = PyUnicode_KIND(tag);
- if (len >= 3 && PyUnicode_READ(kind, data, 0) == '{' && (
- PyUnicode_READ(kind, data, 1) == '}' || (
- PyUnicode_READ(kind, data, 1) == '*' &&
- PyUnicode_READ(kind, data, 2) == '}'))) {
- /* wildcard: '{}tag' or '{*}tag' */
- return 1;
- }
+ if (len >= 3 && PyUnicode_READ(kind, data, 0) == '{' && (
+ PyUnicode_READ(kind, data, 1) == '}' || (
+ PyUnicode_READ(kind, data, 1) == '*' &&
+ PyUnicode_READ(kind, data, 2) == '}'))) {
+ /* wildcard: '{}tag' or '{*}tag' */
+ return 1;
+ }
for (i = 0; i < len; i++) {
Py_UCS4 ch = PyUnicode_READ(kind, data, i);
if (ch == '{')
@@ -1153,14 +1153,14 @@ checkpath(PyObject* tag)
return 0;
}
if (PyBytes_Check(tag)) {
- const char *p = PyBytes_AS_STRING(tag);
- const Py_ssize_t len = PyBytes_GET_SIZE(tag);
- if (len >= 3 && p[0] == '{' && (
- p[1] == '}' || (p[1] == '*' && p[2] == '}'))) {
- /* wildcard: '{}tag' or '{*}tag' */
- return 1;
- }
- for (i = 0; i < len; i++) {
+ const char *p = PyBytes_AS_STRING(tag);
+ const Py_ssize_t len = PyBytes_GET_SIZE(tag);
+ if (len >= 3 && p[0] == '{' && (
+ p[1] == '}' || (p[1] == '*' && p[2] == '}'))) {
+ /* wildcard: '{}tag' or '{*}tag' */
+ return 1;
+ }
+ for (i = 0; i < len; i++) {
if (p[i] == '{')
check = 0;
else if (p[i] == '}')
@@ -1243,7 +1243,7 @@ _elementtree_Element_find_impl(ElementObject *self, PyObject *path,
for (i = 0; i < self->extra->length; i++) {
PyObject* item = self->extra->children[i];
int rc;
- assert(Element_Check(item));
+ assert(Element_Check(item));
Py_INCREF(item);
rc = PyObject_RichCompareBool(((ElementObject*)item)->tag, path, Py_EQ);
if (rc > 0)
@@ -1289,7 +1289,7 @@ _elementtree_Element_findtext_impl(ElementObject *self, PyObject *path,
for (i = 0; i < self->extra->length; i++) {
PyObject *item = self->extra->children[i];
int rc;
- assert(Element_Check(item));
+ assert(Element_Check(item));
Py_INCREF(item);
rc = PyObject_RichCompareBool(((ElementObject*)item)->tag, path, Py_EQ);
if (rc > 0) {
@@ -1345,7 +1345,7 @@ _elementtree_Element_findall_impl(ElementObject *self, PyObject *path,
for (i = 0; i < self->extra->length; i++) {
PyObject* item = self->extra->children[i];
int rc;
- assert(Element_Check(item));
+ assert(Element_Check(item));
Py_INCREF(item);
rc = PyObject_RichCompareBool(((ElementObject*)item)->tag, path, Py_EQ);
if (rc != 0 && (rc < 0 || PyList_Append(out, item) < 0)) {
@@ -1393,19 +1393,19 @@ _elementtree_Element_get_impl(ElementObject *self, PyObject *key,
PyObject *default_value)
/*[clinic end generated code: output=523c614142595d75 input=ee153bbf8cdb246e]*/
{
- if (self->extra && self->extra->attrib) {
- PyObject *attrib = self->extra->attrib;
- Py_INCREF(attrib);
- PyObject *value = PyDict_GetItemWithError(attrib, key);
- Py_XINCREF(value);
- Py_DECREF(attrib);
- if (value != NULL || PyErr_Occurred()) {
- return value;
- }
- }
-
- Py_INCREF(default_value);
- return default_value;
+ if (self->extra && self->extra->attrib) {
+ PyObject *attrib = self->extra->attrib;
+ Py_INCREF(attrib);
+ PyObject *value = PyDict_GetItemWithError(attrib, key);
+ Py_XINCREF(value);
+ Py_DECREF(attrib);
+ if (value != NULL || PyErr_Occurred()) {
+ return value;
+ }
+ }
+
+ Py_INCREF(default_value);
+ return default_value;
}
static PyObject *
@@ -1520,7 +1520,7 @@ static PyObject *
_elementtree_Element_items_impl(ElementObject *self)
/*[clinic end generated code: output=6db2c778ce3f5a4d input=adbe09aaea474447]*/
{
- if (!self->extra || !self->extra->attrib)
+ if (!self->extra || !self->extra->attrib)
return PyList_New(0);
return PyDict_Items(self->extra->attrib);
@@ -1535,7 +1535,7 @@ static PyObject *
_elementtree_Element_keys_impl(ElementObject *self)
/*[clinic end generated code: output=bc5bfabbf20eeb3c input=f02caf5b496b5b0b]*/
{
- if (!self->extra || !self->extra->attrib)
+ if (!self->extra || !self->extra->attrib)
return PyList_New(0);
return PyDict_Keys(self->extra->attrib);
@@ -1554,7 +1554,7 @@ element_length(ElementObject* self)
_elementtree.Element.makeelement
tag: object
- attrib: object(subclass_of='&PyDict_Type')
+ attrib: object(subclass_of='&PyDict_Type')
/
[clinic start generated code]*/
@@ -1562,7 +1562,7 @@ _elementtree.Element.makeelement
static PyObject *
_elementtree_Element_makeelement_impl(ElementObject *self, PyObject *tag,
PyObject *attrib)
-/*[clinic end generated code: output=4109832d5bb789ef input=2279d974529c3861]*/
+/*[clinic end generated code: output=4109832d5bb789ef input=2279d974529c3861]*/
{
PyObject* elem;
@@ -1701,10 +1701,10 @@ element_setitem(PyObject* self_, Py_ssize_t index, PyObject* item)
old = self->extra->children[index];
if (item) {
- if (!Element_Check(item)) {
- raise_type_error(item);
- return -1;
- }
+ if (!Element_Check(item)) {
+ raise_type_error(item);
+ return -1;
+ }
Py_INCREF(item);
self->extra->children[index] = item;
} else {
@@ -1734,8 +1734,8 @@ element_subscr(PyObject* self_, PyObject* item)
return element_getitem(self_, i);
}
else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelen, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelen, i;
+ size_t cur;
PyObject* list;
if (!self->extra)
@@ -1787,8 +1787,8 @@ element_ass_subscr(PyObject* self_, PyObject* item, PyObject* value)
return element_setitem(self_, i, value);
}
else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelen, newlen, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelen, newlen, i;
+ size_t cur;
PyObject* recycle = NULL;
PyObject* seq;
@@ -1900,15 +1900,15 @@ element_ass_subscr(PyObject* self_, PyObject* item, PyObject* value)
}
}
- for (i = 0; i < newlen; i++) {
- PyObject *element = PySequence_Fast_GET_ITEM(seq, i);
- if (!Element_Check(element)) {
- raise_type_error(element);
- Py_DECREF(seq);
- return -1;
- }
- }
-
+ for (i = 0; i < newlen; i++) {
+ PyObject *element = PySequence_Fast_GET_ITEM(seq, i);
+ if (!Element_Check(element)) {
+ raise_type_error(element);
+ Py_DECREF(seq);
+ return -1;
+ }
+ }
+
if (slicelen > 0) {
/* to avoid recursive calls to this method (via decref), move
old items to the recycle bin here, and get rid of them when
@@ -2034,18 +2034,18 @@ static int
element_attrib_setter(ElementObject *self, PyObject *value, void *closure)
{
_VALIDATE_ATTR_VALUE(value);
- if (!PyDict_Check(value)) {
- PyErr_Format(PyExc_TypeError,
- "attrib must be dict, not %.200s",
- value->ob_type->tp_name);
- return -1;
- }
+ if (!PyDict_Check(value)) {
+ PyErr_Format(PyExc_TypeError,
+ "attrib must be dict, not %.200s",
+ value->ob_type->tp_name);
+ return -1;
+ }
if (!self->extra) {
if (create_extra(self, NULL) < 0)
return -1;
}
Py_INCREF(value);
- Py_XSETREF(self->extra->attrib, value);
+ Py_XSETREF(self->extra->attrib, value);
return 0;
}
@@ -2192,7 +2192,7 @@ elementiter_next(ElementIterObject *it)
continue;
}
- assert(Element_Check(extra->children[child_index]));
+ assert(Element_Check(extra->children[child_index]));
elem = (ElementObject *)extra->children[child_index];
item->child_index++;
Py_INCREF(elem);
@@ -2253,10 +2253,10 @@ static PyTypeObject ElementIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)elementiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2314,8 +2314,8 @@ create_elementiter(ElementObject *self, PyObject *tag, int gettext)
it->parent_stack_used = 0;
it->parent_stack_size = INIT_PARENT_STACK_SIZE;
- PyObject_GC_Track(it);
-
+ PyObject_GC_Track(it);
+
return (PyObject *)it;
}
@@ -2330,7 +2330,7 @@ typedef struct {
PyObject *this; /* current node */
PyObject *last; /* most recently created node */
- PyObject *last_for_tail; /* most recently created node that takes a tail */
+ PyObject *last_for_tail; /* most recently created node that takes a tail */
PyObject *data; /* data collector (string or list), or NULL */
@@ -2338,8 +2338,8 @@ typedef struct {
Py_ssize_t index; /* current stack size (0 means empty) */
PyObject *element_factory;
- PyObject *comment_factory;
- PyObject *pi_factory;
+ PyObject *comment_factory;
+ PyObject *pi_factory;
/* element tracing */
PyObject *events_append; /* the append method of the list of events, or NULL */
@@ -2347,14 +2347,14 @@ typedef struct {
PyObject *end_event_obj;
PyObject *start_ns_event_obj;
PyObject *end_ns_event_obj;
- PyObject *comment_event_obj;
- PyObject *pi_event_obj;
-
- char insert_comments;
- char insert_pis;
+ PyObject *comment_event_obj;
+ PyObject *pi_event_obj;
+
+ char insert_comments;
+ char insert_pis;
} TreeBuilderObject;
-#define TreeBuilder_CheckExact(op) Py_IS_TYPE((op), &TreeBuilder_Type)
+#define TreeBuilder_CheckExact(op) Py_IS_TYPE((op), &TreeBuilder_Type)
/* -------------------------------------------------------------------- */
/* constructor and destructor */
@@ -2373,8 +2373,8 @@ treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
t->data = NULL;
t->element_factory = NULL;
- t->comment_factory = NULL;
- t->pi_factory = NULL;
+ t->comment_factory = NULL;
+ t->pi_factory = NULL;
t->stack = PyList_New(20);
if (!t->stack) {
Py_DECREF(t->this);
@@ -2387,8 +2387,8 @@ treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
t->events_append = NULL;
t->start_event_obj = t->end_event_obj = NULL;
t->start_ns_event_obj = t->end_ns_event_obj = NULL;
- t->comment_event_obj = t->pi_event_obj = NULL;
- t->insert_comments = t->insert_pis = 0;
+ t->comment_event_obj = t->pi_event_obj = NULL;
+ t->insert_comments = t->insert_pis = 0;
}
return (PyObject *)t;
}
@@ -2396,64 +2396,64 @@ treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
/*[clinic input]
_elementtree.TreeBuilder.__init__
- element_factory: object = None
- *
- comment_factory: object = None
- pi_factory: object = None
- insert_comments: bool = False
- insert_pis: bool = False
+ element_factory: object = None
+ *
+ comment_factory: object = None
+ pi_factory: object = None
+ insert_comments: bool = False
+ insert_pis: bool = False
[clinic start generated code]*/
static int
_elementtree_TreeBuilder___init___impl(TreeBuilderObject *self,
- PyObject *element_factory,
- PyObject *comment_factory,
- PyObject *pi_factory,
- int insert_comments, int insert_pis)
-/*[clinic end generated code: output=8571d4dcadfdf952 input=ae98a94df20b5cc3]*/
+ PyObject *element_factory,
+ PyObject *comment_factory,
+ PyObject *pi_factory,
+ int insert_comments, int insert_pis)
+/*[clinic end generated code: output=8571d4dcadfdf952 input=ae98a94df20b5cc3]*/
{
- if (element_factory != Py_None) {
+ if (element_factory != Py_None) {
Py_INCREF(element_factory);
Py_XSETREF(self->element_factory, element_factory);
- } else {
- Py_CLEAR(self->element_factory);
- }
-
- if (comment_factory == Py_None) {
- elementtreestate *st = ET_STATE_GLOBAL;
- comment_factory = st->comment_factory;
- }
- if (comment_factory) {
- Py_INCREF(comment_factory);
- Py_XSETREF(self->comment_factory, comment_factory);
- self->insert_comments = insert_comments;
- } else {
- Py_CLEAR(self->comment_factory);
- self->insert_comments = 0;
- }
-
- if (pi_factory == Py_None) {
- elementtreestate *st = ET_STATE_GLOBAL;
- pi_factory = st->pi_factory;
- }
- if (pi_factory) {
- Py_INCREF(pi_factory);
- Py_XSETREF(self->pi_factory, pi_factory);
- self->insert_pis = insert_pis;
- } else {
- Py_CLEAR(self->pi_factory);
- self->insert_pis = 0;
- }
-
+ } else {
+ Py_CLEAR(self->element_factory);
+ }
+
+ if (comment_factory == Py_None) {
+ elementtreestate *st = ET_STATE_GLOBAL;
+ comment_factory = st->comment_factory;
+ }
+ if (comment_factory) {
+ Py_INCREF(comment_factory);
+ Py_XSETREF(self->comment_factory, comment_factory);
+ self->insert_comments = insert_comments;
+ } else {
+ Py_CLEAR(self->comment_factory);
+ self->insert_comments = 0;
+ }
+
+ if (pi_factory == Py_None) {
+ elementtreestate *st = ET_STATE_GLOBAL;
+ pi_factory = st->pi_factory;
+ }
+ if (pi_factory) {
+ Py_INCREF(pi_factory);
+ Py_XSETREF(self->pi_factory, pi_factory);
+ self->insert_pis = insert_pis;
+ } else {
+ Py_CLEAR(self->pi_factory);
+ self->insert_pis = 0;
+ }
+
return 0;
}
static int
treebuilder_gc_traverse(TreeBuilderObject *self, visitproc visit, void *arg)
{
- Py_VISIT(self->pi_event_obj);
- Py_VISIT(self->comment_event_obj);
+ Py_VISIT(self->pi_event_obj);
+ Py_VISIT(self->comment_event_obj);
Py_VISIT(self->end_ns_event_obj);
Py_VISIT(self->start_ns_event_obj);
Py_VISIT(self->end_event_obj);
@@ -2462,11 +2462,11 @@ treebuilder_gc_traverse(TreeBuilderObject *self, visitproc visit, void *arg)
Py_VISIT(self->root);
Py_VISIT(self->this);
Py_VISIT(self->last);
- Py_VISIT(self->last_for_tail);
+ Py_VISIT(self->last_for_tail);
Py_VISIT(self->data);
Py_VISIT(self->stack);
- Py_VISIT(self->pi_factory);
- Py_VISIT(self->comment_factory);
+ Py_VISIT(self->pi_factory);
+ Py_VISIT(self->comment_factory);
Py_VISIT(self->element_factory);
return 0;
}
@@ -2474,8 +2474,8 @@ treebuilder_gc_traverse(TreeBuilderObject *self, visitproc visit, void *arg)
static int
treebuilder_gc_clear(TreeBuilderObject *self)
{
- Py_CLEAR(self->pi_event_obj);
- Py_CLEAR(self->comment_event_obj);
+ Py_CLEAR(self->pi_event_obj);
+ Py_CLEAR(self->comment_event_obj);
Py_CLEAR(self->end_ns_event_obj);
Py_CLEAR(self->start_ns_event_obj);
Py_CLEAR(self->end_event_obj);
@@ -2484,10 +2484,10 @@ treebuilder_gc_clear(TreeBuilderObject *self)
Py_CLEAR(self->stack);
Py_CLEAR(self->data);
Py_CLEAR(self->last);
- Py_CLEAR(self->last_for_tail);
+ Py_CLEAR(self->last_for_tail);
Py_CLEAR(self->this);
- Py_CLEAR(self->pi_factory);
- Py_CLEAR(self->comment_factory);
+ Py_CLEAR(self->pi_factory);
+ Py_CLEAR(self->comment_factory);
Py_CLEAR(self->element_factory);
Py_CLEAR(self->root);
return 0;
@@ -2504,102 +2504,102 @@ treebuilder_dealloc(TreeBuilderObject *self)
/* -------------------------------------------------------------------- */
/* helpers for handling of arbitrary element-like objects */
-/*[clinic input]
-_elementtree._set_factories
-
- comment_factory: object
- pi_factory: object
- /
-
-Change the factories used to create comments and processing instructions.
-
-For internal use only.
-[clinic start generated code]*/
-
-static PyObject *
-_elementtree__set_factories_impl(PyObject *module, PyObject *comment_factory,
- PyObject *pi_factory)
-/*[clinic end generated code: output=813b408adee26535 input=99d17627aea7fb3b]*/
-{
- elementtreestate *st = ET_STATE_GLOBAL;
- PyObject *old;
-
- if (!PyCallable_Check(comment_factory) && comment_factory != Py_None) {
- PyErr_Format(PyExc_TypeError, "Comment factory must be callable, not %.100s",
- Py_TYPE(comment_factory)->tp_name);
- return NULL;
- }
- if (!PyCallable_Check(pi_factory) && pi_factory != Py_None) {
- PyErr_Format(PyExc_TypeError, "PI factory must be callable, not %.100s",
- Py_TYPE(pi_factory)->tp_name);
- return NULL;
- }
-
- old = PyTuple_Pack(2,
- st->comment_factory ? st->comment_factory : Py_None,
- st->pi_factory ? st->pi_factory : Py_None);
-
- if (comment_factory == Py_None) {
- Py_CLEAR(st->comment_factory);
- } else {
- Py_INCREF(comment_factory);
- Py_XSETREF(st->comment_factory, comment_factory);
- }
- if (pi_factory == Py_None) {
- Py_CLEAR(st->pi_factory);
- } else {
- Py_INCREF(pi_factory);
- Py_XSETREF(st->pi_factory, pi_factory);
- }
-
- return old;
-}
-
+/*[clinic input]
+_elementtree._set_factories
+
+ comment_factory: object
+ pi_factory: object
+ /
+
+Change the factories used to create comments and processing instructions.
+
+For internal use only.
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree__set_factories_impl(PyObject *module, PyObject *comment_factory,
+ PyObject *pi_factory)
+/*[clinic end generated code: output=813b408adee26535 input=99d17627aea7fb3b]*/
+{
+ elementtreestate *st = ET_STATE_GLOBAL;
+ PyObject *old;
+
+ if (!PyCallable_Check(comment_factory) && comment_factory != Py_None) {
+ PyErr_Format(PyExc_TypeError, "Comment factory must be callable, not %.100s",
+ Py_TYPE(comment_factory)->tp_name);
+ return NULL;
+ }
+ if (!PyCallable_Check(pi_factory) && pi_factory != Py_None) {
+ PyErr_Format(PyExc_TypeError, "PI factory must be callable, not %.100s",
+ Py_TYPE(pi_factory)->tp_name);
+ return NULL;
+ }
+
+ old = PyTuple_Pack(2,
+ st->comment_factory ? st->comment_factory : Py_None,
+ st->pi_factory ? st->pi_factory : Py_None);
+
+ if (comment_factory == Py_None) {
+ Py_CLEAR(st->comment_factory);
+ } else {
+ Py_INCREF(comment_factory);
+ Py_XSETREF(st->comment_factory, comment_factory);
+ }
+ if (pi_factory == Py_None) {
+ Py_CLEAR(st->pi_factory);
+ } else {
+ Py_INCREF(pi_factory);
+ Py_XSETREF(st->pi_factory, pi_factory);
+ }
+
+ return old;
+}
+
static int
-treebuilder_extend_element_text_or_tail(PyObject *element, PyObject **data,
- PyObject **dest, _Py_Identifier *name)
+treebuilder_extend_element_text_or_tail(PyObject *element, PyObject **data,
+ PyObject **dest, _Py_Identifier *name)
{
- /* Fast paths for the "almost always" cases. */
+ /* Fast paths for the "almost always" cases. */
if (Element_CheckExact(element)) {
- PyObject *dest_obj = JOIN_OBJ(*dest);
- if (dest_obj == Py_None) {
- *dest = JOIN_SET(*data, PyList_CheckExact(*data));
- *data = NULL;
- Py_DECREF(dest_obj);
- return 0;
- }
- else if (JOIN_GET(*dest)) {
- if (PyList_SetSlice(dest_obj, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, *data) < 0) {
- return -1;
- }
- Py_CLEAR(*data);
- return 0;
- }
- }
-
- /* Fallback for the non-Element / non-trivial cases. */
- {
+ PyObject *dest_obj = JOIN_OBJ(*dest);
+ if (dest_obj == Py_None) {
+ *dest = JOIN_SET(*data, PyList_CheckExact(*data));
+ *data = NULL;
+ Py_DECREF(dest_obj);
+ return 0;
+ }
+ else if (JOIN_GET(*dest)) {
+ if (PyList_SetSlice(dest_obj, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, *data) < 0) {
+ return -1;
+ }
+ Py_CLEAR(*data);
+ return 0;
+ }
+ }
+
+ /* Fallback for the non-Element / non-trivial cases. */
+ {
int r;
- PyObject* joined;
- PyObject* previous = _PyObject_GetAttrId(element, name);
- if (!previous)
+ PyObject* joined;
+ PyObject* previous = _PyObject_GetAttrId(element, name);
+ if (!previous)
return -1;
- joined = list_join(*data);
- if (!joined) {
- Py_DECREF(previous);
- return -1;
- }
- if (previous != Py_None) {
- PyObject *tmp = PyNumber_Add(previous, joined);
- Py_DECREF(joined);
- Py_DECREF(previous);
- if (!tmp)
- return -1;
- joined = tmp;
- } else {
- Py_DECREF(previous);
- }
-
+ joined = list_join(*data);
+ if (!joined) {
+ Py_DECREF(previous);
+ return -1;
+ }
+ if (previous != Py_None) {
+ PyObject *tmp = PyNumber_Add(previous, joined);
+ Py_DECREF(joined);
+ Py_DECREF(previous);
+ if (!tmp)
+ return -1;
+ joined = tmp;
+ } else {
+ Py_DECREF(previous);
+ }
+
r = _PyObject_SetAttrId(element, name, joined);
Py_DECREF(joined);
if (r < 0)
@@ -2616,17 +2616,17 @@ treebuilder_flush_data(TreeBuilderObject* self)
return 0;
}
- if (!self->last_for_tail) {
- PyObject *element = self->last;
+ if (!self->last_for_tail) {
+ PyObject *element = self->last;
_Py_IDENTIFIER(text);
- return treebuilder_extend_element_text_or_tail(
+ return treebuilder_extend_element_text_or_tail(
element, &self->data,
&((ElementObject *) element)->text, &PyId_text);
}
else {
- PyObject *element = self->last_for_tail;
+ PyObject *element = self->last_for_tail;
_Py_IDENTIFIER(tail);
- return treebuilder_extend_element_text_or_tail(
+ return treebuilder_extend_element_text_or_tail(
element, &self->data,
&((ElementObject *) element)->tail, &PyId_tail);
}
@@ -2642,7 +2642,7 @@ treebuilder_add_subelement(PyObject *element, PyObject *child)
}
else {
PyObject *res;
- res = _PyObject_CallMethodIdOneArg(element, &PyId_append, child);
+ res = _PyObject_CallMethodIdOneArg(element, &PyId_append, child);
if (res == NULL)
return -1;
Py_DECREF(res);
@@ -2659,7 +2659,7 @@ treebuilder_append_event(TreeBuilderObject *self, PyObject *action,
PyObject *event = PyTuple_Pack(2, action, node);
if (event == NULL)
return -1;
- res = PyObject_CallOneArg(self->events_append, event);
+ res = PyObject_CallOneArg(self->events_append, event);
Py_DECREF(event);
if (res == NULL)
return -1;
@@ -2683,9 +2683,9 @@ treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag,
return NULL;
}
- if (!self->element_factory) {
+ if (!self->element_factory) {
node = create_new_element(tag, attrib);
- } else if (attrib == NULL) {
+ } else if (attrib == NULL) {
attrib = PyDict_New();
if (!attrib)
return NULL;
@@ -2702,7 +2702,7 @@ treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag,
}
this = self->this;
- Py_CLEAR(self->last_for_tail);
+ Py_CLEAR(self->last_for_tail);
if (this != Py_None) {
if (treebuilder_add_subelement(this, node) < 0)
@@ -2800,8 +2800,8 @@ treebuilder_handle_end(TreeBuilderObject* self, PyObject* tag)
item = self->last;
self->last = self->this;
- Py_INCREF(self->last);
- Py_XSETREF(self->last_for_tail, self->last);
+ Py_INCREF(self->last);
+ Py_XSETREF(self->last_for_tail, self->last);
self->index--;
self->this = PyList_GET_ITEM(self->stack, self->index);
Py_INCREF(self->this);
@@ -2814,121 +2814,121 @@ treebuilder_handle_end(TreeBuilderObject* self, PyObject* tag)
return (PyObject*) self->last;
}
-LOCAL(PyObject*)
-treebuilder_handle_comment(TreeBuilderObject* self, PyObject* text)
-{
- PyObject* comment;
- PyObject* this;
-
- if (treebuilder_flush_data(self) < 0) {
- return NULL;
- }
-
- if (self->comment_factory) {
- comment = PyObject_CallOneArg(self->comment_factory, text);
- if (!comment)
- return NULL;
-
- this = self->this;
- if (self->insert_comments && this != Py_None) {
- if (treebuilder_add_subelement(this, comment) < 0)
- goto error;
- Py_INCREF(comment);
- Py_XSETREF(self->last_for_tail, comment);
- }
- } else {
- Py_INCREF(text);
- comment = text;
- }
-
- if (self->events_append && self->comment_event_obj) {
- if (treebuilder_append_event(self, self->comment_event_obj, comment) < 0)
- goto error;
- }
-
- return comment;
-
- error:
- Py_DECREF(comment);
- return NULL;
-}
-
-LOCAL(PyObject*)
-treebuilder_handle_pi(TreeBuilderObject* self, PyObject* target, PyObject* text)
-{
- PyObject* pi;
- PyObject* this;
- PyObject* stack[2] = {target, text};
-
- if (treebuilder_flush_data(self) < 0) {
- return NULL;
- }
-
- if (self->pi_factory) {
- pi = _PyObject_FastCall(self->pi_factory, stack, 2);
- if (!pi) {
- return NULL;
- }
-
- this = self->this;
- if (self->insert_pis && this != Py_None) {
- if (treebuilder_add_subelement(this, pi) < 0)
- goto error;
- Py_INCREF(pi);
- Py_XSETREF(self->last_for_tail, pi);
- }
- } else {
- pi = PyTuple_Pack(2, target, text);
- if (!pi) {
- return NULL;
- }
- }
-
- if (self->events_append && self->pi_event_obj) {
- if (treebuilder_append_event(self, self->pi_event_obj, pi) < 0)
- goto error;
- }
-
- return pi;
-
- error:
- Py_DECREF(pi);
- return NULL;
-}
-
-LOCAL(PyObject*)
-treebuilder_handle_start_ns(TreeBuilderObject* self, PyObject* prefix, PyObject* uri)
-{
- PyObject* parcel;
-
- if (self->events_append && self->start_ns_event_obj) {
- parcel = PyTuple_Pack(2, prefix, uri);
- if (!parcel) {
- return NULL;
- }
-
- if (treebuilder_append_event(self, self->start_ns_event_obj, parcel) < 0) {
- Py_DECREF(parcel);
- return NULL;
- }
- Py_DECREF(parcel);
- }
-
- Py_RETURN_NONE;
-}
-
-LOCAL(PyObject*)
-treebuilder_handle_end_ns(TreeBuilderObject* self, PyObject* prefix)
-{
- if (self->events_append && self->end_ns_event_obj) {
- if (treebuilder_append_event(self, self->end_ns_event_obj, prefix) < 0) {
- return NULL;
- }
- }
-
- Py_RETURN_NONE;
-}
-
+LOCAL(PyObject*)
+treebuilder_handle_comment(TreeBuilderObject* self, PyObject* text)
+{
+ PyObject* comment;
+ PyObject* this;
+
+ if (treebuilder_flush_data(self) < 0) {
+ return NULL;
+ }
+
+ if (self->comment_factory) {
+ comment = PyObject_CallOneArg(self->comment_factory, text);
+ if (!comment)
+ return NULL;
+
+ this = self->this;
+ if (self->insert_comments && this != Py_None) {
+ if (treebuilder_add_subelement(this, comment) < 0)
+ goto error;
+ Py_INCREF(comment);
+ Py_XSETREF(self->last_for_tail, comment);
+ }
+ } else {
+ Py_INCREF(text);
+ comment = text;
+ }
+
+ if (self->events_append && self->comment_event_obj) {
+ if (treebuilder_append_event(self, self->comment_event_obj, comment) < 0)
+ goto error;
+ }
+
+ return comment;
+
+ error:
+ Py_DECREF(comment);
+ return NULL;
+}
+
+LOCAL(PyObject*)
+treebuilder_handle_pi(TreeBuilderObject* self, PyObject* target, PyObject* text)
+{
+ PyObject* pi;
+ PyObject* this;
+ PyObject* stack[2] = {target, text};
+
+ if (treebuilder_flush_data(self) < 0) {
+ return NULL;
+ }
+
+ if (self->pi_factory) {
+ pi = _PyObject_FastCall(self->pi_factory, stack, 2);
+ if (!pi) {
+ return NULL;
+ }
+
+ this = self->this;
+ if (self->insert_pis && this != Py_None) {
+ if (treebuilder_add_subelement(this, pi) < 0)
+ goto error;
+ Py_INCREF(pi);
+ Py_XSETREF(self->last_for_tail, pi);
+ }
+ } else {
+ pi = PyTuple_Pack(2, target, text);
+ if (!pi) {
+ return NULL;
+ }
+ }
+
+ if (self->events_append && self->pi_event_obj) {
+ if (treebuilder_append_event(self, self->pi_event_obj, pi) < 0)
+ goto error;
+ }
+
+ return pi;
+
+ error:
+ Py_DECREF(pi);
+ return NULL;
+}
+
+LOCAL(PyObject*)
+treebuilder_handle_start_ns(TreeBuilderObject* self, PyObject* prefix, PyObject* uri)
+{
+ PyObject* parcel;
+
+ if (self->events_append && self->start_ns_event_obj) {
+ parcel = PyTuple_Pack(2, prefix, uri);
+ if (!parcel) {
+ return NULL;
+ }
+
+ if (treebuilder_append_event(self, self->start_ns_event_obj, parcel) < 0) {
+ Py_DECREF(parcel);
+ return NULL;
+ }
+ Py_DECREF(parcel);
+ }
+
+ Py_RETURN_NONE;
+}
+
+LOCAL(PyObject*)
+treebuilder_handle_end_ns(TreeBuilderObject* self, PyObject* prefix)
+{
+ if (self->events_append && self->end_ns_event_obj) {
+ if (treebuilder_append_event(self, self->end_ns_event_obj, prefix) < 0) {
+ return NULL;
+ }
+ }
+
+ Py_RETURN_NONE;
+}
+
/* -------------------------------------------------------------------- */
/* methods (in alphabetical order) */
@@ -2962,38 +2962,38 @@ _elementtree_TreeBuilder_end(TreeBuilderObject *self, PyObject *tag)
return treebuilder_handle_end(self, tag);
}
-/*[clinic input]
-_elementtree.TreeBuilder.comment
-
- text: object
- /
-
-[clinic start generated code]*/
-
-static PyObject *
-_elementtree_TreeBuilder_comment(TreeBuilderObject *self, PyObject *text)
-/*[clinic end generated code: output=22835be41deeaa27 input=47e7ebc48ed01dfa]*/
-{
- return treebuilder_handle_comment(self, text);
-}
-
-/*[clinic input]
-_elementtree.TreeBuilder.pi
-
- target: object
- text: object = None
- /
-
-[clinic start generated code]*/
-
-static PyObject *
-_elementtree_TreeBuilder_pi_impl(TreeBuilderObject *self, PyObject *target,
- PyObject *text)
-/*[clinic end generated code: output=21eb95ec9d04d1d9 input=349342bd79c35570]*/
-{
- return treebuilder_handle_pi(self, target, text);
-}
-
+/*[clinic input]
+_elementtree.TreeBuilder.comment
+
+ text: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_TreeBuilder_comment(TreeBuilderObject *self, PyObject *text)
+/*[clinic end generated code: output=22835be41deeaa27 input=47e7ebc48ed01dfa]*/
+{
+ return treebuilder_handle_comment(self, text);
+}
+
+/*[clinic input]
+_elementtree.TreeBuilder.pi
+
+ target: object
+ text: object = None
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+_elementtree_TreeBuilder_pi_impl(TreeBuilderObject *self, PyObject *target,
+ PyObject *text)
+/*[clinic end generated code: output=21eb95ec9d04d1d9 input=349342bd79c35570]*/
+{
+ return treebuilder_handle_pi(self, target, text);
+}
+
LOCAL(PyObject*)
treebuilder_done(TreeBuilderObject* self)
{
@@ -3026,7 +3026,7 @@ _elementtree_TreeBuilder_close_impl(TreeBuilderObject *self)
_elementtree.TreeBuilder.start
tag: object
- attrs: object(subclass_of='&PyDict_Type')
+ attrs: object(subclass_of='&PyDict_Type')
/
[clinic start generated code]*/
@@ -3034,7 +3034,7 @@ _elementtree.TreeBuilder.start
static PyObject *
_elementtree_TreeBuilder_start_impl(TreeBuilderObject *self, PyObject *tag,
PyObject *attrs)
-/*[clinic end generated code: output=e7e9dc2861349411 input=7288e9e38e63b2b6]*/
+/*[clinic end generated code: output=e7e9dc2861349411 input=7288e9e38e63b2b6]*/
{
return treebuilder_handle_start(self, tag, attrs);
}
@@ -3064,8 +3064,8 @@ typedef struct {
PyObject *names;
- PyObject *handle_start_ns;
- PyObject *handle_end_ns;
+ PyObject *handle_start_ns;
+ PyObject *handle_end_ns;
PyObject *handle_start;
PyObject *handle_data;
PyObject *handle_end;
@@ -3095,12 +3095,12 @@ makeuniversal(XMLParserObject* self, const char* string)
if (!key)
return NULL;
- value = PyDict_GetItemWithError(self->names, key);
+ value = PyDict_GetItemWithError(self->names, key);
if (value) {
Py_INCREF(value);
- }
- else if (!PyErr_Occurred()) {
+ }
+ else if (!PyErr_Occurred()) {
/* new name. convert to universal name, and decode as
necessary */
@@ -3167,7 +3167,7 @@ expat_set_error(enum XML_Error error_code, Py_ssize_t line, Py_ssize_t column,
if (errmsg == NULL)
return;
- error = PyObject_CallOneArg(st->parseerror_obj, errmsg);
+ error = PyObject_CallOneArg(st->parseerror_obj, errmsg);
Py_DECREF(errmsg);
if (!error)
return;
@@ -3222,7 +3222,7 @@ expat_default_handler(XMLParserObject* self, const XML_Char* data_in,
if (!key)
return;
- value = PyDict_GetItemWithError(self->entity, key);
+ value = PyDict_GetItemWithError(self->entity, key);
if (value) {
if (TreeBuilder_CheckExact(self->target))
@@ -3230,7 +3230,7 @@ expat_default_handler(XMLParserObject* self, const XML_Char* data_in,
(TreeBuilderObject*) self->target, value
);
else if (self->handle_data)
- res = PyObject_CallOneArg(self->handle_data, value);
+ res = PyObject_CallOneArg(self->handle_data, value);
else
res = NULL;
Py_XDECREF(res);
@@ -3294,7 +3294,7 @@ expat_start_handler(XMLParserObject* self, const XML_Char* tag_in,
attrib_in += 2;
}
} else {
- attrib = NULL;
+ attrib = NULL;
}
if (TreeBuilder_CheckExact(self->target)) {
@@ -3303,7 +3303,7 @@ expat_start_handler(XMLParserObject* self, const XML_Char* tag_in,
tag, attrib);
}
else if (self->handle_start) {
- if (attrib == NULL) {
+ if (attrib == NULL) {
attrib = PyDict_New();
if (!attrib) {
Py_DECREF(tag);
@@ -3316,7 +3316,7 @@ expat_start_handler(XMLParserObject* self, const XML_Char* tag_in,
res = NULL;
Py_DECREF(tag);
- Py_XDECREF(attrib);
+ Py_XDECREF(attrib);
Py_XDECREF(res);
}
@@ -3339,7 +3339,7 @@ expat_data_handler(XMLParserObject* self, const XML_Char* data_in,
/* shortcut */
res = treebuilder_handle_data((TreeBuilderObject*) self->target, data);
else if (self->handle_data)
- res = PyObject_CallOneArg(self->handle_data, data);
+ res = PyObject_CallOneArg(self->handle_data, data);
else
res = NULL;
@@ -3366,7 +3366,7 @@ expat_end_handler(XMLParserObject* self, const XML_Char* tag_in)
else if (self->handle_end) {
tag = makeuniversal(self, tag_in);
if (tag) {
- res = PyObject_CallOneArg(self->handle_end, tag);
+ res = PyObject_CallOneArg(self->handle_end, tag);
Py_DECREF(tag);
}
}
@@ -3375,89 +3375,89 @@ expat_end_handler(XMLParserObject* self, const XML_Char* tag_in)
}
static void
-expat_start_ns_handler(XMLParserObject* self, const XML_Char* prefix_in,
- const XML_Char *uri_in)
+expat_start_ns_handler(XMLParserObject* self, const XML_Char* prefix_in,
+ const XML_Char *uri_in)
{
- PyObject* res = NULL;
- PyObject* uri;
- PyObject* prefix;
- PyObject* stack[2];
+ PyObject* res = NULL;
+ PyObject* uri;
+ PyObject* prefix;
+ PyObject* stack[2];
if (PyErr_Occurred())
return;
- if (!uri_in)
- uri_in = "";
- if (!prefix_in)
- prefix_in = "";
-
- if (TreeBuilder_CheckExact(self->target)) {
- /* shortcut - TreeBuilder does not actually implement .start_ns() */
- TreeBuilderObject *target = (TreeBuilderObject*) self->target;
-
- if (target->events_append && target->start_ns_event_obj) {
- prefix = PyUnicode_DecodeUTF8(prefix_in, strlen(prefix_in), "strict");
- if (!prefix)
- return;
- uri = PyUnicode_DecodeUTF8(uri_in, strlen(uri_in), "strict");
- if (!uri) {
- Py_DECREF(prefix);
- return;
- }
-
- res = treebuilder_handle_start_ns(target, prefix, uri);
- Py_DECREF(uri);
- Py_DECREF(prefix);
- }
- } else if (self->handle_start_ns) {
- prefix = PyUnicode_DecodeUTF8(prefix_in, strlen(prefix_in), "strict");
- if (!prefix)
- return;
- uri = PyUnicode_DecodeUTF8(uri_in, strlen(uri_in), "strict");
- if (!uri) {
- Py_DECREF(prefix);
- return;
- }
-
- stack[0] = prefix;
- stack[1] = uri;
- res = _PyObject_FastCall(self->handle_start_ns, stack, 2);
- Py_DECREF(uri);
- Py_DECREF(prefix);
- }
-
- Py_XDECREF(res);
+ if (!uri_in)
+ uri_in = "";
+ if (!prefix_in)
+ prefix_in = "";
+
+ if (TreeBuilder_CheckExact(self->target)) {
+ /* shortcut - TreeBuilder does not actually implement .start_ns() */
+ TreeBuilderObject *target = (TreeBuilderObject*) self->target;
+
+ if (target->events_append && target->start_ns_event_obj) {
+ prefix = PyUnicode_DecodeUTF8(prefix_in, strlen(prefix_in), "strict");
+ if (!prefix)
+ return;
+ uri = PyUnicode_DecodeUTF8(uri_in, strlen(uri_in), "strict");
+ if (!uri) {
+ Py_DECREF(prefix);
+ return;
+ }
+
+ res = treebuilder_handle_start_ns(target, prefix, uri);
+ Py_DECREF(uri);
+ Py_DECREF(prefix);
+ }
+ } else if (self->handle_start_ns) {
+ prefix = PyUnicode_DecodeUTF8(prefix_in, strlen(prefix_in), "strict");
+ if (!prefix)
+ return;
+ uri = PyUnicode_DecodeUTF8(uri_in, strlen(uri_in), "strict");
+ if (!uri) {
+ Py_DECREF(prefix);
+ return;
+ }
+
+ stack[0] = prefix;
+ stack[1] = uri;
+ res = _PyObject_FastCall(self->handle_start_ns, stack, 2);
+ Py_DECREF(uri);
+ Py_DECREF(prefix);
+ }
+
+ Py_XDECREF(res);
}
static void
expat_end_ns_handler(XMLParserObject* self, const XML_Char* prefix_in)
{
- PyObject *res = NULL;
- PyObject* prefix;
+ PyObject *res = NULL;
+ PyObject* prefix;
if (PyErr_Occurred())
return;
- if (!prefix_in)
- prefix_in = "";
-
- if (TreeBuilder_CheckExact(self->target)) {
- /* shortcut - TreeBuilder does not actually implement .end_ns() */
- TreeBuilderObject *target = (TreeBuilderObject*) self->target;
-
- if (target->events_append && target->end_ns_event_obj) {
- res = treebuilder_handle_end_ns(target, Py_None);
- }
- } else if (self->handle_end_ns) {
- prefix = PyUnicode_DecodeUTF8(prefix_in, strlen(prefix_in), "strict");
- if (!prefix)
- return;
-
- res = PyObject_CallOneArg(self->handle_end_ns, prefix);
- Py_DECREF(prefix);
- }
-
- Py_XDECREF(res);
+ if (!prefix_in)
+ prefix_in = "";
+
+ if (TreeBuilder_CheckExact(self->target)) {
+ /* shortcut - TreeBuilder does not actually implement .end_ns() */
+ TreeBuilderObject *target = (TreeBuilderObject*) self->target;
+
+ if (target->events_append && target->end_ns_event_obj) {
+ res = treebuilder_handle_end_ns(target, Py_None);
+ }
+ } else if (self->handle_end_ns) {
+ prefix = PyUnicode_DecodeUTF8(prefix_in, strlen(prefix_in), "strict");
+ if (!prefix)
+ return;
+
+ res = PyObject_CallOneArg(self->handle_end_ns, prefix);
+ Py_DECREF(prefix);
+ }
+
+ Py_XDECREF(res);
}
static void
@@ -3469,25 +3469,25 @@ expat_comment_handler(XMLParserObject* self, const XML_Char* comment_in)
if (PyErr_Occurred())
return;
- if (TreeBuilder_CheckExact(self->target)) {
- /* shortcut */
- TreeBuilderObject *target = (TreeBuilderObject*) self->target;
-
+ if (TreeBuilder_CheckExact(self->target)) {
+ /* shortcut */
+ TreeBuilderObject *target = (TreeBuilderObject*) self->target;
+
comment = PyUnicode_DecodeUTF8(comment_in, strlen(comment_in), "strict");
- if (!comment)
- return; /* parser will look for errors */
-
- res = treebuilder_handle_comment(target, comment);
- Py_XDECREF(res);
- Py_DECREF(comment);
- } else if (self->handle_comment) {
- comment = PyUnicode_DecodeUTF8(comment_in, strlen(comment_in), "strict");
- if (!comment)
- return;
-
- res = PyObject_CallOneArg(self->handle_comment, comment);
- Py_XDECREF(res);
- Py_DECREF(comment);
+ if (!comment)
+ return; /* parser will look for errors */
+
+ res = treebuilder_handle_comment(target, comment);
+ Py_XDECREF(res);
+ Py_DECREF(comment);
+ } else if (self->handle_comment) {
+ comment = PyUnicode_DecodeUTF8(comment_in, strlen(comment_in), "strict");
+ if (!comment)
+ return;
+
+ res = PyObject_CallOneArg(self->handle_comment, comment);
+ Py_XDECREF(res);
+ Py_DECREF(comment);
}
}
@@ -3498,9 +3498,9 @@ expat_start_doctype_handler(XMLParserObject *self,
const XML_Char *pubid,
int has_internal_subset)
{
- _Py_IDENTIFIER(doctype);
+ _Py_IDENTIFIER(doctype);
PyObject *doctype_name_obj, *sysid_obj, *pubid_obj;
- PyObject *res;
+ PyObject *res;
if (PyErr_Occurred())
return;
@@ -3537,14 +3537,14 @@ expat_start_doctype_handler(XMLParserObject *self,
res = PyObject_CallFunctionObjArgs(self->handle_doctype,
doctype_name_obj, pubid_obj,
sysid_obj, NULL);
- Py_XDECREF(res);
+ Py_XDECREF(res);
}
- else if (_PyObject_LookupAttrId((PyObject *)self, &PyId_doctype, &res) > 0) {
- (void)PyErr_WarnEx(PyExc_RuntimeWarning,
- "The doctype() method of XMLParser is ignored. "
- "Define doctype() method on the TreeBuilder target.",
- 1);
- Py_DECREF(res);
+ else if (_PyObject_LookupAttrId((PyObject *)self, &PyId_doctype, &res) > 0) {
+ (void)PyErr_WarnEx(PyExc_RuntimeWarning,
+ "The doctype() method of XMLParser is ignored. "
+ "Define doctype() method on the TreeBuilder target.",
+ 1);
+ Py_DECREF(res);
}
Py_DECREF(doctype_name_obj);
@@ -3556,51 +3556,51 @@ static void
expat_pi_handler(XMLParserObject* self, const XML_Char* target_in,
const XML_Char* data_in)
{
- PyObject* pi_target;
+ PyObject* pi_target;
PyObject* data;
PyObject* res;
- PyObject* stack[2];
+ PyObject* stack[2];
if (PyErr_Occurred())
return;
- if (TreeBuilder_CheckExact(self->target)) {
- /* shortcut */
- TreeBuilderObject *target = (TreeBuilderObject*) self->target;
-
- if ((target->events_append && target->pi_event_obj) || target->insert_pis) {
- pi_target = PyUnicode_DecodeUTF8(target_in, strlen(target_in), "strict");
- if (!pi_target)
- goto error;
- data = PyUnicode_DecodeUTF8(data_in, strlen(data_in), "strict");
- if (!data)
- goto error;
- res = treebuilder_handle_pi(target, pi_target, data);
+ if (TreeBuilder_CheckExact(self->target)) {
+ /* shortcut */
+ TreeBuilderObject *target = (TreeBuilderObject*) self->target;
+
+ if ((target->events_append && target->pi_event_obj) || target->insert_pis) {
+ pi_target = PyUnicode_DecodeUTF8(target_in, strlen(target_in), "strict");
+ if (!pi_target)
+ goto error;
+ data = PyUnicode_DecodeUTF8(data_in, strlen(data_in), "strict");
+ if (!data)
+ goto error;
+ res = treebuilder_handle_pi(target, pi_target, data);
Py_XDECREF(res);
Py_DECREF(data);
- Py_DECREF(pi_target);
+ Py_DECREF(pi_target);
}
- } else if (self->handle_pi) {
- pi_target = PyUnicode_DecodeUTF8(target_in, strlen(target_in), "strict");
- if (!pi_target)
- goto error;
- data = PyUnicode_DecodeUTF8(data_in, strlen(data_in), "strict");
- if (!data)
- goto error;
-
- stack[0] = pi_target;
- stack[1] = data;
- res = _PyObject_FastCall(self->handle_pi, stack, 2);
- Py_XDECREF(res);
- Py_DECREF(data);
- Py_DECREF(pi_target);
- }
-
- return;
-
- error:
- Py_XDECREF(pi_target);
- return;
+ } else if (self->handle_pi) {
+ pi_target = PyUnicode_DecodeUTF8(target_in, strlen(target_in), "strict");
+ if (!pi_target)
+ goto error;
+ data = PyUnicode_DecodeUTF8(data_in, strlen(data_in), "strict");
+ if (!data)
+ goto error;
+
+ stack[0] = pi_target;
+ stack[1] = data;
+ res = _PyObject_FastCall(self->handle_pi, stack, 2);
+ Py_XDECREF(res);
+ Py_DECREF(data);
+ Py_DECREF(pi_target);
+ }
+
+ return;
+
+ error:
+ Py_XDECREF(pi_target);
+ return;
}
/* -------------------------------------------------------------------- */
@@ -3612,7 +3612,7 @@ xmlparser_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (self) {
self->parser = NULL;
self->target = self->entity = self->names = NULL;
- self->handle_start_ns = self->handle_end_ns = NULL;
+ self->handle_start_ns = self->handle_end_ns = NULL;
self->handle_start = self->handle_data = self->handle_end = NULL;
self->handle_comment = self->handle_pi = self->handle_close = NULL;
self->handle_doctype = NULL;
@@ -3635,16 +3635,16 @@ ignore_attribute_error(PyObject *value)
/*[clinic input]
_elementtree.XMLParser.__init__
- *
+ *
target: object = NULL
- encoding: str(accept={str, NoneType}) = None
+ encoding: str(accept={str, NoneType}) = None
[clinic start generated code]*/
static int
-_elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *target,
- const char *encoding)
-/*[clinic end generated code: output=3ae45ec6cdf344e4 input=53e35a829ae043e8]*/
+_elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *target,
+ const char *encoding)
+/*[clinic end generated code: output=3ae45ec6cdf344e4 input=53e35a829ae043e8]*/
{
self->entity = PyDict_New();
if (!self->entity)
@@ -3681,14 +3681,14 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *target,
}
self->target = target;
- self->handle_start_ns = PyObject_GetAttrString(target, "start_ns");
- if (ignore_attribute_error(self->handle_start_ns)) {
- return -1;
- }
- self->handle_end_ns = PyObject_GetAttrString(target, "end_ns");
- if (ignore_attribute_error(self->handle_end_ns)) {
- return -1;
- }
+ self->handle_start_ns = PyObject_GetAttrString(target, "start_ns");
+ if (ignore_attribute_error(self->handle_start_ns)) {
+ return -1;
+ }
+ self->handle_end_ns = PyObject_GetAttrString(target, "end_ns");
+ if (ignore_attribute_error(self->handle_end_ns)) {
+ return -1;
+ }
self->handle_start = PyObject_GetAttrString(target, "start");
if (ignore_attribute_error(self->handle_start)) {
return -1;
@@ -3720,12 +3720,12 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *target,
/* configure parser */
EXPAT(SetUserData)(self->parser, self);
- if (self->handle_start_ns || self->handle_end_ns)
- EXPAT(SetNamespaceDeclHandler)(
- self->parser,
- (XML_StartNamespaceDeclHandler) expat_start_ns_handler,
- (XML_EndNamespaceDeclHandler) expat_end_ns_handler
- );
+ if (self->handle_start_ns || self->handle_end_ns)
+ EXPAT(SetNamespaceDeclHandler)(
+ self->parser,
+ (XML_StartNamespaceDeclHandler) expat_start_ns_handler,
+ (XML_EndNamespaceDeclHandler) expat_end_ns_handler
+ );
EXPAT(SetElementHandler)(
self->parser,
(XML_StartElementHandler) expat_start_handler,
@@ -3770,9 +3770,9 @@ xmlparser_gc_traverse(XMLParserObject *self, visitproc visit, void *arg)
Py_VISIT(self->handle_end);
Py_VISIT(self->handle_data);
Py_VISIT(self->handle_start);
- Py_VISIT(self->handle_start_ns);
- Py_VISIT(self->handle_end_ns);
- Py_VISIT(self->handle_doctype);
+ Py_VISIT(self->handle_start_ns);
+ Py_VISIT(self->handle_end_ns);
+ Py_VISIT(self->handle_doctype);
Py_VISIT(self->target);
Py_VISIT(self->entity);
@@ -3796,8 +3796,8 @@ xmlparser_gc_clear(XMLParserObject *self)
Py_CLEAR(self->handle_end);
Py_CLEAR(self->handle_data);
Py_CLEAR(self->handle_start);
- Py_CLEAR(self->handle_start_ns);
- Py_CLEAR(self->handle_end_ns);
+ Py_CLEAR(self->handle_start_ns);
+ Py_CLEAR(self->handle_end_ns);
Py_CLEAR(self->handle_doctype);
Py_CLEAR(self->target);
@@ -3815,17 +3815,17 @@ xmlparser_dealloc(XMLParserObject* self)
Py_TYPE(self)->tp_free((PyObject *)self);
}
-Py_LOCAL_INLINE(int)
-_check_xmlparser(XMLParserObject* self)
-{
- if (self->target == NULL) {
- PyErr_SetString(PyExc_ValueError,
- "XMLParser.__init__() wasn't called");
- return 0;
- }
- return 1;
-}
-
+Py_LOCAL_INLINE(int)
+_check_xmlparser(XMLParserObject* self)
+{
+ if (self->target == NULL) {
+ PyErr_SetString(PyExc_ValueError,
+ "XMLParser.__init__() wasn't called");
+ return 0;
+ }
+ return 1;
+}
+
LOCAL(PyObject*)
expat_parse(XMLParserObject* self, const char* data, int data_len, int final)
{
@@ -3862,10 +3862,10 @@ _elementtree_XMLParser_close_impl(XMLParserObject *self)
/* end feeding data to parser */
PyObject* res;
-
- if (!_check_xmlparser(self)) {
- return NULL;
- }
+
+ if (!_check_xmlparser(self)) {
+ return NULL;
+ }
res = expat_parse(self, "", 0, 1);
if (!res)
return NULL;
@@ -3876,7 +3876,7 @@ _elementtree_XMLParser_close_impl(XMLParserObject *self)
}
else if (self->handle_close) {
Py_DECREF(res);
- return PyObject_CallNoArgs(self->handle_close);
+ return PyObject_CallNoArgs(self->handle_close);
}
else {
return res;
@@ -3897,9 +3897,9 @@ _elementtree_XMLParser_feed(XMLParserObject *self, PyObject *data)
{
/* feed data to parser */
- if (!_check_xmlparser(self)) {
- return NULL;
- }
+ if (!_check_xmlparser(self)) {
+ return NULL;
+ }
if (PyUnicode_Check(data)) {
Py_ssize_t data_len;
const char *data_ptr = PyUnicode_AsUTF8AndSize(data, &data_len);
@@ -3947,9 +3947,9 @@ _elementtree_XMLParser__parse_whole(XMLParserObject *self, PyObject *file)
PyObject* temp;
PyObject* res;
- if (!_check_xmlparser(self)) {
- return NULL;
- }
+ if (!_check_xmlparser(self)) {
+ return NULL;
+ }
reader = PyObject_GetAttrString(file, "read");
if (!reader)
return NULL;
@@ -4037,9 +4037,9 @@ _elementtree_XMLParser__setevents_impl(XMLParserObject *self,
TreeBuilderObject *target;
PyObject *events_append, *events_seq;
- if (!_check_xmlparser(self)) {
- return NULL;
- }
+ if (!_check_xmlparser(self)) {
+ return NULL;
+ }
if (!TreeBuilder_CheckExact(self->target)) {
PyErr_SetString(
PyExc_TypeError,
@@ -4061,8 +4061,8 @@ _elementtree_XMLParser__setevents_impl(XMLParserObject *self,
Py_CLEAR(target->end_event_obj);
Py_CLEAR(target->start_ns_event_obj);
Py_CLEAR(target->end_ns_event_obj);
- Py_CLEAR(target->comment_event_obj);
- Py_CLEAR(target->pi_event_obj);
+ Py_CLEAR(target->comment_event_obj);
+ Py_CLEAR(target->pi_event_obj);
if (events_to_report == Py_None) {
/* default is "end" only */
@@ -4108,18 +4108,18 @@ _elementtree_XMLParser__setevents_impl(XMLParserObject *self,
(XML_StartNamespaceDeclHandler) expat_start_ns_handler,
(XML_EndNamespaceDeclHandler) expat_end_ns_handler
);
- } else if (strcmp(event_name, "comment") == 0) {
- Py_XSETREF(target->comment_event_obj, event_name_obj);
- EXPAT(SetCommentHandler)(
- self->parser,
- (XML_CommentHandler) expat_comment_handler
- );
- } else if (strcmp(event_name, "pi") == 0) {
- Py_XSETREF(target->pi_event_obj, event_name_obj);
- EXPAT(SetProcessingInstructionHandler)(
- self->parser,
- (XML_ProcessingInstructionHandler) expat_pi_handler
- );
+ } else if (strcmp(event_name, "comment") == 0) {
+ Py_XSETREF(target->comment_event_obj, event_name_obj);
+ EXPAT(SetCommentHandler)(
+ self->parser,
+ (XML_CommentHandler) expat_comment_handler
+ );
+ } else if (strcmp(event_name, "pi") == 0) {
+ Py_XSETREF(target->pi_event_obj, event_name_obj);
+ EXPAT(SetProcessingInstructionHandler)(
+ self->parser,
+ (XML_ProcessingInstructionHandler) expat_pi_handler
+ );
} else {
Py_DECREF(event_name_obj);
Py_DECREF(events_seq);
@@ -4132,25 +4132,25 @@ _elementtree_XMLParser__setevents_impl(XMLParserObject *self,
Py_RETURN_NONE;
}
-static PyMemberDef xmlparser_members[] = {
- {"entity", T_OBJECT, offsetof(XMLParserObject, entity), READONLY, NULL},
- {"target", T_OBJECT, offsetof(XMLParserObject, target), READONLY, NULL},
- {NULL}
-};
-
+static PyMemberDef xmlparser_members[] = {
+ {"entity", T_OBJECT, offsetof(XMLParserObject, entity), READONLY, NULL},
+ {"target", T_OBJECT, offsetof(XMLParserObject, target), READONLY, NULL},
+ {NULL}
+};
+
static PyObject*
-xmlparser_version_getter(XMLParserObject *self, void *closure)
+xmlparser_version_getter(XMLParserObject *self, void *closure)
{
- return PyUnicode_FromFormat(
- "Expat %d.%d.%d", XML_MAJOR_VERSION,
- XML_MINOR_VERSION, XML_MICRO_VERSION);
+ return PyUnicode_FromFormat(
+ "Expat %d.%d.%d", XML_MAJOR_VERSION,
+ XML_MINOR_VERSION, XML_MICRO_VERSION);
}
-static PyGetSetDef xmlparser_getsetlist[] = {
- {"version", (getter)xmlparser_version_getter, NULL, NULL},
- {NULL},
-};
-
+static PyGetSetDef xmlparser_getsetlist[] = {
+ {"version", (getter)xmlparser_version_getter, NULL, NULL},
+ {NULL},
+};
+
#include "clinic/_elementtree.c.h"
static PyMethodDef element_methods[] = {
@@ -4218,10 +4218,10 @@ static PyTypeObject Element_Type = {
"xml.etree.ElementTree.Element", sizeof(ElementObject), 0,
/* methods */
(destructor)element_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)element_repr, /* tp_repr */
0, /* tp_as_number */
&element_as_sequence, /* tp_as_sequence */
@@ -4259,8 +4259,8 @@ static PyMethodDef treebuilder_methods[] = {
_ELEMENTTREE_TREEBUILDER_DATA_METHODDEF
_ELEMENTTREE_TREEBUILDER_START_METHODDEF
_ELEMENTTREE_TREEBUILDER_END_METHODDEF
- _ELEMENTTREE_TREEBUILDER_COMMENT_METHODDEF
- _ELEMENTTREE_TREEBUILDER_PI_METHODDEF
+ _ELEMENTTREE_TREEBUILDER_COMMENT_METHODDEF
+ _ELEMENTTREE_TREEBUILDER_PI_METHODDEF
_ELEMENTTREE_TREEBUILDER_CLOSE_METHODDEF
{NULL, NULL}
};
@@ -4270,10 +4270,10 @@ static PyTypeObject TreeBuilder_Type = {
"xml.etree.ElementTree.TreeBuilder", sizeof(TreeBuilderObject), 0,
/* methods */
(destructor)treebuilder_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4320,10 +4320,10 @@ static PyTypeObject XMLParser_Type = {
"xml.etree.ElementTree.XMLParser", sizeof(XMLParserObject), 0,
/* methods */
(destructor)xmlparser_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4331,7 +4331,7 @@ static PyTypeObject XMLParser_Type = {
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
- 0, /* tp_getattro */
+ 0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
@@ -4344,8 +4344,8 @@ static PyTypeObject XMLParser_Type = {
0, /* tp_iter */
0, /* tp_iternext */
xmlparser_methods, /* tp_methods */
- xmlparser_members, /* tp_members */
- xmlparser_getsetlist, /* tp_getset */
+ xmlparser_members, /* tp_members */
+ xmlparser_getsetlist, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
@@ -4361,8 +4361,8 @@ static PyTypeObject XMLParser_Type = {
/* python module interface */
static PyMethodDef _functions[] = {
- {"SubElement", (PyCFunction)(void(*)(void)) subelement, METH_VARARGS | METH_KEYWORDS},
- _ELEMENTTREE__SET_FACTORIES_METHODDEF
+ {"SubElement", (PyCFunction)(void(*)(void)) subelement, METH_VARARGS | METH_KEYWORDS},
+ _ELEMENTTREE__SET_FACTORIES_METHODDEF
{NULL, NULL}
};
@@ -4404,7 +4404,7 @@ PyInit__elementtree(void)
m = PyModule_Create(&elementtreemodule);
if (!m)
return NULL;
- st = get_elementtree_state(m);
+ st = get_elementtree_state(m);
if (!(temp = PyImport_ImportModule("copy")))
return NULL;
@@ -4440,22 +4440,22 @@ PyInit__elementtree(void)
"xml.etree.ElementTree.ParseError", PyExc_SyntaxError, NULL
);
Py_INCREF(st->parseerror_obj);
- if (PyModule_AddObject(m, "ParseError", st->parseerror_obj) < 0) {
- Py_DECREF(st->parseerror_obj);
- return NULL;
- }
-
- PyTypeObject *types[] = {
- &Element_Type,
- &TreeBuilder_Type,
- &XMLParser_Type
- };
-
- for (size_t i = 0; i < Py_ARRAY_LENGTH(types); i++) {
- if (PyModule_AddType(m, types[i]) < 0) {
- return NULL;
- }
- }
+ if (PyModule_AddObject(m, "ParseError", st->parseerror_obj) < 0) {
+ Py_DECREF(st->parseerror_obj);
+ return NULL;
+ }
+
+ PyTypeObject *types[] = {
+ &Element_Type,
+ &TreeBuilder_Type,
+ &XMLParser_Type
+ };
+
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(types); i++) {
+ if (PyModule_AddType(m, types[i]) < 0) {
+ return NULL;
+ }
+ }
return m;
}
diff --git a/contrib/tools/python3/src/Modules/_functoolsmodule.c b/contrib/tools/python3/src/Modules/_functoolsmodule.c
index ba1c0a2b96..42764a181d 100644
--- a/contrib/tools/python3/src/Modules/_functoolsmodule.c
+++ b/contrib/tools/python3/src/Modules/_functoolsmodule.c
@@ -1,8 +1,8 @@
#include "Python.h"
-#include "pycore_object.h" // _PyObject_GC_TRACK
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_tupleobject.h"
-#include "structmember.h" // PyMemberDef
+#include "pycore_object.h" // _PyObject_GC_TRACK
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_tupleobject.h"
+#include "structmember.h" // PyMemberDef
/* _functools module written and maintained
by Hye-Shik Chang <perky@FreeBSD.org>
@@ -18,15 +18,15 @@ typedef struct {
PyObject *fn;
PyObject *args;
PyObject *kw;
- PyObject *dict; /* __dict__ */
+ PyObject *dict; /* __dict__ */
PyObject *weakreflist; /* List of weak references */
- vectorcallfunc vectorcall;
+ vectorcallfunc vectorcall;
} partialobject;
static PyTypeObject partial_type;
-static void partial_setvectorcall(partialobject *pto);
-
+static void partial_setvectorcall(partialobject *pto);
+
static PyObject *
partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
{
@@ -41,7 +41,7 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
pargs = pkw = NULL;
func = PyTuple_GET_ITEM(args, 0);
- if (Py_IS_TYPE(func, &partial_type) && type == &partial_type) {
+ if (Py_IS_TYPE(func, &partial_type) && type == &partial_type) {
partialobject *part = (partialobject *)func;
if (part->dict == NULL) {
pargs = part->args;
@@ -109,7 +109,7 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
return NULL;
}
- partial_setvectorcall(pto);
+ partial_setvectorcall(pto);
return (PyObject *)pto;
}
@@ -127,114 +127,114 @@ partial_dealloc(partialobject *pto)
Py_TYPE(pto)->tp_free(pto);
}
-
-/* Merging keyword arguments using the vectorcall convention is messy, so
- * if we would need to do that, we stop using vectorcall and fall back
- * to using partial_call() instead. */
-_Py_NO_INLINE static PyObject *
-partial_vectorcall_fallback(PyThreadState *tstate, partialobject *pto,
- PyObject *const *args, size_t nargsf,
- PyObject *kwnames)
-{
- pto->vectorcall = NULL;
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- return _PyObject_MakeTpCall(tstate, (PyObject *)pto,
- args, nargs, kwnames);
-}
-
+
+/* Merging keyword arguments using the vectorcall convention is messy, so
+ * if we would need to do that, we stop using vectorcall and fall back
+ * to using partial_call() instead. */
+_Py_NO_INLINE static PyObject *
+partial_vectorcall_fallback(PyThreadState *tstate, partialobject *pto,
+ PyObject *const *args, size_t nargsf,
+ PyObject *kwnames)
+{
+ pto->vectorcall = NULL;
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ return _PyObject_MakeTpCall(tstate, (PyObject *)pto,
+ args, nargs, kwnames);
+}
+
static PyObject *
-partial_vectorcall(partialobject *pto, PyObject *const *args,
- size_t nargsf, PyObject *kwnames)
+partial_vectorcall(partialobject *pto, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames)
{
- PyThreadState *tstate = _PyThreadState_GET();
-
- /* pto->kw is mutable, so need to check every time */
- if (PyDict_GET_SIZE(pto->kw)) {
- return partial_vectorcall_fallback(tstate, pto, args, nargsf, kwnames);
- }
-
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- Py_ssize_t nargs_total = nargs;
- if (kwnames != NULL) {
- nargs_total += PyTuple_GET_SIZE(kwnames);
- }
-
- PyObject **pto_args = _PyTuple_ITEMS(pto->args);
- Py_ssize_t pto_nargs = PyTuple_GET_SIZE(pto->args);
-
- /* Fast path if we're called without arguments */
- if (nargs_total == 0) {
- return _PyObject_VectorcallTstate(tstate, pto->fn,
- pto_args, pto_nargs, NULL);
- }
-
- /* Fast path using PY_VECTORCALL_ARGUMENTS_OFFSET to prepend a single
- * positional argument */
- if (pto_nargs == 1 && (nargsf & PY_VECTORCALL_ARGUMENTS_OFFSET)) {
- PyObject **newargs = (PyObject **)args - 1;
- PyObject *tmp = newargs[0];
- newargs[0] = pto_args[0];
- PyObject *ret = _PyObject_VectorcallTstate(tstate, pto->fn,
- newargs, nargs + 1, kwnames);
- newargs[0] = tmp;
- return ret;
- }
-
- Py_ssize_t newnargs_total = pto_nargs + nargs_total;
-
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ /* pto->kw is mutable, so need to check every time */
+ if (PyDict_GET_SIZE(pto->kw)) {
+ return partial_vectorcall_fallback(tstate, pto, args, nargsf, kwnames);
+ }
+
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ Py_ssize_t nargs_total = nargs;
+ if (kwnames != NULL) {
+ nargs_total += PyTuple_GET_SIZE(kwnames);
+ }
+
+ PyObject **pto_args = _PyTuple_ITEMS(pto->args);
+ Py_ssize_t pto_nargs = PyTuple_GET_SIZE(pto->args);
+
+ /* Fast path if we're called without arguments */
+ if (nargs_total == 0) {
+ return _PyObject_VectorcallTstate(tstate, pto->fn,
+ pto_args, pto_nargs, NULL);
+ }
+
+ /* Fast path using PY_VECTORCALL_ARGUMENTS_OFFSET to prepend a single
+ * positional argument */
+ if (pto_nargs == 1 && (nargsf & PY_VECTORCALL_ARGUMENTS_OFFSET)) {
+ PyObject **newargs = (PyObject **)args - 1;
+ PyObject *tmp = newargs[0];
+ newargs[0] = pto_args[0];
+ PyObject *ret = _PyObject_VectorcallTstate(tstate, pto->fn,
+ newargs, nargs + 1, kwnames);
+ newargs[0] = tmp;
+ return ret;
+ }
+
+ Py_ssize_t newnargs_total = pto_nargs + nargs_total;
+
PyObject *small_stack[_PY_FASTCALL_SMALL_STACK];
PyObject *ret;
- PyObject **stack;
+ PyObject **stack;
- if (newnargs_total <= (Py_ssize_t)Py_ARRAY_LENGTH(small_stack)) {
- stack = small_stack;
+ if (newnargs_total <= (Py_ssize_t)Py_ARRAY_LENGTH(small_stack)) {
+ stack = small_stack;
}
else {
- stack = PyMem_Malloc(newnargs_total * sizeof(PyObject *));
- if (stack == NULL) {
- PyErr_NoMemory();
- return NULL;
+ stack = PyMem_Malloc(newnargs_total * sizeof(PyObject *));
+ if (stack == NULL) {
+ PyErr_NoMemory();
+ return NULL;
}
- }
-
- /* Copy to new stack, using borrowed references */
- memcpy(stack, pto_args, pto_nargs * sizeof(PyObject*));
- memcpy(stack + pto_nargs, args, nargs_total * sizeof(PyObject*));
-
- ret = _PyObject_VectorcallTstate(tstate, pto->fn,
- stack, pto_nargs + nargs, kwnames);
- if (stack != small_stack) {
- PyMem_Free(stack);
+ }
+
+ /* Copy to new stack, using borrowed references */
+ memcpy(stack, pto_args, pto_nargs * sizeof(PyObject*));
+ memcpy(stack + pto_nargs, args, nargs_total * sizeof(PyObject*));
+
+ ret = _PyObject_VectorcallTstate(tstate, pto->fn,
+ stack, pto_nargs + nargs, kwnames);
+ if (stack != small_stack) {
+ PyMem_Free(stack);
}
return ret;
}
-/* Set pto->vectorcall depending on the parameters of the partial object */
-static void
-partial_setvectorcall(partialobject *pto)
+/* Set pto->vectorcall depending on the parameters of the partial object */
+static void
+partial_setvectorcall(partialobject *pto)
{
- if (PyVectorcall_Function(pto->fn) == NULL) {
- /* Don't use vectorcall if the underlying function doesn't support it */
- pto->vectorcall = NULL;
+ if (PyVectorcall_Function(pto->fn) == NULL) {
+ /* Don't use vectorcall if the underlying function doesn't support it */
+ pto->vectorcall = NULL;
+ }
+ /* We could have a special case if there are no arguments,
+ * but that is unlikely (why use partial without arguments?),
+ * so we don't optimize that */
+ else {
+ pto->vectorcall = (vectorcallfunc)partial_vectorcall;
}
- /* We could have a special case if there are no arguments,
- * but that is unlikely (why use partial without arguments?),
- * so we don't optimize that */
- else {
- pto->vectorcall = (vectorcallfunc)partial_vectorcall;
- }
}
-
+
static PyObject *
partial_call(partialobject *pto, PyObject *args, PyObject *kwargs)
{
- assert(PyCallable_Check(pto->fn));
- assert(PyTuple_Check(pto->args));
- assert(PyDict_Check(pto->kw));
+ assert(PyCallable_Check(pto->fn));
+ assert(PyTuple_Check(pto->args));
+ assert(PyDict_Check(pto->kw));
- /* Merge keywords */
- PyObject *kwargs2;
+ /* Merge keywords */
+ PyObject *kwargs2;
if (PyDict_GET_SIZE(pto->kw) == 0) {
/* kwargs can be NULL */
kwargs2 = kwargs;
@@ -257,16 +257,16 @@ partial_call(partialobject *pto, PyObject *args, PyObject *kwargs)
}
}
- /* Merge positional arguments */
- /* Note: tupleconcat() is optimized for empty tuples */
- PyObject *args2 = PySequence_Concat(pto->args, args);
- if (args2 == NULL) {
- Py_XDECREF(kwargs2);
- return NULL;
- }
+ /* Merge positional arguments */
+ /* Note: tupleconcat() is optimized for empty tuples */
+ PyObject *args2 = PySequence_Concat(pto->args, args);
+ if (args2 == NULL) {
+ Py_XDECREF(kwargs2);
+ return NULL;
+ }
- PyObject *res = PyObject_Call(pto->fn, args2, kwargs2);
- Py_DECREF(args2);
+ PyObject *res = PyObject_Call(pto->fn, args2, kwargs2);
+ Py_DECREF(args2);
Py_XDECREF(kwargs2);
return res;
}
@@ -407,15 +407,15 @@ partial_setstate(partialobject *pto, PyObject *state)
Py_SETREF(pto->args, fnargs);
Py_SETREF(pto->kw, kw);
Py_XSETREF(pto->dict, dict);
- partial_setvectorcall(pto);
+ partial_setvectorcall(pto);
Py_RETURN_NONE;
}
static PyMethodDef partial_methods[] = {
{"__reduce__", (PyCFunction)partial_reduce, METH_NOARGS},
{"__setstate__", (PyCFunction)partial_setstate, METH_O},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -426,10 +426,10 @@ static PyTypeObject partial_type = {
0, /* tp_itemsize */
/* methods */
(destructor)partial_dealloc, /* tp_dealloc */
- offsetof(partialobject, vectorcall),/* tp_vectorcall_offset */
+ offsetof(partialobject, vectorcall),/* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)partial_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -441,8 +441,8 @@ static PyTypeObject partial_type = {
PyObject_GenericSetAttr, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_BASETYPE |
- Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
+ Py_TPFLAGS_BASETYPE |
+ Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
partial_doc, /* tp_doc */
(traverseproc)partial_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -519,10 +519,10 @@ static PyTypeObject keyobject_type = {
0, /* tp_itemsize */
/* methods */
(destructor)keyobject_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -575,7 +575,7 @@ keyobject_richcompare(PyObject *ko, PyObject *other, int op)
PyObject *answer;
PyObject* stack[2];
- if (!Py_IS_TYPE(other, &keyobject_type)) {
+ if (!Py_IS_TYPE(other, &keyobject_type)) {
PyErr_Format(PyExc_TypeError, "other argument must be K instance");
return NULL;
}
@@ -651,7 +651,7 @@ functools_reduce(PyObject *self, PyObject *args)
for (;;) {
PyObject *op2;
- if (Py_REFCNT(args) > 1) {
+ if (Py_REFCNT(args) > 1) {
Py_DECREF(args);
if ((args = PyTuple_New(2)) == NULL)
goto Fail;
@@ -667,18 +667,18 @@ functools_reduce(PyObject *self, PyObject *args)
if (result == NULL)
result = op2;
else {
- /* Update the args tuple in-place */
- assert(Py_REFCNT(args) == 1);
- Py_XSETREF(_PyTuple_ITEMS(args)[0], result);
- Py_XSETREF(_PyTuple_ITEMS(args)[1], op2);
- if ((result = PyObject_Call(func, args, NULL)) == NULL) {
+ /* Update the args tuple in-place */
+ assert(Py_REFCNT(args) == 1);
+ Py_XSETREF(_PyTuple_ITEMS(args)[0], result);
+ Py_XSETREF(_PyTuple_ITEMS(args)[1], op2);
+ if ((result = PyObject_Call(func, args, NULL)) == NULL) {
goto Fail;
- }
- // bpo-42536: The GC may have untracked this args tuple. Since we're
- // recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(args)) {
- _PyObject_GC_TRACK(args);
- }
+ }
+ // bpo-42536: The GC may have untracked this args tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(args)) {
+ _PyObject_GC_TRACK(args);
+ }
}
}
@@ -758,10 +758,10 @@ static PyTypeObject lru_list_elem_type = {
0, /* tp_itemsize */
/* methods */
(destructor)lru_list_elem_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -789,7 +789,7 @@ typedef struct lru_cache_object {
Py_ssize_t misses;
PyObject *cache_info_type;
PyObject *dict;
- PyObject *weakreflist;
+ PyObject *weakreflist;
} lru_cache_object;
static PyTypeObject lru_cache_type;
@@ -800,10 +800,10 @@ lru_cache_make_key(PyObject *args, PyObject *kwds, int typed)
PyObject *key, *keyword, *value;
Py_ssize_t key_size, pos, key_pos, kwds_size;
- kwds_size = kwds ? PyDict_GET_SIZE(kwds) : 0;
-
+ kwds_size = kwds ? PyDict_GET_SIZE(kwds) : 0;
+
/* short path, key will match args anyway, which is a tuple */
- if (!typed && !kwds_size) {
+ if (!typed && !kwds_size) {
if (PyTuple_GET_SIZE(args) == 1) {
key = PyTuple_GET_ITEM(args, 0);
if (PyUnicode_CheckExact(key) || PyLong_CheckExact(key)) {
@@ -1202,8 +1202,8 @@ lru_cache_new(PyTypeObject *type, PyObject *args, PyObject *kw)
obj->maxsize = maxsize;
Py_INCREF(cache_info_type);
obj->cache_info_type = cache_info_type;
- obj->dict = NULL;
- obj->weakreflist = NULL;
+ obj->dict = NULL;
+ obj->weakreflist = NULL;
return (PyObject *)obj;
}
@@ -1235,8 +1235,8 @@ lru_cache_dealloc(lru_cache_object *obj)
lru_list_elem *list;
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(obj);
- if (obj->weakreflist != NULL)
- PyObject_ClearWeakRefs((PyObject*)obj);
+ if (obj->weakreflist != NULL)
+ PyObject_ClearWeakRefs((PyObject*)obj);
list = lru_cache_unlink_list(obj);
Py_XDECREF(obj->cache);
@@ -1373,10 +1373,10 @@ static PyTypeObject lru_cache_type = {
0, /* tp_itemsize */
/* methods */
(destructor)lru_cache_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1387,15 +1387,15 @@ static PyTypeObject lru_cache_type = {
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
- Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_METHOD_DESCRIPTOR,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
+ Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_METHOD_DESCRIPTOR,
/* tp_flags */
lru_cache_doc, /* tp_doc */
(traverseproc)lru_cache_tp_traverse,/* tp_traverse */
(inquiry)lru_cache_tp_clear, /* tp_clear */
0, /* tp_richcompare */
- offsetof(lru_cache_object, weakreflist),
- /* tp_weaklistoffset */
+ offsetof(lru_cache_object, weakreflist),
+ /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
lru_cache_methods, /* tp_methods */
@@ -1413,67 +1413,67 @@ static PyTypeObject lru_cache_type = {
/* module level code ********************************************************/
-PyDoc_STRVAR(_functools_doc,
+PyDoc_STRVAR(_functools_doc,
"Tools that operate on functions.");
-static PyMethodDef _functools_methods[] = {
+static PyMethodDef _functools_methods[] = {
{"reduce", functools_reduce, METH_VARARGS, functools_reduce_doc},
- {"cmp_to_key", (PyCFunction)(void(*)(void))functools_cmp_to_key,
+ {"cmp_to_key", (PyCFunction)(void(*)(void))functools_cmp_to_key,
METH_VARARGS | METH_KEYWORDS, functools_cmp_to_key_doc},
{NULL, NULL} /* sentinel */
};
static void
-_functools_free(void *m)
+_functools_free(void *m)
{
- // FIXME: Do not clear kwd_mark to avoid NULL pointer dereferencing if we have
- // other modules instances that could use it. Will fix when PEP-573 land
- // and we could move kwd_mark to a per-module state.
- // Py_CLEAR(kwd_mark);
+ // FIXME: Do not clear kwd_mark to avoid NULL pointer dereferencing if we have
+ // other modules instances that could use it. Will fix when PEP-573 land
+ // and we could move kwd_mark to a per-module state.
+ // Py_CLEAR(kwd_mark);
}
-static int
-_functools_exec(PyObject *module)
+static int
+_functools_exec(PyObject *module)
{
PyTypeObject *typelist[] = {
&partial_type,
- &lru_cache_type
+ &lru_cache_type
};
if (!kwd_mark) {
- kwd_mark = _PyObject_CallNoArg((PyObject *)&PyBaseObject_Type);
- if (!kwd_mark) {
- return -1;
- }
+ kwd_mark = _PyObject_CallNoArg((PyObject *)&PyBaseObject_Type);
+ if (!kwd_mark) {
+ return -1;
+ }
}
- for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
- if (PyModule_AddType(module, typelist[i]) < 0) {
- return -1;
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
+ if (PyModule_AddType(module, typelist[i]) < 0) {
+ return -1;
}
}
- return 0;
+ return 0;
+}
+
+static struct PyModuleDef_Slot _functools_slots[] = {
+ {Py_mod_exec, _functools_exec},
+ {0, NULL}
+};
+
+static struct PyModuleDef _functools_module = {
+ PyModuleDef_HEAD_INIT,
+ "_functools",
+ _functools_doc,
+ 0,
+ _functools_methods,
+ _functools_slots,
+ NULL,
+ NULL,
+ _functools_free,
+};
+
+PyMODINIT_FUNC
+PyInit__functools(void)
+{
+ return PyModuleDef_Init(&_functools_module);
}
-
-static struct PyModuleDef_Slot _functools_slots[] = {
- {Py_mod_exec, _functools_exec},
- {0, NULL}
-};
-
-static struct PyModuleDef _functools_module = {
- PyModuleDef_HEAD_INIT,
- "_functools",
- _functools_doc,
- 0,
- _functools_methods,
- _functools_slots,
- NULL,
- NULL,
- _functools_free,
-};
-
-PyMODINIT_FUNC
-PyInit__functools(void)
-{
- return PyModuleDef_Init(&_functools_module);
-}
diff --git a/contrib/tools/python3/src/Modules/_hashopenssl.c b/contrib/tools/python3/src/Modules/_hashopenssl.c
index c063e7f9c2..a488945082 100644
--- a/contrib/tools/python3/src/Modules/_hashopenssl.c
+++ b/contrib/tools/python3/src/Modules/_hashopenssl.c
@@ -11,309 +11,309 @@
*
*/
-/* Don't warn about deprecated functions, */
-#ifndef OPENSSL_API_COMPAT
- // 0x10101000L == 1.1.1, 30000 == 3.0.0
- #define OPENSSL_API_COMPAT 0x10101000L
-#endif
-#define OPENSSL_NO_DEPRECATED 1
-
-#ifndef Py_BUILD_CORE_BUILTIN
-# define Py_BUILD_CORE_MODULE 1
-#endif
-
+/* Don't warn about deprecated functions, */
+#ifndef OPENSSL_API_COMPAT
+ // 0x10101000L == 1.1.1, 30000 == 3.0.0
+ #define OPENSSL_API_COMPAT 0x10101000L
+#endif
+#define OPENSSL_NO_DEPRECATED 1
+
+#ifndef Py_BUILD_CORE_BUILTIN
+# define Py_BUILD_CORE_MODULE 1
+#endif
+
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_hashtable.h"
+#include "pycore_hashtable.h"
#include "hashlib.h"
#include "pystrhex.h"
/* EVP is the preferred interface to hashing in OpenSSL */
#include <openssl/evp.h>
#include <openssl/hmac.h>
-#include <openssl/crypto.h>
+#include <openssl/crypto.h>
/* We use the object interface to discover what hashes OpenSSL supports. */
#include <openssl/objects.h>
-#include <openssl/err.h>
+#include <openssl/err.h>
+
+#include <openssl/crypto.h> // FIPS_mode()
-#include <openssl/crypto.h> // FIPS_mode()
-
-#ifndef OPENSSL_THREADS
-# error "OPENSSL_THREADS is not defined, Python requires thread-safe OpenSSL"
+#ifndef OPENSSL_THREADS
+# error "OPENSSL_THREADS is not defined, Python requires thread-safe OpenSSL"
#endif
#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
/* OpenSSL < 1.1.0 */
#define EVP_MD_CTX_new EVP_MD_CTX_create
#define EVP_MD_CTX_free EVP_MD_CTX_destroy
-
-HMAC_CTX *
-HMAC_CTX_new(void)
-{
- HMAC_CTX *ctx = OPENSSL_malloc(sizeof(HMAC_CTX));
- if (ctx != NULL) {
- memset(ctx, 0, sizeof(HMAC_CTX));
- HMAC_CTX_init(ctx);
- }
- return ctx;
-}
-
-void
-HMAC_CTX_free(HMAC_CTX *ctx)
-{
- if (ctx != NULL) {
- HMAC_CTX_cleanup(ctx);
- OPENSSL_free(ctx);
- }
-}
-
-const EVP_MD *
-HMAC_CTX_get_md(const HMAC_CTX *ctx)
-{
- return ctx->md;
-}
+
+HMAC_CTX *
+HMAC_CTX_new(void)
+{
+ HMAC_CTX *ctx = OPENSSL_malloc(sizeof(HMAC_CTX));
+ if (ctx != NULL) {
+ memset(ctx, 0, sizeof(HMAC_CTX));
+ HMAC_CTX_init(ctx);
+ }
+ return ctx;
+}
+
+void
+HMAC_CTX_free(HMAC_CTX *ctx)
+{
+ if (ctx != NULL) {
+ HMAC_CTX_cleanup(ctx);
+ OPENSSL_free(ctx);
+ }
+}
+
+const EVP_MD *
+HMAC_CTX_get_md(const HMAC_CTX *ctx)
+{
+ return ctx->md;
+}
+#endif
+
+#define MUNCH_SIZE INT_MAX
+
+#ifdef NID_sha3_224
+#define PY_OPENSSL_HAS_SHA3 1
+#endif
+
+#if defined(EVP_MD_FLAG_XOF) && defined(NID_shake128)
+#define PY_OPENSSL_HAS_SHAKE 1
+#endif
+
+#if defined(NID_blake2b512) && !defined(OPENSSL_NO_BLAKE2)
+#define PY_OPENSSL_HAS_BLAKE2 1
+#endif
+
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+#define PY_EVP_MD EVP_MD
+#define PY_EVP_MD_fetch(algorithm, properties) EVP_MD_fetch(NULL, algorithm, properties)
+#define PY_EVP_MD_up_ref(md) EVP_MD_up_ref(md)
+#define PY_EVP_MD_free(md) EVP_MD_free(md)
+#else
+#define PY_EVP_MD const EVP_MD
+#define PY_EVP_MD_fetch(algorithm, properties) EVP_get_digestbyname(algorithm)
+#define PY_EVP_MD_up_ref(md) do {} while(0)
+#define PY_EVP_MD_free(md) do {} while(0)
+#endif
+
+/* hash alias map and fast lookup
+ *
+ * Map between Python's preferred names and OpenSSL internal names. Maintain
+ * cache of fetched EVP MD objects. The EVP_get_digestbyname() and
+ * EVP_MD_fetch() API calls have a performance impact.
+ *
+ * The py_hashentry_t items are stored in a _Py_hashtable_t with py_name and
+ * py_alias as keys.
+ */
+
+enum Py_hash_type {
+ Py_ht_evp, // usedforsecurity=True / default
+ Py_ht_evp_nosecurity, // usedforsecurity=False
+ Py_ht_mac, // HMAC
+ Py_ht_pbkdf2, // PKBDF2
+};
+
+typedef struct {
+ const char *py_name;
+ const char *py_alias;
+ const char *ossl_name;
+ int ossl_nid;
+ int refcnt;
+ PY_EVP_MD *evp;
+ PY_EVP_MD *evp_nosecurity;
+} py_hashentry_t;
+
+#define Py_hash_md5 "md5"
+#define Py_hash_sha1 "sha1"
+#define Py_hash_sha224 "sha224"
+#define Py_hash_sha256 "sha256"
+#define Py_hash_sha384 "sha384"
+#define Py_hash_sha512 "sha512"
+#define Py_hash_sha512_224 "sha512_224"
+#define Py_hash_sha512_256 "sha512_256"
+#define Py_hash_sha3_224 "sha3_224"
+#define Py_hash_sha3_256 "sha3_256"
+#define Py_hash_sha3_384 "sha3_384"
+#define Py_hash_sha3_512 "sha3_512"
+#define Py_hash_shake_128 "shake_128"
+#define Py_hash_shake_256 "shake_256"
+#define Py_hash_blake2s "blake2s"
+#define Py_hash_blake2b "blake2b"
+
+#define PY_HASH_ENTRY(py_name, py_alias, ossl_name, ossl_nid) \
+ {py_name, py_alias, ossl_name, ossl_nid, 0, NULL, NULL}
+
+static const py_hashentry_t py_hashes[] = {
+ /* md5 */
+ PY_HASH_ENTRY(Py_hash_md5, "MD5", SN_md5, NID_md5),
+ /* sha1 */
+ PY_HASH_ENTRY(Py_hash_sha1, "SHA1", SN_sha1, NID_sha1),
+ /* sha2 family */
+ PY_HASH_ENTRY(Py_hash_sha224, "SHA224", SN_sha224, NID_sha224),
+ PY_HASH_ENTRY(Py_hash_sha256, "SHA256", SN_sha256, NID_sha256),
+ PY_HASH_ENTRY(Py_hash_sha384, "SHA384", SN_sha384, NID_sha384),
+ PY_HASH_ENTRY(Py_hash_sha512, "SHA512", SN_sha512, NID_sha512),
+ /* truncated sha2 */
+#ifdef NID_sha512_224
+ PY_HASH_ENTRY(Py_hash_sha512_224, "SHA512_224", SN_sha512_224, NID_sha512_224),
+ PY_HASH_ENTRY(Py_hash_sha512_256, "SHA512_256", SN_sha512_256, NID_sha512_256),
+#endif
+ /* sha3 */
+#ifdef PY_OPENSSL_HAS_SHA3
+ PY_HASH_ENTRY(Py_hash_sha3_224, NULL, SN_sha3_224, NID_sha3_224),
+ PY_HASH_ENTRY(Py_hash_sha3_256, NULL, SN_sha3_256, NID_sha3_256),
+ PY_HASH_ENTRY(Py_hash_sha3_384, NULL, SN_sha3_384, NID_sha3_384),
+ PY_HASH_ENTRY(Py_hash_sha3_512, NULL, SN_sha3_512, NID_sha3_512),
+#endif
+ /* sha3 shake */
+#ifdef PY_OPENSSL_HAS_SHAKE
+ PY_HASH_ENTRY(Py_hash_shake_128, NULL, SN_shake128, NID_shake128),
+ PY_HASH_ENTRY(Py_hash_shake_256, NULL, SN_shake256, NID_shake256),
+#endif
+ /* blake2 digest */
+#ifdef PY_OPENSSL_HAS_BLAKE2
+ PY_HASH_ENTRY(Py_hash_blake2s, "blake2s256", SN_blake2s256, NID_blake2s256),
+ PY_HASH_ENTRY(Py_hash_blake2b, "blake2b512", SN_blake2b512, NID_blake2b512),
+#endif
+ PY_HASH_ENTRY(NULL, NULL, NULL, 0),
+};
+
+static Py_uhash_t
+py_hashentry_t_hash_name(const void *key) {
+ return _Py_HashBytes(key, strlen((const char *)key));
+}
+
+static int
+py_hashentry_t_compare_name(const void *key1, const void *key2) {
+ return strcmp((const char *)key1, (const char *)key2) == 0;
+}
+
+static void
+py_hashentry_t_destroy_value(void *entry) {
+ py_hashentry_t *h = (py_hashentry_t *)entry;
+ if (--(h->refcnt) == 0) {
+ if (h->evp != NULL) {
+ PY_EVP_MD_free(h->evp);
+ h->evp = NULL;
+ }
+ if (h->evp_nosecurity != NULL) {
+ PY_EVP_MD_free(h->evp_nosecurity);
+ h->evp_nosecurity = NULL;
+ }
+ PyMem_Free(entry);
+ }
+}
+
+static _Py_hashtable_t *
+py_hashentry_table_new(void) {
+ _Py_hashtable_t *ht = _Py_hashtable_new_full(
+ py_hashentry_t_hash_name,
+ py_hashentry_t_compare_name,
+ NULL,
+ py_hashentry_t_destroy_value,
+ NULL
+ );
+ if (ht == NULL) {
+ return NULL;
+ }
+
+ for (const py_hashentry_t *h = py_hashes; h->py_name != NULL; h++) {
+ py_hashentry_t *entry = (py_hashentry_t *)PyMem_Malloc(sizeof(py_hashentry_t));
+ if (entry == NULL) {
+ goto error;
+ }
+ memcpy(entry, h, sizeof(py_hashentry_t));
+
+ if (_Py_hashtable_set(ht, (const void*)entry->py_name, (void*)entry) < 0) {
+ PyMem_Free(entry);
+ goto error;
+ }
+ entry->refcnt = 1;
+
+ if (h->py_alias != NULL) {
+ if (_Py_hashtable_set(ht, (const void*)entry->py_alias, (void*)entry) < 0) {
+ PyMem_Free(entry);
+ goto error;
+ }
+ entry->refcnt++;
+ }
+ }
+
+ return ht;
+ error:
+ _Py_hashtable_destroy(ht);
+ return NULL;
+}
+
+/* Module state */
+static PyModuleDef _hashlibmodule;
+
+typedef struct {
+ PyTypeObject *EVPtype;
+ PyTypeObject *HMACtype;
+#ifdef PY_OPENSSL_HAS_SHAKE
+ PyTypeObject *EVPXOFtype;
#endif
+ _Py_hashtable_t *hashtable;
+} _hashlibstate;
+
+static inline _hashlibstate*
+get_hashlib_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_hashlibstate *)state;
+}
-#define MUNCH_SIZE INT_MAX
-
-#ifdef NID_sha3_224
-#define PY_OPENSSL_HAS_SHA3 1
-#endif
-
-#if defined(EVP_MD_FLAG_XOF) && defined(NID_shake128)
-#define PY_OPENSSL_HAS_SHAKE 1
-#endif
-
-#if defined(NID_blake2b512) && !defined(OPENSSL_NO_BLAKE2)
-#define PY_OPENSSL_HAS_BLAKE2 1
-#endif
-
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
-#define PY_EVP_MD EVP_MD
-#define PY_EVP_MD_fetch(algorithm, properties) EVP_MD_fetch(NULL, algorithm, properties)
-#define PY_EVP_MD_up_ref(md) EVP_MD_up_ref(md)
-#define PY_EVP_MD_free(md) EVP_MD_free(md)
-#else
-#define PY_EVP_MD const EVP_MD
-#define PY_EVP_MD_fetch(algorithm, properties) EVP_get_digestbyname(algorithm)
-#define PY_EVP_MD_up_ref(md) do {} while(0)
-#define PY_EVP_MD_free(md) do {} while(0)
-#endif
-
-/* hash alias map and fast lookup
- *
- * Map between Python's preferred names and OpenSSL internal names. Maintain
- * cache of fetched EVP MD objects. The EVP_get_digestbyname() and
- * EVP_MD_fetch() API calls have a performance impact.
- *
- * The py_hashentry_t items are stored in a _Py_hashtable_t with py_name and
- * py_alias as keys.
- */
-
-enum Py_hash_type {
- Py_ht_evp, // usedforsecurity=True / default
- Py_ht_evp_nosecurity, // usedforsecurity=False
- Py_ht_mac, // HMAC
- Py_ht_pbkdf2, // PKBDF2
-};
-
-typedef struct {
- const char *py_name;
- const char *py_alias;
- const char *ossl_name;
- int ossl_nid;
- int refcnt;
- PY_EVP_MD *evp;
- PY_EVP_MD *evp_nosecurity;
-} py_hashentry_t;
-
-#define Py_hash_md5 "md5"
-#define Py_hash_sha1 "sha1"
-#define Py_hash_sha224 "sha224"
-#define Py_hash_sha256 "sha256"
-#define Py_hash_sha384 "sha384"
-#define Py_hash_sha512 "sha512"
-#define Py_hash_sha512_224 "sha512_224"
-#define Py_hash_sha512_256 "sha512_256"
-#define Py_hash_sha3_224 "sha3_224"
-#define Py_hash_sha3_256 "sha3_256"
-#define Py_hash_sha3_384 "sha3_384"
-#define Py_hash_sha3_512 "sha3_512"
-#define Py_hash_shake_128 "shake_128"
-#define Py_hash_shake_256 "shake_256"
-#define Py_hash_blake2s "blake2s"
-#define Py_hash_blake2b "blake2b"
-
-#define PY_HASH_ENTRY(py_name, py_alias, ossl_name, ossl_nid) \
- {py_name, py_alias, ossl_name, ossl_nid, 0, NULL, NULL}
-
-static const py_hashentry_t py_hashes[] = {
- /* md5 */
- PY_HASH_ENTRY(Py_hash_md5, "MD5", SN_md5, NID_md5),
- /* sha1 */
- PY_HASH_ENTRY(Py_hash_sha1, "SHA1", SN_sha1, NID_sha1),
- /* sha2 family */
- PY_HASH_ENTRY(Py_hash_sha224, "SHA224", SN_sha224, NID_sha224),
- PY_HASH_ENTRY(Py_hash_sha256, "SHA256", SN_sha256, NID_sha256),
- PY_HASH_ENTRY(Py_hash_sha384, "SHA384", SN_sha384, NID_sha384),
- PY_HASH_ENTRY(Py_hash_sha512, "SHA512", SN_sha512, NID_sha512),
- /* truncated sha2 */
-#ifdef NID_sha512_224
- PY_HASH_ENTRY(Py_hash_sha512_224, "SHA512_224", SN_sha512_224, NID_sha512_224),
- PY_HASH_ENTRY(Py_hash_sha512_256, "SHA512_256", SN_sha512_256, NID_sha512_256),
-#endif
- /* sha3 */
-#ifdef PY_OPENSSL_HAS_SHA3
- PY_HASH_ENTRY(Py_hash_sha3_224, NULL, SN_sha3_224, NID_sha3_224),
- PY_HASH_ENTRY(Py_hash_sha3_256, NULL, SN_sha3_256, NID_sha3_256),
- PY_HASH_ENTRY(Py_hash_sha3_384, NULL, SN_sha3_384, NID_sha3_384),
- PY_HASH_ENTRY(Py_hash_sha3_512, NULL, SN_sha3_512, NID_sha3_512),
-#endif
- /* sha3 shake */
-#ifdef PY_OPENSSL_HAS_SHAKE
- PY_HASH_ENTRY(Py_hash_shake_128, NULL, SN_shake128, NID_shake128),
- PY_HASH_ENTRY(Py_hash_shake_256, NULL, SN_shake256, NID_shake256),
-#endif
- /* blake2 digest */
-#ifdef PY_OPENSSL_HAS_BLAKE2
- PY_HASH_ENTRY(Py_hash_blake2s, "blake2s256", SN_blake2s256, NID_blake2s256),
- PY_HASH_ENTRY(Py_hash_blake2b, "blake2b512", SN_blake2b512, NID_blake2b512),
-#endif
- PY_HASH_ENTRY(NULL, NULL, NULL, 0),
-};
-
-static Py_uhash_t
-py_hashentry_t_hash_name(const void *key) {
- return _Py_HashBytes(key, strlen((const char *)key));
-}
-
-static int
-py_hashentry_t_compare_name(const void *key1, const void *key2) {
- return strcmp((const char *)key1, (const char *)key2) == 0;
-}
-
-static void
-py_hashentry_t_destroy_value(void *entry) {
- py_hashentry_t *h = (py_hashentry_t *)entry;
- if (--(h->refcnt) == 0) {
- if (h->evp != NULL) {
- PY_EVP_MD_free(h->evp);
- h->evp = NULL;
- }
- if (h->evp_nosecurity != NULL) {
- PY_EVP_MD_free(h->evp_nosecurity);
- h->evp_nosecurity = NULL;
- }
- PyMem_Free(entry);
- }
-}
-
-static _Py_hashtable_t *
-py_hashentry_table_new(void) {
- _Py_hashtable_t *ht = _Py_hashtable_new_full(
- py_hashentry_t_hash_name,
- py_hashentry_t_compare_name,
- NULL,
- py_hashentry_t_destroy_value,
- NULL
- );
- if (ht == NULL) {
- return NULL;
- }
-
- for (const py_hashentry_t *h = py_hashes; h->py_name != NULL; h++) {
- py_hashentry_t *entry = (py_hashentry_t *)PyMem_Malloc(sizeof(py_hashentry_t));
- if (entry == NULL) {
- goto error;
- }
- memcpy(entry, h, sizeof(py_hashentry_t));
-
- if (_Py_hashtable_set(ht, (const void*)entry->py_name, (void*)entry) < 0) {
- PyMem_Free(entry);
- goto error;
- }
- entry->refcnt = 1;
-
- if (h->py_alias != NULL) {
- if (_Py_hashtable_set(ht, (const void*)entry->py_alias, (void*)entry) < 0) {
- PyMem_Free(entry);
- goto error;
- }
- entry->refcnt++;
- }
- }
-
- return ht;
- error:
- _Py_hashtable_destroy(ht);
- return NULL;
-}
-
-/* Module state */
-static PyModuleDef _hashlibmodule;
-
typedef struct {
- PyTypeObject *EVPtype;
- PyTypeObject *HMACtype;
-#ifdef PY_OPENSSL_HAS_SHAKE
- PyTypeObject *EVPXOFtype;
-#endif
- _Py_hashtable_t *hashtable;
-} _hashlibstate;
-
-static inline _hashlibstate*
-get_hashlib_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_hashlibstate *)state;
-}
-
-typedef struct {
PyObject_HEAD
EVP_MD_CTX *ctx; /* OpenSSL message digest context */
PyThread_type_lock lock; /* OpenSSL context lock */
} EVPobject;
-typedef struct {
- PyObject_HEAD
- HMAC_CTX *ctx; /* OpenSSL hmac context */
- PyThread_type_lock lock; /* HMAC context lock */
-} HMACobject;
+typedef struct {
+ PyObject_HEAD
+ HMAC_CTX *ctx; /* OpenSSL hmac context */
+ PyThread_type_lock lock; /* HMAC context lock */
+} HMACobject;
-#include "clinic/_hashopenssl.c.h"
-/*[clinic input]
-module _hashlib
-class _hashlib.HASH "EVPobject *" "((_hashlibstate *)PyModule_GetState(module))->EVPtype"
-class _hashlib.HASHXOF "EVPobject *" "((_hashlibstate *)PyModule_GetState(module))->EVPXOFtype"
-class _hashlib.HMAC "HMACobject *" "((_hashlibstate *)PyModule_GetState(module))->HMACtype"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7df1bcf6f75cb8ef]*/
+#include "clinic/_hashopenssl.c.h"
+/*[clinic input]
+module _hashlib
+class _hashlib.HASH "EVPobject *" "((_hashlibstate *)PyModule_GetState(module))->EVPtype"
+class _hashlib.HASHXOF "EVPobject *" "((_hashlibstate *)PyModule_GetState(module))->EVPXOFtype"
+class _hashlib.HMAC "HMACobject *" "((_hashlibstate *)PyModule_GetState(module))->HMACtype"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=7df1bcf6f75cb8ef]*/
/* LCOV_EXCL_START */
static PyObject *
-_setException(PyObject *exc, const char* altmsg, ...)
+_setException(PyObject *exc, const char* altmsg, ...)
{
- unsigned long errcode = ERR_peek_last_error();
+ unsigned long errcode = ERR_peek_last_error();
const char *lib, *func, *reason;
- va_list vargs;
+ va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, altmsg);
-#else
- va_start(vargs);
-#endif
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, altmsg);
+#else
+ va_start(vargs);
+#endif
if (!errcode) {
- if (altmsg == NULL) {
- PyErr_SetString(exc, "no reason supplied");
- } else {
- PyErr_FormatV(exc, altmsg, vargs);
- }
+ if (altmsg == NULL) {
+ PyErr_SetString(exc, "no reason supplied");
+ } else {
+ PyErr_FormatV(exc, altmsg, vargs);
+ }
return NULL;
}
- va_end(vargs);
+ va_end(vargs);
ERR_clear_error();
lib = ERR_lib_error_string(errcode);
@@ -333,96 +333,96 @@ _setException(PyObject *exc, const char* altmsg, ...)
}
/* LCOV_EXCL_STOP */
-/* {Py_tp_new, NULL} doesn't block __new__ */
-static PyObject *
-_disabled_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyErr_Format(PyExc_TypeError,
- "cannot create '%.100s' instances", _PyType_Name(type));
- return NULL;
-}
-
-static PyObject*
-py_digest_name(const EVP_MD *md)
-{
- int nid = EVP_MD_nid(md);
- const char *name = NULL;
- const py_hashentry_t *h;
-
- for (h = py_hashes; h->py_name != NULL; h++) {
- if (h->ossl_nid == nid) {
- name = h->py_name;
- break;
- }
- }
- if (name == NULL) {
- /* Ignore aliased names and only use long, lowercase name. The aliases
- * pollute the list and OpenSSL appears to have its own definition of
- * alias as the resulting list still contains duplicate and alternate
- * names for several algorithms.
- */
- name = OBJ_nid2ln(nid);
- if (name == NULL)
- name = OBJ_nid2sn(nid);
- }
-
- return PyUnicode_FromString(name);
-}
-
-/* Get EVP_MD by HID and purpose */
-static PY_EVP_MD*
-py_digest_by_name(PyObject *module, const char *name, enum Py_hash_type py_ht)
-{
- PY_EVP_MD *digest = NULL;
- _hashlibstate *state = get_hashlib_state(module);
- py_hashentry_t *entry = (py_hashentry_t *)_Py_hashtable_get(
- state->hashtable, (const void*)name
- );
-
- if (entry != NULL) {
- switch (py_ht) {
- case Py_ht_evp:
- case Py_ht_mac:
- case Py_ht_pbkdf2:
- if (entry->evp == NULL) {
- entry->evp = PY_EVP_MD_fetch(entry->ossl_name, NULL);
- }
- digest = entry->evp;
- break;
- case Py_ht_evp_nosecurity:
- if (entry->evp_nosecurity == NULL) {
- entry->evp_nosecurity = PY_EVP_MD_fetch(entry->ossl_name, "-fips");
- }
- digest = entry->evp_nosecurity;
- break;
- }
- if (digest != NULL) {
- PY_EVP_MD_up_ref(digest);
- }
- } else {
- // Fall back for looking up an unindexed OpenSSL specific name.
- switch (py_ht) {
- case Py_ht_evp:
- case Py_ht_mac:
- case Py_ht_pbkdf2:
- digest = PY_EVP_MD_fetch(name, NULL);
- break;
- case Py_ht_evp_nosecurity:
- digest = PY_EVP_MD_fetch(name, "-fips");
- break;
- }
- }
- if (digest == NULL) {
- _setException(PyExc_ValueError, "unsupported hash type %s", name);
- return NULL;
- }
- return digest;
-}
-
+/* {Py_tp_new, NULL} doesn't block __new__ */
+static PyObject *
+_disabled_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyErr_Format(PyExc_TypeError,
+ "cannot create '%.100s' instances", _PyType_Name(type));
+ return NULL;
+}
+
+static PyObject*
+py_digest_name(const EVP_MD *md)
+{
+ int nid = EVP_MD_nid(md);
+ const char *name = NULL;
+ const py_hashentry_t *h;
+
+ for (h = py_hashes; h->py_name != NULL; h++) {
+ if (h->ossl_nid == nid) {
+ name = h->py_name;
+ break;
+ }
+ }
+ if (name == NULL) {
+ /* Ignore aliased names and only use long, lowercase name. The aliases
+ * pollute the list and OpenSSL appears to have its own definition of
+ * alias as the resulting list still contains duplicate and alternate
+ * names for several algorithms.
+ */
+ name = OBJ_nid2ln(nid);
+ if (name == NULL)
+ name = OBJ_nid2sn(nid);
+ }
+
+ return PyUnicode_FromString(name);
+}
+
+/* Get EVP_MD by HID and purpose */
+static PY_EVP_MD*
+py_digest_by_name(PyObject *module, const char *name, enum Py_hash_type py_ht)
+{
+ PY_EVP_MD *digest = NULL;
+ _hashlibstate *state = get_hashlib_state(module);
+ py_hashentry_t *entry = (py_hashentry_t *)_Py_hashtable_get(
+ state->hashtable, (const void*)name
+ );
+
+ if (entry != NULL) {
+ switch (py_ht) {
+ case Py_ht_evp:
+ case Py_ht_mac:
+ case Py_ht_pbkdf2:
+ if (entry->evp == NULL) {
+ entry->evp = PY_EVP_MD_fetch(entry->ossl_name, NULL);
+ }
+ digest = entry->evp;
+ break;
+ case Py_ht_evp_nosecurity:
+ if (entry->evp_nosecurity == NULL) {
+ entry->evp_nosecurity = PY_EVP_MD_fetch(entry->ossl_name, "-fips");
+ }
+ digest = entry->evp_nosecurity;
+ break;
+ }
+ if (digest != NULL) {
+ PY_EVP_MD_up_ref(digest);
+ }
+ } else {
+ // Fall back for looking up an unindexed OpenSSL specific name.
+ switch (py_ht) {
+ case Py_ht_evp:
+ case Py_ht_mac:
+ case Py_ht_pbkdf2:
+ digest = PY_EVP_MD_fetch(name, NULL);
+ break;
+ case Py_ht_evp_nosecurity:
+ digest = PY_EVP_MD_fetch(name, "-fips");
+ break;
+ }
+ }
+ if (digest == NULL) {
+ _setException(PyExc_ValueError, "unsupported hash type %s", name);
+ return NULL;
+ }
+ return digest;
+}
+
static EVPobject *
-newEVPobject(PyTypeObject *type)
+newEVPobject(PyTypeObject *type)
{
- EVPobject *retval = (EVPobject *)PyObject_New(EVPobject, type);
+ EVPobject *retval = (EVPobject *)PyObject_New(EVPobject, type);
if (retval == NULL) {
return NULL;
}
@@ -439,7 +439,7 @@ newEVPobject(PyTypeObject *type)
return retval;
}
-static int
+static int
EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
{
unsigned int process;
@@ -450,13 +450,13 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
else
process = Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int);
if (!EVP_DigestUpdate(self->ctx, (const void*)cp, process)) {
- _setException(PyExc_ValueError, NULL);
- return -1;
+ _setException(PyExc_ValueError, NULL);
+ return -1;
}
len -= process;
cp += process;
}
- return 0;
+ return 0;
}
/* Internal methods for a hash object */
@@ -464,12 +464,12 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
static void
EVP_dealloc(EVPobject *self)
{
- PyTypeObject *tp = Py_TYPE(self);
+ PyTypeObject *tp = Py_TYPE(self);
if (self->lock != NULL)
PyThread_free_lock(self->lock);
EVP_MD_CTX_free(self->ctx);
PyObject_Del(self);
- Py_DECREF(tp);
+ Py_DECREF(tp);
}
static int
@@ -484,37 +484,37 @@ locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self)
/* External methods for a hash object */
-/*[clinic input]
-_hashlib.HASH.copy as EVP_copy
+/*[clinic input]
+_hashlib.HASH.copy as EVP_copy
-Return a copy of the hash object.
-[clinic start generated code]*/
+Return a copy of the hash object.
+[clinic start generated code]*/
static PyObject *
-EVP_copy_impl(EVPobject *self)
-/*[clinic end generated code: output=b370c21cdb8ca0b4 input=31455b6a3e638069]*/
+EVP_copy_impl(EVPobject *self)
+/*[clinic end generated code: output=b370c21cdb8ca0b4 input=31455b6a3e638069]*/
{
EVPobject *newobj;
- if ((newobj = newEVPobject(Py_TYPE(self))) == NULL)
+ if ((newobj = newEVPobject(Py_TYPE(self))) == NULL)
return NULL;
if (!locked_EVP_MD_CTX_copy(newobj->ctx, self)) {
Py_DECREF(newobj);
- return _setException(PyExc_ValueError, NULL);
+ return _setException(PyExc_ValueError, NULL);
}
return (PyObject *)newobj;
}
-/*[clinic input]
-_hashlib.HASH.digest as EVP_digest
+/*[clinic input]
+_hashlib.HASH.digest as EVP_digest
+
+Return the digest value as a bytes object.
+[clinic start generated code]*/
-Return the digest value as a bytes object.
-[clinic start generated code]*/
-
static PyObject *
-EVP_digest_impl(EVPobject *self)
-/*[clinic end generated code: output=0f6a3a0da46dc12d input=03561809a419bf00]*/
+EVP_digest_impl(EVPobject *self)
+/*[clinic end generated code: output=0f6a3a0da46dc12d input=03561809a419bf00]*/
{
unsigned char digest[EVP_MAX_MD_SIZE];
EVP_MD_CTX *temp_ctx;
@@ -528,11 +528,11 @@ EVP_digest_impl(EVPobject *self)
}
if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
- return _setException(PyExc_ValueError, NULL);
+ return _setException(PyExc_ValueError, NULL);
}
digest_size = EVP_MD_CTX_size(temp_ctx);
if (!EVP_DigestFinal(temp_ctx, digest, NULL)) {
- _setException(PyExc_ValueError, NULL);
+ _setException(PyExc_ValueError, NULL);
return NULL;
}
@@ -541,15 +541,15 @@ EVP_digest_impl(EVPobject *self)
return retval;
}
-/*[clinic input]
-_hashlib.HASH.hexdigest as EVP_hexdigest
+/*[clinic input]
+_hashlib.HASH.hexdigest as EVP_hexdigest
+
+Return the digest value as a string of hexadecimal digits.
+[clinic start generated code]*/
-Return the digest value as a string of hexadecimal digits.
-[clinic start generated code]*/
-
static PyObject *
-EVP_hexdigest_impl(EVPobject *self)
-/*[clinic end generated code: output=18e6decbaf197296 input=aff9cf0e4c741a9a]*/
+EVP_hexdigest_impl(EVPobject *self)
+/*[clinic end generated code: output=18e6decbaf197296 input=aff9cf0e4c741a9a]*/
{
unsigned char digest[EVP_MAX_MD_SIZE];
EVP_MD_CTX *temp_ctx;
@@ -563,33 +563,33 @@ EVP_hexdigest_impl(EVPobject *self)
/* Get the raw (binary) digest value */
if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
- return _setException(PyExc_ValueError, NULL);
+ return _setException(PyExc_ValueError, NULL);
}
digest_size = EVP_MD_CTX_size(temp_ctx);
if (!EVP_DigestFinal(temp_ctx, digest, NULL)) {
- _setException(PyExc_ValueError, NULL);
+ _setException(PyExc_ValueError, NULL);
return NULL;
}
EVP_MD_CTX_free(temp_ctx);
- return _Py_strhex((const char *)digest, (Py_ssize_t)digest_size);
+ return _Py_strhex((const char *)digest, (Py_ssize_t)digest_size);
}
-/*[clinic input]
-_hashlib.HASH.update as EVP_update
+/*[clinic input]
+_hashlib.HASH.update as EVP_update
+
+ obj: object
+ /
+
+Update this hash object's state with the provided string.
+[clinic start generated code]*/
- obj: object
- /
-
-Update this hash object's state with the provided string.
-[clinic start generated code]*/
-
static PyObject *
-EVP_update(EVPobject *self, PyObject *obj)
-/*[clinic end generated code: output=ec1d55ed2432e966 input=9b30ec848f015501]*/
+EVP_update(EVPobject *self, PyObject *obj)
+/*[clinic end generated code: output=ec1d55ed2432e966 input=9b30ec848f015501]*/
{
- int result;
+ int result;
Py_buffer view;
GET_BUFFER_VIEW_OR_ERROUT(obj, &view);
@@ -602,25 +602,25 @@ EVP_update(EVPobject *self, PyObject *obj)
if (self->lock != NULL) {
Py_BEGIN_ALLOW_THREADS
PyThread_acquire_lock(self->lock, 1);
- result = EVP_hash(self, view.buf, view.len);
+ result = EVP_hash(self, view.buf, view.len);
PyThread_release_lock(self->lock);
Py_END_ALLOW_THREADS
} else {
- result = EVP_hash(self, view.buf, view.len);
+ result = EVP_hash(self, view.buf, view.len);
}
PyBuffer_Release(&view);
-
- if (result == -1)
- return NULL;
+
+ if (result == -1)
+ return NULL;
Py_RETURN_NONE;
}
static PyMethodDef EVP_methods[] = {
- EVP_UPDATE_METHODDEF
- EVP_DIGEST_METHODDEF
- EVP_HEXDIGEST_METHODDEF
- EVP_COPY_METHODDEF
+ EVP_UPDATE_METHODDEF
+ EVP_DIGEST_METHODDEF
+ EVP_HEXDIGEST_METHODDEF
+ EVP_COPY_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -640,11 +640,11 @@ EVP_get_digest_size(EVPobject *self, void *closure)
return PyLong_FromLong(size);
}
-static PyObject *
-EVP_get_name(EVPobject *self, void *closure)
-{
- return py_digest_name(EVP_MD_CTX_md(self->ctx));
-}
+static PyObject *
+EVP_get_name(EVPobject *self, void *closure)
+{
+ return py_digest_name(EVP_MD_CTX_md(self->ctx));
+}
static PyGetSetDef EVP_getseters[] = {
{"digest_size",
@@ -655,10 +655,10 @@ static PyGetSetDef EVP_getseters[] = {
(getter)EVP_get_block_size, NULL,
NULL,
NULL},
- {"name",
- (getter)EVP_get_name, NULL,
- NULL,
- PyDoc_STR("algorithm name.")},
+ {"name",
+ (getter)EVP_get_name, NULL,
+ NULL,
+ PyDoc_STR("algorithm name.")},
{NULL} /* Sentinel */
};
@@ -666,588 +666,588 @@ static PyGetSetDef EVP_getseters[] = {
static PyObject *
EVP_repr(EVPobject *self)
{
- PyObject *name_obj, *repr;
- name_obj = py_digest_name(EVP_MD_CTX_md(self->ctx));
- if (!name_obj) {
- return NULL;
+ PyObject *name_obj, *repr;
+ name_obj = py_digest_name(EVP_MD_CTX_md(self->ctx));
+ if (!name_obj) {
+ return NULL;
}
- repr = PyUnicode_FromFormat("<%U %s object @ %p>",
- name_obj, Py_TYPE(self)->tp_name, self);
- Py_DECREF(name_obj);
- return repr;
+ repr = PyUnicode_FromFormat("<%U %s object @ %p>",
+ name_obj, Py_TYPE(self)->tp_name, self);
+ Py_DECREF(name_obj);
+ return repr;
}
PyDoc_STRVAR(hashtype_doc,
-"HASH(name, string=b\'\')\n"
-"--\n"
-"\n"
-"A hash is an object used to calculate a checksum of a string of information.\n"
-"\n"
-"Methods:\n"
-"\n"
-"update() -- updates the current digest with an additional string\n"
-"digest() -- return the current digest value\n"
-"hexdigest() -- return the current digest as a string of hexadecimal digits\n"
-"copy() -- return a copy of the current hash object\n"
-"\n"
-"Attributes:\n"
-"\n"
-"name -- the hash algorithm being used by this object\n"
-"digest_size -- number of bytes in this hashes output");
-
-static PyType_Slot EVPtype_slots[] = {
- {Py_tp_dealloc, EVP_dealloc},
- {Py_tp_repr, EVP_repr},
- {Py_tp_doc, (char *)hashtype_doc},
- {Py_tp_methods, EVP_methods},
- {Py_tp_getset, EVP_getseters},
- {Py_tp_new, _disabled_new},
- {0, 0},
-};
-
-static PyType_Spec EVPtype_spec = {
+"HASH(name, string=b\'\')\n"
+"--\n"
+"\n"
+"A hash is an object used to calculate a checksum of a string of information.\n"
+"\n"
+"Methods:\n"
+"\n"
+"update() -- updates the current digest with an additional string\n"
+"digest() -- return the current digest value\n"
+"hexdigest() -- return the current digest as a string of hexadecimal digits\n"
+"copy() -- return a copy of the current hash object\n"
+"\n"
+"Attributes:\n"
+"\n"
+"name -- the hash algorithm being used by this object\n"
+"digest_size -- number of bytes in this hashes output");
+
+static PyType_Slot EVPtype_slots[] = {
+ {Py_tp_dealloc, EVP_dealloc},
+ {Py_tp_repr, EVP_repr},
+ {Py_tp_doc, (char *)hashtype_doc},
+ {Py_tp_methods, EVP_methods},
+ {Py_tp_getset, EVP_getseters},
+ {Py_tp_new, _disabled_new},
+ {0, 0},
+};
+
+static PyType_Spec EVPtype_spec = {
"_hashlib.HASH", /*tp_name*/
sizeof(EVPobject), /*tp_basicsize*/
0, /*tp_itemsize*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- EVPtype_slots
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ EVPtype_slots
};
-#ifdef PY_OPENSSL_HAS_SHAKE
-
-/*[clinic input]
-_hashlib.HASHXOF.digest as EVPXOF_digest
-
- length: Py_ssize_t
-
-Return the digest value as a bytes object.
-[clinic start generated code]*/
-
+#ifdef PY_OPENSSL_HAS_SHAKE
+
+/*[clinic input]
+_hashlib.HASHXOF.digest as EVPXOF_digest
+
+ length: Py_ssize_t
+
+Return the digest value as a bytes object.
+[clinic start generated code]*/
+
static PyObject *
-EVPXOF_digest_impl(EVPobject *self, Py_ssize_t length)
-/*[clinic end generated code: output=ef9320c23280efad input=816a6537cea3d1db]*/
-{
- EVP_MD_CTX *temp_ctx;
- PyObject *retval = PyBytes_FromStringAndSize(NULL, length);
-
- if (retval == NULL) {
- return NULL;
- }
-
- temp_ctx = EVP_MD_CTX_new();
- if (temp_ctx == NULL) {
- Py_DECREF(retval);
- PyErr_NoMemory();
- return NULL;
- }
-
- if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
- Py_DECREF(retval);
- EVP_MD_CTX_free(temp_ctx);
- return _setException(PyExc_ValueError, NULL);
- }
- if (!EVP_DigestFinalXOF(temp_ctx,
- (unsigned char*)PyBytes_AS_STRING(retval),
- length)) {
- Py_DECREF(retval);
- EVP_MD_CTX_free(temp_ctx);
- _setException(PyExc_ValueError, NULL);
- return NULL;
- }
-
- EVP_MD_CTX_free(temp_ctx);
- return retval;
-}
-
-/*[clinic input]
-_hashlib.HASHXOF.hexdigest as EVPXOF_hexdigest
-
- length: Py_ssize_t
-
-Return the digest value as a string of hexadecimal digits.
-[clinic start generated code]*/
-
-static PyObject *
-EVPXOF_hexdigest_impl(EVPobject *self, Py_ssize_t length)
-/*[clinic end generated code: output=eb3e6ee7788bf5b2 input=5f9d6a8f269e34df]*/
-{
- unsigned char *digest;
- EVP_MD_CTX *temp_ctx;
- PyObject *retval;
-
- digest = (unsigned char*)PyMem_Malloc(length);
- if (digest == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
-
- temp_ctx = EVP_MD_CTX_new();
- if (temp_ctx == NULL) {
- PyMem_Free(digest);
- PyErr_NoMemory();
- return NULL;
- }
-
- /* Get the raw (binary) digest value */
- if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
- PyMem_Free(digest);
- EVP_MD_CTX_free(temp_ctx);
- return _setException(PyExc_ValueError, NULL);
- }
- if (!EVP_DigestFinalXOF(temp_ctx, digest, length)) {
- PyMem_Free(digest);
- EVP_MD_CTX_free(temp_ctx);
- _setException(PyExc_ValueError, NULL);
- return NULL;
- }
-
- EVP_MD_CTX_free(temp_ctx);
-
- retval = _Py_strhex((const char *)digest, length);
- PyMem_Free(digest);
- return retval;
-}
-
-static PyMethodDef EVPXOF_methods[] = {
- EVPXOF_DIGEST_METHODDEF
- EVPXOF_HEXDIGEST_METHODDEF
- {NULL, NULL} /* sentinel */
-};
-
-
-static PyObject *
-EVPXOF_get_digest_size(EVPobject *self, void *closure)
-{
- return PyLong_FromLong(0);
-}
-
-static PyGetSetDef EVPXOF_getseters[] = {
- {"digest_size",
- (getter)EVPXOF_get_digest_size, NULL,
- NULL,
- NULL},
- {NULL} /* Sentinel */
-};
-
-PyDoc_STRVAR(hashxoftype_doc,
-"HASHXOF(name, string=b\'\')\n"
-"--\n"
-"\n"
-"A hash is an object used to calculate a checksum of a string of information.\n"
-"\n"
-"Methods:\n"
-"\n"
-"update() -- updates the current digest with an additional string\n"
-"digest(length) -- return the current digest value\n"
-"hexdigest(length) -- return the current digest as a string of hexadecimal digits\n"
-"copy() -- return a copy of the current hash object\n"
-"\n"
-"Attributes:\n"
-"\n"
-"name -- the hash algorithm being used by this object\n"
-"digest_size -- number of bytes in this hashes output");
-
-static PyType_Slot EVPXOFtype_slots[] = {
- {Py_tp_doc, (char *)hashxoftype_doc},
- {Py_tp_methods, EVPXOF_methods},
- {Py_tp_getset, EVPXOF_getseters},
- {Py_tp_new, _disabled_new},
- {0, 0},
-};
-
-static PyType_Spec EVPXOFtype_spec = {
- "_hashlib.HASHXOF", /*tp_name*/
- sizeof(EVPobject), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- EVPXOFtype_slots
-};
-
-
-#endif
-
-static PyObject*
-py_evp_fromname(PyObject *module, const char *digestname, PyObject *data_obj,
- int usedforsecurity)
-{
- Py_buffer view = { 0 };
- PY_EVP_MD *digest = NULL;
- PyTypeObject *type;
- EVPobject *self = NULL;
-
- if (data_obj != NULL) {
- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view);
- }
-
- digest = py_digest_by_name(
- module, digestname, usedforsecurity ? Py_ht_evp : Py_ht_evp_nosecurity
- );
- if (digest == NULL) {
- goto exit;
- }
-
-#ifdef PY_OPENSSL_HAS_SHAKE
- if ((EVP_MD_flags(digest) & EVP_MD_FLAG_XOF) == EVP_MD_FLAG_XOF) {
- type = get_hashlib_state(module)->EVPXOFtype;
- } else
-#endif
- {
- type = get_hashlib_state(module)->EVPtype;
- }
-
- self = newEVPobject(type);
- if (self == NULL) {
- goto exit;
- }
-
-#if defined(EVP_MD_CTX_FLAG_NON_FIPS_ALLOW) && OPENSSL_VERSION_NUMBER < 0x30000000L
- // In OpenSSL 1.1.1 the non FIPS allowed flag is context specific while
- // in 3.0.0 it is a different EVP_MD provider.
- if (!usedforsecurity) {
- EVP_MD_CTX_set_flags(self->ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
- }
-#endif
-
- int result = EVP_DigestInit_ex(self->ctx, digest, NULL);
- if (!result) {
- _setException(PyExc_ValueError, NULL);
- Py_CLEAR(self);
- goto exit;
- }
-
- if (view.buf && view.len) {
- if (view.len >= HASHLIB_GIL_MINSIZE) {
+EVPXOF_digest_impl(EVPobject *self, Py_ssize_t length)
+/*[clinic end generated code: output=ef9320c23280efad input=816a6537cea3d1db]*/
+{
+ EVP_MD_CTX *temp_ctx;
+ PyObject *retval = PyBytes_FromStringAndSize(NULL, length);
+
+ if (retval == NULL) {
+ return NULL;
+ }
+
+ temp_ctx = EVP_MD_CTX_new();
+ if (temp_ctx == NULL) {
+ Py_DECREF(retval);
+ PyErr_NoMemory();
+ return NULL;
+ }
+
+ if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
+ Py_DECREF(retval);
+ EVP_MD_CTX_free(temp_ctx);
+ return _setException(PyExc_ValueError, NULL);
+ }
+ if (!EVP_DigestFinalXOF(temp_ctx,
+ (unsigned char*)PyBytes_AS_STRING(retval),
+ length)) {
+ Py_DECREF(retval);
+ EVP_MD_CTX_free(temp_ctx);
+ _setException(PyExc_ValueError, NULL);
+ return NULL;
+ }
+
+ EVP_MD_CTX_free(temp_ctx);
+ return retval;
+}
+
+/*[clinic input]
+_hashlib.HASHXOF.hexdigest as EVPXOF_hexdigest
+
+ length: Py_ssize_t
+
+Return the digest value as a string of hexadecimal digits.
+[clinic start generated code]*/
+
+static PyObject *
+EVPXOF_hexdigest_impl(EVPobject *self, Py_ssize_t length)
+/*[clinic end generated code: output=eb3e6ee7788bf5b2 input=5f9d6a8f269e34df]*/
+{
+ unsigned char *digest;
+ EVP_MD_CTX *temp_ctx;
+ PyObject *retval;
+
+ digest = (unsigned char*)PyMem_Malloc(length);
+ if (digest == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+
+ temp_ctx = EVP_MD_CTX_new();
+ if (temp_ctx == NULL) {
+ PyMem_Free(digest);
+ PyErr_NoMemory();
+ return NULL;
+ }
+
+ /* Get the raw (binary) digest value */
+ if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
+ PyMem_Free(digest);
+ EVP_MD_CTX_free(temp_ctx);
+ return _setException(PyExc_ValueError, NULL);
+ }
+ if (!EVP_DigestFinalXOF(temp_ctx, digest, length)) {
+ PyMem_Free(digest);
+ EVP_MD_CTX_free(temp_ctx);
+ _setException(PyExc_ValueError, NULL);
+ return NULL;
+ }
+
+ EVP_MD_CTX_free(temp_ctx);
+
+ retval = _Py_strhex((const char *)digest, length);
+ PyMem_Free(digest);
+ return retval;
+}
+
+static PyMethodDef EVPXOF_methods[] = {
+ EVPXOF_DIGEST_METHODDEF
+ EVPXOF_HEXDIGEST_METHODDEF
+ {NULL, NULL} /* sentinel */
+};
+
+
+static PyObject *
+EVPXOF_get_digest_size(EVPobject *self, void *closure)
+{
+ return PyLong_FromLong(0);
+}
+
+static PyGetSetDef EVPXOF_getseters[] = {
+ {"digest_size",
+ (getter)EVPXOF_get_digest_size, NULL,
+ NULL,
+ NULL},
+ {NULL} /* Sentinel */
+};
+
+PyDoc_STRVAR(hashxoftype_doc,
+"HASHXOF(name, string=b\'\')\n"
+"--\n"
+"\n"
+"A hash is an object used to calculate a checksum of a string of information.\n"
+"\n"
+"Methods:\n"
+"\n"
+"update() -- updates the current digest with an additional string\n"
+"digest(length) -- return the current digest value\n"
+"hexdigest(length) -- return the current digest as a string of hexadecimal digits\n"
+"copy() -- return a copy of the current hash object\n"
+"\n"
+"Attributes:\n"
+"\n"
+"name -- the hash algorithm being used by this object\n"
+"digest_size -- number of bytes in this hashes output");
+
+static PyType_Slot EVPXOFtype_slots[] = {
+ {Py_tp_doc, (char *)hashxoftype_doc},
+ {Py_tp_methods, EVPXOF_methods},
+ {Py_tp_getset, EVPXOF_getseters},
+ {Py_tp_new, _disabled_new},
+ {0, 0},
+};
+
+static PyType_Spec EVPXOFtype_spec = {
+ "_hashlib.HASHXOF", /*tp_name*/
+ sizeof(EVPobject), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ EVPXOFtype_slots
+};
+
+
+#endif
+
+static PyObject*
+py_evp_fromname(PyObject *module, const char *digestname, PyObject *data_obj,
+ int usedforsecurity)
+{
+ Py_buffer view = { 0 };
+ PY_EVP_MD *digest = NULL;
+ PyTypeObject *type;
+ EVPobject *self = NULL;
+
+ if (data_obj != NULL) {
+ GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view);
+ }
+
+ digest = py_digest_by_name(
+ module, digestname, usedforsecurity ? Py_ht_evp : Py_ht_evp_nosecurity
+ );
+ if (digest == NULL) {
+ goto exit;
+ }
+
+#ifdef PY_OPENSSL_HAS_SHAKE
+ if ((EVP_MD_flags(digest) & EVP_MD_FLAG_XOF) == EVP_MD_FLAG_XOF) {
+ type = get_hashlib_state(module)->EVPXOFtype;
+ } else
+#endif
+ {
+ type = get_hashlib_state(module)->EVPtype;
+ }
+
+ self = newEVPobject(type);
+ if (self == NULL) {
+ goto exit;
+ }
+
+#if defined(EVP_MD_CTX_FLAG_NON_FIPS_ALLOW) && OPENSSL_VERSION_NUMBER < 0x30000000L
+ // In OpenSSL 1.1.1 the non FIPS allowed flag is context specific while
+ // in 3.0.0 it is a different EVP_MD provider.
+ if (!usedforsecurity) {
+ EVP_MD_CTX_set_flags(self->ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
+ }
+#endif
+
+ int result = EVP_DigestInit_ex(self->ctx, digest, NULL);
+ if (!result) {
+ _setException(PyExc_ValueError, NULL);
+ Py_CLEAR(self);
+ goto exit;
+ }
+
+ if (view.buf && view.len) {
+ if (view.len >= HASHLIB_GIL_MINSIZE) {
Py_BEGIN_ALLOW_THREADS
- result = EVP_hash(self, view.buf, view.len);
+ result = EVP_hash(self, view.buf, view.len);
Py_END_ALLOW_THREADS
} else {
- result = EVP_hash(self, view.buf, view.len);
+ result = EVP_hash(self, view.buf, view.len);
+ }
+ if (result == -1) {
+ Py_CLEAR(self);
+ goto exit;
}
- if (result == -1) {
- Py_CLEAR(self);
- goto exit;
- }
- }
-
- exit:
- if (data_obj != NULL) {
- PyBuffer_Release(&view);
- }
- if (digest != NULL) {
- PY_EVP_MD_free(digest);
- }
-
+ }
+
+ exit:
+ if (data_obj != NULL) {
+ PyBuffer_Release(&view);
+ }
+ if (digest != NULL) {
+ PY_EVP_MD_free(digest);
+ }
+
return (PyObject *)self;
}
/* The module-level function: new() */
-/*[clinic input]
-_hashlib.new as EVP_new
-
- name as name_obj: object
- string as data_obj: object(c_default="NULL") = b''
- *
- usedforsecurity: bool = True
-
-Return a new hash object using the named algorithm.
-
-An optional string argument may be provided and will be
-automatically hashed.
-
-The MD5 and SHA1 algorithms are always supported.
-[clinic start generated code]*/
-
+/*[clinic input]
+_hashlib.new as EVP_new
+
+ name as name_obj: object
+ string as data_obj: object(c_default="NULL") = b''
+ *
+ usedforsecurity: bool = True
+
+Return a new hash object using the named algorithm.
+
+An optional string argument may be provided and will be
+automatically hashed.
+
+The MD5 and SHA1 algorithms are always supported.
+[clinic start generated code]*/
+
static PyObject *
-EVP_new_impl(PyObject *module, PyObject *name_obj, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=ddd5053f92dffe90 input=c24554d0337be1b0]*/
+EVP_new_impl(PyObject *module, PyObject *name_obj, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=ddd5053f92dffe90 input=c24554d0337be1b0]*/
{
char *name;
if (!PyArg_Parse(name_obj, "s", &name)) {
PyErr_SetString(PyExc_TypeError, "name must be a string");
return NULL;
}
- return py_evp_fromname(module, name, data_obj, usedforsecurity);
-}
-
-
-/*[clinic input]
-_hashlib.openssl_md5
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a md5 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_md5_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=87b0186440a44f8c input=990e36d5e689b16e]*/
-{
- return py_evp_fromname(module, Py_hash_md5, data_obj, usedforsecurity);
-}
-
-
-/*[clinic input]
-_hashlib.openssl_sha1
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha1 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha1_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=6813024cf690670d input=948f2f4b6deabc10]*/
-{
- return py_evp_fromname(module, Py_hash_sha1, data_obj, usedforsecurity);
-}
-
-
-/*[clinic input]
-_hashlib.openssl_sha224
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha224 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
+ return py_evp_fromname(module, name, data_obj, usedforsecurity);
+}
+
+
+/*[clinic input]
+_hashlib.openssl_md5
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a md5 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_md5_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=87b0186440a44f8c input=990e36d5e689b16e]*/
+{
+ return py_evp_fromname(module, Py_hash_md5, data_obj, usedforsecurity);
+}
+
+
+/*[clinic input]
+_hashlib.openssl_sha1
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha1 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha1_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=6813024cf690670d input=948f2f4b6deabc10]*/
+{
+ return py_evp_fromname(module, Py_hash_sha1, data_obj, usedforsecurity);
+}
+
+
+/*[clinic input]
+_hashlib.openssl_sha224
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha224 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha224_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=a2dfe7cc4eb14ebb input=f9272821fadca505]*/
+{
+ return py_evp_fromname(module, Py_hash_sha224, data_obj, usedforsecurity);
+}
+
+
+/*[clinic input]
+_hashlib.openssl_sha256
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha256 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha256_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=1f874a34870f0a68 input=549fad9d2930d4c5]*/
+{
+ return py_evp_fromname(module, Py_hash_sha256, data_obj, usedforsecurity);
+}
+
+
+/*[clinic input]
+_hashlib.openssl_sha384
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha384 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha384_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=58529eff9ca457b2 input=48601a6e3bf14ad7]*/
+{
+ return py_evp_fromname(module, Py_hash_sha384, data_obj, usedforsecurity);
+}
+
+
+/*[clinic input]
+_hashlib.openssl_sha512
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha512 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha512_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=2c744c9e4a40d5f6 input=c5c46a2a817aa98f]*/
+{
+ return py_evp_fromname(module, Py_hash_sha512, data_obj, usedforsecurity);
+}
+
+
+#ifdef PY_OPENSSL_HAS_SHA3
+
+/*[clinic input]
+_hashlib.openssl_sha3_224
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha3-224 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha3_224_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=144641c1d144b974 input=e3a01b2888916157]*/
+{
+ return py_evp_fromname(module, Py_hash_sha3_224, data_obj, usedforsecurity);
+}
+
+/*[clinic input]
+_hashlib.openssl_sha3_256
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha3-256 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha3_256_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=c61f1ab772d06668 input=e2908126c1b6deed]*/
+{
+ return py_evp_fromname(module, Py_hash_sha3_256, data_obj , usedforsecurity);
+}
+
+/*[clinic input]
+_hashlib.openssl_sha3_384
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha3-384 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_sha3_384_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=f68e4846858cf0ee input=ec0edf5c792f8252]*/
+{
+ return py_evp_fromname(module, Py_hash_sha3_384, data_obj , usedforsecurity);
+}
+
+/*[clinic input]
+_hashlib.openssl_sha3_512
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a sha3-512 hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
static PyObject *
-_hashlib_openssl_sha224_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=a2dfe7cc4eb14ebb input=f9272821fadca505]*/
-{
- return py_evp_fromname(module, Py_hash_sha224, data_obj, usedforsecurity);
-}
-
-
-/*[clinic input]
-_hashlib.openssl_sha256
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha256 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=1f874a34870f0a68 input=549fad9d2930d4c5]*/
-{
- return py_evp_fromname(module, Py_hash_sha256, data_obj, usedforsecurity);
-}
-
-
-/*[clinic input]
-_hashlib.openssl_sha384
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha384 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha384_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=58529eff9ca457b2 input=48601a6e3bf14ad7]*/
-{
- return py_evp_fromname(module, Py_hash_sha384, data_obj, usedforsecurity);
-}
-
-
-/*[clinic input]
-_hashlib.openssl_sha512
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha512 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha512_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=2c744c9e4a40d5f6 input=c5c46a2a817aa98f]*/
-{
- return py_evp_fromname(module, Py_hash_sha512, data_obj, usedforsecurity);
-}
-
-
-#ifdef PY_OPENSSL_HAS_SHA3
-
-/*[clinic input]
-_hashlib.openssl_sha3_224
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha3-224 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha3_224_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=144641c1d144b974 input=e3a01b2888916157]*/
-{
- return py_evp_fromname(module, Py_hash_sha3_224, data_obj, usedforsecurity);
-}
-
-/*[clinic input]
-_hashlib.openssl_sha3_256
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha3-256 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha3_256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=c61f1ab772d06668 input=e2908126c1b6deed]*/
-{
- return py_evp_fromname(module, Py_hash_sha3_256, data_obj , usedforsecurity);
-}
-
-/*[clinic input]
-_hashlib.openssl_sha3_384
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha3-384 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha3_384_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=f68e4846858cf0ee input=ec0edf5c792f8252]*/
-{
- return py_evp_fromname(module, Py_hash_sha3_384, data_obj , usedforsecurity);
-}
-
-/*[clinic input]
-_hashlib.openssl_sha3_512
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a sha3-512 hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_sha3_512_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=2eede478c159354a input=64e2cc0c094d56f4]*/
-{
- return py_evp_fromname(module, Py_hash_sha3_512, data_obj , usedforsecurity);
-}
-#endif /* PY_OPENSSL_HAS_SHA3 */
-
-#ifdef PY_OPENSSL_HAS_SHAKE
-/*[clinic input]
-_hashlib.openssl_shake_128
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a shake-128 variable hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_shake_128_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=bc49cdd8ada1fa97 input=6c9d67440eb33ec8]*/
-{
- return py_evp_fromname(module, Py_hash_shake_128, data_obj , usedforsecurity);
-}
-
-/*[clinic input]
-_hashlib.openssl_shake_256
-
- string as data_obj: object(py_default="b''") = NULL
- *
- usedforsecurity: bool = True
-
-Returns a shake-256 variable hash object; optionally initialized with a string
-
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_openssl_shake_256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity)
-/*[clinic end generated code: output=358d213be8852df7 input=479cbe9fefd4a9f8]*/
-{
- return py_evp_fromname(module, Py_hash_shake_256, data_obj , usedforsecurity);
-}
-#endif /* PY_OPENSSL_HAS_SHAKE */
-
-/*[clinic input]
-_hashlib.pbkdf2_hmac as pbkdf2_hmac
-
- hash_name: str
- password: Py_buffer
- salt: Py_buffer
- iterations: long
- dklen as dklen_obj: object = None
-
-Password based key derivation function 2 (PKCS #5 v2.0) with HMAC as pseudorandom function.
-[clinic start generated code]*/
-
-static PyObject *
-pbkdf2_hmac_impl(PyObject *module, const char *hash_name,
- Py_buffer *password, Py_buffer *salt, long iterations,
- PyObject *dklen_obj)
-/*[clinic end generated code: output=144b76005416599b input=ed3ab0d2d28b5d5c]*/
-{
- PyObject *key_obj = NULL;
- char *key;
- long dklen;
+_hashlib_openssl_sha3_512_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=2eede478c159354a input=64e2cc0c094d56f4]*/
+{
+ return py_evp_fromname(module, Py_hash_sha3_512, data_obj , usedforsecurity);
+}
+#endif /* PY_OPENSSL_HAS_SHA3 */
+
+#ifdef PY_OPENSSL_HAS_SHAKE
+/*[clinic input]
+_hashlib.openssl_shake_128
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a shake-128 variable hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_shake_128_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=bc49cdd8ada1fa97 input=6c9d67440eb33ec8]*/
+{
+ return py_evp_fromname(module, Py_hash_shake_128, data_obj , usedforsecurity);
+}
+
+/*[clinic input]
+_hashlib.openssl_shake_256
+
+ string as data_obj: object(py_default="b''") = NULL
+ *
+ usedforsecurity: bool = True
+
+Returns a shake-256 variable hash object; optionally initialized with a string
+
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_openssl_shake_256_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity)
+/*[clinic end generated code: output=358d213be8852df7 input=479cbe9fefd4a9f8]*/
+{
+ return py_evp_fromname(module, Py_hash_shake_256, data_obj , usedforsecurity);
+}
+#endif /* PY_OPENSSL_HAS_SHAKE */
+
+/*[clinic input]
+_hashlib.pbkdf2_hmac as pbkdf2_hmac
+
+ hash_name: str
+ password: Py_buffer
+ salt: Py_buffer
+ iterations: long
+ dklen as dklen_obj: object = None
+
+Password based key derivation function 2 (PKCS #5 v2.0) with HMAC as pseudorandom function.
+[clinic start generated code]*/
+
+static PyObject *
+pbkdf2_hmac_impl(PyObject *module, const char *hash_name,
+ Py_buffer *password, Py_buffer *salt, long iterations,
+ PyObject *dklen_obj)
+/*[clinic end generated code: output=144b76005416599b input=ed3ab0d2d28b5d5c]*/
+{
+ PyObject *key_obj = NULL;
+ char *key;
+ long dklen;
int retval;
- PY_EVP_MD *digest = py_digest_by_name(module, hash_name, Py_ht_pbkdf2);
+ PY_EVP_MD *digest = py_digest_by_name(module, hash_name, Py_ht_pbkdf2);
if (digest == NULL) {
PyErr_SetString(PyExc_ValueError, "unsupported hash type");
goto end;
}
- if (password->len > INT_MAX) {
+ if (password->len > INT_MAX) {
PyErr_SetString(PyExc_OverflowError,
"password is too long.");
goto end;
}
- if (salt->len > INT_MAX) {
+ if (salt->len > INT_MAX) {
PyErr_SetString(PyExc_OverflowError,
"salt is too long.");
goto end;
@@ -1291,22 +1291,22 @@ pbkdf2_hmac_impl(PyObject *module, const char *hash_name,
key = PyBytes_AS_STRING(key_obj);
Py_BEGIN_ALLOW_THREADS
- retval = PKCS5_PBKDF2_HMAC((char*)password->buf, (int)password->len,
- (unsigned char *)salt->buf, (int)salt->len,
+ retval = PKCS5_PBKDF2_HMAC((char*)password->buf, (int)password->len,
+ (unsigned char *)salt->buf, (int)salt->len,
iterations, digest, dklen,
(unsigned char *)key);
Py_END_ALLOW_THREADS
if (!retval) {
Py_CLEAR(key_obj);
- _setException(PyExc_ValueError, NULL);
+ _setException(PyExc_ValueError, NULL);
goto end;
}
end:
- if (digest != NULL) {
- PY_EVP_MD_free(digest);
- }
+ if (digest != NULL) {
+ PY_EVP_MD_free(digest);
+ }
return key_obj;
}
@@ -1406,7 +1406,7 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
/* let OpenSSL validate the rest */
retval = EVP_PBE_scrypt(NULL, 0, NULL, 0, n, r, p, maxmem, NULL, 0);
if (!retval) {
- _setException(PyExc_ValueError, "Invalid parameter combination for n, r, p, maxmem.");
+ _setException(PyExc_ValueError, "Invalid parameter combination for n, r, p, maxmem.");
return NULL;
}
@@ -1427,7 +1427,7 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
if (!retval) {
Py_CLEAR(key_obj);
- _setException(PyExc_ValueError, NULL);
+ _setException(PyExc_ValueError, NULL);
return NULL;
}
return key_obj;
@@ -1438,7 +1438,7 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
*/
/*[clinic input]
-_hashlib.hmac_digest as _hashlib_hmac_singleshot
+_hashlib.hmac_digest as _hashlib_hmac_singleshot
key: Py_buffer
msg: Py_buffer
@@ -1448,16 +1448,16 @@ Single-shot HMAC.
[clinic start generated code]*/
static PyObject *
-_hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer *key,
- Py_buffer *msg, const char *digest)
-/*[clinic end generated code: output=15658ede5ab98185 input=019dffc571909a46]*/
+_hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer *key,
+ Py_buffer *msg, const char *digest)
+/*[clinic end generated code: output=15658ede5ab98185 input=019dffc571909a46]*/
{
unsigned char md[EVP_MAX_MD_SIZE] = {0};
unsigned int md_len = 0;
unsigned char *result;
- PY_EVP_MD *evp;
+ PY_EVP_MD *evp;
- evp = py_digest_by_name(module, digest, Py_ht_mac);
+ evp = py_digest_by_name(module, digest, Py_ht_mac);
if (evp == NULL) {
return NULL;
}
@@ -1472,11 +1472,11 @@ _hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer *key,
return NULL;
}
- evp = py_digest_by_name(module, digest, Py_ht_mac);
- if (evp == NULL) {
- return NULL;
- }
-
+ evp = py_digest_by_name(module, digest, Py_ht_mac);
+ if (evp == NULL) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
result = HMAC(
evp,
@@ -1485,371 +1485,371 @@ _hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer *key,
md, &md_len
);
Py_END_ALLOW_THREADS
- PY_EVP_MD_free(evp);
+ PY_EVP_MD_free(evp);
if (result == NULL) {
- _setException(PyExc_ValueError, NULL);
+ _setException(PyExc_ValueError, NULL);
return NULL;
}
return PyBytes_FromStringAndSize((const char*)md, md_len);
}
-/* OpenSSL-based HMAC implementation
- */
-
-static int _hmac_update(HMACobject*, PyObject*);
-
-/*[clinic input]
-_hashlib.hmac_new
-
- key: Py_buffer
- msg as msg_obj: object(c_default="NULL") = b''
- digestmod: str(c_default="NULL") = None
-
-Return a new hmac object.
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj,
- const char *digestmod)
-/*[clinic end generated code: output=9a35673be0cbea1b input=a0878868eb190134]*/
-{
- PyTypeObject *type = get_hashlib_state(module)->HMACtype;
- PY_EVP_MD *digest;
- HMAC_CTX *ctx = NULL;
- HMACobject *self = NULL;
- int r;
-
- if (key->len > INT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "key is too long.");
- return NULL;
- }
-
- if ((digestmod == NULL) || !strlen(digestmod)) {
- PyErr_SetString(
- PyExc_TypeError, "Missing required parameter 'digestmod'.");
- return NULL;
- }
-
- digest = py_digest_by_name(module, digestmod, Py_ht_mac);
- if (!digest) {
- return NULL;
- }
-
- ctx = HMAC_CTX_new();
- if (ctx == NULL) {
- _setException(PyExc_ValueError, NULL);
- goto error;
- }
-
- r = HMAC_Init_ex(
- ctx,
- (const char*)key->buf,
- (int)key->len,
- digest,
- NULL /*impl*/);
- PY_EVP_MD_free(digest);
- if (r == 0) {
- _setException(PyExc_ValueError, NULL);
- goto error;
- }
-
- self = (HMACobject *)PyObject_New(HMACobject, type);
- if (self == NULL) {
- goto error;
- }
-
- self->ctx = ctx;
- self->lock = NULL;
-
- if ((msg_obj != NULL) && (msg_obj != Py_None)) {
- if (!_hmac_update(self, msg_obj))
- goto error;
- }
-
- return (PyObject*)self;
-
-error:
- if (ctx) HMAC_CTX_free(ctx);
- if (self) PyObject_Del(self);
- return NULL;
-}
-
-/* helper functions */
-static int
-locked_HMAC_CTX_copy(HMAC_CTX *new_ctx_p, HMACobject *self)
-{
- int result;
- ENTER_HASHLIB(self);
- result = HMAC_CTX_copy(new_ctx_p, self->ctx);
- LEAVE_HASHLIB(self);
- return result;
-}
-
-static unsigned int
-_hmac_digest_size(HMACobject *self)
-{
- unsigned int digest_size = EVP_MD_size(HMAC_CTX_get_md(self->ctx));
- assert(digest_size <= EVP_MAX_MD_SIZE);
- return digest_size;
-}
-
-static int
-_hmac_update(HMACobject *self, PyObject *obj)
-{
- int r;
- Py_buffer view = {0};
-
- GET_BUFFER_VIEW_OR_ERROR(obj, &view, return 0);
-
- if (self->lock == NULL && view.len >= HASHLIB_GIL_MINSIZE) {
- self->lock = PyThread_allocate_lock();
- /* fail? lock = NULL and we fail over to non-threaded code. */
- }
-
- if (self->lock != NULL) {
- Py_BEGIN_ALLOW_THREADS
- PyThread_acquire_lock(self->lock, 1);
- r = HMAC_Update(self->ctx, (const unsigned char*)view.buf, view.len);
- PyThread_release_lock(self->lock);
- Py_END_ALLOW_THREADS
- } else {
- r = HMAC_Update(self->ctx, (const unsigned char*)view.buf, view.len);
- }
-
- PyBuffer_Release(&view);
-
- if (r == 0) {
- _setException(PyExc_ValueError, NULL);
- return 0;
- }
- return 1;
-}
-
-/*[clinic input]
-_hashlib.HMAC.copy
-
-Return a copy ("clone") of the HMAC object.
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_HMAC_copy_impl(HMACobject *self)
-/*[clinic end generated code: output=29aa28b452833127 input=e2fa6a05db61a4d6]*/
-{
- HMACobject *retval;
-
- HMAC_CTX *ctx = HMAC_CTX_new();
- if (ctx == NULL) {
- return _setException(PyExc_ValueError, NULL);
- }
- if (!locked_HMAC_CTX_copy(ctx, self)) {
- HMAC_CTX_free(ctx);
- return _setException(PyExc_ValueError, NULL);
- }
-
- retval = (HMACobject *)PyObject_New(HMACobject, Py_TYPE(self));
- if (retval == NULL) {
- HMAC_CTX_free(ctx);
- return NULL;
- }
- retval->ctx = ctx;
- retval->lock = NULL;
-
- return (PyObject *)retval;
-}
-
-static void
-_hmac_dealloc(HMACobject *self)
-{
- PyTypeObject *tp = Py_TYPE(self);
- if (self->lock != NULL) {
- PyThread_free_lock(self->lock);
- }
- HMAC_CTX_free(self->ctx);
- PyObject_Del(self);
- Py_DECREF(tp);
-}
-
-static PyObject *
-_hmac_repr(HMACobject *self)
-{
- PyObject *digest_name = py_digest_name(HMAC_CTX_get_md(self->ctx));
- if (digest_name == NULL) {
- return NULL;
- }
- PyObject *repr = PyUnicode_FromFormat(
- "<%U HMAC object @ %p>", digest_name, self
- );
- Py_DECREF(digest_name);
- return repr;
-}
-
-/*[clinic input]
-_hashlib.HMAC.update
- msg: object
-
-Update the HMAC object with msg.
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_HMAC_update_impl(HMACobject *self, PyObject *msg)
-/*[clinic end generated code: output=f31f0ace8c625b00 input=1829173bb3cfd4e6]*/
-{
- if (!_hmac_update(self, msg)) {
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-static int
-_hmac_digest(HMACobject *self, unsigned char *buf, unsigned int len)
-{
- HMAC_CTX *temp_ctx = HMAC_CTX_new();
- if (temp_ctx == NULL) {
- PyErr_NoMemory();
- return 0;
- }
- if (!locked_HMAC_CTX_copy(temp_ctx, self)) {
- _setException(PyExc_ValueError, NULL);
- return 0;
- }
- int r = HMAC_Final(temp_ctx, buf, &len);
- HMAC_CTX_free(temp_ctx);
- if (r == 0) {
- _setException(PyExc_ValueError, NULL);
- return 0;
- }
- return 1;
-}
-
-/*[clinic input]
-_hashlib.HMAC.digest
-Return the digest of the bytes passed to the update() method so far.
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_HMAC_digest_impl(HMACobject *self)
-/*[clinic end generated code: output=1b1424355af7a41e input=bff07f74da318fb4]*/
-{
- unsigned char digest[EVP_MAX_MD_SIZE];
- unsigned int digest_size = _hmac_digest_size(self);
- if (digest_size == 0) {
- return _setException(PyExc_ValueError, NULL);
- }
- int r = _hmac_digest(self, digest, digest_size);
- if (r == 0) {
- return NULL;
- }
- return PyBytes_FromStringAndSize((const char *)digest, digest_size);
-}
-
-/*[clinic input]
-_hashlib.HMAC.hexdigest
-
-Return hexadecimal digest of the bytes passed to the update() method so far.
-
-This may be used to exchange the value safely in email or other non-binary
-environments.
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_HMAC_hexdigest_impl(HMACobject *self)
-/*[clinic end generated code: output=80d825be1eaae6a7 input=5abc42702874ddcf]*/
-{
- unsigned char digest[EVP_MAX_MD_SIZE];
- unsigned int digest_size = _hmac_digest_size(self);
- if (digest_size == 0) {
- return _setException(PyExc_ValueError, NULL);
- }
- int r = _hmac_digest(self, digest, digest_size);
- if (r == 0) {
- return NULL;
- }
- return _Py_strhex((const char *)digest, digest_size);
-}
-
-static PyObject *
-_hashlib_hmac_get_digest_size(HMACobject *self, void *closure)
-{
- unsigned int digest_size = _hmac_digest_size(self);
- if (digest_size == 0) {
- return _setException(PyExc_ValueError, NULL);
- }
- return PyLong_FromLong(digest_size);
-}
-
-static PyObject *
-_hashlib_hmac_get_block_size(HMACobject *self, void *closure)
-{
- const EVP_MD *md = HMAC_CTX_get_md(self->ctx);
- if (md == NULL) {
- return _setException(PyExc_ValueError, NULL);
- }
- return PyLong_FromLong(EVP_MD_block_size(md));
-}
-
-static PyObject *
-_hashlib_hmac_get_name(HMACobject *self, void *closure)
-{
- PyObject *digest_name = py_digest_name(HMAC_CTX_get_md(self->ctx));
- if (digest_name == NULL) {
- return NULL;
- }
- PyObject *name = PyUnicode_FromFormat("hmac-%U", digest_name);
- Py_DECREF(digest_name);
- return name;
-}
-
-static PyMethodDef HMAC_methods[] = {
- _HASHLIB_HMAC_UPDATE_METHODDEF
- _HASHLIB_HMAC_DIGEST_METHODDEF
- _HASHLIB_HMAC_HEXDIGEST_METHODDEF
- _HASHLIB_HMAC_COPY_METHODDEF
- {NULL, NULL} /* sentinel */
-};
-
-static PyGetSetDef HMAC_getset[] = {
- {"digest_size", (getter)_hashlib_hmac_get_digest_size, NULL, NULL, NULL},
- {"block_size", (getter)_hashlib_hmac_get_block_size, NULL, NULL, NULL},
- {"name", (getter)_hashlib_hmac_get_name, NULL, NULL, NULL},
- {NULL} /* Sentinel */
-};
-
-
-PyDoc_STRVAR(hmactype_doc,
-"The object used to calculate HMAC of a message.\n\
-\n\
-Methods:\n\
-\n\
-update() -- updates the current digest with an additional string\n\
-digest() -- return the current digest value\n\
-hexdigest() -- return the current digest as a string of hexadecimal digits\n\
-copy() -- return a copy of the current hash object\n\
-\n\
-Attributes:\n\
-\n\
-name -- the name, including the hash algorithm used by this object\n\
-digest_size -- number of bytes in digest() output\n");
-
-static PyType_Slot HMACtype_slots[] = {
- {Py_tp_doc, (char *)hmactype_doc},
- {Py_tp_repr, (reprfunc)_hmac_repr},
- {Py_tp_dealloc,(destructor)_hmac_dealloc},
- {Py_tp_methods, HMAC_methods},
- {Py_tp_getset, HMAC_getset},
- {Py_tp_new, _disabled_new},
- {0, NULL}
-};
-
-PyType_Spec HMACtype_spec = {
- "_hashlib.HMAC", /* name */
- sizeof(HMACobject), /* basicsize */
- .flags = Py_TPFLAGS_DEFAULT,
- .slots = HMACtype_slots,
-};
-
-
+/* OpenSSL-based HMAC implementation
+ */
+
+static int _hmac_update(HMACobject*, PyObject*);
+
+/*[clinic input]
+_hashlib.hmac_new
+
+ key: Py_buffer
+ msg as msg_obj: object(c_default="NULL") = b''
+ digestmod: str(c_default="NULL") = None
+
+Return a new hmac object.
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj,
+ const char *digestmod)
+/*[clinic end generated code: output=9a35673be0cbea1b input=a0878868eb190134]*/
+{
+ PyTypeObject *type = get_hashlib_state(module)->HMACtype;
+ PY_EVP_MD *digest;
+ HMAC_CTX *ctx = NULL;
+ HMACobject *self = NULL;
+ int r;
+
+ if (key->len > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "key is too long.");
+ return NULL;
+ }
+
+ if ((digestmod == NULL) || !strlen(digestmod)) {
+ PyErr_SetString(
+ PyExc_TypeError, "Missing required parameter 'digestmod'.");
+ return NULL;
+ }
+
+ digest = py_digest_by_name(module, digestmod, Py_ht_mac);
+ if (!digest) {
+ return NULL;
+ }
+
+ ctx = HMAC_CTX_new();
+ if (ctx == NULL) {
+ _setException(PyExc_ValueError, NULL);
+ goto error;
+ }
+
+ r = HMAC_Init_ex(
+ ctx,
+ (const char*)key->buf,
+ (int)key->len,
+ digest,
+ NULL /*impl*/);
+ PY_EVP_MD_free(digest);
+ if (r == 0) {
+ _setException(PyExc_ValueError, NULL);
+ goto error;
+ }
+
+ self = (HMACobject *)PyObject_New(HMACobject, type);
+ if (self == NULL) {
+ goto error;
+ }
+
+ self->ctx = ctx;
+ self->lock = NULL;
+
+ if ((msg_obj != NULL) && (msg_obj != Py_None)) {
+ if (!_hmac_update(self, msg_obj))
+ goto error;
+ }
+
+ return (PyObject*)self;
+
+error:
+ if (ctx) HMAC_CTX_free(ctx);
+ if (self) PyObject_Del(self);
+ return NULL;
+}
+
+/* helper functions */
+static int
+locked_HMAC_CTX_copy(HMAC_CTX *new_ctx_p, HMACobject *self)
+{
+ int result;
+ ENTER_HASHLIB(self);
+ result = HMAC_CTX_copy(new_ctx_p, self->ctx);
+ LEAVE_HASHLIB(self);
+ return result;
+}
+
+static unsigned int
+_hmac_digest_size(HMACobject *self)
+{
+ unsigned int digest_size = EVP_MD_size(HMAC_CTX_get_md(self->ctx));
+ assert(digest_size <= EVP_MAX_MD_SIZE);
+ return digest_size;
+}
+
+static int
+_hmac_update(HMACobject *self, PyObject *obj)
+{
+ int r;
+ Py_buffer view = {0};
+
+ GET_BUFFER_VIEW_OR_ERROR(obj, &view, return 0);
+
+ if (self->lock == NULL && view.len >= HASHLIB_GIL_MINSIZE) {
+ self->lock = PyThread_allocate_lock();
+ /* fail? lock = NULL and we fail over to non-threaded code. */
+ }
+
+ if (self->lock != NULL) {
+ Py_BEGIN_ALLOW_THREADS
+ PyThread_acquire_lock(self->lock, 1);
+ r = HMAC_Update(self->ctx, (const unsigned char*)view.buf, view.len);
+ PyThread_release_lock(self->lock);
+ Py_END_ALLOW_THREADS
+ } else {
+ r = HMAC_Update(self->ctx, (const unsigned char*)view.buf, view.len);
+ }
+
+ PyBuffer_Release(&view);
+
+ if (r == 0) {
+ _setException(PyExc_ValueError, NULL);
+ return 0;
+ }
+ return 1;
+}
+
+/*[clinic input]
+_hashlib.HMAC.copy
+
+Return a copy ("clone") of the HMAC object.
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_HMAC_copy_impl(HMACobject *self)
+/*[clinic end generated code: output=29aa28b452833127 input=e2fa6a05db61a4d6]*/
+{
+ HMACobject *retval;
+
+ HMAC_CTX *ctx = HMAC_CTX_new();
+ if (ctx == NULL) {
+ return _setException(PyExc_ValueError, NULL);
+ }
+ if (!locked_HMAC_CTX_copy(ctx, self)) {
+ HMAC_CTX_free(ctx);
+ return _setException(PyExc_ValueError, NULL);
+ }
+
+ retval = (HMACobject *)PyObject_New(HMACobject, Py_TYPE(self));
+ if (retval == NULL) {
+ HMAC_CTX_free(ctx);
+ return NULL;
+ }
+ retval->ctx = ctx;
+ retval->lock = NULL;
+
+ return (PyObject *)retval;
+}
+
+static void
+_hmac_dealloc(HMACobject *self)
+{
+ PyTypeObject *tp = Py_TYPE(self);
+ if (self->lock != NULL) {
+ PyThread_free_lock(self->lock);
+ }
+ HMAC_CTX_free(self->ctx);
+ PyObject_Del(self);
+ Py_DECREF(tp);
+}
+
+static PyObject *
+_hmac_repr(HMACobject *self)
+{
+ PyObject *digest_name = py_digest_name(HMAC_CTX_get_md(self->ctx));
+ if (digest_name == NULL) {
+ return NULL;
+ }
+ PyObject *repr = PyUnicode_FromFormat(
+ "<%U HMAC object @ %p>", digest_name, self
+ );
+ Py_DECREF(digest_name);
+ return repr;
+}
+
+/*[clinic input]
+_hashlib.HMAC.update
+ msg: object
+
+Update the HMAC object with msg.
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_HMAC_update_impl(HMACobject *self, PyObject *msg)
+/*[clinic end generated code: output=f31f0ace8c625b00 input=1829173bb3cfd4e6]*/
+{
+ if (!_hmac_update(self, msg)) {
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+static int
+_hmac_digest(HMACobject *self, unsigned char *buf, unsigned int len)
+{
+ HMAC_CTX *temp_ctx = HMAC_CTX_new();
+ if (temp_ctx == NULL) {
+ PyErr_NoMemory();
+ return 0;
+ }
+ if (!locked_HMAC_CTX_copy(temp_ctx, self)) {
+ _setException(PyExc_ValueError, NULL);
+ return 0;
+ }
+ int r = HMAC_Final(temp_ctx, buf, &len);
+ HMAC_CTX_free(temp_ctx);
+ if (r == 0) {
+ _setException(PyExc_ValueError, NULL);
+ return 0;
+ }
+ return 1;
+}
+
+/*[clinic input]
+_hashlib.HMAC.digest
+Return the digest of the bytes passed to the update() method so far.
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_HMAC_digest_impl(HMACobject *self)
+/*[clinic end generated code: output=1b1424355af7a41e input=bff07f74da318fb4]*/
+{
+ unsigned char digest[EVP_MAX_MD_SIZE];
+ unsigned int digest_size = _hmac_digest_size(self);
+ if (digest_size == 0) {
+ return _setException(PyExc_ValueError, NULL);
+ }
+ int r = _hmac_digest(self, digest, digest_size);
+ if (r == 0) {
+ return NULL;
+ }
+ return PyBytes_FromStringAndSize((const char *)digest, digest_size);
+}
+
+/*[clinic input]
+_hashlib.HMAC.hexdigest
+
+Return hexadecimal digest of the bytes passed to the update() method so far.
+
+This may be used to exchange the value safely in email or other non-binary
+environments.
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_HMAC_hexdigest_impl(HMACobject *self)
+/*[clinic end generated code: output=80d825be1eaae6a7 input=5abc42702874ddcf]*/
+{
+ unsigned char digest[EVP_MAX_MD_SIZE];
+ unsigned int digest_size = _hmac_digest_size(self);
+ if (digest_size == 0) {
+ return _setException(PyExc_ValueError, NULL);
+ }
+ int r = _hmac_digest(self, digest, digest_size);
+ if (r == 0) {
+ return NULL;
+ }
+ return _Py_strhex((const char *)digest, digest_size);
+}
+
+static PyObject *
+_hashlib_hmac_get_digest_size(HMACobject *self, void *closure)
+{
+ unsigned int digest_size = _hmac_digest_size(self);
+ if (digest_size == 0) {
+ return _setException(PyExc_ValueError, NULL);
+ }
+ return PyLong_FromLong(digest_size);
+}
+
+static PyObject *
+_hashlib_hmac_get_block_size(HMACobject *self, void *closure)
+{
+ const EVP_MD *md = HMAC_CTX_get_md(self->ctx);
+ if (md == NULL) {
+ return _setException(PyExc_ValueError, NULL);
+ }
+ return PyLong_FromLong(EVP_MD_block_size(md));
+}
+
+static PyObject *
+_hashlib_hmac_get_name(HMACobject *self, void *closure)
+{
+ PyObject *digest_name = py_digest_name(HMAC_CTX_get_md(self->ctx));
+ if (digest_name == NULL) {
+ return NULL;
+ }
+ PyObject *name = PyUnicode_FromFormat("hmac-%U", digest_name);
+ Py_DECREF(digest_name);
+ return name;
+}
+
+static PyMethodDef HMAC_methods[] = {
+ _HASHLIB_HMAC_UPDATE_METHODDEF
+ _HASHLIB_HMAC_DIGEST_METHODDEF
+ _HASHLIB_HMAC_HEXDIGEST_METHODDEF
+ _HASHLIB_HMAC_COPY_METHODDEF
+ {NULL, NULL} /* sentinel */
+};
+
+static PyGetSetDef HMAC_getset[] = {
+ {"digest_size", (getter)_hashlib_hmac_get_digest_size, NULL, NULL, NULL},
+ {"block_size", (getter)_hashlib_hmac_get_block_size, NULL, NULL, NULL},
+ {"name", (getter)_hashlib_hmac_get_name, NULL, NULL, NULL},
+ {NULL} /* Sentinel */
+};
+
+
+PyDoc_STRVAR(hmactype_doc,
+"The object used to calculate HMAC of a message.\n\
+\n\
+Methods:\n\
+\n\
+update() -- updates the current digest with an additional string\n\
+digest() -- return the current digest value\n\
+hexdigest() -- return the current digest as a string of hexadecimal digits\n\
+copy() -- return a copy of the current hash object\n\
+\n\
+Attributes:\n\
+\n\
+name -- the name, including the hash algorithm used by this object\n\
+digest_size -- number of bytes in digest() output\n");
+
+static PyType_Slot HMACtype_slots[] = {
+ {Py_tp_doc, (char *)hmactype_doc},
+ {Py_tp_repr, (reprfunc)_hmac_repr},
+ {Py_tp_dealloc,(destructor)_hmac_dealloc},
+ {Py_tp_methods, HMAC_methods},
+ {Py_tp_getset, HMAC_getset},
+ {Py_tp_new, _disabled_new},
+ {0, NULL}
+};
+
+PyType_Spec HMACtype_spec = {
+ "_hashlib.HMAC", /* name */
+ sizeof(HMACobject), /* basicsize */
+ .flags = Py_TPFLAGS_DEFAULT,
+ .slots = HMACtype_slots,
+};
+
+
/* State for our callback function so that it can accumulate a result. */
typedef struct _internal_name_mapper_state {
PyObject *set;
@@ -1859,17 +1859,17 @@ typedef struct _internal_name_mapper_state {
/* A callback function to pass to OpenSSL's OBJ_NAME_do_all(...) */
static void
-_openssl_hash_name_mapper(const EVP_MD *md, const char *from,
- const char *to, void *arg)
+_openssl_hash_name_mapper(const EVP_MD *md, const char *from,
+ const char *to, void *arg)
{
_InternalNameMapperState *state = (_InternalNameMapperState *)arg;
PyObject *py_name;
assert(state != NULL);
- if (md == NULL)
+ if (md == NULL)
return;
- py_name = py_digest_name(md);
+ py_name = py_digest_name(md);
if (py_name == NULL) {
state->error = 1;
} else {
@@ -1882,402 +1882,402 @@ _openssl_hash_name_mapper(const EVP_MD *md, const char *from,
/* Ask OpenSSL for a list of supported ciphers, filling in a Python set. */
-static int
-hashlib_md_meth_names(PyObject *module)
+static int
+hashlib_md_meth_names(PyObject *module)
{
- _InternalNameMapperState state = {
- .set = PyFrozenSet_New(NULL),
- .error = 0
- };
- if (state.set == NULL) {
- return -1;
- }
+ _InternalNameMapperState state = {
+ .set = PyFrozenSet_New(NULL),
+ .error = 0
+ };
+ if (state.set == NULL) {
+ return -1;
+ }
- EVP_MD_do_all(&_openssl_hash_name_mapper, &state);
+ EVP_MD_do_all(&_openssl_hash_name_mapper, &state);
if (state.error) {
Py_DECREF(state.set);
- return -1;
- }
-
- if (PyModule_AddObject(module, "openssl_md_meth_names", state.set) < 0) {
- Py_DECREF(state.set);
- return -1;
- }
-
- return 0;
-}
-
-/* LibreSSL doesn't support FIPS:
- https://marc.info/?l=openbsd-misc&m=139819485423701&w=2
-
- Ted Unangst wrote: "I figured I should mention our current libressl policy
- wrt FIPS mode. It's gone and it's not coming back." */
-#ifndef LIBRESSL_VERSION_NUMBER
-/*[clinic input]
-_hashlib.get_fips_mode -> int
-
-Determine the OpenSSL FIPS mode of operation.
-
-For OpenSSL 3.0.0 and newer it returns the state of the default provider
-in the default OSSL context. It's not quite the same as FIPS_mode() but good
-enough for unittests.
-
-Effectively any non-zero return value indicates FIPS mode;
-values other than 1 may have additional significance.
-[clinic start generated code]*/
-
-static int
-_hashlib_get_fips_mode_impl(PyObject *module)
-/*[clinic end generated code: output=87eece1bab4d3fa9 input=2db61538c41c6fef]*/
-
-{
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
- return EVP_default_properties_is_fips_enabled(NULL);
-#else
- ERR_clear_error();
- int result = FIPS_mode();
- if (result == 0) {
- // "If the library was built without support of the FIPS Object Module,
- // then the function will return 0 with an error code of
- // CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0x0f06d065)."
- // But 0 is also a valid result value.
- unsigned long errcode = ERR_peek_last_error();
- if (errcode) {
- _setException(PyExc_ValueError, NULL);
- return -1;
- }
- }
- return result;
-#endif
-}
-#endif // !LIBRESSL_VERSION_NUMBER
-
-
-static int
-_tscmp(const unsigned char *a, const unsigned char *b,
- Py_ssize_t len_a, Py_ssize_t len_b)
-{
- /* loop count depends on length of b. Might leak very little timing
- * information if sizes are different.
- */
- Py_ssize_t length = len_b;
- const void *left = a;
- const void *right = b;
- int result = 0;
-
- if (len_a != length) {
- left = b;
- result = 1;
- }
-
- result |= CRYPTO_memcmp(left, right, length);
-
- return (result == 0);
-}
-
-/* NOTE: Keep in sync with _operator.c implementation. */
-
-/*[clinic input]
-_hashlib.compare_digest
-
- a: object
- b: object
- /
-
-Return 'a == b'.
-
-This function uses an approach designed to prevent
-timing analysis, making it appropriate for cryptography.
-
-a and b must both be of the same type: either str (ASCII only),
-or any bytes-like object.
-
-Note: If a and b are of different lengths, or if an error occurs,
-a timing attack could theoretically reveal information about the
-types and lengths of a and b--but not their values.
-[clinic start generated code]*/
-
-static PyObject *
-_hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b)
-/*[clinic end generated code: output=6f1c13927480aed9 input=9c40c6e566ca12f5]*/
-{
- int rc;
-
- /* ASCII unicode string */
- if(PyUnicode_Check(a) && PyUnicode_Check(b)) {
- if (PyUnicode_READY(a) == -1 || PyUnicode_READY(b) == -1) {
- return NULL;
- }
- if (!PyUnicode_IS_ASCII(a) || !PyUnicode_IS_ASCII(b)) {
- PyErr_SetString(PyExc_TypeError,
- "comparing strings with non-ASCII characters is "
- "not supported");
- return NULL;
- }
-
- rc = _tscmp(PyUnicode_DATA(a),
- PyUnicode_DATA(b),
- PyUnicode_GET_LENGTH(a),
- PyUnicode_GET_LENGTH(b));
- }
- /* fallback to buffer interface for bytes, bytesarray and other */
- else {
- Py_buffer view_a;
- Py_buffer view_b;
-
- if (PyObject_CheckBuffer(a) == 0 && PyObject_CheckBuffer(b) == 0) {
- PyErr_Format(PyExc_TypeError,
- "unsupported operand types(s) or combination of types: "
- "'%.100s' and '%.100s'",
- Py_TYPE(a)->tp_name, Py_TYPE(b)->tp_name);
- return NULL;
- }
-
- if (PyObject_GetBuffer(a, &view_a, PyBUF_SIMPLE) == -1) {
- return NULL;
- }
- if (view_a.ndim > 1) {
- PyErr_SetString(PyExc_BufferError,
- "Buffer must be single dimension");
- PyBuffer_Release(&view_a);
- return NULL;
- }
-
- if (PyObject_GetBuffer(b, &view_b, PyBUF_SIMPLE) == -1) {
- PyBuffer_Release(&view_a);
- return NULL;
- }
- if (view_b.ndim > 1) {
- PyErr_SetString(PyExc_BufferError,
- "Buffer must be single dimension");
- PyBuffer_Release(&view_a);
- PyBuffer_Release(&view_b);
- return NULL;
- }
-
- rc = _tscmp((const unsigned char*)view_a.buf,
- (const unsigned char*)view_b.buf,
- view_a.len,
- view_b.len);
-
- PyBuffer_Release(&view_a);
- PyBuffer_Release(&view_b);
- }
-
- return PyBool_FromLong(rc);
-}
-
+ return -1;
+ }
+
+ if (PyModule_AddObject(module, "openssl_md_meth_names", state.set) < 0) {
+ Py_DECREF(state.set);
+ return -1;
+ }
+
+ return 0;
+}
+
+/* LibreSSL doesn't support FIPS:
+ https://marc.info/?l=openbsd-misc&m=139819485423701&w=2
+
+ Ted Unangst wrote: "I figured I should mention our current libressl policy
+ wrt FIPS mode. It's gone and it's not coming back." */
+#ifndef LIBRESSL_VERSION_NUMBER
+/*[clinic input]
+_hashlib.get_fips_mode -> int
+
+Determine the OpenSSL FIPS mode of operation.
+
+For OpenSSL 3.0.0 and newer it returns the state of the default provider
+in the default OSSL context. It's not quite the same as FIPS_mode() but good
+enough for unittests.
+
+Effectively any non-zero return value indicates FIPS mode;
+values other than 1 may have additional significance.
+[clinic start generated code]*/
+
+static int
+_hashlib_get_fips_mode_impl(PyObject *module)
+/*[clinic end generated code: output=87eece1bab4d3fa9 input=2db61538c41c6fef]*/
+
+{
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ return EVP_default_properties_is_fips_enabled(NULL);
+#else
+ ERR_clear_error();
+ int result = FIPS_mode();
+ if (result == 0) {
+ // "If the library was built without support of the FIPS Object Module,
+ // then the function will return 0 with an error code of
+ // CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0x0f06d065)."
+ // But 0 is also a valid result value.
+ unsigned long errcode = ERR_peek_last_error();
+ if (errcode) {
+ _setException(PyExc_ValueError, NULL);
+ return -1;
+ }
+ }
+ return result;
+#endif
+}
+#endif // !LIBRESSL_VERSION_NUMBER
+
+
+static int
+_tscmp(const unsigned char *a, const unsigned char *b,
+ Py_ssize_t len_a, Py_ssize_t len_b)
+{
+ /* loop count depends on length of b. Might leak very little timing
+ * information if sizes are different.
+ */
+ Py_ssize_t length = len_b;
+ const void *left = a;
+ const void *right = b;
+ int result = 0;
+
+ if (len_a != length) {
+ left = b;
+ result = 1;
+ }
+
+ result |= CRYPTO_memcmp(left, right, length);
+
+ return (result == 0);
+}
+
+/* NOTE: Keep in sync with _operator.c implementation. */
+
+/*[clinic input]
+_hashlib.compare_digest
+
+ a: object
+ b: object
+ /
+
+Return 'a == b'.
+
+This function uses an approach designed to prevent
+timing analysis, making it appropriate for cryptography.
+
+a and b must both be of the same type: either str (ASCII only),
+or any bytes-like object.
+
+Note: If a and b are of different lengths, or if an error occurs,
+a timing attack could theoretically reveal information about the
+types and lengths of a and b--but not their values.
+[clinic start generated code]*/
+
+static PyObject *
+_hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b)
+/*[clinic end generated code: output=6f1c13927480aed9 input=9c40c6e566ca12f5]*/
+{
+ int rc;
+
+ /* ASCII unicode string */
+ if(PyUnicode_Check(a) && PyUnicode_Check(b)) {
+ if (PyUnicode_READY(a) == -1 || PyUnicode_READY(b) == -1) {
+ return NULL;
+ }
+ if (!PyUnicode_IS_ASCII(a) || !PyUnicode_IS_ASCII(b)) {
+ PyErr_SetString(PyExc_TypeError,
+ "comparing strings with non-ASCII characters is "
+ "not supported");
+ return NULL;
+ }
+
+ rc = _tscmp(PyUnicode_DATA(a),
+ PyUnicode_DATA(b),
+ PyUnicode_GET_LENGTH(a),
+ PyUnicode_GET_LENGTH(b));
+ }
+ /* fallback to buffer interface for bytes, bytesarray and other */
+ else {
+ Py_buffer view_a;
+ Py_buffer view_b;
+
+ if (PyObject_CheckBuffer(a) == 0 && PyObject_CheckBuffer(b) == 0) {
+ PyErr_Format(PyExc_TypeError,
+ "unsupported operand types(s) or combination of types: "
+ "'%.100s' and '%.100s'",
+ Py_TYPE(a)->tp_name, Py_TYPE(b)->tp_name);
+ return NULL;
+ }
+
+ if (PyObject_GetBuffer(a, &view_a, PyBUF_SIMPLE) == -1) {
+ return NULL;
+ }
+ if (view_a.ndim > 1) {
+ PyErr_SetString(PyExc_BufferError,
+ "Buffer must be single dimension");
+ PyBuffer_Release(&view_a);
+ return NULL;
+ }
+
+ if (PyObject_GetBuffer(b, &view_b, PyBUF_SIMPLE) == -1) {
+ PyBuffer_Release(&view_a);
+ return NULL;
+ }
+ if (view_b.ndim > 1) {
+ PyErr_SetString(PyExc_BufferError,
+ "Buffer must be single dimension");
+ PyBuffer_Release(&view_a);
+ PyBuffer_Release(&view_b);
+ return NULL;
+ }
+
+ rc = _tscmp((const unsigned char*)view_a.buf,
+ (const unsigned char*)view_b.buf,
+ view_a.len,
+ view_b.len);
+
+ PyBuffer_Release(&view_a);
+ PyBuffer_Release(&view_b);
+ }
+
+ return PyBool_FromLong(rc);
+}
+
/* List of functions exported by this module */
static struct PyMethodDef EVP_functions[] = {
- EVP_NEW_METHODDEF
- PBKDF2_HMAC_METHODDEF
+ EVP_NEW_METHODDEF
+ PBKDF2_HMAC_METHODDEF
_HASHLIB_SCRYPT_METHODDEF
- _HASHLIB_GET_FIPS_MODE_METHODDEF
- _HASHLIB_COMPARE_DIGEST_METHODDEF
- _HASHLIB_HMAC_SINGLESHOT_METHODDEF
- _HASHLIB_HMAC_NEW_METHODDEF
- _HASHLIB_OPENSSL_MD5_METHODDEF
- _HASHLIB_OPENSSL_SHA1_METHODDEF
- _HASHLIB_OPENSSL_SHA224_METHODDEF
- _HASHLIB_OPENSSL_SHA256_METHODDEF
- _HASHLIB_OPENSSL_SHA384_METHODDEF
- _HASHLIB_OPENSSL_SHA512_METHODDEF
- _HASHLIB_OPENSSL_SHA3_224_METHODDEF
- _HASHLIB_OPENSSL_SHA3_256_METHODDEF
- _HASHLIB_OPENSSL_SHA3_384_METHODDEF
- _HASHLIB_OPENSSL_SHA3_512_METHODDEF
- _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
- _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
+ _HASHLIB_GET_FIPS_MODE_METHODDEF
+ _HASHLIB_COMPARE_DIGEST_METHODDEF
+ _HASHLIB_HMAC_SINGLESHOT_METHODDEF
+ _HASHLIB_HMAC_NEW_METHODDEF
+ _HASHLIB_OPENSSL_MD5_METHODDEF
+ _HASHLIB_OPENSSL_SHA1_METHODDEF
+ _HASHLIB_OPENSSL_SHA224_METHODDEF
+ _HASHLIB_OPENSSL_SHA256_METHODDEF
+ _HASHLIB_OPENSSL_SHA384_METHODDEF
+ _HASHLIB_OPENSSL_SHA512_METHODDEF
+ _HASHLIB_OPENSSL_SHA3_224_METHODDEF
+ _HASHLIB_OPENSSL_SHA3_256_METHODDEF
+ _HASHLIB_OPENSSL_SHA3_384_METHODDEF
+ _HASHLIB_OPENSSL_SHA3_512_METHODDEF
+ _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
+ _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
{NULL, NULL} /* Sentinel */
};
/* Initialize this module. */
-static int
-hashlib_traverse(PyObject *m, visitproc visit, void *arg)
-{
- _hashlibstate *state = get_hashlib_state(m);
- Py_VISIT(state->EVPtype);
- Py_VISIT(state->HMACtype);
-#ifdef PY_OPENSSL_HAS_SHAKE
- Py_VISIT(state->EVPXOFtype);
-#endif
- return 0;
-}
-
-static int
-hashlib_clear(PyObject *m)
-{
- _hashlibstate *state = get_hashlib_state(m);
- Py_CLEAR(state->EVPtype);
- Py_CLEAR(state->HMACtype);
-#ifdef PY_OPENSSL_HAS_SHAKE
- Py_CLEAR(state->EVPXOFtype);
-#endif
- if (state->hashtable != NULL) {
- _Py_hashtable_destroy(state->hashtable);
- state->hashtable = NULL;
- }
- return 0;
-}
-
-static void
-hashlib_free(void *m)
-{
- hashlib_clear((PyObject *)m);
-}
-
-/* Py_mod_exec functions */
-static int
-hashlib_openssl_legacy_init(PyObject *module)
-{
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+static int
+hashlib_traverse(PyObject *m, visitproc visit, void *arg)
+{
+ _hashlibstate *state = get_hashlib_state(m);
+ Py_VISIT(state->EVPtype);
+ Py_VISIT(state->HMACtype);
+#ifdef PY_OPENSSL_HAS_SHAKE
+ Py_VISIT(state->EVPXOFtype);
+#endif
+ return 0;
+}
+
+static int
+hashlib_clear(PyObject *m)
+{
+ _hashlibstate *state = get_hashlib_state(m);
+ Py_CLEAR(state->EVPtype);
+ Py_CLEAR(state->HMACtype);
+#ifdef PY_OPENSSL_HAS_SHAKE
+ Py_CLEAR(state->EVPXOFtype);
+#endif
+ if (state->hashtable != NULL) {
+ _Py_hashtable_destroy(state->hashtable);
+ state->hashtable = NULL;
+ }
+ return 0;
+}
+
+static void
+hashlib_free(void *m)
+{
+ hashlib_clear((PyObject *)m);
+}
+
+/* Py_mod_exec functions */
+static int
+hashlib_openssl_legacy_init(PyObject *module)
+{
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
/* Load all digest algorithms and initialize cpuid */
OPENSSL_add_all_algorithms_noconf();
ERR_load_crypto_strings();
#endif
- return 0;
-}
-
-static int
-hashlib_init_hashtable(PyObject *module)
-{
- _hashlibstate *state = get_hashlib_state(module);
-
- state->hashtable = py_hashentry_table_new();
- if (state->hashtable == NULL) {
- PyErr_NoMemory();
- return -1;
- }
- return 0;
-}
-
-static int
-hashlib_init_evptype(PyObject *module)
-{
- _hashlibstate *state = get_hashlib_state(module);
-
- state->EVPtype = (PyTypeObject *)PyType_FromSpec(&EVPtype_spec);
- if (state->EVPtype == NULL) {
- return -1;
- }
- if (PyModule_AddType(module, state->EVPtype) < 0) {
- return -1;
- }
- return 0;
-}
-
-static int
-hashlib_init_evpxoftype(PyObject *module)
-{
-#ifdef PY_OPENSSL_HAS_SHAKE
- _hashlibstate *state = get_hashlib_state(module);
- PyObject *bases;
-
- if (state->EVPtype == NULL) {
- return -1;
- }
-
- bases = PyTuple_Pack(1, state->EVPtype);
- if (bases == NULL) {
- return -1;
- }
-
- state->EVPXOFtype = (PyTypeObject *)PyType_FromSpecWithBases(
- &EVPXOFtype_spec, bases
- );
- Py_DECREF(bases);
- if (state->EVPXOFtype == NULL) {
- return -1;
- }
- if (PyModule_AddType(module, state->EVPXOFtype) < 0) {
- return -1;
- }
-#endif
- return 0;
-}
-
-static int
-hashlib_init_hmactype(PyObject *module)
-{
- _hashlibstate *state = get_hashlib_state(module);
-
- state->HMACtype = (PyTypeObject *)PyType_FromSpec(&HMACtype_spec);
- if (state->HMACtype == NULL) {
- return -1;
- }
- if (PyModule_AddType(module, state->HMACtype) < 0) {
- return -1;
- }
- return 0;
-}
-
-#if 0
-static PyModuleDef_Slot hashlib_slots[] = {
- /* OpenSSL 1.0.2 and LibreSSL */
- {Py_mod_exec, hashlib_openssl_legacy_init},
- {Py_mod_exec, hashlib_init_hashtable},
- {Py_mod_exec, hashlib_init_evptype},
- {Py_mod_exec, hashlib_init_evpxoftype},
- {Py_mod_exec, hashlib_init_hmactype},
- {Py_mod_exec, hashlib_md_meth_names},
- {0, NULL}
-};
-#endif
-
-static struct PyModuleDef _hashlibmodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "_hashlib",
- .m_doc = "OpenSSL interface for hashlib module",
- .m_size = sizeof(_hashlibstate),
- .m_methods = EVP_functions,
- .m_slots = NULL,
- .m_traverse = hashlib_traverse,
- .m_clear = hashlib_clear,
- .m_free = hashlib_free
-};
-
-PyMODINIT_FUNC
-PyInit__hashlib(void)
-{
- PyObject *m = PyState_FindModule(&_hashlibmodule);
- if (m != NULL) {
- Py_INCREF(m);
- return m;
- }
-
+ return 0;
+}
+
+static int
+hashlib_init_hashtable(PyObject *module)
+{
+ _hashlibstate *state = get_hashlib_state(module);
+
+ state->hashtable = py_hashentry_table_new();
+ if (state->hashtable == NULL) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ return 0;
+}
+
+static int
+hashlib_init_evptype(PyObject *module)
+{
+ _hashlibstate *state = get_hashlib_state(module);
+
+ state->EVPtype = (PyTypeObject *)PyType_FromSpec(&EVPtype_spec);
+ if (state->EVPtype == NULL) {
+ return -1;
+ }
+ if (PyModule_AddType(module, state->EVPtype) < 0) {
+ return -1;
+ }
+ return 0;
+}
+
+static int
+hashlib_init_evpxoftype(PyObject *module)
+{
+#ifdef PY_OPENSSL_HAS_SHAKE
+ _hashlibstate *state = get_hashlib_state(module);
+ PyObject *bases;
+
+ if (state->EVPtype == NULL) {
+ return -1;
+ }
+
+ bases = PyTuple_Pack(1, state->EVPtype);
+ if (bases == NULL) {
+ return -1;
+ }
+
+ state->EVPXOFtype = (PyTypeObject *)PyType_FromSpecWithBases(
+ &EVPXOFtype_spec, bases
+ );
+ Py_DECREF(bases);
+ if (state->EVPXOFtype == NULL) {
+ return -1;
+ }
+ if (PyModule_AddType(module, state->EVPXOFtype) < 0) {
+ return -1;
+ }
+#endif
+ return 0;
+}
+
+static int
+hashlib_init_hmactype(PyObject *module)
+{
+ _hashlibstate *state = get_hashlib_state(module);
+
+ state->HMACtype = (PyTypeObject *)PyType_FromSpec(&HMACtype_spec);
+ if (state->HMACtype == NULL) {
+ return -1;
+ }
+ if (PyModule_AddType(module, state->HMACtype) < 0) {
+ return -1;
+ }
+ return 0;
+}
+
+#if 0
+static PyModuleDef_Slot hashlib_slots[] = {
+ /* OpenSSL 1.0.2 and LibreSSL */
+ {Py_mod_exec, hashlib_openssl_legacy_init},
+ {Py_mod_exec, hashlib_init_hashtable},
+ {Py_mod_exec, hashlib_init_evptype},
+ {Py_mod_exec, hashlib_init_evpxoftype},
+ {Py_mod_exec, hashlib_init_hmactype},
+ {Py_mod_exec, hashlib_md_meth_names},
+ {0, NULL}
+};
+#endif
+
+static struct PyModuleDef _hashlibmodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "_hashlib",
+ .m_doc = "OpenSSL interface for hashlib module",
+ .m_size = sizeof(_hashlibstate),
+ .m_methods = EVP_functions,
+ .m_slots = NULL,
+ .m_traverse = hashlib_traverse,
+ .m_clear = hashlib_clear,
+ .m_free = hashlib_free
+};
+
+PyMODINIT_FUNC
+PyInit__hashlib(void)
+{
+ PyObject *m = PyState_FindModule(&_hashlibmodule);
+ if (m != NULL) {
+ Py_INCREF(m);
+ return m;
+ }
+
m = PyModule_Create(&_hashlibmodule);
- if (m == NULL) {
+ if (m == NULL) {
return NULL;
- }
+ }
- if (hashlib_openssl_legacy_init(m) < 0) {
+ if (hashlib_openssl_legacy_init(m) < 0) {
+ Py_DECREF(m);
+ return NULL;
+ }
+ if (hashlib_init_hashtable(m) < 0) {
+ Py_DECREF(m);
+ return NULL;
+ }
+ if (hashlib_init_evptype(m) < 0) {
+ Py_DECREF(m);
+ return NULL;
+ }
+ if (hashlib_init_evpxoftype(m) < 0) {
+ Py_DECREF(m);
+ return NULL;
+ }
+ if (hashlib_init_hmactype(m) < 0) {
Py_DECREF(m);
return NULL;
}
- if (hashlib_init_hashtable(m) < 0) {
- Py_DECREF(m);
- return NULL;
- }
- if (hashlib_init_evptype(m) < 0) {
+ if (hashlib_md_meth_names(m) == -1) {
Py_DECREF(m);
return NULL;
}
- if (hashlib_init_evpxoftype(m) < 0) {
- Py_DECREF(m);
- return NULL;
- }
- if (hashlib_init_hmactype(m) < 0) {
- Py_DECREF(m);
- return NULL;
- }
- if (hashlib_md_meth_names(m) == -1) {
- Py_DECREF(m);
- return NULL;
- }
return m;
}
diff --git a/contrib/tools/python3/src/Modules/_heapqmodule.c b/contrib/tools/python3/src/Modules/_heapqmodule.c
index 7f6291b103..4e85e046d3 100644
--- a/contrib/tools/python3/src/Modules/_heapqmodule.c
+++ b/contrib/tools/python3/src/Modules/_heapqmodule.c
@@ -8,13 +8,13 @@ annotated by François Pinard, and converted to C by Raymond Hettinger.
#include "Python.h"
-#include "clinic/_heapqmodule.c.h"
-
-/*[clinic input]
-module _heapq
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=d7cca0a2e4c0ceb3]*/
-
+#include "clinic/_heapqmodule.c.h"
+
+/*[clinic input]
+module _heapq
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=d7cca0a2e4c0ceb3]*/
+
static int
siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
{
@@ -36,11 +36,11 @@ siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
while (pos > startpos) {
parentpos = (pos - 1) >> 1;
parent = arr[parentpos];
- Py_INCREF(newitem);
- Py_INCREF(parent);
+ Py_INCREF(newitem);
+ Py_INCREF(parent);
cmp = PyObject_RichCompareBool(newitem, parent, Py_LT);
- Py_DECREF(parent);
- Py_DECREF(newitem);
+ Py_DECREF(parent);
+ Py_DECREF(newitem);
if (cmp < 0)
return -1;
if (size != PyList_GET_SIZE(heap)) {
@@ -82,13 +82,13 @@ siftup(PyListObject *heap, Py_ssize_t pos)
/* Set childpos to index of smaller child. */
childpos = 2*pos + 1; /* leftmost child position */
if (childpos + 1 < endpos) {
- PyObject* a = arr[childpos];
- PyObject* b = arr[childpos + 1];
- Py_INCREF(a);
- Py_INCREF(b);
- cmp = PyObject_RichCompareBool(a, b, Py_LT);
- Py_DECREF(a);
- Py_DECREF(b);
+ PyObject* a = arr[childpos];
+ PyObject* b = arr[childpos + 1];
+ Py_INCREF(a);
+ Py_INCREF(b);
+ cmp = PyObject_RichCompareBool(a, b, Py_LT);
+ Py_DECREF(a);
+ Py_DECREF(b);
if (cmp < 0)
return -1;
childpos += ((unsigned)cmp ^ 1); /* increment when cmp==0 */
@@ -110,19 +110,19 @@ siftup(PyListObject *heap, Py_ssize_t pos)
return siftdown(heap, startpos, pos);
}
-/*[clinic input]
-_heapq.heappush
-
- heap: object
- item: object
- /
-
-Push item onto heap, maintaining the heap invariant.
-[clinic start generated code]*/
-
+/*[clinic input]
+_heapq.heappush
+
+ heap: object
+ item: object
+ /
+
+Push item onto heap, maintaining the heap invariant.
+[clinic start generated code]*/
+
static PyObject *
-_heapq_heappush_impl(PyObject *module, PyObject *heap, PyObject *item)
-/*[clinic end generated code: output=912c094f47663935 input=7913545cb5118842]*/
+_heapq_heappush_impl(PyObject *module, PyObject *heap, PyObject *item)
+/*[clinic end generated code: output=912c094f47663935 input=7913545cb5118842]*/
{
if (!PyList_Check(heap)) {
PyErr_SetString(PyExc_TypeError, "heap argument must be a list");
@@ -174,26 +174,26 @@ heappop_internal(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))
return returnitem;
}
-/*[clinic input]
-_heapq.heappop
-
- heap: object
- /
-
-Pop the smallest item off the heap, maintaining the heap invariant.
-[clinic start generated code]*/
-
+/*[clinic input]
+_heapq.heappop
+
+ heap: object
+ /
+
+Pop the smallest item off the heap, maintaining the heap invariant.
+[clinic start generated code]*/
+
static PyObject *
-_heapq_heappop(PyObject *module, PyObject *heap)
-/*[clinic end generated code: output=e1bbbc9866bce179 input=9bd36317b806033d]*/
+_heapq_heappop(PyObject *module, PyObject *heap)
+/*[clinic end generated code: output=e1bbbc9866bce179 input=9bd36317b806033d]*/
{
return heappop_internal(heap, siftup);
}
static PyObject *
-heapreplace_internal(PyObject *heap, PyObject *item, int siftup_func(PyListObject *, Py_ssize_t))
+heapreplace_internal(PyObject *heap, PyObject *item, int siftup_func(PyListObject *, Py_ssize_t))
{
- PyObject *returnitem;
+ PyObject *returnitem;
if (!PyList_Check(heap)) {
PyErr_SetString(PyExc_TypeError, "heap argument must be a list");
@@ -215,50 +215,50 @@ heapreplace_internal(PyObject *heap, PyObject *item, int siftup_func(PyListObjec
return returnitem;
}
-
-/*[clinic input]
-_heapq.heapreplace
-
- heap: object
- item: object
- /
-
-Pop and return the current smallest value, and add the new item.
-
-This is more efficient than heappop() followed by heappush(), and can be
-more appropriate when using a fixed-size heap. Note that the value
-returned may be larger than item! That constrains reasonable uses of
-this routine unless written as part of a conditional replacement:
-
- if item > heap[0]:
- item = heapreplace(heap, item)
-[clinic start generated code]*/
-
+
+/*[clinic input]
+_heapq.heapreplace
+
+ heap: object
+ item: object
+ /
+
+Pop and return the current smallest value, and add the new item.
+
+This is more efficient than heappop() followed by heappush(), and can be
+more appropriate when using a fixed-size heap. Note that the value
+returned may be larger than item! That constrains reasonable uses of
+this routine unless written as part of a conditional replacement:
+
+ if item > heap[0]:
+ item = heapreplace(heap, item)
+[clinic start generated code]*/
+
static PyObject *
-_heapq_heapreplace_impl(PyObject *module, PyObject *heap, PyObject *item)
-/*[clinic end generated code: output=82ea55be8fbe24b4 input=e57ae8f4ecfc88e3]*/
+_heapq_heapreplace_impl(PyObject *module, PyObject *heap, PyObject *item)
+/*[clinic end generated code: output=82ea55be8fbe24b4 input=e57ae8f4ecfc88e3]*/
{
- return heapreplace_internal(heap, item, siftup);
+ return heapreplace_internal(heap, item, siftup);
}
-/*[clinic input]
-_heapq.heappushpop
-
- heap: object
- item: object
- /
-
-Push item on the heap, then pop and return the smallest item from the heap.
-
-The combined action runs more efficiently than heappush() followed by
-a separate call to heappop().
-[clinic start generated code]*/
-
+/*[clinic input]
+_heapq.heappushpop
+
+ heap: object
+ item: object
+ /
+
+Push item on the heap, then pop and return the smallest item from the heap.
+
+The combined action runs more efficiently than heappush() followed by
+a separate call to heappop().
+[clinic start generated code]*/
+
static PyObject *
-_heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item)
-/*[clinic end generated code: output=67231dc98ed5774f input=eb48c90ba77b2214]*/
+_heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item)
+/*[clinic end generated code: output=67231dc98ed5774f input=eb48c90ba77b2214]*/
{
- PyObject *returnitem;
+ PyObject *returnitem;
int cmp;
if (!PyList_Check(heap)) {
@@ -271,10 +271,10 @@ _heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item)
return item;
}
- PyObject* top = PyList_GET_ITEM(heap, 0);
- Py_INCREF(top);
- cmp = PyObject_RichCompareBool(top, item, Py_LT);
- Py_DECREF(top);
+ PyObject* top = PyList_GET_ITEM(heap, 0);
+ Py_INCREF(top);
+ cmp = PyObject_RichCompareBool(top, item, Py_LT);
+ Py_DECREF(top);
if (cmp < 0)
return NULL;
if (cmp == 0) {
@@ -393,18 +393,18 @@ heapify_internal(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))
Py_RETURN_NONE;
}
-/*[clinic input]
-_heapq.heapify
-
- heap: object
- /
-
-Transform list into a heap, in-place, in O(len(heap)) time.
-[clinic start generated code]*/
-
+/*[clinic input]
+_heapq.heapify
+
+ heap: object
+ /
+
+Transform list into a heap, in-place, in O(len(heap)) time.
+[clinic start generated code]*/
+
static PyObject *
-_heapq_heapify(PyObject *module, PyObject *heap)
-/*[clinic end generated code: output=11483f23627c4616 input=872c87504b8de970]*/
+_heapq_heapify(PyObject *module, PyObject *heap)
+/*[clinic end generated code: output=11483f23627c4616 input=872c87504b8de970]*/
{
return heapify_internal(heap, siftup);
}
@@ -430,11 +430,11 @@ siftdown_max(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
while (pos > startpos) {
parentpos = (pos - 1) >> 1;
parent = arr[parentpos];
- Py_INCREF(parent);
- Py_INCREF(newitem);
+ Py_INCREF(parent);
+ Py_INCREF(newitem);
cmp = PyObject_RichCompareBool(parent, newitem, Py_LT);
- Py_DECREF(parent);
- Py_DECREF(newitem);
+ Py_DECREF(parent);
+ Py_DECREF(newitem);
if (cmp < 0)
return -1;
if (size != PyList_GET_SIZE(heap)) {
@@ -476,13 +476,13 @@ siftup_max(PyListObject *heap, Py_ssize_t pos)
/* Set childpos to index of smaller child. */
childpos = 2*pos + 1; /* leftmost child position */
if (childpos + 1 < endpos) {
- PyObject* a = arr[childpos + 1];
- PyObject* b = arr[childpos];
- Py_INCREF(a);
- Py_INCREF(b);
- cmp = PyObject_RichCompareBool(a, b, Py_LT);
- Py_DECREF(a);
- Py_DECREF(b);
+ PyObject* a = arr[childpos + 1];
+ PyObject* b = arr[childpos];
+ Py_INCREF(a);
+ Py_INCREF(b);
+ cmp = PyObject_RichCompareBool(a, b, Py_LT);
+ Py_DECREF(a);
+ Py_DECREF(b);
if (cmp < 0)
return -1;
childpos += ((unsigned)cmp ^ 1); /* increment when cmp==0 */
@@ -504,67 +504,67 @@ siftup_max(PyListObject *heap, Py_ssize_t pos)
return siftdown_max(heap, startpos, pos);
}
-
-/*[clinic input]
-_heapq._heappop_max
-
- heap: object
- /
-
-Maxheap variant of heappop.
-[clinic start generated code]*/
-
+
+/*[clinic input]
+_heapq._heappop_max
+
+ heap: object
+ /
+
+Maxheap variant of heappop.
+[clinic start generated code]*/
+
static PyObject *
-_heapq__heappop_max(PyObject *module, PyObject *heap)
-/*[clinic end generated code: output=acd30acf6384b13c input=62ede3ba9117f541]*/
+_heapq__heappop_max(PyObject *module, PyObject *heap)
+/*[clinic end generated code: output=acd30acf6384b13c input=62ede3ba9117f541]*/
{
return heappop_internal(heap, siftup_max);
}
-/*[clinic input]
-_heapq._heapreplace_max
+/*[clinic input]
+_heapq._heapreplace_max
+
+ heap: object
+ item: object
+ /
+
+Maxheap variant of heapreplace.
+[clinic start generated code]*/
- heap: object
- item: object
- /
-
-Maxheap variant of heapreplace.
-[clinic start generated code]*/
-
static PyObject *
-_heapq__heapreplace_max_impl(PyObject *module, PyObject *heap,
- PyObject *item)
-/*[clinic end generated code: output=8ad7545e4a5e8adb input=6d8f25131e0f0e5f]*/
+_heapq__heapreplace_max_impl(PyObject *module, PyObject *heap,
+ PyObject *item)
+/*[clinic end generated code: output=8ad7545e4a5e8adb input=6d8f25131e0f0e5f]*/
{
- return heapreplace_internal(heap, item, siftup_max);
+ return heapreplace_internal(heap, item, siftup_max);
}
-/*[clinic input]
-_heapq._heapify_max
+/*[clinic input]
+_heapq._heapify_max
+
+ heap: object
+ /
+
+Maxheap variant of heapify.
+[clinic start generated code]*/
- heap: object
- /
-
-Maxheap variant of heapify.
-[clinic start generated code]*/
-
static PyObject *
-_heapq__heapify_max(PyObject *module, PyObject *heap)
-/*[clinic end generated code: output=1c6bb6b60d6a2133 input=cdfcc6835b14110d]*/
+_heapq__heapify_max(PyObject *module, PyObject *heap)
+/*[clinic end generated code: output=1c6bb6b60d6a2133 input=cdfcc6835b14110d]*/
{
return heapify_internal(heap, siftup_max);
}
static PyMethodDef heapq_methods[] = {
- _HEAPQ_HEAPPUSH_METHODDEF
- _HEAPQ_HEAPPUSHPOP_METHODDEF
- _HEAPQ_HEAPPOP_METHODDEF
- _HEAPQ_HEAPREPLACE_METHODDEF
- _HEAPQ_HEAPIFY_METHODDEF
- _HEAPQ__HEAPPOP_MAX_METHODDEF
- _HEAPQ__HEAPIFY_MAX_METHODDEF
- _HEAPQ__HEAPREPLACE_MAX_METHODDEF
- {NULL, NULL} /* sentinel */
+ _HEAPQ_HEAPPUSH_METHODDEF
+ _HEAPQ_HEAPPUSHPOP_METHODDEF
+ _HEAPQ_HEAPPOP_METHODDEF
+ _HEAPQ_HEAPREPLACE_METHODDEF
+ _HEAPQ_HEAPIFY_METHODDEF
+ _HEAPQ__HEAPPOP_MAX_METHODDEF
+ _HEAPQ__HEAPIFY_MAX_METHODDEF
+ _HEAPQ__HEAPREPLACE_MAX_METHODDEF
+ {NULL, NULL} /* sentinel */
};
PyDoc_STRVAR(module_doc,
@@ -693,29 +693,29 @@ Believe me, real good tape sorts were quite spectacular to watch!\n\
From all times, sorting has always been a Great Art! :-)\n");
-static int
-heapq_exec(PyObject *m)
-{
- PyObject *about = PyUnicode_FromString(__about__);
- if (PyModule_AddObject(m, "__about__", about) < 0) {
- Py_DECREF(about);
- return -1;
- }
- return 0;
-}
-
-static struct PyModuleDef_Slot heapq_slots[] = {
- {Py_mod_exec, heapq_exec},
- {0, NULL}
-};
-
+static int
+heapq_exec(PyObject *m)
+{
+ PyObject *about = PyUnicode_FromString(__about__);
+ if (PyModule_AddObject(m, "__about__", about) < 0) {
+ Py_DECREF(about);
+ return -1;
+ }
+ return 0;
+}
+
+static struct PyModuleDef_Slot heapq_slots[] = {
+ {Py_mod_exec, heapq_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef _heapqmodule = {
PyModuleDef_HEAD_INIT,
"_heapq",
module_doc,
- 0,
+ 0,
heapq_methods,
- heapq_slots,
+ heapq_slots,
NULL,
NULL,
NULL
@@ -724,5 +724,5 @@ static struct PyModuleDef _heapqmodule = {
PyMODINIT_FUNC
PyInit__heapq(void)
{
- return PyModuleDef_Init(&_heapqmodule);
+ return PyModuleDef_Init(&_heapqmodule);
}
diff --git a/contrib/tools/python3/src/Modules/_io/_iomodule.c b/contrib/tools/python3/src/Modules/_io/_iomodule.c
index cb60a90e4b..d7cadacea1 100644
--- a/contrib/tools/python3/src/Modules/_io/_iomodule.c
+++ b/contrib/tools/python3/src/Modules/_io/_iomodule.c
@@ -101,9 +101,9 @@ _io.open
file: object
mode: str = "r"
buffering: int = -1
- encoding: str(accept={str, NoneType}) = None
- errors: str(accept={str, NoneType}) = None
- newline: str(accept={str, NoneType}) = None
+ encoding: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
+ newline: str(accept={str, NoneType}) = None
closefd: bool(accept={int}) = True
opener: object = None
@@ -231,7 +231,7 @@ static PyObject *
_io_open_impl(PyObject *module, PyObject *file, const char *mode,
int buffering, const char *encoding, const char *errors,
const char *newline, int closefd, PyObject *opener)
-/*[clinic end generated code: output=aefafc4ce2b46dc0 input=7295902222e6b311]*/
+/*[clinic end generated code: output=aefafc4ce2b46dc0 input=7295902222e6b311]*/
{
unsigned i;
@@ -240,7 +240,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
char rawmode[6], *m;
int line_buffering, is_number;
- long isatty = 0;
+ long isatty = 0;
PyObject *raw, *modeobj = NULL, *buffer, *wrapper, *result = NULL, *path_or_fd = NULL;
@@ -323,7 +323,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
if (universal) {
if (creating || writing || appending || updating) {
PyErr_SetString(PyExc_ValueError,
- "mode U cannot be combined with 'x', 'w', 'a', or '+'");
+ "mode U cannot be combined with 'x', 'w', 'a', or '+'");
goto error;
}
if (PyErr_WarnEx(PyExc_DeprecationWarning,
@@ -362,29 +362,29 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
goto error;
}
- if (binary && buffering == 1) {
- if (PyErr_WarnEx(PyExc_RuntimeWarning,
- "line buffering (buffering=1) isn't supported in "
- "binary mode, the default buffer size will be used",
- 1) < 0) {
- goto error;
- }
- }
-
+ if (binary && buffering == 1) {
+ if (PyErr_WarnEx(PyExc_RuntimeWarning,
+ "line buffering (buffering=1) isn't supported in "
+ "binary mode, the default buffer size will be used",
+ 1) < 0) {
+ goto error;
+ }
+ }
+
/* Create the Raw file stream */
{
PyObject *RawIO_class = (PyObject *)&PyFileIO_Type;
#ifdef MS_WINDOWS
- const PyConfig *config = _Py_GetConfig();
- if (!config->legacy_windows_stdio && _PyIO_get_console_type(path_or_fd) != '\0') {
+ const PyConfig *config = _Py_GetConfig();
+ if (!config->legacy_windows_stdio && _PyIO_get_console_type(path_or_fd) != '\0') {
RawIO_class = (PyObject *)&PyWindowsConsoleIO_Type;
encoding = "utf-8";
}
#endif
- raw = PyObject_CallFunction(RawIO_class, "OsOO",
- path_or_fd, rawmode,
- closefd ? Py_True : Py_False,
- opener);
+ raw = PyObject_CallFunction(RawIO_class, "OsOO",
+ path_or_fd, rawmode,
+ closefd ? Py_True : Py_False,
+ opener);
}
if (raw == NULL)
@@ -399,8 +399,8 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
goto error;
/* buffering */
- if (buffering < 0) {
- PyObject *res = _PyObject_CallMethodIdNoArgs(raw, &PyId_isatty);
+ if (buffering < 0) {
+ PyObject *res = _PyObject_CallMethodIdNoArgs(raw, &PyId_isatty);
if (res == NULL)
goto error;
isatty = PyLong_AsLong(res);
@@ -409,7 +409,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
goto error;
}
- if (buffering == 1 || isatty) {
+ if (buffering == 1 || isatty) {
buffering = -1;
line_buffering = 1;
}
@@ -476,10 +476,10 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
/* wraps into a TextIOWrapper */
wrapper = PyObject_CallFunction((PyObject *)&PyTextIOWrapper_Type,
- "OsssO",
+ "OsssO",
buffer,
encoding, errors, newline,
- line_buffering ? Py_True : Py_False);
+ line_buffering ? Py_True : Py_False);
if (wrapper == NULL)
goto error;
result = wrapper;
@@ -494,7 +494,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
if (result != NULL) {
PyObject *exc, *val, *tb, *close_result;
PyErr_Fetch(&exc, &val, &tb);
- close_result = _PyObject_CallMethodIdNoArgs(result, &PyId_close);
+ close_result = _PyObject_CallMethodIdNoArgs(result, &PyId_close);
_PyErr_ChainExceptions(exc, val, tb);
Py_XDECREF(close_result);
Py_DECREF(result);
@@ -503,25 +503,25 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
Py_XDECREF(modeobj);
return NULL;
}
-
-/*[clinic input]
-_io.open_code
-
- path : unicode
-
-Opens the provided file with the intent to import the contents.
-
-This may perform extra validation beyond open(), but is otherwise interchangeable
-with calling open(path, 'rb').
-
-[clinic start generated code]*/
-
-static PyObject *
-_io_open_code_impl(PyObject *module, PyObject *path)
-/*[clinic end generated code: output=2fe4ecbd6f3d6844 input=f5c18e23f4b2ed9f]*/
-{
- return PyFile_OpenCodeObject(path);
-}
+
+/*[clinic input]
+_io.open_code
+
+ path : unicode
+
+Opens the provided file with the intent to import the contents.
+
+This may perform extra validation beyond open(), but is otherwise interchangeable
+with calling open(path, 'rb').
+
+[clinic start generated code]*/
+
+static PyObject *
+_io_open_code_impl(PyObject *module, PyObject *path)
+/*[clinic end generated code: output=2fe4ecbd6f3d6844 input=f5c18e23f4b2ed9f]*/
+{
+ return PyFile_OpenCodeObject(path);
+}
/*
* Private helpers for the io module.
@@ -563,7 +563,7 @@ PyNumber_AsOff_t(PyObject *item, PyObject *err)
/* Otherwise replace the error with caller's error object. */
PyErr_Format(err,
"cannot fit '%.200s' into an offset-sized integer",
- Py_TYPE(item)->tp_name);
+ Py_TYPE(item)->tp_name);
}
finish:
@@ -571,20 +571,20 @@ PyNumber_AsOff_t(PyObject *item, PyObject *err)
return result;
}
-static inline _PyIO_State*
-get_io_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_PyIO_State *)state;
-}
+static inline _PyIO_State*
+get_io_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_PyIO_State *)state;
+}
_PyIO_State *
_PyIO_get_module_state(void)
{
PyObject *mod = PyState_FindModule(&_PyIO_Module);
_PyIO_State *state;
- if (mod == NULL || (state = get_io_state(mod)) == NULL) {
+ if (mod == NULL || (state = get_io_state(mod)) == NULL) {
PyErr_SetString(PyExc_RuntimeError,
"could not find io module state "
"(interpreter shutdown?)");
@@ -620,7 +620,7 @@ _PyIO_get_locale_module(_PyIO_State *state)
static int
iomodule_traverse(PyObject *mod, visitproc visit, void *arg) {
- _PyIO_State *state = get_io_state(mod);
+ _PyIO_State *state = get_io_state(mod);
if (!state->initialized)
return 0;
if (state->locale_module != NULL) {
@@ -633,7 +633,7 @@ iomodule_traverse(PyObject *mod, visitproc visit, void *arg) {
static int
iomodule_clear(PyObject *mod) {
- _PyIO_State *state = get_io_state(mod);
+ _PyIO_State *state = get_io_state(mod);
if (!state->initialized)
return 0;
if (state->locale_module != NULL)
@@ -656,7 +656,7 @@ iomodule_free(PyObject *mod) {
static PyMethodDef module_methods[] = {
_IO_OPEN_METHODDEF
- _IO_OPEN_CODE_METHODDEF
+ _IO_OPEN_CODE_METHODDEF
{NULL, NULL}
};
@@ -679,11 +679,11 @@ PyInit__io(void)
_PyIO_State *state = NULL;
if (m == NULL)
return NULL;
- state = get_io_state(m);
+ state = get_io_state(m);
state->initialized = 0;
-#define ADD_TYPE(type) \
- if (PyModule_AddType(m, type) < 0) { \
+#define ADD_TYPE(type) \
+ if (PyModule_AddType(m, type) < 0) { \
goto fail; \
}
@@ -711,54 +711,54 @@ PyInit__io(void)
/* Concrete base types of the IO ABCs.
(the ABCs themselves are declared through inheritance in io.py)
*/
- ADD_TYPE(&PyIOBase_Type);
- ADD_TYPE(&PyRawIOBase_Type);
- ADD_TYPE(&PyBufferedIOBase_Type);
- ADD_TYPE(&PyTextIOBase_Type);
+ ADD_TYPE(&PyIOBase_Type);
+ ADD_TYPE(&PyRawIOBase_Type);
+ ADD_TYPE(&PyBufferedIOBase_Type);
+ ADD_TYPE(&PyTextIOBase_Type);
/* Implementation of concrete IO objects. */
/* FileIO */
PyFileIO_Type.tp_base = &PyRawIOBase_Type;
- ADD_TYPE(&PyFileIO_Type);
+ ADD_TYPE(&PyFileIO_Type);
/* BytesIO */
PyBytesIO_Type.tp_base = &PyBufferedIOBase_Type;
- ADD_TYPE(&PyBytesIO_Type);
+ ADD_TYPE(&PyBytesIO_Type);
if (PyType_Ready(&_PyBytesIOBuffer_Type) < 0)
goto fail;
/* StringIO */
PyStringIO_Type.tp_base = &PyTextIOBase_Type;
- ADD_TYPE(&PyStringIO_Type);
+ ADD_TYPE(&PyStringIO_Type);
#ifdef MS_WINDOWS
/* WindowsConsoleIO */
PyWindowsConsoleIO_Type.tp_base = &PyRawIOBase_Type;
- ADD_TYPE(&PyWindowsConsoleIO_Type);
+ ADD_TYPE(&PyWindowsConsoleIO_Type);
#endif
/* BufferedReader */
PyBufferedReader_Type.tp_base = &PyBufferedIOBase_Type;
- ADD_TYPE(&PyBufferedReader_Type);
+ ADD_TYPE(&PyBufferedReader_Type);
/* BufferedWriter */
PyBufferedWriter_Type.tp_base = &PyBufferedIOBase_Type;
- ADD_TYPE(&PyBufferedWriter_Type);
+ ADD_TYPE(&PyBufferedWriter_Type);
/* BufferedRWPair */
PyBufferedRWPair_Type.tp_base = &PyBufferedIOBase_Type;
- ADD_TYPE(&PyBufferedRWPair_Type);
+ ADD_TYPE(&PyBufferedRWPair_Type);
/* BufferedRandom */
PyBufferedRandom_Type.tp_base = &PyBufferedIOBase_Type;
- ADD_TYPE(&PyBufferedRandom_Type);
+ ADD_TYPE(&PyBufferedRandom_Type);
/* TextIOWrapper */
PyTextIOWrapper_Type.tp_base = &PyTextIOBase_Type;
- ADD_TYPE(&PyTextIOWrapper_Type);
+ ADD_TYPE(&PyTextIOWrapper_Type);
/* IncrementalNewlineDecoder */
- ADD_TYPE(&PyIncrementalNewlineDecoder_Type);
+ ADD_TYPE(&PyIncrementalNewlineDecoder_Type);
/* Interned strings */
#define ADD_INTERNED(name) \
diff --git a/contrib/tools/python3/src/Modules/_io/_iomodule.h b/contrib/tools/python3/src/Modules/_io/_iomodule.h
index 4ecd36c7ed..a8f3951e57 100644
--- a/contrib/tools/python3/src/Modules/_io/_iomodule.h
+++ b/contrib/tools/python3/src/Modules/_io/_iomodule.h
@@ -2,8 +2,8 @@
* Declarations shared between the different parts of the io module
*/
-#include "exports.h"
-
+#include "exports.h"
+
/* ABCs */
extern PyTypeObject PyIOBase_Type;
extern PyTypeObject PyRawIOBase_Type;
@@ -185,4 +185,4 @@ extern PyObject *_PyIO_str_write;
extern PyObject *_PyIO_empty_str;
extern PyObject *_PyIO_empty_bytes;
-extern Py_EXPORTED_SYMBOL PyTypeObject _PyBytesIOBuffer_Type;
+extern Py_EXPORTED_SYMBOL PyTypeObject _PyBytesIOBuffer_Type;
diff --git a/contrib/tools/python3/src/Modules/_io/bufferedio.c b/contrib/tools/python3/src/Modules/_io/bufferedio.c
index b6773b631c..b0fe9e4589 100644
--- a/contrib/tools/python3/src/Modules/_io/bufferedio.c
+++ b/contrib/tools/python3/src/Modules/_io/bufferedio.c
@@ -9,8 +9,8 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_object.h"
-#include "structmember.h" // PyMemberDef
+#include "pycore_object.h"
+#include "structmember.h" // PyMemberDef
#include "_iomodule.h"
/*[clinic input]
@@ -290,11 +290,11 @@ _enter_buffered_busy(buffered *self)
}
Py_END_ALLOW_THREADS
if (relax_locking && st != PY_LOCK_ACQUIRED) {
- PyObject *ascii = PyObject_ASCII((PyObject*)self);
- _Py_FatalErrorFormat(__func__,
- "could not acquire lock for %s at interpreter "
+ PyObject *ascii = PyObject_ASCII((PyObject*)self);
+ _Py_FatalErrorFormat(__func__,
+ "could not acquire lock for %s at interpreter "
"shutdown, possibly due to daemon threads",
- ascii ? PyUnicode_AsUTF8(ascii) : "<ascii(self) failed>");
+ ascii ? PyUnicode_AsUTF8(ascii) : "<ascii(self) failed>");
}
return 1;
}
@@ -341,10 +341,10 @@ _enter_buffered_busy(buffered *self)
: buffered_closed(self)))
#define CHECK_CLOSED(self, error_msg) \
- if (IS_CLOSED(self) & (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \
+ if (IS_CLOSED(self) & (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \
PyErr_SetString(PyExc_ValueError, error_msg); \
return NULL; \
- } \
+ } \
#define VALID_READ_BUFFER(self) \
(self->readable && self->read_end != -1)
@@ -400,7 +400,7 @@ buffered_dealloc(buffered *self)
}
static PyObject *
-buffered_sizeof(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_sizeof(buffered *self, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t res;
@@ -435,8 +435,8 @@ buffered_dealloc_warn(buffered *self, PyObject *source)
{
if (self->ok && self->raw) {
PyObject *r;
- r = _PyObject_CallMethodIdOneArg(self->raw, &PyId__dealloc_warn,
- source);
+ r = _PyObject_CallMethodIdOneArg(self->raw, &PyId__dealloc_warn,
+ source);
if (r)
Py_DECREF(r);
else
@@ -457,7 +457,7 @@ static PyObject *
buffered_simple_flush(buffered *self, PyObject *args)
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_flush);
+ return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_flush);
}
static int
@@ -509,7 +509,7 @@ buffered_close(buffered *self, PyObject *args)
}
/* flush() will most probably re-take the lock, so drop it first */
LEAVE_BUFFERED(self)
- res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
+ res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
if (!ENTER_BUFFERED(self))
return NULL;
if (res == NULL)
@@ -517,7 +517,7 @@ buffered_close(buffered *self, PyObject *args)
else
Py_DECREF(res);
- res = PyObject_CallMethodNoArgs(self->raw, _PyIO_str_close);
+ res = PyObject_CallMethodNoArgs(self->raw, _PyIO_str_close);
if (self->buffer) {
PyMem_Free(self->buffer);
@@ -529,9 +529,9 @@ buffered_close(buffered *self, PyObject *args)
Py_CLEAR(res);
}
- self->read_end = 0;
- self->pos = 0;
-
+ self->read_end = 0;
+ self->pos = 0;
+
end:
LEAVE_BUFFERED(self)
return res;
@@ -540,11 +540,11 @@ end:
/* detach */
static PyObject *
-buffered_detach(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_detach(buffered *self, PyObject *Py_UNUSED(ignored))
{
PyObject *raw, *res;
CHECK_INITIALIZED(self)
- res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
+ res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
if (res == NULL)
return NULL;
Py_DECREF(res);
@@ -558,24 +558,24 @@ buffered_detach(buffered *self, PyObject *Py_UNUSED(ignored))
/* Inquiries */
static PyObject *
-buffered_seekable(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_seekable(buffered *self, PyObject *Py_UNUSED(ignored))
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_seekable);
+ return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_seekable);
}
static PyObject *
-buffered_readable(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_readable(buffered *self, PyObject *Py_UNUSED(ignored))
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_readable);
+ return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_readable);
}
static PyObject *
-buffered_writable(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_writable(buffered *self, PyObject *Py_UNUSED(ignored))
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_writable);
+ return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_writable);
}
static PyObject *
@@ -595,17 +595,17 @@ buffered_mode_get(buffered *self, void *context)
/* Lower-level APIs */
static PyObject *
-buffered_fileno(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_fileno(buffered *self, PyObject *Py_UNUSED(ignored))
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_fileno);
+ return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_fileno);
}
static PyObject *
-buffered_isatty(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_isatty(buffered *self, PyObject *Py_UNUSED(ignored))
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_isatty);
+ return PyObject_CallMethodNoArgs(self->raw, _PyIO_str_isatty);
}
/* Forward decls */
@@ -669,7 +669,7 @@ _buffered_raw_tell(buffered *self)
{
Py_off_t n;
PyObject *res;
- res = PyObject_CallMethodNoArgs(self->raw, _PyIO_str_tell);
+ res = PyObject_CallMethodNoArgs(self->raw, _PyIO_str_tell);
if (res == NULL)
return -1;
n = PyNumber_AsOff_t(res, PyExc_ValueError);
@@ -964,7 +964,7 @@ _buffered_readinto_generic(buffered *self, Py_buffer *buffer, char readinto1)
PyObject *res = NULL;
CHECK_INITIALIZED(self)
- CHECK_CLOSED(self, "readinto of closed file")
+ CHECK_CLOSED(self, "readinto of closed file")
n = Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t);
if (n > 0) {
@@ -1193,7 +1193,7 @@ _io__Buffered_readline_impl(buffered *self, Py_ssize_t size)
static PyObject *
-buffered_tell(buffered *self, PyObject *Py_UNUSED(ignored))
+buffered_tell(buffered *self, PyObject *Py_UNUSED(ignored))
{
Py_off_t pos;
@@ -1314,20 +1314,20 @@ _io__Buffered_truncate_impl(buffered *self, PyObject *pos)
PyObject *res = NULL;
CHECK_INITIALIZED(self)
- CHECK_CLOSED(self, "truncate of closed file")
- if (!self->writable) {
- return bufferediobase_unsupported("truncate");
- }
+ CHECK_CLOSED(self, "truncate of closed file")
+ if (!self->writable) {
+ return bufferediobase_unsupported("truncate");
+ }
if (!ENTER_BUFFERED(self))
return NULL;
- res = buffered_flush_and_rewind_unlocked(self);
- if (res == NULL) {
- goto end;
+ res = buffered_flush_and_rewind_unlocked(self);
+ if (res == NULL) {
+ goto end;
}
- Py_CLEAR(res);
-
- res = PyObject_CallMethodOneArg(self->raw, _PyIO_str_truncate, pos);
+ Py_CLEAR(res);
+
+ res = PyObject_CallMethodOneArg(self->raw, _PyIO_str_truncate, pos);
if (res == NULL)
goto end;
/* Reset cached position */
@@ -1354,8 +1354,8 @@ buffered_iternext(buffered *self)
line = _buffered_readline(self, -1);
}
else {
- line = PyObject_CallMethodNoArgs((PyObject *)self,
- _PyIO_str_readline);
+ line = PyObject_CallMethodNoArgs((PyObject *)self,
+ _PyIO_str_readline);
if (line && !PyBytes_Check(line)) {
PyErr_Format(PyExc_OSError,
"readline() should have returned a bytes object, "
@@ -1382,13 +1382,13 @@ buffered_repr(buffered *self)
{
PyObject *nameobj, *res;
- if (_PyObject_LookupAttrId((PyObject *) self, &PyId_name, &nameobj) < 0) {
- if (!PyErr_ExceptionMatches(PyExc_ValueError)) {
- return NULL;
- }
- /* Ignore ValueError raised if the underlying stream was detached */
- PyErr_Clear();
- }
+ if (_PyObject_LookupAttrId((PyObject *) self, &PyId_name, &nameobj) < 0) {
+ if (!PyErr_ExceptionMatches(PyExc_ValueError)) {
+ return NULL;
+ }
+ /* Ignore ValueError raised if the underlying stream was detached */
+ PyErr_Clear();
+ }
if (nameobj == NULL) {
res = PyUnicode_FromFormat("<%s>", Py_TYPE(self)->tp_name);
}
@@ -1448,8 +1448,8 @@ _io_BufferedReader___init___impl(buffered *self, PyObject *raw,
return -1;
_bufferedreader_reset_buf(self);
- self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedReader_Type) &&
- Py_IS_TYPE(raw, &PyFileIO_Type));
+ self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedReader_Type) &&
+ Py_IS_TYPE(raw, &PyFileIO_Type));
self->ok = 1;
return 0;
@@ -1473,7 +1473,7 @@ _bufferedreader_raw_read(buffered *self, char *start, Py_ssize_t len)
raised (see issue #10956).
*/
do {
- res = PyObject_CallMethodOneArg(self->raw, _PyIO_str_readinto, memobj);
+ res = PyObject_CallMethodOneArg(self->raw, _PyIO_str_readinto, memobj);
} while (res == NULL && _PyIO_trap_eintr());
Py_DECREF(memobj);
if (res == NULL)
@@ -1572,7 +1572,7 @@ _bufferedreader_read_all(buffered *self)
}
/* Read until EOF or until read() would block. */
- data = PyObject_CallMethodNoArgs(self->raw, _PyIO_str_read);
+ data = PyObject_CallMethodNoArgs(self->raw, _PyIO_str_read);
if (data == NULL)
goto cleanup;
if (data != Py_None && !PyBytes_Check(data)) {
@@ -1794,8 +1794,8 @@ _io_BufferedWriter___init___impl(buffered *self, PyObject *raw,
_bufferedwriter_reset_buf(self);
self->pos = 0;
- self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedWriter_Type) &&
- Py_IS_TYPE(raw, &PyFileIO_Type));
+ self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedWriter_Type) &&
+ Py_IS_TYPE(raw, &PyFileIO_Type));
self->ok = 1;
return 0;
@@ -1821,7 +1821,7 @@ _bufferedwriter_raw_write(buffered *self, char *start, Py_ssize_t len)
*/
do {
errno = 0;
- res = PyObject_CallMethodOneArg(self->raw, _PyIO_str_write, memobj);
+ res = PyObject_CallMethodOneArg(self->raw, _PyIO_str_write, memobj);
errnum = errno;
} while (res == NULL && _PyIO_trap_eintr());
Py_DECREF(memobj);
@@ -2204,33 +2204,33 @@ bufferedrwpair_write(rwpair *self, PyObject *args)
}
static PyObject *
-bufferedrwpair_flush(rwpair *self, PyObject *Py_UNUSED(ignored))
+bufferedrwpair_flush(rwpair *self, PyObject *Py_UNUSED(ignored))
{
- return _forward_call(self->writer, &PyId_flush, NULL);
+ return _forward_call(self->writer, &PyId_flush, NULL);
}
static PyObject *
-bufferedrwpair_readable(rwpair *self, PyObject *Py_UNUSED(ignored))
+bufferedrwpair_readable(rwpair *self, PyObject *Py_UNUSED(ignored))
{
- return _forward_call(self->reader, &PyId_readable, NULL);
+ return _forward_call(self->reader, &PyId_readable, NULL);
}
static PyObject *
-bufferedrwpair_writable(rwpair *self, PyObject *Py_UNUSED(ignored))
+bufferedrwpair_writable(rwpair *self, PyObject *Py_UNUSED(ignored))
{
- return _forward_call(self->writer, &PyId_writable, NULL);
+ return _forward_call(self->writer, &PyId_writable, NULL);
}
static PyObject *
-bufferedrwpair_close(rwpair *self, PyObject *Py_UNUSED(ignored))
+bufferedrwpair_close(rwpair *self, PyObject *Py_UNUSED(ignored))
{
PyObject *exc = NULL, *val, *tb;
- PyObject *ret = _forward_call(self->writer, &PyId_close, NULL);
+ PyObject *ret = _forward_call(self->writer, &PyId_close, NULL);
if (ret == NULL)
PyErr_Fetch(&exc, &val, &tb);
else
Py_DECREF(ret);
- ret = _forward_call(self->reader, &PyId_close, NULL);
+ ret = _forward_call(self->reader, &PyId_close, NULL);
if (exc != NULL) {
_PyErr_ChainExceptions(exc, val, tb);
Py_CLEAR(ret);
@@ -2239,9 +2239,9 @@ bufferedrwpair_close(rwpair *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-bufferedrwpair_isatty(rwpair *self, PyObject *Py_UNUSED(ignored))
+bufferedrwpair_isatty(rwpair *self, PyObject *Py_UNUSED(ignored))
{
- PyObject *ret = _forward_call(self->writer, &PyId_isatty, NULL);
+ PyObject *ret = _forward_call(self->writer, &PyId_isatty, NULL);
if (ret != Py_False) {
/* either True or exception */
@@ -2249,7 +2249,7 @@ bufferedrwpair_isatty(rwpair *self, PyObject *Py_UNUSED(ignored))
}
Py_DECREF(ret);
- return _forward_call(self->reader, &PyId_isatty, NULL);
+ return _forward_call(self->reader, &PyId_isatty, NULL);
}
static PyObject *
@@ -2308,8 +2308,8 @@ _io_BufferedRandom___init___impl(buffered *self, PyObject *raw,
_bufferedwriter_reset_buf(self);
self->pos = 0;
- self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedRandom_Type) &&
- Py_IS_TYPE(raw, &PyFileIO_Type));
+ self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedRandom_Type) &&
+ Py_IS_TYPE(raw, &PyFileIO_Type));
self->ok = 1;
return 0;
@@ -2334,10 +2334,10 @@ PyTypeObject PyBufferedIOBase_Type = {
0, /*tp_basicsize*/
0, /*tp_itemsize*/
0, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -2348,7 +2348,7 @@ PyTypeObject PyBufferedIOBase_Type = {
0, /*tp_getattro*/
0, /*tp_setattro*/
0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
bufferediobase_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
@@ -2424,10 +2424,10 @@ PyTypeObject PyBufferedReader_Type = {
sizeof(buffered), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)buffered_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)buffered_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -2439,7 +2439,7 @@ PyTypeObject PyBufferedReader_Type = {
0, /*tp_setattro*/
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
_io_BufferedReader___init____doc__, /* tp_doc */
(traverseproc)buffered_traverse, /* tp_traverse */
(inquiry)buffered_clear, /* tp_clear */
@@ -2510,10 +2510,10 @@ PyTypeObject PyBufferedWriter_Type = {
sizeof(buffered), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)buffered_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)buffered_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -2525,7 +2525,7 @@ PyTypeObject PyBufferedWriter_Type = {
0, /*tp_setattro*/
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
_io_BufferedWriter___init____doc__, /* tp_doc */
(traverseproc)buffered_traverse, /* tp_traverse */
(inquiry)buffered_clear, /* tp_clear */
@@ -2587,10 +2587,10 @@ PyTypeObject PyBufferedRWPair_Type = {
sizeof(rwpair), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)bufferedrwpair_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -2602,7 +2602,7 @@ PyTypeObject PyBufferedRWPair_Type = {
0, /*tp_setattro*/
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ | Py_TPFLAGS_HAVE_GC, /* tp_flags */
_io_BufferedRWPair___init____doc__, /* tp_doc */
(traverseproc)bufferedrwpair_traverse, /* tp_traverse */
(inquiry)bufferedrwpair_clear, /* tp_clear */
@@ -2681,10 +2681,10 @@ PyTypeObject PyBufferedRandom_Type = {
sizeof(buffered), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)buffered_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)buffered_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -2696,7 +2696,7 @@ PyTypeObject PyBufferedRandom_Type = {
0, /*tp_setattro*/
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
_io_BufferedRandom___init____doc__, /* tp_doc */
(traverseproc)buffered_traverse, /* tp_traverse */
(inquiry)buffered_clear, /* tp_clear */
diff --git a/contrib/tools/python3/src/Modules/_io/bytesio.c b/contrib/tools/python3/src/Modules/_io/bytesio.c
index d17e18030d..2468f45f94 100644
--- a/contrib/tools/python3/src/Modules/_io/bytesio.c
+++ b/contrib/tools/python3/src/Modules/_io/bytesio.c
@@ -1,6 +1,6 @@
#include "Python.h"
-#include "pycore_object.h"
-#include <stddef.h> // offsetof()
+#include "pycore_object.h"
+#include <stddef.h> // offsetof()
#include "_iomodule.h"
/*[clinic input]
@@ -31,34 +31,34 @@ typedef struct {
* exports > 0. Py_REFCNT(buf) == 1, any modifications are forbidden.
*/
-static int
-check_closed(bytesio *self)
-{
- if (self->buf == NULL) {
- PyErr_SetString(PyExc_ValueError, "I/O operation on closed file.");
- return 1;
- }
- return 0;
-}
-
-static int
-check_exports(bytesio *self)
-{
- if (self->exports > 0) {
- PyErr_SetString(PyExc_BufferError,
- "Existing exports of data: object cannot be re-sized");
- return 1;
- }
- return 0;
-}
-
+static int
+check_closed(bytesio *self)
+{
+ if (self->buf == NULL) {
+ PyErr_SetString(PyExc_ValueError, "I/O operation on closed file.");
+ return 1;
+ }
+ return 0;
+}
+
+static int
+check_exports(bytesio *self)
+{
+ if (self->exports > 0) {
+ PyErr_SetString(PyExc_BufferError,
+ "Existing exports of data: object cannot be re-sized");
+ return 1;
+ }
+ return 0;
+}
+
#define CHECK_CLOSED(self) \
- if (check_closed(self)) { \
+ if (check_closed(self)) { \
return NULL; \
}
#define CHECK_EXPORTS(self) \
- if (check_exports(self)) { \
+ if (check_exports(self)) { \
return NULL; \
}
@@ -173,41 +173,41 @@ resize_buffer(bytesio *self, size_t size)
}
/* Internal routine for writing a string of bytes to the buffer of a BytesIO
- object. Returns the number of bytes written, or -1 on error.
- Inlining is disabled because it's significantly decreases performance
- of writelines() in PGO build. */
-_Py_NO_INLINE static Py_ssize_t
-write_bytes(bytesio *self, PyObject *b)
+ object. Returns the number of bytes written, or -1 on error.
+ Inlining is disabled because it's significantly decreases performance
+ of writelines() in PGO build. */
+_Py_NO_INLINE static Py_ssize_t
+write_bytes(bytesio *self, PyObject *b)
{
- if (check_closed(self)) {
- return -1;
- }
- if (check_exports(self)) {
- return -1;
- }
-
- Py_buffer buf;
- if (PyObject_GetBuffer(b, &buf, PyBUF_CONTIG_RO) < 0) {
- return -1;
- }
- Py_ssize_t len = buf.len;
- if (len == 0) {
- goto done;
- }
-
+ if (check_closed(self)) {
+ return -1;
+ }
+ if (check_exports(self)) {
+ return -1;
+ }
+
+ Py_buffer buf;
+ if (PyObject_GetBuffer(b, &buf, PyBUF_CONTIG_RO) < 0) {
+ return -1;
+ }
+ Py_ssize_t len = buf.len;
+ if (len == 0) {
+ goto done;
+ }
+
assert(self->pos >= 0);
- size_t endpos = (size_t)self->pos + len;
+ size_t endpos = (size_t)self->pos + len;
if (endpos > (size_t)PyBytes_GET_SIZE(self->buf)) {
- if (resize_buffer(self, endpos) < 0) {
- len = -1;
- goto done;
- }
+ if (resize_buffer(self, endpos) < 0) {
+ len = -1;
+ goto done;
+ }
}
else if (SHARED_BUF(self)) {
- if (unshare_buffer(self, Py_MAX(endpos, (size_t)self->string_size)) < 0) {
- len = -1;
- goto done;
- }
+ if (unshare_buffer(self, Py_MAX(endpos, (size_t)self->string_size)) < 0) {
+ len = -1;
+ goto done;
+ }
}
if (self->pos > self->string_size) {
@@ -225,7 +225,7 @@ write_bytes(bytesio *self, PyObject *b)
/* Copy the data to the internal buffer, overwriting some of the existing
data if self->pos < self->string_size. */
- memcpy(PyBytes_AS_STRING(self->buf) + self->pos, buf.buf, len);
+ memcpy(PyBytes_AS_STRING(self->buf) + self->pos, buf.buf, len);
self->pos = endpos;
/* Set the new length of the internal string if it has changed. */
@@ -233,8 +233,8 @@ write_bytes(bytesio *self, PyObject *b)
self->string_size = endpos;
}
- done:
- PyBuffer_Release(&buf);
+ done:
+ PyBuffer_Release(&buf);
return len;
}
@@ -393,7 +393,7 @@ _io_BytesIO_tell_impl(bytesio *self)
static PyObject *
read_bytes(bytesio *self, Py_ssize_t size)
{
- const char *output;
+ const char *output;
assert(self->buf != NULL);
assert(size <= self->string_size);
@@ -502,7 +502,7 @@ _io_BytesIO_readlines_impl(bytesio *self, PyObject *arg)
{
Py_ssize_t maxsize, size, n;
PyObject *result, *line;
- const char *output;
+ const char *output;
CHECK_CLOSED(self);
@@ -706,7 +706,7 @@ static PyObject *
_io_BytesIO_write(bytesio *self, PyObject *b)
/*[clinic end generated code: output=53316d99800a0b95 input=f5ec7c8c64ed720a]*/
{
- Py_ssize_t n = write_bytes(self, b);
+ Py_ssize_t n = write_bytes(self, b);
return n >= 0 ? PyLong_FromSsize_t(n) : NULL;
}
@@ -735,9 +735,9 @@ _io_BytesIO_writelines(bytesio *self, PyObject *lines)
return NULL;
while ((item = PyIter_Next(it)) != NULL) {
- Py_ssize_t ret = write_bytes(self, item);
+ Py_ssize_t ret = write_bytes(self, item);
Py_DECREF(item);
- if (ret < 0) {
+ if (ret < 0) {
Py_DECREF(it);
return NULL;
}
@@ -782,7 +782,7 @@ _io_BytesIO_close_impl(bytesio *self)
*/
static PyObject *
-bytesio_getstate(bytesio *self, PyObject *Py_UNUSED(ignored))
+bytesio_getstate(bytesio *self, PyObject *Py_UNUSED(ignored))
{
PyObject *initvalue = _io_BytesIO_getvalue_impl(self);
PyObject *dict;
@@ -841,7 +841,7 @@ bytesio_setstate(bytesio *self, PyObject *state)
/* Set carefully the position value. Alternatively, we could use the seek
method instead of modifying self->pos directly to better protect the
- object internal state against erroneous (or malicious) inputs. */
+ object internal state against erroneous (or malicious) inputs. */
position_obj = PyTuple_GET_ITEM(state, 1);
if (!PyLong_Check(position_obj)) {
PyErr_Format(PyExc_TypeError,
@@ -966,13 +966,13 @@ bytesio_sizeof(bytesio *self, void *unused)
Py_ssize_t res;
res = _PyObject_SIZE(Py_TYPE(self));
- if (self->buf && !SHARED_BUF(self)) {
- Py_ssize_t s = _PySys_GetSizeOf(self->buf);
- if (s == -1) {
- return NULL;
- }
- res += s;
- }
+ if (self->buf && !SHARED_BUF(self)) {
+ Py_ssize_t s = _PySys_GetSizeOf(self->buf);
+ if (s == -1) {
+ return NULL;
+ }
+ res += s;
+ }
return PyLong_FromSsize_t(res);
}
@@ -1030,10 +1030,10 @@ PyTypeObject PyBytesIO_Type = {
sizeof(bytesio), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)bytesio_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -1124,16 +1124,16 @@ static PyBufferProcs bytesiobuf_as_buffer = {
(releasebufferproc) bytesiobuf_releasebuffer,
};
-Py_EXPORTED_SYMBOL PyTypeObject _PyBytesIOBuffer_Type = {
+Py_EXPORTED_SYMBOL PyTypeObject _PyBytesIOBuffer_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"_io._BytesIOBuffer", /*tp_name*/
sizeof(bytesiobuf), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)bytesiobuf_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/_iomodule.c.h b/contrib/tools/python3/src/Modules/_io/clinic/_iomodule.c.h
index bd460e81a1..1a9651d340 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/_iomodule.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/_iomodule.c.h
@@ -127,7 +127,7 @@ PyDoc_STRVAR(_io_open__doc__,
"opened in a binary mode.");
#define _IO_OPEN_METHODDEF \
- {"open", (PyCFunction)(void(*)(void))_io_open, METH_FASTCALL|METH_KEYWORDS, _io_open__doc__},
+ {"open", (PyCFunction)(void(*)(void))_io_open, METH_FASTCALL|METH_KEYWORDS, _io_open__doc__},
static PyObject *
_io_open_impl(PyObject *module, PyObject *file, const char *mode,
@@ -139,9 +139,9 @@ _io_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"file", "mode", "buffering", "encoding", "errors", "newline", "closefd", "opener", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "open", 0};
- PyObject *argsbuf[8];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "open", 0};
+ PyObject *argsbuf[8];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *file;
const char *mode = "r";
int buffering = -1;
@@ -151,176 +151,176 @@ _io_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
int closefd = 1;
PyObject *opener = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 8, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 8, 0, argsbuf);
+ if (!args) {
goto exit;
}
- file = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("open", "argument 'mode'", "str", args[1]);
- goto exit;
- }
- Py_ssize_t mode_length;
- mode = PyUnicode_AsUTF8AndSize(args[1], &mode_length);
- if (mode == NULL) {
- goto exit;
- }
- if (strlen(mode) != (size_t)mode_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- buffering = _PyLong_AsInt(args[2]);
- if (buffering == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[3]) {
- if (args[3] == Py_None) {
- encoding = NULL;
- }
- else if (PyUnicode_Check(args[3])) {
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[3], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("open", "argument 'encoding'", "str or None", args[3]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[4]) {
- if (args[4] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[4])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[4], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("open", "argument 'errors'", "str or None", args[4]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[5]) {
- if (args[5] == Py_None) {
- newline = NULL;
- }
- else if (PyUnicode_Check(args[5])) {
- Py_ssize_t newline_length;
- newline = PyUnicode_AsUTF8AndSize(args[5], &newline_length);
- if (newline == NULL) {
- goto exit;
- }
- if (strlen(newline) != (size_t)newline_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("open", "argument 'newline'", "str or None", args[5]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[6]) {
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- closefd = _PyLong_AsInt(args[6]);
- if (closefd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- opener = args[7];
-skip_optional_pos:
+ file = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("open", "argument 'mode'", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t mode_length;
+ mode = PyUnicode_AsUTF8AndSize(args[1], &mode_length);
+ if (mode == NULL) {
+ goto exit;
+ }
+ if (strlen(mode) != (size_t)mode_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ buffering = _PyLong_AsInt(args[2]);
+ if (buffering == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[3]) {
+ if (args[3] == Py_None) {
+ encoding = NULL;
+ }
+ else if (PyUnicode_Check(args[3])) {
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[3], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("open", "argument 'encoding'", "str or None", args[3]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[4]) {
+ if (args[4] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[4])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[4], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("open", "argument 'errors'", "str or None", args[4]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[5]) {
+ if (args[5] == Py_None) {
+ newline = NULL;
+ }
+ else if (PyUnicode_Check(args[5])) {
+ Py_ssize_t newline_length;
+ newline = PyUnicode_AsUTF8AndSize(args[5], &newline_length);
+ if (newline == NULL) {
+ goto exit;
+ }
+ if (strlen(newline) != (size_t)newline_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("open", "argument 'newline'", "str or None", args[5]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[6]) {
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ closefd = _PyLong_AsInt(args[6]);
+ if (closefd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ opener = args[7];
+skip_optional_pos:
return_value = _io_open_impl(module, file, mode, buffering, encoding, errors, newline, closefd, opener);
exit:
return return_value;
}
-
-PyDoc_STRVAR(_io_open_code__doc__,
-"open_code($module, /, path)\n"
-"--\n"
-"\n"
-"Opens the provided file with the intent to import the contents.\n"
-"\n"
-"This may perform extra validation beyond open(), but is otherwise interchangeable\n"
-"with calling open(path, \'rb\').");
-
-#define _IO_OPEN_CODE_METHODDEF \
- {"open_code", (PyCFunction)(void(*)(void))_io_open_code, METH_FASTCALL|METH_KEYWORDS, _io_open_code__doc__},
-
-static PyObject *
-_io_open_code_impl(PyObject *module, PyObject *path);
-
-static PyObject *
-_io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "open_code", 0};
- PyObject *argsbuf[1];
- PyObject *path;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("open_code", "argument 'path'", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- path = args[0];
- return_value = _io_open_code_impl(module, path);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=3df6bc6d91697545 input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(_io_open_code__doc__,
+"open_code($module, /, path)\n"
+"--\n"
+"\n"
+"Opens the provided file with the intent to import the contents.\n"
+"\n"
+"This may perform extra validation beyond open(), but is otherwise interchangeable\n"
+"with calling open(path, \'rb\').");
+
+#define _IO_OPEN_CODE_METHODDEF \
+ {"open_code", (PyCFunction)(void(*)(void))_io_open_code, METH_FASTCALL|METH_KEYWORDS, _io_open_code__doc__},
+
+static PyObject *
+_io_open_code_impl(PyObject *module, PyObject *path);
+
+static PyObject *
+_io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"path", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "open_code", 0};
+ PyObject *argsbuf[1];
+ PyObject *path;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("open_code", "argument 'path'", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ path = args[0];
+ return_value = _io_open_code_impl(module, path);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=3df6bc6d91697545 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/bufferedio.c.h b/contrib/tools/python3/src/Modules/_io/clinic/bufferedio.c.h
index 4e3b6ab3d7..56d6332a25 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/bufferedio.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/bufferedio.c.h
@@ -19,15 +19,15 @@ _io__BufferedIOBase_readinto(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
- PyErr_Clear();
- _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
+ PyErr_Clear();
+ _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io__BufferedIOBase_readinto_impl(self, &buffer);
exit:
@@ -56,15 +56,15 @@ _io__BufferedIOBase_readinto1(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
- PyErr_Clear();
- _PyArg_BadArgument("readinto1", "argument", "read-write bytes-like object", arg);
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
+ PyErr_Clear();
+ _PyArg_BadArgument("readinto1", "argument", "read-write bytes-like object", arg);
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("readinto1", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("readinto1", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io__BufferedIOBase_readinto1_impl(self, &buffer);
exit:
@@ -103,7 +103,7 @@ PyDoc_STRVAR(_io__Buffered_peek__doc__,
"\n");
#define _IO__BUFFERED_PEEK_METHODDEF \
- {"peek", (PyCFunction)(void(*)(void))_io__Buffered_peek, METH_FASTCALL, _io__Buffered_peek__doc__},
+ {"peek", (PyCFunction)(void(*)(void))_io__Buffered_peek, METH_FASTCALL, _io__Buffered_peek__doc__},
static PyObject *
_io__Buffered_peek_impl(buffered *self, Py_ssize_t size);
@@ -114,30 +114,30 @@ _io__Buffered_peek(buffered *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = 0;
- if (!_PyArg_CheckPositional("peek", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("peek", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- size = ival;
- }
-skip_optional:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ size = ival;
+ }
+skip_optional:
return_value = _io__Buffered_peek_impl(self, size);
exit:
@@ -150,7 +150,7 @@ PyDoc_STRVAR(_io__Buffered_read__doc__,
"\n");
#define _IO__BUFFERED_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_io__Buffered_read, METH_FASTCALL, _io__Buffered_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_io__Buffered_read, METH_FASTCALL, _io__Buffered_read__doc__},
static PyObject *
_io__Buffered_read_impl(buffered *self, Py_ssize_t n);
@@ -161,16 +161,16 @@ _io__Buffered_read(buffered *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t n = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &n)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &n)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _io__Buffered_read_impl(self, n);
exit:
@@ -183,7 +183,7 @@ PyDoc_STRVAR(_io__Buffered_read1__doc__,
"\n");
#define _IO__BUFFERED_READ1_METHODDEF \
- {"read1", (PyCFunction)(void(*)(void))_io__Buffered_read1, METH_FASTCALL, _io__Buffered_read1__doc__},
+ {"read1", (PyCFunction)(void(*)(void))_io__Buffered_read1, METH_FASTCALL, _io__Buffered_read1__doc__},
static PyObject *
_io__Buffered_read1_impl(buffered *self, Py_ssize_t n);
@@ -194,30 +194,30 @@ _io__Buffered_read1(buffered *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t n = -1;
- if (!_PyArg_CheckPositional("read1", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read1", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- n = ival;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ n = ival;
+ }
+skip_optional:
return_value = _io__Buffered_read1_impl(self, n);
exit:
@@ -241,15 +241,15 @@ _io__Buffered_readinto(buffered *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
- PyErr_Clear();
- _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
+ PyErr_Clear();
+ _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io__Buffered_readinto_impl(self, &buffer);
exit:
@@ -278,15 +278,15 @@ _io__Buffered_readinto1(buffered *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
- PyErr_Clear();
- _PyArg_BadArgument("readinto1", "argument", "read-write bytes-like object", arg);
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
+ PyErr_Clear();
+ _PyArg_BadArgument("readinto1", "argument", "read-write bytes-like object", arg);
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("readinto1", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("readinto1", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io__Buffered_readinto1_impl(self, &buffer);
exit:
@@ -304,7 +304,7 @@ PyDoc_STRVAR(_io__Buffered_readline__doc__,
"\n");
#define _IO__BUFFERED_READLINE_METHODDEF \
- {"readline", (PyCFunction)(void(*)(void))_io__Buffered_readline, METH_FASTCALL, _io__Buffered_readline__doc__},
+ {"readline", (PyCFunction)(void(*)(void))_io__Buffered_readline, METH_FASTCALL, _io__Buffered_readline__doc__},
static PyObject *
_io__Buffered_readline_impl(buffered *self, Py_ssize_t size);
@@ -315,16 +315,16 @@ _io__Buffered_readline(buffered *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io__Buffered_readline_impl(self, size);
exit:
@@ -337,7 +337,7 @@ PyDoc_STRVAR(_io__Buffered_seek__doc__,
"\n");
#define _IO__BUFFERED_SEEK_METHODDEF \
- {"seek", (PyCFunction)(void(*)(void))_io__Buffered_seek, METH_FASTCALL, _io__Buffered_seek__doc__},
+ {"seek", (PyCFunction)(void(*)(void))_io__Buffered_seek, METH_FASTCALL, _io__Buffered_seek__doc__},
static PyObject *
_io__Buffered_seek_impl(buffered *self, PyObject *targetobj, int whence);
@@ -349,23 +349,23 @@ _io__Buffered_seek(buffered *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *targetobj;
int whence = 0;
- if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ goto exit;
+ }
+ targetobj = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ whence = _PyLong_AsInt(args[1]);
+ if (whence == -1 && PyErr_Occurred()) {
goto exit;
}
- targetobj = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- whence = _PyLong_AsInt(args[1]);
- if (whence == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _io__Buffered_seek_impl(self, targetobj, whence);
exit:
@@ -378,7 +378,7 @@ PyDoc_STRVAR(_io__Buffered_truncate__doc__,
"\n");
#define _IO__BUFFERED_TRUNCATE_METHODDEF \
- {"truncate", (PyCFunction)(void(*)(void))_io__Buffered_truncate, METH_FASTCALL, _io__Buffered_truncate__doc__},
+ {"truncate", (PyCFunction)(void(*)(void))_io__Buffered_truncate, METH_FASTCALL, _io__Buffered_truncate__doc__},
static PyObject *
_io__Buffered_truncate_impl(buffered *self, PyObject *pos);
@@ -389,14 +389,14 @@ _io__Buffered_truncate(buffered *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *pos = Py_None;
- if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- pos = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ pos = args[0];
+skip_optional:
return_value = _io__Buffered_truncate_impl(self, pos);
exit:
@@ -418,40 +418,40 @@ _io_BufferedReader___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"raw", "buffer_size", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "BufferedReader", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "BufferedReader", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *raw;
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ raw = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- raw = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(fastargs[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffer_size = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(fastargs[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffer_size = ival;
+ }
+skip_optional_pos:
return_value = _io_BufferedReader___init___impl((buffered *)self, raw, buffer_size);
exit:
@@ -477,40 +477,40 @@ _io_BufferedWriter___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"raw", "buffer_size", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "BufferedWriter", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "BufferedWriter", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *raw;
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ raw = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- raw = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(fastargs[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffer_size = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(fastargs[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffer_size = ival;
+ }
+skip_optional_pos:
return_value = _io_BufferedWriter___init___impl((buffered *)self, raw, buffer_size);
exit:
@@ -534,13 +534,13 @@ _io_BufferedWriter_write(buffered *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io_BufferedWriter_write_impl(self, &buffer);
exit:
@@ -578,36 +578,36 @@ _io_BufferedRWPair___init__(PyObject *self, PyObject *args, PyObject *kwargs)
PyObject *writer;
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
- if (Py_IS_TYPE(self, &PyBufferedRWPair_Type) &&
+ if (Py_IS_TYPE(self, &PyBufferedRWPair_Type) &&
!_PyArg_NoKeywords("BufferedRWPair", kwargs)) {
goto exit;
}
- if (!_PyArg_CheckPositional("BufferedRWPair", PyTuple_GET_SIZE(args), 2, 3)) {
+ if (!_PyArg_CheckPositional("BufferedRWPair", PyTuple_GET_SIZE(args), 2, 3)) {
+ goto exit;
+ }
+ reader = PyTuple_GET_ITEM(args, 0);
+ writer = PyTuple_GET_ITEM(args, 1);
+ if (PyTuple_GET_SIZE(args) < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(PyTuple_GET_ITEM(args, 2))) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- reader = PyTuple_GET_ITEM(args, 0);
- writer = PyTuple_GET_ITEM(args, 1);
- if (PyTuple_GET_SIZE(args) < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(PyTuple_GET_ITEM(args, 2))) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(PyTuple_GET_ITEM(args, 2));
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffer_size = ival;
- }
-skip_optional:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(PyTuple_GET_ITEM(args, 2));
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffer_size = ival;
+ }
+skip_optional:
return_value = _io_BufferedRWPair___init___impl((rwpair *)self, reader, writer, buffer_size);
exit:
@@ -633,43 +633,43 @@ _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"raw", "buffer_size", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "BufferedRandom", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "BufferedRandom", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *raw;
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- raw = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(fastargs[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffer_size = ival;
- }
-skip_optional_pos:
+ raw = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(fastargs[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffer_size = ival;
+ }
+skip_optional_pos:
return_value = _io_BufferedRandom___init___impl((buffered *)self, raw, buffer_size);
exit:
return return_value;
}
-/*[clinic end generated code: output=7d9ad40c95bdd808 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7d9ad40c95bdd808 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/bytesio.c.h b/contrib/tools/python3/src/Modules/_io/clinic/bytesio.c.h
index a0949a6ff9..83cd490dc5 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/bytesio.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/bytesio.c.h
@@ -158,7 +158,7 @@ PyDoc_STRVAR(_io_BytesIO_read__doc__,
"Return an empty bytes object at EOF.");
#define _IO_BYTESIO_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_io_BytesIO_read, METH_FASTCALL, _io_BytesIO_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_io_BytesIO_read, METH_FASTCALL, _io_BytesIO_read__doc__},
static PyObject *
_io_BytesIO_read_impl(bytesio *self, Py_ssize_t size);
@@ -169,16 +169,16 @@ _io_BytesIO_read(bytesio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_BytesIO_read_impl(self, size);
exit:
@@ -195,7 +195,7 @@ PyDoc_STRVAR(_io_BytesIO_read1__doc__,
"Return an empty bytes object at EOF.");
#define _IO_BYTESIO_READ1_METHODDEF \
- {"read1", (PyCFunction)(void(*)(void))_io_BytesIO_read1, METH_FASTCALL, _io_BytesIO_read1__doc__},
+ {"read1", (PyCFunction)(void(*)(void))_io_BytesIO_read1, METH_FASTCALL, _io_BytesIO_read1__doc__},
static PyObject *
_io_BytesIO_read1_impl(bytesio *self, Py_ssize_t size);
@@ -206,16 +206,16 @@ _io_BytesIO_read1(bytesio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("read1", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read1", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _io_BytesIO_read1_impl(self, size);
exit:
@@ -233,7 +233,7 @@ PyDoc_STRVAR(_io_BytesIO_readline__doc__,
"Return an empty bytes object at EOF.");
#define _IO_BYTESIO_READLINE_METHODDEF \
- {"readline", (PyCFunction)(void(*)(void))_io_BytesIO_readline, METH_FASTCALL, _io_BytesIO_readline__doc__},
+ {"readline", (PyCFunction)(void(*)(void))_io_BytesIO_readline, METH_FASTCALL, _io_BytesIO_readline__doc__},
static PyObject *
_io_BytesIO_readline_impl(bytesio *self, Py_ssize_t size);
@@ -244,16 +244,16 @@ _io_BytesIO_readline(bytesio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_BytesIO_readline_impl(self, size);
exit:
@@ -271,7 +271,7 @@ PyDoc_STRVAR(_io_BytesIO_readlines__doc__,
"total number of bytes in the lines returned.");
#define _IO_BYTESIO_READLINES_METHODDEF \
- {"readlines", (PyCFunction)(void(*)(void))_io_BytesIO_readlines, METH_FASTCALL, _io_BytesIO_readlines__doc__},
+ {"readlines", (PyCFunction)(void(*)(void))_io_BytesIO_readlines, METH_FASTCALL, _io_BytesIO_readlines__doc__},
static PyObject *
_io_BytesIO_readlines_impl(bytesio *self, PyObject *arg);
@@ -282,14 +282,14 @@ _io_BytesIO_readlines(bytesio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *arg = Py_None;
- if (!_PyArg_CheckPositional("readlines", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readlines", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- arg = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ arg = args[0];
+skip_optional:
return_value = _io_BytesIO_readlines_impl(self, arg);
exit:
@@ -317,15 +317,15 @@ _io_BytesIO_readinto(bytesio *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
- PyErr_Clear();
- _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
+ PyErr_Clear();
+ _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io_BytesIO_readinto_impl(self, &buffer);
exit:
@@ -347,7 +347,7 @@ PyDoc_STRVAR(_io_BytesIO_truncate__doc__,
"The current file position is unchanged. Returns the new size.");
#define _IO_BYTESIO_TRUNCATE_METHODDEF \
- {"truncate", (PyCFunction)(void(*)(void))_io_BytesIO_truncate, METH_FASTCALL, _io_BytesIO_truncate__doc__},
+ {"truncate", (PyCFunction)(void(*)(void))_io_BytesIO_truncate, METH_FASTCALL, _io_BytesIO_truncate__doc__},
static PyObject *
_io_BytesIO_truncate_impl(bytesio *self, Py_ssize_t size);
@@ -358,16 +358,16 @@ _io_BytesIO_truncate(bytesio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = self->pos;
- if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_BytesIO_truncate_impl(self, size);
exit:
@@ -387,7 +387,7 @@ PyDoc_STRVAR(_io_BytesIO_seek__doc__,
"Returns the new absolute position.");
#define _IO_BYTESIO_SEEK_METHODDEF \
- {"seek", (PyCFunction)(void(*)(void))_io_BytesIO_seek, METH_FASTCALL, _io_BytesIO_seek__doc__},
+ {"seek", (PyCFunction)(void(*)(void))_io_BytesIO_seek, METH_FASTCALL, _io_BytesIO_seek__doc__},
static PyObject *
_io_BytesIO_seek_impl(bytesio *self, Py_ssize_t pos, int whence);
@@ -399,39 +399,39 @@ _io_BytesIO_seek(bytesio *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t pos;
int whence = 0;
- if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- whence = _PyLong_AsInt(args[1]);
- if (whence == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ whence = _PyLong_AsInt(args[1]);
+ if (whence == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_BytesIO_seek_impl(self, pos, whence);
exit:
@@ -494,25 +494,25 @@ _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"initial_bytes", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "BytesIO", 0};
- PyObject *argsbuf[1];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "BytesIO", 0};
+ PyObject *argsbuf[1];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *initvalue = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- initvalue = fastargs[0];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ initvalue = fastargs[0];
+skip_optional_pos:
return_value = _io_BytesIO___init___impl((bytesio *)self, initvalue);
exit:
return return_value;
}
-/*[clinic end generated code: output=4ec2506def9c8eb9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=4ec2506def9c8eb9 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/fileio.c.h b/contrib/tools/python3/src/Modules/_io/clinic/fileio.c.h
index daf29446f7..53e7067cf7 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/fileio.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/fileio.c.h
@@ -50,58 +50,58 @@ _io_FileIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "FileIO", 0};
- PyObject *argsbuf[4];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "FileIO", 0};
+ PyObject *argsbuf[4];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *nameobj;
const char *mode = "r";
int closefd = 1;
PyObject *opener = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- nameobj = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[1]) {
- if (!PyUnicode_Check(fastargs[1])) {
- _PyArg_BadArgument("FileIO", "argument 'mode'", "str", fastargs[1]);
- goto exit;
- }
- Py_ssize_t mode_length;
- mode = PyUnicode_AsUTF8AndSize(fastargs[1], &mode_length);
- if (mode == NULL) {
- goto exit;
- }
- if (strlen(mode) != (size_t)mode_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[2]) {
- if (PyFloat_Check(fastargs[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- closefd = _PyLong_AsInt(fastargs[2]);
- if (closefd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- opener = fastargs[3];
-skip_optional_pos:
+ nameobj = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[1]) {
+ if (!PyUnicode_Check(fastargs[1])) {
+ _PyArg_BadArgument("FileIO", "argument 'mode'", "str", fastargs[1]);
+ goto exit;
+ }
+ Py_ssize_t mode_length;
+ mode = PyUnicode_AsUTF8AndSize(fastargs[1], &mode_length);
+ if (mode == NULL) {
+ goto exit;
+ }
+ if (strlen(mode) != (size_t)mode_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[2]) {
+ if (PyFloat_Check(fastargs[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ closefd = _PyLong_AsInt(fastargs[2]);
+ if (closefd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ opener = fastargs[3];
+skip_optional_pos:
return_value = _io_FileIO___init___impl((fileio *)self, nameobj, mode, closefd, opener);
exit:
@@ -198,15 +198,15 @@ _io_FileIO_readinto(fileio *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
- PyErr_Clear();
- _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
+ PyErr_Clear();
+ _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io_FileIO_readinto_impl(self, &buffer);
exit:
@@ -250,7 +250,7 @@ PyDoc_STRVAR(_io_FileIO_read__doc__,
"Return an empty bytes object at EOF.");
#define _IO_FILEIO_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_io_FileIO_read, METH_FASTCALL, _io_FileIO_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_io_FileIO_read, METH_FASTCALL, _io_FileIO_read__doc__},
static PyObject *
_io_FileIO_read_impl(fileio *self, Py_ssize_t size);
@@ -261,16 +261,16 @@ _io_FileIO_read(fileio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _io_FileIO_read_impl(self, size);
exit:
@@ -299,13 +299,13 @@ _io_FileIO_write(fileio *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer b = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&b, 'C')) {
+ _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&b, 'C')) {
- _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io_FileIO_write_impl(self, &b);
exit:
@@ -332,7 +332,7 @@ PyDoc_STRVAR(_io_FileIO_seek__doc__,
"Note that not all file objects are seekable.");
#define _IO_FILEIO_SEEK_METHODDEF \
- {"seek", (PyCFunction)(void(*)(void))_io_FileIO_seek, METH_FASTCALL, _io_FileIO_seek__doc__},
+ {"seek", (PyCFunction)(void(*)(void))_io_FileIO_seek, METH_FASTCALL, _io_FileIO_seek__doc__},
static PyObject *
_io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence);
@@ -344,23 +344,23 @@ _io_FileIO_seek(fileio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *pos;
int whence = 0;
- if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ goto exit;
+ }
+ pos = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ whence = _PyLong_AsInt(args[1]);
+ if (whence == -1 && PyErr_Occurred()) {
goto exit;
}
- pos = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- whence = _PyLong_AsInt(args[1]);
- if (whence == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _io_FileIO_seek_impl(self, pos, whence);
exit:
@@ -399,7 +399,7 @@ PyDoc_STRVAR(_io_FileIO_truncate__doc__,
"The current file position is changed to the value of size.");
#define _IO_FILEIO_TRUNCATE_METHODDEF \
- {"truncate", (PyCFunction)(void(*)(void))_io_FileIO_truncate, METH_FASTCALL, _io_FileIO_truncate__doc__},
+ {"truncate", (PyCFunction)(void(*)(void))_io_FileIO_truncate, METH_FASTCALL, _io_FileIO_truncate__doc__},
static PyObject *
_io_FileIO_truncate_impl(fileio *self, PyObject *posobj);
@@ -408,16 +408,16 @@ static PyObject *
_io_FileIO_truncate(fileio *self, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- PyObject *posobj = Py_None;
+ PyObject *posobj = Py_None;
- if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- posobj = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ posobj = args[0];
+skip_optional:
return_value = _io_FileIO_truncate_impl(self, posobj);
exit:
@@ -447,4 +447,4 @@ _io_FileIO_isatty(fileio *self, PyObject *Py_UNUSED(ignored))
#ifndef _IO_FILEIO_TRUNCATE_METHODDEF
#define _IO_FILEIO_TRUNCATE_METHODDEF
#endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */
-/*[clinic end generated code: output=e7682d0a3264d284 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e7682d0a3264d284 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/iobase.c.h b/contrib/tools/python3/src/Modules/_io/clinic/iobase.c.h
index 82ab4a7f27..ddaff7b5d1 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/iobase.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/iobase.c.h
@@ -174,7 +174,7 @@ PyDoc_STRVAR(_io__IOBase_readline__doc__,
"terminator(s) recognized.");
#define _IO__IOBASE_READLINE_METHODDEF \
- {"readline", (PyCFunction)(void(*)(void))_io__IOBase_readline, METH_FASTCALL, _io__IOBase_readline__doc__},
+ {"readline", (PyCFunction)(void(*)(void))_io__IOBase_readline, METH_FASTCALL, _io__IOBase_readline__doc__},
static PyObject *
_io__IOBase_readline_impl(PyObject *self, Py_ssize_t limit);
@@ -185,16 +185,16 @@ _io__IOBase_readline(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t limit = -1;
- if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &limit)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &limit)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io__IOBase_readline_impl(self, limit);
exit:
@@ -212,7 +212,7 @@ PyDoc_STRVAR(_io__IOBase_readlines__doc__,
"lines so far exceeds hint.");
#define _IO__IOBASE_READLINES_METHODDEF \
- {"readlines", (PyCFunction)(void(*)(void))_io__IOBase_readlines, METH_FASTCALL, _io__IOBase_readlines__doc__},
+ {"readlines", (PyCFunction)(void(*)(void))_io__IOBase_readlines, METH_FASTCALL, _io__IOBase_readlines__doc__},
static PyObject *
_io__IOBase_readlines_impl(PyObject *self, Py_ssize_t hint);
@@ -223,16 +223,16 @@ _io__IOBase_readlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t hint = -1;
- if (!_PyArg_CheckPositional("readlines", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readlines", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &hint)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &hint)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _io__IOBase_readlines_impl(self, hint);
exit:
@@ -242,11 +242,11 @@ exit:
PyDoc_STRVAR(_io__IOBase_writelines__doc__,
"writelines($self, lines, /)\n"
"--\n"
-"\n"
-"Write a list of lines to stream.\n"
-"\n"
-"Line separators are not added, so it is usual for each of the\n"
-"lines provided to have a line separator at the end.");
+"\n"
+"Write a list of lines to stream.\n"
+"\n"
+"Line separators are not added, so it is usual for each of the\n"
+"lines provided to have a line separator at the end.");
#define _IO__IOBASE_WRITELINES_METHODDEF \
{"writelines", (PyCFunction)_io__IOBase_writelines, METH_O, _io__IOBase_writelines__doc__},
@@ -257,7 +257,7 @@ PyDoc_STRVAR(_io__RawIOBase_read__doc__,
"\n");
#define _IO__RAWIOBASE_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_io__RawIOBase_read, METH_FASTCALL, _io__RawIOBase_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_io__RawIOBase_read, METH_FASTCALL, _io__RawIOBase_read__doc__},
static PyObject *
_io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n);
@@ -268,30 +268,30 @@ _io__RawIOBase_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t n = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- n = ival;
- }
-skip_optional:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ n = ival;
+ }
+skip_optional:
return_value = _io__RawIOBase_read_impl(self, n);
exit:
@@ -315,4 +315,4 @@ _io__RawIOBase_readall(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _io__RawIOBase_readall_impl(self);
}
-/*[clinic end generated code: output=61b6ea7153ef9940 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=61b6ea7153ef9940 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/stringio.c.h b/contrib/tools/python3/src/Modules/_io/clinic/stringio.c.h
index e1b1e6537a..77a720c2a6 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/stringio.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/stringio.c.h
@@ -48,7 +48,7 @@ PyDoc_STRVAR(_io_StringIO_read__doc__,
"is reached. Return an empty string at EOF.");
#define _IO_STRINGIO_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_io_StringIO_read, METH_FASTCALL, _io_StringIO_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_io_StringIO_read, METH_FASTCALL, _io_StringIO_read__doc__},
static PyObject *
_io_StringIO_read_impl(stringio *self, Py_ssize_t size);
@@ -59,16 +59,16 @@ _io_StringIO_read(stringio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_StringIO_read_impl(self, size);
exit:
@@ -84,7 +84,7 @@ PyDoc_STRVAR(_io_StringIO_readline__doc__,
"Returns an empty string if EOF is hit immediately.");
#define _IO_STRINGIO_READLINE_METHODDEF \
- {"readline", (PyCFunction)(void(*)(void))_io_StringIO_readline, METH_FASTCALL, _io_StringIO_readline__doc__},
+ {"readline", (PyCFunction)(void(*)(void))_io_StringIO_readline, METH_FASTCALL, _io_StringIO_readline__doc__},
static PyObject *
_io_StringIO_readline_impl(stringio *self, Py_ssize_t size);
@@ -95,16 +95,16 @@ _io_StringIO_readline(stringio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _io_StringIO_readline_impl(self, size);
exit:
@@ -122,7 +122,7 @@ PyDoc_STRVAR(_io_StringIO_truncate__doc__,
"Returns the new absolute position.");
#define _IO_STRINGIO_TRUNCATE_METHODDEF \
- {"truncate", (PyCFunction)(void(*)(void))_io_StringIO_truncate, METH_FASTCALL, _io_StringIO_truncate__doc__},
+ {"truncate", (PyCFunction)(void(*)(void))_io_StringIO_truncate, METH_FASTCALL, _io_StringIO_truncate__doc__},
static PyObject *
_io_StringIO_truncate_impl(stringio *self, Py_ssize_t size);
@@ -133,16 +133,16 @@ _io_StringIO_truncate(stringio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t size = self->pos;
- if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_StringIO_truncate_impl(self, size);
exit:
@@ -162,7 +162,7 @@ PyDoc_STRVAR(_io_StringIO_seek__doc__,
"Returns the new absolute position.");
#define _IO_STRINGIO_SEEK_METHODDEF \
- {"seek", (PyCFunction)(void(*)(void))_io_StringIO_seek, METH_FASTCALL, _io_StringIO_seek__doc__},
+ {"seek", (PyCFunction)(void(*)(void))_io_StringIO_seek, METH_FASTCALL, _io_StringIO_seek__doc__},
static PyObject *
_io_StringIO_seek_impl(stringio *self, Py_ssize_t pos, int whence);
@@ -174,39 +174,39 @@ _io_StringIO_seek(stringio *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t pos;
int whence = 0;
- if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- whence = _PyLong_AsInt(args[1]);
- if (whence == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ whence = _PyLong_AsInt(args[1]);
+ if (whence == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_StringIO_seek_impl(self, pos, whence);
exit:
@@ -266,29 +266,29 @@ _io_StringIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"initial_value", "newline", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "StringIO", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "StringIO", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *value = NULL;
PyObject *newline_obj = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[0]) {
- value = fastargs[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- newline_obj = fastargs[1];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[0]) {
+ value = fastargs[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ newline_obj = fastargs[1];
+skip_optional_pos:
return_value = _io_StringIO___init___impl((stringio *)self, value, newline_obj);
exit:
@@ -348,4 +348,4 @@ _io_StringIO_seekable(stringio *self, PyObject *Py_UNUSED(ignored))
{
return _io_StringIO_seekable_impl(self);
}
-/*[clinic end generated code: output=7aad5ab2e64a25b8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7aad5ab2e64a25b8 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/textio.c.h b/contrib/tools/python3/src/Modules/_io/clinic/textio.c.h
index 53a8001449..b8b507543e 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/textio.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/textio.c.h
@@ -25,34 +25,34 @@ _io_IncrementalNewlineDecoder___init__(PyObject *self, PyObject *args, PyObject
{
int return_value = -1;
static const char * const _keywords[] = {"decoder", "translate", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "IncrementalNewlineDecoder", 0};
- PyObject *argsbuf[3];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "IncrementalNewlineDecoder", 0};
+ PyObject *argsbuf[3];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 2;
PyObject *decoder;
int translate;
PyObject *errors = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 3, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 3, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- decoder = fastargs[0];
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- translate = _PyLong_AsInt(fastargs[1]);
- if (translate == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- errors = fastargs[2];
-skip_optional_pos:
+ decoder = fastargs[0];
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ translate = _PyLong_AsInt(fastargs[1]);
+ if (translate == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ errors = fastargs[2];
+skip_optional_pos:
return_value = _io_IncrementalNewlineDecoder___init___impl((nldecoder_object *)self, decoder, translate, errors);
exit:
@@ -65,7 +65,7 @@ PyDoc_STRVAR(_io_IncrementalNewlineDecoder_decode__doc__,
"\n");
#define _IO_INCREMENTALNEWLINEDECODER_DECODE_METHODDEF \
- {"decode", (PyCFunction)(void(*)(void))_io_IncrementalNewlineDecoder_decode, METH_FASTCALL|METH_KEYWORDS, _io_IncrementalNewlineDecoder_decode__doc__},
+ {"decode", (PyCFunction)(void(*)(void))_io_IncrementalNewlineDecoder_decode, METH_FASTCALL|METH_KEYWORDS, _io_IncrementalNewlineDecoder_decode__doc__},
static PyObject *
_io_IncrementalNewlineDecoder_decode_impl(nldecoder_object *self,
@@ -76,30 +76,30 @@ _io_IncrementalNewlineDecoder_decode(nldecoder_object *self, PyObject *const *ar
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"input", "final", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *input;
int final = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ input = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[1]);
+ if (final == -1 && PyErr_Occurred()) {
goto exit;
}
- input = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[1]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = _io_IncrementalNewlineDecoder_decode_impl(self, input, final);
exit:
@@ -193,11 +193,11 @@ _io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"buffer", "encoding", "errors", "newline", "line_buffering", "write_through", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "TextIOWrapper", 0};
- PyObject *argsbuf[6];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "TextIOWrapper", 0};
+ PyObject *argsbuf[6];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *buffer;
const char *encoding = NULL;
PyObject *errors = Py_None;
@@ -205,90 +205,90 @@ _io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject *kwargs)
int line_buffering = 0;
int write_through = 0;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 6, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 6, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- buffer = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[1]) {
- if (fastargs[1] == Py_None) {
- encoding = NULL;
- }
- else if (PyUnicode_Check(fastargs[1])) {
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(fastargs[1], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("TextIOWrapper", "argument 'encoding'", "str or None", fastargs[1]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[2]) {
- errors = fastargs[2];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[3]) {
- if (fastargs[3] == Py_None) {
- newline = NULL;
- }
- else if (PyUnicode_Check(fastargs[3])) {
- Py_ssize_t newline_length;
- newline = PyUnicode_AsUTF8AndSize(fastargs[3], &newline_length);
- if (newline == NULL) {
- goto exit;
- }
- if (strlen(newline) != (size_t)newline_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("TextIOWrapper", "argument 'newline'", "str or None", fastargs[3]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[4]) {
- if (PyFloat_Check(fastargs[4])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- line_buffering = _PyLong_AsInt(fastargs[4]);
- if (line_buffering == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(fastargs[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- write_through = _PyLong_AsInt(fastargs[5]);
- if (write_through == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ buffer = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[1]) {
+ if (fastargs[1] == Py_None) {
+ encoding = NULL;
+ }
+ else if (PyUnicode_Check(fastargs[1])) {
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(fastargs[1], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("TextIOWrapper", "argument 'encoding'", "str or None", fastargs[1]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[2]) {
+ errors = fastargs[2];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[3]) {
+ if (fastargs[3] == Py_None) {
+ newline = NULL;
+ }
+ else if (PyUnicode_Check(fastargs[3])) {
+ Py_ssize_t newline_length;
+ newline = PyUnicode_AsUTF8AndSize(fastargs[3], &newline_length);
+ if (newline == NULL) {
+ goto exit;
+ }
+ if (strlen(newline) != (size_t)newline_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("TextIOWrapper", "argument 'newline'", "str or None", fastargs[3]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[4]) {
+ if (PyFloat_Check(fastargs[4])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ line_buffering = _PyLong_AsInt(fastargs[4]);
+ if (line_buffering == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(fastargs[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ write_through = _PyLong_AsInt(fastargs[5]);
+ if (write_through == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = _io_TextIOWrapper___init___impl((textio *)self, buffer, encoding, errors, newline, line_buffering, write_through);
exit:
@@ -305,7 +305,7 @@ PyDoc_STRVAR(_io_TextIOWrapper_reconfigure__doc__,
"This also does an implicit stream flush.");
#define _IO_TEXTIOWRAPPER_RECONFIGURE_METHODDEF \
- {"reconfigure", (PyCFunction)(void(*)(void))_io_TextIOWrapper_reconfigure, METH_FASTCALL|METH_KEYWORDS, _io_TextIOWrapper_reconfigure__doc__},
+ {"reconfigure", (PyCFunction)(void(*)(void))_io_TextIOWrapper_reconfigure, METH_FASTCALL|METH_KEYWORDS, _io_TextIOWrapper_reconfigure__doc__},
static PyObject *
_io_TextIOWrapper_reconfigure_impl(textio *self, PyObject *encoding,
@@ -318,48 +318,48 @@ _io_TextIOWrapper_reconfigure(textio *self, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"encoding", "errors", "newline", "line_buffering", "write_through", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "reconfigure", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "reconfigure", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *encoding = Py_None;
PyObject *errors = Py_None;
PyObject *newline_obj = NULL;
PyObject *line_buffering_obj = Py_None;
PyObject *write_through_obj = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[0]) {
- encoding = args[0];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[1]) {
- errors = args[1];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[2]) {
- newline_obj = args[2];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- line_buffering_obj = args[3];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- write_through_obj = args[4];
-skip_optional_kwonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[0]) {
+ encoding = args[0];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[1]) {
+ errors = args[1];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[2]) {
+ newline_obj = args[2];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ line_buffering_obj = args[3];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ write_through_obj = args[4];
+skip_optional_kwonly:
return_value = _io_TextIOWrapper_reconfigure_impl(self, encoding, errors, newline_obj, line_buffering_obj, write_through_obj);
exit:
@@ -400,14 +400,14 @@ _io_TextIOWrapper_write(textio *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *text;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("write", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("write", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- text = arg;
+ text = arg;
return_value = _io_TextIOWrapper_write_impl(self, text);
exit:
@@ -420,7 +420,7 @@ PyDoc_STRVAR(_io_TextIOWrapper_read__doc__,
"\n");
#define _IO_TEXTIOWRAPPER_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_io_TextIOWrapper_read, METH_FASTCALL, _io_TextIOWrapper_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_io_TextIOWrapper_read, METH_FASTCALL, _io_TextIOWrapper_read__doc__},
static PyObject *
_io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n);
@@ -431,16 +431,16 @@ _io_TextIOWrapper_read(textio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t n = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &n)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &n)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_TextIOWrapper_read_impl(self, n);
exit:
@@ -453,7 +453,7 @@ PyDoc_STRVAR(_io_TextIOWrapper_readline__doc__,
"\n");
#define _IO_TEXTIOWRAPPER_READLINE_METHODDEF \
- {"readline", (PyCFunction)(void(*)(void))_io_TextIOWrapper_readline, METH_FASTCALL, _io_TextIOWrapper_readline__doc__},
+ {"readline", (PyCFunction)(void(*)(void))_io_TextIOWrapper_readline, METH_FASTCALL, _io_TextIOWrapper_readline__doc__},
static PyObject *
_io_TextIOWrapper_readline_impl(textio *self, Py_ssize_t size);
@@ -464,30 +464,30 @@ _io_TextIOWrapper_readline(textio *self, PyObject *const *args, Py_ssize_t nargs
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- size = ival;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ size = ival;
+ }
+skip_optional:
return_value = _io_TextIOWrapper_readline_impl(self, size);
exit:
@@ -500,7 +500,7 @@ PyDoc_STRVAR(_io_TextIOWrapper_seek__doc__,
"\n");
#define _IO_TEXTIOWRAPPER_SEEK_METHODDEF \
- {"seek", (PyCFunction)(void(*)(void))_io_TextIOWrapper_seek, METH_FASTCALL, _io_TextIOWrapper_seek__doc__},
+ {"seek", (PyCFunction)(void(*)(void))_io_TextIOWrapper_seek, METH_FASTCALL, _io_TextIOWrapper_seek__doc__},
static PyObject *
_io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence);
@@ -512,23 +512,23 @@ _io_TextIOWrapper_seek(textio *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *cookieObj;
int whence = 0;
- if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) {
goto exit;
}
- cookieObj = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- whence = _PyLong_AsInt(args[1]);
- if (whence == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ cookieObj = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ whence = _PyLong_AsInt(args[1]);
+ if (whence == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _io_TextIOWrapper_seek_impl(self, cookieObj, whence);
exit:
@@ -558,7 +558,7 @@ PyDoc_STRVAR(_io_TextIOWrapper_truncate__doc__,
"\n");
#define _IO_TEXTIOWRAPPER_TRUNCATE_METHODDEF \
- {"truncate", (PyCFunction)(void(*)(void))_io_TextIOWrapper_truncate, METH_FASTCALL, _io_TextIOWrapper_truncate__doc__},
+ {"truncate", (PyCFunction)(void(*)(void))_io_TextIOWrapper_truncate, METH_FASTCALL, _io_TextIOWrapper_truncate__doc__},
static PyObject *
_io_TextIOWrapper_truncate_impl(textio *self, PyObject *pos);
@@ -569,14 +569,14 @@ _io_TextIOWrapper_truncate(textio *self, PyObject *const *args, Py_ssize_t nargs
PyObject *return_value = NULL;
PyObject *pos = Py_None;
- if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- pos = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ pos = args[0];
+skip_optional:
return_value = _io_TextIOWrapper_truncate_impl(self, pos);
exit:
@@ -701,4 +701,4 @@ _io_TextIOWrapper_close(textio *self, PyObject *Py_UNUSED(ignored))
{
return _io_TextIOWrapper_close_impl(self);
}
-/*[clinic end generated code: output=b1bae4f4cdf6019e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b1bae4f4cdf6019e input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/clinic/winconsoleio.c.h b/contrib/tools/python3/src/Modules/_io/clinic/winconsoleio.c.h
index f008678154..3e501a5853 100644
--- a/contrib/tools/python3/src/Modules/_io/clinic/winconsoleio.c.h
+++ b/contrib/tools/python3/src/Modules/_io/clinic/winconsoleio.c.h
@@ -49,58 +49,58 @@ _io__WindowsConsoleIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_WindowsConsoleIO", 0};
- PyObject *argsbuf[4];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "_WindowsConsoleIO", 0};
+ PyObject *argsbuf[4];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *nameobj;
const char *mode = "r";
int closefd = 1;
PyObject *opener = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- nameobj = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[1]) {
- if (!PyUnicode_Check(fastargs[1])) {
- _PyArg_BadArgument("_WindowsConsoleIO", "argument 'mode'", "str", fastargs[1]);
- goto exit;
- }
- Py_ssize_t mode_length;
- mode = PyUnicode_AsUTF8AndSize(fastargs[1], &mode_length);
- if (mode == NULL) {
- goto exit;
- }
- if (strlen(mode) != (size_t)mode_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[2]) {
- if (PyFloat_Check(fastargs[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- closefd = _PyLong_AsInt(fastargs[2]);
- if (closefd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- opener = fastargs[3];
-skip_optional_pos:
+ nameobj = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[1]) {
+ if (!PyUnicode_Check(fastargs[1])) {
+ _PyArg_BadArgument("_WindowsConsoleIO", "argument 'mode'", "str", fastargs[1]);
+ goto exit;
+ }
+ Py_ssize_t mode_length;
+ mode = PyUnicode_AsUTF8AndSize(fastargs[1], &mode_length);
+ if (mode == NULL) {
+ goto exit;
+ }
+ if (strlen(mode) != (size_t)mode_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[2]) {
+ if (PyFloat_Check(fastargs[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ closefd = _PyLong_AsInt(fastargs[2]);
+ if (closefd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ opener = fastargs[3];
+skip_optional_pos:
return_value = _io__WindowsConsoleIO___init___impl((winconsoleio *)self, nameobj, mode, closefd, opener);
exit:
@@ -198,15 +198,15 @@ _io__WindowsConsoleIO_readinto(winconsoleio *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
- PyErr_Clear();
- _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
+ PyErr_Clear();
+ _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io__WindowsConsoleIO_readinto_impl(self, &buffer);
exit:
@@ -257,7 +257,7 @@ PyDoc_STRVAR(_io__WindowsConsoleIO_read__doc__,
"Return an empty bytes object at EOF.");
#define _IO__WINDOWSCONSOLEIO_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_io__WindowsConsoleIO_read, METH_FASTCALL, _io__WindowsConsoleIO_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_io__WindowsConsoleIO_read, METH_FASTCALL, _io__WindowsConsoleIO_read__doc__},
static PyObject *
_io__WindowsConsoleIO_read_impl(winconsoleio *self, Py_ssize_t size);
@@ -268,16 +268,16 @@ _io__WindowsConsoleIO_read(winconsoleio *self, PyObject *const *args, Py_ssize_t
PyObject *return_value = NULL;
Py_ssize_t size = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
+ goto exit;
+ }
+skip_optional:
return_value = _io__WindowsConsoleIO_read_impl(self, size);
exit:
@@ -309,13 +309,13 @@ _io__WindowsConsoleIO_write(winconsoleio *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer b = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&b, 'C')) {
+ _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&b, 'C')) {
- _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _io__WindowsConsoleIO_write_impl(self, &b);
exit:
@@ -386,4 +386,4 @@ _io__WindowsConsoleIO_isatty(winconsoleio *self, PyObject *Py_UNUSED(ignored))
#ifndef _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF
#define _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF
#endif /* !defined(_IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF) */
-/*[clinic end generated code: output=f5b8860a658a001a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f5b8860a658a001a input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_io/fileio.c b/contrib/tools/python3/src/Modules/_io/fileio.c
index 20d8928563..048484bde5 100644
--- a/contrib/tools/python3/src/Modules/_io/fileio.c
+++ b/contrib/tools/python3/src/Modules/_io/fileio.c
@@ -2,9 +2,9 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_object.h"
-#include "structmember.h" // PyMemberDef
-#include <stdbool.h>
+#include "pycore_object.h"
+#include "structmember.h" // PyMemberDef
+#include <stdbool.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -76,7 +76,7 @@ _Py_IDENTIFIER(name);
#define PyFileIO_Check(op) (PyObject_TypeCheck((op), &PyFileIO_Type))
/* Forward declarations */
-static PyObject* portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_error);
+static PyObject* portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_error);
int
_PyFileIO_closed(PyObject *self)
@@ -146,8 +146,8 @@ _io_FileIO_close_impl(fileio *self)
PyObject *exc, *val, *tb;
int rc;
_Py_IDENTIFIER(close);
- res = _PyObject_CallMethodIdOneArg((PyObject*)&PyRawIOBase_Type,
- &PyId_close, (PyObject *)self);
+ res = _PyObject_CallMethodIdOneArg((PyObject*)&PyRawIOBase_Type,
+ &PyId_close, (PyObject *)self);
if (!self->closefd) {
self->fd = -1;
return res;
@@ -276,10 +276,10 @@ _io_FileIO___init___impl(fileio *self, PyObject *nameobj, const char *mode,
if (!PyUnicode_FSDecoder(nameobj, &stringobj)) {
return -1;
}
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
widename = PyUnicode_AsUnicode(stringobj);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (widename == NULL)
return -1;
#else
@@ -362,10 +362,10 @@ _Py_COMP_DIAG_POP
flags |= O_CLOEXEC;
#endif
- if (PySys_Audit("open", "Osi", nameobj, mode, flags) < 0) {
- goto error;
- }
-
+ if (PySys_Audit("open", "Osi", nameobj, mode, flags) < 0) {
+ goto error;
+ }
+
if (fd >= 0) {
self->fd = fd;
self->closefd = closefd;
@@ -484,7 +484,7 @@ _Py_COMP_DIAG_POP
/* For consistent behaviour, we explicitly seek to the
end of file (otherwise, it might be done only on the
first write()). */
- PyObject *pos = portable_lseek(self, NULL, 2, true);
+ PyObject *pos = portable_lseek(self, NULL, 2, true);
if (pos == NULL)
goto error;
Py_DECREF(pos);
@@ -607,7 +607,7 @@ _io_FileIO_seekable_impl(fileio *self)
return err_closed();
if (self->seekable < 0) {
/* portable_lseek() sets the seekable attribute */
- PyObject *pos = portable_lseek(self, NULL, SEEK_CUR, false);
+ PyObject *pos = portable_lseek(self, NULL, SEEK_CUR, false);
assert(self->seekable >= 0);
if (pos == NULL) {
PyErr_Clear();
@@ -874,7 +874,7 @@ _io_FileIO_write_impl(fileio *self, Py_buffer *b)
/* Cribbed from posix_lseek() */
static PyObject *
-portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_error)
+portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_error)
{
Py_off_t pos, res;
int fd = self->fd;
@@ -925,13 +925,13 @@ portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_er
self->seekable = (res >= 0);
}
- if (res < 0) {
- if (suppress_pipe_error && errno == ESPIPE) {
- res = 0;
- } else {
- return PyErr_SetFromErrno(PyExc_OSError);
- }
- }
+ if (res < 0) {
+ if (suppress_pipe_error && errno == ESPIPE) {
+ res = 0;
+ } else {
+ return PyErr_SetFromErrno(PyExc_OSError);
+ }
+ }
#if defined(HAVE_LARGEFILE_SUPPORT)
return PyLong_FromLongLong(res);
@@ -964,7 +964,7 @@ _io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence)
if (self->fd < 0)
return err_closed();
- return portable_lseek(self, pos, whence, false);
+ return portable_lseek(self, pos, whence, false);
}
/*[clinic input]
@@ -982,13 +982,13 @@ _io_FileIO_tell_impl(fileio *self)
if (self->fd < 0)
return err_closed();
- return portable_lseek(self, NULL, 1, false);
+ return portable_lseek(self, NULL, 1, false);
}
#ifdef HAVE_FTRUNCATE
/*[clinic input]
_io.FileIO.truncate
- size as posobj: object = None
+ size as posobj: object = None
/
Truncate the file to at most size bytes and return the truncated size.
@@ -999,7 +999,7 @@ The current file position is changed to the value of size.
static PyObject *
_io_FileIO_truncate_impl(fileio *self, PyObject *posobj)
-/*[clinic end generated code: output=e49ca7a916c176fa input=b0ac133939823875]*/
+/*[clinic end generated code: output=e49ca7a916c176fa input=b0ac133939823875]*/
{
Py_off_t pos;
int ret;
@@ -1011,9 +1011,9 @@ _io_FileIO_truncate_impl(fileio *self, PyObject *posobj)
if (!self->writable)
return err_mode("writing");
- if (posobj == Py_None) {
+ if (posobj == Py_None) {
/* Get the current position. */
- posobj = portable_lseek(self, NULL, 1, false);
+ posobj = portable_lseek(self, NULL, 1, false);
if (posobj == NULL)
return NULL;
}
@@ -1194,10 +1194,10 @@ PyTypeObject PyFileIO_Type = {
sizeof(fileio),
0,
(destructor)fileio_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)fileio_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1209,12 +1209,12 @@ PyTypeObject PyFileIO_Type = {
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ | Py_TPFLAGS_HAVE_GC, /* tp_flags */
_io_FileIO___init____doc__, /* tp_doc */
(traverseproc)fileio_traverse, /* tp_traverse */
(inquiry)fileio_clear, /* tp_clear */
0, /* tp_richcompare */
- offsetof(fileio, weakreflist), /* tp_weaklistoffset */
+ offsetof(fileio, weakreflist), /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
fileio_methods, /* tp_methods */
@@ -1224,7 +1224,7 @@ PyTypeObject PyFileIO_Type = {
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
- offsetof(fileio, dict), /* tp_dictoffset */
+ offsetof(fileio, dict), /* tp_dictoffset */
_io_FileIO___init__, /* tp_init */
PyType_GenericAlloc, /* tp_alloc */
fileio_new, /* tp_new */
diff --git a/contrib/tools/python3/src/Modules/_io/iobase.c b/contrib/tools/python3/src/Modules/_io/iobase.c
index 22f3fc0c43..a8e55c3479 100644
--- a/contrib/tools/python3/src/Modules/_io/iobase.c
+++ b/contrib/tools/python3/src/Modules/_io/iobase.c
@@ -10,8 +10,8 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_object.h"
-#include <stddef.h> // offsetof()
+#include "pycore_object.h"
+#include <stddef.h> // offsetof()
#include "_iomodule.h"
/*[clinic input]
@@ -235,7 +235,7 @@ _io__IOBase_close_impl(PyObject *self)
Py_RETURN_NONE;
}
- res = PyObject_CallMethodNoArgs(self, _PyIO_str_flush);
+ res = PyObject_CallMethodNoArgs(self, _PyIO_str_flush);
PyErr_Fetch(&exc, &val, &tb);
rc = _PyObject_SetAttrId(self, &PyId___IOBase_closed, Py_True);
@@ -281,25 +281,25 @@ iobase_finalize(PyObject *self)
finalization process. */
if (_PyObject_SetAttrId(self, &PyId__finalizing, Py_True))
PyErr_Clear();
- res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_close);
+ res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_close);
/* Silencing I/O errors is bad, but printing spurious tracebacks is
equally as bad, and potentially more frequent (because of
shutdown issues). */
- if (res == NULL) {
-#ifndef Py_DEBUG
- if (_Py_GetConfig()->dev_mode) {
- PyErr_WriteUnraisable(self);
- }
- else {
- PyErr_Clear();
- }
-#else
- PyErr_WriteUnraisable(self);
-#endif
- }
- else {
+ if (res == NULL) {
+#ifndef Py_DEBUG
+ if (_Py_GetConfig()->dev_mode) {
+ PyErr_WriteUnraisable(self);
+ }
+ else {
+ PyErr_Clear();
+ }
+#else
+ PyErr_WriteUnraisable(self);
+#endif
+ }
+ else {
Py_DECREF(res);
- }
+ }
}
/* Restore the saved exception. */
@@ -381,7 +381,7 @@ _io__IOBase_seekable_impl(PyObject *self)
PyObject *
_PyIOBase_check_seekable(PyObject *self, PyObject *args)
{
- PyObject *res = PyObject_CallMethodNoArgs(self, _PyIO_str_seekable);
+ PyObject *res = PyObject_CallMethodNoArgs(self, _PyIO_str_seekable);
if (res == NULL)
return NULL;
if (res != Py_True) {
@@ -414,7 +414,7 @@ _io__IOBase_readable_impl(PyObject *self)
PyObject *
_PyIOBase_check_readable(PyObject *self, PyObject *args)
{
- PyObject *res = PyObject_CallMethodNoArgs(self, _PyIO_str_readable);
+ PyObject *res = PyObject_CallMethodNoArgs(self, _PyIO_str_readable);
if (res == NULL)
return NULL;
if (res != Py_True) {
@@ -447,7 +447,7 @@ _io__IOBase_writable_impl(PyObject *self)
PyObject *
_PyIOBase_check_writable(PyObject *self, PyObject *args)
{
- PyObject *res = PyObject_CallMethodNoArgs(self, _PyIO_str_writable);
+ PyObject *res = PyObject_CallMethodNoArgs(self, _PyIO_str_writable);
if (res == NULL)
return NULL;
if (res != Py_True) {
@@ -476,7 +476,7 @@ iobase_enter(PyObject *self, PyObject *args)
static PyObject *
iobase_exit(PyObject *self, PyObject *args)
{
- return PyObject_CallMethodNoArgs(self, _PyIO_str_close);
+ return PyObject_CallMethodNoArgs(self, _PyIO_str_close);
}
/* Lower-level APIs */
@@ -555,7 +555,7 @@ _io__IOBase_readline_impl(PyObject *self, Py_ssize_t limit)
PyObject *b;
if (peek != NULL) {
- PyObject *readahead = PyObject_CallOneArg(peek, _PyLong_One);
+ PyObject *readahead = PyObject_CallOneArg(peek, _PyLong_One);
if (readahead == NULL) {
/* NOTE: PyErr_SetFromErrno() calls PyErr_CheckSignals()
when EINTR occurs so we needn't do it ourselves. */
@@ -654,7 +654,7 @@ iobase_iter(PyObject *self)
static PyObject *
iobase_iternext(PyObject *self)
{
- PyObject *line = PyObject_CallMethodNoArgs(self, _PyIO_str_readline);
+ PyObject *line = PyObject_CallMethodNoArgs(self, _PyIO_str_readline);
if (line == NULL)
return NULL;
@@ -749,16 +749,16 @@ _io__IOBase_readlines_impl(PyObject *self, Py_ssize_t hint)
_io._IOBase.writelines
lines: object
/
-
-Write a list of lines to stream.
-
-Line separators are not added, so it is usual for each of the
-lines provided to have a line separator at the end.
+
+Write a list of lines to stream.
+
+Line separators are not added, so it is usual for each of the
+lines provided to have a line separator at the end.
[clinic start generated code]*/
static PyObject *
_io__IOBase_writelines(PyObject *self, PyObject *lines)
-/*[clinic end generated code: output=976eb0a9b60a6628 input=cac3fc8864183359]*/
+/*[clinic end generated code: output=976eb0a9b60a6628 input=cac3fc8864183359]*/
{
PyObject *iter, *res;
@@ -839,10 +839,10 @@ PyTypeObject PyIOBase_Type = {
sizeof(iobase), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)iobase_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -854,7 +854,7 @@ PyTypeObject PyIOBase_Type = {
0, /*tp_setattro*/
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
iobase_doc, /* tp_doc */
(traverseproc)iobase_traverse, /* tp_traverse */
(inquiry)iobase_clear, /* tp_clear */
@@ -919,7 +919,7 @@ _io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n)
if (n < 0) {
_Py_IDENTIFIER(readall);
- return _PyObject_CallMethodIdNoArgs(self, &PyId_readall);
+ return _PyObject_CallMethodIdNoArgs(self, &PyId_readall);
}
/* TODO: allocate a bytes object directly instead and manually construct
@@ -1035,10 +1035,10 @@ PyTypeObject PyRawIOBase_Type = {
0, /*tp_basicsize*/
0, /*tp_itemsize*/
0, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -1049,7 +1049,7 @@ PyTypeObject PyRawIOBase_Type = {
0, /*tp_getattro*/
0, /*tp_setattro*/
0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
rawiobase_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
diff --git a/contrib/tools/python3/src/Modules/_io/stringio.c b/contrib/tools/python3/src/Modules/_io/stringio.c
index 136d80cd3f..e76152e617 100644
--- a/contrib/tools/python3/src/Modules/_io/stringio.c
+++ b/contrib/tools/python3/src/Modules/_io/stringio.c
@@ -1,8 +1,8 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include <stddef.h> // offsetof()
-#include "pycore_accu.h"
-#include "pycore_object.h"
+#include <stddef.h> // offsetof()
+#include "pycore_accu.h"
+#include "pycore_object.h"
#include "_iomodule.h"
/* Implementation note: the buffer is always at least one character longer
@@ -402,14 +402,14 @@ stringio_iternext(stringio *self)
CHECK_CLOSED(self);
ENSURE_REALIZED(self);
- if (Py_IS_TYPE(self, &PyStringIO_Type)) {
+ if (Py_IS_TYPE(self, &PyStringIO_Type)) {
/* Skip method call overhead for speed */
line = _stringio_readline(self, -1);
}
else {
/* XXX is subclassing StringIO really supported? */
- line = PyObject_CallMethodNoArgs((PyObject *)self,
- _PyIO_str_readline);
+ line = PyObject_CallMethodNoArgs((PyObject *)self,
+ _PyIO_str_readline);
if (line && !PyUnicode_Check(line)) {
PyErr_Format(PyExc_OSError,
"readline() should have returned a str object, "
@@ -714,9 +714,9 @@ _io_StringIO___init___impl(stringio *self, PyObject *value,
}
if (self->readuniversal) {
- self->decoder = PyObject_CallFunctionObjArgs(
+ self->decoder = PyObject_CallFunctionObjArgs(
(PyObject *)&PyIncrementalNewlineDecoder_Type,
- Py_None, self->readtranslate ? Py_True : Py_False, NULL);
+ Py_None, self->readtranslate ? Py_True : Py_False, NULL);
if (self->decoder == NULL)
return -1;
}
@@ -813,7 +813,7 @@ _io_StringIO_seekable_impl(stringio *self)
*/
static PyObject *
-stringio_getstate(stringio *self, PyObject *Py_UNUSED(ignored))
+stringio_getstate(stringio *self, PyObject *Py_UNUSED(ignored))
{
PyObject *initvalue = _io_StringIO_getvalue_impl(self);
PyObject *dict;
@@ -899,7 +899,7 @@ stringio_setstate(stringio *self, PyObject *state)
/* Set carefully the position value. Alternatively, we could use the seek
method instead of modifying self->pos directly to better protect the
- object internal state against erroneous (or malicious) inputs. */
+ object internal state against erroneous (or malicious) inputs. */
position_obj = PyTuple_GET_ITEM(state, 2);
if (!PyLong_Check(position_obj)) {
PyErr_Format(PyExc_TypeError,
@@ -1007,10 +1007,10 @@ PyTypeObject PyStringIO_Type = {
sizeof(stringio), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)stringio_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
diff --git a/contrib/tools/python3/src/Modules/_io/textio.c b/contrib/tools/python3/src/Modules/_io/textio.c
index a3ea57d0b3..966c532a0e 100644
--- a/contrib/tools/python3/src/Modules/_io/textio.c
+++ b/contrib/tools/python3/src/Modules/_io/textio.c
@@ -8,10 +8,10 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_interp.h" // PyInterpreterState.fs_codec
-#include "pycore_object.h"
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "structmember.h" // PyMemberDef
+#include "pycore_interp.h" // PyInterpreterState.fs_codec
+#include "pycore_object.h"
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "structmember.h" // PyMemberDef
#include "_iomodule.h"
/*[clinic input]
@@ -69,7 +69,7 @@ PyDoc_STRVAR(textiobase_detach_doc,
);
static PyObject *
-textiobase_detach(PyObject *self, PyObject *Py_UNUSED(ignored))
+textiobase_detach(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _unsupported("detach");
}
@@ -151,7 +151,7 @@ textiobase_errors_get(PyObject *self, void *context)
static PyMethodDef textiobase_methods[] = {
- {"detach", textiobase_detach, METH_NOARGS, textiobase_detach_doc},
+ {"detach", textiobase_detach, METH_NOARGS, textiobase_detach_doc},
{"read", textiobase_read, METH_VARARGS, textiobase_read_doc},
{"readline", textiobase_readline, METH_VARARGS, textiobase_readline_doc},
{"write", textiobase_write, METH_VARARGS, textiobase_write_doc},
@@ -171,10 +171,10 @@ PyTypeObject PyTextIOBase_Type = {
0, /*tp_basicsize*/
0, /*tp_itemsize*/
0, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -185,7 +185,7 @@ PyTypeObject PyTextIOBase_Type = {
0, /*tp_getattro*/
0, /*tp_setattro*/
0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
textiobase_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
@@ -342,7 +342,7 @@ _PyIncrementalNewlineDecoder_decode(PyObject *myself,
goto error;
kind = PyUnicode_KIND(modified);
out = PyUnicode_DATA(modified);
- PyUnicode_WRITE(kind, out, 0, '\r');
+ PyUnicode_WRITE(kind, out, 0, '\r');
memcpy(out + kind, PyUnicode_DATA(output), kind * output_len);
Py_DECREF(output);
output = modified; /* output remains ready */
@@ -369,7 +369,7 @@ _PyIncrementalNewlineDecoder_decode(PyObject *myself,
/* Record which newlines are read and do newline translation if desired,
all in one pass. */
{
- const void *in_str;
+ const void *in_str;
Py_ssize_t len;
int seennl = self->seennl;
int only_lf = 0;
@@ -449,7 +449,7 @@ _PyIncrementalNewlineDecoder_decode(PyObject *myself,
else {
void *translated;
int kind = PyUnicode_KIND(output);
- const void *in_str = PyUnicode_DATA(output);
+ const void *in_str = PyUnicode_DATA(output);
Py_ssize_t in, out;
/* XXX: Previous in-place translation here is disabled as
resizing is not possible anymore */
@@ -529,8 +529,8 @@ _io_IncrementalNewlineDecoder_getstate_impl(nldecoder_object *self)
unsigned long long flag;
if (self->decoder != Py_None) {
- PyObject *state = PyObject_CallMethodNoArgs(self->decoder,
- _PyIO_str_getstate);
+ PyObject *state = PyObject_CallMethodNoArgs(self->decoder,
+ _PyIO_str_getstate);
if (state == NULL)
return NULL;
if (!PyTuple_Check(state)) {
@@ -603,7 +603,7 @@ _io_IncrementalNewlineDecoder_reset_impl(nldecoder_object *self)
self->seennl = 0;
self->pendingcr = 0;
if (self->decoder != Py_None)
- return PyObject_CallMethodNoArgs(self->decoder, _PyIO_str_reset);
+ return PyObject_CallMethodNoArgs(self->decoder, _PyIO_str_reset);
else
Py_RETURN_NONE;
}
@@ -675,8 +675,8 @@ typedef struct
*/
PyObject *decoded_chars; /* buffer for text returned from decoder */
Py_ssize_t decoded_chars_used; /* offset into _decoded_chars for read() */
- PyObject *pending_bytes; // data waiting to be written.
- // ascii unicode, bytes, or list of them.
+ PyObject *pending_bytes; // data waiting to be written.
+ // ascii unicode, bytes, or list of them.
Py_ssize_t pending_bytes_count;
/* snapshot is either NULL, or a tuple (dec_flags, next_input) where
@@ -778,15 +778,15 @@ latin1_encode(textio *self, PyObject *text)
return _PyUnicode_AsLatin1String(text, PyUnicode_AsUTF8(self->errors));
}
-// Return true when encoding can be skipped when text is ascii.
-static inline int
-is_asciicompat_encoding(encodefunc_t f)
-{
- return f == (encodefunc_t) ascii_encode
- || f == (encodefunc_t) latin1_encode
- || f == (encodefunc_t) utf8_encode;
-}
-
+// Return true when encoding can be skipped when text is ascii.
+static inline int
+is_asciicompat_encoding(encodefunc_t f)
+{
+ return f == (encodefunc_t) ascii_encode
+ || f == (encodefunc_t) latin1_encode
+ || f == (encodefunc_t) utf8_encode;
+}
+
/* Map normalized encoding names onto the specialized encoding funcs */
typedef struct {
@@ -864,7 +864,7 @@ _textiowrapper_set_decoder(textio *self, PyObject *codec_info,
PyObject *res;
int r;
- res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_readable);
+ res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_readable);
if (res == NULL)
return -1;
@@ -882,9 +882,9 @@ _textiowrapper_set_decoder(textio *self, PyObject *codec_info,
return -1;
if (self->readuniversal) {
- PyObject *incrementalDecoder = PyObject_CallFunctionObjArgs(
+ PyObject *incrementalDecoder = PyObject_CallFunctionObjArgs(
(PyObject *)&PyIncrementalNewlineDecoder_Type,
- self->decoder, self->readtranslate ? Py_True : Py_False, NULL);
+ self->decoder, self->readtranslate ? Py_True : Py_False, NULL);
if (incrementalDecoder == NULL)
return -1;
Py_CLEAR(self->decoder);
@@ -899,7 +899,7 @@ _textiowrapper_decode(PyObject *decoder, PyObject *bytes, int eof)
{
PyObject *chars;
- if (Py_IS_TYPE(decoder, &PyIncrementalNewlineDecoder_Type))
+ if (Py_IS_TYPE(decoder, &PyIncrementalNewlineDecoder_Type))
chars = _PyIncrementalNewlineDecoder_decode(decoder, bytes, eof);
else
chars = PyObject_CallMethodObjArgs(decoder, _PyIO_str_decode, bytes,
@@ -919,7 +919,7 @@ _textiowrapper_set_encoder(textio *self, PyObject *codec_info,
PyObject *res;
int r;
- res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_writable);
+ res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_writable);
if (res == NULL)
return -1;
@@ -965,8 +965,8 @@ _textiowrapper_fix_encoder_state(textio *self)
self->encoding_start_of_stream = 1;
- PyObject *cookieObj = PyObject_CallMethodNoArgs(
- self->buffer, _PyIO_str_tell);
+ PyObject *cookieObj = PyObject_CallMethodNoArgs(
+ self->buffer, _PyIO_str_tell);
if (cookieObj == NULL) {
return -1;
}
@@ -979,8 +979,8 @@ _textiowrapper_fix_encoder_state(textio *self)
if (cmp == 0) {
self->encoding_start_of_stream = 0;
- PyObject *res = PyObject_CallMethodOneArg(
- self->encoder, _PyIO_str_setstate, _PyLong_Zero);
+ PyObject *res = PyObject_CallMethodOneArg(
+ self->encoder, _PyIO_str_setstate, _PyLong_Zero);
if (res == NULL) {
return -1;
}
@@ -990,52 +990,52 @@ _textiowrapper_fix_encoder_state(textio *self)
return 0;
}
-static int
-io_check_errors(PyObject *errors)
-{
- assert(errors != NULL && errors != Py_None);
-
- PyInterpreterState *interp = _PyInterpreterState_GET();
-#ifndef Py_DEBUG
- /* In release mode, only check in development mode (-X dev) */
- if (!_PyInterpreterState_GetConfig(interp)->dev_mode) {
- return 0;
- }
-#else
- /* Always check in debug mode */
-#endif
-
- /* Avoid calling PyCodec_LookupError() before the codec registry is ready:
- before_PyUnicode_InitEncodings() is called. */
- if (!interp->unicode.fs_codec.encoding) {
- return 0;
- }
-
- Py_ssize_t name_length;
- const char *name = PyUnicode_AsUTF8AndSize(errors, &name_length);
- if (name == NULL) {
- return -1;
- }
- if (strlen(name) != (size_t)name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character in errors");
- return -1;
- }
- PyObject *handler = PyCodec_LookupError(name);
- if (handler != NULL) {
- Py_DECREF(handler);
- return 0;
- }
- return -1;
-}
-
-
-
+static int
+io_check_errors(PyObject *errors)
+{
+ assert(errors != NULL && errors != Py_None);
+
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+#ifndef Py_DEBUG
+ /* In release mode, only check in development mode (-X dev) */
+ if (!_PyInterpreterState_GetConfig(interp)->dev_mode) {
+ return 0;
+ }
+#else
+ /* Always check in debug mode */
+#endif
+
+ /* Avoid calling PyCodec_LookupError() before the codec registry is ready:
+ before_PyUnicode_InitEncodings() is called. */
+ if (!interp->unicode.fs_codec.encoding) {
+ return 0;
+ }
+
+ Py_ssize_t name_length;
+ const char *name = PyUnicode_AsUTF8AndSize(errors, &name_length);
+ if (name == NULL) {
+ return -1;
+ }
+ if (strlen(name) != (size_t)name_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character in errors");
+ return -1;
+ }
+ PyObject *handler = PyCodec_LookupError(name);
+ if (handler != NULL) {
+ Py_DECREF(handler);
+ return 0;
+ }
+ return -1;
+}
+
+
+
/*[clinic input]
_io.TextIOWrapper.__init__
buffer: object
- encoding: str(accept={str, NoneType}) = None
+ encoding: str(accept={str, NoneType}) = None
errors: object = None
- newline: str(accept={str, NoneType}) = None
+ newline: str(accept={str, NoneType}) = None
line_buffering: bool(accept={int}) = False
write_through: bool(accept={int}) = False
@@ -1074,7 +1074,7 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
const char *encoding, PyObject *errors,
const char *newline, int line_buffering,
int write_through)
-/*[clinic end generated code: output=72267c0c01032ed2 input=77d8696d1a1f460b]*/
+/*[clinic end generated code: output=72267c0c01032ed2 input=77d8696d1a1f460b]*/
{
PyObject *raw, *codec_info = NULL;
_PyIO_State *state = NULL;
@@ -1096,12 +1096,12 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
PyErr_Format(
PyExc_TypeError,
"TextIOWrapper() argument 'errors' must be str or None, not %.50s",
- Py_TYPE(errors)->tp_name);
+ Py_TYPE(errors)->tp_name);
+ return -1;
+ }
+ else if (io_check_errors(errors)) {
return -1;
}
- else if (io_check_errors(errors)) {
- return -1;
- }
if (validate_newline(newline) < 0) {
return -1;
@@ -1128,7 +1128,7 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
state = IO_STATE();
if (state == NULL)
goto error;
- fileno = _PyObject_CallMethodIdNoArgs(buffer, &PyId_fileno);
+ fileno = _PyObject_CallMethodIdNoArgs(buffer, &PyId_fileno);
/* Ignore only AttributeError and UnsupportedOperation */
if (fileno == NULL) {
if (PyErr_ExceptionMatches(PyExc_AttributeError) ||
@@ -1157,8 +1157,8 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
PyObject *locale_module = _PyIO_get_locale_module(state);
if (locale_module == NULL)
goto catch_ImportError;
- self->encoding = _PyObject_CallMethodIdOneArg(
- locale_module, &PyId_getpreferredencoding, Py_False);
+ self->encoding = _PyObject_CallMethodIdOneArg(
+ locale_module, &PyId_getpreferredencoding, Py_False);
Py_DECREF(locale_module);
if (self->encoding == NULL) {
catch_ImportError:
@@ -1228,22 +1228,22 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
/* Finished sorting out the codec details */
Py_CLEAR(codec_info);
- if (Py_IS_TYPE(buffer, &PyBufferedReader_Type) ||
- Py_IS_TYPE(buffer, &PyBufferedWriter_Type) ||
- Py_IS_TYPE(buffer, &PyBufferedRandom_Type))
+ if (Py_IS_TYPE(buffer, &PyBufferedReader_Type) ||
+ Py_IS_TYPE(buffer, &PyBufferedWriter_Type) ||
+ Py_IS_TYPE(buffer, &PyBufferedRandom_Type))
{
if (_PyObject_LookupAttrId(buffer, &PyId_raw, &raw) < 0)
goto error;
/* Cache the raw FileIO object to speed up 'closed' checks */
if (raw != NULL) {
- if (Py_IS_TYPE(raw, &PyFileIO_Type))
+ if (Py_IS_TYPE(raw, &PyFileIO_Type))
self->raw = raw;
else
Py_DECREF(raw);
}
}
- res = _PyObject_CallMethodIdNoArgs(buffer, &PyId_seekable);
+ res = _PyObject_CallMethodIdNoArgs(buffer, &PyId_seekable);
if (res == NULL)
goto error;
r = PyObject_IsTrue(res);
@@ -1388,7 +1388,7 @@ _io_TextIOWrapper_reconfigure_impl(textio *self, PyObject *encoding,
return NULL;
}
- PyObject *res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
+ PyObject *res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
if (res == NULL) {
return NULL;
}
@@ -1468,7 +1468,7 @@ textiowrapper_closed_get(textio *self, void *context);
do { \
int r; \
PyObject *_res; \
- if (Py_IS_TYPE(self, &PyTextIOWrapper_Type)) { \
+ if (Py_IS_TYPE(self, &PyTextIOWrapper_Type)) { \
if (self->raw != NULL) \
r = _PyFileIO_closed(self->raw); \
else { \
@@ -1527,7 +1527,7 @@ _io_TextIOWrapper_detach_impl(textio *self)
{
PyObject *buffer, *res;
CHECK_ATTACHED(self);
- res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
+ res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
if (res == NULL)
return NULL;
Py_DECREF(res);
@@ -1545,65 +1545,65 @@ _textiowrapper_writeflush(textio *self)
if (self->pending_bytes == NULL)
return 0;
- PyObject *pending = self->pending_bytes;
- PyObject *b;
-
- if (PyBytes_Check(pending)) {
- b = pending;
- Py_INCREF(b);
- }
- else if (PyUnicode_Check(pending)) {
- assert(PyUnicode_IS_ASCII(pending));
- assert(PyUnicode_GET_LENGTH(pending) == self->pending_bytes_count);
- b = PyBytes_FromStringAndSize(
- PyUnicode_DATA(pending), PyUnicode_GET_LENGTH(pending));
- if (b == NULL) {
- return -1;
- }
- }
- else {
- assert(PyList_Check(pending));
- b = PyBytes_FromStringAndSize(NULL, self->pending_bytes_count);
- if (b == NULL) {
- return -1;
- }
-
- char *buf = PyBytes_AsString(b);
- Py_ssize_t pos = 0;
-
- for (Py_ssize_t i = 0; i < PyList_GET_SIZE(pending); i++) {
- PyObject *obj = PyList_GET_ITEM(pending, i);
- char *src;
- Py_ssize_t len;
- if (PyUnicode_Check(obj)) {
- assert(PyUnicode_IS_ASCII(obj));
- src = PyUnicode_DATA(obj);
- len = PyUnicode_GET_LENGTH(obj);
- }
- else {
- assert(PyBytes_Check(obj));
- if (PyBytes_AsStringAndSize(obj, &src, &len) < 0) {
- Py_DECREF(b);
- return -1;
- }
- }
- memcpy(buf + pos, src, len);
- pos += len;
- }
- assert(pos == self->pending_bytes_count);
- }
-
+ PyObject *pending = self->pending_bytes;
+ PyObject *b;
+
+ if (PyBytes_Check(pending)) {
+ b = pending;
+ Py_INCREF(b);
+ }
+ else if (PyUnicode_Check(pending)) {
+ assert(PyUnicode_IS_ASCII(pending));
+ assert(PyUnicode_GET_LENGTH(pending) == self->pending_bytes_count);
+ b = PyBytes_FromStringAndSize(
+ PyUnicode_DATA(pending), PyUnicode_GET_LENGTH(pending));
+ if (b == NULL) {
+ return -1;
+ }
+ }
+ else {
+ assert(PyList_Check(pending));
+ b = PyBytes_FromStringAndSize(NULL, self->pending_bytes_count);
+ if (b == NULL) {
+ return -1;
+ }
+
+ char *buf = PyBytes_AsString(b);
+ Py_ssize_t pos = 0;
+
+ for (Py_ssize_t i = 0; i < PyList_GET_SIZE(pending); i++) {
+ PyObject *obj = PyList_GET_ITEM(pending, i);
+ char *src;
+ Py_ssize_t len;
+ if (PyUnicode_Check(obj)) {
+ assert(PyUnicode_IS_ASCII(obj));
+ src = PyUnicode_DATA(obj);
+ len = PyUnicode_GET_LENGTH(obj);
+ }
+ else {
+ assert(PyBytes_Check(obj));
+ if (PyBytes_AsStringAndSize(obj, &src, &len) < 0) {
+ Py_DECREF(b);
+ return -1;
+ }
+ }
+ memcpy(buf + pos, src, len);
+ pos += len;
+ }
+ assert(pos == self->pending_bytes_count);
+ }
+
self->pending_bytes_count = 0;
- self->pending_bytes = NULL;
- Py_DECREF(pending);
+ self->pending_bytes = NULL;
+ Py_DECREF(pending);
- PyObject *ret;
+ PyObject *ret;
do {
- ret = PyObject_CallMethodOneArg(self->buffer, _PyIO_str_write, b);
+ ret = PyObject_CallMethodOneArg(self->buffer, _PyIO_str_write, b);
} while (ret == NULL && _PyIO_trap_eintr());
Py_DECREF(b);
- // NOTE: We cleared buffer but we don't know how many bytes are actually written
- // when an error occurred.
+ // NOTE: We cleared buffer but we don't know how many bytes are actually written
+ // when an error occurred.
if (ret == NULL)
return -1;
Py_DECREF(ret);
@@ -1661,26 +1661,26 @@ _io_TextIOWrapper_write_impl(textio *self, PyObject *text)
/* XXX What if we were just reading? */
if (self->encodefunc != NULL) {
- if (PyUnicode_IS_ASCII(text) &&
- // See bpo-43260
- PyUnicode_GET_LENGTH(text) <= self->chunk_size &&
- is_asciicompat_encoding(self->encodefunc)) {
- b = text;
- Py_INCREF(b);
- }
- else {
- b = (*self->encodefunc)((PyObject *) self, text);
- }
+ if (PyUnicode_IS_ASCII(text) &&
+ // See bpo-43260
+ PyUnicode_GET_LENGTH(text) <= self->chunk_size &&
+ is_asciicompat_encoding(self->encodefunc)) {
+ b = text;
+ Py_INCREF(b);
+ }
+ else {
+ b = (*self->encodefunc)((PyObject *) self, text);
+ }
self->encoding_start_of_stream = 0;
}
- else {
- b = PyObject_CallMethodOneArg(self->encoder, _PyIO_str_encode, text);
- }
-
+ else {
+ b = PyObject_CallMethodOneArg(self->encoder, _PyIO_str_encode, text);
+ }
+
Py_DECREF(text);
if (b == NULL)
return NULL;
- if (b != text && !PyBytes_Check(b)) {
+ if (b != text && !PyBytes_Check(b)) {
PyErr_Format(PyExc_TypeError,
"encoder should return a bytes object, not '%.200s'",
Py_TYPE(b)->tp_name);
@@ -1688,53 +1688,53 @@ _io_TextIOWrapper_write_impl(textio *self, PyObject *text)
return NULL;
}
- Py_ssize_t bytes_len;
- if (b == text) {
- bytes_len = PyUnicode_GET_LENGTH(b);
- }
- else {
- bytes_len = PyBytes_GET_SIZE(b);
- }
-
+ Py_ssize_t bytes_len;
+ if (b == text) {
+ bytes_len = PyUnicode_GET_LENGTH(b);
+ }
+ else {
+ bytes_len = PyBytes_GET_SIZE(b);
+ }
+
if (self->pending_bytes == NULL) {
- self->pending_bytes_count = 0;
- self->pending_bytes = b;
- }
- else if (self->pending_bytes_count + bytes_len > self->chunk_size) {
- // Prevent to concatenate more than chunk_size data.
- if (_textiowrapper_writeflush(self) < 0) {
- Py_DECREF(b);
- return NULL;
- }
- self->pending_bytes = b;
- }
- else if (!PyList_CheckExact(self->pending_bytes)) {
- PyObject *list = PyList_New(2);
- if (list == NULL) {
+ self->pending_bytes_count = 0;
+ self->pending_bytes = b;
+ }
+ else if (self->pending_bytes_count + bytes_len > self->chunk_size) {
+ // Prevent to concatenate more than chunk_size data.
+ if (_textiowrapper_writeflush(self) < 0) {
Py_DECREF(b);
return NULL;
}
- PyList_SET_ITEM(list, 0, self->pending_bytes);
- PyList_SET_ITEM(list, 1, b);
- self->pending_bytes = list;
+ self->pending_bytes = b;
}
- else {
- if (PyList_Append(self->pending_bytes, b) < 0) {
- Py_DECREF(b);
- return NULL;
- }
+ else if (!PyList_CheckExact(self->pending_bytes)) {
+ PyObject *list = PyList_New(2);
+ if (list == NULL) {
+ Py_DECREF(b);
+ return NULL;
+ }
+ PyList_SET_ITEM(list, 0, self->pending_bytes);
+ PyList_SET_ITEM(list, 1, b);
+ self->pending_bytes = list;
+ }
+ else {
+ if (PyList_Append(self->pending_bytes, b) < 0) {
+ Py_DECREF(b);
+ return NULL;
+ }
Py_DECREF(b);
}
-
- self->pending_bytes_count += bytes_len;
- if (self->pending_bytes_count >= self->chunk_size || needflush ||
+
+ self->pending_bytes_count += bytes_len;
+ if (self->pending_bytes_count >= self->chunk_size || needflush ||
text_needflush) {
if (_textiowrapper_writeflush(self) < 0)
return NULL;
}
if (needflush) {
- ret = PyObject_CallMethodNoArgs(self->buffer, _PyIO_str_flush);
+ ret = PyObject_CallMethodNoArgs(self->buffer, _PyIO_str_flush);
if (ret == NULL)
return NULL;
Py_DECREF(ret);
@@ -1744,7 +1744,7 @@ _io_TextIOWrapper_write_impl(textio *self, PyObject *text)
Py_CLEAR(self->snapshot);
if (self->decoder) {
- ret = _PyObject_CallMethodIdNoArgs(self->decoder, &PyId_reset);
+ ret = _PyObject_CallMethodIdNoArgs(self->decoder, &PyId_reset);
if (ret == NULL)
return NULL;
Py_DECREF(ret);
@@ -1824,8 +1824,8 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
/* To prepare for tell(), we need to snapshot a point in the file
* where the decoder's input buffer is empty.
*/
- PyObject *state = PyObject_CallMethodNoArgs(self->decoder,
- _PyIO_str_getstate);
+ PyObject *state = PyObject_CallMethodNoArgs(self->decoder,
+ _PyIO_str_getstate);
if (state == NULL)
return -1;
/* Given this, we know there was a valid snapshot point
@@ -1865,9 +1865,9 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
if (chunk_size == NULL)
goto fail;
- input_chunk = PyObject_CallMethodOneArg(self->buffer,
+ input_chunk = PyObject_CallMethodOneArg(self->buffer,
(self->has_read1 ? _PyIO_str_read1: _PyIO_str_read),
- chunk_size);
+ chunk_size);
Py_DECREF(chunk_size);
if (input_chunk == NULL)
goto fail;
@@ -1948,12 +1948,12 @@ _io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n)
if (n < 0) {
/* Read everything */
- PyObject *bytes = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_read);
+ PyObject *bytes = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_read);
PyObject *decoded;
if (bytes == NULL)
goto fail;
- if (Py_IS_TYPE(self->decoder, &PyIncrementalNewlineDecoder_Type))
+ if (Py_IS_TYPE(self->decoder, &PyIncrementalNewlineDecoder_Type))
decoded = _PyIncrementalNewlineDecoder_decode(self->decoder,
bytes, 1);
else
@@ -2041,7 +2041,7 @@ find_control_char(int kind, const char *s, const char *end, Py_UCS4 ch)
{
if (kind == PyUnicode_1BYTE_KIND) {
assert(ch < 256);
- return (char *) memchr((const void *) s, (char) ch, end - s);
+ return (char *) memchr((const void *) s, (char) ch, end - s);
}
for (;;) {
while (PyUnicode_READ(kind, s, 0) > ch)
@@ -2059,7 +2059,7 @@ _PyIO_find_line_ending(
int translated, int universal, PyObject *readnl,
int kind, const char *start, const char *end, Py_ssize_t *consumed)
{
- Py_ssize_t len = (end - start)/kind;
+ Py_ssize_t len = (end - start)/kind;
if (translated) {
/* Newlines are already translated, only search for \n */
@@ -2101,7 +2101,7 @@ _PyIO_find_line_ending(
else {
/* Non-universal mode. */
Py_ssize_t readnl_len = PyUnicode_GET_LENGTH(readnl);
- const Py_UCS1 *nl = PyUnicode_1BYTE_DATA(readnl);
+ const Py_UCS1 *nl = PyUnicode_1BYTE_DATA(readnl);
/* Assume that readnl is an ASCII character. */
assert(PyUnicode_KIND(readnl) == PyUnicode_1BYTE_KIND);
if (readnl_len == 1) {
@@ -2155,7 +2155,7 @@ _textiowrapper_readline(textio *self, Py_ssize_t limit)
chunked = 0;
while (1) {
- const char *ptr;
+ const char *ptr;
Py_ssize_t line_len;
int kind;
Py_ssize_t consumed = 0;
@@ -2409,7 +2409,7 @@ _textiowrapper_decoder_setstate(textio *self, cookie_type *cookie)
utf-16, that we are expecting a BOM).
*/
if (cookie->start_pos == 0 && cookie->dec_flags == 0)
- res = PyObject_CallMethodNoArgs(self->decoder, _PyIO_str_reset);
+ res = PyObject_CallMethodNoArgs(self->decoder, _PyIO_str_reset);
else
res = _PyObject_CallMethodId(self->decoder, &PyId_setstate,
"((yi))", "", cookie->dec_flags);
@@ -2424,12 +2424,12 @@ _textiowrapper_encoder_reset(textio *self, int start_of_stream)
{
PyObject *res;
if (start_of_stream) {
- res = PyObject_CallMethodNoArgs(self->encoder, _PyIO_str_reset);
+ res = PyObject_CallMethodNoArgs(self->encoder, _PyIO_str_reset);
self->encoding_start_of_stream = 1;
}
else {
- res = PyObject_CallMethodOneArg(self->encoder, _PyIO_str_setstate,
- _PyLong_Zero);
+ res = PyObject_CallMethodOneArg(self->encoder, _PyIO_str_setstate,
+ _PyLong_Zero);
self->encoding_start_of_stream = 0;
}
if (res == NULL)
@@ -2473,8 +2473,8 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
goto fail;
}
- switch (whence) {
- case SEEK_CUR:
+ switch (whence) {
+ case SEEK_CUR:
/* seek relative to current position */
cmp = PyObject_RichCompareBool(cookieObj, _PyLong_Zero, Py_EQ);
if (cmp < 0)
@@ -2489,12 +2489,12 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
* sync the underlying buffer with the current position.
*/
Py_DECREF(cookieObj);
- cookieObj = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_tell);
+ cookieObj = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_tell);
if (cookieObj == NULL)
goto fail;
- break;
-
- case SEEK_END:
+ break;
+
+ case SEEK_END:
/* seek relative to end of file */
cmp = PyObject_RichCompareBool(cookieObj, _PyLong_Zero, Py_EQ);
if (cmp < 0)
@@ -2505,7 +2505,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
goto fail;
}
- res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
+ res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
if (res == NULL)
goto fail;
Py_DECREF(res);
@@ -2513,7 +2513,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
textiowrapper_set_decoded_chars(self, NULL);
Py_CLEAR(self->snapshot);
if (self->decoder) {
- res = _PyObject_CallMethodIdNoArgs(self->decoder, &PyId_reset);
+ res = _PyObject_CallMethodIdNoArgs(self->decoder, &PyId_reset);
if (res == NULL)
goto fail;
Py_DECREF(res);
@@ -2532,14 +2532,14 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
}
}
return res;
-
- case SEEK_SET:
- break;
-
- default:
+
+ case SEEK_SET:
+ break;
+
+ default:
PyErr_Format(PyExc_ValueError,
- "invalid whence (%d, should be %d, %d or %d)", whence,
- SEEK_SET, SEEK_CUR, SEEK_END);
+ "invalid whence (%d, should be %d, %d or %d)", whence,
+ SEEK_SET, SEEK_CUR, SEEK_END);
goto fail;
}
@@ -2553,7 +2553,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
goto fail;
}
- res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
+ res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
if (res == NULL)
goto fail;
Py_DECREF(res);
@@ -2568,7 +2568,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
posobj = PyLong_FromOff_t(cookie.start_pos);
if (posobj == NULL)
goto fail;
- res = PyObject_CallMethodOneArg(self->buffer, _PyIO_str_seek, posobj);
+ res = PyObject_CallMethodOneArg(self->buffer, _PyIO_str_seek, posobj);
Py_DECREF(posobj);
if (res == NULL)
goto fail;
@@ -2607,8 +2607,8 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
}
Py_XSETREF(self->snapshot, snapshot);
- decoded = _PyObject_CallMethodIdObjArgs(self->decoder, &PyId_decode,
- input_chunk, cookie.need_eof ? Py_True : Py_False, NULL);
+ decoded = _PyObject_CallMethodIdObjArgs(self->decoder, &PyId_decode,
+ input_chunk, cookie.need_eof ? Py_True : Py_False, NULL);
if (check_decoded(decoded) < 0)
goto fail;
@@ -2656,7 +2656,7 @@ _io_TextIOWrapper_tell_impl(textio *self)
Py_ssize_t chars_to_skip, chars_decoded;
Py_ssize_t skip_bytes, skip_back;
PyObject *saved_state = NULL;
- const char *input, *input_end;
+ const char *input, *input_end;
Py_ssize_t dec_buffer_len;
int dec_flags;
@@ -2675,12 +2675,12 @@ _io_TextIOWrapper_tell_impl(textio *self)
if (_textiowrapper_writeflush(self) < 0)
return NULL;
- res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
+ res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
if (res == NULL)
goto fail;
Py_DECREF(res);
- posobj = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_tell);
+ posobj = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_tell);
if (posobj == NULL)
goto fail;
@@ -2716,15 +2716,15 @@ _io_TextIOWrapper_tell_impl(textio *self)
chars_to_skip = self->decoded_chars_used;
/* Decoder state will be restored at the end */
- saved_state = PyObject_CallMethodNoArgs(self->decoder,
- _PyIO_str_getstate);
+ saved_state = PyObject_CallMethodNoArgs(self->decoder,
+ _PyIO_str_getstate);
if (saved_state == NULL)
goto fail;
#define DECODER_GETSTATE() do { \
PyObject *dec_buffer; \
- PyObject *_state = PyObject_CallMethodNoArgs(self->decoder, \
- _PyIO_str_getstate); \
+ PyObject *_state = PyObject_CallMethodNoArgs(self->decoder, \
+ _PyIO_str_getstate); \
if (_state == NULL) \
goto fail; \
if (!PyTuple_Check(_state)) { \
@@ -2835,7 +2835,7 @@ _io_TextIOWrapper_tell_impl(textio *self)
if (input == input_end) {
/* We didn't get enough decoded data; signal EOF to get more. */
PyObject *decoded = _PyObject_CallMethodId(
- self->decoder, &PyId_decode, "yO", "", /* final = */ Py_True);
+ self->decoder, &PyId_decode, "yO", "", /* final = */ Py_True);
if (check_decoded(decoded) < 0)
goto fail;
chars_decoded += PyUnicode_GET_LENGTH(decoded);
@@ -2850,7 +2850,7 @@ _io_TextIOWrapper_tell_impl(textio *self)
}
finally:
- res = _PyObject_CallMethodIdOneArg(self->decoder, &PyId_setstate, saved_state);
+ res = _PyObject_CallMethodIdOneArg(self->decoder, &PyId_setstate, saved_state);
Py_DECREF(saved_state);
if (res == NULL)
return NULL;
@@ -2864,7 +2864,7 @@ fail:
if (saved_state) {
PyObject *type, *value, *traceback;
PyErr_Fetch(&type, &value, &traceback);
- res = _PyObject_CallMethodIdOneArg(self->decoder, &PyId_setstate, saved_state);
+ res = _PyObject_CallMethodIdOneArg(self->decoder, &PyId_setstate, saved_state);
_PyErr_ChainExceptions(type, value, traceback);
Py_DECREF(saved_state);
Py_XDECREF(res);
@@ -2886,12 +2886,12 @@ _io_TextIOWrapper_truncate_impl(textio *self, PyObject *pos)
CHECK_ATTACHED(self)
- res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
+ res = PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
if (res == NULL)
return NULL;
Py_DECREF(res);
- return PyObject_CallMethodOneArg(self->buffer, _PyIO_str_truncate, pos);
+ return PyObject_CallMethodOneArg(self->buffer, _PyIO_str_truncate, pos);
}
static PyObject *
@@ -2915,14 +2915,14 @@ textiowrapper_repr(textio *self)
}
goto error;
}
- if (_PyObject_LookupAttrId((PyObject *) self, &PyId_name, &nameobj) < 0) {
- if (!PyErr_ExceptionMatches(PyExc_ValueError)) {
+ if (_PyObject_LookupAttrId((PyObject *) self, &PyId_name, &nameobj) < 0) {
+ if (!PyErr_ExceptionMatches(PyExc_ValueError)) {
goto error;
- }
- /* Ignore ValueError raised if the underlying stream was detached */
- PyErr_Clear();
+ }
+ /* Ignore ValueError raised if the underlying stream was detached */
+ PyErr_Clear();
}
- if (nameobj != NULL) {
+ if (nameobj != NULL) {
s = PyUnicode_FromFormat(" name=%R", nameobj);
Py_DECREF(nameobj);
if (s == NULL)
@@ -2931,10 +2931,10 @@ textiowrapper_repr(textio *self)
if (res == NULL)
goto error;
}
- if (_PyObject_LookupAttrId((PyObject *) self, &PyId_mode, &modeobj) < 0) {
- goto error;
+ if (_PyObject_LookupAttrId((PyObject *) self, &PyId_mode, &modeobj) < 0) {
+ goto error;
}
- if (modeobj != NULL) {
+ if (modeobj != NULL) {
s = PyUnicode_FromFormat(" mode=%R", modeobj);
Py_DECREF(modeobj);
if (s == NULL)
@@ -2971,7 +2971,7 @@ _io_TextIOWrapper_fileno_impl(textio *self)
/*[clinic end generated code: output=21490a4c3da13e6c input=c488ca83d0069f9b]*/
{
CHECK_ATTACHED(self);
- return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_fileno);
+ return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_fileno);
}
/*[clinic input]
@@ -2983,7 +2983,7 @@ _io_TextIOWrapper_seekable_impl(textio *self)
/*[clinic end generated code: output=ab223dbbcffc0f00 input=8b005ca06e1fca13]*/
{
CHECK_ATTACHED(self);
- return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_seekable);
+ return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_seekable);
}
/*[clinic input]
@@ -2995,7 +2995,7 @@ _io_TextIOWrapper_readable_impl(textio *self)
/*[clinic end generated code: output=72ff7ba289a8a91b input=0704ea7e01b0d3eb]*/
{
CHECK_ATTACHED(self);
- return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_readable);
+ return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_readable);
}
/*[clinic input]
@@ -3007,7 +3007,7 @@ _io_TextIOWrapper_writable_impl(textio *self)
/*[clinic end generated code: output=a728c71790d03200 input=c41740bc9d8636e8]*/
{
CHECK_ATTACHED(self);
- return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_writable);
+ return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_writable);
}
/*[clinic input]
@@ -3019,7 +3019,7 @@ _io_TextIOWrapper_isatty_impl(textio *self)
/*[clinic end generated code: output=12be1a35bace882e input=fb68d9f2c99bbfff]*/
{
CHECK_ATTACHED(self);
- return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_isatty);
+ return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_isatty);
}
/*[clinic input]
@@ -3035,7 +3035,7 @@ _io_TextIOWrapper_flush_impl(textio *self)
self->telling = self->seekable;
if (_textiowrapper_writeflush(self) < 0)
return NULL;
- return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_flush);
+ return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_flush);
}
/*[clinic input]
@@ -3064,21 +3064,21 @@ _io_TextIOWrapper_close_impl(textio *self)
else {
PyObject *exc = NULL, *val, *tb;
if (self->finalizing) {
- res = _PyObject_CallMethodIdOneArg(self->buffer,
- &PyId__dealloc_warn,
- (PyObject *)self);
+ res = _PyObject_CallMethodIdOneArg(self->buffer,
+ &PyId__dealloc_warn,
+ (PyObject *)self);
if (res)
Py_DECREF(res);
else
PyErr_Clear();
}
- res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
+ res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
if (res == NULL)
PyErr_Fetch(&exc, &val, &tb);
else
Py_DECREF(res);
- res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_close);
+ res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_close);
if (exc != NULL) {
_PyErr_ChainExceptions(exc, val, tb);
Py_CLEAR(res);
@@ -3095,13 +3095,13 @@ textiowrapper_iternext(textio *self)
CHECK_ATTACHED(self);
self->telling = 0;
- if (Py_IS_TYPE(self, &PyTextIOWrapper_Type)) {
+ if (Py_IS_TYPE(self, &PyTextIOWrapper_Type)) {
/* Skip method call overhead for speed */
line = _textiowrapper_readline(self, -1);
}
else {
- line = PyObject_CallMethodNoArgs((PyObject *)self,
- _PyIO_str_readline);
+ line = PyObject_CallMethodNoArgs((PyObject *)self,
+ _PyIO_str_readline);
if (line && !PyUnicode_Check(line)) {
PyErr_Format(PyExc_OSError,
"readline() should have returned a str object, "
@@ -3209,10 +3209,10 @@ PyTypeObject PyIncrementalNewlineDecoder_Type = {
sizeof(nldecoder_object), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)incrementalnewlinedecoder_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -3293,10 +3293,10 @@ PyTypeObject PyTextIOWrapper_Type = {
sizeof(textio), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)textiowrapper_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tps_etattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)textiowrapper_repr,/*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -3308,7 +3308,7 @@ PyTypeObject PyTextIOWrapper_Type = {
0, /*tp_setattro*/
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+ | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
_io_TextIOWrapper___init____doc__, /* tp_doc */
(traverseproc)textiowrapper_traverse, /* tp_traverse */
(inquiry)textiowrapper_clear, /* tp_clear */
diff --git a/contrib/tools/python3/src/Modules/_io/winconsoleio.c b/contrib/tools/python3/src/Modules/_io/winconsoleio.c
index b243e5380c..a83ef37a1f 100644
--- a/contrib/tools/python3/src/Modules/_io/winconsoleio.c
+++ b/contrib/tools/python3/src/Modules/_io/winconsoleio.c
@@ -8,11 +8,11 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_object.h"
+#include "pycore_object.h"
#ifdef MS_WINDOWS
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -204,8 +204,8 @@ _io__WindowsConsoleIO_close_impl(winconsoleio *self)
PyObject *exc, *val, *tb;
int rc;
_Py_IDENTIFIER(close);
- res = _PyObject_CallMethodIdOneArg((PyObject*)&PyRawIOBase_Type,
- &PyId_close, (PyObject*)self);
+ res = _PyObject_CallMethodIdOneArg((PyObject*)&PyRawIOBase_Type,
+ &PyId_close, (PyObject*)self);
if (!self->closehandle) {
self->handle = INVALID_HANDLE_VALUE;
return res;
@@ -557,7 +557,7 @@ read_console_w(HANDLE handle, DWORD maxlen, DWORD *readlen) {
Py_BEGIN_ALLOW_THREADS
DWORD off = 0;
while (off < maxlen) {
- DWORD n = (DWORD)-1;
+ DWORD n = (DWORD)-1;
DWORD len = min(maxlen - off, BUFSIZ);
SetLastError(0);
BOOL res = ReadConsoleW(handle, &buf[off], len, &n, NULL);
@@ -725,7 +725,7 @@ readinto(winconsoleio *self, char *buf, Py_ssize_t len)
if (u8n) {
PyErr_Format(PyExc_SystemError,
- "Buffer had room for %zd bytes but %u bytes required",
+ "Buffer had room for %zd bytes but %u bytes required",
len, u8n);
return -1;
}
@@ -1118,10 +1118,10 @@ PyTypeObject PyWindowsConsoleIO_Type = {
sizeof(winconsoleio),
0,
(destructor)winconsoleio_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)winconsoleio_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1133,7 +1133,7 @@ PyTypeObject PyWindowsConsoleIO_Type = {
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE
- | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ | Py_TPFLAGS_HAVE_GC, /* tp_flags */
_io__WindowsConsoleIO___init____doc__, /* tp_doc */
(traverseproc)winconsoleio_traverse, /* tp_traverse */
(inquiry)winconsoleio_clear, /* tp_clear */
@@ -1164,6 +1164,6 @@ PyTypeObject PyWindowsConsoleIO_Type = {
0, /* tp_finalize */
};
-PyObject * _PyWindowsConsoleIO_Type = (PyObject*)&PyWindowsConsoleIO_Type;
+PyObject * _PyWindowsConsoleIO_Type = (PyObject*)&PyWindowsConsoleIO_Type;
#endif /* MS_WINDOWS */
diff --git a/contrib/tools/python3/src/Modules/_json.c b/contrib/tools/python3/src/Modules/_json.c
index e7de8236b9..faa3944eed 100644
--- a/contrib/tools/python3/src/Modules/_json.c
+++ b/contrib/tools/python3/src/Modules/_json.c
@@ -1,29 +1,29 @@
-/* JSON accelerator C extensor: _json module.
- *
- * It is built as a built-in module (Py_BUILD_CORE_BUILTIN define) on Windows
- * and as an extension module (Py_BUILD_CORE_MODULE define) on other
- * platforms. */
-
-#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
-# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
+/* JSON accelerator C extensor: _json module.
+ *
+ * It is built as a built-in module (Py_BUILD_CORE_BUILTIN define) on Windows
+ * and as an extension module (Py_BUILD_CORE_MODULE define) on other
+ * platforms. */
+
+#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
+# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
#endif
#include "Python.h"
-#include "structmember.h" // PyMemberDef
-#include "pycore_accu.h"
+#include "structmember.h" // PyMemberDef
+#include "pycore_accu.h"
-typedef struct {
- PyObject *PyScannerType;
- PyObject *PyEncoderType;
-} _jsonmodulestate;
+typedef struct {
+ PyObject *PyScannerType;
+ PyObject *PyEncoderType;
+} _jsonmodulestate;
-static inline _jsonmodulestate*
-get_json_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_jsonmodulestate *)state;
-}
+static inline _jsonmodulestate*
+get_json_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_jsonmodulestate *)state;
+}
typedef struct _PyScannerObject {
@@ -78,7 +78,7 @@ static PyMemberDef encoder_members[] = {
static PyObject *
ascii_escape_unicode(PyObject *pystr);
static PyObject *
-py_encode_basestring_ascii(PyObject* Py_UNUSED(self), PyObject *pystr);
+py_encode_basestring_ascii(PyObject* Py_UNUSED(self), PyObject *pystr);
void init_json(void);
static PyObject *
scan_once_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_t *next_idx_ptr);
@@ -89,13 +89,13 @@ scanner_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
static void
scanner_dealloc(PyObject *self);
static int
-scanner_clear(PyScannerObject *self);
+scanner_clear(PyScannerObject *self);
static PyObject *
encoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
static void
encoder_dealloc(PyObject *self);
static int
-encoder_clear(PyEncoderObject *self);
+encoder_clear(PyEncoderObject *self);
static int
encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc, PyObject *seq, Py_ssize_t indent_level);
static int
@@ -159,8 +159,8 @@ ascii_escape_unicode(PyObject *pystr)
Py_ssize_t output_size;
Py_ssize_t chars;
PyObject *rval;
- const void *input;
- Py_UCS1 *output;
+ const void *input;
+ Py_UCS1 *output;
int kind;
if (PyUnicode_READY(pystr) == -1)
@@ -225,7 +225,7 @@ escape_unicode(PyObject *pystr)
Py_ssize_t output_size;
Py_ssize_t chars;
PyObject *rval;
- const void *input;
+ const void *input;
int kind;
Py_UCS4 maxchar;
@@ -393,10 +393,10 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next
if (PyUnicode_READY(pystr) == -1)
return 0;
- _PyUnicodeWriter writer;
- _PyUnicodeWriter_Init(&writer);
- writer.overallocate = 1;
-
+ _PyUnicodeWriter writer;
+ _PyUnicodeWriter_Init(&writer);
+ writer.overallocate = 1;
+
len = PyUnicode_GET_LENGTH(pystr);
buf = PyUnicode_DATA(pystr);
kind = PyUnicode_KIND(pystr);
@@ -407,42 +407,42 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next
}
while (1) {
/* Find the end of the string or the next escape */
- Py_UCS4 c;
- {
- // Use tight scope variable to help register allocation.
- Py_UCS4 d = 0;
- for (next = end; next < len; next++) {
- d = PyUnicode_READ(kind, buf, next);
- if (d == '"' || d == '\\') {
- break;
- }
- if (d <= 0x1f && strict) {
- raise_errmsg("Invalid control character at", pystr, next);
- goto bail;
- }
+ Py_UCS4 c;
+ {
+ // Use tight scope variable to help register allocation.
+ Py_UCS4 d = 0;
+ for (next = end; next < len; next++) {
+ d = PyUnicode_READ(kind, buf, next);
+ if (d == '"' || d == '\\') {
+ break;
+ }
+ if (d <= 0x1f && strict) {
+ raise_errmsg("Invalid control character at", pystr, next);
+ goto bail;
+ }
}
- c = d;
- }
-
- if (c == '"') {
- // Fast path for simple case.
- if (writer.buffer == NULL) {
- PyObject *ret = PyUnicode_Substring(pystr, end, next);
- if (ret == NULL) {
- goto bail;
- }
- *next_end_ptr = next + 1;;
- return ret;
+ c = d;
+ }
+
+ if (c == '"') {
+ // Fast path for simple case.
+ if (writer.buffer == NULL) {
+ PyObject *ret = PyUnicode_Substring(pystr, end, next);
+ if (ret == NULL) {
+ goto bail;
+ }
+ *next_end_ptr = next + 1;;
+ return ret;
}
}
- else if (c != '\\') {
+ else if (c != '\\') {
raise_errmsg("Unterminated string starting at", pystr, begin);
goto bail;
}
-
+
/* Pick up this chunk if it's not zero length */
if (next != end) {
- if (_PyUnicodeWriter_WriteSubstring(&writer, pystr, end, next) < 0) {
+ if (_PyUnicodeWriter_WriteSubstring(&writer, pystr, end, next) < 0) {
goto bail;
}
}
@@ -533,18 +533,18 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next
end -= 6;
}
}
- if (_PyUnicodeWriter_WriteChar(&writer, c) < 0) {
+ if (_PyUnicodeWriter_WriteChar(&writer, c) < 0) {
goto bail;
}
}
- rval = _PyUnicodeWriter_Finish(&writer);
+ rval = _PyUnicodeWriter_Finish(&writer);
*next_end_ptr = end;
return rval;
-
+
bail:
*next_end_ptr = -1;
- _PyUnicodeWriter_Dealloc(&writer);
+ _PyUnicodeWriter_Dealloc(&writer);
return NULL;
}
@@ -562,7 +562,7 @@ PyDoc_STRVAR(pydoc_scanstring,
);
static PyObject *
-py_scanstring(PyObject* Py_UNUSED(self), PyObject *args)
+py_scanstring(PyObject* Py_UNUSED(self), PyObject *args)
{
PyObject *pystr;
PyObject *rval;
@@ -591,7 +591,7 @@ PyDoc_STRVAR(pydoc_encode_basestring_ascii,
);
static PyObject *
-py_encode_basestring_ascii(PyObject* Py_UNUSED(self), PyObject *pystr)
+py_encode_basestring_ascii(PyObject* Py_UNUSED(self), PyObject *pystr)
{
PyObject *rval;
/* Return an ASCII-only JSON representation of a Python string */
@@ -616,7 +616,7 @@ PyDoc_STRVAR(pydoc_encode_basestring,
);
static PyObject *
-py_encode_basestring(PyObject* Py_UNUSED(self), PyObject *pystr)
+py_encode_basestring(PyObject* Py_UNUSED(self), PyObject *pystr)
{
PyObject *rval;
/* Return a JSON representation of a Python string */
@@ -636,36 +636,36 @@ py_encode_basestring(PyObject* Py_UNUSED(self), PyObject *pystr)
static void
scanner_dealloc(PyObject *self)
{
- PyTypeObject *tp = Py_TYPE(self);
+ PyTypeObject *tp = Py_TYPE(self);
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(self);
- scanner_clear((PyScannerObject *)self);
- tp->tp_free(self);
- Py_DECREF(tp);
+ scanner_clear((PyScannerObject *)self);
+ tp->tp_free(self);
+ Py_DECREF(tp);
}
static int
-scanner_traverse(PyScannerObject *self, visitproc visit, void *arg)
+scanner_traverse(PyScannerObject *self, visitproc visit, void *arg)
{
- Py_VISIT(Py_TYPE(self));
- Py_VISIT(self->object_hook);
- Py_VISIT(self->object_pairs_hook);
- Py_VISIT(self->parse_float);
- Py_VISIT(self->parse_int);
- Py_VISIT(self->parse_constant);
- Py_VISIT(self->memo);
+ Py_VISIT(Py_TYPE(self));
+ Py_VISIT(self->object_hook);
+ Py_VISIT(self->object_pairs_hook);
+ Py_VISIT(self->parse_float);
+ Py_VISIT(self->parse_int);
+ Py_VISIT(self->parse_constant);
+ Py_VISIT(self->memo);
return 0;
}
static int
-scanner_clear(PyScannerObject *self)
+scanner_clear(PyScannerObject *self)
{
- Py_CLEAR(self->object_hook);
- Py_CLEAR(self->object_pairs_hook);
- Py_CLEAR(self->parse_float);
- Py_CLEAR(self->parse_int);
- Py_CLEAR(self->parse_constant);
- Py_CLEAR(self->memo);
+ Py_CLEAR(self->object_hook);
+ Py_CLEAR(self->object_pairs_hook);
+ Py_CLEAR(self->parse_float);
+ Py_CLEAR(self->parse_int);
+ Py_CLEAR(self->parse_constant);
+ Py_CLEAR(self->memo);
return 0;
}
@@ -679,7 +679,7 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
Returns a new PyObject (usually a dict, but object_hook can change that)
*/
- const void *str;
+ const void *str;
int kind;
Py_ssize_t end_idx;
PyObject *val = NULL;
@@ -718,13 +718,13 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
key = scanstring_unicode(pystr, idx + 1, s->strict, &next_idx);
if (key == NULL)
goto bail;
- memokey = PyDict_SetDefault(s->memo, key, key);
- if (memokey == NULL) {
- goto bail;
- }
- Py_INCREF(memokey);
- Py_DECREF(key);
- key = memokey;
+ memokey = PyDict_SetDefault(s->memo, key, key);
+ if (memokey == NULL) {
+ goto bail;
+ }
+ Py_INCREF(memokey);
+ Py_DECREF(key);
+ key = memokey;
idx = next_idx;
/* skip whitespace between key and : delimiter, read :, skip whitespace */
@@ -781,14 +781,14 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
*next_idx_ptr = idx + 1;
if (has_pairs_hook) {
- val = PyObject_CallOneArg(s->object_pairs_hook, rval);
+ val = PyObject_CallOneArg(s->object_pairs_hook, rval);
Py_DECREF(rval);
return val;
}
/* if object_hook is not None: rval = object_hook(rval) */
if (s->object_hook != Py_None) {
- val = PyObject_CallOneArg(s->object_hook, rval);
+ val = PyObject_CallOneArg(s->object_hook, rval);
Py_DECREF(rval);
return val;
}
@@ -809,7 +809,7 @@ _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssi
Returns a new PyList
*/
- const void *str;
+ const void *str;
int kind;
Py_ssize_t end_idx;
PyObject *val = NULL;
@@ -894,7 +894,7 @@ _parse_constant(PyScannerObject *s, const char *constant, Py_ssize_t idx, Py_ssi
return NULL;
/* rval = parse_constant(constant) */
- rval = PyObject_CallOneArg(s->parse_constant, cstr);
+ rval = PyObject_CallOneArg(s->parse_constant, cstr);
idx += PyUnicode_GET_LENGTH(cstr);
Py_DECREF(cstr);
*next_idx_ptr = idx;
@@ -912,7 +912,7 @@ _match_number_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t start, Py_
PyLong, or PyFloat.
May return other types if parse_int or parse_float are set
*/
- const void *str;
+ const void *str;
int kind;
Py_ssize_t end_idx;
Py_ssize_t idx = start;
@@ -993,7 +993,7 @@ _match_number_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t start, Py_
idx - start);
if (numstr == NULL)
return NULL;
- rval = PyObject_CallOneArg(custom_func, numstr);
+ rval = PyObject_CallOneArg(custom_func, numstr);
}
else {
Py_ssize_t i, n;
@@ -1029,7 +1029,7 @@ scan_once_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_
Returns a new PyObject representation of the term.
*/
PyObject *res;
- const void *str;
+ const void *str;
int kind;
Py_ssize_t length;
@@ -1131,7 +1131,7 @@ scan_once_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_
}
static PyObject *
-scanner_call(PyScannerObject *self, PyObject *args, PyObject *kwds)
+scanner_call(PyScannerObject *self, PyObject *args, PyObject *kwds)
{
/* Python callable interface to scan_once_{str,unicode} */
PyObject *pystr;
@@ -1143,7 +1143,7 @@ scanner_call(PyScannerObject *self, PyObject *args, PyObject *kwds)
return NULL;
if (PyUnicode_Check(pystr)) {
- rval = scan_once_unicode(self, pystr, idx, &next_idx);
+ rval = scan_once_unicode(self, pystr, idx, &next_idx);
}
else {
PyErr_Format(PyExc_TypeError,
@@ -1151,7 +1151,7 @@ scanner_call(PyScannerObject *self, PyObject *args, PyObject *kwds)
Py_TYPE(pystr)->tp_name);
return NULL;
}
- PyDict_Clear(self->memo);
+ PyDict_Clear(self->memo);
if (rval == NULL)
return NULL;
return _build_rval_index_tuple(rval, next_idx);
@@ -1210,25 +1210,25 @@ bail:
PyDoc_STRVAR(scanner_doc, "JSON scanner object");
-static PyType_Slot PyScannerType_slots[] = {
- {Py_tp_doc, (void *)scanner_doc},
- {Py_tp_dealloc, scanner_dealloc},
- {Py_tp_call, scanner_call},
- {Py_tp_traverse, scanner_traverse},
- {Py_tp_clear, scanner_clear},
- {Py_tp_members, scanner_members},
- {Py_tp_new, scanner_new},
- {0, 0}
+static PyType_Slot PyScannerType_slots[] = {
+ {Py_tp_doc, (void *)scanner_doc},
+ {Py_tp_dealloc, scanner_dealloc},
+ {Py_tp_call, scanner_call},
+ {Py_tp_traverse, scanner_traverse},
+ {Py_tp_clear, scanner_clear},
+ {Py_tp_members, scanner_members},
+ {Py_tp_new, scanner_new},
+ {0, 0}
+};
+
+static PyType_Spec PyScannerType_spec = {
+ .name = "_json.Scanner",
+ .basicsize = sizeof(PyScannerObject),
+ .itemsize = 0,
+ .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ .slots = PyScannerType_slots,
};
-static PyType_Spec PyScannerType_spec = {
- .name = "_json.Scanner",
- .basicsize = sizeof(PyScannerObject),
- .itemsize = 0,
- .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- .slots = PyScannerType_slots,
-};
-
static PyObject *
encoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
@@ -1284,7 +1284,7 @@ encoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
}
static PyObject *
-encoder_call(PyEncoderObject *self, PyObject *args, PyObject *kwds)
+encoder_call(PyEncoderObject *self, PyObject *args, PyObject *kwds)
{
/* Python callable interface to encode_listencode_obj */
static char *kwlist[] = {"obj", "_current_indent_level", NULL};
@@ -1296,7 +1296,7 @@ encoder_call(PyEncoderObject *self, PyObject *args, PyObject *kwds)
return NULL;
if (_PyAccu_Init(&acc))
return NULL;
- if (encoder_listencode_obj(self, &acc, obj, indent_level)) {
+ if (encoder_listencode_obj(self, &acc, obj, indent_level)) {
_PyAccu_Destroy(&acc);
return NULL;
}
@@ -1372,7 +1372,7 @@ encoder_encode_string(PyEncoderObject *s, PyObject *obj)
if (s->fast_encode) {
return s->fast_encode(NULL, obj);
}
- encoded = PyObject_CallOneArg(s->encoder, obj);
+ encoded = PyObject_CallOneArg(s->encoder, obj);
if (encoded != NULL && !PyUnicode_Check(encoded)) {
PyErr_Format(PyExc_TypeError,
"encoder() must return a string, not %.80s",
@@ -1414,7 +1414,7 @@ encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc,
return _steal_accumulate(acc, encoded);
}
else if (PyLong_Check(obj)) {
- PyObject *encoded = PyLong_Type.tp_repr(obj);
+ PyObject *encoded = PyLong_Type.tp_repr(obj);
if (encoded == NULL)
return -1;
return _steal_accumulate(acc, encoded);
@@ -1458,7 +1458,7 @@ encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc,
return -1;
}
}
- newobj = PyObject_CallOneArg(s->defaultfn, obj);
+ newobj = PyObject_CallOneArg(s->defaultfn, obj);
if (newobj == NULL) {
Py_XDECREF(ident);
return -1;
@@ -1578,7 +1578,7 @@ encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc,
goto bail;
}
else if (PyLong_Check(key)) {
- kstr = PyLong_Type.tp_repr(key);
+ kstr = PyLong_Type.tp_repr(key);
if (kstr == NULL) {
goto bail;
}
@@ -1590,7 +1590,7 @@ encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc,
else {
PyErr_Format(PyExc_TypeError,
"keys must be str, int, float, bool or None, "
- "not %.100s", Py_TYPE(key)->tp_name);
+ "not %.100s", Py_TYPE(key)->tp_name);
goto bail;
}
@@ -1735,61 +1735,61 @@ bail:
static void
encoder_dealloc(PyObject *self)
{
- PyTypeObject *tp = Py_TYPE(self);
+ PyTypeObject *tp = Py_TYPE(self);
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(self);
- encoder_clear((PyEncoderObject *)self);
- tp->tp_free(self);
- Py_DECREF(tp);
+ encoder_clear((PyEncoderObject *)self);
+ tp->tp_free(self);
+ Py_DECREF(tp);
}
static int
-encoder_traverse(PyEncoderObject *self, visitproc visit, void *arg)
+encoder_traverse(PyEncoderObject *self, visitproc visit, void *arg)
{
- Py_VISIT(Py_TYPE(self));
- Py_VISIT(self->markers);
- Py_VISIT(self->defaultfn);
- Py_VISIT(self->encoder);
- Py_VISIT(self->indent);
- Py_VISIT(self->key_separator);
- Py_VISIT(self->item_separator);
+ Py_VISIT(Py_TYPE(self));
+ Py_VISIT(self->markers);
+ Py_VISIT(self->defaultfn);
+ Py_VISIT(self->encoder);
+ Py_VISIT(self->indent);
+ Py_VISIT(self->key_separator);
+ Py_VISIT(self->item_separator);
return 0;
}
static int
-encoder_clear(PyEncoderObject *self)
+encoder_clear(PyEncoderObject *self)
{
/* Deallocate Encoder */
- Py_CLEAR(self->markers);
- Py_CLEAR(self->defaultfn);
- Py_CLEAR(self->encoder);
- Py_CLEAR(self->indent);
- Py_CLEAR(self->key_separator);
- Py_CLEAR(self->item_separator);
+ Py_CLEAR(self->markers);
+ Py_CLEAR(self->defaultfn);
+ Py_CLEAR(self->encoder);
+ Py_CLEAR(self->indent);
+ Py_CLEAR(self->key_separator);
+ Py_CLEAR(self->item_separator);
return 0;
}
PyDoc_STRVAR(encoder_doc, "_iterencode(obj, _current_indent_level) -> iterable");
-static PyType_Slot PyEncoderType_slots[] = {
- {Py_tp_doc, (void *)encoder_doc},
- {Py_tp_dealloc, encoder_dealloc},
- {Py_tp_call, encoder_call},
- {Py_tp_traverse, encoder_traverse},
- {Py_tp_clear, encoder_clear},
- {Py_tp_members, encoder_members},
- {Py_tp_new, encoder_new},
- {0, 0}
+static PyType_Slot PyEncoderType_slots[] = {
+ {Py_tp_doc, (void *)encoder_doc},
+ {Py_tp_dealloc, encoder_dealloc},
+ {Py_tp_call, encoder_call},
+ {Py_tp_traverse, encoder_traverse},
+ {Py_tp_clear, encoder_clear},
+ {Py_tp_members, encoder_members},
+ {Py_tp_new, encoder_new},
+ {0, 0}
+};
+
+static PyType_Spec PyEncoderType_spec = {
+ .name = "_json.Encoder",
+ .basicsize = sizeof(PyEncoderObject),
+ .itemsize = 0,
+ .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ .slots = PyEncoderType_slots
};
-static PyType_Spec PyEncoderType_spec = {
- .name = "_json.Encoder",
- .basicsize = sizeof(PyEncoderObject),
- .itemsize = 0,
- .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- .slots = PyEncoderType_slots
-};
-
static PyMethodDef speedups_methods[] = {
{"encode_basestring_ascii",
(PyCFunction)py_encode_basestring_ascii,
@@ -1809,77 +1809,77 @@ static PyMethodDef speedups_methods[] = {
PyDoc_STRVAR(module_doc,
"json speedups\n");
-static int
-_json_exec(PyObject *module)
-{
- _jsonmodulestate *state = get_json_state(module);
-
- state->PyScannerType = PyType_FromSpec(&PyScannerType_spec);
- if (state->PyScannerType == NULL) {
- return -1;
- }
- Py_INCREF(state->PyScannerType);
- if (PyModule_AddObject(module, "make_scanner", state->PyScannerType) < 0) {
- Py_DECREF(state->PyScannerType);
- return -1;
- }
-
- state->PyEncoderType = PyType_FromSpec(&PyEncoderType_spec);
- if (state->PyEncoderType == NULL) {
- return -1;
- }
- Py_INCREF(state->PyEncoderType);
- if (PyModule_AddObject(module, "make_encoder", state->PyEncoderType) < 0) {
- Py_DECREF(state->PyEncoderType);
- return -1;
- }
-
- return 0;
-}
-
-static int
-_jsonmodule_traverse(PyObject *module, visitproc visit, void *arg)
-{
- _jsonmodulestate *state = get_json_state(module);
- Py_VISIT(state->PyScannerType);
- Py_VISIT(state->PyEncoderType);
- return 0;
-}
-
-static int
-_jsonmodule_clear(PyObject *module)
-{
- _jsonmodulestate *state = get_json_state(module);
- Py_CLEAR(state->PyScannerType);
- Py_CLEAR(state->PyEncoderType);
- return 0;
-}
-
-static void
-_jsonmodule_free(void *module)
-{
- _jsonmodule_clear((PyObject *)module);
-}
-
-static PyModuleDef_Slot _json_slots[] = {
- {Py_mod_exec, _json_exec},
- {0, NULL}
-};
-
+static int
+_json_exec(PyObject *module)
+{
+ _jsonmodulestate *state = get_json_state(module);
+
+ state->PyScannerType = PyType_FromSpec(&PyScannerType_spec);
+ if (state->PyScannerType == NULL) {
+ return -1;
+ }
+ Py_INCREF(state->PyScannerType);
+ if (PyModule_AddObject(module, "make_scanner", state->PyScannerType) < 0) {
+ Py_DECREF(state->PyScannerType);
+ return -1;
+ }
+
+ state->PyEncoderType = PyType_FromSpec(&PyEncoderType_spec);
+ if (state->PyEncoderType == NULL) {
+ return -1;
+ }
+ Py_INCREF(state->PyEncoderType);
+ if (PyModule_AddObject(module, "make_encoder", state->PyEncoderType) < 0) {
+ Py_DECREF(state->PyEncoderType);
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+_jsonmodule_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ _jsonmodulestate *state = get_json_state(module);
+ Py_VISIT(state->PyScannerType);
+ Py_VISIT(state->PyEncoderType);
+ return 0;
+}
+
+static int
+_jsonmodule_clear(PyObject *module)
+{
+ _jsonmodulestate *state = get_json_state(module);
+ Py_CLEAR(state->PyScannerType);
+ Py_CLEAR(state->PyEncoderType);
+ return 0;
+}
+
+static void
+_jsonmodule_free(void *module)
+{
+ _jsonmodule_clear((PyObject *)module);
+}
+
+static PyModuleDef_Slot _json_slots[] = {
+ {Py_mod_exec, _json_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef jsonmodule = {
PyModuleDef_HEAD_INIT,
"_json",
module_doc,
- sizeof(_jsonmodulestate),
+ sizeof(_jsonmodulestate),
speedups_methods,
- _json_slots,
- _jsonmodule_traverse,
- _jsonmodule_clear,
- _jsonmodule_free,
+ _json_slots,
+ _jsonmodule_traverse,
+ _jsonmodule_clear,
+ _jsonmodule_free,
};
PyMODINIT_FUNC
PyInit__json(void)
{
- return PyModuleDef_Init(&jsonmodule);
+ return PyModuleDef_Init(&jsonmodule);
}
diff --git a/contrib/tools/python3/src/Modules/_localemodule.c b/contrib/tools/python3/src/Modules/_localemodule.c
index 071782c99e..2e353bba00 100644
--- a/contrib/tools/python3/src/Modules/_localemodule.c
+++ b/contrib/tools/python3/src/Modules/_localemodule.c
@@ -11,7 +11,7 @@ This software comes with no warranty. Use at your own risk.
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_fileutils.h"
+#include "pycore_fileutils.h"
#include <stdio.h>
#include <locale.h>
@@ -41,18 +41,18 @@ This software comes with no warranty. Use at your own risk.
PyDoc_STRVAR(locale__doc__, "Support for POSIX locales.");
-typedef struct _locale_state {
- PyObject *Error;
-} _locale_state;
-
-static inline _locale_state*
-get_locale_state(PyObject *m)
-{
- void *state = PyModule_GetState(m);
- assert(state != NULL);
- return (_locale_state *)state;
-}
-
+typedef struct _locale_state {
+ PyObject *Error;
+} _locale_state;
+
+static inline _locale_state*
+get_locale_state(PyObject *m)
+{
+ void *state = PyModule_GetState(m);
+ assert(state != NULL);
+ return (_locale_state *)state;
+}
+
/* support functions for formatting floating point numbers */
PyDoc_STRVAR(setlocale__doc__,
@@ -104,8 +104,8 @@ PyLocale_setlocale(PyObject* self, PyObject* args)
#if defined(MS_WINDOWS)
if (category < LC_MIN || category > LC_MAX)
{
- PyErr_SetString(get_locale_state(self)->Error,
- "invalid locale category");
+ PyErr_SetString(get_locale_state(self)->Error,
+ "invalid locale category");
return NULL;
}
#endif
@@ -115,8 +115,8 @@ PyLocale_setlocale(PyObject* self, PyObject* args)
result = setlocale(category, locale);
if (!result) {
/* operation failed, no setting was changed */
- PyErr_SetString(get_locale_state(self)->Error,
- "unsupported locale setting");
+ PyErr_SetString(get_locale_state(self)->Error,
+ "unsupported locale setting");
return NULL;
}
result_object = PyUnicode_DecodeLocale(result, NULL);
@@ -126,8 +126,8 @@ PyLocale_setlocale(PyObject* self, PyObject* args)
/* get locale */
result = setlocale(category, NULL);
if (!result) {
- PyErr_SetString(get_locale_state(self)->Error,
- "locale query failed");
+ PyErr_SetString(get_locale_state(self)->Error,
+ "locale query failed");
return NULL;
}
result_object = PyUnicode_DecodeLocale(result, NULL);
@@ -144,7 +144,7 @@ locale_is_ascii(const char *str)
static int
locale_decode_monetary(PyObject *dict, struct lconv *lc)
{
-#ifndef MS_WINDOWS
+#ifndef MS_WINDOWS
int change_locale;
change_locale = (!locale_is_ascii(lc->int_curr_symbol)
|| !locale_is_ascii(lc->currency_symbol)
@@ -180,18 +180,18 @@ locale_decode_monetary(PyObject *dict, struct lconv *lc)
}
}
-#define GET_LOCALE_STRING(ATTR) PyUnicode_DecodeLocale(lc->ATTR, NULL)
-#else /* MS_WINDOWS */
-/* Use _W_* fields of Windows struct lconv */
-#define GET_LOCALE_STRING(ATTR) PyUnicode_FromWideChar(lc->_W_ ## ATTR, -1)
-#endif /* MS_WINDOWS */
-
+#define GET_LOCALE_STRING(ATTR) PyUnicode_DecodeLocale(lc->ATTR, NULL)
+#else /* MS_WINDOWS */
+/* Use _W_* fields of Windows struct lconv */
+#define GET_LOCALE_STRING(ATTR) PyUnicode_FromWideChar(lc->_W_ ## ATTR, -1)
+#endif /* MS_WINDOWS */
+
int res = -1;
#define RESULT_STRING(ATTR) \
do { \
PyObject *obj; \
- obj = GET_LOCALE_STRING(ATTR); \
+ obj = GET_LOCALE_STRING(ATTR); \
if (obj == NULL) { \
goto done; \
} \
@@ -207,17 +207,17 @@ locale_decode_monetary(PyObject *dict, struct lconv *lc)
RESULT_STRING(mon_decimal_point);
RESULT_STRING(mon_thousands_sep);
#undef RESULT_STRING
-#undef GET_LOCALE_STRING
+#undef GET_LOCALE_STRING
res = 0;
done:
-#ifndef MS_WINDOWS
+#ifndef MS_WINDOWS
if (loc != NULL) {
setlocale(LC_CTYPE, oldloc);
}
PyMem_Free(oldloc);
-#endif
+#endif
return res;
}
@@ -225,10 +225,10 @@ PyDoc_STRVAR(localeconv__doc__,
"() -> dict. Returns numeric and monetary locale-specific parameters.");
static PyObject*
-PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))
+PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))
{
PyObject* result;
- struct lconv *lc;
+ struct lconv *lc;
PyObject *x;
result = PyDict_New();
@@ -237,7 +237,7 @@ PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))
}
/* if LC_NUMERIC is different in the C library, use saved value */
- lc = localeconv();
+ lc = localeconv();
/* hopefully, the localeconv result survives the C library calls
involved herein */
@@ -253,29 +253,29 @@ PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))
Py_DECREF(obj); \
} while (0)
-#ifdef MS_WINDOWS
-/* Use _W_* fields of Windows struct lconv */
-#define GET_LOCALE_STRING(ATTR) PyUnicode_FromWideChar(lc->_W_ ## ATTR, -1)
-#else
-#define GET_LOCALE_STRING(ATTR) PyUnicode_DecodeLocale(lc->ATTR, NULL)
-#endif
+#ifdef MS_WINDOWS
+/* Use _W_* fields of Windows struct lconv */
+#define GET_LOCALE_STRING(ATTR) PyUnicode_FromWideChar(lc->_W_ ## ATTR, -1)
+#else
+#define GET_LOCALE_STRING(ATTR) PyUnicode_DecodeLocale(lc->ATTR, NULL)
+#endif
#define RESULT_STRING(s)\
do { \
- x = GET_LOCALE_STRING(s); \
+ x = GET_LOCALE_STRING(s); \
RESULT(#s, x); \
} while (0)
#define RESULT_INT(i)\
do { \
- x = PyLong_FromLong(lc->i); \
+ x = PyLong_FromLong(lc->i); \
RESULT(#i, x); \
} while (0)
/* Monetary information: LC_MONETARY encoding */
- if (locale_decode_monetary(result, lc) < 0) {
+ if (locale_decode_monetary(result, lc) < 0) {
goto failed;
}
- x = copy_grouping(lc->mon_grouping);
+ x = copy_grouping(lc->mon_grouping);
RESULT("mon_grouping", x);
RESULT_STRING(positive_sign);
@@ -290,10 +290,10 @@ PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))
RESULT_INT(n_sign_posn);
/* Numeric information: LC_NUMERIC encoding */
- PyObject *decimal_point = NULL, *thousands_sep = NULL;
- if (_Py_GetLocaleconvNumeric(lc, &decimal_point, &thousands_sep) < 0) {
- Py_XDECREF(decimal_point);
- Py_XDECREF(thousands_sep);
+ PyObject *decimal_point = NULL, *thousands_sep = NULL;
+ if (_Py_GetLocaleconvNumeric(lc, &decimal_point, &thousands_sep) < 0) {
+ Py_XDECREF(decimal_point);
+ Py_XDECREF(thousands_sep);
goto failed;
}
@@ -310,7 +310,7 @@ PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))
}
Py_DECREF(thousands_sep);
- x = copy_grouping(lc->grouping);
+ x = copy_grouping(lc->grouping);
RESULT("grouping", x);
return result;
@@ -322,7 +322,7 @@ PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))
#undef RESULT
#undef RESULT_STRING
#undef RESULT_INT
-#undef GET_LOCALE_STRING
+#undef GET_LOCALE_STRING
}
#if defined(HAVE_WCSCOLL)
@@ -419,12 +419,12 @@ exit:
#if defined(MS_WINDOWS)
static PyObject*
-PyLocale_getdefaultlocale(PyObject* self, PyObject *Py_UNUSED(ignored))
+PyLocale_getdefaultlocale(PyObject* self, PyObject *Py_UNUSED(ignored))
{
- char encoding[20];
+ char encoding[20];
char locale[100];
- PyOS_snprintf(encoding, sizeof(encoding), "cp%u", GetACP());
+ PyOS_snprintf(encoding, sizeof(encoding), "cp%u", GetACP());
if (GetLocaleInfo(LOCALE_USER_DEFAULT,
LOCALE_SISO639LANGNAME,
@@ -654,16 +654,16 @@ PyDoc_STRVAR(bindtextdomain__doc__,
"Bind the C library's domain to dir.");
static PyObject*
-PyIntl_bindtextdomain(PyObject* self, PyObject*args)
+PyIntl_bindtextdomain(PyObject* self, PyObject*args)
{
- const char *domain, *dirname, *current_dirname;
+ const char *domain, *dirname, *current_dirname;
PyObject *dirname_obj, *dirname_bytes = NULL, *result;
-
+
if (!PyArg_ParseTuple(args, "sO", &domain, &dirname_obj))
return 0;
if (!strlen(domain)) {
- PyErr_SetString(get_locale_state(self)->Error,
- "domain must be a non-empty string");
+ PyErr_SetString(get_locale_state(self)->Error,
+ "domain must be a non-empty string");
return 0;
}
if (dirname_obj != Py_None) {
@@ -709,7 +709,7 @@ PyIntl_bind_textdomain_codeset(PyObject* self,PyObject*args)
static struct PyMethodDef PyLocale_Methods[] = {
{"setlocale", (PyCFunction) PyLocale_setlocale,
METH_VARARGS, setlocale__doc__},
- {"localeconv", PyLocale_localeconv, METH_NOARGS, localeconv__doc__},
+ {"localeconv", PyLocale_localeconv, METH_NOARGS, localeconv__doc__},
#ifdef HAVE_WCSCOLL
{"strcoll", (PyCFunction) PyLocale_strcoll,
METH_VARARGS, strcoll__doc__},
@@ -719,7 +719,7 @@ static struct PyMethodDef PyLocale_Methods[] = {
METH_VARARGS, strxfrm__doc__},
#endif
#if defined(MS_WINDOWS)
- {"_getdefaultlocale", PyLocale_getdefaultlocale, METH_NOARGS},
+ {"_getdefaultlocale", PyLocale_getdefaultlocale, METH_NOARGS},
#endif
#ifdef HAVE_LANGINFO_H
{"nl_langinfo", (PyCFunction) PyLocale_nl_langinfo,
@@ -744,106 +744,106 @@ static struct PyMethodDef PyLocale_Methods[] = {
{NULL, NULL}
};
-static int
-_locale_exec(PyObject *module)
+static int
+_locale_exec(PyObject *module)
{
#ifdef HAVE_LANGINFO_H
int i;
#endif
-#define ADD_INT(module, value) \
- do { \
- if (PyModule_AddIntConstant(module, #value, value) < 0) { \
- return -1; \
- } \
- } while (0)
+#define ADD_INT(module, value) \
+ do { \
+ if (PyModule_AddIntConstant(module, #value, value) < 0) { \
+ return -1; \
+ } \
+ } while (0)
- ADD_INT(module, LC_CTYPE);
- ADD_INT(module, LC_TIME);
- ADD_INT(module, LC_COLLATE);
- ADD_INT(module, LC_MONETARY);
+ ADD_INT(module, LC_CTYPE);
+ ADD_INT(module, LC_TIME);
+ ADD_INT(module, LC_COLLATE);
+ ADD_INT(module, LC_MONETARY);
#ifdef LC_MESSAGES
- ADD_INT(module, LC_MESSAGES);
+ ADD_INT(module, LC_MESSAGES);
#endif /* LC_MESSAGES */
- ADD_INT(module, LC_NUMERIC);
- ADD_INT(module, LC_ALL);
- ADD_INT(module, CHAR_MAX);
+ ADD_INT(module, LC_NUMERIC);
+ ADD_INT(module, LC_ALL);
+ ADD_INT(module, CHAR_MAX);
- _locale_state *state = get_locale_state(module);
- state->Error = PyErr_NewException("locale.Error", NULL, NULL);
- if (state->Error == NULL) {
- return -1;
+ _locale_state *state = get_locale_state(module);
+ state->Error = PyErr_NewException("locale.Error", NULL, NULL);
+ if (state->Error == NULL) {
+ return -1;
+ }
+ Py_INCREF(get_locale_state(module)->Error);
+ if (PyModule_AddObject(module, "Error", get_locale_state(module)->Error) < 0) {
+ Py_DECREF(get_locale_state(module)->Error);
+ return -1;
}
- Py_INCREF(get_locale_state(module)->Error);
- if (PyModule_AddObject(module, "Error", get_locale_state(module)->Error) < 0) {
- Py_DECREF(get_locale_state(module)->Error);
- return -1;
- }
#ifdef HAVE_LANGINFO_H
for (i = 0; langinfo_constants[i].name; i++) {
- if (PyModule_AddIntConstant(module,
- langinfo_constants[i].name,
- langinfo_constants[i].value) < 0) {
- return -1;
- }
+ if (PyModule_AddIntConstant(module,
+ langinfo_constants[i].name,
+ langinfo_constants[i].value) < 0) {
+ return -1;
+ }
}
#endif
if (PyErr_Occurred()) {
- return -1;
+ return -1;
}
- return 0;
-
-#undef ADD_INT
+ return 0;
+
+#undef ADD_INT
+}
+
+static struct PyModuleDef_Slot _locale_slots[] = {
+ {Py_mod_exec, _locale_exec},
+ {0, NULL}
+};
+
+static int
+locale_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ _locale_state *state = get_locale_state(module);
+ Py_VISIT(state->Error);
+ return 0;
+}
+
+static int
+locale_clear(PyObject *module)
+{
+ _locale_state *state = get_locale_state(module);
+ Py_CLEAR(state->Error);
+ return 0;
+}
+
+static void
+locale_free(PyObject *module)
+{
+ locale_clear(module);
+}
+
+static struct PyModuleDef _localemodule = {
+ PyModuleDef_HEAD_INIT,
+ "_locale",
+ locale__doc__,
+ sizeof(_locale_state),
+ PyLocale_Methods,
+ _locale_slots,
+ locale_traverse,
+ locale_clear,
+ (freefunc)locale_free,
+};
+
+PyMODINIT_FUNC
+PyInit__locale(void)
+{
+ return PyModuleDef_Init(&_localemodule);
}
-static struct PyModuleDef_Slot _locale_slots[] = {
- {Py_mod_exec, _locale_exec},
- {0, NULL}
-};
-
-static int
-locale_traverse(PyObject *module, visitproc visit, void *arg)
-{
- _locale_state *state = get_locale_state(module);
- Py_VISIT(state->Error);
- return 0;
-}
-
-static int
-locale_clear(PyObject *module)
-{
- _locale_state *state = get_locale_state(module);
- Py_CLEAR(state->Error);
- return 0;
-}
-
-static void
-locale_free(PyObject *module)
-{
- locale_clear(module);
-}
-
-static struct PyModuleDef _localemodule = {
- PyModuleDef_HEAD_INIT,
- "_locale",
- locale__doc__,
- sizeof(_locale_state),
- PyLocale_Methods,
- _locale_slots,
- locale_traverse,
- locale_clear,
- (freefunc)locale_free,
-};
-
-PyMODINIT_FUNC
-PyInit__locale(void)
-{
- return PyModuleDef_Init(&_localemodule);
-}
-
/*
Local variables:
c-basic-offset: 4
diff --git a/contrib/tools/python3/src/Modules/_lsprof.c b/contrib/tools/python3/src/Modules/_lsprof.c
index 85ffe7b21c..5e53d83964 100644
--- a/contrib/tools/python3/src/Modules/_lsprof.c
+++ b/contrib/tools/python3/src/Modules/_lsprof.c
@@ -9,8 +9,8 @@ struct _ProfilerEntry;
/* represents a function called from another function */
typedef struct _ProfilerSubEntry {
rotating_node_t header;
- _PyTime_t tt;
- _PyTime_t it;
+ _PyTime_t tt;
+ _PyTime_t it;
long callcount;
long recursivecallcount;
long recursionLevel;
@@ -20,8 +20,8 @@ typedef struct _ProfilerSubEntry {
typedef struct _ProfilerEntry {
rotating_node_t header;
PyObject *userObj; /* PyCodeObject, or a descriptive str for builtins */
- _PyTime_t tt; /* total time in this entry */
- _PyTime_t it; /* inline time in this entry (not in subcalls) */
+ _PyTime_t tt; /* total time in this entry */
+ _PyTime_t it; /* inline time in this entry (not in subcalls) */
long callcount; /* how many times this was called */
long recursivecallcount; /* how many times called recursively */
long recursionLevel;
@@ -29,8 +29,8 @@ typedef struct _ProfilerEntry {
} ProfilerEntry;
typedef struct _ProfilerContext {
- _PyTime_t t0;
- _PyTime_t subt;
+ _PyTime_t t0;
+ _PyTime_t subt;
struct _ProfilerContext *previous;
ProfilerEntry *ctxEntry;
} ProfilerContext;
@@ -53,51 +53,51 @@ typedef struct {
static PyTypeObject PyProfiler_Type;
#define PyProfiler_Check(op) PyObject_TypeCheck(op, &PyProfiler_Type)
-#define PyProfiler_CheckExact(op) Py_IS_TYPE(op, &PyProfiler_Type)
+#define PyProfiler_CheckExact(op) Py_IS_TYPE(op, &PyProfiler_Type)
/*** External Timers ***/
-static _PyTime_t CallExternalTimer(ProfilerObject *pObj)
+static _PyTime_t CallExternalTimer(ProfilerObject *pObj)
{
- PyObject *o = _PyObject_CallNoArg(pObj->externalTimer);
+ PyObject *o = _PyObject_CallNoArg(pObj->externalTimer);
if (o == NULL) {
PyErr_WriteUnraisable(pObj->externalTimer);
return 0;
}
-
- _PyTime_t result;
- int err;
+
+ _PyTime_t result;
+ int err;
if (pObj->externalTimerUnit > 0.0) {
/* interpret the result as an integer that will be scaled
in profiler_getstats() */
- err = _PyTime_FromNanosecondsObject(&result, o);
+ err = _PyTime_FromNanosecondsObject(&result, o);
}
else {
/* interpret the result as a double measured in seconds.
- As the profiler works with _PyTime_t internally
+ As the profiler works with _PyTime_t internally
we convert it to a large integer */
- err = _PyTime_FromSecondsObject(&result, o, _PyTime_ROUND_FLOOR);
+ err = _PyTime_FromSecondsObject(&result, o, _PyTime_ROUND_FLOOR);
}
Py_DECREF(o);
- if (err < 0) {
+ if (err < 0) {
PyErr_WriteUnraisable(pObj->externalTimer);
return 0;
}
return result;
}
-static inline _PyTime_t
-call_timer(ProfilerObject *pObj)
-{
- if (pObj->externalTimer != NULL) {
- return CallExternalTimer(pObj);
- }
- else {
- return _PyTime_GetPerfCounter();
- }
-}
-
-
+static inline _PyTime_t
+call_timer(ProfilerObject *pObj)
+{
+ if (pObj->externalTimer != NULL) {
+ return CallExternalTimer(pObj);
+ }
+ else {
+ return _PyTime_GetPerfCounter();
+ }
+}
+
+
/*** ProfilerObject ***/
static PyObject *
@@ -280,14 +280,14 @@ initContext(ProfilerObject *pObj, ProfilerContext *self, ProfilerEntry *entry)
if (subentry)
++subentry->recursionLevel;
}
- self->t0 = call_timer(pObj);
+ self->t0 = call_timer(pObj);
}
static void
Stop(ProfilerObject *pObj, ProfilerContext *self, ProfilerEntry *entry)
{
- _PyTime_t tt = call_timer(pObj) - self->t0;
- _PyTime_t it = tt - self->subt;
+ _PyTime_t tt = call_timer(pObj) - self->t0;
+ _PyTime_t it = tt - self->subt;
if (self->previous)
self->previous->subt += tt;
pObj->currentProfilerContext = self->previous;
@@ -387,22 +387,22 @@ profiler_callback(PyObject *self, PyFrameObject *frame, int what,
/* the 'frame' of a called function is about to start its execution */
case PyTrace_CALL:
- {
- PyCodeObject *code = PyFrame_GetCode(frame);
- ptrace_enter_call(self, (void *)code, (PyObject *)code);
- Py_DECREF(code);
+ {
+ PyCodeObject *code = PyFrame_GetCode(frame);
+ ptrace_enter_call(self, (void *)code, (PyObject *)code);
+ Py_DECREF(code);
break;
- }
+ }
/* the 'frame' of a called function is about to finish
(either normally or with an exception) */
case PyTrace_RETURN:
- {
- PyCodeObject *code = PyFrame_GetCode(frame);
- ptrace_leave_call(self, (void *)code);
- Py_DECREF(code);
+ {
+ PyCodeObject *code = PyFrame_GetCode(frame);
+ ptrace_leave_call(self, (void *)code);
+ Py_DECREF(code);
break;
- }
+ }
/* case PyTrace_EXCEPTION:
If the exception results in the function exiting, a
@@ -584,17 +584,17 @@ static PyObject*
profiler_getstats(ProfilerObject *pObj, PyObject* noarg)
{
statscollector_t collect;
- if (pending_exception(pObj)) {
+ if (pending_exception(pObj)) {
return NULL;
- }
- if (!pObj->externalTimer || pObj->externalTimerUnit == 0.0) {
- _PyTime_t onesec = _PyTime_FromSeconds(1);
- collect.factor = (double)1 / onesec;
- }
- else {
+ }
+ if (!pObj->externalTimer || pObj->externalTimerUnit == 0.0) {
+ _PyTime_t onesec = _PyTime_FromSeconds(1);
+ collect.factor = (double)1 / onesec;
+ }
+ else {
collect.factor = pObj->externalTimerUnit;
- }
-
+ }
+
collect.list = PyList_New(0);
if (collect.list == NULL)
return NULL;
@@ -646,15 +646,15 @@ profiler_enable(ProfilerObject *self, PyObject *args, PyObject *kwds)
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|ii:enable",
kwlist, &subcalls, &builtins))
return NULL;
- if (setSubcalls(self, subcalls) < 0 || setBuiltins(self, builtins) < 0) {
+ if (setSubcalls(self, subcalls) < 0 || setBuiltins(self, builtins) < 0) {
return NULL;
- }
-
- PyThreadState *tstate = PyThreadState_GET();
- if (_PyEval_SetProfile(tstate, profiler_callback, (PyObject*)self) < 0) {
- return NULL;
- }
-
+ }
+
+ PyThreadState *tstate = PyThreadState_GET();
+ if (_PyEval_SetProfile(tstate, profiler_callback, (PyObject*)self) < 0) {
+ return NULL;
+ }
+
self->flags |= POF_ENABLED;
Py_RETURN_NONE;
}
@@ -684,16 +684,16 @@ Stop collecting profiling information.\n\
static PyObject*
profiler_disable(ProfilerObject *self, PyObject* noarg)
{
- PyThreadState *tstate = PyThreadState_GET();
- if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
- return NULL;
- }
+ PyThreadState *tstate = PyThreadState_GET();
+ if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
+ return NULL;
+ }
self->flags &= ~POF_ENABLED;
-
+
flush_unmatched(self);
- if (pending_exception(self)) {
+ if (pending_exception(self)) {
return NULL;
- }
+ }
Py_RETURN_NONE;
}
@@ -713,13 +713,13 @@ profiler_clear(ProfilerObject *pObj, PyObject* noarg)
static void
profiler_dealloc(ProfilerObject *op)
{
- if (op->flags & POF_ENABLED) {
- PyThreadState *tstate = PyThreadState_GET();
- if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
- PyErr_WriteUnraisable((PyObject *)op);
- }
- }
-
+ if (op->flags & POF_ENABLED) {
+ PyThreadState *tstate = PyThreadState_GET();
+ if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
+ PyErr_WriteUnraisable((PyObject *)op);
+ }
+ }
+
flush_unmatched(op);
clearEntries(op);
Py_XDECREF(op->externalTimer);
@@ -752,7 +752,7 @@ profiler_init(ProfilerObject *pObj, PyObject *args, PyObject *kw)
static PyMethodDef profiler_methods[] = {
{"getstats", (PyCFunction)profiler_getstats,
METH_NOARGS, getstats_doc},
- {"enable", (PyCFunction)(void(*)(void))profiler_enable,
+ {"enable", (PyCFunction)(void(*)(void))profiler_enable,
METH_VARARGS | METH_KEYWORDS, enable_doc},
{"disable", (PyCFunction)profiler_disable,
METH_NOARGS, disable_doc},
@@ -777,10 +777,10 @@ static PyTypeObject PyProfiler_Type = {
sizeof(ProfilerObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)profiler_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_math.c b/contrib/tools/python3/src/Modules/_math.c
index dfac274451..68e3a23469 100644
--- a/contrib/tools/python3/src/Modules/_math.c
+++ b/contrib/tools/python3/src/Modules/_math.c
@@ -90,7 +90,7 @@ _Py_acosh(double x)
* asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
* we have
* asinh(x) := x if 1+x*x=1,
- * := sign(x)*(log(x)+ln2) for large |x|, else
+ * := sign(x)*(log(x)+ln2) for large |x|, else
* := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else
* := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
*/
diff --git a/contrib/tools/python3/src/Modules/_multiprocessing/clinic/posixshmem.c.h b/contrib/tools/python3/src/Modules/_multiprocessing/clinic/posixshmem.c.h
index cbe09befea..a99f0d2aae 100644
--- a/contrib/tools/python3/src/Modules/_multiprocessing/clinic/posixshmem.c.h
+++ b/contrib/tools/python3/src/Modules/_multiprocessing/clinic/posixshmem.c.h
@@ -1,133 +1,133 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-#if defined(HAVE_SHM_OPEN)
-
-PyDoc_STRVAR(_posixshmem_shm_open__doc__,
-"shm_open($module, /, path, flags, mode=511)\n"
-"--\n"
-"\n"
-"Open a shared memory object. Returns a file descriptor (integer).");
-
-#define _POSIXSHMEM_SHM_OPEN_METHODDEF \
- {"shm_open", (PyCFunction)(void(*)(void))_posixshmem_shm_open, METH_FASTCALL|METH_KEYWORDS, _posixshmem_shm_open__doc__},
-
-static int
-_posixshmem_shm_open_impl(PyObject *module, PyObject *path, int flags,
- int mode);
-
-static PyObject *
-_posixshmem_shm_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"path", "flags", "mode", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "shm_open", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
- PyObject *path;
- int flags;
- int mode = 511;
- int _return_value;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("shm_open", "argument 'path'", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- path = args[0];
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[1]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[2]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- _return_value = _posixshmem_shm_open_impl(module, path, flags, mode);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromLong((long)_return_value);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_SHM_OPEN) */
-
-#if defined(HAVE_SHM_UNLINK)
-
-PyDoc_STRVAR(_posixshmem_shm_unlink__doc__,
-"shm_unlink($module, /, path)\n"
-"--\n"
-"\n"
-"Remove a shared memory object (similar to unlink()).\n"
-"\n"
-"Remove a shared memory object name, and, once all processes have unmapped\n"
-"the object, de-allocates and destroys the contents of the associated memory\n"
-"region.");
-
-#define _POSIXSHMEM_SHM_UNLINK_METHODDEF \
- {"shm_unlink", (PyCFunction)(void(*)(void))_posixshmem_shm_unlink, METH_FASTCALL|METH_KEYWORDS, _posixshmem_shm_unlink__doc__},
-
-static PyObject *
-_posixshmem_shm_unlink_impl(PyObject *module, PyObject *path);
-
-static PyObject *
-_posixshmem_shm_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "shm_unlink", 0};
- PyObject *argsbuf[1];
- PyObject *path;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("shm_unlink", "argument 'path'", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- path = args[0];
- return_value = _posixshmem_shm_unlink_impl(module, path);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_SHM_UNLINK) */
-
-#ifndef _POSIXSHMEM_SHM_OPEN_METHODDEF
- #define _POSIXSHMEM_SHM_OPEN_METHODDEF
-#endif /* !defined(_POSIXSHMEM_SHM_OPEN_METHODDEF) */
-
-#ifndef _POSIXSHMEM_SHM_UNLINK_METHODDEF
- #define _POSIXSHMEM_SHM_UNLINK_METHODDEF
-#endif /* !defined(_POSIXSHMEM_SHM_UNLINK_METHODDEF) */
-/*[clinic end generated code: output=9132861c61d8c2d8 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+#if defined(HAVE_SHM_OPEN)
+
+PyDoc_STRVAR(_posixshmem_shm_open__doc__,
+"shm_open($module, /, path, flags, mode=511)\n"
+"--\n"
+"\n"
+"Open a shared memory object. Returns a file descriptor (integer).");
+
+#define _POSIXSHMEM_SHM_OPEN_METHODDEF \
+ {"shm_open", (PyCFunction)(void(*)(void))_posixshmem_shm_open, METH_FASTCALL|METH_KEYWORDS, _posixshmem_shm_open__doc__},
+
+static int
+_posixshmem_shm_open_impl(PyObject *module, PyObject *path, int flags,
+ int mode);
+
+static PyObject *
+_posixshmem_shm_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"path", "flags", "mode", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "shm_open", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ PyObject *path;
+ int flags;
+ int mode = 511;
+ int _return_value;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("shm_open", "argument 'path'", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ path = args[0];
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[1]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[2]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ _return_value = _posixshmem_shm_open_impl(module, path, flags, mode);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SHM_OPEN) */
+
+#if defined(HAVE_SHM_UNLINK)
+
+PyDoc_STRVAR(_posixshmem_shm_unlink__doc__,
+"shm_unlink($module, /, path)\n"
+"--\n"
+"\n"
+"Remove a shared memory object (similar to unlink()).\n"
+"\n"
+"Remove a shared memory object name, and, once all processes have unmapped\n"
+"the object, de-allocates and destroys the contents of the associated memory\n"
+"region.");
+
+#define _POSIXSHMEM_SHM_UNLINK_METHODDEF \
+ {"shm_unlink", (PyCFunction)(void(*)(void))_posixshmem_shm_unlink, METH_FASTCALL|METH_KEYWORDS, _posixshmem_shm_unlink__doc__},
+
+static PyObject *
+_posixshmem_shm_unlink_impl(PyObject *module, PyObject *path);
+
+static PyObject *
+_posixshmem_shm_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"path", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "shm_unlink", 0};
+ PyObject *argsbuf[1];
+ PyObject *path;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("shm_unlink", "argument 'path'", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ path = args[0];
+ return_value = _posixshmem_shm_unlink_impl(module, path);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SHM_UNLINK) */
+
+#ifndef _POSIXSHMEM_SHM_OPEN_METHODDEF
+ #define _POSIXSHMEM_SHM_OPEN_METHODDEF
+#endif /* !defined(_POSIXSHMEM_SHM_OPEN_METHODDEF) */
+
+#ifndef _POSIXSHMEM_SHM_UNLINK_METHODDEF
+ #define _POSIXSHMEM_SHM_UNLINK_METHODDEF
+#endif /* !defined(_POSIXSHMEM_SHM_UNLINK_METHODDEF) */
+/*[clinic end generated code: output=9132861c61d8c2d8 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_multiprocessing/posixshmem.c b/contrib/tools/python3/src/Modules/_multiprocessing/posixshmem.c
index 584e98f173..436ac6d6b3 100644
--- a/contrib/tools/python3/src/Modules/_multiprocessing/posixshmem.c
+++ b/contrib/tools/python3/src/Modules/_multiprocessing/posixshmem.c
@@ -1,130 +1,130 @@
-/*
-posixshmem - A Python extension that provides shm_open() and shm_unlink()
-*/
-
-#define PY_SSIZE_T_CLEAN
-
-#include <Python.h>
-
-// for shm_open() and shm_unlink()
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-/*[clinic input]
-module _posixshmem
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=a416734e49164bf8]*/
-
-/*
- *
- * Module-level functions & meta stuff
- *
- */
-
-#ifdef HAVE_SHM_OPEN
-/*[clinic input]
-_posixshmem.shm_open -> int
- path: unicode
- flags: int
- mode: int = 0o777
-
-# "shm_open(path, flags, mode=0o777)\n\n\
-
-Open a shared memory object. Returns a file descriptor (integer).
-
-[clinic start generated code]*/
-
-static int
-_posixshmem_shm_open_impl(PyObject *module, PyObject *path, int flags,
- int mode)
-/*[clinic end generated code: output=8d110171a4fa20df input=e83b58fa802fac25]*/
-{
- int fd;
- int async_err = 0;
- const char *name = PyUnicode_AsUTF8(path);
- if (name == NULL) {
- return -1;
- }
- do {
- Py_BEGIN_ALLOW_THREADS
- fd = shm_open(name, flags, mode);
- Py_END_ALLOW_THREADS
- } while (fd < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
-
- if (fd < 0) {
- if (!async_err)
- PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path);
- return -1;
- }
-
- return fd;
-}
-#endif /* HAVE_SHM_OPEN */
-
-#ifdef HAVE_SHM_UNLINK
-/*[clinic input]
-_posixshmem.shm_unlink
- path: unicode
-
-Remove a shared memory object (similar to unlink()).
-
-Remove a shared memory object name, and, once all processes have unmapped
-the object, de-allocates and destroys the contents of the associated memory
-region.
-
-[clinic start generated code]*/
-
-static PyObject *
-_posixshmem_shm_unlink_impl(PyObject *module, PyObject *path)
-/*[clinic end generated code: output=42f8b23d134b9ff5 input=8dc0f87143e3b300]*/
-{
- int rv;
- int async_err = 0;
- const char *name = PyUnicode_AsUTF8(path);
- if (name == NULL) {
- return NULL;
- }
- do {
- Py_BEGIN_ALLOW_THREADS
- rv = shm_unlink(name);
- Py_END_ALLOW_THREADS
- } while (rv < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
-
- if (rv < 0) {
- if (!async_err)
- PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-#endif /* HAVE_SHM_UNLINK */
-
-#include "clinic/posixshmem.c.h"
-
-static PyMethodDef module_methods[ ] = {
- _POSIXSHMEM_SHM_OPEN_METHODDEF
- _POSIXSHMEM_SHM_UNLINK_METHODDEF
- {NULL} /* Sentinel */
-};
-
-
-static struct PyModuleDef this_module = {
- PyModuleDef_HEAD_INIT, // m_base
- "_posixshmem", // m_name
- "POSIX shared memory module", // m_doc
- -1, // m_size (space allocated for module globals)
- module_methods, // m_methods
-};
-
-/* Module init function */
-PyMODINIT_FUNC
-PyInit__posixshmem(void) {
- PyObject *module;
- module = PyModule_Create(&this_module);
- if (!module) {
- return NULL;
- }
- return module;
-}
+/*
+posixshmem - A Python extension that provides shm_open() and shm_unlink()
+*/
+
+#define PY_SSIZE_T_CLEAN
+
+#include <Python.h>
+
+// for shm_open() and shm_unlink()
+#ifdef HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#endif
+
+/*[clinic input]
+module _posixshmem
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=a416734e49164bf8]*/
+
+/*
+ *
+ * Module-level functions & meta stuff
+ *
+ */
+
+#ifdef HAVE_SHM_OPEN
+/*[clinic input]
+_posixshmem.shm_open -> int
+ path: unicode
+ flags: int
+ mode: int = 0o777
+
+# "shm_open(path, flags, mode=0o777)\n\n\
+
+Open a shared memory object. Returns a file descriptor (integer).
+
+[clinic start generated code]*/
+
+static int
+_posixshmem_shm_open_impl(PyObject *module, PyObject *path, int flags,
+ int mode)
+/*[clinic end generated code: output=8d110171a4fa20df input=e83b58fa802fac25]*/
+{
+ int fd;
+ int async_err = 0;
+ const char *name = PyUnicode_AsUTF8(path);
+ if (name == NULL) {
+ return -1;
+ }
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ fd = shm_open(name, flags, mode);
+ Py_END_ALLOW_THREADS
+ } while (fd < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+
+ if (fd < 0) {
+ if (!async_err)
+ PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path);
+ return -1;
+ }
+
+ return fd;
+}
+#endif /* HAVE_SHM_OPEN */
+
+#ifdef HAVE_SHM_UNLINK
+/*[clinic input]
+_posixshmem.shm_unlink
+ path: unicode
+
+Remove a shared memory object (similar to unlink()).
+
+Remove a shared memory object name, and, once all processes have unmapped
+the object, de-allocates and destroys the contents of the associated memory
+region.
+
+[clinic start generated code]*/
+
+static PyObject *
+_posixshmem_shm_unlink_impl(PyObject *module, PyObject *path)
+/*[clinic end generated code: output=42f8b23d134b9ff5 input=8dc0f87143e3b300]*/
+{
+ int rv;
+ int async_err = 0;
+ const char *name = PyUnicode_AsUTF8(path);
+ if (name == NULL) {
+ return NULL;
+ }
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ rv = shm_unlink(name);
+ Py_END_ALLOW_THREADS
+ } while (rv < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+
+ if (rv < 0) {
+ if (!async_err)
+ PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path);
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+#endif /* HAVE_SHM_UNLINK */
+
+#include "clinic/posixshmem.c.h"
+
+static PyMethodDef module_methods[ ] = {
+ _POSIXSHMEM_SHM_OPEN_METHODDEF
+ _POSIXSHMEM_SHM_UNLINK_METHODDEF
+ {NULL} /* Sentinel */
+};
+
+
+static struct PyModuleDef this_module = {
+ PyModuleDef_HEAD_INIT, // m_base
+ "_posixshmem", // m_name
+ "POSIX shared memory module", // m_doc
+ -1, // m_size (space allocated for module globals)
+ module_methods, // m_methods
+};
+
+/* Module init function */
+PyMODINIT_FUNC
+PyInit__posixshmem(void) {
+ PyObject *module;
+ module = PyModule_Create(&this_module);
+ if (!module) {
+ return NULL;
+ }
+ return module;
+}
diff --git a/contrib/tools/python3/src/Modules/_multiprocessing/semaphore.c b/contrib/tools/python3/src/Modules/_multiprocessing/semaphore.c
index 19b4209a55..ee490256d2 100644
--- a/contrib/tools/python3/src/Modules/_multiprocessing/semaphore.c
+++ b/contrib/tools/python3/src/Modules/_multiprocessing/semaphore.c
@@ -141,7 +141,7 @@ semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds)
default:
PyErr_Format(PyExc_RuntimeError, "WaitForSingleObject() or "
"WaitForMultipleObjects() gave unrecognized "
- "value %u", res);
+ "value %u", res);
return NULL;
}
}
@@ -282,23 +282,23 @@ semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds)
Py_RETURN_TRUE;
}
- int use_deadline = (timeout_obj != Py_None);
- if (use_deadline) {
- double timeout = PyFloat_AsDouble(timeout_obj);
- if (PyErr_Occurred()) {
+ int use_deadline = (timeout_obj != Py_None);
+ if (use_deadline) {
+ double timeout = PyFloat_AsDouble(timeout_obj);
+ if (PyErr_Occurred()) {
return NULL;
- }
- if (timeout < 0.0) {
+ }
+ if (timeout < 0.0) {
timeout = 0.0;
- }
+ }
- struct timeval now;
+ struct timeval now;
if (gettimeofday(&now, NULL) < 0) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
- long sec = (long) timeout;
- long nsec = (long) (1e9 * (timeout - sec) + 0.5);
+ long sec = (long) timeout;
+ long nsec = (long) (1e9 * (timeout - sec) + 0.5);
deadline.tv_sec = now.tv_sec + sec;
deadline.tv_nsec = now.tv_usec * 1000 + nsec;
deadline.tv_sec += (deadline.tv_nsec / 1000000000);
@@ -316,7 +316,7 @@ semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds)
/* Couldn't acquire immediately, need to block */
do {
Py_BEGIN_ALLOW_THREADS
- if (!use_deadline) {
+ if (!use_deadline) {
res = sem_wait(self->handle);
}
else {
@@ -522,20 +522,20 @@ semlock_dealloc(SemLockObject* self)
}
static PyObject *
-semlock_count(SemLockObject *self, PyObject *Py_UNUSED(ignored))
+semlock_count(SemLockObject *self, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromLong((long)self->count);
}
static PyObject *
-semlock_ismine(SemLockObject *self, PyObject *Py_UNUSED(ignored))
+semlock_ismine(SemLockObject *self, PyObject *Py_UNUSED(ignored))
{
/* only makes sense for a lock */
return PyBool_FromLong(ISMINE(self));
}
static PyObject *
-semlock_getvalue(SemLockObject *self, PyObject *Py_UNUSED(ignored))
+semlock_getvalue(SemLockObject *self, PyObject *Py_UNUSED(ignored))
{
#ifdef HAVE_BROKEN_SEM_GETVALUE
PyErr_SetNone(PyExc_NotImplementedError);
@@ -553,7 +553,7 @@ semlock_getvalue(SemLockObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-semlock_iszero(SemLockObject *self, PyObject *Py_UNUSED(ignored))
+semlock_iszero(SemLockObject *self, PyObject *Py_UNUSED(ignored))
{
#ifdef HAVE_BROKEN_SEM_GETVALUE
if (sem_trywait(self->handle) < 0) {
@@ -574,7 +574,7 @@ semlock_iszero(SemLockObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-semlock_afterfork(SemLockObject *self, PyObject *Py_UNUSED(ignored))
+semlock_afterfork(SemLockObject *self, PyObject *Py_UNUSED(ignored))
{
self->count = 0;
Py_RETURN_NONE;
@@ -585,11 +585,11 @@ semlock_afterfork(SemLockObject *self, PyObject *Py_UNUSED(ignored))
*/
static PyMethodDef semlock_methods[] = {
- {"acquire", (PyCFunction)(void(*)(void))semlock_acquire, METH_VARARGS | METH_KEYWORDS,
+ {"acquire", (PyCFunction)(void(*)(void))semlock_acquire, METH_VARARGS | METH_KEYWORDS,
"acquire the semaphore/lock"},
{"release", (PyCFunction)semlock_release, METH_NOARGS,
"release the semaphore/lock"},
- {"__enter__", (PyCFunction)(void(*)(void))semlock_acquire, METH_VARARGS | METH_KEYWORDS,
+ {"__enter__", (PyCFunction)(void(*)(void))semlock_acquire, METH_VARARGS | METH_KEYWORDS,
"enter the semaphore/lock"},
{"__exit__", (PyCFunction)semlock_release, METH_VARARGS,
"exit the semaphore/lock"},
@@ -634,10 +634,10 @@ PyTypeObject _PyMp_SemLockType = {
/* tp_basicsize */ sizeof(SemLockObject),
/* tp_itemsize */ 0,
/* tp_dealloc */ (destructor)semlock_dealloc,
- /* tp_vectorcall_offset */ 0,
+ /* tp_vectorcall_offset */ 0,
/* tp_getattr */ 0,
/* tp_setattr */ 0,
- /* tp_as_async */ 0,
+ /* tp_as_async */ 0,
/* tp_repr */ 0,
/* tp_as_number */ 0,
/* tp_as_sequence */ 0,
diff --git a/contrib/tools/python3/src/Modules/_opcode.c b/contrib/tools/python3/src/Modules/_opcode.c
index 71577484cf..42a8732694 100644
--- a/contrib/tools/python3/src/Modules/_opcode.c
+++ b/contrib/tools/python3/src/Modules/_opcode.c
@@ -15,20 +15,20 @@ _opcode.stack_effect -> int
opcode: int
oparg: object = None
/
- *
- jump: object = None
+ *
+ jump: object = None
Compute the stack effect of the opcode.
[clinic start generated code]*/
static int
-_opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
- PyObject *jump)
-/*[clinic end generated code: output=64a18f2ead954dbb input=461c9d4a44851898]*/
+_opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
+ PyObject *jump)
+/*[clinic end generated code: output=64a18f2ead954dbb input=461c9d4a44851898]*/
{
int effect;
int oparg_int = 0;
- int jump_int;
+ int jump_int;
if (HAS_ARG(opcode)) {
if (oparg == Py_None) {
PyErr_SetString(PyExc_ValueError,
@@ -44,21 +44,21 @@ _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
"stack_effect: opcode does not permit oparg but oparg was specified");
return -1;
}
- if (jump == Py_None) {
- jump_int = -1;
- }
- else if (jump == Py_True) {
- jump_int = 1;
- }
- else if (jump == Py_False) {
- jump_int = 0;
- }
- else {
- PyErr_SetString(PyExc_ValueError,
- "stack_effect: jump must be False, True or None");
- return -1;
- }
- effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int);
+ if (jump == Py_None) {
+ jump_int = -1;
+ }
+ else if (jump == Py_True) {
+ jump_int = 1;
+ }
+ else if (jump == Py_False) {
+ jump_int = 0;
+ }
+ else {
+ PyErr_SetString(PyExc_ValueError,
+ "stack_effect: jump must be False, True or None");
+ return -1;
+ }
+ effect = PyCompile_OpcodeStackEffectWithJump(opcode, oparg_int, jump_int);
if (effect == PY_INVALID_STACK_EFFECT) {
PyErr_SetString(PyExc_ValueError,
"invalid opcode or oparg");
diff --git a/contrib/tools/python3/src/Modules/_operator.c b/contrib/tools/python3/src/Modules/_operator.c
index 72bd4bdd5d..0136e380d2 100644
--- a/contrib/tools/python3/src/Modules/_operator.c
+++ b/contrib/tools/python3/src/Modules/_operator.c
@@ -494,12 +494,12 @@ _operator_indexOf_impl(PyObject *module, PyObject *a, PyObject *b)
/*[clinic input]
_operator.countOf = _operator.indexOf
-Return the number of items in a which are, or which equal, b.
+Return the number of items in a which are, or which equal, b.
[clinic start generated code]*/
static Py_ssize_t
_operator_countOf_impl(PyObject *module, PyObject *a, PyObject *b)
-/*[clinic end generated code: output=9e1623197daf3382 input=93ea57f170f3f0bb]*/
+/*[clinic end generated code: output=9e1623197daf3382 input=93ea57f170f3f0bb]*/
{
return PySequence_Count(a, b);
}
@@ -735,7 +735,7 @@ _tscmp(const unsigned char *a, const unsigned char *b,
volatile const unsigned char *left;
volatile const unsigned char *right;
Py_ssize_t i;
- volatile unsigned char result;
+ volatile unsigned char result;
/* loop count depends on length of b */
length = len_b;
@@ -785,8 +785,8 @@ _operator_length_hint_impl(PyObject *module, PyObject *obj,
return PyObject_LengthHint(obj, default_value);
}
-/* NOTE: Keep in sync with _hashopenssl.c implementation. */
-
+/* NOTE: Keep in sync with _hashopenssl.c implementation. */
+
/*[clinic input]
_operator._compare_digest = _operator.eq
@@ -939,7 +939,7 @@ typedef struct {
PyObject_HEAD
Py_ssize_t nitems;
PyObject *item;
- Py_ssize_t index; // -1 unless *item* is a single non-negative integer index
+ Py_ssize_t index; // -1 unless *item* is a single non-negative integer index
} itemgetterobject;
static PyTypeObject itemgetter_type;
@@ -951,7 +951,7 @@ itemgetter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
itemgetterobject *ig;
PyObject *item;
Py_ssize_t nitems;
- Py_ssize_t index;
+ Py_ssize_t index;
if (!_PyArg_NoKeywords("itemgetter", kwds))
return NULL;
@@ -971,21 +971,21 @@ itemgetter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_INCREF(item);
ig->item = item;
ig->nitems = nitems;
- ig->index = -1;
- if (PyLong_CheckExact(item)) {
- index = PyLong_AsSsize_t(item);
- if (index < 0) {
- /* If we get here, then either the index conversion failed
- * due to being out of range, or the index was a negative
- * integer. Either way, we clear any possible exception
- * and fall back to the slow path, where ig->index is -1.
- */
- PyErr_Clear();
- }
- else {
- ig->index = index;
- }
- }
+ ig->index = -1;
+ if (PyLong_CheckExact(item)) {
+ index = PyLong_AsSsize_t(item);
+ if (index < 0) {
+ /* If we get here, then either the index conversion failed
+ * due to being out of range, or the index was a negative
+ * integer. Either way, we clear any possible exception
+ * and fall back to the slow path, where ig->index is -1.
+ */
+ PyErr_Clear();
+ }
+ else {
+ ig->index = index;
+ }
+ }
PyObject_GC_Track(ig);
return (PyObject *)ig;
@@ -1012,24 +1012,24 @@ itemgetter_call(itemgetterobject *ig, PyObject *args, PyObject *kw)
PyObject *obj, *result;
Py_ssize_t i, nitems=ig->nitems;
- assert(PyTuple_CheckExact(args));
+ assert(PyTuple_CheckExact(args));
if (!_PyArg_NoKeywords("itemgetter", kw))
return NULL;
- if (!_PyArg_CheckPositional("itemgetter", PyTuple_GET_SIZE(args), 1, 1))
+ if (!_PyArg_CheckPositional("itemgetter", PyTuple_GET_SIZE(args), 1, 1))
return NULL;
-
- obj = PyTuple_GET_ITEM(args, 0);
- if (nitems == 1) {
- if (ig->index >= 0
- && PyTuple_CheckExact(obj)
- && ig->index < PyTuple_GET_SIZE(obj))
- {
- result = PyTuple_GET_ITEM(obj, ig->index);
- Py_INCREF(result);
- return result;
- }
+
+ obj = PyTuple_GET_ITEM(args, 0);
+ if (nitems == 1) {
+ if (ig->index >= 0
+ && PyTuple_CheckExact(obj)
+ && ig->index < PyTuple_GET_SIZE(obj))
+ {
+ result = PyTuple_GET_ITEM(obj, ig->index);
+ Py_INCREF(result);
+ return result;
+ }
return PyObject_GetItem(obj, ig->item);
- }
+ }
assert(PyTuple_Check(ig->item));
assert(PyTuple_GET_SIZE(ig->item) == nitems);
@@ -1071,7 +1071,7 @@ itemgetter_repr(itemgetterobject *ig)
}
static PyObject *
-itemgetter_reduce(itemgetterobject *ig, PyObject *Py_UNUSED(ignored))
+itemgetter_reduce(itemgetterobject *ig, PyObject *Py_UNUSED(ignored))
{
if (ig->nitems == 1)
return Py_BuildValue("O(O)", Py_TYPE(ig), ig->item);
@@ -1100,10 +1100,10 @@ static PyTypeObject itemgetter_type = {
0, /* tp_itemsize */
/* methods */
(destructor)itemgetter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)itemgetter_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1172,7 +1172,7 @@ attrgetter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
for (idx = 0; idx < nattrs; ++idx) {
PyObject *item = PyTuple_GET_ITEM(args, idx);
Py_ssize_t item_len;
- const void *data;
+ const void *data;
unsigned int kind;
int dot_count;
@@ -1316,9 +1316,9 @@ attrgetter_call(attrgetterobject *ag, PyObject *args, PyObject *kw)
if (!_PyArg_NoKeywords("attrgetter", kw))
return NULL;
- if (!_PyArg_CheckPositional("attrgetter", PyTuple_GET_SIZE(args), 1, 1))
+ if (!_PyArg_CheckPositional("attrgetter", PyTuple_GET_SIZE(args), 1, 1))
return NULL;
- obj = PyTuple_GET_ITEM(args, 0);
+ obj = PyTuple_GET_ITEM(args, 0);
if (ag->nattrs == 1) /* ag->attr is always a tuple */
return dotted_getattr(obj, PyTuple_GET_ITEM(ag->attr, 0));
@@ -1414,7 +1414,7 @@ attrgetter_repr(attrgetterobject *ag)
}
static PyObject *
-attrgetter_reduce(attrgetterobject *ag, PyObject *Py_UNUSED(ignored))
+attrgetter_reduce(attrgetterobject *ag, PyObject *Py_UNUSED(ignored))
{
PyObject *attrstrings = attrgetter_args(ag);
if (attrstrings == NULL)
@@ -1445,10 +1445,10 @@ static PyTypeObject attrgetter_type = {
0, /* tp_itemsize */
/* methods */
(destructor)attrgetter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)attrgetter_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1561,9 +1561,9 @@ methodcaller_call(methodcallerobject *mc, PyObject *args, PyObject *kw)
if (!_PyArg_NoKeywords("methodcaller", kw))
return NULL;
- if (!_PyArg_CheckPositional("methodcaller", PyTuple_GET_SIZE(args), 1, 1))
+ if (!_PyArg_CheckPositional("methodcaller", PyTuple_GET_SIZE(args), 1, 1))
return NULL;
- obj = PyTuple_GET_ITEM(args, 0);
+ obj = PyTuple_GET_ITEM(args, 0);
method = PyObject_GetAttr(obj, mc->name);
if (method == NULL)
return NULL;
@@ -1649,7 +1649,7 @@ done:
}
static PyObject *
-methodcaller_reduce(methodcallerobject *mc, PyObject *Py_UNUSED(ignored))
+methodcaller_reduce(methodcallerobject *mc, PyObject *Py_UNUSED(ignored))
{
PyObject *newargs;
if (!mc->kwds || PyDict_GET_SIZE(mc->kwds) == 0) {
@@ -1684,7 +1684,7 @@ methodcaller_reduce(methodcallerobject *mc, PyObject *Py_UNUSED(ignored))
newargs[0] = (PyObject *)Py_TYPE(mc);
newargs[1] = mc->name;
- constructor = PyObject_VectorcallDict(partial, newargs, 2, mc->kwds);
+ constructor = PyObject_VectorcallDict(partial, newargs, 2, mc->kwds);
Py_DECREF(partial);
return Py_BuildValue("NO", constructor, mc->args);
@@ -1711,10 +1711,10 @@ static PyTypeObject methodcaller_type = {
0, /* tp_itemsize */
/* methods */
(destructor)methodcaller_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)methodcaller_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1748,38 +1748,38 @@ static PyTypeObject methodcaller_type = {
};
-static int
-operator_exec(PyObject *module)
-{
- PyTypeObject *types[] = {
- &itemgetter_type,
- &attrgetter_type,
- &methodcaller_type
- };
-
- for (size_t i = 0; i < Py_ARRAY_LENGTH(types); i++) {
- if (PyModule_AddType(module, types[i]) < 0) {
- return -1;
- }
- }
-
- return 0;
-}
-
-
-static struct PyModuleDef_Slot operator_slots[] = {
- {Py_mod_exec, operator_exec},
- {0, NULL}
-};
-
-
+static int
+operator_exec(PyObject *module)
+{
+ PyTypeObject *types[] = {
+ &itemgetter_type,
+ &attrgetter_type,
+ &methodcaller_type
+ };
+
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(types); i++) {
+ if (PyModule_AddType(module, types[i]) < 0) {
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+
+static struct PyModuleDef_Slot operator_slots[] = {
+ {Py_mod_exec, operator_exec},
+ {0, NULL}
+};
+
+
static struct PyModuleDef operatormodule = {
PyModuleDef_HEAD_INIT,
"_operator",
operator_doc,
- 0,
+ 0,
operator_methods,
- operator_slots,
+ operator_slots,
NULL,
NULL,
NULL
@@ -1788,5 +1788,5 @@ static struct PyModuleDef operatormodule = {
PyMODINIT_FUNC
PyInit__operator(void)
{
- return PyModuleDef_Init(&operatormodule);
+ return PyModuleDef_Init(&operatormodule);
}
diff --git a/contrib/tools/python3/src/Modules/_peg_parser.c b/contrib/tools/python3/src/Modules/_peg_parser.c
index c3da4b7a36..ca2a3cf7b5 100644
--- a/contrib/tools/python3/src/Modules/_peg_parser.c
+++ b/contrib/tools/python3/src/Modules/_peg_parser.c
@@ -1,153 +1,153 @@
-#include <Python.h>
-#include "pegen_interface.h"
-
-static int
-_mode_str_to_int(char *mode_str)
-{
- int mode;
- if (strcmp(mode_str, "exec") == 0) {
- mode = Py_file_input;
- }
- else if (strcmp(mode_str, "eval") == 0) {
- mode = Py_eval_input;
- }
- else if (strcmp(mode_str, "single") == 0) {
- mode = Py_single_input;
- }
- else {
- mode = -1;
- }
- return mode;
-}
-
-static mod_ty
-_run_parser(char *str, char *filename, int mode, PyCompilerFlags *flags, PyArena *arena, int oldparser)
-{
- mod_ty mod;
- if (!oldparser) {
- mod = PyPegen_ASTFromString(str, filename, mode, flags, arena);
- }
- else {
- mod = PyParser_ASTFromString(str, filename, mode, flags, arena);
- }
- return mod;
-}
-
-PyObject *
-_Py_compile_string(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *keywords[] = {"string", "filename", "mode", "oldparser", NULL};
- char *the_string;
- char *filename = "<string>";
- char *mode_str = "exec";
- int oldparser = 0;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|ssp", keywords,
- &the_string, &filename, &mode_str, &oldparser)) {
- return NULL;
- }
-
- int mode = _mode_str_to_int(mode_str);
- if (mode == -1) {
- return PyErr_Format(PyExc_ValueError, "mode must be either 'exec' or 'eval' or 'single'");
- }
-
- PyCompilerFlags flags = _PyCompilerFlags_INIT;
- flags.cf_flags = PyCF_IGNORE_COOKIE;
-
- PyArena *arena = PyArena_New();
- if (arena == NULL) {
- return NULL;
- }
-
- mod_ty mod = _run_parser(the_string, filename, mode, &flags, arena, oldparser);
- if (mod == NULL) {
- PyArena_Free(arena);
- return NULL;
- }
-
- PyObject *filename_ob = PyUnicode_DecodeFSDefault(filename);
- if (filename_ob == NULL) {
- PyArena_Free(arena);
- return NULL;
- }
- PyCodeObject *result = PyAST_CompileObject(mod, filename_ob, &flags, -1, arena);
- Py_XDECREF(filename_ob);
- PyArena_Free(arena);
- return (PyObject *)result;
-}
-
-PyObject *
-_Py_parse_string(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *keywords[] = {"string", "filename", "mode", "oldparser", "ast", NULL};
- char *the_string;
- char *filename = "<string>";
- char *mode_str = "exec";
- int oldparser = 0;
- int ast = 1;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|sspp", keywords,
- &the_string, &filename, &mode_str, &oldparser, &ast)) {
- return NULL;
- }
-
- int mode = _mode_str_to_int(mode_str);
- if (mode == -1) {
- return PyErr_Format(PyExc_ValueError, "mode must be either 'exec' or 'eval' or 'single'");
- }
-
- PyCompilerFlags flags = _PyCompilerFlags_INIT;
- flags.cf_flags = PyCF_IGNORE_COOKIE;
-
- PyArena *arena = PyArena_New();
- if (arena == NULL) {
- return NULL;
- }
-
- mod_ty mod = _run_parser(the_string, filename, mode, &flags, arena, oldparser);
- if (mod == NULL) {
- PyArena_Free(arena);
- return NULL;
- }
-
- PyObject *result;
- if (ast) {
- result = PyAST_mod2obj(mod);
- }
- else {
- Py_INCREF(Py_None);
- result = Py_None;
- }
- PyArena_Free(arena);
- return result;
-}
-
-static PyMethodDef ParseMethods[] = {
- {
- "parse_string",
- (PyCFunction)(void (*)(void))_Py_parse_string,
- METH_VARARGS|METH_KEYWORDS,
- "Parse a string, return an AST."
- },
- {
- "compile_string",
- (PyCFunction)(void (*)(void))_Py_compile_string,
- METH_VARARGS|METH_KEYWORDS,
- "Compile a string, return a code object."
- },
- {NULL, NULL, 0, NULL} /* Sentinel */
-};
-
-static struct PyModuleDef parsemodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "peg_parser",
- .m_doc = "A parser.",
- .m_methods = ParseMethods,
-};
-
-PyMODINIT_FUNC
-PyInit__peg_parser(void)
-{
- return PyModule_Create(&parsemodule);
-}
+#include <Python.h>
+#include "pegen_interface.h"
+
+static int
+_mode_str_to_int(char *mode_str)
+{
+ int mode;
+ if (strcmp(mode_str, "exec") == 0) {
+ mode = Py_file_input;
+ }
+ else if (strcmp(mode_str, "eval") == 0) {
+ mode = Py_eval_input;
+ }
+ else if (strcmp(mode_str, "single") == 0) {
+ mode = Py_single_input;
+ }
+ else {
+ mode = -1;
+ }
+ return mode;
+}
+
+static mod_ty
+_run_parser(char *str, char *filename, int mode, PyCompilerFlags *flags, PyArena *arena, int oldparser)
+{
+ mod_ty mod;
+ if (!oldparser) {
+ mod = PyPegen_ASTFromString(str, filename, mode, flags, arena);
+ }
+ else {
+ mod = PyParser_ASTFromString(str, filename, mode, flags, arena);
+ }
+ return mod;
+}
+
+PyObject *
+_Py_compile_string(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *keywords[] = {"string", "filename", "mode", "oldparser", NULL};
+ char *the_string;
+ char *filename = "<string>";
+ char *mode_str = "exec";
+ int oldparser = 0;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|ssp", keywords,
+ &the_string, &filename, &mode_str, &oldparser)) {
+ return NULL;
+ }
+
+ int mode = _mode_str_to_int(mode_str);
+ if (mode == -1) {
+ return PyErr_Format(PyExc_ValueError, "mode must be either 'exec' or 'eval' or 'single'");
+ }
+
+ PyCompilerFlags flags = _PyCompilerFlags_INIT;
+ flags.cf_flags = PyCF_IGNORE_COOKIE;
+
+ PyArena *arena = PyArena_New();
+ if (arena == NULL) {
+ return NULL;
+ }
+
+ mod_ty mod = _run_parser(the_string, filename, mode, &flags, arena, oldparser);
+ if (mod == NULL) {
+ PyArena_Free(arena);
+ return NULL;
+ }
+
+ PyObject *filename_ob = PyUnicode_DecodeFSDefault(filename);
+ if (filename_ob == NULL) {
+ PyArena_Free(arena);
+ return NULL;
+ }
+ PyCodeObject *result = PyAST_CompileObject(mod, filename_ob, &flags, -1, arena);
+ Py_XDECREF(filename_ob);
+ PyArena_Free(arena);
+ return (PyObject *)result;
+}
+
+PyObject *
+_Py_parse_string(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *keywords[] = {"string", "filename", "mode", "oldparser", "ast", NULL};
+ char *the_string;
+ char *filename = "<string>";
+ char *mode_str = "exec";
+ int oldparser = 0;
+ int ast = 1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|sspp", keywords,
+ &the_string, &filename, &mode_str, &oldparser, &ast)) {
+ return NULL;
+ }
+
+ int mode = _mode_str_to_int(mode_str);
+ if (mode == -1) {
+ return PyErr_Format(PyExc_ValueError, "mode must be either 'exec' or 'eval' or 'single'");
+ }
+
+ PyCompilerFlags flags = _PyCompilerFlags_INIT;
+ flags.cf_flags = PyCF_IGNORE_COOKIE;
+
+ PyArena *arena = PyArena_New();
+ if (arena == NULL) {
+ return NULL;
+ }
+
+ mod_ty mod = _run_parser(the_string, filename, mode, &flags, arena, oldparser);
+ if (mod == NULL) {
+ PyArena_Free(arena);
+ return NULL;
+ }
+
+ PyObject *result;
+ if (ast) {
+ result = PyAST_mod2obj(mod);
+ }
+ else {
+ Py_INCREF(Py_None);
+ result = Py_None;
+ }
+ PyArena_Free(arena);
+ return result;
+}
+
+static PyMethodDef ParseMethods[] = {
+ {
+ "parse_string",
+ (PyCFunction)(void (*)(void))_Py_parse_string,
+ METH_VARARGS|METH_KEYWORDS,
+ "Parse a string, return an AST."
+ },
+ {
+ "compile_string",
+ (PyCFunction)(void (*)(void))_Py_compile_string,
+ METH_VARARGS|METH_KEYWORDS,
+ "Compile a string, return a code object."
+ },
+ {NULL, NULL, 0, NULL} /* Sentinel */
+};
+
+static struct PyModuleDef parsemodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "peg_parser",
+ .m_doc = "A parser.",
+ .m_methods = ParseMethods,
+};
+
+PyMODINIT_FUNC
+PyInit__peg_parser(void)
+{
+ return PyModule_Create(&parsemodule);
+}
diff --git a/contrib/tools/python3/src/Modules/_pickle.c b/contrib/tools/python3/src/Modules/_pickle.c
index 6577e77112..30bb5c0d75 100644
--- a/contrib/tools/python3/src/Modules/_pickle.c
+++ b/contrib/tools/python3/src/Modules/_pickle.c
@@ -1,15 +1,15 @@
-/* pickle accelerator C extensor: _pickle module.
- *
- * It is built as a built-in module (Py_BUILD_CORE_BUILTIN define) on Windows
- * and as an extension module (Py_BUILD_CORE_MODULE define) on other
- * platforms. */
-
-#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
-# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
+/* pickle accelerator C extensor: _pickle module.
+ *
+ * It is built as a built-in module (Py_BUILD_CORE_BUILTIN define) on Windows
+ * and as an extension module (Py_BUILD_CORE_MODULE define) on other
+ * platforms. */
+
+#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
+# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
#endif
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
PyDoc_STRVAR(pickle_module_doc,
"Optimized C implementation for the Python pickle module.");
@@ -23,12 +23,12 @@ class _pickle.UnpicklerMemoProxy "UnpicklerMemoProxyObject *" "&UnpicklerMemoPro
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=4b3e113468a58e6c]*/
-/* Bump HIGHEST_PROTOCOL when new opcodes are added to the pickle protocol.
- Bump DEFAULT_PROTOCOL only when the oldest still supported version of Python
- already includes it. */
+/* Bump HIGHEST_PROTOCOL when new opcodes are added to the pickle protocol.
+ Bump DEFAULT_PROTOCOL only when the oldest still supported version of Python
+ already includes it. */
enum {
- HIGHEST_PROTOCOL = 5,
- DEFAULT_PROTOCOL = 4
+ HIGHEST_PROTOCOL = 5,
+ DEFAULT_PROTOCOL = 4
};
/* Pickle opcodes. These must be kept updated with pickle.py.
@@ -104,12 +104,12 @@ enum opcode {
NEWOBJ_EX = '\x92',
STACK_GLOBAL = '\x93',
MEMOIZE = '\x94',
- FRAME = '\x95',
-
- /* Protocol 5 */
- BYTEARRAY8 = '\x96',
- NEXT_BUFFER = '\x97',
- READONLY_BUFFER = '\x98'
+ FRAME = '\x95',
+
+ /* Protocol 5 */
+ BYTEARRAY8 = '\x96',
+ NEXT_BUFFER = '\x97',
+ READONLY_BUFFER = '\x98'
};
enum {
@@ -359,7 +359,7 @@ _Pickle_FastCall(PyObject *func, PyObject *obj)
{
PyObject *result;
- result = PyObject_CallOneArg(func, obj);
+ result = PyObject_CallOneArg(func, obj);
Py_DECREF(obj);
return result;
}
@@ -420,7 +420,7 @@ call_method(PyObject *func, PyObject *self, PyObject *obj)
return PyObject_CallFunctionObjArgs(func, self, obj, NULL);
}
else {
- return PyObject_CallOneArg(func, obj);
+ return PyObject_CallOneArg(func, obj);
}
}
@@ -461,7 +461,7 @@ Pdata_New(void)
if (!(self = PyObject_New(Pdata, &Pdata_Type)))
return NULL;
- Py_SET_SIZE(self, 0);
+ Py_SET_SIZE(self, 0);
self->mark_set = 0;
self->fence = 0;
self->allocated = 8;
@@ -488,7 +488,7 @@ Pdata_clear(Pdata *self, Py_ssize_t clearto)
while (--i >= clearto) {
Py_CLEAR(self->data[i]);
}
- Py_SET_SIZE(self, clearto);
+ Py_SET_SIZE(self, clearto);
return 0;
}
@@ -539,8 +539,8 @@ Pdata_pop(Pdata *self)
Pdata_stack_underflow(self);
return NULL;
}
- Py_SET_SIZE(self, Py_SIZE(self) - 1);
- return self->data[Py_SIZE(self)];
+ Py_SET_SIZE(self, Py_SIZE(self) - 1);
+ return self->data[Py_SIZE(self)];
}
#define PDATA_POP(D, V) do { (V) = Pdata_pop((D)); } while (0)
@@ -550,8 +550,8 @@ Pdata_push(Pdata *self, PyObject *obj)
if (Py_SIZE(self) == self->allocated && Pdata_grow(self) < 0) {
return -1;
}
- self->data[Py_SIZE(self)] = obj;
- Py_SET_SIZE(self, Py_SIZE(self) + 1);
+ self->data[Py_SIZE(self)] = obj;
+ Py_SET_SIZE(self, Py_SIZE(self) + 1);
return 0;
}
@@ -581,7 +581,7 @@ Pdata_poptuple(Pdata *self, Py_ssize_t start)
for (i = start, j = 0; j < len; i++, j++)
PyTuple_SET_ITEM(tuple, j, self->data[i]);
- Py_SET_SIZE(self, start);
+ Py_SET_SIZE(self, start);
return tuple;
}
@@ -598,7 +598,7 @@ Pdata_poplist(Pdata *self, Py_ssize_t start)
for (i = start, j = 0; j < len; i++, j++)
PyList_SET_ITEM(list, j, self->data[i]);
- Py_SET_SIZE(self, start);
+ Py_SET_SIZE(self, start);
return list;
}
@@ -623,9 +623,9 @@ typedef struct PicklerObject {
PyObject *pers_func_self; /* borrowed reference to self if pers_func
is an unbound method, NULL otherwise */
PyObject *dispatch_table; /* private dispatch_table, can be NULL */
- PyObject *reducer_override; /* hook for invoking user-defined callbacks
- instead of save_global when pickling
- functions and classes*/
+ PyObject *reducer_override; /* hook for invoking user-defined callbacks
+ instead of save_global when pickling
+ functions and classes*/
PyObject *write; /* write() method of the output stream. */
PyObject *output_buffer; /* Write into a local bytearray buffer before
@@ -650,7 +650,7 @@ typedef struct PicklerObject {
int fix_imports; /* Indicate whether Pickler should fix
the name of globals for Python 2.x. */
PyObject *fast_memo;
- PyObject *buffer_callback; /* Callback for out-of-band buffers, or NULL */
+ PyObject *buffer_callback; /* Callback for out-of-band buffers, or NULL */
} PicklerObject;
typedef struct UnpicklerObject {
@@ -675,10 +675,10 @@ typedef struct UnpicklerObject {
Py_ssize_t prefetched_idx; /* index of first prefetched byte */
PyObject *read; /* read() method of the input stream. */
- PyObject *readinto; /* readinto() method of the input stream. */
+ PyObject *readinto; /* readinto() method of the input stream. */
PyObject *readline; /* readline() method of the input stream. */
PyObject *peek; /* peek() method of the input stream, or NULL */
- PyObject *buffers; /* iterable of out-of-band buffers, or NULL */
+ PyObject *buffers; /* iterable of out-of-band buffers, or NULL */
char *encoding; /* Name of the encoding to be used for
decoding strings pickled using Python
@@ -1112,7 +1112,7 @@ _Pickler_New(void)
self->pers_func = NULL;
self->dispatch_table = NULL;
- self->buffer_callback = NULL;
+ self->buffer_callback = NULL;
self->write = NULL;
self->proto = 0;
self->bin = 0;
@@ -1124,7 +1124,7 @@ _Pickler_New(void)
self->fast_memo = NULL;
self->max_output_len = WRITE_BUF_SIZE;
self->output_len = 0;
- self->reducer_override = NULL;
+ self->reducer_override = NULL;
self->memo = PyMemoTable_New();
self->output_buffer = PyBytes_FromStringAndSize(NULL,
@@ -1134,8 +1134,8 @@ _Pickler_New(void)
Py_DECREF(self);
return NULL;
}
-
- PyObject_GC_Track(self);
+
+ PyObject_GC_Track(self);
return self;
}
@@ -1144,7 +1144,7 @@ _Pickler_SetProtocol(PicklerObject *self, PyObject *protocol, int fix_imports)
{
long proto;
- if (protocol == Py_None) {
+ if (protocol == Py_None) {
proto = DEFAULT_PROTOCOL;
}
else {
@@ -1185,23 +1185,23 @@ _Pickler_SetOutputStream(PicklerObject *self, PyObject *file)
return 0;
}
-static int
-_Pickler_SetBufferCallback(PicklerObject *self, PyObject *buffer_callback)
-{
- if (buffer_callback == Py_None) {
- buffer_callback = NULL;
- }
- if (buffer_callback != NULL && self->proto < 5) {
- PyErr_SetString(PyExc_ValueError,
- "buffer_callback needs protocol >= 5");
- return -1;
- }
-
- Py_XINCREF(buffer_callback);
- self->buffer_callback = buffer_callback;
- return 0;
-}
-
+static int
+_Pickler_SetBufferCallback(PicklerObject *self, PyObject *buffer_callback)
+{
+ if (buffer_callback == Py_None) {
+ buffer_callback = NULL;
+ }
+ if (buffer_callback != NULL && self->proto < 5) {
+ PyErr_SetString(PyExc_ValueError,
+ "buffer_callback needs protocol >= 5");
+ return -1;
+ }
+
+ Py_XINCREF(buffer_callback);
+ self->buffer_callback = buffer_callback;
+ return 0;
+}
+
/* Returns the size of the input on success, -1 on failure. This takes its
own reference to `input`. */
static Py_ssize_t
@@ -1226,7 +1226,7 @@ bad_readline(void)
return -1;
}
-/* Skip any consumed data that was only prefetched using peek() */
+/* Skip any consumed data that was only prefetched using peek() */
static int
_Unpickler_SkipConsumed(UnpicklerObject *self)
{
@@ -1276,7 +1276,7 @@ _Unpickler_ReadFromFile(UnpicklerObject *self, Py_ssize_t n)
return -1;
if (n == READ_WHOLE_LINE) {
- data = PyObject_CallNoArgs(self->readline);
+ data = PyObject_CallNoArgs(self->readline);
}
else {
PyObject *len;
@@ -1334,7 +1334,7 @@ _Unpickler_ReadImpl(UnpicklerObject *self, char **s, Py_ssize_t n)
if (!self->read)
return bad_readline();
- /* Extend the buffer to satisfy desired size */
+ /* Extend the buffer to satisfy desired size */
num_read = _Unpickler_ReadFromFile(self, n);
if (num_read < 0)
return -1;
@@ -1345,95 +1345,95 @@ _Unpickler_ReadImpl(UnpicklerObject *self, char **s, Py_ssize_t n)
return n;
}
-/* Read `n` bytes from the unpickler's data source, storing the result in `buf`.
- *
- * This should only be used for non-small data reads where potentially
- * avoiding a copy is beneficial. This method does not try to prefetch
- * more data into the input buffer.
- *
- * _Unpickler_Read() is recommended in most cases.
- */
-static Py_ssize_t
-_Unpickler_ReadInto(UnpicklerObject *self, char *buf, Py_ssize_t n)
-{
- assert(n != READ_WHOLE_LINE);
-
- /* Read from available buffer data, if any */
- Py_ssize_t in_buffer = self->input_len - self->next_read_idx;
- if (in_buffer > 0) {
- Py_ssize_t to_read = Py_MIN(in_buffer, n);
- memcpy(buf, self->input_buffer + self->next_read_idx, to_read);
- self->next_read_idx += to_read;
- buf += to_read;
- n -= to_read;
- if (n == 0) {
- /* Entire read was satisfied from buffer */
- return n;
- }
- }
-
- /* Read from file */
- if (!self->read) {
- /* We're unpickling memory, this means the input is truncated */
- return bad_readline();
- }
- if (_Unpickler_SkipConsumed(self) < 0) {
- return -1;
- }
-
- if (!self->readinto) {
- /* readinto() not supported on file-like object, fall back to read()
- * and copy into destination buffer (bpo-39681) */
- PyObject* len = PyLong_FromSsize_t(n);
- if (len == NULL) {
- return -1;
- }
- PyObject* data = _Pickle_FastCall(self->read, len);
- if (data == NULL) {
- return -1;
- }
- if (!PyBytes_Check(data)) {
- PyErr_Format(PyExc_ValueError,
- "read() returned non-bytes object (%R)",
- Py_TYPE(data));
- Py_DECREF(data);
- return -1;
- }
- Py_ssize_t read_size = PyBytes_GET_SIZE(data);
- if (read_size < n) {
- Py_DECREF(data);
- return bad_readline();
- }
- memcpy(buf, PyBytes_AS_STRING(data), n);
- Py_DECREF(data);
- return n;
- }
-
- /* Call readinto() into user buffer */
- PyObject *buf_obj = PyMemoryView_FromMemory(buf, n, PyBUF_WRITE);
- if (buf_obj == NULL) {
- return -1;
- }
- PyObject *read_size_obj = _Pickle_FastCall(self->readinto, buf_obj);
- if (read_size_obj == NULL) {
- return -1;
- }
- Py_ssize_t read_size = PyLong_AsSsize_t(read_size_obj);
- Py_DECREF(read_size_obj);
-
- if (read_size < 0) {
- if (!PyErr_Occurred()) {
- PyErr_SetString(PyExc_ValueError,
- "readinto() returned negative size");
- }
- return -1;
- }
- if (read_size < n) {
- return bad_readline();
- }
- return n;
-}
-
+/* Read `n` bytes from the unpickler's data source, storing the result in `buf`.
+ *
+ * This should only be used for non-small data reads where potentially
+ * avoiding a copy is beneficial. This method does not try to prefetch
+ * more data into the input buffer.
+ *
+ * _Unpickler_Read() is recommended in most cases.
+ */
+static Py_ssize_t
+_Unpickler_ReadInto(UnpicklerObject *self, char *buf, Py_ssize_t n)
+{
+ assert(n != READ_WHOLE_LINE);
+
+ /* Read from available buffer data, if any */
+ Py_ssize_t in_buffer = self->input_len - self->next_read_idx;
+ if (in_buffer > 0) {
+ Py_ssize_t to_read = Py_MIN(in_buffer, n);
+ memcpy(buf, self->input_buffer + self->next_read_idx, to_read);
+ self->next_read_idx += to_read;
+ buf += to_read;
+ n -= to_read;
+ if (n == 0) {
+ /* Entire read was satisfied from buffer */
+ return n;
+ }
+ }
+
+ /* Read from file */
+ if (!self->read) {
+ /* We're unpickling memory, this means the input is truncated */
+ return bad_readline();
+ }
+ if (_Unpickler_SkipConsumed(self) < 0) {
+ return -1;
+ }
+
+ if (!self->readinto) {
+ /* readinto() not supported on file-like object, fall back to read()
+ * and copy into destination buffer (bpo-39681) */
+ PyObject* len = PyLong_FromSsize_t(n);
+ if (len == NULL) {
+ return -1;
+ }
+ PyObject* data = _Pickle_FastCall(self->read, len);
+ if (data == NULL) {
+ return -1;
+ }
+ if (!PyBytes_Check(data)) {
+ PyErr_Format(PyExc_ValueError,
+ "read() returned non-bytes object (%R)",
+ Py_TYPE(data));
+ Py_DECREF(data);
+ return -1;
+ }
+ Py_ssize_t read_size = PyBytes_GET_SIZE(data);
+ if (read_size < n) {
+ Py_DECREF(data);
+ return bad_readline();
+ }
+ memcpy(buf, PyBytes_AS_STRING(data), n);
+ Py_DECREF(data);
+ return n;
+ }
+
+ /* Call readinto() into user buffer */
+ PyObject *buf_obj = PyMemoryView_FromMemory(buf, n, PyBUF_WRITE);
+ if (buf_obj == NULL) {
+ return -1;
+ }
+ PyObject *read_size_obj = _Pickle_FastCall(self->readinto, buf_obj);
+ if (read_size_obj == NULL) {
+ return -1;
+ }
+ Py_ssize_t read_size = PyLong_AsSsize_t(read_size_obj);
+ Py_DECREF(read_size_obj);
+
+ if (read_size < 0) {
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(PyExc_ValueError,
+ "readinto() returned negative size");
+ }
+ return -1;
+ }
+ if (read_size < n) {
+ return bad_readline();
+ }
+ return n;
+}
+
/* Read `n` bytes from the unpickler's data source, storing the result in `*s`.
This should be used for all data reads, rather than accessing the unpickler's
@@ -1601,10 +1601,10 @@ _Unpickler_New(void)
self->next_read_idx = 0;
self->prefetched_idx = 0;
self->read = NULL;
- self->readinto = NULL;
+ self->readinto = NULL;
self->readline = NULL;
self->peek = NULL;
- self->buffers = NULL;
+ self->buffers = NULL;
self->encoding = NULL;
self->errors = NULL;
self->marks = NULL;
@@ -1623,36 +1623,36 @@ _Unpickler_New(void)
return NULL;
}
- PyObject_GC_Track(self);
+ PyObject_GC_Track(self);
return self;
}
/* Returns -1 (with an exception set) on failure, 0 on success. This may
- be called once on a freshly created Unpickler. */
+ be called once on a freshly created Unpickler. */
static int
_Unpickler_SetInputStream(UnpicklerObject *self, PyObject *file)
{
_Py_IDENTIFIER(peek);
_Py_IDENTIFIER(read);
- _Py_IDENTIFIER(readinto);
+ _Py_IDENTIFIER(readinto);
_Py_IDENTIFIER(readline);
- /* Optional file methods */
+ /* Optional file methods */
if (_PyObject_LookupAttrId(file, &PyId_peek, &self->peek) < 0) {
return -1;
}
- if (_PyObject_LookupAttrId(file, &PyId_readinto, &self->readinto) < 0) {
- return -1;
- }
+ if (_PyObject_LookupAttrId(file, &PyId_readinto, &self->readinto) < 0) {
+ return -1;
+ }
(void)_PyObject_LookupAttrId(file, &PyId_read, &self->read);
(void)_PyObject_LookupAttrId(file, &PyId_readline, &self->readline);
- if (!self->readline || !self->read) {
+ if (!self->readline || !self->read) {
if (!PyErr_Occurred()) {
PyErr_SetString(PyExc_TypeError,
"file must have 'read' and 'readline' attributes");
}
Py_CLEAR(self->read);
- Py_CLEAR(self->readinto);
+ Py_CLEAR(self->readinto);
Py_CLEAR(self->readline);
Py_CLEAR(self->peek);
return -1;
@@ -1661,7 +1661,7 @@ _Unpickler_SetInputStream(UnpicklerObject *self, PyObject *file)
}
/* Returns -1 (with an exception set) on failure, 0 on success. This may
- be called once on a freshly created Unpickler. */
+ be called once on a freshly created Unpickler. */
static int
_Unpickler_SetInputEncoding(UnpicklerObject *self,
const char *encoding,
@@ -1681,23 +1681,23 @@ _Unpickler_SetInputEncoding(UnpicklerObject *self,
return 0;
}
-/* Returns -1 (with an exception set) on failure, 0 on success. This may
- be called once on a freshly created Unpickler. */
-static int
-_Unpickler_SetBuffers(UnpicklerObject *self, PyObject *buffers)
-{
- if (buffers == NULL || buffers == Py_None) {
- self->buffers = NULL;
- }
- else {
- self->buffers = PyObject_GetIter(buffers);
- if (self->buffers == NULL) {
- return -1;
- }
- }
- return 0;
-}
-
+/* Returns -1 (with an exception set) on failure, 0 on success. This may
+ be called once on a freshly created Unpickler. */
+static int
+_Unpickler_SetBuffers(UnpicklerObject *self, PyObject *buffers)
+{
+ if (buffers == NULL || buffers == Py_None) {
+ self->buffers = NULL;
+ }
+ else {
+ self->buffers = PyObject_GetIter(buffers);
+ if (self->buffers == NULL) {
+ return -1;
+ }
+ }
+ return 0;
+}
+
/* Generate a GET opcode for an object stored in the memo. */
static int
memo_get(PicklerObject *self, PyObject *key)
@@ -2009,7 +2009,7 @@ fast_save_enter(PicklerObject *self, PyObject *obj)
PyErr_Format(PyExc_ValueError,
"fast mode: can't pickle cyclic objects "
"including object type %.200s at %p",
- Py_TYPE(obj)->tp_name, obj);
+ Py_TYPE(obj)->tp_name, obj);
self->fast_nesting = -1;
return 0;
}
@@ -2152,7 +2152,7 @@ save_long(PicklerObject *self, PyObject *obj)
/* How many bytes do we need? There are nbits >> 3 full
* bytes of data, and nbits & 7 leftover bits. If there
* are any leftover bits, then we clearly need another
- * byte. What's not so obvious is that we *probably*
+ * byte. What's not so obvious is that we *probably*
* need another byte even if there aren't any leftovers:
* the most-significant bit of the most-significant byte
* acts like a sign bit, and it's usually got a sense
@@ -2329,7 +2329,7 @@ _Pickler_write_bytes(PicklerObject *self,
return -1;
}
}
- result = PyObject_CallOneArg(self->write, payload);
+ result = PyObject_CallOneArg(self->write, payload);
Py_XDECREF(mem);
if (result == NULL) {
return -1;
@@ -2354,54 +2354,54 @@ _Pickler_write_bytes(PicklerObject *self,
}
static int
-_save_bytes_data(PicklerObject *self, PyObject *obj, const char *data,
- Py_ssize_t size)
-{
- assert(self->proto >= 3);
-
- char header[9];
- Py_ssize_t len;
-
- if (size < 0)
- return -1;
-
- if (size <= 0xff) {
- header[0] = SHORT_BINBYTES;
- header[1] = (unsigned char)size;
- len = 2;
- }
- else if ((size_t)size <= 0xffffffffUL) {
- header[0] = BINBYTES;
- header[1] = (unsigned char)(size & 0xff);
- header[2] = (unsigned char)((size >> 8) & 0xff);
- header[3] = (unsigned char)((size >> 16) & 0xff);
- header[4] = (unsigned char)((size >> 24) & 0xff);
- len = 5;
- }
- else if (self->proto >= 4) {
- header[0] = BINBYTES8;
- _write_size64(header + 1, size);
- len = 9;
- }
- else {
- PyErr_SetString(PyExc_OverflowError,
- "serializing a bytes object larger than 4 GiB "
- "requires pickle protocol 4 or higher");
- return -1;
- }
-
- if (_Pickler_write_bytes(self, header, len, data, size, obj) < 0) {
- return -1;
- }
-
- if (memo_put(self, obj) < 0) {
- return -1;
- }
-
- return 0;
-}
-
-static int
+_save_bytes_data(PicklerObject *self, PyObject *obj, const char *data,
+ Py_ssize_t size)
+{
+ assert(self->proto >= 3);
+
+ char header[9];
+ Py_ssize_t len;
+
+ if (size < 0)
+ return -1;
+
+ if (size <= 0xff) {
+ header[0] = SHORT_BINBYTES;
+ header[1] = (unsigned char)size;
+ len = 2;
+ }
+ else if ((size_t)size <= 0xffffffffUL) {
+ header[0] = BINBYTES;
+ header[1] = (unsigned char)(size & 0xff);
+ header[2] = (unsigned char)((size >> 8) & 0xff);
+ header[3] = (unsigned char)((size >> 16) & 0xff);
+ header[4] = (unsigned char)((size >> 24) & 0xff);
+ len = 5;
+ }
+ else if (self->proto >= 4) {
+ header[0] = BINBYTES8;
+ _write_size64(header + 1, size);
+ len = 9;
+ }
+ else {
+ PyErr_SetString(PyExc_OverflowError,
+ "serializing a bytes object larger than 4 GiB "
+ "requires pickle protocol 4 or higher");
+ return -1;
+ }
+
+ if (_Pickler_write_bytes(self, header, len, data, size, obj) < 0) {
+ return -1;
+ }
+
+ if (memo_put(self, obj) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
save_bytes(PicklerObject *self, PyObject *obj)
{
if (self->proto < 3) {
@@ -2416,7 +2416,7 @@ save_bytes(PicklerObject *self, PyObject *obj)
Python 2 *and* the appropriate 'bytes' object when unpickled
using Python 3. Again this is a hack and we don't need to do this
with newer protocols. */
- PyObject *reduce_value;
+ PyObject *reduce_value;
int status;
if (PyBytes_GET_SIZE(obj) == 0) {
@@ -2447,131 +2447,131 @@ save_bytes(PicklerObject *self, PyObject *obj)
return status;
}
else {
- return _save_bytes_data(self, obj, PyBytes_AS_STRING(obj),
- PyBytes_GET_SIZE(obj));
- }
-}
-
-static int
-_save_bytearray_data(PicklerObject *self, PyObject *obj, const char *data,
- Py_ssize_t size)
-{
- assert(self->proto >= 5);
-
- char header[9];
- Py_ssize_t len;
-
- if (size < 0)
- return -1;
-
- header[0] = BYTEARRAY8;
- _write_size64(header + 1, size);
- len = 9;
-
- if (_Pickler_write_bytes(self, header, len, data, size, obj) < 0) {
- return -1;
- }
-
- if (memo_put(self, obj) < 0) {
- return -1;
- }
-
- return 0;
-}
-
-static int
-save_bytearray(PicklerObject *self, PyObject *obj)
-{
- if (self->proto < 5) {
- /* Older pickle protocols do not have an opcode for pickling
- * bytearrays. */
- PyObject *reduce_value = NULL;
- int status;
-
- if (PyByteArray_GET_SIZE(obj) == 0) {
- reduce_value = Py_BuildValue("(O())",
- (PyObject *) &PyByteArray_Type);
- }
- else {
- PyObject *bytes_obj = PyBytes_FromObject(obj);
- if (bytes_obj != NULL) {
- reduce_value = Py_BuildValue("(O(O))",
- (PyObject *) &PyByteArray_Type,
- bytes_obj);
- Py_DECREF(bytes_obj);
- }
- }
- if (reduce_value == NULL)
+ return _save_bytes_data(self, obj, PyBytes_AS_STRING(obj),
+ PyBytes_GET_SIZE(obj));
+ }
+}
+
+static int
+_save_bytearray_data(PicklerObject *self, PyObject *obj, const char *data,
+ Py_ssize_t size)
+{
+ assert(self->proto >= 5);
+
+ char header[9];
+ Py_ssize_t len;
+
+ if (size < 0)
+ return -1;
+
+ header[0] = BYTEARRAY8;
+ _write_size64(header + 1, size);
+ len = 9;
+
+ if (_Pickler_write_bytes(self, header, len, data, size, obj) < 0) {
+ return -1;
+ }
+
+ if (memo_put(self, obj) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+save_bytearray(PicklerObject *self, PyObject *obj)
+{
+ if (self->proto < 5) {
+ /* Older pickle protocols do not have an opcode for pickling
+ * bytearrays. */
+ PyObject *reduce_value = NULL;
+ int status;
+
+ if (PyByteArray_GET_SIZE(obj) == 0) {
+ reduce_value = Py_BuildValue("(O())",
+ (PyObject *) &PyByteArray_Type);
+ }
+ else {
+ PyObject *bytes_obj = PyBytes_FromObject(obj);
+ if (bytes_obj != NULL) {
+ reduce_value = Py_BuildValue("(O(O))",
+ (PyObject *) &PyByteArray_Type,
+ bytes_obj);
+ Py_DECREF(bytes_obj);
+ }
+ }
+ if (reduce_value == NULL)
return -1;
- /* save_reduce() will memoize the object automatically. */
- status = save_reduce(self, reduce_value, obj);
- Py_DECREF(reduce_value);
- return status;
- }
- else {
- return _save_bytearray_data(self, obj, PyByteArray_AS_STRING(obj),
- PyByteArray_GET_SIZE(obj));
- }
-}
-
-static int
-save_picklebuffer(PicklerObject *self, PyObject *obj)
-{
- if (self->proto < 5) {
- PickleState *st = _Pickle_GetGlobalState();
- PyErr_SetString(st->PicklingError,
- "PickleBuffer can only pickled with protocol >= 5");
- return -1;
- }
- const Py_buffer* view = PyPickleBuffer_GetBuffer(obj);
- if (view == NULL) {
- return -1;
- }
- if (view->suboffsets != NULL || !PyBuffer_IsContiguous(view, 'A')) {
- PickleState *st = _Pickle_GetGlobalState();
- PyErr_SetString(st->PicklingError,
- "PickleBuffer can not be pickled when "
- "pointing to a non-contiguous buffer");
- return -1;
- }
- int in_band = 1;
- if (self->buffer_callback != NULL) {
- PyObject *ret = PyObject_CallOneArg(self->buffer_callback, obj);
- if (ret == NULL) {
- return -1;
- }
- in_band = PyObject_IsTrue(ret);
- Py_DECREF(ret);
- if (in_band == -1) {
- return -1;
- }
- }
- if (in_band) {
- /* Write data in-band */
- if (view->readonly) {
- return _save_bytes_data(self, obj, (const char*) view->buf,
- view->len);
+ /* save_reduce() will memoize the object automatically. */
+ status = save_reduce(self, reduce_value, obj);
+ Py_DECREF(reduce_value);
+ return status;
+ }
+ else {
+ return _save_bytearray_data(self, obj, PyByteArray_AS_STRING(obj),
+ PyByteArray_GET_SIZE(obj));
+ }
+}
+
+static int
+save_picklebuffer(PicklerObject *self, PyObject *obj)
+{
+ if (self->proto < 5) {
+ PickleState *st = _Pickle_GetGlobalState();
+ PyErr_SetString(st->PicklingError,
+ "PickleBuffer can only pickled with protocol >= 5");
+ return -1;
+ }
+ const Py_buffer* view = PyPickleBuffer_GetBuffer(obj);
+ if (view == NULL) {
+ return -1;
+ }
+ if (view->suboffsets != NULL || !PyBuffer_IsContiguous(view, 'A')) {
+ PickleState *st = _Pickle_GetGlobalState();
+ PyErr_SetString(st->PicklingError,
+ "PickleBuffer can not be pickled when "
+ "pointing to a non-contiguous buffer");
+ return -1;
+ }
+ int in_band = 1;
+ if (self->buffer_callback != NULL) {
+ PyObject *ret = PyObject_CallOneArg(self->buffer_callback, obj);
+ if (ret == NULL) {
+ return -1;
+ }
+ in_band = PyObject_IsTrue(ret);
+ Py_DECREF(ret);
+ if (in_band == -1) {
+ return -1;
+ }
+ }
+ if (in_band) {
+ /* Write data in-band */
+ if (view->readonly) {
+ return _save_bytes_data(self, obj, (const char*) view->buf,
+ view->len);
}
else {
- return _save_bytearray_data(self, obj, (const char*) view->buf,
- view->len);
- }
- }
- else {
- /* Write data out-of-band */
- const char next_buffer_op = NEXT_BUFFER;
- if (_Pickler_Write(self, &next_buffer_op, 1) < 0) {
+ return _save_bytearray_data(self, obj, (const char*) view->buf,
+ view->len);
+ }
+ }
+ else {
+ /* Write data out-of-band */
+ const char next_buffer_op = NEXT_BUFFER;
+ if (_Pickler_Write(self, &next_buffer_op, 1) < 0) {
return -1;
}
- if (view->readonly) {
- const char readonly_buffer_op = READONLY_BUFFER;
- if (_Pickler_Write(self, &readonly_buffer_op, 1) < 0) {
- return -1;
- }
- }
+ if (view->readonly) {
+ const char readonly_buffer_op = READONLY_BUFFER;
+ if (_Pickler_Write(self, &readonly_buffer_op, 1) < 0) {
+ return -1;
+ }
+ }
}
- return 0;
+ return 0;
}
/* A copy of PyUnicode_EncodeRawUnicodeEscape() that also translates
@@ -2581,7 +2581,7 @@ raw_unicode_escape(PyObject *obj)
{
char *p;
Py_ssize_t i, size;
- const void *data;
+ const void *data;
unsigned int kind;
_PyBytesWriter writer;
@@ -2620,10 +2620,10 @@ raw_unicode_escape(PyObject *obj)
*p++ = Py_hexdigits[ch & 15];
}
/* Map 16-bit characters, '\\' and '\n' to '\uxxxx' */
- else if (ch >= 256 ||
- ch == '\\' || ch == 0 || ch == '\n' || ch == '\r' ||
- ch == 0x1a)
- {
+ else if (ch >= 256 ||
+ ch == '\\' || ch == 0 || ch == '\n' || ch == '\r' ||
+ ch == 0x1a)
+ {
/* -1: subtract 1 preallocated byte */
p = _PyBytesWriter_Prepare(&writer, p, 6-1);
if (p == NULL)
@@ -2694,8 +2694,8 @@ write_unicode_binary(PicklerObject *self, PyObject *obj)
}
else {
PyErr_SetString(PyExc_OverflowError,
- "serializing a string larger than 4 GiB "
- "requires pickle protocol 4 or higher");
+ "serializing a string larger than 4 GiB "
+ "requires pickle protocol 4 or higher");
Py_XDECREF(encoded);
return -1;
}
@@ -3338,7 +3338,7 @@ save_dict(PicklerObject *self, PyObject *obj)
} else {
_Py_IDENTIFIER(items);
- items = _PyObject_CallMethodIdNoArgs(obj, &PyId_items);
+ items = _PyObject_CallMethodIdNoArgs(obj, &PyId_items);
if (items == NULL)
goto error;
iter = PyObject_GetIter(items);
@@ -3944,7 +3944,7 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
PyObject *state = NULL;
PyObject *listitems = Py_None;
PyObject *dictitems = Py_None;
- PyObject *state_setter = Py_None;
+ PyObject *state_setter = Py_None;
PickleState *st = _Pickle_GetGlobalState();
Py_ssize_t size;
int use_newobj = 0, use_newobj_ex = 0;
@@ -3955,15 +3955,15 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
const char newobj_ex_op = NEWOBJ_EX;
size = PyTuple_Size(args);
- if (size < 2 || size > 6) {
+ if (size < 2 || size > 6) {
PyErr_SetString(st->PicklingError, "tuple returned by "
- "__reduce__ must contain 2 through 6 elements");
+ "__reduce__ must contain 2 through 6 elements");
return -1;
}
- if (!PyArg_UnpackTuple(args, "save_reduce", 2, 6,
- &callable, &argtup, &state, &listitems, &dictitems,
- &state_setter))
+ if (!PyArg_UnpackTuple(args, "save_reduce", 2, 6,
+ &callable, &argtup, &state, &listitems, &dictitems,
+ &state_setter))
return -1;
if (!PyCallable_Check(callable)) {
@@ -3998,15 +3998,15 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
return -1;
}
- if (state_setter == Py_None)
- state_setter = NULL;
- else if (!PyCallable_Check(state_setter)) {
- PyErr_Format(st->PicklingError, "sixth element of the tuple "
- "returned by __reduce__ must be a function, not %s",
- Py_TYPE(state_setter)->tp_name);
- return -1;
- }
-
+ if (state_setter == Py_None)
+ state_setter = NULL;
+ else if (!PyCallable_Check(state_setter)) {
+ PyErr_Format(st->PicklingError, "sixth element of the tuple "
+ "returned by __reduce__ must be a function, not %s",
+ Py_TYPE(state_setter)->tp_name);
+ return -1;
+ }
+
if (self->proto >= 2) {
PyObject *name;
_Py_IDENTIFIER(__name__);
@@ -4226,31 +4226,31 @@ save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
return -1;
if (state) {
- if (state_setter == NULL) {
- if (save(self, state, 0) < 0 ||
- _Pickler_Write(self, &build_op, 1) < 0)
- return -1;
- }
- else {
-
- /* If a state_setter is specified, call it instead of load_build to
- * update obj's with its previous state.
- * The first 4 save/write instructions push state_setter and its
- * tuple of expected arguments (obj, state) onto the stack. The
- * REDUCE opcode triggers the state_setter(obj, state) function
- * call. Finally, because state-updating routines only do in-place
- * modification, the whole operation has to be stack-transparent.
- * Thus, we finally pop the call's output from the stack.*/
-
- const char tupletwo_op = TUPLE2;
- const char pop_op = POP;
- if (save(self, state_setter, 0) < 0 ||
- save(self, obj, 0) < 0 || save(self, state, 0) < 0 ||
- _Pickler_Write(self, &tupletwo_op, 1) < 0 ||
- _Pickler_Write(self, &reduce_op, 1) < 0 ||
- _Pickler_Write(self, &pop_op, 1) < 0)
- return -1;
- }
+ if (state_setter == NULL) {
+ if (save(self, state, 0) < 0 ||
+ _Pickler_Write(self, &build_op, 1) < 0)
+ return -1;
+ }
+ else {
+
+ /* If a state_setter is specified, call it instead of load_build to
+ * update obj's with its previous state.
+ * The first 4 save/write instructions push state_setter and its
+ * tuple of expected arguments (obj, state) onto the stack. The
+ * REDUCE opcode triggers the state_setter(obj, state) function
+ * call. Finally, because state-updating routines only do in-place
+ * modification, the whole operation has to be stack-transparent.
+ * Thus, we finally pop the call's output from the stack.*/
+
+ const char tupletwo_op = TUPLE2;
+ const char pop_op = POP;
+ if (save(self, state_setter, 0) < 0 ||
+ save(self, obj, 0) < 0 || save(self, state, 0) < 0 ||
+ _Pickler_Write(self, &tupletwo_op, 1) < 0 ||
+ _Pickler_Write(self, &reduce_op, 1) < 0 ||
+ _Pickler_Write(self, &pop_op, 1) < 0)
+ return -1;
+ }
}
return 0;
}
@@ -4275,7 +4275,7 @@ save(PicklerObject *self, PyObject *obj, int pers_save)
1 if a persistent id was saved.
*/
if ((status = save_pers(self, obj)) != 0)
- return status;
+ return status;
}
type = Py_TYPE(obj);
@@ -4288,39 +4288,39 @@ save(PicklerObject *self, PyObject *obj, int pers_save)
/* Atom types; these aren't memoized, so don't check the memo. */
if (obj == Py_None) {
- return save_none(self, obj);
+ return save_none(self, obj);
}
else if (obj == Py_False || obj == Py_True) {
- return save_bool(self, obj);
+ return save_bool(self, obj);
}
else if (type == &PyLong_Type) {
- return save_long(self, obj);
+ return save_long(self, obj);
}
else if (type == &PyFloat_Type) {
- return save_float(self, obj);
+ return save_float(self, obj);
}
/* Check the memo to see if it has the object. If so, generate
a GET (or BINGET) opcode, instead of pickling the object
once again. */
if (PyMemoTable_Get(self->memo, obj)) {
- return memo_get(self, obj);
+ return memo_get(self, obj);
}
if (type == &PyBytes_Type) {
- return save_bytes(self, obj);
+ return save_bytes(self, obj);
}
else if (type == &PyUnicode_Type) {
- return save_unicode(self, obj);
- }
-
- /* We're only calling Py_EnterRecursiveCall here so that atomic
- types above are pickled faster. */
- if (Py_EnterRecursiveCall(" while pickling an object")) {
- return -1;
- }
-
- if (type == &PyDict_Type) {
+ return save_unicode(self, obj);
+ }
+
+ /* We're only calling Py_EnterRecursiveCall here so that atomic
+ types above are pickled faster. */
+ if (Py_EnterRecursiveCall(" while pickling an object")) {
+ return -1;
+ }
+
+ if (type == &PyDict_Type) {
status = save_dict(self, obj);
goto done;
}
@@ -4340,32 +4340,32 @@ save(PicklerObject *self, PyObject *obj, int pers_save)
status = save_tuple(self, obj);
goto done;
}
- else if (type == &PyByteArray_Type) {
- status = save_bytearray(self, obj);
- goto done;
- }
- else if (type == &PyPickleBuffer_Type) {
- status = save_picklebuffer(self, obj);
- goto done;
- }
-
- /* Now, check reducer_override. If it returns NotImplemented,
- * fallback to save_type or save_global, and then perhaps to the
- * regular reduction mechanism.
- */
- if (self->reducer_override != NULL) {
- reduce_value = PyObject_CallOneArg(self->reducer_override, obj);
- if (reduce_value == NULL) {
- goto error;
- }
- if (reduce_value != Py_NotImplemented) {
- goto reduce;
- }
- Py_DECREF(reduce_value);
- reduce_value = NULL;
- }
-
- if (type == &PyType_Type) {
+ else if (type == &PyByteArray_Type) {
+ status = save_bytearray(self, obj);
+ goto done;
+ }
+ else if (type == &PyPickleBuffer_Type) {
+ status = save_picklebuffer(self, obj);
+ goto done;
+ }
+
+ /* Now, check reducer_override. If it returns NotImplemented,
+ * fallback to save_type or save_global, and then perhaps to the
+ * regular reduction mechanism.
+ */
+ if (self->reducer_override != NULL) {
+ reduce_value = PyObject_CallOneArg(self->reducer_override, obj);
+ if (reduce_value == NULL) {
+ goto error;
+ }
+ if (reduce_value != Py_NotImplemented) {
+ goto reduce;
+ }
+ Py_DECREF(reduce_value);
+ reduce_value = NULL;
+ }
+
+ if (type == &PyType_Type) {
status = save_type(self, obj);
goto done;
}
@@ -4437,14 +4437,14 @@ save(PicklerObject *self, PyObject *obj, int pers_save)
}
else {
/* Check for a __reduce__ method. */
- if (_PyObject_LookupAttrId(obj, &PyId___reduce__, &reduce_func) < 0) {
- goto error;
- }
+ if (_PyObject_LookupAttrId(obj, &PyId___reduce__, &reduce_func) < 0) {
+ goto error;
+ }
if (reduce_func != NULL) {
- reduce_value = PyObject_CallNoArgs(reduce_func);
+ reduce_value = PyObject_CallNoArgs(reduce_func);
}
else {
- PickleState *st = _Pickle_GetGlobalState();
+ PickleState *st = _Pickle_GetGlobalState();
PyErr_Format(st->PicklingError,
"can't pickle '%.200s' object: %R",
type->tp_name, obj);
@@ -4456,7 +4456,7 @@ save(PicklerObject *self, PyObject *obj, int pers_save)
if (reduce_value == NULL)
goto error;
- reduce:
+ reduce:
if (PyUnicode_Check(reduce_value)) {
status = save_global(self, obj, reduce_value);
goto done;
@@ -4488,22 +4488,22 @@ static int
dump(PicklerObject *self, PyObject *obj)
{
const char stop_op = STOP;
- int status = -1;
- PyObject *tmp;
- _Py_IDENTIFIER(reducer_override);
-
- if (_PyObject_LookupAttrId((PyObject *)self, &PyId_reducer_override,
- &tmp) < 0) {
- goto error;
- }
- /* Cache the reducer_override method, if it exists. */
- if (tmp != NULL) {
- Py_XSETREF(self->reducer_override, tmp);
- }
- else {
- Py_CLEAR(self->reducer_override);
- }
-
+ int status = -1;
+ PyObject *tmp;
+ _Py_IDENTIFIER(reducer_override);
+
+ if (_PyObject_LookupAttrId((PyObject *)self, &PyId_reducer_override,
+ &tmp) < 0) {
+ goto error;
+ }
+ /* Cache the reducer_override method, if it exists. */
+ if (tmp != NULL) {
+ Py_XSETREF(self->reducer_override, tmp);
+ }
+ else {
+ Py_CLEAR(self->reducer_override);
+ }
+
if (self->proto >= 2) {
char header[2];
@@ -4511,7 +4511,7 @@ dump(PicklerObject *self, PyObject *obj)
assert(self->proto >= 0 && self->proto < 256);
header[1] = (unsigned char)self->proto;
if (_Pickler_Write(self, header, 2) < 0)
- goto error;
+ goto error;
if (self->proto >= 4)
self->framing = 1;
}
@@ -4519,22 +4519,22 @@ dump(PicklerObject *self, PyObject *obj)
if (save(self, obj, 0) < 0 ||
_Pickler_Write(self, &stop_op, 1) < 0 ||
_Pickler_CommitFrame(self) < 0)
- goto error;
-
- // Success
- status = 0;
-
- error:
+ goto error;
+
+ // Success
+ status = 0;
+
+ error:
self->framing = 0;
-
- /* Break the reference cycle we generated at the beginning this function
- * call when setting the reducer_override attribute of the Pickler instance
- * to a bound method of the same instance. This is important as the Pickler
- * instance holds a reference to each object it has pickled (through its
- * memo): thus, these objects won't be garbage-collected as long as the
- * Pickler itself is not collected. */
- Py_CLEAR(self->reducer_override);
- return status;
+
+ /* Break the reference cycle we generated at the beginning this function
+ * call when setting the reducer_override attribute of the Pickler instance
+ * to a bound method of the same instance. This is important as the Pickler
+ * instance holds a reference to each object it has pickled (through its
+ * memo): thus, these objects won't be garbage-collected as long as the
+ * Pickler itself is not collected. */
+ Py_CLEAR(self->reducer_override);
+ return status;
}
/*[clinic input]
@@ -4640,8 +4640,8 @@ Pickler_dealloc(PicklerObject *self)
Py_XDECREF(self->pers_func);
Py_XDECREF(self->dispatch_table);
Py_XDECREF(self->fast_memo);
- Py_XDECREF(self->reducer_override);
- Py_XDECREF(self->buffer_callback);
+ Py_XDECREF(self->reducer_override);
+ Py_XDECREF(self->buffer_callback);
PyMemoTable_Del(self->memo);
@@ -4655,8 +4655,8 @@ Pickler_traverse(PicklerObject *self, visitproc visit, void *arg)
Py_VISIT(self->pers_func);
Py_VISIT(self->dispatch_table);
Py_VISIT(self->fast_memo);
- Py_VISIT(self->reducer_override);
- Py_VISIT(self->buffer_callback);
+ Py_VISIT(self->reducer_override);
+ Py_VISIT(self->buffer_callback);
return 0;
}
@@ -4668,8 +4668,8 @@ Pickler_clear(PicklerObject *self)
Py_CLEAR(self->pers_func);
Py_CLEAR(self->dispatch_table);
Py_CLEAR(self->fast_memo);
- Py_CLEAR(self->reducer_override);
- Py_CLEAR(self->buffer_callback);
+ Py_CLEAR(self->reducer_override);
+ Py_CLEAR(self->buffer_callback);
if (self->memo != NULL) {
PyMemoTable *memo = self->memo;
@@ -4685,16 +4685,16 @@ Pickler_clear(PicklerObject *self)
_pickle.Pickler.__init__
file: object
- protocol: object = None
+ protocol: object = None
fix_imports: bool = True
- buffer_callback: object = None
+ buffer_callback: object = None
This takes a binary file for writing a pickle data stream.
The optional *protocol* argument tells the pickler to use the given
-protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
-protocol is 4. It was introduced in Python 3.4, and is incompatible
-with previous versions.
+protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
+protocol is 4. It was introduced in Python 3.4, and is incompatible
+with previous versions.
Specifying a negative protocol version selects the highest protocol
version supported. The higher the protocol used, the more recent the
@@ -4708,25 +4708,25 @@ this interface.
If *fix_imports* is True and protocol is less than 3, pickle will try
to map the new Python 3 names to the old module names used in Python
2, so that the pickle data stream is readable with Python 2.
-
-If *buffer_callback* is None (the default), buffer views are
-serialized into *file* as part of the pickle stream.
-
-If *buffer_callback* is not None, then it can be called any number
-of times with a buffer view. If the callback returns a false value
-(such as None), the given buffer is out-of-band; otherwise the
-buffer is serialized in-band, i.e. inside the pickle stream.
-
-It is an error if *buffer_callback* is not None and *protocol*
-is None or smaller than 5.
-
+
+If *buffer_callback* is None (the default), buffer views are
+serialized into *file* as part of the pickle stream.
+
+If *buffer_callback* is not None, then it can be called any number
+of times with a buffer view. If the callback returns a false value
+(such as None), the given buffer is out-of-band; otherwise the
+buffer is serialized in-band, i.e. inside the pickle stream.
+
+It is an error if *buffer_callback* is not None and *protocol*
+is None or smaller than 5.
+
[clinic start generated code]*/
static int
_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,
- PyObject *protocol, int fix_imports,
- PyObject *buffer_callback)
-/*[clinic end generated code: output=0abedc50590d259b input=a7c969699bf5dad3]*/
+ PyObject *protocol, int fix_imports,
+ PyObject *buffer_callback)
+/*[clinic end generated code: output=0abedc50590d259b input=a7c969699bf5dad3]*/
{
_Py_IDENTIFIER(persistent_id);
_Py_IDENTIFIER(dispatch_table);
@@ -4741,9 +4741,9 @@ _pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,
if (_Pickler_SetOutputStream(self, file) < 0)
return -1;
- if (_Pickler_SetBufferCallback(self, buffer_callback) < 0)
- return -1;
-
+ if (_Pickler_SetBufferCallback(self, buffer_callback) < 0)
+ return -1;
+
/* memo and output_buffer may have already been created in _Pickler_New */
if (self->memo == NULL) {
self->memo = PyMemoTable_New();
@@ -4916,10 +4916,10 @@ static PyTypeObject PicklerMemoProxyType = {
sizeof(PicklerMemoProxyObject), /*tp_basicsize*/
0,
(destructor)PicklerMemoProxy_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4974,7 +4974,7 @@ Pickler_set_memo(PicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
return -1;
}
- if (Py_IS_TYPE(obj, &PicklerMemoProxyType)) {
+ if (Py_IS_TYPE(obj, &PicklerMemoProxyType)) {
PicklerObject *pickler =
((PicklerMemoProxyObject *)obj)->pickler;
@@ -5077,10 +5077,10 @@ static PyTypeObject Pickler_Type = {
sizeof(PicklerObject), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)Pickler_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -5532,101 +5532,101 @@ load_counted_binbytes(UnpicklerObject *self, int nbytes)
return -1;
}
- bytes = PyBytes_FromStringAndSize(NULL, size);
+ bytes = PyBytes_FromStringAndSize(NULL, size);
if (bytes == NULL)
return -1;
- if (_Unpickler_ReadInto(self, PyBytes_AS_STRING(bytes), size) < 0) {
- Py_DECREF(bytes);
- return -1;
- }
+ if (_Unpickler_ReadInto(self, PyBytes_AS_STRING(bytes), size) < 0) {
+ Py_DECREF(bytes);
+ return -1;
+ }
PDATA_PUSH(self->stack, bytes, -1);
return 0;
}
static int
-load_counted_bytearray(UnpicklerObject *self)
-{
- PyObject *bytearray;
- Py_ssize_t size;
- char *s;
-
- if (_Unpickler_Read(self, &s, 8) < 0) {
- return -1;
- }
-
- size = calc_binsize(s, 8);
- if (size < 0) {
- PyErr_Format(PyExc_OverflowError,
- "BYTEARRAY8 exceeds system's maximum size of %zd bytes",
- PY_SSIZE_T_MAX);
- return -1;
- }
-
- bytearray = PyByteArray_FromStringAndSize(NULL, size);
- if (bytearray == NULL) {
- return -1;
- }
- if (_Unpickler_ReadInto(self, PyByteArray_AS_STRING(bytearray), size) < 0) {
- Py_DECREF(bytearray);
- return -1;
- }
-
- PDATA_PUSH(self->stack, bytearray, -1);
- return 0;
-}
-
-static int
-load_next_buffer(UnpicklerObject *self)
-{
- if (self->buffers == NULL) {
- PickleState *st = _Pickle_GetGlobalState();
- PyErr_SetString(st->UnpicklingError,
- "pickle stream refers to out-of-band data "
- "but no *buffers* argument was given");
- return -1;
- }
- PyObject *buf = PyIter_Next(self->buffers);
- if (buf == NULL) {
- if (!PyErr_Occurred()) {
- PickleState *st = _Pickle_GetGlobalState();
- PyErr_SetString(st->UnpicklingError,
- "not enough out-of-band buffers");
- }
- return -1;
- }
-
- PDATA_PUSH(self->stack, buf, -1);
- return 0;
-}
-
-static int
-load_readonly_buffer(UnpicklerObject *self)
-{
- Py_ssize_t len = Py_SIZE(self->stack);
- if (len <= self->stack->fence) {
- return Pdata_stack_underflow(self->stack);
- }
-
- PyObject *obj = self->stack->data[len - 1];
- PyObject *view = PyMemoryView_FromObject(obj);
- if (view == NULL) {
- return -1;
- }
- if (!PyMemoryView_GET_BUFFER(view)->readonly) {
- /* Original object is writable */
- PyMemoryView_GET_BUFFER(view)->readonly = 1;
- self->stack->data[len - 1] = view;
- Py_DECREF(obj);
- }
- else {
- /* Original object is read-only, no need to replace it */
- Py_DECREF(view);
- }
- return 0;
-}
-
-static int
+load_counted_bytearray(UnpicklerObject *self)
+{
+ PyObject *bytearray;
+ Py_ssize_t size;
+ char *s;
+
+ if (_Unpickler_Read(self, &s, 8) < 0) {
+ return -1;
+ }
+
+ size = calc_binsize(s, 8);
+ if (size < 0) {
+ PyErr_Format(PyExc_OverflowError,
+ "BYTEARRAY8 exceeds system's maximum size of %zd bytes",
+ PY_SSIZE_T_MAX);
+ return -1;
+ }
+
+ bytearray = PyByteArray_FromStringAndSize(NULL, size);
+ if (bytearray == NULL) {
+ return -1;
+ }
+ if (_Unpickler_ReadInto(self, PyByteArray_AS_STRING(bytearray), size) < 0) {
+ Py_DECREF(bytearray);
+ return -1;
+ }
+
+ PDATA_PUSH(self->stack, bytearray, -1);
+ return 0;
+}
+
+static int
+load_next_buffer(UnpicklerObject *self)
+{
+ if (self->buffers == NULL) {
+ PickleState *st = _Pickle_GetGlobalState();
+ PyErr_SetString(st->UnpicklingError,
+ "pickle stream refers to out-of-band data "
+ "but no *buffers* argument was given");
+ return -1;
+ }
+ PyObject *buf = PyIter_Next(self->buffers);
+ if (buf == NULL) {
+ if (!PyErr_Occurred()) {
+ PickleState *st = _Pickle_GetGlobalState();
+ PyErr_SetString(st->UnpicklingError,
+ "not enough out-of-band buffers");
+ }
+ return -1;
+ }
+
+ PDATA_PUSH(self->stack, buf, -1);
+ return 0;
+}
+
+static int
+load_readonly_buffer(UnpicklerObject *self)
+{
+ Py_ssize_t len = Py_SIZE(self->stack);
+ if (len <= self->stack->fence) {
+ return Pdata_stack_underflow(self->stack);
+ }
+
+ PyObject *obj = self->stack->data[len - 1];
+ PyObject *view = PyMemoryView_FromObject(obj);
+ if (view == NULL) {
+ return -1;
+ }
+ if (!PyMemoryView_GET_BUFFER(view)->readonly) {
+ /* Original object is writable */
+ PyMemoryView_GET_BUFFER(view)->readonly = 1;
+ self->stack->data[len - 1] = view;
+ Py_DECREF(obj);
+ }
+ else {
+ /* Original object is read-only, no need to replace it */
+ Py_DECREF(view);
+ }
+ return 0;
+}
+
+static int
load_unicode(UnpicklerObject *self)
{
PyObject *str;
@@ -5821,7 +5821,7 @@ instantiate(PyObject *cls, PyObject *args)
return NULL;
}
if (func == NULL) {
- return _PyObject_CallMethodIdOneArg(cls, &PyId___new__, cls);
+ return _PyObject_CallMethodIdOneArg(cls, &PyId___new__, cls);
}
Py_DECREF(func);
}
@@ -5991,27 +5991,27 @@ load_newobj_ex(UnpicklerObject *self)
PyErr_Format(st->UnpicklingError,
"NEWOBJ_EX class argument must be a type, not %.200s",
Py_TYPE(cls)->tp_name);
- goto error;
+ goto error;
}
if (((PyTypeObject *)cls)->tp_new == NULL) {
PyErr_SetString(st->UnpicklingError,
"NEWOBJ_EX class argument doesn't have __new__");
- goto error;
- }
- if (!PyTuple_Check(args)) {
- PyErr_Format(st->UnpicklingError,
- "NEWOBJ_EX args argument must be a tuple, not %.200s",
- Py_TYPE(args)->tp_name);
- goto error;
- }
- if (!PyDict_Check(kwargs)) {
- PyErr_Format(st->UnpicklingError,
- "NEWOBJ_EX kwargs argument must be a dict, not %.200s",
- Py_TYPE(kwargs)->tp_name);
- goto error;
- }
-
+ goto error;
+ }
+ if (!PyTuple_Check(args)) {
+ PyErr_Format(st->UnpicklingError,
+ "NEWOBJ_EX args argument must be a tuple, not %.200s",
+ Py_TYPE(args)->tp_name);
+ goto error;
+ }
+ if (!PyDict_Check(kwargs)) {
+ PyErr_Format(st->UnpicklingError,
+ "NEWOBJ_EX kwargs argument must be a dict, not %.200s",
+ Py_TYPE(kwargs)->tp_name);
+ goto error;
+ }
+
obj = ((PyTypeObject *)cls)->tp_new((PyTypeObject *)cls, args, kwargs);
Py_DECREF(kwargs);
Py_DECREF(args);
@@ -6021,12 +6021,12 @@ load_newobj_ex(UnpicklerObject *self)
}
PDATA_PUSH(self->stack, obj, -1);
return 0;
-
-error:
- Py_DECREF(kwargs);
- Py_DECREF(args);
- Py_DECREF(cls);
- return -1;
+
+error:
+ Py_DECREF(kwargs);
+ Py_DECREF(args);
+ Py_DECREF(cls);
+ return -1;
}
static int
@@ -6180,7 +6180,7 @@ load_pop(UnpicklerObject *self)
else {
len--;
Py_DECREF(self->stack->data[len]);
- Py_SET_SIZE(self->stack, len);
+ Py_SET_SIZE(self->stack, len);
}
return 0;
}
@@ -6235,10 +6235,10 @@ load_get(UnpicklerObject *self)
value = _Unpickler_MemoGet(self, idx);
if (value == NULL) {
- if (!PyErr_Occurred()) {
- PickleState *st = _Pickle_GetGlobalState();
- PyErr_Format(st->UnpicklingError, "Memo value not found at index %ld", idx);
- }
+ if (!PyErr_Occurred()) {
+ PickleState *st = _Pickle_GetGlobalState();
+ PyErr_Format(st->UnpicklingError, "Memo value not found at index %ld", idx);
+ }
Py_DECREF(key);
return -1;
}
@@ -6264,8 +6264,8 @@ load_binget(UnpicklerObject *self)
if (value == NULL) {
PyObject *key = PyLong_FromSsize_t(idx);
if (key != NULL) {
- PickleState *st = _Pickle_GetGlobalState();
- PyErr_Format(st->UnpicklingError, "Memo value not found at index %ld", idx);
+ PickleState *st = _Pickle_GetGlobalState();
+ PyErr_Format(st->UnpicklingError, "Memo value not found at index %ld", idx);
Py_DECREF(key);
}
return -1;
@@ -6291,8 +6291,8 @@ load_long_binget(UnpicklerObject *self)
if (value == NULL) {
PyObject *key = PyLong_FromSsize_t(idx);
if (key != NULL) {
- PickleState *st = _Pickle_GetGlobalState();
- PyErr_Format(st->UnpicklingError, "Memo value not found at index %ld", idx);
+ PickleState *st = _Pickle_GetGlobalState();
+ PyErr_Format(st->UnpicklingError, "Memo value not found at index %ld", idx);
Py_DECREF(key);
}
return -1;
@@ -6355,20 +6355,20 @@ load_extension(UnpicklerObject *self, int nbytes)
/* Since the extension registry is manipulable via Python code,
* confirm that pair is really a 2-tuple of strings.
*/
- if (!PyTuple_Check(pair) || PyTuple_Size(pair) != 2) {
- goto error;
- }
-
- module_name = PyTuple_GET_ITEM(pair, 0);
- if (!PyUnicode_Check(module_name)) {
- goto error;
- }
-
- class_name = PyTuple_GET_ITEM(pair, 1);
- if (!PyUnicode_Check(class_name)) {
- goto error;
- }
-
+ if (!PyTuple_Check(pair) || PyTuple_Size(pair) != 2) {
+ goto error;
+ }
+
+ module_name = PyTuple_GET_ITEM(pair, 0);
+ if (!PyUnicode_Check(module_name)) {
+ goto error;
+ }
+
+ class_name = PyTuple_GET_ITEM(pair, 1);
+ if (!PyUnicode_Check(class_name)) {
+ goto error;
+ }
+
/* Load the object. */
obj = find_class(self, module_name, class_name);
if (obj == NULL) {
@@ -6384,12 +6384,12 @@ load_extension(UnpicklerObject *self, int nbytes)
}
PDATA_PUSH(self->stack, obj, -1);
return 0;
-
-error:
- Py_DECREF(py_code);
- PyErr_Format(PyExc_ValueError, "_inverted_registry[%ld] "
- "isn't a 2-tuple of strings", code);
- return -1;
+
+error:
+ Py_DECREF(py_code);
+ PyErr_Format(PyExc_ValueError, "_inverted_registry[%ld] "
+ "isn't a 2-tuple of strings", code);
+ return -1;
}
static int
@@ -6511,9 +6511,9 @@ do_append(UnpicklerObject *self, Py_ssize_t x)
PyObject *extend_func;
_Py_IDENTIFIER(extend);
- if (_PyObject_LookupAttrId(list, &PyId_extend, &extend_func) < 0) {
- return -1;
- }
+ if (_PyObject_LookupAttrId(list, &PyId_extend, &extend_func) < 0) {
+ return -1;
+ }
if (extend_func != NULL) {
slice = Pdata_poplist(self->stack, x);
if (!slice) {
@@ -6541,13 +6541,13 @@ do_append(UnpicklerObject *self, Py_ssize_t x)
result = _Pickle_FastCall(append_func, value);
if (result == NULL) {
Pdata_clear(self->stack, i + 1);
- Py_SET_SIZE(self->stack, x);
+ Py_SET_SIZE(self->stack, x);
Py_DECREF(append_func);
return -1;
}
Py_DECREF(result);
}
- Py_SET_SIZE(self->stack, x);
+ Py_SET_SIZE(self->stack, x);
Py_DECREF(append_func);
}
}
@@ -6587,7 +6587,7 @@ do_setitems(UnpicklerObject *self, Py_ssize_t x)
return 0;
if ((len - x) % 2 != 0) {
PickleState *st = _Pickle_GetGlobalState();
- /* Corrupt or hostile pickle -- we never write one like this. */
+ /* Corrupt or hostile pickle -- we never write one like this. */
PyErr_SetString(st->UnpicklingError,
"odd number of items for SETITEMS");
return -1;
@@ -6669,12 +6669,12 @@ load_additems(UnpicklerObject *self)
result = _Pickle_FastCall(add_func, item);
if (result == NULL) {
Pdata_clear(self->stack, i + 1);
- Py_SET_SIZE(self->stack, mark);
+ Py_SET_SIZE(self->stack, mark);
return -1;
}
Py_DECREF(result);
}
- Py_SET_SIZE(self->stack, mark);
+ Py_SET_SIZE(self->stack, mark);
}
return 0;
@@ -6800,15 +6800,15 @@ load_mark(UnpicklerObject *self)
* mark stack.
*/
- if (self->num_marks >= self->marks_size) {
- size_t alloc = ((size_t)self->num_marks << 1) + 20;
- Py_ssize_t *marks_new = self->marks;
- PyMem_RESIZE(marks_new, Py_ssize_t, alloc);
- if (marks_new == NULL) {
+ if (self->num_marks >= self->marks_size) {
+ size_t alloc = ((size_t)self->num_marks << 1) + 20;
+ Py_ssize_t *marks_new = self->marks;
+ PyMem_RESIZE(marks_new, Py_ssize_t, alloc);
+ if (marks_new == NULL) {
PyErr_NoMemory();
return -1;
}
- self->marks = marks_new;
+ self->marks = marks_new;
self->marks_size = (Py_ssize_t)alloc;
}
@@ -6932,9 +6932,9 @@ load(UnpicklerObject *self)
OP_ARG(SHORT_BINBYTES, load_counted_binbytes, 1)
OP_ARG(BINBYTES, load_counted_binbytes, 4)
OP_ARG(BINBYTES8, load_counted_binbytes, 8)
- OP(BYTEARRAY8, load_counted_bytearray)
- OP(NEXT_BUFFER, load_next_buffer)
- OP(READONLY_BUFFER, load_readonly_buffer)
+ OP(BYTEARRAY8, load_counted_bytearray)
+ OP(NEXT_BUFFER, load_next_buffer)
+ OP(READONLY_BUFFER, load_readonly_buffer)
OP_ARG(SHORT_BINSTRING, load_counted_binstring, 1)
OP_ARG(BINSTRING, load_counted_binstring, 4)
OP(STRING, load_string)
@@ -7083,11 +7083,11 @@ _pickle_Unpickler_find_class_impl(UnpicklerObject *self,
PyObject *global;
PyObject *module;
- if (PySys_Audit("pickle.find_class", "OO",
- module_name, global_name) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("pickle.find_class", "OO",
+ module_name, global_name) < 0) {
+ return NULL;
+ }
+
/* Try to map the old names used in Python 2.x to the new ones used in
Python 3.x. We do this only with old pickle protocols and when the
user has not disabled the feature. */
@@ -7195,12 +7195,12 @@ Unpickler_dealloc(UnpicklerObject *self)
{
PyObject_GC_UnTrack((PyObject *)self);
Py_XDECREF(self->readline);
- Py_XDECREF(self->readinto);
+ Py_XDECREF(self->readinto);
Py_XDECREF(self->read);
Py_XDECREF(self->peek);
Py_XDECREF(self->stack);
Py_XDECREF(self->pers_func);
- Py_XDECREF(self->buffers);
+ Py_XDECREF(self->buffers);
if (self->buffer.buf != NULL) {
PyBuffer_Release(&self->buffer);
self->buffer.buf = NULL;
@@ -7219,12 +7219,12 @@ static int
Unpickler_traverse(UnpicklerObject *self, visitproc visit, void *arg)
{
Py_VISIT(self->readline);
- Py_VISIT(self->readinto);
+ Py_VISIT(self->readinto);
Py_VISIT(self->read);
Py_VISIT(self->peek);
Py_VISIT(self->stack);
Py_VISIT(self->pers_func);
- Py_VISIT(self->buffers);
+ Py_VISIT(self->buffers);
return 0;
}
@@ -7232,12 +7232,12 @@ static int
Unpickler_clear(UnpicklerObject *self)
{
Py_CLEAR(self->readline);
- Py_CLEAR(self->readinto);
+ Py_CLEAR(self->readinto);
Py_CLEAR(self->read);
Py_CLEAR(self->peek);
Py_CLEAR(self->stack);
Py_CLEAR(self->pers_func);
- Py_CLEAR(self->buffers);
+ Py_CLEAR(self->buffers);
if (self->buffer.buf != NULL) {
PyBuffer_Release(&self->buffer);
self->buffer.buf = NULL;
@@ -7265,7 +7265,7 @@ _pickle.Unpickler.__init__
fix_imports: bool = True
encoding: str = 'ASCII'
errors: str = 'strict'
- buffers: object(c_default="NULL") = ()
+ buffers: object(c_default="NULL") = ()
This takes a binary file for reading a pickle data stream.
@@ -7292,8 +7292,8 @@ string instances as bytes objects.
static int
_pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file,
int fix_imports, const char *encoding,
- const char *errors, PyObject *buffers)
-/*[clinic end generated code: output=09f0192649ea3f85 input=ca4c1faea9553121]*/
+ const char *errors, PyObject *buffers)
+/*[clinic end generated code: output=09f0192649ea3f85 input=ca4c1faea9553121]*/
{
_Py_IDENTIFIER(persistent_load);
@@ -7307,9 +7307,9 @@ _pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file,
if (_Unpickler_SetInputEncoding(self, encoding, errors) < 0)
return -1;
- if (_Unpickler_SetBuffers(self, buffers) < 0)
- return -1;
-
+ if (_Unpickler_SetBuffers(self, buffers) < 0)
+ return -1;
+
self->fix_imports = fix_imports;
if (init_method_ref((PyObject *)self, &PyId_persistent_load,
@@ -7471,10 +7471,10 @@ static PyTypeObject UnpicklerMemoProxyType = {
sizeof(UnpicklerMemoProxyObject), /*tp_basicsize*/
0,
(destructor)UnpicklerMemoProxy_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -7532,7 +7532,7 @@ Unpickler_set_memo(UnpicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored
return -1;
}
- if (Py_IS_TYPE(obj, &UnpicklerMemoProxyType)) {
+ if (Py_IS_TYPE(obj, &UnpicklerMemoProxyType)) {
UnpicklerObject *unpickler =
((UnpicklerMemoProxyObject *)obj)->unpickler;
@@ -7642,10 +7642,10 @@ static PyTypeObject Unpickler_Type = {
sizeof(UnpicklerObject), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)Unpickler_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -7685,10 +7685,10 @@ _pickle.dump
obj: object
file: object
- protocol: object = None
+ protocol: object = None
*
fix_imports: bool = True
- buffer_callback: object = None
+ buffer_callback: object = None
Write a pickled representation of obj to the open file object file.
@@ -7696,9 +7696,9 @@ This is equivalent to ``Pickler(file, protocol).dump(obj)``, but may
be more efficient.
The optional *protocol* argument tells the pickler to use the given
-protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
-protocol is 4. It was introduced in Python 3.4, and is incompatible
-with previous versions.
+protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
+protocol is 4. It was introduced in Python 3.4, and is incompatible
+with previous versions.
Specifying a negative protocol version selects the highest protocol
version supported. The higher the protocol used, the more recent the
@@ -7712,18 +7712,18 @@ this interface.
If *fix_imports* is True and protocol is less than 3, pickle will try
to map the new Python 3 names to the old module names used in Python
2, so that the pickle data stream is readable with Python 2.
-
-If *buffer_callback* is None (the default), buffer views are serialized
-into *file* as part of the pickle stream. It is an error if
-*buffer_callback* is not None and *protocol* is None or smaller than 5.
-
+
+If *buffer_callback* is None (the default), buffer views are serialized
+into *file* as part of the pickle stream. It is an error if
+*buffer_callback* is not None and *protocol* is None or smaller than 5.
+
[clinic start generated code]*/
static PyObject *
_pickle_dump_impl(PyObject *module, PyObject *obj, PyObject *file,
- PyObject *protocol, int fix_imports,
- PyObject *buffer_callback)
-/*[clinic end generated code: output=706186dba996490c input=5ed6653da99cd97c]*/
+ PyObject *protocol, int fix_imports,
+ PyObject *buffer_callback)
+/*[clinic end generated code: output=706186dba996490c input=5ed6653da99cd97c]*/
{
PicklerObject *pickler = _Pickler_New();
@@ -7736,9 +7736,9 @@ _pickle_dump_impl(PyObject *module, PyObject *obj, PyObject *file,
if (_Pickler_SetOutputStream(pickler, file) < 0)
goto error;
- if (_Pickler_SetBufferCallback(pickler, buffer_callback) < 0)
- goto error;
-
+ if (_Pickler_SetBufferCallback(pickler, buffer_callback) < 0)
+ goto error;
+
if (dump(pickler, obj) < 0)
goto error;
@@ -7758,17 +7758,17 @@ _pickle_dump_impl(PyObject *module, PyObject *obj, PyObject *file,
_pickle.dumps
obj: object
- protocol: object = None
+ protocol: object = None
*
fix_imports: bool = True
- buffer_callback: object = None
+ buffer_callback: object = None
Return the pickled representation of the object as a bytes object.
The optional *protocol* argument tells the pickler to use the given
-protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
-protocol is 4. It was introduced in Python 3.4, and is incompatible
-with previous versions.
+protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
+protocol is 4. It was introduced in Python 3.4, and is incompatible
+with previous versions.
Specifying a negative protocol version selects the highest protocol
version supported. The higher the protocol used, the more recent the
@@ -7777,17 +7777,17 @@ version of Python needed to read the pickle produced.
If *fix_imports* is True and *protocol* is less than 3, pickle will
try to map the new Python 3 names to the old module names used in
Python 2, so that the pickle data stream is readable with Python 2.
-
-If *buffer_callback* is None (the default), buffer views are serialized
-into *file* as part of the pickle stream. It is an error if
-*buffer_callback* is not None and *protocol* is None or smaller than 5.
-
+
+If *buffer_callback* is None (the default), buffer views are serialized
+into *file* as part of the pickle stream. It is an error if
+*buffer_callback* is not None and *protocol* is None or smaller than 5.
+
[clinic start generated code]*/
static PyObject *
_pickle_dumps_impl(PyObject *module, PyObject *obj, PyObject *protocol,
- int fix_imports, PyObject *buffer_callback)
-/*[clinic end generated code: output=fbab0093a5580fdf input=e543272436c6f987]*/
+ int fix_imports, PyObject *buffer_callback)
+/*[clinic end generated code: output=fbab0093a5580fdf input=e543272436c6f987]*/
{
PyObject *result;
PicklerObject *pickler = _Pickler_New();
@@ -7798,9 +7798,9 @@ _pickle_dumps_impl(PyObject *module, PyObject *obj, PyObject *protocol,
if (_Pickler_SetProtocol(pickler, protocol, fix_imports) < 0)
goto error;
- if (_Pickler_SetBufferCallback(pickler, buffer_callback) < 0)
- goto error;
-
+ if (_Pickler_SetBufferCallback(pickler, buffer_callback) < 0)
+ goto error;
+
if (dump(pickler, obj) < 0)
goto error;
@@ -7822,7 +7822,7 @@ _pickle.load
fix_imports: bool = True
encoding: str = 'ASCII'
errors: str = 'strict'
- buffers: object(c_default="NULL") = ()
+ buffers: object(c_default="NULL") = ()
Read and return an object from the pickle data stored in a file.
@@ -7851,9 +7851,9 @@ string instances as bytes objects.
static PyObject *
_pickle_load_impl(PyObject *module, PyObject *file, int fix_imports,
- const char *encoding, const char *errors,
- PyObject *buffers)
-/*[clinic end generated code: output=250452d141c23e76 input=46c7c31c92f4f371]*/
+ const char *encoding, const char *errors,
+ PyObject *buffers)
+/*[clinic end generated code: output=250452d141c23e76 input=46c7c31c92f4f371]*/
{
PyObject *result;
UnpicklerObject *unpickler = _Unpickler_New();
@@ -7867,9 +7867,9 @@ _pickle_load_impl(PyObject *module, PyObject *file, int fix_imports,
if (_Unpickler_SetInputEncoding(unpickler, encoding, errors) < 0)
goto error;
- if (_Unpickler_SetBuffers(unpickler, buffers) < 0)
- goto error;
-
+ if (_Unpickler_SetBuffers(unpickler, buffers) < 0)
+ goto error;
+
unpickler->fix_imports = fix_imports;
result = load(unpickler);
@@ -7886,12 +7886,12 @@ _pickle_load_impl(PyObject *module, PyObject *file, int fix_imports,
_pickle.loads
data: object
- /
+ /
*
fix_imports: bool = True
encoding: str = 'ASCII'
errors: str = 'strict'
- buffers: object(c_default="NULL") = ()
+ buffers: object(c_default="NULL") = ()
Read and return an object from the given pickle data.
@@ -7911,9 +7911,9 @@ string instances as bytes objects.
static PyObject *
_pickle_loads_impl(PyObject *module, PyObject *data, int fix_imports,
- const char *encoding, const char *errors,
- PyObject *buffers)
-/*[clinic end generated code: output=82ac1e6b588e6d02 input=b3615540d0535087]*/
+ const char *encoding, const char *errors,
+ PyObject *buffers)
+/*[clinic end generated code: output=82ac1e6b588e6d02 input=b3615540d0535087]*/
{
PyObject *result;
UnpicklerObject *unpickler = _Unpickler_New();
@@ -7927,9 +7927,9 @@ _pickle_loads_impl(PyObject *module, PyObject *data, int fix_imports,
if (_Unpickler_SetInputEncoding(unpickler, encoding, errors) < 0)
goto error;
- if (_Unpickler_SetBuffers(unpickler, buffers) < 0)
- goto error;
-
+ if (_Unpickler_SetBuffers(unpickler, buffers) < 0)
+ goto error;
+
unpickler->fix_imports = fix_imports;
result = load(unpickler);
@@ -7979,7 +7979,7 @@ pickle_traverse(PyObject *m, visitproc visit, void *arg)
Py_VISIT(st->import_mapping_3to2);
Py_VISIT(st->codecs_encode);
Py_VISIT(st->getattr);
- Py_VISIT(st->partial);
+ Py_VISIT(st->partial);
return 0;
}
@@ -8019,16 +8019,16 @@ PyInit__pickle(void)
if (m == NULL)
return NULL;
- /* Add types */
- if (PyModule_AddType(m, &Pickler_Type) < 0) {
+ /* Add types */
+ if (PyModule_AddType(m, &Pickler_Type) < 0) {
return NULL;
- }
- if (PyModule_AddType(m, &Unpickler_Type) < 0) {
+ }
+ if (PyModule_AddType(m, &Unpickler_Type) < 0) {
return NULL;
- }
- if (PyModule_AddType(m, &PyPickleBuffer_Type) < 0) {
- return NULL;
- }
+ }
+ if (PyModule_AddType(m, &PyPickleBuffer_Type) < 0) {
+ return NULL;
+ }
st = _Pickle_GetState(m);
diff --git a/contrib/tools/python3/src/Modules/_posixsubprocess.c b/contrib/tools/python3/src/Modules/_posixsubprocess.c
index 2e01d1e9c3..d64e0a1cfa 100644
--- a/contrib/tools/python3/src/Modules/_posixsubprocess.c
+++ b/contrib/tools/python3/src/Modules/_posixsubprocess.c
@@ -8,7 +8,7 @@
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
-#if defined(HAVE_SYS_STAT_H)
+#if defined(HAVE_SYS_STAT_H)
#include <sys/stat.h>
#endif
#ifdef HAVE_SYS_SYSCALL_H
@@ -20,12 +20,12 @@
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
-#ifdef HAVE_GRP_H
-#include <grp.h>
-#endif /* HAVE_GRP_H */
+#ifdef HAVE_GRP_H
+#include <grp.h>
+#endif /* HAVE_GRP_H */
+
+#include "posixmodule.h"
-#include "posixmodule.h"
-
#ifdef _Py_MEMORY_SANITIZER
# include <sanitizer/msan_interface.h>
#endif
@@ -46,38 +46,38 @@
# endif
#endif
-#if defined(__FreeBSD__) || (defined(__APPLE__) && defined(__MACH__)) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || (defined(__APPLE__) && defined(__MACH__)) || defined(__DragonFly__)
# define FD_DIR "/dev/fd"
#else
# define FD_DIR "/proc/self/fd"
#endif
-#ifdef NGROUPS_MAX
-#define MAX_GROUPS NGROUPS_MAX
-#else
-#define MAX_GROUPS 64
-#endif
-
+#ifdef NGROUPS_MAX
+#define MAX_GROUPS NGROUPS_MAX
+#else
+#define MAX_GROUPS 64
+#endif
+
#define POSIX_CALL(call) do { if ((call) == -1) goto error; } while (0)
-typedef struct {
- PyObject* disable;
- PyObject* enable;
- PyObject* isenabled;
-} _posixsubprocessstate;
-
-static struct PyModuleDef _posixsubprocessmodule;
-
-static inline _posixsubprocessstate*
-get_posixsubprocess_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_posixsubprocessstate *)state;
-}
-
-#define _posixsubprocessstate_global get_posixsubprocess_state(PyState_FindModule(&_posixsubprocessmodule))
-
+typedef struct {
+ PyObject* disable;
+ PyObject* enable;
+ PyObject* isenabled;
+} _posixsubprocessstate;
+
+static struct PyModuleDef _posixsubprocessmodule;
+
+static inline _posixsubprocessstate*
+get_posixsubprocess_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_posixsubprocessstate *)state;
+}
+
+#define _posixsubprocessstate_global get_posixsubprocess_state(PyState_FindModule(&_posixsubprocessmodule))
+
/* If gc was disabled, call gc.enable(). Return 0 on success. */
static int
_enable_gc(int need_to_reenable_gc, PyObject *gc_module)
@@ -87,8 +87,8 @@ _enable_gc(int need_to_reenable_gc, PyObject *gc_module)
if (need_to_reenable_gc) {
PyErr_Fetch(&exctype, &val, &tb);
- result = PyObject_CallMethodNoArgs(
- gc_module, _posixsubprocessstate_global->enable);
+ result = PyObject_CallMethodNoArgs(
+ gc_module, _posixsubprocessstate_global->enable);
if (exctype != NULL) {
PyErr_Restore(exctype, val, tb);
}
@@ -116,9 +116,9 @@ _pos_int_from_ascii(const char *name)
}
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
/* When /dev/fd isn't mounted it is often a static directory populated
- * with 0 1 2 or entries for 0 .. 63 on FreeBSD, NetBSD, OpenBSD and DragonFlyBSD.
+ * with 0 1 2 or entries for 0 .. 63 on FreeBSD, NetBSD, OpenBSD and DragonFlyBSD.
* NetBSD and OpenBSD have a /proc fs available (though not necessarily
* mounted) and do not have fdescfs for /dev/fd. MacOS X has a devfs
* that properly supports /dev/fd.
@@ -264,15 +264,15 @@ _close_fds_by_brute_force(long start_fd, PyObject *py_fds_to_keep)
start_fd = keep_fd + 1;
}
if (start_fd <= end_fd) {
-#if defined(__FreeBSD__)
- /* Any errors encountered while closing file descriptors are ignored */
- closefrom(start_fd);
-#else
+#if defined(__FreeBSD__)
+ /* Any errors encountered while closing file descriptors are ignored */
+ closefrom(start_fd);
+#else
for (fd_num = start_fd; fd_num < end_fd; ++fd_num) {
- /* Ignore errors */
- (void)close(fd_num);
+ /* Ignore errors */
+ (void)close(fd_num);
}
-#endif
+#endif
}
}
@@ -377,7 +377,7 @@ _close_open_fds_maybe_unsafe(long start_fd, PyObject* py_fds_to_keep)
++start_fd;
#endif
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
if (!_is_fdescfs_mounted_on_dev_fd())
proc_fd_dir = NULL;
else
@@ -439,9 +439,9 @@ child_exec(char *const exec_array[],
int errpipe_read, int errpipe_write,
int close_fds, int restore_signals,
int call_setsid,
- int call_setgid, gid_t gid,
- int call_setgroups, size_t groups_size, const gid_t *groups,
- int call_setuid, uid_t uid, int child_umask,
+ int call_setgid, gid_t gid,
+ int call_setgroups, size_t groups_size, const gid_t *groups,
+ int call_setuid, uid_t uid, int child_umask,
PyObject *py_fds_to_keep,
PyObject *preexec_fn,
PyObject *preexec_fn_args_tuple)
@@ -511,9 +511,9 @@ child_exec(char *const exec_array[],
if (cwd)
POSIX_CALL(chdir(cwd));
- if (child_umask >= 0)
- umask(child_umask); /* umask() always succeeds. */
-
+ if (child_umask >= 0)
+ umask(child_umask); /* umask() always succeeds. */
+
if (restore_signals)
_Py_RestoreSignals();
@@ -522,22 +522,22 @@ child_exec(char *const exec_array[],
POSIX_CALL(setsid());
#endif
-#ifdef HAVE_SETGROUPS
- if (call_setgroups)
- POSIX_CALL(setgroups(groups_size, groups));
-#endif /* HAVE_SETGROUPS */
-
-#ifdef HAVE_SETREGID
- if (call_setgid)
- POSIX_CALL(setregid(gid, gid));
-#endif /* HAVE_SETREGID */
-
-#ifdef HAVE_SETREUID
- if (call_setuid)
- POSIX_CALL(setreuid(uid, uid));
-#endif /* HAVE_SETREUID */
-
-
+#ifdef HAVE_SETGROUPS
+ if (call_setgroups)
+ POSIX_CALL(setgroups(groups_size, groups));
+#endif /* HAVE_SETGROUPS */
+
+#ifdef HAVE_SETREGID
+ if (call_setgid)
+ POSIX_CALL(setregid(gid, gid));
+#endif /* HAVE_SETREGID */
+
+#ifdef HAVE_SETREUID
+ if (call_setuid)
+ POSIX_CALL(setreuid(uid, uid));
+#endif /* HAVE_SETREUID */
+
+
reached_preexec = 1;
if (preexec_fn != Py_None && preexec_fn_args_tuple) {
/* This is where the user has asked us to deadlock their program. */
@@ -617,43 +617,43 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
PyObject *env_list, *preexec_fn;
PyObject *process_args, *converted_args = NULL, *fast_args = NULL;
PyObject *preexec_fn_args_tuple = NULL;
- PyObject *groups_list;
- PyObject *uid_object, *gid_object;
+ PyObject *groups_list;
+ PyObject *uid_object, *gid_object;
int p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite;
int errpipe_read, errpipe_write, close_fds, restore_signals;
int call_setsid;
- int call_setgid = 0, call_setgroups = 0, call_setuid = 0;
- uid_t uid;
- gid_t gid, *groups = NULL;
- int child_umask;
- PyObject *cwd_obj, *cwd_obj2 = NULL;
+ int call_setgid = 0, call_setgroups = 0, call_setuid = 0;
+ uid_t uid;
+ gid_t gid, *groups = NULL;
+ int child_umask;
+ PyObject *cwd_obj, *cwd_obj2 = NULL;
const char *cwd;
pid_t pid;
int need_to_reenable_gc = 0;
char *const *exec_array, *const *argv = NULL, *const *envp = NULL;
- Py_ssize_t arg_num, num_groups = 0;
+ Py_ssize_t arg_num, num_groups = 0;
int need_after_fork = 0;
int saved_errno = 0;
if (!PyArg_ParseTuple(
- args, "OOpO!OOiiiiiiiiiiOOOiO:fork_exec",
+ args, "OOpO!OOiiiiiiiiiiOOOiO:fork_exec",
&process_args, &executable_list,
&close_fds, &PyTuple_Type, &py_fds_to_keep,
&cwd_obj, &env_list,
&p2cread, &p2cwrite, &c2pread, &c2pwrite,
&errread, &errwrite, &errpipe_read, &errpipe_write,
- &restore_signals, &call_setsid,
- &gid_object, &groups_list, &uid_object, &child_umask,
- &preexec_fn))
+ &restore_signals, &call_setsid,
+ &gid_object, &groups_list, &uid_object, &child_umask,
+ &preexec_fn))
return NULL;
- if ((preexec_fn != Py_None) &&
- (PyInterpreterState_Get() != PyInterpreterState_Main())) {
- PyErr_SetString(PyExc_RuntimeError,
- "preexec_fn not supported within subinterpreters");
- return NULL;
- }
-
+ if ((preexec_fn != Py_None) &&
+ (PyInterpreterState_Get() != PyInterpreterState_Main())) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "preexec_fn not supported within subinterpreters");
+ return NULL;
+ }
+
if (close_fds && errpipe_write < 3) { /* precondition */
PyErr_SetString(PyExc_ValueError, "errpipe_write must be >= 3");
return NULL;
@@ -663,14 +663,14 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
return NULL;
}
- PyInterpreterState *interp = PyInterpreterState_Get();
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- if (config->_isolated_interpreter) {
- PyErr_SetString(PyExc_RuntimeError,
- "subprocess not supported for isolated subinterpreters");
- return NULL;
- }
-
+ PyInterpreterState *interp = PyInterpreterState_Get();
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ if (config->_isolated_interpreter) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "subprocess not supported for isolated subinterpreters");
+ return NULL;
+ }
+
/* We need to call gc.disable() when we'll be calling preexec_fn */
if (preexec_fn != Py_None) {
PyObject *result;
@@ -678,8 +678,8 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
gc_module = PyImport_ImportModule("gc");
if (gc_module == NULL)
return NULL;
- result = PyObject_CallMethodNoArgs(
- gc_module, _posixsubprocessstate_global->isenabled);
+ result = PyObject_CallMethodNoArgs(
+ gc_module, _posixsubprocessstate_global->isenabled);
if (result == NULL) {
Py_DECREF(gc_module);
return NULL;
@@ -690,8 +690,8 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
Py_DECREF(gc_module);
return NULL;
}
- result = PyObject_CallMethodNoArgs(
- gc_module, _posixsubprocessstate_global->disable);
+ result = PyObject_CallMethodNoArgs(
+ gc_module, _posixsubprocessstate_global->disable);
if (result == NULL) {
Py_DECREF(gc_module);
return NULL;
@@ -750,86 +750,86 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
cwd = NULL;
}
- if (groups_list != Py_None) {
-#ifdef HAVE_SETGROUPS
- Py_ssize_t i;
- gid_t gid;
-
- if (!PyList_Check(groups_list)) {
- PyErr_SetString(PyExc_TypeError,
- "setgroups argument must be a list");
- goto cleanup;
- }
- num_groups = PySequence_Size(groups_list);
-
- if (num_groups < 0)
- goto cleanup;
-
- if (num_groups > MAX_GROUPS) {
- PyErr_SetString(PyExc_ValueError, "too many groups");
- goto cleanup;
- }
-
- if ((groups = PyMem_RawMalloc(num_groups * sizeof(gid_t))) == NULL) {
- PyErr_SetString(PyExc_MemoryError,
- "failed to allocate memory for group list");
- goto cleanup;
- }
-
- for (i = 0; i < num_groups; i++) {
- PyObject *elem;
- elem = PySequence_GetItem(groups_list, i);
- if (!elem)
- goto cleanup;
- if (!PyLong_Check(elem)) {
- PyErr_SetString(PyExc_TypeError,
- "groups must be integers");
- Py_DECREF(elem);
- goto cleanup;
- } else {
- if (!_Py_Gid_Converter(elem, &gid)) {
- Py_DECREF(elem);
- PyErr_SetString(PyExc_ValueError, "invalid group id");
- goto cleanup;
- }
- groups[i] = gid;
- }
- Py_DECREF(elem);
- }
- call_setgroups = 1;
-
-#else /* HAVE_SETGROUPS */
- PyErr_BadInternalCall();
- goto cleanup;
-#endif /* HAVE_SETGROUPS */
- }
-
- if (gid_object != Py_None) {
-#ifdef HAVE_SETREGID
- if (!_Py_Gid_Converter(gid_object, &gid))
- goto cleanup;
-
- call_setgid = 1;
-
-#else /* HAVE_SETREGID */
- PyErr_BadInternalCall();
- goto cleanup;
-#endif /* HAVE_SETREUID */
- }
-
- if (uid_object != Py_None) {
-#ifdef HAVE_SETREUID
- if (!_Py_Uid_Converter(uid_object, &uid))
- goto cleanup;
-
- call_setuid = 1;
-
-#else /* HAVE_SETREUID */
- PyErr_BadInternalCall();
- goto cleanup;
-#endif /* HAVE_SETREUID */
- }
-
+ if (groups_list != Py_None) {
+#ifdef HAVE_SETGROUPS
+ Py_ssize_t i;
+ gid_t gid;
+
+ if (!PyList_Check(groups_list)) {
+ PyErr_SetString(PyExc_TypeError,
+ "setgroups argument must be a list");
+ goto cleanup;
+ }
+ num_groups = PySequence_Size(groups_list);
+
+ if (num_groups < 0)
+ goto cleanup;
+
+ if (num_groups > MAX_GROUPS) {
+ PyErr_SetString(PyExc_ValueError, "too many groups");
+ goto cleanup;
+ }
+
+ if ((groups = PyMem_RawMalloc(num_groups * sizeof(gid_t))) == NULL) {
+ PyErr_SetString(PyExc_MemoryError,
+ "failed to allocate memory for group list");
+ goto cleanup;
+ }
+
+ for (i = 0; i < num_groups; i++) {
+ PyObject *elem;
+ elem = PySequence_GetItem(groups_list, i);
+ if (!elem)
+ goto cleanup;
+ if (!PyLong_Check(elem)) {
+ PyErr_SetString(PyExc_TypeError,
+ "groups must be integers");
+ Py_DECREF(elem);
+ goto cleanup;
+ } else {
+ if (!_Py_Gid_Converter(elem, &gid)) {
+ Py_DECREF(elem);
+ PyErr_SetString(PyExc_ValueError, "invalid group id");
+ goto cleanup;
+ }
+ groups[i] = gid;
+ }
+ Py_DECREF(elem);
+ }
+ call_setgroups = 1;
+
+#else /* HAVE_SETGROUPS */
+ PyErr_BadInternalCall();
+ goto cleanup;
+#endif /* HAVE_SETGROUPS */
+ }
+
+ if (gid_object != Py_None) {
+#ifdef HAVE_SETREGID
+ if (!_Py_Gid_Converter(gid_object, &gid))
+ goto cleanup;
+
+ call_setgid = 1;
+
+#else /* HAVE_SETREGID */
+ PyErr_BadInternalCall();
+ goto cleanup;
+#endif /* HAVE_SETREUID */
+ }
+
+ if (uid_object != Py_None) {
+#ifdef HAVE_SETREUID
+ if (!_Py_Uid_Converter(uid_object, &uid))
+ goto cleanup;
+
+ call_setuid = 1;
+
+#else /* HAVE_SETREUID */
+ PyErr_BadInternalCall();
+ goto cleanup;
+#endif /* HAVE_SETREUID */
+ }
+
/* This must be the last thing done before fork() because we do not
* want to call PyOS_BeforeFork() if there is any chance of another
* error leading to the cleanup: code without calling fork(). */
@@ -862,8 +862,8 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
p2cread, p2cwrite, c2pread, c2pwrite,
errread, errwrite, errpipe_read, errpipe_write,
close_fds, restore_signals, call_setsid,
- call_setgid, gid, call_setgroups, num_groups, groups,
- call_setuid, uid, child_umask,
+ call_setgid, gid, call_setgroups, num_groups, groups,
+ call_setuid, uid, child_umask,
py_fds_to_keep, preexec_fn, preexec_fn_args_tuple);
_exit(255);
return NULL; /* Dead code to avoid a potential compiler warning. */
@@ -888,7 +888,7 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
if (_enable_gc(need_to_reenable_gc, gc_module)) {
pid = -1;
}
- PyMem_RawFree(groups);
+ PyMem_RawFree(groups);
Py_XDECREF(preexec_fn_args_tuple);
Py_XDECREF(gc_module);
@@ -903,15 +903,15 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
return PyLong_FromPid(pid);
cleanup:
- Py_XDECREF(cwd_obj2);
+ Py_XDECREF(cwd_obj2);
if (envp)
_Py_FreeCharPArray(envp);
if (argv)
_Py_FreeCharPArray(argv);
if (exec_array)
_Py_FreeCharPArray(exec_array);
-
- PyMem_RawFree(groups);
+
+ PyMem_RawFree(groups);
Py_XDECREF(converted_args);
Py_XDECREF(fast_args);
Py_XDECREF(preexec_fn_args_tuple);
@@ -922,22 +922,22 @@ cleanup:
PyDoc_STRVAR(subprocess_fork_exec_doc,
-"fork_exec(args, executable_list, close_fds, pass_fds, cwd, env,\n\
+"fork_exec(args, executable_list, close_fds, pass_fds, cwd, env,\n\
p2cread, p2cwrite, c2pread, c2pwrite,\n\
errread, errwrite, errpipe_read, errpipe_write,\n\
- restore_signals, call_setsid,\n\
- gid, groups_list, uid,\n\
- preexec_fn)\n\
+ restore_signals, call_setsid,\n\
+ gid, groups_list, uid,\n\
+ preexec_fn)\n\
\n\
Forks a child process, closes parent file descriptors as appropriate in the\n\
child and dups the few that are needed before calling exec() in the child\n\
process.\n\
\n\
-If close_fds is true, close file descriptors 3 and higher, except those listed\n\
-in the sorted tuple pass_fds.\n\
-\n\
-The preexec_fn, if supplied, will be called immediately before closing file\n\
-descriptors and exec.\n\
+If close_fds is true, close file descriptors 3 and higher, except those listed\n\
+in the sorted tuple pass_fds.\n\
+\n\
+The preexec_fn, if supplied, will be called immediately before closing file\n\
+descriptors and exec.\n\
WARNING: preexec_fn is NOT SAFE if your application uses threads.\n\
It may trigger infrequent, difficult to debug deadlocks.\n\
\n\
@@ -961,56 +961,56 @@ static PyMethodDef module_methods[] = {
};
-static int _posixsubprocess_traverse(PyObject *m, visitproc visit, void *arg) {
- Py_VISIT(get_posixsubprocess_state(m)->disable);
- Py_VISIT(get_posixsubprocess_state(m)->enable);
- Py_VISIT(get_posixsubprocess_state(m)->isenabled);
- return 0;
-}
-
-static int _posixsubprocess_clear(PyObject *m) {
- Py_CLEAR(get_posixsubprocess_state(m)->disable);
- Py_CLEAR(get_posixsubprocess_state(m)->enable);
- Py_CLEAR(get_posixsubprocess_state(m)->isenabled);
- return 0;
-}
-
-static void _posixsubprocess_free(void *m) {
- _posixsubprocess_clear((PyObject *)m);
-}
-
+static int _posixsubprocess_traverse(PyObject *m, visitproc visit, void *arg) {
+ Py_VISIT(get_posixsubprocess_state(m)->disable);
+ Py_VISIT(get_posixsubprocess_state(m)->enable);
+ Py_VISIT(get_posixsubprocess_state(m)->isenabled);
+ return 0;
+}
+
+static int _posixsubprocess_clear(PyObject *m) {
+ Py_CLEAR(get_posixsubprocess_state(m)->disable);
+ Py_CLEAR(get_posixsubprocess_state(m)->enable);
+ Py_CLEAR(get_posixsubprocess_state(m)->isenabled);
+ return 0;
+}
+
+static void _posixsubprocess_free(void *m) {
+ _posixsubprocess_clear((PyObject *)m);
+}
+
static struct PyModuleDef _posixsubprocessmodule = {
PyModuleDef_HEAD_INIT,
"_posixsubprocess",
module_doc,
- sizeof(_posixsubprocessstate),
+ sizeof(_posixsubprocessstate),
module_methods,
- NULL,
- _posixsubprocess_traverse,
- _posixsubprocess_clear,
- _posixsubprocess_free,
+ NULL,
+ _posixsubprocess_traverse,
+ _posixsubprocess_clear,
+ _posixsubprocess_free,
};
PyMODINIT_FUNC
PyInit__posixsubprocess(void)
{
- PyObject* m;
-
- m = PyState_FindModule(&_posixsubprocessmodule);
- if (m != NULL) {
- Py_INCREF(m);
- return m;
- }
-
- m = PyModule_Create(&_posixsubprocessmodule);
- if (m == NULL) {
- return NULL;
- }
-
- get_posixsubprocess_state(m)->disable = PyUnicode_InternFromString("disable");
- get_posixsubprocess_state(m)->enable = PyUnicode_InternFromString("enable");
- get_posixsubprocess_state(m)->isenabled = PyUnicode_InternFromString("isenabled");
-
- PyState_AddModule(m, &_posixsubprocessmodule);
- return m;
+ PyObject* m;
+
+ m = PyState_FindModule(&_posixsubprocessmodule);
+ if (m != NULL) {
+ Py_INCREF(m);
+ return m;
+ }
+
+ m = PyModule_Create(&_posixsubprocessmodule);
+ if (m == NULL) {
+ return NULL;
+ }
+
+ get_posixsubprocess_state(m)->disable = PyUnicode_InternFromString("disable");
+ get_posixsubprocess_state(m)->enable = PyUnicode_InternFromString("enable");
+ get_posixsubprocess_state(m)->isenabled = PyUnicode_InternFromString("isenabled");
+
+ PyState_AddModule(m, &_posixsubprocessmodule);
+ return m;
}
diff --git a/contrib/tools/python3/src/Modules/_queuemodule.c b/contrib/tools/python3/src/Modules/_queuemodule.c
index 2c3650a44b..b155ea9423 100644
--- a/contrib/tools/python3/src/Modules/_queuemodule.c
+++ b/contrib/tools/python3/src/Modules/_queuemodule.c
@@ -1,5 +1,5 @@
#include "Python.h"
-#include <stddef.h> // offsetof()
+#include <stddef.h> // offsetof()
/*[clinic input]
module _queue
@@ -25,7 +25,7 @@ typedef struct {
static void
simplequeue_dealloc(simplequeueobject *self)
{
- PyObject_GC_UnTrack(self);
+ PyObject_GC_UnTrack(self);
if (self->lock != NULL) {
/* Unlock the lock so it's safe to free it */
if (self->locked > 0)
@@ -301,8 +301,8 @@ static PyMethodDef simplequeue_methods[] = {
_QUEUE_SIMPLEQUEUE_PUT_METHODDEF
_QUEUE_SIMPLEQUEUE_PUT_NOWAIT_METHODDEF
_QUEUE_SIMPLEQUEUE_QSIZE_METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -314,10 +314,10 @@ static PyTypeObject PySimpleQueueType = {
0, /*tp_itemsize*/
/* methods */
(destructor)simplequeue_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -391,9 +391,9 @@ PyInit__queue(void)
if (PyModule_AddObject(m, "Empty", EmptyError) < 0)
return NULL;
- if (PyModule_AddType(m, &PySimpleQueueType) < 0) {
+ if (PyModule_AddType(m, &PySimpleQueueType) < 0) {
return NULL;
- }
+ }
return m;
}
diff --git a/contrib/tools/python3/src/Modules/_randommodule.c b/contrib/tools/python3/src/Modules/_randommodule.c
index d4b811c76b..a402b937f7 100644
--- a/contrib/tools/python3/src/Modules/_randommodule.c
+++ b/contrib/tools/python3/src/Modules/_randommodule.c
@@ -11,7 +11,7 @@
* renamed genrand_res53() to random_random() and wrapped
in python calling/return code.
- * genrand_uint32() and the helper functions, init_genrand()
+ * genrand_uint32() and the helper functions, init_genrand()
and init_by_array(), were declared static, wrapped in
Python calling/return code. also, their global data
references were replaced with structure references.
@@ -67,9 +67,9 @@
/* ---------------------------------------------------------------*/
#include "Python.h"
-#include "pycore_byteswap.h" // _Py_bswap32()
+#include "pycore_byteswap.h" // _Py_bswap32()
#ifdef HAVE_PROCESS_H
-# include <process.h> // getpid()
+# include <process.h> // getpid()
#endif
/* Period parameters -- These are all magic. Don't change. */
@@ -80,43 +80,43 @@
#define LOWER_MASK 0x7fffffffU /* least significant r bits */
typedef struct {
- PyObject *Random_Type;
- PyObject *Long___abs__;
-} _randomstate;
-
-static inline _randomstate*
-get_random_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_randomstate *)state;
-}
-
-static struct PyModuleDef _randommodule;
-
-#define _randomstate_global get_random_state(PyState_FindModule(&_randommodule))
-
-typedef struct {
+ PyObject *Random_Type;
+ PyObject *Long___abs__;
+} _randomstate;
+
+static inline _randomstate*
+get_random_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_randomstate *)state;
+}
+
+static struct PyModuleDef _randommodule;
+
+#define _randomstate_global get_random_state(PyState_FindModule(&_randommodule))
+
+typedef struct {
PyObject_HEAD
int index;
uint32_t state[N];
} RandomObject;
-#include "clinic/_randommodule.c.h"
+#include "clinic/_randommodule.c.h"
+
+/*[clinic input]
+module _random
+class _random.Random "RandomObject *" "&Random_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=f79898ae7847c321]*/
-/*[clinic input]
-module _random
-class _random.Random "RandomObject *" "&Random_Type"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=f79898ae7847c321]*/
-
/* Random methods */
/* generates a random number on [0,0xffffffff]-interval */
static uint32_t
-genrand_uint32(RandomObject *self)
+genrand_uint32(RandomObject *self)
{
uint32_t y;
static const uint32_t mag01[2] = {0x0U, MATRIX_A};
@@ -158,20 +158,20 @@ genrand_uint32(RandomObject *self)
* lower 26 bits of the 53-bit numerator.
* The original code credited Isaku Wada for this algorithm, 2002/01/09.
*/
-
-/*[clinic input]
-_random.Random.random
-
- self: self(type="RandomObject *")
-
-random() -> x in the interval [0, 1).
-[clinic start generated code]*/
-
+
+/*[clinic input]
+_random.Random.random
+
+ self: self(type="RandomObject *")
+
+random() -> x in the interval [0, 1).
+[clinic start generated code]*/
+
static PyObject *
-_random_Random_random_impl(RandomObject *self)
-/*[clinic end generated code: output=117ff99ee53d755c input=afb2a59cbbb00349]*/
+_random_Random_random_impl(RandomObject *self)
+/*[clinic end generated code: output=117ff99ee53d755c input=afb2a59cbbb00349]*/
{
- uint32_t a=genrand_uint32(self)>>5, b=genrand_uint32(self)>>6;
+ uint32_t a=genrand_uint32(self)>>5, b=genrand_uint32(self)>>6;
return PyFloat_FromDouble((a*67108864.0+b)*(1.0/9007199254740992.0));
}
@@ -234,7 +234,7 @@ init_by_array(RandomObject *self, uint32_t init_key[], size_t key_length)
static int
random_seed_urandom(RandomObject *self)
{
- uint32_t key[N];
+ uint32_t key[N];
if (_PyOS_URandomNonblock(key, sizeof(key)) < 0) {
return -1;
@@ -250,20 +250,20 @@ random_seed_time_pid(RandomObject *self)
uint32_t key[5];
now = _PyTime_GetSystemClock();
- key[0] = (uint32_t)(now & 0xffffffffU);
- key[1] = (uint32_t)(now >> 32);
+ key[0] = (uint32_t)(now & 0xffffffffU);
+ key[1] = (uint32_t)(now >> 32);
- key[2] = (uint32_t)getpid();
+ key[2] = (uint32_t)getpid();
now = _PyTime_GetMonotonicClock();
- key[3] = (uint32_t)(now & 0xffffffffU);
- key[4] = (uint32_t)(now >> 32);
+ key[3] = (uint32_t)(now & 0xffffffffU);
+ key[4] = (uint32_t)(now >> 32);
init_by_array(self, key, Py_ARRAY_LENGTH(key));
}
static PyObject *
-random_seed(RandomObject *self, PyObject *arg)
+random_seed(RandomObject *self, PyObject *arg)
{
PyObject *result = NULL; /* guilty until proved innocent */
PyObject *n = NULL;
@@ -271,8 +271,8 @@ random_seed(RandomObject *self, PyObject *arg)
size_t bits, keyused;
int res;
- if (arg == NULL || arg == Py_None) {
- if (random_seed_urandom(self) < 0) {
+ if (arg == NULL || arg == Py_None) {
+ if (random_seed_urandom(self) < 0) {
PyErr_Clear();
/* Reading system entropy failed, fall back on the worst entropy:
@@ -286,12 +286,12 @@ random_seed(RandomObject *self, PyObject *arg)
* So: if the arg is a PyLong, use its absolute value.
* Otherwise use its hash value, cast to unsigned.
*/
- if (PyLong_CheckExact(arg)) {
- n = PyNumber_Absolute(arg);
- } else if (PyLong_Check(arg)) {
+ if (PyLong_CheckExact(arg)) {
+ n = PyNumber_Absolute(arg);
+ } else if (PyLong_Check(arg)) {
/* Calling int.__abs__() prevents calling arg.__abs__(), which might
return an invalid value. See issue #31478. */
- n = PyObject_CallOneArg(_randomstate_global->Long___abs__, arg);
+ n = PyObject_CallOneArg(_randomstate_global->Long___abs__, arg);
}
else {
Py_hash_t hash = PyObject_Hash(arg);
@@ -346,38 +346,38 @@ Done:
return result;
}
-/*[clinic input]
-_random.Random.seed
-
- self: self(type="RandomObject *")
- n: object = None
- /
-
-seed([n]) -> None.
-
-Defaults to use urandom and falls back to a combination
-of the current time and the process identifier.
-[clinic start generated code]*/
-
+/*[clinic input]
+_random.Random.seed
+
+ self: self(type="RandomObject *")
+ n: object = None
+ /
+
+seed([n]) -> None.
+
+Defaults to use urandom and falls back to a combination
+of the current time and the process identifier.
+[clinic start generated code]*/
+
static PyObject *
-_random_Random_seed_impl(RandomObject *self, PyObject *n)
-/*[clinic end generated code: output=0fad1e16ba883681 input=78d6ef0d52532a54]*/
+_random_Random_seed_impl(RandomObject *self, PyObject *n)
+/*[clinic end generated code: output=0fad1e16ba883681 input=78d6ef0d52532a54]*/
+{
+ return random_seed(self, n);
+}
+
+/*[clinic input]
+_random.Random.getstate
+
+ self: self(type="RandomObject *")
+
+getstate() -> tuple containing the current state.
+[clinic start generated code]*/
+
+static PyObject *
+_random_Random_getstate_impl(RandomObject *self)
+/*[clinic end generated code: output=bf6cef0c092c7180 input=b937a487928c0e89]*/
{
- return random_seed(self, n);
-}
-
-/*[clinic input]
-_random.Random.getstate
-
- self: self(type="RandomObject *")
-
-getstate() -> tuple containing the current state.
-[clinic start generated code]*/
-
-static PyObject *
-_random_Random_getstate_impl(RandomObject *self)
-/*[clinic end generated code: output=bf6cef0c092c7180 input=b937a487928c0e89]*/
-{
PyObject *state;
PyObject *element;
int i;
@@ -402,20 +402,20 @@ Fail:
return NULL;
}
-
-/*[clinic input]
-_random.Random.setstate
-
- self: self(type="RandomObject *")
- state: object
- /
-
-setstate(state) -> None. Restores generator state.
-[clinic start generated code]*/
-
+
+/*[clinic input]
+_random.Random.setstate
+
+ self: self(type="RandomObject *")
+ state: object
+ /
+
+setstate(state) -> None. Restores generator state.
+[clinic start generated code]*/
+
static PyObject *
-_random_Random_setstate(RandomObject *self, PyObject *state)
-/*[clinic end generated code: output=fd1c3cd0037b6681 input=b3b4efbb1bc66af8]*/
+_random_Random_setstate(RandomObject *self, PyObject *state)
+/*[clinic end generated code: output=fd1c3cd0037b6681 input=b3b4efbb1bc66af8]*/
{
int i;
unsigned long element;
@@ -454,37 +454,37 @@ _random_Random_setstate(RandomObject *self, PyObject *state)
Py_RETURN_NONE;
}
-/*[clinic input]
-
-_random.Random.getrandbits
-
- self: self(type="RandomObject *")
- k: int
- /
-
-getrandbits(k) -> x. Generates an int with k random bits.
-[clinic start generated code]*/
-
+/*[clinic input]
+
+_random.Random.getrandbits
+
+ self: self(type="RandomObject *")
+ k: int
+ /
+
+getrandbits(k) -> x. Generates an int with k random bits.
+[clinic start generated code]*/
+
static PyObject *
-_random_Random_getrandbits_impl(RandomObject *self, int k)
-/*[clinic end generated code: output=b402f82a2158887f input=8c0e6396dd176fc0]*/
+_random_Random_getrandbits_impl(RandomObject *self, int k)
+/*[clinic end generated code: output=b402f82a2158887f input=8c0e6396dd176fc0]*/
{
- int i, words;
+ int i, words;
uint32_t r;
uint32_t *wordarray;
PyObject *result;
- if (k < 0) {
+ if (k < 0) {
PyErr_SetString(PyExc_ValueError,
- "number of bits must be non-negative");
+ "number of bits must be non-negative");
return NULL;
}
- if (k == 0)
- return PyLong_FromLong(0);
-
+ if (k == 0)
+ return PyLong_FromLong(0);
+
if (k <= 32) /* Fast path */
- return PyLong_FromUnsignedLong(genrand_uint32(self) >> (32 - k));
+ return PyLong_FromUnsignedLong(genrand_uint32(self) >> (32 - k));
words = (k - 1) / 32 + 1;
wordarray = (uint32_t *)PyMem_Malloc(words * 4);
@@ -501,7 +501,7 @@ _random_Random_getrandbits_impl(RandomObject *self, int k)
for (i = words - 1; i >= 0; i--, k -= 32)
#endif
{
- r = genrand_uint32(self);
+ r = genrand_uint32(self);
if (k < 32)
r >>= (32 - k); /* Drop least significant bits */
wordarray[i] = r;
@@ -519,12 +519,12 @@ random_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
RandomObject *self;
PyObject *tmp;
- if (type == (PyTypeObject*)_randomstate_global->Random_Type &&
- !_PyArg_NoKeywords("Random()", kwds)) {
+ if (type == (PyTypeObject*)_randomstate_global->Random_Type &&
+ !_PyArg_NoKeywords("Random()", kwds)) {
return NULL;
- }
+ }
- self = (RandomObject *)PyType_GenericAlloc(type, 0);
+ self = (RandomObject *)PyType_GenericAlloc(type, 0);
if (self == NULL)
return NULL;
tmp = random_seed(self, args);
@@ -536,69 +536,69 @@ random_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return (PyObject *)self;
}
-
+
static PyMethodDef random_methods[] = {
- _RANDOM_RANDOM_RANDOM_METHODDEF
- _RANDOM_RANDOM_SEED_METHODDEF
- _RANDOM_RANDOM_GETSTATE_METHODDEF
- _RANDOM_RANDOM_SETSTATE_METHODDEF
- _RANDOM_RANDOM_GETRANDBITS_METHODDEF
+ _RANDOM_RANDOM_RANDOM_METHODDEF
+ _RANDOM_RANDOM_SEED_METHODDEF
+ _RANDOM_RANDOM_GETSTATE_METHODDEF
+ _RANDOM_RANDOM_SETSTATE_METHODDEF
+ _RANDOM_RANDOM_GETRANDBITS_METHODDEF
{NULL, NULL} /* sentinel */
};
PyDoc_STRVAR(random_doc,
"Random() -> create a random number generator with its own internal state.");
-static PyType_Slot Random_Type_slots[] = {
- {Py_tp_doc, (void *)random_doc},
- {Py_tp_methods, random_methods},
- {Py_tp_new, random_new},
- {Py_tp_free, PyObject_Free},
- {0, 0},
+static PyType_Slot Random_Type_slots[] = {
+ {Py_tp_doc, (void *)random_doc},
+ {Py_tp_methods, random_methods},
+ {Py_tp_new, random_new},
+ {Py_tp_free, PyObject_Free},
+ {0, 0},
+};
+
+static PyType_Spec Random_Type_spec = {
+ "_random.Random",
+ sizeof(RandomObject),
+ 0,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ Random_Type_slots
};
-static PyType_Spec Random_Type_spec = {
- "_random.Random",
- sizeof(RandomObject),
- 0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- Random_Type_slots
-};
-
PyDoc_STRVAR(module_doc,
"Module implements the Mersenne Twister random number generator.");
-static int
-_random_traverse(PyObject *module, visitproc visit, void *arg)
-{
- Py_VISIT(get_random_state(module)->Random_Type);
- return 0;
-}
-
-static int
-_random_clear(PyObject *module)
-{
- Py_CLEAR(get_random_state(module)->Random_Type);
- Py_CLEAR(get_random_state(module)->Long___abs__);
- return 0;
-}
-
-static void
-_random_free(void *module)
-{
- _random_clear((PyObject *)module);
-}
-
+static int
+_random_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ Py_VISIT(get_random_state(module)->Random_Type);
+ return 0;
+}
+
+static int
+_random_clear(PyObject *module)
+{
+ Py_CLEAR(get_random_state(module)->Random_Type);
+ Py_CLEAR(get_random_state(module)->Long___abs__);
+ return 0;
+}
+
+static void
+_random_free(void *module)
+{
+ _random_clear((PyObject *)module);
+}
+
static struct PyModuleDef _randommodule = {
PyModuleDef_HEAD_INIT,
"_random",
module_doc,
- sizeof(_randomstate),
+ sizeof(_randomstate),
NULL,
NULL,
- _random_traverse,
- _random_clear,
- _random_free,
+ _random_traverse,
+ _random_clear,
+ _random_free,
};
PyMODINIT_FUNC
@@ -606,41 +606,41 @@ PyInit__random(void)
{
PyObject *m;
- PyObject *Random_Type = PyType_FromSpec(&Random_Type_spec);
- if (Random_Type == NULL) {
+ PyObject *Random_Type = PyType_FromSpec(&Random_Type_spec);
+ if (Random_Type == NULL) {
return NULL;
- }
-
+ }
+
m = PyModule_Create(&_randommodule);
- if (m == NULL) {
- Py_DECREF(Random_Type);
+ if (m == NULL) {
+ Py_DECREF(Random_Type);
return NULL;
- }
- get_random_state(m)->Random_Type = Random_Type;
-
- Py_INCREF(Random_Type);
- PyModule_AddObject(m, "Random", Random_Type);
-
- /* Look up and save int.__abs__, which is needed in random_seed(). */
- PyObject *longval = NULL, *longtype = NULL;
- longval = PyLong_FromLong(0);
- if (longval == NULL) goto fail;
-
- longtype = PyObject_Type(longval);
- if (longtype == NULL) goto fail;
-
- PyObject *abs = PyObject_GetAttrString(longtype, "__abs__");
- if (abs == NULL) goto fail;
-
- Py_DECREF(longtype);
- Py_DECREF(longval);
- get_random_state(m)->Long___abs__ = abs;
-
+ }
+ get_random_state(m)->Random_Type = Random_Type;
+
+ Py_INCREF(Random_Type);
+ PyModule_AddObject(m, "Random", Random_Type);
+
+ /* Look up and save int.__abs__, which is needed in random_seed(). */
+ PyObject *longval = NULL, *longtype = NULL;
+ longval = PyLong_FromLong(0);
+ if (longval == NULL) goto fail;
+
+ longtype = PyObject_Type(longval);
+ if (longtype == NULL) goto fail;
+
+ PyObject *abs = PyObject_GetAttrString(longtype, "__abs__");
+ if (abs == NULL) goto fail;
+
+ Py_DECREF(longtype);
+ Py_DECREF(longval);
+ get_random_state(m)->Long___abs__ = abs;
+
return m;
-
-fail:
- Py_XDECREF(longtype);
- Py_XDECREF(longval);
- Py_DECREF(m);
- return NULL;
+
+fail:
+ Py_XDECREF(longtype);
+ Py_XDECREF(longval);
+ Py_DECREF(m);
+ return NULL;
}
diff --git a/contrib/tools/python3/src/Modules/_scproxy.c b/contrib/tools/python3/src/Modules/_scproxy.c
index 96824455ab..dbee3f7367 100644
--- a/contrib/tools/python3/src/Modules/_scproxy.c
+++ b/contrib/tools/python3/src/Modules/_scproxy.c
@@ -53,7 +53,7 @@ cfstring_to_pystring(CFStringRef ref)
static PyObject*
-get_proxy_settings(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))
+get_proxy_settings(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))
{
CFDictionaryRef proxyDict = NULL;
CFNumberRef aNum = NULL;
@@ -169,7 +169,7 @@ set_proxy(PyObject* proxies, const char* proto, CFDictionaryRef proxyDict,
static PyObject*
-get_proxies(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))
+get_proxies(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))
{
PyObject* result = NULL;
int r;
@@ -218,13 +218,13 @@ error:
static PyMethodDef mod_methods[] = {
{
"_get_proxy_settings",
- get_proxy_settings,
+ get_proxy_settings,
METH_NOARGS,
NULL,
},
{
"_get_proxies",
- get_proxies,
+ get_proxies,
METH_NOARGS,
NULL,
},
diff --git a/contrib/tools/python3/src/Modules/_sha3/clinic/sha3module.c.h b/contrib/tools/python3/src/Modules/_sha3/clinic/sha3module.c.h
index 4c1987488e..1c79c26939 100644
--- a/contrib/tools/python3/src/Modules/_sha3/clinic/sha3module.c.h
+++ b/contrib/tools/python3/src/Modules/_sha3/clinic/sha3module.c.h
@@ -2,52 +2,52 @@
preserve
[clinic start generated code]*/
-PyDoc_STRVAR(py_sha3_new__doc__,
-"sha3_224(data=b\'\', /, *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Return a new BLAKE2b hash object.");
-
-static PyObject *
-py_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity);
-
-static PyObject *
-py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sha3_224", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
- PyObject *data = NULL;
- int usedforsecurity = 1;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional_posonly;
- }
- noptargs--;
- data = fastargs[0];
-skip_optional_posonly:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(fastargs[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = py_sha3_new_impl(type, data, usedforsecurity);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(py_sha3_new__doc__,
+"sha3_224(data=b\'\', /, *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Return a new BLAKE2b hash object.");
+
+static PyObject *
+py_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity);
+
+static PyObject *
+py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sha3_224", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ PyObject *data = NULL;
+ int usedforsecurity = 1;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional_posonly;
+ }
+ noptargs--;
+ data = fastargs[0];
+skip_optional_posonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(fastargs[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = py_sha3_new_impl(type, data, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_sha3_sha3_224_copy__doc__,
"copy($self, /)\n"
"--\n"
@@ -120,24 +120,24 @@ PyDoc_STRVAR(_sha3_shake_128_digest__doc__,
#define _SHA3_SHAKE_128_DIGEST_METHODDEF \
{"digest", (PyCFunction)_sha3_shake_128_digest, METH_O, _sha3_shake_128_digest__doc__},
-static PyObject *
-_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length);
-
-static PyObject *
-_sha3_shake_128_digest(SHA3object *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- unsigned long length;
-
- if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
- goto exit;
- }
- return_value = _sha3_shake_128_digest_impl(self, length);
-
-exit:
- return return_value;
-}
-
+static PyObject *
+_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length);
+
+static PyObject *
+_sha3_shake_128_digest(SHA3object *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ unsigned long length;
+
+ if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
+ goto exit;
+ }
+ return_value = _sha3_shake_128_digest_impl(self, length);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_sha3_shake_128_hexdigest__doc__,
"hexdigest($self, length, /)\n"
"--\n"
@@ -146,22 +146,22 @@ PyDoc_STRVAR(_sha3_shake_128_hexdigest__doc__,
#define _SHA3_SHAKE_128_HEXDIGEST_METHODDEF \
{"hexdigest", (PyCFunction)_sha3_shake_128_hexdigest, METH_O, _sha3_shake_128_hexdigest__doc__},
-
-static PyObject *
-_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length);
-
-static PyObject *
-_sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- unsigned long length;
-
- if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
- goto exit;
- }
- return_value = _sha3_shake_128_hexdigest_impl(self, length);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=c8a97b34e80def62 input=a9049054013a1b77]*/
+
+static PyObject *
+_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length);
+
+static PyObject *
+_sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ unsigned long length;
+
+ if (!_PyLong_UnsignedLong_Converter(arg, &length)) {
+ goto exit;
+ }
+ return_value = _sha3_shake_128_hexdigest_impl(self, length);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=c8a97b34e80def62 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/_sha3/sha3module.c b/contrib/tools/python3/src/Modules/_sha3/sha3module.c
index 5c7b9f38dc..b6a7130dd8 100644
--- a/contrib/tools/python3/src/Modules/_sha3/sha3module.c
+++ b/contrib/tools/python3/src/Modules/_sha3/sha3module.c
@@ -40,7 +40,7 @@
#elif PY_BIG_ENDIAN
/* opt64 is not yet supported on big endian platforms */
#define KeccakOpt 32
-#elif SIZEOF_VOID_P == 8
+#elif SIZEOF_VOID_P == 8
/* opt64 works only on little-endian 64bit platforms with unsigned int64 */
#define KeccakOpt 64
#else
@@ -48,9 +48,9 @@
#define KeccakOpt 32
#endif
-#if KeccakOpt == 64
+#if KeccakOpt == 64
/* 64bit platforms with unsigned int64 */
- typedef uint64_t UINT64;
+ typedef uint64_t UINT64;
typedef unsigned char UINT8;
#endif
@@ -64,11 +64,11 @@
#define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
#endif
-/* Prevent bus errors on platforms requiring aligned accesses such ARM. */
-#if HAVE_ALIGNED_REQUIRED && !defined(NO_MISALIGNED_ACCESSES)
-#define NO_MISALIGNED_ACCESSES
-#endif
-
+/* Prevent bus errors on platforms requiring aligned accesses such ARM. */
+#if HAVE_ALIGNED_REQUIRED && !defined(NO_MISALIGNED_ACCESSES)
+#define NO_MISALIGNED_ACCESSES
+#endif
+
/* mangle names */
#define KeccakF1600_FastLoop_Absorb _PySHA3_KeccakF1600_FastLoop_Absorb
#define Keccak_HashFinal _PySHA3_Keccak_HashFinal
@@ -174,20 +174,20 @@ newSHA3object(PyTypeObject *type)
return newobj;
}
-/*[clinic input]
-@classmethod
-_sha3.sha3_224.__new__ as py_sha3_new
- data: object(c_default="NULL") = b''
- /
- *
- usedforsecurity: bool = True
-
-Return a new BLAKE2b hash object.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+_sha3.sha3_224.__new__ as py_sha3_new
+ data: object(c_default="NULL") = b''
+ /
+ *
+ usedforsecurity: bool = True
+
+Return a new BLAKE2b hash object.
+[clinic start generated code]*/
+
static PyObject *
-py_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity)
-/*[clinic end generated code: output=90409addc5d5e8b0 input=bcfcdf2e4368347a]*/
+py_sha3_new_impl(PyTypeObject *type, PyObject *data, int usedforsecurity)
+/*[clinic end generated code: output=90409addc5d5e8b0 input=bcfcdf2e4368347a]*/
{
SHA3object *self = NULL;
Py_buffer buf = {NULL, NULL};
@@ -501,10 +501,10 @@ static PyGetSetDef SHA3_getseters[] = {
0, /* tp_itemsize */ \
/* methods */ \
(destructor)SHA3_dealloc, /* tp_dealloc */ \
- 0, /* tp_vectorcall_offset */ \
+ 0, /* tp_vectorcall_offset */ \
0, /* tp_getattr */ \
0, /* tp_setattr */ \
- 0, /* tp_as_async */ \
+ 0, /* tp_as_async */ \
0, /* tp_repr */ \
0, /* tp_as_number */ \
0, /* tp_as_sequence */ \
@@ -537,22 +537,22 @@ static PyGetSetDef SHA3_getseters[] = {
}
PyDoc_STRVAR(sha3_224__doc__,
-"sha3_224([data], *, usedforsecurity=True) -> SHA3 object\n\
+"sha3_224([data], *, usedforsecurity=True) -> SHA3 object\n\
\n\
Return a new SHA3 hash object with a hashbit length of 28 bytes.");
PyDoc_STRVAR(sha3_256__doc__,
-"sha3_256([data], *, usedforsecurity=True) -> SHA3 object\n\
+"sha3_256([data], *, usedforsecurity=True) -> SHA3 object\n\
\n\
Return a new SHA3 hash object with a hashbit length of 32 bytes.");
PyDoc_STRVAR(sha3_384__doc__,
-"sha3_384([data], *, usedforsecurity=True) -> SHA3 object\n\
+"sha3_384([data], *, usedforsecurity=True) -> SHA3 object\n\
\n\
Return a new SHA3 hash object with a hashbit length of 48 bytes.");
PyDoc_STRVAR(sha3_512__doc__,
-"sha3_512([data], *, usedforsecurity=True) -> SHA3 object\n\
+"sha3_512([data], *, usedforsecurity=True) -> SHA3 object\n\
\n\
Return a new SHA3 hash object with a hashbit length of 64 bytes.");
@@ -563,22 +563,22 @@ SHA3_TYPE(SHA3_512type, "_sha3.sha3_512", sha3_512__doc__, SHA3_methods);
#ifdef PY_WITH_KECCAK
PyDoc_STRVAR(keccak_224__doc__,
-"keccak_224([data], *, usedforsecurity=True) -> Keccak object\n\
+"keccak_224([data], *, usedforsecurity=True) -> Keccak object\n\
\n\
Return a new Keccak hash object with a hashbit length of 28 bytes.");
PyDoc_STRVAR(keccak_256__doc__,
-"keccak_256([data], *, usedforsecurity=True) -> Keccak object\n\
+"keccak_256([data], *, usedforsecurity=True) -> Keccak object\n\
\n\
Return a new Keccak hash object with a hashbit length of 32 bytes.");
PyDoc_STRVAR(keccak_384__doc__,
-"keccak_384([data], *, usedforsecurity=True) -> Keccak object\n\
+"keccak_384([data], *, usedforsecurity=True) -> Keccak object\n\
\n\
Return a new Keccak hash object with a hashbit length of 48 bytes.");
PyDoc_STRVAR(keccak_512__doc__,
-"keccak_512([data], *, usedforsecurity=True) -> Keccak object\n\
+"keccak_512([data], *, usedforsecurity=True) -> Keccak object\n\
\n\
Return a new Keccak hash object with a hashbit length of 64 bytes.");
@@ -590,7 +590,7 @@ SHA3_TYPE(Keccak_512type, "_sha3.keccak_512", keccak_512__doc__, SHA3_methods);
static PyObject *
-_SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex)
+_SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex)
{
unsigned char *digest = NULL;
SHA3_state temp;
@@ -640,15 +640,15 @@ _SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex)
/*[clinic input]
_sha3.shake_128.digest
- length: unsigned_long
+ length: unsigned_long
/
Return the digest value as a bytes object.
[clinic start generated code]*/
static PyObject *
-_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length)
-/*[clinic end generated code: output=2313605e2f87bb8f input=418ef6a36d2e6082]*/
+_sha3_shake_128_digest_impl(SHA3object *self, unsigned long length)
+/*[clinic end generated code: output=2313605e2f87bb8f input=418ef6a36d2e6082]*/
{
return _SHAKE_digest(self, length, 0);
}
@@ -657,15 +657,15 @@ _sha3_shake_128_digest_impl(SHA3object *self, unsigned long length)
/*[clinic input]
_sha3.shake_128.hexdigest
- length: unsigned_long
+ length: unsigned_long
/
Return the digest value as a string of hexadecimal digits.
[clinic start generated code]*/
static PyObject *
-_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length)
-/*[clinic end generated code: output=bf8e2f1e490944a8 input=69fb29b0926ae321]*/
+_sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length)
+/*[clinic end generated code: output=bf8e2f1e490944a8 input=69fb29b0926ae321]*/
{
return _SHAKE_digest(self, length, 1);
}
@@ -680,12 +680,12 @@ static PyMethodDef SHAKE_methods[] = {
};
PyDoc_STRVAR(shake_128__doc__,
-"shake_128([data], *, usedforsecurity=True) -> SHAKE object\n\
+"shake_128([data], *, usedforsecurity=True) -> SHAKE object\n\
\n\
Return a new SHAKE hash object.");
PyDoc_STRVAR(shake_256__doc__,
-"shake_256([data], *, usedforsecurity=True) -> SHAKE object\n\
+"shake_256([data], *, usedforsecurity=True) -> SHAKE object\n\
\n\
Return a new SHAKE hash object.");
@@ -718,7 +718,7 @@ PyInit__sha3(void)
#define init_sha3type(name, type) \
do { \
- Py_SET_TYPE(type, &PyType_Type); \
+ Py_SET_TYPE(type, &PyType_Type); \
if (PyType_Ready(type) < 0) { \
goto error; \
} \
diff --git a/contrib/tools/python3/src/Modules/_sqlite/cache.c b/contrib/tools/python3/src/Modules/_sqlite/cache.c
index 127a2bc812..758fc022f7 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/cache.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/cache.c
@@ -112,13 +112,13 @@ void pysqlite_cache_dealloc(pysqlite_Cache* self)
Py_TYPE(self)->tp_free((PyObject*)self);
}
-PyObject* pysqlite_cache_get(pysqlite_Cache* self, PyObject* key)
+PyObject* pysqlite_cache_get(pysqlite_Cache* self, PyObject* key)
{
pysqlite_Node* node;
pysqlite_Node* ptr;
PyObject* data;
- node = (pysqlite_Node*)PyDict_GetItemWithError(self->mapping, key);
+ node = (pysqlite_Node*)PyDict_GetItemWithError(self->mapping, key);
if (node) {
/* an entry for this key already exists in the cache */
@@ -156,11 +156,11 @@ PyObject* pysqlite_cache_get(pysqlite_Cache* self, PyObject* key)
}
ptr->prev = node;
}
- }
- else if (PyErr_Occurred()) {
- return NULL;
- }
- else {
+ }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
+ else {
/* There is no entry for this key in the cache, yet. We'll insert a new
* entry in the cache, and make space if necessary by throwing the
* least used item out of the cache. */
@@ -183,9 +183,9 @@ PyObject* pysqlite_cache_get(pysqlite_Cache* self, PyObject* key)
}
}
- /* We cannot replace this by PyObject_CallOneArg() since
- * PyObject_CallFunction() has a special case when using a
- * single tuple as argument. */
+ /* We cannot replace this by PyObject_CallOneArg() since
+ * PyObject_CallFunction() has a special case when using a
+ * single tuple as argument. */
data = PyObject_CallFunction(self->factory, "O", key);
if (!data) {
@@ -267,10 +267,10 @@ PyTypeObject pysqlite_NodeType = {
sizeof(pysqlite_Node), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)pysqlite_node_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -309,10 +309,10 @@ PyTypeObject pysqlite_CacheType = {
sizeof(pysqlite_Cache), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)pysqlite_cache_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_sqlite/cache.h b/contrib/tools/python3/src/Modules/_sqlite/cache.h
index 6c3cee3789..529010967c 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/cache.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/cache.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_CACHE_H
#define PYSQLITE_CACHE_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
/* The LRU cache is implemented as a combination of a doubly-linked with a
diff --git a/contrib/tools/python3/src/Modules/_sqlite/connection.c b/contrib/tools/python3/src/Modules/_sqlite/connection.c
index f3522c1362..30e333a4b8 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/connection.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/connection.c
@@ -23,7 +23,7 @@
#include "cache.h"
#include "module.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include "connection.h"
#include "statement.h"
#include "cursor.h"
@@ -77,7 +77,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
NULL
};
- const char* database;
+ const char* database;
PyObject* database_obj;
int detect_types = 0;
PyObject* isolation_level = NULL;
@@ -96,11 +96,11 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
return -1;
}
- if (PySys_Audit("sqlite3.connect", "O", database_obj) < 0) {
- Py_DECREF(database_obj);
- return -1;
- }
-
+ if (PySys_Audit("sqlite3.connect", "O", database_obj) < 0) {
+ Py_DECREF(database_obj);
+ return -1;
+ }
+
database = PyBytes_AsString(database_obj);
self->begin_statement = NULL;
@@ -134,10 +134,10 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
Py_DECREF(database_obj);
- if (self->db == NULL && rc == SQLITE_NOMEM) {
- PyErr_NoMemory();
- return -1;
- }
+ if (self->db == NULL && rc == SQLITE_NOMEM) {
+ PyErr_NoMemory();
+ return -1;
+ }
if (rc != SQLITE_OK) {
_pysqlite_seterror(self->db, NULL);
return -1;
@@ -152,7 +152,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
Py_INCREF(isolation_level);
}
Py_CLEAR(self->isolation_level);
- if (pysqlite_connection_set_isolation_level(self, isolation_level, NULL) != 0) {
+ if (pysqlite_connection_set_isolation_level(self, isolation_level, NULL) != 0) {
Py_DECREF(isolation_level);
return -1;
}
@@ -191,9 +191,9 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
}
self->check_same_thread = check_same_thread;
- self->function_pinboard_trace_callback = NULL;
- self->function_pinboard_progress_handler = NULL;
- self->function_pinboard_authorizer_cb = NULL;
+ self->function_pinboard_trace_callback = NULL;
+ self->function_pinboard_progress_handler = NULL;
+ self->function_pinboard_authorizer_cb = NULL;
Py_XSETREF(self->collations, PyDict_New());
if (!self->collations) {
@@ -211,8 +211,8 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
self->ProgrammingError = pysqlite_ProgrammingError;
self->NotSupportedError = pysqlite_NotSupportedError;
- self->initialized = 1;
-
+ self->initialized = 1;
+
return 0;
}
@@ -259,9 +259,9 @@ void pysqlite_connection_dealloc(pysqlite_Connection* self)
}
Py_XDECREF(self->isolation_level);
- Py_XDECREF(self->function_pinboard_trace_callback);
- Py_XDECREF(self->function_pinboard_progress_handler);
- Py_XDECREF(self->function_pinboard_authorizer_cb);
+ Py_XDECREF(self->function_pinboard_trace_callback);
+ Py_XDECREF(self->function_pinboard_progress_handler);
+ Py_XDECREF(self->function_pinboard_authorizer_cb);
Py_XDECREF(self->row_factory);
Py_XDECREF(self->text_factory);
Py_XDECREF(self->collations);
@@ -315,7 +315,7 @@ PyObject* pysqlite_connection_cursor(pysqlite_Connection* self, PyObject* args,
factory = (PyObject*)&pysqlite_CursorType;
}
- cursor = PyObject_CallOneArg(factory, (PyObject *)self);
+ cursor = PyObject_CallOneArg(factory, (PyObject *)self);
if (cursor == NULL)
return NULL;
if (!PyObject_TypeCheck(cursor, &pysqlite_CursorType)) {
@@ -344,12 +344,12 @@ PyObject* pysqlite_connection_close(pysqlite_Connection* self, PyObject* args)
return NULL;
}
- if (!self->initialized) {
- PyErr_SetString(pysqlite_ProgrammingError,
- "Base Connection.__init__ not called.");
- return NULL;
- }
-
+ if (!self->initialized) {
+ PyErr_SetString(pysqlite_ProgrammingError,
+ "Base Connection.__init__ not called.");
+ return NULL;
+ }
+
pysqlite_do_all_statements(self, ACTION_FINALIZE, 1);
if (self->db) {
@@ -520,17 +520,17 @@ _pysqlite_set_result(sqlite3_context* context, PyObject* py_val)
} else if (PyFloat_Check(py_val)) {
sqlite3_result_double(context, PyFloat_AsDouble(py_val));
} else if (PyUnicode_Check(py_val)) {
- Py_ssize_t sz;
- const char *str = PyUnicode_AsUTF8AndSize(py_val, &sz);
- if (str == NULL) {
+ Py_ssize_t sz;
+ const char *str = PyUnicode_AsUTF8AndSize(py_val, &sz);
+ if (str == NULL) {
return -1;
- }
- if (sz > INT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "string is longer than INT_MAX bytes");
- return -1;
- }
- sqlite3_result_text(context, str, (int)sz, SQLITE_TRANSIENT);
+ }
+ if (sz > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "string is longer than INT_MAX bytes");
+ return -1;
+ }
+ sqlite3_result_text(context, str, (int)sz, SQLITE_TRANSIENT);
} else if (PyObject_CheckBuffer(py_val)) {
Py_buffer view;
if (PyObject_GetBuffer(py_val, &view, PyBUF_SIMPLE) != 0) {
@@ -569,24 +569,24 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_
cur_value = argv[i];
switch (sqlite3_value_type(argv[i])) {
case SQLITE_INTEGER:
- cur_py_value = PyLong_FromLongLong(sqlite3_value_int64(cur_value));
+ cur_py_value = PyLong_FromLongLong(sqlite3_value_int64(cur_value));
break;
case SQLITE_FLOAT:
cur_py_value = PyFloat_FromDouble(sqlite3_value_double(cur_value));
break;
- case SQLITE_TEXT: {
- sqlite3 *db = sqlite3_context_db_handle(context);
- const char *text = (const char *)sqlite3_value_text(cur_value);
-
- if (text == NULL && sqlite3_errcode(db) == SQLITE_NOMEM) {
- PyErr_NoMemory();
- goto error;
+ case SQLITE_TEXT: {
+ sqlite3 *db = sqlite3_context_db_handle(context);
+ const char *text = (const char *)sqlite3_value_text(cur_value);
+
+ if (text == NULL && sqlite3_errcode(db) == SQLITE_NOMEM) {
+ PyErr_NoMemory();
+ goto error;
}
-
- Py_ssize_t size = sqlite3_value_bytes(cur_value);
- cur_py_value = PyUnicode_FromStringAndSize(text, size);
+
+ Py_ssize_t size = sqlite3_value_bytes(cur_value);
+ cur_py_value = PyUnicode_FromStringAndSize(text, size);
break;
- }
+ }
case SQLITE_BLOB:
buflen = sqlite3_value_bytes(cur_value);
cur_py_value = PyBytes_FromStringAndSize(
@@ -599,7 +599,7 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_
}
if (!cur_py_value) {
- goto error;
+ goto error;
}
PyTuple_SetItem(args, i, cur_py_value);
@@ -607,10 +607,10 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_
}
return args;
-
-error:
- Py_DECREF(args);
- return NULL;
+
+error:
+ Py_DECREF(args);
+ return NULL;
}
void _pysqlite_func_callback(sqlite3_context* context, int argc, sqlite3_value** argv)
@@ -734,7 +734,7 @@ void _pysqlite_final_callback(sqlite3_context* context)
PyErr_Fetch(&exception, &value, &tb);
restore = 1;
- function_result = _PyObject_CallMethodIdNoArgs(*aggregate_instance, &PyId_finalize);
+ function_result = _PyObject_CallMethodIdNoArgs(*aggregate_instance, &PyId_finalize);
Py_DECREF(*aggregate_instance);
@@ -829,56 +829,56 @@ static void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self)
Py_SETREF(self->cursors, new_list);
}
-static void _destructor(void* args)
-{
- Py_DECREF((PyObject*)args);
-}
-
+static void _destructor(void* args)
+{
+ Py_DECREF((PyObject*)args);
+}
+
PyObject* pysqlite_connection_create_function(pysqlite_Connection* self, PyObject* args, PyObject* kwargs)
{
- static char *kwlist[] = {"name", "narg", "func", "deterministic", NULL};
+ static char *kwlist[] = {"name", "narg", "func", "deterministic", NULL};
PyObject* func;
char* name;
int narg;
int rc;
- int deterministic = 0;
- int flags = SQLITE_UTF8;
+ int deterministic = 0;
+ int flags = SQLITE_UTF8;
if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
return NULL;
}
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "siO|$p", kwlist,
- &name, &narg, &func, &deterministic))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "siO|$p", kwlist,
+ &name, &narg, &func, &deterministic))
{
return NULL;
}
- if (deterministic) {
-#if SQLITE_VERSION_NUMBER < 3008003
- PyErr_SetString(pysqlite_NotSupportedError,
- "deterministic=True requires SQLite 3.8.3 or higher");
+ if (deterministic) {
+#if SQLITE_VERSION_NUMBER < 3008003
+ PyErr_SetString(pysqlite_NotSupportedError,
+ "deterministic=True requires SQLite 3.8.3 or higher");
return NULL;
-#else
- if (sqlite3_libversion_number() < 3008003) {
- PyErr_SetString(pysqlite_NotSupportedError,
- "deterministic=True requires SQLite 3.8.3 or higher");
- return NULL;
- }
- flags |= SQLITE_DETERMINISTIC;
-#endif
- }
- Py_INCREF(func);
- rc = sqlite3_create_function_v2(self->db,
- name,
- narg,
- flags,
- (void*)func,
- _pysqlite_func_callback,
- NULL,
- NULL,
- &_destructor); // will decref func
+#else
+ if (sqlite3_libversion_number() < 3008003) {
+ PyErr_SetString(pysqlite_NotSupportedError,
+ "deterministic=True requires SQLite 3.8.3 or higher");
+ return NULL;
+ }
+ flags |= SQLITE_DETERMINISTIC;
+#endif
+ }
+ Py_INCREF(func);
+ rc = sqlite3_create_function_v2(self->db,
+ name,
+ narg,
+ flags,
+ (void*)func,
+ _pysqlite_func_callback,
+ NULL,
+ NULL,
+ &_destructor); // will decref func
if (rc != SQLITE_OK) {
/* Workaround for SQLite bug: no error code or string is available here */
@@ -905,16 +905,16 @@ PyObject* pysqlite_connection_create_aggregate(pysqlite_Connection* self, PyObje
kwlist, &name, &n_arg, &aggregate_class)) {
return NULL;
}
- Py_INCREF(aggregate_class);
- rc = sqlite3_create_function_v2(self->db,
- name,
- n_arg,
- SQLITE_UTF8,
- (void*)aggregate_class,
- 0,
- &_pysqlite_step_callback,
- &_pysqlite_final_callback,
- &_destructor); // will decref func
+ Py_INCREF(aggregate_class);
+ rc = sqlite3_create_function_v2(self->db,
+ name,
+ n_arg,
+ SQLITE_UTF8,
+ (void*)aggregate_class,
+ 0,
+ &_pysqlite_step_callback,
+ &_pysqlite_final_callback,
+ &_destructor); // will decref func
if (rc != SQLITE_OK) {
/* Workaround for SQLite bug: no error code or string is available here */
PyErr_SetString(pysqlite_OperationalError, "Error creating aggregate");
@@ -1000,7 +1000,7 @@ static void _trace_callback(void* user_arg, const char* statement_string)
py_statement = PyUnicode_DecodeUTF8(statement_string,
strlen(statement_string), "replace");
if (py_statement) {
- ret = PyObject_CallOneArg((PyObject*)user_arg, py_statement);
+ ret = PyObject_CallOneArg((PyObject*)user_arg, py_statement);
Py_DECREF(py_statement);
}
@@ -1036,11 +1036,11 @@ static PyObject* pysqlite_connection_set_authorizer(pysqlite_Connection* self, P
rc = sqlite3_set_authorizer(self->db, _authorizer_callback, (void*)authorizer_cb);
if (rc != SQLITE_OK) {
PyErr_SetString(pysqlite_OperationalError, "Error setting authorizer callback");
- Py_XSETREF(self->function_pinboard_authorizer_cb, NULL);
+ Py_XSETREF(self->function_pinboard_authorizer_cb, NULL);
return NULL;
- } else {
- Py_INCREF(authorizer_cb);
- Py_XSETREF(self->function_pinboard_authorizer_cb, authorizer_cb);
+ } else {
+ Py_INCREF(authorizer_cb);
+ Py_XSETREF(self->function_pinboard_authorizer_cb, authorizer_cb);
}
Py_RETURN_NONE;
}
@@ -1064,11 +1064,11 @@ static PyObject* pysqlite_connection_set_progress_handler(pysqlite_Connection* s
if (progress_handler == Py_None) {
/* None clears the progress handler previously set */
sqlite3_progress_handler(self->db, 0, 0, (void*)0);
- Py_XSETREF(self->function_pinboard_progress_handler, NULL);
+ Py_XSETREF(self->function_pinboard_progress_handler, NULL);
} else {
sqlite3_progress_handler(self->db, n, _progress_handler, progress_handler);
- Py_INCREF(progress_handler);
- Py_XSETREF(self->function_pinboard_progress_handler, progress_handler);
+ Py_INCREF(progress_handler);
+ Py_XSETREF(self->function_pinboard_progress_handler, progress_handler);
}
Py_RETURN_NONE;
}
@@ -1091,11 +1091,11 @@ static PyObject* pysqlite_connection_set_trace_callback(pysqlite_Connection* sel
if (trace_callback == Py_None) {
/* None clears the trace callback previously set */
sqlite3_trace(self->db, 0, (void*)0);
- Py_XSETREF(self->function_pinboard_trace_callback, NULL);
+ Py_XSETREF(self->function_pinboard_trace_callback, NULL);
} else {
sqlite3_trace(self->db, _trace_callback, trace_callback);
- Py_INCREF(trace_callback);
- Py_XSETREF(self->function_pinboard_trace_callback, trace_callback);
+ Py_INCREF(trace_callback);
+ Py_XSETREF(self->function_pinboard_trace_callback, trace_callback);
}
Py_RETURN_NONE;
@@ -1166,9 +1166,9 @@ int pysqlite_check_thread(pysqlite_Connection* self)
static PyObject* pysqlite_connection_get_isolation_level(pysqlite_Connection* self, void* unused)
{
- if (!pysqlite_check_connection(self)) {
- return NULL;
- }
+ if (!pysqlite_check_connection(self)) {
+ return NULL;
+ }
Py_INCREF(self->isolation_level);
return self->isolation_level;
}
@@ -1201,16 +1201,16 @@ pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* iso
return -1;
}
if (isolation_level == Py_None) {
- /* We might get called during connection init, so we cannot use
- * pysqlite_connection_commit() here. */
- if (self->db && !sqlite3_get_autocommit(self->db)) {
- int rc;
- Py_BEGIN_ALLOW_THREADS
- rc = sqlite3_exec(self->db, "COMMIT", NULL, NULL, NULL);
- Py_END_ALLOW_THREADS
- if (rc != SQLITE_OK) {
- return _pysqlite_seterror(self->db, NULL);
- }
+ /* We might get called during connection init, so we cannot use
+ * pysqlite_connection_commit() here. */
+ if (self->db && !sqlite3_get_autocommit(self->db)) {
+ int rc;
+ Py_BEGIN_ALLOW_THREADS
+ rc = sqlite3_exec(self->db, "COMMIT", NULL, NULL, NULL);
+ Py_END_ALLOW_THREADS
+ if (rc != SQLITE_OK) {
+ return _pysqlite_seterror(self->db, NULL);
+ }
}
self->begin_statement = NULL;
@@ -1226,9 +1226,9 @@ pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* iso
return -1;
}
- uppercase_level = _PyObject_CallMethodIdOneArg(
+ uppercase_level = _PyObject_CallMethodIdOneArg(
(PyObject *)&PyUnicode_Type, &PyId_upper,
- isolation_level);
+ isolation_level);
if (!uppercase_level) {
return -1;
}
@@ -1264,7 +1264,7 @@ PyObject* pysqlite_connection_call(pysqlite_Connection* self, PyObject* args, Py
if (!_PyArg_NoKeywords(MODULE_NAME ".Connection", kwargs))
return NULL;
- if (!PyArg_ParseTuple(args, "U", &sql))
+ if (!PyArg_ParseTuple(args, "U", &sql))
return NULL;
_pysqlite_drop_unused_statement_references(self);
@@ -1316,7 +1316,7 @@ PyObject* pysqlite_connection_execute(pysqlite_Connection* self, PyObject* args)
PyObject* result = 0;
PyObject* method = 0;
- cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
+ cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
if (!cursor) {
goto error;
}
@@ -1345,7 +1345,7 @@ PyObject* pysqlite_connection_executemany(pysqlite_Connection* self, PyObject* a
PyObject* result = 0;
PyObject* method = 0;
- cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
+ cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
if (!cursor) {
goto error;
}
@@ -1374,7 +1374,7 @@ PyObject* pysqlite_connection_executescript(pysqlite_Connection* self, PyObject*
PyObject* result = 0;
PyObject* method = 0;
- cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
+ cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
if (!cursor) {
goto error;
}
@@ -1477,7 +1477,7 @@ finally:
static PyObject *
pysqlite_connection_iterdump(pysqlite_Connection* self, PyObject* args)
{
- _Py_IDENTIFIER(_iterdump);
+ _Py_IDENTIFIER(_iterdump);
PyObject* retval = NULL;
PyObject* module = NULL;
PyObject* module_dict;
@@ -1497,16 +1497,16 @@ pysqlite_connection_iterdump(pysqlite_Connection* self, PyObject* args)
goto finally;
}
- pyfn_iterdump = _PyDict_GetItemIdWithError(module_dict, &PyId__iterdump);
+ pyfn_iterdump = _PyDict_GetItemIdWithError(module_dict, &PyId__iterdump);
if (!pyfn_iterdump) {
- if (!PyErr_Occurred()) {
- PyErr_SetString(pysqlite_OperationalError,
- "Failed to obtain _iterdump() reference");
- }
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(pysqlite_OperationalError,
+ "Failed to obtain _iterdump() reference");
+ }
goto finally;
}
- retval = PyObject_CallOneArg(pyfn_iterdump, (PyObject *)self);
+ retval = PyObject_CallOneArg(pyfn_iterdump, (PyObject *)self);
finally:
Py_XDECREF(module);
@@ -1523,37 +1523,37 @@ pysqlite_connection_backup(pysqlite_Connection *self, PyObject *args, PyObject *
const char *name = "main";
int rc;
int callback_error = 0;
- PyObject *sleep_obj = NULL;
- int sleep_ms = 250;
+ PyObject *sleep_obj = NULL;
+ int sleep_ms = 250;
sqlite3 *bck_conn;
sqlite3_backup *bck_handle;
static char *keywords[] = {"target", "pages", "progress", "name", "sleep", NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|$iOsO:backup", keywords,
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|$iOsO:backup", keywords,
&pysqlite_ConnectionType, &target,
- &pages, &progress, &name, &sleep_obj)) {
+ &pages, &progress, &name, &sleep_obj)) {
+ return NULL;
+ }
+
+ if (sleep_obj != NULL) {
+ _PyTime_t sleep_secs;
+ if (_PyTime_FromSecondsObject(&sleep_secs, sleep_obj,
+ _PyTime_ROUND_TIMEOUT)) {
+ return NULL;
+ }
+ _PyTime_t ms = _PyTime_AsMilliseconds(sleep_secs,
+ _PyTime_ROUND_TIMEOUT);
+ if (ms < INT_MIN || ms > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "sleep is too large");
+ return NULL;
+ }
+ sleep_ms = (int)ms;
+ }
+
+ if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
return NULL;
}
- if (sleep_obj != NULL) {
- _PyTime_t sleep_secs;
- if (_PyTime_FromSecondsObject(&sleep_secs, sleep_obj,
- _PyTime_ROUND_TIMEOUT)) {
- return NULL;
- }
- _PyTime_t ms = _PyTime_AsMilliseconds(sleep_secs,
- _PyTime_ROUND_TIMEOUT);
- if (ms < INT_MIN || ms > INT_MAX) {
- PyErr_SetString(PyExc_OverflowError, "sleep is too large");
- return NULL;
- }
- sleep_ms = (int)ms;
- }
-
- if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
- return NULL;
- }
-
if (!pysqlite_check_connection((pysqlite_Connection *)target)) {
return NULL;
}
@@ -1613,7 +1613,7 @@ pysqlite_connection_backup(pysqlite_Connection *self, PyObject *args, PyObject *
the engine could not make any progress */
if (rc == SQLITE_BUSY || rc == SQLITE_LOCKED) {
Py_BEGIN_ALLOW_THREADS
- sqlite3_sleep(sleep_ms);
+ sqlite3_sleep(sleep_ms);
Py_END_ALLOW_THREADS
}
} while (rc == SQLITE_OK || rc == SQLITE_BUSY || rc == SQLITE_LOCKED);
@@ -1682,7 +1682,7 @@ pysqlite_connection_create_collation(pysqlite_Connection* self, PyObject* args)
const char *uppercase_name_str;
int rc;
unsigned int kind;
- const void *data;
+ const void *data;
if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
goto finally;
@@ -1693,8 +1693,8 @@ pysqlite_connection_create_collation(pysqlite_Connection* self, PyObject* args)
goto finally;
}
- uppercase_name = _PyObject_CallMethodIdOneArg((PyObject *)&PyUnicode_Type,
- &PyId_upper, name);
+ uppercase_name = _PyObject_CallMethodIdOneArg((PyObject *)&PyUnicode_Type,
+ &PyId_upper, name);
if (!uppercase_name) {
goto finally;
}
@@ -1740,11 +1740,11 @@ pysqlite_connection_create_collation(pysqlite_Connection* self, PyObject* args)
(callable != Py_None) ? callable : NULL,
(callable != Py_None) ? pysqlite_collation_callback : NULL);
if (rc != SQLITE_OK) {
- if (callable != Py_None) {
- if (PyDict_DelItem(self->collations, uppercase_name) < 0) {
- PyErr_Clear();
- }
- }
+ if (callable != Py_None) {
+ if (PyDict_DelItem(self->collations, uppercase_name) < 0) {
+ PyErr_Clear();
+ }
+ }
_pysqlite_seterror(self->db, NULL);
goto finally;
}
@@ -1776,36 +1776,36 @@ pysqlite_connection_enter(pysqlite_Connection* self, PyObject* args)
static PyObject *
pysqlite_connection_exit(pysqlite_Connection* self, PyObject* args)
{
- PyObject *exc_type, *exc_value, *exc_tb;
+ PyObject *exc_type, *exc_value, *exc_tb;
if (!PyArg_ParseTuple(args, "OOO", &exc_type, &exc_value, &exc_tb)) {
return NULL;
}
- int commit = 0;
- PyObject *result;
+ int commit = 0;
+ PyObject *result;
if (exc_type == Py_None && exc_value == Py_None && exc_tb == Py_None) {
- commit = 1;
- result = pysqlite_connection_commit(self, NULL);
- }
- else {
- result = pysqlite_connection_rollback(self, NULL);
- }
-
- if (result == NULL) {
- if (commit) {
- /* Commit failed; try to rollback in order to unlock the database.
- * If rollback also fails, chain the exceptions. */
- PyObject *exc, *val, *tb;
- PyErr_Fetch(&exc, &val, &tb);
- result = pysqlite_connection_rollback(self, NULL);
- if (result == NULL) {
- _PyErr_ChainExceptions(exc, val, tb);
- }
- else {
- Py_DECREF(result);
- PyErr_Restore(exc, val, tb);
- }
- }
+ commit = 1;
+ result = pysqlite_connection_commit(self, NULL);
+ }
+ else {
+ result = pysqlite_connection_rollback(self, NULL);
+ }
+
+ if (result == NULL) {
+ if (commit) {
+ /* Commit failed; try to rollback in order to unlock the database.
+ * If rollback also fails, chain the exceptions. */
+ PyObject *exc, *val, *tb;
+ PyErr_Fetch(&exc, &val, &tb);
+ result = pysqlite_connection_rollback(self, NULL);
+ if (result == NULL) {
+ _PyErr_ChainExceptions(exc, val, tb);
+ }
+ else {
+ Py_DECREF(result);
+ PyErr_Restore(exc, val, tb);
+ }
+ }
return NULL;
}
Py_DECREF(result);
@@ -1824,7 +1824,7 @@ static PyGetSetDef connection_getset[] = {
};
static PyMethodDef connection_methods[] = {
- {"cursor", (PyCFunction)(void(*)(void))pysqlite_connection_cursor, METH_VARARGS|METH_KEYWORDS,
+ {"cursor", (PyCFunction)(void(*)(void))pysqlite_connection_cursor, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("Return a cursor for the connection.")},
{"close", (PyCFunction)pysqlite_connection_close, METH_NOARGS,
PyDoc_STR("Closes the connection.")},
@@ -1832,11 +1832,11 @@ static PyMethodDef connection_methods[] = {
PyDoc_STR("Commit the current transaction.")},
{"rollback", (PyCFunction)pysqlite_connection_rollback, METH_NOARGS,
PyDoc_STR("Roll back the current transaction.")},
- {"create_function", (PyCFunction)(void(*)(void))pysqlite_connection_create_function, METH_VARARGS|METH_KEYWORDS,
+ {"create_function", (PyCFunction)(void(*)(void))pysqlite_connection_create_function, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("Creates a new function. Non-standard.")},
- {"create_aggregate", (PyCFunction)(void(*)(void))pysqlite_connection_create_aggregate, METH_VARARGS|METH_KEYWORDS,
+ {"create_aggregate", (PyCFunction)(void(*)(void))pysqlite_connection_create_aggregate, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("Creates a new aggregate. Non-standard.")},
- {"set_authorizer", (PyCFunction)(void(*)(void))pysqlite_connection_set_authorizer, METH_VARARGS|METH_KEYWORDS,
+ {"set_authorizer", (PyCFunction)(void(*)(void))pysqlite_connection_set_authorizer, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("Sets authorizer callback. Non-standard.")},
#ifdef HAVE_LOAD_EXTENSION
{"enable_load_extension", (PyCFunction)pysqlite_enable_load_extension, METH_VARARGS,
@@ -1844,9 +1844,9 @@ static PyMethodDef connection_methods[] = {
{"load_extension", (PyCFunction)pysqlite_load_extension, METH_VARARGS,
PyDoc_STR("Load SQLite extension module. Non-standard.")},
#endif
- {"set_progress_handler", (PyCFunction)(void(*)(void))pysqlite_connection_set_progress_handler, METH_VARARGS|METH_KEYWORDS,
+ {"set_progress_handler", (PyCFunction)(void(*)(void))pysqlite_connection_set_progress_handler, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("Sets progress handler callback. Non-standard.")},
- {"set_trace_callback", (PyCFunction)(void(*)(void))pysqlite_connection_set_trace_callback, METH_VARARGS|METH_KEYWORDS,
+ {"set_trace_callback", (PyCFunction)(void(*)(void))pysqlite_connection_set_trace_callback, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("Sets a trace callback called for each SQL statement (passed as unicode). Non-standard.")},
{"execute", (PyCFunction)pysqlite_connection_execute, METH_VARARGS,
PyDoc_STR("Executes a SQL statement. Non-standard.")},
@@ -1861,7 +1861,7 @@ static PyMethodDef connection_methods[] = {
{"iterdump", (PyCFunction)pysqlite_connection_iterdump, METH_NOARGS,
PyDoc_STR("Returns iterator to the dump of the database in an SQL text format. Non-standard.")},
#ifdef HAVE_BACKUP_API
- {"backup", (PyCFunction)(void(*)(void))pysqlite_connection_backup, METH_VARARGS | METH_KEYWORDS,
+ {"backup", (PyCFunction)(void(*)(void))pysqlite_connection_backup, METH_VARARGS | METH_KEYWORDS,
PyDoc_STR("Makes a backup of the database. Non-standard.")},
#endif
{"__enter__", (PyCFunction)pysqlite_connection_enter, METH_NOARGS,
@@ -1894,10 +1894,10 @@ PyTypeObject pysqlite_ConnectionType = {
sizeof(pysqlite_Connection), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)pysqlite_connection_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_sqlite/connection.h b/contrib/tools/python3/src/Modules/_sqlite/connection.h
index 437de6ebd5..206085e00a 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/connection.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/connection.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_CONNECTION_H
#define PYSQLITE_CONNECTION_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include "pythread.h"
#include "structmember.h"
@@ -85,10 +85,10 @@ typedef struct
*/
PyObject* text_factory;
- /* remember references to object used in trace_callback/progress_handler/authorizer_cb */
- PyObject* function_pinboard_trace_callback;
- PyObject* function_pinboard_progress_handler;
- PyObject* function_pinboard_authorizer_cb;
+ /* remember references to object used in trace_callback/progress_handler/authorizer_cb */
+ PyObject* function_pinboard_trace_callback;
+ PyObject* function_pinboard_progress_handler;
+ PyObject* function_pinboard_authorizer_cb;
/* a dictionary of registered collation name => collation callable mappings */
PyObject* collations;
diff --git a/contrib/tools/python3/src/Modules/_sqlite/cursor.c b/contrib/tools/python3/src/Modules/_sqlite/cursor.c
index ff6b0783df..dd0ce7e1ea 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/cursor.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/cursor.c
@@ -42,7 +42,7 @@ static int pysqlite_cursor_init(pysqlite_Cursor* self, PyObject* args, PyObject*
Py_XSETREF(self->connection, connection);
Py_CLEAR(self->statement);
Py_CLEAR(self->next_row);
- Py_CLEAR(self->row_cast_map);
+ Py_CLEAR(self->row_cast_map);
Py_INCREF(Py_None);
Py_XSETREF(self->description, Py_None);
@@ -94,32 +94,32 @@ static void pysqlite_cursor_dealloc(pysqlite_Cursor* self)
Py_TYPE(self)->tp_free((PyObject*)self);
}
-static PyObject *
-_pysqlite_get_converter(const char *keystr, Py_ssize_t keylen)
+static PyObject *
+_pysqlite_get_converter(const char *keystr, Py_ssize_t keylen)
{
- PyObject *key;
- PyObject *upcase_key;
- PyObject *retval;
+ PyObject *key;
+ PyObject *upcase_key;
+ PyObject *retval;
_Py_IDENTIFIER(upper);
- key = PyUnicode_FromStringAndSize(keystr, keylen);
- if (!key) {
- return NULL;
- }
- upcase_key = _PyObject_CallMethodIdNoArgs(key, &PyId_upper);
- Py_DECREF(key);
+ key = PyUnicode_FromStringAndSize(keystr, keylen);
+ if (!key) {
+ return NULL;
+ }
+ upcase_key = _PyObject_CallMethodIdNoArgs(key, &PyId_upper);
+ Py_DECREF(key);
if (!upcase_key) {
return NULL;
}
- retval = PyDict_GetItemWithError(_pysqlite_converters, upcase_key);
+ retval = PyDict_GetItemWithError(_pysqlite_converters, upcase_key);
Py_DECREF(upcase_key);
return retval;
}
-static int
-pysqlite_build_row_cast_map(pysqlite_Cursor* self)
+static int
+pysqlite_build_row_cast_map(pysqlite_Cursor* self)
{
int i;
const char* pos;
@@ -132,9 +132,9 @@ pysqlite_build_row_cast_map(pysqlite_Cursor* self)
}
Py_XSETREF(self->row_cast_map, PyList_New(0));
- if (!self->row_cast_map) {
- return -1;
- }
+ if (!self->row_cast_map) {
+ return -1;
+ }
for (i = 0; i < sqlite3_column_count(self->statement->st); i++) {
converter = NULL;
@@ -142,16 +142,16 @@ pysqlite_build_row_cast_map(pysqlite_Cursor* self)
if (self->connection->detect_types & PARSE_COLNAMES) {
colname = sqlite3_column_name(self->statement->st, i);
if (colname) {
- const char *type_start = NULL;
+ const char *type_start = NULL;
for (pos = colname; *pos != 0; pos++) {
if (*pos == '[') {
type_start = pos + 1;
- }
- else if (*pos == ']' && type_start != NULL) {
- converter = _pysqlite_get_converter(type_start, pos - type_start);
- if (!converter && PyErr_Occurred()) {
- Py_CLEAR(self->row_cast_map);
- return -1;
+ }
+ else if (*pos == ']' && type_start != NULL) {
+ converter = _pysqlite_get_converter(type_start, pos - type_start);
+ if (!converter && PyErr_Occurred()) {
+ Py_CLEAR(self->row_cast_map);
+ return -1;
}
break;
}
@@ -168,9 +168,9 @@ pysqlite_build_row_cast_map(pysqlite_Cursor* self)
* 'NUMBER(10)' to be treated as 'NUMBER', for example.
* In other words, it will work as people expect it to work.*/
if (*pos == ' ' || *pos == '(' || *pos == 0) {
- converter = _pysqlite_get_converter(decltype, pos - decltype);
- if (!converter && PyErr_Occurred()) {
- Py_CLEAR(self->row_cast_map);
+ converter = _pysqlite_get_converter(decltype, pos - decltype);
+ if (!converter && PyErr_Occurred()) {
+ Py_CLEAR(self->row_cast_map);
return -1;
}
break;
@@ -192,31 +192,31 @@ pysqlite_build_row_cast_map(pysqlite_Cursor* self)
return 0;
}
-static PyObject *
-_pysqlite_build_column_name(pysqlite_Cursor *self, const char *colname)
+static PyObject *
+_pysqlite_build_column_name(pysqlite_Cursor *self, const char *colname)
{
const char* pos;
- Py_ssize_t len;
+ Py_ssize_t len;
if (!colname) {
Py_RETURN_NONE;
}
- if (self->connection->detect_types & PARSE_COLNAMES) {
- for (pos = colname; *pos; pos++) {
- if (*pos == '[') {
- if ((pos != colname) && (*(pos-1) == ' ')) {
- pos--;
- }
- break;
+ if (self->connection->detect_types & PARSE_COLNAMES) {
+ for (pos = colname; *pos; pos++) {
+ if (*pos == '[') {
+ if ((pos != colname) && (*(pos-1) == ' ')) {
+ pos--;
+ }
+ break;
}
}
- len = pos - colname;
+ len = pos - colname;
}
- else {
- len = strlen(colname);
- }
- return PyUnicode_FromStringAndSize(colname, len);
+ else {
+ len = strlen(colname);
+ }
+ return PyUnicode_FromStringAndSize(colname, len);
}
/*
@@ -225,8 +225,8 @@ _pysqlite_build_column_name(pysqlite_Cursor *self, const char *colname)
* Precondidition:
* - sqlite3_step() has been called before and it returned SQLITE_ROW.
*/
-static PyObject *
-_pysqlite_fetch_one_row(pysqlite_Cursor* self)
+static PyObject *
+_pysqlite_fetch_one_row(pysqlite_Cursor* self)
{
int i, numcols;
PyObject* row;
@@ -238,7 +238,7 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
const char* val_str;
char buf[200];
const char* colname;
- PyObject* error_msg;
+ PyObject* error_msg;
if (self->reset) {
PyErr_SetString(pysqlite_InterfaceError, errmsg_fetch_across_rollback);
@@ -254,13 +254,13 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
return NULL;
for (i = 0; i < numcols; i++) {
- if (self->connection->detect_types
- && self->row_cast_map != NULL
- && i < PyList_GET_SIZE(self->row_cast_map))
- {
- converter = PyList_GET_ITEM(self->row_cast_map, i);
- }
- else {
+ if (self->connection->detect_types
+ && self->row_cast_map != NULL
+ && i < PyList_GET_SIZE(self->row_cast_map))
+ {
+ converter = PyList_GET_ITEM(self->row_cast_map, i);
+ }
+ else {
converter = Py_None;
}
@@ -274,7 +274,7 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
item = PyBytes_FromStringAndSize(val_str, nbytes);
if (!item)
goto error;
- converted = PyObject_CallOneArg(converter, item);
+ converted = PyObject_CallOneArg(converter, item);
Py_DECREF(item);
}
} else {
@@ -285,7 +285,7 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
Py_INCREF(Py_None);
converted = Py_None;
} else if (coltype == SQLITE_INTEGER) {
- converted = PyLong_FromLongLong(sqlite3_column_int64(self->statement->st, i));
+ converted = PyLong_FromLongLong(sqlite3_column_int64(self->statement->st, i));
} else if (coltype == SQLITE_FLOAT) {
converted = PyFloat_FromDouble(sqlite3_column_double(self->statement->st, i));
} else if (coltype == SQLITE_TEXT) {
@@ -293,7 +293,7 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
nbytes = sqlite3_column_bytes(self->statement->st, i);
if (self->connection->text_factory == (PyObject*)&PyUnicode_Type) {
converted = PyUnicode_FromStringAndSize(val_str, nbytes);
- if (!converted && PyErr_ExceptionMatches(PyExc_UnicodeDecodeError)) {
+ if (!converted && PyErr_ExceptionMatches(PyExc_UnicodeDecodeError)) {
PyErr_Clear();
colname = sqlite3_column_name(self->statement->st, i);
if (!colname) {
@@ -301,12 +301,12 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
}
PyOS_snprintf(buf, sizeof(buf) - 1, "Could not decode to UTF-8 column '%s' with text '%s'",
colname , val_str);
- error_msg = PyUnicode_Decode(buf, strlen(buf), "ascii", "replace");
- if (!error_msg) {
+ error_msg = PyUnicode_Decode(buf, strlen(buf), "ascii", "replace");
+ if (!error_msg) {
PyErr_SetString(pysqlite_OperationalError, "Could not decode to UTF-8");
} else {
- PyErr_SetObject(pysqlite_OperationalError, error_msg);
- Py_DECREF(error_msg);
+ PyErr_SetObject(pysqlite_OperationalError, error_msg);
+ Py_DECREF(error_msg);
}
}
} else if (self->connection->text_factory == (PyObject*)&PyBytes_Type) {
@@ -319,15 +319,15 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
} else {
/* coltype == SQLITE_BLOB */
nbytes = sqlite3_column_bytes(self->statement->st, i);
- converted = PyBytes_FromStringAndSize(
+ converted = PyBytes_FromStringAndSize(
sqlite3_column_blob(self->statement->st, i), nbytes);
}
}
- if (!converted) {
- goto error;
+ if (!converted) {
+ goto error;
}
- PyTuple_SetItem(row, i, converted);
+ PyTuple_SetItem(row, i, converted);
}
if (PyErr_Occurred())
@@ -365,8 +365,8 @@ static int check_cursor(pysqlite_Cursor* cur)
return pysqlite_check_thread(cur->connection) && pysqlite_check_connection(cur->connection);
}
-static PyObject *
-_pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
+static PyObject *
+_pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
{
PyObject* operation;
PyObject* parameters_list = NULL;
@@ -378,7 +378,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
PyObject* result;
int numcols;
PyObject* descriptor;
- PyObject* column_name;
+ PyObject* column_name;
PyObject* second_argument = NULL;
sqlite_int64 lastrowid;
@@ -393,7 +393,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
if (multiple) {
/* executemany() */
- if (!PyArg_ParseTuple(args, "UO", &operation, &second_argument)) {
+ if (!PyArg_ParseTuple(args, "UO", &operation, &second_argument)) {
goto error;
}
@@ -410,7 +410,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
}
} else {
/* execute() */
- if (!PyArg_ParseTuple(args, "U|O", &operation, &second_argument)) {
+ if (!PyArg_ParseTuple(args, "U|O", &operation, &second_argument)) {
goto error;
}
@@ -527,7 +527,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
}
if (pysqlite_build_row_cast_map(self) != 0) {
- _PyErr_FormatFromCause(pysqlite_OperationalError, "Error while building row_cast_map");
+ _PyErr_FormatFromCause(pysqlite_OperationalError, "Error while building row_cast_map");
goto error;
}
@@ -545,13 +545,13 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
if (!descriptor) {
goto error;
}
- column_name = _pysqlite_build_column_name(self,
- sqlite3_column_name(self->statement->st, i));
- if (!column_name) {
- Py_DECREF(descriptor);
- goto error;
- }
- PyTuple_SetItem(descriptor, 0, column_name);
+ column_name = _pysqlite_build_column_name(self,
+ sqlite3_column_name(self->statement->st, i));
+ if (!column_name) {
+ Py_DECREF(descriptor);
+ goto error;
+ }
+ PyTuple_SetItem(descriptor, 0, column_name);
Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 1, Py_None);
Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 2, Py_None);
Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 3, Py_None);
@@ -572,10 +572,10 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)
Py_BEGIN_ALLOW_THREADS
lastrowid = sqlite3_last_insert_rowid(self->connection->db);
Py_END_ALLOW_THREADS
- Py_SETREF(self->lastrowid, PyLong_FromLongLong(lastrowid));
- if (self->lastrowid == NULL) {
- goto error;
- }
+ Py_SETREF(self->lastrowid, PyLong_FromLongLong(lastrowid));
+ if (self->lastrowid == NULL) {
+ goto error;
+ }
}
if (rc == SQLITE_ROW) {
@@ -624,8 +624,8 @@ PyObject* pysqlite_cursor_executemany(pysqlite_Cursor* self, PyObject* args)
return _pysqlite_query_execute(self, 1, args);
}
-static PyObject *
-pysqlite_cursor_executescript(pysqlite_Cursor* self, PyObject* args)
+static PyObject *
+pysqlite_cursor_executescript(pysqlite_Cursor* self, PyObject* args)
{
PyObject* script_obj;
const char* script_cstr;
@@ -787,7 +787,7 @@ PyObject* pysqlite_cursor_fetchone(pysqlite_Cursor* self, PyObject* args)
PyObject* pysqlite_cursor_fetchmany(pysqlite_Cursor* self, PyObject* args, PyObject* kwargs)
{
- static char *kwlist[] = {"size", NULL};
+ static char *kwlist[] = {"size", NULL};
PyObject* row;
PyObject* list;
@@ -803,12 +803,12 @@ PyObject* pysqlite_cursor_fetchmany(pysqlite_Cursor* self, PyObject* args, PyObj
return NULL;
}
- while ((row = pysqlite_cursor_iternext(self))) {
- if (PyList_Append(list, row) < 0) {
- Py_DECREF(row);
- break;
- }
- Py_DECREF(row);
+ while ((row = pysqlite_cursor_iternext(self))) {
+ if (PyList_Append(list, row) < 0) {
+ Py_DECREF(row);
+ break;
+ }
+ Py_DECREF(row);
if (++counter == maxrows) {
break;
@@ -833,12 +833,12 @@ PyObject* pysqlite_cursor_fetchall(pysqlite_Cursor* self, PyObject* args)
return NULL;
}
- while ((row = pysqlite_cursor_iternext(self))) {
- if (PyList_Append(list, row) < 0) {
- Py_DECREF(row);
- break;
- }
- Py_DECREF(row);
+ while ((row = pysqlite_cursor_iternext(self))) {
+ if (PyList_Append(list, row) < 0) {
+ Py_DECREF(row);
+ break;
+ }
+ Py_DECREF(row);
}
if (PyErr_Occurred()) {
@@ -885,7 +885,7 @@ static PyMethodDef cursor_methods[] = {
PyDoc_STR("Executes a multiple SQL statements at once. Non-standard.")},
{"fetchone", (PyCFunction)pysqlite_cursor_fetchone, METH_NOARGS,
PyDoc_STR("Fetches one row from the resultset.")},
- {"fetchmany", (PyCFunction)(void(*)(void))pysqlite_cursor_fetchmany, METH_VARARGS|METH_KEYWORDS,
+ {"fetchmany", (PyCFunction)(void(*)(void))pysqlite_cursor_fetchmany, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("Fetches several rows from the resultset.")},
{"fetchall", (PyCFunction)pysqlite_cursor_fetchall, METH_NOARGS,
PyDoc_STR("Fetches all rows from the resultset.")},
@@ -918,10 +918,10 @@ PyTypeObject pysqlite_CursorType = {
sizeof(pysqlite_Cursor), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)pysqlite_cursor_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -938,7 +938,7 @@ PyTypeObject pysqlite_CursorType = {
0, /* tp_clear */
0, /* tp_richcompare */
offsetof(pysqlite_Cursor, in_weakreflist), /* tp_weaklistoffset */
- PyObject_SelfIter, /* tp_iter */
+ PyObject_SelfIter, /* tp_iter */
(iternextfunc)pysqlite_cursor_iternext, /* tp_iternext */
cursor_methods, /* tp_methods */
cursor_members, /* tp_members */
diff --git a/contrib/tools/python3/src/Modules/_sqlite/cursor.h b/contrib/tools/python3/src/Modules/_sqlite/cursor.h
index 04be589116..4a20e756f7 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/cursor.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/cursor.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_CURSOR_H
#define PYSQLITE_CURSOR_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include "statement.h"
diff --git a/contrib/tools/python3/src/Modules/_sqlite/microprotocols.c b/contrib/tools/python3/src/Modules/_sqlite/microprotocols.c
index 445221f85e..3b2d7f42b8 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/microprotocols.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/microprotocols.c
@@ -74,73 +74,73 @@ pysqlite_microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast)
PyObject *
pysqlite_microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt)
{
- _Py_IDENTIFIER(__adapt__);
- _Py_IDENTIFIER(__conform__);
- PyObject *adapter, *key, *adapted;
+ _Py_IDENTIFIER(__adapt__);
+ _Py_IDENTIFIER(__conform__);
+ PyObject *adapter, *key, *adapted;
/* we don't check for exact type conformance as specified in PEP 246
because the pysqlite_PrepareProtocolType type is abstract and there is no
way to get a quotable object to be its instance */
/* look for an adapter in the registry */
- key = Py_BuildValue("(OO)", (PyObject*)Py_TYPE(obj), proto);
+ key = Py_BuildValue("(OO)", (PyObject*)Py_TYPE(obj), proto);
if (!key) {
return NULL;
}
- adapter = PyDict_GetItemWithError(psyco_adapters, key);
+ adapter = PyDict_GetItemWithError(psyco_adapters, key);
Py_DECREF(key);
if (adapter) {
- Py_INCREF(adapter);
- adapted = PyObject_CallOneArg(adapter, obj);
- Py_DECREF(adapter);
+ Py_INCREF(adapter);
+ adapted = PyObject_CallOneArg(adapter, obj);
+ Py_DECREF(adapter);
return adapted;
}
- if (PyErr_Occurred()) {
- return NULL;
- }
-
- /* try to have the protocol adapt this object */
- if (_PyObject_LookupAttrId(proto, &PyId___adapt__, &adapter) < 0) {
- return NULL;
- }
- if (adapter) {
- adapted = PyObject_CallOneArg(adapter, obj);
- Py_DECREF(adapter);
-
- if (adapted == Py_None) {
- Py_DECREF(adapted);
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+
+ /* try to have the protocol adapt this object */
+ if (_PyObject_LookupAttrId(proto, &PyId___adapt__, &adapter) < 0) {
+ return NULL;
+ }
+ if (adapter) {
+ adapted = PyObject_CallOneArg(adapter, obj);
+ Py_DECREF(adapter);
+
+ if (adapted == Py_None) {
+ Py_DECREF(adapted);
+ }
+ else if (adapted || !PyErr_ExceptionMatches(PyExc_TypeError)) {
+ return adapted;
+ }
+ else {
+ PyErr_Clear();
}
- else if (adapted || !PyErr_ExceptionMatches(PyExc_TypeError)) {
- return adapted;
- }
- else {
- PyErr_Clear();
- }
}
/* and finally try to have the object adapt itself */
- if (_PyObject_LookupAttrId(obj, &PyId___conform__, &adapter) < 0) {
- return NULL;
- }
- if (adapter) {
- adapted = PyObject_CallOneArg(adapter, proto);
- Py_DECREF(adapter);
-
- if (adapted == Py_None) {
- Py_DECREF(adapted);
+ if (_PyObject_LookupAttrId(obj, &PyId___conform__, &adapter) < 0) {
+ return NULL;
+ }
+ if (adapter) {
+ adapted = PyObject_CallOneArg(adapter, proto);
+ Py_DECREF(adapter);
+
+ if (adapted == Py_None) {
+ Py_DECREF(adapted);
+ }
+ else if (adapted || !PyErr_ExceptionMatches(PyExc_TypeError)) {
+ return adapted;
}
- else if (adapted || !PyErr_ExceptionMatches(PyExc_TypeError)) {
- return adapted;
+ else {
+ PyErr_Clear();
}
- else {
- PyErr_Clear();
- }
}
- if (alt) {
- Py_INCREF(alt);
- return alt;
- }
+ if (alt) {
+ Py_INCREF(alt);
+ return alt;
+ }
/* else set the right exception and return NULL */
PyErr_SetString(pysqlite_ProgrammingError, "can't adapt");
return NULL;
diff --git a/contrib/tools/python3/src/Modules/_sqlite/microprotocols.h b/contrib/tools/python3/src/Modules/_sqlite/microprotocols.h
index 36a17dd58c..5418c2b98f 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/microprotocols.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/microprotocols.h
@@ -26,7 +26,7 @@
#ifndef PSYCOPG_MICROPROTOCOLS_H
#define PSYCOPG_MICROPROTOCOLS_H 1
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include <Python.h>
/** the names of the three mandatory methods **/
diff --git a/contrib/tools/python3/src/Modules/_sqlite/module.c b/contrib/tools/python3/src/Modules/_sqlite/module.c
index 5491f846cf..44811835d4 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/module.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/module.c
@@ -83,7 +83,7 @@ static PyObject* module_connect(PyObject* self, PyObject* args, PyObject*
factory = (PyObject*)&pysqlite_ConnectionType;
}
- return PyObject_Call(factory, args, kwargs);
+ return PyObject_Call(factory, args, kwargs);
}
PyDoc_STRVAR(module_connect_doc,
@@ -97,7 +97,7 @@ RAM instead of on disk.");
static PyObject* module_complete(PyObject* self, PyObject* args, PyObject*
kwargs)
{
- static char *kwlist[] = {"statement", NULL};
+ static char *kwlist[] = {"statement", NULL};
char* statement;
PyObject* result;
@@ -127,7 +127,7 @@ Checks if a string contains a complete SQL statement. Non-standard.");
static PyObject* module_enable_shared_cache(PyObject* self, PyObject* args, PyObject*
kwargs)
{
- static char *kwlist[] = {"do_enable", NULL};
+ static char *kwlist[] = {"do_enable", NULL};
int do_enable;
int rc;
@@ -195,7 +195,7 @@ static PyObject* module_register_converter(PyObject* self, PyObject* args)
}
/* convert the name to upper case */
- name = _PyObject_CallMethodIdNoArgs(orig_name, &PyId_upper);
+ name = _PyObject_CallMethodIdNoArgs(orig_name, &PyId_upper);
if (!name) {
goto error;
}
@@ -241,12 +241,12 @@ static void converters_init(PyObject* dict)
}
static PyMethodDef module_methods[] = {
- {"connect", (PyCFunction)(void(*)(void))module_connect,
+ {"connect", (PyCFunction)(void(*)(void))module_connect,
METH_VARARGS | METH_KEYWORDS, module_connect_doc},
- {"complete_statement", (PyCFunction)(void(*)(void))module_complete,
+ {"complete_statement", (PyCFunction)(void(*)(void))module_complete,
METH_VARARGS | METH_KEYWORDS, module_complete_doc},
#ifdef HAVE_SHARED_CACHE
- {"enable_shared_cache", (PyCFunction)(void(*)(void))module_enable_shared_cache,
+ {"enable_shared_cache", (PyCFunction)(void(*)(void))module_enable_shared_cache,
METH_VARARGS | METH_KEYWORDS, module_enable_shared_cache_doc},
#endif
{"register_adapter", (PyCFunction)module_register_adapter,
@@ -338,14 +338,14 @@ static struct PyModuleDef _sqlite3module = {
NULL
};
-#define ADD_TYPE(module, type) \
-do { \
- if (PyModule_AddType(module, &type) < 0) { \
- Py_DECREF(module); \
- return NULL; \
- } \
-} while (0)
-
+#define ADD_TYPE(module, type) \
+do { \
+ if (PyModule_AddType(module, &type) < 0) { \
+ Py_DECREF(module); \
+ return NULL; \
+ } \
+} while (0)
+
PyMODINIT_FUNC PyInit__sqlite3(void)
{
PyObject *module, *dict;
@@ -366,10 +366,10 @@ PyMODINIT_FUNC PyInit__sqlite3(void)
return NULL;
}
- ADD_TYPE(module, pysqlite_ConnectionType);
- ADD_TYPE(module, pysqlite_CursorType);
- ADD_TYPE(module, pysqlite_PrepareProtocolType);
- ADD_TYPE(module, pysqlite_RowType);
+ ADD_TYPE(module, pysqlite_ConnectionType);
+ ADD_TYPE(module, pysqlite_CursorType);
+ ADD_TYPE(module, pysqlite_PrepareProtocolType);
+ ADD_TYPE(module, pysqlite_RowType);
if (!(dict = PyModule_GetDict(module))) {
goto error;
diff --git a/contrib/tools/python3/src/Modules/_sqlite/module.h b/contrib/tools/python3/src/Modules/_sqlite/module.h
index b22c6c0677..3185ec9788 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/module.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/module.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_MODULE_H
#define PYSQLITE_MODULE_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#define PYSQLITE_VERSION "2.6.0"
diff --git a/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.c b/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.c
index f9fc2526bd..05a2ca5a65 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.c
@@ -39,10 +39,10 @@ PyTypeObject pysqlite_PrepareProtocolType= {
sizeof(pysqlite_PrepareProtocol), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)pysqlite_prepare_protocol_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -78,6 +78,6 @@ PyTypeObject pysqlite_PrepareProtocolType= {
extern int pysqlite_prepare_protocol_setup_types(void)
{
pysqlite_PrepareProtocolType.tp_new = PyType_GenericNew;
- Py_SET_TYPE(&pysqlite_PrepareProtocolType, &PyType_Type);
+ Py_SET_TYPE(&pysqlite_PrepareProtocolType, &PyType_Type);
return PyType_Ready(&pysqlite_PrepareProtocolType);
}
diff --git a/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.h b/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.h
index aa0b0d5b6b..3998a55e51 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/prepare_protocol.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_PREPARE_PROTOCOL_H
#define PYSQLITE_PREPARE_PROTOCOL_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
typedef struct
diff --git a/contrib/tools/python3/src/Modules/_sqlite/row.c b/contrib/tools/python3/src/Modules/_sqlite/row.c
index 26416342c6..4b47108278 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/row.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/row.c
@@ -76,34 +76,34 @@ PyObject* pysqlite_row_item(pysqlite_Row* self, Py_ssize_t idx)
return item;
}
-static int
-equal_ignore_case(PyObject *left, PyObject *right)
-{
- int eq = PyObject_RichCompareBool(left, right, Py_EQ);
- if (eq) { /* equal or error */
- return eq;
- }
- if (!PyUnicode_Check(left) || !PyUnicode_Check(right)) {
- return 0;
- }
- if (!PyUnicode_IS_ASCII(left) || !PyUnicode_IS_ASCII(right)) {
- return 0;
- }
-
- Py_ssize_t len = PyUnicode_GET_LENGTH(left);
- if (PyUnicode_GET_LENGTH(right) != len) {
- return 0;
- }
- const Py_UCS1 *p1 = PyUnicode_1BYTE_DATA(left);
- const Py_UCS1 *p2 = PyUnicode_1BYTE_DATA(right);
- for (; len; len--, p1++, p2++) {
- if (Py_TOLOWER(*p1) != Py_TOLOWER(*p2)) {
- return 0;
- }
- }
- return 1;
-}
-
+static int
+equal_ignore_case(PyObject *left, PyObject *right)
+{
+ int eq = PyObject_RichCompareBool(left, right, Py_EQ);
+ if (eq) { /* equal or error */
+ return eq;
+ }
+ if (!PyUnicode_Check(left) || !PyUnicode_Check(right)) {
+ return 0;
+ }
+ if (!PyUnicode_IS_ASCII(left) || !PyUnicode_IS_ASCII(right)) {
+ return 0;
+ }
+
+ Py_ssize_t len = PyUnicode_GET_LENGTH(left);
+ if (PyUnicode_GET_LENGTH(right) != len) {
+ return 0;
+ }
+ const Py_UCS1 *p1 = PyUnicode_1BYTE_DATA(left);
+ const Py_UCS1 *p2 = PyUnicode_1BYTE_DATA(right);
+ for (; len; len--, p1++, p2++) {
+ if (Py_TOLOWER(*p1) != Py_TOLOWER(*p2)) {
+ return 0;
+ }
+ }
+ return 1;
+}
+
PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
{
Py_ssize_t _idx;
@@ -126,11 +126,11 @@ PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
PyObject *obj;
obj = PyTuple_GET_ITEM(self->description, i);
obj = PyTuple_GET_ITEM(obj, 0);
- int eq = equal_ignore_case(idx, obj);
- if (eq < 0) {
+ int eq = equal_ignore_case(idx, obj);
+ if (eq < 0) {
return NULL;
}
- if (eq) {
+ if (eq) {
/* found item */
item = PyTuple_GetItem(self->data, i);
Py_INCREF(item);
@@ -156,7 +156,7 @@ pysqlite_row_length(pysqlite_Row* self)
return PyTuple_GET_SIZE(self->data);
}
-PyObject* pysqlite_row_keys(pysqlite_Row* self, PyObject *Py_UNUSED(ignored))
+PyObject* pysqlite_row_keys(pysqlite_Row* self, PyObject *Py_UNUSED(ignored))
{
PyObject* list;
Py_ssize_t nitems, i;
@@ -192,16 +192,16 @@ static PyObject* pysqlite_row_richcompare(pysqlite_Row *self, PyObject *_other,
if (opid != Py_EQ && opid != Py_NE)
Py_RETURN_NOTIMPLEMENTED;
- if (PyObject_TypeCheck(_other, &pysqlite_RowType)) {
+ if (PyObject_TypeCheck(_other, &pysqlite_RowType)) {
pysqlite_Row *other = (pysqlite_Row *)_other;
- int eq = PyObject_RichCompareBool(self->description, other->description, Py_EQ);
- if (eq < 0) {
- return NULL;
- }
- if (eq) {
+ int eq = PyObject_RichCompareBool(self->description, other->description, Py_EQ);
+ if (eq < 0) {
+ return NULL;
+ }
+ if (eq) {
return PyObject_RichCompare(self->data, other->data, opid);
}
- return PyBool_FromLong(opid != Py_EQ);
+ return PyBool_FromLong(opid != Py_EQ);
}
Py_RETURN_NOTIMPLEMENTED;
}
@@ -233,10 +233,10 @@ PyTypeObject pysqlite_RowType = {
sizeof(pysqlite_Row), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)pysqlite_row_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_sqlite/row.h b/contrib/tools/python3/src/Modules/_sqlite/row.h
index 5607e2e467..4ad506f8dd 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/row.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/row.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_ROW_H
#define PYSQLITE_ROW_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
typedef struct _Row
diff --git a/contrib/tools/python3/src/Modules/_sqlite/statement.c b/contrib/tools/python3/src/Modules/_sqlite/statement.c
index b3fceab7f7..23c204e752 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/statement.c
+++ b/contrib/tools/python3/src/Modules/_sqlite/statement.c
@@ -59,8 +59,8 @@ int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* con
self->st = NULL;
self->in_use = 0;
- assert(PyUnicode_Check(sql));
-
+ assert(PyUnicode_Check(sql));
+
sql_cstr = PyUnicode_AsUTF8AndSize(sql, &sql_cstr_len);
if (sql_cstr == NULL) {
rc = PYSQLITE_SQL_WRONG_TYPE;
@@ -227,9 +227,9 @@ void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* para
num_params = PyList_GET_SIZE(parameters);
} else {
num_params = PySequence_Size(parameters);
- if (num_params == -1) {
- return;
- }
+ if (num_params == -1) {
+ return;
+ }
}
if (num_params != num_params_needed) {
PyErr_Format(pysqlite_ProgrammingError,
@@ -241,9 +241,9 @@ void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* para
for (i = 0; i < num_params; i++) {
if (PyTuple_CheckExact(parameters)) {
current_param = PyTuple_GET_ITEM(parameters, i);
- Py_INCREF(current_param);
+ Py_INCREF(current_param);
} else if (PyList_CheckExact(parameters)) {
- current_param = PyList_GetItem(parameters, i);
+ current_param = PyList_GetItem(parameters, i);
Py_XINCREF(current_param);
} else {
current_param = PySequence_GetItem(parameters, i);
@@ -255,10 +255,10 @@ void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* para
if (!_need_adapt(current_param)) {
adapted = current_param;
} else {
- adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, current_param);
- Py_DECREF(current_param);
- if (!adapted) {
- return;
+ adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, current_param);
+ Py_DECREF(current_param);
+ if (!adapted) {
+ return;
}
}
@@ -275,7 +275,7 @@ void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* para
} else if (PyDict_Check(parameters)) {
/* parameters passed as dictionary */
for (i = 1; i <= num_params_needed; i++) {
- PyObject *binding_name_obj;
+ PyObject *binding_name_obj;
Py_BEGIN_ALLOW_THREADS
binding_name = sqlite3_bind_parameter_name(self->st, i);
Py_END_ALLOW_THREADS
@@ -285,31 +285,31 @@ void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* para
}
binding_name++; /* skip first char (the colon) */
- binding_name_obj = PyUnicode_FromString(binding_name);
- if (!binding_name_obj) {
- return;
- }
+ binding_name_obj = PyUnicode_FromString(binding_name);
+ if (!binding_name_obj) {
+ return;
+ }
if (PyDict_CheckExact(parameters)) {
- current_param = PyDict_GetItemWithError(parameters, binding_name_obj);
+ current_param = PyDict_GetItemWithError(parameters, binding_name_obj);
Py_XINCREF(current_param);
} else {
- current_param = PyObject_GetItem(parameters, binding_name_obj);
+ current_param = PyObject_GetItem(parameters, binding_name_obj);
}
- Py_DECREF(binding_name_obj);
+ Py_DECREF(binding_name_obj);
if (!current_param) {
- if (!PyErr_Occurred() || PyErr_ExceptionMatches(PyExc_LookupError)) {
- PyErr_Format(pysqlite_ProgrammingError, "You did not supply a value for binding %d.", i);
- }
+ if (!PyErr_Occurred() || PyErr_ExceptionMatches(PyExc_LookupError)) {
+ PyErr_Format(pysqlite_ProgrammingError, "You did not supply a value for binding %d.", i);
+ }
return;
}
if (!_need_adapt(current_param)) {
adapted = current_param;
} else {
- adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, current_param);
- Py_DECREF(current_param);
- if (!adapted) {
- return;
+ adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, current_param);
+ Py_DECREF(current_param);
+ if (!adapted) {
+ return;
}
}
@@ -464,10 +464,10 @@ PyTypeObject pysqlite_StatementType = {
sizeof(pysqlite_Statement), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)pysqlite_statement_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_sqlite/statement.h b/contrib/tools/python3/src/Modules/_sqlite/statement.h
index e202c9fcff..5002f02dc5 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/statement.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/statement.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_STATEMENT_H
#define PYSQLITE_STATEMENT_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include "connection.h"
diff --git a/contrib/tools/python3/src/Modules/_sqlite/util.h b/contrib/tools/python3/src/Modules/_sqlite/util.h
index 0b245507ba..c5a220e9b0 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/util.h
+++ b/contrib/tools/python3/src/Modules/_sqlite/util.h
@@ -23,7 +23,7 @@
#ifndef PYSQLITE_UTIL_H
#define PYSQLITE_UTIL_H
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include "pythread.h"
#include "sqlite3.h"
diff --git a/contrib/tools/python3/src/Modules/_sqlite/ya.make b/contrib/tools/python3/src/Modules/_sqlite/ya.make
index 5267d20767..44f7188be0 100644
--- a/contrib/tools/python3/src/Modules/_sqlite/ya.make
+++ b/contrib/tools/python3/src/Modules/_sqlite/ya.make
@@ -19,10 +19,10 @@ IF (USE_SYSTEM_PYTHON)
)
ENDIF()
-CFLAGS(
- -DMODULE_NAME=\"sqlite3\"
-)
-
+CFLAGS(
+ -DMODULE_NAME=\"sqlite3\"
+)
+
PYTHON3_ADDINCL()
NO_COMPILER_WARNINGS()
diff --git a/contrib/tools/python3/src/Modules/_sre.c b/contrib/tools/python3/src/Modules/_sre.c
index 71f0fbd2e9..8225c36da1 100644
--- a/contrib/tools/python3/src/Modules/_sre.c
+++ b/contrib/tools/python3/src/Modules/_sre.c
@@ -15,7 +15,7 @@
* 2001-05-14 fl fixes for 1.5.2 compatibility
* 2001-07-01 fl added BIGCHARSET support (from Martin von Loewis)
* 2001-10-18 fl fixed group reset issue (from Matthew Mueller)
- * 2001-10-20 fl added split primitive; re-enable unicode for 1.6/2.0/2.1
+ * 2001-10-20 fl added split primitive; re-enable unicode for 1.6/2.0/2.1
* 2001-10-21 fl added sub/subn primitive
* 2001-10-24 fl added finditer primitive (for 2.2 only)
* 2001-12-07 fl fixed memory leak in sub/subn (Guido van Rossum)
@@ -41,7 +41,7 @@ static const char copyright[] =
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include "sre.h"
@@ -87,13 +87,13 @@ static const char copyright[] =
/* search engine state */
#define SRE_IS_DIGIT(ch)\
- ((ch) <= '9' && Py_ISDIGIT(ch))
+ ((ch) <= '9' && Py_ISDIGIT(ch))
#define SRE_IS_SPACE(ch)\
- ((ch) <= ' ' && Py_ISSPACE(ch))
+ ((ch) <= ' ' && Py_ISSPACE(ch))
#define SRE_IS_LINEBREAK(ch)\
((ch) == '\n')
#define SRE_IS_WORD(ch)\
- ((ch) <= 'z' && (Py_ISALNUM(ch) || (ch) == '_'))
+ ((ch) <= 'z' && (Py_ISALNUM(ch) || (ch) == '_'))
static unsigned int sre_lower_ascii(unsigned int ch)
{
@@ -288,7 +288,7 @@ _sre_ascii_iscased_impl(PyObject *module, int character)
/*[clinic end generated code: output=4f454b630fbd19a2 input=9f0bd952812c7ed3]*/
{
unsigned int ch = (unsigned int)character;
- return ch < 128 && Py_ISALPHA(ch);
+ return ch < 128 && Py_ISALPHA(ch);
}
/*[clinic input]
@@ -351,7 +351,7 @@ state_reset(SRE_STATE* state)
data_stack_dealloc(state);
}
-static const void*
+static const void*
getstring(PyObject* string, Py_ssize_t* p_length,
int* p_isbytes, int* p_charsize,
Py_buffer *view)
@@ -398,11 +398,11 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string,
Py_ssize_t length;
int isbytes, charsize;
- const void* ptr;
+ const void* ptr;
memset(state, 0, sizeof(SRE_STATE));
- state->mark = PyMem_New(const void *, pattern->groups * 2);
+ state->mark = PyMem_New(const void *, pattern->groups * 2);
if (!state->mark) {
PyErr_NoMemory();
goto err;
@@ -454,10 +454,10 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string,
return string;
err:
- /* We add an explicit cast here because MSVC has a bug when
- compiling C code where it believes that `const void**` cannot be
- safely casted to `void*`, see bpo-39943 for details. */
- PyMem_Del((void*) state->mark);
+ /* We add an explicit cast here because MSVC has a bug when
+ compiling C code where it believes that `const void**` cannot be
+ safely casted to `void*`, see bpo-39943 for details. */
+ PyMem_Del((void*) state->mark);
state->mark = NULL;
if (state->buffer.buf)
PyBuffer_Release(&state->buffer);
@@ -471,8 +471,8 @@ state_fini(SRE_STATE* state)
PyBuffer_Release(&state->buffer);
Py_XDECREF(state->string);
data_stack_dealloc(state);
- /* See above PyMem_Del for why we explicitly cast here. */
- PyMem_Del((void*) state->mark);
+ /* See above PyMem_Del for why we explicitly cast here. */
+ PyMem_Del((void*) state->mark);
state->mark = NULL;
}
@@ -895,7 +895,7 @@ _sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string,
Py_ssize_t status;
Py_ssize_t n;
Py_ssize_t i;
- const void* last;
+ const void* last;
assert(self->codesize != 0);
@@ -988,7 +988,7 @@ pattern_subx(PatternObject* self, PyObject* ptemplate, PyObject* string,
PyObject* item;
PyObject* filter;
PyObject* match;
- const void* ptr;
+ const void* ptr;
Py_ssize_t status;
Py_ssize_t n;
Py_ssize_t i, b, e;
@@ -1085,7 +1085,7 @@ pattern_subx(PatternObject* self, PyObject* ptemplate, PyObject* string,
match = pattern_new_match(self, &state, 1);
if (!match)
goto error;
- item = PyObject_CallOneArg(filter, match);
+ item = PyObject_CallOneArg(filter, match);
Py_DECREF(match);
if (!item)
goto error;
@@ -1342,7 +1342,7 @@ _sre_compile_impl(PyObject *module, PyObject *pattern, int flags,
n = PyList_GET_SIZE(code);
/* coverity[ampersand_in_size] */
- self = PyObject_NewVar(PatternObject, &Pattern_Type, n);
+ self = PyObject_NewVar(PatternObject, &Pattern_Type, n);
if (!self)
return NULL;
self->weakreflist = NULL;
@@ -1899,10 +1899,10 @@ match_getslice_by_index(MatchObject* self, Py_ssize_t index, PyObject* def)
int isbytes, charsize;
Py_buffer view;
PyObject *result;
- const void* ptr;
+ const void* ptr;
Py_ssize_t i, j;
- assert(0 <= index && index < self->groups);
+ assert(0 <= index && index < self->groups);
index *= 2;
if (self->string == Py_None || self->mark[index] < 0) {
@@ -1935,25 +1935,25 @@ match_getindex(MatchObject* self, PyObject* index)
return 0;
if (PyIndex_Check(index)) {
- i = PyNumber_AsSsize_t(index, NULL);
+ i = PyNumber_AsSsize_t(index, NULL);
}
- else {
- i = -1;
+ else {
+ i = -1;
- if (self->pattern->groupindex) {
- index = PyDict_GetItemWithError(self->pattern->groupindex, index);
- if (index && PyLong_Check(index)) {
- i = PyLong_AsSsize_t(index);
- }
+ if (self->pattern->groupindex) {
+ index = PyDict_GetItemWithError(self->pattern->groupindex, index);
+ if (index && PyLong_Check(index)) {
+ i = PyLong_AsSsize_t(index);
+ }
}
}
- if (i < 0 || i >= self->groups) {
- /* raise IndexError if we were given a bad group number */
- if (!PyErr_Occurred()) {
- PyErr_SetString(PyExc_IndexError, "no such group");
- }
- return -1;
- }
+ if (i < 0 || i >= self->groups) {
+ /* raise IndexError if we were given a bad group number */
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(PyExc_IndexError, "no such group");
+ }
+ return -1;
+ }
return i;
}
@@ -1961,13 +1961,13 @@ match_getindex(MatchObject* self, PyObject* index)
static PyObject*
match_getslice(MatchObject* self, PyObject* index, PyObject* def)
{
- Py_ssize_t i = match_getindex(self, index);
-
- if (i < 0) {
- return NULL;
- }
-
- return match_getslice_by_index(self, i, def);
+ Py_ssize_t i = match_getindex(self, index);
+
+ if (i < 0) {
+ return NULL;
+ }
+
+ return match_getslice_by_index(self, i, def);
}
/*[clinic input]
@@ -2123,7 +2123,7 @@ _sre_SRE_Match_start_impl(MatchObject *self, PyObject *group)
{
Py_ssize_t index = match_getindex(self, group);
- if (index < 0) {
+ if (index < 0) {
return -1;
}
@@ -2146,7 +2146,7 @@ _sre_SRE_Match_end_impl(MatchObject *self, PyObject *group)
{
Py_ssize_t index = match_getindex(self, group);
- if (index < 0) {
+ if (index < 0) {
return -1;
}
@@ -2196,7 +2196,7 @@ _sre_SRE_Match_span_impl(MatchObject *self, PyObject *group)
{
Py_ssize_t index = match_getindex(self, group);
- if (index < 0) {
+ if (index < 0) {
return NULL;
}
@@ -2331,8 +2331,8 @@ pattern_new_match(PatternObject* pattern, SRE_STATE* state, Py_ssize_t status)
/* create match object (with room for extra group marks) */
/* coverity[ampersand_in_size] */
- match = PyObject_NewVar(MatchObject, &Match_Type,
- 2*(pattern->groups+1));
+ match = PyObject_NewVar(MatchObject, &Match_Type,
+ 2*(pattern->groups+1));
if (!match)
return NULL;
@@ -2472,7 +2472,7 @@ pattern_scanner(PatternObject *self, PyObject *string, Py_ssize_t pos, Py_ssize_
ScannerObject* scanner;
/* create scanner object */
- scanner = PyObject_New(ScannerObject, &Scanner_Type);
+ scanner = PyObject_New(ScannerObject, &Scanner_Type);
if (!scanner)
return NULL;
scanner->pattern = NULL;
@@ -2522,7 +2522,7 @@ pattern_richcompare(PyObject *lefto, PyObject *righto, int op)
Py_RETURN_NOTIMPLEMENTED;
}
- if (!Py_IS_TYPE(lefto, &Pattern_Type) || !Py_IS_TYPE(righto, &Pattern_Type)) {
+ if (!Py_IS_TYPE(lefto, &Pattern_Type) || !Py_IS_TYPE(righto, &Pattern_Type)) {
Py_RETURN_NOTIMPLEMENTED;
}
@@ -2572,8 +2572,8 @@ static PyMethodDef pattern_methods[] = {
_SRE_SRE_PATTERN_SCANNER_METHODDEF
_SRE_SRE_PATTERN___COPY___METHODDEF
_SRE_SRE_PATTERN___DEEPCOPY___METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
- PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
+ PyDoc_STR("See PEP 585")},
{NULL, NULL}
};
@@ -2599,10 +2599,10 @@ static PyTypeObject Pattern_Type = {
"re.Pattern",
sizeof(PatternObject), sizeof(SRE_CODE),
(destructor)pattern_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)pattern_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2644,8 +2644,8 @@ static PyMethodDef match_methods[] = {
_SRE_SRE_MATCH_EXPAND_METHODDEF
_SRE_SRE_MATCH___COPY___METHODDEF
_SRE_SRE_MATCH___DEEPCOPY___METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
- PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
+ PyDoc_STR("See PEP 585")},
{NULL, NULL}
};
@@ -2679,10 +2679,10 @@ static PyTypeObject Match_Type = {
"re.Match",
sizeof(MatchObject), sizeof(Py_ssize_t),
(destructor)match_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)match_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2723,10 +2723,10 @@ static PyTypeObject Scanner_Type = {
"_" SRE_MODULE ".SRE_Scanner",
sizeof(ScannerObject), 0,
(destructor)scanner_dealloc,/* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Modules/_ssl.c b/contrib/tools/python3/src/Modules/_ssl.c
index 1d8748e58f..b42e78e916 100644
--- a/contrib/tools/python3/src/Modules/_ssl.c
+++ b/contrib/tools/python3/src/Modules/_ssl.c
@@ -14,13 +14,13 @@
http://bugs.python.org/issue8108#msg102867 ?
*/
-/* Don't warn about deprecated functions, */
-#ifndef OPENSSL_API_COMPAT
- // 0x10101000L == 1.1.1, 30000 == 3.0.0
- #define OPENSSL_API_COMPAT 0x10101000L
-#endif
-#define OPENSSL_NO_DEPRECATED 1
-
+/* Don't warn about deprecated functions, */
+#ifndef OPENSSL_API_COMPAT
+ // 0x10101000L == 1.1.1, 30000 == 3.0.0
+ #define OPENSSL_API_COMPAT 0x10101000L
+#endif
+#define OPENSSL_NO_DEPRECATED 1
+
#define PY_SSIZE_T_CLEAN
#include "Python.h"
@@ -76,10 +76,10 @@ static PySocketModule_APIObject PySocketModule;
# endif
#endif
-#ifndef OPENSSL_THREADS
-# error "OPENSSL_THREADS is not defined, Python requires thread-safe OpenSSL"
-#endif
-
+#ifndef OPENSSL_THREADS
+# error "OPENSSL_THREADS is not defined, Python requires thread-safe OpenSSL"
+#endif
+
/* SSL error object */
static PyObject *PySSLErrorObject;
static PyObject *PySSLCertVerificationErrorObject;
@@ -138,33 +138,33 @@ static void _PySSLFixErrno(void) {
#endif
/* Include generated data (error codes) */
-#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
-#include "_ssl_data_300.h"
-#elif (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
-#include "_ssl_data_111.h"
-#else
+#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
+#include "_ssl_data_300.h"
+#elif (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#include "_ssl_data_111.h"
+#else
#include "_ssl_data.h"
-#endif
+#endif
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
# define OPENSSL_VERSION_1_1 1
# define PY_OPENSSL_1_1_API 1
#endif
-/* OpenSSL API 1.1.0+ does not include version methods. Define the methods
- * unless OpenSSL is compiled without the methods. It's the easiest way to
- * make 1.0.2, 1.1.0, 1.1.1, and 3.0.0 happy without deprecation warnings.
- */
-#ifndef OPENSSL_NO_TLS1_METHOD
-extern const SSL_METHOD *TLSv1_method(void);
-#endif
-#ifndef OPENSSL_NO_TLS1_1_METHOD
-extern const SSL_METHOD *TLSv1_1_method(void);
-#endif
-#ifndef OPENSSL_NO_TLS1_2_METHOD
-extern const SSL_METHOD *TLSv1_2_method(void);
-#endif
-
+/* OpenSSL API 1.1.0+ does not include version methods. Define the methods
+ * unless OpenSSL is compiled without the methods. It's the easiest way to
+ * make 1.0.2, 1.1.0, 1.1.1, and 3.0.0 happy without deprecation warnings.
+ */
+#ifndef OPENSSL_NO_TLS1_METHOD
+extern const SSL_METHOD *TLSv1_method(void);
+#endif
+#ifndef OPENSSL_NO_TLS1_1_METHOD
+extern const SSL_METHOD *TLSv1_1_method(void);
+#endif
+#ifndef OPENSSL_NO_TLS1_2_METHOD
+extern const SSL_METHOD *TLSv1_2_method(void);
+#endif
+
/* LibreSSL 2.7.0 provides necessary OpenSSL 1.1.0 APIs */
#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL
# define PY_OPENSSL_1_1_API 1
@@ -201,10 +201,10 @@ extern const SSL_METHOD *TLSv1_2_method(void);
# define HAVE_NPN 0
#endif
-#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
-#define HAVE_OPENSSL_KEYLOG 1
-#endif
-
+#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#define HAVE_OPENSSL_KEYLOG 1
+#endif
+
#ifndef INVALID_SOCKET /* MS defines this */
#define INVALID_SOCKET (-1)
#endif
@@ -224,12 +224,12 @@ extern const SSL_METHOD *TLSv1_2_method(void);
#define TLS_method SSLv23_method
#define TLS_client_method SSLv23_client_method
#define TLS_server_method SSLv23_server_method
-#define ASN1_STRING_get0_data ASN1_STRING_data
-#define X509_get0_notBefore X509_get_notBefore
-#define X509_get0_notAfter X509_get_notAfter
-#define OpenSSL_version_num SSLeay
-#define OpenSSL_version SSLeay_version
-#define OPENSSL_VERSION SSLEAY_VERSION
+#define ASN1_STRING_get0_data ASN1_STRING_data
+#define X509_get0_notBefore X509_get_notBefore
+#define X509_get0_notAfter X509_get_notAfter
+#define OpenSSL_version_num SSLeay
+#define OpenSSL_version SSLeay_version
+#define OPENSSL_VERSION SSLEAY_VERSION
static int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
{
@@ -446,11 +446,11 @@ typedef struct {
#ifdef TLS1_3_VERSION
int post_handshake_auth;
#endif
- PyObject *msg_cb;
-#ifdef HAVE_OPENSSL_KEYLOG
- PyObject *keylog_filename;
- BIO *keylog_bio;
-#endif
+ PyObject *msg_cb;
+#ifdef HAVE_OPENSSL_KEYLOG
+ PyObject *keylog_filename;
+ BIO *keylog_bio;
+#endif
} PySSLContext;
typedef struct {
@@ -471,13 +471,13 @@ typedef struct {
PyObject *owner; /* Python level "owner" passed to servername callback */
PyObject *server_hostname;
_PySSLError err; /* last seen error from various sources */
- /* Some SSL callbacks don't have error reporting. Callback wrappers
- * store exception information on the socket. The handshake, read, write,
- * and shutdown methods check for chained exceptions.
- */
- PyObject *exc_type;
- PyObject *exc_value;
- PyObject *exc_tb;
+ /* Some SSL callbacks don't have error reporting. Callback wrappers
+ * store exception information on the socket. The handshake, read, write,
+ * and shutdown methods check for chained exceptions.
+ */
+ PyObject *exc_type;
+ PyObject *exc_value;
+ PyObject *exc_tb;
} PySSLSocket;
typedef struct {
@@ -526,9 +526,9 @@ static int PySSL_select(PySocketSockObject *s, int writing, _PyTime_t timeout);
static int PySSL_set_owner(PySSLSocket *, PyObject *, void *);
static int PySSL_set_session(PySSLSocket *, PyObject *, void *);
-#define PySSLSocket_Check(v) Py_IS_TYPE(v, &PySSLSocket_Type)
-#define PySSLMemoryBIO_Check(v) Py_IS_TYPE(v, &PySSLMemoryBIO_Type)
-#define PySSLSession_Check(v) Py_IS_TYPE(v, &PySSLSession_Type)
+#define PySSLSocket_Check(v) Py_IS_TYPE(v, &PySSLSocket_Type)
+#define PySSLMemoryBIO_Check(v) Py_IS_TYPE(v, &PySSLMemoryBIO_Type)
+#define PySSLSession_Check(v) Py_IS_TYPE(v, &PySSLSession_Type)
typedef enum {
SOCKET_IS_NONBLOCKING,
@@ -551,8 +551,8 @@ typedef enum {
#define GET_SOCKET_TIMEOUT(sock) \
((sock != NULL) ? (sock)->sock_timeout : 0)
-#include "_ssl/debughelpers.c"
-
+#include "_ssl/debughelpers.c"
+
/*
* SSL errors.
*/
@@ -593,7 +593,7 @@ SSLError_str(PyOSErrorObject *self)
static PyType_Slot sslerror_type_slots[] = {
{Py_tp_base, NULL}, /* Filled out in module init as it's not a constant */
- {Py_tp_doc, (void*)SSLError_doc},
+ {Py_tp_doc, (void*)SSLError_doc},
{Py_tp_str, SSLError_str},
{0, 0},
};
@@ -626,18 +626,18 @@ fill_and_set_sslerror(PySSLSocket *sslsock, PyObject *type, int ssl_errno,
key = Py_BuildValue("ii", lib, reason);
if (key == NULL)
goto fail;
- reason_obj = PyDict_GetItemWithError(err_codes_to_names, key);
+ reason_obj = PyDict_GetItemWithError(err_codes_to_names, key);
Py_DECREF(key);
- if (reason_obj == NULL && PyErr_Occurred()) {
- goto fail;
+ if (reason_obj == NULL && PyErr_Occurred()) {
+ goto fail;
}
key = PyLong_FromLong(lib);
if (key == NULL)
goto fail;
- lib_obj = PyDict_GetItemWithError(lib_codes_to_names, key);
+ lib_obj = PyDict_GetItemWithError(lib_codes_to_names, key);
Py_DECREF(key);
- if (lib_obj == NULL && PyErr_Occurred()) {
- goto fail;
+ if (lib_obj == NULL && PyErr_Occurred()) {
+ goto fail;
}
if (errstr == NULL)
errstr = ERR_reason_error_string(errcode);
@@ -704,7 +704,7 @@ fill_and_set_sslerror(PySSLSocket *sslsock, PyObject *type, int ssl_errno,
if (msg == NULL)
goto fail;
- init_value = Py_BuildValue("iN", ERR_GET_REASON(ssl_errno), msg);
+ init_value = Py_BuildValue("iN", ERR_GET_REASON(ssl_errno), msg);
if (init_value == NULL)
goto fail;
@@ -739,18 +739,18 @@ fail:
Py_XDECREF(verify_obj);
}
-static int
-PySSL_ChainExceptions(PySSLSocket *sslsock) {
- if (sslsock->exc_type == NULL)
- return 0;
-
- _PyErr_ChainExceptions(sslsock->exc_type, sslsock->exc_value, sslsock->exc_tb);
- sslsock->exc_type = NULL;
- sslsock->exc_value = NULL;
- sslsock->exc_tb = NULL;
- return -1;
-}
-
+static int
+PySSL_ChainExceptions(PySSLSocket *sslsock) {
+ if (sslsock->exc_type == NULL)
+ return 0;
+
+ _PyErr_ChainExceptions(sslsock->exc_type, sslsock->exc_value, sslsock->exc_tb);
+ sslsock->exc_type = NULL;
+ sslsock->exc_value = NULL;
+ sslsock->exc_tb = NULL;
+ return -1;
+}
+
static PyObject *
PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
{
@@ -810,11 +810,11 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
errno = err.c;
return PyErr_SetFromErrno(PyExc_OSError);
}
- else {
- p = PY_SSL_ERROR_EOF;
- type = PySSLEOFErrorObject;
- errstr = "EOF occurred in violation of protocol";
- }
+ else {
+ p = PY_SSL_ERROR_EOF;
+ type = PySSLEOFErrorObject;
+ errstr = "EOF occurred in violation of protocol";
+ }
} else { /* possible? */
p = PY_SSL_ERROR_SYSCALL;
type = PySSLSyscallErrorObject;
@@ -845,7 +845,7 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
}
fill_and_set_sslerror(sslsock, type, p, errstr, lineno, e);
ERR_clear_error();
- PySSL_ChainExceptions(sslsock);
+ PySSL_ChainExceptions(sslsock);
return NULL;
}
@@ -904,7 +904,7 @@ _ssl_configure_hostname(PySSLSocket *self, const char* server_hostname)
if (ip == NULL) {
if (!SSL_set_tlsext_host_name(self->ssl, server_hostname)) {
_setSSLError(NULL, 0, __FILE__, __LINE__);
- goto error;
+ goto error;
}
}
if (self->ctx->check_hostname) {
@@ -916,7 +916,7 @@ _ssl_configure_hostname(PySSLSocket *self, const char* server_hostname)
goto error;
}
} else {
- if (!X509_VERIFY_PARAM_set1_ip(param, ASN1_STRING_get0_data(ip),
+ if (!X509_VERIFY_PARAM_set1_ip(param, ASN1_STRING_get0_data(ip),
ASN1_STRING_length(ip))) {
_setSSLError(NULL, 0, __FILE__, __LINE__);
goto error;
@@ -954,9 +954,9 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
self->owner = NULL;
self->server_hostname = NULL;
self->err = err;
- self->exc_type = NULL;
- self->exc_value = NULL;
- self->exc_tb = NULL;
+ self->exc_type = NULL;
+ self->exc_value = NULL;
+ self->exc_tb = NULL;
/* Make sure the SSL error state is initialized */
ERR_clear_error();
@@ -969,11 +969,11 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
_setSSLError(NULL, 0, __FILE__, __LINE__);
return NULL;
}
- /* bpo43522 and OpenSSL < 1.1.1l: copy hostflags manually */
-#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION < 0x101010cf
- X509_VERIFY_PARAM *ssl_params = SSL_get0_param(self->ssl);
- X509_VERIFY_PARAM_set_hostflags(ssl_params, sslctx->hostflags);
-#endif
+ /* bpo43522 and OpenSSL < 1.1.1l: copy hostflags manually */
+#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION < 0x101010cf
+ X509_VERIFY_PARAM *ssl_params = SSL_get0_param(self->ssl);
+ X509_VERIFY_PARAM_set_hostflags(ssl_params, sslctx->hostflags);
+#endif
SSL_set_app_data(self->ssl, self);
if (sock) {
SSL_set_fd(self->ssl, Py_SAFE_DOWNCAST(sock->sock_fd, SOCKET_T, int));
@@ -988,26 +988,26 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock,
SSL_set_mode(self->ssl,
SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER | SSL_MODE_AUTO_RETRY);
-#ifdef TLS1_3_VERSION
- if (sslctx->post_handshake_auth == 1) {
- if (socket_type == PY_SSL_SERVER) {
- /* bpo-37428: OpenSSL does not ignore SSL_VERIFY_POST_HANDSHAKE.
- * Set SSL_VERIFY_POST_HANDSHAKE flag only for server sockets and
- * only in combination with SSL_VERIFY_PEER flag. */
- int mode = SSL_get_verify_mode(self->ssl);
- if (mode & SSL_VERIFY_PEER) {
- int (*verify_cb)(int, X509_STORE_CTX *) = NULL;
- verify_cb = SSL_get_verify_callback(self->ssl);
- mode |= SSL_VERIFY_POST_HANDSHAKE;
- SSL_set_verify(self->ssl, mode, verify_cb);
- }
- } else {
- /* client socket */
- SSL_set_post_handshake_auth(self->ssl, 1);
- }
- }
-#endif
-
+#ifdef TLS1_3_VERSION
+ if (sslctx->post_handshake_auth == 1) {
+ if (socket_type == PY_SSL_SERVER) {
+ /* bpo-37428: OpenSSL does not ignore SSL_VERIFY_POST_HANDSHAKE.
+ * Set SSL_VERIFY_POST_HANDSHAKE flag only for server sockets and
+ * only in combination with SSL_VERIFY_PEER flag. */
+ int mode = SSL_get_verify_mode(self->ssl);
+ if (mode & SSL_VERIFY_PEER) {
+ int (*verify_cb)(int, X509_STORE_CTX *) = NULL;
+ verify_cb = SSL_get_verify_callback(self->ssl);
+ mode |= SSL_VERIFY_POST_HANDSHAKE;
+ SSL_set_verify(self->ssl, mode, verify_cb);
+ }
+ } else {
+ /* client socket */
+ SSL_set_post_handshake_auth(self->ssl, 1);
+ }
+ }
+#endif
+
if (server_hostname != NULL) {
if (_ssl_configure_hostname(self, server_hostname) < 0) {
Py_DECREF(self);
@@ -1131,12 +1131,12 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self)
Py_XDECREF(sock);
if (ret < 1)
return PySSL_SetError(self, ret, __FILE__, __LINE__);
- if (PySSL_ChainExceptions(self) < 0)
- return NULL;
+ if (PySSL_ChainExceptions(self) < 0)
+ return NULL;
Py_RETURN_NONE;
error:
Py_XDECREF(sock);
- PySSL_ChainExceptions(self);
+ PySSL_ChainExceptions(self);
return NULL;
}
@@ -1397,7 +1397,7 @@ _get_peer_alt_names (X509 *certificate) {
goto fail;
}
PyTuple_SET_ITEM(t, 0, v);
- v = PyUnicode_FromStringAndSize((char *)ASN1_STRING_get0_data(as),
+ v = PyUnicode_FromStringAndSize((char *)ASN1_STRING_get0_data(as),
ASN1_STRING_length(as));
if (v == NULL) {
Py_DECREF(t);
@@ -1435,54 +1435,54 @@ _get_peer_alt_names (X509 *certificate) {
PyTuple_SET_ITEM(t, 1, v);
break;
- case GEN_IPADD:
- /* OpenSSL < 3.0.0 adds a trailing \n to IPv6. 3.0.0 removed
- * the trailing newline. Remove it in all versions
- */
- t = PyTuple_New(2);
- if (t == NULL)
- goto fail;
-
- v = PyUnicode_FromString("IP Address");
- if (v == NULL) {
- Py_DECREF(t);
- goto fail;
- }
- PyTuple_SET_ITEM(t, 0, v);
-
- if (name->d.ip->length == 4) {
- unsigned char *p = name->d.ip->data;
- v = PyUnicode_FromFormat(
- "%d.%d.%d.%d",
- p[0], p[1], p[2], p[3]
- );
- } else if (name->d.ip->length == 16) {
- /* PyUnicode_FromFormat() does not support %X */
- unsigned char *p = name->d.ip->data;
- len = sprintf(
- buf,
- "%X:%X:%X:%X:%X:%X:%X:%X",
- p[0] << 8 | p[1],
- p[2] << 8 | p[3],
- p[4] << 8 | p[5],
- p[6] << 8 | p[7],
- p[8] << 8 | p[9],
- p[10] << 8 | p[11],
- p[12] << 8 | p[13],
- p[14] << 8 | p[15]
- );
- v = PyUnicode_FromStringAndSize(buf, len);
- } else {
- v = PyUnicode_FromString("<invalid>");
- }
-
- if (v == NULL) {
- Py_DECREF(t);
- goto fail;
- }
- PyTuple_SET_ITEM(t, 1, v);
- break;
-
+ case GEN_IPADD:
+ /* OpenSSL < 3.0.0 adds a trailing \n to IPv6. 3.0.0 removed
+ * the trailing newline. Remove it in all versions
+ */
+ t = PyTuple_New(2);
+ if (t == NULL)
+ goto fail;
+
+ v = PyUnicode_FromString("IP Address");
+ if (v == NULL) {
+ Py_DECREF(t);
+ goto fail;
+ }
+ PyTuple_SET_ITEM(t, 0, v);
+
+ if (name->d.ip->length == 4) {
+ unsigned char *p = name->d.ip->data;
+ v = PyUnicode_FromFormat(
+ "%d.%d.%d.%d",
+ p[0], p[1], p[2], p[3]
+ );
+ } else if (name->d.ip->length == 16) {
+ /* PyUnicode_FromFormat() does not support %X */
+ unsigned char *p = name->d.ip->data;
+ len = sprintf(
+ buf,
+ "%X:%X:%X:%X:%X:%X:%X:%X",
+ p[0] << 8 | p[1],
+ p[2] << 8 | p[3],
+ p[4] << 8 | p[5],
+ p[6] << 8 | p[7],
+ p[8] << 8 | p[9],
+ p[10] << 8 | p[11],
+ p[12] << 8 | p[13],
+ p[14] << 8 | p[15]
+ );
+ v = PyUnicode_FromStringAndSize(buf, len);
+ } else {
+ v = PyUnicode_FromString("<invalid>");
+ }
+
+ if (v == NULL) {
+ Py_DECREF(t);
+ goto fail;
+ }
+ PyTuple_SET_ITEM(t, 1, v);
+ break;
+
default:
/* for everything else, we use the OpenSSL print form */
switch (gntype) {
@@ -1693,7 +1693,7 @@ _decode_certificate(X509 *certificate) {
ASN1_INTEGER *serialNumber;
char buf[2048];
int len, result;
- const ASN1_TIME *notBefore, *notAfter;
+ const ASN1_TIME *notBefore, *notAfter;
PyObject *pnotBefore, *pnotAfter;
retval = PyDict_New();
@@ -1755,7 +1755,7 @@ _decode_certificate(X509 *certificate) {
Py_DECREF(sn_obj);
(void) BIO_reset(biobuf);
- notBefore = X509_get0_notBefore(certificate);
+ notBefore = X509_get0_notBefore(certificate);
ASN1_TIME_print(biobuf, notBefore);
len = BIO_gets(biobuf, buf, sizeof(buf)-1);
if (len < 0) {
@@ -1772,7 +1772,7 @@ _decode_certificate(X509 *certificate) {
Py_DECREF(pnotBefore);
(void) BIO_reset(biobuf);
- notAfter = X509_get0_notAfter(certificate);
+ notAfter = X509_get0_notAfter(certificate);
ASN1_TIME_print(biobuf, notAfter);
len = BIO_gets(biobuf, buf, sizeof(buf)-1);
if (len < 0) {
@@ -1894,7 +1894,7 @@ _ssl__test_decode_cert_impl(PyObject *module, PyObject *path)
goto fail0;
}
- x = PEM_read_bio_X509(cert, NULL, NULL, NULL);
+ x = PEM_read_bio_X509(cert, NULL, NULL, NULL);
if (x == NULL) {
PyErr_SetString(PySSLErrorObject,
"Error decoding PEM-encoded file");
@@ -2213,11 +2213,11 @@ static int PySSL_set_context(PySSLSocket *self, PyObject *value,
Py_INCREF(value);
Py_SETREF(self->ctx, (PySSLContext *)value);
SSL_set_SSL_CTX(self->ssl, self->ctx->ctx);
- /* Set SSL* internal msg_callback to state of new context's state */
- SSL_set_msg_callback(
- self->ssl,
- self->ctx->msg_cb ? _PySSL_msg_callback : NULL
- );
+ /* Set SSL* internal msg_callback to state of new context's state */
+ SSL_set_msg_callback(
+ self->ssl,
+ self->ctx->msg_cb ? _PySSL_msg_callback : NULL
+ );
#endif
} else {
PyErr_SetString(PyExc_TypeError, "The value must be a SSLContext");
@@ -2283,27 +2283,27 @@ PyDoc_STRVAR(PySSL_get_owner_doc,
"The Python-level owner of this object.\
Passed as \"self\" in servername callback.");
-static int
-PySSL_traverse(PySSLSocket *self, visitproc visit, void *arg)
-{
- Py_VISIT(self->exc_type);
- Py_VISIT(self->exc_value);
- Py_VISIT(self->exc_tb);
- return 0;
-}
-
-static int
-PySSL_clear(PySSLSocket *self)
+static int
+PySSL_traverse(PySSLSocket *self, visitproc visit, void *arg)
+{
+ Py_VISIT(self->exc_type);
+ Py_VISIT(self->exc_value);
+ Py_VISIT(self->exc_tb);
+ return 0;
+}
+
+static int
+PySSL_clear(PySSLSocket *self)
+{
+ Py_CLEAR(self->exc_type);
+ Py_CLEAR(self->exc_value);
+ Py_CLEAR(self->exc_tb);
+ return 0;
+}
+
+static void
+PySSL_dealloc(PySSLSocket *self)
{
- Py_CLEAR(self->exc_type);
- Py_CLEAR(self->exc_value);
- Py_CLEAR(self->exc_tb);
- return 0;
-}
-
-static void
-PySSL_dealloc(PySSLSocket *self)
-{
if (self->ssl)
SSL_free(self->ssl);
Py_XDECREF(self->Socket);
@@ -2483,14 +2483,14 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b)
err.ssl == SSL_ERROR_WANT_WRITE);
Py_XDECREF(sock);
- if (len <= 0)
+ if (len <= 0)
return PySSL_SetError(self, len, __FILE__, __LINE__);
- if (PySSL_ChainExceptions(self) < 0)
- return NULL;
- return PyLong_FromLong(len);
+ if (PySSL_ChainExceptions(self) < 0)
+ return NULL;
+ return PyLong_FromLong(len);
error:
Py_XDECREF(sock);
- PySSL_ChainExceptions(self);
+ PySSL_ChainExceptions(self);
return NULL;
}
@@ -2637,8 +2637,8 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, int len, int group_right_1,
PySSL_SetError(self, count, __FILE__, __LINE__);
goto error;
}
- if (self->exc_type != NULL)
- goto error;
+ if (self->exc_type != NULL)
+ goto error;
done:
Py_XDECREF(sock);
@@ -2651,7 +2651,7 @@ done:
}
error:
- PySSL_ChainExceptions(self);
+ PySSL_ChainExceptions(self);
Py_XDECREF(sock);
if (!group_right_1)
Py_XDECREF(dest);
@@ -2757,11 +2757,11 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
}
if (ret < 0) {
Py_XDECREF(sock);
- PySSL_SetError(self, ret, __FILE__, __LINE__);
- return NULL;
+ PySSL_SetError(self, ret, __FILE__, __LINE__);
+ return NULL;
}
- if (self->exc_type != NULL)
- goto error;
+ if (self->exc_type != NULL)
+ goto error;
if (sock)
/* It's already INCREF'ed */
return (PyObject *) sock;
@@ -2770,7 +2770,7 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
error:
Py_XDECREF(sock);
- PySSL_ChainExceptions(self);
+ PySSL_ChainExceptions(self);
return NULL;
}
@@ -3030,10 +3030,10 @@ static PyTypeObject PySSLSocket_Type = {
0, /*tp_itemsize*/
/* methods */
(destructor)PySSL_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -3046,8 +3046,8 @@ static PyTypeObject PySSLSocket_Type = {
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT, /*tp_flags*/
0, /*tp_doc*/
- (traverseproc) PySSL_traverse, /*tp_traverse*/
- (inquiry) PySSL_clear, /*tp_clear*/
+ (traverseproc) PySSL_traverse, /*tp_traverse*/
+ (inquiry) PySSL_clear, /*tp_clear*/
0, /*tp_richcompare*/
0, /*tp_weaklistoffset*/
0, /*tp_iter*/
@@ -3083,10 +3083,10 @@ _set_verify_mode(PySSLContext *self, enum py_ssl_cert_requirements n)
"invalid value for verify_mode");
return -1;
}
-
- /* bpo-37428: newPySSLSocket() sets SSL_VERIFY_POST_HANDSHAKE flag for
- * server sockets and SSL_set_post_handshake_auth() for client. */
-
+
+ /* bpo-37428: newPySSLSocket() sets SSL_VERIFY_POST_HANDSHAKE flag for
+ * server sockets and SSL_set_post_handshake_auth() for client. */
+
/* keep current verify cb */
verify_cb = SSL_CTX_get_verify_callback(self->ctx);
SSL_CTX_set_verify(self->ctx, mode, verify_cb);
@@ -3114,51 +3114,51 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
#endif
PySSL_BEGIN_ALLOW_THREADS
- switch(proto_version) {
-#if defined(SSL3_VERSION) && !defined(OPENSSL_NO_SSL3)
- case PY_SSL_VERSION_SSL3:
- ctx = SSL_CTX_new(SSLv3_method());
- break;
-#endif
-#if (defined(TLS1_VERSION) && \
- !defined(OPENSSL_NO_TLS1) && \
- !defined(OPENSSL_NO_TLS1_METHOD))
- case PY_SSL_VERSION_TLS1:
+ switch(proto_version) {
+#if defined(SSL3_VERSION) && !defined(OPENSSL_NO_SSL3)
+ case PY_SSL_VERSION_SSL3:
+ ctx = SSL_CTX_new(SSLv3_method());
+ break;
+#endif
+#if (defined(TLS1_VERSION) && \
+ !defined(OPENSSL_NO_TLS1) && \
+ !defined(OPENSSL_NO_TLS1_METHOD))
+ case PY_SSL_VERSION_TLS1:
ctx = SSL_CTX_new(TLSv1_method());
- break;
-#endif
-#if (defined(TLS1_1_VERSION) && \
- !defined(OPENSSL_NO_TLS1_1) && \
- !defined(OPENSSL_NO_TLS1_1_METHOD))
- case PY_SSL_VERSION_TLS1_1:
+ break;
+#endif
+#if (defined(TLS1_1_VERSION) && \
+ !defined(OPENSSL_NO_TLS1_1) && \
+ !defined(OPENSSL_NO_TLS1_1_METHOD))
+ case PY_SSL_VERSION_TLS1_1:
ctx = SSL_CTX_new(TLSv1_1_method());
- break;
-#endif
-#if (defined(TLS1_2_VERSION) && \
- !defined(OPENSSL_NO_TLS1_2) && \
- !defined(OPENSSL_NO_TLS1_2_METHOD))
- case PY_SSL_VERSION_TLS1_2:
+ break;
+#endif
+#if (defined(TLS1_2_VERSION) && \
+ !defined(OPENSSL_NO_TLS1_2) && \
+ !defined(OPENSSL_NO_TLS1_2_METHOD))
+ case PY_SSL_VERSION_TLS1_2:
ctx = SSL_CTX_new(TLSv1_2_method());
- break;
+ break;
#endif
- case PY_SSL_VERSION_TLS:
- /* SSLv23 */
+ case PY_SSL_VERSION_TLS:
+ /* SSLv23 */
ctx = SSL_CTX_new(TLS_method());
- break;
- case PY_SSL_VERSION_TLS_CLIENT:
+ break;
+ case PY_SSL_VERSION_TLS_CLIENT:
ctx = SSL_CTX_new(TLS_client_method());
- break;
- case PY_SSL_VERSION_TLS_SERVER:
+ break;
+ case PY_SSL_VERSION_TLS_SERVER:
ctx = SSL_CTX_new(TLS_server_method());
- break;
- default:
+ break;
+ default:
proto_version = -1;
- }
+ }
PySSL_END_ALLOW_THREADS
if (proto_version == -1) {
PyErr_SetString(PyExc_ValueError,
- "invalid or unsupported protocol version");
+ "invalid or unsupported protocol version");
return NULL;
}
if (ctx == NULL) {
@@ -3175,11 +3175,11 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
self->ctx = ctx;
self->hostflags = X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS;
self->protocol = proto_version;
- self->msg_cb = NULL;
-#ifdef HAVE_OPENSSL_KEYLOG
- self->keylog_filename = NULL;
- self->keylog_bio = NULL;
-#endif
+ self->msg_cb = NULL;
+#ifdef HAVE_OPENSSL_KEYLOG
+ self->keylog_filename = NULL;
+ self->keylog_bio = NULL;
+#endif
#if HAVE_NPN
self->npn_protocols = NULL;
#endif
@@ -3223,10 +3223,10 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
#ifdef SSL_OP_SINGLE_ECDH_USE
options |= SSL_OP_SINGLE_ECDH_USE;
#endif
-#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF
- /* Make OpenSSL 3.0.0 behave like 1.1.1 */
- options |= SSL_OP_IGNORE_UNEXPECTED_EOF;
-#endif
+#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF
+ /* Make OpenSSL 3.0.0 behave like 1.1.1 */
+ options |= SSL_OP_IGNORE_UNEXPECTED_EOF;
+#endif
SSL_CTX_set_options(self->ctx, options);
/* A bare minimum cipher list without completely broken cipher suites.
@@ -3258,7 +3258,7 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
conservative and assume it wasn't fixed until release. We do this check
at runtime to avoid problems from the dynamic linker.
See #25672 for more on this. */
- libver = OpenSSL_version_num();
+ libver = OpenSSL_version_num();
if (!(libver >= 0x10001000UL && libver < 0x1000108fUL) &&
!(libver >= 0x10000000UL && libver < 0x100000dfUL)) {
SSL_CTX_set_mode(self->ctx, SSL_MODE_RELEASE_BUFFERS);
@@ -3309,7 +3309,7 @@ context_traverse(PySSLContext *self, visitproc visit, void *arg)
#ifndef OPENSSL_NO_TLSEXT
Py_VISIT(self->set_sni_cb);
#endif
- Py_VISIT(self->msg_cb);
+ Py_VISIT(self->msg_cb);
return 0;
}
@@ -3319,16 +3319,16 @@ context_clear(PySSLContext *self)
#ifndef OPENSSL_NO_TLSEXT
Py_CLEAR(self->set_sni_cb);
#endif
- Py_CLEAR(self->msg_cb);
-#ifdef HAVE_OPENSSL_KEYLOG
- Py_CLEAR(self->keylog_filename);
- if (self->keylog_bio != NULL) {
- PySSL_BEGIN_ALLOW_THREADS
- BIO_free_all(self->keylog_bio);
- PySSL_END_ALLOW_THREADS
- self->keylog_bio = NULL;
- }
-#endif
+ Py_CLEAR(self->msg_cb);
+#ifdef HAVE_OPENSSL_KEYLOG
+ Py_CLEAR(self->keylog_filename);
+ if (self->keylog_bio != NULL) {
+ PySSL_BEGIN_ALLOW_THREADS
+ BIO_free_all(self->keylog_bio);
+ PySSL_END_ALLOW_THREADS
+ self->keylog_bio = NULL;
+ }
+#endif
return 0;
}
@@ -3539,7 +3539,7 @@ _ssl__SSLContext__set_alpn_protocols_impl(PySSLContext *self,
#if HAVE_ALPN
if ((size_t)protos->len > UINT_MAX) {
PyErr_Format(PyExc_OverflowError,
- "protocols longer than %u bytes", UINT_MAX);
+ "protocols longer than %u bytes", UINT_MAX);
return NULL;
}
@@ -3734,40 +3734,40 @@ set_maximum_version(PySSLContext *self, PyObject *arg, void *c)
}
#endif /* SSL_CTRL_GET_MAX_PROTO_VERSION */
-#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
+static PyObject *
+get_num_tickets(PySSLContext *self, void *c)
+{
+ return PyLong_FromSize_t(SSL_CTX_get_num_tickets(self->ctx));
+}
+
+static int
+set_num_tickets(PySSLContext *self, PyObject *arg, void *c)
+{
+ long num;
+ if (!PyArg_Parse(arg, "l", &num))
+ return -1;
+ if (num < 0) {
+ PyErr_SetString(PyExc_ValueError, "value must be non-negative");
+ return -1;
+ }
+ if (self->protocol != PY_SSL_VERSION_TLS_SERVER) {
+ PyErr_SetString(PyExc_ValueError,
+ "SSLContext is not a server context.");
+ return -1;
+ }
+ if (SSL_CTX_set_num_tickets(self->ctx, num) != 1) {
+ PyErr_SetString(PyExc_ValueError, "failed to set num tickets.");
+ return -1;
+ }
+ return 0;
+}
+
+PyDoc_STRVAR(PySSLContext_num_tickets_doc,
+"Control the number of TLSv1.3 session tickets");
+#endif /* OpenSSL 1.1.1 */
+
static PyObject *
-get_num_tickets(PySSLContext *self, void *c)
-{
- return PyLong_FromSize_t(SSL_CTX_get_num_tickets(self->ctx));
-}
-
-static int
-set_num_tickets(PySSLContext *self, PyObject *arg, void *c)
-{
- long num;
- if (!PyArg_Parse(arg, "l", &num))
- return -1;
- if (num < 0) {
- PyErr_SetString(PyExc_ValueError, "value must be non-negative");
- return -1;
- }
- if (self->protocol != PY_SSL_VERSION_TLS_SERVER) {
- PyErr_SetString(PyExc_ValueError,
- "SSLContext is not a server context.");
- return -1;
- }
- if (SSL_CTX_set_num_tickets(self->ctx, num) != 1) {
- PyErr_SetString(PyExc_ValueError, "failed to set num tickets.");
- return -1;
- }
- return 0;
-}
-
-PyDoc_STRVAR(PySSLContext_num_tickets_doc,
-"Control the number of TLSv1.3 session tickets");
-#endif /* OpenSSL 1.1.1 */
-
-static PyObject *
get_options(PySSLContext *self, void *c)
{
return PyLong_FromLong(SSL_CTX_get_options(self->ctx));
@@ -3863,8 +3863,8 @@ set_post_handshake_auth(PySSLContext *self, PyObject *arg, void *c) {
}
self->post_handshake_auth = pha;
- /* bpo-37428: newPySSLSocket() sets SSL_VERIFY_POST_HANDSHAKE flag for
- * server sockets and SSL_set_post_handshake_auth() for client. */
+ /* bpo-37428: newPySSLSocket() sets SSL_VERIFY_POST_HANDSHAKE flag for
+ * server sockets and SSL_set_post_handshake_auth() for client. */
return 0;
}
@@ -3896,7 +3896,7 @@ _pwinfo_set(_PySSLPasswordInfo *pw_info, PyObject* password,
Py_ssize_t size;
if (PyUnicode_Check(password)) {
- password_bytes = PyUnicode_AsUTF8String(password);
+ password_bytes = PyUnicode_AsUTF8String(password);
if (!password_bytes) {
goto error;
}
@@ -3945,13 +3945,13 @@ _password_callback(char *buf, int size, int rwflag, void *userdata)
PySSL_END_ALLOW_THREADS_S(pw_info->thread_state);
- if (pw_info->error) {
- /* already failed previously. OpenSSL 3.0.0-alpha14 invokes the
- * callback multiple times which can lead to fatal Python error in
- * exception check. */
- goto error;
- }
-
+ if (pw_info->error) {
+ /* already failed previously. OpenSSL 3.0.0-alpha14 invokes the
+ * callback multiple times which can lead to fatal Python error in
+ * exception check. */
+ goto error;
+ }
+
if (pw_info->callable) {
fn_ret = _PyObject_CallNoArg(pw_info->callable);
if (!fn_ret) {
@@ -3987,15 +3987,15 @@ error:
/*[clinic input]
_ssl._SSLContext.load_cert_chain
certfile: object
- keyfile: object = None
- password: object = None
+ keyfile: object = None
+ password: object = None
[clinic start generated code]*/
static PyObject *
_ssl__SSLContext_load_cert_chain_impl(PySSLContext *self, PyObject *certfile,
PyObject *keyfile, PyObject *password)
-/*[clinic end generated code: output=9480bc1c380e2095 input=30bc7e967ea01a58]*/
+/*[clinic end generated code: output=9480bc1c380e2095 input=30bc7e967ea01a58]*/
{
PyObject *certfile_bytes = NULL, *keyfile_bytes = NULL;
pem_password_cb *orig_passwd_cb = SSL_CTX_get_default_passwd_cb(self->ctx);
@@ -4008,20 +4008,20 @@ _ssl__SSLContext_load_cert_chain_impl(PySSLContext *self, PyObject *certfile,
if (keyfile == Py_None)
keyfile = NULL;
if (!PyUnicode_FSConverter(certfile, &certfile_bytes)) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_SetString(PyExc_TypeError,
- "certfile should be a valid filesystem path");
- }
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "certfile should be a valid filesystem path");
+ }
return NULL;
}
if (keyfile && !PyUnicode_FSConverter(keyfile, &keyfile_bytes)) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_SetString(PyExc_TypeError,
- "keyfile should be a valid filesystem path");
- }
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "keyfile should be a valid filesystem path");
+ }
goto error;
}
- if (password != Py_None) {
+ if (password != Py_None) {
if (PyCallable_Check(password)) {
pw_info.callable = password;
} else if (!_pwinfo_set(&pw_info, password,
@@ -4094,12 +4094,12 @@ error:
/* internal helper function, returns -1 on error
*/
static int
-_add_ca_certs(PySSLContext *self, const void *data, Py_ssize_t len,
+_add_ca_certs(PySSLContext *self, const void *data, Py_ssize_t len,
int filetype)
{
BIO *biobuf = NULL;
X509_STORE *store;
- int retval = -1, err, loaded = 0;
+ int retval = -1, err, loaded = 0;
assert(filetype == SSL_FILETYPE_ASN1 || filetype == SSL_FILETYPE_PEM);
@@ -4153,18 +4153,18 @@ _add_ca_certs(PySSLContext *self, const void *data, Py_ssize_t len,
}
err = ERR_peek_last_error();
- if (loaded == 0) {
- const char *msg = NULL;
- if (filetype == SSL_FILETYPE_PEM) {
- msg = "no start line: cadata does not contain a certificate";
- } else {
- msg = "not enough data: cadata does not contain a certificate";
- }
- _setSSLError(msg, 0, __FILE__, __LINE__);
- retval = -1;
- } else if ((filetype == SSL_FILETYPE_ASN1) &&
- (ERR_GET_LIB(err) == ERR_LIB_ASN1) &&
- (ERR_GET_REASON(err) == ASN1_R_HEADER_TOO_LONG)) {
+ if (loaded == 0) {
+ const char *msg = NULL;
+ if (filetype == SSL_FILETYPE_PEM) {
+ msg = "no start line: cadata does not contain a certificate";
+ } else {
+ msg = "not enough data: cadata does not contain a certificate";
+ }
+ _setSSLError(msg, 0, __FILE__, __LINE__);
+ retval = -1;
+ } else if ((filetype == SSL_FILETYPE_ASN1) &&
+ (ERR_GET_LIB(err) == ERR_LIB_ASN1) &&
+ (ERR_GET_REASON(err) == ASN1_R_HEADER_TOO_LONG)) {
/* EOF ASN1 file, not an error */
ERR_clear_error();
retval = 0;
@@ -4174,11 +4174,11 @@ _add_ca_certs(PySSLContext *self, const void *data, Py_ssize_t len,
/* EOF PEM file, not an error */
ERR_clear_error();
retval = 0;
- } else if (err != 0) {
+ } else if (err != 0) {
_setSSLError(NULL, 0, __FILE__, __LINE__);
retval = -1;
- } else {
- retval = 0;
+ } else {
+ retval = 0;
}
BIO_free(biobuf);
@@ -4188,9 +4188,9 @@ _add_ca_certs(PySSLContext *self, const void *data, Py_ssize_t len,
/*[clinic input]
_ssl._SSLContext.load_verify_locations
- cafile: object = None
- capath: object = None
- cadata: object = None
+ cafile: object = None
+ capath: object = None
+ cadata: object = None
[clinic start generated code]*/
@@ -4199,7 +4199,7 @@ _ssl__SSLContext_load_verify_locations_impl(PySSLContext *self,
PyObject *cafile,
PyObject *capath,
PyObject *cadata)
-/*[clinic end generated code: output=454c7e41230ca551 input=42ecfe258233e194]*/
+/*[clinic end generated code: output=454c7e41230ca551 input=42ecfe258233e194]*/
{
PyObject *cafile_bytes = NULL, *capath_bytes = NULL;
const char *cafile_buf = NULL, *capath_buf = NULL;
@@ -4219,44 +4219,44 @@ _ssl__SSLContext_load_verify_locations_impl(PySSLContext *self,
goto error;
}
if (cafile && !PyUnicode_FSConverter(cafile, &cafile_bytes)) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_SetString(PyExc_TypeError,
- "cafile should be a valid filesystem path");
- }
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "cafile should be a valid filesystem path");
+ }
goto error;
}
if (capath && !PyUnicode_FSConverter(capath, &capath_bytes)) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_SetString(PyExc_TypeError,
- "capath should be a valid filesystem path");
- }
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_SetString(PyExc_TypeError,
+ "capath should be a valid filesystem path");
+ }
goto error;
}
- /* validate cadata type and load cadata */
+ /* validate cadata type and load cadata */
if (cadata) {
- if (PyUnicode_Check(cadata)) {
- PyObject *cadata_ascii = PyUnicode_AsASCIIString(cadata);
- if (cadata_ascii == NULL) {
- if (PyErr_ExceptionMatches(PyExc_UnicodeEncodeError)) {
- goto invalid_cadata;
- }
- goto error;
- }
- r = _add_ca_certs(self,
- PyBytes_AS_STRING(cadata_ascii),
- PyBytes_GET_SIZE(cadata_ascii),
- SSL_FILETYPE_PEM);
- Py_DECREF(cadata_ascii);
- if (r == -1) {
- goto error;
- }
- }
- else if (PyObject_CheckBuffer(cadata)) {
- Py_buffer buf;
- if (PyObject_GetBuffer(cadata, &buf, PyBUF_SIMPLE)) {
- goto error;
- }
+ if (PyUnicode_Check(cadata)) {
+ PyObject *cadata_ascii = PyUnicode_AsASCIIString(cadata);
+ if (cadata_ascii == NULL) {
+ if (PyErr_ExceptionMatches(PyExc_UnicodeEncodeError)) {
+ goto invalid_cadata;
+ }
+ goto error;
+ }
+ r = _add_ca_certs(self,
+ PyBytes_AS_STRING(cadata_ascii),
+ PyBytes_GET_SIZE(cadata_ascii),
+ SSL_FILETYPE_PEM);
+ Py_DECREF(cadata_ascii);
+ if (r == -1) {
+ goto error;
+ }
+ }
+ else if (PyObject_CheckBuffer(cadata)) {
+ Py_buffer buf;
+ if (PyObject_GetBuffer(cadata, &buf, PyBUF_SIMPLE)) {
+ goto error;
+ }
if (!PyBuffer_IsContiguous(&buf, 'C') || buf.ndim > 1) {
PyBuffer_Release(&buf);
PyErr_SetString(PyExc_TypeError,
@@ -4270,13 +4270,13 @@ _ssl__SSLContext_load_verify_locations_impl(PySSLContext *self,
goto error;
}
}
- else {
- invalid_cadata:
- PyErr_SetString(PyExc_TypeError,
- "cadata should be an ASCII string or a "
- "bytes-like object");
- goto error;
- }
+ else {
+ invalid_cadata:
+ PyErr_SetString(PyExc_TypeError,
+ "cadata should be an ASCII string or a "
+ "bytes-like object");
+ goto error;
+ }
}
/* load cafile or capath */
@@ -4346,10 +4346,10 @@ _ssl__SSLContext_load_dh_params(PySSLContext *self, PyObject *filepath)
}
return NULL;
}
- if (!SSL_CTX_set_tmp_dh(self->ctx, dh)) {
- DH_free(dh);
- return _setSSLError(NULL, 0, __FILE__, __LINE__);
- }
+ if (!SSL_CTX_set_tmp_dh(self->ctx, dh)) {
+ DH_free(dh);
+ return _setSSLError(NULL, 0, __FILE__, __LINE__);
+ }
DH_free(dh);
Py_RETURN_NONE;
}
@@ -4584,10 +4584,10 @@ _servername_callback(SSL *s, int *al, void *args)
servername_str = PyUnicode_FromEncodedObject(servername_bytes, "ascii", NULL);
if (servername_str == NULL) {
PyErr_WriteUnraisable(servername_bytes);
- Py_DECREF(servername_bytes);
+ Py_DECREF(servername_bytes);
goto error;
}
- Py_DECREF(servername_bytes);
+ Py_DECREF(servername_bytes);
result = PyObject_CallFunctionObjArgs(
ssl_ctx->set_sni_cb, ssl_socket, servername_str,
ssl_ctx, NULL);
@@ -4803,18 +4803,18 @@ static PyGetSetDef context_getsetlist[] = {
{"maximum_version", (getter) get_maximum_version,
(setter) set_maximum_version, NULL},
#endif
-#ifdef HAVE_OPENSSL_KEYLOG
- {"keylog_filename", (getter) _PySSLContext_get_keylog_filename,
- (setter) _PySSLContext_set_keylog_filename, NULL},
-#endif
- {"_msg_callback", (getter) _PySSLContext_get_msg_callback,
- (setter) _PySSLContext_set_msg_callback, NULL},
+#ifdef HAVE_OPENSSL_KEYLOG
+ {"keylog_filename", (getter) _PySSLContext_get_keylog_filename,
+ (setter) _PySSLContext_set_keylog_filename, NULL},
+#endif
+ {"_msg_callback", (getter) _PySSLContext_get_msg_callback,
+ (setter) _PySSLContext_set_msg_callback, NULL},
{"sni_callback", (getter) get_sni_callback,
(setter) set_sni_callback, PySSLContext_sni_callback_doc},
-#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
- {"num_tickets", (getter) get_num_tickets,
- (setter) set_num_tickets, PySSLContext_num_tickets_doc},
-#endif
+#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ {"num_tickets", (getter) get_num_tickets,
+ (setter) set_num_tickets, PySSLContext_num_tickets_doc},
+#endif
{"options", (getter) get_options,
(setter) set_options, NULL},
{"post_handshake_auth", (getter) get_post_handshake_auth,
@@ -4857,10 +4857,10 @@ static PyTypeObject PySSLContext_Type = {
sizeof(PySSLContext), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)context_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -5082,10 +5082,10 @@ static PyTypeObject PySSLMemoryBIO_Type = {
sizeof(PySSLMemoryBIO), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)memory_bio_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -5279,10 +5279,10 @@ static PyTypeObject PySSLSession_Type = {
sizeof(PySSLSession), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)PySSLSession_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -5356,11 +5356,11 @@ PySSL_RAND(int len, int pseudo)
if (bytes == NULL)
return NULL;
if (pseudo) {
-#ifdef PY_OPENSSL_1_1_API
- ok = RAND_bytes((unsigned char*)PyBytes_AS_STRING(bytes), len);
-#else
+#ifdef PY_OPENSSL_1_1_API
+ ok = RAND_bytes((unsigned char*)PyBytes_AS_STRING(bytes), len);
+#else
ok = RAND_pseudo_bytes((unsigned char*)PyBytes_AS_STRING(bytes), len);
-#endif
+#endif
if (ok == 0 || ok == 1)
return Py_BuildValue("NO", bytes, ok == 1 ? Py_True : Py_False);
}
@@ -5636,7 +5636,7 @@ parseKeyUsage(PCCERT_CONTEXT pCertCtx, DWORD flags)
}
return PyErr_SetFromWindowsErr(error);
}
- retval = PyFrozenSet_New(NULL);
+ retval = PyFrozenSet_New(NULL);
if (retval == NULL) {
goto error;
}
@@ -5662,55 +5662,55 @@ parseKeyUsage(PCCERT_CONTEXT pCertCtx, DWORD flags)
return retval;
}
-static HCERTSTORE
-ssl_collect_certificates(const char *store_name)
-{
-/* this function collects the system certificate stores listed in
- * system_stores into a collection certificate store for being
- * enumerated. The store must be readable to be added to the
- * store collection.
- */
-
- HCERTSTORE hCollectionStore = NULL, hSystemStore = NULL;
- static DWORD system_stores[] = {
- CERT_SYSTEM_STORE_LOCAL_MACHINE,
- CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE,
- CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY,
- CERT_SYSTEM_STORE_CURRENT_USER,
- CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY,
- CERT_SYSTEM_STORE_SERVICES,
- CERT_SYSTEM_STORE_USERS};
- size_t i, storesAdded;
- BOOL result;
-
- hCollectionStore = CertOpenStore(CERT_STORE_PROV_COLLECTION, 0,
- (HCRYPTPROV)NULL, 0, NULL);
- if (!hCollectionStore) {
- return NULL;
- }
- storesAdded = 0;
- for (i = 0; i < sizeof(system_stores) / sizeof(DWORD); i++) {
- hSystemStore = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, 0,
- (HCRYPTPROV)NULL,
- CERT_STORE_READONLY_FLAG |
- system_stores[i], store_name);
- if (hSystemStore) {
- result = CertAddStoreToCollection(hCollectionStore, hSystemStore,
- CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG, 0);
- if (result) {
- ++storesAdded;
- }
- CertCloseStore(hSystemStore, 0); /* flag must be 0 */
- }
- }
- if (storesAdded == 0) {
- CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_FORCE_FLAG);
- return NULL;
- }
-
- return hCollectionStore;
-}
-
+static HCERTSTORE
+ssl_collect_certificates(const char *store_name)
+{
+/* this function collects the system certificate stores listed in
+ * system_stores into a collection certificate store for being
+ * enumerated. The store must be readable to be added to the
+ * store collection.
+ */
+
+ HCERTSTORE hCollectionStore = NULL, hSystemStore = NULL;
+ static DWORD system_stores[] = {
+ CERT_SYSTEM_STORE_LOCAL_MACHINE,
+ CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE,
+ CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY,
+ CERT_SYSTEM_STORE_CURRENT_USER,
+ CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY,
+ CERT_SYSTEM_STORE_SERVICES,
+ CERT_SYSTEM_STORE_USERS};
+ size_t i, storesAdded;
+ BOOL result;
+
+ hCollectionStore = CertOpenStore(CERT_STORE_PROV_COLLECTION, 0,
+ (HCRYPTPROV)NULL, 0, NULL);
+ if (!hCollectionStore) {
+ return NULL;
+ }
+ storesAdded = 0;
+ for (i = 0; i < sizeof(system_stores) / sizeof(DWORD); i++) {
+ hSystemStore = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, 0,
+ (HCRYPTPROV)NULL,
+ CERT_STORE_READONLY_FLAG |
+ system_stores[i], store_name);
+ if (hSystemStore) {
+ result = CertAddStoreToCollection(hCollectionStore, hSystemStore,
+ CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG, 0);
+ if (result) {
+ ++storesAdded;
+ }
+ CertCloseStore(hSystemStore, 0); /* flag must be 0 */
+ }
+ }
+ if (storesAdded == 0) {
+ CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_FORCE_FLAG);
+ return NULL;
+ }
+
+ return hCollectionStore;
+}
+
/*[clinic input]
_ssl.enum_certificates
store_name: str
@@ -5728,22 +5728,22 @@ static PyObject *
_ssl_enum_certificates_impl(PyObject *module, const char *store_name)
/*[clinic end generated code: output=5134dc8bb3a3c893 input=915f60d70461ea4e]*/
{
- HCERTSTORE hCollectionStore = NULL;
+ HCERTSTORE hCollectionStore = NULL;
PCCERT_CONTEXT pCertCtx = NULL;
PyObject *keyusage = NULL, *cert = NULL, *enc = NULL, *tup = NULL;
PyObject *result = NULL;
- result = PySet_New(NULL);
+ result = PySet_New(NULL);
if (result == NULL) {
return NULL;
}
- hCollectionStore = ssl_collect_certificates(store_name);
- if (hCollectionStore == NULL) {
+ hCollectionStore = ssl_collect_certificates(store_name);
+ if (hCollectionStore == NULL) {
Py_DECREF(result);
return PyErr_SetFromWindowsErr(GetLastError());
}
- while (pCertCtx = CertEnumCertificatesInStore(hCollectionStore, pCertCtx)) {
+ while (pCertCtx = CertEnumCertificatesInStore(hCollectionStore, pCertCtx)) {
cert = PyBytes_FromStringAndSize((const char*)pCertCtx->pbCertEncoded,
pCertCtx->cbCertEncoded);
if (!cert) {
@@ -5773,10 +5773,10 @@ _ssl_enum_certificates_impl(PyObject *module, const char *store_name)
enc = NULL;
PyTuple_SET_ITEM(tup, 2, keyusage);
keyusage = NULL;
- if (PySet_Add(result, tup) == -1) {
- Py_CLEAR(result);
- Py_CLEAR(tup);
- break;
+ if (PySet_Add(result, tup) == -1) {
+ Py_CLEAR(result);
+ Py_CLEAR(tup);
+ break;
}
Py_CLEAR(tup);
}
@@ -5791,23 +5791,23 @@ _ssl_enum_certificates_impl(PyObject *module, const char *store_name)
Py_XDECREF(keyusage);
Py_XDECREF(tup);
- /* CERT_CLOSE_STORE_FORCE_FLAG forces freeing of memory for all contexts
- associated with the store, in this case our collection store and the
- associated system stores. */
- if (!CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_FORCE_FLAG)) {
+ /* CERT_CLOSE_STORE_FORCE_FLAG forces freeing of memory for all contexts
+ associated with the store, in this case our collection store and the
+ associated system stores. */
+ if (!CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_FORCE_FLAG)) {
/* This error case might shadow another exception.*/
Py_XDECREF(result);
return PyErr_SetFromWindowsErr(GetLastError());
}
-
- /* convert set to list */
- if (result == NULL) {
- return NULL;
- } else {
- PyObject *lst = PySequence_List(result);
- Py_DECREF(result);
- return lst;
- }
+
+ /* convert set to list */
+ if (result == NULL) {
+ return NULL;
+ } else {
+ PyObject *lst = PySequence_List(result);
+ Py_DECREF(result);
+ return lst;
+ }
}
/*[clinic input]
@@ -5826,22 +5826,22 @@ static PyObject *
_ssl_enum_crls_impl(PyObject *module, const char *store_name)
/*[clinic end generated code: output=bce467f60ccd03b6 input=a1f1d7629f1c5d3d]*/
{
- HCERTSTORE hCollectionStore = NULL;
+ HCERTSTORE hCollectionStore = NULL;
PCCRL_CONTEXT pCrlCtx = NULL;
PyObject *crl = NULL, *enc = NULL, *tup = NULL;
PyObject *result = NULL;
- result = PySet_New(NULL);
+ result = PySet_New(NULL);
if (result == NULL) {
return NULL;
}
- hCollectionStore = ssl_collect_certificates(store_name);
- if (hCollectionStore == NULL) {
+ hCollectionStore = ssl_collect_certificates(store_name);
+ if (hCollectionStore == NULL) {
Py_DECREF(result);
return PyErr_SetFromWindowsErr(GetLastError());
}
- while (pCrlCtx = CertEnumCRLsInStore(hCollectionStore, pCrlCtx)) {
+ while (pCrlCtx = CertEnumCRLsInStore(hCollectionStore, pCrlCtx)) {
crl = PyBytes_FromStringAndSize((const char*)pCrlCtx->pbCrlEncoded,
pCrlCtx->cbCrlEncoded);
if (!crl) {
@@ -5861,10 +5861,10 @@ _ssl_enum_crls_impl(PyObject *module, const char *store_name)
PyTuple_SET_ITEM(tup, 1, enc);
enc = NULL;
- if (PySet_Add(result, tup) == -1) {
- Py_CLEAR(result);
- Py_CLEAR(tup);
- break;
+ if (PySet_Add(result, tup) == -1) {
+ Py_CLEAR(result);
+ Py_CLEAR(tup);
+ break;
}
Py_CLEAR(tup);
}
@@ -5878,22 +5878,22 @@ _ssl_enum_crls_impl(PyObject *module, const char *store_name)
Py_XDECREF(enc);
Py_XDECREF(tup);
- /* CERT_CLOSE_STORE_FORCE_FLAG forces freeing of memory for all contexts
- associated with the store, in this case our collection store and the
- associated system stores. */
- if (!CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_FORCE_FLAG)) {
+ /* CERT_CLOSE_STORE_FORCE_FLAG forces freeing of memory for all contexts
+ associated with the store, in this case our collection store and the
+ associated system stores. */
+ if (!CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_FORCE_FLAG)) {
/* This error case might shadow another exception.*/
Py_XDECREF(result);
return PyErr_SetFromWindowsErr(GetLastError());
}
- /* convert set to list */
- if (result == NULL) {
- return NULL;
- } else {
- PyObject *lst = PySequence_List(result);
- Py_DECREF(result);
- return lst;
- }
+ /* convert set to list */
+ if (result == NULL) {
+ return NULL;
+ } else {
+ PyObject *lst = PySequence_List(result);
+ Py_DECREF(result);
+ return lst;
+ }
}
#endif /* _MSC_VER */
@@ -6080,7 +6080,7 @@ PyInit__ssl(void)
if (!_setup_ssl_threads()) {
return NULL;
}
-#elif OPENSSL_VERSION_1_1
+#elif OPENSSL_VERSION_1_1
/* OpenSSL 1.1.0 builtin thread support is enabled */
_ssl_locks_count++;
#endif
@@ -6293,10 +6293,10 @@ PyInit__ssl(void)
PyModule_AddIntConstant(m, "OP_NO_RENEGOTIATION",
SSL_OP_NO_RENEGOTIATION);
#endif
-#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF
- PyModule_AddIntConstant(m, "OP_IGNORE_UNEXPECTED_EOF",
- SSL_OP_IGNORE_UNEXPECTED_EOF);
-#endif
+#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF
+ PyModule_AddIntConstant(m, "OP_IGNORE_UNEXPECTED_EOF",
+ SSL_OP_IGNORE_UNEXPECTED_EOF);
+#endif
#ifdef X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT
PyModule_AddIntConstant(m, "HOSTFLAG_ALWAYS_CHECK_SUBJECT",
@@ -6334,12 +6334,12 @@ PyInit__ssl(void)
PyModule_AddIntConstant(m, "PROTO_TLSv1_2", PY_PROTO_TLSv1_2);
PyModule_AddIntConstant(m, "PROTO_TLSv1_3", PY_PROTO_TLSv1_3);
-#define addbool(m, key, value) \
- do { \
- PyObject *bool_obj = (value) ? Py_True : Py_False; \
- Py_INCREF(bool_obj); \
- PyModule_AddObject((m), (key), bool_obj); \
- } while (0)
+#define addbool(m, key, value) \
+ do { \
+ PyObject *bool_obj = (value) ? Py_True : Py_False; \
+ Py_INCREF(bool_obj); \
+ PyModule_AddObject((m), (key), bool_obj); \
+ } while (0)
#if HAVE_SNI
addbool(m, "HAS_SNI", 1);
@@ -6451,7 +6451,7 @@ PyInit__ssl(void)
/* SSLeay() gives us the version of the library linked against,
which could be different from the headers version.
*/
- libver = OpenSSL_version_num();
+ libver = OpenSSL_version_num();
r = PyLong_FromUnsignedLong(libver);
if (r == NULL)
return NULL;
@@ -6461,7 +6461,7 @@ PyInit__ssl(void)
r = Py_BuildValue("IIIII", major, minor, fix, patch, status);
if (r == NULL || PyModule_AddObject(m, "OPENSSL_VERSION_INFO", r))
return NULL;
- r = PyUnicode_FromString(OpenSSL_version(OPENSSL_VERSION));
+ r = PyUnicode_FromString(OpenSSL_version(OPENSSL_VERSION));
if (r == NULL || PyModule_AddObject(m, "OPENSSL_VERSION", r))
return NULL;
diff --git a/contrib/tools/python3/src/Modules/_ssl/debughelpers.c b/contrib/tools/python3/src/Modules/_ssl/debughelpers.c
index 5ee781e159..af56f9d28d 100644
--- a/contrib/tools/python3/src/Modules/_ssl/debughelpers.c
+++ b/contrib/tools/python3/src/Modules/_ssl/debughelpers.c
@@ -1,223 +1,223 @@
-/* Debug helpers */
-
-#ifndef SSL3_MT_CHANGE_CIPHER_SPEC
-/* Dummy message type for handling CCS like a normal handshake message
- * not defined in OpenSSL 1.0.2
- */
-#define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101
-#endif
-
-static void
-_PySSL_msg_callback(int write_p, int version, int content_type,
- const void *buf, size_t len, SSL *ssl, void *arg)
-{
- const char *cbuf = (const char *)buf;
- PyGILState_STATE threadstate;
- PyObject *res = NULL;
- PySSLSocket *ssl_obj = NULL; /* ssl._SSLSocket, borrowed ref */
- PyObject *ssl_socket = NULL; /* ssl.SSLSocket or ssl.SSLObject */
- int msg_type;
-
- threadstate = PyGILState_Ensure();
-
- ssl_obj = (PySSLSocket *)SSL_get_app_data(ssl);
- assert(PySSLSocket_Check(ssl_obj));
- if (ssl_obj->ctx->msg_cb == NULL) {
- PyGILState_Release(threadstate);
- return;
- }
-
- if (ssl_obj->owner)
- ssl_socket = PyWeakref_GetObject(ssl_obj->owner);
- else if (ssl_obj->Socket)
- ssl_socket = PyWeakref_GetObject(ssl_obj->Socket);
- else
- ssl_socket = (PyObject *)ssl_obj;
- Py_INCREF(ssl_socket);
-
- /* assume that OpenSSL verifies all payload and buf len is of sufficient
- length */
- switch(content_type) {
- case SSL3_RT_CHANGE_CIPHER_SPEC:
- msg_type = SSL3_MT_CHANGE_CIPHER_SPEC;
- break;
- case SSL3_RT_ALERT:
- /* byte 0: level */
- /* byte 1: alert type */
- msg_type = (int)cbuf[1];
- break;
- case SSL3_RT_HANDSHAKE:
- msg_type = (int)cbuf[0];
- break;
-#ifdef SSL3_RT_HEADER
- case SSL3_RT_HEADER:
- /* frame header encodes version in bytes 1..2 */
- version = cbuf[1] << 8 | cbuf[2];
- msg_type = (int)cbuf[0];
- break;
-#endif
-#ifdef SSL3_RT_INNER_CONTENT_TYPE
- case SSL3_RT_INNER_CONTENT_TYPE:
- msg_type = (int)cbuf[0];
- break;
-#endif
- default:
- /* never SSL3_RT_APPLICATION_DATA */
- msg_type = -1;
- break;
- }
-
- res = PyObject_CallFunction(
- ssl_obj->ctx->msg_cb, "Osiiiy#",
- ssl_socket, write_p ? "write" : "read",
- version, content_type, msg_type,
- buf, len
- );
- if (res == NULL) {
- PyErr_Fetch(&ssl_obj->exc_type, &ssl_obj->exc_value, &ssl_obj->exc_tb);
- } else {
- Py_DECREF(res);
- }
- Py_XDECREF(ssl_socket);
-
- PyGILState_Release(threadstate);
-}
-
-
-static PyObject *
-_PySSLContext_get_msg_callback(PySSLContext *self, void *c) {
- if (self->msg_cb != NULL) {
- Py_INCREF(self->msg_cb);
- return self->msg_cb;
- } else {
- Py_RETURN_NONE;
- }
-}
-
-static int
-_PySSLContext_set_msg_callback(PySSLContext *self, PyObject *arg, void *c) {
- Py_CLEAR(self->msg_cb);
- if (arg == Py_None) {
- SSL_CTX_set_msg_callback(self->ctx, NULL);
- }
- else {
- if (!PyCallable_Check(arg)) {
- SSL_CTX_set_msg_callback(self->ctx, NULL);
- PyErr_SetString(PyExc_TypeError,
- "not a callable object");
- return -1;
- }
- Py_INCREF(arg);
- self->msg_cb = arg;
- SSL_CTX_set_msg_callback(self->ctx, _PySSL_msg_callback);
- }
- return 0;
-}
-
-#ifdef HAVE_OPENSSL_KEYLOG
-
-static void
-_PySSL_keylog_callback(const SSL *ssl, const char *line)
-{
- PyGILState_STATE threadstate;
- PySSLSocket *ssl_obj = NULL; /* ssl._SSLSocket, borrowed ref */
- int res, e;
- static PyThread_type_lock *lock = NULL;
-
- threadstate = PyGILState_Ensure();
-
- ssl_obj = (PySSLSocket *)SSL_get_app_data(ssl);
- assert(PySSLSocket_Check(ssl_obj));
- if (ssl_obj->ctx->keylog_bio == NULL) {
- return;
- }
-
- /* Allocate a static lock to synchronize writes to keylog file.
- * The lock is neither released on exit nor on fork(). The lock is
- * also shared between all SSLContexts although contexts may write to
- * their own files. IMHO that's good enough for a non-performance
- * critical debug helper.
- */
- if (lock == NULL) {
- lock = PyThread_allocate_lock();
- if (lock == NULL) {
- PyErr_SetString(PyExc_MemoryError, "Unable to allocate lock");
- PyErr_Fetch(&ssl_obj->exc_type, &ssl_obj->exc_value,
- &ssl_obj->exc_tb);
- return;
- }
- }
-
- PySSL_BEGIN_ALLOW_THREADS
- PyThread_acquire_lock(lock, 1);
- res = BIO_printf(ssl_obj->ctx->keylog_bio, "%s\n", line);
- e = errno;
- (void)BIO_flush(ssl_obj->ctx->keylog_bio);
- PyThread_release_lock(lock);
- PySSL_END_ALLOW_THREADS
-
- if (res == -1) {
- errno = e;
- PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError,
- ssl_obj->ctx->keylog_filename);
- PyErr_Fetch(&ssl_obj->exc_type, &ssl_obj->exc_value, &ssl_obj->exc_tb);
- }
- PyGILState_Release(threadstate);
-}
-
-static PyObject *
-_PySSLContext_get_keylog_filename(PySSLContext *self, void *c) {
- if (self->keylog_filename != NULL) {
- Py_INCREF(self->keylog_filename);
- return self->keylog_filename;
- } else {
- Py_RETURN_NONE;
- }
-}
-
-static int
-_PySSLContext_set_keylog_filename(PySSLContext *self, PyObject *arg, void *c) {
- FILE *fp;
- /* Reset variables and callback first */
- SSL_CTX_set_keylog_callback(self->ctx, NULL);
- Py_CLEAR(self->keylog_filename);
- if (self->keylog_bio != NULL) {
- BIO *bio = self->keylog_bio;
- self->keylog_bio = NULL;
- PySSL_BEGIN_ALLOW_THREADS
- BIO_free_all(bio);
- PySSL_END_ALLOW_THREADS
- }
-
- if (arg == Py_None) {
- /* None disables the callback */
- return 0;
- }
-
- /* _Py_fopen_obj() also checks that arg is of proper type. */
- fp = _Py_fopen_obj(arg, "a" PY_STDIOTEXTMODE);
- if (fp == NULL)
- return -1;
-
- self->keylog_bio = BIO_new_fp(fp, BIO_CLOSE | BIO_FP_TEXT);
- if (self->keylog_bio == NULL) {
- PyErr_SetString(PySSLErrorObject,
- "Can't malloc memory for keylog file");
- return -1;
- }
- Py_INCREF(arg);
- self->keylog_filename = arg;
-
- /* Write a header for seekable, empty files (this excludes pipes). */
- PySSL_BEGIN_ALLOW_THREADS
- if (BIO_tell(self->keylog_bio) == 0) {
- BIO_puts(self->keylog_bio,
- "# TLS secrets log file, generated by OpenSSL / Python\n");
- (void)BIO_flush(self->keylog_bio);
- }
- PySSL_END_ALLOW_THREADS
- SSL_CTX_set_keylog_callback(self->ctx, _PySSL_keylog_callback);
- return 0;
-}
-
-#endif
+/* Debug helpers */
+
+#ifndef SSL3_MT_CHANGE_CIPHER_SPEC
+/* Dummy message type for handling CCS like a normal handshake message
+ * not defined in OpenSSL 1.0.2
+ */
+#define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101
+#endif
+
+static void
+_PySSL_msg_callback(int write_p, int version, int content_type,
+ const void *buf, size_t len, SSL *ssl, void *arg)
+{
+ const char *cbuf = (const char *)buf;
+ PyGILState_STATE threadstate;
+ PyObject *res = NULL;
+ PySSLSocket *ssl_obj = NULL; /* ssl._SSLSocket, borrowed ref */
+ PyObject *ssl_socket = NULL; /* ssl.SSLSocket or ssl.SSLObject */
+ int msg_type;
+
+ threadstate = PyGILState_Ensure();
+
+ ssl_obj = (PySSLSocket *)SSL_get_app_data(ssl);
+ assert(PySSLSocket_Check(ssl_obj));
+ if (ssl_obj->ctx->msg_cb == NULL) {
+ PyGILState_Release(threadstate);
+ return;
+ }
+
+ if (ssl_obj->owner)
+ ssl_socket = PyWeakref_GetObject(ssl_obj->owner);
+ else if (ssl_obj->Socket)
+ ssl_socket = PyWeakref_GetObject(ssl_obj->Socket);
+ else
+ ssl_socket = (PyObject *)ssl_obj;
+ Py_INCREF(ssl_socket);
+
+ /* assume that OpenSSL verifies all payload and buf len is of sufficient
+ length */
+ switch(content_type) {
+ case SSL3_RT_CHANGE_CIPHER_SPEC:
+ msg_type = SSL3_MT_CHANGE_CIPHER_SPEC;
+ break;
+ case SSL3_RT_ALERT:
+ /* byte 0: level */
+ /* byte 1: alert type */
+ msg_type = (int)cbuf[1];
+ break;
+ case SSL3_RT_HANDSHAKE:
+ msg_type = (int)cbuf[0];
+ break;
+#ifdef SSL3_RT_HEADER
+ case SSL3_RT_HEADER:
+ /* frame header encodes version in bytes 1..2 */
+ version = cbuf[1] << 8 | cbuf[2];
+ msg_type = (int)cbuf[0];
+ break;
+#endif
+#ifdef SSL3_RT_INNER_CONTENT_TYPE
+ case SSL3_RT_INNER_CONTENT_TYPE:
+ msg_type = (int)cbuf[0];
+ break;
+#endif
+ default:
+ /* never SSL3_RT_APPLICATION_DATA */
+ msg_type = -1;
+ break;
+ }
+
+ res = PyObject_CallFunction(
+ ssl_obj->ctx->msg_cb, "Osiiiy#",
+ ssl_socket, write_p ? "write" : "read",
+ version, content_type, msg_type,
+ buf, len
+ );
+ if (res == NULL) {
+ PyErr_Fetch(&ssl_obj->exc_type, &ssl_obj->exc_value, &ssl_obj->exc_tb);
+ } else {
+ Py_DECREF(res);
+ }
+ Py_XDECREF(ssl_socket);
+
+ PyGILState_Release(threadstate);
+}
+
+
+static PyObject *
+_PySSLContext_get_msg_callback(PySSLContext *self, void *c) {
+ if (self->msg_cb != NULL) {
+ Py_INCREF(self->msg_cb);
+ return self->msg_cb;
+ } else {
+ Py_RETURN_NONE;
+ }
+}
+
+static int
+_PySSLContext_set_msg_callback(PySSLContext *self, PyObject *arg, void *c) {
+ Py_CLEAR(self->msg_cb);
+ if (arg == Py_None) {
+ SSL_CTX_set_msg_callback(self->ctx, NULL);
+ }
+ else {
+ if (!PyCallable_Check(arg)) {
+ SSL_CTX_set_msg_callback(self->ctx, NULL);
+ PyErr_SetString(PyExc_TypeError,
+ "not a callable object");
+ return -1;
+ }
+ Py_INCREF(arg);
+ self->msg_cb = arg;
+ SSL_CTX_set_msg_callback(self->ctx, _PySSL_msg_callback);
+ }
+ return 0;
+}
+
+#ifdef HAVE_OPENSSL_KEYLOG
+
+static void
+_PySSL_keylog_callback(const SSL *ssl, const char *line)
+{
+ PyGILState_STATE threadstate;
+ PySSLSocket *ssl_obj = NULL; /* ssl._SSLSocket, borrowed ref */
+ int res, e;
+ static PyThread_type_lock *lock = NULL;
+
+ threadstate = PyGILState_Ensure();
+
+ ssl_obj = (PySSLSocket *)SSL_get_app_data(ssl);
+ assert(PySSLSocket_Check(ssl_obj));
+ if (ssl_obj->ctx->keylog_bio == NULL) {
+ return;
+ }
+
+ /* Allocate a static lock to synchronize writes to keylog file.
+ * The lock is neither released on exit nor on fork(). The lock is
+ * also shared between all SSLContexts although contexts may write to
+ * their own files. IMHO that's good enough for a non-performance
+ * critical debug helper.
+ */
+ if (lock == NULL) {
+ lock = PyThread_allocate_lock();
+ if (lock == NULL) {
+ PyErr_SetString(PyExc_MemoryError, "Unable to allocate lock");
+ PyErr_Fetch(&ssl_obj->exc_type, &ssl_obj->exc_value,
+ &ssl_obj->exc_tb);
+ return;
+ }
+ }
+
+ PySSL_BEGIN_ALLOW_THREADS
+ PyThread_acquire_lock(lock, 1);
+ res = BIO_printf(ssl_obj->ctx->keylog_bio, "%s\n", line);
+ e = errno;
+ (void)BIO_flush(ssl_obj->ctx->keylog_bio);
+ PyThread_release_lock(lock);
+ PySSL_END_ALLOW_THREADS
+
+ if (res == -1) {
+ errno = e;
+ PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError,
+ ssl_obj->ctx->keylog_filename);
+ PyErr_Fetch(&ssl_obj->exc_type, &ssl_obj->exc_value, &ssl_obj->exc_tb);
+ }
+ PyGILState_Release(threadstate);
+}
+
+static PyObject *
+_PySSLContext_get_keylog_filename(PySSLContext *self, void *c) {
+ if (self->keylog_filename != NULL) {
+ Py_INCREF(self->keylog_filename);
+ return self->keylog_filename;
+ } else {
+ Py_RETURN_NONE;
+ }
+}
+
+static int
+_PySSLContext_set_keylog_filename(PySSLContext *self, PyObject *arg, void *c) {
+ FILE *fp;
+ /* Reset variables and callback first */
+ SSL_CTX_set_keylog_callback(self->ctx, NULL);
+ Py_CLEAR(self->keylog_filename);
+ if (self->keylog_bio != NULL) {
+ BIO *bio = self->keylog_bio;
+ self->keylog_bio = NULL;
+ PySSL_BEGIN_ALLOW_THREADS
+ BIO_free_all(bio);
+ PySSL_END_ALLOW_THREADS
+ }
+
+ if (arg == Py_None) {
+ /* None disables the callback */
+ return 0;
+ }
+
+ /* _Py_fopen_obj() also checks that arg is of proper type. */
+ fp = _Py_fopen_obj(arg, "a" PY_STDIOTEXTMODE);
+ if (fp == NULL)
+ return -1;
+
+ self->keylog_bio = BIO_new_fp(fp, BIO_CLOSE | BIO_FP_TEXT);
+ if (self->keylog_bio == NULL) {
+ PyErr_SetString(PySSLErrorObject,
+ "Can't malloc memory for keylog file");
+ return -1;
+ }
+ Py_INCREF(arg);
+ self->keylog_filename = arg;
+
+ /* Write a header for seekable, empty files (this excludes pipes). */
+ PySSL_BEGIN_ALLOW_THREADS
+ if (BIO_tell(self->keylog_bio) == 0) {
+ BIO_puts(self->keylog_bio,
+ "# TLS secrets log file, generated by OpenSSL / Python\n");
+ (void)BIO_flush(self->keylog_bio);
+ }
+ PySSL_END_ALLOW_THREADS
+ SSL_CTX_set_keylog_callback(self->ctx, _PySSL_keylog_callback);
+ return 0;
+}
+
+#endif
diff --git a/contrib/tools/python3/src/Modules/_ssl_data.h b/contrib/tools/python3/src/Modules/_ssl_data.h
index 979397d125..8f2994f52d 100644
--- a/contrib/tools/python3/src/Modules/_ssl_data.h
+++ b/contrib/tools/python3/src/Modules/_ssl_data.h
@@ -1,6323 +1,6323 @@
/* File generated by Tools/ssl/make_ssl_data.py */
-/* Generated on 2020-04-13T21:45:54.559159 */
+/* Generated on 2020-04-13T21:45:54.559159 */
static struct py_ssl_library_code library_codes[] = {
-#ifdef ERR_LIB_ASN1
- {"ASN1", ERR_LIB_ASN1},
-#endif
-#ifdef ERR_LIB_ASYNC
- {"ASYNC", ERR_LIB_ASYNC},
-#endif
-#ifdef ERR_LIB_BIO
- {"BIO", ERR_LIB_BIO},
-#endif
-#ifdef ERR_LIB_BN
- {"BN", ERR_LIB_BN},
-#endif
-#ifdef ERR_LIB_CMS
- {"CMS", ERR_LIB_CMS},
-#endif
-#ifdef ERR_LIB_COMP
- {"COMP", ERR_LIB_COMP},
-#endif
-#ifdef ERR_LIB_CONF
- {"CONF", ERR_LIB_CONF},
-#endif
-#ifdef ERR_LIB_CRYPTO
- {"CRYPTO", ERR_LIB_CRYPTO},
-#endif
-#ifdef ERR_LIB_CT
- {"CT", ERR_LIB_CT},
-#endif
-#ifdef ERR_LIB_DH
- {"DH", ERR_LIB_DH},
-#endif
-#ifdef ERR_LIB_DSA
- {"DSA", ERR_LIB_DSA},
-#endif
-#ifdef ERR_LIB_EC
- {"EC", ERR_LIB_EC},
-#endif
-#ifdef ERR_LIB_ENGINE
- {"ENGINE", ERR_LIB_ENGINE},
-#endif
-#ifdef ERR_LIB_EVP
- {"EVP", ERR_LIB_EVP},
-#endif
-#ifdef ERR_LIB_KDF
- {"KDF", ERR_LIB_KDF},
-#endif
-#ifdef ERR_LIB_OCSP
- {"OCSP", ERR_LIB_OCSP},
-#endif
-#ifdef ERR_LIB_PEM
+#ifdef ERR_LIB_ASN1
+ {"ASN1", ERR_LIB_ASN1},
+#endif
+#ifdef ERR_LIB_ASYNC
+ {"ASYNC", ERR_LIB_ASYNC},
+#endif
+#ifdef ERR_LIB_BIO
+ {"BIO", ERR_LIB_BIO},
+#endif
+#ifdef ERR_LIB_BN
+ {"BN", ERR_LIB_BN},
+#endif
+#ifdef ERR_LIB_CMS
+ {"CMS", ERR_LIB_CMS},
+#endif
+#ifdef ERR_LIB_COMP
+ {"COMP", ERR_LIB_COMP},
+#endif
+#ifdef ERR_LIB_CONF
+ {"CONF", ERR_LIB_CONF},
+#endif
+#ifdef ERR_LIB_CRYPTO
+ {"CRYPTO", ERR_LIB_CRYPTO},
+#endif
+#ifdef ERR_LIB_CT
+ {"CT", ERR_LIB_CT},
+#endif
+#ifdef ERR_LIB_DH
+ {"DH", ERR_LIB_DH},
+#endif
+#ifdef ERR_LIB_DSA
+ {"DSA", ERR_LIB_DSA},
+#endif
+#ifdef ERR_LIB_EC
+ {"EC", ERR_LIB_EC},
+#endif
+#ifdef ERR_LIB_ENGINE
+ {"ENGINE", ERR_LIB_ENGINE},
+#endif
+#ifdef ERR_LIB_EVP
+ {"EVP", ERR_LIB_EVP},
+#endif
+#ifdef ERR_LIB_KDF
+ {"KDF", ERR_LIB_KDF},
+#endif
+#ifdef ERR_LIB_OCSP
+ {"OCSP", ERR_LIB_OCSP},
+#endif
+#ifdef ERR_LIB_PEM
{"PEM", ERR_LIB_PEM},
-#endif
-#ifdef ERR_LIB_PKCS12
- {"PKCS12", ERR_LIB_PKCS12},
-#endif
-#ifdef ERR_LIB_PKCS7
- {"PKCS7", ERR_LIB_PKCS7},
-#endif
-#ifdef ERR_LIB_RAND
- {"RAND", ERR_LIB_RAND},
-#endif
-#ifdef ERR_LIB_RSA
- {"RSA", ERR_LIB_RSA},
-#endif
-#ifdef ERR_LIB_SSL
+#endif
+#ifdef ERR_LIB_PKCS12
+ {"PKCS12", ERR_LIB_PKCS12},
+#endif
+#ifdef ERR_LIB_PKCS7
+ {"PKCS7", ERR_LIB_PKCS7},
+#endif
+#ifdef ERR_LIB_RAND
+ {"RAND", ERR_LIB_RAND},
+#endif
+#ifdef ERR_LIB_RSA
+ {"RSA", ERR_LIB_RSA},
+#endif
+#ifdef ERR_LIB_SSL
{"SSL", ERR_LIB_SSL},
-#endif
-#ifdef ERR_LIB_TS
- {"TS", ERR_LIB_TS},
-#endif
-#ifdef ERR_LIB_UI
- {"UI", ERR_LIB_UI},
-#endif
-#ifdef ERR_LIB_X509
+#endif
+#ifdef ERR_LIB_TS
+ {"TS", ERR_LIB_TS},
+#endif
+#ifdef ERR_LIB_UI
+ {"UI", ERR_LIB_UI},
+#endif
+#ifdef ERR_LIB_X509
{"X509", ERR_LIB_X509},
-#endif
-#ifdef ERR_LIB_X509V3
- {"X509V3", ERR_LIB_X509V3},
-#endif
+#endif
+#ifdef ERR_LIB_X509V3
+ {"X509V3", ERR_LIB_X509V3},
+#endif
{ NULL }
};
static struct py_ssl_error_code error_codes[] = {
- #ifdef ASN1_R_ADDING_OBJECT
- {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT},
- #else
- {"ADDING_OBJECT", 13, 171},
- #endif
- #ifdef ASN1_R_ASN1_PARSE_ERROR
- {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR},
- #else
- {"ASN1_PARSE_ERROR", 13, 203},
- #endif
- #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR
- {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR},
- #else
- {"ASN1_SIG_PARSE_ERROR", 13, 204},
- #endif
- #ifdef ASN1_R_AUX_ERROR
- {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR},
- #else
- {"AUX_ERROR", 13, 100},
- #endif
- #ifdef ASN1_R_BAD_OBJECT_HEADER
- {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER},
- #else
- {"BAD_OBJECT_HEADER", 13, 102},
- #endif
- #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH
- {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH},
- #else
- {"BMPSTRING_IS_WRONG_LENGTH", 13, 214},
- #endif
- #ifdef ASN1_R_BN_LIB
- {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB},
- #else
- {"BN_LIB", 13, 105},
- #endif
- #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH
- {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH},
- #else
- {"BOOLEAN_IS_WRONG_LENGTH", 13, 106},
- #endif
- #ifdef ASN1_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 13, 107},
- #endif
- #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
- #else
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108},
- #endif
- #ifdef ASN1_R_CONTEXT_NOT_INITIALISED
- {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED},
- #else
- {"CONTEXT_NOT_INITIALISED", 13, 217},
- #endif
- #ifdef ASN1_R_DATA_IS_WRONG
- {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG},
- #else
- {"DATA_IS_WRONG", 13, 109},
- #endif
- #ifdef ASN1_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 13, 110},
- #endif
- #ifdef ASN1_R_DEPTH_EXCEEDED
- {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED},
- #else
- {"DEPTH_EXCEEDED", 13, 174},
- #endif
- #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED
- {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED},
- #else
- {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198},
- #endif
- #ifdef ASN1_R_ENCODE_ERROR
- {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR},
- #else
- {"ENCODE_ERROR", 13, 112},
- #endif
- #ifdef ASN1_R_ERROR_GETTING_TIME
- {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME},
- #else
- {"ERROR_GETTING_TIME", 13, 173},
- #endif
- #ifdef ASN1_R_ERROR_LOADING_SECTION
- {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION},
- #else
- {"ERROR_LOADING_SECTION", 13, 172},
- #endif
- #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS
- {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS},
- #else
- {"ERROR_SETTING_CIPHER_PARAMS", 13, 114},
- #endif
- #ifdef ASN1_R_EXPECTING_AN_INTEGER
- {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER},
- #else
- {"EXPECTING_AN_INTEGER", 13, 115},
- #endif
- #ifdef ASN1_R_EXPECTING_AN_OBJECT
- {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT},
- #else
- {"EXPECTING_AN_OBJECT", 13, 116},
- #endif
- #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH
- {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH},
- #else
- {"EXPLICIT_LENGTH_MISMATCH", 13, 119},
- #endif
- #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED
- {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED},
- #else
- {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120},
- #endif
- #ifdef ASN1_R_FIELD_MISSING
- {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING},
- #else
- {"FIELD_MISSING", 13, 121},
- #endif
- #ifdef ASN1_R_FIRST_NUM_TOO_LARGE
- {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE},
- #else
- {"FIRST_NUM_TOO_LARGE", 13, 122},
- #endif
- #ifdef ASN1_R_HEADER_TOO_LONG
- {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
- #else
- {"HEADER_TOO_LONG", 13, 123},
- #endif
- #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT
- {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT},
- #else
- {"ILLEGAL_BITSTRING_FORMAT", 13, 175},
- #endif
- #ifdef ASN1_R_ILLEGAL_BOOLEAN
- {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN},
- #else
- {"ILLEGAL_BOOLEAN", 13, 176},
- #endif
- #ifdef ASN1_R_ILLEGAL_CHARACTERS
- {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS},
- #else
- {"ILLEGAL_CHARACTERS", 13, 124},
- #endif
- #ifdef ASN1_R_ILLEGAL_FORMAT
- {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT},
- #else
- {"ILLEGAL_FORMAT", 13, 177},
- #endif
- #ifdef ASN1_R_ILLEGAL_HEX
- {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX},
- #else
- {"ILLEGAL_HEX", 13, 178},
- #endif
- #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG
- {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG},
- #else
- {"ILLEGAL_IMPLICIT_TAG", 13, 179},
- #endif
- #ifdef ASN1_R_ILLEGAL_INTEGER
- {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER},
- #else
- {"ILLEGAL_INTEGER", 13, 180},
- #endif
- #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE
- {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE},
- #else
- {"ILLEGAL_NEGATIVE_VALUE", 13, 226},
- #endif
- #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING
- {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING},
- #else
- {"ILLEGAL_NESTED_TAGGING", 13, 181},
- #endif
- #ifdef ASN1_R_ILLEGAL_NULL
- {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL},
- #else
- {"ILLEGAL_NULL", 13, 125},
- #endif
- #ifdef ASN1_R_ILLEGAL_NULL_VALUE
- {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE},
- #else
- {"ILLEGAL_NULL_VALUE", 13, 182},
- #endif
- #ifdef ASN1_R_ILLEGAL_OBJECT
- {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT},
- #else
- {"ILLEGAL_OBJECT", 13, 183},
- #endif
- #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY
- {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY},
- #else
- {"ILLEGAL_OPTIONAL_ANY", 13, 126},
- #endif
- #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE
- {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE},
- #else
- {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170},
- #endif
- #ifdef ASN1_R_ILLEGAL_PADDING
- {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING},
- #else
- {"ILLEGAL_PADDING", 13, 221},
- #endif
- #ifdef ASN1_R_ILLEGAL_TAGGED_ANY
- {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY},
- #else
- {"ILLEGAL_TAGGED_ANY", 13, 127},
- #endif
- #ifdef ASN1_R_ILLEGAL_TIME_VALUE
- {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE},
- #else
- {"ILLEGAL_TIME_VALUE", 13, 184},
- #endif
- #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT
- {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT},
- #else
- {"ILLEGAL_ZERO_CONTENT", 13, 222},
- #endif
- #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT
- {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT},
- #else
- {"INTEGER_NOT_ASCII_FORMAT", 13, 185},
- #endif
- #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG
- {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG},
- #else
- {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128},
- #endif
- #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT
- {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT},
- #else
- {"INVALID_BIT_STRING_BITS_LEFT", 13, 220},
- #endif
- #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH
- {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH},
- #else
- {"INVALID_BMPSTRING_LENGTH", 13, 129},
- #endif
- #ifdef ASN1_R_INVALID_DIGIT
- {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT},
- #else
- {"INVALID_DIGIT", 13, 130},
- #endif
- #ifdef ASN1_R_INVALID_MIME_TYPE
- {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE},
- #else
- {"INVALID_MIME_TYPE", 13, 205},
- #endif
- #ifdef ASN1_R_INVALID_MODIFIER
- {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER},
- #else
- {"INVALID_MODIFIER", 13, 186},
- #endif
- #ifdef ASN1_R_INVALID_NUMBER
- {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER},
- #else
- {"INVALID_NUMBER", 13, 187},
- #endif
- #ifdef ASN1_R_INVALID_OBJECT_ENCODING
- {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING},
- #else
- {"INVALID_OBJECT_ENCODING", 13, 216},
- #endif
- #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS
- {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS},
- #else
- {"INVALID_SCRYPT_PARAMETERS", 13, 227},
- #endif
- #ifdef ASN1_R_INVALID_SEPARATOR
- {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR},
- #else
- {"INVALID_SEPARATOR", 13, 131},
- #endif
- #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE
- {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE},
- #else
- {"INVALID_STRING_TABLE_VALUE", 13, 218},
- #endif
- #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH
- {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH},
- #else
- {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133},
- #endif
- #ifdef ASN1_R_INVALID_UTF8STRING
- {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING},
- #else
- {"INVALID_UTF8STRING", 13, 134},
- #endif
- #ifdef ASN1_R_INVALID_VALUE
- {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE},
- #else
- {"INVALID_VALUE", 13, 219},
- #endif
- #ifdef ASN1_R_LIST_ERROR
- {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR},
- #else
- {"LIST_ERROR", 13, 188},
- #endif
- #ifdef ASN1_R_MIME_NO_CONTENT_TYPE
- {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE},
- #else
- {"MIME_NO_CONTENT_TYPE", 13, 206},
- #endif
- #ifdef ASN1_R_MIME_PARSE_ERROR
- {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR},
- #else
- {"MIME_PARSE_ERROR", 13, 207},
- #endif
- #ifdef ASN1_R_MIME_SIG_PARSE_ERROR
- {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR},
- #else
- {"MIME_SIG_PARSE_ERROR", 13, 208},
- #endif
- #ifdef ASN1_R_MISSING_EOC
- {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC},
- #else
- {"MISSING_EOC", 13, 137},
- #endif
- #ifdef ASN1_R_MISSING_SECOND_NUMBER
- {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER},
- #else
- {"MISSING_SECOND_NUMBER", 13, 138},
- #endif
- #ifdef ASN1_R_MISSING_VALUE
- {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE},
- #else
- {"MISSING_VALUE", 13, 189},
- #endif
- #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL
- {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL},
- #else
- {"MSTRING_NOT_UNIVERSAL", 13, 139},
- #endif
- #ifdef ASN1_R_MSTRING_WRONG_TAG
- {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG},
- #else
- {"MSTRING_WRONG_TAG", 13, 140},
- #endif
- #ifdef ASN1_R_NESTED_ASN1_STRING
- {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING},
- #else
- {"NESTED_ASN1_STRING", 13, 197},
- #endif
- #ifdef ASN1_R_NESTED_TOO_DEEP
- {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP},
- #else
- {"NESTED_TOO_DEEP", 13, 201},
- #endif
- #ifdef ASN1_R_NON_HEX_CHARACTERS
- {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS},
- #else
- {"NON_HEX_CHARACTERS", 13, 141},
- #endif
- #ifdef ASN1_R_NOT_ASCII_FORMAT
- {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT},
- #else
- {"NOT_ASCII_FORMAT", 13, 190},
- #endif
- #ifdef ASN1_R_NOT_ENOUGH_DATA
- {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA},
- #else
- {"NOT_ENOUGH_DATA", 13, 142},
- #endif
- #ifdef ASN1_R_NO_CONTENT_TYPE
- {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE},
- #else
- {"NO_CONTENT_TYPE", 13, 209},
- #endif
- #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE
- {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE},
- #else
- {"NO_MATCHING_CHOICE_TYPE", 13, 143},
- #endif
- #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE
- {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE},
- #else
- {"NO_MULTIPART_BODY_FAILURE", 13, 210},
- #endif
- #ifdef ASN1_R_NO_MULTIPART_BOUNDARY
- {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY},
- #else
- {"NO_MULTIPART_BOUNDARY", 13, 211},
- #endif
- #ifdef ASN1_R_NO_SIG_CONTENT_TYPE
- {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE},
- #else
- {"NO_SIG_CONTENT_TYPE", 13, 212},
- #endif
- #ifdef ASN1_R_NULL_IS_WRONG_LENGTH
- {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH},
- #else
- {"NULL_IS_WRONG_LENGTH", 13, 144},
- #endif
- #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT
- {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT},
- #else
- {"OBJECT_NOT_ASCII_FORMAT", 13, 191},
- #endif
- #ifdef ASN1_R_ODD_NUMBER_OF_CHARS
- {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS},
- #else
- {"ODD_NUMBER_OF_CHARS", 13, 145},
- #endif
- #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE
- {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE},
- #else
- {"SECOND_NUMBER_TOO_LARGE", 13, 147},
- #endif
- #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH
- {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH},
- #else
- {"SEQUENCE_LENGTH_MISMATCH", 13, 148},
- #endif
- #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED
- {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED},
- #else
- {"SEQUENCE_NOT_CONSTRUCTED", 13, 149},
- #endif
- #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG
- {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG},
- #else
- {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192},
- #endif
- #ifdef ASN1_R_SHORT_LINE
- {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE},
- #else
- {"SHORT_LINE", 13, 150},
- #endif
- #ifdef ASN1_R_SIG_INVALID_MIME_TYPE
- {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE},
- #else
- {"SIG_INVALID_MIME_TYPE", 13, 213},
- #endif
- #ifdef ASN1_R_STREAMING_NOT_SUPPORTED
- {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED},
- #else
- {"STREAMING_NOT_SUPPORTED", 13, 202},
- #endif
- #ifdef ASN1_R_STRING_TOO_LONG
- {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG},
- #else
- {"STRING_TOO_LONG", 13, 151},
- #endif
- #ifdef ASN1_R_STRING_TOO_SHORT
- {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT},
- #else
- {"STRING_TOO_SHORT", 13, 152},
- #endif
- #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
- #else
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154},
- #endif
- #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT
- {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT},
- #else
- {"TIME_NOT_ASCII_FORMAT", 13, 193},
- #endif
- #ifdef ASN1_R_TOO_LARGE
- {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE},
- #else
- {"TOO_LARGE", 13, 223},
- #endif
- #ifdef ASN1_R_TOO_LONG
- {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG},
- #else
- {"TOO_LONG", 13, 155},
- #endif
- #ifdef ASN1_R_TOO_SMALL
- {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL},
- #else
- {"TOO_SMALL", 13, 224},
- #endif
- #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED
- {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED},
- #else
- {"TYPE_NOT_CONSTRUCTED", 13, 156},
- #endif
- #ifdef ASN1_R_TYPE_NOT_PRIMITIVE
- {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE},
- #else
- {"TYPE_NOT_PRIMITIVE", 13, 195},
- #endif
- #ifdef ASN1_R_UNEXPECTED_EOC
- {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC},
- #else
- {"UNEXPECTED_EOC", 13, 159},
- #endif
- #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH
- {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH},
- #else
- {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215},
- #endif
- #ifdef ASN1_R_UNKNOWN_FORMAT
- {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT},
- #else
- {"UNKNOWN_FORMAT", 13, 160},
- #endif
- #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM
- {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161},
- #endif
- #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE
- {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE},
- #else
- {"UNKNOWN_OBJECT_TYPE", 13, 162},
- #endif
- #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE
- {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE},
- #else
- {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163},
- #endif
- #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM
- {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM},
- #else
- {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199},
- #endif
- #ifdef ASN1_R_UNKNOWN_TAG
- {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG},
- #else
- {"UNKNOWN_TAG", 13, 194},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE
- {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE},
- #else
- {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 13, 228},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
- #else
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 13, 196},
- #endif
- #ifdef ASN1_R_WRONG_INTEGER_TYPE
- {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
- #else
- {"WRONG_INTEGER_TYPE", 13, 225},
- #endif
- #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE
- {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE},
- #else
- {"WRONG_PUBLIC_KEY_TYPE", 13, 200},
- #endif
- #ifdef ASN1_R_WRONG_TAG
- {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG},
- #else
- {"WRONG_TAG", 13, 168},
- #endif
- #ifdef ASYNC_R_FAILED_TO_SET_POOL
- {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL},
- #else
- {"FAILED_TO_SET_POOL", 51, 101},
- #endif
- #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT
- {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT},
- #else
- {"FAILED_TO_SWAP_CONTEXT", 51, 102},
- #endif
- #ifdef ASYNC_R_INIT_FAILED
- {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED},
- #else
- {"INIT_FAILED", 51, 105},
- #endif
- #ifdef ASYNC_R_INVALID_POOL_SIZE
- {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE},
- #else
- {"INVALID_POOL_SIZE", 51, 103},
- #endif
- #ifdef BIO_R_ACCEPT_ERROR
- {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR},
- #else
- {"ACCEPT_ERROR", 32, 100},
- #endif
- #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET
- {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET},
- #else
- {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141},
- #endif
- #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE
- {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE},
- #else
- {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129},
- #endif
- #ifdef BIO_R_BAD_FOPEN_MODE
- {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE},
- #else
- {"BAD_FOPEN_MODE", 32, 101},
- #endif
- #ifdef BIO_R_BROKEN_PIPE
- {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE},
- #else
- {"BROKEN_PIPE", 32, 124},
- #endif
- #ifdef BIO_R_CONNECT_ERROR
- {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR},
- #else
- {"CONNECT_ERROR", 32, 103},
- #endif
- #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET
- {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET},
- #else
- {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107},
- #endif
- #ifdef BIO_R_GETSOCKNAME_ERROR
- {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR},
- #else
- {"GETSOCKNAME_ERROR", 32, 132},
- #endif
- #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS
- {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS},
- #else
- {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133},
- #endif
- #ifdef BIO_R_GETTING_SOCKTYPE
- {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE},
- #else
- {"GETTING_SOCKTYPE", 32, 134},
- #endif
- #ifdef BIO_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 32, 125},
- #endif
- #ifdef BIO_R_INVALID_SOCKET
- {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET},
- #else
- {"INVALID_SOCKET", 32, 135},
- #endif
- #ifdef BIO_R_IN_USE
- {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE},
- #else
- {"IN_USE", 32, 123},
- #endif
- #ifdef BIO_R_LENGTH_TOO_LONG
- {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG},
- #else
- {"LENGTH_TOO_LONG", 32, 102},
- #endif
- #ifdef BIO_R_LISTEN_V6_ONLY
- {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY},
- #else
- {"LISTEN_V6_ONLY", 32, 136},
- #endif
- #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
- {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
- #else
- {"LOOKUP_RETURNED_NOTHING", 32, 142},
- #endif
- #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE
- {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE},
- #else
- {"MALFORMED_HOST_OR_SERVICE", 32, 130},
- #endif
- #ifdef BIO_R_NBIO_CONNECT_ERROR
- {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR},
- #else
- {"NBIO_CONNECT_ERROR", 32, 110},
- #endif
- #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
- {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
- #else
- {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143},
- #endif
- #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED
- {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED},
- #else
- {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144},
- #endif
- #ifdef BIO_R_NO_PORT_DEFINED
- {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED},
- #else
- {"NO_PORT_DEFINED", 32, 113},
- #endif
- #ifdef BIO_R_NO_SUCH_FILE
- {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE},
- #else
- {"NO_SUCH_FILE", 32, 128},
- #endif
- #ifdef BIO_R_NULL_PARAMETER
- {"NULL_PARAMETER", ERR_LIB_BIO, BIO_R_NULL_PARAMETER},
- #else
- {"NULL_PARAMETER", 32, 115},
- #endif
- #ifdef BIO_R_UNABLE_TO_BIND_SOCKET
- {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET},
- #else
- {"UNABLE_TO_BIND_SOCKET", 32, 117},
- #endif
- #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET
- {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET},
- #else
- {"UNABLE_TO_CREATE_SOCKET", 32, 118},
- #endif
- #ifdef BIO_R_UNABLE_TO_KEEPALIVE
- {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE},
- #else
- {"UNABLE_TO_KEEPALIVE", 32, 137},
- #endif
- #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET
- {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET},
- #else
- {"UNABLE_TO_LISTEN_SOCKET", 32, 119},
- #endif
- #ifdef BIO_R_UNABLE_TO_NODELAY
- {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY},
- #else
- {"UNABLE_TO_NODELAY", 32, 138},
- #endif
- #ifdef BIO_R_UNABLE_TO_REUSEADDR
- {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR},
- #else
- {"UNABLE_TO_REUSEADDR", 32, 139},
- #endif
- #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
- {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
- #else
- {"UNAVAILABLE_IP_FAMILY", 32, 145},
- #endif
- #ifdef BIO_R_UNINITIALIZED
- {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED},
- #else
- {"UNINITIALIZED", 32, 120},
- #endif
- #ifdef BIO_R_UNKNOWN_INFO_TYPE
- {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE},
- #else
- {"UNKNOWN_INFO_TYPE", 32, 140},
- #endif
- #ifdef BIO_R_UNSUPPORTED_IP_FAMILY
- {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY},
- #else
- {"UNSUPPORTED_IP_FAMILY", 32, 146},
- #endif
- #ifdef BIO_R_UNSUPPORTED_METHOD
- {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD},
- #else
- {"UNSUPPORTED_METHOD", 32, 121},
- #endif
- #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY
- {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY},
- #else
- {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131},
- #endif
- #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO
- {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO},
- #else
- {"WRITE_TO_READ_ONLY_BIO", 32, 126},
- #endif
- #ifdef BIO_R_WSASTARTUP
- {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP},
- #else
- {"WSASTARTUP", 32, 122},
- #endif
- #ifdef BN_R_ARG2_LT_ARG3
- {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3},
- #else
- {"ARG2_LT_ARG3", 3, 100},
- #endif
- #ifdef BN_R_BAD_RECIPROCAL
- {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL},
- #else
- {"BAD_RECIPROCAL", 3, 101},
- #endif
- #ifdef BN_R_BIGNUM_TOO_LONG
- {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG},
- #else
- {"BIGNUM_TOO_LONG", 3, 114},
- #endif
- #ifdef BN_R_BITS_TOO_SMALL
- {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL},
- #else
- {"BITS_TOO_SMALL", 3, 118},
- #endif
- #ifdef BN_R_CALLED_WITH_EVEN_MODULUS
- {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS},
- #else
- {"CALLED_WITH_EVEN_MODULUS", 3, 102},
- #endif
- #ifdef BN_R_DIV_BY_ZERO
- {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO},
- #else
- {"DIV_BY_ZERO", 3, 103},
- #endif
- #ifdef BN_R_ENCODING_ERROR
- {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR},
- #else
- {"ENCODING_ERROR", 3, 104},
- #endif
- #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA
- {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA},
- #else
- {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105},
- #endif
- #ifdef BN_R_INPUT_NOT_REDUCED
- {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED},
- #else
- {"INPUT_NOT_REDUCED", 3, 110},
- #endif
- #ifdef BN_R_INVALID_LENGTH
- {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH},
- #else
- {"INVALID_LENGTH", 3, 106},
- #endif
- #ifdef BN_R_INVALID_RANGE
- {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE},
- #else
- {"INVALID_RANGE", 3, 115},
- #endif
- #ifdef BN_R_INVALID_SHIFT
- {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT},
- #else
- {"INVALID_SHIFT", 3, 119},
- #endif
- #ifdef BN_R_NOT_A_SQUARE
- {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE},
- #else
- {"NOT_A_SQUARE", 3, 111},
- #endif
- #ifdef BN_R_NOT_INITIALIZED
- {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED},
- #else
- {"NOT_INITIALIZED", 3, 107},
- #endif
- #ifdef BN_R_NO_INVERSE
- {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE},
- #else
- {"NO_INVERSE", 3, 108},
- #endif
- #ifdef BN_R_NO_SOLUTION
- {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION},
- #else
- {"NO_SOLUTION", 3, 116},
- #endif
- #ifdef BN_R_PRIVATE_KEY_TOO_LARGE
- {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE},
- #else
- {"PRIVATE_KEY_TOO_LARGE", 3, 117},
- #endif
- #ifdef BN_R_P_IS_NOT_PRIME
- {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME},
- #else
- {"P_IS_NOT_PRIME", 3, 112},
- #endif
- #ifdef BN_R_TOO_MANY_ITERATIONS
- {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS},
- #else
- {"TOO_MANY_ITERATIONS", 3, 113},
- #endif
- #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES
- {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES},
- #else
- {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109},
- #endif
- #ifdef CMS_R_ADD_SIGNER_ERROR
- {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR},
- #else
- {"ADD_SIGNER_ERROR", 46, 99},
- #endif
- #ifdef CMS_R_ATTRIBUTE_ERROR
- {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR},
- #else
- {"ATTRIBUTE_ERROR", 46, 161},
- #endif
- #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT
- {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT},
- #else
- {"CERTIFICATE_ALREADY_PRESENT", 46, 175},
- #endif
- #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID
- {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID},
- #else
- {"CERTIFICATE_HAS_NO_KEYID", 46, 160},
- #endif
- #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 46, 100},
- #endif
- #ifdef CMS_R_CIPHER_INITIALISATION_ERROR
- {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR},
- #else
- {"CIPHER_INITIALISATION_ERROR", 46, 101},
- #endif
- #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR
- {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR},
- #else
- {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102},
- #endif
- #ifdef CMS_R_CMS_DATAFINAL_ERROR
- {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR},
- #else
- {"CMS_DATAFINAL_ERROR", 46, 103},
- #endif
- #ifdef CMS_R_CMS_LIB
- {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB},
- #else
- {"CMS_LIB", 46, 104},
- #endif
- #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH
- {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH},
- #else
- {"CONTENTIDENTIFIER_MISMATCH", 46, 170},
- #endif
- #ifdef CMS_R_CONTENT_NOT_FOUND
- {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND},
- #else
- {"CONTENT_NOT_FOUND", 46, 105},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_MISMATCH
- {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH},
- #else
- {"CONTENT_TYPE_MISMATCH", 46, 171},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA
- {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA},
- #else
- {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA
- {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA},
- #else
- {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA
- {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA},
- #else
- {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108},
- #endif
- #ifdef CMS_R_CONTENT_VERIFY_ERROR
- {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR},
- #else
- {"CONTENT_VERIFY_ERROR", 46, 109},
- #endif
- #ifdef CMS_R_CTRL_ERROR
- {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR},
- #else
- {"CTRL_ERROR", 46, 110},
- #endif
- #ifdef CMS_R_CTRL_FAILURE
- {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE},
- #else
- {"CTRL_FAILURE", 46, 111},
- #endif
- #ifdef CMS_R_DECRYPT_ERROR
- {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR},
- #else
- {"DECRYPT_ERROR", 46, 112},
- #endif
- #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY
- {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY},
- #else
- {"ERROR_GETTING_PUBLIC_KEY", 46, 113},
- #endif
- #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE
- {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE},
- #else
- {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114},
- #endif
- #ifdef CMS_R_ERROR_SETTING_KEY
- {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY},
- #else
- {"ERROR_SETTING_KEY", 46, 115},
- #endif
- #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO
- {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO},
- #else
- {"ERROR_SETTING_RECIPIENTINFO", 46, 116},
- #endif
- #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH
- {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH},
- #else
- {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117},
- #endif
- #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER
- {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER},
- #else
- {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176},
- #endif
- #ifdef CMS_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 46, 118},
- #endif
- #ifdef CMS_R_MD_BIO_INIT_ERROR
- {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR},
- #else
- {"MD_BIO_INIT_ERROR", 46, 119},
- #endif
- #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH
- {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH},
- #else
- {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120},
- #endif
- #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH
- {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH},
- #else
- {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_ERROR
- {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR},
- #else
- {"MSGSIGDIGEST_ERROR", 46, 172},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE
- {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE},
- #else
- {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH
- {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH},
- #else
- {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163},
- #endif
- #ifdef CMS_R_NEED_ONE_SIGNER
- {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER},
- #else
- {"NEED_ONE_SIGNER", 46, 164},
- #endif
- #ifdef CMS_R_NOT_A_SIGNED_RECEIPT
- {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT},
- #else
- {"NOT_A_SIGNED_RECEIPT", 46, 165},
- #endif
- #ifdef CMS_R_NOT_ENCRYPTED_DATA
- {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA},
- #else
- {"NOT_ENCRYPTED_DATA", 46, 122},
- #endif
- #ifdef CMS_R_NOT_KEK
- {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK},
- #else
- {"NOT_KEK", 46, 123},
- #endif
- #ifdef CMS_R_NOT_KEY_AGREEMENT
- {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT},
- #else
- {"NOT_KEY_AGREEMENT", 46, 181},
- #endif
- #ifdef CMS_R_NOT_KEY_TRANSPORT
- {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT},
- #else
- {"NOT_KEY_TRANSPORT", 46, 124},
- #endif
- #ifdef CMS_R_NOT_PWRI
- {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI},
- #else
- {"NOT_PWRI", 46, 177},
- #endif
- #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125},
- #endif
- #ifdef CMS_R_NO_CIPHER
- {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER},
- #else
- {"NO_CIPHER", 46, 126},
- #endif
- #ifdef CMS_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 46, 127},
- #endif
- #ifdef CMS_R_NO_CONTENT_TYPE
- {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE},
- #else
- {"NO_CONTENT_TYPE", 46, 173},
- #endif
- #ifdef CMS_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 46, 128},
- #endif
- #ifdef CMS_R_NO_DIGEST_SET
- {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET},
- #else
- {"NO_DIGEST_SET", 46, 129},
- #endif
- #ifdef CMS_R_NO_KEY
- {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY},
- #else
- {"NO_KEY", 46, 130},
- #endif
- #ifdef CMS_R_NO_KEY_OR_CERT
- {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT},
- #else
- {"NO_KEY_OR_CERT", 46, 174},
- #endif
- #ifdef CMS_R_NO_MATCHING_DIGEST
- {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST},
- #else
- {"NO_MATCHING_DIGEST", 46, 131},
- #endif
- #ifdef CMS_R_NO_MATCHING_RECIPIENT
- {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT},
- #else
- {"NO_MATCHING_RECIPIENT", 46, 132},
- #endif
- #ifdef CMS_R_NO_MATCHING_SIGNATURE
- {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE},
- #else
- {"NO_MATCHING_SIGNATURE", 46, 166},
- #endif
- #ifdef CMS_R_NO_MSGSIGDIGEST
- {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST},
- #else
- {"NO_MSGSIGDIGEST", 46, 167},
- #endif
- #ifdef CMS_R_NO_PASSWORD
- {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD},
- #else
- {"NO_PASSWORD", 46, 178},
- #endif
- #ifdef CMS_R_NO_PRIVATE_KEY
- {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY},
- #else
- {"NO_PRIVATE_KEY", 46, 133},
- #endif
- #ifdef CMS_R_NO_PUBLIC_KEY
- {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY},
- #else
- {"NO_PUBLIC_KEY", 46, 134},
- #endif
- #ifdef CMS_R_NO_RECEIPT_REQUEST
- {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST},
- #else
- {"NO_RECEIPT_REQUEST", 46, 168},
- #endif
- #ifdef CMS_R_NO_SIGNERS
- {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS},
- #else
- {"NO_SIGNERS", 46, 135},
- #endif
- #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136},
- #endif
- #ifdef CMS_R_RECEIPT_DECODE_ERROR
- {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR},
- #else
- {"RECEIPT_DECODE_ERROR", 46, 169},
- #endif
- #ifdef CMS_R_RECIPIENT_ERROR
- {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR},
- #else
- {"RECIPIENT_ERROR", 46, 137},
- #endif
- #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138},
- #endif
- #ifdef CMS_R_SIGNFINAL_ERROR
- {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR},
- #else
- {"SIGNFINAL_ERROR", 46, 139},
- #endif
- #ifdef CMS_R_SMIME_TEXT_ERROR
- {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR},
- #else
- {"SMIME_TEXT_ERROR", 46, 140},
- #endif
- #ifdef CMS_R_STORE_INIT_ERROR
- {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR},
- #else
- {"STORE_INIT_ERROR", 46, 141},
- #endif
- #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA
- {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA},
- #else
- {"TYPE_NOT_COMPRESSED_DATA", 46, 142},
- #endif
- #ifdef CMS_R_TYPE_NOT_DATA
- {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA},
- #else
- {"TYPE_NOT_DATA", 46, 143},
- #endif
- #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA
- {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA},
- #else
- {"TYPE_NOT_DIGESTED_DATA", 46, 144},
- #endif
- #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA
- {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA},
- #else
- {"TYPE_NOT_ENCRYPTED_DATA", 46, 145},
- #endif
- #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA
- {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA},
- #else
- {"TYPE_NOT_ENVELOPED_DATA", 46, 146},
- #endif
- #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT
- {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT},
- #else
- {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147},
- #endif
- #ifdef CMS_R_UNKNOWN_CIPHER
- {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER},
- #else
- {"UNKNOWN_CIPHER", 46, 148},
- #endif
- #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM
- {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_DIGEST_ALGORITHM", 46, 149},
- #endif
- #ifdef CMS_R_UNKNOWN_ID
- {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID},
- #else
- {"UNKNOWN_ID", 46, 150},
- #endif
- #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
- #else
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151},
- #endif
- #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 46, 152},
- #endif
- #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM
- {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM},
- #else
- {"UNSUPPORTED_KEK_ALGORITHM", 46, 153},
- #endif
- #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM
- {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM},
- #else
- {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179},
- #endif
- #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
- {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE},
- #else
- {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155},
- #endif
- #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE
- {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE},
- #else
- {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
- #endif
- #ifdef CMS_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 46, 156},
- #endif
- #ifdef CMS_R_UNWRAP_ERROR
- {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR},
- #else
- {"UNWRAP_ERROR", 46, 157},
- #endif
- #ifdef CMS_R_UNWRAP_FAILURE
- {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE},
- #else
- {"UNWRAP_FAILURE", 46, 180},
- #endif
- #ifdef CMS_R_VERIFICATION_FAILURE
- {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE},
- #else
- {"VERIFICATION_FAILURE", 46, 158},
- #endif
- #ifdef CMS_R_WRAP_ERROR
- {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR},
- #else
- {"WRAP_ERROR", 46, 159},
- #endif
- #ifdef COMP_R_ZLIB_DEFLATE_ERROR
- {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
- #else
- {"ZLIB_DEFLATE_ERROR", 41, 99},
- #endif
- #ifdef COMP_R_ZLIB_INFLATE_ERROR
- {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR},
- #else
- {"ZLIB_INFLATE_ERROR", 41, 100},
- #endif
- #ifdef COMP_R_ZLIB_NOT_SUPPORTED
- {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED},
- #else
- {"ZLIB_NOT_SUPPORTED", 41, 101},
- #endif
- #ifdef CONF_R_ERROR_LOADING_DSO
- {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
- #else
- {"ERROR_LOADING_DSO", 14, 110},
- #endif
- #ifdef CONF_R_LIST_CANNOT_BE_NULL
- {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL},
- #else
- {"LIST_CANNOT_BE_NULL", 14, 115},
- #endif
- #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET
- {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET},
- #else
- {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100},
- #endif
- #ifdef CONF_R_MISSING_EQUAL_SIGN
- {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN},
- #else
- {"MISSING_EQUAL_SIGN", 14, 101},
- #endif
- #ifdef CONF_R_MISSING_INIT_FUNCTION
- {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION},
- #else
- {"MISSING_INIT_FUNCTION", 14, 112},
- #endif
- #ifdef CONF_R_MODULE_INITIALIZATION_ERROR
- {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR},
- #else
- {"MODULE_INITIALIZATION_ERROR", 14, 109},
- #endif
- #ifdef CONF_R_NO_CLOSE_BRACE
- {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE},
- #else
- {"NO_CLOSE_BRACE", 14, 102},
- #endif
- #ifdef CONF_R_NO_CONF
- {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF},
- #else
- {"NO_CONF", 14, 105},
- #endif
- #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE
- {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE},
- #else
- {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106},
- #endif
- #ifdef CONF_R_NO_SECTION
- {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION},
- #else
- {"NO_SECTION", 14, 107},
- #endif
- #ifdef CONF_R_NO_SUCH_FILE
- {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE},
- #else
- {"NO_SUCH_FILE", 14, 114},
- #endif
- #ifdef CONF_R_NO_VALUE
- {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE},
- #else
- {"NO_VALUE", 14, 108},
- #endif
- #ifdef CONF_R_NUMBER_TOO_LARGE
- {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE},
- #else
- {"NUMBER_TOO_LARGE", 14, 121},
- #endif
- #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE
- {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE},
- #else
- {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
- #endif
- #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY
- {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY},
- #else
- {"SSL_COMMAND_SECTION_EMPTY", 14, 117},
- #endif
- #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND
- {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND},
- #else
- {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118},
- #endif
- #ifdef CONF_R_SSL_SECTION_EMPTY
- {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY},
- #else
- {"SSL_SECTION_EMPTY", 14, 119},
- #endif
- #ifdef CONF_R_SSL_SECTION_NOT_FOUND
- {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND},
- #else
- {"SSL_SECTION_NOT_FOUND", 14, 120},
- #endif
- #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION
- {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION},
- #else
- {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103},
- #endif
- #ifdef CONF_R_UNKNOWN_MODULE_NAME
- {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME},
- #else
- {"UNKNOWN_MODULE_NAME", 14, 113},
- #endif
- #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG
- {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG},
- #else
- {"VARIABLE_EXPANSION_TOO_LONG", 14, 116},
- #endif
- #ifdef CONF_R_VARIABLE_HAS_NO_VALUE
- {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE},
- #else
- {"VARIABLE_HAS_NO_VALUE", 14, 104},
- #endif
- #ifdef CRYPTO_R_FIPS_MODE_NOT_SUPPORTED
- {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_FIPS_MODE_NOT_SUPPORTED},
- #else
- {"FIPS_MODE_NOT_SUPPORTED", 15, 101},
- #endif
- #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT
- {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT},
- #else
- {"ILLEGAL_HEX_DIGIT", 15, 102},
- #endif
- #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS
- {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS},
- #else
- {"ODD_NUMBER_OF_DIGITS", 15, 103},
- #endif
- #ifdef CT_R_BASE64_DECODE_ERROR
- {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR},
- #else
- {"BASE64_DECODE_ERROR", 50, 108},
- #endif
- #ifdef CT_R_INVALID_LOG_ID_LENGTH
- {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH},
- #else
- {"INVALID_LOG_ID_LENGTH", 50, 100},
- #endif
- #ifdef CT_R_LOG_CONF_INVALID
- {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID},
- #else
- {"LOG_CONF_INVALID", 50, 109},
- #endif
- #ifdef CT_R_LOG_CONF_INVALID_KEY
- {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY},
- #else
- {"LOG_CONF_INVALID_KEY", 50, 110},
- #endif
- #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION
- {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION},
- #else
- {"LOG_CONF_MISSING_DESCRIPTION", 50, 111},
- #endif
- #ifdef CT_R_LOG_CONF_MISSING_KEY
- {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY},
- #else
- {"LOG_CONF_MISSING_KEY", 50, 112},
- #endif
- #ifdef CT_R_LOG_KEY_INVALID
- {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID},
- #else
- {"LOG_KEY_INVALID", 50, 113},
- #endif
- #ifdef CT_R_SCT_FUTURE_TIMESTAMP
- {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP},
- #else
- {"SCT_FUTURE_TIMESTAMP", 50, 116},
- #endif
- #ifdef CT_R_SCT_INVALID
- {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID},
- #else
- {"SCT_INVALID", 50, 104},
- #endif
- #ifdef CT_R_SCT_INVALID_SIGNATURE
- {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE},
- #else
- {"SCT_INVALID_SIGNATURE", 50, 107},
- #endif
- #ifdef CT_R_SCT_LIST_INVALID
- {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID},
- #else
- {"SCT_LIST_INVALID", 50, 105},
- #endif
- #ifdef CT_R_SCT_LOG_ID_MISMATCH
- {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH},
- #else
- {"SCT_LOG_ID_MISMATCH", 50, 114},
- #endif
- #ifdef CT_R_SCT_NOT_SET
- {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET},
- #else
- {"SCT_NOT_SET", 50, 106},
- #endif
- #ifdef CT_R_SCT_UNSUPPORTED_VERSION
- {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION},
- #else
- {"SCT_UNSUPPORTED_VERSION", 50, 115},
- #endif
- #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID
- {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID},
- #else
- {"UNRECOGNIZED_SIGNATURE_NID", 50, 101},
- #endif
- #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE
- {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE},
- #else
- {"UNSUPPORTED_ENTRY_TYPE", 50, 102},
- #endif
- #ifdef CT_R_UNSUPPORTED_VERSION
- {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION},
- #else
- {"UNSUPPORTED_VERSION", 50, 103},
- #endif
- #ifdef DH_R_BAD_GENERATOR
- {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR},
- #else
- {"BAD_GENERATOR", 5, 101},
- #endif
- #ifdef DH_R_BN_DECODE_ERROR
- {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR},
- #else
- {"BN_DECODE_ERROR", 5, 109},
- #endif
- #ifdef DH_R_BN_ERROR
- {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR},
- #else
- {"BN_ERROR", 5, 106},
- #endif
- #ifdef DH_R_CHECK_INVALID_J_VALUE
- {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE},
- #else
- {"CHECK_INVALID_J_VALUE", 5, 115},
- #endif
- #ifdef DH_R_CHECK_INVALID_Q_VALUE
- {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE},
- #else
- {"CHECK_INVALID_Q_VALUE", 5, 116},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_INVALID
- {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID},
- #else
- {"CHECK_PUBKEY_INVALID", 5, 122},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE
- {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE},
- #else
- {"CHECK_PUBKEY_TOO_LARGE", 5, 123},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL
- {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL},
- #else
- {"CHECK_PUBKEY_TOO_SMALL", 5, 124},
- #endif
- #ifdef DH_R_CHECK_P_NOT_PRIME
- {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME},
- #else
- {"CHECK_P_NOT_PRIME", 5, 117},
- #endif
- #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME
- {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME},
- #else
- {"CHECK_P_NOT_SAFE_PRIME", 5, 118},
- #endif
- #ifdef DH_R_CHECK_Q_NOT_PRIME
- {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME},
- #else
- {"CHECK_Q_NOT_PRIME", 5, 119},
- #endif
- #ifdef DH_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 5, 104},
- #endif
- #ifdef DH_R_INVALID_PARAMETER_NAME
- {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME},
- #else
- {"INVALID_PARAMETER_NAME", 5, 110},
- #endif
- #ifdef DH_R_INVALID_PARAMETER_NID
- {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID},
- #else
- {"INVALID_PARAMETER_NID", 5, 114},
- #endif
- #ifdef DH_R_INVALID_PUBKEY
- {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY},
- #else
- {"INVALID_PUBKEY", 5, 102},
- #endif
- #ifdef DH_R_KDF_PARAMETER_ERROR
- {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
- #else
- {"KDF_PARAMETER_ERROR", 5, 112},
- #endif
- #ifdef DH_R_KEYS_NOT_SET
- {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET},
- #else
- {"KEYS_NOT_SET", 5, 108},
- #endif
- #ifdef DH_R_MISSING_PUBKEY
- {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY},
- #else
- {"MISSING_PUBKEY", 5, 125},
- #endif
- #ifdef DH_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 5, 103},
- #endif
- #ifdef DH_R_NOT_SUITABLE_GENERATOR
- {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR},
- #else
- {"NOT_SUITABLE_GENERATOR", 5, 120},
- #endif
- #ifdef DH_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 5, 107},
- #endif
- #ifdef DH_R_NO_PRIVATE_VALUE
- {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE},
- #else
- {"NO_PRIVATE_VALUE", 5, 100},
- #endif
- #ifdef DH_R_PARAMETER_ENCODING_ERROR
- {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR},
- #else
- {"PARAMETER_ENCODING_ERROR", 5, 105},
- #endif
- #ifdef DH_R_PEER_KEY_ERROR
- {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR},
- #else
- {"PEER_KEY_ERROR", 5, 111},
- #endif
- #ifdef DH_R_SHARED_INFO_ERROR
- {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
- #else
- {"SHARED_INFO_ERROR", 5, 113},
- #endif
- #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR
- {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR},
- #else
- {"UNABLE_TO_CHECK_GENERATOR", 5, 121},
- #endif
- #ifdef DSA_R_BAD_Q_VALUE
- {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE},
- #else
- {"BAD_Q_VALUE", 10, 102},
- #endif
- #ifdef DSA_R_BN_DECODE_ERROR
- {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR},
- #else
- {"BN_DECODE_ERROR", 10, 108},
- #endif
- #ifdef DSA_R_BN_ERROR
- {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR},
- #else
- {"BN_ERROR", 10, 109},
- #endif
- #ifdef DSA_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 10, 104},
- #endif
- #ifdef DSA_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 10, 106},
- #endif
- #ifdef DSA_R_INVALID_PARAMETERS
- {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS},
- #else
- {"INVALID_PARAMETERS", 10, 112},
- #endif
- #ifdef DSA_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 10, 101},
- #endif
- #ifdef DSA_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 10, 111},
- #endif
- #ifdef DSA_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 10, 103},
- #endif
- #ifdef DSA_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 10, 107},
- #endif
- #ifdef DSA_R_PARAMETER_ENCODING_ERROR
- {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR},
- #else
- {"PARAMETER_ENCODING_ERROR", 10, 105},
- #endif
- #ifdef DSA_R_Q_NOT_PRIME
- {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME},
- #else
- {"Q_NOT_PRIME", 10, 113},
- #endif
- #ifdef DSA_R_SEED_LEN_SMALL
- {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL},
- #else
- {"SEED_LEN_SMALL", 10, 110},
- #endif
- #ifdef EC_R_ASN1_ERROR
- {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR},
- #else
- {"ASN1_ERROR", 16, 115},
- #endif
- #ifdef EC_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 16, 156},
- #endif
- #ifdef EC_R_BIGNUM_OUT_OF_RANGE
- {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE},
- #else
- {"BIGNUM_OUT_OF_RANGE", 16, 144},
- #endif
- #ifdef EC_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 16, 100},
- #endif
- #ifdef EC_R_CANNOT_INVERT
- {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT},
- #else
- {"CANNOT_INVERT", 16, 165},
- #endif
- #ifdef EC_R_COORDINATES_OUT_OF_RANGE
- {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE},
- #else
- {"COORDINATES_OUT_OF_RANGE", 16, 146},
- #endif
- #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH
- {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH},
- #else
- {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160},
- #endif
- #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING
- {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING},
- #else
- {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159},
- #endif
- #ifdef EC_R_D2I_ECPKPARAMETERS_FAILURE
- {"D2I_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_D2I_ECPKPARAMETERS_FAILURE},
- #else
- {"D2I_ECPKPARAMETERS_FAILURE", 16, 117},
- #endif
- #ifdef EC_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 16, 142},
- #endif
- #ifdef EC_R_DISCRIMINANT_IS_ZERO
- {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO},
- #else
- {"DISCRIMINANT_IS_ZERO", 16, 118},
- #endif
- #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE
- {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE},
- #else
- {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119},
- #endif
- #ifdef EC_R_FIELD_TOO_LARGE
- {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE},
- #else
- {"FIELD_TOO_LARGE", 16, 143},
- #endif
- #ifdef EC_R_GF2M_NOT_SUPPORTED
- {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED},
- #else
- {"GF2M_NOT_SUPPORTED", 16, 147},
- #endif
- #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE
- {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE},
- #else
- {"GROUP2PKPARAMETERS_FAILURE", 16, 120},
- #endif
- #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE
- {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE},
- #else
- {"I2D_ECPKPARAMETERS_FAILURE", 16, 121},
- #endif
- #ifdef EC_R_INCOMPATIBLE_OBJECTS
- {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS},
- #else
- {"INCOMPATIBLE_OBJECTS", 16, 101},
- #endif
- #ifdef EC_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 16, 112},
- #endif
- #ifdef EC_R_INVALID_COMPRESSED_POINT
- {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT},
- #else
- {"INVALID_COMPRESSED_POINT", 16, 110},
- #endif
- #ifdef EC_R_INVALID_COMPRESSION_BIT
- {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT},
- #else
- {"INVALID_COMPRESSION_BIT", 16, 109},
- #endif
- #ifdef EC_R_INVALID_CURVE
- {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE},
- #else
- {"INVALID_CURVE", 16, 141},
- #endif
- #ifdef EC_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 16, 151},
- #endif
- #ifdef EC_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 16, 138},
- #endif
- #ifdef EC_R_INVALID_ENCODING
- {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING},
- #else
- {"INVALID_ENCODING", 16, 102},
- #endif
- #ifdef EC_R_INVALID_FIELD
- {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD},
- #else
- {"INVALID_FIELD", 16, 103},
- #endif
- #ifdef EC_R_INVALID_FORM
- {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM},
- #else
- {"INVALID_FORM", 16, 104},
- #endif
- #ifdef EC_R_INVALID_GROUP_ORDER
- {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER},
- #else
- {"INVALID_GROUP_ORDER", 16, 122},
- #endif
- #ifdef EC_R_INVALID_KEY
- {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY},
- #else
- {"INVALID_KEY", 16, 116},
- #endif
- #ifdef EC_R_INVALID_OUTPUT_LENGTH
- {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH},
- #else
- {"INVALID_OUTPUT_LENGTH", 16, 161},
- #endif
- #ifdef EC_R_INVALID_PEER_KEY
- {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY},
- #else
- {"INVALID_PEER_KEY", 16, 133},
- #endif
- #ifdef EC_R_INVALID_PENTANOMIAL_BASIS
- {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS},
- #else
- {"INVALID_PENTANOMIAL_BASIS", 16, 132},
- #endif
- #ifdef EC_R_INVALID_PRIVATE_KEY
- {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY},
- #else
- {"INVALID_PRIVATE_KEY", 16, 123},
- #endif
- #ifdef EC_R_INVALID_TRINOMIAL_BASIS
- {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS},
- #else
- {"INVALID_TRINOMIAL_BASIS", 16, 137},
- #endif
- #ifdef EC_R_KDF_PARAMETER_ERROR
- {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR},
- #else
- {"KDF_PARAMETER_ERROR", 16, 148},
- #endif
- #ifdef EC_R_KEYS_NOT_SET
- {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET},
- #else
- {"KEYS_NOT_SET", 16, 140},
- #endif
- #ifdef EC_R_LADDER_POST_FAILURE
- {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE},
- #else
- {"LADDER_POST_FAILURE", 16, 136},
- #endif
- #ifdef EC_R_LADDER_PRE_FAILURE
- {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE},
- #else
- {"LADDER_PRE_FAILURE", 16, 153},
- #endif
- #ifdef EC_R_LADDER_STEP_FAILURE
- {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE},
- #else
- {"LADDER_STEP_FAILURE", 16, 162},
- #endif
- #ifdef EC_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 16, 124},
- #endif
- #ifdef EC_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 16, 125},
- #endif
- #ifdef EC_R_NEED_NEW_SETUP_VALUES
- {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES},
- #else
- {"NEED_NEW_SETUP_VALUES", 16, 157},
- #endif
- #ifdef EC_R_NOT_A_NIST_PRIME
- {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME},
- #else
- {"NOT_A_NIST_PRIME", 16, 135},
- #endif
- #ifdef EC_R_NOT_IMPLEMENTED
- {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED},
- #else
- {"NOT_IMPLEMENTED", 16, 126},
- #endif
- #ifdef EC_R_NOT_INITIALIZED
- {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED},
- #else
- {"NOT_INITIALIZED", 16, 111},
- #endif
- #ifdef EC_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 16, 139},
- #endif
- #ifdef EC_R_NO_PRIVATE_VALUE
- {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE},
- #else
- {"NO_PRIVATE_VALUE", 16, 154},
- #endif
- #ifdef EC_R_OPERATION_NOT_SUPPORTED
- {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED},
- #else
- {"OPERATION_NOT_SUPPORTED", 16, 152},
- #endif
- #ifdef EC_R_PASSED_NULL_PARAMETER
- {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER},
- #else
- {"PASSED_NULL_PARAMETER", 16, 134},
- #endif
- #ifdef EC_R_PEER_KEY_ERROR
- {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR},
- #else
- {"PEER_KEY_ERROR", 16, 149},
- #endif
- #ifdef EC_R_PKPARAMETERS2GROUP_FAILURE
- {"PKPARAMETERS2GROUP_FAILURE", ERR_LIB_EC, EC_R_PKPARAMETERS2GROUP_FAILURE},
- #else
- {"PKPARAMETERS2GROUP_FAILURE", 16, 127},
- #endif
- #ifdef EC_R_POINT_ARITHMETIC_FAILURE
- {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE},
- #else
- {"POINT_ARITHMETIC_FAILURE", 16, 155},
- #endif
- #ifdef EC_R_POINT_AT_INFINITY
- {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY},
- #else
- {"POINT_AT_INFINITY", 16, 106},
- #endif
- #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE
- {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE},
- #else
- {"POINT_COORDINATES_BLIND_FAILURE", 16, 163},
- #endif
- #ifdef EC_R_POINT_IS_NOT_ON_CURVE
- {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE},
- #else
- {"POINT_IS_NOT_ON_CURVE", 16, 107},
- #endif
- #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED
- {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED},
- #else
- {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158},
- #endif
- #ifdef EC_R_SHARED_INFO_ERROR
- {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR},
- #else
- {"SHARED_INFO_ERROR", 16, 150},
- #endif
- #ifdef EC_R_SLOT_FULL
- {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL},
- #else
- {"SLOT_FULL", 16, 108},
- #endif
- #ifdef EC_R_UNDEFINED_GENERATOR
- {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR},
- #else
- {"UNDEFINED_GENERATOR", 16, 113},
- #endif
- #ifdef EC_R_UNDEFINED_ORDER
- {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER},
- #else
- {"UNDEFINED_ORDER", 16, 128},
- #endif
- #ifdef EC_R_UNKNOWN_COFACTOR
- {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR},
- #else
- {"UNKNOWN_COFACTOR", 16, 164},
- #endif
- #ifdef EC_R_UNKNOWN_GROUP
- {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP},
- #else
- {"UNKNOWN_GROUP", 16, 129},
- #endif
- #ifdef EC_R_UNKNOWN_ORDER
- {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER},
- #else
- {"UNKNOWN_ORDER", 16, 114},
- #endif
- #ifdef EC_R_UNSUPPORTED_FIELD
- {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD},
- #else
- {"UNSUPPORTED_FIELD", 16, 131},
- #endif
- #ifdef EC_R_WRONG_CURVE_PARAMETERS
- {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS},
- #else
- {"WRONG_CURVE_PARAMETERS", 16, 145},
- #endif
- #ifdef EC_R_WRONG_ORDER
- {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER},
- #else
- {"WRONG_ORDER", 16, 130},
- #endif
- #ifdef ENGINE_R_ALREADY_LOADED
- {"ALREADY_LOADED", ERR_LIB_ENGINE, ENGINE_R_ALREADY_LOADED},
- #else
- {"ALREADY_LOADED", 38, 100},
- #endif
- #ifdef ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER
- {"ARGUMENT_IS_NOT_A_NUMBER", ERR_LIB_ENGINE, ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER},
- #else
- {"ARGUMENT_IS_NOT_A_NUMBER", 38, 133},
- #endif
- #ifdef ENGINE_R_CMD_NOT_EXECUTABLE
- {"CMD_NOT_EXECUTABLE", ERR_LIB_ENGINE, ENGINE_R_CMD_NOT_EXECUTABLE},
- #else
- {"CMD_NOT_EXECUTABLE", 38, 134},
- #endif
- #ifdef ENGINE_R_COMMAND_TAKES_INPUT
- {"COMMAND_TAKES_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_INPUT},
- #else
- {"COMMAND_TAKES_INPUT", 38, 135},
- #endif
- #ifdef ENGINE_R_COMMAND_TAKES_NO_INPUT
- {"COMMAND_TAKES_NO_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_NO_INPUT},
- #else
- {"COMMAND_TAKES_NO_INPUT", 38, 136},
- #endif
- #ifdef ENGINE_R_CONFLICTING_ENGINE_ID
- {"CONFLICTING_ENGINE_ID", ERR_LIB_ENGINE, ENGINE_R_CONFLICTING_ENGINE_ID},
- #else
- {"CONFLICTING_ENGINE_ID", 38, 103},
- #endif
- #ifdef ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED
- {"CTRL_COMMAND_NOT_IMPLEMENTED", ERR_LIB_ENGINE, ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED},
- #else
- {"CTRL_COMMAND_NOT_IMPLEMENTED", 38, 119},
- #endif
- #ifdef ENGINE_R_DSO_FAILURE
- {"DSO_FAILURE", ERR_LIB_ENGINE, ENGINE_R_DSO_FAILURE},
- #else
- {"DSO_FAILURE", 38, 104},
- #endif
- #ifdef ENGINE_R_DSO_NOT_FOUND
- {"DSO_NOT_FOUND", ERR_LIB_ENGINE, ENGINE_R_DSO_NOT_FOUND},
- #else
- {"DSO_NOT_FOUND", 38, 132},
- #endif
- #ifdef ENGINE_R_ENGINES_SECTION_ERROR
- {"ENGINES_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINES_SECTION_ERROR},
- #else
- {"ENGINES_SECTION_ERROR", 38, 148},
- #endif
- #ifdef ENGINE_R_ENGINE_CONFIGURATION_ERROR
- {"ENGINE_CONFIGURATION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_CONFIGURATION_ERROR},
- #else
- {"ENGINE_CONFIGURATION_ERROR", 38, 102},
- #endif
- #ifdef ENGINE_R_ENGINE_IS_NOT_IN_LIST
- {"ENGINE_IS_NOT_IN_LIST", ERR_LIB_ENGINE, ENGINE_R_ENGINE_IS_NOT_IN_LIST},
- #else
- {"ENGINE_IS_NOT_IN_LIST", 38, 105},
- #endif
- #ifdef ENGINE_R_ENGINE_SECTION_ERROR
- {"ENGINE_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_SECTION_ERROR},
- #else
- {"ENGINE_SECTION_ERROR", 38, 149},
- #endif
- #ifdef ENGINE_R_FAILED_LOADING_PRIVATE_KEY
- {"FAILED_LOADING_PRIVATE_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PRIVATE_KEY},
- #else
- {"FAILED_LOADING_PRIVATE_KEY", 38, 128},
- #endif
- #ifdef ENGINE_R_FAILED_LOADING_PUBLIC_KEY
- {"FAILED_LOADING_PUBLIC_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PUBLIC_KEY},
- #else
- {"FAILED_LOADING_PUBLIC_KEY", 38, 129},
- #endif
- #ifdef ENGINE_R_FINISH_FAILED
- {"FINISH_FAILED", ERR_LIB_ENGINE, ENGINE_R_FINISH_FAILED},
- #else
- {"FINISH_FAILED", 38, 106},
- #endif
- #ifdef ENGINE_R_ID_OR_NAME_MISSING
- {"ID_OR_NAME_MISSING", ERR_LIB_ENGINE, ENGINE_R_ID_OR_NAME_MISSING},
- #else
- {"ID_OR_NAME_MISSING", 38, 108},
- #endif
- #ifdef ENGINE_R_INIT_FAILED
- {"INIT_FAILED", ERR_LIB_ENGINE, ENGINE_R_INIT_FAILED},
- #else
- {"INIT_FAILED", 38, 109},
- #endif
- #ifdef ENGINE_R_INTERNAL_LIST_ERROR
- {"INTERNAL_LIST_ERROR", ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR},
- #else
- {"INTERNAL_LIST_ERROR", 38, 110},
- #endif
- #ifdef ENGINE_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_ENGINE, ENGINE_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 38, 143},
- #endif
- #ifdef ENGINE_R_INVALID_CMD_NAME
- {"INVALID_CMD_NAME", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NAME},
- #else
- {"INVALID_CMD_NAME", 38, 137},
- #endif
- #ifdef ENGINE_R_INVALID_CMD_NUMBER
- {"INVALID_CMD_NUMBER", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NUMBER},
- #else
- {"INVALID_CMD_NUMBER", 38, 138},
- #endif
- #ifdef ENGINE_R_INVALID_INIT_VALUE
- {"INVALID_INIT_VALUE", ERR_LIB_ENGINE, ENGINE_R_INVALID_INIT_VALUE},
- #else
- {"INVALID_INIT_VALUE", 38, 151},
- #endif
- #ifdef ENGINE_R_INVALID_STRING
- {"INVALID_STRING", ERR_LIB_ENGINE, ENGINE_R_INVALID_STRING},
- #else
- {"INVALID_STRING", 38, 150},
- #endif
- #ifdef ENGINE_R_NOT_INITIALISED
- {"NOT_INITIALISED", ERR_LIB_ENGINE, ENGINE_R_NOT_INITIALISED},
- #else
- {"NOT_INITIALISED", 38, 117},
- #endif
- #ifdef ENGINE_R_NOT_LOADED
- {"NOT_LOADED", ERR_LIB_ENGINE, ENGINE_R_NOT_LOADED},
- #else
- {"NOT_LOADED", 38, 112},
- #endif
- #ifdef ENGINE_R_NO_CONTROL_FUNCTION
- {"NO_CONTROL_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_CONTROL_FUNCTION},
- #else
- {"NO_CONTROL_FUNCTION", 38, 120},
- #endif
- #ifdef ENGINE_R_NO_INDEX
- {"NO_INDEX", ERR_LIB_ENGINE, ENGINE_R_NO_INDEX},
- #else
- {"NO_INDEX", 38, 144},
- #endif
- #ifdef ENGINE_R_NO_LOAD_FUNCTION
- {"NO_LOAD_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_LOAD_FUNCTION},
- #else
- {"NO_LOAD_FUNCTION", 38, 125},
- #endif
- #ifdef ENGINE_R_NO_REFERENCE
- {"NO_REFERENCE", ERR_LIB_ENGINE, ENGINE_R_NO_REFERENCE},
- #else
- {"NO_REFERENCE", 38, 130},
- #endif
- #ifdef ENGINE_R_NO_SUCH_ENGINE
- {"NO_SUCH_ENGINE", ERR_LIB_ENGINE, ENGINE_R_NO_SUCH_ENGINE},
- #else
- {"NO_SUCH_ENGINE", 38, 116},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_CIPHER
- {"UNIMPLEMENTED_CIPHER", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_CIPHER},
- #else
- {"UNIMPLEMENTED_CIPHER", 38, 146},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_DIGEST
- {"UNIMPLEMENTED_DIGEST", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_DIGEST},
- #else
- {"UNIMPLEMENTED_DIGEST", 38, 147},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD
- {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD},
- #else
- {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", 38, 101},
- #endif
- #ifdef ENGINE_R_VERSION_INCOMPATIBILITY
- {"VERSION_INCOMPATIBILITY", ERR_LIB_ENGINE, ENGINE_R_VERSION_INCOMPATIBILITY},
- #else
- {"VERSION_INCOMPATIBILITY", 38, 145},
- #endif
- #ifdef EVP_R_AES_KEY_SETUP_FAILED
- {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED},
- #else
- {"AES_KEY_SETUP_FAILED", 6, 143},
- #endif
- #ifdef EVP_R_ARIA_KEY_SETUP_FAILED
- {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED},
- #else
- {"ARIA_KEY_SETUP_FAILED", 6, 176},
- #endif
- #ifdef EVP_R_BAD_DECRYPT
- {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT},
- #else
- {"BAD_DECRYPT", 6, 100},
- #endif
- #ifdef EVP_R_BAD_KEY_LENGTH
- {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH},
- #else
- {"BAD_KEY_LENGTH", 6, 195},
- #endif
- #ifdef EVP_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 6, 155},
- #endif
- #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED
- {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED},
- #else
- {"CAMELLIA_KEY_SETUP_FAILED", 6, 157},
- #endif
- #ifdef EVP_R_CIPHER_PARAMETER_ERROR
- {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR},
- #else
- {"CIPHER_PARAMETER_ERROR", 6, 122},
- #endif
- #ifdef EVP_R_COMMAND_NOT_SUPPORTED
- {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED},
- #else
- {"COMMAND_NOT_SUPPORTED", 6, 147},
- #endif
- #ifdef EVP_R_COPY_ERROR
- {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR},
- #else
- {"COPY_ERROR", 6, 173},
- #endif
- #ifdef EVP_R_CTRL_NOT_IMPLEMENTED
- {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED},
- #else
- {"CTRL_NOT_IMPLEMENTED", 6, 132},
- #endif
- #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED
- {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED},
- #else
- {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133},
- #endif
- #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH
- {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH},
- #else
- {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138},
- #endif
- #ifdef EVP_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 6, 114},
- #endif
- #ifdef EVP_R_DIFFERENT_KEY_TYPES
- {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES},
- #else
- {"DIFFERENT_KEY_TYPES", 6, 101},
- #endif
- #ifdef EVP_R_DIFFERENT_PARAMETERS
- {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS},
- #else
- {"DIFFERENT_PARAMETERS", 6, 153},
- #endif
- #ifdef EVP_R_ERROR_LOADING_SECTION
- {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION},
- #else
- {"ERROR_LOADING_SECTION", 6, 165},
- #endif
- #ifdef EVP_R_ERROR_SETTING_FIPS_MODE
- {"ERROR_SETTING_FIPS_MODE", ERR_LIB_EVP, EVP_R_ERROR_SETTING_FIPS_MODE},
- #else
- {"ERROR_SETTING_FIPS_MODE", 6, 166},
- #endif
- #ifdef EVP_R_EXPECTING_AN_HMAC_KEY
- {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY},
- #else
- {"EXPECTING_AN_HMAC_KEY", 6, 174},
- #endif
- #ifdef EVP_R_EXPECTING_AN_RSA_KEY
- {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY},
- #else
- {"EXPECTING_AN_RSA_KEY", 6, 127},
- #endif
- #ifdef EVP_R_EXPECTING_A_DH_KEY
- {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY},
- #else
- {"EXPECTING_A_DH_KEY", 6, 128},
- #endif
- #ifdef EVP_R_EXPECTING_A_DSA_KEY
- {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY},
- #else
- {"EXPECTING_A_DSA_KEY", 6, 129},
- #endif
- #ifdef EVP_R_EXPECTING_A_EC_KEY
- {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY},
- #else
- {"EXPECTING_A_EC_KEY", 6, 142},
- #endif
- #ifdef EVP_R_EXPECTING_A_POLY1305_KEY
- {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY},
- #else
- {"EXPECTING_A_POLY1305_KEY", 6, 164},
- #endif
- #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY
- {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY},
- #else
- {"EXPECTING_A_SIPHASH_KEY", 6, 175},
- #endif
- #ifdef EVP_R_FIPS_MODE_NOT_SUPPORTED
- {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_FIPS_MODE_NOT_SUPPORTED},
- #else
- {"FIPS_MODE_NOT_SUPPORTED", 6, 167},
- #endif
- #ifdef EVP_R_GET_RAW_KEY_FAILED
- {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
- #else
- {"GET_RAW_KEY_FAILED", 6, 182},
- #endif
- #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS
- {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS},
- #else
- {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171},
- #endif
- #ifdef EVP_R_INITIALIZATION_ERROR
- {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR},
- #else
- {"INITIALIZATION_ERROR", 6, 134},
- #endif
- #ifdef EVP_R_INPUT_NOT_INITIALIZED
- {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED},
- #else
- {"INPUT_NOT_INITIALIZED", 6, 111},
- #endif
- #ifdef EVP_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 6, 152},
- #endif
- #ifdef EVP_R_INVALID_FIPS_MODE
- {"INVALID_FIPS_MODE", ERR_LIB_EVP, EVP_R_INVALID_FIPS_MODE},
- #else
- {"INVALID_FIPS_MODE", 6, 168},
- #endif
- #ifdef EVP_R_INVALID_IV_LENGTH
- {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH},
- #else
- {"INVALID_IV_LENGTH", 6, 194},
- #endif
- #ifdef EVP_R_INVALID_KEY
- {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY},
- #else
- {"INVALID_KEY", 6, 163},
- #endif
- #ifdef EVP_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 6, 130},
- #endif
- #ifdef EVP_R_INVALID_OPERATION
- {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION},
- #else
- {"INVALID_OPERATION", 6, 148},
- #endif
- #ifdef EVP_R_KEYGEN_FAILURE
- {"KEYGEN_FAILURE", ERR_LIB_EVP, EVP_R_KEYGEN_FAILURE},
- #else
- {"KEYGEN_FAILURE", 6, 120},
- #endif
- #ifdef EVP_R_KEY_SETUP_FAILED
- {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED},
- #else
- {"KEY_SETUP_FAILED", 6, 180},
- #endif
- #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED
- {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED},
- #else
- {"MEMORY_LIMIT_EXCEEDED", 6, 172},
- #endif
- #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL
- {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL},
- #else
- {"MESSAGE_DIGEST_IS_NULL", 6, 159},
- #endif
- #ifdef EVP_R_METHOD_NOT_SUPPORTED
- {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED},
- #else
- {"METHOD_NOT_SUPPORTED", 6, 144},
- #endif
- #ifdef EVP_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 6, 103},
- #endif
- #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH
- {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH},
- #else
- {"NOT_XOF_OR_INVALID_LENGTH", 6, 178},
- #endif
- #ifdef EVP_R_NO_CIPHER_SET
- {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET},
- #else
- {"NO_CIPHER_SET", 6, 131},
- #endif
- #ifdef EVP_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 6, 158},
- #endif
- #ifdef EVP_R_NO_DIGEST_SET
- {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET},
- #else
- {"NO_DIGEST_SET", 6, 139},
- #endif
- #ifdef EVP_R_NO_KEY_SET
- {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET},
- #else
- {"NO_KEY_SET", 6, 154},
- #endif
- #ifdef EVP_R_NO_OPERATION_SET
- {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET},
- #else
- {"NO_OPERATION_SET", 6, 149},
- #endif
- #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED
- {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED},
- #else
- {"ONLY_ONESHOT_SUPPORTED", 6, 177},
- #endif
- #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
- #endif
- #ifdef EVP_R_OPERATON_NOT_INITIALIZED
- {"OPERATON_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATON_NOT_INITIALIZED},
- #else
- {"OPERATON_NOT_INITIALIZED", 6, 151},
- #endif
- #ifdef EVP_R_PARTIALLY_OVERLAPPING
- {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING},
- #else
- {"PARTIALLY_OVERLAPPING", 6, 162},
- #endif
- #ifdef EVP_R_PBKDF2_ERROR
- {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR},
- #else
- {"PBKDF2_ERROR", 6, 181},
- #endif
- #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED
- {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED},
- #else
- {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179},
- #endif
- #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR
- {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR},
- #else
- {"PRIVATE_KEY_DECODE_ERROR", 6, 145},
- #endif
- #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR
- {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR},
- #else
- {"PRIVATE_KEY_ENCODE_ERROR", 6, 146},
- #endif
- #ifdef EVP_R_PUBLIC_KEY_NOT_RSA
- {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA},
- #else
- {"PUBLIC_KEY_NOT_RSA", 6, 106},
- #endif
- #ifdef EVP_R_UNKNOWN_CIPHER
- {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
- #else
- {"UNKNOWN_CIPHER", 6, 160},
- #endif
- #ifdef EVP_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 6, 161},
- #endif
- #ifdef EVP_R_UNKNOWN_OPTION
- {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
- #else
- {"UNKNOWN_OPTION", 6, 169},
- #endif
- #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM
- {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM},
- #else
- {"UNKNOWN_PBE_ALGORITHM", 6, 121},
- #endif
- #ifdef EVP_R_UNSUPPORTED_ALGORITHM
- {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
- #else
- {"UNSUPPORTED_ALGORITHM", 6, 156},
- #endif
- #ifdef EVP_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 6, 107},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEYLENGTH
- {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH},
- #else
- {"UNSUPPORTED_KEYLENGTH", 6, 123},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION
- {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION},
- #else
- {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEY_SIZE
- {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE},
- #else
- {"UNSUPPORTED_KEY_SIZE", 6, 108},
- #endif
- #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
- #else
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135},
- #endif
- #ifdef EVP_R_UNSUPPORTED_PRF
- {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF},
- #else
- {"UNSUPPORTED_PRF", 6, 125},
- #endif
- #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM
- {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM},
- #else
- {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118},
- #endif
- #ifdef EVP_R_UNSUPPORTED_SALT_TYPE
- {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE},
- #else
- {"UNSUPPORTED_SALT_TYPE", 6, 126},
- #endif
- #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED
- {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED},
- #else
- {"WRAP_MODE_NOT_ALLOWED", 6, 170},
- #endif
- #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH
- {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH},
- #else
- {"WRONG_FINAL_BLOCK_LENGTH", 6, 109},
- #endif
- #ifdef EVP_R_XTS_DUPLICATED_KEYS
- {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS},
- #else
- {"XTS_DUPLICATED_KEYS", 6, 183},
- #endif
- #ifdef KDF_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_KDF, KDF_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 52, 100},
- #endif
- #ifdef KDF_R_MISSING_ITERATION_COUNT
- {"MISSING_ITERATION_COUNT", ERR_LIB_KDF, KDF_R_MISSING_ITERATION_COUNT},
- #else
- {"MISSING_ITERATION_COUNT", 52, 109},
- #endif
- #ifdef KDF_R_MISSING_KEY
- {"MISSING_KEY", ERR_LIB_KDF, KDF_R_MISSING_KEY},
- #else
- {"MISSING_KEY", 52, 104},
- #endif
- #ifdef KDF_R_MISSING_MESSAGE_DIGEST
- {"MISSING_MESSAGE_DIGEST", ERR_LIB_KDF, KDF_R_MISSING_MESSAGE_DIGEST},
- #else
- {"MISSING_MESSAGE_DIGEST", 52, 105},
- #endif
- #ifdef KDF_R_MISSING_PARAMETER
- {"MISSING_PARAMETER", ERR_LIB_KDF, KDF_R_MISSING_PARAMETER},
- #else
- {"MISSING_PARAMETER", 52, 101},
- #endif
- #ifdef KDF_R_MISSING_PASS
- {"MISSING_PASS", ERR_LIB_KDF, KDF_R_MISSING_PASS},
- #else
- {"MISSING_PASS", 52, 110},
- #endif
- #ifdef KDF_R_MISSING_SALT
- {"MISSING_SALT", ERR_LIB_KDF, KDF_R_MISSING_SALT},
- #else
- {"MISSING_SALT", 52, 111},
- #endif
- #ifdef KDF_R_MISSING_SECRET
- {"MISSING_SECRET", ERR_LIB_KDF, KDF_R_MISSING_SECRET},
- #else
- {"MISSING_SECRET", 52, 107},
- #endif
- #ifdef KDF_R_MISSING_SEED
- {"MISSING_SEED", ERR_LIB_KDF, KDF_R_MISSING_SEED},
- #else
- {"MISSING_SEED", 52, 106},
- #endif
- #ifdef KDF_R_UNKNOWN_PARAMETER_TYPE
- {"UNKNOWN_PARAMETER_TYPE", ERR_LIB_KDF, KDF_R_UNKNOWN_PARAMETER_TYPE},
- #else
- {"UNKNOWN_PARAMETER_TYPE", 52, 103},
- #endif
- #ifdef KDF_R_VALUE_ERROR
- {"VALUE_ERROR", ERR_LIB_KDF, KDF_R_VALUE_ERROR},
- #else
- {"VALUE_ERROR", 52, 108},
- #endif
- #ifdef KDF_R_VALUE_MISSING
- {"VALUE_MISSING", ERR_LIB_KDF, KDF_R_VALUE_MISSING},
- #else
- {"VALUE_MISSING", 52, 102},
- #endif
- #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 39, 101},
- #endif
- #ifdef OCSP_R_DIGEST_ERR
- {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR},
- #else
- {"DIGEST_ERR", 39, 102},
- #endif
- #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD
- {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD},
- #else
- {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122},
- #endif
- #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD
- {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD},
- #else
- {"ERROR_IN_THISUPDATE_FIELD", 39, 123},
- #endif
- #ifdef OCSP_R_ERROR_PARSING_URL
- {"ERROR_PARSING_URL", ERR_LIB_OCSP, OCSP_R_ERROR_PARSING_URL},
- #else
- {"ERROR_PARSING_URL", 39, 121},
- #endif
- #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE
- {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE},
- #else
- {"MISSING_OCSPSIGNING_USAGE", 39, 103},
- #endif
- #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE
- {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE},
- #else
- {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124},
- #endif
- #ifdef OCSP_R_NOT_BASIC_RESPONSE
- {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE},
- #else
- {"NOT_BASIC_RESPONSE", 39, 104},
- #endif
- #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN
- {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN},
- #else
- {"NO_CERTIFICATES_IN_CHAIN", 39, 105},
- #endif
- #ifdef OCSP_R_NO_RESPONSE_DATA
- {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA},
- #else
- {"NO_RESPONSE_DATA", 39, 108},
- #endif
- #ifdef OCSP_R_NO_REVOKED_TIME
- {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME},
- #else
- {"NO_REVOKED_TIME", 39, 109},
- #endif
- #ifdef OCSP_R_NO_SIGNER_KEY
- {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY},
- #else
- {"NO_SIGNER_KEY", 39, 130},
- #endif
- #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110},
- #endif
- #ifdef OCSP_R_REQUEST_NOT_SIGNED
- {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED},
- #else
- {"REQUEST_NOT_SIGNED", 39, 128},
- #endif
- #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA
- {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA},
- #else
- {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111},
- #endif
- #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED
- {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED},
- #else
- {"ROOT_CA_NOT_TRUSTED", 39, 112},
- #endif
- #ifdef OCSP_R_SERVER_RESPONSE_ERROR
- {"SERVER_RESPONSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_ERROR},
- #else
- {"SERVER_RESPONSE_ERROR", 39, 114},
- #endif
- #ifdef OCSP_R_SERVER_RESPONSE_PARSE_ERROR
- {"SERVER_RESPONSE_PARSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_PARSE_ERROR},
- #else
- {"SERVER_RESPONSE_PARSE_ERROR", 39, 115},
- #endif
- #ifdef OCSP_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 39, 117},
- #endif
- #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118},
- #endif
- #ifdef OCSP_R_STATUS_EXPIRED
- {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED},
- #else
- {"STATUS_EXPIRED", 39, 125},
- #endif
- #ifdef OCSP_R_STATUS_NOT_YET_VALID
- {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID},
- #else
- {"STATUS_NOT_YET_VALID", 39, 126},
- #endif
- #ifdef OCSP_R_STATUS_TOO_OLD
- {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD},
- #else
- {"STATUS_TOO_OLD", 39, 127},
- #endif
- #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST
- {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST},
- #else
- {"UNKNOWN_MESSAGE_DIGEST", 39, 119},
- #endif
- #ifdef OCSP_R_UNKNOWN_NID
- {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID},
- #else
- {"UNKNOWN_NID", 39, 120},
- #endif
- #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE
- {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE},
- #else
- {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129},
- #endif
+ #ifdef ASN1_R_ADDING_OBJECT
+ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT},
+ #else
+ {"ADDING_OBJECT", 13, 171},
+ #endif
+ #ifdef ASN1_R_ASN1_PARSE_ERROR
+ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR},
+ #else
+ {"ASN1_PARSE_ERROR", 13, 203},
+ #endif
+ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR
+ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR},
+ #else
+ {"ASN1_SIG_PARSE_ERROR", 13, 204},
+ #endif
+ #ifdef ASN1_R_AUX_ERROR
+ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR},
+ #else
+ {"AUX_ERROR", 13, 100},
+ #endif
+ #ifdef ASN1_R_BAD_OBJECT_HEADER
+ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER},
+ #else
+ {"BAD_OBJECT_HEADER", 13, 102},
+ #endif
+ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH
+ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH},
+ #else
+ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214},
+ #endif
+ #ifdef ASN1_R_BN_LIB
+ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB},
+ #else
+ {"BN_LIB", 13, 105},
+ #endif
+ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH
+ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH},
+ #else
+ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106},
+ #endif
+ #ifdef ASN1_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 13, 107},
+ #endif
+ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
+ #else
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108},
+ #endif
+ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED
+ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED},
+ #else
+ {"CONTEXT_NOT_INITIALISED", 13, 217},
+ #endif
+ #ifdef ASN1_R_DATA_IS_WRONG
+ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG},
+ #else
+ {"DATA_IS_WRONG", 13, 109},
+ #endif
+ #ifdef ASN1_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 13, 110},
+ #endif
+ #ifdef ASN1_R_DEPTH_EXCEEDED
+ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED},
+ #else
+ {"DEPTH_EXCEEDED", 13, 174},
+ #endif
+ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED
+ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED},
+ #else
+ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198},
+ #endif
+ #ifdef ASN1_R_ENCODE_ERROR
+ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR},
+ #else
+ {"ENCODE_ERROR", 13, 112},
+ #endif
+ #ifdef ASN1_R_ERROR_GETTING_TIME
+ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME},
+ #else
+ {"ERROR_GETTING_TIME", 13, 173},
+ #endif
+ #ifdef ASN1_R_ERROR_LOADING_SECTION
+ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION},
+ #else
+ {"ERROR_LOADING_SECTION", 13, 172},
+ #endif
+ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS
+ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS},
+ #else
+ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114},
+ #endif
+ #ifdef ASN1_R_EXPECTING_AN_INTEGER
+ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER},
+ #else
+ {"EXPECTING_AN_INTEGER", 13, 115},
+ #endif
+ #ifdef ASN1_R_EXPECTING_AN_OBJECT
+ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT},
+ #else
+ {"EXPECTING_AN_OBJECT", 13, 116},
+ #endif
+ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH
+ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH},
+ #else
+ {"EXPLICIT_LENGTH_MISMATCH", 13, 119},
+ #endif
+ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED
+ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED},
+ #else
+ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120},
+ #endif
+ #ifdef ASN1_R_FIELD_MISSING
+ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING},
+ #else
+ {"FIELD_MISSING", 13, 121},
+ #endif
+ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE
+ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE},
+ #else
+ {"FIRST_NUM_TOO_LARGE", 13, 122},
+ #endif
+ #ifdef ASN1_R_HEADER_TOO_LONG
+ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
+ #else
+ {"HEADER_TOO_LONG", 13, 123},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT
+ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT},
+ #else
+ {"ILLEGAL_BITSTRING_FORMAT", 13, 175},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_BOOLEAN
+ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN},
+ #else
+ {"ILLEGAL_BOOLEAN", 13, 176},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_CHARACTERS
+ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS},
+ #else
+ {"ILLEGAL_CHARACTERS", 13, 124},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_FORMAT
+ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT},
+ #else
+ {"ILLEGAL_FORMAT", 13, 177},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_HEX
+ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX},
+ #else
+ {"ILLEGAL_HEX", 13, 178},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG
+ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG},
+ #else
+ {"ILLEGAL_IMPLICIT_TAG", 13, 179},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_INTEGER
+ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER},
+ #else
+ {"ILLEGAL_INTEGER", 13, 180},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE
+ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE},
+ #else
+ {"ILLEGAL_NEGATIVE_VALUE", 13, 226},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING
+ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING},
+ #else
+ {"ILLEGAL_NESTED_TAGGING", 13, 181},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NULL
+ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL},
+ #else
+ {"ILLEGAL_NULL", 13, 125},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NULL_VALUE
+ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE},
+ #else
+ {"ILLEGAL_NULL_VALUE", 13, 182},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OBJECT
+ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT},
+ #else
+ {"ILLEGAL_OBJECT", 13, 183},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY
+ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY},
+ #else
+ {"ILLEGAL_OPTIONAL_ANY", 13, 126},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE
+ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE},
+ #else
+ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_PADDING
+ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING},
+ #else
+ {"ILLEGAL_PADDING", 13, 221},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY
+ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY},
+ #else
+ {"ILLEGAL_TAGGED_ANY", 13, 127},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_TIME_VALUE
+ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE},
+ #else
+ {"ILLEGAL_TIME_VALUE", 13, 184},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT
+ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT},
+ #else
+ {"ILLEGAL_ZERO_CONTENT", 13, 222},
+ #endif
+ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT
+ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT},
+ #else
+ {"INTEGER_NOT_ASCII_FORMAT", 13, 185},
+ #endif
+ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG
+ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG},
+ #else
+ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128},
+ #endif
+ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT
+ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT},
+ #else
+ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220},
+ #endif
+ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH
+ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH},
+ #else
+ {"INVALID_BMPSTRING_LENGTH", 13, 129},
+ #endif
+ #ifdef ASN1_R_INVALID_DIGIT
+ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT},
+ #else
+ {"INVALID_DIGIT", 13, 130},
+ #endif
+ #ifdef ASN1_R_INVALID_MIME_TYPE
+ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE},
+ #else
+ {"INVALID_MIME_TYPE", 13, 205},
+ #endif
+ #ifdef ASN1_R_INVALID_MODIFIER
+ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER},
+ #else
+ {"INVALID_MODIFIER", 13, 186},
+ #endif
+ #ifdef ASN1_R_INVALID_NUMBER
+ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER},
+ #else
+ {"INVALID_NUMBER", 13, 187},
+ #endif
+ #ifdef ASN1_R_INVALID_OBJECT_ENCODING
+ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING},
+ #else
+ {"INVALID_OBJECT_ENCODING", 13, 216},
+ #endif
+ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS
+ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS},
+ #else
+ {"INVALID_SCRYPT_PARAMETERS", 13, 227},
+ #endif
+ #ifdef ASN1_R_INVALID_SEPARATOR
+ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR},
+ #else
+ {"INVALID_SEPARATOR", 13, 131},
+ #endif
+ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE
+ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE},
+ #else
+ {"INVALID_STRING_TABLE_VALUE", 13, 218},
+ #endif
+ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH
+ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH},
+ #else
+ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133},
+ #endif
+ #ifdef ASN1_R_INVALID_UTF8STRING
+ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING},
+ #else
+ {"INVALID_UTF8STRING", 13, 134},
+ #endif
+ #ifdef ASN1_R_INVALID_VALUE
+ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE},
+ #else
+ {"INVALID_VALUE", 13, 219},
+ #endif
+ #ifdef ASN1_R_LIST_ERROR
+ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR},
+ #else
+ {"LIST_ERROR", 13, 188},
+ #endif
+ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE
+ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE},
+ #else
+ {"MIME_NO_CONTENT_TYPE", 13, 206},
+ #endif
+ #ifdef ASN1_R_MIME_PARSE_ERROR
+ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR},
+ #else
+ {"MIME_PARSE_ERROR", 13, 207},
+ #endif
+ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR
+ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR},
+ #else
+ {"MIME_SIG_PARSE_ERROR", 13, 208},
+ #endif
+ #ifdef ASN1_R_MISSING_EOC
+ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC},
+ #else
+ {"MISSING_EOC", 13, 137},
+ #endif
+ #ifdef ASN1_R_MISSING_SECOND_NUMBER
+ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER},
+ #else
+ {"MISSING_SECOND_NUMBER", 13, 138},
+ #endif
+ #ifdef ASN1_R_MISSING_VALUE
+ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE},
+ #else
+ {"MISSING_VALUE", 13, 189},
+ #endif
+ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL
+ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL},
+ #else
+ {"MSTRING_NOT_UNIVERSAL", 13, 139},
+ #endif
+ #ifdef ASN1_R_MSTRING_WRONG_TAG
+ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG},
+ #else
+ {"MSTRING_WRONG_TAG", 13, 140},
+ #endif
+ #ifdef ASN1_R_NESTED_ASN1_STRING
+ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING},
+ #else
+ {"NESTED_ASN1_STRING", 13, 197},
+ #endif
+ #ifdef ASN1_R_NESTED_TOO_DEEP
+ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP},
+ #else
+ {"NESTED_TOO_DEEP", 13, 201},
+ #endif
+ #ifdef ASN1_R_NON_HEX_CHARACTERS
+ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS},
+ #else
+ {"NON_HEX_CHARACTERS", 13, 141},
+ #endif
+ #ifdef ASN1_R_NOT_ASCII_FORMAT
+ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT},
+ #else
+ {"NOT_ASCII_FORMAT", 13, 190},
+ #endif
+ #ifdef ASN1_R_NOT_ENOUGH_DATA
+ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA},
+ #else
+ {"NOT_ENOUGH_DATA", 13, 142},
+ #endif
+ #ifdef ASN1_R_NO_CONTENT_TYPE
+ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE},
+ #else
+ {"NO_CONTENT_TYPE", 13, 209},
+ #endif
+ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE
+ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE},
+ #else
+ {"NO_MATCHING_CHOICE_TYPE", 13, 143},
+ #endif
+ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE
+ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE},
+ #else
+ {"NO_MULTIPART_BODY_FAILURE", 13, 210},
+ #endif
+ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY
+ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY},
+ #else
+ {"NO_MULTIPART_BOUNDARY", 13, 211},
+ #endif
+ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE
+ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE},
+ #else
+ {"NO_SIG_CONTENT_TYPE", 13, 212},
+ #endif
+ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH
+ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH},
+ #else
+ {"NULL_IS_WRONG_LENGTH", 13, 144},
+ #endif
+ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT
+ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT},
+ #else
+ {"OBJECT_NOT_ASCII_FORMAT", 13, 191},
+ #endif
+ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS
+ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS},
+ #else
+ {"ODD_NUMBER_OF_CHARS", 13, 145},
+ #endif
+ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE
+ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE},
+ #else
+ {"SECOND_NUMBER_TOO_LARGE", 13, 147},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH
+ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH},
+ #else
+ {"SEQUENCE_LENGTH_MISMATCH", 13, 148},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED
+ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED},
+ #else
+ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG
+ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG},
+ #else
+ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192},
+ #endif
+ #ifdef ASN1_R_SHORT_LINE
+ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE},
+ #else
+ {"SHORT_LINE", 13, 150},
+ #endif
+ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE
+ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE},
+ #else
+ {"SIG_INVALID_MIME_TYPE", 13, 213},
+ #endif
+ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED
+ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED},
+ #else
+ {"STREAMING_NOT_SUPPORTED", 13, 202},
+ #endif
+ #ifdef ASN1_R_STRING_TOO_LONG
+ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG},
+ #else
+ {"STRING_TOO_LONG", 13, 151},
+ #endif
+ #ifdef ASN1_R_STRING_TOO_SHORT
+ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT},
+ #else
+ {"STRING_TOO_SHORT", 13, 152},
+ #endif
+ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
+ #else
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154},
+ #endif
+ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT
+ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT},
+ #else
+ {"TIME_NOT_ASCII_FORMAT", 13, 193},
+ #endif
+ #ifdef ASN1_R_TOO_LARGE
+ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE},
+ #else
+ {"TOO_LARGE", 13, 223},
+ #endif
+ #ifdef ASN1_R_TOO_LONG
+ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG},
+ #else
+ {"TOO_LONG", 13, 155},
+ #endif
+ #ifdef ASN1_R_TOO_SMALL
+ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL},
+ #else
+ {"TOO_SMALL", 13, 224},
+ #endif
+ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED
+ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED},
+ #else
+ {"TYPE_NOT_CONSTRUCTED", 13, 156},
+ #endif
+ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE
+ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE},
+ #else
+ {"TYPE_NOT_PRIMITIVE", 13, 195},
+ #endif
+ #ifdef ASN1_R_UNEXPECTED_EOC
+ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC},
+ #else
+ {"UNEXPECTED_EOC", 13, 159},
+ #endif
+ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH
+ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH},
+ #else
+ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_FORMAT
+ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT},
+ #else
+ {"UNKNOWN_FORMAT", 13, 160},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM
+ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE
+ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE},
+ #else
+ {"UNKNOWN_OBJECT_TYPE", 13, 162},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE
+ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE},
+ #else
+ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM
+ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM},
+ #else
+ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_TAG
+ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG},
+ #else
+ {"UNKNOWN_TAG", 13, 194},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE
+ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE},
+ #else
+ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 13, 228},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
+ #else
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 13, 196},
+ #endif
+ #ifdef ASN1_R_WRONG_INTEGER_TYPE
+ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
+ #else
+ {"WRONG_INTEGER_TYPE", 13, 225},
+ #endif
+ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE
+ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE},
+ #else
+ {"WRONG_PUBLIC_KEY_TYPE", 13, 200},
+ #endif
+ #ifdef ASN1_R_WRONG_TAG
+ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG},
+ #else
+ {"WRONG_TAG", 13, 168},
+ #endif
+ #ifdef ASYNC_R_FAILED_TO_SET_POOL
+ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL},
+ #else
+ {"FAILED_TO_SET_POOL", 51, 101},
+ #endif
+ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT
+ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT},
+ #else
+ {"FAILED_TO_SWAP_CONTEXT", 51, 102},
+ #endif
+ #ifdef ASYNC_R_INIT_FAILED
+ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED},
+ #else
+ {"INIT_FAILED", 51, 105},
+ #endif
+ #ifdef ASYNC_R_INVALID_POOL_SIZE
+ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE},
+ #else
+ {"INVALID_POOL_SIZE", 51, 103},
+ #endif
+ #ifdef BIO_R_ACCEPT_ERROR
+ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR},
+ #else
+ {"ACCEPT_ERROR", 32, 100},
+ #endif
+ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET
+ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET},
+ #else
+ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141},
+ #endif
+ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE
+ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE},
+ #else
+ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129},
+ #endif
+ #ifdef BIO_R_BAD_FOPEN_MODE
+ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE},
+ #else
+ {"BAD_FOPEN_MODE", 32, 101},
+ #endif
+ #ifdef BIO_R_BROKEN_PIPE
+ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE},
+ #else
+ {"BROKEN_PIPE", 32, 124},
+ #endif
+ #ifdef BIO_R_CONNECT_ERROR
+ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR},
+ #else
+ {"CONNECT_ERROR", 32, 103},
+ #endif
+ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET
+ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET},
+ #else
+ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107},
+ #endif
+ #ifdef BIO_R_GETSOCKNAME_ERROR
+ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR},
+ #else
+ {"GETSOCKNAME_ERROR", 32, 132},
+ #endif
+ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS
+ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS},
+ #else
+ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133},
+ #endif
+ #ifdef BIO_R_GETTING_SOCKTYPE
+ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE},
+ #else
+ {"GETTING_SOCKTYPE", 32, 134},
+ #endif
+ #ifdef BIO_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 32, 125},
+ #endif
+ #ifdef BIO_R_INVALID_SOCKET
+ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET},
+ #else
+ {"INVALID_SOCKET", 32, 135},
+ #endif
+ #ifdef BIO_R_IN_USE
+ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE},
+ #else
+ {"IN_USE", 32, 123},
+ #endif
+ #ifdef BIO_R_LENGTH_TOO_LONG
+ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG},
+ #else
+ {"LENGTH_TOO_LONG", 32, 102},
+ #endif
+ #ifdef BIO_R_LISTEN_V6_ONLY
+ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY},
+ #else
+ {"LISTEN_V6_ONLY", 32, 136},
+ #endif
+ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
+ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
+ #else
+ {"LOOKUP_RETURNED_NOTHING", 32, 142},
+ #endif
+ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE
+ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE},
+ #else
+ {"MALFORMED_HOST_OR_SERVICE", 32, 130},
+ #endif
+ #ifdef BIO_R_NBIO_CONNECT_ERROR
+ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR},
+ #else
+ {"NBIO_CONNECT_ERROR", 32, 110},
+ #endif
+ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
+ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
+ #else
+ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143},
+ #endif
+ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED
+ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED},
+ #else
+ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144},
+ #endif
+ #ifdef BIO_R_NO_PORT_DEFINED
+ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED},
+ #else
+ {"NO_PORT_DEFINED", 32, 113},
+ #endif
+ #ifdef BIO_R_NO_SUCH_FILE
+ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE},
+ #else
+ {"NO_SUCH_FILE", 32, 128},
+ #endif
+ #ifdef BIO_R_NULL_PARAMETER
+ {"NULL_PARAMETER", ERR_LIB_BIO, BIO_R_NULL_PARAMETER},
+ #else
+ {"NULL_PARAMETER", 32, 115},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET
+ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET},
+ #else
+ {"UNABLE_TO_BIND_SOCKET", 32, 117},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET
+ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET},
+ #else
+ {"UNABLE_TO_CREATE_SOCKET", 32, 118},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_KEEPALIVE
+ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE},
+ #else
+ {"UNABLE_TO_KEEPALIVE", 32, 137},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET
+ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET},
+ #else
+ {"UNABLE_TO_LISTEN_SOCKET", 32, 119},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_NODELAY
+ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY},
+ #else
+ {"UNABLE_TO_NODELAY", 32, 138},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_REUSEADDR
+ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR},
+ #else
+ {"UNABLE_TO_REUSEADDR", 32, 139},
+ #endif
+ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
+ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
+ #else
+ {"UNAVAILABLE_IP_FAMILY", 32, 145},
+ #endif
+ #ifdef BIO_R_UNINITIALIZED
+ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED},
+ #else
+ {"UNINITIALIZED", 32, 120},
+ #endif
+ #ifdef BIO_R_UNKNOWN_INFO_TYPE
+ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE},
+ #else
+ {"UNKNOWN_INFO_TYPE", 32, 140},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY
+ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY},
+ #else
+ {"UNSUPPORTED_IP_FAMILY", 32, 146},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_METHOD
+ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD},
+ #else
+ {"UNSUPPORTED_METHOD", 32, 121},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY
+ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY},
+ #else
+ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131},
+ #endif
+ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO
+ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO},
+ #else
+ {"WRITE_TO_READ_ONLY_BIO", 32, 126},
+ #endif
+ #ifdef BIO_R_WSASTARTUP
+ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP},
+ #else
+ {"WSASTARTUP", 32, 122},
+ #endif
+ #ifdef BN_R_ARG2_LT_ARG3
+ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3},
+ #else
+ {"ARG2_LT_ARG3", 3, 100},
+ #endif
+ #ifdef BN_R_BAD_RECIPROCAL
+ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL},
+ #else
+ {"BAD_RECIPROCAL", 3, 101},
+ #endif
+ #ifdef BN_R_BIGNUM_TOO_LONG
+ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG},
+ #else
+ {"BIGNUM_TOO_LONG", 3, 114},
+ #endif
+ #ifdef BN_R_BITS_TOO_SMALL
+ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL},
+ #else
+ {"BITS_TOO_SMALL", 3, 118},
+ #endif
+ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS
+ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS},
+ #else
+ {"CALLED_WITH_EVEN_MODULUS", 3, 102},
+ #endif
+ #ifdef BN_R_DIV_BY_ZERO
+ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO},
+ #else
+ {"DIV_BY_ZERO", 3, 103},
+ #endif
+ #ifdef BN_R_ENCODING_ERROR
+ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR},
+ #else
+ {"ENCODING_ERROR", 3, 104},
+ #endif
+ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA
+ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA},
+ #else
+ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105},
+ #endif
+ #ifdef BN_R_INPUT_NOT_REDUCED
+ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED},
+ #else
+ {"INPUT_NOT_REDUCED", 3, 110},
+ #endif
+ #ifdef BN_R_INVALID_LENGTH
+ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH},
+ #else
+ {"INVALID_LENGTH", 3, 106},
+ #endif
+ #ifdef BN_R_INVALID_RANGE
+ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE},
+ #else
+ {"INVALID_RANGE", 3, 115},
+ #endif
+ #ifdef BN_R_INVALID_SHIFT
+ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT},
+ #else
+ {"INVALID_SHIFT", 3, 119},
+ #endif
+ #ifdef BN_R_NOT_A_SQUARE
+ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE},
+ #else
+ {"NOT_A_SQUARE", 3, 111},
+ #endif
+ #ifdef BN_R_NOT_INITIALIZED
+ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED},
+ #else
+ {"NOT_INITIALIZED", 3, 107},
+ #endif
+ #ifdef BN_R_NO_INVERSE
+ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE},
+ #else
+ {"NO_INVERSE", 3, 108},
+ #endif
+ #ifdef BN_R_NO_SOLUTION
+ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION},
+ #else
+ {"NO_SOLUTION", 3, 116},
+ #endif
+ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE
+ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE},
+ #else
+ {"PRIVATE_KEY_TOO_LARGE", 3, 117},
+ #endif
+ #ifdef BN_R_P_IS_NOT_PRIME
+ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME},
+ #else
+ {"P_IS_NOT_PRIME", 3, 112},
+ #endif
+ #ifdef BN_R_TOO_MANY_ITERATIONS
+ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS},
+ #else
+ {"TOO_MANY_ITERATIONS", 3, 113},
+ #endif
+ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES
+ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES},
+ #else
+ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109},
+ #endif
+ #ifdef CMS_R_ADD_SIGNER_ERROR
+ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR},
+ #else
+ {"ADD_SIGNER_ERROR", 46, 99},
+ #endif
+ #ifdef CMS_R_ATTRIBUTE_ERROR
+ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR},
+ #else
+ {"ATTRIBUTE_ERROR", 46, 161},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT
+ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT},
+ #else
+ {"CERTIFICATE_ALREADY_PRESENT", 46, 175},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID
+ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID},
+ #else
+ {"CERTIFICATE_HAS_NO_KEYID", 46, 160},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 46, 100},
+ #endif
+ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR
+ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR},
+ #else
+ {"CIPHER_INITIALISATION_ERROR", 46, 101},
+ #endif
+ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR
+ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR},
+ #else
+ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102},
+ #endif
+ #ifdef CMS_R_CMS_DATAFINAL_ERROR
+ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR},
+ #else
+ {"CMS_DATAFINAL_ERROR", 46, 103},
+ #endif
+ #ifdef CMS_R_CMS_LIB
+ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB},
+ #else
+ {"CMS_LIB", 46, 104},
+ #endif
+ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH
+ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH},
+ #else
+ {"CONTENTIDENTIFIER_MISMATCH", 46, 170},
+ #endif
+ #ifdef CMS_R_CONTENT_NOT_FOUND
+ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND},
+ #else
+ {"CONTENT_NOT_FOUND", 46, 105},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_MISMATCH
+ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH},
+ #else
+ {"CONTENT_TYPE_MISMATCH", 46, 171},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA
+ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA
+ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA
+ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108},
+ #endif
+ #ifdef CMS_R_CONTENT_VERIFY_ERROR
+ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR},
+ #else
+ {"CONTENT_VERIFY_ERROR", 46, 109},
+ #endif
+ #ifdef CMS_R_CTRL_ERROR
+ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR},
+ #else
+ {"CTRL_ERROR", 46, 110},
+ #endif
+ #ifdef CMS_R_CTRL_FAILURE
+ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE},
+ #else
+ {"CTRL_FAILURE", 46, 111},
+ #endif
+ #ifdef CMS_R_DECRYPT_ERROR
+ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR},
+ #else
+ {"DECRYPT_ERROR", 46, 112},
+ #endif
+ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY
+ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY},
+ #else
+ {"ERROR_GETTING_PUBLIC_KEY", 46, 113},
+ #endif
+ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE
+ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE},
+ #else
+ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114},
+ #endif
+ #ifdef CMS_R_ERROR_SETTING_KEY
+ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY},
+ #else
+ {"ERROR_SETTING_KEY", 46, 115},
+ #endif
+ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO
+ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO},
+ #else
+ {"ERROR_SETTING_RECIPIENTINFO", 46, 116},
+ #endif
+ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH
+ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH},
+ #else
+ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117},
+ #endif
+ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER
+ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER},
+ #else
+ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176},
+ #endif
+ #ifdef CMS_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 46, 118},
+ #endif
+ #ifdef CMS_R_MD_BIO_INIT_ERROR
+ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR},
+ #else
+ {"MD_BIO_INIT_ERROR", 46, 119},
+ #endif
+ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH
+ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH},
+ #else
+ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120},
+ #endif
+ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH
+ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH},
+ #else
+ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_ERROR
+ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR},
+ #else
+ {"MSGSIGDIGEST_ERROR", 46, 172},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE
+ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE},
+ #else
+ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH
+ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH},
+ #else
+ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163},
+ #endif
+ #ifdef CMS_R_NEED_ONE_SIGNER
+ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER},
+ #else
+ {"NEED_ONE_SIGNER", 46, 164},
+ #endif
+ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT
+ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT},
+ #else
+ {"NOT_A_SIGNED_RECEIPT", 46, 165},
+ #endif
+ #ifdef CMS_R_NOT_ENCRYPTED_DATA
+ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA},
+ #else
+ {"NOT_ENCRYPTED_DATA", 46, 122},
+ #endif
+ #ifdef CMS_R_NOT_KEK
+ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK},
+ #else
+ {"NOT_KEK", 46, 123},
+ #endif
+ #ifdef CMS_R_NOT_KEY_AGREEMENT
+ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT},
+ #else
+ {"NOT_KEY_AGREEMENT", 46, 181},
+ #endif
+ #ifdef CMS_R_NOT_KEY_TRANSPORT
+ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT},
+ #else
+ {"NOT_KEY_TRANSPORT", 46, 124},
+ #endif
+ #ifdef CMS_R_NOT_PWRI
+ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI},
+ #else
+ {"NOT_PWRI", 46, 177},
+ #endif
+ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125},
+ #endif
+ #ifdef CMS_R_NO_CIPHER
+ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER},
+ #else
+ {"NO_CIPHER", 46, 126},
+ #endif
+ #ifdef CMS_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 46, 127},
+ #endif
+ #ifdef CMS_R_NO_CONTENT_TYPE
+ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE},
+ #else
+ {"NO_CONTENT_TYPE", 46, 173},
+ #endif
+ #ifdef CMS_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 46, 128},
+ #endif
+ #ifdef CMS_R_NO_DIGEST_SET
+ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET},
+ #else
+ {"NO_DIGEST_SET", 46, 129},
+ #endif
+ #ifdef CMS_R_NO_KEY
+ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY},
+ #else
+ {"NO_KEY", 46, 130},
+ #endif
+ #ifdef CMS_R_NO_KEY_OR_CERT
+ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT},
+ #else
+ {"NO_KEY_OR_CERT", 46, 174},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_DIGEST
+ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST},
+ #else
+ {"NO_MATCHING_DIGEST", 46, 131},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_RECIPIENT
+ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT},
+ #else
+ {"NO_MATCHING_RECIPIENT", 46, 132},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_SIGNATURE
+ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE},
+ #else
+ {"NO_MATCHING_SIGNATURE", 46, 166},
+ #endif
+ #ifdef CMS_R_NO_MSGSIGDIGEST
+ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST},
+ #else
+ {"NO_MSGSIGDIGEST", 46, 167},
+ #endif
+ #ifdef CMS_R_NO_PASSWORD
+ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD},
+ #else
+ {"NO_PASSWORD", 46, 178},
+ #endif
+ #ifdef CMS_R_NO_PRIVATE_KEY
+ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY},
+ #else
+ {"NO_PRIVATE_KEY", 46, 133},
+ #endif
+ #ifdef CMS_R_NO_PUBLIC_KEY
+ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY},
+ #else
+ {"NO_PUBLIC_KEY", 46, 134},
+ #endif
+ #ifdef CMS_R_NO_RECEIPT_REQUEST
+ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST},
+ #else
+ {"NO_RECEIPT_REQUEST", 46, 168},
+ #endif
+ #ifdef CMS_R_NO_SIGNERS
+ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS},
+ #else
+ {"NO_SIGNERS", 46, 135},
+ #endif
+ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136},
+ #endif
+ #ifdef CMS_R_RECEIPT_DECODE_ERROR
+ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR},
+ #else
+ {"RECEIPT_DECODE_ERROR", 46, 169},
+ #endif
+ #ifdef CMS_R_RECIPIENT_ERROR
+ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR},
+ #else
+ {"RECIPIENT_ERROR", 46, 137},
+ #endif
+ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138},
+ #endif
+ #ifdef CMS_R_SIGNFINAL_ERROR
+ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR},
+ #else
+ {"SIGNFINAL_ERROR", 46, 139},
+ #endif
+ #ifdef CMS_R_SMIME_TEXT_ERROR
+ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR},
+ #else
+ {"SMIME_TEXT_ERROR", 46, 140},
+ #endif
+ #ifdef CMS_R_STORE_INIT_ERROR
+ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR},
+ #else
+ {"STORE_INIT_ERROR", 46, 141},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA
+ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA},
+ #else
+ {"TYPE_NOT_COMPRESSED_DATA", 46, 142},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_DATA
+ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA},
+ #else
+ {"TYPE_NOT_DATA", 46, 143},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA
+ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA},
+ #else
+ {"TYPE_NOT_DIGESTED_DATA", 46, 144},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA
+ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA},
+ #else
+ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA
+ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA},
+ #else
+ {"TYPE_NOT_ENVELOPED_DATA", 46, 146},
+ #endif
+ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT
+ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT},
+ #else
+ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147},
+ #endif
+ #ifdef CMS_R_UNKNOWN_CIPHER
+ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER},
+ #else
+ {"UNKNOWN_CIPHER", 46, 148},
+ #endif
+ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM
+ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149},
+ #endif
+ #ifdef CMS_R_UNKNOWN_ID
+ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID},
+ #else
+ {"UNKNOWN_ID", 46, 150},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 46, 152},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM
+ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM},
+ #else
+ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM
+ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
+ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE},
+ #else
+ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE
+ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE},
+ #else
+ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 46, 156},
+ #endif
+ #ifdef CMS_R_UNWRAP_ERROR
+ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR},
+ #else
+ {"UNWRAP_ERROR", 46, 157},
+ #endif
+ #ifdef CMS_R_UNWRAP_FAILURE
+ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE},
+ #else
+ {"UNWRAP_FAILURE", 46, 180},
+ #endif
+ #ifdef CMS_R_VERIFICATION_FAILURE
+ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE},
+ #else
+ {"VERIFICATION_FAILURE", 46, 158},
+ #endif
+ #ifdef CMS_R_WRAP_ERROR
+ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR},
+ #else
+ {"WRAP_ERROR", 46, 159},
+ #endif
+ #ifdef COMP_R_ZLIB_DEFLATE_ERROR
+ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
+ #else
+ {"ZLIB_DEFLATE_ERROR", 41, 99},
+ #endif
+ #ifdef COMP_R_ZLIB_INFLATE_ERROR
+ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR},
+ #else
+ {"ZLIB_INFLATE_ERROR", 41, 100},
+ #endif
+ #ifdef COMP_R_ZLIB_NOT_SUPPORTED
+ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED},
+ #else
+ {"ZLIB_NOT_SUPPORTED", 41, 101},
+ #endif
+ #ifdef CONF_R_ERROR_LOADING_DSO
+ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
+ #else
+ {"ERROR_LOADING_DSO", 14, 110},
+ #endif
+ #ifdef CONF_R_LIST_CANNOT_BE_NULL
+ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL},
+ #else
+ {"LIST_CANNOT_BE_NULL", 14, 115},
+ #endif
+ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET
+ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET},
+ #else
+ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100},
+ #endif
+ #ifdef CONF_R_MISSING_EQUAL_SIGN
+ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN},
+ #else
+ {"MISSING_EQUAL_SIGN", 14, 101},
+ #endif
+ #ifdef CONF_R_MISSING_INIT_FUNCTION
+ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION},
+ #else
+ {"MISSING_INIT_FUNCTION", 14, 112},
+ #endif
+ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR
+ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR},
+ #else
+ {"MODULE_INITIALIZATION_ERROR", 14, 109},
+ #endif
+ #ifdef CONF_R_NO_CLOSE_BRACE
+ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE},
+ #else
+ {"NO_CLOSE_BRACE", 14, 102},
+ #endif
+ #ifdef CONF_R_NO_CONF
+ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF},
+ #else
+ {"NO_CONF", 14, 105},
+ #endif
+ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE
+ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE},
+ #else
+ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106},
+ #endif
+ #ifdef CONF_R_NO_SECTION
+ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION},
+ #else
+ {"NO_SECTION", 14, 107},
+ #endif
+ #ifdef CONF_R_NO_SUCH_FILE
+ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE},
+ #else
+ {"NO_SUCH_FILE", 14, 114},
+ #endif
+ #ifdef CONF_R_NO_VALUE
+ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE},
+ #else
+ {"NO_VALUE", 14, 108},
+ #endif
+ #ifdef CONF_R_NUMBER_TOO_LARGE
+ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE},
+ #else
+ {"NUMBER_TOO_LARGE", 14, 121},
+ #endif
+ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE
+ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE},
+ #else
+ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
+ #endif
+ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY
+ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY},
+ #else
+ {"SSL_COMMAND_SECTION_EMPTY", 14, 117},
+ #endif
+ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND
+ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND},
+ #else
+ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118},
+ #endif
+ #ifdef CONF_R_SSL_SECTION_EMPTY
+ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY},
+ #else
+ {"SSL_SECTION_EMPTY", 14, 119},
+ #endif
+ #ifdef CONF_R_SSL_SECTION_NOT_FOUND
+ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND},
+ #else
+ {"SSL_SECTION_NOT_FOUND", 14, 120},
+ #endif
+ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION
+ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION},
+ #else
+ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103},
+ #endif
+ #ifdef CONF_R_UNKNOWN_MODULE_NAME
+ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME},
+ #else
+ {"UNKNOWN_MODULE_NAME", 14, 113},
+ #endif
+ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG
+ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG},
+ #else
+ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116},
+ #endif
+ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE
+ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE},
+ #else
+ {"VARIABLE_HAS_NO_VALUE", 14, 104},
+ #endif
+ #ifdef CRYPTO_R_FIPS_MODE_NOT_SUPPORTED
+ {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_FIPS_MODE_NOT_SUPPORTED},
+ #else
+ {"FIPS_MODE_NOT_SUPPORTED", 15, 101},
+ #endif
+ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT
+ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT},
+ #else
+ {"ILLEGAL_HEX_DIGIT", 15, 102},
+ #endif
+ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS
+ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS},
+ #else
+ {"ODD_NUMBER_OF_DIGITS", 15, 103},
+ #endif
+ #ifdef CT_R_BASE64_DECODE_ERROR
+ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR},
+ #else
+ {"BASE64_DECODE_ERROR", 50, 108},
+ #endif
+ #ifdef CT_R_INVALID_LOG_ID_LENGTH
+ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH},
+ #else
+ {"INVALID_LOG_ID_LENGTH", 50, 100},
+ #endif
+ #ifdef CT_R_LOG_CONF_INVALID
+ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID},
+ #else
+ {"LOG_CONF_INVALID", 50, 109},
+ #endif
+ #ifdef CT_R_LOG_CONF_INVALID_KEY
+ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY},
+ #else
+ {"LOG_CONF_INVALID_KEY", 50, 110},
+ #endif
+ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION
+ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION},
+ #else
+ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111},
+ #endif
+ #ifdef CT_R_LOG_CONF_MISSING_KEY
+ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY},
+ #else
+ {"LOG_CONF_MISSING_KEY", 50, 112},
+ #endif
+ #ifdef CT_R_LOG_KEY_INVALID
+ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID},
+ #else
+ {"LOG_KEY_INVALID", 50, 113},
+ #endif
+ #ifdef CT_R_SCT_FUTURE_TIMESTAMP
+ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP},
+ #else
+ {"SCT_FUTURE_TIMESTAMP", 50, 116},
+ #endif
+ #ifdef CT_R_SCT_INVALID
+ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID},
+ #else
+ {"SCT_INVALID", 50, 104},
+ #endif
+ #ifdef CT_R_SCT_INVALID_SIGNATURE
+ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE},
+ #else
+ {"SCT_INVALID_SIGNATURE", 50, 107},
+ #endif
+ #ifdef CT_R_SCT_LIST_INVALID
+ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID},
+ #else
+ {"SCT_LIST_INVALID", 50, 105},
+ #endif
+ #ifdef CT_R_SCT_LOG_ID_MISMATCH
+ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH},
+ #else
+ {"SCT_LOG_ID_MISMATCH", 50, 114},
+ #endif
+ #ifdef CT_R_SCT_NOT_SET
+ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET},
+ #else
+ {"SCT_NOT_SET", 50, 106},
+ #endif
+ #ifdef CT_R_SCT_UNSUPPORTED_VERSION
+ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION},
+ #else
+ {"SCT_UNSUPPORTED_VERSION", 50, 115},
+ #endif
+ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID
+ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID},
+ #else
+ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101},
+ #endif
+ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE
+ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE},
+ #else
+ {"UNSUPPORTED_ENTRY_TYPE", 50, 102},
+ #endif
+ #ifdef CT_R_UNSUPPORTED_VERSION
+ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION},
+ #else
+ {"UNSUPPORTED_VERSION", 50, 103},
+ #endif
+ #ifdef DH_R_BAD_GENERATOR
+ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR},
+ #else
+ {"BAD_GENERATOR", 5, 101},
+ #endif
+ #ifdef DH_R_BN_DECODE_ERROR
+ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR},
+ #else
+ {"BN_DECODE_ERROR", 5, 109},
+ #endif
+ #ifdef DH_R_BN_ERROR
+ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR},
+ #else
+ {"BN_ERROR", 5, 106},
+ #endif
+ #ifdef DH_R_CHECK_INVALID_J_VALUE
+ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE},
+ #else
+ {"CHECK_INVALID_J_VALUE", 5, 115},
+ #endif
+ #ifdef DH_R_CHECK_INVALID_Q_VALUE
+ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE},
+ #else
+ {"CHECK_INVALID_Q_VALUE", 5, 116},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_INVALID
+ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID},
+ #else
+ {"CHECK_PUBKEY_INVALID", 5, 122},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE
+ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE},
+ #else
+ {"CHECK_PUBKEY_TOO_LARGE", 5, 123},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL
+ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL},
+ #else
+ {"CHECK_PUBKEY_TOO_SMALL", 5, 124},
+ #endif
+ #ifdef DH_R_CHECK_P_NOT_PRIME
+ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME},
+ #else
+ {"CHECK_P_NOT_PRIME", 5, 117},
+ #endif
+ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME
+ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME},
+ #else
+ {"CHECK_P_NOT_SAFE_PRIME", 5, 118},
+ #endif
+ #ifdef DH_R_CHECK_Q_NOT_PRIME
+ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME},
+ #else
+ {"CHECK_Q_NOT_PRIME", 5, 119},
+ #endif
+ #ifdef DH_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 5, 104},
+ #endif
+ #ifdef DH_R_INVALID_PARAMETER_NAME
+ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME},
+ #else
+ {"INVALID_PARAMETER_NAME", 5, 110},
+ #endif
+ #ifdef DH_R_INVALID_PARAMETER_NID
+ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID},
+ #else
+ {"INVALID_PARAMETER_NID", 5, 114},
+ #endif
+ #ifdef DH_R_INVALID_PUBKEY
+ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY},
+ #else
+ {"INVALID_PUBKEY", 5, 102},
+ #endif
+ #ifdef DH_R_KDF_PARAMETER_ERROR
+ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
+ #else
+ {"KDF_PARAMETER_ERROR", 5, 112},
+ #endif
+ #ifdef DH_R_KEYS_NOT_SET
+ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET},
+ #else
+ {"KEYS_NOT_SET", 5, 108},
+ #endif
+ #ifdef DH_R_MISSING_PUBKEY
+ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY},
+ #else
+ {"MISSING_PUBKEY", 5, 125},
+ #endif
+ #ifdef DH_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 5, 103},
+ #endif
+ #ifdef DH_R_NOT_SUITABLE_GENERATOR
+ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR},
+ #else
+ {"NOT_SUITABLE_GENERATOR", 5, 120},
+ #endif
+ #ifdef DH_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 5, 107},
+ #endif
+ #ifdef DH_R_NO_PRIVATE_VALUE
+ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE},
+ #else
+ {"NO_PRIVATE_VALUE", 5, 100},
+ #endif
+ #ifdef DH_R_PARAMETER_ENCODING_ERROR
+ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR},
+ #else
+ {"PARAMETER_ENCODING_ERROR", 5, 105},
+ #endif
+ #ifdef DH_R_PEER_KEY_ERROR
+ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR},
+ #else
+ {"PEER_KEY_ERROR", 5, 111},
+ #endif
+ #ifdef DH_R_SHARED_INFO_ERROR
+ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
+ #else
+ {"SHARED_INFO_ERROR", 5, 113},
+ #endif
+ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR
+ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR},
+ #else
+ {"UNABLE_TO_CHECK_GENERATOR", 5, 121},
+ #endif
+ #ifdef DSA_R_BAD_Q_VALUE
+ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE},
+ #else
+ {"BAD_Q_VALUE", 10, 102},
+ #endif
+ #ifdef DSA_R_BN_DECODE_ERROR
+ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR},
+ #else
+ {"BN_DECODE_ERROR", 10, 108},
+ #endif
+ #ifdef DSA_R_BN_ERROR
+ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR},
+ #else
+ {"BN_ERROR", 10, 109},
+ #endif
+ #ifdef DSA_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 10, 104},
+ #endif
+ #ifdef DSA_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 10, 106},
+ #endif
+ #ifdef DSA_R_INVALID_PARAMETERS
+ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS},
+ #else
+ {"INVALID_PARAMETERS", 10, 112},
+ #endif
+ #ifdef DSA_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 10, 101},
+ #endif
+ #ifdef DSA_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 10, 111},
+ #endif
+ #ifdef DSA_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 10, 103},
+ #endif
+ #ifdef DSA_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 10, 107},
+ #endif
+ #ifdef DSA_R_PARAMETER_ENCODING_ERROR
+ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR},
+ #else
+ {"PARAMETER_ENCODING_ERROR", 10, 105},
+ #endif
+ #ifdef DSA_R_Q_NOT_PRIME
+ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME},
+ #else
+ {"Q_NOT_PRIME", 10, 113},
+ #endif
+ #ifdef DSA_R_SEED_LEN_SMALL
+ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL},
+ #else
+ {"SEED_LEN_SMALL", 10, 110},
+ #endif
+ #ifdef EC_R_ASN1_ERROR
+ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR},
+ #else
+ {"ASN1_ERROR", 16, 115},
+ #endif
+ #ifdef EC_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 16, 156},
+ #endif
+ #ifdef EC_R_BIGNUM_OUT_OF_RANGE
+ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE},
+ #else
+ {"BIGNUM_OUT_OF_RANGE", 16, 144},
+ #endif
+ #ifdef EC_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 16, 100},
+ #endif
+ #ifdef EC_R_CANNOT_INVERT
+ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT},
+ #else
+ {"CANNOT_INVERT", 16, 165},
+ #endif
+ #ifdef EC_R_COORDINATES_OUT_OF_RANGE
+ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE},
+ #else
+ {"COORDINATES_OUT_OF_RANGE", 16, 146},
+ #endif
+ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH
+ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH},
+ #else
+ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160},
+ #endif
+ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING
+ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING},
+ #else
+ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159},
+ #endif
+ #ifdef EC_R_D2I_ECPKPARAMETERS_FAILURE
+ {"D2I_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_D2I_ECPKPARAMETERS_FAILURE},
+ #else
+ {"D2I_ECPKPARAMETERS_FAILURE", 16, 117},
+ #endif
+ #ifdef EC_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 16, 142},
+ #endif
+ #ifdef EC_R_DISCRIMINANT_IS_ZERO
+ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO},
+ #else
+ {"DISCRIMINANT_IS_ZERO", 16, 118},
+ #endif
+ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE
+ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE},
+ #else
+ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119},
+ #endif
+ #ifdef EC_R_FIELD_TOO_LARGE
+ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE},
+ #else
+ {"FIELD_TOO_LARGE", 16, 143},
+ #endif
+ #ifdef EC_R_GF2M_NOT_SUPPORTED
+ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED},
+ #else
+ {"GF2M_NOT_SUPPORTED", 16, 147},
+ #endif
+ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE
+ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE},
+ #else
+ {"GROUP2PKPARAMETERS_FAILURE", 16, 120},
+ #endif
+ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE
+ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE},
+ #else
+ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121},
+ #endif
+ #ifdef EC_R_INCOMPATIBLE_OBJECTS
+ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS},
+ #else
+ {"INCOMPATIBLE_OBJECTS", 16, 101},
+ #endif
+ #ifdef EC_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 16, 112},
+ #endif
+ #ifdef EC_R_INVALID_COMPRESSED_POINT
+ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT},
+ #else
+ {"INVALID_COMPRESSED_POINT", 16, 110},
+ #endif
+ #ifdef EC_R_INVALID_COMPRESSION_BIT
+ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT},
+ #else
+ {"INVALID_COMPRESSION_BIT", 16, 109},
+ #endif
+ #ifdef EC_R_INVALID_CURVE
+ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE},
+ #else
+ {"INVALID_CURVE", 16, 141},
+ #endif
+ #ifdef EC_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 16, 151},
+ #endif
+ #ifdef EC_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 16, 138},
+ #endif
+ #ifdef EC_R_INVALID_ENCODING
+ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING},
+ #else
+ {"INVALID_ENCODING", 16, 102},
+ #endif
+ #ifdef EC_R_INVALID_FIELD
+ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD},
+ #else
+ {"INVALID_FIELD", 16, 103},
+ #endif
+ #ifdef EC_R_INVALID_FORM
+ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM},
+ #else
+ {"INVALID_FORM", 16, 104},
+ #endif
+ #ifdef EC_R_INVALID_GROUP_ORDER
+ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER},
+ #else
+ {"INVALID_GROUP_ORDER", 16, 122},
+ #endif
+ #ifdef EC_R_INVALID_KEY
+ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY},
+ #else
+ {"INVALID_KEY", 16, 116},
+ #endif
+ #ifdef EC_R_INVALID_OUTPUT_LENGTH
+ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH},
+ #else
+ {"INVALID_OUTPUT_LENGTH", 16, 161},
+ #endif
+ #ifdef EC_R_INVALID_PEER_KEY
+ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY},
+ #else
+ {"INVALID_PEER_KEY", 16, 133},
+ #endif
+ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS
+ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS},
+ #else
+ {"INVALID_PENTANOMIAL_BASIS", 16, 132},
+ #endif
+ #ifdef EC_R_INVALID_PRIVATE_KEY
+ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY},
+ #else
+ {"INVALID_PRIVATE_KEY", 16, 123},
+ #endif
+ #ifdef EC_R_INVALID_TRINOMIAL_BASIS
+ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS},
+ #else
+ {"INVALID_TRINOMIAL_BASIS", 16, 137},
+ #endif
+ #ifdef EC_R_KDF_PARAMETER_ERROR
+ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR},
+ #else
+ {"KDF_PARAMETER_ERROR", 16, 148},
+ #endif
+ #ifdef EC_R_KEYS_NOT_SET
+ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET},
+ #else
+ {"KEYS_NOT_SET", 16, 140},
+ #endif
+ #ifdef EC_R_LADDER_POST_FAILURE
+ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE},
+ #else
+ {"LADDER_POST_FAILURE", 16, 136},
+ #endif
+ #ifdef EC_R_LADDER_PRE_FAILURE
+ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE},
+ #else
+ {"LADDER_PRE_FAILURE", 16, 153},
+ #endif
+ #ifdef EC_R_LADDER_STEP_FAILURE
+ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE},
+ #else
+ {"LADDER_STEP_FAILURE", 16, 162},
+ #endif
+ #ifdef EC_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 16, 124},
+ #endif
+ #ifdef EC_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 16, 125},
+ #endif
+ #ifdef EC_R_NEED_NEW_SETUP_VALUES
+ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES},
+ #else
+ {"NEED_NEW_SETUP_VALUES", 16, 157},
+ #endif
+ #ifdef EC_R_NOT_A_NIST_PRIME
+ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME},
+ #else
+ {"NOT_A_NIST_PRIME", 16, 135},
+ #endif
+ #ifdef EC_R_NOT_IMPLEMENTED
+ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED},
+ #else
+ {"NOT_IMPLEMENTED", 16, 126},
+ #endif
+ #ifdef EC_R_NOT_INITIALIZED
+ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED},
+ #else
+ {"NOT_INITIALIZED", 16, 111},
+ #endif
+ #ifdef EC_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 16, 139},
+ #endif
+ #ifdef EC_R_NO_PRIVATE_VALUE
+ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE},
+ #else
+ {"NO_PRIVATE_VALUE", 16, 154},
+ #endif
+ #ifdef EC_R_OPERATION_NOT_SUPPORTED
+ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED},
+ #else
+ {"OPERATION_NOT_SUPPORTED", 16, 152},
+ #endif
+ #ifdef EC_R_PASSED_NULL_PARAMETER
+ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER},
+ #else
+ {"PASSED_NULL_PARAMETER", 16, 134},
+ #endif
+ #ifdef EC_R_PEER_KEY_ERROR
+ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR},
+ #else
+ {"PEER_KEY_ERROR", 16, 149},
+ #endif
+ #ifdef EC_R_PKPARAMETERS2GROUP_FAILURE
+ {"PKPARAMETERS2GROUP_FAILURE", ERR_LIB_EC, EC_R_PKPARAMETERS2GROUP_FAILURE},
+ #else
+ {"PKPARAMETERS2GROUP_FAILURE", 16, 127},
+ #endif
+ #ifdef EC_R_POINT_ARITHMETIC_FAILURE
+ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE},
+ #else
+ {"POINT_ARITHMETIC_FAILURE", 16, 155},
+ #endif
+ #ifdef EC_R_POINT_AT_INFINITY
+ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY},
+ #else
+ {"POINT_AT_INFINITY", 16, 106},
+ #endif
+ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE
+ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE},
+ #else
+ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163},
+ #endif
+ #ifdef EC_R_POINT_IS_NOT_ON_CURVE
+ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE},
+ #else
+ {"POINT_IS_NOT_ON_CURVE", 16, 107},
+ #endif
+ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED
+ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED},
+ #else
+ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158},
+ #endif
+ #ifdef EC_R_SHARED_INFO_ERROR
+ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR},
+ #else
+ {"SHARED_INFO_ERROR", 16, 150},
+ #endif
+ #ifdef EC_R_SLOT_FULL
+ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL},
+ #else
+ {"SLOT_FULL", 16, 108},
+ #endif
+ #ifdef EC_R_UNDEFINED_GENERATOR
+ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR},
+ #else
+ {"UNDEFINED_GENERATOR", 16, 113},
+ #endif
+ #ifdef EC_R_UNDEFINED_ORDER
+ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER},
+ #else
+ {"UNDEFINED_ORDER", 16, 128},
+ #endif
+ #ifdef EC_R_UNKNOWN_COFACTOR
+ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR},
+ #else
+ {"UNKNOWN_COFACTOR", 16, 164},
+ #endif
+ #ifdef EC_R_UNKNOWN_GROUP
+ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP},
+ #else
+ {"UNKNOWN_GROUP", 16, 129},
+ #endif
+ #ifdef EC_R_UNKNOWN_ORDER
+ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER},
+ #else
+ {"UNKNOWN_ORDER", 16, 114},
+ #endif
+ #ifdef EC_R_UNSUPPORTED_FIELD
+ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD},
+ #else
+ {"UNSUPPORTED_FIELD", 16, 131},
+ #endif
+ #ifdef EC_R_WRONG_CURVE_PARAMETERS
+ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS},
+ #else
+ {"WRONG_CURVE_PARAMETERS", 16, 145},
+ #endif
+ #ifdef EC_R_WRONG_ORDER
+ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER},
+ #else
+ {"WRONG_ORDER", 16, 130},
+ #endif
+ #ifdef ENGINE_R_ALREADY_LOADED
+ {"ALREADY_LOADED", ERR_LIB_ENGINE, ENGINE_R_ALREADY_LOADED},
+ #else
+ {"ALREADY_LOADED", 38, 100},
+ #endif
+ #ifdef ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER
+ {"ARGUMENT_IS_NOT_A_NUMBER", ERR_LIB_ENGINE, ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER},
+ #else
+ {"ARGUMENT_IS_NOT_A_NUMBER", 38, 133},
+ #endif
+ #ifdef ENGINE_R_CMD_NOT_EXECUTABLE
+ {"CMD_NOT_EXECUTABLE", ERR_LIB_ENGINE, ENGINE_R_CMD_NOT_EXECUTABLE},
+ #else
+ {"CMD_NOT_EXECUTABLE", 38, 134},
+ #endif
+ #ifdef ENGINE_R_COMMAND_TAKES_INPUT
+ {"COMMAND_TAKES_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_INPUT},
+ #else
+ {"COMMAND_TAKES_INPUT", 38, 135},
+ #endif
+ #ifdef ENGINE_R_COMMAND_TAKES_NO_INPUT
+ {"COMMAND_TAKES_NO_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_NO_INPUT},
+ #else
+ {"COMMAND_TAKES_NO_INPUT", 38, 136},
+ #endif
+ #ifdef ENGINE_R_CONFLICTING_ENGINE_ID
+ {"CONFLICTING_ENGINE_ID", ERR_LIB_ENGINE, ENGINE_R_CONFLICTING_ENGINE_ID},
+ #else
+ {"CONFLICTING_ENGINE_ID", 38, 103},
+ #endif
+ #ifdef ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED
+ {"CTRL_COMMAND_NOT_IMPLEMENTED", ERR_LIB_ENGINE, ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_COMMAND_NOT_IMPLEMENTED", 38, 119},
+ #endif
+ #ifdef ENGINE_R_DSO_FAILURE
+ {"DSO_FAILURE", ERR_LIB_ENGINE, ENGINE_R_DSO_FAILURE},
+ #else
+ {"DSO_FAILURE", 38, 104},
+ #endif
+ #ifdef ENGINE_R_DSO_NOT_FOUND
+ {"DSO_NOT_FOUND", ERR_LIB_ENGINE, ENGINE_R_DSO_NOT_FOUND},
+ #else
+ {"DSO_NOT_FOUND", 38, 132},
+ #endif
+ #ifdef ENGINE_R_ENGINES_SECTION_ERROR
+ {"ENGINES_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINES_SECTION_ERROR},
+ #else
+ {"ENGINES_SECTION_ERROR", 38, 148},
+ #endif
+ #ifdef ENGINE_R_ENGINE_CONFIGURATION_ERROR
+ {"ENGINE_CONFIGURATION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_CONFIGURATION_ERROR},
+ #else
+ {"ENGINE_CONFIGURATION_ERROR", 38, 102},
+ #endif
+ #ifdef ENGINE_R_ENGINE_IS_NOT_IN_LIST
+ {"ENGINE_IS_NOT_IN_LIST", ERR_LIB_ENGINE, ENGINE_R_ENGINE_IS_NOT_IN_LIST},
+ #else
+ {"ENGINE_IS_NOT_IN_LIST", 38, 105},
+ #endif
+ #ifdef ENGINE_R_ENGINE_SECTION_ERROR
+ {"ENGINE_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_SECTION_ERROR},
+ #else
+ {"ENGINE_SECTION_ERROR", 38, 149},
+ #endif
+ #ifdef ENGINE_R_FAILED_LOADING_PRIVATE_KEY
+ {"FAILED_LOADING_PRIVATE_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PRIVATE_KEY},
+ #else
+ {"FAILED_LOADING_PRIVATE_KEY", 38, 128},
+ #endif
+ #ifdef ENGINE_R_FAILED_LOADING_PUBLIC_KEY
+ {"FAILED_LOADING_PUBLIC_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PUBLIC_KEY},
+ #else
+ {"FAILED_LOADING_PUBLIC_KEY", 38, 129},
+ #endif
+ #ifdef ENGINE_R_FINISH_FAILED
+ {"FINISH_FAILED", ERR_LIB_ENGINE, ENGINE_R_FINISH_FAILED},
+ #else
+ {"FINISH_FAILED", 38, 106},
+ #endif
+ #ifdef ENGINE_R_ID_OR_NAME_MISSING
+ {"ID_OR_NAME_MISSING", ERR_LIB_ENGINE, ENGINE_R_ID_OR_NAME_MISSING},
+ #else
+ {"ID_OR_NAME_MISSING", 38, 108},
+ #endif
+ #ifdef ENGINE_R_INIT_FAILED
+ {"INIT_FAILED", ERR_LIB_ENGINE, ENGINE_R_INIT_FAILED},
+ #else
+ {"INIT_FAILED", 38, 109},
+ #endif
+ #ifdef ENGINE_R_INTERNAL_LIST_ERROR
+ {"INTERNAL_LIST_ERROR", ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR},
+ #else
+ {"INTERNAL_LIST_ERROR", 38, 110},
+ #endif
+ #ifdef ENGINE_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_ENGINE, ENGINE_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 38, 143},
+ #endif
+ #ifdef ENGINE_R_INVALID_CMD_NAME
+ {"INVALID_CMD_NAME", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NAME},
+ #else
+ {"INVALID_CMD_NAME", 38, 137},
+ #endif
+ #ifdef ENGINE_R_INVALID_CMD_NUMBER
+ {"INVALID_CMD_NUMBER", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NUMBER},
+ #else
+ {"INVALID_CMD_NUMBER", 38, 138},
+ #endif
+ #ifdef ENGINE_R_INVALID_INIT_VALUE
+ {"INVALID_INIT_VALUE", ERR_LIB_ENGINE, ENGINE_R_INVALID_INIT_VALUE},
+ #else
+ {"INVALID_INIT_VALUE", 38, 151},
+ #endif
+ #ifdef ENGINE_R_INVALID_STRING
+ {"INVALID_STRING", ERR_LIB_ENGINE, ENGINE_R_INVALID_STRING},
+ #else
+ {"INVALID_STRING", 38, 150},
+ #endif
+ #ifdef ENGINE_R_NOT_INITIALISED
+ {"NOT_INITIALISED", ERR_LIB_ENGINE, ENGINE_R_NOT_INITIALISED},
+ #else
+ {"NOT_INITIALISED", 38, 117},
+ #endif
+ #ifdef ENGINE_R_NOT_LOADED
+ {"NOT_LOADED", ERR_LIB_ENGINE, ENGINE_R_NOT_LOADED},
+ #else
+ {"NOT_LOADED", 38, 112},
+ #endif
+ #ifdef ENGINE_R_NO_CONTROL_FUNCTION
+ {"NO_CONTROL_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_CONTROL_FUNCTION},
+ #else
+ {"NO_CONTROL_FUNCTION", 38, 120},
+ #endif
+ #ifdef ENGINE_R_NO_INDEX
+ {"NO_INDEX", ERR_LIB_ENGINE, ENGINE_R_NO_INDEX},
+ #else
+ {"NO_INDEX", 38, 144},
+ #endif
+ #ifdef ENGINE_R_NO_LOAD_FUNCTION
+ {"NO_LOAD_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_LOAD_FUNCTION},
+ #else
+ {"NO_LOAD_FUNCTION", 38, 125},
+ #endif
+ #ifdef ENGINE_R_NO_REFERENCE
+ {"NO_REFERENCE", ERR_LIB_ENGINE, ENGINE_R_NO_REFERENCE},
+ #else
+ {"NO_REFERENCE", 38, 130},
+ #endif
+ #ifdef ENGINE_R_NO_SUCH_ENGINE
+ {"NO_SUCH_ENGINE", ERR_LIB_ENGINE, ENGINE_R_NO_SUCH_ENGINE},
+ #else
+ {"NO_SUCH_ENGINE", 38, 116},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_CIPHER
+ {"UNIMPLEMENTED_CIPHER", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_CIPHER},
+ #else
+ {"UNIMPLEMENTED_CIPHER", 38, 146},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_DIGEST
+ {"UNIMPLEMENTED_DIGEST", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_DIGEST},
+ #else
+ {"UNIMPLEMENTED_DIGEST", 38, 147},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD
+ {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD},
+ #else
+ {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", 38, 101},
+ #endif
+ #ifdef ENGINE_R_VERSION_INCOMPATIBILITY
+ {"VERSION_INCOMPATIBILITY", ERR_LIB_ENGINE, ENGINE_R_VERSION_INCOMPATIBILITY},
+ #else
+ {"VERSION_INCOMPATIBILITY", 38, 145},
+ #endif
+ #ifdef EVP_R_AES_KEY_SETUP_FAILED
+ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED},
+ #else
+ {"AES_KEY_SETUP_FAILED", 6, 143},
+ #endif
+ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED
+ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED},
+ #else
+ {"ARIA_KEY_SETUP_FAILED", 6, 176},
+ #endif
+ #ifdef EVP_R_BAD_DECRYPT
+ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT},
+ #else
+ {"BAD_DECRYPT", 6, 100},
+ #endif
+ #ifdef EVP_R_BAD_KEY_LENGTH
+ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH},
+ #else
+ {"BAD_KEY_LENGTH", 6, 195},
+ #endif
+ #ifdef EVP_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 6, 155},
+ #endif
+ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED
+ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED},
+ #else
+ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157},
+ #endif
+ #ifdef EVP_R_CIPHER_PARAMETER_ERROR
+ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR},
+ #else
+ {"CIPHER_PARAMETER_ERROR", 6, 122},
+ #endif
+ #ifdef EVP_R_COMMAND_NOT_SUPPORTED
+ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED},
+ #else
+ {"COMMAND_NOT_SUPPORTED", 6, 147},
+ #endif
+ #ifdef EVP_R_COPY_ERROR
+ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR},
+ #else
+ {"COPY_ERROR", 6, 173},
+ #endif
+ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED
+ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_NOT_IMPLEMENTED", 6, 132},
+ #endif
+ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED
+ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133},
+ #endif
+ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH
+ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH},
+ #else
+ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138},
+ #endif
+ #ifdef EVP_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 6, 114},
+ #endif
+ #ifdef EVP_R_DIFFERENT_KEY_TYPES
+ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES},
+ #else
+ {"DIFFERENT_KEY_TYPES", 6, 101},
+ #endif
+ #ifdef EVP_R_DIFFERENT_PARAMETERS
+ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS},
+ #else
+ {"DIFFERENT_PARAMETERS", 6, 153},
+ #endif
+ #ifdef EVP_R_ERROR_LOADING_SECTION
+ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION},
+ #else
+ {"ERROR_LOADING_SECTION", 6, 165},
+ #endif
+ #ifdef EVP_R_ERROR_SETTING_FIPS_MODE
+ {"ERROR_SETTING_FIPS_MODE", ERR_LIB_EVP, EVP_R_ERROR_SETTING_FIPS_MODE},
+ #else
+ {"ERROR_SETTING_FIPS_MODE", 6, 166},
+ #endif
+ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY
+ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY},
+ #else
+ {"EXPECTING_AN_HMAC_KEY", 6, 174},
+ #endif
+ #ifdef EVP_R_EXPECTING_AN_RSA_KEY
+ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY},
+ #else
+ {"EXPECTING_AN_RSA_KEY", 6, 127},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_DH_KEY
+ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY},
+ #else
+ {"EXPECTING_A_DH_KEY", 6, 128},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_DSA_KEY
+ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY},
+ #else
+ {"EXPECTING_A_DSA_KEY", 6, 129},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_EC_KEY
+ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY},
+ #else
+ {"EXPECTING_A_EC_KEY", 6, 142},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY
+ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY},
+ #else
+ {"EXPECTING_A_POLY1305_KEY", 6, 164},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY
+ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY},
+ #else
+ {"EXPECTING_A_SIPHASH_KEY", 6, 175},
+ #endif
+ #ifdef EVP_R_FIPS_MODE_NOT_SUPPORTED
+ {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_FIPS_MODE_NOT_SUPPORTED},
+ #else
+ {"FIPS_MODE_NOT_SUPPORTED", 6, 167},
+ #endif
+ #ifdef EVP_R_GET_RAW_KEY_FAILED
+ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
+ #else
+ {"GET_RAW_KEY_FAILED", 6, 182},
+ #endif
+ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS
+ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS},
+ #else
+ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171},
+ #endif
+ #ifdef EVP_R_INITIALIZATION_ERROR
+ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR},
+ #else
+ {"INITIALIZATION_ERROR", 6, 134},
+ #endif
+ #ifdef EVP_R_INPUT_NOT_INITIALIZED
+ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED},
+ #else
+ {"INPUT_NOT_INITIALIZED", 6, 111},
+ #endif
+ #ifdef EVP_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 6, 152},
+ #endif
+ #ifdef EVP_R_INVALID_FIPS_MODE
+ {"INVALID_FIPS_MODE", ERR_LIB_EVP, EVP_R_INVALID_FIPS_MODE},
+ #else
+ {"INVALID_FIPS_MODE", 6, 168},
+ #endif
+ #ifdef EVP_R_INVALID_IV_LENGTH
+ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH},
+ #else
+ {"INVALID_IV_LENGTH", 6, 194},
+ #endif
+ #ifdef EVP_R_INVALID_KEY
+ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY},
+ #else
+ {"INVALID_KEY", 6, 163},
+ #endif
+ #ifdef EVP_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 6, 130},
+ #endif
+ #ifdef EVP_R_INVALID_OPERATION
+ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION},
+ #else
+ {"INVALID_OPERATION", 6, 148},
+ #endif
+ #ifdef EVP_R_KEYGEN_FAILURE
+ {"KEYGEN_FAILURE", ERR_LIB_EVP, EVP_R_KEYGEN_FAILURE},
+ #else
+ {"KEYGEN_FAILURE", 6, 120},
+ #endif
+ #ifdef EVP_R_KEY_SETUP_FAILED
+ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED},
+ #else
+ {"KEY_SETUP_FAILED", 6, 180},
+ #endif
+ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED
+ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED},
+ #else
+ {"MEMORY_LIMIT_EXCEEDED", 6, 172},
+ #endif
+ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL
+ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL},
+ #else
+ {"MESSAGE_DIGEST_IS_NULL", 6, 159},
+ #endif
+ #ifdef EVP_R_METHOD_NOT_SUPPORTED
+ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED},
+ #else
+ {"METHOD_NOT_SUPPORTED", 6, 144},
+ #endif
+ #ifdef EVP_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 6, 103},
+ #endif
+ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH
+ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH},
+ #else
+ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178},
+ #endif
+ #ifdef EVP_R_NO_CIPHER_SET
+ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET},
+ #else
+ {"NO_CIPHER_SET", 6, 131},
+ #endif
+ #ifdef EVP_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 6, 158},
+ #endif
+ #ifdef EVP_R_NO_DIGEST_SET
+ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET},
+ #else
+ {"NO_DIGEST_SET", 6, 139},
+ #endif
+ #ifdef EVP_R_NO_KEY_SET
+ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET},
+ #else
+ {"NO_KEY_SET", 6, 154},
+ #endif
+ #ifdef EVP_R_NO_OPERATION_SET
+ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET},
+ #else
+ {"NO_OPERATION_SET", 6, 149},
+ #endif
+ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED
+ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED},
+ #else
+ {"ONLY_ONESHOT_SUPPORTED", 6, 177},
+ #endif
+ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
+ #endif
+ #ifdef EVP_R_OPERATON_NOT_INITIALIZED
+ {"OPERATON_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATON_NOT_INITIALIZED},
+ #else
+ {"OPERATON_NOT_INITIALIZED", 6, 151},
+ #endif
+ #ifdef EVP_R_PARTIALLY_OVERLAPPING
+ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING},
+ #else
+ {"PARTIALLY_OVERLAPPING", 6, 162},
+ #endif
+ #ifdef EVP_R_PBKDF2_ERROR
+ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR},
+ #else
+ {"PBKDF2_ERROR", 6, 181},
+ #endif
+ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED
+ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED},
+ #else
+ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179},
+ #endif
+ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR
+ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR},
+ #else
+ {"PRIVATE_KEY_DECODE_ERROR", 6, 145},
+ #endif
+ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR
+ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR},
+ #else
+ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146},
+ #endif
+ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA
+ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA},
+ #else
+ {"PUBLIC_KEY_NOT_RSA", 6, 106},
+ #endif
+ #ifdef EVP_R_UNKNOWN_CIPHER
+ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
+ #else
+ {"UNKNOWN_CIPHER", 6, 160},
+ #endif
+ #ifdef EVP_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 6, 161},
+ #endif
+ #ifdef EVP_R_UNKNOWN_OPTION
+ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
+ #else
+ {"UNKNOWN_OPTION", 6, 169},
+ #endif
+ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM
+ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM},
+ #else
+ {"UNKNOWN_PBE_ALGORITHM", 6, 121},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_ALGORITHM
+ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
+ #else
+ {"UNSUPPORTED_ALGORITHM", 6, 156},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 6, 107},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH
+ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH},
+ #else
+ {"UNSUPPORTED_KEYLENGTH", 6, 123},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION
+ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION},
+ #else
+ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE
+ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE},
+ #else
+ {"UNSUPPORTED_KEY_SIZE", 6, 108},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
+ #else
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_PRF
+ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF},
+ #else
+ {"UNSUPPORTED_PRF", 6, 125},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM
+ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM},
+ #else
+ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE
+ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE},
+ #else
+ {"UNSUPPORTED_SALT_TYPE", 6, 126},
+ #endif
+ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED
+ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED},
+ #else
+ {"WRAP_MODE_NOT_ALLOWED", 6, 170},
+ #endif
+ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH
+ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH},
+ #else
+ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109},
+ #endif
+ #ifdef EVP_R_XTS_DUPLICATED_KEYS
+ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS},
+ #else
+ {"XTS_DUPLICATED_KEYS", 6, 183},
+ #endif
+ #ifdef KDF_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_KDF, KDF_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 52, 100},
+ #endif
+ #ifdef KDF_R_MISSING_ITERATION_COUNT
+ {"MISSING_ITERATION_COUNT", ERR_LIB_KDF, KDF_R_MISSING_ITERATION_COUNT},
+ #else
+ {"MISSING_ITERATION_COUNT", 52, 109},
+ #endif
+ #ifdef KDF_R_MISSING_KEY
+ {"MISSING_KEY", ERR_LIB_KDF, KDF_R_MISSING_KEY},
+ #else
+ {"MISSING_KEY", 52, 104},
+ #endif
+ #ifdef KDF_R_MISSING_MESSAGE_DIGEST
+ {"MISSING_MESSAGE_DIGEST", ERR_LIB_KDF, KDF_R_MISSING_MESSAGE_DIGEST},
+ #else
+ {"MISSING_MESSAGE_DIGEST", 52, 105},
+ #endif
+ #ifdef KDF_R_MISSING_PARAMETER
+ {"MISSING_PARAMETER", ERR_LIB_KDF, KDF_R_MISSING_PARAMETER},
+ #else
+ {"MISSING_PARAMETER", 52, 101},
+ #endif
+ #ifdef KDF_R_MISSING_PASS
+ {"MISSING_PASS", ERR_LIB_KDF, KDF_R_MISSING_PASS},
+ #else
+ {"MISSING_PASS", 52, 110},
+ #endif
+ #ifdef KDF_R_MISSING_SALT
+ {"MISSING_SALT", ERR_LIB_KDF, KDF_R_MISSING_SALT},
+ #else
+ {"MISSING_SALT", 52, 111},
+ #endif
+ #ifdef KDF_R_MISSING_SECRET
+ {"MISSING_SECRET", ERR_LIB_KDF, KDF_R_MISSING_SECRET},
+ #else
+ {"MISSING_SECRET", 52, 107},
+ #endif
+ #ifdef KDF_R_MISSING_SEED
+ {"MISSING_SEED", ERR_LIB_KDF, KDF_R_MISSING_SEED},
+ #else
+ {"MISSING_SEED", 52, 106},
+ #endif
+ #ifdef KDF_R_UNKNOWN_PARAMETER_TYPE
+ {"UNKNOWN_PARAMETER_TYPE", ERR_LIB_KDF, KDF_R_UNKNOWN_PARAMETER_TYPE},
+ #else
+ {"UNKNOWN_PARAMETER_TYPE", 52, 103},
+ #endif
+ #ifdef KDF_R_VALUE_ERROR
+ {"VALUE_ERROR", ERR_LIB_KDF, KDF_R_VALUE_ERROR},
+ #else
+ {"VALUE_ERROR", 52, 108},
+ #endif
+ #ifdef KDF_R_VALUE_MISSING
+ {"VALUE_MISSING", ERR_LIB_KDF, KDF_R_VALUE_MISSING},
+ #else
+ {"VALUE_MISSING", 52, 102},
+ #endif
+ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 39, 101},
+ #endif
+ #ifdef OCSP_R_DIGEST_ERR
+ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR},
+ #else
+ {"DIGEST_ERR", 39, 102},
+ #endif
+ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD
+ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD},
+ #else
+ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122},
+ #endif
+ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD
+ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD},
+ #else
+ {"ERROR_IN_THISUPDATE_FIELD", 39, 123},
+ #endif
+ #ifdef OCSP_R_ERROR_PARSING_URL
+ {"ERROR_PARSING_URL", ERR_LIB_OCSP, OCSP_R_ERROR_PARSING_URL},
+ #else
+ {"ERROR_PARSING_URL", 39, 121},
+ #endif
+ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE
+ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE},
+ #else
+ {"MISSING_OCSPSIGNING_USAGE", 39, 103},
+ #endif
+ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE
+ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE},
+ #else
+ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124},
+ #endif
+ #ifdef OCSP_R_NOT_BASIC_RESPONSE
+ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE},
+ #else
+ {"NOT_BASIC_RESPONSE", 39, 104},
+ #endif
+ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN
+ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN},
+ #else
+ {"NO_CERTIFICATES_IN_CHAIN", 39, 105},
+ #endif
+ #ifdef OCSP_R_NO_RESPONSE_DATA
+ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA},
+ #else
+ {"NO_RESPONSE_DATA", 39, 108},
+ #endif
+ #ifdef OCSP_R_NO_REVOKED_TIME
+ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME},
+ #else
+ {"NO_REVOKED_TIME", 39, 109},
+ #endif
+ #ifdef OCSP_R_NO_SIGNER_KEY
+ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY},
+ #else
+ {"NO_SIGNER_KEY", 39, 130},
+ #endif
+ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110},
+ #endif
+ #ifdef OCSP_R_REQUEST_NOT_SIGNED
+ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED},
+ #else
+ {"REQUEST_NOT_SIGNED", 39, 128},
+ #endif
+ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA
+ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA},
+ #else
+ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111},
+ #endif
+ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED
+ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED},
+ #else
+ {"ROOT_CA_NOT_TRUSTED", 39, 112},
+ #endif
+ #ifdef OCSP_R_SERVER_RESPONSE_ERROR
+ {"SERVER_RESPONSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_ERROR},
+ #else
+ {"SERVER_RESPONSE_ERROR", 39, 114},
+ #endif
+ #ifdef OCSP_R_SERVER_RESPONSE_PARSE_ERROR
+ {"SERVER_RESPONSE_PARSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_PARSE_ERROR},
+ #else
+ {"SERVER_RESPONSE_PARSE_ERROR", 39, 115},
+ #endif
+ #ifdef OCSP_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 39, 117},
+ #endif
+ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118},
+ #endif
+ #ifdef OCSP_R_STATUS_EXPIRED
+ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED},
+ #else
+ {"STATUS_EXPIRED", 39, 125},
+ #endif
+ #ifdef OCSP_R_STATUS_NOT_YET_VALID
+ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID},
+ #else
+ {"STATUS_NOT_YET_VALID", 39, 126},
+ #endif
+ #ifdef OCSP_R_STATUS_TOO_OLD
+ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD},
+ #else
+ {"STATUS_TOO_OLD", 39, 127},
+ #endif
+ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST
+ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST},
+ #else
+ {"UNKNOWN_MESSAGE_DIGEST", 39, 119},
+ #endif
+ #ifdef OCSP_R_UNKNOWN_NID
+ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID},
+ #else
+ {"UNKNOWN_NID", 39, 120},
+ #endif
+ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE
+ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE},
+ #else
+ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129},
+ #endif
#ifdef PEM_R_BAD_BASE64_DECODE
{"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE},
#else
- {"BAD_BASE64_DECODE", 9, 100},
+ {"BAD_BASE64_DECODE", 9, 100},
#endif
#ifdef PEM_R_BAD_DECRYPT
{"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT},
#else
- {"BAD_DECRYPT", 9, 101},
+ {"BAD_DECRYPT", 9, 101},
#endif
#ifdef PEM_R_BAD_END_LINE
{"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE},
#else
- {"BAD_END_LINE", 9, 102},
+ {"BAD_END_LINE", 9, 102},
#endif
#ifdef PEM_R_BAD_IV_CHARS
{"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS},
#else
- {"BAD_IV_CHARS", 9, 103},
+ {"BAD_IV_CHARS", 9, 103},
#endif
#ifdef PEM_R_BAD_MAGIC_NUMBER
{"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER},
#else
- {"BAD_MAGIC_NUMBER", 9, 116},
+ {"BAD_MAGIC_NUMBER", 9, 116},
#endif
#ifdef PEM_R_BAD_PASSWORD_READ
{"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ},
#else
- {"BAD_PASSWORD_READ", 9, 104},
+ {"BAD_PASSWORD_READ", 9, 104},
#endif
#ifdef PEM_R_BAD_VERSION_NUMBER
{"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER},
#else
- {"BAD_VERSION_NUMBER", 9, 117},
+ {"BAD_VERSION_NUMBER", 9, 117},
#endif
#ifdef PEM_R_BIO_WRITE_FAILURE
{"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE},
#else
- {"BIO_WRITE_FAILURE", 9, 118},
+ {"BIO_WRITE_FAILURE", 9, 118},
#endif
#ifdef PEM_R_CIPHER_IS_NULL
{"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL},
#else
- {"CIPHER_IS_NULL", 9, 127},
+ {"CIPHER_IS_NULL", 9, 127},
#endif
#ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY
{"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY},
#else
- {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115},
+ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115},
#endif
#ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB
{"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB},
#else
- {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119},
+ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119},
#endif
#ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB
{"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB},
#else
- {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120},
+ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120},
+ #endif
+ #ifdef PEM_R_HEADER_TOO_LONG
+ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG},
+ #else
+ {"HEADER_TOO_LONG", 9, 128},
#endif
- #ifdef PEM_R_HEADER_TOO_LONG
- {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG},
- #else
- {"HEADER_TOO_LONG", 9, 128},
- #endif
#ifdef PEM_R_INCONSISTENT_HEADER
{"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER},
#else
- {"INCONSISTENT_HEADER", 9, 121},
+ {"INCONSISTENT_HEADER", 9, 121},
#endif
#ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR
{"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR},
#else
- {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122},
+ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122},
#endif
#ifdef PEM_R_KEYBLOB_TOO_SHORT
{"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT},
#else
- {"KEYBLOB_TOO_SHORT", 9, 123},
+ {"KEYBLOB_TOO_SHORT", 9, 123},
+ #endif
+ #ifdef PEM_R_MISSING_DEK_IV
+ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV},
+ #else
+ {"MISSING_DEK_IV", 9, 129},
#endif
- #ifdef PEM_R_MISSING_DEK_IV
- {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV},
- #else
- {"MISSING_DEK_IV", 9, 129},
- #endif
#ifdef PEM_R_NOT_DEK_INFO
{"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO},
#else
- {"NOT_DEK_INFO", 9, 105},
+ {"NOT_DEK_INFO", 9, 105},
#endif
#ifdef PEM_R_NOT_ENCRYPTED
{"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED},
#else
- {"NOT_ENCRYPTED", 9, 106},
+ {"NOT_ENCRYPTED", 9, 106},
#endif
#ifdef PEM_R_NOT_PROC_TYPE
{"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE},
#else
- {"NOT_PROC_TYPE", 9, 107},
+ {"NOT_PROC_TYPE", 9, 107},
#endif
#ifdef PEM_R_NO_START_LINE
{"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE},
#else
- {"NO_START_LINE", 9, 108},
+ {"NO_START_LINE", 9, 108},
#endif
#ifdef PEM_R_PROBLEMS_GETTING_PASSWORD
{"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD},
#else
- {"PROBLEMS_GETTING_PASSWORD", 9, 109},
+ {"PROBLEMS_GETTING_PASSWORD", 9, 109},
#endif
#ifdef PEM_R_PUBLIC_KEY_NO_RSA
{"PUBLIC_KEY_NO_RSA", ERR_LIB_PEM, PEM_R_PUBLIC_KEY_NO_RSA},
#else
- {"PUBLIC_KEY_NO_RSA", 9, 110},
+ {"PUBLIC_KEY_NO_RSA", 9, 110},
#endif
#ifdef PEM_R_PVK_DATA_TOO_SHORT
{"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT},
#else
- {"PVK_DATA_TOO_SHORT", 9, 124},
+ {"PVK_DATA_TOO_SHORT", 9, 124},
#endif
#ifdef PEM_R_PVK_TOO_SHORT
{"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT},
#else
- {"PVK_TOO_SHORT", 9, 125},
+ {"PVK_TOO_SHORT", 9, 125},
#endif
#ifdef PEM_R_READ_KEY
{"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY},
#else
- {"READ_KEY", 9, 111},
+ {"READ_KEY", 9, 111},
#endif
#ifdef PEM_R_SHORT_HEADER
{"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER},
#else
- {"SHORT_HEADER", 9, 112},
+ {"SHORT_HEADER", 9, 112},
+ #endif
+ #ifdef PEM_R_UNEXPECTED_DEK_IV
+ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV},
+ #else
+ {"UNEXPECTED_DEK_IV", 9, 130},
#endif
- #ifdef PEM_R_UNEXPECTED_DEK_IV
- {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV},
- #else
- {"UNEXPECTED_DEK_IV", 9, 130},
- #endif
#ifdef PEM_R_UNSUPPORTED_CIPHER
{"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER},
#else
- {"UNSUPPORTED_CIPHER", 9, 113},
+ {"UNSUPPORTED_CIPHER", 9, 113},
#endif
#ifdef PEM_R_UNSUPPORTED_ENCRYPTION
{"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION},
#else
- {"UNSUPPORTED_ENCRYPTION", 9, 114},
+ {"UNSUPPORTED_ENCRYPTION", 9, 114},
#endif
#ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS
{"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS},
#else
- {"UNSUPPORTED_KEY_COMPONENTS", 9, 126},
- #endif
- #ifdef PKCS12_R_CANT_PACK_STRUCTURE
- {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
- #else
- {"CANT_PACK_STRUCTURE", 35, 100},
- #endif
- #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA
- {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA},
- #else
- {"CONTENT_TYPE_NOT_DATA", 35, 121},
- #endif
- #ifdef PKCS12_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 35, 101},
- #endif
- #ifdef PKCS12_R_ENCODE_ERROR
- {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR},
- #else
- {"ENCODE_ERROR", 35, 102},
- #endif
- #ifdef PKCS12_R_ENCRYPT_ERROR
- {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR},
- #else
- {"ENCRYPT_ERROR", 35, 103},
- #endif
- #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE
- {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE},
- #else
- {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120},
- #endif
- #ifdef PKCS12_R_INVALID_NULL_ARGUMENT
- {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT},
- #else
- {"INVALID_NULL_ARGUMENT", 35, 104},
- #endif
- #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER
- {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER},
- #else
- {"INVALID_NULL_PKCS12_POINTER", 35, 105},
- #endif
- #ifdef PKCS12_R_IV_GEN_ERROR
- {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR},
- #else
- {"IV_GEN_ERROR", 35, 106},
- #endif
- #ifdef PKCS12_R_KEY_GEN_ERROR
- {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR},
- #else
- {"KEY_GEN_ERROR", 35, 107},
- #endif
- #ifdef PKCS12_R_MAC_ABSENT
- {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT},
- #else
- {"MAC_ABSENT", 35, 108},
- #endif
- #ifdef PKCS12_R_MAC_GENERATION_ERROR
- {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR},
- #else
- {"MAC_GENERATION_ERROR", 35, 109},
- #endif
- #ifdef PKCS12_R_MAC_SETUP_ERROR
- {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR},
- #else
- {"MAC_SETUP_ERROR", 35, 110},
- #endif
- #ifdef PKCS12_R_MAC_STRING_SET_ERROR
- {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR},
- #else
- {"MAC_STRING_SET_ERROR", 35, 111},
- #endif
- #ifdef PKCS12_R_MAC_VERIFY_FAILURE
- {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE},
- #else
- {"MAC_VERIFY_FAILURE", 35, 113},
- #endif
- #ifdef PKCS12_R_PARSE_ERROR
- {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR},
- #else
- {"PARSE_ERROR", 35, 114},
- #endif
- #ifdef PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR
- {"PKCS12_ALGOR_CIPHERINIT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR},
- #else
- {"PKCS12_ALGOR_CIPHERINIT_ERROR", 35, 115},
- #endif
- #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR
- {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR},
- #else
- {"PKCS12_CIPHERFINAL_ERROR", 35, 116},
- #endif
- #ifdef PKCS12_R_PKCS12_PBE_CRYPT_ERROR
- {"PKCS12_PBE_CRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_PBE_CRYPT_ERROR},
- #else
- {"PKCS12_PBE_CRYPT_ERROR", 35, 117},
- #endif
- #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM
- {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_DIGEST_ALGORITHM", 35, 118},
- #endif
- #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE
- {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE},
- #else
- {"UNSUPPORTED_PKCS12_MODE", 35, 119},
- #endif
- #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 33, 117},
- #endif
- #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
- #else
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144},
- #endif
- #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED
- {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED},
- #else
- {"CIPHER_NOT_INITIALIZED", 33, 116},
- #endif
- #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT
- {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT},
- #else
- {"CONTENT_AND_DATA_PRESENT", 33, 118},
- #endif
- #ifdef PKCS7_R_CTRL_ERROR
- {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR},
- #else
- {"CTRL_ERROR", 33, 152},
- #endif
- #ifdef PKCS7_R_DECRYPT_ERROR
- {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR},
- #else
- {"DECRYPT_ERROR", 33, 119},
- #endif
- #ifdef PKCS7_R_DIGEST_FAILURE
- {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE},
- #else
- {"DIGEST_FAILURE", 33, 101},
- #endif
- #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE
- {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE},
- #else
- {"ENCRYPTION_CTRL_FAILURE", 33, 149},
- #endif
- #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150},
- #endif
- #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT
- {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT},
- #else
- {"ERROR_ADDING_RECIPIENT", 33, 120},
- #endif
- #ifdef PKCS7_R_ERROR_SETTING_CIPHER
- {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER},
- #else
- {"ERROR_SETTING_CIPHER", 33, 121},
- #endif
- #ifdef PKCS7_R_INVALID_NULL_POINTER
- {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER},
- #else
- {"INVALID_NULL_POINTER", 33, 143},
- #endif
- #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE
- {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE},
- #else
- {"INVALID_SIGNED_DATA_TYPE", 33, 155},
- #endif
- #ifdef PKCS7_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 33, 122},
- #endif
- #ifdef PKCS7_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 33, 151},
- #endif
- #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND
- {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND},
- #else
- {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154},
- #endif
- #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE
- {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE},
- #else
- {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115},
- #endif
- #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA
- {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA},
- #else
- {"NO_SIGNATURES_ON_DATA", 33, 123},
- #endif
- #ifdef PKCS7_R_NO_SIGNERS
- {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS},
- #else
- {"NO_SIGNERS", 33, 142},
- #endif
- #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE
- {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104},
- #endif
- #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR
- {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR},
- #else
- {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124},
- #endif
- #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR
- {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR},
- #else
- {"PKCS7_ADD_SIGNER_ERROR", 33, 153},
- #endif
- #ifdef PKCS7_R_PKCS7_DATASIGN
- {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN},
- #else
- {"PKCS7_DATASIGN", 33, 145},
- #endif
- #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127},
- #endif
- #ifdef PKCS7_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 33, 105},
- #endif
- #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128},
- #endif
- #ifdef PKCS7_R_SIGNING_CTRL_FAILURE
- {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE},
- #else
- {"SIGNING_CTRL_FAILURE", 33, 147},
- #endif
- #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148},
- #endif
- #ifdef PKCS7_R_SMIME_TEXT_ERROR
- {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR},
- #else
- {"SMIME_TEXT_ERROR", 33, 129},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE
- {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE},
- #else
- {"UNABLE_TO_FIND_CERTIFICATE", 33, 106},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO
- {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO},
- #else
- {"UNABLE_TO_FIND_MEM_BIO", 33, 107},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST
- {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST},
- #else
- {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108},
- #endif
- #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE
- {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE},
- #else
- {"UNKNOWN_DIGEST_TYPE", 33, 109},
- #endif
- #ifdef PKCS7_R_UNKNOWN_OPERATION
- {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION},
- #else
- {"UNKNOWN_OPERATION", 33, 110},
- #endif
- #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE
- {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE},
- #else
- {"UNSUPPORTED_CIPHER_TYPE", 33, 111},
- #endif
- #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 33, 112},
- #endif
- #ifdef PKCS7_R_WRONG_CONTENT_TYPE
- {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE},
- #else
- {"WRONG_CONTENT_TYPE", 33, 113},
- #endif
- #ifdef PKCS7_R_WRONG_PKCS7_TYPE
- {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE},
- #else
- {"WRONG_PKCS7_TYPE", 33, 114},
- #endif
- #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG
- {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG},
- #else
- {"ADDITIONAL_INPUT_TOO_LONG", 36, 102},
- #endif
- #ifdef RAND_R_ALREADY_INSTANTIATED
- {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED},
- #else
- {"ALREADY_INSTANTIATED", 36, 103},
- #endif
- #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE
- {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE},
- #else
- {"ARGUMENT_OUT_OF_RANGE", 36, 105},
- #endif
- #ifdef RAND_R_CANNOT_OPEN_FILE
- {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE},
- #else
- {"CANNOT_OPEN_FILE", 36, 121},
- #endif
- #ifdef RAND_R_DRBG_ALREADY_INITIALIZED
- {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED},
- #else
- {"DRBG_ALREADY_INITIALIZED", 36, 129},
- #endif
- #ifdef RAND_R_DRBG_NOT_INITIALISED
- {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED},
- #else
- {"DRBG_NOT_INITIALISED", 36, 104},
- #endif
- #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG
- {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG},
- #else
- {"ENTROPY_INPUT_TOO_LONG", 36, 106},
- #endif
- #ifdef RAND_R_ENTROPY_OUT_OF_RANGE
- {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE},
- #else
- {"ENTROPY_OUT_OF_RANGE", 36, 124},
- #endif
- #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED
- {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED},
- #else
- {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127},
- #endif
- #ifdef RAND_R_ERROR_INITIALISING_DRBG
- {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG},
- #else
- {"ERROR_INITIALISING_DRBG", 36, 107},
- #endif
- #ifdef RAND_R_ERROR_INSTANTIATING_DRBG
- {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG},
- #else
- {"ERROR_INSTANTIATING_DRBG", 36, 108},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT
- {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT},
- #else
- {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY
- {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY},
- #else
- {"ERROR_RETRIEVING_ENTROPY", 36, 110},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_NONCE
- {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE},
- #else
- {"ERROR_RETRIEVING_NONCE", 36, 111},
- #endif
- #ifdef RAND_R_FAILED_TO_CREATE_LOCK
- {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK},
- #else
- {"FAILED_TO_CREATE_LOCK", 36, 126},
- #endif
- #ifdef RAND_R_FUNC_NOT_IMPLEMENTED
- {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED},
- #else
- {"FUNC_NOT_IMPLEMENTED", 36, 101},
- #endif
- #ifdef RAND_R_FWRITE_ERROR
- {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR},
- #else
- {"FWRITE_ERROR", 36, 123},
- #endif
- #ifdef RAND_R_GENERATE_ERROR
- {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR},
- #else
- {"GENERATE_ERROR", 36, 112},
- #endif
- #ifdef RAND_R_INTERNAL_ERROR
- {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR},
- #else
- {"INTERNAL_ERROR", 36, 113},
- #endif
- #ifdef RAND_R_IN_ERROR_STATE
- {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
- #else
- {"IN_ERROR_STATE", 36, 114},
- #endif
- #ifdef RAND_R_NOT_A_REGULAR_FILE
- {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE},
- #else
- {"NOT_A_REGULAR_FILE", 36, 122},
- #endif
- #ifdef RAND_R_NOT_INSTANTIATED
- {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED},
- #else
- {"NOT_INSTANTIATED", 36, 115},
- #endif
- #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED
- {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED},
- #else
- {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128},
- #endif
- #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED
- {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED},
- #else
- {"PARENT_LOCKING_NOT_ENABLED", 36, 130},
- #endif
- #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK
- {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK},
- #else
- {"PARENT_STRENGTH_TOO_WEAK", 36, 131},
- #endif
- #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG
- {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG},
- #else
- {"PERSONALISATION_STRING_TOO_LONG", 36, 116},
- #endif
- #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED
- {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED},
- #else
- {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133},
- #endif
- #ifdef RAND_R_PRNG_NOT_SEEDED
- {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED},
- #else
- {"PRNG_NOT_SEEDED", 36, 100},
- #endif
- #ifdef RAND_R_RANDOM_POOL_OVERFLOW
- {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW},
- #else
- {"RANDOM_POOL_OVERFLOW", 36, 125},
- #endif
- #ifdef RAND_R_RANDOM_POOL_UNDERFLOW
- {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW},
- #else
- {"RANDOM_POOL_UNDERFLOW", 36, 134},
- #endif
- #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG
- {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG},
- #else
- {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117},
- #endif
- #ifdef RAND_R_RESEED_ERROR
- {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR},
- #else
- {"RESEED_ERROR", 36, 118},
- #endif
- #ifdef RAND_R_SELFTEST_FAILURE
- {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE},
- #else
- {"SELFTEST_FAILURE", 36, 119},
- #endif
- #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED
- {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED},
- #else
- {"TOO_LITTLE_NONCE_REQUESTED", 36, 135},
- #endif
- #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED
- {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED},
- #else
- {"TOO_MUCH_NONCE_REQUESTED", 36, 136},
- #endif
- #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS
- {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS},
- #else
- {"UNSUPPORTED_DRBG_FLAGS", 36, 132},
- #endif
- #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE
- {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE},
- #else
- {"UNSUPPORTED_DRBG_TYPE", 36, 120},
- #endif
- #ifdef RSA_R_ALGORITHM_MISMATCH
- {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH},
- #else
- {"ALGORITHM_MISMATCH", 4, 100},
- #endif
- #ifdef RSA_R_BAD_E_VALUE
- {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE},
- #else
- {"BAD_E_VALUE", 4, 101},
- #endif
- #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT
- {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT},
- #else
- {"BAD_FIXED_HEADER_DECRYPT", 4, 102},
- #endif
- #ifdef RSA_R_BAD_PAD_BYTE_COUNT
- {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT},
- #else
- {"BAD_PAD_BYTE_COUNT", 4, 103},
- #endif
- #ifdef RSA_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 4, 104},
- #endif
- #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01
- {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01},
- #else
- {"BLOCK_TYPE_IS_NOT_01", 4, 106},
- #endif
- #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02
- {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02},
- #else
- {"BLOCK_TYPE_IS_NOT_02", 4, 107},
- #endif
- #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN
- {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN},
- #else
- {"DATA_GREATER_THAN_MOD_LEN", 4, 108},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE
- {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE},
- #else
- {"DATA_TOO_LARGE", 4, 109},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
- {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE},
- #else
- {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS
- {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS},
- #else
- {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132},
- #endif
- #ifdef RSA_R_DATA_TOO_SMALL
- {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL},
- #else
- {"DATA_TOO_SMALL", 4, 111},
- #endif
- #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE
- {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE},
- #else
- {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122},
- #endif
- #ifdef RSA_R_DIGEST_DOES_NOT_MATCH
- {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH},
- #else
- {"DIGEST_DOES_NOT_MATCH", 4, 158},
- #endif
- #ifdef RSA_R_DIGEST_NOT_ALLOWED
- {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED},
- #else
- {"DIGEST_NOT_ALLOWED", 4, 145},
- #endif
- #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY
- {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY},
- #else
- {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112},
- #endif
- #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D
- {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D},
- #else
- {"DMP1_NOT_CONGRUENT_TO_D", 4, 124},
- #endif
- #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D
- {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D},
- #else
- {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125},
- #endif
- #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1
- {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1},
- #else
- {"D_E_NOT_CONGRUENT_TO_1", 4, 123},
- #endif
- #ifdef RSA_R_FIRST_OCTET_INVALID
- {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID},
- #else
- {"FIRST_OCTET_INVALID", 4, 133},
- #endif
- #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
- #else
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144},
- #endif
- #ifdef RSA_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 4, 157},
- #endif
- #ifdef RSA_R_INVALID_DIGEST_LENGTH
- {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH},
- #else
- {"INVALID_DIGEST_LENGTH", 4, 143},
- #endif
- #ifdef RSA_R_INVALID_HEADER
- {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER},
- #else
- {"INVALID_HEADER", 4, 137},
- #endif
- #ifdef RSA_R_INVALID_LABEL
- {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL},
- #else
- {"INVALID_LABEL", 4, 160},
- #endif
- #ifdef RSA_R_INVALID_MESSAGE_LENGTH
- {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH},
- #else
- {"INVALID_MESSAGE_LENGTH", 4, 131},
- #endif
- #ifdef RSA_R_INVALID_MGF1_MD
- {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD},
- #else
- {"INVALID_MGF1_MD", 4, 156},
- #endif
- #ifdef RSA_R_INVALID_MULTI_PRIME_KEY
- {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY},
- #else
- {"INVALID_MULTI_PRIME_KEY", 4, 167},
- #endif
- #ifdef RSA_R_INVALID_OAEP_PARAMETERS
- {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS},
- #else
- {"INVALID_OAEP_PARAMETERS", 4, 161},
- #endif
- #ifdef RSA_R_INVALID_PADDING
- {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING},
- #else
- {"INVALID_PADDING", 4, 138},
- #endif
- #ifdef RSA_R_INVALID_PADDING_MODE
- {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE},
- #else
- {"INVALID_PADDING_MODE", 4, 141},
- #endif
- #ifdef RSA_R_INVALID_PSS_PARAMETERS
- {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS},
- #else
- {"INVALID_PSS_PARAMETERS", 4, 149},
- #endif
- #ifdef RSA_R_INVALID_PSS_SALTLEN
- {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN},
- #else
- {"INVALID_PSS_SALTLEN", 4, 146},
- #endif
- #ifdef RSA_R_INVALID_SALT_LENGTH
- {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH},
- #else
- {"INVALID_SALT_LENGTH", 4, 150},
- #endif
- #ifdef RSA_R_INVALID_TRAILER
- {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER},
- #else
- {"INVALID_TRAILER", 4, 139},
- #endif
- #ifdef RSA_R_INVALID_X931_DIGEST
- {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST},
- #else
- {"INVALID_X931_DIGEST", 4, 142},
- #endif
- #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q
- {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q},
- #else
- {"IQMP_NOT_INVERSE_OF_Q", 4, 126},
- #endif
- #ifdef RSA_R_KEY_PRIME_NUM_INVALID
- {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID},
- #else
- {"KEY_PRIME_NUM_INVALID", 4, 165},
- #endif
- #ifdef RSA_R_KEY_SIZE_TOO_SMALL
- {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL},
- #else
- {"KEY_SIZE_TOO_SMALL", 4, 120},
- #endif
- #ifdef RSA_R_LAST_OCTET_INVALID
- {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID},
- #else
- {"LAST_OCTET_INVALID", 4, 134},
- #endif
- #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED
- {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED},
- #else
- {"MGF1_DIGEST_NOT_ALLOWED", 4, 152},
- #endif
- #ifdef RSA_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 4, 179},
- #endif
- #ifdef RSA_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 4, 105},
- #endif
- #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R
- {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R},
- #else
- {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168},
- #endif
- #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D
- {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D},
- #else
- {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169},
- #endif
- #ifdef RSA_R_MP_R_NOT_PRIME
- {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME},
- #else
- {"MP_R_NOT_PRIME", 4, 170},
- #endif
- #ifdef RSA_R_NO_PUBLIC_EXPONENT
- {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT},
- #else
- {"NO_PUBLIC_EXPONENT", 4, 140},
- #endif
- #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING
- {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING},
- #else
- {"NULL_BEFORE_BLOCK_MISSING", 4, 113},
- #endif
- #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES
- {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES},
- #else
- {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172},
- #endif
- #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q
- {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q},
- #else
- {"N_DOES_NOT_EQUAL_P_Q", 4, 127},
- #endif
- #ifdef RSA_R_OAEP_DECODING_ERROR
- {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR},
- #else
- {"OAEP_DECODING_ERROR", 4, 121},
- #endif
- #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148},
- #endif
- #ifdef RSA_R_PADDING_CHECK_FAILED
- {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED},
- #else
- {"PADDING_CHECK_FAILED", 4, 114},
- #endif
- #ifdef RSA_R_PKCS_DECODING_ERROR
- {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR},
- #else
- {"PKCS_DECODING_ERROR", 4, 159},
- #endif
- #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL
- {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL},
- #else
- {"PSS_SALTLEN_TOO_SMALL", 4, 164},
- #endif
- #ifdef RSA_R_P_NOT_PRIME
- {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME},
- #else
- {"P_NOT_PRIME", 4, 128},
- #endif
- #ifdef RSA_R_Q_NOT_PRIME
- {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME},
- #else
- {"Q_NOT_PRIME", 4, 129},
- #endif
- #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED
- {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED},
- #else
- {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130},
- #endif
- #ifdef RSA_R_SLEN_CHECK_FAILED
- {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED},
- #else
- {"SLEN_CHECK_FAILED", 4, 136},
- #endif
- #ifdef RSA_R_SLEN_RECOVERY_FAILED
- {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED},
- #else
- {"SLEN_RECOVERY_FAILED", 4, 135},
- #endif
- #ifdef RSA_R_SSLV3_ROLLBACK_ATTACK
- {"SSLV3_ROLLBACK_ATTACK", ERR_LIB_RSA, RSA_R_SSLV3_ROLLBACK_ATTACK},
- #else
- {"SSLV3_ROLLBACK_ATTACK", 4, 115},
- #endif
- #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
- #else
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116},
- #endif
- #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE
- {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE},
- #else
- {"UNKNOWN_ALGORITHM_TYPE", 4, 117},
- #endif
- #ifdef RSA_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 4, 166},
- #endif
- #ifdef RSA_R_UNKNOWN_MASK_DIGEST
- {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST},
- #else
- {"UNKNOWN_MASK_DIGEST", 4, 151},
- #endif
- #ifdef RSA_R_UNKNOWN_PADDING_TYPE
- {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE},
- #else
- {"UNKNOWN_PADDING_TYPE", 4, 118},
- #endif
- #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE
- {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE},
- #else
- {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162},
- #endif
- #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE
- {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE},
- #else
- {"UNSUPPORTED_LABEL_SOURCE", 4, 163},
- #endif
- #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM
- {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM},
- #else
- {"UNSUPPORTED_MASK_ALGORITHM", 4, 153},
- #endif
- #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER
- {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER},
- #else
- {"UNSUPPORTED_MASK_PARAMETER", 4, 154},
- #endif
- #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE
- {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE},
- #else
- {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155},
- #endif
- #ifdef RSA_R_VALUE_MISSING
- {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING},
- #else
- {"VALUE_MISSING", 4, 147},
- #endif
- #ifdef RSA_R_WRONG_SIGNATURE_LENGTH
- {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH},
- #else
- {"WRONG_SIGNATURE_LENGTH", 4, 119},
- #endif
- #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY
- {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY},
- #else
- {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291},
- #endif
+ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126},
+ #endif
+ #ifdef PKCS12_R_CANT_PACK_STRUCTURE
+ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
+ #else
+ {"CANT_PACK_STRUCTURE", 35, 100},
+ #endif
+ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA
+ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_DATA", 35, 121},
+ #endif
+ #ifdef PKCS12_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 35, 101},
+ #endif
+ #ifdef PKCS12_R_ENCODE_ERROR
+ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR},
+ #else
+ {"ENCODE_ERROR", 35, 102},
+ #endif
+ #ifdef PKCS12_R_ENCRYPT_ERROR
+ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR},
+ #else
+ {"ENCRYPT_ERROR", 35, 103},
+ #endif
+ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE
+ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE},
+ #else
+ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120},
+ #endif
+ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT
+ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT},
+ #else
+ {"INVALID_NULL_ARGUMENT", 35, 104},
+ #endif
+ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER
+ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER},
+ #else
+ {"INVALID_NULL_PKCS12_POINTER", 35, 105},
+ #endif
+ #ifdef PKCS12_R_IV_GEN_ERROR
+ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR},
+ #else
+ {"IV_GEN_ERROR", 35, 106},
+ #endif
+ #ifdef PKCS12_R_KEY_GEN_ERROR
+ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR},
+ #else
+ {"KEY_GEN_ERROR", 35, 107},
+ #endif
+ #ifdef PKCS12_R_MAC_ABSENT
+ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT},
+ #else
+ {"MAC_ABSENT", 35, 108},
+ #endif
+ #ifdef PKCS12_R_MAC_GENERATION_ERROR
+ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR},
+ #else
+ {"MAC_GENERATION_ERROR", 35, 109},
+ #endif
+ #ifdef PKCS12_R_MAC_SETUP_ERROR
+ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR},
+ #else
+ {"MAC_SETUP_ERROR", 35, 110},
+ #endif
+ #ifdef PKCS12_R_MAC_STRING_SET_ERROR
+ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR},
+ #else
+ {"MAC_STRING_SET_ERROR", 35, 111},
+ #endif
+ #ifdef PKCS12_R_MAC_VERIFY_FAILURE
+ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE},
+ #else
+ {"MAC_VERIFY_FAILURE", 35, 113},
+ #endif
+ #ifdef PKCS12_R_PARSE_ERROR
+ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR},
+ #else
+ {"PARSE_ERROR", 35, 114},
+ #endif
+ #ifdef PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR
+ {"PKCS12_ALGOR_CIPHERINIT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR},
+ #else
+ {"PKCS12_ALGOR_CIPHERINIT_ERROR", 35, 115},
+ #endif
+ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR
+ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR},
+ #else
+ {"PKCS12_CIPHERFINAL_ERROR", 35, 116},
+ #endif
+ #ifdef PKCS12_R_PKCS12_PBE_CRYPT_ERROR
+ {"PKCS12_PBE_CRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_PBE_CRYPT_ERROR},
+ #else
+ {"PKCS12_PBE_CRYPT_ERROR", 35, 117},
+ #endif
+ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM
+ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118},
+ #endif
+ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE
+ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE},
+ #else
+ {"UNSUPPORTED_PKCS12_MODE", 35, 119},
+ #endif
+ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 33, 117},
+ #endif
+ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
+ #else
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144},
+ #endif
+ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED
+ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED},
+ #else
+ {"CIPHER_NOT_INITIALIZED", 33, 116},
+ #endif
+ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT
+ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT},
+ #else
+ {"CONTENT_AND_DATA_PRESENT", 33, 118},
+ #endif
+ #ifdef PKCS7_R_CTRL_ERROR
+ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR},
+ #else
+ {"CTRL_ERROR", 33, 152},
+ #endif
+ #ifdef PKCS7_R_DECRYPT_ERROR
+ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR},
+ #else
+ {"DECRYPT_ERROR", 33, 119},
+ #endif
+ #ifdef PKCS7_R_DIGEST_FAILURE
+ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE},
+ #else
+ {"DIGEST_FAILURE", 33, 101},
+ #endif
+ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE
+ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE},
+ #else
+ {"ENCRYPTION_CTRL_FAILURE", 33, 149},
+ #endif
+ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150},
+ #endif
+ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT
+ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT},
+ #else
+ {"ERROR_ADDING_RECIPIENT", 33, 120},
+ #endif
+ #ifdef PKCS7_R_ERROR_SETTING_CIPHER
+ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER},
+ #else
+ {"ERROR_SETTING_CIPHER", 33, 121},
+ #endif
+ #ifdef PKCS7_R_INVALID_NULL_POINTER
+ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER},
+ #else
+ {"INVALID_NULL_POINTER", 33, 143},
+ #endif
+ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE
+ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE},
+ #else
+ {"INVALID_SIGNED_DATA_TYPE", 33, 155},
+ #endif
+ #ifdef PKCS7_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 33, 122},
+ #endif
+ #ifdef PKCS7_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 33, 151},
+ #endif
+ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND
+ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND},
+ #else
+ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154},
+ #endif
+ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE
+ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE},
+ #else
+ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115},
+ #endif
+ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA
+ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA},
+ #else
+ {"NO_SIGNATURES_ON_DATA", 33, 123},
+ #endif
+ #ifdef PKCS7_R_NO_SIGNERS
+ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS},
+ #else
+ {"NO_SIGNERS", 33, 142},
+ #endif
+ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE
+ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104},
+ #endif
+ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR
+ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124},
+ #endif
+ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR
+ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNER_ERROR", 33, 153},
+ #endif
+ #ifdef PKCS7_R_PKCS7_DATASIGN
+ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN},
+ #else
+ {"PKCS7_DATASIGN", 33, 145},
+ #endif
+ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127},
+ #endif
+ #ifdef PKCS7_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 33, 105},
+ #endif
+ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128},
+ #endif
+ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE
+ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE},
+ #else
+ {"SIGNING_CTRL_FAILURE", 33, 147},
+ #endif
+ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148},
+ #endif
+ #ifdef PKCS7_R_SMIME_TEXT_ERROR
+ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR},
+ #else
+ {"SMIME_TEXT_ERROR", 33, 129},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE
+ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE},
+ #else
+ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO
+ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO},
+ #else
+ {"UNABLE_TO_FIND_MEM_BIO", 33, 107},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST
+ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST},
+ #else
+ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108},
+ #endif
+ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE
+ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE},
+ #else
+ {"UNKNOWN_DIGEST_TYPE", 33, 109},
+ #endif
+ #ifdef PKCS7_R_UNKNOWN_OPERATION
+ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION},
+ #else
+ {"UNKNOWN_OPERATION", 33, 110},
+ #endif
+ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE
+ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE},
+ #else
+ {"UNSUPPORTED_CIPHER_TYPE", 33, 111},
+ #endif
+ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 33, 112},
+ #endif
+ #ifdef PKCS7_R_WRONG_CONTENT_TYPE
+ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE},
+ #else
+ {"WRONG_CONTENT_TYPE", 33, 113},
+ #endif
+ #ifdef PKCS7_R_WRONG_PKCS7_TYPE
+ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE},
+ #else
+ {"WRONG_PKCS7_TYPE", 33, 114},
+ #endif
+ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG
+ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG},
+ #else
+ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102},
+ #endif
+ #ifdef RAND_R_ALREADY_INSTANTIATED
+ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED},
+ #else
+ {"ALREADY_INSTANTIATED", 36, 103},
+ #endif
+ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE
+ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE},
+ #else
+ {"ARGUMENT_OUT_OF_RANGE", 36, 105},
+ #endif
+ #ifdef RAND_R_CANNOT_OPEN_FILE
+ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE},
+ #else
+ {"CANNOT_OPEN_FILE", 36, 121},
+ #endif
+ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED
+ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED},
+ #else
+ {"DRBG_ALREADY_INITIALIZED", 36, 129},
+ #endif
+ #ifdef RAND_R_DRBG_NOT_INITIALISED
+ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED},
+ #else
+ {"DRBG_NOT_INITIALISED", 36, 104},
+ #endif
+ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG
+ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG},
+ #else
+ {"ENTROPY_INPUT_TOO_LONG", 36, 106},
+ #endif
+ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE
+ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE},
+ #else
+ {"ENTROPY_OUT_OF_RANGE", 36, 124},
+ #endif
+ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED
+ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED},
+ #else
+ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127},
+ #endif
+ #ifdef RAND_R_ERROR_INITIALISING_DRBG
+ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG},
+ #else
+ {"ERROR_INITIALISING_DRBG", 36, 107},
+ #endif
+ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG
+ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG},
+ #else
+ {"ERROR_INSTANTIATING_DRBG", 36, 108},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT
+ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT},
+ #else
+ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY
+ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY},
+ #else
+ {"ERROR_RETRIEVING_ENTROPY", 36, 110},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_NONCE
+ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE},
+ #else
+ {"ERROR_RETRIEVING_NONCE", 36, 111},
+ #endif
+ #ifdef RAND_R_FAILED_TO_CREATE_LOCK
+ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK},
+ #else
+ {"FAILED_TO_CREATE_LOCK", 36, 126},
+ #endif
+ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED
+ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED},
+ #else
+ {"FUNC_NOT_IMPLEMENTED", 36, 101},
+ #endif
+ #ifdef RAND_R_FWRITE_ERROR
+ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR},
+ #else
+ {"FWRITE_ERROR", 36, 123},
+ #endif
+ #ifdef RAND_R_GENERATE_ERROR
+ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR},
+ #else
+ {"GENERATE_ERROR", 36, 112},
+ #endif
+ #ifdef RAND_R_INTERNAL_ERROR
+ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR},
+ #else
+ {"INTERNAL_ERROR", 36, 113},
+ #endif
+ #ifdef RAND_R_IN_ERROR_STATE
+ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
+ #else
+ {"IN_ERROR_STATE", 36, 114},
+ #endif
+ #ifdef RAND_R_NOT_A_REGULAR_FILE
+ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE},
+ #else
+ {"NOT_A_REGULAR_FILE", 36, 122},
+ #endif
+ #ifdef RAND_R_NOT_INSTANTIATED
+ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED},
+ #else
+ {"NOT_INSTANTIATED", 36, 115},
+ #endif
+ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED
+ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED},
+ #else
+ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128},
+ #endif
+ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED
+ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED},
+ #else
+ {"PARENT_LOCKING_NOT_ENABLED", 36, 130},
+ #endif
+ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK
+ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK},
+ #else
+ {"PARENT_STRENGTH_TOO_WEAK", 36, 131},
+ #endif
+ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG
+ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG},
+ #else
+ {"PERSONALISATION_STRING_TOO_LONG", 36, 116},
+ #endif
+ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED
+ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED},
+ #else
+ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133},
+ #endif
+ #ifdef RAND_R_PRNG_NOT_SEEDED
+ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED},
+ #else
+ {"PRNG_NOT_SEEDED", 36, 100},
+ #endif
+ #ifdef RAND_R_RANDOM_POOL_OVERFLOW
+ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW},
+ #else
+ {"RANDOM_POOL_OVERFLOW", 36, 125},
+ #endif
+ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW
+ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW},
+ #else
+ {"RANDOM_POOL_UNDERFLOW", 36, 134},
+ #endif
+ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG
+ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG},
+ #else
+ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117},
+ #endif
+ #ifdef RAND_R_RESEED_ERROR
+ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR},
+ #else
+ {"RESEED_ERROR", 36, 118},
+ #endif
+ #ifdef RAND_R_SELFTEST_FAILURE
+ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE},
+ #else
+ {"SELFTEST_FAILURE", 36, 119},
+ #endif
+ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED
+ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED},
+ #else
+ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135},
+ #endif
+ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED
+ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED},
+ #else
+ {"TOO_MUCH_NONCE_REQUESTED", 36, 136},
+ #endif
+ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS
+ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS},
+ #else
+ {"UNSUPPORTED_DRBG_FLAGS", 36, 132},
+ #endif
+ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE
+ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE},
+ #else
+ {"UNSUPPORTED_DRBG_TYPE", 36, 120},
+ #endif
+ #ifdef RSA_R_ALGORITHM_MISMATCH
+ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH},
+ #else
+ {"ALGORITHM_MISMATCH", 4, 100},
+ #endif
+ #ifdef RSA_R_BAD_E_VALUE
+ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE},
+ #else
+ {"BAD_E_VALUE", 4, 101},
+ #endif
+ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT
+ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT},
+ #else
+ {"BAD_FIXED_HEADER_DECRYPT", 4, 102},
+ #endif
+ #ifdef RSA_R_BAD_PAD_BYTE_COUNT
+ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT},
+ #else
+ {"BAD_PAD_BYTE_COUNT", 4, 103},
+ #endif
+ #ifdef RSA_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 4, 104},
+ #endif
+ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01
+ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01},
+ #else
+ {"BLOCK_TYPE_IS_NOT_01", 4, 106},
+ #endif
+ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02
+ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02},
+ #else
+ {"BLOCK_TYPE_IS_NOT_02", 4, 107},
+ #endif
+ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN
+ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN},
+ #else
+ {"DATA_GREATER_THAN_MOD_LEN", 4, 108},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE
+ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE},
+ #else
+ {"DATA_TOO_LARGE", 4, 109},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
+ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE},
+ #else
+ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS
+ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS},
+ #else
+ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132},
+ #endif
+ #ifdef RSA_R_DATA_TOO_SMALL
+ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL},
+ #else
+ {"DATA_TOO_SMALL", 4, 111},
+ #endif
+ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE
+ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE},
+ #else
+ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122},
+ #endif
+ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH
+ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH},
+ #else
+ {"DIGEST_DOES_NOT_MATCH", 4, 158},
+ #endif
+ #ifdef RSA_R_DIGEST_NOT_ALLOWED
+ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED},
+ #else
+ {"DIGEST_NOT_ALLOWED", 4, 145},
+ #endif
+ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY
+ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY},
+ #else
+ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112},
+ #endif
+ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D
+ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D},
+ #else
+ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124},
+ #endif
+ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D
+ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D},
+ #else
+ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125},
+ #endif
+ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1
+ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1},
+ #else
+ {"D_E_NOT_CONGRUENT_TO_1", 4, 123},
+ #endif
+ #ifdef RSA_R_FIRST_OCTET_INVALID
+ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID},
+ #else
+ {"FIRST_OCTET_INVALID", 4, 133},
+ #endif
+ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
+ #else
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144},
+ #endif
+ #ifdef RSA_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 4, 157},
+ #endif
+ #ifdef RSA_R_INVALID_DIGEST_LENGTH
+ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH},
+ #else
+ {"INVALID_DIGEST_LENGTH", 4, 143},
+ #endif
+ #ifdef RSA_R_INVALID_HEADER
+ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER},
+ #else
+ {"INVALID_HEADER", 4, 137},
+ #endif
+ #ifdef RSA_R_INVALID_LABEL
+ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL},
+ #else
+ {"INVALID_LABEL", 4, 160},
+ #endif
+ #ifdef RSA_R_INVALID_MESSAGE_LENGTH
+ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH},
+ #else
+ {"INVALID_MESSAGE_LENGTH", 4, 131},
+ #endif
+ #ifdef RSA_R_INVALID_MGF1_MD
+ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD},
+ #else
+ {"INVALID_MGF1_MD", 4, 156},
+ #endif
+ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY
+ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY},
+ #else
+ {"INVALID_MULTI_PRIME_KEY", 4, 167},
+ #endif
+ #ifdef RSA_R_INVALID_OAEP_PARAMETERS
+ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS},
+ #else
+ {"INVALID_OAEP_PARAMETERS", 4, 161},
+ #endif
+ #ifdef RSA_R_INVALID_PADDING
+ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING},
+ #else
+ {"INVALID_PADDING", 4, 138},
+ #endif
+ #ifdef RSA_R_INVALID_PADDING_MODE
+ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE},
+ #else
+ {"INVALID_PADDING_MODE", 4, 141},
+ #endif
+ #ifdef RSA_R_INVALID_PSS_PARAMETERS
+ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS},
+ #else
+ {"INVALID_PSS_PARAMETERS", 4, 149},
+ #endif
+ #ifdef RSA_R_INVALID_PSS_SALTLEN
+ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN},
+ #else
+ {"INVALID_PSS_SALTLEN", 4, 146},
+ #endif
+ #ifdef RSA_R_INVALID_SALT_LENGTH
+ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH},
+ #else
+ {"INVALID_SALT_LENGTH", 4, 150},
+ #endif
+ #ifdef RSA_R_INVALID_TRAILER
+ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER},
+ #else
+ {"INVALID_TRAILER", 4, 139},
+ #endif
+ #ifdef RSA_R_INVALID_X931_DIGEST
+ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST},
+ #else
+ {"INVALID_X931_DIGEST", 4, 142},
+ #endif
+ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q
+ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q},
+ #else
+ {"IQMP_NOT_INVERSE_OF_Q", 4, 126},
+ #endif
+ #ifdef RSA_R_KEY_PRIME_NUM_INVALID
+ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID},
+ #else
+ {"KEY_PRIME_NUM_INVALID", 4, 165},
+ #endif
+ #ifdef RSA_R_KEY_SIZE_TOO_SMALL
+ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL},
+ #else
+ {"KEY_SIZE_TOO_SMALL", 4, 120},
+ #endif
+ #ifdef RSA_R_LAST_OCTET_INVALID
+ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID},
+ #else
+ {"LAST_OCTET_INVALID", 4, 134},
+ #endif
+ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED
+ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED},
+ #else
+ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152},
+ #endif
+ #ifdef RSA_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 4, 179},
+ #endif
+ #ifdef RSA_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 4, 105},
+ #endif
+ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R
+ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R},
+ #else
+ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168},
+ #endif
+ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D
+ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D},
+ #else
+ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169},
+ #endif
+ #ifdef RSA_R_MP_R_NOT_PRIME
+ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME},
+ #else
+ {"MP_R_NOT_PRIME", 4, 170},
+ #endif
+ #ifdef RSA_R_NO_PUBLIC_EXPONENT
+ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT},
+ #else
+ {"NO_PUBLIC_EXPONENT", 4, 140},
+ #endif
+ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING
+ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING},
+ #else
+ {"NULL_BEFORE_BLOCK_MISSING", 4, 113},
+ #endif
+ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES
+ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES},
+ #else
+ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172},
+ #endif
+ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q
+ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q},
+ #else
+ {"N_DOES_NOT_EQUAL_P_Q", 4, 127},
+ #endif
+ #ifdef RSA_R_OAEP_DECODING_ERROR
+ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR},
+ #else
+ {"OAEP_DECODING_ERROR", 4, 121},
+ #endif
+ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148},
+ #endif
+ #ifdef RSA_R_PADDING_CHECK_FAILED
+ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED},
+ #else
+ {"PADDING_CHECK_FAILED", 4, 114},
+ #endif
+ #ifdef RSA_R_PKCS_DECODING_ERROR
+ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR},
+ #else
+ {"PKCS_DECODING_ERROR", 4, 159},
+ #endif
+ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL
+ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL},
+ #else
+ {"PSS_SALTLEN_TOO_SMALL", 4, 164},
+ #endif
+ #ifdef RSA_R_P_NOT_PRIME
+ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME},
+ #else
+ {"P_NOT_PRIME", 4, 128},
+ #endif
+ #ifdef RSA_R_Q_NOT_PRIME
+ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME},
+ #else
+ {"Q_NOT_PRIME", 4, 129},
+ #endif
+ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED
+ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED},
+ #else
+ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130},
+ #endif
+ #ifdef RSA_R_SLEN_CHECK_FAILED
+ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED},
+ #else
+ {"SLEN_CHECK_FAILED", 4, 136},
+ #endif
+ #ifdef RSA_R_SLEN_RECOVERY_FAILED
+ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED},
+ #else
+ {"SLEN_RECOVERY_FAILED", 4, 135},
+ #endif
+ #ifdef RSA_R_SSLV3_ROLLBACK_ATTACK
+ {"SSLV3_ROLLBACK_ATTACK", ERR_LIB_RSA, RSA_R_SSLV3_ROLLBACK_ATTACK},
+ #else
+ {"SSLV3_ROLLBACK_ATTACK", 4, 115},
+ #endif
+ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
+ #else
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116},
+ #endif
+ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE
+ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE},
+ #else
+ {"UNKNOWN_ALGORITHM_TYPE", 4, 117},
+ #endif
+ #ifdef RSA_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 4, 166},
+ #endif
+ #ifdef RSA_R_UNKNOWN_MASK_DIGEST
+ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST},
+ #else
+ {"UNKNOWN_MASK_DIGEST", 4, 151},
+ #endif
+ #ifdef RSA_R_UNKNOWN_PADDING_TYPE
+ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE},
+ #else
+ {"UNKNOWN_PADDING_TYPE", 4, 118},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE
+ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE},
+ #else
+ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE
+ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE},
+ #else
+ {"UNSUPPORTED_LABEL_SOURCE", 4, 163},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM
+ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM},
+ #else
+ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER
+ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER},
+ #else
+ {"UNSUPPORTED_MASK_PARAMETER", 4, 154},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE
+ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE},
+ #else
+ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155},
+ #endif
+ #ifdef RSA_R_VALUE_MISSING
+ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING},
+ #else
+ {"VALUE_MISSING", 4, 147},
+ #endif
+ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH
+ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH},
+ #else
+ {"WRONG_SIGNATURE_LENGTH", 4, 119},
+ #endif
+ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY
+ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY},
+ #else
+ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291},
+ #endif
#ifdef SSL_R_APP_DATA_IN_HANDSHAKE
{"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE},
#else
- {"APP_DATA_IN_HANDSHAKE", 20, 100},
+ {"APP_DATA_IN_HANDSHAKE", 20, 100},
#endif
#ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT
{"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT},
#else
- {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272},
+ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272},
#endif
- #ifdef SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE
- {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE},
+ #ifdef SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE
+ {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE},
#else
- {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", 20, 143},
+ {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", 20, 143},
#endif
- #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE
- {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE},
+ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE
+ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE},
#else
- {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
+ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
#endif
#ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
{"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
#else
- {"BAD_CHANGE_CIPHER_SPEC", 20, 103},
+ {"BAD_CHANGE_CIPHER_SPEC", 20, 103},
#endif
- #ifdef SSL_R_BAD_CIPHER
- {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER},
+ #ifdef SSL_R_BAD_CIPHER
+ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER},
#else
- {"BAD_CIPHER", 20, 186},
+ {"BAD_CIPHER", 20, 186},
#endif
#ifdef SSL_R_BAD_DATA
{"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
#else
- {"BAD_DATA", 20, 390},
+ {"BAD_DATA", 20, 390},
#endif
#ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK
{"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK},
#else
- {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106},
+ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106},
#endif
#ifdef SSL_R_BAD_DECOMPRESSION
{"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION},
#else
- {"BAD_DECOMPRESSION", 20, 107},
+ {"BAD_DECOMPRESSION", 20, 107},
#endif
- #ifdef SSL_R_BAD_DH_VALUE
- {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE},
+ #ifdef SSL_R_BAD_DH_VALUE
+ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE},
#else
- {"BAD_DH_VALUE", 20, 102},
+ {"BAD_DH_VALUE", 20, 102},
#endif
#ifdef SSL_R_BAD_DIGEST_LENGTH
{"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH},
#else
- {"BAD_DIGEST_LENGTH", 20, 111},
+ {"BAD_DIGEST_LENGTH", 20, 111},
#endif
- #ifdef SSL_R_BAD_EARLY_DATA
- {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA},
+ #ifdef SSL_R_BAD_EARLY_DATA
+ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA},
#else
- {"BAD_EARLY_DATA", 20, 233},
+ {"BAD_EARLY_DATA", 20, 233},
#endif
#ifdef SSL_R_BAD_ECC_CERT
{"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT},
#else
- {"BAD_ECC_CERT", 20, 304},
+ {"BAD_ECC_CERT", 20, 304},
#endif
#ifdef SSL_R_BAD_ECDSA_SIGNATURE
{"BAD_ECDSA_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_ECDSA_SIGNATURE},
#else
- {"BAD_ECDSA_SIGNATURE", 20, 305},
+ {"BAD_ECDSA_SIGNATURE", 20, 305},
#endif
#ifdef SSL_R_BAD_ECPOINT
{"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT},
#else
- {"BAD_ECPOINT", 20, 306},
+ {"BAD_ECPOINT", 20, 306},
+ #endif
+ #ifdef SSL_R_BAD_EXTENSION
+ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION},
+ #else
+ {"BAD_EXTENSION", 20, 110},
#endif
- #ifdef SSL_R_BAD_EXTENSION
- {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION},
- #else
- {"BAD_EXTENSION", 20, 110},
- #endif
#ifdef SSL_R_BAD_HANDSHAKE_LENGTH
{"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH},
#else
- {"BAD_HANDSHAKE_LENGTH", 20, 332},
+ {"BAD_HANDSHAKE_LENGTH", 20, 332},
+ #endif
+ #ifdef SSL_R_BAD_HANDSHAKE_STATE
+ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE},
+ #else
+ {"BAD_HANDSHAKE_STATE", 20, 236},
#endif
- #ifdef SSL_R_BAD_HANDSHAKE_STATE
- {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE},
- #else
- {"BAD_HANDSHAKE_STATE", 20, 236},
- #endif
#ifdef SSL_R_BAD_HELLO_REQUEST
{"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST},
#else
- {"BAD_HELLO_REQUEST", 20, 105},
- #endif
- #ifdef SSL_R_BAD_HRR_VERSION
- {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION},
- #else
- {"BAD_HRR_VERSION", 20, 263},
- #endif
- #ifdef SSL_R_BAD_KEY_SHARE
- {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE},
- #else
- {"BAD_KEY_SHARE", 20, 108},
- #endif
- #ifdef SSL_R_BAD_KEY_UPDATE
- {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE},
- #else
- {"BAD_KEY_UPDATE", 20, 122},
- #endif
- #ifdef SSL_R_BAD_LEGACY_VERSION
- {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION},
- #else
- {"BAD_LEGACY_VERSION", 20, 292},
- #endif
+ {"BAD_HELLO_REQUEST", 20, 105},
+ #endif
+ #ifdef SSL_R_BAD_HRR_VERSION
+ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION},
+ #else
+ {"BAD_HRR_VERSION", 20, 263},
+ #endif
+ #ifdef SSL_R_BAD_KEY_SHARE
+ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE},
+ #else
+ {"BAD_KEY_SHARE", 20, 108},
+ #endif
+ #ifdef SSL_R_BAD_KEY_UPDATE
+ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE},
+ #else
+ {"BAD_KEY_UPDATE", 20, 122},
+ #endif
+ #ifdef SSL_R_BAD_LEGACY_VERSION
+ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION},
+ #else
+ {"BAD_LEGACY_VERSION", 20, 292},
+ #endif
#ifdef SSL_R_BAD_LENGTH
{"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH},
#else
- {"BAD_LENGTH", 20, 271},
+ {"BAD_LENGTH", 20, 271},
#endif
#ifdef SSL_R_BAD_MAC_LENGTH
{"BAD_MAC_LENGTH", ERR_LIB_SSL, SSL_R_BAD_MAC_LENGTH},
#else
- {"BAD_MAC_LENGTH", 20, 333},
+ {"BAD_MAC_LENGTH", 20, 333},
#endif
- #ifdef SSL_R_BAD_PACKET
- {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET},
+ #ifdef SSL_R_BAD_PACKET
+ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET},
#else
- {"BAD_PACKET", 20, 240},
+ {"BAD_PACKET", 20, 240},
#endif
#ifdef SSL_R_BAD_PACKET_LENGTH
{"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH},
#else
- {"BAD_PACKET_LENGTH", 20, 115},
+ {"BAD_PACKET_LENGTH", 20, 115},
#endif
#ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER
{"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER},
#else
- {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116},
- #endif
- #ifdef SSL_R_BAD_PSK
- {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK},
- #else
- {"BAD_PSK", 20, 219},
- #endif
- #ifdef SSL_R_BAD_PSK_IDENTITY
- {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY},
- #else
- {"BAD_PSK_IDENTITY", 20, 114},
- #endif
+ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116},
+ #endif
+ #ifdef SSL_R_BAD_PSK
+ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK},
+ #else
+ {"BAD_PSK", 20, 219},
+ #endif
+ #ifdef SSL_R_BAD_PSK_IDENTITY
+ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY},
+ #else
+ {"BAD_PSK_IDENTITY", 20, 114},
+ #endif
#ifdef SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH
{"BAD_PSK_IDENTITY_HINT_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH},
#else
- {"BAD_PSK_IDENTITY_HINT_LENGTH", 20, 316},
+ {"BAD_PSK_IDENTITY_HINT_LENGTH", 20, 316},
#endif
- #ifdef SSL_R_BAD_RECORD_TYPE
- {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE},
+ #ifdef SSL_R_BAD_RECORD_TYPE
+ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE},
#else
- {"BAD_RECORD_TYPE", 20, 443},
+ {"BAD_RECORD_TYPE", 20, 443},
#endif
#ifdef SSL_R_BAD_RSA_ENCRYPT
{"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT},
#else
- {"BAD_RSA_ENCRYPT", 20, 119},
+ {"BAD_RSA_ENCRYPT", 20, 119},
#endif
#ifdef SSL_R_BAD_SIGNATURE
{"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE},
#else
- {"BAD_SIGNATURE", 20, 123},
+ {"BAD_SIGNATURE", 20, 123},
#endif
#ifdef SSL_R_BAD_SRP_A_LENGTH
{"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH},
#else
- {"BAD_SRP_A_LENGTH", 20, 347},
+ {"BAD_SRP_A_LENGTH", 20, 347},
#endif
#ifdef SSL_R_BAD_SRP_B_LENGTH
{"BAD_SRP_B_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_B_LENGTH},
#else
- {"BAD_SRP_B_LENGTH", 20, 348},
+ {"BAD_SRP_B_LENGTH", 20, 348},
#endif
#ifdef SSL_R_BAD_SRP_G_LENGTH
{"BAD_SRP_G_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_G_LENGTH},
#else
- {"BAD_SRP_G_LENGTH", 20, 349},
+ {"BAD_SRP_G_LENGTH", 20, 349},
#endif
#ifdef SSL_R_BAD_SRP_N_LENGTH
{"BAD_SRP_N_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_N_LENGTH},
#else
- {"BAD_SRP_N_LENGTH", 20, 350},
+ {"BAD_SRP_N_LENGTH", 20, 350},
#endif
#ifdef SSL_R_BAD_SRP_PARAMETERS
{"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS},
#else
- {"BAD_SRP_PARAMETERS", 20, 371},
+ {"BAD_SRP_PARAMETERS", 20, 371},
#endif
#ifdef SSL_R_BAD_SRP_S_LENGTH
{"BAD_SRP_S_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_S_LENGTH},
#else
- {"BAD_SRP_S_LENGTH", 20, 351},
+ {"BAD_SRP_S_LENGTH", 20, 351},
#endif
#ifdef SSL_R_BAD_SRTP_MKI_VALUE
{"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE},
#else
- {"BAD_SRTP_MKI_VALUE", 20, 352},
+ {"BAD_SRTP_MKI_VALUE", 20, 352},
#endif
#ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST
{"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST},
#else
- {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353},
+ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353},
#endif
#ifdef SSL_R_BAD_SSL_FILETYPE
{"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE},
#else
- {"BAD_SSL_FILETYPE", 20, 124},
+ {"BAD_SSL_FILETYPE", 20, 124},
#endif
#ifdef SSL_R_BAD_VALUE
{"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE},
#else
- {"BAD_VALUE", 20, 384},
+ {"BAD_VALUE", 20, 384},
#endif
#ifdef SSL_R_BAD_WRITE_RETRY
{"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY},
#else
- {"BAD_WRITE_RETRY", 20, 127},
+ {"BAD_WRITE_RETRY", 20, 127},
+ #endif
+ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY
+ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY},
+ #else
+ {"BINDER_DOES_NOT_VERIFY", 20, 253},
#endif
- #ifdef SSL_R_BINDER_DOES_NOT_VERIFY
- {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY},
- #else
- {"BINDER_DOES_NOT_VERIFY", 20, 253},
- #endif
#ifdef SSL_R_BIO_NOT_SET
{"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET},
#else
- {"BIO_NOT_SET", 20, 128},
+ {"BIO_NOT_SET", 20, 128},
#endif
#ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG
{"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG},
#else
- {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129},
+ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129},
#endif
#ifdef SSL_R_BN_LIB
{"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB},
#else
- {"BN_LIB", 20, 130},
- #endif
- #ifdef SSL_R_CALLBACK_FAILED
- {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED},
- #else
- {"CALLBACK_FAILED", 20, 234},
- #endif
- #ifdef SSL_R_CANNOT_CHANGE_CIPHER
- {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER},
- #else
- {"CANNOT_CHANGE_CIPHER", 20, 109},
- #endif
+ {"BN_LIB", 20, 130},
+ #endif
+ #ifdef SSL_R_CALLBACK_FAILED
+ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED},
+ #else
+ {"CALLBACK_FAILED", 20, 234},
+ #endif
+ #ifdef SSL_R_CANNOT_CHANGE_CIPHER
+ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER},
+ #else
+ {"CANNOT_CHANGE_CIPHER", 20, 109},
+ #endif
#ifdef SSL_R_CA_DN_LENGTH_MISMATCH
{"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH},
#else
- {"CA_DN_LENGTH_MISMATCH", 20, 131},
+ {"CA_DN_LENGTH_MISMATCH", 20, 131},
#endif
#ifdef SSL_R_CA_KEY_TOO_SMALL
{"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL},
#else
- {"CA_KEY_TOO_SMALL", 20, 397},
+ {"CA_KEY_TOO_SMALL", 20, 397},
#endif
#ifdef SSL_R_CA_MD_TOO_WEAK
{"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK},
#else
- {"CA_MD_TOO_WEAK", 20, 398},
+ {"CA_MD_TOO_WEAK", 20, 398},
#endif
#ifdef SSL_R_CCS_RECEIVED_EARLY
{"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY},
#else
- {"CCS_RECEIVED_EARLY", 20, 133},
+ {"CCS_RECEIVED_EARLY", 20, 133},
#endif
#ifdef SSL_R_CERTIFICATE_VERIFY_FAILED
{"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED},
#else
- {"CERTIFICATE_VERIFY_FAILED", 20, 134},
+ {"CERTIFICATE_VERIFY_FAILED", 20, 134},
#endif
#ifdef SSL_R_CERT_CB_ERROR
{"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR},
#else
- {"CERT_CB_ERROR", 20, 377},
+ {"CERT_CB_ERROR", 20, 377},
#endif
#ifdef SSL_R_CERT_LENGTH_MISMATCH
{"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH},
#else
- {"CERT_LENGTH_MISMATCH", 20, 135},
+ {"CERT_LENGTH_MISMATCH", 20, 135},
#endif
- #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED
- {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED},
+ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED
+ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED},
#else
- {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218},
+ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218},
#endif
#ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH
{"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH},
#else
- {"CIPHER_CODE_WRONG_LENGTH", 20, 137},
+ {"CIPHER_CODE_WRONG_LENGTH", 20, 137},
#endif
#ifdef SSL_R_CIPHER_OR_HASH_UNAVAILABLE
{"CIPHER_OR_HASH_UNAVAILABLE", ERR_LIB_SSL, SSL_R_CIPHER_OR_HASH_UNAVAILABLE},
#else
- {"CIPHER_OR_HASH_UNAVAILABLE", 20, 138},
+ {"CIPHER_OR_HASH_UNAVAILABLE", 20, 138},
#endif
#ifdef SSL_R_CLIENTHELLO_TLSEXT
{"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT},
#else
- {"CLIENTHELLO_TLSEXT", 20, 226},
+ {"CLIENTHELLO_TLSEXT", 20, 226},
#endif
#ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG
{"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG},
#else
- {"COMPRESSED_LENGTH_TOO_LONG", 20, 140},
+ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140},
#endif
#ifdef SSL_R_COMPRESSION_DISABLED
{"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED},
#else
- {"COMPRESSION_DISABLED", 20, 343},
+ {"COMPRESSION_DISABLED", 20, 343},
#endif
#ifdef SSL_R_COMPRESSION_FAILURE
{"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE},
#else
- {"COMPRESSION_FAILURE", 20, 141},
+ {"COMPRESSION_FAILURE", 20, 141},
#endif
#ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE
{"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE},
#else
- {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307},
+ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307},
#endif
#ifdef SSL_R_COMPRESSION_LIBRARY_ERROR
{"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR},
#else
- {"COMPRESSION_LIBRARY_ERROR", 20, 142},
+ {"COMPRESSION_LIBRARY_ERROR", 20, 142},
#endif
#ifdef SSL_R_CONNECTION_TYPE_NOT_SET
{"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET},
#else
- {"CONNECTION_TYPE_NOT_SET", 20, 144},
- #endif
- #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
- {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
- #else
- {"CONTEXT_NOT_DANE_ENABLED", 20, 167},
- #endif
- #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE
- {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE},
- #else
- {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400},
- #endif
+ {"CONNECTION_TYPE_NOT_SET", 20, 144},
+ #endif
+ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
+ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
+ #else
+ {"CONTEXT_NOT_DANE_ENABLED", 20, 167},
+ #endif
+ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE
+ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE},
+ #else
+ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400},
+ #endif
#ifdef SSL_R_COOKIE_MISMATCH
{"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH},
#else
- {"COOKIE_MISMATCH", 20, 308},
- #endif
- #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED
- {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED},
- #else
- {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206},
- #endif
- #ifdef SSL_R_DANE_ALREADY_ENABLED
- {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED},
- #else
- {"DANE_ALREADY_ENABLED", 20, 172},
- #endif
- #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL
- {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL},
- #else
- {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173},
- #endif
- #ifdef SSL_R_DANE_NOT_ENABLED
- {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED},
- #else
- {"DANE_NOT_ENABLED", 20, 175},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE
- {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE},
- #else
- {"DANE_TLSA_BAD_CERTIFICATE", 20, 180},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE
- {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE},
- #else
- {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH
- {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH},
- #else
- {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH
- {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH},
- #else
- {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE
- {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE},
- #else
- {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY
- {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY},
- #else
- {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR
- {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR},
- #else
- {"DANE_TLSA_BAD_SELECTOR", 20, 202},
- #endif
- #ifdef SSL_R_DANE_TLSA_NULL_DATA
- {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA},
- #else
- {"DANE_TLSA_NULL_DATA", 20, 203},
- #endif
+ {"COOKIE_MISMATCH", 20, 308},
+ #endif
+ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED
+ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED},
+ #else
+ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206},
+ #endif
+ #ifdef SSL_R_DANE_ALREADY_ENABLED
+ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED},
+ #else
+ {"DANE_ALREADY_ENABLED", 20, 172},
+ #endif
+ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL
+ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL},
+ #else
+ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173},
+ #endif
+ #ifdef SSL_R_DANE_NOT_ENABLED
+ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED},
+ #else
+ {"DANE_NOT_ENABLED", 20, 175},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE
+ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE},
+ #else
+ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE
+ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE},
+ #else
+ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH
+ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH},
+ #else
+ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH
+ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH},
+ #else
+ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE
+ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE},
+ #else
+ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY
+ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY},
+ #else
+ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR
+ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR},
+ #else
+ {"DANE_TLSA_BAD_SELECTOR", 20, 202},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_NULL_DATA
+ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA},
+ #else
+ {"DANE_TLSA_NULL_DATA", 20, 203},
+ #endif
#ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED
{"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED},
#else
- {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145},
+ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145},
#endif
#ifdef SSL_R_DATA_LENGTH_TOO_LONG
{"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG},
#else
- {"DATA_LENGTH_TOO_LONG", 20, 146},
+ {"DATA_LENGTH_TOO_LONG", 20, 146},
#endif
#ifdef SSL_R_DECRYPTION_FAILED
{"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED},
#else
- {"DECRYPTION_FAILED", 20, 147},
+ {"DECRYPTION_FAILED", 20, 147},
#endif
#ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC
{"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC},
#else
- {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281},
+ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281},
#endif
#ifdef SSL_R_DH_KEY_TOO_SMALL
{"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL},
#else
- {"DH_KEY_TOO_SMALL", 20, 394},
+ {"DH_KEY_TOO_SMALL", 20, 394},
#endif
#ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG
{"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG},
#else
- {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148},
+ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148},
#endif
#ifdef SSL_R_DIGEST_CHECK_FAILED
{"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED},
#else
- {"DIGEST_CHECK_FAILED", 20, 149},
+ {"DIGEST_CHECK_FAILED", 20, 149},
#endif
#ifdef SSL_R_DTLS_MESSAGE_TOO_BIG
{"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG},
#else
- {"DTLS_MESSAGE_TOO_BIG", 20, 334},
+ {"DTLS_MESSAGE_TOO_BIG", 20, 334},
#endif
#ifdef SSL_R_DUPLICATE_COMPRESSION_ID
{"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID},
#else
- {"DUPLICATE_COMPRESSION_ID", 20, 309},
+ {"DUPLICATE_COMPRESSION_ID", 20, 309},
#endif
#ifdef SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT
{"ECC_CERT_NOT_FOR_KEY_AGREEMENT", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT},
#else
- {"ECC_CERT_NOT_FOR_KEY_AGREEMENT", 20, 317},
+ {"ECC_CERT_NOT_FOR_KEY_AGREEMENT", 20, 317},
#endif
#ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING
{"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING},
#else
- {"ECC_CERT_NOT_FOR_SIGNING", 20, 318},
+ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318},
#endif
#ifdef SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE
{"ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE", ERR_LIB_SSL, SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE},
#else
- {"ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE", 20, 322},
+ {"ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE", 20, 322},
#endif
#ifdef SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE
{"ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE", ERR_LIB_SSL, SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE},
#else
- {"ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE", 20, 323},
+ {"ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE", 20, 323},
#endif
#ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE
{"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE},
#else
- {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374},
+ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374},
#endif
#ifdef SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER
{"ECGROUP_TOO_LARGE_FOR_CIPHER", ERR_LIB_SSL, SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER},
#else
- {"ECGROUP_TOO_LARGE_FOR_CIPHER", 20, 310},
+ {"ECGROUP_TOO_LARGE_FOR_CIPHER", 20, 310},
#endif
#ifdef SSL_R_EE_KEY_TOO_SMALL
{"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL},
#else
- {"EE_KEY_TOO_SMALL", 20, 399},
+ {"EE_KEY_TOO_SMALL", 20, 399},
#endif
#ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST
{"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST},
#else
- {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354},
+ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354},
#endif
#ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG
{"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG},
#else
- {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150},
+ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150},
#endif
#ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST
{"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST},
#else
- {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
- #endif
- #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
- {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
- #else
- {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204},
- #endif
- #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE
- {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE},
- #else
- {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194},
- #endif
+ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
+ #endif
+ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
+ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
+ #else
+ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204},
+ #endif
+ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE
+ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE},
+ #else
+ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194},
+ #endif
#ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE
{"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE},
#else
- {"EXCESSIVE_MESSAGE_SIZE", 20, 152},
+ {"EXCESSIVE_MESSAGE_SIZE", 20, 152},
+ #endif
+ #ifdef SSL_R_EXTENSION_NOT_RECEIVED
+ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED},
+ #else
+ {"EXTENSION_NOT_RECEIVED", 20, 279},
#endif
- #ifdef SSL_R_EXTENSION_NOT_RECEIVED
- {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED},
- #else
- {"EXTENSION_NOT_RECEIVED", 20, 279},
- #endif
#ifdef SSL_R_EXTRA_DATA_IN_MESSAGE
{"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE},
#else
- {"EXTRA_DATA_IN_MESSAGE", 20, 153},
- #endif
- #ifdef SSL_R_EXT_LENGTH_MISMATCH
- {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH},
- #else
- {"EXT_LENGTH_MISMATCH", 20, 163},
- #endif
- #ifdef SSL_R_FAILED_TO_INIT_ASYNC
- {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
- #else
- {"FAILED_TO_INIT_ASYNC", 20, 405},
- #endif
- #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
- {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
- #else
- {"FRAGMENTED_CLIENT_HELLO", 20, 401},
- #endif
+ {"EXTRA_DATA_IN_MESSAGE", 20, 153},
+ #endif
+ #ifdef SSL_R_EXT_LENGTH_MISMATCH
+ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH},
+ #else
+ {"EXT_LENGTH_MISMATCH", 20, 163},
+ #endif
+ #ifdef SSL_R_FAILED_TO_INIT_ASYNC
+ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
+ #else
+ {"FAILED_TO_INIT_ASYNC", 20, 405},
+ #endif
+ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
+ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
+ #else
+ {"FRAGMENTED_CLIENT_HELLO", 20, 401},
+ #endif
#ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS
{"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS},
#else
- {"GOT_A_FIN_BEFORE_A_CCS", 20, 154},
+ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154},
#endif
#ifdef SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS
{"GOT_NEXT_PROTO_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS},
#else
- {"GOT_NEXT_PROTO_BEFORE_A_CCS", 20, 355},
+ {"GOT_NEXT_PROTO_BEFORE_A_CCS", 20, 355},
#endif
#ifdef SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION
{"GOT_NEXT_PROTO_WITHOUT_EXTENSION", ERR_LIB_SSL, SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION},
#else
- {"GOT_NEXT_PROTO_WITHOUT_EXTENSION", 20, 356},
+ {"GOT_NEXT_PROTO_WITHOUT_EXTENSION", 20, 356},
#endif
#ifdef SSL_R_HTTPS_PROXY_REQUEST
{"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST},
#else
- {"HTTPS_PROXY_REQUEST", 20, 155},
+ {"HTTPS_PROXY_REQUEST", 20, 155},
#endif
#ifdef SSL_R_HTTP_REQUEST
{"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST},
#else
- {"HTTP_REQUEST", 20, 156},
+ {"HTTP_REQUEST", 20, 156},
#endif
- #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION
- {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION},
+ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION
+ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION},
#else
- {"ILLEGAL_POINT_COMPRESSION", 20, 162},
+ {"ILLEGAL_POINT_COMPRESSION", 20, 162},
#endif
#ifdef SSL_R_ILLEGAL_SUITEB_DIGEST
{"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST},
#else
- {"ILLEGAL_SUITEB_DIGEST", 20, 380},
+ {"ILLEGAL_SUITEB_DIGEST", 20, 380},
#endif
#ifdef SSL_R_INAPPROPRIATE_FALLBACK
{"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK},
#else
- {"INAPPROPRIATE_FALLBACK", 20, 373},
+ {"INAPPROPRIATE_FALLBACK", 20, 373},
#endif
#ifdef SSL_R_INCONSISTENT_COMPRESSION
{"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION},
#else
- {"INCONSISTENT_COMPRESSION", 20, 340},
+ {"INCONSISTENT_COMPRESSION", 20, 340},
#endif
- #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN
- {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN},
+ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN
+ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN},
#else
- {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222},
+ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222},
#endif
- #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI
- {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI},
+ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI
+ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI},
#else
- {"INCONSISTENT_EARLY_DATA_SNI", 20, 231},
+ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231},
#endif
- #ifdef SSL_R_INCONSISTENT_EXTMS
- {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS},
+ #ifdef SSL_R_INCONSISTENT_EXTMS
+ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS},
#else
- {"INCONSISTENT_EXTMS", 20, 104},
+ {"INCONSISTENT_EXTMS", 20, 104},
#endif
- #ifdef SSL_R_INSUFFICIENT_SECURITY
- {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY},
+ #ifdef SSL_R_INSUFFICIENT_SECURITY
+ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY},
#else
- {"INSUFFICIENT_SECURITY", 20, 241},
+ {"INSUFFICIENT_SECURITY", 20, 241},
#endif
- #ifdef SSL_R_INVALID_ALERT
- {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT},
+ #ifdef SSL_R_INVALID_ALERT
+ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT},
#else
- {"INVALID_ALERT", 20, 205},
+ {"INVALID_ALERT", 20, 205},
#endif
- #ifdef SSL_R_INVALID_CCS_MESSAGE
- {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE},
+ #ifdef SSL_R_INVALID_CCS_MESSAGE
+ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE},
#else
- {"INVALID_CCS_MESSAGE", 20, 260},
+ {"INVALID_CCS_MESSAGE", 20, 260},
#endif
- #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG
- {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG},
+ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG
+ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG},
#else
- {"INVALID_CERTIFICATE_OR_ALG", 20, 238},
+ {"INVALID_CERTIFICATE_OR_ALG", 20, 238},
#endif
- #ifdef SSL_R_INVALID_COMMAND
- {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND},
+ #ifdef SSL_R_INVALID_COMMAND
+ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND},
#else
- {"INVALID_COMMAND", 20, 280},
+ {"INVALID_COMMAND", 20, 280},
#endif
- #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM
- {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM},
+ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM
+ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM},
#else
- {"INVALID_COMPRESSION_ALGORITHM", 20, 341},
+ {"INVALID_COMPRESSION_ALGORITHM", 20, 341},
#endif
- #ifdef SSL_R_INVALID_CONFIG
- {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG},
+ #ifdef SSL_R_INVALID_CONFIG
+ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG},
#else
- {"INVALID_CONFIG", 20, 283},
+ {"INVALID_CONFIG", 20, 283},
#endif
- #ifdef SSL_R_INVALID_CONFIGURATION_NAME
- {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME},
+ #ifdef SSL_R_INVALID_CONFIGURATION_NAME
+ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME},
#else
- {"INVALID_CONFIGURATION_NAME", 20, 113},
+ {"INVALID_CONFIGURATION_NAME", 20, 113},
#endif
- #ifdef SSL_R_INVALID_CONTEXT
- {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT},
+ #ifdef SSL_R_INVALID_CONTEXT
+ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT},
#else
- {"INVALID_CONTEXT", 20, 282},
+ {"INVALID_CONTEXT", 20, 282},
#endif
- #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE
- {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE},
+ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE
+ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE},
#else
- {"INVALID_CT_VALIDATION_TYPE", 20, 212},
+ {"INVALID_CT_VALIDATION_TYPE", 20, 212},
#endif
- #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE
- {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE},
+ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE
+ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE},
#else
- {"INVALID_KEY_UPDATE_TYPE", 20, 120},
+ {"INVALID_KEY_UPDATE_TYPE", 20, 120},
#endif
- #ifdef SSL_R_INVALID_MAX_EARLY_DATA
- {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA},
+ #ifdef SSL_R_INVALID_MAX_EARLY_DATA
+ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA},
#else
- {"INVALID_MAX_EARLY_DATA", 20, 174},
+ {"INVALID_MAX_EARLY_DATA", 20, 174},
#endif
- #ifdef SSL_R_INVALID_NULL_CMD_NAME
- {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME},
+ #ifdef SSL_R_INVALID_NULL_CMD_NAME
+ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME},
#else
- {"INVALID_NULL_CMD_NAME", 20, 385},
+ {"INVALID_NULL_CMD_NAME", 20, 385},
#endif
- #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
- {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
+ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
+ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
#else
- {"INVALID_SEQUENCE_NUMBER", 20, 402},
+ {"INVALID_SEQUENCE_NUMBER", 20, 402},
#endif
- #ifdef SSL_R_INVALID_SERVERINFO_DATA
- {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA},
+ #ifdef SSL_R_INVALID_SERVERINFO_DATA
+ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA},
#else
- {"INVALID_SERVERINFO_DATA", 20, 388},
+ {"INVALID_SERVERINFO_DATA", 20, 388},
#endif
- #ifdef SSL_R_INVALID_SESSION_ID
- {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID},
+ #ifdef SSL_R_INVALID_SESSION_ID
+ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID},
#else
- {"INVALID_SESSION_ID", 20, 999},
+ {"INVALID_SESSION_ID", 20, 999},
#endif
- #ifdef SSL_R_INVALID_SRP_USERNAME
- {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME},
+ #ifdef SSL_R_INVALID_SRP_USERNAME
+ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME},
#else
- {"INVALID_SRP_USERNAME", 20, 357},
+ {"INVALID_SRP_USERNAME", 20, 357},
+ #endif
+ #ifdef SSL_R_INVALID_STATUS_RESPONSE
+ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE},
+ #else
+ {"INVALID_STATUS_RESPONSE", 20, 328},
+ #endif
+ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH
+ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH},
+ #else
+ {"INVALID_TICKET_KEYS_LENGTH", 20, 325},
#endif
- #ifdef SSL_R_INVALID_STATUS_RESPONSE
- {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE},
- #else
- {"INVALID_STATUS_RESPONSE", 20, 328},
- #endif
- #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH
- {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH},
- #else
- {"INVALID_TICKET_KEYS_LENGTH", 20, 325},
- #endif
#ifdef SSL_R_KRB5_S_TKT_NYV
{"KRB5_S_TKT_NYV", ERR_LIB_SSL, SSL_R_KRB5_S_TKT_NYV},
#else
- {"KRB5_S_TKT_NYV", 20, 294},
+ {"KRB5_S_TKT_NYV", 20, 294},
#endif
#ifdef SSL_R_KRB5_S_TKT_SKEW
{"KRB5_S_TKT_SKEW", ERR_LIB_SSL, SSL_R_KRB5_S_TKT_SKEW},
#else
- {"KRB5_S_TKT_SKEW", 20, 295},
+ {"KRB5_S_TKT_SKEW", 20, 295},
#endif
#ifdef SSL_R_LENGTH_MISMATCH
{"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH},
#else
- {"LENGTH_MISMATCH", 20, 159},
+ {"LENGTH_MISMATCH", 20, 159},
+ #endif
+ #ifdef SSL_R_LENGTH_TOO_LONG
+ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG},
+ #else
+ {"LENGTH_TOO_LONG", 20, 404},
#endif
- #ifdef SSL_R_LENGTH_TOO_LONG
- {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG},
- #else
- {"LENGTH_TOO_LONG", 20, 404},
- #endif
#ifdef SSL_R_LENGTH_TOO_SHORT
{"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT},
#else
- {"LENGTH_TOO_SHORT", 20, 160},
+ {"LENGTH_TOO_SHORT", 20, 160},
#endif
#ifdef SSL_R_LIBRARY_BUG
{"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG},
#else
- {"LIBRARY_BUG", 20, 274},
+ {"LIBRARY_BUG", 20, 274},
#endif
#ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS
{"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS},
#else
- {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
+ {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
#endif
#ifdef SSL_R_MESSAGE_TOO_LONG
{"MESSAGE_TOO_LONG", ERR_LIB_SSL, SSL_R_MESSAGE_TOO_LONG},
#else
- {"MESSAGE_TOO_LONG", 20, 296},
+ {"MESSAGE_TOO_LONG", 20, 296},
#endif
#ifdef SSL_R_MISSING_DSA_SIGNING_CERT
{"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
#else
- {"MISSING_DSA_SIGNING_CERT", 20, 165},
+ {"MISSING_DSA_SIGNING_CERT", 20, 165},
#endif
#ifdef SSL_R_MISSING_ECDH_CERT
{"MISSING_ECDH_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDH_CERT},
#else
- {"MISSING_ECDH_CERT", 20, 382},
+ {"MISSING_ECDH_CERT", 20, 382},
#endif
#ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT
{"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT},
#else
- {"MISSING_ECDSA_SIGNING_CERT", 20, 381},
+ {"MISSING_ECDSA_SIGNING_CERT", 20, 381},
#endif
- #ifdef SSL_R_MISSING_FATAL
- {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL},
+ #ifdef SSL_R_MISSING_FATAL
+ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL},
#else
- {"MISSING_FATAL", 20, 256},
+ {"MISSING_FATAL", 20, 256},
#endif
- #ifdef SSL_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS},
+ #ifdef SSL_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS},
#else
- {"MISSING_PARAMETERS", 20, 290},
+ {"MISSING_PARAMETERS", 20, 290},
#endif
#ifdef SSL_R_MISSING_RSA_CERTIFICATE
{"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE},
#else
- {"MISSING_RSA_CERTIFICATE", 20, 168},
+ {"MISSING_RSA_CERTIFICATE", 20, 168},
#endif
#ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT
{"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT},
#else
- {"MISSING_RSA_ENCRYPTING_CERT", 20, 169},
+ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169},
#endif
#ifdef SSL_R_MISSING_RSA_SIGNING_CERT
{"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT},
#else
- {"MISSING_RSA_SIGNING_CERT", 20, 170},
- #endif
- #ifdef SSL_R_MISSING_SIGALGS_EXTENSION
- {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION},
- #else
- {"MISSING_SIGALGS_EXTENSION", 20, 112},
- #endif
- #ifdef SSL_R_MISSING_SIGNING_CERT
- {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT},
- #else
- {"MISSING_SIGNING_CERT", 20, 221},
- #endif
+ {"MISSING_RSA_SIGNING_CERT", 20, 170},
+ #endif
+ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION
+ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION},
+ #else
+ {"MISSING_SIGALGS_EXTENSION", 20, 112},
+ #endif
+ #ifdef SSL_R_MISSING_SIGNING_CERT
+ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT},
+ #else
+ {"MISSING_SIGNING_CERT", 20, 221},
+ #endif
#ifdef SSL_R_MISSING_SRP_PARAM
{"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM},
#else
- {"MISSING_SRP_PARAM", 20, 358},
+ {"MISSING_SRP_PARAM", 20, 358},
+ #endif
+ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION
+ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION},
+ #else
+ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
#endif
- #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION
- {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION},
- #else
- {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
- #endif
#ifdef SSL_R_MISSING_TMP_DH_KEY
{"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
#else
- {"MISSING_TMP_DH_KEY", 20, 171},
+ {"MISSING_TMP_DH_KEY", 20, 171},
#endif
#ifdef SSL_R_MISSING_TMP_ECDH_KEY
{"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY},
#else
- {"MISSING_TMP_ECDH_KEY", 20, 311},
+ {"MISSING_TMP_ECDH_KEY", 20, 311},
+ #endif
+ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA
+ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA},
+ #else
+ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293},
#endif
- #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA
- {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA},
+ #ifdef SSL_R_MULTIPLE_SGC_RESTARTS
+ {"MULTIPLE_SGC_RESTARTS", ERR_LIB_SSL, SSL_R_MULTIPLE_SGC_RESTARTS},
#else
- {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293},
+ {"MULTIPLE_SGC_RESTARTS", 20, 346},
#endif
- #ifdef SSL_R_MULTIPLE_SGC_RESTARTS
- {"MULTIPLE_SGC_RESTARTS", ERR_LIB_SSL, SSL_R_MULTIPLE_SGC_RESTARTS},
+ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY
+ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY},
#else
- {"MULTIPLE_SGC_RESTARTS", 20, 346},
+ {"NOT_ON_RECORD_BOUNDARY", 20, 182},
#endif
- #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY
- {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY},
+ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE
+ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE},
#else
- {"NOT_ON_RECORD_BOUNDARY", 20, 182},
+ {"NOT_REPLACING_CERTIFICATE", 20, 289},
#endif
- #ifdef SSL_R_NOT_REPLACING_CERTIFICATE
- {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE},
+ #ifdef SSL_R_NOT_SERVER
+ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER},
#else
- {"NOT_REPLACING_CERTIFICATE", 20, 289},
+ {"NOT_SERVER", 20, 284},
#endif
- #ifdef SSL_R_NOT_SERVER
- {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER},
+ #ifdef SSL_R_NO_APPLICATION_PROTOCOL
+ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL},
#else
- {"NOT_SERVER", 20, 284},
+ {"NO_APPLICATION_PROTOCOL", 20, 235},
#endif
- #ifdef SSL_R_NO_APPLICATION_PROTOCOL
- {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL},
- #else
- {"NO_APPLICATION_PROTOCOL", 20, 235},
- #endif
#ifdef SSL_R_NO_CERTIFICATES_RETURNED
{"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED},
#else
- {"NO_CERTIFICATES_RETURNED", 20, 176},
+ {"NO_CERTIFICATES_RETURNED", 20, 176},
#endif
#ifdef SSL_R_NO_CERTIFICATE_ASSIGNED
{"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED},
#else
- {"NO_CERTIFICATE_ASSIGNED", 20, 177},
+ {"NO_CERTIFICATE_ASSIGNED", 20, 177},
#endif
#ifdef SSL_R_NO_CERTIFICATE_SET
{"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET},
#else
- {"NO_CERTIFICATE_SET", 20, 179},
+ {"NO_CERTIFICATE_SET", 20, 179},
#endif
- #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR
- {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR},
+ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR
+ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR},
#else
- {"NO_CHANGE_FOLLOWING_HRR", 20, 214},
+ {"NO_CHANGE_FOLLOWING_HRR", 20, 214},
#endif
#ifdef SSL_R_NO_CIPHERS_AVAILABLE
{"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE},
#else
- {"NO_CIPHERS_AVAILABLE", 20, 181},
+ {"NO_CIPHERS_AVAILABLE", 20, 181},
#endif
#ifdef SSL_R_NO_CIPHERS_SPECIFIED
{"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED},
#else
- {"NO_CIPHERS_SPECIFIED", 20, 183},
+ {"NO_CIPHERS_SPECIFIED", 20, 183},
#endif
#ifdef SSL_R_NO_CIPHER_MATCH
{"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH},
#else
- {"NO_CIPHER_MATCH", 20, 185},
+ {"NO_CIPHER_MATCH", 20, 185},
#endif
#ifdef SSL_R_NO_CLIENT_CERT_METHOD
{"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD},
#else
- {"NO_CLIENT_CERT_METHOD", 20, 331},
+ {"NO_CLIENT_CERT_METHOD", 20, 331},
#endif
#ifdef SSL_R_NO_COMPRESSION_SPECIFIED
{"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED},
#else
- {"NO_COMPRESSION_SPECIFIED", 20, 187},
+ {"NO_COMPRESSION_SPECIFIED", 20, 187},
+ #endif
+ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET
+ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET},
+ #else
+ {"NO_COOKIE_CALLBACK_SET", 20, 287},
#endif
- #ifdef SSL_R_NO_COOKIE_CALLBACK_SET
- {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET},
- #else
- {"NO_COOKIE_CALLBACK_SET", 20, 287},
- #endif
#ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER
{"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER},
#else
- {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330},
+ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330},
#endif
#ifdef SSL_R_NO_METHOD_SPECIFIED
{"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED},
#else
- {"NO_METHOD_SPECIFIED", 20, 188},
+ {"NO_METHOD_SPECIFIED", 20, 188},
#endif
#ifdef SSL_R_NO_PEM_EXTENSIONS
{"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS},
#else
- {"NO_PEM_EXTENSIONS", 20, 389},
+ {"NO_PEM_EXTENSIONS", 20, 389},
#endif
#ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED
{"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED},
#else
- {"NO_PRIVATE_KEY_ASSIGNED", 20, 190},
+ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190},
#endif
#ifdef SSL_R_NO_PROTOCOLS_AVAILABLE
{"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE},
#else
- {"NO_PROTOCOLS_AVAILABLE", 20, 191},
+ {"NO_PROTOCOLS_AVAILABLE", 20, 191},
#endif
#ifdef SSL_R_NO_RENEGOTIATION
{"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION},
#else
- {"NO_RENEGOTIATION", 20, 339},
+ {"NO_RENEGOTIATION", 20, 339},
#endif
#ifdef SSL_R_NO_REQUIRED_DIGEST
{"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST},
#else
- {"NO_REQUIRED_DIGEST", 20, 324},
+ {"NO_REQUIRED_DIGEST", 20, 324},
#endif
#ifdef SSL_R_NO_SHARED_CIPHER
{"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER},
#else
- {"NO_SHARED_CIPHER", 20, 193},
+ {"NO_SHARED_CIPHER", 20, 193},
+ #endif
+ #ifdef SSL_R_NO_SHARED_GROUPS
+ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS},
+ #else
+ {"NO_SHARED_GROUPS", 20, 410},
#endif
- #ifdef SSL_R_NO_SHARED_GROUPS
- {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS},
+ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS
+ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS},
#else
- {"NO_SHARED_GROUPS", 20, 410},
+ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376},
#endif
- #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS
- {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS},
- #else
- {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376},
- #endif
#ifdef SSL_R_NO_SRTP_PROFILES
{"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES},
#else
- {"NO_SRTP_PROFILES", 20, 359},
- #endif
- #ifdef SSL_R_NO_SUITABLE_KEY_SHARE
- {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE},
- #else
- {"NO_SUITABLE_KEY_SHARE", 20, 101},
- #endif
- #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
- {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
- #else
- {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118},
- #endif
- #ifdef SSL_R_NO_VALID_SCTS
- {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS},
- #else
- {"NO_VALID_SCTS", 20, 216},
- #endif
- #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK
- {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK},
- #else
- {"NO_VERIFY_COOKIE_CALLBACK", 20, 403},
- #endif
+ {"NO_SRTP_PROFILES", 20, 359},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE
+ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE},
+ #else
+ {"NO_SUITABLE_KEY_SHARE", 20, 101},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
+ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
+ #else
+ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118},
+ #endif
+ #ifdef SSL_R_NO_VALID_SCTS
+ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS},
+ #else
+ {"NO_VALID_SCTS", 20, 216},
+ #endif
+ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK
+ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK},
+ #else
+ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403},
+ #endif
#ifdef SSL_R_NULL_SSL_CTX
{"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX},
#else
- {"NULL_SSL_CTX", 20, 195},
+ {"NULL_SSL_CTX", 20, 195},
#endif
#ifdef SSL_R_NULL_SSL_METHOD_PASSED
{"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED},
#else
- {"NULL_SSL_METHOD_PASSED", 20, 196},
+ {"NULL_SSL_METHOD_PASSED", 20, 196},
#endif
#ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED
{"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED},
#else
- {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197},
+ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197},
#endif
#ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED
{"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED},
#else
- {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344},
+ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344},
#endif
#ifdef SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE
{"ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE},
#else
- {"ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE", 20, 387},
+ {"ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE", 20, 387},
#endif
#ifdef SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE
{"ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE},
#else
- {"ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE", 20, 379},
+ {"ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE", 20, 379},
#endif
#ifdef SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE
{"ONLY_TLS_ALLOWED_IN_FIPS_MODE", ERR_LIB_SSL, SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE},
#else
- {"ONLY_TLS_ALLOWED_IN_FIPS_MODE", 20, 297},
+ {"ONLY_TLS_ALLOWED_IN_FIPS_MODE", 20, 297},
#endif
#ifdef SSL_R_OPAQUE_PRF_INPUT_TOO_LONG
{"OPAQUE_PRF_INPUT_TOO_LONG", ERR_LIB_SSL, SSL_R_OPAQUE_PRF_INPUT_TOO_LONG},
#else
- {"OPAQUE_PRF_INPUT_TOO_LONG", 20, 327},
+ {"OPAQUE_PRF_INPUT_TOO_LONG", 20, 327},
+ #endif
+ #ifdef SSL_R_OVERFLOW_ERROR
+ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR},
+ #else
+ {"OVERFLOW_ERROR", 20, 237},
#endif
- #ifdef SSL_R_OVERFLOW_ERROR
- {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR},
- #else
- {"OVERFLOW_ERROR", 20, 237},
- #endif
#ifdef SSL_R_PACKET_LENGTH_TOO_LONG
{"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG},
#else
- {"PACKET_LENGTH_TOO_LONG", 20, 198},
+ {"PACKET_LENGTH_TOO_LONG", 20, 198},
#endif
#ifdef SSL_R_PARSE_TLSEXT
{"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT},
#else
- {"PARSE_TLSEXT", 20, 227},
+ {"PARSE_TLSEXT", 20, 227},
#endif
#ifdef SSL_R_PATH_TOO_LONG
{"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG},
#else
- {"PATH_TOO_LONG", 20, 270},
+ {"PATH_TOO_LONG", 20, 270},
#endif
#ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE
{"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE},
#else
- {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199},
+ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199},
#endif
#ifdef SSL_R_PEM_NAME_BAD_PREFIX
{"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX},
#else
- {"PEM_NAME_BAD_PREFIX", 20, 391},
+ {"PEM_NAME_BAD_PREFIX", 20, 391},
#endif
#ifdef SSL_R_PEM_NAME_TOO_SHORT
{"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT},
#else
- {"PEM_NAME_TOO_SHORT", 20, 392},
+ {"PEM_NAME_TOO_SHORT", 20, 392},
+ #endif
+ #ifdef SSL_R_PIPELINE_FAILURE
+ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE},
+ #else
+ {"PIPELINE_FAILURE", 20, 406},
#endif
- #ifdef SSL_R_PIPELINE_FAILURE
- {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE},
+ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
+ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
#else
- {"PIPELINE_FAILURE", 20, 406},
+ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278},
#endif
- #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
- {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
+ #ifdef SSL_R_PRIVATE_KEY_MISMATCH
+ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH},
#else
- {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278},
+ {"PRIVATE_KEY_MISMATCH", 20, 288},
#endif
- #ifdef SSL_R_PRIVATE_KEY_MISMATCH
- {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH},
- #else
- {"PRIVATE_KEY_MISMATCH", 20, 288},
- #endif
#ifdef SSL_R_PROTOCOL_IS_SHUTDOWN
{"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN},
#else
- {"PROTOCOL_IS_SHUTDOWN", 20, 207},
+ {"PROTOCOL_IS_SHUTDOWN", 20, 207},
#endif
#ifdef SSL_R_PSK_IDENTITY_NOT_FOUND
{"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND},
#else
- {"PSK_IDENTITY_NOT_FOUND", 20, 223},
+ {"PSK_IDENTITY_NOT_FOUND", 20, 223},
#endif
#ifdef SSL_R_PSK_NO_CLIENT_CB
{"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB},
#else
- {"PSK_NO_CLIENT_CB", 20, 224},
+ {"PSK_NO_CLIENT_CB", 20, 224},
#endif
#ifdef SSL_R_PSK_NO_SERVER_CB
{"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB},
#else
- {"PSK_NO_SERVER_CB", 20, 225},
+ {"PSK_NO_SERVER_CB", 20, 225},
#endif
#ifdef SSL_R_READ_BIO_NOT_SET
{"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
#else
- {"READ_BIO_NOT_SET", 20, 211},
+ {"READ_BIO_NOT_SET", 20, 211},
#endif
#ifdef SSL_R_READ_TIMEOUT_EXPIRED
{"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED},
#else
- {"READ_TIMEOUT_EXPIRED", 20, 312},
+ {"READ_TIMEOUT_EXPIRED", 20, 312},
#endif
#ifdef SSL_R_RECORD_LENGTH_MISMATCH
{"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
#else
- {"RECORD_LENGTH_MISMATCH", 20, 213},
+ {"RECORD_LENGTH_MISMATCH", 20, 213},
#endif
#ifdef SSL_R_RECORD_TOO_SMALL
{"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL},
#else
- {"RECORD_TOO_SMALL", 20, 298},
+ {"RECORD_TOO_SMALL", 20, 298},
#endif
#ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
{"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
#else
- {"RENEGOTIATE_EXT_TOO_LONG", 20, 335},
+ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335},
#endif
#ifdef SSL_R_RENEGOTIATION_ENCODING_ERR
{"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR},
#else
- {"RENEGOTIATION_ENCODING_ERR", 20, 336},
+ {"RENEGOTIATION_ENCODING_ERR", 20, 336},
#endif
#ifdef SSL_R_RENEGOTIATION_MISMATCH
{"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH},
#else
- {"RENEGOTIATION_MISMATCH", 20, 337},
+ {"RENEGOTIATION_MISMATCH", 20, 337},
#endif
- #ifdef SSL_R_REQUEST_PENDING
- {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING},
+ #ifdef SSL_R_REQUEST_PENDING
+ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING},
#else
- {"REQUEST_PENDING", 20, 285},
+ {"REQUEST_PENDING", 20, 285},
#endif
- #ifdef SSL_R_REQUEST_SENT
- {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT},
+ #ifdef SSL_R_REQUEST_SENT
+ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT},
#else
- {"REQUEST_SENT", 20, 286},
+ {"REQUEST_SENT", 20, 286},
#endif
- #ifdef SSL_R_REQUIRED_CIPHER_MISSING
- {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING},
+ #ifdef SSL_R_REQUIRED_CIPHER_MISSING
+ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING},
#else
- {"REQUIRED_CIPHER_MISSING", 20, 215},
+ {"REQUIRED_CIPHER_MISSING", 20, 215},
#endif
- #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING
- {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING},
+ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING
+ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING},
#else
- {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342},
+ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342},
#endif
#ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING
{"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING},
#else
- {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345},
+ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345},
+ #endif
+ #ifdef SSL_R_SCT_VERIFICATION_FAILED
+ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED},
+ #else
+ {"SCT_VERIFICATION_FAILED", 20, 208},
#endif
- #ifdef SSL_R_SCT_VERIFICATION_FAILED
- {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED},
- #else
- {"SCT_VERIFICATION_FAILED", 20, 208},
- #endif
#ifdef SSL_R_SERVERHELLO_TLSEXT
{"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
#else
- {"SERVERHELLO_TLSEXT", 20, 275},
+ {"SERVERHELLO_TLSEXT", 20, 275},
#endif
#ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED
{"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED},
#else
- {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277},
+ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277},
#endif
- #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT
- {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT},
+ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT
+ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT},
#else
- {"SHUTDOWN_WHILE_IN_INIT", 20, 407},
+ {"SHUTDOWN_WHILE_IN_INIT", 20, 407},
#endif
#ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR
{"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR},
#else
- {"SIGNATURE_ALGORITHMS_ERROR", 20, 360},
+ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360},
#endif
#ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE
{"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE},
#else
- {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220},
+ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220},
#endif
#ifdef SSL_R_SRP_A_CALC
{"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC},
#else
- {"SRP_A_CALC", 20, 361},
+ {"SRP_A_CALC", 20, 361},
#endif
#ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES
{"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES},
#else
- {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362},
+ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362},
#endif
#ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG
{"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG},
#else
- {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363},
+ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363},
#endif
#ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE
{"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE},
#else
- {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364},
+ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364},
#endif
#ifdef SSL_R_SSL2_CONNECTION_ID_TOO_LONG
{"SSL2_CONNECTION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL2_CONNECTION_ID_TOO_LONG},
#else
- {"SSL2_CONNECTION_ID_TOO_LONG", 20, 299},
+ {"SSL2_CONNECTION_ID_TOO_LONG", 20, 299},
#endif
#ifdef SSL_R_SSL3_EXT_INVALID_ECPOINTFORMAT
{"SSL3_EXT_INVALID_ECPOINTFORMAT", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_ECPOINTFORMAT},
#else
- {"SSL3_EXT_INVALID_ECPOINTFORMAT", 20, 321},
+ {"SSL3_EXT_INVALID_ECPOINTFORMAT", 20, 321},
+ #endif
+ #ifdef SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH
+ {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH},
+ #else
+ {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232},
#endif
- #ifdef SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH
- {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH},
- #else
- {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232},
- #endif
#ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME
{"SSL3_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME},
#else
- {"SSL3_EXT_INVALID_SERVERNAME", 20, 319},
+ {"SSL3_EXT_INVALID_SERVERNAME", 20, 319},
#endif
#ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE
{"SSL3_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE},
#else
- {"SSL3_EXT_INVALID_SERVERNAME_TYPE", 20, 320},
+ {"SSL3_EXT_INVALID_SERVERNAME_TYPE", 20, 320},
#endif
#ifdef SSL_R_SSL3_SESSION_ID_TOO_LONG
{"SSL3_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL3_SESSION_ID_TOO_LONG},
#else
- {"SSL3_SESSION_ID_TOO_LONG", 20, 300},
+ {"SSL3_SESSION_ID_TOO_LONG", 20, 300},
#endif
#ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
{"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
#else
- {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
+ {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
#endif
#ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
{"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
#else
- {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
+ {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
#endif
#ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
{"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
#else
- {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
#endif
#ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
{"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
#else
- {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
#endif
#ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
{"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
#else
- {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
#endif
#ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
{"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
#else
- {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
#endif
#ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
{"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
#else
- {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
#endif
#ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
{"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
#else
- {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
#endif
#ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
{"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
#else
- {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
+ {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
#endif
#ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
{"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
#else
- {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
#endif
#ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
{"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
#else
- {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
- #endif
- #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
- {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
- #else
- {"SSL_COMMAND_SECTION_EMPTY", 20, 117},
- #endif
- #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND
- {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND},
- #else
- {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125},
- #endif
+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
+ #endif
+ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
+ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
+ #else
+ {"SSL_COMMAND_SECTION_EMPTY", 20, 117},
+ #endif
+ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND
+ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND},
+ #else
+ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125},
+ #endif
#ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION
{"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION},
#else
- {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228},
+ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228},
#endif
#ifdef SSL_R_SSL_HANDSHAKE_FAILURE
{"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE},
#else
- {"SSL_HANDSHAKE_FAILURE", 20, 229},
+ {"SSL_HANDSHAKE_FAILURE", 20, 229},
#endif
#ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS
{"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS},
#else
- {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230},
+ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230},
#endif
#ifdef SSL_R_SSL_NEGATIVE_LENGTH
{"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH},
#else
- {"SSL_NEGATIVE_LENGTH", 20, 372},
- #endif
- #ifdef SSL_R_SSL_SECTION_EMPTY
- {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY},
- #else
- {"SSL_SECTION_EMPTY", 20, 126},
- #endif
- #ifdef SSL_R_SSL_SECTION_NOT_FOUND
- {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND},
- #else
- {"SSL_SECTION_NOT_FOUND", 20, 136},
- #endif
+ {"SSL_NEGATIVE_LENGTH", 20, 372},
+ #endif
+ #ifdef SSL_R_SSL_SECTION_EMPTY
+ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY},
+ #else
+ {"SSL_SECTION_EMPTY", 20, 126},
+ #endif
+ #ifdef SSL_R_SSL_SECTION_NOT_FOUND
+ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND},
+ #else
+ {"SSL_SECTION_NOT_FOUND", 20, 136},
+ #endif
#ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED
{"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED},
#else
- {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301},
+ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301},
#endif
#ifdef SSL_R_SSL_SESSION_ID_CONFLICT
{"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT},
#else
- {"SSL_SESSION_ID_CONFLICT", 20, 302},
+ {"SSL_SESSION_ID_CONFLICT", 20, 302},
#endif
#ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG
{"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG},
#else
- {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273},
+ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273},
#endif
#ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH
{"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH},
#else
- {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG
- {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG},
- #else
- {"SSL_SESSION_ID_TOO_LONG", 20, 408},
- #endif
- #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH
- {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH},
- #else
- {"SSL_SESSION_VERSION_MISMATCH", 20, 210},
- #endif
- #ifdef SSL_R_STILL_IN_INIT
- {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT},
- #else
- {"STILL_IN_INIT", 20, 121},
- #endif
- #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
- {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
- #else
- {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
- #endif
- #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
- {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
- #else
- {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
- #endif
+ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG
+ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG},
+ #else
+ {"SSL_SESSION_ID_TOO_LONG", 20, 408},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH
+ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH},
+ #else
+ {"SSL_SESSION_VERSION_MISMATCH", 20, 210},
+ #endif
+ #ifdef SSL_R_STILL_IN_INIT
+ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT},
+ #else
+ {"STILL_IN_INIT", 20, 121},
+ #endif
+ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
+ #else
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
+ #endif
+ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
+ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
+ #else
+ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
{"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
#else
- {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
+ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
#endif
#ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
{"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
#else
- {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
+ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
#endif
#ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
{"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
#else
- {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
+ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
#endif
#ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
{"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
#else
- {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
+ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
#endif
#ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
{"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
#else
- {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
+ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
#endif
#ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
{"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
#else
- {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
#endif
#ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
{"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
#else
- {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
#endif
#ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
{"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
#else
- {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
+ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
#endif
#ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
{"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
#else
- {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
+ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
#endif
#ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
{"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
#else
- {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
+ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
#endif
#ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
{"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
#else
- {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
+ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
#endif
#ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
{"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
#else
- {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
+ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
#endif
#ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
{"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
#else
- {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
+ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
#endif
#ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
{"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
#else
- {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
#endif
#ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE
{"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE},
#else
- {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
#endif
#ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
{"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
#else
- {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
#endif
#ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
{"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
#else
- {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
+ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
#endif
#ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
{"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
#else
- {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
+ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
#endif
#ifdef SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT
{"TLS_HEARTBEAT_PEER_DOESNT_ACCEPT", ERR_LIB_SSL, SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT},
#else
- {"TLS_HEARTBEAT_PEER_DOESNT_ACCEPT", 20, 365},
+ {"TLS_HEARTBEAT_PEER_DOESNT_ACCEPT", 20, 365},
#endif
#ifdef SSL_R_TLS_HEARTBEAT_PENDING
{"TLS_HEARTBEAT_PENDING", ERR_LIB_SSL, SSL_R_TLS_HEARTBEAT_PENDING},
#else
- {"TLS_HEARTBEAT_PENDING", 20, 366},
+ {"TLS_HEARTBEAT_PENDING", 20, 366},
#endif
#ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL
{"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL},
#else
- {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367},
+ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367},
#endif
#ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST
{"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST},
#else
- {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157},
+ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157},
#endif
- #ifdef SSL_R_TOO_MANY_KEY_UPDATES
- {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES},
+ #ifdef SSL_R_TOO_MANY_KEY_UPDATES
+ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES},
#else
- {"TOO_MANY_KEY_UPDATES", 20, 132},
+ {"TOO_MANY_KEY_UPDATES", 20, 132},
#endif
- #ifdef SSL_R_TOO_MANY_WARN_ALERTS
- {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS},
+ #ifdef SSL_R_TOO_MANY_WARN_ALERTS
+ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS},
#else
- {"TOO_MANY_WARN_ALERTS", 20, 409},
+ {"TOO_MANY_WARN_ALERTS", 20, 409},
#endif
- #ifdef SSL_R_TOO_MUCH_EARLY_DATA
- {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA},
+ #ifdef SSL_R_TOO_MUCH_EARLY_DATA
+ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA},
#else
- {"TOO_MUCH_EARLY_DATA", 20, 164},
+ {"TOO_MUCH_EARLY_DATA", 20, 164},
#endif
#ifdef SSL_R_UNABLE_TO_DECODE_ECDH_CERTS
{"UNABLE_TO_DECODE_ECDH_CERTS", ERR_LIB_SSL, SSL_R_UNABLE_TO_DECODE_ECDH_CERTS},
#else
- {"UNABLE_TO_DECODE_ECDH_CERTS", 20, 313},
+ {"UNABLE_TO_DECODE_ECDH_CERTS", 20, 313},
#endif
#ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS
{"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS},
#else
- {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314},
+ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314},
#endif
#ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS
{"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS},
#else
- {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239},
+ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239},
#endif
#ifdef SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES
{"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES},
#else
- {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", 20, 242},
+ {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", 20, 242},
#endif
#ifdef SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES
{"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES},
#else
- {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", 20, 243},
- #endif
- #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE
- {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE},
- #else
- {"UNEXPECTED_CCS_MESSAGE", 20, 262},
- #endif
- #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA
- {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA},
- #else
- {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178},
- #endif
+ {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", 20, 243},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE
+ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE},
+ #else
+ {"UNEXPECTED_CCS_MESSAGE", 20, 262},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA
+ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA},
+ #else
+ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178},
+ #endif
#ifdef SSL_R_UNEXPECTED_MESSAGE
{"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE},
#else
- {"UNEXPECTED_MESSAGE", 20, 244},
+ {"UNEXPECTED_MESSAGE", 20, 244},
#endif
#ifdef SSL_R_UNEXPECTED_RECORD
{"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD},
#else
- {"UNEXPECTED_RECORD", 20, 245},
+ {"UNEXPECTED_RECORD", 20, 245},
#endif
#ifdef SSL_R_UNINITIALIZED
{"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED},
#else
- {"UNINITIALIZED", 20, 276},
+ {"UNINITIALIZED", 20, 276},
#endif
#ifdef SSL_R_UNKNOWN_ALERT_TYPE
{"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE},
#else
- {"UNKNOWN_ALERT_TYPE", 20, 246},
+ {"UNKNOWN_ALERT_TYPE", 20, 246},
#endif
#ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE
{"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE},
#else
- {"UNKNOWN_CERTIFICATE_TYPE", 20, 247},
+ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247},
#endif
#ifdef SSL_R_UNKNOWN_CIPHER_RETURNED
{"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED},
#else
- {"UNKNOWN_CIPHER_RETURNED", 20, 248},
+ {"UNKNOWN_CIPHER_RETURNED", 20, 248},
#endif
#ifdef SSL_R_UNKNOWN_CIPHER_TYPE
{"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE},
#else
- {"UNKNOWN_CIPHER_TYPE", 20, 249},
+ {"UNKNOWN_CIPHER_TYPE", 20, 249},
#endif
#ifdef SSL_R_UNKNOWN_CMD_NAME
{"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME},
#else
- {"UNKNOWN_CMD_NAME", 20, 386},
+ {"UNKNOWN_CMD_NAME", 20, 386},
+ #endif
+ #ifdef SSL_R_UNKNOWN_COMMAND
+ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND},
+ #else
+ {"UNKNOWN_COMMAND", 20, 139},
#endif
- #ifdef SSL_R_UNKNOWN_COMMAND
- {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND},
- #else
- {"UNKNOWN_COMMAND", 20, 139},
- #endif
#ifdef SSL_R_UNKNOWN_DIGEST
{"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST},
#else
- {"UNKNOWN_DIGEST", 20, 368},
+ {"UNKNOWN_DIGEST", 20, 368},
#endif
#ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE
{"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE},
#else
- {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
+ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
#endif
#ifdef SSL_R_UNKNOWN_PKEY_TYPE
{"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
#else
- {"UNKNOWN_PKEY_TYPE", 20, 251},
+ {"UNKNOWN_PKEY_TYPE", 20, 251},
#endif
#ifdef SSL_R_UNKNOWN_PROTOCOL
{"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL},
#else
- {"UNKNOWN_PROTOCOL", 20, 252},
+ {"UNKNOWN_PROTOCOL", 20, 252},
#endif
#ifdef SSL_R_UNKNOWN_SSL_VERSION
{"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION},
#else
- {"UNKNOWN_SSL_VERSION", 20, 254},
+ {"UNKNOWN_SSL_VERSION", 20, 254},
#endif
#ifdef SSL_R_UNKNOWN_STATE
{"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE},
#else
- {"UNKNOWN_STATE", 20, 255},
+ {"UNKNOWN_STATE", 20, 255},
#endif
#ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED
{"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED},
#else
- {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338},
+ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338},
#endif
- #ifdef SSL_R_UNSOLICITED_EXTENSION
- {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION},
+ #ifdef SSL_R_UNSOLICITED_EXTENSION
+ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION},
#else
- {"UNSOLICITED_EXTENSION", 20, 217},
+ {"UNSOLICITED_EXTENSION", 20, 217},
#endif
#ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM
{"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
#else
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
#endif
#ifdef SSL_R_UNSUPPORTED_DIGEST_TYPE
{"UNSUPPORTED_DIGEST_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_DIGEST_TYPE},
#else
- {"UNSUPPORTED_DIGEST_TYPE", 20, 326},
+ {"UNSUPPORTED_DIGEST_TYPE", 20, 326},
#endif
#ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
{"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
#else
- {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315},
+ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315},
#endif
#ifdef SSL_R_UNSUPPORTED_PROTOCOL
{"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL},
#else
- {"UNSUPPORTED_PROTOCOL", 20, 258},
+ {"UNSUPPORTED_PROTOCOL", 20, 258},
#endif
#ifdef SSL_R_UNSUPPORTED_SSL_VERSION
{"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION},
#else
- {"UNSUPPORTED_SSL_VERSION", 20, 259},
+ {"UNSUPPORTED_SSL_VERSION", 20, 259},
#endif
#ifdef SSL_R_UNSUPPORTED_STATUS_TYPE
{"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE},
#else
- {"UNSUPPORTED_STATUS_TYPE", 20, 329},
+ {"UNSUPPORTED_STATUS_TYPE", 20, 329},
#endif
#ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
{"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
#else
- {"USE_SRTP_NOT_NEGOTIATED", 20, 369},
+ {"USE_SRTP_NOT_NEGOTIATED", 20, 369},
+ #endif
+ #ifdef SSL_R_VERSION_TOO_HIGH
+ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH},
+ #else
+ {"VERSION_TOO_HIGH", 20, 166},
#endif
- #ifdef SSL_R_VERSION_TOO_HIGH
- {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH},
- #else
- {"VERSION_TOO_HIGH", 20, 166},
- #endif
#ifdef SSL_R_VERSION_TOO_LOW
{"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW},
#else
- {"VERSION_TOO_LOW", 20, 396},
+ {"VERSION_TOO_LOW", 20, 396},
#endif
#ifdef SSL_R_WRONG_CERTIFICATE_TYPE
{"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE},
#else
- {"WRONG_CERTIFICATE_TYPE", 20, 383},
+ {"WRONG_CERTIFICATE_TYPE", 20, 383},
#endif
#ifdef SSL_R_WRONG_CIPHER_RETURNED
{"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED},
#else
- {"WRONG_CIPHER_RETURNED", 20, 261},
+ {"WRONG_CIPHER_RETURNED", 20, 261},
#endif
#ifdef SSL_R_WRONG_CURVE
{"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE},
#else
- {"WRONG_CURVE", 20, 378},
+ {"WRONG_CURVE", 20, 378},
#endif
#ifdef SSL_R_WRONG_SIGNATURE_LENGTH
{"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
#else
- {"WRONG_SIGNATURE_LENGTH", 20, 264},
+ {"WRONG_SIGNATURE_LENGTH", 20, 264},
#endif
#ifdef SSL_R_WRONG_SIGNATURE_SIZE
{"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE},
#else
- {"WRONG_SIGNATURE_SIZE", 20, 265},
+ {"WRONG_SIGNATURE_SIZE", 20, 265},
#endif
#ifdef SSL_R_WRONG_SIGNATURE_TYPE
{"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE},
#else
- {"WRONG_SIGNATURE_TYPE", 20, 370},
+ {"WRONG_SIGNATURE_TYPE", 20, 370},
#endif
#ifdef SSL_R_WRONG_SSL_VERSION
{"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION},
#else
- {"WRONG_SSL_VERSION", 20, 266},
+ {"WRONG_SSL_VERSION", 20, 266},
#endif
#ifdef SSL_R_WRONG_VERSION_NUMBER
{"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER},
#else
- {"WRONG_VERSION_NUMBER", 20, 267},
+ {"WRONG_VERSION_NUMBER", 20, 267},
#endif
#ifdef SSL_R_X509_LIB
{"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB},
#else
- {"X509_LIB", 20, 268},
+ {"X509_LIB", 20, 268},
#endif
#ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS
{"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS},
#else
- {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269},
- #endif
- #ifdef TS_R_BAD_PKCS7_TYPE
- {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE},
- #else
- {"BAD_PKCS7_TYPE", 47, 132},
- #endif
- #ifdef TS_R_BAD_TYPE
- {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE},
- #else
- {"BAD_TYPE", 47, 133},
- #endif
- #ifdef TS_R_CANNOT_LOAD_CERT
- {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT},
- #else
- {"CANNOT_LOAD_CERT", 47, 137},
- #endif
- #ifdef TS_R_CANNOT_LOAD_KEY
- {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY},
- #else
- {"CANNOT_LOAD_KEY", 47, 138},
- #endif
- #ifdef TS_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 47, 100},
- #endif
- #ifdef TS_R_COULD_NOT_SET_ENGINE
- {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE},
- #else
- {"COULD_NOT_SET_ENGINE", 47, 127},
- #endif
- #ifdef TS_R_COULD_NOT_SET_TIME
- {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME},
- #else
- {"COULD_NOT_SET_TIME", 47, 115},
- #endif
- #ifdef TS_R_DETACHED_CONTENT
- {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT},
- #else
- {"DETACHED_CONTENT", 47, 134},
- #endif
- #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR
- {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR},
- #else
- {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116},
- #endif
- #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR
- {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR},
- #else
- {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139},
- #endif
- #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR
- {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR},
- #else
- {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101},
- #endif
- #ifdef TS_R_INVALID_NULL_POINTER
- {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER},
- #else
- {"INVALID_NULL_POINTER", 47, 102},
- #endif
- #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE
- {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE},
- #else
- {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117},
- #endif
- #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH
- {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH},
- #else
- {"MESSAGE_IMPRINT_MISMATCH", 47, 103},
- #endif
- #ifdef TS_R_NONCE_MISMATCH
- {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH},
- #else
- {"NONCE_MISMATCH", 47, 104},
- #endif
- #ifdef TS_R_NONCE_NOT_RETURNED
- {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED},
- #else
- {"NONCE_NOT_RETURNED", 47, 105},
- #endif
- #ifdef TS_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 47, 106},
- #endif
- #ifdef TS_R_NO_TIME_STAMP_TOKEN
- {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN},
- #else
- {"NO_TIME_STAMP_TOKEN", 47, 107},
- #endif
- #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR
- {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR},
- #else
- {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118},
- #endif
- #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR
- {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR},
- #else
- {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119},
- #endif
- #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED
- {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED},
- #else
- {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129},
- #endif
- #ifdef TS_R_POLICY_MISMATCH
- {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH},
- #else
- {"POLICY_MISMATCH", 47, 108},
- #endif
- #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120},
- #endif
- #ifdef TS_R_RESPONSE_SETUP_ERROR
- {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR},
- #else
- {"RESPONSE_SETUP_ERROR", 47, 121},
- #endif
- #ifdef TS_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 47, 109},
- #endif
- #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER
- {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER},
- #else
- {"THERE_MUST_BE_ONE_SIGNER", 47, 110},
- #endif
- #ifdef TS_R_TIME_SYSCALL_ERROR
- {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR},
- #else
- {"TIME_SYSCALL_ERROR", 47, 122},
- #endif
- #ifdef TS_R_TOKEN_NOT_PRESENT
- {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT},
- #else
- {"TOKEN_NOT_PRESENT", 47, 130},
- #endif
- #ifdef TS_R_TOKEN_PRESENT
- {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT},
- #else
- {"TOKEN_PRESENT", 47, 131},
- #endif
- #ifdef TS_R_TSA_NAME_MISMATCH
- {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH},
- #else
- {"TSA_NAME_MISMATCH", 47, 111},
- #endif
- #ifdef TS_R_TSA_UNTRUSTED
- {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED},
- #else
- {"TSA_UNTRUSTED", 47, 112},
- #endif
- #ifdef TS_R_TST_INFO_SETUP_ERROR
- {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR},
- #else
- {"TST_INFO_SETUP_ERROR", 47, 123},
- #endif
- #ifdef TS_R_TS_DATASIGN
- {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN},
- #else
- {"TS_DATASIGN", 47, 124},
- #endif
- #ifdef TS_R_UNACCEPTABLE_POLICY
- {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY},
- #else
- {"UNACCEPTABLE_POLICY", 47, 125},
- #endif
- #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM
- {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM},
- #else
- {"UNSUPPORTED_MD_ALGORITHM", 47, 126},
- #endif
- #ifdef TS_R_UNSUPPORTED_VERSION
- {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION},
- #else
- {"UNSUPPORTED_VERSION", 47, 113},
- #endif
- #ifdef TS_R_VAR_BAD_VALUE
- {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE},
- #else
- {"VAR_BAD_VALUE", 47, 135},
- #endif
- #ifdef TS_R_VAR_LOOKUP_FAILURE
- {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE},
- #else
- {"VAR_LOOKUP_FAILURE", 47, 136},
- #endif
- #ifdef TS_R_WRONG_CONTENT_TYPE
- {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE},
- #else
- {"WRONG_CONTENT_TYPE", 47, 114},
- #endif
- #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS
- {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS},
- #else
- {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104},
- #endif
- #ifdef UI_R_INDEX_TOO_LARGE
- {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE},
- #else
- {"INDEX_TOO_LARGE", 40, 102},
- #endif
- #ifdef UI_R_INDEX_TOO_SMALL
- {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL},
- #else
- {"INDEX_TOO_SMALL", 40, 103},
- #endif
- #ifdef UI_R_NO_RESULT_BUFFER
- {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER},
- #else
- {"NO_RESULT_BUFFER", 40, 105},
- #endif
- #ifdef UI_R_PROCESSING_ERROR
- {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR},
- #else
- {"PROCESSING_ERROR", 40, 107},
- #endif
- #ifdef UI_R_RESULT_TOO_LARGE
- {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE},
- #else
- {"RESULT_TOO_LARGE", 40, 100},
- #endif
- #ifdef UI_R_RESULT_TOO_SMALL
- {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL},
- #else
- {"RESULT_TOO_SMALL", 40, 101},
- #endif
- #ifdef UI_R_SYSASSIGN_ERROR
- {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR},
- #else
- {"SYSASSIGN_ERROR", 40, 109},
- #endif
- #ifdef UI_R_SYSDASSGN_ERROR
- {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR},
- #else
- {"SYSDASSGN_ERROR", 40, 110},
- #endif
- #ifdef UI_R_SYSQIOW_ERROR
- {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR},
- #else
- {"SYSQIOW_ERROR", 40, 111},
- #endif
- #ifdef UI_R_UNKNOWN_CONTROL_COMMAND
- {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND},
- #else
- {"UNKNOWN_CONTROL_COMMAND", 40, 106},
- #endif
- #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE
- {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE},
- #else
- {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108},
- #endif
- #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED
- {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED},
- #else
- {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112},
- #endif
- #ifdef X509V3_R_BAD_IP_ADDRESS
- {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS},
- #else
- {"BAD_IP_ADDRESS", 34, 118},
- #endif
- #ifdef X509V3_R_BAD_OBJECT
- {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT},
- #else
- {"BAD_OBJECT", 34, 119},
- #endif
- #ifdef X509V3_R_BN_DEC2BN_ERROR
- {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
- #else
- {"BN_DEC2BN_ERROR", 34, 100},
- #endif
- #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR
- {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR},
- #else
- {"BN_TO_ASN1_INTEGER_ERROR", 34, 101},
- #endif
- #ifdef X509V3_R_DIRNAME_ERROR
- {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR},
- #else
- {"DIRNAME_ERROR", 34, 149},
- #endif
- #ifdef X509V3_R_DISTPOINT_ALREADY_SET
- {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET},
- #else
- {"DISTPOINT_ALREADY_SET", 34, 160},
- #endif
- #ifdef X509V3_R_DUPLICATE_ZONE_ID
- {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID},
- #else
- {"DUPLICATE_ZONE_ID", 34, 133},
- #endif
- #ifdef X509V3_R_ERROR_CONVERTING_ZONE
- {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE},
- #else
- {"ERROR_CONVERTING_ZONE", 34, 131},
- #endif
- #ifdef X509V3_R_ERROR_CREATING_EXTENSION
- {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION},
- #else
- {"ERROR_CREATING_EXTENSION", 34, 144},
- #endif
- #ifdef X509V3_R_ERROR_IN_EXTENSION
- {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION},
- #else
- {"ERROR_IN_EXTENSION", 34, 128},
- #endif
- #ifdef X509V3_R_EXPECTED_A_SECTION_NAME
- {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME},
- #else
- {"EXPECTED_A_SECTION_NAME", 34, 137},
- #endif
- #ifdef X509V3_R_EXTENSION_EXISTS
- {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS},
- #else
- {"EXTENSION_EXISTS", 34, 145},
- #endif
- #ifdef X509V3_R_EXTENSION_NAME_ERROR
- {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR},
- #else
- {"EXTENSION_NAME_ERROR", 34, 115},
- #endif
- #ifdef X509V3_R_EXTENSION_NOT_FOUND
- {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND},
- #else
- {"EXTENSION_NOT_FOUND", 34, 102},
- #endif
- #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED
- {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED},
- #else
- {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103},
- #endif
- #ifdef X509V3_R_EXTENSION_VALUE_ERROR
- {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR},
- #else
- {"EXTENSION_VALUE_ERROR", 34, 116},
- #endif
- #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION
- {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION},
- #else
- {"ILLEGAL_EMPTY_EXTENSION", 34, 151},
- #endif
- #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG
- {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG},
- #else
- {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152},
- #endif
- #ifdef X509V3_R_INVALID_ASNUMBER
- {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER},
- #else
- {"INVALID_ASNUMBER", 34, 162},
- #endif
- #ifdef X509V3_R_INVALID_ASRANGE
- {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE},
- #else
- {"INVALID_ASRANGE", 34, 163},
- #endif
- #ifdef X509V3_R_INVALID_BOOLEAN_STRING
- {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING},
- #else
- {"INVALID_BOOLEAN_STRING", 34, 104},
- #endif
- #ifdef X509V3_R_INVALID_EXTENSION_STRING
- {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING},
- #else
- {"INVALID_EXTENSION_STRING", 34, 105},
- #endif
- #ifdef X509V3_R_INVALID_INHERITANCE
- {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE},
- #else
- {"INVALID_INHERITANCE", 34, 165},
- #endif
- #ifdef X509V3_R_INVALID_IPADDRESS
- {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS},
- #else
- {"INVALID_IPADDRESS", 34, 166},
- #endif
- #ifdef X509V3_R_INVALID_MULTIPLE_RDNS
- {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS},
- #else
- {"INVALID_MULTIPLE_RDNS", 34, 161},
- #endif
- #ifdef X509V3_R_INVALID_NAME
- {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME},
- #else
- {"INVALID_NAME", 34, 106},
- #endif
- #ifdef X509V3_R_INVALID_NULL_ARGUMENT
- {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT},
- #else
- {"INVALID_NULL_ARGUMENT", 34, 107},
- #endif
- #ifdef X509V3_R_INVALID_NULL_NAME
- {"INVALID_NULL_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_NAME},
- #else
- {"INVALID_NULL_NAME", 34, 108},
- #endif
- #ifdef X509V3_R_INVALID_NULL_VALUE
- {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE},
- #else
- {"INVALID_NULL_VALUE", 34, 109},
- #endif
- #ifdef X509V3_R_INVALID_NUMBER
- {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER},
- #else
- {"INVALID_NUMBER", 34, 140},
- #endif
- #ifdef X509V3_R_INVALID_NUMBERS
- {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS},
- #else
- {"INVALID_NUMBERS", 34, 141},
- #endif
- #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER
- {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER},
- #else
- {"INVALID_OBJECT_IDENTIFIER", 34, 110},
- #endif
- #ifdef X509V3_R_INVALID_OPTION
- {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION},
- #else
- {"INVALID_OPTION", 34, 138},
- #endif
- #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER
- {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER},
- #else
- {"INVALID_POLICY_IDENTIFIER", 34, 134},
- #endif
- #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING
- {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING},
- #else
- {"INVALID_PROXY_POLICY_SETTING", 34, 153},
- #endif
- #ifdef X509V3_R_INVALID_PURPOSE
- {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE},
- #else
- {"INVALID_PURPOSE", 34, 146},
- #endif
- #ifdef X509V3_R_INVALID_SAFI
- {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI},
- #else
- {"INVALID_SAFI", 34, 164},
- #endif
- #ifdef X509V3_R_INVALID_SECTION
- {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION},
- #else
- {"INVALID_SECTION", 34, 135},
- #endif
- #ifdef X509V3_R_INVALID_SYNTAX
- {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX},
- #else
- {"INVALID_SYNTAX", 34, 143},
- #endif
- #ifdef X509V3_R_ISSUER_DECODE_ERROR
- {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR},
- #else
- {"ISSUER_DECODE_ERROR", 34, 126},
- #endif
- #ifdef X509V3_R_MISSING_VALUE
- {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE},
- #else
- {"MISSING_VALUE", 34, 124},
- #endif
- #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS
- {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS},
- #else
- {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142},
- #endif
- #ifdef X509V3_R_NO_CONFIG_DATABASE
- {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE},
- #else
- {"NO_CONFIG_DATABASE", 34, 136},
- #endif
- #ifdef X509V3_R_NO_ISSUER_CERTIFICATE
- {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE},
- #else
- {"NO_ISSUER_CERTIFICATE", 34, 121},
- #endif
- #ifdef X509V3_R_NO_ISSUER_DETAILS
- {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS},
- #else
- {"NO_ISSUER_DETAILS", 34, 127},
- #endif
- #ifdef X509V3_R_NO_POLICY_IDENTIFIER
- {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER},
- #else
- {"NO_POLICY_IDENTIFIER", 34, 139},
- #endif
- #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED
- {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED},
- #else
- {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154},
- #endif
- #ifdef X509V3_R_NO_PUBLIC_KEY
- {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY},
- #else
- {"NO_PUBLIC_KEY", 34, 114},
- #endif
- #ifdef X509V3_R_NO_SUBJECT_DETAILS
- {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS},
- #else
- {"NO_SUBJECT_DETAILS", 34, 125},
- #endif
- #ifdef X509V3_R_OPERATION_NOT_DEFINED
- {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED},
- #else
- {"OPERATION_NOT_DEFINED", 34, 148},
- #endif
- #ifdef X509V3_R_OTHERNAME_ERROR
- {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR},
- #else
- {"OTHERNAME_ERROR", 34, 147},
- #endif
- #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED
- {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED},
- #else
- {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155},
- #endif
- #ifdef X509V3_R_POLICY_PATH_LENGTH
- {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH},
- #else
- {"POLICY_PATH_LENGTH", 34, 156},
- #endif
- #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED
- {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED},
- #else
- {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157},
- #endif
- #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY
- {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY},
- #else
- {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159},
- #endif
- #ifdef X509V3_R_SECTION_NOT_FOUND
- {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND},
- #else
- {"SECTION_NOT_FOUND", 34, 150},
- #endif
- #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS
- {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS},
- #else
- {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122},
- #endif
- #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID
- {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID},
- #else
- {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123},
- #endif
- #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT
- {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT},
- #else
- {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111},
- #endif
- #ifdef X509V3_R_UNKNOWN_EXTENSION
- {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION},
- #else
- {"UNKNOWN_EXTENSION", 34, 129},
- #endif
- #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME
- {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME},
- #else
- {"UNKNOWN_EXTENSION_NAME", 34, 130},
- #endif
- #ifdef X509V3_R_UNKNOWN_OPTION
- {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION},
- #else
- {"UNKNOWN_OPTION", 34, 120},
- #endif
- #ifdef X509V3_R_UNSUPPORTED_OPTION
- {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
- #else
- {"UNSUPPORTED_OPTION", 34, 117},
- #endif
- #ifdef X509V3_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 34, 167},
- #endif
- #ifdef X509V3_R_USER_TOO_LONG
- {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG},
- #else
- {"USER_TOO_LONG", 34, 132},
- #endif
+ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269},
+ #endif
+ #ifdef TS_R_BAD_PKCS7_TYPE
+ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE},
+ #else
+ {"BAD_PKCS7_TYPE", 47, 132},
+ #endif
+ #ifdef TS_R_BAD_TYPE
+ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE},
+ #else
+ {"BAD_TYPE", 47, 133},
+ #endif
+ #ifdef TS_R_CANNOT_LOAD_CERT
+ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT},
+ #else
+ {"CANNOT_LOAD_CERT", 47, 137},
+ #endif
+ #ifdef TS_R_CANNOT_LOAD_KEY
+ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY},
+ #else
+ {"CANNOT_LOAD_KEY", 47, 138},
+ #endif
+ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 47, 100},
+ #endif
+ #ifdef TS_R_COULD_NOT_SET_ENGINE
+ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE},
+ #else
+ {"COULD_NOT_SET_ENGINE", 47, 127},
+ #endif
+ #ifdef TS_R_COULD_NOT_SET_TIME
+ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME},
+ #else
+ {"COULD_NOT_SET_TIME", 47, 115},
+ #endif
+ #ifdef TS_R_DETACHED_CONTENT
+ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT},
+ #else
+ {"DETACHED_CONTENT", 47, 134},
+ #endif
+ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR
+ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR},
+ #else
+ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116},
+ #endif
+ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR
+ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR},
+ #else
+ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139},
+ #endif
+ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR
+ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR},
+ #else
+ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101},
+ #endif
+ #ifdef TS_R_INVALID_NULL_POINTER
+ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER},
+ #else
+ {"INVALID_NULL_POINTER", 47, 102},
+ #endif
+ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE
+ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE},
+ #else
+ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117},
+ #endif
+ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH
+ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH},
+ #else
+ {"MESSAGE_IMPRINT_MISMATCH", 47, 103},
+ #endif
+ #ifdef TS_R_NONCE_MISMATCH
+ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH},
+ #else
+ {"NONCE_MISMATCH", 47, 104},
+ #endif
+ #ifdef TS_R_NONCE_NOT_RETURNED
+ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED},
+ #else
+ {"NONCE_NOT_RETURNED", 47, 105},
+ #endif
+ #ifdef TS_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 47, 106},
+ #endif
+ #ifdef TS_R_NO_TIME_STAMP_TOKEN
+ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN},
+ #else
+ {"NO_TIME_STAMP_TOKEN", 47, 107},
+ #endif
+ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR
+ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118},
+ #endif
+ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR
+ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119},
+ #endif
+ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED
+ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED},
+ #else
+ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129},
+ #endif
+ #ifdef TS_R_POLICY_MISMATCH
+ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH},
+ #else
+ {"POLICY_MISMATCH", 47, 108},
+ #endif
+ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120},
+ #endif
+ #ifdef TS_R_RESPONSE_SETUP_ERROR
+ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR},
+ #else
+ {"RESPONSE_SETUP_ERROR", 47, 121},
+ #endif
+ #ifdef TS_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 47, 109},
+ #endif
+ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER
+ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER},
+ #else
+ {"THERE_MUST_BE_ONE_SIGNER", 47, 110},
+ #endif
+ #ifdef TS_R_TIME_SYSCALL_ERROR
+ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR},
+ #else
+ {"TIME_SYSCALL_ERROR", 47, 122},
+ #endif
+ #ifdef TS_R_TOKEN_NOT_PRESENT
+ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT},
+ #else
+ {"TOKEN_NOT_PRESENT", 47, 130},
+ #endif
+ #ifdef TS_R_TOKEN_PRESENT
+ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT},
+ #else
+ {"TOKEN_PRESENT", 47, 131},
+ #endif
+ #ifdef TS_R_TSA_NAME_MISMATCH
+ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH},
+ #else
+ {"TSA_NAME_MISMATCH", 47, 111},
+ #endif
+ #ifdef TS_R_TSA_UNTRUSTED
+ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED},
+ #else
+ {"TSA_UNTRUSTED", 47, 112},
+ #endif
+ #ifdef TS_R_TST_INFO_SETUP_ERROR
+ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR},
+ #else
+ {"TST_INFO_SETUP_ERROR", 47, 123},
+ #endif
+ #ifdef TS_R_TS_DATASIGN
+ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN},
+ #else
+ {"TS_DATASIGN", 47, 124},
+ #endif
+ #ifdef TS_R_UNACCEPTABLE_POLICY
+ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY},
+ #else
+ {"UNACCEPTABLE_POLICY", 47, 125},
+ #endif
+ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM
+ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM},
+ #else
+ {"UNSUPPORTED_MD_ALGORITHM", 47, 126},
+ #endif
+ #ifdef TS_R_UNSUPPORTED_VERSION
+ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION},
+ #else
+ {"UNSUPPORTED_VERSION", 47, 113},
+ #endif
+ #ifdef TS_R_VAR_BAD_VALUE
+ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE},
+ #else
+ {"VAR_BAD_VALUE", 47, 135},
+ #endif
+ #ifdef TS_R_VAR_LOOKUP_FAILURE
+ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE},
+ #else
+ {"VAR_LOOKUP_FAILURE", 47, 136},
+ #endif
+ #ifdef TS_R_WRONG_CONTENT_TYPE
+ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE},
+ #else
+ {"WRONG_CONTENT_TYPE", 47, 114},
+ #endif
+ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS
+ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS},
+ #else
+ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104},
+ #endif
+ #ifdef UI_R_INDEX_TOO_LARGE
+ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE},
+ #else
+ {"INDEX_TOO_LARGE", 40, 102},
+ #endif
+ #ifdef UI_R_INDEX_TOO_SMALL
+ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL},
+ #else
+ {"INDEX_TOO_SMALL", 40, 103},
+ #endif
+ #ifdef UI_R_NO_RESULT_BUFFER
+ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER},
+ #else
+ {"NO_RESULT_BUFFER", 40, 105},
+ #endif
+ #ifdef UI_R_PROCESSING_ERROR
+ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR},
+ #else
+ {"PROCESSING_ERROR", 40, 107},
+ #endif
+ #ifdef UI_R_RESULT_TOO_LARGE
+ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE},
+ #else
+ {"RESULT_TOO_LARGE", 40, 100},
+ #endif
+ #ifdef UI_R_RESULT_TOO_SMALL
+ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL},
+ #else
+ {"RESULT_TOO_SMALL", 40, 101},
+ #endif
+ #ifdef UI_R_SYSASSIGN_ERROR
+ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR},
+ #else
+ {"SYSASSIGN_ERROR", 40, 109},
+ #endif
+ #ifdef UI_R_SYSDASSGN_ERROR
+ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR},
+ #else
+ {"SYSDASSGN_ERROR", 40, 110},
+ #endif
+ #ifdef UI_R_SYSQIOW_ERROR
+ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR},
+ #else
+ {"SYSQIOW_ERROR", 40, 111},
+ #endif
+ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND
+ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND},
+ #else
+ {"UNKNOWN_CONTROL_COMMAND", 40, 106},
+ #endif
+ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE
+ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE},
+ #else
+ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108},
+ #endif
+ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED
+ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED},
+ #else
+ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112},
+ #endif
+ #ifdef X509V3_R_BAD_IP_ADDRESS
+ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS},
+ #else
+ {"BAD_IP_ADDRESS", 34, 118},
+ #endif
+ #ifdef X509V3_R_BAD_OBJECT
+ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT},
+ #else
+ {"BAD_OBJECT", 34, 119},
+ #endif
+ #ifdef X509V3_R_BN_DEC2BN_ERROR
+ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
+ #else
+ {"BN_DEC2BN_ERROR", 34, 100},
+ #endif
+ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR
+ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR},
+ #else
+ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101},
+ #endif
+ #ifdef X509V3_R_DIRNAME_ERROR
+ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR},
+ #else
+ {"DIRNAME_ERROR", 34, 149},
+ #endif
+ #ifdef X509V3_R_DISTPOINT_ALREADY_SET
+ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET},
+ #else
+ {"DISTPOINT_ALREADY_SET", 34, 160},
+ #endif
+ #ifdef X509V3_R_DUPLICATE_ZONE_ID
+ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID},
+ #else
+ {"DUPLICATE_ZONE_ID", 34, 133},
+ #endif
+ #ifdef X509V3_R_ERROR_CONVERTING_ZONE
+ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE},
+ #else
+ {"ERROR_CONVERTING_ZONE", 34, 131},
+ #endif
+ #ifdef X509V3_R_ERROR_CREATING_EXTENSION
+ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION},
+ #else
+ {"ERROR_CREATING_EXTENSION", 34, 144},
+ #endif
+ #ifdef X509V3_R_ERROR_IN_EXTENSION
+ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION},
+ #else
+ {"ERROR_IN_EXTENSION", 34, 128},
+ #endif
+ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME
+ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME},
+ #else
+ {"EXPECTED_A_SECTION_NAME", 34, 137},
+ #endif
+ #ifdef X509V3_R_EXTENSION_EXISTS
+ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS},
+ #else
+ {"EXTENSION_EXISTS", 34, 145},
+ #endif
+ #ifdef X509V3_R_EXTENSION_NAME_ERROR
+ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR},
+ #else
+ {"EXTENSION_NAME_ERROR", 34, 115},
+ #endif
+ #ifdef X509V3_R_EXTENSION_NOT_FOUND
+ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND},
+ #else
+ {"EXTENSION_NOT_FOUND", 34, 102},
+ #endif
+ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED
+ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED},
+ #else
+ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103},
+ #endif
+ #ifdef X509V3_R_EXTENSION_VALUE_ERROR
+ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR},
+ #else
+ {"EXTENSION_VALUE_ERROR", 34, 116},
+ #endif
+ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION
+ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION},
+ #else
+ {"ILLEGAL_EMPTY_EXTENSION", 34, 151},
+ #endif
+ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG
+ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG},
+ #else
+ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152},
+ #endif
+ #ifdef X509V3_R_INVALID_ASNUMBER
+ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER},
+ #else
+ {"INVALID_ASNUMBER", 34, 162},
+ #endif
+ #ifdef X509V3_R_INVALID_ASRANGE
+ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE},
+ #else
+ {"INVALID_ASRANGE", 34, 163},
+ #endif
+ #ifdef X509V3_R_INVALID_BOOLEAN_STRING
+ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING},
+ #else
+ {"INVALID_BOOLEAN_STRING", 34, 104},
+ #endif
+ #ifdef X509V3_R_INVALID_EXTENSION_STRING
+ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING},
+ #else
+ {"INVALID_EXTENSION_STRING", 34, 105},
+ #endif
+ #ifdef X509V3_R_INVALID_INHERITANCE
+ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE},
+ #else
+ {"INVALID_INHERITANCE", 34, 165},
+ #endif
+ #ifdef X509V3_R_INVALID_IPADDRESS
+ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS},
+ #else
+ {"INVALID_IPADDRESS", 34, 166},
+ #endif
+ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS
+ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS},
+ #else
+ {"INVALID_MULTIPLE_RDNS", 34, 161},
+ #endif
+ #ifdef X509V3_R_INVALID_NAME
+ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME},
+ #else
+ {"INVALID_NAME", 34, 106},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_ARGUMENT
+ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT},
+ #else
+ {"INVALID_NULL_ARGUMENT", 34, 107},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_NAME
+ {"INVALID_NULL_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_NAME},
+ #else
+ {"INVALID_NULL_NAME", 34, 108},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_VALUE
+ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE},
+ #else
+ {"INVALID_NULL_VALUE", 34, 109},
+ #endif
+ #ifdef X509V3_R_INVALID_NUMBER
+ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER},
+ #else
+ {"INVALID_NUMBER", 34, 140},
+ #endif
+ #ifdef X509V3_R_INVALID_NUMBERS
+ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS},
+ #else
+ {"INVALID_NUMBERS", 34, 141},
+ #endif
+ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER
+ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER},
+ #else
+ {"INVALID_OBJECT_IDENTIFIER", 34, 110},
+ #endif
+ #ifdef X509V3_R_INVALID_OPTION
+ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION},
+ #else
+ {"INVALID_OPTION", 34, 138},
+ #endif
+ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER
+ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER},
+ #else
+ {"INVALID_POLICY_IDENTIFIER", 34, 134},
+ #endif
+ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING
+ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING},
+ #else
+ {"INVALID_PROXY_POLICY_SETTING", 34, 153},
+ #endif
+ #ifdef X509V3_R_INVALID_PURPOSE
+ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE},
+ #else
+ {"INVALID_PURPOSE", 34, 146},
+ #endif
+ #ifdef X509V3_R_INVALID_SAFI
+ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI},
+ #else
+ {"INVALID_SAFI", 34, 164},
+ #endif
+ #ifdef X509V3_R_INVALID_SECTION
+ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION},
+ #else
+ {"INVALID_SECTION", 34, 135},
+ #endif
+ #ifdef X509V3_R_INVALID_SYNTAX
+ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX},
+ #else
+ {"INVALID_SYNTAX", 34, 143},
+ #endif
+ #ifdef X509V3_R_ISSUER_DECODE_ERROR
+ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR},
+ #else
+ {"ISSUER_DECODE_ERROR", 34, 126},
+ #endif
+ #ifdef X509V3_R_MISSING_VALUE
+ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE},
+ #else
+ {"MISSING_VALUE", 34, 124},
+ #endif
+ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS
+ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS},
+ #else
+ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142},
+ #endif
+ #ifdef X509V3_R_NO_CONFIG_DATABASE
+ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE},
+ #else
+ {"NO_CONFIG_DATABASE", 34, 136},
+ #endif
+ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE
+ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE},
+ #else
+ {"NO_ISSUER_CERTIFICATE", 34, 121},
+ #endif
+ #ifdef X509V3_R_NO_ISSUER_DETAILS
+ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS},
+ #else
+ {"NO_ISSUER_DETAILS", 34, 127},
+ #endif
+ #ifdef X509V3_R_NO_POLICY_IDENTIFIER
+ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER},
+ #else
+ {"NO_POLICY_IDENTIFIER", 34, 139},
+ #endif
+ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED
+ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED},
+ #else
+ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154},
+ #endif
+ #ifdef X509V3_R_NO_PUBLIC_KEY
+ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY},
+ #else
+ {"NO_PUBLIC_KEY", 34, 114},
+ #endif
+ #ifdef X509V3_R_NO_SUBJECT_DETAILS
+ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS},
+ #else
+ {"NO_SUBJECT_DETAILS", 34, 125},
+ #endif
+ #ifdef X509V3_R_OPERATION_NOT_DEFINED
+ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED},
+ #else
+ {"OPERATION_NOT_DEFINED", 34, 148},
+ #endif
+ #ifdef X509V3_R_OTHERNAME_ERROR
+ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR},
+ #else
+ {"OTHERNAME_ERROR", 34, 147},
+ #endif
+ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED
+ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED},
+ #else
+ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155},
+ #endif
+ #ifdef X509V3_R_POLICY_PATH_LENGTH
+ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH},
+ #else
+ {"POLICY_PATH_LENGTH", 34, 156},
+ #endif
+ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED
+ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED},
+ #else
+ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157},
+ #endif
+ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY
+ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY},
+ #else
+ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159},
+ #endif
+ #ifdef X509V3_R_SECTION_NOT_FOUND
+ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND},
+ #else
+ {"SECTION_NOT_FOUND", 34, 150},
+ #endif
+ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS
+ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS},
+ #else
+ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122},
+ #endif
+ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID
+ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID},
+ #else
+ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT
+ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT},
+ #else
+ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_EXTENSION
+ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION},
+ #else
+ {"UNKNOWN_EXTENSION", 34, 129},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME
+ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME},
+ #else
+ {"UNKNOWN_EXTENSION_NAME", 34, 130},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_OPTION
+ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION},
+ #else
+ {"UNKNOWN_OPTION", 34, 120},
+ #endif
+ #ifdef X509V3_R_UNSUPPORTED_OPTION
+ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
+ #else
+ {"UNSUPPORTED_OPTION", 34, 117},
+ #endif
+ #ifdef X509V3_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 34, 167},
+ #endif
+ #ifdef X509V3_R_USER_TOO_LONG
+ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG},
+ #else
+ {"USER_TOO_LONG", 34, 132},
+ #endif
#ifdef X509_R_AKID_MISMATCH
{"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH},
#else
- {"AKID_MISMATCH", 11, 110},
+ {"AKID_MISMATCH", 11, 110},
+ #endif
+ #ifdef X509_R_BAD_SELECTOR
+ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR},
+ #else
+ {"BAD_SELECTOR", 11, 133},
#endif
- #ifdef X509_R_BAD_SELECTOR
- {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR},
- #else
- {"BAD_SELECTOR", 11, 133},
- #endif
#ifdef X509_R_BAD_X509_FILETYPE
{"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE},
#else
- {"BAD_X509_FILETYPE", 11, 100},
+ {"BAD_X509_FILETYPE", 11, 100},
#endif
#ifdef X509_R_BASE64_DECODE_ERROR
{"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR},
#else
- {"BASE64_DECODE_ERROR", 11, 118},
+ {"BASE64_DECODE_ERROR", 11, 118},
#endif
#ifdef X509_R_CANT_CHECK_DH_KEY
{"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY},
#else
- {"CANT_CHECK_DH_KEY", 11, 114},
+ {"CANT_CHECK_DH_KEY", 11, 114},
#endif
#ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE
{"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE},
#else
- {"CERT_ALREADY_IN_HASH_TABLE", 11, 101},
+ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101},
#endif
#ifdef X509_R_CRL_ALREADY_DELTA
{"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA},
#else
- {"CRL_ALREADY_DELTA", 11, 127},
+ {"CRL_ALREADY_DELTA", 11, 127},
#endif
#ifdef X509_R_CRL_VERIFY_FAILURE
{"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE},
#else
- {"CRL_VERIFY_FAILURE", 11, 131},
+ {"CRL_VERIFY_FAILURE", 11, 131},
#endif
#ifdef X509_R_ERR_ASN1_LIB
{"ERR_ASN1_LIB", ERR_LIB_X509, X509_R_ERR_ASN1_LIB},
#else
- {"ERR_ASN1_LIB", 11, 102},
+ {"ERR_ASN1_LIB", 11, 102},
#endif
#ifdef X509_R_IDP_MISMATCH
{"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH},
#else
- {"IDP_MISMATCH", 11, 128},
+ {"IDP_MISMATCH", 11, 128},
+ #endif
+ #ifdef X509_R_INVALID_ATTRIBUTES
+ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES},
+ #else
+ {"INVALID_ATTRIBUTES", 11, 138},
#endif
- #ifdef X509_R_INVALID_ATTRIBUTES
- {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES},
- #else
- {"INVALID_ATTRIBUTES", 11, 138},
- #endif
#ifdef X509_R_INVALID_DIRECTORY
{"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY},
#else
- {"INVALID_DIRECTORY", 11, 113},
+ {"INVALID_DIRECTORY", 11, 113},
#endif
#ifdef X509_R_INVALID_FIELD_NAME
{"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME},
#else
- {"INVALID_FIELD_NAME", 11, 119},
+ {"INVALID_FIELD_NAME", 11, 119},
#endif
#ifdef X509_R_INVALID_TRUST
{"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST},
#else
- {"INVALID_TRUST", 11, 123},
+ {"INVALID_TRUST", 11, 123},
#endif
#ifdef X509_R_ISSUER_MISMATCH
{"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH},
#else
- {"ISSUER_MISMATCH", 11, 129},
+ {"ISSUER_MISMATCH", 11, 129},
#endif
#ifdef X509_R_KEY_TYPE_MISMATCH
{"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH},
#else
- {"KEY_TYPE_MISMATCH", 11, 115},
+ {"KEY_TYPE_MISMATCH", 11, 115},
#endif
#ifdef X509_R_KEY_VALUES_MISMATCH
{"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH},
#else
- {"KEY_VALUES_MISMATCH", 11, 116},
+ {"KEY_VALUES_MISMATCH", 11, 116},
#endif
#ifdef X509_R_LOADING_CERT_DIR
{"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR},
#else
- {"LOADING_CERT_DIR", 11, 103},
+ {"LOADING_CERT_DIR", 11, 103},
#endif
#ifdef X509_R_LOADING_DEFAULTS
{"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS},
#else
- {"LOADING_DEFAULTS", 11, 104},
+ {"LOADING_DEFAULTS", 11, 104},
#endif
#ifdef X509_R_METHOD_NOT_SUPPORTED
{"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED},
#else
- {"METHOD_NOT_SUPPORTED", 11, 124},
+ {"METHOD_NOT_SUPPORTED", 11, 124},
+ #endif
+ #ifdef X509_R_NAME_TOO_LONG
+ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG},
+ #else
+ {"NAME_TOO_LONG", 11, 134},
#endif
- #ifdef X509_R_NAME_TOO_LONG
- {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG},
- #else
- {"NAME_TOO_LONG", 11, 134},
- #endif
#ifdef X509_R_NEWER_CRL_NOT_NEWER
{"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER},
#else
- {"NEWER_CRL_NOT_NEWER", 11, 132},
- #endif
- #ifdef X509_R_NO_CERTIFICATE_FOUND
- {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND},
- #else
- {"NO_CERTIFICATE_FOUND", 11, 135},
- #endif
- #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND
- {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND},
- #else
- {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136},
- #endif
+ {"NEWER_CRL_NOT_NEWER", 11, 132},
+ #endif
+ #ifdef X509_R_NO_CERTIFICATE_FOUND
+ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND},
+ #else
+ {"NO_CERTIFICATE_FOUND", 11, 135},
+ #endif
+ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND
+ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND},
+ #else
+ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136},
+ #endif
#ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY
{"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY},
#else
- {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105},
+ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105},
+ #endif
+ #ifdef X509_R_NO_CRL_FOUND
+ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND},
+ #else
+ {"NO_CRL_FOUND", 11, 137},
#endif
- #ifdef X509_R_NO_CRL_FOUND
- {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND},
- #else
- {"NO_CRL_FOUND", 11, 137},
- #endif
#ifdef X509_R_NO_CRL_NUMBER
{"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER},
#else
- {"NO_CRL_NUMBER", 11, 130},
+ {"NO_CRL_NUMBER", 11, 130},
#endif
#ifdef X509_R_PUBLIC_KEY_DECODE_ERROR
{"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR},
#else
- {"PUBLIC_KEY_DECODE_ERROR", 11, 125},
+ {"PUBLIC_KEY_DECODE_ERROR", 11, 125},
#endif
#ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR
{"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR},
#else
- {"PUBLIC_KEY_ENCODE_ERROR", 11, 126},
+ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126},
#endif
#ifdef X509_R_SHOULD_RETRY
{"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY},
#else
- {"SHOULD_RETRY", 11, 106},
+ {"SHOULD_RETRY", 11, 106},
#endif
#ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN
{"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN},
#else
- {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107},
+ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107},
#endif
#ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY
{"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY},
#else
- {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108},
+ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108},
#endif
#ifdef X509_R_UNKNOWN_KEY_TYPE
{"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE},
#else
- {"UNKNOWN_KEY_TYPE", 11, 117},
+ {"UNKNOWN_KEY_TYPE", 11, 117},
#endif
#ifdef X509_R_UNKNOWN_NID
{"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID},
#else
- {"UNKNOWN_NID", 11, 109},
+ {"UNKNOWN_NID", 11, 109},
#endif
#ifdef X509_R_UNKNOWN_PURPOSE_ID
{"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID},
#else
- {"UNKNOWN_PURPOSE_ID", 11, 121},
+ {"UNKNOWN_PURPOSE_ID", 11, 121},
#endif
#ifdef X509_R_UNKNOWN_TRUST_ID
{"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID},
#else
- {"UNKNOWN_TRUST_ID", 11, 120},
+ {"UNKNOWN_TRUST_ID", 11, 120},
#endif
#ifdef X509_R_UNSUPPORTED_ALGORITHM
{"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM},
#else
- {"UNSUPPORTED_ALGORITHM", 11, 111},
+ {"UNSUPPORTED_ALGORITHM", 11, 111},
#endif
#ifdef X509_R_WRONG_LOOKUP_TYPE
{"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
#else
- {"WRONG_LOOKUP_TYPE", 11, 112},
+ {"WRONG_LOOKUP_TYPE", 11, 112},
#endif
#ifdef X509_R_WRONG_TYPE
{"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE},
#else
- {"WRONG_TYPE", 11, 122},
+ {"WRONG_TYPE", 11, 122},
#endif
{ NULL }
};
diff --git a/contrib/tools/python3/src/Modules/_ssl_data_111.h b/contrib/tools/python3/src/Modules/_ssl_data_111.h
index 19bfcef978..85a2f7ec15 100644
--- a/contrib/tools/python3/src/Modules/_ssl_data_111.h
+++ b/contrib/tools/python3/src/Modules/_ssl_data_111.h
@@ -1,6525 +1,6525 @@
-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2021-04-09T09:36:21.493286 */
-static struct py_ssl_library_code library_codes[] = {
-#ifdef ERR_LIB_ASN1
- {"ASN1", ERR_LIB_ASN1},
-#endif
-#ifdef ERR_LIB_ASYNC
- {"ASYNC", ERR_LIB_ASYNC},
-#endif
-#ifdef ERR_LIB_BIO
- {"BIO", ERR_LIB_BIO},
-#endif
-#ifdef ERR_LIB_BN
- {"BN", ERR_LIB_BN},
-#endif
-#ifdef ERR_LIB_BUF
- {"BUF", ERR_LIB_BUF},
-#endif
-#ifdef ERR_LIB_CMS
- {"CMS", ERR_LIB_CMS},
-#endif
-#ifdef ERR_LIB_COMP
- {"COMP", ERR_LIB_COMP},
-#endif
-#ifdef ERR_LIB_CONF
- {"CONF", ERR_LIB_CONF},
-#endif
-#ifdef ERR_LIB_CRYPTO
- {"CRYPTO", ERR_LIB_CRYPTO},
-#endif
-#ifdef ERR_LIB_CT
- {"CT", ERR_LIB_CT},
-#endif
-#ifdef ERR_LIB_DH
- {"DH", ERR_LIB_DH},
-#endif
-#ifdef ERR_LIB_DSA
- {"DSA", ERR_LIB_DSA},
-#endif
-#ifdef ERR_LIB_DSO
- {"DSO", ERR_LIB_DSO},
-#endif
-#ifdef ERR_LIB_EC
- {"EC", ERR_LIB_EC},
-#endif
-#ifdef ERR_LIB_ECDH
- {"ECDH", ERR_LIB_ECDH},
-#endif
-#ifdef ERR_LIB_ECDSA
- {"ECDSA", ERR_LIB_ECDSA},
-#endif
-#ifdef ERR_LIB_ENGINE
- {"ENGINE", ERR_LIB_ENGINE},
-#endif
-#ifdef ERR_LIB_EVP
- {"EVP", ERR_LIB_EVP},
-#endif
-#ifdef ERR_LIB_FIPS
- {"FIPS", ERR_LIB_FIPS},
-#endif
-#ifdef ERR_LIB_HMAC
- {"HMAC", ERR_LIB_HMAC},
-#endif
-#ifdef ERR_LIB_JPAKE
- {"JPAKE", ERR_LIB_JPAKE},
-#endif
-#ifdef ERR_LIB_KDF
- {"KDF", ERR_LIB_KDF},
-#endif
-#ifdef ERR_LIB_METH
- {"METH", ERR_LIB_METH},
-#endif
-#ifdef ERR_LIB_NONE
- {"NONE", ERR_LIB_NONE},
-#endif
-#ifdef ERR_LIB_OBJ
- {"OBJ", ERR_LIB_OBJ},
-#endif
-#ifdef ERR_LIB_OCSP
- {"OCSP", ERR_LIB_OCSP},
-#endif
-#ifdef ERR_LIB_OSSL_STORE
- {"OSSL_STORE", ERR_LIB_OSSL_STORE},
-#endif
-#ifdef ERR_LIB_PEM
- {"PEM", ERR_LIB_PEM},
-#endif
-#ifdef ERR_LIB_PKCS12
- {"PKCS12", ERR_LIB_PKCS12},
-#endif
-#ifdef ERR_LIB_PKCS7
- {"PKCS7", ERR_LIB_PKCS7},
-#endif
-#ifdef ERR_LIB_PROXY
- {"PROXY", ERR_LIB_PROXY},
-#endif
-#ifdef ERR_LIB_RAND
- {"RAND", ERR_LIB_RAND},
-#endif
-#ifdef ERR_LIB_RSA
- {"RSA", ERR_LIB_RSA},
-#endif
-#ifdef ERR_LIB_RSAREF
- {"RSAREF", ERR_LIB_RSAREF},
-#endif
-#ifdef ERR_LIB_SM2
- {"SM2", ERR_LIB_SM2},
-#endif
-#ifdef ERR_LIB_SSL
- {"SSL", ERR_LIB_SSL},
-#endif
-#ifdef ERR_LIB_SSL2
- {"SSL2", ERR_LIB_SSL2},
-#endif
-#ifdef ERR_LIB_SSL23
- {"SSL23", ERR_LIB_SSL23},
-#endif
-#ifdef ERR_LIB_SSL3
- {"SSL3", ERR_LIB_SSL3},
-#endif
-#ifdef ERR_LIB_SYS
- {"SYS", ERR_LIB_SYS},
-#endif
-#ifdef ERR_LIB_TS
- {"TS", ERR_LIB_TS},
-#endif
-#ifdef ERR_LIB_UI
- {"UI", ERR_LIB_UI},
-#endif
-#ifdef ERR_LIB_USER
- {"USER", ERR_LIB_USER},
-#endif
-#ifdef ERR_LIB_X509
- {"X509", ERR_LIB_X509},
-#endif
-#ifdef ERR_LIB_X509V3
- {"X509V3", ERR_LIB_X509V3},
-#endif
- { NULL }
-};
-
-
-static struct py_ssl_error_code error_codes[] = {
- #ifdef ASN1_R_ADDING_OBJECT
- {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT},
- #else
- {"ADDING_OBJECT", 13, 171},
- #endif
- #ifdef ASN1_R_ASN1_PARSE_ERROR
- {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR},
- #else
- {"ASN1_PARSE_ERROR", 13, 203},
- #endif
- #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR
- {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR},
- #else
- {"ASN1_SIG_PARSE_ERROR", 13, 204},
- #endif
- #ifdef ASN1_R_AUX_ERROR
- {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR},
- #else
- {"AUX_ERROR", 13, 100},
- #endif
- #ifdef ASN1_R_BAD_OBJECT_HEADER
- {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER},
- #else
- {"BAD_OBJECT_HEADER", 13, 102},
- #endif
- #ifdef ASN1_R_BAD_TEMPLATE
- {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE},
- #else
- {"BAD_TEMPLATE", 13, 230},
- #endif
- #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH
- {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH},
- #else
- {"BMPSTRING_IS_WRONG_LENGTH", 13, 214},
- #endif
- #ifdef ASN1_R_BN_LIB
- {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB},
- #else
- {"BN_LIB", 13, 105},
- #endif
- #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH
- {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH},
- #else
- {"BOOLEAN_IS_WRONG_LENGTH", 13, 106},
- #endif
- #ifdef ASN1_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 13, 107},
- #endif
- #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
- #else
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108},
- #endif
- #ifdef ASN1_R_CONTEXT_NOT_INITIALISED
- {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED},
- #else
- {"CONTEXT_NOT_INITIALISED", 13, 217},
- #endif
- #ifdef ASN1_R_DATA_IS_WRONG
- {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG},
- #else
- {"DATA_IS_WRONG", 13, 109},
- #endif
- #ifdef ASN1_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 13, 110},
- #endif
- #ifdef ASN1_R_DEPTH_EXCEEDED
- {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED},
- #else
- {"DEPTH_EXCEEDED", 13, 174},
- #endif
- #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED
- {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED},
- #else
- {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198},
- #endif
- #ifdef ASN1_R_ENCODE_ERROR
- {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR},
- #else
- {"ENCODE_ERROR", 13, 112},
- #endif
- #ifdef ASN1_R_ERROR_GETTING_TIME
- {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME},
- #else
- {"ERROR_GETTING_TIME", 13, 173},
- #endif
- #ifdef ASN1_R_ERROR_LOADING_SECTION
- {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION},
- #else
- {"ERROR_LOADING_SECTION", 13, 172},
- #endif
- #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS
- {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS},
- #else
- {"ERROR_SETTING_CIPHER_PARAMS", 13, 114},
- #endif
- #ifdef ASN1_R_EXPECTING_AN_INTEGER
- {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER},
- #else
- {"EXPECTING_AN_INTEGER", 13, 115},
- #endif
- #ifdef ASN1_R_EXPECTING_AN_OBJECT
- {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT},
- #else
- {"EXPECTING_AN_OBJECT", 13, 116},
- #endif
- #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH
- {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH},
- #else
- {"EXPLICIT_LENGTH_MISMATCH", 13, 119},
- #endif
- #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED
- {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED},
- #else
- {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120},
- #endif
- #ifdef ASN1_R_FIELD_MISSING
- {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING},
- #else
- {"FIELD_MISSING", 13, 121},
- #endif
- #ifdef ASN1_R_FIRST_NUM_TOO_LARGE
- {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE},
- #else
- {"FIRST_NUM_TOO_LARGE", 13, 122},
- #endif
- #ifdef ASN1_R_HEADER_TOO_LONG
- {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
- #else
- {"HEADER_TOO_LONG", 13, 123},
- #endif
- #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT
- {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT},
- #else
- {"ILLEGAL_BITSTRING_FORMAT", 13, 175},
- #endif
- #ifdef ASN1_R_ILLEGAL_BOOLEAN
- {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN},
- #else
- {"ILLEGAL_BOOLEAN", 13, 176},
- #endif
- #ifdef ASN1_R_ILLEGAL_CHARACTERS
- {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS},
- #else
- {"ILLEGAL_CHARACTERS", 13, 124},
- #endif
- #ifdef ASN1_R_ILLEGAL_FORMAT
- {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT},
- #else
- {"ILLEGAL_FORMAT", 13, 177},
- #endif
- #ifdef ASN1_R_ILLEGAL_HEX
- {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX},
- #else
- {"ILLEGAL_HEX", 13, 178},
- #endif
- #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG
- {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG},
- #else
- {"ILLEGAL_IMPLICIT_TAG", 13, 179},
- #endif
- #ifdef ASN1_R_ILLEGAL_INTEGER
- {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER},
- #else
- {"ILLEGAL_INTEGER", 13, 180},
- #endif
- #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE
- {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE},
- #else
- {"ILLEGAL_NEGATIVE_VALUE", 13, 226},
- #endif
- #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING
- {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING},
- #else
- {"ILLEGAL_NESTED_TAGGING", 13, 181},
- #endif
- #ifdef ASN1_R_ILLEGAL_NULL
- {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL},
- #else
- {"ILLEGAL_NULL", 13, 125},
- #endif
- #ifdef ASN1_R_ILLEGAL_NULL_VALUE
- {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE},
- #else
- {"ILLEGAL_NULL_VALUE", 13, 182},
- #endif
- #ifdef ASN1_R_ILLEGAL_OBJECT
- {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT},
- #else
- {"ILLEGAL_OBJECT", 13, 183},
- #endif
- #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY
- {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY},
- #else
- {"ILLEGAL_OPTIONAL_ANY", 13, 126},
- #endif
- #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE
- {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE},
- #else
- {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170},
- #endif
- #ifdef ASN1_R_ILLEGAL_PADDING
- {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING},
- #else
- {"ILLEGAL_PADDING", 13, 221},
- #endif
- #ifdef ASN1_R_ILLEGAL_TAGGED_ANY
- {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY},
- #else
- {"ILLEGAL_TAGGED_ANY", 13, 127},
- #endif
- #ifdef ASN1_R_ILLEGAL_TIME_VALUE
- {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE},
- #else
- {"ILLEGAL_TIME_VALUE", 13, 184},
- #endif
- #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT
- {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT},
- #else
- {"ILLEGAL_ZERO_CONTENT", 13, 222},
- #endif
- #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT
- {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT},
- #else
- {"INTEGER_NOT_ASCII_FORMAT", 13, 185},
- #endif
- #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG
- {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG},
- #else
- {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128},
- #endif
- #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT
- {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT},
- #else
- {"INVALID_BIT_STRING_BITS_LEFT", 13, 220},
- #endif
- #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH
- {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH},
- #else
- {"INVALID_BMPSTRING_LENGTH", 13, 129},
- #endif
- #ifdef ASN1_R_INVALID_DIGIT
- {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT},
- #else
- {"INVALID_DIGIT", 13, 130},
- #endif
- #ifdef ASN1_R_INVALID_MIME_TYPE
- {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE},
- #else
- {"INVALID_MIME_TYPE", 13, 205},
- #endif
- #ifdef ASN1_R_INVALID_MODIFIER
- {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER},
- #else
- {"INVALID_MODIFIER", 13, 186},
- #endif
- #ifdef ASN1_R_INVALID_NUMBER
- {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER},
- #else
- {"INVALID_NUMBER", 13, 187},
- #endif
- #ifdef ASN1_R_INVALID_OBJECT_ENCODING
- {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING},
- #else
- {"INVALID_OBJECT_ENCODING", 13, 216},
- #endif
- #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS
- {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS},
- #else
- {"INVALID_SCRYPT_PARAMETERS", 13, 227},
- #endif
- #ifdef ASN1_R_INVALID_SEPARATOR
- {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR},
- #else
- {"INVALID_SEPARATOR", 13, 131},
- #endif
- #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE
- {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE},
- #else
- {"INVALID_STRING_TABLE_VALUE", 13, 218},
- #endif
- #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH
- {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH},
- #else
- {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133},
- #endif
- #ifdef ASN1_R_INVALID_UTF8STRING
- {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING},
- #else
- {"INVALID_UTF8STRING", 13, 134},
- #endif
- #ifdef ASN1_R_INVALID_VALUE
- {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE},
- #else
- {"INVALID_VALUE", 13, 219},
- #endif
- #ifdef ASN1_R_LIST_ERROR
- {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR},
- #else
- {"LIST_ERROR", 13, 188},
- #endif
- #ifdef ASN1_R_MIME_NO_CONTENT_TYPE
- {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE},
- #else
- {"MIME_NO_CONTENT_TYPE", 13, 206},
- #endif
- #ifdef ASN1_R_MIME_PARSE_ERROR
- {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR},
- #else
- {"MIME_PARSE_ERROR", 13, 207},
- #endif
- #ifdef ASN1_R_MIME_SIG_PARSE_ERROR
- {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR},
- #else
- {"MIME_SIG_PARSE_ERROR", 13, 208},
- #endif
- #ifdef ASN1_R_MISSING_EOC
- {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC},
- #else
- {"MISSING_EOC", 13, 137},
- #endif
- #ifdef ASN1_R_MISSING_SECOND_NUMBER
- {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER},
- #else
- {"MISSING_SECOND_NUMBER", 13, 138},
- #endif
- #ifdef ASN1_R_MISSING_VALUE
- {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE},
- #else
- {"MISSING_VALUE", 13, 189},
- #endif
- #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL
- {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL},
- #else
- {"MSTRING_NOT_UNIVERSAL", 13, 139},
- #endif
- #ifdef ASN1_R_MSTRING_WRONG_TAG
- {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG},
- #else
- {"MSTRING_WRONG_TAG", 13, 140},
- #endif
- #ifdef ASN1_R_NESTED_ASN1_STRING
- {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING},
- #else
- {"NESTED_ASN1_STRING", 13, 197},
- #endif
- #ifdef ASN1_R_NESTED_TOO_DEEP
- {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP},
- #else
- {"NESTED_TOO_DEEP", 13, 201},
- #endif
- #ifdef ASN1_R_NON_HEX_CHARACTERS
- {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS},
- #else
- {"NON_HEX_CHARACTERS", 13, 141},
- #endif
- #ifdef ASN1_R_NOT_ASCII_FORMAT
- {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT},
- #else
- {"NOT_ASCII_FORMAT", 13, 190},
- #endif
- #ifdef ASN1_R_NOT_ENOUGH_DATA
- {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA},
- #else
- {"NOT_ENOUGH_DATA", 13, 142},
- #endif
- #ifdef ASN1_R_NO_CONTENT_TYPE
- {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE},
- #else
- {"NO_CONTENT_TYPE", 13, 209},
- #endif
- #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE
- {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE},
- #else
- {"NO_MATCHING_CHOICE_TYPE", 13, 143},
- #endif
- #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE
- {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE},
- #else
- {"NO_MULTIPART_BODY_FAILURE", 13, 210},
- #endif
- #ifdef ASN1_R_NO_MULTIPART_BOUNDARY
- {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY},
- #else
- {"NO_MULTIPART_BOUNDARY", 13, 211},
- #endif
- #ifdef ASN1_R_NO_SIG_CONTENT_TYPE
- {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE},
- #else
- {"NO_SIG_CONTENT_TYPE", 13, 212},
- #endif
- #ifdef ASN1_R_NULL_IS_WRONG_LENGTH
- {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH},
- #else
- {"NULL_IS_WRONG_LENGTH", 13, 144},
- #endif
- #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT
- {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT},
- #else
- {"OBJECT_NOT_ASCII_FORMAT", 13, 191},
- #endif
- #ifdef ASN1_R_ODD_NUMBER_OF_CHARS
- {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS},
- #else
- {"ODD_NUMBER_OF_CHARS", 13, 145},
- #endif
- #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE
- {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE},
- #else
- {"SECOND_NUMBER_TOO_LARGE", 13, 147},
- #endif
- #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH
- {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH},
- #else
- {"SEQUENCE_LENGTH_MISMATCH", 13, 148},
- #endif
- #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED
- {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED},
- #else
- {"SEQUENCE_NOT_CONSTRUCTED", 13, 149},
- #endif
- #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG
- {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG},
- #else
- {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192},
- #endif
- #ifdef ASN1_R_SHORT_LINE
- {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE},
- #else
- {"SHORT_LINE", 13, 150},
- #endif
- #ifdef ASN1_R_SIG_INVALID_MIME_TYPE
- {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE},
- #else
- {"SIG_INVALID_MIME_TYPE", 13, 213},
- #endif
- #ifdef ASN1_R_STREAMING_NOT_SUPPORTED
- {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED},
- #else
- {"STREAMING_NOT_SUPPORTED", 13, 202},
- #endif
- #ifdef ASN1_R_STRING_TOO_LONG
- {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG},
- #else
- {"STRING_TOO_LONG", 13, 151},
- #endif
- #ifdef ASN1_R_STRING_TOO_SHORT
- {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT},
- #else
- {"STRING_TOO_SHORT", 13, 152},
- #endif
- #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
- #else
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154},
- #endif
- #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT
- {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT},
- #else
- {"TIME_NOT_ASCII_FORMAT", 13, 193},
- #endif
- #ifdef ASN1_R_TOO_LARGE
- {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE},
- #else
- {"TOO_LARGE", 13, 223},
- #endif
- #ifdef ASN1_R_TOO_LONG
- {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG},
- #else
- {"TOO_LONG", 13, 155},
- #endif
- #ifdef ASN1_R_TOO_SMALL
- {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL},
- #else
- {"TOO_SMALL", 13, 224},
- #endif
- #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED
- {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED},
- #else
- {"TYPE_NOT_CONSTRUCTED", 13, 156},
- #endif
- #ifdef ASN1_R_TYPE_NOT_PRIMITIVE
- {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE},
- #else
- {"TYPE_NOT_PRIMITIVE", 13, 195},
- #endif
- #ifdef ASN1_R_UNEXPECTED_EOC
- {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC},
- #else
- {"UNEXPECTED_EOC", 13, 159},
- #endif
- #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH
- {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH},
- #else
- {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215},
- #endif
- #ifdef ASN1_R_UNKNOWN_FORMAT
- {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT},
- #else
- {"UNKNOWN_FORMAT", 13, 160},
- #endif
- #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM
- {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161},
- #endif
- #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE
- {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE},
- #else
- {"UNKNOWN_OBJECT_TYPE", 13, 162},
- #endif
- #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE
- {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE},
- #else
- {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163},
- #endif
- #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM
- {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM},
- #else
- {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199},
- #endif
- #ifdef ASN1_R_UNKNOWN_TAG
- {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG},
- #else
- {"UNKNOWN_TAG", 13, 194},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE
- {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE},
- #else
- {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 13, 228},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
- #else
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 13, 196},
- #endif
- #ifdef ASN1_R_WRONG_INTEGER_TYPE
- {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
- #else
- {"WRONG_INTEGER_TYPE", 13, 225},
- #endif
- #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE
- {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE},
- #else
- {"WRONG_PUBLIC_KEY_TYPE", 13, 200},
- #endif
- #ifdef ASN1_R_WRONG_TAG
- {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG},
- #else
- {"WRONG_TAG", 13, 168},
- #endif
- #ifdef ASYNC_R_FAILED_TO_SET_POOL
- {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL},
- #else
- {"FAILED_TO_SET_POOL", 51, 101},
- #endif
- #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT
- {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT},
- #else
- {"FAILED_TO_SWAP_CONTEXT", 51, 102},
- #endif
- #ifdef ASYNC_R_INIT_FAILED
- {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED},
- #else
- {"INIT_FAILED", 51, 105},
- #endif
- #ifdef ASYNC_R_INVALID_POOL_SIZE
- {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE},
- #else
- {"INVALID_POOL_SIZE", 51, 103},
- #endif
- #ifdef BIO_R_ACCEPT_ERROR
- {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR},
- #else
- {"ACCEPT_ERROR", 32, 100},
- #endif
- #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET
- {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET},
- #else
- {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141},
- #endif
- #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE
- {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE},
- #else
- {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129},
- #endif
- #ifdef BIO_R_BAD_FOPEN_MODE
- {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE},
- #else
- {"BAD_FOPEN_MODE", 32, 101},
- #endif
- #ifdef BIO_R_BROKEN_PIPE
- {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE},
- #else
- {"BROKEN_PIPE", 32, 124},
- #endif
- #ifdef BIO_R_CONNECT_ERROR
- {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR},
- #else
- {"CONNECT_ERROR", 32, 103},
- #endif
- #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET
- {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET},
- #else
- {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107},
- #endif
- #ifdef BIO_R_GETSOCKNAME_ERROR
- {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR},
- #else
- {"GETSOCKNAME_ERROR", 32, 132},
- #endif
- #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS
- {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS},
- #else
- {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133},
- #endif
- #ifdef BIO_R_GETTING_SOCKTYPE
- {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE},
- #else
- {"GETTING_SOCKTYPE", 32, 134},
- #endif
- #ifdef BIO_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 32, 125},
- #endif
- #ifdef BIO_R_INVALID_SOCKET
- {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET},
- #else
- {"INVALID_SOCKET", 32, 135},
- #endif
- #ifdef BIO_R_IN_USE
- {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE},
- #else
- {"IN_USE", 32, 123},
- #endif
- #ifdef BIO_R_LENGTH_TOO_LONG
- {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG},
- #else
- {"LENGTH_TOO_LONG", 32, 102},
- #endif
- #ifdef BIO_R_LISTEN_V6_ONLY
- {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY},
- #else
- {"LISTEN_V6_ONLY", 32, 136},
- #endif
- #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
- {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
- #else
- {"LOOKUP_RETURNED_NOTHING", 32, 142},
- #endif
- #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE
- {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE},
- #else
- {"MALFORMED_HOST_OR_SERVICE", 32, 130},
- #endif
- #ifdef BIO_R_NBIO_CONNECT_ERROR
- {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR},
- #else
- {"NBIO_CONNECT_ERROR", 32, 110},
- #endif
- #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
- {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
- #else
- {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143},
- #endif
- #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED
- {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED},
- #else
- {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144},
- #endif
- #ifdef BIO_R_NO_PORT_DEFINED
- {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED},
- #else
- {"NO_PORT_DEFINED", 32, 113},
- #endif
- #ifdef BIO_R_NO_SUCH_FILE
- {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE},
- #else
- {"NO_SUCH_FILE", 32, 128},
- #endif
- #ifdef BIO_R_NULL_PARAMETER
- {"NULL_PARAMETER", ERR_LIB_BIO, BIO_R_NULL_PARAMETER},
- #else
- {"NULL_PARAMETER", 32, 115},
- #endif
- #ifdef BIO_R_UNABLE_TO_BIND_SOCKET
- {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET},
- #else
- {"UNABLE_TO_BIND_SOCKET", 32, 117},
- #endif
- #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET
- {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET},
- #else
- {"UNABLE_TO_CREATE_SOCKET", 32, 118},
- #endif
- #ifdef BIO_R_UNABLE_TO_KEEPALIVE
- {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE},
- #else
- {"UNABLE_TO_KEEPALIVE", 32, 137},
- #endif
- #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET
- {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET},
- #else
- {"UNABLE_TO_LISTEN_SOCKET", 32, 119},
- #endif
- #ifdef BIO_R_UNABLE_TO_NODELAY
- {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY},
- #else
- {"UNABLE_TO_NODELAY", 32, 138},
- #endif
- #ifdef BIO_R_UNABLE_TO_REUSEADDR
- {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR},
- #else
- {"UNABLE_TO_REUSEADDR", 32, 139},
- #endif
- #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
- {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
- #else
- {"UNAVAILABLE_IP_FAMILY", 32, 145},
- #endif
- #ifdef BIO_R_UNINITIALIZED
- {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED},
- #else
- {"UNINITIALIZED", 32, 120},
- #endif
- #ifdef BIO_R_UNKNOWN_INFO_TYPE
- {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE},
- #else
- {"UNKNOWN_INFO_TYPE", 32, 140},
- #endif
- #ifdef BIO_R_UNSUPPORTED_IP_FAMILY
- {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY},
- #else
- {"UNSUPPORTED_IP_FAMILY", 32, 146},
- #endif
- #ifdef BIO_R_UNSUPPORTED_METHOD
- {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD},
- #else
- {"UNSUPPORTED_METHOD", 32, 121},
- #endif
- #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY
- {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY},
- #else
- {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131},
- #endif
- #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO
- {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO},
- #else
- {"WRITE_TO_READ_ONLY_BIO", 32, 126},
- #endif
- #ifdef BIO_R_WSASTARTUP
- {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP},
- #else
- {"WSASTARTUP", 32, 122},
- #endif
- #ifdef BN_R_ARG2_LT_ARG3
- {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3},
- #else
- {"ARG2_LT_ARG3", 3, 100},
- #endif
- #ifdef BN_R_BAD_RECIPROCAL
- {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL},
- #else
- {"BAD_RECIPROCAL", 3, 101},
- #endif
- #ifdef BN_R_BIGNUM_TOO_LONG
- {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG},
- #else
- {"BIGNUM_TOO_LONG", 3, 114},
- #endif
- #ifdef BN_R_BITS_TOO_SMALL
- {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL},
- #else
- {"BITS_TOO_SMALL", 3, 118},
- #endif
- #ifdef BN_R_CALLED_WITH_EVEN_MODULUS
- {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS},
- #else
- {"CALLED_WITH_EVEN_MODULUS", 3, 102},
- #endif
- #ifdef BN_R_DIV_BY_ZERO
- {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO},
- #else
- {"DIV_BY_ZERO", 3, 103},
- #endif
- #ifdef BN_R_ENCODING_ERROR
- {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR},
- #else
- {"ENCODING_ERROR", 3, 104},
- #endif
- #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA
- {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA},
- #else
- {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105},
- #endif
- #ifdef BN_R_INPUT_NOT_REDUCED
- {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED},
- #else
- {"INPUT_NOT_REDUCED", 3, 110},
- #endif
- #ifdef BN_R_INVALID_LENGTH
- {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH},
- #else
- {"INVALID_LENGTH", 3, 106},
- #endif
- #ifdef BN_R_INVALID_RANGE
- {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE},
- #else
- {"INVALID_RANGE", 3, 115},
- #endif
- #ifdef BN_R_INVALID_SHIFT
- {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT},
- #else
- {"INVALID_SHIFT", 3, 119},
- #endif
- #ifdef BN_R_NOT_A_SQUARE
- {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE},
- #else
- {"NOT_A_SQUARE", 3, 111},
- #endif
- #ifdef BN_R_NOT_INITIALIZED
- {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED},
- #else
- {"NOT_INITIALIZED", 3, 107},
- #endif
- #ifdef BN_R_NO_INVERSE
- {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE},
- #else
- {"NO_INVERSE", 3, 108},
- #endif
- #ifdef BN_R_NO_SOLUTION
- {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION},
- #else
- {"NO_SOLUTION", 3, 116},
- #endif
- #ifdef BN_R_PRIVATE_KEY_TOO_LARGE
- {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE},
- #else
- {"PRIVATE_KEY_TOO_LARGE", 3, 117},
- #endif
- #ifdef BN_R_P_IS_NOT_PRIME
- {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME},
- #else
- {"P_IS_NOT_PRIME", 3, 112},
- #endif
- #ifdef BN_R_TOO_MANY_ITERATIONS
- {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS},
- #else
- {"TOO_MANY_ITERATIONS", 3, 113},
- #endif
- #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES
- {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES},
- #else
- {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109},
- #endif
- #ifdef CMS_R_ADD_SIGNER_ERROR
- {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR},
- #else
- {"ADD_SIGNER_ERROR", 46, 99},
- #endif
- #ifdef CMS_R_ATTRIBUTE_ERROR
- {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR},
- #else
- {"ATTRIBUTE_ERROR", 46, 161},
- #endif
- #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT
- {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT},
- #else
- {"CERTIFICATE_ALREADY_PRESENT", 46, 175},
- #endif
- #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID
- {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID},
- #else
- {"CERTIFICATE_HAS_NO_KEYID", 46, 160},
- #endif
- #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 46, 100},
- #endif
- #ifdef CMS_R_CIPHER_INITIALISATION_ERROR
- {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR},
- #else
- {"CIPHER_INITIALISATION_ERROR", 46, 101},
- #endif
- #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR
- {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR},
- #else
- {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102},
- #endif
- #ifdef CMS_R_CMS_DATAFINAL_ERROR
- {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR},
- #else
- {"CMS_DATAFINAL_ERROR", 46, 103},
- #endif
- #ifdef CMS_R_CMS_LIB
- {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB},
- #else
- {"CMS_LIB", 46, 104},
- #endif
- #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH
- {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH},
- #else
- {"CONTENTIDENTIFIER_MISMATCH", 46, 170},
- #endif
- #ifdef CMS_R_CONTENT_NOT_FOUND
- {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND},
- #else
- {"CONTENT_NOT_FOUND", 46, 105},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_MISMATCH
- {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH},
- #else
- {"CONTENT_TYPE_MISMATCH", 46, 171},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA
- {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA},
- #else
- {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA
- {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA},
- #else
- {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA
- {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA},
- #else
- {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108},
- #endif
- #ifdef CMS_R_CONTENT_VERIFY_ERROR
- {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR},
- #else
- {"CONTENT_VERIFY_ERROR", 46, 109},
- #endif
- #ifdef CMS_R_CTRL_ERROR
- {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR},
- #else
- {"CTRL_ERROR", 46, 110},
- #endif
- #ifdef CMS_R_CTRL_FAILURE
- {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE},
- #else
- {"CTRL_FAILURE", 46, 111},
- #endif
- #ifdef CMS_R_DECRYPT_ERROR
- {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR},
- #else
- {"DECRYPT_ERROR", 46, 112},
- #endif
- #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY
- {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY},
- #else
- {"ERROR_GETTING_PUBLIC_KEY", 46, 113},
- #endif
- #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE
- {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE},
- #else
- {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114},
- #endif
- #ifdef CMS_R_ERROR_SETTING_KEY
- {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY},
- #else
- {"ERROR_SETTING_KEY", 46, 115},
- #endif
- #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO
- {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO},
- #else
- {"ERROR_SETTING_RECIPIENTINFO", 46, 116},
- #endif
- #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH
- {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH},
- #else
- {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117},
- #endif
- #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER
- {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER},
- #else
- {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176},
- #endif
- #ifdef CMS_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 46, 118},
- #endif
- #ifdef CMS_R_MD_BIO_INIT_ERROR
- {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR},
- #else
- {"MD_BIO_INIT_ERROR", 46, 119},
- #endif
- #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH
- {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH},
- #else
- {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120},
- #endif
- #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH
- {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH},
- #else
- {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_ERROR
- {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR},
- #else
- {"MSGSIGDIGEST_ERROR", 46, 172},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE
- {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE},
- #else
- {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH
- {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH},
- #else
- {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163},
- #endif
- #ifdef CMS_R_NEED_ONE_SIGNER
- {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER},
- #else
- {"NEED_ONE_SIGNER", 46, 164},
- #endif
- #ifdef CMS_R_NOT_A_SIGNED_RECEIPT
- {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT},
- #else
- {"NOT_A_SIGNED_RECEIPT", 46, 165},
- #endif
- #ifdef CMS_R_NOT_ENCRYPTED_DATA
- {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA},
- #else
- {"NOT_ENCRYPTED_DATA", 46, 122},
- #endif
- #ifdef CMS_R_NOT_KEK
- {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK},
- #else
- {"NOT_KEK", 46, 123},
- #endif
- #ifdef CMS_R_NOT_KEY_AGREEMENT
- {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT},
- #else
- {"NOT_KEY_AGREEMENT", 46, 181},
- #endif
- #ifdef CMS_R_NOT_KEY_TRANSPORT
- {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT},
- #else
- {"NOT_KEY_TRANSPORT", 46, 124},
- #endif
- #ifdef CMS_R_NOT_PWRI
- {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI},
- #else
- {"NOT_PWRI", 46, 177},
- #endif
- #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125},
- #endif
- #ifdef CMS_R_NO_CIPHER
- {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER},
- #else
- {"NO_CIPHER", 46, 126},
- #endif
- #ifdef CMS_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 46, 127},
- #endif
- #ifdef CMS_R_NO_CONTENT_TYPE
- {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE},
- #else
- {"NO_CONTENT_TYPE", 46, 173},
- #endif
- #ifdef CMS_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 46, 128},
- #endif
- #ifdef CMS_R_NO_DIGEST_SET
- {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET},
- #else
- {"NO_DIGEST_SET", 46, 129},
- #endif
- #ifdef CMS_R_NO_KEY
- {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY},
- #else
- {"NO_KEY", 46, 130},
- #endif
- #ifdef CMS_R_NO_KEY_OR_CERT
- {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT},
- #else
- {"NO_KEY_OR_CERT", 46, 174},
- #endif
- #ifdef CMS_R_NO_MATCHING_DIGEST
- {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST},
- #else
- {"NO_MATCHING_DIGEST", 46, 131},
- #endif
- #ifdef CMS_R_NO_MATCHING_RECIPIENT
- {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT},
- #else
- {"NO_MATCHING_RECIPIENT", 46, 132},
- #endif
- #ifdef CMS_R_NO_MATCHING_SIGNATURE
- {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE},
- #else
- {"NO_MATCHING_SIGNATURE", 46, 166},
- #endif
- #ifdef CMS_R_NO_MSGSIGDIGEST
- {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST},
- #else
- {"NO_MSGSIGDIGEST", 46, 167},
- #endif
- #ifdef CMS_R_NO_PASSWORD
- {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD},
- #else
- {"NO_PASSWORD", 46, 178},
- #endif
- #ifdef CMS_R_NO_PRIVATE_KEY
- {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY},
- #else
- {"NO_PRIVATE_KEY", 46, 133},
- #endif
- #ifdef CMS_R_NO_PUBLIC_KEY
- {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY},
- #else
- {"NO_PUBLIC_KEY", 46, 134},
- #endif
- #ifdef CMS_R_NO_RECEIPT_REQUEST
- {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST},
- #else
- {"NO_RECEIPT_REQUEST", 46, 168},
- #endif
- #ifdef CMS_R_NO_SIGNERS
- {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS},
- #else
- {"NO_SIGNERS", 46, 135},
- #endif
- #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136},
- #endif
- #ifdef CMS_R_RECEIPT_DECODE_ERROR
- {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR},
- #else
- {"RECEIPT_DECODE_ERROR", 46, 169},
- #endif
- #ifdef CMS_R_RECIPIENT_ERROR
- {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR},
- #else
- {"RECIPIENT_ERROR", 46, 137},
- #endif
- #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138},
- #endif
- #ifdef CMS_R_SIGNFINAL_ERROR
- {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR},
- #else
- {"SIGNFINAL_ERROR", 46, 139},
- #endif
- #ifdef CMS_R_SMIME_TEXT_ERROR
- {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR},
- #else
- {"SMIME_TEXT_ERROR", 46, 140},
- #endif
- #ifdef CMS_R_STORE_INIT_ERROR
- {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR},
- #else
- {"STORE_INIT_ERROR", 46, 141},
- #endif
- #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA
- {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA},
- #else
- {"TYPE_NOT_COMPRESSED_DATA", 46, 142},
- #endif
- #ifdef CMS_R_TYPE_NOT_DATA
- {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA},
- #else
- {"TYPE_NOT_DATA", 46, 143},
- #endif
- #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA
- {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA},
- #else
- {"TYPE_NOT_DIGESTED_DATA", 46, 144},
- #endif
- #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA
- {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA},
- #else
- {"TYPE_NOT_ENCRYPTED_DATA", 46, 145},
- #endif
- #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA
- {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA},
- #else
- {"TYPE_NOT_ENVELOPED_DATA", 46, 146},
- #endif
- #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT
- {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT},
- #else
- {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147},
- #endif
- #ifdef CMS_R_UNKNOWN_CIPHER
- {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER},
- #else
- {"UNKNOWN_CIPHER", 46, 148},
- #endif
- #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM
- {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_DIGEST_ALGORITHM", 46, 149},
- #endif
- #ifdef CMS_R_UNKNOWN_ID
- {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID},
- #else
- {"UNKNOWN_ID", 46, 150},
- #endif
- #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
- #else
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151},
- #endif
- #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 46, 152},
- #endif
- #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM
- {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM},
- #else
- {"UNSUPPORTED_KEK_ALGORITHM", 46, 153},
- #endif
- #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM
- {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM},
- #else
- {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179},
- #endif
- #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
- {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE},
- #else
- {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155},
- #endif
- #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE
- {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE},
- #else
- {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
- #endif
- #ifdef CMS_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 46, 156},
- #endif
- #ifdef CMS_R_UNWRAP_ERROR
- {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR},
- #else
- {"UNWRAP_ERROR", 46, 157},
- #endif
- #ifdef CMS_R_UNWRAP_FAILURE
- {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE},
- #else
- {"UNWRAP_FAILURE", 46, 180},
- #endif
- #ifdef CMS_R_VERIFICATION_FAILURE
- {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE},
- #else
- {"VERIFICATION_FAILURE", 46, 158},
- #endif
- #ifdef CMS_R_WRAP_ERROR
- {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR},
- #else
- {"WRAP_ERROR", 46, 159},
- #endif
- #ifdef COMP_R_ZLIB_DEFLATE_ERROR
- {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
- #else
- {"ZLIB_DEFLATE_ERROR", 41, 99},
- #endif
- #ifdef COMP_R_ZLIB_INFLATE_ERROR
- {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR},
- #else
- {"ZLIB_INFLATE_ERROR", 41, 100},
- #endif
- #ifdef COMP_R_ZLIB_NOT_SUPPORTED
- {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED},
- #else
- {"ZLIB_NOT_SUPPORTED", 41, 101},
- #endif
- #ifdef CONF_R_ERROR_LOADING_DSO
- {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
- #else
- {"ERROR_LOADING_DSO", 14, 110},
- #endif
- #ifdef CONF_R_LIST_CANNOT_BE_NULL
- {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL},
- #else
- {"LIST_CANNOT_BE_NULL", 14, 115},
- #endif
- #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET
- {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET},
- #else
- {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100},
- #endif
- #ifdef CONF_R_MISSING_EQUAL_SIGN
- {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN},
- #else
- {"MISSING_EQUAL_SIGN", 14, 101},
- #endif
- #ifdef CONF_R_MISSING_INIT_FUNCTION
- {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION},
- #else
- {"MISSING_INIT_FUNCTION", 14, 112},
- #endif
- #ifdef CONF_R_MODULE_INITIALIZATION_ERROR
- {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR},
- #else
- {"MODULE_INITIALIZATION_ERROR", 14, 109},
- #endif
- #ifdef CONF_R_NO_CLOSE_BRACE
- {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE},
- #else
- {"NO_CLOSE_BRACE", 14, 102},
- #endif
- #ifdef CONF_R_NO_CONF
- {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF},
- #else
- {"NO_CONF", 14, 105},
- #endif
- #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE
- {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE},
- #else
- {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106},
- #endif
- #ifdef CONF_R_NO_SECTION
- {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION},
- #else
- {"NO_SECTION", 14, 107},
- #endif
- #ifdef CONF_R_NO_SUCH_FILE
- {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE},
- #else
- {"NO_SUCH_FILE", 14, 114},
- #endif
- #ifdef CONF_R_NO_VALUE
- {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE},
- #else
- {"NO_VALUE", 14, 108},
- #endif
- #ifdef CONF_R_NUMBER_TOO_LARGE
- {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE},
- #else
- {"NUMBER_TOO_LARGE", 14, 121},
- #endif
- #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE
- {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE},
- #else
- {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
- #endif
- #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY
- {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY},
- #else
- {"SSL_COMMAND_SECTION_EMPTY", 14, 117},
- #endif
- #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND
- {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND},
- #else
- {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118},
- #endif
- #ifdef CONF_R_SSL_SECTION_EMPTY
- {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY},
- #else
- {"SSL_SECTION_EMPTY", 14, 119},
- #endif
- #ifdef CONF_R_SSL_SECTION_NOT_FOUND
- {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND},
- #else
- {"SSL_SECTION_NOT_FOUND", 14, 120},
- #endif
- #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION
- {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION},
- #else
- {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103},
- #endif
- #ifdef CONF_R_UNKNOWN_MODULE_NAME
- {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME},
- #else
- {"UNKNOWN_MODULE_NAME", 14, 113},
- #endif
- #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG
- {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG},
- #else
- {"VARIABLE_EXPANSION_TOO_LONG", 14, 116},
- #endif
- #ifdef CONF_R_VARIABLE_HAS_NO_VALUE
- {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE},
- #else
- {"VARIABLE_HAS_NO_VALUE", 14, 104},
- #endif
- #ifdef CRYPTO_R_FIPS_MODE_NOT_SUPPORTED
- {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_FIPS_MODE_NOT_SUPPORTED},
- #else
- {"FIPS_MODE_NOT_SUPPORTED", 15, 101},
- #endif
- #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT
- {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT},
- #else
- {"ILLEGAL_HEX_DIGIT", 15, 102},
- #endif
- #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS
- {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS},
- #else
- {"ODD_NUMBER_OF_DIGITS", 15, 103},
- #endif
- #ifdef CT_R_BASE64_DECODE_ERROR
- {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR},
- #else
- {"BASE64_DECODE_ERROR", 50, 108},
- #endif
- #ifdef CT_R_INVALID_LOG_ID_LENGTH
- {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH},
- #else
- {"INVALID_LOG_ID_LENGTH", 50, 100},
- #endif
- #ifdef CT_R_LOG_CONF_INVALID
- {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID},
- #else
- {"LOG_CONF_INVALID", 50, 109},
- #endif
- #ifdef CT_R_LOG_CONF_INVALID_KEY
- {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY},
- #else
- {"LOG_CONF_INVALID_KEY", 50, 110},
- #endif
- #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION
- {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION},
- #else
- {"LOG_CONF_MISSING_DESCRIPTION", 50, 111},
- #endif
- #ifdef CT_R_LOG_CONF_MISSING_KEY
- {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY},
- #else
- {"LOG_CONF_MISSING_KEY", 50, 112},
- #endif
- #ifdef CT_R_LOG_KEY_INVALID
- {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID},
- #else
- {"LOG_KEY_INVALID", 50, 113},
- #endif
- #ifdef CT_R_SCT_FUTURE_TIMESTAMP
- {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP},
- #else
- {"SCT_FUTURE_TIMESTAMP", 50, 116},
- #endif
- #ifdef CT_R_SCT_INVALID
- {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID},
- #else
- {"SCT_INVALID", 50, 104},
- #endif
- #ifdef CT_R_SCT_INVALID_SIGNATURE
- {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE},
- #else
- {"SCT_INVALID_SIGNATURE", 50, 107},
- #endif
- #ifdef CT_R_SCT_LIST_INVALID
- {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID},
- #else
- {"SCT_LIST_INVALID", 50, 105},
- #endif
- #ifdef CT_R_SCT_LOG_ID_MISMATCH
- {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH},
- #else
- {"SCT_LOG_ID_MISMATCH", 50, 114},
- #endif
- #ifdef CT_R_SCT_NOT_SET
- {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET},
- #else
- {"SCT_NOT_SET", 50, 106},
- #endif
- #ifdef CT_R_SCT_UNSUPPORTED_VERSION
- {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION},
- #else
- {"SCT_UNSUPPORTED_VERSION", 50, 115},
- #endif
- #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID
- {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID},
- #else
- {"UNRECOGNIZED_SIGNATURE_NID", 50, 101},
- #endif
- #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE
- {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE},
- #else
- {"UNSUPPORTED_ENTRY_TYPE", 50, 102},
- #endif
- #ifdef CT_R_UNSUPPORTED_VERSION
- {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION},
- #else
- {"UNSUPPORTED_VERSION", 50, 103},
- #endif
- #ifdef DH_R_BAD_GENERATOR
- {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR},
- #else
- {"BAD_GENERATOR", 5, 101},
- #endif
- #ifdef DH_R_BN_DECODE_ERROR
- {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR},
- #else
- {"BN_DECODE_ERROR", 5, 109},
- #endif
- #ifdef DH_R_BN_ERROR
- {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR},
- #else
- {"BN_ERROR", 5, 106},
- #endif
- #ifdef DH_R_CHECK_INVALID_J_VALUE
- {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE},
- #else
- {"CHECK_INVALID_J_VALUE", 5, 115},
- #endif
- #ifdef DH_R_CHECK_INVALID_Q_VALUE
- {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE},
- #else
- {"CHECK_INVALID_Q_VALUE", 5, 116},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_INVALID
- {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID},
- #else
- {"CHECK_PUBKEY_INVALID", 5, 122},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE
- {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE},
- #else
- {"CHECK_PUBKEY_TOO_LARGE", 5, 123},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL
- {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL},
- #else
- {"CHECK_PUBKEY_TOO_SMALL", 5, 124},
- #endif
- #ifdef DH_R_CHECK_P_NOT_PRIME
- {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME},
- #else
- {"CHECK_P_NOT_PRIME", 5, 117},
- #endif
- #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME
- {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME},
- #else
- {"CHECK_P_NOT_SAFE_PRIME", 5, 118},
- #endif
- #ifdef DH_R_CHECK_Q_NOT_PRIME
- {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME},
- #else
- {"CHECK_Q_NOT_PRIME", 5, 119},
- #endif
- #ifdef DH_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 5, 104},
- #endif
- #ifdef DH_R_INVALID_PARAMETER_NAME
- {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME},
- #else
- {"INVALID_PARAMETER_NAME", 5, 110},
- #endif
- #ifdef DH_R_INVALID_PARAMETER_NID
- {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID},
- #else
- {"INVALID_PARAMETER_NID", 5, 114},
- #endif
- #ifdef DH_R_INVALID_PUBKEY
- {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY},
- #else
- {"INVALID_PUBKEY", 5, 102},
- #endif
- #ifdef DH_R_KDF_PARAMETER_ERROR
- {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
- #else
- {"KDF_PARAMETER_ERROR", 5, 112},
- #endif
- #ifdef DH_R_KEYS_NOT_SET
- {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET},
- #else
- {"KEYS_NOT_SET", 5, 108},
- #endif
- #ifdef DH_R_MISSING_PUBKEY
- {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY},
- #else
- {"MISSING_PUBKEY", 5, 125},
- #endif
- #ifdef DH_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 5, 103},
- #endif
- #ifdef DH_R_NOT_SUITABLE_GENERATOR
- {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR},
- #else
- {"NOT_SUITABLE_GENERATOR", 5, 120},
- #endif
- #ifdef DH_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 5, 107},
- #endif
- #ifdef DH_R_NO_PRIVATE_VALUE
- {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE},
- #else
- {"NO_PRIVATE_VALUE", 5, 100},
- #endif
- #ifdef DH_R_PARAMETER_ENCODING_ERROR
- {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR},
- #else
- {"PARAMETER_ENCODING_ERROR", 5, 105},
- #endif
- #ifdef DH_R_PEER_KEY_ERROR
- {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR},
- #else
- {"PEER_KEY_ERROR", 5, 111},
- #endif
- #ifdef DH_R_SHARED_INFO_ERROR
- {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
- #else
- {"SHARED_INFO_ERROR", 5, 113},
- #endif
- #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR
- {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR},
- #else
- {"UNABLE_TO_CHECK_GENERATOR", 5, 121},
- #endif
- #ifdef DSA_R_BAD_Q_VALUE
- {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE},
- #else
- {"BAD_Q_VALUE", 10, 102},
- #endif
- #ifdef DSA_R_BN_DECODE_ERROR
- {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR},
- #else
- {"BN_DECODE_ERROR", 10, 108},
- #endif
- #ifdef DSA_R_BN_ERROR
- {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR},
- #else
- {"BN_ERROR", 10, 109},
- #endif
- #ifdef DSA_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 10, 104},
- #endif
- #ifdef DSA_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 10, 106},
- #endif
- #ifdef DSA_R_INVALID_PARAMETERS
- {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS},
- #else
- {"INVALID_PARAMETERS", 10, 112},
- #endif
- #ifdef DSA_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 10, 101},
- #endif
- #ifdef DSA_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 10, 111},
- #endif
- #ifdef DSA_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 10, 103},
- #endif
- #ifdef DSA_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 10, 107},
- #endif
- #ifdef DSA_R_PARAMETER_ENCODING_ERROR
- {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR},
- #else
- {"PARAMETER_ENCODING_ERROR", 10, 105},
- #endif
- #ifdef DSA_R_Q_NOT_PRIME
- {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME},
- #else
- {"Q_NOT_PRIME", 10, 113},
- #endif
- #ifdef DSA_R_SEED_LEN_SMALL
- {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL},
- #else
- {"SEED_LEN_SMALL", 10, 110},
- #endif
- #ifdef DSO_R_CTRL_FAILED
- {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED},
- #else
- {"CTRL_FAILED", 37, 100},
- #endif
- #ifdef DSO_R_DSO_ALREADY_LOADED
- {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED},
- #else
- {"DSO_ALREADY_LOADED", 37, 110},
- #endif
- #ifdef DSO_R_EMPTY_FILE_STRUCTURE
- {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE},
- #else
- {"EMPTY_FILE_STRUCTURE", 37, 113},
- #endif
- #ifdef DSO_R_FAILURE
- {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE},
- #else
- {"FAILURE", 37, 114},
- #endif
- #ifdef DSO_R_FILENAME_TOO_BIG
- {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG},
- #else
- {"FILENAME_TOO_BIG", 37, 101},
- #endif
- #ifdef DSO_R_FINISH_FAILED
- {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED},
- #else
- {"FINISH_FAILED", 37, 102},
- #endif
- #ifdef DSO_R_INCORRECT_FILE_SYNTAX
- {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX},
- #else
- {"INCORRECT_FILE_SYNTAX", 37, 115},
- #endif
- #ifdef DSO_R_LOAD_FAILED
- {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED},
- #else
- {"LOAD_FAILED", 37, 103},
- #endif
- #ifdef DSO_R_NAME_TRANSLATION_FAILED
- {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED},
- #else
- {"NAME_TRANSLATION_FAILED", 37, 109},
- #endif
- #ifdef DSO_R_NO_FILENAME
- {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME},
- #else
- {"NO_FILENAME", 37, 111},
- #endif
- #ifdef DSO_R_NULL_HANDLE
- {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE},
- #else
- {"NULL_HANDLE", 37, 104},
- #endif
- #ifdef DSO_R_SET_FILENAME_FAILED
- {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED},
- #else
- {"SET_FILENAME_FAILED", 37, 112},
- #endif
- #ifdef DSO_R_STACK_ERROR
- {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR},
- #else
- {"STACK_ERROR", 37, 105},
- #endif
- #ifdef DSO_R_SYM_FAILURE
- {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE},
- #else
- {"SYM_FAILURE", 37, 106},
- #endif
- #ifdef DSO_R_UNLOAD_FAILED
- {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED},
- #else
- {"UNLOAD_FAILED", 37, 107},
- #endif
- #ifdef DSO_R_UNSUPPORTED
- {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED},
- #else
- {"UNSUPPORTED", 37, 108},
- #endif
- #ifdef EC_R_ASN1_ERROR
- {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR},
- #else
- {"ASN1_ERROR", 16, 115},
- #endif
- #ifdef EC_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 16, 156},
- #endif
- #ifdef EC_R_BIGNUM_OUT_OF_RANGE
- {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE},
- #else
- {"BIGNUM_OUT_OF_RANGE", 16, 144},
- #endif
- #ifdef EC_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 16, 100},
- #endif
- #ifdef EC_R_CANNOT_INVERT
- {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT},
- #else
- {"CANNOT_INVERT", 16, 165},
- #endif
- #ifdef EC_R_COORDINATES_OUT_OF_RANGE
- {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE},
- #else
- {"COORDINATES_OUT_OF_RANGE", 16, 146},
- #endif
- #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH
- {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH},
- #else
- {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160},
- #endif
- #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING
- {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING},
- #else
- {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159},
- #endif
- #ifdef EC_R_D2I_ECPKPARAMETERS_FAILURE
- {"D2I_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_D2I_ECPKPARAMETERS_FAILURE},
- #else
- {"D2I_ECPKPARAMETERS_FAILURE", 16, 117},
- #endif
- #ifdef EC_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 16, 142},
- #endif
- #ifdef EC_R_DISCRIMINANT_IS_ZERO
- {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO},
- #else
- {"DISCRIMINANT_IS_ZERO", 16, 118},
- #endif
- #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE
- {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE},
- #else
- {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119},
- #endif
- #ifdef EC_R_FIELD_TOO_LARGE
- {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE},
- #else
- {"FIELD_TOO_LARGE", 16, 143},
- #endif
- #ifdef EC_R_GF2M_NOT_SUPPORTED
- {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED},
- #else
- {"GF2M_NOT_SUPPORTED", 16, 147},
- #endif
- #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE
- {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE},
- #else
- {"GROUP2PKPARAMETERS_FAILURE", 16, 120},
- #endif
- #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE
- {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE},
- #else
- {"I2D_ECPKPARAMETERS_FAILURE", 16, 121},
- #endif
- #ifdef EC_R_INCOMPATIBLE_OBJECTS
- {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS},
- #else
- {"INCOMPATIBLE_OBJECTS", 16, 101},
- #endif
- #ifdef EC_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 16, 112},
- #endif
- #ifdef EC_R_INVALID_COMPRESSED_POINT
- {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT},
- #else
- {"INVALID_COMPRESSED_POINT", 16, 110},
- #endif
- #ifdef EC_R_INVALID_COMPRESSION_BIT
- {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT},
- #else
- {"INVALID_COMPRESSION_BIT", 16, 109},
- #endif
- #ifdef EC_R_INVALID_CURVE
- {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE},
- #else
- {"INVALID_CURVE", 16, 141},
- #endif
- #ifdef EC_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 16, 151},
- #endif
- #ifdef EC_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 16, 138},
- #endif
- #ifdef EC_R_INVALID_ENCODING
- {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING},
- #else
- {"INVALID_ENCODING", 16, 102},
- #endif
- #ifdef EC_R_INVALID_FIELD
- {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD},
- #else
- {"INVALID_FIELD", 16, 103},
- #endif
- #ifdef EC_R_INVALID_FORM
- {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM},
- #else
- {"INVALID_FORM", 16, 104},
- #endif
- #ifdef EC_R_INVALID_GROUP_ORDER
- {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER},
- #else
- {"INVALID_GROUP_ORDER", 16, 122},
- #endif
- #ifdef EC_R_INVALID_KEY
- {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY},
- #else
- {"INVALID_KEY", 16, 116},
- #endif
- #ifdef EC_R_INVALID_OUTPUT_LENGTH
- {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH},
- #else
- {"INVALID_OUTPUT_LENGTH", 16, 161},
- #endif
- #ifdef EC_R_INVALID_PEER_KEY
- {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY},
- #else
- {"INVALID_PEER_KEY", 16, 133},
- #endif
- #ifdef EC_R_INVALID_PENTANOMIAL_BASIS
- {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS},
- #else
- {"INVALID_PENTANOMIAL_BASIS", 16, 132},
- #endif
- #ifdef EC_R_INVALID_PRIVATE_KEY
- {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY},
- #else
- {"INVALID_PRIVATE_KEY", 16, 123},
- #endif
- #ifdef EC_R_INVALID_TRINOMIAL_BASIS
- {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS},
- #else
- {"INVALID_TRINOMIAL_BASIS", 16, 137},
- #endif
- #ifdef EC_R_KDF_PARAMETER_ERROR
- {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR},
- #else
- {"KDF_PARAMETER_ERROR", 16, 148},
- #endif
- #ifdef EC_R_KEYS_NOT_SET
- {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET},
- #else
- {"KEYS_NOT_SET", 16, 140},
- #endif
- #ifdef EC_R_LADDER_POST_FAILURE
- {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE},
- #else
- {"LADDER_POST_FAILURE", 16, 136},
- #endif
- #ifdef EC_R_LADDER_PRE_FAILURE
- {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE},
- #else
- {"LADDER_PRE_FAILURE", 16, 153},
- #endif
- #ifdef EC_R_LADDER_STEP_FAILURE
- {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE},
- #else
- {"LADDER_STEP_FAILURE", 16, 162},
- #endif
- #ifdef EC_R_MISSING_OID
- {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID},
- #else
- {"MISSING_OID", 16, 167},
- #endif
- #ifdef EC_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 16, 124},
- #endif
- #ifdef EC_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 16, 125},
- #endif
- #ifdef EC_R_NEED_NEW_SETUP_VALUES
- {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES},
- #else
- {"NEED_NEW_SETUP_VALUES", 16, 157},
- #endif
- #ifdef EC_R_NOT_A_NIST_PRIME
- {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME},
- #else
- {"NOT_A_NIST_PRIME", 16, 135},
- #endif
- #ifdef EC_R_NOT_IMPLEMENTED
- {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED},
- #else
- {"NOT_IMPLEMENTED", 16, 126},
- #endif
- #ifdef EC_R_NOT_INITIALIZED
- {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED},
- #else
- {"NOT_INITIALIZED", 16, 111},
- #endif
- #ifdef EC_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 16, 139},
- #endif
- #ifdef EC_R_NO_PRIVATE_VALUE
- {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE},
- #else
- {"NO_PRIVATE_VALUE", 16, 154},
- #endif
- #ifdef EC_R_OPERATION_NOT_SUPPORTED
- {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED},
- #else
- {"OPERATION_NOT_SUPPORTED", 16, 152},
- #endif
- #ifdef EC_R_PASSED_NULL_PARAMETER
- {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER},
- #else
- {"PASSED_NULL_PARAMETER", 16, 134},
- #endif
- #ifdef EC_R_PEER_KEY_ERROR
- {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR},
- #else
- {"PEER_KEY_ERROR", 16, 149},
- #endif
- #ifdef EC_R_PKPARAMETERS2GROUP_FAILURE
- {"PKPARAMETERS2GROUP_FAILURE", ERR_LIB_EC, EC_R_PKPARAMETERS2GROUP_FAILURE},
- #else
- {"PKPARAMETERS2GROUP_FAILURE", 16, 127},
- #endif
- #ifdef EC_R_POINT_ARITHMETIC_FAILURE
- {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE},
- #else
- {"POINT_ARITHMETIC_FAILURE", 16, 155},
- #endif
- #ifdef EC_R_POINT_AT_INFINITY
- {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY},
- #else
- {"POINT_AT_INFINITY", 16, 106},
- #endif
- #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE
- {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE},
- #else
- {"POINT_COORDINATES_BLIND_FAILURE", 16, 163},
- #endif
- #ifdef EC_R_POINT_IS_NOT_ON_CURVE
- {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE},
- #else
- {"POINT_IS_NOT_ON_CURVE", 16, 107},
- #endif
- #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED
- {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED},
- #else
- {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158},
- #endif
- #ifdef EC_R_SHARED_INFO_ERROR
- {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR},
- #else
- {"SHARED_INFO_ERROR", 16, 150},
- #endif
- #ifdef EC_R_SLOT_FULL
- {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL},
- #else
- {"SLOT_FULL", 16, 108},
- #endif
- #ifdef EC_R_UNDEFINED_GENERATOR
- {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR},
- #else
- {"UNDEFINED_GENERATOR", 16, 113},
- #endif
- #ifdef EC_R_UNDEFINED_ORDER
- {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER},
- #else
- {"UNDEFINED_ORDER", 16, 128},
- #endif
- #ifdef EC_R_UNKNOWN_COFACTOR
- {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR},
- #else
- {"UNKNOWN_COFACTOR", 16, 164},
- #endif
- #ifdef EC_R_UNKNOWN_GROUP
- {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP},
- #else
- {"UNKNOWN_GROUP", 16, 129},
- #endif
- #ifdef EC_R_UNKNOWN_ORDER
- {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER},
- #else
- {"UNKNOWN_ORDER", 16, 114},
- #endif
- #ifdef EC_R_UNSUPPORTED_FIELD
- {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD},
- #else
- {"UNSUPPORTED_FIELD", 16, 131},
- #endif
- #ifdef EC_R_WRONG_CURVE_PARAMETERS
- {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS},
- #else
- {"WRONG_CURVE_PARAMETERS", 16, 145},
- #endif
- #ifdef EC_R_WRONG_ORDER
- {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER},
- #else
- {"WRONG_ORDER", 16, 130},
- #endif
- #ifdef ENGINE_R_ALREADY_LOADED
- {"ALREADY_LOADED", ERR_LIB_ENGINE, ENGINE_R_ALREADY_LOADED},
- #else
- {"ALREADY_LOADED", 38, 100},
- #endif
- #ifdef ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER
- {"ARGUMENT_IS_NOT_A_NUMBER", ERR_LIB_ENGINE, ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER},
- #else
- {"ARGUMENT_IS_NOT_A_NUMBER", 38, 133},
- #endif
- #ifdef ENGINE_R_CMD_NOT_EXECUTABLE
- {"CMD_NOT_EXECUTABLE", ERR_LIB_ENGINE, ENGINE_R_CMD_NOT_EXECUTABLE},
- #else
- {"CMD_NOT_EXECUTABLE", 38, 134},
- #endif
- #ifdef ENGINE_R_COMMAND_TAKES_INPUT
- {"COMMAND_TAKES_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_INPUT},
- #else
- {"COMMAND_TAKES_INPUT", 38, 135},
- #endif
- #ifdef ENGINE_R_COMMAND_TAKES_NO_INPUT
- {"COMMAND_TAKES_NO_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_NO_INPUT},
- #else
- {"COMMAND_TAKES_NO_INPUT", 38, 136},
- #endif
- #ifdef ENGINE_R_CONFLICTING_ENGINE_ID
- {"CONFLICTING_ENGINE_ID", ERR_LIB_ENGINE, ENGINE_R_CONFLICTING_ENGINE_ID},
- #else
- {"CONFLICTING_ENGINE_ID", 38, 103},
- #endif
- #ifdef ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED
- {"CTRL_COMMAND_NOT_IMPLEMENTED", ERR_LIB_ENGINE, ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED},
- #else
- {"CTRL_COMMAND_NOT_IMPLEMENTED", 38, 119},
- #endif
- #ifdef ENGINE_R_DSO_FAILURE
- {"DSO_FAILURE", ERR_LIB_ENGINE, ENGINE_R_DSO_FAILURE},
- #else
- {"DSO_FAILURE", 38, 104},
- #endif
- #ifdef ENGINE_R_DSO_NOT_FOUND
- {"DSO_NOT_FOUND", ERR_LIB_ENGINE, ENGINE_R_DSO_NOT_FOUND},
- #else
- {"DSO_NOT_FOUND", 38, 132},
- #endif
- #ifdef ENGINE_R_ENGINES_SECTION_ERROR
- {"ENGINES_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINES_SECTION_ERROR},
- #else
- {"ENGINES_SECTION_ERROR", 38, 148},
- #endif
- #ifdef ENGINE_R_ENGINE_CONFIGURATION_ERROR
- {"ENGINE_CONFIGURATION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_CONFIGURATION_ERROR},
- #else
- {"ENGINE_CONFIGURATION_ERROR", 38, 102},
- #endif
- #ifdef ENGINE_R_ENGINE_IS_NOT_IN_LIST
- {"ENGINE_IS_NOT_IN_LIST", ERR_LIB_ENGINE, ENGINE_R_ENGINE_IS_NOT_IN_LIST},
- #else
- {"ENGINE_IS_NOT_IN_LIST", 38, 105},
- #endif
- #ifdef ENGINE_R_ENGINE_SECTION_ERROR
- {"ENGINE_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_SECTION_ERROR},
- #else
- {"ENGINE_SECTION_ERROR", 38, 149},
- #endif
- #ifdef ENGINE_R_FAILED_LOADING_PRIVATE_KEY
- {"FAILED_LOADING_PRIVATE_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PRIVATE_KEY},
- #else
- {"FAILED_LOADING_PRIVATE_KEY", 38, 128},
- #endif
- #ifdef ENGINE_R_FAILED_LOADING_PUBLIC_KEY
- {"FAILED_LOADING_PUBLIC_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PUBLIC_KEY},
- #else
- {"FAILED_LOADING_PUBLIC_KEY", 38, 129},
- #endif
- #ifdef ENGINE_R_FINISH_FAILED
- {"FINISH_FAILED", ERR_LIB_ENGINE, ENGINE_R_FINISH_FAILED},
- #else
- {"FINISH_FAILED", 38, 106},
- #endif
- #ifdef ENGINE_R_ID_OR_NAME_MISSING
- {"ID_OR_NAME_MISSING", ERR_LIB_ENGINE, ENGINE_R_ID_OR_NAME_MISSING},
- #else
- {"ID_OR_NAME_MISSING", 38, 108},
- #endif
- #ifdef ENGINE_R_INIT_FAILED
- {"INIT_FAILED", ERR_LIB_ENGINE, ENGINE_R_INIT_FAILED},
- #else
- {"INIT_FAILED", 38, 109},
- #endif
- #ifdef ENGINE_R_INTERNAL_LIST_ERROR
- {"INTERNAL_LIST_ERROR", ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR},
- #else
- {"INTERNAL_LIST_ERROR", 38, 110},
- #endif
- #ifdef ENGINE_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_ENGINE, ENGINE_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 38, 143},
- #endif
- #ifdef ENGINE_R_INVALID_CMD_NAME
- {"INVALID_CMD_NAME", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NAME},
- #else
- {"INVALID_CMD_NAME", 38, 137},
- #endif
- #ifdef ENGINE_R_INVALID_CMD_NUMBER
- {"INVALID_CMD_NUMBER", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NUMBER},
- #else
- {"INVALID_CMD_NUMBER", 38, 138},
- #endif
- #ifdef ENGINE_R_INVALID_INIT_VALUE
- {"INVALID_INIT_VALUE", ERR_LIB_ENGINE, ENGINE_R_INVALID_INIT_VALUE},
- #else
- {"INVALID_INIT_VALUE", 38, 151},
- #endif
- #ifdef ENGINE_R_INVALID_STRING
- {"INVALID_STRING", ERR_LIB_ENGINE, ENGINE_R_INVALID_STRING},
- #else
- {"INVALID_STRING", 38, 150},
- #endif
- #ifdef ENGINE_R_NOT_INITIALISED
- {"NOT_INITIALISED", ERR_LIB_ENGINE, ENGINE_R_NOT_INITIALISED},
- #else
- {"NOT_INITIALISED", 38, 117},
- #endif
- #ifdef ENGINE_R_NOT_LOADED
- {"NOT_LOADED", ERR_LIB_ENGINE, ENGINE_R_NOT_LOADED},
- #else
- {"NOT_LOADED", 38, 112},
- #endif
- #ifdef ENGINE_R_NO_CONTROL_FUNCTION
- {"NO_CONTROL_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_CONTROL_FUNCTION},
- #else
- {"NO_CONTROL_FUNCTION", 38, 120},
- #endif
- #ifdef ENGINE_R_NO_INDEX
- {"NO_INDEX", ERR_LIB_ENGINE, ENGINE_R_NO_INDEX},
- #else
- {"NO_INDEX", 38, 144},
- #endif
- #ifdef ENGINE_R_NO_LOAD_FUNCTION
- {"NO_LOAD_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_LOAD_FUNCTION},
- #else
- {"NO_LOAD_FUNCTION", 38, 125},
- #endif
- #ifdef ENGINE_R_NO_REFERENCE
- {"NO_REFERENCE", ERR_LIB_ENGINE, ENGINE_R_NO_REFERENCE},
- #else
- {"NO_REFERENCE", 38, 130},
- #endif
- #ifdef ENGINE_R_NO_SUCH_ENGINE
- {"NO_SUCH_ENGINE", ERR_LIB_ENGINE, ENGINE_R_NO_SUCH_ENGINE},
- #else
- {"NO_SUCH_ENGINE", 38, 116},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_CIPHER
- {"UNIMPLEMENTED_CIPHER", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_CIPHER},
- #else
- {"UNIMPLEMENTED_CIPHER", 38, 146},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_DIGEST
- {"UNIMPLEMENTED_DIGEST", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_DIGEST},
- #else
- {"UNIMPLEMENTED_DIGEST", 38, 147},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD
- {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD},
- #else
- {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", 38, 101},
- #endif
- #ifdef ENGINE_R_VERSION_INCOMPATIBILITY
- {"VERSION_INCOMPATIBILITY", ERR_LIB_ENGINE, ENGINE_R_VERSION_INCOMPATIBILITY},
- #else
- {"VERSION_INCOMPATIBILITY", 38, 145},
- #endif
- #ifdef EVP_R_AES_KEY_SETUP_FAILED
- {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED},
- #else
- {"AES_KEY_SETUP_FAILED", 6, 143},
- #endif
- #ifdef EVP_R_ARIA_KEY_SETUP_FAILED
- {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED},
- #else
- {"ARIA_KEY_SETUP_FAILED", 6, 176},
- #endif
- #ifdef EVP_R_BAD_DECRYPT
- {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT},
- #else
- {"BAD_DECRYPT", 6, 100},
- #endif
- #ifdef EVP_R_BAD_KEY_LENGTH
- {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH},
- #else
- {"BAD_KEY_LENGTH", 6, 195},
- #endif
- #ifdef EVP_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 6, 155},
- #endif
- #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED
- {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED},
- #else
- {"CAMELLIA_KEY_SETUP_FAILED", 6, 157},
- #endif
- #ifdef EVP_R_CIPHER_PARAMETER_ERROR
- {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR},
- #else
- {"CIPHER_PARAMETER_ERROR", 6, 122},
- #endif
- #ifdef EVP_R_COMMAND_NOT_SUPPORTED
- {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED},
- #else
- {"COMMAND_NOT_SUPPORTED", 6, 147},
- #endif
- #ifdef EVP_R_COPY_ERROR
- {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR},
- #else
- {"COPY_ERROR", 6, 173},
- #endif
- #ifdef EVP_R_CTRL_NOT_IMPLEMENTED
- {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED},
- #else
- {"CTRL_NOT_IMPLEMENTED", 6, 132},
- #endif
- #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED
- {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED},
- #else
- {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133},
- #endif
- #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH
- {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH},
- #else
- {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138},
- #endif
- #ifdef EVP_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 6, 114},
- #endif
- #ifdef EVP_R_DIFFERENT_KEY_TYPES
- {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES},
- #else
- {"DIFFERENT_KEY_TYPES", 6, 101},
- #endif
- #ifdef EVP_R_DIFFERENT_PARAMETERS
- {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS},
- #else
- {"DIFFERENT_PARAMETERS", 6, 153},
- #endif
- #ifdef EVP_R_ERROR_LOADING_SECTION
- {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION},
- #else
- {"ERROR_LOADING_SECTION", 6, 165},
- #endif
- #ifdef EVP_R_ERROR_SETTING_FIPS_MODE
- {"ERROR_SETTING_FIPS_MODE", ERR_LIB_EVP, EVP_R_ERROR_SETTING_FIPS_MODE},
- #else
- {"ERROR_SETTING_FIPS_MODE", 6, 166},
- #endif
- #ifdef EVP_R_EXPECTING_AN_HMAC_KEY
- {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY},
- #else
- {"EXPECTING_AN_HMAC_KEY", 6, 174},
- #endif
- #ifdef EVP_R_EXPECTING_AN_RSA_KEY
- {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY},
- #else
- {"EXPECTING_AN_RSA_KEY", 6, 127},
- #endif
- #ifdef EVP_R_EXPECTING_A_DH_KEY
- {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY},
- #else
- {"EXPECTING_A_DH_KEY", 6, 128},
- #endif
- #ifdef EVP_R_EXPECTING_A_DSA_KEY
- {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY},
- #else
- {"EXPECTING_A_DSA_KEY", 6, 129},
- #endif
- #ifdef EVP_R_EXPECTING_A_EC_KEY
- {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY},
- #else
- {"EXPECTING_A_EC_KEY", 6, 142},
- #endif
- #ifdef EVP_R_EXPECTING_A_POLY1305_KEY
- {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY},
- #else
- {"EXPECTING_A_POLY1305_KEY", 6, 164},
- #endif
- #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY
- {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY},
- #else
- {"EXPECTING_A_SIPHASH_KEY", 6, 175},
- #endif
- #ifdef EVP_R_FIPS_MODE_NOT_SUPPORTED
- {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_FIPS_MODE_NOT_SUPPORTED},
- #else
- {"FIPS_MODE_NOT_SUPPORTED", 6, 167},
- #endif
- #ifdef EVP_R_GET_RAW_KEY_FAILED
- {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
- #else
- {"GET_RAW_KEY_FAILED", 6, 182},
- #endif
- #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS
- {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS},
- #else
- {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171},
- #endif
- #ifdef EVP_R_INITIALIZATION_ERROR
- {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR},
- #else
- {"INITIALIZATION_ERROR", 6, 134},
- #endif
- #ifdef EVP_R_INPUT_NOT_INITIALIZED
- {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED},
- #else
- {"INPUT_NOT_INITIALIZED", 6, 111},
- #endif
- #ifdef EVP_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 6, 152},
- #endif
- #ifdef EVP_R_INVALID_FIPS_MODE
- {"INVALID_FIPS_MODE", ERR_LIB_EVP, EVP_R_INVALID_FIPS_MODE},
- #else
- {"INVALID_FIPS_MODE", 6, 168},
- #endif
- #ifdef EVP_R_INVALID_IV_LENGTH
- {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH},
- #else
- {"INVALID_IV_LENGTH", 6, 194},
- #endif
- #ifdef EVP_R_INVALID_KEY
- {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY},
- #else
- {"INVALID_KEY", 6, 163},
- #endif
- #ifdef EVP_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 6, 130},
- #endif
- #ifdef EVP_R_INVALID_OPERATION
- {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION},
- #else
- {"INVALID_OPERATION", 6, 148},
- #endif
- #ifdef EVP_R_KEYGEN_FAILURE
- {"KEYGEN_FAILURE", ERR_LIB_EVP, EVP_R_KEYGEN_FAILURE},
- #else
- {"KEYGEN_FAILURE", 6, 120},
- #endif
- #ifdef EVP_R_KEY_SETUP_FAILED
- {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED},
- #else
- {"KEY_SETUP_FAILED", 6, 180},
- #endif
- #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED
- {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED},
- #else
- {"MEMORY_LIMIT_EXCEEDED", 6, 172},
- #endif
- #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL
- {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL},
- #else
- {"MESSAGE_DIGEST_IS_NULL", 6, 159},
- #endif
- #ifdef EVP_R_METHOD_NOT_SUPPORTED
- {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED},
- #else
- {"METHOD_NOT_SUPPORTED", 6, 144},
- #endif
- #ifdef EVP_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 6, 103},
- #endif
- #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH
- {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH},
- #else
- {"NOT_XOF_OR_INVALID_LENGTH", 6, 178},
- #endif
- #ifdef EVP_R_NO_CIPHER_SET
- {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET},
- #else
- {"NO_CIPHER_SET", 6, 131},
- #endif
- #ifdef EVP_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 6, 158},
- #endif
- #ifdef EVP_R_NO_DIGEST_SET
- {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET},
- #else
- {"NO_DIGEST_SET", 6, 139},
- #endif
- #ifdef EVP_R_NO_KEY_SET
- {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET},
- #else
- {"NO_KEY_SET", 6, 154},
- #endif
- #ifdef EVP_R_NO_OPERATION_SET
- {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET},
- #else
- {"NO_OPERATION_SET", 6, 149},
- #endif
- #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED
- {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED},
- #else
- {"ONLY_ONESHOT_SUPPORTED", 6, 177},
- #endif
- #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
- #endif
- #ifdef EVP_R_OPERATON_NOT_INITIALIZED
- {"OPERATON_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATON_NOT_INITIALIZED},
- #else
- {"OPERATON_NOT_INITIALIZED", 6, 151},
- #endif
- #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW
- {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW},
- #else
- {"OUTPUT_WOULD_OVERFLOW", 6, 184},
- #endif
- #ifdef EVP_R_PARTIALLY_OVERLAPPING
- {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING},
- #else
- {"PARTIALLY_OVERLAPPING", 6, 162},
- #endif
- #ifdef EVP_R_PBKDF2_ERROR
- {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR},
- #else
- {"PBKDF2_ERROR", 6, 181},
- #endif
- #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED
- {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED},
- #else
- {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179},
- #endif
- #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR
- {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR},
- #else
- {"PRIVATE_KEY_DECODE_ERROR", 6, 145},
- #endif
- #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR
- {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR},
- #else
- {"PRIVATE_KEY_ENCODE_ERROR", 6, 146},
- #endif
- #ifdef EVP_R_PUBLIC_KEY_NOT_RSA
- {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA},
- #else
- {"PUBLIC_KEY_NOT_RSA", 6, 106},
- #endif
- #ifdef EVP_R_UNKNOWN_CIPHER
- {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
- #else
- {"UNKNOWN_CIPHER", 6, 160},
- #endif
- #ifdef EVP_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 6, 161},
- #endif
- #ifdef EVP_R_UNKNOWN_OPTION
- {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
- #else
- {"UNKNOWN_OPTION", 6, 169},
- #endif
- #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM
- {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM},
- #else
- {"UNKNOWN_PBE_ALGORITHM", 6, 121},
- #endif
- #ifdef EVP_R_UNSUPPORTED_ALGORITHM
- {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
- #else
- {"UNSUPPORTED_ALGORITHM", 6, 156},
- #endif
- #ifdef EVP_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 6, 107},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEYLENGTH
- {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH},
- #else
- {"UNSUPPORTED_KEYLENGTH", 6, 123},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION
- {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION},
- #else
- {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEY_SIZE
- {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE},
- #else
- {"UNSUPPORTED_KEY_SIZE", 6, 108},
- #endif
- #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
- #else
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135},
- #endif
- #ifdef EVP_R_UNSUPPORTED_PRF
- {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF},
- #else
- {"UNSUPPORTED_PRF", 6, 125},
- #endif
- #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM
- {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM},
- #else
- {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118},
- #endif
- #ifdef EVP_R_UNSUPPORTED_SALT_TYPE
- {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE},
- #else
- {"UNSUPPORTED_SALT_TYPE", 6, 126},
- #endif
- #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED
- {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED},
- #else
- {"WRAP_MODE_NOT_ALLOWED", 6, 170},
- #endif
- #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH
- {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH},
- #else
- {"WRONG_FINAL_BLOCK_LENGTH", 6, 109},
- #endif
- #ifdef EVP_R_XTS_DUPLICATED_KEYS
- {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS},
- #else
- {"XTS_DUPLICATED_KEYS", 6, 183},
- #endif
- #ifdef KDF_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_KDF, KDF_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 52, 100},
- #endif
- #ifdef KDF_R_MISSING_ITERATION_COUNT
- {"MISSING_ITERATION_COUNT", ERR_LIB_KDF, KDF_R_MISSING_ITERATION_COUNT},
- #else
- {"MISSING_ITERATION_COUNT", 52, 109},
- #endif
- #ifdef KDF_R_MISSING_KEY
- {"MISSING_KEY", ERR_LIB_KDF, KDF_R_MISSING_KEY},
- #else
- {"MISSING_KEY", 52, 104},
- #endif
- #ifdef KDF_R_MISSING_MESSAGE_DIGEST
- {"MISSING_MESSAGE_DIGEST", ERR_LIB_KDF, KDF_R_MISSING_MESSAGE_DIGEST},
- #else
- {"MISSING_MESSAGE_DIGEST", 52, 105},
- #endif
- #ifdef KDF_R_MISSING_PARAMETER
- {"MISSING_PARAMETER", ERR_LIB_KDF, KDF_R_MISSING_PARAMETER},
- #else
- {"MISSING_PARAMETER", 52, 101},
- #endif
- #ifdef KDF_R_MISSING_PASS
- {"MISSING_PASS", ERR_LIB_KDF, KDF_R_MISSING_PASS},
- #else
- {"MISSING_PASS", 52, 110},
- #endif
- #ifdef KDF_R_MISSING_SALT
- {"MISSING_SALT", ERR_LIB_KDF, KDF_R_MISSING_SALT},
- #else
- {"MISSING_SALT", 52, 111},
- #endif
- #ifdef KDF_R_MISSING_SECRET
- {"MISSING_SECRET", ERR_LIB_KDF, KDF_R_MISSING_SECRET},
- #else
- {"MISSING_SECRET", 52, 107},
- #endif
- #ifdef KDF_R_MISSING_SEED
- {"MISSING_SEED", ERR_LIB_KDF, KDF_R_MISSING_SEED},
- #else
- {"MISSING_SEED", 52, 106},
- #endif
- #ifdef KDF_R_UNKNOWN_PARAMETER_TYPE
- {"UNKNOWN_PARAMETER_TYPE", ERR_LIB_KDF, KDF_R_UNKNOWN_PARAMETER_TYPE},
- #else
- {"UNKNOWN_PARAMETER_TYPE", 52, 103},
- #endif
- #ifdef KDF_R_VALUE_ERROR
- {"VALUE_ERROR", ERR_LIB_KDF, KDF_R_VALUE_ERROR},
- #else
- {"VALUE_ERROR", 52, 108},
- #endif
- #ifdef KDF_R_VALUE_MISSING
- {"VALUE_MISSING", ERR_LIB_KDF, KDF_R_VALUE_MISSING},
- #else
- {"VALUE_MISSING", 52, 102},
- #endif
- #ifdef OBJ_R_OID_EXISTS
- {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS},
- #else
- {"OID_EXISTS", 8, 102},
- #endif
- #ifdef OBJ_R_UNKNOWN_NID
- {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID},
- #else
- {"UNKNOWN_NID", 8, 101},
- #endif
- #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 39, 101},
- #endif
- #ifdef OCSP_R_DIGEST_ERR
- {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR},
- #else
- {"DIGEST_ERR", 39, 102},
- #endif
- #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD
- {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD},
- #else
- {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122},
- #endif
- #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD
- {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD},
- #else
- {"ERROR_IN_THISUPDATE_FIELD", 39, 123},
- #endif
- #ifdef OCSP_R_ERROR_PARSING_URL
- {"ERROR_PARSING_URL", ERR_LIB_OCSP, OCSP_R_ERROR_PARSING_URL},
- #else
- {"ERROR_PARSING_URL", 39, 121},
- #endif
- #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE
- {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE},
- #else
- {"MISSING_OCSPSIGNING_USAGE", 39, 103},
- #endif
- #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE
- {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE},
- #else
- {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124},
- #endif
- #ifdef OCSP_R_NOT_BASIC_RESPONSE
- {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE},
- #else
- {"NOT_BASIC_RESPONSE", 39, 104},
- #endif
- #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN
- {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN},
- #else
- {"NO_CERTIFICATES_IN_CHAIN", 39, 105},
- #endif
- #ifdef OCSP_R_NO_RESPONSE_DATA
- {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA},
- #else
- {"NO_RESPONSE_DATA", 39, 108},
- #endif
- #ifdef OCSP_R_NO_REVOKED_TIME
- {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME},
- #else
- {"NO_REVOKED_TIME", 39, 109},
- #endif
- #ifdef OCSP_R_NO_SIGNER_KEY
- {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY},
- #else
- {"NO_SIGNER_KEY", 39, 130},
- #endif
- #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110},
- #endif
- #ifdef OCSP_R_REQUEST_NOT_SIGNED
- {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED},
- #else
- {"REQUEST_NOT_SIGNED", 39, 128},
- #endif
- #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA
- {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA},
- #else
- {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111},
- #endif
- #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED
- {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED},
- #else
- {"ROOT_CA_NOT_TRUSTED", 39, 112},
- #endif
- #ifdef OCSP_R_SERVER_RESPONSE_ERROR
- {"SERVER_RESPONSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_ERROR},
- #else
- {"SERVER_RESPONSE_ERROR", 39, 114},
- #endif
- #ifdef OCSP_R_SERVER_RESPONSE_PARSE_ERROR
- {"SERVER_RESPONSE_PARSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_PARSE_ERROR},
- #else
- {"SERVER_RESPONSE_PARSE_ERROR", 39, 115},
- #endif
- #ifdef OCSP_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 39, 117},
- #endif
- #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118},
- #endif
- #ifdef OCSP_R_STATUS_EXPIRED
- {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED},
- #else
- {"STATUS_EXPIRED", 39, 125},
- #endif
- #ifdef OCSP_R_STATUS_NOT_YET_VALID
- {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID},
- #else
- {"STATUS_NOT_YET_VALID", 39, 126},
- #endif
- #ifdef OCSP_R_STATUS_TOO_OLD
- {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD},
- #else
- {"STATUS_TOO_OLD", 39, 127},
- #endif
- #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST
- {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST},
- #else
- {"UNKNOWN_MESSAGE_DIGEST", 39, 119},
- #endif
- #ifdef OCSP_R_UNKNOWN_NID
- {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID},
- #else
- {"UNKNOWN_NID", 39, 120},
- #endif
- #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE
- {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE},
- #else
- {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129},
- #endif
- #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE
- {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE},
- #else
- {"AMBIGUOUS_CONTENT_TYPE", 44, 107},
- #endif
- #ifdef OSSL_STORE_R_BAD_PASSWORD_READ
- {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ},
- #else
- {"BAD_PASSWORD_READ", 44, 115},
- #endif
- #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC
- {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC},
- #else
- {"ERROR_VERIFYING_PKCS12_MAC", 44, 113},
- #endif
- #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST
- {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST},
- #else
- {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121},
- #endif
- #ifdef OSSL_STORE_R_INVALID_SCHEME
- {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME},
- #else
- {"INVALID_SCHEME", 44, 106},
- #endif
- #ifdef OSSL_STORE_R_IS_NOT_A
- {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A},
- #else
- {"IS_NOT_A", 44, 112},
- #endif
- #ifdef OSSL_STORE_R_LOADER_INCOMPLETE
- {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE},
- #else
- {"LOADER_INCOMPLETE", 44, 116},
- #endif
- #ifdef OSSL_STORE_R_LOADING_STARTED
- {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED},
- #else
- {"LOADING_STARTED", 44, 117},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE
- {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE},
- #else
- {"NOT_A_CERTIFICATE", 44, 100},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_CRL
- {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL},
- #else
- {"NOT_A_CRL", 44, 101},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_KEY
- {"NOT_A_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_KEY},
- #else
- {"NOT_A_KEY", 44, 102},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_NAME
- {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME},
- #else
- {"NOT_A_NAME", 44, 103},
- #endif
- #ifdef OSSL_STORE_R_NOT_PARAMETERS
- {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS},
- #else
- {"NOT_PARAMETERS", 44, 104},
- #endif
- #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR
- {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR},
- #else
- {"PASSPHRASE_CALLBACK_ERROR", 44, 114},
- #endif
- #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE
- {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE},
- #else
- {"PATH_MUST_BE_ABSOLUTE", 44, 108},
- #endif
- #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES
- {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES},
- #else
- {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119},
- #endif
- #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED
- {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED},
- #else
- {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109},
- #endif
- #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME
- {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME},
- #else
- {"UNREGISTERED_SCHEME", 44, 105},
- #endif
- #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 44, 110},
- #endif
- #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION
- {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION},
- #else
- {"UNSUPPORTED_OPERATION", 44, 118},
- #endif
- #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE
- {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE},
- #else
- {"UNSUPPORTED_SEARCH_TYPE", 44, 120},
- #endif
- #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED
- {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED},
- #else
- {"URI_AUTHORITY_UNSUPPORTED", 44, 111},
- #endif
- #ifdef PEM_R_BAD_BASE64_DECODE
- {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE},
- #else
- {"BAD_BASE64_DECODE", 9, 100},
- #endif
- #ifdef PEM_R_BAD_DECRYPT
- {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT},
- #else
- {"BAD_DECRYPT", 9, 101},
- #endif
- #ifdef PEM_R_BAD_END_LINE
- {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE},
- #else
- {"BAD_END_LINE", 9, 102},
- #endif
- #ifdef PEM_R_BAD_IV_CHARS
- {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS},
- #else
- {"BAD_IV_CHARS", 9, 103},
- #endif
- #ifdef PEM_R_BAD_MAGIC_NUMBER
- {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER},
- #else
- {"BAD_MAGIC_NUMBER", 9, 116},
- #endif
- #ifdef PEM_R_BAD_PASSWORD_READ
- {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ},
- #else
- {"BAD_PASSWORD_READ", 9, 104},
- #endif
- #ifdef PEM_R_BAD_VERSION_NUMBER
- {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER},
- #else
- {"BAD_VERSION_NUMBER", 9, 117},
- #endif
- #ifdef PEM_R_BIO_WRITE_FAILURE
- {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE},
- #else
- {"BIO_WRITE_FAILURE", 9, 118},
- #endif
- #ifdef PEM_R_CIPHER_IS_NULL
- {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL},
- #else
- {"CIPHER_IS_NULL", 9, 127},
- #endif
- #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY
- {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY},
- #else
- {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115},
- #endif
- #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB
- {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB},
- #else
- {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119},
- #endif
- #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB
- {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB},
- #else
- {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120},
- #endif
- #ifdef PEM_R_HEADER_TOO_LONG
- {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG},
- #else
- {"HEADER_TOO_LONG", 9, 128},
- #endif
- #ifdef PEM_R_INCONSISTENT_HEADER
- {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER},
- #else
- {"INCONSISTENT_HEADER", 9, 121},
- #endif
- #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR
- {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR},
- #else
- {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122},
- #endif
- #ifdef PEM_R_KEYBLOB_TOO_SHORT
- {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT},
- #else
- {"KEYBLOB_TOO_SHORT", 9, 123},
- #endif
- #ifdef PEM_R_MISSING_DEK_IV
- {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV},
- #else
- {"MISSING_DEK_IV", 9, 129},
- #endif
- #ifdef PEM_R_NOT_DEK_INFO
- {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO},
- #else
- {"NOT_DEK_INFO", 9, 105},
- #endif
- #ifdef PEM_R_NOT_ENCRYPTED
- {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED},
- #else
- {"NOT_ENCRYPTED", 9, 106},
- #endif
- #ifdef PEM_R_NOT_PROC_TYPE
- {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE},
- #else
- {"NOT_PROC_TYPE", 9, 107},
- #endif
- #ifdef PEM_R_NO_START_LINE
- {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE},
- #else
- {"NO_START_LINE", 9, 108},
- #endif
- #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD
- {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD},
- #else
- {"PROBLEMS_GETTING_PASSWORD", 9, 109},
- #endif
- #ifdef PEM_R_PVK_DATA_TOO_SHORT
- {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT},
- #else
- {"PVK_DATA_TOO_SHORT", 9, 124},
- #endif
- #ifdef PEM_R_PVK_TOO_SHORT
- {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT},
- #else
- {"PVK_TOO_SHORT", 9, 125},
- #endif
- #ifdef PEM_R_READ_KEY
- {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY},
- #else
- {"READ_KEY", 9, 111},
- #endif
- #ifdef PEM_R_SHORT_HEADER
- {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER},
- #else
- {"SHORT_HEADER", 9, 112},
- #endif
- #ifdef PEM_R_UNEXPECTED_DEK_IV
- {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV},
- #else
- {"UNEXPECTED_DEK_IV", 9, 130},
- #endif
- #ifdef PEM_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 9, 113},
- #endif
- #ifdef PEM_R_UNSUPPORTED_ENCRYPTION
- {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION},
- #else
- {"UNSUPPORTED_ENCRYPTION", 9, 114},
- #endif
- #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS
- {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS},
- #else
- {"UNSUPPORTED_KEY_COMPONENTS", 9, 126},
- #endif
- #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
- #else
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110},
- #endif
- #ifdef PKCS12_R_CANT_PACK_STRUCTURE
- {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
- #else
- {"CANT_PACK_STRUCTURE", 35, 100},
- #endif
- #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA
- {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA},
- #else
- {"CONTENT_TYPE_NOT_DATA", 35, 121},
- #endif
- #ifdef PKCS12_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 35, 101},
- #endif
- #ifdef PKCS12_R_ENCODE_ERROR
- {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR},
- #else
- {"ENCODE_ERROR", 35, 102},
- #endif
- #ifdef PKCS12_R_ENCRYPT_ERROR
- {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR},
- #else
- {"ENCRYPT_ERROR", 35, 103},
- #endif
- #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE
- {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE},
- #else
- {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120},
- #endif
- #ifdef PKCS12_R_INVALID_NULL_ARGUMENT
- {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT},
- #else
- {"INVALID_NULL_ARGUMENT", 35, 104},
- #endif
- #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER
- {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER},
- #else
- {"INVALID_NULL_PKCS12_POINTER", 35, 105},
- #endif
- #ifdef PKCS12_R_IV_GEN_ERROR
- {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR},
- #else
- {"IV_GEN_ERROR", 35, 106},
- #endif
- #ifdef PKCS12_R_KEY_GEN_ERROR
- {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR},
- #else
- {"KEY_GEN_ERROR", 35, 107},
- #endif
- #ifdef PKCS12_R_MAC_ABSENT
- {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT},
- #else
- {"MAC_ABSENT", 35, 108},
- #endif
- #ifdef PKCS12_R_MAC_GENERATION_ERROR
- {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR},
- #else
- {"MAC_GENERATION_ERROR", 35, 109},
- #endif
- #ifdef PKCS12_R_MAC_SETUP_ERROR
- {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR},
- #else
- {"MAC_SETUP_ERROR", 35, 110},
- #endif
- #ifdef PKCS12_R_MAC_STRING_SET_ERROR
- {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR},
- #else
- {"MAC_STRING_SET_ERROR", 35, 111},
- #endif
- #ifdef PKCS12_R_MAC_VERIFY_FAILURE
- {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE},
- #else
- {"MAC_VERIFY_FAILURE", 35, 113},
- #endif
- #ifdef PKCS12_R_PARSE_ERROR
- {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR},
- #else
- {"PARSE_ERROR", 35, 114},
- #endif
- #ifdef PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR
- {"PKCS12_ALGOR_CIPHERINIT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR},
- #else
- {"PKCS12_ALGOR_CIPHERINIT_ERROR", 35, 115},
- #endif
- #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR
- {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR},
- #else
- {"PKCS12_CIPHERFINAL_ERROR", 35, 116},
- #endif
- #ifdef PKCS12_R_PKCS12_PBE_CRYPT_ERROR
- {"PKCS12_PBE_CRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_PBE_CRYPT_ERROR},
- #else
- {"PKCS12_PBE_CRYPT_ERROR", 35, 117},
- #endif
- #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM
- {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_DIGEST_ALGORITHM", 35, 118},
- #endif
- #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE
- {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE},
- #else
- {"UNSUPPORTED_PKCS12_MODE", 35, 119},
- #endif
- #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 33, 117},
- #endif
- #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
- #else
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144},
- #endif
- #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED
- {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED},
- #else
- {"CIPHER_NOT_INITIALIZED", 33, 116},
- #endif
- #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT
- {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT},
- #else
- {"CONTENT_AND_DATA_PRESENT", 33, 118},
- #endif
- #ifdef PKCS7_R_CTRL_ERROR
- {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR},
- #else
- {"CTRL_ERROR", 33, 152},
- #endif
- #ifdef PKCS7_R_DECRYPT_ERROR
- {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR},
- #else
- {"DECRYPT_ERROR", 33, 119},
- #endif
- #ifdef PKCS7_R_DIGEST_FAILURE
- {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE},
- #else
- {"DIGEST_FAILURE", 33, 101},
- #endif
- #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE
- {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE},
- #else
- {"ENCRYPTION_CTRL_FAILURE", 33, 149},
- #endif
- #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150},
- #endif
- #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT
- {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT},
- #else
- {"ERROR_ADDING_RECIPIENT", 33, 120},
- #endif
- #ifdef PKCS7_R_ERROR_SETTING_CIPHER
- {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER},
- #else
- {"ERROR_SETTING_CIPHER", 33, 121},
- #endif
- #ifdef PKCS7_R_INVALID_NULL_POINTER
- {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER},
- #else
- {"INVALID_NULL_POINTER", 33, 143},
- #endif
- #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE
- {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE},
- #else
- {"INVALID_SIGNED_DATA_TYPE", 33, 155},
- #endif
- #ifdef PKCS7_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 33, 122},
- #endif
- #ifdef PKCS7_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 33, 151},
- #endif
- #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND
- {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND},
- #else
- {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154},
- #endif
- #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE
- {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE},
- #else
- {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115},
- #endif
- #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA
- {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA},
- #else
- {"NO_SIGNATURES_ON_DATA", 33, 123},
- #endif
- #ifdef PKCS7_R_NO_SIGNERS
- {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS},
- #else
- {"NO_SIGNERS", 33, 142},
- #endif
- #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE
- {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104},
- #endif
- #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR
- {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR},
- #else
- {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124},
- #endif
- #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR
- {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR},
- #else
- {"PKCS7_ADD_SIGNER_ERROR", 33, 153},
- #endif
- #ifdef PKCS7_R_PKCS7_DATASIGN
- {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN},
- #else
- {"PKCS7_DATASIGN", 33, 145},
- #endif
- #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127},
- #endif
- #ifdef PKCS7_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 33, 105},
- #endif
- #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128},
- #endif
- #ifdef PKCS7_R_SIGNING_CTRL_FAILURE
- {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE},
- #else
- {"SIGNING_CTRL_FAILURE", 33, 147},
- #endif
- #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148},
- #endif
- #ifdef PKCS7_R_SMIME_TEXT_ERROR
- {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR},
- #else
- {"SMIME_TEXT_ERROR", 33, 129},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE
- {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE},
- #else
- {"UNABLE_TO_FIND_CERTIFICATE", 33, 106},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO
- {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO},
- #else
- {"UNABLE_TO_FIND_MEM_BIO", 33, 107},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST
- {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST},
- #else
- {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108},
- #endif
- #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE
- {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE},
- #else
- {"UNKNOWN_DIGEST_TYPE", 33, 109},
- #endif
- #ifdef PKCS7_R_UNKNOWN_OPERATION
- {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION},
- #else
- {"UNKNOWN_OPERATION", 33, 110},
- #endif
- #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE
- {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE},
- #else
- {"UNSUPPORTED_CIPHER_TYPE", 33, 111},
- #endif
- #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 33, 112},
- #endif
- #ifdef PKCS7_R_WRONG_CONTENT_TYPE
- {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE},
- #else
- {"WRONG_CONTENT_TYPE", 33, 113},
- #endif
- #ifdef PKCS7_R_WRONG_PKCS7_TYPE
- {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE},
- #else
- {"WRONG_PKCS7_TYPE", 33, 114},
- #endif
- #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG
- {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG},
- #else
- {"ADDITIONAL_INPUT_TOO_LONG", 36, 102},
- #endif
- #ifdef RAND_R_ALREADY_INSTANTIATED
- {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED},
- #else
- {"ALREADY_INSTANTIATED", 36, 103},
- #endif
- #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE
- {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE},
- #else
- {"ARGUMENT_OUT_OF_RANGE", 36, 105},
- #endif
- #ifdef RAND_R_CANNOT_OPEN_FILE
- {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE},
- #else
- {"CANNOT_OPEN_FILE", 36, 121},
- #endif
- #ifdef RAND_R_DRBG_ALREADY_INITIALIZED
- {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED},
- #else
- {"DRBG_ALREADY_INITIALIZED", 36, 129},
- #endif
- #ifdef RAND_R_DRBG_NOT_INITIALISED
- {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED},
- #else
- {"DRBG_NOT_INITIALISED", 36, 104},
- #endif
- #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG
- {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG},
- #else
- {"ENTROPY_INPUT_TOO_LONG", 36, 106},
- #endif
- #ifdef RAND_R_ENTROPY_OUT_OF_RANGE
- {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE},
- #else
- {"ENTROPY_OUT_OF_RANGE", 36, 124},
- #endif
- #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED
- {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED},
- #else
- {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127},
- #endif
- #ifdef RAND_R_ERROR_INITIALISING_DRBG
- {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG},
- #else
- {"ERROR_INITIALISING_DRBG", 36, 107},
- #endif
- #ifdef RAND_R_ERROR_INSTANTIATING_DRBG
- {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG},
- #else
- {"ERROR_INSTANTIATING_DRBG", 36, 108},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT
- {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT},
- #else
- {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY
- {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY},
- #else
- {"ERROR_RETRIEVING_ENTROPY", 36, 110},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_NONCE
- {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE},
- #else
- {"ERROR_RETRIEVING_NONCE", 36, 111},
- #endif
- #ifdef RAND_R_FAILED_TO_CREATE_LOCK
- {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK},
- #else
- {"FAILED_TO_CREATE_LOCK", 36, 126},
- #endif
- #ifdef RAND_R_FUNC_NOT_IMPLEMENTED
- {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED},
- #else
- {"FUNC_NOT_IMPLEMENTED", 36, 101},
- #endif
- #ifdef RAND_R_FWRITE_ERROR
- {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR},
- #else
- {"FWRITE_ERROR", 36, 123},
- #endif
- #ifdef RAND_R_GENERATE_ERROR
- {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR},
- #else
- {"GENERATE_ERROR", 36, 112},
- #endif
- #ifdef RAND_R_INTERNAL_ERROR
- {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR},
- #else
- {"INTERNAL_ERROR", 36, 113},
- #endif
- #ifdef RAND_R_IN_ERROR_STATE
- {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
- #else
- {"IN_ERROR_STATE", 36, 114},
- #endif
- #ifdef RAND_R_NOT_A_REGULAR_FILE
- {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE},
- #else
- {"NOT_A_REGULAR_FILE", 36, 122},
- #endif
- #ifdef RAND_R_NOT_INSTANTIATED
- {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED},
- #else
- {"NOT_INSTANTIATED", 36, 115},
- #endif
- #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED
- {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED},
- #else
- {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128},
- #endif
- #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED
- {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED},
- #else
- {"PARENT_LOCKING_NOT_ENABLED", 36, 130},
- #endif
- #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK
- {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK},
- #else
- {"PARENT_STRENGTH_TOO_WEAK", 36, 131},
- #endif
- #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG
- {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG},
- #else
- {"PERSONALISATION_STRING_TOO_LONG", 36, 116},
- #endif
- #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED
- {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED},
- #else
- {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133},
- #endif
- #ifdef RAND_R_PRNG_NOT_SEEDED
- {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED},
- #else
- {"PRNG_NOT_SEEDED", 36, 100},
- #endif
- #ifdef RAND_R_RANDOM_POOL_OVERFLOW
- {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW},
- #else
- {"RANDOM_POOL_OVERFLOW", 36, 125},
- #endif
- #ifdef RAND_R_RANDOM_POOL_UNDERFLOW
- {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW},
- #else
- {"RANDOM_POOL_UNDERFLOW", 36, 134},
- #endif
- #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG
- {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG},
- #else
- {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117},
- #endif
- #ifdef RAND_R_RESEED_ERROR
- {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR},
- #else
- {"RESEED_ERROR", 36, 118},
- #endif
- #ifdef RAND_R_SELFTEST_FAILURE
- {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE},
- #else
- {"SELFTEST_FAILURE", 36, 119},
- #endif
- #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED
- {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED},
- #else
- {"TOO_LITTLE_NONCE_REQUESTED", 36, 135},
- #endif
- #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED
- {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED},
- #else
- {"TOO_MUCH_NONCE_REQUESTED", 36, 136},
- #endif
- #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS
- {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS},
- #else
- {"UNSUPPORTED_DRBG_FLAGS", 36, 132},
- #endif
- #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE
- {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE},
- #else
- {"UNSUPPORTED_DRBG_TYPE", 36, 120},
- #endif
- #ifdef RSA_R_ALGORITHM_MISMATCH
- {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH},
- #else
- {"ALGORITHM_MISMATCH", 4, 100},
- #endif
- #ifdef RSA_R_BAD_E_VALUE
- {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE},
- #else
- {"BAD_E_VALUE", 4, 101},
- #endif
- #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT
- {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT},
- #else
- {"BAD_FIXED_HEADER_DECRYPT", 4, 102},
- #endif
- #ifdef RSA_R_BAD_PAD_BYTE_COUNT
- {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT},
- #else
- {"BAD_PAD_BYTE_COUNT", 4, 103},
- #endif
- #ifdef RSA_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 4, 104},
- #endif
- #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01
- {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01},
- #else
- {"BLOCK_TYPE_IS_NOT_01", 4, 106},
- #endif
- #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02
- {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02},
- #else
- {"BLOCK_TYPE_IS_NOT_02", 4, 107},
- #endif
- #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN
- {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN},
- #else
- {"DATA_GREATER_THAN_MOD_LEN", 4, 108},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE
- {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE},
- #else
- {"DATA_TOO_LARGE", 4, 109},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
- {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE},
- #else
- {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS
- {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS},
- #else
- {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132},
- #endif
- #ifdef RSA_R_DATA_TOO_SMALL
- {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL},
- #else
- {"DATA_TOO_SMALL", 4, 111},
- #endif
- #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE
- {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE},
- #else
- {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122},
- #endif
- #ifdef RSA_R_DIGEST_DOES_NOT_MATCH
- {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH},
- #else
- {"DIGEST_DOES_NOT_MATCH", 4, 158},
- #endif
- #ifdef RSA_R_DIGEST_NOT_ALLOWED
- {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED},
- #else
- {"DIGEST_NOT_ALLOWED", 4, 145},
- #endif
- #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY
- {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY},
- #else
- {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112},
- #endif
- #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D
- {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D},
- #else
- {"DMP1_NOT_CONGRUENT_TO_D", 4, 124},
- #endif
- #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D
- {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D},
- #else
- {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125},
- #endif
- #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1
- {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1},
- #else
- {"D_E_NOT_CONGRUENT_TO_1", 4, 123},
- #endif
- #ifdef RSA_R_FIRST_OCTET_INVALID
- {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID},
- #else
- {"FIRST_OCTET_INVALID", 4, 133},
- #endif
- #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
- #else
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144},
- #endif
- #ifdef RSA_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 4, 157},
- #endif
- #ifdef RSA_R_INVALID_DIGEST_LENGTH
- {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH},
- #else
- {"INVALID_DIGEST_LENGTH", 4, 143},
- #endif
- #ifdef RSA_R_INVALID_HEADER
- {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER},
- #else
- {"INVALID_HEADER", 4, 137},
- #endif
- #ifdef RSA_R_INVALID_LABEL
- {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL},
- #else
- {"INVALID_LABEL", 4, 160},
- #endif
- #ifdef RSA_R_INVALID_MESSAGE_LENGTH
- {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH},
- #else
- {"INVALID_MESSAGE_LENGTH", 4, 131},
- #endif
- #ifdef RSA_R_INVALID_MGF1_MD
- {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD},
- #else
- {"INVALID_MGF1_MD", 4, 156},
- #endif
- #ifdef RSA_R_INVALID_MULTI_PRIME_KEY
- {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY},
- #else
- {"INVALID_MULTI_PRIME_KEY", 4, 167},
- #endif
- #ifdef RSA_R_INVALID_OAEP_PARAMETERS
- {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS},
- #else
- {"INVALID_OAEP_PARAMETERS", 4, 161},
- #endif
- #ifdef RSA_R_INVALID_PADDING
- {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING},
- #else
- {"INVALID_PADDING", 4, 138},
- #endif
- #ifdef RSA_R_INVALID_PADDING_MODE
- {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE},
- #else
- {"INVALID_PADDING_MODE", 4, 141},
- #endif
- #ifdef RSA_R_INVALID_PSS_PARAMETERS
- {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS},
- #else
- {"INVALID_PSS_PARAMETERS", 4, 149},
- #endif
- #ifdef RSA_R_INVALID_PSS_SALTLEN
- {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN},
- #else
- {"INVALID_PSS_SALTLEN", 4, 146},
- #endif
- #ifdef RSA_R_INVALID_SALT_LENGTH
- {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH},
- #else
- {"INVALID_SALT_LENGTH", 4, 150},
- #endif
- #ifdef RSA_R_INVALID_TRAILER
- {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER},
- #else
- {"INVALID_TRAILER", 4, 139},
- #endif
- #ifdef RSA_R_INVALID_X931_DIGEST
- {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST},
- #else
- {"INVALID_X931_DIGEST", 4, 142},
- #endif
- #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q
- {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q},
- #else
- {"IQMP_NOT_INVERSE_OF_Q", 4, 126},
- #endif
- #ifdef RSA_R_KEY_PRIME_NUM_INVALID
- {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID},
- #else
- {"KEY_PRIME_NUM_INVALID", 4, 165},
- #endif
- #ifdef RSA_R_KEY_SIZE_TOO_SMALL
- {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL},
- #else
- {"KEY_SIZE_TOO_SMALL", 4, 120},
- #endif
- #ifdef RSA_R_LAST_OCTET_INVALID
- {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID},
- #else
- {"LAST_OCTET_INVALID", 4, 134},
- #endif
- #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED
- {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED},
- #else
- {"MGF1_DIGEST_NOT_ALLOWED", 4, 152},
- #endif
- #ifdef RSA_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 4, 179},
- #endif
- #ifdef RSA_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 4, 105},
- #endif
- #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R
- {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R},
- #else
- {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168},
- #endif
- #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D
- {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D},
- #else
- {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169},
- #endif
- #ifdef RSA_R_MP_R_NOT_PRIME
- {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME},
- #else
- {"MP_R_NOT_PRIME", 4, 170},
- #endif
- #ifdef RSA_R_NO_PUBLIC_EXPONENT
- {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT},
- #else
- {"NO_PUBLIC_EXPONENT", 4, 140},
- #endif
- #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING
- {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING},
- #else
- {"NULL_BEFORE_BLOCK_MISSING", 4, 113},
- #endif
- #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES
- {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES},
- #else
- {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172},
- #endif
- #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q
- {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q},
- #else
- {"N_DOES_NOT_EQUAL_P_Q", 4, 127},
- #endif
- #ifdef RSA_R_OAEP_DECODING_ERROR
- {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR},
- #else
- {"OAEP_DECODING_ERROR", 4, 121},
- #endif
- #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148},
- #endif
- #ifdef RSA_R_PADDING_CHECK_FAILED
- {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED},
- #else
- {"PADDING_CHECK_FAILED", 4, 114},
- #endif
- #ifdef RSA_R_PKCS_DECODING_ERROR
- {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR},
- #else
- {"PKCS_DECODING_ERROR", 4, 159},
- #endif
- #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL
- {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL},
- #else
- {"PSS_SALTLEN_TOO_SMALL", 4, 164},
- #endif
- #ifdef RSA_R_P_NOT_PRIME
- {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME},
- #else
- {"P_NOT_PRIME", 4, 128},
- #endif
- #ifdef RSA_R_Q_NOT_PRIME
- {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME},
- #else
- {"Q_NOT_PRIME", 4, 129},
- #endif
- #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED
- {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED},
- #else
- {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130},
- #endif
- #ifdef RSA_R_SLEN_CHECK_FAILED
- {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED},
- #else
- {"SLEN_CHECK_FAILED", 4, 136},
- #endif
- #ifdef RSA_R_SLEN_RECOVERY_FAILED
- {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED},
- #else
- {"SLEN_RECOVERY_FAILED", 4, 135},
- #endif
- #ifdef RSA_R_SSLV3_ROLLBACK_ATTACK
- {"SSLV3_ROLLBACK_ATTACK", ERR_LIB_RSA, RSA_R_SSLV3_ROLLBACK_ATTACK},
- #else
- {"SSLV3_ROLLBACK_ATTACK", 4, 115},
- #endif
- #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
- #else
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116},
- #endif
- #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE
- {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE},
- #else
- {"UNKNOWN_ALGORITHM_TYPE", 4, 117},
- #endif
- #ifdef RSA_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 4, 166},
- #endif
- #ifdef RSA_R_UNKNOWN_MASK_DIGEST
- {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST},
- #else
- {"UNKNOWN_MASK_DIGEST", 4, 151},
- #endif
- #ifdef RSA_R_UNKNOWN_PADDING_TYPE
- {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE},
- #else
- {"UNKNOWN_PADDING_TYPE", 4, 118},
- #endif
- #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE
- {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE},
- #else
- {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162},
- #endif
- #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE
- {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE},
- #else
- {"UNSUPPORTED_LABEL_SOURCE", 4, 163},
- #endif
- #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM
- {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM},
- #else
- {"UNSUPPORTED_MASK_ALGORITHM", 4, 153},
- #endif
- #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER
- {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER},
- #else
- {"UNSUPPORTED_MASK_PARAMETER", 4, 154},
- #endif
- #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE
- {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE},
- #else
- {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155},
- #endif
- #ifdef RSA_R_VALUE_MISSING
- {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING},
- #else
- {"VALUE_MISSING", 4, 147},
- #endif
- #ifdef RSA_R_WRONG_SIGNATURE_LENGTH
- {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH},
- #else
- {"WRONG_SIGNATURE_LENGTH", 4, 119},
- #endif
- #ifdef SM2_R_ASN1_ERROR
- {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR},
- #else
- {"ASN1_ERROR", 53, 100},
- #endif
- #ifdef SM2_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 53, 101},
- #endif
- #ifdef SM2_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 53, 107},
- #endif
- #ifdef SM2_R_DIST_ID_TOO_LARGE
- {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE},
- #else
- {"DIST_ID_TOO_LARGE", 53, 110},
- #endif
- #ifdef SM2_R_ID_NOT_SET
- {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET},
- #else
- {"ID_NOT_SET", 53, 112},
- #endif
- #ifdef SM2_R_ID_TOO_LARGE
- {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE},
- #else
- {"ID_TOO_LARGE", 53, 111},
- #endif
- #ifdef SM2_R_INVALID_CURVE
- {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE},
- #else
- {"INVALID_CURVE", 53, 108},
- #endif
- #ifdef SM2_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 53, 102},
- #endif
- #ifdef SM2_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 53, 103},
- #endif
- #ifdef SM2_R_INVALID_ENCODING
- {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING},
- #else
- {"INVALID_ENCODING", 53, 104},
- #endif
- #ifdef SM2_R_INVALID_FIELD
- {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD},
- #else
- {"INVALID_FIELD", 53, 105},
- #endif
- #ifdef SM2_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 53, 109},
- #endif
- #ifdef SM2_R_USER_ID_TOO_LARGE
- {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE},
- #else
- {"USER_ID_TOO_LARGE", 53, 106},
- #endif
- #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY
- {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY},
- #else
- {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291},
- #endif
- #ifdef SSL_R_APP_DATA_IN_HANDSHAKE
- {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE},
- #else
- {"APP_DATA_IN_HANDSHAKE", 20, 100},
- #endif
- #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT
- {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT},
- #else
- {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272},
- #endif
- #ifdef SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE
- {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE},
- #else
- {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", 20, 143},
- #endif
- #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE
- {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE},
- #else
- {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
- #endif
- #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
- {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
- #else
- {"BAD_CHANGE_CIPHER_SPEC", 20, 103},
- #endif
- #ifdef SSL_R_BAD_CIPHER
- {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER},
- #else
- {"BAD_CIPHER", 20, 186},
- #endif
- #ifdef SSL_R_BAD_DATA
- {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
- #else
- {"BAD_DATA", 20, 390},
- #endif
- #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK
- {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK},
- #else
- {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106},
- #endif
- #ifdef SSL_R_BAD_DECOMPRESSION
- {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION},
- #else
- {"BAD_DECOMPRESSION", 20, 107},
- #endif
- #ifdef SSL_R_BAD_DH_VALUE
- {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE},
- #else
- {"BAD_DH_VALUE", 20, 102},
- #endif
- #ifdef SSL_R_BAD_DIGEST_LENGTH
- {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH},
- #else
- {"BAD_DIGEST_LENGTH", 20, 111},
- #endif
- #ifdef SSL_R_BAD_EARLY_DATA
- {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA},
- #else
- {"BAD_EARLY_DATA", 20, 233},
- #endif
- #ifdef SSL_R_BAD_ECC_CERT
- {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT},
- #else
- {"BAD_ECC_CERT", 20, 304},
- #endif
- #ifdef SSL_R_BAD_ECPOINT
- {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT},
- #else
- {"BAD_ECPOINT", 20, 306},
- #endif
- #ifdef SSL_R_BAD_EXTENSION
- {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION},
- #else
- {"BAD_EXTENSION", 20, 110},
- #endif
- #ifdef SSL_R_BAD_HANDSHAKE_LENGTH
- {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH},
- #else
- {"BAD_HANDSHAKE_LENGTH", 20, 332},
- #endif
- #ifdef SSL_R_BAD_HANDSHAKE_STATE
- {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE},
- #else
- {"BAD_HANDSHAKE_STATE", 20, 236},
- #endif
- #ifdef SSL_R_BAD_HELLO_REQUEST
- {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST},
- #else
- {"BAD_HELLO_REQUEST", 20, 105},
- #endif
- #ifdef SSL_R_BAD_HRR_VERSION
- {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION},
- #else
- {"BAD_HRR_VERSION", 20, 263},
- #endif
- #ifdef SSL_R_BAD_KEY_SHARE
- {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE},
- #else
- {"BAD_KEY_SHARE", 20, 108},
- #endif
- #ifdef SSL_R_BAD_KEY_UPDATE
- {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE},
- #else
- {"BAD_KEY_UPDATE", 20, 122},
- #endif
- #ifdef SSL_R_BAD_LEGACY_VERSION
- {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION},
- #else
- {"BAD_LEGACY_VERSION", 20, 292},
- #endif
- #ifdef SSL_R_BAD_LENGTH
- {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH},
- #else
- {"BAD_LENGTH", 20, 271},
- #endif
- #ifdef SSL_R_BAD_PACKET
- {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET},
- #else
- {"BAD_PACKET", 20, 240},
- #endif
- #ifdef SSL_R_BAD_PACKET_LENGTH
- {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH},
- #else
- {"BAD_PACKET_LENGTH", 20, 115},
- #endif
- #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER
- {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER},
- #else
- {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116},
- #endif
- #ifdef SSL_R_BAD_PSK
- {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK},
- #else
- {"BAD_PSK", 20, 219},
- #endif
- #ifdef SSL_R_BAD_PSK_IDENTITY
- {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY},
- #else
- {"BAD_PSK_IDENTITY", 20, 114},
- #endif
- #ifdef SSL_R_BAD_RECORD_TYPE
- {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE},
- #else
- {"BAD_RECORD_TYPE", 20, 443},
- #endif
- #ifdef SSL_R_BAD_RSA_ENCRYPT
- {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT},
- #else
- {"BAD_RSA_ENCRYPT", 20, 119},
- #endif
- #ifdef SSL_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 20, 123},
- #endif
- #ifdef SSL_R_BAD_SRP_A_LENGTH
- {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH},
- #else
- {"BAD_SRP_A_LENGTH", 20, 347},
- #endif
- #ifdef SSL_R_BAD_SRP_PARAMETERS
- {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS},
- #else
- {"BAD_SRP_PARAMETERS", 20, 371},
- #endif
- #ifdef SSL_R_BAD_SRTP_MKI_VALUE
- {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE},
- #else
- {"BAD_SRTP_MKI_VALUE", 20, 352},
- #endif
- #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST
- {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST},
- #else
- {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353},
- #endif
- #ifdef SSL_R_BAD_SSL_FILETYPE
- {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE},
- #else
- {"BAD_SSL_FILETYPE", 20, 124},
- #endif
- #ifdef SSL_R_BAD_VALUE
- {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE},
- #else
- {"BAD_VALUE", 20, 384},
- #endif
- #ifdef SSL_R_BAD_WRITE_RETRY
- {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY},
- #else
- {"BAD_WRITE_RETRY", 20, 127},
- #endif
- #ifdef SSL_R_BINDER_DOES_NOT_VERIFY
- {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY},
- #else
- {"BINDER_DOES_NOT_VERIFY", 20, 253},
- #endif
- #ifdef SSL_R_BIO_NOT_SET
- {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET},
- #else
- {"BIO_NOT_SET", 20, 128},
- #endif
- #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG
- {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG},
- #else
- {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129},
- #endif
- #ifdef SSL_R_BN_LIB
- {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB},
- #else
- {"BN_LIB", 20, 130},
- #endif
- #ifdef SSL_R_CALLBACK_FAILED
- {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED},
- #else
- {"CALLBACK_FAILED", 20, 234},
- #endif
- #ifdef SSL_R_CANNOT_CHANGE_CIPHER
- {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER},
- #else
- {"CANNOT_CHANGE_CIPHER", 20, 109},
- #endif
- #ifdef SSL_R_CA_DN_LENGTH_MISMATCH
- {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH},
- #else
- {"CA_DN_LENGTH_MISMATCH", 20, 131},
- #endif
- #ifdef SSL_R_CA_KEY_TOO_SMALL
- {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL},
- #else
- {"CA_KEY_TOO_SMALL", 20, 397},
- #endif
- #ifdef SSL_R_CA_MD_TOO_WEAK
- {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK},
- #else
- {"CA_MD_TOO_WEAK", 20, 398},
- #endif
- #ifdef SSL_R_CCS_RECEIVED_EARLY
- {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY},
- #else
- {"CCS_RECEIVED_EARLY", 20, 133},
- #endif
- #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED
- {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED},
- #else
- {"CERTIFICATE_VERIFY_FAILED", 20, 134},
- #endif
- #ifdef SSL_R_CERT_CB_ERROR
- {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR},
- #else
- {"CERT_CB_ERROR", 20, 377},
- #endif
- #ifdef SSL_R_CERT_LENGTH_MISMATCH
- {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH},
- #else
- {"CERT_LENGTH_MISMATCH", 20, 135},
- #endif
- #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED
- {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED},
- #else
- {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218},
- #endif
- #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH
- {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH},
- #else
- {"CIPHER_CODE_WRONG_LENGTH", 20, 137},
- #endif
- #ifdef SSL_R_CIPHER_OR_HASH_UNAVAILABLE
- {"CIPHER_OR_HASH_UNAVAILABLE", ERR_LIB_SSL, SSL_R_CIPHER_OR_HASH_UNAVAILABLE},
- #else
- {"CIPHER_OR_HASH_UNAVAILABLE", 20, 138},
- #endif
- #ifdef SSL_R_CLIENTHELLO_TLSEXT
- {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT},
- #else
- {"CLIENTHELLO_TLSEXT", 20, 226},
- #endif
- #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG
- {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG},
- #else
- {"COMPRESSED_LENGTH_TOO_LONG", 20, 140},
- #endif
- #ifdef SSL_R_COMPRESSION_DISABLED
- {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED},
- #else
- {"COMPRESSION_DISABLED", 20, 343},
- #endif
- #ifdef SSL_R_COMPRESSION_FAILURE
- {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE},
- #else
- {"COMPRESSION_FAILURE", 20, 141},
- #endif
- #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE
- {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE},
- #else
- {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307},
- #endif
- #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR
- {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR},
- #else
- {"COMPRESSION_LIBRARY_ERROR", 20, 142},
- #endif
- #ifdef SSL_R_CONNECTION_TYPE_NOT_SET
- {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET},
- #else
- {"CONNECTION_TYPE_NOT_SET", 20, 144},
- #endif
- #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
- {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
- #else
- {"CONTEXT_NOT_DANE_ENABLED", 20, 167},
- #endif
- #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE
- {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE},
- #else
- {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400},
- #endif
- #ifdef SSL_R_COOKIE_MISMATCH
- {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH},
- #else
- {"COOKIE_MISMATCH", 20, 308},
- #endif
- #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED
- {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED},
- #else
- {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206},
- #endif
- #ifdef SSL_R_DANE_ALREADY_ENABLED
- {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED},
- #else
- {"DANE_ALREADY_ENABLED", 20, 172},
- #endif
- #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL
- {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL},
- #else
- {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173},
- #endif
- #ifdef SSL_R_DANE_NOT_ENABLED
- {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED},
- #else
- {"DANE_NOT_ENABLED", 20, 175},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE
- {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE},
- #else
- {"DANE_TLSA_BAD_CERTIFICATE", 20, 180},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE
- {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE},
- #else
- {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH
- {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH},
- #else
- {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH
- {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH},
- #else
- {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE
- {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE},
- #else
- {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY
- {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY},
- #else
- {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR
- {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR},
- #else
- {"DANE_TLSA_BAD_SELECTOR", 20, 202},
- #endif
- #ifdef SSL_R_DANE_TLSA_NULL_DATA
- {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA},
- #else
- {"DANE_TLSA_NULL_DATA", 20, 203},
- #endif
- #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED
- {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED},
- #else
- {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145},
- #endif
- #ifdef SSL_R_DATA_LENGTH_TOO_LONG
- {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG},
- #else
- {"DATA_LENGTH_TOO_LONG", 20, 146},
- #endif
- #ifdef SSL_R_DECRYPTION_FAILED
- {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED},
- #else
- {"DECRYPTION_FAILED", 20, 147},
- #endif
- #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC
- {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC},
- #else
- {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281},
- #endif
- #ifdef SSL_R_DH_KEY_TOO_SMALL
- {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL},
- #else
- {"DH_KEY_TOO_SMALL", 20, 394},
- #endif
- #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG
- {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG},
- #else
- {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148},
- #endif
- #ifdef SSL_R_DIGEST_CHECK_FAILED
- {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED},
- #else
- {"DIGEST_CHECK_FAILED", 20, 149},
- #endif
- #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG
- {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG},
- #else
- {"DTLS_MESSAGE_TOO_BIG", 20, 334},
- #endif
- #ifdef SSL_R_DUPLICATE_COMPRESSION_ID
- {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID},
- #else
- {"DUPLICATE_COMPRESSION_ID", 20, 309},
- #endif
- #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING
- {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING},
- #else
- {"ECC_CERT_NOT_FOR_SIGNING", 20, 318},
- #endif
- #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE
- {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE},
- #else
- {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374},
- #endif
- #ifdef SSL_R_EE_KEY_TOO_SMALL
- {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL},
- #else
- {"EE_KEY_TOO_SMALL", 20, 399},
- #endif
- #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST
- {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST},
- #else
- {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354},
- #endif
- #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG
- {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG},
- #else
- {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150},
- #endif
- #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST
- {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST},
- #else
- {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
- #endif
- #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
- {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
- #else
- {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204},
- #endif
- #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE
- {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE},
- #else
- {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194},
- #endif
- #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE
- {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE},
- #else
- {"EXCESSIVE_MESSAGE_SIZE", 20, 152},
- #endif
- #ifdef SSL_R_EXTENSION_NOT_RECEIVED
- {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED},
- #else
- {"EXTENSION_NOT_RECEIVED", 20, 279},
- #endif
- #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE
- {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE},
- #else
- {"EXTRA_DATA_IN_MESSAGE", 20, 153},
- #endif
- #ifdef SSL_R_EXT_LENGTH_MISMATCH
- {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH},
- #else
- {"EXT_LENGTH_MISMATCH", 20, 163},
- #endif
- #ifdef SSL_R_FAILED_TO_INIT_ASYNC
- {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
- #else
- {"FAILED_TO_INIT_ASYNC", 20, 405},
- #endif
- #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
- {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
- #else
- {"FRAGMENTED_CLIENT_HELLO", 20, 401},
- #endif
- #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS
- {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS},
- #else
- {"GOT_A_FIN_BEFORE_A_CCS", 20, 154},
- #endif
- #ifdef SSL_R_HTTPS_PROXY_REQUEST
- {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST},
- #else
- {"HTTPS_PROXY_REQUEST", 20, 155},
- #endif
- #ifdef SSL_R_HTTP_REQUEST
- {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST},
- #else
- {"HTTP_REQUEST", 20, 156},
- #endif
- #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION
- {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION},
- #else
- {"ILLEGAL_POINT_COMPRESSION", 20, 162},
- #endif
- #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST
- {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST},
- #else
- {"ILLEGAL_SUITEB_DIGEST", 20, 380},
- #endif
- #ifdef SSL_R_INAPPROPRIATE_FALLBACK
- {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK},
- #else
- {"INAPPROPRIATE_FALLBACK", 20, 373},
- #endif
- #ifdef SSL_R_INCONSISTENT_COMPRESSION
- {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION},
- #else
- {"INCONSISTENT_COMPRESSION", 20, 340},
- #endif
- #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN
- {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN},
- #else
- {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222},
- #endif
- #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI
- {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI},
- #else
- {"INCONSISTENT_EARLY_DATA_SNI", 20, 231},
- #endif
- #ifdef SSL_R_INCONSISTENT_EXTMS
- {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS},
- #else
- {"INCONSISTENT_EXTMS", 20, 104},
- #endif
- #ifdef SSL_R_INSUFFICIENT_SECURITY
- {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY},
- #else
- {"INSUFFICIENT_SECURITY", 20, 241},
- #endif
- #ifdef SSL_R_INVALID_ALERT
- {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT},
- #else
- {"INVALID_ALERT", 20, 205},
- #endif
- #ifdef SSL_R_INVALID_CCS_MESSAGE
- {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE},
- #else
- {"INVALID_CCS_MESSAGE", 20, 260},
- #endif
- #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG
- {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG},
- #else
- {"INVALID_CERTIFICATE_OR_ALG", 20, 238},
- #endif
- #ifdef SSL_R_INVALID_COMMAND
- {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND},
- #else
- {"INVALID_COMMAND", 20, 280},
- #endif
- #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM
- {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM},
- #else
- {"INVALID_COMPRESSION_ALGORITHM", 20, 341},
- #endif
- #ifdef SSL_R_INVALID_CONFIG
- {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG},
- #else
- {"INVALID_CONFIG", 20, 283},
- #endif
- #ifdef SSL_R_INVALID_CONFIGURATION_NAME
- {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME},
- #else
- {"INVALID_CONFIGURATION_NAME", 20, 113},
- #endif
- #ifdef SSL_R_INVALID_CONTEXT
- {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT},
- #else
- {"INVALID_CONTEXT", 20, 282},
- #endif
- #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE
- {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE},
- #else
- {"INVALID_CT_VALIDATION_TYPE", 20, 212},
- #endif
- #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE
- {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE},
- #else
- {"INVALID_KEY_UPDATE_TYPE", 20, 120},
- #endif
- #ifdef SSL_R_INVALID_MAX_EARLY_DATA
- {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA},
- #else
- {"INVALID_MAX_EARLY_DATA", 20, 174},
- #endif
- #ifdef SSL_R_INVALID_NULL_CMD_NAME
- {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME},
- #else
- {"INVALID_NULL_CMD_NAME", 20, 385},
- #endif
- #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
- {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
- #else
- {"INVALID_SEQUENCE_NUMBER", 20, 402},
- #endif
- #ifdef SSL_R_INVALID_SERVERINFO_DATA
- {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA},
- #else
- {"INVALID_SERVERINFO_DATA", 20, 388},
- #endif
- #ifdef SSL_R_INVALID_SESSION_ID
- {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID},
- #else
- {"INVALID_SESSION_ID", 20, 999},
- #endif
- #ifdef SSL_R_INVALID_SRP_USERNAME
- {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME},
- #else
- {"INVALID_SRP_USERNAME", 20, 357},
- #endif
- #ifdef SSL_R_INVALID_STATUS_RESPONSE
- {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE},
- #else
- {"INVALID_STATUS_RESPONSE", 20, 328},
- #endif
- #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH
- {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH},
- #else
- {"INVALID_TICKET_KEYS_LENGTH", 20, 325},
- #endif
- #ifdef SSL_R_LENGTH_MISMATCH
- {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH},
- #else
- {"LENGTH_MISMATCH", 20, 159},
- #endif
- #ifdef SSL_R_LENGTH_TOO_LONG
- {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG},
- #else
- {"LENGTH_TOO_LONG", 20, 404},
- #endif
- #ifdef SSL_R_LENGTH_TOO_SHORT
- {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT},
- #else
- {"LENGTH_TOO_SHORT", 20, 160},
- #endif
- #ifdef SSL_R_LIBRARY_BUG
- {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG},
- #else
- {"LIBRARY_BUG", 20, 274},
- #endif
- #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS
- {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS},
- #else
- {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
- #endif
- #ifdef SSL_R_MISSING_DSA_SIGNING_CERT
- {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
- #else
- {"MISSING_DSA_SIGNING_CERT", 20, 165},
- #endif
- #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT
- {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT},
- #else
- {"MISSING_ECDSA_SIGNING_CERT", 20, 381},
- #endif
- #ifdef SSL_R_MISSING_FATAL
- {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL},
- #else
- {"MISSING_FATAL", 20, 256},
- #endif
- #ifdef SSL_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 20, 290},
- #endif
- #ifdef SSL_R_MISSING_RSA_CERTIFICATE
- {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE},
- #else
- {"MISSING_RSA_CERTIFICATE", 20, 168},
- #endif
- #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT
- {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT},
- #else
- {"MISSING_RSA_ENCRYPTING_CERT", 20, 169},
- #endif
- #ifdef SSL_R_MISSING_RSA_SIGNING_CERT
- {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT},
- #else
- {"MISSING_RSA_SIGNING_CERT", 20, 170},
- #endif
- #ifdef SSL_R_MISSING_SIGALGS_EXTENSION
- {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION},
- #else
- {"MISSING_SIGALGS_EXTENSION", 20, 112},
- #endif
- #ifdef SSL_R_MISSING_SIGNING_CERT
- {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT},
- #else
- {"MISSING_SIGNING_CERT", 20, 221},
- #endif
- #ifdef SSL_R_MISSING_SRP_PARAM
- {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM},
- #else
- {"MISSING_SRP_PARAM", 20, 358},
- #endif
- #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION
- {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION},
- #else
- {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
- #endif
- #ifdef SSL_R_MISSING_TMP_DH_KEY
- {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
- #else
- {"MISSING_TMP_DH_KEY", 20, 171},
- #endif
- #ifdef SSL_R_MISSING_TMP_ECDH_KEY
- {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY},
- #else
- {"MISSING_TMP_ECDH_KEY", 20, 311},
- #endif
- #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA
- {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA},
- #else
- {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293},
- #endif
- #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY
- {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY},
- #else
- {"NOT_ON_RECORD_BOUNDARY", 20, 182},
- #endif
- #ifdef SSL_R_NOT_REPLACING_CERTIFICATE
- {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE},
- #else
- {"NOT_REPLACING_CERTIFICATE", 20, 289},
- #endif
- #ifdef SSL_R_NOT_SERVER
- {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER},
- #else
- {"NOT_SERVER", 20, 284},
- #endif
- #ifdef SSL_R_NO_APPLICATION_PROTOCOL
- {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL},
- #else
- {"NO_APPLICATION_PROTOCOL", 20, 235},
- #endif
- #ifdef SSL_R_NO_CERTIFICATES_RETURNED
- {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED},
- #else
- {"NO_CERTIFICATES_RETURNED", 20, 176},
- #endif
- #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED
- {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED},
- #else
- {"NO_CERTIFICATE_ASSIGNED", 20, 177},
- #endif
- #ifdef SSL_R_NO_CERTIFICATE_SET
- {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET},
- #else
- {"NO_CERTIFICATE_SET", 20, 179},
- #endif
- #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR
- {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR},
- #else
- {"NO_CHANGE_FOLLOWING_HRR", 20, 214},
- #endif
- #ifdef SSL_R_NO_CIPHERS_AVAILABLE
- {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE},
- #else
- {"NO_CIPHERS_AVAILABLE", 20, 181},
- #endif
- #ifdef SSL_R_NO_CIPHERS_SPECIFIED
- {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED},
- #else
- {"NO_CIPHERS_SPECIFIED", 20, 183},
- #endif
- #ifdef SSL_R_NO_CIPHER_MATCH
- {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH},
- #else
- {"NO_CIPHER_MATCH", 20, 185},
- #endif
- #ifdef SSL_R_NO_CLIENT_CERT_METHOD
- {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD},
- #else
- {"NO_CLIENT_CERT_METHOD", 20, 331},
- #endif
- #ifdef SSL_R_NO_COMPRESSION_SPECIFIED
- {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED},
- #else
- {"NO_COMPRESSION_SPECIFIED", 20, 187},
- #endif
- #ifdef SSL_R_NO_COOKIE_CALLBACK_SET
- {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET},
- #else
- {"NO_COOKIE_CALLBACK_SET", 20, 287},
- #endif
- #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER
- {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER},
- #else
- {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330},
- #endif
- #ifdef SSL_R_NO_METHOD_SPECIFIED
- {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED},
- #else
- {"NO_METHOD_SPECIFIED", 20, 188},
- #endif
- #ifdef SSL_R_NO_PEM_EXTENSIONS
- {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS},
- #else
- {"NO_PEM_EXTENSIONS", 20, 389},
- #endif
- #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED
- {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED},
- #else
- {"NO_PRIVATE_KEY_ASSIGNED", 20, 190},
- #endif
- #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE
- {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE},
- #else
- {"NO_PROTOCOLS_AVAILABLE", 20, 191},
- #endif
- #ifdef SSL_R_NO_RENEGOTIATION
- {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION},
- #else
- {"NO_RENEGOTIATION", 20, 339},
- #endif
- #ifdef SSL_R_NO_REQUIRED_DIGEST
- {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST},
- #else
- {"NO_REQUIRED_DIGEST", 20, 324},
- #endif
- #ifdef SSL_R_NO_SHARED_CIPHER
- {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER},
- #else
- {"NO_SHARED_CIPHER", 20, 193},
- #endif
- #ifdef SSL_R_NO_SHARED_GROUPS
- {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS},
- #else
- {"NO_SHARED_GROUPS", 20, 410},
- #endif
- #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS
- {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS},
- #else
- {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376},
- #endif
- #ifdef SSL_R_NO_SRTP_PROFILES
- {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES},
- #else
- {"NO_SRTP_PROFILES", 20, 359},
- #endif
- #ifdef SSL_R_NO_SUITABLE_KEY_SHARE
- {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE},
- #else
- {"NO_SUITABLE_KEY_SHARE", 20, 101},
- #endif
- #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
- {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
- #else
- {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118},
- #endif
- #ifdef SSL_R_NO_VALID_SCTS
- {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS},
- #else
- {"NO_VALID_SCTS", 20, 216},
- #endif
- #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK
- {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK},
- #else
- {"NO_VERIFY_COOKIE_CALLBACK", 20, 403},
- #endif
- #ifdef SSL_R_NULL_SSL_CTX
- {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX},
- #else
- {"NULL_SSL_CTX", 20, 195},
- #endif
- #ifdef SSL_R_NULL_SSL_METHOD_PASSED
- {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED},
- #else
- {"NULL_SSL_METHOD_PASSED", 20, 196},
- #endif
- #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED
- {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED},
- #else
- {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197},
- #endif
- #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED
- {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED},
- #else
- {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344},
- #endif
- #ifdef SSL_R_OVERFLOW_ERROR
- {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR},
- #else
- {"OVERFLOW_ERROR", 20, 237},
- #endif
- #ifdef SSL_R_PACKET_LENGTH_TOO_LONG
- {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG},
- #else
- {"PACKET_LENGTH_TOO_LONG", 20, 198},
- #endif
- #ifdef SSL_R_PARSE_TLSEXT
- {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT},
- #else
- {"PARSE_TLSEXT", 20, 227},
- #endif
- #ifdef SSL_R_PATH_TOO_LONG
- {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG},
- #else
- {"PATH_TOO_LONG", 20, 270},
- #endif
- #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE
- {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE},
- #else
- {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199},
- #endif
- #ifdef SSL_R_PEM_NAME_BAD_PREFIX
- {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX},
- #else
- {"PEM_NAME_BAD_PREFIX", 20, 391},
- #endif
- #ifdef SSL_R_PEM_NAME_TOO_SHORT
- {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT},
- #else
- {"PEM_NAME_TOO_SHORT", 20, 392},
- #endif
- #ifdef SSL_R_PIPELINE_FAILURE
- {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE},
- #else
- {"PIPELINE_FAILURE", 20, 406},
- #endif
- #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
- {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
- #else
- {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278},
- #endif
- #ifdef SSL_R_PRIVATE_KEY_MISMATCH
- {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH},
- #else
- {"PRIVATE_KEY_MISMATCH", 20, 288},
- #endif
- #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN
- {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN},
- #else
- {"PROTOCOL_IS_SHUTDOWN", 20, 207},
- #endif
- #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND
- {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND},
- #else
- {"PSK_IDENTITY_NOT_FOUND", 20, 223},
- #endif
- #ifdef SSL_R_PSK_NO_CLIENT_CB
- {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB},
- #else
- {"PSK_NO_CLIENT_CB", 20, 224},
- #endif
- #ifdef SSL_R_PSK_NO_SERVER_CB
- {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB},
- #else
- {"PSK_NO_SERVER_CB", 20, 225},
- #endif
- #ifdef SSL_R_READ_BIO_NOT_SET
- {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
- #else
- {"READ_BIO_NOT_SET", 20, 211},
- #endif
- #ifdef SSL_R_READ_TIMEOUT_EXPIRED
- {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED},
- #else
- {"READ_TIMEOUT_EXPIRED", 20, 312},
- #endif
- #ifdef SSL_R_RECORD_LENGTH_MISMATCH
- {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
- #else
- {"RECORD_LENGTH_MISMATCH", 20, 213},
- #endif
- #ifdef SSL_R_RECORD_TOO_SMALL
- {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL},
- #else
- {"RECORD_TOO_SMALL", 20, 298},
- #endif
- #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
- {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
- #else
- {"RENEGOTIATE_EXT_TOO_LONG", 20, 335},
- #endif
- #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR
- {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR},
- #else
- {"RENEGOTIATION_ENCODING_ERR", 20, 336},
- #endif
- #ifdef SSL_R_RENEGOTIATION_MISMATCH
- {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH},
- #else
- {"RENEGOTIATION_MISMATCH", 20, 337},
- #endif
- #ifdef SSL_R_REQUEST_PENDING
- {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING},
- #else
- {"REQUEST_PENDING", 20, 285},
- #endif
- #ifdef SSL_R_REQUEST_SENT
- {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT},
- #else
- {"REQUEST_SENT", 20, 286},
- #endif
- #ifdef SSL_R_REQUIRED_CIPHER_MISSING
- {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING},
- #else
- {"REQUIRED_CIPHER_MISSING", 20, 215},
- #endif
- #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING
- {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING},
- #else
- {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342},
- #endif
- #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING
- {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING},
- #else
- {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345},
- #endif
- #ifdef SSL_R_SCT_VERIFICATION_FAILED
- {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED},
- #else
- {"SCT_VERIFICATION_FAILED", 20, 208},
- #endif
- #ifdef SSL_R_SERVERHELLO_TLSEXT
- {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
- #else
- {"SERVERHELLO_TLSEXT", 20, 275},
- #endif
- #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED
- {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED},
- #else
- {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277},
- #endif
- #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT
- {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT},
- #else
- {"SHUTDOWN_WHILE_IN_INIT", 20, 407},
- #endif
- #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR
- {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR},
- #else
- {"SIGNATURE_ALGORITHMS_ERROR", 20, 360},
- #endif
- #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE
- {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE},
- #else
- {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220},
- #endif
- #ifdef SSL_R_SRP_A_CALC
- {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC},
- #else
- {"SRP_A_CALC", 20, 361},
- #endif
- #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES
- {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES},
- #else
- {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362},
- #endif
- #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG
- {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG},
- #else
- {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363},
- #endif
- #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE
- {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE},
- #else
- {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364},
- #endif
- #ifdef SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH
- {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH},
- #else
- {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232},
- #endif
- #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME
- {"SSL3_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME},
- #else
- {"SSL3_EXT_INVALID_SERVERNAME", 20, 319},
- #endif
- #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE
- {"SSL3_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE},
- #else
- {"SSL3_EXT_INVALID_SERVERNAME_TYPE", 20, 320},
- #endif
- #ifdef SSL_R_SSL3_SESSION_ID_TOO_LONG
- {"SSL3_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL3_SESSION_ID_TOO_LONG},
- #else
- {"SSL3_SESSION_ID_TOO_LONG", 20, 300},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
- {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
- #else
- {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
- {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
- #else
- {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
- {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
- #else
- {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
- {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
- #else
- {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
- {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
- #else
- {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
- {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
- #else
- {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
- {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
- #else
- {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
- {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
- #else
- {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
- {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
- #else
- {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
- {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
- #else
- {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
- {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
- #else
- {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
- #endif
- #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
- {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
- #else
- {"SSL_COMMAND_SECTION_EMPTY", 20, 117},
- #endif
- #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND
- {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND},
- #else
- {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125},
- #endif
- #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION
- {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION},
- #else
- {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228},
- #endif
- #ifdef SSL_R_SSL_HANDSHAKE_FAILURE
- {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE},
- #else
- {"SSL_HANDSHAKE_FAILURE", 20, 229},
- #endif
- #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS
- {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS},
- #else
- {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230},
- #endif
- #ifdef SSL_R_SSL_NEGATIVE_LENGTH
- {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH},
- #else
- {"SSL_NEGATIVE_LENGTH", 20, 372},
- #endif
- #ifdef SSL_R_SSL_SECTION_EMPTY
- {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY},
- #else
- {"SSL_SECTION_EMPTY", 20, 126},
- #endif
- #ifdef SSL_R_SSL_SECTION_NOT_FOUND
- {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND},
- #else
- {"SSL_SECTION_NOT_FOUND", 20, 136},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED
- {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED},
- #else
- {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_CONFLICT
- {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT},
- #else
- {"SSL_SESSION_ID_CONFLICT", 20, 302},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG
- {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG},
- #else
- {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH
- {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH},
- #else
- {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG
- {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG},
- #else
- {"SSL_SESSION_ID_TOO_LONG", 20, 408},
- #endif
- #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH
- {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH},
- #else
- {"SSL_SESSION_VERSION_MISMATCH", 20, 210},
- #endif
- #ifdef SSL_R_STILL_IN_INIT
- {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT},
- #else
- {"STILL_IN_INIT", 20, 121},
- #endif
- #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
- {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
- #else
- {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
- #endif
- #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
- {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
- #else
- {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
- {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
- #else
- {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
- {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
- #else
- {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
- {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
- #else
- {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
- {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
- #else
- {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
- {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
- #else
- {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
- {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
- #else
- {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
- {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
- #else
- {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
- {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
- #else
- {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
- {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
- #else
- {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
- {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
- #else
- {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
- {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
- #else
- {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
- {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
- #else
- {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
- {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
- #else
- {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
- #endif
- #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
- {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
- #else
- {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
- #endif
- #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE
- {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE},
- #else
- {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
- #endif
- #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
- {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
- #else
- {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
- #endif
- #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
- {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
- #else
- {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
- #endif
- #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
- {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
- #else
- {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
- #endif
- #ifdef SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT
- {"TLS_HEARTBEAT_PEER_DOESNT_ACCEPT", ERR_LIB_SSL, SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT},
- #else
- {"TLS_HEARTBEAT_PEER_DOESNT_ACCEPT", 20, 365},
- #endif
- #ifdef SSL_R_TLS_HEARTBEAT_PENDING
- {"TLS_HEARTBEAT_PENDING", ERR_LIB_SSL, SSL_R_TLS_HEARTBEAT_PENDING},
- #else
- {"TLS_HEARTBEAT_PENDING", 20, 366},
- #endif
- #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL
- {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL},
- #else
- {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367},
- #endif
- #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST
- {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST},
- #else
- {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157},
- #endif
- #ifdef SSL_R_TOO_MANY_KEY_UPDATES
- {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES},
- #else
- {"TOO_MANY_KEY_UPDATES", 20, 132},
- #endif
- #ifdef SSL_R_TOO_MANY_WARN_ALERTS
- {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS},
- #else
- {"TOO_MANY_WARN_ALERTS", 20, 409},
- #endif
- #ifdef SSL_R_TOO_MUCH_EARLY_DATA
- {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA},
- #else
- {"TOO_MUCH_EARLY_DATA", 20, 164},
- #endif
- #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS
- {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS},
- #else
- {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314},
- #endif
- #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS
- {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS},
- #else
- {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239},
- #endif
- #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES
- {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES},
- #else
- {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", 20, 242},
- #endif
- #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES
- {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES},
- #else
- {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", 20, 243},
- #endif
- #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE
- {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE},
- #else
- {"UNEXPECTED_CCS_MESSAGE", 20, 262},
- #endif
- #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA
- {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA},
- #else
- {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178},
- #endif
- #ifdef SSL_R_UNEXPECTED_MESSAGE
- {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE},
- #else
- {"UNEXPECTED_MESSAGE", 20, 244},
- #endif
- #ifdef SSL_R_UNEXPECTED_RECORD
- {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD},
- #else
- {"UNEXPECTED_RECORD", 20, 245},
- #endif
- #ifdef SSL_R_UNINITIALIZED
- {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED},
- #else
- {"UNINITIALIZED", 20, 276},
- #endif
- #ifdef SSL_R_UNKNOWN_ALERT_TYPE
- {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE},
- #else
- {"UNKNOWN_ALERT_TYPE", 20, 246},
- #endif
- #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE
- {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE},
- #else
- {"UNKNOWN_CERTIFICATE_TYPE", 20, 247},
- #endif
- #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED
- {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED},
- #else
- {"UNKNOWN_CIPHER_RETURNED", 20, 248},
- #endif
- #ifdef SSL_R_UNKNOWN_CIPHER_TYPE
- {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE},
- #else
- {"UNKNOWN_CIPHER_TYPE", 20, 249},
- #endif
- #ifdef SSL_R_UNKNOWN_CMD_NAME
- {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME},
- #else
- {"UNKNOWN_CMD_NAME", 20, 386},
- #endif
- #ifdef SSL_R_UNKNOWN_COMMAND
- {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND},
- #else
- {"UNKNOWN_COMMAND", 20, 139},
- #endif
- #ifdef SSL_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 20, 368},
- #endif
- #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE
- {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE},
- #else
- {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
- #endif
- #ifdef SSL_R_UNKNOWN_PKEY_TYPE
- {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
- #else
- {"UNKNOWN_PKEY_TYPE", 20, 251},
- #endif
- #ifdef SSL_R_UNKNOWN_PROTOCOL
- {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL},
- #else
- {"UNKNOWN_PROTOCOL", 20, 252},
- #endif
- #ifdef SSL_R_UNKNOWN_SSL_VERSION
- {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION},
- #else
- {"UNKNOWN_SSL_VERSION", 20, 254},
- #endif
- #ifdef SSL_R_UNKNOWN_STATE
- {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE},
- #else
- {"UNKNOWN_STATE", 20, 255},
- #endif
- #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED
- {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED},
- #else
- {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338},
- #endif
- #ifdef SSL_R_UNSOLICITED_EXTENSION
- {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION},
- #else
- {"UNSOLICITED_EXTENSION", 20, 217},
- #endif
- #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
- #else
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
- #endif
- #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
- {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
- #else
- {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315},
- #endif
- #ifdef SSL_R_UNSUPPORTED_PROTOCOL
- {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL},
- #else
- {"UNSUPPORTED_PROTOCOL", 20, 258},
- #endif
- #ifdef SSL_R_UNSUPPORTED_SSL_VERSION
- {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION},
- #else
- {"UNSUPPORTED_SSL_VERSION", 20, 259},
- #endif
- #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE
- {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE},
- #else
- {"UNSUPPORTED_STATUS_TYPE", 20, 329},
- #endif
- #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
- {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
- #else
- {"USE_SRTP_NOT_NEGOTIATED", 20, 369},
- #endif
- #ifdef SSL_R_VERSION_TOO_HIGH
- {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH},
- #else
- {"VERSION_TOO_HIGH", 20, 166},
- #endif
- #ifdef SSL_R_VERSION_TOO_LOW
- {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW},
- #else
- {"VERSION_TOO_LOW", 20, 396},
- #endif
- #ifdef SSL_R_WRONG_CERTIFICATE_TYPE
- {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE},
- #else
- {"WRONG_CERTIFICATE_TYPE", 20, 383},
- #endif
- #ifdef SSL_R_WRONG_CIPHER_RETURNED
- {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED},
- #else
- {"WRONG_CIPHER_RETURNED", 20, 261},
- #endif
- #ifdef SSL_R_WRONG_CURVE
- {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE},
- #else
- {"WRONG_CURVE", 20, 378},
- #endif
- #ifdef SSL_R_WRONG_SIGNATURE_LENGTH
- {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
- #else
- {"WRONG_SIGNATURE_LENGTH", 20, 264},
- #endif
- #ifdef SSL_R_WRONG_SIGNATURE_SIZE
- {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE},
- #else
- {"WRONG_SIGNATURE_SIZE", 20, 265},
- #endif
- #ifdef SSL_R_WRONG_SIGNATURE_TYPE
- {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE},
- #else
- {"WRONG_SIGNATURE_TYPE", 20, 370},
- #endif
- #ifdef SSL_R_WRONG_SSL_VERSION
- {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION},
- #else
- {"WRONG_SSL_VERSION", 20, 266},
- #endif
- #ifdef SSL_R_WRONG_VERSION_NUMBER
- {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER},
- #else
- {"WRONG_VERSION_NUMBER", 20, 267},
- #endif
- #ifdef SSL_R_X509_LIB
- {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB},
- #else
- {"X509_LIB", 20, 268},
- #endif
- #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS
- {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS},
- #else
- {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269},
- #endif
- #ifdef TS_R_BAD_PKCS7_TYPE
- {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE},
- #else
- {"BAD_PKCS7_TYPE", 47, 132},
- #endif
- #ifdef TS_R_BAD_TYPE
- {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE},
- #else
- {"BAD_TYPE", 47, 133},
- #endif
- #ifdef TS_R_CANNOT_LOAD_CERT
- {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT},
- #else
- {"CANNOT_LOAD_CERT", 47, 137},
- #endif
- #ifdef TS_R_CANNOT_LOAD_KEY
- {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY},
- #else
- {"CANNOT_LOAD_KEY", 47, 138},
- #endif
- #ifdef TS_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 47, 100},
- #endif
- #ifdef TS_R_COULD_NOT_SET_ENGINE
- {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE},
- #else
- {"COULD_NOT_SET_ENGINE", 47, 127},
- #endif
- #ifdef TS_R_COULD_NOT_SET_TIME
- {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME},
- #else
- {"COULD_NOT_SET_TIME", 47, 115},
- #endif
- #ifdef TS_R_DETACHED_CONTENT
- {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT},
- #else
- {"DETACHED_CONTENT", 47, 134},
- #endif
- #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR
- {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR},
- #else
- {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116},
- #endif
- #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR
- {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR},
- #else
- {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139},
- #endif
- #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR
- {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR},
- #else
- {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101},
- #endif
- #ifdef TS_R_INVALID_NULL_POINTER
- {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER},
- #else
- {"INVALID_NULL_POINTER", 47, 102},
- #endif
- #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE
- {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE},
- #else
- {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117},
- #endif
- #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH
- {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH},
- #else
- {"MESSAGE_IMPRINT_MISMATCH", 47, 103},
- #endif
- #ifdef TS_R_NONCE_MISMATCH
- {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH},
- #else
- {"NONCE_MISMATCH", 47, 104},
- #endif
- #ifdef TS_R_NONCE_NOT_RETURNED
- {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED},
- #else
- {"NONCE_NOT_RETURNED", 47, 105},
- #endif
- #ifdef TS_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 47, 106},
- #endif
- #ifdef TS_R_NO_TIME_STAMP_TOKEN
- {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN},
- #else
- {"NO_TIME_STAMP_TOKEN", 47, 107},
- #endif
- #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR
- {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR},
- #else
- {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118},
- #endif
- #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR
- {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR},
- #else
- {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119},
- #endif
- #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED
- {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED},
- #else
- {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129},
- #endif
- #ifdef TS_R_POLICY_MISMATCH
- {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH},
- #else
- {"POLICY_MISMATCH", 47, 108},
- #endif
- #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120},
- #endif
- #ifdef TS_R_RESPONSE_SETUP_ERROR
- {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR},
- #else
- {"RESPONSE_SETUP_ERROR", 47, 121},
- #endif
- #ifdef TS_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 47, 109},
- #endif
- #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER
- {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER},
- #else
- {"THERE_MUST_BE_ONE_SIGNER", 47, 110},
- #endif
- #ifdef TS_R_TIME_SYSCALL_ERROR
- {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR},
- #else
- {"TIME_SYSCALL_ERROR", 47, 122},
- #endif
- #ifdef TS_R_TOKEN_NOT_PRESENT
- {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT},
- #else
- {"TOKEN_NOT_PRESENT", 47, 130},
- #endif
- #ifdef TS_R_TOKEN_PRESENT
- {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT},
- #else
- {"TOKEN_PRESENT", 47, 131},
- #endif
- #ifdef TS_R_TSA_NAME_MISMATCH
- {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH},
- #else
- {"TSA_NAME_MISMATCH", 47, 111},
- #endif
- #ifdef TS_R_TSA_UNTRUSTED
- {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED},
- #else
- {"TSA_UNTRUSTED", 47, 112},
- #endif
- #ifdef TS_R_TST_INFO_SETUP_ERROR
- {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR},
- #else
- {"TST_INFO_SETUP_ERROR", 47, 123},
- #endif
- #ifdef TS_R_TS_DATASIGN
- {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN},
- #else
- {"TS_DATASIGN", 47, 124},
- #endif
- #ifdef TS_R_UNACCEPTABLE_POLICY
- {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY},
- #else
- {"UNACCEPTABLE_POLICY", 47, 125},
- #endif
- #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM
- {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM},
- #else
- {"UNSUPPORTED_MD_ALGORITHM", 47, 126},
- #endif
- #ifdef TS_R_UNSUPPORTED_VERSION
- {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION},
- #else
- {"UNSUPPORTED_VERSION", 47, 113},
- #endif
- #ifdef TS_R_VAR_BAD_VALUE
- {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE},
- #else
- {"VAR_BAD_VALUE", 47, 135},
- #endif
- #ifdef TS_R_VAR_LOOKUP_FAILURE
- {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE},
- #else
- {"VAR_LOOKUP_FAILURE", 47, 136},
- #endif
- #ifdef TS_R_WRONG_CONTENT_TYPE
- {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE},
- #else
- {"WRONG_CONTENT_TYPE", 47, 114},
- #endif
- #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS
- {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS},
- #else
- {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104},
- #endif
- #ifdef UI_R_INDEX_TOO_LARGE
- {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE},
- #else
- {"INDEX_TOO_LARGE", 40, 102},
- #endif
- #ifdef UI_R_INDEX_TOO_SMALL
- {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL},
- #else
- {"INDEX_TOO_SMALL", 40, 103},
- #endif
- #ifdef UI_R_NO_RESULT_BUFFER
- {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER},
- #else
- {"NO_RESULT_BUFFER", 40, 105},
- #endif
- #ifdef UI_R_PROCESSING_ERROR
- {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR},
- #else
- {"PROCESSING_ERROR", 40, 107},
- #endif
- #ifdef UI_R_RESULT_TOO_LARGE
- {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE},
- #else
- {"RESULT_TOO_LARGE", 40, 100},
- #endif
- #ifdef UI_R_RESULT_TOO_SMALL
- {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL},
- #else
- {"RESULT_TOO_SMALL", 40, 101},
- #endif
- #ifdef UI_R_SYSASSIGN_ERROR
- {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR},
- #else
- {"SYSASSIGN_ERROR", 40, 109},
- #endif
- #ifdef UI_R_SYSDASSGN_ERROR
- {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR},
- #else
- {"SYSDASSGN_ERROR", 40, 110},
- #endif
- #ifdef UI_R_SYSQIOW_ERROR
- {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR},
- #else
- {"SYSQIOW_ERROR", 40, 111},
- #endif
- #ifdef UI_R_UNKNOWN_CONTROL_COMMAND
- {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND},
- #else
- {"UNKNOWN_CONTROL_COMMAND", 40, 106},
- #endif
- #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE
- {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE},
- #else
- {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108},
- #endif
- #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED
- {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED},
- #else
- {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112},
- #endif
- #ifdef X509V3_R_BAD_IP_ADDRESS
- {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS},
- #else
- {"BAD_IP_ADDRESS", 34, 118},
- #endif
- #ifdef X509V3_R_BAD_OBJECT
- {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT},
- #else
- {"BAD_OBJECT", 34, 119},
- #endif
- #ifdef X509V3_R_BN_DEC2BN_ERROR
- {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
- #else
- {"BN_DEC2BN_ERROR", 34, 100},
- #endif
- #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR
- {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR},
- #else
- {"BN_TO_ASN1_INTEGER_ERROR", 34, 101},
- #endif
- #ifdef X509V3_R_DIRNAME_ERROR
- {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR},
- #else
- {"DIRNAME_ERROR", 34, 149},
- #endif
- #ifdef X509V3_R_DISTPOINT_ALREADY_SET
- {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET},
- #else
- {"DISTPOINT_ALREADY_SET", 34, 160},
- #endif
- #ifdef X509V3_R_DUPLICATE_ZONE_ID
- {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID},
- #else
- {"DUPLICATE_ZONE_ID", 34, 133},
- #endif
- #ifdef X509V3_R_ERROR_CONVERTING_ZONE
- {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE},
- #else
- {"ERROR_CONVERTING_ZONE", 34, 131},
- #endif
- #ifdef X509V3_R_ERROR_CREATING_EXTENSION
- {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION},
- #else
- {"ERROR_CREATING_EXTENSION", 34, 144},
- #endif
- #ifdef X509V3_R_ERROR_IN_EXTENSION
- {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION},
- #else
- {"ERROR_IN_EXTENSION", 34, 128},
- #endif
- #ifdef X509V3_R_EXPECTED_A_SECTION_NAME
- {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME},
- #else
- {"EXPECTED_A_SECTION_NAME", 34, 137},
- #endif
- #ifdef X509V3_R_EXTENSION_EXISTS
- {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS},
- #else
- {"EXTENSION_EXISTS", 34, 145},
- #endif
- #ifdef X509V3_R_EXTENSION_NAME_ERROR
- {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR},
- #else
- {"EXTENSION_NAME_ERROR", 34, 115},
- #endif
- #ifdef X509V3_R_EXTENSION_NOT_FOUND
- {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND},
- #else
- {"EXTENSION_NOT_FOUND", 34, 102},
- #endif
- #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED
- {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED},
- #else
- {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103},
- #endif
- #ifdef X509V3_R_EXTENSION_VALUE_ERROR
- {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR},
- #else
- {"EXTENSION_VALUE_ERROR", 34, 116},
- #endif
- #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION
- {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION},
- #else
- {"ILLEGAL_EMPTY_EXTENSION", 34, 151},
- #endif
- #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG
- {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG},
- #else
- {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152},
- #endif
- #ifdef X509V3_R_INVALID_ASNUMBER
- {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER},
- #else
- {"INVALID_ASNUMBER", 34, 162},
- #endif
- #ifdef X509V3_R_INVALID_ASRANGE
- {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE},
- #else
- {"INVALID_ASRANGE", 34, 163},
- #endif
- #ifdef X509V3_R_INVALID_BOOLEAN_STRING
- {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING},
- #else
- {"INVALID_BOOLEAN_STRING", 34, 104},
- #endif
- #ifdef X509V3_R_INVALID_EXTENSION_STRING
- {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING},
- #else
- {"INVALID_EXTENSION_STRING", 34, 105},
- #endif
- #ifdef X509V3_R_INVALID_INHERITANCE
- {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE},
- #else
- {"INVALID_INHERITANCE", 34, 165},
- #endif
- #ifdef X509V3_R_INVALID_IPADDRESS
- {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS},
- #else
- {"INVALID_IPADDRESS", 34, 166},
- #endif
- #ifdef X509V3_R_INVALID_MULTIPLE_RDNS
- {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS},
- #else
- {"INVALID_MULTIPLE_RDNS", 34, 161},
- #endif
- #ifdef X509V3_R_INVALID_NAME
- {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME},
- #else
- {"INVALID_NAME", 34, 106},
- #endif
- #ifdef X509V3_R_INVALID_NULL_ARGUMENT
- {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT},
- #else
- {"INVALID_NULL_ARGUMENT", 34, 107},
- #endif
- #ifdef X509V3_R_INVALID_NULL_NAME
- {"INVALID_NULL_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_NAME},
- #else
- {"INVALID_NULL_NAME", 34, 108},
- #endif
- #ifdef X509V3_R_INVALID_NULL_VALUE
- {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE},
- #else
- {"INVALID_NULL_VALUE", 34, 109},
- #endif
- #ifdef X509V3_R_INVALID_NUMBER
- {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER},
- #else
- {"INVALID_NUMBER", 34, 140},
- #endif
- #ifdef X509V3_R_INVALID_NUMBERS
- {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS},
- #else
- {"INVALID_NUMBERS", 34, 141},
- #endif
- #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER
- {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER},
- #else
- {"INVALID_OBJECT_IDENTIFIER", 34, 110},
- #endif
- #ifdef X509V3_R_INVALID_OPTION
- {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION},
- #else
- {"INVALID_OPTION", 34, 138},
- #endif
- #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER
- {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER},
- #else
- {"INVALID_POLICY_IDENTIFIER", 34, 134},
- #endif
- #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING
- {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING},
- #else
- {"INVALID_PROXY_POLICY_SETTING", 34, 153},
- #endif
- #ifdef X509V3_R_INVALID_PURPOSE
- {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE},
- #else
- {"INVALID_PURPOSE", 34, 146},
- #endif
- #ifdef X509V3_R_INVALID_SAFI
- {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI},
- #else
- {"INVALID_SAFI", 34, 164},
- #endif
- #ifdef X509V3_R_INVALID_SECTION
- {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION},
- #else
- {"INVALID_SECTION", 34, 135},
- #endif
- #ifdef X509V3_R_INVALID_SYNTAX
- {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX},
- #else
- {"INVALID_SYNTAX", 34, 143},
- #endif
- #ifdef X509V3_R_ISSUER_DECODE_ERROR
- {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR},
- #else
- {"ISSUER_DECODE_ERROR", 34, 126},
- #endif
- #ifdef X509V3_R_MISSING_VALUE
- {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE},
- #else
- {"MISSING_VALUE", 34, 124},
- #endif
- #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS
- {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS},
- #else
- {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142},
- #endif
- #ifdef X509V3_R_NO_CONFIG_DATABASE
- {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE},
- #else
- {"NO_CONFIG_DATABASE", 34, 136},
- #endif
- #ifdef X509V3_R_NO_ISSUER_CERTIFICATE
- {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE},
- #else
- {"NO_ISSUER_CERTIFICATE", 34, 121},
- #endif
- #ifdef X509V3_R_NO_ISSUER_DETAILS
- {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS},
- #else
- {"NO_ISSUER_DETAILS", 34, 127},
- #endif
- #ifdef X509V3_R_NO_POLICY_IDENTIFIER
- {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER},
- #else
- {"NO_POLICY_IDENTIFIER", 34, 139},
- #endif
- #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED
- {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED},
- #else
- {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154},
- #endif
- #ifdef X509V3_R_NO_PUBLIC_KEY
- {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY},
- #else
- {"NO_PUBLIC_KEY", 34, 114},
- #endif
- #ifdef X509V3_R_NO_SUBJECT_DETAILS
- {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS},
- #else
- {"NO_SUBJECT_DETAILS", 34, 125},
- #endif
- #ifdef X509V3_R_OPERATION_NOT_DEFINED
- {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED},
- #else
- {"OPERATION_NOT_DEFINED", 34, 148},
- #endif
- #ifdef X509V3_R_OTHERNAME_ERROR
- {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR},
- #else
- {"OTHERNAME_ERROR", 34, 147},
- #endif
- #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED
- {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED},
- #else
- {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155},
- #endif
- #ifdef X509V3_R_POLICY_PATH_LENGTH
- {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH},
- #else
- {"POLICY_PATH_LENGTH", 34, 156},
- #endif
- #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED
- {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED},
- #else
- {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157},
- #endif
- #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY
- {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY},
- #else
- {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159},
- #endif
- #ifdef X509V3_R_SECTION_NOT_FOUND
- {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND},
- #else
- {"SECTION_NOT_FOUND", 34, 150},
- #endif
- #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS
- {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS},
- #else
- {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122},
- #endif
- #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID
- {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID},
- #else
- {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123},
- #endif
- #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT
- {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT},
- #else
- {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111},
- #endif
- #ifdef X509V3_R_UNKNOWN_EXTENSION
- {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION},
- #else
- {"UNKNOWN_EXTENSION", 34, 129},
- #endif
- #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME
- {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME},
- #else
- {"UNKNOWN_EXTENSION_NAME", 34, 130},
- #endif
- #ifdef X509V3_R_UNKNOWN_OPTION
- {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION},
- #else
- {"UNKNOWN_OPTION", 34, 120},
- #endif
- #ifdef X509V3_R_UNSUPPORTED_OPTION
- {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
- #else
- {"UNSUPPORTED_OPTION", 34, 117},
- #endif
- #ifdef X509V3_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 34, 167},
- #endif
- #ifdef X509V3_R_USER_TOO_LONG
- {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG},
- #else
- {"USER_TOO_LONG", 34, 132},
- #endif
- #ifdef X509_R_AKID_MISMATCH
- {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH},
- #else
- {"AKID_MISMATCH", 11, 110},
- #endif
- #ifdef X509_R_BAD_SELECTOR
- {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR},
- #else
- {"BAD_SELECTOR", 11, 133},
- #endif
- #ifdef X509_R_BAD_X509_FILETYPE
- {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE},
- #else
- {"BAD_X509_FILETYPE", 11, 100},
- #endif
- #ifdef X509_R_BASE64_DECODE_ERROR
- {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR},
- #else
- {"BASE64_DECODE_ERROR", 11, 118},
- #endif
- #ifdef X509_R_CANT_CHECK_DH_KEY
- {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY},
- #else
- {"CANT_CHECK_DH_KEY", 11, 114},
- #endif
- #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE
- {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE},
- #else
- {"CERT_ALREADY_IN_HASH_TABLE", 11, 101},
- #endif
- #ifdef X509_R_CRL_ALREADY_DELTA
- {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA},
- #else
- {"CRL_ALREADY_DELTA", 11, 127},
- #endif
- #ifdef X509_R_CRL_VERIFY_FAILURE
- {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE},
- #else
- {"CRL_VERIFY_FAILURE", 11, 131},
- #endif
- #ifdef X509_R_IDP_MISMATCH
- {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH},
- #else
- {"IDP_MISMATCH", 11, 128},
- #endif
- #ifdef X509_R_INVALID_ATTRIBUTES
- {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES},
- #else
- {"INVALID_ATTRIBUTES", 11, 138},
- #endif
- #ifdef X509_R_INVALID_DIRECTORY
- {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY},
- #else
- {"INVALID_DIRECTORY", 11, 113},
- #endif
- #ifdef X509_R_INVALID_FIELD_NAME
- {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME},
- #else
- {"INVALID_FIELD_NAME", 11, 119},
- #endif
- #ifdef X509_R_INVALID_TRUST
- {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST},
- #else
- {"INVALID_TRUST", 11, 123},
- #endif
- #ifdef X509_R_ISSUER_MISMATCH
- {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH},
- #else
- {"ISSUER_MISMATCH", 11, 129},
- #endif
- #ifdef X509_R_KEY_TYPE_MISMATCH
- {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH},
- #else
- {"KEY_TYPE_MISMATCH", 11, 115},
- #endif
- #ifdef X509_R_KEY_VALUES_MISMATCH
- {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH},
- #else
- {"KEY_VALUES_MISMATCH", 11, 116},
- #endif
- #ifdef X509_R_LOADING_CERT_DIR
- {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR},
- #else
- {"LOADING_CERT_DIR", 11, 103},
- #endif
- #ifdef X509_R_LOADING_DEFAULTS
- {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS},
- #else
- {"LOADING_DEFAULTS", 11, 104},
- #endif
- #ifdef X509_R_METHOD_NOT_SUPPORTED
- {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED},
- #else
- {"METHOD_NOT_SUPPORTED", 11, 124},
- #endif
- #ifdef X509_R_NAME_TOO_LONG
- {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG},
- #else
- {"NAME_TOO_LONG", 11, 134},
- #endif
- #ifdef X509_R_NEWER_CRL_NOT_NEWER
- {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER},
- #else
- {"NEWER_CRL_NOT_NEWER", 11, 132},
- #endif
- #ifdef X509_R_NO_CERTIFICATE_FOUND
- {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND},
- #else
- {"NO_CERTIFICATE_FOUND", 11, 135},
- #endif
- #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND
- {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND},
- #else
- {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136},
- #endif
- #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY
- {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY},
- #else
- {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105},
- #endif
- #ifdef X509_R_NO_CRL_FOUND
- {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND},
- #else
- {"NO_CRL_FOUND", 11, 137},
- #endif
- #ifdef X509_R_NO_CRL_NUMBER
- {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER},
- #else
- {"NO_CRL_NUMBER", 11, 130},
- #endif
- #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR
- {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR},
- #else
- {"PUBLIC_KEY_DECODE_ERROR", 11, 125},
- #endif
- #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR
- {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR},
- #else
- {"PUBLIC_KEY_ENCODE_ERROR", 11, 126},
- #endif
- #ifdef X509_R_SHOULD_RETRY
- {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY},
- #else
- {"SHOULD_RETRY", 11, 106},
- #endif
- #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN
- {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN},
- #else
- {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107},
- #endif
- #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY
- {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY},
- #else
- {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108},
- #endif
- #ifdef X509_R_UNKNOWN_KEY_TYPE
- {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE},
- #else
- {"UNKNOWN_KEY_TYPE", 11, 117},
- #endif
- #ifdef X509_R_UNKNOWN_NID
- {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID},
- #else
- {"UNKNOWN_NID", 11, 109},
- #endif
- #ifdef X509_R_UNKNOWN_PURPOSE_ID
- {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID},
- #else
- {"UNKNOWN_PURPOSE_ID", 11, 121},
- #endif
- #ifdef X509_R_UNKNOWN_TRUST_ID
- {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID},
- #else
- {"UNKNOWN_TRUST_ID", 11, 120},
- #endif
- #ifdef X509_R_UNSUPPORTED_ALGORITHM
- {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM},
- #else
- {"UNSUPPORTED_ALGORITHM", 11, 111},
- #endif
- #ifdef X509_R_WRONG_LOOKUP_TYPE
- {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
- #else
- {"WRONG_LOOKUP_TYPE", 11, 112},
- #endif
- #ifdef X509_R_WRONG_TYPE
- {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE},
- #else
- {"WRONG_TYPE", 11, 122},
- #endif
- { NULL }
-};
-
+/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2021-04-09T09:36:21.493286 */
+static struct py_ssl_library_code library_codes[] = {
+#ifdef ERR_LIB_ASN1
+ {"ASN1", ERR_LIB_ASN1},
+#endif
+#ifdef ERR_LIB_ASYNC
+ {"ASYNC", ERR_LIB_ASYNC},
+#endif
+#ifdef ERR_LIB_BIO
+ {"BIO", ERR_LIB_BIO},
+#endif
+#ifdef ERR_LIB_BN
+ {"BN", ERR_LIB_BN},
+#endif
+#ifdef ERR_LIB_BUF
+ {"BUF", ERR_LIB_BUF},
+#endif
+#ifdef ERR_LIB_CMS
+ {"CMS", ERR_LIB_CMS},
+#endif
+#ifdef ERR_LIB_COMP
+ {"COMP", ERR_LIB_COMP},
+#endif
+#ifdef ERR_LIB_CONF
+ {"CONF", ERR_LIB_CONF},
+#endif
+#ifdef ERR_LIB_CRYPTO
+ {"CRYPTO", ERR_LIB_CRYPTO},
+#endif
+#ifdef ERR_LIB_CT
+ {"CT", ERR_LIB_CT},
+#endif
+#ifdef ERR_LIB_DH
+ {"DH", ERR_LIB_DH},
+#endif
+#ifdef ERR_LIB_DSA
+ {"DSA", ERR_LIB_DSA},
+#endif
+#ifdef ERR_LIB_DSO
+ {"DSO", ERR_LIB_DSO},
+#endif
+#ifdef ERR_LIB_EC
+ {"EC", ERR_LIB_EC},
+#endif
+#ifdef ERR_LIB_ECDH
+ {"ECDH", ERR_LIB_ECDH},
+#endif
+#ifdef ERR_LIB_ECDSA
+ {"ECDSA", ERR_LIB_ECDSA},
+#endif
+#ifdef ERR_LIB_ENGINE
+ {"ENGINE", ERR_LIB_ENGINE},
+#endif
+#ifdef ERR_LIB_EVP
+ {"EVP", ERR_LIB_EVP},
+#endif
+#ifdef ERR_LIB_FIPS
+ {"FIPS", ERR_LIB_FIPS},
+#endif
+#ifdef ERR_LIB_HMAC
+ {"HMAC", ERR_LIB_HMAC},
+#endif
+#ifdef ERR_LIB_JPAKE
+ {"JPAKE", ERR_LIB_JPAKE},
+#endif
+#ifdef ERR_LIB_KDF
+ {"KDF", ERR_LIB_KDF},
+#endif
+#ifdef ERR_LIB_METH
+ {"METH", ERR_LIB_METH},
+#endif
+#ifdef ERR_LIB_NONE
+ {"NONE", ERR_LIB_NONE},
+#endif
+#ifdef ERR_LIB_OBJ
+ {"OBJ", ERR_LIB_OBJ},
+#endif
+#ifdef ERR_LIB_OCSP
+ {"OCSP", ERR_LIB_OCSP},
+#endif
+#ifdef ERR_LIB_OSSL_STORE
+ {"OSSL_STORE", ERR_LIB_OSSL_STORE},
+#endif
+#ifdef ERR_LIB_PEM
+ {"PEM", ERR_LIB_PEM},
+#endif
+#ifdef ERR_LIB_PKCS12
+ {"PKCS12", ERR_LIB_PKCS12},
+#endif
+#ifdef ERR_LIB_PKCS7
+ {"PKCS7", ERR_LIB_PKCS7},
+#endif
+#ifdef ERR_LIB_PROXY
+ {"PROXY", ERR_LIB_PROXY},
+#endif
+#ifdef ERR_LIB_RAND
+ {"RAND", ERR_LIB_RAND},
+#endif
+#ifdef ERR_LIB_RSA
+ {"RSA", ERR_LIB_RSA},
+#endif
+#ifdef ERR_LIB_RSAREF
+ {"RSAREF", ERR_LIB_RSAREF},
+#endif
+#ifdef ERR_LIB_SM2
+ {"SM2", ERR_LIB_SM2},
+#endif
+#ifdef ERR_LIB_SSL
+ {"SSL", ERR_LIB_SSL},
+#endif
+#ifdef ERR_LIB_SSL2
+ {"SSL2", ERR_LIB_SSL2},
+#endif
+#ifdef ERR_LIB_SSL23
+ {"SSL23", ERR_LIB_SSL23},
+#endif
+#ifdef ERR_LIB_SSL3
+ {"SSL3", ERR_LIB_SSL3},
+#endif
+#ifdef ERR_LIB_SYS
+ {"SYS", ERR_LIB_SYS},
+#endif
+#ifdef ERR_LIB_TS
+ {"TS", ERR_LIB_TS},
+#endif
+#ifdef ERR_LIB_UI
+ {"UI", ERR_LIB_UI},
+#endif
+#ifdef ERR_LIB_USER
+ {"USER", ERR_LIB_USER},
+#endif
+#ifdef ERR_LIB_X509
+ {"X509", ERR_LIB_X509},
+#endif
+#ifdef ERR_LIB_X509V3
+ {"X509V3", ERR_LIB_X509V3},
+#endif
+ { NULL }
+};
+
+
+static struct py_ssl_error_code error_codes[] = {
+ #ifdef ASN1_R_ADDING_OBJECT
+ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT},
+ #else
+ {"ADDING_OBJECT", 13, 171},
+ #endif
+ #ifdef ASN1_R_ASN1_PARSE_ERROR
+ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR},
+ #else
+ {"ASN1_PARSE_ERROR", 13, 203},
+ #endif
+ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR
+ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR},
+ #else
+ {"ASN1_SIG_PARSE_ERROR", 13, 204},
+ #endif
+ #ifdef ASN1_R_AUX_ERROR
+ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR},
+ #else
+ {"AUX_ERROR", 13, 100},
+ #endif
+ #ifdef ASN1_R_BAD_OBJECT_HEADER
+ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER},
+ #else
+ {"BAD_OBJECT_HEADER", 13, 102},
+ #endif
+ #ifdef ASN1_R_BAD_TEMPLATE
+ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE},
+ #else
+ {"BAD_TEMPLATE", 13, 230},
+ #endif
+ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH
+ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH},
+ #else
+ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214},
+ #endif
+ #ifdef ASN1_R_BN_LIB
+ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB},
+ #else
+ {"BN_LIB", 13, 105},
+ #endif
+ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH
+ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH},
+ #else
+ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106},
+ #endif
+ #ifdef ASN1_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 13, 107},
+ #endif
+ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
+ #else
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108},
+ #endif
+ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED
+ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED},
+ #else
+ {"CONTEXT_NOT_INITIALISED", 13, 217},
+ #endif
+ #ifdef ASN1_R_DATA_IS_WRONG
+ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG},
+ #else
+ {"DATA_IS_WRONG", 13, 109},
+ #endif
+ #ifdef ASN1_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 13, 110},
+ #endif
+ #ifdef ASN1_R_DEPTH_EXCEEDED
+ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED},
+ #else
+ {"DEPTH_EXCEEDED", 13, 174},
+ #endif
+ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED
+ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED},
+ #else
+ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198},
+ #endif
+ #ifdef ASN1_R_ENCODE_ERROR
+ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR},
+ #else
+ {"ENCODE_ERROR", 13, 112},
+ #endif
+ #ifdef ASN1_R_ERROR_GETTING_TIME
+ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME},
+ #else
+ {"ERROR_GETTING_TIME", 13, 173},
+ #endif
+ #ifdef ASN1_R_ERROR_LOADING_SECTION
+ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION},
+ #else
+ {"ERROR_LOADING_SECTION", 13, 172},
+ #endif
+ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS
+ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS},
+ #else
+ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114},
+ #endif
+ #ifdef ASN1_R_EXPECTING_AN_INTEGER
+ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER},
+ #else
+ {"EXPECTING_AN_INTEGER", 13, 115},
+ #endif
+ #ifdef ASN1_R_EXPECTING_AN_OBJECT
+ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT},
+ #else
+ {"EXPECTING_AN_OBJECT", 13, 116},
+ #endif
+ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH
+ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH},
+ #else
+ {"EXPLICIT_LENGTH_MISMATCH", 13, 119},
+ #endif
+ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED
+ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED},
+ #else
+ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120},
+ #endif
+ #ifdef ASN1_R_FIELD_MISSING
+ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING},
+ #else
+ {"FIELD_MISSING", 13, 121},
+ #endif
+ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE
+ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE},
+ #else
+ {"FIRST_NUM_TOO_LARGE", 13, 122},
+ #endif
+ #ifdef ASN1_R_HEADER_TOO_LONG
+ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
+ #else
+ {"HEADER_TOO_LONG", 13, 123},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT
+ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT},
+ #else
+ {"ILLEGAL_BITSTRING_FORMAT", 13, 175},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_BOOLEAN
+ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN},
+ #else
+ {"ILLEGAL_BOOLEAN", 13, 176},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_CHARACTERS
+ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS},
+ #else
+ {"ILLEGAL_CHARACTERS", 13, 124},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_FORMAT
+ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT},
+ #else
+ {"ILLEGAL_FORMAT", 13, 177},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_HEX
+ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX},
+ #else
+ {"ILLEGAL_HEX", 13, 178},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG
+ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG},
+ #else
+ {"ILLEGAL_IMPLICIT_TAG", 13, 179},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_INTEGER
+ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER},
+ #else
+ {"ILLEGAL_INTEGER", 13, 180},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE
+ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE},
+ #else
+ {"ILLEGAL_NEGATIVE_VALUE", 13, 226},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING
+ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING},
+ #else
+ {"ILLEGAL_NESTED_TAGGING", 13, 181},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NULL
+ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL},
+ #else
+ {"ILLEGAL_NULL", 13, 125},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NULL_VALUE
+ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE},
+ #else
+ {"ILLEGAL_NULL_VALUE", 13, 182},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OBJECT
+ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT},
+ #else
+ {"ILLEGAL_OBJECT", 13, 183},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY
+ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY},
+ #else
+ {"ILLEGAL_OPTIONAL_ANY", 13, 126},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE
+ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE},
+ #else
+ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_PADDING
+ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING},
+ #else
+ {"ILLEGAL_PADDING", 13, 221},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY
+ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY},
+ #else
+ {"ILLEGAL_TAGGED_ANY", 13, 127},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_TIME_VALUE
+ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE},
+ #else
+ {"ILLEGAL_TIME_VALUE", 13, 184},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT
+ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT},
+ #else
+ {"ILLEGAL_ZERO_CONTENT", 13, 222},
+ #endif
+ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT
+ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT},
+ #else
+ {"INTEGER_NOT_ASCII_FORMAT", 13, 185},
+ #endif
+ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG
+ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG},
+ #else
+ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128},
+ #endif
+ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT
+ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT},
+ #else
+ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220},
+ #endif
+ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH
+ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH},
+ #else
+ {"INVALID_BMPSTRING_LENGTH", 13, 129},
+ #endif
+ #ifdef ASN1_R_INVALID_DIGIT
+ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT},
+ #else
+ {"INVALID_DIGIT", 13, 130},
+ #endif
+ #ifdef ASN1_R_INVALID_MIME_TYPE
+ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE},
+ #else
+ {"INVALID_MIME_TYPE", 13, 205},
+ #endif
+ #ifdef ASN1_R_INVALID_MODIFIER
+ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER},
+ #else
+ {"INVALID_MODIFIER", 13, 186},
+ #endif
+ #ifdef ASN1_R_INVALID_NUMBER
+ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER},
+ #else
+ {"INVALID_NUMBER", 13, 187},
+ #endif
+ #ifdef ASN1_R_INVALID_OBJECT_ENCODING
+ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING},
+ #else
+ {"INVALID_OBJECT_ENCODING", 13, 216},
+ #endif
+ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS
+ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS},
+ #else
+ {"INVALID_SCRYPT_PARAMETERS", 13, 227},
+ #endif
+ #ifdef ASN1_R_INVALID_SEPARATOR
+ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR},
+ #else
+ {"INVALID_SEPARATOR", 13, 131},
+ #endif
+ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE
+ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE},
+ #else
+ {"INVALID_STRING_TABLE_VALUE", 13, 218},
+ #endif
+ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH
+ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH},
+ #else
+ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133},
+ #endif
+ #ifdef ASN1_R_INVALID_UTF8STRING
+ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING},
+ #else
+ {"INVALID_UTF8STRING", 13, 134},
+ #endif
+ #ifdef ASN1_R_INVALID_VALUE
+ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE},
+ #else
+ {"INVALID_VALUE", 13, 219},
+ #endif
+ #ifdef ASN1_R_LIST_ERROR
+ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR},
+ #else
+ {"LIST_ERROR", 13, 188},
+ #endif
+ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE
+ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE},
+ #else
+ {"MIME_NO_CONTENT_TYPE", 13, 206},
+ #endif
+ #ifdef ASN1_R_MIME_PARSE_ERROR
+ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR},
+ #else
+ {"MIME_PARSE_ERROR", 13, 207},
+ #endif
+ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR
+ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR},
+ #else
+ {"MIME_SIG_PARSE_ERROR", 13, 208},
+ #endif
+ #ifdef ASN1_R_MISSING_EOC
+ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC},
+ #else
+ {"MISSING_EOC", 13, 137},
+ #endif
+ #ifdef ASN1_R_MISSING_SECOND_NUMBER
+ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER},
+ #else
+ {"MISSING_SECOND_NUMBER", 13, 138},
+ #endif
+ #ifdef ASN1_R_MISSING_VALUE
+ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE},
+ #else
+ {"MISSING_VALUE", 13, 189},
+ #endif
+ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL
+ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL},
+ #else
+ {"MSTRING_NOT_UNIVERSAL", 13, 139},
+ #endif
+ #ifdef ASN1_R_MSTRING_WRONG_TAG
+ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG},
+ #else
+ {"MSTRING_WRONG_TAG", 13, 140},
+ #endif
+ #ifdef ASN1_R_NESTED_ASN1_STRING
+ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING},
+ #else
+ {"NESTED_ASN1_STRING", 13, 197},
+ #endif
+ #ifdef ASN1_R_NESTED_TOO_DEEP
+ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP},
+ #else
+ {"NESTED_TOO_DEEP", 13, 201},
+ #endif
+ #ifdef ASN1_R_NON_HEX_CHARACTERS
+ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS},
+ #else
+ {"NON_HEX_CHARACTERS", 13, 141},
+ #endif
+ #ifdef ASN1_R_NOT_ASCII_FORMAT
+ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT},
+ #else
+ {"NOT_ASCII_FORMAT", 13, 190},
+ #endif
+ #ifdef ASN1_R_NOT_ENOUGH_DATA
+ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA},
+ #else
+ {"NOT_ENOUGH_DATA", 13, 142},
+ #endif
+ #ifdef ASN1_R_NO_CONTENT_TYPE
+ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE},
+ #else
+ {"NO_CONTENT_TYPE", 13, 209},
+ #endif
+ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE
+ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE},
+ #else
+ {"NO_MATCHING_CHOICE_TYPE", 13, 143},
+ #endif
+ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE
+ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE},
+ #else
+ {"NO_MULTIPART_BODY_FAILURE", 13, 210},
+ #endif
+ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY
+ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY},
+ #else
+ {"NO_MULTIPART_BOUNDARY", 13, 211},
+ #endif
+ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE
+ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE},
+ #else
+ {"NO_SIG_CONTENT_TYPE", 13, 212},
+ #endif
+ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH
+ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH},
+ #else
+ {"NULL_IS_WRONG_LENGTH", 13, 144},
+ #endif
+ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT
+ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT},
+ #else
+ {"OBJECT_NOT_ASCII_FORMAT", 13, 191},
+ #endif
+ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS
+ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS},
+ #else
+ {"ODD_NUMBER_OF_CHARS", 13, 145},
+ #endif
+ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE
+ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE},
+ #else
+ {"SECOND_NUMBER_TOO_LARGE", 13, 147},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH
+ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH},
+ #else
+ {"SEQUENCE_LENGTH_MISMATCH", 13, 148},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED
+ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED},
+ #else
+ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG
+ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG},
+ #else
+ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192},
+ #endif
+ #ifdef ASN1_R_SHORT_LINE
+ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE},
+ #else
+ {"SHORT_LINE", 13, 150},
+ #endif
+ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE
+ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE},
+ #else
+ {"SIG_INVALID_MIME_TYPE", 13, 213},
+ #endif
+ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED
+ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED},
+ #else
+ {"STREAMING_NOT_SUPPORTED", 13, 202},
+ #endif
+ #ifdef ASN1_R_STRING_TOO_LONG
+ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG},
+ #else
+ {"STRING_TOO_LONG", 13, 151},
+ #endif
+ #ifdef ASN1_R_STRING_TOO_SHORT
+ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT},
+ #else
+ {"STRING_TOO_SHORT", 13, 152},
+ #endif
+ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
+ #else
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154},
+ #endif
+ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT
+ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT},
+ #else
+ {"TIME_NOT_ASCII_FORMAT", 13, 193},
+ #endif
+ #ifdef ASN1_R_TOO_LARGE
+ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE},
+ #else
+ {"TOO_LARGE", 13, 223},
+ #endif
+ #ifdef ASN1_R_TOO_LONG
+ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG},
+ #else
+ {"TOO_LONG", 13, 155},
+ #endif
+ #ifdef ASN1_R_TOO_SMALL
+ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL},
+ #else
+ {"TOO_SMALL", 13, 224},
+ #endif
+ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED
+ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED},
+ #else
+ {"TYPE_NOT_CONSTRUCTED", 13, 156},
+ #endif
+ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE
+ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE},
+ #else
+ {"TYPE_NOT_PRIMITIVE", 13, 195},
+ #endif
+ #ifdef ASN1_R_UNEXPECTED_EOC
+ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC},
+ #else
+ {"UNEXPECTED_EOC", 13, 159},
+ #endif
+ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH
+ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH},
+ #else
+ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_FORMAT
+ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT},
+ #else
+ {"UNKNOWN_FORMAT", 13, 160},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM
+ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE
+ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE},
+ #else
+ {"UNKNOWN_OBJECT_TYPE", 13, 162},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE
+ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE},
+ #else
+ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM
+ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM},
+ #else
+ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_TAG
+ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG},
+ #else
+ {"UNKNOWN_TAG", 13, 194},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE
+ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE},
+ #else
+ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 13, 228},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
+ #else
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 13, 196},
+ #endif
+ #ifdef ASN1_R_WRONG_INTEGER_TYPE
+ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
+ #else
+ {"WRONG_INTEGER_TYPE", 13, 225},
+ #endif
+ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE
+ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE},
+ #else
+ {"WRONG_PUBLIC_KEY_TYPE", 13, 200},
+ #endif
+ #ifdef ASN1_R_WRONG_TAG
+ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG},
+ #else
+ {"WRONG_TAG", 13, 168},
+ #endif
+ #ifdef ASYNC_R_FAILED_TO_SET_POOL
+ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL},
+ #else
+ {"FAILED_TO_SET_POOL", 51, 101},
+ #endif
+ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT
+ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT},
+ #else
+ {"FAILED_TO_SWAP_CONTEXT", 51, 102},
+ #endif
+ #ifdef ASYNC_R_INIT_FAILED
+ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED},
+ #else
+ {"INIT_FAILED", 51, 105},
+ #endif
+ #ifdef ASYNC_R_INVALID_POOL_SIZE
+ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE},
+ #else
+ {"INVALID_POOL_SIZE", 51, 103},
+ #endif
+ #ifdef BIO_R_ACCEPT_ERROR
+ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR},
+ #else
+ {"ACCEPT_ERROR", 32, 100},
+ #endif
+ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET
+ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET},
+ #else
+ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141},
+ #endif
+ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE
+ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE},
+ #else
+ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129},
+ #endif
+ #ifdef BIO_R_BAD_FOPEN_MODE
+ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE},
+ #else
+ {"BAD_FOPEN_MODE", 32, 101},
+ #endif
+ #ifdef BIO_R_BROKEN_PIPE
+ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE},
+ #else
+ {"BROKEN_PIPE", 32, 124},
+ #endif
+ #ifdef BIO_R_CONNECT_ERROR
+ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR},
+ #else
+ {"CONNECT_ERROR", 32, 103},
+ #endif
+ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET
+ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET},
+ #else
+ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107},
+ #endif
+ #ifdef BIO_R_GETSOCKNAME_ERROR
+ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR},
+ #else
+ {"GETSOCKNAME_ERROR", 32, 132},
+ #endif
+ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS
+ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS},
+ #else
+ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133},
+ #endif
+ #ifdef BIO_R_GETTING_SOCKTYPE
+ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE},
+ #else
+ {"GETTING_SOCKTYPE", 32, 134},
+ #endif
+ #ifdef BIO_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 32, 125},
+ #endif
+ #ifdef BIO_R_INVALID_SOCKET
+ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET},
+ #else
+ {"INVALID_SOCKET", 32, 135},
+ #endif
+ #ifdef BIO_R_IN_USE
+ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE},
+ #else
+ {"IN_USE", 32, 123},
+ #endif
+ #ifdef BIO_R_LENGTH_TOO_LONG
+ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG},
+ #else
+ {"LENGTH_TOO_LONG", 32, 102},
+ #endif
+ #ifdef BIO_R_LISTEN_V6_ONLY
+ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY},
+ #else
+ {"LISTEN_V6_ONLY", 32, 136},
+ #endif
+ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
+ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
+ #else
+ {"LOOKUP_RETURNED_NOTHING", 32, 142},
+ #endif
+ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE
+ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE},
+ #else
+ {"MALFORMED_HOST_OR_SERVICE", 32, 130},
+ #endif
+ #ifdef BIO_R_NBIO_CONNECT_ERROR
+ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR},
+ #else
+ {"NBIO_CONNECT_ERROR", 32, 110},
+ #endif
+ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
+ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
+ #else
+ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143},
+ #endif
+ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED
+ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED},
+ #else
+ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144},
+ #endif
+ #ifdef BIO_R_NO_PORT_DEFINED
+ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED},
+ #else
+ {"NO_PORT_DEFINED", 32, 113},
+ #endif
+ #ifdef BIO_R_NO_SUCH_FILE
+ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE},
+ #else
+ {"NO_SUCH_FILE", 32, 128},
+ #endif
+ #ifdef BIO_R_NULL_PARAMETER
+ {"NULL_PARAMETER", ERR_LIB_BIO, BIO_R_NULL_PARAMETER},
+ #else
+ {"NULL_PARAMETER", 32, 115},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET
+ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET},
+ #else
+ {"UNABLE_TO_BIND_SOCKET", 32, 117},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET
+ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET},
+ #else
+ {"UNABLE_TO_CREATE_SOCKET", 32, 118},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_KEEPALIVE
+ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE},
+ #else
+ {"UNABLE_TO_KEEPALIVE", 32, 137},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET
+ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET},
+ #else
+ {"UNABLE_TO_LISTEN_SOCKET", 32, 119},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_NODELAY
+ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY},
+ #else
+ {"UNABLE_TO_NODELAY", 32, 138},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_REUSEADDR
+ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR},
+ #else
+ {"UNABLE_TO_REUSEADDR", 32, 139},
+ #endif
+ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
+ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
+ #else
+ {"UNAVAILABLE_IP_FAMILY", 32, 145},
+ #endif
+ #ifdef BIO_R_UNINITIALIZED
+ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED},
+ #else
+ {"UNINITIALIZED", 32, 120},
+ #endif
+ #ifdef BIO_R_UNKNOWN_INFO_TYPE
+ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE},
+ #else
+ {"UNKNOWN_INFO_TYPE", 32, 140},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY
+ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY},
+ #else
+ {"UNSUPPORTED_IP_FAMILY", 32, 146},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_METHOD
+ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD},
+ #else
+ {"UNSUPPORTED_METHOD", 32, 121},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY
+ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY},
+ #else
+ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131},
+ #endif
+ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO
+ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO},
+ #else
+ {"WRITE_TO_READ_ONLY_BIO", 32, 126},
+ #endif
+ #ifdef BIO_R_WSASTARTUP
+ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP},
+ #else
+ {"WSASTARTUP", 32, 122},
+ #endif
+ #ifdef BN_R_ARG2_LT_ARG3
+ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3},
+ #else
+ {"ARG2_LT_ARG3", 3, 100},
+ #endif
+ #ifdef BN_R_BAD_RECIPROCAL
+ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL},
+ #else
+ {"BAD_RECIPROCAL", 3, 101},
+ #endif
+ #ifdef BN_R_BIGNUM_TOO_LONG
+ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG},
+ #else
+ {"BIGNUM_TOO_LONG", 3, 114},
+ #endif
+ #ifdef BN_R_BITS_TOO_SMALL
+ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL},
+ #else
+ {"BITS_TOO_SMALL", 3, 118},
+ #endif
+ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS
+ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS},
+ #else
+ {"CALLED_WITH_EVEN_MODULUS", 3, 102},
+ #endif
+ #ifdef BN_R_DIV_BY_ZERO
+ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO},
+ #else
+ {"DIV_BY_ZERO", 3, 103},
+ #endif
+ #ifdef BN_R_ENCODING_ERROR
+ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR},
+ #else
+ {"ENCODING_ERROR", 3, 104},
+ #endif
+ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA
+ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA},
+ #else
+ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105},
+ #endif
+ #ifdef BN_R_INPUT_NOT_REDUCED
+ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED},
+ #else
+ {"INPUT_NOT_REDUCED", 3, 110},
+ #endif
+ #ifdef BN_R_INVALID_LENGTH
+ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH},
+ #else
+ {"INVALID_LENGTH", 3, 106},
+ #endif
+ #ifdef BN_R_INVALID_RANGE
+ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE},
+ #else
+ {"INVALID_RANGE", 3, 115},
+ #endif
+ #ifdef BN_R_INVALID_SHIFT
+ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT},
+ #else
+ {"INVALID_SHIFT", 3, 119},
+ #endif
+ #ifdef BN_R_NOT_A_SQUARE
+ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE},
+ #else
+ {"NOT_A_SQUARE", 3, 111},
+ #endif
+ #ifdef BN_R_NOT_INITIALIZED
+ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED},
+ #else
+ {"NOT_INITIALIZED", 3, 107},
+ #endif
+ #ifdef BN_R_NO_INVERSE
+ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE},
+ #else
+ {"NO_INVERSE", 3, 108},
+ #endif
+ #ifdef BN_R_NO_SOLUTION
+ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION},
+ #else
+ {"NO_SOLUTION", 3, 116},
+ #endif
+ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE
+ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE},
+ #else
+ {"PRIVATE_KEY_TOO_LARGE", 3, 117},
+ #endif
+ #ifdef BN_R_P_IS_NOT_PRIME
+ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME},
+ #else
+ {"P_IS_NOT_PRIME", 3, 112},
+ #endif
+ #ifdef BN_R_TOO_MANY_ITERATIONS
+ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS},
+ #else
+ {"TOO_MANY_ITERATIONS", 3, 113},
+ #endif
+ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES
+ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES},
+ #else
+ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109},
+ #endif
+ #ifdef CMS_R_ADD_SIGNER_ERROR
+ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR},
+ #else
+ {"ADD_SIGNER_ERROR", 46, 99},
+ #endif
+ #ifdef CMS_R_ATTRIBUTE_ERROR
+ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR},
+ #else
+ {"ATTRIBUTE_ERROR", 46, 161},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT
+ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT},
+ #else
+ {"CERTIFICATE_ALREADY_PRESENT", 46, 175},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID
+ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID},
+ #else
+ {"CERTIFICATE_HAS_NO_KEYID", 46, 160},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 46, 100},
+ #endif
+ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR
+ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR},
+ #else
+ {"CIPHER_INITIALISATION_ERROR", 46, 101},
+ #endif
+ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR
+ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR},
+ #else
+ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102},
+ #endif
+ #ifdef CMS_R_CMS_DATAFINAL_ERROR
+ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR},
+ #else
+ {"CMS_DATAFINAL_ERROR", 46, 103},
+ #endif
+ #ifdef CMS_R_CMS_LIB
+ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB},
+ #else
+ {"CMS_LIB", 46, 104},
+ #endif
+ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH
+ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH},
+ #else
+ {"CONTENTIDENTIFIER_MISMATCH", 46, 170},
+ #endif
+ #ifdef CMS_R_CONTENT_NOT_FOUND
+ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND},
+ #else
+ {"CONTENT_NOT_FOUND", 46, 105},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_MISMATCH
+ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH},
+ #else
+ {"CONTENT_TYPE_MISMATCH", 46, 171},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA
+ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA
+ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA
+ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108},
+ #endif
+ #ifdef CMS_R_CONTENT_VERIFY_ERROR
+ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR},
+ #else
+ {"CONTENT_VERIFY_ERROR", 46, 109},
+ #endif
+ #ifdef CMS_R_CTRL_ERROR
+ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR},
+ #else
+ {"CTRL_ERROR", 46, 110},
+ #endif
+ #ifdef CMS_R_CTRL_FAILURE
+ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE},
+ #else
+ {"CTRL_FAILURE", 46, 111},
+ #endif
+ #ifdef CMS_R_DECRYPT_ERROR
+ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR},
+ #else
+ {"DECRYPT_ERROR", 46, 112},
+ #endif
+ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY
+ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY},
+ #else
+ {"ERROR_GETTING_PUBLIC_KEY", 46, 113},
+ #endif
+ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE
+ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE},
+ #else
+ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114},
+ #endif
+ #ifdef CMS_R_ERROR_SETTING_KEY
+ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY},
+ #else
+ {"ERROR_SETTING_KEY", 46, 115},
+ #endif
+ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO
+ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO},
+ #else
+ {"ERROR_SETTING_RECIPIENTINFO", 46, 116},
+ #endif
+ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH
+ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH},
+ #else
+ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117},
+ #endif
+ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER
+ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER},
+ #else
+ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176},
+ #endif
+ #ifdef CMS_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 46, 118},
+ #endif
+ #ifdef CMS_R_MD_BIO_INIT_ERROR
+ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR},
+ #else
+ {"MD_BIO_INIT_ERROR", 46, 119},
+ #endif
+ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH
+ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH},
+ #else
+ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120},
+ #endif
+ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH
+ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH},
+ #else
+ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_ERROR
+ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR},
+ #else
+ {"MSGSIGDIGEST_ERROR", 46, 172},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE
+ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE},
+ #else
+ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH
+ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH},
+ #else
+ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163},
+ #endif
+ #ifdef CMS_R_NEED_ONE_SIGNER
+ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER},
+ #else
+ {"NEED_ONE_SIGNER", 46, 164},
+ #endif
+ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT
+ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT},
+ #else
+ {"NOT_A_SIGNED_RECEIPT", 46, 165},
+ #endif
+ #ifdef CMS_R_NOT_ENCRYPTED_DATA
+ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA},
+ #else
+ {"NOT_ENCRYPTED_DATA", 46, 122},
+ #endif
+ #ifdef CMS_R_NOT_KEK
+ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK},
+ #else
+ {"NOT_KEK", 46, 123},
+ #endif
+ #ifdef CMS_R_NOT_KEY_AGREEMENT
+ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT},
+ #else
+ {"NOT_KEY_AGREEMENT", 46, 181},
+ #endif
+ #ifdef CMS_R_NOT_KEY_TRANSPORT
+ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT},
+ #else
+ {"NOT_KEY_TRANSPORT", 46, 124},
+ #endif
+ #ifdef CMS_R_NOT_PWRI
+ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI},
+ #else
+ {"NOT_PWRI", 46, 177},
+ #endif
+ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125},
+ #endif
+ #ifdef CMS_R_NO_CIPHER
+ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER},
+ #else
+ {"NO_CIPHER", 46, 126},
+ #endif
+ #ifdef CMS_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 46, 127},
+ #endif
+ #ifdef CMS_R_NO_CONTENT_TYPE
+ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE},
+ #else
+ {"NO_CONTENT_TYPE", 46, 173},
+ #endif
+ #ifdef CMS_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 46, 128},
+ #endif
+ #ifdef CMS_R_NO_DIGEST_SET
+ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET},
+ #else
+ {"NO_DIGEST_SET", 46, 129},
+ #endif
+ #ifdef CMS_R_NO_KEY
+ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY},
+ #else
+ {"NO_KEY", 46, 130},
+ #endif
+ #ifdef CMS_R_NO_KEY_OR_CERT
+ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT},
+ #else
+ {"NO_KEY_OR_CERT", 46, 174},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_DIGEST
+ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST},
+ #else
+ {"NO_MATCHING_DIGEST", 46, 131},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_RECIPIENT
+ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT},
+ #else
+ {"NO_MATCHING_RECIPIENT", 46, 132},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_SIGNATURE
+ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE},
+ #else
+ {"NO_MATCHING_SIGNATURE", 46, 166},
+ #endif
+ #ifdef CMS_R_NO_MSGSIGDIGEST
+ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST},
+ #else
+ {"NO_MSGSIGDIGEST", 46, 167},
+ #endif
+ #ifdef CMS_R_NO_PASSWORD
+ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD},
+ #else
+ {"NO_PASSWORD", 46, 178},
+ #endif
+ #ifdef CMS_R_NO_PRIVATE_KEY
+ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY},
+ #else
+ {"NO_PRIVATE_KEY", 46, 133},
+ #endif
+ #ifdef CMS_R_NO_PUBLIC_KEY
+ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY},
+ #else
+ {"NO_PUBLIC_KEY", 46, 134},
+ #endif
+ #ifdef CMS_R_NO_RECEIPT_REQUEST
+ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST},
+ #else
+ {"NO_RECEIPT_REQUEST", 46, 168},
+ #endif
+ #ifdef CMS_R_NO_SIGNERS
+ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS},
+ #else
+ {"NO_SIGNERS", 46, 135},
+ #endif
+ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136},
+ #endif
+ #ifdef CMS_R_RECEIPT_DECODE_ERROR
+ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR},
+ #else
+ {"RECEIPT_DECODE_ERROR", 46, 169},
+ #endif
+ #ifdef CMS_R_RECIPIENT_ERROR
+ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR},
+ #else
+ {"RECIPIENT_ERROR", 46, 137},
+ #endif
+ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138},
+ #endif
+ #ifdef CMS_R_SIGNFINAL_ERROR
+ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR},
+ #else
+ {"SIGNFINAL_ERROR", 46, 139},
+ #endif
+ #ifdef CMS_R_SMIME_TEXT_ERROR
+ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR},
+ #else
+ {"SMIME_TEXT_ERROR", 46, 140},
+ #endif
+ #ifdef CMS_R_STORE_INIT_ERROR
+ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR},
+ #else
+ {"STORE_INIT_ERROR", 46, 141},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA
+ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA},
+ #else
+ {"TYPE_NOT_COMPRESSED_DATA", 46, 142},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_DATA
+ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA},
+ #else
+ {"TYPE_NOT_DATA", 46, 143},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA
+ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA},
+ #else
+ {"TYPE_NOT_DIGESTED_DATA", 46, 144},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA
+ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA},
+ #else
+ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA
+ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA},
+ #else
+ {"TYPE_NOT_ENVELOPED_DATA", 46, 146},
+ #endif
+ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT
+ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT},
+ #else
+ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147},
+ #endif
+ #ifdef CMS_R_UNKNOWN_CIPHER
+ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER},
+ #else
+ {"UNKNOWN_CIPHER", 46, 148},
+ #endif
+ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM
+ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149},
+ #endif
+ #ifdef CMS_R_UNKNOWN_ID
+ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID},
+ #else
+ {"UNKNOWN_ID", 46, 150},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 46, 152},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM
+ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM},
+ #else
+ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM
+ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
+ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE},
+ #else
+ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE
+ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE},
+ #else
+ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 46, 156},
+ #endif
+ #ifdef CMS_R_UNWRAP_ERROR
+ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR},
+ #else
+ {"UNWRAP_ERROR", 46, 157},
+ #endif
+ #ifdef CMS_R_UNWRAP_FAILURE
+ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE},
+ #else
+ {"UNWRAP_FAILURE", 46, 180},
+ #endif
+ #ifdef CMS_R_VERIFICATION_FAILURE
+ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE},
+ #else
+ {"VERIFICATION_FAILURE", 46, 158},
+ #endif
+ #ifdef CMS_R_WRAP_ERROR
+ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR},
+ #else
+ {"WRAP_ERROR", 46, 159},
+ #endif
+ #ifdef COMP_R_ZLIB_DEFLATE_ERROR
+ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
+ #else
+ {"ZLIB_DEFLATE_ERROR", 41, 99},
+ #endif
+ #ifdef COMP_R_ZLIB_INFLATE_ERROR
+ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR},
+ #else
+ {"ZLIB_INFLATE_ERROR", 41, 100},
+ #endif
+ #ifdef COMP_R_ZLIB_NOT_SUPPORTED
+ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED},
+ #else
+ {"ZLIB_NOT_SUPPORTED", 41, 101},
+ #endif
+ #ifdef CONF_R_ERROR_LOADING_DSO
+ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
+ #else
+ {"ERROR_LOADING_DSO", 14, 110},
+ #endif
+ #ifdef CONF_R_LIST_CANNOT_BE_NULL
+ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL},
+ #else
+ {"LIST_CANNOT_BE_NULL", 14, 115},
+ #endif
+ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET
+ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET},
+ #else
+ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100},
+ #endif
+ #ifdef CONF_R_MISSING_EQUAL_SIGN
+ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN},
+ #else
+ {"MISSING_EQUAL_SIGN", 14, 101},
+ #endif
+ #ifdef CONF_R_MISSING_INIT_FUNCTION
+ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION},
+ #else
+ {"MISSING_INIT_FUNCTION", 14, 112},
+ #endif
+ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR
+ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR},
+ #else
+ {"MODULE_INITIALIZATION_ERROR", 14, 109},
+ #endif
+ #ifdef CONF_R_NO_CLOSE_BRACE
+ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE},
+ #else
+ {"NO_CLOSE_BRACE", 14, 102},
+ #endif
+ #ifdef CONF_R_NO_CONF
+ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF},
+ #else
+ {"NO_CONF", 14, 105},
+ #endif
+ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE
+ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE},
+ #else
+ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106},
+ #endif
+ #ifdef CONF_R_NO_SECTION
+ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION},
+ #else
+ {"NO_SECTION", 14, 107},
+ #endif
+ #ifdef CONF_R_NO_SUCH_FILE
+ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE},
+ #else
+ {"NO_SUCH_FILE", 14, 114},
+ #endif
+ #ifdef CONF_R_NO_VALUE
+ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE},
+ #else
+ {"NO_VALUE", 14, 108},
+ #endif
+ #ifdef CONF_R_NUMBER_TOO_LARGE
+ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE},
+ #else
+ {"NUMBER_TOO_LARGE", 14, 121},
+ #endif
+ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE
+ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE},
+ #else
+ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
+ #endif
+ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY
+ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY},
+ #else
+ {"SSL_COMMAND_SECTION_EMPTY", 14, 117},
+ #endif
+ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND
+ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND},
+ #else
+ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118},
+ #endif
+ #ifdef CONF_R_SSL_SECTION_EMPTY
+ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY},
+ #else
+ {"SSL_SECTION_EMPTY", 14, 119},
+ #endif
+ #ifdef CONF_R_SSL_SECTION_NOT_FOUND
+ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND},
+ #else
+ {"SSL_SECTION_NOT_FOUND", 14, 120},
+ #endif
+ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION
+ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION},
+ #else
+ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103},
+ #endif
+ #ifdef CONF_R_UNKNOWN_MODULE_NAME
+ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME},
+ #else
+ {"UNKNOWN_MODULE_NAME", 14, 113},
+ #endif
+ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG
+ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG},
+ #else
+ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116},
+ #endif
+ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE
+ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE},
+ #else
+ {"VARIABLE_HAS_NO_VALUE", 14, 104},
+ #endif
+ #ifdef CRYPTO_R_FIPS_MODE_NOT_SUPPORTED
+ {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_FIPS_MODE_NOT_SUPPORTED},
+ #else
+ {"FIPS_MODE_NOT_SUPPORTED", 15, 101},
+ #endif
+ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT
+ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT},
+ #else
+ {"ILLEGAL_HEX_DIGIT", 15, 102},
+ #endif
+ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS
+ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS},
+ #else
+ {"ODD_NUMBER_OF_DIGITS", 15, 103},
+ #endif
+ #ifdef CT_R_BASE64_DECODE_ERROR
+ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR},
+ #else
+ {"BASE64_DECODE_ERROR", 50, 108},
+ #endif
+ #ifdef CT_R_INVALID_LOG_ID_LENGTH
+ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH},
+ #else
+ {"INVALID_LOG_ID_LENGTH", 50, 100},
+ #endif
+ #ifdef CT_R_LOG_CONF_INVALID
+ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID},
+ #else
+ {"LOG_CONF_INVALID", 50, 109},
+ #endif
+ #ifdef CT_R_LOG_CONF_INVALID_KEY
+ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY},
+ #else
+ {"LOG_CONF_INVALID_KEY", 50, 110},
+ #endif
+ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION
+ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION},
+ #else
+ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111},
+ #endif
+ #ifdef CT_R_LOG_CONF_MISSING_KEY
+ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY},
+ #else
+ {"LOG_CONF_MISSING_KEY", 50, 112},
+ #endif
+ #ifdef CT_R_LOG_KEY_INVALID
+ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID},
+ #else
+ {"LOG_KEY_INVALID", 50, 113},
+ #endif
+ #ifdef CT_R_SCT_FUTURE_TIMESTAMP
+ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP},
+ #else
+ {"SCT_FUTURE_TIMESTAMP", 50, 116},
+ #endif
+ #ifdef CT_R_SCT_INVALID
+ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID},
+ #else
+ {"SCT_INVALID", 50, 104},
+ #endif
+ #ifdef CT_R_SCT_INVALID_SIGNATURE
+ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE},
+ #else
+ {"SCT_INVALID_SIGNATURE", 50, 107},
+ #endif
+ #ifdef CT_R_SCT_LIST_INVALID
+ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID},
+ #else
+ {"SCT_LIST_INVALID", 50, 105},
+ #endif
+ #ifdef CT_R_SCT_LOG_ID_MISMATCH
+ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH},
+ #else
+ {"SCT_LOG_ID_MISMATCH", 50, 114},
+ #endif
+ #ifdef CT_R_SCT_NOT_SET
+ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET},
+ #else
+ {"SCT_NOT_SET", 50, 106},
+ #endif
+ #ifdef CT_R_SCT_UNSUPPORTED_VERSION
+ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION},
+ #else
+ {"SCT_UNSUPPORTED_VERSION", 50, 115},
+ #endif
+ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID
+ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID},
+ #else
+ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101},
+ #endif
+ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE
+ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE},
+ #else
+ {"UNSUPPORTED_ENTRY_TYPE", 50, 102},
+ #endif
+ #ifdef CT_R_UNSUPPORTED_VERSION
+ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION},
+ #else
+ {"UNSUPPORTED_VERSION", 50, 103},
+ #endif
+ #ifdef DH_R_BAD_GENERATOR
+ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR},
+ #else
+ {"BAD_GENERATOR", 5, 101},
+ #endif
+ #ifdef DH_R_BN_DECODE_ERROR
+ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR},
+ #else
+ {"BN_DECODE_ERROR", 5, 109},
+ #endif
+ #ifdef DH_R_BN_ERROR
+ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR},
+ #else
+ {"BN_ERROR", 5, 106},
+ #endif
+ #ifdef DH_R_CHECK_INVALID_J_VALUE
+ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE},
+ #else
+ {"CHECK_INVALID_J_VALUE", 5, 115},
+ #endif
+ #ifdef DH_R_CHECK_INVALID_Q_VALUE
+ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE},
+ #else
+ {"CHECK_INVALID_Q_VALUE", 5, 116},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_INVALID
+ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID},
+ #else
+ {"CHECK_PUBKEY_INVALID", 5, 122},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE
+ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE},
+ #else
+ {"CHECK_PUBKEY_TOO_LARGE", 5, 123},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL
+ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL},
+ #else
+ {"CHECK_PUBKEY_TOO_SMALL", 5, 124},
+ #endif
+ #ifdef DH_R_CHECK_P_NOT_PRIME
+ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME},
+ #else
+ {"CHECK_P_NOT_PRIME", 5, 117},
+ #endif
+ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME
+ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME},
+ #else
+ {"CHECK_P_NOT_SAFE_PRIME", 5, 118},
+ #endif
+ #ifdef DH_R_CHECK_Q_NOT_PRIME
+ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME},
+ #else
+ {"CHECK_Q_NOT_PRIME", 5, 119},
+ #endif
+ #ifdef DH_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 5, 104},
+ #endif
+ #ifdef DH_R_INVALID_PARAMETER_NAME
+ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME},
+ #else
+ {"INVALID_PARAMETER_NAME", 5, 110},
+ #endif
+ #ifdef DH_R_INVALID_PARAMETER_NID
+ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID},
+ #else
+ {"INVALID_PARAMETER_NID", 5, 114},
+ #endif
+ #ifdef DH_R_INVALID_PUBKEY
+ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY},
+ #else
+ {"INVALID_PUBKEY", 5, 102},
+ #endif
+ #ifdef DH_R_KDF_PARAMETER_ERROR
+ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
+ #else
+ {"KDF_PARAMETER_ERROR", 5, 112},
+ #endif
+ #ifdef DH_R_KEYS_NOT_SET
+ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET},
+ #else
+ {"KEYS_NOT_SET", 5, 108},
+ #endif
+ #ifdef DH_R_MISSING_PUBKEY
+ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY},
+ #else
+ {"MISSING_PUBKEY", 5, 125},
+ #endif
+ #ifdef DH_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 5, 103},
+ #endif
+ #ifdef DH_R_NOT_SUITABLE_GENERATOR
+ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR},
+ #else
+ {"NOT_SUITABLE_GENERATOR", 5, 120},
+ #endif
+ #ifdef DH_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 5, 107},
+ #endif
+ #ifdef DH_R_NO_PRIVATE_VALUE
+ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE},
+ #else
+ {"NO_PRIVATE_VALUE", 5, 100},
+ #endif
+ #ifdef DH_R_PARAMETER_ENCODING_ERROR
+ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR},
+ #else
+ {"PARAMETER_ENCODING_ERROR", 5, 105},
+ #endif
+ #ifdef DH_R_PEER_KEY_ERROR
+ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR},
+ #else
+ {"PEER_KEY_ERROR", 5, 111},
+ #endif
+ #ifdef DH_R_SHARED_INFO_ERROR
+ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
+ #else
+ {"SHARED_INFO_ERROR", 5, 113},
+ #endif
+ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR
+ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR},
+ #else
+ {"UNABLE_TO_CHECK_GENERATOR", 5, 121},
+ #endif
+ #ifdef DSA_R_BAD_Q_VALUE
+ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE},
+ #else
+ {"BAD_Q_VALUE", 10, 102},
+ #endif
+ #ifdef DSA_R_BN_DECODE_ERROR
+ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR},
+ #else
+ {"BN_DECODE_ERROR", 10, 108},
+ #endif
+ #ifdef DSA_R_BN_ERROR
+ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR},
+ #else
+ {"BN_ERROR", 10, 109},
+ #endif
+ #ifdef DSA_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 10, 104},
+ #endif
+ #ifdef DSA_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 10, 106},
+ #endif
+ #ifdef DSA_R_INVALID_PARAMETERS
+ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS},
+ #else
+ {"INVALID_PARAMETERS", 10, 112},
+ #endif
+ #ifdef DSA_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 10, 101},
+ #endif
+ #ifdef DSA_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 10, 111},
+ #endif
+ #ifdef DSA_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 10, 103},
+ #endif
+ #ifdef DSA_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 10, 107},
+ #endif
+ #ifdef DSA_R_PARAMETER_ENCODING_ERROR
+ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR},
+ #else
+ {"PARAMETER_ENCODING_ERROR", 10, 105},
+ #endif
+ #ifdef DSA_R_Q_NOT_PRIME
+ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME},
+ #else
+ {"Q_NOT_PRIME", 10, 113},
+ #endif
+ #ifdef DSA_R_SEED_LEN_SMALL
+ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL},
+ #else
+ {"SEED_LEN_SMALL", 10, 110},
+ #endif
+ #ifdef DSO_R_CTRL_FAILED
+ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED},
+ #else
+ {"CTRL_FAILED", 37, 100},
+ #endif
+ #ifdef DSO_R_DSO_ALREADY_LOADED
+ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED},
+ #else
+ {"DSO_ALREADY_LOADED", 37, 110},
+ #endif
+ #ifdef DSO_R_EMPTY_FILE_STRUCTURE
+ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE},
+ #else
+ {"EMPTY_FILE_STRUCTURE", 37, 113},
+ #endif
+ #ifdef DSO_R_FAILURE
+ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE},
+ #else
+ {"FAILURE", 37, 114},
+ #endif
+ #ifdef DSO_R_FILENAME_TOO_BIG
+ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG},
+ #else
+ {"FILENAME_TOO_BIG", 37, 101},
+ #endif
+ #ifdef DSO_R_FINISH_FAILED
+ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED},
+ #else
+ {"FINISH_FAILED", 37, 102},
+ #endif
+ #ifdef DSO_R_INCORRECT_FILE_SYNTAX
+ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX},
+ #else
+ {"INCORRECT_FILE_SYNTAX", 37, 115},
+ #endif
+ #ifdef DSO_R_LOAD_FAILED
+ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED},
+ #else
+ {"LOAD_FAILED", 37, 103},
+ #endif
+ #ifdef DSO_R_NAME_TRANSLATION_FAILED
+ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED},
+ #else
+ {"NAME_TRANSLATION_FAILED", 37, 109},
+ #endif
+ #ifdef DSO_R_NO_FILENAME
+ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME},
+ #else
+ {"NO_FILENAME", 37, 111},
+ #endif
+ #ifdef DSO_R_NULL_HANDLE
+ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE},
+ #else
+ {"NULL_HANDLE", 37, 104},
+ #endif
+ #ifdef DSO_R_SET_FILENAME_FAILED
+ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED},
+ #else
+ {"SET_FILENAME_FAILED", 37, 112},
+ #endif
+ #ifdef DSO_R_STACK_ERROR
+ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR},
+ #else
+ {"STACK_ERROR", 37, 105},
+ #endif
+ #ifdef DSO_R_SYM_FAILURE
+ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE},
+ #else
+ {"SYM_FAILURE", 37, 106},
+ #endif
+ #ifdef DSO_R_UNLOAD_FAILED
+ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED},
+ #else
+ {"UNLOAD_FAILED", 37, 107},
+ #endif
+ #ifdef DSO_R_UNSUPPORTED
+ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED},
+ #else
+ {"UNSUPPORTED", 37, 108},
+ #endif
+ #ifdef EC_R_ASN1_ERROR
+ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR},
+ #else
+ {"ASN1_ERROR", 16, 115},
+ #endif
+ #ifdef EC_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 16, 156},
+ #endif
+ #ifdef EC_R_BIGNUM_OUT_OF_RANGE
+ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE},
+ #else
+ {"BIGNUM_OUT_OF_RANGE", 16, 144},
+ #endif
+ #ifdef EC_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 16, 100},
+ #endif
+ #ifdef EC_R_CANNOT_INVERT
+ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT},
+ #else
+ {"CANNOT_INVERT", 16, 165},
+ #endif
+ #ifdef EC_R_COORDINATES_OUT_OF_RANGE
+ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE},
+ #else
+ {"COORDINATES_OUT_OF_RANGE", 16, 146},
+ #endif
+ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH
+ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH},
+ #else
+ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160},
+ #endif
+ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING
+ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING},
+ #else
+ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159},
+ #endif
+ #ifdef EC_R_D2I_ECPKPARAMETERS_FAILURE
+ {"D2I_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_D2I_ECPKPARAMETERS_FAILURE},
+ #else
+ {"D2I_ECPKPARAMETERS_FAILURE", 16, 117},
+ #endif
+ #ifdef EC_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 16, 142},
+ #endif
+ #ifdef EC_R_DISCRIMINANT_IS_ZERO
+ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO},
+ #else
+ {"DISCRIMINANT_IS_ZERO", 16, 118},
+ #endif
+ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE
+ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE},
+ #else
+ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119},
+ #endif
+ #ifdef EC_R_FIELD_TOO_LARGE
+ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE},
+ #else
+ {"FIELD_TOO_LARGE", 16, 143},
+ #endif
+ #ifdef EC_R_GF2M_NOT_SUPPORTED
+ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED},
+ #else
+ {"GF2M_NOT_SUPPORTED", 16, 147},
+ #endif
+ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE
+ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE},
+ #else
+ {"GROUP2PKPARAMETERS_FAILURE", 16, 120},
+ #endif
+ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE
+ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE},
+ #else
+ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121},
+ #endif
+ #ifdef EC_R_INCOMPATIBLE_OBJECTS
+ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS},
+ #else
+ {"INCOMPATIBLE_OBJECTS", 16, 101},
+ #endif
+ #ifdef EC_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 16, 112},
+ #endif
+ #ifdef EC_R_INVALID_COMPRESSED_POINT
+ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT},
+ #else
+ {"INVALID_COMPRESSED_POINT", 16, 110},
+ #endif
+ #ifdef EC_R_INVALID_COMPRESSION_BIT
+ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT},
+ #else
+ {"INVALID_COMPRESSION_BIT", 16, 109},
+ #endif
+ #ifdef EC_R_INVALID_CURVE
+ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE},
+ #else
+ {"INVALID_CURVE", 16, 141},
+ #endif
+ #ifdef EC_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 16, 151},
+ #endif
+ #ifdef EC_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 16, 138},
+ #endif
+ #ifdef EC_R_INVALID_ENCODING
+ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING},
+ #else
+ {"INVALID_ENCODING", 16, 102},
+ #endif
+ #ifdef EC_R_INVALID_FIELD
+ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD},
+ #else
+ {"INVALID_FIELD", 16, 103},
+ #endif
+ #ifdef EC_R_INVALID_FORM
+ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM},
+ #else
+ {"INVALID_FORM", 16, 104},
+ #endif
+ #ifdef EC_R_INVALID_GROUP_ORDER
+ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER},
+ #else
+ {"INVALID_GROUP_ORDER", 16, 122},
+ #endif
+ #ifdef EC_R_INVALID_KEY
+ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY},
+ #else
+ {"INVALID_KEY", 16, 116},
+ #endif
+ #ifdef EC_R_INVALID_OUTPUT_LENGTH
+ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH},
+ #else
+ {"INVALID_OUTPUT_LENGTH", 16, 161},
+ #endif
+ #ifdef EC_R_INVALID_PEER_KEY
+ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY},
+ #else
+ {"INVALID_PEER_KEY", 16, 133},
+ #endif
+ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS
+ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS},
+ #else
+ {"INVALID_PENTANOMIAL_BASIS", 16, 132},
+ #endif
+ #ifdef EC_R_INVALID_PRIVATE_KEY
+ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY},
+ #else
+ {"INVALID_PRIVATE_KEY", 16, 123},
+ #endif
+ #ifdef EC_R_INVALID_TRINOMIAL_BASIS
+ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS},
+ #else
+ {"INVALID_TRINOMIAL_BASIS", 16, 137},
+ #endif
+ #ifdef EC_R_KDF_PARAMETER_ERROR
+ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR},
+ #else
+ {"KDF_PARAMETER_ERROR", 16, 148},
+ #endif
+ #ifdef EC_R_KEYS_NOT_SET
+ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET},
+ #else
+ {"KEYS_NOT_SET", 16, 140},
+ #endif
+ #ifdef EC_R_LADDER_POST_FAILURE
+ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE},
+ #else
+ {"LADDER_POST_FAILURE", 16, 136},
+ #endif
+ #ifdef EC_R_LADDER_PRE_FAILURE
+ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE},
+ #else
+ {"LADDER_PRE_FAILURE", 16, 153},
+ #endif
+ #ifdef EC_R_LADDER_STEP_FAILURE
+ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE},
+ #else
+ {"LADDER_STEP_FAILURE", 16, 162},
+ #endif
+ #ifdef EC_R_MISSING_OID
+ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID},
+ #else
+ {"MISSING_OID", 16, 167},
+ #endif
+ #ifdef EC_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 16, 124},
+ #endif
+ #ifdef EC_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 16, 125},
+ #endif
+ #ifdef EC_R_NEED_NEW_SETUP_VALUES
+ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES},
+ #else
+ {"NEED_NEW_SETUP_VALUES", 16, 157},
+ #endif
+ #ifdef EC_R_NOT_A_NIST_PRIME
+ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME},
+ #else
+ {"NOT_A_NIST_PRIME", 16, 135},
+ #endif
+ #ifdef EC_R_NOT_IMPLEMENTED
+ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED},
+ #else
+ {"NOT_IMPLEMENTED", 16, 126},
+ #endif
+ #ifdef EC_R_NOT_INITIALIZED
+ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED},
+ #else
+ {"NOT_INITIALIZED", 16, 111},
+ #endif
+ #ifdef EC_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 16, 139},
+ #endif
+ #ifdef EC_R_NO_PRIVATE_VALUE
+ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE},
+ #else
+ {"NO_PRIVATE_VALUE", 16, 154},
+ #endif
+ #ifdef EC_R_OPERATION_NOT_SUPPORTED
+ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED},
+ #else
+ {"OPERATION_NOT_SUPPORTED", 16, 152},
+ #endif
+ #ifdef EC_R_PASSED_NULL_PARAMETER
+ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER},
+ #else
+ {"PASSED_NULL_PARAMETER", 16, 134},
+ #endif
+ #ifdef EC_R_PEER_KEY_ERROR
+ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR},
+ #else
+ {"PEER_KEY_ERROR", 16, 149},
+ #endif
+ #ifdef EC_R_PKPARAMETERS2GROUP_FAILURE
+ {"PKPARAMETERS2GROUP_FAILURE", ERR_LIB_EC, EC_R_PKPARAMETERS2GROUP_FAILURE},
+ #else
+ {"PKPARAMETERS2GROUP_FAILURE", 16, 127},
+ #endif
+ #ifdef EC_R_POINT_ARITHMETIC_FAILURE
+ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE},
+ #else
+ {"POINT_ARITHMETIC_FAILURE", 16, 155},
+ #endif
+ #ifdef EC_R_POINT_AT_INFINITY
+ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY},
+ #else
+ {"POINT_AT_INFINITY", 16, 106},
+ #endif
+ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE
+ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE},
+ #else
+ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163},
+ #endif
+ #ifdef EC_R_POINT_IS_NOT_ON_CURVE
+ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE},
+ #else
+ {"POINT_IS_NOT_ON_CURVE", 16, 107},
+ #endif
+ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED
+ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED},
+ #else
+ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158},
+ #endif
+ #ifdef EC_R_SHARED_INFO_ERROR
+ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR},
+ #else
+ {"SHARED_INFO_ERROR", 16, 150},
+ #endif
+ #ifdef EC_R_SLOT_FULL
+ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL},
+ #else
+ {"SLOT_FULL", 16, 108},
+ #endif
+ #ifdef EC_R_UNDEFINED_GENERATOR
+ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR},
+ #else
+ {"UNDEFINED_GENERATOR", 16, 113},
+ #endif
+ #ifdef EC_R_UNDEFINED_ORDER
+ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER},
+ #else
+ {"UNDEFINED_ORDER", 16, 128},
+ #endif
+ #ifdef EC_R_UNKNOWN_COFACTOR
+ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR},
+ #else
+ {"UNKNOWN_COFACTOR", 16, 164},
+ #endif
+ #ifdef EC_R_UNKNOWN_GROUP
+ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP},
+ #else
+ {"UNKNOWN_GROUP", 16, 129},
+ #endif
+ #ifdef EC_R_UNKNOWN_ORDER
+ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER},
+ #else
+ {"UNKNOWN_ORDER", 16, 114},
+ #endif
+ #ifdef EC_R_UNSUPPORTED_FIELD
+ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD},
+ #else
+ {"UNSUPPORTED_FIELD", 16, 131},
+ #endif
+ #ifdef EC_R_WRONG_CURVE_PARAMETERS
+ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS},
+ #else
+ {"WRONG_CURVE_PARAMETERS", 16, 145},
+ #endif
+ #ifdef EC_R_WRONG_ORDER
+ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER},
+ #else
+ {"WRONG_ORDER", 16, 130},
+ #endif
+ #ifdef ENGINE_R_ALREADY_LOADED
+ {"ALREADY_LOADED", ERR_LIB_ENGINE, ENGINE_R_ALREADY_LOADED},
+ #else
+ {"ALREADY_LOADED", 38, 100},
+ #endif
+ #ifdef ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER
+ {"ARGUMENT_IS_NOT_A_NUMBER", ERR_LIB_ENGINE, ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER},
+ #else
+ {"ARGUMENT_IS_NOT_A_NUMBER", 38, 133},
+ #endif
+ #ifdef ENGINE_R_CMD_NOT_EXECUTABLE
+ {"CMD_NOT_EXECUTABLE", ERR_LIB_ENGINE, ENGINE_R_CMD_NOT_EXECUTABLE},
+ #else
+ {"CMD_NOT_EXECUTABLE", 38, 134},
+ #endif
+ #ifdef ENGINE_R_COMMAND_TAKES_INPUT
+ {"COMMAND_TAKES_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_INPUT},
+ #else
+ {"COMMAND_TAKES_INPUT", 38, 135},
+ #endif
+ #ifdef ENGINE_R_COMMAND_TAKES_NO_INPUT
+ {"COMMAND_TAKES_NO_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_NO_INPUT},
+ #else
+ {"COMMAND_TAKES_NO_INPUT", 38, 136},
+ #endif
+ #ifdef ENGINE_R_CONFLICTING_ENGINE_ID
+ {"CONFLICTING_ENGINE_ID", ERR_LIB_ENGINE, ENGINE_R_CONFLICTING_ENGINE_ID},
+ #else
+ {"CONFLICTING_ENGINE_ID", 38, 103},
+ #endif
+ #ifdef ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED
+ {"CTRL_COMMAND_NOT_IMPLEMENTED", ERR_LIB_ENGINE, ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_COMMAND_NOT_IMPLEMENTED", 38, 119},
+ #endif
+ #ifdef ENGINE_R_DSO_FAILURE
+ {"DSO_FAILURE", ERR_LIB_ENGINE, ENGINE_R_DSO_FAILURE},
+ #else
+ {"DSO_FAILURE", 38, 104},
+ #endif
+ #ifdef ENGINE_R_DSO_NOT_FOUND
+ {"DSO_NOT_FOUND", ERR_LIB_ENGINE, ENGINE_R_DSO_NOT_FOUND},
+ #else
+ {"DSO_NOT_FOUND", 38, 132},
+ #endif
+ #ifdef ENGINE_R_ENGINES_SECTION_ERROR
+ {"ENGINES_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINES_SECTION_ERROR},
+ #else
+ {"ENGINES_SECTION_ERROR", 38, 148},
+ #endif
+ #ifdef ENGINE_R_ENGINE_CONFIGURATION_ERROR
+ {"ENGINE_CONFIGURATION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_CONFIGURATION_ERROR},
+ #else
+ {"ENGINE_CONFIGURATION_ERROR", 38, 102},
+ #endif
+ #ifdef ENGINE_R_ENGINE_IS_NOT_IN_LIST
+ {"ENGINE_IS_NOT_IN_LIST", ERR_LIB_ENGINE, ENGINE_R_ENGINE_IS_NOT_IN_LIST},
+ #else
+ {"ENGINE_IS_NOT_IN_LIST", 38, 105},
+ #endif
+ #ifdef ENGINE_R_ENGINE_SECTION_ERROR
+ {"ENGINE_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_SECTION_ERROR},
+ #else
+ {"ENGINE_SECTION_ERROR", 38, 149},
+ #endif
+ #ifdef ENGINE_R_FAILED_LOADING_PRIVATE_KEY
+ {"FAILED_LOADING_PRIVATE_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PRIVATE_KEY},
+ #else
+ {"FAILED_LOADING_PRIVATE_KEY", 38, 128},
+ #endif
+ #ifdef ENGINE_R_FAILED_LOADING_PUBLIC_KEY
+ {"FAILED_LOADING_PUBLIC_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PUBLIC_KEY},
+ #else
+ {"FAILED_LOADING_PUBLIC_KEY", 38, 129},
+ #endif
+ #ifdef ENGINE_R_FINISH_FAILED
+ {"FINISH_FAILED", ERR_LIB_ENGINE, ENGINE_R_FINISH_FAILED},
+ #else
+ {"FINISH_FAILED", 38, 106},
+ #endif
+ #ifdef ENGINE_R_ID_OR_NAME_MISSING
+ {"ID_OR_NAME_MISSING", ERR_LIB_ENGINE, ENGINE_R_ID_OR_NAME_MISSING},
+ #else
+ {"ID_OR_NAME_MISSING", 38, 108},
+ #endif
+ #ifdef ENGINE_R_INIT_FAILED
+ {"INIT_FAILED", ERR_LIB_ENGINE, ENGINE_R_INIT_FAILED},
+ #else
+ {"INIT_FAILED", 38, 109},
+ #endif
+ #ifdef ENGINE_R_INTERNAL_LIST_ERROR
+ {"INTERNAL_LIST_ERROR", ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR},
+ #else
+ {"INTERNAL_LIST_ERROR", 38, 110},
+ #endif
+ #ifdef ENGINE_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_ENGINE, ENGINE_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 38, 143},
+ #endif
+ #ifdef ENGINE_R_INVALID_CMD_NAME
+ {"INVALID_CMD_NAME", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NAME},
+ #else
+ {"INVALID_CMD_NAME", 38, 137},
+ #endif
+ #ifdef ENGINE_R_INVALID_CMD_NUMBER
+ {"INVALID_CMD_NUMBER", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NUMBER},
+ #else
+ {"INVALID_CMD_NUMBER", 38, 138},
+ #endif
+ #ifdef ENGINE_R_INVALID_INIT_VALUE
+ {"INVALID_INIT_VALUE", ERR_LIB_ENGINE, ENGINE_R_INVALID_INIT_VALUE},
+ #else
+ {"INVALID_INIT_VALUE", 38, 151},
+ #endif
+ #ifdef ENGINE_R_INVALID_STRING
+ {"INVALID_STRING", ERR_LIB_ENGINE, ENGINE_R_INVALID_STRING},
+ #else
+ {"INVALID_STRING", 38, 150},
+ #endif
+ #ifdef ENGINE_R_NOT_INITIALISED
+ {"NOT_INITIALISED", ERR_LIB_ENGINE, ENGINE_R_NOT_INITIALISED},
+ #else
+ {"NOT_INITIALISED", 38, 117},
+ #endif
+ #ifdef ENGINE_R_NOT_LOADED
+ {"NOT_LOADED", ERR_LIB_ENGINE, ENGINE_R_NOT_LOADED},
+ #else
+ {"NOT_LOADED", 38, 112},
+ #endif
+ #ifdef ENGINE_R_NO_CONTROL_FUNCTION
+ {"NO_CONTROL_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_CONTROL_FUNCTION},
+ #else
+ {"NO_CONTROL_FUNCTION", 38, 120},
+ #endif
+ #ifdef ENGINE_R_NO_INDEX
+ {"NO_INDEX", ERR_LIB_ENGINE, ENGINE_R_NO_INDEX},
+ #else
+ {"NO_INDEX", 38, 144},
+ #endif
+ #ifdef ENGINE_R_NO_LOAD_FUNCTION
+ {"NO_LOAD_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_LOAD_FUNCTION},
+ #else
+ {"NO_LOAD_FUNCTION", 38, 125},
+ #endif
+ #ifdef ENGINE_R_NO_REFERENCE
+ {"NO_REFERENCE", ERR_LIB_ENGINE, ENGINE_R_NO_REFERENCE},
+ #else
+ {"NO_REFERENCE", 38, 130},
+ #endif
+ #ifdef ENGINE_R_NO_SUCH_ENGINE
+ {"NO_SUCH_ENGINE", ERR_LIB_ENGINE, ENGINE_R_NO_SUCH_ENGINE},
+ #else
+ {"NO_SUCH_ENGINE", 38, 116},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_CIPHER
+ {"UNIMPLEMENTED_CIPHER", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_CIPHER},
+ #else
+ {"UNIMPLEMENTED_CIPHER", 38, 146},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_DIGEST
+ {"UNIMPLEMENTED_DIGEST", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_DIGEST},
+ #else
+ {"UNIMPLEMENTED_DIGEST", 38, 147},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD
+ {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD},
+ #else
+ {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", 38, 101},
+ #endif
+ #ifdef ENGINE_R_VERSION_INCOMPATIBILITY
+ {"VERSION_INCOMPATIBILITY", ERR_LIB_ENGINE, ENGINE_R_VERSION_INCOMPATIBILITY},
+ #else
+ {"VERSION_INCOMPATIBILITY", 38, 145},
+ #endif
+ #ifdef EVP_R_AES_KEY_SETUP_FAILED
+ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED},
+ #else
+ {"AES_KEY_SETUP_FAILED", 6, 143},
+ #endif
+ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED
+ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED},
+ #else
+ {"ARIA_KEY_SETUP_FAILED", 6, 176},
+ #endif
+ #ifdef EVP_R_BAD_DECRYPT
+ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT},
+ #else
+ {"BAD_DECRYPT", 6, 100},
+ #endif
+ #ifdef EVP_R_BAD_KEY_LENGTH
+ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH},
+ #else
+ {"BAD_KEY_LENGTH", 6, 195},
+ #endif
+ #ifdef EVP_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 6, 155},
+ #endif
+ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED
+ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED},
+ #else
+ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157},
+ #endif
+ #ifdef EVP_R_CIPHER_PARAMETER_ERROR
+ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR},
+ #else
+ {"CIPHER_PARAMETER_ERROR", 6, 122},
+ #endif
+ #ifdef EVP_R_COMMAND_NOT_SUPPORTED
+ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED},
+ #else
+ {"COMMAND_NOT_SUPPORTED", 6, 147},
+ #endif
+ #ifdef EVP_R_COPY_ERROR
+ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR},
+ #else
+ {"COPY_ERROR", 6, 173},
+ #endif
+ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED
+ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_NOT_IMPLEMENTED", 6, 132},
+ #endif
+ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED
+ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133},
+ #endif
+ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH
+ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH},
+ #else
+ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138},
+ #endif
+ #ifdef EVP_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 6, 114},
+ #endif
+ #ifdef EVP_R_DIFFERENT_KEY_TYPES
+ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES},
+ #else
+ {"DIFFERENT_KEY_TYPES", 6, 101},
+ #endif
+ #ifdef EVP_R_DIFFERENT_PARAMETERS
+ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS},
+ #else
+ {"DIFFERENT_PARAMETERS", 6, 153},
+ #endif
+ #ifdef EVP_R_ERROR_LOADING_SECTION
+ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION},
+ #else
+ {"ERROR_LOADING_SECTION", 6, 165},
+ #endif
+ #ifdef EVP_R_ERROR_SETTING_FIPS_MODE
+ {"ERROR_SETTING_FIPS_MODE", ERR_LIB_EVP, EVP_R_ERROR_SETTING_FIPS_MODE},
+ #else
+ {"ERROR_SETTING_FIPS_MODE", 6, 166},
+ #endif
+ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY
+ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY},
+ #else
+ {"EXPECTING_AN_HMAC_KEY", 6, 174},
+ #endif
+ #ifdef EVP_R_EXPECTING_AN_RSA_KEY
+ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY},
+ #else
+ {"EXPECTING_AN_RSA_KEY", 6, 127},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_DH_KEY
+ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY},
+ #else
+ {"EXPECTING_A_DH_KEY", 6, 128},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_DSA_KEY
+ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY},
+ #else
+ {"EXPECTING_A_DSA_KEY", 6, 129},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_EC_KEY
+ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY},
+ #else
+ {"EXPECTING_A_EC_KEY", 6, 142},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY
+ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY},
+ #else
+ {"EXPECTING_A_POLY1305_KEY", 6, 164},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY
+ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY},
+ #else
+ {"EXPECTING_A_SIPHASH_KEY", 6, 175},
+ #endif
+ #ifdef EVP_R_FIPS_MODE_NOT_SUPPORTED
+ {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_FIPS_MODE_NOT_SUPPORTED},
+ #else
+ {"FIPS_MODE_NOT_SUPPORTED", 6, 167},
+ #endif
+ #ifdef EVP_R_GET_RAW_KEY_FAILED
+ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
+ #else
+ {"GET_RAW_KEY_FAILED", 6, 182},
+ #endif
+ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS
+ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS},
+ #else
+ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171},
+ #endif
+ #ifdef EVP_R_INITIALIZATION_ERROR
+ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR},
+ #else
+ {"INITIALIZATION_ERROR", 6, 134},
+ #endif
+ #ifdef EVP_R_INPUT_NOT_INITIALIZED
+ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED},
+ #else
+ {"INPUT_NOT_INITIALIZED", 6, 111},
+ #endif
+ #ifdef EVP_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 6, 152},
+ #endif
+ #ifdef EVP_R_INVALID_FIPS_MODE
+ {"INVALID_FIPS_MODE", ERR_LIB_EVP, EVP_R_INVALID_FIPS_MODE},
+ #else
+ {"INVALID_FIPS_MODE", 6, 168},
+ #endif
+ #ifdef EVP_R_INVALID_IV_LENGTH
+ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH},
+ #else
+ {"INVALID_IV_LENGTH", 6, 194},
+ #endif
+ #ifdef EVP_R_INVALID_KEY
+ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY},
+ #else
+ {"INVALID_KEY", 6, 163},
+ #endif
+ #ifdef EVP_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 6, 130},
+ #endif
+ #ifdef EVP_R_INVALID_OPERATION
+ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION},
+ #else
+ {"INVALID_OPERATION", 6, 148},
+ #endif
+ #ifdef EVP_R_KEYGEN_FAILURE
+ {"KEYGEN_FAILURE", ERR_LIB_EVP, EVP_R_KEYGEN_FAILURE},
+ #else
+ {"KEYGEN_FAILURE", 6, 120},
+ #endif
+ #ifdef EVP_R_KEY_SETUP_FAILED
+ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED},
+ #else
+ {"KEY_SETUP_FAILED", 6, 180},
+ #endif
+ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED
+ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED},
+ #else
+ {"MEMORY_LIMIT_EXCEEDED", 6, 172},
+ #endif
+ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL
+ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL},
+ #else
+ {"MESSAGE_DIGEST_IS_NULL", 6, 159},
+ #endif
+ #ifdef EVP_R_METHOD_NOT_SUPPORTED
+ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED},
+ #else
+ {"METHOD_NOT_SUPPORTED", 6, 144},
+ #endif
+ #ifdef EVP_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 6, 103},
+ #endif
+ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH
+ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH},
+ #else
+ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178},
+ #endif
+ #ifdef EVP_R_NO_CIPHER_SET
+ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET},
+ #else
+ {"NO_CIPHER_SET", 6, 131},
+ #endif
+ #ifdef EVP_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 6, 158},
+ #endif
+ #ifdef EVP_R_NO_DIGEST_SET
+ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET},
+ #else
+ {"NO_DIGEST_SET", 6, 139},
+ #endif
+ #ifdef EVP_R_NO_KEY_SET
+ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET},
+ #else
+ {"NO_KEY_SET", 6, 154},
+ #endif
+ #ifdef EVP_R_NO_OPERATION_SET
+ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET},
+ #else
+ {"NO_OPERATION_SET", 6, 149},
+ #endif
+ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED
+ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED},
+ #else
+ {"ONLY_ONESHOT_SUPPORTED", 6, 177},
+ #endif
+ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
+ #endif
+ #ifdef EVP_R_OPERATON_NOT_INITIALIZED
+ {"OPERATON_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATON_NOT_INITIALIZED},
+ #else
+ {"OPERATON_NOT_INITIALIZED", 6, 151},
+ #endif
+ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW
+ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW},
+ #else
+ {"OUTPUT_WOULD_OVERFLOW", 6, 184},
+ #endif
+ #ifdef EVP_R_PARTIALLY_OVERLAPPING
+ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING},
+ #else
+ {"PARTIALLY_OVERLAPPING", 6, 162},
+ #endif
+ #ifdef EVP_R_PBKDF2_ERROR
+ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR},
+ #else
+ {"PBKDF2_ERROR", 6, 181},
+ #endif
+ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED
+ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED},
+ #else
+ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179},
+ #endif
+ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR
+ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR},
+ #else
+ {"PRIVATE_KEY_DECODE_ERROR", 6, 145},
+ #endif
+ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR
+ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR},
+ #else
+ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146},
+ #endif
+ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA
+ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA},
+ #else
+ {"PUBLIC_KEY_NOT_RSA", 6, 106},
+ #endif
+ #ifdef EVP_R_UNKNOWN_CIPHER
+ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
+ #else
+ {"UNKNOWN_CIPHER", 6, 160},
+ #endif
+ #ifdef EVP_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 6, 161},
+ #endif
+ #ifdef EVP_R_UNKNOWN_OPTION
+ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
+ #else
+ {"UNKNOWN_OPTION", 6, 169},
+ #endif
+ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM
+ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM},
+ #else
+ {"UNKNOWN_PBE_ALGORITHM", 6, 121},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_ALGORITHM
+ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
+ #else
+ {"UNSUPPORTED_ALGORITHM", 6, 156},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 6, 107},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH
+ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH},
+ #else
+ {"UNSUPPORTED_KEYLENGTH", 6, 123},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION
+ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION},
+ #else
+ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE
+ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE},
+ #else
+ {"UNSUPPORTED_KEY_SIZE", 6, 108},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
+ #else
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_PRF
+ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF},
+ #else
+ {"UNSUPPORTED_PRF", 6, 125},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM
+ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM},
+ #else
+ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE
+ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE},
+ #else
+ {"UNSUPPORTED_SALT_TYPE", 6, 126},
+ #endif
+ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED
+ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED},
+ #else
+ {"WRAP_MODE_NOT_ALLOWED", 6, 170},
+ #endif
+ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH
+ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH},
+ #else
+ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109},
+ #endif
+ #ifdef EVP_R_XTS_DUPLICATED_KEYS
+ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS},
+ #else
+ {"XTS_DUPLICATED_KEYS", 6, 183},
+ #endif
+ #ifdef KDF_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_KDF, KDF_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 52, 100},
+ #endif
+ #ifdef KDF_R_MISSING_ITERATION_COUNT
+ {"MISSING_ITERATION_COUNT", ERR_LIB_KDF, KDF_R_MISSING_ITERATION_COUNT},
+ #else
+ {"MISSING_ITERATION_COUNT", 52, 109},
+ #endif
+ #ifdef KDF_R_MISSING_KEY
+ {"MISSING_KEY", ERR_LIB_KDF, KDF_R_MISSING_KEY},
+ #else
+ {"MISSING_KEY", 52, 104},
+ #endif
+ #ifdef KDF_R_MISSING_MESSAGE_DIGEST
+ {"MISSING_MESSAGE_DIGEST", ERR_LIB_KDF, KDF_R_MISSING_MESSAGE_DIGEST},
+ #else
+ {"MISSING_MESSAGE_DIGEST", 52, 105},
+ #endif
+ #ifdef KDF_R_MISSING_PARAMETER
+ {"MISSING_PARAMETER", ERR_LIB_KDF, KDF_R_MISSING_PARAMETER},
+ #else
+ {"MISSING_PARAMETER", 52, 101},
+ #endif
+ #ifdef KDF_R_MISSING_PASS
+ {"MISSING_PASS", ERR_LIB_KDF, KDF_R_MISSING_PASS},
+ #else
+ {"MISSING_PASS", 52, 110},
+ #endif
+ #ifdef KDF_R_MISSING_SALT
+ {"MISSING_SALT", ERR_LIB_KDF, KDF_R_MISSING_SALT},
+ #else
+ {"MISSING_SALT", 52, 111},
+ #endif
+ #ifdef KDF_R_MISSING_SECRET
+ {"MISSING_SECRET", ERR_LIB_KDF, KDF_R_MISSING_SECRET},
+ #else
+ {"MISSING_SECRET", 52, 107},
+ #endif
+ #ifdef KDF_R_MISSING_SEED
+ {"MISSING_SEED", ERR_LIB_KDF, KDF_R_MISSING_SEED},
+ #else
+ {"MISSING_SEED", 52, 106},
+ #endif
+ #ifdef KDF_R_UNKNOWN_PARAMETER_TYPE
+ {"UNKNOWN_PARAMETER_TYPE", ERR_LIB_KDF, KDF_R_UNKNOWN_PARAMETER_TYPE},
+ #else
+ {"UNKNOWN_PARAMETER_TYPE", 52, 103},
+ #endif
+ #ifdef KDF_R_VALUE_ERROR
+ {"VALUE_ERROR", ERR_LIB_KDF, KDF_R_VALUE_ERROR},
+ #else
+ {"VALUE_ERROR", 52, 108},
+ #endif
+ #ifdef KDF_R_VALUE_MISSING
+ {"VALUE_MISSING", ERR_LIB_KDF, KDF_R_VALUE_MISSING},
+ #else
+ {"VALUE_MISSING", 52, 102},
+ #endif
+ #ifdef OBJ_R_OID_EXISTS
+ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS},
+ #else
+ {"OID_EXISTS", 8, 102},
+ #endif
+ #ifdef OBJ_R_UNKNOWN_NID
+ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID},
+ #else
+ {"UNKNOWN_NID", 8, 101},
+ #endif
+ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 39, 101},
+ #endif
+ #ifdef OCSP_R_DIGEST_ERR
+ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR},
+ #else
+ {"DIGEST_ERR", 39, 102},
+ #endif
+ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD
+ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD},
+ #else
+ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122},
+ #endif
+ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD
+ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD},
+ #else
+ {"ERROR_IN_THISUPDATE_FIELD", 39, 123},
+ #endif
+ #ifdef OCSP_R_ERROR_PARSING_URL
+ {"ERROR_PARSING_URL", ERR_LIB_OCSP, OCSP_R_ERROR_PARSING_URL},
+ #else
+ {"ERROR_PARSING_URL", 39, 121},
+ #endif
+ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE
+ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE},
+ #else
+ {"MISSING_OCSPSIGNING_USAGE", 39, 103},
+ #endif
+ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE
+ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE},
+ #else
+ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124},
+ #endif
+ #ifdef OCSP_R_NOT_BASIC_RESPONSE
+ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE},
+ #else
+ {"NOT_BASIC_RESPONSE", 39, 104},
+ #endif
+ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN
+ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN},
+ #else
+ {"NO_CERTIFICATES_IN_CHAIN", 39, 105},
+ #endif
+ #ifdef OCSP_R_NO_RESPONSE_DATA
+ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA},
+ #else
+ {"NO_RESPONSE_DATA", 39, 108},
+ #endif
+ #ifdef OCSP_R_NO_REVOKED_TIME
+ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME},
+ #else
+ {"NO_REVOKED_TIME", 39, 109},
+ #endif
+ #ifdef OCSP_R_NO_SIGNER_KEY
+ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY},
+ #else
+ {"NO_SIGNER_KEY", 39, 130},
+ #endif
+ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110},
+ #endif
+ #ifdef OCSP_R_REQUEST_NOT_SIGNED
+ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED},
+ #else
+ {"REQUEST_NOT_SIGNED", 39, 128},
+ #endif
+ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA
+ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA},
+ #else
+ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111},
+ #endif
+ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED
+ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED},
+ #else
+ {"ROOT_CA_NOT_TRUSTED", 39, 112},
+ #endif
+ #ifdef OCSP_R_SERVER_RESPONSE_ERROR
+ {"SERVER_RESPONSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_ERROR},
+ #else
+ {"SERVER_RESPONSE_ERROR", 39, 114},
+ #endif
+ #ifdef OCSP_R_SERVER_RESPONSE_PARSE_ERROR
+ {"SERVER_RESPONSE_PARSE_ERROR", ERR_LIB_OCSP, OCSP_R_SERVER_RESPONSE_PARSE_ERROR},
+ #else
+ {"SERVER_RESPONSE_PARSE_ERROR", 39, 115},
+ #endif
+ #ifdef OCSP_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 39, 117},
+ #endif
+ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118},
+ #endif
+ #ifdef OCSP_R_STATUS_EXPIRED
+ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED},
+ #else
+ {"STATUS_EXPIRED", 39, 125},
+ #endif
+ #ifdef OCSP_R_STATUS_NOT_YET_VALID
+ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID},
+ #else
+ {"STATUS_NOT_YET_VALID", 39, 126},
+ #endif
+ #ifdef OCSP_R_STATUS_TOO_OLD
+ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD},
+ #else
+ {"STATUS_TOO_OLD", 39, 127},
+ #endif
+ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST
+ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST},
+ #else
+ {"UNKNOWN_MESSAGE_DIGEST", 39, 119},
+ #endif
+ #ifdef OCSP_R_UNKNOWN_NID
+ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID},
+ #else
+ {"UNKNOWN_NID", 39, 120},
+ #endif
+ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE
+ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE},
+ #else
+ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129},
+ #endif
+ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE
+ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE},
+ #else
+ {"AMBIGUOUS_CONTENT_TYPE", 44, 107},
+ #endif
+ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ
+ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ},
+ #else
+ {"BAD_PASSWORD_READ", 44, 115},
+ #endif
+ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC
+ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC},
+ #else
+ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113},
+ #endif
+ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST
+ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST},
+ #else
+ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121},
+ #endif
+ #ifdef OSSL_STORE_R_INVALID_SCHEME
+ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME},
+ #else
+ {"INVALID_SCHEME", 44, 106},
+ #endif
+ #ifdef OSSL_STORE_R_IS_NOT_A
+ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A},
+ #else
+ {"IS_NOT_A", 44, 112},
+ #endif
+ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE
+ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE},
+ #else
+ {"LOADER_INCOMPLETE", 44, 116},
+ #endif
+ #ifdef OSSL_STORE_R_LOADING_STARTED
+ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED},
+ #else
+ {"LOADING_STARTED", 44, 117},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE
+ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE},
+ #else
+ {"NOT_A_CERTIFICATE", 44, 100},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_CRL
+ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL},
+ #else
+ {"NOT_A_CRL", 44, 101},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_KEY
+ {"NOT_A_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_KEY},
+ #else
+ {"NOT_A_KEY", 44, 102},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_NAME
+ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME},
+ #else
+ {"NOT_A_NAME", 44, 103},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_PARAMETERS
+ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS},
+ #else
+ {"NOT_PARAMETERS", 44, 104},
+ #endif
+ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR
+ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR},
+ #else
+ {"PASSPHRASE_CALLBACK_ERROR", 44, 114},
+ #endif
+ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE
+ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE},
+ #else
+ {"PATH_MUST_BE_ABSOLUTE", 44, 108},
+ #endif
+ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES
+ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES},
+ #else
+ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119},
+ #endif
+ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED
+ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED},
+ #else
+ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109},
+ #endif
+ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME
+ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME},
+ #else
+ {"UNREGISTERED_SCHEME", 44, 105},
+ #endif
+ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 44, 110},
+ #endif
+ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION
+ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION},
+ #else
+ {"UNSUPPORTED_OPERATION", 44, 118},
+ #endif
+ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE
+ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE},
+ #else
+ {"UNSUPPORTED_SEARCH_TYPE", 44, 120},
+ #endif
+ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED
+ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED},
+ #else
+ {"URI_AUTHORITY_UNSUPPORTED", 44, 111},
+ #endif
+ #ifdef PEM_R_BAD_BASE64_DECODE
+ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE},
+ #else
+ {"BAD_BASE64_DECODE", 9, 100},
+ #endif
+ #ifdef PEM_R_BAD_DECRYPT
+ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT},
+ #else
+ {"BAD_DECRYPT", 9, 101},
+ #endif
+ #ifdef PEM_R_BAD_END_LINE
+ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE},
+ #else
+ {"BAD_END_LINE", 9, 102},
+ #endif
+ #ifdef PEM_R_BAD_IV_CHARS
+ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS},
+ #else
+ {"BAD_IV_CHARS", 9, 103},
+ #endif
+ #ifdef PEM_R_BAD_MAGIC_NUMBER
+ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER},
+ #else
+ {"BAD_MAGIC_NUMBER", 9, 116},
+ #endif
+ #ifdef PEM_R_BAD_PASSWORD_READ
+ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ},
+ #else
+ {"BAD_PASSWORD_READ", 9, 104},
+ #endif
+ #ifdef PEM_R_BAD_VERSION_NUMBER
+ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER},
+ #else
+ {"BAD_VERSION_NUMBER", 9, 117},
+ #endif
+ #ifdef PEM_R_BIO_WRITE_FAILURE
+ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE},
+ #else
+ {"BIO_WRITE_FAILURE", 9, 118},
+ #endif
+ #ifdef PEM_R_CIPHER_IS_NULL
+ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL},
+ #else
+ {"CIPHER_IS_NULL", 9, 127},
+ #endif
+ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY
+ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY},
+ #else
+ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115},
+ #endif
+ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB
+ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB},
+ #else
+ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119},
+ #endif
+ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB
+ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB},
+ #else
+ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120},
+ #endif
+ #ifdef PEM_R_HEADER_TOO_LONG
+ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG},
+ #else
+ {"HEADER_TOO_LONG", 9, 128},
+ #endif
+ #ifdef PEM_R_INCONSISTENT_HEADER
+ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER},
+ #else
+ {"INCONSISTENT_HEADER", 9, 121},
+ #endif
+ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR
+ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR},
+ #else
+ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122},
+ #endif
+ #ifdef PEM_R_KEYBLOB_TOO_SHORT
+ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT},
+ #else
+ {"KEYBLOB_TOO_SHORT", 9, 123},
+ #endif
+ #ifdef PEM_R_MISSING_DEK_IV
+ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV},
+ #else
+ {"MISSING_DEK_IV", 9, 129},
+ #endif
+ #ifdef PEM_R_NOT_DEK_INFO
+ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO},
+ #else
+ {"NOT_DEK_INFO", 9, 105},
+ #endif
+ #ifdef PEM_R_NOT_ENCRYPTED
+ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED},
+ #else
+ {"NOT_ENCRYPTED", 9, 106},
+ #endif
+ #ifdef PEM_R_NOT_PROC_TYPE
+ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE},
+ #else
+ {"NOT_PROC_TYPE", 9, 107},
+ #endif
+ #ifdef PEM_R_NO_START_LINE
+ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE},
+ #else
+ {"NO_START_LINE", 9, 108},
+ #endif
+ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD
+ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD},
+ #else
+ {"PROBLEMS_GETTING_PASSWORD", 9, 109},
+ #endif
+ #ifdef PEM_R_PVK_DATA_TOO_SHORT
+ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT},
+ #else
+ {"PVK_DATA_TOO_SHORT", 9, 124},
+ #endif
+ #ifdef PEM_R_PVK_TOO_SHORT
+ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT},
+ #else
+ {"PVK_TOO_SHORT", 9, 125},
+ #endif
+ #ifdef PEM_R_READ_KEY
+ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY},
+ #else
+ {"READ_KEY", 9, 111},
+ #endif
+ #ifdef PEM_R_SHORT_HEADER
+ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER},
+ #else
+ {"SHORT_HEADER", 9, 112},
+ #endif
+ #ifdef PEM_R_UNEXPECTED_DEK_IV
+ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV},
+ #else
+ {"UNEXPECTED_DEK_IV", 9, 130},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 9, 113},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION
+ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION},
+ #else
+ {"UNSUPPORTED_ENCRYPTION", 9, 114},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS
+ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS},
+ #else
+ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
+ #else
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110},
+ #endif
+ #ifdef PKCS12_R_CANT_PACK_STRUCTURE
+ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
+ #else
+ {"CANT_PACK_STRUCTURE", 35, 100},
+ #endif
+ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA
+ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_DATA", 35, 121},
+ #endif
+ #ifdef PKCS12_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 35, 101},
+ #endif
+ #ifdef PKCS12_R_ENCODE_ERROR
+ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR},
+ #else
+ {"ENCODE_ERROR", 35, 102},
+ #endif
+ #ifdef PKCS12_R_ENCRYPT_ERROR
+ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR},
+ #else
+ {"ENCRYPT_ERROR", 35, 103},
+ #endif
+ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE
+ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE},
+ #else
+ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120},
+ #endif
+ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT
+ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT},
+ #else
+ {"INVALID_NULL_ARGUMENT", 35, 104},
+ #endif
+ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER
+ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER},
+ #else
+ {"INVALID_NULL_PKCS12_POINTER", 35, 105},
+ #endif
+ #ifdef PKCS12_R_IV_GEN_ERROR
+ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR},
+ #else
+ {"IV_GEN_ERROR", 35, 106},
+ #endif
+ #ifdef PKCS12_R_KEY_GEN_ERROR
+ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR},
+ #else
+ {"KEY_GEN_ERROR", 35, 107},
+ #endif
+ #ifdef PKCS12_R_MAC_ABSENT
+ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT},
+ #else
+ {"MAC_ABSENT", 35, 108},
+ #endif
+ #ifdef PKCS12_R_MAC_GENERATION_ERROR
+ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR},
+ #else
+ {"MAC_GENERATION_ERROR", 35, 109},
+ #endif
+ #ifdef PKCS12_R_MAC_SETUP_ERROR
+ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR},
+ #else
+ {"MAC_SETUP_ERROR", 35, 110},
+ #endif
+ #ifdef PKCS12_R_MAC_STRING_SET_ERROR
+ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR},
+ #else
+ {"MAC_STRING_SET_ERROR", 35, 111},
+ #endif
+ #ifdef PKCS12_R_MAC_VERIFY_FAILURE
+ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE},
+ #else
+ {"MAC_VERIFY_FAILURE", 35, 113},
+ #endif
+ #ifdef PKCS12_R_PARSE_ERROR
+ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR},
+ #else
+ {"PARSE_ERROR", 35, 114},
+ #endif
+ #ifdef PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR
+ {"PKCS12_ALGOR_CIPHERINIT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR},
+ #else
+ {"PKCS12_ALGOR_CIPHERINIT_ERROR", 35, 115},
+ #endif
+ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR
+ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR},
+ #else
+ {"PKCS12_CIPHERFINAL_ERROR", 35, 116},
+ #endif
+ #ifdef PKCS12_R_PKCS12_PBE_CRYPT_ERROR
+ {"PKCS12_PBE_CRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_PBE_CRYPT_ERROR},
+ #else
+ {"PKCS12_PBE_CRYPT_ERROR", 35, 117},
+ #endif
+ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM
+ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118},
+ #endif
+ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE
+ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE},
+ #else
+ {"UNSUPPORTED_PKCS12_MODE", 35, 119},
+ #endif
+ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 33, 117},
+ #endif
+ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
+ #else
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144},
+ #endif
+ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED
+ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED},
+ #else
+ {"CIPHER_NOT_INITIALIZED", 33, 116},
+ #endif
+ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT
+ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT},
+ #else
+ {"CONTENT_AND_DATA_PRESENT", 33, 118},
+ #endif
+ #ifdef PKCS7_R_CTRL_ERROR
+ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR},
+ #else
+ {"CTRL_ERROR", 33, 152},
+ #endif
+ #ifdef PKCS7_R_DECRYPT_ERROR
+ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR},
+ #else
+ {"DECRYPT_ERROR", 33, 119},
+ #endif
+ #ifdef PKCS7_R_DIGEST_FAILURE
+ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE},
+ #else
+ {"DIGEST_FAILURE", 33, 101},
+ #endif
+ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE
+ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE},
+ #else
+ {"ENCRYPTION_CTRL_FAILURE", 33, 149},
+ #endif
+ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150},
+ #endif
+ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT
+ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT},
+ #else
+ {"ERROR_ADDING_RECIPIENT", 33, 120},
+ #endif
+ #ifdef PKCS7_R_ERROR_SETTING_CIPHER
+ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER},
+ #else
+ {"ERROR_SETTING_CIPHER", 33, 121},
+ #endif
+ #ifdef PKCS7_R_INVALID_NULL_POINTER
+ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER},
+ #else
+ {"INVALID_NULL_POINTER", 33, 143},
+ #endif
+ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE
+ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE},
+ #else
+ {"INVALID_SIGNED_DATA_TYPE", 33, 155},
+ #endif
+ #ifdef PKCS7_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 33, 122},
+ #endif
+ #ifdef PKCS7_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 33, 151},
+ #endif
+ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND
+ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND},
+ #else
+ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154},
+ #endif
+ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE
+ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE},
+ #else
+ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115},
+ #endif
+ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA
+ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA},
+ #else
+ {"NO_SIGNATURES_ON_DATA", 33, 123},
+ #endif
+ #ifdef PKCS7_R_NO_SIGNERS
+ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS},
+ #else
+ {"NO_SIGNERS", 33, 142},
+ #endif
+ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE
+ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104},
+ #endif
+ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR
+ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124},
+ #endif
+ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR
+ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNER_ERROR", 33, 153},
+ #endif
+ #ifdef PKCS7_R_PKCS7_DATASIGN
+ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN},
+ #else
+ {"PKCS7_DATASIGN", 33, 145},
+ #endif
+ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127},
+ #endif
+ #ifdef PKCS7_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 33, 105},
+ #endif
+ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128},
+ #endif
+ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE
+ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE},
+ #else
+ {"SIGNING_CTRL_FAILURE", 33, 147},
+ #endif
+ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148},
+ #endif
+ #ifdef PKCS7_R_SMIME_TEXT_ERROR
+ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR},
+ #else
+ {"SMIME_TEXT_ERROR", 33, 129},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE
+ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE},
+ #else
+ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO
+ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO},
+ #else
+ {"UNABLE_TO_FIND_MEM_BIO", 33, 107},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST
+ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST},
+ #else
+ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108},
+ #endif
+ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE
+ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE},
+ #else
+ {"UNKNOWN_DIGEST_TYPE", 33, 109},
+ #endif
+ #ifdef PKCS7_R_UNKNOWN_OPERATION
+ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION},
+ #else
+ {"UNKNOWN_OPERATION", 33, 110},
+ #endif
+ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE
+ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE},
+ #else
+ {"UNSUPPORTED_CIPHER_TYPE", 33, 111},
+ #endif
+ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 33, 112},
+ #endif
+ #ifdef PKCS7_R_WRONG_CONTENT_TYPE
+ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE},
+ #else
+ {"WRONG_CONTENT_TYPE", 33, 113},
+ #endif
+ #ifdef PKCS7_R_WRONG_PKCS7_TYPE
+ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE},
+ #else
+ {"WRONG_PKCS7_TYPE", 33, 114},
+ #endif
+ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG
+ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG},
+ #else
+ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102},
+ #endif
+ #ifdef RAND_R_ALREADY_INSTANTIATED
+ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED},
+ #else
+ {"ALREADY_INSTANTIATED", 36, 103},
+ #endif
+ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE
+ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE},
+ #else
+ {"ARGUMENT_OUT_OF_RANGE", 36, 105},
+ #endif
+ #ifdef RAND_R_CANNOT_OPEN_FILE
+ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE},
+ #else
+ {"CANNOT_OPEN_FILE", 36, 121},
+ #endif
+ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED
+ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED},
+ #else
+ {"DRBG_ALREADY_INITIALIZED", 36, 129},
+ #endif
+ #ifdef RAND_R_DRBG_NOT_INITIALISED
+ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED},
+ #else
+ {"DRBG_NOT_INITIALISED", 36, 104},
+ #endif
+ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG
+ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG},
+ #else
+ {"ENTROPY_INPUT_TOO_LONG", 36, 106},
+ #endif
+ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE
+ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE},
+ #else
+ {"ENTROPY_OUT_OF_RANGE", 36, 124},
+ #endif
+ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED
+ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED},
+ #else
+ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127},
+ #endif
+ #ifdef RAND_R_ERROR_INITIALISING_DRBG
+ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG},
+ #else
+ {"ERROR_INITIALISING_DRBG", 36, 107},
+ #endif
+ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG
+ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG},
+ #else
+ {"ERROR_INSTANTIATING_DRBG", 36, 108},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT
+ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT},
+ #else
+ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY
+ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY},
+ #else
+ {"ERROR_RETRIEVING_ENTROPY", 36, 110},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_NONCE
+ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE},
+ #else
+ {"ERROR_RETRIEVING_NONCE", 36, 111},
+ #endif
+ #ifdef RAND_R_FAILED_TO_CREATE_LOCK
+ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK},
+ #else
+ {"FAILED_TO_CREATE_LOCK", 36, 126},
+ #endif
+ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED
+ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED},
+ #else
+ {"FUNC_NOT_IMPLEMENTED", 36, 101},
+ #endif
+ #ifdef RAND_R_FWRITE_ERROR
+ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR},
+ #else
+ {"FWRITE_ERROR", 36, 123},
+ #endif
+ #ifdef RAND_R_GENERATE_ERROR
+ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR},
+ #else
+ {"GENERATE_ERROR", 36, 112},
+ #endif
+ #ifdef RAND_R_INTERNAL_ERROR
+ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR},
+ #else
+ {"INTERNAL_ERROR", 36, 113},
+ #endif
+ #ifdef RAND_R_IN_ERROR_STATE
+ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
+ #else
+ {"IN_ERROR_STATE", 36, 114},
+ #endif
+ #ifdef RAND_R_NOT_A_REGULAR_FILE
+ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE},
+ #else
+ {"NOT_A_REGULAR_FILE", 36, 122},
+ #endif
+ #ifdef RAND_R_NOT_INSTANTIATED
+ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED},
+ #else
+ {"NOT_INSTANTIATED", 36, 115},
+ #endif
+ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED
+ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED},
+ #else
+ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128},
+ #endif
+ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED
+ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED},
+ #else
+ {"PARENT_LOCKING_NOT_ENABLED", 36, 130},
+ #endif
+ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK
+ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK},
+ #else
+ {"PARENT_STRENGTH_TOO_WEAK", 36, 131},
+ #endif
+ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG
+ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG},
+ #else
+ {"PERSONALISATION_STRING_TOO_LONG", 36, 116},
+ #endif
+ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED
+ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED},
+ #else
+ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133},
+ #endif
+ #ifdef RAND_R_PRNG_NOT_SEEDED
+ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED},
+ #else
+ {"PRNG_NOT_SEEDED", 36, 100},
+ #endif
+ #ifdef RAND_R_RANDOM_POOL_OVERFLOW
+ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW},
+ #else
+ {"RANDOM_POOL_OVERFLOW", 36, 125},
+ #endif
+ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW
+ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW},
+ #else
+ {"RANDOM_POOL_UNDERFLOW", 36, 134},
+ #endif
+ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG
+ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG},
+ #else
+ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117},
+ #endif
+ #ifdef RAND_R_RESEED_ERROR
+ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR},
+ #else
+ {"RESEED_ERROR", 36, 118},
+ #endif
+ #ifdef RAND_R_SELFTEST_FAILURE
+ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE},
+ #else
+ {"SELFTEST_FAILURE", 36, 119},
+ #endif
+ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED
+ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED},
+ #else
+ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135},
+ #endif
+ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED
+ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED},
+ #else
+ {"TOO_MUCH_NONCE_REQUESTED", 36, 136},
+ #endif
+ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS
+ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS},
+ #else
+ {"UNSUPPORTED_DRBG_FLAGS", 36, 132},
+ #endif
+ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE
+ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE},
+ #else
+ {"UNSUPPORTED_DRBG_TYPE", 36, 120},
+ #endif
+ #ifdef RSA_R_ALGORITHM_MISMATCH
+ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH},
+ #else
+ {"ALGORITHM_MISMATCH", 4, 100},
+ #endif
+ #ifdef RSA_R_BAD_E_VALUE
+ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE},
+ #else
+ {"BAD_E_VALUE", 4, 101},
+ #endif
+ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT
+ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT},
+ #else
+ {"BAD_FIXED_HEADER_DECRYPT", 4, 102},
+ #endif
+ #ifdef RSA_R_BAD_PAD_BYTE_COUNT
+ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT},
+ #else
+ {"BAD_PAD_BYTE_COUNT", 4, 103},
+ #endif
+ #ifdef RSA_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 4, 104},
+ #endif
+ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01
+ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01},
+ #else
+ {"BLOCK_TYPE_IS_NOT_01", 4, 106},
+ #endif
+ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02
+ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02},
+ #else
+ {"BLOCK_TYPE_IS_NOT_02", 4, 107},
+ #endif
+ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN
+ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN},
+ #else
+ {"DATA_GREATER_THAN_MOD_LEN", 4, 108},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE
+ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE},
+ #else
+ {"DATA_TOO_LARGE", 4, 109},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
+ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE},
+ #else
+ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS
+ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS},
+ #else
+ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132},
+ #endif
+ #ifdef RSA_R_DATA_TOO_SMALL
+ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL},
+ #else
+ {"DATA_TOO_SMALL", 4, 111},
+ #endif
+ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE
+ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE},
+ #else
+ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122},
+ #endif
+ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH
+ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH},
+ #else
+ {"DIGEST_DOES_NOT_MATCH", 4, 158},
+ #endif
+ #ifdef RSA_R_DIGEST_NOT_ALLOWED
+ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED},
+ #else
+ {"DIGEST_NOT_ALLOWED", 4, 145},
+ #endif
+ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY
+ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY},
+ #else
+ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112},
+ #endif
+ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D
+ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D},
+ #else
+ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124},
+ #endif
+ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D
+ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D},
+ #else
+ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125},
+ #endif
+ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1
+ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1},
+ #else
+ {"D_E_NOT_CONGRUENT_TO_1", 4, 123},
+ #endif
+ #ifdef RSA_R_FIRST_OCTET_INVALID
+ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID},
+ #else
+ {"FIRST_OCTET_INVALID", 4, 133},
+ #endif
+ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
+ #else
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144},
+ #endif
+ #ifdef RSA_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 4, 157},
+ #endif
+ #ifdef RSA_R_INVALID_DIGEST_LENGTH
+ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH},
+ #else
+ {"INVALID_DIGEST_LENGTH", 4, 143},
+ #endif
+ #ifdef RSA_R_INVALID_HEADER
+ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER},
+ #else
+ {"INVALID_HEADER", 4, 137},
+ #endif
+ #ifdef RSA_R_INVALID_LABEL
+ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL},
+ #else
+ {"INVALID_LABEL", 4, 160},
+ #endif
+ #ifdef RSA_R_INVALID_MESSAGE_LENGTH
+ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH},
+ #else
+ {"INVALID_MESSAGE_LENGTH", 4, 131},
+ #endif
+ #ifdef RSA_R_INVALID_MGF1_MD
+ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD},
+ #else
+ {"INVALID_MGF1_MD", 4, 156},
+ #endif
+ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY
+ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY},
+ #else
+ {"INVALID_MULTI_PRIME_KEY", 4, 167},
+ #endif
+ #ifdef RSA_R_INVALID_OAEP_PARAMETERS
+ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS},
+ #else
+ {"INVALID_OAEP_PARAMETERS", 4, 161},
+ #endif
+ #ifdef RSA_R_INVALID_PADDING
+ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING},
+ #else
+ {"INVALID_PADDING", 4, 138},
+ #endif
+ #ifdef RSA_R_INVALID_PADDING_MODE
+ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE},
+ #else
+ {"INVALID_PADDING_MODE", 4, 141},
+ #endif
+ #ifdef RSA_R_INVALID_PSS_PARAMETERS
+ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS},
+ #else
+ {"INVALID_PSS_PARAMETERS", 4, 149},
+ #endif
+ #ifdef RSA_R_INVALID_PSS_SALTLEN
+ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN},
+ #else
+ {"INVALID_PSS_SALTLEN", 4, 146},
+ #endif
+ #ifdef RSA_R_INVALID_SALT_LENGTH
+ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH},
+ #else
+ {"INVALID_SALT_LENGTH", 4, 150},
+ #endif
+ #ifdef RSA_R_INVALID_TRAILER
+ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER},
+ #else
+ {"INVALID_TRAILER", 4, 139},
+ #endif
+ #ifdef RSA_R_INVALID_X931_DIGEST
+ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST},
+ #else
+ {"INVALID_X931_DIGEST", 4, 142},
+ #endif
+ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q
+ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q},
+ #else
+ {"IQMP_NOT_INVERSE_OF_Q", 4, 126},
+ #endif
+ #ifdef RSA_R_KEY_PRIME_NUM_INVALID
+ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID},
+ #else
+ {"KEY_PRIME_NUM_INVALID", 4, 165},
+ #endif
+ #ifdef RSA_R_KEY_SIZE_TOO_SMALL
+ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL},
+ #else
+ {"KEY_SIZE_TOO_SMALL", 4, 120},
+ #endif
+ #ifdef RSA_R_LAST_OCTET_INVALID
+ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID},
+ #else
+ {"LAST_OCTET_INVALID", 4, 134},
+ #endif
+ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED
+ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED},
+ #else
+ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152},
+ #endif
+ #ifdef RSA_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 4, 179},
+ #endif
+ #ifdef RSA_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 4, 105},
+ #endif
+ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R
+ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R},
+ #else
+ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168},
+ #endif
+ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D
+ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D},
+ #else
+ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169},
+ #endif
+ #ifdef RSA_R_MP_R_NOT_PRIME
+ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME},
+ #else
+ {"MP_R_NOT_PRIME", 4, 170},
+ #endif
+ #ifdef RSA_R_NO_PUBLIC_EXPONENT
+ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT},
+ #else
+ {"NO_PUBLIC_EXPONENT", 4, 140},
+ #endif
+ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING
+ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING},
+ #else
+ {"NULL_BEFORE_BLOCK_MISSING", 4, 113},
+ #endif
+ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES
+ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES},
+ #else
+ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172},
+ #endif
+ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q
+ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q},
+ #else
+ {"N_DOES_NOT_EQUAL_P_Q", 4, 127},
+ #endif
+ #ifdef RSA_R_OAEP_DECODING_ERROR
+ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR},
+ #else
+ {"OAEP_DECODING_ERROR", 4, 121},
+ #endif
+ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148},
+ #endif
+ #ifdef RSA_R_PADDING_CHECK_FAILED
+ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED},
+ #else
+ {"PADDING_CHECK_FAILED", 4, 114},
+ #endif
+ #ifdef RSA_R_PKCS_DECODING_ERROR
+ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR},
+ #else
+ {"PKCS_DECODING_ERROR", 4, 159},
+ #endif
+ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL
+ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL},
+ #else
+ {"PSS_SALTLEN_TOO_SMALL", 4, 164},
+ #endif
+ #ifdef RSA_R_P_NOT_PRIME
+ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME},
+ #else
+ {"P_NOT_PRIME", 4, 128},
+ #endif
+ #ifdef RSA_R_Q_NOT_PRIME
+ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME},
+ #else
+ {"Q_NOT_PRIME", 4, 129},
+ #endif
+ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED
+ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED},
+ #else
+ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130},
+ #endif
+ #ifdef RSA_R_SLEN_CHECK_FAILED
+ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED},
+ #else
+ {"SLEN_CHECK_FAILED", 4, 136},
+ #endif
+ #ifdef RSA_R_SLEN_RECOVERY_FAILED
+ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED},
+ #else
+ {"SLEN_RECOVERY_FAILED", 4, 135},
+ #endif
+ #ifdef RSA_R_SSLV3_ROLLBACK_ATTACK
+ {"SSLV3_ROLLBACK_ATTACK", ERR_LIB_RSA, RSA_R_SSLV3_ROLLBACK_ATTACK},
+ #else
+ {"SSLV3_ROLLBACK_ATTACK", 4, 115},
+ #endif
+ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
+ #else
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116},
+ #endif
+ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE
+ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE},
+ #else
+ {"UNKNOWN_ALGORITHM_TYPE", 4, 117},
+ #endif
+ #ifdef RSA_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 4, 166},
+ #endif
+ #ifdef RSA_R_UNKNOWN_MASK_DIGEST
+ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST},
+ #else
+ {"UNKNOWN_MASK_DIGEST", 4, 151},
+ #endif
+ #ifdef RSA_R_UNKNOWN_PADDING_TYPE
+ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE},
+ #else
+ {"UNKNOWN_PADDING_TYPE", 4, 118},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE
+ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE},
+ #else
+ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE
+ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE},
+ #else
+ {"UNSUPPORTED_LABEL_SOURCE", 4, 163},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM
+ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM},
+ #else
+ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER
+ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER},
+ #else
+ {"UNSUPPORTED_MASK_PARAMETER", 4, 154},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE
+ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE},
+ #else
+ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155},
+ #endif
+ #ifdef RSA_R_VALUE_MISSING
+ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING},
+ #else
+ {"VALUE_MISSING", 4, 147},
+ #endif
+ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH
+ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH},
+ #else
+ {"WRONG_SIGNATURE_LENGTH", 4, 119},
+ #endif
+ #ifdef SM2_R_ASN1_ERROR
+ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR},
+ #else
+ {"ASN1_ERROR", 53, 100},
+ #endif
+ #ifdef SM2_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 53, 101},
+ #endif
+ #ifdef SM2_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 53, 107},
+ #endif
+ #ifdef SM2_R_DIST_ID_TOO_LARGE
+ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE},
+ #else
+ {"DIST_ID_TOO_LARGE", 53, 110},
+ #endif
+ #ifdef SM2_R_ID_NOT_SET
+ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET},
+ #else
+ {"ID_NOT_SET", 53, 112},
+ #endif
+ #ifdef SM2_R_ID_TOO_LARGE
+ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE},
+ #else
+ {"ID_TOO_LARGE", 53, 111},
+ #endif
+ #ifdef SM2_R_INVALID_CURVE
+ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE},
+ #else
+ {"INVALID_CURVE", 53, 108},
+ #endif
+ #ifdef SM2_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 53, 102},
+ #endif
+ #ifdef SM2_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 53, 103},
+ #endif
+ #ifdef SM2_R_INVALID_ENCODING
+ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING},
+ #else
+ {"INVALID_ENCODING", 53, 104},
+ #endif
+ #ifdef SM2_R_INVALID_FIELD
+ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD},
+ #else
+ {"INVALID_FIELD", 53, 105},
+ #endif
+ #ifdef SM2_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 53, 109},
+ #endif
+ #ifdef SM2_R_USER_ID_TOO_LARGE
+ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE},
+ #else
+ {"USER_ID_TOO_LARGE", 53, 106},
+ #endif
+ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY
+ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY},
+ #else
+ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291},
+ #endif
+ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE
+ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE},
+ #else
+ {"APP_DATA_IN_HANDSHAKE", 20, 100},
+ #endif
+ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT
+ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT},
+ #else
+ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272},
+ #endif
+ #ifdef SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE
+ {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE},
+ #else
+ {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", 20, 143},
+ #endif
+ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE
+ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE},
+ #else
+ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
+ #endif
+ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
+ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
+ #else
+ {"BAD_CHANGE_CIPHER_SPEC", 20, 103},
+ #endif
+ #ifdef SSL_R_BAD_CIPHER
+ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER},
+ #else
+ {"BAD_CIPHER", 20, 186},
+ #endif
+ #ifdef SSL_R_BAD_DATA
+ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
+ #else
+ {"BAD_DATA", 20, 390},
+ #endif
+ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK
+ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK},
+ #else
+ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106},
+ #endif
+ #ifdef SSL_R_BAD_DECOMPRESSION
+ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION},
+ #else
+ {"BAD_DECOMPRESSION", 20, 107},
+ #endif
+ #ifdef SSL_R_BAD_DH_VALUE
+ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE},
+ #else
+ {"BAD_DH_VALUE", 20, 102},
+ #endif
+ #ifdef SSL_R_BAD_DIGEST_LENGTH
+ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH},
+ #else
+ {"BAD_DIGEST_LENGTH", 20, 111},
+ #endif
+ #ifdef SSL_R_BAD_EARLY_DATA
+ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA},
+ #else
+ {"BAD_EARLY_DATA", 20, 233},
+ #endif
+ #ifdef SSL_R_BAD_ECC_CERT
+ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT},
+ #else
+ {"BAD_ECC_CERT", 20, 304},
+ #endif
+ #ifdef SSL_R_BAD_ECPOINT
+ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT},
+ #else
+ {"BAD_ECPOINT", 20, 306},
+ #endif
+ #ifdef SSL_R_BAD_EXTENSION
+ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION},
+ #else
+ {"BAD_EXTENSION", 20, 110},
+ #endif
+ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH
+ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH},
+ #else
+ {"BAD_HANDSHAKE_LENGTH", 20, 332},
+ #endif
+ #ifdef SSL_R_BAD_HANDSHAKE_STATE
+ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE},
+ #else
+ {"BAD_HANDSHAKE_STATE", 20, 236},
+ #endif
+ #ifdef SSL_R_BAD_HELLO_REQUEST
+ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST},
+ #else
+ {"BAD_HELLO_REQUEST", 20, 105},
+ #endif
+ #ifdef SSL_R_BAD_HRR_VERSION
+ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION},
+ #else
+ {"BAD_HRR_VERSION", 20, 263},
+ #endif
+ #ifdef SSL_R_BAD_KEY_SHARE
+ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE},
+ #else
+ {"BAD_KEY_SHARE", 20, 108},
+ #endif
+ #ifdef SSL_R_BAD_KEY_UPDATE
+ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE},
+ #else
+ {"BAD_KEY_UPDATE", 20, 122},
+ #endif
+ #ifdef SSL_R_BAD_LEGACY_VERSION
+ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION},
+ #else
+ {"BAD_LEGACY_VERSION", 20, 292},
+ #endif
+ #ifdef SSL_R_BAD_LENGTH
+ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH},
+ #else
+ {"BAD_LENGTH", 20, 271},
+ #endif
+ #ifdef SSL_R_BAD_PACKET
+ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET},
+ #else
+ {"BAD_PACKET", 20, 240},
+ #endif
+ #ifdef SSL_R_BAD_PACKET_LENGTH
+ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH},
+ #else
+ {"BAD_PACKET_LENGTH", 20, 115},
+ #endif
+ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER
+ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER},
+ #else
+ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116},
+ #endif
+ #ifdef SSL_R_BAD_PSK
+ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK},
+ #else
+ {"BAD_PSK", 20, 219},
+ #endif
+ #ifdef SSL_R_BAD_PSK_IDENTITY
+ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY},
+ #else
+ {"BAD_PSK_IDENTITY", 20, 114},
+ #endif
+ #ifdef SSL_R_BAD_RECORD_TYPE
+ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE},
+ #else
+ {"BAD_RECORD_TYPE", 20, 443},
+ #endif
+ #ifdef SSL_R_BAD_RSA_ENCRYPT
+ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT},
+ #else
+ {"BAD_RSA_ENCRYPT", 20, 119},
+ #endif
+ #ifdef SSL_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 20, 123},
+ #endif
+ #ifdef SSL_R_BAD_SRP_A_LENGTH
+ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH},
+ #else
+ {"BAD_SRP_A_LENGTH", 20, 347},
+ #endif
+ #ifdef SSL_R_BAD_SRP_PARAMETERS
+ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS},
+ #else
+ {"BAD_SRP_PARAMETERS", 20, 371},
+ #endif
+ #ifdef SSL_R_BAD_SRTP_MKI_VALUE
+ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE},
+ #else
+ {"BAD_SRTP_MKI_VALUE", 20, 352},
+ #endif
+ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST
+ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST},
+ #else
+ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353},
+ #endif
+ #ifdef SSL_R_BAD_SSL_FILETYPE
+ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE},
+ #else
+ {"BAD_SSL_FILETYPE", 20, 124},
+ #endif
+ #ifdef SSL_R_BAD_VALUE
+ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE},
+ #else
+ {"BAD_VALUE", 20, 384},
+ #endif
+ #ifdef SSL_R_BAD_WRITE_RETRY
+ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY},
+ #else
+ {"BAD_WRITE_RETRY", 20, 127},
+ #endif
+ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY
+ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY},
+ #else
+ {"BINDER_DOES_NOT_VERIFY", 20, 253},
+ #endif
+ #ifdef SSL_R_BIO_NOT_SET
+ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET},
+ #else
+ {"BIO_NOT_SET", 20, 128},
+ #endif
+ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG
+ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG},
+ #else
+ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129},
+ #endif
+ #ifdef SSL_R_BN_LIB
+ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB},
+ #else
+ {"BN_LIB", 20, 130},
+ #endif
+ #ifdef SSL_R_CALLBACK_FAILED
+ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED},
+ #else
+ {"CALLBACK_FAILED", 20, 234},
+ #endif
+ #ifdef SSL_R_CANNOT_CHANGE_CIPHER
+ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER},
+ #else
+ {"CANNOT_CHANGE_CIPHER", 20, 109},
+ #endif
+ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH
+ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH},
+ #else
+ {"CA_DN_LENGTH_MISMATCH", 20, 131},
+ #endif
+ #ifdef SSL_R_CA_KEY_TOO_SMALL
+ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL},
+ #else
+ {"CA_KEY_TOO_SMALL", 20, 397},
+ #endif
+ #ifdef SSL_R_CA_MD_TOO_WEAK
+ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK},
+ #else
+ {"CA_MD_TOO_WEAK", 20, 398},
+ #endif
+ #ifdef SSL_R_CCS_RECEIVED_EARLY
+ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY},
+ #else
+ {"CCS_RECEIVED_EARLY", 20, 133},
+ #endif
+ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED
+ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED},
+ #else
+ {"CERTIFICATE_VERIFY_FAILED", 20, 134},
+ #endif
+ #ifdef SSL_R_CERT_CB_ERROR
+ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR},
+ #else
+ {"CERT_CB_ERROR", 20, 377},
+ #endif
+ #ifdef SSL_R_CERT_LENGTH_MISMATCH
+ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH},
+ #else
+ {"CERT_LENGTH_MISMATCH", 20, 135},
+ #endif
+ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED
+ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED},
+ #else
+ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218},
+ #endif
+ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH
+ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH},
+ #else
+ {"CIPHER_CODE_WRONG_LENGTH", 20, 137},
+ #endif
+ #ifdef SSL_R_CIPHER_OR_HASH_UNAVAILABLE
+ {"CIPHER_OR_HASH_UNAVAILABLE", ERR_LIB_SSL, SSL_R_CIPHER_OR_HASH_UNAVAILABLE},
+ #else
+ {"CIPHER_OR_HASH_UNAVAILABLE", 20, 138},
+ #endif
+ #ifdef SSL_R_CLIENTHELLO_TLSEXT
+ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT},
+ #else
+ {"CLIENTHELLO_TLSEXT", 20, 226},
+ #endif
+ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG
+ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG},
+ #else
+ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140},
+ #endif
+ #ifdef SSL_R_COMPRESSION_DISABLED
+ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED},
+ #else
+ {"COMPRESSION_DISABLED", 20, 343},
+ #endif
+ #ifdef SSL_R_COMPRESSION_FAILURE
+ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE},
+ #else
+ {"COMPRESSION_FAILURE", 20, 141},
+ #endif
+ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE
+ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE},
+ #else
+ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307},
+ #endif
+ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR
+ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR},
+ #else
+ {"COMPRESSION_LIBRARY_ERROR", 20, 142},
+ #endif
+ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET
+ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET},
+ #else
+ {"CONNECTION_TYPE_NOT_SET", 20, 144},
+ #endif
+ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
+ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
+ #else
+ {"CONTEXT_NOT_DANE_ENABLED", 20, 167},
+ #endif
+ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE
+ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE},
+ #else
+ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400},
+ #endif
+ #ifdef SSL_R_COOKIE_MISMATCH
+ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH},
+ #else
+ {"COOKIE_MISMATCH", 20, 308},
+ #endif
+ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED
+ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED},
+ #else
+ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206},
+ #endif
+ #ifdef SSL_R_DANE_ALREADY_ENABLED
+ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED},
+ #else
+ {"DANE_ALREADY_ENABLED", 20, 172},
+ #endif
+ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL
+ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL},
+ #else
+ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173},
+ #endif
+ #ifdef SSL_R_DANE_NOT_ENABLED
+ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED},
+ #else
+ {"DANE_NOT_ENABLED", 20, 175},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE
+ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE},
+ #else
+ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE
+ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE},
+ #else
+ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH
+ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH},
+ #else
+ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH
+ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH},
+ #else
+ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE
+ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE},
+ #else
+ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY
+ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY},
+ #else
+ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR
+ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR},
+ #else
+ {"DANE_TLSA_BAD_SELECTOR", 20, 202},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_NULL_DATA
+ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA},
+ #else
+ {"DANE_TLSA_NULL_DATA", 20, 203},
+ #endif
+ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED
+ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED},
+ #else
+ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145},
+ #endif
+ #ifdef SSL_R_DATA_LENGTH_TOO_LONG
+ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG},
+ #else
+ {"DATA_LENGTH_TOO_LONG", 20, 146},
+ #endif
+ #ifdef SSL_R_DECRYPTION_FAILED
+ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED},
+ #else
+ {"DECRYPTION_FAILED", 20, 147},
+ #endif
+ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC
+ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC},
+ #else
+ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281},
+ #endif
+ #ifdef SSL_R_DH_KEY_TOO_SMALL
+ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL},
+ #else
+ {"DH_KEY_TOO_SMALL", 20, 394},
+ #endif
+ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG
+ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG},
+ #else
+ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148},
+ #endif
+ #ifdef SSL_R_DIGEST_CHECK_FAILED
+ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED},
+ #else
+ {"DIGEST_CHECK_FAILED", 20, 149},
+ #endif
+ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG
+ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG},
+ #else
+ {"DTLS_MESSAGE_TOO_BIG", 20, 334},
+ #endif
+ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID
+ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID},
+ #else
+ {"DUPLICATE_COMPRESSION_ID", 20, 309},
+ #endif
+ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING
+ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING},
+ #else
+ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318},
+ #endif
+ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE
+ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE},
+ #else
+ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374},
+ #endif
+ #ifdef SSL_R_EE_KEY_TOO_SMALL
+ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL},
+ #else
+ {"EE_KEY_TOO_SMALL", 20, 399},
+ #endif
+ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST
+ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST},
+ #else
+ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354},
+ #endif
+ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG
+ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG},
+ #else
+ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150},
+ #endif
+ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST
+ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST},
+ #else
+ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
+ #endif
+ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
+ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
+ #else
+ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204},
+ #endif
+ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE
+ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE},
+ #else
+ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194},
+ #endif
+ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE
+ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE},
+ #else
+ {"EXCESSIVE_MESSAGE_SIZE", 20, 152},
+ #endif
+ #ifdef SSL_R_EXTENSION_NOT_RECEIVED
+ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED},
+ #else
+ {"EXTENSION_NOT_RECEIVED", 20, 279},
+ #endif
+ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE
+ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE},
+ #else
+ {"EXTRA_DATA_IN_MESSAGE", 20, 153},
+ #endif
+ #ifdef SSL_R_EXT_LENGTH_MISMATCH
+ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH},
+ #else
+ {"EXT_LENGTH_MISMATCH", 20, 163},
+ #endif
+ #ifdef SSL_R_FAILED_TO_INIT_ASYNC
+ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
+ #else
+ {"FAILED_TO_INIT_ASYNC", 20, 405},
+ #endif
+ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
+ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
+ #else
+ {"FRAGMENTED_CLIENT_HELLO", 20, 401},
+ #endif
+ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS
+ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS},
+ #else
+ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154},
+ #endif
+ #ifdef SSL_R_HTTPS_PROXY_REQUEST
+ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST},
+ #else
+ {"HTTPS_PROXY_REQUEST", 20, 155},
+ #endif
+ #ifdef SSL_R_HTTP_REQUEST
+ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST},
+ #else
+ {"HTTP_REQUEST", 20, 156},
+ #endif
+ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION
+ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION},
+ #else
+ {"ILLEGAL_POINT_COMPRESSION", 20, 162},
+ #endif
+ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST
+ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST},
+ #else
+ {"ILLEGAL_SUITEB_DIGEST", 20, 380},
+ #endif
+ #ifdef SSL_R_INAPPROPRIATE_FALLBACK
+ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK},
+ #else
+ {"INAPPROPRIATE_FALLBACK", 20, 373},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_COMPRESSION
+ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION},
+ #else
+ {"INCONSISTENT_COMPRESSION", 20, 340},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN
+ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN},
+ #else
+ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI
+ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI},
+ #else
+ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_EXTMS
+ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS},
+ #else
+ {"INCONSISTENT_EXTMS", 20, 104},
+ #endif
+ #ifdef SSL_R_INSUFFICIENT_SECURITY
+ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY},
+ #else
+ {"INSUFFICIENT_SECURITY", 20, 241},
+ #endif
+ #ifdef SSL_R_INVALID_ALERT
+ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT},
+ #else
+ {"INVALID_ALERT", 20, 205},
+ #endif
+ #ifdef SSL_R_INVALID_CCS_MESSAGE
+ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE},
+ #else
+ {"INVALID_CCS_MESSAGE", 20, 260},
+ #endif
+ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG
+ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG},
+ #else
+ {"INVALID_CERTIFICATE_OR_ALG", 20, 238},
+ #endif
+ #ifdef SSL_R_INVALID_COMMAND
+ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND},
+ #else
+ {"INVALID_COMMAND", 20, 280},
+ #endif
+ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM
+ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM},
+ #else
+ {"INVALID_COMPRESSION_ALGORITHM", 20, 341},
+ #endif
+ #ifdef SSL_R_INVALID_CONFIG
+ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG},
+ #else
+ {"INVALID_CONFIG", 20, 283},
+ #endif
+ #ifdef SSL_R_INVALID_CONFIGURATION_NAME
+ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME},
+ #else
+ {"INVALID_CONFIGURATION_NAME", 20, 113},
+ #endif
+ #ifdef SSL_R_INVALID_CONTEXT
+ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT},
+ #else
+ {"INVALID_CONTEXT", 20, 282},
+ #endif
+ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE
+ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE},
+ #else
+ {"INVALID_CT_VALIDATION_TYPE", 20, 212},
+ #endif
+ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE
+ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE},
+ #else
+ {"INVALID_KEY_UPDATE_TYPE", 20, 120},
+ #endif
+ #ifdef SSL_R_INVALID_MAX_EARLY_DATA
+ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA},
+ #else
+ {"INVALID_MAX_EARLY_DATA", 20, 174},
+ #endif
+ #ifdef SSL_R_INVALID_NULL_CMD_NAME
+ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME},
+ #else
+ {"INVALID_NULL_CMD_NAME", 20, 385},
+ #endif
+ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
+ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
+ #else
+ {"INVALID_SEQUENCE_NUMBER", 20, 402},
+ #endif
+ #ifdef SSL_R_INVALID_SERVERINFO_DATA
+ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA},
+ #else
+ {"INVALID_SERVERINFO_DATA", 20, 388},
+ #endif
+ #ifdef SSL_R_INVALID_SESSION_ID
+ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID},
+ #else
+ {"INVALID_SESSION_ID", 20, 999},
+ #endif
+ #ifdef SSL_R_INVALID_SRP_USERNAME
+ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME},
+ #else
+ {"INVALID_SRP_USERNAME", 20, 357},
+ #endif
+ #ifdef SSL_R_INVALID_STATUS_RESPONSE
+ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE},
+ #else
+ {"INVALID_STATUS_RESPONSE", 20, 328},
+ #endif
+ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH
+ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH},
+ #else
+ {"INVALID_TICKET_KEYS_LENGTH", 20, 325},
+ #endif
+ #ifdef SSL_R_LENGTH_MISMATCH
+ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH},
+ #else
+ {"LENGTH_MISMATCH", 20, 159},
+ #endif
+ #ifdef SSL_R_LENGTH_TOO_LONG
+ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG},
+ #else
+ {"LENGTH_TOO_LONG", 20, 404},
+ #endif
+ #ifdef SSL_R_LENGTH_TOO_SHORT
+ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT},
+ #else
+ {"LENGTH_TOO_SHORT", 20, 160},
+ #endif
+ #ifdef SSL_R_LIBRARY_BUG
+ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG},
+ #else
+ {"LIBRARY_BUG", 20, 274},
+ #endif
+ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS
+ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS},
+ #else
+ {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
+ #endif
+ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT
+ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
+ #else
+ {"MISSING_DSA_SIGNING_CERT", 20, 165},
+ #endif
+ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT
+ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT},
+ #else
+ {"MISSING_ECDSA_SIGNING_CERT", 20, 381},
+ #endif
+ #ifdef SSL_R_MISSING_FATAL
+ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL},
+ #else
+ {"MISSING_FATAL", 20, 256},
+ #endif
+ #ifdef SSL_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 20, 290},
+ #endif
+ #ifdef SSL_R_MISSING_RSA_CERTIFICATE
+ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE},
+ #else
+ {"MISSING_RSA_CERTIFICATE", 20, 168},
+ #endif
+ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT
+ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT},
+ #else
+ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169},
+ #endif
+ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT
+ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT},
+ #else
+ {"MISSING_RSA_SIGNING_CERT", 20, 170},
+ #endif
+ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION
+ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION},
+ #else
+ {"MISSING_SIGALGS_EXTENSION", 20, 112},
+ #endif
+ #ifdef SSL_R_MISSING_SIGNING_CERT
+ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT},
+ #else
+ {"MISSING_SIGNING_CERT", 20, 221},
+ #endif
+ #ifdef SSL_R_MISSING_SRP_PARAM
+ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM},
+ #else
+ {"MISSING_SRP_PARAM", 20, 358},
+ #endif
+ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION
+ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION},
+ #else
+ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
+ #endif
+ #ifdef SSL_R_MISSING_TMP_DH_KEY
+ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
+ #else
+ {"MISSING_TMP_DH_KEY", 20, 171},
+ #endif
+ #ifdef SSL_R_MISSING_TMP_ECDH_KEY
+ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY},
+ #else
+ {"MISSING_TMP_ECDH_KEY", 20, 311},
+ #endif
+ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA
+ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA},
+ #else
+ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293},
+ #endif
+ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY
+ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY},
+ #else
+ {"NOT_ON_RECORD_BOUNDARY", 20, 182},
+ #endif
+ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE
+ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE},
+ #else
+ {"NOT_REPLACING_CERTIFICATE", 20, 289},
+ #endif
+ #ifdef SSL_R_NOT_SERVER
+ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER},
+ #else
+ {"NOT_SERVER", 20, 284},
+ #endif
+ #ifdef SSL_R_NO_APPLICATION_PROTOCOL
+ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL},
+ #else
+ {"NO_APPLICATION_PROTOCOL", 20, 235},
+ #endif
+ #ifdef SSL_R_NO_CERTIFICATES_RETURNED
+ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED},
+ #else
+ {"NO_CERTIFICATES_RETURNED", 20, 176},
+ #endif
+ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED
+ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED},
+ #else
+ {"NO_CERTIFICATE_ASSIGNED", 20, 177},
+ #endif
+ #ifdef SSL_R_NO_CERTIFICATE_SET
+ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET},
+ #else
+ {"NO_CERTIFICATE_SET", 20, 179},
+ #endif
+ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR
+ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR},
+ #else
+ {"NO_CHANGE_FOLLOWING_HRR", 20, 214},
+ #endif
+ #ifdef SSL_R_NO_CIPHERS_AVAILABLE
+ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE},
+ #else
+ {"NO_CIPHERS_AVAILABLE", 20, 181},
+ #endif
+ #ifdef SSL_R_NO_CIPHERS_SPECIFIED
+ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED},
+ #else
+ {"NO_CIPHERS_SPECIFIED", 20, 183},
+ #endif
+ #ifdef SSL_R_NO_CIPHER_MATCH
+ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH},
+ #else
+ {"NO_CIPHER_MATCH", 20, 185},
+ #endif
+ #ifdef SSL_R_NO_CLIENT_CERT_METHOD
+ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD},
+ #else
+ {"NO_CLIENT_CERT_METHOD", 20, 331},
+ #endif
+ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED
+ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED},
+ #else
+ {"NO_COMPRESSION_SPECIFIED", 20, 187},
+ #endif
+ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET
+ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET},
+ #else
+ {"NO_COOKIE_CALLBACK_SET", 20, 287},
+ #endif
+ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER
+ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER},
+ #else
+ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330},
+ #endif
+ #ifdef SSL_R_NO_METHOD_SPECIFIED
+ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED},
+ #else
+ {"NO_METHOD_SPECIFIED", 20, 188},
+ #endif
+ #ifdef SSL_R_NO_PEM_EXTENSIONS
+ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS},
+ #else
+ {"NO_PEM_EXTENSIONS", 20, 389},
+ #endif
+ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED
+ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED},
+ #else
+ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190},
+ #endif
+ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE
+ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE},
+ #else
+ {"NO_PROTOCOLS_AVAILABLE", 20, 191},
+ #endif
+ #ifdef SSL_R_NO_RENEGOTIATION
+ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION},
+ #else
+ {"NO_RENEGOTIATION", 20, 339},
+ #endif
+ #ifdef SSL_R_NO_REQUIRED_DIGEST
+ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST},
+ #else
+ {"NO_REQUIRED_DIGEST", 20, 324},
+ #endif
+ #ifdef SSL_R_NO_SHARED_CIPHER
+ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER},
+ #else
+ {"NO_SHARED_CIPHER", 20, 193},
+ #endif
+ #ifdef SSL_R_NO_SHARED_GROUPS
+ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS},
+ #else
+ {"NO_SHARED_GROUPS", 20, 410},
+ #endif
+ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS
+ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS},
+ #else
+ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376},
+ #endif
+ #ifdef SSL_R_NO_SRTP_PROFILES
+ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES},
+ #else
+ {"NO_SRTP_PROFILES", 20, 359},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE
+ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE},
+ #else
+ {"NO_SUITABLE_KEY_SHARE", 20, 101},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
+ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
+ #else
+ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118},
+ #endif
+ #ifdef SSL_R_NO_VALID_SCTS
+ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS},
+ #else
+ {"NO_VALID_SCTS", 20, 216},
+ #endif
+ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK
+ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK},
+ #else
+ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403},
+ #endif
+ #ifdef SSL_R_NULL_SSL_CTX
+ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX},
+ #else
+ {"NULL_SSL_CTX", 20, 195},
+ #endif
+ #ifdef SSL_R_NULL_SSL_METHOD_PASSED
+ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED},
+ #else
+ {"NULL_SSL_METHOD_PASSED", 20, 196},
+ #endif
+ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED
+ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED},
+ #else
+ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197},
+ #endif
+ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED
+ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED},
+ #else
+ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344},
+ #endif
+ #ifdef SSL_R_OVERFLOW_ERROR
+ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR},
+ #else
+ {"OVERFLOW_ERROR", 20, 237},
+ #endif
+ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG
+ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG},
+ #else
+ {"PACKET_LENGTH_TOO_LONG", 20, 198},
+ #endif
+ #ifdef SSL_R_PARSE_TLSEXT
+ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT},
+ #else
+ {"PARSE_TLSEXT", 20, 227},
+ #endif
+ #ifdef SSL_R_PATH_TOO_LONG
+ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG},
+ #else
+ {"PATH_TOO_LONG", 20, 270},
+ #endif
+ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE
+ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE},
+ #else
+ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199},
+ #endif
+ #ifdef SSL_R_PEM_NAME_BAD_PREFIX
+ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX},
+ #else
+ {"PEM_NAME_BAD_PREFIX", 20, 391},
+ #endif
+ #ifdef SSL_R_PEM_NAME_TOO_SHORT
+ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT},
+ #else
+ {"PEM_NAME_TOO_SHORT", 20, 392},
+ #endif
+ #ifdef SSL_R_PIPELINE_FAILURE
+ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE},
+ #else
+ {"PIPELINE_FAILURE", 20, 406},
+ #endif
+ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
+ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
+ #else
+ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278},
+ #endif
+ #ifdef SSL_R_PRIVATE_KEY_MISMATCH
+ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH},
+ #else
+ {"PRIVATE_KEY_MISMATCH", 20, 288},
+ #endif
+ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN
+ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN},
+ #else
+ {"PROTOCOL_IS_SHUTDOWN", 20, 207},
+ #endif
+ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND
+ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND},
+ #else
+ {"PSK_IDENTITY_NOT_FOUND", 20, 223},
+ #endif
+ #ifdef SSL_R_PSK_NO_CLIENT_CB
+ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB},
+ #else
+ {"PSK_NO_CLIENT_CB", 20, 224},
+ #endif
+ #ifdef SSL_R_PSK_NO_SERVER_CB
+ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB},
+ #else
+ {"PSK_NO_SERVER_CB", 20, 225},
+ #endif
+ #ifdef SSL_R_READ_BIO_NOT_SET
+ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
+ #else
+ {"READ_BIO_NOT_SET", 20, 211},
+ #endif
+ #ifdef SSL_R_READ_TIMEOUT_EXPIRED
+ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED},
+ #else
+ {"READ_TIMEOUT_EXPIRED", 20, 312},
+ #endif
+ #ifdef SSL_R_RECORD_LENGTH_MISMATCH
+ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
+ #else
+ {"RECORD_LENGTH_MISMATCH", 20, 213},
+ #endif
+ #ifdef SSL_R_RECORD_TOO_SMALL
+ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL},
+ #else
+ {"RECORD_TOO_SMALL", 20, 298},
+ #endif
+ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
+ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
+ #else
+ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335},
+ #endif
+ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR
+ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR},
+ #else
+ {"RENEGOTIATION_ENCODING_ERR", 20, 336},
+ #endif
+ #ifdef SSL_R_RENEGOTIATION_MISMATCH
+ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH},
+ #else
+ {"RENEGOTIATION_MISMATCH", 20, 337},
+ #endif
+ #ifdef SSL_R_REQUEST_PENDING
+ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING},
+ #else
+ {"REQUEST_PENDING", 20, 285},
+ #endif
+ #ifdef SSL_R_REQUEST_SENT
+ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT},
+ #else
+ {"REQUEST_SENT", 20, 286},
+ #endif
+ #ifdef SSL_R_REQUIRED_CIPHER_MISSING
+ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING},
+ #else
+ {"REQUIRED_CIPHER_MISSING", 20, 215},
+ #endif
+ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING
+ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING},
+ #else
+ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342},
+ #endif
+ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING
+ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING},
+ #else
+ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345},
+ #endif
+ #ifdef SSL_R_SCT_VERIFICATION_FAILED
+ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED},
+ #else
+ {"SCT_VERIFICATION_FAILED", 20, 208},
+ #endif
+ #ifdef SSL_R_SERVERHELLO_TLSEXT
+ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
+ #else
+ {"SERVERHELLO_TLSEXT", 20, 275},
+ #endif
+ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED
+ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED},
+ #else
+ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277},
+ #endif
+ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT
+ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT},
+ #else
+ {"SHUTDOWN_WHILE_IN_INIT", 20, 407},
+ #endif
+ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR
+ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR},
+ #else
+ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360},
+ #endif
+ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE
+ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE},
+ #else
+ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220},
+ #endif
+ #ifdef SSL_R_SRP_A_CALC
+ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC},
+ #else
+ {"SRP_A_CALC", 20, 361},
+ #endif
+ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES
+ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES},
+ #else
+ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362},
+ #endif
+ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG
+ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG},
+ #else
+ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363},
+ #endif
+ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE
+ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE},
+ #else
+ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364},
+ #endif
+ #ifdef SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH
+ {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH},
+ #else
+ {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232},
+ #endif
+ #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME
+ {"SSL3_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME},
+ #else
+ {"SSL3_EXT_INVALID_SERVERNAME", 20, 319},
+ #endif
+ #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE
+ {"SSL3_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE},
+ #else
+ {"SSL3_EXT_INVALID_SERVERNAME_TYPE", 20, 320},
+ #endif
+ #ifdef SSL_R_SSL3_SESSION_ID_TOO_LONG
+ {"SSL3_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL3_SESSION_ID_TOO_LONG},
+ #else
+ {"SSL3_SESSION_ID_TOO_LONG", 20, 300},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
+ {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
+ {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
+ #else
+ {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
+ #else
+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
+ #else
+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
+ #else
+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
+ {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
+ #else
+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
+ #endif
+ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
+ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
+ #else
+ {"SSL_COMMAND_SECTION_EMPTY", 20, 117},
+ #endif
+ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND
+ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND},
+ #else
+ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125},
+ #endif
+ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION
+ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION},
+ #else
+ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228},
+ #endif
+ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE
+ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE},
+ #else
+ {"SSL_HANDSHAKE_FAILURE", 20, 229},
+ #endif
+ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS
+ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS},
+ #else
+ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230},
+ #endif
+ #ifdef SSL_R_SSL_NEGATIVE_LENGTH
+ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH},
+ #else
+ {"SSL_NEGATIVE_LENGTH", 20, 372},
+ #endif
+ #ifdef SSL_R_SSL_SECTION_EMPTY
+ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY},
+ #else
+ {"SSL_SECTION_EMPTY", 20, 126},
+ #endif
+ #ifdef SSL_R_SSL_SECTION_NOT_FOUND
+ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND},
+ #else
+ {"SSL_SECTION_NOT_FOUND", 20, 136},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED
+ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED},
+ #else
+ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT
+ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT},
+ #else
+ {"SSL_SESSION_ID_CONFLICT", 20, 302},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG
+ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG},
+ #else
+ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH
+ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH},
+ #else
+ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG
+ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG},
+ #else
+ {"SSL_SESSION_ID_TOO_LONG", 20, 408},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH
+ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH},
+ #else
+ {"SSL_SESSION_VERSION_MISMATCH", 20, 210},
+ #endif
+ #ifdef SSL_R_STILL_IN_INIT
+ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT},
+ #else
+ {"STILL_IN_INIT", 20, 121},
+ #endif
+ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
+ #else
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
+ #endif
+ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
+ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
+ #else
+ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
+ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
+ #else
+ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
+ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
+ #else
+ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
+ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
+ #else
+ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
+ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
+ #else
+ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
+ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
+ #else
+ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
+ #else
+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
+ #else
+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
+ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
+ #else
+ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
+ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
+ #else
+ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
+ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
+ #else
+ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
+ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
+ #else
+ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
+ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
+ #else
+ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
+ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
+ #else
+ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
+ #endif
+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
+ #else
+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
+ #endif
+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE
+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE},
+ #else
+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
+ #endif
+ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
+ #else
+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
+ #endif
+ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
+ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
+ #else
+ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
+ #endif
+ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
+ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
+ #else
+ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
+ #endif
+ #ifdef SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT
+ {"TLS_HEARTBEAT_PEER_DOESNT_ACCEPT", ERR_LIB_SSL, SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT},
+ #else
+ {"TLS_HEARTBEAT_PEER_DOESNT_ACCEPT", 20, 365},
+ #endif
+ #ifdef SSL_R_TLS_HEARTBEAT_PENDING
+ {"TLS_HEARTBEAT_PENDING", ERR_LIB_SSL, SSL_R_TLS_HEARTBEAT_PENDING},
+ #else
+ {"TLS_HEARTBEAT_PENDING", 20, 366},
+ #endif
+ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL
+ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL},
+ #else
+ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367},
+ #endif
+ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST
+ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST},
+ #else
+ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157},
+ #endif
+ #ifdef SSL_R_TOO_MANY_KEY_UPDATES
+ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES},
+ #else
+ {"TOO_MANY_KEY_UPDATES", 20, 132},
+ #endif
+ #ifdef SSL_R_TOO_MANY_WARN_ALERTS
+ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS},
+ #else
+ {"TOO_MANY_WARN_ALERTS", 20, 409},
+ #endif
+ #ifdef SSL_R_TOO_MUCH_EARLY_DATA
+ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA},
+ #else
+ {"TOO_MUCH_EARLY_DATA", 20, 164},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS
+ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS},
+ #else
+ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS
+ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS},
+ #else
+ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES
+ {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES},
+ #else
+ {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", 20, 242},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES
+ {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES},
+ #else
+ {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", 20, 243},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE
+ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE},
+ #else
+ {"UNEXPECTED_CCS_MESSAGE", 20, 262},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA
+ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA},
+ #else
+ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_MESSAGE
+ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE},
+ #else
+ {"UNEXPECTED_MESSAGE", 20, 244},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_RECORD
+ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD},
+ #else
+ {"UNEXPECTED_RECORD", 20, 245},
+ #endif
+ #ifdef SSL_R_UNINITIALIZED
+ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED},
+ #else
+ {"UNINITIALIZED", 20, 276},
+ #endif
+ #ifdef SSL_R_UNKNOWN_ALERT_TYPE
+ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE},
+ #else
+ {"UNKNOWN_ALERT_TYPE", 20, 246},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE
+ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE},
+ #else
+ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED
+ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED},
+ #else
+ {"UNKNOWN_CIPHER_RETURNED", 20, 248},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE
+ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE},
+ #else
+ {"UNKNOWN_CIPHER_TYPE", 20, 249},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CMD_NAME
+ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME},
+ #else
+ {"UNKNOWN_CMD_NAME", 20, 386},
+ #endif
+ #ifdef SSL_R_UNKNOWN_COMMAND
+ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND},
+ #else
+ {"UNKNOWN_COMMAND", 20, 139},
+ #endif
+ #ifdef SSL_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 20, 368},
+ #endif
+ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE
+ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE},
+ #else
+ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
+ #endif
+ #ifdef SSL_R_UNKNOWN_PKEY_TYPE
+ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
+ #else
+ {"UNKNOWN_PKEY_TYPE", 20, 251},
+ #endif
+ #ifdef SSL_R_UNKNOWN_PROTOCOL
+ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL},
+ #else
+ {"UNKNOWN_PROTOCOL", 20, 252},
+ #endif
+ #ifdef SSL_R_UNKNOWN_SSL_VERSION
+ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION},
+ #else
+ {"UNKNOWN_SSL_VERSION", 20, 254},
+ #endif
+ #ifdef SSL_R_UNKNOWN_STATE
+ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE},
+ #else
+ {"UNKNOWN_STATE", 20, 255},
+ #endif
+ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED
+ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED},
+ #else
+ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338},
+ #endif
+ #ifdef SSL_R_UNSOLICITED_EXTENSION
+ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION},
+ #else
+ {"UNSOLICITED_EXTENSION", 20, 217},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
+ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
+ #else
+ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_PROTOCOL
+ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL},
+ #else
+ {"UNSUPPORTED_PROTOCOL", 20, 258},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION
+ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION},
+ #else
+ {"UNSUPPORTED_SSL_VERSION", 20, 259},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE
+ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE},
+ #else
+ {"UNSUPPORTED_STATUS_TYPE", 20, 329},
+ #endif
+ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
+ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
+ #else
+ {"USE_SRTP_NOT_NEGOTIATED", 20, 369},
+ #endif
+ #ifdef SSL_R_VERSION_TOO_HIGH
+ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH},
+ #else
+ {"VERSION_TOO_HIGH", 20, 166},
+ #endif
+ #ifdef SSL_R_VERSION_TOO_LOW
+ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW},
+ #else
+ {"VERSION_TOO_LOW", 20, 396},
+ #endif
+ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE
+ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE},
+ #else
+ {"WRONG_CERTIFICATE_TYPE", 20, 383},
+ #endif
+ #ifdef SSL_R_WRONG_CIPHER_RETURNED
+ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED},
+ #else
+ {"WRONG_CIPHER_RETURNED", 20, 261},
+ #endif
+ #ifdef SSL_R_WRONG_CURVE
+ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE},
+ #else
+ {"WRONG_CURVE", 20, 378},
+ #endif
+ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH
+ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
+ #else
+ {"WRONG_SIGNATURE_LENGTH", 20, 264},
+ #endif
+ #ifdef SSL_R_WRONG_SIGNATURE_SIZE
+ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE},
+ #else
+ {"WRONG_SIGNATURE_SIZE", 20, 265},
+ #endif
+ #ifdef SSL_R_WRONG_SIGNATURE_TYPE
+ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE},
+ #else
+ {"WRONG_SIGNATURE_TYPE", 20, 370},
+ #endif
+ #ifdef SSL_R_WRONG_SSL_VERSION
+ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION},
+ #else
+ {"WRONG_SSL_VERSION", 20, 266},
+ #endif
+ #ifdef SSL_R_WRONG_VERSION_NUMBER
+ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER},
+ #else
+ {"WRONG_VERSION_NUMBER", 20, 267},
+ #endif
+ #ifdef SSL_R_X509_LIB
+ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB},
+ #else
+ {"X509_LIB", 20, 268},
+ #endif
+ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS
+ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS},
+ #else
+ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269},
+ #endif
+ #ifdef TS_R_BAD_PKCS7_TYPE
+ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE},
+ #else
+ {"BAD_PKCS7_TYPE", 47, 132},
+ #endif
+ #ifdef TS_R_BAD_TYPE
+ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE},
+ #else
+ {"BAD_TYPE", 47, 133},
+ #endif
+ #ifdef TS_R_CANNOT_LOAD_CERT
+ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT},
+ #else
+ {"CANNOT_LOAD_CERT", 47, 137},
+ #endif
+ #ifdef TS_R_CANNOT_LOAD_KEY
+ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY},
+ #else
+ {"CANNOT_LOAD_KEY", 47, 138},
+ #endif
+ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 47, 100},
+ #endif
+ #ifdef TS_R_COULD_NOT_SET_ENGINE
+ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE},
+ #else
+ {"COULD_NOT_SET_ENGINE", 47, 127},
+ #endif
+ #ifdef TS_R_COULD_NOT_SET_TIME
+ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME},
+ #else
+ {"COULD_NOT_SET_TIME", 47, 115},
+ #endif
+ #ifdef TS_R_DETACHED_CONTENT
+ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT},
+ #else
+ {"DETACHED_CONTENT", 47, 134},
+ #endif
+ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR
+ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR},
+ #else
+ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116},
+ #endif
+ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR
+ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR},
+ #else
+ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139},
+ #endif
+ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR
+ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR},
+ #else
+ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101},
+ #endif
+ #ifdef TS_R_INVALID_NULL_POINTER
+ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER},
+ #else
+ {"INVALID_NULL_POINTER", 47, 102},
+ #endif
+ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE
+ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE},
+ #else
+ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117},
+ #endif
+ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH
+ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH},
+ #else
+ {"MESSAGE_IMPRINT_MISMATCH", 47, 103},
+ #endif
+ #ifdef TS_R_NONCE_MISMATCH
+ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH},
+ #else
+ {"NONCE_MISMATCH", 47, 104},
+ #endif
+ #ifdef TS_R_NONCE_NOT_RETURNED
+ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED},
+ #else
+ {"NONCE_NOT_RETURNED", 47, 105},
+ #endif
+ #ifdef TS_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 47, 106},
+ #endif
+ #ifdef TS_R_NO_TIME_STAMP_TOKEN
+ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN},
+ #else
+ {"NO_TIME_STAMP_TOKEN", 47, 107},
+ #endif
+ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR
+ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118},
+ #endif
+ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR
+ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119},
+ #endif
+ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED
+ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED},
+ #else
+ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129},
+ #endif
+ #ifdef TS_R_POLICY_MISMATCH
+ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH},
+ #else
+ {"POLICY_MISMATCH", 47, 108},
+ #endif
+ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120},
+ #endif
+ #ifdef TS_R_RESPONSE_SETUP_ERROR
+ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR},
+ #else
+ {"RESPONSE_SETUP_ERROR", 47, 121},
+ #endif
+ #ifdef TS_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 47, 109},
+ #endif
+ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER
+ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER},
+ #else
+ {"THERE_MUST_BE_ONE_SIGNER", 47, 110},
+ #endif
+ #ifdef TS_R_TIME_SYSCALL_ERROR
+ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR},
+ #else
+ {"TIME_SYSCALL_ERROR", 47, 122},
+ #endif
+ #ifdef TS_R_TOKEN_NOT_PRESENT
+ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT},
+ #else
+ {"TOKEN_NOT_PRESENT", 47, 130},
+ #endif
+ #ifdef TS_R_TOKEN_PRESENT
+ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT},
+ #else
+ {"TOKEN_PRESENT", 47, 131},
+ #endif
+ #ifdef TS_R_TSA_NAME_MISMATCH
+ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH},
+ #else
+ {"TSA_NAME_MISMATCH", 47, 111},
+ #endif
+ #ifdef TS_R_TSA_UNTRUSTED
+ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED},
+ #else
+ {"TSA_UNTRUSTED", 47, 112},
+ #endif
+ #ifdef TS_R_TST_INFO_SETUP_ERROR
+ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR},
+ #else
+ {"TST_INFO_SETUP_ERROR", 47, 123},
+ #endif
+ #ifdef TS_R_TS_DATASIGN
+ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN},
+ #else
+ {"TS_DATASIGN", 47, 124},
+ #endif
+ #ifdef TS_R_UNACCEPTABLE_POLICY
+ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY},
+ #else
+ {"UNACCEPTABLE_POLICY", 47, 125},
+ #endif
+ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM
+ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM},
+ #else
+ {"UNSUPPORTED_MD_ALGORITHM", 47, 126},
+ #endif
+ #ifdef TS_R_UNSUPPORTED_VERSION
+ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION},
+ #else
+ {"UNSUPPORTED_VERSION", 47, 113},
+ #endif
+ #ifdef TS_R_VAR_BAD_VALUE
+ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE},
+ #else
+ {"VAR_BAD_VALUE", 47, 135},
+ #endif
+ #ifdef TS_R_VAR_LOOKUP_FAILURE
+ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE},
+ #else
+ {"VAR_LOOKUP_FAILURE", 47, 136},
+ #endif
+ #ifdef TS_R_WRONG_CONTENT_TYPE
+ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE},
+ #else
+ {"WRONG_CONTENT_TYPE", 47, 114},
+ #endif
+ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS
+ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS},
+ #else
+ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104},
+ #endif
+ #ifdef UI_R_INDEX_TOO_LARGE
+ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE},
+ #else
+ {"INDEX_TOO_LARGE", 40, 102},
+ #endif
+ #ifdef UI_R_INDEX_TOO_SMALL
+ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL},
+ #else
+ {"INDEX_TOO_SMALL", 40, 103},
+ #endif
+ #ifdef UI_R_NO_RESULT_BUFFER
+ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER},
+ #else
+ {"NO_RESULT_BUFFER", 40, 105},
+ #endif
+ #ifdef UI_R_PROCESSING_ERROR
+ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR},
+ #else
+ {"PROCESSING_ERROR", 40, 107},
+ #endif
+ #ifdef UI_R_RESULT_TOO_LARGE
+ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE},
+ #else
+ {"RESULT_TOO_LARGE", 40, 100},
+ #endif
+ #ifdef UI_R_RESULT_TOO_SMALL
+ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL},
+ #else
+ {"RESULT_TOO_SMALL", 40, 101},
+ #endif
+ #ifdef UI_R_SYSASSIGN_ERROR
+ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR},
+ #else
+ {"SYSASSIGN_ERROR", 40, 109},
+ #endif
+ #ifdef UI_R_SYSDASSGN_ERROR
+ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR},
+ #else
+ {"SYSDASSGN_ERROR", 40, 110},
+ #endif
+ #ifdef UI_R_SYSQIOW_ERROR
+ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR},
+ #else
+ {"SYSQIOW_ERROR", 40, 111},
+ #endif
+ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND
+ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND},
+ #else
+ {"UNKNOWN_CONTROL_COMMAND", 40, 106},
+ #endif
+ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE
+ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE},
+ #else
+ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108},
+ #endif
+ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED
+ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED},
+ #else
+ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112},
+ #endif
+ #ifdef X509V3_R_BAD_IP_ADDRESS
+ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS},
+ #else
+ {"BAD_IP_ADDRESS", 34, 118},
+ #endif
+ #ifdef X509V3_R_BAD_OBJECT
+ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT},
+ #else
+ {"BAD_OBJECT", 34, 119},
+ #endif
+ #ifdef X509V3_R_BN_DEC2BN_ERROR
+ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
+ #else
+ {"BN_DEC2BN_ERROR", 34, 100},
+ #endif
+ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR
+ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR},
+ #else
+ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101},
+ #endif
+ #ifdef X509V3_R_DIRNAME_ERROR
+ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR},
+ #else
+ {"DIRNAME_ERROR", 34, 149},
+ #endif
+ #ifdef X509V3_R_DISTPOINT_ALREADY_SET
+ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET},
+ #else
+ {"DISTPOINT_ALREADY_SET", 34, 160},
+ #endif
+ #ifdef X509V3_R_DUPLICATE_ZONE_ID
+ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID},
+ #else
+ {"DUPLICATE_ZONE_ID", 34, 133},
+ #endif
+ #ifdef X509V3_R_ERROR_CONVERTING_ZONE
+ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE},
+ #else
+ {"ERROR_CONVERTING_ZONE", 34, 131},
+ #endif
+ #ifdef X509V3_R_ERROR_CREATING_EXTENSION
+ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION},
+ #else
+ {"ERROR_CREATING_EXTENSION", 34, 144},
+ #endif
+ #ifdef X509V3_R_ERROR_IN_EXTENSION
+ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION},
+ #else
+ {"ERROR_IN_EXTENSION", 34, 128},
+ #endif
+ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME
+ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME},
+ #else
+ {"EXPECTED_A_SECTION_NAME", 34, 137},
+ #endif
+ #ifdef X509V3_R_EXTENSION_EXISTS
+ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS},
+ #else
+ {"EXTENSION_EXISTS", 34, 145},
+ #endif
+ #ifdef X509V3_R_EXTENSION_NAME_ERROR
+ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR},
+ #else
+ {"EXTENSION_NAME_ERROR", 34, 115},
+ #endif
+ #ifdef X509V3_R_EXTENSION_NOT_FOUND
+ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND},
+ #else
+ {"EXTENSION_NOT_FOUND", 34, 102},
+ #endif
+ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED
+ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED},
+ #else
+ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103},
+ #endif
+ #ifdef X509V3_R_EXTENSION_VALUE_ERROR
+ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR},
+ #else
+ {"EXTENSION_VALUE_ERROR", 34, 116},
+ #endif
+ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION
+ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION},
+ #else
+ {"ILLEGAL_EMPTY_EXTENSION", 34, 151},
+ #endif
+ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG
+ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG},
+ #else
+ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152},
+ #endif
+ #ifdef X509V3_R_INVALID_ASNUMBER
+ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER},
+ #else
+ {"INVALID_ASNUMBER", 34, 162},
+ #endif
+ #ifdef X509V3_R_INVALID_ASRANGE
+ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE},
+ #else
+ {"INVALID_ASRANGE", 34, 163},
+ #endif
+ #ifdef X509V3_R_INVALID_BOOLEAN_STRING
+ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING},
+ #else
+ {"INVALID_BOOLEAN_STRING", 34, 104},
+ #endif
+ #ifdef X509V3_R_INVALID_EXTENSION_STRING
+ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING},
+ #else
+ {"INVALID_EXTENSION_STRING", 34, 105},
+ #endif
+ #ifdef X509V3_R_INVALID_INHERITANCE
+ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE},
+ #else
+ {"INVALID_INHERITANCE", 34, 165},
+ #endif
+ #ifdef X509V3_R_INVALID_IPADDRESS
+ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS},
+ #else
+ {"INVALID_IPADDRESS", 34, 166},
+ #endif
+ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS
+ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS},
+ #else
+ {"INVALID_MULTIPLE_RDNS", 34, 161},
+ #endif
+ #ifdef X509V3_R_INVALID_NAME
+ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME},
+ #else
+ {"INVALID_NAME", 34, 106},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_ARGUMENT
+ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT},
+ #else
+ {"INVALID_NULL_ARGUMENT", 34, 107},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_NAME
+ {"INVALID_NULL_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_NAME},
+ #else
+ {"INVALID_NULL_NAME", 34, 108},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_VALUE
+ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE},
+ #else
+ {"INVALID_NULL_VALUE", 34, 109},
+ #endif
+ #ifdef X509V3_R_INVALID_NUMBER
+ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER},
+ #else
+ {"INVALID_NUMBER", 34, 140},
+ #endif
+ #ifdef X509V3_R_INVALID_NUMBERS
+ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS},
+ #else
+ {"INVALID_NUMBERS", 34, 141},
+ #endif
+ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER
+ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER},
+ #else
+ {"INVALID_OBJECT_IDENTIFIER", 34, 110},
+ #endif
+ #ifdef X509V3_R_INVALID_OPTION
+ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION},
+ #else
+ {"INVALID_OPTION", 34, 138},
+ #endif
+ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER
+ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER},
+ #else
+ {"INVALID_POLICY_IDENTIFIER", 34, 134},
+ #endif
+ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING
+ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING},
+ #else
+ {"INVALID_PROXY_POLICY_SETTING", 34, 153},
+ #endif
+ #ifdef X509V3_R_INVALID_PURPOSE
+ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE},
+ #else
+ {"INVALID_PURPOSE", 34, 146},
+ #endif
+ #ifdef X509V3_R_INVALID_SAFI
+ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI},
+ #else
+ {"INVALID_SAFI", 34, 164},
+ #endif
+ #ifdef X509V3_R_INVALID_SECTION
+ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION},
+ #else
+ {"INVALID_SECTION", 34, 135},
+ #endif
+ #ifdef X509V3_R_INVALID_SYNTAX
+ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX},
+ #else
+ {"INVALID_SYNTAX", 34, 143},
+ #endif
+ #ifdef X509V3_R_ISSUER_DECODE_ERROR
+ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR},
+ #else
+ {"ISSUER_DECODE_ERROR", 34, 126},
+ #endif
+ #ifdef X509V3_R_MISSING_VALUE
+ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE},
+ #else
+ {"MISSING_VALUE", 34, 124},
+ #endif
+ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS
+ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS},
+ #else
+ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142},
+ #endif
+ #ifdef X509V3_R_NO_CONFIG_DATABASE
+ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE},
+ #else
+ {"NO_CONFIG_DATABASE", 34, 136},
+ #endif
+ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE
+ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE},
+ #else
+ {"NO_ISSUER_CERTIFICATE", 34, 121},
+ #endif
+ #ifdef X509V3_R_NO_ISSUER_DETAILS
+ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS},
+ #else
+ {"NO_ISSUER_DETAILS", 34, 127},
+ #endif
+ #ifdef X509V3_R_NO_POLICY_IDENTIFIER
+ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER},
+ #else
+ {"NO_POLICY_IDENTIFIER", 34, 139},
+ #endif
+ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED
+ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED},
+ #else
+ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154},
+ #endif
+ #ifdef X509V3_R_NO_PUBLIC_KEY
+ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY},
+ #else
+ {"NO_PUBLIC_KEY", 34, 114},
+ #endif
+ #ifdef X509V3_R_NO_SUBJECT_DETAILS
+ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS},
+ #else
+ {"NO_SUBJECT_DETAILS", 34, 125},
+ #endif
+ #ifdef X509V3_R_OPERATION_NOT_DEFINED
+ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED},
+ #else
+ {"OPERATION_NOT_DEFINED", 34, 148},
+ #endif
+ #ifdef X509V3_R_OTHERNAME_ERROR
+ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR},
+ #else
+ {"OTHERNAME_ERROR", 34, 147},
+ #endif
+ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED
+ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED},
+ #else
+ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155},
+ #endif
+ #ifdef X509V3_R_POLICY_PATH_LENGTH
+ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH},
+ #else
+ {"POLICY_PATH_LENGTH", 34, 156},
+ #endif
+ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED
+ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED},
+ #else
+ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157},
+ #endif
+ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY
+ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY},
+ #else
+ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159},
+ #endif
+ #ifdef X509V3_R_SECTION_NOT_FOUND
+ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND},
+ #else
+ {"SECTION_NOT_FOUND", 34, 150},
+ #endif
+ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS
+ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS},
+ #else
+ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122},
+ #endif
+ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID
+ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID},
+ #else
+ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT
+ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT},
+ #else
+ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_EXTENSION
+ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION},
+ #else
+ {"UNKNOWN_EXTENSION", 34, 129},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME
+ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME},
+ #else
+ {"UNKNOWN_EXTENSION_NAME", 34, 130},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_OPTION
+ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION},
+ #else
+ {"UNKNOWN_OPTION", 34, 120},
+ #endif
+ #ifdef X509V3_R_UNSUPPORTED_OPTION
+ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
+ #else
+ {"UNSUPPORTED_OPTION", 34, 117},
+ #endif
+ #ifdef X509V3_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 34, 167},
+ #endif
+ #ifdef X509V3_R_USER_TOO_LONG
+ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG},
+ #else
+ {"USER_TOO_LONG", 34, 132},
+ #endif
+ #ifdef X509_R_AKID_MISMATCH
+ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH},
+ #else
+ {"AKID_MISMATCH", 11, 110},
+ #endif
+ #ifdef X509_R_BAD_SELECTOR
+ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR},
+ #else
+ {"BAD_SELECTOR", 11, 133},
+ #endif
+ #ifdef X509_R_BAD_X509_FILETYPE
+ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE},
+ #else
+ {"BAD_X509_FILETYPE", 11, 100},
+ #endif
+ #ifdef X509_R_BASE64_DECODE_ERROR
+ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR},
+ #else
+ {"BASE64_DECODE_ERROR", 11, 118},
+ #endif
+ #ifdef X509_R_CANT_CHECK_DH_KEY
+ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY},
+ #else
+ {"CANT_CHECK_DH_KEY", 11, 114},
+ #endif
+ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE
+ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE},
+ #else
+ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101},
+ #endif
+ #ifdef X509_R_CRL_ALREADY_DELTA
+ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA},
+ #else
+ {"CRL_ALREADY_DELTA", 11, 127},
+ #endif
+ #ifdef X509_R_CRL_VERIFY_FAILURE
+ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE},
+ #else
+ {"CRL_VERIFY_FAILURE", 11, 131},
+ #endif
+ #ifdef X509_R_IDP_MISMATCH
+ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH},
+ #else
+ {"IDP_MISMATCH", 11, 128},
+ #endif
+ #ifdef X509_R_INVALID_ATTRIBUTES
+ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES},
+ #else
+ {"INVALID_ATTRIBUTES", 11, 138},
+ #endif
+ #ifdef X509_R_INVALID_DIRECTORY
+ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY},
+ #else
+ {"INVALID_DIRECTORY", 11, 113},
+ #endif
+ #ifdef X509_R_INVALID_FIELD_NAME
+ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME},
+ #else
+ {"INVALID_FIELD_NAME", 11, 119},
+ #endif
+ #ifdef X509_R_INVALID_TRUST
+ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST},
+ #else
+ {"INVALID_TRUST", 11, 123},
+ #endif
+ #ifdef X509_R_ISSUER_MISMATCH
+ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH},
+ #else
+ {"ISSUER_MISMATCH", 11, 129},
+ #endif
+ #ifdef X509_R_KEY_TYPE_MISMATCH
+ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH},
+ #else
+ {"KEY_TYPE_MISMATCH", 11, 115},
+ #endif
+ #ifdef X509_R_KEY_VALUES_MISMATCH
+ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH},
+ #else
+ {"KEY_VALUES_MISMATCH", 11, 116},
+ #endif
+ #ifdef X509_R_LOADING_CERT_DIR
+ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR},
+ #else
+ {"LOADING_CERT_DIR", 11, 103},
+ #endif
+ #ifdef X509_R_LOADING_DEFAULTS
+ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS},
+ #else
+ {"LOADING_DEFAULTS", 11, 104},
+ #endif
+ #ifdef X509_R_METHOD_NOT_SUPPORTED
+ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED},
+ #else
+ {"METHOD_NOT_SUPPORTED", 11, 124},
+ #endif
+ #ifdef X509_R_NAME_TOO_LONG
+ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG},
+ #else
+ {"NAME_TOO_LONG", 11, 134},
+ #endif
+ #ifdef X509_R_NEWER_CRL_NOT_NEWER
+ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER},
+ #else
+ {"NEWER_CRL_NOT_NEWER", 11, 132},
+ #endif
+ #ifdef X509_R_NO_CERTIFICATE_FOUND
+ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND},
+ #else
+ {"NO_CERTIFICATE_FOUND", 11, 135},
+ #endif
+ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND
+ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND},
+ #else
+ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136},
+ #endif
+ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY
+ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY},
+ #else
+ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105},
+ #endif
+ #ifdef X509_R_NO_CRL_FOUND
+ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND},
+ #else
+ {"NO_CRL_FOUND", 11, 137},
+ #endif
+ #ifdef X509_R_NO_CRL_NUMBER
+ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER},
+ #else
+ {"NO_CRL_NUMBER", 11, 130},
+ #endif
+ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR
+ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR},
+ #else
+ {"PUBLIC_KEY_DECODE_ERROR", 11, 125},
+ #endif
+ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR
+ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR},
+ #else
+ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126},
+ #endif
+ #ifdef X509_R_SHOULD_RETRY
+ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY},
+ #else
+ {"SHOULD_RETRY", 11, 106},
+ #endif
+ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN
+ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN},
+ #else
+ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107},
+ #endif
+ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY
+ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY},
+ #else
+ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108},
+ #endif
+ #ifdef X509_R_UNKNOWN_KEY_TYPE
+ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE},
+ #else
+ {"UNKNOWN_KEY_TYPE", 11, 117},
+ #endif
+ #ifdef X509_R_UNKNOWN_NID
+ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID},
+ #else
+ {"UNKNOWN_NID", 11, 109},
+ #endif
+ #ifdef X509_R_UNKNOWN_PURPOSE_ID
+ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID},
+ #else
+ {"UNKNOWN_PURPOSE_ID", 11, 121},
+ #endif
+ #ifdef X509_R_UNKNOWN_TRUST_ID
+ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID},
+ #else
+ {"UNKNOWN_TRUST_ID", 11, 120},
+ #endif
+ #ifdef X509_R_UNSUPPORTED_ALGORITHM
+ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM},
+ #else
+ {"UNSUPPORTED_ALGORITHM", 11, 111},
+ #endif
+ #ifdef X509_R_WRONG_LOOKUP_TYPE
+ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
+ #else
+ {"WRONG_LOOKUP_TYPE", 11, 112},
+ #endif
+ #ifdef X509_R_WRONG_TYPE
+ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE},
+ #else
+ {"WRONG_TYPE", 11, 122},
+ #endif
+ { NULL }
+};
+
diff --git a/contrib/tools/python3/src/Modules/_ssl_data_300.h b/contrib/tools/python3/src/Modules/_ssl_data_300.h
index f001ed273d..6be8b24ee1 100644
--- a/contrib/tools/python3/src/Modules/_ssl_data_300.h
+++ b/contrib/tools/python3/src/Modules/_ssl_data_300.h
@@ -1,8435 +1,8435 @@
-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2021-04-09T09:44:43.288448 */
-static struct py_ssl_library_code library_codes[] = {
-#ifdef ERR_LIB_ASN1
- {"ASN1", ERR_LIB_ASN1},
-#endif
-#ifdef ERR_LIB_ASYNC
- {"ASYNC", ERR_LIB_ASYNC},
-#endif
-#ifdef ERR_LIB_BIO
- {"BIO", ERR_LIB_BIO},
-#endif
-#ifdef ERR_LIB_BN
- {"BN", ERR_LIB_BN},
-#endif
-#ifdef ERR_LIB_BUF
- {"BUF", ERR_LIB_BUF},
-#endif
-#ifdef ERR_LIB_CMP
- {"CMP", ERR_LIB_CMP},
-#endif
-#ifdef ERR_LIB_CMS
- {"CMS", ERR_LIB_CMS},
-#endif
-#ifdef ERR_LIB_COMP
- {"COMP", ERR_LIB_COMP},
-#endif
-#ifdef ERR_LIB_CONF
- {"CONF", ERR_LIB_CONF},
-#endif
-#ifdef ERR_LIB_CRMF
- {"CRMF", ERR_LIB_CRMF},
-#endif
-#ifdef ERR_LIB_CRYPTO
- {"CRYPTO", ERR_LIB_CRYPTO},
-#endif
-#ifdef ERR_LIB_CT
- {"CT", ERR_LIB_CT},
-#endif
-#ifdef ERR_LIB_DH
- {"DH", ERR_LIB_DH},
-#endif
-#ifdef ERR_LIB_DSA
- {"DSA", ERR_LIB_DSA},
-#endif
-#ifdef ERR_LIB_DSO
- {"DSO", ERR_LIB_DSO},
-#endif
-#ifdef ERR_LIB_EC
- {"EC", ERR_LIB_EC},
-#endif
-#ifdef ERR_LIB_ECDH
- {"ECDH", ERR_LIB_ECDH},
-#endif
-#ifdef ERR_LIB_ECDSA
- {"ECDSA", ERR_LIB_ECDSA},
-#endif
-#ifdef ERR_LIB_ENGINE
- {"ENGINE", ERR_LIB_ENGINE},
-#endif
-#ifdef ERR_LIB_ESS
- {"ESS", ERR_LIB_ESS},
-#endif
-#ifdef ERR_LIB_EVP
- {"EVP", ERR_LIB_EVP},
-#endif
-#ifdef ERR_LIB_FIPS
- {"FIPS", ERR_LIB_FIPS},
-#endif
-#ifdef ERR_LIB_HMAC
- {"HMAC", ERR_LIB_HMAC},
-#endif
-#ifdef ERR_LIB_HTTP
- {"HTTP", ERR_LIB_HTTP},
-#endif
-#ifdef ERR_LIB_JPAKE
- {"JPAKE", ERR_LIB_JPAKE},
-#endif
-#ifdef ERR_LIB_KDF
- {"KDF", ERR_LIB_KDF},
-#endif
-#ifdef ERR_LIB_MASK
- {"MASK", ERR_LIB_MASK},
-#endif
-#ifdef ERR_LIB_METH
- {"METH", ERR_LIB_METH},
-#endif
-#ifdef ERR_LIB_NONE
- {"NONE", ERR_LIB_NONE},
-#endif
-#ifdef ERR_LIB_OBJ
- {"OBJ", ERR_LIB_OBJ},
-#endif
-#ifdef ERR_LIB_OCSP
- {"OCSP", ERR_LIB_OCSP},
-#endif
-#ifdef ERR_LIB_OFFSET
- {"OFFSET", ERR_LIB_OFFSET},
-#endif
-#ifdef ERR_LIB_OSSL_DECODER
- {"OSSL_DECODER", ERR_LIB_OSSL_DECODER},
-#endif
-#ifdef ERR_LIB_OSSL_ENCODER
- {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER},
-#endif
-#ifdef ERR_LIB_OSSL_STORE
- {"OSSL_STORE", ERR_LIB_OSSL_STORE},
-#endif
-#ifdef ERR_LIB_PEM
- {"PEM", ERR_LIB_PEM},
-#endif
-#ifdef ERR_LIB_PKCS12
- {"PKCS12", ERR_LIB_PKCS12},
-#endif
-#ifdef ERR_LIB_PKCS7
- {"PKCS7", ERR_LIB_PKCS7},
-#endif
-#ifdef ERR_LIB_PROP
- {"PROP", ERR_LIB_PROP},
-#endif
-#ifdef ERR_LIB_PROV
- {"PROV", ERR_LIB_PROV},
-#endif
-#ifdef ERR_LIB_PROXY
- {"PROXY", ERR_LIB_PROXY},
-#endif
-#ifdef ERR_LIB_RAND
- {"RAND", ERR_LIB_RAND},
-#endif
-#ifdef ERR_LIB_RSA
- {"RSA", ERR_LIB_RSA},
-#endif
-#ifdef ERR_LIB_RSAREF
- {"RSAREF", ERR_LIB_RSAREF},
-#endif
-#ifdef ERR_LIB_SM2
- {"SM2", ERR_LIB_SM2},
-#endif
-#ifdef ERR_LIB_SSL
- {"SSL", ERR_LIB_SSL},
-#endif
-#ifdef ERR_LIB_SSL2
- {"SSL2", ERR_LIB_SSL2},
-#endif
-#ifdef ERR_LIB_SSL23
- {"SSL23", ERR_LIB_SSL23},
-#endif
-#ifdef ERR_LIB_SSL3
- {"SSL3", ERR_LIB_SSL3},
-#endif
-#ifdef ERR_LIB_SYS
- {"SYS", ERR_LIB_SYS},
-#endif
-#ifdef ERR_LIB_TS
- {"TS", ERR_LIB_TS},
-#endif
-#ifdef ERR_LIB_UI
- {"UI", ERR_LIB_UI},
-#endif
-#ifdef ERR_LIB_USER
- {"USER", ERR_LIB_USER},
-#endif
-#ifdef ERR_LIB_X509
- {"X509", ERR_LIB_X509},
-#endif
-#ifdef ERR_LIB_X509V3
- {"X509V3", ERR_LIB_X509V3},
-#endif
- { NULL }
-};
-
-
-static struct py_ssl_error_code error_codes[] = {
- #ifdef ASN1_R_ADDING_OBJECT
- {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT},
- #else
- {"ADDING_OBJECT", 13, 171},
- #endif
- #ifdef ASN1_R_ASN1_PARSE_ERROR
- {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR},
- #else
- {"ASN1_PARSE_ERROR", 13, 203},
- #endif
- #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR
- {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR},
- #else
- {"ASN1_SIG_PARSE_ERROR", 13, 204},
- #endif
- #ifdef ASN1_R_AUX_ERROR
- {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR},
- #else
- {"AUX_ERROR", 13, 100},
- #endif
- #ifdef ASN1_R_BAD_OBJECT_HEADER
- {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER},
- #else
- {"BAD_OBJECT_HEADER", 13, 102},
- #endif
- #ifdef ASN1_R_BAD_TEMPLATE
- {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE},
- #else
- {"BAD_TEMPLATE", 13, 230},
- #endif
- #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH
- {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH},
- #else
- {"BMPSTRING_IS_WRONG_LENGTH", 13, 214},
- #endif
- #ifdef ASN1_R_BN_LIB
- {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB},
- #else
- {"BN_LIB", 13, 105},
- #endif
- #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH
- {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH},
- #else
- {"BOOLEAN_IS_WRONG_LENGTH", 13, 106},
- #endif
- #ifdef ASN1_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 13, 107},
- #endif
- #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
- #else
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108},
- #endif
- #ifdef ASN1_R_CONTEXT_NOT_INITIALISED
- {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED},
- #else
- {"CONTEXT_NOT_INITIALISED", 13, 217},
- #endif
- #ifdef ASN1_R_DATA_IS_WRONG
- {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG},
- #else
- {"DATA_IS_WRONG", 13, 109},
- #endif
- #ifdef ASN1_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 13, 110},
- #endif
- #ifdef ASN1_R_DEPTH_EXCEEDED
- {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED},
- #else
- {"DEPTH_EXCEEDED", 13, 174},
- #endif
- #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED
- {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED},
- #else
- {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198},
- #endif
- #ifdef ASN1_R_ENCODE_ERROR
- {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR},
- #else
- {"ENCODE_ERROR", 13, 112},
- #endif
- #ifdef ASN1_R_ERROR_GETTING_TIME
- {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME},
- #else
- {"ERROR_GETTING_TIME", 13, 173},
- #endif
- #ifdef ASN1_R_ERROR_LOADING_SECTION
- {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION},
- #else
- {"ERROR_LOADING_SECTION", 13, 172},
- #endif
- #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS
- {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS},
- #else
- {"ERROR_SETTING_CIPHER_PARAMS", 13, 114},
- #endif
- #ifdef ASN1_R_EXPECTING_AN_INTEGER
- {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER},
- #else
- {"EXPECTING_AN_INTEGER", 13, 115},
- #endif
- #ifdef ASN1_R_EXPECTING_AN_OBJECT
- {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT},
- #else
- {"EXPECTING_AN_OBJECT", 13, 116},
- #endif
- #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH
- {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH},
- #else
- {"EXPLICIT_LENGTH_MISMATCH", 13, 119},
- #endif
- #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED
- {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED},
- #else
- {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120},
- #endif
- #ifdef ASN1_R_FIELD_MISSING
- {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING},
- #else
- {"FIELD_MISSING", 13, 121},
- #endif
- #ifdef ASN1_R_FIRST_NUM_TOO_LARGE
- {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE},
- #else
- {"FIRST_NUM_TOO_LARGE", 13, 122},
- #endif
- #ifdef ASN1_R_HEADER_TOO_LONG
- {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
- #else
- {"HEADER_TOO_LONG", 13, 123},
- #endif
- #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT
- {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT},
- #else
- {"ILLEGAL_BITSTRING_FORMAT", 13, 175},
- #endif
- #ifdef ASN1_R_ILLEGAL_BOOLEAN
- {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN},
- #else
- {"ILLEGAL_BOOLEAN", 13, 176},
- #endif
- #ifdef ASN1_R_ILLEGAL_CHARACTERS
- {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS},
- #else
- {"ILLEGAL_CHARACTERS", 13, 124},
- #endif
- #ifdef ASN1_R_ILLEGAL_FORMAT
- {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT},
- #else
- {"ILLEGAL_FORMAT", 13, 177},
- #endif
- #ifdef ASN1_R_ILLEGAL_HEX
- {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX},
- #else
- {"ILLEGAL_HEX", 13, 178},
- #endif
- #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG
- {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG},
- #else
- {"ILLEGAL_IMPLICIT_TAG", 13, 179},
- #endif
- #ifdef ASN1_R_ILLEGAL_INTEGER
- {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER},
- #else
- {"ILLEGAL_INTEGER", 13, 180},
- #endif
- #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE
- {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE},
- #else
- {"ILLEGAL_NEGATIVE_VALUE", 13, 226},
- #endif
- #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING
- {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING},
- #else
- {"ILLEGAL_NESTED_TAGGING", 13, 181},
- #endif
- #ifdef ASN1_R_ILLEGAL_NULL
- {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL},
- #else
- {"ILLEGAL_NULL", 13, 125},
- #endif
- #ifdef ASN1_R_ILLEGAL_NULL_VALUE
- {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE},
- #else
- {"ILLEGAL_NULL_VALUE", 13, 182},
- #endif
- #ifdef ASN1_R_ILLEGAL_OBJECT
- {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT},
- #else
- {"ILLEGAL_OBJECT", 13, 183},
- #endif
- #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY
- {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY},
- #else
- {"ILLEGAL_OPTIONAL_ANY", 13, 126},
- #endif
- #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE
- {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE},
- #else
- {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170},
- #endif
- #ifdef ASN1_R_ILLEGAL_PADDING
- {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING},
- #else
- {"ILLEGAL_PADDING", 13, 221},
- #endif
- #ifdef ASN1_R_ILLEGAL_TAGGED_ANY
- {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY},
- #else
- {"ILLEGAL_TAGGED_ANY", 13, 127},
- #endif
- #ifdef ASN1_R_ILLEGAL_TIME_VALUE
- {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE},
- #else
- {"ILLEGAL_TIME_VALUE", 13, 184},
- #endif
- #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT
- {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT},
- #else
- {"ILLEGAL_ZERO_CONTENT", 13, 222},
- #endif
- #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT
- {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT},
- #else
- {"INTEGER_NOT_ASCII_FORMAT", 13, 185},
- #endif
- #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG
- {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG},
- #else
- {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128},
- #endif
- #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT
- {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT},
- #else
- {"INVALID_BIT_STRING_BITS_LEFT", 13, 220},
- #endif
- #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH
- {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH},
- #else
- {"INVALID_BMPSTRING_LENGTH", 13, 129},
- #endif
- #ifdef ASN1_R_INVALID_DIGIT
- {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT},
- #else
- {"INVALID_DIGIT", 13, 130},
- #endif
- #ifdef ASN1_R_INVALID_MIME_TYPE
- {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE},
- #else
- {"INVALID_MIME_TYPE", 13, 205},
- #endif
- #ifdef ASN1_R_INVALID_MODIFIER
- {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER},
- #else
- {"INVALID_MODIFIER", 13, 186},
- #endif
- #ifdef ASN1_R_INVALID_NUMBER
- {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER},
- #else
- {"INVALID_NUMBER", 13, 187},
- #endif
- #ifdef ASN1_R_INVALID_OBJECT_ENCODING
- {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING},
- #else
- {"INVALID_OBJECT_ENCODING", 13, 216},
- #endif
- #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS
- {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS},
- #else
- {"INVALID_SCRYPT_PARAMETERS", 13, 227},
- #endif
- #ifdef ASN1_R_INVALID_SEPARATOR
- {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR},
- #else
- {"INVALID_SEPARATOR", 13, 131},
- #endif
- #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE
- {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE},
- #else
- {"INVALID_STRING_TABLE_VALUE", 13, 218},
- #endif
- #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH
- {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH},
- #else
- {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133},
- #endif
- #ifdef ASN1_R_INVALID_UTF8STRING
- {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING},
- #else
- {"INVALID_UTF8STRING", 13, 134},
- #endif
- #ifdef ASN1_R_INVALID_VALUE
- {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE},
- #else
- {"INVALID_VALUE", 13, 219},
- #endif
- #ifdef ASN1_R_LENGTH_TOO_LONG
- {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG},
- #else
- {"LENGTH_TOO_LONG", 13, 231},
- #endif
- #ifdef ASN1_R_LIST_ERROR
- {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR},
- #else
- {"LIST_ERROR", 13, 188},
- #endif
- #ifdef ASN1_R_MIME_NO_CONTENT_TYPE
- {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE},
- #else
- {"MIME_NO_CONTENT_TYPE", 13, 206},
- #endif
- #ifdef ASN1_R_MIME_PARSE_ERROR
- {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR},
- #else
- {"MIME_PARSE_ERROR", 13, 207},
- #endif
- #ifdef ASN1_R_MIME_SIG_PARSE_ERROR
- {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR},
- #else
- {"MIME_SIG_PARSE_ERROR", 13, 208},
- #endif
- #ifdef ASN1_R_MISSING_EOC
- {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC},
- #else
- {"MISSING_EOC", 13, 137},
- #endif
- #ifdef ASN1_R_MISSING_SECOND_NUMBER
- {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER},
- #else
- {"MISSING_SECOND_NUMBER", 13, 138},
- #endif
- #ifdef ASN1_R_MISSING_VALUE
- {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE},
- #else
- {"MISSING_VALUE", 13, 189},
- #endif
- #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL
- {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL},
- #else
- {"MSTRING_NOT_UNIVERSAL", 13, 139},
- #endif
- #ifdef ASN1_R_MSTRING_WRONG_TAG
- {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG},
- #else
- {"MSTRING_WRONG_TAG", 13, 140},
- #endif
- #ifdef ASN1_R_NESTED_ASN1_STRING
- {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING},
- #else
- {"NESTED_ASN1_STRING", 13, 197},
- #endif
- #ifdef ASN1_R_NESTED_TOO_DEEP
- {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP},
- #else
- {"NESTED_TOO_DEEP", 13, 201},
- #endif
- #ifdef ASN1_R_NON_HEX_CHARACTERS
- {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS},
- #else
- {"NON_HEX_CHARACTERS", 13, 141},
- #endif
- #ifdef ASN1_R_NOT_ASCII_FORMAT
- {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT},
- #else
- {"NOT_ASCII_FORMAT", 13, 190},
- #endif
- #ifdef ASN1_R_NOT_ENOUGH_DATA
- {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA},
- #else
- {"NOT_ENOUGH_DATA", 13, 142},
- #endif
- #ifdef ASN1_R_NO_CONTENT_TYPE
- {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE},
- #else
- {"NO_CONTENT_TYPE", 13, 209},
- #endif
- #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE
- {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE},
- #else
- {"NO_MATCHING_CHOICE_TYPE", 13, 143},
- #endif
- #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE
- {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE},
- #else
- {"NO_MULTIPART_BODY_FAILURE", 13, 210},
- #endif
- #ifdef ASN1_R_NO_MULTIPART_BOUNDARY
- {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY},
- #else
- {"NO_MULTIPART_BOUNDARY", 13, 211},
- #endif
- #ifdef ASN1_R_NO_SIG_CONTENT_TYPE
- {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE},
- #else
- {"NO_SIG_CONTENT_TYPE", 13, 212},
- #endif
- #ifdef ASN1_R_NULL_IS_WRONG_LENGTH
- {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH},
- #else
- {"NULL_IS_WRONG_LENGTH", 13, 144},
- #endif
- #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT
- {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT},
- #else
- {"OBJECT_NOT_ASCII_FORMAT", 13, 191},
- #endif
- #ifdef ASN1_R_ODD_NUMBER_OF_CHARS
- {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS},
- #else
- {"ODD_NUMBER_OF_CHARS", 13, 145},
- #endif
- #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE
- {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE},
- #else
- {"SECOND_NUMBER_TOO_LARGE", 13, 147},
- #endif
- #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH
- {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH},
- #else
- {"SEQUENCE_LENGTH_MISMATCH", 13, 148},
- #endif
- #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED
- {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED},
- #else
- {"SEQUENCE_NOT_CONSTRUCTED", 13, 149},
- #endif
- #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG
- {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG},
- #else
- {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192},
- #endif
- #ifdef ASN1_R_SHORT_LINE
- {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE},
- #else
- {"SHORT_LINE", 13, 150},
- #endif
- #ifdef ASN1_R_SIG_INVALID_MIME_TYPE
- {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE},
- #else
- {"SIG_INVALID_MIME_TYPE", 13, 213},
- #endif
- #ifdef ASN1_R_STREAMING_NOT_SUPPORTED
- {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED},
- #else
- {"STREAMING_NOT_SUPPORTED", 13, 202},
- #endif
- #ifdef ASN1_R_STRING_TOO_LONG
- {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG},
- #else
- {"STRING_TOO_LONG", 13, 151},
- #endif
- #ifdef ASN1_R_STRING_TOO_SHORT
- {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT},
- #else
- {"STRING_TOO_SHORT", 13, 152},
- #endif
- #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
- #else
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154},
- #endif
- #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT
- {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT},
- #else
- {"TIME_NOT_ASCII_FORMAT", 13, 193},
- #endif
- #ifdef ASN1_R_TOO_LARGE
- {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE},
- #else
- {"TOO_LARGE", 13, 223},
- #endif
- #ifdef ASN1_R_TOO_LONG
- {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG},
- #else
- {"TOO_LONG", 13, 155},
- #endif
- #ifdef ASN1_R_TOO_SMALL
- {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL},
- #else
- {"TOO_SMALL", 13, 224},
- #endif
- #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED
- {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED},
- #else
- {"TYPE_NOT_CONSTRUCTED", 13, 156},
- #endif
- #ifdef ASN1_R_TYPE_NOT_PRIMITIVE
- {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE},
- #else
- {"TYPE_NOT_PRIMITIVE", 13, 195},
- #endif
- #ifdef ASN1_R_UNEXPECTED_EOC
- {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC},
- #else
- {"UNEXPECTED_EOC", 13, 159},
- #endif
- #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH
- {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH},
- #else
- {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215},
- #endif
- #ifdef ASN1_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 13, 229},
- #endif
- #ifdef ASN1_R_UNKNOWN_FORMAT
- {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT},
- #else
- {"UNKNOWN_FORMAT", 13, 160},
- #endif
- #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM
- {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161},
- #endif
- #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE
- {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE},
- #else
- {"UNKNOWN_OBJECT_TYPE", 13, 162},
- #endif
- #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE
- {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE},
- #else
- {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163},
- #endif
- #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM
- {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM},
- #else
- {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199},
- #endif
- #ifdef ASN1_R_UNKNOWN_TAG
- {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG},
- #else
- {"UNKNOWN_TAG", 13, 194},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE
- {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE},
- #else
- {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 13, 228},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
- #else
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167},
- #endif
- #ifdef ASN1_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 13, 196},
- #endif
- #ifdef ASN1_R_WRONG_INTEGER_TYPE
- {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
- #else
- {"WRONG_INTEGER_TYPE", 13, 225},
- #endif
- #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE
- {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE},
- #else
- {"WRONG_PUBLIC_KEY_TYPE", 13, 200},
- #endif
- #ifdef ASN1_R_WRONG_TAG
- {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG},
- #else
- {"WRONG_TAG", 13, 168},
- #endif
- #ifdef ASYNC_R_FAILED_TO_SET_POOL
- {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL},
- #else
- {"FAILED_TO_SET_POOL", 51, 101},
- #endif
- #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT
- {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT},
- #else
- {"FAILED_TO_SWAP_CONTEXT", 51, 102},
- #endif
- #ifdef ASYNC_R_INIT_FAILED
- {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED},
- #else
- {"INIT_FAILED", 51, 105},
- #endif
- #ifdef ASYNC_R_INVALID_POOL_SIZE
- {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE},
- #else
- {"INVALID_POOL_SIZE", 51, 103},
- #endif
- #ifdef BIO_R_ACCEPT_ERROR
- {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR},
- #else
- {"ACCEPT_ERROR", 32, 100},
- #endif
- #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET
- {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET},
- #else
- {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141},
- #endif
- #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE
- {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE},
- #else
- {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129},
- #endif
- #ifdef BIO_R_BAD_FOPEN_MODE
- {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE},
- #else
- {"BAD_FOPEN_MODE", 32, 101},
- #endif
- #ifdef BIO_R_BROKEN_PIPE
- {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE},
- #else
- {"BROKEN_PIPE", 32, 124},
- #endif
- #ifdef BIO_R_CONNECT_ERROR
- {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR},
- #else
- {"CONNECT_ERROR", 32, 103},
- #endif
- #ifdef BIO_R_CONNECT_TIMEOUT
- {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT},
- #else
- {"CONNECT_TIMEOUT", 32, 147},
- #endif
- #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET
- {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET},
- #else
- {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107},
- #endif
- #ifdef BIO_R_GETSOCKNAME_ERROR
- {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR},
- #else
- {"GETSOCKNAME_ERROR", 32, 132},
- #endif
- #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS
- {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS},
- #else
- {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133},
- #endif
- #ifdef BIO_R_GETTING_SOCKTYPE
- {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE},
- #else
- {"GETTING_SOCKTYPE", 32, 134},
- #endif
- #ifdef BIO_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 32, 125},
- #endif
- #ifdef BIO_R_INVALID_SOCKET
- {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET},
- #else
- {"INVALID_SOCKET", 32, 135},
- #endif
- #ifdef BIO_R_IN_USE
- {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE},
- #else
- {"IN_USE", 32, 123},
- #endif
- #ifdef BIO_R_LENGTH_TOO_LONG
- {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG},
- #else
- {"LENGTH_TOO_LONG", 32, 102},
- #endif
- #ifdef BIO_R_LISTEN_V6_ONLY
- {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY},
- #else
- {"LISTEN_V6_ONLY", 32, 136},
- #endif
- #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
- {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
- #else
- {"LOOKUP_RETURNED_NOTHING", 32, 142},
- #endif
- #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE
- {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE},
- #else
- {"MALFORMED_HOST_OR_SERVICE", 32, 130},
- #endif
- #ifdef BIO_R_NBIO_CONNECT_ERROR
- {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR},
- #else
- {"NBIO_CONNECT_ERROR", 32, 110},
- #endif
- #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
- {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
- #else
- {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143},
- #endif
- #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED
- {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED},
- #else
- {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144},
- #endif
- #ifdef BIO_R_NO_PORT_DEFINED
- {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED},
- #else
- {"NO_PORT_DEFINED", 32, 113},
- #endif
- #ifdef BIO_R_NO_SUCH_FILE
- {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE},
- #else
- {"NO_SUCH_FILE", 32, 128},
- #endif
- #ifdef BIO_R_TRANSFER_ERROR
- {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR},
- #else
- {"TRANSFER_ERROR", 32, 104},
- #endif
- #ifdef BIO_R_TRANSFER_TIMEOUT
- {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT},
- #else
- {"TRANSFER_TIMEOUT", 32, 105},
- #endif
- #ifdef BIO_R_UNABLE_TO_BIND_SOCKET
- {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET},
- #else
- {"UNABLE_TO_BIND_SOCKET", 32, 117},
- #endif
- #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET
- {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET},
- #else
- {"UNABLE_TO_CREATE_SOCKET", 32, 118},
- #endif
- #ifdef BIO_R_UNABLE_TO_KEEPALIVE
- {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE},
- #else
- {"UNABLE_TO_KEEPALIVE", 32, 137},
- #endif
- #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET
- {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET},
- #else
- {"UNABLE_TO_LISTEN_SOCKET", 32, 119},
- #endif
- #ifdef BIO_R_UNABLE_TO_NODELAY
- {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY},
- #else
- {"UNABLE_TO_NODELAY", 32, 138},
- #endif
- #ifdef BIO_R_UNABLE_TO_REUSEADDR
- {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR},
- #else
- {"UNABLE_TO_REUSEADDR", 32, 139},
- #endif
- #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
- {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
- #else
- {"UNAVAILABLE_IP_FAMILY", 32, 145},
- #endif
- #ifdef BIO_R_UNINITIALIZED
- {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED},
- #else
- {"UNINITIALIZED", 32, 120},
- #endif
- #ifdef BIO_R_UNKNOWN_INFO_TYPE
- {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE},
- #else
- {"UNKNOWN_INFO_TYPE", 32, 140},
- #endif
- #ifdef BIO_R_UNSUPPORTED_IP_FAMILY
- {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY},
- #else
- {"UNSUPPORTED_IP_FAMILY", 32, 146},
- #endif
- #ifdef BIO_R_UNSUPPORTED_METHOD
- {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD},
- #else
- {"UNSUPPORTED_METHOD", 32, 121},
- #endif
- #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY
- {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY},
- #else
- {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131},
- #endif
- #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO
- {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO},
- #else
- {"WRITE_TO_READ_ONLY_BIO", 32, 126},
- #endif
- #ifdef BIO_R_WSASTARTUP
- {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP},
- #else
- {"WSASTARTUP", 32, 122},
- #endif
- #ifdef BN_R_ARG2_LT_ARG3
- {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3},
- #else
- {"ARG2_LT_ARG3", 3, 100},
- #endif
- #ifdef BN_R_BAD_RECIPROCAL
- {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL},
- #else
- {"BAD_RECIPROCAL", 3, 101},
- #endif
- #ifdef BN_R_BIGNUM_TOO_LONG
- {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG},
- #else
- {"BIGNUM_TOO_LONG", 3, 114},
- #endif
- #ifdef BN_R_BITS_TOO_SMALL
- {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL},
- #else
- {"BITS_TOO_SMALL", 3, 118},
- #endif
- #ifdef BN_R_CALLED_WITH_EVEN_MODULUS
- {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS},
- #else
- {"CALLED_WITH_EVEN_MODULUS", 3, 102},
- #endif
- #ifdef BN_R_DIV_BY_ZERO
- {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO},
- #else
- {"DIV_BY_ZERO", 3, 103},
- #endif
- #ifdef BN_R_ENCODING_ERROR
- {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR},
- #else
- {"ENCODING_ERROR", 3, 104},
- #endif
- #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA
- {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA},
- #else
- {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105},
- #endif
- #ifdef BN_R_INPUT_NOT_REDUCED
- {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED},
- #else
- {"INPUT_NOT_REDUCED", 3, 110},
- #endif
- #ifdef BN_R_INVALID_LENGTH
- {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH},
- #else
- {"INVALID_LENGTH", 3, 106},
- #endif
- #ifdef BN_R_INVALID_RANGE
- {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE},
- #else
- {"INVALID_RANGE", 3, 115},
- #endif
- #ifdef BN_R_INVALID_SHIFT
- {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT},
- #else
- {"INVALID_SHIFT", 3, 119},
- #endif
- #ifdef BN_R_NOT_A_SQUARE
- {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE},
- #else
- {"NOT_A_SQUARE", 3, 111},
- #endif
- #ifdef BN_R_NOT_INITIALIZED
- {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED},
- #else
- {"NOT_INITIALIZED", 3, 107},
- #endif
- #ifdef BN_R_NO_INVERSE
- {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE},
- #else
- {"NO_INVERSE", 3, 108},
- #endif
- #ifdef BN_R_NO_SOLUTION
- {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION},
- #else
- {"NO_SOLUTION", 3, 116},
- #endif
- #ifdef BN_R_NO_SUITABLE_DIGEST
- {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST},
- #else
- {"NO_SUITABLE_DIGEST", 3, 120},
- #endif
- #ifdef BN_R_PRIVATE_KEY_TOO_LARGE
- {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE},
- #else
- {"PRIVATE_KEY_TOO_LARGE", 3, 117},
- #endif
- #ifdef BN_R_P_IS_NOT_PRIME
- {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME},
- #else
- {"P_IS_NOT_PRIME", 3, 112},
- #endif
- #ifdef BN_R_TOO_MANY_ITERATIONS
- {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS},
- #else
- {"TOO_MANY_ITERATIONS", 3, 113},
- #endif
- #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES
- {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES},
- #else
- {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109},
- #endif
- #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED
- {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED},
- #else
- {"ALGORITHM_NOT_SUPPORTED", 58, 139},
- #endif
- #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP
- {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP},
- #else
- {"BAD_CHECKAFTER_IN_POLLREP", 58, 167},
- #endif
- #ifdef CMP_R_BAD_REQUEST_ID
- {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID},
- #else
- {"BAD_REQUEST_ID", 58, 108},
- #endif
- #ifdef CMP_R_CERTHASH_UNMATCHED
- {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED},
- #else
- {"CERTHASH_UNMATCHED", 58, 156},
- #endif
- #ifdef CMP_R_CERTID_NOT_FOUND
- {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND},
- #else
- {"CERTID_NOT_FOUND", 58, 109},
- #endif
- #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED
- {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED},
- #else
- {"CERTIFICATE_NOT_ACCEPTED", 58, 169},
- #endif
- #ifdef CMP_R_CERTIFICATE_NOT_FOUND
- {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND},
- #else
- {"CERTIFICATE_NOT_FOUND", 58, 112},
- #endif
- #ifdef CMP_R_CERTREQMSG_NOT_FOUND
- {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND},
- #else
- {"CERTREQMSG_NOT_FOUND", 58, 157},
- #endif
- #ifdef CMP_R_CERTRESPONSE_NOT_FOUND
- {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND},
- #else
- {"CERTRESPONSE_NOT_FOUND", 58, 113},
- #endif
- #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH
- {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH},
- #else
- {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114},
- #endif
- #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE
- {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE},
- #else
- {"CHECKAFTER_OUT_OF_RANGE", 58, 181},
- #endif
- #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING
- {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING},
- #else
- {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176},
- #endif
- #ifdef CMP_R_ENCOUNTERED_WAITING
- {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING},
- #else
- {"ENCOUNTERED_WAITING", 58, 162},
- #endif
- #ifdef CMP_R_ERROR_CALCULATING_PROTECTION
- {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION},
- #else
- {"ERROR_CALCULATING_PROTECTION", 58, 115},
- #endif
- #ifdef CMP_R_ERROR_CREATING_CERTCONF
- {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF},
- #else
- {"ERROR_CREATING_CERTCONF", 58, 116},
- #endif
- #ifdef CMP_R_ERROR_CREATING_CERTREP
- {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP},
- #else
- {"ERROR_CREATING_CERTREP", 58, 117},
- #endif
- #ifdef CMP_R_ERROR_CREATING_CERTREQ
- {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ},
- #else
- {"ERROR_CREATING_CERTREQ", 58, 163},
- #endif
- #ifdef CMP_R_ERROR_CREATING_ERROR
- {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR},
- #else
- {"ERROR_CREATING_ERROR", 58, 118},
- #endif
- #ifdef CMP_R_ERROR_CREATING_GENM
- {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM},
- #else
- {"ERROR_CREATING_GENM", 58, 119},
- #endif
- #ifdef CMP_R_ERROR_CREATING_GENP
- {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP},
- #else
- {"ERROR_CREATING_GENP", 58, 120},
- #endif
- #ifdef CMP_R_ERROR_CREATING_PKICONF
- {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF},
- #else
- {"ERROR_CREATING_PKICONF", 58, 122},
- #endif
- #ifdef CMP_R_ERROR_CREATING_POLLREP
- {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP},
- #else
- {"ERROR_CREATING_POLLREP", 58, 123},
- #endif
- #ifdef CMP_R_ERROR_CREATING_POLLREQ
- {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ},
- #else
- {"ERROR_CREATING_POLLREQ", 58, 124},
- #endif
- #ifdef CMP_R_ERROR_CREATING_RP
- {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP},
- #else
- {"ERROR_CREATING_RP", 58, 125},
- #endif
- #ifdef CMP_R_ERROR_CREATING_RR
- {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR},
- #else
- {"ERROR_CREATING_RR", 58, 126},
- #endif
- #ifdef CMP_R_ERROR_PARSING_PKISTATUS
- {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS},
- #else
- {"ERROR_PARSING_PKISTATUS", 58, 107},
- #endif
- #ifdef CMP_R_ERROR_PROCESSING_MESSAGE
- {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE},
- #else
- {"ERROR_PROCESSING_MESSAGE", 58, 158},
- #endif
- #ifdef CMP_R_ERROR_PROTECTING_MESSAGE
- {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE},
- #else
- {"ERROR_PROTECTING_MESSAGE", 58, 127},
- #endif
- #ifdef CMP_R_ERROR_SETTING_CERTHASH
- {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH},
- #else
- {"ERROR_SETTING_CERTHASH", 58, 128},
- #endif
- #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF
- {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF},
- #else
- {"ERROR_UNEXPECTED_CERTCONF", 58, 160},
- #endif
- #ifdef CMP_R_ERROR_VALIDATING_PROTECTION
- {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION},
- #else
- {"ERROR_VALIDATING_PROTECTION", 58, 140},
- #endif
- #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE
- {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE},
- #else
- {"ERROR_VALIDATING_SIGNATURE", 58, 171},
- #endif
- #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN
- {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN},
- #else
- {"FAILED_BUILDING_OWN_CHAIN", 58, 164},
- #endif
- #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY
- {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY},
- #else
- {"FAILED_EXTRACTING_PUBKEY", 58, 141},
- #endif
- #ifdef CMP_R_FAILURE_OBTAINING_RANDOM
- {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM},
- #else
- {"FAILURE_OBTAINING_RANDOM", 58, 110},
- #endif
- #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE
- {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE},
- #else
- {"FAIL_INFO_OUT_OF_RANGE", 58, 129},
- #endif
- #ifdef CMP_R_INVALID_ARGS
- {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS},
- #else
- {"INVALID_ARGS", 58, 100},
- #endif
- #ifdef CMP_R_INVALID_OPTION
- {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION},
- #else
- {"INVALID_OPTION", 58, 174},
- #endif
- #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION
- {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION},
- #else
- {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130},
- #endif
- #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE
- {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE},
- #else
- {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142},
- #endif
- #ifdef CMP_R_MISSING_P10CSR
- {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR},
- #else
- {"MISSING_P10CSR", 58, 121},
- #endif
- #ifdef CMP_R_MISSING_PBM_SECRET
- {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET},
- #else
- {"MISSING_PBM_SECRET", 58, 166},
- #endif
- #ifdef CMP_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 58, 131},
- #endif
- #ifdef CMP_R_MISSING_PROTECTION
- {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION},
- #else
- {"MISSING_PROTECTION", 58, 143},
- #endif
- #ifdef CMP_R_MISSING_REFERENCE_CERT
- {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT},
- #else
- {"MISSING_REFERENCE_CERT", 58, 168},
- #endif
- #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION
- {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION},
- #else
- {"MISSING_SENDER_IDENTIFICATION", 58, 111},
- #endif
- #ifdef CMP_R_MISSING_TRUST_STORE
- {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE},
- #else
- {"MISSING_TRUST_STORE", 58, 144},
- #endif
- #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED
- {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED},
- #else
- {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161},
- #endif
- #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED
- {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED},
- #else
- {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170},
- #endif
- #ifdef CMP_R_MULTIPLE_SAN_SOURCES
- {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES},
- #else
- {"MULTIPLE_SAN_SOURCES", 58, 102},
- #endif
- #ifdef CMP_R_NO_STDIO
- {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO},
- #else
- {"NO_STDIO", 58, 194},
- #endif
- #ifdef CMP_R_NO_SUITABLE_SENDER_CERT
- {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT},
- #else
- {"NO_SUITABLE_SENDER_CERT", 58, 145},
- #endif
- #ifdef CMP_R_NULL_ARGUMENT
- {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT},
- #else
- {"NULL_ARGUMENT", 58, 103},
- #endif
- #ifdef CMP_R_PKIBODY_ERROR
- {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR},
- #else
- {"PKIBODY_ERROR", 58, 146},
- #endif
- #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND
- {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND},
- #else
- {"PKISTATUSINFO_NOT_FOUND", 58, 132},
- #endif
- #ifdef CMP_R_POLLING_FAILED
- {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED},
- #else
- {"POLLING_FAILED", 58, 172},
- #endif
- #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE
- {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE},
- #else
- {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147},
- #endif
- #ifdef CMP_R_RECEIVED_ERROR
- {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR},
- #else
- {"RECEIVED_ERROR", 58, 180},
- #endif
- #ifdef CMP_R_RECIPNONCE_UNMATCHED
- {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED},
- #else
- {"RECIPNONCE_UNMATCHED", 58, 148},
- #endif
- #ifdef CMP_R_REQUEST_NOT_ACCEPTED
- {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED},
- #else
- {"REQUEST_NOT_ACCEPTED", 58, 149},
- #endif
- #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER
- {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER},
- #else
- {"REQUEST_REJECTED_BY_SERVER", 58, 182},
- #endif
- #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED
- {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED},
- #else
- {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150},
- #endif
- #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG
- {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG},
- #else
- {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151},
- #endif
- #ifdef CMP_R_TOTAL_TIMEOUT
- {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT},
- #else
- {"TOTAL_TIMEOUT", 58, 184},
- #endif
- #ifdef CMP_R_TRANSACTIONID_UNMATCHED
- {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED},
- #else
- {"TRANSACTIONID_UNMATCHED", 58, 152},
- #endif
- #ifdef CMP_R_TRANSFER_ERROR
- {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR},
- #else
- {"TRANSFER_ERROR", 58, 159},
- #endif
- #ifdef CMP_R_UNEXPECTED_PKIBODY
- {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY},
- #else
- {"UNEXPECTED_PKIBODY", 58, 133},
- #endif
- #ifdef CMP_R_UNEXPECTED_PKISTATUS
- {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS},
- #else
- {"UNEXPECTED_PKISTATUS", 58, 185},
- #endif
- #ifdef CMP_R_UNEXPECTED_PVNO
- {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO},
- #else
- {"UNEXPECTED_PVNO", 58, 153},
- #endif
- #ifdef CMP_R_UNKNOWN_ALGORITHM_ID
- {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID},
- #else
- {"UNKNOWN_ALGORITHM_ID", 58, 134},
- #endif
- #ifdef CMP_R_UNKNOWN_CERT_TYPE
- {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE},
- #else
- {"UNKNOWN_CERT_TYPE", 58, 135},
- #endif
- #ifdef CMP_R_UNKNOWN_PKISTATUS
- {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS},
- #else
- {"UNKNOWN_PKISTATUS", 58, 186},
- #endif
- #ifdef CMP_R_UNSUPPORTED_ALGORITHM
- {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM},
- #else
- {"UNSUPPORTED_ALGORITHM", 58, 136},
- #endif
- #ifdef CMP_R_UNSUPPORTED_KEY_TYPE
- {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE},
- #else
- {"UNSUPPORTED_KEY_TYPE", 58, 137},
- #endif
- #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC
- {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC},
- #else
- {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154},
- #endif
- #ifdef CMP_R_VALUE_TOO_LARGE
- {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE},
- #else
- {"VALUE_TOO_LARGE", 58, 175},
- #endif
- #ifdef CMP_R_VALUE_TOO_SMALL
- {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL},
- #else
- {"VALUE_TOO_SMALL", 58, 177},
- #endif
- #ifdef CMP_R_WRONG_ALGORITHM_OID
- {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID},
- #else
- {"WRONG_ALGORITHM_OID", 58, 138},
- #endif
- #ifdef CMP_R_WRONG_CERTID_IN_RP
- {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP},
- #else
- {"WRONG_CERTID_IN_RP", 58, 187},
- #endif
- #ifdef CMP_R_WRONG_PBM_VALUE
- {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE},
- #else
- {"WRONG_PBM_VALUE", 58, 155},
- #endif
- #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT
- {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT},
- #else
- {"WRONG_RP_COMPONENT_COUNT", 58, 188},
- #endif
- #ifdef CMP_R_WRONG_SERIAL_IN_RP
- {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP},
- #else
- {"WRONG_SERIAL_IN_RP", 58, 173},
- #endif
- #ifdef CMS_R_ADD_SIGNER_ERROR
- {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR},
- #else
- {"ADD_SIGNER_ERROR", 46, 99},
- #endif
- #ifdef CMS_R_ATTRIBUTE_ERROR
- {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR},
- #else
- {"ATTRIBUTE_ERROR", 46, 161},
- #endif
- #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT
- {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT},
- #else
- {"CERTIFICATE_ALREADY_PRESENT", 46, 175},
- #endif
- #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID
- {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID},
- #else
- {"CERTIFICATE_HAS_NO_KEYID", 46, 160},
- #endif
- #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 46, 100},
- #endif
- #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR
- {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR},
- #else
- {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184},
- #endif
- #ifdef CMS_R_CIPHER_GET_TAG
- {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG},
- #else
- {"CIPHER_GET_TAG", 46, 185},
- #endif
- #ifdef CMS_R_CIPHER_INITIALISATION_ERROR
- {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR},
- #else
- {"CIPHER_INITIALISATION_ERROR", 46, 101},
- #endif
- #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR
- {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR},
- #else
- {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102},
- #endif
- #ifdef CMS_R_CMS_DATAFINAL_ERROR
- {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR},
- #else
- {"CMS_DATAFINAL_ERROR", 46, 103},
- #endif
- #ifdef CMS_R_CMS_LIB
- {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB},
- #else
- {"CMS_LIB", 46, 104},
- #endif
- #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH
- {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH},
- #else
- {"CONTENTIDENTIFIER_MISMATCH", 46, 170},
- #endif
- #ifdef CMS_R_CONTENT_NOT_FOUND
- {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND},
- #else
- {"CONTENT_NOT_FOUND", 46, 105},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_MISMATCH
- {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH},
- #else
- {"CONTENT_TYPE_MISMATCH", 46, 171},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA
- {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA},
- #else
- {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA
- {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA},
- #else
- {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107},
- #endif
- #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA
- {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA},
- #else
- {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108},
- #endif
- #ifdef CMS_R_CONTENT_VERIFY_ERROR
- {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR},
- #else
- {"CONTENT_VERIFY_ERROR", 46, 109},
- #endif
- #ifdef CMS_R_CTRL_ERROR
- {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR},
- #else
- {"CTRL_ERROR", 46, 110},
- #endif
- #ifdef CMS_R_CTRL_FAILURE
- {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE},
- #else
- {"CTRL_FAILURE", 46, 111},
- #endif
- #ifdef CMS_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 46, 187},
- #endif
- #ifdef CMS_R_DECRYPT_ERROR
- {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR},
- #else
- {"DECRYPT_ERROR", 46, 112},
- #endif
- #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY
- {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY},
- #else
- {"ERROR_GETTING_PUBLIC_KEY", 46, 113},
- #endif
- #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE
- {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE},
- #else
- {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114},
- #endif
- #ifdef CMS_R_ERROR_SETTING_KEY
- {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY},
- #else
- {"ERROR_SETTING_KEY", 46, 115},
- #endif
- #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO
- {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO},
- #else
- {"ERROR_SETTING_RECIPIENTINFO", 46, 116},
- #endif
- #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR
- {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR},
- #else
- {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183},
- #endif
- #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH
- {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH},
- #else
- {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117},
- #endif
- #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER
- {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER},
- #else
- {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176},
- #endif
- #ifdef CMS_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 46, 118},
- #endif
- #ifdef CMS_R_INVALID_LABEL
- {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL},
- #else
- {"INVALID_LABEL", 46, 190},
- #endif
- #ifdef CMS_R_INVALID_OAEP_PARAMETERS
- {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS},
- #else
- {"INVALID_OAEP_PARAMETERS", 46, 191},
- #endif
- #ifdef CMS_R_KDF_PARAMETER_ERROR
- {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR},
- #else
- {"KDF_PARAMETER_ERROR", 46, 186},
- #endif
- #ifdef CMS_R_MD_BIO_INIT_ERROR
- {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR},
- #else
- {"MD_BIO_INIT_ERROR", 46, 119},
- #endif
- #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH
- {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH},
- #else
- {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120},
- #endif
- #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH
- {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH},
- #else
- {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_ERROR
- {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR},
- #else
- {"MSGSIGDIGEST_ERROR", 46, 172},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE
- {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE},
- #else
- {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162},
- #endif
- #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH
- {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH},
- #else
- {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163},
- #endif
- #ifdef CMS_R_NEED_ONE_SIGNER
- {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER},
- #else
- {"NEED_ONE_SIGNER", 46, 164},
- #endif
- #ifdef CMS_R_NOT_A_SIGNED_RECEIPT
- {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT},
- #else
- {"NOT_A_SIGNED_RECEIPT", 46, 165},
- #endif
- #ifdef CMS_R_NOT_ENCRYPTED_DATA
- {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA},
- #else
- {"NOT_ENCRYPTED_DATA", 46, 122},
- #endif
- #ifdef CMS_R_NOT_KEK
- {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK},
- #else
- {"NOT_KEK", 46, 123},
- #endif
- #ifdef CMS_R_NOT_KEY_AGREEMENT
- {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT},
- #else
- {"NOT_KEY_AGREEMENT", 46, 181},
- #endif
- #ifdef CMS_R_NOT_KEY_TRANSPORT
- {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT},
- #else
- {"NOT_KEY_TRANSPORT", 46, 124},
- #endif
- #ifdef CMS_R_NOT_PWRI
- {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI},
- #else
- {"NOT_PWRI", 46, 177},
- #endif
- #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125},
- #endif
- #ifdef CMS_R_NO_CIPHER
- {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER},
- #else
- {"NO_CIPHER", 46, 126},
- #endif
- #ifdef CMS_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 46, 127},
- #endif
- #ifdef CMS_R_NO_CONTENT_TYPE
- {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE},
- #else
- {"NO_CONTENT_TYPE", 46, 173},
- #endif
- #ifdef CMS_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 46, 128},
- #endif
- #ifdef CMS_R_NO_DIGEST_SET
- {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET},
- #else
- {"NO_DIGEST_SET", 46, 129},
- #endif
- #ifdef CMS_R_NO_KEY
- {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY},
- #else
- {"NO_KEY", 46, 130},
- #endif
- #ifdef CMS_R_NO_KEY_OR_CERT
- {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT},
- #else
- {"NO_KEY_OR_CERT", 46, 174},
- #endif
- #ifdef CMS_R_NO_MATCHING_DIGEST
- {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST},
- #else
- {"NO_MATCHING_DIGEST", 46, 131},
- #endif
- #ifdef CMS_R_NO_MATCHING_RECIPIENT
- {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT},
- #else
- {"NO_MATCHING_RECIPIENT", 46, 132},
- #endif
- #ifdef CMS_R_NO_MATCHING_SIGNATURE
- {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE},
- #else
- {"NO_MATCHING_SIGNATURE", 46, 166},
- #endif
- #ifdef CMS_R_NO_MSGSIGDIGEST
- {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST},
- #else
- {"NO_MSGSIGDIGEST", 46, 167},
- #endif
- #ifdef CMS_R_NO_PASSWORD
- {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD},
- #else
- {"NO_PASSWORD", 46, 178},
- #endif
- #ifdef CMS_R_NO_PRIVATE_KEY
- {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY},
- #else
- {"NO_PRIVATE_KEY", 46, 133},
- #endif
- #ifdef CMS_R_NO_PUBLIC_KEY
- {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY},
- #else
- {"NO_PUBLIC_KEY", 46, 134},
- #endif
- #ifdef CMS_R_NO_RECEIPT_REQUEST
- {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST},
- #else
- {"NO_RECEIPT_REQUEST", 46, 168},
- #endif
- #ifdef CMS_R_NO_SIGNERS
- {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS},
- #else
- {"NO_SIGNERS", 46, 135},
- #endif
- #ifdef CMS_R_PEER_KEY_ERROR
- {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR},
- #else
- {"PEER_KEY_ERROR", 46, 188},
- #endif
- #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136},
- #endif
- #ifdef CMS_R_RECEIPT_DECODE_ERROR
- {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR},
- #else
- {"RECEIPT_DECODE_ERROR", 46, 169},
- #endif
- #ifdef CMS_R_RECIPIENT_ERROR
- {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR},
- #else
- {"RECIPIENT_ERROR", 46, 137},
- #endif
- #ifdef CMS_R_SHARED_INFO_ERROR
- {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR},
- #else
- {"SHARED_INFO_ERROR", 46, 189},
- #endif
- #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138},
- #endif
- #ifdef CMS_R_SIGNFINAL_ERROR
- {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR},
- #else
- {"SIGNFINAL_ERROR", 46, 139},
- #endif
- #ifdef CMS_R_SMIME_TEXT_ERROR
- {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR},
- #else
- {"SMIME_TEXT_ERROR", 46, 140},
- #endif
- #ifdef CMS_R_STORE_INIT_ERROR
- {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR},
- #else
- {"STORE_INIT_ERROR", 46, 141},
- #endif
- #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA
- {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA},
- #else
- {"TYPE_NOT_COMPRESSED_DATA", 46, 142},
- #endif
- #ifdef CMS_R_TYPE_NOT_DATA
- {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA},
- #else
- {"TYPE_NOT_DATA", 46, 143},
- #endif
- #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA
- {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA},
- #else
- {"TYPE_NOT_DIGESTED_DATA", 46, 144},
- #endif
- #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA
- {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA},
- #else
- {"TYPE_NOT_ENCRYPTED_DATA", 46, 145},
- #endif
- #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA
- {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA},
- #else
- {"TYPE_NOT_ENVELOPED_DATA", 46, 146},
- #endif
- #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT
- {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT},
- #else
- {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147},
- #endif
- #ifdef CMS_R_UNKNOWN_CIPHER
- {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER},
- #else
- {"UNKNOWN_CIPHER", 46, 148},
- #endif
- #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM
- {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_DIGEST_ALGORITHM", 46, 149},
- #endif
- #ifdef CMS_R_UNKNOWN_ID
- {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID},
- #else
- {"UNKNOWN_ID", 46, 150},
- #endif
- #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
- #else
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151},
- #endif
- #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 46, 152},
- #endif
- #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE
- {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE},
- #else
- {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192},
- #endif
- #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM
- {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM},
- #else
- {"UNSUPPORTED_KEK_ALGORITHM", 46, 153},
- #endif
- #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM
- {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM},
- #else
- {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179},
- #endif
- #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE
- {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE},
- #else
- {"UNSUPPORTED_LABEL_SOURCE", 46, 193},
- #endif
- #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
- {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE},
- #else
- {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155},
- #endif
- #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE
- {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE},
- #else
- {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
- #endif
- #ifdef CMS_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 46, 156},
- #endif
- #ifdef CMS_R_UNWRAP_ERROR
- {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR},
- #else
- {"UNWRAP_ERROR", 46, 157},
- #endif
- #ifdef CMS_R_UNWRAP_FAILURE
- {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE},
- #else
- {"UNWRAP_FAILURE", 46, 180},
- #endif
- #ifdef CMS_R_VERIFICATION_FAILURE
- {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE},
- #else
- {"VERIFICATION_FAILURE", 46, 158},
- #endif
- #ifdef CMS_R_WRAP_ERROR
- {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR},
- #else
- {"WRAP_ERROR", 46, 159},
- #endif
- #ifdef COMP_R_ZLIB_DEFLATE_ERROR
- {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
- #else
- {"ZLIB_DEFLATE_ERROR", 41, 99},
- #endif
- #ifdef COMP_R_ZLIB_INFLATE_ERROR
- {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR},
- #else
- {"ZLIB_INFLATE_ERROR", 41, 100},
- #endif
- #ifdef COMP_R_ZLIB_NOT_SUPPORTED
- {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED},
- #else
- {"ZLIB_NOT_SUPPORTED", 41, 101},
- #endif
- #ifdef CONF_R_ERROR_LOADING_DSO
- {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
- #else
- {"ERROR_LOADING_DSO", 14, 110},
- #endif
- #ifdef CONF_R_INVALID_PRAGMA
- {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA},
- #else
- {"INVALID_PRAGMA", 14, 122},
- #endif
- #ifdef CONF_R_LIST_CANNOT_BE_NULL
- {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL},
- #else
- {"LIST_CANNOT_BE_NULL", 14, 115},
- #endif
- #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION
- {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION},
- #else
- {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123},
- #endif
- #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET
- {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET},
- #else
- {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100},
- #endif
- #ifdef CONF_R_MISSING_EQUAL_SIGN
- {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN},
- #else
- {"MISSING_EQUAL_SIGN", 14, 101},
- #endif
- #ifdef CONF_R_MISSING_INIT_FUNCTION
- {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION},
- #else
- {"MISSING_INIT_FUNCTION", 14, 112},
- #endif
- #ifdef CONF_R_MODULE_INITIALIZATION_ERROR
- {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR},
- #else
- {"MODULE_INITIALIZATION_ERROR", 14, 109},
- #endif
- #ifdef CONF_R_NO_CLOSE_BRACE
- {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE},
- #else
- {"NO_CLOSE_BRACE", 14, 102},
- #endif
- #ifdef CONF_R_NO_CONF
- {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF},
- #else
- {"NO_CONF", 14, 105},
- #endif
- #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE
- {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE},
- #else
- {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106},
- #endif
- #ifdef CONF_R_NO_SECTION
- {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION},
- #else
- {"NO_SECTION", 14, 107},
- #endif
- #ifdef CONF_R_NO_SUCH_FILE
- {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE},
- #else
- {"NO_SUCH_FILE", 14, 114},
- #endif
- #ifdef CONF_R_NO_VALUE
- {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE},
- #else
- {"NO_VALUE", 14, 108},
- #endif
- #ifdef CONF_R_NUMBER_TOO_LARGE
- {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE},
- #else
- {"NUMBER_TOO_LARGE", 14, 121},
- #endif
- #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION
- {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION},
- #else
- {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124},
- #endif
- #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE
- {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE},
- #else
- {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
- #endif
- #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY
- {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY},
- #else
- {"SSL_COMMAND_SECTION_EMPTY", 14, 117},
- #endif
- #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND
- {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND},
- #else
- {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118},
- #endif
- #ifdef CONF_R_SSL_SECTION_EMPTY
- {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY},
- #else
- {"SSL_SECTION_EMPTY", 14, 119},
- #endif
- #ifdef CONF_R_SSL_SECTION_NOT_FOUND
- {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND},
- #else
- {"SSL_SECTION_NOT_FOUND", 14, 120},
- #endif
- #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION
- {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION},
- #else
- {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103},
- #endif
- #ifdef CONF_R_UNKNOWN_MODULE_NAME
- {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME},
- #else
- {"UNKNOWN_MODULE_NAME", 14, 113},
- #endif
- #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG
- {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG},
- #else
- {"VARIABLE_EXPANSION_TOO_LONG", 14, 116},
- #endif
- #ifdef CONF_R_VARIABLE_HAS_NO_VALUE
- {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE},
- #else
- {"VARIABLE_HAS_NO_VALUE", 14, 104},
- #endif
- #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT
- {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT},
- #else
- {"BAD_PBM_ITERATIONCOUNT", 56, 100},
- #endif
- #ifdef CRMF_R_CRMFERROR
- {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR},
- #else
- {"CRMFERROR", 56, 102},
- #endif
- #ifdef CRMF_R_ERROR
- {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR},
- #else
- {"ERROR", 56, 103},
- #endif
- #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE
- {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE},
- #else
- {"ERROR_DECODING_CERTIFICATE", 56, 104},
- #endif
- #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE
- {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE},
- #else
- {"ERROR_DECRYPTING_CERTIFICATE", 56, 105},
- #endif
- #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY
- {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY},
- #else
- {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106},
- #endif
- #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM
- {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM},
- #else
- {"FAILURE_OBTAINING_RANDOM", 56, 107},
- #endif
- #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100
- {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100},
- #else
- {"ITERATIONCOUNT_BELOW_100", 56, 108},
- #endif
- #ifdef CRMF_R_MALFORMED_IV
- {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV},
- #else
- {"MALFORMED_IV", 56, 101},
- #endif
- #ifdef CRMF_R_NULL_ARGUMENT
- {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT},
- #else
- {"NULL_ARGUMENT", 56, 109},
- #endif
- #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED
- {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED},
- #else
- {"POPOSKINPUT_NOT_SUPPORTED", 56, 113},
- #endif
- #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY
- {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY},
- #else
- {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117},
- #endif
- #ifdef CRMF_R_POPO_MISSING
- {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING},
- #else
- {"POPO_MISSING", 56, 121},
- #endif
- #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY
- {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY},
- #else
- {"POPO_MISSING_PUBLIC_KEY", 56, 118},
- #endif
- #ifdef CRMF_R_POPO_MISSING_SUBJECT
- {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT},
- #else
- {"POPO_MISSING_SUBJECT", 56, 119},
- #endif
- #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED
- {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED},
- #else
- {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120},
- #endif
- #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE
- {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE},
- #else
- {"SETTING_MAC_ALGOR_FAILURE", 56, 110},
- #endif
- #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE
- {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE},
- #else
- {"SETTING_OWF_ALGOR_FAILURE", 56, 111},
- #endif
- #ifdef CRMF_R_UNSUPPORTED_ALGORITHM
- {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM},
- #else
- {"UNSUPPORTED_ALGORITHM", 56, 112},
- #endif
- #ifdef CRMF_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 56, 114},
- #endif
- #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO
- {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO},
- #else
- {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115},
- #endif
- #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD
- {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD},
- #else
- {"UNSUPPORTED_POPO_METHOD", 56, 116},
- #endif
- #ifdef CRYPTO_R_BAD_ALGORITHM_NAME
- {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME},
- #else
- {"BAD_ALGORITHM_NAME", 15, 117},
- #endif
- #ifdef CRYPTO_R_CONFLICTING_NAMES
- {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES},
- #else
- {"CONFLICTING_NAMES", 15, 118},
- #endif
- #ifdef CRYPTO_R_FIPS_MODE_NOT_SUPPORTED
- {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_FIPS_MODE_NOT_SUPPORTED},
- #else
- {"FIPS_MODE_NOT_SUPPORTED", 15, 101},
- #endif
- #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT
- {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT},
- #else
- {"HEX_STRING_TOO_SHORT", 15, 121},
- #endif
- #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT
- {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT},
- #else
- {"ILLEGAL_HEX_DIGIT", 15, 102},
- #endif
- #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE
- {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE},
- #else
- {"INSUFFICIENT_DATA_SPACE", 15, 106},
- #endif
- #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE
- {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE},
- #else
- {"INSUFFICIENT_PARAM_SIZE", 15, 107},
- #endif
- #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE
- {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE},
- #else
- {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108},
- #endif
- #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT
- {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT},
- #else
- {"INVALID_NULL_ARGUMENT", 15, 109},
- #endif
- #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE
- {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE},
- #else
- {"INVALID_OSSL_PARAM_TYPE", 15, 110},
- #endif
- #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS
- {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS},
- #else
- {"ODD_NUMBER_OF_DIGITS", 15, 103},
- #endif
- #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS
- {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS},
- #else
- {"PROVIDER_ALREADY_EXISTS", 15, 104},
- #endif
- #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR
- {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR},
- #else
- {"PROVIDER_SECTION_ERROR", 15, 105},
- #endif
- #ifdef CRYPTO_R_RANDOM_SECTION_ERROR
- {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR},
- #else
- {"RANDOM_SECTION_ERROR", 15, 119},
- #endif
- #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE
- {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE},
- #else
- {"SECURE_MALLOC_FAILURE", 15, 111},
- #endif
- #ifdef CRYPTO_R_STRING_TOO_LONG
- {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG},
- #else
- {"STRING_TOO_LONG", 15, 112},
- #endif
- #ifdef CRYPTO_R_TOO_MANY_BYTES
- {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES},
- #else
- {"TOO_MANY_BYTES", 15, 113},
- #endif
- #ifdef CRYPTO_R_TOO_MANY_RECORDS
- {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS},
- #else
- {"TOO_MANY_RECORDS", 15, 114},
- #endif
- #ifdef CRYPTO_R_TOO_SMALL_BUFFER
- {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER},
- #else
- {"TOO_SMALL_BUFFER", 15, 116},
- #endif
- #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION
- {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION},
- #else
- {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120},
- #endif
- #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER
- {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER},
- #else
- {"ZERO_LENGTH_NUMBER", 15, 115},
- #endif
- #ifdef CT_R_BASE64_DECODE_ERROR
- {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR},
- #else
- {"BASE64_DECODE_ERROR", 50, 108},
- #endif
- #ifdef CT_R_INVALID_LOG_ID_LENGTH
- {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH},
- #else
- {"INVALID_LOG_ID_LENGTH", 50, 100},
- #endif
- #ifdef CT_R_LOG_CONF_INVALID
- {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID},
- #else
- {"LOG_CONF_INVALID", 50, 109},
- #endif
- #ifdef CT_R_LOG_CONF_INVALID_KEY
- {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY},
- #else
- {"LOG_CONF_INVALID_KEY", 50, 110},
- #endif
- #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION
- {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION},
- #else
- {"LOG_CONF_MISSING_DESCRIPTION", 50, 111},
- #endif
- #ifdef CT_R_LOG_CONF_MISSING_KEY
- {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY},
- #else
- {"LOG_CONF_MISSING_KEY", 50, 112},
- #endif
- #ifdef CT_R_LOG_KEY_INVALID
- {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID},
- #else
- {"LOG_KEY_INVALID", 50, 113},
- #endif
- #ifdef CT_R_SCT_FUTURE_TIMESTAMP
- {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP},
- #else
- {"SCT_FUTURE_TIMESTAMP", 50, 116},
- #endif
- #ifdef CT_R_SCT_INVALID
- {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID},
- #else
- {"SCT_INVALID", 50, 104},
- #endif
- #ifdef CT_R_SCT_INVALID_SIGNATURE
- {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE},
- #else
- {"SCT_INVALID_SIGNATURE", 50, 107},
- #endif
- #ifdef CT_R_SCT_LIST_INVALID
- {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID},
- #else
- {"SCT_LIST_INVALID", 50, 105},
- #endif
- #ifdef CT_R_SCT_LOG_ID_MISMATCH
- {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH},
- #else
- {"SCT_LOG_ID_MISMATCH", 50, 114},
- #endif
- #ifdef CT_R_SCT_NOT_SET
- {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET},
- #else
- {"SCT_NOT_SET", 50, 106},
- #endif
- #ifdef CT_R_SCT_UNSUPPORTED_VERSION
- {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION},
- #else
- {"SCT_UNSUPPORTED_VERSION", 50, 115},
- #endif
- #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID
- {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID},
- #else
- {"UNRECOGNIZED_SIGNATURE_NID", 50, 101},
- #endif
- #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE
- {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE},
- #else
- {"UNSUPPORTED_ENTRY_TYPE", 50, 102},
- #endif
- #ifdef CT_R_UNSUPPORTED_VERSION
- {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION},
- #else
- {"UNSUPPORTED_VERSION", 50, 103},
- #endif
- #ifdef DH_R_BAD_FFC_PARAMETERS
- {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS},
- #else
- {"BAD_FFC_PARAMETERS", 5, 127},
- #endif
- #ifdef DH_R_BAD_GENERATOR
- {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR},
- #else
- {"BAD_GENERATOR", 5, 101},
- #endif
- #ifdef DH_R_BN_DECODE_ERROR
- {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR},
- #else
- {"BN_DECODE_ERROR", 5, 109},
- #endif
- #ifdef DH_R_BN_ERROR
- {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR},
- #else
- {"BN_ERROR", 5, 106},
- #endif
- #ifdef DH_R_CHECK_INVALID_J_VALUE
- {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE},
- #else
- {"CHECK_INVALID_J_VALUE", 5, 115},
- #endif
- #ifdef DH_R_CHECK_INVALID_Q_VALUE
- {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE},
- #else
- {"CHECK_INVALID_Q_VALUE", 5, 116},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_INVALID
- {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID},
- #else
- {"CHECK_PUBKEY_INVALID", 5, 122},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE
- {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE},
- #else
- {"CHECK_PUBKEY_TOO_LARGE", 5, 123},
- #endif
- #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL
- {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL},
- #else
- {"CHECK_PUBKEY_TOO_SMALL", 5, 124},
- #endif
- #ifdef DH_R_CHECK_P_NOT_PRIME
- {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME},
- #else
- {"CHECK_P_NOT_PRIME", 5, 117},
- #endif
- #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME
- {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME},
- #else
- {"CHECK_P_NOT_SAFE_PRIME", 5, 118},
- #endif
- #ifdef DH_R_CHECK_Q_NOT_PRIME
- {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME},
- #else
- {"CHECK_Q_NOT_PRIME", 5, 119},
- #endif
- #ifdef DH_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 5, 104},
- #endif
- #ifdef DH_R_INVALID_PARAMETER_NAME
- {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME},
- #else
- {"INVALID_PARAMETER_NAME", 5, 110},
- #endif
- #ifdef DH_R_INVALID_PARAMETER_NID
- {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID},
- #else
- {"INVALID_PARAMETER_NID", 5, 114},
- #endif
- #ifdef DH_R_INVALID_PUBKEY
- {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY},
- #else
- {"INVALID_PUBKEY", 5, 102},
- #endif
- #ifdef DH_R_INVALID_SECRET
- {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET},
- #else
- {"INVALID_SECRET", 5, 128},
- #endif
- #ifdef DH_R_KDF_PARAMETER_ERROR
- {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
- #else
- {"KDF_PARAMETER_ERROR", 5, 112},
- #endif
- #ifdef DH_R_KEYS_NOT_SET
- {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET},
- #else
- {"KEYS_NOT_SET", 5, 108},
- #endif
- #ifdef DH_R_MISSING_PUBKEY
- {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY},
- #else
- {"MISSING_PUBKEY", 5, 125},
- #endif
- #ifdef DH_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 5, 103},
- #endif
- #ifdef DH_R_MODULUS_TOO_SMALL
- {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL},
- #else
- {"MODULUS_TOO_SMALL", 5, 126},
- #endif
- #ifdef DH_R_NOT_SUITABLE_GENERATOR
- {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR},
- #else
- {"NOT_SUITABLE_GENERATOR", 5, 120},
- #endif
- #ifdef DH_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 5, 107},
- #endif
- #ifdef DH_R_NO_PRIVATE_VALUE
- {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE},
- #else
- {"NO_PRIVATE_VALUE", 5, 100},
- #endif
- #ifdef DH_R_PARAMETER_ENCODING_ERROR
- {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR},
- #else
- {"PARAMETER_ENCODING_ERROR", 5, 105},
- #endif
- #ifdef DH_R_PEER_KEY_ERROR
- {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR},
- #else
- {"PEER_KEY_ERROR", 5, 111},
- #endif
- #ifdef DH_R_SHARED_INFO_ERROR
- {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
- #else
- {"SHARED_INFO_ERROR", 5, 113},
- #endif
- #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR
- {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR},
- #else
- {"UNABLE_TO_CHECK_GENERATOR", 5, 121},
- #endif
- #ifdef DSA_R_BAD_FFC_PARAMETERS
- {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS},
- #else
- {"BAD_FFC_PARAMETERS", 10, 114},
- #endif
- #ifdef DSA_R_BAD_Q_VALUE
- {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE},
- #else
- {"BAD_Q_VALUE", 10, 102},
- #endif
- #ifdef DSA_R_BN_DECODE_ERROR
- {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR},
- #else
- {"BN_DECODE_ERROR", 10, 108},
- #endif
- #ifdef DSA_R_BN_ERROR
- {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR},
- #else
- {"BN_ERROR", 10, 109},
- #endif
- #ifdef DSA_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 10, 104},
- #endif
- #ifdef DSA_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 10, 106},
- #endif
- #ifdef DSA_R_INVALID_PARAMETERS
- {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS},
- #else
- {"INVALID_PARAMETERS", 10, 112},
- #endif
- #ifdef DSA_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 10, 101},
- #endif
- #ifdef DSA_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 10, 111},
- #endif
- #ifdef DSA_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 10, 103},
- #endif
- #ifdef DSA_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 10, 107},
- #endif
- #ifdef DSA_R_PARAMETER_ENCODING_ERROR
- {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR},
- #else
- {"PARAMETER_ENCODING_ERROR", 10, 105},
- #endif
- #ifdef DSA_R_P_NOT_PRIME
- {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME},
- #else
- {"P_NOT_PRIME", 10, 115},
- #endif
- #ifdef DSA_R_Q_NOT_PRIME
- {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME},
- #else
- {"Q_NOT_PRIME", 10, 113},
- #endif
- #ifdef DSA_R_SEED_LEN_SMALL
- {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL},
- #else
- {"SEED_LEN_SMALL", 10, 110},
- #endif
- #ifdef DSO_R_CTRL_FAILED
- {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED},
- #else
- {"CTRL_FAILED", 37, 100},
- #endif
- #ifdef DSO_R_DSO_ALREADY_LOADED
- {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED},
- #else
- {"DSO_ALREADY_LOADED", 37, 110},
- #endif
- #ifdef DSO_R_EMPTY_FILE_STRUCTURE
- {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE},
- #else
- {"EMPTY_FILE_STRUCTURE", 37, 113},
- #endif
- #ifdef DSO_R_FAILURE
- {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE},
- #else
- {"FAILURE", 37, 114},
- #endif
- #ifdef DSO_R_FILENAME_TOO_BIG
- {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG},
- #else
- {"FILENAME_TOO_BIG", 37, 101},
- #endif
- #ifdef DSO_R_FINISH_FAILED
- {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED},
- #else
- {"FINISH_FAILED", 37, 102},
- #endif
- #ifdef DSO_R_INCORRECT_FILE_SYNTAX
- {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX},
- #else
- {"INCORRECT_FILE_SYNTAX", 37, 115},
- #endif
- #ifdef DSO_R_LOAD_FAILED
- {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED},
- #else
- {"LOAD_FAILED", 37, 103},
- #endif
- #ifdef DSO_R_NAME_TRANSLATION_FAILED
- {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED},
- #else
- {"NAME_TRANSLATION_FAILED", 37, 109},
- #endif
- #ifdef DSO_R_NO_FILENAME
- {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME},
- #else
- {"NO_FILENAME", 37, 111},
- #endif
- #ifdef DSO_R_NULL_HANDLE
- {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE},
- #else
- {"NULL_HANDLE", 37, 104},
- #endif
- #ifdef DSO_R_SET_FILENAME_FAILED
- {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED},
- #else
- {"SET_FILENAME_FAILED", 37, 112},
- #endif
- #ifdef DSO_R_STACK_ERROR
- {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR},
- #else
- {"STACK_ERROR", 37, 105},
- #endif
- #ifdef DSO_R_SYM_FAILURE
- {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE},
- #else
- {"SYM_FAILURE", 37, 106},
- #endif
- #ifdef DSO_R_UNLOAD_FAILED
- {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED},
- #else
- {"UNLOAD_FAILED", 37, 107},
- #endif
- #ifdef DSO_R_UNSUPPORTED
- {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED},
- #else
- {"UNSUPPORTED", 37, 108},
- #endif
- #ifdef EC_R_ASN1_ERROR
- {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR},
- #else
- {"ASN1_ERROR", 16, 115},
- #endif
- #ifdef EC_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 16, 156},
- #endif
- #ifdef EC_R_BIGNUM_OUT_OF_RANGE
- {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE},
- #else
- {"BIGNUM_OUT_OF_RANGE", 16, 144},
- #endif
- #ifdef EC_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 16, 100},
- #endif
- #ifdef EC_R_CANNOT_INVERT
- {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT},
- #else
- {"CANNOT_INVERT", 16, 165},
- #endif
- #ifdef EC_R_COORDINATES_OUT_OF_RANGE
- {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE},
- #else
- {"COORDINATES_OUT_OF_RANGE", 16, 146},
- #endif
- #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH
- {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH},
- #else
- {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160},
- #endif
- #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA
- {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA},
- #else
- {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170},
- #endif
- #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING
- {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING},
- #else
- {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159},
- #endif
- #ifdef EC_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 16, 142},
- #endif
- #ifdef EC_R_DISCRIMINANT_IS_ZERO
- {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO},
- #else
- {"DISCRIMINANT_IS_ZERO", 16, 118},
- #endif
- #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE
- {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE},
- #else
- {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119},
- #endif
- #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY
- {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY},
- #else
- {"FAILED_MAKING_PUBLIC_KEY", 16, 166},
- #endif
- #ifdef EC_R_FIELD_TOO_LARGE
- {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE},
- #else
- {"FIELD_TOO_LARGE", 16, 143},
- #endif
- #ifdef EC_R_GF2M_NOT_SUPPORTED
- {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED},
- #else
- {"GF2M_NOT_SUPPORTED", 16, 147},
- #endif
- #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE
- {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE},
- #else
- {"GROUP2PKPARAMETERS_FAILURE", 16, 120},
- #endif
- #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE
- {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE},
- #else
- {"I2D_ECPKPARAMETERS_FAILURE", 16, 121},
- #endif
- #ifdef EC_R_INCOMPATIBLE_OBJECTS
- {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS},
- #else
- {"INCOMPATIBLE_OBJECTS", 16, 101},
- #endif
- #ifdef EC_R_INVALID_A
- {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A},
- #else
- {"INVALID_A", 16, 168},
- #endif
- #ifdef EC_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 16, 112},
- #endif
- #ifdef EC_R_INVALID_B
- {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B},
- #else
- {"INVALID_B", 16, 169},
- #endif
- #ifdef EC_R_INVALID_COFACTOR
- {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR},
- #else
- {"INVALID_COFACTOR", 16, 171},
- #endif
- #ifdef EC_R_INVALID_COMPRESSED_POINT
- {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT},
- #else
- {"INVALID_COMPRESSED_POINT", 16, 110},
- #endif
- #ifdef EC_R_INVALID_COMPRESSION_BIT
- {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT},
- #else
- {"INVALID_COMPRESSION_BIT", 16, 109},
- #endif
- #ifdef EC_R_INVALID_CURVE
- {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE},
- #else
- {"INVALID_CURVE", 16, 141},
- #endif
- #ifdef EC_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 16, 151},
- #endif
- #ifdef EC_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 16, 138},
- #endif
- #ifdef EC_R_INVALID_ENCODING
- {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING},
- #else
- {"INVALID_ENCODING", 16, 102},
- #endif
- #ifdef EC_R_INVALID_FIELD
- {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD},
- #else
- {"INVALID_FIELD", 16, 103},
- #endif
- #ifdef EC_R_INVALID_FORM
- {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM},
- #else
- {"INVALID_FORM", 16, 104},
- #endif
- #ifdef EC_R_INVALID_GENERATOR
- {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR},
- #else
- {"INVALID_GENERATOR", 16, 173},
- #endif
- #ifdef EC_R_INVALID_GROUP_ORDER
- {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER},
- #else
- {"INVALID_GROUP_ORDER", 16, 122},
- #endif
- #ifdef EC_R_INVALID_KEY
- {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY},
- #else
- {"INVALID_KEY", 16, 116},
- #endif
- #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION
- {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION},
- #else
- {"INVALID_NAMED_GROUP_CONVERSION", 16, 174},
- #endif
- #ifdef EC_R_INVALID_OUTPUT_LENGTH
- {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH},
- #else
- {"INVALID_OUTPUT_LENGTH", 16, 161},
- #endif
- #ifdef EC_R_INVALID_P
- {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P},
- #else
- {"INVALID_P", 16, 172},
- #endif
- #ifdef EC_R_INVALID_PEER_KEY
- {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY},
- #else
- {"INVALID_PEER_KEY", 16, 133},
- #endif
- #ifdef EC_R_INVALID_PENTANOMIAL_BASIS
- {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS},
- #else
- {"INVALID_PENTANOMIAL_BASIS", 16, 132},
- #endif
- #ifdef EC_R_INVALID_PRIVATE_KEY
- {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY},
- #else
- {"INVALID_PRIVATE_KEY", 16, 123},
- #endif
- #ifdef EC_R_INVALID_SEED
- {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED},
- #else
- {"INVALID_SEED", 16, 175},
- #endif
- #ifdef EC_R_INVALID_TRINOMIAL_BASIS
- {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS},
- #else
- {"INVALID_TRINOMIAL_BASIS", 16, 137},
- #endif
- #ifdef EC_R_KDF_PARAMETER_ERROR
- {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR},
- #else
- {"KDF_PARAMETER_ERROR", 16, 148},
- #endif
- #ifdef EC_R_KEYS_NOT_SET
- {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET},
- #else
- {"KEYS_NOT_SET", 16, 140},
- #endif
- #ifdef EC_R_LADDER_POST_FAILURE
- {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE},
- #else
- {"LADDER_POST_FAILURE", 16, 136},
- #endif
- #ifdef EC_R_LADDER_PRE_FAILURE
- {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE},
- #else
- {"LADDER_PRE_FAILURE", 16, 153},
- #endif
- #ifdef EC_R_LADDER_STEP_FAILURE
- {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE},
- #else
- {"LADDER_STEP_FAILURE", 16, 162},
- #endif
- #ifdef EC_R_MISSING_OID
- {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID},
- #else
- {"MISSING_OID", 16, 167},
- #endif
- #ifdef EC_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 16, 124},
- #endif
- #ifdef EC_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 16, 125},
- #endif
- #ifdef EC_R_NEED_NEW_SETUP_VALUES
- {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES},
- #else
- {"NEED_NEW_SETUP_VALUES", 16, 157},
- #endif
- #ifdef EC_R_NOT_A_NIST_PRIME
- {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME},
- #else
- {"NOT_A_NIST_PRIME", 16, 135},
- #endif
- #ifdef EC_R_NOT_IMPLEMENTED
- {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED},
- #else
- {"NOT_IMPLEMENTED", 16, 126},
- #endif
- #ifdef EC_R_NOT_INITIALIZED
- {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED},
- #else
- {"NOT_INITIALIZED", 16, 111},
- #endif
- #ifdef EC_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 16, 139},
- #endif
- #ifdef EC_R_NO_PRIVATE_VALUE
- {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE},
- #else
- {"NO_PRIVATE_VALUE", 16, 154},
- #endif
- #ifdef EC_R_OPERATION_NOT_SUPPORTED
- {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED},
- #else
- {"OPERATION_NOT_SUPPORTED", 16, 152},
- #endif
- #ifdef EC_R_PASSED_NULL_PARAMETER
- {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER},
- #else
- {"PASSED_NULL_PARAMETER", 16, 134},
- #endif
- #ifdef EC_R_PEER_KEY_ERROR
- {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR},
- #else
- {"PEER_KEY_ERROR", 16, 149},
- #endif
- #ifdef EC_R_POINT_ARITHMETIC_FAILURE
- {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE},
- #else
- {"POINT_ARITHMETIC_FAILURE", 16, 155},
- #endif
- #ifdef EC_R_POINT_AT_INFINITY
- {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY},
- #else
- {"POINT_AT_INFINITY", 16, 106},
- #endif
- #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE
- {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE},
- #else
- {"POINT_COORDINATES_BLIND_FAILURE", 16, 163},
- #endif
- #ifdef EC_R_POINT_IS_NOT_ON_CURVE
- {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE},
- #else
- {"POINT_IS_NOT_ON_CURVE", 16, 107},
- #endif
- #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED
- {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED},
- #else
- {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158},
- #endif
- #ifdef EC_R_SHARED_INFO_ERROR
- {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR},
- #else
- {"SHARED_INFO_ERROR", 16, 150},
- #endif
- #ifdef EC_R_SLOT_FULL
- {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL},
- #else
- {"SLOT_FULL", 16, 108},
- #endif
- #ifdef EC_R_UNDEFINED_GENERATOR
- {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR},
- #else
- {"UNDEFINED_GENERATOR", 16, 113},
- #endif
- #ifdef EC_R_UNDEFINED_ORDER
- {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER},
- #else
- {"UNDEFINED_ORDER", 16, 128},
- #endif
- #ifdef EC_R_UNKNOWN_COFACTOR
- {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR},
- #else
- {"UNKNOWN_COFACTOR", 16, 164},
- #endif
- #ifdef EC_R_UNKNOWN_GROUP
- {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP},
- #else
- {"UNKNOWN_GROUP", 16, 129},
- #endif
- #ifdef EC_R_UNKNOWN_ORDER
- {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER},
- #else
- {"UNKNOWN_ORDER", 16, 114},
- #endif
- #ifdef EC_R_UNSUPPORTED_FIELD
- {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD},
- #else
- {"UNSUPPORTED_FIELD", 16, 131},
- #endif
- #ifdef EC_R_WRONG_CURVE_PARAMETERS
- {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS},
- #else
- {"WRONG_CURVE_PARAMETERS", 16, 145},
- #endif
- #ifdef EC_R_WRONG_ORDER
- {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER},
- #else
- {"WRONG_ORDER", 16, 130},
- #endif
- #ifdef ENGINE_R_ALREADY_LOADED
- {"ALREADY_LOADED", ERR_LIB_ENGINE, ENGINE_R_ALREADY_LOADED},
- #else
- {"ALREADY_LOADED", 38, 100},
- #endif
- #ifdef ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER
- {"ARGUMENT_IS_NOT_A_NUMBER", ERR_LIB_ENGINE, ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER},
- #else
- {"ARGUMENT_IS_NOT_A_NUMBER", 38, 133},
- #endif
- #ifdef ENGINE_R_CMD_NOT_EXECUTABLE
- {"CMD_NOT_EXECUTABLE", ERR_LIB_ENGINE, ENGINE_R_CMD_NOT_EXECUTABLE},
- #else
- {"CMD_NOT_EXECUTABLE", 38, 134},
- #endif
- #ifdef ENGINE_R_COMMAND_TAKES_INPUT
- {"COMMAND_TAKES_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_INPUT},
- #else
- {"COMMAND_TAKES_INPUT", 38, 135},
- #endif
- #ifdef ENGINE_R_COMMAND_TAKES_NO_INPUT
- {"COMMAND_TAKES_NO_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_NO_INPUT},
- #else
- {"COMMAND_TAKES_NO_INPUT", 38, 136},
- #endif
- #ifdef ENGINE_R_CONFLICTING_ENGINE_ID
- {"CONFLICTING_ENGINE_ID", ERR_LIB_ENGINE, ENGINE_R_CONFLICTING_ENGINE_ID},
- #else
- {"CONFLICTING_ENGINE_ID", 38, 103},
- #endif
- #ifdef ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED
- {"CTRL_COMMAND_NOT_IMPLEMENTED", ERR_LIB_ENGINE, ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED},
- #else
- {"CTRL_COMMAND_NOT_IMPLEMENTED", 38, 119},
- #endif
- #ifdef ENGINE_R_DSO_FAILURE
- {"DSO_FAILURE", ERR_LIB_ENGINE, ENGINE_R_DSO_FAILURE},
- #else
- {"DSO_FAILURE", 38, 104},
- #endif
- #ifdef ENGINE_R_DSO_NOT_FOUND
- {"DSO_NOT_FOUND", ERR_LIB_ENGINE, ENGINE_R_DSO_NOT_FOUND},
- #else
- {"DSO_NOT_FOUND", 38, 132},
- #endif
- #ifdef ENGINE_R_ENGINES_SECTION_ERROR
- {"ENGINES_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINES_SECTION_ERROR},
- #else
- {"ENGINES_SECTION_ERROR", 38, 148},
- #endif
- #ifdef ENGINE_R_ENGINE_CONFIGURATION_ERROR
- {"ENGINE_CONFIGURATION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_CONFIGURATION_ERROR},
- #else
- {"ENGINE_CONFIGURATION_ERROR", 38, 102},
- #endif
- #ifdef ENGINE_R_ENGINE_IS_NOT_IN_LIST
- {"ENGINE_IS_NOT_IN_LIST", ERR_LIB_ENGINE, ENGINE_R_ENGINE_IS_NOT_IN_LIST},
- #else
- {"ENGINE_IS_NOT_IN_LIST", 38, 105},
- #endif
- #ifdef ENGINE_R_ENGINE_SECTION_ERROR
- {"ENGINE_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_SECTION_ERROR},
- #else
- {"ENGINE_SECTION_ERROR", 38, 149},
- #endif
- #ifdef ENGINE_R_FAILED_LOADING_PRIVATE_KEY
- {"FAILED_LOADING_PRIVATE_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PRIVATE_KEY},
- #else
- {"FAILED_LOADING_PRIVATE_KEY", 38, 128},
- #endif
- #ifdef ENGINE_R_FAILED_LOADING_PUBLIC_KEY
- {"FAILED_LOADING_PUBLIC_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PUBLIC_KEY},
- #else
- {"FAILED_LOADING_PUBLIC_KEY", 38, 129},
- #endif
- #ifdef ENGINE_R_FINISH_FAILED
- {"FINISH_FAILED", ERR_LIB_ENGINE, ENGINE_R_FINISH_FAILED},
- #else
- {"FINISH_FAILED", 38, 106},
- #endif
- #ifdef ENGINE_R_ID_OR_NAME_MISSING
- {"ID_OR_NAME_MISSING", ERR_LIB_ENGINE, ENGINE_R_ID_OR_NAME_MISSING},
- #else
- {"ID_OR_NAME_MISSING", 38, 108},
- #endif
- #ifdef ENGINE_R_INIT_FAILED
- {"INIT_FAILED", ERR_LIB_ENGINE, ENGINE_R_INIT_FAILED},
- #else
- {"INIT_FAILED", 38, 109},
- #endif
- #ifdef ENGINE_R_INTERNAL_LIST_ERROR
- {"INTERNAL_LIST_ERROR", ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR},
- #else
- {"INTERNAL_LIST_ERROR", 38, 110},
- #endif
- #ifdef ENGINE_R_INVALID_ARGUMENT
- {"INVALID_ARGUMENT", ERR_LIB_ENGINE, ENGINE_R_INVALID_ARGUMENT},
- #else
- {"INVALID_ARGUMENT", 38, 143},
- #endif
- #ifdef ENGINE_R_INVALID_CMD_NAME
- {"INVALID_CMD_NAME", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NAME},
- #else
- {"INVALID_CMD_NAME", 38, 137},
- #endif
- #ifdef ENGINE_R_INVALID_CMD_NUMBER
- {"INVALID_CMD_NUMBER", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NUMBER},
- #else
- {"INVALID_CMD_NUMBER", 38, 138},
- #endif
- #ifdef ENGINE_R_INVALID_INIT_VALUE
- {"INVALID_INIT_VALUE", ERR_LIB_ENGINE, ENGINE_R_INVALID_INIT_VALUE},
- #else
- {"INVALID_INIT_VALUE", 38, 151},
- #endif
- #ifdef ENGINE_R_INVALID_STRING
- {"INVALID_STRING", ERR_LIB_ENGINE, ENGINE_R_INVALID_STRING},
- #else
- {"INVALID_STRING", 38, 150},
- #endif
- #ifdef ENGINE_R_NOT_INITIALISED
- {"NOT_INITIALISED", ERR_LIB_ENGINE, ENGINE_R_NOT_INITIALISED},
- #else
- {"NOT_INITIALISED", 38, 117},
- #endif
- #ifdef ENGINE_R_NOT_LOADED
- {"NOT_LOADED", ERR_LIB_ENGINE, ENGINE_R_NOT_LOADED},
- #else
- {"NOT_LOADED", 38, 112},
- #endif
- #ifdef ENGINE_R_NO_CONTROL_FUNCTION
- {"NO_CONTROL_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_CONTROL_FUNCTION},
- #else
- {"NO_CONTROL_FUNCTION", 38, 120},
- #endif
- #ifdef ENGINE_R_NO_INDEX
- {"NO_INDEX", ERR_LIB_ENGINE, ENGINE_R_NO_INDEX},
- #else
- {"NO_INDEX", 38, 144},
- #endif
- #ifdef ENGINE_R_NO_LOAD_FUNCTION
- {"NO_LOAD_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_LOAD_FUNCTION},
- #else
- {"NO_LOAD_FUNCTION", 38, 125},
- #endif
- #ifdef ENGINE_R_NO_REFERENCE
- {"NO_REFERENCE", ERR_LIB_ENGINE, ENGINE_R_NO_REFERENCE},
- #else
- {"NO_REFERENCE", 38, 130},
- #endif
- #ifdef ENGINE_R_NO_SUCH_ENGINE
- {"NO_SUCH_ENGINE", ERR_LIB_ENGINE, ENGINE_R_NO_SUCH_ENGINE},
- #else
- {"NO_SUCH_ENGINE", 38, 116},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_CIPHER
- {"UNIMPLEMENTED_CIPHER", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_CIPHER},
- #else
- {"UNIMPLEMENTED_CIPHER", 38, 146},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_DIGEST
- {"UNIMPLEMENTED_DIGEST", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_DIGEST},
- #else
- {"UNIMPLEMENTED_DIGEST", 38, 147},
- #endif
- #ifdef ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD
- {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD},
- #else
- {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", 38, 101},
- #endif
- #ifdef ENGINE_R_VERSION_INCOMPATIBILITY
- {"VERSION_INCOMPATIBILITY", ERR_LIB_ENGINE, ENGINE_R_VERSION_INCOMPATIBILITY},
- #else
- {"VERSION_INCOMPATIBILITY", 38, 145},
- #endif
- #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST
- {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST},
- #else
- {"EMPTY_ESS_CERT_ID_LIST", 54, 107},
- #endif
- #ifdef ESS_R_ESS_CERT_DIGEST_ERROR
- {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR},
- #else
- {"ESS_CERT_DIGEST_ERROR", 54, 103},
- #endif
- #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND
- {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND},
- #else
- {"ESS_CERT_ID_NOT_FOUND", 54, 104},
- #endif
- #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER
- {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER},
- #else
- {"ESS_CERT_ID_WRONG_ORDER", 54, 105},
- #endif
- #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN
- {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN},
- #else
- {"ESS_DIGEST_ALG_UNKNOWN", 54, 106},
- #endif
- #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR
- {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR},
- #else
- {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102},
- #endif
- #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR
- {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR},
- #else
- {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100},
- #endif
- #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR
- {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR},
- #else
- {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101},
- #endif
- #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE
- {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE},
- #else
- {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108},
- #endif
- #ifdef EVP_R_AES_KEY_SETUP_FAILED
- {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED},
- #else
- {"AES_KEY_SETUP_FAILED", 6, 143},
- #endif
- #ifdef EVP_R_ARIA_KEY_SETUP_FAILED
- {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED},
- #else
- {"ARIA_KEY_SETUP_FAILED", 6, 176},
- #endif
- #ifdef EVP_R_BAD_ALGORITHM_NAME
- {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME},
- #else
- {"BAD_ALGORITHM_NAME", 6, 200},
- #endif
- #ifdef EVP_R_BAD_DECRYPT
- {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT},
- #else
- {"BAD_DECRYPT", 6, 100},
- #endif
- #ifdef EVP_R_BAD_KEY_LENGTH
- {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH},
- #else
- {"BAD_KEY_LENGTH", 6, 195},
- #endif
- #ifdef EVP_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 6, 155},
- #endif
- #ifdef EVP_R_CACHE_CONSTANTS_FAILED
- {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED},
- #else
- {"CACHE_CONSTANTS_FAILED", 6, 225},
- #endif
- #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED
- {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED},
- #else
- {"CAMELLIA_KEY_SETUP_FAILED", 6, 157},
- #endif
- #ifdef EVP_R_CANNOT_GET_PARAMETERS
- {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS},
- #else
- {"CANNOT_GET_PARAMETERS", 6, 197},
- #endif
- #ifdef EVP_R_CANNOT_SET_PARAMETERS
- {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS},
- #else
- {"CANNOT_SET_PARAMETERS", 6, 198},
- #endif
- #ifdef EVP_R_CIPHER_NOT_GCM_MODE
- {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE},
- #else
- {"CIPHER_NOT_GCM_MODE", 6, 184},
- #endif
- #ifdef EVP_R_CIPHER_PARAMETER_ERROR
- {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR},
- #else
- {"CIPHER_PARAMETER_ERROR", 6, 122},
- #endif
- #ifdef EVP_R_COMMAND_NOT_SUPPORTED
- {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED},
- #else
- {"COMMAND_NOT_SUPPORTED", 6, 147},
- #endif
- #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME
- {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME},
- #else
- {"CONFLICTING_ALGORITHM_NAME", 6, 201},
- #endif
- #ifdef EVP_R_COPY_ERROR
- {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR},
- #else
- {"COPY_ERROR", 6, 173},
- #endif
- #ifdef EVP_R_CTRL_NOT_IMPLEMENTED
- {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED},
- #else
- {"CTRL_NOT_IMPLEMENTED", 6, 132},
- #endif
- #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED
- {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED},
- #else
- {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133},
- #endif
- #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH
- {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH},
- #else
- {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138},
- #endif
- #ifdef EVP_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 6, 114},
- #endif
- #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR
- {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR},
- #else
- {"DEFAULT_QUERY_PARSE_ERROR", 6, 210},
- #endif
- #ifdef EVP_R_DIFFERENT_KEY_TYPES
- {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES},
- #else
- {"DIFFERENT_KEY_TYPES", 6, 101},
- #endif
- #ifdef EVP_R_DIFFERENT_PARAMETERS
- {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS},
- #else
- {"DIFFERENT_PARAMETERS", 6, 153},
- #endif
- #ifdef EVP_R_ERROR_LOADING_SECTION
- {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION},
- #else
- {"ERROR_LOADING_SECTION", 6, 165},
- #endif
- #ifdef EVP_R_ERROR_SETTING_FIPS_MODE
- {"ERROR_SETTING_FIPS_MODE", ERR_LIB_EVP, EVP_R_ERROR_SETTING_FIPS_MODE},
- #else
- {"ERROR_SETTING_FIPS_MODE", 6, 166},
- #endif
- #ifdef EVP_R_EXPECTING_AN_HMAC_KEY
- {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY},
- #else
- {"EXPECTING_AN_HMAC_KEY", 6, 174},
- #endif
- #ifdef EVP_R_EXPECTING_AN_RSA_KEY
- {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY},
- #else
- {"EXPECTING_AN_RSA_KEY", 6, 127},
- #endif
- #ifdef EVP_R_EXPECTING_A_DH_KEY
- {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY},
- #else
- {"EXPECTING_A_DH_KEY", 6, 128},
- #endif
- #ifdef EVP_R_EXPECTING_A_DSA_KEY
- {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY},
- #else
- {"EXPECTING_A_DSA_KEY", 6, 129},
- #endif
- #ifdef EVP_R_EXPECTING_A_ECX_KEY
- {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY},
- #else
- {"EXPECTING_A_ECX_KEY", 6, 219},
- #endif
- #ifdef EVP_R_EXPECTING_A_EC_KEY
- {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY},
- #else
- {"EXPECTING_A_EC_KEY", 6, 142},
- #endif
- #ifdef EVP_R_EXPECTING_A_POLY1305_KEY
- {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY},
- #else
- {"EXPECTING_A_POLY1305_KEY", 6, 164},
- #endif
- #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY
- {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY},
- #else
- {"EXPECTING_A_SIPHASH_KEY", 6, 175},
- #endif
- #ifdef EVP_R_FINAL_ERROR
- {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR},
- #else
- {"FINAL_ERROR", 6, 188},
- #endif
- #ifdef EVP_R_FIPS_MODE_NOT_SUPPORTED
- {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_FIPS_MODE_NOT_SUPPORTED},
- #else
- {"FIPS_MODE_NOT_SUPPORTED", 6, 167},
- #endif
- #ifdef EVP_R_GENERATE_ERROR
- {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR},
- #else
- {"GENERATE_ERROR", 6, 214},
- #endif
- #ifdef EVP_R_GET_RAW_KEY_FAILED
- {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
- #else
- {"GET_RAW_KEY_FAILED", 6, 182},
- #endif
- #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS
- {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS},
- #else
- {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171},
- #endif
- #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS
- {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS},
- #else
- {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204},
- #endif
- #ifdef EVP_R_INACCESSIBLE_KEY
- {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY},
- #else
- {"INACCESSIBLE_KEY", 6, 203},
- #endif
- #ifdef EVP_R_INITIALIZATION_ERROR
- {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR},
- #else
- {"INITIALIZATION_ERROR", 6, 134},
- #endif
- #ifdef EVP_R_INPUT_NOT_INITIALIZED
- {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED},
- #else
- {"INPUT_NOT_INITIALIZED", 6, 111},
- #endif
- #ifdef EVP_R_INVALID_CUSTOM_LENGTH
- {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH},
- #else
- {"INVALID_CUSTOM_LENGTH", 6, 185},
- #endif
- #ifdef EVP_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 6, 152},
- #endif
- #ifdef EVP_R_INVALID_FIPS_MODE
- {"INVALID_FIPS_MODE", ERR_LIB_EVP, EVP_R_INVALID_FIPS_MODE},
- #else
- {"INVALID_FIPS_MODE", 6, 168},
- #endif
- #ifdef EVP_R_INVALID_IV_LENGTH
- {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH},
- #else
- {"INVALID_IV_LENGTH", 6, 194},
- #endif
- #ifdef EVP_R_INVALID_KEY
- {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY},
- #else
- {"INVALID_KEY", 6, 163},
- #endif
- #ifdef EVP_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 6, 130},
- #endif
- #ifdef EVP_R_INVALID_LENGTH
- {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH},
- #else
- {"INVALID_LENGTH", 6, 221},
- #endif
- #ifdef EVP_R_INVALID_NULL_ALGORITHM
- {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM},
- #else
- {"INVALID_NULL_ALGORITHM", 6, 218},
- #endif
- #ifdef EVP_R_INVALID_OPERATION
- {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION},
- #else
- {"INVALID_OPERATION", 6, 148},
- #endif
- #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS
- {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS},
- #else
- {"INVALID_PROVIDER_FUNCTIONS", 6, 193},
- #endif
- #ifdef EVP_R_INVALID_SALT_LENGTH
- {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH},
- #else
- {"INVALID_SALT_LENGTH", 6, 186},
- #endif
- #ifdef EVP_R_INVALID_SECRET_LENGTH
- {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH},
- #else
- {"INVALID_SECRET_LENGTH", 6, 223},
- #endif
- #ifdef EVP_R_INVALID_SEED_LENGTH
- {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH},
- #else
- {"INVALID_SEED_LENGTH", 6, 220},
- #endif
- #ifdef EVP_R_INVALID_VALUE
- {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE},
- #else
- {"INVALID_VALUE", 6, 222},
- #endif
- #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE
- {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE},
- #else
- {"KEYMGMT_EXPORT_FAILURE", 6, 205},
- #endif
- #ifdef EVP_R_KEY_SETUP_FAILED
- {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED},
- #else
- {"KEY_SETUP_FAILED", 6, 180},
- #endif
- #ifdef EVP_R_LOCKING_NOT_SUPPORTED
- {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED},
- #else
- {"LOCKING_NOT_SUPPORTED", 6, 213},
- #endif
- #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED
- {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED},
- #else
- {"MEMORY_LIMIT_EXCEEDED", 6, 172},
- #endif
- #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL
- {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL},
- #else
- {"MESSAGE_DIGEST_IS_NULL", 6, 159},
- #endif
- #ifdef EVP_R_METHOD_NOT_SUPPORTED
- {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED},
- #else
- {"METHOD_NOT_SUPPORTED", 6, 144},
- #endif
- #ifdef EVP_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 6, 103},
- #endif
- #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX
- {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX},
- #else
- {"NOT_ABLE_TO_COPY_CTX", 6, 190},
- #endif
- #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH
- {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH},
- #else
- {"NOT_XOF_OR_INVALID_LENGTH", 6, 178},
- #endif
- #ifdef EVP_R_NO_CIPHER_SET
- {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET},
- #else
- {"NO_CIPHER_SET", 6, 131},
- #endif
- #ifdef EVP_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 6, 158},
- #endif
- #ifdef EVP_R_NO_DIGEST_SET
- {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET},
- #else
- {"NO_DIGEST_SET", 6, 139},
- #endif
- #ifdef EVP_R_NO_IMPORT_FUNCTION
- {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION},
- #else
- {"NO_IMPORT_FUNCTION", 6, 206},
- #endif
- #ifdef EVP_R_NO_KEYMGMT_AVAILABLE
- {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE},
- #else
- {"NO_KEYMGMT_AVAILABLE", 6, 199},
- #endif
- #ifdef EVP_R_NO_KEYMGMT_PRESENT
- {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT},
- #else
- {"NO_KEYMGMT_PRESENT", 6, 196},
- #endif
- #ifdef EVP_R_NO_KEY_SET
- {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET},
- #else
- {"NO_KEY_SET", 6, 154},
- #endif
- #ifdef EVP_R_NO_OPERATION_SET
- {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET},
- #else
- {"NO_OPERATION_SET", 6, 149},
- #endif
- #ifdef EVP_R_NULL_MAC_PKEY_CTX
- {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX},
- #else
- {"NULL_MAC_PKEY_CTX", 6, 208},
- #endif
- #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED
- {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED},
- #else
- {"ONLY_ONESHOT_SUPPORTED", 6, 177},
- #endif
- #ifdef EVP_R_OPERATION_NOT_INITIALIZED
- {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED},
- #else
- {"OPERATION_NOT_INITIALIZED", 6, 151},
- #endif
- #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
- #endif
- #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW
- {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW},
- #else
- {"OUTPUT_WOULD_OVERFLOW", 6, 202},
- #endif
- #ifdef EVP_R_PARAMETER_TOO_LARGE
- {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE},
- #else
- {"PARAMETER_TOO_LARGE", 6, 187},
- #endif
- #ifdef EVP_R_PARTIALLY_OVERLAPPING
- {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING},
- #else
- {"PARTIALLY_OVERLAPPING", 6, 162},
- #endif
- #ifdef EVP_R_PBKDF2_ERROR
- {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR},
- #else
- {"PBKDF2_ERROR", 6, 181},
- #endif
- #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED
- {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED},
- #else
- {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179},
- #endif
- #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR
- {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR},
- #else
- {"PRIVATE_KEY_DECODE_ERROR", 6, 145},
- #endif
- #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR
- {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR},
- #else
- {"PRIVATE_KEY_ENCODE_ERROR", 6, 146},
- #endif
- #ifdef EVP_R_PUBLIC_KEY_NOT_RSA
- {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA},
- #else
- {"PUBLIC_KEY_NOT_RSA", 6, 106},
- #endif
- #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE
- {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE},
- #else
- {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209},
- #endif
- #ifdef EVP_R_TOO_MANY_RECORDS
- {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS},
- #else
- {"TOO_MANY_RECORDS", 6, 183},
- #endif
- #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING
- {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING},
- #else
- {"UNABLE_TO_ENABLE_LOCKING", 6, 212},
- #endif
- #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE
- {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE},
- #else
- {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215},
- #endif
- #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH
- {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH},
- #else
- {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216},
- #endif
- #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT
- {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT},
- #else
- {"UNABLE_TO_LOCK_CONTEXT", 6, 211},
- #endif
- #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS
- {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS},
- #else
- {"UNABLE_TO_SET_CALLBACKS", 6, 217},
- #endif
- #ifdef EVP_R_UNKNOWN_CIPHER
- {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
- #else
- {"UNKNOWN_CIPHER", 6, 160},
- #endif
- #ifdef EVP_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 6, 161},
- #endif
- #ifdef EVP_R_UNKNOWN_KEY_TYPE
- {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE},
- #else
- {"UNKNOWN_KEY_TYPE", 6, 207},
- #endif
- #ifdef EVP_R_UNKNOWN_OPTION
- {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
- #else
- {"UNKNOWN_OPTION", 6, 169},
- #endif
- #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM
- {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM},
- #else
- {"UNKNOWN_PBE_ALGORITHM", 6, 121},
- #endif
- #ifdef EVP_R_UNSUPPORTED_ALGORITHM
- {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
- #else
- {"UNSUPPORTED_ALGORITHM", 6, 156},
- #endif
- #ifdef EVP_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 6, 107},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEYLENGTH
- {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH},
- #else
- {"UNSUPPORTED_KEYLENGTH", 6, 123},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION
- {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION},
- #else
- {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEY_SIZE
- {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE},
- #else
- {"UNSUPPORTED_KEY_SIZE", 6, 108},
- #endif
- #ifdef EVP_R_UNSUPPORTED_KEY_TYPE
- {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE},
- #else
- {"UNSUPPORTED_KEY_TYPE", 6, 224},
- #endif
- #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
- #else
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135},
- #endif
- #ifdef EVP_R_UNSUPPORTED_PRF
- {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF},
- #else
- {"UNSUPPORTED_PRF", 6, 125},
- #endif
- #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM
- {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM},
- #else
- {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118},
- #endif
- #ifdef EVP_R_UNSUPPORTED_SALT_TYPE
- {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE},
- #else
- {"UNSUPPORTED_SALT_TYPE", 6, 126},
- #endif
- #ifdef EVP_R_UPDATE_ERROR
- {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR},
- #else
- {"UPDATE_ERROR", 6, 189},
- #endif
- #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED
- {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED},
- #else
- {"WRAP_MODE_NOT_ALLOWED", 6, 170},
- #endif
- #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH
- {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH},
- #else
- {"WRONG_FINAL_BLOCK_LENGTH", 6, 109},
- #endif
- #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE
- {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE},
- #else
- {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191},
- #endif
- #ifdef EVP_R_XTS_DUPLICATED_KEYS
- {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS},
- #else
- {"XTS_DUPLICATED_KEYS", 6, 192},
- #endif
- #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN
- {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN},
- #else
- {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108},
- #endif
- #ifdef HTTP_R_CONNECT_FAILURE
- {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE},
- #else
- {"CONNECT_FAILURE", 61, 100},
- #endif
- #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH
- {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH},
- #else
- {"ERROR_PARSING_ASN1_LENGTH", 61, 109},
- #endif
- #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH
- {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH},
- #else
- {"ERROR_PARSING_CONTENT_LENGTH", 61, 119},
- #endif
- #ifdef HTTP_R_ERROR_PARSING_URL
- {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL},
- #else
- {"ERROR_PARSING_URL", 61, 101},
- #endif
- #ifdef HTTP_R_ERROR_RECEIVING
- {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING},
- #else
- {"ERROR_RECEIVING", 61, 103},
- #endif
- #ifdef HTTP_R_ERROR_SENDING
- {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING},
- #else
- {"ERROR_SENDING", 61, 102},
- #endif
- #ifdef HTTP_R_FAILED_READING_DATA
- {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA},
- #else
- {"FAILED_READING_DATA", 61, 128},
- #endif
- #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH
- {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH},
- #else
- {"INCONSISTENT_CONTENT_LENGTH", 61, 120},
- #endif
- #ifdef HTTP_R_INVALID_PORT_NUMBER
- {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER},
- #else
- {"INVALID_PORT_NUMBER", 61, 123},
- #endif
- #ifdef HTTP_R_INVALID_URL_PATH
- {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH},
- #else
- {"INVALID_URL_PATH", 61, 125},
- #endif
- #ifdef HTTP_R_INVALID_URL_SCHEME
- {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME},
- #else
- {"INVALID_URL_SCHEME", 61, 124},
- #endif
- #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED
- {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED},
- #else
- {"MAX_RESP_LEN_EXCEEDED", 61, 117},
- #endif
- #ifdef HTTP_R_MISSING_ASN1_ENCODING
- {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING},
- #else
- {"MISSING_ASN1_ENCODING", 61, 110},
- #endif
- #ifdef HTTP_R_MISSING_CONTENT_TYPE
- {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE},
- #else
- {"MISSING_CONTENT_TYPE", 61, 121},
- #endif
- #ifdef HTTP_R_MISSING_REDIRECT_LOCATION
- {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION},
- #else
- {"MISSING_REDIRECT_LOCATION", 61, 111},
- #endif
- #ifdef HTTP_R_RECEIVED_ERROR
- {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR},
- #else
- {"RECEIVED_ERROR", 61, 105},
- #endif
- #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION
- {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION},
- #else
- {"RECEIVED_WRONG_HTTP_VERSION", 61, 106},
- #endif
- #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP
- {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP},
- #else
- {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112},
- #endif
- #ifdef HTTP_R_REDIRECTION_NOT_ENABLED
- {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED},
- #else
- {"REDIRECTION_NOT_ENABLED", 61, 116},
- #endif
- #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG
- {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG},
- #else
- {"RESPONSE_LINE_TOO_LONG", 61, 113},
- #endif
- #ifdef HTTP_R_RESPONSE_PARSE_ERROR
- {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR},
- #else
- {"RESPONSE_PARSE_ERROR", 61, 104},
- #endif
- #ifdef HTTP_R_SOCK_NOT_SUPPORTED
- {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED},
- #else
- {"SOCK_NOT_SUPPORTED", 61, 122},
- #endif
- #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED
- {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED},
- #else
- {"STATUS_CODE_UNSUPPORTED", 61, 114},
- #endif
- #ifdef HTTP_R_TLS_NOT_ENABLED
- {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED},
- #else
- {"TLS_NOT_ENABLED", 61, 107},
- #endif
- #ifdef HTTP_R_TOO_MANY_REDIRECTIONS
- {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS},
- #else
- {"TOO_MANY_REDIRECTIONS", 61, 115},
- #endif
- #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE
- {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE},
- #else
- {"UNEXPECTED_CONTENT_TYPE", 61, 118},
- #endif
- #ifdef OBJ_R_OID_EXISTS
- {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS},
- #else
- {"OID_EXISTS", 8, 102},
- #endif
- #ifdef OBJ_R_UNKNOWN_NID
- {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID},
- #else
- {"UNKNOWN_NID", 8, 101},
- #endif
- #ifdef OBJ_R_UNKNOWN_OBJECT_NAME
- {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME},
- #else
- {"UNKNOWN_OBJECT_NAME", 8, 103},
- #endif
- #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 39, 101},
- #endif
- #ifdef OCSP_R_DIGEST_ERR
- {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR},
- #else
- {"DIGEST_ERR", 39, 102},
- #endif
- #ifdef OCSP_R_DIGEST_NAME_ERR
- {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR},
- #else
- {"DIGEST_NAME_ERR", 39, 106},
- #endif
- #ifdef OCSP_R_DIGEST_SIZE_ERR
- {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR},
- #else
- {"DIGEST_SIZE_ERR", 39, 107},
- #endif
- #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD
- {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD},
- #else
- {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122},
- #endif
- #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD
- {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD},
- #else
- {"ERROR_IN_THISUPDATE_FIELD", 39, 123},
- #endif
- #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE
- {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE},
- #else
- {"MISSING_OCSPSIGNING_USAGE", 39, 103},
- #endif
- #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE
- {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE},
- #else
- {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124},
- #endif
- #ifdef OCSP_R_NOT_BASIC_RESPONSE
- {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE},
- #else
- {"NOT_BASIC_RESPONSE", 39, 104},
- #endif
- #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN
- {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN},
- #else
- {"NO_CERTIFICATES_IN_CHAIN", 39, 105},
- #endif
- #ifdef OCSP_R_NO_RESPONSE_DATA
- {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA},
- #else
- {"NO_RESPONSE_DATA", 39, 108},
- #endif
- #ifdef OCSP_R_NO_REVOKED_TIME
- {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME},
- #else
- {"NO_REVOKED_TIME", 39, 109},
- #endif
- #ifdef OCSP_R_NO_SIGNER_KEY
- {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY},
- #else
- {"NO_SIGNER_KEY", 39, 130},
- #endif
- #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110},
- #endif
- #ifdef OCSP_R_REQUEST_NOT_SIGNED
- {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED},
- #else
- {"REQUEST_NOT_SIGNED", 39, 128},
- #endif
- #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA
- {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA},
- #else
- {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111},
- #endif
- #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED
- {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED},
- #else
- {"ROOT_CA_NOT_TRUSTED", 39, 112},
- #endif
- #ifdef OCSP_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 39, 117},
- #endif
- #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118},
- #endif
- #ifdef OCSP_R_STATUS_EXPIRED
- {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED},
- #else
- {"STATUS_EXPIRED", 39, 125},
- #endif
- #ifdef OCSP_R_STATUS_NOT_YET_VALID
- {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID},
- #else
- {"STATUS_NOT_YET_VALID", 39, 126},
- #endif
- #ifdef OCSP_R_STATUS_TOO_OLD
- {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD},
- #else
- {"STATUS_TOO_OLD", 39, 127},
- #endif
- #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST
- {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST},
- #else
- {"UNKNOWN_MESSAGE_DIGEST", 39, 119},
- #endif
- #ifdef OCSP_R_UNKNOWN_NID
- {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID},
- #else
- {"UNKNOWN_NID", 39, 120},
- #endif
- #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE
- {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE},
- #else
- {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129},
- #endif
- #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS
- {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS},
- #else
- {"MISSING_GET_PARAMS", 60, 100},
- #endif
- #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND
- {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND},
- #else
- {"ENCODER_NOT_FOUND", 59, 101},
- #endif
- #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY
- {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY},
- #else
- {"INCORRECT_PROPERTY_QUERY", 59, 100},
- #endif
- #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS
- {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS},
- #else
- {"MISSING_GET_PARAMS", 59, 102},
- #endif
- #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE
- {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE},
- #else
- {"AMBIGUOUS_CONTENT_TYPE", 44, 107},
- #endif
- #ifdef OSSL_STORE_R_BAD_PASSWORD_READ
- {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ},
- #else
- {"BAD_PASSWORD_READ", 44, 115},
- #endif
- #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC
- {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC},
- #else
- {"ERROR_VERIFYING_PKCS12_MAC", 44, 113},
- #endif
- #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST
- {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST},
- #else
- {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121},
- #endif
- #ifdef OSSL_STORE_R_INVALID_SCHEME
- {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME},
- #else
- {"INVALID_SCHEME", 44, 106},
- #endif
- #ifdef OSSL_STORE_R_IS_NOT_A
- {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A},
- #else
- {"IS_NOT_A", 44, 112},
- #endif
- #ifdef OSSL_STORE_R_LOADER_INCOMPLETE
- {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE},
- #else
- {"LOADER_INCOMPLETE", 44, 116},
- #endif
- #ifdef OSSL_STORE_R_LOADING_STARTED
- {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED},
- #else
- {"LOADING_STARTED", 44, 117},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE
- {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE},
- #else
- {"NOT_A_CERTIFICATE", 44, 100},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_CRL
- {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL},
- #else
- {"NOT_A_CRL", 44, 101},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_NAME
- {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME},
- #else
- {"NOT_A_NAME", 44, 103},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY
- {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY},
- #else
- {"NOT_A_PRIVATE_KEY", 44, 102},
- #endif
- #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY
- {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY},
- #else
- {"NOT_A_PUBLIC_KEY", 44, 122},
- #endif
- #ifdef OSSL_STORE_R_NOT_PARAMETERS
- {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS},
- #else
- {"NOT_PARAMETERS", 44, 104},
- #endif
- #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR
- {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR},
- #else
- {"PASSPHRASE_CALLBACK_ERROR", 44, 114},
- #endif
- #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE
- {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE},
- #else
- {"PATH_MUST_BE_ABSOLUTE", 44, 108},
- #endif
- #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES
- {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES},
- #else
- {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119},
- #endif
- #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED
- {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED},
- #else
- {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109},
- #endif
- #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME
- {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME},
- #else
- {"UNREGISTERED_SCHEME", 44, 105},
- #endif
- #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 44, 110},
- #endif
- #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION
- {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION},
- #else
- {"UNSUPPORTED_OPERATION", 44, 118},
- #endif
- #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE
- {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE},
- #else
- {"UNSUPPORTED_SEARCH_TYPE", 44, 120},
- #endif
- #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED
- {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED},
- #else
- {"URI_AUTHORITY_UNSUPPORTED", 44, 111},
- #endif
- #ifdef PEM_R_BAD_BASE64_DECODE
- {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE},
- #else
- {"BAD_BASE64_DECODE", 9, 100},
- #endif
- #ifdef PEM_R_BAD_DECRYPT
- {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT},
- #else
- {"BAD_DECRYPT", 9, 101},
- #endif
- #ifdef PEM_R_BAD_END_LINE
- {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE},
- #else
- {"BAD_END_LINE", 9, 102},
- #endif
- #ifdef PEM_R_BAD_IV_CHARS
- {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS},
- #else
- {"BAD_IV_CHARS", 9, 103},
- #endif
- #ifdef PEM_R_BAD_MAGIC_NUMBER
- {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER},
- #else
- {"BAD_MAGIC_NUMBER", 9, 116},
- #endif
- #ifdef PEM_R_BAD_PASSWORD_READ
- {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ},
- #else
- {"BAD_PASSWORD_READ", 9, 104},
- #endif
- #ifdef PEM_R_BAD_VERSION_NUMBER
- {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER},
- #else
- {"BAD_VERSION_NUMBER", 9, 117},
- #endif
- #ifdef PEM_R_BIO_WRITE_FAILURE
- {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE},
- #else
- {"BIO_WRITE_FAILURE", 9, 118},
- #endif
- #ifdef PEM_R_CIPHER_IS_NULL
- {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL},
- #else
- {"CIPHER_IS_NULL", 9, 127},
- #endif
- #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY
- {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY},
- #else
- {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115},
- #endif
- #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB
- {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB},
- #else
- {"EXPECTING_DSS_KEY_BLOB", 9, 131},
- #endif
- #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB
- {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB},
- #else
- {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119},
- #endif
- #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB
- {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB},
- #else
- {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120},
- #endif
- #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB
- {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB},
- #else
- {"EXPECTING_RSA_KEY_BLOB", 9, 132},
- #endif
- #ifdef PEM_R_HEADER_TOO_LONG
- {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG},
- #else
- {"HEADER_TOO_LONG", 9, 128},
- #endif
- #ifdef PEM_R_INCONSISTENT_HEADER
- {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER},
- #else
- {"INCONSISTENT_HEADER", 9, 121},
- #endif
- #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR
- {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR},
- #else
- {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122},
- #endif
- #ifdef PEM_R_KEYBLOB_TOO_SHORT
- {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT},
- #else
- {"KEYBLOB_TOO_SHORT", 9, 123},
- #endif
- #ifdef PEM_R_MISSING_DEK_IV
- {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV},
- #else
- {"MISSING_DEK_IV", 9, 129},
- #endif
- #ifdef PEM_R_NOT_DEK_INFO
- {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO},
- #else
- {"NOT_DEK_INFO", 9, 105},
- #endif
- #ifdef PEM_R_NOT_ENCRYPTED
- {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED},
- #else
- {"NOT_ENCRYPTED", 9, 106},
- #endif
- #ifdef PEM_R_NOT_PROC_TYPE
- {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE},
- #else
- {"NOT_PROC_TYPE", 9, 107},
- #endif
- #ifdef PEM_R_NO_START_LINE
- {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE},
- #else
- {"NO_START_LINE", 9, 108},
- #endif
- #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD
- {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD},
- #else
- {"PROBLEMS_GETTING_PASSWORD", 9, 109},
- #endif
- #ifdef PEM_R_PVK_DATA_TOO_SHORT
- {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT},
- #else
- {"PVK_DATA_TOO_SHORT", 9, 124},
- #endif
- #ifdef PEM_R_PVK_TOO_SHORT
- {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT},
- #else
- {"PVK_TOO_SHORT", 9, 125},
- #endif
- #ifdef PEM_R_READ_KEY
- {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY},
- #else
- {"READ_KEY", 9, 111},
- #endif
- #ifdef PEM_R_SHORT_HEADER
- {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER},
- #else
- {"SHORT_HEADER", 9, 112},
- #endif
- #ifdef PEM_R_UNEXPECTED_DEK_IV
- {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV},
- #else
- {"UNEXPECTED_DEK_IV", 9, 130},
- #endif
- #ifdef PEM_R_UNSUPPORTED_CIPHER
- {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER},
- #else
- {"UNSUPPORTED_CIPHER", 9, 113},
- #endif
- #ifdef PEM_R_UNSUPPORTED_ENCRYPTION
- {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION},
- #else
- {"UNSUPPORTED_ENCRYPTION", 9, 114},
- #endif
- #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS
- {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS},
- #else
- {"UNSUPPORTED_KEY_COMPONENTS", 9, 126},
- #endif
- #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
- #else
- {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110},
- #endif
- #ifdef PKCS12_R_CANT_PACK_STRUCTURE
- {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
- #else
- {"CANT_PACK_STRUCTURE", 35, 100},
- #endif
- #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA
- {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA},
- #else
- {"CONTENT_TYPE_NOT_DATA", 35, 121},
- #endif
- #ifdef PKCS12_R_DECODE_ERROR
- {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR},
- #else
- {"DECODE_ERROR", 35, 101},
- #endif
- #ifdef PKCS12_R_ENCODE_ERROR
- {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR},
- #else
- {"ENCODE_ERROR", 35, 102},
- #endif
- #ifdef PKCS12_R_ENCRYPT_ERROR
- {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR},
- #else
- {"ENCRYPT_ERROR", 35, 103},
- #endif
- #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE
- {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE},
- #else
- {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120},
- #endif
- #ifdef PKCS12_R_INVALID_NULL_ARGUMENT
- {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT},
- #else
- {"INVALID_NULL_ARGUMENT", 35, 104},
- #endif
- #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER
- {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER},
- #else
- {"INVALID_NULL_PKCS12_POINTER", 35, 105},
- #endif
- #ifdef PKCS12_R_INVALID_TYPE
- {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE},
- #else
- {"INVALID_TYPE", 35, 112},
- #endif
- #ifdef PKCS12_R_IV_GEN_ERROR
- {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR},
- #else
- {"IV_GEN_ERROR", 35, 106},
- #endif
- #ifdef PKCS12_R_KEY_GEN_ERROR
- {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR},
- #else
- {"KEY_GEN_ERROR", 35, 107},
- #endif
- #ifdef PKCS12_R_MAC_ABSENT
- {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT},
- #else
- {"MAC_ABSENT", 35, 108},
- #endif
- #ifdef PKCS12_R_MAC_GENERATION_ERROR
- {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR},
- #else
- {"MAC_GENERATION_ERROR", 35, 109},
- #endif
- #ifdef PKCS12_R_MAC_SETUP_ERROR
- {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR},
- #else
- {"MAC_SETUP_ERROR", 35, 110},
- #endif
- #ifdef PKCS12_R_MAC_STRING_SET_ERROR
- {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR},
- #else
- {"MAC_STRING_SET_ERROR", 35, 111},
- #endif
- #ifdef PKCS12_R_MAC_VERIFY_FAILURE
- {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE},
- #else
- {"MAC_VERIFY_FAILURE", 35, 113},
- #endif
- #ifdef PKCS12_R_PARSE_ERROR
- {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR},
- #else
- {"PARSE_ERROR", 35, 114},
- #endif
- #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR
- {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR},
- #else
- {"PKCS12_CIPHERFINAL_ERROR", 35, 116},
- #endif
- #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM
- {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM},
- #else
- {"UNKNOWN_DIGEST_ALGORITHM", 35, 118},
- #endif
- #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE
- {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE},
- #else
- {"UNSUPPORTED_PKCS12_MODE", 35, 119},
- #endif
- #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 33, 117},
- #endif
- #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
- #else
- {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144},
- #endif
- #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED
- {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED},
- #else
- {"CIPHER_NOT_INITIALIZED", 33, 116},
- #endif
- #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT
- {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT},
- #else
- {"CONTENT_AND_DATA_PRESENT", 33, 118},
- #endif
- #ifdef PKCS7_R_CTRL_ERROR
- {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR},
- #else
- {"CTRL_ERROR", 33, 152},
- #endif
- #ifdef PKCS7_R_DECRYPT_ERROR
- {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR},
- #else
- {"DECRYPT_ERROR", 33, 119},
- #endif
- #ifdef PKCS7_R_DIGEST_FAILURE
- {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE},
- #else
- {"DIGEST_FAILURE", 33, 101},
- #endif
- #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE
- {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE},
- #else
- {"ENCRYPTION_CTRL_FAILURE", 33, 149},
- #endif
- #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150},
- #endif
- #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT
- {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT},
- #else
- {"ERROR_ADDING_RECIPIENT", 33, 120},
- #endif
- #ifdef PKCS7_R_ERROR_SETTING_CIPHER
- {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER},
- #else
- {"ERROR_SETTING_CIPHER", 33, 121},
- #endif
- #ifdef PKCS7_R_INVALID_NULL_POINTER
- {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER},
- #else
- {"INVALID_NULL_POINTER", 33, 143},
- #endif
- #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE
- {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE},
- #else
- {"INVALID_SIGNED_DATA_TYPE", 33, 155},
- #endif
- #ifdef PKCS7_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 33, 122},
- #endif
- #ifdef PKCS7_R_NO_DEFAULT_DIGEST
- {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST},
- #else
- {"NO_DEFAULT_DIGEST", 33, 151},
- #endif
- #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND
- {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND},
- #else
- {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154},
- #endif
- #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE
- {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE},
- #else
- {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115},
- #endif
- #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA
- {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA},
- #else
- {"NO_SIGNATURES_ON_DATA", 33, 123},
- #endif
- #ifdef PKCS7_R_NO_SIGNERS
- {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS},
- #else
- {"NO_SIGNERS", 33, 142},
- #endif
- #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE
- {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104},
- #endif
- #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR
- {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR},
- #else
- {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124},
- #endif
- #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR
- {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR},
- #else
- {"PKCS7_ADD_SIGNER_ERROR", 33, 153},
- #endif
- #ifdef PKCS7_R_PKCS7_DATASIGN
- {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN},
- #else
- {"PKCS7_DATASIGN", 33, 145},
- #endif
- #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127},
- #endif
- #ifdef PKCS7_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 33, 105},
- #endif
- #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND
- {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND},
- #else
- {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128},
- #endif
- #ifdef PKCS7_R_SIGNING_CTRL_FAILURE
- {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE},
- #else
- {"SIGNING_CTRL_FAILURE", 33, 147},
- #endif
- #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
- {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
- #else
- {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148},
- #endif
- #ifdef PKCS7_R_SMIME_TEXT_ERROR
- {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR},
- #else
- {"SMIME_TEXT_ERROR", 33, 129},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE
- {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE},
- #else
- {"UNABLE_TO_FIND_CERTIFICATE", 33, 106},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO
- {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO},
- #else
- {"UNABLE_TO_FIND_MEM_BIO", 33, 107},
- #endif
- #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST
- {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST},
- #else
- {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108},
- #endif
- #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE
- {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE},
- #else
- {"UNKNOWN_DIGEST_TYPE", 33, 109},
- #endif
- #ifdef PKCS7_R_UNKNOWN_OPERATION
- {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION},
- #else
- {"UNKNOWN_OPERATION", 33, 110},
- #endif
- #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE
- {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE},
- #else
- {"UNSUPPORTED_CIPHER_TYPE", 33, 111},
- #endif
- #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE
- {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE},
- #else
- {"UNSUPPORTED_CONTENT_TYPE", 33, 112},
- #endif
- #ifdef PKCS7_R_WRONG_CONTENT_TYPE
- {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE},
- #else
- {"WRONG_CONTENT_TYPE", 33, 113},
- #endif
- #ifdef PKCS7_R_WRONG_PKCS7_TYPE
- {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE},
- #else
- {"WRONG_PKCS7_TYPE", 33, 114},
- #endif
- #ifdef PROP_R_NAME_TOO_LONG
- {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG},
- #else
- {"NAME_TOO_LONG", 55, 100},
- #endif
- #ifdef PROP_R_NOT_AN_ASCII_CHARACTER
- {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER},
- #else
- {"NOT_AN_ASCII_CHARACTER", 55, 101},
- #endif
- #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT
- {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT},
- #else
- {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102},
- #endif
- #ifdef PROP_R_NOT_AN_IDENTIFIER
- {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER},
- #else
- {"NOT_AN_IDENTIFIER", 55, 103},
- #endif
- #ifdef PROP_R_NOT_AN_OCTAL_DIGIT
- {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT},
- #else
- {"NOT_AN_OCTAL_DIGIT", 55, 104},
- #endif
- #ifdef PROP_R_NOT_A_DECIMAL_DIGIT
- {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT},
- #else
- {"NOT_A_DECIMAL_DIGIT", 55, 105},
- #endif
- #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER
- {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER},
- #else
- {"NO_MATCHING_STRING_DELIMITER", 55, 106},
- #endif
- #ifdef PROP_R_NO_VALUE
- {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE},
- #else
- {"NO_VALUE", 55, 107},
- #endif
- #ifdef PROP_R_PARSE_FAILED
- {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED},
- #else
- {"PARSE_FAILED", 55, 108},
- #endif
- #ifdef PROP_R_STRING_TOO_LONG
- {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG},
- #else
- {"STRING_TOO_LONG", 55, 109},
- #endif
- #ifdef PROP_R_TRAILING_CHARACTERS
- {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS},
- #else
- {"TRAILING_CHARACTERS", 55, 110},
- #endif
- #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG
- {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG},
- #else
- {"ADDITIONAL_INPUT_TOO_LONG", 57, 184},
- #endif
- #ifdef PROV_R_ALGORITHM_MISMATCH
- {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH},
- #else
- {"ALGORITHM_MISMATCH", 57, 173},
- #endif
- #ifdef PROV_R_ALREADY_INSTANTIATED
- {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED},
- #else
- {"ALREADY_INSTANTIATED", 57, 185},
- #endif
- #ifdef PROV_R_BAD_DECRYPT
- {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT},
- #else
- {"BAD_DECRYPT", 57, 100},
- #endif
- #ifdef PROV_R_BAD_ENCODING
- {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING},
- #else
- {"BAD_ENCODING", 57, 141},
- #endif
- #ifdef PROV_R_BAD_LENGTH
- {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH},
- #else
- {"BAD_LENGTH", 57, 142},
- #endif
- #ifdef PROV_R_BAD_TLS_CLIENT_VERSION
- {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION},
- #else
- {"BAD_TLS_CLIENT_VERSION", 57, 161},
- #endif
- #ifdef PROV_R_BN_ERROR
- {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR},
- #else
- {"BN_ERROR", 57, 160},
- #endif
- #ifdef PROV_R_CIPHER_OPERATION_FAILED
- {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED},
- #else
- {"CIPHER_OPERATION_FAILED", 57, 102},
- #endif
- #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED
- {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED},
- #else
- {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205},
- #endif
- #ifdef PROV_R_DIGEST_NOT_ALLOWED
- {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED},
- #else
- {"DIGEST_NOT_ALLOWED", 57, 174},
- #endif
- #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK
- {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK},
- #else
- {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186},
- #endif
- #ifdef PROV_R_ERROR_INSTANTIATING_DRBG
- {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG},
- #else
- {"ERROR_INSTANTIATING_DRBG", 57, 188},
- #endif
- #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY
- {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY},
- #else
- {"ERROR_RETRIEVING_ENTROPY", 57, 189},
- #endif
- #ifdef PROV_R_ERROR_RETRIEVING_NONCE
- {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE},
- #else
- {"ERROR_RETRIEVING_NONCE", 57, 190},
- #endif
- #ifdef PROV_R_FAILED_DURING_DERIVATION
- {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION},
- #else
- {"FAILED_DURING_DERIVATION", 57, 164},
- #endif
- #ifdef PROV_R_FAILED_TO_CREATE_LOCK
- {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK},
- #else
- {"FAILED_TO_CREATE_LOCK", 57, 180},
- #endif
- #ifdef PROV_R_FAILED_TO_DECRYPT
- {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT},
- #else
- {"FAILED_TO_DECRYPT", 57, 162},
- #endif
- #ifdef PROV_R_FAILED_TO_GENERATE_KEY
- {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY},
- #else
- {"FAILED_TO_GENERATE_KEY", 57, 121},
- #endif
- #ifdef PROV_R_FAILED_TO_GET_PARAMETER
- {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER},
- #else
- {"FAILED_TO_GET_PARAMETER", 57, 103},
- #endif
- #ifdef PROV_R_FAILED_TO_SET_PARAMETER
- {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER},
- #else
- {"FAILED_TO_SET_PARAMETER", 57, 104},
- #endif
- #ifdef PROV_R_FAILED_TO_SIGN
- {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN},
- #else
- {"FAILED_TO_SIGN", 57, 175},
- #endif
- #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR
- {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR},
- #else
- {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227},
- #endif
- #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE
- {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE},
- #else
- {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224},
- #endif
- #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE
- {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE},
- #else
- {"FIPS_MODULE_IN_ERROR_STATE", 57, 225},
- #endif
- #ifdef PROV_R_GENERATE_ERROR
- {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR},
- #else
- {"GENERATE_ERROR", 57, 191},
- #endif
- #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
- #else
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165},
- #endif
- #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE
- {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE},
- #else
- {"INDICATOR_INTEGRITY_FAILURE", 57, 210},
- #endif
- #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH
- {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH},
- #else
- {"INSUFFICIENT_DRBG_STRENGTH", 57, 181},
- #endif
- #ifdef PROV_R_INVALID_AAD
- {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD},
- #else
- {"INVALID_AAD", 57, 108},
- #endif
- #ifdef PROV_R_INVALID_CONFIG_DATA
- {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA},
- #else
- {"INVALID_CONFIG_DATA", 57, 211},
- #endif
- #ifdef PROV_R_INVALID_CONSTANT_LENGTH
- {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH},
- #else
- {"INVALID_CONSTANT_LENGTH", 57, 157},
- #endif
- #ifdef PROV_R_INVALID_CURVE
- {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE},
- #else
- {"INVALID_CURVE", 57, 176},
- #endif
- #ifdef PROV_R_INVALID_CUSTOM_LENGTH
- {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH},
- #else
- {"INVALID_CUSTOM_LENGTH", 57, 111},
- #endif
- #ifdef PROV_R_INVALID_DATA
- {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA},
- #else
- {"INVALID_DATA", 57, 115},
- #endif
- #ifdef PROV_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 57, 122},
- #endif
- #ifdef PROV_R_INVALID_DIGEST_LENGTH
- {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH},
- #else
- {"INVALID_DIGEST_LENGTH", 57, 166},
- #endif
- #ifdef PROV_R_INVALID_DIGEST_SIZE
- {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE},
- #else
- {"INVALID_DIGEST_SIZE", 57, 218},
- #endif
- #ifdef PROV_R_INVALID_ITERATION_COUNT
- {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT},
- #else
- {"INVALID_ITERATION_COUNT", 57, 123},
- #endif
- #ifdef PROV_R_INVALID_IV_LENGTH
- {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH},
- #else
- {"INVALID_IV_LENGTH", 57, 109},
- #endif
- #ifdef PROV_R_INVALID_KEY
- {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY},
- #else
- {"INVALID_KEY", 57, 158},
- #endif
- #ifdef PROV_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 57, 105},
- #endif
- #ifdef PROV_R_INVALID_MAC
- {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC},
- #else
- {"INVALID_MAC", 57, 151},
- #endif
- #ifdef PROV_R_INVALID_MGF1_MD
- {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD},
- #else
- {"INVALID_MGF1_MD", 57, 167},
- #endif
- #ifdef PROV_R_INVALID_MODE
- {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE},
- #else
- {"INVALID_MODE", 57, 125},
- #endif
- #ifdef PROV_R_INVALID_PADDING_MODE
- {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE},
- #else
- {"INVALID_PADDING_MODE", 57, 168},
- #endif
- #ifdef PROV_R_INVALID_PUBINFO
- {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO},
- #else
- {"INVALID_PUBINFO", 57, 198},
- #endif
- #ifdef PROV_R_INVALID_SALT_LENGTH
- {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH},
- #else
- {"INVALID_SALT_LENGTH", 57, 112},
- #endif
- #ifdef PROV_R_INVALID_SEED_LENGTH
- {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH},
- #else
- {"INVALID_SEED_LENGTH", 57, 154},
- #endif
- #ifdef PROV_R_INVALID_SIGNATURE_SIZE
- {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE},
- #else
- {"INVALID_SIGNATURE_SIZE", 57, 179},
- #endif
- #ifdef PROV_R_INVALID_STATE
- {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE},
- #else
- {"INVALID_STATE", 57, 212},
- #endif
- #ifdef PROV_R_INVALID_TAG
- {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG},
- #else
- {"INVALID_TAG", 57, 110},
- #endif
- #ifdef PROV_R_INVALID_TAG_LENGTH
- {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH},
- #else
- {"INVALID_TAG_LENGTH", 57, 118},
- #endif
- #ifdef PROV_R_INVALID_UKM_LENGTH
- {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH},
- #else
- {"INVALID_UKM_LENGTH", 57, 200},
- #endif
- #ifdef PROV_R_INVALID_X931_DIGEST
- {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST},
- #else
- {"INVALID_X931_DIGEST", 57, 170},
- #endif
- #ifdef PROV_R_IN_ERROR_STATE
- {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE},
- #else
- {"IN_ERROR_STATE", 57, 192},
- #endif
- #ifdef PROV_R_KEY_SETUP_FAILED
- {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED},
- #else
- {"KEY_SETUP_FAILED", 57, 101},
- #endif
- #ifdef PROV_R_KEY_SIZE_TOO_SMALL
- {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL},
- #else
- {"KEY_SIZE_TOO_SMALL", 57, 171},
- #endif
- #ifdef PROV_R_MISSING_CEK_ALG
- {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG},
- #else
- {"MISSING_CEK_ALG", 57, 144},
- #endif
- #ifdef PROV_R_MISSING_CIPHER
- {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER},
- #else
- {"MISSING_CIPHER", 57, 155},
- #endif
- #ifdef PROV_R_MISSING_CONFIG_DATA
- {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA},
- #else
- {"MISSING_CONFIG_DATA", 57, 213},
- #endif
- #ifdef PROV_R_MISSING_CONSTANT
- {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT},
- #else
- {"MISSING_CONSTANT", 57, 156},
- #endif
- #ifdef PROV_R_MISSING_KEY
- {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY},
- #else
- {"MISSING_KEY", 57, 128},
- #endif
- #ifdef PROV_R_MISSING_MAC
- {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC},
- #else
- {"MISSING_MAC", 57, 150},
- #endif
- #ifdef PROV_R_MISSING_MESSAGE_DIGEST
- {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST},
- #else
- {"MISSING_MESSAGE_DIGEST", 57, 129},
- #endif
- #ifdef PROV_R_MISSING_OID
- {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID},
- #else
- {"MISSING_OID", 57, 209},
- #endif
- #ifdef PROV_R_MISSING_PASS
- {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS},
- #else
- {"MISSING_PASS", 57, 130},
- #endif
- #ifdef PROV_R_MISSING_SALT
- {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT},
- #else
- {"MISSING_SALT", 57, 131},
- #endif
- #ifdef PROV_R_MISSING_SECRET
- {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET},
- #else
- {"MISSING_SECRET", 57, 132},
- #endif
- #ifdef PROV_R_MISSING_SEED
- {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED},
- #else
- {"MISSING_SEED", 57, 140},
- #endif
- #ifdef PROV_R_MISSING_SESSION_ID
- {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID},
- #else
- {"MISSING_SESSION_ID", 57, 133},
- #endif
- #ifdef PROV_R_MISSING_TYPE
- {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE},
- #else
- {"MISSING_TYPE", 57, 134},
- #endif
- #ifdef PROV_R_MISSING_XCGHASH
- {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH},
- #else
- {"MISSING_XCGHASH", 57, 135},
- #endif
- #ifdef PROV_R_MODULE_INTEGRITY_FAILURE
- {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE},
- #else
- {"MODULE_INTEGRITY_FAILURE", 57, 214},
- #endif
- #ifdef PROV_R_NOT_A_PRIVATE_KEY
- {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY},
- #else
- {"NOT_A_PRIVATE_KEY", 57, 221},
- #endif
- #ifdef PROV_R_NOT_A_PUBLIC_KEY
- {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY},
- #else
- {"NOT_A_PUBLIC_KEY", 57, 220},
- #endif
- #ifdef PROV_R_NOT_INSTANTIATED
- {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED},
- #else
- {"NOT_INSTANTIATED", 57, 193},
- #endif
- #ifdef PROV_R_NOT_PARAMETERS
- {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS},
- #else
- {"NOT_PARAMETERS", 57, 226},
- #endif
- #ifdef PROV_R_NOT_SUPPORTED
- {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED},
- #else
- {"NOT_SUPPORTED", 57, 136},
- #endif
- #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH
- {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH},
- #else
- {"NOT_XOF_OR_INVALID_LENGTH", 57, 113},
- #endif
- #ifdef PROV_R_NO_KEY_SET
- {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET},
- #else
- {"NO_KEY_SET", 57, 114},
- #endif
- #ifdef PROV_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 57, 177},
- #endif
- #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178},
- #endif
- #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL
- {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL},
- #else
- {"OUTPUT_BUFFER_TOO_SMALL", 57, 106},
- #endif
- #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS
- {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS},
- #else
- {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228},
- #endif
- #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED
- {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED},
- #else
- {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187},
- #endif
- #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED
- {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED},
- #else
- {"PARENT_LOCKING_NOT_ENABLED", 57, 182},
- #endif
- #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK
- {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK},
- #else
- {"PARENT_STRENGTH_TOO_WEAK", 57, 194},
- #endif
- #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE
- {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE},
- #else
- {"PATH_MUST_BE_ABSOLUTE", 57, 219},
- #endif
- #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG
- {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG},
- #else
- {"PERSONALISATION_STRING_TOO_LONG", 57, 195},
- #endif
- #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL
- {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL},
- #else
- {"PSS_SALTLEN_TOO_SMALL", 57, 172},
- #endif
- #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG
- {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG},
- #else
- {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196},
- #endif
- #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER
- {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER},
- #else
- {"REQUIRE_CTR_MODE_CIPHER", 57, 206},
- #endif
- #ifdef PROV_R_RESEED_ERROR
- {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR},
- #else
- {"RESEED_ERROR", 57, 197},
- #endif
- #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES
- {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES},
- #else
- {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222},
- #endif
- #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT
- {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT},
- #else
- {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229},
- #endif
- #ifdef PROV_R_SELF_TEST_KAT_FAILURE
- {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE},
- #else
- {"SELF_TEST_KAT_FAILURE", 57, 215},
- #endif
- #ifdef PROV_R_SELF_TEST_POST_FAILURE
- {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE},
- #else
- {"SELF_TEST_POST_FAILURE", 57, 216},
- #endif
- #ifdef PROV_R_TAG_NOT_NEEDED
- {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED},
- #else
- {"TAG_NOT_NEEDED", 57, 120},
- #endif
- #ifdef PROV_R_TAG_NOT_SET
- {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET},
- #else
- {"TAG_NOT_SET", 57, 119},
- #endif
- #ifdef PROV_R_TOO_MANY_RECORDS
- {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS},
- #else
- {"TOO_MANY_RECORDS", 57, 126},
- #endif
- #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS
- {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS},
- #else
- {"UNABLE_TO_FIND_CIPHERS", 57, 207},
- #endif
- #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH
- {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH},
- #else
- {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199},
- #endif
- #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE
- {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE},
- #else
- {"UNABLE_TO_GET_PASSPHRASE", 57, 159},
- #endif
- #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS
- {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS},
- #else
- {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208},
- #endif
- #ifdef PROV_R_UNABLE_TO_LOAD_SHA256
- {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256},
- #else
- {"UNABLE_TO_LOAD_SHA256", 57, 147},
- #endif
- #ifdef PROV_R_UNABLE_TO_LOCK_PARENT
- {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT},
- #else
- {"UNABLE_TO_LOCK_PARENT", 57, 201},
- #endif
- #ifdef PROV_R_UNABLE_TO_RESEED
- {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED},
- #else
- {"UNABLE_TO_RESEED", 57, 204},
- #endif
- #ifdef PROV_R_UNSUPPORTED_CEK_ALG
- {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG},
- #else
- {"UNSUPPORTED_CEK_ALG", 57, 145},
- #endif
- #ifdef PROV_R_UNSUPPORTED_KEY_SIZE
- {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE},
- #else
- {"UNSUPPORTED_KEY_SIZE", 57, 153},
- #endif
- #ifdef PROV_R_UNSUPPORTED_MAC_TYPE
- {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE},
- #else
- {"UNSUPPORTED_MAC_TYPE", 57, 137},
- #endif
- #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
- #else
- {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152},
- #endif
- #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED
- {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED},
- #else
- {"URI_AUTHORITY_UNSUPPORTED", 57, 223},
- #endif
- #ifdef PROV_R_VALUE_ERROR
- {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR},
- #else
- {"VALUE_ERROR", 57, 138},
- #endif
- #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH
- {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH},
- #else
- {"WRONG_FINAL_BLOCK_LENGTH", 57, 107},
- #endif
- #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE
- {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE},
- #else
- {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139},
- #endif
- #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED
- {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED},
- #else
- {"XOF_DIGESTS_NOT_ALLOWED", 57, 183},
- #endif
- #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE
- {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE},
- #else
- {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148},
- #endif
- #ifdef PROV_R_XTS_DUPLICATED_KEYS
- {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS},
- #else
- {"XTS_DUPLICATED_KEYS", 57, 149},
- #endif
- #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG
- {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG},
- #else
- {"ADDITIONAL_INPUT_TOO_LONG", 36, 102},
- #endif
- #ifdef RAND_R_ALREADY_INSTANTIATED
- {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED},
- #else
- {"ALREADY_INSTANTIATED", 36, 103},
- #endif
- #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE
- {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE},
- #else
- {"ARGUMENT_OUT_OF_RANGE", 36, 105},
- #endif
- #ifdef RAND_R_CANNOT_OPEN_FILE
- {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE},
- #else
- {"CANNOT_OPEN_FILE", 36, 121},
- #endif
- #ifdef RAND_R_DERIVATION_FUNCTION_MANDATORY_FOR_FIPS
- {"DERIVATION_FUNCTION_MANDATORY_FOR_FIPS", ERR_LIB_RAND, RAND_R_DERIVATION_FUNCTION_MANDATORY_FOR_FIPS},
- #else
- {"DERIVATION_FUNCTION_MANDATORY_FOR_FIPS", 36, 137},
- #endif
- #ifdef RAND_R_DRBG_ALREADY_INITIALIZED
- {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED},
- #else
- {"DRBG_ALREADY_INITIALIZED", 36, 129},
- #endif
- #ifdef RAND_R_DRBG_NOT_INITIALISED
- {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED},
- #else
- {"DRBG_NOT_INITIALISED", 36, 104},
- #endif
- #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG
- {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG},
- #else
- {"ENTROPY_INPUT_TOO_LONG", 36, 106},
- #endif
- #ifdef RAND_R_ENTROPY_OUT_OF_RANGE
- {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE},
- #else
- {"ENTROPY_OUT_OF_RANGE", 36, 124},
- #endif
- #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED
- {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED},
- #else
- {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127},
- #endif
- #ifdef RAND_R_ERROR_INITIALISING_DRBG
- {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG},
- #else
- {"ERROR_INITIALISING_DRBG", 36, 107},
- #endif
- #ifdef RAND_R_ERROR_INSTANTIATING_DRBG
- {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG},
- #else
- {"ERROR_INSTANTIATING_DRBG", 36, 108},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT
- {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT},
- #else
- {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY
- {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY},
- #else
- {"ERROR_RETRIEVING_ENTROPY", 36, 110},
- #endif
- #ifdef RAND_R_ERROR_RETRIEVING_NONCE
- {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE},
- #else
- {"ERROR_RETRIEVING_NONCE", 36, 111},
- #endif
- #ifdef RAND_R_FAILED_TO_CREATE_LOCK
- {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK},
- #else
- {"FAILED_TO_CREATE_LOCK", 36, 126},
- #endif
- #ifdef RAND_R_FUNC_NOT_IMPLEMENTED
- {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED},
- #else
- {"FUNC_NOT_IMPLEMENTED", 36, 101},
- #endif
- #ifdef RAND_R_FWRITE_ERROR
- {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR},
- #else
- {"FWRITE_ERROR", 36, 123},
- #endif
- #ifdef RAND_R_GENERATE_ERROR
- {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR},
- #else
- {"GENERATE_ERROR", 36, 112},
- #endif
- #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH
- {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH},
- #else
- {"INSUFFICIENT_DRBG_STRENGTH", 36, 139},
- #endif
- #ifdef RAND_R_INTERNAL_ERROR
- {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR},
- #else
- {"INTERNAL_ERROR", 36, 113},
- #endif
- #ifdef RAND_R_IN_ERROR_STATE
- {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
- #else
- {"IN_ERROR_STATE", 36, 114},
- #endif
- #ifdef RAND_R_NOT_A_REGULAR_FILE
- {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE},
- #else
- {"NOT_A_REGULAR_FILE", 36, 122},
- #endif
- #ifdef RAND_R_NOT_INSTANTIATED
- {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED},
- #else
- {"NOT_INSTANTIATED", 36, 115},
- #endif
- #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED
- {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED},
- #else
- {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128},
- #endif
- #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED
- {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED},
- #else
- {"PARENT_LOCKING_NOT_ENABLED", 36, 130},
- #endif
- #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK
- {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK},
- #else
- {"PARENT_STRENGTH_TOO_WEAK", 36, 131},
- #endif
- #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG
- {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG},
- #else
- {"PERSONALISATION_STRING_TOO_LONG", 36, 116},
- #endif
- #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED
- {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED},
- #else
- {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133},
- #endif
- #ifdef RAND_R_PRNG_NOT_SEEDED
- {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED},
- #else
- {"PRNG_NOT_SEEDED", 36, 100},
- #endif
- #ifdef RAND_R_RANDOM_POOL_OVERFLOW
- {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW},
- #else
- {"RANDOM_POOL_OVERFLOW", 36, 125},
- #endif
- #ifdef RAND_R_RANDOM_POOL_UNDERFLOW
- {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW},
- #else
- {"RANDOM_POOL_UNDERFLOW", 36, 134},
- #endif
- #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG
- {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG},
- #else
- {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117},
- #endif
- #ifdef RAND_R_RESEED_ERROR
- {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR},
- #else
- {"RESEED_ERROR", 36, 118},
- #endif
- #ifdef RAND_R_SELFTEST_FAILURE
- {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE},
- #else
- {"SELFTEST_FAILURE", 36, 119},
- #endif
- #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED
- {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED},
- #else
- {"TOO_LITTLE_NONCE_REQUESTED", 36, 135},
- #endif
- #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED
- {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED},
- #else
- {"TOO_MUCH_NONCE_REQUESTED", 36, 136},
- #endif
- #ifdef RAND_R_UNABLE_TO_CREATE_DRBG
- {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG},
- #else
- {"UNABLE_TO_CREATE_DRBG", 36, 143},
- #endif
- #ifdef RAND_R_UNABLE_TO_FETCH_DRBG
- {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG},
- #else
- {"UNABLE_TO_FETCH_DRBG", 36, 144},
- #endif
- #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER
- {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER},
- #else
- {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141},
- #endif
- #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH
- {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH},
- #else
- {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138},
- #endif
- #ifdef RAND_R_UNABLE_TO_LOCK_PARENT
- {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT},
- #else
- {"UNABLE_TO_LOCK_PARENT", 36, 140},
- #endif
- #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS
- {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS},
- #else
- {"UNSUPPORTED_DRBG_FLAGS", 36, 132},
- #endif
- #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE
- {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE},
- #else
- {"UNSUPPORTED_DRBG_TYPE", 36, 120},
- #endif
- #ifdef RSA_R_ALGORITHM_MISMATCH
- {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH},
- #else
- {"ALGORITHM_MISMATCH", 4, 100},
- #endif
- #ifdef RSA_R_BAD_E_VALUE
- {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE},
- #else
- {"BAD_E_VALUE", 4, 101},
- #endif
- #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT
- {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT},
- #else
- {"BAD_FIXED_HEADER_DECRYPT", 4, 102},
- #endif
- #ifdef RSA_R_BAD_PAD_BYTE_COUNT
- {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT},
- #else
- {"BAD_PAD_BYTE_COUNT", 4, 103},
- #endif
- #ifdef RSA_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 4, 104},
- #endif
- #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01
- {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01},
- #else
- {"BLOCK_TYPE_IS_NOT_01", 4, 106},
- #endif
- #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02
- {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02},
- #else
- {"BLOCK_TYPE_IS_NOT_02", 4, 107},
- #endif
- #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN
- {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN},
- #else
- {"DATA_GREATER_THAN_MOD_LEN", 4, 108},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE
- {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE},
- #else
- {"DATA_TOO_LARGE", 4, 109},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
- {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE},
- #else
- {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110},
- #endif
- #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS
- {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS},
- #else
- {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132},
- #endif
- #ifdef RSA_R_DATA_TOO_SMALL
- {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL},
- #else
- {"DATA_TOO_SMALL", 4, 111},
- #endif
- #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE
- {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE},
- #else
- {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122},
- #endif
- #ifdef RSA_R_DIGEST_DOES_NOT_MATCH
- {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH},
- #else
- {"DIGEST_DOES_NOT_MATCH", 4, 158},
- #endif
- #ifdef RSA_R_DIGEST_NOT_ALLOWED
- {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED},
- #else
- {"DIGEST_NOT_ALLOWED", 4, 145},
- #endif
- #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY
- {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY},
- #else
- {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112},
- #endif
- #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D
- {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D},
- #else
- {"DMP1_NOT_CONGRUENT_TO_D", 4, 124},
- #endif
- #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D
- {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D},
- #else
- {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125},
- #endif
- #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1
- {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1},
- #else
- {"D_E_NOT_CONGRUENT_TO_1", 4, 123},
- #endif
- #ifdef RSA_R_FIRST_OCTET_INVALID
- {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID},
- #else
- {"FIRST_OCTET_INVALID", 4, 133},
- #endif
- #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
- #else
- {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144},
- #endif
- #ifdef RSA_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 4, 157},
- #endif
- #ifdef RSA_R_INVALID_DIGEST_LENGTH
- {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH},
- #else
- {"INVALID_DIGEST_LENGTH", 4, 143},
- #endif
- #ifdef RSA_R_INVALID_HEADER
- {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER},
- #else
- {"INVALID_HEADER", 4, 137},
- #endif
- #ifdef RSA_R_INVALID_KEYPAIR
- {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR},
- #else
- {"INVALID_KEYPAIR", 4, 171},
- #endif
- #ifdef RSA_R_INVALID_KEY_LENGTH
- {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH},
- #else
- {"INVALID_KEY_LENGTH", 4, 173},
- #endif
- #ifdef RSA_R_INVALID_LABEL
- {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL},
- #else
- {"INVALID_LABEL", 4, 160},
- #endif
- #ifdef RSA_R_INVALID_MESSAGE_LENGTH
- {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH},
- #else
- {"INVALID_MESSAGE_LENGTH", 4, 131},
- #endif
- #ifdef RSA_R_INVALID_MGF1_MD
- {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD},
- #else
- {"INVALID_MGF1_MD", 4, 156},
- #endif
- #ifdef RSA_R_INVALID_MODULUS
- {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS},
- #else
- {"INVALID_MODULUS", 4, 174},
- #endif
- #ifdef RSA_R_INVALID_MULTI_PRIME_KEY
- {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY},
- #else
- {"INVALID_MULTI_PRIME_KEY", 4, 167},
- #endif
- #ifdef RSA_R_INVALID_OAEP_PARAMETERS
- {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS},
- #else
- {"INVALID_OAEP_PARAMETERS", 4, 161},
- #endif
- #ifdef RSA_R_INVALID_PADDING
- {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING},
- #else
- {"INVALID_PADDING", 4, 138},
- #endif
- #ifdef RSA_R_INVALID_PADDING_MODE
- {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE},
- #else
- {"INVALID_PADDING_MODE", 4, 141},
- #endif
- #ifdef RSA_R_INVALID_PSS_PARAMETERS
- {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS},
- #else
- {"INVALID_PSS_PARAMETERS", 4, 149},
- #endif
- #ifdef RSA_R_INVALID_PSS_SALTLEN
- {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN},
- #else
- {"INVALID_PSS_SALTLEN", 4, 146},
- #endif
- #ifdef RSA_R_INVALID_REQUEST
- {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST},
- #else
- {"INVALID_REQUEST", 4, 175},
- #endif
- #ifdef RSA_R_INVALID_SALT_LENGTH
- {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH},
- #else
- {"INVALID_SALT_LENGTH", 4, 150},
- #endif
- #ifdef RSA_R_INVALID_STRENGTH
- {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH},
- #else
- {"INVALID_STRENGTH", 4, 176},
- #endif
- #ifdef RSA_R_INVALID_TRAILER
- {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER},
- #else
- {"INVALID_TRAILER", 4, 139},
- #endif
- #ifdef RSA_R_INVALID_X931_DIGEST
- {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST},
- #else
- {"INVALID_X931_DIGEST", 4, 142},
- #endif
- #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q
- {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q},
- #else
- {"IQMP_NOT_INVERSE_OF_Q", 4, 126},
- #endif
- #ifdef RSA_R_KEY_PRIME_NUM_INVALID
- {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID},
- #else
- {"KEY_PRIME_NUM_INVALID", 4, 165},
- #endif
- #ifdef RSA_R_KEY_SIZE_TOO_SMALL
- {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL},
- #else
- {"KEY_SIZE_TOO_SMALL", 4, 120},
- #endif
- #ifdef RSA_R_LAST_OCTET_INVALID
- {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID},
- #else
- {"LAST_OCTET_INVALID", 4, 134},
- #endif
- #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED
- {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED},
- #else
- {"MGF1_DIGEST_NOT_ALLOWED", 4, 152},
- #endif
- #ifdef RSA_R_MISSING_PRIVATE_KEY
- {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY},
- #else
- {"MISSING_PRIVATE_KEY", 4, 179},
- #endif
- #ifdef RSA_R_MODULUS_TOO_LARGE
- {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE},
- #else
- {"MODULUS_TOO_LARGE", 4, 105},
- #endif
- #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R
- {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R},
- #else
- {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168},
- #endif
- #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D
- {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D},
- #else
- {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169},
- #endif
- #ifdef RSA_R_MP_R_NOT_PRIME
- {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME},
- #else
- {"MP_R_NOT_PRIME", 4, 170},
- #endif
- #ifdef RSA_R_NO_PUBLIC_EXPONENT
- {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT},
- #else
- {"NO_PUBLIC_EXPONENT", 4, 140},
- #endif
- #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING
- {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING},
- #else
- {"NULL_BEFORE_BLOCK_MISSING", 4, 113},
- #endif
- #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES
- {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES},
- #else
- {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172},
- #endif
- #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q
- {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q},
- #else
- {"N_DOES_NOT_EQUAL_P_Q", 4, 127},
- #endif
- #ifdef RSA_R_OAEP_DECODING_ERROR
- {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR},
- #else
- {"OAEP_DECODING_ERROR", 4, 121},
- #endif
- #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
- #else
- {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148},
- #endif
- #ifdef RSA_R_PADDING_CHECK_FAILED
- {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED},
- #else
- {"PADDING_CHECK_FAILED", 4, 114},
- #endif
- #ifdef RSA_R_PAIRWISE_TEST_FAILURE
- {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE},
- #else
- {"PAIRWISE_TEST_FAILURE", 4, 177},
- #endif
- #ifdef RSA_R_PKCS_DECODING_ERROR
- {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR},
- #else
- {"PKCS_DECODING_ERROR", 4, 159},
- #endif
- #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL
- {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL},
- #else
- {"PSS_SALTLEN_TOO_SMALL", 4, 164},
- #endif
- #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE
- {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE},
- #else
- {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178},
- #endif
- #ifdef RSA_R_P_NOT_PRIME
- {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME},
- #else
- {"P_NOT_PRIME", 4, 128},
- #endif
- #ifdef RSA_R_Q_NOT_PRIME
- {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME},
- #else
- {"Q_NOT_PRIME", 4, 129},
- #endif
- #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED
- {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED},
- #else
- {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130},
- #endif
- #ifdef RSA_R_SLEN_CHECK_FAILED
- {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED},
- #else
- {"SLEN_CHECK_FAILED", 4, 136},
- #endif
- #ifdef RSA_R_SLEN_RECOVERY_FAILED
- {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED},
- #else
- {"SLEN_RECOVERY_FAILED", 4, 135},
- #endif
- #ifdef RSA_R_SSLV3_ROLLBACK_ATTACK
- {"SSLV3_ROLLBACK_ATTACK", ERR_LIB_RSA, RSA_R_SSLV3_ROLLBACK_ATTACK},
- #else
- {"SSLV3_ROLLBACK_ATTACK", 4, 115},
- #endif
- #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
- #else
- {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116},
- #endif
- #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE
- {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE},
- #else
- {"UNKNOWN_ALGORITHM_TYPE", 4, 117},
- #endif
- #ifdef RSA_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 4, 166},
- #endif
- #ifdef RSA_R_UNKNOWN_MASK_DIGEST
- {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST},
- #else
- {"UNKNOWN_MASK_DIGEST", 4, 151},
- #endif
- #ifdef RSA_R_UNKNOWN_PADDING_TYPE
- {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE},
- #else
- {"UNKNOWN_PADDING_TYPE", 4, 118},
- #endif
- #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE
- {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE},
- #else
- {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162},
- #endif
- #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE
- {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE},
- #else
- {"UNSUPPORTED_LABEL_SOURCE", 4, 163},
- #endif
- #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM
- {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM},
- #else
- {"UNSUPPORTED_MASK_ALGORITHM", 4, 153},
- #endif
- #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER
- {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER},
- #else
- {"UNSUPPORTED_MASK_PARAMETER", 4, 154},
- #endif
- #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE
- {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE},
- #else
- {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155},
- #endif
- #ifdef RSA_R_VALUE_MISSING
- {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING},
- #else
- {"VALUE_MISSING", 4, 147},
- #endif
- #ifdef RSA_R_WRONG_SIGNATURE_LENGTH
- {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH},
- #else
- {"WRONG_SIGNATURE_LENGTH", 4, 119},
- #endif
- #ifdef SM2_R_ASN1_ERROR
- {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR},
- #else
- {"ASN1_ERROR", 53, 100},
- #endif
- #ifdef SM2_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 53, 101},
- #endif
- #ifdef SM2_R_BUFFER_TOO_SMALL
- {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL},
- #else
- {"BUFFER_TOO_SMALL", 53, 107},
- #endif
- #ifdef SM2_R_DIST_ID_TOO_LARGE
- {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE},
- #else
- {"DIST_ID_TOO_LARGE", 53, 110},
- #endif
- #ifdef SM2_R_ID_NOT_SET
- {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET},
- #else
- {"ID_NOT_SET", 53, 112},
- #endif
- #ifdef SM2_R_ID_TOO_LARGE
- {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE},
- #else
- {"ID_TOO_LARGE", 53, 111},
- #endif
- #ifdef SM2_R_INVALID_CURVE
- {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE},
- #else
- {"INVALID_CURVE", 53, 108},
- #endif
- #ifdef SM2_R_INVALID_DIGEST
- {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST},
- #else
- {"INVALID_DIGEST", 53, 102},
- #endif
- #ifdef SM2_R_INVALID_DIGEST_TYPE
- {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE},
- #else
- {"INVALID_DIGEST_TYPE", 53, 103},
- #endif
- #ifdef SM2_R_INVALID_ENCODING
- {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING},
- #else
- {"INVALID_ENCODING", 53, 104},
- #endif
- #ifdef SM2_R_INVALID_FIELD
- {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD},
- #else
- {"INVALID_FIELD", 53, 105},
- #endif
- #ifdef SM2_R_INVALID_PRIVATE_KEY
- {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY},
- #else
- {"INVALID_PRIVATE_KEY", 53, 113},
- #endif
- #ifdef SM2_R_NO_PARAMETERS_SET
- {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET},
- #else
- {"NO_PARAMETERS_SET", 53, 109},
- #endif
- #ifdef SM2_R_USER_ID_TOO_LARGE
- {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE},
- #else
- {"USER_ID_TOO_LARGE", 53, 106},
- #endif
- #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY
- {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY},
- #else
- {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291},
- #endif
- #ifdef SSL_R_APP_DATA_IN_HANDSHAKE
- {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE},
- #else
- {"APP_DATA_IN_HANDSHAKE", 20, 100},
- #endif
- #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT
- {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT},
- #else
- {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272},
- #endif
- #ifdef SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE
- {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE},
- #else
- {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", 20, 143},
- #endif
- #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE
- {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE},
- #else
- {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
- #endif
- #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
- {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
- #else
- {"BAD_CHANGE_CIPHER_SPEC", 20, 103},
- #endif
- #ifdef SSL_R_BAD_CIPHER
- {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER},
- #else
- {"BAD_CIPHER", 20, 186},
- #endif
- #ifdef SSL_R_BAD_DATA
- {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
- #else
- {"BAD_DATA", 20, 390},
- #endif
- #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK
- {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK},
- #else
- {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106},
- #endif
- #ifdef SSL_R_BAD_DECOMPRESSION
- {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION},
- #else
- {"BAD_DECOMPRESSION", 20, 107},
- #endif
- #ifdef SSL_R_BAD_DH_VALUE
- {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE},
- #else
- {"BAD_DH_VALUE", 20, 102},
- #endif
- #ifdef SSL_R_BAD_DIGEST_LENGTH
- {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH},
- #else
- {"BAD_DIGEST_LENGTH", 20, 111},
- #endif
- #ifdef SSL_R_BAD_EARLY_DATA
- {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA},
- #else
- {"BAD_EARLY_DATA", 20, 233},
- #endif
- #ifdef SSL_R_BAD_ECC_CERT
- {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT},
- #else
- {"BAD_ECC_CERT", 20, 304},
- #endif
- #ifdef SSL_R_BAD_ECPOINT
- {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT},
- #else
- {"BAD_ECPOINT", 20, 306},
- #endif
- #ifdef SSL_R_BAD_EXTENSION
- {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION},
- #else
- {"BAD_EXTENSION", 20, 110},
- #endif
- #ifdef SSL_R_BAD_HANDSHAKE_LENGTH
- {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH},
- #else
- {"BAD_HANDSHAKE_LENGTH", 20, 332},
- #endif
- #ifdef SSL_R_BAD_HANDSHAKE_STATE
- {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE},
- #else
- {"BAD_HANDSHAKE_STATE", 20, 236},
- #endif
- #ifdef SSL_R_BAD_HELLO_REQUEST
- {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST},
- #else
- {"BAD_HELLO_REQUEST", 20, 105},
- #endif
- #ifdef SSL_R_BAD_HRR_VERSION
- {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION},
- #else
- {"BAD_HRR_VERSION", 20, 263},
- #endif
- #ifdef SSL_R_BAD_KEY_SHARE
- {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE},
- #else
- {"BAD_KEY_SHARE", 20, 108},
- #endif
- #ifdef SSL_R_BAD_KEY_UPDATE
- {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE},
- #else
- {"BAD_KEY_UPDATE", 20, 122},
- #endif
- #ifdef SSL_R_BAD_LEGACY_VERSION
- {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION},
- #else
- {"BAD_LEGACY_VERSION", 20, 292},
- #endif
- #ifdef SSL_R_BAD_LENGTH
- {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH},
- #else
- {"BAD_LENGTH", 20, 271},
- #endif
- #ifdef SSL_R_BAD_PACKET
- {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET},
- #else
- {"BAD_PACKET", 20, 240},
- #endif
- #ifdef SSL_R_BAD_PACKET_LENGTH
- {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH},
- #else
- {"BAD_PACKET_LENGTH", 20, 115},
- #endif
- #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER
- {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER},
- #else
- {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116},
- #endif
- #ifdef SSL_R_BAD_PSK
- {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK},
- #else
- {"BAD_PSK", 20, 219},
- #endif
- #ifdef SSL_R_BAD_PSK_IDENTITY
- {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY},
- #else
- {"BAD_PSK_IDENTITY", 20, 114},
- #endif
- #ifdef SSL_R_BAD_RECORD_TYPE
- {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE},
- #else
- {"BAD_RECORD_TYPE", 20, 443},
- #endif
- #ifdef SSL_R_BAD_RSA_ENCRYPT
- {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT},
- #else
- {"BAD_RSA_ENCRYPT", 20, 119},
- #endif
- #ifdef SSL_R_BAD_SIGNATURE
- {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE},
- #else
- {"BAD_SIGNATURE", 20, 123},
- #endif
- #ifdef SSL_R_BAD_SRP_A_LENGTH
- {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH},
- #else
- {"BAD_SRP_A_LENGTH", 20, 347},
- #endif
- #ifdef SSL_R_BAD_SRP_PARAMETERS
- {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS},
- #else
- {"BAD_SRP_PARAMETERS", 20, 371},
- #endif
- #ifdef SSL_R_BAD_SRTP_MKI_VALUE
- {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE},
- #else
- {"BAD_SRTP_MKI_VALUE", 20, 352},
- #endif
- #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST
- {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST},
- #else
- {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353},
- #endif
- #ifdef SSL_R_BAD_SSL_FILETYPE
- {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE},
- #else
- {"BAD_SSL_FILETYPE", 20, 124},
- #endif
- #ifdef SSL_R_BAD_VALUE
- {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE},
- #else
- {"BAD_VALUE", 20, 384},
- #endif
- #ifdef SSL_R_BAD_WRITE_RETRY
- {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY},
- #else
- {"BAD_WRITE_RETRY", 20, 127},
- #endif
- #ifdef SSL_R_BINDER_DOES_NOT_VERIFY
- {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY},
- #else
- {"BINDER_DOES_NOT_VERIFY", 20, 253},
- #endif
- #ifdef SSL_R_BIO_NOT_SET
- {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET},
- #else
- {"BIO_NOT_SET", 20, 128},
- #endif
- #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG
- {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG},
- #else
- {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129},
- #endif
- #ifdef SSL_R_BN_LIB
- {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB},
- #else
- {"BN_LIB", 20, 130},
- #endif
- #ifdef SSL_R_CALLBACK_FAILED
- {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED},
- #else
- {"CALLBACK_FAILED", 20, 234},
- #endif
- #ifdef SSL_R_CANNOT_CHANGE_CIPHER
- {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER},
- #else
- {"CANNOT_CHANGE_CIPHER", 20, 109},
- #endif
- #ifdef SSL_R_CANNOT_GET_GROUP_NAME
- {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME},
- #else
- {"CANNOT_GET_GROUP_NAME", 20, 299},
- #endif
- #ifdef SSL_R_CA_DN_LENGTH_MISMATCH
- {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH},
- #else
- {"CA_DN_LENGTH_MISMATCH", 20, 131},
- #endif
- #ifdef SSL_R_CA_KEY_TOO_SMALL
- {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL},
- #else
- {"CA_KEY_TOO_SMALL", 20, 397},
- #endif
- #ifdef SSL_R_CA_MD_TOO_WEAK
- {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK},
- #else
- {"CA_MD_TOO_WEAK", 20, 398},
- #endif
- #ifdef SSL_R_CCS_RECEIVED_EARLY
- {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY},
- #else
- {"CCS_RECEIVED_EARLY", 20, 133},
- #endif
- #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED
- {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED},
- #else
- {"CERTIFICATE_VERIFY_FAILED", 20, 134},
- #endif
- #ifdef SSL_R_CERT_CB_ERROR
- {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR},
- #else
- {"CERT_CB_ERROR", 20, 377},
- #endif
- #ifdef SSL_R_CERT_LENGTH_MISMATCH
- {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH},
- #else
- {"CERT_LENGTH_MISMATCH", 20, 135},
- #endif
- #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED
- {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED},
- #else
- {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218},
- #endif
- #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH
- {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH},
- #else
- {"CIPHER_CODE_WRONG_LENGTH", 20, 137},
- #endif
- #ifdef SSL_R_CLIENTHELLO_TLSEXT
- {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT},
- #else
- {"CLIENTHELLO_TLSEXT", 20, 226},
- #endif
- #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG
- {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG},
- #else
- {"COMPRESSED_LENGTH_TOO_LONG", 20, 140},
- #endif
- #ifdef SSL_R_COMPRESSION_DISABLED
- {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED},
- #else
- {"COMPRESSION_DISABLED", 20, 343},
- #endif
- #ifdef SSL_R_COMPRESSION_FAILURE
- {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE},
- #else
- {"COMPRESSION_FAILURE", 20, 141},
- #endif
- #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE
- {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE},
- #else
- {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307},
- #endif
- #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR
- {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR},
- #else
- {"COMPRESSION_LIBRARY_ERROR", 20, 142},
- #endif
- #ifdef SSL_R_CONNECTION_TYPE_NOT_SET
- {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET},
- #else
- {"CONNECTION_TYPE_NOT_SET", 20, 144},
- #endif
- #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
- {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
- #else
- {"CONTEXT_NOT_DANE_ENABLED", 20, 167},
- #endif
- #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE
- {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE},
- #else
- {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400},
- #endif
- #ifdef SSL_R_COOKIE_MISMATCH
- {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH},
- #else
- {"COOKIE_MISMATCH", 20, 308},
- #endif
- #ifdef SSL_R_COPY_PARAMETERS_FAILED
- {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED},
- #else
- {"COPY_PARAMETERS_FAILED", 20, 296},
- #endif
- #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED
- {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED},
- #else
- {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206},
- #endif
- #ifdef SSL_R_DANE_ALREADY_ENABLED
- {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED},
- #else
- {"DANE_ALREADY_ENABLED", 20, 172},
- #endif
- #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL
- {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL},
- #else
- {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173},
- #endif
- #ifdef SSL_R_DANE_NOT_ENABLED
- {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED},
- #else
- {"DANE_NOT_ENABLED", 20, 175},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE
- {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE},
- #else
- {"DANE_TLSA_BAD_CERTIFICATE", 20, 180},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE
- {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE},
- #else
- {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH
- {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH},
- #else
- {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH
- {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH},
- #else
- {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE
- {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE},
- #else
- {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY
- {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY},
- #else
- {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201},
- #endif
- #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR
- {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR},
- #else
- {"DANE_TLSA_BAD_SELECTOR", 20, 202},
- #endif
- #ifdef SSL_R_DANE_TLSA_NULL_DATA
- {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA},
- #else
- {"DANE_TLSA_NULL_DATA", 20, 203},
- #endif
- #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED
- {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED},
- #else
- {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145},
- #endif
- #ifdef SSL_R_DATA_LENGTH_TOO_LONG
- {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG},
- #else
- {"DATA_LENGTH_TOO_LONG", 20, 146},
- #endif
- #ifdef SSL_R_DECRYPTION_FAILED
- {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED},
- #else
- {"DECRYPTION_FAILED", 20, 147},
- #endif
- #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC
- {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC},
- #else
- {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281},
- #endif
- #ifdef SSL_R_DH_KEY_TOO_SMALL
- {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL},
- #else
- {"DH_KEY_TOO_SMALL", 20, 394},
- #endif
- #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG
- {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG},
- #else
- {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148},
- #endif
- #ifdef SSL_R_DIGEST_CHECK_FAILED
- {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED},
- #else
- {"DIGEST_CHECK_FAILED", 20, 149},
- #endif
- #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG
- {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG},
- #else
- {"DTLS_MESSAGE_TOO_BIG", 20, 334},
- #endif
- #ifdef SSL_R_DUPLICATE_COMPRESSION_ID
- {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID},
- #else
- {"DUPLICATE_COMPRESSION_ID", 20, 309},
- #endif
- #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING
- {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING},
- #else
- {"ECC_CERT_NOT_FOR_SIGNING", 20, 318},
- #endif
- #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE
- {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE},
- #else
- {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374},
- #endif
- #ifdef SSL_R_EE_KEY_TOO_SMALL
- {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL},
- #else
- {"EE_KEY_TOO_SMALL", 20, 399},
- #endif
- #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST
- {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST},
- #else
- {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354},
- #endif
- #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG
- {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG},
- #else
- {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150},
- #endif
- #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST
- {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST},
- #else
- {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
- #endif
- #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
- {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
- #else
- {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204},
- #endif
- #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE
- {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE},
- #else
- {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194},
- #endif
- #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE
- {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE},
- #else
- {"EXCESSIVE_MESSAGE_SIZE", 20, 152},
- #endif
- #ifdef SSL_R_EXTENSION_NOT_RECEIVED
- {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED},
- #else
- {"EXTENSION_NOT_RECEIVED", 20, 279},
- #endif
- #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE
- {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE},
- #else
- {"EXTRA_DATA_IN_MESSAGE", 20, 153},
- #endif
- #ifdef SSL_R_EXT_LENGTH_MISMATCH
- {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH},
- #else
- {"EXT_LENGTH_MISMATCH", 20, 163},
- #endif
- #ifdef SSL_R_FAILED_TO_INIT_ASYNC
- {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
- #else
- {"FAILED_TO_INIT_ASYNC", 20, 405},
- #endif
- #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
- {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
- #else
- {"FRAGMENTED_CLIENT_HELLO", 20, 401},
- #endif
- #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS
- {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS},
- #else
- {"GOT_A_FIN_BEFORE_A_CCS", 20, 154},
- #endif
- #ifdef SSL_R_HTTPS_PROXY_REQUEST
- {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST},
- #else
- {"HTTPS_PROXY_REQUEST", 20, 155},
- #endif
- #ifdef SSL_R_HTTP_REQUEST
- {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST},
- #else
- {"HTTP_REQUEST", 20, 156},
- #endif
- #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION
- {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION},
- #else
- {"ILLEGAL_POINT_COMPRESSION", 20, 162},
- #endif
- #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST
- {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST},
- #else
- {"ILLEGAL_SUITEB_DIGEST", 20, 380},
- #endif
- #ifdef SSL_R_INAPPROPRIATE_FALLBACK
- {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK},
- #else
- {"INAPPROPRIATE_FALLBACK", 20, 373},
- #endif
- #ifdef SSL_R_INCONSISTENT_COMPRESSION
- {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION},
- #else
- {"INCONSISTENT_COMPRESSION", 20, 340},
- #endif
- #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN
- {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN},
- #else
- {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222},
- #endif
- #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI
- {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI},
- #else
- {"INCONSISTENT_EARLY_DATA_SNI", 20, 231},
- #endif
- #ifdef SSL_R_INCONSISTENT_EXTMS
- {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS},
- #else
- {"INCONSISTENT_EXTMS", 20, 104},
- #endif
- #ifdef SSL_R_INSUFFICIENT_SECURITY
- {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY},
- #else
- {"INSUFFICIENT_SECURITY", 20, 241},
- #endif
- #ifdef SSL_R_INVALID_ALERT
- {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT},
- #else
- {"INVALID_ALERT", 20, 205},
- #endif
- #ifdef SSL_R_INVALID_CCS_MESSAGE
- {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE},
- #else
- {"INVALID_CCS_MESSAGE", 20, 260},
- #endif
- #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG
- {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG},
- #else
- {"INVALID_CERTIFICATE_OR_ALG", 20, 238},
- #endif
- #ifdef SSL_R_INVALID_COMMAND
- {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND},
- #else
- {"INVALID_COMMAND", 20, 280},
- #endif
- #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM
- {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM},
- #else
- {"INVALID_COMPRESSION_ALGORITHM", 20, 341},
- #endif
- #ifdef SSL_R_INVALID_CONFIG
- {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG},
- #else
- {"INVALID_CONFIG", 20, 283},
- #endif
- #ifdef SSL_R_INVALID_CONFIGURATION_NAME
- {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME},
- #else
- {"INVALID_CONFIGURATION_NAME", 20, 113},
- #endif
- #ifdef SSL_R_INVALID_CONTEXT
- {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT},
- #else
- {"INVALID_CONTEXT", 20, 282},
- #endif
- #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE
- {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE},
- #else
- {"INVALID_CT_VALIDATION_TYPE", 20, 212},
- #endif
- #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE
- {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE},
- #else
- {"INVALID_KEY_UPDATE_TYPE", 20, 120},
- #endif
- #ifdef SSL_R_INVALID_MAX_EARLY_DATA
- {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA},
- #else
- {"INVALID_MAX_EARLY_DATA", 20, 174},
- #endif
- #ifdef SSL_R_INVALID_NULL_CMD_NAME
- {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME},
- #else
- {"INVALID_NULL_CMD_NAME", 20, 385},
- #endif
- #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
- {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
- #else
- {"INVALID_SEQUENCE_NUMBER", 20, 402},
- #endif
- #ifdef SSL_R_INVALID_SERVERINFO_DATA
- {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA},
- #else
- {"INVALID_SERVERINFO_DATA", 20, 388},
- #endif
- #ifdef SSL_R_INVALID_SESSION_ID
- {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID},
- #else
- {"INVALID_SESSION_ID", 20, 999},
- #endif
- #ifdef SSL_R_INVALID_SRP_USERNAME
- {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME},
- #else
- {"INVALID_SRP_USERNAME", 20, 357},
- #endif
- #ifdef SSL_R_INVALID_STATUS_RESPONSE
- {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE},
- #else
- {"INVALID_STATUS_RESPONSE", 20, 328},
- #endif
- #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH
- {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH},
- #else
- {"INVALID_TICKET_KEYS_LENGTH", 20, 325},
- #endif
- #ifdef SSL_R_LENGTH_MISMATCH
- {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH},
- #else
- {"LENGTH_MISMATCH", 20, 159},
- #endif
- #ifdef SSL_R_LENGTH_TOO_LONG
- {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG},
- #else
- {"LENGTH_TOO_LONG", 20, 404},
- #endif
- #ifdef SSL_R_LENGTH_TOO_SHORT
- {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT},
- #else
- {"LENGTH_TOO_SHORT", 20, 160},
- #endif
- #ifdef SSL_R_LIBRARY_BUG
- {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG},
- #else
- {"LIBRARY_BUG", 20, 274},
- #endif
- #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS
- {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS},
- #else
- {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
- #endif
- #ifdef SSL_R_MISSING_DSA_SIGNING_CERT
- {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
- #else
- {"MISSING_DSA_SIGNING_CERT", 20, 165},
- #endif
- #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT
- {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT},
- #else
- {"MISSING_ECDSA_SIGNING_CERT", 20, 381},
- #endif
- #ifdef SSL_R_MISSING_FATAL
- {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL},
- #else
- {"MISSING_FATAL", 20, 256},
- #endif
- #ifdef SSL_R_MISSING_PARAMETERS
- {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS},
- #else
- {"MISSING_PARAMETERS", 20, 290},
- #endif
- #ifdef SSL_R_MISSING_RSA_CERTIFICATE
- {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE},
- #else
- {"MISSING_RSA_CERTIFICATE", 20, 168},
- #endif
- #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT
- {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT},
- #else
- {"MISSING_RSA_ENCRYPTING_CERT", 20, 169},
- #endif
- #ifdef SSL_R_MISSING_RSA_SIGNING_CERT
- {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT},
- #else
- {"MISSING_RSA_SIGNING_CERT", 20, 170},
- #endif
- #ifdef SSL_R_MISSING_SIGALGS_EXTENSION
- {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION},
- #else
- {"MISSING_SIGALGS_EXTENSION", 20, 112},
- #endif
- #ifdef SSL_R_MISSING_SIGNING_CERT
- {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT},
- #else
- {"MISSING_SIGNING_CERT", 20, 221},
- #endif
- #ifdef SSL_R_MISSING_SRP_PARAM
- {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM},
- #else
- {"MISSING_SRP_PARAM", 20, 358},
- #endif
- #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION
- {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION},
- #else
- {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
- #endif
- #ifdef SSL_R_MISSING_TMP_DH_KEY
- {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
- #else
- {"MISSING_TMP_DH_KEY", 20, 171},
- #endif
- #ifdef SSL_R_MISSING_TMP_ECDH_KEY
- {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY},
- #else
- {"MISSING_TMP_ECDH_KEY", 20, 311},
- #endif
- #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA
- {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA},
- #else
- {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293},
- #endif
- #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY
- {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY},
- #else
- {"NOT_ON_RECORD_BOUNDARY", 20, 182},
- #endif
- #ifdef SSL_R_NOT_REPLACING_CERTIFICATE
- {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE},
- #else
- {"NOT_REPLACING_CERTIFICATE", 20, 289},
- #endif
- #ifdef SSL_R_NOT_SERVER
- {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER},
- #else
- {"NOT_SERVER", 20, 284},
- #endif
- #ifdef SSL_R_NO_APPLICATION_PROTOCOL
- {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL},
- #else
- {"NO_APPLICATION_PROTOCOL", 20, 235},
- #endif
- #ifdef SSL_R_NO_CERTIFICATES_RETURNED
- {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED},
- #else
- {"NO_CERTIFICATES_RETURNED", 20, 176},
- #endif
- #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED
- {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED},
- #else
- {"NO_CERTIFICATE_ASSIGNED", 20, 177},
- #endif
- #ifdef SSL_R_NO_CERTIFICATE_SET
- {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET},
- #else
- {"NO_CERTIFICATE_SET", 20, 179},
- #endif
- #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR
- {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR},
- #else
- {"NO_CHANGE_FOLLOWING_HRR", 20, 214},
- #endif
- #ifdef SSL_R_NO_CIPHERS_AVAILABLE
- {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE},
- #else
- {"NO_CIPHERS_AVAILABLE", 20, 181},
- #endif
- #ifdef SSL_R_NO_CIPHERS_SPECIFIED
- {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED},
- #else
- {"NO_CIPHERS_SPECIFIED", 20, 183},
- #endif
- #ifdef SSL_R_NO_CIPHER_MATCH
- {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH},
- #else
- {"NO_CIPHER_MATCH", 20, 185},
- #endif
- #ifdef SSL_R_NO_CLIENT_CERT_METHOD
- {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD},
- #else
- {"NO_CLIENT_CERT_METHOD", 20, 331},
- #endif
- #ifdef SSL_R_NO_COMPRESSION_SPECIFIED
- {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED},
- #else
- {"NO_COMPRESSION_SPECIFIED", 20, 187},
- #endif
- #ifdef SSL_R_NO_COOKIE_CALLBACK_SET
- {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET},
- #else
- {"NO_COOKIE_CALLBACK_SET", 20, 287},
- #endif
- #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER
- {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER},
- #else
- {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330},
- #endif
- #ifdef SSL_R_NO_METHOD_SPECIFIED
- {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED},
- #else
- {"NO_METHOD_SPECIFIED", 20, 188},
- #endif
- #ifdef SSL_R_NO_PEM_EXTENSIONS
- {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS},
- #else
- {"NO_PEM_EXTENSIONS", 20, 389},
- #endif
- #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED
- {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED},
- #else
- {"NO_PRIVATE_KEY_ASSIGNED", 20, 190},
- #endif
- #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE
- {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE},
- #else
- {"NO_PROTOCOLS_AVAILABLE", 20, 191},
- #endif
- #ifdef SSL_R_NO_RENEGOTIATION
- {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION},
- #else
- {"NO_RENEGOTIATION", 20, 339},
- #endif
- #ifdef SSL_R_NO_REQUIRED_DIGEST
- {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST},
- #else
- {"NO_REQUIRED_DIGEST", 20, 324},
- #endif
- #ifdef SSL_R_NO_SHARED_CIPHER
- {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER},
- #else
- {"NO_SHARED_CIPHER", 20, 193},
- #endif
- #ifdef SSL_R_NO_SHARED_GROUPS
- {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS},
- #else
- {"NO_SHARED_GROUPS", 20, 410},
- #endif
- #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS
- {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS},
- #else
- {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376},
- #endif
- #ifdef SSL_R_NO_SRTP_PROFILES
- {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES},
- #else
- {"NO_SRTP_PROFILES", 20, 359},
- #endif
- #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM
- {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM},
- #else
- {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297},
- #endif
- #ifdef SSL_R_NO_SUITABLE_GROUPS
- {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS},
- #else
- {"NO_SUITABLE_GROUPS", 20, 295},
- #endif
- #ifdef SSL_R_NO_SUITABLE_KEY_SHARE
- {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE},
- #else
- {"NO_SUITABLE_KEY_SHARE", 20, 101},
- #endif
- #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
- {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
- #else
- {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118},
- #endif
- #ifdef SSL_R_NO_VALID_SCTS
- {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS},
- #else
- {"NO_VALID_SCTS", 20, 216},
- #endif
- #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK
- {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK},
- #else
- {"NO_VERIFY_COOKIE_CALLBACK", 20, 403},
- #endif
- #ifdef SSL_R_NULL_SSL_CTX
- {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX},
- #else
- {"NULL_SSL_CTX", 20, 195},
- #endif
- #ifdef SSL_R_NULL_SSL_METHOD_PASSED
- {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED},
- #else
- {"NULL_SSL_METHOD_PASSED", 20, 196},
- #endif
- #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED
- {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED},
- #else
- {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197},
- #endif
- #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED
- {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED},
- #else
- {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344},
- #endif
- #ifdef SSL_R_OVERFLOW_ERROR
- {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR},
- #else
- {"OVERFLOW_ERROR", 20, 237},
- #endif
- #ifdef SSL_R_PACKET_LENGTH_TOO_LONG
- {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG},
- #else
- {"PACKET_LENGTH_TOO_LONG", 20, 198},
- #endif
- #ifdef SSL_R_PARSE_TLSEXT
- {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT},
- #else
- {"PARSE_TLSEXT", 20, 227},
- #endif
- #ifdef SSL_R_PATH_TOO_LONG
- {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG},
- #else
- {"PATH_TOO_LONG", 20, 270},
- #endif
- #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE
- {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE},
- #else
- {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199},
- #endif
- #ifdef SSL_R_PEM_NAME_BAD_PREFIX
- {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX},
- #else
- {"PEM_NAME_BAD_PREFIX", 20, 391},
- #endif
- #ifdef SSL_R_PEM_NAME_TOO_SHORT
- {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT},
- #else
- {"PEM_NAME_TOO_SHORT", 20, 392},
- #endif
- #ifdef SSL_R_PIPELINE_FAILURE
- {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE},
- #else
- {"PIPELINE_FAILURE", 20, 406},
- #endif
- #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
- {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
- #else
- {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278},
- #endif
- #ifdef SSL_R_PRIVATE_KEY_MISMATCH
- {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH},
- #else
- {"PRIVATE_KEY_MISMATCH", 20, 288},
- #endif
- #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN
- {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN},
- #else
- {"PROTOCOL_IS_SHUTDOWN", 20, 207},
- #endif
- #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND
- {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND},
- #else
- {"PSK_IDENTITY_NOT_FOUND", 20, 223},
- #endif
- #ifdef SSL_R_PSK_NO_CLIENT_CB
- {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB},
- #else
- {"PSK_NO_CLIENT_CB", 20, 224},
- #endif
- #ifdef SSL_R_PSK_NO_SERVER_CB
- {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB},
- #else
- {"PSK_NO_SERVER_CB", 20, 225},
- #endif
- #ifdef SSL_R_READ_BIO_NOT_SET
- {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
- #else
- {"READ_BIO_NOT_SET", 20, 211},
- #endif
- #ifdef SSL_R_READ_TIMEOUT_EXPIRED
- {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED},
- #else
- {"READ_TIMEOUT_EXPIRED", 20, 312},
- #endif
- #ifdef SSL_R_RECORD_LENGTH_MISMATCH
- {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
- #else
- {"RECORD_LENGTH_MISMATCH", 20, 213},
- #endif
- #ifdef SSL_R_RECORD_TOO_SMALL
- {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL},
- #else
- {"RECORD_TOO_SMALL", 20, 298},
- #endif
- #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
- {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
- #else
- {"RENEGOTIATE_EXT_TOO_LONG", 20, 335},
- #endif
- #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR
- {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR},
- #else
- {"RENEGOTIATION_ENCODING_ERR", 20, 336},
- #endif
- #ifdef SSL_R_RENEGOTIATION_MISMATCH
- {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH},
- #else
- {"RENEGOTIATION_MISMATCH", 20, 337},
- #endif
- #ifdef SSL_R_REQUEST_PENDING
- {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING},
- #else
- {"REQUEST_PENDING", 20, 285},
- #endif
- #ifdef SSL_R_REQUEST_SENT
- {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT},
- #else
- {"REQUEST_SENT", 20, 286},
- #endif
- #ifdef SSL_R_REQUIRED_CIPHER_MISSING
- {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING},
- #else
- {"REQUIRED_CIPHER_MISSING", 20, 215},
- #endif
- #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING
- {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING},
- #else
- {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342},
- #endif
- #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING
- {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING},
- #else
- {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345},
- #endif
- #ifdef SSL_R_SCT_VERIFICATION_FAILED
- {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED},
- #else
- {"SCT_VERIFICATION_FAILED", 20, 208},
- #endif
- #ifdef SSL_R_SERVERHELLO_TLSEXT
- {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
- #else
- {"SERVERHELLO_TLSEXT", 20, 275},
- #endif
- #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED
- {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED},
- #else
- {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277},
- #endif
- #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT
- {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT},
- #else
- {"SHUTDOWN_WHILE_IN_INIT", 20, 407},
- #endif
- #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR
- {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR},
- #else
- {"SIGNATURE_ALGORITHMS_ERROR", 20, 360},
- #endif
- #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE
- {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE},
- #else
- {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220},
- #endif
- #ifdef SSL_R_SRP_A_CALC
- {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC},
- #else
- {"SRP_A_CALC", 20, 361},
- #endif
- #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES
- {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES},
- #else
- {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362},
- #endif
- #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG
- {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG},
- #else
- {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363},
- #endif
- #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE
- {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE},
- #else
- {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364},
- #endif
- #ifdef SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH
- {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH},
- #else
- {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232},
- #endif
- #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME
- {"SSL3_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME},
- #else
- {"SSL3_EXT_INVALID_SERVERNAME", 20, 319},
- #endif
- #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE
- {"SSL3_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE},
- #else
- {"SSL3_EXT_INVALID_SERVERNAME_TYPE", 20, 320},
- #endif
- #ifdef SSL_R_SSL3_SESSION_ID_TOO_LONG
- {"SSL3_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL3_SESSION_ID_TOO_LONG},
- #else
- {"SSL3_SESSION_ID_TOO_LONG", 20, 300},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
- {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
- #else
- {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
- {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
- #else
- {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
- {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
- #else
- {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
- {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
- #else
- {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
- {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
- #else
- {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
- {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
- #else
- {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
- {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
- #else
- {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
- {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
- #else
- {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
- {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
- #else
- {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
- {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
- #else
- {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
- #endif
- #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
- {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
- #else
- {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
- #endif
- #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
- {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
- #else
- {"SSL_COMMAND_SECTION_EMPTY", 20, 117},
- #endif
- #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND
- {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND},
- #else
- {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125},
- #endif
- #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION
- {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION},
- #else
- {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228},
- #endif
- #ifdef SSL_R_SSL_HANDSHAKE_FAILURE
- {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE},
- #else
- {"SSL_HANDSHAKE_FAILURE", 20, 229},
- #endif
- #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS
- {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS},
- #else
- {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230},
- #endif
- #ifdef SSL_R_SSL_NEGATIVE_LENGTH
- {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH},
- #else
- {"SSL_NEGATIVE_LENGTH", 20, 372},
- #endif
- #ifdef SSL_R_SSL_SECTION_EMPTY
- {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY},
- #else
- {"SSL_SECTION_EMPTY", 20, 126},
- #endif
- #ifdef SSL_R_SSL_SECTION_NOT_FOUND
- {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND},
- #else
- {"SSL_SECTION_NOT_FOUND", 20, 136},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED
- {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED},
- #else
- {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_CONFLICT
- {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT},
- #else
- {"SSL_SESSION_ID_CONFLICT", 20, 302},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG
- {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG},
- #else
- {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH
- {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH},
- #else
- {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303},
- #endif
- #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG
- {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG},
- #else
- {"SSL_SESSION_ID_TOO_LONG", 20, 408},
- #endif
- #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH
- {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH},
- #else
- {"SSL_SESSION_VERSION_MISMATCH", 20, 210},
- #endif
- #ifdef SSL_R_STILL_IN_INIT
- {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT},
- #else
- {"STILL_IN_INIT", 20, 121},
- #endif
- #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
- {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
- #else
- {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
- #endif
- #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
- {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
- #else
- {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
- {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
- #else
- {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
- {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
- #else
- {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
- {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
- #else
- {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
- {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
- #else
- {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
- {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
- #else
- {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
- {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
- #else
- {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
- {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
- #else
- {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
- {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
- #else
- {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
- {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
- #else
- {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
- {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
- #else
- {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
- {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
- #else
- {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
- {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
- #else
- {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
- #endif
- #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
- {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
- #else
- {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
- #endif
- #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
- {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
- #else
- {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
- #endif
- #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE
- {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE},
- #else
- {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
- #endif
- #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
- {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
- #else
- {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
- #endif
- #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
- {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
- #else
- {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
- #endif
- #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
- {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
- #else
- {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
- #endif
- #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL
- {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL},
- #else
- {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367},
- #endif
- #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST
- {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST},
- #else
- {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157},
- #endif
- #ifdef SSL_R_TOO_MANY_KEY_UPDATES
- {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES},
- #else
- {"TOO_MANY_KEY_UPDATES", 20, 132},
- #endif
- #ifdef SSL_R_TOO_MANY_WARN_ALERTS
- {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS},
- #else
- {"TOO_MANY_WARN_ALERTS", 20, 409},
- #endif
- #ifdef SSL_R_TOO_MUCH_EARLY_DATA
- {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA},
- #else
- {"TOO_MUCH_EARLY_DATA", 20, 164},
- #endif
- #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS
- {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS},
- #else
- {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314},
- #endif
- #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS
- {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS},
- #else
- {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239},
- #endif
- #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES
- {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES},
- #else
- {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", 20, 242},
- #endif
- #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES
- {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES},
- #else
- {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", 20, 243},
- #endif
- #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE
- {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE},
- #else
- {"UNEXPECTED_CCS_MESSAGE", 20, 262},
- #endif
- #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA
- {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA},
- #else
- {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178},
- #endif
- #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING
- {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING},
- #else
- {"UNEXPECTED_EOF_WHILE_READING", 20, 294},
- #endif
- #ifdef SSL_R_UNEXPECTED_MESSAGE
- {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE},
- #else
- {"UNEXPECTED_MESSAGE", 20, 244},
- #endif
- #ifdef SSL_R_UNEXPECTED_RECORD
- {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD},
- #else
- {"UNEXPECTED_RECORD", 20, 245},
- #endif
- #ifdef SSL_R_UNINITIALIZED
- {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED},
- #else
- {"UNINITIALIZED", 20, 276},
- #endif
- #ifdef SSL_R_UNKNOWN_ALERT_TYPE
- {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE},
- #else
- {"UNKNOWN_ALERT_TYPE", 20, 246},
- #endif
- #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE
- {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE},
- #else
- {"UNKNOWN_CERTIFICATE_TYPE", 20, 247},
- #endif
- #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED
- {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED},
- #else
- {"UNKNOWN_CIPHER_RETURNED", 20, 248},
- #endif
- #ifdef SSL_R_UNKNOWN_CIPHER_TYPE
- {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE},
- #else
- {"UNKNOWN_CIPHER_TYPE", 20, 249},
- #endif
- #ifdef SSL_R_UNKNOWN_CMD_NAME
- {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME},
- #else
- {"UNKNOWN_CMD_NAME", 20, 386},
- #endif
- #ifdef SSL_R_UNKNOWN_COMMAND
- {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND},
- #else
- {"UNKNOWN_COMMAND", 20, 139},
- #endif
- #ifdef SSL_R_UNKNOWN_DIGEST
- {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST},
- #else
- {"UNKNOWN_DIGEST", 20, 368},
- #endif
- #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE
- {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE},
- #else
- {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
- #endif
- #ifdef SSL_R_UNKNOWN_PKEY_TYPE
- {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
- #else
- {"UNKNOWN_PKEY_TYPE", 20, 251},
- #endif
- #ifdef SSL_R_UNKNOWN_PROTOCOL
- {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL},
- #else
- {"UNKNOWN_PROTOCOL", 20, 252},
- #endif
- #ifdef SSL_R_UNKNOWN_SSL_VERSION
- {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION},
- #else
- {"UNKNOWN_SSL_VERSION", 20, 254},
- #endif
- #ifdef SSL_R_UNKNOWN_STATE
- {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE},
- #else
- {"UNKNOWN_STATE", 20, 255},
- #endif
- #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED
- {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED},
- #else
- {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338},
- #endif
- #ifdef SSL_R_UNSOLICITED_EXTENSION
- {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION},
- #else
- {"UNSOLICITED_EXTENSION", 20, 217},
- #endif
- #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
- #else
- {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
- #endif
- #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
- {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
- #else
- {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315},
- #endif
- #ifdef SSL_R_UNSUPPORTED_PROTOCOL
- {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL},
- #else
- {"UNSUPPORTED_PROTOCOL", 20, 258},
- #endif
- #ifdef SSL_R_UNSUPPORTED_SSL_VERSION
- {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION},
- #else
- {"UNSUPPORTED_SSL_VERSION", 20, 259},
- #endif
- #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE
- {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE},
- #else
- {"UNSUPPORTED_STATUS_TYPE", 20, 329},
- #endif
- #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
- {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
- #else
- {"USE_SRTP_NOT_NEGOTIATED", 20, 369},
- #endif
- #ifdef SSL_R_VERSION_TOO_HIGH
- {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH},
- #else
- {"VERSION_TOO_HIGH", 20, 166},
- #endif
- #ifdef SSL_R_VERSION_TOO_LOW
- {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW},
- #else
- {"VERSION_TOO_LOW", 20, 396},
- #endif
- #ifdef SSL_R_WRONG_CERTIFICATE_TYPE
- {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE},
- #else
- {"WRONG_CERTIFICATE_TYPE", 20, 383},
- #endif
- #ifdef SSL_R_WRONG_CIPHER_RETURNED
- {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED},
- #else
- {"WRONG_CIPHER_RETURNED", 20, 261},
- #endif
- #ifdef SSL_R_WRONG_CURVE
- {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE},
- #else
- {"WRONG_CURVE", 20, 378},
- #endif
- #ifdef SSL_R_WRONG_SIGNATURE_LENGTH
- {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
- #else
- {"WRONG_SIGNATURE_LENGTH", 20, 264},
- #endif
- #ifdef SSL_R_WRONG_SIGNATURE_SIZE
- {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE},
- #else
- {"WRONG_SIGNATURE_SIZE", 20, 265},
- #endif
- #ifdef SSL_R_WRONG_SIGNATURE_TYPE
- {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE},
- #else
- {"WRONG_SIGNATURE_TYPE", 20, 370},
- #endif
- #ifdef SSL_R_WRONG_SSL_VERSION
- {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION},
- #else
- {"WRONG_SSL_VERSION", 20, 266},
- #endif
- #ifdef SSL_R_WRONG_VERSION_NUMBER
- {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER},
- #else
- {"WRONG_VERSION_NUMBER", 20, 267},
- #endif
- #ifdef SSL_R_X509_LIB
- {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB},
- #else
- {"X509_LIB", 20, 268},
- #endif
- #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS
- {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS},
- #else
- {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269},
- #endif
- #ifdef TS_R_BAD_PKCS7_TYPE
- {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE},
- #else
- {"BAD_PKCS7_TYPE", 47, 132},
- #endif
- #ifdef TS_R_BAD_TYPE
- {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE},
- #else
- {"BAD_TYPE", 47, 133},
- #endif
- #ifdef TS_R_CANNOT_LOAD_CERT
- {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT},
- #else
- {"CANNOT_LOAD_CERT", 47, 137},
- #endif
- #ifdef TS_R_CANNOT_LOAD_KEY
- {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY},
- #else
- {"CANNOT_LOAD_KEY", 47, 138},
- #endif
- #ifdef TS_R_CERTIFICATE_VERIFY_ERROR
- {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR},
- #else
- {"CERTIFICATE_VERIFY_ERROR", 47, 100},
- #endif
- #ifdef TS_R_COULD_NOT_SET_ENGINE
- {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE},
- #else
- {"COULD_NOT_SET_ENGINE", 47, 127},
- #endif
- #ifdef TS_R_COULD_NOT_SET_TIME
- {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME},
- #else
- {"COULD_NOT_SET_TIME", 47, 115},
- #endif
- #ifdef TS_R_DETACHED_CONTENT
- {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT},
- #else
- {"DETACHED_CONTENT", 47, 134},
- #endif
- #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR
- {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR},
- #else
- {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116},
- #endif
- #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR
- {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR},
- #else
- {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139},
- #endif
- #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR
- {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR},
- #else
- {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101},
- #endif
- #ifdef TS_R_INVALID_NULL_POINTER
- {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER},
- #else
- {"INVALID_NULL_POINTER", 47, 102},
- #endif
- #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE
- {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE},
- #else
- {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117},
- #endif
- #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH
- {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH},
- #else
- {"MESSAGE_IMPRINT_MISMATCH", 47, 103},
- #endif
- #ifdef TS_R_NONCE_MISMATCH
- {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH},
- #else
- {"NONCE_MISMATCH", 47, 104},
- #endif
- #ifdef TS_R_NONCE_NOT_RETURNED
- {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED},
- #else
- {"NONCE_NOT_RETURNED", 47, 105},
- #endif
- #ifdef TS_R_NO_CONTENT
- {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT},
- #else
- {"NO_CONTENT", 47, 106},
- #endif
- #ifdef TS_R_NO_TIME_STAMP_TOKEN
- {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN},
- #else
- {"NO_TIME_STAMP_TOKEN", 47, 107},
- #endif
- #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR
- {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR},
- #else
- {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118},
- #endif
- #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR
- {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR},
- #else
- {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119},
- #endif
- #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED
- {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED},
- #else
- {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129},
- #endif
- #ifdef TS_R_POLICY_MISMATCH
- {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH},
- #else
- {"POLICY_MISMATCH", 47, 108},
- #endif
- #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
- #else
- {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120},
- #endif
- #ifdef TS_R_RESPONSE_SETUP_ERROR
- {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR},
- #else
- {"RESPONSE_SETUP_ERROR", 47, 121},
- #endif
- #ifdef TS_R_SIGNATURE_FAILURE
- {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE},
- #else
- {"SIGNATURE_FAILURE", 47, 109},
- #endif
- #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER
- {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER},
- #else
- {"THERE_MUST_BE_ONE_SIGNER", 47, 110},
- #endif
- #ifdef TS_R_TIME_SYSCALL_ERROR
- {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR},
- #else
- {"TIME_SYSCALL_ERROR", 47, 122},
- #endif
- #ifdef TS_R_TOKEN_NOT_PRESENT
- {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT},
- #else
- {"TOKEN_NOT_PRESENT", 47, 130},
- #endif
- #ifdef TS_R_TOKEN_PRESENT
- {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT},
- #else
- {"TOKEN_PRESENT", 47, 131},
- #endif
- #ifdef TS_R_TSA_NAME_MISMATCH
- {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH},
- #else
- {"TSA_NAME_MISMATCH", 47, 111},
- #endif
- #ifdef TS_R_TSA_UNTRUSTED
- {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED},
- #else
- {"TSA_UNTRUSTED", 47, 112},
- #endif
- #ifdef TS_R_TST_INFO_SETUP_ERROR
- {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR},
- #else
- {"TST_INFO_SETUP_ERROR", 47, 123},
- #endif
- #ifdef TS_R_TS_DATASIGN
- {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN},
- #else
- {"TS_DATASIGN", 47, 124},
- #endif
- #ifdef TS_R_UNACCEPTABLE_POLICY
- {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY},
- #else
- {"UNACCEPTABLE_POLICY", 47, 125},
- #endif
- #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM
- {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM},
- #else
- {"UNSUPPORTED_MD_ALGORITHM", 47, 126},
- #endif
- #ifdef TS_R_UNSUPPORTED_VERSION
- {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION},
- #else
- {"UNSUPPORTED_VERSION", 47, 113},
- #endif
- #ifdef TS_R_VAR_BAD_VALUE
- {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE},
- #else
- {"VAR_BAD_VALUE", 47, 135},
- #endif
- #ifdef TS_R_VAR_LOOKUP_FAILURE
- {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE},
- #else
- {"VAR_LOOKUP_FAILURE", 47, 136},
- #endif
- #ifdef TS_R_WRONG_CONTENT_TYPE
- {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE},
- #else
- {"WRONG_CONTENT_TYPE", 47, 114},
- #endif
- #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS
- {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS},
- #else
- {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104},
- #endif
- #ifdef UI_R_INDEX_TOO_LARGE
- {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE},
- #else
- {"INDEX_TOO_LARGE", 40, 102},
- #endif
- #ifdef UI_R_INDEX_TOO_SMALL
- {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL},
- #else
- {"INDEX_TOO_SMALL", 40, 103},
- #endif
- #ifdef UI_R_NO_RESULT_BUFFER
- {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER},
- #else
- {"NO_RESULT_BUFFER", 40, 105},
- #endif
- #ifdef UI_R_PROCESSING_ERROR
- {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR},
- #else
- {"PROCESSING_ERROR", 40, 107},
- #endif
- #ifdef UI_R_RESULT_TOO_LARGE
- {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE},
- #else
- {"RESULT_TOO_LARGE", 40, 100},
- #endif
- #ifdef UI_R_RESULT_TOO_SMALL
- {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL},
- #else
- {"RESULT_TOO_SMALL", 40, 101},
- #endif
- #ifdef UI_R_SYSASSIGN_ERROR
- {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR},
- #else
- {"SYSASSIGN_ERROR", 40, 109},
- #endif
- #ifdef UI_R_SYSDASSGN_ERROR
- {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR},
- #else
- {"SYSDASSGN_ERROR", 40, 110},
- #endif
- #ifdef UI_R_SYSQIOW_ERROR
- {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR},
- #else
- {"SYSQIOW_ERROR", 40, 111},
- #endif
- #ifdef UI_R_UNKNOWN_CONTROL_COMMAND
- {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND},
- #else
- {"UNKNOWN_CONTROL_COMMAND", 40, 106},
- #endif
- #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE
- {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE},
- #else
- {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108},
- #endif
- #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED
- {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED},
- #else
- {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112},
- #endif
- #ifdef X509V3_R_BAD_IP_ADDRESS
- {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS},
- #else
- {"BAD_IP_ADDRESS", 34, 118},
- #endif
- #ifdef X509V3_R_BAD_OBJECT
- {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT},
- #else
- {"BAD_OBJECT", 34, 119},
- #endif
- #ifdef X509V3_R_BN_DEC2BN_ERROR
- {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
- #else
- {"BN_DEC2BN_ERROR", 34, 100},
- #endif
- #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR
- {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR},
- #else
- {"BN_TO_ASN1_INTEGER_ERROR", 34, 101},
- #endif
- #ifdef X509V3_R_DIRNAME_ERROR
- {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR},
- #else
- {"DIRNAME_ERROR", 34, 149},
- #endif
- #ifdef X509V3_R_DISTPOINT_ALREADY_SET
- {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET},
- #else
- {"DISTPOINT_ALREADY_SET", 34, 160},
- #endif
- #ifdef X509V3_R_DUPLICATE_ZONE_ID
- {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID},
- #else
- {"DUPLICATE_ZONE_ID", 34, 133},
- #endif
- #ifdef X509V3_R_EMPTY_KEY_USAGE
- {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE},
- #else
- {"EMPTY_KEY_USAGE", 34, 169},
- #endif
- #ifdef X509V3_R_ERROR_CONVERTING_ZONE
- {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE},
- #else
- {"ERROR_CONVERTING_ZONE", 34, 131},
- #endif
- #ifdef X509V3_R_ERROR_CREATING_EXTENSION
- {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION},
- #else
- {"ERROR_CREATING_EXTENSION", 34, 144},
- #endif
- #ifdef X509V3_R_ERROR_IN_EXTENSION
- {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION},
- #else
- {"ERROR_IN_EXTENSION", 34, 128},
- #endif
- #ifdef X509V3_R_EXPECTED_A_SECTION_NAME
- {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME},
- #else
- {"EXPECTED_A_SECTION_NAME", 34, 137},
- #endif
- #ifdef X509V3_R_EXTENSION_EXISTS
- {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS},
- #else
- {"EXTENSION_EXISTS", 34, 145},
- #endif
- #ifdef X509V3_R_EXTENSION_NAME_ERROR
- {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR},
- #else
- {"EXTENSION_NAME_ERROR", 34, 115},
- #endif
- #ifdef X509V3_R_EXTENSION_NOT_FOUND
- {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND},
- #else
- {"EXTENSION_NOT_FOUND", 34, 102},
- #endif
- #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED
- {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED},
- #else
- {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103},
- #endif
- #ifdef X509V3_R_EXTENSION_VALUE_ERROR
- {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR},
- #else
- {"EXTENSION_VALUE_ERROR", 34, 116},
- #endif
- #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION
- {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION},
- #else
- {"ILLEGAL_EMPTY_EXTENSION", 34, 151},
- #endif
- #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG
- {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG},
- #else
- {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152},
- #endif
- #ifdef X509V3_R_INVALID_ASNUMBER
- {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER},
- #else
- {"INVALID_ASNUMBER", 34, 162},
- #endif
- #ifdef X509V3_R_INVALID_ASRANGE
- {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE},
- #else
- {"INVALID_ASRANGE", 34, 163},
- #endif
- #ifdef X509V3_R_INVALID_BOOLEAN_STRING
- {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING},
- #else
- {"INVALID_BOOLEAN_STRING", 34, 104},
- #endif
- #ifdef X509V3_R_INVALID_CERTIFICATE
- {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE},
- #else
- {"INVALID_CERTIFICATE", 34, 158},
- #endif
- #ifdef X509V3_R_INVALID_EMPTY_NAME
- {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME},
- #else
- {"INVALID_EMPTY_NAME", 34, 108},
- #endif
- #ifdef X509V3_R_INVALID_EXTENSION_STRING
- {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING},
- #else
- {"INVALID_EXTENSION_STRING", 34, 105},
- #endif
- #ifdef X509V3_R_INVALID_INHERITANCE
- {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE},
- #else
- {"INVALID_INHERITANCE", 34, 165},
- #endif
- #ifdef X509V3_R_INVALID_IPADDRESS
- {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS},
- #else
- {"INVALID_IPADDRESS", 34, 166},
- #endif
- #ifdef X509V3_R_INVALID_MULTIPLE_RDNS
- {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS},
- #else
- {"INVALID_MULTIPLE_RDNS", 34, 161},
- #endif
- #ifdef X509V3_R_INVALID_NAME
- {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME},
- #else
- {"INVALID_NAME", 34, 106},
- #endif
- #ifdef X509V3_R_INVALID_NULL_ARGUMENT
- {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT},
- #else
- {"INVALID_NULL_ARGUMENT", 34, 107},
- #endif
- #ifdef X509V3_R_INVALID_NULL_VALUE
- {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE},
- #else
- {"INVALID_NULL_VALUE", 34, 109},
- #endif
- #ifdef X509V3_R_INVALID_NUMBER
- {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER},
- #else
- {"INVALID_NUMBER", 34, 140},
- #endif
- #ifdef X509V3_R_INVALID_NUMBERS
- {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS},
- #else
- {"INVALID_NUMBERS", 34, 141},
- #endif
- #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER
- {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER},
- #else
- {"INVALID_OBJECT_IDENTIFIER", 34, 110},
- #endif
- #ifdef X509V3_R_INVALID_OPTION
- {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION},
- #else
- {"INVALID_OPTION", 34, 138},
- #endif
- #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER
- {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER},
- #else
- {"INVALID_POLICY_IDENTIFIER", 34, 134},
- #endif
- #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING
- {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING},
- #else
- {"INVALID_PROXY_POLICY_SETTING", 34, 153},
- #endif
- #ifdef X509V3_R_INVALID_PURPOSE
- {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE},
- #else
- {"INVALID_PURPOSE", 34, 146},
- #endif
- #ifdef X509V3_R_INVALID_SAFI
- {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI},
- #else
- {"INVALID_SAFI", 34, 164},
- #endif
- #ifdef X509V3_R_INVALID_SECTION
- {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION},
- #else
- {"INVALID_SECTION", 34, 135},
- #endif
- #ifdef X509V3_R_INVALID_SYNTAX
- {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX},
- #else
- {"INVALID_SYNTAX", 34, 143},
- #endif
- #ifdef X509V3_R_ISSUER_DECODE_ERROR
- {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR},
- #else
- {"ISSUER_DECODE_ERROR", 34, 126},
- #endif
- #ifdef X509V3_R_MISSING_VALUE
- {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE},
- #else
- {"MISSING_VALUE", 34, 124},
- #endif
- #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS
- {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS},
- #else
- {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142},
- #endif
- #ifdef X509V3_R_NEGATIVE_PATHLEN
- {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN},
- #else
- {"NEGATIVE_PATHLEN", 34, 168},
- #endif
- #ifdef X509V3_R_NO_CONFIG_DATABASE
- {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE},
- #else
- {"NO_CONFIG_DATABASE", 34, 136},
- #endif
- #ifdef X509V3_R_NO_ISSUER_CERTIFICATE
- {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE},
- #else
- {"NO_ISSUER_CERTIFICATE", 34, 121},
- #endif
- #ifdef X509V3_R_NO_ISSUER_DETAILS
- {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS},
- #else
- {"NO_ISSUER_DETAILS", 34, 127},
- #endif
- #ifdef X509V3_R_NO_POLICY_IDENTIFIER
- {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER},
- #else
- {"NO_POLICY_IDENTIFIER", 34, 139},
- #endif
- #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED
- {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED},
- #else
- {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154},
- #endif
- #ifdef X509V3_R_NO_PUBLIC_KEY
- {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY},
- #else
- {"NO_PUBLIC_KEY", 34, 114},
- #endif
- #ifdef X509V3_R_NO_SUBJECT_DETAILS
- {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS},
- #else
- {"NO_SUBJECT_DETAILS", 34, 125},
- #endif
- #ifdef X509V3_R_OPERATION_NOT_DEFINED
- {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED},
- #else
- {"OPERATION_NOT_DEFINED", 34, 148},
- #endif
- #ifdef X509V3_R_OTHERNAME_ERROR
- {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR},
- #else
- {"OTHERNAME_ERROR", 34, 147},
- #endif
- #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED
- {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED},
- #else
- {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155},
- #endif
- #ifdef X509V3_R_POLICY_PATH_LENGTH
- {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH},
- #else
- {"POLICY_PATH_LENGTH", 34, 156},
- #endif
- #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED
- {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED},
- #else
- {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157},
- #endif
- #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY
- {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY},
- #else
- {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159},
- #endif
- #ifdef X509V3_R_SECTION_NOT_FOUND
- {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND},
- #else
- {"SECTION_NOT_FOUND", 34, 150},
- #endif
- #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS
- {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS},
- #else
- {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122},
- #endif
- #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID
- {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID},
- #else
- {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123},
- #endif
- #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT
- {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT},
- #else
- {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111},
- #endif
- #ifdef X509V3_R_UNKNOWN_EXTENSION
- {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION},
- #else
- {"UNKNOWN_EXTENSION", 34, 129},
- #endif
- #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME
- {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME},
- #else
- {"UNKNOWN_EXTENSION_NAME", 34, 130},
- #endif
- #ifdef X509V3_R_UNKNOWN_OPTION
- {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION},
- #else
- {"UNKNOWN_OPTION", 34, 120},
- #endif
- #ifdef X509V3_R_UNSUPPORTED_OPTION
- {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
- #else
- {"UNSUPPORTED_OPTION", 34, 117},
- #endif
- #ifdef X509V3_R_UNSUPPORTED_TYPE
- {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE},
- #else
- {"UNSUPPORTED_TYPE", 34, 167},
- #endif
- #ifdef X509V3_R_USER_TOO_LONG
- {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG},
- #else
- {"USER_TOO_LONG", 34, 132},
- #endif
- #ifdef X509_R_AKID_MISMATCH
- {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH},
- #else
- {"AKID_MISMATCH", 11, 110},
- #endif
- #ifdef X509_R_BAD_SELECTOR
- {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR},
- #else
- {"BAD_SELECTOR", 11, 133},
- #endif
- #ifdef X509_R_BAD_X509_FILETYPE
- {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE},
- #else
- {"BAD_X509_FILETYPE", 11, 100},
- #endif
- #ifdef X509_R_BASE64_DECODE_ERROR
- {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR},
- #else
- {"BASE64_DECODE_ERROR", 11, 118},
- #endif
- #ifdef X509_R_CANT_CHECK_DH_KEY
- {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY},
- #else
- {"CANT_CHECK_DH_KEY", 11, 114},
- #endif
- #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED
- {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED},
- #else
- {"CERTIFICATE_VERIFICATION_FAILED", 11, 139},
- #endif
- #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE
- {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE},
- #else
- {"CERT_ALREADY_IN_HASH_TABLE", 11, 101},
- #endif
- #ifdef X509_R_CRL_ALREADY_DELTA
- {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA},
- #else
- {"CRL_ALREADY_DELTA", 11, 127},
- #endif
- #ifdef X509_R_CRL_VERIFY_FAILURE
- {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE},
- #else
- {"CRL_VERIFY_FAILURE", 11, 131},
- #endif
- #ifdef X509_R_ERROR_GETTING_MD_BY_NID
- {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID},
- #else
- {"ERROR_GETTING_MD_BY_NID", 11, 141},
- #endif
- #ifdef X509_R_ERROR_USING_SIGINF_SET
- {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET},
- #else
- {"ERROR_USING_SIGINF_SET", 11, 142},
- #endif
- #ifdef X509_R_IDP_MISMATCH
- {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH},
- #else
- {"IDP_MISMATCH", 11, 128},
- #endif
- #ifdef X509_R_INVALID_ATTRIBUTES
- {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES},
- #else
- {"INVALID_ATTRIBUTES", 11, 138},
- #endif
- #ifdef X509_R_INVALID_DIRECTORY
- {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY},
- #else
- {"INVALID_DIRECTORY", 11, 113},
- #endif
- #ifdef X509_R_INVALID_DISTPOINT
- {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT},
- #else
- {"INVALID_DISTPOINT", 11, 143},
- #endif
- #ifdef X509_R_INVALID_FIELD_NAME
- {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME},
- #else
- {"INVALID_FIELD_NAME", 11, 119},
- #endif
- #ifdef X509_R_INVALID_TRUST
- {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST},
- #else
- {"INVALID_TRUST", 11, 123},
- #endif
- #ifdef X509_R_ISSUER_MISMATCH
- {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH},
- #else
- {"ISSUER_MISMATCH", 11, 129},
- #endif
- #ifdef X509_R_KEY_TYPE_MISMATCH
- {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH},
- #else
- {"KEY_TYPE_MISMATCH", 11, 115},
- #endif
- #ifdef X509_R_KEY_VALUES_MISMATCH
- {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH},
- #else
- {"KEY_VALUES_MISMATCH", 11, 116},
- #endif
- #ifdef X509_R_LOADING_CERT_DIR
- {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR},
- #else
- {"LOADING_CERT_DIR", 11, 103},
- #endif
- #ifdef X509_R_LOADING_DEFAULTS
- {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS},
- #else
- {"LOADING_DEFAULTS", 11, 104},
- #endif
- #ifdef X509_R_METHOD_NOT_SUPPORTED
- {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED},
- #else
- {"METHOD_NOT_SUPPORTED", 11, 124},
- #endif
- #ifdef X509_R_NAME_TOO_LONG
- {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG},
- #else
- {"NAME_TOO_LONG", 11, 134},
- #endif
- #ifdef X509_R_NEWER_CRL_NOT_NEWER
- {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER},
- #else
- {"NEWER_CRL_NOT_NEWER", 11, 132},
- #endif
- #ifdef X509_R_NO_CERTIFICATE_FOUND
- {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND},
- #else
- {"NO_CERTIFICATE_FOUND", 11, 135},
- #endif
- #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND
- {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND},
- #else
- {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136},
- #endif
- #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY
- {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY},
- #else
- {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105},
- #endif
- #ifdef X509_R_NO_CRL_FOUND
- {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND},
- #else
- {"NO_CRL_FOUND", 11, 137},
- #endif
- #ifdef X509_R_NO_CRL_NUMBER
- {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER},
- #else
- {"NO_CRL_NUMBER", 11, 130},
- #endif
- #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR
- {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR},
- #else
- {"PUBLIC_KEY_DECODE_ERROR", 11, 125},
- #endif
- #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR
- {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR},
- #else
- {"PUBLIC_KEY_ENCODE_ERROR", 11, 126},
- #endif
- #ifdef X509_R_SHOULD_RETRY
- {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY},
- #else
- {"SHOULD_RETRY", 11, 106},
- #endif
- #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN
- {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN},
- #else
- {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107},
- #endif
- #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY
- {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY},
- #else
- {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108},
- #endif
- #ifdef X509_R_UNKNOWN_KEY_TYPE
- {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE},
- #else
- {"UNKNOWN_KEY_TYPE", 11, 117},
- #endif
- #ifdef X509_R_UNKNOWN_NID
- {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID},
- #else
- {"UNKNOWN_NID", 11, 109},
- #endif
- #ifdef X509_R_UNKNOWN_PURPOSE_ID
- {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID},
- #else
- {"UNKNOWN_PURPOSE_ID", 11, 121},
- #endif
- #ifdef X509_R_UNKNOWN_SIGID_ALGS
- {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS},
- #else
- {"UNKNOWN_SIGID_ALGS", 11, 144},
- #endif
- #ifdef X509_R_UNKNOWN_TRUST_ID
- {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID},
- #else
- {"UNKNOWN_TRUST_ID", 11, 120},
- #endif
- #ifdef X509_R_UNSUPPORTED_ALGORITHM
- {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM},
- #else
- {"UNSUPPORTED_ALGORITHM", 11, 111},
- #endif
- #ifdef X509_R_WRONG_LOOKUP_TYPE
- {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
- #else
- {"WRONG_LOOKUP_TYPE", 11, 112},
- #endif
- #ifdef X509_R_WRONG_TYPE
- {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE},
- #else
- {"WRONG_TYPE", 11, 122},
- #endif
- { NULL }
-};
-
+/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2021-04-09T09:44:43.288448 */
+static struct py_ssl_library_code library_codes[] = {
+#ifdef ERR_LIB_ASN1
+ {"ASN1", ERR_LIB_ASN1},
+#endif
+#ifdef ERR_LIB_ASYNC
+ {"ASYNC", ERR_LIB_ASYNC},
+#endif
+#ifdef ERR_LIB_BIO
+ {"BIO", ERR_LIB_BIO},
+#endif
+#ifdef ERR_LIB_BN
+ {"BN", ERR_LIB_BN},
+#endif
+#ifdef ERR_LIB_BUF
+ {"BUF", ERR_LIB_BUF},
+#endif
+#ifdef ERR_LIB_CMP
+ {"CMP", ERR_LIB_CMP},
+#endif
+#ifdef ERR_LIB_CMS
+ {"CMS", ERR_LIB_CMS},
+#endif
+#ifdef ERR_LIB_COMP
+ {"COMP", ERR_LIB_COMP},
+#endif
+#ifdef ERR_LIB_CONF
+ {"CONF", ERR_LIB_CONF},
+#endif
+#ifdef ERR_LIB_CRMF
+ {"CRMF", ERR_LIB_CRMF},
+#endif
+#ifdef ERR_LIB_CRYPTO
+ {"CRYPTO", ERR_LIB_CRYPTO},
+#endif
+#ifdef ERR_LIB_CT
+ {"CT", ERR_LIB_CT},
+#endif
+#ifdef ERR_LIB_DH
+ {"DH", ERR_LIB_DH},
+#endif
+#ifdef ERR_LIB_DSA
+ {"DSA", ERR_LIB_DSA},
+#endif
+#ifdef ERR_LIB_DSO
+ {"DSO", ERR_LIB_DSO},
+#endif
+#ifdef ERR_LIB_EC
+ {"EC", ERR_LIB_EC},
+#endif
+#ifdef ERR_LIB_ECDH
+ {"ECDH", ERR_LIB_ECDH},
+#endif
+#ifdef ERR_LIB_ECDSA
+ {"ECDSA", ERR_LIB_ECDSA},
+#endif
+#ifdef ERR_LIB_ENGINE
+ {"ENGINE", ERR_LIB_ENGINE},
+#endif
+#ifdef ERR_LIB_ESS
+ {"ESS", ERR_LIB_ESS},
+#endif
+#ifdef ERR_LIB_EVP
+ {"EVP", ERR_LIB_EVP},
+#endif
+#ifdef ERR_LIB_FIPS
+ {"FIPS", ERR_LIB_FIPS},
+#endif
+#ifdef ERR_LIB_HMAC
+ {"HMAC", ERR_LIB_HMAC},
+#endif
+#ifdef ERR_LIB_HTTP
+ {"HTTP", ERR_LIB_HTTP},
+#endif
+#ifdef ERR_LIB_JPAKE
+ {"JPAKE", ERR_LIB_JPAKE},
+#endif
+#ifdef ERR_LIB_KDF
+ {"KDF", ERR_LIB_KDF},
+#endif
+#ifdef ERR_LIB_MASK
+ {"MASK", ERR_LIB_MASK},
+#endif
+#ifdef ERR_LIB_METH
+ {"METH", ERR_LIB_METH},
+#endif
+#ifdef ERR_LIB_NONE
+ {"NONE", ERR_LIB_NONE},
+#endif
+#ifdef ERR_LIB_OBJ
+ {"OBJ", ERR_LIB_OBJ},
+#endif
+#ifdef ERR_LIB_OCSP
+ {"OCSP", ERR_LIB_OCSP},
+#endif
+#ifdef ERR_LIB_OFFSET
+ {"OFFSET", ERR_LIB_OFFSET},
+#endif
+#ifdef ERR_LIB_OSSL_DECODER
+ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER},
+#endif
+#ifdef ERR_LIB_OSSL_ENCODER
+ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER},
+#endif
+#ifdef ERR_LIB_OSSL_STORE
+ {"OSSL_STORE", ERR_LIB_OSSL_STORE},
+#endif
+#ifdef ERR_LIB_PEM
+ {"PEM", ERR_LIB_PEM},
+#endif
+#ifdef ERR_LIB_PKCS12
+ {"PKCS12", ERR_LIB_PKCS12},
+#endif
+#ifdef ERR_LIB_PKCS7
+ {"PKCS7", ERR_LIB_PKCS7},
+#endif
+#ifdef ERR_LIB_PROP
+ {"PROP", ERR_LIB_PROP},
+#endif
+#ifdef ERR_LIB_PROV
+ {"PROV", ERR_LIB_PROV},
+#endif
+#ifdef ERR_LIB_PROXY
+ {"PROXY", ERR_LIB_PROXY},
+#endif
+#ifdef ERR_LIB_RAND
+ {"RAND", ERR_LIB_RAND},
+#endif
+#ifdef ERR_LIB_RSA
+ {"RSA", ERR_LIB_RSA},
+#endif
+#ifdef ERR_LIB_RSAREF
+ {"RSAREF", ERR_LIB_RSAREF},
+#endif
+#ifdef ERR_LIB_SM2
+ {"SM2", ERR_LIB_SM2},
+#endif
+#ifdef ERR_LIB_SSL
+ {"SSL", ERR_LIB_SSL},
+#endif
+#ifdef ERR_LIB_SSL2
+ {"SSL2", ERR_LIB_SSL2},
+#endif
+#ifdef ERR_LIB_SSL23
+ {"SSL23", ERR_LIB_SSL23},
+#endif
+#ifdef ERR_LIB_SSL3
+ {"SSL3", ERR_LIB_SSL3},
+#endif
+#ifdef ERR_LIB_SYS
+ {"SYS", ERR_LIB_SYS},
+#endif
+#ifdef ERR_LIB_TS
+ {"TS", ERR_LIB_TS},
+#endif
+#ifdef ERR_LIB_UI
+ {"UI", ERR_LIB_UI},
+#endif
+#ifdef ERR_LIB_USER
+ {"USER", ERR_LIB_USER},
+#endif
+#ifdef ERR_LIB_X509
+ {"X509", ERR_LIB_X509},
+#endif
+#ifdef ERR_LIB_X509V3
+ {"X509V3", ERR_LIB_X509V3},
+#endif
+ { NULL }
+};
+
+
+static struct py_ssl_error_code error_codes[] = {
+ #ifdef ASN1_R_ADDING_OBJECT
+ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT},
+ #else
+ {"ADDING_OBJECT", 13, 171},
+ #endif
+ #ifdef ASN1_R_ASN1_PARSE_ERROR
+ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR},
+ #else
+ {"ASN1_PARSE_ERROR", 13, 203},
+ #endif
+ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR
+ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR},
+ #else
+ {"ASN1_SIG_PARSE_ERROR", 13, 204},
+ #endif
+ #ifdef ASN1_R_AUX_ERROR
+ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR},
+ #else
+ {"AUX_ERROR", 13, 100},
+ #endif
+ #ifdef ASN1_R_BAD_OBJECT_HEADER
+ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER},
+ #else
+ {"BAD_OBJECT_HEADER", 13, 102},
+ #endif
+ #ifdef ASN1_R_BAD_TEMPLATE
+ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE},
+ #else
+ {"BAD_TEMPLATE", 13, 230},
+ #endif
+ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH
+ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH},
+ #else
+ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214},
+ #endif
+ #ifdef ASN1_R_BN_LIB
+ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB},
+ #else
+ {"BN_LIB", 13, 105},
+ #endif
+ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH
+ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH},
+ #else
+ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106},
+ #endif
+ #ifdef ASN1_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 13, 107},
+ #endif
+ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
+ #else
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108},
+ #endif
+ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED
+ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED},
+ #else
+ {"CONTEXT_NOT_INITIALISED", 13, 217},
+ #endif
+ #ifdef ASN1_R_DATA_IS_WRONG
+ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG},
+ #else
+ {"DATA_IS_WRONG", 13, 109},
+ #endif
+ #ifdef ASN1_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 13, 110},
+ #endif
+ #ifdef ASN1_R_DEPTH_EXCEEDED
+ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED},
+ #else
+ {"DEPTH_EXCEEDED", 13, 174},
+ #endif
+ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED
+ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED},
+ #else
+ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198},
+ #endif
+ #ifdef ASN1_R_ENCODE_ERROR
+ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR},
+ #else
+ {"ENCODE_ERROR", 13, 112},
+ #endif
+ #ifdef ASN1_R_ERROR_GETTING_TIME
+ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME},
+ #else
+ {"ERROR_GETTING_TIME", 13, 173},
+ #endif
+ #ifdef ASN1_R_ERROR_LOADING_SECTION
+ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION},
+ #else
+ {"ERROR_LOADING_SECTION", 13, 172},
+ #endif
+ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS
+ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS},
+ #else
+ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114},
+ #endif
+ #ifdef ASN1_R_EXPECTING_AN_INTEGER
+ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER},
+ #else
+ {"EXPECTING_AN_INTEGER", 13, 115},
+ #endif
+ #ifdef ASN1_R_EXPECTING_AN_OBJECT
+ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT},
+ #else
+ {"EXPECTING_AN_OBJECT", 13, 116},
+ #endif
+ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH
+ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH},
+ #else
+ {"EXPLICIT_LENGTH_MISMATCH", 13, 119},
+ #endif
+ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED
+ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED},
+ #else
+ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120},
+ #endif
+ #ifdef ASN1_R_FIELD_MISSING
+ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING},
+ #else
+ {"FIELD_MISSING", 13, 121},
+ #endif
+ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE
+ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE},
+ #else
+ {"FIRST_NUM_TOO_LARGE", 13, 122},
+ #endif
+ #ifdef ASN1_R_HEADER_TOO_LONG
+ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
+ #else
+ {"HEADER_TOO_LONG", 13, 123},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT
+ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT},
+ #else
+ {"ILLEGAL_BITSTRING_FORMAT", 13, 175},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_BOOLEAN
+ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN},
+ #else
+ {"ILLEGAL_BOOLEAN", 13, 176},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_CHARACTERS
+ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS},
+ #else
+ {"ILLEGAL_CHARACTERS", 13, 124},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_FORMAT
+ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT},
+ #else
+ {"ILLEGAL_FORMAT", 13, 177},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_HEX
+ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX},
+ #else
+ {"ILLEGAL_HEX", 13, 178},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG
+ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG},
+ #else
+ {"ILLEGAL_IMPLICIT_TAG", 13, 179},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_INTEGER
+ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER},
+ #else
+ {"ILLEGAL_INTEGER", 13, 180},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE
+ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE},
+ #else
+ {"ILLEGAL_NEGATIVE_VALUE", 13, 226},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING
+ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING},
+ #else
+ {"ILLEGAL_NESTED_TAGGING", 13, 181},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NULL
+ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL},
+ #else
+ {"ILLEGAL_NULL", 13, 125},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_NULL_VALUE
+ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE},
+ #else
+ {"ILLEGAL_NULL_VALUE", 13, 182},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OBJECT
+ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT},
+ #else
+ {"ILLEGAL_OBJECT", 13, 183},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY
+ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY},
+ #else
+ {"ILLEGAL_OPTIONAL_ANY", 13, 126},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE
+ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE},
+ #else
+ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_PADDING
+ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING},
+ #else
+ {"ILLEGAL_PADDING", 13, 221},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY
+ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY},
+ #else
+ {"ILLEGAL_TAGGED_ANY", 13, 127},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_TIME_VALUE
+ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE},
+ #else
+ {"ILLEGAL_TIME_VALUE", 13, 184},
+ #endif
+ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT
+ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT},
+ #else
+ {"ILLEGAL_ZERO_CONTENT", 13, 222},
+ #endif
+ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT
+ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT},
+ #else
+ {"INTEGER_NOT_ASCII_FORMAT", 13, 185},
+ #endif
+ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG
+ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG},
+ #else
+ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128},
+ #endif
+ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT
+ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT},
+ #else
+ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220},
+ #endif
+ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH
+ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH},
+ #else
+ {"INVALID_BMPSTRING_LENGTH", 13, 129},
+ #endif
+ #ifdef ASN1_R_INVALID_DIGIT
+ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT},
+ #else
+ {"INVALID_DIGIT", 13, 130},
+ #endif
+ #ifdef ASN1_R_INVALID_MIME_TYPE
+ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE},
+ #else
+ {"INVALID_MIME_TYPE", 13, 205},
+ #endif
+ #ifdef ASN1_R_INVALID_MODIFIER
+ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER},
+ #else
+ {"INVALID_MODIFIER", 13, 186},
+ #endif
+ #ifdef ASN1_R_INVALID_NUMBER
+ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER},
+ #else
+ {"INVALID_NUMBER", 13, 187},
+ #endif
+ #ifdef ASN1_R_INVALID_OBJECT_ENCODING
+ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING},
+ #else
+ {"INVALID_OBJECT_ENCODING", 13, 216},
+ #endif
+ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS
+ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS},
+ #else
+ {"INVALID_SCRYPT_PARAMETERS", 13, 227},
+ #endif
+ #ifdef ASN1_R_INVALID_SEPARATOR
+ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR},
+ #else
+ {"INVALID_SEPARATOR", 13, 131},
+ #endif
+ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE
+ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE},
+ #else
+ {"INVALID_STRING_TABLE_VALUE", 13, 218},
+ #endif
+ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH
+ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH},
+ #else
+ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133},
+ #endif
+ #ifdef ASN1_R_INVALID_UTF8STRING
+ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING},
+ #else
+ {"INVALID_UTF8STRING", 13, 134},
+ #endif
+ #ifdef ASN1_R_INVALID_VALUE
+ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE},
+ #else
+ {"INVALID_VALUE", 13, 219},
+ #endif
+ #ifdef ASN1_R_LENGTH_TOO_LONG
+ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG},
+ #else
+ {"LENGTH_TOO_LONG", 13, 231},
+ #endif
+ #ifdef ASN1_R_LIST_ERROR
+ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR},
+ #else
+ {"LIST_ERROR", 13, 188},
+ #endif
+ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE
+ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE},
+ #else
+ {"MIME_NO_CONTENT_TYPE", 13, 206},
+ #endif
+ #ifdef ASN1_R_MIME_PARSE_ERROR
+ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR},
+ #else
+ {"MIME_PARSE_ERROR", 13, 207},
+ #endif
+ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR
+ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR},
+ #else
+ {"MIME_SIG_PARSE_ERROR", 13, 208},
+ #endif
+ #ifdef ASN1_R_MISSING_EOC
+ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC},
+ #else
+ {"MISSING_EOC", 13, 137},
+ #endif
+ #ifdef ASN1_R_MISSING_SECOND_NUMBER
+ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER},
+ #else
+ {"MISSING_SECOND_NUMBER", 13, 138},
+ #endif
+ #ifdef ASN1_R_MISSING_VALUE
+ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE},
+ #else
+ {"MISSING_VALUE", 13, 189},
+ #endif
+ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL
+ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL},
+ #else
+ {"MSTRING_NOT_UNIVERSAL", 13, 139},
+ #endif
+ #ifdef ASN1_R_MSTRING_WRONG_TAG
+ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG},
+ #else
+ {"MSTRING_WRONG_TAG", 13, 140},
+ #endif
+ #ifdef ASN1_R_NESTED_ASN1_STRING
+ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING},
+ #else
+ {"NESTED_ASN1_STRING", 13, 197},
+ #endif
+ #ifdef ASN1_R_NESTED_TOO_DEEP
+ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP},
+ #else
+ {"NESTED_TOO_DEEP", 13, 201},
+ #endif
+ #ifdef ASN1_R_NON_HEX_CHARACTERS
+ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS},
+ #else
+ {"NON_HEX_CHARACTERS", 13, 141},
+ #endif
+ #ifdef ASN1_R_NOT_ASCII_FORMAT
+ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT},
+ #else
+ {"NOT_ASCII_FORMAT", 13, 190},
+ #endif
+ #ifdef ASN1_R_NOT_ENOUGH_DATA
+ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA},
+ #else
+ {"NOT_ENOUGH_DATA", 13, 142},
+ #endif
+ #ifdef ASN1_R_NO_CONTENT_TYPE
+ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE},
+ #else
+ {"NO_CONTENT_TYPE", 13, 209},
+ #endif
+ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE
+ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE},
+ #else
+ {"NO_MATCHING_CHOICE_TYPE", 13, 143},
+ #endif
+ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE
+ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE},
+ #else
+ {"NO_MULTIPART_BODY_FAILURE", 13, 210},
+ #endif
+ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY
+ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY},
+ #else
+ {"NO_MULTIPART_BOUNDARY", 13, 211},
+ #endif
+ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE
+ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE},
+ #else
+ {"NO_SIG_CONTENT_TYPE", 13, 212},
+ #endif
+ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH
+ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH},
+ #else
+ {"NULL_IS_WRONG_LENGTH", 13, 144},
+ #endif
+ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT
+ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT},
+ #else
+ {"OBJECT_NOT_ASCII_FORMAT", 13, 191},
+ #endif
+ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS
+ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS},
+ #else
+ {"ODD_NUMBER_OF_CHARS", 13, 145},
+ #endif
+ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE
+ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE},
+ #else
+ {"SECOND_NUMBER_TOO_LARGE", 13, 147},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH
+ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH},
+ #else
+ {"SEQUENCE_LENGTH_MISMATCH", 13, 148},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED
+ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED},
+ #else
+ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149},
+ #endif
+ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG
+ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG},
+ #else
+ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192},
+ #endif
+ #ifdef ASN1_R_SHORT_LINE
+ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE},
+ #else
+ {"SHORT_LINE", 13, 150},
+ #endif
+ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE
+ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE},
+ #else
+ {"SIG_INVALID_MIME_TYPE", 13, 213},
+ #endif
+ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED
+ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED},
+ #else
+ {"STREAMING_NOT_SUPPORTED", 13, 202},
+ #endif
+ #ifdef ASN1_R_STRING_TOO_LONG
+ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG},
+ #else
+ {"STRING_TOO_LONG", 13, 151},
+ #endif
+ #ifdef ASN1_R_STRING_TOO_SHORT
+ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT},
+ #else
+ {"STRING_TOO_SHORT", 13, 152},
+ #endif
+ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
+ #else
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154},
+ #endif
+ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT
+ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT},
+ #else
+ {"TIME_NOT_ASCII_FORMAT", 13, 193},
+ #endif
+ #ifdef ASN1_R_TOO_LARGE
+ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE},
+ #else
+ {"TOO_LARGE", 13, 223},
+ #endif
+ #ifdef ASN1_R_TOO_LONG
+ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG},
+ #else
+ {"TOO_LONG", 13, 155},
+ #endif
+ #ifdef ASN1_R_TOO_SMALL
+ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL},
+ #else
+ {"TOO_SMALL", 13, 224},
+ #endif
+ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED
+ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED},
+ #else
+ {"TYPE_NOT_CONSTRUCTED", 13, 156},
+ #endif
+ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE
+ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE},
+ #else
+ {"TYPE_NOT_PRIMITIVE", 13, 195},
+ #endif
+ #ifdef ASN1_R_UNEXPECTED_EOC
+ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC},
+ #else
+ {"UNEXPECTED_EOC", 13, 159},
+ #endif
+ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH
+ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH},
+ #else
+ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 13, 229},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_FORMAT
+ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT},
+ #else
+ {"UNKNOWN_FORMAT", 13, 160},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM
+ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE
+ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE},
+ #else
+ {"UNKNOWN_OBJECT_TYPE", 13, 162},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE
+ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE},
+ #else
+ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM
+ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM},
+ #else
+ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199},
+ #endif
+ #ifdef ASN1_R_UNKNOWN_TAG
+ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG},
+ #else
+ {"UNKNOWN_TAG", 13, 194},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE
+ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE},
+ #else
+ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 13, 228},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
+ #else
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167},
+ #endif
+ #ifdef ASN1_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 13, 196},
+ #endif
+ #ifdef ASN1_R_WRONG_INTEGER_TYPE
+ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
+ #else
+ {"WRONG_INTEGER_TYPE", 13, 225},
+ #endif
+ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE
+ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE},
+ #else
+ {"WRONG_PUBLIC_KEY_TYPE", 13, 200},
+ #endif
+ #ifdef ASN1_R_WRONG_TAG
+ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG},
+ #else
+ {"WRONG_TAG", 13, 168},
+ #endif
+ #ifdef ASYNC_R_FAILED_TO_SET_POOL
+ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL},
+ #else
+ {"FAILED_TO_SET_POOL", 51, 101},
+ #endif
+ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT
+ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT},
+ #else
+ {"FAILED_TO_SWAP_CONTEXT", 51, 102},
+ #endif
+ #ifdef ASYNC_R_INIT_FAILED
+ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED},
+ #else
+ {"INIT_FAILED", 51, 105},
+ #endif
+ #ifdef ASYNC_R_INVALID_POOL_SIZE
+ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE},
+ #else
+ {"INVALID_POOL_SIZE", 51, 103},
+ #endif
+ #ifdef BIO_R_ACCEPT_ERROR
+ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR},
+ #else
+ {"ACCEPT_ERROR", 32, 100},
+ #endif
+ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET
+ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET},
+ #else
+ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141},
+ #endif
+ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE
+ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE},
+ #else
+ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129},
+ #endif
+ #ifdef BIO_R_BAD_FOPEN_MODE
+ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE},
+ #else
+ {"BAD_FOPEN_MODE", 32, 101},
+ #endif
+ #ifdef BIO_R_BROKEN_PIPE
+ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE},
+ #else
+ {"BROKEN_PIPE", 32, 124},
+ #endif
+ #ifdef BIO_R_CONNECT_ERROR
+ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR},
+ #else
+ {"CONNECT_ERROR", 32, 103},
+ #endif
+ #ifdef BIO_R_CONNECT_TIMEOUT
+ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT},
+ #else
+ {"CONNECT_TIMEOUT", 32, 147},
+ #endif
+ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET
+ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET},
+ #else
+ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107},
+ #endif
+ #ifdef BIO_R_GETSOCKNAME_ERROR
+ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR},
+ #else
+ {"GETSOCKNAME_ERROR", 32, 132},
+ #endif
+ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS
+ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS},
+ #else
+ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133},
+ #endif
+ #ifdef BIO_R_GETTING_SOCKTYPE
+ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE},
+ #else
+ {"GETTING_SOCKTYPE", 32, 134},
+ #endif
+ #ifdef BIO_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 32, 125},
+ #endif
+ #ifdef BIO_R_INVALID_SOCKET
+ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET},
+ #else
+ {"INVALID_SOCKET", 32, 135},
+ #endif
+ #ifdef BIO_R_IN_USE
+ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE},
+ #else
+ {"IN_USE", 32, 123},
+ #endif
+ #ifdef BIO_R_LENGTH_TOO_LONG
+ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG},
+ #else
+ {"LENGTH_TOO_LONG", 32, 102},
+ #endif
+ #ifdef BIO_R_LISTEN_V6_ONLY
+ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY},
+ #else
+ {"LISTEN_V6_ONLY", 32, 136},
+ #endif
+ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
+ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
+ #else
+ {"LOOKUP_RETURNED_NOTHING", 32, 142},
+ #endif
+ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE
+ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE},
+ #else
+ {"MALFORMED_HOST_OR_SERVICE", 32, 130},
+ #endif
+ #ifdef BIO_R_NBIO_CONNECT_ERROR
+ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR},
+ #else
+ {"NBIO_CONNECT_ERROR", 32, 110},
+ #endif
+ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
+ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
+ #else
+ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143},
+ #endif
+ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED
+ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED},
+ #else
+ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144},
+ #endif
+ #ifdef BIO_R_NO_PORT_DEFINED
+ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED},
+ #else
+ {"NO_PORT_DEFINED", 32, 113},
+ #endif
+ #ifdef BIO_R_NO_SUCH_FILE
+ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE},
+ #else
+ {"NO_SUCH_FILE", 32, 128},
+ #endif
+ #ifdef BIO_R_TRANSFER_ERROR
+ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR},
+ #else
+ {"TRANSFER_ERROR", 32, 104},
+ #endif
+ #ifdef BIO_R_TRANSFER_TIMEOUT
+ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT},
+ #else
+ {"TRANSFER_TIMEOUT", 32, 105},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET
+ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET},
+ #else
+ {"UNABLE_TO_BIND_SOCKET", 32, 117},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET
+ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET},
+ #else
+ {"UNABLE_TO_CREATE_SOCKET", 32, 118},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_KEEPALIVE
+ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE},
+ #else
+ {"UNABLE_TO_KEEPALIVE", 32, 137},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET
+ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET},
+ #else
+ {"UNABLE_TO_LISTEN_SOCKET", 32, 119},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_NODELAY
+ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY},
+ #else
+ {"UNABLE_TO_NODELAY", 32, 138},
+ #endif
+ #ifdef BIO_R_UNABLE_TO_REUSEADDR
+ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR},
+ #else
+ {"UNABLE_TO_REUSEADDR", 32, 139},
+ #endif
+ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
+ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
+ #else
+ {"UNAVAILABLE_IP_FAMILY", 32, 145},
+ #endif
+ #ifdef BIO_R_UNINITIALIZED
+ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED},
+ #else
+ {"UNINITIALIZED", 32, 120},
+ #endif
+ #ifdef BIO_R_UNKNOWN_INFO_TYPE
+ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE},
+ #else
+ {"UNKNOWN_INFO_TYPE", 32, 140},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY
+ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY},
+ #else
+ {"UNSUPPORTED_IP_FAMILY", 32, 146},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_METHOD
+ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD},
+ #else
+ {"UNSUPPORTED_METHOD", 32, 121},
+ #endif
+ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY
+ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY},
+ #else
+ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131},
+ #endif
+ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO
+ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO},
+ #else
+ {"WRITE_TO_READ_ONLY_BIO", 32, 126},
+ #endif
+ #ifdef BIO_R_WSASTARTUP
+ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP},
+ #else
+ {"WSASTARTUP", 32, 122},
+ #endif
+ #ifdef BN_R_ARG2_LT_ARG3
+ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3},
+ #else
+ {"ARG2_LT_ARG3", 3, 100},
+ #endif
+ #ifdef BN_R_BAD_RECIPROCAL
+ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL},
+ #else
+ {"BAD_RECIPROCAL", 3, 101},
+ #endif
+ #ifdef BN_R_BIGNUM_TOO_LONG
+ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG},
+ #else
+ {"BIGNUM_TOO_LONG", 3, 114},
+ #endif
+ #ifdef BN_R_BITS_TOO_SMALL
+ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL},
+ #else
+ {"BITS_TOO_SMALL", 3, 118},
+ #endif
+ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS
+ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS},
+ #else
+ {"CALLED_WITH_EVEN_MODULUS", 3, 102},
+ #endif
+ #ifdef BN_R_DIV_BY_ZERO
+ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO},
+ #else
+ {"DIV_BY_ZERO", 3, 103},
+ #endif
+ #ifdef BN_R_ENCODING_ERROR
+ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR},
+ #else
+ {"ENCODING_ERROR", 3, 104},
+ #endif
+ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA
+ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA},
+ #else
+ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105},
+ #endif
+ #ifdef BN_R_INPUT_NOT_REDUCED
+ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED},
+ #else
+ {"INPUT_NOT_REDUCED", 3, 110},
+ #endif
+ #ifdef BN_R_INVALID_LENGTH
+ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH},
+ #else
+ {"INVALID_LENGTH", 3, 106},
+ #endif
+ #ifdef BN_R_INVALID_RANGE
+ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE},
+ #else
+ {"INVALID_RANGE", 3, 115},
+ #endif
+ #ifdef BN_R_INVALID_SHIFT
+ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT},
+ #else
+ {"INVALID_SHIFT", 3, 119},
+ #endif
+ #ifdef BN_R_NOT_A_SQUARE
+ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE},
+ #else
+ {"NOT_A_SQUARE", 3, 111},
+ #endif
+ #ifdef BN_R_NOT_INITIALIZED
+ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED},
+ #else
+ {"NOT_INITIALIZED", 3, 107},
+ #endif
+ #ifdef BN_R_NO_INVERSE
+ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE},
+ #else
+ {"NO_INVERSE", 3, 108},
+ #endif
+ #ifdef BN_R_NO_SOLUTION
+ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION},
+ #else
+ {"NO_SOLUTION", 3, 116},
+ #endif
+ #ifdef BN_R_NO_SUITABLE_DIGEST
+ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST},
+ #else
+ {"NO_SUITABLE_DIGEST", 3, 120},
+ #endif
+ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE
+ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE},
+ #else
+ {"PRIVATE_KEY_TOO_LARGE", 3, 117},
+ #endif
+ #ifdef BN_R_P_IS_NOT_PRIME
+ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME},
+ #else
+ {"P_IS_NOT_PRIME", 3, 112},
+ #endif
+ #ifdef BN_R_TOO_MANY_ITERATIONS
+ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS},
+ #else
+ {"TOO_MANY_ITERATIONS", 3, 113},
+ #endif
+ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES
+ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES},
+ #else
+ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109},
+ #endif
+ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED
+ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED},
+ #else
+ {"ALGORITHM_NOT_SUPPORTED", 58, 139},
+ #endif
+ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP
+ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP},
+ #else
+ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167},
+ #endif
+ #ifdef CMP_R_BAD_REQUEST_ID
+ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID},
+ #else
+ {"BAD_REQUEST_ID", 58, 108},
+ #endif
+ #ifdef CMP_R_CERTHASH_UNMATCHED
+ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED},
+ #else
+ {"CERTHASH_UNMATCHED", 58, 156},
+ #endif
+ #ifdef CMP_R_CERTID_NOT_FOUND
+ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND},
+ #else
+ {"CERTID_NOT_FOUND", 58, 109},
+ #endif
+ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED
+ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED},
+ #else
+ {"CERTIFICATE_NOT_ACCEPTED", 58, 169},
+ #endif
+ #ifdef CMP_R_CERTIFICATE_NOT_FOUND
+ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND},
+ #else
+ {"CERTIFICATE_NOT_FOUND", 58, 112},
+ #endif
+ #ifdef CMP_R_CERTREQMSG_NOT_FOUND
+ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND},
+ #else
+ {"CERTREQMSG_NOT_FOUND", 58, 157},
+ #endif
+ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND
+ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND},
+ #else
+ {"CERTRESPONSE_NOT_FOUND", 58, 113},
+ #endif
+ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH
+ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH},
+ #else
+ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114},
+ #endif
+ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE
+ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE},
+ #else
+ {"CHECKAFTER_OUT_OF_RANGE", 58, 181},
+ #endif
+ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING
+ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING},
+ #else
+ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176},
+ #endif
+ #ifdef CMP_R_ENCOUNTERED_WAITING
+ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING},
+ #else
+ {"ENCOUNTERED_WAITING", 58, 162},
+ #endif
+ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION
+ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION},
+ #else
+ {"ERROR_CALCULATING_PROTECTION", 58, 115},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_CERTCONF
+ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF},
+ #else
+ {"ERROR_CREATING_CERTCONF", 58, 116},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_CERTREP
+ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP},
+ #else
+ {"ERROR_CREATING_CERTREP", 58, 117},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_CERTREQ
+ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ},
+ #else
+ {"ERROR_CREATING_CERTREQ", 58, 163},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_ERROR
+ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR},
+ #else
+ {"ERROR_CREATING_ERROR", 58, 118},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_GENM
+ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM},
+ #else
+ {"ERROR_CREATING_GENM", 58, 119},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_GENP
+ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP},
+ #else
+ {"ERROR_CREATING_GENP", 58, 120},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_PKICONF
+ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF},
+ #else
+ {"ERROR_CREATING_PKICONF", 58, 122},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_POLLREP
+ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP},
+ #else
+ {"ERROR_CREATING_POLLREP", 58, 123},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_POLLREQ
+ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ},
+ #else
+ {"ERROR_CREATING_POLLREQ", 58, 124},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_RP
+ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP},
+ #else
+ {"ERROR_CREATING_RP", 58, 125},
+ #endif
+ #ifdef CMP_R_ERROR_CREATING_RR
+ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR},
+ #else
+ {"ERROR_CREATING_RR", 58, 126},
+ #endif
+ #ifdef CMP_R_ERROR_PARSING_PKISTATUS
+ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS},
+ #else
+ {"ERROR_PARSING_PKISTATUS", 58, 107},
+ #endif
+ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE
+ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE},
+ #else
+ {"ERROR_PROCESSING_MESSAGE", 58, 158},
+ #endif
+ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE
+ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE},
+ #else
+ {"ERROR_PROTECTING_MESSAGE", 58, 127},
+ #endif
+ #ifdef CMP_R_ERROR_SETTING_CERTHASH
+ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH},
+ #else
+ {"ERROR_SETTING_CERTHASH", 58, 128},
+ #endif
+ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF
+ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF},
+ #else
+ {"ERROR_UNEXPECTED_CERTCONF", 58, 160},
+ #endif
+ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION
+ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION},
+ #else
+ {"ERROR_VALIDATING_PROTECTION", 58, 140},
+ #endif
+ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE
+ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE},
+ #else
+ {"ERROR_VALIDATING_SIGNATURE", 58, 171},
+ #endif
+ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN
+ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN},
+ #else
+ {"FAILED_BUILDING_OWN_CHAIN", 58, 164},
+ #endif
+ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY
+ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY},
+ #else
+ {"FAILED_EXTRACTING_PUBKEY", 58, 141},
+ #endif
+ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM
+ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM},
+ #else
+ {"FAILURE_OBTAINING_RANDOM", 58, 110},
+ #endif
+ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE
+ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE},
+ #else
+ {"FAIL_INFO_OUT_OF_RANGE", 58, 129},
+ #endif
+ #ifdef CMP_R_INVALID_ARGS
+ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS},
+ #else
+ {"INVALID_ARGS", 58, 100},
+ #endif
+ #ifdef CMP_R_INVALID_OPTION
+ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION},
+ #else
+ {"INVALID_OPTION", 58, 174},
+ #endif
+ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION
+ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION},
+ #else
+ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130},
+ #endif
+ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE
+ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE},
+ #else
+ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142},
+ #endif
+ #ifdef CMP_R_MISSING_P10CSR
+ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR},
+ #else
+ {"MISSING_P10CSR", 58, 121},
+ #endif
+ #ifdef CMP_R_MISSING_PBM_SECRET
+ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET},
+ #else
+ {"MISSING_PBM_SECRET", 58, 166},
+ #endif
+ #ifdef CMP_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 58, 131},
+ #endif
+ #ifdef CMP_R_MISSING_PROTECTION
+ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION},
+ #else
+ {"MISSING_PROTECTION", 58, 143},
+ #endif
+ #ifdef CMP_R_MISSING_REFERENCE_CERT
+ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT},
+ #else
+ {"MISSING_REFERENCE_CERT", 58, 168},
+ #endif
+ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION
+ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION},
+ #else
+ {"MISSING_SENDER_IDENTIFICATION", 58, 111},
+ #endif
+ #ifdef CMP_R_MISSING_TRUST_STORE
+ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE},
+ #else
+ {"MISSING_TRUST_STORE", 58, 144},
+ #endif
+ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED
+ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED},
+ #else
+ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161},
+ #endif
+ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED
+ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED},
+ #else
+ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170},
+ #endif
+ #ifdef CMP_R_MULTIPLE_SAN_SOURCES
+ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES},
+ #else
+ {"MULTIPLE_SAN_SOURCES", 58, 102},
+ #endif
+ #ifdef CMP_R_NO_STDIO
+ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO},
+ #else
+ {"NO_STDIO", 58, 194},
+ #endif
+ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT
+ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT},
+ #else
+ {"NO_SUITABLE_SENDER_CERT", 58, 145},
+ #endif
+ #ifdef CMP_R_NULL_ARGUMENT
+ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT},
+ #else
+ {"NULL_ARGUMENT", 58, 103},
+ #endif
+ #ifdef CMP_R_PKIBODY_ERROR
+ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR},
+ #else
+ {"PKIBODY_ERROR", 58, 146},
+ #endif
+ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND
+ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND},
+ #else
+ {"PKISTATUSINFO_NOT_FOUND", 58, 132},
+ #endif
+ #ifdef CMP_R_POLLING_FAILED
+ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED},
+ #else
+ {"POLLING_FAILED", 58, 172},
+ #endif
+ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE
+ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE},
+ #else
+ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147},
+ #endif
+ #ifdef CMP_R_RECEIVED_ERROR
+ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR},
+ #else
+ {"RECEIVED_ERROR", 58, 180},
+ #endif
+ #ifdef CMP_R_RECIPNONCE_UNMATCHED
+ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED},
+ #else
+ {"RECIPNONCE_UNMATCHED", 58, 148},
+ #endif
+ #ifdef CMP_R_REQUEST_NOT_ACCEPTED
+ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED},
+ #else
+ {"REQUEST_NOT_ACCEPTED", 58, 149},
+ #endif
+ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER
+ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER},
+ #else
+ {"REQUEST_REJECTED_BY_SERVER", 58, 182},
+ #endif
+ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED
+ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED},
+ #else
+ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150},
+ #endif
+ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG
+ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG},
+ #else
+ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151},
+ #endif
+ #ifdef CMP_R_TOTAL_TIMEOUT
+ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT},
+ #else
+ {"TOTAL_TIMEOUT", 58, 184},
+ #endif
+ #ifdef CMP_R_TRANSACTIONID_UNMATCHED
+ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED},
+ #else
+ {"TRANSACTIONID_UNMATCHED", 58, 152},
+ #endif
+ #ifdef CMP_R_TRANSFER_ERROR
+ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR},
+ #else
+ {"TRANSFER_ERROR", 58, 159},
+ #endif
+ #ifdef CMP_R_UNEXPECTED_PKIBODY
+ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY},
+ #else
+ {"UNEXPECTED_PKIBODY", 58, 133},
+ #endif
+ #ifdef CMP_R_UNEXPECTED_PKISTATUS
+ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS},
+ #else
+ {"UNEXPECTED_PKISTATUS", 58, 185},
+ #endif
+ #ifdef CMP_R_UNEXPECTED_PVNO
+ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO},
+ #else
+ {"UNEXPECTED_PVNO", 58, 153},
+ #endif
+ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID
+ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID},
+ #else
+ {"UNKNOWN_ALGORITHM_ID", 58, 134},
+ #endif
+ #ifdef CMP_R_UNKNOWN_CERT_TYPE
+ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE},
+ #else
+ {"UNKNOWN_CERT_TYPE", 58, 135},
+ #endif
+ #ifdef CMP_R_UNKNOWN_PKISTATUS
+ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS},
+ #else
+ {"UNKNOWN_PKISTATUS", 58, 186},
+ #endif
+ #ifdef CMP_R_UNSUPPORTED_ALGORITHM
+ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM},
+ #else
+ {"UNSUPPORTED_ALGORITHM", 58, 136},
+ #endif
+ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE
+ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE},
+ #else
+ {"UNSUPPORTED_KEY_TYPE", 58, 137},
+ #endif
+ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC
+ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC},
+ #else
+ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154},
+ #endif
+ #ifdef CMP_R_VALUE_TOO_LARGE
+ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE},
+ #else
+ {"VALUE_TOO_LARGE", 58, 175},
+ #endif
+ #ifdef CMP_R_VALUE_TOO_SMALL
+ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL},
+ #else
+ {"VALUE_TOO_SMALL", 58, 177},
+ #endif
+ #ifdef CMP_R_WRONG_ALGORITHM_OID
+ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID},
+ #else
+ {"WRONG_ALGORITHM_OID", 58, 138},
+ #endif
+ #ifdef CMP_R_WRONG_CERTID_IN_RP
+ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP},
+ #else
+ {"WRONG_CERTID_IN_RP", 58, 187},
+ #endif
+ #ifdef CMP_R_WRONG_PBM_VALUE
+ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE},
+ #else
+ {"WRONG_PBM_VALUE", 58, 155},
+ #endif
+ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT
+ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT},
+ #else
+ {"WRONG_RP_COMPONENT_COUNT", 58, 188},
+ #endif
+ #ifdef CMP_R_WRONG_SERIAL_IN_RP
+ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP},
+ #else
+ {"WRONG_SERIAL_IN_RP", 58, 173},
+ #endif
+ #ifdef CMS_R_ADD_SIGNER_ERROR
+ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR},
+ #else
+ {"ADD_SIGNER_ERROR", 46, 99},
+ #endif
+ #ifdef CMS_R_ATTRIBUTE_ERROR
+ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR},
+ #else
+ {"ATTRIBUTE_ERROR", 46, 161},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT
+ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT},
+ #else
+ {"CERTIFICATE_ALREADY_PRESENT", 46, 175},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID
+ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID},
+ #else
+ {"CERTIFICATE_HAS_NO_KEYID", 46, 160},
+ #endif
+ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 46, 100},
+ #endif
+ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR
+ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR},
+ #else
+ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184},
+ #endif
+ #ifdef CMS_R_CIPHER_GET_TAG
+ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG},
+ #else
+ {"CIPHER_GET_TAG", 46, 185},
+ #endif
+ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR
+ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR},
+ #else
+ {"CIPHER_INITIALISATION_ERROR", 46, 101},
+ #endif
+ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR
+ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR},
+ #else
+ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102},
+ #endif
+ #ifdef CMS_R_CMS_DATAFINAL_ERROR
+ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR},
+ #else
+ {"CMS_DATAFINAL_ERROR", 46, 103},
+ #endif
+ #ifdef CMS_R_CMS_LIB
+ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB},
+ #else
+ {"CMS_LIB", 46, 104},
+ #endif
+ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH
+ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH},
+ #else
+ {"CONTENTIDENTIFIER_MISMATCH", 46, 170},
+ #endif
+ #ifdef CMS_R_CONTENT_NOT_FOUND
+ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND},
+ #else
+ {"CONTENT_NOT_FOUND", 46, 105},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_MISMATCH
+ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH},
+ #else
+ {"CONTENT_TYPE_MISMATCH", 46, 171},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA
+ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA
+ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107},
+ #endif
+ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA
+ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108},
+ #endif
+ #ifdef CMS_R_CONTENT_VERIFY_ERROR
+ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR},
+ #else
+ {"CONTENT_VERIFY_ERROR", 46, 109},
+ #endif
+ #ifdef CMS_R_CTRL_ERROR
+ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR},
+ #else
+ {"CTRL_ERROR", 46, 110},
+ #endif
+ #ifdef CMS_R_CTRL_FAILURE
+ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE},
+ #else
+ {"CTRL_FAILURE", 46, 111},
+ #endif
+ #ifdef CMS_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 46, 187},
+ #endif
+ #ifdef CMS_R_DECRYPT_ERROR
+ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR},
+ #else
+ {"DECRYPT_ERROR", 46, 112},
+ #endif
+ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY
+ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY},
+ #else
+ {"ERROR_GETTING_PUBLIC_KEY", 46, 113},
+ #endif
+ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE
+ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE},
+ #else
+ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114},
+ #endif
+ #ifdef CMS_R_ERROR_SETTING_KEY
+ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY},
+ #else
+ {"ERROR_SETTING_KEY", 46, 115},
+ #endif
+ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO
+ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO},
+ #else
+ {"ERROR_SETTING_RECIPIENTINFO", 46, 116},
+ #endif
+ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR
+ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR},
+ #else
+ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183},
+ #endif
+ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH
+ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH},
+ #else
+ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117},
+ #endif
+ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER
+ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER},
+ #else
+ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176},
+ #endif
+ #ifdef CMS_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 46, 118},
+ #endif
+ #ifdef CMS_R_INVALID_LABEL
+ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL},
+ #else
+ {"INVALID_LABEL", 46, 190},
+ #endif
+ #ifdef CMS_R_INVALID_OAEP_PARAMETERS
+ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS},
+ #else
+ {"INVALID_OAEP_PARAMETERS", 46, 191},
+ #endif
+ #ifdef CMS_R_KDF_PARAMETER_ERROR
+ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR},
+ #else
+ {"KDF_PARAMETER_ERROR", 46, 186},
+ #endif
+ #ifdef CMS_R_MD_BIO_INIT_ERROR
+ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR},
+ #else
+ {"MD_BIO_INIT_ERROR", 46, 119},
+ #endif
+ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH
+ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH},
+ #else
+ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120},
+ #endif
+ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH
+ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH},
+ #else
+ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_ERROR
+ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR},
+ #else
+ {"MSGSIGDIGEST_ERROR", 46, 172},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE
+ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE},
+ #else
+ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162},
+ #endif
+ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH
+ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH},
+ #else
+ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163},
+ #endif
+ #ifdef CMS_R_NEED_ONE_SIGNER
+ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER},
+ #else
+ {"NEED_ONE_SIGNER", 46, 164},
+ #endif
+ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT
+ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT},
+ #else
+ {"NOT_A_SIGNED_RECEIPT", 46, 165},
+ #endif
+ #ifdef CMS_R_NOT_ENCRYPTED_DATA
+ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA},
+ #else
+ {"NOT_ENCRYPTED_DATA", 46, 122},
+ #endif
+ #ifdef CMS_R_NOT_KEK
+ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK},
+ #else
+ {"NOT_KEK", 46, 123},
+ #endif
+ #ifdef CMS_R_NOT_KEY_AGREEMENT
+ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT},
+ #else
+ {"NOT_KEY_AGREEMENT", 46, 181},
+ #endif
+ #ifdef CMS_R_NOT_KEY_TRANSPORT
+ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT},
+ #else
+ {"NOT_KEY_TRANSPORT", 46, 124},
+ #endif
+ #ifdef CMS_R_NOT_PWRI
+ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI},
+ #else
+ {"NOT_PWRI", 46, 177},
+ #endif
+ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125},
+ #endif
+ #ifdef CMS_R_NO_CIPHER
+ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER},
+ #else
+ {"NO_CIPHER", 46, 126},
+ #endif
+ #ifdef CMS_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 46, 127},
+ #endif
+ #ifdef CMS_R_NO_CONTENT_TYPE
+ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE},
+ #else
+ {"NO_CONTENT_TYPE", 46, 173},
+ #endif
+ #ifdef CMS_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 46, 128},
+ #endif
+ #ifdef CMS_R_NO_DIGEST_SET
+ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET},
+ #else
+ {"NO_DIGEST_SET", 46, 129},
+ #endif
+ #ifdef CMS_R_NO_KEY
+ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY},
+ #else
+ {"NO_KEY", 46, 130},
+ #endif
+ #ifdef CMS_R_NO_KEY_OR_CERT
+ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT},
+ #else
+ {"NO_KEY_OR_CERT", 46, 174},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_DIGEST
+ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST},
+ #else
+ {"NO_MATCHING_DIGEST", 46, 131},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_RECIPIENT
+ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT},
+ #else
+ {"NO_MATCHING_RECIPIENT", 46, 132},
+ #endif
+ #ifdef CMS_R_NO_MATCHING_SIGNATURE
+ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE},
+ #else
+ {"NO_MATCHING_SIGNATURE", 46, 166},
+ #endif
+ #ifdef CMS_R_NO_MSGSIGDIGEST
+ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST},
+ #else
+ {"NO_MSGSIGDIGEST", 46, 167},
+ #endif
+ #ifdef CMS_R_NO_PASSWORD
+ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD},
+ #else
+ {"NO_PASSWORD", 46, 178},
+ #endif
+ #ifdef CMS_R_NO_PRIVATE_KEY
+ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY},
+ #else
+ {"NO_PRIVATE_KEY", 46, 133},
+ #endif
+ #ifdef CMS_R_NO_PUBLIC_KEY
+ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY},
+ #else
+ {"NO_PUBLIC_KEY", 46, 134},
+ #endif
+ #ifdef CMS_R_NO_RECEIPT_REQUEST
+ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST},
+ #else
+ {"NO_RECEIPT_REQUEST", 46, 168},
+ #endif
+ #ifdef CMS_R_NO_SIGNERS
+ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS},
+ #else
+ {"NO_SIGNERS", 46, 135},
+ #endif
+ #ifdef CMS_R_PEER_KEY_ERROR
+ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR},
+ #else
+ {"PEER_KEY_ERROR", 46, 188},
+ #endif
+ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136},
+ #endif
+ #ifdef CMS_R_RECEIPT_DECODE_ERROR
+ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR},
+ #else
+ {"RECEIPT_DECODE_ERROR", 46, 169},
+ #endif
+ #ifdef CMS_R_RECIPIENT_ERROR
+ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR},
+ #else
+ {"RECIPIENT_ERROR", 46, 137},
+ #endif
+ #ifdef CMS_R_SHARED_INFO_ERROR
+ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR},
+ #else
+ {"SHARED_INFO_ERROR", 46, 189},
+ #endif
+ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138},
+ #endif
+ #ifdef CMS_R_SIGNFINAL_ERROR
+ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR},
+ #else
+ {"SIGNFINAL_ERROR", 46, 139},
+ #endif
+ #ifdef CMS_R_SMIME_TEXT_ERROR
+ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR},
+ #else
+ {"SMIME_TEXT_ERROR", 46, 140},
+ #endif
+ #ifdef CMS_R_STORE_INIT_ERROR
+ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR},
+ #else
+ {"STORE_INIT_ERROR", 46, 141},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA
+ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA},
+ #else
+ {"TYPE_NOT_COMPRESSED_DATA", 46, 142},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_DATA
+ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA},
+ #else
+ {"TYPE_NOT_DATA", 46, 143},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA
+ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA},
+ #else
+ {"TYPE_NOT_DIGESTED_DATA", 46, 144},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA
+ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA},
+ #else
+ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145},
+ #endif
+ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA
+ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA},
+ #else
+ {"TYPE_NOT_ENVELOPED_DATA", 46, 146},
+ #endif
+ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT
+ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT},
+ #else
+ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147},
+ #endif
+ #ifdef CMS_R_UNKNOWN_CIPHER
+ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER},
+ #else
+ {"UNKNOWN_CIPHER", 46, 148},
+ #endif
+ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM
+ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149},
+ #endif
+ #ifdef CMS_R_UNKNOWN_ID
+ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID},
+ #else
+ {"UNKNOWN_ID", 46, 150},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 46, 152},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE
+ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE},
+ #else
+ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM
+ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM},
+ #else
+ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM
+ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE
+ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE},
+ #else
+ {"UNSUPPORTED_LABEL_SOURCE", 46, 193},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
+ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE},
+ #else
+ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE
+ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE},
+ #else
+ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
+ #endif
+ #ifdef CMS_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 46, 156},
+ #endif
+ #ifdef CMS_R_UNWRAP_ERROR
+ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR},
+ #else
+ {"UNWRAP_ERROR", 46, 157},
+ #endif
+ #ifdef CMS_R_UNWRAP_FAILURE
+ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE},
+ #else
+ {"UNWRAP_FAILURE", 46, 180},
+ #endif
+ #ifdef CMS_R_VERIFICATION_FAILURE
+ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE},
+ #else
+ {"VERIFICATION_FAILURE", 46, 158},
+ #endif
+ #ifdef CMS_R_WRAP_ERROR
+ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR},
+ #else
+ {"WRAP_ERROR", 46, 159},
+ #endif
+ #ifdef COMP_R_ZLIB_DEFLATE_ERROR
+ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
+ #else
+ {"ZLIB_DEFLATE_ERROR", 41, 99},
+ #endif
+ #ifdef COMP_R_ZLIB_INFLATE_ERROR
+ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR},
+ #else
+ {"ZLIB_INFLATE_ERROR", 41, 100},
+ #endif
+ #ifdef COMP_R_ZLIB_NOT_SUPPORTED
+ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED},
+ #else
+ {"ZLIB_NOT_SUPPORTED", 41, 101},
+ #endif
+ #ifdef CONF_R_ERROR_LOADING_DSO
+ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
+ #else
+ {"ERROR_LOADING_DSO", 14, 110},
+ #endif
+ #ifdef CONF_R_INVALID_PRAGMA
+ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA},
+ #else
+ {"INVALID_PRAGMA", 14, 122},
+ #endif
+ #ifdef CONF_R_LIST_CANNOT_BE_NULL
+ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL},
+ #else
+ {"LIST_CANNOT_BE_NULL", 14, 115},
+ #endif
+ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION
+ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION},
+ #else
+ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123},
+ #endif
+ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET
+ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET},
+ #else
+ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100},
+ #endif
+ #ifdef CONF_R_MISSING_EQUAL_SIGN
+ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN},
+ #else
+ {"MISSING_EQUAL_SIGN", 14, 101},
+ #endif
+ #ifdef CONF_R_MISSING_INIT_FUNCTION
+ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION},
+ #else
+ {"MISSING_INIT_FUNCTION", 14, 112},
+ #endif
+ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR
+ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR},
+ #else
+ {"MODULE_INITIALIZATION_ERROR", 14, 109},
+ #endif
+ #ifdef CONF_R_NO_CLOSE_BRACE
+ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE},
+ #else
+ {"NO_CLOSE_BRACE", 14, 102},
+ #endif
+ #ifdef CONF_R_NO_CONF
+ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF},
+ #else
+ {"NO_CONF", 14, 105},
+ #endif
+ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE
+ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE},
+ #else
+ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106},
+ #endif
+ #ifdef CONF_R_NO_SECTION
+ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION},
+ #else
+ {"NO_SECTION", 14, 107},
+ #endif
+ #ifdef CONF_R_NO_SUCH_FILE
+ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE},
+ #else
+ {"NO_SUCH_FILE", 14, 114},
+ #endif
+ #ifdef CONF_R_NO_VALUE
+ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE},
+ #else
+ {"NO_VALUE", 14, 108},
+ #endif
+ #ifdef CONF_R_NUMBER_TOO_LARGE
+ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE},
+ #else
+ {"NUMBER_TOO_LARGE", 14, 121},
+ #endif
+ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION
+ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION},
+ #else
+ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124},
+ #endif
+ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE
+ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE},
+ #else
+ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
+ #endif
+ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY
+ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY},
+ #else
+ {"SSL_COMMAND_SECTION_EMPTY", 14, 117},
+ #endif
+ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND
+ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND},
+ #else
+ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118},
+ #endif
+ #ifdef CONF_R_SSL_SECTION_EMPTY
+ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY},
+ #else
+ {"SSL_SECTION_EMPTY", 14, 119},
+ #endif
+ #ifdef CONF_R_SSL_SECTION_NOT_FOUND
+ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND},
+ #else
+ {"SSL_SECTION_NOT_FOUND", 14, 120},
+ #endif
+ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION
+ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION},
+ #else
+ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103},
+ #endif
+ #ifdef CONF_R_UNKNOWN_MODULE_NAME
+ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME},
+ #else
+ {"UNKNOWN_MODULE_NAME", 14, 113},
+ #endif
+ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG
+ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG},
+ #else
+ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116},
+ #endif
+ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE
+ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE},
+ #else
+ {"VARIABLE_HAS_NO_VALUE", 14, 104},
+ #endif
+ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT
+ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT},
+ #else
+ {"BAD_PBM_ITERATIONCOUNT", 56, 100},
+ #endif
+ #ifdef CRMF_R_CRMFERROR
+ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR},
+ #else
+ {"CRMFERROR", 56, 102},
+ #endif
+ #ifdef CRMF_R_ERROR
+ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR},
+ #else
+ {"ERROR", 56, 103},
+ #endif
+ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE
+ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE},
+ #else
+ {"ERROR_DECODING_CERTIFICATE", 56, 104},
+ #endif
+ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE
+ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE},
+ #else
+ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105},
+ #endif
+ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY
+ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY},
+ #else
+ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106},
+ #endif
+ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM
+ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM},
+ #else
+ {"FAILURE_OBTAINING_RANDOM", 56, 107},
+ #endif
+ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100
+ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100},
+ #else
+ {"ITERATIONCOUNT_BELOW_100", 56, 108},
+ #endif
+ #ifdef CRMF_R_MALFORMED_IV
+ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV},
+ #else
+ {"MALFORMED_IV", 56, 101},
+ #endif
+ #ifdef CRMF_R_NULL_ARGUMENT
+ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT},
+ #else
+ {"NULL_ARGUMENT", 56, 109},
+ #endif
+ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED
+ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED},
+ #else
+ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113},
+ #endif
+ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY
+ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY},
+ #else
+ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117},
+ #endif
+ #ifdef CRMF_R_POPO_MISSING
+ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING},
+ #else
+ {"POPO_MISSING", 56, 121},
+ #endif
+ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY
+ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY},
+ #else
+ {"POPO_MISSING_PUBLIC_KEY", 56, 118},
+ #endif
+ #ifdef CRMF_R_POPO_MISSING_SUBJECT
+ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT},
+ #else
+ {"POPO_MISSING_SUBJECT", 56, 119},
+ #endif
+ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED
+ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED},
+ #else
+ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120},
+ #endif
+ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE
+ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE},
+ #else
+ {"SETTING_MAC_ALGOR_FAILURE", 56, 110},
+ #endif
+ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE
+ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE},
+ #else
+ {"SETTING_OWF_ALGOR_FAILURE", 56, 111},
+ #endif
+ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM
+ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM},
+ #else
+ {"UNSUPPORTED_ALGORITHM", 56, 112},
+ #endif
+ #ifdef CRMF_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 56, 114},
+ #endif
+ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO
+ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO},
+ #else
+ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115},
+ #endif
+ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD
+ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD},
+ #else
+ {"UNSUPPORTED_POPO_METHOD", 56, 116},
+ #endif
+ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME
+ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME},
+ #else
+ {"BAD_ALGORITHM_NAME", 15, 117},
+ #endif
+ #ifdef CRYPTO_R_CONFLICTING_NAMES
+ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES},
+ #else
+ {"CONFLICTING_NAMES", 15, 118},
+ #endif
+ #ifdef CRYPTO_R_FIPS_MODE_NOT_SUPPORTED
+ {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_FIPS_MODE_NOT_SUPPORTED},
+ #else
+ {"FIPS_MODE_NOT_SUPPORTED", 15, 101},
+ #endif
+ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT
+ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT},
+ #else
+ {"HEX_STRING_TOO_SHORT", 15, 121},
+ #endif
+ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT
+ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT},
+ #else
+ {"ILLEGAL_HEX_DIGIT", 15, 102},
+ #endif
+ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE
+ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE},
+ #else
+ {"INSUFFICIENT_DATA_SPACE", 15, 106},
+ #endif
+ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE
+ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE},
+ #else
+ {"INSUFFICIENT_PARAM_SIZE", 15, 107},
+ #endif
+ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE
+ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE},
+ #else
+ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108},
+ #endif
+ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT
+ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT},
+ #else
+ {"INVALID_NULL_ARGUMENT", 15, 109},
+ #endif
+ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE
+ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE},
+ #else
+ {"INVALID_OSSL_PARAM_TYPE", 15, 110},
+ #endif
+ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS
+ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS},
+ #else
+ {"ODD_NUMBER_OF_DIGITS", 15, 103},
+ #endif
+ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS
+ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS},
+ #else
+ {"PROVIDER_ALREADY_EXISTS", 15, 104},
+ #endif
+ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR
+ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR},
+ #else
+ {"PROVIDER_SECTION_ERROR", 15, 105},
+ #endif
+ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR
+ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR},
+ #else
+ {"RANDOM_SECTION_ERROR", 15, 119},
+ #endif
+ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE
+ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE},
+ #else
+ {"SECURE_MALLOC_FAILURE", 15, 111},
+ #endif
+ #ifdef CRYPTO_R_STRING_TOO_LONG
+ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG},
+ #else
+ {"STRING_TOO_LONG", 15, 112},
+ #endif
+ #ifdef CRYPTO_R_TOO_MANY_BYTES
+ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES},
+ #else
+ {"TOO_MANY_BYTES", 15, 113},
+ #endif
+ #ifdef CRYPTO_R_TOO_MANY_RECORDS
+ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS},
+ #else
+ {"TOO_MANY_RECORDS", 15, 114},
+ #endif
+ #ifdef CRYPTO_R_TOO_SMALL_BUFFER
+ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER},
+ #else
+ {"TOO_SMALL_BUFFER", 15, 116},
+ #endif
+ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION
+ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION},
+ #else
+ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120},
+ #endif
+ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER
+ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER},
+ #else
+ {"ZERO_LENGTH_NUMBER", 15, 115},
+ #endif
+ #ifdef CT_R_BASE64_DECODE_ERROR
+ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR},
+ #else
+ {"BASE64_DECODE_ERROR", 50, 108},
+ #endif
+ #ifdef CT_R_INVALID_LOG_ID_LENGTH
+ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH},
+ #else
+ {"INVALID_LOG_ID_LENGTH", 50, 100},
+ #endif
+ #ifdef CT_R_LOG_CONF_INVALID
+ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID},
+ #else
+ {"LOG_CONF_INVALID", 50, 109},
+ #endif
+ #ifdef CT_R_LOG_CONF_INVALID_KEY
+ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY},
+ #else
+ {"LOG_CONF_INVALID_KEY", 50, 110},
+ #endif
+ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION
+ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION},
+ #else
+ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111},
+ #endif
+ #ifdef CT_R_LOG_CONF_MISSING_KEY
+ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY},
+ #else
+ {"LOG_CONF_MISSING_KEY", 50, 112},
+ #endif
+ #ifdef CT_R_LOG_KEY_INVALID
+ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID},
+ #else
+ {"LOG_KEY_INVALID", 50, 113},
+ #endif
+ #ifdef CT_R_SCT_FUTURE_TIMESTAMP
+ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP},
+ #else
+ {"SCT_FUTURE_TIMESTAMP", 50, 116},
+ #endif
+ #ifdef CT_R_SCT_INVALID
+ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID},
+ #else
+ {"SCT_INVALID", 50, 104},
+ #endif
+ #ifdef CT_R_SCT_INVALID_SIGNATURE
+ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE},
+ #else
+ {"SCT_INVALID_SIGNATURE", 50, 107},
+ #endif
+ #ifdef CT_R_SCT_LIST_INVALID
+ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID},
+ #else
+ {"SCT_LIST_INVALID", 50, 105},
+ #endif
+ #ifdef CT_R_SCT_LOG_ID_MISMATCH
+ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH},
+ #else
+ {"SCT_LOG_ID_MISMATCH", 50, 114},
+ #endif
+ #ifdef CT_R_SCT_NOT_SET
+ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET},
+ #else
+ {"SCT_NOT_SET", 50, 106},
+ #endif
+ #ifdef CT_R_SCT_UNSUPPORTED_VERSION
+ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION},
+ #else
+ {"SCT_UNSUPPORTED_VERSION", 50, 115},
+ #endif
+ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID
+ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID},
+ #else
+ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101},
+ #endif
+ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE
+ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE},
+ #else
+ {"UNSUPPORTED_ENTRY_TYPE", 50, 102},
+ #endif
+ #ifdef CT_R_UNSUPPORTED_VERSION
+ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION},
+ #else
+ {"UNSUPPORTED_VERSION", 50, 103},
+ #endif
+ #ifdef DH_R_BAD_FFC_PARAMETERS
+ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS},
+ #else
+ {"BAD_FFC_PARAMETERS", 5, 127},
+ #endif
+ #ifdef DH_R_BAD_GENERATOR
+ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR},
+ #else
+ {"BAD_GENERATOR", 5, 101},
+ #endif
+ #ifdef DH_R_BN_DECODE_ERROR
+ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR},
+ #else
+ {"BN_DECODE_ERROR", 5, 109},
+ #endif
+ #ifdef DH_R_BN_ERROR
+ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR},
+ #else
+ {"BN_ERROR", 5, 106},
+ #endif
+ #ifdef DH_R_CHECK_INVALID_J_VALUE
+ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE},
+ #else
+ {"CHECK_INVALID_J_VALUE", 5, 115},
+ #endif
+ #ifdef DH_R_CHECK_INVALID_Q_VALUE
+ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE},
+ #else
+ {"CHECK_INVALID_Q_VALUE", 5, 116},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_INVALID
+ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID},
+ #else
+ {"CHECK_PUBKEY_INVALID", 5, 122},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE
+ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE},
+ #else
+ {"CHECK_PUBKEY_TOO_LARGE", 5, 123},
+ #endif
+ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL
+ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL},
+ #else
+ {"CHECK_PUBKEY_TOO_SMALL", 5, 124},
+ #endif
+ #ifdef DH_R_CHECK_P_NOT_PRIME
+ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME},
+ #else
+ {"CHECK_P_NOT_PRIME", 5, 117},
+ #endif
+ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME
+ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME},
+ #else
+ {"CHECK_P_NOT_SAFE_PRIME", 5, 118},
+ #endif
+ #ifdef DH_R_CHECK_Q_NOT_PRIME
+ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME},
+ #else
+ {"CHECK_Q_NOT_PRIME", 5, 119},
+ #endif
+ #ifdef DH_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 5, 104},
+ #endif
+ #ifdef DH_R_INVALID_PARAMETER_NAME
+ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME},
+ #else
+ {"INVALID_PARAMETER_NAME", 5, 110},
+ #endif
+ #ifdef DH_R_INVALID_PARAMETER_NID
+ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID},
+ #else
+ {"INVALID_PARAMETER_NID", 5, 114},
+ #endif
+ #ifdef DH_R_INVALID_PUBKEY
+ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY},
+ #else
+ {"INVALID_PUBKEY", 5, 102},
+ #endif
+ #ifdef DH_R_INVALID_SECRET
+ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET},
+ #else
+ {"INVALID_SECRET", 5, 128},
+ #endif
+ #ifdef DH_R_KDF_PARAMETER_ERROR
+ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
+ #else
+ {"KDF_PARAMETER_ERROR", 5, 112},
+ #endif
+ #ifdef DH_R_KEYS_NOT_SET
+ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET},
+ #else
+ {"KEYS_NOT_SET", 5, 108},
+ #endif
+ #ifdef DH_R_MISSING_PUBKEY
+ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY},
+ #else
+ {"MISSING_PUBKEY", 5, 125},
+ #endif
+ #ifdef DH_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 5, 103},
+ #endif
+ #ifdef DH_R_MODULUS_TOO_SMALL
+ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL},
+ #else
+ {"MODULUS_TOO_SMALL", 5, 126},
+ #endif
+ #ifdef DH_R_NOT_SUITABLE_GENERATOR
+ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR},
+ #else
+ {"NOT_SUITABLE_GENERATOR", 5, 120},
+ #endif
+ #ifdef DH_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 5, 107},
+ #endif
+ #ifdef DH_R_NO_PRIVATE_VALUE
+ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE},
+ #else
+ {"NO_PRIVATE_VALUE", 5, 100},
+ #endif
+ #ifdef DH_R_PARAMETER_ENCODING_ERROR
+ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR},
+ #else
+ {"PARAMETER_ENCODING_ERROR", 5, 105},
+ #endif
+ #ifdef DH_R_PEER_KEY_ERROR
+ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR},
+ #else
+ {"PEER_KEY_ERROR", 5, 111},
+ #endif
+ #ifdef DH_R_SHARED_INFO_ERROR
+ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
+ #else
+ {"SHARED_INFO_ERROR", 5, 113},
+ #endif
+ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR
+ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR},
+ #else
+ {"UNABLE_TO_CHECK_GENERATOR", 5, 121},
+ #endif
+ #ifdef DSA_R_BAD_FFC_PARAMETERS
+ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS},
+ #else
+ {"BAD_FFC_PARAMETERS", 10, 114},
+ #endif
+ #ifdef DSA_R_BAD_Q_VALUE
+ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE},
+ #else
+ {"BAD_Q_VALUE", 10, 102},
+ #endif
+ #ifdef DSA_R_BN_DECODE_ERROR
+ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR},
+ #else
+ {"BN_DECODE_ERROR", 10, 108},
+ #endif
+ #ifdef DSA_R_BN_ERROR
+ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR},
+ #else
+ {"BN_ERROR", 10, 109},
+ #endif
+ #ifdef DSA_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 10, 104},
+ #endif
+ #ifdef DSA_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 10, 106},
+ #endif
+ #ifdef DSA_R_INVALID_PARAMETERS
+ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS},
+ #else
+ {"INVALID_PARAMETERS", 10, 112},
+ #endif
+ #ifdef DSA_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 10, 101},
+ #endif
+ #ifdef DSA_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 10, 111},
+ #endif
+ #ifdef DSA_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 10, 103},
+ #endif
+ #ifdef DSA_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 10, 107},
+ #endif
+ #ifdef DSA_R_PARAMETER_ENCODING_ERROR
+ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR},
+ #else
+ {"PARAMETER_ENCODING_ERROR", 10, 105},
+ #endif
+ #ifdef DSA_R_P_NOT_PRIME
+ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME},
+ #else
+ {"P_NOT_PRIME", 10, 115},
+ #endif
+ #ifdef DSA_R_Q_NOT_PRIME
+ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME},
+ #else
+ {"Q_NOT_PRIME", 10, 113},
+ #endif
+ #ifdef DSA_R_SEED_LEN_SMALL
+ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL},
+ #else
+ {"SEED_LEN_SMALL", 10, 110},
+ #endif
+ #ifdef DSO_R_CTRL_FAILED
+ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED},
+ #else
+ {"CTRL_FAILED", 37, 100},
+ #endif
+ #ifdef DSO_R_DSO_ALREADY_LOADED
+ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED},
+ #else
+ {"DSO_ALREADY_LOADED", 37, 110},
+ #endif
+ #ifdef DSO_R_EMPTY_FILE_STRUCTURE
+ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE},
+ #else
+ {"EMPTY_FILE_STRUCTURE", 37, 113},
+ #endif
+ #ifdef DSO_R_FAILURE
+ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE},
+ #else
+ {"FAILURE", 37, 114},
+ #endif
+ #ifdef DSO_R_FILENAME_TOO_BIG
+ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG},
+ #else
+ {"FILENAME_TOO_BIG", 37, 101},
+ #endif
+ #ifdef DSO_R_FINISH_FAILED
+ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED},
+ #else
+ {"FINISH_FAILED", 37, 102},
+ #endif
+ #ifdef DSO_R_INCORRECT_FILE_SYNTAX
+ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX},
+ #else
+ {"INCORRECT_FILE_SYNTAX", 37, 115},
+ #endif
+ #ifdef DSO_R_LOAD_FAILED
+ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED},
+ #else
+ {"LOAD_FAILED", 37, 103},
+ #endif
+ #ifdef DSO_R_NAME_TRANSLATION_FAILED
+ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED},
+ #else
+ {"NAME_TRANSLATION_FAILED", 37, 109},
+ #endif
+ #ifdef DSO_R_NO_FILENAME
+ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME},
+ #else
+ {"NO_FILENAME", 37, 111},
+ #endif
+ #ifdef DSO_R_NULL_HANDLE
+ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE},
+ #else
+ {"NULL_HANDLE", 37, 104},
+ #endif
+ #ifdef DSO_R_SET_FILENAME_FAILED
+ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED},
+ #else
+ {"SET_FILENAME_FAILED", 37, 112},
+ #endif
+ #ifdef DSO_R_STACK_ERROR
+ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR},
+ #else
+ {"STACK_ERROR", 37, 105},
+ #endif
+ #ifdef DSO_R_SYM_FAILURE
+ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE},
+ #else
+ {"SYM_FAILURE", 37, 106},
+ #endif
+ #ifdef DSO_R_UNLOAD_FAILED
+ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED},
+ #else
+ {"UNLOAD_FAILED", 37, 107},
+ #endif
+ #ifdef DSO_R_UNSUPPORTED
+ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED},
+ #else
+ {"UNSUPPORTED", 37, 108},
+ #endif
+ #ifdef EC_R_ASN1_ERROR
+ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR},
+ #else
+ {"ASN1_ERROR", 16, 115},
+ #endif
+ #ifdef EC_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 16, 156},
+ #endif
+ #ifdef EC_R_BIGNUM_OUT_OF_RANGE
+ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE},
+ #else
+ {"BIGNUM_OUT_OF_RANGE", 16, 144},
+ #endif
+ #ifdef EC_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 16, 100},
+ #endif
+ #ifdef EC_R_CANNOT_INVERT
+ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT},
+ #else
+ {"CANNOT_INVERT", 16, 165},
+ #endif
+ #ifdef EC_R_COORDINATES_OUT_OF_RANGE
+ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE},
+ #else
+ {"COORDINATES_OUT_OF_RANGE", 16, 146},
+ #endif
+ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH
+ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH},
+ #else
+ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160},
+ #endif
+ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA
+ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA},
+ #else
+ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170},
+ #endif
+ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING
+ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING},
+ #else
+ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159},
+ #endif
+ #ifdef EC_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 16, 142},
+ #endif
+ #ifdef EC_R_DISCRIMINANT_IS_ZERO
+ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO},
+ #else
+ {"DISCRIMINANT_IS_ZERO", 16, 118},
+ #endif
+ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE
+ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE},
+ #else
+ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119},
+ #endif
+ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY
+ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY},
+ #else
+ {"FAILED_MAKING_PUBLIC_KEY", 16, 166},
+ #endif
+ #ifdef EC_R_FIELD_TOO_LARGE
+ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE},
+ #else
+ {"FIELD_TOO_LARGE", 16, 143},
+ #endif
+ #ifdef EC_R_GF2M_NOT_SUPPORTED
+ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED},
+ #else
+ {"GF2M_NOT_SUPPORTED", 16, 147},
+ #endif
+ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE
+ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE},
+ #else
+ {"GROUP2PKPARAMETERS_FAILURE", 16, 120},
+ #endif
+ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE
+ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE},
+ #else
+ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121},
+ #endif
+ #ifdef EC_R_INCOMPATIBLE_OBJECTS
+ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS},
+ #else
+ {"INCOMPATIBLE_OBJECTS", 16, 101},
+ #endif
+ #ifdef EC_R_INVALID_A
+ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A},
+ #else
+ {"INVALID_A", 16, 168},
+ #endif
+ #ifdef EC_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 16, 112},
+ #endif
+ #ifdef EC_R_INVALID_B
+ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B},
+ #else
+ {"INVALID_B", 16, 169},
+ #endif
+ #ifdef EC_R_INVALID_COFACTOR
+ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR},
+ #else
+ {"INVALID_COFACTOR", 16, 171},
+ #endif
+ #ifdef EC_R_INVALID_COMPRESSED_POINT
+ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT},
+ #else
+ {"INVALID_COMPRESSED_POINT", 16, 110},
+ #endif
+ #ifdef EC_R_INVALID_COMPRESSION_BIT
+ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT},
+ #else
+ {"INVALID_COMPRESSION_BIT", 16, 109},
+ #endif
+ #ifdef EC_R_INVALID_CURVE
+ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE},
+ #else
+ {"INVALID_CURVE", 16, 141},
+ #endif
+ #ifdef EC_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 16, 151},
+ #endif
+ #ifdef EC_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 16, 138},
+ #endif
+ #ifdef EC_R_INVALID_ENCODING
+ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING},
+ #else
+ {"INVALID_ENCODING", 16, 102},
+ #endif
+ #ifdef EC_R_INVALID_FIELD
+ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD},
+ #else
+ {"INVALID_FIELD", 16, 103},
+ #endif
+ #ifdef EC_R_INVALID_FORM
+ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM},
+ #else
+ {"INVALID_FORM", 16, 104},
+ #endif
+ #ifdef EC_R_INVALID_GENERATOR
+ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR},
+ #else
+ {"INVALID_GENERATOR", 16, 173},
+ #endif
+ #ifdef EC_R_INVALID_GROUP_ORDER
+ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER},
+ #else
+ {"INVALID_GROUP_ORDER", 16, 122},
+ #endif
+ #ifdef EC_R_INVALID_KEY
+ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY},
+ #else
+ {"INVALID_KEY", 16, 116},
+ #endif
+ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION
+ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION},
+ #else
+ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174},
+ #endif
+ #ifdef EC_R_INVALID_OUTPUT_LENGTH
+ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH},
+ #else
+ {"INVALID_OUTPUT_LENGTH", 16, 161},
+ #endif
+ #ifdef EC_R_INVALID_P
+ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P},
+ #else
+ {"INVALID_P", 16, 172},
+ #endif
+ #ifdef EC_R_INVALID_PEER_KEY
+ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY},
+ #else
+ {"INVALID_PEER_KEY", 16, 133},
+ #endif
+ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS
+ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS},
+ #else
+ {"INVALID_PENTANOMIAL_BASIS", 16, 132},
+ #endif
+ #ifdef EC_R_INVALID_PRIVATE_KEY
+ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY},
+ #else
+ {"INVALID_PRIVATE_KEY", 16, 123},
+ #endif
+ #ifdef EC_R_INVALID_SEED
+ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED},
+ #else
+ {"INVALID_SEED", 16, 175},
+ #endif
+ #ifdef EC_R_INVALID_TRINOMIAL_BASIS
+ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS},
+ #else
+ {"INVALID_TRINOMIAL_BASIS", 16, 137},
+ #endif
+ #ifdef EC_R_KDF_PARAMETER_ERROR
+ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR},
+ #else
+ {"KDF_PARAMETER_ERROR", 16, 148},
+ #endif
+ #ifdef EC_R_KEYS_NOT_SET
+ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET},
+ #else
+ {"KEYS_NOT_SET", 16, 140},
+ #endif
+ #ifdef EC_R_LADDER_POST_FAILURE
+ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE},
+ #else
+ {"LADDER_POST_FAILURE", 16, 136},
+ #endif
+ #ifdef EC_R_LADDER_PRE_FAILURE
+ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE},
+ #else
+ {"LADDER_PRE_FAILURE", 16, 153},
+ #endif
+ #ifdef EC_R_LADDER_STEP_FAILURE
+ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE},
+ #else
+ {"LADDER_STEP_FAILURE", 16, 162},
+ #endif
+ #ifdef EC_R_MISSING_OID
+ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID},
+ #else
+ {"MISSING_OID", 16, 167},
+ #endif
+ #ifdef EC_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 16, 124},
+ #endif
+ #ifdef EC_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 16, 125},
+ #endif
+ #ifdef EC_R_NEED_NEW_SETUP_VALUES
+ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES},
+ #else
+ {"NEED_NEW_SETUP_VALUES", 16, 157},
+ #endif
+ #ifdef EC_R_NOT_A_NIST_PRIME
+ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME},
+ #else
+ {"NOT_A_NIST_PRIME", 16, 135},
+ #endif
+ #ifdef EC_R_NOT_IMPLEMENTED
+ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED},
+ #else
+ {"NOT_IMPLEMENTED", 16, 126},
+ #endif
+ #ifdef EC_R_NOT_INITIALIZED
+ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED},
+ #else
+ {"NOT_INITIALIZED", 16, 111},
+ #endif
+ #ifdef EC_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 16, 139},
+ #endif
+ #ifdef EC_R_NO_PRIVATE_VALUE
+ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE},
+ #else
+ {"NO_PRIVATE_VALUE", 16, 154},
+ #endif
+ #ifdef EC_R_OPERATION_NOT_SUPPORTED
+ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED},
+ #else
+ {"OPERATION_NOT_SUPPORTED", 16, 152},
+ #endif
+ #ifdef EC_R_PASSED_NULL_PARAMETER
+ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER},
+ #else
+ {"PASSED_NULL_PARAMETER", 16, 134},
+ #endif
+ #ifdef EC_R_PEER_KEY_ERROR
+ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR},
+ #else
+ {"PEER_KEY_ERROR", 16, 149},
+ #endif
+ #ifdef EC_R_POINT_ARITHMETIC_FAILURE
+ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE},
+ #else
+ {"POINT_ARITHMETIC_FAILURE", 16, 155},
+ #endif
+ #ifdef EC_R_POINT_AT_INFINITY
+ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY},
+ #else
+ {"POINT_AT_INFINITY", 16, 106},
+ #endif
+ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE
+ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE},
+ #else
+ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163},
+ #endif
+ #ifdef EC_R_POINT_IS_NOT_ON_CURVE
+ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE},
+ #else
+ {"POINT_IS_NOT_ON_CURVE", 16, 107},
+ #endif
+ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED
+ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED},
+ #else
+ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158},
+ #endif
+ #ifdef EC_R_SHARED_INFO_ERROR
+ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR},
+ #else
+ {"SHARED_INFO_ERROR", 16, 150},
+ #endif
+ #ifdef EC_R_SLOT_FULL
+ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL},
+ #else
+ {"SLOT_FULL", 16, 108},
+ #endif
+ #ifdef EC_R_UNDEFINED_GENERATOR
+ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR},
+ #else
+ {"UNDEFINED_GENERATOR", 16, 113},
+ #endif
+ #ifdef EC_R_UNDEFINED_ORDER
+ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER},
+ #else
+ {"UNDEFINED_ORDER", 16, 128},
+ #endif
+ #ifdef EC_R_UNKNOWN_COFACTOR
+ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR},
+ #else
+ {"UNKNOWN_COFACTOR", 16, 164},
+ #endif
+ #ifdef EC_R_UNKNOWN_GROUP
+ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP},
+ #else
+ {"UNKNOWN_GROUP", 16, 129},
+ #endif
+ #ifdef EC_R_UNKNOWN_ORDER
+ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER},
+ #else
+ {"UNKNOWN_ORDER", 16, 114},
+ #endif
+ #ifdef EC_R_UNSUPPORTED_FIELD
+ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD},
+ #else
+ {"UNSUPPORTED_FIELD", 16, 131},
+ #endif
+ #ifdef EC_R_WRONG_CURVE_PARAMETERS
+ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS},
+ #else
+ {"WRONG_CURVE_PARAMETERS", 16, 145},
+ #endif
+ #ifdef EC_R_WRONG_ORDER
+ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER},
+ #else
+ {"WRONG_ORDER", 16, 130},
+ #endif
+ #ifdef ENGINE_R_ALREADY_LOADED
+ {"ALREADY_LOADED", ERR_LIB_ENGINE, ENGINE_R_ALREADY_LOADED},
+ #else
+ {"ALREADY_LOADED", 38, 100},
+ #endif
+ #ifdef ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER
+ {"ARGUMENT_IS_NOT_A_NUMBER", ERR_LIB_ENGINE, ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER},
+ #else
+ {"ARGUMENT_IS_NOT_A_NUMBER", 38, 133},
+ #endif
+ #ifdef ENGINE_R_CMD_NOT_EXECUTABLE
+ {"CMD_NOT_EXECUTABLE", ERR_LIB_ENGINE, ENGINE_R_CMD_NOT_EXECUTABLE},
+ #else
+ {"CMD_NOT_EXECUTABLE", 38, 134},
+ #endif
+ #ifdef ENGINE_R_COMMAND_TAKES_INPUT
+ {"COMMAND_TAKES_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_INPUT},
+ #else
+ {"COMMAND_TAKES_INPUT", 38, 135},
+ #endif
+ #ifdef ENGINE_R_COMMAND_TAKES_NO_INPUT
+ {"COMMAND_TAKES_NO_INPUT", ERR_LIB_ENGINE, ENGINE_R_COMMAND_TAKES_NO_INPUT},
+ #else
+ {"COMMAND_TAKES_NO_INPUT", 38, 136},
+ #endif
+ #ifdef ENGINE_R_CONFLICTING_ENGINE_ID
+ {"CONFLICTING_ENGINE_ID", ERR_LIB_ENGINE, ENGINE_R_CONFLICTING_ENGINE_ID},
+ #else
+ {"CONFLICTING_ENGINE_ID", 38, 103},
+ #endif
+ #ifdef ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED
+ {"CTRL_COMMAND_NOT_IMPLEMENTED", ERR_LIB_ENGINE, ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_COMMAND_NOT_IMPLEMENTED", 38, 119},
+ #endif
+ #ifdef ENGINE_R_DSO_FAILURE
+ {"DSO_FAILURE", ERR_LIB_ENGINE, ENGINE_R_DSO_FAILURE},
+ #else
+ {"DSO_FAILURE", 38, 104},
+ #endif
+ #ifdef ENGINE_R_DSO_NOT_FOUND
+ {"DSO_NOT_FOUND", ERR_LIB_ENGINE, ENGINE_R_DSO_NOT_FOUND},
+ #else
+ {"DSO_NOT_FOUND", 38, 132},
+ #endif
+ #ifdef ENGINE_R_ENGINES_SECTION_ERROR
+ {"ENGINES_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINES_SECTION_ERROR},
+ #else
+ {"ENGINES_SECTION_ERROR", 38, 148},
+ #endif
+ #ifdef ENGINE_R_ENGINE_CONFIGURATION_ERROR
+ {"ENGINE_CONFIGURATION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_CONFIGURATION_ERROR},
+ #else
+ {"ENGINE_CONFIGURATION_ERROR", 38, 102},
+ #endif
+ #ifdef ENGINE_R_ENGINE_IS_NOT_IN_LIST
+ {"ENGINE_IS_NOT_IN_LIST", ERR_LIB_ENGINE, ENGINE_R_ENGINE_IS_NOT_IN_LIST},
+ #else
+ {"ENGINE_IS_NOT_IN_LIST", 38, 105},
+ #endif
+ #ifdef ENGINE_R_ENGINE_SECTION_ERROR
+ {"ENGINE_SECTION_ERROR", ERR_LIB_ENGINE, ENGINE_R_ENGINE_SECTION_ERROR},
+ #else
+ {"ENGINE_SECTION_ERROR", 38, 149},
+ #endif
+ #ifdef ENGINE_R_FAILED_LOADING_PRIVATE_KEY
+ {"FAILED_LOADING_PRIVATE_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PRIVATE_KEY},
+ #else
+ {"FAILED_LOADING_PRIVATE_KEY", 38, 128},
+ #endif
+ #ifdef ENGINE_R_FAILED_LOADING_PUBLIC_KEY
+ {"FAILED_LOADING_PUBLIC_KEY", ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PUBLIC_KEY},
+ #else
+ {"FAILED_LOADING_PUBLIC_KEY", 38, 129},
+ #endif
+ #ifdef ENGINE_R_FINISH_FAILED
+ {"FINISH_FAILED", ERR_LIB_ENGINE, ENGINE_R_FINISH_FAILED},
+ #else
+ {"FINISH_FAILED", 38, 106},
+ #endif
+ #ifdef ENGINE_R_ID_OR_NAME_MISSING
+ {"ID_OR_NAME_MISSING", ERR_LIB_ENGINE, ENGINE_R_ID_OR_NAME_MISSING},
+ #else
+ {"ID_OR_NAME_MISSING", 38, 108},
+ #endif
+ #ifdef ENGINE_R_INIT_FAILED
+ {"INIT_FAILED", ERR_LIB_ENGINE, ENGINE_R_INIT_FAILED},
+ #else
+ {"INIT_FAILED", 38, 109},
+ #endif
+ #ifdef ENGINE_R_INTERNAL_LIST_ERROR
+ {"INTERNAL_LIST_ERROR", ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR},
+ #else
+ {"INTERNAL_LIST_ERROR", 38, 110},
+ #endif
+ #ifdef ENGINE_R_INVALID_ARGUMENT
+ {"INVALID_ARGUMENT", ERR_LIB_ENGINE, ENGINE_R_INVALID_ARGUMENT},
+ #else
+ {"INVALID_ARGUMENT", 38, 143},
+ #endif
+ #ifdef ENGINE_R_INVALID_CMD_NAME
+ {"INVALID_CMD_NAME", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NAME},
+ #else
+ {"INVALID_CMD_NAME", 38, 137},
+ #endif
+ #ifdef ENGINE_R_INVALID_CMD_NUMBER
+ {"INVALID_CMD_NUMBER", ERR_LIB_ENGINE, ENGINE_R_INVALID_CMD_NUMBER},
+ #else
+ {"INVALID_CMD_NUMBER", 38, 138},
+ #endif
+ #ifdef ENGINE_R_INVALID_INIT_VALUE
+ {"INVALID_INIT_VALUE", ERR_LIB_ENGINE, ENGINE_R_INVALID_INIT_VALUE},
+ #else
+ {"INVALID_INIT_VALUE", 38, 151},
+ #endif
+ #ifdef ENGINE_R_INVALID_STRING
+ {"INVALID_STRING", ERR_LIB_ENGINE, ENGINE_R_INVALID_STRING},
+ #else
+ {"INVALID_STRING", 38, 150},
+ #endif
+ #ifdef ENGINE_R_NOT_INITIALISED
+ {"NOT_INITIALISED", ERR_LIB_ENGINE, ENGINE_R_NOT_INITIALISED},
+ #else
+ {"NOT_INITIALISED", 38, 117},
+ #endif
+ #ifdef ENGINE_R_NOT_LOADED
+ {"NOT_LOADED", ERR_LIB_ENGINE, ENGINE_R_NOT_LOADED},
+ #else
+ {"NOT_LOADED", 38, 112},
+ #endif
+ #ifdef ENGINE_R_NO_CONTROL_FUNCTION
+ {"NO_CONTROL_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_CONTROL_FUNCTION},
+ #else
+ {"NO_CONTROL_FUNCTION", 38, 120},
+ #endif
+ #ifdef ENGINE_R_NO_INDEX
+ {"NO_INDEX", ERR_LIB_ENGINE, ENGINE_R_NO_INDEX},
+ #else
+ {"NO_INDEX", 38, 144},
+ #endif
+ #ifdef ENGINE_R_NO_LOAD_FUNCTION
+ {"NO_LOAD_FUNCTION", ERR_LIB_ENGINE, ENGINE_R_NO_LOAD_FUNCTION},
+ #else
+ {"NO_LOAD_FUNCTION", 38, 125},
+ #endif
+ #ifdef ENGINE_R_NO_REFERENCE
+ {"NO_REFERENCE", ERR_LIB_ENGINE, ENGINE_R_NO_REFERENCE},
+ #else
+ {"NO_REFERENCE", 38, 130},
+ #endif
+ #ifdef ENGINE_R_NO_SUCH_ENGINE
+ {"NO_SUCH_ENGINE", ERR_LIB_ENGINE, ENGINE_R_NO_SUCH_ENGINE},
+ #else
+ {"NO_SUCH_ENGINE", 38, 116},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_CIPHER
+ {"UNIMPLEMENTED_CIPHER", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_CIPHER},
+ #else
+ {"UNIMPLEMENTED_CIPHER", 38, 146},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_DIGEST
+ {"UNIMPLEMENTED_DIGEST", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_DIGEST},
+ #else
+ {"UNIMPLEMENTED_DIGEST", 38, 147},
+ #endif
+ #ifdef ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD
+ {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", ERR_LIB_ENGINE, ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD},
+ #else
+ {"UNIMPLEMENTED_PUBLIC_KEY_METHOD", 38, 101},
+ #endif
+ #ifdef ENGINE_R_VERSION_INCOMPATIBILITY
+ {"VERSION_INCOMPATIBILITY", ERR_LIB_ENGINE, ENGINE_R_VERSION_INCOMPATIBILITY},
+ #else
+ {"VERSION_INCOMPATIBILITY", 38, 145},
+ #endif
+ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST
+ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST},
+ #else
+ {"EMPTY_ESS_CERT_ID_LIST", 54, 107},
+ #endif
+ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR
+ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR},
+ #else
+ {"ESS_CERT_DIGEST_ERROR", 54, 103},
+ #endif
+ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND
+ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND},
+ #else
+ {"ESS_CERT_ID_NOT_FOUND", 54, 104},
+ #endif
+ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER
+ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER},
+ #else
+ {"ESS_CERT_ID_WRONG_ORDER", 54, 105},
+ #endif
+ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN
+ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN},
+ #else
+ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106},
+ #endif
+ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR
+ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR},
+ #else
+ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102},
+ #endif
+ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR
+ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR},
+ #else
+ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100},
+ #endif
+ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR
+ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR},
+ #else
+ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101},
+ #endif
+ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE
+ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE},
+ #else
+ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108},
+ #endif
+ #ifdef EVP_R_AES_KEY_SETUP_FAILED
+ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED},
+ #else
+ {"AES_KEY_SETUP_FAILED", 6, 143},
+ #endif
+ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED
+ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED},
+ #else
+ {"ARIA_KEY_SETUP_FAILED", 6, 176},
+ #endif
+ #ifdef EVP_R_BAD_ALGORITHM_NAME
+ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME},
+ #else
+ {"BAD_ALGORITHM_NAME", 6, 200},
+ #endif
+ #ifdef EVP_R_BAD_DECRYPT
+ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT},
+ #else
+ {"BAD_DECRYPT", 6, 100},
+ #endif
+ #ifdef EVP_R_BAD_KEY_LENGTH
+ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH},
+ #else
+ {"BAD_KEY_LENGTH", 6, 195},
+ #endif
+ #ifdef EVP_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 6, 155},
+ #endif
+ #ifdef EVP_R_CACHE_CONSTANTS_FAILED
+ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED},
+ #else
+ {"CACHE_CONSTANTS_FAILED", 6, 225},
+ #endif
+ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED
+ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED},
+ #else
+ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157},
+ #endif
+ #ifdef EVP_R_CANNOT_GET_PARAMETERS
+ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS},
+ #else
+ {"CANNOT_GET_PARAMETERS", 6, 197},
+ #endif
+ #ifdef EVP_R_CANNOT_SET_PARAMETERS
+ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS},
+ #else
+ {"CANNOT_SET_PARAMETERS", 6, 198},
+ #endif
+ #ifdef EVP_R_CIPHER_NOT_GCM_MODE
+ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE},
+ #else
+ {"CIPHER_NOT_GCM_MODE", 6, 184},
+ #endif
+ #ifdef EVP_R_CIPHER_PARAMETER_ERROR
+ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR},
+ #else
+ {"CIPHER_PARAMETER_ERROR", 6, 122},
+ #endif
+ #ifdef EVP_R_COMMAND_NOT_SUPPORTED
+ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED},
+ #else
+ {"COMMAND_NOT_SUPPORTED", 6, 147},
+ #endif
+ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME
+ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME},
+ #else
+ {"CONFLICTING_ALGORITHM_NAME", 6, 201},
+ #endif
+ #ifdef EVP_R_COPY_ERROR
+ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR},
+ #else
+ {"COPY_ERROR", 6, 173},
+ #endif
+ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED
+ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_NOT_IMPLEMENTED", 6, 132},
+ #endif
+ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED
+ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED},
+ #else
+ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133},
+ #endif
+ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH
+ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH},
+ #else
+ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138},
+ #endif
+ #ifdef EVP_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 6, 114},
+ #endif
+ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR
+ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR},
+ #else
+ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210},
+ #endif
+ #ifdef EVP_R_DIFFERENT_KEY_TYPES
+ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES},
+ #else
+ {"DIFFERENT_KEY_TYPES", 6, 101},
+ #endif
+ #ifdef EVP_R_DIFFERENT_PARAMETERS
+ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS},
+ #else
+ {"DIFFERENT_PARAMETERS", 6, 153},
+ #endif
+ #ifdef EVP_R_ERROR_LOADING_SECTION
+ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION},
+ #else
+ {"ERROR_LOADING_SECTION", 6, 165},
+ #endif
+ #ifdef EVP_R_ERROR_SETTING_FIPS_MODE
+ {"ERROR_SETTING_FIPS_MODE", ERR_LIB_EVP, EVP_R_ERROR_SETTING_FIPS_MODE},
+ #else
+ {"ERROR_SETTING_FIPS_MODE", 6, 166},
+ #endif
+ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY
+ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY},
+ #else
+ {"EXPECTING_AN_HMAC_KEY", 6, 174},
+ #endif
+ #ifdef EVP_R_EXPECTING_AN_RSA_KEY
+ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY},
+ #else
+ {"EXPECTING_AN_RSA_KEY", 6, 127},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_DH_KEY
+ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY},
+ #else
+ {"EXPECTING_A_DH_KEY", 6, 128},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_DSA_KEY
+ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY},
+ #else
+ {"EXPECTING_A_DSA_KEY", 6, 129},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_ECX_KEY
+ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY},
+ #else
+ {"EXPECTING_A_ECX_KEY", 6, 219},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_EC_KEY
+ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY},
+ #else
+ {"EXPECTING_A_EC_KEY", 6, 142},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY
+ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY},
+ #else
+ {"EXPECTING_A_POLY1305_KEY", 6, 164},
+ #endif
+ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY
+ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY},
+ #else
+ {"EXPECTING_A_SIPHASH_KEY", 6, 175},
+ #endif
+ #ifdef EVP_R_FINAL_ERROR
+ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR},
+ #else
+ {"FINAL_ERROR", 6, 188},
+ #endif
+ #ifdef EVP_R_FIPS_MODE_NOT_SUPPORTED
+ {"FIPS_MODE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_FIPS_MODE_NOT_SUPPORTED},
+ #else
+ {"FIPS_MODE_NOT_SUPPORTED", 6, 167},
+ #endif
+ #ifdef EVP_R_GENERATE_ERROR
+ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR},
+ #else
+ {"GENERATE_ERROR", 6, 214},
+ #endif
+ #ifdef EVP_R_GET_RAW_KEY_FAILED
+ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
+ #else
+ {"GET_RAW_KEY_FAILED", 6, 182},
+ #endif
+ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS
+ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS},
+ #else
+ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171},
+ #endif
+ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS
+ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS},
+ #else
+ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204},
+ #endif
+ #ifdef EVP_R_INACCESSIBLE_KEY
+ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY},
+ #else
+ {"INACCESSIBLE_KEY", 6, 203},
+ #endif
+ #ifdef EVP_R_INITIALIZATION_ERROR
+ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR},
+ #else
+ {"INITIALIZATION_ERROR", 6, 134},
+ #endif
+ #ifdef EVP_R_INPUT_NOT_INITIALIZED
+ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED},
+ #else
+ {"INPUT_NOT_INITIALIZED", 6, 111},
+ #endif
+ #ifdef EVP_R_INVALID_CUSTOM_LENGTH
+ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH},
+ #else
+ {"INVALID_CUSTOM_LENGTH", 6, 185},
+ #endif
+ #ifdef EVP_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 6, 152},
+ #endif
+ #ifdef EVP_R_INVALID_FIPS_MODE
+ {"INVALID_FIPS_MODE", ERR_LIB_EVP, EVP_R_INVALID_FIPS_MODE},
+ #else
+ {"INVALID_FIPS_MODE", 6, 168},
+ #endif
+ #ifdef EVP_R_INVALID_IV_LENGTH
+ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH},
+ #else
+ {"INVALID_IV_LENGTH", 6, 194},
+ #endif
+ #ifdef EVP_R_INVALID_KEY
+ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY},
+ #else
+ {"INVALID_KEY", 6, 163},
+ #endif
+ #ifdef EVP_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 6, 130},
+ #endif
+ #ifdef EVP_R_INVALID_LENGTH
+ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH},
+ #else
+ {"INVALID_LENGTH", 6, 221},
+ #endif
+ #ifdef EVP_R_INVALID_NULL_ALGORITHM
+ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM},
+ #else
+ {"INVALID_NULL_ALGORITHM", 6, 218},
+ #endif
+ #ifdef EVP_R_INVALID_OPERATION
+ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION},
+ #else
+ {"INVALID_OPERATION", 6, 148},
+ #endif
+ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS
+ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS},
+ #else
+ {"INVALID_PROVIDER_FUNCTIONS", 6, 193},
+ #endif
+ #ifdef EVP_R_INVALID_SALT_LENGTH
+ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH},
+ #else
+ {"INVALID_SALT_LENGTH", 6, 186},
+ #endif
+ #ifdef EVP_R_INVALID_SECRET_LENGTH
+ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH},
+ #else
+ {"INVALID_SECRET_LENGTH", 6, 223},
+ #endif
+ #ifdef EVP_R_INVALID_SEED_LENGTH
+ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH},
+ #else
+ {"INVALID_SEED_LENGTH", 6, 220},
+ #endif
+ #ifdef EVP_R_INVALID_VALUE
+ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE},
+ #else
+ {"INVALID_VALUE", 6, 222},
+ #endif
+ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE
+ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE},
+ #else
+ {"KEYMGMT_EXPORT_FAILURE", 6, 205},
+ #endif
+ #ifdef EVP_R_KEY_SETUP_FAILED
+ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED},
+ #else
+ {"KEY_SETUP_FAILED", 6, 180},
+ #endif
+ #ifdef EVP_R_LOCKING_NOT_SUPPORTED
+ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED},
+ #else
+ {"LOCKING_NOT_SUPPORTED", 6, 213},
+ #endif
+ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED
+ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED},
+ #else
+ {"MEMORY_LIMIT_EXCEEDED", 6, 172},
+ #endif
+ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL
+ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL},
+ #else
+ {"MESSAGE_DIGEST_IS_NULL", 6, 159},
+ #endif
+ #ifdef EVP_R_METHOD_NOT_SUPPORTED
+ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED},
+ #else
+ {"METHOD_NOT_SUPPORTED", 6, 144},
+ #endif
+ #ifdef EVP_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 6, 103},
+ #endif
+ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX
+ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX},
+ #else
+ {"NOT_ABLE_TO_COPY_CTX", 6, 190},
+ #endif
+ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH
+ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH},
+ #else
+ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178},
+ #endif
+ #ifdef EVP_R_NO_CIPHER_SET
+ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET},
+ #else
+ {"NO_CIPHER_SET", 6, 131},
+ #endif
+ #ifdef EVP_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 6, 158},
+ #endif
+ #ifdef EVP_R_NO_DIGEST_SET
+ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET},
+ #else
+ {"NO_DIGEST_SET", 6, 139},
+ #endif
+ #ifdef EVP_R_NO_IMPORT_FUNCTION
+ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION},
+ #else
+ {"NO_IMPORT_FUNCTION", 6, 206},
+ #endif
+ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE
+ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE},
+ #else
+ {"NO_KEYMGMT_AVAILABLE", 6, 199},
+ #endif
+ #ifdef EVP_R_NO_KEYMGMT_PRESENT
+ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT},
+ #else
+ {"NO_KEYMGMT_PRESENT", 6, 196},
+ #endif
+ #ifdef EVP_R_NO_KEY_SET
+ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET},
+ #else
+ {"NO_KEY_SET", 6, 154},
+ #endif
+ #ifdef EVP_R_NO_OPERATION_SET
+ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET},
+ #else
+ {"NO_OPERATION_SET", 6, 149},
+ #endif
+ #ifdef EVP_R_NULL_MAC_PKEY_CTX
+ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX},
+ #else
+ {"NULL_MAC_PKEY_CTX", 6, 208},
+ #endif
+ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED
+ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED},
+ #else
+ {"ONLY_ONESHOT_SUPPORTED", 6, 177},
+ #endif
+ #ifdef EVP_R_OPERATION_NOT_INITIALIZED
+ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED},
+ #else
+ {"OPERATION_NOT_INITIALIZED", 6, 151},
+ #endif
+ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
+ #endif
+ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW
+ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW},
+ #else
+ {"OUTPUT_WOULD_OVERFLOW", 6, 202},
+ #endif
+ #ifdef EVP_R_PARAMETER_TOO_LARGE
+ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE},
+ #else
+ {"PARAMETER_TOO_LARGE", 6, 187},
+ #endif
+ #ifdef EVP_R_PARTIALLY_OVERLAPPING
+ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING},
+ #else
+ {"PARTIALLY_OVERLAPPING", 6, 162},
+ #endif
+ #ifdef EVP_R_PBKDF2_ERROR
+ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR},
+ #else
+ {"PBKDF2_ERROR", 6, 181},
+ #endif
+ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED
+ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED},
+ #else
+ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179},
+ #endif
+ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR
+ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR},
+ #else
+ {"PRIVATE_KEY_DECODE_ERROR", 6, 145},
+ #endif
+ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR
+ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR},
+ #else
+ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146},
+ #endif
+ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA
+ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA},
+ #else
+ {"PUBLIC_KEY_NOT_RSA", 6, 106},
+ #endif
+ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE
+ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE},
+ #else
+ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209},
+ #endif
+ #ifdef EVP_R_TOO_MANY_RECORDS
+ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS},
+ #else
+ {"TOO_MANY_RECORDS", 6, 183},
+ #endif
+ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING
+ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING},
+ #else
+ {"UNABLE_TO_ENABLE_LOCKING", 6, 212},
+ #endif
+ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE
+ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE},
+ #else
+ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215},
+ #endif
+ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH
+ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH},
+ #else
+ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216},
+ #endif
+ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT
+ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT},
+ #else
+ {"UNABLE_TO_LOCK_CONTEXT", 6, 211},
+ #endif
+ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS
+ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS},
+ #else
+ {"UNABLE_TO_SET_CALLBACKS", 6, 217},
+ #endif
+ #ifdef EVP_R_UNKNOWN_CIPHER
+ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
+ #else
+ {"UNKNOWN_CIPHER", 6, 160},
+ #endif
+ #ifdef EVP_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 6, 161},
+ #endif
+ #ifdef EVP_R_UNKNOWN_KEY_TYPE
+ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE},
+ #else
+ {"UNKNOWN_KEY_TYPE", 6, 207},
+ #endif
+ #ifdef EVP_R_UNKNOWN_OPTION
+ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
+ #else
+ {"UNKNOWN_OPTION", 6, 169},
+ #endif
+ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM
+ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM},
+ #else
+ {"UNKNOWN_PBE_ALGORITHM", 6, 121},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_ALGORITHM
+ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
+ #else
+ {"UNSUPPORTED_ALGORITHM", 6, 156},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 6, 107},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH
+ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH},
+ #else
+ {"UNSUPPORTED_KEYLENGTH", 6, 123},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION
+ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION},
+ #else
+ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE
+ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE},
+ #else
+ {"UNSUPPORTED_KEY_SIZE", 6, 108},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE
+ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE},
+ #else
+ {"UNSUPPORTED_KEY_TYPE", 6, 224},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
+ #else
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_PRF
+ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF},
+ #else
+ {"UNSUPPORTED_PRF", 6, 125},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM
+ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM},
+ #else
+ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118},
+ #endif
+ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE
+ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE},
+ #else
+ {"UNSUPPORTED_SALT_TYPE", 6, 126},
+ #endif
+ #ifdef EVP_R_UPDATE_ERROR
+ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR},
+ #else
+ {"UPDATE_ERROR", 6, 189},
+ #endif
+ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED
+ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED},
+ #else
+ {"WRAP_MODE_NOT_ALLOWED", 6, 170},
+ #endif
+ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH
+ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH},
+ #else
+ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109},
+ #endif
+ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE
+ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE},
+ #else
+ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191},
+ #endif
+ #ifdef EVP_R_XTS_DUPLICATED_KEYS
+ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS},
+ #else
+ {"XTS_DUPLICATED_KEYS", 6, 192},
+ #endif
+ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN
+ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN},
+ #else
+ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108},
+ #endif
+ #ifdef HTTP_R_CONNECT_FAILURE
+ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE},
+ #else
+ {"CONNECT_FAILURE", 61, 100},
+ #endif
+ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH
+ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH},
+ #else
+ {"ERROR_PARSING_ASN1_LENGTH", 61, 109},
+ #endif
+ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH
+ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH},
+ #else
+ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119},
+ #endif
+ #ifdef HTTP_R_ERROR_PARSING_URL
+ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL},
+ #else
+ {"ERROR_PARSING_URL", 61, 101},
+ #endif
+ #ifdef HTTP_R_ERROR_RECEIVING
+ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING},
+ #else
+ {"ERROR_RECEIVING", 61, 103},
+ #endif
+ #ifdef HTTP_R_ERROR_SENDING
+ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING},
+ #else
+ {"ERROR_SENDING", 61, 102},
+ #endif
+ #ifdef HTTP_R_FAILED_READING_DATA
+ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA},
+ #else
+ {"FAILED_READING_DATA", 61, 128},
+ #endif
+ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH
+ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH},
+ #else
+ {"INCONSISTENT_CONTENT_LENGTH", 61, 120},
+ #endif
+ #ifdef HTTP_R_INVALID_PORT_NUMBER
+ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER},
+ #else
+ {"INVALID_PORT_NUMBER", 61, 123},
+ #endif
+ #ifdef HTTP_R_INVALID_URL_PATH
+ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH},
+ #else
+ {"INVALID_URL_PATH", 61, 125},
+ #endif
+ #ifdef HTTP_R_INVALID_URL_SCHEME
+ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME},
+ #else
+ {"INVALID_URL_SCHEME", 61, 124},
+ #endif
+ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED
+ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED},
+ #else
+ {"MAX_RESP_LEN_EXCEEDED", 61, 117},
+ #endif
+ #ifdef HTTP_R_MISSING_ASN1_ENCODING
+ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING},
+ #else
+ {"MISSING_ASN1_ENCODING", 61, 110},
+ #endif
+ #ifdef HTTP_R_MISSING_CONTENT_TYPE
+ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE},
+ #else
+ {"MISSING_CONTENT_TYPE", 61, 121},
+ #endif
+ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION
+ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION},
+ #else
+ {"MISSING_REDIRECT_LOCATION", 61, 111},
+ #endif
+ #ifdef HTTP_R_RECEIVED_ERROR
+ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR},
+ #else
+ {"RECEIVED_ERROR", 61, 105},
+ #endif
+ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION
+ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION},
+ #else
+ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106},
+ #endif
+ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP
+ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP},
+ #else
+ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112},
+ #endif
+ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED
+ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED},
+ #else
+ {"REDIRECTION_NOT_ENABLED", 61, 116},
+ #endif
+ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG
+ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG},
+ #else
+ {"RESPONSE_LINE_TOO_LONG", 61, 113},
+ #endif
+ #ifdef HTTP_R_RESPONSE_PARSE_ERROR
+ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR},
+ #else
+ {"RESPONSE_PARSE_ERROR", 61, 104},
+ #endif
+ #ifdef HTTP_R_SOCK_NOT_SUPPORTED
+ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED},
+ #else
+ {"SOCK_NOT_SUPPORTED", 61, 122},
+ #endif
+ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED
+ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED},
+ #else
+ {"STATUS_CODE_UNSUPPORTED", 61, 114},
+ #endif
+ #ifdef HTTP_R_TLS_NOT_ENABLED
+ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED},
+ #else
+ {"TLS_NOT_ENABLED", 61, 107},
+ #endif
+ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS
+ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS},
+ #else
+ {"TOO_MANY_REDIRECTIONS", 61, 115},
+ #endif
+ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE
+ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE},
+ #else
+ {"UNEXPECTED_CONTENT_TYPE", 61, 118},
+ #endif
+ #ifdef OBJ_R_OID_EXISTS
+ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS},
+ #else
+ {"OID_EXISTS", 8, 102},
+ #endif
+ #ifdef OBJ_R_UNKNOWN_NID
+ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID},
+ #else
+ {"UNKNOWN_NID", 8, 101},
+ #endif
+ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME
+ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME},
+ #else
+ {"UNKNOWN_OBJECT_NAME", 8, 103},
+ #endif
+ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 39, 101},
+ #endif
+ #ifdef OCSP_R_DIGEST_ERR
+ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR},
+ #else
+ {"DIGEST_ERR", 39, 102},
+ #endif
+ #ifdef OCSP_R_DIGEST_NAME_ERR
+ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR},
+ #else
+ {"DIGEST_NAME_ERR", 39, 106},
+ #endif
+ #ifdef OCSP_R_DIGEST_SIZE_ERR
+ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR},
+ #else
+ {"DIGEST_SIZE_ERR", 39, 107},
+ #endif
+ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD
+ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD},
+ #else
+ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122},
+ #endif
+ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD
+ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD},
+ #else
+ {"ERROR_IN_THISUPDATE_FIELD", 39, 123},
+ #endif
+ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE
+ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE},
+ #else
+ {"MISSING_OCSPSIGNING_USAGE", 39, 103},
+ #endif
+ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE
+ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE},
+ #else
+ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124},
+ #endif
+ #ifdef OCSP_R_NOT_BASIC_RESPONSE
+ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE},
+ #else
+ {"NOT_BASIC_RESPONSE", 39, 104},
+ #endif
+ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN
+ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN},
+ #else
+ {"NO_CERTIFICATES_IN_CHAIN", 39, 105},
+ #endif
+ #ifdef OCSP_R_NO_RESPONSE_DATA
+ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA},
+ #else
+ {"NO_RESPONSE_DATA", 39, 108},
+ #endif
+ #ifdef OCSP_R_NO_REVOKED_TIME
+ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME},
+ #else
+ {"NO_REVOKED_TIME", 39, 109},
+ #endif
+ #ifdef OCSP_R_NO_SIGNER_KEY
+ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY},
+ #else
+ {"NO_SIGNER_KEY", 39, 130},
+ #endif
+ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110},
+ #endif
+ #ifdef OCSP_R_REQUEST_NOT_SIGNED
+ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED},
+ #else
+ {"REQUEST_NOT_SIGNED", 39, 128},
+ #endif
+ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA
+ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA},
+ #else
+ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111},
+ #endif
+ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED
+ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED},
+ #else
+ {"ROOT_CA_NOT_TRUSTED", 39, 112},
+ #endif
+ #ifdef OCSP_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 39, 117},
+ #endif
+ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118},
+ #endif
+ #ifdef OCSP_R_STATUS_EXPIRED
+ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED},
+ #else
+ {"STATUS_EXPIRED", 39, 125},
+ #endif
+ #ifdef OCSP_R_STATUS_NOT_YET_VALID
+ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID},
+ #else
+ {"STATUS_NOT_YET_VALID", 39, 126},
+ #endif
+ #ifdef OCSP_R_STATUS_TOO_OLD
+ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD},
+ #else
+ {"STATUS_TOO_OLD", 39, 127},
+ #endif
+ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST
+ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST},
+ #else
+ {"UNKNOWN_MESSAGE_DIGEST", 39, 119},
+ #endif
+ #ifdef OCSP_R_UNKNOWN_NID
+ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID},
+ #else
+ {"UNKNOWN_NID", 39, 120},
+ #endif
+ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE
+ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE},
+ #else
+ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129},
+ #endif
+ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS
+ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS},
+ #else
+ {"MISSING_GET_PARAMS", 60, 100},
+ #endif
+ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND
+ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND},
+ #else
+ {"ENCODER_NOT_FOUND", 59, 101},
+ #endif
+ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY
+ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY},
+ #else
+ {"INCORRECT_PROPERTY_QUERY", 59, 100},
+ #endif
+ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS
+ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS},
+ #else
+ {"MISSING_GET_PARAMS", 59, 102},
+ #endif
+ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE
+ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE},
+ #else
+ {"AMBIGUOUS_CONTENT_TYPE", 44, 107},
+ #endif
+ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ
+ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ},
+ #else
+ {"BAD_PASSWORD_READ", 44, 115},
+ #endif
+ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC
+ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC},
+ #else
+ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113},
+ #endif
+ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST
+ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST},
+ #else
+ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121},
+ #endif
+ #ifdef OSSL_STORE_R_INVALID_SCHEME
+ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME},
+ #else
+ {"INVALID_SCHEME", 44, 106},
+ #endif
+ #ifdef OSSL_STORE_R_IS_NOT_A
+ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A},
+ #else
+ {"IS_NOT_A", 44, 112},
+ #endif
+ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE
+ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE},
+ #else
+ {"LOADER_INCOMPLETE", 44, 116},
+ #endif
+ #ifdef OSSL_STORE_R_LOADING_STARTED
+ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED},
+ #else
+ {"LOADING_STARTED", 44, 117},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE
+ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE},
+ #else
+ {"NOT_A_CERTIFICATE", 44, 100},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_CRL
+ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL},
+ #else
+ {"NOT_A_CRL", 44, 101},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_NAME
+ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME},
+ #else
+ {"NOT_A_NAME", 44, 103},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY
+ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY},
+ #else
+ {"NOT_A_PRIVATE_KEY", 44, 102},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY
+ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY},
+ #else
+ {"NOT_A_PUBLIC_KEY", 44, 122},
+ #endif
+ #ifdef OSSL_STORE_R_NOT_PARAMETERS
+ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS},
+ #else
+ {"NOT_PARAMETERS", 44, 104},
+ #endif
+ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR
+ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR},
+ #else
+ {"PASSPHRASE_CALLBACK_ERROR", 44, 114},
+ #endif
+ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE
+ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE},
+ #else
+ {"PATH_MUST_BE_ABSOLUTE", 44, 108},
+ #endif
+ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES
+ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES},
+ #else
+ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119},
+ #endif
+ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED
+ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED},
+ #else
+ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109},
+ #endif
+ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME
+ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME},
+ #else
+ {"UNREGISTERED_SCHEME", 44, 105},
+ #endif
+ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 44, 110},
+ #endif
+ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION
+ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION},
+ #else
+ {"UNSUPPORTED_OPERATION", 44, 118},
+ #endif
+ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE
+ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE},
+ #else
+ {"UNSUPPORTED_SEARCH_TYPE", 44, 120},
+ #endif
+ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED
+ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED},
+ #else
+ {"URI_AUTHORITY_UNSUPPORTED", 44, 111},
+ #endif
+ #ifdef PEM_R_BAD_BASE64_DECODE
+ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE},
+ #else
+ {"BAD_BASE64_DECODE", 9, 100},
+ #endif
+ #ifdef PEM_R_BAD_DECRYPT
+ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT},
+ #else
+ {"BAD_DECRYPT", 9, 101},
+ #endif
+ #ifdef PEM_R_BAD_END_LINE
+ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE},
+ #else
+ {"BAD_END_LINE", 9, 102},
+ #endif
+ #ifdef PEM_R_BAD_IV_CHARS
+ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS},
+ #else
+ {"BAD_IV_CHARS", 9, 103},
+ #endif
+ #ifdef PEM_R_BAD_MAGIC_NUMBER
+ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER},
+ #else
+ {"BAD_MAGIC_NUMBER", 9, 116},
+ #endif
+ #ifdef PEM_R_BAD_PASSWORD_READ
+ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ},
+ #else
+ {"BAD_PASSWORD_READ", 9, 104},
+ #endif
+ #ifdef PEM_R_BAD_VERSION_NUMBER
+ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER},
+ #else
+ {"BAD_VERSION_NUMBER", 9, 117},
+ #endif
+ #ifdef PEM_R_BIO_WRITE_FAILURE
+ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE},
+ #else
+ {"BIO_WRITE_FAILURE", 9, 118},
+ #endif
+ #ifdef PEM_R_CIPHER_IS_NULL
+ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL},
+ #else
+ {"CIPHER_IS_NULL", 9, 127},
+ #endif
+ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY
+ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY},
+ #else
+ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115},
+ #endif
+ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB
+ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB},
+ #else
+ {"EXPECTING_DSS_KEY_BLOB", 9, 131},
+ #endif
+ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB
+ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB},
+ #else
+ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119},
+ #endif
+ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB
+ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB},
+ #else
+ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120},
+ #endif
+ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB
+ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB},
+ #else
+ {"EXPECTING_RSA_KEY_BLOB", 9, 132},
+ #endif
+ #ifdef PEM_R_HEADER_TOO_LONG
+ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG},
+ #else
+ {"HEADER_TOO_LONG", 9, 128},
+ #endif
+ #ifdef PEM_R_INCONSISTENT_HEADER
+ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER},
+ #else
+ {"INCONSISTENT_HEADER", 9, 121},
+ #endif
+ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR
+ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR},
+ #else
+ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122},
+ #endif
+ #ifdef PEM_R_KEYBLOB_TOO_SHORT
+ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT},
+ #else
+ {"KEYBLOB_TOO_SHORT", 9, 123},
+ #endif
+ #ifdef PEM_R_MISSING_DEK_IV
+ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV},
+ #else
+ {"MISSING_DEK_IV", 9, 129},
+ #endif
+ #ifdef PEM_R_NOT_DEK_INFO
+ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO},
+ #else
+ {"NOT_DEK_INFO", 9, 105},
+ #endif
+ #ifdef PEM_R_NOT_ENCRYPTED
+ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED},
+ #else
+ {"NOT_ENCRYPTED", 9, 106},
+ #endif
+ #ifdef PEM_R_NOT_PROC_TYPE
+ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE},
+ #else
+ {"NOT_PROC_TYPE", 9, 107},
+ #endif
+ #ifdef PEM_R_NO_START_LINE
+ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE},
+ #else
+ {"NO_START_LINE", 9, 108},
+ #endif
+ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD
+ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD},
+ #else
+ {"PROBLEMS_GETTING_PASSWORD", 9, 109},
+ #endif
+ #ifdef PEM_R_PVK_DATA_TOO_SHORT
+ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT},
+ #else
+ {"PVK_DATA_TOO_SHORT", 9, 124},
+ #endif
+ #ifdef PEM_R_PVK_TOO_SHORT
+ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT},
+ #else
+ {"PVK_TOO_SHORT", 9, 125},
+ #endif
+ #ifdef PEM_R_READ_KEY
+ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY},
+ #else
+ {"READ_KEY", 9, 111},
+ #endif
+ #ifdef PEM_R_SHORT_HEADER
+ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER},
+ #else
+ {"SHORT_HEADER", 9, 112},
+ #endif
+ #ifdef PEM_R_UNEXPECTED_DEK_IV
+ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV},
+ #else
+ {"UNEXPECTED_DEK_IV", 9, 130},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_CIPHER
+ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER},
+ #else
+ {"UNSUPPORTED_CIPHER", 9, 113},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION
+ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION},
+ #else
+ {"UNSUPPORTED_ENCRYPTION", 9, 114},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS
+ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS},
+ #else
+ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126},
+ #endif
+ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE},
+ #else
+ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110},
+ #endif
+ #ifdef PKCS12_R_CANT_PACK_STRUCTURE
+ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
+ #else
+ {"CANT_PACK_STRUCTURE", 35, 100},
+ #endif
+ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA
+ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA},
+ #else
+ {"CONTENT_TYPE_NOT_DATA", 35, 121},
+ #endif
+ #ifdef PKCS12_R_DECODE_ERROR
+ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR},
+ #else
+ {"DECODE_ERROR", 35, 101},
+ #endif
+ #ifdef PKCS12_R_ENCODE_ERROR
+ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR},
+ #else
+ {"ENCODE_ERROR", 35, 102},
+ #endif
+ #ifdef PKCS12_R_ENCRYPT_ERROR
+ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR},
+ #else
+ {"ENCRYPT_ERROR", 35, 103},
+ #endif
+ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE
+ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE},
+ #else
+ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120},
+ #endif
+ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT
+ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT},
+ #else
+ {"INVALID_NULL_ARGUMENT", 35, 104},
+ #endif
+ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER
+ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER},
+ #else
+ {"INVALID_NULL_PKCS12_POINTER", 35, 105},
+ #endif
+ #ifdef PKCS12_R_INVALID_TYPE
+ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE},
+ #else
+ {"INVALID_TYPE", 35, 112},
+ #endif
+ #ifdef PKCS12_R_IV_GEN_ERROR
+ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR},
+ #else
+ {"IV_GEN_ERROR", 35, 106},
+ #endif
+ #ifdef PKCS12_R_KEY_GEN_ERROR
+ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR},
+ #else
+ {"KEY_GEN_ERROR", 35, 107},
+ #endif
+ #ifdef PKCS12_R_MAC_ABSENT
+ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT},
+ #else
+ {"MAC_ABSENT", 35, 108},
+ #endif
+ #ifdef PKCS12_R_MAC_GENERATION_ERROR
+ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR},
+ #else
+ {"MAC_GENERATION_ERROR", 35, 109},
+ #endif
+ #ifdef PKCS12_R_MAC_SETUP_ERROR
+ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR},
+ #else
+ {"MAC_SETUP_ERROR", 35, 110},
+ #endif
+ #ifdef PKCS12_R_MAC_STRING_SET_ERROR
+ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR},
+ #else
+ {"MAC_STRING_SET_ERROR", 35, 111},
+ #endif
+ #ifdef PKCS12_R_MAC_VERIFY_FAILURE
+ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE},
+ #else
+ {"MAC_VERIFY_FAILURE", 35, 113},
+ #endif
+ #ifdef PKCS12_R_PARSE_ERROR
+ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR},
+ #else
+ {"PARSE_ERROR", 35, 114},
+ #endif
+ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR
+ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR},
+ #else
+ {"PKCS12_CIPHERFINAL_ERROR", 35, 116},
+ #endif
+ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM
+ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM},
+ #else
+ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118},
+ #endif
+ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE
+ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE},
+ #else
+ {"UNSUPPORTED_PKCS12_MODE", 35, 119},
+ #endif
+ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 33, 117},
+ #endif
+ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER},
+ #else
+ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144},
+ #endif
+ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED
+ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED},
+ #else
+ {"CIPHER_NOT_INITIALIZED", 33, 116},
+ #endif
+ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT
+ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT},
+ #else
+ {"CONTENT_AND_DATA_PRESENT", 33, 118},
+ #endif
+ #ifdef PKCS7_R_CTRL_ERROR
+ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR},
+ #else
+ {"CTRL_ERROR", 33, 152},
+ #endif
+ #ifdef PKCS7_R_DECRYPT_ERROR
+ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR},
+ #else
+ {"DECRYPT_ERROR", 33, 119},
+ #endif
+ #ifdef PKCS7_R_DIGEST_FAILURE
+ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE},
+ #else
+ {"DIGEST_FAILURE", 33, 101},
+ #endif
+ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE
+ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE},
+ #else
+ {"ENCRYPTION_CTRL_FAILURE", 33, 149},
+ #endif
+ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150},
+ #endif
+ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT
+ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT},
+ #else
+ {"ERROR_ADDING_RECIPIENT", 33, 120},
+ #endif
+ #ifdef PKCS7_R_ERROR_SETTING_CIPHER
+ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER},
+ #else
+ {"ERROR_SETTING_CIPHER", 33, 121},
+ #endif
+ #ifdef PKCS7_R_INVALID_NULL_POINTER
+ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER},
+ #else
+ {"INVALID_NULL_POINTER", 33, 143},
+ #endif
+ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE
+ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE},
+ #else
+ {"INVALID_SIGNED_DATA_TYPE", 33, 155},
+ #endif
+ #ifdef PKCS7_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 33, 122},
+ #endif
+ #ifdef PKCS7_R_NO_DEFAULT_DIGEST
+ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST},
+ #else
+ {"NO_DEFAULT_DIGEST", 33, 151},
+ #endif
+ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND
+ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND},
+ #else
+ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154},
+ #endif
+ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE
+ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE},
+ #else
+ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115},
+ #endif
+ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA
+ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA},
+ #else
+ {"NO_SIGNATURES_ON_DATA", 33, 123},
+ #endif
+ #ifdef PKCS7_R_NO_SIGNERS
+ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS},
+ #else
+ {"NO_SIGNERS", 33, 142},
+ #endif
+ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE
+ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104},
+ #endif
+ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR
+ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124},
+ #endif
+ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR
+ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNER_ERROR", 33, 153},
+ #endif
+ #ifdef PKCS7_R_PKCS7_DATASIGN
+ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN},
+ #else
+ {"PKCS7_DATASIGN", 33, 145},
+ #endif
+ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127},
+ #endif
+ #ifdef PKCS7_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 33, 105},
+ #endif
+ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND
+ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND},
+ #else
+ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128},
+ #endif
+ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE
+ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE},
+ #else
+ {"SIGNING_CTRL_FAILURE", 33, 147},
+ #endif
+ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
+ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE},
+ #else
+ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148},
+ #endif
+ #ifdef PKCS7_R_SMIME_TEXT_ERROR
+ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR},
+ #else
+ {"SMIME_TEXT_ERROR", 33, 129},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE
+ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE},
+ #else
+ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO
+ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO},
+ #else
+ {"UNABLE_TO_FIND_MEM_BIO", 33, 107},
+ #endif
+ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST
+ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST},
+ #else
+ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108},
+ #endif
+ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE
+ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE},
+ #else
+ {"UNKNOWN_DIGEST_TYPE", 33, 109},
+ #endif
+ #ifdef PKCS7_R_UNKNOWN_OPERATION
+ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION},
+ #else
+ {"UNKNOWN_OPERATION", 33, 110},
+ #endif
+ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE
+ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE},
+ #else
+ {"UNSUPPORTED_CIPHER_TYPE", 33, 111},
+ #endif
+ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE
+ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE},
+ #else
+ {"UNSUPPORTED_CONTENT_TYPE", 33, 112},
+ #endif
+ #ifdef PKCS7_R_WRONG_CONTENT_TYPE
+ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE},
+ #else
+ {"WRONG_CONTENT_TYPE", 33, 113},
+ #endif
+ #ifdef PKCS7_R_WRONG_PKCS7_TYPE
+ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE},
+ #else
+ {"WRONG_PKCS7_TYPE", 33, 114},
+ #endif
+ #ifdef PROP_R_NAME_TOO_LONG
+ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG},
+ #else
+ {"NAME_TOO_LONG", 55, 100},
+ #endif
+ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER
+ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER},
+ #else
+ {"NOT_AN_ASCII_CHARACTER", 55, 101},
+ #endif
+ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT
+ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT},
+ #else
+ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102},
+ #endif
+ #ifdef PROP_R_NOT_AN_IDENTIFIER
+ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER},
+ #else
+ {"NOT_AN_IDENTIFIER", 55, 103},
+ #endif
+ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT
+ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT},
+ #else
+ {"NOT_AN_OCTAL_DIGIT", 55, 104},
+ #endif
+ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT
+ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT},
+ #else
+ {"NOT_A_DECIMAL_DIGIT", 55, 105},
+ #endif
+ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER
+ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER},
+ #else
+ {"NO_MATCHING_STRING_DELIMITER", 55, 106},
+ #endif
+ #ifdef PROP_R_NO_VALUE
+ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE},
+ #else
+ {"NO_VALUE", 55, 107},
+ #endif
+ #ifdef PROP_R_PARSE_FAILED
+ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED},
+ #else
+ {"PARSE_FAILED", 55, 108},
+ #endif
+ #ifdef PROP_R_STRING_TOO_LONG
+ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG},
+ #else
+ {"STRING_TOO_LONG", 55, 109},
+ #endif
+ #ifdef PROP_R_TRAILING_CHARACTERS
+ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS},
+ #else
+ {"TRAILING_CHARACTERS", 55, 110},
+ #endif
+ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG
+ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG},
+ #else
+ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184},
+ #endif
+ #ifdef PROV_R_ALGORITHM_MISMATCH
+ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH},
+ #else
+ {"ALGORITHM_MISMATCH", 57, 173},
+ #endif
+ #ifdef PROV_R_ALREADY_INSTANTIATED
+ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED},
+ #else
+ {"ALREADY_INSTANTIATED", 57, 185},
+ #endif
+ #ifdef PROV_R_BAD_DECRYPT
+ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT},
+ #else
+ {"BAD_DECRYPT", 57, 100},
+ #endif
+ #ifdef PROV_R_BAD_ENCODING
+ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING},
+ #else
+ {"BAD_ENCODING", 57, 141},
+ #endif
+ #ifdef PROV_R_BAD_LENGTH
+ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH},
+ #else
+ {"BAD_LENGTH", 57, 142},
+ #endif
+ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION
+ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION},
+ #else
+ {"BAD_TLS_CLIENT_VERSION", 57, 161},
+ #endif
+ #ifdef PROV_R_BN_ERROR
+ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR},
+ #else
+ {"BN_ERROR", 57, 160},
+ #endif
+ #ifdef PROV_R_CIPHER_OPERATION_FAILED
+ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED},
+ #else
+ {"CIPHER_OPERATION_FAILED", 57, 102},
+ #endif
+ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED
+ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED},
+ #else
+ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205},
+ #endif
+ #ifdef PROV_R_DIGEST_NOT_ALLOWED
+ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED},
+ #else
+ {"DIGEST_NOT_ALLOWED", 57, 174},
+ #endif
+ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK
+ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK},
+ #else
+ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186},
+ #endif
+ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG
+ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG},
+ #else
+ {"ERROR_INSTANTIATING_DRBG", 57, 188},
+ #endif
+ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY
+ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY},
+ #else
+ {"ERROR_RETRIEVING_ENTROPY", 57, 189},
+ #endif
+ #ifdef PROV_R_ERROR_RETRIEVING_NONCE
+ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE},
+ #else
+ {"ERROR_RETRIEVING_NONCE", 57, 190},
+ #endif
+ #ifdef PROV_R_FAILED_DURING_DERIVATION
+ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION},
+ #else
+ {"FAILED_DURING_DERIVATION", 57, 164},
+ #endif
+ #ifdef PROV_R_FAILED_TO_CREATE_LOCK
+ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK},
+ #else
+ {"FAILED_TO_CREATE_LOCK", 57, 180},
+ #endif
+ #ifdef PROV_R_FAILED_TO_DECRYPT
+ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT},
+ #else
+ {"FAILED_TO_DECRYPT", 57, 162},
+ #endif
+ #ifdef PROV_R_FAILED_TO_GENERATE_KEY
+ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY},
+ #else
+ {"FAILED_TO_GENERATE_KEY", 57, 121},
+ #endif
+ #ifdef PROV_R_FAILED_TO_GET_PARAMETER
+ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER},
+ #else
+ {"FAILED_TO_GET_PARAMETER", 57, 103},
+ #endif
+ #ifdef PROV_R_FAILED_TO_SET_PARAMETER
+ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER},
+ #else
+ {"FAILED_TO_SET_PARAMETER", 57, 104},
+ #endif
+ #ifdef PROV_R_FAILED_TO_SIGN
+ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN},
+ #else
+ {"FAILED_TO_SIGN", 57, 175},
+ #endif
+ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR
+ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR},
+ #else
+ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227},
+ #endif
+ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE
+ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE},
+ #else
+ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224},
+ #endif
+ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE
+ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE},
+ #else
+ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225},
+ #endif
+ #ifdef PROV_R_GENERATE_ERROR
+ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR},
+ #else
+ {"GENERATE_ERROR", 57, 191},
+ #endif
+ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
+ #else
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165},
+ #endif
+ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE
+ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE},
+ #else
+ {"INDICATOR_INTEGRITY_FAILURE", 57, 210},
+ #endif
+ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH
+ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH},
+ #else
+ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181},
+ #endif
+ #ifdef PROV_R_INVALID_AAD
+ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD},
+ #else
+ {"INVALID_AAD", 57, 108},
+ #endif
+ #ifdef PROV_R_INVALID_CONFIG_DATA
+ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA},
+ #else
+ {"INVALID_CONFIG_DATA", 57, 211},
+ #endif
+ #ifdef PROV_R_INVALID_CONSTANT_LENGTH
+ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH},
+ #else
+ {"INVALID_CONSTANT_LENGTH", 57, 157},
+ #endif
+ #ifdef PROV_R_INVALID_CURVE
+ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE},
+ #else
+ {"INVALID_CURVE", 57, 176},
+ #endif
+ #ifdef PROV_R_INVALID_CUSTOM_LENGTH
+ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH},
+ #else
+ {"INVALID_CUSTOM_LENGTH", 57, 111},
+ #endif
+ #ifdef PROV_R_INVALID_DATA
+ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA},
+ #else
+ {"INVALID_DATA", 57, 115},
+ #endif
+ #ifdef PROV_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 57, 122},
+ #endif
+ #ifdef PROV_R_INVALID_DIGEST_LENGTH
+ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH},
+ #else
+ {"INVALID_DIGEST_LENGTH", 57, 166},
+ #endif
+ #ifdef PROV_R_INVALID_DIGEST_SIZE
+ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE},
+ #else
+ {"INVALID_DIGEST_SIZE", 57, 218},
+ #endif
+ #ifdef PROV_R_INVALID_ITERATION_COUNT
+ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT},
+ #else
+ {"INVALID_ITERATION_COUNT", 57, 123},
+ #endif
+ #ifdef PROV_R_INVALID_IV_LENGTH
+ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH},
+ #else
+ {"INVALID_IV_LENGTH", 57, 109},
+ #endif
+ #ifdef PROV_R_INVALID_KEY
+ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY},
+ #else
+ {"INVALID_KEY", 57, 158},
+ #endif
+ #ifdef PROV_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 57, 105},
+ #endif
+ #ifdef PROV_R_INVALID_MAC
+ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC},
+ #else
+ {"INVALID_MAC", 57, 151},
+ #endif
+ #ifdef PROV_R_INVALID_MGF1_MD
+ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD},
+ #else
+ {"INVALID_MGF1_MD", 57, 167},
+ #endif
+ #ifdef PROV_R_INVALID_MODE
+ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE},
+ #else
+ {"INVALID_MODE", 57, 125},
+ #endif
+ #ifdef PROV_R_INVALID_PADDING_MODE
+ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE},
+ #else
+ {"INVALID_PADDING_MODE", 57, 168},
+ #endif
+ #ifdef PROV_R_INVALID_PUBINFO
+ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO},
+ #else
+ {"INVALID_PUBINFO", 57, 198},
+ #endif
+ #ifdef PROV_R_INVALID_SALT_LENGTH
+ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH},
+ #else
+ {"INVALID_SALT_LENGTH", 57, 112},
+ #endif
+ #ifdef PROV_R_INVALID_SEED_LENGTH
+ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH},
+ #else
+ {"INVALID_SEED_LENGTH", 57, 154},
+ #endif
+ #ifdef PROV_R_INVALID_SIGNATURE_SIZE
+ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE},
+ #else
+ {"INVALID_SIGNATURE_SIZE", 57, 179},
+ #endif
+ #ifdef PROV_R_INVALID_STATE
+ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE},
+ #else
+ {"INVALID_STATE", 57, 212},
+ #endif
+ #ifdef PROV_R_INVALID_TAG
+ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG},
+ #else
+ {"INVALID_TAG", 57, 110},
+ #endif
+ #ifdef PROV_R_INVALID_TAG_LENGTH
+ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH},
+ #else
+ {"INVALID_TAG_LENGTH", 57, 118},
+ #endif
+ #ifdef PROV_R_INVALID_UKM_LENGTH
+ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH},
+ #else
+ {"INVALID_UKM_LENGTH", 57, 200},
+ #endif
+ #ifdef PROV_R_INVALID_X931_DIGEST
+ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST},
+ #else
+ {"INVALID_X931_DIGEST", 57, 170},
+ #endif
+ #ifdef PROV_R_IN_ERROR_STATE
+ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE},
+ #else
+ {"IN_ERROR_STATE", 57, 192},
+ #endif
+ #ifdef PROV_R_KEY_SETUP_FAILED
+ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED},
+ #else
+ {"KEY_SETUP_FAILED", 57, 101},
+ #endif
+ #ifdef PROV_R_KEY_SIZE_TOO_SMALL
+ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL},
+ #else
+ {"KEY_SIZE_TOO_SMALL", 57, 171},
+ #endif
+ #ifdef PROV_R_MISSING_CEK_ALG
+ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG},
+ #else
+ {"MISSING_CEK_ALG", 57, 144},
+ #endif
+ #ifdef PROV_R_MISSING_CIPHER
+ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER},
+ #else
+ {"MISSING_CIPHER", 57, 155},
+ #endif
+ #ifdef PROV_R_MISSING_CONFIG_DATA
+ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA},
+ #else
+ {"MISSING_CONFIG_DATA", 57, 213},
+ #endif
+ #ifdef PROV_R_MISSING_CONSTANT
+ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT},
+ #else
+ {"MISSING_CONSTANT", 57, 156},
+ #endif
+ #ifdef PROV_R_MISSING_KEY
+ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY},
+ #else
+ {"MISSING_KEY", 57, 128},
+ #endif
+ #ifdef PROV_R_MISSING_MAC
+ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC},
+ #else
+ {"MISSING_MAC", 57, 150},
+ #endif
+ #ifdef PROV_R_MISSING_MESSAGE_DIGEST
+ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST},
+ #else
+ {"MISSING_MESSAGE_DIGEST", 57, 129},
+ #endif
+ #ifdef PROV_R_MISSING_OID
+ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID},
+ #else
+ {"MISSING_OID", 57, 209},
+ #endif
+ #ifdef PROV_R_MISSING_PASS
+ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS},
+ #else
+ {"MISSING_PASS", 57, 130},
+ #endif
+ #ifdef PROV_R_MISSING_SALT
+ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT},
+ #else
+ {"MISSING_SALT", 57, 131},
+ #endif
+ #ifdef PROV_R_MISSING_SECRET
+ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET},
+ #else
+ {"MISSING_SECRET", 57, 132},
+ #endif
+ #ifdef PROV_R_MISSING_SEED
+ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED},
+ #else
+ {"MISSING_SEED", 57, 140},
+ #endif
+ #ifdef PROV_R_MISSING_SESSION_ID
+ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID},
+ #else
+ {"MISSING_SESSION_ID", 57, 133},
+ #endif
+ #ifdef PROV_R_MISSING_TYPE
+ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE},
+ #else
+ {"MISSING_TYPE", 57, 134},
+ #endif
+ #ifdef PROV_R_MISSING_XCGHASH
+ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH},
+ #else
+ {"MISSING_XCGHASH", 57, 135},
+ #endif
+ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE
+ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE},
+ #else
+ {"MODULE_INTEGRITY_FAILURE", 57, 214},
+ #endif
+ #ifdef PROV_R_NOT_A_PRIVATE_KEY
+ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY},
+ #else
+ {"NOT_A_PRIVATE_KEY", 57, 221},
+ #endif
+ #ifdef PROV_R_NOT_A_PUBLIC_KEY
+ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY},
+ #else
+ {"NOT_A_PUBLIC_KEY", 57, 220},
+ #endif
+ #ifdef PROV_R_NOT_INSTANTIATED
+ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED},
+ #else
+ {"NOT_INSTANTIATED", 57, 193},
+ #endif
+ #ifdef PROV_R_NOT_PARAMETERS
+ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS},
+ #else
+ {"NOT_PARAMETERS", 57, 226},
+ #endif
+ #ifdef PROV_R_NOT_SUPPORTED
+ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED},
+ #else
+ {"NOT_SUPPORTED", 57, 136},
+ #endif
+ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH
+ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH},
+ #else
+ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113},
+ #endif
+ #ifdef PROV_R_NO_KEY_SET
+ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET},
+ #else
+ {"NO_KEY_SET", 57, 114},
+ #endif
+ #ifdef PROV_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 57, 177},
+ #endif
+ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178},
+ #endif
+ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL
+ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL},
+ #else
+ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106},
+ #endif
+ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS
+ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS},
+ #else
+ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228},
+ #endif
+ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED
+ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED},
+ #else
+ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187},
+ #endif
+ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED
+ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED},
+ #else
+ {"PARENT_LOCKING_NOT_ENABLED", 57, 182},
+ #endif
+ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK
+ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK},
+ #else
+ {"PARENT_STRENGTH_TOO_WEAK", 57, 194},
+ #endif
+ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE
+ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE},
+ #else
+ {"PATH_MUST_BE_ABSOLUTE", 57, 219},
+ #endif
+ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG
+ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG},
+ #else
+ {"PERSONALISATION_STRING_TOO_LONG", 57, 195},
+ #endif
+ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL
+ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL},
+ #else
+ {"PSS_SALTLEN_TOO_SMALL", 57, 172},
+ #endif
+ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG
+ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG},
+ #else
+ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196},
+ #endif
+ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER
+ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER},
+ #else
+ {"REQUIRE_CTR_MODE_CIPHER", 57, 206},
+ #endif
+ #ifdef PROV_R_RESEED_ERROR
+ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR},
+ #else
+ {"RESEED_ERROR", 57, 197},
+ #endif
+ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES
+ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES},
+ #else
+ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222},
+ #endif
+ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT
+ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT},
+ #else
+ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229},
+ #endif
+ #ifdef PROV_R_SELF_TEST_KAT_FAILURE
+ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE},
+ #else
+ {"SELF_TEST_KAT_FAILURE", 57, 215},
+ #endif
+ #ifdef PROV_R_SELF_TEST_POST_FAILURE
+ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE},
+ #else
+ {"SELF_TEST_POST_FAILURE", 57, 216},
+ #endif
+ #ifdef PROV_R_TAG_NOT_NEEDED
+ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED},
+ #else
+ {"TAG_NOT_NEEDED", 57, 120},
+ #endif
+ #ifdef PROV_R_TAG_NOT_SET
+ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET},
+ #else
+ {"TAG_NOT_SET", 57, 119},
+ #endif
+ #ifdef PROV_R_TOO_MANY_RECORDS
+ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS},
+ #else
+ {"TOO_MANY_RECORDS", 57, 126},
+ #endif
+ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS
+ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS},
+ #else
+ {"UNABLE_TO_FIND_CIPHERS", 57, 207},
+ #endif
+ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH
+ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH},
+ #else
+ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199},
+ #endif
+ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE
+ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE},
+ #else
+ {"UNABLE_TO_GET_PASSPHRASE", 57, 159},
+ #endif
+ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS
+ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS},
+ #else
+ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208},
+ #endif
+ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256
+ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256},
+ #else
+ {"UNABLE_TO_LOAD_SHA256", 57, 147},
+ #endif
+ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT
+ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT},
+ #else
+ {"UNABLE_TO_LOCK_PARENT", 57, 201},
+ #endif
+ #ifdef PROV_R_UNABLE_TO_RESEED
+ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED},
+ #else
+ {"UNABLE_TO_RESEED", 57, 204},
+ #endif
+ #ifdef PROV_R_UNSUPPORTED_CEK_ALG
+ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG},
+ #else
+ {"UNSUPPORTED_CEK_ALG", 57, 145},
+ #endif
+ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE
+ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE},
+ #else
+ {"UNSUPPORTED_KEY_SIZE", 57, 153},
+ #endif
+ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE
+ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE},
+ #else
+ {"UNSUPPORTED_MAC_TYPE", 57, 137},
+ #endif
+ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS},
+ #else
+ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152},
+ #endif
+ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED
+ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED},
+ #else
+ {"URI_AUTHORITY_UNSUPPORTED", 57, 223},
+ #endif
+ #ifdef PROV_R_VALUE_ERROR
+ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR},
+ #else
+ {"VALUE_ERROR", 57, 138},
+ #endif
+ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH
+ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH},
+ #else
+ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107},
+ #endif
+ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE
+ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE},
+ #else
+ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139},
+ #endif
+ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED
+ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED},
+ #else
+ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183},
+ #endif
+ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE
+ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE},
+ #else
+ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148},
+ #endif
+ #ifdef PROV_R_XTS_DUPLICATED_KEYS
+ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS},
+ #else
+ {"XTS_DUPLICATED_KEYS", 57, 149},
+ #endif
+ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG
+ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG},
+ #else
+ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102},
+ #endif
+ #ifdef RAND_R_ALREADY_INSTANTIATED
+ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED},
+ #else
+ {"ALREADY_INSTANTIATED", 36, 103},
+ #endif
+ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE
+ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE},
+ #else
+ {"ARGUMENT_OUT_OF_RANGE", 36, 105},
+ #endif
+ #ifdef RAND_R_CANNOT_OPEN_FILE
+ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE},
+ #else
+ {"CANNOT_OPEN_FILE", 36, 121},
+ #endif
+ #ifdef RAND_R_DERIVATION_FUNCTION_MANDATORY_FOR_FIPS
+ {"DERIVATION_FUNCTION_MANDATORY_FOR_FIPS", ERR_LIB_RAND, RAND_R_DERIVATION_FUNCTION_MANDATORY_FOR_FIPS},
+ #else
+ {"DERIVATION_FUNCTION_MANDATORY_FOR_FIPS", 36, 137},
+ #endif
+ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED
+ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED},
+ #else
+ {"DRBG_ALREADY_INITIALIZED", 36, 129},
+ #endif
+ #ifdef RAND_R_DRBG_NOT_INITIALISED
+ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED},
+ #else
+ {"DRBG_NOT_INITIALISED", 36, 104},
+ #endif
+ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG
+ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG},
+ #else
+ {"ENTROPY_INPUT_TOO_LONG", 36, 106},
+ #endif
+ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE
+ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE},
+ #else
+ {"ENTROPY_OUT_OF_RANGE", 36, 124},
+ #endif
+ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED
+ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED},
+ #else
+ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127},
+ #endif
+ #ifdef RAND_R_ERROR_INITIALISING_DRBG
+ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG},
+ #else
+ {"ERROR_INITIALISING_DRBG", 36, 107},
+ #endif
+ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG
+ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG},
+ #else
+ {"ERROR_INSTANTIATING_DRBG", 36, 108},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT
+ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT},
+ #else
+ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY
+ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY},
+ #else
+ {"ERROR_RETRIEVING_ENTROPY", 36, 110},
+ #endif
+ #ifdef RAND_R_ERROR_RETRIEVING_NONCE
+ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE},
+ #else
+ {"ERROR_RETRIEVING_NONCE", 36, 111},
+ #endif
+ #ifdef RAND_R_FAILED_TO_CREATE_LOCK
+ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK},
+ #else
+ {"FAILED_TO_CREATE_LOCK", 36, 126},
+ #endif
+ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED
+ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED},
+ #else
+ {"FUNC_NOT_IMPLEMENTED", 36, 101},
+ #endif
+ #ifdef RAND_R_FWRITE_ERROR
+ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR},
+ #else
+ {"FWRITE_ERROR", 36, 123},
+ #endif
+ #ifdef RAND_R_GENERATE_ERROR
+ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR},
+ #else
+ {"GENERATE_ERROR", 36, 112},
+ #endif
+ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH
+ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH},
+ #else
+ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139},
+ #endif
+ #ifdef RAND_R_INTERNAL_ERROR
+ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR},
+ #else
+ {"INTERNAL_ERROR", 36, 113},
+ #endif
+ #ifdef RAND_R_IN_ERROR_STATE
+ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
+ #else
+ {"IN_ERROR_STATE", 36, 114},
+ #endif
+ #ifdef RAND_R_NOT_A_REGULAR_FILE
+ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE},
+ #else
+ {"NOT_A_REGULAR_FILE", 36, 122},
+ #endif
+ #ifdef RAND_R_NOT_INSTANTIATED
+ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED},
+ #else
+ {"NOT_INSTANTIATED", 36, 115},
+ #endif
+ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED
+ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED},
+ #else
+ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128},
+ #endif
+ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED
+ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED},
+ #else
+ {"PARENT_LOCKING_NOT_ENABLED", 36, 130},
+ #endif
+ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK
+ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK},
+ #else
+ {"PARENT_STRENGTH_TOO_WEAK", 36, 131},
+ #endif
+ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG
+ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG},
+ #else
+ {"PERSONALISATION_STRING_TOO_LONG", 36, 116},
+ #endif
+ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED
+ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED},
+ #else
+ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133},
+ #endif
+ #ifdef RAND_R_PRNG_NOT_SEEDED
+ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED},
+ #else
+ {"PRNG_NOT_SEEDED", 36, 100},
+ #endif
+ #ifdef RAND_R_RANDOM_POOL_OVERFLOW
+ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW},
+ #else
+ {"RANDOM_POOL_OVERFLOW", 36, 125},
+ #endif
+ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW
+ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW},
+ #else
+ {"RANDOM_POOL_UNDERFLOW", 36, 134},
+ #endif
+ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG
+ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG},
+ #else
+ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117},
+ #endif
+ #ifdef RAND_R_RESEED_ERROR
+ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR},
+ #else
+ {"RESEED_ERROR", 36, 118},
+ #endif
+ #ifdef RAND_R_SELFTEST_FAILURE
+ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE},
+ #else
+ {"SELFTEST_FAILURE", 36, 119},
+ #endif
+ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED
+ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED},
+ #else
+ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135},
+ #endif
+ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED
+ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED},
+ #else
+ {"TOO_MUCH_NONCE_REQUESTED", 36, 136},
+ #endif
+ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG
+ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG},
+ #else
+ {"UNABLE_TO_CREATE_DRBG", 36, 143},
+ #endif
+ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG
+ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG},
+ #else
+ {"UNABLE_TO_FETCH_DRBG", 36, 144},
+ #endif
+ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER
+ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER},
+ #else
+ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141},
+ #endif
+ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH
+ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH},
+ #else
+ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138},
+ #endif
+ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT
+ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT},
+ #else
+ {"UNABLE_TO_LOCK_PARENT", 36, 140},
+ #endif
+ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS
+ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS},
+ #else
+ {"UNSUPPORTED_DRBG_FLAGS", 36, 132},
+ #endif
+ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE
+ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE},
+ #else
+ {"UNSUPPORTED_DRBG_TYPE", 36, 120},
+ #endif
+ #ifdef RSA_R_ALGORITHM_MISMATCH
+ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH},
+ #else
+ {"ALGORITHM_MISMATCH", 4, 100},
+ #endif
+ #ifdef RSA_R_BAD_E_VALUE
+ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE},
+ #else
+ {"BAD_E_VALUE", 4, 101},
+ #endif
+ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT
+ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT},
+ #else
+ {"BAD_FIXED_HEADER_DECRYPT", 4, 102},
+ #endif
+ #ifdef RSA_R_BAD_PAD_BYTE_COUNT
+ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT},
+ #else
+ {"BAD_PAD_BYTE_COUNT", 4, 103},
+ #endif
+ #ifdef RSA_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 4, 104},
+ #endif
+ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01
+ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01},
+ #else
+ {"BLOCK_TYPE_IS_NOT_01", 4, 106},
+ #endif
+ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02
+ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02},
+ #else
+ {"BLOCK_TYPE_IS_NOT_02", 4, 107},
+ #endif
+ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN
+ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN},
+ #else
+ {"DATA_GREATER_THAN_MOD_LEN", 4, 108},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE
+ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE},
+ #else
+ {"DATA_TOO_LARGE", 4, 109},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
+ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE},
+ #else
+ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110},
+ #endif
+ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS
+ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS},
+ #else
+ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132},
+ #endif
+ #ifdef RSA_R_DATA_TOO_SMALL
+ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL},
+ #else
+ {"DATA_TOO_SMALL", 4, 111},
+ #endif
+ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE
+ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE},
+ #else
+ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122},
+ #endif
+ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH
+ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH},
+ #else
+ {"DIGEST_DOES_NOT_MATCH", 4, 158},
+ #endif
+ #ifdef RSA_R_DIGEST_NOT_ALLOWED
+ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED},
+ #else
+ {"DIGEST_NOT_ALLOWED", 4, 145},
+ #endif
+ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY
+ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY},
+ #else
+ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112},
+ #endif
+ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D
+ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D},
+ #else
+ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124},
+ #endif
+ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D
+ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D},
+ #else
+ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125},
+ #endif
+ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1
+ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1},
+ #else
+ {"D_E_NOT_CONGRUENT_TO_1", 4, 123},
+ #endif
+ #ifdef RSA_R_FIRST_OCTET_INVALID
+ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID},
+ #else
+ {"FIRST_OCTET_INVALID", 4, 133},
+ #endif
+ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE},
+ #else
+ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144},
+ #endif
+ #ifdef RSA_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 4, 157},
+ #endif
+ #ifdef RSA_R_INVALID_DIGEST_LENGTH
+ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH},
+ #else
+ {"INVALID_DIGEST_LENGTH", 4, 143},
+ #endif
+ #ifdef RSA_R_INVALID_HEADER
+ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER},
+ #else
+ {"INVALID_HEADER", 4, 137},
+ #endif
+ #ifdef RSA_R_INVALID_KEYPAIR
+ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR},
+ #else
+ {"INVALID_KEYPAIR", 4, 171},
+ #endif
+ #ifdef RSA_R_INVALID_KEY_LENGTH
+ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH},
+ #else
+ {"INVALID_KEY_LENGTH", 4, 173},
+ #endif
+ #ifdef RSA_R_INVALID_LABEL
+ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL},
+ #else
+ {"INVALID_LABEL", 4, 160},
+ #endif
+ #ifdef RSA_R_INVALID_MESSAGE_LENGTH
+ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH},
+ #else
+ {"INVALID_MESSAGE_LENGTH", 4, 131},
+ #endif
+ #ifdef RSA_R_INVALID_MGF1_MD
+ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD},
+ #else
+ {"INVALID_MGF1_MD", 4, 156},
+ #endif
+ #ifdef RSA_R_INVALID_MODULUS
+ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS},
+ #else
+ {"INVALID_MODULUS", 4, 174},
+ #endif
+ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY
+ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY},
+ #else
+ {"INVALID_MULTI_PRIME_KEY", 4, 167},
+ #endif
+ #ifdef RSA_R_INVALID_OAEP_PARAMETERS
+ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS},
+ #else
+ {"INVALID_OAEP_PARAMETERS", 4, 161},
+ #endif
+ #ifdef RSA_R_INVALID_PADDING
+ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING},
+ #else
+ {"INVALID_PADDING", 4, 138},
+ #endif
+ #ifdef RSA_R_INVALID_PADDING_MODE
+ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE},
+ #else
+ {"INVALID_PADDING_MODE", 4, 141},
+ #endif
+ #ifdef RSA_R_INVALID_PSS_PARAMETERS
+ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS},
+ #else
+ {"INVALID_PSS_PARAMETERS", 4, 149},
+ #endif
+ #ifdef RSA_R_INVALID_PSS_SALTLEN
+ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN},
+ #else
+ {"INVALID_PSS_SALTLEN", 4, 146},
+ #endif
+ #ifdef RSA_R_INVALID_REQUEST
+ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST},
+ #else
+ {"INVALID_REQUEST", 4, 175},
+ #endif
+ #ifdef RSA_R_INVALID_SALT_LENGTH
+ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH},
+ #else
+ {"INVALID_SALT_LENGTH", 4, 150},
+ #endif
+ #ifdef RSA_R_INVALID_STRENGTH
+ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH},
+ #else
+ {"INVALID_STRENGTH", 4, 176},
+ #endif
+ #ifdef RSA_R_INVALID_TRAILER
+ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER},
+ #else
+ {"INVALID_TRAILER", 4, 139},
+ #endif
+ #ifdef RSA_R_INVALID_X931_DIGEST
+ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST},
+ #else
+ {"INVALID_X931_DIGEST", 4, 142},
+ #endif
+ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q
+ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q},
+ #else
+ {"IQMP_NOT_INVERSE_OF_Q", 4, 126},
+ #endif
+ #ifdef RSA_R_KEY_PRIME_NUM_INVALID
+ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID},
+ #else
+ {"KEY_PRIME_NUM_INVALID", 4, 165},
+ #endif
+ #ifdef RSA_R_KEY_SIZE_TOO_SMALL
+ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL},
+ #else
+ {"KEY_SIZE_TOO_SMALL", 4, 120},
+ #endif
+ #ifdef RSA_R_LAST_OCTET_INVALID
+ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID},
+ #else
+ {"LAST_OCTET_INVALID", 4, 134},
+ #endif
+ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED
+ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED},
+ #else
+ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152},
+ #endif
+ #ifdef RSA_R_MISSING_PRIVATE_KEY
+ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY},
+ #else
+ {"MISSING_PRIVATE_KEY", 4, 179},
+ #endif
+ #ifdef RSA_R_MODULUS_TOO_LARGE
+ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE},
+ #else
+ {"MODULUS_TOO_LARGE", 4, 105},
+ #endif
+ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R
+ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R},
+ #else
+ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168},
+ #endif
+ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D
+ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D},
+ #else
+ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169},
+ #endif
+ #ifdef RSA_R_MP_R_NOT_PRIME
+ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME},
+ #else
+ {"MP_R_NOT_PRIME", 4, 170},
+ #endif
+ #ifdef RSA_R_NO_PUBLIC_EXPONENT
+ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT},
+ #else
+ {"NO_PUBLIC_EXPONENT", 4, 140},
+ #endif
+ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING
+ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING},
+ #else
+ {"NULL_BEFORE_BLOCK_MISSING", 4, 113},
+ #endif
+ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES
+ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES},
+ #else
+ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172},
+ #endif
+ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q
+ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q},
+ #else
+ {"N_DOES_NOT_EQUAL_P_Q", 4, 127},
+ #endif
+ #ifdef RSA_R_OAEP_DECODING_ERROR
+ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR},
+ #else
+ {"OAEP_DECODING_ERROR", 4, 121},
+ #endif
+ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148},
+ #endif
+ #ifdef RSA_R_PADDING_CHECK_FAILED
+ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED},
+ #else
+ {"PADDING_CHECK_FAILED", 4, 114},
+ #endif
+ #ifdef RSA_R_PAIRWISE_TEST_FAILURE
+ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE},
+ #else
+ {"PAIRWISE_TEST_FAILURE", 4, 177},
+ #endif
+ #ifdef RSA_R_PKCS_DECODING_ERROR
+ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR},
+ #else
+ {"PKCS_DECODING_ERROR", 4, 159},
+ #endif
+ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL
+ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL},
+ #else
+ {"PSS_SALTLEN_TOO_SMALL", 4, 164},
+ #endif
+ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE
+ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE},
+ #else
+ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178},
+ #endif
+ #ifdef RSA_R_P_NOT_PRIME
+ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME},
+ #else
+ {"P_NOT_PRIME", 4, 128},
+ #endif
+ #ifdef RSA_R_Q_NOT_PRIME
+ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME},
+ #else
+ {"Q_NOT_PRIME", 4, 129},
+ #endif
+ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED
+ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED},
+ #else
+ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130},
+ #endif
+ #ifdef RSA_R_SLEN_CHECK_FAILED
+ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED},
+ #else
+ {"SLEN_CHECK_FAILED", 4, 136},
+ #endif
+ #ifdef RSA_R_SLEN_RECOVERY_FAILED
+ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED},
+ #else
+ {"SLEN_RECOVERY_FAILED", 4, 135},
+ #endif
+ #ifdef RSA_R_SSLV3_ROLLBACK_ATTACK
+ {"SSLV3_ROLLBACK_ATTACK", ERR_LIB_RSA, RSA_R_SSLV3_ROLLBACK_ATTACK},
+ #else
+ {"SSLV3_ROLLBACK_ATTACK", 4, 115},
+ #endif
+ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD},
+ #else
+ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116},
+ #endif
+ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE
+ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE},
+ #else
+ {"UNKNOWN_ALGORITHM_TYPE", 4, 117},
+ #endif
+ #ifdef RSA_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 4, 166},
+ #endif
+ #ifdef RSA_R_UNKNOWN_MASK_DIGEST
+ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST},
+ #else
+ {"UNKNOWN_MASK_DIGEST", 4, 151},
+ #endif
+ #ifdef RSA_R_UNKNOWN_PADDING_TYPE
+ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE},
+ #else
+ {"UNKNOWN_PADDING_TYPE", 4, 118},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE
+ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE},
+ #else
+ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE
+ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE},
+ #else
+ {"UNSUPPORTED_LABEL_SOURCE", 4, 163},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM
+ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM},
+ #else
+ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER
+ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER},
+ #else
+ {"UNSUPPORTED_MASK_PARAMETER", 4, 154},
+ #endif
+ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE
+ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE},
+ #else
+ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155},
+ #endif
+ #ifdef RSA_R_VALUE_MISSING
+ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING},
+ #else
+ {"VALUE_MISSING", 4, 147},
+ #endif
+ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH
+ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH},
+ #else
+ {"WRONG_SIGNATURE_LENGTH", 4, 119},
+ #endif
+ #ifdef SM2_R_ASN1_ERROR
+ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR},
+ #else
+ {"ASN1_ERROR", 53, 100},
+ #endif
+ #ifdef SM2_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 53, 101},
+ #endif
+ #ifdef SM2_R_BUFFER_TOO_SMALL
+ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL},
+ #else
+ {"BUFFER_TOO_SMALL", 53, 107},
+ #endif
+ #ifdef SM2_R_DIST_ID_TOO_LARGE
+ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE},
+ #else
+ {"DIST_ID_TOO_LARGE", 53, 110},
+ #endif
+ #ifdef SM2_R_ID_NOT_SET
+ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET},
+ #else
+ {"ID_NOT_SET", 53, 112},
+ #endif
+ #ifdef SM2_R_ID_TOO_LARGE
+ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE},
+ #else
+ {"ID_TOO_LARGE", 53, 111},
+ #endif
+ #ifdef SM2_R_INVALID_CURVE
+ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE},
+ #else
+ {"INVALID_CURVE", 53, 108},
+ #endif
+ #ifdef SM2_R_INVALID_DIGEST
+ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST},
+ #else
+ {"INVALID_DIGEST", 53, 102},
+ #endif
+ #ifdef SM2_R_INVALID_DIGEST_TYPE
+ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE},
+ #else
+ {"INVALID_DIGEST_TYPE", 53, 103},
+ #endif
+ #ifdef SM2_R_INVALID_ENCODING
+ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING},
+ #else
+ {"INVALID_ENCODING", 53, 104},
+ #endif
+ #ifdef SM2_R_INVALID_FIELD
+ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD},
+ #else
+ {"INVALID_FIELD", 53, 105},
+ #endif
+ #ifdef SM2_R_INVALID_PRIVATE_KEY
+ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY},
+ #else
+ {"INVALID_PRIVATE_KEY", 53, 113},
+ #endif
+ #ifdef SM2_R_NO_PARAMETERS_SET
+ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET},
+ #else
+ {"NO_PARAMETERS_SET", 53, 109},
+ #endif
+ #ifdef SM2_R_USER_ID_TOO_LARGE
+ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE},
+ #else
+ {"USER_ID_TOO_LARGE", 53, 106},
+ #endif
+ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY
+ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY},
+ #else
+ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291},
+ #endif
+ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE
+ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE},
+ #else
+ {"APP_DATA_IN_HANDSHAKE", 20, 100},
+ #endif
+ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT
+ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT},
+ #else
+ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272},
+ #endif
+ #ifdef SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE
+ {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE},
+ #else
+ {"AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE", 20, 143},
+ #endif
+ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE
+ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE},
+ #else
+ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
+ #endif
+ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
+ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
+ #else
+ {"BAD_CHANGE_CIPHER_SPEC", 20, 103},
+ #endif
+ #ifdef SSL_R_BAD_CIPHER
+ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER},
+ #else
+ {"BAD_CIPHER", 20, 186},
+ #endif
+ #ifdef SSL_R_BAD_DATA
+ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
+ #else
+ {"BAD_DATA", 20, 390},
+ #endif
+ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK
+ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK},
+ #else
+ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106},
+ #endif
+ #ifdef SSL_R_BAD_DECOMPRESSION
+ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION},
+ #else
+ {"BAD_DECOMPRESSION", 20, 107},
+ #endif
+ #ifdef SSL_R_BAD_DH_VALUE
+ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE},
+ #else
+ {"BAD_DH_VALUE", 20, 102},
+ #endif
+ #ifdef SSL_R_BAD_DIGEST_LENGTH
+ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH},
+ #else
+ {"BAD_DIGEST_LENGTH", 20, 111},
+ #endif
+ #ifdef SSL_R_BAD_EARLY_DATA
+ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA},
+ #else
+ {"BAD_EARLY_DATA", 20, 233},
+ #endif
+ #ifdef SSL_R_BAD_ECC_CERT
+ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT},
+ #else
+ {"BAD_ECC_CERT", 20, 304},
+ #endif
+ #ifdef SSL_R_BAD_ECPOINT
+ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT},
+ #else
+ {"BAD_ECPOINT", 20, 306},
+ #endif
+ #ifdef SSL_R_BAD_EXTENSION
+ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION},
+ #else
+ {"BAD_EXTENSION", 20, 110},
+ #endif
+ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH
+ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH},
+ #else
+ {"BAD_HANDSHAKE_LENGTH", 20, 332},
+ #endif
+ #ifdef SSL_R_BAD_HANDSHAKE_STATE
+ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE},
+ #else
+ {"BAD_HANDSHAKE_STATE", 20, 236},
+ #endif
+ #ifdef SSL_R_BAD_HELLO_REQUEST
+ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST},
+ #else
+ {"BAD_HELLO_REQUEST", 20, 105},
+ #endif
+ #ifdef SSL_R_BAD_HRR_VERSION
+ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION},
+ #else
+ {"BAD_HRR_VERSION", 20, 263},
+ #endif
+ #ifdef SSL_R_BAD_KEY_SHARE
+ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE},
+ #else
+ {"BAD_KEY_SHARE", 20, 108},
+ #endif
+ #ifdef SSL_R_BAD_KEY_UPDATE
+ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE},
+ #else
+ {"BAD_KEY_UPDATE", 20, 122},
+ #endif
+ #ifdef SSL_R_BAD_LEGACY_VERSION
+ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION},
+ #else
+ {"BAD_LEGACY_VERSION", 20, 292},
+ #endif
+ #ifdef SSL_R_BAD_LENGTH
+ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH},
+ #else
+ {"BAD_LENGTH", 20, 271},
+ #endif
+ #ifdef SSL_R_BAD_PACKET
+ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET},
+ #else
+ {"BAD_PACKET", 20, 240},
+ #endif
+ #ifdef SSL_R_BAD_PACKET_LENGTH
+ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH},
+ #else
+ {"BAD_PACKET_LENGTH", 20, 115},
+ #endif
+ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER
+ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER},
+ #else
+ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116},
+ #endif
+ #ifdef SSL_R_BAD_PSK
+ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK},
+ #else
+ {"BAD_PSK", 20, 219},
+ #endif
+ #ifdef SSL_R_BAD_PSK_IDENTITY
+ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY},
+ #else
+ {"BAD_PSK_IDENTITY", 20, 114},
+ #endif
+ #ifdef SSL_R_BAD_RECORD_TYPE
+ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE},
+ #else
+ {"BAD_RECORD_TYPE", 20, 443},
+ #endif
+ #ifdef SSL_R_BAD_RSA_ENCRYPT
+ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT},
+ #else
+ {"BAD_RSA_ENCRYPT", 20, 119},
+ #endif
+ #ifdef SSL_R_BAD_SIGNATURE
+ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE},
+ #else
+ {"BAD_SIGNATURE", 20, 123},
+ #endif
+ #ifdef SSL_R_BAD_SRP_A_LENGTH
+ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH},
+ #else
+ {"BAD_SRP_A_LENGTH", 20, 347},
+ #endif
+ #ifdef SSL_R_BAD_SRP_PARAMETERS
+ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS},
+ #else
+ {"BAD_SRP_PARAMETERS", 20, 371},
+ #endif
+ #ifdef SSL_R_BAD_SRTP_MKI_VALUE
+ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE},
+ #else
+ {"BAD_SRTP_MKI_VALUE", 20, 352},
+ #endif
+ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST
+ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST},
+ #else
+ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353},
+ #endif
+ #ifdef SSL_R_BAD_SSL_FILETYPE
+ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE},
+ #else
+ {"BAD_SSL_FILETYPE", 20, 124},
+ #endif
+ #ifdef SSL_R_BAD_VALUE
+ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE},
+ #else
+ {"BAD_VALUE", 20, 384},
+ #endif
+ #ifdef SSL_R_BAD_WRITE_RETRY
+ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY},
+ #else
+ {"BAD_WRITE_RETRY", 20, 127},
+ #endif
+ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY
+ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY},
+ #else
+ {"BINDER_DOES_NOT_VERIFY", 20, 253},
+ #endif
+ #ifdef SSL_R_BIO_NOT_SET
+ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET},
+ #else
+ {"BIO_NOT_SET", 20, 128},
+ #endif
+ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG
+ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG},
+ #else
+ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129},
+ #endif
+ #ifdef SSL_R_BN_LIB
+ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB},
+ #else
+ {"BN_LIB", 20, 130},
+ #endif
+ #ifdef SSL_R_CALLBACK_FAILED
+ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED},
+ #else
+ {"CALLBACK_FAILED", 20, 234},
+ #endif
+ #ifdef SSL_R_CANNOT_CHANGE_CIPHER
+ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER},
+ #else
+ {"CANNOT_CHANGE_CIPHER", 20, 109},
+ #endif
+ #ifdef SSL_R_CANNOT_GET_GROUP_NAME
+ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME},
+ #else
+ {"CANNOT_GET_GROUP_NAME", 20, 299},
+ #endif
+ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH
+ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH},
+ #else
+ {"CA_DN_LENGTH_MISMATCH", 20, 131},
+ #endif
+ #ifdef SSL_R_CA_KEY_TOO_SMALL
+ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL},
+ #else
+ {"CA_KEY_TOO_SMALL", 20, 397},
+ #endif
+ #ifdef SSL_R_CA_MD_TOO_WEAK
+ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK},
+ #else
+ {"CA_MD_TOO_WEAK", 20, 398},
+ #endif
+ #ifdef SSL_R_CCS_RECEIVED_EARLY
+ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY},
+ #else
+ {"CCS_RECEIVED_EARLY", 20, 133},
+ #endif
+ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED
+ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED},
+ #else
+ {"CERTIFICATE_VERIFY_FAILED", 20, 134},
+ #endif
+ #ifdef SSL_R_CERT_CB_ERROR
+ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR},
+ #else
+ {"CERT_CB_ERROR", 20, 377},
+ #endif
+ #ifdef SSL_R_CERT_LENGTH_MISMATCH
+ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH},
+ #else
+ {"CERT_LENGTH_MISMATCH", 20, 135},
+ #endif
+ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED
+ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED},
+ #else
+ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218},
+ #endif
+ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH
+ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH},
+ #else
+ {"CIPHER_CODE_WRONG_LENGTH", 20, 137},
+ #endif
+ #ifdef SSL_R_CLIENTHELLO_TLSEXT
+ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT},
+ #else
+ {"CLIENTHELLO_TLSEXT", 20, 226},
+ #endif
+ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG
+ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG},
+ #else
+ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140},
+ #endif
+ #ifdef SSL_R_COMPRESSION_DISABLED
+ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED},
+ #else
+ {"COMPRESSION_DISABLED", 20, 343},
+ #endif
+ #ifdef SSL_R_COMPRESSION_FAILURE
+ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE},
+ #else
+ {"COMPRESSION_FAILURE", 20, 141},
+ #endif
+ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE
+ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE},
+ #else
+ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307},
+ #endif
+ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR
+ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR},
+ #else
+ {"COMPRESSION_LIBRARY_ERROR", 20, 142},
+ #endif
+ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET
+ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET},
+ #else
+ {"CONNECTION_TYPE_NOT_SET", 20, 144},
+ #endif
+ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
+ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
+ #else
+ {"CONTEXT_NOT_DANE_ENABLED", 20, 167},
+ #endif
+ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE
+ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE},
+ #else
+ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400},
+ #endif
+ #ifdef SSL_R_COOKIE_MISMATCH
+ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH},
+ #else
+ {"COOKIE_MISMATCH", 20, 308},
+ #endif
+ #ifdef SSL_R_COPY_PARAMETERS_FAILED
+ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED},
+ #else
+ {"COPY_PARAMETERS_FAILED", 20, 296},
+ #endif
+ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED
+ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED},
+ #else
+ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206},
+ #endif
+ #ifdef SSL_R_DANE_ALREADY_ENABLED
+ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED},
+ #else
+ {"DANE_ALREADY_ENABLED", 20, 172},
+ #endif
+ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL
+ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL},
+ #else
+ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173},
+ #endif
+ #ifdef SSL_R_DANE_NOT_ENABLED
+ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED},
+ #else
+ {"DANE_NOT_ENABLED", 20, 175},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE
+ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE},
+ #else
+ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE
+ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE},
+ #else
+ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH
+ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH},
+ #else
+ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH
+ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH},
+ #else
+ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE
+ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE},
+ #else
+ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY
+ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY},
+ #else
+ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR
+ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR},
+ #else
+ {"DANE_TLSA_BAD_SELECTOR", 20, 202},
+ #endif
+ #ifdef SSL_R_DANE_TLSA_NULL_DATA
+ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA},
+ #else
+ {"DANE_TLSA_NULL_DATA", 20, 203},
+ #endif
+ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED
+ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED},
+ #else
+ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145},
+ #endif
+ #ifdef SSL_R_DATA_LENGTH_TOO_LONG
+ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG},
+ #else
+ {"DATA_LENGTH_TOO_LONG", 20, 146},
+ #endif
+ #ifdef SSL_R_DECRYPTION_FAILED
+ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED},
+ #else
+ {"DECRYPTION_FAILED", 20, 147},
+ #endif
+ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC
+ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC},
+ #else
+ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281},
+ #endif
+ #ifdef SSL_R_DH_KEY_TOO_SMALL
+ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL},
+ #else
+ {"DH_KEY_TOO_SMALL", 20, 394},
+ #endif
+ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG
+ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG},
+ #else
+ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148},
+ #endif
+ #ifdef SSL_R_DIGEST_CHECK_FAILED
+ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED},
+ #else
+ {"DIGEST_CHECK_FAILED", 20, 149},
+ #endif
+ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG
+ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG},
+ #else
+ {"DTLS_MESSAGE_TOO_BIG", 20, 334},
+ #endif
+ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID
+ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID},
+ #else
+ {"DUPLICATE_COMPRESSION_ID", 20, 309},
+ #endif
+ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING
+ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING},
+ #else
+ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318},
+ #endif
+ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE
+ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE},
+ #else
+ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374},
+ #endif
+ #ifdef SSL_R_EE_KEY_TOO_SMALL
+ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL},
+ #else
+ {"EE_KEY_TOO_SMALL", 20, 399},
+ #endif
+ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST
+ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST},
+ #else
+ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354},
+ #endif
+ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG
+ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG},
+ #else
+ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150},
+ #endif
+ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST
+ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST},
+ #else
+ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
+ #endif
+ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
+ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
+ #else
+ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204},
+ #endif
+ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE
+ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE},
+ #else
+ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194},
+ #endif
+ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE
+ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE},
+ #else
+ {"EXCESSIVE_MESSAGE_SIZE", 20, 152},
+ #endif
+ #ifdef SSL_R_EXTENSION_NOT_RECEIVED
+ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED},
+ #else
+ {"EXTENSION_NOT_RECEIVED", 20, 279},
+ #endif
+ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE
+ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE},
+ #else
+ {"EXTRA_DATA_IN_MESSAGE", 20, 153},
+ #endif
+ #ifdef SSL_R_EXT_LENGTH_MISMATCH
+ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH},
+ #else
+ {"EXT_LENGTH_MISMATCH", 20, 163},
+ #endif
+ #ifdef SSL_R_FAILED_TO_INIT_ASYNC
+ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
+ #else
+ {"FAILED_TO_INIT_ASYNC", 20, 405},
+ #endif
+ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
+ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
+ #else
+ {"FRAGMENTED_CLIENT_HELLO", 20, 401},
+ #endif
+ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS
+ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS},
+ #else
+ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154},
+ #endif
+ #ifdef SSL_R_HTTPS_PROXY_REQUEST
+ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST},
+ #else
+ {"HTTPS_PROXY_REQUEST", 20, 155},
+ #endif
+ #ifdef SSL_R_HTTP_REQUEST
+ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST},
+ #else
+ {"HTTP_REQUEST", 20, 156},
+ #endif
+ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION
+ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION},
+ #else
+ {"ILLEGAL_POINT_COMPRESSION", 20, 162},
+ #endif
+ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST
+ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST},
+ #else
+ {"ILLEGAL_SUITEB_DIGEST", 20, 380},
+ #endif
+ #ifdef SSL_R_INAPPROPRIATE_FALLBACK
+ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK},
+ #else
+ {"INAPPROPRIATE_FALLBACK", 20, 373},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_COMPRESSION
+ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION},
+ #else
+ {"INCONSISTENT_COMPRESSION", 20, 340},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN
+ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN},
+ #else
+ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI
+ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI},
+ #else
+ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231},
+ #endif
+ #ifdef SSL_R_INCONSISTENT_EXTMS
+ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS},
+ #else
+ {"INCONSISTENT_EXTMS", 20, 104},
+ #endif
+ #ifdef SSL_R_INSUFFICIENT_SECURITY
+ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY},
+ #else
+ {"INSUFFICIENT_SECURITY", 20, 241},
+ #endif
+ #ifdef SSL_R_INVALID_ALERT
+ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT},
+ #else
+ {"INVALID_ALERT", 20, 205},
+ #endif
+ #ifdef SSL_R_INVALID_CCS_MESSAGE
+ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE},
+ #else
+ {"INVALID_CCS_MESSAGE", 20, 260},
+ #endif
+ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG
+ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG},
+ #else
+ {"INVALID_CERTIFICATE_OR_ALG", 20, 238},
+ #endif
+ #ifdef SSL_R_INVALID_COMMAND
+ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND},
+ #else
+ {"INVALID_COMMAND", 20, 280},
+ #endif
+ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM
+ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM},
+ #else
+ {"INVALID_COMPRESSION_ALGORITHM", 20, 341},
+ #endif
+ #ifdef SSL_R_INVALID_CONFIG
+ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG},
+ #else
+ {"INVALID_CONFIG", 20, 283},
+ #endif
+ #ifdef SSL_R_INVALID_CONFIGURATION_NAME
+ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME},
+ #else
+ {"INVALID_CONFIGURATION_NAME", 20, 113},
+ #endif
+ #ifdef SSL_R_INVALID_CONTEXT
+ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT},
+ #else
+ {"INVALID_CONTEXT", 20, 282},
+ #endif
+ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE
+ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE},
+ #else
+ {"INVALID_CT_VALIDATION_TYPE", 20, 212},
+ #endif
+ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE
+ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE},
+ #else
+ {"INVALID_KEY_UPDATE_TYPE", 20, 120},
+ #endif
+ #ifdef SSL_R_INVALID_MAX_EARLY_DATA
+ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA},
+ #else
+ {"INVALID_MAX_EARLY_DATA", 20, 174},
+ #endif
+ #ifdef SSL_R_INVALID_NULL_CMD_NAME
+ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME},
+ #else
+ {"INVALID_NULL_CMD_NAME", 20, 385},
+ #endif
+ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
+ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
+ #else
+ {"INVALID_SEQUENCE_NUMBER", 20, 402},
+ #endif
+ #ifdef SSL_R_INVALID_SERVERINFO_DATA
+ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA},
+ #else
+ {"INVALID_SERVERINFO_DATA", 20, 388},
+ #endif
+ #ifdef SSL_R_INVALID_SESSION_ID
+ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID},
+ #else
+ {"INVALID_SESSION_ID", 20, 999},
+ #endif
+ #ifdef SSL_R_INVALID_SRP_USERNAME
+ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME},
+ #else
+ {"INVALID_SRP_USERNAME", 20, 357},
+ #endif
+ #ifdef SSL_R_INVALID_STATUS_RESPONSE
+ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE},
+ #else
+ {"INVALID_STATUS_RESPONSE", 20, 328},
+ #endif
+ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH
+ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH},
+ #else
+ {"INVALID_TICKET_KEYS_LENGTH", 20, 325},
+ #endif
+ #ifdef SSL_R_LENGTH_MISMATCH
+ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH},
+ #else
+ {"LENGTH_MISMATCH", 20, 159},
+ #endif
+ #ifdef SSL_R_LENGTH_TOO_LONG
+ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG},
+ #else
+ {"LENGTH_TOO_LONG", 20, 404},
+ #endif
+ #ifdef SSL_R_LENGTH_TOO_SHORT
+ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT},
+ #else
+ {"LENGTH_TOO_SHORT", 20, 160},
+ #endif
+ #ifdef SSL_R_LIBRARY_BUG
+ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG},
+ #else
+ {"LIBRARY_BUG", 20, 274},
+ #endif
+ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS
+ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS},
+ #else
+ {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
+ #endif
+ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT
+ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
+ #else
+ {"MISSING_DSA_SIGNING_CERT", 20, 165},
+ #endif
+ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT
+ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT},
+ #else
+ {"MISSING_ECDSA_SIGNING_CERT", 20, 381},
+ #endif
+ #ifdef SSL_R_MISSING_FATAL
+ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL},
+ #else
+ {"MISSING_FATAL", 20, 256},
+ #endif
+ #ifdef SSL_R_MISSING_PARAMETERS
+ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS},
+ #else
+ {"MISSING_PARAMETERS", 20, 290},
+ #endif
+ #ifdef SSL_R_MISSING_RSA_CERTIFICATE
+ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE},
+ #else
+ {"MISSING_RSA_CERTIFICATE", 20, 168},
+ #endif
+ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT
+ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT},
+ #else
+ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169},
+ #endif
+ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT
+ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT},
+ #else
+ {"MISSING_RSA_SIGNING_CERT", 20, 170},
+ #endif
+ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION
+ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION},
+ #else
+ {"MISSING_SIGALGS_EXTENSION", 20, 112},
+ #endif
+ #ifdef SSL_R_MISSING_SIGNING_CERT
+ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT},
+ #else
+ {"MISSING_SIGNING_CERT", 20, 221},
+ #endif
+ #ifdef SSL_R_MISSING_SRP_PARAM
+ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM},
+ #else
+ {"MISSING_SRP_PARAM", 20, 358},
+ #endif
+ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION
+ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION},
+ #else
+ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
+ #endif
+ #ifdef SSL_R_MISSING_TMP_DH_KEY
+ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
+ #else
+ {"MISSING_TMP_DH_KEY", 20, 171},
+ #endif
+ #ifdef SSL_R_MISSING_TMP_ECDH_KEY
+ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY},
+ #else
+ {"MISSING_TMP_ECDH_KEY", 20, 311},
+ #endif
+ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA
+ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA},
+ #else
+ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293},
+ #endif
+ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY
+ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY},
+ #else
+ {"NOT_ON_RECORD_BOUNDARY", 20, 182},
+ #endif
+ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE
+ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE},
+ #else
+ {"NOT_REPLACING_CERTIFICATE", 20, 289},
+ #endif
+ #ifdef SSL_R_NOT_SERVER
+ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER},
+ #else
+ {"NOT_SERVER", 20, 284},
+ #endif
+ #ifdef SSL_R_NO_APPLICATION_PROTOCOL
+ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL},
+ #else
+ {"NO_APPLICATION_PROTOCOL", 20, 235},
+ #endif
+ #ifdef SSL_R_NO_CERTIFICATES_RETURNED
+ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED},
+ #else
+ {"NO_CERTIFICATES_RETURNED", 20, 176},
+ #endif
+ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED
+ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED},
+ #else
+ {"NO_CERTIFICATE_ASSIGNED", 20, 177},
+ #endif
+ #ifdef SSL_R_NO_CERTIFICATE_SET
+ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET},
+ #else
+ {"NO_CERTIFICATE_SET", 20, 179},
+ #endif
+ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR
+ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR},
+ #else
+ {"NO_CHANGE_FOLLOWING_HRR", 20, 214},
+ #endif
+ #ifdef SSL_R_NO_CIPHERS_AVAILABLE
+ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE},
+ #else
+ {"NO_CIPHERS_AVAILABLE", 20, 181},
+ #endif
+ #ifdef SSL_R_NO_CIPHERS_SPECIFIED
+ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED},
+ #else
+ {"NO_CIPHERS_SPECIFIED", 20, 183},
+ #endif
+ #ifdef SSL_R_NO_CIPHER_MATCH
+ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH},
+ #else
+ {"NO_CIPHER_MATCH", 20, 185},
+ #endif
+ #ifdef SSL_R_NO_CLIENT_CERT_METHOD
+ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD},
+ #else
+ {"NO_CLIENT_CERT_METHOD", 20, 331},
+ #endif
+ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED
+ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED},
+ #else
+ {"NO_COMPRESSION_SPECIFIED", 20, 187},
+ #endif
+ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET
+ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET},
+ #else
+ {"NO_COOKIE_CALLBACK_SET", 20, 287},
+ #endif
+ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER
+ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER},
+ #else
+ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330},
+ #endif
+ #ifdef SSL_R_NO_METHOD_SPECIFIED
+ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED},
+ #else
+ {"NO_METHOD_SPECIFIED", 20, 188},
+ #endif
+ #ifdef SSL_R_NO_PEM_EXTENSIONS
+ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS},
+ #else
+ {"NO_PEM_EXTENSIONS", 20, 389},
+ #endif
+ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED
+ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED},
+ #else
+ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190},
+ #endif
+ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE
+ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE},
+ #else
+ {"NO_PROTOCOLS_AVAILABLE", 20, 191},
+ #endif
+ #ifdef SSL_R_NO_RENEGOTIATION
+ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION},
+ #else
+ {"NO_RENEGOTIATION", 20, 339},
+ #endif
+ #ifdef SSL_R_NO_REQUIRED_DIGEST
+ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST},
+ #else
+ {"NO_REQUIRED_DIGEST", 20, 324},
+ #endif
+ #ifdef SSL_R_NO_SHARED_CIPHER
+ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER},
+ #else
+ {"NO_SHARED_CIPHER", 20, 193},
+ #endif
+ #ifdef SSL_R_NO_SHARED_GROUPS
+ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS},
+ #else
+ {"NO_SHARED_GROUPS", 20, 410},
+ #endif
+ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS
+ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS},
+ #else
+ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376},
+ #endif
+ #ifdef SSL_R_NO_SRTP_PROFILES
+ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES},
+ #else
+ {"NO_SRTP_PROFILES", 20, 359},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM
+ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM},
+ #else
+ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_GROUPS
+ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS},
+ #else
+ {"NO_SUITABLE_GROUPS", 20, 295},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE
+ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE},
+ #else
+ {"NO_SUITABLE_KEY_SHARE", 20, 101},
+ #endif
+ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
+ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
+ #else
+ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118},
+ #endif
+ #ifdef SSL_R_NO_VALID_SCTS
+ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS},
+ #else
+ {"NO_VALID_SCTS", 20, 216},
+ #endif
+ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK
+ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK},
+ #else
+ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403},
+ #endif
+ #ifdef SSL_R_NULL_SSL_CTX
+ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX},
+ #else
+ {"NULL_SSL_CTX", 20, 195},
+ #endif
+ #ifdef SSL_R_NULL_SSL_METHOD_PASSED
+ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED},
+ #else
+ {"NULL_SSL_METHOD_PASSED", 20, 196},
+ #endif
+ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED
+ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED},
+ #else
+ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197},
+ #endif
+ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED
+ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED},
+ #else
+ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344},
+ #endif
+ #ifdef SSL_R_OVERFLOW_ERROR
+ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR},
+ #else
+ {"OVERFLOW_ERROR", 20, 237},
+ #endif
+ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG
+ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG},
+ #else
+ {"PACKET_LENGTH_TOO_LONG", 20, 198},
+ #endif
+ #ifdef SSL_R_PARSE_TLSEXT
+ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT},
+ #else
+ {"PARSE_TLSEXT", 20, 227},
+ #endif
+ #ifdef SSL_R_PATH_TOO_LONG
+ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG},
+ #else
+ {"PATH_TOO_LONG", 20, 270},
+ #endif
+ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE
+ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE},
+ #else
+ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199},
+ #endif
+ #ifdef SSL_R_PEM_NAME_BAD_PREFIX
+ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX},
+ #else
+ {"PEM_NAME_BAD_PREFIX", 20, 391},
+ #endif
+ #ifdef SSL_R_PEM_NAME_TOO_SHORT
+ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT},
+ #else
+ {"PEM_NAME_TOO_SHORT", 20, 392},
+ #endif
+ #ifdef SSL_R_PIPELINE_FAILURE
+ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE},
+ #else
+ {"PIPELINE_FAILURE", 20, 406},
+ #endif
+ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
+ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
+ #else
+ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278},
+ #endif
+ #ifdef SSL_R_PRIVATE_KEY_MISMATCH
+ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH},
+ #else
+ {"PRIVATE_KEY_MISMATCH", 20, 288},
+ #endif
+ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN
+ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN},
+ #else
+ {"PROTOCOL_IS_SHUTDOWN", 20, 207},
+ #endif
+ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND
+ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND},
+ #else
+ {"PSK_IDENTITY_NOT_FOUND", 20, 223},
+ #endif
+ #ifdef SSL_R_PSK_NO_CLIENT_CB
+ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB},
+ #else
+ {"PSK_NO_CLIENT_CB", 20, 224},
+ #endif
+ #ifdef SSL_R_PSK_NO_SERVER_CB
+ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB},
+ #else
+ {"PSK_NO_SERVER_CB", 20, 225},
+ #endif
+ #ifdef SSL_R_READ_BIO_NOT_SET
+ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
+ #else
+ {"READ_BIO_NOT_SET", 20, 211},
+ #endif
+ #ifdef SSL_R_READ_TIMEOUT_EXPIRED
+ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED},
+ #else
+ {"READ_TIMEOUT_EXPIRED", 20, 312},
+ #endif
+ #ifdef SSL_R_RECORD_LENGTH_MISMATCH
+ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
+ #else
+ {"RECORD_LENGTH_MISMATCH", 20, 213},
+ #endif
+ #ifdef SSL_R_RECORD_TOO_SMALL
+ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL},
+ #else
+ {"RECORD_TOO_SMALL", 20, 298},
+ #endif
+ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
+ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
+ #else
+ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335},
+ #endif
+ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR
+ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR},
+ #else
+ {"RENEGOTIATION_ENCODING_ERR", 20, 336},
+ #endif
+ #ifdef SSL_R_RENEGOTIATION_MISMATCH
+ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH},
+ #else
+ {"RENEGOTIATION_MISMATCH", 20, 337},
+ #endif
+ #ifdef SSL_R_REQUEST_PENDING
+ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING},
+ #else
+ {"REQUEST_PENDING", 20, 285},
+ #endif
+ #ifdef SSL_R_REQUEST_SENT
+ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT},
+ #else
+ {"REQUEST_SENT", 20, 286},
+ #endif
+ #ifdef SSL_R_REQUIRED_CIPHER_MISSING
+ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING},
+ #else
+ {"REQUIRED_CIPHER_MISSING", 20, 215},
+ #endif
+ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING
+ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING},
+ #else
+ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342},
+ #endif
+ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING
+ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING},
+ #else
+ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345},
+ #endif
+ #ifdef SSL_R_SCT_VERIFICATION_FAILED
+ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED},
+ #else
+ {"SCT_VERIFICATION_FAILED", 20, 208},
+ #endif
+ #ifdef SSL_R_SERVERHELLO_TLSEXT
+ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
+ #else
+ {"SERVERHELLO_TLSEXT", 20, 275},
+ #endif
+ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED
+ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED},
+ #else
+ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277},
+ #endif
+ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT
+ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT},
+ #else
+ {"SHUTDOWN_WHILE_IN_INIT", 20, 407},
+ #endif
+ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR
+ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR},
+ #else
+ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360},
+ #endif
+ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE
+ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE},
+ #else
+ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220},
+ #endif
+ #ifdef SSL_R_SRP_A_CALC
+ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC},
+ #else
+ {"SRP_A_CALC", 20, 361},
+ #endif
+ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES
+ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES},
+ #else
+ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362},
+ #endif
+ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG
+ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG},
+ #else
+ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363},
+ #endif
+ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE
+ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE},
+ #else
+ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364},
+ #endif
+ #ifdef SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH
+ {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH},
+ #else
+ {"SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232},
+ #endif
+ #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME
+ {"SSL3_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME},
+ #else
+ {"SSL3_EXT_INVALID_SERVERNAME", 20, 319},
+ #endif
+ #ifdef SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE
+ {"SSL3_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE},
+ #else
+ {"SSL3_EXT_INVALID_SERVERNAME_TYPE", 20, 320},
+ #endif
+ #ifdef SSL_R_SSL3_SESSION_ID_TOO_LONG
+ {"SSL3_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL3_SESSION_ID_TOO_LONG},
+ #else
+ {"SSL3_SESSION_ID_TOO_LONG", 20, 300},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
+ {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
+ {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
+ #else
+ {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
+ #else
+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
+ #else
+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
+ #else
+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
+ {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
+ #else
+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
+ #endif
+ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
+ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
+ #else
+ {"SSL_COMMAND_SECTION_EMPTY", 20, 117},
+ #endif
+ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND
+ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND},
+ #else
+ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125},
+ #endif
+ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION
+ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION},
+ #else
+ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228},
+ #endif
+ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE
+ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE},
+ #else
+ {"SSL_HANDSHAKE_FAILURE", 20, 229},
+ #endif
+ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS
+ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS},
+ #else
+ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230},
+ #endif
+ #ifdef SSL_R_SSL_NEGATIVE_LENGTH
+ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH},
+ #else
+ {"SSL_NEGATIVE_LENGTH", 20, 372},
+ #endif
+ #ifdef SSL_R_SSL_SECTION_EMPTY
+ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY},
+ #else
+ {"SSL_SECTION_EMPTY", 20, 126},
+ #endif
+ #ifdef SSL_R_SSL_SECTION_NOT_FOUND
+ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND},
+ #else
+ {"SSL_SECTION_NOT_FOUND", 20, 136},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED
+ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED},
+ #else
+ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT
+ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT},
+ #else
+ {"SSL_SESSION_ID_CONFLICT", 20, 302},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG
+ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG},
+ #else
+ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH
+ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH},
+ #else
+ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG
+ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG},
+ #else
+ {"SSL_SESSION_ID_TOO_LONG", 20, 408},
+ #endif
+ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH
+ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH},
+ #else
+ {"SSL_SESSION_VERSION_MISMATCH", 20, 210},
+ #endif
+ #ifdef SSL_R_STILL_IN_INIT
+ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT},
+ #else
+ {"STILL_IN_INIT", 20, 121},
+ #endif
+ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
+ #else
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
+ #endif
+ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
+ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
+ #else
+ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
+ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
+ #else
+ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
+ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
+ #else
+ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
+ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
+ #else
+ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
+ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
+ #else
+ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
+ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
+ #else
+ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
+ #else
+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
+ #else
+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
+ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
+ #else
+ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
+ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
+ #else
+ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
+ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
+ #else
+ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
+ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
+ #else
+ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
+ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
+ #else
+ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
+ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
+ #else
+ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
+ #endif
+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
+ #else
+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
+ #endif
+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE
+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE},
+ #else
+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
+ #endif
+ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
+ #else
+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
+ #endif
+ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
+ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
+ #else
+ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
+ #endif
+ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
+ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
+ #else
+ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
+ #endif
+ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL
+ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL},
+ #else
+ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367},
+ #endif
+ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST
+ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST},
+ #else
+ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157},
+ #endif
+ #ifdef SSL_R_TOO_MANY_KEY_UPDATES
+ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES},
+ #else
+ {"TOO_MANY_KEY_UPDATES", 20, 132},
+ #endif
+ #ifdef SSL_R_TOO_MANY_WARN_ALERTS
+ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS},
+ #else
+ {"TOO_MANY_WARN_ALERTS", 20, 409},
+ #endif
+ #ifdef SSL_R_TOO_MUCH_EARLY_DATA
+ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA},
+ #else
+ {"TOO_MUCH_EARLY_DATA", 20, 164},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS
+ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS},
+ #else
+ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS
+ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS},
+ #else
+ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES
+ {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES},
+ #else
+ {"UNABLE_TO_LOAD_SSL3_MD5_ROUTINES", 20, 242},
+ #endif
+ #ifdef SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES
+ {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", ERR_LIB_SSL, SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES},
+ #else
+ {"UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES", 20, 243},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE
+ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE},
+ #else
+ {"UNEXPECTED_CCS_MESSAGE", 20, 262},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA
+ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA},
+ #else
+ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING
+ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING},
+ #else
+ {"UNEXPECTED_EOF_WHILE_READING", 20, 294},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_MESSAGE
+ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE},
+ #else
+ {"UNEXPECTED_MESSAGE", 20, 244},
+ #endif
+ #ifdef SSL_R_UNEXPECTED_RECORD
+ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD},
+ #else
+ {"UNEXPECTED_RECORD", 20, 245},
+ #endif
+ #ifdef SSL_R_UNINITIALIZED
+ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED},
+ #else
+ {"UNINITIALIZED", 20, 276},
+ #endif
+ #ifdef SSL_R_UNKNOWN_ALERT_TYPE
+ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE},
+ #else
+ {"UNKNOWN_ALERT_TYPE", 20, 246},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE
+ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE},
+ #else
+ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED
+ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED},
+ #else
+ {"UNKNOWN_CIPHER_RETURNED", 20, 248},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE
+ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE},
+ #else
+ {"UNKNOWN_CIPHER_TYPE", 20, 249},
+ #endif
+ #ifdef SSL_R_UNKNOWN_CMD_NAME
+ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME},
+ #else
+ {"UNKNOWN_CMD_NAME", 20, 386},
+ #endif
+ #ifdef SSL_R_UNKNOWN_COMMAND
+ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND},
+ #else
+ {"UNKNOWN_COMMAND", 20, 139},
+ #endif
+ #ifdef SSL_R_UNKNOWN_DIGEST
+ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST},
+ #else
+ {"UNKNOWN_DIGEST", 20, 368},
+ #endif
+ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE
+ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE},
+ #else
+ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
+ #endif
+ #ifdef SSL_R_UNKNOWN_PKEY_TYPE
+ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
+ #else
+ {"UNKNOWN_PKEY_TYPE", 20, 251},
+ #endif
+ #ifdef SSL_R_UNKNOWN_PROTOCOL
+ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL},
+ #else
+ {"UNKNOWN_PROTOCOL", 20, 252},
+ #endif
+ #ifdef SSL_R_UNKNOWN_SSL_VERSION
+ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION},
+ #else
+ {"UNKNOWN_SSL_VERSION", 20, 254},
+ #endif
+ #ifdef SSL_R_UNKNOWN_STATE
+ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE},
+ #else
+ {"UNKNOWN_STATE", 20, 255},
+ #endif
+ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED
+ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED},
+ #else
+ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338},
+ #endif
+ #ifdef SSL_R_UNSOLICITED_EXTENSION
+ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION},
+ #else
+ {"UNSOLICITED_EXTENSION", 20, 217},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM},
+ #else
+ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
+ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
+ #else
+ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_PROTOCOL
+ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL},
+ #else
+ {"UNSUPPORTED_PROTOCOL", 20, 258},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION
+ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION},
+ #else
+ {"UNSUPPORTED_SSL_VERSION", 20, 259},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE
+ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE},
+ #else
+ {"UNSUPPORTED_STATUS_TYPE", 20, 329},
+ #endif
+ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
+ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
+ #else
+ {"USE_SRTP_NOT_NEGOTIATED", 20, 369},
+ #endif
+ #ifdef SSL_R_VERSION_TOO_HIGH
+ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH},
+ #else
+ {"VERSION_TOO_HIGH", 20, 166},
+ #endif
+ #ifdef SSL_R_VERSION_TOO_LOW
+ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW},
+ #else
+ {"VERSION_TOO_LOW", 20, 396},
+ #endif
+ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE
+ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE},
+ #else
+ {"WRONG_CERTIFICATE_TYPE", 20, 383},
+ #endif
+ #ifdef SSL_R_WRONG_CIPHER_RETURNED
+ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED},
+ #else
+ {"WRONG_CIPHER_RETURNED", 20, 261},
+ #endif
+ #ifdef SSL_R_WRONG_CURVE
+ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE},
+ #else
+ {"WRONG_CURVE", 20, 378},
+ #endif
+ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH
+ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
+ #else
+ {"WRONG_SIGNATURE_LENGTH", 20, 264},
+ #endif
+ #ifdef SSL_R_WRONG_SIGNATURE_SIZE
+ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE},
+ #else
+ {"WRONG_SIGNATURE_SIZE", 20, 265},
+ #endif
+ #ifdef SSL_R_WRONG_SIGNATURE_TYPE
+ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE},
+ #else
+ {"WRONG_SIGNATURE_TYPE", 20, 370},
+ #endif
+ #ifdef SSL_R_WRONG_SSL_VERSION
+ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION},
+ #else
+ {"WRONG_SSL_VERSION", 20, 266},
+ #endif
+ #ifdef SSL_R_WRONG_VERSION_NUMBER
+ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER},
+ #else
+ {"WRONG_VERSION_NUMBER", 20, 267},
+ #endif
+ #ifdef SSL_R_X509_LIB
+ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB},
+ #else
+ {"X509_LIB", 20, 268},
+ #endif
+ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS
+ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS},
+ #else
+ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269},
+ #endif
+ #ifdef TS_R_BAD_PKCS7_TYPE
+ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE},
+ #else
+ {"BAD_PKCS7_TYPE", 47, 132},
+ #endif
+ #ifdef TS_R_BAD_TYPE
+ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE},
+ #else
+ {"BAD_TYPE", 47, 133},
+ #endif
+ #ifdef TS_R_CANNOT_LOAD_CERT
+ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT},
+ #else
+ {"CANNOT_LOAD_CERT", 47, 137},
+ #endif
+ #ifdef TS_R_CANNOT_LOAD_KEY
+ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY},
+ #else
+ {"CANNOT_LOAD_KEY", 47, 138},
+ #endif
+ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR
+ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR},
+ #else
+ {"CERTIFICATE_VERIFY_ERROR", 47, 100},
+ #endif
+ #ifdef TS_R_COULD_NOT_SET_ENGINE
+ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE},
+ #else
+ {"COULD_NOT_SET_ENGINE", 47, 127},
+ #endif
+ #ifdef TS_R_COULD_NOT_SET_TIME
+ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME},
+ #else
+ {"COULD_NOT_SET_TIME", 47, 115},
+ #endif
+ #ifdef TS_R_DETACHED_CONTENT
+ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT},
+ #else
+ {"DETACHED_CONTENT", 47, 134},
+ #endif
+ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR
+ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR},
+ #else
+ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116},
+ #endif
+ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR
+ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR},
+ #else
+ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139},
+ #endif
+ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR
+ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR},
+ #else
+ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101},
+ #endif
+ #ifdef TS_R_INVALID_NULL_POINTER
+ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER},
+ #else
+ {"INVALID_NULL_POINTER", 47, 102},
+ #endif
+ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE
+ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE},
+ #else
+ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117},
+ #endif
+ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH
+ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH},
+ #else
+ {"MESSAGE_IMPRINT_MISMATCH", 47, 103},
+ #endif
+ #ifdef TS_R_NONCE_MISMATCH
+ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH},
+ #else
+ {"NONCE_MISMATCH", 47, 104},
+ #endif
+ #ifdef TS_R_NONCE_NOT_RETURNED
+ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED},
+ #else
+ {"NONCE_NOT_RETURNED", 47, 105},
+ #endif
+ #ifdef TS_R_NO_CONTENT
+ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT},
+ #else
+ {"NO_CONTENT", 47, 106},
+ #endif
+ #ifdef TS_R_NO_TIME_STAMP_TOKEN
+ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN},
+ #else
+ {"NO_TIME_STAMP_TOKEN", 47, 107},
+ #endif
+ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR
+ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118},
+ #endif
+ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR
+ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR},
+ #else
+ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119},
+ #endif
+ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED
+ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED},
+ #else
+ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129},
+ #endif
+ #ifdef TS_R_POLICY_MISMATCH
+ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH},
+ #else
+ {"POLICY_MISMATCH", 47, 108},
+ #endif
+ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE},
+ #else
+ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120},
+ #endif
+ #ifdef TS_R_RESPONSE_SETUP_ERROR
+ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR},
+ #else
+ {"RESPONSE_SETUP_ERROR", 47, 121},
+ #endif
+ #ifdef TS_R_SIGNATURE_FAILURE
+ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE},
+ #else
+ {"SIGNATURE_FAILURE", 47, 109},
+ #endif
+ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER
+ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER},
+ #else
+ {"THERE_MUST_BE_ONE_SIGNER", 47, 110},
+ #endif
+ #ifdef TS_R_TIME_SYSCALL_ERROR
+ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR},
+ #else
+ {"TIME_SYSCALL_ERROR", 47, 122},
+ #endif
+ #ifdef TS_R_TOKEN_NOT_PRESENT
+ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT},
+ #else
+ {"TOKEN_NOT_PRESENT", 47, 130},
+ #endif
+ #ifdef TS_R_TOKEN_PRESENT
+ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT},
+ #else
+ {"TOKEN_PRESENT", 47, 131},
+ #endif
+ #ifdef TS_R_TSA_NAME_MISMATCH
+ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH},
+ #else
+ {"TSA_NAME_MISMATCH", 47, 111},
+ #endif
+ #ifdef TS_R_TSA_UNTRUSTED
+ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED},
+ #else
+ {"TSA_UNTRUSTED", 47, 112},
+ #endif
+ #ifdef TS_R_TST_INFO_SETUP_ERROR
+ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR},
+ #else
+ {"TST_INFO_SETUP_ERROR", 47, 123},
+ #endif
+ #ifdef TS_R_TS_DATASIGN
+ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN},
+ #else
+ {"TS_DATASIGN", 47, 124},
+ #endif
+ #ifdef TS_R_UNACCEPTABLE_POLICY
+ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY},
+ #else
+ {"UNACCEPTABLE_POLICY", 47, 125},
+ #endif
+ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM
+ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM},
+ #else
+ {"UNSUPPORTED_MD_ALGORITHM", 47, 126},
+ #endif
+ #ifdef TS_R_UNSUPPORTED_VERSION
+ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION},
+ #else
+ {"UNSUPPORTED_VERSION", 47, 113},
+ #endif
+ #ifdef TS_R_VAR_BAD_VALUE
+ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE},
+ #else
+ {"VAR_BAD_VALUE", 47, 135},
+ #endif
+ #ifdef TS_R_VAR_LOOKUP_FAILURE
+ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE},
+ #else
+ {"VAR_LOOKUP_FAILURE", 47, 136},
+ #endif
+ #ifdef TS_R_WRONG_CONTENT_TYPE
+ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE},
+ #else
+ {"WRONG_CONTENT_TYPE", 47, 114},
+ #endif
+ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS
+ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS},
+ #else
+ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104},
+ #endif
+ #ifdef UI_R_INDEX_TOO_LARGE
+ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE},
+ #else
+ {"INDEX_TOO_LARGE", 40, 102},
+ #endif
+ #ifdef UI_R_INDEX_TOO_SMALL
+ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL},
+ #else
+ {"INDEX_TOO_SMALL", 40, 103},
+ #endif
+ #ifdef UI_R_NO_RESULT_BUFFER
+ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER},
+ #else
+ {"NO_RESULT_BUFFER", 40, 105},
+ #endif
+ #ifdef UI_R_PROCESSING_ERROR
+ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR},
+ #else
+ {"PROCESSING_ERROR", 40, 107},
+ #endif
+ #ifdef UI_R_RESULT_TOO_LARGE
+ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE},
+ #else
+ {"RESULT_TOO_LARGE", 40, 100},
+ #endif
+ #ifdef UI_R_RESULT_TOO_SMALL
+ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL},
+ #else
+ {"RESULT_TOO_SMALL", 40, 101},
+ #endif
+ #ifdef UI_R_SYSASSIGN_ERROR
+ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR},
+ #else
+ {"SYSASSIGN_ERROR", 40, 109},
+ #endif
+ #ifdef UI_R_SYSDASSGN_ERROR
+ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR},
+ #else
+ {"SYSDASSGN_ERROR", 40, 110},
+ #endif
+ #ifdef UI_R_SYSQIOW_ERROR
+ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR},
+ #else
+ {"SYSQIOW_ERROR", 40, 111},
+ #endif
+ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND
+ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND},
+ #else
+ {"UNKNOWN_CONTROL_COMMAND", 40, 106},
+ #endif
+ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE
+ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE},
+ #else
+ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108},
+ #endif
+ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED
+ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED},
+ #else
+ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112},
+ #endif
+ #ifdef X509V3_R_BAD_IP_ADDRESS
+ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS},
+ #else
+ {"BAD_IP_ADDRESS", 34, 118},
+ #endif
+ #ifdef X509V3_R_BAD_OBJECT
+ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT},
+ #else
+ {"BAD_OBJECT", 34, 119},
+ #endif
+ #ifdef X509V3_R_BN_DEC2BN_ERROR
+ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
+ #else
+ {"BN_DEC2BN_ERROR", 34, 100},
+ #endif
+ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR
+ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR},
+ #else
+ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101},
+ #endif
+ #ifdef X509V3_R_DIRNAME_ERROR
+ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR},
+ #else
+ {"DIRNAME_ERROR", 34, 149},
+ #endif
+ #ifdef X509V3_R_DISTPOINT_ALREADY_SET
+ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET},
+ #else
+ {"DISTPOINT_ALREADY_SET", 34, 160},
+ #endif
+ #ifdef X509V3_R_DUPLICATE_ZONE_ID
+ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID},
+ #else
+ {"DUPLICATE_ZONE_ID", 34, 133},
+ #endif
+ #ifdef X509V3_R_EMPTY_KEY_USAGE
+ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE},
+ #else
+ {"EMPTY_KEY_USAGE", 34, 169},
+ #endif
+ #ifdef X509V3_R_ERROR_CONVERTING_ZONE
+ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE},
+ #else
+ {"ERROR_CONVERTING_ZONE", 34, 131},
+ #endif
+ #ifdef X509V3_R_ERROR_CREATING_EXTENSION
+ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION},
+ #else
+ {"ERROR_CREATING_EXTENSION", 34, 144},
+ #endif
+ #ifdef X509V3_R_ERROR_IN_EXTENSION
+ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION},
+ #else
+ {"ERROR_IN_EXTENSION", 34, 128},
+ #endif
+ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME
+ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME},
+ #else
+ {"EXPECTED_A_SECTION_NAME", 34, 137},
+ #endif
+ #ifdef X509V3_R_EXTENSION_EXISTS
+ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS},
+ #else
+ {"EXTENSION_EXISTS", 34, 145},
+ #endif
+ #ifdef X509V3_R_EXTENSION_NAME_ERROR
+ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR},
+ #else
+ {"EXTENSION_NAME_ERROR", 34, 115},
+ #endif
+ #ifdef X509V3_R_EXTENSION_NOT_FOUND
+ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND},
+ #else
+ {"EXTENSION_NOT_FOUND", 34, 102},
+ #endif
+ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED
+ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED},
+ #else
+ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103},
+ #endif
+ #ifdef X509V3_R_EXTENSION_VALUE_ERROR
+ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR},
+ #else
+ {"EXTENSION_VALUE_ERROR", 34, 116},
+ #endif
+ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION
+ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION},
+ #else
+ {"ILLEGAL_EMPTY_EXTENSION", 34, 151},
+ #endif
+ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG
+ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG},
+ #else
+ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152},
+ #endif
+ #ifdef X509V3_R_INVALID_ASNUMBER
+ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER},
+ #else
+ {"INVALID_ASNUMBER", 34, 162},
+ #endif
+ #ifdef X509V3_R_INVALID_ASRANGE
+ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE},
+ #else
+ {"INVALID_ASRANGE", 34, 163},
+ #endif
+ #ifdef X509V3_R_INVALID_BOOLEAN_STRING
+ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING},
+ #else
+ {"INVALID_BOOLEAN_STRING", 34, 104},
+ #endif
+ #ifdef X509V3_R_INVALID_CERTIFICATE
+ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE},
+ #else
+ {"INVALID_CERTIFICATE", 34, 158},
+ #endif
+ #ifdef X509V3_R_INVALID_EMPTY_NAME
+ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME},
+ #else
+ {"INVALID_EMPTY_NAME", 34, 108},
+ #endif
+ #ifdef X509V3_R_INVALID_EXTENSION_STRING
+ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING},
+ #else
+ {"INVALID_EXTENSION_STRING", 34, 105},
+ #endif
+ #ifdef X509V3_R_INVALID_INHERITANCE
+ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE},
+ #else
+ {"INVALID_INHERITANCE", 34, 165},
+ #endif
+ #ifdef X509V3_R_INVALID_IPADDRESS
+ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS},
+ #else
+ {"INVALID_IPADDRESS", 34, 166},
+ #endif
+ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS
+ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS},
+ #else
+ {"INVALID_MULTIPLE_RDNS", 34, 161},
+ #endif
+ #ifdef X509V3_R_INVALID_NAME
+ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME},
+ #else
+ {"INVALID_NAME", 34, 106},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_ARGUMENT
+ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT},
+ #else
+ {"INVALID_NULL_ARGUMENT", 34, 107},
+ #endif
+ #ifdef X509V3_R_INVALID_NULL_VALUE
+ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE},
+ #else
+ {"INVALID_NULL_VALUE", 34, 109},
+ #endif
+ #ifdef X509V3_R_INVALID_NUMBER
+ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER},
+ #else
+ {"INVALID_NUMBER", 34, 140},
+ #endif
+ #ifdef X509V3_R_INVALID_NUMBERS
+ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS},
+ #else
+ {"INVALID_NUMBERS", 34, 141},
+ #endif
+ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER
+ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER},
+ #else
+ {"INVALID_OBJECT_IDENTIFIER", 34, 110},
+ #endif
+ #ifdef X509V3_R_INVALID_OPTION
+ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION},
+ #else
+ {"INVALID_OPTION", 34, 138},
+ #endif
+ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER
+ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER},
+ #else
+ {"INVALID_POLICY_IDENTIFIER", 34, 134},
+ #endif
+ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING
+ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING},
+ #else
+ {"INVALID_PROXY_POLICY_SETTING", 34, 153},
+ #endif
+ #ifdef X509V3_R_INVALID_PURPOSE
+ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE},
+ #else
+ {"INVALID_PURPOSE", 34, 146},
+ #endif
+ #ifdef X509V3_R_INVALID_SAFI
+ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI},
+ #else
+ {"INVALID_SAFI", 34, 164},
+ #endif
+ #ifdef X509V3_R_INVALID_SECTION
+ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION},
+ #else
+ {"INVALID_SECTION", 34, 135},
+ #endif
+ #ifdef X509V3_R_INVALID_SYNTAX
+ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX},
+ #else
+ {"INVALID_SYNTAX", 34, 143},
+ #endif
+ #ifdef X509V3_R_ISSUER_DECODE_ERROR
+ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR},
+ #else
+ {"ISSUER_DECODE_ERROR", 34, 126},
+ #endif
+ #ifdef X509V3_R_MISSING_VALUE
+ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE},
+ #else
+ {"MISSING_VALUE", 34, 124},
+ #endif
+ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS
+ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS},
+ #else
+ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142},
+ #endif
+ #ifdef X509V3_R_NEGATIVE_PATHLEN
+ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN},
+ #else
+ {"NEGATIVE_PATHLEN", 34, 168},
+ #endif
+ #ifdef X509V3_R_NO_CONFIG_DATABASE
+ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE},
+ #else
+ {"NO_CONFIG_DATABASE", 34, 136},
+ #endif
+ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE
+ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE},
+ #else
+ {"NO_ISSUER_CERTIFICATE", 34, 121},
+ #endif
+ #ifdef X509V3_R_NO_ISSUER_DETAILS
+ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS},
+ #else
+ {"NO_ISSUER_DETAILS", 34, 127},
+ #endif
+ #ifdef X509V3_R_NO_POLICY_IDENTIFIER
+ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER},
+ #else
+ {"NO_POLICY_IDENTIFIER", 34, 139},
+ #endif
+ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED
+ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED},
+ #else
+ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154},
+ #endif
+ #ifdef X509V3_R_NO_PUBLIC_KEY
+ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY},
+ #else
+ {"NO_PUBLIC_KEY", 34, 114},
+ #endif
+ #ifdef X509V3_R_NO_SUBJECT_DETAILS
+ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS},
+ #else
+ {"NO_SUBJECT_DETAILS", 34, 125},
+ #endif
+ #ifdef X509V3_R_OPERATION_NOT_DEFINED
+ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED},
+ #else
+ {"OPERATION_NOT_DEFINED", 34, 148},
+ #endif
+ #ifdef X509V3_R_OTHERNAME_ERROR
+ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR},
+ #else
+ {"OTHERNAME_ERROR", 34, 147},
+ #endif
+ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED
+ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED},
+ #else
+ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155},
+ #endif
+ #ifdef X509V3_R_POLICY_PATH_LENGTH
+ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH},
+ #else
+ {"POLICY_PATH_LENGTH", 34, 156},
+ #endif
+ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED
+ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED},
+ #else
+ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157},
+ #endif
+ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY
+ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY},
+ #else
+ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159},
+ #endif
+ #ifdef X509V3_R_SECTION_NOT_FOUND
+ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND},
+ #else
+ {"SECTION_NOT_FOUND", 34, 150},
+ #endif
+ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS
+ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS},
+ #else
+ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122},
+ #endif
+ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID
+ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID},
+ #else
+ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT
+ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT},
+ #else
+ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_EXTENSION
+ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION},
+ #else
+ {"UNKNOWN_EXTENSION", 34, 129},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME
+ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME},
+ #else
+ {"UNKNOWN_EXTENSION_NAME", 34, 130},
+ #endif
+ #ifdef X509V3_R_UNKNOWN_OPTION
+ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION},
+ #else
+ {"UNKNOWN_OPTION", 34, 120},
+ #endif
+ #ifdef X509V3_R_UNSUPPORTED_OPTION
+ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
+ #else
+ {"UNSUPPORTED_OPTION", 34, 117},
+ #endif
+ #ifdef X509V3_R_UNSUPPORTED_TYPE
+ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE},
+ #else
+ {"UNSUPPORTED_TYPE", 34, 167},
+ #endif
+ #ifdef X509V3_R_USER_TOO_LONG
+ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG},
+ #else
+ {"USER_TOO_LONG", 34, 132},
+ #endif
+ #ifdef X509_R_AKID_MISMATCH
+ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH},
+ #else
+ {"AKID_MISMATCH", 11, 110},
+ #endif
+ #ifdef X509_R_BAD_SELECTOR
+ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR},
+ #else
+ {"BAD_SELECTOR", 11, 133},
+ #endif
+ #ifdef X509_R_BAD_X509_FILETYPE
+ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE},
+ #else
+ {"BAD_X509_FILETYPE", 11, 100},
+ #endif
+ #ifdef X509_R_BASE64_DECODE_ERROR
+ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR},
+ #else
+ {"BASE64_DECODE_ERROR", 11, 118},
+ #endif
+ #ifdef X509_R_CANT_CHECK_DH_KEY
+ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY},
+ #else
+ {"CANT_CHECK_DH_KEY", 11, 114},
+ #endif
+ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED
+ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED},
+ #else
+ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139},
+ #endif
+ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE
+ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE},
+ #else
+ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101},
+ #endif
+ #ifdef X509_R_CRL_ALREADY_DELTA
+ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA},
+ #else
+ {"CRL_ALREADY_DELTA", 11, 127},
+ #endif
+ #ifdef X509_R_CRL_VERIFY_FAILURE
+ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE},
+ #else
+ {"CRL_VERIFY_FAILURE", 11, 131},
+ #endif
+ #ifdef X509_R_ERROR_GETTING_MD_BY_NID
+ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID},
+ #else
+ {"ERROR_GETTING_MD_BY_NID", 11, 141},
+ #endif
+ #ifdef X509_R_ERROR_USING_SIGINF_SET
+ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET},
+ #else
+ {"ERROR_USING_SIGINF_SET", 11, 142},
+ #endif
+ #ifdef X509_R_IDP_MISMATCH
+ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH},
+ #else
+ {"IDP_MISMATCH", 11, 128},
+ #endif
+ #ifdef X509_R_INVALID_ATTRIBUTES
+ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES},
+ #else
+ {"INVALID_ATTRIBUTES", 11, 138},
+ #endif
+ #ifdef X509_R_INVALID_DIRECTORY
+ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY},
+ #else
+ {"INVALID_DIRECTORY", 11, 113},
+ #endif
+ #ifdef X509_R_INVALID_DISTPOINT
+ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT},
+ #else
+ {"INVALID_DISTPOINT", 11, 143},
+ #endif
+ #ifdef X509_R_INVALID_FIELD_NAME
+ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME},
+ #else
+ {"INVALID_FIELD_NAME", 11, 119},
+ #endif
+ #ifdef X509_R_INVALID_TRUST
+ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST},
+ #else
+ {"INVALID_TRUST", 11, 123},
+ #endif
+ #ifdef X509_R_ISSUER_MISMATCH
+ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH},
+ #else
+ {"ISSUER_MISMATCH", 11, 129},
+ #endif
+ #ifdef X509_R_KEY_TYPE_MISMATCH
+ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH},
+ #else
+ {"KEY_TYPE_MISMATCH", 11, 115},
+ #endif
+ #ifdef X509_R_KEY_VALUES_MISMATCH
+ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH},
+ #else
+ {"KEY_VALUES_MISMATCH", 11, 116},
+ #endif
+ #ifdef X509_R_LOADING_CERT_DIR
+ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR},
+ #else
+ {"LOADING_CERT_DIR", 11, 103},
+ #endif
+ #ifdef X509_R_LOADING_DEFAULTS
+ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS},
+ #else
+ {"LOADING_DEFAULTS", 11, 104},
+ #endif
+ #ifdef X509_R_METHOD_NOT_SUPPORTED
+ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED},
+ #else
+ {"METHOD_NOT_SUPPORTED", 11, 124},
+ #endif
+ #ifdef X509_R_NAME_TOO_LONG
+ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG},
+ #else
+ {"NAME_TOO_LONG", 11, 134},
+ #endif
+ #ifdef X509_R_NEWER_CRL_NOT_NEWER
+ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER},
+ #else
+ {"NEWER_CRL_NOT_NEWER", 11, 132},
+ #endif
+ #ifdef X509_R_NO_CERTIFICATE_FOUND
+ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND},
+ #else
+ {"NO_CERTIFICATE_FOUND", 11, 135},
+ #endif
+ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND
+ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND},
+ #else
+ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136},
+ #endif
+ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY
+ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY},
+ #else
+ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105},
+ #endif
+ #ifdef X509_R_NO_CRL_FOUND
+ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND},
+ #else
+ {"NO_CRL_FOUND", 11, 137},
+ #endif
+ #ifdef X509_R_NO_CRL_NUMBER
+ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER},
+ #else
+ {"NO_CRL_NUMBER", 11, 130},
+ #endif
+ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR
+ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR},
+ #else
+ {"PUBLIC_KEY_DECODE_ERROR", 11, 125},
+ #endif
+ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR
+ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR},
+ #else
+ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126},
+ #endif
+ #ifdef X509_R_SHOULD_RETRY
+ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY},
+ #else
+ {"SHOULD_RETRY", 11, 106},
+ #endif
+ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN
+ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN},
+ #else
+ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107},
+ #endif
+ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY
+ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY},
+ #else
+ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108},
+ #endif
+ #ifdef X509_R_UNKNOWN_KEY_TYPE
+ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE},
+ #else
+ {"UNKNOWN_KEY_TYPE", 11, 117},
+ #endif
+ #ifdef X509_R_UNKNOWN_NID
+ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID},
+ #else
+ {"UNKNOWN_NID", 11, 109},
+ #endif
+ #ifdef X509_R_UNKNOWN_PURPOSE_ID
+ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID},
+ #else
+ {"UNKNOWN_PURPOSE_ID", 11, 121},
+ #endif
+ #ifdef X509_R_UNKNOWN_SIGID_ALGS
+ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS},
+ #else
+ {"UNKNOWN_SIGID_ALGS", 11, 144},
+ #endif
+ #ifdef X509_R_UNKNOWN_TRUST_ID
+ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID},
+ #else
+ {"UNKNOWN_TRUST_ID", 11, 120},
+ #endif
+ #ifdef X509_R_UNSUPPORTED_ALGORITHM
+ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM},
+ #else
+ {"UNSUPPORTED_ALGORITHM", 11, 111},
+ #endif
+ #ifdef X509_R_WRONG_LOOKUP_TYPE
+ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
+ #else
+ {"WRONG_LOOKUP_TYPE", 11, 112},
+ #endif
+ #ifdef X509_R_WRONG_TYPE
+ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE},
+ #else
+ {"WRONG_TYPE", 11, 122},
+ #endif
+ { NULL }
+};
+
diff --git a/contrib/tools/python3/src/Modules/_stat.c b/contrib/tools/python3/src/Modules/_stat.c
index 63d41f00e4..546e6a5f94 100644
--- a/contrib/tools/python3/src/Modules/_stat.c
+++ b/contrib/tools/python3/src/Modules/_stat.c
@@ -40,10 +40,10 @@ typedef unsigned short mode_t;
# define FILE_ATTRIBUTE_NO_SCRUB_DATA 0x20000
#endif
-#ifndef IO_REPARSE_TAG_APPEXECLINK
-# define IO_REPARSE_TAG_APPEXECLINK 0x8000001BL
-#endif
-
+#ifndef IO_REPARSE_TAG_APPEXECLINK
+# define IO_REPARSE_TAG_APPEXECLINK 0x8000001BL
+#endif
+
#endif /* MS_WINDOWS */
/* From Python's stat.py */
@@ -496,142 +496,142 @@ ST_CTIME\n\
");
-static int
-stat_exec(PyObject *module)
+static int
+stat_exec(PyObject *module)
{
-#define ADD_INT_MACRO(module, macro) \
- do { \
- if (PyModule_AddIntConstant(module, #macro, macro) < 0) { \
- return -1; \
- } \
- } while (0)
-
- ADD_INT_MACRO(module, S_IFDIR);
- ADD_INT_MACRO(module, S_IFCHR);
- ADD_INT_MACRO(module, S_IFBLK);
- ADD_INT_MACRO(module, S_IFREG);
- ADD_INT_MACRO(module, S_IFIFO);
- ADD_INT_MACRO(module, S_IFLNK);
- ADD_INT_MACRO(module, S_IFSOCK);
- ADD_INT_MACRO(module, S_IFDOOR);
- ADD_INT_MACRO(module, S_IFPORT);
- ADD_INT_MACRO(module, S_IFWHT);
-
- ADD_INT_MACRO(module, S_ISUID);
- ADD_INT_MACRO(module, S_ISGID);
- ADD_INT_MACRO(module, S_ISVTX);
- ADD_INT_MACRO(module, S_ENFMT);
-
- ADD_INT_MACRO(module, S_IREAD);
- ADD_INT_MACRO(module, S_IWRITE);
- ADD_INT_MACRO(module, S_IEXEC);
-
- ADD_INT_MACRO(module, S_IRWXU);
- ADD_INT_MACRO(module, S_IRUSR);
- ADD_INT_MACRO(module, S_IWUSR);
- ADD_INT_MACRO(module, S_IXUSR);
-
- ADD_INT_MACRO(module, S_IRWXG);
- ADD_INT_MACRO(module, S_IRGRP);
- ADD_INT_MACRO(module, S_IWGRP);
- ADD_INT_MACRO(module, S_IXGRP);
-
- ADD_INT_MACRO(module, S_IRWXO);
- ADD_INT_MACRO(module, S_IROTH);
- ADD_INT_MACRO(module, S_IWOTH);
- ADD_INT_MACRO(module, S_IXOTH);
-
- ADD_INT_MACRO(module, UF_NODUMP);
- ADD_INT_MACRO(module, UF_IMMUTABLE);
- ADD_INT_MACRO(module, UF_APPEND);
- ADD_INT_MACRO(module, UF_OPAQUE);
- ADD_INT_MACRO(module, UF_NOUNLINK);
- ADD_INT_MACRO(module, UF_COMPRESSED);
- ADD_INT_MACRO(module, UF_HIDDEN);
- ADD_INT_MACRO(module, SF_ARCHIVED);
- ADD_INT_MACRO(module, SF_IMMUTABLE);
- ADD_INT_MACRO(module, SF_APPEND);
- ADD_INT_MACRO(module, SF_NOUNLINK);
- ADD_INT_MACRO(module, SF_SNAPSHOT);
-
- const char* st_constants[] = {
- "ST_MODE",
- "ST_INO",
- "ST_DEV",
- "ST_NLINK",
- "ST_UID",
- "ST_GID",
- "ST_SIZE",
- "ST_ATIME",
- "ST_MTIME",
- "ST_CTIME"
- };
-
- for (int i = 0; i < (int)Py_ARRAY_LENGTH(st_constants); i++) {
- if (PyModule_AddIntConstant(module, st_constants[i], i) < 0) {
- return -1;
- }
- }
-
+#define ADD_INT_MACRO(module, macro) \
+ do { \
+ if (PyModule_AddIntConstant(module, #macro, macro) < 0) { \
+ return -1; \
+ } \
+ } while (0)
+
+ ADD_INT_MACRO(module, S_IFDIR);
+ ADD_INT_MACRO(module, S_IFCHR);
+ ADD_INT_MACRO(module, S_IFBLK);
+ ADD_INT_MACRO(module, S_IFREG);
+ ADD_INT_MACRO(module, S_IFIFO);
+ ADD_INT_MACRO(module, S_IFLNK);
+ ADD_INT_MACRO(module, S_IFSOCK);
+ ADD_INT_MACRO(module, S_IFDOOR);
+ ADD_INT_MACRO(module, S_IFPORT);
+ ADD_INT_MACRO(module, S_IFWHT);
+
+ ADD_INT_MACRO(module, S_ISUID);
+ ADD_INT_MACRO(module, S_ISGID);
+ ADD_INT_MACRO(module, S_ISVTX);
+ ADD_INT_MACRO(module, S_ENFMT);
+
+ ADD_INT_MACRO(module, S_IREAD);
+ ADD_INT_MACRO(module, S_IWRITE);
+ ADD_INT_MACRO(module, S_IEXEC);
+
+ ADD_INT_MACRO(module, S_IRWXU);
+ ADD_INT_MACRO(module, S_IRUSR);
+ ADD_INT_MACRO(module, S_IWUSR);
+ ADD_INT_MACRO(module, S_IXUSR);
+
+ ADD_INT_MACRO(module, S_IRWXG);
+ ADD_INT_MACRO(module, S_IRGRP);
+ ADD_INT_MACRO(module, S_IWGRP);
+ ADD_INT_MACRO(module, S_IXGRP);
+
+ ADD_INT_MACRO(module, S_IRWXO);
+ ADD_INT_MACRO(module, S_IROTH);
+ ADD_INT_MACRO(module, S_IWOTH);
+ ADD_INT_MACRO(module, S_IXOTH);
+
+ ADD_INT_MACRO(module, UF_NODUMP);
+ ADD_INT_MACRO(module, UF_IMMUTABLE);
+ ADD_INT_MACRO(module, UF_APPEND);
+ ADD_INT_MACRO(module, UF_OPAQUE);
+ ADD_INT_MACRO(module, UF_NOUNLINK);
+ ADD_INT_MACRO(module, UF_COMPRESSED);
+ ADD_INT_MACRO(module, UF_HIDDEN);
+ ADD_INT_MACRO(module, SF_ARCHIVED);
+ ADD_INT_MACRO(module, SF_IMMUTABLE);
+ ADD_INT_MACRO(module, SF_APPEND);
+ ADD_INT_MACRO(module, SF_NOUNLINK);
+ ADD_INT_MACRO(module, SF_SNAPSHOT);
+
+ const char* st_constants[] = {
+ "ST_MODE",
+ "ST_INO",
+ "ST_DEV",
+ "ST_NLINK",
+ "ST_UID",
+ "ST_GID",
+ "ST_SIZE",
+ "ST_ATIME",
+ "ST_MTIME",
+ "ST_CTIME"
+ };
+
+ for (int i = 0; i < (int)Py_ARRAY_LENGTH(st_constants); i++) {
+ if (PyModule_AddIntConstant(module, st_constants[i], i) < 0) {
+ return -1;
+ }
+ }
+
#ifdef MS_WINDOWS
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_ARCHIVE);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_COMPRESSED);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_DEVICE);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_DIRECTORY);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_ENCRYPTED);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_HIDDEN);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_INTEGRITY_STREAM);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_NORMAL);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_NO_SCRUB_DATA);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_OFFLINE);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_READONLY);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_REPARSE_POINT);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_SPARSE_FILE);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_SYSTEM);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_TEMPORARY);
- ADD_INT_MACRO(module, FILE_ATTRIBUTE_VIRTUAL);
-
- if (PyModule_AddObject(module, "IO_REPARSE_TAG_SYMLINK",
- PyLong_FromUnsignedLong(IO_REPARSE_TAG_SYMLINK)) < 0) {
- return -1;
- }
- if (PyModule_AddObject(module, "IO_REPARSE_TAG_MOUNT_POINT",
- PyLong_FromUnsignedLong(IO_REPARSE_TAG_MOUNT_POINT)) < 0) {
- return -1;
- }
- if (PyModule_AddObject(module, "IO_REPARSE_TAG_APPEXECLINK",
- PyLong_FromUnsignedLong(IO_REPARSE_TAG_APPEXECLINK)) < 0) {
- return -1;
- }
-#endif
-
- return 0;
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_ARCHIVE);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_COMPRESSED);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_DEVICE);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_DIRECTORY);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_ENCRYPTED);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_HIDDEN);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_INTEGRITY_STREAM);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_NORMAL);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_NO_SCRUB_DATA);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_OFFLINE);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_READONLY);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_REPARSE_POINT);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_SPARSE_FILE);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_SYSTEM);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_TEMPORARY);
+ ADD_INT_MACRO(module, FILE_ATTRIBUTE_VIRTUAL);
+
+ if (PyModule_AddObject(module, "IO_REPARSE_TAG_SYMLINK",
+ PyLong_FromUnsignedLong(IO_REPARSE_TAG_SYMLINK)) < 0) {
+ return -1;
+ }
+ if (PyModule_AddObject(module, "IO_REPARSE_TAG_MOUNT_POINT",
+ PyLong_FromUnsignedLong(IO_REPARSE_TAG_MOUNT_POINT)) < 0) {
+ return -1;
+ }
+ if (PyModule_AddObject(module, "IO_REPARSE_TAG_APPEXECLINK",
+ PyLong_FromUnsignedLong(IO_REPARSE_TAG_APPEXECLINK)) < 0) {
+ return -1;
+ }
+#endif
+
+ return 0;
+}
+
+
+static PyModuleDef_Slot stat_slots[] = {
+ {Py_mod_exec, stat_exec},
+ {0, NULL}
+};
+
+
+static struct PyModuleDef statmodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "_stat",
+ .m_doc = module_doc,
+ .m_size = 0,
+ .m_methods = stat_methods,
+ .m_slots = stat_slots,
+};
+
+
+PyMODINIT_FUNC
+PyInit__stat(void)
+{
+ return PyModuleDef_Init(&statmodule);
}
-
-static PyModuleDef_Slot stat_slots[] = {
- {Py_mod_exec, stat_exec},
- {0, NULL}
-};
-
-
-static struct PyModuleDef statmodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "_stat",
- .m_doc = module_doc,
- .m_size = 0,
- .m_methods = stat_methods,
- .m_slots = stat_slots,
-};
-
-
-PyMODINIT_FUNC
-PyInit__stat(void)
-{
- return PyModuleDef_Init(&statmodule);
-}
-
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Modules/_statisticsmodule.c b/contrib/tools/python3/src/Modules/_statisticsmodule.c
index fd65b659b4..78c0676a01 100644
--- a/contrib/tools/python3/src/Modules/_statisticsmodule.c
+++ b/contrib/tools/python3/src/Modules/_statisticsmodule.c
@@ -1,151 +1,151 @@
-/* statistics accelerator C extension: _statistics module. */
-
-#include "Python.h"
-#include "clinic/_statisticsmodule.c.h"
-
-/*[clinic input]
-module _statistics
-
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=864a6f59b76123b2]*/
-
-/*
- * There is no closed-form solution to the inverse CDF for the normal
- * distribution, so we use a rational approximation instead:
- * Wichura, M.J. (1988). "Algorithm AS241: The Percentage Points of the
- * Normal Distribution". Applied Statistics. Blackwell Publishing. 37
- * (3): 477–484. doi:10.2307/2347330. JSTOR 2347330.
- */
-
-/*[clinic input]
-_statistics._normal_dist_inv_cdf -> double
- p: double
- mu: double
- sigma: double
- /
-[clinic start generated code]*/
-
-static double
-_statistics__normal_dist_inv_cdf_impl(PyObject *module, double p, double mu,
- double sigma)
-/*[clinic end generated code: output=02fd19ddaab36602 input=24715a74be15296a]*/
-{
- double q, num, den, r, x;
- if (p <= 0.0 || p >= 1.0 || sigma <= 0.0) {
- goto error;
- }
-
- q = p - 0.5;
- if(fabs(q) <= 0.425) {
- r = 0.180625 - q * q;
- // Hash sum-55.8831928806149014439
- num = (((((((2.5090809287301226727e+3 * r +
- 3.3430575583588128105e+4) * r +
- 6.7265770927008700853e+4) * r +
- 4.5921953931549871457e+4) * r +
- 1.3731693765509461125e+4) * r +
- 1.9715909503065514427e+3) * r +
- 1.3314166789178437745e+2) * r +
- 3.3871328727963666080e+0) * q;
- den = (((((((5.2264952788528545610e+3 * r +
- 2.8729085735721942674e+4) * r +
- 3.9307895800092710610e+4) * r +
- 2.1213794301586595867e+4) * r +
- 5.3941960214247511077e+3) * r +
- 6.8718700749205790830e+2) * r +
- 4.2313330701600911252e+1) * r +
- 1.0);
- if (den == 0.0) {
- goto error;
- }
- x = num / den;
- return mu + (x * sigma);
- }
- r = (q <= 0.0) ? p : (1.0 - p);
- if (r <= 0.0 || r >= 1.0) {
- goto error;
- }
- r = sqrt(-log(r));
- if (r <= 5.0) {
- r = r - 1.6;
- // Hash sum-49.33206503301610289036
- num = (((((((7.74545014278341407640e-4 * r +
- 2.27238449892691845833e-2) * r +
- 2.41780725177450611770e-1) * r +
- 1.27045825245236838258e+0) * r +
- 3.64784832476320460504e+0) * r +
- 5.76949722146069140550e+0) * r +
- 4.63033784615654529590e+0) * r +
- 1.42343711074968357734e+0);
- den = (((((((1.05075007164441684324e-9 * r +
- 5.47593808499534494600e-4) * r +
- 1.51986665636164571966e-2) * r +
- 1.48103976427480074590e-1) * r +
- 6.89767334985100004550e-1) * r +
- 1.67638483018380384940e+0) * r +
- 2.05319162663775882187e+0) * r +
- 1.0);
- } else {
- r -= 5.0;
- // Hash sum-47.52583317549289671629
- num = (((((((2.01033439929228813265e-7 * r +
- 2.71155556874348757815e-5) * r +
- 1.24266094738807843860e-3) * r +
- 2.65321895265761230930e-2) * r +
- 2.96560571828504891230e-1) * r +
- 1.78482653991729133580e+0) * r +
- 5.46378491116411436990e+0) * r +
- 6.65790464350110377720e+0);
- den = (((((((2.04426310338993978564e-15 * r +
- 1.42151175831644588870e-7) * r +
- 1.84631831751005468180e-5) * r +
- 7.86869131145613259100e-4) * r +
- 1.48753612908506148525e-2) * r +
- 1.36929880922735805310e-1) * r +
- 5.99832206555887937690e-1) * r +
- 1.0);
- }
- if (den == 0.0) {
- goto error;
- }
- x = num / den;
- if (q < 0.0) {
- x = -x;
- }
- return mu + (x * sigma);
-
- error:
- PyErr_SetString(PyExc_ValueError, "inv_cdf undefined for these parameters");
- return -1.0;
-}
-
-
-static PyMethodDef statistics_methods[] = {
- _STATISTICS__NORMAL_DIST_INV_CDF_METHODDEF
- {NULL, NULL, 0, NULL}
-};
-
-PyDoc_STRVAR(statistics_doc,
-"Accelerators for the statistics module.\n");
-
-static struct PyModuleDef_Slot _statisticsmodule_slots[] = {
- {0, NULL}
-};
-
-static struct PyModuleDef statisticsmodule = {
- PyModuleDef_HEAD_INIT,
- "_statistics",
- statistics_doc,
- 0,
- statistics_methods,
- _statisticsmodule_slots,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit__statistics(void)
-{
- return PyModuleDef_Init(&statisticsmodule);
-}
+/* statistics accelerator C extension: _statistics module. */
+
+#include "Python.h"
+#include "clinic/_statisticsmodule.c.h"
+
+/*[clinic input]
+module _statistics
+
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=864a6f59b76123b2]*/
+
+/*
+ * There is no closed-form solution to the inverse CDF for the normal
+ * distribution, so we use a rational approximation instead:
+ * Wichura, M.J. (1988). "Algorithm AS241: The Percentage Points of the
+ * Normal Distribution". Applied Statistics. Blackwell Publishing. 37
+ * (3): 477–484. doi:10.2307/2347330. JSTOR 2347330.
+ */
+
+/*[clinic input]
+_statistics._normal_dist_inv_cdf -> double
+ p: double
+ mu: double
+ sigma: double
+ /
+[clinic start generated code]*/
+
+static double
+_statistics__normal_dist_inv_cdf_impl(PyObject *module, double p, double mu,
+ double sigma)
+/*[clinic end generated code: output=02fd19ddaab36602 input=24715a74be15296a]*/
+{
+ double q, num, den, r, x;
+ if (p <= 0.0 || p >= 1.0 || sigma <= 0.0) {
+ goto error;
+ }
+
+ q = p - 0.5;
+ if(fabs(q) <= 0.425) {
+ r = 0.180625 - q * q;
+ // Hash sum-55.8831928806149014439
+ num = (((((((2.5090809287301226727e+3 * r +
+ 3.3430575583588128105e+4) * r +
+ 6.7265770927008700853e+4) * r +
+ 4.5921953931549871457e+4) * r +
+ 1.3731693765509461125e+4) * r +
+ 1.9715909503065514427e+3) * r +
+ 1.3314166789178437745e+2) * r +
+ 3.3871328727963666080e+0) * q;
+ den = (((((((5.2264952788528545610e+3 * r +
+ 2.8729085735721942674e+4) * r +
+ 3.9307895800092710610e+4) * r +
+ 2.1213794301586595867e+4) * r +
+ 5.3941960214247511077e+3) * r +
+ 6.8718700749205790830e+2) * r +
+ 4.2313330701600911252e+1) * r +
+ 1.0);
+ if (den == 0.0) {
+ goto error;
+ }
+ x = num / den;
+ return mu + (x * sigma);
+ }
+ r = (q <= 0.0) ? p : (1.0 - p);
+ if (r <= 0.0 || r >= 1.0) {
+ goto error;
+ }
+ r = sqrt(-log(r));
+ if (r <= 5.0) {
+ r = r - 1.6;
+ // Hash sum-49.33206503301610289036
+ num = (((((((7.74545014278341407640e-4 * r +
+ 2.27238449892691845833e-2) * r +
+ 2.41780725177450611770e-1) * r +
+ 1.27045825245236838258e+0) * r +
+ 3.64784832476320460504e+0) * r +
+ 5.76949722146069140550e+0) * r +
+ 4.63033784615654529590e+0) * r +
+ 1.42343711074968357734e+0);
+ den = (((((((1.05075007164441684324e-9 * r +
+ 5.47593808499534494600e-4) * r +
+ 1.51986665636164571966e-2) * r +
+ 1.48103976427480074590e-1) * r +
+ 6.89767334985100004550e-1) * r +
+ 1.67638483018380384940e+0) * r +
+ 2.05319162663775882187e+0) * r +
+ 1.0);
+ } else {
+ r -= 5.0;
+ // Hash sum-47.52583317549289671629
+ num = (((((((2.01033439929228813265e-7 * r +
+ 2.71155556874348757815e-5) * r +
+ 1.24266094738807843860e-3) * r +
+ 2.65321895265761230930e-2) * r +
+ 2.96560571828504891230e-1) * r +
+ 1.78482653991729133580e+0) * r +
+ 5.46378491116411436990e+0) * r +
+ 6.65790464350110377720e+0);
+ den = (((((((2.04426310338993978564e-15 * r +
+ 1.42151175831644588870e-7) * r +
+ 1.84631831751005468180e-5) * r +
+ 7.86869131145613259100e-4) * r +
+ 1.48753612908506148525e-2) * r +
+ 1.36929880922735805310e-1) * r +
+ 5.99832206555887937690e-1) * r +
+ 1.0);
+ }
+ if (den == 0.0) {
+ goto error;
+ }
+ x = num / den;
+ if (q < 0.0) {
+ x = -x;
+ }
+ return mu + (x * sigma);
+
+ error:
+ PyErr_SetString(PyExc_ValueError, "inv_cdf undefined for these parameters");
+ return -1.0;
+}
+
+
+static PyMethodDef statistics_methods[] = {
+ _STATISTICS__NORMAL_DIST_INV_CDF_METHODDEF
+ {NULL, NULL, 0, NULL}
+};
+
+PyDoc_STRVAR(statistics_doc,
+"Accelerators for the statistics module.\n");
+
+static struct PyModuleDef_Slot _statisticsmodule_slots[] = {
+ {0, NULL}
+};
+
+static struct PyModuleDef statisticsmodule = {
+ PyModuleDef_HEAD_INIT,
+ "_statistics",
+ statistics_doc,
+ 0,
+ statistics_methods,
+ _statisticsmodule_slots,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC
+PyInit__statistics(void)
+{
+ return PyModuleDef_Init(&statisticsmodule);
+}
diff --git a/contrib/tools/python3/src/Modules/_struct.c b/contrib/tools/python3/src/Modules/_struct.c
index e98b68b74b..f759f0b169 100644
--- a/contrib/tools/python3/src/Modules/_struct.c
+++ b/contrib/tools/python3/src/Modules/_struct.c
@@ -6,7 +6,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include <ctype.h>
/*[clinic input]
@@ -14,24 +14,24 @@ class Struct "PyStructObject *" "&PyStructType"
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=9b032058a83ed7c3]*/
-typedef struct {
- PyObject *PyStructType;
- PyObject *unpackiter_type;
- PyObject *StructError;
-} _structmodulestate;
-
-static inline _structmodulestate*
-get_struct_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_structmodulestate *)state;
-}
-
-static struct PyModuleDef _structmodule;
-
-#define _structmodulestate_global get_struct_state(PyState_FindModule(&_structmodule))
-
+typedef struct {
+ PyObject *PyStructType;
+ PyObject *unpackiter_type;
+ PyObject *StructError;
+} _structmodulestate;
+
+static inline _structmodulestate*
+get_struct_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_structmodulestate *)state;
+}
+
+static struct PyModuleDef _structmodule;
+
+#define _structmodulestate_global get_struct_state(PyState_FindModule(&_structmodule))
+
/* The translation function for each format character is table driven */
typedef struct _formatdef {
char format;
@@ -62,8 +62,8 @@ typedef struct {
} PyStructObject;
-#define PyStruct_Check(op) PyObject_TypeCheck(op, (PyTypeObject *)_structmodulestate_global->PyStructType)
-#define PyStruct_CheckExact(op) Py_IS_TYPE(op, (PyTypeObject *)_structmodulestate_global->PyStructType)
+#define PyStruct_Check(op) PyObject_TypeCheck(op, (PyTypeObject *)_structmodulestate_global->PyStructType)
+#define PyStruct_CheckExact(op) Py_IS_TYPE(op, (PyTypeObject *)_structmodulestate_global->PyStructType)
/* Define various structs to figure out the alignments of types */
@@ -107,7 +107,7 @@ class cache_struct_converter(CConverter):
[python start generated code]*/
/*[python end generated code: output=da39a3ee5e6b4b0d input=49957cca130ffb63]*/
-static int cache_struct_converter(PyObject *, PyStructObject **);
+static int cache_struct_converter(PyObject *, PyStructObject **);
#include "clinic/_struct.c.h"
@@ -126,7 +126,7 @@ get_pylong(PyObject *v)
return NULL;
}
else {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not an integer");
return NULL;
}
@@ -154,7 +154,7 @@ get_long(PyObject *v, long *p)
Py_DECREF(v);
if (x == (long)-1 && PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument out of range");
return -1;
}
@@ -178,7 +178,7 @@ get_ulong(PyObject *v, unsigned long *p)
Py_DECREF(v);
if (x == (unsigned long)-1 && PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument out of range");
return -1;
}
@@ -201,7 +201,7 @@ get_longlong(PyObject *v, long long *p)
Py_DECREF(v);
if (x == (long long)-1 && PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument out of range");
return -1;
}
@@ -224,7 +224,7 @@ get_ulonglong(PyObject *v, unsigned long long *p)
Py_DECREF(v);
if (x == (unsigned long long)-1 && PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument out of range");
return -1;
}
@@ -247,7 +247,7 @@ get_ssize_t(PyObject *v, Py_ssize_t *p)
Py_DECREF(v);
if (x == (Py_ssize_t)-1 && PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument out of range");
return -1;
}
@@ -270,7 +270,7 @@ get_size_t(PyObject *v, size_t *p)
Py_DECREF(v);
if (x == (size_t)-1 && PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument out of range");
return -1;
}
@@ -304,7 +304,7 @@ pack_halffloat(char *p, /* start of 2-byte string */
{
double x = PyFloat_AsDouble(v);
if (x == -1.0 && PyErr_Occurred()) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not a float");
return -1;
}
@@ -350,13 +350,13 @@ _range_error(const formatdef *f, int is_unsigned)
const size_t ulargest = (size_t)-1 >> ((SIZEOF_SIZE_T - f->size)*8);
assert(f->size >= 1 && f->size <= SIZEOF_SIZE_T);
if (is_unsigned)
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"'%c' format requires 0 <= number <= %zu",
f->format,
ulargest);
else {
const Py_ssize_t largest = (Py_ssize_t)(ulargest >> 1);
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"'%c' format requires %zd <= number <= %zd",
f->format,
~ largest,
@@ -372,8 +372,8 @@ _range_error(const formatdef *f, int is_unsigned)
[bln][up]_TYPE
- [bln] distinguishes among big-endian, little-endian and native.
- [pu] distinguishes between pack (to struct) and unpack (from struct).
+ [bln] distinguishes among big-endian, little-endian and native.
+ [pu] distinguishes between pack (to struct) and unpack (from struct).
TYPE is one of char, byte, ubyte, etc.
*/
@@ -535,7 +535,7 @@ np_byte(char *p, PyObject *v, const formatdef *f)
if (get_long(v, &x) < 0)
return -1;
if (x < -128 || x > 127) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"byte format requires -128 <= number <= 127");
return -1;
}
@@ -550,7 +550,7 @@ np_ubyte(char *p, PyObject *v, const formatdef *f)
if (get_long(v, &x) < 0)
return -1;
if (x < 0 || x > 255) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"ubyte format requires 0 <= number <= 255");
return -1;
}
@@ -561,8 +561,8 @@ np_ubyte(char *p, PyObject *v, const formatdef *f)
static int
np_char(char *p, PyObject *v, const formatdef *f)
{
- if (!PyBytes_Check(v) || PyBytes_Size(v) != 1) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ if (!PyBytes_Check(v) || PyBytes_Size(v) != 1) {
+ PyErr_SetString(_structmodulestate_global->StructError,
"char format requires a bytes object of length 1");
return -1;
}
@@ -578,7 +578,7 @@ np_short(char *p, PyObject *v, const formatdef *f)
if (get_long(v, &x) < 0)
return -1;
if (x < SHRT_MIN || x > SHRT_MAX) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"short format requires " Py_STRINGIFY(SHRT_MIN)
" <= number <= " Py_STRINGIFY(SHRT_MAX));
return -1;
@@ -596,7 +596,7 @@ np_ushort(char *p, PyObject *v, const formatdef *f)
if (get_long(v, &x) < 0)
return -1;
if (x < 0 || x > USHRT_MAX) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"ushort format requires 0 <= number <= "
Py_STRINGIFY(USHRT_MAX));
return -1;
@@ -727,7 +727,7 @@ np_float(char *p, PyObject *v, const formatdef *f)
{
float x = (float)PyFloat_AsDouble(v);
if (x == -1 && PyErr_Occurred()) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not a float");
return -1;
}
@@ -740,7 +740,7 @@ np_double(char *p, PyObject *v, const formatdef *f)
{
double x = PyFloat_AsDouble(v);
if (x == -1 && PyErr_Occurred()) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not a float");
return -1;
}
@@ -959,7 +959,7 @@ bp_float(char *p, PyObject *v, const formatdef *f)
{
double x = PyFloat_AsDouble(v);
if (x == -1 && PyErr_Occurred()) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not a float");
return -1;
}
@@ -971,7 +971,7 @@ bp_double(char *p, PyObject *v, const formatdef *f)
{
double x = PyFloat_AsDouble(v);
if (x == -1 && PyErr_Occurred()) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not a float");
return -1;
}
@@ -1174,7 +1174,7 @@ lp_float(char *p, PyObject *v, const formatdef *f)
{
double x = PyFloat_AsDouble(v);
if (x == -1 && PyErr_Occurred()) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not a float");
return -1;
}
@@ -1186,7 +1186,7 @@ lp_double(char *p, PyObject *v, const formatdef *f)
{
double x = PyFloat_AsDouble(v);
if (x == -1 && PyErr_Occurred()) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"required argument is not a float");
return -1;
}
@@ -1253,7 +1253,7 @@ getentry(int c, const formatdef *f)
return f;
}
}
- PyErr_SetString(_structmodulestate_global->StructError, "bad char in struct format");
+ PyErr_SetString(_structmodulestate_global->StructError, "bad char in struct format");
return NULL;
}
@@ -1296,11 +1296,11 @@ prepare_s(PyStructObject *self)
size_t ncodes;
fmt = PyBytes_AS_STRING(self->s_format);
- if (strlen(fmt) != (size_t)PyBytes_GET_SIZE(self->s_format)) {
- PyErr_SetString(_structmodulestate_global->StructError,
- "embedded null character");
- return -1;
- }
+ if (strlen(fmt) != (size_t)PyBytes_GET_SIZE(self->s_format)) {
+ PyErr_SetString(_structmodulestate_global->StructError,
+ "embedded null character");
+ return -1;
+ }
f = whichtable(&fmt);
@@ -1309,7 +1309,7 @@ prepare_s(PyStructObject *self)
len = 0;
ncodes = 0;
while ((c = *s++) != '\0') {
- if (Py_ISSPACE(c))
+ if (Py_ISSPACE(c))
continue;
if ('0' <= c && c <= '9') {
num = c - '0';
@@ -1323,7 +1323,7 @@ prepare_s(PyStructObject *self)
num = num*10 + (c - '0');
}
if (c == '\0') {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"repeat count given without format specifier");
return -1;
}
@@ -1374,7 +1374,7 @@ prepare_s(PyStructObject *self)
s = fmt;
size = 0;
while ((c = *s++) != '\0') {
- if (Py_ISSPACE(c))
+ if (Py_ISSPACE(c))
continue;
if ('0' <= c && c <= '9') {
num = c - '0';
@@ -1413,7 +1413,7 @@ prepare_s(PyStructObject *self)
return 0;
overflow:
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"total struct size too long");
return -1;
}
@@ -1423,11 +1423,11 @@ s_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
PyObject *self;
- assert(type != NULL);
- allocfunc alloc_func = PyType_GetSlot(type, Py_tp_alloc);
- assert(alloc_func != NULL);
+ assert(type != NULL);
+ allocfunc alloc_func = PyType_GetSlot(type, Py_tp_alloc);
+ assert(alloc_func != NULL);
- self = alloc_func(type, 0);
+ self = alloc_func(type, 0);
if (self != NULL) {
PyStructObject *s = (PyStructObject*)self;
Py_INCREF(Py_None);
@@ -1473,7 +1473,7 @@ Struct___init___impl(PyStructObject *self, PyObject *format)
PyErr_Format(PyExc_TypeError,
"Struct() argument 1 must be a str or bytes object, "
"not %.200s",
- _PyType_Name(Py_TYPE(format)));
+ _PyType_Name(Py_TYPE(format)));
return -1;
}
@@ -1486,16 +1486,16 @@ Struct___init___impl(PyStructObject *self, PyObject *format)
static void
s_dealloc(PyStructObject *s)
{
- PyTypeObject *tp = Py_TYPE(s);
+ PyTypeObject *tp = Py_TYPE(s);
if (s->weakreflist != NULL)
PyObject_ClearWeakRefs((PyObject *)s);
if (s->s_codes != NULL) {
PyMem_FREE(s->s_codes);
}
- Py_XDECREF(s->s_format);
- freefunc free_func = PyType_GetSlot(Py_TYPE(s), Py_tp_free);
- free_func(s);
- Py_DECREF(tp);
+ Py_XDECREF(s->s_format);
+ freefunc free_func = PyType_GetSlot(Py_TYPE(s), Py_tp_free);
+ free_func(s);
+ Py_DECREF(tp);
}
static PyObject *
@@ -1556,7 +1556,7 @@ Struct_unpack_impl(PyStructObject *self, Py_buffer *buffer)
{
assert(self->s_codes != NULL);
if (buffer->len != self->s_size) {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"unpack requires a buffer of %zd bytes",
self->s_size);
return NULL;
@@ -1574,8 +1574,8 @@ Return a tuple containing unpacked values.
Values are unpacked according to the format string Struct.format.
-The buffer's size in bytes, starting at position offset, must be
-at least Struct.size.
+The buffer's size in bytes, starting at position offset, must be
+at least Struct.size.
See help(struct) for more on format strings.
[clinic start generated code]*/
@@ -1583,38 +1583,38 @@ See help(struct) for more on format strings.
static PyObject *
Struct_unpack_from_impl(PyStructObject *self, Py_buffer *buffer,
Py_ssize_t offset)
-/*[clinic end generated code: output=57fac875e0977316 input=cafd4851d473c894]*/
+/*[clinic end generated code: output=57fac875e0977316 input=cafd4851d473c894]*/
{
assert(self->s_codes != NULL);
- if (offset < 0) {
- if (offset + self->s_size > 0) {
- PyErr_Format(_structmodulestate_global->StructError,
- "not enough data to unpack %zd bytes at offset %zd",
- self->s_size,
- offset);
- return NULL;
- }
-
- if (offset + buffer->len < 0) {
- PyErr_Format(_structmodulestate_global->StructError,
- "offset %zd out of range for %zd-byte buffer",
- offset,
- buffer->len);
- return NULL;
- }
+ if (offset < 0) {
+ if (offset + self->s_size > 0) {
+ PyErr_Format(_structmodulestate_global->StructError,
+ "not enough data to unpack %zd bytes at offset %zd",
+ self->s_size,
+ offset);
+ return NULL;
+ }
+
+ if (offset + buffer->len < 0) {
+ PyErr_Format(_structmodulestate_global->StructError,
+ "offset %zd out of range for %zd-byte buffer",
+ offset,
+ buffer->len);
+ return NULL;
+ }
offset += buffer->len;
- }
-
- if ((buffer->len - offset) < self->s_size) {
- PyErr_Format(_structmodulestate_global->StructError,
- "unpack_from requires a buffer of at least %zu bytes for "
- "unpacking %zd bytes at offset %zd "
- "(actual buffer size is %zd)",
- (size_t)self->s_size + (size_t)offset,
- self->s_size,
- offset,
- buffer->len);
+ }
+
+ if ((buffer->len - offset) < self->s_size) {
+ PyErr_Format(_structmodulestate_global->StructError,
+ "unpack_from requires a buffer of at least %zu bytes for "
+ "unpacking %zd bytes at offset %zd "
+ "(actual buffer size is %zd)",
+ (size_t)self->s_size + (size_t)offset,
+ self->s_size,
+ offset,
+ buffer->len);
return NULL;
}
return s_unpack_internal(self, (char*)buffer->buf + offset);
@@ -1635,25 +1635,25 @@ static void
unpackiter_dealloc(unpackiterobject *self)
{
/* bpo-31095: UnTrack is needed before calling any callbacks */
- PyTypeObject *tp = Py_TYPE(self);
+ PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
Py_XDECREF(self->so);
PyBuffer_Release(&self->buf);
PyObject_GC_Del(self);
- Py_DECREF(tp);
+ Py_DECREF(tp);
}
static int
unpackiter_traverse(unpackiterobject *self, visitproc visit, void *arg)
{
- Py_VISIT(Py_TYPE(self));
+ Py_VISIT(Py_TYPE(self));
Py_VISIT(self->so);
Py_VISIT(self->buf.obj);
return 0;
}
static PyObject *
-unpackiter_len(unpackiterobject *self, PyObject *Py_UNUSED(ignored))
+unpackiter_len(unpackiterobject *self, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len;
if (self->so == NULL)
@@ -1687,30 +1687,30 @@ unpackiter_iternext(unpackiterobject *self)
return result;
}
-PyObject *unpackiter_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
- PyErr_Format(PyExc_TypeError, "Cannot create '%.200s objects", _PyType_Name(type));
- return NULL;
-}
-
-static PyType_Slot unpackiter_type_slots[] = {
- {Py_tp_dealloc, unpackiter_dealloc},
- {Py_tp_getattro, PyObject_GenericGetAttr},
- {Py_tp_traverse, unpackiter_traverse},
- {Py_tp_iter, PyObject_SelfIter},
- {Py_tp_iternext, unpackiter_iternext},
- {Py_tp_methods, unpackiter_methods},
- {Py_tp_new, unpackiter_new},
- {0, 0},
+PyObject *unpackiter_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
+ PyErr_Format(PyExc_TypeError, "Cannot create '%.200s objects", _PyType_Name(type));
+ return NULL;
+}
+
+static PyType_Slot unpackiter_type_slots[] = {
+ {Py_tp_dealloc, unpackiter_dealloc},
+ {Py_tp_getattro, PyObject_GenericGetAttr},
+ {Py_tp_traverse, unpackiter_traverse},
+ {Py_tp_iter, PyObject_SelfIter},
+ {Py_tp_iternext, unpackiter_iternext},
+ {Py_tp_methods, unpackiter_methods},
+ {Py_tp_new, unpackiter_new},
+ {0, 0},
+};
+
+static PyType_Spec unpackiter_type_spec = {
+ "_struct.unpack_iterator",
+ sizeof(unpackiterobject),
+ 0,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ unpackiter_type_slots
};
-static PyType_Spec unpackiter_type_spec = {
- "_struct.unpack_iterator",
- sizeof(unpackiterobject),
- 0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- unpackiter_type_slots
-};
-
/*[clinic input]
Struct.iter_unpack
@@ -1734,12 +1734,12 @@ Struct_iter_unpack(PyStructObject *self, PyObject *buffer)
assert(self->s_codes != NULL);
if (self->s_size == 0) {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"cannot iteratively unpack with a struct of length 0");
return NULL;
}
- iter = (unpackiterobject *) PyType_GenericAlloc((PyTypeObject *)_structmodulestate_global->unpackiter_type, 0);
+ iter = (unpackiterobject *) PyType_GenericAlloc((PyTypeObject *)_structmodulestate_global->unpackiter_type, 0);
if (iter == NULL)
return NULL;
@@ -1748,7 +1748,7 @@ Struct_iter_unpack(PyStructObject *self, PyObject *buffer)
return NULL;
}
if (iter->buf.len % self->s_size != 0) {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"iterative unpacking requires a buffer of "
"a multiple of %zd bytes",
self->s_size);
@@ -1791,10 +1791,10 @@ s_pack_internal(PyStructObject *soself, PyObject *const *args, int offset, char*
if (e->format == 's') {
Py_ssize_t n;
int isstring;
- const void *p;
+ const void *p;
isstring = PyBytes_Check(v);
if (!isstring && !PyByteArray_Check(v)) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument for 's' must be a bytes object");
return -1;
}
@@ -1813,10 +1813,10 @@ s_pack_internal(PyStructObject *soself, PyObject *const *args, int offset, char*
} else if (e->format == 'p') {
Py_ssize_t n;
int isstring;
- const void *p;
+ const void *p;
isstring = PyBytes_Check(v);
if (!isstring && !PyByteArray_Check(v)) {
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"argument for 'p' must be a bytes object");
return -1;
}
@@ -1838,7 +1838,7 @@ s_pack_internal(PyStructObject *soself, PyObject *const *args, int offset, char*
} else {
if (e->pack(res, v, e) < 0) {
if (PyLong_Check(v) && PyErr_ExceptionMatches(PyExc_OverflowError))
- PyErr_SetString(_structmodulestate_global->StructError,
+ PyErr_SetString(_structmodulestate_global->StructError,
"int too large to convert");
return -1;
}
@@ -1862,7 +1862,7 @@ strings.");
static PyObject *
s_pack(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
- char *buf;
+ char *buf;
PyStructObject *soself;
/* Validate arguments. */
@@ -1871,27 +1871,27 @@ s_pack(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
assert(soself->s_codes != NULL);
if (nargs != soself->s_len)
{
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"pack expected %zd items for packing (got %zd)", soself->s_len, nargs);
return NULL;
}
- /* Allocate a new string */
- _PyBytesWriter writer;
- _PyBytesWriter_Init(&writer);
- buf = _PyBytesWriter_Alloc(&writer, soself->s_size);
- if (buf == NULL) {
- _PyBytesWriter_Dealloc(&writer);
+ /* Allocate a new string */
+ _PyBytesWriter writer;
+ _PyBytesWriter_Init(&writer);
+ buf = _PyBytesWriter_Alloc(&writer, soself->s_size);
+ if (buf == NULL) {
+ _PyBytesWriter_Dealloc(&writer);
return NULL;
- }
+ }
/* Call the guts */
- if ( s_pack_internal(soself, args, 0, buf) != 0 ) {
- _PyBytesWriter_Dealloc(&writer);
+ if ( s_pack_internal(soself, args, 0, buf) != 0 ) {
+ _PyBytesWriter_Dealloc(&writer);
return NULL;
}
- return _PyBytesWriter_Finish(&writer, buf + soself->s_size);
+ return _PyBytesWriter_Finish(&writer, buf + soself->s_size);
}
PyDoc_STRVAR(s_pack_into__doc__,
@@ -1916,15 +1916,15 @@ s_pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
if (nargs != (soself->s_len + 2))
{
if (nargs == 0) {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"pack_into expected buffer argument");
}
else if (nargs == 1) {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"pack_into expected offset argument");
}
else {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"pack_into expected %zd items for packing (got %zd)",
soself->s_len, (nargs - 2));
}
@@ -1947,7 +1947,7 @@ s_pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
if (offset < 0) {
/* Check that negative offset is low enough to fit data */
if (offset + soself->s_size > 0) {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"no space to pack %zd bytes at offset %zd",
soself->s_size,
offset);
@@ -1957,7 +1957,7 @@ s_pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
/* Check that negative offset is not crossing buffer boundary */
if (offset + buffer.len < 0) {
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"offset %zd out of range for %zd-byte buffer",
offset,
buffer.len);
@@ -1973,7 +1973,7 @@ s_pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
assert(offset >= 0);
assert(soself->s_size >= 0);
- PyErr_Format(_structmodulestate_global->StructError,
+ PyErr_Format(_structmodulestate_global->StructError,
"pack_into requires a buffer of at least %zu bytes for "
"packing %zd bytes at offset %zd "
"(actual buffer size is %zd)",
@@ -2027,19 +2027,19 @@ s_sizeof(PyStructObject *self, void *unused)
static struct PyMethodDef s_methods[] = {
STRUCT_ITER_UNPACK_METHODDEF
- {"pack", (PyCFunction)(void(*)(void))s_pack, METH_FASTCALL, s_pack__doc__},
- {"pack_into", (PyCFunction)(void(*)(void))s_pack_into, METH_FASTCALL, s_pack_into__doc__},
+ {"pack", (PyCFunction)(void(*)(void))s_pack, METH_FASTCALL, s_pack__doc__},
+ {"pack_into", (PyCFunction)(void(*)(void))s_pack_into, METH_FASTCALL, s_pack_into__doc__},
STRUCT_UNPACK_METHODDEF
STRUCT_UNPACK_FROM_METHODDEF
{"__sizeof__", (PyCFunction)s_sizeof, METH_NOARGS, s_sizeof__doc__},
{NULL, NULL} /* sentinel */
};
-static PyMemberDef s_members[] = {
- {"__weaklistoffset__", T_PYSSIZET, offsetof(PyStructObject, weakreflist), READONLY},
- {NULL} /* sentinel */
-};
-
+static PyMemberDef s_members[] = {
+ {"__weaklistoffset__", T_PYSSIZET, offsetof(PyStructObject, weakreflist), READONLY},
+ {NULL} /* sentinel */
+};
+
#define OFF(x) offsetof(PyStructObject, x)
static PyGetSetDef s_getsetlist[] = {
@@ -2048,32 +2048,32 @@ static PyGetSetDef s_getsetlist[] = {
{NULL} /* sentinel */
};
-PyDoc_STRVAR(s__doc__,
-"Struct(fmt) --> compiled struct object\n"
-"\n"
-);
-
-static PyType_Slot PyStructType_slots[] = {
- {Py_tp_dealloc, s_dealloc},
- {Py_tp_getattro, PyObject_GenericGetAttr},
- {Py_tp_setattro, PyObject_GenericSetAttr},
- {Py_tp_doc, (void*)s__doc__},
- {Py_tp_methods, s_methods},
- {Py_tp_members, s_members},
- {Py_tp_getset, s_getsetlist},
- {Py_tp_init, Struct___init__},
- {Py_tp_alloc, PyType_GenericAlloc},
- {Py_tp_new, s_new},
- {Py_tp_free, PyObject_Del},
- {0, 0},
-};
-
-static PyType_Spec PyStructType_spec = {
- "_struct.Struct",
+PyDoc_STRVAR(s__doc__,
+"Struct(fmt) --> compiled struct object\n"
+"\n"
+);
+
+static PyType_Slot PyStructType_slots[] = {
+ {Py_tp_dealloc, s_dealloc},
+ {Py_tp_getattro, PyObject_GenericGetAttr},
+ {Py_tp_setattro, PyObject_GenericSetAttr},
+ {Py_tp_doc, (void*)s__doc__},
+ {Py_tp_methods, s_methods},
+ {Py_tp_members, s_members},
+ {Py_tp_getset, s_getsetlist},
+ {Py_tp_init, Struct___init__},
+ {Py_tp_alloc, PyType_GenericAlloc},
+ {Py_tp_new, s_new},
+ {Py_tp_free, PyObject_Del},
+ {0, 0},
+};
+
+static PyType_Spec PyStructType_spec = {
+ "_struct.Struct",
sizeof(PyStructObject),
0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- PyStructType_slots
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ PyStructType_slots
};
@@ -2083,7 +2083,7 @@ static PyType_Spec PyStructType_spec = {
static PyObject *cache = NULL;
static int
-cache_struct_converter(PyObject *fmt, PyStructObject **ptr)
+cache_struct_converter(PyObject *fmt, PyStructObject **ptr)
{
PyObject * s_object;
@@ -2099,24 +2099,24 @@ cache_struct_converter(PyObject *fmt, PyStructObject **ptr)
return 0;
}
- s_object = PyDict_GetItemWithError(cache, fmt);
+ s_object = PyDict_GetItemWithError(cache, fmt);
if (s_object != NULL) {
Py_INCREF(s_object);
- *ptr = (PyStructObject *)s_object;
+ *ptr = (PyStructObject *)s_object;
return Py_CLEANUP_SUPPORTED;
}
- else if (PyErr_Occurred()) {
- return 0;
- }
+ else if (PyErr_Occurred()) {
+ return 0;
+ }
- s_object = PyObject_CallOneArg(_structmodulestate_global->PyStructType, fmt);
+ s_object = PyObject_CallOneArg(_structmodulestate_global->PyStructType, fmt);
if (s_object != NULL) {
if (PyDict_GET_SIZE(cache) >= MAXCACHE)
PyDict_Clear(cache);
/* Attempt to cache the result */
if (PyDict_SetItem(cache, fmt, s_object) == -1)
PyErr_Clear();
- *ptr = (PyStructObject *)s_object;
+ *ptr = (PyStructObject *)s_object;
return Py_CLEANUP_SUPPORTED;
}
return 0;
@@ -2171,7 +2171,7 @@ pack(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
}
format = args[0];
- if (!cache_struct_converter(format, (PyStructObject **)&s_object)) {
+ if (!cache_struct_converter(format, (PyStructObject **)&s_object)) {
return NULL;
}
result = s_pack(s_object, args + 1, nargs - 1);
@@ -2199,7 +2199,7 @@ pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
}
format = args[0];
- if (!cache_struct_converter(format, (PyStructObject **)&s_object)) {
+ if (!cache_struct_converter(format, (PyStructObject **)&s_object)) {
return NULL;
}
result = s_pack_into(s_object, args + 1, nargs - 1);
@@ -2278,8 +2278,8 @@ static struct PyMethodDef module_functions[] = {
_CLEARCACHE_METHODDEF
CALCSIZE_METHODDEF
ITER_UNPACK_METHODDEF
- {"pack", (PyCFunction)(void(*)(void))pack, METH_FASTCALL, pack_doc},
- {"pack_into", (PyCFunction)(void(*)(void))pack_into, METH_FASTCALL, pack_into_doc},
+ {"pack", (PyCFunction)(void(*)(void))pack, METH_FASTCALL, pack_doc},
+ {"pack_into", (PyCFunction)(void(*)(void))pack_into, METH_FASTCALL, pack_into_doc},
UNPACK_METHODDEF
UNPACK_FROM_METHODDEF
{NULL, NULL} /* sentinel */
@@ -2319,46 +2319,46 @@ Whitespace between formats is ignored.\n\
The variable struct.error is an exception raised on errors.\n");
-static int
-_structmodule_traverse(PyObject *module, visitproc visit, void *arg)
-{
- _structmodulestate *state = (_structmodulestate *)PyModule_GetState(module);
- if (state) {
- Py_VISIT(state->PyStructType);
- Py_VISIT(state->unpackiter_type);
- Py_VISIT(state->StructError);
- }
- return 0;
-}
-
-static int
-_structmodule_clear(PyObject *module)
-{
- _structmodulestate *state = (_structmodulestate *)PyModule_GetState(module);
- if (state) {
- Py_CLEAR(state->PyStructType);
- Py_CLEAR(state->unpackiter_type);
- Py_CLEAR(state->StructError);
- }
- return 0;
-}
-
-static void
-_structmodule_free(void *module)
-{
- _structmodule_clear((PyObject *)module);
-}
-
+static int
+_structmodule_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ _structmodulestate *state = (_structmodulestate *)PyModule_GetState(module);
+ if (state) {
+ Py_VISIT(state->PyStructType);
+ Py_VISIT(state->unpackiter_type);
+ Py_VISIT(state->StructError);
+ }
+ return 0;
+}
+
+static int
+_structmodule_clear(PyObject *module)
+{
+ _structmodulestate *state = (_structmodulestate *)PyModule_GetState(module);
+ if (state) {
+ Py_CLEAR(state->PyStructType);
+ Py_CLEAR(state->unpackiter_type);
+ Py_CLEAR(state->StructError);
+ }
+ return 0;
+}
+
+static void
+_structmodule_free(void *module)
+{
+ _structmodule_clear((PyObject *)module);
+}
+
static struct PyModuleDef _structmodule = {
PyModuleDef_HEAD_INIT,
"_struct",
module_doc,
- sizeof(_structmodulestate),
+ sizeof(_structmodulestate),
module_functions,
NULL,
- _structmodule_traverse,
- _structmodule_clear,
- _structmodule_free,
+ _structmodule_traverse,
+ _structmodule_clear,
+ _structmodule_free,
};
PyMODINIT_FUNC
@@ -2370,19 +2370,19 @@ PyInit__struct(void)
if (m == NULL)
return NULL;
- PyObject *PyStructType = PyType_FromSpec(&PyStructType_spec);
- if (PyStructType == NULL) {
+ PyObject *PyStructType = PyType_FromSpec(&PyStructType_spec);
+ if (PyStructType == NULL) {
return NULL;
- }
- Py_INCREF(PyStructType);
- PyModule_AddObject(m, "Struct", PyStructType);
- get_struct_state(m)->PyStructType = PyStructType;
+ }
+ Py_INCREF(PyStructType);
+ PyModule_AddObject(m, "Struct", PyStructType);
+ get_struct_state(m)->PyStructType = PyStructType;
- PyObject *unpackiter_type = PyType_FromSpec(&unpackiter_type_spec);
- if (unpackiter_type == NULL) {
+ PyObject *unpackiter_type = PyType_FromSpec(&unpackiter_type_spec);
+ if (unpackiter_type == NULL) {
return NULL;
- }
- get_struct_state(m)->unpackiter_type = unpackiter_type;
+ }
+ get_struct_state(m)->unpackiter_type = unpackiter_type;
/* Check endian and swap in faster functions */
{
@@ -2413,9 +2413,9 @@ PyInit__struct(void)
"unknown" float format */
if (ptr->format == 'd' || ptr->format == 'f')
break;
- /* Skip _Bool, semantics are different for standard size */
- if (ptr->format == '?')
- break;
+ /* Skip _Bool, semantics are different for standard size */
+ if (ptr->format == '?')
+ break;
ptr->pack = native->pack;
ptr->unpack = native->unpack;
break;
@@ -2427,12 +2427,12 @@ PyInit__struct(void)
}
/* Add some symbolic constants to the module */
- PyObject *StructError = PyErr_NewException("struct.error", NULL, NULL);
- if (StructError == NULL)
- return NULL;
+ PyObject *StructError = PyErr_NewException("struct.error", NULL, NULL);
+ if (StructError == NULL)
+ return NULL;
Py_INCREF(StructError);
PyModule_AddObject(m, "error", StructError);
- get_struct_state(m)->StructError = StructError;
+ get_struct_state(m)->StructError = StructError;
return m;
}
diff --git a/contrib/tools/python3/src/Modules/_threadmodule.c b/contrib/tools/python3/src/Modules/_threadmodule.c
index 5101259577..a370352238 100644
--- a/contrib/tools/python3/src/Modules/_threadmodule.c
+++ b/contrib/tools/python3/src/Modules/_threadmodule.c
@@ -3,16 +3,16 @@
/* Interface to Sjoerd's portable C thread library */
#include "Python.h"
-#include "pycore_pylifecycle.h"
-#include "pycore_interp.h" // _PyInterpreterState.num_threads
-#include "pycore_pystate.h" // _PyThreadState_Init()
-#include <stddef.h> // offsetof()
+#include "pycore_pylifecycle.h"
+#include "pycore_interp.h" // _PyInterpreterState.num_threads
+#include "pycore_pystate.h" // _PyThreadState_Init()
+#include <stddef.h> // offsetof()
static PyObject *ThreadError;
static PyObject *str_dict;
_Py_IDENTIFIER(stderr);
-_Py_IDENTIFIER(flush);
+_Py_IDENTIFIER(flush);
/* Lock objects */
@@ -165,7 +165,7 @@ and the return value reflects whether the lock is acquired.\n\
The blocking operation is interruptible.");
static PyObject *
-lock_PyThread_release_lock(lockobject *self, PyObject *Py_UNUSED(ignored))
+lock_PyThread_release_lock(lockobject *self, PyObject *Py_UNUSED(ignored))
{
/* Sanity check: the lock must be locked */
if (!self->locked) {
@@ -187,7 +187,7 @@ the lock to acquire the lock. The lock must be in the locked state,\n\
but it needn't be locked by the same thread that unlocks it.");
static PyObject *
-lock_locked_lock(lockobject *self, PyObject *Py_UNUSED(ignored))
+lock_locked_lock(lockobject *self, PyObject *Py_UNUSED(ignored))
{
return PyBool_FromLong((long)self->locked);
}
@@ -205,26 +205,26 @@ lock_repr(lockobject *self)
self->locked ? "locked" : "unlocked", Py_TYPE(self)->tp_name, self);
}
-#ifdef HAVE_FORK
-static PyObject *
-lock__at_fork_reinit(lockobject *self, PyObject *Py_UNUSED(args))
-{
- if (_PyThread_at_fork_reinit(&self->lock_lock) < 0) {
- PyErr_SetString(ThreadError, "failed to reinitialize lock at fork");
- return NULL;
- }
-
- self->locked = 0;
-
- Py_RETURN_NONE;
-}
-#endif /* HAVE_FORK */
-
-
+#ifdef HAVE_FORK
+static PyObject *
+lock__at_fork_reinit(lockobject *self, PyObject *Py_UNUSED(args))
+{
+ if (_PyThread_at_fork_reinit(&self->lock_lock) < 0) {
+ PyErr_SetString(ThreadError, "failed to reinitialize lock at fork");
+ return NULL;
+ }
+
+ self->locked = 0;
+
+ Py_RETURN_NONE;
+}
+#endif /* HAVE_FORK */
+
+
static PyMethodDef lock_methods[] = {
- {"acquire_lock", (PyCFunction)(void(*)(void))lock_PyThread_acquire_lock,
+ {"acquire_lock", (PyCFunction)(void(*)(void))lock_PyThread_acquire_lock,
METH_VARARGS | METH_KEYWORDS, acquire_doc},
- {"acquire", (PyCFunction)(void(*)(void))lock_PyThread_acquire_lock,
+ {"acquire", (PyCFunction)(void(*)(void))lock_PyThread_acquire_lock,
METH_VARARGS | METH_KEYWORDS, acquire_doc},
{"release_lock", (PyCFunction)lock_PyThread_release_lock,
METH_NOARGS, release_doc},
@@ -234,14 +234,14 @@ static PyMethodDef lock_methods[] = {
METH_NOARGS, locked_doc},
{"locked", (PyCFunction)lock_locked_lock,
METH_NOARGS, locked_doc},
- {"__enter__", (PyCFunction)(void(*)(void))lock_PyThread_acquire_lock,
+ {"__enter__", (PyCFunction)(void(*)(void))lock_PyThread_acquire_lock,
METH_VARARGS | METH_KEYWORDS, acquire_doc},
{"__exit__", (PyCFunction)lock_PyThread_release_lock,
METH_VARARGS, release_doc},
-#ifdef HAVE_FORK
- {"_at_fork_reinit", (PyCFunction)lock__at_fork_reinit,
- METH_NOARGS, NULL},
-#endif
+#ifdef HAVE_FORK
+ {"_at_fork_reinit", (PyCFunction)lock__at_fork_reinit,
+ METH_NOARGS, NULL},
+#endif
{NULL, NULL} /* sentinel */
};
@@ -252,10 +252,10 @@ static PyTypeObject Locktype = {
0, /*tp_itemsize*/
/* methods */
(destructor)lock_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)lock_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -355,7 +355,7 @@ internal counter is simply incremented. If nobody holds the lock,\n\
the lock is taken and its internal counter initialized to 1.");
static PyObject *
-rlock_release(rlockobject *self, PyObject *Py_UNUSED(ignored))
+rlock_release(rlockobject *self, PyObject *Py_UNUSED(ignored))
{
unsigned long tid = PyThread_get_thread_ident();
@@ -414,7 +414,7 @@ PyDoc_STRVAR(rlock_acquire_restore_doc,
For internal use by `threading.Condition`.");
static PyObject *
-rlock_release_save(rlockobject *self, PyObject *Py_UNUSED(ignored))
+rlock_release_save(rlockobject *self, PyObject *Py_UNUSED(ignored))
{
unsigned long owner;
unsigned long count;
@@ -440,7 +440,7 @@ For internal use by `threading.Condition`.");
static PyObject *
-rlock_is_owned(rlockobject *self, PyObject *Py_UNUSED(ignored))
+rlock_is_owned(rlockobject *self, PyObject *Py_UNUSED(ignored))
{
unsigned long tid = PyThread_get_thread_ident();
@@ -458,19 +458,19 @@ For internal use by `threading.Condition`.");
static PyObject *
rlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
- rlockobject *self = (rlockobject *) type->tp_alloc(type, 0);
- if (self == NULL) {
- return NULL;
- }
- self->in_weakreflist = NULL;
- self->rlock_owner = 0;
- self->rlock_count = 0;
-
- self->rlock_lock = PyThread_allocate_lock();
- if (self->rlock_lock == NULL) {
- Py_DECREF(self);
- PyErr_SetString(ThreadError, "can't allocate lock");
- return NULL;
+ rlockobject *self = (rlockobject *) type->tp_alloc(type, 0);
+ if (self == NULL) {
+ return NULL;
+ }
+ self->in_weakreflist = NULL;
+ self->rlock_owner = 0;
+ self->rlock_count = 0;
+
+ self->rlock_lock = PyThread_allocate_lock();
+ if (self->rlock_lock == NULL) {
+ Py_DECREF(self);
+ PyErr_SetString(ThreadError, "can't allocate lock");
+ return NULL;
}
return (PyObject *) self;
}
@@ -485,25 +485,25 @@ rlock_repr(rlockobject *self)
}
-#ifdef HAVE_FORK
-static PyObject *
-rlock__at_fork_reinit(rlockobject *self, PyObject *Py_UNUSED(args))
-{
- if (_PyThread_at_fork_reinit(&self->rlock_lock) < 0) {
- PyErr_SetString(ThreadError, "failed to reinitialize lock at fork");
- return NULL;
- }
-
- self->rlock_owner = 0;
- self->rlock_count = 0;
-
- Py_RETURN_NONE;
-}
-#endif /* HAVE_FORK */
-
-
+#ifdef HAVE_FORK
+static PyObject *
+rlock__at_fork_reinit(rlockobject *self, PyObject *Py_UNUSED(args))
+{
+ if (_PyThread_at_fork_reinit(&self->rlock_lock) < 0) {
+ PyErr_SetString(ThreadError, "failed to reinitialize lock at fork");
+ return NULL;
+ }
+
+ self->rlock_owner = 0;
+ self->rlock_count = 0;
+
+ Py_RETURN_NONE;
+}
+#endif /* HAVE_FORK */
+
+
static PyMethodDef rlock_methods[] = {
- {"acquire", (PyCFunction)(void(*)(void))rlock_acquire,
+ {"acquire", (PyCFunction)(void(*)(void))rlock_acquire,
METH_VARARGS | METH_KEYWORDS, rlock_acquire_doc},
{"release", (PyCFunction)rlock_release,
METH_NOARGS, rlock_release_doc},
@@ -513,14 +513,14 @@ static PyMethodDef rlock_methods[] = {
METH_VARARGS, rlock_acquire_restore_doc},
{"_release_save", (PyCFunction)rlock_release_save,
METH_NOARGS, rlock_release_save_doc},
- {"__enter__", (PyCFunction)(void(*)(void))rlock_acquire,
+ {"__enter__", (PyCFunction)(void(*)(void))rlock_acquire,
METH_VARARGS | METH_KEYWORDS, rlock_acquire_doc},
{"__exit__", (PyCFunction)rlock_release,
METH_VARARGS, rlock_release_doc},
-#ifdef HAVE_FORK
- {"_at_fork_reinit", (PyCFunction)rlock__at_fork_reinit,
- METH_NOARGS, NULL},
-#endif
+#ifdef HAVE_FORK
+ {"_at_fork_reinit", (PyCFunction)rlock__at_fork_reinit,
+ METH_NOARGS, NULL},
+#endif
{NULL, NULL} /* sentinel */
};
@@ -532,10 +532,10 @@ static PyTypeObject RLocktype = {
0, /*tp_itemsize*/
/* methods */
(destructor)rlock_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)rlock_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -646,10 +646,10 @@ static PyTypeObject localdummytype = {
/* tp_basicsize */ sizeof(localdummyobject),
/* tp_itemsize */ 0,
/* tp_dealloc */ (destructor)localdummy_dealloc,
- /* tp_vectorcall_offset */ 0,
+ /* tp_vectorcall_offset */ 0,
/* tp_getattr */ 0,
/* tp_setattr */ 0,
- /* tp_as_async */ 0,
+ /* tp_as_async */ 0,
/* tp_repr */ 0,
/* tp_as_number */ 0,
/* tp_as_sequence */ 0,
@@ -853,11 +853,11 @@ _ldict(localobject *self)
return NULL;
}
- dummy = PyDict_GetItemWithError(tdict, self->key);
+ dummy = PyDict_GetItemWithError(tdict, self->key);
if (dummy == NULL) {
- if (PyErr_Occurred()) {
- return NULL;
- }
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
ldict = _local_create_dummy(self);
if (ldict == NULL)
return NULL;
@@ -873,7 +873,7 @@ _ldict(localobject *self)
}
}
else {
- assert(Py_IS_TYPE(dummy, &localdummytype));
+ assert(Py_IS_TYPE(dummy, &localdummytype));
ldict = ((localdummyobject *) dummy)->localdict;
}
@@ -911,10 +911,10 @@ static PyTypeObject localtype = {
/* tp_basicsize */ sizeof(localobject),
/* tp_itemsize */ 0,
/* tp_dealloc */ (destructor)local_dealloc,
- /* tp_vectorcall_offset */ 0,
+ /* tp_vectorcall_offset */ 0,
/* tp_getattr */ 0,
/* tp_setattr */ 0,
- /* tp_as_async */ 0,
+ /* tp_as_async */ 0,
/* tp_repr */ 0,
/* tp_as_number */ 0,
/* tp_as_sequence */ 0,
@@ -967,23 +967,23 @@ local_getattro(localobject *self, PyObject *name)
if (r == -1)
return NULL;
- if (!Py_IS_TYPE(self, &localtype))
+ if (!Py_IS_TYPE(self, &localtype))
/* use generic lookup for subtypes */
return _PyObject_GenericGetAttrWithDict(
(PyObject *)self, name, ldict, 0);
/* Optimization: just look in dict ourselves */
- value = PyDict_GetItemWithError(ldict, name);
- if (value != NULL) {
- Py_INCREF(value);
- return value;
- }
- else if (PyErr_Occurred()) {
- return NULL;
- }
- /* Fall back on generic to get __class__ and __dict__ */
- return _PyObject_GenericGetAttrWithDict(
- (PyObject *)self, name, ldict, 0);
+ value = PyDict_GetItemWithError(ldict, name);
+ if (value != NULL) {
+ Py_INCREF(value);
+ return value;
+ }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
+ /* Fall back on generic to get __class__ and __dict__ */
+ return _PyObject_GenericGetAttrWithDict(
+ (PyObject *)self, name, ldict, 0);
}
/* Called when a dummy is destroyed. */
@@ -1003,7 +1003,7 @@ _localdummy_destroyed(PyObject *localweakref, PyObject *dummyweakref)
self = (localobject *) obj;
if (self->dummies != NULL) {
PyObject *ldict;
- ldict = PyDict_GetItemWithError(self->dummies, dummyweakref);
+ ldict = PyDict_GetItemWithError(self->dummies, dummyweakref);
if (ldict != NULL) {
PyDict_DelItem(self->dummies, dummyweakref);
}
@@ -1022,7 +1022,7 @@ struct bootstate {
PyObject *args;
PyObject *keyw;
PyThreadState *tstate;
- _PyRuntimeState *runtime;
+ _PyRuntimeState *runtime;
};
static void
@@ -1034,38 +1034,38 @@ t_bootstrap(void *boot_raw)
tstate = boot->tstate;
tstate->thread_id = PyThread_get_thread_ident();
- _PyThreadState_Init(tstate);
+ _PyThreadState_Init(tstate);
PyEval_AcquireThread(tstate);
tstate->interp->num_threads++;
res = PyObject_Call(boot->func, boot->args, boot->keyw);
if (res == NULL) {
if (PyErr_ExceptionMatches(PyExc_SystemExit))
- /* SystemExit is ignored silently */
+ /* SystemExit is ignored silently */
PyErr_Clear();
else {
- _PyErr_WriteUnraisableMsg("in thread started by", boot->func);
+ _PyErr_WriteUnraisableMsg("in thread started by", boot->func);
}
}
- else {
+ else {
Py_DECREF(res);
- }
+ }
Py_DECREF(boot->func);
Py_DECREF(boot->args);
Py_XDECREF(boot->keyw);
PyMem_DEL(boot_raw);
tstate->interp->num_threads--;
PyThreadState_Clear(tstate);
- _PyThreadState_DeleteCurrent(tstate);
-
- // bpo-44434: Don't call explicitly PyThread_exit_thread(). On Linux with
- // the glibc, pthread_exit() can abort the whole process if dlopen() fails
- // to open the libgcc_s.so library (ex: EMFILE error).
+ _PyThreadState_DeleteCurrent(tstate);
+
+ // bpo-44434: Don't call explicitly PyThread_exit_thread(). On Linux with
+ // the glibc, pthread_exit() can abort the whole process if dlopen() fails
+ // to open the libgcc_s.so library (ex: EMFILE error).
}
static PyObject *
thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs)
{
- _PyRuntimeState *runtime = &_PyRuntime;
+ _PyRuntimeState *runtime = &_PyRuntime;
PyObject *func, *args, *keyw = NULL;
struct bootstate *boot;
unsigned long ident;
@@ -1088,23 +1088,23 @@ thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs)
"optional 3rd arg must be a dictionary");
return NULL;
}
-
- PyInterpreterState *interp = _PyInterpreterState_GET();
- if (interp->config._isolated_interpreter) {
- PyErr_SetString(PyExc_RuntimeError,
- "thread is not supported for isolated subinterpreters");
- return NULL;
- }
-
+
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ if (interp->config._isolated_interpreter) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "thread is not supported for isolated subinterpreters");
+ return NULL;
+ }
+
boot = PyMem_NEW(struct bootstate, 1);
if (boot == NULL)
return PyErr_NoMemory();
- boot->interp = _PyInterpreterState_GET();
+ boot->interp = _PyInterpreterState_GET();
boot->func = func;
boot->args = args;
boot->keyw = keyw;
boot->tstate = _PyThreadState_Prealloc(boot->interp);
- boot->runtime = runtime;
+ boot->runtime = runtime;
if (boot->tstate == NULL) {
PyMem_DEL(boot);
return PyErr_NoMemory();
@@ -1112,7 +1112,7 @@ thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs)
Py_INCREF(func);
Py_INCREF(args);
Py_XINCREF(keyw);
-
+
ident = PyThread_start_new_thread(t_bootstrap, (void*) boot);
if (ident == PYTHREAD_INVALID_THREAD_ID) {
PyErr_SetString(ThreadError, "can't start new thread");
@@ -1138,7 +1138,7 @@ when the function raises an unhandled exception; a stack trace will be\n\
printed unless the exception is SystemExit.\n");
static PyObject *
-thread_PyThread_exit_thread(PyObject *self, PyObject *Py_UNUSED(ignored))
+thread_PyThread_exit_thread(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyErr_SetNone(PyExc_SystemExit);
return NULL;
@@ -1152,7 +1152,7 @@ This is synonymous to ``raise SystemExit''. It will cause the current\n\
thread to exit silently unless the exception is caught.");
static PyObject *
-thread_PyThread_interrupt_main(PyObject * self, PyObject *Py_UNUSED(ignored))
+thread_PyThread_interrupt_main(PyObject * self, PyObject *Py_UNUSED(ignored))
{
PyErr_SetInterrupt();
Py_RETURN_NONE;
@@ -1168,7 +1168,7 @@ A subthread can use this function to interrupt the main thread."
static lockobject *newlockobject(void);
static PyObject *
-thread_PyThread_allocate_lock(PyObject *self, PyObject *Py_UNUSED(ignored))
+thread_PyThread_allocate_lock(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return (PyObject *) newlockobject();
}
@@ -1181,7 +1181,7 @@ Create a new lock object. See help(type(threading.Lock())) for\n\
information about locks.");
static PyObject *
-thread_get_ident(PyObject *self, PyObject *Py_UNUSED(ignored))
+thread_get_ident(PyObject *self, PyObject *Py_UNUSED(ignored))
{
unsigned long ident = PyThread_get_thread_ident();
if (ident == PYTHREAD_INVALID_THREAD_ID) {
@@ -1202,34 +1202,34 @@ allocated consecutive numbers starting at 1, this behavior should not\n\
be relied upon, and the number should be seen purely as a magic cookie.\n\
A thread's identity may be reused for another thread after it exits.");
-#ifdef PY_HAVE_THREAD_NATIVE_ID
+#ifdef PY_HAVE_THREAD_NATIVE_ID
static PyObject *
-thread_get_native_id(PyObject *self, PyObject *Py_UNUSED(ignored))
+thread_get_native_id(PyObject *self, PyObject *Py_UNUSED(ignored))
{
- unsigned long native_id = PyThread_get_thread_native_id();
- return PyLong_FromUnsignedLong(native_id);
+ unsigned long native_id = PyThread_get_thread_native_id();
+ return PyLong_FromUnsignedLong(native_id);
+}
+
+PyDoc_STRVAR(get_native_id_doc,
+"get_native_id() -> integer\n\
+\n\
+Return a non-negative integer identifying the thread as reported\n\
+by the OS (kernel). This may be used to uniquely identify a\n\
+particular thread within a system.");
+#endif
+
+static PyObject *
+thread__count(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ return PyLong_FromLong(interp->num_threads);
}
-PyDoc_STRVAR(get_native_id_doc,
-"get_native_id() -> integer\n\
-\n\
-Return a non-negative integer identifying the thread as reported\n\
-by the OS (kernel). This may be used to uniquely identify a\n\
-particular thread within a system.");
-#endif
-
-static PyObject *
-thread__count(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- return PyLong_FromLong(interp->num_threads);
-}
-
PyDoc_STRVAR(_count_doc,
"_count() -> integer\n\
\n\
\
-Return the number of currently running Python threads, excluding\n\
+Return the number of currently running Python threads, excluding\n\
the main thread. The returned number comprises all threads created\n\
through `start_new_thread()` as well as `threading.Thread`, and not\n\
yet finished.\n\
@@ -1238,16 +1238,16 @@ This function is meant for internal and specialized purposes only.\n\
In most applications `threading.enumerate()` should be used instead.");
static void
-release_sentinel(void *wr_raw)
+release_sentinel(void *wr_raw)
{
- PyObject *wr = _PyObject_CAST(wr_raw);
+ PyObject *wr = _PyObject_CAST(wr_raw);
/* Tricky: this function is called when the current thread state
is being deleted. Therefore, only simple C code can safely
execute here. */
PyObject *obj = PyWeakref_GET_OBJECT(wr);
lockobject *lock;
if (obj != Py_None) {
- assert(Py_IS_TYPE(obj, &Locktype));
+ assert(Py_IS_TYPE(obj, &Locktype));
lock = (lockobject *) obj;
if (lock->locked) {
PyThread_release_lock(lock->lock_lock);
@@ -1260,7 +1260,7 @@ release_sentinel(void *wr_raw)
}
static PyObject *
-thread__set_sentinel(PyObject *self, PyObject *Py_UNUSED(ignored))
+thread__set_sentinel(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *wr;
PyThreadState *tstate = PyThreadState_Get();
@@ -1352,177 +1352,177 @@ requiring allocation in multiples of the system memory page size\n\
(4 KiB pages are common; using multiples of 4096 for the stack size is\n\
the suggested approach in the absence of more specific information).");
-static int
-thread_excepthook_file(PyObject *file, PyObject *exc_type, PyObject *exc_value,
- PyObject *exc_traceback, PyObject *thread)
-{
- _Py_IDENTIFIER(name);
- /* print(f"Exception in thread {thread.name}:", file=file) */
- if (PyFile_WriteString("Exception in thread ", file) < 0) {
- return -1;
- }
-
- PyObject *name = NULL;
- if (thread != Py_None) {
- if (_PyObject_LookupAttrId(thread, &PyId_name, &name) < 0) {
- return -1;
- }
- }
- if (name != NULL) {
- if (PyFile_WriteObject(name, file, Py_PRINT_RAW) < 0) {
- Py_DECREF(name);
- return -1;
- }
- Py_DECREF(name);
- }
- else {
- unsigned long ident = PyThread_get_thread_ident();
- PyObject *str = PyUnicode_FromFormat("%lu", ident);
- if (str != NULL) {
- if (PyFile_WriteObject(str, file, Py_PRINT_RAW) < 0) {
- Py_DECREF(str);
- return -1;
- }
- Py_DECREF(str);
- }
- else {
- PyErr_Clear();
-
- if (PyFile_WriteString("<failed to get thread name>", file) < 0) {
- return -1;
- }
- }
- }
-
- if (PyFile_WriteString(":\n", file) < 0) {
- return -1;
- }
-
- /* Display the traceback */
- _PyErr_Display(file, exc_type, exc_value, exc_traceback);
-
- /* Call file.flush() */
- PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
- if (!res) {
- return -1;
- }
- Py_DECREF(res);
-
- return 0;
-}
-
-
-PyDoc_STRVAR(ExceptHookArgs__doc__,
-"ExceptHookArgs\n\
-\n\
-Type used to pass arguments to threading.excepthook.");
-
-static PyTypeObject ExceptHookArgsType;
-
-static PyStructSequence_Field ExceptHookArgs_fields[] = {
- {"exc_type", "Exception type"},
- {"exc_value", "Exception value"},
- {"exc_traceback", "Exception traceback"},
- {"thread", "Thread"},
- {0}
-};
-
-static PyStructSequence_Desc ExceptHookArgs_desc = {
- .name = "_thread.ExceptHookArgs",
- .doc = ExceptHookArgs__doc__,
- .fields = ExceptHookArgs_fields,
- .n_in_sequence = 4
-};
-
-
-static PyObject *
-thread_excepthook(PyObject *self, PyObject *args)
-{
- if (!Py_IS_TYPE(args, &ExceptHookArgsType)) {
- PyErr_SetString(PyExc_TypeError,
- "_thread.excepthook argument type "
- "must be ExceptHookArgs");
- return NULL;
- }
-
- /* Borrowed reference */
- PyObject *exc_type = PyStructSequence_GET_ITEM(args, 0);
- if (exc_type == PyExc_SystemExit) {
- /* silently ignore SystemExit */
- Py_RETURN_NONE;
- }
-
- /* Borrowed references */
- PyObject *exc_value = PyStructSequence_GET_ITEM(args, 1);
- PyObject *exc_tb = PyStructSequence_GET_ITEM(args, 2);
- PyObject *thread = PyStructSequence_GET_ITEM(args, 3);
-
- PyObject *file = _PySys_GetObjectId(&PyId_stderr);
- if (file == NULL || file == Py_None) {
- if (thread == Py_None) {
- /* do nothing if sys.stderr is None and thread is None */
- Py_RETURN_NONE;
- }
-
- file = PyObject_GetAttrString(thread, "_stderr");
- if (file == NULL) {
- return NULL;
- }
- if (file == Py_None) {
- Py_DECREF(file);
- /* do nothing if sys.stderr is None and sys.stderr was None
- when the thread was created */
- Py_RETURN_NONE;
- }
- }
- else {
- Py_INCREF(file);
- }
-
- int res = thread_excepthook_file(file, exc_type, exc_value, exc_tb,
- thread);
- Py_DECREF(file);
- if (res < 0) {
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(excepthook_doc,
-"excepthook(exc_type, exc_value, exc_traceback, thread)\n\
-\n\
-Handle uncaught Thread.run() exception.");
-
+static int
+thread_excepthook_file(PyObject *file, PyObject *exc_type, PyObject *exc_value,
+ PyObject *exc_traceback, PyObject *thread)
+{
+ _Py_IDENTIFIER(name);
+ /* print(f"Exception in thread {thread.name}:", file=file) */
+ if (PyFile_WriteString("Exception in thread ", file) < 0) {
+ return -1;
+ }
+
+ PyObject *name = NULL;
+ if (thread != Py_None) {
+ if (_PyObject_LookupAttrId(thread, &PyId_name, &name) < 0) {
+ return -1;
+ }
+ }
+ if (name != NULL) {
+ if (PyFile_WriteObject(name, file, Py_PRINT_RAW) < 0) {
+ Py_DECREF(name);
+ return -1;
+ }
+ Py_DECREF(name);
+ }
+ else {
+ unsigned long ident = PyThread_get_thread_ident();
+ PyObject *str = PyUnicode_FromFormat("%lu", ident);
+ if (str != NULL) {
+ if (PyFile_WriteObject(str, file, Py_PRINT_RAW) < 0) {
+ Py_DECREF(str);
+ return -1;
+ }
+ Py_DECREF(str);
+ }
+ else {
+ PyErr_Clear();
+
+ if (PyFile_WriteString("<failed to get thread name>", file) < 0) {
+ return -1;
+ }
+ }
+ }
+
+ if (PyFile_WriteString(":\n", file) < 0) {
+ return -1;
+ }
+
+ /* Display the traceback */
+ _PyErr_Display(file, exc_type, exc_value, exc_traceback);
+
+ /* Call file.flush() */
+ PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
+ if (!res) {
+ return -1;
+ }
+ Py_DECREF(res);
+
+ return 0;
+}
+
+
+PyDoc_STRVAR(ExceptHookArgs__doc__,
+"ExceptHookArgs\n\
+\n\
+Type used to pass arguments to threading.excepthook.");
+
+static PyTypeObject ExceptHookArgsType;
+
+static PyStructSequence_Field ExceptHookArgs_fields[] = {
+ {"exc_type", "Exception type"},
+ {"exc_value", "Exception value"},
+ {"exc_traceback", "Exception traceback"},
+ {"thread", "Thread"},
+ {0}
+};
+
+static PyStructSequence_Desc ExceptHookArgs_desc = {
+ .name = "_thread.ExceptHookArgs",
+ .doc = ExceptHookArgs__doc__,
+ .fields = ExceptHookArgs_fields,
+ .n_in_sequence = 4
+};
+
+
+static PyObject *
+thread_excepthook(PyObject *self, PyObject *args)
+{
+ if (!Py_IS_TYPE(args, &ExceptHookArgsType)) {
+ PyErr_SetString(PyExc_TypeError,
+ "_thread.excepthook argument type "
+ "must be ExceptHookArgs");
+ return NULL;
+ }
+
+ /* Borrowed reference */
+ PyObject *exc_type = PyStructSequence_GET_ITEM(args, 0);
+ if (exc_type == PyExc_SystemExit) {
+ /* silently ignore SystemExit */
+ Py_RETURN_NONE;
+ }
+
+ /* Borrowed references */
+ PyObject *exc_value = PyStructSequence_GET_ITEM(args, 1);
+ PyObject *exc_tb = PyStructSequence_GET_ITEM(args, 2);
+ PyObject *thread = PyStructSequence_GET_ITEM(args, 3);
+
+ PyObject *file = _PySys_GetObjectId(&PyId_stderr);
+ if (file == NULL || file == Py_None) {
+ if (thread == Py_None) {
+ /* do nothing if sys.stderr is None and thread is None */
+ Py_RETURN_NONE;
+ }
+
+ file = PyObject_GetAttrString(thread, "_stderr");
+ if (file == NULL) {
+ return NULL;
+ }
+ if (file == Py_None) {
+ Py_DECREF(file);
+ /* do nothing if sys.stderr is None and sys.stderr was None
+ when the thread was created */
+ Py_RETURN_NONE;
+ }
+ }
+ else {
+ Py_INCREF(file);
+ }
+
+ int res = thread_excepthook_file(file, exc_type, exc_value, exc_tb,
+ thread);
+ Py_DECREF(file);
+ if (res < 0) {
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(excepthook_doc,
+"excepthook(exc_type, exc_value, exc_traceback, thread)\n\
+\n\
+Handle uncaught Thread.run() exception.");
+
static PyMethodDef thread_methods[] = {
{"start_new_thread", (PyCFunction)thread_PyThread_start_new_thread,
METH_VARARGS, start_new_doc},
{"start_new", (PyCFunction)thread_PyThread_start_new_thread,
METH_VARARGS, start_new_doc},
- {"allocate_lock", thread_PyThread_allocate_lock,
+ {"allocate_lock", thread_PyThread_allocate_lock,
METH_NOARGS, allocate_doc},
- {"allocate", thread_PyThread_allocate_lock,
+ {"allocate", thread_PyThread_allocate_lock,
METH_NOARGS, allocate_doc},
- {"exit_thread", thread_PyThread_exit_thread,
+ {"exit_thread", thread_PyThread_exit_thread,
METH_NOARGS, exit_doc},
- {"exit", thread_PyThread_exit_thread,
+ {"exit", thread_PyThread_exit_thread,
METH_NOARGS, exit_doc},
- {"interrupt_main", thread_PyThread_interrupt_main,
+ {"interrupt_main", thread_PyThread_interrupt_main,
METH_NOARGS, interrupt_doc},
- {"get_ident", thread_get_ident,
+ {"get_ident", thread_get_ident,
METH_NOARGS, get_ident_doc},
-#ifdef PY_HAVE_THREAD_NATIVE_ID
- {"get_native_id", thread_get_native_id,
- METH_NOARGS, get_native_id_doc},
-#endif
- {"_count", thread__count,
+#ifdef PY_HAVE_THREAD_NATIVE_ID
+ {"get_native_id", thread_get_native_id,
+ METH_NOARGS, get_native_id_doc},
+#endif
+ {"_count", thread__count,
METH_NOARGS, _count_doc},
{"stack_size", (PyCFunction)thread_stack_size,
METH_VARARGS, stack_size_doc},
- {"_set_sentinel", thread__set_sentinel,
+ {"_set_sentinel", thread__set_sentinel,
METH_NOARGS, _set_sentinel_doc},
- {"_excepthook", thread_excepthook,
- METH_O, excepthook_doc},
+ {"_excepthook", thread_excepthook,
+ METH_O, excepthook_doc},
{NULL, NULL} /* sentinel */
};
@@ -1564,7 +1564,7 @@ PyInit__thread(void)
PyObject *m, *d, *v;
double time_max;
double timeout_max;
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
/* Initialize types: */
if (PyType_Ready(&localdummytype) < 0)
@@ -1575,12 +1575,12 @@ PyInit__thread(void)
return NULL;
if (PyType_Ready(&RLocktype) < 0)
return NULL;
- if (ExceptHookArgsType.tp_name == NULL) {
- if (PyStructSequence_InitType2(&ExceptHookArgsType,
- &ExceptHookArgs_desc) < 0) {
- return NULL;
- }
- }
+ if (ExceptHookArgsType.tp_name == NULL) {
+ if (PyStructSequence_InitType2(&ExceptHookArgsType,
+ &ExceptHookArgs_desc) < 0) {
+ return NULL;
+ }
+ }
/* Create the module and add the functions */
m = PyModule_Create(&threadmodule);
@@ -1617,13 +1617,13 @@ PyInit__thread(void)
if (PyModule_AddObject(m, "_local", (PyObject *)&localtype) < 0)
return NULL;
- Py_INCREF(&ExceptHookArgsType);
- if (PyModule_AddObject(m, "_ExceptHookArgs",
- (PyObject *)&ExceptHookArgsType) < 0)
- return NULL;
+ Py_INCREF(&ExceptHookArgsType);
+ if (PyModule_AddObject(m, "_ExceptHookArgs",
+ (PyObject *)&ExceptHookArgsType) < 0)
+ return NULL;
+
+ interp->num_threads = 0;
- interp->num_threads = 0;
-
str_dict = PyUnicode_InternFromString("__dict__");
if (str_dict == NULL)
return NULL;
diff --git a/contrib/tools/python3/src/Modules/_tracemalloc.c b/contrib/tools/python3/src/Modules/_tracemalloc.c
index fe11262674..4c8f3c4cd8 100644
--- a/contrib/tools/python3/src/Modules/_tracemalloc.c
+++ b/contrib/tools/python3/src/Modules/_tracemalloc.c
@@ -1,9 +1,9 @@
#include "Python.h"
-#include "pycore_gc.h" // PyGC_Head
-#include "pycore_pymem.h" // _Py_tracemalloc_config
-#include "pycore_traceback.h"
-#include "pycore_hashtable.h"
-#include "frameobject.h" // PyFrame_GetBack()
+#include "pycore_gc.h" // PyGC_Head
+#include "pycore_pymem.h" // _Py_tracemalloc_config
+#include "pycore_traceback.h"
+#include "pycore_hashtable.h"
+#include "frameobject.h" // PyFrame_GetBack()
#include "clinic/_tracemalloc.c.h"
/*[clinic input]
@@ -23,9 +23,9 @@ static void raw_free(void *ptr);
# define TRACE_DEBUG
#endif
-#define TO_PTR(key) ((const void *)(uintptr_t)(key))
-#define FROM_PTR(key) ((uintptr_t)(key))
-
+#define TO_PTR(key) ((const void *)(uintptr_t)(key))
+#define FROM_PTR(key) ((uintptr_t)(key))
+
/* Protected by the GIL */
static struct {
PyMemAllocatorEx mem;
@@ -37,7 +37,7 @@ static struct {
#if defined(TRACE_RAW_MALLOC)
/* This lock is needed because tracemalloc_free() is called without
the GIL held from PyMem_RawFree(). It cannot acquire the lock because it
- would introduce a deadlock in _PyThreadState_DeleteCurrent(). */
+ would introduce a deadlock in _PyThreadState_DeleteCurrent(). */
static PyThread_type_lock tables_lock;
# define TABLES_LOCK() PyThread_acquire_lock(tables_lock, 1)
# define TABLES_UNLOCK() PyThread_release_lock(tables_lock)
@@ -71,20 +71,20 @@ __attribute__((packed))
typedef struct {
Py_uhash_t hash;
- /* Number of frames stored */
- uint16_t nframe;
- /* Total number of frames the traceback had */
- uint16_t total_nframe;
+ /* Number of frames stored */
+ uint16_t nframe;
+ /* Total number of frames the traceback had */
+ uint16_t total_nframe;
frame_t frames[1];
} traceback_t;
#define TRACEBACK_SIZE(NFRAME) \
(sizeof(traceback_t) + sizeof(frame_t) * (NFRAME - 1))
-/* The maximum number of frames is either:
- - The maximum number of frames we can store in `traceback_t.nframe`
- - The maximum memory size_t we can allocate */
-static const unsigned long MAX_NFRAME = Py_MIN(UINT16_MAX, ((SIZE_MAX - sizeof(traceback_t)) / sizeof(frame_t) + 1));
+/* The maximum number of frames is either:
+ - The maximum number of frames we can store in `traceback_t.nframe`
+ - The maximum memory size_t we can allocate */
+static const unsigned long MAX_NFRAME = Py_MIN(UINT16_MAX, ((SIZE_MAX - sizeof(traceback_t)) / sizeof(frame_t) + 1));
static PyObject *unknown_filename = NULL;
@@ -122,15 +122,15 @@ static traceback_t *tracemalloc_traceback = NULL;
Protected by the GIL */
static _Py_hashtable_t *tracemalloc_tracebacks = NULL;
-/* pointer (void*) => trace (trace_t*).
+/* pointer (void*) => trace (trace_t*).
Protected by TABLES_LOCK(). */
static _Py_hashtable_t *tracemalloc_traces = NULL;
-/* domain (unsigned int) => traces (_Py_hashtable_t).
- Protected by TABLES_LOCK(). */
-static _Py_hashtable_t *tracemalloc_domains = NULL;
+/* domain (unsigned int) => traces (_Py_hashtable_t).
+ Protected by TABLES_LOCK(). */
+static _Py_hashtable_t *tracemalloc_domains = NULL;
+
-
#ifdef TRACE_DEBUG
static void
tracemalloc_error(const char *format, ...)
@@ -206,44 +206,44 @@ set_reentrant(int reentrant)
static Py_uhash_t
-hashtable_hash_pyobject(const void *key)
+hashtable_hash_pyobject(const void *key)
{
- PyObject *obj = (PyObject *)key;
+ PyObject *obj = (PyObject *)key;
return PyObject_Hash(obj);
}
static int
-hashtable_compare_unicode(const void *key1, const void *key2)
+hashtable_compare_unicode(const void *key1, const void *key2)
{
- PyObject *obj1 = (PyObject *)key1;
- PyObject *obj2 = (PyObject *)key2;
- if (obj1 != NULL && obj2 != NULL) {
- return (PyUnicode_Compare(obj1, obj2) == 0);
- }
- else {
- return obj1 == obj2;
- }
+ PyObject *obj1 = (PyObject *)key1;
+ PyObject *obj2 = (PyObject *)key2;
+ if (obj1 != NULL && obj2 != NULL) {
+ return (PyUnicode_Compare(obj1, obj2) == 0);
+ }
+ else {
+ return obj1 == obj2;
+ }
}
static Py_uhash_t
-hashtable_hash_uint(const void *key_raw)
+hashtable_hash_uint(const void *key_raw)
{
- unsigned int key = (unsigned int)FROM_PTR(key_raw);
- return (Py_uhash_t)key;
+ unsigned int key = (unsigned int)FROM_PTR(key_raw);
+ return (Py_uhash_t)key;
}
static _Py_hashtable_t *
-hashtable_new(_Py_hashtable_hash_func hash_func,
- _Py_hashtable_compare_func compare_func,
- _Py_hashtable_destroy_func key_destroy_func,
- _Py_hashtable_destroy_func value_destroy_func)
+hashtable_new(_Py_hashtable_hash_func hash_func,
+ _Py_hashtable_compare_func compare_func,
+ _Py_hashtable_destroy_func key_destroy_func,
+ _Py_hashtable_destroy_func value_destroy_func)
{
_Py_hashtable_allocator_t hashtable_alloc = {malloc, free};
- return _Py_hashtable_new_full(hash_func, compare_func,
- key_destroy_func, value_destroy_func,
+ return _Py_hashtable_new_full(hash_func, compare_func,
+ key_destroy_func, value_destroy_func,
&hashtable_alloc);
}
@@ -262,33 +262,33 @@ raw_free(void *ptr)
static Py_uhash_t
-hashtable_hash_traceback(const void *key)
+hashtable_hash_traceback(const void *key)
{
- const traceback_t *traceback = (const traceback_t *)key;
+ const traceback_t *traceback = (const traceback_t *)key;
return traceback->hash;
}
static int
-hashtable_compare_traceback(const void *key1, const void *key2)
+hashtable_compare_traceback(const void *key1, const void *key2)
{
- const traceback_t *traceback1 = (const traceback_t *)key1;
- const traceback_t *traceback2 = (const traceback_t *)key2;
+ const traceback_t *traceback1 = (const traceback_t *)key1;
+ const traceback_t *traceback2 = (const traceback_t *)key2;
- if (traceback1->nframe != traceback2->nframe) {
+ if (traceback1->nframe != traceback2->nframe) {
+ return 0;
+ }
+ if (traceback1->total_nframe != traceback2->total_nframe) {
return 0;
- }
- if (traceback1->total_nframe != traceback2->total_nframe) {
- return 0;
- }
+ }
- for (int i=0; i < traceback1->nframe; i++) {
- const frame_t *frame1 = &traceback1->frames[i];
- const frame_t *frame2 = &traceback2->frames[i];
+ for (int i=0; i < traceback1->nframe; i++) {
+ const frame_t *frame1 = &traceback1->frames[i];
+ const frame_t *frame2 = &traceback2->frames[i];
- if (frame1->lineno != frame2->lineno) {
+ if (frame1->lineno != frame2->lineno) {
return 0;
- }
+ }
if (frame1->filename != frame2->filename) {
assert(PyUnicode_Compare(frame1->filename, frame2->filename) != 0);
return 0;
@@ -302,17 +302,17 @@ static void
tracemalloc_get_frame(PyFrameObject *pyframe, frame_t *frame)
{
frame->filename = unknown_filename;
- int lineno = PyFrame_GetLineNumber(pyframe);
- if (lineno < 0) {
+ int lineno = PyFrame_GetLineNumber(pyframe);
+ if (lineno < 0) {
lineno = 0;
- }
+ }
frame->lineno = (unsigned int)lineno;
- PyCodeObject *code = PyFrame_GetCode(pyframe);
- PyObject *filename = code->co_filename;
- Py_DECREF(code);
+ PyCodeObject *code = PyFrame_GetCode(pyframe);
+ PyObject *filename = code->co_filename;
+ Py_DECREF(code);
- if (filename == NULL) {
+ if (filename == NULL) {
#ifdef TRACE_DEBUG
tracemalloc_error("failed to get the filename of the code object");
#endif
@@ -335,16 +335,16 @@ tracemalloc_get_frame(PyFrameObject *pyframe, frame_t *frame)
}
/* intern the filename */
- _Py_hashtable_entry_t *entry;
- entry = _Py_hashtable_get_entry(tracemalloc_filenames, filename);
+ _Py_hashtable_entry_t *entry;
+ entry = _Py_hashtable_get_entry(tracemalloc_filenames, filename);
if (entry != NULL) {
- filename = (PyObject *)entry->key;
+ filename = (PyObject *)entry->key;
}
else {
/* tracemalloc_filenames is responsible to keep a reference
to the filename */
Py_INCREF(filename);
- if (_Py_hashtable_set(tracemalloc_filenames, filename, NULL) < 0) {
+ if (_Py_hashtable_set(tracemalloc_filenames, filename, NULL) < 0) {
Py_DECREF(filename);
#ifdef TRACE_DEBUG
tracemalloc_error("failed to intern the filename");
@@ -378,7 +378,7 @@ traceback_hash(traceback_t *traceback)
/* the cast might truncate len; that doesn't change hash stability */
mult += (Py_uhash_t)(82520UL + len + len);
}
- x ^= traceback->total_nframe;
+ x ^= traceback->total_nframe;
x += 97531UL;
return x;
}
@@ -387,7 +387,7 @@ traceback_hash(traceback_t *traceback)
static void
traceback_get_frames(traceback_t *traceback)
{
- PyThreadState *tstate = PyGILState_GetThisThreadState();
+ PyThreadState *tstate = PyGILState_GetThisThreadState();
if (tstate == NULL) {
#ifdef TRACE_DEBUG
tracemalloc_error("failed to get the current thread state");
@@ -395,20 +395,20 @@ traceback_get_frames(traceback_t *traceback)
return;
}
- PyFrameObject *pyframe = PyThreadState_GetFrame(tstate);
- for (; pyframe != NULL;) {
- if (traceback->nframe < _Py_tracemalloc_config.max_nframe) {
- tracemalloc_get_frame(pyframe, &traceback->frames[traceback->nframe]);
- assert(traceback->frames[traceback->nframe].filename != NULL);
- traceback->nframe++;
- }
- if (traceback->total_nframe < UINT16_MAX) {
- traceback->total_nframe++;
- }
-
- PyFrameObject *back = PyFrame_GetBack(pyframe);
- Py_DECREF(pyframe);
- pyframe = back;
+ PyFrameObject *pyframe = PyThreadState_GetFrame(tstate);
+ for (; pyframe != NULL;) {
+ if (traceback->nframe < _Py_tracemalloc_config.max_nframe) {
+ tracemalloc_get_frame(pyframe, &traceback->frames[traceback->nframe]);
+ assert(traceback->frames[traceback->nframe].filename != NULL);
+ traceback->nframe++;
+ }
+ if (traceback->total_nframe < UINT16_MAX) {
+ traceback->total_nframe++;
+ }
+
+ PyFrameObject *back = PyFrame_GetBack(pyframe);
+ Py_DECREF(pyframe);
+ pyframe = back;
}
}
@@ -424,16 +424,16 @@ traceback_new(void)
/* get frames */
traceback = tracemalloc_traceback;
traceback->nframe = 0;
- traceback->total_nframe = 0;
+ traceback->total_nframe = 0;
traceback_get_frames(traceback);
if (traceback->nframe == 0)
return &tracemalloc_empty_traceback;
traceback->hash = traceback_hash(traceback);
/* intern the traceback */
- entry = _Py_hashtable_get_entry(tracemalloc_tracebacks, traceback);
+ entry = _Py_hashtable_get_entry(tracemalloc_tracebacks, traceback);
if (entry != NULL) {
- traceback = (traceback_t *)entry->key;
+ traceback = (traceback_t *)entry->key;
}
else {
traceback_t *copy;
@@ -450,7 +450,7 @@ traceback_new(void)
}
memcpy(copy, traceback, traceback_size);
- if (_Py_hashtable_set(tracemalloc_tracebacks, copy, NULL) < 0) {
+ if (_Py_hashtable_set(tracemalloc_tracebacks, copy, NULL) < 0) {
raw_free(copy);
#ifdef TRACE_DEBUG
tracemalloc_error("failed to intern the traceback: putdata failed");
@@ -463,33 +463,33 @@ traceback_new(void)
}
-static _Py_hashtable_t*
-tracemalloc_create_traces_table(void)
+static _Py_hashtable_t*
+tracemalloc_create_traces_table(void)
{
- return hashtable_new(_Py_hashtable_hash_ptr,
- _Py_hashtable_compare_direct,
- NULL, raw_free);
-}
+ return hashtable_new(_Py_hashtable_hash_ptr,
+ _Py_hashtable_compare_direct,
+ NULL, raw_free);
+}
-static _Py_hashtable_t*
-tracemalloc_create_domains_table(void)
-{
- return hashtable_new(hashtable_hash_uint,
- _Py_hashtable_compare_direct,
- NULL,
- (_Py_hashtable_destroy_func)_Py_hashtable_destroy);
+static _Py_hashtable_t*
+tracemalloc_create_domains_table(void)
+{
+ return hashtable_new(hashtable_hash_uint,
+ _Py_hashtable_compare_direct,
+ NULL,
+ (_Py_hashtable_destroy_func)_Py_hashtable_destroy);
}
-static _Py_hashtable_t*
-tracemalloc_get_traces_table(unsigned int domain)
+static _Py_hashtable_t*
+tracemalloc_get_traces_table(unsigned int domain)
{
- if (domain == DEFAULT_DOMAIN) {
- return tracemalloc_traces;
+ if (domain == DEFAULT_DOMAIN) {
+ return tracemalloc_traces;
}
- else {
- return _Py_hashtable_get(tracemalloc_domains, TO_PTR(domain));
+ else {
+ return _Py_hashtable_get(tracemalloc_domains, TO_PTR(domain));
}
}
@@ -497,20 +497,20 @@ tracemalloc_get_traces_table(unsigned int domain)
static void
tracemalloc_remove_trace(unsigned int domain, uintptr_t ptr)
{
- assert(_Py_tracemalloc_config.tracing);
+ assert(_Py_tracemalloc_config.tracing);
- _Py_hashtable_t *traces = tracemalloc_get_traces_table(domain);
- if (!traces) {
- return;
+ _Py_hashtable_t *traces = tracemalloc_get_traces_table(domain);
+ if (!traces) {
+ return;
}
-
- trace_t *trace = _Py_hashtable_steal(traces, TO_PTR(ptr));
- if (!trace) {
+
+ trace_t *trace = _Py_hashtable_steal(traces, TO_PTR(ptr));
+ if (!trace) {
return;
}
- assert(tracemalloc_traced_memory >= trace->size);
- tracemalloc_traced_memory -= trace->size;
- raw_free(trace);
+ assert(tracemalloc_traced_memory >= trace->size);
+ tracemalloc_traced_memory -= trace->size;
+ raw_free(trace);
}
#define REMOVE_TRACE(ptr) \
@@ -521,55 +521,55 @@ static int
tracemalloc_add_trace(unsigned int domain, uintptr_t ptr,
size_t size)
{
- assert(_Py_tracemalloc_config.tracing);
+ assert(_Py_tracemalloc_config.tracing);
- traceback_t *traceback = traceback_new();
+ traceback_t *traceback = traceback_new();
if (traceback == NULL) {
return -1;
}
- _Py_hashtable_t *traces = tracemalloc_get_traces_table(domain);
- if (traces == NULL) {
- traces = tracemalloc_create_traces_table();
- if (traces == NULL) {
+ _Py_hashtable_t *traces = tracemalloc_get_traces_table(domain);
+ if (traces == NULL) {
+ traces = tracemalloc_create_traces_table();
+ if (traces == NULL) {
return -1;
}
- if (_Py_hashtable_set(tracemalloc_domains, TO_PTR(domain), traces) < 0) {
- _Py_hashtable_destroy(traces);
- return -1;
- }
+ if (_Py_hashtable_set(tracemalloc_domains, TO_PTR(domain), traces) < 0) {
+ _Py_hashtable_destroy(traces);
+ return -1;
+ }
}
- trace_t *trace = _Py_hashtable_get(traces, TO_PTR(ptr));
- if (trace != NULL) {
+ trace_t *trace = _Py_hashtable_get(traces, TO_PTR(ptr));
+ if (trace != NULL) {
/* the memory block is already tracked */
- assert(tracemalloc_traced_memory >= trace->size);
- tracemalloc_traced_memory -= trace->size;
+ assert(tracemalloc_traced_memory >= trace->size);
+ tracemalloc_traced_memory -= trace->size;
- trace->size = size;
- trace->traceback = traceback;
+ trace->size = size;
+ trace->traceback = traceback;
}
else {
- trace = raw_malloc(sizeof(trace_t));
- if (trace == NULL) {
- return -1;
- }
- trace->size = size;
- trace->traceback = traceback;
-
- int res = _Py_hashtable_set(traces, TO_PTR(ptr), trace);
+ trace = raw_malloc(sizeof(trace_t));
+ if (trace == NULL) {
+ return -1;
+ }
+ trace->size = size;
+ trace->traceback = traceback;
+
+ int res = _Py_hashtable_set(traces, TO_PTR(ptr), trace);
if (res != 0) {
- raw_free(trace);
+ raw_free(trace);
return res;
}
}
assert(tracemalloc_traced_memory <= SIZE_MAX - size);
tracemalloc_traced_memory += size;
- if (tracemalloc_traced_memory > tracemalloc_peak_traced_memory) {
+ if (tracemalloc_traced_memory > tracemalloc_peak_traced_memory) {
tracemalloc_peak_traced_memory = tracemalloc_traced_memory;
- }
+ }
return 0;
}
@@ -620,7 +620,7 @@ tracemalloc_realloc(void *ctx, void *ptr, size_t new_size)
TABLES_LOCK();
/* tracemalloc_add_trace() updates the trace if there is already
- a trace at address ptr2 */
+ a trace at address ptr2 */
if (ptr2 != ptr) {
REMOVE_TRACE(ptr);
}
@@ -635,7 +635,7 @@ tracemalloc_realloc(void *ctx, void *ptr, size_t new_size)
The GIL and the table lock ensures that only one thread is
allocating memory. */
- Py_FatalError("tracemalloc_realloc() failed to allocate a trace");
+ Py_FatalError("tracemalloc_realloc() failed to allocate a trace");
}
TABLES_UNLOCK();
}
@@ -664,7 +664,7 @@ tracemalloc_free(void *ctx, void *ptr)
return;
/* GIL cannot be locked in PyMem_RawFree() because it would introduce
- a deadlock in _PyThreadState_DeleteCurrent(). */
+ a deadlock in _PyThreadState_DeleteCurrent(). */
alloc->free(alloc->ctx, ptr);
@@ -824,10 +824,10 @@ tracemalloc_raw_realloc(void *ctx, void *ptr, size_t new_size)
#endif /* TRACE_RAW_MALLOC */
-static void
-tracemalloc_clear_filename(void *value)
+static void
+tracemalloc_clear_filename(void *value)
{
- PyObject *filename = (PyObject *)value;
+ PyObject *filename = (PyObject *)value;
Py_DECREF(filename);
}
@@ -836,12 +836,12 @@ tracemalloc_clear_filename(void *value)
static void
tracemalloc_clear_traces(void)
{
- /* The GIL protects variables against concurrent access */
+ /* The GIL protects variables against concurrent access */
assert(PyGILState_Check());
TABLES_LOCK();
_Py_hashtable_clear(tracemalloc_traces);
- _Py_hashtable_clear(tracemalloc_domains);
+ _Py_hashtable_clear(tracemalloc_domains);
tracemalloc_traced_memory = 0;
tracemalloc_peak_traced_memory = 0;
TABLES_UNLOCK();
@@ -855,13 +855,13 @@ tracemalloc_clear_traces(void)
static int
tracemalloc_init(void)
{
- if (_Py_tracemalloc_config.initialized == TRACEMALLOC_FINALIZED) {
+ if (_Py_tracemalloc_config.initialized == TRACEMALLOC_FINALIZED) {
PyErr_SetString(PyExc_RuntimeError,
"the tracemalloc module has been unloaded");
return -1;
}
- if (_Py_tracemalloc_config.initialized == TRACEMALLOC_INITIALIZED)
+ if (_Py_tracemalloc_config.initialized == TRACEMALLOC_INITIALIZED)
return 0;
PyMem_GetAllocator(PYMEM_DOMAIN_RAW, &allocators.raw);
@@ -887,19 +887,19 @@ tracemalloc_init(void)
}
#endif
- tracemalloc_filenames = hashtable_new(hashtable_hash_pyobject,
- hashtable_compare_unicode,
- tracemalloc_clear_filename, NULL);
+ tracemalloc_filenames = hashtable_new(hashtable_hash_pyobject,
+ hashtable_compare_unicode,
+ tracemalloc_clear_filename, NULL);
- tracemalloc_tracebacks = hashtable_new(hashtable_hash_traceback,
- hashtable_compare_traceback,
- NULL, raw_free);
+ tracemalloc_tracebacks = hashtable_new(hashtable_hash_traceback,
+ hashtable_compare_traceback,
+ NULL, raw_free);
- tracemalloc_traces = tracemalloc_create_traces_table();
- tracemalloc_domains = tracemalloc_create_domains_table();
+ tracemalloc_traces = tracemalloc_create_traces_table();
+ tracemalloc_domains = tracemalloc_create_domains_table();
if (tracemalloc_filenames == NULL || tracemalloc_tracebacks == NULL
- || tracemalloc_traces == NULL || tracemalloc_domains == NULL) {
+ || tracemalloc_traces == NULL || tracemalloc_domains == NULL) {
PyErr_NoMemory();
return -1;
}
@@ -910,13 +910,13 @@ tracemalloc_init(void)
PyUnicode_InternInPlace(&unknown_filename);
tracemalloc_empty_traceback.nframe = 1;
- tracemalloc_empty_traceback.total_nframe = 1;
+ tracemalloc_empty_traceback.total_nframe = 1;
/* borrowed reference */
tracemalloc_empty_traceback.frames[0].filename = unknown_filename;
tracemalloc_empty_traceback.frames[0].lineno = 0;
tracemalloc_empty_traceback.hash = traceback_hash(&tracemalloc_empty_traceback);
- _Py_tracemalloc_config.initialized = TRACEMALLOC_INITIALIZED;
+ _Py_tracemalloc_config.initialized = TRACEMALLOC_INITIALIZED;
return 0;
}
@@ -924,15 +924,15 @@ tracemalloc_init(void)
static void
tracemalloc_deinit(void)
{
- if (_Py_tracemalloc_config.initialized != TRACEMALLOC_INITIALIZED)
+ if (_Py_tracemalloc_config.initialized != TRACEMALLOC_INITIALIZED)
return;
- _Py_tracemalloc_config.initialized = TRACEMALLOC_FINALIZED;
+ _Py_tracemalloc_config.initialized = TRACEMALLOC_FINALIZED;
tracemalloc_stop();
/* destroy hash tables */
- _Py_hashtable_destroy(tracemalloc_domains);
- _Py_hashtable_destroy(tracemalloc_traces);
+ _Py_hashtable_destroy(tracemalloc_domains);
+ _Py_hashtable_destroy(tracemalloc_traces);
_Py_hashtable_destroy(tracemalloc_tracebacks);
_Py_hashtable_destroy(tracemalloc_filenames);
@@ -957,10 +957,10 @@ tracemalloc_start(int max_nframe)
PyMemAllocatorEx alloc;
size_t size;
- if (max_nframe < 1 || (unsigned long) max_nframe > MAX_NFRAME) {
+ if (max_nframe < 1 || (unsigned long) max_nframe > MAX_NFRAME) {
PyErr_Format(PyExc_ValueError,
- "the number of frames must be in range [1; %lu]",
- MAX_NFRAME);
+ "the number of frames must be in range [1; %lu]",
+ MAX_NFRAME);
return -1;
}
@@ -968,12 +968,12 @@ tracemalloc_start(int max_nframe)
return -1;
}
- if (_Py_tracemalloc_config.tracing) {
+ if (_Py_tracemalloc_config.tracing) {
/* hook already installed: do nothing */
return 0;
}
- _Py_tracemalloc_config.max_nframe = max_nframe;
+ _Py_tracemalloc_config.max_nframe = max_nframe;
/* allocate a buffer to store a new traceback */
size = TRACEBACK_SIZE(max_nframe);
@@ -1009,7 +1009,7 @@ tracemalloc_start(int max_nframe)
PyMem_SetAllocator(PYMEM_DOMAIN_OBJ, &alloc);
/* everything is ready: start tracing Python memory allocations */
- _Py_tracemalloc_config.tracing = 1;
+ _Py_tracemalloc_config.tracing = 1;
return 0;
}
@@ -1018,11 +1018,11 @@ tracemalloc_start(int max_nframe)
static void
tracemalloc_stop(void)
{
- if (!_Py_tracemalloc_config.tracing)
+ if (!_Py_tracemalloc_config.tracing)
return;
/* stop tracing Python memory allocations */
- _Py_tracemalloc_config.tracing = 0;
+ _Py_tracemalloc_config.tracing = 0;
/* unregister the hook on memory allocators */
#ifdef TRACE_RAW_MALLOC
@@ -1050,7 +1050,7 @@ static PyObject *
_tracemalloc_is_tracing_impl(PyObject *module)
/*[clinic end generated code: output=2d763b42601cd3ef input=af104b0a00192f63]*/
{
- return PyBool_FromLong(_Py_tracemalloc_config.tracing);
+ return PyBool_FromLong(_Py_tracemalloc_config.tracing);
}
@@ -1064,7 +1064,7 @@ static PyObject *
_tracemalloc_clear_traces_impl(PyObject *module)
/*[clinic end generated code: output=a86080ee41b84197 input=0dab5b6c785183a5]*/
{
- if (!_Py_tracemalloc_config.tracing)
+ if (!_Py_tracemalloc_config.tracing)
Py_RETURN_NONE;
set_reentrant(1);
@@ -1101,11 +1101,11 @@ frame_to_pyobject(frame_t *frame)
static PyObject*
traceback_to_pyobject(traceback_t *traceback, _Py_hashtable_t *intern_table)
{
- PyObject *frames;
+ PyObject *frames;
if (intern_table != NULL) {
- frames = _Py_hashtable_get(intern_table, (const void *)traceback);
- if (frames) {
+ frames = _Py_hashtable_get(intern_table, (const void *)traceback);
+ if (frames) {
Py_INCREF(frames);
return frames;
}
@@ -1115,8 +1115,8 @@ traceback_to_pyobject(traceback_t *traceback, _Py_hashtable_t *intern_table)
if (frames == NULL)
return NULL;
- for (int i=0; i < traceback->nframe; i++) {
- PyObject *frame = frame_to_pyobject(&traceback->frames[i]);
+ for (int i=0; i < traceback->nframe; i++) {
+ PyObject *frame = frame_to_pyobject(&traceback->frames[i]);
if (frame == NULL) {
Py_DECREF(frames);
return NULL;
@@ -1125,7 +1125,7 @@ traceback_to_pyobject(traceback_t *traceback, _Py_hashtable_t *intern_table)
}
if (intern_table != NULL) {
- if (_Py_hashtable_set(intern_table, traceback, frames) < 0) {
+ if (_Py_hashtable_set(intern_table, traceback, frames) < 0) {
Py_DECREF(frames);
PyErr_NoMemory();
return NULL;
@@ -1138,13 +1138,13 @@ traceback_to_pyobject(traceback_t *traceback, _Py_hashtable_t *intern_table)
static PyObject*
-trace_to_pyobject(unsigned int domain, const trace_t *trace,
+trace_to_pyobject(unsigned int domain, const trace_t *trace,
_Py_hashtable_t *intern_tracebacks)
{
PyObject *trace_obj = NULL;
PyObject *obj;
- trace_obj = PyTuple_New(4);
+ trace_obj = PyTuple_New(4);
if (trace_obj == NULL)
return NULL;
@@ -1169,151 +1169,151 @@ trace_to_pyobject(unsigned int domain, const trace_t *trace,
}
PyTuple_SET_ITEM(trace_obj, 2, obj);
- obj = PyLong_FromUnsignedLong(trace->traceback->total_nframe);
- if (obj == NULL) {
- Py_DECREF(trace_obj);
- return NULL;
- }
- PyTuple_SET_ITEM(trace_obj, 3, obj);
-
+ obj = PyLong_FromUnsignedLong(trace->traceback->total_nframe);
+ if (obj == NULL) {
+ Py_DECREF(trace_obj);
+ return NULL;
+ }
+ PyTuple_SET_ITEM(trace_obj, 3, obj);
+
return trace_obj;
}
typedef struct {
_Py_hashtable_t *traces;
- _Py_hashtable_t *domains;
+ _Py_hashtable_t *domains;
_Py_hashtable_t *tracebacks;
PyObject *list;
- unsigned int domain;
+ unsigned int domain;
} get_traces_t;
-
+
static int
-tracemalloc_copy_trace(_Py_hashtable_t *traces,
- const void *key, const void *value,
- void *user_data)
-{
- _Py_hashtable_t *traces2 = (_Py_hashtable_t *)user_data;
-
- trace_t *trace = (trace_t *)value;
-
- trace_t *trace2 = raw_malloc(sizeof(trace_t));
- if (trace2 == NULL) {
- return -1;
- }
- *trace2 = *trace;
- if (_Py_hashtable_set(traces2, key, trace2) < 0) {
- raw_free(trace2);
- return -1;
- }
- return 0;
-}
-
-
-static _Py_hashtable_t*
-tracemalloc_copy_traces(_Py_hashtable_t *traces)
-{
- _Py_hashtable_t *traces2 = tracemalloc_create_traces_table();
- if (traces2 == NULL) {
- return NULL;
- }
-
- int err = _Py_hashtable_foreach(traces,
- tracemalloc_copy_trace,
- traces2);
- if (err) {
- _Py_hashtable_destroy(traces2);
- return NULL;
- }
- return traces2;
-}
-
-
-static int
-tracemalloc_copy_domain(_Py_hashtable_t *domains,
- const void *key, const void *value,
- void *user_data)
-{
- _Py_hashtable_t *domains2 = (_Py_hashtable_t *)user_data;
-
- unsigned int domain = (unsigned int)FROM_PTR(key);
- _Py_hashtable_t *traces = (_Py_hashtable_t *)value;
-
- _Py_hashtable_t *traces2 = tracemalloc_copy_traces(traces);
- if (_Py_hashtable_set(domains2, TO_PTR(domain), traces2) < 0) {
- _Py_hashtable_destroy(traces2);
- return -1;
- }
- return 0;
-}
-
-
-static _Py_hashtable_t*
-tracemalloc_copy_domains(_Py_hashtable_t *domains)
-{
- _Py_hashtable_t *domains2 = tracemalloc_create_domains_table();
- if (domains2 == NULL) {
- return NULL;
- }
-
- int err = _Py_hashtable_foreach(domains,
- tracemalloc_copy_domain,
- domains2);
- if (err) {
- _Py_hashtable_destroy(domains2);
- return NULL;
- }
- return domains2;
-}
-
-
-static int
-tracemalloc_get_traces_fill(_Py_hashtable_t *traces,
- const void *key, const void *value,
- void *user_data)
-{
- get_traces_t *get_traces = user_data;
-
- const trace_t *trace = (const trace_t *)value;
-
- PyObject *tuple = trace_to_pyobject(get_traces->domain, trace,
- get_traces->tracebacks);
- if (tuple == NULL) {
+tracemalloc_copy_trace(_Py_hashtable_t *traces,
+ const void *key, const void *value,
+ void *user_data)
+{
+ _Py_hashtable_t *traces2 = (_Py_hashtable_t *)user_data;
+
+ trace_t *trace = (trace_t *)value;
+
+ trace_t *trace2 = raw_malloc(sizeof(trace_t));
+ if (trace2 == NULL) {
+ return -1;
+ }
+ *trace2 = *trace;
+ if (_Py_hashtable_set(traces2, key, trace2) < 0) {
+ raw_free(trace2);
+ return -1;
+ }
+ return 0;
+}
+
+
+static _Py_hashtable_t*
+tracemalloc_copy_traces(_Py_hashtable_t *traces)
+{
+ _Py_hashtable_t *traces2 = tracemalloc_create_traces_table();
+ if (traces2 == NULL) {
+ return NULL;
+ }
+
+ int err = _Py_hashtable_foreach(traces,
+ tracemalloc_copy_trace,
+ traces2);
+ if (err) {
+ _Py_hashtable_destroy(traces2);
+ return NULL;
+ }
+ return traces2;
+}
+
+
+static int
+tracemalloc_copy_domain(_Py_hashtable_t *domains,
+ const void *key, const void *value,
+ void *user_data)
+{
+ _Py_hashtable_t *domains2 = (_Py_hashtable_t *)user_data;
+
+ unsigned int domain = (unsigned int)FROM_PTR(key);
+ _Py_hashtable_t *traces = (_Py_hashtable_t *)value;
+
+ _Py_hashtable_t *traces2 = tracemalloc_copy_traces(traces);
+ if (_Py_hashtable_set(domains2, TO_PTR(domain), traces2) < 0) {
+ _Py_hashtable_destroy(traces2);
+ return -1;
+ }
+ return 0;
+}
+
+
+static _Py_hashtable_t*
+tracemalloc_copy_domains(_Py_hashtable_t *domains)
+{
+ _Py_hashtable_t *domains2 = tracemalloc_create_domains_table();
+ if (domains2 == NULL) {
+ return NULL;
+ }
+
+ int err = _Py_hashtable_foreach(domains,
+ tracemalloc_copy_domain,
+ domains2);
+ if (err) {
+ _Py_hashtable_destroy(domains2);
+ return NULL;
+ }
+ return domains2;
+}
+
+
+static int
+tracemalloc_get_traces_fill(_Py_hashtable_t *traces,
+ const void *key, const void *value,
+ void *user_data)
+{
+ get_traces_t *get_traces = user_data;
+
+ const trace_t *trace = (const trace_t *)value;
+
+ PyObject *tuple = trace_to_pyobject(get_traces->domain, trace,
+ get_traces->tracebacks);
+ if (tuple == NULL) {
return 1;
- }
+ }
- int res = PyList_Append(get_traces->list, tuple);
- Py_DECREF(tuple);
- if (res < 0) {
+ int res = PyList_Append(get_traces->list, tuple);
+ Py_DECREF(tuple);
+ if (res < 0) {
return 1;
- }
+ }
return 0;
}
static int
-tracemalloc_get_traces_domain(_Py_hashtable_t *domains,
- const void *key, const void *value,
- void *user_data)
-{
- get_traces_t *get_traces = user_data;
-
- unsigned int domain = (unsigned int)FROM_PTR(key);
- _Py_hashtable_t *traces = (_Py_hashtable_t *)value;
-
- get_traces->domain = domain;
- return _Py_hashtable_foreach(traces,
- tracemalloc_get_traces_fill,
- get_traces);
-}
-
-
-static void
-tracemalloc_pyobject_decref(void *value)
-{
- PyObject *obj = (PyObject *)value;
+tracemalloc_get_traces_domain(_Py_hashtable_t *domains,
+ const void *key, const void *value,
+ void *user_data)
+{
+ get_traces_t *get_traces = user_data;
+
+ unsigned int domain = (unsigned int)FROM_PTR(key);
+ _Py_hashtable_t *traces = (_Py_hashtable_t *)value;
+
+ get_traces->domain = domain;
+ return _Py_hashtable_foreach(traces,
+ tracemalloc_get_traces_fill,
+ get_traces);
+}
+
+
+static void
+tracemalloc_pyobject_decref(void *value)
+{
+ PyObject *obj = (PyObject *)value;
Py_DECREF(obj);
}
@@ -1335,65 +1335,65 @@ _tracemalloc__get_traces_impl(PyObject *module)
/*[clinic end generated code: output=e9929876ced4b5cc input=6c7d2230b24255aa]*/
{
get_traces_t get_traces;
- get_traces.domain = DEFAULT_DOMAIN;
+ get_traces.domain = DEFAULT_DOMAIN;
get_traces.traces = NULL;
- get_traces.domains = NULL;
+ get_traces.domains = NULL;
get_traces.tracebacks = NULL;
get_traces.list = PyList_New(0);
if (get_traces.list == NULL)
goto error;
- if (!_Py_tracemalloc_config.tracing)
+ if (!_Py_tracemalloc_config.tracing)
return get_traces.list;
/* the traceback hash table is used temporarily to intern traceback tuple
of (filename, lineno) tuples */
- get_traces.tracebacks = hashtable_new(_Py_hashtable_hash_ptr,
- _Py_hashtable_compare_direct,
- NULL, tracemalloc_pyobject_decref);
+ get_traces.tracebacks = hashtable_new(_Py_hashtable_hash_ptr,
+ _Py_hashtable_compare_direct,
+ NULL, tracemalloc_pyobject_decref);
if (get_traces.tracebacks == NULL) {
- goto no_memory;
+ goto no_memory;
}
- // Copy all traces so tracemalloc_get_traces_fill() doesn't have to disable
- // temporarily tracemalloc which would impact other threads and so would
- // miss allocations while get_traces() is called.
+ // Copy all traces so tracemalloc_get_traces_fill() doesn't have to disable
+ // temporarily tracemalloc which would impact other threads and so would
+ // miss allocations while get_traces() is called.
TABLES_LOCK();
- get_traces.traces = tracemalloc_copy_traces(tracemalloc_traces);
+ get_traces.traces = tracemalloc_copy_traces(tracemalloc_traces);
TABLES_UNLOCK();
if (get_traces.traces == NULL) {
- goto no_memory;
- }
-
- TABLES_LOCK();
- get_traces.domains = tracemalloc_copy_domains(tracemalloc_domains);
- TABLES_UNLOCK();
-
- if (get_traces.domains == NULL) {
- goto no_memory;
- }
-
- // Convert traces to a list of tuples
+ goto no_memory;
+ }
+
+ TABLES_LOCK();
+ get_traces.domains = tracemalloc_copy_domains(tracemalloc_domains);
+ TABLES_UNLOCK();
+
+ if (get_traces.domains == NULL) {
+ goto no_memory;
+ }
+
+ // Convert traces to a list of tuples
set_reentrant(1);
- int err = _Py_hashtable_foreach(get_traces.traces,
- tracemalloc_get_traces_fill,
- &get_traces);
- if (!err) {
- err = _Py_hashtable_foreach(get_traces.domains,
- tracemalloc_get_traces_domain,
- &get_traces);
- }
+ int err = _Py_hashtable_foreach(get_traces.traces,
+ tracemalloc_get_traces_fill,
+ &get_traces);
+ if (!err) {
+ err = _Py_hashtable_foreach(get_traces.domains,
+ tracemalloc_get_traces_domain,
+ &get_traces);
+ }
set_reentrant(0);
- if (err) {
+ if (err) {
goto error;
- }
+ }
goto finally;
-no_memory:
- PyErr_NoMemory();
-
+no_memory:
+ PyErr_NoMemory();
+
error:
Py_CLEAR(get_traces.list);
@@ -1404,9 +1404,9 @@ finally:
if (get_traces.traces != NULL) {
_Py_hashtable_destroy(get_traces.traces);
}
- if (get_traces.domains != NULL) {
- _Py_hashtable_destroy(get_traces.domains);
- }
+ if (get_traces.domains != NULL) {
+ _Py_hashtable_destroy(get_traces.domains);
+ }
return get_traces.list;
}
@@ -1416,25 +1416,25 @@ static traceback_t*
tracemalloc_get_traceback(unsigned int domain, uintptr_t ptr)
{
- if (!_Py_tracemalloc_config.tracing)
+ if (!_Py_tracemalloc_config.tracing)
return NULL;
- trace_t *trace;
+ trace_t *trace;
TABLES_LOCK();
- _Py_hashtable_t *traces = tracemalloc_get_traces_table(domain);
- if (traces) {
- trace = _Py_hashtable_get(traces, TO_PTR(ptr));
+ _Py_hashtable_t *traces = tracemalloc_get_traces_table(domain);
+ if (traces) {
+ trace = _Py_hashtable_get(traces, TO_PTR(ptr));
}
else {
- trace = NULL;
+ trace = NULL;
}
TABLES_UNLOCK();
- if (!trace) {
+ if (!trace) {
return NULL;
- }
+ }
- return trace->traceback;
+ return trace->traceback;
}
@@ -1461,12 +1461,12 @@ _tracemalloc__get_object_traceback(PyObject *module, PyObject *obj)
traceback_t *traceback;
type = Py_TYPE(obj);
- if (PyType_IS_GC(type)) {
+ if (PyType_IS_GC(type)) {
ptr = (void *)((char *)obj - sizeof(PyGC_Head));
- }
- else {
+ }
+ else {
ptr = (void *)obj;
- }
+ }
traceback = tracemalloc_get_traceback(DEFAULT_DOMAIN, (uintptr_t)ptr);
if (traceback == NULL)
@@ -1496,7 +1496,7 @@ _PyMem_DumpTraceback(int fd, const void *ptr)
traceback_t *traceback;
int i;
- if (!_Py_tracemalloc_config.tracing) {
+ if (!_Py_tracemalloc_config.tracing) {
PUTS(fd, "Enable tracemalloc to get the memory block "
"allocation traceback\n\n");
return;
@@ -1570,22 +1570,22 @@ static PyObject *
_tracemalloc_get_traceback_limit_impl(PyObject *module)
/*[clinic end generated code: output=d556d9306ba95567 input=da3cd977fc68ae3b]*/
{
- return PyLong_FromLong(_Py_tracemalloc_config.max_nframe);
+ return PyLong_FromLong(_Py_tracemalloc_config.max_nframe);
}
-static int
-tracemalloc_get_tracemalloc_memory_cb(_Py_hashtable_t *domains,
- const void *key, const void *value,
- void *user_data)
-{
- const _Py_hashtable_t *traces = value;
- size_t *size = (size_t*)user_data;
- *size += _Py_hashtable_size(traces);
- return 0;
-}
+static int
+tracemalloc_get_tracemalloc_memory_cb(_Py_hashtable_t *domains,
+ const void *key, const void *value,
+ void *user_data)
+{
+ const _Py_hashtable_t *traces = value;
+ size_t *size = (size_t*)user_data;
+ *size += _Py_hashtable_size(traces);
+ return 0;
+}
+
-
/*[clinic input]
_tracemalloc.get_tracemalloc_memory
@@ -1605,8 +1605,8 @@ _tracemalloc_get_tracemalloc_memory_impl(PyObject *module)
TABLES_LOCK();
size += _Py_hashtable_size(tracemalloc_traces);
- _Py_hashtable_foreach(tracemalloc_domains,
- tracemalloc_get_tracemalloc_memory_cb, &size);
+ _Py_hashtable_foreach(tracemalloc_domains,
+ tracemalloc_get_tracemalloc_memory_cb, &size);
TABLES_UNLOCK();
return PyLong_FromSize_t(size);
@@ -1628,7 +1628,7 @@ _tracemalloc_get_traced_memory_impl(PyObject *module)
{
Py_ssize_t size, peak_size;
- if (!_Py_tracemalloc_config.tracing)
+ if (!_Py_tracemalloc_config.tracing)
return Py_BuildValue("ii", 0, 0);
TABLES_LOCK();
@@ -1639,31 +1639,31 @@ _tracemalloc_get_traced_memory_impl(PyObject *module)
return Py_BuildValue("nn", size, peak_size);
}
-/*[clinic input]
-_tracemalloc.reset_peak
-
-Set the peak size of memory blocks traced by tracemalloc to the current size.
-
-Do nothing if the tracemalloc module is not tracing memory allocations.
-
-[clinic start generated code]*/
-
-static PyObject *
-_tracemalloc_reset_peak_impl(PyObject *module)
-/*[clinic end generated code: output=140c2870f691dbb2 input=18afd0635066e9ce]*/
-{
- if (!_Py_tracemalloc_config.tracing) {
- Py_RETURN_NONE;
- }
-
- TABLES_LOCK();
- tracemalloc_peak_traced_memory = tracemalloc_traced_memory;
- TABLES_UNLOCK();
-
- Py_RETURN_NONE;
-}
-
-
+/*[clinic input]
+_tracemalloc.reset_peak
+
+Set the peak size of memory blocks traced by tracemalloc to the current size.
+
+Do nothing if the tracemalloc module is not tracing memory allocations.
+
+[clinic start generated code]*/
+
+static PyObject *
+_tracemalloc_reset_peak_impl(PyObject *module)
+/*[clinic end generated code: output=140c2870f691dbb2 input=18afd0635066e9ce]*/
+{
+ if (!_Py_tracemalloc_config.tracing) {
+ Py_RETURN_NONE;
+ }
+
+ TABLES_LOCK();
+ tracemalloc_peak_traced_memory = tracemalloc_traced_memory;
+ TABLES_UNLOCK();
+
+ Py_RETURN_NONE;
+}
+
+
static PyMethodDef module_methods[] = {
_TRACEMALLOC_IS_TRACING_METHODDEF
_TRACEMALLOC_CLEAR_TRACES_METHODDEF
@@ -1674,7 +1674,7 @@ static PyMethodDef module_methods[] = {
_TRACEMALLOC_GET_TRACEBACK_LIMIT_METHODDEF
_TRACEMALLOC_GET_TRACEMALLOC_MEMORY_METHODDEF
_TRACEMALLOC_GET_TRACED_MEMORY_METHODDEF
- _TRACEMALLOC_RESET_PEAK_METHODDEF
+ _TRACEMALLOC_RESET_PEAK_METHODDEF
/* sentinel */
{NULL, NULL}
};
@@ -1699,10 +1699,10 @@ PyInit__tracemalloc(void)
if (m == NULL)
return NULL;
- if (tracemalloc_init() < 0) {
- Py_DECREF(m);
+ if (tracemalloc_init() < 0) {
+ Py_DECREF(m);
return NULL;
- }
+ }
return m;
}
@@ -1733,7 +1733,7 @@ PyTraceMalloc_Track(unsigned int domain, uintptr_t ptr,
int res;
PyGILState_STATE gil_state;
- if (!_Py_tracemalloc_config.tracing) {
+ if (!_Py_tracemalloc_config.tracing) {
/* tracemalloc is not tracing: do nothing */
return -2;
}
@@ -1752,7 +1752,7 @@ PyTraceMalloc_Track(unsigned int domain, uintptr_t ptr,
int
PyTraceMalloc_Untrack(unsigned int domain, uintptr_t ptr)
{
- if (!_Py_tracemalloc_config.tracing) {
+ if (!_Py_tracemalloc_config.tracing) {
/* tracemalloc is not tracing: do nothing */
return -2;
}
@@ -1765,49 +1765,49 @@ PyTraceMalloc_Untrack(unsigned int domain, uintptr_t ptr)
}
-/* If the object memory block is already traced, update its trace
- with the current Python traceback.
-
- Do nothing if tracemalloc is not tracing memory allocations
- or if the object memory block is not already traced. */
-int
-_PyTraceMalloc_NewReference(PyObject *op)
-{
- assert(PyGILState_Check());
-
- if (!_Py_tracemalloc_config.tracing) {
- /* tracemalloc is not tracing: do nothing */
- return -1;
- }
-
- uintptr_t ptr;
- PyTypeObject *type = Py_TYPE(op);
- if (PyType_IS_GC(type)) {
- ptr = (uintptr_t)((char *)op - sizeof(PyGC_Head));
- }
- else {
- ptr = (uintptr_t)op;
- }
-
- int res = -1;
-
- TABLES_LOCK();
- trace_t *trace = _Py_hashtable_get(tracemalloc_traces, TO_PTR(ptr));
- if (trace != NULL) {
- /* update the traceback of the memory block */
- traceback_t *traceback = traceback_new();
- if (traceback != NULL) {
- trace->traceback = traceback;
- res = 0;
- }
- }
- /* else: cannot track the object, its memory block size is unknown */
- TABLES_UNLOCK();
-
- return res;
-}
-
-
+/* If the object memory block is already traced, update its trace
+ with the current Python traceback.
+
+ Do nothing if tracemalloc is not tracing memory allocations
+ or if the object memory block is not already traced. */
+int
+_PyTraceMalloc_NewReference(PyObject *op)
+{
+ assert(PyGILState_Check());
+
+ if (!_Py_tracemalloc_config.tracing) {
+ /* tracemalloc is not tracing: do nothing */
+ return -1;
+ }
+
+ uintptr_t ptr;
+ PyTypeObject *type = Py_TYPE(op);
+ if (PyType_IS_GC(type)) {
+ ptr = (uintptr_t)((char *)op - sizeof(PyGC_Head));
+ }
+ else {
+ ptr = (uintptr_t)op;
+ }
+
+ int res = -1;
+
+ TABLES_LOCK();
+ trace_t *trace = _Py_hashtable_get(tracemalloc_traces, TO_PTR(ptr));
+ if (trace != NULL) {
+ /* update the traceback of the memory block */
+ traceback_t *traceback = traceback_new();
+ if (traceback != NULL) {
+ trace->traceback = traceback;
+ res = 0;
+ }
+ }
+ /* else: cannot track the object, its memory block size is unknown */
+ TABLES_UNLOCK();
+
+ return res;
+}
+
+
PyObject*
_PyTraceMalloc_GetTraceback(unsigned int domain, uintptr_t ptr)
{
diff --git a/contrib/tools/python3/src/Modules/_weakref.c b/contrib/tools/python3/src/Modules/_weakref.c
index be3ac6dae1..e33cba2a3d 100644
--- a/contrib/tools/python3/src/Modules/_weakref.c
+++ b/contrib/tools/python3/src/Modules/_weakref.c
@@ -1,9 +1,9 @@
#include "Python.h"
-#include "pycore_object.h" // _PyObject_GET_WEAKREFS_LISTPTR
+#include "pycore_object.h" // _PyObject_GET_WEAKREFS_LISTPTR
#define GET_WEAKREFS_LISTPTR(o) \
- ((PyWeakReference **) _PyObject_GET_WEAKREFS_LISTPTR(o))
+ ((PyWeakReference **) _PyObject_GET_WEAKREFS_LISTPTR(o))
/*[clinic input]
module _weakref
@@ -137,48 +137,48 @@ weakref_functions[] = {
{NULL, NULL, 0, NULL}
};
-static int
-weakref_exec(PyObject *module)
-{
- Py_INCREF(&_PyWeakref_RefType);
- if (PyModule_AddObject(module, "ref", (PyObject *) &_PyWeakref_RefType) < 0) {
- Py_DECREF(&_PyWeakref_RefType);
- return -1;
- }
- Py_INCREF(&_PyWeakref_RefType);
- if (PyModule_AddObject(module, "ReferenceType",
- (PyObject *) &_PyWeakref_RefType) < 0) {
- Py_DECREF(&_PyWeakref_RefType);
- return -1;
- }
- Py_INCREF(&_PyWeakref_ProxyType);
- if (PyModule_AddObject(module, "ProxyType",
- (PyObject *) &_PyWeakref_ProxyType) < 0) {
- Py_DECREF(&_PyWeakref_ProxyType);
- return -1;
- }
- Py_INCREF(&_PyWeakref_CallableProxyType);
- if (PyModule_AddObject(module, "CallableProxyType",
- (PyObject *) &_PyWeakref_CallableProxyType) < 0) {
- Py_DECREF(&_PyWeakref_CallableProxyType);
- return -1;
- }
-
- return 0;
-}
-
-static struct PyModuleDef_Slot weakref_slots[] = {
- {Py_mod_exec, weakref_exec},
- {0, NULL}
-};
-
+static int
+weakref_exec(PyObject *module)
+{
+ Py_INCREF(&_PyWeakref_RefType);
+ if (PyModule_AddObject(module, "ref", (PyObject *) &_PyWeakref_RefType) < 0) {
+ Py_DECREF(&_PyWeakref_RefType);
+ return -1;
+ }
+ Py_INCREF(&_PyWeakref_RefType);
+ if (PyModule_AddObject(module, "ReferenceType",
+ (PyObject *) &_PyWeakref_RefType) < 0) {
+ Py_DECREF(&_PyWeakref_RefType);
+ return -1;
+ }
+ Py_INCREF(&_PyWeakref_ProxyType);
+ if (PyModule_AddObject(module, "ProxyType",
+ (PyObject *) &_PyWeakref_ProxyType) < 0) {
+ Py_DECREF(&_PyWeakref_ProxyType);
+ return -1;
+ }
+ Py_INCREF(&_PyWeakref_CallableProxyType);
+ if (PyModule_AddObject(module, "CallableProxyType",
+ (PyObject *) &_PyWeakref_CallableProxyType) < 0) {
+ Py_DECREF(&_PyWeakref_CallableProxyType);
+ return -1;
+ }
+
+ return 0;
+}
+
+static struct PyModuleDef_Slot weakref_slots[] = {
+ {Py_mod_exec, weakref_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef weakrefmodule = {
PyModuleDef_HEAD_INIT,
"_weakref",
"Weak-reference support module.",
- 0,
+ 0,
weakref_functions,
- weakref_slots,
+ weakref_slots,
NULL,
NULL,
NULL
@@ -187,5 +187,5 @@ static struct PyModuleDef weakrefmodule = {
PyMODINIT_FUNC
PyInit__weakref(void)
{
- return PyModuleDef_Init(&weakrefmodule);
+ return PyModuleDef_Init(&weakrefmodule);
}
diff --git a/contrib/tools/python3/src/Modules/_winapi.c b/contrib/tools/python3/src/Modules/_winapi.c
index 78114060ca..5b7f075722 100644
--- a/contrib/tools/python3/src/Modules/_winapi.c
+++ b/contrib/tools/python3/src/Modules/_winapi.c
@@ -32,10 +32,10 @@
*/
/* Licensed to PSF under a Contributor Agreement. */
-/* See https://www.python.org/2.4/license for licensing details. */
+/* See https://www.python.org/2.4/license for licensing details. */
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#define WINDOWS_LEAN_AND_MEAN
#include "windows.h"
@@ -160,12 +160,12 @@ def create_converter(type_, format_unit):
create_converter('HANDLE', '" F_HANDLE "')
create_converter('HMODULE', '" F_HANDLE "')
create_converter('LPSECURITY_ATTRIBUTES', '" F_POINTER "')
-create_converter('LPCVOID', '" F_POINTER "')
+create_converter('LPCVOID', '" F_POINTER "')
create_converter('BOOL', 'i') # F_BOOL used previously (always 'i')
create_converter('DWORD', 'k') # F_DWORD is always "k" (which is much shorter)
create_converter('LPCTSTR', 's')
-create_converter('LPCWSTR', 'u')
+create_converter('LPCWSTR', 'u')
create_converter('LPWSTR', 'u')
create_converter('UINT', 'I') # F_UINT used previously (always 'I')
@@ -188,17 +188,17 @@ class DWORD_return_converter(CReturnConverter):
self.err_occurred_if("_return_value == PY_DWORD_MAX", data)
data.return_conversion.append(
'return_value = Py_BuildValue("k", _return_value);\n')
-
-class LPVOID_return_converter(CReturnConverter):
- type = 'LPVOID'
-
- def render(self, function, data):
- self.declare(data)
- self.err_occurred_if("_return_value == NULL", data)
- data.return_conversion.append(
- 'return_value = HANDLE_TO_PYNUM(_return_value);\n')
+
+class LPVOID_return_converter(CReturnConverter):
+ type = 'LPVOID'
+
+ def render(self, function, data):
+ self.declare(data)
+ self.err_occurred_if("_return_value == NULL", data)
+ data.return_conversion.append(
+ 'return_value = HANDLE_TO_PYNUM(_return_value);\n')
[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=79464c61a31ae932]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=79464c61a31ae932]*/
#include "clinic/_winapi.c.h"
@@ -311,10 +311,10 @@ PyTypeObject WinApiOverlappedType = {
/* tp_basicsize */ sizeof(OverlappedObject),
/* tp_itemsize */ 0,
/* tp_dealloc */ (destructor) overlapped_dealloc,
- /* tp_vectorcall_offset */ 0,
+ /* tp_vectorcall_offset */ 0,
/* tp_getattr */ 0,
/* tp_setattr */ 0,
- /* tp_as_async */ 0,
+ /* tp_as_async */ 0,
/* tp_repr */ 0,
/* tp_as_number */ 0,
/* tp_as_sequence */ 0,
@@ -462,12 +462,12 @@ _winapi_CreateFile_impl(PyObject *module, LPCTSTR file_name,
{
HANDLE handle;
- if (PySys_Audit("_winapi.CreateFile", "uIIII",
- file_name, desired_access, share_mode,
- creation_disposition, flags_and_attributes) < 0) {
- return INVALID_HANDLE_VALUE;
- }
-
+ if (PySys_Audit("_winapi.CreateFile", "uIIII",
+ file_name, desired_access, share_mode,
+ creation_disposition, flags_and_attributes) < 0) {
+ return INVALID_HANDLE_VALUE;
+ }
+
Py_BEGIN_ALLOW_THREADS
handle = CreateFile(file_name, desired_access,
share_mode, security_attributes,
@@ -482,43 +482,43 @@ _winapi_CreateFile_impl(PyObject *module, LPCTSTR file_name,
}
/*[clinic input]
-_winapi.CreateFileMapping -> HANDLE
-
- file_handle: HANDLE
- security_attributes: LPSECURITY_ATTRIBUTES
- protect: DWORD
- max_size_high: DWORD
- max_size_low: DWORD
- name: LPCWSTR
- /
-[clinic start generated code]*/
-
-static HANDLE
-_winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle,
- LPSECURITY_ATTRIBUTES security_attributes,
- DWORD protect, DWORD max_size_high,
- DWORD max_size_low, LPCWSTR name)
-/*[clinic end generated code: output=6c0a4d5cf7f6fcc6 input=3dc5cf762a74dee8]*/
-{
- HANDLE handle;
-
- Py_BEGIN_ALLOW_THREADS
- handle = CreateFileMappingW(file_handle, security_attributes,
- protect, max_size_high, max_size_low,
- name);
- Py_END_ALLOW_THREADS
-
- if (handle == NULL) {
- PyObject *temp = PyUnicode_FromWideChar(name, -1);
- PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp);
- Py_XDECREF(temp);
- handle = INVALID_HANDLE_VALUE;
- }
-
- return handle;
-}
-
-/*[clinic input]
+_winapi.CreateFileMapping -> HANDLE
+
+ file_handle: HANDLE
+ security_attributes: LPSECURITY_ATTRIBUTES
+ protect: DWORD
+ max_size_high: DWORD
+ max_size_low: DWORD
+ name: LPCWSTR
+ /
+[clinic start generated code]*/
+
+static HANDLE
+_winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle,
+ LPSECURITY_ATTRIBUTES security_attributes,
+ DWORD protect, DWORD max_size_high,
+ DWORD max_size_low, LPCWSTR name)
+/*[clinic end generated code: output=6c0a4d5cf7f6fcc6 input=3dc5cf762a74dee8]*/
+{
+ HANDLE handle;
+
+ Py_BEGIN_ALLOW_THREADS
+ handle = CreateFileMappingW(file_handle, security_attributes,
+ protect, max_size_high, max_size_low,
+ name);
+ Py_END_ALLOW_THREADS
+
+ if (handle == NULL) {
+ PyObject *temp = PyUnicode_FromWideChar(name, -1);
+ PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp);
+ Py_XDECREF(temp);
+ handle = INVALID_HANDLE_VALUE;
+ }
+
+ return handle;
+}
+
+/*[clinic input]
_winapi.CreateJunction
src_path: LPWSTR
@@ -551,10 +551,10 @@ _winapi_CreateJunction_impl(PyObject *module, LPWSTR src_path,
if (wcsncmp(src_path, L"\\??\\", prefix_len) == 0)
return PyErr_SetFromWindowsErr(ERROR_INVALID_PARAMETER);
- if (PySys_Audit("_winapi.CreateJunction", "uu", src_path, dst_path) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("_winapi.CreateJunction", "uu", src_path, dst_path) < 0) {
+ return NULL;
+ }
+
/* Adjust privileges to allow rewriting directory entry as a
junction point. */
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &token))
@@ -604,7 +604,7 @@ _winapi_CreateJunction_impl(PyObject *module, LPWSTR src_path,
sizeof(rdb->MountPointReparseBuffer.PathBuffer) +
/* Two +1's for NUL terminators. */
(prefix_len + print_len + 1 + print_len + 1) * sizeof(WCHAR);
- rdb = (_Py_PREPARSE_DATA_BUFFER)PyMem_RawCalloc(1, rdb_size);
+ rdb = (_Py_PREPARSE_DATA_BUFFER)PyMem_RawCalloc(1, rdb_size);
if (rdb == NULL)
goto cleanup;
@@ -682,11 +682,11 @@ _winapi_CreateNamedPipe_impl(PyObject *module, LPCTSTR name, DWORD open_mode,
{
HANDLE handle;
- if (PySys_Audit("_winapi.CreateNamedPipe", "uII",
- name, open_mode, pipe_mode) < 0) {
- return INVALID_HANDLE_VALUE;
- }
-
+ if (PySys_Audit("_winapi.CreateNamedPipe", "uII",
+ name, open_mode, pipe_mode) < 0) {
+ return INVALID_HANDLE_VALUE;
+ }
+
Py_BEGIN_ALLOW_THREADS
handle = CreateNamedPipe(name, open_mode, pipe_mode,
max_instances, out_buffer_size,
@@ -721,10 +721,10 @@ _winapi_CreatePipe_impl(PyObject *module, PyObject *pipe_attrs, DWORD size)
HANDLE write_pipe;
BOOL result;
- if (PySys_Audit("_winapi.CreatePipe", NULL) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("_winapi.CreatePipe", NULL) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
result = CreatePipe(&read_pipe, &write_pipe, NULL, size);
Py_END_ALLOW_THREADS
@@ -773,12 +773,12 @@ gethandle(PyObject* obj, const char* name)
return ret;
}
-static wchar_t *
+static wchar_t *
getenvironment(PyObject* environment)
{
Py_ssize_t i, envsize, totalsize;
- wchar_t *buffer = NULL, *p, *end;
- PyObject *keys, *values;
+ wchar_t *buffer = NULL, *p, *end;
+ PyObject *keys, *values;
/* convert environment dictionary to windows environment string */
if (! PyMapping_Check(environment)) {
@@ -796,8 +796,8 @@ getenvironment(PyObject* environment)
goto error;
}
- envsize = PyList_GET_SIZE(keys);
- if (PyList_GET_SIZE(values) != envsize) {
+ envsize = PyList_GET_SIZE(keys);
+ if (PyList_GET_SIZE(values) != envsize) {
PyErr_SetString(PyExc_RuntimeError,
"environment changed size during iteration");
goto error;
@@ -805,9 +805,9 @@ getenvironment(PyObject* environment)
totalsize = 1; /* trailing null character */
for (i = 0; i < envsize; i++) {
- PyObject* key = PyList_GET_ITEM(keys, i);
- PyObject* value = PyList_GET_ITEM(values, i);
- Py_ssize_t size;
+ PyObject* key = PyList_GET_ITEM(keys, i);
+ PyObject* value = PyList_GET_ITEM(values, i);
+ Py_ssize_t size;
if (! PyUnicode_Check(key) || ! PyUnicode_Check(value)) {
PyErr_SetString(PyExc_TypeError,
@@ -828,25 +828,25 @@ getenvironment(PyObject* environment)
PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
goto error;
}
-
- size = PyUnicode_AsWideChar(key, NULL, 0);
- assert(size > 1);
- if (totalsize > PY_SSIZE_T_MAX - size) {
+
+ size = PyUnicode_AsWideChar(key, NULL, 0);
+ assert(size > 1);
+ if (totalsize > PY_SSIZE_T_MAX - size) {
PyErr_SetString(PyExc_OverflowError, "environment too long");
goto error;
}
- totalsize += size; /* including '=' */
-
- size = PyUnicode_AsWideChar(value, NULL, 0);
- assert(size > 0);
- if (totalsize > PY_SSIZE_T_MAX - size) {
+ totalsize += size; /* including '=' */
+
+ size = PyUnicode_AsWideChar(value, NULL, 0);
+ assert(size > 0);
+ if (totalsize > PY_SSIZE_T_MAX - size) {
PyErr_SetString(PyExc_OverflowError, "environment too long");
goto error;
}
- totalsize += size; /* including trailing '\0' */
+ totalsize += size; /* including trailing '\0' */
}
- buffer = PyMem_NEW(wchar_t, totalsize);
+ buffer = PyMem_NEW(wchar_t, totalsize);
if (! buffer) {
PyErr_NoMemory();
goto error;
@@ -855,25 +855,25 @@ getenvironment(PyObject* environment)
end = buffer + totalsize;
for (i = 0; i < envsize; i++) {
- PyObject* key = PyList_GET_ITEM(keys, i);
- PyObject* value = PyList_GET_ITEM(values, i);
- Py_ssize_t size = PyUnicode_AsWideChar(key, p, end - p);
- assert(1 <= size && size < end - p);
- p += size;
- *p++ = L'=';
- size = PyUnicode_AsWideChar(value, p, end - p);
- assert(0 <= size && size < end - p);
- p += size + 1;
- }
-
- /* add trailing null character */
- *p++ = L'\0';
+ PyObject* key = PyList_GET_ITEM(keys, i);
+ PyObject* value = PyList_GET_ITEM(values, i);
+ Py_ssize_t size = PyUnicode_AsWideChar(key, p, end - p);
+ assert(1 <= size && size < end - p);
+ p += size;
+ *p++ = L'=';
+ size = PyUnicode_AsWideChar(value, p, end - p);
+ assert(0 <= size && size < end - p);
+ p += size + 1;
+ }
+
+ /* add trailing null character */
+ *p++ = L'\0';
assert(p == end);
error:
Py_XDECREF(keys);
Py_XDECREF(values);
- return buffer;
+ return buffer;
}
static LPHANDLE
@@ -1072,23 +1072,23 @@ _winapi_CreateProcess_impl(PyObject *module,
BOOL result;
PROCESS_INFORMATION pi;
STARTUPINFOEXW si;
- wchar_t *wenvironment = NULL;
+ wchar_t *wenvironment = NULL;
wchar_t *command_line_copy = NULL;
AttributeList attribute_list = {0};
- if (PySys_Audit("_winapi.CreateProcess", "uuu", application_name,
- command_line, current_directory) < 0) {
- return NULL;
- }
-
- PyInterpreterState *interp = PyInterpreterState_Get();
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- if (config->_isolated_interpreter) {
- PyErr_SetString(PyExc_RuntimeError,
- "subprocess not supported for isolated subinterpreters");
- return NULL;
- }
-
+ if (PySys_Audit("_winapi.CreateProcess", "uuu", application_name,
+ command_line, current_directory) < 0) {
+ return NULL;
+ }
+
+ PyInterpreterState *interp = PyInterpreterState_Get();
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ if (config->_isolated_interpreter) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "subprocess not supported for isolated subinterpreters");
+ return NULL;
+ }
+
ZeroMemory(&si, sizeof(si));
si.StartupInfo.cb = sizeof(si);
@@ -1102,7 +1102,7 @@ _winapi_CreateProcess_impl(PyObject *module,
goto cleanup;
if (env_mapping != Py_None) {
- wenvironment = getenvironment(env_mapping);
+ wenvironment = getenvironment(env_mapping);
if (wenvironment == NULL) {
goto cleanup;
}
@@ -1119,8 +1119,8 @@ _winapi_CreateProcess_impl(PyObject *module,
}
}
else if (command_line != Py_None) {
- PyErr_Format(PyExc_TypeError,
- "CreateProcess() argument 2 must be str or None, not %s",
+ PyErr_Format(PyExc_TypeError,
+ "CreateProcess() argument 2 must be str or None, not %s",
Py_TYPE(command_line)->tp_name);
goto cleanup;
}
@@ -1153,7 +1153,7 @@ _winapi_CreateProcess_impl(PyObject *module,
cleanup:
PyMem_Free(command_line_copy);
- PyMem_Free(wenvironment);
+ PyMem_Free(wenvironment);
freeattributelist(&attribute_list);
return ret;
@@ -1304,10 +1304,10 @@ _winapi_GetModuleFileName_impl(PyObject *module, HMODULE module_handle)
BOOL result;
WCHAR filename[MAX_PATH];
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
result = GetModuleFileNameW(module_handle, filename, MAX_PATH);
filename[MAX_PATH-1] = '\0';
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (! result)
return PyErr_SetFromWindowsErr(GetLastError());
@@ -1365,66 +1365,66 @@ _winapi_GetVersion_impl(PyObject *module)
#pragma warning(pop)
/*[clinic input]
-_winapi.MapViewOfFile -> LPVOID
-
- file_map: HANDLE
- desired_access: DWORD
- file_offset_high: DWORD
- file_offset_low: DWORD
- number_bytes: size_t
- /
-[clinic start generated code]*/
-
-static LPVOID
-_winapi_MapViewOfFile_impl(PyObject *module, HANDLE file_map,
- DWORD desired_access, DWORD file_offset_high,
- DWORD file_offset_low, size_t number_bytes)
-/*[clinic end generated code: output=f23b1ee4823663e3 input=177471073be1a103]*/
-{
- LPVOID address;
-
- Py_BEGIN_ALLOW_THREADS
- address = MapViewOfFile(file_map, desired_access, file_offset_high,
- file_offset_low, number_bytes);
- Py_END_ALLOW_THREADS
-
- if (address == NULL)
- PyErr_SetFromWindowsErr(0);
-
- return address;
-}
-
-/*[clinic input]
-_winapi.OpenFileMapping -> HANDLE
-
- desired_access: DWORD
- inherit_handle: BOOL
- name: LPCWSTR
- /
-[clinic start generated code]*/
-
-static HANDLE
-_winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access,
- BOOL inherit_handle, LPCWSTR name)
-/*[clinic end generated code: output=08cc44def1cb11f1 input=131f2a405359de7f]*/
-{
- HANDLE handle;
-
- Py_BEGIN_ALLOW_THREADS
- handle = OpenFileMappingW(desired_access, inherit_handle, name);
- Py_END_ALLOW_THREADS
-
- if (handle == NULL) {
- PyObject *temp = PyUnicode_FromWideChar(name, -1);
- PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp);
- Py_XDECREF(temp);
- handle = INVALID_HANDLE_VALUE;
- }
-
- return handle;
-}
-
-/*[clinic input]
+_winapi.MapViewOfFile -> LPVOID
+
+ file_map: HANDLE
+ desired_access: DWORD
+ file_offset_high: DWORD
+ file_offset_low: DWORD
+ number_bytes: size_t
+ /
+[clinic start generated code]*/
+
+static LPVOID
+_winapi_MapViewOfFile_impl(PyObject *module, HANDLE file_map,
+ DWORD desired_access, DWORD file_offset_high,
+ DWORD file_offset_low, size_t number_bytes)
+/*[clinic end generated code: output=f23b1ee4823663e3 input=177471073be1a103]*/
+{
+ LPVOID address;
+
+ Py_BEGIN_ALLOW_THREADS
+ address = MapViewOfFile(file_map, desired_access, file_offset_high,
+ file_offset_low, number_bytes);
+ Py_END_ALLOW_THREADS
+
+ if (address == NULL)
+ PyErr_SetFromWindowsErr(0);
+
+ return address;
+}
+
+/*[clinic input]
+_winapi.OpenFileMapping -> HANDLE
+
+ desired_access: DWORD
+ inherit_handle: BOOL
+ name: LPCWSTR
+ /
+[clinic start generated code]*/
+
+static HANDLE
+_winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access,
+ BOOL inherit_handle, LPCWSTR name)
+/*[clinic end generated code: output=08cc44def1cb11f1 input=131f2a405359de7f]*/
+{
+ HANDLE handle;
+
+ Py_BEGIN_ALLOW_THREADS
+ handle = OpenFileMappingW(desired_access, inherit_handle, name);
+ Py_END_ALLOW_THREADS
+
+ if (handle == NULL) {
+ PyObject *temp = PyUnicode_FromWideChar(name, -1);
+ PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp);
+ Py_XDECREF(temp);
+ handle = INVALID_HANDLE_VALUE;
+ }
+
+ return handle;
+}
+
+/*[clinic input]
_winapi.OpenProcess -> HANDLE
desired_access: DWORD
@@ -1440,16 +1440,16 @@ _winapi_OpenProcess_impl(PyObject *module, DWORD desired_access,
{
HANDLE handle;
- if (PySys_Audit("_winapi.OpenProcess", "II",
- process_id, desired_access) < 0) {
- return INVALID_HANDLE_VALUE;
- }
-
- Py_BEGIN_ALLOW_THREADS
+ if (PySys_Audit("_winapi.OpenProcess", "II",
+ process_id, desired_access) < 0) {
+ return INVALID_HANDLE_VALUE;
+ }
+
+ Py_BEGIN_ALLOW_THREADS
handle = OpenProcess(desired_access, inherit_handle, process_id);
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (handle == NULL) {
- PyErr_SetFromWindowsErr(GetLastError());
+ PyErr_SetFromWindowsErr(GetLastError());
handle = INVALID_HANDLE_VALUE;
}
@@ -1584,7 +1584,7 @@ _winapi_SetNamedPipeHandleState_impl(PyObject *module, HANDLE named_pipe,
PyObject *oArgs[3] = {mode, max_collection_count, collect_data_timeout};
DWORD dwArgs[3], *pArgs[3] = {NULL, NULL, NULL};
int i;
- BOOL b;
+ BOOL b;
for (i = 0 ; i < 3 ; i++) {
if (oArgs[i] != Py_None) {
@@ -1595,11 +1595,11 @@ _winapi_SetNamedPipeHandleState_impl(PyObject *module, HANDLE named_pipe,
}
}
- Py_BEGIN_ALLOW_THREADS
- b = SetNamedPipeHandleState(named_pipe, pArgs[0], pArgs[1], pArgs[2]);
- Py_END_ALLOW_THREADS
-
- if (!b)
+ Py_BEGIN_ALLOW_THREADS
+ b = SetNamedPipeHandleState(named_pipe, pArgs[0], pArgs[1], pArgs[2]);
+ Py_END_ALLOW_THREADS
+
+ if (!b)
return PyErr_SetFromWindowsErr(0);
Py_RETURN_NONE;
@@ -1623,11 +1623,11 @@ _winapi_TerminateProcess_impl(PyObject *module, HANDLE handle,
{
BOOL result;
- if (PySys_Audit("_winapi.TerminateProcess", "nI",
- (Py_ssize_t)handle, exit_code) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("_winapi.TerminateProcess", "nI",
+ (Py_ssize_t)handle, exit_code) < 0) {
+ return NULL;
+ }
+
result = TerminateProcess(handle, exit_code);
if (! result)
@@ -1637,32 +1637,32 @@ _winapi_TerminateProcess_impl(PyObject *module, HANDLE handle,
}
/*[clinic input]
-_winapi.VirtualQuerySize -> size_t
-
- address: LPCVOID
- /
-[clinic start generated code]*/
-
-static size_t
-_winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address)
-/*[clinic end generated code: output=40c8e0ff5ec964df input=6b784a69755d0bb6]*/
-{
- SIZE_T size_of_buf;
- MEMORY_BASIC_INFORMATION mem_basic_info;
- SIZE_T region_size;
-
- Py_BEGIN_ALLOW_THREADS
- size_of_buf = VirtualQuery(address, &mem_basic_info, sizeof(mem_basic_info));
- Py_END_ALLOW_THREADS
-
- if (size_of_buf == 0)
- PyErr_SetFromWindowsErr(0);
-
- region_size = mem_basic_info.RegionSize;
- return region_size;
-}
-
-/*[clinic input]
+_winapi.VirtualQuerySize -> size_t
+
+ address: LPCVOID
+ /
+[clinic start generated code]*/
+
+static size_t
+_winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address)
+/*[clinic end generated code: output=40c8e0ff5ec964df input=6b784a69755d0bb6]*/
+{
+ SIZE_T size_of_buf;
+ MEMORY_BASIC_INFORMATION mem_basic_info;
+ SIZE_T region_size;
+
+ Py_BEGIN_ALLOW_THREADS
+ size_of_buf = VirtualQuery(address, &mem_basic_info, sizeof(mem_basic_info));
+ Py_END_ALLOW_THREADS
+
+ if (size_of_buf == 0)
+ PyErr_SetFromWindowsErr(0);
+
+ region_size = mem_basic_info.RegionSize;
+ return region_size;
+}
+
+/*[clinic input]
_winapi.WaitNamedPipe
name: LPCTSTR
@@ -1714,7 +1714,7 @@ _winapi_WaitForMultipleObjects_impl(PyObject *module, PyObject *handle_seq,
nhandles = PySequence_Length(handle_seq);
if (nhandles == -1)
return NULL;
- if (nhandles < 0 || nhandles > MAXIMUM_WAIT_OBJECTS - 1) {
+ if (nhandles < 0 || nhandles > MAXIMUM_WAIT_OBJECTS - 1) {
PyErr_Format(PyExc_ValueError,
"need at most %zd handles, got a sequence of length %zd",
MAXIMUM_WAIT_OBJECTS - 1, nhandles);
@@ -1891,7 +1891,7 @@ static PyMethodDef winapi_functions[] = {
_WINAPI_CLOSEHANDLE_METHODDEF
_WINAPI_CONNECTNAMEDPIPE_METHODDEF
_WINAPI_CREATEFILE_METHODDEF
- _WINAPI_CREATEFILEMAPPING_METHODDEF
+ _WINAPI_CREATEFILEMAPPING_METHODDEF
_WINAPI_CREATENAMEDPIPE_METHODDEF
_WINAPI_CREATEPIPE_METHODDEF
_WINAPI_CREATEPROCESS_METHODDEF
@@ -1904,14 +1904,14 @@ static PyMethodDef winapi_functions[] = {
_WINAPI_GETMODULEFILENAME_METHODDEF
_WINAPI_GETSTDHANDLE_METHODDEF
_WINAPI_GETVERSION_METHODDEF
- _WINAPI_MAPVIEWOFFILE_METHODDEF
- _WINAPI_OPENFILEMAPPING_METHODDEF
+ _WINAPI_MAPVIEWOFFILE_METHODDEF
+ _WINAPI_OPENFILEMAPPING_METHODDEF
_WINAPI_OPENPROCESS_METHODDEF
_WINAPI_PEEKNAMEDPIPE_METHODDEF
_WINAPI_READFILE_METHODDEF
_WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF
_WINAPI_TERMINATEPROCESS_METHODDEF
- _WINAPI_VIRTUALQUERYSIZE_METHODDEF
+ _WINAPI_VIRTUALQUERYSIZE_METHODDEF
_WINAPI_WAITNAMEDPIPE_METHODDEF
_WINAPI_WAITFORMULTIPLEOBJECTS_METHODDEF
_WINAPI_WAITFORSINGLEOBJECT_METHODDEF
@@ -1975,34 +1975,34 @@ PyInit__winapi(void)
WINAPI_CONSTANT(F_DWORD, FILE_FLAG_OVERLAPPED);
WINAPI_CONSTANT(F_DWORD, FILE_GENERIC_READ);
WINAPI_CONSTANT(F_DWORD, FILE_GENERIC_WRITE);
- WINAPI_CONSTANT(F_DWORD, FILE_MAP_ALL_ACCESS);
- WINAPI_CONSTANT(F_DWORD, FILE_MAP_COPY);
- WINAPI_CONSTANT(F_DWORD, FILE_MAP_EXECUTE);
- WINAPI_CONSTANT(F_DWORD, FILE_MAP_READ);
- WINAPI_CONSTANT(F_DWORD, FILE_MAP_WRITE);
+ WINAPI_CONSTANT(F_DWORD, FILE_MAP_ALL_ACCESS);
+ WINAPI_CONSTANT(F_DWORD, FILE_MAP_COPY);
+ WINAPI_CONSTANT(F_DWORD, FILE_MAP_EXECUTE);
+ WINAPI_CONSTANT(F_DWORD, FILE_MAP_READ);
+ WINAPI_CONSTANT(F_DWORD, FILE_MAP_WRITE);
WINAPI_CONSTANT(F_DWORD, GENERIC_READ);
WINAPI_CONSTANT(F_DWORD, GENERIC_WRITE);
WINAPI_CONSTANT(F_DWORD, INFINITE);
- WINAPI_CONSTANT(F_HANDLE, INVALID_HANDLE_VALUE);
- WINAPI_CONSTANT(F_DWORD, MEM_COMMIT);
- WINAPI_CONSTANT(F_DWORD, MEM_FREE);
- WINAPI_CONSTANT(F_DWORD, MEM_IMAGE);
- WINAPI_CONSTANT(F_DWORD, MEM_MAPPED);
- WINAPI_CONSTANT(F_DWORD, MEM_PRIVATE);
- WINAPI_CONSTANT(F_DWORD, MEM_RESERVE);
+ WINAPI_CONSTANT(F_HANDLE, INVALID_HANDLE_VALUE);
+ WINAPI_CONSTANT(F_DWORD, MEM_COMMIT);
+ WINAPI_CONSTANT(F_DWORD, MEM_FREE);
+ WINAPI_CONSTANT(F_DWORD, MEM_IMAGE);
+ WINAPI_CONSTANT(F_DWORD, MEM_MAPPED);
+ WINAPI_CONSTANT(F_DWORD, MEM_PRIVATE);
+ WINAPI_CONSTANT(F_DWORD, MEM_RESERVE);
WINAPI_CONSTANT(F_DWORD, NMPWAIT_WAIT_FOREVER);
WINAPI_CONSTANT(F_DWORD, OPEN_EXISTING);
- WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE);
- WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE_READ);
- WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE_READWRITE);
- WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE_WRITECOPY);
- WINAPI_CONSTANT(F_DWORD, PAGE_GUARD);
- WINAPI_CONSTANT(F_DWORD, PAGE_NOACCESS);
- WINAPI_CONSTANT(F_DWORD, PAGE_NOCACHE);
- WINAPI_CONSTANT(F_DWORD, PAGE_READONLY);
- WINAPI_CONSTANT(F_DWORD, PAGE_READWRITE);
- WINAPI_CONSTANT(F_DWORD, PAGE_WRITECOMBINE);
- WINAPI_CONSTANT(F_DWORD, PAGE_WRITECOPY);
+ WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE);
+ WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE_READ);
+ WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE_READWRITE);
+ WINAPI_CONSTANT(F_DWORD, PAGE_EXECUTE_WRITECOPY);
+ WINAPI_CONSTANT(F_DWORD, PAGE_GUARD);
+ WINAPI_CONSTANT(F_DWORD, PAGE_NOACCESS);
+ WINAPI_CONSTANT(F_DWORD, PAGE_NOCACHE);
+ WINAPI_CONSTANT(F_DWORD, PAGE_READONLY);
+ WINAPI_CONSTANT(F_DWORD, PAGE_READWRITE);
+ WINAPI_CONSTANT(F_DWORD, PAGE_WRITECOMBINE);
+ WINAPI_CONSTANT(F_DWORD, PAGE_WRITECOPY);
WINAPI_CONSTANT(F_DWORD, PIPE_ACCESS_DUPLEX);
WINAPI_CONSTANT(F_DWORD, PIPE_ACCESS_INBOUND);
WINAPI_CONSTANT(F_DWORD, PIPE_READMODE_MESSAGE);
@@ -2010,14 +2010,14 @@ PyInit__winapi(void)
WINAPI_CONSTANT(F_DWORD, PIPE_UNLIMITED_INSTANCES);
WINAPI_CONSTANT(F_DWORD, PIPE_WAIT);
WINAPI_CONSTANT(F_DWORD, PROCESS_ALL_ACCESS);
- WINAPI_CONSTANT(F_DWORD, SYNCHRONIZE);
+ WINAPI_CONSTANT(F_DWORD, SYNCHRONIZE);
WINAPI_CONSTANT(F_DWORD, PROCESS_DUP_HANDLE);
- WINAPI_CONSTANT(F_DWORD, SEC_COMMIT);
- WINAPI_CONSTANT(F_DWORD, SEC_IMAGE);
- WINAPI_CONSTANT(F_DWORD, SEC_LARGE_PAGES);
- WINAPI_CONSTANT(F_DWORD, SEC_NOCACHE);
- WINAPI_CONSTANT(F_DWORD, SEC_RESERVE);
- WINAPI_CONSTANT(F_DWORD, SEC_WRITECOMBINE);
+ WINAPI_CONSTANT(F_DWORD, SEC_COMMIT);
+ WINAPI_CONSTANT(F_DWORD, SEC_IMAGE);
+ WINAPI_CONSTANT(F_DWORD, SEC_LARGE_PAGES);
+ WINAPI_CONSTANT(F_DWORD, SEC_NOCACHE);
+ WINAPI_CONSTANT(F_DWORD, SEC_RESERVE);
+ WINAPI_CONSTANT(F_DWORD, SEC_WRITECOMBINE);
WINAPI_CONSTANT(F_DWORD, STARTF_USESHOWWINDOW);
WINAPI_CONSTANT(F_DWORD, STARTF_USESTDHANDLES);
WINAPI_CONSTANT(F_DWORD, STD_INPUT_HANDLE);
diff --git a/contrib/tools/python3/src/Modules/_xxsubinterpretersmodule.c b/contrib/tools/python3/src/Modules/_xxsubinterpretersmodule.c
index f18a63d47e..314059d108 100644
--- a/contrib/tools/python3/src/Modules/_xxsubinterpretersmodule.c
+++ b/contrib/tools/python3/src/Modules/_xxsubinterpretersmodule.c
@@ -1,2656 +1,2656 @@
-
-/* interpreters module */
-/* low-level access to interpreter primitives */
-
-#include "Python.h"
-#include "frameobject.h"
-#include "interpreteridobject.h"
-
-
-static char *
-_copy_raw_string(PyObject *strobj)
-{
- const char *str = PyUnicode_AsUTF8(strobj);
- if (str == NULL) {
- return NULL;
- }
- char *copied = PyMem_Malloc(strlen(str)+1);
- if (copied == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- strcpy(copied, str);
- return copied;
-}
-
-static PyInterpreterState *
-_get_current(void)
-{
- // PyInterpreterState_Get() aborts if lookup fails, so don't need
- // to check the result for NULL.
- return PyInterpreterState_Get();
-}
-
-
-/* data-sharing-specific code ***********************************************/
-
-struct _sharednsitem {
- char *name;
- _PyCrossInterpreterData data;
-};
-
-static void _sharednsitem_clear(struct _sharednsitem *); // forward
-
-static int
-_sharednsitem_init(struct _sharednsitem *item, PyObject *key, PyObject *value)
-{
- item->name = _copy_raw_string(key);
- if (item->name == NULL) {
- return -1;
- }
- if (_PyObject_GetCrossInterpreterData(value, &item->data) != 0) {
- _sharednsitem_clear(item);
- return -1;
- }
- return 0;
-}
-
-static void
-_sharednsitem_clear(struct _sharednsitem *item)
-{
- if (item->name != NULL) {
- PyMem_Free(item->name);
- item->name = NULL;
- }
- _PyCrossInterpreterData_Release(&item->data);
-}
-
-static int
-_sharednsitem_apply(struct _sharednsitem *item, PyObject *ns)
-{
- PyObject *name = PyUnicode_FromString(item->name);
- if (name == NULL) {
- return -1;
- }
- PyObject *value = _PyCrossInterpreterData_NewObject(&item->data);
- if (value == NULL) {
- Py_DECREF(name);
- return -1;
- }
- int res = PyDict_SetItem(ns, name, value);
- Py_DECREF(name);
- Py_DECREF(value);
- return res;
-}
-
-typedef struct _sharedns {
- Py_ssize_t len;
- struct _sharednsitem* items;
-} _sharedns;
-
-static _sharedns *
-_sharedns_new(Py_ssize_t len)
-{
- _sharedns *shared = PyMem_NEW(_sharedns, 1);
- if (shared == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- shared->len = len;
- shared->items = PyMem_NEW(struct _sharednsitem, len);
- if (shared->items == NULL) {
- PyErr_NoMemory();
- PyMem_Free(shared);
- return NULL;
- }
- return shared;
-}
-
-static void
-_sharedns_free(_sharedns *shared)
-{
- for (Py_ssize_t i=0; i < shared->len; i++) {
- _sharednsitem_clear(&shared->items[i]);
- }
- PyMem_Free(shared->items);
- PyMem_Free(shared);
-}
-
-static _sharedns *
-_get_shared_ns(PyObject *shareable)
-{
- if (shareable == NULL || shareable == Py_None) {
- return NULL;
- }
- Py_ssize_t len = PyDict_Size(shareable);
- if (len == 0) {
- return NULL;
- }
-
- _sharedns *shared = _sharedns_new(len);
- if (shared == NULL) {
- return NULL;
- }
- Py_ssize_t pos = 0;
- for (Py_ssize_t i=0; i < len; i++) {
- PyObject *key, *value;
- if (PyDict_Next(shareable, &pos, &key, &value) == 0) {
- break;
- }
- if (_sharednsitem_init(&shared->items[i], key, value) != 0) {
- break;
- }
- }
- if (PyErr_Occurred()) {
- _sharedns_free(shared);
- return NULL;
- }
- return shared;
-}
-
-static int
-_sharedns_apply(_sharedns *shared, PyObject *ns)
-{
- for (Py_ssize_t i=0; i < shared->len; i++) {
- if (_sharednsitem_apply(&shared->items[i], ns) != 0) {
- return -1;
- }
- }
- return 0;
-}
-
-// Ultimately we'd like to preserve enough information about the
-// exception and traceback that we could re-constitute (or at least
-// simulate, a la traceback.TracebackException), and even chain, a copy
-// of the exception in the calling interpreter.
-
-typedef struct _sharedexception {
- char *name;
- char *msg;
-} _sharedexception;
-
-static _sharedexception *
-_sharedexception_new(void)
-{
- _sharedexception *err = PyMem_NEW(_sharedexception, 1);
- if (err == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- err->name = NULL;
- err->msg = NULL;
- return err;
-}
-
-static void
-_sharedexception_clear(_sharedexception *exc)
-{
- if (exc->name != NULL) {
- PyMem_Free(exc->name);
- }
- if (exc->msg != NULL) {
- PyMem_Free(exc->msg);
- }
-}
-
-static void
-_sharedexception_free(_sharedexception *exc)
-{
- _sharedexception_clear(exc);
- PyMem_Free(exc);
-}
-
-static _sharedexception *
-_sharedexception_bind(PyObject *exctype, PyObject *exc, PyObject *tb)
-{
- assert(exctype != NULL);
- char *failure = NULL;
-
- _sharedexception *err = _sharedexception_new();
- if (err == NULL) {
- goto finally;
- }
-
- PyObject *name = PyUnicode_FromFormat("%S", exctype);
- if (name == NULL) {
- failure = "unable to format exception type name";
- goto finally;
- }
- err->name = _copy_raw_string(name);
- Py_DECREF(name);
- if (err->name == NULL) {
- if (PyErr_ExceptionMatches(PyExc_MemoryError)) {
- failure = "out of memory copying exception type name";
- } else {
- failure = "unable to encode and copy exception type name";
- }
- goto finally;
- }
-
- if (exc != NULL) {
- PyObject *msg = PyUnicode_FromFormat("%S", exc);
- if (msg == NULL) {
- failure = "unable to format exception message";
- goto finally;
- }
- err->msg = _copy_raw_string(msg);
- Py_DECREF(msg);
- if (err->msg == NULL) {
- if (PyErr_ExceptionMatches(PyExc_MemoryError)) {
- failure = "out of memory copying exception message";
- } else {
- failure = "unable to encode and copy exception message";
- }
- goto finally;
- }
- }
-
-finally:
- if (failure != NULL) {
- PyErr_Clear();
- if (err->name != NULL) {
- PyMem_Free(err->name);
- err->name = NULL;
- }
- err->msg = failure;
- }
- return err;
-}
-
-static void
-_sharedexception_apply(_sharedexception *exc, PyObject *wrapperclass)
-{
- if (exc->name != NULL) {
- if (exc->msg != NULL) {
- PyErr_Format(wrapperclass, "%s: %s", exc->name, exc->msg);
- }
- else {
- PyErr_SetString(wrapperclass, exc->name);
- }
- }
- else if (exc->msg != NULL) {
- PyErr_SetString(wrapperclass, exc->msg);
- }
- else {
- PyErr_SetNone(wrapperclass);
- }
-}
-
-
-/* channel-specific code ****************************************************/
-
-#define CHANNEL_SEND 1
-#define CHANNEL_BOTH 0
-#define CHANNEL_RECV -1
-
-static PyObject *ChannelError;
-static PyObject *ChannelNotFoundError;
-static PyObject *ChannelClosedError;
-static PyObject *ChannelEmptyError;
-static PyObject *ChannelNotEmptyError;
-
-static int
-channel_exceptions_init(PyObject *ns)
-{
- // XXX Move the exceptions into per-module memory?
-
- // A channel-related operation failed.
- ChannelError = PyErr_NewException("_xxsubinterpreters.ChannelError",
- PyExc_RuntimeError, NULL);
- if (ChannelError == NULL) {
- return -1;
- }
- if (PyDict_SetItemString(ns, "ChannelError", ChannelError) != 0) {
- return -1;
- }
-
- // An operation tried to use a channel that doesn't exist.
- ChannelNotFoundError = PyErr_NewException(
- "_xxsubinterpreters.ChannelNotFoundError", ChannelError, NULL);
- if (ChannelNotFoundError == NULL) {
- return -1;
- }
- if (PyDict_SetItemString(ns, "ChannelNotFoundError", ChannelNotFoundError) != 0) {
- return -1;
- }
-
- // An operation tried to use a closed channel.
- ChannelClosedError = PyErr_NewException(
- "_xxsubinterpreters.ChannelClosedError", ChannelError, NULL);
- if (ChannelClosedError == NULL) {
- return -1;
- }
- if (PyDict_SetItemString(ns, "ChannelClosedError", ChannelClosedError) != 0) {
- return -1;
- }
-
- // An operation tried to pop from an empty channel.
- ChannelEmptyError = PyErr_NewException(
- "_xxsubinterpreters.ChannelEmptyError", ChannelError, NULL);
- if (ChannelEmptyError == NULL) {
- return -1;
- }
- if (PyDict_SetItemString(ns, "ChannelEmptyError", ChannelEmptyError) != 0) {
- return -1;
- }
-
- // An operation tried to close a non-empty channel.
- ChannelNotEmptyError = PyErr_NewException(
- "_xxsubinterpreters.ChannelNotEmptyError", ChannelError, NULL);
- if (ChannelNotEmptyError == NULL) {
- return -1;
- }
- if (PyDict_SetItemString(ns, "ChannelNotEmptyError", ChannelNotEmptyError) != 0) {
- return -1;
- }
-
- return 0;
-}
-
-/* the channel queue */
-
-struct _channelitem;
-
-typedef struct _channelitem {
- _PyCrossInterpreterData *data;
- struct _channelitem *next;
-} _channelitem;
-
-static _channelitem *
-_channelitem_new(void)
-{
- _channelitem *item = PyMem_NEW(_channelitem, 1);
- if (item == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- item->data = NULL;
- item->next = NULL;
- return item;
-}
-
-static void
-_channelitem_clear(_channelitem *item)
-{
- if (item->data != NULL) {
- _PyCrossInterpreterData_Release(item->data);
- PyMem_Free(item->data);
- item->data = NULL;
- }
- item->next = NULL;
-}
-
-static void
-_channelitem_free(_channelitem *item)
-{
- _channelitem_clear(item);
- PyMem_Free(item);
-}
-
-static void
-_channelitem_free_all(_channelitem *item)
-{
- while (item != NULL) {
- _channelitem *last = item;
- item = item->next;
- _channelitem_free(last);
- }
-}
-
-static _PyCrossInterpreterData *
-_channelitem_popped(_channelitem *item)
-{
- _PyCrossInterpreterData *data = item->data;
- item->data = NULL;
- _channelitem_free(item);
- return data;
-}
-
-typedef struct _channelqueue {
- int64_t count;
- _channelitem *first;
- _channelitem *last;
-} _channelqueue;
-
-static _channelqueue *
-_channelqueue_new(void)
-{
- _channelqueue *queue = PyMem_NEW(_channelqueue, 1);
- if (queue == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- queue->count = 0;
- queue->first = NULL;
- queue->last = NULL;
- return queue;
-}
-
-static void
-_channelqueue_clear(_channelqueue *queue)
-{
- _channelitem_free_all(queue->first);
- queue->count = 0;
- queue->first = NULL;
- queue->last = NULL;
-}
-
-static void
-_channelqueue_free(_channelqueue *queue)
-{
- _channelqueue_clear(queue);
- PyMem_Free(queue);
-}
-
-static int
-_channelqueue_put(_channelqueue *queue, _PyCrossInterpreterData *data)
-{
- _channelitem *item = _channelitem_new();
- if (item == NULL) {
- return -1;
- }
- item->data = data;
-
- queue->count += 1;
- if (queue->first == NULL) {
- queue->first = item;
- }
- else {
- queue->last->next = item;
- }
- queue->last = item;
- return 0;
-}
-
-static _PyCrossInterpreterData *
-_channelqueue_get(_channelqueue *queue)
-{
- _channelitem *item = queue->first;
- if (item == NULL) {
- return NULL;
- }
- queue->first = item->next;
- if (queue->last == item) {
- queue->last = NULL;
- }
- queue->count -= 1;
-
- return _channelitem_popped(item);
-}
-
-/* channel-interpreter associations */
-
-struct _channelend;
-
-typedef struct _channelend {
- struct _channelend *next;
- int64_t interp;
- int open;
-} _channelend;
-
-static _channelend *
-_channelend_new(int64_t interp)
-{
- _channelend *end = PyMem_NEW(_channelend, 1);
- if (end == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- end->next = NULL;
- end->interp = interp;
- end->open = 1;
- return end;
-}
-
-static void
-_channelend_free(_channelend *end)
-{
- PyMem_Free(end);
-}
-
-static void
-_channelend_free_all(_channelend *end)
-{
- while (end != NULL) {
- _channelend *last = end;
- end = end->next;
- _channelend_free(last);
- }
-}
-
-static _channelend *
-_channelend_find(_channelend *first, int64_t interp, _channelend **pprev)
-{
- _channelend *prev = NULL;
- _channelend *end = first;
- while (end != NULL) {
- if (end->interp == interp) {
- break;
- }
- prev = end;
- end = end->next;
- }
- if (pprev != NULL) {
- *pprev = prev;
- }
- return end;
-}
-
-typedef struct _channelassociations {
- // Note that the list entries are never removed for interpreter
- // for which the channel is closed. This should not be a problem in
- // practice. Also, a channel isn't automatically closed when an
- // interpreter is destroyed.
- int64_t numsendopen;
- int64_t numrecvopen;
- _channelend *send;
- _channelend *recv;
-} _channelends;
-
-static _channelends *
-_channelends_new(void)
-{
- _channelends *ends = PyMem_NEW(_channelends, 1);
- if (ends== NULL) {
- return NULL;
- }
- ends->numsendopen = 0;
- ends->numrecvopen = 0;
- ends->send = NULL;
- ends->recv = NULL;
- return ends;
-}
-
-static void
-_channelends_clear(_channelends *ends)
-{
- _channelend_free_all(ends->send);
- ends->send = NULL;
- ends->numsendopen = 0;
-
- _channelend_free_all(ends->recv);
- ends->recv = NULL;
- ends->numrecvopen = 0;
-}
-
-static void
-_channelends_free(_channelends *ends)
-{
- _channelends_clear(ends);
- PyMem_Free(ends);
-}
-
-static _channelend *
-_channelends_add(_channelends *ends, _channelend *prev, int64_t interp,
- int send)
-{
- _channelend *end = _channelend_new(interp);
- if (end == NULL) {
- return NULL;
- }
-
- if (prev == NULL) {
- if (send) {
- ends->send = end;
- }
- else {
- ends->recv = end;
- }
- }
- else {
- prev->next = end;
- }
- if (send) {
- ends->numsendopen += 1;
- }
- else {
- ends->numrecvopen += 1;
- }
- return end;
-}
-
-static int
-_channelends_associate(_channelends *ends, int64_t interp, int send)
-{
- _channelend *prev;
- _channelend *end = _channelend_find(send ? ends->send : ends->recv,
- interp, &prev);
- if (end != NULL) {
- if (!end->open) {
- PyErr_SetString(ChannelClosedError, "channel already closed");
- return -1;
- }
- // already associated
- return 0;
- }
- if (_channelends_add(ends, prev, interp, send) == NULL) {
- return -1;
- }
- return 0;
-}
-
-static int
-_channelends_is_open(_channelends *ends)
-{
- if (ends->numsendopen != 0 || ends->numrecvopen != 0) {
- return 1;
- }
- if (ends->send == NULL && ends->recv == NULL) {
- return 1;
- }
- return 0;
-}
-
-static void
-_channelends_close_end(_channelends *ends, _channelend *end, int send)
-{
- end->open = 0;
- if (send) {
- ends->numsendopen -= 1;
- }
- else {
- ends->numrecvopen -= 1;
- }
-}
-
-static int
-_channelends_close_interpreter(_channelends *ends, int64_t interp, int which)
-{
- _channelend *prev;
- _channelend *end;
- if (which >= 0) { // send/both
- end = _channelend_find(ends->send, interp, &prev);
- if (end == NULL) {
- // never associated so add it
- end = _channelends_add(ends, prev, interp, 1);
- if (end == NULL) {
- return -1;
- }
- }
- _channelends_close_end(ends, end, 1);
- }
- if (which <= 0) { // recv/both
- end = _channelend_find(ends->recv, interp, &prev);
- if (end == NULL) {
- // never associated so add it
- end = _channelends_add(ends, prev, interp, 0);
- if (end == NULL) {
- return -1;
- }
- }
- _channelends_close_end(ends, end, 0);
- }
- return 0;
-}
-
-static void
-_channelends_close_all(_channelends *ends, int which, int force)
-{
- // XXX Handle the ends.
- // XXX Handle force is True.
-
- // Ensure all the "send"-associated interpreters are closed.
- _channelend *end;
- for (end = ends->send; end != NULL; end = end->next) {
- _channelends_close_end(ends, end, 1);
- }
-
- // Ensure all the "recv"-associated interpreters are closed.
- for (end = ends->recv; end != NULL; end = end->next) {
- _channelends_close_end(ends, end, 0);
- }
-}
-
-/* channels */
-
-struct _channel;
-struct _channel_closing;
-static void _channel_clear_closing(struct _channel *);
-static void _channel_finish_closing(struct _channel *);
-
-typedef struct _channel {
- PyThread_type_lock mutex;
- _channelqueue *queue;
- _channelends *ends;
- int open;
- struct _channel_closing *closing;
-} _PyChannelState;
-
-static _PyChannelState *
-_channel_new(void)
-{
- _PyChannelState *chan = PyMem_NEW(_PyChannelState, 1);
- if (chan == NULL) {
- return NULL;
- }
- chan->mutex = PyThread_allocate_lock();
- if (chan->mutex == NULL) {
- PyMem_Free(chan);
- PyErr_SetString(ChannelError,
- "can't initialize mutex for new channel");
- return NULL;
- }
- chan->queue = _channelqueue_new();
- if (chan->queue == NULL) {
- PyMem_Free(chan);
- return NULL;
- }
- chan->ends = _channelends_new();
- if (chan->ends == NULL) {
- _channelqueue_free(chan->queue);
- PyMem_Free(chan);
- return NULL;
- }
- chan->open = 1;
- chan->closing = NULL;
- return chan;
-}
-
-static void
-_channel_free(_PyChannelState *chan)
-{
- _channel_clear_closing(chan);
- PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
- _channelqueue_free(chan->queue);
- _channelends_free(chan->ends);
- PyThread_release_lock(chan->mutex);
-
- PyThread_free_lock(chan->mutex);
- PyMem_Free(chan);
-}
-
-static int
-_channel_add(_PyChannelState *chan, int64_t interp,
- _PyCrossInterpreterData *data)
-{
- int res = -1;
- PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
-
- if (!chan->open) {
- PyErr_SetString(ChannelClosedError, "channel closed");
- goto done;
- }
- if (_channelends_associate(chan->ends, interp, 1) != 0) {
- goto done;
- }
-
- if (_channelqueue_put(chan->queue, data) != 0) {
- goto done;
- }
-
- res = 0;
-done:
- PyThread_release_lock(chan->mutex);
- return res;
-}
-
-static _PyCrossInterpreterData *
-_channel_next(_PyChannelState *chan, int64_t interp)
-{
- _PyCrossInterpreterData *data = NULL;
- PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
-
- if (!chan->open) {
- PyErr_SetString(ChannelClosedError, "channel closed");
- goto done;
- }
- if (_channelends_associate(chan->ends, interp, 0) != 0) {
- goto done;
- }
-
- data = _channelqueue_get(chan->queue);
- if (data == NULL && !PyErr_Occurred() && chan->closing != NULL) {
- chan->open = 0;
- }
-
-done:
- PyThread_release_lock(chan->mutex);
- if (chan->queue->count == 0) {
- _channel_finish_closing(chan);
- }
- return data;
-}
-
-static int
-_channel_close_interpreter(_PyChannelState *chan, int64_t interp, int end)
-{
- PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
-
- int res = -1;
- if (!chan->open) {
- PyErr_SetString(ChannelClosedError, "channel already closed");
- goto done;
- }
-
- if (_channelends_close_interpreter(chan->ends, interp, end) != 0) {
- goto done;
- }
- chan->open = _channelends_is_open(chan->ends);
-
- res = 0;
-done:
- PyThread_release_lock(chan->mutex);
- return res;
-}
-
-static int
-_channel_close_all(_PyChannelState *chan, int end, int force)
-{
- int res = -1;
- PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
-
- if (!chan->open) {
- PyErr_SetString(ChannelClosedError, "channel already closed");
- goto done;
- }
-
- if (!force && chan->queue->count > 0) {
- PyErr_SetString(ChannelNotEmptyError,
- "may not be closed if not empty (try force=True)");
- goto done;
- }
-
- chan->open = 0;
-
- // We *could* also just leave these in place, since we've marked
- // the channel as closed already.
- _channelends_close_all(chan->ends, end, force);
-
- res = 0;
-done:
- PyThread_release_lock(chan->mutex);
- return res;
-}
-
-/* the set of channels */
-
-struct _channelref;
-
-typedef struct _channelref {
- int64_t id;
- _PyChannelState *chan;
- struct _channelref *next;
- Py_ssize_t objcount;
-} _channelref;
-
-static _channelref *
-_channelref_new(int64_t id, _PyChannelState *chan)
-{
- _channelref *ref = PyMem_NEW(_channelref, 1);
- if (ref == NULL) {
- return NULL;
- }
- ref->id = id;
- ref->chan = chan;
- ref->next = NULL;
- ref->objcount = 0;
- return ref;
-}
-
-//static void
-//_channelref_clear(_channelref *ref)
-//{
-// ref->id = -1;
-// ref->chan = NULL;
-// ref->next = NULL;
-// ref->objcount = 0;
-//}
-
-static void
-_channelref_free(_channelref *ref)
-{
- if (ref->chan != NULL) {
- _channel_clear_closing(ref->chan);
- }
- //_channelref_clear(ref);
- PyMem_Free(ref);
-}
-
-static _channelref *
-_channelref_find(_channelref *first, int64_t id, _channelref **pprev)
-{
- _channelref *prev = NULL;
- _channelref *ref = first;
- while (ref != NULL) {
- if (ref->id == id) {
- break;
- }
- prev = ref;
- ref = ref->next;
- }
- if (pprev != NULL) {
- *pprev = prev;
- }
- return ref;
-}
-
-typedef struct _channels {
- PyThread_type_lock mutex;
- _channelref *head;
- int64_t numopen;
- int64_t next_id;
-} _channels;
-
-static int
-_channels_init(_channels *channels)
-{
- if (channels->mutex == NULL) {
- channels->mutex = PyThread_allocate_lock();
- if (channels->mutex == NULL) {
- PyErr_SetString(ChannelError,
- "can't initialize mutex for channel management");
- return -1;
- }
- }
- channels->head = NULL;
- channels->numopen = 0;
- channels->next_id = 0;
- return 0;
-}
-
-static int64_t
-_channels_next_id(_channels *channels) // needs lock
-{
- int64_t id = channels->next_id;
- if (id < 0) {
- /* overflow */
- PyErr_SetString(ChannelError,
- "failed to get a channel ID");
- return -1;
- }
- channels->next_id += 1;
- return id;
-}
-
-static _PyChannelState *
-_channels_lookup(_channels *channels, int64_t id, PyThread_type_lock *pmutex)
-{
- _PyChannelState *chan = NULL;
- PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
- if (pmutex != NULL) {
- *pmutex = NULL;
- }
-
- _channelref *ref = _channelref_find(channels->head, id, NULL);
- if (ref == NULL) {
- PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", id);
- goto done;
- }
- if (ref->chan == NULL || !ref->chan->open) {
- PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", id);
- goto done;
- }
-
- if (pmutex != NULL) {
- // The mutex will be closed by the caller.
- *pmutex = channels->mutex;
- }
-
- chan = ref->chan;
-done:
- if (pmutex == NULL || *pmutex == NULL) {
- PyThread_release_lock(channels->mutex);
- }
- return chan;
-}
-
-static int64_t
-_channels_add(_channels *channels, _PyChannelState *chan)
-{
- int64_t cid = -1;
- PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
-
- // Create a new ref.
- int64_t id = _channels_next_id(channels);
- if (id < 0) {
- goto done;
- }
- _channelref *ref = _channelref_new(id, chan);
- if (ref == NULL) {
- goto done;
- }
-
- // Add it to the list.
- // We assume that the channel is a new one (not already in the list).
- ref->next = channels->head;
- channels->head = ref;
- channels->numopen += 1;
-
- cid = id;
-done:
- PyThread_release_lock(channels->mutex);
- return cid;
-}
-
-/* forward */
-static int _channel_set_closing(struct _channelref *, PyThread_type_lock);
-
-static int
-_channels_close(_channels *channels, int64_t cid, _PyChannelState **pchan,
- int end, int force)
-{
- int res = -1;
- PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
- if (pchan != NULL) {
- *pchan = NULL;
- }
-
- _channelref *ref = _channelref_find(channels->head, cid, NULL);
- if (ref == NULL) {
- PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", cid);
- goto done;
- }
-
- if (ref->chan == NULL) {
- PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", cid);
- goto done;
- }
- else if (!force && end == CHANNEL_SEND && ref->chan->closing != NULL) {
- PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", cid);
- goto done;
- }
- else {
- if (_channel_close_all(ref->chan, end, force) != 0) {
- if (end == CHANNEL_SEND &&
- PyErr_ExceptionMatches(ChannelNotEmptyError)) {
- if (ref->chan->closing != NULL) {
- PyErr_Format(ChannelClosedError,
- "channel %" PRId64 " closed", cid);
- goto done;
- }
- // Mark the channel as closing and return. The channel
- // will be cleaned up in _channel_next().
- PyErr_Clear();
- if (_channel_set_closing(ref, channels->mutex) != 0) {
- goto done;
- }
- if (pchan != NULL) {
- *pchan = ref->chan;
- }
- res = 0;
- }
- goto done;
- }
- if (pchan != NULL) {
- *pchan = ref->chan;
- }
- else {
- _channel_free(ref->chan);
- }
- ref->chan = NULL;
- }
-
- res = 0;
-done:
- PyThread_release_lock(channels->mutex);
- return res;
-}
-
-static void
-_channels_remove_ref(_channels *channels, _channelref *ref, _channelref *prev,
- _PyChannelState **pchan)
-{
- if (ref == channels->head) {
- channels->head = ref->next;
- }
- else {
- prev->next = ref->next;
- }
- channels->numopen -= 1;
-
- if (pchan != NULL) {
- *pchan = ref->chan;
- }
- _channelref_free(ref);
-}
-
-static int
-_channels_remove(_channels *channels, int64_t id, _PyChannelState **pchan)
-{
- int res = -1;
- PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
-
- if (pchan != NULL) {
- *pchan = NULL;
- }
-
- _channelref *prev = NULL;
- _channelref *ref = _channelref_find(channels->head, id, &prev);
- if (ref == NULL) {
- PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", id);
- goto done;
- }
-
- _channels_remove_ref(channels, ref, prev, pchan);
-
- res = 0;
-done:
- PyThread_release_lock(channels->mutex);
- return res;
-}
-
-static int
-_channels_add_id_object(_channels *channels, int64_t id)
-{
- int res = -1;
- PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
-
- _channelref *ref = _channelref_find(channels->head, id, NULL);
- if (ref == NULL) {
- PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", id);
- goto done;
- }
- ref->objcount += 1;
-
- res = 0;
-done:
- PyThread_release_lock(channels->mutex);
- return res;
-}
-
-static void
-_channels_drop_id_object(_channels *channels, int64_t id)
-{
- PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
-
- _channelref *prev = NULL;
- _channelref *ref = _channelref_find(channels->head, id, &prev);
- if (ref == NULL) {
- // Already destroyed.
- goto done;
- }
- ref->objcount -= 1;
-
- // Destroy if no longer used.
- if (ref->objcount == 0) {
- _PyChannelState *chan = NULL;
- _channels_remove_ref(channels, ref, prev, &chan);
- if (chan != NULL) {
- _channel_free(chan);
- }
- }
-
-done:
- PyThread_release_lock(channels->mutex);
-}
-
-static int64_t *
-_channels_list_all(_channels *channels, int64_t *count)
-{
- int64_t *cids = NULL;
- PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
- int64_t *ids = PyMem_NEW(int64_t, (Py_ssize_t)(channels->numopen));
- if (ids == NULL) {
- goto done;
- }
- _channelref *ref = channels->head;
- for (int64_t i=0; ref != NULL; ref = ref->next, i++) {
- ids[i] = ref->id;
- }
- *count = channels->numopen;
-
- cids = ids;
-done:
- PyThread_release_lock(channels->mutex);
- return cids;
-}
-
-/* support for closing non-empty channels */
-
-struct _channel_closing {
- struct _channelref *ref;
-};
-
-static int
-_channel_set_closing(struct _channelref *ref, PyThread_type_lock mutex) {
- struct _channel *chan = ref->chan;
- if (chan == NULL) {
- // already closed
- return 0;
- }
- int res = -1;
- PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
- if (chan->closing != NULL) {
- PyErr_SetString(ChannelClosedError, "channel closed");
- goto done;
- }
- chan->closing = PyMem_NEW(struct _channel_closing, 1);
- if (chan->closing == NULL) {
- goto done;
- }
- chan->closing->ref = ref;
-
- res = 0;
-done:
- PyThread_release_lock(chan->mutex);
- return res;
-}
-
-static void
-_channel_clear_closing(struct _channel *chan) {
- PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
- if (chan->closing != NULL) {
- PyMem_Free(chan->closing);
- chan->closing = NULL;
- }
- PyThread_release_lock(chan->mutex);
-}
-
-static void
-_channel_finish_closing(struct _channel *chan) {
- struct _channel_closing *closing = chan->closing;
- if (closing == NULL) {
- return;
- }
- _channelref *ref = closing->ref;
- _channel_clear_closing(chan);
- // Do the things that would have been done in _channels_close().
- ref->chan = NULL;
- _channel_free(chan);
-}
-
-/* "high"-level channel-related functions */
-
-static int64_t
-_channel_create(_channels *channels)
-{
- _PyChannelState *chan = _channel_new();
- if (chan == NULL) {
- return -1;
- }
- int64_t id = _channels_add(channels, chan);
- if (id < 0) {
- _channel_free(chan);
- return -1;
- }
- return id;
-}
-
-static int
-_channel_destroy(_channels *channels, int64_t id)
-{
- _PyChannelState *chan = NULL;
- if (_channels_remove(channels, id, &chan) != 0) {
- return -1;
- }
- if (chan != NULL) {
- _channel_free(chan);
- }
- return 0;
-}
-
-static int
-_channel_send(_channels *channels, int64_t id, PyObject *obj)
-{
- PyInterpreterState *interp = _get_current();
- if (interp == NULL) {
- return -1;
- }
-
- // Look up the channel.
- PyThread_type_lock mutex = NULL;
- _PyChannelState *chan = _channels_lookup(channels, id, &mutex);
- if (chan == NULL) {
- return -1;
- }
- // Past this point we are responsible for releasing the mutex.
-
- if (chan->closing != NULL) {
- PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", id);
- PyThread_release_lock(mutex);
- return -1;
- }
-
- // Convert the object to cross-interpreter data.
- _PyCrossInterpreterData *data = PyMem_NEW(_PyCrossInterpreterData, 1);
- if (data == NULL) {
- PyThread_release_lock(mutex);
- return -1;
- }
- if (_PyObject_GetCrossInterpreterData(obj, data) != 0) {
- PyThread_release_lock(mutex);
- PyMem_Free(data);
- return -1;
- }
-
- // Add the data to the channel.
- int res = _channel_add(chan, PyInterpreterState_GetID(interp), data);
- PyThread_release_lock(mutex);
- if (res != 0) {
- _PyCrossInterpreterData_Release(data);
- PyMem_Free(data);
- return -1;
- }
-
- return 0;
-}
-
-static PyObject *
-_channel_recv(_channels *channels, int64_t id)
-{
- PyInterpreterState *interp = _get_current();
- if (interp == NULL) {
- return NULL;
- }
-
- // Look up the channel.
- PyThread_type_lock mutex = NULL;
- _PyChannelState *chan = _channels_lookup(channels, id, &mutex);
- if (chan == NULL) {
- return NULL;
- }
- // Past this point we are responsible for releasing the mutex.
-
- // Pop off the next item from the channel.
- _PyCrossInterpreterData *data = _channel_next(chan, PyInterpreterState_GetID(interp));
- PyThread_release_lock(mutex);
- if (data == NULL) {
- return NULL;
- }
-
- // Convert the data back to an object.
- PyObject *obj = _PyCrossInterpreterData_NewObject(data);
- _PyCrossInterpreterData_Release(data);
- PyMem_Free(data);
- if (obj == NULL) {
- return NULL;
- }
-
- return obj;
-}
-
-static int
-_channel_drop(_channels *channels, int64_t id, int send, int recv)
-{
- PyInterpreterState *interp = _get_current();
- if (interp == NULL) {
- return -1;
- }
-
- // Look up the channel.
- PyThread_type_lock mutex = NULL;
- _PyChannelState *chan = _channels_lookup(channels, id, &mutex);
- if (chan == NULL) {
- return -1;
- }
- // Past this point we are responsible for releasing the mutex.
-
- // Close one or both of the two ends.
- int res = _channel_close_interpreter(chan, PyInterpreterState_GetID(interp), send-recv);
- PyThread_release_lock(mutex);
- return res;
-}
-
-static int
-_channel_close(_channels *channels, int64_t id, int end, int force)
-{
- return _channels_close(channels, id, NULL, end, force);
-}
-
-static int
-_channel_is_associated(_channels *channels, int64_t cid, int64_t interp,
- int send)
-{
- _PyChannelState *chan = _channels_lookup(channels, cid, NULL);
- if (chan == NULL) {
- return -1;
- } else if (send && chan->closing != NULL) {
- PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", cid);
- return -1;
- }
-
- _channelend *end = _channelend_find(send ? chan->ends->send : chan->ends->recv,
- interp, NULL);
-
- return (end != NULL && end->open);
-}
-
-/* ChannelID class */
-
-static PyTypeObject ChannelIDtype;
-
-typedef struct channelid {
- PyObject_HEAD
- int64_t id;
- int end;
- int resolve;
- _channels *channels;
-} channelid;
-
-static int
-channel_id_converter(PyObject *arg, void *ptr)
-{
- int64_t cid;
- if (PyObject_TypeCheck(arg, &ChannelIDtype)) {
- cid = ((channelid *)arg)->id;
- }
- else if (PyIndex_Check(arg)) {
- cid = PyLong_AsLongLong(arg);
- if (cid == -1 && PyErr_Occurred()) {
- return 0;
- }
- if (cid < 0) {
- PyErr_Format(PyExc_ValueError,
- "channel ID must be a non-negative int, got %R", arg);
- return 0;
- }
- }
- else {
- PyErr_Format(PyExc_TypeError,
- "channel ID must be an int, got %.100s",
- Py_TYPE(arg)->tp_name);
- return 0;
- }
- *(int64_t *)ptr = cid;
- return 1;
-}
-
-static channelid *
-newchannelid(PyTypeObject *cls, int64_t cid, int end, _channels *channels,
- int force, int resolve)
-{
- channelid *self = PyObject_New(channelid, cls);
- if (self == NULL) {
- return NULL;
- }
- self->id = cid;
- self->end = end;
- self->resolve = resolve;
- self->channels = channels;
-
- if (_channels_add_id_object(channels, cid) != 0) {
- if (force && PyErr_ExceptionMatches(ChannelNotFoundError)) {
- PyErr_Clear();
- }
- else {
- Py_DECREF((PyObject *)self);
- return NULL;
- }
- }
-
- return self;
-}
-
-static _channels * _global_channels(void);
-
-static PyObject *
-channelid_new(PyTypeObject *cls, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"id", "send", "recv", "force", "_resolve", NULL};
- int64_t cid;
- int send = -1;
- int recv = -1;
- int force = 0;
- int resolve = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O&|$pppp:ChannelID.__new__", kwlist,
- channel_id_converter, &cid, &send, &recv, &force, &resolve))
- return NULL;
-
- // Handle "send" and "recv".
- if (send == 0 && recv == 0) {
- PyErr_SetString(PyExc_ValueError,
- "'send' and 'recv' cannot both be False");
- return NULL;
- }
-
- int end = 0;
- if (send == 1) {
- if (recv == 0 || recv == -1) {
- end = CHANNEL_SEND;
- }
- }
- else if (recv == 1) {
- end = CHANNEL_RECV;
- }
-
- return (PyObject *)newchannelid(cls, cid, end, _global_channels(),
- force, resolve);
-}
-
-static void
-channelid_dealloc(PyObject *v)
-{
- int64_t cid = ((channelid *)v)->id;
- _channels *channels = ((channelid *)v)->channels;
- Py_TYPE(v)->tp_free(v);
-
- _channels_drop_id_object(channels, cid);
-}
-
-static PyObject *
-channelid_repr(PyObject *self)
-{
- PyTypeObject *type = Py_TYPE(self);
- const char *name = _PyType_Name(type);
-
- channelid *cid = (channelid *)self;
- const char *fmt;
- if (cid->end == CHANNEL_SEND) {
- fmt = "%s(%" PRId64 ", send=True)";
- }
- else if (cid->end == CHANNEL_RECV) {
- fmt = "%s(%" PRId64 ", recv=True)";
- }
- else {
- fmt = "%s(%" PRId64 ")";
- }
- return PyUnicode_FromFormat(fmt, name, cid->id);
-}
-
-static PyObject *
-channelid_str(PyObject *self)
-{
- channelid *cid = (channelid *)self;
- return PyUnicode_FromFormat("%" PRId64 "", cid->id);
-}
-
-static PyObject *
-channelid_int(PyObject *self)
-{
- channelid *cid = (channelid *)self;
- return PyLong_FromLongLong(cid->id);
-}
-
-static PyNumberMethods channelid_as_number = {
- 0, /* nb_add */
- 0, /* nb_subtract */
- 0, /* nb_multiply */
- 0, /* nb_remainder */
- 0, /* nb_divmod */
- 0, /* nb_power */
- 0, /* nb_negative */
- 0, /* nb_positive */
- 0, /* nb_absolute */
- 0, /* nb_bool */
- 0, /* nb_invert */
- 0, /* nb_lshift */
- 0, /* nb_rshift */
- 0, /* nb_and */
- 0, /* nb_xor */
- 0, /* nb_or */
- (unaryfunc)channelid_int, /* nb_int */
- 0, /* nb_reserved */
- 0, /* nb_float */
-
- 0, /* nb_inplace_add */
- 0, /* nb_inplace_subtract */
- 0, /* nb_inplace_multiply */
- 0, /* nb_inplace_remainder */
- 0, /* nb_inplace_power */
- 0, /* nb_inplace_lshift */
- 0, /* nb_inplace_rshift */
- 0, /* nb_inplace_and */
- 0, /* nb_inplace_xor */
- 0, /* nb_inplace_or */
-
- 0, /* nb_floor_divide */
- 0, /* nb_true_divide */
- 0, /* nb_inplace_floor_divide */
- 0, /* nb_inplace_true_divide */
-
- (unaryfunc)channelid_int, /* nb_index */
-};
-
-static Py_hash_t
-channelid_hash(PyObject *self)
-{
- channelid *cid = (channelid *)self;
- PyObject *id = PyLong_FromLongLong(cid->id);
- if (id == NULL) {
- return -1;
- }
- Py_hash_t hash = PyObject_Hash(id);
- Py_DECREF(id);
- return hash;
-}
-
-static PyObject *
-channelid_richcompare(PyObject *self, PyObject *other, int op)
-{
- if (op != Py_EQ && op != Py_NE) {
- Py_RETURN_NOTIMPLEMENTED;
- }
-
- if (!PyObject_TypeCheck(self, &ChannelIDtype)) {
- Py_RETURN_NOTIMPLEMENTED;
- }
-
- channelid *cid = (channelid *)self;
- int equal;
- if (PyObject_TypeCheck(other, &ChannelIDtype)) {
- channelid *othercid = (channelid *)other;
- equal = (cid->end == othercid->end) && (cid->id == othercid->id);
- }
- else if (PyLong_Check(other)) {
- /* Fast path */
- int overflow;
- long long othercid = PyLong_AsLongLongAndOverflow(other, &overflow);
- if (othercid == -1 && PyErr_Occurred()) {
- return NULL;
- }
- equal = !overflow && (othercid >= 0) && (cid->id == othercid);
- }
- else if (PyNumber_Check(other)) {
- PyObject *pyid = PyLong_FromLongLong(cid->id);
- if (pyid == NULL) {
- return NULL;
- }
- PyObject *res = PyObject_RichCompare(pyid, other, op);
- Py_DECREF(pyid);
- return res;
- }
- else {
- Py_RETURN_NOTIMPLEMENTED;
- }
-
- if ((op == Py_EQ && equal) || (op == Py_NE && !equal)) {
- Py_RETURN_TRUE;
- }
- Py_RETURN_FALSE;
-}
-
-static PyObject *
-_channel_from_cid(PyObject *cid, int end)
-{
- PyObject *highlevel = PyImport_ImportModule("interpreters");
- if (highlevel == NULL) {
- PyErr_Clear();
- highlevel = PyImport_ImportModule("test.support.interpreters");
- if (highlevel == NULL) {
- return NULL;
- }
- }
- const char *clsname = (end == CHANNEL_RECV) ? "RecvChannel" :
- "SendChannel";
- PyObject *cls = PyObject_GetAttrString(highlevel, clsname);
- Py_DECREF(highlevel);
- if (cls == NULL) {
- return NULL;
- }
- PyObject *chan = PyObject_CallFunctionObjArgs(cls, cid, NULL);
- Py_DECREF(cls);
- if (chan == NULL) {
- return NULL;
- }
- return chan;
-}
-
-struct _channelid_xid {
- int64_t id;
- int end;
- int resolve;
-};
-
-static PyObject *
-_channelid_from_xid(_PyCrossInterpreterData *data)
-{
- struct _channelid_xid *xid = (struct _channelid_xid *)data->data;
- // Note that we do not preserve the "resolve" flag.
- PyObject *cid = (PyObject *)newchannelid(&ChannelIDtype, xid->id, xid->end,
- _global_channels(), 0, 0);
- if (xid->end == 0) {
- return cid;
- }
- if (!xid->resolve) {
- return cid;
- }
-
- /* Try returning a high-level channel end but fall back to the ID. */
- PyObject *chan = _channel_from_cid(cid, xid->end);
- if (chan == NULL) {
- PyErr_Clear();
- return cid;
- }
- Py_DECREF(cid);
- return chan;
-}
-
-static int
-_channelid_shared(PyObject *obj, _PyCrossInterpreterData *data)
-{
- struct _channelid_xid *xid = PyMem_NEW(struct _channelid_xid, 1);
- if (xid == NULL) {
- return -1;
- }
- xid->id = ((channelid *)obj)->id;
- xid->end = ((channelid *)obj)->end;
- xid->resolve = ((channelid *)obj)->resolve;
-
- data->data = xid;
- Py_INCREF(obj);
- data->obj = obj;
- data->new_object = _channelid_from_xid;
- data->free = PyMem_Free;
- return 0;
-}
-
-static PyObject *
-channelid_end(PyObject *self, void *end)
-{
- int force = 1;
- channelid *cid = (channelid *)self;
- if (end != NULL) {
- return (PyObject *)newchannelid(Py_TYPE(self), cid->id, *(int *)end,
- cid->channels, force, cid->resolve);
- }
-
- if (cid->end == CHANNEL_SEND) {
- return PyUnicode_InternFromString("send");
- }
- if (cid->end == CHANNEL_RECV) {
- return PyUnicode_InternFromString("recv");
- }
- return PyUnicode_InternFromString("both");
-}
-
-static int _channelid_end_send = CHANNEL_SEND;
-static int _channelid_end_recv = CHANNEL_RECV;
-
-static PyGetSetDef channelid_getsets[] = {
- {"end", (getter)channelid_end, NULL,
- PyDoc_STR("'send', 'recv', or 'both'")},
- {"send", (getter)channelid_end, NULL,
- PyDoc_STR("the 'send' end of the channel"), &_channelid_end_send},
- {"recv", (getter)channelid_end, NULL,
- PyDoc_STR("the 'recv' end of the channel"), &_channelid_end_recv},
- {NULL}
-};
-
-PyDoc_STRVAR(channelid_doc,
-"A channel ID identifies a channel and may be used as an int.");
-
-static PyTypeObject ChannelIDtype = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "_xxsubinterpreters.ChannelID", /* tp_name */
- sizeof(channelid), /* tp_basicsize */
- 0, /* tp_itemsize */
- (destructor)channelid_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_as_async */
- (reprfunc)channelid_repr, /* tp_repr */
- &channelid_as_number, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- channelid_hash, /* tp_hash */
- 0, /* tp_call */
- (reprfunc)channelid_str, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- channelid_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- channelid_richcompare, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- 0, /* tp_methods */
- 0, /* tp_members */
- channelid_getsets, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- 0, /* tp_init */
- 0, /* tp_alloc */
- // Note that we do not set tp_new to channelid_new. Instead we
- // set it to NULL, meaning it cannot be instantiated from Python
- // code. We do this because there is a strong relationship between
- // channel IDs and the channel lifecycle, so this limitation avoids
- // related complications.
- NULL, /* tp_new */
-};
-
-
-/* interpreter-specific code ************************************************/
-
-static PyObject * RunFailedError = NULL;
-
-static int
-interp_exceptions_init(PyObject *ns)
-{
- // XXX Move the exceptions into per-module memory?
-
- if (RunFailedError == NULL) {
- // An uncaught exception came out of interp_run_string().
- RunFailedError = PyErr_NewException("_xxsubinterpreters.RunFailedError",
- PyExc_RuntimeError, NULL);
- if (RunFailedError == NULL) {
- return -1;
- }
- if (PyDict_SetItemString(ns, "RunFailedError", RunFailedError) != 0) {
- return -1;
- }
- }
-
- return 0;
-}
-
-static int
-_is_running(PyInterpreterState *interp)
-{
- PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
- if (PyThreadState_Next(tstate) != NULL) {
- PyErr_SetString(PyExc_RuntimeError,
- "interpreter has more than one thread");
- return -1;
- }
-
- assert(!PyErr_Occurred());
- PyFrameObject *frame = PyThreadState_GetFrame(tstate);
- if (frame == NULL) {
- return 0;
- }
-
- int executing = (int)(frame->f_executing);
- Py_DECREF(frame);
-
- return executing;
-}
-
-static int
-_ensure_not_running(PyInterpreterState *interp)
-{
- int is_running = _is_running(interp);
- if (is_running < 0) {
- return -1;
- }
- if (is_running) {
- PyErr_Format(PyExc_RuntimeError, "interpreter already running");
- return -1;
- }
- return 0;
-}
-
-static int
-_run_script(PyInterpreterState *interp, const char *codestr,
- _sharedns *shared, _sharedexception **exc)
-{
- PyObject *exctype = NULL;
- PyObject *excval = NULL;
- PyObject *tb = NULL;
-
- PyObject *main_mod = _PyInterpreterState_GetMainModule(interp);
- if (main_mod == NULL) {
- goto error;
- }
- PyObject *ns = PyModule_GetDict(main_mod); // borrowed
- Py_DECREF(main_mod);
- if (ns == NULL) {
- goto error;
- }
- Py_INCREF(ns);
-
- // Apply the cross-interpreter data.
- if (shared != NULL) {
- if (_sharedns_apply(shared, ns) != 0) {
- Py_DECREF(ns);
- goto error;
- }
- }
-
- // Run the string (see PyRun_SimpleStringFlags).
- PyObject *result = PyRun_StringFlags(codestr, Py_file_input, ns, ns, NULL);
- Py_DECREF(ns);
- if (result == NULL) {
- goto error;
- }
- else {
- Py_DECREF(result); // We throw away the result.
- }
-
- *exc = NULL;
- return 0;
-
-error:
- PyErr_Fetch(&exctype, &excval, &tb);
-
- _sharedexception *sharedexc = _sharedexception_bind(exctype, excval, tb);
- Py_XDECREF(exctype);
- Py_XDECREF(excval);
- Py_XDECREF(tb);
- if (sharedexc == NULL) {
- fprintf(stderr, "RunFailedError: script raised an uncaught exception");
- PyErr_Clear();
- sharedexc = NULL;
- }
- else {
- assert(!PyErr_Occurred());
- }
- *exc = sharedexc;
- return -1;
-}
-
-static int
-_run_script_in_interpreter(PyInterpreterState *interp, const char *codestr,
- PyObject *shareables)
-{
- if (_ensure_not_running(interp) < 0) {
- return -1;
- }
-
- _sharedns *shared = _get_shared_ns(shareables);
- if (shared == NULL && PyErr_Occurred()) {
- return -1;
- }
-
- // Switch to interpreter.
- PyThreadState *save_tstate = NULL;
- if (interp != PyInterpreterState_Get()) {
- // XXX Using the "head" thread isn't strictly correct.
- PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
- // XXX Possible GILState issues?
- save_tstate = PyThreadState_Swap(tstate);
- }
-
- // Run the script.
- _sharedexception *exc = NULL;
- int result = _run_script(interp, codestr, shared, &exc);
-
- // Switch back.
- if (save_tstate != NULL) {
- PyThreadState_Swap(save_tstate);
- }
-
- // Propagate any exception out to the caller.
- if (exc != NULL) {
- _sharedexception_apply(exc, RunFailedError);
- _sharedexception_free(exc);
- }
- else if (result != 0) {
- // We were unable to allocate a shared exception.
- PyErr_NoMemory();
- }
-
- if (shared != NULL) {
- _sharedns_free(shared);
- }
-
- return result;
-}
-
-
-/* module level code ********************************************************/
-
-/* globals is the process-global state for the module. It holds all
- the data that we need to share between interpreters, so it cannot
- hold PyObject values. */
-static struct globals {
- _channels channels;
-} _globals = {{0}};
-
-static int
-_init_globals(void)
-{
- if (_channels_init(&_globals.channels) != 0) {
- return -1;
- }
- return 0;
-}
-
-static _channels *
-_global_channels(void) {
- return &_globals.channels;
-}
-
-static PyObject *
-interp_create(PyObject *self, PyObject *args, PyObject *kwds)
-{
-
- static char *kwlist[] = {"isolated", NULL};
- int isolated = 1;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|$i:create", kwlist,
- &isolated)) {
- return NULL;
- }
-
- // Create and initialize the new interpreter.
- PyThreadState *save_tstate = PyThreadState_Get();
- // XXX Possible GILState issues?
- PyThreadState *tstate = _Py_NewInterpreter(isolated);
- PyThreadState_Swap(save_tstate);
- if (tstate == NULL) {
- /* Since no new thread state was created, there is no exception to
- propagate; raise a fresh one after swapping in the old thread
- state. */
- PyErr_SetString(PyExc_RuntimeError, "interpreter creation failed");
- return NULL;
- }
- PyInterpreterState *interp = PyThreadState_GetInterpreter(tstate);
- PyObject *idobj = _PyInterpreterState_GetIDObject(interp);
- if (idobj == NULL) {
- // XXX Possible GILState issues?
- save_tstate = PyThreadState_Swap(tstate);
- Py_EndInterpreter(tstate);
- PyThreadState_Swap(save_tstate);
- return NULL;
- }
- _PyInterpreterState_RequireIDRef(interp, 1);
- return idobj;
-}
-
-PyDoc_STRVAR(create_doc,
-"create() -> ID\n\
-\n\
-Create a new interpreter and return a unique generated ID.");
-
-
-static PyObject *
-interp_destroy(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"id", NULL};
- PyObject *id;
- // XXX Use "L" for id?
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O:destroy", kwlist, &id)) {
- return NULL;
- }
-
- // Look up the interpreter.
- PyInterpreterState *interp = _PyInterpreterID_LookUp(id);
- if (interp == NULL) {
- return NULL;
- }
-
- // Ensure we don't try to destroy the current interpreter.
- PyInterpreterState *current = _get_current();
- if (current == NULL) {
- return NULL;
- }
- if (interp == current) {
- PyErr_SetString(PyExc_RuntimeError,
- "cannot destroy the current interpreter");
- return NULL;
- }
-
- // Ensure the interpreter isn't running.
- /* XXX We *could* support destroying a running interpreter but
- aren't going to worry about it for now. */
- if (_ensure_not_running(interp) < 0) {
- return NULL;
- }
-
- // Destroy the interpreter.
- PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
- // XXX Possible GILState issues?
- PyThreadState *save_tstate = PyThreadState_Swap(tstate);
- Py_EndInterpreter(tstate);
- PyThreadState_Swap(save_tstate);
-
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(destroy_doc,
-"destroy(id)\n\
-\n\
-Destroy the identified interpreter.\n\
-\n\
-Attempting to destroy the current interpreter results in a RuntimeError.\n\
-So does an unrecognized ID.");
-
-
-static PyObject *
-interp_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- PyObject *ids, *id;
- PyInterpreterState *interp;
-
- ids = PyList_New(0);
- if (ids == NULL) {
- return NULL;
- }
-
- interp = PyInterpreterState_Head();
- while (interp != NULL) {
- id = _PyInterpreterState_GetIDObject(interp);
- if (id == NULL) {
- Py_DECREF(ids);
- return NULL;
- }
- // insert at front of list
- int res = PyList_Insert(ids, 0, id);
- Py_DECREF(id);
- if (res < 0) {
- Py_DECREF(ids);
- return NULL;
- }
-
- interp = PyInterpreterState_Next(interp);
- }
-
- return ids;
-}
-
-PyDoc_STRVAR(list_all_doc,
-"list_all() -> [ID]\n\
-\n\
-Return a list containing the ID of every existing interpreter.");
-
-
-static PyObject *
-interp_get_current(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- PyInterpreterState *interp =_get_current();
- if (interp == NULL) {
- return NULL;
- }
- return _PyInterpreterState_GetIDObject(interp);
-}
-
-PyDoc_STRVAR(get_current_doc,
-"get_current() -> ID\n\
-\n\
-Return the ID of current interpreter.");
-
-
-static PyObject *
-interp_get_main(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- // Currently, 0 is always the main interpreter.
- int64_t id = 0;
- return _PyInterpreterID_New(id);
-}
-
-PyDoc_STRVAR(get_main_doc,
-"get_main() -> ID\n\
-\n\
-Return the ID of main interpreter.");
-
-
-static PyObject *
-interp_run_string(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"id", "script", "shared", NULL};
- PyObject *id, *code;
- PyObject *shared = NULL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "OU|O:run_string", kwlist,
- &id, &code, &shared)) {
- return NULL;
- }
-
- // Look up the interpreter.
- PyInterpreterState *interp = _PyInterpreterID_LookUp(id);
- if (interp == NULL) {
- return NULL;
- }
-
- // Extract code.
- Py_ssize_t size;
- const char *codestr = PyUnicode_AsUTF8AndSize(code, &size);
- if (codestr == NULL) {
- return NULL;
- }
- if (strlen(codestr) != (size_t)size) {
- PyErr_SetString(PyExc_ValueError,
- "source code string cannot contain null bytes");
- return NULL;
- }
-
- // Run the code in the interpreter.
- if (_run_script_in_interpreter(interp, codestr, shared) != 0) {
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(run_string_doc,
-"run_string(id, script, shared)\n\
-\n\
-Execute the provided string in the identified interpreter.\n\
-\n\
-See PyRun_SimpleStrings.");
-
-
-static PyObject *
-object_is_shareable(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"obj", NULL};
- PyObject *obj;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O:is_shareable", kwlist, &obj)) {
- return NULL;
- }
-
- if (_PyObject_CheckCrossInterpreterData(obj) == 0) {
- Py_RETURN_TRUE;
- }
- PyErr_Clear();
- Py_RETURN_FALSE;
-}
-
-PyDoc_STRVAR(is_shareable_doc,
-"is_shareable(obj) -> bool\n\
-\n\
-Return True if the object's data may be shared between interpreters and\n\
-False otherwise.");
-
-
-static PyObject *
-interp_is_running(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"id", NULL};
- PyObject *id;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O:is_running", kwlist, &id)) {
- return NULL;
- }
-
- PyInterpreterState *interp = _PyInterpreterID_LookUp(id);
- if (interp == NULL) {
- return NULL;
- }
- int is_running = _is_running(interp);
- if (is_running < 0) {
- return NULL;
- }
- if (is_running) {
- Py_RETURN_TRUE;
- }
- Py_RETURN_FALSE;
-}
-
-PyDoc_STRVAR(is_running_doc,
-"is_running(id) -> bool\n\
-\n\
-Return whether or not the identified interpreter is running.");
-
-static PyObject *
-channel_create(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- int64_t cid = _channel_create(&_globals.channels);
- if (cid < 0) {
- return NULL;
- }
- PyObject *id = (PyObject *)newchannelid(&ChannelIDtype, cid, 0,
- &_globals.channels, 0, 0);
- if (id == NULL) {
- if (_channel_destroy(&_globals.channels, cid) != 0) {
- // XXX issue a warning?
- }
- return NULL;
- }
- assert(((channelid *)id)->channels != NULL);
- return id;
-}
-
-PyDoc_STRVAR(channel_create_doc,
-"channel_create() -> cid\n\
-\n\
-Create a new cross-interpreter channel and return a unique generated ID.");
-
-static PyObject *
-channel_destroy(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"cid", NULL};
- int64_t cid;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&:channel_destroy", kwlist,
- channel_id_converter, &cid)) {
- return NULL;
- }
-
- if (_channel_destroy(&_globals.channels, cid) != 0) {
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(channel_destroy_doc,
-"channel_destroy(cid)\n\
-\n\
-Close and finalize the channel. Afterward attempts to use the channel\n\
-will behave as though it never existed.");
-
-static PyObject *
-channel_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- int64_t count = 0;
- int64_t *cids = _channels_list_all(&_globals.channels, &count);
- if (cids == NULL) {
- if (count == 0) {
- return PyList_New(0);
- }
- return NULL;
- }
- PyObject *ids = PyList_New((Py_ssize_t)count);
- if (ids == NULL) {
- goto finally;
- }
- int64_t *cur = cids;
- for (int64_t i=0; i < count; cur++, i++) {
- PyObject *id = (PyObject *)newchannelid(&ChannelIDtype, *cur, 0,
- &_globals.channels, 0, 0);
- if (id == NULL) {
- Py_DECREF(ids);
- ids = NULL;
- break;
- }
- PyList_SET_ITEM(ids, i, id);
- }
-
-finally:
- PyMem_Free(cids);
- return ids;
-}
-
-PyDoc_STRVAR(channel_list_all_doc,
-"channel_list_all() -> [cid]\n\
-\n\
-Return the list of all IDs for active channels.");
-
-static PyObject *
-channel_list_interpreters(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"cid", "send", NULL};
- int64_t cid; /* Channel ID */
- int send = 0; /* Send or receive end? */
- int64_t id;
- PyObject *ids, *id_obj;
- PyInterpreterState *interp;
-
- if (!PyArg_ParseTupleAndKeywords(
- args, kwds, "O&$p:channel_list_interpreters",
- kwlist, channel_id_converter, &cid, &send)) {
- return NULL;
- }
-
- ids = PyList_New(0);
- if (ids == NULL) {
- goto except;
- }
-
- interp = PyInterpreterState_Head();
- while (interp != NULL) {
- id = PyInterpreterState_GetID(interp);
- assert(id >= 0);
- int res = _channel_is_associated(&_globals.channels, cid, id, send);
- if (res < 0) {
- goto except;
- }
- if (res) {
- id_obj = _PyInterpreterState_GetIDObject(interp);
- if (id_obj == NULL) {
- goto except;
- }
- res = PyList_Insert(ids, 0, id_obj);
- Py_DECREF(id_obj);
- if (res < 0) {
- goto except;
- }
- }
- interp = PyInterpreterState_Next(interp);
- }
-
- goto finally;
-
-except:
- Py_XDECREF(ids);
- ids = NULL;
-
-finally:
- return ids;
-}
-
-PyDoc_STRVAR(channel_list_interpreters_doc,
-"channel_list_interpreters(cid, *, send) -> [id]\n\
-\n\
-Return the list of all interpreter IDs associated with an end of the channel.\n\
-\n\
-The 'send' argument should be a boolean indicating whether to use the send or\n\
-receive end.");
-
-
-static PyObject *
-channel_send(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"cid", "obj", NULL};
- int64_t cid;
- PyObject *obj;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&O:channel_send", kwlist,
- channel_id_converter, &cid, &obj)) {
- return NULL;
- }
-
- if (_channel_send(&_globals.channels, cid, obj) != 0) {
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(channel_send_doc,
-"channel_send(cid, obj)\n\
-\n\
-Add the object's data to the channel's queue.");
-
-static PyObject *
-channel_recv(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"cid", "default", NULL};
- int64_t cid;
- PyObject *dflt = NULL;
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&|O:channel_recv", kwlist,
- channel_id_converter, &cid, &dflt)) {
- return NULL;
- }
- Py_XINCREF(dflt);
-
- PyObject *obj = _channel_recv(&_globals.channels, cid);
- if (obj != NULL) {
- Py_XDECREF(dflt);
- return obj;
- } else if (PyErr_Occurred()) {
- Py_XDECREF(dflt);
- return NULL;
- } else if (dflt != NULL) {
- return dflt;
- } else {
- PyErr_Format(ChannelEmptyError, "channel %" PRId64 " is empty", cid);
- return NULL;
- }
-}
-
-PyDoc_STRVAR(channel_recv_doc,
-"channel_recv(cid, [default]) -> obj\n\
-\n\
-Return a new object from the data at the front of the channel's queue.\n\
-\n\
-If there is nothing to receive then raise ChannelEmptyError, unless\n\
-a default value is provided. In that case return it.");
-
-static PyObject *
-channel_close(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"cid", "send", "recv", "force", NULL};
- int64_t cid;
- int send = 0;
- int recv = 0;
- int force = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O&|$ppp:channel_close", kwlist,
- channel_id_converter, &cid, &send, &recv, &force)) {
- return NULL;
- }
-
- if (_channel_close(&_globals.channels, cid, send-recv, force) != 0) {
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(channel_close_doc,
-"channel_close(cid, *, send=None, recv=None, force=False)\n\
-\n\
-Close the channel for all interpreters.\n\
-\n\
-If the channel is empty then the keyword args are ignored and both\n\
-ends are immediately closed. Otherwise, if 'force' is True then\n\
-all queued items are released and both ends are immediately\n\
-closed.\n\
-\n\
-If the channel is not empty *and* 'force' is False then following\n\
-happens:\n\
-\n\
- * recv is True (regardless of send):\n\
- - raise ChannelNotEmptyError\n\
- * recv is None and send is None:\n\
- - raise ChannelNotEmptyError\n\
- * send is True and recv is not True:\n\
- - fully close the 'send' end\n\
- - close the 'recv' end to interpreters not already receiving\n\
- - fully close it once empty\n\
-\n\
-Closing an already closed channel results in a ChannelClosedError.\n\
-\n\
-Once the channel's ID has no more ref counts in any interpreter\n\
-the channel will be destroyed.");
-
-static PyObject *
-channel_release(PyObject *self, PyObject *args, PyObject *kwds)
-{
- // Note that only the current interpreter is affected.
- static char *kwlist[] = {"cid", "send", "recv", "force", NULL};
- int64_t cid;
- int send = 0;
- int recv = 0;
- int force = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O&|$ppp:channel_release", kwlist,
- channel_id_converter, &cid, &send, &recv, &force)) {
- return NULL;
- }
- if (send == 0 && recv == 0) {
- send = 1;
- recv = 1;
- }
-
- // XXX Handle force is True.
- // XXX Fix implicit release.
-
- if (_channel_drop(&_globals.channels, cid, send, recv) != 0) {
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(channel_release_doc,
-"channel_release(cid, *, send=None, recv=None, force=True)\n\
-\n\
-Close the channel for the current interpreter. 'send' and 'recv'\n\
-(bool) may be used to indicate the ends to close. By default both\n\
-ends are closed. Closing an already closed end is a noop.");
-
-static PyObject *
-channel__channel_id(PyObject *self, PyObject *args, PyObject *kwds)
-{
- return channelid_new(&ChannelIDtype, args, kwds);
-}
-
-static PyMethodDef module_functions[] = {
- {"create", (PyCFunction)(void(*)(void))interp_create,
- METH_VARARGS | METH_KEYWORDS, create_doc},
- {"destroy", (PyCFunction)(void(*)(void))interp_destroy,
- METH_VARARGS | METH_KEYWORDS, destroy_doc},
- {"list_all", interp_list_all,
- METH_NOARGS, list_all_doc},
- {"get_current", interp_get_current,
- METH_NOARGS, get_current_doc},
- {"get_main", interp_get_main,
- METH_NOARGS, get_main_doc},
- {"is_running", (PyCFunction)(void(*)(void))interp_is_running,
- METH_VARARGS | METH_KEYWORDS, is_running_doc},
- {"run_string", (PyCFunction)(void(*)(void))interp_run_string,
- METH_VARARGS | METH_KEYWORDS, run_string_doc},
-
- {"is_shareable", (PyCFunction)(void(*)(void))object_is_shareable,
- METH_VARARGS | METH_KEYWORDS, is_shareable_doc},
-
- {"channel_create", channel_create,
- METH_NOARGS, channel_create_doc},
- {"channel_destroy", (PyCFunction)(void(*)(void))channel_destroy,
- METH_VARARGS | METH_KEYWORDS, channel_destroy_doc},
- {"channel_list_all", channel_list_all,
- METH_NOARGS, channel_list_all_doc},
- {"channel_list_interpreters", (PyCFunction)(void(*)(void))channel_list_interpreters,
- METH_VARARGS | METH_KEYWORDS, channel_list_interpreters_doc},
- {"channel_send", (PyCFunction)(void(*)(void))channel_send,
- METH_VARARGS | METH_KEYWORDS, channel_send_doc},
- {"channel_recv", (PyCFunction)(void(*)(void))channel_recv,
- METH_VARARGS | METH_KEYWORDS, channel_recv_doc},
- {"channel_close", (PyCFunction)(void(*)(void))channel_close,
- METH_VARARGS | METH_KEYWORDS, channel_close_doc},
- {"channel_release", (PyCFunction)(void(*)(void))channel_release,
- METH_VARARGS | METH_KEYWORDS, channel_release_doc},
- {"_channel_id", (PyCFunction)(void(*)(void))channel__channel_id,
- METH_VARARGS | METH_KEYWORDS, NULL},
-
- {NULL, NULL} /* sentinel */
-};
-
-
-/* initialization function */
-
-PyDoc_STRVAR(module_doc,
-"This module provides primitive operations to manage Python interpreters.\n\
-The 'interpreters' module provides a more convenient interface.");
-
-static struct PyModuleDef interpretersmodule = {
- PyModuleDef_HEAD_INIT,
- "_xxsubinterpreters", /* m_name */
- module_doc, /* m_doc */
- -1, /* m_size */
- module_functions, /* m_methods */
- NULL, /* m_slots */
- NULL, /* m_traverse */
- NULL, /* m_clear */
- NULL /* m_free */
-};
-
-
-PyMODINIT_FUNC
-PyInit__xxsubinterpreters(void)
-{
- if (_init_globals() != 0) {
- return NULL;
- }
-
- /* Initialize types */
- if (PyType_Ready(&ChannelIDtype) != 0) {
- return NULL;
- }
-
- /* Create the module */
- PyObject *module = PyModule_Create(&interpretersmodule);
- if (module == NULL) {
- return NULL;
- }
-
- /* Add exception types */
- PyObject *ns = PyModule_GetDict(module); // borrowed
- if (interp_exceptions_init(ns) != 0) {
- return NULL;
- }
- if (channel_exceptions_init(ns) != 0) {
- return NULL;
- }
-
- /* Add other types */
- Py_INCREF(&ChannelIDtype);
- if (PyDict_SetItemString(ns, "ChannelID", (PyObject *)&ChannelIDtype) != 0) {
- return NULL;
- }
- Py_INCREF(&_PyInterpreterID_Type);
- if (PyDict_SetItemString(ns, "InterpreterID", (PyObject *)&_PyInterpreterID_Type) != 0) {
- return NULL;
- }
-
- if (_PyCrossInterpreterData_RegisterClass(&ChannelIDtype, _channelid_shared)) {
- return NULL;
- }
-
- return module;
-}
+
+/* interpreters module */
+/* low-level access to interpreter primitives */
+
+#include "Python.h"
+#include "frameobject.h"
+#include "interpreteridobject.h"
+
+
+static char *
+_copy_raw_string(PyObject *strobj)
+{
+ const char *str = PyUnicode_AsUTF8(strobj);
+ if (str == NULL) {
+ return NULL;
+ }
+ char *copied = PyMem_Malloc(strlen(str)+1);
+ if (copied == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ strcpy(copied, str);
+ return copied;
+}
+
+static PyInterpreterState *
+_get_current(void)
+{
+ // PyInterpreterState_Get() aborts if lookup fails, so don't need
+ // to check the result for NULL.
+ return PyInterpreterState_Get();
+}
+
+
+/* data-sharing-specific code ***********************************************/
+
+struct _sharednsitem {
+ char *name;
+ _PyCrossInterpreterData data;
+};
+
+static void _sharednsitem_clear(struct _sharednsitem *); // forward
+
+static int
+_sharednsitem_init(struct _sharednsitem *item, PyObject *key, PyObject *value)
+{
+ item->name = _copy_raw_string(key);
+ if (item->name == NULL) {
+ return -1;
+ }
+ if (_PyObject_GetCrossInterpreterData(value, &item->data) != 0) {
+ _sharednsitem_clear(item);
+ return -1;
+ }
+ return 0;
+}
+
+static void
+_sharednsitem_clear(struct _sharednsitem *item)
+{
+ if (item->name != NULL) {
+ PyMem_Free(item->name);
+ item->name = NULL;
+ }
+ _PyCrossInterpreterData_Release(&item->data);
+}
+
+static int
+_sharednsitem_apply(struct _sharednsitem *item, PyObject *ns)
+{
+ PyObject *name = PyUnicode_FromString(item->name);
+ if (name == NULL) {
+ return -1;
+ }
+ PyObject *value = _PyCrossInterpreterData_NewObject(&item->data);
+ if (value == NULL) {
+ Py_DECREF(name);
+ return -1;
+ }
+ int res = PyDict_SetItem(ns, name, value);
+ Py_DECREF(name);
+ Py_DECREF(value);
+ return res;
+}
+
+typedef struct _sharedns {
+ Py_ssize_t len;
+ struct _sharednsitem* items;
+} _sharedns;
+
+static _sharedns *
+_sharedns_new(Py_ssize_t len)
+{
+ _sharedns *shared = PyMem_NEW(_sharedns, 1);
+ if (shared == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ shared->len = len;
+ shared->items = PyMem_NEW(struct _sharednsitem, len);
+ if (shared->items == NULL) {
+ PyErr_NoMemory();
+ PyMem_Free(shared);
+ return NULL;
+ }
+ return shared;
+}
+
+static void
+_sharedns_free(_sharedns *shared)
+{
+ for (Py_ssize_t i=0; i < shared->len; i++) {
+ _sharednsitem_clear(&shared->items[i]);
+ }
+ PyMem_Free(shared->items);
+ PyMem_Free(shared);
+}
+
+static _sharedns *
+_get_shared_ns(PyObject *shareable)
+{
+ if (shareable == NULL || shareable == Py_None) {
+ return NULL;
+ }
+ Py_ssize_t len = PyDict_Size(shareable);
+ if (len == 0) {
+ return NULL;
+ }
+
+ _sharedns *shared = _sharedns_new(len);
+ if (shared == NULL) {
+ return NULL;
+ }
+ Py_ssize_t pos = 0;
+ for (Py_ssize_t i=0; i < len; i++) {
+ PyObject *key, *value;
+ if (PyDict_Next(shareable, &pos, &key, &value) == 0) {
+ break;
+ }
+ if (_sharednsitem_init(&shared->items[i], key, value) != 0) {
+ break;
+ }
+ }
+ if (PyErr_Occurred()) {
+ _sharedns_free(shared);
+ return NULL;
+ }
+ return shared;
+}
+
+static int
+_sharedns_apply(_sharedns *shared, PyObject *ns)
+{
+ for (Py_ssize_t i=0; i < shared->len; i++) {
+ if (_sharednsitem_apply(&shared->items[i], ns) != 0) {
+ return -1;
+ }
+ }
+ return 0;
+}
+
+// Ultimately we'd like to preserve enough information about the
+// exception and traceback that we could re-constitute (or at least
+// simulate, a la traceback.TracebackException), and even chain, a copy
+// of the exception in the calling interpreter.
+
+typedef struct _sharedexception {
+ char *name;
+ char *msg;
+} _sharedexception;
+
+static _sharedexception *
+_sharedexception_new(void)
+{
+ _sharedexception *err = PyMem_NEW(_sharedexception, 1);
+ if (err == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ err->name = NULL;
+ err->msg = NULL;
+ return err;
+}
+
+static void
+_sharedexception_clear(_sharedexception *exc)
+{
+ if (exc->name != NULL) {
+ PyMem_Free(exc->name);
+ }
+ if (exc->msg != NULL) {
+ PyMem_Free(exc->msg);
+ }
+}
+
+static void
+_sharedexception_free(_sharedexception *exc)
+{
+ _sharedexception_clear(exc);
+ PyMem_Free(exc);
+}
+
+static _sharedexception *
+_sharedexception_bind(PyObject *exctype, PyObject *exc, PyObject *tb)
+{
+ assert(exctype != NULL);
+ char *failure = NULL;
+
+ _sharedexception *err = _sharedexception_new();
+ if (err == NULL) {
+ goto finally;
+ }
+
+ PyObject *name = PyUnicode_FromFormat("%S", exctype);
+ if (name == NULL) {
+ failure = "unable to format exception type name";
+ goto finally;
+ }
+ err->name = _copy_raw_string(name);
+ Py_DECREF(name);
+ if (err->name == NULL) {
+ if (PyErr_ExceptionMatches(PyExc_MemoryError)) {
+ failure = "out of memory copying exception type name";
+ } else {
+ failure = "unable to encode and copy exception type name";
+ }
+ goto finally;
+ }
+
+ if (exc != NULL) {
+ PyObject *msg = PyUnicode_FromFormat("%S", exc);
+ if (msg == NULL) {
+ failure = "unable to format exception message";
+ goto finally;
+ }
+ err->msg = _copy_raw_string(msg);
+ Py_DECREF(msg);
+ if (err->msg == NULL) {
+ if (PyErr_ExceptionMatches(PyExc_MemoryError)) {
+ failure = "out of memory copying exception message";
+ } else {
+ failure = "unable to encode and copy exception message";
+ }
+ goto finally;
+ }
+ }
+
+finally:
+ if (failure != NULL) {
+ PyErr_Clear();
+ if (err->name != NULL) {
+ PyMem_Free(err->name);
+ err->name = NULL;
+ }
+ err->msg = failure;
+ }
+ return err;
+}
+
+static void
+_sharedexception_apply(_sharedexception *exc, PyObject *wrapperclass)
+{
+ if (exc->name != NULL) {
+ if (exc->msg != NULL) {
+ PyErr_Format(wrapperclass, "%s: %s", exc->name, exc->msg);
+ }
+ else {
+ PyErr_SetString(wrapperclass, exc->name);
+ }
+ }
+ else if (exc->msg != NULL) {
+ PyErr_SetString(wrapperclass, exc->msg);
+ }
+ else {
+ PyErr_SetNone(wrapperclass);
+ }
+}
+
+
+/* channel-specific code ****************************************************/
+
+#define CHANNEL_SEND 1
+#define CHANNEL_BOTH 0
+#define CHANNEL_RECV -1
+
+static PyObject *ChannelError;
+static PyObject *ChannelNotFoundError;
+static PyObject *ChannelClosedError;
+static PyObject *ChannelEmptyError;
+static PyObject *ChannelNotEmptyError;
+
+static int
+channel_exceptions_init(PyObject *ns)
+{
+ // XXX Move the exceptions into per-module memory?
+
+ // A channel-related operation failed.
+ ChannelError = PyErr_NewException("_xxsubinterpreters.ChannelError",
+ PyExc_RuntimeError, NULL);
+ if (ChannelError == NULL) {
+ return -1;
+ }
+ if (PyDict_SetItemString(ns, "ChannelError", ChannelError) != 0) {
+ return -1;
+ }
+
+ // An operation tried to use a channel that doesn't exist.
+ ChannelNotFoundError = PyErr_NewException(
+ "_xxsubinterpreters.ChannelNotFoundError", ChannelError, NULL);
+ if (ChannelNotFoundError == NULL) {
+ return -1;
+ }
+ if (PyDict_SetItemString(ns, "ChannelNotFoundError", ChannelNotFoundError) != 0) {
+ return -1;
+ }
+
+ // An operation tried to use a closed channel.
+ ChannelClosedError = PyErr_NewException(
+ "_xxsubinterpreters.ChannelClosedError", ChannelError, NULL);
+ if (ChannelClosedError == NULL) {
+ return -1;
+ }
+ if (PyDict_SetItemString(ns, "ChannelClosedError", ChannelClosedError) != 0) {
+ return -1;
+ }
+
+ // An operation tried to pop from an empty channel.
+ ChannelEmptyError = PyErr_NewException(
+ "_xxsubinterpreters.ChannelEmptyError", ChannelError, NULL);
+ if (ChannelEmptyError == NULL) {
+ return -1;
+ }
+ if (PyDict_SetItemString(ns, "ChannelEmptyError", ChannelEmptyError) != 0) {
+ return -1;
+ }
+
+ // An operation tried to close a non-empty channel.
+ ChannelNotEmptyError = PyErr_NewException(
+ "_xxsubinterpreters.ChannelNotEmptyError", ChannelError, NULL);
+ if (ChannelNotEmptyError == NULL) {
+ return -1;
+ }
+ if (PyDict_SetItemString(ns, "ChannelNotEmptyError", ChannelNotEmptyError) != 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/* the channel queue */
+
+struct _channelitem;
+
+typedef struct _channelitem {
+ _PyCrossInterpreterData *data;
+ struct _channelitem *next;
+} _channelitem;
+
+static _channelitem *
+_channelitem_new(void)
+{
+ _channelitem *item = PyMem_NEW(_channelitem, 1);
+ if (item == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ item->data = NULL;
+ item->next = NULL;
+ return item;
+}
+
+static void
+_channelitem_clear(_channelitem *item)
+{
+ if (item->data != NULL) {
+ _PyCrossInterpreterData_Release(item->data);
+ PyMem_Free(item->data);
+ item->data = NULL;
+ }
+ item->next = NULL;
+}
+
+static void
+_channelitem_free(_channelitem *item)
+{
+ _channelitem_clear(item);
+ PyMem_Free(item);
+}
+
+static void
+_channelitem_free_all(_channelitem *item)
+{
+ while (item != NULL) {
+ _channelitem *last = item;
+ item = item->next;
+ _channelitem_free(last);
+ }
+}
+
+static _PyCrossInterpreterData *
+_channelitem_popped(_channelitem *item)
+{
+ _PyCrossInterpreterData *data = item->data;
+ item->data = NULL;
+ _channelitem_free(item);
+ return data;
+}
+
+typedef struct _channelqueue {
+ int64_t count;
+ _channelitem *first;
+ _channelitem *last;
+} _channelqueue;
+
+static _channelqueue *
+_channelqueue_new(void)
+{
+ _channelqueue *queue = PyMem_NEW(_channelqueue, 1);
+ if (queue == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ queue->count = 0;
+ queue->first = NULL;
+ queue->last = NULL;
+ return queue;
+}
+
+static void
+_channelqueue_clear(_channelqueue *queue)
+{
+ _channelitem_free_all(queue->first);
+ queue->count = 0;
+ queue->first = NULL;
+ queue->last = NULL;
+}
+
+static void
+_channelqueue_free(_channelqueue *queue)
+{
+ _channelqueue_clear(queue);
+ PyMem_Free(queue);
+}
+
+static int
+_channelqueue_put(_channelqueue *queue, _PyCrossInterpreterData *data)
+{
+ _channelitem *item = _channelitem_new();
+ if (item == NULL) {
+ return -1;
+ }
+ item->data = data;
+
+ queue->count += 1;
+ if (queue->first == NULL) {
+ queue->first = item;
+ }
+ else {
+ queue->last->next = item;
+ }
+ queue->last = item;
+ return 0;
+}
+
+static _PyCrossInterpreterData *
+_channelqueue_get(_channelqueue *queue)
+{
+ _channelitem *item = queue->first;
+ if (item == NULL) {
+ return NULL;
+ }
+ queue->first = item->next;
+ if (queue->last == item) {
+ queue->last = NULL;
+ }
+ queue->count -= 1;
+
+ return _channelitem_popped(item);
+}
+
+/* channel-interpreter associations */
+
+struct _channelend;
+
+typedef struct _channelend {
+ struct _channelend *next;
+ int64_t interp;
+ int open;
+} _channelend;
+
+static _channelend *
+_channelend_new(int64_t interp)
+{
+ _channelend *end = PyMem_NEW(_channelend, 1);
+ if (end == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ end->next = NULL;
+ end->interp = interp;
+ end->open = 1;
+ return end;
+}
+
+static void
+_channelend_free(_channelend *end)
+{
+ PyMem_Free(end);
+}
+
+static void
+_channelend_free_all(_channelend *end)
+{
+ while (end != NULL) {
+ _channelend *last = end;
+ end = end->next;
+ _channelend_free(last);
+ }
+}
+
+static _channelend *
+_channelend_find(_channelend *first, int64_t interp, _channelend **pprev)
+{
+ _channelend *prev = NULL;
+ _channelend *end = first;
+ while (end != NULL) {
+ if (end->interp == interp) {
+ break;
+ }
+ prev = end;
+ end = end->next;
+ }
+ if (pprev != NULL) {
+ *pprev = prev;
+ }
+ return end;
+}
+
+typedef struct _channelassociations {
+ // Note that the list entries are never removed for interpreter
+ // for which the channel is closed. This should not be a problem in
+ // practice. Also, a channel isn't automatically closed when an
+ // interpreter is destroyed.
+ int64_t numsendopen;
+ int64_t numrecvopen;
+ _channelend *send;
+ _channelend *recv;
+} _channelends;
+
+static _channelends *
+_channelends_new(void)
+{
+ _channelends *ends = PyMem_NEW(_channelends, 1);
+ if (ends== NULL) {
+ return NULL;
+ }
+ ends->numsendopen = 0;
+ ends->numrecvopen = 0;
+ ends->send = NULL;
+ ends->recv = NULL;
+ return ends;
+}
+
+static void
+_channelends_clear(_channelends *ends)
+{
+ _channelend_free_all(ends->send);
+ ends->send = NULL;
+ ends->numsendopen = 0;
+
+ _channelend_free_all(ends->recv);
+ ends->recv = NULL;
+ ends->numrecvopen = 0;
+}
+
+static void
+_channelends_free(_channelends *ends)
+{
+ _channelends_clear(ends);
+ PyMem_Free(ends);
+}
+
+static _channelend *
+_channelends_add(_channelends *ends, _channelend *prev, int64_t interp,
+ int send)
+{
+ _channelend *end = _channelend_new(interp);
+ if (end == NULL) {
+ return NULL;
+ }
+
+ if (prev == NULL) {
+ if (send) {
+ ends->send = end;
+ }
+ else {
+ ends->recv = end;
+ }
+ }
+ else {
+ prev->next = end;
+ }
+ if (send) {
+ ends->numsendopen += 1;
+ }
+ else {
+ ends->numrecvopen += 1;
+ }
+ return end;
+}
+
+static int
+_channelends_associate(_channelends *ends, int64_t interp, int send)
+{
+ _channelend *prev;
+ _channelend *end = _channelend_find(send ? ends->send : ends->recv,
+ interp, &prev);
+ if (end != NULL) {
+ if (!end->open) {
+ PyErr_SetString(ChannelClosedError, "channel already closed");
+ return -1;
+ }
+ // already associated
+ return 0;
+ }
+ if (_channelends_add(ends, prev, interp, send) == NULL) {
+ return -1;
+ }
+ return 0;
+}
+
+static int
+_channelends_is_open(_channelends *ends)
+{
+ if (ends->numsendopen != 0 || ends->numrecvopen != 0) {
+ return 1;
+ }
+ if (ends->send == NULL && ends->recv == NULL) {
+ return 1;
+ }
+ return 0;
+}
+
+static void
+_channelends_close_end(_channelends *ends, _channelend *end, int send)
+{
+ end->open = 0;
+ if (send) {
+ ends->numsendopen -= 1;
+ }
+ else {
+ ends->numrecvopen -= 1;
+ }
+}
+
+static int
+_channelends_close_interpreter(_channelends *ends, int64_t interp, int which)
+{
+ _channelend *prev;
+ _channelend *end;
+ if (which >= 0) { // send/both
+ end = _channelend_find(ends->send, interp, &prev);
+ if (end == NULL) {
+ // never associated so add it
+ end = _channelends_add(ends, prev, interp, 1);
+ if (end == NULL) {
+ return -1;
+ }
+ }
+ _channelends_close_end(ends, end, 1);
+ }
+ if (which <= 0) { // recv/both
+ end = _channelend_find(ends->recv, interp, &prev);
+ if (end == NULL) {
+ // never associated so add it
+ end = _channelends_add(ends, prev, interp, 0);
+ if (end == NULL) {
+ return -1;
+ }
+ }
+ _channelends_close_end(ends, end, 0);
+ }
+ return 0;
+}
+
+static void
+_channelends_close_all(_channelends *ends, int which, int force)
+{
+ // XXX Handle the ends.
+ // XXX Handle force is True.
+
+ // Ensure all the "send"-associated interpreters are closed.
+ _channelend *end;
+ for (end = ends->send; end != NULL; end = end->next) {
+ _channelends_close_end(ends, end, 1);
+ }
+
+ // Ensure all the "recv"-associated interpreters are closed.
+ for (end = ends->recv; end != NULL; end = end->next) {
+ _channelends_close_end(ends, end, 0);
+ }
+}
+
+/* channels */
+
+struct _channel;
+struct _channel_closing;
+static void _channel_clear_closing(struct _channel *);
+static void _channel_finish_closing(struct _channel *);
+
+typedef struct _channel {
+ PyThread_type_lock mutex;
+ _channelqueue *queue;
+ _channelends *ends;
+ int open;
+ struct _channel_closing *closing;
+} _PyChannelState;
+
+static _PyChannelState *
+_channel_new(void)
+{
+ _PyChannelState *chan = PyMem_NEW(_PyChannelState, 1);
+ if (chan == NULL) {
+ return NULL;
+ }
+ chan->mutex = PyThread_allocate_lock();
+ if (chan->mutex == NULL) {
+ PyMem_Free(chan);
+ PyErr_SetString(ChannelError,
+ "can't initialize mutex for new channel");
+ return NULL;
+ }
+ chan->queue = _channelqueue_new();
+ if (chan->queue == NULL) {
+ PyMem_Free(chan);
+ return NULL;
+ }
+ chan->ends = _channelends_new();
+ if (chan->ends == NULL) {
+ _channelqueue_free(chan->queue);
+ PyMem_Free(chan);
+ return NULL;
+ }
+ chan->open = 1;
+ chan->closing = NULL;
+ return chan;
+}
+
+static void
+_channel_free(_PyChannelState *chan)
+{
+ _channel_clear_closing(chan);
+ PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
+ _channelqueue_free(chan->queue);
+ _channelends_free(chan->ends);
+ PyThread_release_lock(chan->mutex);
+
+ PyThread_free_lock(chan->mutex);
+ PyMem_Free(chan);
+}
+
+static int
+_channel_add(_PyChannelState *chan, int64_t interp,
+ _PyCrossInterpreterData *data)
+{
+ int res = -1;
+ PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
+
+ if (!chan->open) {
+ PyErr_SetString(ChannelClosedError, "channel closed");
+ goto done;
+ }
+ if (_channelends_associate(chan->ends, interp, 1) != 0) {
+ goto done;
+ }
+
+ if (_channelqueue_put(chan->queue, data) != 0) {
+ goto done;
+ }
+
+ res = 0;
+done:
+ PyThread_release_lock(chan->mutex);
+ return res;
+}
+
+static _PyCrossInterpreterData *
+_channel_next(_PyChannelState *chan, int64_t interp)
+{
+ _PyCrossInterpreterData *data = NULL;
+ PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
+
+ if (!chan->open) {
+ PyErr_SetString(ChannelClosedError, "channel closed");
+ goto done;
+ }
+ if (_channelends_associate(chan->ends, interp, 0) != 0) {
+ goto done;
+ }
+
+ data = _channelqueue_get(chan->queue);
+ if (data == NULL && !PyErr_Occurred() && chan->closing != NULL) {
+ chan->open = 0;
+ }
+
+done:
+ PyThread_release_lock(chan->mutex);
+ if (chan->queue->count == 0) {
+ _channel_finish_closing(chan);
+ }
+ return data;
+}
+
+static int
+_channel_close_interpreter(_PyChannelState *chan, int64_t interp, int end)
+{
+ PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
+
+ int res = -1;
+ if (!chan->open) {
+ PyErr_SetString(ChannelClosedError, "channel already closed");
+ goto done;
+ }
+
+ if (_channelends_close_interpreter(chan->ends, interp, end) != 0) {
+ goto done;
+ }
+ chan->open = _channelends_is_open(chan->ends);
+
+ res = 0;
+done:
+ PyThread_release_lock(chan->mutex);
+ return res;
+}
+
+static int
+_channel_close_all(_PyChannelState *chan, int end, int force)
+{
+ int res = -1;
+ PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
+
+ if (!chan->open) {
+ PyErr_SetString(ChannelClosedError, "channel already closed");
+ goto done;
+ }
+
+ if (!force && chan->queue->count > 0) {
+ PyErr_SetString(ChannelNotEmptyError,
+ "may not be closed if not empty (try force=True)");
+ goto done;
+ }
+
+ chan->open = 0;
+
+ // We *could* also just leave these in place, since we've marked
+ // the channel as closed already.
+ _channelends_close_all(chan->ends, end, force);
+
+ res = 0;
+done:
+ PyThread_release_lock(chan->mutex);
+ return res;
+}
+
+/* the set of channels */
+
+struct _channelref;
+
+typedef struct _channelref {
+ int64_t id;
+ _PyChannelState *chan;
+ struct _channelref *next;
+ Py_ssize_t objcount;
+} _channelref;
+
+static _channelref *
+_channelref_new(int64_t id, _PyChannelState *chan)
+{
+ _channelref *ref = PyMem_NEW(_channelref, 1);
+ if (ref == NULL) {
+ return NULL;
+ }
+ ref->id = id;
+ ref->chan = chan;
+ ref->next = NULL;
+ ref->objcount = 0;
+ return ref;
+}
+
+//static void
+//_channelref_clear(_channelref *ref)
+//{
+// ref->id = -1;
+// ref->chan = NULL;
+// ref->next = NULL;
+// ref->objcount = 0;
+//}
+
+static void
+_channelref_free(_channelref *ref)
+{
+ if (ref->chan != NULL) {
+ _channel_clear_closing(ref->chan);
+ }
+ //_channelref_clear(ref);
+ PyMem_Free(ref);
+}
+
+static _channelref *
+_channelref_find(_channelref *first, int64_t id, _channelref **pprev)
+{
+ _channelref *prev = NULL;
+ _channelref *ref = first;
+ while (ref != NULL) {
+ if (ref->id == id) {
+ break;
+ }
+ prev = ref;
+ ref = ref->next;
+ }
+ if (pprev != NULL) {
+ *pprev = prev;
+ }
+ return ref;
+}
+
+typedef struct _channels {
+ PyThread_type_lock mutex;
+ _channelref *head;
+ int64_t numopen;
+ int64_t next_id;
+} _channels;
+
+static int
+_channels_init(_channels *channels)
+{
+ if (channels->mutex == NULL) {
+ channels->mutex = PyThread_allocate_lock();
+ if (channels->mutex == NULL) {
+ PyErr_SetString(ChannelError,
+ "can't initialize mutex for channel management");
+ return -1;
+ }
+ }
+ channels->head = NULL;
+ channels->numopen = 0;
+ channels->next_id = 0;
+ return 0;
+}
+
+static int64_t
+_channels_next_id(_channels *channels) // needs lock
+{
+ int64_t id = channels->next_id;
+ if (id < 0) {
+ /* overflow */
+ PyErr_SetString(ChannelError,
+ "failed to get a channel ID");
+ return -1;
+ }
+ channels->next_id += 1;
+ return id;
+}
+
+static _PyChannelState *
+_channels_lookup(_channels *channels, int64_t id, PyThread_type_lock *pmutex)
+{
+ _PyChannelState *chan = NULL;
+ PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
+ if (pmutex != NULL) {
+ *pmutex = NULL;
+ }
+
+ _channelref *ref = _channelref_find(channels->head, id, NULL);
+ if (ref == NULL) {
+ PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", id);
+ goto done;
+ }
+ if (ref->chan == NULL || !ref->chan->open) {
+ PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", id);
+ goto done;
+ }
+
+ if (pmutex != NULL) {
+ // The mutex will be closed by the caller.
+ *pmutex = channels->mutex;
+ }
+
+ chan = ref->chan;
+done:
+ if (pmutex == NULL || *pmutex == NULL) {
+ PyThread_release_lock(channels->mutex);
+ }
+ return chan;
+}
+
+static int64_t
+_channels_add(_channels *channels, _PyChannelState *chan)
+{
+ int64_t cid = -1;
+ PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
+
+ // Create a new ref.
+ int64_t id = _channels_next_id(channels);
+ if (id < 0) {
+ goto done;
+ }
+ _channelref *ref = _channelref_new(id, chan);
+ if (ref == NULL) {
+ goto done;
+ }
+
+ // Add it to the list.
+ // We assume that the channel is a new one (not already in the list).
+ ref->next = channels->head;
+ channels->head = ref;
+ channels->numopen += 1;
+
+ cid = id;
+done:
+ PyThread_release_lock(channels->mutex);
+ return cid;
+}
+
+/* forward */
+static int _channel_set_closing(struct _channelref *, PyThread_type_lock);
+
+static int
+_channels_close(_channels *channels, int64_t cid, _PyChannelState **pchan,
+ int end, int force)
+{
+ int res = -1;
+ PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
+ if (pchan != NULL) {
+ *pchan = NULL;
+ }
+
+ _channelref *ref = _channelref_find(channels->head, cid, NULL);
+ if (ref == NULL) {
+ PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", cid);
+ goto done;
+ }
+
+ if (ref->chan == NULL) {
+ PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", cid);
+ goto done;
+ }
+ else if (!force && end == CHANNEL_SEND && ref->chan->closing != NULL) {
+ PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", cid);
+ goto done;
+ }
+ else {
+ if (_channel_close_all(ref->chan, end, force) != 0) {
+ if (end == CHANNEL_SEND &&
+ PyErr_ExceptionMatches(ChannelNotEmptyError)) {
+ if (ref->chan->closing != NULL) {
+ PyErr_Format(ChannelClosedError,
+ "channel %" PRId64 " closed", cid);
+ goto done;
+ }
+ // Mark the channel as closing and return. The channel
+ // will be cleaned up in _channel_next().
+ PyErr_Clear();
+ if (_channel_set_closing(ref, channels->mutex) != 0) {
+ goto done;
+ }
+ if (pchan != NULL) {
+ *pchan = ref->chan;
+ }
+ res = 0;
+ }
+ goto done;
+ }
+ if (pchan != NULL) {
+ *pchan = ref->chan;
+ }
+ else {
+ _channel_free(ref->chan);
+ }
+ ref->chan = NULL;
+ }
+
+ res = 0;
+done:
+ PyThread_release_lock(channels->mutex);
+ return res;
+}
+
+static void
+_channels_remove_ref(_channels *channels, _channelref *ref, _channelref *prev,
+ _PyChannelState **pchan)
+{
+ if (ref == channels->head) {
+ channels->head = ref->next;
+ }
+ else {
+ prev->next = ref->next;
+ }
+ channels->numopen -= 1;
+
+ if (pchan != NULL) {
+ *pchan = ref->chan;
+ }
+ _channelref_free(ref);
+}
+
+static int
+_channels_remove(_channels *channels, int64_t id, _PyChannelState **pchan)
+{
+ int res = -1;
+ PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
+
+ if (pchan != NULL) {
+ *pchan = NULL;
+ }
+
+ _channelref *prev = NULL;
+ _channelref *ref = _channelref_find(channels->head, id, &prev);
+ if (ref == NULL) {
+ PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", id);
+ goto done;
+ }
+
+ _channels_remove_ref(channels, ref, prev, pchan);
+
+ res = 0;
+done:
+ PyThread_release_lock(channels->mutex);
+ return res;
+}
+
+static int
+_channels_add_id_object(_channels *channels, int64_t id)
+{
+ int res = -1;
+ PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
+
+ _channelref *ref = _channelref_find(channels->head, id, NULL);
+ if (ref == NULL) {
+ PyErr_Format(ChannelNotFoundError, "channel %" PRId64 " not found", id);
+ goto done;
+ }
+ ref->objcount += 1;
+
+ res = 0;
+done:
+ PyThread_release_lock(channels->mutex);
+ return res;
+}
+
+static void
+_channels_drop_id_object(_channels *channels, int64_t id)
+{
+ PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
+
+ _channelref *prev = NULL;
+ _channelref *ref = _channelref_find(channels->head, id, &prev);
+ if (ref == NULL) {
+ // Already destroyed.
+ goto done;
+ }
+ ref->objcount -= 1;
+
+ // Destroy if no longer used.
+ if (ref->objcount == 0) {
+ _PyChannelState *chan = NULL;
+ _channels_remove_ref(channels, ref, prev, &chan);
+ if (chan != NULL) {
+ _channel_free(chan);
+ }
+ }
+
+done:
+ PyThread_release_lock(channels->mutex);
+}
+
+static int64_t *
+_channels_list_all(_channels *channels, int64_t *count)
+{
+ int64_t *cids = NULL;
+ PyThread_acquire_lock(channels->mutex, WAIT_LOCK);
+ int64_t *ids = PyMem_NEW(int64_t, (Py_ssize_t)(channels->numopen));
+ if (ids == NULL) {
+ goto done;
+ }
+ _channelref *ref = channels->head;
+ for (int64_t i=0; ref != NULL; ref = ref->next, i++) {
+ ids[i] = ref->id;
+ }
+ *count = channels->numopen;
+
+ cids = ids;
+done:
+ PyThread_release_lock(channels->mutex);
+ return cids;
+}
+
+/* support for closing non-empty channels */
+
+struct _channel_closing {
+ struct _channelref *ref;
+};
+
+static int
+_channel_set_closing(struct _channelref *ref, PyThread_type_lock mutex) {
+ struct _channel *chan = ref->chan;
+ if (chan == NULL) {
+ // already closed
+ return 0;
+ }
+ int res = -1;
+ PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
+ if (chan->closing != NULL) {
+ PyErr_SetString(ChannelClosedError, "channel closed");
+ goto done;
+ }
+ chan->closing = PyMem_NEW(struct _channel_closing, 1);
+ if (chan->closing == NULL) {
+ goto done;
+ }
+ chan->closing->ref = ref;
+
+ res = 0;
+done:
+ PyThread_release_lock(chan->mutex);
+ return res;
+}
+
+static void
+_channel_clear_closing(struct _channel *chan) {
+ PyThread_acquire_lock(chan->mutex, WAIT_LOCK);
+ if (chan->closing != NULL) {
+ PyMem_Free(chan->closing);
+ chan->closing = NULL;
+ }
+ PyThread_release_lock(chan->mutex);
+}
+
+static void
+_channel_finish_closing(struct _channel *chan) {
+ struct _channel_closing *closing = chan->closing;
+ if (closing == NULL) {
+ return;
+ }
+ _channelref *ref = closing->ref;
+ _channel_clear_closing(chan);
+ // Do the things that would have been done in _channels_close().
+ ref->chan = NULL;
+ _channel_free(chan);
+}
+
+/* "high"-level channel-related functions */
+
+static int64_t
+_channel_create(_channels *channels)
+{
+ _PyChannelState *chan = _channel_new();
+ if (chan == NULL) {
+ return -1;
+ }
+ int64_t id = _channels_add(channels, chan);
+ if (id < 0) {
+ _channel_free(chan);
+ return -1;
+ }
+ return id;
+}
+
+static int
+_channel_destroy(_channels *channels, int64_t id)
+{
+ _PyChannelState *chan = NULL;
+ if (_channels_remove(channels, id, &chan) != 0) {
+ return -1;
+ }
+ if (chan != NULL) {
+ _channel_free(chan);
+ }
+ return 0;
+}
+
+static int
+_channel_send(_channels *channels, int64_t id, PyObject *obj)
+{
+ PyInterpreterState *interp = _get_current();
+ if (interp == NULL) {
+ return -1;
+ }
+
+ // Look up the channel.
+ PyThread_type_lock mutex = NULL;
+ _PyChannelState *chan = _channels_lookup(channels, id, &mutex);
+ if (chan == NULL) {
+ return -1;
+ }
+ // Past this point we are responsible for releasing the mutex.
+
+ if (chan->closing != NULL) {
+ PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", id);
+ PyThread_release_lock(mutex);
+ return -1;
+ }
+
+ // Convert the object to cross-interpreter data.
+ _PyCrossInterpreterData *data = PyMem_NEW(_PyCrossInterpreterData, 1);
+ if (data == NULL) {
+ PyThread_release_lock(mutex);
+ return -1;
+ }
+ if (_PyObject_GetCrossInterpreterData(obj, data) != 0) {
+ PyThread_release_lock(mutex);
+ PyMem_Free(data);
+ return -1;
+ }
+
+ // Add the data to the channel.
+ int res = _channel_add(chan, PyInterpreterState_GetID(interp), data);
+ PyThread_release_lock(mutex);
+ if (res != 0) {
+ _PyCrossInterpreterData_Release(data);
+ PyMem_Free(data);
+ return -1;
+ }
+
+ return 0;
+}
+
+static PyObject *
+_channel_recv(_channels *channels, int64_t id)
+{
+ PyInterpreterState *interp = _get_current();
+ if (interp == NULL) {
+ return NULL;
+ }
+
+ // Look up the channel.
+ PyThread_type_lock mutex = NULL;
+ _PyChannelState *chan = _channels_lookup(channels, id, &mutex);
+ if (chan == NULL) {
+ return NULL;
+ }
+ // Past this point we are responsible for releasing the mutex.
+
+ // Pop off the next item from the channel.
+ _PyCrossInterpreterData *data = _channel_next(chan, PyInterpreterState_GetID(interp));
+ PyThread_release_lock(mutex);
+ if (data == NULL) {
+ return NULL;
+ }
+
+ // Convert the data back to an object.
+ PyObject *obj = _PyCrossInterpreterData_NewObject(data);
+ _PyCrossInterpreterData_Release(data);
+ PyMem_Free(data);
+ if (obj == NULL) {
+ return NULL;
+ }
+
+ return obj;
+}
+
+static int
+_channel_drop(_channels *channels, int64_t id, int send, int recv)
+{
+ PyInterpreterState *interp = _get_current();
+ if (interp == NULL) {
+ return -1;
+ }
+
+ // Look up the channel.
+ PyThread_type_lock mutex = NULL;
+ _PyChannelState *chan = _channels_lookup(channels, id, &mutex);
+ if (chan == NULL) {
+ return -1;
+ }
+ // Past this point we are responsible for releasing the mutex.
+
+ // Close one or both of the two ends.
+ int res = _channel_close_interpreter(chan, PyInterpreterState_GetID(interp), send-recv);
+ PyThread_release_lock(mutex);
+ return res;
+}
+
+static int
+_channel_close(_channels *channels, int64_t id, int end, int force)
+{
+ return _channels_close(channels, id, NULL, end, force);
+}
+
+static int
+_channel_is_associated(_channels *channels, int64_t cid, int64_t interp,
+ int send)
+{
+ _PyChannelState *chan = _channels_lookup(channels, cid, NULL);
+ if (chan == NULL) {
+ return -1;
+ } else if (send && chan->closing != NULL) {
+ PyErr_Format(ChannelClosedError, "channel %" PRId64 " closed", cid);
+ return -1;
+ }
+
+ _channelend *end = _channelend_find(send ? chan->ends->send : chan->ends->recv,
+ interp, NULL);
+
+ return (end != NULL && end->open);
+}
+
+/* ChannelID class */
+
+static PyTypeObject ChannelIDtype;
+
+typedef struct channelid {
+ PyObject_HEAD
+ int64_t id;
+ int end;
+ int resolve;
+ _channels *channels;
+} channelid;
+
+static int
+channel_id_converter(PyObject *arg, void *ptr)
+{
+ int64_t cid;
+ if (PyObject_TypeCheck(arg, &ChannelIDtype)) {
+ cid = ((channelid *)arg)->id;
+ }
+ else if (PyIndex_Check(arg)) {
+ cid = PyLong_AsLongLong(arg);
+ if (cid == -1 && PyErr_Occurred()) {
+ return 0;
+ }
+ if (cid < 0) {
+ PyErr_Format(PyExc_ValueError,
+ "channel ID must be a non-negative int, got %R", arg);
+ return 0;
+ }
+ }
+ else {
+ PyErr_Format(PyExc_TypeError,
+ "channel ID must be an int, got %.100s",
+ Py_TYPE(arg)->tp_name);
+ return 0;
+ }
+ *(int64_t *)ptr = cid;
+ return 1;
+}
+
+static channelid *
+newchannelid(PyTypeObject *cls, int64_t cid, int end, _channels *channels,
+ int force, int resolve)
+{
+ channelid *self = PyObject_New(channelid, cls);
+ if (self == NULL) {
+ return NULL;
+ }
+ self->id = cid;
+ self->end = end;
+ self->resolve = resolve;
+ self->channels = channels;
+
+ if (_channels_add_id_object(channels, cid) != 0) {
+ if (force && PyErr_ExceptionMatches(ChannelNotFoundError)) {
+ PyErr_Clear();
+ }
+ else {
+ Py_DECREF((PyObject *)self);
+ return NULL;
+ }
+ }
+
+ return self;
+}
+
+static _channels * _global_channels(void);
+
+static PyObject *
+channelid_new(PyTypeObject *cls, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"id", "send", "recv", "force", "_resolve", NULL};
+ int64_t cid;
+ int send = -1;
+ int recv = -1;
+ int force = 0;
+ int resolve = 0;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O&|$pppp:ChannelID.__new__", kwlist,
+ channel_id_converter, &cid, &send, &recv, &force, &resolve))
+ return NULL;
+
+ // Handle "send" and "recv".
+ if (send == 0 && recv == 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "'send' and 'recv' cannot both be False");
+ return NULL;
+ }
+
+ int end = 0;
+ if (send == 1) {
+ if (recv == 0 || recv == -1) {
+ end = CHANNEL_SEND;
+ }
+ }
+ else if (recv == 1) {
+ end = CHANNEL_RECV;
+ }
+
+ return (PyObject *)newchannelid(cls, cid, end, _global_channels(),
+ force, resolve);
+}
+
+static void
+channelid_dealloc(PyObject *v)
+{
+ int64_t cid = ((channelid *)v)->id;
+ _channels *channels = ((channelid *)v)->channels;
+ Py_TYPE(v)->tp_free(v);
+
+ _channels_drop_id_object(channels, cid);
+}
+
+static PyObject *
+channelid_repr(PyObject *self)
+{
+ PyTypeObject *type = Py_TYPE(self);
+ const char *name = _PyType_Name(type);
+
+ channelid *cid = (channelid *)self;
+ const char *fmt;
+ if (cid->end == CHANNEL_SEND) {
+ fmt = "%s(%" PRId64 ", send=True)";
+ }
+ else if (cid->end == CHANNEL_RECV) {
+ fmt = "%s(%" PRId64 ", recv=True)";
+ }
+ else {
+ fmt = "%s(%" PRId64 ")";
+ }
+ return PyUnicode_FromFormat(fmt, name, cid->id);
+}
+
+static PyObject *
+channelid_str(PyObject *self)
+{
+ channelid *cid = (channelid *)self;
+ return PyUnicode_FromFormat("%" PRId64 "", cid->id);
+}
+
+static PyObject *
+channelid_int(PyObject *self)
+{
+ channelid *cid = (channelid *)self;
+ return PyLong_FromLongLong(cid->id);
+}
+
+static PyNumberMethods channelid_as_number = {
+ 0, /* nb_add */
+ 0, /* nb_subtract */
+ 0, /* nb_multiply */
+ 0, /* nb_remainder */
+ 0, /* nb_divmod */
+ 0, /* nb_power */
+ 0, /* nb_negative */
+ 0, /* nb_positive */
+ 0, /* nb_absolute */
+ 0, /* nb_bool */
+ 0, /* nb_invert */
+ 0, /* nb_lshift */
+ 0, /* nb_rshift */
+ 0, /* nb_and */
+ 0, /* nb_xor */
+ 0, /* nb_or */
+ (unaryfunc)channelid_int, /* nb_int */
+ 0, /* nb_reserved */
+ 0, /* nb_float */
+
+ 0, /* nb_inplace_add */
+ 0, /* nb_inplace_subtract */
+ 0, /* nb_inplace_multiply */
+ 0, /* nb_inplace_remainder */
+ 0, /* nb_inplace_power */
+ 0, /* nb_inplace_lshift */
+ 0, /* nb_inplace_rshift */
+ 0, /* nb_inplace_and */
+ 0, /* nb_inplace_xor */
+ 0, /* nb_inplace_or */
+
+ 0, /* nb_floor_divide */
+ 0, /* nb_true_divide */
+ 0, /* nb_inplace_floor_divide */
+ 0, /* nb_inplace_true_divide */
+
+ (unaryfunc)channelid_int, /* nb_index */
+};
+
+static Py_hash_t
+channelid_hash(PyObject *self)
+{
+ channelid *cid = (channelid *)self;
+ PyObject *id = PyLong_FromLongLong(cid->id);
+ if (id == NULL) {
+ return -1;
+ }
+ Py_hash_t hash = PyObject_Hash(id);
+ Py_DECREF(id);
+ return hash;
+}
+
+static PyObject *
+channelid_richcompare(PyObject *self, PyObject *other, int op)
+{
+ if (op != Py_EQ && op != Py_NE) {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ if (!PyObject_TypeCheck(self, &ChannelIDtype)) {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ channelid *cid = (channelid *)self;
+ int equal;
+ if (PyObject_TypeCheck(other, &ChannelIDtype)) {
+ channelid *othercid = (channelid *)other;
+ equal = (cid->end == othercid->end) && (cid->id == othercid->id);
+ }
+ else if (PyLong_Check(other)) {
+ /* Fast path */
+ int overflow;
+ long long othercid = PyLong_AsLongLongAndOverflow(other, &overflow);
+ if (othercid == -1 && PyErr_Occurred()) {
+ return NULL;
+ }
+ equal = !overflow && (othercid >= 0) && (cid->id == othercid);
+ }
+ else if (PyNumber_Check(other)) {
+ PyObject *pyid = PyLong_FromLongLong(cid->id);
+ if (pyid == NULL) {
+ return NULL;
+ }
+ PyObject *res = PyObject_RichCompare(pyid, other, op);
+ Py_DECREF(pyid);
+ return res;
+ }
+ else {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ if ((op == Py_EQ && equal) || (op == Py_NE && !equal)) {
+ Py_RETURN_TRUE;
+ }
+ Py_RETURN_FALSE;
+}
+
+static PyObject *
+_channel_from_cid(PyObject *cid, int end)
+{
+ PyObject *highlevel = PyImport_ImportModule("interpreters");
+ if (highlevel == NULL) {
+ PyErr_Clear();
+ highlevel = PyImport_ImportModule("test.support.interpreters");
+ if (highlevel == NULL) {
+ return NULL;
+ }
+ }
+ const char *clsname = (end == CHANNEL_RECV) ? "RecvChannel" :
+ "SendChannel";
+ PyObject *cls = PyObject_GetAttrString(highlevel, clsname);
+ Py_DECREF(highlevel);
+ if (cls == NULL) {
+ return NULL;
+ }
+ PyObject *chan = PyObject_CallFunctionObjArgs(cls, cid, NULL);
+ Py_DECREF(cls);
+ if (chan == NULL) {
+ return NULL;
+ }
+ return chan;
+}
+
+struct _channelid_xid {
+ int64_t id;
+ int end;
+ int resolve;
+};
+
+static PyObject *
+_channelid_from_xid(_PyCrossInterpreterData *data)
+{
+ struct _channelid_xid *xid = (struct _channelid_xid *)data->data;
+ // Note that we do not preserve the "resolve" flag.
+ PyObject *cid = (PyObject *)newchannelid(&ChannelIDtype, xid->id, xid->end,
+ _global_channels(), 0, 0);
+ if (xid->end == 0) {
+ return cid;
+ }
+ if (!xid->resolve) {
+ return cid;
+ }
+
+ /* Try returning a high-level channel end but fall back to the ID. */
+ PyObject *chan = _channel_from_cid(cid, xid->end);
+ if (chan == NULL) {
+ PyErr_Clear();
+ return cid;
+ }
+ Py_DECREF(cid);
+ return chan;
+}
+
+static int
+_channelid_shared(PyObject *obj, _PyCrossInterpreterData *data)
+{
+ struct _channelid_xid *xid = PyMem_NEW(struct _channelid_xid, 1);
+ if (xid == NULL) {
+ return -1;
+ }
+ xid->id = ((channelid *)obj)->id;
+ xid->end = ((channelid *)obj)->end;
+ xid->resolve = ((channelid *)obj)->resolve;
+
+ data->data = xid;
+ Py_INCREF(obj);
+ data->obj = obj;
+ data->new_object = _channelid_from_xid;
+ data->free = PyMem_Free;
+ return 0;
+}
+
+static PyObject *
+channelid_end(PyObject *self, void *end)
+{
+ int force = 1;
+ channelid *cid = (channelid *)self;
+ if (end != NULL) {
+ return (PyObject *)newchannelid(Py_TYPE(self), cid->id, *(int *)end,
+ cid->channels, force, cid->resolve);
+ }
+
+ if (cid->end == CHANNEL_SEND) {
+ return PyUnicode_InternFromString("send");
+ }
+ if (cid->end == CHANNEL_RECV) {
+ return PyUnicode_InternFromString("recv");
+ }
+ return PyUnicode_InternFromString("both");
+}
+
+static int _channelid_end_send = CHANNEL_SEND;
+static int _channelid_end_recv = CHANNEL_RECV;
+
+static PyGetSetDef channelid_getsets[] = {
+ {"end", (getter)channelid_end, NULL,
+ PyDoc_STR("'send', 'recv', or 'both'")},
+ {"send", (getter)channelid_end, NULL,
+ PyDoc_STR("the 'send' end of the channel"), &_channelid_end_send},
+ {"recv", (getter)channelid_end, NULL,
+ PyDoc_STR("the 'recv' end of the channel"), &_channelid_end_recv},
+ {NULL}
+};
+
+PyDoc_STRVAR(channelid_doc,
+"A channel ID identifies a channel and may be used as an int.");
+
+static PyTypeObject ChannelIDtype = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ "_xxsubinterpreters.ChannelID", /* tp_name */
+ sizeof(channelid), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ (destructor)channelid_dealloc, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_as_async */
+ (reprfunc)channelid_repr, /* tp_repr */
+ &channelid_as_number, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ channelid_hash, /* tp_hash */
+ 0, /* tp_call */
+ (reprfunc)channelid_str, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ channelid_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ channelid_richcompare, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ 0, /* tp_methods */
+ 0, /* tp_members */
+ channelid_getsets, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ // Note that we do not set tp_new to channelid_new. Instead we
+ // set it to NULL, meaning it cannot be instantiated from Python
+ // code. We do this because there is a strong relationship between
+ // channel IDs and the channel lifecycle, so this limitation avoids
+ // related complications.
+ NULL, /* tp_new */
+};
+
+
+/* interpreter-specific code ************************************************/
+
+static PyObject * RunFailedError = NULL;
+
+static int
+interp_exceptions_init(PyObject *ns)
+{
+ // XXX Move the exceptions into per-module memory?
+
+ if (RunFailedError == NULL) {
+ // An uncaught exception came out of interp_run_string().
+ RunFailedError = PyErr_NewException("_xxsubinterpreters.RunFailedError",
+ PyExc_RuntimeError, NULL);
+ if (RunFailedError == NULL) {
+ return -1;
+ }
+ if (PyDict_SetItemString(ns, "RunFailedError", RunFailedError) != 0) {
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static int
+_is_running(PyInterpreterState *interp)
+{
+ PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
+ if (PyThreadState_Next(tstate) != NULL) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "interpreter has more than one thread");
+ return -1;
+ }
+
+ assert(!PyErr_Occurred());
+ PyFrameObject *frame = PyThreadState_GetFrame(tstate);
+ if (frame == NULL) {
+ return 0;
+ }
+
+ int executing = (int)(frame->f_executing);
+ Py_DECREF(frame);
+
+ return executing;
+}
+
+static int
+_ensure_not_running(PyInterpreterState *interp)
+{
+ int is_running = _is_running(interp);
+ if (is_running < 0) {
+ return -1;
+ }
+ if (is_running) {
+ PyErr_Format(PyExc_RuntimeError, "interpreter already running");
+ return -1;
+ }
+ return 0;
+}
+
+static int
+_run_script(PyInterpreterState *interp, const char *codestr,
+ _sharedns *shared, _sharedexception **exc)
+{
+ PyObject *exctype = NULL;
+ PyObject *excval = NULL;
+ PyObject *tb = NULL;
+
+ PyObject *main_mod = _PyInterpreterState_GetMainModule(interp);
+ if (main_mod == NULL) {
+ goto error;
+ }
+ PyObject *ns = PyModule_GetDict(main_mod); // borrowed
+ Py_DECREF(main_mod);
+ if (ns == NULL) {
+ goto error;
+ }
+ Py_INCREF(ns);
+
+ // Apply the cross-interpreter data.
+ if (shared != NULL) {
+ if (_sharedns_apply(shared, ns) != 0) {
+ Py_DECREF(ns);
+ goto error;
+ }
+ }
+
+ // Run the string (see PyRun_SimpleStringFlags).
+ PyObject *result = PyRun_StringFlags(codestr, Py_file_input, ns, ns, NULL);
+ Py_DECREF(ns);
+ if (result == NULL) {
+ goto error;
+ }
+ else {
+ Py_DECREF(result); // We throw away the result.
+ }
+
+ *exc = NULL;
+ return 0;
+
+error:
+ PyErr_Fetch(&exctype, &excval, &tb);
+
+ _sharedexception *sharedexc = _sharedexception_bind(exctype, excval, tb);
+ Py_XDECREF(exctype);
+ Py_XDECREF(excval);
+ Py_XDECREF(tb);
+ if (sharedexc == NULL) {
+ fprintf(stderr, "RunFailedError: script raised an uncaught exception");
+ PyErr_Clear();
+ sharedexc = NULL;
+ }
+ else {
+ assert(!PyErr_Occurred());
+ }
+ *exc = sharedexc;
+ return -1;
+}
+
+static int
+_run_script_in_interpreter(PyInterpreterState *interp, const char *codestr,
+ PyObject *shareables)
+{
+ if (_ensure_not_running(interp) < 0) {
+ return -1;
+ }
+
+ _sharedns *shared = _get_shared_ns(shareables);
+ if (shared == NULL && PyErr_Occurred()) {
+ return -1;
+ }
+
+ // Switch to interpreter.
+ PyThreadState *save_tstate = NULL;
+ if (interp != PyInterpreterState_Get()) {
+ // XXX Using the "head" thread isn't strictly correct.
+ PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
+ // XXX Possible GILState issues?
+ save_tstate = PyThreadState_Swap(tstate);
+ }
+
+ // Run the script.
+ _sharedexception *exc = NULL;
+ int result = _run_script(interp, codestr, shared, &exc);
+
+ // Switch back.
+ if (save_tstate != NULL) {
+ PyThreadState_Swap(save_tstate);
+ }
+
+ // Propagate any exception out to the caller.
+ if (exc != NULL) {
+ _sharedexception_apply(exc, RunFailedError);
+ _sharedexception_free(exc);
+ }
+ else if (result != 0) {
+ // We were unable to allocate a shared exception.
+ PyErr_NoMemory();
+ }
+
+ if (shared != NULL) {
+ _sharedns_free(shared);
+ }
+
+ return result;
+}
+
+
+/* module level code ********************************************************/
+
+/* globals is the process-global state for the module. It holds all
+ the data that we need to share between interpreters, so it cannot
+ hold PyObject values. */
+static struct globals {
+ _channels channels;
+} _globals = {{0}};
+
+static int
+_init_globals(void)
+{
+ if (_channels_init(&_globals.channels) != 0) {
+ return -1;
+ }
+ return 0;
+}
+
+static _channels *
+_global_channels(void) {
+ return &_globals.channels;
+}
+
+static PyObject *
+interp_create(PyObject *self, PyObject *args, PyObject *kwds)
+{
+
+ static char *kwlist[] = {"isolated", NULL};
+ int isolated = 1;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|$i:create", kwlist,
+ &isolated)) {
+ return NULL;
+ }
+
+ // Create and initialize the new interpreter.
+ PyThreadState *save_tstate = PyThreadState_Get();
+ // XXX Possible GILState issues?
+ PyThreadState *tstate = _Py_NewInterpreter(isolated);
+ PyThreadState_Swap(save_tstate);
+ if (tstate == NULL) {
+ /* Since no new thread state was created, there is no exception to
+ propagate; raise a fresh one after swapping in the old thread
+ state. */
+ PyErr_SetString(PyExc_RuntimeError, "interpreter creation failed");
+ return NULL;
+ }
+ PyInterpreterState *interp = PyThreadState_GetInterpreter(tstate);
+ PyObject *idobj = _PyInterpreterState_GetIDObject(interp);
+ if (idobj == NULL) {
+ // XXX Possible GILState issues?
+ save_tstate = PyThreadState_Swap(tstate);
+ Py_EndInterpreter(tstate);
+ PyThreadState_Swap(save_tstate);
+ return NULL;
+ }
+ _PyInterpreterState_RequireIDRef(interp, 1);
+ return idobj;
+}
+
+PyDoc_STRVAR(create_doc,
+"create() -> ID\n\
+\n\
+Create a new interpreter and return a unique generated ID.");
+
+
+static PyObject *
+interp_destroy(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"id", NULL};
+ PyObject *id;
+ // XXX Use "L" for id?
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O:destroy", kwlist, &id)) {
+ return NULL;
+ }
+
+ // Look up the interpreter.
+ PyInterpreterState *interp = _PyInterpreterID_LookUp(id);
+ if (interp == NULL) {
+ return NULL;
+ }
+
+ // Ensure we don't try to destroy the current interpreter.
+ PyInterpreterState *current = _get_current();
+ if (current == NULL) {
+ return NULL;
+ }
+ if (interp == current) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "cannot destroy the current interpreter");
+ return NULL;
+ }
+
+ // Ensure the interpreter isn't running.
+ /* XXX We *could* support destroying a running interpreter but
+ aren't going to worry about it for now. */
+ if (_ensure_not_running(interp) < 0) {
+ return NULL;
+ }
+
+ // Destroy the interpreter.
+ PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
+ // XXX Possible GILState issues?
+ PyThreadState *save_tstate = PyThreadState_Swap(tstate);
+ Py_EndInterpreter(tstate);
+ PyThreadState_Swap(save_tstate);
+
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(destroy_doc,
+"destroy(id)\n\
+\n\
+Destroy the identified interpreter.\n\
+\n\
+Attempting to destroy the current interpreter results in a RuntimeError.\n\
+So does an unrecognized ID.");
+
+
+static PyObject *
+interp_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *ids, *id;
+ PyInterpreterState *interp;
+
+ ids = PyList_New(0);
+ if (ids == NULL) {
+ return NULL;
+ }
+
+ interp = PyInterpreterState_Head();
+ while (interp != NULL) {
+ id = _PyInterpreterState_GetIDObject(interp);
+ if (id == NULL) {
+ Py_DECREF(ids);
+ return NULL;
+ }
+ // insert at front of list
+ int res = PyList_Insert(ids, 0, id);
+ Py_DECREF(id);
+ if (res < 0) {
+ Py_DECREF(ids);
+ return NULL;
+ }
+
+ interp = PyInterpreterState_Next(interp);
+ }
+
+ return ids;
+}
+
+PyDoc_STRVAR(list_all_doc,
+"list_all() -> [ID]\n\
+\n\
+Return a list containing the ID of every existing interpreter.");
+
+
+static PyObject *
+interp_get_current(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyInterpreterState *interp =_get_current();
+ if (interp == NULL) {
+ return NULL;
+ }
+ return _PyInterpreterState_GetIDObject(interp);
+}
+
+PyDoc_STRVAR(get_current_doc,
+"get_current() -> ID\n\
+\n\
+Return the ID of current interpreter.");
+
+
+static PyObject *
+interp_get_main(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ // Currently, 0 is always the main interpreter.
+ int64_t id = 0;
+ return _PyInterpreterID_New(id);
+}
+
+PyDoc_STRVAR(get_main_doc,
+"get_main() -> ID\n\
+\n\
+Return the ID of main interpreter.");
+
+
+static PyObject *
+interp_run_string(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"id", "script", "shared", NULL};
+ PyObject *id, *code;
+ PyObject *shared = NULL;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "OU|O:run_string", kwlist,
+ &id, &code, &shared)) {
+ return NULL;
+ }
+
+ // Look up the interpreter.
+ PyInterpreterState *interp = _PyInterpreterID_LookUp(id);
+ if (interp == NULL) {
+ return NULL;
+ }
+
+ // Extract code.
+ Py_ssize_t size;
+ const char *codestr = PyUnicode_AsUTF8AndSize(code, &size);
+ if (codestr == NULL) {
+ return NULL;
+ }
+ if (strlen(codestr) != (size_t)size) {
+ PyErr_SetString(PyExc_ValueError,
+ "source code string cannot contain null bytes");
+ return NULL;
+ }
+
+ // Run the code in the interpreter.
+ if (_run_script_in_interpreter(interp, codestr, shared) != 0) {
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(run_string_doc,
+"run_string(id, script, shared)\n\
+\n\
+Execute the provided string in the identified interpreter.\n\
+\n\
+See PyRun_SimpleStrings.");
+
+
+static PyObject *
+object_is_shareable(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"obj", NULL};
+ PyObject *obj;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O:is_shareable", kwlist, &obj)) {
+ return NULL;
+ }
+
+ if (_PyObject_CheckCrossInterpreterData(obj) == 0) {
+ Py_RETURN_TRUE;
+ }
+ PyErr_Clear();
+ Py_RETURN_FALSE;
+}
+
+PyDoc_STRVAR(is_shareable_doc,
+"is_shareable(obj) -> bool\n\
+\n\
+Return True if the object's data may be shared between interpreters and\n\
+False otherwise.");
+
+
+static PyObject *
+interp_is_running(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"id", NULL};
+ PyObject *id;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O:is_running", kwlist, &id)) {
+ return NULL;
+ }
+
+ PyInterpreterState *interp = _PyInterpreterID_LookUp(id);
+ if (interp == NULL) {
+ return NULL;
+ }
+ int is_running = _is_running(interp);
+ if (is_running < 0) {
+ return NULL;
+ }
+ if (is_running) {
+ Py_RETURN_TRUE;
+ }
+ Py_RETURN_FALSE;
+}
+
+PyDoc_STRVAR(is_running_doc,
+"is_running(id) -> bool\n\
+\n\
+Return whether or not the identified interpreter is running.");
+
+static PyObject *
+channel_create(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ int64_t cid = _channel_create(&_globals.channels);
+ if (cid < 0) {
+ return NULL;
+ }
+ PyObject *id = (PyObject *)newchannelid(&ChannelIDtype, cid, 0,
+ &_globals.channels, 0, 0);
+ if (id == NULL) {
+ if (_channel_destroy(&_globals.channels, cid) != 0) {
+ // XXX issue a warning?
+ }
+ return NULL;
+ }
+ assert(((channelid *)id)->channels != NULL);
+ return id;
+}
+
+PyDoc_STRVAR(channel_create_doc,
+"channel_create() -> cid\n\
+\n\
+Create a new cross-interpreter channel and return a unique generated ID.");
+
+static PyObject *
+channel_destroy(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"cid", NULL};
+ int64_t cid;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&:channel_destroy", kwlist,
+ channel_id_converter, &cid)) {
+ return NULL;
+ }
+
+ if (_channel_destroy(&_globals.channels, cid) != 0) {
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(channel_destroy_doc,
+"channel_destroy(cid)\n\
+\n\
+Close and finalize the channel. Afterward attempts to use the channel\n\
+will behave as though it never existed.");
+
+static PyObject *
+channel_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ int64_t count = 0;
+ int64_t *cids = _channels_list_all(&_globals.channels, &count);
+ if (cids == NULL) {
+ if (count == 0) {
+ return PyList_New(0);
+ }
+ return NULL;
+ }
+ PyObject *ids = PyList_New((Py_ssize_t)count);
+ if (ids == NULL) {
+ goto finally;
+ }
+ int64_t *cur = cids;
+ for (int64_t i=0; i < count; cur++, i++) {
+ PyObject *id = (PyObject *)newchannelid(&ChannelIDtype, *cur, 0,
+ &_globals.channels, 0, 0);
+ if (id == NULL) {
+ Py_DECREF(ids);
+ ids = NULL;
+ break;
+ }
+ PyList_SET_ITEM(ids, i, id);
+ }
+
+finally:
+ PyMem_Free(cids);
+ return ids;
+}
+
+PyDoc_STRVAR(channel_list_all_doc,
+"channel_list_all() -> [cid]\n\
+\n\
+Return the list of all IDs for active channels.");
+
+static PyObject *
+channel_list_interpreters(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"cid", "send", NULL};
+ int64_t cid; /* Channel ID */
+ int send = 0; /* Send or receive end? */
+ int64_t id;
+ PyObject *ids, *id_obj;
+ PyInterpreterState *interp;
+
+ if (!PyArg_ParseTupleAndKeywords(
+ args, kwds, "O&$p:channel_list_interpreters",
+ kwlist, channel_id_converter, &cid, &send)) {
+ return NULL;
+ }
+
+ ids = PyList_New(0);
+ if (ids == NULL) {
+ goto except;
+ }
+
+ interp = PyInterpreterState_Head();
+ while (interp != NULL) {
+ id = PyInterpreterState_GetID(interp);
+ assert(id >= 0);
+ int res = _channel_is_associated(&_globals.channels, cid, id, send);
+ if (res < 0) {
+ goto except;
+ }
+ if (res) {
+ id_obj = _PyInterpreterState_GetIDObject(interp);
+ if (id_obj == NULL) {
+ goto except;
+ }
+ res = PyList_Insert(ids, 0, id_obj);
+ Py_DECREF(id_obj);
+ if (res < 0) {
+ goto except;
+ }
+ }
+ interp = PyInterpreterState_Next(interp);
+ }
+
+ goto finally;
+
+except:
+ Py_XDECREF(ids);
+ ids = NULL;
+
+finally:
+ return ids;
+}
+
+PyDoc_STRVAR(channel_list_interpreters_doc,
+"channel_list_interpreters(cid, *, send) -> [id]\n\
+\n\
+Return the list of all interpreter IDs associated with an end of the channel.\n\
+\n\
+The 'send' argument should be a boolean indicating whether to use the send or\n\
+receive end.");
+
+
+static PyObject *
+channel_send(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"cid", "obj", NULL};
+ int64_t cid;
+ PyObject *obj;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&O:channel_send", kwlist,
+ channel_id_converter, &cid, &obj)) {
+ return NULL;
+ }
+
+ if (_channel_send(&_globals.channels, cid, obj) != 0) {
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(channel_send_doc,
+"channel_send(cid, obj)\n\
+\n\
+Add the object's data to the channel's queue.");
+
+static PyObject *
+channel_recv(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"cid", "default", NULL};
+ int64_t cid;
+ PyObject *dflt = NULL;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&|O:channel_recv", kwlist,
+ channel_id_converter, &cid, &dflt)) {
+ return NULL;
+ }
+ Py_XINCREF(dflt);
+
+ PyObject *obj = _channel_recv(&_globals.channels, cid);
+ if (obj != NULL) {
+ Py_XDECREF(dflt);
+ return obj;
+ } else if (PyErr_Occurred()) {
+ Py_XDECREF(dflt);
+ return NULL;
+ } else if (dflt != NULL) {
+ return dflt;
+ } else {
+ PyErr_Format(ChannelEmptyError, "channel %" PRId64 " is empty", cid);
+ return NULL;
+ }
+}
+
+PyDoc_STRVAR(channel_recv_doc,
+"channel_recv(cid, [default]) -> obj\n\
+\n\
+Return a new object from the data at the front of the channel's queue.\n\
+\n\
+If there is nothing to receive then raise ChannelEmptyError, unless\n\
+a default value is provided. In that case return it.");
+
+static PyObject *
+channel_close(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"cid", "send", "recv", "force", NULL};
+ int64_t cid;
+ int send = 0;
+ int recv = 0;
+ int force = 0;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O&|$ppp:channel_close", kwlist,
+ channel_id_converter, &cid, &send, &recv, &force)) {
+ return NULL;
+ }
+
+ if (_channel_close(&_globals.channels, cid, send-recv, force) != 0) {
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(channel_close_doc,
+"channel_close(cid, *, send=None, recv=None, force=False)\n\
+\n\
+Close the channel for all interpreters.\n\
+\n\
+If the channel is empty then the keyword args are ignored and both\n\
+ends are immediately closed. Otherwise, if 'force' is True then\n\
+all queued items are released and both ends are immediately\n\
+closed.\n\
+\n\
+If the channel is not empty *and* 'force' is False then following\n\
+happens:\n\
+\n\
+ * recv is True (regardless of send):\n\
+ - raise ChannelNotEmptyError\n\
+ * recv is None and send is None:\n\
+ - raise ChannelNotEmptyError\n\
+ * send is True and recv is not True:\n\
+ - fully close the 'send' end\n\
+ - close the 'recv' end to interpreters not already receiving\n\
+ - fully close it once empty\n\
+\n\
+Closing an already closed channel results in a ChannelClosedError.\n\
+\n\
+Once the channel's ID has no more ref counts in any interpreter\n\
+the channel will be destroyed.");
+
+static PyObject *
+channel_release(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ // Note that only the current interpreter is affected.
+ static char *kwlist[] = {"cid", "send", "recv", "force", NULL};
+ int64_t cid;
+ int send = 0;
+ int recv = 0;
+ int force = 0;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O&|$ppp:channel_release", kwlist,
+ channel_id_converter, &cid, &send, &recv, &force)) {
+ return NULL;
+ }
+ if (send == 0 && recv == 0) {
+ send = 1;
+ recv = 1;
+ }
+
+ // XXX Handle force is True.
+ // XXX Fix implicit release.
+
+ if (_channel_drop(&_globals.channels, cid, send, recv) != 0) {
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(channel_release_doc,
+"channel_release(cid, *, send=None, recv=None, force=True)\n\
+\n\
+Close the channel for the current interpreter. 'send' and 'recv'\n\
+(bool) may be used to indicate the ends to close. By default both\n\
+ends are closed. Closing an already closed end is a noop.");
+
+static PyObject *
+channel__channel_id(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ return channelid_new(&ChannelIDtype, args, kwds);
+}
+
+static PyMethodDef module_functions[] = {
+ {"create", (PyCFunction)(void(*)(void))interp_create,
+ METH_VARARGS | METH_KEYWORDS, create_doc},
+ {"destroy", (PyCFunction)(void(*)(void))interp_destroy,
+ METH_VARARGS | METH_KEYWORDS, destroy_doc},
+ {"list_all", interp_list_all,
+ METH_NOARGS, list_all_doc},
+ {"get_current", interp_get_current,
+ METH_NOARGS, get_current_doc},
+ {"get_main", interp_get_main,
+ METH_NOARGS, get_main_doc},
+ {"is_running", (PyCFunction)(void(*)(void))interp_is_running,
+ METH_VARARGS | METH_KEYWORDS, is_running_doc},
+ {"run_string", (PyCFunction)(void(*)(void))interp_run_string,
+ METH_VARARGS | METH_KEYWORDS, run_string_doc},
+
+ {"is_shareable", (PyCFunction)(void(*)(void))object_is_shareable,
+ METH_VARARGS | METH_KEYWORDS, is_shareable_doc},
+
+ {"channel_create", channel_create,
+ METH_NOARGS, channel_create_doc},
+ {"channel_destroy", (PyCFunction)(void(*)(void))channel_destroy,
+ METH_VARARGS | METH_KEYWORDS, channel_destroy_doc},
+ {"channel_list_all", channel_list_all,
+ METH_NOARGS, channel_list_all_doc},
+ {"channel_list_interpreters", (PyCFunction)(void(*)(void))channel_list_interpreters,
+ METH_VARARGS | METH_KEYWORDS, channel_list_interpreters_doc},
+ {"channel_send", (PyCFunction)(void(*)(void))channel_send,
+ METH_VARARGS | METH_KEYWORDS, channel_send_doc},
+ {"channel_recv", (PyCFunction)(void(*)(void))channel_recv,
+ METH_VARARGS | METH_KEYWORDS, channel_recv_doc},
+ {"channel_close", (PyCFunction)(void(*)(void))channel_close,
+ METH_VARARGS | METH_KEYWORDS, channel_close_doc},
+ {"channel_release", (PyCFunction)(void(*)(void))channel_release,
+ METH_VARARGS | METH_KEYWORDS, channel_release_doc},
+ {"_channel_id", (PyCFunction)(void(*)(void))channel__channel_id,
+ METH_VARARGS | METH_KEYWORDS, NULL},
+
+ {NULL, NULL} /* sentinel */
+};
+
+
+/* initialization function */
+
+PyDoc_STRVAR(module_doc,
+"This module provides primitive operations to manage Python interpreters.\n\
+The 'interpreters' module provides a more convenient interface.");
+
+static struct PyModuleDef interpretersmodule = {
+ PyModuleDef_HEAD_INIT,
+ "_xxsubinterpreters", /* m_name */
+ module_doc, /* m_doc */
+ -1, /* m_size */
+ module_functions, /* m_methods */
+ NULL, /* m_slots */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL /* m_free */
+};
+
+
+PyMODINIT_FUNC
+PyInit__xxsubinterpreters(void)
+{
+ if (_init_globals() != 0) {
+ return NULL;
+ }
+
+ /* Initialize types */
+ if (PyType_Ready(&ChannelIDtype) != 0) {
+ return NULL;
+ }
+
+ /* Create the module */
+ PyObject *module = PyModule_Create(&interpretersmodule);
+ if (module == NULL) {
+ return NULL;
+ }
+
+ /* Add exception types */
+ PyObject *ns = PyModule_GetDict(module); // borrowed
+ if (interp_exceptions_init(ns) != 0) {
+ return NULL;
+ }
+ if (channel_exceptions_init(ns) != 0) {
+ return NULL;
+ }
+
+ /* Add other types */
+ Py_INCREF(&ChannelIDtype);
+ if (PyDict_SetItemString(ns, "ChannelID", (PyObject *)&ChannelIDtype) != 0) {
+ return NULL;
+ }
+ Py_INCREF(&_PyInterpreterID_Type);
+ if (PyDict_SetItemString(ns, "InterpreterID", (PyObject *)&_PyInterpreterID_Type) != 0) {
+ return NULL;
+ }
+
+ if (_PyCrossInterpreterData_RegisterClass(&ChannelIDtype, _channelid_shared)) {
+ return NULL;
+ }
+
+ return module;
+}
diff --git a/contrib/tools/python3/src/Modules/_xxtestfuzz/_xxtestfuzz.c b/contrib/tools/python3/src/Modules/_xxtestfuzz/_xxtestfuzz.c
index 79cd215d91..e0694de671 100644
--- a/contrib/tools/python3/src/Modules/_xxtestfuzz/_xxtestfuzz.c
+++ b/contrib/tools/python3/src/Modules/_xxtestfuzz/_xxtestfuzz.c
@@ -44,5 +44,5 @@ static struct PyModuleDef _fuzzmodule = {
PyMODINIT_FUNC
PyInit__xxtestfuzz(void)
{
- return PyModule_Create(&_fuzzmodule);
+ return PyModule_Create(&_fuzzmodule);
}
diff --git a/contrib/tools/python3/src/Modules/_xxtestfuzz/fuzzer.c b/contrib/tools/python3/src/Modules/_xxtestfuzz/fuzzer.c
index 4dd447fcaa..6bd2c3aedc 100644
--- a/contrib/tools/python3/src/Modules/_xxtestfuzz/fuzzer.c
+++ b/contrib/tools/python3/src/Modules/_xxtestfuzz/fuzzer.c
@@ -28,15 +28,15 @@ static int fuzz_builtin_float(const char* data, size_t size) {
return 0;
}
-#define MAX_INT_TEST_SIZE 0x10000
-
+#define MAX_INT_TEST_SIZE 0x10000
+
/* Fuzz PyLong_FromUnicodeObject as a proxy for int(str). */
static int fuzz_builtin_int(const char* data, size_t size) {
- /* Ignore test cases with very long ints to avoid timeouts
- int("9" * 1000000) is not a very interesting test caase */
- if (size > MAX_INT_TEST_SIZE) {
- return 0;
- }
+ /* Ignore test cases with very long ints to avoid timeouts
+ int("9" * 1000000) is not a very interesting test caase */
+ if (size > MAX_INT_TEST_SIZE) {
+ return 0;
+ }
/* Pick a random valid base. (When the fuzzed function takes extra
parameters, it's somewhat normal to hash the input to generate those
parameters. We want to exercise all code paths, so we do so here.) */
@@ -79,320 +79,320 @@ static int fuzz_builtin_unicode(const char* data, size_t size) {
return 0;
}
-
-PyObject* struct_unpack_method = NULL;
-PyObject* struct_error = NULL;
-/* Called by LLVMFuzzerTestOneInput for initialization */
-static int init_struct_unpack() {
- /* Import struct.unpack */
- PyObject* struct_module = PyImport_ImportModule("struct");
- if (struct_module == NULL) {
- return 0;
- }
- struct_error = PyObject_GetAttrString(struct_module, "error");
- if (struct_error == NULL) {
- return 0;
- }
- struct_unpack_method = PyObject_GetAttrString(struct_module, "unpack");
- return struct_unpack_method != NULL;
-}
-/* Fuzz struct.unpack(x, y) */
-static int fuzz_struct_unpack(const char* data, size_t size) {
- /* Everything up to the first null byte is considered the
- format. Everything after is the buffer */
- const char* first_null = memchr(data, '\0', size);
- if (first_null == NULL) {
- return 0;
- }
-
- size_t format_length = first_null - data;
- size_t buffer_length = size - format_length - 1;
-
- PyObject* pattern = PyBytes_FromStringAndSize(data, format_length);
- if (pattern == NULL) {
- return 0;
- }
- PyObject* buffer = PyBytes_FromStringAndSize(first_null + 1, buffer_length);
- if (buffer == NULL) {
- Py_DECREF(pattern);
- return 0;
- }
-
- PyObject* unpacked = PyObject_CallFunctionObjArgs(
- struct_unpack_method, pattern, buffer, NULL);
- /* Ignore any overflow errors, these are easily triggered accidentally */
- if (unpacked == NULL && PyErr_ExceptionMatches(PyExc_OverflowError)) {
- PyErr_Clear();
- }
- /* The pascal format string will throw a negative size when passing 0
- like: struct.unpack('0p', b'') */
- if (unpacked == NULL && PyErr_ExceptionMatches(PyExc_SystemError)) {
- PyErr_Clear();
- }
- /* Ignore any struct.error exceptions, these can be caused by invalid
- formats or incomplete buffers both of which are common. */
- if (unpacked == NULL && PyErr_ExceptionMatches(struct_error)) {
- PyErr_Clear();
- }
-
- Py_XDECREF(unpacked);
- Py_DECREF(pattern);
- Py_DECREF(buffer);
- return 0;
-}
-
-
-#define MAX_JSON_TEST_SIZE 0x10000
-
-PyObject* json_loads_method = NULL;
-/* Called by LLVMFuzzerTestOneInput for initialization */
-static int init_json_loads() {
- /* Import json.loads */
- PyObject* json_module = PyImport_ImportModule("json");
- if (json_module == NULL) {
- return 0;
- }
- json_loads_method = PyObject_GetAttrString(json_module, "loads");
- return json_loads_method != NULL;
-}
-/* Fuzz json.loads(x) */
-static int fuzz_json_loads(const char* data, size_t size) {
- /* Since python supports arbitrarily large ints in JSON,
- long inputs can lead to timeouts on boring inputs like
- `json.loads("9" * 100000)` */
- if (size > MAX_JSON_TEST_SIZE) {
- return 0;
- }
- PyObject* input_bytes = PyBytes_FromStringAndSize(data, size);
- if (input_bytes == NULL) {
- return 0;
- }
- PyObject* parsed = PyObject_CallOneArg(json_loads_method, input_bytes);
- if (parsed == NULL) {
- /* Ignore ValueError as the fuzzer will more than likely
- generate some invalid json and values */
- if (PyErr_ExceptionMatches(PyExc_ValueError) ||
- /* Ignore RecursionError as the fuzzer generates long sequences of
- arrays such as `[[[...` */
- PyErr_ExceptionMatches(PyExc_RecursionError) ||
- /* Ignore unicode errors, invalid byte sequences are common */
- PyErr_ExceptionMatches(PyExc_UnicodeDecodeError)
- ) {
- PyErr_Clear();
- }
- }
- Py_DECREF(input_bytes);
- Py_XDECREF(parsed);
- return 0;
-}
-
-#define MAX_RE_TEST_SIZE 0x10000
-
-PyObject* sre_compile_method = NULL;
-PyObject* sre_error_exception = NULL;
-int SRE_FLAG_DEBUG = 0;
-/* Called by LLVMFuzzerTestOneInput for initialization */
-static int init_sre_compile() {
- /* Import sre_compile.compile and sre.error */
- PyObject* sre_compile_module = PyImport_ImportModule("sre_compile");
- if (sre_compile_module == NULL) {
- return 0;
- }
- sre_compile_method = PyObject_GetAttrString(sre_compile_module, "compile");
- if (sre_compile_method == NULL) {
- return 0;
- }
-
- PyObject* sre_constants = PyImport_ImportModule("sre_constants");
- if (sre_constants == NULL) {
- return 0;
- }
- sre_error_exception = PyObject_GetAttrString(sre_constants, "error");
- if (sre_error_exception == NULL) {
- return 0;
- }
- PyObject* debug_flag = PyObject_GetAttrString(sre_constants, "SRE_FLAG_DEBUG");
- if (debug_flag == NULL) {
- return 0;
- }
- SRE_FLAG_DEBUG = PyLong_AsLong(debug_flag);
- return 1;
-}
-/* Fuzz _sre.compile(x) */
-static int fuzz_sre_compile(const char* data, size_t size) {
- /* Ignore really long regex patterns that will timeout the fuzzer */
- if (size > MAX_RE_TEST_SIZE) {
- return 0;
- }
- /* We treat the first 2 bytes of the input as a number for the flags */
- if (size < 2) {
- return 0;
- }
- uint16_t flags = ((uint16_t*) data)[0];
- /* We remove the SRE_FLAG_DEBUG if present. This is because it
- prints to stdout which greatly decreases fuzzing speed */
- flags &= ~SRE_FLAG_DEBUG;
-
- /* Pull the pattern from the remaining bytes */
- PyObject* pattern_bytes = PyBytes_FromStringAndSize(data + 2, size - 2);
- if (pattern_bytes == NULL) {
- return 0;
- }
- PyObject* flags_obj = PyLong_FromUnsignedLong(flags);
- if (flags_obj == NULL) {
- Py_DECREF(pattern_bytes);
- return 0;
- }
-
- /* compiled = _sre.compile(data[2:], data[0:2] */
- PyObject* compiled = PyObject_CallFunctionObjArgs(
- sre_compile_method, pattern_bytes, flags_obj, NULL);
- /* Ignore ValueError as the fuzzer will more than likely
- generate some invalid combination of flags */
- if (compiled == NULL && PyErr_ExceptionMatches(PyExc_ValueError)) {
- PyErr_Clear();
- }
- /* Ignore some common errors thrown by sre_parse:
- Overflow, Assertion, Recursion and Index */
- if (compiled == NULL && (PyErr_ExceptionMatches(PyExc_OverflowError) ||
- PyErr_ExceptionMatches(PyExc_AssertionError) ||
- PyErr_ExceptionMatches(PyExc_RecursionError) ||
- PyErr_ExceptionMatches(PyExc_IndexError))
- ) {
- PyErr_Clear();
- }
- /* Ignore re.error */
- if (compiled == NULL && PyErr_ExceptionMatches(sre_error_exception)) {
- PyErr_Clear();
- }
-
- Py_DECREF(pattern_bytes);
- Py_DECREF(flags_obj);
- Py_XDECREF(compiled);
- return 0;
-}
-
-/* Some random patterns used to test re.match.
- Be careful not to add catostraphically slow regexes here, we want to
- exercise the matching code without causing timeouts.*/
-static const char* regex_patterns[] = {
- ".", "^", "abc", "abc|def", "^xxx$", "\\b", "()", "[a-zA-Z0-9]",
- "abc+", "[^A-Z]", "[x]", "(?=)", "a{z}", "a+b", "a*?", "a??", "a+?",
- "{}", "a{,}", "{", "}", "^\\(*\\d{3}\\)*( |-)*\\d{3}( |-)*\\d{4}$",
- "(?:a*)*", "a{1,2}?"
-};
-const size_t NUM_PATTERNS = sizeof(regex_patterns) / sizeof(regex_patterns[0]);
-PyObject** compiled_patterns = NULL;
-/* Called by LLVMFuzzerTestOneInput for initialization */
-static int init_sre_match() {
- PyObject* re_module = PyImport_ImportModule("re");
- if (re_module == NULL) {
- return 0;
- }
- compiled_patterns = (PyObject**) PyMem_RawMalloc(
- sizeof(PyObject*) * NUM_PATTERNS);
- if (compiled_patterns == NULL) {
- PyErr_NoMemory();
- return 0;
- }
-
- /* Precompile all the regex patterns on the first run for faster fuzzing */
- for (size_t i = 0; i < NUM_PATTERNS; i++) {
- PyObject* compiled = PyObject_CallMethod(
- re_module, "compile", "y", regex_patterns[i]);
- /* Bail if any of the patterns fail to compile */
- if (compiled == NULL) {
- return 0;
- }
- compiled_patterns[i] = compiled;
- }
- return 1;
-}
-/* Fuzz re.match(x) */
-static int fuzz_sre_match(const char* data, size_t size) {
- if (size < 1 || size > MAX_RE_TEST_SIZE) {
- return 0;
- }
- /* Use the first byte as a uint8_t specifying the index of the
- regex to use */
- unsigned char idx = (unsigned char) data[0];
- idx = idx % NUM_PATTERNS;
-
- /* Pull the string to match from the remaining bytes */
- PyObject* to_match = PyBytes_FromStringAndSize(data + 1, size - 1);
- if (to_match == NULL) {
- return 0;
- }
-
- PyObject* pattern = compiled_patterns[idx];
- PyObject* match_callable = PyObject_GetAttrString(pattern, "match");
-
- PyObject* matches = PyObject_CallOneArg(match_callable, to_match);
-
- Py_XDECREF(matches);
- Py_DECREF(match_callable);
- Py_DECREF(to_match);
- return 0;
-}
-
-#define MAX_CSV_TEST_SIZE 0x10000
-PyObject* csv_module = NULL;
-PyObject* csv_error = NULL;
-/* Called by LLVMFuzzerTestOneInput for initialization */
-static int init_csv_reader() {
- /* Import csv and csv.Error */
- csv_module = PyImport_ImportModule("csv");
- if (csv_module == NULL) {
- return 0;
- }
- csv_error = PyObject_GetAttrString(csv_module, "Error");
- return csv_error != NULL;
-}
-/* Fuzz csv.reader([x]) */
-static int fuzz_csv_reader(const char* data, size_t size) {
- if (size < 1 || size > MAX_CSV_TEST_SIZE) {
- return 0;
- }
- /* Ignore non null-terminated strings since _csv can't handle
- embeded nulls */
- if (memchr(data, '\0', size) == NULL) {
- return 0;
- }
-
- PyObject* s = PyUnicode_FromString(data);
- /* Ignore exceptions until we have a valid string */
- if (s == NULL) {
- PyErr_Clear();
- return 0;
- }
-
- /* Split on \n so we can test multiple lines */
- PyObject* lines = PyObject_CallMethod(s, "split", "s", "\n");
- if (lines == NULL) {
- Py_DECREF(s);
- return 0;
- }
-
- PyObject* reader = PyObject_CallMethod(csv_module, "reader", "N", lines);
- if (reader) {
- /* Consume all of the reader as an iterator */
- PyObject* parsed_line;
- while ((parsed_line = PyIter_Next(reader))) {
- Py_DECREF(parsed_line);
- }
- }
-
- /* Ignore csv.Error because we're probably going to generate
- some bad files (embeded new-lines, unterminated quotes etc) */
- if (PyErr_ExceptionMatches(csv_error)) {
- PyErr_Clear();
- }
-
- Py_XDECREF(reader);
- Py_DECREF(s);
- return 0;
-}
-
+
+PyObject* struct_unpack_method = NULL;
+PyObject* struct_error = NULL;
+/* Called by LLVMFuzzerTestOneInput for initialization */
+static int init_struct_unpack() {
+ /* Import struct.unpack */
+ PyObject* struct_module = PyImport_ImportModule("struct");
+ if (struct_module == NULL) {
+ return 0;
+ }
+ struct_error = PyObject_GetAttrString(struct_module, "error");
+ if (struct_error == NULL) {
+ return 0;
+ }
+ struct_unpack_method = PyObject_GetAttrString(struct_module, "unpack");
+ return struct_unpack_method != NULL;
+}
+/* Fuzz struct.unpack(x, y) */
+static int fuzz_struct_unpack(const char* data, size_t size) {
+ /* Everything up to the first null byte is considered the
+ format. Everything after is the buffer */
+ const char* first_null = memchr(data, '\0', size);
+ if (first_null == NULL) {
+ return 0;
+ }
+
+ size_t format_length = first_null - data;
+ size_t buffer_length = size - format_length - 1;
+
+ PyObject* pattern = PyBytes_FromStringAndSize(data, format_length);
+ if (pattern == NULL) {
+ return 0;
+ }
+ PyObject* buffer = PyBytes_FromStringAndSize(first_null + 1, buffer_length);
+ if (buffer == NULL) {
+ Py_DECREF(pattern);
+ return 0;
+ }
+
+ PyObject* unpacked = PyObject_CallFunctionObjArgs(
+ struct_unpack_method, pattern, buffer, NULL);
+ /* Ignore any overflow errors, these are easily triggered accidentally */
+ if (unpacked == NULL && PyErr_ExceptionMatches(PyExc_OverflowError)) {
+ PyErr_Clear();
+ }
+ /* The pascal format string will throw a negative size when passing 0
+ like: struct.unpack('0p', b'') */
+ if (unpacked == NULL && PyErr_ExceptionMatches(PyExc_SystemError)) {
+ PyErr_Clear();
+ }
+ /* Ignore any struct.error exceptions, these can be caused by invalid
+ formats or incomplete buffers both of which are common. */
+ if (unpacked == NULL && PyErr_ExceptionMatches(struct_error)) {
+ PyErr_Clear();
+ }
+
+ Py_XDECREF(unpacked);
+ Py_DECREF(pattern);
+ Py_DECREF(buffer);
+ return 0;
+}
+
+
+#define MAX_JSON_TEST_SIZE 0x10000
+
+PyObject* json_loads_method = NULL;
+/* Called by LLVMFuzzerTestOneInput for initialization */
+static int init_json_loads() {
+ /* Import json.loads */
+ PyObject* json_module = PyImport_ImportModule("json");
+ if (json_module == NULL) {
+ return 0;
+ }
+ json_loads_method = PyObject_GetAttrString(json_module, "loads");
+ return json_loads_method != NULL;
+}
+/* Fuzz json.loads(x) */
+static int fuzz_json_loads(const char* data, size_t size) {
+ /* Since python supports arbitrarily large ints in JSON,
+ long inputs can lead to timeouts on boring inputs like
+ `json.loads("9" * 100000)` */
+ if (size > MAX_JSON_TEST_SIZE) {
+ return 0;
+ }
+ PyObject* input_bytes = PyBytes_FromStringAndSize(data, size);
+ if (input_bytes == NULL) {
+ return 0;
+ }
+ PyObject* parsed = PyObject_CallOneArg(json_loads_method, input_bytes);
+ if (parsed == NULL) {
+ /* Ignore ValueError as the fuzzer will more than likely
+ generate some invalid json and values */
+ if (PyErr_ExceptionMatches(PyExc_ValueError) ||
+ /* Ignore RecursionError as the fuzzer generates long sequences of
+ arrays such as `[[[...` */
+ PyErr_ExceptionMatches(PyExc_RecursionError) ||
+ /* Ignore unicode errors, invalid byte sequences are common */
+ PyErr_ExceptionMatches(PyExc_UnicodeDecodeError)
+ ) {
+ PyErr_Clear();
+ }
+ }
+ Py_DECREF(input_bytes);
+ Py_XDECREF(parsed);
+ return 0;
+}
+
+#define MAX_RE_TEST_SIZE 0x10000
+
+PyObject* sre_compile_method = NULL;
+PyObject* sre_error_exception = NULL;
+int SRE_FLAG_DEBUG = 0;
+/* Called by LLVMFuzzerTestOneInput for initialization */
+static int init_sre_compile() {
+ /* Import sre_compile.compile and sre.error */
+ PyObject* sre_compile_module = PyImport_ImportModule("sre_compile");
+ if (sre_compile_module == NULL) {
+ return 0;
+ }
+ sre_compile_method = PyObject_GetAttrString(sre_compile_module, "compile");
+ if (sre_compile_method == NULL) {
+ return 0;
+ }
+
+ PyObject* sre_constants = PyImport_ImportModule("sre_constants");
+ if (sre_constants == NULL) {
+ return 0;
+ }
+ sre_error_exception = PyObject_GetAttrString(sre_constants, "error");
+ if (sre_error_exception == NULL) {
+ return 0;
+ }
+ PyObject* debug_flag = PyObject_GetAttrString(sre_constants, "SRE_FLAG_DEBUG");
+ if (debug_flag == NULL) {
+ return 0;
+ }
+ SRE_FLAG_DEBUG = PyLong_AsLong(debug_flag);
+ return 1;
+}
+/* Fuzz _sre.compile(x) */
+static int fuzz_sre_compile(const char* data, size_t size) {
+ /* Ignore really long regex patterns that will timeout the fuzzer */
+ if (size > MAX_RE_TEST_SIZE) {
+ return 0;
+ }
+ /* We treat the first 2 bytes of the input as a number for the flags */
+ if (size < 2) {
+ return 0;
+ }
+ uint16_t flags = ((uint16_t*) data)[0];
+ /* We remove the SRE_FLAG_DEBUG if present. This is because it
+ prints to stdout which greatly decreases fuzzing speed */
+ flags &= ~SRE_FLAG_DEBUG;
+
+ /* Pull the pattern from the remaining bytes */
+ PyObject* pattern_bytes = PyBytes_FromStringAndSize(data + 2, size - 2);
+ if (pattern_bytes == NULL) {
+ return 0;
+ }
+ PyObject* flags_obj = PyLong_FromUnsignedLong(flags);
+ if (flags_obj == NULL) {
+ Py_DECREF(pattern_bytes);
+ return 0;
+ }
+
+ /* compiled = _sre.compile(data[2:], data[0:2] */
+ PyObject* compiled = PyObject_CallFunctionObjArgs(
+ sre_compile_method, pattern_bytes, flags_obj, NULL);
+ /* Ignore ValueError as the fuzzer will more than likely
+ generate some invalid combination of flags */
+ if (compiled == NULL && PyErr_ExceptionMatches(PyExc_ValueError)) {
+ PyErr_Clear();
+ }
+ /* Ignore some common errors thrown by sre_parse:
+ Overflow, Assertion, Recursion and Index */
+ if (compiled == NULL && (PyErr_ExceptionMatches(PyExc_OverflowError) ||
+ PyErr_ExceptionMatches(PyExc_AssertionError) ||
+ PyErr_ExceptionMatches(PyExc_RecursionError) ||
+ PyErr_ExceptionMatches(PyExc_IndexError))
+ ) {
+ PyErr_Clear();
+ }
+ /* Ignore re.error */
+ if (compiled == NULL && PyErr_ExceptionMatches(sre_error_exception)) {
+ PyErr_Clear();
+ }
+
+ Py_DECREF(pattern_bytes);
+ Py_DECREF(flags_obj);
+ Py_XDECREF(compiled);
+ return 0;
+}
+
+/* Some random patterns used to test re.match.
+ Be careful not to add catostraphically slow regexes here, we want to
+ exercise the matching code without causing timeouts.*/
+static const char* regex_patterns[] = {
+ ".", "^", "abc", "abc|def", "^xxx$", "\\b", "()", "[a-zA-Z0-9]",
+ "abc+", "[^A-Z]", "[x]", "(?=)", "a{z}", "a+b", "a*?", "a??", "a+?",
+ "{}", "a{,}", "{", "}", "^\\(*\\d{3}\\)*( |-)*\\d{3}( |-)*\\d{4}$",
+ "(?:a*)*", "a{1,2}?"
+};
+const size_t NUM_PATTERNS = sizeof(regex_patterns) / sizeof(regex_patterns[0]);
+PyObject** compiled_patterns = NULL;
+/* Called by LLVMFuzzerTestOneInput for initialization */
+static int init_sre_match() {
+ PyObject* re_module = PyImport_ImportModule("re");
+ if (re_module == NULL) {
+ return 0;
+ }
+ compiled_patterns = (PyObject**) PyMem_RawMalloc(
+ sizeof(PyObject*) * NUM_PATTERNS);
+ if (compiled_patterns == NULL) {
+ PyErr_NoMemory();
+ return 0;
+ }
+
+ /* Precompile all the regex patterns on the first run for faster fuzzing */
+ for (size_t i = 0; i < NUM_PATTERNS; i++) {
+ PyObject* compiled = PyObject_CallMethod(
+ re_module, "compile", "y", regex_patterns[i]);
+ /* Bail if any of the patterns fail to compile */
+ if (compiled == NULL) {
+ return 0;
+ }
+ compiled_patterns[i] = compiled;
+ }
+ return 1;
+}
+/* Fuzz re.match(x) */
+static int fuzz_sre_match(const char* data, size_t size) {
+ if (size < 1 || size > MAX_RE_TEST_SIZE) {
+ return 0;
+ }
+ /* Use the first byte as a uint8_t specifying the index of the
+ regex to use */
+ unsigned char idx = (unsigned char) data[0];
+ idx = idx % NUM_PATTERNS;
+
+ /* Pull the string to match from the remaining bytes */
+ PyObject* to_match = PyBytes_FromStringAndSize(data + 1, size - 1);
+ if (to_match == NULL) {
+ return 0;
+ }
+
+ PyObject* pattern = compiled_patterns[idx];
+ PyObject* match_callable = PyObject_GetAttrString(pattern, "match");
+
+ PyObject* matches = PyObject_CallOneArg(match_callable, to_match);
+
+ Py_XDECREF(matches);
+ Py_DECREF(match_callable);
+ Py_DECREF(to_match);
+ return 0;
+}
+
+#define MAX_CSV_TEST_SIZE 0x10000
+PyObject* csv_module = NULL;
+PyObject* csv_error = NULL;
+/* Called by LLVMFuzzerTestOneInput for initialization */
+static int init_csv_reader() {
+ /* Import csv and csv.Error */
+ csv_module = PyImport_ImportModule("csv");
+ if (csv_module == NULL) {
+ return 0;
+ }
+ csv_error = PyObject_GetAttrString(csv_module, "Error");
+ return csv_error != NULL;
+}
+/* Fuzz csv.reader([x]) */
+static int fuzz_csv_reader(const char* data, size_t size) {
+ if (size < 1 || size > MAX_CSV_TEST_SIZE) {
+ return 0;
+ }
+ /* Ignore non null-terminated strings since _csv can't handle
+ embeded nulls */
+ if (memchr(data, '\0', size) == NULL) {
+ return 0;
+ }
+
+ PyObject* s = PyUnicode_FromString(data);
+ /* Ignore exceptions until we have a valid string */
+ if (s == NULL) {
+ PyErr_Clear();
+ return 0;
+ }
+
+ /* Split on \n so we can test multiple lines */
+ PyObject* lines = PyObject_CallMethod(s, "split", "s", "\n");
+ if (lines == NULL) {
+ Py_DECREF(s);
+ return 0;
+ }
+
+ PyObject* reader = PyObject_CallMethod(csv_module, "reader", "N", lines);
+ if (reader) {
+ /* Consume all of the reader as an iterator */
+ PyObject* parsed_line;
+ while ((parsed_line = PyIter_Next(reader))) {
+ Py_DECREF(parsed_line);
+ }
+ }
+
+ /* Ignore csv.Error because we're probably going to generate
+ some bad files (embeded new-lines, unterminated quotes etc) */
+ if (PyErr_ExceptionMatches(csv_error)) {
+ PyErr_Clear();
+ }
+
+ Py_XDECREF(reader);
+ Py_DECREF(s);
+ return 0;
+}
+
/* Run fuzzer and abort on failure. */
static int _run_fuzz(const uint8_t *data, size_t size, int(*fuzzer)(const char* , size_t)) {
int rv = fuzzer((const char*) data, size);
@@ -409,13 +409,13 @@ static int _run_fuzz(const uint8_t *data, size_t size, int(*fuzzer)(const char*
/* CPython generates a lot of leak warnings for whatever reason. */
int __lsan_is_turned_off(void) { return 1; }
-
-int LLVMFuzzerInitialize(int *argc, char ***argv) {
- wchar_t* wide_program_name = Py_DecodeLocale(*argv[0], NULL);
- Py_SetProgramName(wide_program_name);
- return 0;
-}
-
+
+int LLVMFuzzerInitialize(int *argc, char ***argv) {
+ wchar_t* wide_program_name = Py_DecodeLocale(*argv[0], NULL);
+ Py_SetProgramName(wide_program_name);
+ return 0;
+}
+
/* Fuzz test interface.
This returns the bitwise or of all fuzz test's return values.
@@ -442,59 +442,59 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_builtin_unicode)
rv |= _run_fuzz(data, size, fuzz_builtin_unicode);
#endif
-#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_struct_unpack)
- static int STRUCT_UNPACK_INITIALIZED = 0;
- if (!STRUCT_UNPACK_INITIALIZED && !init_struct_unpack()) {
- PyErr_Print();
- abort();
- } else {
- STRUCT_UNPACK_INITIALIZED = 1;
- }
- rv |= _run_fuzz(data, size, fuzz_struct_unpack);
-#endif
-#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_json_loads)
- static int JSON_LOADS_INITIALIZED = 0;
- if (!JSON_LOADS_INITIALIZED && !init_json_loads()) {
- PyErr_Print();
- abort();
- } else {
- JSON_LOADS_INITIALIZED = 1;
- }
-
- rv |= _run_fuzz(data, size, fuzz_json_loads);
-#endif
-#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_sre_compile)
- static int SRE_COMPILE_INITIALIZED = 0;
- if (!SRE_COMPILE_INITIALIZED && !init_sre_compile()) {
- PyErr_Print();
- abort();
- } else {
- SRE_COMPILE_INITIALIZED = 1;
- }
-
- rv |= _run_fuzz(data, size, fuzz_sre_compile);
-#endif
-#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_sre_match)
- static int SRE_MATCH_INITIALIZED = 0;
- if (!SRE_MATCH_INITIALIZED && !init_sre_match()) {
- PyErr_Print();
- abort();
- } else {
- SRE_MATCH_INITIALIZED = 1;
- }
-
- rv |= _run_fuzz(data, size, fuzz_sre_match);
-#endif
-#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_csv_reader)
- static int CSV_READER_INITIALIZED = 0;
- if (!CSV_READER_INITIALIZED && !init_csv_reader()) {
- PyErr_Print();
- abort();
- } else {
- CSV_READER_INITIALIZED = 1;
- }
-
- rv |= _run_fuzz(data, size, fuzz_csv_reader);
-#endif
+#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_struct_unpack)
+ static int STRUCT_UNPACK_INITIALIZED = 0;
+ if (!STRUCT_UNPACK_INITIALIZED && !init_struct_unpack()) {
+ PyErr_Print();
+ abort();
+ } else {
+ STRUCT_UNPACK_INITIALIZED = 1;
+ }
+ rv |= _run_fuzz(data, size, fuzz_struct_unpack);
+#endif
+#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_json_loads)
+ static int JSON_LOADS_INITIALIZED = 0;
+ if (!JSON_LOADS_INITIALIZED && !init_json_loads()) {
+ PyErr_Print();
+ abort();
+ } else {
+ JSON_LOADS_INITIALIZED = 1;
+ }
+
+ rv |= _run_fuzz(data, size, fuzz_json_loads);
+#endif
+#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_sre_compile)
+ static int SRE_COMPILE_INITIALIZED = 0;
+ if (!SRE_COMPILE_INITIALIZED && !init_sre_compile()) {
+ PyErr_Print();
+ abort();
+ } else {
+ SRE_COMPILE_INITIALIZED = 1;
+ }
+
+ rv |= _run_fuzz(data, size, fuzz_sre_compile);
+#endif
+#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_sre_match)
+ static int SRE_MATCH_INITIALIZED = 0;
+ if (!SRE_MATCH_INITIALIZED && !init_sre_match()) {
+ PyErr_Print();
+ abort();
+ } else {
+ SRE_MATCH_INITIALIZED = 1;
+ }
+
+ rv |= _run_fuzz(data, size, fuzz_sre_match);
+#endif
+#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_csv_reader)
+ static int CSV_READER_INITIALIZED = 0;
+ if (!CSV_READER_INITIALIZED && !init_csv_reader()) {
+ PyErr_Print();
+ abort();
+ } else {
+ CSV_READER_INITIALIZED = 1;
+ }
+
+ rv |= _run_fuzz(data, size, fuzz_csv_reader);
+#endif
return rv;
}
diff --git a/contrib/tools/python3/src/Modules/_zoneinfo.c b/contrib/tools/python3/src/Modules/_zoneinfo.c
index 3ac8bb0503..d7945d31af 100644
--- a/contrib/tools/python3/src/Modules/_zoneinfo.c
+++ b/contrib/tools/python3/src/Modules/_zoneinfo.c
@@ -1,2724 +1,2724 @@
-#include "Python.h"
-#include "structmember.h"
-
-#include <ctype.h>
-#include <stddef.h>
-#include <stdint.h>
-
-#include "datetime.h"
-
-// Imports
-static PyObject *io_open = NULL;
-static PyObject *_tzpath_find_tzfile = NULL;
-static PyObject *_common_mod = NULL;
-
-typedef struct TransitionRuleType TransitionRuleType;
-typedef struct StrongCacheNode StrongCacheNode;
-
-typedef struct {
- PyObject *utcoff;
- PyObject *dstoff;
- PyObject *tzname;
- long utcoff_seconds;
-} _ttinfo;
-
-typedef struct {
- _ttinfo std;
- _ttinfo dst;
- int dst_diff;
- TransitionRuleType *start;
- TransitionRuleType *end;
- unsigned char std_only;
-} _tzrule;
-
-typedef struct {
- PyDateTime_TZInfo base;
- PyObject *key;
- PyObject *file_repr;
- PyObject *weakreflist;
- size_t num_transitions;
- size_t num_ttinfos;
- int64_t *trans_list_utc;
- int64_t *trans_list_wall[2];
- _ttinfo **trans_ttinfos; // References to the ttinfo for each transition
- _ttinfo *ttinfo_before;
- _tzrule tzrule_after;
- _ttinfo *_ttinfos; // Unique array of ttinfos for ease of deallocation
- unsigned char fixed_offset;
- unsigned char source;
-} PyZoneInfo_ZoneInfo;
-
-struct TransitionRuleType {
- int64_t (*year_to_timestamp)(TransitionRuleType *, int);
-};
-
-typedef struct {
- TransitionRuleType base;
- uint8_t month;
- uint8_t week;
- uint8_t day;
- int8_t hour;
- int8_t minute;
- int8_t second;
-} CalendarRule;
-
-typedef struct {
- TransitionRuleType base;
- uint8_t julian;
- unsigned int day;
- int8_t hour;
- int8_t minute;
- int8_t second;
-} DayRule;
-
-struct StrongCacheNode {
- StrongCacheNode *next;
- StrongCacheNode *prev;
- PyObject *key;
- PyObject *zone;
-};
-
-static PyTypeObject PyZoneInfo_ZoneInfoType;
-
-// Globals
-static PyObject *TIMEDELTA_CACHE = NULL;
-static PyObject *ZONEINFO_WEAK_CACHE = NULL;
-static StrongCacheNode *ZONEINFO_STRONG_CACHE = NULL;
-static size_t ZONEINFO_STRONG_CACHE_MAX_SIZE = 8;
-
-static _ttinfo NO_TTINFO = {NULL, NULL, NULL, 0};
-
-// Constants
-static const int EPOCHORDINAL = 719163;
-static int DAYS_IN_MONTH[] = {
- -1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
-};
-
-static int DAYS_BEFORE_MONTH[] = {
- -1, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334,
-};
-
-static const int SOURCE_NOCACHE = 0;
-static const int SOURCE_CACHE = 1;
-static const int SOURCE_FILE = 2;
-
-// Forward declarations
-static int
-load_data(PyZoneInfo_ZoneInfo *self, PyObject *file_obj);
-static void
-utcoff_to_dstoff(size_t *trans_idx, long *utcoffs, long *dstoffs,
- unsigned char *isdsts, size_t num_transitions,
- size_t num_ttinfos);
-static int
-ts_to_local(size_t *trans_idx, int64_t *trans_utc, long *utcoff,
- int64_t *trans_local[2], size_t num_ttinfos,
- size_t num_transitions);
-
-static int
-parse_tz_str(PyObject *tz_str_obj, _tzrule *out);
-
-static Py_ssize_t
-parse_abbr(const char *const p, PyObject **abbr);
-static Py_ssize_t
-parse_tz_delta(const char *const p, long *total_seconds);
-static Py_ssize_t
-parse_transition_time(const char *const p, int8_t *hour, int8_t *minute,
- int8_t *second);
-static Py_ssize_t
-parse_transition_rule(const char *const p, TransitionRuleType **out);
-
-static _ttinfo *
-find_tzrule_ttinfo(_tzrule *rule, int64_t ts, unsigned char fold, int year);
-static _ttinfo *
-find_tzrule_ttinfo_fromutc(_tzrule *rule, int64_t ts, int year,
- unsigned char *fold);
-
-static int
-build_ttinfo(long utcoffset, long dstoffset, PyObject *tzname, _ttinfo *out);
-static void
-xdecref_ttinfo(_ttinfo *ttinfo);
-static int
-ttinfo_eq(const _ttinfo *const tti0, const _ttinfo *const tti1);
-
-static int
-build_tzrule(PyObject *std_abbr, PyObject *dst_abbr, long std_offset,
- long dst_offset, TransitionRuleType *start,
- TransitionRuleType *end, _tzrule *out);
-static void
-free_tzrule(_tzrule *tzrule);
-
-static PyObject *
-load_timedelta(long seconds);
-
-static int
-get_local_timestamp(PyObject *dt, int64_t *local_ts);
-static _ttinfo *
-find_ttinfo(PyZoneInfo_ZoneInfo *self, PyObject *dt);
-
-static int
-ymd_to_ord(int y, int m, int d);
-static int
-is_leap_year(int year);
-
-static size_t
-_bisect(const int64_t value, const int64_t *arr, size_t size);
-
-static int
-eject_from_strong_cache(const PyTypeObject *const type, PyObject *key);
-static void
-clear_strong_cache(const PyTypeObject *const type);
-static void
-update_strong_cache(const PyTypeObject *const type, PyObject *key,
- PyObject *zone);
-static PyObject *
-zone_from_strong_cache(const PyTypeObject *const type, PyObject *const key);
-
-static PyObject *
-zoneinfo_new_instance(PyTypeObject *type, PyObject *key)
-{
- PyObject *file_obj = NULL;
- PyObject *file_path = NULL;
-
- file_path = PyObject_CallFunctionObjArgs(_tzpath_find_tzfile, key, NULL);
- if (file_path == NULL) {
- return NULL;
- }
- else if (file_path == Py_None) {
- file_obj = PyObject_CallMethod(_common_mod, "load_tzdata", "O", key);
- if (file_obj == NULL) {
- Py_DECREF(file_path);
- return NULL;
- }
- }
-
- PyObject *self = (PyObject *)(type->tp_alloc(type, 0));
- if (self == NULL) {
- goto error;
- }
-
- if (file_obj == NULL) {
- file_obj = PyObject_CallFunction(io_open, "Os", file_path, "rb");
- if (file_obj == NULL) {
- goto error;
- }
- }
-
- if (load_data((PyZoneInfo_ZoneInfo *)self, file_obj)) {
- goto error;
- }
-
- PyObject *rv = PyObject_CallMethod(file_obj, "close", NULL);
- Py_DECREF(file_obj);
- file_obj = NULL;
- if (rv == NULL) {
- goto error;
- }
- Py_DECREF(rv);
-
- ((PyZoneInfo_ZoneInfo *)self)->key = key;
- Py_INCREF(key);
-
- goto cleanup;
-error:
- Py_XDECREF(self);
- self = NULL;
-cleanup:
- if (file_obj != NULL) {
- PyObject *exc, *val, *tb;
- PyErr_Fetch(&exc, &val, &tb);
- PyObject *tmp = PyObject_CallMethod(file_obj, "close", NULL);
- _PyErr_ChainExceptions(exc, val, tb);
- if (tmp == NULL) {
- Py_CLEAR(self);
- }
- Py_XDECREF(tmp);
- Py_DECREF(file_obj);
- }
- Py_DECREF(file_path);
- return self;
-}
-
-static PyObject *
-get_weak_cache(PyTypeObject *type)
-{
- if (type == &PyZoneInfo_ZoneInfoType) {
- return ZONEINFO_WEAK_CACHE;
- }
- else {
- PyObject *cache =
- PyObject_GetAttrString((PyObject *)type, "_weak_cache");
- // We are assuming that the type lives at least as long as the function
- // that calls get_weak_cache, and that it holds a reference to the
- // cache, so we'll return a "borrowed reference".
- Py_XDECREF(cache);
- return cache;
- }
-}
-
-static PyObject *
-zoneinfo_new(PyTypeObject *type, PyObject *args, PyObject *kw)
-{
- PyObject *key = NULL;
- static char *kwlist[] = {"key", NULL};
- if (PyArg_ParseTupleAndKeywords(args, kw, "O", kwlist, &key) == 0) {
- return NULL;
- }
-
- PyObject *instance = zone_from_strong_cache(type, key);
- if (instance != NULL || PyErr_Occurred()) {
- return instance;
- }
-
- PyObject *weak_cache = get_weak_cache(type);
- instance = PyObject_CallMethod(weak_cache, "get", "O", key, Py_None);
- if (instance == NULL) {
- return NULL;
- }
-
- if (instance == Py_None) {
- Py_DECREF(instance);
- PyObject *tmp = zoneinfo_new_instance(type, key);
- if (tmp == NULL) {
- return NULL;
- }
-
- instance =
- PyObject_CallMethod(weak_cache, "setdefault", "OO", key, tmp);
- Py_DECREF(tmp);
- if (instance == NULL) {
- return NULL;
- }
- ((PyZoneInfo_ZoneInfo *)instance)->source = SOURCE_CACHE;
- }
-
- update_strong_cache(type, key, instance);
- return instance;
-}
-
-static void
-zoneinfo_dealloc(PyObject *obj_self)
-{
- PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self;
-
- if (self->weakreflist != NULL) {
- PyObject_ClearWeakRefs(obj_self);
- }
-
- if (self->trans_list_utc != NULL) {
- PyMem_Free(self->trans_list_utc);
- }
-
- for (size_t i = 0; i < 2; i++) {
- if (self->trans_list_wall[i] != NULL) {
- PyMem_Free(self->trans_list_wall[i]);
- }
- }
-
- if (self->_ttinfos != NULL) {
- for (size_t i = 0; i < self->num_ttinfos; ++i) {
- xdecref_ttinfo(&(self->_ttinfos[i]));
- }
- PyMem_Free(self->_ttinfos);
- }
-
- if (self->trans_ttinfos != NULL) {
- PyMem_Free(self->trans_ttinfos);
- }
-
- free_tzrule(&(self->tzrule_after));
-
- Py_XDECREF(self->key);
- Py_XDECREF(self->file_repr);
-
- Py_TYPE(self)->tp_free((PyObject *)self);
-}
-
-static PyObject *
-zoneinfo_from_file(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *file_obj = NULL;
- PyObject *file_repr = NULL;
- PyObject *key = Py_None;
- PyZoneInfo_ZoneInfo *self = NULL;
-
- static char *kwlist[] = {"", "key", NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O", kwlist, &file_obj,
- &key)) {
- return NULL;
- }
-
- PyObject *obj_self = (PyObject *)(type->tp_alloc(type, 0));
- self = (PyZoneInfo_ZoneInfo *)obj_self;
- if (self == NULL) {
- return NULL;
- }
-
- file_repr = PyUnicode_FromFormat("%R", file_obj);
- if (file_repr == NULL) {
- goto error;
- }
-
- if (load_data(self, file_obj)) {
- goto error;
- }
-
- self->source = SOURCE_FILE;
- self->file_repr = file_repr;
- self->key = key;
- Py_INCREF(key);
-
- return obj_self;
-error:
- Py_XDECREF(file_repr);
- Py_XDECREF(self);
- return NULL;
-}
-
-static PyObject *
-zoneinfo_no_cache(PyTypeObject *cls, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = {"key", NULL};
- PyObject *key = NULL;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O", kwlist, &key)) {
- return NULL;
- }
-
- PyObject *out = zoneinfo_new_instance(cls, key);
- if (out != NULL) {
- ((PyZoneInfo_ZoneInfo *)out)->source = SOURCE_NOCACHE;
- }
-
- return out;
-}
-
-static PyObject *
-zoneinfo_clear_cache(PyObject *cls, PyObject *args, PyObject *kwargs)
-{
- PyObject *only_keys = NULL;
- static char *kwlist[] = {"only_keys", NULL};
-
- if (!(PyArg_ParseTupleAndKeywords(args, kwargs, "|$O", kwlist,
- &only_keys))) {
- return NULL;
- }
-
- PyTypeObject *type = (PyTypeObject *)cls;
- PyObject *weak_cache = get_weak_cache(type);
-
- if (only_keys == NULL || only_keys == Py_None) {
- PyObject *rv = PyObject_CallMethod(weak_cache, "clear", NULL);
- if (rv != NULL) {
- Py_DECREF(rv);
- }
-
- clear_strong_cache(type);
- }
- else {
- PyObject *item = NULL;
- PyObject *pop = PyUnicode_FromString("pop");
- if (pop == NULL) {
- return NULL;
- }
-
- PyObject *iter = PyObject_GetIter(only_keys);
- if (iter == NULL) {
- Py_DECREF(pop);
- return NULL;
- }
-
- while ((item = PyIter_Next(iter))) {
- // Remove from strong cache
- if (eject_from_strong_cache(type, item) < 0) {
- Py_DECREF(item);
- break;
- }
-
- // Remove from weak cache
- PyObject *tmp = PyObject_CallMethodObjArgs(weak_cache, pop, item,
- Py_None, NULL);
-
- Py_DECREF(item);
- if (tmp == NULL) {
- break;
- }
- Py_DECREF(tmp);
- }
- Py_DECREF(iter);
- Py_DECREF(pop);
- }
-
- if (PyErr_Occurred()) {
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject *
-zoneinfo_utcoffset(PyObject *self, PyObject *dt)
-{
- _ttinfo *tti = find_ttinfo((PyZoneInfo_ZoneInfo *)self, dt);
- if (tti == NULL) {
- return NULL;
- }
- Py_INCREF(tti->utcoff);
- return tti->utcoff;
-}
-
-static PyObject *
-zoneinfo_dst(PyObject *self, PyObject *dt)
-{
- _ttinfo *tti = find_ttinfo((PyZoneInfo_ZoneInfo *)self, dt);
- if (tti == NULL) {
- return NULL;
- }
- Py_INCREF(tti->dstoff);
- return tti->dstoff;
-}
-
-static PyObject *
-zoneinfo_tzname(PyObject *self, PyObject *dt)
-{
- _ttinfo *tti = find_ttinfo((PyZoneInfo_ZoneInfo *)self, dt);
- if (tti == NULL) {
- return NULL;
- }
- Py_INCREF(tti->tzname);
- return tti->tzname;
-}
-
-#define HASTZINFO(p) (((_PyDateTime_BaseTZInfo *)(p))->hastzinfo)
-#define GET_DT_TZINFO(p) \
- (HASTZINFO(p) ? ((PyDateTime_DateTime *)(p))->tzinfo : Py_None)
-
-static PyObject *
-zoneinfo_fromutc(PyObject *obj_self, PyObject *dt)
-{
- if (!PyDateTime_Check(dt)) {
- PyErr_SetString(PyExc_TypeError,
- "fromutc: argument must be a datetime");
- return NULL;
- }
- if (GET_DT_TZINFO(dt) != obj_self) {
- PyErr_SetString(PyExc_ValueError,
- "fromutc: dt.tzinfo "
- "is not self");
- return NULL;
- }
-
- PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self;
-
- int64_t timestamp;
- if (get_local_timestamp(dt, &timestamp)) {
- return NULL;
- }
- size_t num_trans = self->num_transitions;
-
- _ttinfo *tti = NULL;
- unsigned char fold = 0;
-
- if (num_trans >= 1 && timestamp < self->trans_list_utc[0]) {
- tti = self->ttinfo_before;
- }
- else if (num_trans == 0 ||
- timestamp > self->trans_list_utc[num_trans - 1]) {
- tti = find_tzrule_ttinfo_fromutc(&(self->tzrule_after), timestamp,
- PyDateTime_GET_YEAR(dt), &fold);
-
- // Immediately after the last manual transition, the fold/gap is
- // between self->trans_ttinfos[num_transitions - 1] and whatever
- // ttinfo applies immediately after the last transition, not between
- // the STD and DST rules in the tzrule_after, so we may need to
- // adjust the fold value.
- if (num_trans) {
- _ttinfo *tti_prev = NULL;
- if (num_trans == 1) {
- tti_prev = self->ttinfo_before;
- }
- else {
- tti_prev = self->trans_ttinfos[num_trans - 2];
- }
- int64_t diff = tti_prev->utcoff_seconds - tti->utcoff_seconds;
- if (diff > 0 &&
- timestamp < (self->trans_list_utc[num_trans - 1] + diff)) {
- fold = 1;
- }
- }
- }
- else {
- size_t idx = _bisect(timestamp, self->trans_list_utc, num_trans);
- _ttinfo *tti_prev = NULL;
-
- if (idx >= 2) {
- tti_prev = self->trans_ttinfos[idx - 2];
- tti = self->trans_ttinfos[idx - 1];
- }
- else {
- tti_prev = self->ttinfo_before;
- tti = self->trans_ttinfos[0];
- }
-
- // Detect fold
- int64_t shift =
- (int64_t)(tti_prev->utcoff_seconds - tti->utcoff_seconds);
- if (shift > (timestamp - self->trans_list_utc[idx - 1])) {
- fold = 1;
- }
- }
-
- PyObject *tmp = PyNumber_Add(dt, tti->utcoff);
- if (tmp == NULL) {
- return NULL;
- }
-
- if (fold) {
- if (PyDateTime_CheckExact(tmp)) {
- ((PyDateTime_DateTime *)tmp)->fold = 1;
- dt = tmp;
- }
- else {
- PyObject *replace = PyObject_GetAttrString(tmp, "replace");
- PyObject *args = PyTuple_New(0);
- PyObject *kwargs = PyDict_New();
-
- Py_DECREF(tmp);
- if (args == NULL || kwargs == NULL || replace == NULL) {
- Py_XDECREF(args);
- Py_XDECREF(kwargs);
- Py_XDECREF(replace);
- return NULL;
- }
-
- dt = NULL;
- if (!PyDict_SetItemString(kwargs, "fold", _PyLong_One)) {
- dt = PyObject_Call(replace, args, kwargs);
- }
-
- Py_DECREF(args);
- Py_DECREF(kwargs);
- Py_DECREF(replace);
-
- if (dt == NULL) {
- return NULL;
- }
- }
- }
- else {
- dt = tmp;
- }
- return dt;
-}
-
-static PyObject *
-zoneinfo_repr(PyZoneInfo_ZoneInfo *self)
-{
- PyObject *rv = NULL;
- const char *type_name = Py_TYPE((PyObject *)self)->tp_name;
- if (!(self->key == Py_None)) {
- rv = PyUnicode_FromFormat("%s(key=%R)", type_name, self->key);
- }
- else {
- assert(PyUnicode_Check(self->file_repr));
- rv = PyUnicode_FromFormat("%s.from_file(%U)", type_name,
- self->file_repr);
- }
-
- return rv;
-}
-
-static PyObject *
-zoneinfo_str(PyZoneInfo_ZoneInfo *self)
-{
- if (!(self->key == Py_None)) {
- Py_INCREF(self->key);
- return self->key;
- }
- else {
- return zoneinfo_repr(self);
- }
-}
-
-/* Pickles the ZoneInfo object by key and source.
- *
- * ZoneInfo objects are pickled by reference to the TZif file that they came
- * from, which means that the exact transitions may be different or the file
- * may not un-pickle if the data has changed on disk in the interim.
- *
- * It is necessary to include a bit indicating whether or not the object
- * was constructed from the cache, because from-cache objects will hit the
- * unpickling process's cache, whereas no-cache objects will bypass it.
- *
- * Objects constructed from ZoneInfo.from_file cannot be pickled.
- */
-static PyObject *
-zoneinfo_reduce(PyObject *obj_self, PyObject *unused)
-{
- PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self;
- if (self->source == SOURCE_FILE) {
- // Objects constructed from files cannot be pickled.
- PyObject *pickle = PyImport_ImportModule("pickle");
- if (pickle == NULL) {
- return NULL;
- }
-
- PyObject *pickle_error =
- PyObject_GetAttrString(pickle, "PicklingError");
- Py_DECREF(pickle);
- if (pickle_error == NULL) {
- return NULL;
- }
-
- PyErr_Format(pickle_error,
- "Cannot pickle a ZoneInfo file from a file stream.");
- Py_DECREF(pickle_error);
- return NULL;
- }
-
- unsigned char from_cache = self->source == SOURCE_CACHE ? 1 : 0;
- PyObject *constructor = PyObject_GetAttrString(obj_self, "_unpickle");
-
- if (constructor == NULL) {
- return NULL;
- }
-
- PyObject *rv = Py_BuildValue("O(OB)", constructor, self->key, from_cache);
- Py_DECREF(constructor);
- return rv;
-}
-
-static PyObject *
-zoneinfo__unpickle(PyTypeObject *cls, PyObject *args)
-{
- PyObject *key;
- unsigned char from_cache;
- if (!PyArg_ParseTuple(args, "OB", &key, &from_cache)) {
- return NULL;
- }
-
- if (from_cache) {
- PyObject *val_args = Py_BuildValue("(O)", key);
- if (val_args == NULL) {
- return NULL;
- }
-
- PyObject *rv = zoneinfo_new(cls, val_args, NULL);
-
- Py_DECREF(val_args);
- return rv;
- }
- else {
- return zoneinfo_new_instance(cls, key);
- }
-}
-
-/* It is relatively expensive to construct new timedelta objects, and in most
- * cases we're looking at a relatively small number of timedeltas, such as
- * integer number of hours, etc. We will keep a cache so that we construct
- * a minimal number of these.
- *
- * Possibly this should be replaced with an LRU cache so that it's not possible
- * for the memory usage to explode from this, but in order for this to be a
- * serious problem, one would need to deliberately craft a malicious time zone
- * file with many distinct offsets. As of tzdb 2019c, loading every single zone
- * fills the cache with ~450 timedeltas for a total size of ~12kB.
- *
- * This returns a new reference to the timedelta.
- */
-static PyObject *
-load_timedelta(long seconds)
-{
- PyObject *rv = NULL;
- PyObject *pyoffset = PyLong_FromLong(seconds);
- if (pyoffset == NULL) {
- return NULL;
- }
- int contains = PyDict_Contains(TIMEDELTA_CACHE, pyoffset);
- if (contains == -1) {
- goto error;
- }
-
- if (!contains) {
- PyObject *tmp = PyDateTimeAPI->Delta_FromDelta(
- 0, seconds, 0, 1, PyDateTimeAPI->DeltaType);
-
- if (tmp == NULL) {
- goto error;
- }
-
- rv = PyDict_SetDefault(TIMEDELTA_CACHE, pyoffset, tmp);
- Py_DECREF(tmp);
- }
- else {
- rv = PyDict_GetItem(TIMEDELTA_CACHE, pyoffset);
- }
-
- Py_DECREF(pyoffset);
- Py_INCREF(rv);
- return rv;
-error:
- Py_DECREF(pyoffset);
- return NULL;
-}
-
-/* Constructor for _ttinfo object - this starts by initializing the _ttinfo
- * to { NULL, NULL, NULL }, so that Py_XDECREF will work on partially
- * initialized _ttinfo objects.
- */
-static int
-build_ttinfo(long utcoffset, long dstoffset, PyObject *tzname, _ttinfo *out)
-{
- out->utcoff = NULL;
- out->dstoff = NULL;
- out->tzname = NULL;
-
- out->utcoff_seconds = utcoffset;
- out->utcoff = load_timedelta(utcoffset);
- if (out->utcoff == NULL) {
- return -1;
- }
-
- out->dstoff = load_timedelta(dstoffset);
- if (out->dstoff == NULL) {
- return -1;
- }
-
- out->tzname = tzname;
- Py_INCREF(tzname);
-
- return 0;
-}
-
-/* Decrease reference count on any non-NULL members of a _ttinfo */
-static void
-xdecref_ttinfo(_ttinfo *ttinfo)
-{
- if (ttinfo != NULL) {
- Py_XDECREF(ttinfo->utcoff);
- Py_XDECREF(ttinfo->dstoff);
- Py_XDECREF(ttinfo->tzname);
- }
-}
-
-/* Equality function for _ttinfo. */
-static int
-ttinfo_eq(const _ttinfo *const tti0, const _ttinfo *const tti1)
-{
- int rv;
- if ((rv = PyObject_RichCompareBool(tti0->utcoff, tti1->utcoff, Py_EQ)) <
- 1) {
- goto end;
- }
-
- if ((rv = PyObject_RichCompareBool(tti0->dstoff, tti1->dstoff, Py_EQ)) <
- 1) {
- goto end;
- }
-
- if ((rv = PyObject_RichCompareBool(tti0->tzname, tti1->tzname, Py_EQ)) <
- 1) {
- goto end;
- }
-end:
- return rv;
-}
-
-/* Given a file-like object, this populates a ZoneInfo object
- *
- * The current version calls into a Python function to read the data from
- * file into Python objects, and this translates those Python objects into
- * C values and calculates derived values (e.g. dstoff) in C.
- *
- * This returns 0 on success and -1 on failure.
- *
- * The function will never return while `self` is partially initialized —
- * the object only needs to be freed / deallocated if this succeeds.
- */
-static int
-load_data(PyZoneInfo_ZoneInfo *self, PyObject *file_obj)
-{
- PyObject *data_tuple = NULL;
-
- long *utcoff = NULL;
- long *dstoff = NULL;
- size_t *trans_idx = NULL;
- unsigned char *isdst = NULL;
-
- self->trans_list_utc = NULL;
- self->trans_list_wall[0] = NULL;
- self->trans_list_wall[1] = NULL;
- self->trans_ttinfos = NULL;
- self->_ttinfos = NULL;
- self->file_repr = NULL;
-
- size_t ttinfos_allocated = 0;
-
- data_tuple = PyObject_CallMethod(_common_mod, "load_data", "O", file_obj);
-
- if (data_tuple == NULL) {
- goto error;
- }
-
- if (!PyTuple_CheckExact(data_tuple)) {
- PyErr_Format(PyExc_TypeError, "Invalid data result type: %r",
- data_tuple);
- goto error;
- }
-
- // Unpack the data tuple
- PyObject *trans_idx_list = PyTuple_GetItem(data_tuple, 0);
- if (trans_idx_list == NULL) {
- goto error;
- }
-
- PyObject *trans_utc = PyTuple_GetItem(data_tuple, 1);
- if (trans_utc == NULL) {
- goto error;
- }
-
- PyObject *utcoff_list = PyTuple_GetItem(data_tuple, 2);
- if (utcoff_list == NULL) {
- goto error;
- }
-
- PyObject *isdst_list = PyTuple_GetItem(data_tuple, 3);
- if (isdst_list == NULL) {
- goto error;
- }
-
- PyObject *abbr = PyTuple_GetItem(data_tuple, 4);
- if (abbr == NULL) {
- goto error;
- }
-
- PyObject *tz_str = PyTuple_GetItem(data_tuple, 5);
- if (tz_str == NULL) {
- goto error;
- }
-
- // Load the relevant sizes
- Py_ssize_t num_transitions = PyTuple_Size(trans_utc);
- if (num_transitions < 0) {
- goto error;
- }
-
- Py_ssize_t num_ttinfos = PyTuple_Size(utcoff_list);
- if (num_ttinfos < 0) {
- goto error;
- }
-
- self->num_transitions = (size_t)num_transitions;
- self->num_ttinfos = (size_t)num_ttinfos;
-
- // Load the transition indices and list
- self->trans_list_utc =
- PyMem_Malloc(self->num_transitions * sizeof(int64_t));
- if (self->trans_list_utc == NULL) {
- goto error;
- }
- trans_idx = PyMem_Malloc(self->num_transitions * sizeof(Py_ssize_t));
- if (trans_idx == NULL) {
- goto error;
- }
-
- for (size_t i = 0; i < self->num_transitions; ++i) {
- PyObject *num = PyTuple_GetItem(trans_utc, i);
- if (num == NULL) {
- goto error;
- }
- self->trans_list_utc[i] = PyLong_AsLongLong(num);
- if (self->trans_list_utc[i] == -1 && PyErr_Occurred()) {
- goto error;
- }
-
- num = PyTuple_GetItem(trans_idx_list, i);
- if (num == NULL) {
- goto error;
- }
-
- Py_ssize_t cur_trans_idx = PyLong_AsSsize_t(num);
- if (cur_trans_idx == -1) {
- goto error;
- }
-
- trans_idx[i] = (size_t)cur_trans_idx;
- if (trans_idx[i] > self->num_ttinfos) {
- PyErr_Format(
- PyExc_ValueError,
- "Invalid transition index found while reading TZif: %zd",
- cur_trans_idx);
-
- goto error;
- }
- }
-
- // Load UTC offsets and isdst (size num_ttinfos)
- utcoff = PyMem_Malloc(self->num_ttinfos * sizeof(long));
- isdst = PyMem_Malloc(self->num_ttinfos * sizeof(unsigned char));
-
- if (utcoff == NULL || isdst == NULL) {
- goto error;
- }
- for (size_t i = 0; i < self->num_ttinfos; ++i) {
- PyObject *num = PyTuple_GetItem(utcoff_list, i);
- if (num == NULL) {
- goto error;
- }
-
- utcoff[i] = PyLong_AsLong(num);
- if (utcoff[i] == -1 && PyErr_Occurred()) {
- goto error;
- }
-
- num = PyTuple_GetItem(isdst_list, i);
- if (num == NULL) {
- goto error;
- }
-
- int isdst_with_error = PyObject_IsTrue(num);
- if (isdst_with_error == -1) {
- goto error;
- }
- else {
- isdst[i] = (unsigned char)isdst_with_error;
- }
- }
-
- dstoff = PyMem_Calloc(self->num_ttinfos, sizeof(long));
- if (dstoff == NULL) {
- goto error;
- }
-
- // Derive dstoff and trans_list_wall from the information we've loaded
- utcoff_to_dstoff(trans_idx, utcoff, dstoff, isdst, self->num_transitions,
- self->num_ttinfos);
-
- if (ts_to_local(trans_idx, self->trans_list_utc, utcoff,
- self->trans_list_wall, self->num_ttinfos,
- self->num_transitions)) {
- goto error;
- }
-
- // Build _ttinfo objects from utcoff, dstoff and abbr
- self->_ttinfos = PyMem_Malloc(self->num_ttinfos * sizeof(_ttinfo));
- if (self->_ttinfos == NULL) {
- goto error;
- }
- for (size_t i = 0; i < self->num_ttinfos; ++i) {
- PyObject *tzname = PyTuple_GetItem(abbr, i);
- if (tzname == NULL) {
- goto error;
- }
-
- ttinfos_allocated++;
- if (build_ttinfo(utcoff[i], dstoff[i], tzname, &(self->_ttinfos[i]))) {
- goto error;
- }
- }
-
- // Build our mapping from transition to the ttinfo that applies
- self->trans_ttinfos =
- PyMem_Calloc(self->num_transitions, sizeof(_ttinfo *));
- if (self->trans_ttinfos == NULL) {
- goto error;
- }
- for (size_t i = 0; i < self->num_transitions; ++i) {
- size_t ttinfo_idx = trans_idx[i];
- assert(ttinfo_idx < self->num_ttinfos);
- self->trans_ttinfos[i] = &(self->_ttinfos[ttinfo_idx]);
- }
-
- // Set ttinfo_before to the first non-DST transition
- for (size_t i = 0; i < self->num_ttinfos; ++i) {
- if (!isdst[i]) {
- self->ttinfo_before = &(self->_ttinfos[i]);
- break;
- }
- }
-
- // If there are only DST ttinfos, pick the first one, if there are no
- // ttinfos at all, set ttinfo_before to NULL
- if (self->ttinfo_before == NULL && self->num_ttinfos > 0) {
- self->ttinfo_before = &(self->_ttinfos[0]);
- }
-
- if (tz_str != Py_None && PyObject_IsTrue(tz_str)) {
- if (parse_tz_str(tz_str, &(self->tzrule_after))) {
- goto error;
- }
- }
- else {
- if (!self->num_ttinfos) {
- PyErr_Format(PyExc_ValueError, "No time zone information found.");
- goto error;
- }
-
- size_t idx;
- if (!self->num_transitions) {
- idx = self->num_ttinfos - 1;
- }
- else {
- idx = trans_idx[self->num_transitions - 1];
- }
-
- _ttinfo *tti = &(self->_ttinfos[idx]);
- build_tzrule(tti->tzname, NULL, tti->utcoff_seconds, 0, NULL, NULL,
- &(self->tzrule_after));
-
- // We've abused the build_tzrule constructor to construct an STD-only
- // rule mimicking whatever ttinfo we've picked up, but it's possible
- // that the one we've picked up is a DST zone, so we need to make sure
- // that the dstoff is set correctly in that case.
- if (PyObject_IsTrue(tti->dstoff)) {
- _ttinfo *tti_after = &(self->tzrule_after.std);
- Py_DECREF(tti_after->dstoff);
- tti_after->dstoff = tti->dstoff;
- Py_INCREF(tti_after->dstoff);
- }
- }
-
- // Determine if this is a "fixed offset" zone, meaning that the output of
- // the utcoffset, dst and tzname functions does not depend on the specific
- // datetime passed.
- //
- // We make three simplifying assumptions here:
- //
- // 1. If tzrule_after is not std_only, it has transitions that might occur
- // (it is possible to construct TZ strings that specify STD and DST but
- // no transitions ever occur, such as AAA0BBB,0/0,J365/25).
- // 2. If self->_ttinfos contains more than one _ttinfo object, the objects
- // represent different offsets.
- // 3. self->ttinfos contains no unused _ttinfos (in which case an otherwise
- // fixed-offset zone with extra _ttinfos defined may appear to *not* be
- // a fixed offset zone).
- //
- // Violations to these assumptions would be fairly exotic, and exotic
- // zones should almost certainly not be used with datetime.time (the
- // only thing that would be affected by this).
- if (self->num_ttinfos > 1 || !self->tzrule_after.std_only) {
- self->fixed_offset = 0;
- }
- else if (self->num_ttinfos == 0) {
- self->fixed_offset = 1;
- }
- else {
- int constant_offset =
- ttinfo_eq(&(self->_ttinfos[0]), &self->tzrule_after.std);
- if (constant_offset < 0) {
- goto error;
- }
- else {
- self->fixed_offset = constant_offset;
- }
- }
-
- int rv = 0;
- goto cleanup;
-error:
- // These resources only need to be freed if we have failed, if we succeed
- // in initializing a PyZoneInfo_ZoneInfo object, we can rely on its dealloc
- // method to free the relevant resources.
- if (self->trans_list_utc != NULL) {
- PyMem_Free(self->trans_list_utc);
- self->trans_list_utc = NULL;
- }
-
- for (size_t i = 0; i < 2; ++i) {
- if (self->trans_list_wall[i] != NULL) {
- PyMem_Free(self->trans_list_wall[i]);
- self->trans_list_wall[i] = NULL;
- }
- }
-
- if (self->_ttinfos != NULL) {
- for (size_t i = 0; i < ttinfos_allocated; ++i) {
- xdecref_ttinfo(&(self->_ttinfos[i]));
- }
- PyMem_Free(self->_ttinfos);
- self->_ttinfos = NULL;
- }
-
- if (self->trans_ttinfos != NULL) {
- PyMem_Free(self->trans_ttinfos);
- self->trans_ttinfos = NULL;
- }
-
- rv = -1;
-cleanup:
- Py_XDECREF(data_tuple);
-
- if (utcoff != NULL) {
- PyMem_Free(utcoff);
- }
-
- if (dstoff != NULL) {
- PyMem_Free(dstoff);
- }
-
- if (isdst != NULL) {
- PyMem_Free(isdst);
- }
-
- if (trans_idx != NULL) {
- PyMem_Free(trans_idx);
- }
-
- return rv;
-}
-
-/* Function to calculate the local timestamp of a transition from the year. */
-int64_t
-calendarrule_year_to_timestamp(TransitionRuleType *base_self, int year)
-{
- CalendarRule *self = (CalendarRule *)base_self;
-
- // We want (year, month, day of month); we have year and month, but we
- // need to turn (week, day-of-week) into day-of-month
- //
- // Week 1 is the first week in which day `day` (where 0 = Sunday) appears.
- // Week 5 represents the last occurrence of day `day`, so we need to know
- // the first weekday of the month and the number of days in the month.
- int8_t first_day = (ymd_to_ord(year, self->month, 1) + 6) % 7;
- uint8_t days_in_month = DAYS_IN_MONTH[self->month];
- if (self->month == 2 && is_leap_year(year)) {
- days_in_month += 1;
- }
-
- // This equation seems magical, so I'll break it down:
- // 1. calendar says 0 = Monday, POSIX says 0 = Sunday so we need first_day
- // + 1 to get 1 = Monday -> 7 = Sunday, which is still equivalent
- // because this math is mod 7
- // 2. Get first day - desired day mod 7 (adjusting by 7 for negative
- // numbers so that -1 % 7 = 6).
- // 3. Add 1 because month days are a 1-based index.
- int8_t month_day = ((int8_t)(self->day) - (first_day + 1)) % 7;
- if (month_day < 0) {
- month_day += 7;
- }
- month_day += 1;
-
- // Now use a 0-based index version of `week` to calculate the w-th
- // occurrence of `day`
- month_day += ((int8_t)(self->week) - 1) * 7;
-
- // month_day will only be > days_in_month if w was 5, and `w` means "last
- // occurrence of `d`", so now we just check if we over-shot the end of the
- // month and if so knock off 1 week.
- if (month_day > days_in_month) {
- month_day -= 7;
- }
-
- int64_t ordinal = ymd_to_ord(year, self->month, month_day) - EPOCHORDINAL;
- return ((ordinal * 86400) + (int64_t)(self->hour * 3600) +
- (int64_t)(self->minute * 60) + (int64_t)(self->second));
-}
-
-/* Constructor for CalendarRule. */
-int
-calendarrule_new(uint8_t month, uint8_t week, uint8_t day, int8_t hour,
- int8_t minute, int8_t second, CalendarRule *out)
-{
- // These bounds come from the POSIX standard, which describes an Mm.n.d
- // rule as:
- //
- // The d'th day (0 <= d <= 6) of week n of month m of the year (1 <= n <=
- // 5, 1 <= m <= 12, where week 5 means "the last d day in month m" which
- // may occur in either the fourth or the fifth week). Week 1 is the first
- // week in which the d'th day occurs. Day zero is Sunday.
- if (month <= 0 || month > 12) {
- PyErr_Format(PyExc_ValueError, "Month must be in (0, 12]");
- return -1;
- }
-
- if (week <= 0 || week > 5) {
- PyErr_Format(PyExc_ValueError, "Week must be in (0, 5]");
- return -1;
- }
-
- // If the 'day' parameter type is changed to a signed type,
- // "day < 0" check must be added.
- if (/* day < 0 || */ day > 6) {
- PyErr_Format(PyExc_ValueError, "Day must be in [0, 6]");
- return -1;
- }
-
- TransitionRuleType base = {&calendarrule_year_to_timestamp};
-
- CalendarRule new_offset = {
- .base = base,
- .month = month,
- .week = week,
- .day = day,
- .hour = hour,
- .minute = minute,
- .second = second,
- };
-
- *out = new_offset;
- return 0;
-}
-
-/* Function to calculate the local timestamp of a transition from the year.
- *
- * This translates the day of the year into a local timestamp — either a
- * 1-based Julian day, not including leap days, or the 0-based year-day,
- * including leap days.
- * */
-int64_t
-dayrule_year_to_timestamp(TransitionRuleType *base_self, int year)
-{
- // The function signature requires a TransitionRuleType pointer, but this
- // function is only applicable to DayRule* objects.
- DayRule *self = (DayRule *)base_self;
-
- // ymd_to_ord calculates the number of days since 0001-01-01, but we want
- // to know the number of days since 1970-01-01, so we must subtract off
- // the equivalent of ymd_to_ord(1970, 1, 1).
- //
- // We subtract off an additional 1 day to account for January 1st (we want
- // the number of full days *before* the date of the transition - partial
- // days are accounted for in the hour, minute and second portions.
- int64_t days_before_year = ymd_to_ord(year, 1, 1) - EPOCHORDINAL - 1;
-
- // The Julian day specification skips over February 29th in leap years,
- // from the POSIX standard:
- //
- // Leap days shall not be counted. That is, in all years-including leap
- // years-February 28 is day 59 and March 1 is day 60. It is impossible to
- // refer explicitly to the occasional February 29.
- //
- // This is actually more useful than you'd think — if you want a rule that
- // always transitions on a given calendar day (other than February 29th),
- // you would use a Julian day, e.g. J91 always refers to April 1st and J365
- // always refers to December 31st.
- unsigned int day = self->day;
- if (self->julian && day >= 59 && is_leap_year(year)) {
- day += 1;
- }
-
- return ((days_before_year + day) * 86400) + (self->hour * 3600) +
- (self->minute * 60) + self->second;
-}
-
-/* Constructor for DayRule. */
-static int
-dayrule_new(uint8_t julian, unsigned int day, int8_t hour, int8_t minute,
- int8_t second, DayRule *out)
-{
- // The POSIX standard specifies that Julian days must be in the range (1 <=
- // n <= 365) and that non-Julian (they call it "0-based Julian") days must
- // be in the range (0 <= n <= 365).
- if (day < julian || day > 365) {
- PyErr_Format(PyExc_ValueError, "day must be in [%u, 365], not: %u",
- julian, day);
- return -1;
- }
-
- TransitionRuleType base = {
- &dayrule_year_to_timestamp,
- };
-
- DayRule tmp = {
- .base = base,
- .julian = julian,
- .day = day,
- .hour = hour,
- .minute = minute,
- .second = second,
- };
-
- *out = tmp;
-
- return 0;
-}
-
-/* Calculate the start and end rules for a _tzrule in the given year. */
-static void
-tzrule_transitions(_tzrule *rule, int year, int64_t *start, int64_t *end)
-{
- assert(rule->start != NULL);
- assert(rule->end != NULL);
- *start = rule->start->year_to_timestamp(rule->start, year);
- *end = rule->end->year_to_timestamp(rule->end, year);
-}
-
-/* Calculate the _ttinfo that applies at a given local time from a _tzrule.
- *
- * This takes a local timestamp and fold for disambiguation purposes; the year
- * could technically be calculated from the timestamp, but given that the
- * callers of this function already have the year information accessible from
- * the datetime struct, it is taken as an additional parameter to reduce
- * unnecessary calculation.
- * */
-static _ttinfo *
-find_tzrule_ttinfo(_tzrule *rule, int64_t ts, unsigned char fold, int year)
-{
- if (rule->std_only) {
- return &(rule->std);
- }
-
- int64_t start, end;
- uint8_t isdst;
-
- tzrule_transitions(rule, year, &start, &end);
-
- // With fold = 0, the period (denominated in local time) with the smaller
- // offset starts at the end of the gap and ends at the end of the fold;
- // with fold = 1, it runs from the start of the gap to the beginning of the
- // fold.
- //
- // So in order to determine the DST boundaries we need to know both the
- // fold and whether DST is positive or negative (rare), and it turns out
- // that this boils down to fold XOR is_positive.
- if (fold == (rule->dst_diff >= 0)) {
- end -= rule->dst_diff;
- }
- else {
- start += rule->dst_diff;
- }
-
- if (start < end) {
- isdst = (ts >= start) && (ts < end);
- }
- else {
- isdst = (ts < end) || (ts >= start);
- }
-
- if (isdst) {
- return &(rule->dst);
- }
- else {
- return &(rule->std);
- }
-}
-
-/* Calculate the ttinfo and fold that applies for a _tzrule at an epoch time.
- *
- * This function can determine the _ttinfo that applies at a given epoch time,
- * (analogous to trans_list_utc), and whether or not the datetime is in a fold.
- * This is to be used in the .fromutc() function.
- *
- * The year is technically a redundant parameter, because it can be calculated
- * from the timestamp, but all callers of this function should have the year
- * in the datetime struct anyway, so taking it as a parameter saves unnecessary
- * calculation.
- **/
-static _ttinfo *
-find_tzrule_ttinfo_fromutc(_tzrule *rule, int64_t ts, int year,
- unsigned char *fold)
-{
- if (rule->std_only) {
- *fold = 0;
- return &(rule->std);
- }
-
- int64_t start, end;
- uint8_t isdst;
- tzrule_transitions(rule, year, &start, &end);
- start -= rule->std.utcoff_seconds;
- end -= rule->dst.utcoff_seconds;
-
- if (start < end) {
- isdst = (ts >= start) && (ts < end);
- }
- else {
- isdst = (ts < end) || (ts >= start);
- }
-
- // For positive DST, the ambiguous period is one dst_diff after the end of
- // DST; for negative DST, the ambiguous period is one dst_diff before the
- // start of DST.
- int64_t ambig_start, ambig_end;
- if (rule->dst_diff > 0) {
- ambig_start = end;
- ambig_end = end + rule->dst_diff;
- }
- else {
- ambig_start = start;
- ambig_end = start - rule->dst_diff;
- }
-
- *fold = (ts >= ambig_start) && (ts < ambig_end);
-
- if (isdst) {
- return &(rule->dst);
- }
- else {
- return &(rule->std);
- }
-}
-
-/* Parse a TZ string in the format specified by the POSIX standard:
- *
- * std offset[dst[offset],start[/time],end[/time]]
- *
- * std and dst must be 3 or more characters long and must not contain a
- * leading colon, embedded digits, commas, nor a plus or minus signs; The
- * spaces between "std" and "offset" are only for display and are not actually
- * present in the string.
- *
- * The format of the offset is ``[+|-]hh[:mm[:ss]]``
- *
- * See the POSIX.1 spec: IEE Std 1003.1-2018 §8.3:
- *
- * https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
- */
-static int
-parse_tz_str(PyObject *tz_str_obj, _tzrule *out)
-{
- PyObject *std_abbr = NULL;
- PyObject *dst_abbr = NULL;
- TransitionRuleType *start = NULL;
- TransitionRuleType *end = NULL;
- // Initialize offsets to invalid value (> 24 hours)
- long std_offset = 1 << 20;
- long dst_offset = 1 << 20;
-
- char *tz_str = PyBytes_AsString(tz_str_obj);
- if (tz_str == NULL) {
- return -1;
- }
- char *p = tz_str;
-
- // Read the `std` abbreviation, which must be at least 3 characters long.
- Py_ssize_t num_chars = parse_abbr(p, &std_abbr);
- if (num_chars < 1) {
- PyErr_Format(PyExc_ValueError, "Invalid STD format in %R", tz_str_obj);
- goto error;
- }
-
- p += num_chars;
-
- // Now read the STD offset, which is required
- num_chars = parse_tz_delta(p, &std_offset);
- if (num_chars < 0) {
- PyErr_Format(PyExc_ValueError, "Invalid STD offset in %R", tz_str_obj);
- goto error;
- }
- p += num_chars;
-
- // If the string ends here, there is no DST, otherwise we must parse the
- // DST abbreviation and start and end dates and times.
- if (*p == '\0') {
- goto complete;
- }
-
- num_chars = parse_abbr(p, &dst_abbr);
- if (num_chars < 1) {
- PyErr_Format(PyExc_ValueError, "Invalid DST format in %R", tz_str_obj);
- goto error;
- }
- p += num_chars;
-
- if (*p == ',') {
- // From the POSIX standard:
- //
- // If no offset follows dst, the alternative time is assumed to be one
- // hour ahead of standard time.
- dst_offset = std_offset + 3600;
- }
- else {
- num_chars = parse_tz_delta(p, &dst_offset);
- if (num_chars < 0) {
- PyErr_Format(PyExc_ValueError, "Invalid DST offset in %R",
- tz_str_obj);
- goto error;
- }
-
- p += num_chars;
- }
-
- TransitionRuleType **transitions[2] = {&start, &end};
- for (size_t i = 0; i < 2; ++i) {
- if (*p != ',') {
- PyErr_Format(PyExc_ValueError,
- "Missing transition rules in TZ string: %R",
- tz_str_obj);
- goto error;
- }
- p++;
-
- num_chars = parse_transition_rule(p, transitions[i]);
- if (num_chars < 0) {
- PyErr_Format(PyExc_ValueError,
- "Malformed transition rule in TZ string: %R",
- tz_str_obj);
- goto error;
- }
- p += num_chars;
- }
-
- if (*p != '\0') {
- PyErr_Format(PyExc_ValueError,
- "Extraneous characters at end of TZ string: %R",
- tz_str_obj);
- goto error;
- }
-
-complete:
- build_tzrule(std_abbr, dst_abbr, std_offset, dst_offset, start, end, out);
- Py_DECREF(std_abbr);
- Py_XDECREF(dst_abbr);
-
- return 0;
-error:
- Py_XDECREF(std_abbr);
- if (dst_abbr != NULL && dst_abbr != Py_None) {
- Py_DECREF(dst_abbr);
- }
-
- if (start != NULL) {
- PyMem_Free(start);
- }
-
- if (end != NULL) {
- PyMem_Free(end);
- }
-
- return -1;
-}
-
-static int
-parse_uint(const char *const p, uint8_t *value)
-{
- if (!isdigit(*p)) {
- return -1;
- }
-
- *value = (*p) - '0';
- return 0;
-}
-
-/* Parse the STD and DST abbreviations from a TZ string. */
-static Py_ssize_t
-parse_abbr(const char *const p, PyObject **abbr)
-{
- const char *ptr = p;
- char buff = *ptr;
- const char *str_start;
- const char *str_end;
-
- if (*ptr == '<') {
- ptr++;
- str_start = ptr;
- while ((buff = *ptr) != '>') {
- // From the POSIX standard:
- //
- // In the quoted form, the first character shall be the less-than
- // ( '<' ) character and the last character shall be the
- // greater-than ( '>' ) character. All characters between these
- // quoting characters shall be alphanumeric characters from the
- // portable character set in the current locale, the plus-sign (
- // '+' ) character, or the minus-sign ( '-' ) character. The std
- // and dst fields in this case shall not include the quoting
- // characters.
- if (!isalpha(buff) && !isdigit(buff) && buff != '+' &&
- buff != '-') {
- return -1;
- }
- ptr++;
- }
- str_end = ptr;
- ptr++;
- }
- else {
- str_start = p;
- // From the POSIX standard:
- //
- // In the unquoted form, all characters in these fields shall be
- // alphabetic characters from the portable character set in the
- // current locale.
- while (isalpha(*ptr)) {
- ptr++;
- }
- str_end = ptr;
- }
-
- *abbr = PyUnicode_FromStringAndSize(str_start, str_end - str_start);
- if (*abbr == NULL) {
- return -1;
- }
-
- return ptr - p;
-}
-
-/* Parse a UTC offset from a TZ str. */
-static Py_ssize_t
-parse_tz_delta(const char *const p, long *total_seconds)
-{
- // From the POSIX spec:
- //
- // Indicates the value added to the local time to arrive at Coordinated
- // Universal Time. The offset has the form:
- //
- // hh[:mm[:ss]]
- //
- // One or more digits may be used; the value is always interpreted as a
- // decimal number.
- //
- // The POSIX spec says that the values for `hour` must be between 0 and 24
- // hours, but RFC 8536 §3.3.1 specifies that the hours part of the
- // transition times may be signed and range from -167 to 167.
- long sign = -1;
- long hours = 0;
- long minutes = 0;
- long seconds = 0;
-
- const char *ptr = p;
- char buff = *ptr;
- if (buff == '-' || buff == '+') {
- // Negative numbers correspond to *positive* offsets, from the spec:
- //
- // If preceded by a '-', the timezone shall be east of the Prime
- // Meridian; otherwise, it shall be west (which may be indicated by
- // an optional preceding '+' ).
- if (buff == '-') {
- sign = 1;
- }
-
- ptr++;
- }
-
- // The hour can be 1 or 2 numeric characters
- for (size_t i = 0; i < 2; ++i) {
- buff = *ptr;
- if (!isdigit(buff)) {
- if (i == 0) {
- return -1;
- }
- else {
- break;
- }
- }
-
- hours *= 10;
- hours += buff - '0';
- ptr++;
- }
-
- if (hours > 24 || hours < 0) {
- return -1;
- }
-
- // Minutes and seconds always of the format ":dd"
- long *outputs[2] = {&minutes, &seconds};
- for (size_t i = 0; i < 2; ++i) {
- if (*ptr != ':') {
- goto complete;
- }
- ptr++;
-
- for (size_t j = 0; j < 2; ++j) {
- buff = *ptr;
- if (!isdigit(buff)) {
- return -1;
- }
- *(outputs[i]) *= 10;
- *(outputs[i]) += buff - '0';
- ptr++;
- }
- }
-
-complete:
- *total_seconds = sign * ((hours * 3600) + (minutes * 60) + seconds);
-
- return ptr - p;
-}
-
-/* Parse the date portion of a transition rule. */
-static Py_ssize_t
-parse_transition_rule(const char *const p, TransitionRuleType **out)
-{
- // The full transition rule indicates when to change back and forth between
- // STD and DST, and has the form:
- //
- // date[/time],date[/time]
- //
- // This function parses an individual date[/time] section, and returns
- // the number of characters that contributed to the transition rule. This
- // does not include the ',' at the end of the first rule.
- //
- // The POSIX spec states that if *time* is not given, the default is 02:00.
- const char *ptr = p;
- int8_t hour = 2;
- int8_t minute = 0;
- int8_t second = 0;
-
- // Rules come in one of three flavors:
- //
- // 1. Jn: Julian day n, with no leap days.
- // 2. n: Day of year (0-based, with leap days)
- // 3. Mm.n.d: Specifying by month, week and day-of-week.
-
- if (*ptr == 'M') {
- uint8_t month, week, day;
- ptr++;
- if (parse_uint(ptr, &month)) {
- return -1;
- }
- ptr++;
- if (*ptr != '.') {
- uint8_t tmp;
- if (parse_uint(ptr, &tmp)) {
- return -1;
- }
-
- month *= 10;
- month += tmp;
- ptr++;
- }
-
- uint8_t *values[2] = {&week, &day};
- for (size_t i = 0; i < 2; ++i) {
- if (*ptr != '.') {
- return -1;
- }
- ptr++;
-
- if (parse_uint(ptr, values[i])) {
- return -1;
- }
- ptr++;
- }
-
- if (*ptr == '/') {
- ptr++;
- Py_ssize_t num_chars =
- parse_transition_time(ptr, &hour, &minute, &second);
- if (num_chars < 0) {
- return -1;
- }
- ptr += num_chars;
- }
-
- CalendarRule *rv = PyMem_Calloc(1, sizeof(CalendarRule));
- if (rv == NULL) {
- return -1;
- }
-
- if (calendarrule_new(month, week, day, hour, minute, second, rv)) {
- PyMem_Free(rv);
- return -1;
- }
-
- *out = (TransitionRuleType *)rv;
- }
- else {
- uint8_t julian = 0;
- unsigned int day = 0;
- if (*ptr == 'J') {
- julian = 1;
- ptr++;
- }
-
- for (size_t i = 0; i < 3; ++i) {
- if (!isdigit(*ptr)) {
- if (i == 0) {
- return -1;
- }
- break;
- }
- day *= 10;
- day += (*ptr) - '0';
- ptr++;
- }
-
- if (*ptr == '/') {
- ptr++;
- Py_ssize_t num_chars =
- parse_transition_time(ptr, &hour, &minute, &second);
- if (num_chars < 0) {
- return -1;
- }
- ptr += num_chars;
- }
-
- DayRule *rv = PyMem_Calloc(1, sizeof(DayRule));
- if (rv == NULL) {
- return -1;
- }
-
- if (dayrule_new(julian, day, hour, minute, second, rv)) {
- PyMem_Free(rv);
- return -1;
- }
- *out = (TransitionRuleType *)rv;
- }
-
- return ptr - p;
-}
-
-/* Parse the time portion of a transition rule (e.g. following an /) */
-static Py_ssize_t
-parse_transition_time(const char *const p, int8_t *hour, int8_t *minute,
- int8_t *second)
-{
- // From the spec:
- //
- // The time has the same format as offset except that no leading sign
- // ( '-' or '+' ) is allowed.
- //
- // The format for the offset is:
- //
- // h[h][:mm[:ss]]
- //
- // RFC 8536 also allows transition times to be signed and to range from
- // -167 to +167, but the current version only supports [0, 99].
- //
- // TODO: Support the full range of transition hours.
- int8_t *components[3] = {hour, minute, second};
- const char *ptr = p;
- int8_t sign = 1;
-
- if (*ptr == '-' || *ptr == '+') {
- if (*ptr == '-') {
- sign = -1;
- }
- ptr++;
- }
-
- for (size_t i = 0; i < 3; ++i) {
- if (i > 0) {
- if (*ptr != ':') {
- break;
- }
- ptr++;
- }
-
- uint8_t buff = 0;
- for (size_t j = 0; j < 2; j++) {
- if (!isdigit(*ptr)) {
- if (i == 0 && j > 0) {
- break;
- }
- return -1;
- }
-
- buff *= 10;
- buff += (*ptr) - '0';
- ptr++;
- }
-
- *(components[i]) = sign * buff;
- }
-
- return ptr - p;
-}
-
-/* Constructor for a _tzrule.
- *
- * If `dst_abbr` is NULL, this will construct an "STD-only" _tzrule, in which
- * case `dst_offset` will be ignored and `start` and `end` are expected to be
- * NULL as well.
- *
- * Returns 0 on success.
- */
-static int
-build_tzrule(PyObject *std_abbr, PyObject *dst_abbr, long std_offset,
- long dst_offset, TransitionRuleType *start,
- TransitionRuleType *end, _tzrule *out)
-{
- _tzrule rv = {{0}};
-
- rv.start = start;
- rv.end = end;
-
- if (build_ttinfo(std_offset, 0, std_abbr, &rv.std)) {
- goto error;
- }
-
- if (dst_abbr != NULL) {
- rv.dst_diff = dst_offset - std_offset;
- if (build_ttinfo(dst_offset, rv.dst_diff, dst_abbr, &rv.dst)) {
- goto error;
- }
- }
- else {
- rv.std_only = 1;
- }
-
- *out = rv;
-
- return 0;
-error:
- xdecref_ttinfo(&rv.std);
- xdecref_ttinfo(&rv.dst);
- return -1;
-}
-
-/* Destructor for _tzrule. */
-static void
-free_tzrule(_tzrule *tzrule)
-{
- xdecref_ttinfo(&(tzrule->std));
- if (!tzrule->std_only) {
- xdecref_ttinfo(&(tzrule->dst));
- }
-
- if (tzrule->start != NULL) {
- PyMem_Free(tzrule->start);
- }
-
- if (tzrule->end != NULL) {
- PyMem_Free(tzrule->end);
- }
-}
-
-/* Calculate DST offsets from transitions and UTC offsets
- *
- * This is necessary because each C `ttinfo` only contains the UTC offset,
- * time zone abbreviation and an isdst boolean - it does not include the
- * amount of the DST offset, but we need the amount for the dst() function.
- *
- * Thus function uses heuristics to infer what the offset should be, so it
- * is not guaranteed that this will work for all zones. If we cannot assign
- * a value for a given DST offset, we'll assume it's 1H rather than 0H, so
- * bool(dt.dst()) will always match ttinfo.isdst.
- */
-static void
-utcoff_to_dstoff(size_t *trans_idx, long *utcoffs, long *dstoffs,
- unsigned char *isdsts, size_t num_transitions,
- size_t num_ttinfos)
-{
- size_t dst_count = 0;
- size_t dst_found = 0;
- for (size_t i = 0; i < num_ttinfos; ++i) {
- dst_count++;
- }
-
- for (size_t i = 1; i < num_transitions; ++i) {
- if (dst_count == dst_found) {
- break;
- }
-
- size_t idx = trans_idx[i];
- size_t comp_idx = trans_idx[i - 1];
-
- // Only look at DST offsets that have nto been assigned already
- if (!isdsts[idx] || dstoffs[idx] != 0) {
- continue;
- }
-
- long dstoff = 0;
- long utcoff = utcoffs[idx];
-
- if (!isdsts[comp_idx]) {
- dstoff = utcoff - utcoffs[comp_idx];
- }
-
- if (!dstoff && idx < (num_ttinfos - 1)) {
- comp_idx = trans_idx[i + 1];
-
- // If the following transition is also DST and we couldn't find
- // the DST offset by this point, we're going to have to skip it
- // and hope this transition gets assigned later
- if (isdsts[comp_idx]) {
- continue;
- }
-
- dstoff = utcoff - utcoffs[comp_idx];
- }
-
- if (dstoff) {
- dst_found++;
- dstoffs[idx] = dstoff;
- }
- }
-
- if (dst_found < dst_count) {
- // If there are time zones we didn't find a value for, we'll end up
- // with dstoff = 0 for something where isdst=1. This is obviously
- // wrong — one hour will be a much better guess than 0.
- for (size_t idx = 0; idx < num_ttinfos; ++idx) {
- if (isdsts[idx] && !dstoffs[idx]) {
- dstoffs[idx] = 3600;
- }
- }
- }
-}
-
-#define _swap(x, y, buffer) \
- buffer = x; \
- x = y; \
- y = buffer;
-
-/* Calculate transitions in local time from UTC time and offsets.
- *
- * We want to know when each transition occurs, denominated in the number of
- * nominal wall-time seconds between 1970-01-01T00:00:00 and the transition in
- * *local time* (note: this is *not* equivalent to the output of
- * datetime.timestamp, which is the total number of seconds actual elapsed
- * since 1970-01-01T00:00:00Z in UTC).
- *
- * This is an ambiguous question because "local time" can be ambiguous — but it
- * is disambiguated by the `fold` parameter, so we allocate two arrays:
- *
- * trans_local[0]: The wall-time transitions for fold=0
- * trans_local[1]: The wall-time transitions for fold=1
- *
- * This returns 0 on success and a negative number of failure. The trans_local
- * arrays must be freed if they are not NULL.
- */
-static int
-ts_to_local(size_t *trans_idx, int64_t *trans_utc, long *utcoff,
- int64_t *trans_local[2], size_t num_ttinfos,
- size_t num_transitions)
-{
- if (num_transitions == 0) {
- return 0;
- }
-
- // Copy the UTC transitions into each array to be modified in place later
- for (size_t i = 0; i < 2; ++i) {
- trans_local[i] = PyMem_Malloc(num_transitions * sizeof(int64_t));
- if (trans_local[i] == NULL) {
- return -1;
- }
-
- memcpy(trans_local[i], trans_utc, num_transitions * sizeof(int64_t));
- }
-
- int64_t offset_0, offset_1, buff;
- if (num_ttinfos > 1) {
- offset_0 = utcoff[0];
- offset_1 = utcoff[trans_idx[0]];
-
- if (offset_1 > offset_0) {
- _swap(offset_0, offset_1, buff);
- }
- }
- else {
- offset_0 = utcoff[0];
- offset_1 = utcoff[0];
- }
-
- trans_local[0][0] += offset_0;
- trans_local[1][0] += offset_1;
-
- for (size_t i = 1; i < num_transitions; ++i) {
- offset_0 = utcoff[trans_idx[i - 1]];
- offset_1 = utcoff[trans_idx[i]];
-
- if (offset_1 > offset_0) {
- _swap(offset_1, offset_0, buff);
- }
-
- trans_local[0][i] += offset_0;
- trans_local[1][i] += offset_1;
- }
-
- return 0;
-}
-
-/* Simple bisect_right binary search implementation */
-static size_t
-_bisect(const int64_t value, const int64_t *arr, size_t size)
-{
- size_t lo = 0;
- size_t hi = size;
- size_t m;
-
- while (lo < hi) {
- m = (lo + hi) / 2;
- if (arr[m] > value) {
- hi = m;
- }
- else {
- lo = m + 1;
- }
- }
-
- return hi;
-}
-
-/* Find the ttinfo rules that apply at a given local datetime. */
-static _ttinfo *
-find_ttinfo(PyZoneInfo_ZoneInfo *self, PyObject *dt)
-{
- // datetime.time has a .tzinfo attribute that passes None as the dt
- // argument; it only really has meaning for fixed-offset zones.
- if (dt == Py_None) {
- if (self->fixed_offset) {
- return &(self->tzrule_after.std);
- }
- else {
- return &NO_TTINFO;
- }
- }
-
- int64_t ts;
- if (get_local_timestamp(dt, &ts)) {
- return NULL;
- }
-
- unsigned char fold = PyDateTime_DATE_GET_FOLD(dt);
- assert(fold < 2);
- int64_t *local_transitions = self->trans_list_wall[fold];
- size_t num_trans = self->num_transitions;
-
- if (num_trans && ts < local_transitions[0]) {
- return self->ttinfo_before;
- }
- else if (!num_trans || ts > local_transitions[self->num_transitions - 1]) {
- return find_tzrule_ttinfo(&(self->tzrule_after), ts, fold,
- PyDateTime_GET_YEAR(dt));
- }
- else {
- size_t idx = _bisect(ts, local_transitions, self->num_transitions) - 1;
- assert(idx < self->num_transitions);
- return self->trans_ttinfos[idx];
- }
-}
-
-static int
-is_leap_year(int year)
-{
- const unsigned int ayear = (unsigned int)year;
- return ayear % 4 == 0 && (ayear % 100 != 0 || ayear % 400 == 0);
-}
-
-/* Calculates ordinal datetime from year, month and day. */
-static int
-ymd_to_ord(int y, int m, int d)
-{
- y -= 1;
- int days_before_year = (y * 365) + (y / 4) - (y / 100) + (y / 400);
- int yearday = DAYS_BEFORE_MONTH[m];
- if (m > 2 && is_leap_year(y + 1)) {
- yearday += 1;
- }
-
- return days_before_year + yearday + d;
-}
-
-/* Calculate the number of seconds since 1970-01-01 in local time.
- *
- * This gets a datetime in the same "units" as self->trans_list_wall so that we
- * can easily determine which transitions a datetime falls between. See the
- * comment above ts_to_local for more information.
- * */
-static int
-get_local_timestamp(PyObject *dt, int64_t *local_ts)
-{
- assert(local_ts != NULL);
-
- int hour, minute, second;
- int ord;
- if (PyDateTime_CheckExact(dt)) {
- int y = PyDateTime_GET_YEAR(dt);
- int m = PyDateTime_GET_MONTH(dt);
- int d = PyDateTime_GET_DAY(dt);
- hour = PyDateTime_DATE_GET_HOUR(dt);
- minute = PyDateTime_DATE_GET_MINUTE(dt);
- second = PyDateTime_DATE_GET_SECOND(dt);
-
- ord = ymd_to_ord(y, m, d);
- }
- else {
- PyObject *num = PyObject_CallMethod(dt, "toordinal", NULL);
- if (num == NULL) {
- return -1;
- }
-
- ord = PyLong_AsLong(num);
- Py_DECREF(num);
- if (ord == -1 && PyErr_Occurred()) {
- return -1;
- }
-
- num = PyObject_GetAttrString(dt, "hour");
- if (num == NULL) {
- return -1;
- }
- hour = PyLong_AsLong(num);
- Py_DECREF(num);
- if (hour == -1) {
- return -1;
- }
-
- num = PyObject_GetAttrString(dt, "minute");
- if (num == NULL) {
- return -1;
- }
- minute = PyLong_AsLong(num);
- Py_DECREF(num);
- if (minute == -1) {
- return -1;
- }
-
- num = PyObject_GetAttrString(dt, "second");
- if (num == NULL) {
- return -1;
- }
- second = PyLong_AsLong(num);
- Py_DECREF(num);
- if (second == -1) {
- return -1;
- }
- }
-
- *local_ts = (int64_t)(ord - EPOCHORDINAL) * 86400 +
- (int64_t)(hour * 3600 + minute * 60 + second);
-
- return 0;
-}
-
-/////
-// Functions for cache handling
-
-/* Constructor for StrongCacheNode */
-static StrongCacheNode *
-strong_cache_node_new(PyObject *key, PyObject *zone)
-{
- StrongCacheNode *node = PyMem_Malloc(sizeof(StrongCacheNode));
- if (node == NULL) {
- return NULL;
- }
-
- Py_INCREF(key);
- Py_INCREF(zone);
-
- node->next = NULL;
- node->prev = NULL;
- node->key = key;
- node->zone = zone;
-
- return node;
-}
-
-/* Destructor for StrongCacheNode */
-void
-strong_cache_node_free(StrongCacheNode *node)
-{
- Py_XDECREF(node->key);
- Py_XDECREF(node->zone);
-
- PyMem_Free(node);
-}
-
-/* Frees all nodes at or after a specified root in the strong cache.
- *
- * This can be used on the root node to free the entire cache or it can be used
- * to clear all nodes that have been expired (which, if everything is going
- * right, will actually only be 1 node at a time).
- */
-void
-strong_cache_free(StrongCacheNode *root)
-{
- StrongCacheNode *node = root;
- StrongCacheNode *next_node;
- while (node != NULL) {
- next_node = node->next;
- strong_cache_node_free(node);
-
- node = next_node;
- }
-}
-
-/* Removes a node from the cache and update its neighbors.
- *
- * This is used both when ejecting a node from the cache and when moving it to
- * the front of the cache.
- */
-static void
-remove_from_strong_cache(StrongCacheNode *node)
-{
- if (ZONEINFO_STRONG_CACHE == node) {
- ZONEINFO_STRONG_CACHE = node->next;
- }
-
- if (node->prev != NULL) {
- node->prev->next = node->next;
- }
-
- if (node->next != NULL) {
- node->next->prev = node->prev;
- }
-
- node->next = NULL;
- node->prev = NULL;
-}
-
-/* Retrieves the node associated with a key, if it exists.
- *
- * This traverses the strong cache until it finds a matching key and returns a
- * pointer to the relevant node if found. Returns NULL if no node is found.
- *
- * root may be NULL, indicating an empty cache.
- */
-static StrongCacheNode *
-find_in_strong_cache(const StrongCacheNode *const root, PyObject *const key)
-{
- const StrongCacheNode *node = root;
- while (node != NULL) {
- int rv = PyObject_RichCompareBool(key, node->key, Py_EQ);
- if (rv < 0) {
- return NULL;
- }
- if (rv) {
- return (StrongCacheNode *)node;
- }
-
- node = node->next;
- }
-
- return NULL;
-}
-
-/* Ejects a given key from the class's strong cache, if applicable.
- *
- * This function is used to enable the per-key functionality in clear_cache.
- */
-static int
-eject_from_strong_cache(const PyTypeObject *const type, PyObject *key)
-{
- if (type != &PyZoneInfo_ZoneInfoType) {
- return 0;
- }
-
- StrongCacheNode *node = find_in_strong_cache(ZONEINFO_STRONG_CACHE, key);
- if (node != NULL) {
- remove_from_strong_cache(node);
-
- strong_cache_node_free(node);
- }
- else if (PyErr_Occurred()) {
- return -1;
- }
- return 0;
-}
-
-/* Moves a node to the front of the LRU cache.
- *
- * The strong cache is an LRU cache, so whenever a given node is accessed, if
- * it is not at the front of the cache, it needs to be moved there.
- */
-static void
-move_strong_cache_node_to_front(StrongCacheNode **root, StrongCacheNode *node)
-{
- StrongCacheNode *root_p = *root;
- if (root_p == node) {
- return;
- }
-
- remove_from_strong_cache(node);
-
- node->prev = NULL;
- node->next = root_p;
-
- if (root_p != NULL) {
- root_p->prev = node;
- }
-
- *root = node;
-}
-
-/* Retrieves a ZoneInfo from the strong cache if it's present.
- *
- * This function finds the ZoneInfo by key and if found will move the node to
- * the front of the LRU cache and return a new reference to it. It returns NULL
- * if the key is not in the cache.
- *
- * The strong cache is currently only implemented for the base class, so this
- * always returns a cache miss for subclasses.
- */
-static PyObject *
-zone_from_strong_cache(const PyTypeObject *const type, PyObject *const key)
-{
- if (type != &PyZoneInfo_ZoneInfoType) {
- return NULL; // Strong cache currently only implemented for base class
- }
-
- StrongCacheNode *node = find_in_strong_cache(ZONEINFO_STRONG_CACHE, key);
-
- if (node != NULL) {
- move_strong_cache_node_to_front(&ZONEINFO_STRONG_CACHE, node);
- Py_INCREF(node->zone);
- return node->zone;
- }
-
- return NULL; // Cache miss
-}
-
-/* Inserts a new key into the strong LRU cache.
- *
- * This function is only to be used after a cache miss — it creates a new node
- * at the front of the cache and ejects any stale entries (keeping the size of
- * the cache to at most ZONEINFO_STRONG_CACHE_MAX_SIZE).
- */
-static void
-update_strong_cache(const PyTypeObject *const type, PyObject *key,
- PyObject *zone)
-{
- if (type != &PyZoneInfo_ZoneInfoType) {
- return;
- }
-
- StrongCacheNode *new_node = strong_cache_node_new(key, zone);
-
- move_strong_cache_node_to_front(&ZONEINFO_STRONG_CACHE, new_node);
-
- StrongCacheNode *node = new_node->next;
- for (size_t i = 1; i < ZONEINFO_STRONG_CACHE_MAX_SIZE; ++i) {
- if (node == NULL) {
- return;
- }
- node = node->next;
- }
-
- // Everything beyond this point needs to be freed
- if (node != NULL) {
- if (node->prev != NULL) {
- node->prev->next = NULL;
- }
- strong_cache_free(node);
- }
-}
-
-/* Clears all entries into a type's strong cache.
- *
- * Because the strong cache is not implemented for subclasses, this is a no-op
- * for everything except the base class.
- */
-void
-clear_strong_cache(const PyTypeObject *const type)
-{
- if (type != &PyZoneInfo_ZoneInfoType) {
- return;
- }
-
- strong_cache_free(ZONEINFO_STRONG_CACHE);
- ZONEINFO_STRONG_CACHE = NULL;
-}
-
-static PyObject *
-new_weak_cache(void)
-{
- PyObject *weakref_module = PyImport_ImportModule("weakref");
- if (weakref_module == NULL) {
- return NULL;
- }
-
- PyObject *weak_cache =
- PyObject_CallMethod(weakref_module, "WeakValueDictionary", "");
- Py_DECREF(weakref_module);
- return weak_cache;
-}
-
-static int
-initialize_caches(void)
-{
- // TODO: Move to a PyModule_GetState / PEP 573 based caching system.
- if (TIMEDELTA_CACHE == NULL) {
- TIMEDELTA_CACHE = PyDict_New();
- }
- else {
- Py_INCREF(TIMEDELTA_CACHE);
- }
-
- if (TIMEDELTA_CACHE == NULL) {
- return -1;
- }
-
- if (ZONEINFO_WEAK_CACHE == NULL) {
- ZONEINFO_WEAK_CACHE = new_weak_cache();
- }
- else {
- Py_INCREF(ZONEINFO_WEAK_CACHE);
- }
-
- if (ZONEINFO_WEAK_CACHE == NULL) {
- return -1;
- }
-
- return 0;
-}
-
-static PyObject *
-zoneinfo_init_subclass(PyTypeObject *cls, PyObject *args, PyObject **kwargs)
-{
- PyObject *weak_cache = new_weak_cache();
- if (weak_cache == NULL) {
- return NULL;
- }
-
- if (PyObject_SetAttrString((PyObject *)cls, "_weak_cache",
- weak_cache) < 0) {
- Py_DECREF(weak_cache);
- return NULL;
- }
- Py_DECREF(weak_cache);
- Py_RETURN_NONE;
-}
-
-/////
-// Specify the ZoneInfo type
-static PyMethodDef zoneinfo_methods[] = {
- {"clear_cache", (PyCFunction)(void (*)(void))zoneinfo_clear_cache,
- METH_VARARGS | METH_KEYWORDS | METH_CLASS,
- PyDoc_STR("Clear the ZoneInfo cache.")},
- {"no_cache", (PyCFunction)(void (*)(void))zoneinfo_no_cache,
- METH_VARARGS | METH_KEYWORDS | METH_CLASS,
- PyDoc_STR("Get a new instance of ZoneInfo, bypassing the cache.")},
- {"from_file", (PyCFunction)(void (*)(void))zoneinfo_from_file,
- METH_VARARGS | METH_KEYWORDS | METH_CLASS,
- PyDoc_STR("Create a ZoneInfo file from a file object.")},
- {"utcoffset", (PyCFunction)zoneinfo_utcoffset, METH_O,
- PyDoc_STR("Retrieve a timedelta representing the UTC offset in a zone at "
- "the given datetime.")},
- {"dst", (PyCFunction)zoneinfo_dst, METH_O,
- PyDoc_STR("Retrieve a timedelta representing the amount of DST applied "
- "in a zone at the given datetime.")},
- {"tzname", (PyCFunction)zoneinfo_tzname, METH_O,
- PyDoc_STR("Retrieve a string containing the abbreviation for the time "
- "zone that applies in a zone at a given datetime.")},
- {"fromutc", (PyCFunction)zoneinfo_fromutc, METH_O,
- PyDoc_STR("Given a datetime with local time in UTC, retrieve an adjusted "
- "datetime in local time.")},
- {"__reduce__", (PyCFunction)zoneinfo_reduce, METH_NOARGS,
- PyDoc_STR("Function for serialization with the pickle protocol.")},
- {"_unpickle", (PyCFunction)zoneinfo__unpickle, METH_VARARGS | METH_CLASS,
- PyDoc_STR("Private method used in unpickling.")},
- {"__init_subclass__", (PyCFunction)(void (*)(void))zoneinfo_init_subclass,
- METH_VARARGS | METH_KEYWORDS | METH_CLASS,
- PyDoc_STR("Function to initialize subclasses.")},
- {NULL} /* Sentinel */
-};
-
-static PyMemberDef zoneinfo_members[] = {
- {.name = "key",
- .offset = offsetof(PyZoneInfo_ZoneInfo, key),
- .type = T_OBJECT_EX,
- .flags = READONLY,
- .doc = NULL},
- {NULL}, /* Sentinel */
-};
-
-static PyTypeObject PyZoneInfo_ZoneInfoType = {
- PyVarObject_HEAD_INIT(NULL, 0) //
- .tp_name = "zoneinfo.ZoneInfo",
- .tp_basicsize = sizeof(PyZoneInfo_ZoneInfo),
- .tp_weaklistoffset = offsetof(PyZoneInfo_ZoneInfo, weakreflist),
- .tp_repr = (reprfunc)zoneinfo_repr,
- .tp_str = (reprfunc)zoneinfo_str,
- .tp_getattro = PyObject_GenericGetAttr,
- .tp_flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE),
- /* .tp_doc = zoneinfo_doc, */
- .tp_methods = zoneinfo_methods,
- .tp_members = zoneinfo_members,
- .tp_new = zoneinfo_new,
- .tp_dealloc = zoneinfo_dealloc,
-};
-
-/////
-// Specify the _zoneinfo module
-static PyMethodDef module_methods[] = {{NULL, NULL}};
-static void
-module_free()
-{
- Py_XDECREF(_tzpath_find_tzfile);
- _tzpath_find_tzfile = NULL;
-
- Py_XDECREF(_common_mod);
- _common_mod = NULL;
-
- Py_XDECREF(io_open);
- io_open = NULL;
-
- xdecref_ttinfo(&NO_TTINFO);
-
- if (TIMEDELTA_CACHE != NULL && Py_REFCNT(TIMEDELTA_CACHE) > 1) {
- Py_DECREF(TIMEDELTA_CACHE);
- } else {
- Py_CLEAR(TIMEDELTA_CACHE);
- }
-
- if (ZONEINFO_WEAK_CACHE != NULL && Py_REFCNT(ZONEINFO_WEAK_CACHE) > 1) {
- Py_DECREF(ZONEINFO_WEAK_CACHE);
- } else {
- Py_CLEAR(ZONEINFO_WEAK_CACHE);
- }
-
- clear_strong_cache(&PyZoneInfo_ZoneInfoType);
-}
-
-static int
-zoneinfomodule_exec(PyObject *m)
-{
- PyDateTime_IMPORT;
- if (PyDateTimeAPI == NULL) {
- goto error;
- }
- PyZoneInfo_ZoneInfoType.tp_base = PyDateTimeAPI->TZInfoType;
- if (PyType_Ready(&PyZoneInfo_ZoneInfoType) < 0) {
- goto error;
- }
-
- Py_INCREF(&PyZoneInfo_ZoneInfoType);
- PyModule_AddObject(m, "ZoneInfo", (PyObject *)&PyZoneInfo_ZoneInfoType);
-
- /* Populate imports */
- PyObject *_tzpath_module = PyImport_ImportModule("zoneinfo._tzpath");
- if (_tzpath_module == NULL) {
- goto error;
- }
-
- _tzpath_find_tzfile =
- PyObject_GetAttrString(_tzpath_module, "find_tzfile");
- Py_DECREF(_tzpath_module);
- if (_tzpath_find_tzfile == NULL) {
- goto error;
- }
-
- PyObject *io_module = PyImport_ImportModule("io");
- if (io_module == NULL) {
- goto error;
- }
-
- io_open = PyObject_GetAttrString(io_module, "open");
- Py_DECREF(io_module);
- if (io_open == NULL) {
- goto error;
- }
-
- _common_mod = PyImport_ImportModule("zoneinfo._common");
- if (_common_mod == NULL) {
- goto error;
- }
-
- if (NO_TTINFO.utcoff == NULL) {
- NO_TTINFO.utcoff = Py_None;
- NO_TTINFO.dstoff = Py_None;
- NO_TTINFO.tzname = Py_None;
-
- for (size_t i = 0; i < 3; ++i) {
- Py_INCREF(Py_None);
- }
- }
-
- if (initialize_caches()) {
- goto error;
- }
-
- return 0;
-
-error:
- return -1;
-}
-
-static PyModuleDef_Slot zoneinfomodule_slots[] = {
- {Py_mod_exec, zoneinfomodule_exec}, {0, NULL}};
-
-static struct PyModuleDef zoneinfomodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "_zoneinfo",
- .m_doc = "C implementation of the zoneinfo module",
- .m_size = 0,
- .m_methods = module_methods,
- .m_slots = zoneinfomodule_slots,
- .m_free = (freefunc)module_free};
-
-PyMODINIT_FUNC
-PyInit__zoneinfo(void)
-{
- return PyModuleDef_Init(&zoneinfomodule);
-}
+#include "Python.h"
+#include "structmember.h"
+
+#include <ctype.h>
+#include <stddef.h>
+#include <stdint.h>
+
+#include "datetime.h"
+
+// Imports
+static PyObject *io_open = NULL;
+static PyObject *_tzpath_find_tzfile = NULL;
+static PyObject *_common_mod = NULL;
+
+typedef struct TransitionRuleType TransitionRuleType;
+typedef struct StrongCacheNode StrongCacheNode;
+
+typedef struct {
+ PyObject *utcoff;
+ PyObject *dstoff;
+ PyObject *tzname;
+ long utcoff_seconds;
+} _ttinfo;
+
+typedef struct {
+ _ttinfo std;
+ _ttinfo dst;
+ int dst_diff;
+ TransitionRuleType *start;
+ TransitionRuleType *end;
+ unsigned char std_only;
+} _tzrule;
+
+typedef struct {
+ PyDateTime_TZInfo base;
+ PyObject *key;
+ PyObject *file_repr;
+ PyObject *weakreflist;
+ size_t num_transitions;
+ size_t num_ttinfos;
+ int64_t *trans_list_utc;
+ int64_t *trans_list_wall[2];
+ _ttinfo **trans_ttinfos; // References to the ttinfo for each transition
+ _ttinfo *ttinfo_before;
+ _tzrule tzrule_after;
+ _ttinfo *_ttinfos; // Unique array of ttinfos for ease of deallocation
+ unsigned char fixed_offset;
+ unsigned char source;
+} PyZoneInfo_ZoneInfo;
+
+struct TransitionRuleType {
+ int64_t (*year_to_timestamp)(TransitionRuleType *, int);
+};
+
+typedef struct {
+ TransitionRuleType base;
+ uint8_t month;
+ uint8_t week;
+ uint8_t day;
+ int8_t hour;
+ int8_t minute;
+ int8_t second;
+} CalendarRule;
+
+typedef struct {
+ TransitionRuleType base;
+ uint8_t julian;
+ unsigned int day;
+ int8_t hour;
+ int8_t minute;
+ int8_t second;
+} DayRule;
+
+struct StrongCacheNode {
+ StrongCacheNode *next;
+ StrongCacheNode *prev;
+ PyObject *key;
+ PyObject *zone;
+};
+
+static PyTypeObject PyZoneInfo_ZoneInfoType;
+
+// Globals
+static PyObject *TIMEDELTA_CACHE = NULL;
+static PyObject *ZONEINFO_WEAK_CACHE = NULL;
+static StrongCacheNode *ZONEINFO_STRONG_CACHE = NULL;
+static size_t ZONEINFO_STRONG_CACHE_MAX_SIZE = 8;
+
+static _ttinfo NO_TTINFO = {NULL, NULL, NULL, 0};
+
+// Constants
+static const int EPOCHORDINAL = 719163;
+static int DAYS_IN_MONTH[] = {
+ -1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
+};
+
+static int DAYS_BEFORE_MONTH[] = {
+ -1, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334,
+};
+
+static const int SOURCE_NOCACHE = 0;
+static const int SOURCE_CACHE = 1;
+static const int SOURCE_FILE = 2;
+
+// Forward declarations
+static int
+load_data(PyZoneInfo_ZoneInfo *self, PyObject *file_obj);
+static void
+utcoff_to_dstoff(size_t *trans_idx, long *utcoffs, long *dstoffs,
+ unsigned char *isdsts, size_t num_transitions,
+ size_t num_ttinfos);
+static int
+ts_to_local(size_t *trans_idx, int64_t *trans_utc, long *utcoff,
+ int64_t *trans_local[2], size_t num_ttinfos,
+ size_t num_transitions);
+
+static int
+parse_tz_str(PyObject *tz_str_obj, _tzrule *out);
+
+static Py_ssize_t
+parse_abbr(const char *const p, PyObject **abbr);
+static Py_ssize_t
+parse_tz_delta(const char *const p, long *total_seconds);
+static Py_ssize_t
+parse_transition_time(const char *const p, int8_t *hour, int8_t *minute,
+ int8_t *second);
+static Py_ssize_t
+parse_transition_rule(const char *const p, TransitionRuleType **out);
+
+static _ttinfo *
+find_tzrule_ttinfo(_tzrule *rule, int64_t ts, unsigned char fold, int year);
+static _ttinfo *
+find_tzrule_ttinfo_fromutc(_tzrule *rule, int64_t ts, int year,
+ unsigned char *fold);
+
+static int
+build_ttinfo(long utcoffset, long dstoffset, PyObject *tzname, _ttinfo *out);
+static void
+xdecref_ttinfo(_ttinfo *ttinfo);
+static int
+ttinfo_eq(const _ttinfo *const tti0, const _ttinfo *const tti1);
+
+static int
+build_tzrule(PyObject *std_abbr, PyObject *dst_abbr, long std_offset,
+ long dst_offset, TransitionRuleType *start,
+ TransitionRuleType *end, _tzrule *out);
+static void
+free_tzrule(_tzrule *tzrule);
+
+static PyObject *
+load_timedelta(long seconds);
+
+static int
+get_local_timestamp(PyObject *dt, int64_t *local_ts);
+static _ttinfo *
+find_ttinfo(PyZoneInfo_ZoneInfo *self, PyObject *dt);
+
+static int
+ymd_to_ord(int y, int m, int d);
+static int
+is_leap_year(int year);
+
+static size_t
+_bisect(const int64_t value, const int64_t *arr, size_t size);
+
+static int
+eject_from_strong_cache(const PyTypeObject *const type, PyObject *key);
+static void
+clear_strong_cache(const PyTypeObject *const type);
+static void
+update_strong_cache(const PyTypeObject *const type, PyObject *key,
+ PyObject *zone);
+static PyObject *
+zone_from_strong_cache(const PyTypeObject *const type, PyObject *const key);
+
+static PyObject *
+zoneinfo_new_instance(PyTypeObject *type, PyObject *key)
+{
+ PyObject *file_obj = NULL;
+ PyObject *file_path = NULL;
+
+ file_path = PyObject_CallFunctionObjArgs(_tzpath_find_tzfile, key, NULL);
+ if (file_path == NULL) {
+ return NULL;
+ }
+ else if (file_path == Py_None) {
+ file_obj = PyObject_CallMethod(_common_mod, "load_tzdata", "O", key);
+ if (file_obj == NULL) {
+ Py_DECREF(file_path);
+ return NULL;
+ }
+ }
+
+ PyObject *self = (PyObject *)(type->tp_alloc(type, 0));
+ if (self == NULL) {
+ goto error;
+ }
+
+ if (file_obj == NULL) {
+ file_obj = PyObject_CallFunction(io_open, "Os", file_path, "rb");
+ if (file_obj == NULL) {
+ goto error;
+ }
+ }
+
+ if (load_data((PyZoneInfo_ZoneInfo *)self, file_obj)) {
+ goto error;
+ }
+
+ PyObject *rv = PyObject_CallMethod(file_obj, "close", NULL);
+ Py_DECREF(file_obj);
+ file_obj = NULL;
+ if (rv == NULL) {
+ goto error;
+ }
+ Py_DECREF(rv);
+
+ ((PyZoneInfo_ZoneInfo *)self)->key = key;
+ Py_INCREF(key);
+
+ goto cleanup;
+error:
+ Py_XDECREF(self);
+ self = NULL;
+cleanup:
+ if (file_obj != NULL) {
+ PyObject *exc, *val, *tb;
+ PyErr_Fetch(&exc, &val, &tb);
+ PyObject *tmp = PyObject_CallMethod(file_obj, "close", NULL);
+ _PyErr_ChainExceptions(exc, val, tb);
+ if (tmp == NULL) {
+ Py_CLEAR(self);
+ }
+ Py_XDECREF(tmp);
+ Py_DECREF(file_obj);
+ }
+ Py_DECREF(file_path);
+ return self;
+}
+
+static PyObject *
+get_weak_cache(PyTypeObject *type)
+{
+ if (type == &PyZoneInfo_ZoneInfoType) {
+ return ZONEINFO_WEAK_CACHE;
+ }
+ else {
+ PyObject *cache =
+ PyObject_GetAttrString((PyObject *)type, "_weak_cache");
+ // We are assuming that the type lives at least as long as the function
+ // that calls get_weak_cache, and that it holds a reference to the
+ // cache, so we'll return a "borrowed reference".
+ Py_XDECREF(cache);
+ return cache;
+ }
+}
+
+static PyObject *
+zoneinfo_new(PyTypeObject *type, PyObject *args, PyObject *kw)
+{
+ PyObject *key = NULL;
+ static char *kwlist[] = {"key", NULL};
+ if (PyArg_ParseTupleAndKeywords(args, kw, "O", kwlist, &key) == 0) {
+ return NULL;
+ }
+
+ PyObject *instance = zone_from_strong_cache(type, key);
+ if (instance != NULL || PyErr_Occurred()) {
+ return instance;
+ }
+
+ PyObject *weak_cache = get_weak_cache(type);
+ instance = PyObject_CallMethod(weak_cache, "get", "O", key, Py_None);
+ if (instance == NULL) {
+ return NULL;
+ }
+
+ if (instance == Py_None) {
+ Py_DECREF(instance);
+ PyObject *tmp = zoneinfo_new_instance(type, key);
+ if (tmp == NULL) {
+ return NULL;
+ }
+
+ instance =
+ PyObject_CallMethod(weak_cache, "setdefault", "OO", key, tmp);
+ Py_DECREF(tmp);
+ if (instance == NULL) {
+ return NULL;
+ }
+ ((PyZoneInfo_ZoneInfo *)instance)->source = SOURCE_CACHE;
+ }
+
+ update_strong_cache(type, key, instance);
+ return instance;
+}
+
+static void
+zoneinfo_dealloc(PyObject *obj_self)
+{
+ PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self;
+
+ if (self->weakreflist != NULL) {
+ PyObject_ClearWeakRefs(obj_self);
+ }
+
+ if (self->trans_list_utc != NULL) {
+ PyMem_Free(self->trans_list_utc);
+ }
+
+ for (size_t i = 0; i < 2; i++) {
+ if (self->trans_list_wall[i] != NULL) {
+ PyMem_Free(self->trans_list_wall[i]);
+ }
+ }
+
+ if (self->_ttinfos != NULL) {
+ for (size_t i = 0; i < self->num_ttinfos; ++i) {
+ xdecref_ttinfo(&(self->_ttinfos[i]));
+ }
+ PyMem_Free(self->_ttinfos);
+ }
+
+ if (self->trans_ttinfos != NULL) {
+ PyMem_Free(self->trans_ttinfos);
+ }
+
+ free_tzrule(&(self->tzrule_after));
+
+ Py_XDECREF(self->key);
+ Py_XDECREF(self->file_repr);
+
+ Py_TYPE(self)->tp_free((PyObject *)self);
+}
+
+static PyObject *
+zoneinfo_from_file(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *file_obj = NULL;
+ PyObject *file_repr = NULL;
+ PyObject *key = Py_None;
+ PyZoneInfo_ZoneInfo *self = NULL;
+
+ static char *kwlist[] = {"", "key", NULL};
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O", kwlist, &file_obj,
+ &key)) {
+ return NULL;
+ }
+
+ PyObject *obj_self = (PyObject *)(type->tp_alloc(type, 0));
+ self = (PyZoneInfo_ZoneInfo *)obj_self;
+ if (self == NULL) {
+ return NULL;
+ }
+
+ file_repr = PyUnicode_FromFormat("%R", file_obj);
+ if (file_repr == NULL) {
+ goto error;
+ }
+
+ if (load_data(self, file_obj)) {
+ goto error;
+ }
+
+ self->source = SOURCE_FILE;
+ self->file_repr = file_repr;
+ self->key = key;
+ Py_INCREF(key);
+
+ return obj_self;
+error:
+ Py_XDECREF(file_repr);
+ Py_XDECREF(self);
+ return NULL;
+}
+
+static PyObject *
+zoneinfo_no_cache(PyTypeObject *cls, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = {"key", NULL};
+ PyObject *key = NULL;
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O", kwlist, &key)) {
+ return NULL;
+ }
+
+ PyObject *out = zoneinfo_new_instance(cls, key);
+ if (out != NULL) {
+ ((PyZoneInfo_ZoneInfo *)out)->source = SOURCE_NOCACHE;
+ }
+
+ return out;
+}
+
+static PyObject *
+zoneinfo_clear_cache(PyObject *cls, PyObject *args, PyObject *kwargs)
+{
+ PyObject *only_keys = NULL;
+ static char *kwlist[] = {"only_keys", NULL};
+
+ if (!(PyArg_ParseTupleAndKeywords(args, kwargs, "|$O", kwlist,
+ &only_keys))) {
+ return NULL;
+ }
+
+ PyTypeObject *type = (PyTypeObject *)cls;
+ PyObject *weak_cache = get_weak_cache(type);
+
+ if (only_keys == NULL || only_keys == Py_None) {
+ PyObject *rv = PyObject_CallMethod(weak_cache, "clear", NULL);
+ if (rv != NULL) {
+ Py_DECREF(rv);
+ }
+
+ clear_strong_cache(type);
+ }
+ else {
+ PyObject *item = NULL;
+ PyObject *pop = PyUnicode_FromString("pop");
+ if (pop == NULL) {
+ return NULL;
+ }
+
+ PyObject *iter = PyObject_GetIter(only_keys);
+ if (iter == NULL) {
+ Py_DECREF(pop);
+ return NULL;
+ }
+
+ while ((item = PyIter_Next(iter))) {
+ // Remove from strong cache
+ if (eject_from_strong_cache(type, item) < 0) {
+ Py_DECREF(item);
+ break;
+ }
+
+ // Remove from weak cache
+ PyObject *tmp = PyObject_CallMethodObjArgs(weak_cache, pop, item,
+ Py_None, NULL);
+
+ Py_DECREF(item);
+ if (tmp == NULL) {
+ break;
+ }
+ Py_DECREF(tmp);
+ }
+ Py_DECREF(iter);
+ Py_DECREF(pop);
+ }
+
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+
+static PyObject *
+zoneinfo_utcoffset(PyObject *self, PyObject *dt)
+{
+ _ttinfo *tti = find_ttinfo((PyZoneInfo_ZoneInfo *)self, dt);
+ if (tti == NULL) {
+ return NULL;
+ }
+ Py_INCREF(tti->utcoff);
+ return tti->utcoff;
+}
+
+static PyObject *
+zoneinfo_dst(PyObject *self, PyObject *dt)
+{
+ _ttinfo *tti = find_ttinfo((PyZoneInfo_ZoneInfo *)self, dt);
+ if (tti == NULL) {
+ return NULL;
+ }
+ Py_INCREF(tti->dstoff);
+ return tti->dstoff;
+}
+
+static PyObject *
+zoneinfo_tzname(PyObject *self, PyObject *dt)
+{
+ _ttinfo *tti = find_ttinfo((PyZoneInfo_ZoneInfo *)self, dt);
+ if (tti == NULL) {
+ return NULL;
+ }
+ Py_INCREF(tti->tzname);
+ return tti->tzname;
+}
+
+#define HASTZINFO(p) (((_PyDateTime_BaseTZInfo *)(p))->hastzinfo)
+#define GET_DT_TZINFO(p) \
+ (HASTZINFO(p) ? ((PyDateTime_DateTime *)(p))->tzinfo : Py_None)
+
+static PyObject *
+zoneinfo_fromutc(PyObject *obj_self, PyObject *dt)
+{
+ if (!PyDateTime_Check(dt)) {
+ PyErr_SetString(PyExc_TypeError,
+ "fromutc: argument must be a datetime");
+ return NULL;
+ }
+ if (GET_DT_TZINFO(dt) != obj_self) {
+ PyErr_SetString(PyExc_ValueError,
+ "fromutc: dt.tzinfo "
+ "is not self");
+ return NULL;
+ }
+
+ PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self;
+
+ int64_t timestamp;
+ if (get_local_timestamp(dt, &timestamp)) {
+ return NULL;
+ }
+ size_t num_trans = self->num_transitions;
+
+ _ttinfo *tti = NULL;
+ unsigned char fold = 0;
+
+ if (num_trans >= 1 && timestamp < self->trans_list_utc[0]) {
+ tti = self->ttinfo_before;
+ }
+ else if (num_trans == 0 ||
+ timestamp > self->trans_list_utc[num_trans - 1]) {
+ tti = find_tzrule_ttinfo_fromutc(&(self->tzrule_after), timestamp,
+ PyDateTime_GET_YEAR(dt), &fold);
+
+ // Immediately after the last manual transition, the fold/gap is
+ // between self->trans_ttinfos[num_transitions - 1] and whatever
+ // ttinfo applies immediately after the last transition, not between
+ // the STD and DST rules in the tzrule_after, so we may need to
+ // adjust the fold value.
+ if (num_trans) {
+ _ttinfo *tti_prev = NULL;
+ if (num_trans == 1) {
+ tti_prev = self->ttinfo_before;
+ }
+ else {
+ tti_prev = self->trans_ttinfos[num_trans - 2];
+ }
+ int64_t diff = tti_prev->utcoff_seconds - tti->utcoff_seconds;
+ if (diff > 0 &&
+ timestamp < (self->trans_list_utc[num_trans - 1] + diff)) {
+ fold = 1;
+ }
+ }
+ }
+ else {
+ size_t idx = _bisect(timestamp, self->trans_list_utc, num_trans);
+ _ttinfo *tti_prev = NULL;
+
+ if (idx >= 2) {
+ tti_prev = self->trans_ttinfos[idx - 2];
+ tti = self->trans_ttinfos[idx - 1];
+ }
+ else {
+ tti_prev = self->ttinfo_before;
+ tti = self->trans_ttinfos[0];
+ }
+
+ // Detect fold
+ int64_t shift =
+ (int64_t)(tti_prev->utcoff_seconds - tti->utcoff_seconds);
+ if (shift > (timestamp - self->trans_list_utc[idx - 1])) {
+ fold = 1;
+ }
+ }
+
+ PyObject *tmp = PyNumber_Add(dt, tti->utcoff);
+ if (tmp == NULL) {
+ return NULL;
+ }
+
+ if (fold) {
+ if (PyDateTime_CheckExact(tmp)) {
+ ((PyDateTime_DateTime *)tmp)->fold = 1;
+ dt = tmp;
+ }
+ else {
+ PyObject *replace = PyObject_GetAttrString(tmp, "replace");
+ PyObject *args = PyTuple_New(0);
+ PyObject *kwargs = PyDict_New();
+
+ Py_DECREF(tmp);
+ if (args == NULL || kwargs == NULL || replace == NULL) {
+ Py_XDECREF(args);
+ Py_XDECREF(kwargs);
+ Py_XDECREF(replace);
+ return NULL;
+ }
+
+ dt = NULL;
+ if (!PyDict_SetItemString(kwargs, "fold", _PyLong_One)) {
+ dt = PyObject_Call(replace, args, kwargs);
+ }
+
+ Py_DECREF(args);
+ Py_DECREF(kwargs);
+ Py_DECREF(replace);
+
+ if (dt == NULL) {
+ return NULL;
+ }
+ }
+ }
+ else {
+ dt = tmp;
+ }
+ return dt;
+}
+
+static PyObject *
+zoneinfo_repr(PyZoneInfo_ZoneInfo *self)
+{
+ PyObject *rv = NULL;
+ const char *type_name = Py_TYPE((PyObject *)self)->tp_name;
+ if (!(self->key == Py_None)) {
+ rv = PyUnicode_FromFormat("%s(key=%R)", type_name, self->key);
+ }
+ else {
+ assert(PyUnicode_Check(self->file_repr));
+ rv = PyUnicode_FromFormat("%s.from_file(%U)", type_name,
+ self->file_repr);
+ }
+
+ return rv;
+}
+
+static PyObject *
+zoneinfo_str(PyZoneInfo_ZoneInfo *self)
+{
+ if (!(self->key == Py_None)) {
+ Py_INCREF(self->key);
+ return self->key;
+ }
+ else {
+ return zoneinfo_repr(self);
+ }
+}
+
+/* Pickles the ZoneInfo object by key and source.
+ *
+ * ZoneInfo objects are pickled by reference to the TZif file that they came
+ * from, which means that the exact transitions may be different or the file
+ * may not un-pickle if the data has changed on disk in the interim.
+ *
+ * It is necessary to include a bit indicating whether or not the object
+ * was constructed from the cache, because from-cache objects will hit the
+ * unpickling process's cache, whereas no-cache objects will bypass it.
+ *
+ * Objects constructed from ZoneInfo.from_file cannot be pickled.
+ */
+static PyObject *
+zoneinfo_reduce(PyObject *obj_self, PyObject *unused)
+{
+ PyZoneInfo_ZoneInfo *self = (PyZoneInfo_ZoneInfo *)obj_self;
+ if (self->source == SOURCE_FILE) {
+ // Objects constructed from files cannot be pickled.
+ PyObject *pickle = PyImport_ImportModule("pickle");
+ if (pickle == NULL) {
+ return NULL;
+ }
+
+ PyObject *pickle_error =
+ PyObject_GetAttrString(pickle, "PicklingError");
+ Py_DECREF(pickle);
+ if (pickle_error == NULL) {
+ return NULL;
+ }
+
+ PyErr_Format(pickle_error,
+ "Cannot pickle a ZoneInfo file from a file stream.");
+ Py_DECREF(pickle_error);
+ return NULL;
+ }
+
+ unsigned char from_cache = self->source == SOURCE_CACHE ? 1 : 0;
+ PyObject *constructor = PyObject_GetAttrString(obj_self, "_unpickle");
+
+ if (constructor == NULL) {
+ return NULL;
+ }
+
+ PyObject *rv = Py_BuildValue("O(OB)", constructor, self->key, from_cache);
+ Py_DECREF(constructor);
+ return rv;
+}
+
+static PyObject *
+zoneinfo__unpickle(PyTypeObject *cls, PyObject *args)
+{
+ PyObject *key;
+ unsigned char from_cache;
+ if (!PyArg_ParseTuple(args, "OB", &key, &from_cache)) {
+ return NULL;
+ }
+
+ if (from_cache) {
+ PyObject *val_args = Py_BuildValue("(O)", key);
+ if (val_args == NULL) {
+ return NULL;
+ }
+
+ PyObject *rv = zoneinfo_new(cls, val_args, NULL);
+
+ Py_DECREF(val_args);
+ return rv;
+ }
+ else {
+ return zoneinfo_new_instance(cls, key);
+ }
+}
+
+/* It is relatively expensive to construct new timedelta objects, and in most
+ * cases we're looking at a relatively small number of timedeltas, such as
+ * integer number of hours, etc. We will keep a cache so that we construct
+ * a minimal number of these.
+ *
+ * Possibly this should be replaced with an LRU cache so that it's not possible
+ * for the memory usage to explode from this, but in order for this to be a
+ * serious problem, one would need to deliberately craft a malicious time zone
+ * file with many distinct offsets. As of tzdb 2019c, loading every single zone
+ * fills the cache with ~450 timedeltas for a total size of ~12kB.
+ *
+ * This returns a new reference to the timedelta.
+ */
+static PyObject *
+load_timedelta(long seconds)
+{
+ PyObject *rv = NULL;
+ PyObject *pyoffset = PyLong_FromLong(seconds);
+ if (pyoffset == NULL) {
+ return NULL;
+ }
+ int contains = PyDict_Contains(TIMEDELTA_CACHE, pyoffset);
+ if (contains == -1) {
+ goto error;
+ }
+
+ if (!contains) {
+ PyObject *tmp = PyDateTimeAPI->Delta_FromDelta(
+ 0, seconds, 0, 1, PyDateTimeAPI->DeltaType);
+
+ if (tmp == NULL) {
+ goto error;
+ }
+
+ rv = PyDict_SetDefault(TIMEDELTA_CACHE, pyoffset, tmp);
+ Py_DECREF(tmp);
+ }
+ else {
+ rv = PyDict_GetItem(TIMEDELTA_CACHE, pyoffset);
+ }
+
+ Py_DECREF(pyoffset);
+ Py_INCREF(rv);
+ return rv;
+error:
+ Py_DECREF(pyoffset);
+ return NULL;
+}
+
+/* Constructor for _ttinfo object - this starts by initializing the _ttinfo
+ * to { NULL, NULL, NULL }, so that Py_XDECREF will work on partially
+ * initialized _ttinfo objects.
+ */
+static int
+build_ttinfo(long utcoffset, long dstoffset, PyObject *tzname, _ttinfo *out)
+{
+ out->utcoff = NULL;
+ out->dstoff = NULL;
+ out->tzname = NULL;
+
+ out->utcoff_seconds = utcoffset;
+ out->utcoff = load_timedelta(utcoffset);
+ if (out->utcoff == NULL) {
+ return -1;
+ }
+
+ out->dstoff = load_timedelta(dstoffset);
+ if (out->dstoff == NULL) {
+ return -1;
+ }
+
+ out->tzname = tzname;
+ Py_INCREF(tzname);
+
+ return 0;
+}
+
+/* Decrease reference count on any non-NULL members of a _ttinfo */
+static void
+xdecref_ttinfo(_ttinfo *ttinfo)
+{
+ if (ttinfo != NULL) {
+ Py_XDECREF(ttinfo->utcoff);
+ Py_XDECREF(ttinfo->dstoff);
+ Py_XDECREF(ttinfo->tzname);
+ }
+}
+
+/* Equality function for _ttinfo. */
+static int
+ttinfo_eq(const _ttinfo *const tti0, const _ttinfo *const tti1)
+{
+ int rv;
+ if ((rv = PyObject_RichCompareBool(tti0->utcoff, tti1->utcoff, Py_EQ)) <
+ 1) {
+ goto end;
+ }
+
+ if ((rv = PyObject_RichCompareBool(tti0->dstoff, tti1->dstoff, Py_EQ)) <
+ 1) {
+ goto end;
+ }
+
+ if ((rv = PyObject_RichCompareBool(tti0->tzname, tti1->tzname, Py_EQ)) <
+ 1) {
+ goto end;
+ }
+end:
+ return rv;
+}
+
+/* Given a file-like object, this populates a ZoneInfo object
+ *
+ * The current version calls into a Python function to read the data from
+ * file into Python objects, and this translates those Python objects into
+ * C values and calculates derived values (e.g. dstoff) in C.
+ *
+ * This returns 0 on success and -1 on failure.
+ *
+ * The function will never return while `self` is partially initialized —
+ * the object only needs to be freed / deallocated if this succeeds.
+ */
+static int
+load_data(PyZoneInfo_ZoneInfo *self, PyObject *file_obj)
+{
+ PyObject *data_tuple = NULL;
+
+ long *utcoff = NULL;
+ long *dstoff = NULL;
+ size_t *trans_idx = NULL;
+ unsigned char *isdst = NULL;
+
+ self->trans_list_utc = NULL;
+ self->trans_list_wall[0] = NULL;
+ self->trans_list_wall[1] = NULL;
+ self->trans_ttinfos = NULL;
+ self->_ttinfos = NULL;
+ self->file_repr = NULL;
+
+ size_t ttinfos_allocated = 0;
+
+ data_tuple = PyObject_CallMethod(_common_mod, "load_data", "O", file_obj);
+
+ if (data_tuple == NULL) {
+ goto error;
+ }
+
+ if (!PyTuple_CheckExact(data_tuple)) {
+ PyErr_Format(PyExc_TypeError, "Invalid data result type: %r",
+ data_tuple);
+ goto error;
+ }
+
+ // Unpack the data tuple
+ PyObject *trans_idx_list = PyTuple_GetItem(data_tuple, 0);
+ if (trans_idx_list == NULL) {
+ goto error;
+ }
+
+ PyObject *trans_utc = PyTuple_GetItem(data_tuple, 1);
+ if (trans_utc == NULL) {
+ goto error;
+ }
+
+ PyObject *utcoff_list = PyTuple_GetItem(data_tuple, 2);
+ if (utcoff_list == NULL) {
+ goto error;
+ }
+
+ PyObject *isdst_list = PyTuple_GetItem(data_tuple, 3);
+ if (isdst_list == NULL) {
+ goto error;
+ }
+
+ PyObject *abbr = PyTuple_GetItem(data_tuple, 4);
+ if (abbr == NULL) {
+ goto error;
+ }
+
+ PyObject *tz_str = PyTuple_GetItem(data_tuple, 5);
+ if (tz_str == NULL) {
+ goto error;
+ }
+
+ // Load the relevant sizes
+ Py_ssize_t num_transitions = PyTuple_Size(trans_utc);
+ if (num_transitions < 0) {
+ goto error;
+ }
+
+ Py_ssize_t num_ttinfos = PyTuple_Size(utcoff_list);
+ if (num_ttinfos < 0) {
+ goto error;
+ }
+
+ self->num_transitions = (size_t)num_transitions;
+ self->num_ttinfos = (size_t)num_ttinfos;
+
+ // Load the transition indices and list
+ self->trans_list_utc =
+ PyMem_Malloc(self->num_transitions * sizeof(int64_t));
+ if (self->trans_list_utc == NULL) {
+ goto error;
+ }
+ trans_idx = PyMem_Malloc(self->num_transitions * sizeof(Py_ssize_t));
+ if (trans_idx == NULL) {
+ goto error;
+ }
+
+ for (size_t i = 0; i < self->num_transitions; ++i) {
+ PyObject *num = PyTuple_GetItem(trans_utc, i);
+ if (num == NULL) {
+ goto error;
+ }
+ self->trans_list_utc[i] = PyLong_AsLongLong(num);
+ if (self->trans_list_utc[i] == -1 && PyErr_Occurred()) {
+ goto error;
+ }
+
+ num = PyTuple_GetItem(trans_idx_list, i);
+ if (num == NULL) {
+ goto error;
+ }
+
+ Py_ssize_t cur_trans_idx = PyLong_AsSsize_t(num);
+ if (cur_trans_idx == -1) {
+ goto error;
+ }
+
+ trans_idx[i] = (size_t)cur_trans_idx;
+ if (trans_idx[i] > self->num_ttinfos) {
+ PyErr_Format(
+ PyExc_ValueError,
+ "Invalid transition index found while reading TZif: %zd",
+ cur_trans_idx);
+
+ goto error;
+ }
+ }
+
+ // Load UTC offsets and isdst (size num_ttinfos)
+ utcoff = PyMem_Malloc(self->num_ttinfos * sizeof(long));
+ isdst = PyMem_Malloc(self->num_ttinfos * sizeof(unsigned char));
+
+ if (utcoff == NULL || isdst == NULL) {
+ goto error;
+ }
+ for (size_t i = 0; i < self->num_ttinfos; ++i) {
+ PyObject *num = PyTuple_GetItem(utcoff_list, i);
+ if (num == NULL) {
+ goto error;
+ }
+
+ utcoff[i] = PyLong_AsLong(num);
+ if (utcoff[i] == -1 && PyErr_Occurred()) {
+ goto error;
+ }
+
+ num = PyTuple_GetItem(isdst_list, i);
+ if (num == NULL) {
+ goto error;
+ }
+
+ int isdst_with_error = PyObject_IsTrue(num);
+ if (isdst_with_error == -1) {
+ goto error;
+ }
+ else {
+ isdst[i] = (unsigned char)isdst_with_error;
+ }
+ }
+
+ dstoff = PyMem_Calloc(self->num_ttinfos, sizeof(long));
+ if (dstoff == NULL) {
+ goto error;
+ }
+
+ // Derive dstoff and trans_list_wall from the information we've loaded
+ utcoff_to_dstoff(trans_idx, utcoff, dstoff, isdst, self->num_transitions,
+ self->num_ttinfos);
+
+ if (ts_to_local(trans_idx, self->trans_list_utc, utcoff,
+ self->trans_list_wall, self->num_ttinfos,
+ self->num_transitions)) {
+ goto error;
+ }
+
+ // Build _ttinfo objects from utcoff, dstoff and abbr
+ self->_ttinfos = PyMem_Malloc(self->num_ttinfos * sizeof(_ttinfo));
+ if (self->_ttinfos == NULL) {
+ goto error;
+ }
+ for (size_t i = 0; i < self->num_ttinfos; ++i) {
+ PyObject *tzname = PyTuple_GetItem(abbr, i);
+ if (tzname == NULL) {
+ goto error;
+ }
+
+ ttinfos_allocated++;
+ if (build_ttinfo(utcoff[i], dstoff[i], tzname, &(self->_ttinfos[i]))) {
+ goto error;
+ }
+ }
+
+ // Build our mapping from transition to the ttinfo that applies
+ self->trans_ttinfos =
+ PyMem_Calloc(self->num_transitions, sizeof(_ttinfo *));
+ if (self->trans_ttinfos == NULL) {
+ goto error;
+ }
+ for (size_t i = 0; i < self->num_transitions; ++i) {
+ size_t ttinfo_idx = trans_idx[i];
+ assert(ttinfo_idx < self->num_ttinfos);
+ self->trans_ttinfos[i] = &(self->_ttinfos[ttinfo_idx]);
+ }
+
+ // Set ttinfo_before to the first non-DST transition
+ for (size_t i = 0; i < self->num_ttinfos; ++i) {
+ if (!isdst[i]) {
+ self->ttinfo_before = &(self->_ttinfos[i]);
+ break;
+ }
+ }
+
+ // If there are only DST ttinfos, pick the first one, if there are no
+ // ttinfos at all, set ttinfo_before to NULL
+ if (self->ttinfo_before == NULL && self->num_ttinfos > 0) {
+ self->ttinfo_before = &(self->_ttinfos[0]);
+ }
+
+ if (tz_str != Py_None && PyObject_IsTrue(tz_str)) {
+ if (parse_tz_str(tz_str, &(self->tzrule_after))) {
+ goto error;
+ }
+ }
+ else {
+ if (!self->num_ttinfos) {
+ PyErr_Format(PyExc_ValueError, "No time zone information found.");
+ goto error;
+ }
+
+ size_t idx;
+ if (!self->num_transitions) {
+ idx = self->num_ttinfos - 1;
+ }
+ else {
+ idx = trans_idx[self->num_transitions - 1];
+ }
+
+ _ttinfo *tti = &(self->_ttinfos[idx]);
+ build_tzrule(tti->tzname, NULL, tti->utcoff_seconds, 0, NULL, NULL,
+ &(self->tzrule_after));
+
+ // We've abused the build_tzrule constructor to construct an STD-only
+ // rule mimicking whatever ttinfo we've picked up, but it's possible
+ // that the one we've picked up is a DST zone, so we need to make sure
+ // that the dstoff is set correctly in that case.
+ if (PyObject_IsTrue(tti->dstoff)) {
+ _ttinfo *tti_after = &(self->tzrule_after.std);
+ Py_DECREF(tti_after->dstoff);
+ tti_after->dstoff = tti->dstoff;
+ Py_INCREF(tti_after->dstoff);
+ }
+ }
+
+ // Determine if this is a "fixed offset" zone, meaning that the output of
+ // the utcoffset, dst and tzname functions does not depend on the specific
+ // datetime passed.
+ //
+ // We make three simplifying assumptions here:
+ //
+ // 1. If tzrule_after is not std_only, it has transitions that might occur
+ // (it is possible to construct TZ strings that specify STD and DST but
+ // no transitions ever occur, such as AAA0BBB,0/0,J365/25).
+ // 2. If self->_ttinfos contains more than one _ttinfo object, the objects
+ // represent different offsets.
+ // 3. self->ttinfos contains no unused _ttinfos (in which case an otherwise
+ // fixed-offset zone with extra _ttinfos defined may appear to *not* be
+ // a fixed offset zone).
+ //
+ // Violations to these assumptions would be fairly exotic, and exotic
+ // zones should almost certainly not be used with datetime.time (the
+ // only thing that would be affected by this).
+ if (self->num_ttinfos > 1 || !self->tzrule_after.std_only) {
+ self->fixed_offset = 0;
+ }
+ else if (self->num_ttinfos == 0) {
+ self->fixed_offset = 1;
+ }
+ else {
+ int constant_offset =
+ ttinfo_eq(&(self->_ttinfos[0]), &self->tzrule_after.std);
+ if (constant_offset < 0) {
+ goto error;
+ }
+ else {
+ self->fixed_offset = constant_offset;
+ }
+ }
+
+ int rv = 0;
+ goto cleanup;
+error:
+ // These resources only need to be freed if we have failed, if we succeed
+ // in initializing a PyZoneInfo_ZoneInfo object, we can rely on its dealloc
+ // method to free the relevant resources.
+ if (self->trans_list_utc != NULL) {
+ PyMem_Free(self->trans_list_utc);
+ self->trans_list_utc = NULL;
+ }
+
+ for (size_t i = 0; i < 2; ++i) {
+ if (self->trans_list_wall[i] != NULL) {
+ PyMem_Free(self->trans_list_wall[i]);
+ self->trans_list_wall[i] = NULL;
+ }
+ }
+
+ if (self->_ttinfos != NULL) {
+ for (size_t i = 0; i < ttinfos_allocated; ++i) {
+ xdecref_ttinfo(&(self->_ttinfos[i]));
+ }
+ PyMem_Free(self->_ttinfos);
+ self->_ttinfos = NULL;
+ }
+
+ if (self->trans_ttinfos != NULL) {
+ PyMem_Free(self->trans_ttinfos);
+ self->trans_ttinfos = NULL;
+ }
+
+ rv = -1;
+cleanup:
+ Py_XDECREF(data_tuple);
+
+ if (utcoff != NULL) {
+ PyMem_Free(utcoff);
+ }
+
+ if (dstoff != NULL) {
+ PyMem_Free(dstoff);
+ }
+
+ if (isdst != NULL) {
+ PyMem_Free(isdst);
+ }
+
+ if (trans_idx != NULL) {
+ PyMem_Free(trans_idx);
+ }
+
+ return rv;
+}
+
+/* Function to calculate the local timestamp of a transition from the year. */
+int64_t
+calendarrule_year_to_timestamp(TransitionRuleType *base_self, int year)
+{
+ CalendarRule *self = (CalendarRule *)base_self;
+
+ // We want (year, month, day of month); we have year and month, but we
+ // need to turn (week, day-of-week) into day-of-month
+ //
+ // Week 1 is the first week in which day `day` (where 0 = Sunday) appears.
+ // Week 5 represents the last occurrence of day `day`, so we need to know
+ // the first weekday of the month and the number of days in the month.
+ int8_t first_day = (ymd_to_ord(year, self->month, 1) + 6) % 7;
+ uint8_t days_in_month = DAYS_IN_MONTH[self->month];
+ if (self->month == 2 && is_leap_year(year)) {
+ days_in_month += 1;
+ }
+
+ // This equation seems magical, so I'll break it down:
+ // 1. calendar says 0 = Monday, POSIX says 0 = Sunday so we need first_day
+ // + 1 to get 1 = Monday -> 7 = Sunday, which is still equivalent
+ // because this math is mod 7
+ // 2. Get first day - desired day mod 7 (adjusting by 7 for negative
+ // numbers so that -1 % 7 = 6).
+ // 3. Add 1 because month days are a 1-based index.
+ int8_t month_day = ((int8_t)(self->day) - (first_day + 1)) % 7;
+ if (month_day < 0) {
+ month_day += 7;
+ }
+ month_day += 1;
+
+ // Now use a 0-based index version of `week` to calculate the w-th
+ // occurrence of `day`
+ month_day += ((int8_t)(self->week) - 1) * 7;
+
+ // month_day will only be > days_in_month if w was 5, and `w` means "last
+ // occurrence of `d`", so now we just check if we over-shot the end of the
+ // month and if so knock off 1 week.
+ if (month_day > days_in_month) {
+ month_day -= 7;
+ }
+
+ int64_t ordinal = ymd_to_ord(year, self->month, month_day) - EPOCHORDINAL;
+ return ((ordinal * 86400) + (int64_t)(self->hour * 3600) +
+ (int64_t)(self->minute * 60) + (int64_t)(self->second));
+}
+
+/* Constructor for CalendarRule. */
+int
+calendarrule_new(uint8_t month, uint8_t week, uint8_t day, int8_t hour,
+ int8_t minute, int8_t second, CalendarRule *out)
+{
+ // These bounds come from the POSIX standard, which describes an Mm.n.d
+ // rule as:
+ //
+ // The d'th day (0 <= d <= 6) of week n of month m of the year (1 <= n <=
+ // 5, 1 <= m <= 12, where week 5 means "the last d day in month m" which
+ // may occur in either the fourth or the fifth week). Week 1 is the first
+ // week in which the d'th day occurs. Day zero is Sunday.
+ if (month <= 0 || month > 12) {
+ PyErr_Format(PyExc_ValueError, "Month must be in (0, 12]");
+ return -1;
+ }
+
+ if (week <= 0 || week > 5) {
+ PyErr_Format(PyExc_ValueError, "Week must be in (0, 5]");
+ return -1;
+ }
+
+ // If the 'day' parameter type is changed to a signed type,
+ // "day < 0" check must be added.
+ if (/* day < 0 || */ day > 6) {
+ PyErr_Format(PyExc_ValueError, "Day must be in [0, 6]");
+ return -1;
+ }
+
+ TransitionRuleType base = {&calendarrule_year_to_timestamp};
+
+ CalendarRule new_offset = {
+ .base = base,
+ .month = month,
+ .week = week,
+ .day = day,
+ .hour = hour,
+ .minute = minute,
+ .second = second,
+ };
+
+ *out = new_offset;
+ return 0;
+}
+
+/* Function to calculate the local timestamp of a transition from the year.
+ *
+ * This translates the day of the year into a local timestamp — either a
+ * 1-based Julian day, not including leap days, or the 0-based year-day,
+ * including leap days.
+ * */
+int64_t
+dayrule_year_to_timestamp(TransitionRuleType *base_self, int year)
+{
+ // The function signature requires a TransitionRuleType pointer, but this
+ // function is only applicable to DayRule* objects.
+ DayRule *self = (DayRule *)base_self;
+
+ // ymd_to_ord calculates the number of days since 0001-01-01, but we want
+ // to know the number of days since 1970-01-01, so we must subtract off
+ // the equivalent of ymd_to_ord(1970, 1, 1).
+ //
+ // We subtract off an additional 1 day to account for January 1st (we want
+ // the number of full days *before* the date of the transition - partial
+ // days are accounted for in the hour, minute and second portions.
+ int64_t days_before_year = ymd_to_ord(year, 1, 1) - EPOCHORDINAL - 1;
+
+ // The Julian day specification skips over February 29th in leap years,
+ // from the POSIX standard:
+ //
+ // Leap days shall not be counted. That is, in all years-including leap
+ // years-February 28 is day 59 and March 1 is day 60. It is impossible to
+ // refer explicitly to the occasional February 29.
+ //
+ // This is actually more useful than you'd think — if you want a rule that
+ // always transitions on a given calendar day (other than February 29th),
+ // you would use a Julian day, e.g. J91 always refers to April 1st and J365
+ // always refers to December 31st.
+ unsigned int day = self->day;
+ if (self->julian && day >= 59 && is_leap_year(year)) {
+ day += 1;
+ }
+
+ return ((days_before_year + day) * 86400) + (self->hour * 3600) +
+ (self->minute * 60) + self->second;
+}
+
+/* Constructor for DayRule. */
+static int
+dayrule_new(uint8_t julian, unsigned int day, int8_t hour, int8_t minute,
+ int8_t second, DayRule *out)
+{
+ // The POSIX standard specifies that Julian days must be in the range (1 <=
+ // n <= 365) and that non-Julian (they call it "0-based Julian") days must
+ // be in the range (0 <= n <= 365).
+ if (day < julian || day > 365) {
+ PyErr_Format(PyExc_ValueError, "day must be in [%u, 365], not: %u",
+ julian, day);
+ return -1;
+ }
+
+ TransitionRuleType base = {
+ &dayrule_year_to_timestamp,
+ };
+
+ DayRule tmp = {
+ .base = base,
+ .julian = julian,
+ .day = day,
+ .hour = hour,
+ .minute = minute,
+ .second = second,
+ };
+
+ *out = tmp;
+
+ return 0;
+}
+
+/* Calculate the start and end rules for a _tzrule in the given year. */
+static void
+tzrule_transitions(_tzrule *rule, int year, int64_t *start, int64_t *end)
+{
+ assert(rule->start != NULL);
+ assert(rule->end != NULL);
+ *start = rule->start->year_to_timestamp(rule->start, year);
+ *end = rule->end->year_to_timestamp(rule->end, year);
+}
+
+/* Calculate the _ttinfo that applies at a given local time from a _tzrule.
+ *
+ * This takes a local timestamp and fold for disambiguation purposes; the year
+ * could technically be calculated from the timestamp, but given that the
+ * callers of this function already have the year information accessible from
+ * the datetime struct, it is taken as an additional parameter to reduce
+ * unnecessary calculation.
+ * */
+static _ttinfo *
+find_tzrule_ttinfo(_tzrule *rule, int64_t ts, unsigned char fold, int year)
+{
+ if (rule->std_only) {
+ return &(rule->std);
+ }
+
+ int64_t start, end;
+ uint8_t isdst;
+
+ tzrule_transitions(rule, year, &start, &end);
+
+ // With fold = 0, the period (denominated in local time) with the smaller
+ // offset starts at the end of the gap and ends at the end of the fold;
+ // with fold = 1, it runs from the start of the gap to the beginning of the
+ // fold.
+ //
+ // So in order to determine the DST boundaries we need to know both the
+ // fold and whether DST is positive or negative (rare), and it turns out
+ // that this boils down to fold XOR is_positive.
+ if (fold == (rule->dst_diff >= 0)) {
+ end -= rule->dst_diff;
+ }
+ else {
+ start += rule->dst_diff;
+ }
+
+ if (start < end) {
+ isdst = (ts >= start) && (ts < end);
+ }
+ else {
+ isdst = (ts < end) || (ts >= start);
+ }
+
+ if (isdst) {
+ return &(rule->dst);
+ }
+ else {
+ return &(rule->std);
+ }
+}
+
+/* Calculate the ttinfo and fold that applies for a _tzrule at an epoch time.
+ *
+ * This function can determine the _ttinfo that applies at a given epoch time,
+ * (analogous to trans_list_utc), and whether or not the datetime is in a fold.
+ * This is to be used in the .fromutc() function.
+ *
+ * The year is technically a redundant parameter, because it can be calculated
+ * from the timestamp, but all callers of this function should have the year
+ * in the datetime struct anyway, so taking it as a parameter saves unnecessary
+ * calculation.
+ **/
+static _ttinfo *
+find_tzrule_ttinfo_fromutc(_tzrule *rule, int64_t ts, int year,
+ unsigned char *fold)
+{
+ if (rule->std_only) {
+ *fold = 0;
+ return &(rule->std);
+ }
+
+ int64_t start, end;
+ uint8_t isdst;
+ tzrule_transitions(rule, year, &start, &end);
+ start -= rule->std.utcoff_seconds;
+ end -= rule->dst.utcoff_seconds;
+
+ if (start < end) {
+ isdst = (ts >= start) && (ts < end);
+ }
+ else {
+ isdst = (ts < end) || (ts >= start);
+ }
+
+ // For positive DST, the ambiguous period is one dst_diff after the end of
+ // DST; for negative DST, the ambiguous period is one dst_diff before the
+ // start of DST.
+ int64_t ambig_start, ambig_end;
+ if (rule->dst_diff > 0) {
+ ambig_start = end;
+ ambig_end = end + rule->dst_diff;
+ }
+ else {
+ ambig_start = start;
+ ambig_end = start - rule->dst_diff;
+ }
+
+ *fold = (ts >= ambig_start) && (ts < ambig_end);
+
+ if (isdst) {
+ return &(rule->dst);
+ }
+ else {
+ return &(rule->std);
+ }
+}
+
+/* Parse a TZ string in the format specified by the POSIX standard:
+ *
+ * std offset[dst[offset],start[/time],end[/time]]
+ *
+ * std and dst must be 3 or more characters long and must not contain a
+ * leading colon, embedded digits, commas, nor a plus or minus signs; The
+ * spaces between "std" and "offset" are only for display and are not actually
+ * present in the string.
+ *
+ * The format of the offset is ``[+|-]hh[:mm[:ss]]``
+ *
+ * See the POSIX.1 spec: IEE Std 1003.1-2018 §8.3:
+ *
+ * https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
+ */
+static int
+parse_tz_str(PyObject *tz_str_obj, _tzrule *out)
+{
+ PyObject *std_abbr = NULL;
+ PyObject *dst_abbr = NULL;
+ TransitionRuleType *start = NULL;
+ TransitionRuleType *end = NULL;
+ // Initialize offsets to invalid value (> 24 hours)
+ long std_offset = 1 << 20;
+ long dst_offset = 1 << 20;
+
+ char *tz_str = PyBytes_AsString(tz_str_obj);
+ if (tz_str == NULL) {
+ return -1;
+ }
+ char *p = tz_str;
+
+ // Read the `std` abbreviation, which must be at least 3 characters long.
+ Py_ssize_t num_chars = parse_abbr(p, &std_abbr);
+ if (num_chars < 1) {
+ PyErr_Format(PyExc_ValueError, "Invalid STD format in %R", tz_str_obj);
+ goto error;
+ }
+
+ p += num_chars;
+
+ // Now read the STD offset, which is required
+ num_chars = parse_tz_delta(p, &std_offset);
+ if (num_chars < 0) {
+ PyErr_Format(PyExc_ValueError, "Invalid STD offset in %R", tz_str_obj);
+ goto error;
+ }
+ p += num_chars;
+
+ // If the string ends here, there is no DST, otherwise we must parse the
+ // DST abbreviation and start and end dates and times.
+ if (*p == '\0') {
+ goto complete;
+ }
+
+ num_chars = parse_abbr(p, &dst_abbr);
+ if (num_chars < 1) {
+ PyErr_Format(PyExc_ValueError, "Invalid DST format in %R", tz_str_obj);
+ goto error;
+ }
+ p += num_chars;
+
+ if (*p == ',') {
+ // From the POSIX standard:
+ //
+ // If no offset follows dst, the alternative time is assumed to be one
+ // hour ahead of standard time.
+ dst_offset = std_offset + 3600;
+ }
+ else {
+ num_chars = parse_tz_delta(p, &dst_offset);
+ if (num_chars < 0) {
+ PyErr_Format(PyExc_ValueError, "Invalid DST offset in %R",
+ tz_str_obj);
+ goto error;
+ }
+
+ p += num_chars;
+ }
+
+ TransitionRuleType **transitions[2] = {&start, &end};
+ for (size_t i = 0; i < 2; ++i) {
+ if (*p != ',') {
+ PyErr_Format(PyExc_ValueError,
+ "Missing transition rules in TZ string: %R",
+ tz_str_obj);
+ goto error;
+ }
+ p++;
+
+ num_chars = parse_transition_rule(p, transitions[i]);
+ if (num_chars < 0) {
+ PyErr_Format(PyExc_ValueError,
+ "Malformed transition rule in TZ string: %R",
+ tz_str_obj);
+ goto error;
+ }
+ p += num_chars;
+ }
+
+ if (*p != '\0') {
+ PyErr_Format(PyExc_ValueError,
+ "Extraneous characters at end of TZ string: %R",
+ tz_str_obj);
+ goto error;
+ }
+
+complete:
+ build_tzrule(std_abbr, dst_abbr, std_offset, dst_offset, start, end, out);
+ Py_DECREF(std_abbr);
+ Py_XDECREF(dst_abbr);
+
+ return 0;
+error:
+ Py_XDECREF(std_abbr);
+ if (dst_abbr != NULL && dst_abbr != Py_None) {
+ Py_DECREF(dst_abbr);
+ }
+
+ if (start != NULL) {
+ PyMem_Free(start);
+ }
+
+ if (end != NULL) {
+ PyMem_Free(end);
+ }
+
+ return -1;
+}
+
+static int
+parse_uint(const char *const p, uint8_t *value)
+{
+ if (!isdigit(*p)) {
+ return -1;
+ }
+
+ *value = (*p) - '0';
+ return 0;
+}
+
+/* Parse the STD and DST abbreviations from a TZ string. */
+static Py_ssize_t
+parse_abbr(const char *const p, PyObject **abbr)
+{
+ const char *ptr = p;
+ char buff = *ptr;
+ const char *str_start;
+ const char *str_end;
+
+ if (*ptr == '<') {
+ ptr++;
+ str_start = ptr;
+ while ((buff = *ptr) != '>') {
+ // From the POSIX standard:
+ //
+ // In the quoted form, the first character shall be the less-than
+ // ( '<' ) character and the last character shall be the
+ // greater-than ( '>' ) character. All characters between these
+ // quoting characters shall be alphanumeric characters from the
+ // portable character set in the current locale, the plus-sign (
+ // '+' ) character, or the minus-sign ( '-' ) character. The std
+ // and dst fields in this case shall not include the quoting
+ // characters.
+ if (!isalpha(buff) && !isdigit(buff) && buff != '+' &&
+ buff != '-') {
+ return -1;
+ }
+ ptr++;
+ }
+ str_end = ptr;
+ ptr++;
+ }
+ else {
+ str_start = p;
+ // From the POSIX standard:
+ //
+ // In the unquoted form, all characters in these fields shall be
+ // alphabetic characters from the portable character set in the
+ // current locale.
+ while (isalpha(*ptr)) {
+ ptr++;
+ }
+ str_end = ptr;
+ }
+
+ *abbr = PyUnicode_FromStringAndSize(str_start, str_end - str_start);
+ if (*abbr == NULL) {
+ return -1;
+ }
+
+ return ptr - p;
+}
+
+/* Parse a UTC offset from a TZ str. */
+static Py_ssize_t
+parse_tz_delta(const char *const p, long *total_seconds)
+{
+ // From the POSIX spec:
+ //
+ // Indicates the value added to the local time to arrive at Coordinated
+ // Universal Time. The offset has the form:
+ //
+ // hh[:mm[:ss]]
+ //
+ // One or more digits may be used; the value is always interpreted as a
+ // decimal number.
+ //
+ // The POSIX spec says that the values for `hour` must be between 0 and 24
+ // hours, but RFC 8536 §3.3.1 specifies that the hours part of the
+ // transition times may be signed and range from -167 to 167.
+ long sign = -1;
+ long hours = 0;
+ long minutes = 0;
+ long seconds = 0;
+
+ const char *ptr = p;
+ char buff = *ptr;
+ if (buff == '-' || buff == '+') {
+ // Negative numbers correspond to *positive* offsets, from the spec:
+ //
+ // If preceded by a '-', the timezone shall be east of the Prime
+ // Meridian; otherwise, it shall be west (which may be indicated by
+ // an optional preceding '+' ).
+ if (buff == '-') {
+ sign = 1;
+ }
+
+ ptr++;
+ }
+
+ // The hour can be 1 or 2 numeric characters
+ for (size_t i = 0; i < 2; ++i) {
+ buff = *ptr;
+ if (!isdigit(buff)) {
+ if (i == 0) {
+ return -1;
+ }
+ else {
+ break;
+ }
+ }
+
+ hours *= 10;
+ hours += buff - '0';
+ ptr++;
+ }
+
+ if (hours > 24 || hours < 0) {
+ return -1;
+ }
+
+ // Minutes and seconds always of the format ":dd"
+ long *outputs[2] = {&minutes, &seconds};
+ for (size_t i = 0; i < 2; ++i) {
+ if (*ptr != ':') {
+ goto complete;
+ }
+ ptr++;
+
+ for (size_t j = 0; j < 2; ++j) {
+ buff = *ptr;
+ if (!isdigit(buff)) {
+ return -1;
+ }
+ *(outputs[i]) *= 10;
+ *(outputs[i]) += buff - '0';
+ ptr++;
+ }
+ }
+
+complete:
+ *total_seconds = sign * ((hours * 3600) + (minutes * 60) + seconds);
+
+ return ptr - p;
+}
+
+/* Parse the date portion of a transition rule. */
+static Py_ssize_t
+parse_transition_rule(const char *const p, TransitionRuleType **out)
+{
+ // The full transition rule indicates when to change back and forth between
+ // STD and DST, and has the form:
+ //
+ // date[/time],date[/time]
+ //
+ // This function parses an individual date[/time] section, and returns
+ // the number of characters that contributed to the transition rule. This
+ // does not include the ',' at the end of the first rule.
+ //
+ // The POSIX spec states that if *time* is not given, the default is 02:00.
+ const char *ptr = p;
+ int8_t hour = 2;
+ int8_t minute = 0;
+ int8_t second = 0;
+
+ // Rules come in one of three flavors:
+ //
+ // 1. Jn: Julian day n, with no leap days.
+ // 2. n: Day of year (0-based, with leap days)
+ // 3. Mm.n.d: Specifying by month, week and day-of-week.
+
+ if (*ptr == 'M') {
+ uint8_t month, week, day;
+ ptr++;
+ if (parse_uint(ptr, &month)) {
+ return -1;
+ }
+ ptr++;
+ if (*ptr != '.') {
+ uint8_t tmp;
+ if (parse_uint(ptr, &tmp)) {
+ return -1;
+ }
+
+ month *= 10;
+ month += tmp;
+ ptr++;
+ }
+
+ uint8_t *values[2] = {&week, &day};
+ for (size_t i = 0; i < 2; ++i) {
+ if (*ptr != '.') {
+ return -1;
+ }
+ ptr++;
+
+ if (parse_uint(ptr, values[i])) {
+ return -1;
+ }
+ ptr++;
+ }
+
+ if (*ptr == '/') {
+ ptr++;
+ Py_ssize_t num_chars =
+ parse_transition_time(ptr, &hour, &minute, &second);
+ if (num_chars < 0) {
+ return -1;
+ }
+ ptr += num_chars;
+ }
+
+ CalendarRule *rv = PyMem_Calloc(1, sizeof(CalendarRule));
+ if (rv == NULL) {
+ return -1;
+ }
+
+ if (calendarrule_new(month, week, day, hour, minute, second, rv)) {
+ PyMem_Free(rv);
+ return -1;
+ }
+
+ *out = (TransitionRuleType *)rv;
+ }
+ else {
+ uint8_t julian = 0;
+ unsigned int day = 0;
+ if (*ptr == 'J') {
+ julian = 1;
+ ptr++;
+ }
+
+ for (size_t i = 0; i < 3; ++i) {
+ if (!isdigit(*ptr)) {
+ if (i == 0) {
+ return -1;
+ }
+ break;
+ }
+ day *= 10;
+ day += (*ptr) - '0';
+ ptr++;
+ }
+
+ if (*ptr == '/') {
+ ptr++;
+ Py_ssize_t num_chars =
+ parse_transition_time(ptr, &hour, &minute, &second);
+ if (num_chars < 0) {
+ return -1;
+ }
+ ptr += num_chars;
+ }
+
+ DayRule *rv = PyMem_Calloc(1, sizeof(DayRule));
+ if (rv == NULL) {
+ return -1;
+ }
+
+ if (dayrule_new(julian, day, hour, minute, second, rv)) {
+ PyMem_Free(rv);
+ return -1;
+ }
+ *out = (TransitionRuleType *)rv;
+ }
+
+ return ptr - p;
+}
+
+/* Parse the time portion of a transition rule (e.g. following an /) */
+static Py_ssize_t
+parse_transition_time(const char *const p, int8_t *hour, int8_t *minute,
+ int8_t *second)
+{
+ // From the spec:
+ //
+ // The time has the same format as offset except that no leading sign
+ // ( '-' or '+' ) is allowed.
+ //
+ // The format for the offset is:
+ //
+ // h[h][:mm[:ss]]
+ //
+ // RFC 8536 also allows transition times to be signed and to range from
+ // -167 to +167, but the current version only supports [0, 99].
+ //
+ // TODO: Support the full range of transition hours.
+ int8_t *components[3] = {hour, minute, second};
+ const char *ptr = p;
+ int8_t sign = 1;
+
+ if (*ptr == '-' || *ptr == '+') {
+ if (*ptr == '-') {
+ sign = -1;
+ }
+ ptr++;
+ }
+
+ for (size_t i = 0; i < 3; ++i) {
+ if (i > 0) {
+ if (*ptr != ':') {
+ break;
+ }
+ ptr++;
+ }
+
+ uint8_t buff = 0;
+ for (size_t j = 0; j < 2; j++) {
+ if (!isdigit(*ptr)) {
+ if (i == 0 && j > 0) {
+ break;
+ }
+ return -1;
+ }
+
+ buff *= 10;
+ buff += (*ptr) - '0';
+ ptr++;
+ }
+
+ *(components[i]) = sign * buff;
+ }
+
+ return ptr - p;
+}
+
+/* Constructor for a _tzrule.
+ *
+ * If `dst_abbr` is NULL, this will construct an "STD-only" _tzrule, in which
+ * case `dst_offset` will be ignored and `start` and `end` are expected to be
+ * NULL as well.
+ *
+ * Returns 0 on success.
+ */
+static int
+build_tzrule(PyObject *std_abbr, PyObject *dst_abbr, long std_offset,
+ long dst_offset, TransitionRuleType *start,
+ TransitionRuleType *end, _tzrule *out)
+{
+ _tzrule rv = {{0}};
+
+ rv.start = start;
+ rv.end = end;
+
+ if (build_ttinfo(std_offset, 0, std_abbr, &rv.std)) {
+ goto error;
+ }
+
+ if (dst_abbr != NULL) {
+ rv.dst_diff = dst_offset - std_offset;
+ if (build_ttinfo(dst_offset, rv.dst_diff, dst_abbr, &rv.dst)) {
+ goto error;
+ }
+ }
+ else {
+ rv.std_only = 1;
+ }
+
+ *out = rv;
+
+ return 0;
+error:
+ xdecref_ttinfo(&rv.std);
+ xdecref_ttinfo(&rv.dst);
+ return -1;
+}
+
+/* Destructor for _tzrule. */
+static void
+free_tzrule(_tzrule *tzrule)
+{
+ xdecref_ttinfo(&(tzrule->std));
+ if (!tzrule->std_only) {
+ xdecref_ttinfo(&(tzrule->dst));
+ }
+
+ if (tzrule->start != NULL) {
+ PyMem_Free(tzrule->start);
+ }
+
+ if (tzrule->end != NULL) {
+ PyMem_Free(tzrule->end);
+ }
+}
+
+/* Calculate DST offsets from transitions and UTC offsets
+ *
+ * This is necessary because each C `ttinfo` only contains the UTC offset,
+ * time zone abbreviation and an isdst boolean - it does not include the
+ * amount of the DST offset, but we need the amount for the dst() function.
+ *
+ * Thus function uses heuristics to infer what the offset should be, so it
+ * is not guaranteed that this will work for all zones. If we cannot assign
+ * a value for a given DST offset, we'll assume it's 1H rather than 0H, so
+ * bool(dt.dst()) will always match ttinfo.isdst.
+ */
+static void
+utcoff_to_dstoff(size_t *trans_idx, long *utcoffs, long *dstoffs,
+ unsigned char *isdsts, size_t num_transitions,
+ size_t num_ttinfos)
+{
+ size_t dst_count = 0;
+ size_t dst_found = 0;
+ for (size_t i = 0; i < num_ttinfos; ++i) {
+ dst_count++;
+ }
+
+ for (size_t i = 1; i < num_transitions; ++i) {
+ if (dst_count == dst_found) {
+ break;
+ }
+
+ size_t idx = trans_idx[i];
+ size_t comp_idx = trans_idx[i - 1];
+
+ // Only look at DST offsets that have nto been assigned already
+ if (!isdsts[idx] || dstoffs[idx] != 0) {
+ continue;
+ }
+
+ long dstoff = 0;
+ long utcoff = utcoffs[idx];
+
+ if (!isdsts[comp_idx]) {
+ dstoff = utcoff - utcoffs[comp_idx];
+ }
+
+ if (!dstoff && idx < (num_ttinfos - 1)) {
+ comp_idx = trans_idx[i + 1];
+
+ // If the following transition is also DST and we couldn't find
+ // the DST offset by this point, we're going to have to skip it
+ // and hope this transition gets assigned later
+ if (isdsts[comp_idx]) {
+ continue;
+ }
+
+ dstoff = utcoff - utcoffs[comp_idx];
+ }
+
+ if (dstoff) {
+ dst_found++;
+ dstoffs[idx] = dstoff;
+ }
+ }
+
+ if (dst_found < dst_count) {
+ // If there are time zones we didn't find a value for, we'll end up
+ // with dstoff = 0 for something where isdst=1. This is obviously
+ // wrong — one hour will be a much better guess than 0.
+ for (size_t idx = 0; idx < num_ttinfos; ++idx) {
+ if (isdsts[idx] && !dstoffs[idx]) {
+ dstoffs[idx] = 3600;
+ }
+ }
+ }
+}
+
+#define _swap(x, y, buffer) \
+ buffer = x; \
+ x = y; \
+ y = buffer;
+
+/* Calculate transitions in local time from UTC time and offsets.
+ *
+ * We want to know when each transition occurs, denominated in the number of
+ * nominal wall-time seconds between 1970-01-01T00:00:00 and the transition in
+ * *local time* (note: this is *not* equivalent to the output of
+ * datetime.timestamp, which is the total number of seconds actual elapsed
+ * since 1970-01-01T00:00:00Z in UTC).
+ *
+ * This is an ambiguous question because "local time" can be ambiguous — but it
+ * is disambiguated by the `fold` parameter, so we allocate two arrays:
+ *
+ * trans_local[0]: The wall-time transitions for fold=0
+ * trans_local[1]: The wall-time transitions for fold=1
+ *
+ * This returns 0 on success and a negative number of failure. The trans_local
+ * arrays must be freed if they are not NULL.
+ */
+static int
+ts_to_local(size_t *trans_idx, int64_t *trans_utc, long *utcoff,
+ int64_t *trans_local[2], size_t num_ttinfos,
+ size_t num_transitions)
+{
+ if (num_transitions == 0) {
+ return 0;
+ }
+
+ // Copy the UTC transitions into each array to be modified in place later
+ for (size_t i = 0; i < 2; ++i) {
+ trans_local[i] = PyMem_Malloc(num_transitions * sizeof(int64_t));
+ if (trans_local[i] == NULL) {
+ return -1;
+ }
+
+ memcpy(trans_local[i], trans_utc, num_transitions * sizeof(int64_t));
+ }
+
+ int64_t offset_0, offset_1, buff;
+ if (num_ttinfos > 1) {
+ offset_0 = utcoff[0];
+ offset_1 = utcoff[trans_idx[0]];
+
+ if (offset_1 > offset_0) {
+ _swap(offset_0, offset_1, buff);
+ }
+ }
+ else {
+ offset_0 = utcoff[0];
+ offset_1 = utcoff[0];
+ }
+
+ trans_local[0][0] += offset_0;
+ trans_local[1][0] += offset_1;
+
+ for (size_t i = 1; i < num_transitions; ++i) {
+ offset_0 = utcoff[trans_idx[i - 1]];
+ offset_1 = utcoff[trans_idx[i]];
+
+ if (offset_1 > offset_0) {
+ _swap(offset_1, offset_0, buff);
+ }
+
+ trans_local[0][i] += offset_0;
+ trans_local[1][i] += offset_1;
+ }
+
+ return 0;
+}
+
+/* Simple bisect_right binary search implementation */
+static size_t
+_bisect(const int64_t value, const int64_t *arr, size_t size)
+{
+ size_t lo = 0;
+ size_t hi = size;
+ size_t m;
+
+ while (lo < hi) {
+ m = (lo + hi) / 2;
+ if (arr[m] > value) {
+ hi = m;
+ }
+ else {
+ lo = m + 1;
+ }
+ }
+
+ return hi;
+}
+
+/* Find the ttinfo rules that apply at a given local datetime. */
+static _ttinfo *
+find_ttinfo(PyZoneInfo_ZoneInfo *self, PyObject *dt)
+{
+ // datetime.time has a .tzinfo attribute that passes None as the dt
+ // argument; it only really has meaning for fixed-offset zones.
+ if (dt == Py_None) {
+ if (self->fixed_offset) {
+ return &(self->tzrule_after.std);
+ }
+ else {
+ return &NO_TTINFO;
+ }
+ }
+
+ int64_t ts;
+ if (get_local_timestamp(dt, &ts)) {
+ return NULL;
+ }
+
+ unsigned char fold = PyDateTime_DATE_GET_FOLD(dt);
+ assert(fold < 2);
+ int64_t *local_transitions = self->trans_list_wall[fold];
+ size_t num_trans = self->num_transitions;
+
+ if (num_trans && ts < local_transitions[0]) {
+ return self->ttinfo_before;
+ }
+ else if (!num_trans || ts > local_transitions[self->num_transitions - 1]) {
+ return find_tzrule_ttinfo(&(self->tzrule_after), ts, fold,
+ PyDateTime_GET_YEAR(dt));
+ }
+ else {
+ size_t idx = _bisect(ts, local_transitions, self->num_transitions) - 1;
+ assert(idx < self->num_transitions);
+ return self->trans_ttinfos[idx];
+ }
+}
+
+static int
+is_leap_year(int year)
+{
+ const unsigned int ayear = (unsigned int)year;
+ return ayear % 4 == 0 && (ayear % 100 != 0 || ayear % 400 == 0);
+}
+
+/* Calculates ordinal datetime from year, month and day. */
+static int
+ymd_to_ord(int y, int m, int d)
+{
+ y -= 1;
+ int days_before_year = (y * 365) + (y / 4) - (y / 100) + (y / 400);
+ int yearday = DAYS_BEFORE_MONTH[m];
+ if (m > 2 && is_leap_year(y + 1)) {
+ yearday += 1;
+ }
+
+ return days_before_year + yearday + d;
+}
+
+/* Calculate the number of seconds since 1970-01-01 in local time.
+ *
+ * This gets a datetime in the same "units" as self->trans_list_wall so that we
+ * can easily determine which transitions a datetime falls between. See the
+ * comment above ts_to_local for more information.
+ * */
+static int
+get_local_timestamp(PyObject *dt, int64_t *local_ts)
+{
+ assert(local_ts != NULL);
+
+ int hour, minute, second;
+ int ord;
+ if (PyDateTime_CheckExact(dt)) {
+ int y = PyDateTime_GET_YEAR(dt);
+ int m = PyDateTime_GET_MONTH(dt);
+ int d = PyDateTime_GET_DAY(dt);
+ hour = PyDateTime_DATE_GET_HOUR(dt);
+ minute = PyDateTime_DATE_GET_MINUTE(dt);
+ second = PyDateTime_DATE_GET_SECOND(dt);
+
+ ord = ymd_to_ord(y, m, d);
+ }
+ else {
+ PyObject *num = PyObject_CallMethod(dt, "toordinal", NULL);
+ if (num == NULL) {
+ return -1;
+ }
+
+ ord = PyLong_AsLong(num);
+ Py_DECREF(num);
+ if (ord == -1 && PyErr_Occurred()) {
+ return -1;
+ }
+
+ num = PyObject_GetAttrString(dt, "hour");
+ if (num == NULL) {
+ return -1;
+ }
+ hour = PyLong_AsLong(num);
+ Py_DECREF(num);
+ if (hour == -1) {
+ return -1;
+ }
+
+ num = PyObject_GetAttrString(dt, "minute");
+ if (num == NULL) {
+ return -1;
+ }
+ minute = PyLong_AsLong(num);
+ Py_DECREF(num);
+ if (minute == -1) {
+ return -1;
+ }
+
+ num = PyObject_GetAttrString(dt, "second");
+ if (num == NULL) {
+ return -1;
+ }
+ second = PyLong_AsLong(num);
+ Py_DECREF(num);
+ if (second == -1) {
+ return -1;
+ }
+ }
+
+ *local_ts = (int64_t)(ord - EPOCHORDINAL) * 86400 +
+ (int64_t)(hour * 3600 + minute * 60 + second);
+
+ return 0;
+}
+
+/////
+// Functions for cache handling
+
+/* Constructor for StrongCacheNode */
+static StrongCacheNode *
+strong_cache_node_new(PyObject *key, PyObject *zone)
+{
+ StrongCacheNode *node = PyMem_Malloc(sizeof(StrongCacheNode));
+ if (node == NULL) {
+ return NULL;
+ }
+
+ Py_INCREF(key);
+ Py_INCREF(zone);
+
+ node->next = NULL;
+ node->prev = NULL;
+ node->key = key;
+ node->zone = zone;
+
+ return node;
+}
+
+/* Destructor for StrongCacheNode */
+void
+strong_cache_node_free(StrongCacheNode *node)
+{
+ Py_XDECREF(node->key);
+ Py_XDECREF(node->zone);
+
+ PyMem_Free(node);
+}
+
+/* Frees all nodes at or after a specified root in the strong cache.
+ *
+ * This can be used on the root node to free the entire cache or it can be used
+ * to clear all nodes that have been expired (which, if everything is going
+ * right, will actually only be 1 node at a time).
+ */
+void
+strong_cache_free(StrongCacheNode *root)
+{
+ StrongCacheNode *node = root;
+ StrongCacheNode *next_node;
+ while (node != NULL) {
+ next_node = node->next;
+ strong_cache_node_free(node);
+
+ node = next_node;
+ }
+}
+
+/* Removes a node from the cache and update its neighbors.
+ *
+ * This is used both when ejecting a node from the cache and when moving it to
+ * the front of the cache.
+ */
+static void
+remove_from_strong_cache(StrongCacheNode *node)
+{
+ if (ZONEINFO_STRONG_CACHE == node) {
+ ZONEINFO_STRONG_CACHE = node->next;
+ }
+
+ if (node->prev != NULL) {
+ node->prev->next = node->next;
+ }
+
+ if (node->next != NULL) {
+ node->next->prev = node->prev;
+ }
+
+ node->next = NULL;
+ node->prev = NULL;
+}
+
+/* Retrieves the node associated with a key, if it exists.
+ *
+ * This traverses the strong cache until it finds a matching key and returns a
+ * pointer to the relevant node if found. Returns NULL if no node is found.
+ *
+ * root may be NULL, indicating an empty cache.
+ */
+static StrongCacheNode *
+find_in_strong_cache(const StrongCacheNode *const root, PyObject *const key)
+{
+ const StrongCacheNode *node = root;
+ while (node != NULL) {
+ int rv = PyObject_RichCompareBool(key, node->key, Py_EQ);
+ if (rv < 0) {
+ return NULL;
+ }
+ if (rv) {
+ return (StrongCacheNode *)node;
+ }
+
+ node = node->next;
+ }
+
+ return NULL;
+}
+
+/* Ejects a given key from the class's strong cache, if applicable.
+ *
+ * This function is used to enable the per-key functionality in clear_cache.
+ */
+static int
+eject_from_strong_cache(const PyTypeObject *const type, PyObject *key)
+{
+ if (type != &PyZoneInfo_ZoneInfoType) {
+ return 0;
+ }
+
+ StrongCacheNode *node = find_in_strong_cache(ZONEINFO_STRONG_CACHE, key);
+ if (node != NULL) {
+ remove_from_strong_cache(node);
+
+ strong_cache_node_free(node);
+ }
+ else if (PyErr_Occurred()) {
+ return -1;
+ }
+ return 0;
+}
+
+/* Moves a node to the front of the LRU cache.
+ *
+ * The strong cache is an LRU cache, so whenever a given node is accessed, if
+ * it is not at the front of the cache, it needs to be moved there.
+ */
+static void
+move_strong_cache_node_to_front(StrongCacheNode **root, StrongCacheNode *node)
+{
+ StrongCacheNode *root_p = *root;
+ if (root_p == node) {
+ return;
+ }
+
+ remove_from_strong_cache(node);
+
+ node->prev = NULL;
+ node->next = root_p;
+
+ if (root_p != NULL) {
+ root_p->prev = node;
+ }
+
+ *root = node;
+}
+
+/* Retrieves a ZoneInfo from the strong cache if it's present.
+ *
+ * This function finds the ZoneInfo by key and if found will move the node to
+ * the front of the LRU cache and return a new reference to it. It returns NULL
+ * if the key is not in the cache.
+ *
+ * The strong cache is currently only implemented for the base class, so this
+ * always returns a cache miss for subclasses.
+ */
+static PyObject *
+zone_from_strong_cache(const PyTypeObject *const type, PyObject *const key)
+{
+ if (type != &PyZoneInfo_ZoneInfoType) {
+ return NULL; // Strong cache currently only implemented for base class
+ }
+
+ StrongCacheNode *node = find_in_strong_cache(ZONEINFO_STRONG_CACHE, key);
+
+ if (node != NULL) {
+ move_strong_cache_node_to_front(&ZONEINFO_STRONG_CACHE, node);
+ Py_INCREF(node->zone);
+ return node->zone;
+ }
+
+ return NULL; // Cache miss
+}
+
+/* Inserts a new key into the strong LRU cache.
+ *
+ * This function is only to be used after a cache miss — it creates a new node
+ * at the front of the cache and ejects any stale entries (keeping the size of
+ * the cache to at most ZONEINFO_STRONG_CACHE_MAX_SIZE).
+ */
+static void
+update_strong_cache(const PyTypeObject *const type, PyObject *key,
+ PyObject *zone)
+{
+ if (type != &PyZoneInfo_ZoneInfoType) {
+ return;
+ }
+
+ StrongCacheNode *new_node = strong_cache_node_new(key, zone);
+
+ move_strong_cache_node_to_front(&ZONEINFO_STRONG_CACHE, new_node);
+
+ StrongCacheNode *node = new_node->next;
+ for (size_t i = 1; i < ZONEINFO_STRONG_CACHE_MAX_SIZE; ++i) {
+ if (node == NULL) {
+ return;
+ }
+ node = node->next;
+ }
+
+ // Everything beyond this point needs to be freed
+ if (node != NULL) {
+ if (node->prev != NULL) {
+ node->prev->next = NULL;
+ }
+ strong_cache_free(node);
+ }
+}
+
+/* Clears all entries into a type's strong cache.
+ *
+ * Because the strong cache is not implemented for subclasses, this is a no-op
+ * for everything except the base class.
+ */
+void
+clear_strong_cache(const PyTypeObject *const type)
+{
+ if (type != &PyZoneInfo_ZoneInfoType) {
+ return;
+ }
+
+ strong_cache_free(ZONEINFO_STRONG_CACHE);
+ ZONEINFO_STRONG_CACHE = NULL;
+}
+
+static PyObject *
+new_weak_cache(void)
+{
+ PyObject *weakref_module = PyImport_ImportModule("weakref");
+ if (weakref_module == NULL) {
+ return NULL;
+ }
+
+ PyObject *weak_cache =
+ PyObject_CallMethod(weakref_module, "WeakValueDictionary", "");
+ Py_DECREF(weakref_module);
+ return weak_cache;
+}
+
+static int
+initialize_caches(void)
+{
+ // TODO: Move to a PyModule_GetState / PEP 573 based caching system.
+ if (TIMEDELTA_CACHE == NULL) {
+ TIMEDELTA_CACHE = PyDict_New();
+ }
+ else {
+ Py_INCREF(TIMEDELTA_CACHE);
+ }
+
+ if (TIMEDELTA_CACHE == NULL) {
+ return -1;
+ }
+
+ if (ZONEINFO_WEAK_CACHE == NULL) {
+ ZONEINFO_WEAK_CACHE = new_weak_cache();
+ }
+ else {
+ Py_INCREF(ZONEINFO_WEAK_CACHE);
+ }
+
+ if (ZONEINFO_WEAK_CACHE == NULL) {
+ return -1;
+ }
+
+ return 0;
+}
+
+static PyObject *
+zoneinfo_init_subclass(PyTypeObject *cls, PyObject *args, PyObject **kwargs)
+{
+ PyObject *weak_cache = new_weak_cache();
+ if (weak_cache == NULL) {
+ return NULL;
+ }
+
+ if (PyObject_SetAttrString((PyObject *)cls, "_weak_cache",
+ weak_cache) < 0) {
+ Py_DECREF(weak_cache);
+ return NULL;
+ }
+ Py_DECREF(weak_cache);
+ Py_RETURN_NONE;
+}
+
+/////
+// Specify the ZoneInfo type
+static PyMethodDef zoneinfo_methods[] = {
+ {"clear_cache", (PyCFunction)(void (*)(void))zoneinfo_clear_cache,
+ METH_VARARGS | METH_KEYWORDS | METH_CLASS,
+ PyDoc_STR("Clear the ZoneInfo cache.")},
+ {"no_cache", (PyCFunction)(void (*)(void))zoneinfo_no_cache,
+ METH_VARARGS | METH_KEYWORDS | METH_CLASS,
+ PyDoc_STR("Get a new instance of ZoneInfo, bypassing the cache.")},
+ {"from_file", (PyCFunction)(void (*)(void))zoneinfo_from_file,
+ METH_VARARGS | METH_KEYWORDS | METH_CLASS,
+ PyDoc_STR("Create a ZoneInfo file from a file object.")},
+ {"utcoffset", (PyCFunction)zoneinfo_utcoffset, METH_O,
+ PyDoc_STR("Retrieve a timedelta representing the UTC offset in a zone at "
+ "the given datetime.")},
+ {"dst", (PyCFunction)zoneinfo_dst, METH_O,
+ PyDoc_STR("Retrieve a timedelta representing the amount of DST applied "
+ "in a zone at the given datetime.")},
+ {"tzname", (PyCFunction)zoneinfo_tzname, METH_O,
+ PyDoc_STR("Retrieve a string containing the abbreviation for the time "
+ "zone that applies in a zone at a given datetime.")},
+ {"fromutc", (PyCFunction)zoneinfo_fromutc, METH_O,
+ PyDoc_STR("Given a datetime with local time in UTC, retrieve an adjusted "
+ "datetime in local time.")},
+ {"__reduce__", (PyCFunction)zoneinfo_reduce, METH_NOARGS,
+ PyDoc_STR("Function for serialization with the pickle protocol.")},
+ {"_unpickle", (PyCFunction)zoneinfo__unpickle, METH_VARARGS | METH_CLASS,
+ PyDoc_STR("Private method used in unpickling.")},
+ {"__init_subclass__", (PyCFunction)(void (*)(void))zoneinfo_init_subclass,
+ METH_VARARGS | METH_KEYWORDS | METH_CLASS,
+ PyDoc_STR("Function to initialize subclasses.")},
+ {NULL} /* Sentinel */
+};
+
+static PyMemberDef zoneinfo_members[] = {
+ {.name = "key",
+ .offset = offsetof(PyZoneInfo_ZoneInfo, key),
+ .type = T_OBJECT_EX,
+ .flags = READONLY,
+ .doc = NULL},
+ {NULL}, /* Sentinel */
+};
+
+static PyTypeObject PyZoneInfo_ZoneInfoType = {
+ PyVarObject_HEAD_INIT(NULL, 0) //
+ .tp_name = "zoneinfo.ZoneInfo",
+ .tp_basicsize = sizeof(PyZoneInfo_ZoneInfo),
+ .tp_weaklistoffset = offsetof(PyZoneInfo_ZoneInfo, weakreflist),
+ .tp_repr = (reprfunc)zoneinfo_repr,
+ .tp_str = (reprfunc)zoneinfo_str,
+ .tp_getattro = PyObject_GenericGetAttr,
+ .tp_flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE),
+ /* .tp_doc = zoneinfo_doc, */
+ .tp_methods = zoneinfo_methods,
+ .tp_members = zoneinfo_members,
+ .tp_new = zoneinfo_new,
+ .tp_dealloc = zoneinfo_dealloc,
+};
+
+/////
+// Specify the _zoneinfo module
+static PyMethodDef module_methods[] = {{NULL, NULL}};
+static void
+module_free()
+{
+ Py_XDECREF(_tzpath_find_tzfile);
+ _tzpath_find_tzfile = NULL;
+
+ Py_XDECREF(_common_mod);
+ _common_mod = NULL;
+
+ Py_XDECREF(io_open);
+ io_open = NULL;
+
+ xdecref_ttinfo(&NO_TTINFO);
+
+ if (TIMEDELTA_CACHE != NULL && Py_REFCNT(TIMEDELTA_CACHE) > 1) {
+ Py_DECREF(TIMEDELTA_CACHE);
+ } else {
+ Py_CLEAR(TIMEDELTA_CACHE);
+ }
+
+ if (ZONEINFO_WEAK_CACHE != NULL && Py_REFCNT(ZONEINFO_WEAK_CACHE) > 1) {
+ Py_DECREF(ZONEINFO_WEAK_CACHE);
+ } else {
+ Py_CLEAR(ZONEINFO_WEAK_CACHE);
+ }
+
+ clear_strong_cache(&PyZoneInfo_ZoneInfoType);
+}
+
+static int
+zoneinfomodule_exec(PyObject *m)
+{
+ PyDateTime_IMPORT;
+ if (PyDateTimeAPI == NULL) {
+ goto error;
+ }
+ PyZoneInfo_ZoneInfoType.tp_base = PyDateTimeAPI->TZInfoType;
+ if (PyType_Ready(&PyZoneInfo_ZoneInfoType) < 0) {
+ goto error;
+ }
+
+ Py_INCREF(&PyZoneInfo_ZoneInfoType);
+ PyModule_AddObject(m, "ZoneInfo", (PyObject *)&PyZoneInfo_ZoneInfoType);
+
+ /* Populate imports */
+ PyObject *_tzpath_module = PyImport_ImportModule("zoneinfo._tzpath");
+ if (_tzpath_module == NULL) {
+ goto error;
+ }
+
+ _tzpath_find_tzfile =
+ PyObject_GetAttrString(_tzpath_module, "find_tzfile");
+ Py_DECREF(_tzpath_module);
+ if (_tzpath_find_tzfile == NULL) {
+ goto error;
+ }
+
+ PyObject *io_module = PyImport_ImportModule("io");
+ if (io_module == NULL) {
+ goto error;
+ }
+
+ io_open = PyObject_GetAttrString(io_module, "open");
+ Py_DECREF(io_module);
+ if (io_open == NULL) {
+ goto error;
+ }
+
+ _common_mod = PyImport_ImportModule("zoneinfo._common");
+ if (_common_mod == NULL) {
+ goto error;
+ }
+
+ if (NO_TTINFO.utcoff == NULL) {
+ NO_TTINFO.utcoff = Py_None;
+ NO_TTINFO.dstoff = Py_None;
+ NO_TTINFO.tzname = Py_None;
+
+ for (size_t i = 0; i < 3; ++i) {
+ Py_INCREF(Py_None);
+ }
+ }
+
+ if (initialize_caches()) {
+ goto error;
+ }
+
+ return 0;
+
+error:
+ return -1;
+}
+
+static PyModuleDef_Slot zoneinfomodule_slots[] = {
+ {Py_mod_exec, zoneinfomodule_exec}, {0, NULL}};
+
+static struct PyModuleDef zoneinfomodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "_zoneinfo",
+ .m_doc = "C implementation of the zoneinfo module",
+ .m_size = 0,
+ .m_methods = module_methods,
+ .m_slots = zoneinfomodule_slots,
+ .m_free = (freefunc)module_free};
+
+PyMODINIT_FUNC
+PyInit__zoneinfo(void)
+{
+ return PyModuleDef_Init(&zoneinfomodule);
+}
diff --git a/contrib/tools/python3/src/Modules/arraymodule.c b/contrib/tools/python3/src/Modules/arraymodule.c
index b9be7e7f8e..7c7fc91745 100644
--- a/contrib/tools/python3/src/Modules/arraymodule.c
+++ b/contrib/tools/python3/src/Modules/arraymodule.c
@@ -5,7 +5,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include <stddef.h> // offsetof()
+#include <stddef.h> // offsetof()
#ifdef STDC_HEADERS
#include <stddef.h>
@@ -43,7 +43,7 @@ typedef struct arrayobject {
Py_ssize_t allocated;
const struct arraydescr *ob_descr;
PyObject *weakreflist; /* List of weak references */
- Py_ssize_t ob_exports; /* Number of exported buffers */
+ Py_ssize_t ob_exports; /* Number of exported buffers */
} arrayobject;
static PyTypeObject Arraytype;
@@ -106,7 +106,7 @@ enum machine_format_code {
#include "clinic/arraymodule.c.h"
#define array_Check(op) PyObject_TypeCheck(op, &Arraytype)
-#define array_CheckExact(op) Py_IS_TYPE(op, &Arraytype)
+#define array_CheckExact(op) Py_IS_TYPE(op, &Arraytype)
static int
array_resize(arrayobject *self, Py_ssize_t newsize)
@@ -128,14 +128,14 @@ array_resize(arrayobject *self, Py_ssize_t newsize)
if (self->allocated >= newsize &&
Py_SIZE(self) < newsize + 16 &&
self->ob_item != NULL) {
- Py_SET_SIZE(self, newsize);
+ Py_SET_SIZE(self, newsize);
return 0;
}
if (newsize == 0) {
PyMem_FREE(self->ob_item);
self->ob_item = NULL;
- Py_SET_SIZE(self, 0);
+ Py_SET_SIZE(self, 0);
self->allocated = 0;
return 0;
}
@@ -165,7 +165,7 @@ array_resize(arrayobject *self, Py_ssize_t newsize)
return -1;
}
self->ob_item = items;
- Py_SET_SIZE(self, newsize);
+ Py_SET_SIZE(self, newsize);
self->allocated = _new_size;
return 0;
}
@@ -185,7 +185,7 @@ in bounds; that's the responsibility of the caller.
static PyObject *
b_getitem(arrayobject *ap, Py_ssize_t i)
{
- long x = ((signed char *)ap->ob_item)[i];
+ long x = ((signed char *)ap->ob_item)[i];
return PyLong_FromLong(x);
}
@@ -235,31 +235,31 @@ BB_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
static PyObject *
u_getitem(arrayobject *ap, Py_ssize_t i)
{
- return PyUnicode_FromOrdinal(((wchar_t *) ap->ob_item)[i]);
+ return PyUnicode_FromOrdinal(((wchar_t *) ap->ob_item)[i]);
}
static int
u_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
{
- PyObject *u;
- if (!PyArg_Parse(v, "U;array item must be unicode character", &u)) {
- return -1;
- }
+ PyObject *u;
+ if (!PyArg_Parse(v, "U;array item must be unicode character", &u)) {
+ return -1;
+ }
- Py_ssize_t len = PyUnicode_AsWideChar(u, NULL, 0);
- if (len != 2) {
+ Py_ssize_t len = PyUnicode_AsWideChar(u, NULL, 0);
+ if (len != 2) {
PyErr_SetString(PyExc_TypeError,
"array item must be unicode character");
return -1;
}
-
- wchar_t w;
- len = PyUnicode_AsWideChar(u, &w, 1);
- assert(len == 1);
-
- if (i >= 0) {
- ((wchar_t *)ap->ob_item)[i] = w;
- }
+
+ wchar_t w;
+ len = PyUnicode_AsWideChar(u, &w, 1);
+ assert(len == 1);
+
+ if (i >= 0) {
+ ((wchar_t *)ap->ob_item)[i] = w;
+ }
return 0;
}
@@ -345,7 +345,7 @@ get_int_unless_float(PyObject *v)
"array item must be integer");
return NULL;
}
- return _PyLong_FromNbIndexOrNbInt(v);
+ return _PyLong_FromNbIndexOrNbInt(v);
}
static int
@@ -537,7 +537,7 @@ d_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
DEFINE_COMPAREITEMS(b, signed char)
DEFINE_COMPAREITEMS(BB, unsigned char)
-DEFINE_COMPAREITEMS(u, wchar_t)
+DEFINE_COMPAREITEMS(u, wchar_t)
DEFINE_COMPAREITEMS(h, short)
DEFINE_COMPAREITEMS(HH, unsigned short)
DEFINE_COMPAREITEMS(i, int)
@@ -555,7 +555,7 @@ DEFINE_COMPAREITEMS(QQ, unsigned long long)
static const struct arraydescr descriptors[] = {
{'b', 1, b_getitem, b_setitem, b_compareitems, "b", 1, 1},
{'B', 1, BB_getitem, BB_setitem, BB_compareitems, "B", 1, 0},
- {'u', sizeof(wchar_t), u_getitem, u_setitem, u_compareitems, "u", 0, 0},
+ {'u', sizeof(wchar_t), u_getitem, u_setitem, u_compareitems, "u", 0, 0},
{'h', sizeof(short), h_getitem, h_setitem, h_compareitems, "h", 1, 1},
{'H', sizeof(short), HH_getitem, HH_setitem, HH_compareitems, "H", 1, 0},
{'i', sizeof(int), i_getitem, i_setitem, i_compareitems, "i", 1, 1},
@@ -600,7 +600,7 @@ newarrayobject(PyTypeObject *type, Py_ssize_t size, const struct arraydescr *des
op->ob_descr = descr;
op->allocated = size;
op->weakreflist = NULL;
- Py_SET_SIZE(op, size);
+ Py_SET_SIZE(op, size);
if (size <= 0) {
op->ob_item = NULL;
}
@@ -1141,7 +1141,7 @@ array_array_index(arrayobject *self, PyObject *v)
cmp = PyObject_RichCompareBool(selfi, v, Py_EQ);
Py_DECREF(selfi);
if (cmp > 0) {
- return PyLong_FromSsize_t(i);
+ return PyLong_FromSsize_t(i);
}
else if (cmp < 0)
return NULL;
@@ -1179,7 +1179,7 @@ static PyObject *
array_array_remove(arrayobject *self, PyObject *v)
/*[clinic end generated code: output=bef06be9fdf9dceb input=0b1e5aed25590027]*/
{
- Py_ssize_t i;
+ Py_ssize_t i;
for (i = 0; i < Py_SIZE(self); i++) {
PyObject *selfi;
@@ -1512,7 +1512,7 @@ array_array_tofile(arrayobject *self, PyObject *f)
bytes = PyBytes_FromStringAndSize(ptr, size);
if (bytes == NULL)
return NULL;
- res = _PyObject_CallMethodIdOneArg(f, &PyId_write, bytes);
+ res = _PyObject_CallMethodIdOneArg(f, &PyId_write, bytes);
Py_DECREF(bytes);
if (res == NULL)
return NULL;
@@ -1636,12 +1636,12 @@ array.array.frombytes
buffer: Py_buffer
/
-Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.
+Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.
[clinic start generated code]*/
static PyObject *
array_array_frombytes_impl(arrayobject *self, Py_buffer *buffer)
-/*[clinic end generated code: output=d9842c8f7510a516 input=378db226dfac949e]*/
+/*[clinic end generated code: output=d9842c8f7510a516 input=378db226dfac949e]*/
{
return frombytes(self, buffer);
}
@@ -1667,7 +1667,7 @@ array_array_tobytes_impl(arrayobject *self)
/*[clinic input]
array.array.fromunicode
- ustr: unicode
+ ustr: unicode
/
Extends this array with data from the unicode string ustr.
@@ -1678,28 +1678,28 @@ some other type.
[clinic start generated code]*/
static PyObject *
-array_array_fromunicode_impl(arrayobject *self, PyObject *ustr)
-/*[clinic end generated code: output=24359f5e001a7f2b input=025db1fdade7a4ce]*/
+array_array_fromunicode_impl(arrayobject *self, PyObject *ustr)
+/*[clinic end generated code: output=24359f5e001a7f2b input=025db1fdade7a4ce]*/
{
- if (self->ob_descr->typecode != 'u') {
+ if (self->ob_descr->typecode != 'u') {
PyErr_SetString(PyExc_ValueError,
"fromunicode() may only be called on "
"unicode type arrays");
return NULL;
}
-
- Py_ssize_t ustr_length = PyUnicode_AsWideChar(ustr, NULL, 0);
- assert(ustr_length > 0);
- if (ustr_length > 1) {
- ustr_length--; /* trim trailing NUL character */
+
+ Py_ssize_t ustr_length = PyUnicode_AsWideChar(ustr, NULL, 0);
+ assert(ustr_length > 0);
+ if (ustr_length > 1) {
+ ustr_length--; /* trim trailing NUL character */
Py_ssize_t old_size = Py_SIZE(self);
- if (array_resize(self, old_size + ustr_length) == -1) {
+ if (array_resize(self, old_size + ustr_length) == -1) {
return NULL;
- }
-
- // must not fail
- PyUnicode_AsWideChar(
- ustr, ((wchar_t *)self->ob_item) + old_size, ustr_length);
+ }
+
+ // must not fail
+ PyUnicode_AsWideChar(
+ ustr, ((wchar_t *)self->ob_item) + old_size, ustr_length);
}
Py_RETURN_NONE;
@@ -1719,12 +1719,12 @@ static PyObject *
array_array_tounicode_impl(arrayobject *self)
/*[clinic end generated code: output=08e442378336e1ef input=127242eebe70b66d]*/
{
- if (self->ob_descr->typecode != 'u') {
+ if (self->ob_descr->typecode != 'u') {
PyErr_SetString(PyExc_ValueError,
"tounicode() may only be called on unicode type arrays");
return NULL;
}
- return PyUnicode_FromWideChar((wchar_t *) self->ob_item, Py_SIZE(self));
+ return PyUnicode_FromWideChar((wchar_t *) self->ob_item, Py_SIZE(self));
}
/*[clinic input]
@@ -1996,7 +1996,7 @@ array__array_reconstructor_impl(PyObject *module, PyTypeObject *arraytype,
switch (mformat_code) {
case IEEE_754_FLOAT_LE:
case IEEE_754_FLOAT_BE: {
- Py_ssize_t i;
+ Py_ssize_t i;
int le = (mformat_code == IEEE_754_FLOAT_LE) ? 1 : 0;
Py_ssize_t itemcount = Py_SIZE(items) / 4;
const unsigned char *memstr =
@@ -2018,7 +2018,7 @@ array__array_reconstructor_impl(PyObject *module, PyTypeObject *arraytype,
}
case IEEE_754_DOUBLE_LE:
case IEEE_754_DOUBLE_BE: {
- Py_ssize_t i;
+ Py_ssize_t i;
int le = (mformat_code == IEEE_754_DOUBLE_LE) ? 1 : 0;
Py_ssize_t itemcount = Py_SIZE(items) / 8;
const unsigned char *memstr =
@@ -2073,7 +2073,7 @@ array__array_reconstructor_impl(PyObject *module, PyTypeObject *arraytype,
case UNSIGNED_INT64_BE:
case SIGNED_INT64_LE:
case SIGNED_INT64_BE: {
- Py_ssize_t i;
+ Py_ssize_t i;
const struct mformatdescr mf_descr =
mformat_descriptors[mformat_code];
Py_ssize_t itemcount = Py_SIZE(items) / mf_descr.size;
@@ -2308,8 +2308,8 @@ array_subscr(arrayobject* self, PyObject* item)
return array_item(self, i);
}
else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelength, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelength, i;
+ size_t cur;
PyObject* result;
arrayobject* ar;
int itemsize = self->ob_descr->itemsize;
@@ -2493,8 +2493,8 @@ array_ass_subscr(arrayobject* self, PyObject* item, PyObject* value)
return 0;
}
else {
- size_t cur;
- Py_ssize_t i;
+ size_t cur;
+ Py_ssize_t i;
if (needed != slicelength) {
PyErr_Format(PyExc_ValueError,
@@ -2600,11 +2600,11 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (!PyArg_ParseTuple(args, "C|O:array", &c, &initial))
return NULL;
- if (PySys_Audit("array.__new__", "CO",
- c, initial ? initial : Py_None) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("array.__new__", "CO",
+ c, initial ? initial : Py_None) < 0) {
+ return NULL;
+ }
+
if (initial && c != 'u') {
if (PyUnicode_Check(initial)) {
PyErr_Format(PyExc_TypeError, "cannot use a str to initialize "
@@ -2684,7 +2684,7 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
}
else if (initial != NULL && PyUnicode_Check(initial)) {
Py_ssize_t n;
- wchar_t *ustr = PyUnicode_AsWideCharString(initial, &n);
+ wchar_t *ustr = PyUnicode_AsWideCharString(initial, &n);
if (ustr == NULL) {
Py_DECREF(a);
return NULL;
@@ -2692,11 +2692,11 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (n > 0) {
arrayobject *self = (arrayobject *)a;
- // self->ob_item may be NULL but it is safe.
- PyMem_Free(self->ob_item);
- self->ob_item = (char *)ustr;
- Py_SET_SIZE(self, n);
- self->allocated = n;
+ // self->ob_item may be NULL but it is safe.
+ PyMem_Free(self->ob_item);
+ self->ob_item = (char *)ustr;
+ Py_SET_SIZE(self, n);
+ self->allocated = n;
}
}
else if (initial != NULL && array_Check(initial) && len > 0) {
@@ -2739,26 +2739,26 @@ the type of objects stored in them is constrained. The type is specified\n\
at object creation time by using a type code, which is a single character.\n\
The following type codes are defined:\n\
\n\
- Type code C Type Minimum size in bytes\n\
- 'b' signed integer 1\n\
- 'B' unsigned integer 1\n\
- 'u' Unicode character 2 (see note)\n\
- 'h' signed integer 2\n\
- 'H' unsigned integer 2\n\
- 'i' signed integer 2\n\
- 'I' unsigned integer 2\n\
- 'l' signed integer 4\n\
- 'L' unsigned integer 4\n\
- 'q' signed integer 8 (see note)\n\
- 'Q' unsigned integer 8 (see note)\n\
- 'f' floating point 4\n\
- 'd' floating point 8\n\
+ Type code C Type Minimum size in bytes\n\
+ 'b' signed integer 1\n\
+ 'B' unsigned integer 1\n\
+ 'u' Unicode character 2 (see note)\n\
+ 'h' signed integer 2\n\
+ 'H' unsigned integer 2\n\
+ 'i' signed integer 2\n\
+ 'I' unsigned integer 2\n\
+ 'l' signed integer 4\n\
+ 'L' unsigned integer 4\n\
+ 'q' signed integer 8 (see note)\n\
+ 'Q' unsigned integer 8 (see note)\n\
+ 'f' floating point 4\n\
+ 'd' floating point 8\n\
\n\
-NOTE: The 'u' typecode corresponds to Python's unicode character. On\n\
+NOTE: The 'u' typecode corresponds to Python's unicode character. On\n\
narrow builds this is 2-bytes on wide builds this is 4-bytes.\n\
\n\
-NOTE: The 'q' and 'Q' type codes are only available if the platform\n\
-C compiler used to build Python supports 'long long', or, on Windows,\n\
+NOTE: The 'q' and 'Q' type codes are only available if the platform\n\
+C compiler used to build Python supports 'long long', or, on Windows,\n\
'__int64'.\n\
\n\
Methods:\n\
@@ -2794,10 +2794,10 @@ static PyTypeObject Arraytype = {
sizeof(arrayobject),
0,
(destructor)array_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)array_repr, /* tp_repr */
0, /* tp_as_number*/
&array_as_sequence, /* tp_as_sequence*/
@@ -2905,8 +2905,8 @@ static PyObject *
array_arrayiterator___reduce___impl(arrayiterobject *self)
/*[clinic end generated code: output=7898a52e8e66e016 input=a062ea1e9951417a]*/
{
- _Py_IDENTIFIER(iter);
- PyObject *func = _PyEval_GetBuiltinId(&PyId_iter);
+ _Py_IDENTIFIER(iter);
+ PyObject *func = _PyEval_GetBuiltinId(&PyId_iter);
if (self->ao == NULL) {
return Py_BuildValue("N(())", func);
}
@@ -2950,10 +2950,10 @@ static PyTypeObject PyArrayIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)arrayiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2993,28 +2993,28 @@ array_modexec(PyObject *m)
if (PyType_Ready(&Arraytype) < 0)
return -1;
- Py_SET_TYPE(&PyArrayIter_Type, &PyType_Type);
+ Py_SET_TYPE(&PyArrayIter_Type, &PyType_Type);
Py_INCREF((PyObject *)&Arraytype);
- if (PyModule_AddObject(m, "ArrayType", (PyObject *)&Arraytype) < 0) {
- Py_DECREF((PyObject *)&Arraytype);
- return -1;
- }
+ if (PyModule_AddObject(m, "ArrayType", (PyObject *)&Arraytype) < 0) {
+ Py_DECREF((PyObject *)&Arraytype);
+ return -1;
+ }
Py_INCREF((PyObject *)&Arraytype);
- if (PyModule_AddObject(m, "array", (PyObject *)&Arraytype) < 0) {
- Py_DECREF((PyObject *)&Arraytype);
- return -1;
- }
+ if (PyModule_AddObject(m, "array", (PyObject *)&Arraytype) < 0) {
+ Py_DECREF((PyObject *)&Arraytype);
+ return -1;
+ }
p = buffer;
for (descr = descriptors; descr->typecode != '\0'; descr++) {
*p++ = (char)descr->typecode;
}
typecodes = PyUnicode_DecodeASCII(buffer, p - buffer, NULL);
- if (PyModule_AddObject(m, "typecodes", typecodes) < 0) {
- Py_XDECREF(typecodes);
- return -1;
- }
+ if (PyModule_AddObject(m, "typecodes", typecodes) < 0) {
+ Py_XDECREF(typecodes);
+ return -1;
+ }
return 0;
}
diff --git a/contrib/tools/python3/src/Modules/atexitmodule.c b/contrib/tools/python3/src/Modules/atexitmodule.c
index 525ee2a488..8cef64ceb9 100644
--- a/contrib/tools/python3/src/Modules/atexitmodule.c
+++ b/contrib/tools/python3/src/Modules/atexitmodule.c
@@ -28,13 +28,13 @@ typedef struct {
int callback_len;
} atexitmodule_state;
-static inline atexitmodule_state*
-get_atexit_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (atexitmodule_state *)state;
-}
+static inline atexitmodule_state*
+get_atexit_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (atexitmodule_state *)state;
+}
static void
@@ -78,7 +78,7 @@ atexit_callfuncs(PyObject *module)
if (module == NULL)
return;
- modstate = get_atexit_state(module);
+ modstate = get_atexit_state(module);
if (modstate->ncallbacks == 0)
return;
@@ -136,7 +136,7 @@ atexit_register(PyObject *self, PyObject *args, PyObject *kwargs)
atexit_callback *new_callback;
PyObject *func = NULL;
- modstate = get_atexit_state(self);
+ modstate = get_atexit_state(self);
if (modstate->ncallbacks >= modstate->callback_len) {
atexit_callback **r;
@@ -203,7 +203,7 @@ Clear the list of previously registered exit functions.");
static PyObject *
atexit_clear(PyObject *self, PyObject *unused)
{
- atexit_cleanup(get_atexit_state(self));
+ atexit_cleanup(get_atexit_state(self));
Py_RETURN_NONE;
}
@@ -217,7 +217,7 @@ atexit_ncallbacks(PyObject *self, PyObject *unused)
{
atexitmodule_state *modstate;
- modstate = get_atexit_state(self);
+ modstate = get_atexit_state(self);
return PyLong_FromSsize_t(modstate->ncallbacks);
}
@@ -228,15 +228,15 @@ atexit_m_traverse(PyObject *self, visitproc visit, void *arg)
int i;
atexitmodule_state *modstate;
- modstate = (atexitmodule_state *)PyModule_GetState(self);
-
- for (i = 0; i < modstate->ncallbacks; i++) {
- atexit_callback *cb = modstate->atexit_callbacks[i];
- if (cb == NULL)
- continue;
- Py_VISIT(cb->func);
- Py_VISIT(cb->args);
- Py_VISIT(cb->kwargs);
+ modstate = (atexitmodule_state *)PyModule_GetState(self);
+
+ for (i = 0; i < modstate->ncallbacks; i++) {
+ atexit_callback *cb = modstate->atexit_callbacks[i];
+ if (cb == NULL)
+ continue;
+ Py_VISIT(cb->func);
+ Py_VISIT(cb->args);
+ Py_VISIT(cb->kwargs);
}
return 0;
}
@@ -245,8 +245,8 @@ static int
atexit_m_clear(PyObject *self)
{
atexitmodule_state *modstate;
- modstate = (atexitmodule_state *)PyModule_GetState(self);
- atexit_cleanup(modstate);
+ modstate = (atexitmodule_state *)PyModule_GetState(self);
+ atexit_cleanup(modstate);
return 0;
}
@@ -254,9 +254,9 @@ static void
atexit_free(PyObject *m)
{
atexitmodule_state *modstate;
- modstate = (atexitmodule_state *)PyModule_GetState(m);
- atexit_cleanup(modstate);
- PyMem_Free(modstate->atexit_callbacks);
+ modstate = (atexitmodule_state *)PyModule_GetState(m);
+ atexit_cleanup(modstate);
+ PyMem_Free(modstate->atexit_callbacks);
}
PyDoc_STRVAR(atexit_unregister__doc__,
@@ -274,7 +274,7 @@ atexit_unregister(PyObject *self, PyObject *func)
atexit_callback *cb;
int i, eq;
- modstate = get_atexit_state(self);
+ modstate = get_atexit_state(self);
for (i = 0; i < modstate->ncallbacks; i++)
{
@@ -292,7 +292,7 @@ atexit_unregister(PyObject *self, PyObject *func)
}
static PyMethodDef atexit_methods[] = {
- {"register", (PyCFunction)(void(*)(void)) atexit_register, METH_VARARGS|METH_KEYWORDS,
+ {"register", (PyCFunction)(void(*)(void)) atexit_register, METH_VARARGS|METH_KEYWORDS,
atexit_register__doc__},
{"_clear", (PyCFunction) atexit_clear, METH_NOARGS,
atexit_clear__doc__},
@@ -319,7 +319,7 @@ static int
atexit_exec(PyObject *m) {
atexitmodule_state *modstate;
- modstate = get_atexit_state(m);
+ modstate = get_atexit_state(m);
modstate->callback_len = 32;
modstate->ncallbacks = 0;
modstate->atexit_callbacks = PyMem_New(atexit_callback*,
diff --git a/contrib/tools/python3/src/Modules/audioop.c b/contrib/tools/python3/src/Modules/audioop.c
index 0ab4989535..3aeb6f04f1 100644
--- a/contrib/tools/python3/src/Modules/audioop.c
+++ b/contrib/tools/python3/src/Modules/audioop.c
@@ -371,26 +371,26 @@ static const int stepsizeTable[89] = {
SETINT32((cp), (i), (val)); \
} while(0)
-static PyModuleDef audioopmodule;
-
-typedef struct {
- PyObject *AudioopError;
-} audioop_state;
-
-static inline audioop_state *
-get_audioop_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (audioop_state *)state;
-}
-
+static PyModuleDef audioopmodule;
+
+typedef struct {
+ PyObject *AudioopError;
+} audioop_state;
+
+static inline audioop_state *
+get_audioop_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (audioop_state *)state;
+}
+
static int
-audioop_check_size(PyObject *module, int size)
+audioop_check_size(PyObject *module, int size)
{
if (size < 1 || size > 4) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Size should be 1, 2, 3 or 4");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Size should be 1, 2, 3 or 4");
return 0;
}
else
@@ -398,13 +398,13 @@ audioop_check_size(PyObject *module, int size)
}
static int
-audioop_check_parameters(PyObject *module, Py_ssize_t len, int size)
+audioop_check_parameters(PyObject *module, Py_ssize_t len, int size)
{
- if (!audioop_check_size(module, size))
+ if (!audioop_check_size(module, size))
return 0;
if (len % size != 0) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "not a whole number of frames");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "not a whole number of frames");
return 0;
}
return 1;
@@ -433,11 +433,11 @@ audioop_getsample_impl(PyObject *module, Py_buffer *fragment, int width,
{
int val;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
if (index < 0 || index >= fragment->len/width) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Index out of range");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Index out of range");
return NULL;
}
val = GETRAWSAMPLE(width, fragment->buf, index*width);
@@ -461,7 +461,7 @@ audioop_max_impl(PyObject *module, Py_buffer *fragment, int width)
Py_ssize_t i;
unsigned int absval, max = 0;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
for (i = 0; i < fragment->len; i += width) {
int val = GETRAWSAMPLE(width, fragment->buf, i);
@@ -493,7 +493,7 @@ audioop_minmax_impl(PyObject *module, Py_buffer *fragment, int width)
a warning */
int min = 0x7fffffff, max = -0x7FFFFFFF-1;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
for (i = 0; i < fragment->len; i += width) {
int val = GETRAWSAMPLE(width, fragment->buf, i);
@@ -521,7 +521,7 @@ audioop_avg_impl(PyObject *module, Py_buffer *fragment, int width)
int avg;
double sum = 0.0;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
for (i = 0; i < fragment->len; i += width)
sum += GETRAWSAMPLE(width, fragment->buf, i);
@@ -550,7 +550,7 @@ audioop_rms_impl(PyObject *module, Py_buffer *fragment, int width)
unsigned int res;
double sum_squares = 0.0;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
for (i = 0; i < fragment->len; i += width) {
double val = GETRAWSAMPLE(width, fragment->buf, i);
@@ -628,8 +628,8 @@ audioop_findfit_impl(PyObject *module, Py_buffer *fragment,
double sum_ri_2, sum_aij_2, sum_aij_ri, result, best_result, factor;
if (fragment->len & 1 || reference->len & 1) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Strings should be even-sized");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Strings should be even-sized");
return NULL;
}
cp1 = (const int16_t *)fragment->buf;
@@ -638,8 +638,8 @@ audioop_findfit_impl(PyObject *module, Py_buffer *fragment,
len2 = reference->len >> 1;
if (len1 < len2) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "First sample should be longer");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "First sample should be longer");
return NULL;
}
sum_ri_2 = _sum2(cp2, cp2, len2);
@@ -697,13 +697,13 @@ audioop_findfactor_impl(PyObject *module, Py_buffer *fragment,
double sum_ri_2, sum_aij_ri, result;
if (fragment->len & 1 || reference->len & 1) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Strings should be even-sized");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Strings should be even-sized");
return NULL;
}
if (fragment->len != reference->len) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Samples should be same size");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Samples should be same size");
return NULL;
}
cp1 = (const int16_t *)fragment->buf;
@@ -743,16 +743,16 @@ audioop_findmax_impl(PyObject *module, Py_buffer *fragment,
double result, best_result;
if (fragment->len & 1) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Strings should be even-sized");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Strings should be even-sized");
return NULL;
}
cp1 = (const int16_t *)fragment->buf;
len1 = fragment->len >> 1;
if (length < 0 || len1 < length) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Input sample should be longer");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Input sample should be longer");
return NULL;
}
@@ -797,7 +797,7 @@ audioop_avgpp_impl(PyObject *module, Py_buffer *fragment, int width)
unsigned int avg;
int diff, prevdiff, nextreme = 0;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
if (fragment->len <= width)
return PyLong_FromLong(0);
@@ -853,7 +853,7 @@ audioop_maxpp_impl(PyObject *module, Py_buffer *fragment, int width)
unsigned int max = 0, extremediff;
int diff, prevdiff;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
if (fragment->len <= width)
return PyLong_FromLong(0);
@@ -905,7 +905,7 @@ audioop_cross_impl(PyObject *module, Py_buffer *fragment, int width)
int prevval;
Py_ssize_t ncross;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
ncross = -1;
prevval = 17; /* Anything <> 0,1 */
@@ -938,7 +938,7 @@ audioop_mul_impl(PyObject *module, Py_buffer *fragment, int width,
double maxval, minval;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
maxval = (double) maxvals[width];
@@ -981,11 +981,11 @@ audioop_tomono_impl(PyObject *module, Py_buffer *fragment, int width,
cp = fragment->buf;
len = fragment->len;
- if (!audioop_check_parameters(module, len, width))
+ if (!audioop_check_parameters(module, len, width))
return NULL;
if (((len / width) & 1) != 0) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "not a whole number of frames");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "not a whole number of frames");
return NULL;
}
@@ -1029,7 +1029,7 @@ audioop_tostereo_impl(PyObject *module, Py_buffer *fragment, int width,
double maxval, minval;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
maxval = (double) maxvals[width];
@@ -1077,11 +1077,11 @@ audioop_add_impl(PyObject *module, Py_buffer *fragment1,
int minval, maxval, newval;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment1->len, width))
+ if (!audioop_check_parameters(module, fragment1->len, width))
return NULL;
if (fragment1->len != fragment2->len) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "Lengths should be the same");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "Lengths should be the same");
return NULL;
}
@@ -1136,7 +1136,7 @@ audioop_bias_impl(PyObject *module, Py_buffer *fragment, int width, int bias)
unsigned int val = 0, mask;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
rv = PyBytes_FromStringAndSize(NULL, fragment->len);
@@ -1194,7 +1194,7 @@ audioop_reverse_impl(PyObject *module, Py_buffer *fragment, int width)
Py_ssize_t i;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
rv = PyBytes_FromStringAndSize(NULL, fragment->len);
@@ -1227,7 +1227,7 @@ audioop_byteswap_impl(PyObject *module, Py_buffer *fragment, int width)
Py_ssize_t i;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
rv = PyBytes_FromStringAndSize(NULL, fragment->len);
@@ -1263,9 +1263,9 @@ audioop_lin2lin_impl(PyObject *module, Py_buffer *fragment, int width,
Py_ssize_t i, j;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
- if (!audioop_check_size(module, newwidth))
+ if (!audioop_check_size(module, newwidth))
return NULL;
if (fragment->len/width > PY_SSIZE_T_MAX/newwidth) {
@@ -1324,11 +1324,11 @@ audioop_ratecv_impl(PyObject *module, Py_buffer *fragment, int width,
PyObject *samps, *str, *rv = NULL, *channel;
int bytes_per_frame;
- if (!audioop_check_size(module, width))
+ if (!audioop_check_size(module, width))
return NULL;
if (nchannels < 1) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "# of channels should be >= 1");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "# of channels should be >= 1");
return NULL;
}
if (width > INT_MAX / nchannels) {
@@ -1341,19 +1341,19 @@ audioop_ratecv_impl(PyObject *module, Py_buffer *fragment, int width,
}
bytes_per_frame = width * nchannels;
if (weightA < 1 || weightB < 0) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
"weightA should be >= 1, weightB should be >= 0");
return NULL;
}
assert(fragment->len >= 0);
if (fragment->len % bytes_per_frame != 0) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "not a whole number of frames");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "not a whole number of frames");
return NULL;
}
if (inrate <= 0 || outrate <= 0) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
- "sampling rate not > 0");
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
+ "sampling rate not > 0");
return NULL;
}
/* divide inrate and outrate by their greatest common divisor */
@@ -1394,7 +1394,7 @@ audioop_ratecv_impl(PyObject *module, Py_buffer *fragment, int width,
&d, &PyTuple_Type, &samps))
goto exit;
if (PyTuple_Size(samps) != nchannels) {
- PyErr_SetString(get_audioop_state(module)->AudioopError,
+ PyErr_SetString(get_audioop_state(module)->AudioopError,
"illegal state argument");
goto exit;
}
@@ -1516,7 +1516,7 @@ audioop_lin2ulaw_impl(PyObject *module, Py_buffer *fragment, int width)
Py_ssize_t i;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
rv = PyBytes_FromStringAndSize(NULL, fragment->len/width);
@@ -1550,7 +1550,7 @@ audioop_ulaw2lin_impl(PyObject *module, Py_buffer *fragment, int width)
Py_ssize_t i;
PyObject *rv;
- if (!audioop_check_size(module, width))
+ if (!audioop_check_size(module, width))
return NULL;
if (fragment->len > PY_SSIZE_T_MAX/width) {
@@ -1589,7 +1589,7 @@ audioop_lin2alaw_impl(PyObject *module, Py_buffer *fragment, int width)
Py_ssize_t i;
PyObject *rv;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
rv = PyBytes_FromStringAndSize(NULL, fragment->len/width);
@@ -1624,7 +1624,7 @@ audioop_alaw2lin_impl(PyObject *module, Py_buffer *fragment, int width)
int val;
PyObject *rv;
- if (!audioop_check_size(module, width))
+ if (!audioop_check_size(module, width))
return NULL;
if (fragment->len > PY_SSIZE_T_MAX/width) {
@@ -1668,7 +1668,7 @@ audioop_lin2adpcm_impl(PyObject *module, Py_buffer *fragment, int width,
PyObject *rv = NULL, *str;
int outputbuffer = 0, bufferstep;
- if (!audioop_check_parameters(module, fragment->len, width))
+ if (!audioop_check_parameters(module, fragment->len, width))
return NULL;
/* Decode state, should have (value, step) */
@@ -1798,7 +1798,7 @@ audioop_adpcm2lin_impl(PyObject *module, Py_buffer *fragment, int width,
PyObject *rv, *str;
int inputbuffer = 0, bufferstep;
- if (!audioop_check_size(module, width))
+ if (!audioop_check_size(module, width))
return NULL;
/* Decode state, should have (value, step) */
@@ -1922,65 +1922,65 @@ static PyMethodDef audioop_methods[] = {
{ 0, 0 }
};
-static int
-audioop_traverse(PyObject *module, visitproc visit, void *arg)
-{
- audioop_state *state = get_audioop_state(module);
- Py_VISIT(state->AudioopError);
- return 0;
-}
-
-static int
-audioop_clear(PyObject *module)
-{
- audioop_state *state = get_audioop_state(module);
- Py_CLEAR(state->AudioopError);
- return 0;
-}
-
-static void
-audioop_free(void *module) {
- audioop_clear((PyObject *)module);
-}
-
-static int
-audioop_exec(PyObject* module)
-{
- audioop_state *state = get_audioop_state(module);
-
- state->AudioopError = PyErr_NewException("audioop.error", NULL, NULL);
- if (state->AudioopError == NULL) {
- return -1;
- }
-
- Py_INCREF(state->AudioopError);
- if (PyModule_AddObject(module, "error", state->AudioopError) < 0) {
- Py_DECREF(state->AudioopError);
- return -1;
- }
-
- return 0;
-}
-
-static PyModuleDef_Slot audioop_slots[] = {
- {Py_mod_exec, audioop_exec},
- {0, NULL}
-};
-
+static int
+audioop_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ audioop_state *state = get_audioop_state(module);
+ Py_VISIT(state->AudioopError);
+ return 0;
+}
+
+static int
+audioop_clear(PyObject *module)
+{
+ audioop_state *state = get_audioop_state(module);
+ Py_CLEAR(state->AudioopError);
+ return 0;
+}
+
+static void
+audioop_free(void *module) {
+ audioop_clear((PyObject *)module);
+}
+
+static int
+audioop_exec(PyObject* module)
+{
+ audioop_state *state = get_audioop_state(module);
+
+ state->AudioopError = PyErr_NewException("audioop.error", NULL, NULL);
+ if (state->AudioopError == NULL) {
+ return -1;
+ }
+
+ Py_INCREF(state->AudioopError);
+ if (PyModule_AddObject(module, "error", state->AudioopError) < 0) {
+ Py_DECREF(state->AudioopError);
+ return -1;
+ }
+
+ return 0;
+}
+
+static PyModuleDef_Slot audioop_slots[] = {
+ {Py_mod_exec, audioop_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef audioopmodule = {
PyModuleDef_HEAD_INIT,
"audioop",
NULL,
- sizeof(audioop_state),
+ sizeof(audioop_state),
audioop_methods,
- audioop_slots,
- audioop_traverse,
- audioop_clear,
- audioop_free
+ audioop_slots,
+ audioop_traverse,
+ audioop_clear,
+ audioop_free
};
PyMODINIT_FUNC
PyInit_audioop(void)
{
- return PyModuleDef_Init(&audioopmodule);
+ return PyModuleDef_Init(&audioopmodule);
}
diff --git a/contrib/tools/python3/src/Modules/binascii.c b/contrib/tools/python3/src/Modules/binascii.c
index 1c6b3e5053..1f3248b604 100644
--- a/contrib/tools/python3/src/Modules/binascii.c
+++ b/contrib/tools/python3/src/Modules/binascii.c
@@ -61,17 +61,17 @@
#include "zlib.h"
#endif
-typedef struct binascii_state {
- PyObject *Error;
- PyObject *Incomplete;
-} binascii_state;
-
-static binascii_state *
-get_binascii_state(PyObject *module)
-{
- return (binascii_state *)PyModule_GetState(module);
-}
-
+typedef struct binascii_state {
+ PyObject *Error;
+ PyObject *Incomplete;
+} binascii_state;
+
+static binascii_state *
+get_binascii_state(PyObject *module)
+{
+ return (binascii_state *)PyModule_GetState(module);
+}
+
/*
** hqx lookup table, ascii->binary.
*/
@@ -136,7 +136,7 @@ static const unsigned char table_a2b_hqx[256] = {
static const unsigned char table_b2a_hqx[] =
"!\"#$%&'()*+,-012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr";
-static const unsigned char table_a2b_base64[] = {
+static const unsigned char table_a2b_base64[] = {
-1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
-1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
-1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
@@ -144,16 +144,16 @@ static const unsigned char table_a2b_base64[] = {
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
-1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
- 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1,
-
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
- -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1,
+
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
};
#define BASE64_PAD '='
@@ -280,7 +280,7 @@ binascii_a2b_uu_impl(PyObject *module, Py_buffer *data)
unsigned int leftchar = 0;
PyObject *rv;
Py_ssize_t ascii_len, bin_len;
- binascii_state *state;
+ binascii_state *state;
ascii_data = data->buf;
ascii_len = data->len;
@@ -312,11 +312,11 @@ binascii_a2b_uu_impl(PyObject *module, Py_buffer *data)
** '`' as zero instead of space.
*/
if ( this_ch < ' ' || this_ch > (' ' + 64)) {
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error, "Illegal char");
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error, "Illegal char");
Py_DECREF(rv);
return NULL;
}
@@ -344,11 +344,11 @@ binascii_a2b_uu_impl(PyObject *module, Py_buffer *data)
/* Extra '`' may be written as padding in some cases */
if ( this_ch != ' ' && this_ch != ' '+64 &&
this_ch != '\n' && this_ch != '\r' ) {
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error, "Trailing garbage");
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error, "Trailing garbage");
Py_DECREF(rv);
return NULL;
}
@@ -376,7 +376,7 @@ binascii_b2a_uu_impl(PyObject *module, Py_buffer *data, int backtick)
int leftbits = 0;
unsigned char this_ch;
unsigned int leftchar = 0;
- binascii_state *state;
+ binascii_state *state;
Py_ssize_t bin_len, out_len;
_PyBytesWriter writer;
@@ -385,11 +385,11 @@ binascii_b2a_uu_impl(PyObject *module, Py_buffer *data, int backtick)
bin_len = data->len;
if ( bin_len > 45 ) {
/* The 45 is a limit that appears in all uuencode's */
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error, "At most 45 bytes at once");
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error, "At most 45 bytes at once");
return NULL;
}
@@ -441,92 +441,92 @@ static PyObject *
binascii_a2b_base64_impl(PyObject *module, Py_buffer *data)
/*[clinic end generated code: output=0628223f19fd3f9b input=5872acf6e1cac243]*/
{
- assert(data->len >= 0);
+ assert(data->len >= 0);
- const unsigned char *ascii_data = data->buf;
- size_t ascii_len = data->len;
+ const unsigned char *ascii_data = data->buf;
+ size_t ascii_len = data->len;
- /* Allocate the buffer */
- Py_ssize_t bin_len = ((ascii_len+3)/4)*3; /* Upper bound, corrected later */
- _PyBytesWriter writer;
+ /* Allocate the buffer */
+ Py_ssize_t bin_len = ((ascii_len+3)/4)*3; /* Upper bound, corrected later */
+ _PyBytesWriter writer;
_PyBytesWriter_Init(&writer);
- unsigned char *bin_data = _PyBytesWriter_Alloc(&writer, bin_len);
+ unsigned char *bin_data = _PyBytesWriter_Alloc(&writer, bin_len);
if (bin_data == NULL)
return NULL;
- unsigned char *bin_data_start = bin_data;
+ unsigned char *bin_data_start = bin_data;
- int quad_pos = 0;
- unsigned char leftchar = 0;
- int pads = 0;
- for (size_t i = 0; i < ascii_len; i++) {
- unsigned char this_ch = ascii_data[i];
+ int quad_pos = 0;
+ unsigned char leftchar = 0;
+ int pads = 0;
+ for (size_t i = 0; i < ascii_len; i++) {
+ unsigned char this_ch = ascii_data[i];
/* Check for pad sequences and ignore
** the invalid ones.
*/
if (this_ch == BASE64_PAD) {
- if (quad_pos >= 2 && quad_pos + ++pads >= 4) {
+ if (quad_pos >= 2 && quad_pos + ++pads >= 4) {
/* A pad sequence means no more input.
** We've already interpreted the data
** from the quad at this point.
*/
- goto done;
+ goto done;
}
- continue;
+ continue;
}
- this_ch = table_a2b_base64[this_ch];
- if (this_ch >= 64) {
+ this_ch = table_a2b_base64[this_ch];
+ if (this_ch >= 64) {
continue;
- }
- pads = 0;
-
- switch (quad_pos) {
- case 0:
- quad_pos = 1;
- leftchar = this_ch;
- break;
- case 1:
- quad_pos = 2;
- *bin_data++ = (leftchar << 2) | (this_ch >> 4);
- leftchar = this_ch & 0x0f;
- break;
- case 2:
- quad_pos = 3;
- *bin_data++ = (leftchar << 4) | (this_ch >> 2);
- leftchar = this_ch & 0x03;
- break;
- case 3:
- quad_pos = 0;
- *bin_data++ = (leftchar << 6) | (this_ch);
- leftchar = 0;
- break;
+ }
+ pads = 0;
+
+ switch (quad_pos) {
+ case 0:
+ quad_pos = 1;
+ leftchar = this_ch;
+ break;
+ case 1:
+ quad_pos = 2;
+ *bin_data++ = (leftchar << 2) | (this_ch >> 4);
+ leftchar = this_ch & 0x0f;
+ break;
+ case 2:
+ quad_pos = 3;
+ *bin_data++ = (leftchar << 4) | (this_ch >> 2);
+ leftchar = this_ch & 0x03;
+ break;
+ case 3:
+ quad_pos = 0;
+ *bin_data++ = (leftchar << 6) | (this_ch);
+ leftchar = 0;
+ break;
}
}
- if (quad_pos != 0) {
- binascii_state *state = PyModule_GetState(module);
- if (state == NULL) {
- /* error already set, from PyModule_GetState */
- } else if (quad_pos == 1) {
+ if (quad_pos != 0) {
+ binascii_state *state = PyModule_GetState(module);
+ if (state == NULL) {
+ /* error already set, from PyModule_GetState */
+ } else if (quad_pos == 1) {
/*
** There is exactly one extra valid, non-padding, base64 character.
** This is an invalid length, as there is no possible input that
** could encoded into such a base64 string.
*/
- PyErr_Format(state->Error,
+ PyErr_Format(state->Error,
"Invalid base64-encoded string: "
- "number of data characters (%zd) cannot be 1 more "
+ "number of data characters (%zd) cannot be 1 more "
"than a multiple of 4",
(bin_data - bin_data_start) / 3 * 4 + 1);
} else {
- PyErr_SetString(state->Error, "Incorrect padding");
+ PyErr_SetString(state->Error, "Incorrect padding");
}
_PyBytesWriter_Dealloc(&writer);
return NULL;
}
-done:
+done:
return _PyBytesWriter_Finish(&writer, bin_data);
}
@@ -553,7 +553,7 @@ binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline)
unsigned int leftchar = 0;
Py_ssize_t bin_len, out_len;
_PyBytesWriter writer;
- binascii_state *state;
+ binascii_state *state;
bin_data = data->buf;
bin_len = data->len;
@@ -562,11 +562,11 @@ binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline)
assert(bin_len >= 0);
if ( bin_len > BASE64_MAXBIN ) {
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error, "Too much data for base64 line");
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error, "Too much data for base64 line");
return NULL;
}
@@ -619,11 +619,11 @@ static PyObject *
binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data)
/*[clinic end generated code: output=4d6d8c54d54ea1c1 input=0d914c680e0eed55]*/
{
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "binascii.a2b_hqx() is deprecated", 1) < 0) {
- return NULL;
- }
-
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "binascii.a2b_hqx() is deprecated", 1) < 0) {
+ return NULL;
+ }
+
const unsigned char *ascii_data;
unsigned char *bin_data;
int leftbits = 0;
@@ -633,7 +633,7 @@ binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data)
Py_ssize_t len;
int done = 0;
_PyBytesWriter writer;
- binascii_state *state;
+ binascii_state *state;
ascii_data = data->buf;
len = data->len;
@@ -657,11 +657,11 @@ binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data)
if ( this_ch == SKIP )
continue;
if ( this_ch == FAIL ) {
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error, "Illegal char");
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error, "Illegal char");
_PyBytesWriter_Dealloc(&writer);
return NULL;
}
@@ -682,11 +682,11 @@ binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data)
}
if ( leftbits && !done ) {
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Incomplete,
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Incomplete,
"String has incomplete number of bytes");
_PyBytesWriter_Dealloc(&writer);
return NULL;
@@ -712,11 +712,11 @@ static PyObject *
binascii_rlecode_hqx_impl(PyObject *module, Py_buffer *data)
/*[clinic end generated code: output=393d79338f5f5629 input=e1f1712447a82b09]*/
{
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "binascii.rlecode_hqx() is deprecated", 1) < 0) {
- return NULL;
- }
-
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "binascii.rlecode_hqx() is deprecated", 1) < 0) {
+ return NULL;
+ }
+
const unsigned char *in_data;
unsigned char *out_data;
unsigned char ch;
@@ -779,11 +779,11 @@ static PyObject *
binascii_b2a_hqx_impl(PyObject *module, Py_buffer *data)
/*[clinic end generated code: output=d0aa5a704bc9f7de input=9596ebe019fe12ba]*/
{
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "binascii.b2a_hqx() is deprecated", 1) < 0) {
- return NULL;
- }
-
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "binascii.b2a_hqx() is deprecated", 1) < 0) {
+ return NULL;
+ }
+
unsigned char *ascii_data;
const unsigned char *bin_data;
int leftbits = 0;
@@ -839,11 +839,11 @@ static PyObject *
binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data)
/*[clinic end generated code: output=9826619565de1c6c input=54cdd49fc014402c]*/
{
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "binascii.rledecode_hqx() is deprecated", 1) < 0) {
- return NULL;
- }
-
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "binascii.rledecode_hqx() is deprecated", 1) < 0) {
+ return NULL;
+ }
+
const unsigned char *in_data;
unsigned char *out_data;
unsigned char in_byte, in_repeat;
@@ -853,7 +853,7 @@ binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data)
in_data = data->buf;
in_len = data->len;
_PyBytesWriter_Init(&writer);
- binascii_state *state;
+ binascii_state *state;
assert(in_len >= 0);
@@ -878,11 +878,11 @@ binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data)
#define INBYTE(b) \
do { \
if ( --in_len < 0 ) { \
- state = PyModule_GetState(module); \
- if (state == NULL) { \
- return NULL; \
- } \
- PyErr_SetString(state->Incomplete, ""); \
+ state = PyModule_GetState(module); \
+ if (state == NULL) { \
+ return NULL; \
+ } \
+ PyErr_SetString(state->Incomplete, ""); \
goto error; \
} \
b = *in_data++; \
@@ -904,11 +904,11 @@ binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data)
/* Note Error, not Incomplete (which is at the end
** of the string only). This is a programmer error.
*/
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error, "Orphaned RLE code at start");
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error, "Orphaned RLE code at start");
goto error;
}
*out_data++ = RUNCHAR;
@@ -958,7 +958,7 @@ error:
/*[clinic input]
-binascii.crc_hqx
+binascii.crc_hqx
data: Py_buffer
crc: unsigned_int(bitwise=True)
@@ -967,9 +967,9 @@ binascii.crc_hqx
Compute CRC-CCITT incrementally.
[clinic start generated code]*/
-static PyObject *
+static PyObject *
binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc)
-/*[clinic end generated code: output=2fde213d0f547a98 input=56237755370a951c]*/
+/*[clinic end generated code: output=2fde213d0f547a98 input=56237755370a951c]*/
{
const unsigned char *bin_data;
Py_ssize_t len;
@@ -982,7 +982,7 @@ binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc)
crc = ((crc<<8)&0xff00) ^ crctab_hqx[(crc>>8)^*bin_data++];
}
- return PyLong_FromUnsignedLong(crc);
+ return PyLong_FromUnsignedLong(crc);
}
#ifndef USE_ZLIB_CRC32
@@ -1155,33 +1155,33 @@ binascii_crc32_impl(PyObject *module, Py_buffer *data, unsigned int crc)
binascii.b2a_hex
data: Py_buffer
- sep: object = NULL
- An optional single character or byte to separate hex bytes.
- bytes_per_sep: int = 1
- How many bytes between separators. Positive values count from the
- right, negative values count from the left.
+ sep: object = NULL
+ An optional single character or byte to separate hex bytes.
+ bytes_per_sep: int = 1
+ How many bytes between separators. Positive values count from the
+ right, negative values count from the left.
Hexadecimal representation of binary data.
The return value is a bytes object. This function is also
available as "hexlify()".
-
-Example:
->>> binascii.b2a_hex(b'\xb9\x01\xef')
-b'b901ef'
->>> binascii.hexlify(b'\xb9\x01\xef', ':')
-b'b9:01:ef'
->>> binascii.b2a_hex(b'\xb9\x01\xef', b'_', 2)
-b'b9_01ef'
+
+Example:
+>>> binascii.b2a_hex(b'\xb9\x01\xef')
+b'b901ef'
+>>> binascii.hexlify(b'\xb9\x01\xef', ':')
+b'b9:01:ef'
+>>> binascii.b2a_hex(b'\xb9\x01\xef', b'_', 2)
+b'b9_01ef'
[clinic start generated code]*/
static PyObject *
-binascii_b2a_hex_impl(PyObject *module, Py_buffer *data, PyObject *sep,
- int bytes_per_sep)
-/*[clinic end generated code: output=a26937946a81d2c7 input=ec0ade6ba2e43543]*/
+binascii_b2a_hex_impl(PyObject *module, Py_buffer *data, PyObject *sep,
+ int bytes_per_sep)
+/*[clinic end generated code: output=a26937946a81d2c7 input=ec0ade6ba2e43543]*/
{
- return _Py_strhex_bytes_with_sep((const char *)data->buf, data->len,
- sep, bytes_per_sep);
+ return _Py_strhex_bytes_with_sep((const char *)data->buf, data->len,
+ sep, bytes_per_sep);
}
/*[clinic input]
@@ -1189,17 +1189,17 @@ binascii.hexlify = binascii.b2a_hex
Hexadecimal representation of binary data.
-The return value is a bytes object. This function is also
-available as "b2a_hex()".
+The return value is a bytes object. This function is also
+available as "b2a_hex()".
[clinic start generated code]*/
static PyObject *
-binascii_hexlify_impl(PyObject *module, Py_buffer *data, PyObject *sep,
- int bytes_per_sep)
-/*[clinic end generated code: output=d12aa1b001b15199 input=bc317bd4e241f76b]*/
+binascii_hexlify_impl(PyObject *module, Py_buffer *data, PyObject *sep,
+ int bytes_per_sep)
+/*[clinic end generated code: output=d12aa1b001b15199 input=bc317bd4e241f76b]*/
{
- return _Py_strhex_bytes_with_sep((const char *)data->buf, data->len,
- sep, bytes_per_sep);
+ return _Py_strhex_bytes_with_sep((const char *)data->buf, data->len,
+ sep, bytes_per_sep);
}
/*[clinic input]
@@ -1223,7 +1223,7 @@ binascii_a2b_hex_impl(PyObject *module, Py_buffer *hexstr)
PyObject *retval;
char* retbuf;
Py_ssize_t i, j;
- binascii_state *state;
+ binascii_state *state;
argbuf = hexstr->buf;
arglen = hexstr->len;
@@ -1235,11 +1235,11 @@ binascii_a2b_hex_impl(PyObject *module, Py_buffer *hexstr)
* raise an exception.
*/
if (arglen % 2) {
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error, "Odd-length string");
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error, "Odd-length string");
return NULL;
}
@@ -1249,14 +1249,14 @@ binascii_a2b_hex_impl(PyObject *module, Py_buffer *hexstr)
retbuf = PyBytes_AS_STRING(retval);
for (i=j=0; i < arglen; i += 2) {
- unsigned int top = _PyLong_DigitValue[Py_CHARMASK(argbuf[i])];
- unsigned int bot = _PyLong_DigitValue[Py_CHARMASK(argbuf[i+1])];
- if (top >= 16 || bot >= 16) {
- state = PyModule_GetState(module);
- if (state == NULL) {
- return NULL;
- }
- PyErr_SetString(state->Error,
+ unsigned int top = _PyLong_DigitValue[Py_CHARMASK(argbuf[i])];
+ unsigned int bot = _PyLong_DigitValue[Py_CHARMASK(argbuf[i+1])];
+ if (top >= 16 || bot >= 16) {
+ state = PyModule_GetState(module);
+ if (state == NULL) {
+ return NULL;
+ }
+ PyErr_SetString(state->Error,
"Non-hexadecimal digit found");
goto finally;
}
@@ -1312,7 +1312,7 @@ binascii_a2b_qp_impl(PyObject *module, Py_buffer *data, int header)
/* We allocate the output same size as input, this is overkill.
*/
- odata = (unsigned char *) PyMem_Calloc(1, datalen);
+ odata = (unsigned char *) PyMem_Calloc(1, datalen);
if (odata == NULL) {
PyErr_NoMemory();
return NULL;
@@ -1343,9 +1343,9 @@ binascii_a2b_qp_impl(PyObject *module, Py_buffer *data, int header)
(ascii_data[in+1] >= 'a' && ascii_data[in+1] <= 'f') ||
(ascii_data[in+1] >= '0' && ascii_data[in+1] <= '9'))) {
/* hexval */
- ch = _PyLong_DigitValue[ascii_data[in]] << 4;
+ ch = _PyLong_DigitValue[ascii_data[in]] << 4;
in++;
- ch |= _PyLong_DigitValue[ascii_data[in]];
+ ch |= _PyLong_DigitValue[ascii_data[in]];
in++;
odata[out++] = ch;
}
@@ -1497,7 +1497,7 @@ binascii_b2a_qp_impl(PyObject *module, Py_buffer *data, int quotetabs,
/* We allocate the output same size as input, this is overkill.
*/
- odata = (unsigned char *) PyMem_Calloc(1, odatalen);
+ odata = (unsigned char *) PyMem_Calloc(1, odatalen);
if (odata == NULL) {
PyErr_NoMemory();
return NULL;
@@ -1605,82 +1605,82 @@ static struct PyMethodDef binascii_module_methods[] = {
/* Initialization function for the module (*must* be called PyInit_binascii) */
PyDoc_STRVAR(doc_binascii, "Conversion between binary data and ASCII");
-static int
-binascii_exec(PyObject *module) {
- int result;
- binascii_state *state = PyModule_GetState(module);
- if (state == NULL) {
- return -1;
- }
-
- state->Error = PyErr_NewException("binascii.Error", PyExc_ValueError, NULL);
- if (state->Error == NULL) {
- return -1;
- }
- Py_INCREF(state->Error);
- result = PyModule_AddObject(module, "Error", state->Error);
- if (result == -1) {
- Py_DECREF(state->Error);
- return -1;
- }
-
- state->Incomplete = PyErr_NewException("binascii.Incomplete", NULL, NULL);
- if (state->Incomplete == NULL) {
- return -1;
- }
- Py_INCREF(state->Incomplete);
- result = PyModule_AddObject(module, "Incomplete", state->Incomplete);
- if (result == -1) {
- Py_DECREF(state->Incomplete);
- return -1;
- }
-
- return 0;
-}
-
-static PyModuleDef_Slot binascii_slots[] = {
- {Py_mod_exec, binascii_exec},
- {0, NULL}
-};
-
-static int
-binascii_traverse(PyObject *module, visitproc visit, void *arg)
-{
- binascii_state *state = get_binascii_state(module);
- Py_VISIT(state->Error);
- Py_VISIT(state->Incomplete);
- return 0;
-}
-
-static int
-binascii_clear(PyObject *module)
-{
- binascii_state *state = get_binascii_state(module);
- Py_CLEAR(state->Error);
- Py_CLEAR(state->Incomplete);
- return 0;
-}
-
-static void
-binascii_free(void *module)
-{
- binascii_clear((PyObject *)module);
-}
-
+static int
+binascii_exec(PyObject *module) {
+ int result;
+ binascii_state *state = PyModule_GetState(module);
+ if (state == NULL) {
+ return -1;
+ }
+
+ state->Error = PyErr_NewException("binascii.Error", PyExc_ValueError, NULL);
+ if (state->Error == NULL) {
+ return -1;
+ }
+ Py_INCREF(state->Error);
+ result = PyModule_AddObject(module, "Error", state->Error);
+ if (result == -1) {
+ Py_DECREF(state->Error);
+ return -1;
+ }
+
+ state->Incomplete = PyErr_NewException("binascii.Incomplete", NULL, NULL);
+ if (state->Incomplete == NULL) {
+ return -1;
+ }
+ Py_INCREF(state->Incomplete);
+ result = PyModule_AddObject(module, "Incomplete", state->Incomplete);
+ if (result == -1) {
+ Py_DECREF(state->Incomplete);
+ return -1;
+ }
+
+ return 0;
+}
+
+static PyModuleDef_Slot binascii_slots[] = {
+ {Py_mod_exec, binascii_exec},
+ {0, NULL}
+};
+
+static int
+binascii_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ binascii_state *state = get_binascii_state(module);
+ Py_VISIT(state->Error);
+ Py_VISIT(state->Incomplete);
+ return 0;
+}
+
+static int
+binascii_clear(PyObject *module)
+{
+ binascii_state *state = get_binascii_state(module);
+ Py_CLEAR(state->Error);
+ Py_CLEAR(state->Incomplete);
+ return 0;
+}
+
+static void
+binascii_free(void *module)
+{
+ binascii_clear((PyObject *)module);
+}
+
static struct PyModuleDef binasciimodule = {
PyModuleDef_HEAD_INIT,
"binascii",
doc_binascii,
- sizeof(binascii_state),
+ sizeof(binascii_state),
binascii_module_methods,
- binascii_slots,
- binascii_traverse,
- binascii_clear,
- binascii_free
+ binascii_slots,
+ binascii_traverse,
+ binascii_clear,
+ binascii_free
};
PyMODINIT_FUNC
PyInit_binascii(void)
{
- return PyModuleDef_Init(&binasciimodule);
+ return PyModuleDef_Init(&binasciimodule);
}
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/_codecs_cn.c b/contrib/tools/python3/src/Modules/cjkcodecs/_codecs_cn.c
index 8acabfea3b..8a62f7e257 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/_codecs_cn.c
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/_codecs_cn.c
@@ -52,12 +52,12 @@
}
/*
- * codecs in this file use the first byte of MultibyteCodec_State.c[8]
- * to store a 0 or 1 state value
- */
-#define CN_STATE_OFFSET 0
-
-/*
+ * codecs in this file use the first byte of MultibyteCodec_State.c[8]
+ * to store a 0 or 1 state value
+ */
+#define CN_STATE_OFFSET 0
+
+/*
* GB2312 codec
*/
@@ -335,15 +335,15 @@ DECODER(gb18030)
ENCODER_INIT(hz)
{
- state->c[CN_STATE_OFFSET] = 0;
+ state->c[CN_STATE_OFFSET] = 0;
return 0;
}
ENCODER_RESET(hz)
{
- if (state->c[CN_STATE_OFFSET] != 0) {
+ if (state->c[CN_STATE_OFFSET] != 0) {
WRITEBYTE2('~', '}');
- state->c[CN_STATE_OFFSET] = 0;
+ state->c[CN_STATE_OFFSET] = 0;
NEXT_OUT(2);
}
return 0;
@@ -356,10 +356,10 @@ ENCODER(hz)
DBCHAR code;
if (c < 0x80) {
- if (state->c[CN_STATE_OFFSET]) {
+ if (state->c[CN_STATE_OFFSET]) {
WRITEBYTE2('~', '}');
NEXT_OUT(2);
- state->c[CN_STATE_OFFSET] = 0;
+ state->c[CN_STATE_OFFSET] = 0;
}
WRITEBYTE1((unsigned char)c);
NEXT(1, 1);
@@ -381,10 +381,10 @@ ENCODER(hz)
if (code & 0x8000) /* MSB set: GBK */
return 1;
- if (state->c[CN_STATE_OFFSET] == 0) {
+ if (state->c[CN_STATE_OFFSET] == 0) {
WRITEBYTE4('~', '{', code >> 8, code & 0xff);
NEXT(1, 4);
- state->c[CN_STATE_OFFSET] = 1;
+ state->c[CN_STATE_OFFSET] = 1;
}
else {
WRITEBYTE2(code >> 8, code & 0xff);
@@ -397,13 +397,13 @@ ENCODER(hz)
DECODER_INIT(hz)
{
- state->c[CN_STATE_OFFSET] = 0;
+ state->c[CN_STATE_OFFSET] = 0;
return 0;
}
DECODER_RESET(hz)
{
- state->c[CN_STATE_OFFSET] = 0;
+ state->c[CN_STATE_OFFSET] = 0;
return 0;
}
@@ -417,14 +417,14 @@ DECODER(hz)
unsigned char c2 = INBYTE2;
REQUIRE_INBUF(2);
- if (c2 == '~' && state->c[CN_STATE_OFFSET] == 0)
+ if (c2 == '~' && state->c[CN_STATE_OFFSET] == 0)
OUTCHAR('~');
- else if (c2 == '{' && state->c[CN_STATE_OFFSET] == 0)
- state->c[CN_STATE_OFFSET] = 1; /* set GB */
- else if (c2 == '\n' && state->c[CN_STATE_OFFSET] == 0)
+ else if (c2 == '{' && state->c[CN_STATE_OFFSET] == 0)
+ state->c[CN_STATE_OFFSET] = 1; /* set GB */
+ else if (c2 == '\n' && state->c[CN_STATE_OFFSET] == 0)
; /* line-continuation */
- else if (c2 == '}' && state->c[CN_STATE_OFFSET] == 1)
- state->c[CN_STATE_OFFSET] = 0; /* set ASCII */
+ else if (c2 == '}' && state->c[CN_STATE_OFFSET] == 1)
+ state->c[CN_STATE_OFFSET] = 0; /* set ASCII */
else
return 1;
NEXT_IN(2);
@@ -434,7 +434,7 @@ DECODER(hz)
if (c & 0x80)
return 1;
- if (state->c[CN_STATE_OFFSET] == 0) { /* ASCII mode */
+ if (state->c[CN_STATE_OFFSET] == 0) { /* ASCII mode */
OUTCHAR(c);
NEXT_IN(1);
}
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/cjkcodecs.h b/contrib/tools/python3/src/Modules/cjkcodecs/cjkcodecs.h
index 949856cc9d..e41755b197 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/cjkcodecs.h
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/cjkcodecs.h
@@ -72,7 +72,7 @@ static const struct dbcs_map *mapping_list;
#define ENCODER(encoding) \
static Py_ssize_t encoding##_encode( \
MultibyteCodec_State *state, const void *config, \
- int kind, const void *data, \
+ int kind, const void *data, \
Py_ssize_t *inpos, Py_ssize_t inlen, \
unsigned char **outbuf, Py_ssize_t outleft, int flags)
#define ENCODER_RESET(encoding) \
@@ -149,42 +149,42 @@ static const struct dbcs_map *mapping_list;
writer->pos += 2; \
} while (0)
-#define OUTBYTEI(c, i) \
- do { \
- assert((unsigned char)(c) == (c)); \
- ((*outbuf)[i]) = (c); \
- } while (0)
-
-#define OUTBYTE1(c) OUTBYTEI(c, 0)
-#define OUTBYTE2(c) OUTBYTEI(c, 1)
-#define OUTBYTE3(c) OUTBYTEI(c, 2)
-#define OUTBYTE4(c) OUTBYTEI(c, 3)
-
+#define OUTBYTEI(c, i) \
+ do { \
+ assert((unsigned char)(c) == (c)); \
+ ((*outbuf)[i]) = (c); \
+ } while (0)
+
+#define OUTBYTE1(c) OUTBYTEI(c, 0)
+#define OUTBYTE2(c) OUTBYTEI(c, 1)
+#define OUTBYTE3(c) OUTBYTEI(c, 2)
+#define OUTBYTE4(c) OUTBYTEI(c, 3)
+
#define WRITEBYTE1(c1) \
do { \
REQUIRE_OUTBUF(1); \
- OUTBYTE1(c1); \
+ OUTBYTE1(c1); \
} while (0)
#define WRITEBYTE2(c1, c2) \
do { \
REQUIRE_OUTBUF(2); \
- OUTBYTE1(c1); \
- OUTBYTE2(c2); \
+ OUTBYTE1(c1); \
+ OUTBYTE2(c2); \
} while (0)
#define WRITEBYTE3(c1, c2, c3) \
do { \
REQUIRE_OUTBUF(3); \
- OUTBYTE1(c1); \
- OUTBYTE2(c2); \
- OUTBYTE3(c3); \
+ OUTBYTE1(c1); \
+ OUTBYTE2(c2); \
+ OUTBYTE3(c3); \
} while (0)
#define WRITEBYTE4(c1, c2, c3, c4) \
do { \
REQUIRE_OUTBUF(4); \
- OUTBYTE1(c1); \
- OUTBYTE2(c2); \
- OUTBYTE3(c3); \
- OUTBYTE4(c4); \
+ OUTBYTE1(c1); \
+ OUTBYTE2(c2); \
+ OUTBYTE3(c3); \
+ OUTBYTE4(c4); \
} while (0)
#define _TRYMAP_ENC(m, assi, val) \
@@ -291,7 +291,7 @@ getcodec(PyObject *self, PyObject *encoding)
if (codecobj == NULL)
return NULL;
- r = PyObject_CallOneArg(cofunc, codecobj);
+ r = PyObject_CallOneArg(cofunc, codecobj);
Py_DECREF(codecobj);
return r;
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/clinic/multibytecodec.c.h b/contrib/tools/python3/src/Modules/cjkcodecs/clinic/multibytecodec.c.h
index 93141baf6a..5ddbbe221b 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/clinic/multibytecodec.c.h
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/clinic/multibytecodec.c.h
@@ -14,7 +14,7 @@ PyDoc_STRVAR(_multibytecodec_MultibyteCodec_encode__doc__,
"registered with codecs.register_error that can handle UnicodeEncodeErrors.");
#define _MULTIBYTECODEC_MULTIBYTECODEC_ENCODE_METHODDEF \
- {"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_encode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_encode__doc__},
+ {"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_encode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_encode__doc__},
static PyObject *
_multibytecodec_MultibyteCodec_encode_impl(MultibyteCodecObject *self,
@@ -26,39 +26,39 @@ _multibytecodec_MultibyteCodec_encode(MultibyteCodecObject *self, PyObject *cons
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"input", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *input;
const char *errors = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- input = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("encode", "argument 'errors'", "str or None", args[1]);
- goto exit;
- }
-skip_optional_pos:
+ input = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("encode", "argument 'errors'", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional_pos:
return_value = _multibytecodec_MultibyteCodec_encode_impl(self, input, errors);
exit:
@@ -77,7 +77,7 @@ PyDoc_STRVAR(_multibytecodec_MultibyteCodec_decode__doc__,
"codecs.register_error that is able to handle UnicodeDecodeErrors.\"");
#define _MULTIBYTECODEC_MULTIBYTECODEC_DECODE_METHODDEF \
- {"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_decode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_decode__doc__},
+ {"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_decode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_decode__doc__},
static PyObject *
_multibytecodec_MultibyteCodec_decode_impl(MultibyteCodecObject *self,
@@ -89,45 +89,45 @@ _multibytecodec_MultibyteCodec_decode(MultibyteCodecObject *self, PyObject *cons
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"input", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer input = {NULL, NULL};
const char *errors = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &input, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&input, 'C')) {
+ _PyArg_BadArgument("decode", "argument 'input'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("decode", "argument 'errors'", "str or None", args[1]);
goto exit;
}
- if (PyObject_GetBuffer(args[0], &input, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&input, 'C')) {
- _PyArg_BadArgument("decode", "argument 'input'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("decode", "argument 'errors'", "str or None", args[1]);
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = _multibytecodec_MultibyteCodec_decode_impl(self, &input, errors);
exit:
@@ -145,7 +145,7 @@ PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_encode__doc__,
"\n");
#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_ENCODE_METHODDEF \
- {"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalEncoder_encode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalEncoder_encode__doc__},
+ {"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalEncoder_encode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalEncoder_encode__doc__},
static PyObject *
_multibytecodec_MultibyteIncrementalEncoder_encode_impl(MultibyteIncrementalEncoderObject *self,
@@ -157,82 +157,82 @@ _multibytecodec_MultibyteIncrementalEncoder_encode(MultibyteIncrementalEncoderOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"input", "final", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *input;
int final = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ input = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- input = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[1]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ final = _PyLong_AsInt(args[1]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = _multibytecodec_MultibyteIncrementalEncoder_encode_impl(self, input, final);
exit:
return return_value;
}
-PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_getstate__doc__,
-"getstate($self, /)\n"
-"--\n"
-"\n");
-
-#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_GETSTATE_METHODDEF \
- {"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_getstate, METH_NOARGS, _multibytecodec_MultibyteIncrementalEncoder_getstate__doc__},
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalEncoder_getstate_impl(MultibyteIncrementalEncoderObject *self);
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalEncoder_getstate(MultibyteIncrementalEncoderObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _multibytecodec_MultibyteIncrementalEncoder_getstate_impl(self);
-}
-
-PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_setstate__doc__,
-"setstate($self, state, /)\n"
-"--\n"
-"\n");
-
-#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_SETSTATE_METHODDEF \
- {"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_setstate, METH_O, _multibytecodec_MultibyteIncrementalEncoder_setstate__doc__},
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalEncoder_setstate_impl(MultibyteIncrementalEncoderObject *self,
- PyLongObject *statelong);
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalEncoder_setstate(MultibyteIncrementalEncoderObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyLongObject *statelong;
-
- if (!PyLong_Check(arg)) {
- _PyArg_BadArgument("setstate", "argument", "int", arg);
- goto exit;
- }
- statelong = (PyLongObject *)arg;
- return_value = _multibytecodec_MultibyteIncrementalEncoder_setstate_impl(self, statelong);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_getstate__doc__,
+"getstate($self, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_GETSTATE_METHODDEF \
+ {"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_getstate, METH_NOARGS, _multibytecodec_MultibyteIncrementalEncoder_getstate__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_getstate_impl(MultibyteIncrementalEncoderObject *self);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_getstate(MultibyteIncrementalEncoderObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _multibytecodec_MultibyteIncrementalEncoder_getstate_impl(self);
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_setstate__doc__,
+"setstate($self, state, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_SETSTATE_METHODDEF \
+ {"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_setstate, METH_O, _multibytecodec_MultibyteIncrementalEncoder_setstate__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_setstate_impl(MultibyteIncrementalEncoderObject *self,
+ PyLongObject *statelong);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_setstate(MultibyteIncrementalEncoderObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyLongObject *statelong;
+
+ if (!PyLong_Check(arg)) {
+ _PyArg_BadArgument("setstate", "argument", "int", arg);
+ goto exit;
+ }
+ statelong = (PyLongObject *)arg;
+ return_value = _multibytecodec_MultibyteIncrementalEncoder_setstate_impl(self, statelong);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_reset__doc__,
"reset($self, /)\n"
"--\n"
@@ -256,7 +256,7 @@ PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_decode__doc__,
"\n");
#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_DECODE_METHODDEF \
- {"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalDecoder_decode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalDecoder_decode__doc__},
+ {"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalDecoder_decode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalDecoder_decode__doc__},
static PyObject *
_multibytecodec_MultibyteIncrementalDecoder_decode_impl(MultibyteIncrementalDecoderObject *self,
@@ -268,36 +268,36 @@ _multibytecodec_MultibyteIncrementalDecoder_decode(MultibyteIncrementalDecoderOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"input", "final", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer input = {NULL, NULL};
int final = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (PyObject_GetBuffer(args[0], &input, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&input, 'C')) {
- _PyArg_BadArgument("decode", "argument 'input'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[1]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ if (PyObject_GetBuffer(args[0], &input, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&input, 'C')) {
+ _PyArg_BadArgument("decode", "argument 'input'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[1]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = _multibytecodec_MultibyteIncrementalDecoder_decode_impl(self, &input, final);
exit:
@@ -309,52 +309,52 @@ exit:
return return_value;
}
-PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_getstate__doc__,
-"getstate($self, /)\n"
-"--\n"
-"\n");
-
-#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_GETSTATE_METHODDEF \
- {"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_getstate, METH_NOARGS, _multibytecodec_MultibyteIncrementalDecoder_getstate__doc__},
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalDecoder_getstate_impl(MultibyteIncrementalDecoderObject *self);
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalDecoder_getstate(MultibyteIncrementalDecoderObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _multibytecodec_MultibyteIncrementalDecoder_getstate_impl(self);
-}
-
-PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_setstate__doc__,
-"setstate($self, state, /)\n"
-"--\n"
-"\n");
-
-#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_SETSTATE_METHODDEF \
- {"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_setstate, METH_O, _multibytecodec_MultibyteIncrementalDecoder_setstate__doc__},
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalDecoder_setstate_impl(MultibyteIncrementalDecoderObject *self,
- PyObject *state);
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalDecoder_setstate(MultibyteIncrementalDecoderObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyObject *state;
-
- if (!PyTuple_Check(arg)) {
- _PyArg_BadArgument("setstate", "argument", "tuple", arg);
- goto exit;
- }
- state = arg;
- return_value = _multibytecodec_MultibyteIncrementalDecoder_setstate_impl(self, state);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_getstate__doc__,
+"getstate($self, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_GETSTATE_METHODDEF \
+ {"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_getstate, METH_NOARGS, _multibytecodec_MultibyteIncrementalDecoder_getstate__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_getstate_impl(MultibyteIncrementalDecoderObject *self);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_getstate(MultibyteIncrementalDecoderObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _multibytecodec_MultibyteIncrementalDecoder_getstate_impl(self);
+}
+
+PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_setstate__doc__,
+"setstate($self, state, /)\n"
+"--\n"
+"\n");
+
+#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_SETSTATE_METHODDEF \
+ {"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_setstate, METH_O, _multibytecodec_MultibyteIncrementalDecoder_setstate__doc__},
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_setstate_impl(MultibyteIncrementalDecoderObject *self,
+ PyObject *state);
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_setstate(MultibyteIncrementalDecoderObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *state;
+
+ if (!PyTuple_Check(arg)) {
+ _PyArg_BadArgument("setstate", "argument", "tuple", arg);
+ goto exit;
+ }
+ state = arg;
+ return_value = _multibytecodec_MultibyteIncrementalDecoder_setstate_impl(self, state);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_reset__doc__,
"reset($self, /)\n"
"--\n"
@@ -378,7 +378,7 @@ PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_read__doc__,
"\n");
#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_read, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_read, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_read__doc__},
static PyObject *
_multibytecodec_MultibyteStreamReader_read_impl(MultibyteStreamReaderObject *self,
@@ -390,14 +390,14 @@ _multibytecodec_MultibyteStreamReader_read(MultibyteStreamReaderObject *self, Py
PyObject *return_value = NULL;
PyObject *sizeobj = Py_None;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- sizeobj = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ sizeobj = args[0];
+skip_optional:
return_value = _multibytecodec_MultibyteStreamReader_read_impl(self, sizeobj);
exit:
@@ -410,7 +410,7 @@ PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_readline__doc__,
"\n");
#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINE_METHODDEF \
- {"readline", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readline, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readline__doc__},
+ {"readline", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readline, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readline__doc__},
static PyObject *
_multibytecodec_MultibyteStreamReader_readline_impl(MultibyteStreamReaderObject *self,
@@ -422,14 +422,14 @@ _multibytecodec_MultibyteStreamReader_readline(MultibyteStreamReaderObject *self
PyObject *return_value = NULL;
PyObject *sizeobj = Py_None;
- if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- sizeobj = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ sizeobj = args[0];
+skip_optional:
return_value = _multibytecodec_MultibyteStreamReader_readline_impl(self, sizeobj);
exit:
@@ -442,7 +442,7 @@ PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_readlines__doc__,
"\n");
#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINES_METHODDEF \
- {"readlines", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readlines, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readlines__doc__},
+ {"readlines", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readlines, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readlines__doc__},
static PyObject *
_multibytecodec_MultibyteStreamReader_readlines_impl(MultibyteStreamReaderObject *self,
@@ -454,14 +454,14 @@ _multibytecodec_MultibyteStreamReader_readlines(MultibyteStreamReaderObject *sel
PyObject *return_value = NULL;
PyObject *sizehintobj = Py_None;
- if (!_PyArg_CheckPositional("readlines", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("readlines", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- sizehintobj = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ sizehintobj = args[0];
+skip_optional:
return_value = _multibytecodec_MultibyteStreamReader_readlines_impl(self, sizehintobj);
exit:
@@ -525,4 +525,4 @@ PyDoc_STRVAR(_multibytecodec___create_codec__doc__,
#define _MULTIBYTECODEC___CREATE_CODEC_METHODDEF \
{"__create_codec", (PyCFunction)_multibytecodec___create_codec, METH_O, _multibytecodec___create_codec__doc__},
-/*[clinic end generated code: output=5ce6fd4ca1f95620 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5ce6fd4ca1f95620 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_cn.h b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_cn.h
index c4e244d25c..87ca0de784 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_cn.h
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_cn.h
@@ -1,4 +1,4 @@
-// AUTO-GENERATED FILE FROM genmap_schinese.py: DO NOT EDIT
+// AUTO-GENERATED FILE FROM genmap_schinese.py: DO NOT EDIT
static const ucs2_t __gb2312_decmap[7482] = {
12288,12289,12290,12539,713,711,168,12291,12293,8213,65374,8214,8230,8216,
8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jisx0213_pair.h b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jisx0213_pair.h
index 8172ec2473..c96f20142b 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jisx0213_pair.h
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jisx0213_pair.h
@@ -1,4 +1,4 @@
-// AUTO-GENERATED FILE FROM genmap_japanese.py: DO NOT EDIT
+// AUTO-GENERATED FILE FROM genmap_japanese.py: DO NOT EDIT
#define JISX0213_ENCPAIRS 46
#ifdef EXTERN_JISX0213_PAIR
static const struct widedbcs_index *jisx0213_pair_decmap;
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jp.h b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jp.h
index 74b8d88e39..409aeae25c 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jp.h
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_jp.h
@@ -1,4 +1,4 @@
-// AUTO-GENERATED FILE FROM genmap_japanese.py: DO NOT EDIT
+// AUTO-GENERATED FILE FROM genmap_japanese.py: DO NOT EDIT
static const ucs2_t __jisx0208_decmap[6956] = {
12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,
65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293,12294,
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_kr.h b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_kr.h
index 3a710aab20..bb59acccc1 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/mappings_kr.h
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/mappings_kr.h
@@ -1,4 +1,4 @@
-// AUTO-GENERATED FILE FROM genmap_korean.py: DO NOT EDIT
+// AUTO-GENERATED FILE FROM genmap_korean.py: DO NOT EDIT
static const ucs2_t __ksx1001_decmap[8264] = {
12288,12289,12290,183,8229,8230,168,12291,173,8213,8741,65340,8764,8216,8217,
8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12304,
@@ -3250,4 +3250,4 @@ __cp949_encmap+31959,0,255},{__cp949_encmap+32215,0,255},{__cp949_encmap+32471
__cp949_encmap+32891,0,11},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{__cp949_encmap+
32903,1,230},
};
-
+
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.c b/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.c
index b586836422..86402768b6 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.c
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.c
@@ -6,7 +6,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include "multibytecodec.h"
#include "clinic/multibytecodec.c.h"
@@ -81,7 +81,7 @@ internal_error_callback(const char *errors)
static PyObject *
call_error_callback(PyObject *errors, PyObject *exc)
{
- PyObject *cb, *r;
+ PyObject *cb, *r;
const char *str;
assert(PyUnicode_Check(errors));
@@ -92,7 +92,7 @@ call_error_callback(PyObject *errors, PyObject *exc)
if (cb == NULL)
return NULL;
- r = PyObject_CallOneArg(cb, exc);
+ r = PyObject_CallOneArg(cb, exc);
Py_DECREF(cb);
return r;
}
@@ -228,7 +228,7 @@ multibytecodec_encerror(MultibyteCodec *codec,
Py_ssize_t r;
Py_ssize_t inpos;
int kind;
- const void *data;
+ const void *data;
replchar = PyUnicode_FromOrdinal('?');
if (replchar == NULL)
@@ -457,7 +457,7 @@ multibytecodec_encode(MultibyteCodec *codec,
Py_ssize_t finalsize, r = 0;
Py_ssize_t datalen;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(text) < 0)
return NULL;
@@ -538,7 +538,7 @@ errorexit:
_multibytecodec.MultibyteCodec.encode
input: object
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
Return an encoded string version of `input'.
@@ -552,7 +552,7 @@ static PyObject *
_multibytecodec_MultibyteCodec_encode_impl(MultibyteCodecObject *self,
PyObject *input,
const char *errors)
-/*[clinic end generated code: output=7b26652045ba56a9 input=606d0e128a577bae]*/
+/*[clinic end generated code: output=7b26652045ba56a9 input=606d0e128a577bae]*/
{
MultibyteCodec_State state;
PyObject *errorcb, *r, *ucvt;
@@ -607,7 +607,7 @@ errorexit:
_multibytecodec.MultibyteCodec.decode
input: Py_buffer
- errors: str(accept={str, NoneType}) = None
+ errors: str(accept={str, NoneType}) = None
Decodes 'input'.
@@ -621,7 +621,7 @@ static PyObject *
_multibytecodec_MultibyteCodec_decode_impl(MultibyteCodecObject *self,
Py_buffer *input,
const char *errors)
-/*[clinic end generated code: output=ff419f65bad6cc77 input=e0c78fc7ab190def]*/
+/*[clinic end generated code: output=ff419f65bad6cc77 input=e0c78fc7ab190def]*/
{
MultibyteCodec_State state;
MultibyteDecodeBuffer buf;
@@ -701,10 +701,10 @@ static PyTypeObject MultibyteCodec_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)multibytecodec_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -890,93 +890,93 @@ _multibytecodec_MultibyteIncrementalEncoder_encode_impl(MultibyteIncrementalEnco
}
/*[clinic input]
-_multibytecodec.MultibyteIncrementalEncoder.getstate
-[clinic start generated code]*/
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalEncoder_getstate_impl(MultibyteIncrementalEncoderObject *self)
-/*[clinic end generated code: output=9794a5ace70d7048 input=4a2a82874ffa40bb]*/
-{
- /* state made up of 1 byte for buffer size, up to MAXENCPENDING*4 bytes
- for UTF-8 encoded buffer (each character can use up to 4
- bytes), and required bytes for MultibyteCodec_State.c. A byte
- array is used to avoid different compilers generating different
- values for the same state, e.g. as a result of struct padding.
- */
- unsigned char statebytes[1 + MAXENCPENDING*4 + sizeof(self->state.c)];
- Py_ssize_t statesize;
- const char *pendingbuffer = NULL;
- Py_ssize_t pendingsize;
-
- if (self->pending != NULL) {
- pendingbuffer = PyUnicode_AsUTF8AndSize(self->pending, &pendingsize);
- if (pendingbuffer == NULL) {
- return NULL;
- }
- if (pendingsize > MAXENCPENDING*4) {
- PyErr_SetString(PyExc_UnicodeError, "pending buffer too large");
- return NULL;
- }
- statebytes[0] = (unsigned char)pendingsize;
- memcpy(statebytes + 1, pendingbuffer, pendingsize);
- statesize = 1 + pendingsize;
- } else {
- statebytes[0] = 0;
- statesize = 1;
- }
- memcpy(statebytes+statesize, self->state.c,
- sizeof(self->state.c));
- statesize += sizeof(self->state.c);
-
- return (PyObject *)_PyLong_FromByteArray(statebytes, statesize,
- 1 /* little-endian */ ,
- 0 /* unsigned */ );
-}
-
-/*[clinic input]
-_multibytecodec.MultibyteIncrementalEncoder.setstate
- state as statelong: object(type='PyLongObject *', subclass_of='&PyLong_Type')
- /
-[clinic start generated code]*/
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalEncoder_setstate_impl(MultibyteIncrementalEncoderObject *self,
- PyLongObject *statelong)
-/*[clinic end generated code: output=4e5e98ac1f4039ca input=c80fb5830d4d2f76]*/
-{
- PyObject *pending = NULL;
- unsigned char statebytes[1 + MAXENCPENDING*4 + sizeof(self->state.c)];
-
- if (_PyLong_AsByteArray(statelong, statebytes, sizeof(statebytes),
- 1 /* little-endian */ ,
- 0 /* unsigned */ ) < 0) {
- goto errorexit;
- }
-
- if (statebytes[0] > MAXENCPENDING*4) {
- PyErr_SetString(PyExc_UnicodeError, "pending buffer too large");
- return NULL;
- }
-
- pending = PyUnicode_DecodeUTF8((const char *)statebytes+1,
- statebytes[0], "strict");
- if (pending == NULL) {
- goto errorexit;
- }
-
- Py_CLEAR(self->pending);
- self->pending = pending;
- memcpy(self->state.c, statebytes+1+statebytes[0],
- sizeof(self->state.c));
-
- Py_RETURN_NONE;
-
-errorexit:
- Py_XDECREF(pending);
- return NULL;
-}
-
-/*[clinic input]
+_multibytecodec.MultibyteIncrementalEncoder.getstate
+[clinic start generated code]*/
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_getstate_impl(MultibyteIncrementalEncoderObject *self)
+/*[clinic end generated code: output=9794a5ace70d7048 input=4a2a82874ffa40bb]*/
+{
+ /* state made up of 1 byte for buffer size, up to MAXENCPENDING*4 bytes
+ for UTF-8 encoded buffer (each character can use up to 4
+ bytes), and required bytes for MultibyteCodec_State.c. A byte
+ array is used to avoid different compilers generating different
+ values for the same state, e.g. as a result of struct padding.
+ */
+ unsigned char statebytes[1 + MAXENCPENDING*4 + sizeof(self->state.c)];
+ Py_ssize_t statesize;
+ const char *pendingbuffer = NULL;
+ Py_ssize_t pendingsize;
+
+ if (self->pending != NULL) {
+ pendingbuffer = PyUnicode_AsUTF8AndSize(self->pending, &pendingsize);
+ if (pendingbuffer == NULL) {
+ return NULL;
+ }
+ if (pendingsize > MAXENCPENDING*4) {
+ PyErr_SetString(PyExc_UnicodeError, "pending buffer too large");
+ return NULL;
+ }
+ statebytes[0] = (unsigned char)pendingsize;
+ memcpy(statebytes + 1, pendingbuffer, pendingsize);
+ statesize = 1 + pendingsize;
+ } else {
+ statebytes[0] = 0;
+ statesize = 1;
+ }
+ memcpy(statebytes+statesize, self->state.c,
+ sizeof(self->state.c));
+ statesize += sizeof(self->state.c);
+
+ return (PyObject *)_PyLong_FromByteArray(statebytes, statesize,
+ 1 /* little-endian */ ,
+ 0 /* unsigned */ );
+}
+
+/*[clinic input]
+_multibytecodec.MultibyteIncrementalEncoder.setstate
+ state as statelong: object(type='PyLongObject *', subclass_of='&PyLong_Type')
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalEncoder_setstate_impl(MultibyteIncrementalEncoderObject *self,
+ PyLongObject *statelong)
+/*[clinic end generated code: output=4e5e98ac1f4039ca input=c80fb5830d4d2f76]*/
+{
+ PyObject *pending = NULL;
+ unsigned char statebytes[1 + MAXENCPENDING*4 + sizeof(self->state.c)];
+
+ if (_PyLong_AsByteArray(statelong, statebytes, sizeof(statebytes),
+ 1 /* little-endian */ ,
+ 0 /* unsigned */ ) < 0) {
+ goto errorexit;
+ }
+
+ if (statebytes[0] > MAXENCPENDING*4) {
+ PyErr_SetString(PyExc_UnicodeError, "pending buffer too large");
+ return NULL;
+ }
+
+ pending = PyUnicode_DecodeUTF8((const char *)statebytes+1,
+ statebytes[0], "strict");
+ if (pending == NULL) {
+ goto errorexit;
+ }
+
+ Py_CLEAR(self->pending);
+ self->pending = pending;
+ memcpy(self->state.c, statebytes+1+statebytes[0],
+ sizeof(self->state.c));
+
+ Py_RETURN_NONE;
+
+errorexit:
+ Py_XDECREF(pending);
+ return NULL;
+}
+
+/*[clinic input]
_multibytecodec.MultibyteIncrementalEncoder.reset
[clinic start generated code]*/
@@ -1000,8 +1000,8 @@ _multibytecodec_MultibyteIncrementalEncoder_reset_impl(MultibyteIncrementalEncod
static struct PyMethodDef mbiencoder_methods[] = {
_MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_ENCODE_METHODDEF
- _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_GETSTATE_METHODDEF
- _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_SETSTATE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_GETSTATE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_SETSTATE_METHODDEF
_MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_RESET_METHODDEF
{NULL, NULL},
};
@@ -1067,7 +1067,7 @@ mbiencoder_dealloc(MultibyteIncrementalEncoderObject *self)
{
PyObject_GC_UnTrack(self);
ERROR_DECREF(self->errors);
- Py_CLEAR(self->pending);
+ Py_CLEAR(self->pending);
Py_TYPE(self)->tp_free(self);
}
@@ -1078,10 +1078,10 @@ static PyTypeObject MultibyteIncrementalEncoder_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)mbiencoder_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1204,85 +1204,85 @@ errorexit:
}
/*[clinic input]
-_multibytecodec.MultibyteIncrementalDecoder.getstate
-[clinic start generated code]*/
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalDecoder_getstate_impl(MultibyteIncrementalDecoderObject *self)
-/*[clinic end generated code: output=255009c4713b7f82 input=4006aa49bddbaa75]*/
-{
- PyObject *buffer;
- PyObject *statelong;
-
- buffer = PyBytes_FromStringAndSize((const char *)self->pending,
- self->pendingsize);
- if (buffer == NULL) {
- return NULL;
- }
-
- statelong = (PyObject *)_PyLong_FromByteArray(self->state.c,
- sizeof(self->state.c),
- 1 /* little-endian */ ,
- 0 /* unsigned */ );
- if (statelong == NULL) {
- Py_DECREF(buffer);
- return NULL;
- }
-
- return Py_BuildValue("NN", buffer, statelong);
-}
-
-/*[clinic input]
-_multibytecodec.MultibyteIncrementalDecoder.setstate
- state: object(subclass_of='&PyTuple_Type')
- /
-[clinic start generated code]*/
-
-static PyObject *
-_multibytecodec_MultibyteIncrementalDecoder_setstate_impl(MultibyteIncrementalDecoderObject *self,
- PyObject *state)
-/*[clinic end generated code: output=106b2fbca3e2dcc2 input=e5d794e8baba1a47]*/
-{
- PyObject *buffer;
- PyLongObject *statelong;
- Py_ssize_t buffersize;
- const char *bufferstr;
- unsigned char statebytes[8];
-
- if (!PyArg_ParseTuple(state, "SO!;setstate(): illegal state argument",
- &buffer, &PyLong_Type, &statelong))
- {
- return NULL;
- }
-
- if (_PyLong_AsByteArray(statelong, statebytes, sizeof(statebytes),
- 1 /* little-endian */ ,
- 0 /* unsigned */ ) < 0) {
- return NULL;
- }
-
- buffersize = PyBytes_Size(buffer);
- if (buffersize == -1) {
- return NULL;
- }
-
- if (buffersize > MAXDECPENDING) {
- PyErr_SetString(PyExc_UnicodeError, "pending buffer too large");
- return NULL;
- }
-
- bufferstr = PyBytes_AsString(buffer);
- if (bufferstr == NULL) {
- return NULL;
- }
- self->pendingsize = buffersize;
- memcpy(self->pending, bufferstr, self->pendingsize);
- memcpy(self->state.c, statebytes, sizeof(statebytes));
-
- Py_RETURN_NONE;
-}
-
-/*[clinic input]
+_multibytecodec.MultibyteIncrementalDecoder.getstate
+[clinic start generated code]*/
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_getstate_impl(MultibyteIncrementalDecoderObject *self)
+/*[clinic end generated code: output=255009c4713b7f82 input=4006aa49bddbaa75]*/
+{
+ PyObject *buffer;
+ PyObject *statelong;
+
+ buffer = PyBytes_FromStringAndSize((const char *)self->pending,
+ self->pendingsize);
+ if (buffer == NULL) {
+ return NULL;
+ }
+
+ statelong = (PyObject *)_PyLong_FromByteArray(self->state.c,
+ sizeof(self->state.c),
+ 1 /* little-endian */ ,
+ 0 /* unsigned */ );
+ if (statelong == NULL) {
+ Py_DECREF(buffer);
+ return NULL;
+ }
+
+ return Py_BuildValue("NN", buffer, statelong);
+}
+
+/*[clinic input]
+_multibytecodec.MultibyteIncrementalDecoder.setstate
+ state: object(subclass_of='&PyTuple_Type')
+ /
+[clinic start generated code]*/
+
+static PyObject *
+_multibytecodec_MultibyteIncrementalDecoder_setstate_impl(MultibyteIncrementalDecoderObject *self,
+ PyObject *state)
+/*[clinic end generated code: output=106b2fbca3e2dcc2 input=e5d794e8baba1a47]*/
+{
+ PyObject *buffer;
+ PyLongObject *statelong;
+ Py_ssize_t buffersize;
+ const char *bufferstr;
+ unsigned char statebytes[8];
+
+ if (!PyArg_ParseTuple(state, "SO!;setstate(): illegal state argument",
+ &buffer, &PyLong_Type, &statelong))
+ {
+ return NULL;
+ }
+
+ if (_PyLong_AsByteArray(statelong, statebytes, sizeof(statebytes),
+ 1 /* little-endian */ ,
+ 0 /* unsigned */ ) < 0) {
+ return NULL;
+ }
+
+ buffersize = PyBytes_Size(buffer);
+ if (buffersize == -1) {
+ return NULL;
+ }
+
+ if (buffersize > MAXDECPENDING) {
+ PyErr_SetString(PyExc_UnicodeError, "pending buffer too large");
+ return NULL;
+ }
+
+ bufferstr = PyBytes_AsString(buffer);
+ if (bufferstr == NULL) {
+ return NULL;
+ }
+ self->pendingsize = buffersize;
+ memcpy(self->pending, bufferstr, self->pendingsize);
+ memcpy(self->state.c, statebytes, sizeof(statebytes));
+
+ Py_RETURN_NONE;
+}
+
+/*[clinic input]
_multibytecodec.MultibyteIncrementalDecoder.reset
[clinic start generated code]*/
@@ -1300,8 +1300,8 @@ _multibytecodec_MultibyteIncrementalDecoder_reset_impl(MultibyteIncrementalDecod
static struct PyMethodDef mbidecoder_methods[] = {
_MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_DECODE_METHODDEF
- _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_GETSTATE_METHODDEF
- _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_SETSTATE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_GETSTATE_METHODDEF
+ _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_SETSTATE_METHODDEF
_MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_RESET_METHODDEF
{NULL, NULL},
};
@@ -1377,10 +1377,10 @@ static PyTypeObject MultibyteIncrementalDecoder_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)mbidecoder_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1450,7 +1450,7 @@ mbstreamreader_iread(MultibyteStreamReaderObject *self,
PyErr_Format(PyExc_TypeError,
"stream function returned a "
"non-bytes object (%.100s)",
- Py_TYPE(cres)->tp_name);
+ Py_TYPE(cres)->tp_name);
goto errorexit;
}
@@ -1724,10 +1724,10 @@ static PyTypeObject MultibyteStreamReader_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)mbstreamreader_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1776,7 +1776,7 @@ mbstreamwriter_iwrite(MultibyteStreamWriterObject *self,
if (str == NULL)
return -1;
- wr = _PyObject_CallMethodIdOneArg(self->stream, &PyId_write, str);
+ wr = _PyObject_CallMethodIdOneArg(self->stream, &PyId_write, str);
Py_DECREF(str);
if (wr == NULL)
return -1;
@@ -1870,7 +1870,7 @@ _multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject *se
if (PyBytes_Size(pwrt) > 0) {
PyObject *wr;
- wr = _PyObject_CallMethodIdOneArg(self->stream, &PyId_write, pwrt);
+ wr = _PyObject_CallMethodIdOneArg(self->stream, &PyId_write, pwrt);
if (wr == NULL) {
Py_DECREF(pwrt);
return NULL;
@@ -1970,10 +1970,10 @@ static PyTypeObject MultibyteStreamWriter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)mbstreamwriter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2064,7 +2064,7 @@ PyInit__multibytecodec(void)
&MultibyteIncrementalEncoder_Type,
&MultibyteIncrementalDecoder_Type,
&MultibyteStreamReader_Type,
- &MultibyteStreamWriter_Type
+ &MultibyteStreamWriter_Type
};
if (PyType_Ready(&MultibyteCodec_Type) < 0)
@@ -2074,10 +2074,10 @@ PyInit__multibytecodec(void)
if (m == NULL)
return NULL;
- for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
- if (PyModule_AddType(m, typelist[i]) < 0) {
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
+ if (PyModule_AddType(m, typelist[i]) < 0) {
return NULL;
- }
+ }
}
if (PyErr_Occurred()) {
diff --git a/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.h b/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.h
index 082cec5a65..59468210b9 100644
--- a/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.h
+++ b/contrib/tools/python3/src/Modules/cjkcodecs/multibytecodec.h
@@ -16,21 +16,21 @@ typedef uint16_t ucs2_t, DBCHAR;
typedef unsigned short ucs2_t, DBCHAR;
#endif
-/*
- * A struct that provides 8 bytes of state for multibyte
- * codecs. Codecs are free to use this how they want. Note: if you
- * need to add a new field to this struct, ensure that its byte order
- * is independent of CPU endianness so that the return value of
- * getstate doesn't differ between little and big endian CPUs.
- */
-typedef struct {
+/*
+ * A struct that provides 8 bytes of state for multibyte
+ * codecs. Codecs are free to use this how they want. Note: if you
+ * need to add a new field to this struct, ensure that its byte order
+ * is independent of CPU endianness so that the return value of
+ * getstate doesn't differ between little and big endian CPUs.
+ */
+typedef struct {
unsigned char c[8];
} MultibyteCodec_State;
typedef int (*mbcodec_init)(const void *config);
typedef Py_ssize_t (*mbencode_func)(MultibyteCodec_State *state,
const void *config,
- int kind, const void *data,
+ int kind, const void *data,
Py_ssize_t *inpos, Py_ssize_t inlen,
unsigned char **outbuf, Py_ssize_t outleft,
int flags);
@@ -65,7 +65,7 @@ typedef struct {
MultibyteCodec *codec;
} MultibyteCodecObject;
-#define MultibyteCodec_Check(op) Py_IS_TYPE((op), &MultibyteCodec_Type)
+#define MultibyteCodec_Check(op) Py_IS_TYPE((op), &MultibyteCodec_Type)
#define _MultibyteStatefulCodec_HEAD \
PyObject_HEAD \
diff --git a/contrib/tools/python3/src/Modules/clinic/_abc.c.h b/contrib/tools/python3/src/Modules/clinic/_abc.c.h
index 33eb75d731..62c6552ba6 100644
--- a/contrib/tools/python3/src/Modules/clinic/_abc.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_abc.c.h
@@ -53,7 +53,7 @@ PyDoc_STRVAR(_abc__abc_register__doc__,
"Internal ABC helper for subclasss registration. Should be never used outside abc module.");
#define _ABC__ABC_REGISTER_METHODDEF \
- {"_abc_register", (PyCFunction)(void(*)(void))_abc__abc_register, METH_FASTCALL, _abc__abc_register__doc__},
+ {"_abc_register", (PyCFunction)(void(*)(void))_abc__abc_register, METH_FASTCALL, _abc__abc_register__doc__},
static PyObject *
_abc__abc_register_impl(PyObject *module, PyObject *self, PyObject *subclass);
@@ -65,11 +65,11 @@ _abc__abc_register(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *self;
PyObject *subclass;
- if (!_PyArg_CheckPositional("_abc_register", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("_abc_register", nargs, 2, 2)) {
goto exit;
}
- self = args[0];
- subclass = args[1];
+ self = args[0];
+ subclass = args[1];
return_value = _abc__abc_register_impl(module, self, subclass);
exit:
@@ -83,7 +83,7 @@ PyDoc_STRVAR(_abc__abc_instancecheck__doc__,
"Internal ABC helper for instance checks. Should be never used outside abc module.");
#define _ABC__ABC_INSTANCECHECK_METHODDEF \
- {"_abc_instancecheck", (PyCFunction)(void(*)(void))_abc__abc_instancecheck, METH_FASTCALL, _abc__abc_instancecheck__doc__},
+ {"_abc_instancecheck", (PyCFunction)(void(*)(void))_abc__abc_instancecheck, METH_FASTCALL, _abc__abc_instancecheck__doc__},
static PyObject *
_abc__abc_instancecheck_impl(PyObject *module, PyObject *self,
@@ -96,11 +96,11 @@ _abc__abc_instancecheck(PyObject *module, PyObject *const *args, Py_ssize_t narg
PyObject *self;
PyObject *instance;
- if (!_PyArg_CheckPositional("_abc_instancecheck", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("_abc_instancecheck", nargs, 2, 2)) {
goto exit;
}
- self = args[0];
- instance = args[1];
+ self = args[0];
+ instance = args[1];
return_value = _abc__abc_instancecheck_impl(module, self, instance);
exit:
@@ -114,7 +114,7 @@ PyDoc_STRVAR(_abc__abc_subclasscheck__doc__,
"Internal ABC helper for subclasss checks. Should be never used outside abc module.");
#define _ABC__ABC_SUBCLASSCHECK_METHODDEF \
- {"_abc_subclasscheck", (PyCFunction)(void(*)(void))_abc__abc_subclasscheck, METH_FASTCALL, _abc__abc_subclasscheck__doc__},
+ {"_abc_subclasscheck", (PyCFunction)(void(*)(void))_abc__abc_subclasscheck, METH_FASTCALL, _abc__abc_subclasscheck__doc__},
static PyObject *
_abc__abc_subclasscheck_impl(PyObject *module, PyObject *self,
@@ -127,11 +127,11 @@ _abc__abc_subclasscheck(PyObject *module, PyObject *const *args, Py_ssize_t narg
PyObject *self;
PyObject *subclass;
- if (!_PyArg_CheckPositional("_abc_subclasscheck", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("_abc_subclasscheck", nargs, 2, 2)) {
goto exit;
}
- self = args[0];
- subclass = args[1];
+ self = args[0];
+ subclass = args[1];
return_value = _abc__abc_subclasscheck_impl(module, self, subclass);
exit:
@@ -159,4 +159,4 @@ _abc_get_cache_token(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return _abc_get_cache_token_impl(module);
}
-/*[clinic end generated code: output=2544b4b5ae50a089 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2544b4b5ae50a089 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_asynciomodule.c.h b/contrib/tools/python3/src/Modules/clinic/_asynciomodule.c.h
index 04652f165c..a071efc1e2 100644
--- a/contrib/tools/python3/src/Modules/clinic/_asynciomodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_asynciomodule.c.h
@@ -27,22 +27,22 @@ _asyncio_Future___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"loop", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "Future", 0};
- PyObject *argsbuf[1];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "Future", 0};
+ PyObject *argsbuf[1];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *loop = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 0, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 0, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- loop = fastargs[0];
-skip_optional_kwonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ loop = fastargs[0];
+skip_optional_kwonly:
return_value = _asyncio_Future___init___impl((FutureObj *)self, loop);
exit:
@@ -119,7 +119,7 @@ PyDoc_STRVAR(_asyncio_Future_set_exception__doc__,
{"set_exception", (PyCFunction)_asyncio_Future_set_exception, METH_O, _asyncio_Future_set_exception__doc__},
PyDoc_STRVAR(_asyncio_Future_add_done_callback__doc__,
-"add_done_callback($self, fn, /, *, context=<unrepresentable>)\n"
+"add_done_callback($self, fn, /, *, context=<unrepresentable>)\n"
"--\n"
"\n"
"Add a callback to be run when the future becomes done.\n"
@@ -129,7 +129,7 @@ PyDoc_STRVAR(_asyncio_Future_add_done_callback__doc__,
"scheduled with call_soon.");
#define _ASYNCIO_FUTURE_ADD_DONE_CALLBACK_METHODDEF \
- {"add_done_callback", (PyCFunction)(void(*)(void))_asyncio_Future_add_done_callback, METH_FASTCALL|METH_KEYWORDS, _asyncio_Future_add_done_callback__doc__},
+ {"add_done_callback", (PyCFunction)(void(*)(void))_asyncio_Future_add_done_callback, METH_FASTCALL|METH_KEYWORDS, _asyncio_Future_add_done_callback__doc__},
static PyObject *
_asyncio_Future_add_done_callback_impl(FutureObj *self, PyObject *fn,
@@ -140,22 +140,22 @@ _asyncio_Future_add_done_callback(FutureObj *self, PyObject *const *args, Py_ssi
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "context", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "add_done_callback", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "add_done_callback", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *fn;
PyObject *context = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- fn = args[0];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- context = args[1];
-skip_optional_kwonly:
+ fn = args[0];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ context = args[1];
+skip_optional_kwonly:
return_value = _asyncio_Future_add_done_callback_impl(self, fn, context);
exit:
@@ -174,7 +174,7 @@ PyDoc_STRVAR(_asyncio_Future_remove_done_callback__doc__,
{"remove_done_callback", (PyCFunction)_asyncio_Future_remove_done_callback, METH_O, _asyncio_Future_remove_done_callback__doc__},
PyDoc_STRVAR(_asyncio_Future_cancel__doc__,
-"cancel($self, /, msg=None)\n"
+"cancel($self, /, msg=None)\n"
"--\n"
"\n"
"Cancel the future and schedule callbacks.\n"
@@ -184,34 +184,34 @@ PyDoc_STRVAR(_asyncio_Future_cancel__doc__,
"return True.");
#define _ASYNCIO_FUTURE_CANCEL_METHODDEF \
- {"cancel", (PyCFunction)(void(*)(void))_asyncio_Future_cancel, METH_FASTCALL|METH_KEYWORDS, _asyncio_Future_cancel__doc__},
+ {"cancel", (PyCFunction)(void(*)(void))_asyncio_Future_cancel, METH_FASTCALL|METH_KEYWORDS, _asyncio_Future_cancel__doc__},
static PyObject *
-_asyncio_Future_cancel_impl(FutureObj *self, PyObject *msg);
+_asyncio_Future_cancel_impl(FutureObj *self, PyObject *msg);
static PyObject *
-_asyncio_Future_cancel(FutureObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+_asyncio_Future_cancel(FutureObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"msg", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *msg = Py_None;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- msg = args[0];
-skip_optional_pos:
- return_value = _asyncio_Future_cancel_impl(self, msg);
-
-exit:
- return return_value;
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"msg", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *msg = Py_None;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ msg = args[0];
+skip_optional_pos:
+ return_value = _asyncio_Future_cancel_impl(self, msg);
+
+exit:
+ return return_value;
}
PyDoc_STRVAR(_asyncio_Future_cancelled__doc__,
@@ -271,27 +271,27 @@ _asyncio_Future_get_loop(FutureObj *self, PyObject *Py_UNUSED(ignored))
return _asyncio_Future_get_loop_impl(self);
}
-PyDoc_STRVAR(_asyncio_Future__make_cancelled_error__doc__,
-"_make_cancelled_error($self, /)\n"
-"--\n"
-"\n"
-"Create the CancelledError to raise if the Future is cancelled.\n"
-"\n"
-"This should only be called once when handling a cancellation since\n"
-"it erases the context exception value.");
-
-#define _ASYNCIO_FUTURE__MAKE_CANCELLED_ERROR_METHODDEF \
- {"_make_cancelled_error", (PyCFunction)_asyncio_Future__make_cancelled_error, METH_NOARGS, _asyncio_Future__make_cancelled_error__doc__},
-
-static PyObject *
-_asyncio_Future__make_cancelled_error_impl(FutureObj *self);
-
-static PyObject *
-_asyncio_Future__make_cancelled_error(FutureObj *self, PyObject *Py_UNUSED(ignored))
-{
- return _asyncio_Future__make_cancelled_error_impl(self);
-}
-
+PyDoc_STRVAR(_asyncio_Future__make_cancelled_error__doc__,
+"_make_cancelled_error($self, /)\n"
+"--\n"
+"\n"
+"Create the CancelledError to raise if the Future is cancelled.\n"
+"\n"
+"This should only be called once when handling a cancellation since\n"
+"it erases the context exception value.");
+
+#define _ASYNCIO_FUTURE__MAKE_CANCELLED_ERROR_METHODDEF \
+ {"_make_cancelled_error", (PyCFunction)_asyncio_Future__make_cancelled_error, METH_NOARGS, _asyncio_Future__make_cancelled_error__doc__},
+
+static PyObject *
+_asyncio_Future__make_cancelled_error_impl(FutureObj *self);
+
+static PyObject *
+_asyncio_Future__make_cancelled_error(FutureObj *self, PyObject *Py_UNUSED(ignored))
+{
+ return _asyncio_Future__make_cancelled_error_impl(self);
+}
+
PyDoc_STRVAR(_asyncio_Future__repr_info__doc__,
"_repr_info($self, /)\n"
"--\n"
@@ -310,70 +310,70 @@ _asyncio_Future__repr_info(FutureObj *self, PyObject *Py_UNUSED(ignored))
}
PyDoc_STRVAR(_asyncio_Task___init____doc__,
-"Task(coro, *, loop=None, name=None)\n"
+"Task(coro, *, loop=None, name=None)\n"
"--\n"
"\n"
"A coroutine wrapped in a Future.");
static int
-_asyncio_Task___init___impl(TaskObj *self, PyObject *coro, PyObject *loop,
- PyObject *name);
+_asyncio_Task___init___impl(TaskObj *self, PyObject *coro, PyObject *loop,
+ PyObject *name);
static int
_asyncio_Task___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
- static const char * const _keywords[] = {"coro", "loop", "name", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "Task", 0};
- PyObject *argsbuf[3];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static const char * const _keywords[] = {"coro", "loop", "name", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "Task", 0};
+ PyObject *argsbuf[3];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *coro;
PyObject *loop = Py_None;
- PyObject *name = Py_None;
+ PyObject *name = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- coro = fastargs[0];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (fastargs[1]) {
- loop = fastargs[1];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- name = fastargs[2];
-skip_optional_kwonly:
- return_value = _asyncio_Task___init___impl((TaskObj *)self, coro, loop, name);
+ coro = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (fastargs[1]) {
+ loop = fastargs[1];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ name = fastargs[2];
+skip_optional_kwonly:
+ return_value = _asyncio_Task___init___impl((TaskObj *)self, coro, loop, name);
exit:
return return_value;
}
-PyDoc_STRVAR(_asyncio_Task__make_cancelled_error__doc__,
-"_make_cancelled_error($self, /)\n"
+PyDoc_STRVAR(_asyncio_Task__make_cancelled_error__doc__,
+"_make_cancelled_error($self, /)\n"
"--\n"
"\n"
-"Create the CancelledError to raise if the Task is cancelled.\n"
+"Create the CancelledError to raise if the Task is cancelled.\n"
"\n"
-"This should only be called once when handling a cancellation since\n"
-"it erases the context exception value.");
+"This should only be called once when handling a cancellation since\n"
+"it erases the context exception value.");
-#define _ASYNCIO_TASK__MAKE_CANCELLED_ERROR_METHODDEF \
- {"_make_cancelled_error", (PyCFunction)_asyncio_Task__make_cancelled_error, METH_NOARGS, _asyncio_Task__make_cancelled_error__doc__},
+#define _ASYNCIO_TASK__MAKE_CANCELLED_ERROR_METHODDEF \
+ {"_make_cancelled_error", (PyCFunction)_asyncio_Task__make_cancelled_error, METH_NOARGS, _asyncio_Task__make_cancelled_error__doc__},
static PyObject *
-_asyncio_Task__make_cancelled_error_impl(TaskObj *self);
+_asyncio_Task__make_cancelled_error_impl(TaskObj *self);
static PyObject *
-_asyncio_Task__make_cancelled_error(TaskObj *self, PyObject *Py_UNUSED(ignored))
+_asyncio_Task__make_cancelled_error(TaskObj *self, PyObject *Py_UNUSED(ignored))
{
- return _asyncio_Task__make_cancelled_error_impl(self);
+ return _asyncio_Task__make_cancelled_error_impl(self);
}
PyDoc_STRVAR(_asyncio_Task__repr_info__doc__,
@@ -394,7 +394,7 @@ _asyncio_Task__repr_info(TaskObj *self, PyObject *Py_UNUSED(ignored))
}
PyDoc_STRVAR(_asyncio_Task_cancel__doc__,
-"cancel($self, /, msg=None)\n"
+"cancel($self, /, msg=None)\n"
"--\n"
"\n"
"Request that this task cancel itself.\n"
@@ -417,34 +417,34 @@ PyDoc_STRVAR(_asyncio_Task_cancel__doc__,
"was not called).");
#define _ASYNCIO_TASK_CANCEL_METHODDEF \
- {"cancel", (PyCFunction)(void(*)(void))_asyncio_Task_cancel, METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_cancel__doc__},
+ {"cancel", (PyCFunction)(void(*)(void))_asyncio_Task_cancel, METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_cancel__doc__},
static PyObject *
-_asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg);
+_asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg);
static PyObject *
-_asyncio_Task_cancel(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+_asyncio_Task_cancel(TaskObj *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"msg", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *msg = Py_None;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- msg = args[0];
-skip_optional_pos:
- return_value = _asyncio_Task_cancel_impl(self, msg);
-
-exit:
- return return_value;
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"msg", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "cancel", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *msg = Py_None;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ msg = args[0];
+skip_optional_pos:
+ return_value = _asyncio_Task_cancel_impl(self, msg);
+
+exit:
+ return return_value;
}
PyDoc_STRVAR(_asyncio_Task_get_stack__doc__,
@@ -472,7 +472,7 @@ PyDoc_STRVAR(_asyncio_Task_get_stack__doc__,
"returned for a suspended coroutine.");
#define _ASYNCIO_TASK_GET_STACK_METHODDEF \
- {"get_stack", (PyCFunction)(void(*)(void))_asyncio_Task_get_stack, METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_get_stack__doc__},
+ {"get_stack", (PyCFunction)(void(*)(void))_asyncio_Task_get_stack, METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_get_stack__doc__},
static PyObject *
_asyncio_Task_get_stack_impl(TaskObj *self, PyObject *limit);
@@ -482,20 +482,20 @@ _asyncio_Task_get_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs,
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"limit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "get_stack", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "get_stack", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *limit = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- limit = args[0];
-skip_optional_kwonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ limit = args[0];
+skip_optional_kwonly:
return_value = _asyncio_Task_get_stack_impl(self, limit);
exit:
@@ -515,7 +515,7 @@ PyDoc_STRVAR(_asyncio_Task_print_stack__doc__,
"to sys.stderr.");
#define _ASYNCIO_TASK_PRINT_STACK_METHODDEF \
- {"print_stack", (PyCFunction)(void(*)(void))_asyncio_Task_print_stack, METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_print_stack__doc__},
+ {"print_stack", (PyCFunction)(void(*)(void))_asyncio_Task_print_stack, METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_print_stack__doc__},
static PyObject *
_asyncio_Task_print_stack_impl(TaskObj *self, PyObject *limit,
@@ -526,27 +526,27 @@ _asyncio_Task_print_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"limit", "file", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "print_stack", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "print_stack", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *limit = Py_None;
PyObject *file = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[0]) {
- limit = args[0];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- file = args[1];
-skip_optional_kwonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[0]) {
+ limit = args[0];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ file = args[1];
+skip_optional_kwonly:
return_value = _asyncio_Task_print_stack_impl(self, limit, file);
exit:
@@ -569,48 +569,48 @@ PyDoc_STRVAR(_asyncio_Task_set_exception__doc__,
#define _ASYNCIO_TASK_SET_EXCEPTION_METHODDEF \
{"set_exception", (PyCFunction)_asyncio_Task_set_exception, METH_O, _asyncio_Task_set_exception__doc__},
-PyDoc_STRVAR(_asyncio_Task_get_coro__doc__,
-"get_coro($self, /)\n"
-"--\n"
-"\n");
-
-#define _ASYNCIO_TASK_GET_CORO_METHODDEF \
- {"get_coro", (PyCFunction)_asyncio_Task_get_coro, METH_NOARGS, _asyncio_Task_get_coro__doc__},
-
-static PyObject *
-_asyncio_Task_get_coro_impl(TaskObj *self);
-
-static PyObject *
-_asyncio_Task_get_coro(TaskObj *self, PyObject *Py_UNUSED(ignored))
-{
- return _asyncio_Task_get_coro_impl(self);
-}
-
-PyDoc_STRVAR(_asyncio_Task_get_name__doc__,
-"get_name($self, /)\n"
-"--\n"
-"\n");
-
-#define _ASYNCIO_TASK_GET_NAME_METHODDEF \
- {"get_name", (PyCFunction)_asyncio_Task_get_name, METH_NOARGS, _asyncio_Task_get_name__doc__},
-
-static PyObject *
-_asyncio_Task_get_name_impl(TaskObj *self);
-
-static PyObject *
-_asyncio_Task_get_name(TaskObj *self, PyObject *Py_UNUSED(ignored))
-{
- return _asyncio_Task_get_name_impl(self);
-}
-
-PyDoc_STRVAR(_asyncio_Task_set_name__doc__,
-"set_name($self, value, /)\n"
-"--\n"
-"\n");
-
-#define _ASYNCIO_TASK_SET_NAME_METHODDEF \
- {"set_name", (PyCFunction)_asyncio_Task_set_name, METH_O, _asyncio_Task_set_name__doc__},
-
+PyDoc_STRVAR(_asyncio_Task_get_coro__doc__,
+"get_coro($self, /)\n"
+"--\n"
+"\n");
+
+#define _ASYNCIO_TASK_GET_CORO_METHODDEF \
+ {"get_coro", (PyCFunction)_asyncio_Task_get_coro, METH_NOARGS, _asyncio_Task_get_coro__doc__},
+
+static PyObject *
+_asyncio_Task_get_coro_impl(TaskObj *self);
+
+static PyObject *
+_asyncio_Task_get_coro(TaskObj *self, PyObject *Py_UNUSED(ignored))
+{
+ return _asyncio_Task_get_coro_impl(self);
+}
+
+PyDoc_STRVAR(_asyncio_Task_get_name__doc__,
+"get_name($self, /)\n"
+"--\n"
+"\n");
+
+#define _ASYNCIO_TASK_GET_NAME_METHODDEF \
+ {"get_name", (PyCFunction)_asyncio_Task_get_name, METH_NOARGS, _asyncio_Task_get_name__doc__},
+
+static PyObject *
+_asyncio_Task_get_name_impl(TaskObj *self);
+
+static PyObject *
+_asyncio_Task_get_name(TaskObj *self, PyObject *Py_UNUSED(ignored))
+{
+ return _asyncio_Task_get_name_impl(self);
+}
+
+PyDoc_STRVAR(_asyncio_Task_set_name__doc__,
+"set_name($self, value, /)\n"
+"--\n"
+"\n");
+
+#define _ASYNCIO_TASK_SET_NAME_METHODDEF \
+ {"set_name", (PyCFunction)_asyncio_Task_set_name, METH_O, _asyncio_Task_set_name__doc__},
+
PyDoc_STRVAR(_asyncio__get_running_loop__doc__,
"_get_running_loop($module, /)\n"
"--\n"
@@ -698,7 +698,7 @@ PyDoc_STRVAR(_asyncio__register_task__doc__,
"Returns None.");
#define _ASYNCIO__REGISTER_TASK_METHODDEF \
- {"_register_task", (PyCFunction)(void(*)(void))_asyncio__register_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__register_task__doc__},
+ {"_register_task", (PyCFunction)(void(*)(void))_asyncio__register_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__register_task__doc__},
static PyObject *
_asyncio__register_task_impl(PyObject *module, PyObject *task);
@@ -708,15 +708,15 @@ _asyncio__register_task(PyObject *module, PyObject *const *args, Py_ssize_t narg
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"task", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_register_task", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "_register_task", 0};
+ PyObject *argsbuf[1];
PyObject *task;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- task = args[0];
+ task = args[0];
return_value = _asyncio__register_task_impl(module, task);
exit:
@@ -732,7 +732,7 @@ PyDoc_STRVAR(_asyncio__unregister_task__doc__,
"Returns None.");
#define _ASYNCIO__UNREGISTER_TASK_METHODDEF \
- {"_unregister_task", (PyCFunction)(void(*)(void))_asyncio__unregister_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__unregister_task__doc__},
+ {"_unregister_task", (PyCFunction)(void(*)(void))_asyncio__unregister_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__unregister_task__doc__},
static PyObject *
_asyncio__unregister_task_impl(PyObject *module, PyObject *task);
@@ -742,15 +742,15 @@ _asyncio__unregister_task(PyObject *module, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"task", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_unregister_task", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "_unregister_task", 0};
+ PyObject *argsbuf[1];
PyObject *task;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- task = args[0];
+ task = args[0];
return_value = _asyncio__unregister_task_impl(module, task);
exit:
@@ -768,7 +768,7 @@ PyDoc_STRVAR(_asyncio__enter_task__doc__,
"Returns None.");
#define _ASYNCIO__ENTER_TASK_METHODDEF \
- {"_enter_task", (PyCFunction)(void(*)(void))_asyncio__enter_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__enter_task__doc__},
+ {"_enter_task", (PyCFunction)(void(*)(void))_asyncio__enter_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__enter_task__doc__},
static PyObject *
_asyncio__enter_task_impl(PyObject *module, PyObject *loop, PyObject *task);
@@ -778,17 +778,17 @@ _asyncio__enter_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"loop", "task", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_enter_task", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "_enter_task", 0};
+ PyObject *argsbuf[2];
PyObject *loop;
PyObject *task;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- loop = args[0];
- task = args[1];
+ loop = args[0];
+ task = args[1];
return_value = _asyncio__enter_task_impl(module, loop, task);
exit:
@@ -806,7 +806,7 @@ PyDoc_STRVAR(_asyncio__leave_task__doc__,
"Returns None.");
#define _ASYNCIO__LEAVE_TASK_METHODDEF \
- {"_leave_task", (PyCFunction)(void(*)(void))_asyncio__leave_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__leave_task__doc__},
+ {"_leave_task", (PyCFunction)(void(*)(void))_asyncio__leave_task, METH_FASTCALL|METH_KEYWORDS, _asyncio__leave_task__doc__},
static PyObject *
_asyncio__leave_task_impl(PyObject *module, PyObject *loop, PyObject *task);
@@ -816,20 +816,20 @@ _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"loop", "task", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_leave_task", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "_leave_task", 0};
+ PyObject *argsbuf[2];
PyObject *loop;
PyObject *task;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- loop = args[0];
- task = args[1];
+ loop = args[0];
+ task = args[1];
return_value = _asyncio__leave_task_impl(module, loop, task);
exit:
return return_value;
}
-/*[clinic end generated code: output=d0fc522bcbff9d61 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d0fc522bcbff9d61 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_bisectmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_bisectmodule.c.h
index 424b1517c5..80ab7048f1 100644
--- a/contrib/tools/python3/src/Modules/clinic/_bisectmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_bisectmodule.c.h
@@ -1,306 +1,306 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(_bisect_bisect_right__doc__,
-"bisect_right($module, /, a, x, lo=0, hi=None)\n"
-"--\n"
-"\n"
-"Return the index where to insert item x in list a, assuming a is sorted.\n"
-"\n"
-"The return value i is such that all e in a[:i] have e <= x, and all e in\n"
-"a[i:] have e > x. So if x already appears in the list, i points just\n"
-"beyond the rightmost x already there\n"
-"\n"
-"Optional args lo (default 0) and hi (default len(a)) bound the\n"
-"slice of a to be searched.");
-
-#define _BISECT_BISECT_RIGHT_METHODDEF \
- {"bisect_right", (PyCFunction)(void(*)(void))_bisect_bisect_right, METH_FASTCALL|METH_KEYWORDS, _bisect_bisect_right__doc__},
-
-static Py_ssize_t
-_bisect_bisect_right_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi);
-
-static PyObject *
-_bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "bisect_right", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
- PyObject *a;
- PyObject *x;
- Py_ssize_t lo = 0;
- Py_ssize_t hi = -1;
- Py_ssize_t _return_value;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- a = args[0];
- x = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- lo = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
- goto exit;
- }
-skip_optional_pos:
- _return_value = _bisect_bisect_right_impl(module, a, x, lo, hi);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromSsize_t(_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_bisect_insort_right__doc__,
-"insort_right($module, /, a, x, lo=0, hi=None)\n"
-"--\n"
-"\n"
-"Insert item x in list a, and keep it sorted assuming a is sorted.\n"
-"\n"
-"If x is already in a, insert it to the right of the rightmost x.\n"
-"\n"
-"Optional args lo (default 0) and hi (default len(a)) bound the\n"
-"slice of a to be searched.");
-
-#define _BISECT_INSORT_RIGHT_METHODDEF \
- {"insort_right", (PyCFunction)(void(*)(void))_bisect_insort_right, METH_FASTCALL|METH_KEYWORDS, _bisect_insort_right__doc__},
-
-static PyObject *
-_bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi);
-
-static PyObject *
-_bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "insort_right", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
- PyObject *a;
- PyObject *x;
- Py_ssize_t lo = 0;
- Py_ssize_t hi = -1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- a = args[0];
- x = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- lo = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
- goto exit;
- }
-skip_optional_pos:
- return_value = _bisect_insort_right_impl(module, a, x, lo, hi);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_bisect_bisect_left__doc__,
-"bisect_left($module, /, a, x, lo=0, hi=None)\n"
-"--\n"
-"\n"
-"Return the index where to insert item x in list a, assuming a is sorted.\n"
-"\n"
-"The return value i is such that all e in a[:i] have e < x, and all e in\n"
-"a[i:] have e >= x. So if x already appears in the list, i points just\n"
-"before the leftmost x already there.\n"
-"\n"
-"Optional args lo (default 0) and hi (default len(a)) bound the\n"
-"slice of a to be searched.");
-
-#define _BISECT_BISECT_LEFT_METHODDEF \
- {"bisect_left", (PyCFunction)(void(*)(void))_bisect_bisect_left, METH_FASTCALL|METH_KEYWORDS, _bisect_bisect_left__doc__},
-
-static Py_ssize_t
-_bisect_bisect_left_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi);
-
-static PyObject *
-_bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "bisect_left", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
- PyObject *a;
- PyObject *x;
- Py_ssize_t lo = 0;
- Py_ssize_t hi = -1;
- Py_ssize_t _return_value;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- a = args[0];
- x = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- lo = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
- goto exit;
- }
-skip_optional_pos:
- _return_value = _bisect_bisect_left_impl(module, a, x, lo, hi);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromSsize_t(_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_bisect_insort_left__doc__,
-"insort_left($module, /, a, x, lo=0, hi=None)\n"
-"--\n"
-"\n"
-"Insert item x in list a, and keep it sorted assuming a is sorted.\n"
-"\n"
-"If x is already in a, insert it to the left of the leftmost x.\n"
-"\n"
-"Optional args lo (default 0) and hi (default len(a)) bound the\n"
-"slice of a to be searched.");
-
-#define _BISECT_INSORT_LEFT_METHODDEF \
- {"insort_left", (PyCFunction)(void(*)(void))_bisect_insort_left, METH_FASTCALL|METH_KEYWORDS, _bisect_insort_left__doc__},
-
-static PyObject *
-_bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x,
- Py_ssize_t lo, Py_ssize_t hi);
-
-static PyObject *
-_bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "insort_left", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
- PyObject *a;
- PyObject *x;
- Py_ssize_t lo = 0;
- Py_ssize_t hi = -1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- a = args[0];
- x = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- lo = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
- goto exit;
- }
-skip_optional_pos:
- return_value = _bisect_insort_left_impl(module, a, x, lo, hi);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=bcbd6c77331a08f0 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_bisect_bisect_right__doc__,
+"bisect_right($module, /, a, x, lo=0, hi=None)\n"
+"--\n"
+"\n"
+"Return the index where to insert item x in list a, assuming a is sorted.\n"
+"\n"
+"The return value i is such that all e in a[:i] have e <= x, and all e in\n"
+"a[i:] have e > x. So if x already appears in the list, i points just\n"
+"beyond the rightmost x already there\n"
+"\n"
+"Optional args lo (default 0) and hi (default len(a)) bound the\n"
+"slice of a to be searched.");
+
+#define _BISECT_BISECT_RIGHT_METHODDEF \
+ {"bisect_right", (PyCFunction)(void(*)(void))_bisect_bisect_right, METH_FASTCALL|METH_KEYWORDS, _bisect_bisect_right__doc__},
+
+static Py_ssize_t
+_bisect_bisect_right_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi);
+
+static PyObject *
+_bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "bisect_right", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ PyObject *a;
+ PyObject *x;
+ Py_ssize_t lo = 0;
+ Py_ssize_t hi = -1;
+ Py_ssize_t _return_value;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ a = args[0];
+ x = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ lo = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
+ goto exit;
+ }
+skip_optional_pos:
+ _return_value = _bisect_bisect_right_impl(module, a, x, lo, hi);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_bisect_insort_right__doc__,
+"insort_right($module, /, a, x, lo=0, hi=None)\n"
+"--\n"
+"\n"
+"Insert item x in list a, and keep it sorted assuming a is sorted.\n"
+"\n"
+"If x is already in a, insert it to the right of the rightmost x.\n"
+"\n"
+"Optional args lo (default 0) and hi (default len(a)) bound the\n"
+"slice of a to be searched.");
+
+#define _BISECT_INSORT_RIGHT_METHODDEF \
+ {"insort_right", (PyCFunction)(void(*)(void))_bisect_insort_right, METH_FASTCALL|METH_KEYWORDS, _bisect_insort_right__doc__},
+
+static PyObject *
+_bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi);
+
+static PyObject *
+_bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "insort_right", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ PyObject *a;
+ PyObject *x;
+ Py_ssize_t lo = 0;
+ Py_ssize_t hi = -1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ a = args[0];
+ x = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ lo = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = _bisect_insort_right_impl(module, a, x, lo, hi);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_bisect_bisect_left__doc__,
+"bisect_left($module, /, a, x, lo=0, hi=None)\n"
+"--\n"
+"\n"
+"Return the index where to insert item x in list a, assuming a is sorted.\n"
+"\n"
+"The return value i is such that all e in a[:i] have e < x, and all e in\n"
+"a[i:] have e >= x. So if x already appears in the list, i points just\n"
+"before the leftmost x already there.\n"
+"\n"
+"Optional args lo (default 0) and hi (default len(a)) bound the\n"
+"slice of a to be searched.");
+
+#define _BISECT_BISECT_LEFT_METHODDEF \
+ {"bisect_left", (PyCFunction)(void(*)(void))_bisect_bisect_left, METH_FASTCALL|METH_KEYWORDS, _bisect_bisect_left__doc__},
+
+static Py_ssize_t
+_bisect_bisect_left_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi);
+
+static PyObject *
+_bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "bisect_left", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ PyObject *a;
+ PyObject *x;
+ Py_ssize_t lo = 0;
+ Py_ssize_t hi = -1;
+ Py_ssize_t _return_value;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ a = args[0];
+ x = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ lo = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
+ goto exit;
+ }
+skip_optional_pos:
+ _return_value = _bisect_bisect_left_impl(module, a, x, lo, hi);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_bisect_insort_left__doc__,
+"insort_left($module, /, a, x, lo=0, hi=None)\n"
+"--\n"
+"\n"
+"Insert item x in list a, and keep it sorted assuming a is sorted.\n"
+"\n"
+"If x is already in a, insert it to the left of the leftmost x.\n"
+"\n"
+"Optional args lo (default 0) and hi (default len(a)) bound the\n"
+"slice of a to be searched.");
+
+#define _BISECT_INSORT_LEFT_METHODDEF \
+ {"insort_left", (PyCFunction)(void(*)(void))_bisect_insort_left, METH_FASTCALL|METH_KEYWORDS, _bisect_insort_left__doc__},
+
+static PyObject *
+_bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x,
+ Py_ssize_t lo, Py_ssize_t hi);
+
+static PyObject *
+_bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"a", "x", "lo", "hi", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "insort_left", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ PyObject *a;
+ PyObject *x;
+ Py_ssize_t lo = 0;
+ Py_ssize_t hi = -1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ a = args[0];
+ x = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ lo = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[3], &hi)) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = _bisect_insort_left_impl(module, a, x, lo, hi);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=bcbd6c77331a08f0 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_bz2module.c.h b/contrib/tools/python3/src/Modules/clinic/_bz2module.c.h
index 003f774d53..0eb6280d6e 100644
--- a/contrib/tools/python3/src/Modules/clinic/_bz2module.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_bz2module.c.h
@@ -25,13 +25,13 @@ _bz2_BZ2Compressor_compress(BZ2Compressor *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("compress", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("compress", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _bz2_BZ2Compressor_compress_impl(self, &data);
exit:
@@ -85,26 +85,26 @@ _bz2_BZ2Compressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
int return_value = -1;
int compresslevel = 9;
- if (Py_IS_TYPE(self, &BZ2Compressor_Type) &&
+ if (Py_IS_TYPE(self, &BZ2Compressor_Type) &&
!_PyArg_NoKeywords("BZ2Compressor", kwargs)) {
goto exit;
}
- if (!_PyArg_CheckPositional("BZ2Compressor", PyTuple_GET_SIZE(args), 0, 1)) {
+ if (!_PyArg_CheckPositional("BZ2Compressor", PyTuple_GET_SIZE(args), 0, 1)) {
+ goto exit;
+ }
+ if (PyTuple_GET_SIZE(args) < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(PyTuple_GET_ITEM(args, 0))) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ compresslevel = _PyLong_AsInt(PyTuple_GET_ITEM(args, 0));
+ if (compresslevel == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyTuple_GET_SIZE(args) < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(PyTuple_GET_ITEM(args, 0))) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- compresslevel = _PyLong_AsInt(PyTuple_GET_ITEM(args, 0));
- if (compresslevel == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = _bz2_BZ2Compressor___init___impl((BZ2Compressor *)self, compresslevel);
exit:
@@ -131,7 +131,7 @@ PyDoc_STRVAR(_bz2_BZ2Decompressor_decompress__doc__,
"the unused_data attribute.");
#define _BZ2_BZ2DECOMPRESSOR_DECOMPRESS_METHODDEF \
- {"decompress", (PyCFunction)(void(*)(void))_bz2_BZ2Decompressor_decompress, METH_FASTCALL|METH_KEYWORDS, _bz2_BZ2Decompressor_decompress__doc__},
+ {"decompress", (PyCFunction)(void(*)(void))_bz2_BZ2Decompressor_decompress, METH_FASTCALL|METH_KEYWORDS, _bz2_BZ2Decompressor_decompress__doc__},
static PyObject *
_bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self, Py_buffer *data,
@@ -142,44 +142,44 @@ _bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *const *args, Py
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"data", "max_length", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
Py_ssize_t max_length = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("decompress", "argument 'data'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- max_length = ival;
- }
-skip_optional_pos:
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("decompress", "argument 'data'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ max_length = ival;
+ }
+skip_optional_pos:
return_value = _bz2_BZ2Decompressor_decompress_impl(self, &data, max_length);
exit:
@@ -207,11 +207,11 @@ _bz2_BZ2Decompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
- if (Py_IS_TYPE(self, &BZ2Decompressor_Type) &&
+ if (Py_IS_TYPE(self, &BZ2Decompressor_Type) &&
!_PyArg_NoPositional("BZ2Decompressor", args)) {
goto exit;
}
- if (Py_IS_TYPE(self, &BZ2Decompressor_Type) &&
+ if (Py_IS_TYPE(self, &BZ2Decompressor_Type) &&
!_PyArg_NoKeywords("BZ2Decompressor", kwargs)) {
goto exit;
}
@@ -220,4 +220,4 @@ _bz2_BZ2Decompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=3f3f1e788fe28ee1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3f3f1e788fe28ee1 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_codecsmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_codecsmodule.c.h
index ad8e11127f..7ddc36de8a 100644
--- a/contrib/tools/python3/src/Modules/clinic/_codecsmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_codecsmodule.c.h
@@ -33,19 +33,19 @@ _codecs_lookup(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
const char *encoding;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("lookup", "argument", "str", arg);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(arg, &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("lookup", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(arg, &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
return_value = _codecs_lookup_impl(module, encoding);
exit:
@@ -65,7 +65,7 @@ PyDoc_STRVAR(_codecs_encode__doc__,
"codecs.register_error that can handle ValueErrors.");
#define _CODECS_ENCODE_METHODDEF \
- {"encode", (PyCFunction)(void(*)(void))_codecs_encode, METH_FASTCALL|METH_KEYWORDS, _codecs_encode__doc__},
+ {"encode", (PyCFunction)(void(*)(void))_codecs_encode, METH_FASTCALL|METH_KEYWORDS, _codecs_encode__doc__},
static PyObject *
_codecs_encode_impl(PyObject *module, PyObject *obj, const char *encoding,
@@ -76,53 +76,53 @@ _codecs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"obj", "encoding", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *obj;
const char *encoding = NULL;
const char *errors = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- obj = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("encode", "argument 'encoding'", "str", args[1]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[1], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("encode", "argument 'errors'", "str", args[2]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ obj = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("encode", "argument 'encoding'", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[1], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("encode", "argument 'errors'", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+skip_optional_pos:
return_value = _codecs_encode_impl(module, obj, encoding, errors);
exit:
@@ -142,7 +142,7 @@ PyDoc_STRVAR(_codecs_decode__doc__,
"codecs.register_error that can handle ValueErrors.");
#define _CODECS_DECODE_METHODDEF \
- {"decode", (PyCFunction)(void(*)(void))_codecs_decode, METH_FASTCALL|METH_KEYWORDS, _codecs_decode__doc__},
+ {"decode", (PyCFunction)(void(*)(void))_codecs_decode, METH_FASTCALL|METH_KEYWORDS, _codecs_decode__doc__},
static PyObject *
_codecs_decode_impl(PyObject *module, PyObject *obj, const char *encoding,
@@ -153,53 +153,53 @@ _codecs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"obj", "encoding", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *obj;
const char *encoding = NULL;
const char *errors = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- obj = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("decode", "argument 'encoding'", "str", args[1]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[1], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("decode", "argument 'errors'", "str", args[2]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ obj = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("decode", "argument 'encoding'", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[1], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("decode", "argument 'errors'", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+skip_optional_pos:
return_value = _codecs_decode_impl(module, obj, encoding, errors);
exit:
@@ -224,19 +224,19 @@ _codecs__forget_codec(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
const char *encoding;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("_forget_codec", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("_forget_codec", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(arg, &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(arg, &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _codecs__forget_codec_impl(module, encoding);
exit:
@@ -249,7 +249,7 @@ PyDoc_STRVAR(_codecs_escape_decode__doc__,
"\n");
#define _CODECS_ESCAPE_DECODE_METHODDEF \
- {"escape_decode", (PyCFunction)(void(*)(void))_codecs_escape_decode, METH_FASTCALL, _codecs_escape_decode__doc__},
+ {"escape_decode", (PyCFunction)(void(*)(void))_codecs_escape_decode, METH_FASTCALL, _codecs_escape_decode__doc__},
static PyObject *
_codecs_escape_decode_impl(PyObject *module, Py_buffer *data,
@@ -262,48 +262,48 @@ _codecs_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer data = {NULL, NULL};
const char *errors = NULL;
- if (!_PyArg_CheckPositional("escape_decode", nargs, 1, 2)) {
- goto exit;
- }
- if (PyUnicode_Check(args[0])) {
- Py_ssize_t len;
- const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
- if (ptr == NULL) {
- goto exit;
- }
- PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
- }
- else { /* any bytes-like object */
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("escape_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("escape_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("escape_decode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyUnicode_Check(args[0])) {
+ Py_ssize_t len;
+ const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
+ if (ptr == NULL) {
+ goto exit;
+ }
+ PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
+ }
+ else { /* any bytes-like object */
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("escape_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("escape_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_escape_decode_impl(module, &data, errors);
exit:
@@ -321,7 +321,7 @@ PyDoc_STRVAR(_codecs_escape_encode__doc__,
"\n");
#define _CODECS_ESCAPE_ENCODE_METHODDEF \
- {"escape_encode", (PyCFunction)(void(*)(void))_codecs_escape_encode, METH_FASTCALL, _codecs_escape_encode__doc__},
+ {"escape_encode", (PyCFunction)(void(*)(void))_codecs_escape_encode, METH_FASTCALL, _codecs_escape_encode__doc__},
static PyObject *
_codecs_escape_encode_impl(PyObject *module, PyObject *data,
@@ -334,37 +334,37 @@ _codecs_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *data;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("escape_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyBytes_Check(args[0])) {
- _PyArg_BadArgument("escape_encode", "argument 1", "bytes", args[0]);
- goto exit;
- }
- data = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("escape_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
- return_value = _codecs_escape_encode_impl(module, data, errors);
+ if (!_PyArg_CheckPositional("escape_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyBytes_Check(args[0])) {
+ _PyArg_BadArgument("escape_encode", "argument 1", "bytes", args[0]);
+ goto exit;
+ }
+ data = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("escape_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
+ return_value = _codecs_escape_encode_impl(module, data, errors);
exit:
return return_value;
@@ -376,7 +376,7 @@ PyDoc_STRVAR(_codecs_utf_7_decode__doc__,
"\n");
#define _CODECS_UTF_7_DECODE_METHODDEF \
- {"utf_7_decode", (PyCFunction)(void(*)(void))_codecs_utf_7_decode, METH_FASTCALL, _codecs_utf_7_decode__doc__},
+ {"utf_7_decode", (PyCFunction)(void(*)(void))_codecs_utf_7_decode, METH_FASTCALL, _codecs_utf_7_decode__doc__},
static PyObject *
_codecs_utf_7_decode_impl(PyObject *module, Py_buffer *data,
@@ -390,50 +390,50 @@ _codecs_utf_7_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_7_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_7_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_7_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_7_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_7_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_7_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_7_decode_impl(module, &data, errors, final);
exit:
@@ -451,7 +451,7 @@ PyDoc_STRVAR(_codecs_utf_8_decode__doc__,
"\n");
#define _CODECS_UTF_8_DECODE_METHODDEF \
- {"utf_8_decode", (PyCFunction)(void(*)(void))_codecs_utf_8_decode, METH_FASTCALL, _codecs_utf_8_decode__doc__},
+ {"utf_8_decode", (PyCFunction)(void(*)(void))_codecs_utf_8_decode, METH_FASTCALL, _codecs_utf_8_decode__doc__},
static PyObject *
_codecs_utf_8_decode_impl(PyObject *module, Py_buffer *data,
@@ -465,50 +465,50 @@ _codecs_utf_8_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_8_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_8_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_8_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_8_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_8_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_8_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_8_decode_impl(module, &data, errors, final);
exit:
@@ -526,7 +526,7 @@ PyDoc_STRVAR(_codecs_utf_16_decode__doc__,
"\n");
#define _CODECS_UTF_16_DECODE_METHODDEF \
- {"utf_16_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_decode, METH_FASTCALL, _codecs_utf_16_decode__doc__},
+ {"utf_16_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_decode, METH_FASTCALL, _codecs_utf_16_decode__doc__},
static PyObject *
_codecs_utf_16_decode_impl(PyObject *module, Py_buffer *data,
@@ -540,50 +540,50 @@ _codecs_utf_16_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_16_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_16_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_16_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_16_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_16_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_16_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_16_decode_impl(module, &data, errors, final);
exit:
@@ -601,7 +601,7 @@ PyDoc_STRVAR(_codecs_utf_16_le_decode__doc__,
"\n");
#define _CODECS_UTF_16_LE_DECODE_METHODDEF \
- {"utf_16_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_decode, METH_FASTCALL, _codecs_utf_16_le_decode__doc__},
+ {"utf_16_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_decode, METH_FASTCALL, _codecs_utf_16_le_decode__doc__},
static PyObject *
_codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer *data,
@@ -615,50 +615,50 @@ _codecs_utf_16_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t nar
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_16_le_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_16_le_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_16_le_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_16_le_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_16_le_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_16_le_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_16_le_decode_impl(module, &data, errors, final);
exit:
@@ -676,7 +676,7 @@ PyDoc_STRVAR(_codecs_utf_16_be_decode__doc__,
"\n");
#define _CODECS_UTF_16_BE_DECODE_METHODDEF \
- {"utf_16_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_decode, METH_FASTCALL, _codecs_utf_16_be_decode__doc__},
+ {"utf_16_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_decode, METH_FASTCALL, _codecs_utf_16_be_decode__doc__},
static PyObject *
_codecs_utf_16_be_decode_impl(PyObject *module, Py_buffer *data,
@@ -690,50 +690,50 @@ _codecs_utf_16_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t nar
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_16_be_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_16_be_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_16_be_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_16_be_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_16_be_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_16_be_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_16_be_decode_impl(module, &data, errors, final);
exit:
@@ -752,7 +752,7 @@ PyDoc_STRVAR(_codecs_utf_16_ex_decode__doc__,
"\n");
#define _CODECS_UTF_16_EX_DECODE_METHODDEF \
- {"utf_16_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_ex_decode, METH_FASTCALL, _codecs_utf_16_ex_decode__doc__},
+ {"utf_16_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_ex_decode, METH_FASTCALL, _codecs_utf_16_ex_decode__doc__},
static PyObject *
_codecs_utf_16_ex_decode_impl(PyObject *module, Py_buffer *data,
@@ -767,62 +767,62 @@ _codecs_utf_16_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t nar
int byteorder = 0;
int final = 0;
- if (!_PyArg_CheckPositional("utf_16_ex_decode", nargs, 1, 4)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_16_ex_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_16_ex_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- byteorder = _PyLong_AsInt(args[2]);
- if (byteorder == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 4) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[3]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_16_ex_decode", nargs, 1, 4)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_16_ex_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_16_ex_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ byteorder = _PyLong_AsInt(args[2]);
+ if (byteorder == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[3]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_16_ex_decode_impl(module, &data, errors, byteorder, final);
exit:
@@ -840,7 +840,7 @@ PyDoc_STRVAR(_codecs_utf_32_decode__doc__,
"\n");
#define _CODECS_UTF_32_DECODE_METHODDEF \
- {"utf_32_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_decode, METH_FASTCALL, _codecs_utf_32_decode__doc__},
+ {"utf_32_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_decode, METH_FASTCALL, _codecs_utf_32_decode__doc__},
static PyObject *
_codecs_utf_32_decode_impl(PyObject *module, Py_buffer *data,
@@ -854,50 +854,50 @@ _codecs_utf_32_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_32_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_32_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_32_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_32_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_32_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_32_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_32_decode_impl(module, &data, errors, final);
exit:
@@ -915,7 +915,7 @@ PyDoc_STRVAR(_codecs_utf_32_le_decode__doc__,
"\n");
#define _CODECS_UTF_32_LE_DECODE_METHODDEF \
- {"utf_32_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_decode, METH_FASTCALL, _codecs_utf_32_le_decode__doc__},
+ {"utf_32_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_decode, METH_FASTCALL, _codecs_utf_32_le_decode__doc__},
static PyObject *
_codecs_utf_32_le_decode_impl(PyObject *module, Py_buffer *data,
@@ -929,50 +929,50 @@ _codecs_utf_32_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t nar
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_32_le_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_32_le_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_32_le_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_32_le_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_32_le_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_32_le_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_32_le_decode_impl(module, &data, errors, final);
exit:
@@ -990,7 +990,7 @@ PyDoc_STRVAR(_codecs_utf_32_be_decode__doc__,
"\n");
#define _CODECS_UTF_32_BE_DECODE_METHODDEF \
- {"utf_32_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_decode, METH_FASTCALL, _codecs_utf_32_be_decode__doc__},
+ {"utf_32_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_decode, METH_FASTCALL, _codecs_utf_32_be_decode__doc__},
static PyObject *
_codecs_utf_32_be_decode_impl(PyObject *module, Py_buffer *data,
@@ -1004,50 +1004,50 @@ _codecs_utf_32_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t nar
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("utf_32_be_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_32_be_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_32_be_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_32_be_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_32_be_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_32_be_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_32_be_decode_impl(module, &data, errors, final);
exit:
@@ -1066,7 +1066,7 @@ PyDoc_STRVAR(_codecs_utf_32_ex_decode__doc__,
"\n");
#define _CODECS_UTF_32_EX_DECODE_METHODDEF \
- {"utf_32_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_ex_decode, METH_FASTCALL, _codecs_utf_32_ex_decode__doc__},
+ {"utf_32_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_ex_decode, METH_FASTCALL, _codecs_utf_32_ex_decode__doc__},
static PyObject *
_codecs_utf_32_ex_decode_impl(PyObject *module, Py_buffer *data,
@@ -1081,62 +1081,62 @@ _codecs_utf_32_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t nar
int byteorder = 0;
int final = 0;
- if (!_PyArg_CheckPositional("utf_32_ex_decode", nargs, 1, 4)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("utf_32_ex_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_32_ex_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- byteorder = _PyLong_AsInt(args[2]);
- if (byteorder == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 4) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[3]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_32_ex_decode", nargs, 1, 4)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("utf_32_ex_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_32_ex_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ byteorder = _PyLong_AsInt(args[2]);
+ if (byteorder == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[3]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_32_ex_decode_impl(module, &data, errors, byteorder, final);
exit:
@@ -1149,16 +1149,16 @@ exit:
}
PyDoc_STRVAR(_codecs_unicode_escape_decode__doc__,
-"unicode_escape_decode($module, data, errors=None, final=True, /)\n"
+"unicode_escape_decode($module, data, errors=None, final=True, /)\n"
"--\n"
"\n");
#define _CODECS_UNICODE_ESCAPE_DECODE_METHODDEF \
- {"unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_decode, METH_FASTCALL, _codecs_unicode_escape_decode__doc__},
+ {"unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_decode, METH_FASTCALL, _codecs_unicode_escape_decode__doc__},
static PyObject *
_codecs_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
- const char *errors, int final);
+ const char *errors, int final);
static PyObject *
_codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
@@ -1166,63 +1166,63 @@ _codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
const char *errors = NULL;
- int final = 1;
-
- if (!_PyArg_CheckPositional("unicode_escape_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyUnicode_Check(args[0])) {
- Py_ssize_t len;
- const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
- if (ptr == NULL) {
- goto exit;
- }
- PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
- }
- else { /* any bytes-like object */
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("unicode_escape_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("unicode_escape_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _codecs_unicode_escape_decode_impl(module, &data, errors, final);
+ int final = 1;
+
+ if (!_PyArg_CheckPositional("unicode_escape_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyUnicode_Check(args[0])) {
+ Py_ssize_t len;
+ const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
+ if (ptr == NULL) {
+ goto exit;
+ }
+ PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
+ }
+ else { /* any bytes-like object */
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("unicode_escape_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("unicode_escape_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _codecs_unicode_escape_decode_impl(module, &data, errors, final);
exit:
/* Cleanup for data */
@@ -1234,16 +1234,16 @@ exit:
}
PyDoc_STRVAR(_codecs_raw_unicode_escape_decode__doc__,
-"raw_unicode_escape_decode($module, data, errors=None, final=True, /)\n"
+"raw_unicode_escape_decode($module, data, errors=None, final=True, /)\n"
"--\n"
"\n");
#define _CODECS_RAW_UNICODE_ESCAPE_DECODE_METHODDEF \
- {"raw_unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_decode, METH_FASTCALL, _codecs_raw_unicode_escape_decode__doc__},
+ {"raw_unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_decode, METH_FASTCALL, _codecs_raw_unicode_escape_decode__doc__},
static PyObject *
_codecs_raw_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
- const char *errors, int final);
+ const char *errors, int final);
static PyObject *
_codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
@@ -1251,63 +1251,63 @@ _codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ss
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
const char *errors = NULL;
- int final = 1;
-
- if (!_PyArg_CheckPositional("raw_unicode_escape_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyUnicode_Check(args[0])) {
- Py_ssize_t len;
- const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
- if (ptr == NULL) {
- goto exit;
- }
- PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
- }
- else { /* any bytes-like object */
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("raw_unicode_escape_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("raw_unicode_escape_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _codecs_raw_unicode_escape_decode_impl(module, &data, errors, final);
+ int final = 1;
+
+ if (!_PyArg_CheckPositional("raw_unicode_escape_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyUnicode_Check(args[0])) {
+ Py_ssize_t len;
+ const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
+ if (ptr == NULL) {
+ goto exit;
+ }
+ PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
+ }
+ else { /* any bytes-like object */
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("raw_unicode_escape_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("raw_unicode_escape_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _codecs_raw_unicode_escape_decode_impl(module, &data, errors, final);
exit:
/* Cleanup for data */
@@ -1324,7 +1324,7 @@ PyDoc_STRVAR(_codecs_latin_1_decode__doc__,
"\n");
#define _CODECS_LATIN_1_DECODE_METHODDEF \
- {"latin_1_decode", (PyCFunction)(void(*)(void))_codecs_latin_1_decode, METH_FASTCALL, _codecs_latin_1_decode__doc__},
+ {"latin_1_decode", (PyCFunction)(void(*)(void))_codecs_latin_1_decode, METH_FASTCALL, _codecs_latin_1_decode__doc__},
static PyObject *
_codecs_latin_1_decode_impl(PyObject *module, Py_buffer *data,
@@ -1337,38 +1337,38 @@ _codecs_latin_1_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs
Py_buffer data = {NULL, NULL};
const char *errors = NULL;
- if (!_PyArg_CheckPositional("latin_1_decode", nargs, 1, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("latin_1_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("latin_1_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("latin_1_decode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("latin_1_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("latin_1_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_latin_1_decode_impl(module, &data, errors);
exit:
@@ -1386,7 +1386,7 @@ PyDoc_STRVAR(_codecs_ascii_decode__doc__,
"\n");
#define _CODECS_ASCII_DECODE_METHODDEF \
- {"ascii_decode", (PyCFunction)(void(*)(void))_codecs_ascii_decode, METH_FASTCALL, _codecs_ascii_decode__doc__},
+ {"ascii_decode", (PyCFunction)(void(*)(void))_codecs_ascii_decode, METH_FASTCALL, _codecs_ascii_decode__doc__},
static PyObject *
_codecs_ascii_decode_impl(PyObject *module, Py_buffer *data,
@@ -1399,38 +1399,38 @@ _codecs_ascii_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer data = {NULL, NULL};
const char *errors = NULL;
- if (!_PyArg_CheckPositional("ascii_decode", nargs, 1, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("ascii_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("ascii_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("ascii_decode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("ascii_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("ascii_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_ascii_decode_impl(module, &data, errors);
exit:
@@ -1448,7 +1448,7 @@ PyDoc_STRVAR(_codecs_charmap_decode__doc__,
"\n");
#define _CODECS_CHARMAP_DECODE_METHODDEF \
- {"charmap_decode", (PyCFunction)(void(*)(void))_codecs_charmap_decode, METH_FASTCALL, _codecs_charmap_decode__doc__},
+ {"charmap_decode", (PyCFunction)(void(*)(void))_codecs_charmap_decode, METH_FASTCALL, _codecs_charmap_decode__doc__},
static PyObject *
_codecs_charmap_decode_impl(PyObject *module, Py_buffer *data,
@@ -1460,44 +1460,44 @@ _codecs_charmap_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
const char *errors = NULL;
- PyObject *mapping = Py_None;
-
- if (!_PyArg_CheckPositional("charmap_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("charmap_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("charmap_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- mapping = args[2];
-skip_optional:
+ PyObject *mapping = Py_None;
+
+ if (!_PyArg_CheckPositional("charmap_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("charmap_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("charmap_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ mapping = args[2];
+skip_optional:
return_value = _codecs_charmap_decode_impl(module, &data, errors, mapping);
exit:
@@ -1517,7 +1517,7 @@ PyDoc_STRVAR(_codecs_mbcs_decode__doc__,
"\n");
#define _CODECS_MBCS_DECODE_METHODDEF \
- {"mbcs_decode", (PyCFunction)(void(*)(void))_codecs_mbcs_decode, METH_FASTCALL, _codecs_mbcs_decode__doc__},
+ {"mbcs_decode", (PyCFunction)(void(*)(void))_codecs_mbcs_decode, METH_FASTCALL, _codecs_mbcs_decode__doc__},
static PyObject *
_codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,
@@ -1531,50 +1531,50 @@ _codecs_mbcs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("mbcs_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("mbcs_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("mbcs_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("mbcs_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("mbcs_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("mbcs_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_mbcs_decode_impl(module, &data, errors, final);
exit:
@@ -1596,7 +1596,7 @@ PyDoc_STRVAR(_codecs_oem_decode__doc__,
"\n");
#define _CODECS_OEM_DECODE_METHODDEF \
- {"oem_decode", (PyCFunction)(void(*)(void))_codecs_oem_decode, METH_FASTCALL, _codecs_oem_decode__doc__},
+ {"oem_decode", (PyCFunction)(void(*)(void))_codecs_oem_decode, METH_FASTCALL, _codecs_oem_decode__doc__},
static PyObject *
_codecs_oem_decode_impl(PyObject *module, Py_buffer *data,
@@ -1610,50 +1610,50 @@ _codecs_oem_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("oem_decode", nargs, 1, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("oem_decode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("oem_decode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[2]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("oem_decode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("oem_decode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("oem_decode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[2]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_oem_decode_impl(module, &data, errors, final);
exit:
@@ -1675,7 +1675,7 @@ PyDoc_STRVAR(_codecs_code_page_decode__doc__,
"\n");
#define _CODECS_CODE_PAGE_DECODE_METHODDEF \
- {"code_page_decode", (PyCFunction)(void(*)(void))_codecs_code_page_decode, METH_FASTCALL, _codecs_code_page_decode__doc__},
+ {"code_page_decode", (PyCFunction)(void(*)(void))_codecs_code_page_decode, METH_FASTCALL, _codecs_code_page_decode__doc__},
static PyObject *
_codecs_code_page_decode_impl(PyObject *module, int codepage,
@@ -1690,59 +1690,59 @@ _codecs_code_page_decode(PyObject *module, PyObject *const *args, Py_ssize_t nar
const char *errors = NULL;
int final = 0;
- if (!_PyArg_CheckPositional("code_page_decode", nargs, 2, 4)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- codepage = _PyLong_AsInt(args[0]);
- if (codepage == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("code_page_decode", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (args[2] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[2])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("code_page_decode", "argument 3", "str or None", args[2]);
- goto exit;
- }
- if (nargs < 4) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- final = _PyLong_AsInt(args[3]);
- if (final == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("code_page_decode", nargs, 2, 4)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ codepage = _PyLong_AsInt(args[0]);
+ if (codepage == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("code_page_decode", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (args[2] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[2])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("code_page_decode", "argument 3", "str or None", args[2]);
+ goto exit;
+ }
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ final = _PyLong_AsInt(args[3]);
+ if (final == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_code_page_decode_impl(module, codepage, &data, errors, final);
exit:
@@ -1762,7 +1762,7 @@ PyDoc_STRVAR(_codecs_readbuffer_encode__doc__,
"\n");
#define _CODECS_READBUFFER_ENCODE_METHODDEF \
- {"readbuffer_encode", (PyCFunction)(void(*)(void))_codecs_readbuffer_encode, METH_FASTCALL, _codecs_readbuffer_encode__doc__},
+ {"readbuffer_encode", (PyCFunction)(void(*)(void))_codecs_readbuffer_encode, METH_FASTCALL, _codecs_readbuffer_encode__doc__},
static PyObject *
_codecs_readbuffer_encode_impl(PyObject *module, Py_buffer *data,
@@ -1775,48 +1775,48 @@ _codecs_readbuffer_encode(PyObject *module, PyObject *const *args, Py_ssize_t na
Py_buffer data = {NULL, NULL};
const char *errors = NULL;
- if (!_PyArg_CheckPositional("readbuffer_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (PyUnicode_Check(args[0])) {
- Py_ssize_t len;
- const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
- if (ptr == NULL) {
- goto exit;
- }
- PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
- }
- else { /* any bytes-like object */
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("readbuffer_encode", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("readbuffer_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("readbuffer_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyUnicode_Check(args[0])) {
+ Py_ssize_t len;
+ const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
+ if (ptr == NULL) {
+ goto exit;
+ }
+ PyBuffer_FillInfo(&data, args[0], (void *)ptr, len, 1, 0);
+ }
+ else { /* any bytes-like object */
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("readbuffer_encode", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("readbuffer_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_readbuffer_encode_impl(module, &data, errors);
exit:
@@ -1834,7 +1834,7 @@ PyDoc_STRVAR(_codecs_utf_7_encode__doc__,
"\n");
#define _CODECS_UTF_7_ENCODE_METHODDEF \
- {"utf_7_encode", (PyCFunction)(void(*)(void))_codecs_utf_7_encode, METH_FASTCALL, _codecs_utf_7_encode__doc__},
+ {"utf_7_encode", (PyCFunction)(void(*)(void))_codecs_utf_7_encode, METH_FASTCALL, _codecs_utf_7_encode__doc__},
static PyObject *
_codecs_utf_7_encode_impl(PyObject *module, PyObject *str,
@@ -1847,39 +1847,39 @@ _codecs_utf_7_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("utf_7_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_7_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_7_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_7_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_7_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_7_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_7_encode_impl(module, str, errors);
exit:
@@ -1892,7 +1892,7 @@ PyDoc_STRVAR(_codecs_utf_8_encode__doc__,
"\n");
#define _CODECS_UTF_8_ENCODE_METHODDEF \
- {"utf_8_encode", (PyCFunction)(void(*)(void))_codecs_utf_8_encode, METH_FASTCALL, _codecs_utf_8_encode__doc__},
+ {"utf_8_encode", (PyCFunction)(void(*)(void))_codecs_utf_8_encode, METH_FASTCALL, _codecs_utf_8_encode__doc__},
static PyObject *
_codecs_utf_8_encode_impl(PyObject *module, PyObject *str,
@@ -1905,39 +1905,39 @@ _codecs_utf_8_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("utf_8_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_8_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_8_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_8_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_8_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_8_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_8_encode_impl(module, str, errors);
exit:
@@ -1950,7 +1950,7 @@ PyDoc_STRVAR(_codecs_utf_16_encode__doc__,
"\n");
#define _CODECS_UTF_16_ENCODE_METHODDEF \
- {"utf_16_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_encode, METH_FASTCALL, _codecs_utf_16_encode__doc__},
+ {"utf_16_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_encode, METH_FASTCALL, _codecs_utf_16_encode__doc__},
static PyObject *
_codecs_utf_16_encode_impl(PyObject *module, PyObject *str,
@@ -1964,51 +1964,51 @@ _codecs_utf_16_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int byteorder = 0;
- if (!_PyArg_CheckPositional("utf_16_encode", nargs, 1, 3)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_16_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_16_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- byteorder = _PyLong_AsInt(args[2]);
- if (byteorder == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_16_encode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_16_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_16_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ byteorder = _PyLong_AsInt(args[2]);
+ if (byteorder == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_16_encode_impl(module, str, errors, byteorder);
exit:
@@ -2021,7 +2021,7 @@ PyDoc_STRVAR(_codecs_utf_16_le_encode__doc__,
"\n");
#define _CODECS_UTF_16_LE_ENCODE_METHODDEF \
- {"utf_16_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_encode, METH_FASTCALL, _codecs_utf_16_le_encode__doc__},
+ {"utf_16_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_encode, METH_FASTCALL, _codecs_utf_16_le_encode__doc__},
static PyObject *
_codecs_utf_16_le_encode_impl(PyObject *module, PyObject *str,
@@ -2034,39 +2034,39 @@ _codecs_utf_16_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t nar
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("utf_16_le_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_16_le_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_16_le_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_16_le_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_16_le_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_16_le_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_16_le_encode_impl(module, str, errors);
exit:
@@ -2079,7 +2079,7 @@ PyDoc_STRVAR(_codecs_utf_16_be_encode__doc__,
"\n");
#define _CODECS_UTF_16_BE_ENCODE_METHODDEF \
- {"utf_16_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_encode, METH_FASTCALL, _codecs_utf_16_be_encode__doc__},
+ {"utf_16_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_encode, METH_FASTCALL, _codecs_utf_16_be_encode__doc__},
static PyObject *
_codecs_utf_16_be_encode_impl(PyObject *module, PyObject *str,
@@ -2092,39 +2092,39 @@ _codecs_utf_16_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t nar
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("utf_16_be_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_16_be_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_16_be_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_16_be_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_16_be_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_16_be_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_16_be_encode_impl(module, str, errors);
exit:
@@ -2137,7 +2137,7 @@ PyDoc_STRVAR(_codecs_utf_32_encode__doc__,
"\n");
#define _CODECS_UTF_32_ENCODE_METHODDEF \
- {"utf_32_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_encode, METH_FASTCALL, _codecs_utf_32_encode__doc__},
+ {"utf_32_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_encode, METH_FASTCALL, _codecs_utf_32_encode__doc__},
static PyObject *
_codecs_utf_32_encode_impl(PyObject *module, PyObject *str,
@@ -2151,51 +2151,51 @@ _codecs_utf_32_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *errors = NULL;
int byteorder = 0;
- if (!_PyArg_CheckPositional("utf_32_encode", nargs, 1, 3)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_32_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_32_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- byteorder = _PyLong_AsInt(args[2]);
- if (byteorder == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_32_encode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_32_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_32_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ byteorder = _PyLong_AsInt(args[2]);
+ if (byteorder == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_32_encode_impl(module, str, errors, byteorder);
exit:
@@ -2208,7 +2208,7 @@ PyDoc_STRVAR(_codecs_utf_32_le_encode__doc__,
"\n");
#define _CODECS_UTF_32_LE_ENCODE_METHODDEF \
- {"utf_32_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_encode, METH_FASTCALL, _codecs_utf_32_le_encode__doc__},
+ {"utf_32_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_encode, METH_FASTCALL, _codecs_utf_32_le_encode__doc__},
static PyObject *
_codecs_utf_32_le_encode_impl(PyObject *module, PyObject *str,
@@ -2221,39 +2221,39 @@ _codecs_utf_32_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t nar
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("utf_32_le_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_32_le_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_32_le_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_32_le_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_32_le_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_32_le_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_32_le_encode_impl(module, str, errors);
exit:
@@ -2266,7 +2266,7 @@ PyDoc_STRVAR(_codecs_utf_32_be_encode__doc__,
"\n");
#define _CODECS_UTF_32_BE_ENCODE_METHODDEF \
- {"utf_32_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_encode, METH_FASTCALL, _codecs_utf_32_be_encode__doc__},
+ {"utf_32_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_encode, METH_FASTCALL, _codecs_utf_32_be_encode__doc__},
static PyObject *
_codecs_utf_32_be_encode_impl(PyObject *module, PyObject *str,
@@ -2279,39 +2279,39 @@ _codecs_utf_32_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t nar
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("utf_32_be_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("utf_32_be_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("utf_32_be_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("utf_32_be_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("utf_32_be_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("utf_32_be_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_utf_32_be_encode_impl(module, str, errors);
exit:
@@ -2324,7 +2324,7 @@ PyDoc_STRVAR(_codecs_unicode_escape_encode__doc__,
"\n");
#define _CODECS_UNICODE_ESCAPE_ENCODE_METHODDEF \
- {"unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_encode, METH_FASTCALL, _codecs_unicode_escape_encode__doc__},
+ {"unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_encode, METH_FASTCALL, _codecs_unicode_escape_encode__doc__},
static PyObject *
_codecs_unicode_escape_encode_impl(PyObject *module, PyObject *str,
@@ -2337,39 +2337,39 @@ _codecs_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("unicode_escape_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("unicode_escape_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("unicode_escape_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("unicode_escape_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("unicode_escape_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("unicode_escape_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_unicode_escape_encode_impl(module, str, errors);
exit:
@@ -2382,7 +2382,7 @@ PyDoc_STRVAR(_codecs_raw_unicode_escape_encode__doc__,
"\n");
#define _CODECS_RAW_UNICODE_ESCAPE_ENCODE_METHODDEF \
- {"raw_unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_encode, METH_FASTCALL, _codecs_raw_unicode_escape_encode__doc__},
+ {"raw_unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_encode, METH_FASTCALL, _codecs_raw_unicode_escape_encode__doc__},
static PyObject *
_codecs_raw_unicode_escape_encode_impl(PyObject *module, PyObject *str,
@@ -2395,39 +2395,39 @@ _codecs_raw_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ss
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("raw_unicode_escape_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("raw_unicode_escape_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("raw_unicode_escape_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("raw_unicode_escape_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("raw_unicode_escape_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("raw_unicode_escape_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_raw_unicode_escape_encode_impl(module, str, errors);
exit:
@@ -2440,7 +2440,7 @@ PyDoc_STRVAR(_codecs_latin_1_encode__doc__,
"\n");
#define _CODECS_LATIN_1_ENCODE_METHODDEF \
- {"latin_1_encode", (PyCFunction)(void(*)(void))_codecs_latin_1_encode, METH_FASTCALL, _codecs_latin_1_encode__doc__},
+ {"latin_1_encode", (PyCFunction)(void(*)(void))_codecs_latin_1_encode, METH_FASTCALL, _codecs_latin_1_encode__doc__},
static PyObject *
_codecs_latin_1_encode_impl(PyObject *module, PyObject *str,
@@ -2453,39 +2453,39 @@ _codecs_latin_1_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("latin_1_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("latin_1_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("latin_1_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("latin_1_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("latin_1_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("latin_1_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_latin_1_encode_impl(module, str, errors);
exit:
@@ -2498,7 +2498,7 @@ PyDoc_STRVAR(_codecs_ascii_encode__doc__,
"\n");
#define _CODECS_ASCII_ENCODE_METHODDEF \
- {"ascii_encode", (PyCFunction)(void(*)(void))_codecs_ascii_encode, METH_FASTCALL, _codecs_ascii_encode__doc__},
+ {"ascii_encode", (PyCFunction)(void(*)(void))_codecs_ascii_encode, METH_FASTCALL, _codecs_ascii_encode__doc__},
static PyObject *
_codecs_ascii_encode_impl(PyObject *module, PyObject *str,
@@ -2511,39 +2511,39 @@ _codecs_ascii_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("ascii_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("ascii_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("ascii_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("ascii_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("ascii_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("ascii_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_ascii_encode_impl(module, str, errors);
exit:
@@ -2556,7 +2556,7 @@ PyDoc_STRVAR(_codecs_charmap_encode__doc__,
"\n");
#define _CODECS_CHARMAP_ENCODE_METHODDEF \
- {"charmap_encode", (PyCFunction)(void(*)(void))_codecs_charmap_encode, METH_FASTCALL, _codecs_charmap_encode__doc__},
+ {"charmap_encode", (PyCFunction)(void(*)(void))_codecs_charmap_encode, METH_FASTCALL, _codecs_charmap_encode__doc__},
static PyObject *
_codecs_charmap_encode_impl(PyObject *module, PyObject *str,
@@ -2568,45 +2568,45 @@ _codecs_charmap_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs
PyObject *return_value = NULL;
PyObject *str;
const char *errors = NULL;
- PyObject *mapping = Py_None;
-
- if (!_PyArg_CheckPositional("charmap_encode", nargs, 1, 3)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("charmap_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("charmap_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- mapping = args[2];
-skip_optional:
+ PyObject *mapping = Py_None;
+
+ if (!_PyArg_CheckPositional("charmap_encode", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("charmap_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("charmap_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ mapping = args[2];
+skip_optional:
return_value = _codecs_charmap_encode_impl(module, str, errors, mapping);
exit:
@@ -2630,14 +2630,14 @@ _codecs_charmap_build(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *map;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("charmap_build", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("charmap_build", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- map = arg;
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ map = arg;
return_value = _codecs_charmap_build_impl(module, map);
exit:
@@ -2652,7 +2652,7 @@ PyDoc_STRVAR(_codecs_mbcs_encode__doc__,
"\n");
#define _CODECS_MBCS_ENCODE_METHODDEF \
- {"mbcs_encode", (PyCFunction)(void(*)(void))_codecs_mbcs_encode, METH_FASTCALL, _codecs_mbcs_encode__doc__},
+ {"mbcs_encode", (PyCFunction)(void(*)(void))_codecs_mbcs_encode, METH_FASTCALL, _codecs_mbcs_encode__doc__},
static PyObject *
_codecs_mbcs_encode_impl(PyObject *module, PyObject *str, const char *errors);
@@ -2664,39 +2664,39 @@ _codecs_mbcs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("mbcs_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("mbcs_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("mbcs_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("mbcs_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("mbcs_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("mbcs_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_mbcs_encode_impl(module, str, errors);
exit:
@@ -2713,7 +2713,7 @@ PyDoc_STRVAR(_codecs_oem_encode__doc__,
"\n");
#define _CODECS_OEM_ENCODE_METHODDEF \
- {"oem_encode", (PyCFunction)(void(*)(void))_codecs_oem_encode, METH_FASTCALL, _codecs_oem_encode__doc__},
+ {"oem_encode", (PyCFunction)(void(*)(void))_codecs_oem_encode, METH_FASTCALL, _codecs_oem_encode__doc__},
static PyObject *
_codecs_oem_encode_impl(PyObject *module, PyObject *str, const char *errors);
@@ -2725,39 +2725,39 @@ _codecs_oem_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("oem_encode", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("oem_encode", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- str = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (args[1] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("oem_encode", "argument 2", "str or None", args[1]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("oem_encode", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("oem_encode", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ str = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (args[1] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("oem_encode", "argument 2", "str or None", args[1]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_oem_encode_impl(module, str, errors);
exit:
@@ -2774,7 +2774,7 @@ PyDoc_STRVAR(_codecs_code_page_encode__doc__,
"\n");
#define _CODECS_CODE_PAGE_ENCODE_METHODDEF \
- {"code_page_encode", (PyCFunction)(void(*)(void))_codecs_code_page_encode, METH_FASTCALL, _codecs_code_page_encode__doc__},
+ {"code_page_encode", (PyCFunction)(void(*)(void))_codecs_code_page_encode, METH_FASTCALL, _codecs_code_page_encode__doc__},
static PyObject *
_codecs_code_page_encode_impl(PyObject *module, int code_page, PyObject *str,
@@ -2788,48 +2788,48 @@ _codecs_code_page_encode(PyObject *module, PyObject *const *args, Py_ssize_t nar
PyObject *str;
const char *errors = NULL;
- if (!_PyArg_CheckPositional("code_page_encode", nargs, 2, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- code_page = _PyLong_AsInt(args[0]);
- if (code_page == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("code_page_encode", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- str = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- if (args[2] == Py_None) {
- errors = NULL;
- }
- else if (PyUnicode_Check(args[2])) {
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("code_page_encode", "argument 3", "str or None", args[2]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("code_page_encode", nargs, 2, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ code_page = _PyLong_AsInt(args[0]);
+ if (code_page == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("code_page_encode", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ str = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (args[2] == Py_None) {
+ errors = NULL;
+ }
+ else if (PyUnicode_Check(args[2])) {
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[2], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("code_page_encode", "argument 3", "str or None", args[2]);
+ goto exit;
+ }
+skip_optional:
return_value = _codecs_code_page_encode_impl(module, code_page, str, errors);
exit:
@@ -2849,7 +2849,7 @@ PyDoc_STRVAR(_codecs_register_error__doc__,
"error and must return a (replacement, new position) tuple.");
#define _CODECS_REGISTER_ERROR_METHODDEF \
- {"register_error", (PyCFunction)(void(*)(void))_codecs_register_error, METH_FASTCALL, _codecs_register_error__doc__},
+ {"register_error", (PyCFunction)(void(*)(void))_codecs_register_error, METH_FASTCALL, _codecs_register_error__doc__},
static PyObject *
_codecs_register_error_impl(PyObject *module, const char *errors,
@@ -2862,23 +2862,23 @@ _codecs_register_error(PyObject *module, PyObject *const *args, Py_ssize_t nargs
const char *errors;
PyObject *handler;
- if (!_PyArg_CheckPositional("register_error", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("register_error", "argument 1", "str", args[0]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[0], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- handler = args[1];
+ if (!_PyArg_CheckPositional("register_error", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("register_error", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[0], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ handler = args[1];
return_value = _codecs_register_error_impl(module, errors, handler);
exit:
@@ -2906,19 +2906,19 @@ _codecs_lookup_error(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
const char *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("lookup_error", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("lookup_error", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t name_length;
+ name = PyUnicode_AsUTF8AndSize(arg, &name_length);
+ if (name == NULL) {
+ goto exit;
+ }
+ if (strlen(name) != (size_t)name_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t name_length;
- name = PyUnicode_AsUTF8AndSize(arg, &name_length);
- if (name == NULL) {
- goto exit;
- }
- if (strlen(name) != (size_t)name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _codecs_lookup_error_impl(module, name);
exit:
@@ -2948,4 +2948,4 @@ exit:
#ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
#define _CODECS_CODE_PAGE_ENCODE_METHODDEF
#endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
-/*[clinic end generated code: output=eed7dc9312baf252 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=eed7dc9312baf252 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_collectionsmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_collectionsmodule.c.h
index fd2ef8d418..c3ba1a6698 100644
--- a/contrib/tools/python3/src/Modules/clinic/_collectionsmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_collectionsmodule.c.h
@@ -1,76 +1,76 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(_collections__count_elements__doc__,
-"_count_elements($module, mapping, iterable, /)\n"
-"--\n"
-"\n"
-"Count elements in the iterable, updating the mapping");
-
-#define _COLLECTIONS__COUNT_ELEMENTS_METHODDEF \
- {"_count_elements", (PyCFunction)(void(*)(void))_collections__count_elements, METH_FASTCALL, _collections__count_elements__doc__},
-
-static PyObject *
-_collections__count_elements_impl(PyObject *module, PyObject *mapping,
- PyObject *iterable);
-
-static PyObject *
-_collections__count_elements(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *mapping;
- PyObject *iterable;
-
- if (!_PyArg_CheckPositional("_count_elements", nargs, 2, 2)) {
- goto exit;
- }
- mapping = args[0];
- iterable = args[1];
- return_value = _collections__count_elements_impl(module, mapping, iterable);
-
-exit:
- return return_value;
-}
-
-static PyObject *
-tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc);
-
-static PyObject *
-tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- Py_ssize_t index;
- PyObject *doc;
-
- if ((type == &tuplegetter_type) &&
- !_PyArg_NoKeywords("_tuplegetter", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("_tuplegetter", PyTuple_GET_SIZE(args), 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(PyTuple_GET_ITEM(args, 0))) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(PyTuple_GET_ITEM(args, 0));
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- index = ival;
- }
- doc = PyTuple_GET_ITEM(args, 1);
- return_value = tuplegetter_new_impl(type, index, doc);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=9d2bfcc9df5faf35 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_collections__count_elements__doc__,
+"_count_elements($module, mapping, iterable, /)\n"
+"--\n"
+"\n"
+"Count elements in the iterable, updating the mapping");
+
+#define _COLLECTIONS__COUNT_ELEMENTS_METHODDEF \
+ {"_count_elements", (PyCFunction)(void(*)(void))_collections__count_elements, METH_FASTCALL, _collections__count_elements__doc__},
+
+static PyObject *
+_collections__count_elements_impl(PyObject *module, PyObject *mapping,
+ PyObject *iterable);
+
+static PyObject *
+_collections__count_elements(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *mapping;
+ PyObject *iterable;
+
+ if (!_PyArg_CheckPositional("_count_elements", nargs, 2, 2)) {
+ goto exit;
+ }
+ mapping = args[0];
+ iterable = args[1];
+ return_value = _collections__count_elements_impl(module, mapping, iterable);
+
+exit:
+ return return_value;
+}
+
+static PyObject *
+tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc);
+
+static PyObject *
+tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t index;
+ PyObject *doc;
+
+ if ((type == &tuplegetter_type) &&
+ !_PyArg_NoKeywords("_tuplegetter", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("_tuplegetter", PyTuple_GET_SIZE(args), 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(PyTuple_GET_ITEM(args, 0))) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(PyTuple_GET_ITEM(args, 0));
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ index = ival;
+ }
+ doc = PyTuple_GET_ITEM(args, 1);
+ return_value = tuplegetter_new_impl(type, index, doc);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=9d2bfcc9df5faf35 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_cryptmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_cryptmodule.c.h
index a4de347bc8..ea91d7c130 100644
--- a/contrib/tools/python3/src/Modules/clinic/_cryptmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_cryptmodule.c.h
@@ -14,7 +14,7 @@ PyDoc_STRVAR(crypt_crypt__doc__,
"results for a given *word*.");
#define CRYPT_CRYPT_METHODDEF \
- {"crypt", (PyCFunction)(void(*)(void))crypt_crypt, METH_FASTCALL, crypt_crypt__doc__},
+ {"crypt", (PyCFunction)(void(*)(void))crypt_crypt, METH_FASTCALL, crypt_crypt__doc__},
static PyObject *
crypt_crypt_impl(PyObject *module, const char *word, const char *salt);
@@ -26,38 +26,38 @@ crypt_crypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *word;
const char *salt;
- if (!_PyArg_CheckPositional("crypt", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("crypt", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("crypt", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t word_length;
+ word = PyUnicode_AsUTF8AndSize(args[0], &word_length);
+ if (word == NULL) {
+ goto exit;
+ }
+ if (strlen(word) != (size_t)word_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("crypt", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t salt_length;
+ salt = PyUnicode_AsUTF8AndSize(args[1], &salt_length);
+ if (salt == NULL) {
+ goto exit;
+ }
+ if (strlen(salt) != (size_t)salt_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("crypt", "argument 1", "str", args[0]);
- goto exit;
- }
- Py_ssize_t word_length;
- word = PyUnicode_AsUTF8AndSize(args[0], &word_length);
- if (word == NULL) {
- goto exit;
- }
- if (strlen(word) != (size_t)word_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("crypt", "argument 2", "str", args[1]);
- goto exit;
- }
- Py_ssize_t salt_length;
- salt = PyUnicode_AsUTF8AndSize(args[1], &salt_length);
- if (salt == NULL) {
- goto exit;
- }
- if (strlen(salt) != (size_t)salt_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = crypt_crypt_impl(module, word, salt);
exit:
return return_value;
}
-/*[clinic end generated code: output=549de0d43b030126 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=549de0d43b030126 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_curses_panel.c.h b/contrib/tools/python3/src/Modules/clinic/_curses_panel.c.h
index 9bb51f2880..9840ed86e7 100644
--- a/contrib/tools/python3/src/Modules/clinic/_curses_panel.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_curses_panel.c.h
@@ -1,338 +1,338 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(_curses_panel_panel_bottom__doc__,
-"bottom($self, /)\n"
-"--\n"
-"\n"
-"Push the panel to the bottom of the stack.");
-
-#define _CURSES_PANEL_PANEL_BOTTOM_METHODDEF \
- {"bottom", (PyCFunction)_curses_panel_panel_bottom, METH_NOARGS, _curses_panel_panel_bottom__doc__},
-
-static PyObject *
-_curses_panel_panel_bottom_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_bottom(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_bottom_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_hide__doc__,
-"hide($self, /)\n"
-"--\n"
-"\n"
-"Hide the panel.\n"
-"\n"
-"This does not delete the object, it just makes the window on screen invisible.");
-
-#define _CURSES_PANEL_PANEL_HIDE_METHODDEF \
- {"hide", (PyCFunction)_curses_panel_panel_hide, METH_NOARGS, _curses_panel_panel_hide__doc__},
-
-static PyObject *
-_curses_panel_panel_hide_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_hide(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_hide_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_show__doc__,
-"show($self, /)\n"
-"--\n"
-"\n"
-"Display the panel (which might have been hidden).");
-
-#define _CURSES_PANEL_PANEL_SHOW_METHODDEF \
- {"show", (PyCFunction)_curses_panel_panel_show, METH_NOARGS, _curses_panel_panel_show__doc__},
-
-static PyObject *
-_curses_panel_panel_show_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_show(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_show_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_top__doc__,
-"top($self, /)\n"
-"--\n"
-"\n"
-"Push panel to the top of the stack.");
-
-#define _CURSES_PANEL_PANEL_TOP_METHODDEF \
- {"top", (PyCFunction)_curses_panel_panel_top, METH_NOARGS, _curses_panel_panel_top__doc__},
-
-static PyObject *
-_curses_panel_panel_top_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_top(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_top_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_above__doc__,
-"above($self, /)\n"
-"--\n"
-"\n"
-"Return the panel above the current panel.");
-
-#define _CURSES_PANEL_PANEL_ABOVE_METHODDEF \
- {"above", (PyCFunction)_curses_panel_panel_above, METH_NOARGS, _curses_panel_panel_above__doc__},
-
-static PyObject *
-_curses_panel_panel_above_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_above(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_above_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_below__doc__,
-"below($self, /)\n"
-"--\n"
-"\n"
-"Return the panel below the current panel.");
-
-#define _CURSES_PANEL_PANEL_BELOW_METHODDEF \
- {"below", (PyCFunction)_curses_panel_panel_below, METH_NOARGS, _curses_panel_panel_below__doc__},
-
-static PyObject *
-_curses_panel_panel_below_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_below(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_below_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_hidden__doc__,
-"hidden($self, /)\n"
-"--\n"
-"\n"
-"Return True if the panel is hidden (not visible), False otherwise.");
-
-#define _CURSES_PANEL_PANEL_HIDDEN_METHODDEF \
- {"hidden", (PyCFunction)_curses_panel_panel_hidden, METH_NOARGS, _curses_panel_panel_hidden__doc__},
-
-static PyObject *
-_curses_panel_panel_hidden_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_hidden(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_hidden_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_move__doc__,
-"move($self, y, x, /)\n"
-"--\n"
-"\n"
-"Move the panel to the screen coordinates (y, x).");
-
-#define _CURSES_PANEL_PANEL_MOVE_METHODDEF \
- {"move", (PyCFunction)(void(*)(void))_curses_panel_panel_move, METH_FASTCALL, _curses_panel_panel_move__doc__},
-
-static PyObject *
-_curses_panel_panel_move_impl(PyCursesPanelObject *self, int y, int x);
-
-static PyObject *
-_curses_panel_panel_move(PyCursesPanelObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int y;
- int x;
-
- if (!_PyArg_CheckPositional("move", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- y = _PyLong_AsInt(args[0]);
- if (y == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- x = _PyLong_AsInt(args[1]);
- if (x == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_panel_panel_move_impl(self, y, x);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_panel_panel_window__doc__,
-"window($self, /)\n"
-"--\n"
-"\n"
-"Return the window object associated with the panel.");
-
-#define _CURSES_PANEL_PANEL_WINDOW_METHODDEF \
- {"window", (PyCFunction)_curses_panel_panel_window, METH_NOARGS, _curses_panel_panel_window__doc__},
-
-static PyObject *
-_curses_panel_panel_window_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_window(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_window_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_panel_replace__doc__,
-"replace($self, win, /)\n"
-"--\n"
-"\n"
-"Change the window associated with the panel to the window win.");
-
-#define _CURSES_PANEL_PANEL_REPLACE_METHODDEF \
- {"replace", (PyCFunction)_curses_panel_panel_replace, METH_O, _curses_panel_panel_replace__doc__},
-
-static PyObject *
-_curses_panel_panel_replace_impl(PyCursesPanelObject *self,
- PyCursesWindowObject *win);
-
-static PyObject *
-_curses_panel_panel_replace(PyCursesPanelObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyCursesWindowObject *win;
-
- if (!PyObject_TypeCheck(arg, &PyCursesWindow_Type)) {
- _PyArg_BadArgument("replace", "argument", (&PyCursesWindow_Type)->tp_name, arg);
- goto exit;
- }
- win = (PyCursesWindowObject *)arg;
- return_value = _curses_panel_panel_replace_impl(self, win);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_panel_panel_set_userptr__doc__,
-"set_userptr($self, obj, /)\n"
-"--\n"
-"\n"
-"Set the panel\'s user pointer to obj.");
-
-#define _CURSES_PANEL_PANEL_SET_USERPTR_METHODDEF \
- {"set_userptr", (PyCFunction)_curses_panel_panel_set_userptr, METH_O, _curses_panel_panel_set_userptr__doc__},
-
-PyDoc_STRVAR(_curses_panel_panel_userptr__doc__,
-"userptr($self, /)\n"
-"--\n"
-"\n"
-"Return the user pointer for the panel.");
-
-#define _CURSES_PANEL_PANEL_USERPTR_METHODDEF \
- {"userptr", (PyCFunction)_curses_panel_panel_userptr, METH_NOARGS, _curses_panel_panel_userptr__doc__},
-
-static PyObject *
-_curses_panel_panel_userptr_impl(PyCursesPanelObject *self);
-
-static PyObject *
-_curses_panel_panel_userptr(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_panel_userptr_impl(self);
-}
-
-PyDoc_STRVAR(_curses_panel_bottom_panel__doc__,
-"bottom_panel($module, /)\n"
-"--\n"
-"\n"
-"Return the bottom panel in the panel stack.");
-
-#define _CURSES_PANEL_BOTTOM_PANEL_METHODDEF \
- {"bottom_panel", (PyCFunction)_curses_panel_bottom_panel, METH_NOARGS, _curses_panel_bottom_panel__doc__},
-
-static PyObject *
-_curses_panel_bottom_panel_impl(PyObject *module);
-
-static PyObject *
-_curses_panel_bottom_panel(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_bottom_panel_impl(module);
-}
-
-PyDoc_STRVAR(_curses_panel_new_panel__doc__,
-"new_panel($module, win, /)\n"
-"--\n"
-"\n"
-"Return a panel object, associating it with the given window win.");
-
-#define _CURSES_PANEL_NEW_PANEL_METHODDEF \
- {"new_panel", (PyCFunction)_curses_panel_new_panel, METH_O, _curses_panel_new_panel__doc__},
-
-static PyObject *
-_curses_panel_new_panel_impl(PyObject *module, PyCursesWindowObject *win);
-
-static PyObject *
-_curses_panel_new_panel(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyCursesWindowObject *win;
-
- if (!PyObject_TypeCheck(arg, &PyCursesWindow_Type)) {
- _PyArg_BadArgument("new_panel", "argument", (&PyCursesWindow_Type)->tp_name, arg);
- goto exit;
- }
- win = (PyCursesWindowObject *)arg;
- return_value = _curses_panel_new_panel_impl(module, win);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_panel_top_panel__doc__,
-"top_panel($module, /)\n"
-"--\n"
-"\n"
-"Return the top panel in the panel stack.");
-
-#define _CURSES_PANEL_TOP_PANEL_METHODDEF \
- {"top_panel", (PyCFunction)_curses_panel_top_panel, METH_NOARGS, _curses_panel_top_panel__doc__},
-
-static PyObject *
-_curses_panel_top_panel_impl(PyObject *module);
-
-static PyObject *
-_curses_panel_top_panel(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_top_panel_impl(module);
-}
-
-PyDoc_STRVAR(_curses_panel_update_panels__doc__,
-"update_panels($module, /)\n"
-"--\n"
-"\n"
-"Updates the virtual screen after changes in the panel stack.\n"
-"\n"
-"This does not call curses.doupdate(), so you\'ll have to do this yourself.");
-
-#define _CURSES_PANEL_UPDATE_PANELS_METHODDEF \
- {"update_panels", (PyCFunction)_curses_panel_update_panels, METH_NOARGS, _curses_panel_update_panels__doc__},
-
-static PyObject *
-_curses_panel_update_panels_impl(PyObject *module);
-
-static PyObject *
-_curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_panel_update_panels_impl(module);
-}
-/*[clinic end generated code: output=d96dc1fd68e898d9 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_curses_panel_panel_bottom__doc__,
+"bottom($self, /)\n"
+"--\n"
+"\n"
+"Push the panel to the bottom of the stack.");
+
+#define _CURSES_PANEL_PANEL_BOTTOM_METHODDEF \
+ {"bottom", (PyCFunction)_curses_panel_panel_bottom, METH_NOARGS, _curses_panel_panel_bottom__doc__},
+
+static PyObject *
+_curses_panel_panel_bottom_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_bottom(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_bottom_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_hide__doc__,
+"hide($self, /)\n"
+"--\n"
+"\n"
+"Hide the panel.\n"
+"\n"
+"This does not delete the object, it just makes the window on screen invisible.");
+
+#define _CURSES_PANEL_PANEL_HIDE_METHODDEF \
+ {"hide", (PyCFunction)_curses_panel_panel_hide, METH_NOARGS, _curses_panel_panel_hide__doc__},
+
+static PyObject *
+_curses_panel_panel_hide_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_hide(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_hide_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_show__doc__,
+"show($self, /)\n"
+"--\n"
+"\n"
+"Display the panel (which might have been hidden).");
+
+#define _CURSES_PANEL_PANEL_SHOW_METHODDEF \
+ {"show", (PyCFunction)_curses_panel_panel_show, METH_NOARGS, _curses_panel_panel_show__doc__},
+
+static PyObject *
+_curses_panel_panel_show_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_show(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_show_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_top__doc__,
+"top($self, /)\n"
+"--\n"
+"\n"
+"Push panel to the top of the stack.");
+
+#define _CURSES_PANEL_PANEL_TOP_METHODDEF \
+ {"top", (PyCFunction)_curses_panel_panel_top, METH_NOARGS, _curses_panel_panel_top__doc__},
+
+static PyObject *
+_curses_panel_panel_top_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_top(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_top_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_above__doc__,
+"above($self, /)\n"
+"--\n"
+"\n"
+"Return the panel above the current panel.");
+
+#define _CURSES_PANEL_PANEL_ABOVE_METHODDEF \
+ {"above", (PyCFunction)_curses_panel_panel_above, METH_NOARGS, _curses_panel_panel_above__doc__},
+
+static PyObject *
+_curses_panel_panel_above_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_above(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_above_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_below__doc__,
+"below($self, /)\n"
+"--\n"
+"\n"
+"Return the panel below the current panel.");
+
+#define _CURSES_PANEL_PANEL_BELOW_METHODDEF \
+ {"below", (PyCFunction)_curses_panel_panel_below, METH_NOARGS, _curses_panel_panel_below__doc__},
+
+static PyObject *
+_curses_panel_panel_below_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_below(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_below_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_hidden__doc__,
+"hidden($self, /)\n"
+"--\n"
+"\n"
+"Return True if the panel is hidden (not visible), False otherwise.");
+
+#define _CURSES_PANEL_PANEL_HIDDEN_METHODDEF \
+ {"hidden", (PyCFunction)_curses_panel_panel_hidden, METH_NOARGS, _curses_panel_panel_hidden__doc__},
+
+static PyObject *
+_curses_panel_panel_hidden_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_hidden(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_hidden_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_move__doc__,
+"move($self, y, x, /)\n"
+"--\n"
+"\n"
+"Move the panel to the screen coordinates (y, x).");
+
+#define _CURSES_PANEL_PANEL_MOVE_METHODDEF \
+ {"move", (PyCFunction)(void(*)(void))_curses_panel_panel_move, METH_FASTCALL, _curses_panel_panel_move__doc__},
+
+static PyObject *
+_curses_panel_panel_move_impl(PyCursesPanelObject *self, int y, int x);
+
+static PyObject *
+_curses_panel_panel_move(PyCursesPanelObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int y;
+ int x;
+
+ if (!_PyArg_CheckPositional("move", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ y = _PyLong_AsInt(args[0]);
+ if (y == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ x = _PyLong_AsInt(args[1]);
+ if (x == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_panel_panel_move_impl(self, y, x);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_panel_panel_window__doc__,
+"window($self, /)\n"
+"--\n"
+"\n"
+"Return the window object associated with the panel.");
+
+#define _CURSES_PANEL_PANEL_WINDOW_METHODDEF \
+ {"window", (PyCFunction)_curses_panel_panel_window, METH_NOARGS, _curses_panel_panel_window__doc__},
+
+static PyObject *
+_curses_panel_panel_window_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_window(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_window_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_panel_replace__doc__,
+"replace($self, win, /)\n"
+"--\n"
+"\n"
+"Change the window associated with the panel to the window win.");
+
+#define _CURSES_PANEL_PANEL_REPLACE_METHODDEF \
+ {"replace", (PyCFunction)_curses_panel_panel_replace, METH_O, _curses_panel_panel_replace__doc__},
+
+static PyObject *
+_curses_panel_panel_replace_impl(PyCursesPanelObject *self,
+ PyCursesWindowObject *win);
+
+static PyObject *
+_curses_panel_panel_replace(PyCursesPanelObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyCursesWindowObject *win;
+
+ if (!PyObject_TypeCheck(arg, &PyCursesWindow_Type)) {
+ _PyArg_BadArgument("replace", "argument", (&PyCursesWindow_Type)->tp_name, arg);
+ goto exit;
+ }
+ win = (PyCursesWindowObject *)arg;
+ return_value = _curses_panel_panel_replace_impl(self, win);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_panel_panel_set_userptr__doc__,
+"set_userptr($self, obj, /)\n"
+"--\n"
+"\n"
+"Set the panel\'s user pointer to obj.");
+
+#define _CURSES_PANEL_PANEL_SET_USERPTR_METHODDEF \
+ {"set_userptr", (PyCFunction)_curses_panel_panel_set_userptr, METH_O, _curses_panel_panel_set_userptr__doc__},
+
+PyDoc_STRVAR(_curses_panel_panel_userptr__doc__,
+"userptr($self, /)\n"
+"--\n"
+"\n"
+"Return the user pointer for the panel.");
+
+#define _CURSES_PANEL_PANEL_USERPTR_METHODDEF \
+ {"userptr", (PyCFunction)_curses_panel_panel_userptr, METH_NOARGS, _curses_panel_panel_userptr__doc__},
+
+static PyObject *
+_curses_panel_panel_userptr_impl(PyCursesPanelObject *self);
+
+static PyObject *
+_curses_panel_panel_userptr(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_panel_userptr_impl(self);
+}
+
+PyDoc_STRVAR(_curses_panel_bottom_panel__doc__,
+"bottom_panel($module, /)\n"
+"--\n"
+"\n"
+"Return the bottom panel in the panel stack.");
+
+#define _CURSES_PANEL_BOTTOM_PANEL_METHODDEF \
+ {"bottom_panel", (PyCFunction)_curses_panel_bottom_panel, METH_NOARGS, _curses_panel_bottom_panel__doc__},
+
+static PyObject *
+_curses_panel_bottom_panel_impl(PyObject *module);
+
+static PyObject *
+_curses_panel_bottom_panel(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_bottom_panel_impl(module);
+}
+
+PyDoc_STRVAR(_curses_panel_new_panel__doc__,
+"new_panel($module, win, /)\n"
+"--\n"
+"\n"
+"Return a panel object, associating it with the given window win.");
+
+#define _CURSES_PANEL_NEW_PANEL_METHODDEF \
+ {"new_panel", (PyCFunction)_curses_panel_new_panel, METH_O, _curses_panel_new_panel__doc__},
+
+static PyObject *
+_curses_panel_new_panel_impl(PyObject *module, PyCursesWindowObject *win);
+
+static PyObject *
+_curses_panel_new_panel(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyCursesWindowObject *win;
+
+ if (!PyObject_TypeCheck(arg, &PyCursesWindow_Type)) {
+ _PyArg_BadArgument("new_panel", "argument", (&PyCursesWindow_Type)->tp_name, arg);
+ goto exit;
+ }
+ win = (PyCursesWindowObject *)arg;
+ return_value = _curses_panel_new_panel_impl(module, win);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_panel_top_panel__doc__,
+"top_panel($module, /)\n"
+"--\n"
+"\n"
+"Return the top panel in the panel stack.");
+
+#define _CURSES_PANEL_TOP_PANEL_METHODDEF \
+ {"top_panel", (PyCFunction)_curses_panel_top_panel, METH_NOARGS, _curses_panel_top_panel__doc__},
+
+static PyObject *
+_curses_panel_top_panel_impl(PyObject *module);
+
+static PyObject *
+_curses_panel_top_panel(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_top_panel_impl(module);
+}
+
+PyDoc_STRVAR(_curses_panel_update_panels__doc__,
+"update_panels($module, /)\n"
+"--\n"
+"\n"
+"Updates the virtual screen after changes in the panel stack.\n"
+"\n"
+"This does not call curses.doupdate(), so you\'ll have to do this yourself.");
+
+#define _CURSES_PANEL_UPDATE_PANELS_METHODDEF \
+ {"update_panels", (PyCFunction)_curses_panel_update_panels, METH_NOARGS, _curses_panel_update_panels__doc__},
+
+static PyObject *
+_curses_panel_update_panels_impl(PyObject *module);
+
+static PyObject *
+_curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_panel_update_panels_impl(module);
+}
+/*[clinic end generated code: output=d96dc1fd68e898d9 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_cursesmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_cursesmodule.c.h
index d9ed058c57..66ffcdfdb3 100644
--- a/contrib/tools/python3/src/Modules/clinic/_cursesmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_cursesmodule.c.h
@@ -2,9 +2,9 @@
preserve
[clinic start generated code]*/
-PyDoc_STRVAR(_curses_window_addch__doc__,
-"addch([y, x,] ch, [attr=_curses.A_NORMAL])\n"
-"Paint the character.\n"
+PyDoc_STRVAR(_curses_window_addch__doc__,
+"addch([y, x,] ch, [attr=_curses.A_NORMAL])\n"
+"Paint the character.\n"
"\n"
" y\n"
" Y-coordinate.\n"
@@ -20,16 +20,16 @@ PyDoc_STRVAR(_curses_window_addch__doc__,
"By default, the character position and attributes are the\n"
"current settings for the window object.");
-#define _CURSES_WINDOW_ADDCH_METHODDEF \
- {"addch", (PyCFunction)_curses_window_addch, METH_VARARGS, _curses_window_addch__doc__},
+#define _CURSES_WINDOW_ADDCH_METHODDEF \
+ {"addch", (PyCFunction)_curses_window_addch, METH_VARARGS, _curses_window_addch__doc__},
static PyObject *
-_curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *ch, int group_right_1,
- long attr);
+_curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *ch, int group_right_1,
+ long attr);
static PyObject *
-_curses_window_addch(PyCursesWindowObject *self, PyObject *args)
+_curses_window_addch(PyCursesWindowObject *self, PyObject *args)
{
PyObject *return_value = NULL;
int group_left_1 = 0;
@@ -37,7 +37,7 @@ _curses_window_addch(PyCursesWindowObject *self, PyObject *args)
int x = 0;
PyObject *ch;
int group_right_1 = 0;
- long attr = A_NORMAL;
+ long attr = A_NORMAL;
switch (PyTuple_GET_SIZE(args)) {
case 1:
@@ -65,4652 +65,4652 @@ _curses_window_addch(PyCursesWindowObject *self, PyObject *args)
group_left_1 = 1;
break;
default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.addch requires 1 to 4 arguments");
+ PyErr_SetString(PyExc_TypeError, "_curses.window.addch requires 1 to 4 arguments");
goto exit;
}
- return_value = _curses_window_addch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
+ return_value = _curses_window_addch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
exit:
return return_value;
}
-
-PyDoc_STRVAR(_curses_window_addstr__doc__,
-"addstr([y, x,] str, [attr])\n"
-"Paint the string.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-" str\n"
-" String to add.\n"
-" attr\n"
-" Attributes for characters.\n"
-"\n"
-"Paint the string str at (y, x) with attributes attr,\n"
-"overwriting anything previously on the display.\n"
-"By default, the character position and attributes are the\n"
-"current settings for the window object.");
-
-#define _CURSES_WINDOW_ADDSTR_METHODDEF \
- {"addstr", (PyCFunction)_curses_window_addstr, METH_VARARGS, _curses_window_addstr__doc__},
-
-static PyObject *
-_curses_window_addstr_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *str, int group_right_1,
- long attr);
-
-static PyObject *
-_curses_window_addstr(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *str;
- int group_right_1 = 0;
- long attr = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 1:
- if (!PyArg_ParseTuple(args, "O:addstr", &str)) {
- goto exit;
- }
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "Ol:addstr", &str, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "iiO:addstr", &y, &x, &str)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOl:addstr", &y, &x, &str, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.addstr requires 1 to 4 arguments");
- goto exit;
- }
- return_value = _curses_window_addstr_impl(self, group_left_1, y, x, str, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_addnstr__doc__,
-"addnstr([y, x,] str, n, [attr])\n"
-"Paint at most n characters of the string.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-" str\n"
-" String to add.\n"
-" n\n"
-" Maximal number of characters.\n"
-" attr\n"
-" Attributes for characters.\n"
-"\n"
-"Paint at most n characters of the string str at (y, x) with\n"
-"attributes attr, overwriting anything previously on the display.\n"
-"By default, the character position and attributes are the\n"
-"current settings for the window object.");
-
-#define _CURSES_WINDOW_ADDNSTR_METHODDEF \
- {"addnstr", (PyCFunction)_curses_window_addnstr, METH_VARARGS, _curses_window_addnstr__doc__},
-
-static PyObject *
-_curses_window_addnstr_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *str, int n,
- int group_right_1, long attr);
-
-static PyObject *
-_curses_window_addnstr(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *str;
- int n;
- int group_right_1 = 0;
- long attr = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "Oi:addnstr", &str, &n)) {
- goto exit;
- }
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "Oil:addnstr", &str, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOi:addnstr", &y, &x, &str, &n)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- case 5:
- if (!PyArg_ParseTuple(args, "iiOil:addnstr", &y, &x, &str, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.addnstr requires 2 to 5 arguments");
- goto exit;
- }
- return_value = _curses_window_addnstr_impl(self, group_left_1, y, x, str, n, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_bkgd__doc__,
-"bkgd($self, ch, attr=_curses.A_NORMAL, /)\n"
-"--\n"
-"\n"
-"Set the background property of the window.\n"
-"\n"
-" ch\n"
-" Background character.\n"
-" attr\n"
-" Background attributes.");
-
-#define _CURSES_WINDOW_BKGD_METHODDEF \
- {"bkgd", (PyCFunction)(void(*)(void))_curses_window_bkgd, METH_FASTCALL, _curses_window_bkgd__doc__},
-
-static PyObject *
-_curses_window_bkgd_impl(PyCursesWindowObject *self, PyObject *ch, long attr);
-
-static PyObject *
-_curses_window_bkgd(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *ch;
- long attr = A_NORMAL;
-
- if (!_PyArg_CheckPositional("bkgd", nargs, 1, 2)) {
- goto exit;
- }
- ch = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- attr = PyLong_AsLong(args[1]);
- if (attr == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_window_bkgd_impl(self, ch, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_attroff__doc__,
-"attroff($self, attr, /)\n"
-"--\n"
-"\n"
-"Remove attribute attr from the \"background\" set.");
-
-#define _CURSES_WINDOW_ATTROFF_METHODDEF \
- {"attroff", (PyCFunction)_curses_window_attroff, METH_O, _curses_window_attroff__doc__},
-
-static PyObject *
-_curses_window_attroff_impl(PyCursesWindowObject *self, long attr);
-
-static PyObject *
-_curses_window_attroff(PyCursesWindowObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- long attr;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- attr = PyLong_AsLong(arg);
- if (attr == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_window_attroff_impl(self, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_attron__doc__,
-"attron($self, attr, /)\n"
-"--\n"
-"\n"
-"Add attribute attr from the \"background\" set.");
-
-#define _CURSES_WINDOW_ATTRON_METHODDEF \
- {"attron", (PyCFunction)_curses_window_attron, METH_O, _curses_window_attron__doc__},
-
-static PyObject *
-_curses_window_attron_impl(PyCursesWindowObject *self, long attr);
-
-static PyObject *
-_curses_window_attron(PyCursesWindowObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- long attr;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- attr = PyLong_AsLong(arg);
- if (attr == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_window_attron_impl(self, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_attrset__doc__,
-"attrset($self, attr, /)\n"
-"--\n"
-"\n"
-"Set the \"background\" set of attributes.");
-
-#define _CURSES_WINDOW_ATTRSET_METHODDEF \
- {"attrset", (PyCFunction)_curses_window_attrset, METH_O, _curses_window_attrset__doc__},
-
-static PyObject *
-_curses_window_attrset_impl(PyCursesWindowObject *self, long attr);
-
-static PyObject *
-_curses_window_attrset(PyCursesWindowObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- long attr;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- attr = PyLong_AsLong(arg);
- if (attr == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_window_attrset_impl(self, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_bkgdset__doc__,
-"bkgdset($self, ch, attr=_curses.A_NORMAL, /)\n"
-"--\n"
-"\n"
-"Set the window\'s background.\n"
-"\n"
-" ch\n"
-" Background character.\n"
-" attr\n"
-" Background attributes.");
-
-#define _CURSES_WINDOW_BKGDSET_METHODDEF \
- {"bkgdset", (PyCFunction)(void(*)(void))_curses_window_bkgdset, METH_FASTCALL, _curses_window_bkgdset__doc__},
-
-static PyObject *
-_curses_window_bkgdset_impl(PyCursesWindowObject *self, PyObject *ch,
- long attr);
-
-static PyObject *
-_curses_window_bkgdset(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *ch;
- long attr = A_NORMAL;
-
- if (!_PyArg_CheckPositional("bkgdset", nargs, 1, 2)) {
- goto exit;
- }
- ch = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- attr = PyLong_AsLong(args[1]);
- if (attr == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_window_bkgdset_impl(self, ch, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_border__doc__,
-"border($self, ls=_curses.ACS_VLINE, rs=_curses.ACS_VLINE,\n"
-" ts=_curses.ACS_HLINE, bs=_curses.ACS_HLINE,\n"
-" tl=_curses.ACS_ULCORNER, tr=_curses.ACS_URCORNER,\n"
-" bl=_curses.ACS_LLCORNER, br=_curses.ACS_LRCORNER, /)\n"
-"--\n"
-"\n"
-"Draw a border around the edges of the window.\n"
-"\n"
-" ls\n"
-" Left side.\n"
-" rs\n"
-" Right side.\n"
-" ts\n"
-" Top side.\n"
-" bs\n"
-" Bottom side.\n"
-" tl\n"
-" Upper-left corner.\n"
-" tr\n"
-" Upper-right corner.\n"
-" bl\n"
-" Bottom-left corner.\n"
-" br\n"
-" Bottom-right corner.\n"
-"\n"
-"Each parameter specifies the character to use for a specific part of the\n"
-"border. The characters can be specified as integers or as one-character\n"
-"strings. A 0 value for any parameter will cause the default character to be\n"
-"used for that parameter.");
-
-#define _CURSES_WINDOW_BORDER_METHODDEF \
- {"border", (PyCFunction)(void(*)(void))_curses_window_border, METH_FASTCALL, _curses_window_border__doc__},
-
-static PyObject *
-_curses_window_border_impl(PyCursesWindowObject *self, PyObject *ls,
- PyObject *rs, PyObject *ts, PyObject *bs,
- PyObject *tl, PyObject *tr, PyObject *bl,
- PyObject *br);
-
-static PyObject *
-_curses_window_border(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *ls = NULL;
- PyObject *rs = NULL;
- PyObject *ts = NULL;
- PyObject *bs = NULL;
- PyObject *tl = NULL;
- PyObject *tr = NULL;
- PyObject *bl = NULL;
- PyObject *br = NULL;
-
- if (!_PyArg_CheckPositional("border", nargs, 0, 8)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- ls = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- rs = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- ts = args[2];
- if (nargs < 4) {
- goto skip_optional;
- }
- bs = args[3];
- if (nargs < 5) {
- goto skip_optional;
- }
- tl = args[4];
- if (nargs < 6) {
- goto skip_optional;
- }
- tr = args[5];
- if (nargs < 7) {
- goto skip_optional;
- }
- bl = args[6];
- if (nargs < 8) {
- goto skip_optional;
- }
- br = args[7];
-skip_optional:
- return_value = _curses_window_border_impl(self, ls, rs, ts, bs, tl, tr, bl, br);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_box__doc__,
-"box([verch=0, horch=0])\n"
-"Draw a border around the edges of the window.\n"
-"\n"
-" verch\n"
-" Left and right side.\n"
-" horch\n"
-" Top and bottom side.\n"
-"\n"
-"Similar to border(), but both ls and rs are verch and both ts and bs are\n"
-"horch. The default corner characters are always used by this function.");
-
-#define _CURSES_WINDOW_BOX_METHODDEF \
- {"box", (PyCFunction)_curses_window_box, METH_VARARGS, _curses_window_box__doc__},
-
-static PyObject *
-_curses_window_box_impl(PyCursesWindowObject *self, int group_right_1,
- PyObject *verch, PyObject *horch);
-
-static PyObject *
-_curses_window_box(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- PyObject *verch = _PyLong_Zero;
- PyObject *horch = _PyLong_Zero;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "OO:box", &verch, &horch)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.box requires 0 to 2 arguments");
- goto exit;
- }
- return_value = _curses_window_box_impl(self, group_right_1, verch, horch);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_delch__doc__,
-"delch([y, x])\n"
-"Delete any character at (y, x).\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.");
-
-#define _CURSES_WINDOW_DELCH_METHODDEF \
- {"delch", (PyCFunction)_curses_window_delch, METH_VARARGS, _curses_window_delch__doc__},
-
-static PyObject *
-_curses_window_delch_impl(PyCursesWindowObject *self, int group_right_1,
- int y, int x);
-
-static PyObject *
-_curses_window_delch(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int y = 0;
- int x = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "ii:delch", &y, &x)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.delch requires 0 to 2 arguments");
- goto exit;
- }
- return_value = _curses_window_delch_impl(self, group_right_1, y, x);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_derwin__doc__,
-"derwin([nlines=0, ncols=0,] begin_y, begin_x)\n"
-"Create a sub-window (window-relative coordinates).\n"
-"\n"
-" nlines\n"
-" Height.\n"
-" ncols\n"
-" Width.\n"
-" begin_y\n"
-" Top side y-coordinate.\n"
-" begin_x\n"
-" Left side x-coordinate.\n"
-"\n"
-"derwin() is the same as calling subwin(), except that begin_y and begin_x\n"
-"are relative to the origin of the window, rather than relative to the entire\n"
-"screen.");
-
-#define _CURSES_WINDOW_DERWIN_METHODDEF \
- {"derwin", (PyCFunction)_curses_window_derwin, METH_VARARGS, _curses_window_derwin__doc__},
-
-static PyObject *
-_curses_window_derwin_impl(PyCursesWindowObject *self, int group_left_1,
- int nlines, int ncols, int begin_y, int begin_x);
-
-static PyObject *
-_curses_window_derwin(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int nlines = 0;
- int ncols = 0;
- int begin_y;
- int begin_x;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "ii:derwin", &begin_y, &begin_x)) {
- goto exit;
- }
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiii:derwin", &nlines, &ncols, &begin_y, &begin_x)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.derwin requires 2 to 4 arguments");
- goto exit;
- }
- return_value = _curses_window_derwin_impl(self, group_left_1, nlines, ncols, begin_y, begin_x);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_echochar__doc__,
-"echochar($self, ch, attr=_curses.A_NORMAL, /)\n"
-"--\n"
-"\n"
-"Add character ch with attribute attr, and refresh.\n"
-"\n"
-" ch\n"
-" Character to add.\n"
-" attr\n"
-" Attributes for the character.");
-
-#define _CURSES_WINDOW_ECHOCHAR_METHODDEF \
- {"echochar", (PyCFunction)(void(*)(void))_curses_window_echochar, METH_FASTCALL, _curses_window_echochar__doc__},
-
-static PyObject *
-_curses_window_echochar_impl(PyCursesWindowObject *self, PyObject *ch,
- long attr);
-
-static PyObject *
-_curses_window_echochar(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *ch;
- long attr = A_NORMAL;
-
- if (!_PyArg_CheckPositional("echochar", nargs, 1, 2)) {
- goto exit;
- }
- ch = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- attr = PyLong_AsLong(args[1]);
- if (attr == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_window_echochar_impl(self, ch, attr);
-
-exit:
- return return_value;
-}
-
-#if defined(NCURSES_MOUSE_VERSION)
-
-PyDoc_STRVAR(_curses_window_enclose__doc__,
-"enclose($self, y, x, /)\n"
-"--\n"
-"\n"
-"Return True if the screen-relative coordinates are enclosed by the window.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.");
-
-#define _CURSES_WINDOW_ENCLOSE_METHODDEF \
- {"enclose", (PyCFunction)(void(*)(void))_curses_window_enclose, METH_FASTCALL, _curses_window_enclose__doc__},
-
-static long
-_curses_window_enclose_impl(PyCursesWindowObject *self, int y, int x);
-
-static PyObject *
-_curses_window_enclose(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int y;
- int x;
- long _return_value;
-
- if (!_PyArg_CheckPositional("enclose", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- y = _PyLong_AsInt(args[0]);
- if (y == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- x = _PyLong_AsInt(args[1]);
- if (x == -1 && PyErr_Occurred()) {
- goto exit;
- }
- _return_value = _curses_window_enclose_impl(self, y, x);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromLong(_return_value);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(NCURSES_MOUSE_VERSION) */
-
-PyDoc_STRVAR(_curses_window_getbkgd__doc__,
-"getbkgd($self, /)\n"
-"--\n"
-"\n"
-"Return the window\'s current background character/attribute pair.");
-
-#define _CURSES_WINDOW_GETBKGD_METHODDEF \
- {"getbkgd", (PyCFunction)_curses_window_getbkgd, METH_NOARGS, _curses_window_getbkgd__doc__},
-
-static long
-_curses_window_getbkgd_impl(PyCursesWindowObject *self);
-
-static PyObject *
-_curses_window_getbkgd(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))
-{
- PyObject *return_value = NULL;
- long _return_value;
-
- _return_value = _curses_window_getbkgd_impl(self);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromLong(_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_getch__doc__,
-"getch([y, x])\n"
-"Get a character code from terminal keyboard.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-"\n"
-"The integer returned does not have to be in ASCII range: function keys,\n"
-"keypad keys and so on return numbers higher than 256. In no-delay mode, -1\n"
-"is returned if there is no input, else getch() waits until a key is pressed.");
-
-#define _CURSES_WINDOW_GETCH_METHODDEF \
- {"getch", (PyCFunction)_curses_window_getch, METH_VARARGS, _curses_window_getch__doc__},
-
-static int
-_curses_window_getch_impl(PyCursesWindowObject *self, int group_right_1,
- int y, int x);
-
-static PyObject *
-_curses_window_getch(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int y = 0;
- int x = 0;
- int _return_value;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "ii:getch", &y, &x)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.getch requires 0 to 2 arguments");
- goto exit;
- }
- _return_value = _curses_window_getch_impl(self, group_right_1, y, x);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromLong((long)_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_getkey__doc__,
-"getkey([y, x])\n"
-"Get a character (string) from terminal keyboard.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-"\n"
-"Returning a string instead of an integer, as getch() does. Function keys,\n"
-"keypad keys and other special keys return a multibyte string containing the\n"
-"key name. In no-delay mode, an exception is raised if there is no input.");
-
-#define _CURSES_WINDOW_GETKEY_METHODDEF \
- {"getkey", (PyCFunction)_curses_window_getkey, METH_VARARGS, _curses_window_getkey__doc__},
-
-static PyObject *
-_curses_window_getkey_impl(PyCursesWindowObject *self, int group_right_1,
- int y, int x);
-
-static PyObject *
-_curses_window_getkey(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int y = 0;
- int x = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "ii:getkey", &y, &x)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.getkey requires 0 to 2 arguments");
- goto exit;
- }
- return_value = _curses_window_getkey_impl(self, group_right_1, y, x);
-
-exit:
- return return_value;
-}
-
-#if defined(HAVE_NCURSESW)
-
-PyDoc_STRVAR(_curses_window_get_wch__doc__,
-"get_wch([y, x])\n"
-"Get a wide character from terminal keyboard.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-"\n"
-"Return a character for most keys, or an integer for function keys,\n"
-"keypad keys, and other special keys.");
-
-#define _CURSES_WINDOW_GET_WCH_METHODDEF \
- {"get_wch", (PyCFunction)_curses_window_get_wch, METH_VARARGS, _curses_window_get_wch__doc__},
-
-static PyObject *
-_curses_window_get_wch_impl(PyCursesWindowObject *self, int group_right_1,
- int y, int x);
-
-static PyObject *
-_curses_window_get_wch(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int y = 0;
- int x = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "ii:get_wch", &y, &x)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.get_wch requires 0 to 2 arguments");
- goto exit;
- }
- return_value = _curses_window_get_wch_impl(self, group_right_1, y, x);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_NCURSESW) */
-
-PyDoc_STRVAR(_curses_window_hline__doc__,
-"hline([y, x,] ch, n, [attr=_curses.A_NORMAL])\n"
-"Display a horizontal line.\n"
-"\n"
-" y\n"
-" Starting Y-coordinate.\n"
-" x\n"
-" Starting X-coordinate.\n"
-" ch\n"
-" Character to draw.\n"
-" n\n"
-" Line length.\n"
-" attr\n"
-" Attributes for the characters.");
-
-#define _CURSES_WINDOW_HLINE_METHODDEF \
- {"hline", (PyCFunction)_curses_window_hline, METH_VARARGS, _curses_window_hline__doc__},
-
-static PyObject *
-_curses_window_hline_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *ch, int n,
- int group_right_1, long attr);
-
-static PyObject *
-_curses_window_hline(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *ch;
- int n;
- int group_right_1 = 0;
- long attr = A_NORMAL;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "Oi:hline", &ch, &n)) {
- goto exit;
- }
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "Oil:hline", &ch, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOi:hline", &y, &x, &ch, &n)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- case 5:
- if (!PyArg_ParseTuple(args, "iiOil:hline", &y, &x, &ch, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.hline requires 2 to 5 arguments");
- goto exit;
- }
- return_value = _curses_window_hline_impl(self, group_left_1, y, x, ch, n, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_insch__doc__,
-"insch([y, x,] ch, [attr=_curses.A_NORMAL])\n"
-"Insert a character before the current or specified position.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-" ch\n"
-" Character to insert.\n"
-" attr\n"
-" Attributes for the character.\n"
-"\n"
-"All characters to the right of the cursor are shifted one position right, with\n"
-"the rightmost characters on the line being lost.");
-
-#define _CURSES_WINDOW_INSCH_METHODDEF \
- {"insch", (PyCFunction)_curses_window_insch, METH_VARARGS, _curses_window_insch__doc__},
-
-static PyObject *
-_curses_window_insch_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *ch, int group_right_1,
- long attr);
-
-static PyObject *
-_curses_window_insch(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *ch;
- int group_right_1 = 0;
- long attr = A_NORMAL;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 1:
- if (!PyArg_ParseTuple(args, "O:insch", &ch)) {
- goto exit;
- }
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "Ol:insch", &ch, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "iiO:insch", &y, &x, &ch)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOl:insch", &y, &x, &ch, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.insch requires 1 to 4 arguments");
- goto exit;
- }
- return_value = _curses_window_insch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_inch__doc__,
-"inch([y, x])\n"
-"Return the character at the given position in the window.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-"\n"
-"The bottom 8 bits are the character proper, and upper bits are the attributes.");
-
-#define _CURSES_WINDOW_INCH_METHODDEF \
- {"inch", (PyCFunction)_curses_window_inch, METH_VARARGS, _curses_window_inch__doc__},
-
-static unsigned long
-_curses_window_inch_impl(PyCursesWindowObject *self, int group_right_1,
- int y, int x);
-
-static PyObject *
-_curses_window_inch(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int y = 0;
- int x = 0;
- unsigned long _return_value;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "ii:inch", &y, &x)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.inch requires 0 to 2 arguments");
- goto exit;
- }
- _return_value = _curses_window_inch_impl(self, group_right_1, y, x);
- if ((_return_value == (unsigned long)-1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromUnsignedLong(_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_insstr__doc__,
-"insstr([y, x,] str, [attr])\n"
-"Insert the string before the current or specified position.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-" str\n"
-" String to insert.\n"
-" attr\n"
-" Attributes for characters.\n"
-"\n"
-"Insert a character string (as many characters as will fit on the line)\n"
-"before the character under the cursor. All characters to the right of\n"
-"the cursor are shifted right, with the rightmost characters on the line\n"
-"being lost. The cursor position does not change (after moving to y, x,\n"
-"if specified).");
-
-#define _CURSES_WINDOW_INSSTR_METHODDEF \
- {"insstr", (PyCFunction)_curses_window_insstr, METH_VARARGS, _curses_window_insstr__doc__},
-
-static PyObject *
-_curses_window_insstr_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *str, int group_right_1,
- long attr);
-
-static PyObject *
-_curses_window_insstr(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *str;
- int group_right_1 = 0;
- long attr = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 1:
- if (!PyArg_ParseTuple(args, "O:insstr", &str)) {
- goto exit;
- }
- break;
- case 2:
- if (!PyArg_ParseTuple(args, "Ol:insstr", &str, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "iiO:insstr", &y, &x, &str)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOl:insstr", &y, &x, &str, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.insstr requires 1 to 4 arguments");
- goto exit;
- }
- return_value = _curses_window_insstr_impl(self, group_left_1, y, x, str, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_insnstr__doc__,
-"insnstr([y, x,] str, n, [attr])\n"
-"Insert at most n characters of the string.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-" str\n"
-" String to insert.\n"
-" n\n"
-" Maximal number of characters.\n"
-" attr\n"
-" Attributes for characters.\n"
-"\n"
-"Insert a character string (as many characters as will fit on the line)\n"
-"before the character under the cursor, up to n characters. If n is zero\n"
-"or negative, the entire string is inserted. All characters to the right\n"
-"of the cursor are shifted right, with the rightmost characters on the line\n"
-"being lost. The cursor position does not change (after moving to y, x, if\n"
-"specified).");
-
-#define _CURSES_WINDOW_INSNSTR_METHODDEF \
- {"insnstr", (PyCFunction)_curses_window_insnstr, METH_VARARGS, _curses_window_insnstr__doc__},
-
-static PyObject *
-_curses_window_insnstr_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *str, int n,
- int group_right_1, long attr);
-
-static PyObject *
-_curses_window_insnstr(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *str;
- int n;
- int group_right_1 = 0;
- long attr = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "Oi:insnstr", &str, &n)) {
- goto exit;
- }
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "Oil:insnstr", &str, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOi:insnstr", &y, &x, &str, &n)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- case 5:
- if (!PyArg_ParseTuple(args, "iiOil:insnstr", &y, &x, &str, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.insnstr requires 2 to 5 arguments");
- goto exit;
- }
- return_value = _curses_window_insnstr_impl(self, group_left_1, y, x, str, n, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_is_linetouched__doc__,
-"is_linetouched($self, line, /)\n"
-"--\n"
-"\n"
-"Return True if the specified line was modified, otherwise return False.\n"
-"\n"
-" line\n"
-" Line number.\n"
-"\n"
-"Raise a curses.error exception if line is not valid for the given window.");
-
-#define _CURSES_WINDOW_IS_LINETOUCHED_METHODDEF \
- {"is_linetouched", (PyCFunction)_curses_window_is_linetouched, METH_O, _curses_window_is_linetouched__doc__},
-
-static PyObject *
-_curses_window_is_linetouched_impl(PyCursesWindowObject *self, int line);
-
-static PyObject *
-_curses_window_is_linetouched(PyCursesWindowObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int line;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- line = _PyLong_AsInt(arg);
- if (line == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_window_is_linetouched_impl(self, line);
-
-exit:
- return return_value;
-}
-
-#if defined(py_is_pad)
-
-PyDoc_STRVAR(_curses_window_noutrefresh__doc__,
-"noutrefresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])\n"
-"Mark for refresh but wait.\n"
-"\n"
-"This function updates the data structure representing the desired state of the\n"
-"window, but does not force an update of the physical screen. To accomplish\n"
-"that, call doupdate().");
-
-#define _CURSES_WINDOW_NOUTREFRESH_METHODDEF \
- {"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_VARARGS, _curses_window_noutrefresh__doc__},
-
-static PyObject *
-_curses_window_noutrefresh_impl(PyCursesWindowObject *self,
- int group_right_1, int pminrow, int pmincol,
- int sminrow, int smincol, int smaxrow,
- int smaxcol);
-
-static PyObject *
-_curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int pminrow = 0;
- int pmincol = 0;
- int sminrow = 0;
- int smincol = 0;
- int smaxrow = 0;
- int smaxcol = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 6:
- if (!PyArg_ParseTuple(args, "iiiiii:noutrefresh", &pminrow, &pmincol, &sminrow, &smincol, &smaxrow, &smaxcol)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.noutrefresh requires 0 to 6 arguments");
- goto exit;
- }
- return_value = _curses_window_noutrefresh_impl(self, group_right_1, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(py_is_pad) */
-
-#if !defined(py_is_pad)
-
-PyDoc_STRVAR(_curses_window_noutrefresh__doc__,
-"noutrefresh($self, /)\n"
-"--\n"
-"\n"
-"Mark for refresh but wait.\n"
-"\n"
-"This function updates the data structure representing the desired state of the\n"
-"window, but does not force an update of the physical screen. To accomplish\n"
-"that, call doupdate().");
-
-#define _CURSES_WINDOW_NOUTREFRESH_METHODDEF \
- {"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_NOARGS, _curses_window_noutrefresh__doc__},
-
-static PyObject *
-_curses_window_noutrefresh_impl(PyCursesWindowObject *self);
-
-static PyObject *
-_curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _curses_window_noutrefresh_impl(self);
-}
-
-#endif /* !defined(py_is_pad) */
-
-PyDoc_STRVAR(_curses_window_overlay__doc__,
-"overlay(destwin, [sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])\n"
-"Overlay the window on top of destwin.\n"
-"\n"
-"The windows need not be the same size, only the overlapping region is copied.\n"
-"This copy is non-destructive, which means that the current background\n"
-"character does not overwrite the old contents of destwin.\n"
-"\n"
-"To get fine-grained control over the copied region, the second form of\n"
-"overlay() can be used. sminrow and smincol are the upper-left coordinates\n"
-"of the source window, and the other variables mark a rectangle in the\n"
-"destination window.");
-
-#define _CURSES_WINDOW_OVERLAY_METHODDEF \
- {"overlay", (PyCFunction)_curses_window_overlay, METH_VARARGS, _curses_window_overlay__doc__},
-
-static PyObject *
-_curses_window_overlay_impl(PyCursesWindowObject *self,
- PyCursesWindowObject *destwin, int group_right_1,
- int sminrow, int smincol, int dminrow,
- int dmincol, int dmaxrow, int dmaxcol);
-
-static PyObject *
-_curses_window_overlay(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- PyCursesWindowObject *destwin;
- int group_right_1 = 0;
- int sminrow = 0;
- int smincol = 0;
- int dminrow = 0;
- int dmincol = 0;
- int dmaxrow = 0;
- int dmaxcol = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 1:
- if (!PyArg_ParseTuple(args, "O!:overlay", &PyCursesWindow_Type, &destwin)) {
- goto exit;
- }
- break;
- case 7:
- if (!PyArg_ParseTuple(args, "O!iiiiii:overlay", &PyCursesWindow_Type, &destwin, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.overlay requires 1 to 7 arguments");
- goto exit;
- }
- return_value = _curses_window_overlay_impl(self, destwin, group_right_1, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_overwrite__doc__,
-"overwrite(destwin, [sminrow, smincol, dminrow, dmincol, dmaxrow,\n"
-" dmaxcol])\n"
-"Overwrite the window on top of destwin.\n"
-"\n"
-"The windows need not be the same size, in which case only the overlapping\n"
-"region is copied. This copy is destructive, which means that the current\n"
-"background character overwrites the old contents of destwin.\n"
-"\n"
-"To get fine-grained control over the copied region, the second form of\n"
-"overwrite() can be used. sminrow and smincol are the upper-left coordinates\n"
-"of the source window, the other variables mark a rectangle in the destination\n"
-"window.");
-
-#define _CURSES_WINDOW_OVERWRITE_METHODDEF \
- {"overwrite", (PyCFunction)_curses_window_overwrite, METH_VARARGS, _curses_window_overwrite__doc__},
-
-static PyObject *
-_curses_window_overwrite_impl(PyCursesWindowObject *self,
- PyCursesWindowObject *destwin,
- int group_right_1, int sminrow, int smincol,
- int dminrow, int dmincol, int dmaxrow,
- int dmaxcol);
-
-static PyObject *
-_curses_window_overwrite(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- PyCursesWindowObject *destwin;
- int group_right_1 = 0;
- int sminrow = 0;
- int smincol = 0;
- int dminrow = 0;
- int dmincol = 0;
- int dmaxrow = 0;
- int dmaxcol = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 1:
- if (!PyArg_ParseTuple(args, "O!:overwrite", &PyCursesWindow_Type, &destwin)) {
- goto exit;
- }
- break;
- case 7:
- if (!PyArg_ParseTuple(args, "O!iiiiii:overwrite", &PyCursesWindow_Type, &destwin, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.overwrite requires 1 to 7 arguments");
- goto exit;
- }
- return_value = _curses_window_overwrite_impl(self, destwin, group_right_1, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_putwin__doc__,
-"putwin($self, file, /)\n"
-"--\n"
-"\n"
-"Write all data associated with the window into the provided file object.\n"
-"\n"
-"This information can be later retrieved using the getwin() function.");
-
-#define _CURSES_WINDOW_PUTWIN_METHODDEF \
- {"putwin", (PyCFunction)_curses_window_putwin, METH_O, _curses_window_putwin__doc__},
-
-PyDoc_STRVAR(_curses_window_redrawln__doc__,
-"redrawln($self, beg, num, /)\n"
-"--\n"
-"\n"
-"Mark the specified lines corrupted.\n"
-"\n"
-" beg\n"
-" Starting line number.\n"
-" num\n"
-" The number of lines.\n"
-"\n"
-"They should be completely redrawn on the next refresh() call.");
-
-#define _CURSES_WINDOW_REDRAWLN_METHODDEF \
- {"redrawln", (PyCFunction)(void(*)(void))_curses_window_redrawln, METH_FASTCALL, _curses_window_redrawln__doc__},
-
-static PyObject *
-_curses_window_redrawln_impl(PyCursesWindowObject *self, int beg, int num);
-
-static PyObject *
-_curses_window_redrawln(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int beg;
- int num;
-
- if (!_PyArg_CheckPositional("redrawln", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- beg = _PyLong_AsInt(args[0]);
- if (beg == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- num = _PyLong_AsInt(args[1]);
- if (num == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_window_redrawln_impl(self, beg, num);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_refresh__doc__,
-"refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])\n"
-"Update the display immediately.\n"
-"\n"
-"Synchronize actual screen with previous drawing/deleting methods.\n"
-"The 6 optional arguments can only be specified when the window is a pad\n"
-"created with newpad(). The additional parameters are needed to indicate\n"
-"what part of the pad and screen are involved. pminrow and pmincol specify\n"
-"the upper left-hand corner of the rectangle to be displayed in the pad.\n"
-"sminrow, smincol, smaxrow, and smaxcol specify the edges of the rectangle to\n"
-"be displayed on the screen. The lower right-hand corner of the rectangle to\n"
-"be displayed in the pad is calculated from the screen coordinates, since the\n"
-"rectangles must be the same size. Both rectangles must be entirely contained\n"
-"within their respective structures. Negative values of pminrow, pmincol,\n"
-"sminrow, or smincol are treated as if they were zero.");
-
-#define _CURSES_WINDOW_REFRESH_METHODDEF \
- {"refresh", (PyCFunction)_curses_window_refresh, METH_VARARGS, _curses_window_refresh__doc__},
-
-static PyObject *
-_curses_window_refresh_impl(PyCursesWindowObject *self, int group_right_1,
- int pminrow, int pmincol, int sminrow,
- int smincol, int smaxrow, int smaxcol);
-
-static PyObject *
-_curses_window_refresh(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int pminrow = 0;
- int pmincol = 0;
- int sminrow = 0;
- int smincol = 0;
- int smaxrow = 0;
- int smaxcol = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 6:
- if (!PyArg_ParseTuple(args, "iiiiii:refresh", &pminrow, &pmincol, &sminrow, &smincol, &smaxrow, &smaxcol)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.refresh requires 0 to 6 arguments");
- goto exit;
- }
- return_value = _curses_window_refresh_impl(self, group_right_1, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_setscrreg__doc__,
-"setscrreg($self, top, bottom, /)\n"
-"--\n"
-"\n"
-"Define a software scrolling region.\n"
-"\n"
-" top\n"
-" First line number.\n"
-" bottom\n"
-" Last line number.\n"
-"\n"
-"All scrolling actions will take place in this region.");
-
-#define _CURSES_WINDOW_SETSCRREG_METHODDEF \
- {"setscrreg", (PyCFunction)(void(*)(void))_curses_window_setscrreg, METH_FASTCALL, _curses_window_setscrreg__doc__},
-
-static PyObject *
-_curses_window_setscrreg_impl(PyCursesWindowObject *self, int top,
- int bottom);
-
-static PyObject *
-_curses_window_setscrreg(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int top;
- int bottom;
-
- if (!_PyArg_CheckPositional("setscrreg", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- top = _PyLong_AsInt(args[0]);
- if (top == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- bottom = _PyLong_AsInt(args[1]);
- if (bottom == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_window_setscrreg_impl(self, top, bottom);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_subwin__doc__,
-"subwin([nlines=0, ncols=0,] begin_y, begin_x)\n"
-"Create a sub-window (screen-relative coordinates).\n"
-"\n"
-" nlines\n"
-" Height.\n"
-" ncols\n"
-" Width.\n"
-" begin_y\n"
-" Top side y-coordinate.\n"
-" begin_x\n"
-" Left side x-coordinate.\n"
-"\n"
-"By default, the sub-window will extend from the specified position to the\n"
-"lower right corner of the window.");
-
-#define _CURSES_WINDOW_SUBWIN_METHODDEF \
- {"subwin", (PyCFunction)_curses_window_subwin, METH_VARARGS, _curses_window_subwin__doc__},
-
-static PyObject *
-_curses_window_subwin_impl(PyCursesWindowObject *self, int group_left_1,
- int nlines, int ncols, int begin_y, int begin_x);
-
-static PyObject *
-_curses_window_subwin(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int nlines = 0;
- int ncols = 0;
- int begin_y;
- int begin_x;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "ii:subwin", &begin_y, &begin_x)) {
- goto exit;
- }
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiii:subwin", &nlines, &ncols, &begin_y, &begin_x)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.subwin requires 2 to 4 arguments");
- goto exit;
- }
- return_value = _curses_window_subwin_impl(self, group_left_1, nlines, ncols, begin_y, begin_x);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_scroll__doc__,
-"scroll([lines=1])\n"
-"Scroll the screen or scrolling region.\n"
-"\n"
-" lines\n"
-" Number of lines to scroll.\n"
-"\n"
-"Scroll upward if the argument is positive and downward if it is negative.");
-
-#define _CURSES_WINDOW_SCROLL_METHODDEF \
- {"scroll", (PyCFunction)_curses_window_scroll, METH_VARARGS, _curses_window_scroll__doc__},
-
-static PyObject *
-_curses_window_scroll_impl(PyCursesWindowObject *self, int group_right_1,
- int lines);
-
-static PyObject *
-_curses_window_scroll(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_right_1 = 0;
- int lines = 1;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 0:
- break;
- case 1:
- if (!PyArg_ParseTuple(args, "i:scroll", &lines)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.scroll requires 0 to 1 arguments");
- goto exit;
- }
- return_value = _curses_window_scroll_impl(self, group_right_1, lines);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_touchline__doc__,
-"touchline(start, count, [changed=True])\n"
-"Pretend count lines have been changed, starting with line start.\n"
-"\n"
-"If changed is supplied, it specifies whether the affected lines are marked\n"
-"as having been changed (changed=True) or unchanged (changed=False).");
-
-#define _CURSES_WINDOW_TOUCHLINE_METHODDEF \
- {"touchline", (PyCFunction)_curses_window_touchline, METH_VARARGS, _curses_window_touchline__doc__},
-
-static PyObject *
-_curses_window_touchline_impl(PyCursesWindowObject *self, int start,
- int count, int group_right_1, int changed);
-
-static PyObject *
-_curses_window_touchline(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int start;
- int count;
- int group_right_1 = 0;
- int changed = 1;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "ii:touchline", &start, &count)) {
- goto exit;
- }
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "iii:touchline", &start, &count, &changed)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.touchline requires 2 to 3 arguments");
- goto exit;
- }
- return_value = _curses_window_touchline_impl(self, start, count, group_right_1, changed);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_window_vline__doc__,
-"vline([y, x,] ch, n, [attr=_curses.A_NORMAL])\n"
-"Display a vertical line.\n"
-"\n"
-" y\n"
-" Starting Y-coordinate.\n"
-" x\n"
-" Starting X-coordinate.\n"
-" ch\n"
-" Character to draw.\n"
-" n\n"
-" Line length.\n"
-" attr\n"
-" Attributes for the character.");
-
-#define _CURSES_WINDOW_VLINE_METHODDEF \
- {"vline", (PyCFunction)_curses_window_vline, METH_VARARGS, _curses_window_vline__doc__},
-
-static PyObject *
-_curses_window_vline_impl(PyCursesWindowObject *self, int group_left_1,
- int y, int x, PyObject *ch, int n,
- int group_right_1, long attr);
-
-static PyObject *
-_curses_window_vline(PyCursesWindowObject *self, PyObject *args)
-{
- PyObject *return_value = NULL;
- int group_left_1 = 0;
- int y = 0;
- int x = 0;
- PyObject *ch;
- int n;
- int group_right_1 = 0;
- long attr = A_NORMAL;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "Oi:vline", &ch, &n)) {
- goto exit;
- }
- break;
- case 3:
- if (!PyArg_ParseTuple(args, "Oil:vline", &ch, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiOi:vline", &y, &x, &ch, &n)) {
- goto exit;
- }
- group_left_1 = 1;
- break;
- case 5:
- if (!PyArg_ParseTuple(args, "iiOil:vline", &y, &x, &ch, &n, &attr)) {
- goto exit;
- }
- group_right_1 = 1;
- group_left_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.window.vline requires 2 to 5 arguments");
- goto exit;
- }
- return_value = _curses_window_vline_impl(self, group_left_1, y, x, ch, n, group_right_1, attr);
-
-exit:
- return return_value;
-}
-
-#if defined(HAVE_CURSES_FILTER)
-
-PyDoc_STRVAR(_curses_filter__doc__,
-"filter($module, /)\n"
-"--\n"
-"\n");
-
-#define _CURSES_FILTER_METHODDEF \
- {"filter", (PyCFunction)_curses_filter, METH_NOARGS, _curses_filter__doc__},
-
-static PyObject *
-_curses_filter_impl(PyObject *module);
-
-static PyObject *
-_curses_filter(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_filter_impl(module);
-}
-
-#endif /* defined(HAVE_CURSES_FILTER) */
-
-PyDoc_STRVAR(_curses_baudrate__doc__,
-"baudrate($module, /)\n"
-"--\n"
-"\n"
-"Return the output speed of the terminal in bits per second.");
-
-#define _CURSES_BAUDRATE_METHODDEF \
- {"baudrate", (PyCFunction)_curses_baudrate, METH_NOARGS, _curses_baudrate__doc__},
-
-static PyObject *
-_curses_baudrate_impl(PyObject *module);
-
-static PyObject *
-_curses_baudrate(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_baudrate_impl(module);
-}
-
-PyDoc_STRVAR(_curses_beep__doc__,
-"beep($module, /)\n"
-"--\n"
-"\n"
-"Emit a short attention sound.");
-
-#define _CURSES_BEEP_METHODDEF \
- {"beep", (PyCFunction)_curses_beep, METH_NOARGS, _curses_beep__doc__},
-
-static PyObject *
-_curses_beep_impl(PyObject *module);
-
-static PyObject *
-_curses_beep(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_beep_impl(module);
-}
-
-PyDoc_STRVAR(_curses_can_change_color__doc__,
-"can_change_color($module, /)\n"
-"--\n"
-"\n"
-"Return True if the programmer can change the colors displayed by the terminal.");
-
-#define _CURSES_CAN_CHANGE_COLOR_METHODDEF \
- {"can_change_color", (PyCFunction)_curses_can_change_color, METH_NOARGS, _curses_can_change_color__doc__},
-
-static PyObject *
-_curses_can_change_color_impl(PyObject *module);
-
-static PyObject *
-_curses_can_change_color(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_can_change_color_impl(module);
-}
-
-PyDoc_STRVAR(_curses_cbreak__doc__,
-"cbreak($module, flag=True, /)\n"
-"--\n"
-"\n"
-"Enter cbreak mode.\n"
-"\n"
-" flag\n"
-" If false, the effect is the same as calling nocbreak().\n"
-"\n"
-"In cbreak mode (sometimes called \"rare\" mode) normal tty line buffering is\n"
-"turned off and characters are available to be read one by one. However,\n"
-"unlike raw mode, special characters (interrupt, quit, suspend, and flow\n"
-"control) retain their effects on the tty driver and calling program.\n"
-"Calling first raw() then cbreak() leaves the terminal in cbreak mode.");
-
-#define _CURSES_CBREAK_METHODDEF \
- {"cbreak", (PyCFunction)(void(*)(void))_curses_cbreak, METH_FASTCALL, _curses_cbreak__doc__},
-
-static PyObject *
-_curses_cbreak_impl(PyObject *module, int flag);
-
-static PyObject *
-_curses_cbreak(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int flag = 1;
-
- if (!_PyArg_CheckPositional("cbreak", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(args[0]);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_cbreak_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_color_content__doc__,
-"color_content($module, color_number, /)\n"
-"--\n"
-"\n"
-"Return the red, green, and blue (RGB) components of the specified color.\n"
-"\n"
-" color_number\n"
-" The number of the color (0 - (COLORS-1)).\n"
-"\n"
-"A 3-tuple is returned, containing the R, G, B values for the given color,\n"
-"which will be between 0 (no component) and 1000 (maximum amount of component).");
-
-#define _CURSES_COLOR_CONTENT_METHODDEF \
- {"color_content", (PyCFunction)_curses_color_content, METH_O, _curses_color_content__doc__},
-
-static PyObject *
-_curses_color_content_impl(PyObject *module, short color_number);
-
-static PyObject *
-_curses_color_content(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- short color_number;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(arg);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- color_number = (short) ival;
- }
- }
- return_value = _curses_color_content_impl(module, color_number);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_color_pair__doc__,
-"color_pair($module, pair_number, /)\n"
-"--\n"
-"\n"
-"Return the attribute value for displaying text in the specified color.\n"
-"\n"
-" pair_number\n"
-" The number of the color pair.\n"
-"\n"
-"This attribute value can be combined with A_STANDOUT, A_REVERSE, and the\n"
-"other A_* attributes. pair_number() is the counterpart to this function.");
-
-#define _CURSES_COLOR_PAIR_METHODDEF \
- {"color_pair", (PyCFunction)_curses_color_pair, METH_O, _curses_color_pair__doc__},
-
-static PyObject *
-_curses_color_pair_impl(PyObject *module, short pair_number);
-
-static PyObject *
-_curses_color_pair(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- short pair_number;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(arg);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- pair_number = (short) ival;
- }
- }
- return_value = _curses_color_pair_impl(module, pair_number);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_curs_set__doc__,
-"curs_set($module, visibility, /)\n"
-"--\n"
-"\n"
-"Set the cursor state.\n"
-"\n"
-" visibility\n"
-" 0 for invisible, 1 for normal visible, or 2 for very visible.\n"
-"\n"
-"If the terminal supports the visibility requested, the previous cursor\n"
-"state is returned; otherwise, an exception is raised. On many terminals,\n"
-"the \"visible\" mode is an underline cursor and the \"very visible\" mode is\n"
-"a block cursor.");
-
-#define _CURSES_CURS_SET_METHODDEF \
- {"curs_set", (PyCFunction)_curses_curs_set, METH_O, _curses_curs_set__doc__},
-
-static PyObject *
-_curses_curs_set_impl(PyObject *module, int visibility);
-
-static PyObject *
-_curses_curs_set(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int visibility;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- visibility = _PyLong_AsInt(arg);
- if (visibility == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_curs_set_impl(module, visibility);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_def_prog_mode__doc__,
-"def_prog_mode($module, /)\n"
-"--\n"
-"\n"
-"Save the current terminal mode as the \"program\" mode.\n"
-"\n"
-"The \"program\" mode is the mode when the running program is using curses.\n"
-"\n"
-"Subsequent calls to reset_prog_mode() will restore this mode.");
-
-#define _CURSES_DEF_PROG_MODE_METHODDEF \
- {"def_prog_mode", (PyCFunction)_curses_def_prog_mode, METH_NOARGS, _curses_def_prog_mode__doc__},
-
-static PyObject *
-_curses_def_prog_mode_impl(PyObject *module);
-
-static PyObject *
-_curses_def_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_def_prog_mode_impl(module);
-}
-
-PyDoc_STRVAR(_curses_def_shell_mode__doc__,
-"def_shell_mode($module, /)\n"
-"--\n"
-"\n"
-"Save the current terminal mode as the \"shell\" mode.\n"
-"\n"
-"The \"shell\" mode is the mode when the running program is not using curses.\n"
-"\n"
-"Subsequent calls to reset_shell_mode() will restore this mode.");
-
-#define _CURSES_DEF_SHELL_MODE_METHODDEF \
- {"def_shell_mode", (PyCFunction)_curses_def_shell_mode, METH_NOARGS, _curses_def_shell_mode__doc__},
-
-static PyObject *
-_curses_def_shell_mode_impl(PyObject *module);
-
-static PyObject *
-_curses_def_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_def_shell_mode_impl(module);
-}
-
-PyDoc_STRVAR(_curses_delay_output__doc__,
-"delay_output($module, ms, /)\n"
-"--\n"
-"\n"
-"Insert a pause in output.\n"
-"\n"
-" ms\n"
-" Duration in milliseconds.");
-
-#define _CURSES_DELAY_OUTPUT_METHODDEF \
- {"delay_output", (PyCFunction)_curses_delay_output, METH_O, _curses_delay_output__doc__},
-
-static PyObject *
-_curses_delay_output_impl(PyObject *module, int ms);
-
-static PyObject *
-_curses_delay_output(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int ms;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- ms = _PyLong_AsInt(arg);
- if (ms == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_delay_output_impl(module, ms);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_doupdate__doc__,
-"doupdate($module, /)\n"
-"--\n"
-"\n"
-"Update the physical screen to match the virtual screen.");
-
-#define _CURSES_DOUPDATE_METHODDEF \
- {"doupdate", (PyCFunction)_curses_doupdate, METH_NOARGS, _curses_doupdate__doc__},
-
-static PyObject *
-_curses_doupdate_impl(PyObject *module);
-
-static PyObject *
-_curses_doupdate(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_doupdate_impl(module);
-}
-
-PyDoc_STRVAR(_curses_echo__doc__,
-"echo($module, flag=True, /)\n"
-"--\n"
-"\n"
-"Enter echo mode.\n"
-"\n"
-" flag\n"
-" If false, the effect is the same as calling noecho().\n"
-"\n"
-"In echo mode, each character input is echoed to the screen as it is entered.");
-
-#define _CURSES_ECHO_METHODDEF \
- {"echo", (PyCFunction)(void(*)(void))_curses_echo, METH_FASTCALL, _curses_echo__doc__},
-
-static PyObject *
-_curses_echo_impl(PyObject *module, int flag);
-
-static PyObject *
-_curses_echo(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int flag = 1;
-
- if (!_PyArg_CheckPositional("echo", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(args[0]);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_echo_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_endwin__doc__,
-"endwin($module, /)\n"
-"--\n"
-"\n"
-"De-initialize the library, and return terminal to normal status.");
-
-#define _CURSES_ENDWIN_METHODDEF \
- {"endwin", (PyCFunction)_curses_endwin, METH_NOARGS, _curses_endwin__doc__},
-
-static PyObject *
-_curses_endwin_impl(PyObject *module);
-
-static PyObject *
-_curses_endwin(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_endwin_impl(module);
-}
-
-PyDoc_STRVAR(_curses_erasechar__doc__,
-"erasechar($module, /)\n"
-"--\n"
-"\n"
-"Return the user\'s current erase character.");
-
-#define _CURSES_ERASECHAR_METHODDEF \
- {"erasechar", (PyCFunction)_curses_erasechar, METH_NOARGS, _curses_erasechar__doc__},
-
-static PyObject *
-_curses_erasechar_impl(PyObject *module);
-
-static PyObject *
-_curses_erasechar(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_erasechar_impl(module);
-}
-
-PyDoc_STRVAR(_curses_flash__doc__,
-"flash($module, /)\n"
-"--\n"
-"\n"
-"Flash the screen.\n"
-"\n"
-"That is, change it to reverse-video and then change it back in a short interval.");
-
-#define _CURSES_FLASH_METHODDEF \
- {"flash", (PyCFunction)_curses_flash, METH_NOARGS, _curses_flash__doc__},
-
-static PyObject *
-_curses_flash_impl(PyObject *module);
-
-static PyObject *
-_curses_flash(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_flash_impl(module);
-}
-
-PyDoc_STRVAR(_curses_flushinp__doc__,
-"flushinp($module, /)\n"
-"--\n"
-"\n"
-"Flush all input buffers.\n"
-"\n"
-"This throws away any typeahead that has been typed by the user and has not\n"
-"yet been processed by the program.");
-
-#define _CURSES_FLUSHINP_METHODDEF \
- {"flushinp", (PyCFunction)_curses_flushinp, METH_NOARGS, _curses_flushinp__doc__},
-
-static PyObject *
-_curses_flushinp_impl(PyObject *module);
-
-static PyObject *
-_curses_flushinp(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_flushinp_impl(module);
-}
-
-#if defined(getsyx)
-
-PyDoc_STRVAR(_curses_getsyx__doc__,
-"getsyx($module, /)\n"
-"--\n"
-"\n"
-"Return the current coordinates of the virtual screen cursor.\n"
-"\n"
-"Return a (y, x) tuple. If leaveok is currently true, return (-1, -1).");
-
-#define _CURSES_GETSYX_METHODDEF \
- {"getsyx", (PyCFunction)_curses_getsyx, METH_NOARGS, _curses_getsyx__doc__},
-
-static PyObject *
-_curses_getsyx_impl(PyObject *module);
-
-static PyObject *
-_curses_getsyx(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_getsyx_impl(module);
-}
-
-#endif /* defined(getsyx) */
-
-#if defined(NCURSES_MOUSE_VERSION)
-
-PyDoc_STRVAR(_curses_getmouse__doc__,
-"getmouse($module, /)\n"
-"--\n"
-"\n"
-"Retrieve the queued mouse event.\n"
-"\n"
-"After getch() returns KEY_MOUSE to signal a mouse event, this function\n"
-"returns a 5-tuple (id, x, y, z, bstate).");
-
-#define _CURSES_GETMOUSE_METHODDEF \
- {"getmouse", (PyCFunction)_curses_getmouse, METH_NOARGS, _curses_getmouse__doc__},
-
-static PyObject *
-_curses_getmouse_impl(PyObject *module);
-
-static PyObject *
-_curses_getmouse(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_getmouse_impl(module);
-}
-
-#endif /* defined(NCURSES_MOUSE_VERSION) */
-
-#if defined(NCURSES_MOUSE_VERSION)
-
-PyDoc_STRVAR(_curses_ungetmouse__doc__,
-"ungetmouse($module, id, x, y, z, bstate, /)\n"
-"--\n"
-"\n"
-"Push a KEY_MOUSE event onto the input queue.\n"
-"\n"
-"The following getmouse() will return the given state data.");
-
-#define _CURSES_UNGETMOUSE_METHODDEF \
- {"ungetmouse", (PyCFunction)(void(*)(void))_curses_ungetmouse, METH_FASTCALL, _curses_ungetmouse__doc__},
-
-static PyObject *
-_curses_ungetmouse_impl(PyObject *module, short id, int x, int y, int z,
- unsigned long bstate);
-
-static PyObject *
-_curses_ungetmouse(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- short id;
- int x;
- int y;
- int z;
- unsigned long bstate;
-
- if (!_PyArg_CheckPositional("ungetmouse", nargs, 5, 5)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[0]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- id = (short) ival;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- x = _PyLong_AsInt(args[1]);
- if (x == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- y = _PyLong_AsInt(args[2]);
- if (y == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- z = _PyLong_AsInt(args[3]);
- if (z == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!PyLong_Check(args[4])) {
- _PyArg_BadArgument("ungetmouse", "argument 5", "int", args[4]);
- goto exit;
- }
- bstate = PyLong_AsUnsignedLongMask(args[4]);
- return_value = _curses_ungetmouse_impl(module, id, x, y, z, bstate);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(NCURSES_MOUSE_VERSION) */
-
-PyDoc_STRVAR(_curses_getwin__doc__,
-"getwin($module, file, /)\n"
-"--\n"
-"\n"
-"Read window related data stored in the file by an earlier putwin() call.\n"
-"\n"
-"The routine then creates and initializes a new window using that data,\n"
-"returning the new window object.");
-
-#define _CURSES_GETWIN_METHODDEF \
- {"getwin", (PyCFunction)_curses_getwin, METH_O, _curses_getwin__doc__},
-
-PyDoc_STRVAR(_curses_halfdelay__doc__,
-"halfdelay($module, tenths, /)\n"
-"--\n"
-"\n"
-"Enter half-delay mode.\n"
-"\n"
-" tenths\n"
-" Maximal blocking delay in tenths of seconds (1 - 255).\n"
-"\n"
-"Use nocbreak() to leave half-delay mode.");
-
-#define _CURSES_HALFDELAY_METHODDEF \
- {"halfdelay", (PyCFunction)_curses_halfdelay, METH_O, _curses_halfdelay__doc__},
-
-static PyObject *
-_curses_halfdelay_impl(PyObject *module, unsigned char tenths);
-
-static PyObject *
-_curses_halfdelay(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- unsigned char tenths;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(arg);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < 0) {
- PyErr_SetString(PyExc_OverflowError,
- "unsigned byte integer is less than minimum");
- goto exit;
- }
- else if (ival > UCHAR_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "unsigned byte integer is greater than maximum");
- goto exit;
- }
- else {
- tenths = (unsigned char) ival;
- }
- }
- return_value = _curses_halfdelay_impl(module, tenths);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_has_colors__doc__,
-"has_colors($module, /)\n"
-"--\n"
-"\n"
-"Return True if the terminal can display colors; otherwise, return False.");
-
-#define _CURSES_HAS_COLORS_METHODDEF \
- {"has_colors", (PyCFunction)_curses_has_colors, METH_NOARGS, _curses_has_colors__doc__},
-
-static PyObject *
-_curses_has_colors_impl(PyObject *module);
-
-static PyObject *
-_curses_has_colors(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_has_colors_impl(module);
-}
-
-PyDoc_STRVAR(_curses_has_ic__doc__,
-"has_ic($module, /)\n"
-"--\n"
-"\n"
-"Return True if the terminal has insert- and delete-character capabilities.");
-
-#define _CURSES_HAS_IC_METHODDEF \
- {"has_ic", (PyCFunction)_curses_has_ic, METH_NOARGS, _curses_has_ic__doc__},
-
-static PyObject *
-_curses_has_ic_impl(PyObject *module);
-
-static PyObject *
-_curses_has_ic(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_has_ic_impl(module);
-}
-
-PyDoc_STRVAR(_curses_has_il__doc__,
-"has_il($module, /)\n"
-"--\n"
-"\n"
-"Return True if the terminal has insert- and delete-line capabilities.");
-
-#define _CURSES_HAS_IL_METHODDEF \
- {"has_il", (PyCFunction)_curses_has_il, METH_NOARGS, _curses_has_il__doc__},
-
-static PyObject *
-_curses_has_il_impl(PyObject *module);
-
-static PyObject *
-_curses_has_il(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_has_il_impl(module);
-}
-
-#if defined(HAVE_CURSES_HAS_KEY)
-
-PyDoc_STRVAR(_curses_has_key__doc__,
-"has_key($module, key, /)\n"
-"--\n"
-"\n"
-"Return True if the current terminal type recognizes a key with that value.\n"
-"\n"
-" key\n"
-" Key number.");
-
-#define _CURSES_HAS_KEY_METHODDEF \
- {"has_key", (PyCFunction)_curses_has_key, METH_O, _curses_has_key__doc__},
-
-static PyObject *
-_curses_has_key_impl(PyObject *module, int key);
-
-static PyObject *
-_curses_has_key(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int key;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- key = _PyLong_AsInt(arg);
- if (key == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_has_key_impl(module, key);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_CURSES_HAS_KEY) */
-
-PyDoc_STRVAR(_curses_init_color__doc__,
-"init_color($module, color_number, r, g, b, /)\n"
-"--\n"
-"\n"
-"Change the definition of a color.\n"
-"\n"
-" color_number\n"
-" The number of the color to be changed (0 - (COLORS-1)).\n"
-" r\n"
-" Red component (0 - 1000).\n"
-" g\n"
-" Green component (0 - 1000).\n"
-" b\n"
-" Blue component (0 - 1000).\n"
-"\n"
-"When init_color() is used, all occurrences of that color on the screen\n"
-"immediately change to the new definition. This function is a no-op on\n"
-"most terminals; it is active only if can_change_color() returns true.");
-
-#define _CURSES_INIT_COLOR_METHODDEF \
- {"init_color", (PyCFunction)(void(*)(void))_curses_init_color, METH_FASTCALL, _curses_init_color__doc__},
-
-static PyObject *
-_curses_init_color_impl(PyObject *module, short color_number, short r,
- short g, short b);
-
-static PyObject *
-_curses_init_color(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- short color_number;
- short r;
- short g;
- short b;
-
- if (!_PyArg_CheckPositional("init_color", nargs, 4, 4)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[0]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- color_number = (short) ival;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[1]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- r = (short) ival;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[2]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- g = (short) ival;
- }
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[3]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- b = (short) ival;
- }
- }
- return_value = _curses_init_color_impl(module, color_number, r, g, b);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_init_pair__doc__,
-"init_pair($module, pair_number, fg, bg, /)\n"
-"--\n"
-"\n"
-"Change the definition of a color-pair.\n"
-"\n"
-" pair_number\n"
-" The number of the color-pair to be changed (1 - (COLOR_PAIRS-1)).\n"
-" fg\n"
-" Foreground color number (-1 - (COLORS-1)).\n"
-" bg\n"
-" Background color number (-1 - (COLORS-1)).\n"
-"\n"
-"If the color-pair was previously initialized, the screen is refreshed and\n"
-"all occurrences of that color-pair are changed to the new definition.");
-
-#define _CURSES_INIT_PAIR_METHODDEF \
- {"init_pair", (PyCFunction)(void(*)(void))_curses_init_pair, METH_FASTCALL, _curses_init_pair__doc__},
-
-static PyObject *
-_curses_init_pair_impl(PyObject *module, short pair_number, short fg,
- short bg);
-
-static PyObject *
-_curses_init_pair(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- short pair_number;
- short fg;
- short bg;
-
- if (!_PyArg_CheckPositional("init_pair", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[0]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- pair_number = (short) ival;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[1]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- fg = (short) ival;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(args[2]);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- bg = (short) ival;
- }
- }
- return_value = _curses_init_pair_impl(module, pair_number, fg, bg);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_initscr__doc__,
-"initscr($module, /)\n"
-"--\n"
-"\n"
-"Initialize the library.\n"
-"\n"
-"Return a WindowObject which represents the whole screen.");
-
-#define _CURSES_INITSCR_METHODDEF \
- {"initscr", (PyCFunction)_curses_initscr, METH_NOARGS, _curses_initscr__doc__},
-
-static PyObject *
-_curses_initscr_impl(PyObject *module);
-
-static PyObject *
-_curses_initscr(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_initscr_impl(module);
-}
-
-PyDoc_STRVAR(_curses_setupterm__doc__,
-"setupterm($module, /, term=None, fd=-1)\n"
-"--\n"
-"\n"
-"Initialize the terminal.\n"
-"\n"
-" term\n"
-" Terminal name.\n"
-" If omitted, the value of the TERM environment variable will be used.\n"
-" fd\n"
-" File descriptor to which any initialization sequences will be sent.\n"
-" If not supplied, the file descriptor for sys.stdout will be used.");
-
-#define _CURSES_SETUPTERM_METHODDEF \
- {"setupterm", (PyCFunction)(void(*)(void))_curses_setupterm, METH_FASTCALL|METH_KEYWORDS, _curses_setupterm__doc__},
-
-static PyObject *
-_curses_setupterm_impl(PyObject *module, const char *term, int fd);
-
-static PyObject *
-_curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"term", "fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "setupterm", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- const char *term = NULL;
- int fd = -1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (args[0] == Py_None) {
- term = NULL;
- }
- else if (PyUnicode_Check(args[0])) {
- Py_ssize_t term_length;
- term = PyUnicode_AsUTF8AndSize(args[0], &term_length);
- if (term == NULL) {
- goto exit;
- }
- if (strlen(term) != (size_t)term_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("setupterm", "argument 'term'", "str or None", args[0]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[1]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = _curses_setupterm_impl(module, term, fd);
-
-exit:
- return return_value;
-}
-
-#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
-
-PyDoc_STRVAR(_curses_get_escdelay__doc__,
-"get_escdelay($module, /)\n"
-"--\n"
-"\n"
-"Gets the curses ESCDELAY setting.\n"
-"\n"
-"Gets the number of milliseconds to wait after reading an escape character,\n"
-"to distinguish between an individual escape character entered on the\n"
-"keyboard from escape sequences sent by cursor and function keys.");
-
-#define _CURSES_GET_ESCDELAY_METHODDEF \
- {"get_escdelay", (PyCFunction)_curses_get_escdelay, METH_NOARGS, _curses_get_escdelay__doc__},
-
-static PyObject *
-_curses_get_escdelay_impl(PyObject *module);
-
-static PyObject *
-_curses_get_escdelay(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_get_escdelay_impl(module);
-}
-
-#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
-
-#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
-
-PyDoc_STRVAR(_curses_set_escdelay__doc__,
-"set_escdelay($module, ms, /)\n"
-"--\n"
-"\n"
-"Sets the curses ESCDELAY setting.\n"
-"\n"
-" ms\n"
-" length of the delay in milliseconds.\n"
-"\n"
-"Sets the number of milliseconds to wait after reading an escape character,\n"
-"to distinguish between an individual escape character entered on the\n"
-"keyboard from escape sequences sent by cursor and function keys.");
-
-#define _CURSES_SET_ESCDELAY_METHODDEF \
- {"set_escdelay", (PyCFunction)_curses_set_escdelay, METH_O, _curses_set_escdelay__doc__},
-
-static PyObject *
-_curses_set_escdelay_impl(PyObject *module, int ms);
-
-static PyObject *
-_curses_set_escdelay(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int ms;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- ms = _PyLong_AsInt(arg);
- if (ms == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_set_escdelay_impl(module, ms);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
-
-#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
-
-PyDoc_STRVAR(_curses_get_tabsize__doc__,
-"get_tabsize($module, /)\n"
-"--\n"
-"\n"
-"Gets the curses TABSIZE setting.\n"
-"\n"
-"Gets the number of columns used by the curses library when converting a tab\n"
-"character to spaces as it adds the tab to a window.");
-
-#define _CURSES_GET_TABSIZE_METHODDEF \
- {"get_tabsize", (PyCFunction)_curses_get_tabsize, METH_NOARGS, _curses_get_tabsize__doc__},
-
-static PyObject *
-_curses_get_tabsize_impl(PyObject *module);
-
-static PyObject *
-_curses_get_tabsize(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_get_tabsize_impl(module);
-}
-
-#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
-
-#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
-
-PyDoc_STRVAR(_curses_set_tabsize__doc__,
-"set_tabsize($module, size, /)\n"
-"--\n"
-"\n"
-"Sets the curses TABSIZE setting.\n"
-"\n"
-" size\n"
-" rendered cell width of a tab character.\n"
-"\n"
-"Sets the number of columns used by the curses library when converting a tab\n"
-"character to spaces as it adds the tab to a window.");
-
-#define _CURSES_SET_TABSIZE_METHODDEF \
- {"set_tabsize", (PyCFunction)_curses_set_tabsize, METH_O, _curses_set_tabsize__doc__},
-
-static PyObject *
-_curses_set_tabsize_impl(PyObject *module, int size);
-
-static PyObject *
-_curses_set_tabsize(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int size;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- size = _PyLong_AsInt(arg);
- if (size == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_set_tabsize_impl(module, size);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
-
-PyDoc_STRVAR(_curses_intrflush__doc__,
-"intrflush($module, flag, /)\n"
-"--\n"
-"\n");
-
-#define _CURSES_INTRFLUSH_METHODDEF \
- {"intrflush", (PyCFunction)_curses_intrflush, METH_O, _curses_intrflush__doc__},
-
-static PyObject *
-_curses_intrflush_impl(PyObject *module, int flag);
-
-static PyObject *
-_curses_intrflush(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int flag;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(arg);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_intrflush_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_isendwin__doc__,
-"isendwin($module, /)\n"
-"--\n"
-"\n"
-"Return True if endwin() has been called.");
-
-#define _CURSES_ISENDWIN_METHODDEF \
- {"isendwin", (PyCFunction)_curses_isendwin, METH_NOARGS, _curses_isendwin__doc__},
-
-static PyObject *
-_curses_isendwin_impl(PyObject *module);
-
-static PyObject *
-_curses_isendwin(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_isendwin_impl(module);
-}
-
-#if defined(HAVE_CURSES_IS_TERM_RESIZED)
-
-PyDoc_STRVAR(_curses_is_term_resized__doc__,
-"is_term_resized($module, nlines, ncols, /)\n"
-"--\n"
-"\n"
-"Return True if resize_term() would modify the window structure, False otherwise.\n"
-"\n"
-" nlines\n"
-" Height.\n"
-" ncols\n"
-" Width.");
-
-#define _CURSES_IS_TERM_RESIZED_METHODDEF \
- {"is_term_resized", (PyCFunction)(void(*)(void))_curses_is_term_resized, METH_FASTCALL, _curses_is_term_resized__doc__},
-
-static PyObject *
-_curses_is_term_resized_impl(PyObject *module, int nlines, int ncols);
-
-static PyObject *
-_curses_is_term_resized(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int nlines;
- int ncols;
-
- if (!_PyArg_CheckPositional("is_term_resized", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- nlines = _PyLong_AsInt(args[0]);
- if (nlines == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- ncols = _PyLong_AsInt(args[1]);
- if (ncols == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_is_term_resized_impl(module, nlines, ncols);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_CURSES_IS_TERM_RESIZED) */
-
-PyDoc_STRVAR(_curses_keyname__doc__,
-"keyname($module, key, /)\n"
-"--\n"
-"\n"
-"Return the name of specified key.\n"
-"\n"
-" key\n"
-" Key number.");
-
-#define _CURSES_KEYNAME_METHODDEF \
- {"keyname", (PyCFunction)_curses_keyname, METH_O, _curses_keyname__doc__},
-
-static PyObject *
-_curses_keyname_impl(PyObject *module, int key);
-
-static PyObject *
-_curses_keyname(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int key;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- key = _PyLong_AsInt(arg);
- if (key == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_keyname_impl(module, key);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_killchar__doc__,
-"killchar($module, /)\n"
-"--\n"
-"\n"
-"Return the user\'s current line kill character.");
-
-#define _CURSES_KILLCHAR_METHODDEF \
- {"killchar", (PyCFunction)_curses_killchar, METH_NOARGS, _curses_killchar__doc__},
-
-static PyObject *
-_curses_killchar_impl(PyObject *module);
-
-static PyObject *
-_curses_killchar(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_killchar_impl(module);
-}
-
-PyDoc_STRVAR(_curses_longname__doc__,
-"longname($module, /)\n"
-"--\n"
-"\n"
-"Return the terminfo long name field describing the current terminal.\n"
-"\n"
-"The maximum length of a verbose description is 128 characters. It is defined\n"
-"only after the call to initscr().");
-
-#define _CURSES_LONGNAME_METHODDEF \
- {"longname", (PyCFunction)_curses_longname, METH_NOARGS, _curses_longname__doc__},
-
-static PyObject *
-_curses_longname_impl(PyObject *module);
-
-static PyObject *
-_curses_longname(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_longname_impl(module);
-}
-
-PyDoc_STRVAR(_curses_meta__doc__,
-"meta($module, yes, /)\n"
-"--\n"
-"\n"
-"Enable/disable meta keys.\n"
-"\n"
-"If yes is True, allow 8-bit characters to be input. If yes is False,\n"
-"allow only 7-bit characters.");
-
-#define _CURSES_META_METHODDEF \
- {"meta", (PyCFunction)_curses_meta, METH_O, _curses_meta__doc__},
-
-static PyObject *
-_curses_meta_impl(PyObject *module, int yes);
-
-static PyObject *
-_curses_meta(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int yes;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- yes = _PyLong_AsInt(arg);
- if (yes == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_meta_impl(module, yes);
-
-exit:
- return return_value;
-}
-
-#if defined(NCURSES_MOUSE_VERSION)
-
-PyDoc_STRVAR(_curses_mouseinterval__doc__,
-"mouseinterval($module, interval, /)\n"
-"--\n"
-"\n"
-"Set and retrieve the maximum time between press and release in a click.\n"
-"\n"
-" interval\n"
-" Time in milliseconds.\n"
-"\n"
-"Set the maximum time that can elapse between press and release events in\n"
-"order for them to be recognized as a click, and return the previous interval\n"
-"value.");
-
-#define _CURSES_MOUSEINTERVAL_METHODDEF \
- {"mouseinterval", (PyCFunction)_curses_mouseinterval, METH_O, _curses_mouseinterval__doc__},
-
-static PyObject *
-_curses_mouseinterval_impl(PyObject *module, int interval);
-
-static PyObject *
-_curses_mouseinterval(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int interval;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- interval = _PyLong_AsInt(arg);
- if (interval == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_mouseinterval_impl(module, interval);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(NCURSES_MOUSE_VERSION) */
-
-#if defined(NCURSES_MOUSE_VERSION)
-
-PyDoc_STRVAR(_curses_mousemask__doc__,
-"mousemask($module, newmask, /)\n"
-"--\n"
-"\n"
-"Set the mouse events to be reported, and return a tuple (availmask, oldmask).\n"
-"\n"
-"Return a tuple (availmask, oldmask). availmask indicates which of the\n"
-"specified mouse events can be reported; on complete failure it returns 0.\n"
-"oldmask is the previous value of the given window\'s mouse event mask.\n"
-"If this function is never called, no mouse events are ever reported.");
-
-#define _CURSES_MOUSEMASK_METHODDEF \
- {"mousemask", (PyCFunction)_curses_mousemask, METH_O, _curses_mousemask__doc__},
-
-static PyObject *
-_curses_mousemask_impl(PyObject *module, unsigned long newmask);
-
-static PyObject *
-_curses_mousemask(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- unsigned long newmask;
-
- if (!PyLong_Check(arg)) {
- _PyArg_BadArgument("mousemask", "argument", "int", arg);
- goto exit;
- }
- newmask = PyLong_AsUnsignedLongMask(arg);
- return_value = _curses_mousemask_impl(module, newmask);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(NCURSES_MOUSE_VERSION) */
-
-PyDoc_STRVAR(_curses_napms__doc__,
-"napms($module, ms, /)\n"
-"--\n"
-"\n"
-"Sleep for specified time.\n"
-"\n"
-" ms\n"
-" Duration in milliseconds.");
-
-#define _CURSES_NAPMS_METHODDEF \
- {"napms", (PyCFunction)_curses_napms, METH_O, _curses_napms__doc__},
-
-static PyObject *
-_curses_napms_impl(PyObject *module, int ms);
-
-static PyObject *
-_curses_napms(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int ms;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- ms = _PyLong_AsInt(arg);
- if (ms == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_napms_impl(module, ms);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_newpad__doc__,
-"newpad($module, nlines, ncols, /)\n"
-"--\n"
-"\n"
-"Create and return a pointer to a new pad data structure.\n"
-"\n"
-" nlines\n"
-" Height.\n"
-" ncols\n"
-" Width.");
-
-#define _CURSES_NEWPAD_METHODDEF \
- {"newpad", (PyCFunction)(void(*)(void))_curses_newpad, METH_FASTCALL, _curses_newpad__doc__},
-
-static PyObject *
-_curses_newpad_impl(PyObject *module, int nlines, int ncols);
-
-static PyObject *
-_curses_newpad(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int nlines;
- int ncols;
-
- if (!_PyArg_CheckPositional("newpad", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- nlines = _PyLong_AsInt(args[0]);
- if (nlines == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- ncols = _PyLong_AsInt(args[1]);
- if (ncols == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_newpad_impl(module, nlines, ncols);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_newwin__doc__,
-"newwin(nlines, ncols, [begin_y=0, begin_x=0])\n"
-"Return a new window.\n"
-"\n"
-" nlines\n"
-" Height.\n"
-" ncols\n"
-" Width.\n"
-" begin_y\n"
-" Top side y-coordinate.\n"
-" begin_x\n"
-" Left side x-coordinate.\n"
-"\n"
-"By default, the window will extend from the specified position to the lower\n"
-"right corner of the screen.");
-
-#define _CURSES_NEWWIN_METHODDEF \
- {"newwin", (PyCFunction)_curses_newwin, METH_VARARGS, _curses_newwin__doc__},
-
-static PyObject *
-_curses_newwin_impl(PyObject *module, int nlines, int ncols,
- int group_right_1, int begin_y, int begin_x);
-
-static PyObject *
-_curses_newwin(PyObject *module, PyObject *args)
-{
- PyObject *return_value = NULL;
- int nlines;
- int ncols;
- int group_right_1 = 0;
- int begin_y = 0;
- int begin_x = 0;
-
- switch (PyTuple_GET_SIZE(args)) {
- case 2:
- if (!PyArg_ParseTuple(args, "ii:newwin", &nlines, &ncols)) {
- goto exit;
- }
- break;
- case 4:
- if (!PyArg_ParseTuple(args, "iiii:newwin", &nlines, &ncols, &begin_y, &begin_x)) {
- goto exit;
- }
- group_right_1 = 1;
- break;
- default:
- PyErr_SetString(PyExc_TypeError, "_curses.newwin requires 2 to 4 arguments");
- goto exit;
- }
- return_value = _curses_newwin_impl(module, nlines, ncols, group_right_1, begin_y, begin_x);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_nl__doc__,
-"nl($module, flag=True, /)\n"
-"--\n"
-"\n"
-"Enter newline mode.\n"
-"\n"
-" flag\n"
-" If false, the effect is the same as calling nonl().\n"
-"\n"
-"This mode translates the return key into newline on input, and translates\n"
-"newline into return and line-feed on output. Newline mode is initially on.");
-
-#define _CURSES_NL_METHODDEF \
- {"nl", (PyCFunction)(void(*)(void))_curses_nl, METH_FASTCALL, _curses_nl__doc__},
-
-static PyObject *
-_curses_nl_impl(PyObject *module, int flag);
-
-static PyObject *
-_curses_nl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int flag = 1;
-
- if (!_PyArg_CheckPositional("nl", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(args[0]);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_nl_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_nocbreak__doc__,
-"nocbreak($module, /)\n"
-"--\n"
-"\n"
-"Leave cbreak mode.\n"
-"\n"
-"Return to normal \"cooked\" mode with line buffering.");
-
-#define _CURSES_NOCBREAK_METHODDEF \
- {"nocbreak", (PyCFunction)_curses_nocbreak, METH_NOARGS, _curses_nocbreak__doc__},
-
-static PyObject *
-_curses_nocbreak_impl(PyObject *module);
-
-static PyObject *
-_curses_nocbreak(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_nocbreak_impl(module);
-}
-
-PyDoc_STRVAR(_curses_noecho__doc__,
-"noecho($module, /)\n"
-"--\n"
-"\n"
-"Leave echo mode.\n"
-"\n"
-"Echoing of input characters is turned off.");
-
-#define _CURSES_NOECHO_METHODDEF \
- {"noecho", (PyCFunction)_curses_noecho, METH_NOARGS, _curses_noecho__doc__},
-
-static PyObject *
-_curses_noecho_impl(PyObject *module);
-
-static PyObject *
-_curses_noecho(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_noecho_impl(module);
-}
-
-PyDoc_STRVAR(_curses_nonl__doc__,
-"nonl($module, /)\n"
-"--\n"
-"\n"
-"Leave newline mode.\n"
-"\n"
-"Disable translation of return into newline on input, and disable low-level\n"
-"translation of newline into newline/return on output.");
-
-#define _CURSES_NONL_METHODDEF \
- {"nonl", (PyCFunction)_curses_nonl, METH_NOARGS, _curses_nonl__doc__},
-
-static PyObject *
-_curses_nonl_impl(PyObject *module);
-
-static PyObject *
-_curses_nonl(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_nonl_impl(module);
-}
-
-PyDoc_STRVAR(_curses_noqiflush__doc__,
-"noqiflush($module, /)\n"
-"--\n"
-"\n"
-"Disable queue flushing.\n"
-"\n"
-"When queue flushing is disabled, normal flush of input and output queues\n"
-"associated with the INTR, QUIT and SUSP characters will not be done.");
-
-#define _CURSES_NOQIFLUSH_METHODDEF \
- {"noqiflush", (PyCFunction)_curses_noqiflush, METH_NOARGS, _curses_noqiflush__doc__},
-
-static PyObject *
-_curses_noqiflush_impl(PyObject *module);
-
-static PyObject *
-_curses_noqiflush(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_noqiflush_impl(module);
-}
-
-PyDoc_STRVAR(_curses_noraw__doc__,
-"noraw($module, /)\n"
-"--\n"
-"\n"
-"Leave raw mode.\n"
-"\n"
-"Return to normal \"cooked\" mode with line buffering.");
-
-#define _CURSES_NORAW_METHODDEF \
- {"noraw", (PyCFunction)_curses_noraw, METH_NOARGS, _curses_noraw__doc__},
-
-static PyObject *
-_curses_noraw_impl(PyObject *module);
-
-static PyObject *
-_curses_noraw(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_noraw_impl(module);
-}
-
-PyDoc_STRVAR(_curses_pair_content__doc__,
-"pair_content($module, pair_number, /)\n"
-"--\n"
-"\n"
-"Return a tuple (fg, bg) containing the colors for the requested color pair.\n"
-"\n"
-" pair_number\n"
-" The number of the color pair (1 - (COLOR_PAIRS-1)).");
-
-#define _CURSES_PAIR_CONTENT_METHODDEF \
- {"pair_content", (PyCFunction)_curses_pair_content, METH_O, _curses_pair_content__doc__},
-
-static PyObject *
-_curses_pair_content_impl(PyObject *module, short pair_number);
-
-static PyObject *
-_curses_pair_content(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- short pair_number;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- long ival = PyLong_AsLong(arg);
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- else if (ival < SHRT_MIN) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is less than minimum");
- goto exit;
- }
- else if (ival > SHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "signed short integer is greater than maximum");
- goto exit;
- }
- else {
- pair_number = (short) ival;
- }
- }
- return_value = _curses_pair_content_impl(module, pair_number);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_pair_number__doc__,
-"pair_number($module, attr, /)\n"
-"--\n"
-"\n"
-"Return the number of the color-pair set by the specified attribute value.\n"
-"\n"
-"color_pair() is the counterpart to this function.");
-
-#define _CURSES_PAIR_NUMBER_METHODDEF \
- {"pair_number", (PyCFunction)_curses_pair_number, METH_O, _curses_pair_number__doc__},
-
-static PyObject *
-_curses_pair_number_impl(PyObject *module, int attr);
-
-static PyObject *
-_curses_pair_number(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int attr;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- attr = _PyLong_AsInt(arg);
- if (attr == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_pair_number_impl(module, attr);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_putp__doc__,
-"putp($module, string, /)\n"
-"--\n"
-"\n"
-"Emit the value of a specified terminfo capability for the current terminal.\n"
-"\n"
-"Note that the output of putp() always goes to standard output.");
-
-#define _CURSES_PUTP_METHODDEF \
- {"putp", (PyCFunction)_curses_putp, METH_O, _curses_putp__doc__},
-
-static PyObject *
-_curses_putp_impl(PyObject *module, const char *string);
-
-static PyObject *
-_curses_putp(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- const char *string;
-
- if (!PyArg_Parse(arg, "y:putp", &string)) {
- goto exit;
- }
- return_value = _curses_putp_impl(module, string);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_qiflush__doc__,
-"qiflush($module, flag=True, /)\n"
-"--\n"
-"\n"
-"Enable queue flushing.\n"
-"\n"
-" flag\n"
-" If false, the effect is the same as calling noqiflush().\n"
-"\n"
-"If queue flushing is enabled, all output in the display driver queue\n"
-"will be flushed when the INTR, QUIT and SUSP characters are read.");
-
-#define _CURSES_QIFLUSH_METHODDEF \
- {"qiflush", (PyCFunction)(void(*)(void))_curses_qiflush, METH_FASTCALL, _curses_qiflush__doc__},
-
-static PyObject *
-_curses_qiflush_impl(PyObject *module, int flag);
-
-static PyObject *
-_curses_qiflush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int flag = 1;
-
- if (!_PyArg_CheckPositional("qiflush", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(args[0]);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_qiflush_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-#if (defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM))
-
-PyDoc_STRVAR(_curses_update_lines_cols__doc__,
-"update_lines_cols($module, /)\n"
-"--\n"
-"\n");
-
-#define _CURSES_UPDATE_LINES_COLS_METHODDEF \
- {"update_lines_cols", (PyCFunction)_curses_update_lines_cols, METH_NOARGS, _curses_update_lines_cols__doc__},
-
-static PyObject *
-_curses_update_lines_cols_impl(PyObject *module);
-
-static PyObject *
-_curses_update_lines_cols(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_update_lines_cols_impl(module);
-}
-
-#endif /* (defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM)) */
-
-PyDoc_STRVAR(_curses_raw__doc__,
-"raw($module, flag=True, /)\n"
-"--\n"
-"\n"
-"Enter raw mode.\n"
-"\n"
-" flag\n"
-" If false, the effect is the same as calling noraw().\n"
-"\n"
-"In raw mode, normal line buffering and processing of interrupt, quit,\n"
-"suspend, and flow control keys are turned off; characters are presented to\n"
-"curses input functions one by one.");
-
-#define _CURSES_RAW_METHODDEF \
- {"raw", (PyCFunction)(void(*)(void))_curses_raw, METH_FASTCALL, _curses_raw__doc__},
-
-static PyObject *
-_curses_raw_impl(PyObject *module, int flag);
-
-static PyObject *
-_curses_raw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int flag = 1;
-
- if (!_PyArg_CheckPositional("raw", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(args[0]);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = _curses_raw_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_reset_prog_mode__doc__,
-"reset_prog_mode($module, /)\n"
-"--\n"
-"\n"
-"Restore the terminal to \"program\" mode, as previously saved by def_prog_mode().");
-
-#define _CURSES_RESET_PROG_MODE_METHODDEF \
- {"reset_prog_mode", (PyCFunction)_curses_reset_prog_mode, METH_NOARGS, _curses_reset_prog_mode__doc__},
-
-static PyObject *
-_curses_reset_prog_mode_impl(PyObject *module);
-
-static PyObject *
-_curses_reset_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_reset_prog_mode_impl(module);
-}
-
-PyDoc_STRVAR(_curses_reset_shell_mode__doc__,
-"reset_shell_mode($module, /)\n"
-"--\n"
-"\n"
-"Restore the terminal to \"shell\" mode, as previously saved by def_shell_mode().");
-
-#define _CURSES_RESET_SHELL_MODE_METHODDEF \
- {"reset_shell_mode", (PyCFunction)_curses_reset_shell_mode, METH_NOARGS, _curses_reset_shell_mode__doc__},
-
-static PyObject *
-_curses_reset_shell_mode_impl(PyObject *module);
-
-static PyObject *
-_curses_reset_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_reset_shell_mode_impl(module);
-}
-
-PyDoc_STRVAR(_curses_resetty__doc__,
-"resetty($module, /)\n"
-"--\n"
-"\n"
-"Restore terminal mode.");
-
-#define _CURSES_RESETTY_METHODDEF \
- {"resetty", (PyCFunction)_curses_resetty, METH_NOARGS, _curses_resetty__doc__},
-
-static PyObject *
-_curses_resetty_impl(PyObject *module);
-
-static PyObject *
-_curses_resetty(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_resetty_impl(module);
-}
-
-#if defined(HAVE_CURSES_RESIZETERM)
-
-PyDoc_STRVAR(_curses_resizeterm__doc__,
-"resizeterm($module, nlines, ncols, /)\n"
-"--\n"
-"\n"
-"Resize the standard and current windows to the specified dimensions.\n"
-"\n"
-" nlines\n"
-" Height.\n"
-" ncols\n"
-" Width.\n"
-"\n"
-"Adjusts other bookkeeping data used by the curses library that record the\n"
-"window dimensions (in particular the SIGWINCH handler).");
-
-#define _CURSES_RESIZETERM_METHODDEF \
- {"resizeterm", (PyCFunction)(void(*)(void))_curses_resizeterm, METH_FASTCALL, _curses_resizeterm__doc__},
-
-static PyObject *
-_curses_resizeterm_impl(PyObject *module, int nlines, int ncols);
-
-static PyObject *
-_curses_resizeterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int nlines;
- int ncols;
-
- if (!_PyArg_CheckPositional("resizeterm", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- nlines = _PyLong_AsInt(args[0]);
- if (nlines == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- ncols = _PyLong_AsInt(args[1]);
- if (ncols == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_resizeterm_impl(module, nlines, ncols);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_CURSES_RESIZETERM) */
-
-#if defined(HAVE_CURSES_RESIZE_TERM)
-
-PyDoc_STRVAR(_curses_resize_term__doc__,
-"resize_term($module, nlines, ncols, /)\n"
-"--\n"
-"\n"
-"Backend function used by resizeterm(), performing most of the work.\n"
-"\n"
-" nlines\n"
-" Height.\n"
-" ncols\n"
-" Width.\n"
-"\n"
-"When resizing the windows, resize_term() blank-fills the areas that are\n"
-"extended. The calling application should fill in these areas with appropriate\n"
-"data. The resize_term() function attempts to resize all windows. However,\n"
-"due to the calling convention of pads, it is not possible to resize these\n"
-"without additional interaction with the application.");
-
-#define _CURSES_RESIZE_TERM_METHODDEF \
- {"resize_term", (PyCFunction)(void(*)(void))_curses_resize_term, METH_FASTCALL, _curses_resize_term__doc__},
-
-static PyObject *
-_curses_resize_term_impl(PyObject *module, int nlines, int ncols);
-
-static PyObject *
-_curses_resize_term(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int nlines;
- int ncols;
-
- if (!_PyArg_CheckPositional("resize_term", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- nlines = _PyLong_AsInt(args[0]);
- if (nlines == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- ncols = _PyLong_AsInt(args[1]);
- if (ncols == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_resize_term_impl(module, nlines, ncols);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_CURSES_RESIZE_TERM) */
-
-PyDoc_STRVAR(_curses_savetty__doc__,
-"savetty($module, /)\n"
-"--\n"
-"\n"
-"Save terminal mode.");
-
-#define _CURSES_SAVETTY_METHODDEF \
- {"savetty", (PyCFunction)_curses_savetty, METH_NOARGS, _curses_savetty__doc__},
-
-static PyObject *
-_curses_savetty_impl(PyObject *module);
-
-static PyObject *
-_curses_savetty(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_savetty_impl(module);
-}
-
-#if defined(getsyx)
-
-PyDoc_STRVAR(_curses_setsyx__doc__,
-"setsyx($module, y, x, /)\n"
-"--\n"
-"\n"
-"Set the virtual screen cursor.\n"
-"\n"
-" y\n"
-" Y-coordinate.\n"
-" x\n"
-" X-coordinate.\n"
-"\n"
-"If y and x are both -1, then leaveok is set.");
-
-#define _CURSES_SETSYX_METHODDEF \
- {"setsyx", (PyCFunction)(void(*)(void))_curses_setsyx, METH_FASTCALL, _curses_setsyx__doc__},
-
-static PyObject *
-_curses_setsyx_impl(PyObject *module, int y, int x);
-
-static PyObject *
-_curses_setsyx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int y;
- int x;
-
- if (!_PyArg_CheckPositional("setsyx", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- y = _PyLong_AsInt(args[0]);
- if (y == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- x = _PyLong_AsInt(args[1]);
- if (x == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_setsyx_impl(module, y, x);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(getsyx) */
-
-PyDoc_STRVAR(_curses_start_color__doc__,
-"start_color($module, /)\n"
-"--\n"
-"\n"
-"Initializes eight basic colors and global variables COLORS and COLOR_PAIRS.\n"
-"\n"
-"Must be called if the programmer wants to use colors, and before any other\n"
-"color manipulation routine is called. It is good practice to call this\n"
-"routine right after initscr().\n"
-"\n"
-"It also restores the colors on the terminal to the values they had when the\n"
-"terminal was just turned on.");
-
-#define _CURSES_START_COLOR_METHODDEF \
- {"start_color", (PyCFunction)_curses_start_color, METH_NOARGS, _curses_start_color__doc__},
-
-static PyObject *
-_curses_start_color_impl(PyObject *module);
-
-static PyObject *
-_curses_start_color(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_start_color_impl(module);
-}
-
-PyDoc_STRVAR(_curses_termattrs__doc__,
-"termattrs($module, /)\n"
-"--\n"
-"\n"
-"Return a logical OR of all video attributes supported by the terminal.");
-
-#define _CURSES_TERMATTRS_METHODDEF \
- {"termattrs", (PyCFunction)_curses_termattrs, METH_NOARGS, _curses_termattrs__doc__},
-
-static PyObject *
-_curses_termattrs_impl(PyObject *module);
-
-static PyObject *
-_curses_termattrs(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_termattrs_impl(module);
-}
-
-PyDoc_STRVAR(_curses_termname__doc__,
-"termname($module, /)\n"
-"--\n"
-"\n"
-"Return the value of the environment variable TERM, truncated to 14 characters.");
-
-#define _CURSES_TERMNAME_METHODDEF \
- {"termname", (PyCFunction)_curses_termname, METH_NOARGS, _curses_termname__doc__},
-
-static PyObject *
-_curses_termname_impl(PyObject *module);
-
-static PyObject *
-_curses_termname(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_termname_impl(module);
-}
-
-PyDoc_STRVAR(_curses_tigetflag__doc__,
-"tigetflag($module, capname, /)\n"
-"--\n"
-"\n"
-"Return the value of the Boolean capability.\n"
-"\n"
-" capname\n"
-" The terminfo capability name.\n"
-"\n"
-"The value -1 is returned if capname is not a Boolean capability, or 0 if\n"
-"it is canceled or absent from the terminal description.");
-
-#define _CURSES_TIGETFLAG_METHODDEF \
- {"tigetflag", (PyCFunction)_curses_tigetflag, METH_O, _curses_tigetflag__doc__},
-
-static PyObject *
-_curses_tigetflag_impl(PyObject *module, const char *capname);
-
-static PyObject *
-_curses_tigetflag(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- const char *capname;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("tigetflag", "argument", "str", arg);
- goto exit;
- }
- Py_ssize_t capname_length;
- capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
- if (capname == NULL) {
- goto exit;
- }
- if (strlen(capname) != (size_t)capname_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- return_value = _curses_tigetflag_impl(module, capname);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_tigetnum__doc__,
-"tigetnum($module, capname, /)\n"
-"--\n"
-"\n"
-"Return the value of the numeric capability.\n"
-"\n"
-" capname\n"
-" The terminfo capability name.\n"
-"\n"
-"The value -2 is returned if capname is not a numeric capability, or -1 if\n"
-"it is canceled or absent from the terminal description.");
-
-#define _CURSES_TIGETNUM_METHODDEF \
- {"tigetnum", (PyCFunction)_curses_tigetnum, METH_O, _curses_tigetnum__doc__},
-
-static PyObject *
-_curses_tigetnum_impl(PyObject *module, const char *capname);
-
-static PyObject *
-_curses_tigetnum(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- const char *capname;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("tigetnum", "argument", "str", arg);
- goto exit;
- }
- Py_ssize_t capname_length;
- capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
- if (capname == NULL) {
- goto exit;
- }
- if (strlen(capname) != (size_t)capname_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- return_value = _curses_tigetnum_impl(module, capname);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_tigetstr__doc__,
-"tigetstr($module, capname, /)\n"
-"--\n"
-"\n"
-"Return the value of the string capability.\n"
-"\n"
-" capname\n"
-" The terminfo capability name.\n"
-"\n"
-"None is returned if capname is not a string capability, or is canceled or\n"
-"absent from the terminal description.");
-
-#define _CURSES_TIGETSTR_METHODDEF \
- {"tigetstr", (PyCFunction)_curses_tigetstr, METH_O, _curses_tigetstr__doc__},
-
-static PyObject *
-_curses_tigetstr_impl(PyObject *module, const char *capname);
-
-static PyObject *
-_curses_tigetstr(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- const char *capname;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("tigetstr", "argument", "str", arg);
- goto exit;
- }
- Py_ssize_t capname_length;
- capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
- if (capname == NULL) {
- goto exit;
- }
- if (strlen(capname) != (size_t)capname_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- return_value = _curses_tigetstr_impl(module, capname);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_curses_tparm__doc__,
-"tparm($module, str, i1=0, i2=0, i3=0, i4=0, i5=0, i6=0, i7=0, i8=0,\n"
-" i9=0, /)\n"
-"--\n"
-"\n"
-"Instantiate the specified byte string with the supplied parameters.\n"
-"\n"
-" str\n"
-" Parameterized byte string obtained from the terminfo database.");
-
-#define _CURSES_TPARM_METHODDEF \
- {"tparm", (PyCFunction)(void(*)(void))_curses_tparm, METH_FASTCALL, _curses_tparm__doc__},
-
-static PyObject *
-_curses_tparm_impl(PyObject *module, const char *str, int i1, int i2, int i3,
- int i4, int i5, int i6, int i7, int i8, int i9);
-
-static PyObject *
-_curses_tparm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- const char *str;
- int i1 = 0;
- int i2 = 0;
- int i3 = 0;
- int i4 = 0;
- int i5 = 0;
- int i6 = 0;
- int i7 = 0;
- int i8 = 0;
- int i9 = 0;
-
- if (!_PyArg_ParseStack(args, nargs, "y|iiiiiiiii:tparm",
- &str, &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8, &i9)) {
- goto exit;
- }
- return_value = _curses_tparm_impl(module, str, i1, i2, i3, i4, i5, i6, i7, i8, i9);
-
-exit:
- return return_value;
-}
-
-#if defined(HAVE_CURSES_TYPEAHEAD)
-
-PyDoc_STRVAR(_curses_typeahead__doc__,
-"typeahead($module, fd, /)\n"
-"--\n"
-"\n"
-"Specify that the file descriptor fd be used for typeahead checking.\n"
-"\n"
-" fd\n"
-" File descriptor.\n"
-"\n"
-"If fd is -1, then no typeahead checking is done.");
-
-#define _CURSES_TYPEAHEAD_METHODDEF \
- {"typeahead", (PyCFunction)_curses_typeahead, METH_O, _curses_typeahead__doc__},
-
-static PyObject *
-_curses_typeahead_impl(PyObject *module, int fd);
-
-static PyObject *
-_curses_typeahead(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int fd;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_typeahead_impl(module, fd);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_CURSES_TYPEAHEAD) */
-
-PyDoc_STRVAR(_curses_unctrl__doc__,
-"unctrl($module, ch, /)\n"
-"--\n"
-"\n"
-"Return a string which is a printable representation of the character ch.\n"
-"\n"
-"Control characters are displayed as a caret followed by the character,\n"
-"for example as ^C. Printing characters are left as they are.");
-
-#define _CURSES_UNCTRL_METHODDEF \
- {"unctrl", (PyCFunction)_curses_unctrl, METH_O, _curses_unctrl__doc__},
-
-PyDoc_STRVAR(_curses_ungetch__doc__,
-"ungetch($module, ch, /)\n"
-"--\n"
-"\n"
-"Push ch so the next getch() will return it.");
-
-#define _CURSES_UNGETCH_METHODDEF \
- {"ungetch", (PyCFunction)_curses_ungetch, METH_O, _curses_ungetch__doc__},
-
-#if defined(HAVE_NCURSESW)
-
-PyDoc_STRVAR(_curses_unget_wch__doc__,
-"unget_wch($module, ch, /)\n"
-"--\n"
-"\n"
-"Push ch so the next get_wch() will return it.");
-
-#define _CURSES_UNGET_WCH_METHODDEF \
- {"unget_wch", (PyCFunction)_curses_unget_wch, METH_O, _curses_unget_wch__doc__},
-
-#endif /* defined(HAVE_NCURSESW) */
-
-#if defined(HAVE_CURSES_USE_ENV)
-
-PyDoc_STRVAR(_curses_use_env__doc__,
-"use_env($module, flag, /)\n"
-"--\n"
-"\n"
-"Use environment variables LINES and COLUMNS.\n"
-"\n"
-"If used, this function should be called before initscr() or newterm() are\n"
-"called.\n"
-"\n"
-"When flag is False, the values of lines and columns specified in the terminfo\n"
-"database will be used, even if environment variables LINES and COLUMNS (used\n"
-"by default) are set, or if curses is running in a window (in which case\n"
-"default behavior would be to use the window size if LINES and COLUMNS are\n"
-"not set).");
-
-#define _CURSES_USE_ENV_METHODDEF \
- {"use_env", (PyCFunction)_curses_use_env, METH_O, _curses_use_env__doc__},
-
-static PyObject *
-_curses_use_env_impl(PyObject *module, int flag);
-
-static PyObject *
-_curses_use_env(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int flag;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(arg);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _curses_use_env_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_CURSES_USE_ENV) */
-
-#if !defined(STRICT_SYSV_CURSES)
-
-PyDoc_STRVAR(_curses_use_default_colors__doc__,
-"use_default_colors($module, /)\n"
-"--\n"
-"\n"
-"Allow use of default values for colors on terminals supporting this feature.\n"
-"\n"
-"Use this to support transparency in your application. The default color\n"
-"is assigned to the color number -1.");
-
-#define _CURSES_USE_DEFAULT_COLORS_METHODDEF \
- {"use_default_colors", (PyCFunction)_curses_use_default_colors, METH_NOARGS, _curses_use_default_colors__doc__},
-
-static PyObject *
-_curses_use_default_colors_impl(PyObject *module);
-
-static PyObject *
-_curses_use_default_colors(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _curses_use_default_colors_impl(module);
-}
-
-#endif /* !defined(STRICT_SYSV_CURSES) */
-
-#ifndef _CURSES_WINDOW_ENCLOSE_METHODDEF
- #define _CURSES_WINDOW_ENCLOSE_METHODDEF
-#endif /* !defined(_CURSES_WINDOW_ENCLOSE_METHODDEF) */
-
-#ifndef _CURSES_WINDOW_GET_WCH_METHODDEF
- #define _CURSES_WINDOW_GET_WCH_METHODDEF
-#endif /* !defined(_CURSES_WINDOW_GET_WCH_METHODDEF) */
-
-#ifndef _CURSES_WINDOW_NOUTREFRESH_METHODDEF
- #define _CURSES_WINDOW_NOUTREFRESH_METHODDEF
-#endif /* !defined(_CURSES_WINDOW_NOUTREFRESH_METHODDEF) */
-
-#ifndef _CURSES_FILTER_METHODDEF
- #define _CURSES_FILTER_METHODDEF
-#endif /* !defined(_CURSES_FILTER_METHODDEF) */
-
-#ifndef _CURSES_GETSYX_METHODDEF
- #define _CURSES_GETSYX_METHODDEF
-#endif /* !defined(_CURSES_GETSYX_METHODDEF) */
-
-#ifndef _CURSES_GETMOUSE_METHODDEF
- #define _CURSES_GETMOUSE_METHODDEF
-#endif /* !defined(_CURSES_GETMOUSE_METHODDEF) */
-
-#ifndef _CURSES_UNGETMOUSE_METHODDEF
- #define _CURSES_UNGETMOUSE_METHODDEF
-#endif /* !defined(_CURSES_UNGETMOUSE_METHODDEF) */
-
-#ifndef _CURSES_HAS_KEY_METHODDEF
- #define _CURSES_HAS_KEY_METHODDEF
-#endif /* !defined(_CURSES_HAS_KEY_METHODDEF) */
-
-#ifndef _CURSES_GET_ESCDELAY_METHODDEF
- #define _CURSES_GET_ESCDELAY_METHODDEF
-#endif /* !defined(_CURSES_GET_ESCDELAY_METHODDEF) */
-
-#ifndef _CURSES_SET_ESCDELAY_METHODDEF
- #define _CURSES_SET_ESCDELAY_METHODDEF
-#endif /* !defined(_CURSES_SET_ESCDELAY_METHODDEF) */
-
-#ifndef _CURSES_GET_TABSIZE_METHODDEF
- #define _CURSES_GET_TABSIZE_METHODDEF
-#endif /* !defined(_CURSES_GET_TABSIZE_METHODDEF) */
-
-#ifndef _CURSES_SET_TABSIZE_METHODDEF
- #define _CURSES_SET_TABSIZE_METHODDEF
-#endif /* !defined(_CURSES_SET_TABSIZE_METHODDEF) */
-
-#ifndef _CURSES_IS_TERM_RESIZED_METHODDEF
- #define _CURSES_IS_TERM_RESIZED_METHODDEF
-#endif /* !defined(_CURSES_IS_TERM_RESIZED_METHODDEF) */
-
-#ifndef _CURSES_MOUSEINTERVAL_METHODDEF
- #define _CURSES_MOUSEINTERVAL_METHODDEF
-#endif /* !defined(_CURSES_MOUSEINTERVAL_METHODDEF) */
-
-#ifndef _CURSES_MOUSEMASK_METHODDEF
- #define _CURSES_MOUSEMASK_METHODDEF
-#endif /* !defined(_CURSES_MOUSEMASK_METHODDEF) */
-
-#ifndef _CURSES_UPDATE_LINES_COLS_METHODDEF
- #define _CURSES_UPDATE_LINES_COLS_METHODDEF
-#endif /* !defined(_CURSES_UPDATE_LINES_COLS_METHODDEF) */
-
-#ifndef _CURSES_RESIZETERM_METHODDEF
- #define _CURSES_RESIZETERM_METHODDEF
-#endif /* !defined(_CURSES_RESIZETERM_METHODDEF) */
-
-#ifndef _CURSES_RESIZE_TERM_METHODDEF
- #define _CURSES_RESIZE_TERM_METHODDEF
-#endif /* !defined(_CURSES_RESIZE_TERM_METHODDEF) */
-
-#ifndef _CURSES_SETSYX_METHODDEF
- #define _CURSES_SETSYX_METHODDEF
-#endif /* !defined(_CURSES_SETSYX_METHODDEF) */
-
-#ifndef _CURSES_TYPEAHEAD_METHODDEF
- #define _CURSES_TYPEAHEAD_METHODDEF
-#endif /* !defined(_CURSES_TYPEAHEAD_METHODDEF) */
-
-#ifndef _CURSES_UNGET_WCH_METHODDEF
- #define _CURSES_UNGET_WCH_METHODDEF
-#endif /* !defined(_CURSES_UNGET_WCH_METHODDEF) */
-
-#ifndef _CURSES_USE_ENV_METHODDEF
- #define _CURSES_USE_ENV_METHODDEF
-#endif /* !defined(_CURSES_USE_ENV_METHODDEF) */
-
-#ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF
- #define _CURSES_USE_DEFAULT_COLORS_METHODDEF
-#endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */
-/*[clinic end generated code: output=5e739120041df368 input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(_curses_window_addstr__doc__,
+"addstr([y, x,] str, [attr])\n"
+"Paint the string.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+" str\n"
+" String to add.\n"
+" attr\n"
+" Attributes for characters.\n"
+"\n"
+"Paint the string str at (y, x) with attributes attr,\n"
+"overwriting anything previously on the display.\n"
+"By default, the character position and attributes are the\n"
+"current settings for the window object.");
+
+#define _CURSES_WINDOW_ADDSTR_METHODDEF \
+ {"addstr", (PyCFunction)_curses_window_addstr, METH_VARARGS, _curses_window_addstr__doc__},
+
+static PyObject *
+_curses_window_addstr_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *str, int group_right_1,
+ long attr);
+
+static PyObject *
+_curses_window_addstr(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *str;
+ int group_right_1 = 0;
+ long attr = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 1:
+ if (!PyArg_ParseTuple(args, "O:addstr", &str)) {
+ goto exit;
+ }
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "Ol:addstr", &str, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "iiO:addstr", &y, &x, &str)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOl:addstr", &y, &x, &str, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.addstr requires 1 to 4 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_addstr_impl(self, group_left_1, y, x, str, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_addnstr__doc__,
+"addnstr([y, x,] str, n, [attr])\n"
+"Paint at most n characters of the string.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+" str\n"
+" String to add.\n"
+" n\n"
+" Maximal number of characters.\n"
+" attr\n"
+" Attributes for characters.\n"
+"\n"
+"Paint at most n characters of the string str at (y, x) with\n"
+"attributes attr, overwriting anything previously on the display.\n"
+"By default, the character position and attributes are the\n"
+"current settings for the window object.");
+
+#define _CURSES_WINDOW_ADDNSTR_METHODDEF \
+ {"addnstr", (PyCFunction)_curses_window_addnstr, METH_VARARGS, _curses_window_addnstr__doc__},
+
+static PyObject *
+_curses_window_addnstr_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *str, int n,
+ int group_right_1, long attr);
+
+static PyObject *
+_curses_window_addnstr(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *str;
+ int n;
+ int group_right_1 = 0;
+ long attr = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "Oi:addnstr", &str, &n)) {
+ goto exit;
+ }
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "Oil:addnstr", &str, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOi:addnstr", &y, &x, &str, &n)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ case 5:
+ if (!PyArg_ParseTuple(args, "iiOil:addnstr", &y, &x, &str, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.addnstr requires 2 to 5 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_addnstr_impl(self, group_left_1, y, x, str, n, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_bkgd__doc__,
+"bkgd($self, ch, attr=_curses.A_NORMAL, /)\n"
+"--\n"
+"\n"
+"Set the background property of the window.\n"
+"\n"
+" ch\n"
+" Background character.\n"
+" attr\n"
+" Background attributes.");
+
+#define _CURSES_WINDOW_BKGD_METHODDEF \
+ {"bkgd", (PyCFunction)(void(*)(void))_curses_window_bkgd, METH_FASTCALL, _curses_window_bkgd__doc__},
+
+static PyObject *
+_curses_window_bkgd_impl(PyCursesWindowObject *self, PyObject *ch, long attr);
+
+static PyObject *
+_curses_window_bkgd(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *ch;
+ long attr = A_NORMAL;
+
+ if (!_PyArg_CheckPositional("bkgd", nargs, 1, 2)) {
+ goto exit;
+ }
+ ch = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ attr = PyLong_AsLong(args[1]);
+ if (attr == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_window_bkgd_impl(self, ch, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_attroff__doc__,
+"attroff($self, attr, /)\n"
+"--\n"
+"\n"
+"Remove attribute attr from the \"background\" set.");
+
+#define _CURSES_WINDOW_ATTROFF_METHODDEF \
+ {"attroff", (PyCFunction)_curses_window_attroff, METH_O, _curses_window_attroff__doc__},
+
+static PyObject *
+_curses_window_attroff_impl(PyCursesWindowObject *self, long attr);
+
+static PyObject *
+_curses_window_attroff(PyCursesWindowObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ long attr;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ attr = PyLong_AsLong(arg);
+ if (attr == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_window_attroff_impl(self, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_attron__doc__,
+"attron($self, attr, /)\n"
+"--\n"
+"\n"
+"Add attribute attr from the \"background\" set.");
+
+#define _CURSES_WINDOW_ATTRON_METHODDEF \
+ {"attron", (PyCFunction)_curses_window_attron, METH_O, _curses_window_attron__doc__},
+
+static PyObject *
+_curses_window_attron_impl(PyCursesWindowObject *self, long attr);
+
+static PyObject *
+_curses_window_attron(PyCursesWindowObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ long attr;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ attr = PyLong_AsLong(arg);
+ if (attr == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_window_attron_impl(self, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_attrset__doc__,
+"attrset($self, attr, /)\n"
+"--\n"
+"\n"
+"Set the \"background\" set of attributes.");
+
+#define _CURSES_WINDOW_ATTRSET_METHODDEF \
+ {"attrset", (PyCFunction)_curses_window_attrset, METH_O, _curses_window_attrset__doc__},
+
+static PyObject *
+_curses_window_attrset_impl(PyCursesWindowObject *self, long attr);
+
+static PyObject *
+_curses_window_attrset(PyCursesWindowObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ long attr;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ attr = PyLong_AsLong(arg);
+ if (attr == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_window_attrset_impl(self, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_bkgdset__doc__,
+"bkgdset($self, ch, attr=_curses.A_NORMAL, /)\n"
+"--\n"
+"\n"
+"Set the window\'s background.\n"
+"\n"
+" ch\n"
+" Background character.\n"
+" attr\n"
+" Background attributes.");
+
+#define _CURSES_WINDOW_BKGDSET_METHODDEF \
+ {"bkgdset", (PyCFunction)(void(*)(void))_curses_window_bkgdset, METH_FASTCALL, _curses_window_bkgdset__doc__},
+
+static PyObject *
+_curses_window_bkgdset_impl(PyCursesWindowObject *self, PyObject *ch,
+ long attr);
+
+static PyObject *
+_curses_window_bkgdset(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *ch;
+ long attr = A_NORMAL;
+
+ if (!_PyArg_CheckPositional("bkgdset", nargs, 1, 2)) {
+ goto exit;
+ }
+ ch = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ attr = PyLong_AsLong(args[1]);
+ if (attr == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_window_bkgdset_impl(self, ch, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_border__doc__,
+"border($self, ls=_curses.ACS_VLINE, rs=_curses.ACS_VLINE,\n"
+" ts=_curses.ACS_HLINE, bs=_curses.ACS_HLINE,\n"
+" tl=_curses.ACS_ULCORNER, tr=_curses.ACS_URCORNER,\n"
+" bl=_curses.ACS_LLCORNER, br=_curses.ACS_LRCORNER, /)\n"
+"--\n"
+"\n"
+"Draw a border around the edges of the window.\n"
+"\n"
+" ls\n"
+" Left side.\n"
+" rs\n"
+" Right side.\n"
+" ts\n"
+" Top side.\n"
+" bs\n"
+" Bottom side.\n"
+" tl\n"
+" Upper-left corner.\n"
+" tr\n"
+" Upper-right corner.\n"
+" bl\n"
+" Bottom-left corner.\n"
+" br\n"
+" Bottom-right corner.\n"
+"\n"
+"Each parameter specifies the character to use for a specific part of the\n"
+"border. The characters can be specified as integers or as one-character\n"
+"strings. A 0 value for any parameter will cause the default character to be\n"
+"used for that parameter.");
+
+#define _CURSES_WINDOW_BORDER_METHODDEF \
+ {"border", (PyCFunction)(void(*)(void))_curses_window_border, METH_FASTCALL, _curses_window_border__doc__},
+
+static PyObject *
+_curses_window_border_impl(PyCursesWindowObject *self, PyObject *ls,
+ PyObject *rs, PyObject *ts, PyObject *bs,
+ PyObject *tl, PyObject *tr, PyObject *bl,
+ PyObject *br);
+
+static PyObject *
+_curses_window_border(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *ls = NULL;
+ PyObject *rs = NULL;
+ PyObject *ts = NULL;
+ PyObject *bs = NULL;
+ PyObject *tl = NULL;
+ PyObject *tr = NULL;
+ PyObject *bl = NULL;
+ PyObject *br = NULL;
+
+ if (!_PyArg_CheckPositional("border", nargs, 0, 8)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ ls = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ rs = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ ts = args[2];
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ bs = args[3];
+ if (nargs < 5) {
+ goto skip_optional;
+ }
+ tl = args[4];
+ if (nargs < 6) {
+ goto skip_optional;
+ }
+ tr = args[5];
+ if (nargs < 7) {
+ goto skip_optional;
+ }
+ bl = args[6];
+ if (nargs < 8) {
+ goto skip_optional;
+ }
+ br = args[7];
+skip_optional:
+ return_value = _curses_window_border_impl(self, ls, rs, ts, bs, tl, tr, bl, br);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_box__doc__,
+"box([verch=0, horch=0])\n"
+"Draw a border around the edges of the window.\n"
+"\n"
+" verch\n"
+" Left and right side.\n"
+" horch\n"
+" Top and bottom side.\n"
+"\n"
+"Similar to border(), but both ls and rs are verch and both ts and bs are\n"
+"horch. The default corner characters are always used by this function.");
+
+#define _CURSES_WINDOW_BOX_METHODDEF \
+ {"box", (PyCFunction)_curses_window_box, METH_VARARGS, _curses_window_box__doc__},
+
+static PyObject *
+_curses_window_box_impl(PyCursesWindowObject *self, int group_right_1,
+ PyObject *verch, PyObject *horch);
+
+static PyObject *
+_curses_window_box(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ PyObject *verch = _PyLong_Zero;
+ PyObject *horch = _PyLong_Zero;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "OO:box", &verch, &horch)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.box requires 0 to 2 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_box_impl(self, group_right_1, verch, horch);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_delch__doc__,
+"delch([y, x])\n"
+"Delete any character at (y, x).\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.");
+
+#define _CURSES_WINDOW_DELCH_METHODDEF \
+ {"delch", (PyCFunction)_curses_window_delch, METH_VARARGS, _curses_window_delch__doc__},
+
+static PyObject *
+_curses_window_delch_impl(PyCursesWindowObject *self, int group_right_1,
+ int y, int x);
+
+static PyObject *
+_curses_window_delch(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int y = 0;
+ int x = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:delch", &y, &x)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.delch requires 0 to 2 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_delch_impl(self, group_right_1, y, x);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_derwin__doc__,
+"derwin([nlines=0, ncols=0,] begin_y, begin_x)\n"
+"Create a sub-window (window-relative coordinates).\n"
+"\n"
+" nlines\n"
+" Height.\n"
+" ncols\n"
+" Width.\n"
+" begin_y\n"
+" Top side y-coordinate.\n"
+" begin_x\n"
+" Left side x-coordinate.\n"
+"\n"
+"derwin() is the same as calling subwin(), except that begin_y and begin_x\n"
+"are relative to the origin of the window, rather than relative to the entire\n"
+"screen.");
+
+#define _CURSES_WINDOW_DERWIN_METHODDEF \
+ {"derwin", (PyCFunction)_curses_window_derwin, METH_VARARGS, _curses_window_derwin__doc__},
+
+static PyObject *
+_curses_window_derwin_impl(PyCursesWindowObject *self, int group_left_1,
+ int nlines, int ncols, int begin_y, int begin_x);
+
+static PyObject *
+_curses_window_derwin(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int nlines = 0;
+ int ncols = 0;
+ int begin_y;
+ int begin_x;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:derwin", &begin_y, &begin_x)) {
+ goto exit;
+ }
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiii:derwin", &nlines, &ncols, &begin_y, &begin_x)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.derwin requires 2 to 4 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_derwin_impl(self, group_left_1, nlines, ncols, begin_y, begin_x);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_echochar__doc__,
+"echochar($self, ch, attr=_curses.A_NORMAL, /)\n"
+"--\n"
+"\n"
+"Add character ch with attribute attr, and refresh.\n"
+"\n"
+" ch\n"
+" Character to add.\n"
+" attr\n"
+" Attributes for the character.");
+
+#define _CURSES_WINDOW_ECHOCHAR_METHODDEF \
+ {"echochar", (PyCFunction)(void(*)(void))_curses_window_echochar, METH_FASTCALL, _curses_window_echochar__doc__},
+
+static PyObject *
+_curses_window_echochar_impl(PyCursesWindowObject *self, PyObject *ch,
+ long attr);
+
+static PyObject *
+_curses_window_echochar(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *ch;
+ long attr = A_NORMAL;
+
+ if (!_PyArg_CheckPositional("echochar", nargs, 1, 2)) {
+ goto exit;
+ }
+ ch = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ attr = PyLong_AsLong(args[1]);
+ if (attr == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_window_echochar_impl(self, ch, attr);
+
+exit:
+ return return_value;
+}
+
+#if defined(NCURSES_MOUSE_VERSION)
+
+PyDoc_STRVAR(_curses_window_enclose__doc__,
+"enclose($self, y, x, /)\n"
+"--\n"
+"\n"
+"Return True if the screen-relative coordinates are enclosed by the window.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.");
+
+#define _CURSES_WINDOW_ENCLOSE_METHODDEF \
+ {"enclose", (PyCFunction)(void(*)(void))_curses_window_enclose, METH_FASTCALL, _curses_window_enclose__doc__},
+
+static long
+_curses_window_enclose_impl(PyCursesWindowObject *self, int y, int x);
+
+static PyObject *
+_curses_window_enclose(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int y;
+ int x;
+ long _return_value;
+
+ if (!_PyArg_CheckPositional("enclose", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ y = _PyLong_AsInt(args[0]);
+ if (y == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ x = _PyLong_AsInt(args[1]);
+ if (x == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ _return_value = _curses_window_enclose_impl(self, y, x);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(NCURSES_MOUSE_VERSION) */
+
+PyDoc_STRVAR(_curses_window_getbkgd__doc__,
+"getbkgd($self, /)\n"
+"--\n"
+"\n"
+"Return the window\'s current background character/attribute pair.");
+
+#define _CURSES_WINDOW_GETBKGD_METHODDEF \
+ {"getbkgd", (PyCFunction)_curses_window_getbkgd, METH_NOARGS, _curses_window_getbkgd__doc__},
+
+static long
+_curses_window_getbkgd_impl(PyCursesWindowObject *self);
+
+static PyObject *
+_curses_window_getbkgd(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ long _return_value;
+
+ _return_value = _curses_window_getbkgd_impl(self);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_getch__doc__,
+"getch([y, x])\n"
+"Get a character code from terminal keyboard.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+"\n"
+"The integer returned does not have to be in ASCII range: function keys,\n"
+"keypad keys and so on return numbers higher than 256. In no-delay mode, -1\n"
+"is returned if there is no input, else getch() waits until a key is pressed.");
+
+#define _CURSES_WINDOW_GETCH_METHODDEF \
+ {"getch", (PyCFunction)_curses_window_getch, METH_VARARGS, _curses_window_getch__doc__},
+
+static int
+_curses_window_getch_impl(PyCursesWindowObject *self, int group_right_1,
+ int y, int x);
+
+static PyObject *
+_curses_window_getch(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int y = 0;
+ int x = 0;
+ int _return_value;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:getch", &y, &x)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.getch requires 0 to 2 arguments");
+ goto exit;
+ }
+ _return_value = _curses_window_getch_impl(self, group_right_1, y, x);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_getkey__doc__,
+"getkey([y, x])\n"
+"Get a character (string) from terminal keyboard.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+"\n"
+"Returning a string instead of an integer, as getch() does. Function keys,\n"
+"keypad keys and other special keys return a multibyte string containing the\n"
+"key name. In no-delay mode, an exception is raised if there is no input.");
+
+#define _CURSES_WINDOW_GETKEY_METHODDEF \
+ {"getkey", (PyCFunction)_curses_window_getkey, METH_VARARGS, _curses_window_getkey__doc__},
+
+static PyObject *
+_curses_window_getkey_impl(PyCursesWindowObject *self, int group_right_1,
+ int y, int x);
+
+static PyObject *
+_curses_window_getkey(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int y = 0;
+ int x = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:getkey", &y, &x)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.getkey requires 0 to 2 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_getkey_impl(self, group_right_1, y, x);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_NCURSESW)
+
+PyDoc_STRVAR(_curses_window_get_wch__doc__,
+"get_wch([y, x])\n"
+"Get a wide character from terminal keyboard.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+"\n"
+"Return a character for most keys, or an integer for function keys,\n"
+"keypad keys, and other special keys.");
+
+#define _CURSES_WINDOW_GET_WCH_METHODDEF \
+ {"get_wch", (PyCFunction)_curses_window_get_wch, METH_VARARGS, _curses_window_get_wch__doc__},
+
+static PyObject *
+_curses_window_get_wch_impl(PyCursesWindowObject *self, int group_right_1,
+ int y, int x);
+
+static PyObject *
+_curses_window_get_wch(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int y = 0;
+ int x = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:get_wch", &y, &x)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.get_wch requires 0 to 2 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_get_wch_impl(self, group_right_1, y, x);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_NCURSESW) */
+
+PyDoc_STRVAR(_curses_window_hline__doc__,
+"hline([y, x,] ch, n, [attr=_curses.A_NORMAL])\n"
+"Display a horizontal line.\n"
+"\n"
+" y\n"
+" Starting Y-coordinate.\n"
+" x\n"
+" Starting X-coordinate.\n"
+" ch\n"
+" Character to draw.\n"
+" n\n"
+" Line length.\n"
+" attr\n"
+" Attributes for the characters.");
+
+#define _CURSES_WINDOW_HLINE_METHODDEF \
+ {"hline", (PyCFunction)_curses_window_hline, METH_VARARGS, _curses_window_hline__doc__},
+
+static PyObject *
+_curses_window_hline_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *ch, int n,
+ int group_right_1, long attr);
+
+static PyObject *
+_curses_window_hline(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *ch;
+ int n;
+ int group_right_1 = 0;
+ long attr = A_NORMAL;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "Oi:hline", &ch, &n)) {
+ goto exit;
+ }
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "Oil:hline", &ch, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOi:hline", &y, &x, &ch, &n)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ case 5:
+ if (!PyArg_ParseTuple(args, "iiOil:hline", &y, &x, &ch, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.hline requires 2 to 5 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_hline_impl(self, group_left_1, y, x, ch, n, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_insch__doc__,
+"insch([y, x,] ch, [attr=_curses.A_NORMAL])\n"
+"Insert a character before the current or specified position.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+" ch\n"
+" Character to insert.\n"
+" attr\n"
+" Attributes for the character.\n"
+"\n"
+"All characters to the right of the cursor are shifted one position right, with\n"
+"the rightmost characters on the line being lost.");
+
+#define _CURSES_WINDOW_INSCH_METHODDEF \
+ {"insch", (PyCFunction)_curses_window_insch, METH_VARARGS, _curses_window_insch__doc__},
+
+static PyObject *
+_curses_window_insch_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *ch, int group_right_1,
+ long attr);
+
+static PyObject *
+_curses_window_insch(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *ch;
+ int group_right_1 = 0;
+ long attr = A_NORMAL;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 1:
+ if (!PyArg_ParseTuple(args, "O:insch", &ch)) {
+ goto exit;
+ }
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "Ol:insch", &ch, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "iiO:insch", &y, &x, &ch)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOl:insch", &y, &x, &ch, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.insch requires 1 to 4 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_insch_impl(self, group_left_1, y, x, ch, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_inch__doc__,
+"inch([y, x])\n"
+"Return the character at the given position in the window.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+"\n"
+"The bottom 8 bits are the character proper, and upper bits are the attributes.");
+
+#define _CURSES_WINDOW_INCH_METHODDEF \
+ {"inch", (PyCFunction)_curses_window_inch, METH_VARARGS, _curses_window_inch__doc__},
+
+static unsigned long
+_curses_window_inch_impl(PyCursesWindowObject *self, int group_right_1,
+ int y, int x);
+
+static PyObject *
+_curses_window_inch(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int y = 0;
+ int x = 0;
+ unsigned long _return_value;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:inch", &y, &x)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.inch requires 0 to 2 arguments");
+ goto exit;
+ }
+ _return_value = _curses_window_inch_impl(self, group_right_1, y, x);
+ if ((_return_value == (unsigned long)-1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromUnsignedLong(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_insstr__doc__,
+"insstr([y, x,] str, [attr])\n"
+"Insert the string before the current or specified position.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+" str\n"
+" String to insert.\n"
+" attr\n"
+" Attributes for characters.\n"
+"\n"
+"Insert a character string (as many characters as will fit on the line)\n"
+"before the character under the cursor. All characters to the right of\n"
+"the cursor are shifted right, with the rightmost characters on the line\n"
+"being lost. The cursor position does not change (after moving to y, x,\n"
+"if specified).");
+
+#define _CURSES_WINDOW_INSSTR_METHODDEF \
+ {"insstr", (PyCFunction)_curses_window_insstr, METH_VARARGS, _curses_window_insstr__doc__},
+
+static PyObject *
+_curses_window_insstr_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *str, int group_right_1,
+ long attr);
+
+static PyObject *
+_curses_window_insstr(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *str;
+ int group_right_1 = 0;
+ long attr = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 1:
+ if (!PyArg_ParseTuple(args, "O:insstr", &str)) {
+ goto exit;
+ }
+ break;
+ case 2:
+ if (!PyArg_ParseTuple(args, "Ol:insstr", &str, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "iiO:insstr", &y, &x, &str)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOl:insstr", &y, &x, &str, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.insstr requires 1 to 4 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_insstr_impl(self, group_left_1, y, x, str, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_insnstr__doc__,
+"insnstr([y, x,] str, n, [attr])\n"
+"Insert at most n characters of the string.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+" str\n"
+" String to insert.\n"
+" n\n"
+" Maximal number of characters.\n"
+" attr\n"
+" Attributes for characters.\n"
+"\n"
+"Insert a character string (as many characters as will fit on the line)\n"
+"before the character under the cursor, up to n characters. If n is zero\n"
+"or negative, the entire string is inserted. All characters to the right\n"
+"of the cursor are shifted right, with the rightmost characters on the line\n"
+"being lost. The cursor position does not change (after moving to y, x, if\n"
+"specified).");
+
+#define _CURSES_WINDOW_INSNSTR_METHODDEF \
+ {"insnstr", (PyCFunction)_curses_window_insnstr, METH_VARARGS, _curses_window_insnstr__doc__},
+
+static PyObject *
+_curses_window_insnstr_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *str, int n,
+ int group_right_1, long attr);
+
+static PyObject *
+_curses_window_insnstr(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *str;
+ int n;
+ int group_right_1 = 0;
+ long attr = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "Oi:insnstr", &str, &n)) {
+ goto exit;
+ }
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "Oil:insnstr", &str, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOi:insnstr", &y, &x, &str, &n)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ case 5:
+ if (!PyArg_ParseTuple(args, "iiOil:insnstr", &y, &x, &str, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.insnstr requires 2 to 5 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_insnstr_impl(self, group_left_1, y, x, str, n, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_is_linetouched__doc__,
+"is_linetouched($self, line, /)\n"
+"--\n"
+"\n"
+"Return True if the specified line was modified, otherwise return False.\n"
+"\n"
+" line\n"
+" Line number.\n"
+"\n"
+"Raise a curses.error exception if line is not valid for the given window.");
+
+#define _CURSES_WINDOW_IS_LINETOUCHED_METHODDEF \
+ {"is_linetouched", (PyCFunction)_curses_window_is_linetouched, METH_O, _curses_window_is_linetouched__doc__},
+
+static PyObject *
+_curses_window_is_linetouched_impl(PyCursesWindowObject *self, int line);
+
+static PyObject *
+_curses_window_is_linetouched(PyCursesWindowObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int line;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ line = _PyLong_AsInt(arg);
+ if (line == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_window_is_linetouched_impl(self, line);
+
+exit:
+ return return_value;
+}
+
+#if defined(py_is_pad)
+
+PyDoc_STRVAR(_curses_window_noutrefresh__doc__,
+"noutrefresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])\n"
+"Mark for refresh but wait.\n"
+"\n"
+"This function updates the data structure representing the desired state of the\n"
+"window, but does not force an update of the physical screen. To accomplish\n"
+"that, call doupdate().");
+
+#define _CURSES_WINDOW_NOUTREFRESH_METHODDEF \
+ {"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_VARARGS, _curses_window_noutrefresh__doc__},
+
+static PyObject *
+_curses_window_noutrefresh_impl(PyCursesWindowObject *self,
+ int group_right_1, int pminrow, int pmincol,
+ int sminrow, int smincol, int smaxrow,
+ int smaxcol);
+
+static PyObject *
+_curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int pminrow = 0;
+ int pmincol = 0;
+ int sminrow = 0;
+ int smincol = 0;
+ int smaxrow = 0;
+ int smaxcol = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 6:
+ if (!PyArg_ParseTuple(args, "iiiiii:noutrefresh", &pminrow, &pmincol, &sminrow, &smincol, &smaxrow, &smaxcol)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.noutrefresh requires 0 to 6 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_noutrefresh_impl(self, group_right_1, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(py_is_pad) */
+
+#if !defined(py_is_pad)
+
+PyDoc_STRVAR(_curses_window_noutrefresh__doc__,
+"noutrefresh($self, /)\n"
+"--\n"
+"\n"
+"Mark for refresh but wait.\n"
+"\n"
+"This function updates the data structure representing the desired state of the\n"
+"window, but does not force an update of the physical screen. To accomplish\n"
+"that, call doupdate().");
+
+#define _CURSES_WINDOW_NOUTREFRESH_METHODDEF \
+ {"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_NOARGS, _curses_window_noutrefresh__doc__},
+
+static PyObject *
+_curses_window_noutrefresh_impl(PyCursesWindowObject *self);
+
+static PyObject *
+_curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_window_noutrefresh_impl(self);
+}
+
+#endif /* !defined(py_is_pad) */
+
+PyDoc_STRVAR(_curses_window_overlay__doc__,
+"overlay(destwin, [sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])\n"
+"Overlay the window on top of destwin.\n"
+"\n"
+"The windows need not be the same size, only the overlapping region is copied.\n"
+"This copy is non-destructive, which means that the current background\n"
+"character does not overwrite the old contents of destwin.\n"
+"\n"
+"To get fine-grained control over the copied region, the second form of\n"
+"overlay() can be used. sminrow and smincol are the upper-left coordinates\n"
+"of the source window, and the other variables mark a rectangle in the\n"
+"destination window.");
+
+#define _CURSES_WINDOW_OVERLAY_METHODDEF \
+ {"overlay", (PyCFunction)_curses_window_overlay, METH_VARARGS, _curses_window_overlay__doc__},
+
+static PyObject *
+_curses_window_overlay_impl(PyCursesWindowObject *self,
+ PyCursesWindowObject *destwin, int group_right_1,
+ int sminrow, int smincol, int dminrow,
+ int dmincol, int dmaxrow, int dmaxcol);
+
+static PyObject *
+_curses_window_overlay(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyCursesWindowObject *destwin;
+ int group_right_1 = 0;
+ int sminrow = 0;
+ int smincol = 0;
+ int dminrow = 0;
+ int dmincol = 0;
+ int dmaxrow = 0;
+ int dmaxcol = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 1:
+ if (!PyArg_ParseTuple(args, "O!:overlay", &PyCursesWindow_Type, &destwin)) {
+ goto exit;
+ }
+ break;
+ case 7:
+ if (!PyArg_ParseTuple(args, "O!iiiiii:overlay", &PyCursesWindow_Type, &destwin, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.overlay requires 1 to 7 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_overlay_impl(self, destwin, group_right_1, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_overwrite__doc__,
+"overwrite(destwin, [sminrow, smincol, dminrow, dmincol, dmaxrow,\n"
+" dmaxcol])\n"
+"Overwrite the window on top of destwin.\n"
+"\n"
+"The windows need not be the same size, in which case only the overlapping\n"
+"region is copied. This copy is destructive, which means that the current\n"
+"background character overwrites the old contents of destwin.\n"
+"\n"
+"To get fine-grained control over the copied region, the second form of\n"
+"overwrite() can be used. sminrow and smincol are the upper-left coordinates\n"
+"of the source window, the other variables mark a rectangle in the destination\n"
+"window.");
+
+#define _CURSES_WINDOW_OVERWRITE_METHODDEF \
+ {"overwrite", (PyCFunction)_curses_window_overwrite, METH_VARARGS, _curses_window_overwrite__doc__},
+
+static PyObject *
+_curses_window_overwrite_impl(PyCursesWindowObject *self,
+ PyCursesWindowObject *destwin,
+ int group_right_1, int sminrow, int smincol,
+ int dminrow, int dmincol, int dmaxrow,
+ int dmaxcol);
+
+static PyObject *
+_curses_window_overwrite(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ PyCursesWindowObject *destwin;
+ int group_right_1 = 0;
+ int sminrow = 0;
+ int smincol = 0;
+ int dminrow = 0;
+ int dmincol = 0;
+ int dmaxrow = 0;
+ int dmaxcol = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 1:
+ if (!PyArg_ParseTuple(args, "O!:overwrite", &PyCursesWindow_Type, &destwin)) {
+ goto exit;
+ }
+ break;
+ case 7:
+ if (!PyArg_ParseTuple(args, "O!iiiiii:overwrite", &PyCursesWindow_Type, &destwin, &sminrow, &smincol, &dminrow, &dmincol, &dmaxrow, &dmaxcol)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.overwrite requires 1 to 7 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_overwrite_impl(self, destwin, group_right_1, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_putwin__doc__,
+"putwin($self, file, /)\n"
+"--\n"
+"\n"
+"Write all data associated with the window into the provided file object.\n"
+"\n"
+"This information can be later retrieved using the getwin() function.");
+
+#define _CURSES_WINDOW_PUTWIN_METHODDEF \
+ {"putwin", (PyCFunction)_curses_window_putwin, METH_O, _curses_window_putwin__doc__},
+
+PyDoc_STRVAR(_curses_window_redrawln__doc__,
+"redrawln($self, beg, num, /)\n"
+"--\n"
+"\n"
+"Mark the specified lines corrupted.\n"
+"\n"
+" beg\n"
+" Starting line number.\n"
+" num\n"
+" The number of lines.\n"
+"\n"
+"They should be completely redrawn on the next refresh() call.");
+
+#define _CURSES_WINDOW_REDRAWLN_METHODDEF \
+ {"redrawln", (PyCFunction)(void(*)(void))_curses_window_redrawln, METH_FASTCALL, _curses_window_redrawln__doc__},
+
+static PyObject *
+_curses_window_redrawln_impl(PyCursesWindowObject *self, int beg, int num);
+
+static PyObject *
+_curses_window_redrawln(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int beg;
+ int num;
+
+ if (!_PyArg_CheckPositional("redrawln", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ beg = _PyLong_AsInt(args[0]);
+ if (beg == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ num = _PyLong_AsInt(args[1]);
+ if (num == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_window_redrawln_impl(self, beg, num);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_refresh__doc__,
+"refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])\n"
+"Update the display immediately.\n"
+"\n"
+"Synchronize actual screen with previous drawing/deleting methods.\n"
+"The 6 optional arguments can only be specified when the window is a pad\n"
+"created with newpad(). The additional parameters are needed to indicate\n"
+"what part of the pad and screen are involved. pminrow and pmincol specify\n"
+"the upper left-hand corner of the rectangle to be displayed in the pad.\n"
+"sminrow, smincol, smaxrow, and smaxcol specify the edges of the rectangle to\n"
+"be displayed on the screen. The lower right-hand corner of the rectangle to\n"
+"be displayed in the pad is calculated from the screen coordinates, since the\n"
+"rectangles must be the same size. Both rectangles must be entirely contained\n"
+"within their respective structures. Negative values of pminrow, pmincol,\n"
+"sminrow, or smincol are treated as if they were zero.");
+
+#define _CURSES_WINDOW_REFRESH_METHODDEF \
+ {"refresh", (PyCFunction)_curses_window_refresh, METH_VARARGS, _curses_window_refresh__doc__},
+
+static PyObject *
+_curses_window_refresh_impl(PyCursesWindowObject *self, int group_right_1,
+ int pminrow, int pmincol, int sminrow,
+ int smincol, int smaxrow, int smaxcol);
+
+static PyObject *
+_curses_window_refresh(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int pminrow = 0;
+ int pmincol = 0;
+ int sminrow = 0;
+ int smincol = 0;
+ int smaxrow = 0;
+ int smaxcol = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 6:
+ if (!PyArg_ParseTuple(args, "iiiiii:refresh", &pminrow, &pmincol, &sminrow, &smincol, &smaxrow, &smaxcol)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.refresh requires 0 to 6 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_refresh_impl(self, group_right_1, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_setscrreg__doc__,
+"setscrreg($self, top, bottom, /)\n"
+"--\n"
+"\n"
+"Define a software scrolling region.\n"
+"\n"
+" top\n"
+" First line number.\n"
+" bottom\n"
+" Last line number.\n"
+"\n"
+"All scrolling actions will take place in this region.");
+
+#define _CURSES_WINDOW_SETSCRREG_METHODDEF \
+ {"setscrreg", (PyCFunction)(void(*)(void))_curses_window_setscrreg, METH_FASTCALL, _curses_window_setscrreg__doc__},
+
+static PyObject *
+_curses_window_setscrreg_impl(PyCursesWindowObject *self, int top,
+ int bottom);
+
+static PyObject *
+_curses_window_setscrreg(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int top;
+ int bottom;
+
+ if (!_PyArg_CheckPositional("setscrreg", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ top = _PyLong_AsInt(args[0]);
+ if (top == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ bottom = _PyLong_AsInt(args[1]);
+ if (bottom == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_window_setscrreg_impl(self, top, bottom);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_subwin__doc__,
+"subwin([nlines=0, ncols=0,] begin_y, begin_x)\n"
+"Create a sub-window (screen-relative coordinates).\n"
+"\n"
+" nlines\n"
+" Height.\n"
+" ncols\n"
+" Width.\n"
+" begin_y\n"
+" Top side y-coordinate.\n"
+" begin_x\n"
+" Left side x-coordinate.\n"
+"\n"
+"By default, the sub-window will extend from the specified position to the\n"
+"lower right corner of the window.");
+
+#define _CURSES_WINDOW_SUBWIN_METHODDEF \
+ {"subwin", (PyCFunction)_curses_window_subwin, METH_VARARGS, _curses_window_subwin__doc__},
+
+static PyObject *
+_curses_window_subwin_impl(PyCursesWindowObject *self, int group_left_1,
+ int nlines, int ncols, int begin_y, int begin_x);
+
+static PyObject *
+_curses_window_subwin(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int nlines = 0;
+ int ncols = 0;
+ int begin_y;
+ int begin_x;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:subwin", &begin_y, &begin_x)) {
+ goto exit;
+ }
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiii:subwin", &nlines, &ncols, &begin_y, &begin_x)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.subwin requires 2 to 4 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_subwin_impl(self, group_left_1, nlines, ncols, begin_y, begin_x);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_scroll__doc__,
+"scroll([lines=1])\n"
+"Scroll the screen or scrolling region.\n"
+"\n"
+" lines\n"
+" Number of lines to scroll.\n"
+"\n"
+"Scroll upward if the argument is positive and downward if it is negative.");
+
+#define _CURSES_WINDOW_SCROLL_METHODDEF \
+ {"scroll", (PyCFunction)_curses_window_scroll, METH_VARARGS, _curses_window_scroll__doc__},
+
+static PyObject *
+_curses_window_scroll_impl(PyCursesWindowObject *self, int group_right_1,
+ int lines);
+
+static PyObject *
+_curses_window_scroll(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_right_1 = 0;
+ int lines = 1;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 0:
+ break;
+ case 1:
+ if (!PyArg_ParseTuple(args, "i:scroll", &lines)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.scroll requires 0 to 1 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_scroll_impl(self, group_right_1, lines);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_touchline__doc__,
+"touchline(start, count, [changed=True])\n"
+"Pretend count lines have been changed, starting with line start.\n"
+"\n"
+"If changed is supplied, it specifies whether the affected lines are marked\n"
+"as having been changed (changed=True) or unchanged (changed=False).");
+
+#define _CURSES_WINDOW_TOUCHLINE_METHODDEF \
+ {"touchline", (PyCFunction)_curses_window_touchline, METH_VARARGS, _curses_window_touchline__doc__},
+
+static PyObject *
+_curses_window_touchline_impl(PyCursesWindowObject *self, int start,
+ int count, int group_right_1, int changed);
+
+static PyObject *
+_curses_window_touchline(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int start;
+ int count;
+ int group_right_1 = 0;
+ int changed = 1;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:touchline", &start, &count)) {
+ goto exit;
+ }
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "iii:touchline", &start, &count, &changed)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.touchline requires 2 to 3 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_touchline_impl(self, start, count, group_right_1, changed);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_window_vline__doc__,
+"vline([y, x,] ch, n, [attr=_curses.A_NORMAL])\n"
+"Display a vertical line.\n"
+"\n"
+" y\n"
+" Starting Y-coordinate.\n"
+" x\n"
+" Starting X-coordinate.\n"
+" ch\n"
+" Character to draw.\n"
+" n\n"
+" Line length.\n"
+" attr\n"
+" Attributes for the character.");
+
+#define _CURSES_WINDOW_VLINE_METHODDEF \
+ {"vline", (PyCFunction)_curses_window_vline, METH_VARARGS, _curses_window_vline__doc__},
+
+static PyObject *
+_curses_window_vline_impl(PyCursesWindowObject *self, int group_left_1,
+ int y, int x, PyObject *ch, int n,
+ int group_right_1, long attr);
+
+static PyObject *
+_curses_window_vline(PyCursesWindowObject *self, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int group_left_1 = 0;
+ int y = 0;
+ int x = 0;
+ PyObject *ch;
+ int n;
+ int group_right_1 = 0;
+ long attr = A_NORMAL;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "Oi:vline", &ch, &n)) {
+ goto exit;
+ }
+ break;
+ case 3:
+ if (!PyArg_ParseTuple(args, "Oil:vline", &ch, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiOi:vline", &y, &x, &ch, &n)) {
+ goto exit;
+ }
+ group_left_1 = 1;
+ break;
+ case 5:
+ if (!PyArg_ParseTuple(args, "iiOil:vline", &y, &x, &ch, &n, &attr)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ group_left_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.window.vline requires 2 to 5 arguments");
+ goto exit;
+ }
+ return_value = _curses_window_vline_impl(self, group_left_1, y, x, ch, n, group_right_1, attr);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_CURSES_FILTER)
+
+PyDoc_STRVAR(_curses_filter__doc__,
+"filter($module, /)\n"
+"--\n"
+"\n");
+
+#define _CURSES_FILTER_METHODDEF \
+ {"filter", (PyCFunction)_curses_filter, METH_NOARGS, _curses_filter__doc__},
+
+static PyObject *
+_curses_filter_impl(PyObject *module);
+
+static PyObject *
+_curses_filter(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_filter_impl(module);
+}
+
+#endif /* defined(HAVE_CURSES_FILTER) */
+
+PyDoc_STRVAR(_curses_baudrate__doc__,
+"baudrate($module, /)\n"
+"--\n"
+"\n"
+"Return the output speed of the terminal in bits per second.");
+
+#define _CURSES_BAUDRATE_METHODDEF \
+ {"baudrate", (PyCFunction)_curses_baudrate, METH_NOARGS, _curses_baudrate__doc__},
+
+static PyObject *
+_curses_baudrate_impl(PyObject *module);
+
+static PyObject *
+_curses_baudrate(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_baudrate_impl(module);
+}
+
+PyDoc_STRVAR(_curses_beep__doc__,
+"beep($module, /)\n"
+"--\n"
+"\n"
+"Emit a short attention sound.");
+
+#define _CURSES_BEEP_METHODDEF \
+ {"beep", (PyCFunction)_curses_beep, METH_NOARGS, _curses_beep__doc__},
+
+static PyObject *
+_curses_beep_impl(PyObject *module);
+
+static PyObject *
+_curses_beep(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_beep_impl(module);
+}
+
+PyDoc_STRVAR(_curses_can_change_color__doc__,
+"can_change_color($module, /)\n"
+"--\n"
+"\n"
+"Return True if the programmer can change the colors displayed by the terminal.");
+
+#define _CURSES_CAN_CHANGE_COLOR_METHODDEF \
+ {"can_change_color", (PyCFunction)_curses_can_change_color, METH_NOARGS, _curses_can_change_color__doc__},
+
+static PyObject *
+_curses_can_change_color_impl(PyObject *module);
+
+static PyObject *
+_curses_can_change_color(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_can_change_color_impl(module);
+}
+
+PyDoc_STRVAR(_curses_cbreak__doc__,
+"cbreak($module, flag=True, /)\n"
+"--\n"
+"\n"
+"Enter cbreak mode.\n"
+"\n"
+" flag\n"
+" If false, the effect is the same as calling nocbreak().\n"
+"\n"
+"In cbreak mode (sometimes called \"rare\" mode) normal tty line buffering is\n"
+"turned off and characters are available to be read one by one. However,\n"
+"unlike raw mode, special characters (interrupt, quit, suspend, and flow\n"
+"control) retain their effects on the tty driver and calling program.\n"
+"Calling first raw() then cbreak() leaves the terminal in cbreak mode.");
+
+#define _CURSES_CBREAK_METHODDEF \
+ {"cbreak", (PyCFunction)(void(*)(void))_curses_cbreak, METH_FASTCALL, _curses_cbreak__doc__},
+
+static PyObject *
+_curses_cbreak_impl(PyObject *module, int flag);
+
+static PyObject *
+_curses_cbreak(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int flag = 1;
+
+ if (!_PyArg_CheckPositional("cbreak", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(args[0]);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_cbreak_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_color_content__doc__,
+"color_content($module, color_number, /)\n"
+"--\n"
+"\n"
+"Return the red, green, and blue (RGB) components of the specified color.\n"
+"\n"
+" color_number\n"
+" The number of the color (0 - (COLORS-1)).\n"
+"\n"
+"A 3-tuple is returned, containing the R, G, B values for the given color,\n"
+"which will be between 0 (no component) and 1000 (maximum amount of component).");
+
+#define _CURSES_COLOR_CONTENT_METHODDEF \
+ {"color_content", (PyCFunction)_curses_color_content, METH_O, _curses_color_content__doc__},
+
+static PyObject *
+_curses_color_content_impl(PyObject *module, short color_number);
+
+static PyObject *
+_curses_color_content(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ short color_number;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(arg);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ color_number = (short) ival;
+ }
+ }
+ return_value = _curses_color_content_impl(module, color_number);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_color_pair__doc__,
+"color_pair($module, pair_number, /)\n"
+"--\n"
+"\n"
+"Return the attribute value for displaying text in the specified color.\n"
+"\n"
+" pair_number\n"
+" The number of the color pair.\n"
+"\n"
+"This attribute value can be combined with A_STANDOUT, A_REVERSE, and the\n"
+"other A_* attributes. pair_number() is the counterpart to this function.");
+
+#define _CURSES_COLOR_PAIR_METHODDEF \
+ {"color_pair", (PyCFunction)_curses_color_pair, METH_O, _curses_color_pair__doc__},
+
+static PyObject *
+_curses_color_pair_impl(PyObject *module, short pair_number);
+
+static PyObject *
+_curses_color_pair(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ short pair_number;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(arg);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ pair_number = (short) ival;
+ }
+ }
+ return_value = _curses_color_pair_impl(module, pair_number);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_curs_set__doc__,
+"curs_set($module, visibility, /)\n"
+"--\n"
+"\n"
+"Set the cursor state.\n"
+"\n"
+" visibility\n"
+" 0 for invisible, 1 for normal visible, or 2 for very visible.\n"
+"\n"
+"If the terminal supports the visibility requested, the previous cursor\n"
+"state is returned; otherwise, an exception is raised. On many terminals,\n"
+"the \"visible\" mode is an underline cursor and the \"very visible\" mode is\n"
+"a block cursor.");
+
+#define _CURSES_CURS_SET_METHODDEF \
+ {"curs_set", (PyCFunction)_curses_curs_set, METH_O, _curses_curs_set__doc__},
+
+static PyObject *
+_curses_curs_set_impl(PyObject *module, int visibility);
+
+static PyObject *
+_curses_curs_set(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int visibility;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ visibility = _PyLong_AsInt(arg);
+ if (visibility == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_curs_set_impl(module, visibility);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_def_prog_mode__doc__,
+"def_prog_mode($module, /)\n"
+"--\n"
+"\n"
+"Save the current terminal mode as the \"program\" mode.\n"
+"\n"
+"The \"program\" mode is the mode when the running program is using curses.\n"
+"\n"
+"Subsequent calls to reset_prog_mode() will restore this mode.");
+
+#define _CURSES_DEF_PROG_MODE_METHODDEF \
+ {"def_prog_mode", (PyCFunction)_curses_def_prog_mode, METH_NOARGS, _curses_def_prog_mode__doc__},
+
+static PyObject *
+_curses_def_prog_mode_impl(PyObject *module);
+
+static PyObject *
+_curses_def_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_def_prog_mode_impl(module);
+}
+
+PyDoc_STRVAR(_curses_def_shell_mode__doc__,
+"def_shell_mode($module, /)\n"
+"--\n"
+"\n"
+"Save the current terminal mode as the \"shell\" mode.\n"
+"\n"
+"The \"shell\" mode is the mode when the running program is not using curses.\n"
+"\n"
+"Subsequent calls to reset_shell_mode() will restore this mode.");
+
+#define _CURSES_DEF_SHELL_MODE_METHODDEF \
+ {"def_shell_mode", (PyCFunction)_curses_def_shell_mode, METH_NOARGS, _curses_def_shell_mode__doc__},
+
+static PyObject *
+_curses_def_shell_mode_impl(PyObject *module);
+
+static PyObject *
+_curses_def_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_def_shell_mode_impl(module);
+}
+
+PyDoc_STRVAR(_curses_delay_output__doc__,
+"delay_output($module, ms, /)\n"
+"--\n"
+"\n"
+"Insert a pause in output.\n"
+"\n"
+" ms\n"
+" Duration in milliseconds.");
+
+#define _CURSES_DELAY_OUTPUT_METHODDEF \
+ {"delay_output", (PyCFunction)_curses_delay_output, METH_O, _curses_delay_output__doc__},
+
+static PyObject *
+_curses_delay_output_impl(PyObject *module, int ms);
+
+static PyObject *
+_curses_delay_output(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int ms;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ ms = _PyLong_AsInt(arg);
+ if (ms == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_delay_output_impl(module, ms);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_doupdate__doc__,
+"doupdate($module, /)\n"
+"--\n"
+"\n"
+"Update the physical screen to match the virtual screen.");
+
+#define _CURSES_DOUPDATE_METHODDEF \
+ {"doupdate", (PyCFunction)_curses_doupdate, METH_NOARGS, _curses_doupdate__doc__},
+
+static PyObject *
+_curses_doupdate_impl(PyObject *module);
+
+static PyObject *
+_curses_doupdate(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_doupdate_impl(module);
+}
+
+PyDoc_STRVAR(_curses_echo__doc__,
+"echo($module, flag=True, /)\n"
+"--\n"
+"\n"
+"Enter echo mode.\n"
+"\n"
+" flag\n"
+" If false, the effect is the same as calling noecho().\n"
+"\n"
+"In echo mode, each character input is echoed to the screen as it is entered.");
+
+#define _CURSES_ECHO_METHODDEF \
+ {"echo", (PyCFunction)(void(*)(void))_curses_echo, METH_FASTCALL, _curses_echo__doc__},
+
+static PyObject *
+_curses_echo_impl(PyObject *module, int flag);
+
+static PyObject *
+_curses_echo(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int flag = 1;
+
+ if (!_PyArg_CheckPositional("echo", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(args[0]);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_echo_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_endwin__doc__,
+"endwin($module, /)\n"
+"--\n"
+"\n"
+"De-initialize the library, and return terminal to normal status.");
+
+#define _CURSES_ENDWIN_METHODDEF \
+ {"endwin", (PyCFunction)_curses_endwin, METH_NOARGS, _curses_endwin__doc__},
+
+static PyObject *
+_curses_endwin_impl(PyObject *module);
+
+static PyObject *
+_curses_endwin(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_endwin_impl(module);
+}
+
+PyDoc_STRVAR(_curses_erasechar__doc__,
+"erasechar($module, /)\n"
+"--\n"
+"\n"
+"Return the user\'s current erase character.");
+
+#define _CURSES_ERASECHAR_METHODDEF \
+ {"erasechar", (PyCFunction)_curses_erasechar, METH_NOARGS, _curses_erasechar__doc__},
+
+static PyObject *
+_curses_erasechar_impl(PyObject *module);
+
+static PyObject *
+_curses_erasechar(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_erasechar_impl(module);
+}
+
+PyDoc_STRVAR(_curses_flash__doc__,
+"flash($module, /)\n"
+"--\n"
+"\n"
+"Flash the screen.\n"
+"\n"
+"That is, change it to reverse-video and then change it back in a short interval.");
+
+#define _CURSES_FLASH_METHODDEF \
+ {"flash", (PyCFunction)_curses_flash, METH_NOARGS, _curses_flash__doc__},
+
+static PyObject *
+_curses_flash_impl(PyObject *module);
+
+static PyObject *
+_curses_flash(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_flash_impl(module);
+}
+
+PyDoc_STRVAR(_curses_flushinp__doc__,
+"flushinp($module, /)\n"
+"--\n"
+"\n"
+"Flush all input buffers.\n"
+"\n"
+"This throws away any typeahead that has been typed by the user and has not\n"
+"yet been processed by the program.");
+
+#define _CURSES_FLUSHINP_METHODDEF \
+ {"flushinp", (PyCFunction)_curses_flushinp, METH_NOARGS, _curses_flushinp__doc__},
+
+static PyObject *
+_curses_flushinp_impl(PyObject *module);
+
+static PyObject *
+_curses_flushinp(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_flushinp_impl(module);
+}
+
+#if defined(getsyx)
+
+PyDoc_STRVAR(_curses_getsyx__doc__,
+"getsyx($module, /)\n"
+"--\n"
+"\n"
+"Return the current coordinates of the virtual screen cursor.\n"
+"\n"
+"Return a (y, x) tuple. If leaveok is currently true, return (-1, -1).");
+
+#define _CURSES_GETSYX_METHODDEF \
+ {"getsyx", (PyCFunction)_curses_getsyx, METH_NOARGS, _curses_getsyx__doc__},
+
+static PyObject *
+_curses_getsyx_impl(PyObject *module);
+
+static PyObject *
+_curses_getsyx(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_getsyx_impl(module);
+}
+
+#endif /* defined(getsyx) */
+
+#if defined(NCURSES_MOUSE_VERSION)
+
+PyDoc_STRVAR(_curses_getmouse__doc__,
+"getmouse($module, /)\n"
+"--\n"
+"\n"
+"Retrieve the queued mouse event.\n"
+"\n"
+"After getch() returns KEY_MOUSE to signal a mouse event, this function\n"
+"returns a 5-tuple (id, x, y, z, bstate).");
+
+#define _CURSES_GETMOUSE_METHODDEF \
+ {"getmouse", (PyCFunction)_curses_getmouse, METH_NOARGS, _curses_getmouse__doc__},
+
+static PyObject *
+_curses_getmouse_impl(PyObject *module);
+
+static PyObject *
+_curses_getmouse(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_getmouse_impl(module);
+}
+
+#endif /* defined(NCURSES_MOUSE_VERSION) */
+
+#if defined(NCURSES_MOUSE_VERSION)
+
+PyDoc_STRVAR(_curses_ungetmouse__doc__,
+"ungetmouse($module, id, x, y, z, bstate, /)\n"
+"--\n"
+"\n"
+"Push a KEY_MOUSE event onto the input queue.\n"
+"\n"
+"The following getmouse() will return the given state data.");
+
+#define _CURSES_UNGETMOUSE_METHODDEF \
+ {"ungetmouse", (PyCFunction)(void(*)(void))_curses_ungetmouse, METH_FASTCALL, _curses_ungetmouse__doc__},
+
+static PyObject *
+_curses_ungetmouse_impl(PyObject *module, short id, int x, int y, int z,
+ unsigned long bstate);
+
+static PyObject *
+_curses_ungetmouse(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ short id;
+ int x;
+ int y;
+ int z;
+ unsigned long bstate;
+
+ if (!_PyArg_CheckPositional("ungetmouse", nargs, 5, 5)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[0]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ id = (short) ival;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ x = _PyLong_AsInt(args[1]);
+ if (x == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ y = _PyLong_AsInt(args[2]);
+ if (y == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ z = _PyLong_AsInt(args[3]);
+ if (z == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!PyLong_Check(args[4])) {
+ _PyArg_BadArgument("ungetmouse", "argument 5", "int", args[4]);
+ goto exit;
+ }
+ bstate = PyLong_AsUnsignedLongMask(args[4]);
+ return_value = _curses_ungetmouse_impl(module, id, x, y, z, bstate);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(NCURSES_MOUSE_VERSION) */
+
+PyDoc_STRVAR(_curses_getwin__doc__,
+"getwin($module, file, /)\n"
+"--\n"
+"\n"
+"Read window related data stored in the file by an earlier putwin() call.\n"
+"\n"
+"The routine then creates and initializes a new window using that data,\n"
+"returning the new window object.");
+
+#define _CURSES_GETWIN_METHODDEF \
+ {"getwin", (PyCFunction)_curses_getwin, METH_O, _curses_getwin__doc__},
+
+PyDoc_STRVAR(_curses_halfdelay__doc__,
+"halfdelay($module, tenths, /)\n"
+"--\n"
+"\n"
+"Enter half-delay mode.\n"
+"\n"
+" tenths\n"
+" Maximal blocking delay in tenths of seconds (1 - 255).\n"
+"\n"
+"Use nocbreak() to leave half-delay mode.");
+
+#define _CURSES_HALFDELAY_METHODDEF \
+ {"halfdelay", (PyCFunction)_curses_halfdelay, METH_O, _curses_halfdelay__doc__},
+
+static PyObject *
+_curses_halfdelay_impl(PyObject *module, unsigned char tenths);
+
+static PyObject *
+_curses_halfdelay(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ unsigned char tenths;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(arg);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < 0) {
+ PyErr_SetString(PyExc_OverflowError,
+ "unsigned byte integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > UCHAR_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "unsigned byte integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ tenths = (unsigned char) ival;
+ }
+ }
+ return_value = _curses_halfdelay_impl(module, tenths);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_has_colors__doc__,
+"has_colors($module, /)\n"
+"--\n"
+"\n"
+"Return True if the terminal can display colors; otherwise, return False.");
+
+#define _CURSES_HAS_COLORS_METHODDEF \
+ {"has_colors", (PyCFunction)_curses_has_colors, METH_NOARGS, _curses_has_colors__doc__},
+
+static PyObject *
+_curses_has_colors_impl(PyObject *module);
+
+static PyObject *
+_curses_has_colors(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_has_colors_impl(module);
+}
+
+PyDoc_STRVAR(_curses_has_ic__doc__,
+"has_ic($module, /)\n"
+"--\n"
+"\n"
+"Return True if the terminal has insert- and delete-character capabilities.");
+
+#define _CURSES_HAS_IC_METHODDEF \
+ {"has_ic", (PyCFunction)_curses_has_ic, METH_NOARGS, _curses_has_ic__doc__},
+
+static PyObject *
+_curses_has_ic_impl(PyObject *module);
+
+static PyObject *
+_curses_has_ic(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_has_ic_impl(module);
+}
+
+PyDoc_STRVAR(_curses_has_il__doc__,
+"has_il($module, /)\n"
+"--\n"
+"\n"
+"Return True if the terminal has insert- and delete-line capabilities.");
+
+#define _CURSES_HAS_IL_METHODDEF \
+ {"has_il", (PyCFunction)_curses_has_il, METH_NOARGS, _curses_has_il__doc__},
+
+static PyObject *
+_curses_has_il_impl(PyObject *module);
+
+static PyObject *
+_curses_has_il(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_has_il_impl(module);
+}
+
+#if defined(HAVE_CURSES_HAS_KEY)
+
+PyDoc_STRVAR(_curses_has_key__doc__,
+"has_key($module, key, /)\n"
+"--\n"
+"\n"
+"Return True if the current terminal type recognizes a key with that value.\n"
+"\n"
+" key\n"
+" Key number.");
+
+#define _CURSES_HAS_KEY_METHODDEF \
+ {"has_key", (PyCFunction)_curses_has_key, METH_O, _curses_has_key__doc__},
+
+static PyObject *
+_curses_has_key_impl(PyObject *module, int key);
+
+static PyObject *
+_curses_has_key(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int key;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ key = _PyLong_AsInt(arg);
+ if (key == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_has_key_impl(module, key);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CURSES_HAS_KEY) */
+
+PyDoc_STRVAR(_curses_init_color__doc__,
+"init_color($module, color_number, r, g, b, /)\n"
+"--\n"
+"\n"
+"Change the definition of a color.\n"
+"\n"
+" color_number\n"
+" The number of the color to be changed (0 - (COLORS-1)).\n"
+" r\n"
+" Red component (0 - 1000).\n"
+" g\n"
+" Green component (0 - 1000).\n"
+" b\n"
+" Blue component (0 - 1000).\n"
+"\n"
+"When init_color() is used, all occurrences of that color on the screen\n"
+"immediately change to the new definition. This function is a no-op on\n"
+"most terminals; it is active only if can_change_color() returns true.");
+
+#define _CURSES_INIT_COLOR_METHODDEF \
+ {"init_color", (PyCFunction)(void(*)(void))_curses_init_color, METH_FASTCALL, _curses_init_color__doc__},
+
+static PyObject *
+_curses_init_color_impl(PyObject *module, short color_number, short r,
+ short g, short b);
+
+static PyObject *
+_curses_init_color(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ short color_number;
+ short r;
+ short g;
+ short b;
+
+ if (!_PyArg_CheckPositional("init_color", nargs, 4, 4)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[0]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ color_number = (short) ival;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[1]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ r = (short) ival;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[2]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ g = (short) ival;
+ }
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[3]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ b = (short) ival;
+ }
+ }
+ return_value = _curses_init_color_impl(module, color_number, r, g, b);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_init_pair__doc__,
+"init_pair($module, pair_number, fg, bg, /)\n"
+"--\n"
+"\n"
+"Change the definition of a color-pair.\n"
+"\n"
+" pair_number\n"
+" The number of the color-pair to be changed (1 - (COLOR_PAIRS-1)).\n"
+" fg\n"
+" Foreground color number (-1 - (COLORS-1)).\n"
+" bg\n"
+" Background color number (-1 - (COLORS-1)).\n"
+"\n"
+"If the color-pair was previously initialized, the screen is refreshed and\n"
+"all occurrences of that color-pair are changed to the new definition.");
+
+#define _CURSES_INIT_PAIR_METHODDEF \
+ {"init_pair", (PyCFunction)(void(*)(void))_curses_init_pair, METH_FASTCALL, _curses_init_pair__doc__},
+
+static PyObject *
+_curses_init_pair_impl(PyObject *module, short pair_number, short fg,
+ short bg);
+
+static PyObject *
+_curses_init_pair(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ short pair_number;
+ short fg;
+ short bg;
+
+ if (!_PyArg_CheckPositional("init_pair", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[0]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ pair_number = (short) ival;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[1]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ fg = (short) ival;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(args[2]);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ bg = (short) ival;
+ }
+ }
+ return_value = _curses_init_pair_impl(module, pair_number, fg, bg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_initscr__doc__,
+"initscr($module, /)\n"
+"--\n"
+"\n"
+"Initialize the library.\n"
+"\n"
+"Return a WindowObject which represents the whole screen.");
+
+#define _CURSES_INITSCR_METHODDEF \
+ {"initscr", (PyCFunction)_curses_initscr, METH_NOARGS, _curses_initscr__doc__},
+
+static PyObject *
+_curses_initscr_impl(PyObject *module);
+
+static PyObject *
+_curses_initscr(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_initscr_impl(module);
+}
+
+PyDoc_STRVAR(_curses_setupterm__doc__,
+"setupterm($module, /, term=None, fd=-1)\n"
+"--\n"
+"\n"
+"Initialize the terminal.\n"
+"\n"
+" term\n"
+" Terminal name.\n"
+" If omitted, the value of the TERM environment variable will be used.\n"
+" fd\n"
+" File descriptor to which any initialization sequences will be sent.\n"
+" If not supplied, the file descriptor for sys.stdout will be used.");
+
+#define _CURSES_SETUPTERM_METHODDEF \
+ {"setupterm", (PyCFunction)(void(*)(void))_curses_setupterm, METH_FASTCALL|METH_KEYWORDS, _curses_setupterm__doc__},
+
+static PyObject *
+_curses_setupterm_impl(PyObject *module, const char *term, int fd);
+
+static PyObject *
+_curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"term", "fd", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "setupterm", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ const char *term = NULL;
+ int fd = -1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (args[0] == Py_None) {
+ term = NULL;
+ }
+ else if (PyUnicode_Check(args[0])) {
+ Py_ssize_t term_length;
+ term = PyUnicode_AsUTF8AndSize(args[0], &term_length);
+ if (term == NULL) {
+ goto exit;
+ }
+ if (strlen(term) != (size_t)term_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("setupterm", "argument 'term'", "str or None", args[0]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[1]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = _curses_setupterm_impl(module, term, fd);
+
+exit:
+ return return_value;
+}
+
+#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
+
+PyDoc_STRVAR(_curses_get_escdelay__doc__,
+"get_escdelay($module, /)\n"
+"--\n"
+"\n"
+"Gets the curses ESCDELAY setting.\n"
+"\n"
+"Gets the number of milliseconds to wait after reading an escape character,\n"
+"to distinguish between an individual escape character entered on the\n"
+"keyboard from escape sequences sent by cursor and function keys.");
+
+#define _CURSES_GET_ESCDELAY_METHODDEF \
+ {"get_escdelay", (PyCFunction)_curses_get_escdelay, METH_NOARGS, _curses_get_escdelay__doc__},
+
+static PyObject *
+_curses_get_escdelay_impl(PyObject *module);
+
+static PyObject *
+_curses_get_escdelay(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_get_escdelay_impl(module);
+}
+
+#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
+
+#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
+
+PyDoc_STRVAR(_curses_set_escdelay__doc__,
+"set_escdelay($module, ms, /)\n"
+"--\n"
+"\n"
+"Sets the curses ESCDELAY setting.\n"
+"\n"
+" ms\n"
+" length of the delay in milliseconds.\n"
+"\n"
+"Sets the number of milliseconds to wait after reading an escape character,\n"
+"to distinguish between an individual escape character entered on the\n"
+"keyboard from escape sequences sent by cursor and function keys.");
+
+#define _CURSES_SET_ESCDELAY_METHODDEF \
+ {"set_escdelay", (PyCFunction)_curses_set_escdelay, METH_O, _curses_set_escdelay__doc__},
+
+static PyObject *
+_curses_set_escdelay_impl(PyObject *module, int ms);
+
+static PyObject *
+_curses_set_escdelay(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int ms;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ ms = _PyLong_AsInt(arg);
+ if (ms == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_set_escdelay_impl(module, ms);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
+
+#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
+
+PyDoc_STRVAR(_curses_get_tabsize__doc__,
+"get_tabsize($module, /)\n"
+"--\n"
+"\n"
+"Gets the curses TABSIZE setting.\n"
+"\n"
+"Gets the number of columns used by the curses library when converting a tab\n"
+"character to spaces as it adds the tab to a window.");
+
+#define _CURSES_GET_TABSIZE_METHODDEF \
+ {"get_tabsize", (PyCFunction)_curses_get_tabsize, METH_NOARGS, _curses_get_tabsize__doc__},
+
+static PyObject *
+_curses_get_tabsize_impl(PyObject *module);
+
+static PyObject *
+_curses_get_tabsize(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_get_tabsize_impl(module);
+}
+
+#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
+
+#if (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102)
+
+PyDoc_STRVAR(_curses_set_tabsize__doc__,
+"set_tabsize($module, size, /)\n"
+"--\n"
+"\n"
+"Sets the curses TABSIZE setting.\n"
+"\n"
+" size\n"
+" rendered cell width of a tab character.\n"
+"\n"
+"Sets the number of columns used by the curses library when converting a tab\n"
+"character to spaces as it adds the tab to a window.");
+
+#define _CURSES_SET_TABSIZE_METHODDEF \
+ {"set_tabsize", (PyCFunction)_curses_set_tabsize, METH_O, _curses_set_tabsize__doc__},
+
+static PyObject *
+_curses_set_tabsize_impl(PyObject *module, int size);
+
+static PyObject *
+_curses_set_tabsize(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int size;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ size = _PyLong_AsInt(arg);
+ if (size == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_set_tabsize_impl(module, size);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(NCURSES_EXT_FUNCS) && NCURSES_EXT_FUNCS >= 20081102) */
+
+PyDoc_STRVAR(_curses_intrflush__doc__,
+"intrflush($module, flag, /)\n"
+"--\n"
+"\n");
+
+#define _CURSES_INTRFLUSH_METHODDEF \
+ {"intrflush", (PyCFunction)_curses_intrflush, METH_O, _curses_intrflush__doc__},
+
+static PyObject *
+_curses_intrflush_impl(PyObject *module, int flag);
+
+static PyObject *
+_curses_intrflush(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int flag;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(arg);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_intrflush_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_isendwin__doc__,
+"isendwin($module, /)\n"
+"--\n"
+"\n"
+"Return True if endwin() has been called.");
+
+#define _CURSES_ISENDWIN_METHODDEF \
+ {"isendwin", (PyCFunction)_curses_isendwin, METH_NOARGS, _curses_isendwin__doc__},
+
+static PyObject *
+_curses_isendwin_impl(PyObject *module);
+
+static PyObject *
+_curses_isendwin(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_isendwin_impl(module);
+}
+
+#if defined(HAVE_CURSES_IS_TERM_RESIZED)
+
+PyDoc_STRVAR(_curses_is_term_resized__doc__,
+"is_term_resized($module, nlines, ncols, /)\n"
+"--\n"
+"\n"
+"Return True if resize_term() would modify the window structure, False otherwise.\n"
+"\n"
+" nlines\n"
+" Height.\n"
+" ncols\n"
+" Width.");
+
+#define _CURSES_IS_TERM_RESIZED_METHODDEF \
+ {"is_term_resized", (PyCFunction)(void(*)(void))_curses_is_term_resized, METH_FASTCALL, _curses_is_term_resized__doc__},
+
+static PyObject *
+_curses_is_term_resized_impl(PyObject *module, int nlines, int ncols);
+
+static PyObject *
+_curses_is_term_resized(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int nlines;
+ int ncols;
+
+ if (!_PyArg_CheckPositional("is_term_resized", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nlines = _PyLong_AsInt(args[0]);
+ if (nlines == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ ncols = _PyLong_AsInt(args[1]);
+ if (ncols == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_is_term_resized_impl(module, nlines, ncols);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CURSES_IS_TERM_RESIZED) */
+
+PyDoc_STRVAR(_curses_keyname__doc__,
+"keyname($module, key, /)\n"
+"--\n"
+"\n"
+"Return the name of specified key.\n"
+"\n"
+" key\n"
+" Key number.");
+
+#define _CURSES_KEYNAME_METHODDEF \
+ {"keyname", (PyCFunction)_curses_keyname, METH_O, _curses_keyname__doc__},
+
+static PyObject *
+_curses_keyname_impl(PyObject *module, int key);
+
+static PyObject *
+_curses_keyname(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int key;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ key = _PyLong_AsInt(arg);
+ if (key == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_keyname_impl(module, key);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_killchar__doc__,
+"killchar($module, /)\n"
+"--\n"
+"\n"
+"Return the user\'s current line kill character.");
+
+#define _CURSES_KILLCHAR_METHODDEF \
+ {"killchar", (PyCFunction)_curses_killchar, METH_NOARGS, _curses_killchar__doc__},
+
+static PyObject *
+_curses_killchar_impl(PyObject *module);
+
+static PyObject *
+_curses_killchar(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_killchar_impl(module);
+}
+
+PyDoc_STRVAR(_curses_longname__doc__,
+"longname($module, /)\n"
+"--\n"
+"\n"
+"Return the terminfo long name field describing the current terminal.\n"
+"\n"
+"The maximum length of a verbose description is 128 characters. It is defined\n"
+"only after the call to initscr().");
+
+#define _CURSES_LONGNAME_METHODDEF \
+ {"longname", (PyCFunction)_curses_longname, METH_NOARGS, _curses_longname__doc__},
+
+static PyObject *
+_curses_longname_impl(PyObject *module);
+
+static PyObject *
+_curses_longname(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_longname_impl(module);
+}
+
+PyDoc_STRVAR(_curses_meta__doc__,
+"meta($module, yes, /)\n"
+"--\n"
+"\n"
+"Enable/disable meta keys.\n"
+"\n"
+"If yes is True, allow 8-bit characters to be input. If yes is False,\n"
+"allow only 7-bit characters.");
+
+#define _CURSES_META_METHODDEF \
+ {"meta", (PyCFunction)_curses_meta, METH_O, _curses_meta__doc__},
+
+static PyObject *
+_curses_meta_impl(PyObject *module, int yes);
+
+static PyObject *
+_curses_meta(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int yes;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ yes = _PyLong_AsInt(arg);
+ if (yes == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_meta_impl(module, yes);
+
+exit:
+ return return_value;
+}
+
+#if defined(NCURSES_MOUSE_VERSION)
+
+PyDoc_STRVAR(_curses_mouseinterval__doc__,
+"mouseinterval($module, interval, /)\n"
+"--\n"
+"\n"
+"Set and retrieve the maximum time between press and release in a click.\n"
+"\n"
+" interval\n"
+" Time in milliseconds.\n"
+"\n"
+"Set the maximum time that can elapse between press and release events in\n"
+"order for them to be recognized as a click, and return the previous interval\n"
+"value.");
+
+#define _CURSES_MOUSEINTERVAL_METHODDEF \
+ {"mouseinterval", (PyCFunction)_curses_mouseinterval, METH_O, _curses_mouseinterval__doc__},
+
+static PyObject *
+_curses_mouseinterval_impl(PyObject *module, int interval);
+
+static PyObject *
+_curses_mouseinterval(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int interval;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ interval = _PyLong_AsInt(arg);
+ if (interval == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_mouseinterval_impl(module, interval);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(NCURSES_MOUSE_VERSION) */
+
+#if defined(NCURSES_MOUSE_VERSION)
+
+PyDoc_STRVAR(_curses_mousemask__doc__,
+"mousemask($module, newmask, /)\n"
+"--\n"
+"\n"
+"Set the mouse events to be reported, and return a tuple (availmask, oldmask).\n"
+"\n"
+"Return a tuple (availmask, oldmask). availmask indicates which of the\n"
+"specified mouse events can be reported; on complete failure it returns 0.\n"
+"oldmask is the previous value of the given window\'s mouse event mask.\n"
+"If this function is never called, no mouse events are ever reported.");
+
+#define _CURSES_MOUSEMASK_METHODDEF \
+ {"mousemask", (PyCFunction)_curses_mousemask, METH_O, _curses_mousemask__doc__},
+
+static PyObject *
+_curses_mousemask_impl(PyObject *module, unsigned long newmask);
+
+static PyObject *
+_curses_mousemask(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ unsigned long newmask;
+
+ if (!PyLong_Check(arg)) {
+ _PyArg_BadArgument("mousemask", "argument", "int", arg);
+ goto exit;
+ }
+ newmask = PyLong_AsUnsignedLongMask(arg);
+ return_value = _curses_mousemask_impl(module, newmask);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(NCURSES_MOUSE_VERSION) */
+
+PyDoc_STRVAR(_curses_napms__doc__,
+"napms($module, ms, /)\n"
+"--\n"
+"\n"
+"Sleep for specified time.\n"
+"\n"
+" ms\n"
+" Duration in milliseconds.");
+
+#define _CURSES_NAPMS_METHODDEF \
+ {"napms", (PyCFunction)_curses_napms, METH_O, _curses_napms__doc__},
+
+static PyObject *
+_curses_napms_impl(PyObject *module, int ms);
+
+static PyObject *
+_curses_napms(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int ms;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ ms = _PyLong_AsInt(arg);
+ if (ms == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_napms_impl(module, ms);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_newpad__doc__,
+"newpad($module, nlines, ncols, /)\n"
+"--\n"
+"\n"
+"Create and return a pointer to a new pad data structure.\n"
+"\n"
+" nlines\n"
+" Height.\n"
+" ncols\n"
+" Width.");
+
+#define _CURSES_NEWPAD_METHODDEF \
+ {"newpad", (PyCFunction)(void(*)(void))_curses_newpad, METH_FASTCALL, _curses_newpad__doc__},
+
+static PyObject *
+_curses_newpad_impl(PyObject *module, int nlines, int ncols);
+
+static PyObject *
+_curses_newpad(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int nlines;
+ int ncols;
+
+ if (!_PyArg_CheckPositional("newpad", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nlines = _PyLong_AsInt(args[0]);
+ if (nlines == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ ncols = _PyLong_AsInt(args[1]);
+ if (ncols == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_newpad_impl(module, nlines, ncols);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_newwin__doc__,
+"newwin(nlines, ncols, [begin_y=0, begin_x=0])\n"
+"Return a new window.\n"
+"\n"
+" nlines\n"
+" Height.\n"
+" ncols\n"
+" Width.\n"
+" begin_y\n"
+" Top side y-coordinate.\n"
+" begin_x\n"
+" Left side x-coordinate.\n"
+"\n"
+"By default, the window will extend from the specified position to the lower\n"
+"right corner of the screen.");
+
+#define _CURSES_NEWWIN_METHODDEF \
+ {"newwin", (PyCFunction)_curses_newwin, METH_VARARGS, _curses_newwin__doc__},
+
+static PyObject *
+_curses_newwin_impl(PyObject *module, int nlines, int ncols,
+ int group_right_1, int begin_y, int begin_x);
+
+static PyObject *
+_curses_newwin(PyObject *module, PyObject *args)
+{
+ PyObject *return_value = NULL;
+ int nlines;
+ int ncols;
+ int group_right_1 = 0;
+ int begin_y = 0;
+ int begin_x = 0;
+
+ switch (PyTuple_GET_SIZE(args)) {
+ case 2:
+ if (!PyArg_ParseTuple(args, "ii:newwin", &nlines, &ncols)) {
+ goto exit;
+ }
+ break;
+ case 4:
+ if (!PyArg_ParseTuple(args, "iiii:newwin", &nlines, &ncols, &begin_y, &begin_x)) {
+ goto exit;
+ }
+ group_right_1 = 1;
+ break;
+ default:
+ PyErr_SetString(PyExc_TypeError, "_curses.newwin requires 2 to 4 arguments");
+ goto exit;
+ }
+ return_value = _curses_newwin_impl(module, nlines, ncols, group_right_1, begin_y, begin_x);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_nl__doc__,
+"nl($module, flag=True, /)\n"
+"--\n"
+"\n"
+"Enter newline mode.\n"
+"\n"
+" flag\n"
+" If false, the effect is the same as calling nonl().\n"
+"\n"
+"This mode translates the return key into newline on input, and translates\n"
+"newline into return and line-feed on output. Newline mode is initially on.");
+
+#define _CURSES_NL_METHODDEF \
+ {"nl", (PyCFunction)(void(*)(void))_curses_nl, METH_FASTCALL, _curses_nl__doc__},
+
+static PyObject *
+_curses_nl_impl(PyObject *module, int flag);
+
+static PyObject *
+_curses_nl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int flag = 1;
+
+ if (!_PyArg_CheckPositional("nl", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(args[0]);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_nl_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_nocbreak__doc__,
+"nocbreak($module, /)\n"
+"--\n"
+"\n"
+"Leave cbreak mode.\n"
+"\n"
+"Return to normal \"cooked\" mode with line buffering.");
+
+#define _CURSES_NOCBREAK_METHODDEF \
+ {"nocbreak", (PyCFunction)_curses_nocbreak, METH_NOARGS, _curses_nocbreak__doc__},
+
+static PyObject *
+_curses_nocbreak_impl(PyObject *module);
+
+static PyObject *
+_curses_nocbreak(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_nocbreak_impl(module);
+}
+
+PyDoc_STRVAR(_curses_noecho__doc__,
+"noecho($module, /)\n"
+"--\n"
+"\n"
+"Leave echo mode.\n"
+"\n"
+"Echoing of input characters is turned off.");
+
+#define _CURSES_NOECHO_METHODDEF \
+ {"noecho", (PyCFunction)_curses_noecho, METH_NOARGS, _curses_noecho__doc__},
+
+static PyObject *
+_curses_noecho_impl(PyObject *module);
+
+static PyObject *
+_curses_noecho(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_noecho_impl(module);
+}
+
+PyDoc_STRVAR(_curses_nonl__doc__,
+"nonl($module, /)\n"
+"--\n"
+"\n"
+"Leave newline mode.\n"
+"\n"
+"Disable translation of return into newline on input, and disable low-level\n"
+"translation of newline into newline/return on output.");
+
+#define _CURSES_NONL_METHODDEF \
+ {"nonl", (PyCFunction)_curses_nonl, METH_NOARGS, _curses_nonl__doc__},
+
+static PyObject *
+_curses_nonl_impl(PyObject *module);
+
+static PyObject *
+_curses_nonl(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_nonl_impl(module);
+}
+
+PyDoc_STRVAR(_curses_noqiflush__doc__,
+"noqiflush($module, /)\n"
+"--\n"
+"\n"
+"Disable queue flushing.\n"
+"\n"
+"When queue flushing is disabled, normal flush of input and output queues\n"
+"associated with the INTR, QUIT and SUSP characters will not be done.");
+
+#define _CURSES_NOQIFLUSH_METHODDEF \
+ {"noqiflush", (PyCFunction)_curses_noqiflush, METH_NOARGS, _curses_noqiflush__doc__},
+
+static PyObject *
+_curses_noqiflush_impl(PyObject *module);
+
+static PyObject *
+_curses_noqiflush(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_noqiflush_impl(module);
+}
+
+PyDoc_STRVAR(_curses_noraw__doc__,
+"noraw($module, /)\n"
+"--\n"
+"\n"
+"Leave raw mode.\n"
+"\n"
+"Return to normal \"cooked\" mode with line buffering.");
+
+#define _CURSES_NORAW_METHODDEF \
+ {"noraw", (PyCFunction)_curses_noraw, METH_NOARGS, _curses_noraw__doc__},
+
+static PyObject *
+_curses_noraw_impl(PyObject *module);
+
+static PyObject *
+_curses_noraw(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_noraw_impl(module);
+}
+
+PyDoc_STRVAR(_curses_pair_content__doc__,
+"pair_content($module, pair_number, /)\n"
+"--\n"
+"\n"
+"Return a tuple (fg, bg) containing the colors for the requested color pair.\n"
+"\n"
+" pair_number\n"
+" The number of the color pair (1 - (COLOR_PAIRS-1)).");
+
+#define _CURSES_PAIR_CONTENT_METHODDEF \
+ {"pair_content", (PyCFunction)_curses_pair_content, METH_O, _curses_pair_content__doc__},
+
+static PyObject *
+_curses_pair_content_impl(PyObject *module, short pair_number);
+
+static PyObject *
+_curses_pair_content(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ short pair_number;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ long ival = PyLong_AsLong(arg);
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ else if (ival < SHRT_MIN) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is less than minimum");
+ goto exit;
+ }
+ else if (ival > SHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "signed short integer is greater than maximum");
+ goto exit;
+ }
+ else {
+ pair_number = (short) ival;
+ }
+ }
+ return_value = _curses_pair_content_impl(module, pair_number);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_pair_number__doc__,
+"pair_number($module, attr, /)\n"
+"--\n"
+"\n"
+"Return the number of the color-pair set by the specified attribute value.\n"
+"\n"
+"color_pair() is the counterpart to this function.");
+
+#define _CURSES_PAIR_NUMBER_METHODDEF \
+ {"pair_number", (PyCFunction)_curses_pair_number, METH_O, _curses_pair_number__doc__},
+
+static PyObject *
+_curses_pair_number_impl(PyObject *module, int attr);
+
+static PyObject *
+_curses_pair_number(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int attr;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ attr = _PyLong_AsInt(arg);
+ if (attr == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_pair_number_impl(module, attr);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_putp__doc__,
+"putp($module, string, /)\n"
+"--\n"
+"\n"
+"Emit the value of a specified terminfo capability for the current terminal.\n"
+"\n"
+"Note that the output of putp() always goes to standard output.");
+
+#define _CURSES_PUTP_METHODDEF \
+ {"putp", (PyCFunction)_curses_putp, METH_O, _curses_putp__doc__},
+
+static PyObject *
+_curses_putp_impl(PyObject *module, const char *string);
+
+static PyObject *
+_curses_putp(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *string;
+
+ if (!PyArg_Parse(arg, "y:putp", &string)) {
+ goto exit;
+ }
+ return_value = _curses_putp_impl(module, string);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_qiflush__doc__,
+"qiflush($module, flag=True, /)\n"
+"--\n"
+"\n"
+"Enable queue flushing.\n"
+"\n"
+" flag\n"
+" If false, the effect is the same as calling noqiflush().\n"
+"\n"
+"If queue flushing is enabled, all output in the display driver queue\n"
+"will be flushed when the INTR, QUIT and SUSP characters are read.");
+
+#define _CURSES_QIFLUSH_METHODDEF \
+ {"qiflush", (PyCFunction)(void(*)(void))_curses_qiflush, METH_FASTCALL, _curses_qiflush__doc__},
+
+static PyObject *
+_curses_qiflush_impl(PyObject *module, int flag);
+
+static PyObject *
+_curses_qiflush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int flag = 1;
+
+ if (!_PyArg_CheckPositional("qiflush", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(args[0]);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_qiflush_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+#if (defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM))
+
+PyDoc_STRVAR(_curses_update_lines_cols__doc__,
+"update_lines_cols($module, /)\n"
+"--\n"
+"\n");
+
+#define _CURSES_UPDATE_LINES_COLS_METHODDEF \
+ {"update_lines_cols", (PyCFunction)_curses_update_lines_cols, METH_NOARGS, _curses_update_lines_cols__doc__},
+
+static PyObject *
+_curses_update_lines_cols_impl(PyObject *module);
+
+static PyObject *
+_curses_update_lines_cols(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_update_lines_cols_impl(module);
+}
+
+#endif /* (defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM)) */
+
+PyDoc_STRVAR(_curses_raw__doc__,
+"raw($module, flag=True, /)\n"
+"--\n"
+"\n"
+"Enter raw mode.\n"
+"\n"
+" flag\n"
+" If false, the effect is the same as calling noraw().\n"
+"\n"
+"In raw mode, normal line buffering and processing of interrupt, quit,\n"
+"suspend, and flow control keys are turned off; characters are presented to\n"
+"curses input functions one by one.");
+
+#define _CURSES_RAW_METHODDEF \
+ {"raw", (PyCFunction)(void(*)(void))_curses_raw, METH_FASTCALL, _curses_raw__doc__},
+
+static PyObject *
+_curses_raw_impl(PyObject *module, int flag);
+
+static PyObject *
+_curses_raw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int flag = 1;
+
+ if (!_PyArg_CheckPositional("raw", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(args[0]);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = _curses_raw_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_reset_prog_mode__doc__,
+"reset_prog_mode($module, /)\n"
+"--\n"
+"\n"
+"Restore the terminal to \"program\" mode, as previously saved by def_prog_mode().");
+
+#define _CURSES_RESET_PROG_MODE_METHODDEF \
+ {"reset_prog_mode", (PyCFunction)_curses_reset_prog_mode, METH_NOARGS, _curses_reset_prog_mode__doc__},
+
+static PyObject *
+_curses_reset_prog_mode_impl(PyObject *module);
+
+static PyObject *
+_curses_reset_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_reset_prog_mode_impl(module);
+}
+
+PyDoc_STRVAR(_curses_reset_shell_mode__doc__,
+"reset_shell_mode($module, /)\n"
+"--\n"
+"\n"
+"Restore the terminal to \"shell\" mode, as previously saved by def_shell_mode().");
+
+#define _CURSES_RESET_SHELL_MODE_METHODDEF \
+ {"reset_shell_mode", (PyCFunction)_curses_reset_shell_mode, METH_NOARGS, _curses_reset_shell_mode__doc__},
+
+static PyObject *
+_curses_reset_shell_mode_impl(PyObject *module);
+
+static PyObject *
+_curses_reset_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_reset_shell_mode_impl(module);
+}
+
+PyDoc_STRVAR(_curses_resetty__doc__,
+"resetty($module, /)\n"
+"--\n"
+"\n"
+"Restore terminal mode.");
+
+#define _CURSES_RESETTY_METHODDEF \
+ {"resetty", (PyCFunction)_curses_resetty, METH_NOARGS, _curses_resetty__doc__},
+
+static PyObject *
+_curses_resetty_impl(PyObject *module);
+
+static PyObject *
+_curses_resetty(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_resetty_impl(module);
+}
+
+#if defined(HAVE_CURSES_RESIZETERM)
+
+PyDoc_STRVAR(_curses_resizeterm__doc__,
+"resizeterm($module, nlines, ncols, /)\n"
+"--\n"
+"\n"
+"Resize the standard and current windows to the specified dimensions.\n"
+"\n"
+" nlines\n"
+" Height.\n"
+" ncols\n"
+" Width.\n"
+"\n"
+"Adjusts other bookkeeping data used by the curses library that record the\n"
+"window dimensions (in particular the SIGWINCH handler).");
+
+#define _CURSES_RESIZETERM_METHODDEF \
+ {"resizeterm", (PyCFunction)(void(*)(void))_curses_resizeterm, METH_FASTCALL, _curses_resizeterm__doc__},
+
+static PyObject *
+_curses_resizeterm_impl(PyObject *module, int nlines, int ncols);
+
+static PyObject *
+_curses_resizeterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int nlines;
+ int ncols;
+
+ if (!_PyArg_CheckPositional("resizeterm", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nlines = _PyLong_AsInt(args[0]);
+ if (nlines == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ ncols = _PyLong_AsInt(args[1]);
+ if (ncols == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_resizeterm_impl(module, nlines, ncols);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CURSES_RESIZETERM) */
+
+#if defined(HAVE_CURSES_RESIZE_TERM)
+
+PyDoc_STRVAR(_curses_resize_term__doc__,
+"resize_term($module, nlines, ncols, /)\n"
+"--\n"
+"\n"
+"Backend function used by resizeterm(), performing most of the work.\n"
+"\n"
+" nlines\n"
+" Height.\n"
+" ncols\n"
+" Width.\n"
+"\n"
+"When resizing the windows, resize_term() blank-fills the areas that are\n"
+"extended. The calling application should fill in these areas with appropriate\n"
+"data. The resize_term() function attempts to resize all windows. However,\n"
+"due to the calling convention of pads, it is not possible to resize these\n"
+"without additional interaction with the application.");
+
+#define _CURSES_RESIZE_TERM_METHODDEF \
+ {"resize_term", (PyCFunction)(void(*)(void))_curses_resize_term, METH_FASTCALL, _curses_resize_term__doc__},
+
+static PyObject *
+_curses_resize_term_impl(PyObject *module, int nlines, int ncols);
+
+static PyObject *
+_curses_resize_term(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int nlines;
+ int ncols;
+
+ if (!_PyArg_CheckPositional("resize_term", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nlines = _PyLong_AsInt(args[0]);
+ if (nlines == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ ncols = _PyLong_AsInt(args[1]);
+ if (ncols == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_resize_term_impl(module, nlines, ncols);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CURSES_RESIZE_TERM) */
+
+PyDoc_STRVAR(_curses_savetty__doc__,
+"savetty($module, /)\n"
+"--\n"
+"\n"
+"Save terminal mode.");
+
+#define _CURSES_SAVETTY_METHODDEF \
+ {"savetty", (PyCFunction)_curses_savetty, METH_NOARGS, _curses_savetty__doc__},
+
+static PyObject *
+_curses_savetty_impl(PyObject *module);
+
+static PyObject *
+_curses_savetty(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_savetty_impl(module);
+}
+
+#if defined(getsyx)
+
+PyDoc_STRVAR(_curses_setsyx__doc__,
+"setsyx($module, y, x, /)\n"
+"--\n"
+"\n"
+"Set the virtual screen cursor.\n"
+"\n"
+" y\n"
+" Y-coordinate.\n"
+" x\n"
+" X-coordinate.\n"
+"\n"
+"If y and x are both -1, then leaveok is set.");
+
+#define _CURSES_SETSYX_METHODDEF \
+ {"setsyx", (PyCFunction)(void(*)(void))_curses_setsyx, METH_FASTCALL, _curses_setsyx__doc__},
+
+static PyObject *
+_curses_setsyx_impl(PyObject *module, int y, int x);
+
+static PyObject *
+_curses_setsyx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int y;
+ int x;
+
+ if (!_PyArg_CheckPositional("setsyx", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ y = _PyLong_AsInt(args[0]);
+ if (y == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ x = _PyLong_AsInt(args[1]);
+ if (x == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_setsyx_impl(module, y, x);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(getsyx) */
+
+PyDoc_STRVAR(_curses_start_color__doc__,
+"start_color($module, /)\n"
+"--\n"
+"\n"
+"Initializes eight basic colors and global variables COLORS and COLOR_PAIRS.\n"
+"\n"
+"Must be called if the programmer wants to use colors, and before any other\n"
+"color manipulation routine is called. It is good practice to call this\n"
+"routine right after initscr().\n"
+"\n"
+"It also restores the colors on the terminal to the values they had when the\n"
+"terminal was just turned on.");
+
+#define _CURSES_START_COLOR_METHODDEF \
+ {"start_color", (PyCFunction)_curses_start_color, METH_NOARGS, _curses_start_color__doc__},
+
+static PyObject *
+_curses_start_color_impl(PyObject *module);
+
+static PyObject *
+_curses_start_color(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_start_color_impl(module);
+}
+
+PyDoc_STRVAR(_curses_termattrs__doc__,
+"termattrs($module, /)\n"
+"--\n"
+"\n"
+"Return a logical OR of all video attributes supported by the terminal.");
+
+#define _CURSES_TERMATTRS_METHODDEF \
+ {"termattrs", (PyCFunction)_curses_termattrs, METH_NOARGS, _curses_termattrs__doc__},
+
+static PyObject *
+_curses_termattrs_impl(PyObject *module);
+
+static PyObject *
+_curses_termattrs(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_termattrs_impl(module);
+}
+
+PyDoc_STRVAR(_curses_termname__doc__,
+"termname($module, /)\n"
+"--\n"
+"\n"
+"Return the value of the environment variable TERM, truncated to 14 characters.");
+
+#define _CURSES_TERMNAME_METHODDEF \
+ {"termname", (PyCFunction)_curses_termname, METH_NOARGS, _curses_termname__doc__},
+
+static PyObject *
+_curses_termname_impl(PyObject *module);
+
+static PyObject *
+_curses_termname(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_termname_impl(module);
+}
+
+PyDoc_STRVAR(_curses_tigetflag__doc__,
+"tigetflag($module, capname, /)\n"
+"--\n"
+"\n"
+"Return the value of the Boolean capability.\n"
+"\n"
+" capname\n"
+" The terminfo capability name.\n"
+"\n"
+"The value -1 is returned if capname is not a Boolean capability, or 0 if\n"
+"it is canceled or absent from the terminal description.");
+
+#define _CURSES_TIGETFLAG_METHODDEF \
+ {"tigetflag", (PyCFunction)_curses_tigetflag, METH_O, _curses_tigetflag__doc__},
+
+static PyObject *
+_curses_tigetflag_impl(PyObject *module, const char *capname);
+
+static PyObject *
+_curses_tigetflag(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *capname;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("tigetflag", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t capname_length;
+ capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
+ if (capname == NULL) {
+ goto exit;
+ }
+ if (strlen(capname) != (size_t)capname_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ return_value = _curses_tigetflag_impl(module, capname);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_tigetnum__doc__,
+"tigetnum($module, capname, /)\n"
+"--\n"
+"\n"
+"Return the value of the numeric capability.\n"
+"\n"
+" capname\n"
+" The terminfo capability name.\n"
+"\n"
+"The value -2 is returned if capname is not a numeric capability, or -1 if\n"
+"it is canceled or absent from the terminal description.");
+
+#define _CURSES_TIGETNUM_METHODDEF \
+ {"tigetnum", (PyCFunction)_curses_tigetnum, METH_O, _curses_tigetnum__doc__},
+
+static PyObject *
+_curses_tigetnum_impl(PyObject *module, const char *capname);
+
+static PyObject *
+_curses_tigetnum(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *capname;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("tigetnum", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t capname_length;
+ capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
+ if (capname == NULL) {
+ goto exit;
+ }
+ if (strlen(capname) != (size_t)capname_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ return_value = _curses_tigetnum_impl(module, capname);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_tigetstr__doc__,
+"tigetstr($module, capname, /)\n"
+"--\n"
+"\n"
+"Return the value of the string capability.\n"
+"\n"
+" capname\n"
+" The terminfo capability name.\n"
+"\n"
+"None is returned if capname is not a string capability, or is canceled or\n"
+"absent from the terminal description.");
+
+#define _CURSES_TIGETSTR_METHODDEF \
+ {"tigetstr", (PyCFunction)_curses_tigetstr, METH_O, _curses_tigetstr__doc__},
+
+static PyObject *
+_curses_tigetstr_impl(PyObject *module, const char *capname);
+
+static PyObject *
+_curses_tigetstr(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ const char *capname;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("tigetstr", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t capname_length;
+ capname = PyUnicode_AsUTF8AndSize(arg, &capname_length);
+ if (capname == NULL) {
+ goto exit;
+ }
+ if (strlen(capname) != (size_t)capname_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ return_value = _curses_tigetstr_impl(module, capname);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_curses_tparm__doc__,
+"tparm($module, str, i1=0, i2=0, i3=0, i4=0, i5=0, i6=0, i7=0, i8=0,\n"
+" i9=0, /)\n"
+"--\n"
+"\n"
+"Instantiate the specified byte string with the supplied parameters.\n"
+"\n"
+" str\n"
+" Parameterized byte string obtained from the terminfo database.");
+
+#define _CURSES_TPARM_METHODDEF \
+ {"tparm", (PyCFunction)(void(*)(void))_curses_tparm, METH_FASTCALL, _curses_tparm__doc__},
+
+static PyObject *
+_curses_tparm_impl(PyObject *module, const char *str, int i1, int i2, int i3,
+ int i4, int i5, int i6, int i7, int i8, int i9);
+
+static PyObject *
+_curses_tparm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ const char *str;
+ int i1 = 0;
+ int i2 = 0;
+ int i3 = 0;
+ int i4 = 0;
+ int i5 = 0;
+ int i6 = 0;
+ int i7 = 0;
+ int i8 = 0;
+ int i9 = 0;
+
+ if (!_PyArg_ParseStack(args, nargs, "y|iiiiiiiii:tparm",
+ &str, &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8, &i9)) {
+ goto exit;
+ }
+ return_value = _curses_tparm_impl(module, str, i1, i2, i3, i4, i5, i6, i7, i8, i9);
+
+exit:
+ return return_value;
+}
+
+#if defined(HAVE_CURSES_TYPEAHEAD)
+
+PyDoc_STRVAR(_curses_typeahead__doc__,
+"typeahead($module, fd, /)\n"
+"--\n"
+"\n"
+"Specify that the file descriptor fd be used for typeahead checking.\n"
+"\n"
+" fd\n"
+" File descriptor.\n"
+"\n"
+"If fd is -1, then no typeahead checking is done.");
+
+#define _CURSES_TYPEAHEAD_METHODDEF \
+ {"typeahead", (PyCFunction)_curses_typeahead, METH_O, _curses_typeahead__doc__},
+
+static PyObject *
+_curses_typeahead_impl(PyObject *module, int fd);
+
+static PyObject *
+_curses_typeahead(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_typeahead_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CURSES_TYPEAHEAD) */
+
+PyDoc_STRVAR(_curses_unctrl__doc__,
+"unctrl($module, ch, /)\n"
+"--\n"
+"\n"
+"Return a string which is a printable representation of the character ch.\n"
+"\n"
+"Control characters are displayed as a caret followed by the character,\n"
+"for example as ^C. Printing characters are left as they are.");
+
+#define _CURSES_UNCTRL_METHODDEF \
+ {"unctrl", (PyCFunction)_curses_unctrl, METH_O, _curses_unctrl__doc__},
+
+PyDoc_STRVAR(_curses_ungetch__doc__,
+"ungetch($module, ch, /)\n"
+"--\n"
+"\n"
+"Push ch so the next getch() will return it.");
+
+#define _CURSES_UNGETCH_METHODDEF \
+ {"ungetch", (PyCFunction)_curses_ungetch, METH_O, _curses_ungetch__doc__},
+
+#if defined(HAVE_NCURSESW)
+
+PyDoc_STRVAR(_curses_unget_wch__doc__,
+"unget_wch($module, ch, /)\n"
+"--\n"
+"\n"
+"Push ch so the next get_wch() will return it.");
+
+#define _CURSES_UNGET_WCH_METHODDEF \
+ {"unget_wch", (PyCFunction)_curses_unget_wch, METH_O, _curses_unget_wch__doc__},
+
+#endif /* defined(HAVE_NCURSESW) */
+
+#if defined(HAVE_CURSES_USE_ENV)
+
+PyDoc_STRVAR(_curses_use_env__doc__,
+"use_env($module, flag, /)\n"
+"--\n"
+"\n"
+"Use environment variables LINES and COLUMNS.\n"
+"\n"
+"If used, this function should be called before initscr() or newterm() are\n"
+"called.\n"
+"\n"
+"When flag is False, the values of lines and columns specified in the terminfo\n"
+"database will be used, even if environment variables LINES and COLUMNS (used\n"
+"by default) are set, or if curses is running in a window (in which case\n"
+"default behavior would be to use the window size if LINES and COLUMNS are\n"
+"not set).");
+
+#define _CURSES_USE_ENV_METHODDEF \
+ {"use_env", (PyCFunction)_curses_use_env, METH_O, _curses_use_env__doc__},
+
+static PyObject *
+_curses_use_env_impl(PyObject *module, int flag);
+
+static PyObject *
+_curses_use_env(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int flag;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(arg);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _curses_use_env_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_CURSES_USE_ENV) */
+
+#if !defined(STRICT_SYSV_CURSES)
+
+PyDoc_STRVAR(_curses_use_default_colors__doc__,
+"use_default_colors($module, /)\n"
+"--\n"
+"\n"
+"Allow use of default values for colors on terminals supporting this feature.\n"
+"\n"
+"Use this to support transparency in your application. The default color\n"
+"is assigned to the color number -1.");
+
+#define _CURSES_USE_DEFAULT_COLORS_METHODDEF \
+ {"use_default_colors", (PyCFunction)_curses_use_default_colors, METH_NOARGS, _curses_use_default_colors__doc__},
+
+static PyObject *
+_curses_use_default_colors_impl(PyObject *module);
+
+static PyObject *
+_curses_use_default_colors(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _curses_use_default_colors_impl(module);
+}
+
+#endif /* !defined(STRICT_SYSV_CURSES) */
+
+#ifndef _CURSES_WINDOW_ENCLOSE_METHODDEF
+ #define _CURSES_WINDOW_ENCLOSE_METHODDEF
+#endif /* !defined(_CURSES_WINDOW_ENCLOSE_METHODDEF) */
+
+#ifndef _CURSES_WINDOW_GET_WCH_METHODDEF
+ #define _CURSES_WINDOW_GET_WCH_METHODDEF
+#endif /* !defined(_CURSES_WINDOW_GET_WCH_METHODDEF) */
+
+#ifndef _CURSES_WINDOW_NOUTREFRESH_METHODDEF
+ #define _CURSES_WINDOW_NOUTREFRESH_METHODDEF
+#endif /* !defined(_CURSES_WINDOW_NOUTREFRESH_METHODDEF) */
+
+#ifndef _CURSES_FILTER_METHODDEF
+ #define _CURSES_FILTER_METHODDEF
+#endif /* !defined(_CURSES_FILTER_METHODDEF) */
+
+#ifndef _CURSES_GETSYX_METHODDEF
+ #define _CURSES_GETSYX_METHODDEF
+#endif /* !defined(_CURSES_GETSYX_METHODDEF) */
+
+#ifndef _CURSES_GETMOUSE_METHODDEF
+ #define _CURSES_GETMOUSE_METHODDEF
+#endif /* !defined(_CURSES_GETMOUSE_METHODDEF) */
+
+#ifndef _CURSES_UNGETMOUSE_METHODDEF
+ #define _CURSES_UNGETMOUSE_METHODDEF
+#endif /* !defined(_CURSES_UNGETMOUSE_METHODDEF) */
+
+#ifndef _CURSES_HAS_KEY_METHODDEF
+ #define _CURSES_HAS_KEY_METHODDEF
+#endif /* !defined(_CURSES_HAS_KEY_METHODDEF) */
+
+#ifndef _CURSES_GET_ESCDELAY_METHODDEF
+ #define _CURSES_GET_ESCDELAY_METHODDEF
+#endif /* !defined(_CURSES_GET_ESCDELAY_METHODDEF) */
+
+#ifndef _CURSES_SET_ESCDELAY_METHODDEF
+ #define _CURSES_SET_ESCDELAY_METHODDEF
+#endif /* !defined(_CURSES_SET_ESCDELAY_METHODDEF) */
+
+#ifndef _CURSES_GET_TABSIZE_METHODDEF
+ #define _CURSES_GET_TABSIZE_METHODDEF
+#endif /* !defined(_CURSES_GET_TABSIZE_METHODDEF) */
+
+#ifndef _CURSES_SET_TABSIZE_METHODDEF
+ #define _CURSES_SET_TABSIZE_METHODDEF
+#endif /* !defined(_CURSES_SET_TABSIZE_METHODDEF) */
+
+#ifndef _CURSES_IS_TERM_RESIZED_METHODDEF
+ #define _CURSES_IS_TERM_RESIZED_METHODDEF
+#endif /* !defined(_CURSES_IS_TERM_RESIZED_METHODDEF) */
+
+#ifndef _CURSES_MOUSEINTERVAL_METHODDEF
+ #define _CURSES_MOUSEINTERVAL_METHODDEF
+#endif /* !defined(_CURSES_MOUSEINTERVAL_METHODDEF) */
+
+#ifndef _CURSES_MOUSEMASK_METHODDEF
+ #define _CURSES_MOUSEMASK_METHODDEF
+#endif /* !defined(_CURSES_MOUSEMASK_METHODDEF) */
+
+#ifndef _CURSES_UPDATE_LINES_COLS_METHODDEF
+ #define _CURSES_UPDATE_LINES_COLS_METHODDEF
+#endif /* !defined(_CURSES_UPDATE_LINES_COLS_METHODDEF) */
+
+#ifndef _CURSES_RESIZETERM_METHODDEF
+ #define _CURSES_RESIZETERM_METHODDEF
+#endif /* !defined(_CURSES_RESIZETERM_METHODDEF) */
+
+#ifndef _CURSES_RESIZE_TERM_METHODDEF
+ #define _CURSES_RESIZE_TERM_METHODDEF
+#endif /* !defined(_CURSES_RESIZE_TERM_METHODDEF) */
+
+#ifndef _CURSES_SETSYX_METHODDEF
+ #define _CURSES_SETSYX_METHODDEF
+#endif /* !defined(_CURSES_SETSYX_METHODDEF) */
+
+#ifndef _CURSES_TYPEAHEAD_METHODDEF
+ #define _CURSES_TYPEAHEAD_METHODDEF
+#endif /* !defined(_CURSES_TYPEAHEAD_METHODDEF) */
+
+#ifndef _CURSES_UNGET_WCH_METHODDEF
+ #define _CURSES_UNGET_WCH_METHODDEF
+#endif /* !defined(_CURSES_UNGET_WCH_METHODDEF) */
+
+#ifndef _CURSES_USE_ENV_METHODDEF
+ #define _CURSES_USE_ENV_METHODDEF
+#endif /* !defined(_CURSES_USE_ENV_METHODDEF) */
+
+#ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF
+ #define _CURSES_USE_DEFAULT_COLORS_METHODDEF
+#endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */
+/*[clinic end generated code: output=5e739120041df368 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_datetimemodule.c.h b/contrib/tools/python3/src/Modules/clinic/_datetimemodule.c.h
index f11a3a2e47..973a4ea025 100644
--- a/contrib/tools/python3/src/Modules/clinic/_datetimemodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_datetimemodule.c.h
@@ -2,72 +2,72 @@
preserve
[clinic start generated code]*/
-PyDoc_STRVAR(datetime_date_fromtimestamp__doc__,
-"fromtimestamp($type, timestamp, /)\n"
-"--\n"
-"\n"
-"Create a date from a POSIX timestamp.\n"
-"\n"
-"The timestamp is a number, e.g. created via time.time(), that is interpreted\n"
-"as local time.");
-
-#define DATETIME_DATE_FROMTIMESTAMP_METHODDEF \
- {"fromtimestamp", (PyCFunction)datetime_date_fromtimestamp, METH_O|METH_CLASS, datetime_date_fromtimestamp__doc__},
-
-static PyObject *
-iso_calendar_date_new_impl(PyTypeObject *type, int year, int week,
- int weekday);
-
-static PyObject *
-iso_calendar_date_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"year", "week", "weekday", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "IsoCalendarDate", 0};
- PyObject *argsbuf[3];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- int year;
- int week;
- int weekday;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 3, 3, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- if (PyFloat_Check(fastargs[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- year = _PyLong_AsInt(fastargs[0]);
- if (year == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- week = _PyLong_AsInt(fastargs[1]);
- if (week == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(fastargs[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- weekday = _PyLong_AsInt(fastargs[2]);
- if (weekday == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = iso_calendar_date_new_impl(type, year, week, weekday);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(datetime_date_fromtimestamp__doc__,
+"fromtimestamp($type, timestamp, /)\n"
+"--\n"
+"\n"
+"Create a date from a POSIX timestamp.\n"
+"\n"
+"The timestamp is a number, e.g. created via time.time(), that is interpreted\n"
+"as local time.");
+
+#define DATETIME_DATE_FROMTIMESTAMP_METHODDEF \
+ {"fromtimestamp", (PyCFunction)datetime_date_fromtimestamp, METH_O|METH_CLASS, datetime_date_fromtimestamp__doc__},
+
+static PyObject *
+iso_calendar_date_new_impl(PyTypeObject *type, int year, int week,
+ int weekday);
+
+static PyObject *
+iso_calendar_date_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"year", "week", "weekday", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "IsoCalendarDate", 0};
+ PyObject *argsbuf[3];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ int year;
+ int week;
+ int weekday;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 3, 3, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ if (PyFloat_Check(fastargs[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ year = _PyLong_AsInt(fastargs[0]);
+ if (year == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ week = _PyLong_AsInt(fastargs[1]);
+ if (week == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(fastargs[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ weekday = _PyLong_AsInt(fastargs[2]);
+ if (weekday == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = iso_calendar_date_new_impl(type, year, week, weekday);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(datetime_datetime_now__doc__,
"now($type, /, tz=None)\n"
"--\n"
@@ -80,7 +80,7 @@ PyDoc_STRVAR(datetime_datetime_now__doc__,
"If no tz is specified, uses local timezone.");
#define DATETIME_DATETIME_NOW_METHODDEF \
- {"now", (PyCFunction)(void(*)(void))datetime_datetime_now, METH_FASTCALL|METH_KEYWORDS|METH_CLASS, datetime_datetime_now__doc__},
+ {"now", (PyCFunction)(void(*)(void))datetime_datetime_now, METH_FASTCALL|METH_KEYWORDS|METH_CLASS, datetime_datetime_now__doc__},
static PyObject *
datetime_datetime_now_impl(PyTypeObject *type, PyObject *tz);
@@ -90,23 +90,23 @@ datetime_datetime_now(PyTypeObject *type, PyObject *const *args, Py_ssize_t narg
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"tz", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "now", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "now", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *tz = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- tz = args[0];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ tz = args[0];
+skip_optional_pos:
return_value = datetime_datetime_now_impl(type, tz);
exit:
return return_value;
}
-/*[clinic end generated code: output=5e17549f29a439a5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5e17549f29a439a5 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_dbmmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_dbmmodule.c.h
index 963cbdb3cb..a7d7350850 100644
--- a/contrib/tools/python3/src/Modules/clinic/_dbmmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_dbmmodule.c.h
@@ -45,7 +45,7 @@ PyDoc_STRVAR(_dbm_dbm_get__doc__,
"Return the value for key if present, otherwise default.");
#define _DBM_DBM_GET_METHODDEF \
- {"get", (PyCFunction)(void(*)(void))_dbm_dbm_get, METH_FASTCALL, _dbm_dbm_get__doc__},
+ {"get", (PyCFunction)(void(*)(void))_dbm_dbm_get, METH_FASTCALL, _dbm_dbm_get__doc__},
static PyObject *
_dbm_dbm_get_impl(dbmobject *self, const char *key,
@@ -78,7 +78,7 @@ PyDoc_STRVAR(_dbm_dbm_setdefault__doc__,
"If key is not in the database, it is inserted with default as the value.");
#define _DBM_DBM_SETDEFAULT_METHODDEF \
- {"setdefault", (PyCFunction)(void(*)(void))_dbm_dbm_setdefault, METH_FASTCALL, _dbm_dbm_setdefault__doc__},
+ {"setdefault", (PyCFunction)(void(*)(void))_dbm_dbm_setdefault, METH_FASTCALL, _dbm_dbm_setdefault__doc__},
static PyObject *
_dbm_dbm_setdefault_impl(dbmobject *self, const char *key,
@@ -118,7 +118,7 @@ PyDoc_STRVAR(dbmopen__doc__,
" (e.g. os.O_RDWR).");
#define DBMOPEN_METHODDEF \
- {"open", (PyCFunction)(void(*)(void))dbmopen, METH_FASTCALL, dbmopen__doc__},
+ {"open", (PyCFunction)(void(*)(void))dbmopen, METH_FASTCALL, dbmopen__doc__},
static PyObject *
dbmopen_impl(PyObject *module, PyObject *filename, const char *flags,
@@ -132,49 +132,49 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *flags = "r";
int mode = 438;
- if (!_PyArg_CheckPositional("open", nargs, 1, 3)) {
+ if (!_PyArg_CheckPositional("open", nargs, 1, 3)) {
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("open", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- filename = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("open", "argument 2", "str", args[1]);
- goto exit;
- }
- Py_ssize_t flags_length;
- flags = PyUnicode_AsUTF8AndSize(args[1], &flags_length);
- if (flags == NULL) {
- goto exit;
- }
- if (strlen(flags) != (size_t)flags_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[2]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("open", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ filename = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("open", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t flags_length;
+ flags = PyUnicode_AsUTF8AndSize(args[1], &flags_length);
+ if (flags == NULL) {
+ goto exit;
+ }
+ if (strlen(flags) != (size_t)flags_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[2]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = dbmopen_impl(module, filename, flags, mode);
exit:
return return_value;
}
-/*[clinic end generated code: output=7ced103488cbca7a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7ced103488cbca7a input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_elementtree.c.h b/contrib/tools/python3/src/Modules/clinic/_elementtree.c.h
index 03b78f4ff8..825416f4a3 100644
--- a/contrib/tools/python3/src/Modules/clinic/_elementtree.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_elementtree.c.h
@@ -19,11 +19,11 @@ _elementtree_Element_append(ElementObject *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *subelement;
- if (!PyObject_TypeCheck(arg, &Element_Type)) {
- _PyArg_BadArgument("append", "argument", (&Element_Type)->tp_name, arg);
+ if (!PyObject_TypeCheck(arg, &Element_Type)) {
+ _PyArg_BadArgument("append", "argument", (&Element_Type)->tp_name, arg);
goto exit;
}
- subelement = arg;
+ subelement = arg;
return_value = _elementtree_Element_append_impl(self, subelement);
exit:
@@ -81,11 +81,11 @@ _elementtree_Element___deepcopy__(ElementObject *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *memo;
- if (!PyDict_Check(arg)) {
- _PyArg_BadArgument("__deepcopy__", "argument", "dict", arg);
+ if (!PyDict_Check(arg)) {
+ _PyArg_BadArgument("__deepcopy__", "argument", "dict", arg);
goto exit;
}
- memo = arg;
+ memo = arg;
return_value = _elementtree_Element___deepcopy___impl(self, memo);
exit:
@@ -158,7 +158,7 @@ PyDoc_STRVAR(_elementtree_Element_find__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_FIND_METHODDEF \
- {"find", (PyCFunction)(void(*)(void))_elementtree_Element_find, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_find__doc__},
+ {"find", (PyCFunction)(void(*)(void))_elementtree_Element_find, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_find__doc__},
static PyObject *
_elementtree_Element_find_impl(ElementObject *self, PyObject *path,
@@ -169,22 +169,22 @@ _elementtree_Element_find(ElementObject *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "namespaces", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "find", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "find", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *path;
PyObject *namespaces = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- path = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- namespaces = args[1];
-skip_optional_pos:
+ path = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ namespaces = args[1];
+skip_optional_pos:
return_value = _elementtree_Element_find_impl(self, path, namespaces);
exit:
@@ -197,7 +197,7 @@ PyDoc_STRVAR(_elementtree_Element_findtext__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_FINDTEXT_METHODDEF \
- {"findtext", (PyCFunction)(void(*)(void))_elementtree_Element_findtext, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_findtext__doc__},
+ {"findtext", (PyCFunction)(void(*)(void))_elementtree_Element_findtext, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_findtext__doc__},
static PyObject *
_elementtree_Element_findtext_impl(ElementObject *self, PyObject *path,
@@ -209,29 +209,29 @@ _elementtree_Element_findtext(ElementObject *self, PyObject *const *args, Py_ssi
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "default", "namespaces", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "findtext", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "findtext", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *path;
PyObject *default_value = Py_None;
PyObject *namespaces = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- path = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- default_value = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- namespaces = args[2];
-skip_optional_pos:
+ path = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ default_value = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ namespaces = args[2];
+skip_optional_pos:
return_value = _elementtree_Element_findtext_impl(self, path, default_value, namespaces);
exit:
@@ -244,7 +244,7 @@ PyDoc_STRVAR(_elementtree_Element_findall__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_FINDALL_METHODDEF \
- {"findall", (PyCFunction)(void(*)(void))_elementtree_Element_findall, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_findall__doc__},
+ {"findall", (PyCFunction)(void(*)(void))_elementtree_Element_findall, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_findall__doc__},
static PyObject *
_elementtree_Element_findall_impl(ElementObject *self, PyObject *path,
@@ -255,22 +255,22 @@ _elementtree_Element_findall(ElementObject *self, PyObject *const *args, Py_ssiz
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "namespaces", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *path;
PyObject *namespaces = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- path = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- namespaces = args[1];
-skip_optional_pos:
+ path = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ namespaces = args[1];
+skip_optional_pos:
return_value = _elementtree_Element_findall_impl(self, path, namespaces);
exit:
@@ -283,7 +283,7 @@ PyDoc_STRVAR(_elementtree_Element_iterfind__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_ITERFIND_METHODDEF \
- {"iterfind", (PyCFunction)(void(*)(void))_elementtree_Element_iterfind, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_iterfind__doc__},
+ {"iterfind", (PyCFunction)(void(*)(void))_elementtree_Element_iterfind, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_iterfind__doc__},
static PyObject *
_elementtree_Element_iterfind_impl(ElementObject *self, PyObject *path,
@@ -294,22 +294,22 @@ _elementtree_Element_iterfind(ElementObject *self, PyObject *const *args, Py_ssi
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "namespaces", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "iterfind", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "iterfind", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *path;
PyObject *namespaces = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- path = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- namespaces = args[1];
-skip_optional_pos:
+ path = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ namespaces = args[1];
+skip_optional_pos:
return_value = _elementtree_Element_iterfind_impl(self, path, namespaces);
exit:
@@ -322,7 +322,7 @@ PyDoc_STRVAR(_elementtree_Element_get__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_GET_METHODDEF \
- {"get", (PyCFunction)(void(*)(void))_elementtree_Element_get, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_get__doc__},
+ {"get", (PyCFunction)(void(*)(void))_elementtree_Element_get, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_get__doc__},
static PyObject *
_elementtree_Element_get_impl(ElementObject *self, PyObject *key,
@@ -333,22 +333,22 @@ _elementtree_Element_get(ElementObject *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"key", "default", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *key;
PyObject *default_value = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- key = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- default_value = args[1];
-skip_optional_pos:
+ key = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ default_value = args[1];
+skip_optional_pos:
return_value = _elementtree_Element_get_impl(self, key, default_value);
exit:
@@ -361,7 +361,7 @@ PyDoc_STRVAR(_elementtree_Element_iter__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_ITER_METHODDEF \
- {"iter", (PyCFunction)(void(*)(void))_elementtree_Element_iter, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_iter__doc__},
+ {"iter", (PyCFunction)(void(*)(void))_elementtree_Element_iter, METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_iter__doc__},
static PyObject *
_elementtree_Element_iter_impl(ElementObject *self, PyObject *tag);
@@ -371,20 +371,20 @@ _elementtree_Element_iter(ElementObject *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"tag", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "iter", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "iter", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *tag = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- tag = args[0];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ tag = args[0];
+skip_optional_pos:
return_value = _elementtree_Element_iter_impl(self, tag);
exit:
@@ -414,7 +414,7 @@ PyDoc_STRVAR(_elementtree_Element_insert__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_INSERT_METHODDEF \
- {"insert", (PyCFunction)(void(*)(void))_elementtree_Element_insert, METH_FASTCALL, _elementtree_Element_insert__doc__},
+ {"insert", (PyCFunction)(void(*)(void))_elementtree_Element_insert, METH_FASTCALL, _elementtree_Element_insert__doc__},
static PyObject *
_elementtree_Element_insert_impl(ElementObject *self, Py_ssize_t index,
@@ -427,31 +427,31 @@ _elementtree_Element_insert(ElementObject *self, PyObject *const *args, Py_ssize
Py_ssize_t index;
PyObject *subelement;
- if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- index = ival;
- }
- if (!PyObject_TypeCheck(args[1], &Element_Type)) {
- _PyArg_BadArgument("insert", "argument 2", (&Element_Type)->tp_name, args[1]);
- goto exit;
- }
- subelement = args[1];
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ index = ival;
+ }
+ if (!PyObject_TypeCheck(args[1], &Element_Type)) {
+ _PyArg_BadArgument("insert", "argument 2", (&Element_Type)->tp_name, args[1]);
+ goto exit;
+ }
+ subelement = args[1];
return_value = _elementtree_Element_insert_impl(self, index, subelement);
exit:
@@ -498,7 +498,7 @@ PyDoc_STRVAR(_elementtree_Element_makeelement__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_MAKEELEMENT_METHODDEF \
- {"makeelement", (PyCFunction)(void(*)(void))_elementtree_Element_makeelement, METH_FASTCALL, _elementtree_Element_makeelement__doc__},
+ {"makeelement", (PyCFunction)(void(*)(void))_elementtree_Element_makeelement, METH_FASTCALL, _elementtree_Element_makeelement__doc__},
static PyObject *
_elementtree_Element_makeelement_impl(ElementObject *self, PyObject *tag,
@@ -511,15 +511,15 @@ _elementtree_Element_makeelement(ElementObject *self, PyObject *const *args, Py_
PyObject *tag;
PyObject *attrib;
- if (!_PyArg_CheckPositional("makeelement", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("makeelement", nargs, 2, 2)) {
+ goto exit;
+ }
+ tag = args[0];
+ if (!PyDict_Check(args[1])) {
+ _PyArg_BadArgument("makeelement", "argument 2", "dict", args[1]);
goto exit;
}
- tag = args[0];
- if (!PyDict_Check(args[1])) {
- _PyArg_BadArgument("makeelement", "argument 2", "dict", args[1]);
- goto exit;
- }
- attrib = args[1];
+ attrib = args[1];
return_value = _elementtree_Element_makeelement_impl(self, tag, attrib);
exit:
@@ -543,11 +543,11 @@ _elementtree_Element_remove(ElementObject *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *subelement;
- if (!PyObject_TypeCheck(arg, &Element_Type)) {
- _PyArg_BadArgument("remove", "argument", (&Element_Type)->tp_name, arg);
+ if (!PyObject_TypeCheck(arg, &Element_Type)) {
+ _PyArg_BadArgument("remove", "argument", (&Element_Type)->tp_name, arg);
goto exit;
}
- subelement = arg;
+ subelement = arg;
return_value = _elementtree_Element_remove_impl(self, subelement);
exit:
@@ -560,7 +560,7 @@ PyDoc_STRVAR(_elementtree_Element_set__doc__,
"\n");
#define _ELEMENTTREE_ELEMENT_SET_METHODDEF \
- {"set", (PyCFunction)(void(*)(void))_elementtree_Element_set, METH_FASTCALL, _elementtree_Element_set__doc__},
+ {"set", (PyCFunction)(void(*)(void))_elementtree_Element_set, METH_FASTCALL, _elementtree_Element_set__doc__},
static PyObject *
_elementtree_Element_set_impl(ElementObject *self, PyObject *key,
@@ -573,11 +573,11 @@ _elementtree_Element_set(ElementObject *self, PyObject *const *args, Py_ssize_t
PyObject *key;
PyObject *value;
- if (!_PyArg_CheckPositional("set", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("set", nargs, 2, 2)) {
goto exit;
}
- key = args[0];
- value = args[1];
+ key = args[0];
+ value = args[1];
return_value = _elementtree_Element_set_impl(self, key, value);
exit:
@@ -586,109 +586,109 @@ exit:
static int
_elementtree_TreeBuilder___init___impl(TreeBuilderObject *self,
- PyObject *element_factory,
- PyObject *comment_factory,
- PyObject *pi_factory,
- int insert_comments, int insert_pis);
+ PyObject *element_factory,
+ PyObject *comment_factory,
+ PyObject *pi_factory,
+ int insert_comments, int insert_pis);
static int
_elementtree_TreeBuilder___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
- static const char * const _keywords[] = {"element_factory", "comment_factory", "pi_factory", "insert_comments", "insert_pis", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "TreeBuilder", 0};
- PyObject *argsbuf[5];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
- PyObject *element_factory = Py_None;
- PyObject *comment_factory = Py_None;
- PyObject *pi_factory = Py_None;
- int insert_comments = 0;
- int insert_pis = 0;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
- if (!fastargs) {
+ static const char * const _keywords[] = {"element_factory", "comment_factory", "pi_factory", "insert_comments", "insert_pis", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "TreeBuilder", 0};
+ PyObject *argsbuf[5];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ PyObject *element_factory = Py_None;
+ PyObject *comment_factory = Py_None;
+ PyObject *pi_factory = Py_None;
+ int insert_comments = 0;
+ int insert_pis = 0;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[0]) {
- element_factory = fastargs[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (fastargs[1]) {
- comment_factory = fastargs[1];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[2]) {
- pi_factory = fastargs[2];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[3]) {
- insert_comments = PyObject_IsTrue(fastargs[3]);
- if (insert_comments < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- insert_pis = PyObject_IsTrue(fastargs[4]);
- if (insert_pis < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _elementtree_TreeBuilder___init___impl((TreeBuilderObject *)self, element_factory, comment_factory, pi_factory, insert_comments, insert_pis);
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[0]) {
+ element_factory = fastargs[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (fastargs[1]) {
+ comment_factory = fastargs[1];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[2]) {
+ pi_factory = fastargs[2];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[3]) {
+ insert_comments = PyObject_IsTrue(fastargs[3]);
+ if (insert_comments < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ insert_pis = PyObject_IsTrue(fastargs[4]);
+ if (insert_pis < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _elementtree_TreeBuilder___init___impl((TreeBuilderObject *)self, element_factory, comment_factory, pi_factory, insert_comments, insert_pis);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_elementtree__set_factories__doc__,
+"_set_factories($module, comment_factory, pi_factory, /)\n"
+"--\n"
+"\n"
+"Change the factories used to create comments and processing instructions.\n"
+"\n"
+"For internal use only.");
+
+#define _ELEMENTTREE__SET_FACTORIES_METHODDEF \
+ {"_set_factories", (PyCFunction)(void(*)(void))_elementtree__set_factories, METH_FASTCALL, _elementtree__set_factories__doc__},
+
+static PyObject *
+_elementtree__set_factories_impl(PyObject *module, PyObject *comment_factory,
+ PyObject *pi_factory);
+
+static PyObject *
+_elementtree__set_factories(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *comment_factory;
+ PyObject *pi_factory;
+
+ if (!_PyArg_CheckPositional("_set_factories", nargs, 2, 2)) {
+ goto exit;
+ }
+ comment_factory = args[0];
+ pi_factory = args[1];
+ return_value = _elementtree__set_factories_impl(module, comment_factory, pi_factory);
exit:
return return_value;
}
-PyDoc_STRVAR(_elementtree__set_factories__doc__,
-"_set_factories($module, comment_factory, pi_factory, /)\n"
-"--\n"
-"\n"
-"Change the factories used to create comments and processing instructions.\n"
-"\n"
-"For internal use only.");
-
-#define _ELEMENTTREE__SET_FACTORIES_METHODDEF \
- {"_set_factories", (PyCFunction)(void(*)(void))_elementtree__set_factories, METH_FASTCALL, _elementtree__set_factories__doc__},
-
-static PyObject *
-_elementtree__set_factories_impl(PyObject *module, PyObject *comment_factory,
- PyObject *pi_factory);
-
-static PyObject *
-_elementtree__set_factories(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *comment_factory;
- PyObject *pi_factory;
-
- if (!_PyArg_CheckPositional("_set_factories", nargs, 2, 2)) {
- goto exit;
- }
- comment_factory = args[0];
- pi_factory = args[1];
- return_value = _elementtree__set_factories_impl(module, comment_factory, pi_factory);
-
-exit:
- return return_value;
-}
-
PyDoc_STRVAR(_elementtree_TreeBuilder_data__doc__,
"data($self, data, /)\n"
"--\n"
@@ -705,48 +705,48 @@ PyDoc_STRVAR(_elementtree_TreeBuilder_end__doc__,
#define _ELEMENTTREE_TREEBUILDER_END_METHODDEF \
{"end", (PyCFunction)_elementtree_TreeBuilder_end, METH_O, _elementtree_TreeBuilder_end__doc__},
-PyDoc_STRVAR(_elementtree_TreeBuilder_comment__doc__,
-"comment($self, text, /)\n"
-"--\n"
-"\n");
-
-#define _ELEMENTTREE_TREEBUILDER_COMMENT_METHODDEF \
- {"comment", (PyCFunction)_elementtree_TreeBuilder_comment, METH_O, _elementtree_TreeBuilder_comment__doc__},
-
-PyDoc_STRVAR(_elementtree_TreeBuilder_pi__doc__,
-"pi($self, target, text=None, /)\n"
-"--\n"
-"\n");
-
-#define _ELEMENTTREE_TREEBUILDER_PI_METHODDEF \
- {"pi", (PyCFunction)(void(*)(void))_elementtree_TreeBuilder_pi, METH_FASTCALL, _elementtree_TreeBuilder_pi__doc__},
-
-static PyObject *
-_elementtree_TreeBuilder_pi_impl(TreeBuilderObject *self, PyObject *target,
- PyObject *text);
-
-static PyObject *
-_elementtree_TreeBuilder_pi(TreeBuilderObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *target;
- PyObject *text = Py_None;
-
- if (!_PyArg_CheckPositional("pi", nargs, 1, 2)) {
- goto exit;
- }
- target = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- text = args[1];
-skip_optional:
- return_value = _elementtree_TreeBuilder_pi_impl(self, target, text);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(_elementtree_TreeBuilder_comment__doc__,
+"comment($self, text, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_TREEBUILDER_COMMENT_METHODDEF \
+ {"comment", (PyCFunction)_elementtree_TreeBuilder_comment, METH_O, _elementtree_TreeBuilder_comment__doc__},
+
+PyDoc_STRVAR(_elementtree_TreeBuilder_pi__doc__,
+"pi($self, target, text=None, /)\n"
+"--\n"
+"\n");
+
+#define _ELEMENTTREE_TREEBUILDER_PI_METHODDEF \
+ {"pi", (PyCFunction)(void(*)(void))_elementtree_TreeBuilder_pi, METH_FASTCALL, _elementtree_TreeBuilder_pi__doc__},
+
+static PyObject *
+_elementtree_TreeBuilder_pi_impl(TreeBuilderObject *self, PyObject *target,
+ PyObject *text);
+
+static PyObject *
+_elementtree_TreeBuilder_pi(TreeBuilderObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *target;
+ PyObject *text = Py_None;
+
+ if (!_PyArg_CheckPositional("pi", nargs, 1, 2)) {
+ goto exit;
+ }
+ target = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ text = args[1];
+skip_optional:
+ return_value = _elementtree_TreeBuilder_pi_impl(self, target, text);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_elementtree_TreeBuilder_close__doc__,
"close($self, /)\n"
"--\n"
@@ -765,12 +765,12 @@ _elementtree_TreeBuilder_close(TreeBuilderObject *self, PyObject *Py_UNUSED(igno
}
PyDoc_STRVAR(_elementtree_TreeBuilder_start__doc__,
-"start($self, tag, attrs, /)\n"
+"start($self, tag, attrs, /)\n"
"--\n"
"\n");
#define _ELEMENTTREE_TREEBUILDER_START_METHODDEF \
- {"start", (PyCFunction)(void(*)(void))_elementtree_TreeBuilder_start, METH_FASTCALL, _elementtree_TreeBuilder_start__doc__},
+ {"start", (PyCFunction)(void(*)(void))_elementtree_TreeBuilder_start, METH_FASTCALL, _elementtree_TreeBuilder_start__doc__},
static PyObject *
_elementtree_TreeBuilder_start_impl(TreeBuilderObject *self, PyObject *tag,
@@ -781,17 +781,17 @@ _elementtree_TreeBuilder_start(TreeBuilderObject *self, PyObject *const *args, P
{
PyObject *return_value = NULL;
PyObject *tag;
- PyObject *attrs;
+ PyObject *attrs;
- if (!_PyArg_CheckPositional("start", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("start", nargs, 2, 2)) {
goto exit;
}
- tag = args[0];
- if (!PyDict_Check(args[1])) {
- _PyArg_BadArgument("start", "argument 2", "dict", args[1]);
- goto exit;
- }
- attrs = args[1];
+ tag = args[0];
+ if (!PyDict_Check(args[1])) {
+ _PyArg_BadArgument("start", "argument 2", "dict", args[1]);
+ goto exit;
+ }
+ attrs = args[1];
return_value = _elementtree_TreeBuilder_start_impl(self, tag, attrs);
exit:
@@ -799,55 +799,55 @@ exit:
}
static int
-_elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *target,
- const char *encoding);
+_elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *target,
+ const char *encoding);
static int
_elementtree_XMLParser___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
- static const char * const _keywords[] = {"target", "encoding", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "XMLParser", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static const char * const _keywords[] = {"target", "encoding", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "XMLParser", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *target = NULL;
const char *encoding = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 0, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 0, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (fastargs[0]) {
+ target = fastargs[0];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[1] == Py_None) {
+ encoding = NULL;
+ }
+ else if (PyUnicode_Check(fastargs[1])) {
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(fastargs[1], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("XMLParser", "argument 'encoding'", "str or None", fastargs[1]);
goto exit;
}
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (fastargs[0]) {
- target = fastargs[0];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[1] == Py_None) {
- encoding = NULL;
- }
- else if (PyUnicode_Check(fastargs[1])) {
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(fastargs[1], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("XMLParser", "argument 'encoding'", "str or None", fastargs[1]);
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _elementtree_XMLParser___init___impl((XMLParserObject *)self, target, encoding);
+skip_optional_kwonly:
+ return_value = _elementtree_XMLParser___init___impl((XMLParserObject *)self, target, encoding);
exit:
return return_value;
@@ -892,7 +892,7 @@ PyDoc_STRVAR(_elementtree_XMLParser__setevents__doc__,
"\n");
#define _ELEMENTTREE_XMLPARSER__SETEVENTS_METHODDEF \
- {"_setevents", (PyCFunction)(void(*)(void))_elementtree_XMLParser__setevents, METH_FASTCALL, _elementtree_XMLParser__setevents__doc__},
+ {"_setevents", (PyCFunction)(void(*)(void))_elementtree_XMLParser__setevents, METH_FASTCALL, _elementtree_XMLParser__setevents__doc__},
static PyObject *
_elementtree_XMLParser__setevents_impl(XMLParserObject *self,
@@ -906,18 +906,18 @@ _elementtree_XMLParser__setevents(XMLParserObject *self, PyObject *const *args,
PyObject *events_queue;
PyObject *events_to_report = Py_None;
- if (!_PyArg_CheckPositional("_setevents", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("_setevents", nargs, 1, 2)) {
goto exit;
}
- events_queue = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- events_to_report = args[1];
-skip_optional:
+ events_queue = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ events_to_report = args[1];
+skip_optional:
return_value = _elementtree_XMLParser__setevents_impl(self, events_queue, events_to_report);
exit:
return return_value;
}
-/*[clinic end generated code: output=b7f6a32462fc42a9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b7f6a32462fc42a9 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_gdbmmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_gdbmmodule.c.h
index 473cd98027..552bf6ed88 100644
--- a/contrib/tools/python3/src/Modules/clinic/_gdbmmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_gdbmmodule.c.h
@@ -9,7 +9,7 @@ PyDoc_STRVAR(_gdbm_gdbm_get__doc__,
"Get the value for key, or default if not present.");
#define _GDBM_GDBM_GET_METHODDEF \
- {"get", (PyCFunction)(void(*)(void))_gdbm_gdbm_get, METH_FASTCALL, _gdbm_gdbm_get__doc__},
+ {"get", (PyCFunction)(void(*)(void))_gdbm_gdbm_get, METH_FASTCALL, _gdbm_gdbm_get__doc__},
static PyObject *
_gdbm_gdbm_get_impl(dbmobject *self, PyObject *key, PyObject *default_value);
@@ -21,15 +21,15 @@ _gdbm_gdbm_get(dbmobject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *key;
PyObject *default_value = Py_None;
- if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
goto exit;
}
- key = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ key = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = _gdbm_gdbm_get_impl(self, key, default_value);
exit:
@@ -43,7 +43,7 @@ PyDoc_STRVAR(_gdbm_gdbm_setdefault__doc__,
"Get value for key, or set it to default and return default if not present.");
#define _GDBM_GDBM_SETDEFAULT_METHODDEF \
- {"setdefault", (PyCFunction)(void(*)(void))_gdbm_gdbm_setdefault, METH_FASTCALL, _gdbm_gdbm_setdefault__doc__},
+ {"setdefault", (PyCFunction)(void(*)(void))_gdbm_gdbm_setdefault, METH_FASTCALL, _gdbm_gdbm_setdefault__doc__},
static PyObject *
_gdbm_gdbm_setdefault_impl(dbmobject *self, PyObject *key,
@@ -56,15 +56,15 @@ _gdbm_gdbm_setdefault(dbmobject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *key;
PyObject *default_value = Py_None;
- if (!_PyArg_CheckPositional("setdefault", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("setdefault", nargs, 1, 2)) {
goto exit;
}
- key = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ key = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = _gdbm_gdbm_setdefault_impl(self, key, default_value);
exit:
@@ -139,7 +139,7 @@ PyDoc_STRVAR(_gdbm_gdbm_nextkey__doc__,
"to create a list in memory that contains them all:\n"
"\n"
" k = db.firstkey()\n"
-" while k is not None:\n"
+" while k is not None:\n"
" print(k)\n"
" k = db.nextkey(k)");
@@ -239,7 +239,7 @@ PyDoc_STRVAR(dbmopen__doc__,
"when the database has to be created. It defaults to octal 0o666.");
#define DBMOPEN_METHODDEF \
- {"open", (PyCFunction)(void(*)(void))dbmopen, METH_FASTCALL, dbmopen__doc__},
+ {"open", (PyCFunction)(void(*)(void))dbmopen, METH_FASTCALL, dbmopen__doc__},
static PyObject *
dbmopen_impl(PyObject *module, PyObject *filename, const char *flags,
@@ -253,49 +253,49 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
const char *flags = "r";
int mode = 438;
- if (!_PyArg_CheckPositional("open", nargs, 1, 3)) {
+ if (!_PyArg_CheckPositional("open", nargs, 1, 3)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("open", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ filename = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("open", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t flags_length;
+ flags = PyUnicode_AsUTF8AndSize(args[1], &flags_length);
+ if (flags == NULL) {
+ goto exit;
+ }
+ if (strlen(flags) != (size_t)flags_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[2]);
+ if (mode == -1 && PyErr_Occurred()) {
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("open", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- filename = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("open", "argument 2", "str", args[1]);
- goto exit;
- }
- Py_ssize_t flags_length;
- flags = PyUnicode_AsUTF8AndSize(args[1], &flags_length);
- if (flags == NULL) {
- goto exit;
- }
- if (strlen(flags) != (size_t)flags_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[2]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = dbmopen_impl(module, filename, flags, mode);
exit:
return return_value;
}
-/*[clinic end generated code: output=f48d6e8d4c8a3465 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f48d6e8d4c8a3465 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_hashopenssl.c.h b/contrib/tools/python3/src/Modules/clinic/_hashopenssl.c.h
index c3f0139edf..68aa765e52 100644
--- a/contrib/tools/python3/src/Modules/clinic/_hashopenssl.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_hashopenssl.c.h
@@ -2,969 +2,969 @@
preserve
[clinic start generated code]*/
-PyDoc_STRVAR(EVP_copy__doc__,
-"copy($self, /)\n"
-"--\n"
-"\n"
-"Return a copy of the hash object.");
-
-#define EVP_COPY_METHODDEF \
- {"copy", (PyCFunction)EVP_copy, METH_NOARGS, EVP_copy__doc__},
-
-static PyObject *
-EVP_copy_impl(EVPobject *self);
-
-static PyObject *
-EVP_copy(EVPobject *self, PyObject *Py_UNUSED(ignored))
-{
- return EVP_copy_impl(self);
-}
-
-PyDoc_STRVAR(EVP_digest__doc__,
-"digest($self, /)\n"
-"--\n"
-"\n"
-"Return the digest value as a bytes object.");
-
-#define EVP_DIGEST_METHODDEF \
- {"digest", (PyCFunction)EVP_digest, METH_NOARGS, EVP_digest__doc__},
-
-static PyObject *
-EVP_digest_impl(EVPobject *self);
-
-static PyObject *
-EVP_digest(EVPobject *self, PyObject *Py_UNUSED(ignored))
-{
- return EVP_digest_impl(self);
-}
-
-PyDoc_STRVAR(EVP_hexdigest__doc__,
-"hexdigest($self, /)\n"
-"--\n"
-"\n"
-"Return the digest value as a string of hexadecimal digits.");
-
-#define EVP_HEXDIGEST_METHODDEF \
- {"hexdigest", (PyCFunction)EVP_hexdigest, METH_NOARGS, EVP_hexdigest__doc__},
-
-static PyObject *
-EVP_hexdigest_impl(EVPobject *self);
-
-static PyObject *
-EVP_hexdigest(EVPobject *self, PyObject *Py_UNUSED(ignored))
-{
- return EVP_hexdigest_impl(self);
-}
-
-PyDoc_STRVAR(EVP_update__doc__,
-"update($self, obj, /)\n"
-"--\n"
-"\n"
-"Update this hash object\'s state with the provided string.");
-
-#define EVP_UPDATE_METHODDEF \
- {"update", (PyCFunction)EVP_update, METH_O, EVP_update__doc__},
-
-#if defined(PY_OPENSSL_HAS_SHAKE)
-
-PyDoc_STRVAR(EVPXOF_digest__doc__,
-"digest($self, /, length)\n"
-"--\n"
-"\n"
-"Return the digest value as a bytes object.");
-
-#define EVPXOF_DIGEST_METHODDEF \
- {"digest", (PyCFunction)(void(*)(void))EVPXOF_digest, METH_FASTCALL|METH_KEYWORDS, EVPXOF_digest__doc__},
-
-static PyObject *
-EVPXOF_digest_impl(EVPobject *self, Py_ssize_t length);
-
-static PyObject *
-EVPXOF_digest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"length", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "digest", 0};
- PyObject *argsbuf[1];
- Py_ssize_t length;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
- return_value = EVPXOF_digest_impl(self, length);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
-
-#if defined(PY_OPENSSL_HAS_SHAKE)
-
-PyDoc_STRVAR(EVPXOF_hexdigest__doc__,
-"hexdigest($self, /, length)\n"
-"--\n"
-"\n"
-"Return the digest value as a string of hexadecimal digits.");
-
-#define EVPXOF_HEXDIGEST_METHODDEF \
- {"hexdigest", (PyCFunction)(void(*)(void))EVPXOF_hexdigest, METH_FASTCALL|METH_KEYWORDS, EVPXOF_hexdigest__doc__},
-
-static PyObject *
-EVPXOF_hexdigest_impl(EVPobject *self, Py_ssize_t length);
-
-static PyObject *
-EVPXOF_hexdigest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"length", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "hexdigest", 0};
- PyObject *argsbuf[1];
- Py_ssize_t length;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
- return_value = EVPXOF_hexdigest_impl(self, length);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
-
-PyDoc_STRVAR(EVP_new__doc__,
-"new($module, /, name, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Return a new hash object using the named algorithm.\n"
-"\n"
-"An optional string argument may be provided and will be\n"
-"automatically hashed.\n"
-"\n"
-"The MD5 and SHA1 algorithms are always supported.");
-
-#define EVP_NEW_METHODDEF \
- {"new", (PyCFunction)(void(*)(void))EVP_new, METH_FASTCALL|METH_KEYWORDS, EVP_new__doc__},
-
-static PyObject *
-EVP_new_impl(PyObject *module, PyObject *name_obj, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-EVP_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"name", "string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "new", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- PyObject *name_obj;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- name_obj = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- data_obj = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[2]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = EVP_new_impl(module, name_obj, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_openssl_md5__doc__,
-"openssl_md5($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a md5 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_MD5_METHODDEF \
- {"openssl_md5", (PyCFunction)(void(*)(void))_hashlib_openssl_md5, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_md5__doc__},
-
-static PyObject *
-_hashlib_openssl_md5_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_md5", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_md5_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_openssl_sha1__doc__,
-"openssl_sha1($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha1 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA1_METHODDEF \
- {"openssl_sha1", (PyCFunction)(void(*)(void))_hashlib_openssl_sha1, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha1__doc__},
-
-static PyObject *
-_hashlib_openssl_sha1_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha1", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha1_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_openssl_sha224__doc__,
-"openssl_sha224($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha224 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA224_METHODDEF \
- {"openssl_sha224", (PyCFunction)(void(*)(void))_hashlib_openssl_sha224, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha224__doc__},
-
-static PyObject *
-_hashlib_openssl_sha224_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha224", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha224_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_openssl_sha256__doc__,
-"openssl_sha256($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha256 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA256_METHODDEF \
- {"openssl_sha256", (PyCFunction)(void(*)(void))_hashlib_openssl_sha256, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha256__doc__},
-
-static PyObject *
-_hashlib_openssl_sha256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha256", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha256_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_openssl_sha384__doc__,
-"openssl_sha384($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha384 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA384_METHODDEF \
- {"openssl_sha384", (PyCFunction)(void(*)(void))_hashlib_openssl_sha384, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha384__doc__},
-
-static PyObject *
-_hashlib_openssl_sha384_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha384", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha384_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_openssl_sha512__doc__,
-"openssl_sha512($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha512 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA512_METHODDEF \
- {"openssl_sha512", (PyCFunction)(void(*)(void))_hashlib_openssl_sha512, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha512__doc__},
-
-static PyObject *
-_hashlib_openssl_sha512_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha512", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha512_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-#if defined(PY_OPENSSL_HAS_SHA3)
-
-PyDoc_STRVAR(_hashlib_openssl_sha3_224__doc__,
-"openssl_sha3_224($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha3-224 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA3_224_METHODDEF \
- {"openssl_sha3_224", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_224, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_224__doc__},
-
-static PyObject *
-_hashlib_openssl_sha3_224_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_224", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_224_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHA3) */
-
-#if defined(PY_OPENSSL_HAS_SHA3)
-
-PyDoc_STRVAR(_hashlib_openssl_sha3_256__doc__,
-"openssl_sha3_256($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha3-256 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA3_256_METHODDEF \
- {"openssl_sha3_256", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_256, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_256__doc__},
-
-static PyObject *
-_hashlib_openssl_sha3_256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_256", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_256_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHA3) */
-
-#if defined(PY_OPENSSL_HAS_SHA3)
-
-PyDoc_STRVAR(_hashlib_openssl_sha3_384__doc__,
-"openssl_sha3_384($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha3-384 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA3_384_METHODDEF \
- {"openssl_sha3_384", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_384, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_384__doc__},
-
-static PyObject *
-_hashlib_openssl_sha3_384_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_384", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_384_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHA3) */
-
-#if defined(PY_OPENSSL_HAS_SHA3)
-
-PyDoc_STRVAR(_hashlib_openssl_sha3_512__doc__,
-"openssl_sha3_512($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a sha3-512 hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHA3_512_METHODDEF \
- {"openssl_sha3_512", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_512, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_512__doc__},
-
-static PyObject *
-_hashlib_openssl_sha3_512_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_512", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_sha3_512_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHA3) */
-
-#if defined(PY_OPENSSL_HAS_SHAKE)
-
-PyDoc_STRVAR(_hashlib_openssl_shake_128__doc__,
-"openssl_shake_128($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a shake-128 variable hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHAKE_128_METHODDEF \
- {"openssl_shake_128", (PyCFunction)(void(*)(void))_hashlib_openssl_shake_128, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_shake_128__doc__},
-
-static PyObject *
-_hashlib_openssl_shake_128_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_128", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_shake_128_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
-
-#if defined(PY_OPENSSL_HAS_SHAKE)
-
-PyDoc_STRVAR(_hashlib_openssl_shake_256__doc__,
-"openssl_shake_256($module, /, string=b\'\', *, usedforsecurity=True)\n"
-"--\n"
-"\n"
-"Returns a shake-256 variable hash object; optionally initialized with a string");
-
-#define _HASHLIB_OPENSSL_SHAKE_256_METHODDEF \
- {"openssl_shake_256", (PyCFunction)(void(*)(void))_hashlib_openssl_shake_256, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_shake_256__doc__},
-
-static PyObject *
-_hashlib_openssl_shake_256_impl(PyObject *module, PyObject *data_obj,
- int usedforsecurity);
-
-static PyObject *
-_hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_256", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *data_obj = NULL;
- int usedforsecurity = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- data_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _hashlib_openssl_shake_256_impl(module, data_obj, usedforsecurity);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
-
-PyDoc_STRVAR(pbkdf2_hmac__doc__,
-"pbkdf2_hmac($module, /, hash_name, password, salt, iterations,\n"
-" dklen=None)\n"
-"--\n"
-"\n"
-"Password based key derivation function 2 (PKCS #5 v2.0) with HMAC as pseudorandom function.");
-
-#define PBKDF2_HMAC_METHODDEF \
- {"pbkdf2_hmac", (PyCFunction)(void(*)(void))pbkdf2_hmac, METH_FASTCALL|METH_KEYWORDS, pbkdf2_hmac__doc__},
-
-static PyObject *
-pbkdf2_hmac_impl(PyObject *module, const char *hash_name,
- Py_buffer *password, Py_buffer *salt, long iterations,
- PyObject *dklen_obj);
-
-static PyObject *
-pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"hash_name", "password", "salt", "iterations", "dklen", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "pbkdf2_hmac", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4;
- const char *hash_name;
- Py_buffer password = {NULL, NULL};
- Py_buffer salt = {NULL, NULL};
- long iterations;
- PyObject *dklen_obj = Py_None;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 5, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("pbkdf2_hmac", "argument 'hash_name'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t hash_name_length;
- hash_name = PyUnicode_AsUTF8AndSize(args[0], &hash_name_length);
- if (hash_name == NULL) {
- goto exit;
- }
- if (strlen(hash_name) != (size_t)hash_name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &password, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&password, 'C')) {
- _PyArg_BadArgument("pbkdf2_hmac", "argument 'password'", "contiguous buffer", args[1]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[2], &salt, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&salt, 'C')) {
- _PyArg_BadArgument("pbkdf2_hmac", "argument 'salt'", "contiguous buffer", args[2]);
- goto exit;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- iterations = PyLong_AsLong(args[3]);
- if (iterations == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- dklen_obj = args[4];
-skip_optional_pos:
- return_value = pbkdf2_hmac_impl(module, hash_name, &password, &salt, iterations, dklen_obj);
-
-exit:
- /* Cleanup for password */
- if (password.obj) {
- PyBuffer_Release(&password);
- }
- /* Cleanup for salt */
- if (salt.obj) {
- PyBuffer_Release(&salt);
- }
-
- return return_value;
-}
-
+PyDoc_STRVAR(EVP_copy__doc__,
+"copy($self, /)\n"
+"--\n"
+"\n"
+"Return a copy of the hash object.");
+
+#define EVP_COPY_METHODDEF \
+ {"copy", (PyCFunction)EVP_copy, METH_NOARGS, EVP_copy__doc__},
+
+static PyObject *
+EVP_copy_impl(EVPobject *self);
+
+static PyObject *
+EVP_copy(EVPobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return EVP_copy_impl(self);
+}
+
+PyDoc_STRVAR(EVP_digest__doc__,
+"digest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a bytes object.");
+
+#define EVP_DIGEST_METHODDEF \
+ {"digest", (PyCFunction)EVP_digest, METH_NOARGS, EVP_digest__doc__},
+
+static PyObject *
+EVP_digest_impl(EVPobject *self);
+
+static PyObject *
+EVP_digest(EVPobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return EVP_digest_impl(self);
+}
+
+PyDoc_STRVAR(EVP_hexdigest__doc__,
+"hexdigest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of hexadecimal digits.");
+
+#define EVP_HEXDIGEST_METHODDEF \
+ {"hexdigest", (PyCFunction)EVP_hexdigest, METH_NOARGS, EVP_hexdigest__doc__},
+
+static PyObject *
+EVP_hexdigest_impl(EVPobject *self);
+
+static PyObject *
+EVP_hexdigest(EVPobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return EVP_hexdigest_impl(self);
+}
+
+PyDoc_STRVAR(EVP_update__doc__,
+"update($self, obj, /)\n"
+"--\n"
+"\n"
+"Update this hash object\'s state with the provided string.");
+
+#define EVP_UPDATE_METHODDEF \
+ {"update", (PyCFunction)EVP_update, METH_O, EVP_update__doc__},
+
+#if defined(PY_OPENSSL_HAS_SHAKE)
+
+PyDoc_STRVAR(EVPXOF_digest__doc__,
+"digest($self, /, length)\n"
+"--\n"
+"\n"
+"Return the digest value as a bytes object.");
+
+#define EVPXOF_DIGEST_METHODDEF \
+ {"digest", (PyCFunction)(void(*)(void))EVPXOF_digest, METH_FASTCALL|METH_KEYWORDS, EVPXOF_digest__doc__},
+
+static PyObject *
+EVPXOF_digest_impl(EVPobject *self, Py_ssize_t length);
+
+static PyObject *
+EVPXOF_digest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"length", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "digest", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t length;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ length = ival;
+ }
+ return_value = EVPXOF_digest_impl(self, length);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
+
+#if defined(PY_OPENSSL_HAS_SHAKE)
+
+PyDoc_STRVAR(EVPXOF_hexdigest__doc__,
+"hexdigest($self, /, length)\n"
+"--\n"
+"\n"
+"Return the digest value as a string of hexadecimal digits.");
+
+#define EVPXOF_HEXDIGEST_METHODDEF \
+ {"hexdigest", (PyCFunction)(void(*)(void))EVPXOF_hexdigest, METH_FASTCALL|METH_KEYWORDS, EVPXOF_hexdigest__doc__},
+
+static PyObject *
+EVPXOF_hexdigest_impl(EVPobject *self, Py_ssize_t length);
+
+static PyObject *
+EVPXOF_hexdigest(EVPobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"length", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "hexdigest", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t length;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ length = ival;
+ }
+ return_value = EVPXOF_hexdigest_impl(self, length);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
+
+PyDoc_STRVAR(EVP_new__doc__,
+"new($module, /, name, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Return a new hash object using the named algorithm.\n"
+"\n"
+"An optional string argument may be provided and will be\n"
+"automatically hashed.\n"
+"\n"
+"The MD5 and SHA1 algorithms are always supported.");
+
+#define EVP_NEW_METHODDEF \
+ {"new", (PyCFunction)(void(*)(void))EVP_new, METH_FASTCALL|METH_KEYWORDS, EVP_new__doc__},
+
+static PyObject *
+EVP_new_impl(PyObject *module, PyObject *name_obj, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+EVP_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"name", "string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "new", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ PyObject *name_obj;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ name_obj = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ data_obj = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[2]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = EVP_new_impl(module, name_obj, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_openssl_md5__doc__,
+"openssl_md5($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a md5 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_MD5_METHODDEF \
+ {"openssl_md5", (PyCFunction)(void(*)(void))_hashlib_openssl_md5, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_md5__doc__},
+
+static PyObject *
+_hashlib_openssl_md5_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_md5", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_md5_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_openssl_sha1__doc__,
+"openssl_sha1($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha1 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA1_METHODDEF \
+ {"openssl_sha1", (PyCFunction)(void(*)(void))_hashlib_openssl_sha1, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha1__doc__},
+
+static PyObject *
+_hashlib_openssl_sha1_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha1", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha1_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_openssl_sha224__doc__,
+"openssl_sha224($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha224 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA224_METHODDEF \
+ {"openssl_sha224", (PyCFunction)(void(*)(void))_hashlib_openssl_sha224, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha224__doc__},
+
+static PyObject *
+_hashlib_openssl_sha224_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha224", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha224_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_openssl_sha256__doc__,
+"openssl_sha256($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha256 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA256_METHODDEF \
+ {"openssl_sha256", (PyCFunction)(void(*)(void))_hashlib_openssl_sha256, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha256__doc__},
+
+static PyObject *
+_hashlib_openssl_sha256_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha256", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha256_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_openssl_sha384__doc__,
+"openssl_sha384($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha384 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA384_METHODDEF \
+ {"openssl_sha384", (PyCFunction)(void(*)(void))_hashlib_openssl_sha384, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha384__doc__},
+
+static PyObject *
+_hashlib_openssl_sha384_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha384", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha384_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_openssl_sha512__doc__,
+"openssl_sha512($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha512 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA512_METHODDEF \
+ {"openssl_sha512", (PyCFunction)(void(*)(void))_hashlib_openssl_sha512, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha512__doc__},
+
+static PyObject *
+_hashlib_openssl_sha512_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha512", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha512_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+#if defined(PY_OPENSSL_HAS_SHA3)
+
+PyDoc_STRVAR(_hashlib_openssl_sha3_224__doc__,
+"openssl_sha3_224($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha3-224 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA3_224_METHODDEF \
+ {"openssl_sha3_224", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_224, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_224__doc__},
+
+static PyObject *
+_hashlib_openssl_sha3_224_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_224", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha3_224_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHA3) */
+
+#if defined(PY_OPENSSL_HAS_SHA3)
+
+PyDoc_STRVAR(_hashlib_openssl_sha3_256__doc__,
+"openssl_sha3_256($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha3-256 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA3_256_METHODDEF \
+ {"openssl_sha3_256", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_256, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_256__doc__},
+
+static PyObject *
+_hashlib_openssl_sha3_256_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_256", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha3_256_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHA3) */
+
+#if defined(PY_OPENSSL_HAS_SHA3)
+
+PyDoc_STRVAR(_hashlib_openssl_sha3_384__doc__,
+"openssl_sha3_384($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha3-384 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA3_384_METHODDEF \
+ {"openssl_sha3_384", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_384, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_384__doc__},
+
+static PyObject *
+_hashlib_openssl_sha3_384_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_384", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha3_384_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHA3) */
+
+#if defined(PY_OPENSSL_HAS_SHA3)
+
+PyDoc_STRVAR(_hashlib_openssl_sha3_512__doc__,
+"openssl_sha3_512($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a sha3-512 hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHA3_512_METHODDEF \
+ {"openssl_sha3_512", (PyCFunction)(void(*)(void))_hashlib_openssl_sha3_512, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha3_512__doc__},
+
+static PyObject *
+_hashlib_openssl_sha3_512_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_sha3_512", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_sha3_512_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHA3) */
+
+#if defined(PY_OPENSSL_HAS_SHAKE)
+
+PyDoc_STRVAR(_hashlib_openssl_shake_128__doc__,
+"openssl_shake_128($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a shake-128 variable hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHAKE_128_METHODDEF \
+ {"openssl_shake_128", (PyCFunction)(void(*)(void))_hashlib_openssl_shake_128, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_shake_128__doc__},
+
+static PyObject *
+_hashlib_openssl_shake_128_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_128", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_shake_128_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
+
+#if defined(PY_OPENSSL_HAS_SHAKE)
+
+PyDoc_STRVAR(_hashlib_openssl_shake_256__doc__,
+"openssl_shake_256($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"--\n"
+"\n"
+"Returns a shake-256 variable hash object; optionally initialized with a string");
+
+#define _HASHLIB_OPENSSL_SHAKE_256_METHODDEF \
+ {"openssl_shake_256", (PyCFunction)(void(*)(void))_hashlib_openssl_shake_256, METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_shake_256__doc__},
+
+static PyObject *
+_hashlib_openssl_shake_256_impl(PyObject *module, PyObject *data_obj,
+ int usedforsecurity);
+
+static PyObject *
+_hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "openssl_shake_256", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *data_obj = NULL;
+ int usedforsecurity = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ data_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _hashlib_openssl_shake_256_impl(module, data_obj, usedforsecurity);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(PY_OPENSSL_HAS_SHAKE) */
+
+PyDoc_STRVAR(pbkdf2_hmac__doc__,
+"pbkdf2_hmac($module, /, hash_name, password, salt, iterations,\n"
+" dklen=None)\n"
+"--\n"
+"\n"
+"Password based key derivation function 2 (PKCS #5 v2.0) with HMAC as pseudorandom function.");
+
+#define PBKDF2_HMAC_METHODDEF \
+ {"pbkdf2_hmac", (PyCFunction)(void(*)(void))pbkdf2_hmac, METH_FASTCALL|METH_KEYWORDS, pbkdf2_hmac__doc__},
+
+static PyObject *
+pbkdf2_hmac_impl(PyObject *module, const char *hash_name,
+ Py_buffer *password, Py_buffer *salt, long iterations,
+ PyObject *dklen_obj);
+
+static PyObject *
+pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"hash_name", "password", "salt", "iterations", "dklen", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "pbkdf2_hmac", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4;
+ const char *hash_name;
+ Py_buffer password = {NULL, NULL};
+ Py_buffer salt = {NULL, NULL};
+ long iterations;
+ PyObject *dklen_obj = Py_None;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 5, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("pbkdf2_hmac", "argument 'hash_name'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t hash_name_length;
+ hash_name = PyUnicode_AsUTF8AndSize(args[0], &hash_name_length);
+ if (hash_name == NULL) {
+ goto exit;
+ }
+ if (strlen(hash_name) != (size_t)hash_name_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &password, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&password, 'C')) {
+ _PyArg_BadArgument("pbkdf2_hmac", "argument 'password'", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[2], &salt, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&salt, 'C')) {
+ _PyArg_BadArgument("pbkdf2_hmac", "argument 'salt'", "contiguous buffer", args[2]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ iterations = PyLong_AsLong(args[3]);
+ if (iterations == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ dklen_obj = args[4];
+skip_optional_pos:
+ return_value = pbkdf2_hmac_impl(module, hash_name, &password, &salt, iterations, dklen_obj);
+
+exit:
+ /* Cleanup for password */
+ if (password.obj) {
+ PyBuffer_Release(&password);
+ }
+ /* Cleanup for salt */
+ if (salt.obj) {
+ PyBuffer_Release(&salt);
+ }
+
+ return return_value;
+}
+
#if (OPENSSL_VERSION_NUMBER > 0x10100000L && !defined(OPENSSL_NO_SCRYPT) && !defined(LIBRESSL_VERSION_NUMBER))
PyDoc_STRVAR(_hashlib_scrypt__doc__,
@@ -975,7 +975,7 @@ PyDoc_STRVAR(_hashlib_scrypt__doc__,
"scrypt password-based key derivation function.");
#define _HASHLIB_SCRYPT_METHODDEF \
- {"scrypt", (PyCFunction)(void(*)(void))_hashlib_scrypt, METH_FASTCALL|METH_KEYWORDS, _hashlib_scrypt__doc__},
+ {"scrypt", (PyCFunction)(void(*)(void))_hashlib_scrypt, METH_FASTCALL|METH_KEYWORDS, _hashlib_scrypt__doc__},
static PyObject *
_hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
@@ -987,9 +987,9 @@ _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"password", "salt", "n", "r", "p", "maxmem", "dklen", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "scrypt", 0};
- PyObject *argsbuf[7];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "scrypt", 0};
+ PyObject *argsbuf[7];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer password = {NULL, NULL};
Py_buffer salt = {NULL, NULL};
PyObject *n_obj = Py_None;
@@ -998,86 +998,86 @@ _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
long maxmem = 0;
long dklen = 64;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &password, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&password, 'C')) {
+ _PyArg_BadArgument("scrypt", "argument 'password'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[1]) {
+ if (PyObject_GetBuffer(args[1], &salt, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&salt, 'C')) {
+ _PyArg_BadArgument("scrypt", "argument 'salt'", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[2]) {
+ if (!PyLong_Check(args[2])) {
+ _PyArg_BadArgument("scrypt", "argument 'n'", "int", args[2]);
+ goto exit;
+ }
+ n_obj = args[2];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ if (!PyLong_Check(args[3])) {
+ _PyArg_BadArgument("scrypt", "argument 'r'", "int", args[3]);
+ goto exit;
+ }
+ r_obj = args[3];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[4]) {
+ if (!PyLong_Check(args[4])) {
+ _PyArg_BadArgument("scrypt", "argument 'p'", "int", args[4]);
+ goto exit;
+ }
+ p_obj = args[4];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[5]) {
+ if (PyFloat_Check(args[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ maxmem = PyLong_AsLong(args[5]);
+ if (maxmem == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ dklen = PyLong_AsLong(args[6]);
+ if (dklen == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyObject_GetBuffer(args[0], &password, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&password, 'C')) {
- _PyArg_BadArgument("scrypt", "argument 'password'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[1]) {
- if (PyObject_GetBuffer(args[1], &salt, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&salt, 'C')) {
- _PyArg_BadArgument("scrypt", "argument 'salt'", "contiguous buffer", args[1]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[2]) {
- if (!PyLong_Check(args[2])) {
- _PyArg_BadArgument("scrypt", "argument 'n'", "int", args[2]);
- goto exit;
- }
- n_obj = args[2];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- if (!PyLong_Check(args[3])) {
- _PyArg_BadArgument("scrypt", "argument 'r'", "int", args[3]);
- goto exit;
- }
- r_obj = args[3];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[4]) {
- if (!PyLong_Check(args[4])) {
- _PyArg_BadArgument("scrypt", "argument 'p'", "int", args[4]);
- goto exit;
- }
- p_obj = args[4];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[5]) {
- if (PyFloat_Check(args[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- maxmem = PyLong_AsLong(args[5]);
- if (maxmem == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- dklen = PyLong_AsLong(args[6]);
- if (dklen == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_kwonly:
+skip_optional_kwonly:
return_value = _hashlib_scrypt_impl(module, &password, &salt, n_obj, r_obj, p_obj, maxmem, dklen);
exit:
@@ -1095,62 +1095,62 @@ exit:
#endif /* (OPENSSL_VERSION_NUMBER > 0x10100000L && !defined(OPENSSL_NO_SCRYPT) && !defined(LIBRESSL_VERSION_NUMBER)) */
-PyDoc_STRVAR(_hashlib_hmac_singleshot__doc__,
+PyDoc_STRVAR(_hashlib_hmac_singleshot__doc__,
"hmac_digest($module, /, key, msg, digest)\n"
"--\n"
"\n"
"Single-shot HMAC.");
-#define _HASHLIB_HMAC_SINGLESHOT_METHODDEF \
- {"hmac_digest", (PyCFunction)(void(*)(void))_hashlib_hmac_singleshot, METH_FASTCALL|METH_KEYWORDS, _hashlib_hmac_singleshot__doc__},
+#define _HASHLIB_HMAC_SINGLESHOT_METHODDEF \
+ {"hmac_digest", (PyCFunction)(void(*)(void))_hashlib_hmac_singleshot, METH_FASTCALL|METH_KEYWORDS, _hashlib_hmac_singleshot__doc__},
static PyObject *
-_hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer *key,
- Py_buffer *msg, const char *digest);
+_hashlib_hmac_singleshot_impl(PyObject *module, Py_buffer *key,
+ Py_buffer *msg, const char *digest);
static PyObject *
-_hashlib_hmac_singleshot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+_hashlib_hmac_singleshot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"key", "msg", "digest", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "hmac_digest", 0};
- PyObject *argsbuf[3];
+ static _PyArg_Parser _parser = {NULL, _keywords, "hmac_digest", 0};
+ PyObject *argsbuf[3];
Py_buffer key = {NULL, NULL};
Py_buffer msg = {NULL, NULL};
const char *digest;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (PyObject_GetBuffer(args[0], &key, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&key, 'C')) {
- _PyArg_BadArgument("hmac_digest", "argument 'key'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &msg, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&msg, 'C')) {
- _PyArg_BadArgument("hmac_digest", "argument 'msg'", "contiguous buffer", args[1]);
- goto exit;
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("hmac_digest", "argument 'digest'", "str", args[2]);
- goto exit;
- }
- Py_ssize_t digest_length;
- digest = PyUnicode_AsUTF8AndSize(args[2], &digest_length);
- if (digest == NULL) {
- goto exit;
- }
- if (strlen(digest) != (size_t)digest_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- return_value = _hashlib_hmac_singleshot_impl(module, &key, &msg, digest);
+ if (PyObject_GetBuffer(args[0], &key, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&key, 'C')) {
+ _PyArg_BadArgument("hmac_digest", "argument 'key'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &msg, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&msg, 'C')) {
+ _PyArg_BadArgument("hmac_digest", "argument 'msg'", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("hmac_digest", "argument 'digest'", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t digest_length;
+ digest = PyUnicode_AsUTF8AndSize(args[2], &digest_length);
+ if (digest == NULL) {
+ goto exit;
+ }
+ if (strlen(digest) != (size_t)digest_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ return_value = _hashlib_hmac_singleshot_impl(module, &key, &msg, digest);
exit:
/* Cleanup for key */
@@ -1165,281 +1165,281 @@ exit:
return return_value;
}
-PyDoc_STRVAR(_hashlib_hmac_new__doc__,
-"hmac_new($module, /, key, msg=b\'\', digestmod=None)\n"
-"--\n"
-"\n"
-"Return a new hmac object.");
-
-#define _HASHLIB_HMAC_NEW_METHODDEF \
- {"hmac_new", (PyCFunction)(void(*)(void))_hashlib_hmac_new, METH_FASTCALL|METH_KEYWORDS, _hashlib_hmac_new__doc__},
-
-static PyObject *
-_hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj,
- const char *digestmod);
-
-static PyObject *
-_hashlib_hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"key", "msg", "digestmod", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "hmac_new", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- Py_buffer key = {NULL, NULL};
- PyObject *msg_obj = NULL;
- const char *digestmod = NULL;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &key, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&key, 'C')) {
- _PyArg_BadArgument("hmac_new", "argument 'key'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- msg_obj = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("hmac_new", "argument 'digestmod'", "str", args[2]);
- goto exit;
- }
- Py_ssize_t digestmod_length;
- digestmod = PyUnicode_AsUTF8AndSize(args[2], &digestmod_length);
- if (digestmod == NULL) {
- goto exit;
- }
- if (strlen(digestmod) != (size_t)digestmod_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional_pos:
- return_value = _hashlib_hmac_new_impl(module, &key, msg_obj, digestmod);
-
-exit:
- /* Cleanup for key */
- if (key.obj) {
- PyBuffer_Release(&key);
- }
-
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_HMAC_copy__doc__,
-"copy($self, /)\n"
-"--\n"
-"\n"
-"Return a copy (\"clone\") of the HMAC object.");
-
-#define _HASHLIB_HMAC_COPY_METHODDEF \
- {"copy", (PyCFunction)_hashlib_HMAC_copy, METH_NOARGS, _hashlib_HMAC_copy__doc__},
-
-static PyObject *
-_hashlib_HMAC_copy_impl(HMACobject *self);
-
-static PyObject *
-_hashlib_HMAC_copy(HMACobject *self, PyObject *Py_UNUSED(ignored))
-{
- return _hashlib_HMAC_copy_impl(self);
-}
-
-PyDoc_STRVAR(_hashlib_HMAC_update__doc__,
-"update($self, /, msg)\n"
-"--\n"
-"\n"
-"Update the HMAC object with msg.");
-
-#define _HASHLIB_HMAC_UPDATE_METHODDEF \
- {"update", (PyCFunction)(void(*)(void))_hashlib_HMAC_update, METH_FASTCALL|METH_KEYWORDS, _hashlib_HMAC_update__doc__},
-
-static PyObject *
-_hashlib_HMAC_update_impl(HMACobject *self, PyObject *msg);
-
-static PyObject *
-_hashlib_HMAC_update(HMACobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"msg", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "update", 0};
- PyObject *argsbuf[1];
- PyObject *msg;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- msg = args[0];
- return_value = _hashlib_HMAC_update_impl(self, msg);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_hashlib_HMAC_digest__doc__,
-"digest($self, /)\n"
-"--\n"
-"\n"
-"Return the digest of the bytes passed to the update() method so far.");
-
-#define _HASHLIB_HMAC_DIGEST_METHODDEF \
- {"digest", (PyCFunction)_hashlib_HMAC_digest, METH_NOARGS, _hashlib_HMAC_digest__doc__},
-
-static PyObject *
-_hashlib_HMAC_digest_impl(HMACobject *self);
-
-static PyObject *
-_hashlib_HMAC_digest(HMACobject *self, PyObject *Py_UNUSED(ignored))
-{
- return _hashlib_HMAC_digest_impl(self);
-}
-
-PyDoc_STRVAR(_hashlib_HMAC_hexdigest__doc__,
-"hexdigest($self, /)\n"
-"--\n"
-"\n"
-"Return hexadecimal digest of the bytes passed to the update() method so far.\n"
-"\n"
-"This may be used to exchange the value safely in email or other non-binary\n"
-"environments.");
-
-#define _HASHLIB_HMAC_HEXDIGEST_METHODDEF \
- {"hexdigest", (PyCFunction)_hashlib_HMAC_hexdigest, METH_NOARGS, _hashlib_HMAC_hexdigest__doc__},
-
-static PyObject *
-_hashlib_HMAC_hexdigest_impl(HMACobject *self);
-
-static PyObject *
-_hashlib_HMAC_hexdigest(HMACobject *self, PyObject *Py_UNUSED(ignored))
-{
- return _hashlib_HMAC_hexdigest_impl(self);
-}
-
-#if !defined(LIBRESSL_VERSION_NUMBER)
-
-PyDoc_STRVAR(_hashlib_get_fips_mode__doc__,
-"get_fips_mode($module, /)\n"
-"--\n"
-"\n"
-"Determine the OpenSSL FIPS mode of operation.\n"
-"\n"
-"For OpenSSL 3.0.0 and newer it returns the state of the default provider\n"
-"in the default OSSL context. It\'s not quite the same as FIPS_mode() but good\n"
-"enough for unittests.\n"
-"\n"
-"Effectively any non-zero return value indicates FIPS mode;\n"
-"values other than 1 may have additional significance.");
-
-#define _HASHLIB_GET_FIPS_MODE_METHODDEF \
- {"get_fips_mode", (PyCFunction)_hashlib_get_fips_mode, METH_NOARGS, _hashlib_get_fips_mode__doc__},
-
-static int
-_hashlib_get_fips_mode_impl(PyObject *module);
-
-static PyObject *
-_hashlib_get_fips_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- PyObject *return_value = NULL;
- int _return_value;
-
- _return_value = _hashlib_get_fips_mode_impl(module);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromLong((long)_return_value);
-
-exit:
- return return_value;
-}
-
-#endif /* !defined(LIBRESSL_VERSION_NUMBER) */
-
-PyDoc_STRVAR(_hashlib_compare_digest__doc__,
-"compare_digest($module, a, b, /)\n"
-"--\n"
-"\n"
-"Return \'a == b\'.\n"
-"\n"
-"This function uses an approach designed to prevent\n"
-"timing analysis, making it appropriate for cryptography.\n"
-"\n"
-"a and b must both be of the same type: either str (ASCII only),\n"
-"or any bytes-like object.\n"
-"\n"
-"Note: If a and b are of different lengths, or if an error occurs,\n"
-"a timing attack could theoretically reveal information about the\n"
-"types and lengths of a and b--but not their values.");
-
-#define _HASHLIB_COMPARE_DIGEST_METHODDEF \
- {"compare_digest", (PyCFunction)(void(*)(void))_hashlib_compare_digest, METH_FASTCALL, _hashlib_compare_digest__doc__},
-
-static PyObject *
-_hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b);
-
-static PyObject *
-_hashlib_compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *a;
- PyObject *b;
-
- if (!_PyArg_CheckPositional("compare_digest", nargs, 2, 2)) {
- goto exit;
- }
- a = args[0];
- b = args[1];
- return_value = _hashlib_compare_digest_impl(module, a, b);
-
-exit:
- return return_value;
-}
-
-#ifndef EVPXOF_DIGEST_METHODDEF
- #define EVPXOF_DIGEST_METHODDEF
-#endif /* !defined(EVPXOF_DIGEST_METHODDEF) */
-
-#ifndef EVPXOF_HEXDIGEST_METHODDEF
- #define EVPXOF_HEXDIGEST_METHODDEF
-#endif /* !defined(EVPXOF_HEXDIGEST_METHODDEF) */
-
-#ifndef _HASHLIB_OPENSSL_SHA3_224_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_224_METHODDEF
-#endif /* !defined(_HASHLIB_OPENSSL_SHA3_224_METHODDEF) */
-
-#ifndef _HASHLIB_OPENSSL_SHA3_256_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_256_METHODDEF
-#endif /* !defined(_HASHLIB_OPENSSL_SHA3_256_METHODDEF) */
-
-#ifndef _HASHLIB_OPENSSL_SHA3_384_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_384_METHODDEF
-#endif /* !defined(_HASHLIB_OPENSSL_SHA3_384_METHODDEF) */
-
-#ifndef _HASHLIB_OPENSSL_SHA3_512_METHODDEF
- #define _HASHLIB_OPENSSL_SHA3_512_METHODDEF
-#endif /* !defined(_HASHLIB_OPENSSL_SHA3_512_METHODDEF) */
-
-#ifndef _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
- #define _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
-#endif /* !defined(_HASHLIB_OPENSSL_SHAKE_128_METHODDEF) */
-
-#ifndef _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
- #define _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
-#endif /* !defined(_HASHLIB_OPENSSL_SHAKE_256_METHODDEF) */
-
+PyDoc_STRVAR(_hashlib_hmac_new__doc__,
+"hmac_new($module, /, key, msg=b\'\', digestmod=None)\n"
+"--\n"
+"\n"
+"Return a new hmac object.");
+
+#define _HASHLIB_HMAC_NEW_METHODDEF \
+ {"hmac_new", (PyCFunction)(void(*)(void))_hashlib_hmac_new, METH_FASTCALL|METH_KEYWORDS, _hashlib_hmac_new__doc__},
+
+static PyObject *
+_hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj,
+ const char *digestmod);
+
+static PyObject *
+_hashlib_hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"key", "msg", "digestmod", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "hmac_new", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ Py_buffer key = {NULL, NULL};
+ PyObject *msg_obj = NULL;
+ const char *digestmod = NULL;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &key, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&key, 'C')) {
+ _PyArg_BadArgument("hmac_new", "argument 'key'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ msg_obj = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("hmac_new", "argument 'digestmod'", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t digestmod_length;
+ digestmod = PyUnicode_AsUTF8AndSize(args[2], &digestmod_length);
+ if (digestmod == NULL) {
+ goto exit;
+ }
+ if (strlen(digestmod) != (size_t)digestmod_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = _hashlib_hmac_new_impl(module, &key, msg_obj, digestmod);
+
+exit:
+ /* Cleanup for key */
+ if (key.obj) {
+ PyBuffer_Release(&key);
+ }
+
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_HMAC_copy__doc__,
+"copy($self, /)\n"
+"--\n"
+"\n"
+"Return a copy (\"clone\") of the HMAC object.");
+
+#define _HASHLIB_HMAC_COPY_METHODDEF \
+ {"copy", (PyCFunction)_hashlib_HMAC_copy, METH_NOARGS, _hashlib_HMAC_copy__doc__},
+
+static PyObject *
+_hashlib_HMAC_copy_impl(HMACobject *self);
+
+static PyObject *
+_hashlib_HMAC_copy(HMACobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _hashlib_HMAC_copy_impl(self);
+}
+
+PyDoc_STRVAR(_hashlib_HMAC_update__doc__,
+"update($self, /, msg)\n"
+"--\n"
+"\n"
+"Update the HMAC object with msg.");
+
+#define _HASHLIB_HMAC_UPDATE_METHODDEF \
+ {"update", (PyCFunction)(void(*)(void))_hashlib_HMAC_update, METH_FASTCALL|METH_KEYWORDS, _hashlib_HMAC_update__doc__},
+
+static PyObject *
+_hashlib_HMAC_update_impl(HMACobject *self, PyObject *msg);
+
+static PyObject *
+_hashlib_HMAC_update(HMACobject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"msg", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "update", 0};
+ PyObject *argsbuf[1];
+ PyObject *msg;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ msg = args[0];
+ return_value = _hashlib_HMAC_update_impl(self, msg);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_hashlib_HMAC_digest__doc__,
+"digest($self, /)\n"
+"--\n"
+"\n"
+"Return the digest of the bytes passed to the update() method so far.");
+
+#define _HASHLIB_HMAC_DIGEST_METHODDEF \
+ {"digest", (PyCFunction)_hashlib_HMAC_digest, METH_NOARGS, _hashlib_HMAC_digest__doc__},
+
+static PyObject *
+_hashlib_HMAC_digest_impl(HMACobject *self);
+
+static PyObject *
+_hashlib_HMAC_digest(HMACobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _hashlib_HMAC_digest_impl(self);
+}
+
+PyDoc_STRVAR(_hashlib_HMAC_hexdigest__doc__,
+"hexdigest($self, /)\n"
+"--\n"
+"\n"
+"Return hexadecimal digest of the bytes passed to the update() method so far.\n"
+"\n"
+"This may be used to exchange the value safely in email or other non-binary\n"
+"environments.");
+
+#define _HASHLIB_HMAC_HEXDIGEST_METHODDEF \
+ {"hexdigest", (PyCFunction)_hashlib_HMAC_hexdigest, METH_NOARGS, _hashlib_HMAC_hexdigest__doc__},
+
+static PyObject *
+_hashlib_HMAC_hexdigest_impl(HMACobject *self);
+
+static PyObject *
+_hashlib_HMAC_hexdigest(HMACobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _hashlib_HMAC_hexdigest_impl(self);
+}
+
+#if !defined(LIBRESSL_VERSION_NUMBER)
+
+PyDoc_STRVAR(_hashlib_get_fips_mode__doc__,
+"get_fips_mode($module, /)\n"
+"--\n"
+"\n"
+"Determine the OpenSSL FIPS mode of operation.\n"
+"\n"
+"For OpenSSL 3.0.0 and newer it returns the state of the default provider\n"
+"in the default OSSL context. It\'s not quite the same as FIPS_mode() but good\n"
+"enough for unittests.\n"
+"\n"
+"Effectively any non-zero return value indicates FIPS mode;\n"
+"values other than 1 may have additional significance.");
+
+#define _HASHLIB_GET_FIPS_MODE_METHODDEF \
+ {"get_fips_mode", (PyCFunction)_hashlib_get_fips_mode, METH_NOARGS, _hashlib_get_fips_mode__doc__},
+
+static int
+_hashlib_get_fips_mode_impl(PyObject *module);
+
+static PyObject *
+_hashlib_get_fips_mode(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ int _return_value;
+
+ _return_value = _hashlib_get_fips_mode_impl(module);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* !defined(LIBRESSL_VERSION_NUMBER) */
+
+PyDoc_STRVAR(_hashlib_compare_digest__doc__,
+"compare_digest($module, a, b, /)\n"
+"--\n"
+"\n"
+"Return \'a == b\'.\n"
+"\n"
+"This function uses an approach designed to prevent\n"
+"timing analysis, making it appropriate for cryptography.\n"
+"\n"
+"a and b must both be of the same type: either str (ASCII only),\n"
+"or any bytes-like object.\n"
+"\n"
+"Note: If a and b are of different lengths, or if an error occurs,\n"
+"a timing attack could theoretically reveal information about the\n"
+"types and lengths of a and b--but not their values.");
+
+#define _HASHLIB_COMPARE_DIGEST_METHODDEF \
+ {"compare_digest", (PyCFunction)(void(*)(void))_hashlib_compare_digest, METH_FASTCALL, _hashlib_compare_digest__doc__},
+
+static PyObject *
+_hashlib_compare_digest_impl(PyObject *module, PyObject *a, PyObject *b);
+
+static PyObject *
+_hashlib_compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *a;
+ PyObject *b;
+
+ if (!_PyArg_CheckPositional("compare_digest", nargs, 2, 2)) {
+ goto exit;
+ }
+ a = args[0];
+ b = args[1];
+ return_value = _hashlib_compare_digest_impl(module, a, b);
+
+exit:
+ return return_value;
+}
+
+#ifndef EVPXOF_DIGEST_METHODDEF
+ #define EVPXOF_DIGEST_METHODDEF
+#endif /* !defined(EVPXOF_DIGEST_METHODDEF) */
+
+#ifndef EVPXOF_HEXDIGEST_METHODDEF
+ #define EVPXOF_HEXDIGEST_METHODDEF
+#endif /* !defined(EVPXOF_HEXDIGEST_METHODDEF) */
+
+#ifndef _HASHLIB_OPENSSL_SHA3_224_METHODDEF
+ #define _HASHLIB_OPENSSL_SHA3_224_METHODDEF
+#endif /* !defined(_HASHLIB_OPENSSL_SHA3_224_METHODDEF) */
+
+#ifndef _HASHLIB_OPENSSL_SHA3_256_METHODDEF
+ #define _HASHLIB_OPENSSL_SHA3_256_METHODDEF
+#endif /* !defined(_HASHLIB_OPENSSL_SHA3_256_METHODDEF) */
+
+#ifndef _HASHLIB_OPENSSL_SHA3_384_METHODDEF
+ #define _HASHLIB_OPENSSL_SHA3_384_METHODDEF
+#endif /* !defined(_HASHLIB_OPENSSL_SHA3_384_METHODDEF) */
+
+#ifndef _HASHLIB_OPENSSL_SHA3_512_METHODDEF
+ #define _HASHLIB_OPENSSL_SHA3_512_METHODDEF
+#endif /* !defined(_HASHLIB_OPENSSL_SHA3_512_METHODDEF) */
+
+#ifndef _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
+ #define _HASHLIB_OPENSSL_SHAKE_128_METHODDEF
+#endif /* !defined(_HASHLIB_OPENSSL_SHAKE_128_METHODDEF) */
+
+#ifndef _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
+ #define _HASHLIB_OPENSSL_SHAKE_256_METHODDEF
+#endif /* !defined(_HASHLIB_OPENSSL_SHAKE_256_METHODDEF) */
+
#ifndef _HASHLIB_SCRYPT_METHODDEF
#define _HASHLIB_SCRYPT_METHODDEF
#endif /* !defined(_HASHLIB_SCRYPT_METHODDEF) */
-
-#ifndef _HASHLIB_GET_FIPS_MODE_METHODDEF
- #define _HASHLIB_GET_FIPS_MODE_METHODDEF
-#endif /* !defined(_HASHLIB_GET_FIPS_MODE_METHODDEF) */
-/*[clinic end generated code: output=b6b280e46bf0b139 input=a9049054013a1b77]*/
+
+#ifndef _HASHLIB_GET_FIPS_MODE_METHODDEF
+ #define _HASHLIB_GET_FIPS_MODE_METHODDEF
+#endif /* !defined(_HASHLIB_GET_FIPS_MODE_METHODDEF) */
+/*[clinic end generated code: output=b6b280e46bf0b139 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_heapqmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_heapqmodule.c.h
index 99bf9f0cc1..55403706ba 100644
--- a/contrib/tools/python3/src/Modules/clinic/_heapqmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_heapqmodule.c.h
@@ -1,172 +1,172 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(_heapq_heappush__doc__,
-"heappush($module, heap, item, /)\n"
-"--\n"
-"\n"
-"Push item onto heap, maintaining the heap invariant.");
-
-#define _HEAPQ_HEAPPUSH_METHODDEF \
- {"heappush", (PyCFunction)(void(*)(void))_heapq_heappush, METH_FASTCALL, _heapq_heappush__doc__},
-
-static PyObject *
-_heapq_heappush_impl(PyObject *module, PyObject *heap, PyObject *item);
-
-static PyObject *
-_heapq_heappush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *heap;
- PyObject *item;
-
- if (!_PyArg_CheckPositional("heappush", nargs, 2, 2)) {
- goto exit;
- }
- heap = args[0];
- item = args[1];
- return_value = _heapq_heappush_impl(module, heap, item);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_heapq_heappop__doc__,
-"heappop($module, heap, /)\n"
-"--\n"
-"\n"
-"Pop the smallest item off the heap, maintaining the heap invariant.");
-
-#define _HEAPQ_HEAPPOP_METHODDEF \
- {"heappop", (PyCFunction)_heapq_heappop, METH_O, _heapq_heappop__doc__},
-
-PyDoc_STRVAR(_heapq_heapreplace__doc__,
-"heapreplace($module, heap, item, /)\n"
-"--\n"
-"\n"
-"Pop and return the current smallest value, and add the new item.\n"
-"\n"
-"This is more efficient than heappop() followed by heappush(), and can be\n"
-"more appropriate when using a fixed-size heap. Note that the value\n"
-"returned may be larger than item! That constrains reasonable uses of\n"
-"this routine unless written as part of a conditional replacement:\n"
-"\n"
-" if item > heap[0]:\n"
-" item = heapreplace(heap, item)");
-
-#define _HEAPQ_HEAPREPLACE_METHODDEF \
- {"heapreplace", (PyCFunction)(void(*)(void))_heapq_heapreplace, METH_FASTCALL, _heapq_heapreplace__doc__},
-
-static PyObject *
-_heapq_heapreplace_impl(PyObject *module, PyObject *heap, PyObject *item);
-
-static PyObject *
-_heapq_heapreplace(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *heap;
- PyObject *item;
-
- if (!_PyArg_CheckPositional("heapreplace", nargs, 2, 2)) {
- goto exit;
- }
- heap = args[0];
- item = args[1];
- return_value = _heapq_heapreplace_impl(module, heap, item);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_heapq_heappushpop__doc__,
-"heappushpop($module, heap, item, /)\n"
-"--\n"
-"\n"
-"Push item on the heap, then pop and return the smallest item from the heap.\n"
-"\n"
-"The combined action runs more efficiently than heappush() followed by\n"
-"a separate call to heappop().");
-
-#define _HEAPQ_HEAPPUSHPOP_METHODDEF \
- {"heappushpop", (PyCFunction)(void(*)(void))_heapq_heappushpop, METH_FASTCALL, _heapq_heappushpop__doc__},
-
-static PyObject *
-_heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item);
-
-static PyObject *
-_heapq_heappushpop(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *heap;
- PyObject *item;
-
- if (!_PyArg_CheckPositional("heappushpop", nargs, 2, 2)) {
- goto exit;
- }
- heap = args[0];
- item = args[1];
- return_value = _heapq_heappushpop_impl(module, heap, item);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_heapq_heapify__doc__,
-"heapify($module, heap, /)\n"
-"--\n"
-"\n"
-"Transform list into a heap, in-place, in O(len(heap)) time.");
-
-#define _HEAPQ_HEAPIFY_METHODDEF \
- {"heapify", (PyCFunction)_heapq_heapify, METH_O, _heapq_heapify__doc__},
-
-PyDoc_STRVAR(_heapq__heappop_max__doc__,
-"_heappop_max($module, heap, /)\n"
-"--\n"
-"\n"
-"Maxheap variant of heappop.");
-
-#define _HEAPQ__HEAPPOP_MAX_METHODDEF \
- {"_heappop_max", (PyCFunction)_heapq__heappop_max, METH_O, _heapq__heappop_max__doc__},
-
-PyDoc_STRVAR(_heapq__heapreplace_max__doc__,
-"_heapreplace_max($module, heap, item, /)\n"
-"--\n"
-"\n"
-"Maxheap variant of heapreplace.");
-
-#define _HEAPQ__HEAPREPLACE_MAX_METHODDEF \
- {"_heapreplace_max", (PyCFunction)(void(*)(void))_heapq__heapreplace_max, METH_FASTCALL, _heapq__heapreplace_max__doc__},
-
-static PyObject *
-_heapq__heapreplace_max_impl(PyObject *module, PyObject *heap,
- PyObject *item);
-
-static PyObject *
-_heapq__heapreplace_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *heap;
- PyObject *item;
-
- if (!_PyArg_CheckPositional("_heapreplace_max", nargs, 2, 2)) {
- goto exit;
- }
- heap = args[0];
- item = args[1];
- return_value = _heapq__heapreplace_max_impl(module, heap, item);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_heapq__heapify_max__doc__,
-"_heapify_max($module, heap, /)\n"
-"--\n"
-"\n"
-"Maxheap variant of heapify.");
-
-#define _HEAPQ__HEAPIFY_MAX_METHODDEF \
- {"_heapify_max", (PyCFunction)_heapq__heapify_max, METH_O, _heapq__heapify_max__doc__},
-/*[clinic end generated code: output=37ef2a3319971c8d input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_heapq_heappush__doc__,
+"heappush($module, heap, item, /)\n"
+"--\n"
+"\n"
+"Push item onto heap, maintaining the heap invariant.");
+
+#define _HEAPQ_HEAPPUSH_METHODDEF \
+ {"heappush", (PyCFunction)(void(*)(void))_heapq_heappush, METH_FASTCALL, _heapq_heappush__doc__},
+
+static PyObject *
+_heapq_heappush_impl(PyObject *module, PyObject *heap, PyObject *item);
+
+static PyObject *
+_heapq_heappush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *heap;
+ PyObject *item;
+
+ if (!_PyArg_CheckPositional("heappush", nargs, 2, 2)) {
+ goto exit;
+ }
+ heap = args[0];
+ item = args[1];
+ return_value = _heapq_heappush_impl(module, heap, item);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_heapq_heappop__doc__,
+"heappop($module, heap, /)\n"
+"--\n"
+"\n"
+"Pop the smallest item off the heap, maintaining the heap invariant.");
+
+#define _HEAPQ_HEAPPOP_METHODDEF \
+ {"heappop", (PyCFunction)_heapq_heappop, METH_O, _heapq_heappop__doc__},
+
+PyDoc_STRVAR(_heapq_heapreplace__doc__,
+"heapreplace($module, heap, item, /)\n"
+"--\n"
+"\n"
+"Pop and return the current smallest value, and add the new item.\n"
+"\n"
+"This is more efficient than heappop() followed by heappush(), and can be\n"
+"more appropriate when using a fixed-size heap. Note that the value\n"
+"returned may be larger than item! That constrains reasonable uses of\n"
+"this routine unless written as part of a conditional replacement:\n"
+"\n"
+" if item > heap[0]:\n"
+" item = heapreplace(heap, item)");
+
+#define _HEAPQ_HEAPREPLACE_METHODDEF \
+ {"heapreplace", (PyCFunction)(void(*)(void))_heapq_heapreplace, METH_FASTCALL, _heapq_heapreplace__doc__},
+
+static PyObject *
+_heapq_heapreplace_impl(PyObject *module, PyObject *heap, PyObject *item);
+
+static PyObject *
+_heapq_heapreplace(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *heap;
+ PyObject *item;
+
+ if (!_PyArg_CheckPositional("heapreplace", nargs, 2, 2)) {
+ goto exit;
+ }
+ heap = args[0];
+ item = args[1];
+ return_value = _heapq_heapreplace_impl(module, heap, item);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_heapq_heappushpop__doc__,
+"heappushpop($module, heap, item, /)\n"
+"--\n"
+"\n"
+"Push item on the heap, then pop and return the smallest item from the heap.\n"
+"\n"
+"The combined action runs more efficiently than heappush() followed by\n"
+"a separate call to heappop().");
+
+#define _HEAPQ_HEAPPUSHPOP_METHODDEF \
+ {"heappushpop", (PyCFunction)(void(*)(void))_heapq_heappushpop, METH_FASTCALL, _heapq_heappushpop__doc__},
+
+static PyObject *
+_heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item);
+
+static PyObject *
+_heapq_heappushpop(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *heap;
+ PyObject *item;
+
+ if (!_PyArg_CheckPositional("heappushpop", nargs, 2, 2)) {
+ goto exit;
+ }
+ heap = args[0];
+ item = args[1];
+ return_value = _heapq_heappushpop_impl(module, heap, item);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_heapq_heapify__doc__,
+"heapify($module, heap, /)\n"
+"--\n"
+"\n"
+"Transform list into a heap, in-place, in O(len(heap)) time.");
+
+#define _HEAPQ_HEAPIFY_METHODDEF \
+ {"heapify", (PyCFunction)_heapq_heapify, METH_O, _heapq_heapify__doc__},
+
+PyDoc_STRVAR(_heapq__heappop_max__doc__,
+"_heappop_max($module, heap, /)\n"
+"--\n"
+"\n"
+"Maxheap variant of heappop.");
+
+#define _HEAPQ__HEAPPOP_MAX_METHODDEF \
+ {"_heappop_max", (PyCFunction)_heapq__heappop_max, METH_O, _heapq__heappop_max__doc__},
+
+PyDoc_STRVAR(_heapq__heapreplace_max__doc__,
+"_heapreplace_max($module, heap, item, /)\n"
+"--\n"
+"\n"
+"Maxheap variant of heapreplace.");
+
+#define _HEAPQ__HEAPREPLACE_MAX_METHODDEF \
+ {"_heapreplace_max", (PyCFunction)(void(*)(void))_heapq__heapreplace_max, METH_FASTCALL, _heapq__heapreplace_max__doc__},
+
+static PyObject *
+_heapq__heapreplace_max_impl(PyObject *module, PyObject *heap,
+ PyObject *item);
+
+static PyObject *
+_heapq__heapreplace_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *heap;
+ PyObject *item;
+
+ if (!_PyArg_CheckPositional("_heapreplace_max", nargs, 2, 2)) {
+ goto exit;
+ }
+ heap = args[0];
+ item = args[1];
+ return_value = _heapq__heapreplace_max_impl(module, heap, item);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_heapq__heapify_max__doc__,
+"_heapify_max($module, heap, /)\n"
+"--\n"
+"\n"
+"Maxheap variant of heapify.");
+
+#define _HEAPQ__HEAPIFY_MAX_METHODDEF \
+ {"_heapify_max", (PyCFunction)_heapq__heapify_max, METH_O, _heapq__heapify_max__doc__},
+/*[clinic end generated code: output=37ef2a3319971c8d input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_lzmamodule.c.h b/contrib/tools/python3/src/Modules/clinic/_lzmamodule.c.h
index edfdd9fff0..82ef4d517d 100644
--- a/contrib/tools/python3/src/Modules/clinic/_lzmamodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_lzmamodule.c.h
@@ -25,13 +25,13 @@ _lzma_LZMACompressor_compress(Compressor *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("compress", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("compress", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _lzma_LZMACompressor_compress_impl(self, &data);
exit:
@@ -85,7 +85,7 @@ PyDoc_STRVAR(_lzma_LZMADecompressor_decompress__doc__,
"the unused_data attribute.");
#define _LZMA_LZMADECOMPRESSOR_DECOMPRESS_METHODDEF \
- {"decompress", (PyCFunction)(void(*)(void))_lzma_LZMADecompressor_decompress, METH_FASTCALL|METH_KEYWORDS, _lzma_LZMADecompressor_decompress__doc__},
+ {"decompress", (PyCFunction)(void(*)(void))_lzma_LZMADecompressor_decompress, METH_FASTCALL|METH_KEYWORDS, _lzma_LZMADecompressor_decompress__doc__},
static PyObject *
_lzma_LZMADecompressor_decompress_impl(Decompressor *self, Py_buffer *data,
@@ -96,44 +96,44 @@ _lzma_LZMADecompressor_decompress(Decompressor *self, PyObject *const *args, Py_
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"data", "max_length", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
Py_ssize_t max_length = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("decompress", "argument 'data'", "contiguous buffer", args[0]);
goto exit;
}
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("decompress", "argument 'data'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- max_length = ival;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ max_length = ival;
+ }
+skip_optional_pos:
return_value = _lzma_LZMADecompressor_decompress_impl(self, &data, max_length);
exit:
@@ -177,44 +177,44 @@ _lzma_LZMADecompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs
{
int return_value = -1;
static const char * const _keywords[] = {"format", "memlimit", "filters", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "LZMADecompressor", 0};
- PyObject *argsbuf[3];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "LZMADecompressor", 0};
+ PyObject *argsbuf[3];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
int format = FORMAT_AUTO;
PyObject *memlimit = Py_None;
PyObject *filters = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 3, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 3, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[0]) {
- if (PyFloat_Check(fastargs[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- format = _PyLong_AsInt(fastargs[0]);
- if (format == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[1]) {
- memlimit = fastargs[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- filters = fastargs[2];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[0]) {
+ if (PyFloat_Check(fastargs[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ format = _PyLong_AsInt(fastargs[0]);
+ if (format == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[1]) {
+ memlimit = fastargs[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ filters = fastargs[2];
+skip_optional_pos:
return_value = _lzma_LZMADecompressor___init___impl((Decompressor *)self, format, memlimit, filters);
exit:
@@ -241,15 +241,15 @@ _lzma_is_check_supported(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int check_id;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ check_id = _PyLong_AsInt(arg);
+ if (check_id == -1 && PyErr_Occurred()) {
goto exit;
}
- check_id = _PyLong_AsInt(arg);
- if (check_id == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = _lzma_is_check_supported_impl(module, check_id);
exit:
@@ -276,7 +276,7 @@ _lzma__encode_filter_properties(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
lzma_filter filter = {LZMA_VLI_UNKNOWN, NULL};
- if (!lzma_filter_converter(arg, &filter)) {
+ if (!lzma_filter_converter(arg, &filter)) {
goto exit;
}
return_value = _lzma__encode_filter_properties_impl(module, filter);
@@ -298,7 +298,7 @@ PyDoc_STRVAR(_lzma__decode_filter_properties__doc__,
"The result does not include the filter ID itself, only the options.");
#define _LZMA__DECODE_FILTER_PROPERTIES_METHODDEF \
- {"_decode_filter_properties", (PyCFunction)(void(*)(void))_lzma__decode_filter_properties, METH_FASTCALL, _lzma__decode_filter_properties__doc__},
+ {"_decode_filter_properties", (PyCFunction)(void(*)(void))_lzma__decode_filter_properties, METH_FASTCALL, _lzma__decode_filter_properties__doc__},
static PyObject *
_lzma__decode_filter_properties_impl(PyObject *module, lzma_vli filter_id,
@@ -311,19 +311,19 @@ _lzma__decode_filter_properties(PyObject *module, PyObject *const *args, Py_ssiz
lzma_vli filter_id;
Py_buffer encoded_props = {NULL, NULL};
- if (!_PyArg_CheckPositional("_decode_filter_properties", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("_decode_filter_properties", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!lzma_vli_converter(args[0], &filter_id)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &encoded_props, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&encoded_props, 'C')) {
+ _PyArg_BadArgument("_decode_filter_properties", "argument 2", "contiguous buffer", args[1]);
goto exit;
}
- if (!lzma_vli_converter(args[0], &filter_id)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &encoded_props, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&encoded_props, 'C')) {
- _PyArg_BadArgument("_decode_filter_properties", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
return_value = _lzma__decode_filter_properties_impl(module, filter_id, &encoded_props);
exit:
@@ -334,4 +334,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=f7477a10e86a717d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f7477a10e86a717d input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_opcode.c.h b/contrib/tools/python3/src/Modules/clinic/_opcode.c.h
index 906e0d9ace..777701ff14 100644
--- a/contrib/tools/python3/src/Modules/clinic/_opcode.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_opcode.c.h
@@ -3,56 +3,56 @@ preserve
[clinic start generated code]*/
PyDoc_STRVAR(_opcode_stack_effect__doc__,
-"stack_effect($module, opcode, oparg=None, /, *, jump=None)\n"
+"stack_effect($module, opcode, oparg=None, /, *, jump=None)\n"
"--\n"
"\n"
"Compute the stack effect of the opcode.");
#define _OPCODE_STACK_EFFECT_METHODDEF \
- {"stack_effect", (PyCFunction)(void(*)(void))_opcode_stack_effect, METH_FASTCALL|METH_KEYWORDS, _opcode_stack_effect__doc__},
+ {"stack_effect", (PyCFunction)(void(*)(void))_opcode_stack_effect, METH_FASTCALL|METH_KEYWORDS, _opcode_stack_effect__doc__},
static int
-_opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
- PyObject *jump);
+_opcode_stack_effect_impl(PyObject *module, int opcode, PyObject *oparg,
+ PyObject *jump);
static PyObject *
-_opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+_opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "", "jump", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "stack_effect", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static const char * const _keywords[] = {"", "", "jump", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "stack_effect", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
int opcode;
PyObject *oparg = Py_None;
- PyObject *jump = Py_None;
+ PyObject *jump = Py_None;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- opcode = _PyLong_AsInt(args[0]);
- if (opcode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional_posonly;
- }
- noptargs--;
- oparg = args[1];
-skip_optional_posonly:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- jump = args[2];
-skip_optional_kwonly:
- _return_value = _opcode_stack_effect_impl(module, opcode, oparg, jump);
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ opcode = _PyLong_AsInt(args[0]);
+ if (opcode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional_posonly;
+ }
+ noptargs--;
+ oparg = args[1];
+skip_optional_posonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ jump = args[2];
+skip_optional_kwonly:
+ _return_value = _opcode_stack_effect_impl(module, opcode, oparg, jump);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
}
@@ -61,4 +61,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=7bc08f2835b2cf89 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7bc08f2835b2cf89 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_operator.c.h b/contrib/tools/python3/src/Modules/clinic/_operator.c.h
index 39ecfae970..0e39f3b77a 100644
--- a/contrib/tools/python3/src/Modules/clinic/_operator.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_operator.c.h
@@ -37,7 +37,7 @@ PyDoc_STRVAR(_operator_add__doc__,
"Same as a + b.");
#define _OPERATOR_ADD_METHODDEF \
- {"add", (PyCFunction)(void(*)(void))_operator_add, METH_FASTCALL, _operator_add__doc__},
+ {"add", (PyCFunction)(void(*)(void))_operator_add, METH_FASTCALL, _operator_add__doc__},
static PyObject *
_operator_add_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -49,11 +49,11 @@ _operator_add(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("add", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("add", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_add_impl(module, a, b);
exit:
@@ -67,7 +67,7 @@ PyDoc_STRVAR(_operator_sub__doc__,
"Same as a - b.");
#define _OPERATOR_SUB_METHODDEF \
- {"sub", (PyCFunction)(void(*)(void))_operator_sub, METH_FASTCALL, _operator_sub__doc__},
+ {"sub", (PyCFunction)(void(*)(void))_operator_sub, METH_FASTCALL, _operator_sub__doc__},
static PyObject *
_operator_sub_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -79,11 +79,11 @@ _operator_sub(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("sub", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("sub", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_sub_impl(module, a, b);
exit:
@@ -97,7 +97,7 @@ PyDoc_STRVAR(_operator_mul__doc__,
"Same as a * b.");
#define _OPERATOR_MUL_METHODDEF \
- {"mul", (PyCFunction)(void(*)(void))_operator_mul, METH_FASTCALL, _operator_mul__doc__},
+ {"mul", (PyCFunction)(void(*)(void))_operator_mul, METH_FASTCALL, _operator_mul__doc__},
static PyObject *
_operator_mul_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -109,11 +109,11 @@ _operator_mul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("mul", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("mul", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_mul_impl(module, a, b);
exit:
@@ -127,7 +127,7 @@ PyDoc_STRVAR(_operator_matmul__doc__,
"Same as a @ b.");
#define _OPERATOR_MATMUL_METHODDEF \
- {"matmul", (PyCFunction)(void(*)(void))_operator_matmul, METH_FASTCALL, _operator_matmul__doc__},
+ {"matmul", (PyCFunction)(void(*)(void))_operator_matmul, METH_FASTCALL, _operator_matmul__doc__},
static PyObject *
_operator_matmul_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -139,11 +139,11 @@ _operator_matmul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("matmul", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("matmul", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_matmul_impl(module, a, b);
exit:
@@ -157,7 +157,7 @@ PyDoc_STRVAR(_operator_floordiv__doc__,
"Same as a // b.");
#define _OPERATOR_FLOORDIV_METHODDEF \
- {"floordiv", (PyCFunction)(void(*)(void))_operator_floordiv, METH_FASTCALL, _operator_floordiv__doc__},
+ {"floordiv", (PyCFunction)(void(*)(void))_operator_floordiv, METH_FASTCALL, _operator_floordiv__doc__},
static PyObject *
_operator_floordiv_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -169,11 +169,11 @@ _operator_floordiv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("floordiv", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("floordiv", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_floordiv_impl(module, a, b);
exit:
@@ -187,7 +187,7 @@ PyDoc_STRVAR(_operator_truediv__doc__,
"Same as a / b.");
#define _OPERATOR_TRUEDIV_METHODDEF \
- {"truediv", (PyCFunction)(void(*)(void))_operator_truediv, METH_FASTCALL, _operator_truediv__doc__},
+ {"truediv", (PyCFunction)(void(*)(void))_operator_truediv, METH_FASTCALL, _operator_truediv__doc__},
static PyObject *
_operator_truediv_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -199,11 +199,11 @@ _operator_truediv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("truediv", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("truediv", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_truediv_impl(module, a, b);
exit:
@@ -217,7 +217,7 @@ PyDoc_STRVAR(_operator_mod__doc__,
"Same as a % b.");
#define _OPERATOR_MOD_METHODDEF \
- {"mod", (PyCFunction)(void(*)(void))_operator_mod, METH_FASTCALL, _operator_mod__doc__},
+ {"mod", (PyCFunction)(void(*)(void))_operator_mod, METH_FASTCALL, _operator_mod__doc__},
static PyObject *
_operator_mod_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -229,11 +229,11 @@ _operator_mod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("mod", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("mod", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_mod_impl(module, a, b);
exit:
@@ -292,7 +292,7 @@ PyDoc_STRVAR(_operator_lshift__doc__,
"Same as a << b.");
#define _OPERATOR_LSHIFT_METHODDEF \
- {"lshift", (PyCFunction)(void(*)(void))_operator_lshift, METH_FASTCALL, _operator_lshift__doc__},
+ {"lshift", (PyCFunction)(void(*)(void))_operator_lshift, METH_FASTCALL, _operator_lshift__doc__},
static PyObject *
_operator_lshift_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -304,11 +304,11 @@ _operator_lshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("lshift", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("lshift", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_lshift_impl(module, a, b);
exit:
@@ -322,7 +322,7 @@ PyDoc_STRVAR(_operator_rshift__doc__,
"Same as a >> b.");
#define _OPERATOR_RSHIFT_METHODDEF \
- {"rshift", (PyCFunction)(void(*)(void))_operator_rshift, METH_FASTCALL, _operator_rshift__doc__},
+ {"rshift", (PyCFunction)(void(*)(void))_operator_rshift, METH_FASTCALL, _operator_rshift__doc__},
static PyObject *
_operator_rshift_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -334,11 +334,11 @@ _operator_rshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("rshift", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("rshift", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_rshift_impl(module, a, b);
exit:
@@ -380,7 +380,7 @@ PyDoc_STRVAR(_operator_and___doc__,
"Same as a & b.");
#define _OPERATOR_AND__METHODDEF \
- {"and_", (PyCFunction)(void(*)(void))_operator_and_, METH_FASTCALL, _operator_and___doc__},
+ {"and_", (PyCFunction)(void(*)(void))_operator_and_, METH_FASTCALL, _operator_and___doc__},
static PyObject *
_operator_and__impl(PyObject *module, PyObject *a, PyObject *b);
@@ -392,11 +392,11 @@ _operator_and_(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("and_", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("and_", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_and__impl(module, a, b);
exit:
@@ -410,7 +410,7 @@ PyDoc_STRVAR(_operator_xor__doc__,
"Same as a ^ b.");
#define _OPERATOR_XOR_METHODDEF \
- {"xor", (PyCFunction)(void(*)(void))_operator_xor, METH_FASTCALL, _operator_xor__doc__},
+ {"xor", (PyCFunction)(void(*)(void))_operator_xor, METH_FASTCALL, _operator_xor__doc__},
static PyObject *
_operator_xor_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -422,11 +422,11 @@ _operator_xor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("xor", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("xor", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_xor_impl(module, a, b);
exit:
@@ -440,7 +440,7 @@ PyDoc_STRVAR(_operator_or___doc__,
"Same as a | b.");
#define _OPERATOR_OR__METHODDEF \
- {"or_", (PyCFunction)(void(*)(void))_operator_or_, METH_FASTCALL, _operator_or___doc__},
+ {"or_", (PyCFunction)(void(*)(void))_operator_or_, METH_FASTCALL, _operator_or___doc__},
static PyObject *
_operator_or__impl(PyObject *module, PyObject *a, PyObject *b);
@@ -452,11 +452,11 @@ _operator_or_(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("or_", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("or_", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_or__impl(module, a, b);
exit:
@@ -470,7 +470,7 @@ PyDoc_STRVAR(_operator_iadd__doc__,
"Same as a += b.");
#define _OPERATOR_IADD_METHODDEF \
- {"iadd", (PyCFunction)(void(*)(void))_operator_iadd, METH_FASTCALL, _operator_iadd__doc__},
+ {"iadd", (PyCFunction)(void(*)(void))_operator_iadd, METH_FASTCALL, _operator_iadd__doc__},
static PyObject *
_operator_iadd_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -482,11 +482,11 @@ _operator_iadd(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("iadd", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("iadd", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_iadd_impl(module, a, b);
exit:
@@ -500,7 +500,7 @@ PyDoc_STRVAR(_operator_isub__doc__,
"Same as a -= b.");
#define _OPERATOR_ISUB_METHODDEF \
- {"isub", (PyCFunction)(void(*)(void))_operator_isub, METH_FASTCALL, _operator_isub__doc__},
+ {"isub", (PyCFunction)(void(*)(void))_operator_isub, METH_FASTCALL, _operator_isub__doc__},
static PyObject *
_operator_isub_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -512,11 +512,11 @@ _operator_isub(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("isub", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("isub", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_isub_impl(module, a, b);
exit:
@@ -530,7 +530,7 @@ PyDoc_STRVAR(_operator_imul__doc__,
"Same as a *= b.");
#define _OPERATOR_IMUL_METHODDEF \
- {"imul", (PyCFunction)(void(*)(void))_operator_imul, METH_FASTCALL, _operator_imul__doc__},
+ {"imul", (PyCFunction)(void(*)(void))_operator_imul, METH_FASTCALL, _operator_imul__doc__},
static PyObject *
_operator_imul_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -542,11 +542,11 @@ _operator_imul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("imul", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("imul", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_imul_impl(module, a, b);
exit:
@@ -560,7 +560,7 @@ PyDoc_STRVAR(_operator_imatmul__doc__,
"Same as a @= b.");
#define _OPERATOR_IMATMUL_METHODDEF \
- {"imatmul", (PyCFunction)(void(*)(void))_operator_imatmul, METH_FASTCALL, _operator_imatmul__doc__},
+ {"imatmul", (PyCFunction)(void(*)(void))_operator_imatmul, METH_FASTCALL, _operator_imatmul__doc__},
static PyObject *
_operator_imatmul_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -572,11 +572,11 @@ _operator_imatmul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("imatmul", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("imatmul", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_imatmul_impl(module, a, b);
exit:
@@ -590,7 +590,7 @@ PyDoc_STRVAR(_operator_ifloordiv__doc__,
"Same as a //= b.");
#define _OPERATOR_IFLOORDIV_METHODDEF \
- {"ifloordiv", (PyCFunction)(void(*)(void))_operator_ifloordiv, METH_FASTCALL, _operator_ifloordiv__doc__},
+ {"ifloordiv", (PyCFunction)(void(*)(void))_operator_ifloordiv, METH_FASTCALL, _operator_ifloordiv__doc__},
static PyObject *
_operator_ifloordiv_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -602,11 +602,11 @@ _operator_ifloordiv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("ifloordiv", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ifloordiv", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_ifloordiv_impl(module, a, b);
exit:
@@ -620,7 +620,7 @@ PyDoc_STRVAR(_operator_itruediv__doc__,
"Same as a /= b.");
#define _OPERATOR_ITRUEDIV_METHODDEF \
- {"itruediv", (PyCFunction)(void(*)(void))_operator_itruediv, METH_FASTCALL, _operator_itruediv__doc__},
+ {"itruediv", (PyCFunction)(void(*)(void))_operator_itruediv, METH_FASTCALL, _operator_itruediv__doc__},
static PyObject *
_operator_itruediv_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -632,11 +632,11 @@ _operator_itruediv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("itruediv", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("itruediv", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_itruediv_impl(module, a, b);
exit:
@@ -650,7 +650,7 @@ PyDoc_STRVAR(_operator_imod__doc__,
"Same as a %= b.");
#define _OPERATOR_IMOD_METHODDEF \
- {"imod", (PyCFunction)(void(*)(void))_operator_imod, METH_FASTCALL, _operator_imod__doc__},
+ {"imod", (PyCFunction)(void(*)(void))_operator_imod, METH_FASTCALL, _operator_imod__doc__},
static PyObject *
_operator_imod_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -662,11 +662,11 @@ _operator_imod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("imod", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("imod", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_imod_impl(module, a, b);
exit:
@@ -680,7 +680,7 @@ PyDoc_STRVAR(_operator_ilshift__doc__,
"Same as a <<= b.");
#define _OPERATOR_ILSHIFT_METHODDEF \
- {"ilshift", (PyCFunction)(void(*)(void))_operator_ilshift, METH_FASTCALL, _operator_ilshift__doc__},
+ {"ilshift", (PyCFunction)(void(*)(void))_operator_ilshift, METH_FASTCALL, _operator_ilshift__doc__},
static PyObject *
_operator_ilshift_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -692,11 +692,11 @@ _operator_ilshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("ilshift", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ilshift", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_ilshift_impl(module, a, b);
exit:
@@ -710,7 +710,7 @@ PyDoc_STRVAR(_operator_irshift__doc__,
"Same as a >>= b.");
#define _OPERATOR_IRSHIFT_METHODDEF \
- {"irshift", (PyCFunction)(void(*)(void))_operator_irshift, METH_FASTCALL, _operator_irshift__doc__},
+ {"irshift", (PyCFunction)(void(*)(void))_operator_irshift, METH_FASTCALL, _operator_irshift__doc__},
static PyObject *
_operator_irshift_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -722,11 +722,11 @@ _operator_irshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("irshift", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("irshift", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_irshift_impl(module, a, b);
exit:
@@ -740,7 +740,7 @@ PyDoc_STRVAR(_operator_iand__doc__,
"Same as a &= b.");
#define _OPERATOR_IAND_METHODDEF \
- {"iand", (PyCFunction)(void(*)(void))_operator_iand, METH_FASTCALL, _operator_iand__doc__},
+ {"iand", (PyCFunction)(void(*)(void))_operator_iand, METH_FASTCALL, _operator_iand__doc__},
static PyObject *
_operator_iand_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -752,11 +752,11 @@ _operator_iand(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("iand", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("iand", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_iand_impl(module, a, b);
exit:
@@ -770,7 +770,7 @@ PyDoc_STRVAR(_operator_ixor__doc__,
"Same as a ^= b.");
#define _OPERATOR_IXOR_METHODDEF \
- {"ixor", (PyCFunction)(void(*)(void))_operator_ixor, METH_FASTCALL, _operator_ixor__doc__},
+ {"ixor", (PyCFunction)(void(*)(void))_operator_ixor, METH_FASTCALL, _operator_ixor__doc__},
static PyObject *
_operator_ixor_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -782,11 +782,11 @@ _operator_ixor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("ixor", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ixor", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_ixor_impl(module, a, b);
exit:
@@ -800,7 +800,7 @@ PyDoc_STRVAR(_operator_ior__doc__,
"Same as a |= b.");
#define _OPERATOR_IOR_METHODDEF \
- {"ior", (PyCFunction)(void(*)(void))_operator_ior, METH_FASTCALL, _operator_ior__doc__},
+ {"ior", (PyCFunction)(void(*)(void))_operator_ior, METH_FASTCALL, _operator_ior__doc__},
static PyObject *
_operator_ior_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -812,11 +812,11 @@ _operator_ior(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("ior", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ior", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_ior_impl(module, a, b);
exit:
@@ -830,7 +830,7 @@ PyDoc_STRVAR(_operator_concat__doc__,
"Same as a + b, for a and b sequences.");
#define _OPERATOR_CONCAT_METHODDEF \
- {"concat", (PyCFunction)(void(*)(void))_operator_concat, METH_FASTCALL, _operator_concat__doc__},
+ {"concat", (PyCFunction)(void(*)(void))_operator_concat, METH_FASTCALL, _operator_concat__doc__},
static PyObject *
_operator_concat_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -842,11 +842,11 @@ _operator_concat(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("concat", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("concat", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_concat_impl(module, a, b);
exit:
@@ -860,7 +860,7 @@ PyDoc_STRVAR(_operator_iconcat__doc__,
"Same as a += b, for a and b sequences.");
#define _OPERATOR_ICONCAT_METHODDEF \
- {"iconcat", (PyCFunction)(void(*)(void))_operator_iconcat, METH_FASTCALL, _operator_iconcat__doc__},
+ {"iconcat", (PyCFunction)(void(*)(void))_operator_iconcat, METH_FASTCALL, _operator_iconcat__doc__},
static PyObject *
_operator_iconcat_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -872,11 +872,11 @@ _operator_iconcat(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("iconcat", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("iconcat", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_iconcat_impl(module, a, b);
exit:
@@ -890,7 +890,7 @@ PyDoc_STRVAR(_operator_contains__doc__,
"Same as b in a (note reversed operands).");
#define _OPERATOR_CONTAINS_METHODDEF \
- {"contains", (PyCFunction)(void(*)(void))_operator_contains, METH_FASTCALL, _operator_contains__doc__},
+ {"contains", (PyCFunction)(void(*)(void))_operator_contains, METH_FASTCALL, _operator_contains__doc__},
static int
_operator_contains_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -903,11 +903,11 @@ _operator_contains(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *b;
int _return_value;
- if (!_PyArg_CheckPositional("contains", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("contains", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
_return_value = _operator_contains_impl(module, a, b);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -925,7 +925,7 @@ PyDoc_STRVAR(_operator_indexOf__doc__,
"Return the first index of b in a.");
#define _OPERATOR_INDEXOF_METHODDEF \
- {"indexOf", (PyCFunction)(void(*)(void))_operator_indexOf, METH_FASTCALL, _operator_indexOf__doc__},
+ {"indexOf", (PyCFunction)(void(*)(void))_operator_indexOf, METH_FASTCALL, _operator_indexOf__doc__},
static Py_ssize_t
_operator_indexOf_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -938,11 +938,11 @@ _operator_indexOf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *b;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("indexOf", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("indexOf", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
_return_value = _operator_indexOf_impl(module, a, b);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -957,10 +957,10 @@ PyDoc_STRVAR(_operator_countOf__doc__,
"countOf($module, a, b, /)\n"
"--\n"
"\n"
-"Return the number of items in a which are, or which equal, b.");
+"Return the number of items in a which are, or which equal, b.");
#define _OPERATOR_COUNTOF_METHODDEF \
- {"countOf", (PyCFunction)(void(*)(void))_operator_countOf, METH_FASTCALL, _operator_countOf__doc__},
+ {"countOf", (PyCFunction)(void(*)(void))_operator_countOf, METH_FASTCALL, _operator_countOf__doc__},
static Py_ssize_t
_operator_countOf_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -973,11 +973,11 @@ _operator_countOf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *b;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("countOf", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("countOf", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
_return_value = _operator_countOf_impl(module, a, b);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -995,7 +995,7 @@ PyDoc_STRVAR(_operator_getitem__doc__,
"Same as a[b].");
#define _OPERATOR_GETITEM_METHODDEF \
- {"getitem", (PyCFunction)(void(*)(void))_operator_getitem, METH_FASTCALL, _operator_getitem__doc__},
+ {"getitem", (PyCFunction)(void(*)(void))_operator_getitem, METH_FASTCALL, _operator_getitem__doc__},
static PyObject *
_operator_getitem_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1007,11 +1007,11 @@ _operator_getitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("getitem", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("getitem", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_getitem_impl(module, a, b);
exit:
@@ -1025,7 +1025,7 @@ PyDoc_STRVAR(_operator_setitem__doc__,
"Same as a[b] = c.");
#define _OPERATOR_SETITEM_METHODDEF \
- {"setitem", (PyCFunction)(void(*)(void))_operator_setitem, METH_FASTCALL, _operator_setitem__doc__},
+ {"setitem", (PyCFunction)(void(*)(void))_operator_setitem, METH_FASTCALL, _operator_setitem__doc__},
static PyObject *
_operator_setitem_impl(PyObject *module, PyObject *a, PyObject *b,
@@ -1039,12 +1039,12 @@ _operator_setitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *b;
PyObject *c;
- if (!_PyArg_CheckPositional("setitem", nargs, 3, 3)) {
+ if (!_PyArg_CheckPositional("setitem", nargs, 3, 3)) {
goto exit;
}
- a = args[0];
- b = args[1];
- c = args[2];
+ a = args[0];
+ b = args[1];
+ c = args[2];
return_value = _operator_setitem_impl(module, a, b, c);
exit:
@@ -1058,7 +1058,7 @@ PyDoc_STRVAR(_operator_delitem__doc__,
"Same as del a[b].");
#define _OPERATOR_DELITEM_METHODDEF \
- {"delitem", (PyCFunction)(void(*)(void))_operator_delitem, METH_FASTCALL, _operator_delitem__doc__},
+ {"delitem", (PyCFunction)(void(*)(void))_operator_delitem, METH_FASTCALL, _operator_delitem__doc__},
static PyObject *
_operator_delitem_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1070,11 +1070,11 @@ _operator_delitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("delitem", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("delitem", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_delitem_impl(module, a, b);
exit:
@@ -1088,7 +1088,7 @@ PyDoc_STRVAR(_operator_eq__doc__,
"Same as a == b.");
#define _OPERATOR_EQ_METHODDEF \
- {"eq", (PyCFunction)(void(*)(void))_operator_eq, METH_FASTCALL, _operator_eq__doc__},
+ {"eq", (PyCFunction)(void(*)(void))_operator_eq, METH_FASTCALL, _operator_eq__doc__},
static PyObject *
_operator_eq_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1100,11 +1100,11 @@ _operator_eq(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("eq", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("eq", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_eq_impl(module, a, b);
exit:
@@ -1118,7 +1118,7 @@ PyDoc_STRVAR(_operator_ne__doc__,
"Same as a != b.");
#define _OPERATOR_NE_METHODDEF \
- {"ne", (PyCFunction)(void(*)(void))_operator_ne, METH_FASTCALL, _operator_ne__doc__},
+ {"ne", (PyCFunction)(void(*)(void))_operator_ne, METH_FASTCALL, _operator_ne__doc__},
static PyObject *
_operator_ne_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1130,11 +1130,11 @@ _operator_ne(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("ne", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ne", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_ne_impl(module, a, b);
exit:
@@ -1148,7 +1148,7 @@ PyDoc_STRVAR(_operator_lt__doc__,
"Same as a < b.");
#define _OPERATOR_LT_METHODDEF \
- {"lt", (PyCFunction)(void(*)(void))_operator_lt, METH_FASTCALL, _operator_lt__doc__},
+ {"lt", (PyCFunction)(void(*)(void))_operator_lt, METH_FASTCALL, _operator_lt__doc__},
static PyObject *
_operator_lt_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1160,11 +1160,11 @@ _operator_lt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("lt", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("lt", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_lt_impl(module, a, b);
exit:
@@ -1178,7 +1178,7 @@ PyDoc_STRVAR(_operator_le__doc__,
"Same as a <= b.");
#define _OPERATOR_LE_METHODDEF \
- {"le", (PyCFunction)(void(*)(void))_operator_le, METH_FASTCALL, _operator_le__doc__},
+ {"le", (PyCFunction)(void(*)(void))_operator_le, METH_FASTCALL, _operator_le__doc__},
static PyObject *
_operator_le_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1190,11 +1190,11 @@ _operator_le(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("le", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("le", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_le_impl(module, a, b);
exit:
@@ -1208,7 +1208,7 @@ PyDoc_STRVAR(_operator_gt__doc__,
"Same as a > b.");
#define _OPERATOR_GT_METHODDEF \
- {"gt", (PyCFunction)(void(*)(void))_operator_gt, METH_FASTCALL, _operator_gt__doc__},
+ {"gt", (PyCFunction)(void(*)(void))_operator_gt, METH_FASTCALL, _operator_gt__doc__},
static PyObject *
_operator_gt_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1220,11 +1220,11 @@ _operator_gt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("gt", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("gt", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_gt_impl(module, a, b);
exit:
@@ -1238,7 +1238,7 @@ PyDoc_STRVAR(_operator_ge__doc__,
"Same as a >= b.");
#define _OPERATOR_GE_METHODDEF \
- {"ge", (PyCFunction)(void(*)(void))_operator_ge, METH_FASTCALL, _operator_ge__doc__},
+ {"ge", (PyCFunction)(void(*)(void))_operator_ge, METH_FASTCALL, _operator_ge__doc__},
static PyObject *
_operator_ge_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1250,11 +1250,11 @@ _operator_ge(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("ge", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ge", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_ge_impl(module, a, b);
exit:
@@ -1268,7 +1268,7 @@ PyDoc_STRVAR(_operator_pow__doc__,
"Same as a ** b.");
#define _OPERATOR_POW_METHODDEF \
- {"pow", (PyCFunction)(void(*)(void))_operator_pow, METH_FASTCALL, _operator_pow__doc__},
+ {"pow", (PyCFunction)(void(*)(void))_operator_pow, METH_FASTCALL, _operator_pow__doc__},
static PyObject *
_operator_pow_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1280,11 +1280,11 @@ _operator_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("pow", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("pow", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_pow_impl(module, a, b);
exit:
@@ -1298,7 +1298,7 @@ PyDoc_STRVAR(_operator_ipow__doc__,
"Same as a **= b.");
#define _OPERATOR_IPOW_METHODDEF \
- {"ipow", (PyCFunction)(void(*)(void))_operator_ipow, METH_FASTCALL, _operator_ipow__doc__},
+ {"ipow", (PyCFunction)(void(*)(void))_operator_ipow, METH_FASTCALL, _operator_ipow__doc__},
static PyObject *
_operator_ipow_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1310,11 +1310,11 @@ _operator_ipow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("ipow", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ipow", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_ipow_impl(module, a, b);
exit:
@@ -1337,7 +1337,7 @@ PyDoc_STRVAR(_operator_is___doc__,
"Same as a is b.");
#define _OPERATOR_IS__METHODDEF \
- {"is_", (PyCFunction)(void(*)(void))_operator_is_, METH_FASTCALL, _operator_is___doc__},
+ {"is_", (PyCFunction)(void(*)(void))_operator_is_, METH_FASTCALL, _operator_is___doc__},
static PyObject *
_operator_is__impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1349,11 +1349,11 @@ _operator_is_(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("is_", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("is_", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_is__impl(module, a, b);
exit:
@@ -1367,7 +1367,7 @@ PyDoc_STRVAR(_operator_is_not__doc__,
"Same as a is not b.");
#define _OPERATOR_IS_NOT_METHODDEF \
- {"is_not", (PyCFunction)(void(*)(void))_operator_is_not, METH_FASTCALL, _operator_is_not__doc__},
+ {"is_not", (PyCFunction)(void(*)(void))_operator_is_not, METH_FASTCALL, _operator_is_not__doc__},
static PyObject *
_operator_is_not_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1379,11 +1379,11 @@ _operator_is_not(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("is_not", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("is_not", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator_is_not_impl(module, a, b);
exit:
@@ -1403,7 +1403,7 @@ PyDoc_STRVAR(_operator_length_hint__doc__,
"The result will be an integer >= 0.");
#define _OPERATOR_LENGTH_HINT_METHODDEF \
- {"length_hint", (PyCFunction)(void(*)(void))_operator_length_hint, METH_FASTCALL, _operator_length_hint__doc__},
+ {"length_hint", (PyCFunction)(void(*)(void))_operator_length_hint, METH_FASTCALL, _operator_length_hint__doc__},
static Py_ssize_t
_operator_length_hint_impl(PyObject *module, PyObject *obj,
@@ -1417,31 +1417,31 @@ _operator_length_hint(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t default_value = 0;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("length_hint", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("length_hint", nargs, 1, 2)) {
goto exit;
}
- obj = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- default_value = ival;
- }
-skip_optional:
+ obj = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ default_value = ival;
+ }
+skip_optional:
_return_value = _operator_length_hint_impl(module, obj, default_value);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -1469,7 +1469,7 @@ PyDoc_STRVAR(_operator__compare_digest__doc__,
"types and lengths of a and b--but not their values.");
#define _OPERATOR__COMPARE_DIGEST_METHODDEF \
- {"_compare_digest", (PyCFunction)(void(*)(void))_operator__compare_digest, METH_FASTCALL, _operator__compare_digest__doc__},
+ {"_compare_digest", (PyCFunction)(void(*)(void))_operator__compare_digest, METH_FASTCALL, _operator__compare_digest__doc__},
static PyObject *
_operator__compare_digest_impl(PyObject *module, PyObject *a, PyObject *b);
@@ -1481,14 +1481,14 @@ _operator__compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t na
PyObject *a;
PyObject *b;
- if (!_PyArg_CheckPositional("_compare_digest", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("_compare_digest", nargs, 2, 2)) {
goto exit;
}
- a = args[0];
- b = args[1];
+ a = args[0];
+ b = args[1];
return_value = _operator__compare_digest_impl(module, a, b);
exit:
return return_value;
}
-/*[clinic end generated code: output=ed2bc172e42320d8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ed2bc172e42320d8 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_pickle.c.h b/contrib/tools/python3/src/Modules/clinic/_pickle.c.h
index 715be653a3..136524b6a7 100644
--- a/contrib/tools/python3/src/Modules/clinic/_pickle.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_pickle.c.h
@@ -63,15 +63,15 @@ exit:
}
PyDoc_STRVAR(_pickle_Pickler___init____doc__,
-"Pickler(file, protocol=None, fix_imports=True, buffer_callback=None)\n"
+"Pickler(file, protocol=None, fix_imports=True, buffer_callback=None)\n"
"--\n"
"\n"
"This takes a binary file for writing a pickle data stream.\n"
"\n"
"The optional *protocol* argument tells the pickler to use the given\n"
-"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
-"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
-"with previous versions.\n"
+"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
+"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
+"with previous versions.\n"
"\n"
"Specifying a negative protocol version selects the highest protocol\n"
"version supported. The higher the protocol used, the more recent the\n"
@@ -84,65 +84,65 @@ PyDoc_STRVAR(_pickle_Pickler___init____doc__,
"\n"
"If *fix_imports* is True and protocol is less than 3, pickle will try\n"
"to map the new Python 3 names to the old module names used in Python\n"
-"2, so that the pickle data stream is readable with Python 2.\n"
-"\n"
-"If *buffer_callback* is None (the default), buffer views are\n"
-"serialized into *file* as part of the pickle stream.\n"
-"\n"
-"If *buffer_callback* is not None, then it can be called any number\n"
-"of times with a buffer view. If the callback returns a false value\n"
-"(such as None), the given buffer is out-of-band; otherwise the\n"
-"buffer is serialized in-band, i.e. inside the pickle stream.\n"
-"\n"
-"It is an error if *buffer_callback* is not None and *protocol*\n"
-"is None or smaller than 5.");
+"2, so that the pickle data stream is readable with Python 2.\n"
+"\n"
+"If *buffer_callback* is None (the default), buffer views are\n"
+"serialized into *file* as part of the pickle stream.\n"
+"\n"
+"If *buffer_callback* is not None, then it can be called any number\n"
+"of times with a buffer view. If the callback returns a false value\n"
+"(such as None), the given buffer is out-of-band; otherwise the\n"
+"buffer is serialized in-band, i.e. inside the pickle stream.\n"
+"\n"
+"It is an error if *buffer_callback* is not None and *protocol*\n"
+"is None or smaller than 5.");
static int
_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,
- PyObject *protocol, int fix_imports,
- PyObject *buffer_callback);
+ PyObject *protocol, int fix_imports,
+ PyObject *buffer_callback);
static int
_pickle_Pickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
- static const char * const _keywords[] = {"file", "protocol", "fix_imports", "buffer_callback", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "Pickler", 0};
- PyObject *argsbuf[4];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static const char * const _keywords[] = {"file", "protocol", "fix_imports", "buffer_callback", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "Pickler", 0};
+ PyObject *argsbuf[4];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *file;
- PyObject *protocol = Py_None;
+ PyObject *protocol = Py_None;
int fix_imports = 1;
- PyObject *buffer_callback = Py_None;
+ PyObject *buffer_callback = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- file = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[1]) {
- protocol = fastargs[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[2]) {
- fix_imports = PyObject_IsTrue(fastargs[2]);
- if (fix_imports < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- buffer_callback = fastargs[3];
-skip_optional_pos:
- return_value = _pickle_Pickler___init___impl((PicklerObject *)self, file, protocol, fix_imports, buffer_callback);
+ file = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[1]) {
+ protocol = fastargs[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[2]) {
+ fix_imports = PyObject_IsTrue(fastargs[2]);
+ if (fix_imports < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ buffer_callback = fastargs[3];
+skip_optional_pos:
+ return_value = _pickle_Pickler___init___impl((PicklerObject *)self, file, protocol, fix_imports, buffer_callback);
exit:
return return_value;
@@ -238,7 +238,7 @@ PyDoc_STRVAR(_pickle_Unpickler_find_class__doc__,
"needed. Both arguments passed are str objects.");
#define _PICKLE_UNPICKLER_FIND_CLASS_METHODDEF \
- {"find_class", (PyCFunction)(void(*)(void))_pickle_Unpickler_find_class, METH_FASTCALL, _pickle_Unpickler_find_class__doc__},
+ {"find_class", (PyCFunction)(void(*)(void))_pickle_Unpickler_find_class, METH_FASTCALL, _pickle_Unpickler_find_class__doc__},
static PyObject *
_pickle_Unpickler_find_class_impl(UnpicklerObject *self,
@@ -252,11 +252,11 @@ _pickle_Unpickler_find_class(UnpicklerObject *self, PyObject *const *args, Py_ss
PyObject *module_name;
PyObject *global_name;
- if (!_PyArg_CheckPositional("find_class", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("find_class", nargs, 2, 2)) {
goto exit;
}
- module_name = args[0];
- global_name = args[1];
+ module_name = args[0];
+ global_name = args[1];
return_value = _pickle_Unpickler_find_class_impl(self, module_name, global_name);
exit:
@@ -292,8 +292,8 @@ exit:
}
PyDoc_STRVAR(_pickle_Unpickler___init____doc__,
-"Unpickler(file, *, fix_imports=True, encoding=\'ASCII\', errors=\'strict\',\n"
-" buffers=())\n"
+"Unpickler(file, *, fix_imports=True, encoding=\'ASCII\', errors=\'strict\',\n"
+" buffers=())\n"
"--\n"
"\n"
"This takes a binary file for reading a pickle data stream.\n"
@@ -320,80 +320,80 @@ PyDoc_STRVAR(_pickle_Unpickler___init____doc__,
static int
_pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file,
int fix_imports, const char *encoding,
- const char *errors, PyObject *buffers);
+ const char *errors, PyObject *buffers);
static int
_pickle_Unpickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
- static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "Unpickler", 0};
- PyObject *argsbuf[5];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "Unpickler", 0};
+ PyObject *argsbuf[5];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *file;
int fix_imports = 1;
const char *encoding = "ASCII";
const char *errors = "strict";
- PyObject *buffers = NULL;
+ PyObject *buffers = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- file = fastargs[0];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (fastargs[1]) {
- fix_imports = PyObject_IsTrue(fastargs[1]);
- if (fix_imports < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[2]) {
- if (!PyUnicode_Check(fastargs[2])) {
- _PyArg_BadArgument("Unpickler", "argument 'encoding'", "str", fastargs[2]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(fastargs[2], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (fastargs[3]) {
- if (!PyUnicode_Check(fastargs[3])) {
- _PyArg_BadArgument("Unpickler", "argument 'errors'", "str", fastargs[3]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(fastargs[3], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- buffers = fastargs[4];
-skip_optional_kwonly:
- return_value = _pickle_Unpickler___init___impl((UnpicklerObject *)self, file, fix_imports, encoding, errors, buffers);
+ file = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (fastargs[1]) {
+ fix_imports = PyObject_IsTrue(fastargs[1]);
+ if (fix_imports < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[2]) {
+ if (!PyUnicode_Check(fastargs[2])) {
+ _PyArg_BadArgument("Unpickler", "argument 'encoding'", "str", fastargs[2]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(fastargs[2], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (fastargs[3]) {
+ if (!PyUnicode_Check(fastargs[3])) {
+ _PyArg_BadArgument("Unpickler", "argument 'errors'", "str", fastargs[3]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(fastargs[3], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ buffers = fastargs[4];
+skip_optional_kwonly:
+ return_value = _pickle_Unpickler___init___impl((UnpicklerObject *)self, file, fix_imports, encoding, errors, buffers);
exit:
return return_value;
@@ -454,8 +454,8 @@ _pickle_UnpicklerMemoProxy___reduce__(UnpicklerMemoProxyObject *self, PyObject *
}
PyDoc_STRVAR(_pickle_dump__doc__,
-"dump($module, /, obj, file, protocol=None, *, fix_imports=True,\n"
-" buffer_callback=None)\n"
+"dump($module, /, obj, file, protocol=None, *, fix_imports=True,\n"
+" buffer_callback=None)\n"
"--\n"
"\n"
"Write a pickled representation of obj to the open file object file.\n"
@@ -464,9 +464,9 @@ PyDoc_STRVAR(_pickle_dump__doc__,
"be more efficient.\n"
"\n"
"The optional *protocol* argument tells the pickler to use the given\n"
-"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
-"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
-"with previous versions.\n"
+"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
+"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
+"with previous versions.\n"
"\n"
"Specifying a negative protocol version selects the highest protocol\n"
"version supported. The higher the protocol used, the more recent the\n"
@@ -479,81 +479,81 @@ PyDoc_STRVAR(_pickle_dump__doc__,
"\n"
"If *fix_imports* is True and protocol is less than 3, pickle will try\n"
"to map the new Python 3 names to the old module names used in Python\n"
-"2, so that the pickle data stream is readable with Python 2.\n"
-"\n"
-"If *buffer_callback* is None (the default), buffer views are serialized\n"
-"into *file* as part of the pickle stream. It is an error if\n"
-"*buffer_callback* is not None and *protocol* is None or smaller than 5.");
+"2, so that the pickle data stream is readable with Python 2.\n"
+"\n"
+"If *buffer_callback* is None (the default), buffer views are serialized\n"
+"into *file* as part of the pickle stream. It is an error if\n"
+"*buffer_callback* is not None and *protocol* is None or smaller than 5.");
#define _PICKLE_DUMP_METHODDEF \
- {"dump", (PyCFunction)(void(*)(void))_pickle_dump, METH_FASTCALL|METH_KEYWORDS, _pickle_dump__doc__},
+ {"dump", (PyCFunction)(void(*)(void))_pickle_dump, METH_FASTCALL|METH_KEYWORDS, _pickle_dump__doc__},
static PyObject *
_pickle_dump_impl(PyObject *module, PyObject *obj, PyObject *file,
- PyObject *protocol, int fix_imports,
- PyObject *buffer_callback);
+ PyObject *protocol, int fix_imports,
+ PyObject *buffer_callback);
static PyObject *
_pickle_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"obj", "file", "protocol", "fix_imports", "buffer_callback", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "dump", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static const char * const _keywords[] = {"obj", "file", "protocol", "fix_imports", "buffer_callback", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "dump", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
PyObject *obj;
PyObject *file;
- PyObject *protocol = Py_None;
+ PyObject *protocol = Py_None;
int fix_imports = 1;
- PyObject *buffer_callback = Py_None;
+ PyObject *buffer_callback = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- obj = args[0];
- file = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- protocol = args[2];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[3]) {
- fix_imports = PyObject_IsTrue(args[3]);
- if (fix_imports < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- buffer_callback = args[4];
-skip_optional_kwonly:
- return_value = _pickle_dump_impl(module, obj, file, protocol, fix_imports, buffer_callback);
+ obj = args[0];
+ file = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ protocol = args[2];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[3]) {
+ fix_imports = PyObject_IsTrue(args[3]);
+ if (fix_imports < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ buffer_callback = args[4];
+skip_optional_kwonly:
+ return_value = _pickle_dump_impl(module, obj, file, protocol, fix_imports, buffer_callback);
exit:
return return_value;
}
PyDoc_STRVAR(_pickle_dumps__doc__,
-"dumps($module, /, obj, protocol=None, *, fix_imports=True,\n"
-" buffer_callback=None)\n"
+"dumps($module, /, obj, protocol=None, *, fix_imports=True,\n"
+" buffer_callback=None)\n"
"--\n"
"\n"
"Return the pickled representation of the object as a bytes object.\n"
"\n"
"The optional *protocol* argument tells the pickler to use the given\n"
-"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
-"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
-"with previous versions.\n"
+"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
+"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
+"with previous versions.\n"
"\n"
"Specifying a negative protocol version selects the highest protocol\n"
"version supported. The higher the protocol used, the more recent the\n"
@@ -561,62 +561,62 @@ PyDoc_STRVAR(_pickle_dumps__doc__,
"\n"
"If *fix_imports* is True and *protocol* is less than 3, pickle will\n"
"try to map the new Python 3 names to the old module names used in\n"
-"Python 2, so that the pickle data stream is readable with Python 2.\n"
-"\n"
-"If *buffer_callback* is None (the default), buffer views are serialized\n"
-"into *file* as part of the pickle stream. It is an error if\n"
-"*buffer_callback* is not None and *protocol* is None or smaller than 5.");
+"Python 2, so that the pickle data stream is readable with Python 2.\n"
+"\n"
+"If *buffer_callback* is None (the default), buffer views are serialized\n"
+"into *file* as part of the pickle stream. It is an error if\n"
+"*buffer_callback* is not None and *protocol* is None or smaller than 5.");
#define _PICKLE_DUMPS_METHODDEF \
- {"dumps", (PyCFunction)(void(*)(void))_pickle_dumps, METH_FASTCALL|METH_KEYWORDS, _pickle_dumps__doc__},
+ {"dumps", (PyCFunction)(void(*)(void))_pickle_dumps, METH_FASTCALL|METH_KEYWORDS, _pickle_dumps__doc__},
static PyObject *
_pickle_dumps_impl(PyObject *module, PyObject *obj, PyObject *protocol,
- int fix_imports, PyObject *buffer_callback);
+ int fix_imports, PyObject *buffer_callback);
static PyObject *
_pickle_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"obj", "protocol", "fix_imports", "buffer_callback", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "dumps", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static const char * const _keywords[] = {"obj", "protocol", "fix_imports", "buffer_callback", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "dumps", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *obj;
- PyObject *protocol = Py_None;
+ PyObject *protocol = Py_None;
int fix_imports = 1;
- PyObject *buffer_callback = Py_None;
+ PyObject *buffer_callback = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- obj = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- protocol = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- fix_imports = PyObject_IsTrue(args[2]);
- if (fix_imports < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- buffer_callback = args[3];
-skip_optional_kwonly:
- return_value = _pickle_dumps_impl(module, obj, protocol, fix_imports, buffer_callback);
+ obj = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ protocol = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ fix_imports = PyObject_IsTrue(args[2]);
+ if (fix_imports < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ buffer_callback = args[3];
+skip_optional_kwonly:
+ return_value = _pickle_dumps_impl(module, obj, protocol, fix_imports, buffer_callback);
exit:
return return_value;
@@ -624,7 +624,7 @@ exit:
PyDoc_STRVAR(_pickle_load__doc__,
"load($module, /, file, *, fix_imports=True, encoding=\'ASCII\',\n"
-" errors=\'strict\', buffers=())\n"
+" errors=\'strict\', buffers=())\n"
"--\n"
"\n"
"Read and return an object from the pickle data stored in a file.\n"
@@ -652,91 +652,91 @@ PyDoc_STRVAR(_pickle_load__doc__,
"string instances as bytes objects.");
#define _PICKLE_LOAD_METHODDEF \
- {"load", (PyCFunction)(void(*)(void))_pickle_load, METH_FASTCALL|METH_KEYWORDS, _pickle_load__doc__},
+ {"load", (PyCFunction)(void(*)(void))_pickle_load, METH_FASTCALL|METH_KEYWORDS, _pickle_load__doc__},
static PyObject *
_pickle_load_impl(PyObject *module, PyObject *file, int fix_imports,
- const char *encoding, const char *errors,
- PyObject *buffers);
+ const char *encoding, const char *errors,
+ PyObject *buffers);
static PyObject *
_pickle_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "load", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static const char * const _keywords[] = {"file", "fix_imports", "encoding", "errors", "buffers", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "load", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *file;
int fix_imports = 1;
const char *encoding = "ASCII";
const char *errors = "strict";
- PyObject *buffers = NULL;
+ PyObject *buffers = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- file = args[0];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[1]) {
- fix_imports = PyObject_IsTrue(args[1]);
- if (fix_imports < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[2]) {
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("load", "argument 'encoding'", "str", args[2]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[2], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- if (!PyUnicode_Check(args[3])) {
- _PyArg_BadArgument("load", "argument 'errors'", "str", args[3]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[3], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- buffers = args[4];
-skip_optional_kwonly:
- return_value = _pickle_load_impl(module, file, fix_imports, encoding, errors, buffers);
+ file = args[0];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[1]) {
+ fix_imports = PyObject_IsTrue(args[1]);
+ if (fix_imports < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[2]) {
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("load", "argument 'encoding'", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[2], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ if (!PyUnicode_Check(args[3])) {
+ _PyArg_BadArgument("load", "argument 'errors'", "str", args[3]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[3], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ buffers = args[4];
+skip_optional_kwonly:
+ return_value = _pickle_load_impl(module, file, fix_imports, encoding, errors, buffers);
exit:
return return_value;
}
PyDoc_STRVAR(_pickle_loads__doc__,
-"loads($module, data, /, *, fix_imports=True, encoding=\'ASCII\',\n"
-" errors=\'strict\', buffers=())\n"
+"loads($module, data, /, *, fix_imports=True, encoding=\'ASCII\',\n"
+" errors=\'strict\', buffers=())\n"
"--\n"
"\n"
"Read and return an object from the given pickle data.\n"
@@ -755,85 +755,85 @@ PyDoc_STRVAR(_pickle_loads__doc__,
"string instances as bytes objects.");
#define _PICKLE_LOADS_METHODDEF \
- {"loads", (PyCFunction)(void(*)(void))_pickle_loads, METH_FASTCALL|METH_KEYWORDS, _pickle_loads__doc__},
+ {"loads", (PyCFunction)(void(*)(void))_pickle_loads, METH_FASTCALL|METH_KEYWORDS, _pickle_loads__doc__},
static PyObject *
_pickle_loads_impl(PyObject *module, PyObject *data, int fix_imports,
- const char *encoding, const char *errors,
- PyObject *buffers);
+ const char *encoding, const char *errors,
+ PyObject *buffers);
static PyObject *
_pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "fix_imports", "encoding", "errors", "buffers", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "loads", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static const char * const _keywords[] = {"", "fix_imports", "encoding", "errors", "buffers", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "loads", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *data;
int fix_imports = 1;
const char *encoding = "ASCII";
const char *errors = "strict";
- PyObject *buffers = NULL;
+ PyObject *buffers = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- data = args[0];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[1]) {
- fix_imports = PyObject_IsTrue(args[1]);
- if (fix_imports < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[2]) {
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("loads", "argument 'encoding'", "str", args[2]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[2], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- if (!PyUnicode_Check(args[3])) {
- _PyArg_BadArgument("loads", "argument 'errors'", "str", args[3]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[3], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- buffers = args[4];
-skip_optional_kwonly:
- return_value = _pickle_loads_impl(module, data, fix_imports, encoding, errors, buffers);
+ data = args[0];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[1]) {
+ fix_imports = PyObject_IsTrue(args[1]);
+ if (fix_imports < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[2]) {
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("loads", "argument 'encoding'", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[2], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ if (!PyUnicode_Check(args[3])) {
+ _PyArg_BadArgument("loads", "argument 'errors'", "str", args[3]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[3], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ buffers = args[4];
+skip_optional_kwonly:
+ return_value = _pickle_loads_impl(module, data, fix_imports, encoding, errors, buffers);
exit:
return return_value;
}
-/*[clinic end generated code: output=324aad69644beda2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=324aad69644beda2 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_queuemodule.c.h b/contrib/tools/python3/src/Modules/clinic/_queuemodule.c.h
index d2179ccdaa..c25eacf08b 100644
--- a/contrib/tools/python3/src/Modules/clinic/_queuemodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_queuemodule.c.h
@@ -40,7 +40,7 @@ PyDoc_STRVAR(_queue_SimpleQueue_put__doc__,
"never blocks. They are provided for compatibility with the Queue class.");
#define _QUEUE_SIMPLEQUEUE_PUT_METHODDEF \
- {"put", (PyCFunction)(void(*)(void))_queue_SimpleQueue_put, METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_put__doc__},
+ {"put", (PyCFunction)(void(*)(void))_queue_SimpleQueue_put, METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_put__doc__},
static PyObject *
_queue_SimpleQueue_put_impl(simplequeueobject *self, PyObject *item,
@@ -51,32 +51,32 @@ _queue_SimpleQueue_put(simplequeueobject *self, PyObject *const *args, Py_ssize_
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"item", "block", "timeout", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "put", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "put", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *item;
int block = 1;
PyObject *timeout = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- item = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- block = PyObject_IsTrue(args[1]);
- if (block < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- timeout = args[2];
-skip_optional_pos:
+ item = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ block = PyObject_IsTrue(args[1]);
+ if (block < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ timeout = args[2];
+skip_optional_pos:
return_value = _queue_SimpleQueue_put_impl(self, item, block, timeout);
exit:
@@ -93,7 +93,7 @@ PyDoc_STRVAR(_queue_SimpleQueue_put_nowait__doc__,
"for compatibility with the Queue class.");
#define _QUEUE_SIMPLEQUEUE_PUT_NOWAIT_METHODDEF \
- {"put_nowait", (PyCFunction)(void(*)(void))_queue_SimpleQueue_put_nowait, METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_put_nowait__doc__},
+ {"put_nowait", (PyCFunction)(void(*)(void))_queue_SimpleQueue_put_nowait, METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_put_nowait__doc__},
static PyObject *
_queue_SimpleQueue_put_nowait_impl(simplequeueobject *self, PyObject *item);
@@ -103,15 +103,15 @@ _queue_SimpleQueue_put_nowait(simplequeueobject *self, PyObject *const *args, Py
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"item", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "put_nowait", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "put_nowait", 0};
+ PyObject *argsbuf[1];
PyObject *item;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- item = args[0];
+ item = args[0];
return_value = _queue_SimpleQueue_put_nowait_impl(self, item);
exit:
@@ -133,7 +133,7 @@ PyDoc_STRVAR(_queue_SimpleQueue_get__doc__,
"in that case).");
#define _QUEUE_SIMPLEQUEUE_GET_METHODDEF \
- {"get", (PyCFunction)(void(*)(void))_queue_SimpleQueue_get, METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_get__doc__},
+ {"get", (PyCFunction)(void(*)(void))_queue_SimpleQueue_get, METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_get__doc__},
static PyObject *
_queue_SimpleQueue_get_impl(simplequeueobject *self, int block,
@@ -144,30 +144,30 @@ _queue_SimpleQueue_get(simplequeueobject *self, PyObject *const *args, Py_ssize_
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"block", "timeout", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "get", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int block = 1;
PyObject *timeout = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- block = PyObject_IsTrue(args[0]);
- if (block < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- timeout = args[1];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ block = PyObject_IsTrue(args[0]);
+ if (block < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ timeout = args[1];
+skip_optional_pos:
return_value = _queue_SimpleQueue_get_impl(self, block, timeout);
exit:
@@ -250,4 +250,4 @@ _queue_SimpleQueue_qsize(simplequeueobject *self, PyObject *Py_UNUSED(ignored))
exit:
return return_value;
}
-/*[clinic end generated code: output=b4717e2974cbc909 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b4717e2974cbc909 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_randommodule.c.h b/contrib/tools/python3/src/Modules/clinic/_randommodule.c.h
index c598cc0053..a467811d93 100644
--- a/contrib/tools/python3/src/Modules/clinic/_randommodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_randommodule.c.h
@@ -1,117 +1,117 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(_random_Random_random__doc__,
-"random($self, /)\n"
-"--\n"
-"\n"
-"random() -> x in the interval [0, 1).");
-
-#define _RANDOM_RANDOM_RANDOM_METHODDEF \
- {"random", (PyCFunction)_random_Random_random, METH_NOARGS, _random_Random_random__doc__},
-
-static PyObject *
-_random_Random_random_impl(RandomObject *self);
-
-static PyObject *
-_random_Random_random(RandomObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _random_Random_random_impl(self);
-}
-
-PyDoc_STRVAR(_random_Random_seed__doc__,
-"seed($self, n=None, /)\n"
-"--\n"
-"\n"
-"seed([n]) -> None.\n"
-"\n"
-"Defaults to use urandom and falls back to a combination\n"
-"of the current time and the process identifier.");
-
-#define _RANDOM_RANDOM_SEED_METHODDEF \
- {"seed", (PyCFunction)(void(*)(void))_random_Random_seed, METH_FASTCALL, _random_Random_seed__doc__},
-
-static PyObject *
-_random_Random_seed_impl(RandomObject *self, PyObject *n);
-
-static PyObject *
-_random_Random_seed(RandomObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *n = Py_None;
-
- if (!_PyArg_CheckPositional("seed", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- n = args[0];
-skip_optional:
- return_value = _random_Random_seed_impl(self, n);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_random_Random_getstate__doc__,
-"getstate($self, /)\n"
-"--\n"
-"\n"
-"getstate() -> tuple containing the current state.");
-
-#define _RANDOM_RANDOM_GETSTATE_METHODDEF \
- {"getstate", (PyCFunction)_random_Random_getstate, METH_NOARGS, _random_Random_getstate__doc__},
-
-static PyObject *
-_random_Random_getstate_impl(RandomObject *self);
-
-static PyObject *
-_random_Random_getstate(RandomObject *self, PyObject *Py_UNUSED(ignored))
-{
- return _random_Random_getstate_impl(self);
-}
-
-PyDoc_STRVAR(_random_Random_setstate__doc__,
-"setstate($self, state, /)\n"
-"--\n"
-"\n"
-"setstate(state) -> None. Restores generator state.");
-
-#define _RANDOM_RANDOM_SETSTATE_METHODDEF \
- {"setstate", (PyCFunction)_random_Random_setstate, METH_O, _random_Random_setstate__doc__},
-
-PyDoc_STRVAR(_random_Random_getrandbits__doc__,
-"getrandbits($self, k, /)\n"
-"--\n"
-"\n"
-"getrandbits(k) -> x. Generates an int with k random bits.");
-
-#define _RANDOM_RANDOM_GETRANDBITS_METHODDEF \
- {"getrandbits", (PyCFunction)_random_Random_getrandbits, METH_O, _random_Random_getrandbits__doc__},
-
-static PyObject *
-_random_Random_getrandbits_impl(RandomObject *self, int k);
-
-static PyObject *
-_random_Random_getrandbits(RandomObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int k;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- k = _PyLong_AsInt(arg);
- if (k == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = _random_Random_getrandbits_impl(self, k);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=a7feb0c9c8d1b627 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_random_Random_random__doc__,
+"random($self, /)\n"
+"--\n"
+"\n"
+"random() -> x in the interval [0, 1).");
+
+#define _RANDOM_RANDOM_RANDOM_METHODDEF \
+ {"random", (PyCFunction)_random_Random_random, METH_NOARGS, _random_Random_random__doc__},
+
+static PyObject *
+_random_Random_random_impl(RandomObject *self);
+
+static PyObject *
+_random_Random_random(RandomObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _random_Random_random_impl(self);
+}
+
+PyDoc_STRVAR(_random_Random_seed__doc__,
+"seed($self, n=None, /)\n"
+"--\n"
+"\n"
+"seed([n]) -> None.\n"
+"\n"
+"Defaults to use urandom and falls back to a combination\n"
+"of the current time and the process identifier.");
+
+#define _RANDOM_RANDOM_SEED_METHODDEF \
+ {"seed", (PyCFunction)(void(*)(void))_random_Random_seed, METH_FASTCALL, _random_Random_seed__doc__},
+
+static PyObject *
+_random_Random_seed_impl(RandomObject *self, PyObject *n);
+
+static PyObject *
+_random_Random_seed(RandomObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *n = Py_None;
+
+ if (!_PyArg_CheckPositional("seed", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ n = args[0];
+skip_optional:
+ return_value = _random_Random_seed_impl(self, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_random_Random_getstate__doc__,
+"getstate($self, /)\n"
+"--\n"
+"\n"
+"getstate() -> tuple containing the current state.");
+
+#define _RANDOM_RANDOM_GETSTATE_METHODDEF \
+ {"getstate", (PyCFunction)_random_Random_getstate, METH_NOARGS, _random_Random_getstate__doc__},
+
+static PyObject *
+_random_Random_getstate_impl(RandomObject *self);
+
+static PyObject *
+_random_Random_getstate(RandomObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return _random_Random_getstate_impl(self);
+}
+
+PyDoc_STRVAR(_random_Random_setstate__doc__,
+"setstate($self, state, /)\n"
+"--\n"
+"\n"
+"setstate(state) -> None. Restores generator state.");
+
+#define _RANDOM_RANDOM_SETSTATE_METHODDEF \
+ {"setstate", (PyCFunction)_random_Random_setstate, METH_O, _random_Random_setstate__doc__},
+
+PyDoc_STRVAR(_random_Random_getrandbits__doc__,
+"getrandbits($self, k, /)\n"
+"--\n"
+"\n"
+"getrandbits(k) -> x. Generates an int with k random bits.");
+
+#define _RANDOM_RANDOM_GETRANDBITS_METHODDEF \
+ {"getrandbits", (PyCFunction)_random_Random_getrandbits, METH_O, _random_Random_getrandbits__doc__},
+
+static PyObject *
+_random_Random_getrandbits_impl(RandomObject *self, int k);
+
+static PyObject *
+_random_Random_getrandbits(RandomObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int k;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ k = _PyLong_AsInt(arg);
+ if (k == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = _random_Random_getrandbits_impl(self, k);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=a7feb0c9c8d1b627 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_sre.c.h b/contrib/tools/python3/src/Modules/clinic/_sre.c.h
index d8bd75e2f4..d398a8504b 100644
--- a/contrib/tools/python3/src/Modules/clinic/_sre.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_sre.c.h
@@ -47,15 +47,15 @@ _sre_ascii_iscased(PyObject *module, PyObject *arg)
int character;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ character = _PyLong_AsInt(arg);
+ if (character == -1 && PyErr_Occurred()) {
goto exit;
}
- character = _PyLong_AsInt(arg);
- if (character == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = _sre_ascii_iscased_impl(module, character);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -84,15 +84,15 @@ _sre_unicode_iscased(PyObject *module, PyObject *arg)
int character;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ character = _PyLong_AsInt(arg);
+ if (character == -1 && PyErr_Occurred()) {
goto exit;
}
- character = _PyLong_AsInt(arg);
- if (character == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = _sre_unicode_iscased_impl(module, character);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -121,15 +121,15 @@ _sre_ascii_tolower(PyObject *module, PyObject *arg)
int character;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ character = _PyLong_AsInt(arg);
+ if (character == -1 && PyErr_Occurred()) {
goto exit;
}
- character = _PyLong_AsInt(arg);
- if (character == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = _sre_ascii_tolower_impl(module, character);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -158,15 +158,15 @@ _sre_unicode_tolower(PyObject *module, PyObject *arg)
int character;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ character = _PyLong_AsInt(arg);
+ if (character == -1 && PyErr_Occurred()) {
goto exit;
}
- character = _PyLong_AsInt(arg);
- if (character == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = _sre_unicode_tolower_impl(module, character);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -184,7 +184,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_match__doc__,
"Matches zero or more characters at the beginning of the string.");
#define _SRE_SRE_PATTERN_MATCH_METHODDEF \
- {"match", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_match, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_match__doc__},
+ {"match", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_match, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_match__doc__},
static PyObject *
_sre_SRE_Pattern_match_impl(PatternObject *self, PyObject *string,
@@ -195,61 +195,61 @@ _sre_SRE_Pattern_match(PatternObject *self, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "match", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "match", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *string;
Py_ssize_t pos = 0;
Py_ssize_t endpos = PY_SSIZE_T_MAX;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- string = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- endpos = ival;
- }
-skip_optional_pos:
+ string = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ endpos = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_match_impl(self, string, pos, endpos);
exit:
@@ -263,7 +263,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_fullmatch__doc__,
"Matches against all of the string.");
#define _SRE_SRE_PATTERN_FULLMATCH_METHODDEF \
- {"fullmatch", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_fullmatch, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_fullmatch__doc__},
+ {"fullmatch", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_fullmatch, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_fullmatch__doc__},
static PyObject *
_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyObject *string,
@@ -274,61 +274,61 @@ _sre_SRE_Pattern_fullmatch(PatternObject *self, PyObject *const *args, Py_ssize_
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fullmatch", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "fullmatch", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *string;
Py_ssize_t pos = 0;
Py_ssize_t endpos = PY_SSIZE_T_MAX;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ string = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- string = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- endpos = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ endpos = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_fullmatch_impl(self, string, pos, endpos);
exit:
@@ -344,7 +344,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_search__doc__,
"Return None if no position in the string matches.");
#define _SRE_SRE_PATTERN_SEARCH_METHODDEF \
- {"search", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_search, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_search__doc__},
+ {"search", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_search, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_search__doc__},
static PyObject *
_sre_SRE_Pattern_search_impl(PatternObject *self, PyObject *string,
@@ -355,61 +355,61 @@ _sre_SRE_Pattern_search(PatternObject *self, PyObject *const *args, Py_ssize_t n
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "search", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "search", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *string;
Py_ssize_t pos = 0;
Py_ssize_t endpos = PY_SSIZE_T_MAX;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ string = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- string = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- endpos = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ endpos = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_search_impl(self, string, pos, endpos);
exit:
@@ -423,7 +423,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_findall__doc__,
"Return a list of all non-overlapping matches of pattern in string.");
#define _SRE_SRE_PATTERN_FINDALL_METHODDEF \
- {"findall", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_findall, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_findall__doc__},
+ {"findall", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_findall, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_findall__doc__},
static PyObject *
_sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject *string,
@@ -434,61 +434,61 @@ _sre_SRE_Pattern_findall(PatternObject *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *string;
Py_ssize_t pos = 0;
Py_ssize_t endpos = PY_SSIZE_T_MAX;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- string = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- endpos = ival;
- }
-skip_optional_pos:
+ string = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ endpos = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_findall_impl(self, string, pos, endpos);
exit:
@@ -504,7 +504,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_finditer__doc__,
"For each match, the iterator returns a match object.");
#define _SRE_SRE_PATTERN_FINDITER_METHODDEF \
- {"finditer", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_finditer, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_finditer__doc__},
+ {"finditer", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_finditer, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_finditer__doc__},
static PyObject *
_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyObject *string,
@@ -515,61 +515,61 @@ _sre_SRE_Pattern_finditer(PatternObject *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "finditer", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "finditer", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *string;
Py_ssize_t pos = 0;
Py_ssize_t endpos = PY_SSIZE_T_MAX;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ string = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- string = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- endpos = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ endpos = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_finditer_impl(self, string, pos, endpos);
exit:
@@ -582,7 +582,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_scanner__doc__,
"\n");
#define _SRE_SRE_PATTERN_SCANNER_METHODDEF \
- {"scanner", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_scanner, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_scanner__doc__},
+ {"scanner", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_scanner, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_scanner__doc__},
static PyObject *
_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyObject *string,
@@ -593,61 +593,61 @@ _sre_SRE_Pattern_scanner(PatternObject *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"string", "pos", "endpos", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "scanner", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "scanner", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *string;
Py_ssize_t pos = 0;
Py_ssize_t endpos = PY_SSIZE_T_MAX;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ string = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ pos = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- string = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- pos = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- endpos = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ endpos = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_scanner_impl(self, string, pos, endpos);
exit:
@@ -661,7 +661,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_split__doc__,
"Split string by the occurrences of pattern.");
#define _SRE_SRE_PATTERN_SPLIT_METHODDEF \
- {"split", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_split, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_split__doc__},
+ {"split", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_split, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_split__doc__},
static PyObject *
_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string,
@@ -672,38 +672,38 @@ _sre_SRE_Pattern_split(PatternObject *self, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"string", "maxsplit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *string;
Py_ssize_t maxsplit = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- string = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- maxsplit = ival;
- }
-skip_optional_pos:
+ string = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ maxsplit = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_split_impl(self, string, maxsplit);
exit:
@@ -717,7 +717,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_sub__doc__,
"Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.");
#define _SRE_SRE_PATTERN_SUB_METHODDEF \
- {"sub", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_sub, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_sub__doc__},
+ {"sub", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_sub, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_sub__doc__},
static PyObject *
_sre_SRE_Pattern_sub_impl(PatternObject *self, PyObject *repl,
@@ -728,40 +728,40 @@ _sre_SRE_Pattern_sub(PatternObject *self, PyObject *const *args, Py_ssize_t narg
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"repl", "string", "count", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sub", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "sub", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
PyObject *repl;
PyObject *string;
Py_ssize_t count = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- repl = args[0];
- string = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
-skip_optional_pos:
+ repl = args[0];
+ string = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_sub_impl(self, repl, string, count);
exit:
@@ -775,7 +775,7 @@ PyDoc_STRVAR(_sre_SRE_Pattern_subn__doc__,
"Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl.");
#define _SRE_SRE_PATTERN_SUBN_METHODDEF \
- {"subn", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_subn, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_subn__doc__},
+ {"subn", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_subn, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_subn__doc__},
static PyObject *
_sre_SRE_Pattern_subn_impl(PatternObject *self, PyObject *repl,
@@ -786,40 +786,40 @@ _sre_SRE_Pattern_subn(PatternObject *self, PyObject *const *args, Py_ssize_t nar
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"repl", "string", "count", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "subn", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "subn", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
PyObject *repl;
PyObject *string;
Py_ssize_t count = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ repl = args[0];
+ string = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- repl = args[0];
- string = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+skip_optional_pos:
return_value = _sre_SRE_Pattern_subn_impl(self, repl, string, count);
exit:
@@ -858,7 +858,7 @@ PyDoc_STRVAR(_sre_compile__doc__,
"\n");
#define _SRE_COMPILE_METHODDEF \
- {"compile", (PyCFunction)(void(*)(void))_sre_compile, METH_FASTCALL|METH_KEYWORDS, _sre_compile__doc__},
+ {"compile", (PyCFunction)(void(*)(void))_sre_compile, METH_FASTCALL|METH_KEYWORDS, _sre_compile__doc__},
static PyObject *
_sre_compile_impl(PyObject *module, PyObject *pattern, int flags,
@@ -870,8 +870,8 @@ _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0};
- PyObject *argsbuf[6];
+ static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0};
+ PyObject *argsbuf[6];
PyObject *pattern;
int flags;
PyObject *code;
@@ -879,52 +879,52 @@ _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
PyObject *groupindex;
PyObject *indexgroup;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 6, 6, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 6, 6, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ pattern = args[0];
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[1]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!PyList_Check(args[2])) {
+ _PyArg_BadArgument("compile", "argument 'code'", "list", args[2]);
goto exit;
}
- pattern = args[0];
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[1]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!PyList_Check(args[2])) {
- _PyArg_BadArgument("compile", "argument 'code'", "list", args[2]);
- goto exit;
- }
- code = args[2];
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[3]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- groups = ival;
- }
- if (!PyDict_Check(args[4])) {
- _PyArg_BadArgument("compile", "argument 'groupindex'", "dict", args[4]);
- goto exit;
- }
- groupindex = args[4];
- if (!PyTuple_Check(args[5])) {
- _PyArg_BadArgument("compile", "argument 'indexgroup'", "tuple", args[5]);
- goto exit;
- }
- indexgroup = args[5];
+ code = args[2];
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[3]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ groups = ival;
+ }
+ if (!PyDict_Check(args[4])) {
+ _PyArg_BadArgument("compile", "argument 'groupindex'", "dict", args[4]);
+ goto exit;
+ }
+ groupindex = args[4];
+ if (!PyTuple_Check(args[5])) {
+ _PyArg_BadArgument("compile", "argument 'indexgroup'", "tuple", args[5]);
+ goto exit;
+ }
+ indexgroup = args[5];
return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup);
exit:
@@ -938,7 +938,7 @@ PyDoc_STRVAR(_sre_SRE_Match_expand__doc__,
"Return the string obtained by doing backslash substitution on the string template, as done by the sub() method.");
#define _SRE_SRE_MATCH_EXPAND_METHODDEF \
- {"expand", (PyCFunction)(void(*)(void))_sre_SRE_Match_expand, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_expand__doc__},
+ {"expand", (PyCFunction)(void(*)(void))_sre_SRE_Match_expand, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_expand__doc__},
static PyObject *
_sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template);
@@ -948,15 +948,15 @@ _sre_SRE_Match_expand(MatchObject *self, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"template", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "expand", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "expand", 0};
+ PyObject *argsbuf[1];
PyObject *template;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- template = args[0];
+ template = args[0];
return_value = _sre_SRE_Match_expand_impl(self, template);
exit:
@@ -973,7 +973,7 @@ PyDoc_STRVAR(_sre_SRE_Match_groups__doc__,
" Is used for groups that did not participate in the match.");
#define _SRE_SRE_MATCH_GROUPS_METHODDEF \
- {"groups", (PyCFunction)(void(*)(void))_sre_SRE_Match_groups, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groups__doc__},
+ {"groups", (PyCFunction)(void(*)(void))_sre_SRE_Match_groups, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groups__doc__},
static PyObject *
_sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value);
@@ -983,20 +983,20 @@ _sre_SRE_Match_groups(MatchObject *self, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"default", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "groups", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "groups", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *default_value = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- default_value = args[0];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ default_value = args[0];
+skip_optional_pos:
return_value = _sre_SRE_Match_groups_impl(self, default_value);
exit:
@@ -1013,7 +1013,7 @@ PyDoc_STRVAR(_sre_SRE_Match_groupdict__doc__,
" Is used for groups that did not participate in the match.");
#define _SRE_SRE_MATCH_GROUPDICT_METHODDEF \
- {"groupdict", (PyCFunction)(void(*)(void))_sre_SRE_Match_groupdict, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groupdict__doc__},
+ {"groupdict", (PyCFunction)(void(*)(void))_sre_SRE_Match_groupdict, METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groupdict__doc__},
static PyObject *
_sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value);
@@ -1023,20 +1023,20 @@ _sre_SRE_Match_groupdict(MatchObject *self, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"default", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "groupdict", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "groupdict", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *default_value = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- default_value = args[0];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ default_value = args[0];
+skip_optional_pos:
return_value = _sre_SRE_Match_groupdict_impl(self, default_value);
exit:
@@ -1050,7 +1050,7 @@ PyDoc_STRVAR(_sre_SRE_Match_start__doc__,
"Return index of the start of the substring matched by group.");
#define _SRE_SRE_MATCH_START_METHODDEF \
- {"start", (PyCFunction)(void(*)(void))_sre_SRE_Match_start, METH_FASTCALL, _sre_SRE_Match_start__doc__},
+ {"start", (PyCFunction)(void(*)(void))_sre_SRE_Match_start, METH_FASTCALL, _sre_SRE_Match_start__doc__},
static Py_ssize_t
_sre_SRE_Match_start_impl(MatchObject *self, PyObject *group);
@@ -1062,14 +1062,14 @@ _sre_SRE_Match_start(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *group = NULL;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("start", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("start", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- group = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ group = args[0];
+skip_optional:
_return_value = _sre_SRE_Match_start_impl(self, group);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -1087,7 +1087,7 @@ PyDoc_STRVAR(_sre_SRE_Match_end__doc__,
"Return index of the end of the substring matched by group.");
#define _SRE_SRE_MATCH_END_METHODDEF \
- {"end", (PyCFunction)(void(*)(void))_sre_SRE_Match_end, METH_FASTCALL, _sre_SRE_Match_end__doc__},
+ {"end", (PyCFunction)(void(*)(void))_sre_SRE_Match_end, METH_FASTCALL, _sre_SRE_Match_end__doc__},
static Py_ssize_t
_sre_SRE_Match_end_impl(MatchObject *self, PyObject *group);
@@ -1099,14 +1099,14 @@ _sre_SRE_Match_end(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *group = NULL;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("end", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("end", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- group = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ group = args[0];
+skip_optional:
_return_value = _sre_SRE_Match_end_impl(self, group);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -1124,7 +1124,7 @@ PyDoc_STRVAR(_sre_SRE_Match_span__doc__,
"For match object m, return the 2-tuple (m.start(group), m.end(group)).");
#define _SRE_SRE_MATCH_SPAN_METHODDEF \
- {"span", (PyCFunction)(void(*)(void))_sre_SRE_Match_span, METH_FASTCALL, _sre_SRE_Match_span__doc__},
+ {"span", (PyCFunction)(void(*)(void))_sre_SRE_Match_span, METH_FASTCALL, _sre_SRE_Match_span__doc__},
static PyObject *
_sre_SRE_Match_span_impl(MatchObject *self, PyObject *group);
@@ -1135,14 +1135,14 @@ _sre_SRE_Match_span(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *group = NULL;
- if (!_PyArg_CheckPositional("span", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("span", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- group = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ group = args[0];
+skip_optional:
return_value = _sre_SRE_Match_span_impl(self, group);
exit:
@@ -1207,4 +1207,4 @@ _sre_SRE_Scanner_search(ScannerObject *self, PyObject *Py_UNUSED(ignored))
{
return _sre_SRE_Scanner_search_impl(self);
}
-/*[clinic end generated code: output=1adeddce58ae284c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1adeddce58ae284c input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_ssl.c.h b/contrib/tools/python3/src/Modules/clinic/_ssl.c.h
index 15fe9201fe..ce8669ae21 100644
--- a/contrib/tools/python3/src/Modules/clinic/_ssl.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_ssl.c.h
@@ -36,7 +36,7 @@ _ssl__test_decode_cert(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *path;
- if (!PyUnicode_FSConverter(arg, &path)) {
+ if (!PyUnicode_FSConverter(arg, &path)) {
goto exit;
}
return_value = _ssl__test_decode_cert_impl(module, path);
@@ -60,7 +60,7 @@ PyDoc_STRVAR(_ssl__SSLSocket_getpeercert__doc__,
"return the certificate even if it wasn\'t validated.");
#define _SSL__SSLSOCKET_GETPEERCERT_METHODDEF \
- {"getpeercert", (PyCFunction)(void(*)(void))_ssl__SSLSocket_getpeercert, METH_FASTCALL, _ssl__SSLSocket_getpeercert__doc__},
+ {"getpeercert", (PyCFunction)(void(*)(void))_ssl__SSLSocket_getpeercert, METH_FASTCALL, _ssl__SSLSocket_getpeercert__doc__},
static PyObject *
_ssl__SSLSocket_getpeercert_impl(PySSLSocket *self, int binary_mode);
@@ -71,17 +71,17 @@ _ssl__SSLSocket_getpeercert(PySSLSocket *self, PyObject *const *args, Py_ssize_t
PyObject *return_value = NULL;
int binary_mode = 0;
- if (!_PyArg_CheckPositional("getpeercert", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("getpeercert", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- binary_mode = PyObject_IsTrue(args[0]);
- if (binary_mode < 0) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ binary_mode = PyObject_IsTrue(args[0]);
+ if (binary_mode < 0) {
+ goto exit;
+ }
+skip_optional:
return_value = _ssl__SSLSocket_getpeercert_impl(self, binary_mode);
exit:
@@ -218,13 +218,13 @@ _ssl__SSLSocket_write(PySSLSocket *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer b = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&b, 'C')) {
+ _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&b, 'C')) {
- _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _ssl__SSLSocket_write_impl(self, &b);
exit:
@@ -329,7 +329,7 @@ PyDoc_STRVAR(_ssl__SSLSocket_get_channel_binding__doc__,
"Only \'tls-unique\' channel binding data from RFC 5929 is supported.");
#define _SSL__SSLSOCKET_GET_CHANNEL_BINDING_METHODDEF \
- {"get_channel_binding", (PyCFunction)(void(*)(void))_ssl__SSLSocket_get_channel_binding, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLSocket_get_channel_binding__doc__},
+ {"get_channel_binding", (PyCFunction)(void(*)(void))_ssl__SSLSocket_get_channel_binding, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLSocket_get_channel_binding__doc__},
static PyObject *
_ssl__SSLSocket_get_channel_binding_impl(PySSLSocket *self,
@@ -340,32 +340,32 @@ _ssl__SSLSocket_get_channel_binding(PySSLSocket *self, PyObject *const *args, Py
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"cb_type", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "get_channel_binding", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "get_channel_binding", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
const char *cb_type = "tls-unique";
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("get_channel_binding", "argument 'cb_type'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t cb_type_length;
+ cb_type = PyUnicode_AsUTF8AndSize(args[0], &cb_type_length);
+ if (cb_type == NULL) {
+ goto exit;
+ }
+ if (strlen(cb_type) != (size_t)cb_type_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("get_channel_binding", "argument 'cb_type'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t cb_type_length;
- cb_type = PyUnicode_AsUTF8AndSize(args[0], &cb_type_length);
- if (cb_type == NULL) {
- goto exit;
- }
- if (strlen(cb_type) != (size_t)cb_type_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = _ssl__SSLSocket_get_channel_binding_impl(self, cb_type);
exit:
@@ -403,18 +403,18 @@ _ssl__SSLContext(PyTypeObject *type, PyObject *args, PyObject *kwargs)
!_PyArg_NoKeywords("_SSLContext", kwargs)) {
goto exit;
}
- if (!_PyArg_CheckPositional("_SSLContext", PyTuple_GET_SIZE(args), 1, 1)) {
+ if (!_PyArg_CheckPositional("_SSLContext", PyTuple_GET_SIZE(args), 1, 1)) {
+ goto exit;
+ }
+ if (PyFloat_Check(PyTuple_GET_ITEM(args, 0))) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ proto_version = _PyLong_AsInt(PyTuple_GET_ITEM(args, 0));
+ if (proto_version == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(PyTuple_GET_ITEM(args, 0))) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- proto_version = _PyLong_AsInt(PyTuple_GET_ITEM(args, 0));
- if (proto_version == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = _ssl__SSLContext_impl(type, proto_version);
exit:
@@ -438,19 +438,19 @@ _ssl__SSLContext_set_ciphers(PySSLContext *self, PyObject *arg)
PyObject *return_value = NULL;
const char *cipherlist;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("set_ciphers", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("set_ciphers", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t cipherlist_length;
+ cipherlist = PyUnicode_AsUTF8AndSize(arg, &cipherlist_length);
+ if (cipherlist == NULL) {
+ goto exit;
+ }
+ if (strlen(cipherlist) != (size_t)cipherlist_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t cipherlist_length;
- cipherlist = PyUnicode_AsUTF8AndSize(arg, &cipherlist_length);
- if (cipherlist == NULL) {
- goto exit;
- }
- if (strlen(cipherlist) != (size_t)cipherlist_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _ssl__SSLContext_set_ciphers_impl(self, cipherlist);
exit:
@@ -496,13 +496,13 @@ _ssl__SSLContext__set_npn_protocols(PySSLContext *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer protos = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &protos, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &protos, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&protos, 'C')) {
+ _PyArg_BadArgument("_set_npn_protocols", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&protos, 'C')) {
- _PyArg_BadArgument("_set_npn_protocols", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _ssl__SSLContext__set_npn_protocols_impl(self, &protos);
exit:
@@ -532,13 +532,13 @@ _ssl__SSLContext__set_alpn_protocols(PySSLContext *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer protos = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &protos, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &protos, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&protos, 'C')) {
+ _PyArg_BadArgument("_set_alpn_protocols", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&protos, 'C')) {
- _PyArg_BadArgument("_set_alpn_protocols", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _ssl__SSLContext__set_alpn_protocols_impl(self, &protos);
exit:
@@ -556,7 +556,7 @@ PyDoc_STRVAR(_ssl__SSLContext_load_cert_chain__doc__,
"\n");
#define _SSL__SSLCONTEXT_LOAD_CERT_CHAIN_METHODDEF \
- {"load_cert_chain", (PyCFunction)(void(*)(void))_ssl__SSLContext_load_cert_chain, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_load_cert_chain__doc__},
+ {"load_cert_chain", (PyCFunction)(void(*)(void))_ssl__SSLContext_load_cert_chain, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_load_cert_chain__doc__},
static PyObject *
_ssl__SSLContext_load_cert_chain_impl(PySSLContext *self, PyObject *certfile,
@@ -567,29 +567,29 @@ _ssl__SSLContext_load_cert_chain(PySSLContext *self, PyObject *const *args, Py_s
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"certfile", "keyfile", "password", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "load_cert_chain", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "load_cert_chain", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *certfile;
- PyObject *keyfile = Py_None;
- PyObject *password = Py_None;
+ PyObject *keyfile = Py_None;
+ PyObject *password = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- certfile = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- keyfile = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- password = args[2];
-skip_optional_pos:
+ certfile = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ keyfile = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ password = args[2];
+skip_optional_pos:
return_value = _ssl__SSLContext_load_cert_chain_impl(self, certfile, keyfile, password);
exit:
@@ -602,7 +602,7 @@ PyDoc_STRVAR(_ssl__SSLContext_load_verify_locations__doc__,
"\n");
#define _SSL__SSLCONTEXT_LOAD_VERIFY_LOCATIONS_METHODDEF \
- {"load_verify_locations", (PyCFunction)(void(*)(void))_ssl__SSLContext_load_verify_locations, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_load_verify_locations__doc__},
+ {"load_verify_locations", (PyCFunction)(void(*)(void))_ssl__SSLContext_load_verify_locations, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_load_verify_locations__doc__},
static PyObject *
_ssl__SSLContext_load_verify_locations_impl(PySSLContext *self,
@@ -615,34 +615,34 @@ _ssl__SSLContext_load_verify_locations(PySSLContext *self, PyObject *const *args
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"cafile", "capath", "cadata", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "load_verify_locations", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *cafile = Py_None;
- PyObject *capath = Py_None;
- PyObject *cadata = Py_None;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 3, 0, argsbuf);
- if (!args) {
+ static _PyArg_Parser _parser = {NULL, _keywords, "load_verify_locations", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *cafile = Py_None;
+ PyObject *capath = Py_None;
+ PyObject *cadata = Py_None;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- cafile = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[1]) {
- capath = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- cadata = args[2];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ cafile = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[1]) {
+ capath = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ cadata = args[2];
+skip_optional_pos:
return_value = _ssl__SSLContext_load_verify_locations_impl(self, cafile, capath, cadata);
exit:
@@ -664,7 +664,7 @@ PyDoc_STRVAR(_ssl__SSLContext__wrap_socket__doc__,
"\n");
#define _SSL__SSLCONTEXT__WRAP_SOCKET_METHODDEF \
- {"_wrap_socket", (PyCFunction)(void(*)(void))_ssl__SSLContext__wrap_socket, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext__wrap_socket__doc__},
+ {"_wrap_socket", (PyCFunction)(void(*)(void))_ssl__SSLContext__wrap_socket, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext__wrap_socket__doc__},
static PyObject *
_ssl__SSLContext__wrap_socket_impl(PySSLContext *self, PyObject *sock,
@@ -676,54 +676,54 @@ _ssl__SSLContext__wrap_socket(PySSLContext *self, PyObject *const *args, Py_ssiz
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sock", "server_side", "server_hostname", "owner", "session", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_socket", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_socket", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
PyObject *sock;
int server_side;
PyObject *hostname_obj = Py_None;
PyObject *owner = Py_None;
PyObject *session = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyObject_TypeCheck(args[0], PySocketModule.Sock_Type)) {
+ _PyArg_BadArgument("_wrap_socket", "argument 'sock'", (PySocketModule.Sock_Type)->tp_name, args[0]);
+ goto exit;
+ }
+ sock = args[0];
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (!PyObject_TypeCheck(args[0], PySocketModule.Sock_Type)) {
- _PyArg_BadArgument("_wrap_socket", "argument 'sock'", (PySocketModule.Sock_Type)->tp_name, args[0]);
- goto exit;
- }
- sock = args[0];
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- server_side = _PyLong_AsInt(args[1]);
- if (server_side == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- hostname_obj = args[2];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[3]) {
- owner = args[3];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- session = args[4];
-skip_optional_kwonly:
+ server_side = _PyLong_AsInt(args[1]);
+ if (server_side == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ hostname_obj = args[2];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[3]) {
+ owner = args[3];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ session = args[4];
+skip_optional_kwonly:
return_value = _ssl__SSLContext__wrap_socket_impl(self, sock, server_side, hostname_obj, owner, session);
exit:
@@ -737,7 +737,7 @@ PyDoc_STRVAR(_ssl__SSLContext__wrap_bio__doc__,
"\n");
#define _SSL__SSLCONTEXT__WRAP_BIO_METHODDEF \
- {"_wrap_bio", (PyCFunction)(void(*)(void))_ssl__SSLContext__wrap_bio, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext__wrap_bio__doc__},
+ {"_wrap_bio", (PyCFunction)(void(*)(void))_ssl__SSLContext__wrap_bio, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext__wrap_bio__doc__},
static PyObject *
_ssl__SSLContext__wrap_bio_impl(PySSLContext *self, PySSLMemoryBIO *incoming,
@@ -750,9 +750,9 @@ _ssl__SSLContext__wrap_bio(PySSLContext *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"incoming", "outgoing", "server_side", "server_hostname", "owner", "session", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_bio", 0};
- PyObject *argsbuf[6];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
+ static _PyArg_Parser _parser = {NULL, _keywords, "_wrap_bio", 0};
+ PyObject *argsbuf[6];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
PySSLMemoryBIO *incoming;
PySSLMemoryBIO *outgoing;
int server_side;
@@ -760,50 +760,50 @@ _ssl__SSLContext__wrap_bio(PySSLContext *self, PyObject *const *args, Py_ssize_t
PyObject *owner = Py_None;
PyObject *session = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 4, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyObject_TypeCheck(args[0], &PySSLMemoryBIO_Type)) {
+ _PyArg_BadArgument("_wrap_bio", "argument 'incoming'", (&PySSLMemoryBIO_Type)->tp_name, args[0]);
+ goto exit;
+ }
+ incoming = (PySSLMemoryBIO *)args[0];
+ if (!PyObject_TypeCheck(args[1], &PySSLMemoryBIO_Type)) {
+ _PyArg_BadArgument("_wrap_bio", "argument 'outgoing'", (&PySSLMemoryBIO_Type)->tp_name, args[1]);
+ goto exit;
+ }
+ outgoing = (PySSLMemoryBIO *)args[1];
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (!PyObject_TypeCheck(args[0], &PySSLMemoryBIO_Type)) {
- _PyArg_BadArgument("_wrap_bio", "argument 'incoming'", (&PySSLMemoryBIO_Type)->tp_name, args[0]);
- goto exit;
- }
- incoming = (PySSLMemoryBIO *)args[0];
- if (!PyObject_TypeCheck(args[1], &PySSLMemoryBIO_Type)) {
- _PyArg_BadArgument("_wrap_bio", "argument 'outgoing'", (&PySSLMemoryBIO_Type)->tp_name, args[1]);
- goto exit;
- }
- outgoing = (PySSLMemoryBIO *)args[1];
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- server_side = _PyLong_AsInt(args[2]);
- if (server_side == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[3]) {
- hostname_obj = args[3];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[4]) {
- owner = args[4];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- session = args[5];
-skip_optional_kwonly:
+ server_side = _PyLong_AsInt(args[2]);
+ if (server_side == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[3]) {
+ hostname_obj = args[3];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[4]) {
+ owner = args[4];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ session = args[5];
+skip_optional_kwonly:
return_value = _ssl__SSLContext__wrap_bio_impl(self, incoming, outgoing, server_side, hostname_obj, owner, session);
exit:
@@ -893,7 +893,7 @@ PyDoc_STRVAR(_ssl__SSLContext_get_ca_certs__doc__,
"been used at least once.");
#define _SSL__SSLCONTEXT_GET_CA_CERTS_METHODDEF \
- {"get_ca_certs", (PyCFunction)(void(*)(void))_ssl__SSLContext_get_ca_certs, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_get_ca_certs__doc__},
+ {"get_ca_certs", (PyCFunction)(void(*)(void))_ssl__SSLContext_get_ca_certs, METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_get_ca_certs__doc__},
static PyObject *
_ssl__SSLContext_get_ca_certs_impl(PySSLContext *self, int binary_form);
@@ -903,23 +903,23 @@ _ssl__SSLContext_get_ca_certs(PySSLContext *self, PyObject *const *args, Py_ssiz
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"binary_form", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "get_ca_certs", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "get_ca_certs", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int binary_form = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ binary_form = PyObject_IsTrue(args[0]);
+ if (binary_form < 0) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- binary_form = PyObject_IsTrue(args[0]);
- if (binary_form < 0) {
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = _ssl__SSLContext_get_ca_certs_impl(self, binary_form);
exit:
@@ -960,7 +960,7 @@ PyDoc_STRVAR(_ssl_MemoryBIO_read__doc__,
"distinguish between the two.");
#define _SSL_MEMORYBIO_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))_ssl_MemoryBIO_read, METH_FASTCALL, _ssl_MemoryBIO_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))_ssl_MemoryBIO_read, METH_FASTCALL, _ssl_MemoryBIO_read__doc__},
static PyObject *
_ssl_MemoryBIO_read_impl(PySSLMemoryBIO *self, int len);
@@ -971,22 +971,22 @@ _ssl_MemoryBIO_read(PySSLMemoryBIO *self, PyObject *const *args, Py_ssize_t narg
PyObject *return_value = NULL;
int len = -1;
- if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- len = _PyLong_AsInt(args[0]);
- if (len == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ len = _PyLong_AsInt(args[0]);
+ if (len == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _ssl_MemoryBIO_read_impl(self, len);
exit:
@@ -1013,13 +1013,13 @@ _ssl_MemoryBIO_write(PySSLMemoryBIO *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer b = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&b, 'C')) {
+ _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&b, 'C')) {
- _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = _ssl_MemoryBIO_write_impl(self, &b);
exit:
@@ -1061,7 +1061,7 @@ PyDoc_STRVAR(_ssl_RAND_add__doc__,
"string. See RFC 4086.");
#define _SSL_RAND_ADD_METHODDEF \
- {"RAND_add", (PyCFunction)(void(*)(void))_ssl_RAND_add, METH_FASTCALL, _ssl_RAND_add__doc__},
+ {"RAND_add", (PyCFunction)(void(*)(void))_ssl_RAND_add, METH_FASTCALL, _ssl_RAND_add__doc__},
static PyObject *
_ssl_RAND_add_impl(PyObject *module, Py_buffer *view, double entropy);
@@ -1073,36 +1073,36 @@ _ssl_RAND_add(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer view = {NULL, NULL};
double entropy;
- if (!_PyArg_CheckPositional("RAND_add", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("RAND_add", nargs, 2, 2)) {
goto exit;
}
- if (PyUnicode_Check(args[0])) {
- Py_ssize_t len;
- const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
- if (ptr == NULL) {
- goto exit;
- }
- PyBuffer_FillInfo(&view, args[0], (void *)ptr, len, 1, 0);
- }
- else { /* any bytes-like object */
- if (PyObject_GetBuffer(args[0], &view, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&view, 'C')) {
- _PyArg_BadArgument("RAND_add", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[1])) {
- entropy = PyFloat_AS_DOUBLE(args[1]);
- }
- else
- {
- entropy = PyFloat_AsDouble(args[1]);
- if (entropy == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
+ if (PyUnicode_Check(args[0])) {
+ Py_ssize_t len;
+ const char *ptr = PyUnicode_AsUTF8AndSize(args[0], &len);
+ if (ptr == NULL) {
+ goto exit;
+ }
+ PyBuffer_FillInfo(&view, args[0], (void *)ptr, len, 1, 0);
+ }
+ else { /* any bytes-like object */
+ if (PyObject_GetBuffer(args[0], &view, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&view, 'C')) {
+ _PyArg_BadArgument("RAND_add", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ entropy = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ entropy = PyFloat_AsDouble(args[1]);
+ if (entropy == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
return_value = _ssl_RAND_add_impl(module, &view, entropy);
exit:
@@ -1132,15 +1132,15 @@ _ssl_RAND_bytes(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int n;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ n = _PyLong_AsInt(arg);
+ if (n == -1 && PyErr_Occurred()) {
goto exit;
}
- n = _PyLong_AsInt(arg);
- if (n == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = _ssl_RAND_bytes_impl(module, n);
exit:
@@ -1168,15 +1168,15 @@ _ssl_RAND_pseudo_bytes(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int n;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ n = _PyLong_AsInt(arg);
+ if (n == -1 && PyErr_Occurred()) {
goto exit;
}
- n = _PyLong_AsInt(arg);
- if (n == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = _ssl_RAND_pseudo_bytes_impl(module, n);
exit:
@@ -1227,7 +1227,7 @@ _ssl_RAND_egd(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *path;
- if (!PyUnicode_FSConverter(arg, &path)) {
+ if (!PyUnicode_FSConverter(arg, &path)) {
goto exit;
}
return_value = _ssl_RAND_egd_impl(module, path);
@@ -1268,7 +1268,7 @@ PyDoc_STRVAR(_ssl_txt2obj__doc__,
"long name are also matched.");
#define _SSL_TXT2OBJ_METHODDEF \
- {"txt2obj", (PyCFunction)(void(*)(void))_ssl_txt2obj, METH_FASTCALL|METH_KEYWORDS, _ssl_txt2obj__doc__},
+ {"txt2obj", (PyCFunction)(void(*)(void))_ssl_txt2obj, METH_FASTCALL|METH_KEYWORDS, _ssl_txt2obj__doc__},
static PyObject *
_ssl_txt2obj_impl(PyObject *module, const char *txt, int name);
@@ -1278,37 +1278,37 @@ _ssl_txt2obj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"txt", "name", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "txt2obj", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "txt2obj", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
const char *txt;
int name = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("txt2obj", "argument 'txt'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t txt_length;
+ txt = PyUnicode_AsUTF8AndSize(args[0], &txt_length);
+ if (txt == NULL) {
+ goto exit;
+ }
+ if (strlen(txt) != (size_t)txt_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ name = PyObject_IsTrue(args[1]);
+ if (name < 0) {
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("txt2obj", "argument 'txt'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t txt_length;
- txt = PyUnicode_AsUTF8AndSize(args[0], &txt_length);
- if (txt == NULL) {
- goto exit;
- }
- if (strlen(txt) != (size_t)txt_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- name = PyObject_IsTrue(args[1]);
- if (name < 0) {
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = _ssl_txt2obj_impl(module, txt, name);
exit:
@@ -1333,15 +1333,15 @@ _ssl_nid2obj(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int nid;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nid = _PyLong_AsInt(arg);
+ if (nid == -1 && PyErr_Occurred()) {
goto exit;
}
- nid = _PyLong_AsInt(arg);
- if (nid == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = _ssl_nid2obj_impl(module, nid);
exit:
@@ -1363,7 +1363,7 @@ PyDoc_STRVAR(_ssl_enum_certificates__doc__,
"a set of OIDs or the boolean True.");
#define _SSL_ENUM_CERTIFICATES_METHODDEF \
- {"enum_certificates", (PyCFunction)(void(*)(void))_ssl_enum_certificates, METH_FASTCALL|METH_KEYWORDS, _ssl_enum_certificates__doc__},
+ {"enum_certificates", (PyCFunction)(void(*)(void))_ssl_enum_certificates, METH_FASTCALL|METH_KEYWORDS, _ssl_enum_certificates__doc__},
static PyObject *
_ssl_enum_certificates_impl(PyObject *module, const char *store_name);
@@ -1373,27 +1373,27 @@ _ssl_enum_certificates(PyObject *module, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"store_name", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "enum_certificates", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "enum_certificates", 0};
+ PyObject *argsbuf[1];
const char *store_name;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("enum_certificates", "argument 'store_name'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t store_name_length;
+ store_name = PyUnicode_AsUTF8AndSize(args[0], &store_name_length);
+ if (store_name == NULL) {
+ goto exit;
+ }
+ if (strlen(store_name) != (size_t)store_name_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("enum_certificates", "argument 'store_name'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t store_name_length;
- store_name = PyUnicode_AsUTF8AndSize(args[0], &store_name_length);
- if (store_name == NULL) {
- goto exit;
- }
- if (strlen(store_name) != (size_t)store_name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _ssl_enum_certificates_impl(module, store_name);
exit:
@@ -1416,7 +1416,7 @@ PyDoc_STRVAR(_ssl_enum_crls__doc__,
"X509_ASN_ENCODING or PKCS_7_ASN_ENCODING.");
#define _SSL_ENUM_CRLS_METHODDEF \
- {"enum_crls", (PyCFunction)(void(*)(void))_ssl_enum_crls, METH_FASTCALL|METH_KEYWORDS, _ssl_enum_crls__doc__},
+ {"enum_crls", (PyCFunction)(void(*)(void))_ssl_enum_crls, METH_FASTCALL|METH_KEYWORDS, _ssl_enum_crls__doc__},
static PyObject *
_ssl_enum_crls_impl(PyObject *module, const char *store_name);
@@ -1426,27 +1426,27 @@ _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"store_name", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "enum_crls", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "enum_crls", 0};
+ PyObject *argsbuf[1];
const char *store_name;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("enum_crls", "argument 'store_name'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t store_name_length;
+ store_name = PyUnicode_AsUTF8AndSize(args[0], &store_name_length);
+ if (store_name == NULL) {
+ goto exit;
+ }
+ if (strlen(store_name) != (size_t)store_name_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("enum_crls", "argument 'store_name'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t store_name_length;
- store_name = PyUnicode_AsUTF8AndSize(args[0], &store_name_length);
- if (store_name == NULL) {
- goto exit;
- }
- if (strlen(store_name) != (size_t)store_name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _ssl_enum_crls_impl(module, store_name);
exit:
@@ -1482,4 +1482,4 @@ exit:
#ifndef _SSL_ENUM_CRLS_METHODDEF
#define _SSL_ENUM_CRLS_METHODDEF
#endif /* !defined(_SSL_ENUM_CRLS_METHODDEF) */
-/*[clinic end generated code: output=a4aeb3f92a091c64 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a4aeb3f92a091c64 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_statisticsmodule.c.h b/contrib/tools/python3/src/Modules/clinic/_statisticsmodule.c.h
index 73b694cb2b..5ff01efddc 100644
--- a/contrib/tools/python3/src/Modules/clinic/_statisticsmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_statisticsmodule.c.h
@@ -1,68 +1,68 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(_statistics__normal_dist_inv_cdf__doc__,
-"_normal_dist_inv_cdf($module, p, mu, sigma, /)\n"
-"--\n"
-"\n");
-
-#define _STATISTICS__NORMAL_DIST_INV_CDF_METHODDEF \
- {"_normal_dist_inv_cdf", (PyCFunction)(void(*)(void))_statistics__normal_dist_inv_cdf, METH_FASTCALL, _statistics__normal_dist_inv_cdf__doc__},
-
-static double
-_statistics__normal_dist_inv_cdf_impl(PyObject *module, double p, double mu,
- double sigma);
-
-static PyObject *
-_statistics__normal_dist_inv_cdf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- double p;
- double mu;
- double sigma;
- double _return_value;
-
- if (!_PyArg_CheckPositional("_normal_dist_inv_cdf", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_CheckExact(args[0])) {
- p = PyFloat_AS_DOUBLE(args[0]);
- }
- else
- {
- p = PyFloat_AsDouble(args[0]);
- if (p == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[1])) {
- mu = PyFloat_AS_DOUBLE(args[1]);
- }
- else
- {
- mu = PyFloat_AsDouble(args[1]);
- if (mu == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[2])) {
- sigma = PyFloat_AS_DOUBLE(args[2]);
- }
- else
- {
- sigma = PyFloat_AsDouble(args[2]);
- if (sigma == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- _return_value = _statistics__normal_dist_inv_cdf_impl(module, p, mu, sigma);
- if ((_return_value == -1.0) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyFloat_FromDouble(_return_value);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=c5826928a238326c input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(_statistics__normal_dist_inv_cdf__doc__,
+"_normal_dist_inv_cdf($module, p, mu, sigma, /)\n"
+"--\n"
+"\n");
+
+#define _STATISTICS__NORMAL_DIST_INV_CDF_METHODDEF \
+ {"_normal_dist_inv_cdf", (PyCFunction)(void(*)(void))_statistics__normal_dist_inv_cdf, METH_FASTCALL, _statistics__normal_dist_inv_cdf__doc__},
+
+static double
+_statistics__normal_dist_inv_cdf_impl(PyObject *module, double p, double mu,
+ double sigma);
+
+static PyObject *
+_statistics__normal_dist_inv_cdf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ double p;
+ double mu;
+ double sigma;
+ double _return_value;
+
+ if (!_PyArg_CheckPositional("_normal_dist_inv_cdf", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_CheckExact(args[0])) {
+ p = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ p = PyFloat_AsDouble(args[0]);
+ if (p == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ mu = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ mu = PyFloat_AsDouble(args[1]);
+ if (mu == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[2])) {
+ sigma = PyFloat_AS_DOUBLE(args[2]);
+ }
+ else
+ {
+ sigma = PyFloat_AsDouble(args[2]);
+ if (sigma == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ _return_value = _statistics__normal_dist_inv_cdf_impl(module, p, mu, sigma);
+ if ((_return_value == -1.0) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyFloat_FromDouble(_return_value);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=c5826928a238326c input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_struct.c.h b/contrib/tools/python3/src/Modules/clinic/_struct.c.h
index accf68d9e7..36c4b4046c 100644
--- a/contrib/tools/python3/src/Modules/clinic/_struct.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_struct.c.h
@@ -21,17 +21,17 @@ Struct___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"format", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "Struct", 0};
- PyObject *argsbuf[1];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ static _PyArg_Parser _parser = {NULL, _keywords, "Struct", 0};
+ PyObject *argsbuf[1];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
PyObject *format;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- format = fastargs[0];
+ format = fastargs[0];
return_value = Struct___init___impl((PyStructObject *)self, format);
exit:
@@ -61,13 +61,13 @@ Struct_unpack(PyStructObject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("unpack", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("unpack", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = Struct_unpack_impl(self, &buffer);
exit:
@@ -87,13 +87,13 @@ PyDoc_STRVAR(Struct_unpack_from__doc__,
"\n"
"Values are unpacked according to the format string Struct.format.\n"
"\n"
-"The buffer\'s size in bytes, starting at position offset, must be\n"
-"at least Struct.size.\n"
+"The buffer\'s size in bytes, starting at position offset, must be\n"
+"at least Struct.size.\n"
"\n"
"See help(struct) for more on format strings.");
#define STRUCT_UNPACK_FROM_METHODDEF \
- {"unpack_from", (PyCFunction)(void(*)(void))Struct_unpack_from, METH_FASTCALL|METH_KEYWORDS, Struct_unpack_from__doc__},
+ {"unpack_from", (PyCFunction)(void(*)(void))Struct_unpack_from, METH_FASTCALL|METH_KEYWORDS, Struct_unpack_from__doc__},
static PyObject *
Struct_unpack_from_impl(PyStructObject *self, Py_buffer *buffer,
@@ -104,44 +104,44 @@ Struct_unpack_from(PyStructObject *self, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"buffer", "offset", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer buffer = {NULL, NULL};
Py_ssize_t offset = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &buffer, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("unpack_from", "argument 'buffer'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (PyObject_GetBuffer(args[0], &buffer, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("unpack_from", "argument 'buffer'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- offset = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ offset = ival;
+ }
+skip_optional_pos:
return_value = Struct_unpack_from_impl(self, &buffer, offset);
exit:
@@ -204,7 +204,7 @@ calcsize(PyObject *module, PyObject *arg)
PyStructObject *s_object = NULL;
Py_ssize_t _return_value;
- if (!cache_struct_converter(arg, &s_object)) {
+ if (!cache_struct_converter(arg, &s_object)) {
goto exit;
}
_return_value = calcsize_impl(module, s_object);
@@ -231,7 +231,7 @@ PyDoc_STRVAR(unpack__doc__,
"See help(struct) for more on format strings.");
#define UNPACK_METHODDEF \
- {"unpack", (PyCFunction)(void(*)(void))unpack, METH_FASTCALL, unpack__doc__},
+ {"unpack", (PyCFunction)(void(*)(void))unpack, METH_FASTCALL, unpack__doc__},
static PyObject *
unpack_impl(PyObject *module, PyStructObject *s_object, Py_buffer *buffer);
@@ -243,19 +243,19 @@ unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyStructObject *s_object = NULL;
Py_buffer buffer = {NULL, NULL};
- if (!_PyArg_CheckPositional("unpack", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("unpack", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!cache_struct_converter(args[0], &s_object)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &buffer, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("unpack", "argument 2", "contiguous buffer", args[1]);
goto exit;
}
- if (!cache_struct_converter(args[0], &s_object)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &buffer, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("unpack", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
return_value = unpack_impl(module, s_object, &buffer);
exit:
@@ -280,7 +280,7 @@ PyDoc_STRVAR(unpack_from__doc__,
"See help(struct) for more on format strings.");
#define UNPACK_FROM_METHODDEF \
- {"unpack_from", (PyCFunction)(void(*)(void))unpack_from, METH_FASTCALL|METH_KEYWORDS, unpack_from__doc__},
+ {"unpack_from", (PyCFunction)(void(*)(void))unpack_from, METH_FASTCALL|METH_KEYWORDS, unpack_from__doc__},
static PyObject *
unpack_from_impl(PyObject *module, PyStructObject *s_object,
@@ -291,48 +291,48 @@ unpack_from(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "buffer", "offset", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "unpack_from", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
PyStructObject *s_object = NULL;
Py_buffer buffer = {NULL, NULL};
Py_ssize_t offset = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!cache_struct_converter(args[0], &s_object)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &buffer, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("unpack_from", "argument 'buffer'", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (!cache_struct_converter(args[0], &s_object)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &buffer, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("unpack_from", "argument 'buffer'", "contiguous buffer", args[1]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- offset = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ offset = ival;
+ }
+skip_optional_pos:
return_value = unpack_from_impl(module, s_object, &buffer, offset);
exit:
@@ -358,7 +358,7 @@ PyDoc_STRVAR(iter_unpack__doc__,
"Requires that the bytes length be a multiple of the format struct size.");
#define ITER_UNPACK_METHODDEF \
- {"iter_unpack", (PyCFunction)(void(*)(void))iter_unpack, METH_FASTCALL, iter_unpack__doc__},
+ {"iter_unpack", (PyCFunction)(void(*)(void))iter_unpack, METH_FASTCALL, iter_unpack__doc__},
static PyObject *
iter_unpack_impl(PyObject *module, PyStructObject *s_object,
@@ -371,13 +371,13 @@ iter_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyStructObject *s_object = NULL;
PyObject *buffer;
- if (!_PyArg_CheckPositional("iter_unpack", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("iter_unpack", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!cache_struct_converter(args[0], &s_object)) {
goto exit;
}
- if (!cache_struct_converter(args[0], &s_object)) {
- goto exit;
- }
- buffer = args[1];
+ buffer = args[1];
return_value = iter_unpack_impl(module, s_object, buffer);
exit:
@@ -386,4 +386,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=6a6228cfc4b7099c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6a6228cfc4b7099c input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_tkinter.c.h b/contrib/tools/python3/src/Modules/clinic/_tkinter.c.h
index ba78fcbbaa..73c3faeaf9 100644
--- a/contrib/tools/python3/src/Modules/clinic/_tkinter.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_tkinter.c.h
@@ -19,19 +19,19 @@ _tkinter_tkapp_eval(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *script;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("eval", "argument", "str", arg);
- goto exit;
- }
- Py_ssize_t script_length;
- script = PyUnicode_AsUTF8AndSize(arg, &script_length);
- if (script == NULL) {
- goto exit;
- }
- if (strlen(script) != (size_t)script_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("eval", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t script_length;
+ script = PyUnicode_AsUTF8AndSize(arg, &script_length);
+ if (script == NULL) {
+ goto exit;
+ }
+ if (strlen(script) != (size_t)script_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
return_value = _tkinter_tkapp_eval_impl(self, script);
exit:
@@ -55,19 +55,19 @@ _tkinter_tkapp_evalfile(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *fileName;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("evalfile", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("evalfile", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t fileName_length;
+ fileName = PyUnicode_AsUTF8AndSize(arg, &fileName_length);
+ if (fileName == NULL) {
+ goto exit;
+ }
+ if (strlen(fileName) != (size_t)fileName_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t fileName_length;
- fileName = PyUnicode_AsUTF8AndSize(arg, &fileName_length);
- if (fileName == NULL) {
- goto exit;
- }
- if (strlen(fileName) != (size_t)fileName_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_evalfile_impl(self, fileName);
exit:
@@ -91,19 +91,19 @@ _tkinter_tkapp_record(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *script;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("record", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("record", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t script_length;
+ script = PyUnicode_AsUTF8AndSize(arg, &script_length);
+ if (script == NULL) {
+ goto exit;
+ }
+ if (strlen(script) != (size_t)script_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t script_length;
- script = PyUnicode_AsUTF8AndSize(arg, &script_length);
- if (script == NULL) {
- goto exit;
- }
- if (strlen(script) != (size_t)script_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_record_impl(self, script);
exit:
@@ -127,19 +127,19 @@ _tkinter_tkapp_adderrorinfo(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *msg;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("adderrorinfo", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("adderrorinfo", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t msg_length;
+ msg = PyUnicode_AsUTF8AndSize(arg, &msg_length);
+ if (msg == NULL) {
+ goto exit;
+ }
+ if (strlen(msg) != (size_t)msg_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t msg_length;
- msg = PyUnicode_AsUTF8AndSize(arg, &msg_length);
- if (msg == NULL) {
- goto exit;
- }
- if (strlen(msg) != (size_t)msg_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_adderrorinfo_impl(self, msg);
exit:
@@ -187,19 +187,19 @@ _tkinter_tkapp_exprstring(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *s;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("exprstring", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("exprstring", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t s_length;
+ s = PyUnicode_AsUTF8AndSize(arg, &s_length);
+ if (s == NULL) {
+ goto exit;
+ }
+ if (strlen(s) != (size_t)s_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t s_length;
- s = PyUnicode_AsUTF8AndSize(arg, &s_length);
- if (s == NULL) {
- goto exit;
- }
- if (strlen(s) != (size_t)s_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_exprstring_impl(self, s);
exit:
@@ -223,19 +223,19 @@ _tkinter_tkapp_exprlong(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *s;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("exprlong", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("exprlong", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t s_length;
+ s = PyUnicode_AsUTF8AndSize(arg, &s_length);
+ if (s == NULL) {
+ goto exit;
+ }
+ if (strlen(s) != (size_t)s_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t s_length;
- s = PyUnicode_AsUTF8AndSize(arg, &s_length);
- if (s == NULL) {
- goto exit;
- }
- if (strlen(s) != (size_t)s_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_exprlong_impl(self, s);
exit:
@@ -259,19 +259,19 @@ _tkinter_tkapp_exprdouble(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *s;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("exprdouble", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("exprdouble", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t s_length;
+ s = PyUnicode_AsUTF8AndSize(arg, &s_length);
+ if (s == NULL) {
+ goto exit;
+ }
+ if (strlen(s) != (size_t)s_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t s_length;
- s = PyUnicode_AsUTF8AndSize(arg, &s_length);
- if (s == NULL) {
- goto exit;
- }
- if (strlen(s) != (size_t)s_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_exprdouble_impl(self, s);
exit:
@@ -295,19 +295,19 @@ _tkinter_tkapp_exprboolean(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *s;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("exprboolean", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("exprboolean", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t s_length;
+ s = PyUnicode_AsUTF8AndSize(arg, &s_length);
+ if (s == NULL) {
+ goto exit;
+ }
+ if (strlen(s) != (size_t)s_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t s_length;
- s = PyUnicode_AsUTF8AndSize(arg, &s_length);
- if (s == NULL) {
- goto exit;
- }
- if (strlen(s) != (size_t)s_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_exprboolean_impl(self, s);
exit:
@@ -336,7 +336,7 @@ PyDoc_STRVAR(_tkinter_tkapp_createcommand__doc__,
"\n");
#define _TKINTER_TKAPP_CREATECOMMAND_METHODDEF \
- {"createcommand", (PyCFunction)(void(*)(void))_tkinter_tkapp_createcommand, METH_FASTCALL, _tkinter_tkapp_createcommand__doc__},
+ {"createcommand", (PyCFunction)(void(*)(void))_tkinter_tkapp_createcommand, METH_FASTCALL, _tkinter_tkapp_createcommand__doc__},
static PyObject *
_tkinter_tkapp_createcommand_impl(TkappObject *self, const char *name,
@@ -349,23 +349,23 @@ _tkinter_tkapp_createcommand(TkappObject *self, PyObject *const *args, Py_ssize_
const char *name;
PyObject *func;
- if (!_PyArg_CheckPositional("createcommand", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("createcommand", "argument 1", "str", args[0]);
- goto exit;
- }
- Py_ssize_t name_length;
- name = PyUnicode_AsUTF8AndSize(args[0], &name_length);
- if (name == NULL) {
- goto exit;
- }
- if (strlen(name) != (size_t)name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- func = args[1];
+ if (!_PyArg_CheckPositional("createcommand", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("createcommand", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t name_length;
+ name = PyUnicode_AsUTF8AndSize(args[0], &name_length);
+ if (name == NULL) {
+ goto exit;
+ }
+ if (strlen(name) != (size_t)name_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ func = args[1];
return_value = _tkinter_tkapp_createcommand_impl(self, name, func);
exit:
@@ -389,19 +389,19 @@ _tkinter_tkapp_deletecommand(TkappObject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("deletecommand", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("deletecommand", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t name_length;
+ name = PyUnicode_AsUTF8AndSize(arg, &name_length);
+ if (name == NULL) {
+ goto exit;
+ }
+ if (strlen(name) != (size_t)name_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t name_length;
- name = PyUnicode_AsUTF8AndSize(arg, &name_length);
- if (name == NULL) {
- goto exit;
- }
- if (strlen(name) != (size_t)name_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = _tkinter_tkapp_deletecommand_impl(self, name);
exit:
@@ -416,7 +416,7 @@ PyDoc_STRVAR(_tkinter_tkapp_createfilehandler__doc__,
"\n");
#define _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF \
- {"createfilehandler", (PyCFunction)(void(*)(void))_tkinter_tkapp_createfilehandler, METH_FASTCALL, _tkinter_tkapp_createfilehandler__doc__},
+ {"createfilehandler", (PyCFunction)(void(*)(void))_tkinter_tkapp_createfilehandler, METH_FASTCALL, _tkinter_tkapp_createfilehandler__doc__},
static PyObject *
_tkinter_tkapp_createfilehandler_impl(TkappObject *self, PyObject *file,
@@ -430,20 +430,20 @@ _tkinter_tkapp_createfilehandler(TkappObject *self, PyObject *const *args, Py_ss
int mask;
PyObject *func;
- if (!_PyArg_CheckPositional("createfilehandler", nargs, 3, 3)) {
+ if (!_PyArg_CheckPositional("createfilehandler", nargs, 3, 3)) {
+ goto exit;
+ }
+ file = args[0];
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- file = args[0];
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mask = _PyLong_AsInt(args[1]);
- if (mask == -1 && PyErr_Occurred()) {
- goto exit;
- }
- func = args[2];
+ mask = _PyLong_AsInt(args[1]);
+ if (mask == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ func = args[2];
return_value = _tkinter_tkapp_createfilehandler_impl(self, file, mask, func);
exit:
@@ -487,7 +487,7 @@ PyDoc_STRVAR(_tkinter_tkapp_createtimerhandler__doc__,
"\n");
#define _TKINTER_TKAPP_CREATETIMERHANDLER_METHODDEF \
- {"createtimerhandler", (PyCFunction)(void(*)(void))_tkinter_tkapp_createtimerhandler, METH_FASTCALL, _tkinter_tkapp_createtimerhandler__doc__},
+ {"createtimerhandler", (PyCFunction)(void(*)(void))_tkinter_tkapp_createtimerhandler, METH_FASTCALL, _tkinter_tkapp_createtimerhandler__doc__},
static PyObject *
_tkinter_tkapp_createtimerhandler_impl(TkappObject *self, int milliseconds,
@@ -500,19 +500,19 @@ _tkinter_tkapp_createtimerhandler(TkappObject *self, PyObject *const *args, Py_s
int milliseconds;
PyObject *func;
- if (!_PyArg_CheckPositional("createtimerhandler", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("createtimerhandler", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ milliseconds = _PyLong_AsInt(args[0]);
+ if (milliseconds == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- milliseconds = _PyLong_AsInt(args[0]);
- if (milliseconds == -1 && PyErr_Occurred()) {
- goto exit;
- }
- func = args[1];
+ func = args[1];
return_value = _tkinter_tkapp_createtimerhandler_impl(self, milliseconds, func);
exit:
@@ -525,7 +525,7 @@ PyDoc_STRVAR(_tkinter_tkapp_mainloop__doc__,
"\n");
#define _TKINTER_TKAPP_MAINLOOP_METHODDEF \
- {"mainloop", (PyCFunction)(void(*)(void))_tkinter_tkapp_mainloop, METH_FASTCALL, _tkinter_tkapp_mainloop__doc__},
+ {"mainloop", (PyCFunction)(void(*)(void))_tkinter_tkapp_mainloop, METH_FASTCALL, _tkinter_tkapp_mainloop__doc__},
static PyObject *
_tkinter_tkapp_mainloop_impl(TkappObject *self, int threshold);
@@ -536,22 +536,22 @@ _tkinter_tkapp_mainloop(TkappObject *self, PyObject *const *args, Py_ssize_t nar
PyObject *return_value = NULL;
int threshold = 0;
- if (!_PyArg_CheckPositional("mainloop", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- threshold = _PyLong_AsInt(args[0]);
- if (threshold == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("mainloop", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ threshold = _PyLong_AsInt(args[0]);
+ if (threshold == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _tkinter_tkapp_mainloop_impl(self, threshold);
exit:
@@ -564,7 +564,7 @@ PyDoc_STRVAR(_tkinter_tkapp_dooneevent__doc__,
"\n");
#define _TKINTER_TKAPP_DOONEEVENT_METHODDEF \
- {"dooneevent", (PyCFunction)(void(*)(void))_tkinter_tkapp_dooneevent, METH_FASTCALL, _tkinter_tkapp_dooneevent__doc__},
+ {"dooneevent", (PyCFunction)(void(*)(void))_tkinter_tkapp_dooneevent, METH_FASTCALL, _tkinter_tkapp_dooneevent__doc__},
static PyObject *
_tkinter_tkapp_dooneevent_impl(TkappObject *self, int flags);
@@ -575,22 +575,22 @@ _tkinter_tkapp_dooneevent(TkappObject *self, PyObject *const *args, Py_ssize_t n
PyObject *return_value = NULL;
int flags = 0;
- if (!_PyArg_CheckPositional("dooneevent", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[0]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("dooneevent", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[0]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _tkinter_tkapp_dooneevent_impl(self, flags);
exit:
@@ -674,7 +674,7 @@ PyDoc_STRVAR(_tkinter__flatten__doc__,
{"_flatten", (PyCFunction)_tkinter__flatten, METH_O, _tkinter__flatten__doc__},
PyDoc_STRVAR(_tkinter_create__doc__,
-"create($module, screenName=None, baseName=\'\', className=\'Tk\',\n"
+"create($module, screenName=None, baseName=\'\', className=\'Tk\',\n"
" interactive=False, wantobjects=False, wantTk=True, sync=False,\n"
" use=None, /)\n"
"--\n"
@@ -689,7 +689,7 @@ PyDoc_STRVAR(_tkinter_create__doc__,
" if not None, then pass -use to wish");
#define _TKINTER_CREATE_METHODDEF \
- {"create", (PyCFunction)(void(*)(void))_tkinter_create, METH_FASTCALL, _tkinter_create__doc__},
+ {"create", (PyCFunction)(void(*)(void))_tkinter_create, METH_FASTCALL, _tkinter_create__doc__},
static PyObject *
_tkinter_create_impl(PyObject *module, const char *screenName,
@@ -702,7 +702,7 @@ _tkinter_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
const char *screenName = NULL;
- const char *baseName = "";
+ const char *baseName = "";
const char *className = "Tk";
int interactive = 0;
int wantobjects = 0;
@@ -710,132 +710,132 @@ _tkinter_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int sync = 0;
const char *use = NULL;
- if (!_PyArg_CheckPositional("create", nargs, 0, 8)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (args[0] == Py_None) {
- screenName = NULL;
- }
- else if (PyUnicode_Check(args[0])) {
- Py_ssize_t screenName_length;
- screenName = PyUnicode_AsUTF8AndSize(args[0], &screenName_length);
- if (screenName == NULL) {
- goto exit;
- }
- if (strlen(screenName) != (size_t)screenName_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("create", "argument 1", "str or None", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("create", "argument 2", "str", args[1]);
- goto exit;
- }
- Py_ssize_t baseName_length;
- baseName = PyUnicode_AsUTF8AndSize(args[1], &baseName_length);
- if (baseName == NULL) {
- goto exit;
- }
- if (strlen(baseName) != (size_t)baseName_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("create", "argument 3", "str", args[2]);
- goto exit;
- }
- Py_ssize_t className_length;
- className = PyUnicode_AsUTF8AndSize(args[2], &className_length);
- if (className == NULL) {
- goto exit;
- }
- if (strlen(className) != (size_t)className_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (nargs < 4) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- interactive = _PyLong_AsInt(args[3]);
- if (interactive == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 5) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[4])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- wantobjects = _PyLong_AsInt(args[4]);
- if (wantobjects == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 6) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- wantTk = _PyLong_AsInt(args[5]);
- if (wantTk == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 7) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- sync = _PyLong_AsInt(args[6]);
- if (sync == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 8) {
- goto skip_optional;
- }
- if (args[7] == Py_None) {
- use = NULL;
- }
- else if (PyUnicode_Check(args[7])) {
- Py_ssize_t use_length;
- use = PyUnicode_AsUTF8AndSize(args[7], &use_length);
- if (use == NULL) {
- goto exit;
- }
- if (strlen(use) != (size_t)use_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("create", "argument 8", "str or None", args[7]);
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("create", nargs, 0, 8)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (args[0] == Py_None) {
+ screenName = NULL;
+ }
+ else if (PyUnicode_Check(args[0])) {
+ Py_ssize_t screenName_length;
+ screenName = PyUnicode_AsUTF8AndSize(args[0], &screenName_length);
+ if (screenName == NULL) {
+ goto exit;
+ }
+ if (strlen(screenName) != (size_t)screenName_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("create", "argument 1", "str or None", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("create", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t baseName_length;
+ baseName = PyUnicode_AsUTF8AndSize(args[1], &baseName_length);
+ if (baseName == NULL) {
+ goto exit;
+ }
+ if (strlen(baseName) != (size_t)baseName_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("create", "argument 3", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t className_length;
+ className = PyUnicode_AsUTF8AndSize(args[2], &className_length);
+ if (className == NULL) {
+ goto exit;
+ }
+ if (strlen(className) != (size_t)className_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ interactive = _PyLong_AsInt(args[3]);
+ if (interactive == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 5) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[4])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ wantobjects = _PyLong_AsInt(args[4]);
+ if (wantobjects == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 6) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ wantTk = _PyLong_AsInt(args[5]);
+ if (wantTk == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 7) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ sync = _PyLong_AsInt(args[6]);
+ if (sync == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 8) {
+ goto skip_optional;
+ }
+ if (args[7] == Py_None) {
+ use = NULL;
+ }
+ else if (PyUnicode_Check(args[7])) {
+ Py_ssize_t use_length;
+ use = PyUnicode_AsUTF8AndSize(args[7], &use_length);
+ if (use == NULL) {
+ goto exit;
+ }
+ if (strlen(use) != (size_t)use_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("create", "argument 8", "str or None", args[7]);
+ goto exit;
+ }
+skip_optional:
return_value = _tkinter_create_impl(module, screenName, baseName, className, interactive, wantobjects, wantTk, sync, use);
exit:
@@ -862,15 +862,15 @@ _tkinter_setbusywaitinterval(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int new_val;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ new_val = _PyLong_AsInt(arg);
+ if (new_val == -1 && PyErr_Occurred()) {
goto exit;
}
- new_val = _PyLong_AsInt(arg);
- if (new_val == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = _tkinter_setbusywaitinterval_impl(module, new_val);
exit:
@@ -912,4 +912,4 @@ exit:
#ifndef _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
#define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
#endif /* !defined(_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF) */
-/*[clinic end generated code: output=492b8b833fe54bc9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=492b8b833fe54bc9 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_tracemalloc.c.h b/contrib/tools/python3/src/Modules/clinic/_tracemalloc.c.h
index 53757ee698..049cacd832 100644
--- a/contrib/tools/python3/src/Modules/clinic/_tracemalloc.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_tracemalloc.c.h
@@ -84,7 +84,7 @@ PyDoc_STRVAR(_tracemalloc_start__doc__,
"trace to nframe.");
#define _TRACEMALLOC_START_METHODDEF \
- {"start", (PyCFunction)(void(*)(void))_tracemalloc_start, METH_FASTCALL, _tracemalloc_start__doc__},
+ {"start", (PyCFunction)(void(*)(void))_tracemalloc_start, METH_FASTCALL, _tracemalloc_start__doc__},
static PyObject *
_tracemalloc_start_impl(PyObject *module, int nframe);
@@ -95,22 +95,22 @@ _tracemalloc_start(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
int nframe = 1;
- if (!_PyArg_CheckPositional("start", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("start", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- nframe = _PyLong_AsInt(args[0]);
- if (nframe == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nframe = _PyLong_AsInt(args[0]);
+ if (nframe == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = _tracemalloc_start_impl(module, nframe);
exit:
@@ -197,24 +197,24 @@ _tracemalloc_get_traced_memory(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return _tracemalloc_get_traced_memory_impl(module);
}
-
-PyDoc_STRVAR(_tracemalloc_reset_peak__doc__,
-"reset_peak($module, /)\n"
-"--\n"
-"\n"
-"Set the peak size of memory blocks traced by tracemalloc to the current size.\n"
-"\n"
-"Do nothing if the tracemalloc module is not tracing memory allocations.");
-
-#define _TRACEMALLOC_RESET_PEAK_METHODDEF \
- {"reset_peak", (PyCFunction)_tracemalloc_reset_peak, METH_NOARGS, _tracemalloc_reset_peak__doc__},
-
-static PyObject *
-_tracemalloc_reset_peak_impl(PyObject *module);
-
-static PyObject *
-_tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return _tracemalloc_reset_peak_impl(module);
-}
-/*[clinic end generated code: output=a130117b1af821da input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(_tracemalloc_reset_peak__doc__,
+"reset_peak($module, /)\n"
+"--\n"
+"\n"
+"Set the peak size of memory blocks traced by tracemalloc to the current size.\n"
+"\n"
+"Do nothing if the tracemalloc module is not tracing memory allocations.");
+
+#define _TRACEMALLOC_RESET_PEAK_METHODDEF \
+ {"reset_peak", (PyCFunction)_tracemalloc_reset_peak, METH_NOARGS, _tracemalloc_reset_peak__doc__},
+
+static PyObject *
+_tracemalloc_reset_peak_impl(PyObject *module);
+
+static PyObject *
+_tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return _tracemalloc_reset_peak_impl(module);
+}
+/*[clinic end generated code: output=a130117b1af821da input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_weakref.c.h b/contrib/tools/python3/src/Modules/clinic/_weakref.c.h
index 46cb603ef0..c3a908fa6a 100644
--- a/contrib/tools/python3/src/Modules/clinic/_weakref.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_weakref.c.h
@@ -37,7 +37,7 @@ PyDoc_STRVAR(_weakref__remove_dead_weakref__doc__,
"Atomically remove key from dict if it points to a dead weakref.");
#define _WEAKREF__REMOVE_DEAD_WEAKREF_METHODDEF \
- {"_remove_dead_weakref", (PyCFunction)(void(*)(void))_weakref__remove_dead_weakref, METH_FASTCALL, _weakref__remove_dead_weakref__doc__},
+ {"_remove_dead_weakref", (PyCFunction)(void(*)(void))_weakref__remove_dead_weakref, METH_FASTCALL, _weakref__remove_dead_weakref__doc__},
static PyObject *
_weakref__remove_dead_weakref_impl(PyObject *module, PyObject *dct,
@@ -50,18 +50,18 @@ _weakref__remove_dead_weakref(PyObject *module, PyObject *const *args, Py_ssize_
PyObject *dct;
PyObject *key;
- if (!_PyArg_CheckPositional("_remove_dead_weakref", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("_remove_dead_weakref", nargs, 2, 2)) {
goto exit;
}
- if (!PyDict_Check(args[0])) {
- _PyArg_BadArgument("_remove_dead_weakref", "argument 1", "dict", args[0]);
- goto exit;
- }
- dct = args[0];
- key = args[1];
+ if (!PyDict_Check(args[0])) {
+ _PyArg_BadArgument("_remove_dead_weakref", "argument 1", "dict", args[0]);
+ goto exit;
+ }
+ dct = args[0];
+ key = args[1];
return_value = _weakref__remove_dead_weakref_impl(module, dct, key);
exit:
return return_value;
}
-/*[clinic end generated code: output=c543dc2cd6ece975 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c543dc2cd6ece975 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/_winapi.c.h b/contrib/tools/python3/src/Modules/clinic/_winapi.c.h
index b87ecd32cc..e21f2bc2b6 100644
--- a/contrib/tools/python3/src/Modules/clinic/_winapi.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/_winapi.c.h
@@ -19,8 +19,8 @@ _winapi_Overlapped_GetOverlappedResult(OverlappedObject *self, PyObject *arg)
PyObject *return_value = NULL;
int wait;
- wait = PyObject_IsTrue(arg);
- if (wait < 0) {
+ wait = PyObject_IsTrue(arg);
+ if (wait < 0) {
goto exit;
}
return_value = _winapi_Overlapped_GetOverlappedResult_impl(self, wait);
@@ -96,7 +96,7 @@ PyDoc_STRVAR(_winapi_ConnectNamedPipe__doc__,
"\n");
#define _WINAPI_CONNECTNAMEDPIPE_METHODDEF \
- {"ConnectNamedPipe", (PyCFunction)(void(*)(void))_winapi_ConnectNamedPipe, METH_FASTCALL|METH_KEYWORDS, _winapi_ConnectNamedPipe__doc__},
+ {"ConnectNamedPipe", (PyCFunction)(void(*)(void))_winapi_ConnectNamedPipe, METH_FASTCALL|METH_KEYWORDS, _winapi_ConnectNamedPipe__doc__},
static PyObject *
_winapi_ConnectNamedPipe_impl(PyObject *module, HANDLE handle,
@@ -129,7 +129,7 @@ PyDoc_STRVAR(_winapi_CreateFile__doc__,
"\n");
#define _WINAPI_CREATEFILE_METHODDEF \
- {"CreateFile", (PyCFunction)(void(*)(void))_winapi_CreateFile, METH_FASTCALL, _winapi_CreateFile__doc__},
+ {"CreateFile", (PyCFunction)(void(*)(void))_winapi_CreateFile, METH_FASTCALL, _winapi_CreateFile__doc__},
static HANDLE
_winapi_CreateFile_impl(PyObject *module, LPCTSTR file_name,
@@ -168,57 +168,57 @@ exit:
return return_value;
}
-PyDoc_STRVAR(_winapi_CreateFileMapping__doc__,
-"CreateFileMapping($module, file_handle, security_attributes, protect,\n"
-" max_size_high, max_size_low, name, /)\n"
-"--\n"
-"\n");
-
-#define _WINAPI_CREATEFILEMAPPING_METHODDEF \
- {"CreateFileMapping", (PyCFunction)(void(*)(void))_winapi_CreateFileMapping, METH_FASTCALL, _winapi_CreateFileMapping__doc__},
-
-static HANDLE
-_winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle,
- LPSECURITY_ATTRIBUTES security_attributes,
- DWORD protect, DWORD max_size_high,
- DWORD max_size_low, LPCWSTR name);
-
-static PyObject *
-_winapi_CreateFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- HANDLE file_handle;
- LPSECURITY_ATTRIBUTES security_attributes;
- DWORD protect;
- DWORD max_size_high;
- DWORD max_size_low;
- LPCWSTR name;
- HANDLE _return_value;
-
- if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "" F_POINTER "kkku:CreateFileMapping",
- &file_handle, &security_attributes, &protect, &max_size_high, &max_size_low, &name)) {
- goto exit;
- }
- _return_value = _winapi_CreateFileMapping_impl(module, file_handle, security_attributes, protect, max_size_high, max_size_low, name);
- if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) {
- goto exit;
- }
- if (_return_value == NULL) {
- Py_RETURN_NONE;
- }
- return_value = HANDLE_TO_PYNUM(_return_value);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(_winapi_CreateFileMapping__doc__,
+"CreateFileMapping($module, file_handle, security_attributes, protect,\n"
+" max_size_high, max_size_low, name, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_CREATEFILEMAPPING_METHODDEF \
+ {"CreateFileMapping", (PyCFunction)(void(*)(void))_winapi_CreateFileMapping, METH_FASTCALL, _winapi_CreateFileMapping__doc__},
+
+static HANDLE
+_winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle,
+ LPSECURITY_ATTRIBUTES security_attributes,
+ DWORD protect, DWORD max_size_high,
+ DWORD max_size_low, LPCWSTR name);
+
+static PyObject *
+_winapi_CreateFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ HANDLE file_handle;
+ LPSECURITY_ATTRIBUTES security_attributes;
+ DWORD protect;
+ DWORD max_size_high;
+ DWORD max_size_low;
+ LPCWSTR name;
+ HANDLE _return_value;
+
+ if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "" F_POINTER "kkku:CreateFileMapping",
+ &file_handle, &security_attributes, &protect, &max_size_high, &max_size_low, &name)) {
+ goto exit;
+ }
+ _return_value = _winapi_CreateFileMapping_impl(module, file_handle, security_attributes, protect, max_size_high, max_size_low, name);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (_return_value == NULL) {
+ Py_RETURN_NONE;
+ }
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_winapi_CreateJunction__doc__,
"CreateJunction($module, src_path, dst_path, /)\n"
"--\n"
"\n");
#define _WINAPI_CREATEJUNCTION_METHODDEF \
- {"CreateJunction", (PyCFunction)(void(*)(void))_winapi_CreateJunction, METH_FASTCALL, _winapi_CreateJunction__doc__},
+ {"CreateJunction", (PyCFunction)(void(*)(void))_winapi_CreateJunction, METH_FASTCALL, _winapi_CreateJunction__doc__},
static PyObject *
_winapi_CreateJunction_impl(PyObject *module, LPWSTR src_path,
@@ -249,7 +249,7 @@ PyDoc_STRVAR(_winapi_CreateNamedPipe__doc__,
"\n");
#define _WINAPI_CREATENAMEDPIPE_METHODDEF \
- {"CreateNamedPipe", (PyCFunction)(void(*)(void))_winapi_CreateNamedPipe, METH_FASTCALL, _winapi_CreateNamedPipe__doc__},
+ {"CreateNamedPipe", (PyCFunction)(void(*)(void))_winapi_CreateNamedPipe, METH_FASTCALL, _winapi_CreateNamedPipe__doc__},
static HANDLE
_winapi_CreateNamedPipe_impl(PyObject *module, LPCTSTR name, DWORD open_mode,
@@ -301,7 +301,7 @@ PyDoc_STRVAR(_winapi_CreatePipe__doc__,
"Returns a 2-tuple of handles, to the read and write ends of the pipe.");
#define _WINAPI_CREATEPIPE_METHODDEF \
- {"CreatePipe", (PyCFunction)(void(*)(void))_winapi_CreatePipe, METH_FASTCALL, _winapi_CreatePipe__doc__},
+ {"CreatePipe", (PyCFunction)(void(*)(void))_winapi_CreatePipe, METH_FASTCALL, _winapi_CreatePipe__doc__},
static PyObject *
_winapi_CreatePipe_impl(PyObject *module, PyObject *pipe_attrs, DWORD size);
@@ -342,7 +342,7 @@ PyDoc_STRVAR(_winapi_CreateProcess__doc__,
"process ID, and thread ID.");
#define _WINAPI_CREATEPROCESS_METHODDEF \
- {"CreateProcess", (PyCFunction)(void(*)(void))_winapi_CreateProcess, METH_FASTCALL, _winapi_CreateProcess__doc__},
+ {"CreateProcess", (PyCFunction)(void(*)(void))_winapi_CreateProcess, METH_FASTCALL, _winapi_CreateProcess__doc__},
static PyObject *
_winapi_CreateProcess_impl(PyObject *module,
@@ -390,7 +390,7 @@ PyDoc_STRVAR(_winapi_DuplicateHandle__doc__,
"through both handles.");
#define _WINAPI_DUPLICATEHANDLE_METHODDEF \
- {"DuplicateHandle", (PyCFunction)(void(*)(void))_winapi_DuplicateHandle, METH_FASTCALL, _winapi_DuplicateHandle__doc__},
+ {"DuplicateHandle", (PyCFunction)(void(*)(void))_winapi_DuplicateHandle, METH_FASTCALL, _winapi_DuplicateHandle__doc__},
static HANDLE
_winapi_DuplicateHandle_impl(PyObject *module, HANDLE source_process_handle,
@@ -646,90 +646,90 @@ exit:
return return_value;
}
-PyDoc_STRVAR(_winapi_MapViewOfFile__doc__,
-"MapViewOfFile($module, file_map, desired_access, file_offset_high,\n"
-" file_offset_low, number_bytes, /)\n"
-"--\n"
-"\n");
-
-#define _WINAPI_MAPVIEWOFFILE_METHODDEF \
- {"MapViewOfFile", (PyCFunction)(void(*)(void))_winapi_MapViewOfFile, METH_FASTCALL, _winapi_MapViewOfFile__doc__},
-
-static LPVOID
-_winapi_MapViewOfFile_impl(PyObject *module, HANDLE file_map,
- DWORD desired_access, DWORD file_offset_high,
- DWORD file_offset_low, size_t number_bytes);
-
-static PyObject *
-_winapi_MapViewOfFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- HANDLE file_map;
- DWORD desired_access;
- DWORD file_offset_high;
- DWORD file_offset_low;
- size_t number_bytes;
- LPVOID _return_value;
-
- if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "kkkO&:MapViewOfFile",
- &file_map, &desired_access, &file_offset_high, &file_offset_low, _PyLong_Size_t_Converter, &number_bytes)) {
- goto exit;
- }
- _return_value = _winapi_MapViewOfFile_impl(module, file_map, desired_access, file_offset_high, file_offset_low, number_bytes);
- if ((_return_value == NULL) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = HANDLE_TO_PYNUM(_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(_winapi_OpenFileMapping__doc__,
-"OpenFileMapping($module, desired_access, inherit_handle, name, /)\n"
-"--\n"
-"\n");
-
-#define _WINAPI_OPENFILEMAPPING_METHODDEF \
- {"OpenFileMapping", (PyCFunction)(void(*)(void))_winapi_OpenFileMapping, METH_FASTCALL, _winapi_OpenFileMapping__doc__},
-
-static HANDLE
-_winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access,
- BOOL inherit_handle, LPCWSTR name);
-
-static PyObject *
-_winapi_OpenFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- DWORD desired_access;
- BOOL inherit_handle;
- LPCWSTR name;
- HANDLE _return_value;
-
- if (!_PyArg_ParseStack(args, nargs, "kiu:OpenFileMapping",
- &desired_access, &inherit_handle, &name)) {
- goto exit;
- }
- _return_value = _winapi_OpenFileMapping_impl(module, desired_access, inherit_handle, name);
- if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) {
- goto exit;
- }
- if (_return_value == NULL) {
- Py_RETURN_NONE;
- }
- return_value = HANDLE_TO_PYNUM(_return_value);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(_winapi_MapViewOfFile__doc__,
+"MapViewOfFile($module, file_map, desired_access, file_offset_high,\n"
+" file_offset_low, number_bytes, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_MAPVIEWOFFILE_METHODDEF \
+ {"MapViewOfFile", (PyCFunction)(void(*)(void))_winapi_MapViewOfFile, METH_FASTCALL, _winapi_MapViewOfFile__doc__},
+
+static LPVOID
+_winapi_MapViewOfFile_impl(PyObject *module, HANDLE file_map,
+ DWORD desired_access, DWORD file_offset_high,
+ DWORD file_offset_low, size_t number_bytes);
+
+static PyObject *
+_winapi_MapViewOfFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ HANDLE file_map;
+ DWORD desired_access;
+ DWORD file_offset_high;
+ DWORD file_offset_low;
+ size_t number_bytes;
+ LPVOID _return_value;
+
+ if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "kkkO&:MapViewOfFile",
+ &file_map, &desired_access, &file_offset_high, &file_offset_low, _PyLong_Size_t_Converter, &number_bytes)) {
+ goto exit;
+ }
+ _return_value = _winapi_MapViewOfFile_impl(module, file_map, desired_access, file_offset_high, file_offset_low, number_bytes);
+ if ((_return_value == NULL) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(_winapi_OpenFileMapping__doc__,
+"OpenFileMapping($module, desired_access, inherit_handle, name, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_OPENFILEMAPPING_METHODDEF \
+ {"OpenFileMapping", (PyCFunction)(void(*)(void))_winapi_OpenFileMapping, METH_FASTCALL, _winapi_OpenFileMapping__doc__},
+
+static HANDLE
+_winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access,
+ BOOL inherit_handle, LPCWSTR name);
+
+static PyObject *
+_winapi_OpenFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ DWORD desired_access;
+ BOOL inherit_handle;
+ LPCWSTR name;
+ HANDLE _return_value;
+
+ if (!_PyArg_ParseStack(args, nargs, "kiu:OpenFileMapping",
+ &desired_access, &inherit_handle, &name)) {
+ goto exit;
+ }
+ _return_value = _winapi_OpenFileMapping_impl(module, desired_access, inherit_handle, name);
+ if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (_return_value == NULL) {
+ Py_RETURN_NONE;
+ }
+ return_value = HANDLE_TO_PYNUM(_return_value);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_winapi_OpenProcess__doc__,
"OpenProcess($module, desired_access, inherit_handle, process_id, /)\n"
"--\n"
"\n");
#define _WINAPI_OPENPROCESS_METHODDEF \
- {"OpenProcess", (PyCFunction)(void(*)(void))_winapi_OpenProcess, METH_FASTCALL, _winapi_OpenProcess__doc__},
+ {"OpenProcess", (PyCFunction)(void(*)(void))_winapi_OpenProcess, METH_FASTCALL, _winapi_OpenProcess__doc__},
static HANDLE
_winapi_OpenProcess_impl(PyObject *module, DWORD desired_access,
@@ -767,7 +767,7 @@ PyDoc_STRVAR(_winapi_PeekNamedPipe__doc__,
"\n");
#define _WINAPI_PEEKNAMEDPIPE_METHODDEF \
- {"PeekNamedPipe", (PyCFunction)(void(*)(void))_winapi_PeekNamedPipe, METH_FASTCALL, _winapi_PeekNamedPipe__doc__},
+ {"PeekNamedPipe", (PyCFunction)(void(*)(void))_winapi_PeekNamedPipe, METH_FASTCALL, _winapi_PeekNamedPipe__doc__},
static PyObject *
_winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size);
@@ -795,7 +795,7 @@ PyDoc_STRVAR(_winapi_ReadFile__doc__,
"\n");
#define _WINAPI_READFILE_METHODDEF \
- {"ReadFile", (PyCFunction)(void(*)(void))_winapi_ReadFile, METH_FASTCALL|METH_KEYWORDS, _winapi_ReadFile__doc__},
+ {"ReadFile", (PyCFunction)(void(*)(void))_winapi_ReadFile, METH_FASTCALL|METH_KEYWORDS, _winapi_ReadFile__doc__},
static PyObject *
_winapi_ReadFile_impl(PyObject *module, HANDLE handle, DWORD size,
@@ -828,7 +828,7 @@ PyDoc_STRVAR(_winapi_SetNamedPipeHandleState__doc__,
"\n");
#define _WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF \
- {"SetNamedPipeHandleState", (PyCFunction)(void(*)(void))_winapi_SetNamedPipeHandleState, METH_FASTCALL, _winapi_SetNamedPipeHandleState__doc__},
+ {"SetNamedPipeHandleState", (PyCFunction)(void(*)(void))_winapi_SetNamedPipeHandleState, METH_FASTCALL, _winapi_SetNamedPipeHandleState__doc__},
static PyObject *
_winapi_SetNamedPipeHandleState_impl(PyObject *module, HANDLE named_pipe,
@@ -862,7 +862,7 @@ PyDoc_STRVAR(_winapi_TerminateProcess__doc__,
"Terminate the specified process and all of its threads.");
#define _WINAPI_TERMINATEPROCESS_METHODDEF \
- {"TerminateProcess", (PyCFunction)(void(*)(void))_winapi_TerminateProcess, METH_FASTCALL, _winapi_TerminateProcess__doc__},
+ {"TerminateProcess", (PyCFunction)(void(*)(void))_winapi_TerminateProcess, METH_FASTCALL, _winapi_TerminateProcess__doc__},
static PyObject *
_winapi_TerminateProcess_impl(PyObject *module, HANDLE handle,
@@ -885,44 +885,44 @@ exit:
return return_value;
}
-PyDoc_STRVAR(_winapi_VirtualQuerySize__doc__,
-"VirtualQuerySize($module, address, /)\n"
-"--\n"
-"\n");
-
-#define _WINAPI_VIRTUALQUERYSIZE_METHODDEF \
- {"VirtualQuerySize", (PyCFunction)_winapi_VirtualQuerySize, METH_O, _winapi_VirtualQuerySize__doc__},
-
-static size_t
-_winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address);
-
-static PyObject *
-_winapi_VirtualQuerySize(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- LPCVOID address;
- size_t _return_value;
-
- if (!PyArg_Parse(arg, "" F_POINTER ":VirtualQuerySize", &address)) {
- goto exit;
- }
- _return_value = _winapi_VirtualQuerySize_impl(module, address);
- if ((_return_value == (size_t)-1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromSize_t(_return_value);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(_winapi_VirtualQuerySize__doc__,
+"VirtualQuerySize($module, address, /)\n"
+"--\n"
+"\n");
+
+#define _WINAPI_VIRTUALQUERYSIZE_METHODDEF \
+ {"VirtualQuerySize", (PyCFunction)_winapi_VirtualQuerySize, METH_O, _winapi_VirtualQuerySize__doc__},
+
+static size_t
+_winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address);
+
+static PyObject *
+_winapi_VirtualQuerySize(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ LPCVOID address;
+ size_t _return_value;
+
+ if (!PyArg_Parse(arg, "" F_POINTER ":VirtualQuerySize", &address)) {
+ goto exit;
+ }
+ _return_value = _winapi_VirtualQuerySize_impl(module, address);
+ if ((_return_value == (size_t)-1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromSize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(_winapi_WaitNamedPipe__doc__,
"WaitNamedPipe($module, name, timeout, /)\n"
"--\n"
"\n");
#define _WINAPI_WAITNAMEDPIPE_METHODDEF \
- {"WaitNamedPipe", (PyCFunction)(void(*)(void))_winapi_WaitNamedPipe, METH_FASTCALL, _winapi_WaitNamedPipe__doc__},
+ {"WaitNamedPipe", (PyCFunction)(void(*)(void))_winapi_WaitNamedPipe, METH_FASTCALL, _winapi_WaitNamedPipe__doc__},
static PyObject *
_winapi_WaitNamedPipe_impl(PyObject *module, LPCTSTR name, DWORD timeout);
@@ -951,7 +951,7 @@ PyDoc_STRVAR(_winapi_WaitForMultipleObjects__doc__,
"\n");
#define _WINAPI_WAITFORMULTIPLEOBJECTS_METHODDEF \
- {"WaitForMultipleObjects", (PyCFunction)(void(*)(void))_winapi_WaitForMultipleObjects, METH_FASTCALL, _winapi_WaitForMultipleObjects__doc__},
+ {"WaitForMultipleObjects", (PyCFunction)(void(*)(void))_winapi_WaitForMultipleObjects, METH_FASTCALL, _winapi_WaitForMultipleObjects__doc__},
static PyObject *
_winapi_WaitForMultipleObjects_impl(PyObject *module, PyObject *handle_seq,
@@ -986,7 +986,7 @@ PyDoc_STRVAR(_winapi_WaitForSingleObject__doc__,
"in milliseconds.");
#define _WINAPI_WAITFORSINGLEOBJECT_METHODDEF \
- {"WaitForSingleObject", (PyCFunction)(void(*)(void))_winapi_WaitForSingleObject, METH_FASTCALL, _winapi_WaitForSingleObject__doc__},
+ {"WaitForSingleObject", (PyCFunction)(void(*)(void))_winapi_WaitForSingleObject, METH_FASTCALL, _winapi_WaitForSingleObject__doc__},
static long
_winapi_WaitForSingleObject_impl(PyObject *module, HANDLE handle,
@@ -1020,7 +1020,7 @@ PyDoc_STRVAR(_winapi_WriteFile__doc__,
"\n");
#define _WINAPI_WRITEFILE_METHODDEF \
- {"WriteFile", (PyCFunction)(void(*)(void))_winapi_WriteFile, METH_FASTCALL|METH_KEYWORDS, _winapi_WriteFile__doc__},
+ {"WriteFile", (PyCFunction)(void(*)(void))_winapi_WriteFile, METH_FASTCALL|METH_KEYWORDS, _winapi_WriteFile__doc__},
static PyObject *
_winapi_WriteFile_impl(PyObject *module, HANDLE handle, PyObject *buffer,
@@ -1070,7 +1070,7 @@ PyDoc_STRVAR(_winapi_GetFileType__doc__,
"\n");
#define _WINAPI_GETFILETYPE_METHODDEF \
- {"GetFileType", (PyCFunction)(void(*)(void))_winapi_GetFileType, METH_FASTCALL|METH_KEYWORDS, _winapi_GetFileType__doc__},
+ {"GetFileType", (PyCFunction)(void(*)(void))_winapi_GetFileType, METH_FASTCALL|METH_KEYWORDS, _winapi_GetFileType__doc__},
static DWORD
_winapi_GetFileType_impl(PyObject *module, HANDLE handle);
@@ -1097,4 +1097,4 @@ _winapi_GetFileType(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
exit:
return return_value;
}
-/*[clinic end generated code: output=f3897898ea1da99d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f3897898ea1da99d input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/arraymodule.c.h b/contrib/tools/python3/src/Modules/clinic/arraymodule.c.h
index 81bebc4204..005c7ffce4 100644
--- a/contrib/tools/python3/src/Modules/clinic/arraymodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/arraymodule.c.h
@@ -65,7 +65,7 @@ PyDoc_STRVAR(array_array_pop__doc__,
"i defaults to -1.");
#define ARRAY_ARRAY_POP_METHODDEF \
- {"pop", (PyCFunction)(void(*)(void))array_array_pop, METH_FASTCALL, array_array_pop__doc__},
+ {"pop", (PyCFunction)(void(*)(void))array_array_pop, METH_FASTCALL, array_array_pop__doc__},
static PyObject *
array_array_pop_impl(arrayobject *self, Py_ssize_t i);
@@ -76,30 +76,30 @@ array_array_pop(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t i = -1;
- if (!_PyArg_CheckPositional("pop", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("pop", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- i = ival;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ i = ival;
+ }
+skip_optional:
return_value = array_array_pop_impl(self, i);
exit:
@@ -122,7 +122,7 @@ PyDoc_STRVAR(array_array_insert__doc__,
"Insert a new item v into the array before position i.");
#define ARRAY_ARRAY_INSERT_METHODDEF \
- {"insert", (PyCFunction)(void(*)(void))array_array_insert, METH_FASTCALL, array_array_insert__doc__},
+ {"insert", (PyCFunction)(void(*)(void))array_array_insert, METH_FASTCALL, array_array_insert__doc__},
static PyObject *
array_array_insert_impl(arrayobject *self, Py_ssize_t i, PyObject *v);
@@ -134,27 +134,27 @@ array_array_insert(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t i;
PyObject *v;
- if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- i = ival;
- }
- v = args[1];
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ i = ival;
+ }
+ v = args[1];
return_value = array_array_insert_impl(self, i, v);
exit:
@@ -237,7 +237,7 @@ PyDoc_STRVAR(array_array_fromfile__doc__,
"Read n objects from the file object f and append them to the end of the array.");
#define ARRAY_ARRAY_FROMFILE_METHODDEF \
- {"fromfile", (PyCFunction)(void(*)(void))array_array_fromfile, METH_FASTCALL, array_array_fromfile__doc__},
+ {"fromfile", (PyCFunction)(void(*)(void))array_array_fromfile, METH_FASTCALL, array_array_fromfile__doc__},
static PyObject *
array_array_fromfile_impl(arrayobject *self, PyObject *f, Py_ssize_t n);
@@ -249,27 +249,27 @@ array_array_fromfile(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *f;
Py_ssize_t n;
- if (!_PyArg_CheckPositional("fromfile", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("fromfile", nargs, 2, 2)) {
+ goto exit;
+ }
+ f = args[0];
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- f = args[0];
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- n = ival;
- }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ n = ival;
+ }
return_value = array_array_fromfile_impl(self, f, n);
exit:
@@ -316,7 +316,7 @@ PyDoc_STRVAR(array_array_frombytes__doc__,
"frombytes($self, buffer, /)\n"
"--\n"
"\n"
-"Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.");
+"Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.");
#define ARRAY_ARRAY_FROMBYTES_METHODDEF \
{"frombytes", (PyCFunction)array_array_frombytes, METH_O, array_array_frombytes__doc__},
@@ -330,13 +330,13 @@ array_array_frombytes(arrayobject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer buffer = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &buffer, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &buffer, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("frombytes", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("frombytes", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = array_array_frombytes_impl(self, &buffer);
exit:
@@ -380,23 +380,23 @@ PyDoc_STRVAR(array_array_fromunicode__doc__,
{"fromunicode", (PyCFunction)array_array_fromunicode, METH_O, array_array_fromunicode__doc__},
static PyObject *
-array_array_fromunicode_impl(arrayobject *self, PyObject *ustr);
+array_array_fromunicode_impl(arrayobject *self, PyObject *ustr);
static PyObject *
array_array_fromunicode(arrayobject *self, PyObject *arg)
{
PyObject *return_value = NULL;
- PyObject *ustr;
+ PyObject *ustr;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("fromunicode", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("fromunicode", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- ustr = arg;
- return_value = array_array_fromunicode_impl(self, ustr);
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ ustr = arg;
+ return_value = array_array_fromunicode_impl(self, ustr);
exit:
return return_value;
@@ -450,7 +450,7 @@ PyDoc_STRVAR(array__array_reconstructor__doc__,
"Internal. Used for pickling support.");
#define ARRAY__ARRAY_RECONSTRUCTOR_METHODDEF \
- {"_array_reconstructor", (PyCFunction)(void(*)(void))array__array_reconstructor, METH_FASTCALL, array__array_reconstructor__doc__},
+ {"_array_reconstructor", (PyCFunction)(void(*)(void))array__array_reconstructor, METH_FASTCALL, array__array_reconstructor__doc__},
static PyObject *
array__array_reconstructor_impl(PyObject *module, PyTypeObject *arraytype,
@@ -467,32 +467,32 @@ array__array_reconstructor(PyObject *module, PyObject *const *args, Py_ssize_t n
enum machine_format_code mformat_code;
PyObject *items;
- if (!_PyArg_CheckPositional("_array_reconstructor", nargs, 4, 4)) {
+ if (!_PyArg_CheckPositional("_array_reconstructor", nargs, 4, 4)) {
+ goto exit;
+ }
+ arraytype = (PyTypeObject *)args[0];
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("_array_reconstructor", "argument 2", "a unicode character", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1])) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(args[1]) != 1) {
+ _PyArg_BadArgument("_array_reconstructor", "argument 2", "a unicode character", args[1]);
+ goto exit;
+ }
+ typecode = PyUnicode_READ_CHAR(args[1], 0);
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mformat_code = _PyLong_AsInt(args[2]);
+ if (mformat_code == -1 && PyErr_Occurred()) {
goto exit;
}
- arraytype = (PyTypeObject *)args[0];
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("_array_reconstructor", "argument 2", "a unicode character", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1])) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(args[1]) != 1) {
- _PyArg_BadArgument("_array_reconstructor", "argument 2", "a unicode character", args[1]);
- goto exit;
- }
- typecode = PyUnicode_READ_CHAR(args[1], 0);
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mformat_code = _PyLong_AsInt(args[2]);
- if (mformat_code == -1 && PyErr_Occurred()) {
- goto exit;
- }
- items = args[3];
+ items = args[3];
return_value = array__array_reconstructor_impl(module, arraytype, typecode, mformat_code, items);
exit:
@@ -534,4 +534,4 @@ PyDoc_STRVAR(array_arrayiterator___setstate____doc__,
#define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF \
{"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__},
-/*[clinic end generated code: output=485e848d1f3d05e7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=485e848d1f3d05e7 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/audioop.c.h b/contrib/tools/python3/src/Modules/clinic/audioop.c.h
index a14d879b9d..8745533eeb 100644
--- a/contrib/tools/python3/src/Modules/clinic/audioop.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/audioop.c.h
@@ -9,7 +9,7 @@ PyDoc_STRVAR(audioop_getsample__doc__,
"Return the value of sample index from the fragment.");
#define AUDIOOP_GETSAMPLE_METHODDEF \
- {"getsample", (PyCFunction)(void(*)(void))audioop_getsample, METH_FASTCALL, audioop_getsample__doc__},
+ {"getsample", (PyCFunction)(void(*)(void))audioop_getsample, METH_FASTCALL, audioop_getsample__doc__},
static PyObject *
audioop_getsample_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -23,42 +23,42 @@ audioop_getsample(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int width;
Py_ssize_t index;
- if (!_PyArg_CheckPositional("getsample", nargs, 3, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("getsample", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- index = ival;
- }
+ if (!_PyArg_CheckPositional("getsample", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("getsample", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ index = ival;
+ }
return_value = audioop_getsample_impl(module, &fragment, width, index);
exit:
@@ -77,7 +77,7 @@ PyDoc_STRVAR(audioop_max__doc__,
"Return the maximum of the absolute value of all samples in a fragment.");
#define AUDIOOP_MAX_METHODDEF \
- {"max", (PyCFunction)(void(*)(void))audioop_max, METH_FASTCALL, audioop_max__doc__},
+ {"max", (PyCFunction)(void(*)(void))audioop_max, METH_FASTCALL, audioop_max__doc__},
static PyObject *
audioop_max_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -89,25 +89,25 @@ audioop_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("max", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("max", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("max", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("max", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_max_impl(module, &fragment, width);
exit:
@@ -126,7 +126,7 @@ PyDoc_STRVAR(audioop_minmax__doc__,
"Return the minimum and maximum values of all samples in the sound fragment.");
#define AUDIOOP_MINMAX_METHODDEF \
- {"minmax", (PyCFunction)(void(*)(void))audioop_minmax, METH_FASTCALL, audioop_minmax__doc__},
+ {"minmax", (PyCFunction)(void(*)(void))audioop_minmax, METH_FASTCALL, audioop_minmax__doc__},
static PyObject *
audioop_minmax_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -138,25 +138,25 @@ audioop_minmax(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("minmax", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("minmax", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("minmax", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("minmax", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_minmax_impl(module, &fragment, width);
exit:
@@ -175,7 +175,7 @@ PyDoc_STRVAR(audioop_avg__doc__,
"Return the average over all samples in the fragment.");
#define AUDIOOP_AVG_METHODDEF \
- {"avg", (PyCFunction)(void(*)(void))audioop_avg, METH_FASTCALL, audioop_avg__doc__},
+ {"avg", (PyCFunction)(void(*)(void))audioop_avg, METH_FASTCALL, audioop_avg__doc__},
static PyObject *
audioop_avg_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -187,25 +187,25 @@ audioop_avg(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("avg", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("avg", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("avg", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("avg", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_avg_impl(module, &fragment, width);
exit:
@@ -224,7 +224,7 @@ PyDoc_STRVAR(audioop_rms__doc__,
"Return the root-mean-square of the fragment, i.e. sqrt(sum(S_i^2)/n).");
#define AUDIOOP_RMS_METHODDEF \
- {"rms", (PyCFunction)(void(*)(void))audioop_rms, METH_FASTCALL, audioop_rms__doc__},
+ {"rms", (PyCFunction)(void(*)(void))audioop_rms, METH_FASTCALL, audioop_rms__doc__},
static PyObject *
audioop_rms_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -236,25 +236,25 @@ audioop_rms(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("rms", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("rms", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("rms", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("rms", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_rms_impl(module, &fragment, width);
exit:
@@ -273,7 +273,7 @@ PyDoc_STRVAR(audioop_findfit__doc__,
"Try to match reference as well as possible to a portion of fragment.");
#define AUDIOOP_FINDFIT_METHODDEF \
- {"findfit", (PyCFunction)(void(*)(void))audioop_findfit, METH_FASTCALL, audioop_findfit__doc__},
+ {"findfit", (PyCFunction)(void(*)(void))audioop_findfit, METH_FASTCALL, audioop_findfit__doc__},
static PyObject *
audioop_findfit_impl(PyObject *module, Py_buffer *fragment,
@@ -286,23 +286,23 @@ audioop_findfit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
Py_buffer reference = {NULL, NULL};
- if (!_PyArg_CheckPositional("findfit", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("findfit", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &reference, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&reference, 'C')) {
- _PyArg_BadArgument("findfit", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
+ if (!_PyArg_CheckPositional("findfit", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("findfit", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &reference, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&reference, 'C')) {
+ _PyArg_BadArgument("findfit", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
return_value = audioop_findfit_impl(module, &fragment, &reference);
exit:
@@ -325,7 +325,7 @@ PyDoc_STRVAR(audioop_findfactor__doc__,
"Return a factor F such that rms(add(fragment, mul(reference, -F))) is minimal.");
#define AUDIOOP_FINDFACTOR_METHODDEF \
- {"findfactor", (PyCFunction)(void(*)(void))audioop_findfactor, METH_FASTCALL, audioop_findfactor__doc__},
+ {"findfactor", (PyCFunction)(void(*)(void))audioop_findfactor, METH_FASTCALL, audioop_findfactor__doc__},
static PyObject *
audioop_findfactor_impl(PyObject *module, Py_buffer *fragment,
@@ -338,23 +338,23 @@ audioop_findfactor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
Py_buffer reference = {NULL, NULL};
- if (!_PyArg_CheckPositional("findfactor", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("findfactor", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &reference, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&reference, 'C')) {
- _PyArg_BadArgument("findfactor", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
+ if (!_PyArg_CheckPositional("findfactor", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("findfactor", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &reference, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&reference, 'C')) {
+ _PyArg_BadArgument("findfactor", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
return_value = audioop_findfactor_impl(module, &fragment, &reference);
exit:
@@ -377,7 +377,7 @@ PyDoc_STRVAR(audioop_findmax__doc__,
"Search fragment for a slice of specified number of samples with maximum energy.");
#define AUDIOOP_FINDMAX_METHODDEF \
- {"findmax", (PyCFunction)(void(*)(void))audioop_findmax, METH_FASTCALL, audioop_findmax__doc__},
+ {"findmax", (PyCFunction)(void(*)(void))audioop_findmax, METH_FASTCALL, audioop_findmax__doc__},
static PyObject *
audioop_findmax_impl(PyObject *module, Py_buffer *fragment,
@@ -390,33 +390,33 @@ audioop_findmax(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
Py_ssize_t length;
- if (!_PyArg_CheckPositional("findmax", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("findmax", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
+ if (!_PyArg_CheckPositional("findmax", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("findmax", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ length = ival;
+ }
return_value = audioop_findmax_impl(module, &fragment, length);
exit:
@@ -435,7 +435,7 @@ PyDoc_STRVAR(audioop_avgpp__doc__,
"Return the average peak-peak value over all samples in the fragment.");
#define AUDIOOP_AVGPP_METHODDEF \
- {"avgpp", (PyCFunction)(void(*)(void))audioop_avgpp, METH_FASTCALL, audioop_avgpp__doc__},
+ {"avgpp", (PyCFunction)(void(*)(void))audioop_avgpp, METH_FASTCALL, audioop_avgpp__doc__},
static PyObject *
audioop_avgpp_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -447,25 +447,25 @@ audioop_avgpp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("avgpp", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("avgpp", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("avgpp", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("avgpp", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_avgpp_impl(module, &fragment, width);
exit:
@@ -484,7 +484,7 @@ PyDoc_STRVAR(audioop_maxpp__doc__,
"Return the maximum peak-peak value in the sound fragment.");
#define AUDIOOP_MAXPP_METHODDEF \
- {"maxpp", (PyCFunction)(void(*)(void))audioop_maxpp, METH_FASTCALL, audioop_maxpp__doc__},
+ {"maxpp", (PyCFunction)(void(*)(void))audioop_maxpp, METH_FASTCALL, audioop_maxpp__doc__},
static PyObject *
audioop_maxpp_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -496,25 +496,25 @@ audioop_maxpp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("maxpp", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("maxpp", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("maxpp", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("maxpp", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_maxpp_impl(module, &fragment, width);
exit:
@@ -533,7 +533,7 @@ PyDoc_STRVAR(audioop_cross__doc__,
"Return the number of zero crossings in the fragment passed as an argument.");
#define AUDIOOP_CROSS_METHODDEF \
- {"cross", (PyCFunction)(void(*)(void))audioop_cross, METH_FASTCALL, audioop_cross__doc__},
+ {"cross", (PyCFunction)(void(*)(void))audioop_cross, METH_FASTCALL, audioop_cross__doc__},
static PyObject *
audioop_cross_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -545,25 +545,25 @@ audioop_cross(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("cross", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("cross", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("cross", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("cross", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_cross_impl(module, &fragment, width);
exit:
@@ -582,7 +582,7 @@ PyDoc_STRVAR(audioop_mul__doc__,
"Return a fragment that has all samples in the original fragment multiplied by the floating-point value factor.");
#define AUDIOOP_MUL_METHODDEF \
- {"mul", (PyCFunction)(void(*)(void))audioop_mul, METH_FASTCALL, audioop_mul__doc__},
+ {"mul", (PyCFunction)(void(*)(void))audioop_mul, METH_FASTCALL, audioop_mul__doc__},
static PyObject *
audioop_mul_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -596,35 +596,35 @@ audioop_mul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int width;
double factor;
- if (!_PyArg_CheckPositional("mul", nargs, 3, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("mul", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_CheckExact(args[2])) {
- factor = PyFloat_AS_DOUBLE(args[2]);
- }
- else
- {
- factor = PyFloat_AsDouble(args[2]);
- if (factor == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
+ if (!_PyArg_CheckPositional("mul", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("mul", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_CheckExact(args[2])) {
+ factor = PyFloat_AS_DOUBLE(args[2]);
+ }
+ else
+ {
+ factor = PyFloat_AsDouble(args[2]);
+ if (factor == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
return_value = audioop_mul_impl(module, &fragment, width, factor);
exit:
@@ -643,7 +643,7 @@ PyDoc_STRVAR(audioop_tomono__doc__,
"Convert a stereo fragment to a mono fragment.");
#define AUDIOOP_TOMONO_METHODDEF \
- {"tomono", (PyCFunction)(void(*)(void))audioop_tomono, METH_FASTCALL, audioop_tomono__doc__},
+ {"tomono", (PyCFunction)(void(*)(void))audioop_tomono, METH_FASTCALL, audioop_tomono__doc__},
static PyObject *
audioop_tomono_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -658,45 +658,45 @@ audioop_tomono(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
double lfactor;
double rfactor;
- if (!_PyArg_CheckPositional("tomono", nargs, 4, 4)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("tomono", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_CheckExact(args[2])) {
- lfactor = PyFloat_AS_DOUBLE(args[2]);
- }
- else
- {
- lfactor = PyFloat_AsDouble(args[2]);
- if (lfactor == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[3])) {
- rfactor = PyFloat_AS_DOUBLE(args[3]);
- }
- else
- {
- rfactor = PyFloat_AsDouble(args[3]);
- if (rfactor == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
+ if (!_PyArg_CheckPositional("tomono", nargs, 4, 4)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("tomono", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_CheckExact(args[2])) {
+ lfactor = PyFloat_AS_DOUBLE(args[2]);
+ }
+ else
+ {
+ lfactor = PyFloat_AsDouble(args[2]);
+ if (lfactor == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[3])) {
+ rfactor = PyFloat_AS_DOUBLE(args[3]);
+ }
+ else
+ {
+ rfactor = PyFloat_AsDouble(args[3]);
+ if (rfactor == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
return_value = audioop_tomono_impl(module, &fragment, width, lfactor, rfactor);
exit:
@@ -715,7 +715,7 @@ PyDoc_STRVAR(audioop_tostereo__doc__,
"Generate a stereo fragment from a mono fragment.");
#define AUDIOOP_TOSTEREO_METHODDEF \
- {"tostereo", (PyCFunction)(void(*)(void))audioop_tostereo, METH_FASTCALL, audioop_tostereo__doc__},
+ {"tostereo", (PyCFunction)(void(*)(void))audioop_tostereo, METH_FASTCALL, audioop_tostereo__doc__},
static PyObject *
audioop_tostereo_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -730,45 +730,45 @@ audioop_tostereo(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
double lfactor;
double rfactor;
- if (!_PyArg_CheckPositional("tostereo", nargs, 4, 4)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("tostereo", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_CheckExact(args[2])) {
- lfactor = PyFloat_AS_DOUBLE(args[2]);
- }
- else
- {
- lfactor = PyFloat_AsDouble(args[2]);
- if (lfactor == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[3])) {
- rfactor = PyFloat_AS_DOUBLE(args[3]);
- }
- else
- {
- rfactor = PyFloat_AsDouble(args[3]);
- if (rfactor == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
+ if (!_PyArg_CheckPositional("tostereo", nargs, 4, 4)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("tostereo", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_CheckExact(args[2])) {
+ lfactor = PyFloat_AS_DOUBLE(args[2]);
+ }
+ else
+ {
+ lfactor = PyFloat_AsDouble(args[2]);
+ if (lfactor == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[3])) {
+ rfactor = PyFloat_AS_DOUBLE(args[3]);
+ }
+ else
+ {
+ rfactor = PyFloat_AsDouble(args[3]);
+ if (rfactor == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
return_value = audioop_tostereo_impl(module, &fragment, width, lfactor, rfactor);
exit:
@@ -787,7 +787,7 @@ PyDoc_STRVAR(audioop_add__doc__,
"Return a fragment which is the addition of the two samples passed as parameters.");
#define AUDIOOP_ADD_METHODDEF \
- {"add", (PyCFunction)(void(*)(void))audioop_add, METH_FASTCALL, audioop_add__doc__},
+ {"add", (PyCFunction)(void(*)(void))audioop_add, METH_FASTCALL, audioop_add__doc__},
static PyObject *
audioop_add_impl(PyObject *module, Py_buffer *fragment1,
@@ -801,32 +801,32 @@ audioop_add(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment2 = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("add", nargs, 3, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment1, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment1, 'C')) {
- _PyArg_BadArgument("add", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &fragment2, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment2, 'C')) {
- _PyArg_BadArgument("add", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[2]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("add", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment1, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment1, 'C')) {
+ _PyArg_BadArgument("add", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &fragment2, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment2, 'C')) {
+ _PyArg_BadArgument("add", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[2]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_add_impl(module, &fragment1, &fragment2, width);
exit:
@@ -849,7 +849,7 @@ PyDoc_STRVAR(audioop_bias__doc__,
"Return a fragment that is the original fragment with a bias added to each sample.");
#define AUDIOOP_BIAS_METHODDEF \
- {"bias", (PyCFunction)(void(*)(void))audioop_bias, METH_FASTCALL, audioop_bias__doc__},
+ {"bias", (PyCFunction)(void(*)(void))audioop_bias, METH_FASTCALL, audioop_bias__doc__},
static PyObject *
audioop_bias_impl(PyObject *module, Py_buffer *fragment, int width, int bias);
@@ -862,34 +862,34 @@ audioop_bias(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int width;
int bias;
- if (!_PyArg_CheckPositional("bias", nargs, 3, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("bias", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- bias = _PyLong_AsInt(args[2]);
- if (bias == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("bias", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("bias", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ bias = _PyLong_AsInt(args[2]);
+ if (bias == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_bias_impl(module, &fragment, width, bias);
exit:
@@ -908,7 +908,7 @@ PyDoc_STRVAR(audioop_reverse__doc__,
"Reverse the samples in a fragment and returns the modified fragment.");
#define AUDIOOP_REVERSE_METHODDEF \
- {"reverse", (PyCFunction)(void(*)(void))audioop_reverse, METH_FASTCALL, audioop_reverse__doc__},
+ {"reverse", (PyCFunction)(void(*)(void))audioop_reverse, METH_FASTCALL, audioop_reverse__doc__},
static PyObject *
audioop_reverse_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -920,25 +920,25 @@ audioop_reverse(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("reverse", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("reverse", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("reverse", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("reverse", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_reverse_impl(module, &fragment, width);
exit:
@@ -957,7 +957,7 @@ PyDoc_STRVAR(audioop_byteswap__doc__,
"Convert big-endian samples to little-endian and vice versa.");
#define AUDIOOP_BYTESWAP_METHODDEF \
- {"byteswap", (PyCFunction)(void(*)(void))audioop_byteswap, METH_FASTCALL, audioop_byteswap__doc__},
+ {"byteswap", (PyCFunction)(void(*)(void))audioop_byteswap, METH_FASTCALL, audioop_byteswap__doc__},
static PyObject *
audioop_byteswap_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -969,25 +969,25 @@ audioop_byteswap(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("byteswap", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("byteswap", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("byteswap", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("byteswap", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_byteswap_impl(module, &fragment, width);
exit:
@@ -1006,7 +1006,7 @@ PyDoc_STRVAR(audioop_lin2lin__doc__,
"Convert samples between 1-, 2-, 3- and 4-byte formats.");
#define AUDIOOP_LIN2LIN_METHODDEF \
- {"lin2lin", (PyCFunction)(void(*)(void))audioop_lin2lin, METH_FASTCALL, audioop_lin2lin__doc__},
+ {"lin2lin", (PyCFunction)(void(*)(void))audioop_lin2lin, METH_FASTCALL, audioop_lin2lin__doc__},
static PyObject *
audioop_lin2lin_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -1020,34 +1020,34 @@ audioop_lin2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int width;
int newwidth;
- if (!_PyArg_CheckPositional("lin2lin", nargs, 3, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("lin2lin", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- newwidth = _PyLong_AsInt(args[2]);
- if (newwidth == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("lin2lin", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("lin2lin", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ newwidth = _PyLong_AsInt(args[2]);
+ if (newwidth == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_lin2lin_impl(module, &fragment, width, newwidth);
exit:
@@ -1067,7 +1067,7 @@ PyDoc_STRVAR(audioop_ratecv__doc__,
"Convert the frame rate of the input fragment.");
#define AUDIOOP_RATECV_METHODDEF \
- {"ratecv", (PyCFunction)(void(*)(void))audioop_ratecv, METH_FASTCALL, audioop_ratecv__doc__},
+ {"ratecv", (PyCFunction)(void(*)(void))audioop_ratecv, METH_FASTCALL, audioop_ratecv__doc__},
static PyObject *
audioop_ratecv_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -1087,78 +1087,78 @@ audioop_ratecv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int weightA = 1;
int weightB = 0;
- if (!_PyArg_CheckPositional("ratecv", nargs, 6, 8)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("ratecv", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- nchannels = _PyLong_AsInt(args[2]);
- if (nchannels == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- inrate = _PyLong_AsInt(args[3]);
- if (inrate == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[4])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- outrate = _PyLong_AsInt(args[4]);
- if (outrate == -1 && PyErr_Occurred()) {
- goto exit;
- }
- state = args[5];
- if (nargs < 7) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- weightA = _PyLong_AsInt(args[6]);
- if (weightA == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 8) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[7])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- weightB = _PyLong_AsInt(args[7]);
- if (weightB == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("ratecv", nargs, 6, 8)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("ratecv", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nchannels = _PyLong_AsInt(args[2]);
+ if (nchannels == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ inrate = _PyLong_AsInt(args[3]);
+ if (inrate == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[4])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ outrate = _PyLong_AsInt(args[4]);
+ if (outrate == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ state = args[5];
+ if (nargs < 7) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ weightA = _PyLong_AsInt(args[6]);
+ if (weightA == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 8) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[7])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ weightB = _PyLong_AsInt(args[7]);
+ if (weightB == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = audioop_ratecv_impl(module, &fragment, width, nchannels, inrate, outrate, state, weightA, weightB);
exit:
@@ -1177,7 +1177,7 @@ PyDoc_STRVAR(audioop_lin2ulaw__doc__,
"Convert samples in the audio fragment to u-LAW encoding.");
#define AUDIOOP_LIN2ULAW_METHODDEF \
- {"lin2ulaw", (PyCFunction)(void(*)(void))audioop_lin2ulaw, METH_FASTCALL, audioop_lin2ulaw__doc__},
+ {"lin2ulaw", (PyCFunction)(void(*)(void))audioop_lin2ulaw, METH_FASTCALL, audioop_lin2ulaw__doc__},
static PyObject *
audioop_lin2ulaw_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -1189,25 +1189,25 @@ audioop_lin2ulaw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("lin2ulaw", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("lin2ulaw", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("lin2ulaw", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("lin2ulaw", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_lin2ulaw_impl(module, &fragment, width);
exit:
@@ -1226,7 +1226,7 @@ PyDoc_STRVAR(audioop_ulaw2lin__doc__,
"Convert sound fragments in u-LAW encoding to linearly encoded sound fragments.");
#define AUDIOOP_ULAW2LIN_METHODDEF \
- {"ulaw2lin", (PyCFunction)(void(*)(void))audioop_ulaw2lin, METH_FASTCALL, audioop_ulaw2lin__doc__},
+ {"ulaw2lin", (PyCFunction)(void(*)(void))audioop_ulaw2lin, METH_FASTCALL, audioop_ulaw2lin__doc__},
static PyObject *
audioop_ulaw2lin_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -1238,25 +1238,25 @@ audioop_ulaw2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("ulaw2lin", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("ulaw2lin", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("ulaw2lin", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("ulaw2lin", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_ulaw2lin_impl(module, &fragment, width);
exit:
@@ -1275,7 +1275,7 @@ PyDoc_STRVAR(audioop_lin2alaw__doc__,
"Convert samples in the audio fragment to a-LAW encoding.");
#define AUDIOOP_LIN2ALAW_METHODDEF \
- {"lin2alaw", (PyCFunction)(void(*)(void))audioop_lin2alaw, METH_FASTCALL, audioop_lin2alaw__doc__},
+ {"lin2alaw", (PyCFunction)(void(*)(void))audioop_lin2alaw, METH_FASTCALL, audioop_lin2alaw__doc__},
static PyObject *
audioop_lin2alaw_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -1287,25 +1287,25 @@ audioop_lin2alaw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("lin2alaw", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("lin2alaw", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("lin2alaw", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("lin2alaw", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_lin2alaw_impl(module, &fragment, width);
exit:
@@ -1324,7 +1324,7 @@ PyDoc_STRVAR(audioop_alaw2lin__doc__,
"Convert sound fragments in a-LAW encoding to linearly encoded sound fragments.");
#define AUDIOOP_ALAW2LIN_METHODDEF \
- {"alaw2lin", (PyCFunction)(void(*)(void))audioop_alaw2lin, METH_FASTCALL, audioop_alaw2lin__doc__},
+ {"alaw2lin", (PyCFunction)(void(*)(void))audioop_alaw2lin, METH_FASTCALL, audioop_alaw2lin__doc__},
static PyObject *
audioop_alaw2lin_impl(PyObject *module, Py_buffer *fragment, int width);
@@ -1336,25 +1336,25 @@ audioop_alaw2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer fragment = {NULL, NULL};
int width;
- if (!_PyArg_CheckPositional("alaw2lin", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("alaw2lin", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("alaw2lin", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("alaw2lin", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = audioop_alaw2lin_impl(module, &fragment, width);
exit:
@@ -1373,7 +1373,7 @@ PyDoc_STRVAR(audioop_lin2adpcm__doc__,
"Convert samples to 4 bit Intel/DVI ADPCM encoding.");
#define AUDIOOP_LIN2ADPCM_METHODDEF \
- {"lin2adpcm", (PyCFunction)(void(*)(void))audioop_lin2adpcm, METH_FASTCALL, audioop_lin2adpcm__doc__},
+ {"lin2adpcm", (PyCFunction)(void(*)(void))audioop_lin2adpcm, METH_FASTCALL, audioop_lin2adpcm__doc__},
static PyObject *
audioop_lin2adpcm_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -1387,26 +1387,26 @@ audioop_lin2adpcm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int width;
PyObject *state;
- if (!_PyArg_CheckPositional("lin2adpcm", nargs, 3, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("lin2adpcm", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- state = args[2];
+ if (!_PyArg_CheckPositional("lin2adpcm", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("lin2adpcm", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ state = args[2];
return_value = audioop_lin2adpcm_impl(module, &fragment, width, state);
exit:
@@ -1425,7 +1425,7 @@ PyDoc_STRVAR(audioop_adpcm2lin__doc__,
"Decode an Intel/DVI ADPCM coded fragment to a linear fragment.");
#define AUDIOOP_ADPCM2LIN_METHODDEF \
- {"adpcm2lin", (PyCFunction)(void(*)(void))audioop_adpcm2lin, METH_FASTCALL, audioop_adpcm2lin__doc__},
+ {"adpcm2lin", (PyCFunction)(void(*)(void))audioop_adpcm2lin, METH_FASTCALL, audioop_adpcm2lin__doc__},
static PyObject *
audioop_adpcm2lin_impl(PyObject *module, Py_buffer *fragment, int width,
@@ -1439,26 +1439,26 @@ audioop_adpcm2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int width;
PyObject *state;
- if (!_PyArg_CheckPositional("adpcm2lin", nargs, 3, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&fragment, 'C')) {
- _PyArg_BadArgument("adpcm2lin", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- width = _PyLong_AsInt(args[1]);
- if (width == -1 && PyErr_Occurred()) {
- goto exit;
- }
- state = args[2];
+ if (!_PyArg_CheckPositional("adpcm2lin", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &fragment, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&fragment, 'C')) {
+ _PyArg_BadArgument("adpcm2lin", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ width = _PyLong_AsInt(args[1]);
+ if (width == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ state = args[2];
return_value = audioop_adpcm2lin_impl(module, &fragment, width, state);
exit:
@@ -1469,4 +1469,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=6b4f2c597f295abc input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6b4f2c597f295abc input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/binascii.c.h b/contrib/tools/python3/src/Modules/clinic/binascii.c.h
index 51b465edc8..4d02c72c47 100644
--- a/contrib/tools/python3/src/Modules/clinic/binascii.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/binascii.c.h
@@ -20,7 +20,7 @@ binascii_a2b_uu(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!ascii_buffer_converter(arg, &data)) {
+ if (!ascii_buffer_converter(arg, &data)) {
goto exit;
}
return_value = binascii_a2b_uu_impl(module, &data);
@@ -40,7 +40,7 @@ PyDoc_STRVAR(binascii_b2a_uu__doc__,
"Uuencode line of data.");
#define BINASCII_B2A_UU_METHODDEF \
- {"b2a_uu", (PyCFunction)(void(*)(void))binascii_b2a_uu, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_uu__doc__},
+ {"b2a_uu", (PyCFunction)(void(*)(void))binascii_b2a_uu, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_uu__doc__},
static PyObject *
binascii_b2a_uu_impl(PyObject *module, Py_buffer *data, int backtick);
@@ -50,36 +50,36 @@ binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "backtick", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "b2a_uu", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "b2a_uu", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
int backtick = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("b2a_uu", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- backtick = _PyLong_AsInt(args[1]);
- if (backtick == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("b2a_uu", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ backtick = _PyLong_AsInt(args[1]);
+ if (backtick == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = binascii_b2a_uu_impl(module, &data, backtick);
exit:
@@ -109,7 +109,7 @@ binascii_a2b_base64(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!ascii_buffer_converter(arg, &data)) {
+ if (!ascii_buffer_converter(arg, &data)) {
goto exit;
}
return_value = binascii_a2b_base64_impl(module, &data);
@@ -129,7 +129,7 @@ PyDoc_STRVAR(binascii_b2a_base64__doc__,
"Base64-code line of data.");
#define BINASCII_B2A_BASE64_METHODDEF \
- {"b2a_base64", (PyCFunction)(void(*)(void))binascii_b2a_base64, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_base64__doc__},
+ {"b2a_base64", (PyCFunction)(void(*)(void))binascii_b2a_base64, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_base64__doc__},
static PyObject *
binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline);
@@ -139,36 +139,36 @@ binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "newline", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "b2a_base64", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "b2a_base64", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
int newline = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("b2a_base64", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- newline = _PyLong_AsInt(args[1]);
- if (newline == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("b2a_base64", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ newline = _PyLong_AsInt(args[1]);
+ if (newline == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = binascii_b2a_base64_impl(module, &data, newline);
exit:
@@ -198,7 +198,7 @@ binascii_a2b_hqx(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (!ascii_buffer_converter(arg, &data)) {
+ if (!ascii_buffer_converter(arg, &data)) {
goto exit;
}
return_value = binascii_a2b_hqx_impl(module, &data);
@@ -229,13 +229,13 @@ binascii_rlecode_hqx(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("rlecode_hqx", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("rlecode_hqx", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = binascii_rlecode_hqx_impl(module, &data);
exit:
@@ -265,13 +265,13 @@ binascii_b2a_hqx(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("b2a_hqx", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("b2a_hqx", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = binascii_b2a_hqx_impl(module, &data);
exit:
@@ -301,13 +301,13 @@ binascii_rledecode_hqx(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("rledecode_hqx", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("rledecode_hqx", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = binascii_rledecode_hqx_impl(module, &data);
exit:
@@ -326,9 +326,9 @@ PyDoc_STRVAR(binascii_crc_hqx__doc__,
"Compute CRC-CCITT incrementally.");
#define BINASCII_CRC_HQX_METHODDEF \
- {"crc_hqx", (PyCFunction)(void(*)(void))binascii_crc_hqx, METH_FASTCALL, binascii_crc_hqx__doc__},
+ {"crc_hqx", (PyCFunction)(void(*)(void))binascii_crc_hqx, METH_FASTCALL, binascii_crc_hqx__doc__},
-static PyObject *
+static PyObject *
binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc);
static PyObject *
@@ -338,26 +338,26 @@ binascii_crc_hqx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer data = {NULL, NULL};
unsigned int crc;
- if (!_PyArg_CheckPositional("crc_hqx", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("crc_hqx", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- crc = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (crc == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = binascii_crc_hqx_impl(module, &data, crc);
+ if (!_PyArg_CheckPositional("crc_hqx", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("crc_hqx", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ crc = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (crc == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = binascii_crc_hqx_impl(module, &data, crc);
exit:
/* Cleanup for data */
@@ -375,7 +375,7 @@ PyDoc_STRVAR(binascii_crc32__doc__,
"Compute CRC-32 incrementally.");
#define BINASCII_CRC32_METHODDEF \
- {"crc32", (PyCFunction)(void(*)(void))binascii_crc32, METH_FASTCALL, binascii_crc32__doc__},
+ {"crc32", (PyCFunction)(void(*)(void))binascii_crc32, METH_FASTCALL, binascii_crc32__doc__},
static unsigned int
binascii_crc32_impl(PyObject *module, Py_buffer *data, unsigned int crc);
@@ -388,29 +388,29 @@ binascii_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
unsigned int crc = 0;
unsigned int _return_value;
- if (!_PyArg_CheckPositional("crc32", nargs, 1, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("crc32", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- crc = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (crc == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("crc32", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("crc32", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ crc = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (crc == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
_return_value = binascii_crc32_impl(module, &data, crc);
if ((_return_value == (unsigned int)-1) && PyErr_Occurred()) {
goto exit;
@@ -427,78 +427,78 @@ exit:
}
PyDoc_STRVAR(binascii_b2a_hex__doc__,
-"b2a_hex($module, /, data, sep=<unrepresentable>, bytes_per_sep=1)\n"
+"b2a_hex($module, /, data, sep=<unrepresentable>, bytes_per_sep=1)\n"
"--\n"
"\n"
"Hexadecimal representation of binary data.\n"
"\n"
-" sep\n"
-" An optional single character or byte to separate hex bytes.\n"
-" bytes_per_sep\n"
-" How many bytes between separators. Positive values count from the\n"
-" right, negative values count from the left.\n"
-"\n"
+" sep\n"
+" An optional single character or byte to separate hex bytes.\n"
+" bytes_per_sep\n"
+" How many bytes between separators. Positive values count from the\n"
+" right, negative values count from the left.\n"
+"\n"
"The return value is a bytes object. This function is also\n"
-"available as \"hexlify()\".\n"
-"\n"
-"Example:\n"
-">>> binascii.b2a_hex(b\'\\xb9\\x01\\xef\')\n"
-"b\'b901ef\'\n"
-">>> binascii.hexlify(b\'\\xb9\\x01\\xef\', \':\')\n"
-"b\'b9:01:ef\'\n"
-">>> binascii.b2a_hex(b\'\\xb9\\x01\\xef\', b\'_\', 2)\n"
-"b\'b9_01ef\'");
+"available as \"hexlify()\".\n"
+"\n"
+"Example:\n"
+">>> binascii.b2a_hex(b\'\\xb9\\x01\\xef\')\n"
+"b\'b901ef\'\n"
+">>> binascii.hexlify(b\'\\xb9\\x01\\xef\', \':\')\n"
+"b\'b9:01:ef\'\n"
+">>> binascii.b2a_hex(b\'\\xb9\\x01\\xef\', b\'_\', 2)\n"
+"b\'b9_01ef\'");
#define BINASCII_B2A_HEX_METHODDEF \
- {"b2a_hex", (PyCFunction)(void(*)(void))binascii_b2a_hex, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_hex__doc__},
+ {"b2a_hex", (PyCFunction)(void(*)(void))binascii_b2a_hex, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_hex__doc__},
static PyObject *
-binascii_b2a_hex_impl(PyObject *module, Py_buffer *data, PyObject *sep,
- int bytes_per_sep);
+binascii_b2a_hex_impl(PyObject *module, Py_buffer *data, PyObject *sep,
+ int bytes_per_sep);
static PyObject *
-binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "b2a_hex", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "b2a_hex", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
- PyObject *sep = NULL;
- int bytes_per_sep = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("b2a_hex", "argument 'data'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- sep = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- bytes_per_sep = _PyLong_AsInt(args[2]);
- if (bytes_per_sep == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = binascii_b2a_hex_impl(module, &data, sep, bytes_per_sep);
+ PyObject *sep = NULL;
+ int bytes_per_sep = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("b2a_hex", "argument 'data'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ sep = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ bytes_per_sep = _PyLong_AsInt(args[2]);
+ if (bytes_per_sep == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = binascii_b2a_hex_impl(module, &data, sep, bytes_per_sep);
exit:
/* Cleanup for data */
@@ -510,70 +510,70 @@ exit:
}
PyDoc_STRVAR(binascii_hexlify__doc__,
-"hexlify($module, /, data, sep=<unrepresentable>, bytes_per_sep=1)\n"
+"hexlify($module, /, data, sep=<unrepresentable>, bytes_per_sep=1)\n"
"--\n"
"\n"
"Hexadecimal representation of binary data.\n"
"\n"
-" sep\n"
-" An optional single character or byte to separate hex bytes.\n"
-" bytes_per_sep\n"
-" How many bytes between separators. Positive values count from the\n"
-" right, negative values count from the left.\n"
-"\n"
-"The return value is a bytes object. This function is also\n"
-"available as \"b2a_hex()\".");
+" sep\n"
+" An optional single character or byte to separate hex bytes.\n"
+" bytes_per_sep\n"
+" How many bytes between separators. Positive values count from the\n"
+" right, negative values count from the left.\n"
+"\n"
+"The return value is a bytes object. This function is also\n"
+"available as \"b2a_hex()\".");
#define BINASCII_HEXLIFY_METHODDEF \
- {"hexlify", (PyCFunction)(void(*)(void))binascii_hexlify, METH_FASTCALL|METH_KEYWORDS, binascii_hexlify__doc__},
+ {"hexlify", (PyCFunction)(void(*)(void))binascii_hexlify, METH_FASTCALL|METH_KEYWORDS, binascii_hexlify__doc__},
static PyObject *
-binascii_hexlify_impl(PyObject *module, Py_buffer *data, PyObject *sep,
- int bytes_per_sep);
+binascii_hexlify_impl(PyObject *module, Py_buffer *data, PyObject *sep,
+ int bytes_per_sep);
static PyObject *
-binascii_hexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+binascii_hexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "hexlify", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static const char * const _keywords[] = {"data", "sep", "bytes_per_sep", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "hexlify", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
- PyObject *sep = NULL;
- int bytes_per_sep = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("hexlify", "argument 'data'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- sep = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- bytes_per_sep = _PyLong_AsInt(args[2]);
- if (bytes_per_sep == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = binascii_hexlify_impl(module, &data, sep, bytes_per_sep);
+ PyObject *sep = NULL;
+ int bytes_per_sep = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("hexlify", "argument 'data'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ sep = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ bytes_per_sep = _PyLong_AsInt(args[2]);
+ if (bytes_per_sep == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = binascii_hexlify_impl(module, &data, sep, bytes_per_sep);
exit:
/* Cleanup for data */
@@ -605,7 +605,7 @@ binascii_a2b_hex(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer hexstr = {NULL, NULL};
- if (!ascii_buffer_converter(arg, &hexstr)) {
+ if (!ascii_buffer_converter(arg, &hexstr)) {
goto exit;
}
return_value = binascii_a2b_hex_impl(module, &hexstr);
@@ -638,7 +638,7 @@ binascii_unhexlify(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer hexstr = {NULL, NULL};
- if (!ascii_buffer_converter(arg, &hexstr)) {
+ if (!ascii_buffer_converter(arg, &hexstr)) {
goto exit;
}
return_value = binascii_unhexlify_impl(module, &hexstr);
@@ -658,7 +658,7 @@ PyDoc_STRVAR(binascii_a2b_qp__doc__,
"Decode a string of qp-encoded data.");
#define BINASCII_A2B_QP_METHODDEF \
- {"a2b_qp", (PyCFunction)(void(*)(void))binascii_a2b_qp, METH_FASTCALL|METH_KEYWORDS, binascii_a2b_qp__doc__},
+ {"a2b_qp", (PyCFunction)(void(*)(void))binascii_a2b_qp, METH_FASTCALL|METH_KEYWORDS, binascii_a2b_qp__doc__},
static PyObject *
binascii_a2b_qp_impl(PyObject *module, Py_buffer *data, int header);
@@ -668,32 +668,32 @@ binascii_a2b_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"data", "header", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "a2b_qp", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "a2b_qp", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
int header = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!ascii_buffer_converter(args[0], &data)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- header = _PyLong_AsInt(args[1]);
- if (header == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!ascii_buffer_converter(args[0], &data)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ header = _PyLong_AsInt(args[1]);
+ if (header == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = binascii_a2b_qp_impl(module, &data, header);
exit:
@@ -715,7 +715,7 @@ PyDoc_STRVAR(binascii_b2a_qp__doc__,
"are both encoded. When quotetabs is set, space and tabs are encoded.");
#define BINASCII_B2A_QP_METHODDEF \
- {"b2a_qp", (PyCFunction)(void(*)(void))binascii_b2a_qp, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_qp__doc__},
+ {"b2a_qp", (PyCFunction)(void(*)(void))binascii_b2a_qp, METH_FASTCALL|METH_KEYWORDS, binascii_b2a_qp__doc__},
static PyObject *
binascii_b2a_qp_impl(PyObject *module, Py_buffer *data, int quotetabs,
@@ -726,66 +726,66 @@ binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"data", "quotetabs", "istext", "header", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "b2a_qp", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "b2a_qp", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
int quotetabs = 0;
int istext = 1;
int header = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 4, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("b2a_qp", "argument 'data'", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- quotetabs = _PyLong_AsInt(args[1]);
- if (quotetabs == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- istext = _PyLong_AsInt(args[2]);
- if (istext == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- header = _PyLong_AsInt(args[3]);
- if (header == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("b2a_qp", "argument 'data'", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ quotetabs = _PyLong_AsInt(args[1]);
+ if (quotetabs == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ istext = _PyLong_AsInt(args[2]);
+ if (istext == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ header = _PyLong_AsInt(args[3]);
+ if (header == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = binascii_b2a_qp_impl(module, &data, quotetabs, istext, header);
exit:
@@ -796,4 +796,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=a1e878d3963b615e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a1e878d3963b615e input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/cmathmodule.c.h b/contrib/tools/python3/src/Modules/clinic/cmathmodule.c.h
index 862598c213..4b6653aa21 100644
--- a/contrib/tools/python3/src/Modules/clinic/cmathmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/cmathmodule.c.h
@@ -21,12 +21,12 @@ cmath_acos(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_acos_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -63,12 +63,12 @@ cmath_acosh(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_acosh_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -105,12 +105,12 @@ cmath_asin(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_asin_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -147,12 +147,12 @@ cmath_asinh(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_asinh_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -189,12 +189,12 @@ cmath_atan(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_atan_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -231,12 +231,12 @@ cmath_atanh(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_atanh_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -273,12 +273,12 @@ cmath_cos(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_cos_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -315,12 +315,12 @@ cmath_cosh(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_cosh_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -357,12 +357,12 @@ cmath_exp(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_exp_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -399,12 +399,12 @@ cmath_log10(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_log10_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -441,12 +441,12 @@ cmath_sin(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_sin_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -483,12 +483,12 @@ cmath_sinh(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_sinh_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -525,12 +525,12 @@ cmath_sqrt(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_sqrt_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -567,12 +567,12 @@ cmath_tan(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_tan_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -609,12 +609,12 @@ cmath_tanh(PyObject *module, PyObject *arg)
Py_complex z;
Py_complex _return_value;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
/* modifications for z */
- errno = 0;
+ errno = 0;
_return_value = cmath_tanh_impl(module, z);
if (errno == EDOM) {
PyErr_SetString(PyExc_ValueError, "math domain error");
@@ -633,15 +633,15 @@ exit:
}
PyDoc_STRVAR(cmath_log__doc__,
-"log($module, z, base=<unrepresentable>, /)\n"
+"log($module, z, base=<unrepresentable>, /)\n"
"--\n"
"\n"
-"log(z[, base]) -> the logarithm of z to the given base.\n"
+"log(z[, base]) -> the logarithm of z to the given base.\n"
"\n"
"If the base not specified, returns the natural logarithm (base e) of z.");
#define CMATH_LOG_METHODDEF \
- {"log", (PyCFunction)(void(*)(void))cmath_log, METH_FASTCALL, cmath_log__doc__},
+ {"log", (PyCFunction)(void(*)(void))cmath_log, METH_FASTCALL, cmath_log__doc__},
static PyObject *
cmath_log_impl(PyObject *module, Py_complex x, PyObject *y_obj);
@@ -653,18 +653,18 @@ cmath_log(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_complex x;
PyObject *y_obj = NULL;
- if (!_PyArg_CheckPositional("log", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("log", nargs, 1, 2)) {
goto exit;
}
- x = PyComplex_AsCComplex(args[0]);
- if (PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- y_obj = args[1];
-skip_optional:
+ x = PyComplex_AsCComplex(args[0]);
+ if (PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ y_obj = args[1];
+skip_optional:
return_value = cmath_log_impl(module, x, y_obj);
exit:
@@ -689,8 +689,8 @@ cmath_phase(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_complex z;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
return_value = cmath_phase_impl(module, z);
@@ -719,8 +719,8 @@ cmath_polar(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_complex z;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
return_value = cmath_polar_impl(module, z);
@@ -736,7 +736,7 @@ PyDoc_STRVAR(cmath_rect__doc__,
"Convert from polar coordinates to rectangular coordinates.");
#define CMATH_RECT_METHODDEF \
- {"rect", (PyCFunction)(void(*)(void))cmath_rect, METH_FASTCALL, cmath_rect__doc__},
+ {"rect", (PyCFunction)(void(*)(void))cmath_rect, METH_FASTCALL, cmath_rect__doc__},
static PyObject *
cmath_rect_impl(PyObject *module, double r, double phi);
@@ -748,29 +748,29 @@ cmath_rect(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
double r;
double phi;
- if (!_PyArg_CheckPositional("rect", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_CheckExact(args[0])) {
- r = PyFloat_AS_DOUBLE(args[0]);
- }
- else
- {
- r = PyFloat_AsDouble(args[0]);
- if (r == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[1])) {
- phi = PyFloat_AS_DOUBLE(args[1]);
- }
- else
- {
- phi = PyFloat_AsDouble(args[1]);
- if (phi == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
+ if (!_PyArg_CheckPositional("rect", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_CheckExact(args[0])) {
+ r = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ r = PyFloat_AsDouble(args[0]);
+ if (r == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ phi = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ phi = PyFloat_AsDouble(args[1]);
+ if (phi == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
return_value = cmath_rect_impl(module, r, phi);
exit:
@@ -795,8 +795,8 @@ cmath_isfinite(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_complex z;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
return_value = cmath_isfinite_impl(module, z);
@@ -823,8 +823,8 @@ cmath_isnan(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_complex z;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
return_value = cmath_isnan_impl(module, z);
@@ -851,8 +851,8 @@ cmath_isinf(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_complex z;
- z = PyComplex_AsCComplex(arg);
- if (PyErr_Occurred()) {
+ z = PyComplex_AsCComplex(arg);
+ if (PyErr_Occurred()) {
goto exit;
}
return_value = cmath_isinf_impl(module, z);
@@ -883,7 +883,7 @@ PyDoc_STRVAR(cmath_isclose__doc__,
"not close to anything, even itself. inf and -inf are only close to themselves.");
#define CMATH_ISCLOSE_METHODDEF \
- {"isclose", (PyCFunction)(void(*)(void))cmath_isclose, METH_FASTCALL|METH_KEYWORDS, cmath_isclose__doc__},
+ {"isclose", (PyCFunction)(void(*)(void))cmath_isclose, METH_FASTCALL|METH_KEYWORDS, cmath_isclose__doc__},
static int
cmath_isclose_impl(PyObject *module, Py_complex a, Py_complex b,
@@ -894,56 +894,56 @@ cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
Py_complex a;
Py_complex b;
double rel_tol = 1e-09;
double abs_tol = 0.0;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- a = PyComplex_AsCComplex(args[0]);
- if (PyErr_Occurred()) {
- goto exit;
- }
- b = PyComplex_AsCComplex(args[1]);
- if (PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- if (PyFloat_CheckExact(args[2])) {
- rel_tol = PyFloat_AS_DOUBLE(args[2]);
- }
- else
- {
- rel_tol = PyFloat_AsDouble(args[2]);
- if (rel_tol == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (PyFloat_CheckExact(args[3])) {
- abs_tol = PyFloat_AS_DOUBLE(args[3]);
- }
- else
- {
- abs_tol = PyFloat_AsDouble(args[3]);
- if (abs_tol == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ a = PyComplex_AsCComplex(args[0]);
+ if (PyErr_Occurred()) {
+ goto exit;
+ }
+ b = PyComplex_AsCComplex(args[1]);
+ if (PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ if (PyFloat_CheckExact(args[2])) {
+ rel_tol = PyFloat_AS_DOUBLE(args[2]);
+ }
+ else
+ {
+ rel_tol = PyFloat_AsDouble(args[2]);
+ if (rel_tol == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (PyFloat_CheckExact(args[3])) {
+ abs_tol = PyFloat_AS_DOUBLE(args[3]);
+ }
+ else
+ {
+ abs_tol = PyFloat_AsDouble(args[3]);
+ if (abs_tol == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+skip_optional_kwonly:
_return_value = cmath_isclose_impl(module, a, b, rel_tol, abs_tol);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -953,4 +953,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=353347db2e808e0d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=353347db2e808e0d input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/fcntlmodule.c.h b/contrib/tools/python3/src/Modules/clinic/fcntlmodule.c.h
index c07632afd0..024a44cfbf 100644
--- a/contrib/tools/python3/src/Modules/clinic/fcntlmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/fcntlmodule.c.h
@@ -19,7 +19,7 @@ PyDoc_STRVAR(fcntl_fcntl__doc__,
"corresponding to the return value of the fcntl call in the C code.");
#define FCNTL_FCNTL_METHODDEF \
- {"fcntl", (PyCFunction)(void(*)(void))fcntl_fcntl, METH_FASTCALL, fcntl_fcntl__doc__},
+ {"fcntl", (PyCFunction)(void(*)(void))fcntl_fcntl, METH_FASTCALL, fcntl_fcntl__doc__},
static PyObject *
fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg);
@@ -32,26 +32,26 @@ fcntl_fcntl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int code;
PyObject *arg = NULL;
- if (!_PyArg_CheckPositional("fcntl", nargs, 2, 3)) {
+ if (!_PyArg_CheckPositional("fcntl", nargs, 2, 3)) {
goto exit;
}
- if (!conv_descriptor(args[0], &fd)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- code = _PyLong_AsInt(args[1]);
- if (code == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- arg = args[2];
-skip_optional:
+ if (!conv_descriptor(args[0], &fd)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ code = _PyLong_AsInt(args[1]);
+ if (code == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ arg = args[2];
+skip_optional:
return_value = fcntl_fcntl_impl(module, fd, code, arg);
exit:
@@ -92,7 +92,7 @@ PyDoc_STRVAR(fcntl_ioctl__doc__,
"code.");
#define FCNTL_IOCTL_METHODDEF \
- {"ioctl", (PyCFunction)(void(*)(void))fcntl_ioctl, METH_FASTCALL, fcntl_ioctl__doc__},
+ {"ioctl", (PyCFunction)(void(*)(void))fcntl_ioctl, METH_FASTCALL, fcntl_ioctl__doc__},
static PyObject *
fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
@@ -107,33 +107,33 @@ fcntl_ioctl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *ob_arg = NULL;
int mutate_arg = 1;
- if (!_PyArg_CheckPositional("ioctl", nargs, 2, 4)) {
+ if (!_PyArg_CheckPositional("ioctl", nargs, 2, 4)) {
+ goto exit;
+ }
+ if (!conv_descriptor(args[0], &fd)) {
goto exit;
}
- if (!conv_descriptor(args[0], &fd)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- code = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (code == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- ob_arg = args[2];
- if (nargs < 4) {
- goto skip_optional;
- }
- mutate_arg = PyObject_IsTrue(args[3]);
- if (mutate_arg < 0) {
- goto exit;
- }
-skip_optional:
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ code = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (code == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ ob_arg = args[2];
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ mutate_arg = PyObject_IsTrue(args[3]);
+ if (mutate_arg < 0) {
+ goto exit;
+ }
+skip_optional:
return_value = fcntl_ioctl_impl(module, fd, code, ob_arg, mutate_arg);
exit:
@@ -150,7 +150,7 @@ PyDoc_STRVAR(fcntl_flock__doc__,
"function is emulated using fcntl()).");
#define FCNTL_FLOCK_METHODDEF \
- {"flock", (PyCFunction)(void(*)(void))fcntl_flock, METH_FASTCALL, fcntl_flock__doc__},
+ {"flock", (PyCFunction)(void(*)(void))fcntl_flock, METH_FASTCALL, fcntl_flock__doc__},
static PyObject *
fcntl_flock_impl(PyObject *module, int fd, int code);
@@ -162,21 +162,21 @@ fcntl_flock(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int fd;
int code;
- if (!_PyArg_CheckPositional("flock", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("flock", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!conv_descriptor(args[0], &fd)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ code = _PyLong_AsInt(args[1]);
+ if (code == -1 && PyErr_Occurred()) {
goto exit;
}
- if (!conv_descriptor(args[0], &fd)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- code = _PyLong_AsInt(args[1]);
- if (code == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = fcntl_flock_impl(module, fd, code);
exit:
@@ -211,7 +211,7 @@ PyDoc_STRVAR(fcntl_lockf__doc__,
" 2 - relative to the end of the file (SEEK_END)");
#define FCNTL_LOCKF_METHODDEF \
- {"lockf", (PyCFunction)(void(*)(void))fcntl_lockf, METH_FASTCALL, fcntl_lockf__doc__},
+ {"lockf", (PyCFunction)(void(*)(void))fcntl_lockf, METH_FASTCALL, fcntl_lockf__doc__},
static PyObject *
fcntl_lockf_impl(PyObject *module, int fd, int code, PyObject *lenobj,
@@ -227,45 +227,45 @@ fcntl_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *startobj = NULL;
int whence = 0;
- if (!_PyArg_CheckPositional("lockf", nargs, 2, 5)) {
+ if (!_PyArg_CheckPositional("lockf", nargs, 2, 5)) {
+ goto exit;
+ }
+ if (!conv_descriptor(args[0], &fd)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ code = _PyLong_AsInt(args[1]);
+ if (code == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ lenobj = args[2];
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ startobj = args[3];
+ if (nargs < 5) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[4])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ whence = _PyLong_AsInt(args[4]);
+ if (whence == -1 && PyErr_Occurred()) {
goto exit;
}
- if (!conv_descriptor(args[0], &fd)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- code = _PyLong_AsInt(args[1]);
- if (code == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- lenobj = args[2];
- if (nargs < 4) {
- goto skip_optional;
- }
- startobj = args[3];
- if (nargs < 5) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[4])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- whence = _PyLong_AsInt(args[4]);
- if (whence == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = fcntl_lockf_impl(module, fd, code, lenobj, startobj, whence);
exit:
return return_value;
}
-/*[clinic end generated code: output=e912d25e28362c52 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e912d25e28362c52 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/gcmodule.c.h b/contrib/tools/python3/src/Modules/clinic/gcmodule.c.h
index c4301d24e3..72795c66bf 100644
--- a/contrib/tools/python3/src/Modules/clinic/gcmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/gcmodule.c.h
@@ -79,7 +79,7 @@ PyDoc_STRVAR(gc_collect__doc__,
"The number of unreachable objects is returned.");
#define GC_COLLECT_METHODDEF \
- {"collect", (PyCFunction)(void(*)(void))gc_collect, METH_FASTCALL|METH_KEYWORDS, gc_collect__doc__},
+ {"collect", (PyCFunction)(void(*)(void))gc_collect, METH_FASTCALL|METH_KEYWORDS, gc_collect__doc__},
static Py_ssize_t
gc_collect_impl(PyObject *module, int generation);
@@ -89,29 +89,29 @@ gc_collect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"generation", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "collect", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "collect", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int generation = NUM_GENERATIONS - 1;
Py_ssize_t _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- generation = _PyLong_AsInt(args[0]);
- if (generation == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ generation = _PyLong_AsInt(args[0]);
+ if (generation == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
_return_value = gc_collect_impl(module, generation);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -151,15 +151,15 @@ gc_set_debug(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int flags;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(arg);
+ if (flags == -1 && PyErr_Occurred()) {
goto exit;
}
- flags = _PyLong_AsInt(arg);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = gc_set_debug_impl(module, flags);
exit:
@@ -231,48 +231,48 @@ gc_get_count(PyObject *module, PyObject *Py_UNUSED(ignored))
}
PyDoc_STRVAR(gc_get_objects__doc__,
-"get_objects($module, /, generation=None)\n"
+"get_objects($module, /, generation=None)\n"
"--\n"
"\n"
-"Return a list of objects tracked by the collector (excluding the list returned).\n"
-"\n"
-" generation\n"
-" Generation to extract the objects from.\n"
-"\n"
-"If generation is not None, return only the objects tracked by the collector\n"
-"that are in that generation.");
+"Return a list of objects tracked by the collector (excluding the list returned).\n"
+"\n"
+" generation\n"
+" Generation to extract the objects from.\n"
+"\n"
+"If generation is not None, return only the objects tracked by the collector\n"
+"that are in that generation.");
#define GC_GET_OBJECTS_METHODDEF \
- {"get_objects", (PyCFunction)(void(*)(void))gc_get_objects, METH_FASTCALL|METH_KEYWORDS, gc_get_objects__doc__},
+ {"get_objects", (PyCFunction)(void(*)(void))gc_get_objects, METH_FASTCALL|METH_KEYWORDS, gc_get_objects__doc__},
static PyObject *
-gc_get_objects_impl(PyObject *module, Py_ssize_t generation);
+gc_get_objects_impl(PyObject *module, Py_ssize_t generation);
static PyObject *
-gc_get_objects(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+gc_get_objects(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"generation", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "get_objects", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- Py_ssize_t generation = -1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (!_Py_convert_optional_to_ssize_t(args[0], &generation)) {
- goto exit;
- }
-skip_optional_pos:
- return_value = gc_get_objects_impl(module, generation);
-
-exit:
- return return_value;
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"generation", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "get_objects", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ Py_ssize_t generation = -1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (!_Py_convert_optional_to_ssize_t(args[0], &generation)) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = gc_get_objects_impl(module, generation);
+
+exit:
+ return return_value;
}
PyDoc_STRVAR(gc_get_stats__doc__,
@@ -304,15 +304,15 @@ PyDoc_STRVAR(gc_is_tracked__doc__,
#define GC_IS_TRACKED_METHODDEF \
{"is_tracked", (PyCFunction)gc_is_tracked, METH_O, gc_is_tracked__doc__},
-PyDoc_STRVAR(gc_is_finalized__doc__,
-"is_finalized($module, obj, /)\n"
-"--\n"
-"\n"
-"Returns true if the object has been already finalized by the GC.");
-
-#define GC_IS_FINALIZED_METHODDEF \
- {"is_finalized", (PyCFunction)gc_is_finalized, METH_O, gc_is_finalized__doc__},
-
+PyDoc_STRVAR(gc_is_finalized__doc__,
+"is_finalized($module, obj, /)\n"
+"--\n"
+"\n"
+"Returns true if the object has been already finalized by the GC.");
+
+#define GC_IS_FINALIZED_METHODDEF \
+ {"is_finalized", (PyCFunction)gc_is_finalized, METH_O, gc_is_finalized__doc__},
+
PyDoc_STRVAR(gc_freeze__doc__,
"freeze($module, /)\n"
"--\n"
@@ -382,4 +382,4 @@ gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored))
exit:
return return_value;
}
-/*[clinic end generated code: output=bd6a8056989e2e69 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bd6a8056989e2e69 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/grpmodule.c.h b/contrib/tools/python3/src/Modules/clinic/grpmodule.c.h
index dd13197f03..2e2690ad8d 100644
--- a/contrib/tools/python3/src/Modules/clinic/grpmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/grpmodule.c.h
@@ -11,7 +11,7 @@ PyDoc_STRVAR(grp_getgrgid__doc__,
"If id is not valid, raise KeyError.");
#define GRP_GETGRGID_METHODDEF \
- {"getgrgid", (PyCFunction)(void(*)(void))grp_getgrgid, METH_FASTCALL|METH_KEYWORDS, grp_getgrgid__doc__},
+ {"getgrgid", (PyCFunction)(void(*)(void))grp_getgrgid, METH_FASTCALL|METH_KEYWORDS, grp_getgrgid__doc__},
static PyObject *
grp_getgrgid_impl(PyObject *module, PyObject *id);
@@ -21,15 +21,15 @@ grp_getgrgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"id", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "getgrgid", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "getgrgid", 0};
+ PyObject *argsbuf[1];
PyObject *id;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- id = args[0];
+ id = args[0];
return_value = grp_getgrgid_impl(module, id);
exit:
@@ -45,7 +45,7 @@ PyDoc_STRVAR(grp_getgrnam__doc__,
"If name is not valid, raise KeyError.");
#define GRP_GETGRNAM_METHODDEF \
- {"getgrnam", (PyCFunction)(void(*)(void))grp_getgrnam, METH_FASTCALL|METH_KEYWORDS, grp_getgrnam__doc__},
+ {"getgrnam", (PyCFunction)(void(*)(void))grp_getgrnam, METH_FASTCALL|METH_KEYWORDS, grp_getgrnam__doc__},
static PyObject *
grp_getgrnam_impl(PyObject *module, PyObject *name);
@@ -55,22 +55,22 @@ grp_getgrnam(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"name", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "getgrnam", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "getgrnam", 0};
+ PyObject *argsbuf[1];
PyObject *name;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("getgrnam", "argument 'name'", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- name = args[0];
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("getgrnam", "argument 'name'", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ name = args[0];
return_value = grp_getgrnam_impl(module, name);
exit:
@@ -97,4 +97,4 @@ grp_getgrall(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return grp_getgrall_impl(module);
}
-/*[clinic end generated code: output=9b3f26779e4e1a52 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=9b3f26779e4e1a52 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/itertoolsmodule.c.h b/contrib/tools/python3/src/Modules/clinic/itertoolsmodule.c.h
index 7a31116dd7..20594b0fed 100644
--- a/contrib/tools/python3/src/Modules/clinic/itertoolsmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/itertoolsmodule.c.h
@@ -1,645 +1,645 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(itertools_groupby__doc__,
-"groupby(iterable, key=None)\n"
-"--\n"
-"\n"
-"make an iterator that returns consecutive keys and groups from the iterable\n"
-"\n"
-" iterable\n"
-" Elements to divide into groups according to the key function.\n"
-" key\n"
-" A function for computing the group category for each element.\n"
-" If the key function is not specified or is None, the element itself\n"
-" is used for grouping.");
-
-static PyObject *
-itertools_groupby_impl(PyTypeObject *type, PyObject *it, PyObject *keyfunc);
-
-static PyObject *
-itertools_groupby(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"iterable", "key", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "groupby", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
- PyObject *it;
- PyObject *keyfunc = Py_None;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- it = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- keyfunc = fastargs[1];
-skip_optional_pos:
- return_value = itertools_groupby_impl(type, it, keyfunc);
-
-exit:
- return return_value;
-}
-
-static PyObject *
-itertools__grouper_impl(PyTypeObject *type, PyObject *parent,
- PyObject *tgtkey);
-
-static PyObject *
-itertools__grouper(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *parent;
- PyObject *tgtkey;
-
- if ((type == &_grouper_type) &&
- !_PyArg_NoKeywords("_grouper", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("_grouper", PyTuple_GET_SIZE(args), 2, 2)) {
- goto exit;
- }
- if (!PyObject_TypeCheck(PyTuple_GET_ITEM(args, 0), &groupby_type)) {
- _PyArg_BadArgument("_grouper", "argument 1", (&groupby_type)->tp_name, PyTuple_GET_ITEM(args, 0));
- goto exit;
- }
- parent = PyTuple_GET_ITEM(args, 0);
- tgtkey = PyTuple_GET_ITEM(args, 1);
- return_value = itertools__grouper_impl(type, parent, tgtkey);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_teedataobject__doc__,
-"teedataobject(iterable, values, next, /)\n"
-"--\n"
-"\n"
-"Data container common to multiple tee objects.");
-
-static PyObject *
-itertools_teedataobject_impl(PyTypeObject *type, PyObject *it,
- PyObject *values, PyObject *next);
-
-static PyObject *
-itertools_teedataobject(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *it;
- PyObject *values;
- PyObject *next;
-
- if ((type == &teedataobject_type) &&
- !_PyArg_NoKeywords("teedataobject", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("teedataobject", PyTuple_GET_SIZE(args), 3, 3)) {
- goto exit;
- }
- it = PyTuple_GET_ITEM(args, 0);
- if (!PyList_Check(PyTuple_GET_ITEM(args, 1))) {
- _PyArg_BadArgument("teedataobject", "argument 2", "list", PyTuple_GET_ITEM(args, 1));
- goto exit;
- }
- values = PyTuple_GET_ITEM(args, 1);
- next = PyTuple_GET_ITEM(args, 2);
- return_value = itertools_teedataobject_impl(type, it, values, next);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools__tee__doc__,
-"_tee(iterable, /)\n"
-"--\n"
-"\n"
-"Iterator wrapped to make it copyable.");
-
-static PyObject *
-itertools__tee_impl(PyTypeObject *type, PyObject *iterable);
-
-static PyObject *
-itertools__tee(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *iterable;
-
- if ((type == &tee_type) &&
- !_PyArg_NoKeywords("_tee", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("_tee", PyTuple_GET_SIZE(args), 1, 1)) {
- goto exit;
- }
- iterable = PyTuple_GET_ITEM(args, 0);
- return_value = itertools__tee_impl(type, iterable);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_tee__doc__,
-"tee($module, iterable, n=2, /)\n"
-"--\n"
-"\n"
-"Returns a tuple of n independent iterators.");
-
-#define ITERTOOLS_TEE_METHODDEF \
- {"tee", (PyCFunction)(void(*)(void))itertools_tee, METH_FASTCALL, itertools_tee__doc__},
-
-static PyObject *
-itertools_tee_impl(PyObject *module, PyObject *iterable, Py_ssize_t n);
-
-static PyObject *
-itertools_tee(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *iterable;
- Py_ssize_t n = 2;
-
- if (!_PyArg_CheckPositional("tee", nargs, 1, 2)) {
- goto exit;
- }
- iterable = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- n = ival;
- }
-skip_optional:
- return_value = itertools_tee_impl(module, iterable, n);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_cycle__doc__,
-"cycle(iterable, /)\n"
-"--\n"
-"\n"
-"Return elements from the iterable until it is exhausted. Then repeat the sequence indefinitely.");
-
-static PyObject *
-itertools_cycle_impl(PyTypeObject *type, PyObject *iterable);
-
-static PyObject *
-itertools_cycle(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *iterable;
-
- if ((type == &cycle_type) &&
- !_PyArg_NoKeywords("cycle", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("cycle", PyTuple_GET_SIZE(args), 1, 1)) {
- goto exit;
- }
- iterable = PyTuple_GET_ITEM(args, 0);
- return_value = itertools_cycle_impl(type, iterable);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_dropwhile__doc__,
-"dropwhile(predicate, iterable, /)\n"
-"--\n"
-"\n"
-"Drop items from the iterable while predicate(item) is true.\n"
-"\n"
-"Afterwards, return every element until the iterable is exhausted.");
-
-static PyObject *
-itertools_dropwhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
-
-static PyObject *
-itertools_dropwhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *func;
- PyObject *seq;
-
- if ((type == &dropwhile_type) &&
- !_PyArg_NoKeywords("dropwhile", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("dropwhile", PyTuple_GET_SIZE(args), 2, 2)) {
- goto exit;
- }
- func = PyTuple_GET_ITEM(args, 0);
- seq = PyTuple_GET_ITEM(args, 1);
- return_value = itertools_dropwhile_impl(type, func, seq);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_takewhile__doc__,
-"takewhile(predicate, iterable, /)\n"
-"--\n"
-"\n"
-"Return successive entries from an iterable as long as the predicate evaluates to true for each entry.");
-
-static PyObject *
-itertools_takewhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
-
-static PyObject *
-itertools_takewhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *func;
- PyObject *seq;
-
- if ((type == &takewhile_type) &&
- !_PyArg_NoKeywords("takewhile", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("takewhile", PyTuple_GET_SIZE(args), 2, 2)) {
- goto exit;
- }
- func = PyTuple_GET_ITEM(args, 0);
- seq = PyTuple_GET_ITEM(args, 1);
- return_value = itertools_takewhile_impl(type, func, seq);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_starmap__doc__,
-"starmap(function, iterable, /)\n"
-"--\n"
-"\n"
-"Return an iterator whose values are returned from the function evaluated with an argument tuple taken from the given sequence.");
-
-static PyObject *
-itertools_starmap_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
-
-static PyObject *
-itertools_starmap(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *func;
- PyObject *seq;
-
- if ((type == &starmap_type) &&
- !_PyArg_NoKeywords("starmap", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("starmap", PyTuple_GET_SIZE(args), 2, 2)) {
- goto exit;
- }
- func = PyTuple_GET_ITEM(args, 0);
- seq = PyTuple_GET_ITEM(args, 1);
- return_value = itertools_starmap_impl(type, func, seq);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_chain_from_iterable__doc__,
-"from_iterable($type, iterable, /)\n"
-"--\n"
-"\n"
-"Alternative chain() constructor taking a single iterable argument that evaluates lazily.");
-
-#define ITERTOOLS_CHAIN_FROM_ITERABLE_METHODDEF \
- {"from_iterable", (PyCFunction)itertools_chain_from_iterable, METH_O|METH_CLASS, itertools_chain_from_iterable__doc__},
-
-PyDoc_STRVAR(itertools_combinations__doc__,
-"combinations(iterable, r)\n"
-"--\n"
-"\n"
-"Return successive r-length combinations of elements in the iterable.\n"
-"\n"
-"combinations(range(4), 3) --> (0,1,2), (0,1,3), (0,2,3), (1,2,3)");
-
-static PyObject *
-itertools_combinations_impl(PyTypeObject *type, PyObject *iterable,
- Py_ssize_t r);
-
-static PyObject *
-itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"iterable", "r", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "combinations", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- PyObject *iterable;
- Py_ssize_t r;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- iterable = fastargs[0];
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(fastargs[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- r = ival;
- }
- return_value = itertools_combinations_impl(type, iterable, r);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_combinations_with_replacement__doc__,
-"combinations_with_replacement(iterable, r)\n"
-"--\n"
-"\n"
-"Return successive r-length combinations of elements in the iterable allowing individual elements to have successive repeats.\n"
-"\n"
-"combinations_with_replacement(\'ABC\', 2) --> AA AB AC BB BC CC\"");
-
-static PyObject *
-itertools_combinations_with_replacement_impl(PyTypeObject *type,
- PyObject *iterable,
- Py_ssize_t r);
-
-static PyObject *
-itertools_combinations_with_replacement(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"iterable", "r", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "combinations_with_replacement", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- PyObject *iterable;
- Py_ssize_t r;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- iterable = fastargs[0];
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(fastargs[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- r = ival;
- }
- return_value = itertools_combinations_with_replacement_impl(type, iterable, r);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_permutations__doc__,
-"permutations(iterable, r=None)\n"
-"--\n"
-"\n"
-"Return successive r-length permutations of elements in the iterable.\n"
-"\n"
-"permutations(range(3), 2) --> (0,1), (0,2), (1,0), (1,2), (2,0), (2,1)");
-
-static PyObject *
-itertools_permutations_impl(PyTypeObject *type, PyObject *iterable,
- PyObject *robj);
-
-static PyObject *
-itertools_permutations(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"iterable", "r", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "permutations", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
- PyObject *iterable;
- PyObject *robj = Py_None;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- iterable = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- robj = fastargs[1];
-skip_optional_pos:
- return_value = itertools_permutations_impl(type, iterable, robj);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_accumulate__doc__,
-"accumulate(iterable, func=None, *, initial=None)\n"
-"--\n"
-"\n"
-"Return series of accumulated sums (or other binary function results).");
-
-static PyObject *
-itertools_accumulate_impl(PyTypeObject *type, PyObject *iterable,
- PyObject *binop, PyObject *initial);
-
-static PyObject *
-itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"iterable", "func", "initial", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "accumulate", 0};
- PyObject *argsbuf[3];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
- PyObject *iterable;
- PyObject *binop = Py_None;
- PyObject *initial = Py_None;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- iterable = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[1]) {
- binop = fastargs[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- initial = fastargs[2];
-skip_optional_kwonly:
- return_value = itertools_accumulate_impl(type, iterable, binop, initial);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_compress__doc__,
-"compress(data, selectors)\n"
-"--\n"
-"\n"
-"Return data elements corresponding to true selector elements.\n"
-"\n"
-"Forms a shorter iterator from selected data elements using the selectors to\n"
-"choose the data elements.");
-
-static PyObject *
-itertools_compress_impl(PyTypeObject *type, PyObject *seq1, PyObject *seq2);
-
-static PyObject *
-itertools_compress(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"data", "selectors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- PyObject *seq1;
- PyObject *seq2;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- seq1 = fastargs[0];
- seq2 = fastargs[1];
- return_value = itertools_compress_impl(type, seq1, seq2);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_filterfalse__doc__,
-"filterfalse(function, iterable, /)\n"
-"--\n"
-"\n"
-"Return those items of iterable for which function(item) is false.\n"
-"\n"
-"If function is None, return the items that are false.");
-
-static PyObject *
-itertools_filterfalse_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
-
-static PyObject *
-itertools_filterfalse(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *func;
- PyObject *seq;
-
- if ((type == &filterfalse_type) &&
- !_PyArg_NoKeywords("filterfalse", kwargs)) {
- goto exit;
- }
- if (!_PyArg_CheckPositional("filterfalse", PyTuple_GET_SIZE(args), 2, 2)) {
- goto exit;
- }
- func = PyTuple_GET_ITEM(args, 0);
- seq = PyTuple_GET_ITEM(args, 1);
- return_value = itertools_filterfalse_impl(type, func, seq);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(itertools_count__doc__,
-"count(start=0, step=1)\n"
-"--\n"
-"\n"
-"Return a count object whose .__next__() method returns consecutive values.\n"
-"\n"
-"Equivalent to:\n"
-" def count(firstval=0, step=1):\n"
-" x = firstval\n"
-" while 1:\n"
-" yield x\n"
-" x += step");
-
-static PyObject *
-itertools_count_impl(PyTypeObject *type, PyObject *long_cnt,
- PyObject *long_step);
-
-static PyObject *
-itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"start", "step", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "count", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
- PyObject *long_cnt = NULL;
- PyObject *long_step = NULL;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[0]) {
- long_cnt = fastargs[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- long_step = fastargs[1];
-skip_optional_pos:
- return_value = itertools_count_impl(type, long_cnt, long_step);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=392c9706e79f6710 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(itertools_groupby__doc__,
+"groupby(iterable, key=None)\n"
+"--\n"
+"\n"
+"make an iterator that returns consecutive keys and groups from the iterable\n"
+"\n"
+" iterable\n"
+" Elements to divide into groups according to the key function.\n"
+" key\n"
+" A function for computing the group category for each element.\n"
+" If the key function is not specified or is None, the element itself\n"
+" is used for grouping.");
+
+static PyObject *
+itertools_groupby_impl(PyTypeObject *type, PyObject *it, PyObject *keyfunc);
+
+static PyObject *
+itertools_groupby(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"iterable", "key", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "groupby", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ PyObject *it;
+ PyObject *keyfunc = Py_None;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ it = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ keyfunc = fastargs[1];
+skip_optional_pos:
+ return_value = itertools_groupby_impl(type, it, keyfunc);
+
+exit:
+ return return_value;
+}
+
+static PyObject *
+itertools__grouper_impl(PyTypeObject *type, PyObject *parent,
+ PyObject *tgtkey);
+
+static PyObject *
+itertools__grouper(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *parent;
+ PyObject *tgtkey;
+
+ if ((type == &_grouper_type) &&
+ !_PyArg_NoKeywords("_grouper", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("_grouper", PyTuple_GET_SIZE(args), 2, 2)) {
+ goto exit;
+ }
+ if (!PyObject_TypeCheck(PyTuple_GET_ITEM(args, 0), &groupby_type)) {
+ _PyArg_BadArgument("_grouper", "argument 1", (&groupby_type)->tp_name, PyTuple_GET_ITEM(args, 0));
+ goto exit;
+ }
+ parent = PyTuple_GET_ITEM(args, 0);
+ tgtkey = PyTuple_GET_ITEM(args, 1);
+ return_value = itertools__grouper_impl(type, parent, tgtkey);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_teedataobject__doc__,
+"teedataobject(iterable, values, next, /)\n"
+"--\n"
+"\n"
+"Data container common to multiple tee objects.");
+
+static PyObject *
+itertools_teedataobject_impl(PyTypeObject *type, PyObject *it,
+ PyObject *values, PyObject *next);
+
+static PyObject *
+itertools_teedataobject(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *it;
+ PyObject *values;
+ PyObject *next;
+
+ if ((type == &teedataobject_type) &&
+ !_PyArg_NoKeywords("teedataobject", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("teedataobject", PyTuple_GET_SIZE(args), 3, 3)) {
+ goto exit;
+ }
+ it = PyTuple_GET_ITEM(args, 0);
+ if (!PyList_Check(PyTuple_GET_ITEM(args, 1))) {
+ _PyArg_BadArgument("teedataobject", "argument 2", "list", PyTuple_GET_ITEM(args, 1));
+ goto exit;
+ }
+ values = PyTuple_GET_ITEM(args, 1);
+ next = PyTuple_GET_ITEM(args, 2);
+ return_value = itertools_teedataobject_impl(type, it, values, next);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools__tee__doc__,
+"_tee(iterable, /)\n"
+"--\n"
+"\n"
+"Iterator wrapped to make it copyable.");
+
+static PyObject *
+itertools__tee_impl(PyTypeObject *type, PyObject *iterable);
+
+static PyObject *
+itertools__tee(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *iterable;
+
+ if ((type == &tee_type) &&
+ !_PyArg_NoKeywords("_tee", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("_tee", PyTuple_GET_SIZE(args), 1, 1)) {
+ goto exit;
+ }
+ iterable = PyTuple_GET_ITEM(args, 0);
+ return_value = itertools__tee_impl(type, iterable);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_tee__doc__,
+"tee($module, iterable, n=2, /)\n"
+"--\n"
+"\n"
+"Returns a tuple of n independent iterators.");
+
+#define ITERTOOLS_TEE_METHODDEF \
+ {"tee", (PyCFunction)(void(*)(void))itertools_tee, METH_FASTCALL, itertools_tee__doc__},
+
+static PyObject *
+itertools_tee_impl(PyObject *module, PyObject *iterable, Py_ssize_t n);
+
+static PyObject *
+itertools_tee(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *iterable;
+ Py_ssize_t n = 2;
+
+ if (!_PyArg_CheckPositional("tee", nargs, 1, 2)) {
+ goto exit;
+ }
+ iterable = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ n = ival;
+ }
+skip_optional:
+ return_value = itertools_tee_impl(module, iterable, n);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_cycle__doc__,
+"cycle(iterable, /)\n"
+"--\n"
+"\n"
+"Return elements from the iterable until it is exhausted. Then repeat the sequence indefinitely.");
+
+static PyObject *
+itertools_cycle_impl(PyTypeObject *type, PyObject *iterable);
+
+static PyObject *
+itertools_cycle(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *iterable;
+
+ if ((type == &cycle_type) &&
+ !_PyArg_NoKeywords("cycle", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("cycle", PyTuple_GET_SIZE(args), 1, 1)) {
+ goto exit;
+ }
+ iterable = PyTuple_GET_ITEM(args, 0);
+ return_value = itertools_cycle_impl(type, iterable);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_dropwhile__doc__,
+"dropwhile(predicate, iterable, /)\n"
+"--\n"
+"\n"
+"Drop items from the iterable while predicate(item) is true.\n"
+"\n"
+"Afterwards, return every element until the iterable is exhausted.");
+
+static PyObject *
+itertools_dropwhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
+
+static PyObject *
+itertools_dropwhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *func;
+ PyObject *seq;
+
+ if ((type == &dropwhile_type) &&
+ !_PyArg_NoKeywords("dropwhile", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("dropwhile", PyTuple_GET_SIZE(args), 2, 2)) {
+ goto exit;
+ }
+ func = PyTuple_GET_ITEM(args, 0);
+ seq = PyTuple_GET_ITEM(args, 1);
+ return_value = itertools_dropwhile_impl(type, func, seq);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_takewhile__doc__,
+"takewhile(predicate, iterable, /)\n"
+"--\n"
+"\n"
+"Return successive entries from an iterable as long as the predicate evaluates to true for each entry.");
+
+static PyObject *
+itertools_takewhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
+
+static PyObject *
+itertools_takewhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *func;
+ PyObject *seq;
+
+ if ((type == &takewhile_type) &&
+ !_PyArg_NoKeywords("takewhile", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("takewhile", PyTuple_GET_SIZE(args), 2, 2)) {
+ goto exit;
+ }
+ func = PyTuple_GET_ITEM(args, 0);
+ seq = PyTuple_GET_ITEM(args, 1);
+ return_value = itertools_takewhile_impl(type, func, seq);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_starmap__doc__,
+"starmap(function, iterable, /)\n"
+"--\n"
+"\n"
+"Return an iterator whose values are returned from the function evaluated with an argument tuple taken from the given sequence.");
+
+static PyObject *
+itertools_starmap_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
+
+static PyObject *
+itertools_starmap(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *func;
+ PyObject *seq;
+
+ if ((type == &starmap_type) &&
+ !_PyArg_NoKeywords("starmap", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("starmap", PyTuple_GET_SIZE(args), 2, 2)) {
+ goto exit;
+ }
+ func = PyTuple_GET_ITEM(args, 0);
+ seq = PyTuple_GET_ITEM(args, 1);
+ return_value = itertools_starmap_impl(type, func, seq);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_chain_from_iterable__doc__,
+"from_iterable($type, iterable, /)\n"
+"--\n"
+"\n"
+"Alternative chain() constructor taking a single iterable argument that evaluates lazily.");
+
+#define ITERTOOLS_CHAIN_FROM_ITERABLE_METHODDEF \
+ {"from_iterable", (PyCFunction)itertools_chain_from_iterable, METH_O|METH_CLASS, itertools_chain_from_iterable__doc__},
+
+PyDoc_STRVAR(itertools_combinations__doc__,
+"combinations(iterable, r)\n"
+"--\n"
+"\n"
+"Return successive r-length combinations of elements in the iterable.\n"
+"\n"
+"combinations(range(4), 3) --> (0,1,2), (0,1,3), (0,2,3), (1,2,3)");
+
+static PyObject *
+itertools_combinations_impl(PyTypeObject *type, PyObject *iterable,
+ Py_ssize_t r);
+
+static PyObject *
+itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"iterable", "r", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "combinations", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ PyObject *iterable;
+ Py_ssize_t r;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ iterable = fastargs[0];
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(fastargs[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ r = ival;
+ }
+ return_value = itertools_combinations_impl(type, iterable, r);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_combinations_with_replacement__doc__,
+"combinations_with_replacement(iterable, r)\n"
+"--\n"
+"\n"
+"Return successive r-length combinations of elements in the iterable allowing individual elements to have successive repeats.\n"
+"\n"
+"combinations_with_replacement(\'ABC\', 2) --> AA AB AC BB BC CC\"");
+
+static PyObject *
+itertools_combinations_with_replacement_impl(PyTypeObject *type,
+ PyObject *iterable,
+ Py_ssize_t r);
+
+static PyObject *
+itertools_combinations_with_replacement(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"iterable", "r", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "combinations_with_replacement", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ PyObject *iterable;
+ Py_ssize_t r;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ iterable = fastargs[0];
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(fastargs[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ r = ival;
+ }
+ return_value = itertools_combinations_with_replacement_impl(type, iterable, r);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_permutations__doc__,
+"permutations(iterable, r=None)\n"
+"--\n"
+"\n"
+"Return successive r-length permutations of elements in the iterable.\n"
+"\n"
+"permutations(range(3), 2) --> (0,1), (0,2), (1,0), (1,2), (2,0), (2,1)");
+
+static PyObject *
+itertools_permutations_impl(PyTypeObject *type, PyObject *iterable,
+ PyObject *robj);
+
+static PyObject *
+itertools_permutations(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"iterable", "r", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "permutations", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ PyObject *iterable;
+ PyObject *robj = Py_None;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ iterable = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ robj = fastargs[1];
+skip_optional_pos:
+ return_value = itertools_permutations_impl(type, iterable, robj);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_accumulate__doc__,
+"accumulate(iterable, func=None, *, initial=None)\n"
+"--\n"
+"\n"
+"Return series of accumulated sums (or other binary function results).");
+
+static PyObject *
+itertools_accumulate_impl(PyTypeObject *type, PyObject *iterable,
+ PyObject *binop, PyObject *initial);
+
+static PyObject *
+itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"iterable", "func", "initial", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "accumulate", 0};
+ PyObject *argsbuf[3];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ PyObject *iterable;
+ PyObject *binop = Py_None;
+ PyObject *initial = Py_None;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ iterable = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[1]) {
+ binop = fastargs[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ initial = fastargs[2];
+skip_optional_kwonly:
+ return_value = itertools_accumulate_impl(type, iterable, binop, initial);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_compress__doc__,
+"compress(data, selectors)\n"
+"--\n"
+"\n"
+"Return data elements corresponding to true selector elements.\n"
+"\n"
+"Forms a shorter iterator from selected data elements using the selectors to\n"
+"choose the data elements.");
+
+static PyObject *
+itertools_compress_impl(PyTypeObject *type, PyObject *seq1, PyObject *seq2);
+
+static PyObject *
+itertools_compress(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"data", "selectors", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ PyObject *seq1;
+ PyObject *seq2;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ seq1 = fastargs[0];
+ seq2 = fastargs[1];
+ return_value = itertools_compress_impl(type, seq1, seq2);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_filterfalse__doc__,
+"filterfalse(function, iterable, /)\n"
+"--\n"
+"\n"
+"Return those items of iterable for which function(item) is false.\n"
+"\n"
+"If function is None, return the items that are false.");
+
+static PyObject *
+itertools_filterfalse_impl(PyTypeObject *type, PyObject *func, PyObject *seq);
+
+static PyObject *
+itertools_filterfalse(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *func;
+ PyObject *seq;
+
+ if ((type == &filterfalse_type) &&
+ !_PyArg_NoKeywords("filterfalse", kwargs)) {
+ goto exit;
+ }
+ if (!_PyArg_CheckPositional("filterfalse", PyTuple_GET_SIZE(args), 2, 2)) {
+ goto exit;
+ }
+ func = PyTuple_GET_ITEM(args, 0);
+ seq = PyTuple_GET_ITEM(args, 1);
+ return_value = itertools_filterfalse_impl(type, func, seq);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(itertools_count__doc__,
+"count(start=0, step=1)\n"
+"--\n"
+"\n"
+"Return a count object whose .__next__() method returns consecutive values.\n"
+"\n"
+"Equivalent to:\n"
+" def count(firstval=0, step=1):\n"
+" x = firstval\n"
+" while 1:\n"
+" yield x\n"
+" x += step");
+
+static PyObject *
+itertools_count_impl(PyTypeObject *type, PyObject *long_cnt,
+ PyObject *long_step);
+
+static PyObject *
+itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"start", "step", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "count", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ PyObject *long_cnt = NULL;
+ PyObject *long_step = NULL;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[0]) {
+ long_cnt = fastargs[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ long_step = fastargs[1];
+skip_optional_pos:
+ return_value = itertools_count_impl(type, long_cnt, long_step);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=392c9706e79f6710 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/mathmodule.c.h b/contrib/tools/python3/src/Modules/clinic/mathmodule.c.h
index 52551a0a79..65f3dd4f52 100644
--- a/contrib/tools/python3/src/Modules/clinic/mathmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/mathmodule.c.h
@@ -35,15 +35,15 @@ PyDoc_STRVAR(math_fsum__doc__,
#define MATH_FSUM_METHODDEF \
{"fsum", (PyCFunction)math_fsum, METH_O, math_fsum__doc__},
-PyDoc_STRVAR(math_isqrt__doc__,
-"isqrt($module, n, /)\n"
-"--\n"
-"\n"
-"Return the integer part of the square root of the input.");
-
-#define MATH_ISQRT_METHODDEF \
- {"isqrt", (PyCFunction)math_isqrt, METH_O, math_isqrt__doc__},
-
+PyDoc_STRVAR(math_isqrt__doc__,
+"isqrt($module, n, /)\n"
+"--\n"
+"\n"
+"Return the integer part of the square root of the input.");
+
+#define MATH_ISQRT_METHODDEF \
+ {"isqrt", (PyCFunction)math_isqrt, METH_O, math_isqrt__doc__},
+
PyDoc_STRVAR(math_factorial__doc__,
"factorial($module, x, /)\n"
"--\n"
@@ -87,16 +87,16 @@ math_frexp(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
double x;
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
}
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
return_value = math_frexp_impl(module, x);
exit:
@@ -112,7 +112,7 @@ PyDoc_STRVAR(math_ldexp__doc__,
"This is essentially the inverse of frexp().");
#define MATH_LDEXP_METHODDEF \
- {"ldexp", (PyCFunction)(void(*)(void))math_ldexp, METH_FASTCALL, math_ldexp__doc__},
+ {"ldexp", (PyCFunction)(void(*)(void))math_ldexp, METH_FASTCALL, math_ldexp__doc__},
static PyObject *
math_ldexp_impl(PyObject *module, double x, PyObject *i);
@@ -124,20 +124,20 @@ math_ldexp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
double x;
PyObject *i;
- if (!_PyArg_CheckPositional("ldexp", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("ldexp", nargs, 2, 2)) {
goto exit;
}
- if (PyFloat_CheckExact(args[0])) {
- x = PyFloat_AS_DOUBLE(args[0]);
- }
- else
- {
- x = PyFloat_AsDouble(args[0]);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- i = args[1];
+ if (PyFloat_CheckExact(args[0])) {
+ x = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(args[0]);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ i = args[1];
return_value = math_ldexp_impl(module, x, i);
exit:
@@ -164,16 +164,16 @@ math_modf(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
double x;
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
}
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
return_value = math_modf_impl(module, x);
exit:
@@ -250,7 +250,7 @@ PyDoc_STRVAR(math_fmod__doc__,
"x % y may differ.");
#define MATH_FMOD_METHODDEF \
- {"fmod", (PyCFunction)(void(*)(void))math_fmod, METH_FASTCALL, math_fmod__doc__},
+ {"fmod", (PyCFunction)(void(*)(void))math_fmod, METH_FASTCALL, math_fmod__doc__},
static PyObject *
math_fmod_impl(PyObject *module, double x, double y);
@@ -262,66 +262,66 @@ math_fmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
double x;
double y;
- if (!_PyArg_CheckPositional("fmod", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("fmod", nargs, 2, 2)) {
goto exit;
}
- if (PyFloat_CheckExact(args[0])) {
- x = PyFloat_AS_DOUBLE(args[0]);
- }
- else
- {
- x = PyFloat_AsDouble(args[0]);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[1])) {
- y = PyFloat_AS_DOUBLE(args[1]);
- }
- else
- {
- y = PyFloat_AsDouble(args[1]);
- if (y == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
+ if (PyFloat_CheckExact(args[0])) {
+ x = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(args[0]);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ y = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ y = PyFloat_AsDouble(args[1]);
+ if (y == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
return_value = math_fmod_impl(module, x, y);
exit:
return return_value;
}
-PyDoc_STRVAR(math_dist__doc__,
-"dist($module, p, q, /)\n"
+PyDoc_STRVAR(math_dist__doc__,
+"dist($module, p, q, /)\n"
"--\n"
"\n"
-"Return the Euclidean distance between two points p and q.\n"
-"\n"
-"The points should be specified as sequences (or iterables) of\n"
-"coordinates. Both inputs must have the same dimension.\n"
-"\n"
-"Roughly equivalent to:\n"
-" sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))");
+"Return the Euclidean distance between two points p and q.\n"
+"\n"
+"The points should be specified as sequences (or iterables) of\n"
+"coordinates. Both inputs must have the same dimension.\n"
+"\n"
+"Roughly equivalent to:\n"
+" sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))");
-#define MATH_DIST_METHODDEF \
- {"dist", (PyCFunction)(void(*)(void))math_dist, METH_FASTCALL, math_dist__doc__},
+#define MATH_DIST_METHODDEF \
+ {"dist", (PyCFunction)(void(*)(void))math_dist, METH_FASTCALL, math_dist__doc__},
static PyObject *
-math_dist_impl(PyObject *module, PyObject *p, PyObject *q);
+math_dist_impl(PyObject *module, PyObject *p, PyObject *q);
static PyObject *
-math_dist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+math_dist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- PyObject *p;
- PyObject *q;
+ PyObject *p;
+ PyObject *q;
- if (!_PyArg_CheckPositional("dist", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("dist", nargs, 2, 2)) {
goto exit;
}
- p = args[0];
- q = args[1];
- return_value = math_dist_impl(module, p, q);
+ p = args[0];
+ q = args[1];
+ return_value = math_dist_impl(module, p, q);
exit:
return return_value;
@@ -334,7 +334,7 @@ PyDoc_STRVAR(math_pow__doc__,
"Return x**y (x to the power of y).");
#define MATH_POW_METHODDEF \
- {"pow", (PyCFunction)(void(*)(void))math_pow, METH_FASTCALL, math_pow__doc__},
+ {"pow", (PyCFunction)(void(*)(void))math_pow, METH_FASTCALL, math_pow__doc__},
static PyObject *
math_pow_impl(PyObject *module, double x, double y);
@@ -346,29 +346,29 @@ math_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
double x;
double y;
- if (!_PyArg_CheckPositional("pow", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("pow", nargs, 2, 2)) {
goto exit;
}
- if (PyFloat_CheckExact(args[0])) {
- x = PyFloat_AS_DOUBLE(args[0]);
- }
- else
- {
- x = PyFloat_AsDouble(args[0]);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[1])) {
- y = PyFloat_AS_DOUBLE(args[1]);
- }
- else
- {
- y = PyFloat_AsDouble(args[1]);
- if (y == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
+ if (PyFloat_CheckExact(args[0])) {
+ x = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(args[0]);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ y = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ y = PyFloat_AsDouble(args[1]);
+ if (y == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
return_value = math_pow_impl(module, x, y);
exit:
@@ -393,16 +393,16 @@ math_degrees(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
double x;
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
}
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
return_value = math_degrees_impl(module, x);
exit:
@@ -427,16 +427,16 @@ math_radians(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
double x;
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
}
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
return_value = math_radians_impl(module, x);
exit:
@@ -461,16 +461,16 @@ math_isfinite(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
double x;
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
}
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
return_value = math_isfinite_impl(module, x);
exit:
@@ -495,16 +495,16 @@ math_isnan(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
double x;
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
}
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
return_value = math_isnan_impl(module, x);
exit:
@@ -529,16 +529,16 @@ math_isinf(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
double x;
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
}
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
return_value = math_isinf_impl(module, x);
exit:
@@ -568,7 +568,7 @@ PyDoc_STRVAR(math_isclose__doc__,
"only close to themselves.");
#define MATH_ISCLOSE_METHODDEF \
- {"isclose", (PyCFunction)(void(*)(void))math_isclose, METH_FASTCALL|METH_KEYWORDS, math_isclose__doc__},
+ {"isclose", (PyCFunction)(void(*)(void))math_isclose, METH_FASTCALL|METH_KEYWORDS, math_isclose__doc__},
static int
math_isclose_impl(PyObject *module, double a, double b, double rel_tol,
@@ -579,68 +579,68 @@ math_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"a", "b", "rel_tol", "abs_tol", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "isclose", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
double a;
double b;
double rel_tol = 1e-09;
double abs_tol = 0.0;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (PyFloat_CheckExact(args[0])) {
- a = PyFloat_AS_DOUBLE(args[0]);
- }
- else
- {
- a = PyFloat_AsDouble(args[0]);
- if (a == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[1])) {
- b = PyFloat_AS_DOUBLE(args[1]);
- }
- else
- {
- b = PyFloat_AsDouble(args[1]);
- if (b == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- if (PyFloat_CheckExact(args[2])) {
- rel_tol = PyFloat_AS_DOUBLE(args[2]);
- }
- else
- {
- rel_tol = PyFloat_AsDouble(args[2]);
- if (rel_tol == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (PyFloat_CheckExact(args[3])) {
- abs_tol = PyFloat_AS_DOUBLE(args[3]);
- }
- else
- {
- abs_tol = PyFloat_AsDouble(args[3]);
- if (abs_tol == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
-skip_optional_kwonly:
+ if (PyFloat_CheckExact(args[0])) {
+ a = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ a = PyFloat_AsDouble(args[0]);
+ if (a == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ b = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ b = PyFloat_AsDouble(args[1]);
+ if (b == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ if (PyFloat_CheckExact(args[2])) {
+ rel_tol = PyFloat_AS_DOUBLE(args[2]);
+ }
+ else
+ {
+ rel_tol = PyFloat_AsDouble(args[2]);
+ if (rel_tol == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (PyFloat_CheckExact(args[3])) {
+ abs_tol = PyFloat_AS_DOUBLE(args[3]);
+ }
+ else
+ {
+ abs_tol = PyFloat_AsDouble(args[3]);
+ if (abs_tol == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+skip_optional_kwonly:
_return_value = math_isclose_impl(module, a, b, rel_tol, abs_tol);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -650,219 +650,219 @@ skip_optional_kwonly:
exit:
return return_value;
}
-
-PyDoc_STRVAR(math_prod__doc__,
-"prod($module, iterable, /, *, start=1)\n"
-"--\n"
-"\n"
-"Calculate the product of all the elements in the input iterable.\n"
-"\n"
-"The default start value for the product is 1.\n"
-"\n"
-"When the iterable is empty, return the start value. This function is\n"
-"intended specifically for use with numeric values and may reject\n"
-"non-numeric types.");
-
-#define MATH_PROD_METHODDEF \
- {"prod", (PyCFunction)(void(*)(void))math_prod, METH_FASTCALL|METH_KEYWORDS, math_prod__doc__},
-
-static PyObject *
-math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start);
-
-static PyObject *
-math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "start", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "prod", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- PyObject *iterable;
- PyObject *start = NULL;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- iterable = args[0];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- start = args[1];
-skip_optional_kwonly:
- return_value = math_prod_impl(module, iterable, start);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(math_perm__doc__,
-"perm($module, n, k=None, /)\n"
-"--\n"
-"\n"
-"Number of ways to choose k items from n items without repetition and with order.\n"
-"\n"
-"Evaluates to n! / (n - k)! when k <= n and evaluates\n"
-"to zero when k > n.\n"
-"\n"
-"If k is not specified or is None, then k defaults to n\n"
-"and the function returns n!.\n"
-"\n"
-"Raises TypeError if either of the arguments are not integers.\n"
-"Raises ValueError if either of the arguments are negative.");
-
-#define MATH_PERM_METHODDEF \
- {"perm", (PyCFunction)(void(*)(void))math_perm, METH_FASTCALL, math_perm__doc__},
-
-static PyObject *
-math_perm_impl(PyObject *module, PyObject *n, PyObject *k);
-
-static PyObject *
-math_perm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *n;
- PyObject *k = Py_None;
-
- if (!_PyArg_CheckPositional("perm", nargs, 1, 2)) {
- goto exit;
- }
- n = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- k = args[1];
-skip_optional:
- return_value = math_perm_impl(module, n, k);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(math_comb__doc__,
-"comb($module, n, k, /)\n"
-"--\n"
-"\n"
-"Number of ways to choose k items from n items without repetition and without order.\n"
-"\n"
-"Evaluates to n! / (k! * (n - k)!) when k <= n and evaluates\n"
-"to zero when k > n.\n"
-"\n"
-"Also called the binomial coefficient because it is equivalent\n"
-"to the coefficient of k-th term in polynomial expansion of the\n"
-"expression (1 + x)**n.\n"
-"\n"
-"Raises TypeError if either of the arguments are not integers.\n"
-"Raises ValueError if either of the arguments are negative.");
-
-#define MATH_COMB_METHODDEF \
- {"comb", (PyCFunction)(void(*)(void))math_comb, METH_FASTCALL, math_comb__doc__},
-
-static PyObject *
-math_comb_impl(PyObject *module, PyObject *n, PyObject *k);
-
-static PyObject *
-math_comb(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *n;
- PyObject *k;
-
- if (!_PyArg_CheckPositional("comb", nargs, 2, 2)) {
- goto exit;
- }
- n = args[0];
- k = args[1];
- return_value = math_comb_impl(module, n, k);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(math_nextafter__doc__,
-"nextafter($module, x, y, /)\n"
-"--\n"
-"\n"
-"Return the next floating-point value after x towards y.");
-
-#define MATH_NEXTAFTER_METHODDEF \
- {"nextafter", (PyCFunction)(void(*)(void))math_nextafter, METH_FASTCALL, math_nextafter__doc__},
-
-static PyObject *
-math_nextafter_impl(PyObject *module, double x, double y);
-
-static PyObject *
-math_nextafter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- double x;
- double y;
-
- if (!_PyArg_CheckPositional("nextafter", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_CheckExact(args[0])) {
- x = PyFloat_AS_DOUBLE(args[0]);
- }
- else
- {
- x = PyFloat_AsDouble(args[0]);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- if (PyFloat_CheckExact(args[1])) {
- y = PyFloat_AS_DOUBLE(args[1]);
- }
- else
- {
- y = PyFloat_AsDouble(args[1]);
- if (y == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- return_value = math_nextafter_impl(module, x, y);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(math_ulp__doc__,
-"ulp($module, x, /)\n"
-"--\n"
-"\n"
-"Return the value of the least significant bit of the float x.");
-
-#define MATH_ULP_METHODDEF \
- {"ulp", (PyCFunction)math_ulp, METH_O, math_ulp__doc__},
-
-static double
-math_ulp_impl(PyObject *module, double x);
-
-static PyObject *
-math_ulp(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- double x;
- double _return_value;
-
- if (PyFloat_CheckExact(arg)) {
- x = PyFloat_AS_DOUBLE(arg);
- }
- else
- {
- x = PyFloat_AsDouble(arg);
- if (x == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- _return_value = math_ulp_impl(module, x);
- if ((_return_value == -1.0) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyFloat_FromDouble(_return_value);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=1eae2b3ef19568fa input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(math_prod__doc__,
+"prod($module, iterable, /, *, start=1)\n"
+"--\n"
+"\n"
+"Calculate the product of all the elements in the input iterable.\n"
+"\n"
+"The default start value for the product is 1.\n"
+"\n"
+"When the iterable is empty, return the start value. This function is\n"
+"intended specifically for use with numeric values and may reject\n"
+"non-numeric types.");
+
+#define MATH_PROD_METHODDEF \
+ {"prod", (PyCFunction)(void(*)(void))math_prod, METH_FASTCALL|METH_KEYWORDS, math_prod__doc__},
+
+static PyObject *
+math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start);
+
+static PyObject *
+math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"", "start", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "prod", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ PyObject *iterable;
+ PyObject *start = NULL;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ iterable = args[0];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ start = args[1];
+skip_optional_kwonly:
+ return_value = math_prod_impl(module, iterable, start);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(math_perm__doc__,
+"perm($module, n, k=None, /)\n"
+"--\n"
+"\n"
+"Number of ways to choose k items from n items without repetition and with order.\n"
+"\n"
+"Evaluates to n! / (n - k)! when k <= n and evaluates\n"
+"to zero when k > n.\n"
+"\n"
+"If k is not specified or is None, then k defaults to n\n"
+"and the function returns n!.\n"
+"\n"
+"Raises TypeError if either of the arguments are not integers.\n"
+"Raises ValueError if either of the arguments are negative.");
+
+#define MATH_PERM_METHODDEF \
+ {"perm", (PyCFunction)(void(*)(void))math_perm, METH_FASTCALL, math_perm__doc__},
+
+static PyObject *
+math_perm_impl(PyObject *module, PyObject *n, PyObject *k);
+
+static PyObject *
+math_perm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *n;
+ PyObject *k = Py_None;
+
+ if (!_PyArg_CheckPositional("perm", nargs, 1, 2)) {
+ goto exit;
+ }
+ n = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ k = args[1];
+skip_optional:
+ return_value = math_perm_impl(module, n, k);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(math_comb__doc__,
+"comb($module, n, k, /)\n"
+"--\n"
+"\n"
+"Number of ways to choose k items from n items without repetition and without order.\n"
+"\n"
+"Evaluates to n! / (k! * (n - k)!) when k <= n and evaluates\n"
+"to zero when k > n.\n"
+"\n"
+"Also called the binomial coefficient because it is equivalent\n"
+"to the coefficient of k-th term in polynomial expansion of the\n"
+"expression (1 + x)**n.\n"
+"\n"
+"Raises TypeError if either of the arguments are not integers.\n"
+"Raises ValueError if either of the arguments are negative.");
+
+#define MATH_COMB_METHODDEF \
+ {"comb", (PyCFunction)(void(*)(void))math_comb, METH_FASTCALL, math_comb__doc__},
+
+static PyObject *
+math_comb_impl(PyObject *module, PyObject *n, PyObject *k);
+
+static PyObject *
+math_comb(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *n;
+ PyObject *k;
+
+ if (!_PyArg_CheckPositional("comb", nargs, 2, 2)) {
+ goto exit;
+ }
+ n = args[0];
+ k = args[1];
+ return_value = math_comb_impl(module, n, k);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(math_nextafter__doc__,
+"nextafter($module, x, y, /)\n"
+"--\n"
+"\n"
+"Return the next floating-point value after x towards y.");
+
+#define MATH_NEXTAFTER_METHODDEF \
+ {"nextafter", (PyCFunction)(void(*)(void))math_nextafter, METH_FASTCALL, math_nextafter__doc__},
+
+static PyObject *
+math_nextafter_impl(PyObject *module, double x, double y);
+
+static PyObject *
+math_nextafter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ double x;
+ double y;
+
+ if (!_PyArg_CheckPositional("nextafter", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_CheckExact(args[0])) {
+ x = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(args[0]);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ y = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ y = PyFloat_AsDouble(args[1]);
+ if (y == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ return_value = math_nextafter_impl(module, x, y);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(math_ulp__doc__,
+"ulp($module, x, /)\n"
+"--\n"
+"\n"
+"Return the value of the least significant bit of the float x.");
+
+#define MATH_ULP_METHODDEF \
+ {"ulp", (PyCFunction)math_ulp, METH_O, math_ulp__doc__},
+
+static double
+math_ulp_impl(PyObject *module, double x);
+
+static PyObject *
+math_ulp(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ double x;
+ double _return_value;
+
+ if (PyFloat_CheckExact(arg)) {
+ x = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(arg);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ _return_value = math_ulp_impl(module, x);
+ if ((_return_value == -1.0) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyFloat_FromDouble(_return_value);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=1eae2b3ef19568fa input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/md5module.c.h b/contrib/tools/python3/src/Modules/clinic/md5module.c.h
index 0be9e3d749..c109f9efec 100644
--- a/contrib/tools/python3/src/Modules/clinic/md5module.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/md5module.c.h
@@ -66,53 +66,53 @@ PyDoc_STRVAR(MD5Type_update__doc__,
{"update", (PyCFunction)MD5Type_update, METH_O, MD5Type_update__doc__},
PyDoc_STRVAR(_md5_md5__doc__,
-"md5($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"md5($module, /, string=b\'\', *, usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new MD5 hash object; optionally initialized with a string.");
#define _MD5_MD5_METHODDEF \
- {"md5", (PyCFunction)(void(*)(void))_md5_md5, METH_FASTCALL|METH_KEYWORDS, _md5_md5__doc__},
+ {"md5", (PyCFunction)(void(*)(void))_md5_md5, METH_FASTCALL|METH_KEYWORDS, _md5_md5__doc__},
static PyObject *
-_md5_md5_impl(PyObject *module, PyObject *string, int usedforsecurity);
+_md5_md5_impl(PyObject *module, PyObject *string, int usedforsecurity);
static PyObject *
_md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "md5", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "md5", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *string = NULL;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- string = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _md5_md5_impl(module, string, usedforsecurity);
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ string = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _md5_md5_impl(module, string, usedforsecurity);
exit:
return return_value;
}
-/*[clinic end generated code: output=dbe3abc60086f3ef input=a9049054013a1b77]*/
+/*[clinic end generated code: output=dbe3abc60086f3ef input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/posixmodule.c.h b/contrib/tools/python3/src/Modules/clinic/posixmodule.c.h
index 5165752f12..28798ab99c 100644
--- a/contrib/tools/python3/src/Modules/clinic/posixmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/posixmodule.c.h
@@ -28,7 +28,7 @@ PyDoc_STRVAR(os_stat__doc__,
" an open file descriptor.");
#define OS_STAT_METHODDEF \
- {"stat", (PyCFunction)(void(*)(void))os_stat, METH_FASTCALL|METH_KEYWORDS, os_stat__doc__},
+ {"stat", (PyCFunction)(void(*)(void))os_stat, METH_FASTCALL|METH_KEYWORDS, os_stat__doc__},
static PyObject *
os_stat_impl(PyObject *module, path_t *path, int dir_fd, int follow_symlinks);
@@ -38,36 +38,36 @@ os_stat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "dir_fd", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "stat", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "stat", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("stat", "path", 0, 1);
int dir_fd = DEFAULT_DIR_FD;
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[1]) {
- if (!FSTATAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- follow_symlinks = PyObject_IsTrue(args[2]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[1]) {
+ if (!FSTATAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ follow_symlinks = PyObject_IsTrue(args[2]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_stat_impl(module, &path, dir_fd, follow_symlinks);
exit:
@@ -87,7 +87,7 @@ PyDoc_STRVAR(os_lstat__doc__,
"Equivalent to stat(path, follow_symlinks=False).");
#define OS_LSTAT_METHODDEF \
- {"lstat", (PyCFunction)(void(*)(void))os_lstat, METH_FASTCALL|METH_KEYWORDS, os_lstat__doc__},
+ {"lstat", (PyCFunction)(void(*)(void))os_lstat, METH_FASTCALL|METH_KEYWORDS, os_lstat__doc__},
static PyObject *
os_lstat_impl(PyObject *module, path_t *path, int dir_fd);
@@ -97,26 +97,26 @@ os_lstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "lstat", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "lstat", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("lstat", "path", 0, 0);
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!FSTATAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!FSTATAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_lstat_impl(module, &path, dir_fd);
exit:
@@ -159,7 +159,7 @@ PyDoc_STRVAR(os_access__doc__,
" has the specified access to the path.");
#define OS_ACCESS_METHODDEF \
- {"access", (PyCFunction)(void(*)(void))os_access, METH_FASTCALL|METH_KEYWORDS, os_access__doc__},
+ {"access", (PyCFunction)(void(*)(void))os_access, METH_FASTCALL|METH_KEYWORDS, os_access__doc__},
static int
os_access_impl(PyObject *module, path_t *path, int mode, int dir_fd,
@@ -170,9 +170,9 @@ os_access(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "mode", "dir_fd", "effective_ids", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "access", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "access", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t path = PATH_T_INITIALIZE("access", "path", 0, 0);
int mode;
int dir_fd = DEFAULT_DIR_FD;
@@ -180,47 +180,47 @@ os_access(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
int follow_symlinks = 1;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- if (!FACCESSAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- effective_ids = PyObject_IsTrue(args[3]);
- if (effective_ids < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- follow_symlinks = PyObject_IsTrue(args[4]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ if (!FACCESSAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ effective_ids = PyObject_IsTrue(args[3]);
+ if (effective_ids < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ follow_symlinks = PyObject_IsTrue(args[4]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
_return_value = os_access_impl(module, &path, mode, dir_fd, effective_ids, follow_symlinks);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -248,7 +248,7 @@ PyDoc_STRVAR(os_ttyname__doc__,
#define OS_TTYNAME_METHODDEF \
{"ttyname", (PyCFunction)os_ttyname, METH_O, os_ttyname__doc__},
-static PyObject *
+static PyObject *
os_ttyname_impl(PyObject *module, int fd);
static PyObject *
@@ -257,16 +257,16 @@ os_ttyname(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int fd;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- return_value = os_ttyname_impl(module, fd);
+ return_value = os_ttyname_impl(module, fd);
exit:
return return_value;
@@ -307,7 +307,7 @@ PyDoc_STRVAR(os_chdir__doc__,
" If this functionality is unavailable, using it raises an exception.");
#define OS_CHDIR_METHODDEF \
- {"chdir", (PyCFunction)(void(*)(void))os_chdir, METH_FASTCALL|METH_KEYWORDS, os_chdir__doc__},
+ {"chdir", (PyCFunction)(void(*)(void))os_chdir, METH_FASTCALL|METH_KEYWORDS, os_chdir__doc__},
static PyObject *
os_chdir_impl(PyObject *module, path_t *path);
@@ -317,17 +317,17 @@ os_chdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "chdir", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "chdir", 0};
+ PyObject *argsbuf[1];
path_t path = PATH_T_INITIALIZE("chdir", "path", 0, PATH_HAVE_FCHDIR);
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
return_value = os_chdir_impl(module, &path);
exit:
@@ -349,7 +349,7 @@ PyDoc_STRVAR(os_fchdir__doc__,
"Equivalent to os.chdir(fd).");
#define OS_FCHDIR_METHODDEF \
- {"fchdir", (PyCFunction)(void(*)(void))os_fchdir, METH_FASTCALL|METH_KEYWORDS, os_fchdir__doc__},
+ {"fchdir", (PyCFunction)(void(*)(void))os_fchdir, METH_FASTCALL|METH_KEYWORDS, os_fchdir__doc__},
static PyObject *
os_fchdir_impl(PyObject *module, int fd);
@@ -359,17 +359,17 @@ os_fchdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fchdir", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "fchdir", 0};
+ PyObject *argsbuf[1];
int fd;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
goto exit;
}
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
return_value = os_fchdir_impl(module, fd);
exit:
@@ -405,7 +405,7 @@ PyDoc_STRVAR(os_chmod__doc__,
" If they are unavailable, using them will raise a NotImplementedError.");
#define OS_CHMOD_METHODDEF \
- {"chmod", (PyCFunction)(void(*)(void))os_chmod, METH_FASTCALL|METH_KEYWORDS, os_chmod__doc__},
+ {"chmod", (PyCFunction)(void(*)(void))os_chmod, METH_FASTCALL|METH_KEYWORDS, os_chmod__doc__},
static PyObject *
os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd,
@@ -416,46 +416,46 @@ os_chmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "mode", "dir_fd", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "chmod", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "chmod", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t path = PATH_T_INITIALIZE("chmod", "path", 0, PATH_HAVE_FCHMOD);
int mode;
int dir_fd = DEFAULT_DIR_FD;
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- if (!FCHMODAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- follow_symlinks = PyObject_IsTrue(args[3]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ if (!FCHMODAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ follow_symlinks = PyObject_IsTrue(args[3]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_chmod_impl(module, &path, mode, dir_fd, follow_symlinks);
exit:
@@ -476,7 +476,7 @@ PyDoc_STRVAR(os_fchmod__doc__,
"Equivalent to os.chmod(fd, mode).");
#define OS_FCHMOD_METHODDEF \
- {"fchmod", (PyCFunction)(void(*)(void))os_fchmod, METH_FASTCALL|METH_KEYWORDS, os_fchmod__doc__},
+ {"fchmod", (PyCFunction)(void(*)(void))os_fchmod, METH_FASTCALL|METH_KEYWORDS, os_fchmod__doc__},
static PyObject *
os_fchmod_impl(PyObject *module, int fd, int mode);
@@ -486,33 +486,33 @@ os_fchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", "mode", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fchmod", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "fchmod", 0};
+ PyObject *argsbuf[2];
int fd;
int mode;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = os_fchmod_impl(module, fd, mode);
exit:
@@ -533,7 +533,7 @@ PyDoc_STRVAR(os_lchmod__doc__,
"Equivalent to chmod(path, mode, follow_symlinks=False).\"");
#define OS_LCHMOD_METHODDEF \
- {"lchmod", (PyCFunction)(void(*)(void))os_lchmod, METH_FASTCALL|METH_KEYWORDS, os_lchmod__doc__},
+ {"lchmod", (PyCFunction)(void(*)(void))os_lchmod, METH_FASTCALL|METH_KEYWORDS, os_lchmod__doc__},
static PyObject *
os_lchmod_impl(PyObject *module, path_t *path, int mode);
@@ -543,27 +543,27 @@ os_lchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "mode", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "lchmod", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "lchmod", 0};
+ PyObject *argsbuf[2];
path_t path = PATH_T_INITIALIZE("lchmod", "path", 0, 0);
int mode;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = os_lchmod_impl(module, &path, mode);
exit:
@@ -590,7 +590,7 @@ PyDoc_STRVAR(os_chflags__doc__,
"unavailable, using it will raise a NotImplementedError.");
#define OS_CHFLAGS_METHODDEF \
- {"chflags", (PyCFunction)(void(*)(void))os_chflags, METH_FASTCALL|METH_KEYWORDS, os_chflags__doc__},
+ {"chflags", (PyCFunction)(void(*)(void))os_chflags, METH_FASTCALL|METH_KEYWORDS, os_chflags__doc__},
static PyObject *
os_chflags_impl(PyObject *module, path_t *path, unsigned long flags,
@@ -601,33 +601,33 @@ os_chflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "flags", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "chflags", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "chflags", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t path = PATH_T_INITIALIZE("chflags", "path", 0, 0);
unsigned long flags;
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!PyLong_Check(args[1])) {
- _PyArg_BadArgument("chflags", "argument 'flags'", "int", args[1]);
- goto exit;
- }
- flags = PyLong_AsUnsignedLongMask(args[1]);
- if (!noptargs) {
- goto skip_optional_pos;
- }
- follow_symlinks = PyObject_IsTrue(args[2]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!PyLong_Check(args[1])) {
+ _PyArg_BadArgument("chflags", "argument 'flags'", "int", args[1]);
+ goto exit;
+ }
+ flags = PyLong_AsUnsignedLongMask(args[1]);
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ follow_symlinks = PyObject_IsTrue(args[2]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = os_chflags_impl(module, &path, flags, follow_symlinks);
exit:
@@ -651,7 +651,7 @@ PyDoc_STRVAR(os_lchflags__doc__,
"Equivalent to chflags(path, flags, follow_symlinks=False).");
#define OS_LCHFLAGS_METHODDEF \
- {"lchflags", (PyCFunction)(void(*)(void))os_lchflags, METH_FASTCALL|METH_KEYWORDS, os_lchflags__doc__},
+ {"lchflags", (PyCFunction)(void(*)(void))os_lchflags, METH_FASTCALL|METH_KEYWORDS, os_lchflags__doc__},
static PyObject *
os_lchflags_impl(PyObject *module, path_t *path, unsigned long flags);
@@ -661,23 +661,23 @@ os_lchflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "flags", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "lchflags", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "lchflags", 0};
+ PyObject *argsbuf[2];
path_t path = PATH_T_INITIALIZE("lchflags", "path", 0, 0);
unsigned long flags;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!PyLong_Check(args[1])) {
+ _PyArg_BadArgument("lchflags", "argument 'flags'", "int", args[1]);
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!PyLong_Check(args[1])) {
- _PyArg_BadArgument("lchflags", "argument 'flags'", "int", args[1]);
- goto exit;
- }
- flags = PyLong_AsUnsignedLongMask(args[1]);
+ flags = PyLong_AsUnsignedLongMask(args[1]);
return_value = os_lchflags_impl(module, &path, flags);
exit:
@@ -698,7 +698,7 @@ PyDoc_STRVAR(os_chroot__doc__,
"Change root directory to path.");
#define OS_CHROOT_METHODDEF \
- {"chroot", (PyCFunction)(void(*)(void))os_chroot, METH_FASTCALL|METH_KEYWORDS, os_chroot__doc__},
+ {"chroot", (PyCFunction)(void(*)(void))os_chroot, METH_FASTCALL|METH_KEYWORDS, os_chroot__doc__},
static PyObject *
os_chroot_impl(PyObject *module, path_t *path);
@@ -708,17 +708,17 @@ os_chroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "chroot", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "chroot", 0};
+ PyObject *argsbuf[1];
path_t path = PATH_T_INITIALIZE("chroot", "path", 0, 0);
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
return_value = os_chroot_impl(module, &path);
exit:
@@ -739,7 +739,7 @@ PyDoc_STRVAR(os_fsync__doc__,
"Force write of fd to disk.");
#define OS_FSYNC_METHODDEF \
- {"fsync", (PyCFunction)(void(*)(void))os_fsync, METH_FASTCALL|METH_KEYWORDS, os_fsync__doc__},
+ {"fsync", (PyCFunction)(void(*)(void))os_fsync, METH_FASTCALL|METH_KEYWORDS, os_fsync__doc__},
static PyObject *
os_fsync_impl(PyObject *module, int fd);
@@ -749,17 +749,17 @@ os_fsync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fsync", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "fsync", 0};
+ PyObject *argsbuf[1];
int fd;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
goto exit;
}
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
return_value = os_fsync_impl(module, fd);
exit:
@@ -799,7 +799,7 @@ PyDoc_STRVAR(os_fdatasync__doc__,
"Force write of fd to disk without forcing update of metadata.");
#define OS_FDATASYNC_METHODDEF \
- {"fdatasync", (PyCFunction)(void(*)(void))os_fdatasync, METH_FASTCALL|METH_KEYWORDS, os_fdatasync__doc__},
+ {"fdatasync", (PyCFunction)(void(*)(void))os_fdatasync, METH_FASTCALL|METH_KEYWORDS, os_fdatasync__doc__},
static PyObject *
os_fdatasync_impl(PyObject *module, int fd);
@@ -809,17 +809,17 @@ os_fdatasync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fdatasync", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "fdatasync", 0};
+ PyObject *argsbuf[1];
int fd;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
goto exit;
}
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
return_value = os_fdatasync_impl(module, fd);
exit:
@@ -861,7 +861,7 @@ PyDoc_STRVAR(os_chown__doc__,
" If they are unavailable, using them will raise a NotImplementedError.");
#define OS_CHOWN_METHODDEF \
- {"chown", (PyCFunction)(void(*)(void))os_chown, METH_FASTCALL|METH_KEYWORDS, os_chown__doc__},
+ {"chown", (PyCFunction)(void(*)(void))os_chown, METH_FASTCALL|METH_KEYWORDS, os_chown__doc__},
static PyObject *
os_chown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid,
@@ -872,44 +872,44 @@ os_chown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "uid", "gid", "dir_fd", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "chown", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
+ static _PyArg_Parser _parser = {NULL, _keywords, "chown", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
path_t path = PATH_T_INITIALIZE("chown", "path", 0, PATH_HAVE_FCHOWN);
uid_t uid;
gid_t gid;
int dir_fd = DEFAULT_DIR_FD;
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!_Py_Uid_Converter(args[1], &uid)) {
- goto exit;
- }
- if (!_Py_Gid_Converter(args[2], &gid)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[3]) {
- if (!FCHOWNAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- follow_symlinks = PyObject_IsTrue(args[4]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[1], &uid)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[2], &gid)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[3]) {
+ if (!FCHOWNAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ follow_symlinks = PyObject_IsTrue(args[4]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_chown_impl(module, &path, uid, gid, dir_fd, follow_symlinks);
exit:
@@ -932,7 +932,7 @@ PyDoc_STRVAR(os_fchown__doc__,
"Equivalent to os.chown(fd, uid, gid).");
#define OS_FCHOWN_METHODDEF \
- {"fchown", (PyCFunction)(void(*)(void))os_fchown, METH_FASTCALL|METH_KEYWORDS, os_fchown__doc__},
+ {"fchown", (PyCFunction)(void(*)(void))os_fchown, METH_FASTCALL|METH_KEYWORDS, os_fchown__doc__},
static PyObject *
os_fchown_impl(PyObject *module, int fd, uid_t uid, gid_t gid);
@@ -942,31 +942,31 @@ os_fchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", "uid", "gid", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fchown", 0};
- PyObject *argsbuf[3];
+ static _PyArg_Parser _parser = {NULL, _keywords, "fchown", 0};
+ PyObject *argsbuf[3];
int fd;
uid_t uid;
gid_t gid;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!_Py_Uid_Converter(args[1], &uid)) {
- goto exit;
- }
- if (!_Py_Gid_Converter(args[2], &gid)) {
- goto exit;
- }
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[1], &uid)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[2], &gid)) {
+ goto exit;
+ }
return_value = os_fchown_impl(module, fd, uid, gid);
exit:
@@ -987,7 +987,7 @@ PyDoc_STRVAR(os_lchown__doc__,
"Equivalent to os.chown(path, uid, gid, follow_symlinks=False).");
#define OS_LCHOWN_METHODDEF \
- {"lchown", (PyCFunction)(void(*)(void))os_lchown, METH_FASTCALL|METH_KEYWORDS, os_lchown__doc__},
+ {"lchown", (PyCFunction)(void(*)(void))os_lchown, METH_FASTCALL|METH_KEYWORDS, os_lchown__doc__},
static PyObject *
os_lchown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid);
@@ -997,25 +997,25 @@ os_lchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "uid", "gid", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "lchown", 0};
- PyObject *argsbuf[3];
+ static _PyArg_Parser _parser = {NULL, _keywords, "lchown", 0};
+ PyObject *argsbuf[3];
path_t path = PATH_T_INITIALIZE("lchown", "path", 0, 0);
uid_t uid;
gid_t gid;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[1], &uid)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[2], &gid)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!_Py_Uid_Converter(args[1], &uid)) {
- goto exit;
- }
- if (!_Py_Gid_Converter(args[2], &gid)) {
- goto exit;
- }
return_value = os_lchown_impl(module, &path, uid, gid);
exit:
@@ -1083,7 +1083,7 @@ PyDoc_STRVAR(os_link__doc__,
" NotImplementedError.");
#define OS_LINK_METHODDEF \
- {"link", (PyCFunction)(void(*)(void))os_link, METH_FASTCALL|METH_KEYWORDS, os_link__doc__},
+ {"link", (PyCFunction)(void(*)(void))os_link, METH_FASTCALL|METH_KEYWORDS, os_link__doc__},
static PyObject *
os_link_impl(PyObject *module, path_t *src, path_t *dst, int src_dir_fd,
@@ -1094,49 +1094,49 @@ os_link(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "link", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "link", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t src = PATH_T_INITIALIZE("link", "src", 0, 0);
path_t dst = PATH_T_INITIALIZE("link", "dst", 0, 0);
int src_dir_fd = DEFAULT_DIR_FD;
int dst_dir_fd = DEFAULT_DIR_FD;
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &src)) {
- goto exit;
- }
- if (!path_converter(args[1], &dst)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- if (!dir_fd_converter(args[2], &src_dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- if (!dir_fd_converter(args[3], &dst_dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- follow_symlinks = PyObject_IsTrue(args[4]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &src)) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &dst)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ if (!dir_fd_converter(args[2], &src_dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ if (!dir_fd_converter(args[3], &dst_dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ follow_symlinks = PyObject_IsTrue(args[4]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_link_impl(module, &src, &dst, src_dir_fd, dst_dir_fd, follow_symlinks);
exit:
@@ -1168,7 +1168,7 @@ PyDoc_STRVAR(os_listdir__doc__,
"entries \'.\' and \'..\' even if they are present in the directory.");
#define OS_LISTDIR_METHODDEF \
- {"listdir", (PyCFunction)(void(*)(void))os_listdir, METH_FASTCALL|METH_KEYWORDS, os_listdir__doc__},
+ {"listdir", (PyCFunction)(void(*)(void))os_listdir, METH_FASTCALL|METH_KEYWORDS, os_listdir__doc__},
static PyObject *
os_listdir_impl(PyObject *module, path_t *path);
@@ -1178,22 +1178,22 @@ os_listdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "listdir", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "listdir", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
path_t path = PATH_T_INITIALIZE("listdir", "path", 1, PATH_HAVE_FDOPENDIR);
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = os_listdir_impl(module, &path);
exit:
@@ -1222,7 +1222,7 @@ os__getfullpathname(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
path_t path = PATH_T_INITIALIZE("_getfullpathname", "path", 0, 0);
- if (!path_converter(arg, &path)) {
+ if (!path_converter(arg, &path)) {
goto exit;
}
return_value = os__getfullpathname_impl(module, &path);
@@ -1256,7 +1256,7 @@ os__getfinalpathname(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
path_t path = PATH_T_INITIALIZE("_getfinalpathname", "path", 0, 0);
- if (!path_converter(arg, &path)) {
+ if (!path_converter(arg, &path)) {
goto exit;
}
return_value = os__getfinalpathname_impl(module, &path);
@@ -1279,7 +1279,7 @@ PyDoc_STRVAR(os__getvolumepathname__doc__,
"A helper function for ismount on Win32.");
#define OS__GETVOLUMEPATHNAME_METHODDEF \
- {"_getvolumepathname", (PyCFunction)(void(*)(void))os__getvolumepathname, METH_FASTCALL|METH_KEYWORDS, os__getvolumepathname__doc__},
+ {"_getvolumepathname", (PyCFunction)(void(*)(void))os__getvolumepathname, METH_FASTCALL|METH_KEYWORDS, os__getvolumepathname__doc__},
static PyObject *
os__getvolumepathname_impl(PyObject *module, path_t *path);
@@ -1289,17 +1289,17 @@ os__getvolumepathname(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_getvolumepathname", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "_getvolumepathname", 0};
+ PyObject *argsbuf[1];
path_t path = PATH_T_INITIALIZE("_getvolumepathname", "path", 0, 0);
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
return_value = os__getvolumepathname_impl(module, &path);
exit:
@@ -1311,47 +1311,47 @@ exit:
#endif /* defined(MS_WINDOWS) */
-#if defined(MS_WINDOWS)
-
-PyDoc_STRVAR(os__path_splitroot__doc__,
-"_path_splitroot($module, /, path)\n"
-"--\n"
-"\n"
-"Removes everything after the root on Win32.");
-
-#define OS__PATH_SPLITROOT_METHODDEF \
- {"_path_splitroot", (PyCFunction)(void(*)(void))os__path_splitroot, METH_FASTCALL|METH_KEYWORDS, os__path_splitroot__doc__},
-
-static PyObject *
-os__path_splitroot_impl(PyObject *module, path_t *path);
-
-static PyObject *
-os__path_splitroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_path_splitroot", 0};
- PyObject *argsbuf[1];
- path_t path = PATH_T_INITIALIZE("_path_splitroot", "path", 0, 0);
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- return_value = os__path_splitroot_impl(module, &path);
-
-exit:
- /* Cleanup for path */
- path_cleanup(&path);
-
- return return_value;
-}
-
-#endif /* defined(MS_WINDOWS) */
-
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__path_splitroot__doc__,
+"_path_splitroot($module, /, path)\n"
+"--\n"
+"\n"
+"Removes everything after the root on Win32.");
+
+#define OS__PATH_SPLITROOT_METHODDEF \
+ {"_path_splitroot", (PyCFunction)(void(*)(void))os__path_splitroot, METH_FASTCALL|METH_KEYWORDS, os__path_splitroot__doc__},
+
+static PyObject *
+os__path_splitroot_impl(PyObject *module, path_t *path);
+
+static PyObject *
+os__path_splitroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"path", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "_path_splitroot", 0};
+ PyObject *argsbuf[1];
+ path_t path = PATH_T_INITIALIZE("_path_splitroot", "path", 0, 0);
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ return_value = os__path_splitroot_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
PyDoc_STRVAR(os_mkdir__doc__,
"mkdir($module, /, path, mode=511, *, dir_fd=None)\n"
"--\n"
@@ -1366,7 +1366,7 @@ PyDoc_STRVAR(os_mkdir__doc__,
"The mode argument is ignored on Windows.");
#define OS_MKDIR_METHODDEF \
- {"mkdir", (PyCFunction)(void(*)(void))os_mkdir, METH_FASTCALL|METH_KEYWORDS, os_mkdir__doc__},
+ {"mkdir", (PyCFunction)(void(*)(void))os_mkdir, METH_FASTCALL|METH_KEYWORDS, os_mkdir__doc__},
static PyObject *
os_mkdir_impl(PyObject *module, path_t *path, int mode, int dir_fd);
@@ -1376,45 +1376,45 @@ os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "mode", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "mkdir", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "mkdir", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("mkdir", "path", 0, 0);
int mode = 511;
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!MKDIRAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!MKDIRAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_mkdir_impl(module, &path, mode, dir_fd);
exit:
@@ -1444,15 +1444,15 @@ os_nice(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int increment;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ increment = _PyLong_AsInt(arg);
+ if (increment == -1 && PyErr_Occurred()) {
goto exit;
}
- increment = _PyLong_AsInt(arg);
- if (increment == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_nice_impl(module, increment);
exit:
@@ -1470,7 +1470,7 @@ PyDoc_STRVAR(os_getpriority__doc__,
"Return program scheduling priority.");
#define OS_GETPRIORITY_METHODDEF \
- {"getpriority", (PyCFunction)(void(*)(void))os_getpriority, METH_FASTCALL|METH_KEYWORDS, os_getpriority__doc__},
+ {"getpriority", (PyCFunction)(void(*)(void))os_getpriority, METH_FASTCALL|METH_KEYWORDS, os_getpriority__doc__},
static PyObject *
os_getpriority_impl(PyObject *module, int which, int who);
@@ -1480,33 +1480,33 @@ os_getpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"which", "who", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "getpriority", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "getpriority", 0};
+ PyObject *argsbuf[2];
int which;
int who;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- which = _PyLong_AsInt(args[0]);
- if (which == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- who = _PyLong_AsInt(args[1]);
- if (who == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ which = _PyLong_AsInt(args[0]);
+ if (which == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ who = _PyLong_AsInt(args[1]);
+ if (who == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = os_getpriority_impl(module, which, who);
exit:
@@ -1524,7 +1524,7 @@ PyDoc_STRVAR(os_setpriority__doc__,
"Set program scheduling priority.");
#define OS_SETPRIORITY_METHODDEF \
- {"setpriority", (PyCFunction)(void(*)(void))os_setpriority, METH_FASTCALL|METH_KEYWORDS, os_setpriority__doc__},
+ {"setpriority", (PyCFunction)(void(*)(void))os_setpriority, METH_FASTCALL|METH_KEYWORDS, os_setpriority__doc__},
static PyObject *
os_setpriority_impl(PyObject *module, int which, int who, int priority);
@@ -1534,43 +1534,43 @@ os_setpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"which", "who", "priority", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "setpriority", 0};
- PyObject *argsbuf[3];
+ static _PyArg_Parser _parser = {NULL, _keywords, "setpriority", 0};
+ PyObject *argsbuf[3];
int which;
int who;
int priority;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- which = _PyLong_AsInt(args[0]);
- if (which == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- who = _PyLong_AsInt(args[1]);
- if (who == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- priority = _PyLong_AsInt(args[2]);
- if (priority == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ which = _PyLong_AsInt(args[0]);
+ if (which == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ who = _PyLong_AsInt(args[1]);
+ if (who == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ priority = _PyLong_AsInt(args[2]);
+ if (priority == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = os_setpriority_impl(module, which, who, priority);
exit:
@@ -1592,7 +1592,7 @@ PyDoc_STRVAR(os_rename__doc__,
" If they are unavailable, using them will raise a NotImplementedError.");
#define OS_RENAME_METHODDEF \
- {"rename", (PyCFunction)(void(*)(void))os_rename, METH_FASTCALL|METH_KEYWORDS, os_rename__doc__},
+ {"rename", (PyCFunction)(void(*)(void))os_rename, METH_FASTCALL|METH_KEYWORDS, os_rename__doc__},
static PyObject *
os_rename_impl(PyObject *module, path_t *src, path_t *dst, int src_dir_fd,
@@ -1603,39 +1603,39 @@ os_rename(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "rename", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "rename", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t src = PATH_T_INITIALIZE("rename", "src", 0, 0);
path_t dst = PATH_T_INITIALIZE("rename", "dst", 0, 0);
int src_dir_fd = DEFAULT_DIR_FD;
int dst_dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &src)) {
- goto exit;
- }
- if (!path_converter(args[1], &dst)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- if (!dir_fd_converter(args[2], &src_dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (!dir_fd_converter(args[3], &dst_dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &src)) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &dst)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ if (!dir_fd_converter(args[2], &src_dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (!dir_fd_converter(args[3], &dst_dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_rename_impl(module, &src, &dst, src_dir_fd, dst_dir_fd);
exit:
@@ -1660,7 +1660,7 @@ PyDoc_STRVAR(os_replace__doc__,
" If they are unavailable, using them will raise a NotImplementedError.");
#define OS_REPLACE_METHODDEF \
- {"replace", (PyCFunction)(void(*)(void))os_replace, METH_FASTCALL|METH_KEYWORDS, os_replace__doc__},
+ {"replace", (PyCFunction)(void(*)(void))os_replace, METH_FASTCALL|METH_KEYWORDS, os_replace__doc__},
static PyObject *
os_replace_impl(PyObject *module, path_t *src, path_t *dst, int src_dir_fd,
@@ -1671,39 +1671,39 @@ os_replace(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"src", "dst", "src_dir_fd", "dst_dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t src = PATH_T_INITIALIZE("replace", "src", 0, 0);
path_t dst = PATH_T_INITIALIZE("replace", "dst", 0, 0);
int src_dir_fd = DEFAULT_DIR_FD;
int dst_dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &src)) {
- goto exit;
- }
- if (!path_converter(args[1], &dst)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- if (!dir_fd_converter(args[2], &src_dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (!dir_fd_converter(args[3], &dst_dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &src)) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &dst)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ if (!dir_fd_converter(args[2], &src_dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (!dir_fd_converter(args[3], &dst_dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_replace_impl(module, &src, &dst, src_dir_fd, dst_dir_fd);
exit:
@@ -1727,7 +1727,7 @@ PyDoc_STRVAR(os_rmdir__doc__,
" If it is unavailable, using it will raise a NotImplementedError.");
#define OS_RMDIR_METHODDEF \
- {"rmdir", (PyCFunction)(void(*)(void))os_rmdir, METH_FASTCALL|METH_KEYWORDS, os_rmdir__doc__},
+ {"rmdir", (PyCFunction)(void(*)(void))os_rmdir, METH_FASTCALL|METH_KEYWORDS, os_rmdir__doc__},
static PyObject *
os_rmdir_impl(PyObject *module, path_t *path, int dir_fd);
@@ -1737,26 +1737,26 @@ os_rmdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "rmdir", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "rmdir", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("rmdir", "path", 0, 0);
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!UNLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!UNLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_rmdir_impl(module, &path, dir_fd);
exit:
@@ -1775,7 +1775,7 @@ PyDoc_STRVAR(os_system__doc__,
"Execute the command in a subshell.");
#define OS_SYSTEM_METHODDEF \
- {"system", (PyCFunction)(void(*)(void))os_system, METH_FASTCALL|METH_KEYWORDS, os_system__doc__},
+ {"system", (PyCFunction)(void(*)(void))os_system, METH_FASTCALL|METH_KEYWORDS, os_system__doc__},
static long
os_system_impl(PyObject *module, const Py_UNICODE *command);
@@ -1814,7 +1814,7 @@ PyDoc_STRVAR(os_system__doc__,
"Execute the command in a subshell.");
#define OS_SYSTEM_METHODDEF \
- {"system", (PyCFunction)(void(*)(void))os_system, METH_FASTCALL|METH_KEYWORDS, os_system__doc__},
+ {"system", (PyCFunction)(void(*)(void))os_system, METH_FASTCALL|METH_KEYWORDS, os_system__doc__},
static long
os_system_impl(PyObject *module, PyObject *command);
@@ -1824,18 +1824,18 @@ os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"command", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "system", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "system", 0};
+ PyObject *argsbuf[1];
PyObject *command = NULL;
long _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_FSConverter(args[0], &command)) {
goto exit;
}
- if (!PyUnicode_FSConverter(args[0], &command)) {
- goto exit;
- }
_return_value = os_system_impl(module, command);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -1869,15 +1869,15 @@ os_umask(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int mask;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mask = _PyLong_AsInt(arg);
+ if (mask == -1 && PyErr_Occurred()) {
goto exit;
}
- mask = _PyLong_AsInt(arg);
- if (mask == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_umask_impl(module, mask);
exit:
@@ -1896,7 +1896,7 @@ PyDoc_STRVAR(os_unlink__doc__,
" If it is unavailable, using it will raise a NotImplementedError.");
#define OS_UNLINK_METHODDEF \
- {"unlink", (PyCFunction)(void(*)(void))os_unlink, METH_FASTCALL|METH_KEYWORDS, os_unlink__doc__},
+ {"unlink", (PyCFunction)(void(*)(void))os_unlink, METH_FASTCALL|METH_KEYWORDS, os_unlink__doc__},
static PyObject *
os_unlink_impl(PyObject *module, path_t *path, int dir_fd);
@@ -1906,26 +1906,26 @@ os_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "unlink", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "unlink", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("unlink", "path", 0, 0);
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!UNLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!UNLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+skip_optional_kwonly:
return_value = os_unlink_impl(module, &path, dir_fd);
exit:
@@ -1947,7 +1947,7 @@ PyDoc_STRVAR(os_remove__doc__,
" If it is unavailable, using it will raise a NotImplementedError.");
#define OS_REMOVE_METHODDEF \
- {"remove", (PyCFunction)(void(*)(void))os_remove, METH_FASTCALL|METH_KEYWORDS, os_remove__doc__},
+ {"remove", (PyCFunction)(void(*)(void))os_remove, METH_FASTCALL|METH_KEYWORDS, os_remove__doc__},
static PyObject *
os_remove_impl(PyObject *module, path_t *path, int dir_fd);
@@ -1957,26 +1957,26 @@ os_remove(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "remove", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "remove", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("remove", "path", 0, 0);
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!UNLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!UNLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+skip_optional_kwonly:
return_value = os_remove_impl(module, &path, dir_fd);
exit:
@@ -2012,8 +2012,8 @@ os_uname(PyObject *module, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_UNAME) */
PyDoc_STRVAR(os_utime__doc__,
-"utime($module, /, path, times=None, *, ns=<unrepresentable>,\n"
-" dir_fd=None, follow_symlinks=True)\n"
+"utime($module, /, path, times=None, *, ns=<unrepresentable>,\n"
+" dir_fd=None, follow_symlinks=True)\n"
"--\n"
"\n"
"Set the access and modified time of path.\n"
@@ -2041,7 +2041,7 @@ PyDoc_STRVAR(os_utime__doc__,
" If they are unavailable, using them will raise a NotImplementedError.");
#define OS_UTIME_METHODDEF \
- {"utime", (PyCFunction)(void(*)(void))os_utime, METH_FASTCALL|METH_KEYWORDS, os_utime__doc__},
+ {"utime", (PyCFunction)(void(*)(void))os_utime, METH_FASTCALL|METH_KEYWORDS, os_utime__doc__},
static PyObject *
os_utime_impl(PyObject *module, path_t *path, PyObject *times, PyObject *ns,
@@ -2052,54 +2052,54 @@ os_utime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "times", "ns", "dir_fd", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "utime", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "utime", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("utime", "path", 0, PATH_UTIME_HAVE_FD);
- PyObject *times = Py_None;
+ PyObject *times = Py_None;
PyObject *ns = NULL;
int dir_fd = DEFAULT_DIR_FD;
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- times = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[2]) {
- ns = args[2];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- if (!FUTIMENSAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- follow_symlinks = PyObject_IsTrue(args[4]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ times = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[2]) {
+ ns = args[2];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ if (!FUTIMENSAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ follow_symlinks = PyObject_IsTrue(args[4]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_utime_impl(module, &path, times, ns, dir_fd, follow_symlinks);
exit:
@@ -2116,7 +2116,7 @@ PyDoc_STRVAR(os__exit__doc__,
"Exit to the system with specified status, without normal exit processing.");
#define OS__EXIT_METHODDEF \
- {"_exit", (PyCFunction)(void(*)(void))os__exit, METH_FASTCALL|METH_KEYWORDS, os__exit__doc__},
+ {"_exit", (PyCFunction)(void(*)(void))os__exit, METH_FASTCALL|METH_KEYWORDS, os__exit__doc__},
static PyObject *
os__exit_impl(PyObject *module, int status);
@@ -2126,23 +2126,23 @@ os__exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_exit", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "_exit", 0};
+ PyObject *argsbuf[1];
int status;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os__exit_impl(module, status);
exit:
@@ -2163,7 +2163,7 @@ PyDoc_STRVAR(os_execv__doc__,
" Tuple or list of strings.");
#define OS_EXECV_METHODDEF \
- {"execv", (PyCFunction)(void(*)(void))os_execv, METH_FASTCALL, os_execv__doc__},
+ {"execv", (PyCFunction)(void(*)(void))os_execv, METH_FASTCALL, os_execv__doc__},
static PyObject *
os_execv_impl(PyObject *module, path_t *path, PyObject *argv);
@@ -2175,13 +2175,13 @@ os_execv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
path_t path = PATH_T_INITIALIZE("execv", "path", 0, 0);
PyObject *argv;
- if (!_PyArg_CheckPositional("execv", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("execv", nargs, 2, 2)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- argv = args[1];
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ argv = args[1];
return_value = os_execv_impl(module, &path, argv);
exit:
@@ -2209,7 +2209,7 @@ PyDoc_STRVAR(os_execve__doc__,
" Dictionary of strings mapping to strings.");
#define OS_EXECVE_METHODDEF \
- {"execve", (PyCFunction)(void(*)(void))os_execve, METH_FASTCALL|METH_KEYWORDS, os_execve__doc__},
+ {"execve", (PyCFunction)(void(*)(void))os_execve, METH_FASTCALL|METH_KEYWORDS, os_execve__doc__},
static PyObject *
os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env);
@@ -2219,21 +2219,21 @@ os_execve(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "argv", "env", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "execve", 0};
- PyObject *argsbuf[3];
+ static _PyArg_Parser _parser = {NULL, _keywords, "execve", 0};
+ PyObject *argsbuf[3];
path_t path = PATH_T_INITIALIZE("execve", "path", 0, PATH_HAVE_FEXECVE);
PyObject *argv;
PyObject *env;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- argv = args[1];
- env = args[2];
+ argv = args[1];
+ env = args[2];
return_value = os_execve_impl(module, &path, argv, env);
exit:
@@ -2245,282 +2245,282 @@ exit:
#endif /* defined(HAVE_EXECV) */
-#if defined(HAVE_POSIX_SPAWN)
-
-PyDoc_STRVAR(os_posix_spawn__doc__,
-"posix_spawn($module, path, argv, env, /, *, file_actions=(),\n"
-" setpgroup=<unrepresentable>, resetids=False, setsid=False,\n"
-" setsigmask=(), setsigdef=(), scheduler=<unrepresentable>)\n"
-"--\n"
-"\n"
-"Execute the program specified by path in a new process.\n"
-"\n"
-" path\n"
-" Path of executable file.\n"
-" argv\n"
-" Tuple or list of strings.\n"
-" env\n"
-" Dictionary of strings mapping to strings.\n"
-" file_actions\n"
-" A sequence of file action tuples.\n"
-" setpgroup\n"
-" The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.\n"
-" resetids\n"
-" If the value is `true` the POSIX_SPAWN_RESETIDS will be activated.\n"
-" setsid\n"
-" If the value is `true` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.\n"
-" setsigmask\n"
-" The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.\n"
-" setsigdef\n"
-" The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.\n"
-" scheduler\n"
-" A tuple with the scheduler policy (optional) and parameters.");
-
-#define OS_POSIX_SPAWN_METHODDEF \
- {"posix_spawn", (PyCFunction)(void(*)(void))os_posix_spawn, METH_FASTCALL|METH_KEYWORDS, os_posix_spawn__doc__},
-
-static PyObject *
-os_posix_spawn_impl(PyObject *module, path_t *path, PyObject *argv,
- PyObject *env, PyObject *file_actions,
- PyObject *setpgroup, int resetids, int setsid,
- PyObject *setsigmask, PyObject *setsigdef,
- PyObject *scheduler);
-
-static PyObject *
-os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawn", 0};
- PyObject *argsbuf[10];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
- path_t path = PATH_T_INITIALIZE("posix_spawn", "path", 0, 0);
- PyObject *argv;
- PyObject *env;
- PyObject *file_actions = NULL;
- PyObject *setpgroup = NULL;
- int resetids = 0;
- int setsid = 0;
- PyObject *setsigmask = NULL;
- PyObject *setsigdef = NULL;
- PyObject *scheduler = NULL;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- argv = args[1];
- env = args[2];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[3]) {
- file_actions = args[3];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[4]) {
- setpgroup = args[4];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[5]) {
- if (PyFloat_Check(args[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- resetids = _PyLong_AsInt(args[5]);
- if (resetids == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[6]) {
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- setsid = _PyLong_AsInt(args[6]);
- if (setsid == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[7]) {
- setsigmask = args[7];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[8]) {
- setsigdef = args[8];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- scheduler = args[9];
-skip_optional_kwonly:
- return_value = os_posix_spawn_impl(module, &path, argv, env, file_actions, setpgroup, resetids, setsid, setsigmask, setsigdef, scheduler);
-
-exit:
- /* Cleanup for path */
- path_cleanup(&path);
-
- return return_value;
-}
-
-#endif /* defined(HAVE_POSIX_SPAWN) */
-
-#if defined(HAVE_POSIX_SPAWNP)
-
-PyDoc_STRVAR(os_posix_spawnp__doc__,
-"posix_spawnp($module, path, argv, env, /, *, file_actions=(),\n"
-" setpgroup=<unrepresentable>, resetids=False, setsid=False,\n"
-" setsigmask=(), setsigdef=(), scheduler=<unrepresentable>)\n"
-"--\n"
-"\n"
-"Execute the program specified by path in a new process.\n"
-"\n"
-" path\n"
-" Path of executable file.\n"
-" argv\n"
-" Tuple or list of strings.\n"
-" env\n"
-" Dictionary of strings mapping to strings.\n"
-" file_actions\n"
-" A sequence of file action tuples.\n"
-" setpgroup\n"
-" The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.\n"
-" resetids\n"
-" If the value is `True` the POSIX_SPAWN_RESETIDS will be activated.\n"
-" setsid\n"
-" If the value is `True` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.\n"
-" setsigmask\n"
-" The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.\n"
-" setsigdef\n"
-" The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.\n"
-" scheduler\n"
-" A tuple with the scheduler policy (optional) and parameters.");
-
-#define OS_POSIX_SPAWNP_METHODDEF \
- {"posix_spawnp", (PyCFunction)(void(*)(void))os_posix_spawnp, METH_FASTCALL|METH_KEYWORDS, os_posix_spawnp__doc__},
-
-static PyObject *
-os_posix_spawnp_impl(PyObject *module, path_t *path, PyObject *argv,
- PyObject *env, PyObject *file_actions,
- PyObject *setpgroup, int resetids, int setsid,
- PyObject *setsigmask, PyObject *setsigdef,
- PyObject *scheduler);
-
-static PyObject *
-os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawnp", 0};
- PyObject *argsbuf[10];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
- path_t path = PATH_T_INITIALIZE("posix_spawnp", "path", 0, 0);
- PyObject *argv;
- PyObject *env;
- PyObject *file_actions = NULL;
- PyObject *setpgroup = NULL;
- int resetids = 0;
- int setsid = 0;
- PyObject *setsigmask = NULL;
- PyObject *setsigdef = NULL;
- PyObject *scheduler = NULL;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- argv = args[1];
- env = args[2];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[3]) {
- file_actions = args[3];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[4]) {
- setpgroup = args[4];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[5]) {
- if (PyFloat_Check(args[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- resetids = _PyLong_AsInt(args[5]);
- if (resetids == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[6]) {
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- setsid = _PyLong_AsInt(args[6]);
- if (setsid == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[7]) {
- setsigmask = args[7];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[8]) {
- setsigdef = args[8];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- scheduler = args[9];
-skip_optional_kwonly:
- return_value = os_posix_spawnp_impl(module, &path, argv, env, file_actions, setpgroup, resetids, setsid, setsigmask, setsigdef, scheduler);
-
-exit:
- /* Cleanup for path */
- path_cleanup(&path);
-
- return return_value;
-}
-
-#endif /* defined(HAVE_POSIX_SPAWNP) */
-
-#if (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN))
-
+#if defined(HAVE_POSIX_SPAWN)
+
+PyDoc_STRVAR(os_posix_spawn__doc__,
+"posix_spawn($module, path, argv, env, /, *, file_actions=(),\n"
+" setpgroup=<unrepresentable>, resetids=False, setsid=False,\n"
+" setsigmask=(), setsigdef=(), scheduler=<unrepresentable>)\n"
+"--\n"
+"\n"
+"Execute the program specified by path in a new process.\n"
+"\n"
+" path\n"
+" Path of executable file.\n"
+" argv\n"
+" Tuple or list of strings.\n"
+" env\n"
+" Dictionary of strings mapping to strings.\n"
+" file_actions\n"
+" A sequence of file action tuples.\n"
+" setpgroup\n"
+" The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.\n"
+" resetids\n"
+" If the value is `true` the POSIX_SPAWN_RESETIDS will be activated.\n"
+" setsid\n"
+" If the value is `true` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.\n"
+" setsigmask\n"
+" The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.\n"
+" setsigdef\n"
+" The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.\n"
+" scheduler\n"
+" A tuple with the scheduler policy (optional) and parameters.");
+
+#define OS_POSIX_SPAWN_METHODDEF \
+ {"posix_spawn", (PyCFunction)(void(*)(void))os_posix_spawn, METH_FASTCALL|METH_KEYWORDS, os_posix_spawn__doc__},
+
+static PyObject *
+os_posix_spawn_impl(PyObject *module, path_t *path, PyObject *argv,
+ PyObject *env, PyObject *file_actions,
+ PyObject *setpgroup, int resetids, int setsid,
+ PyObject *setsigmask, PyObject *setsigdef,
+ PyObject *scheduler);
+
+static PyObject *
+os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawn", 0};
+ PyObject *argsbuf[10];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
+ path_t path = PATH_T_INITIALIZE("posix_spawn", "path", 0, 0);
+ PyObject *argv;
+ PyObject *env;
+ PyObject *file_actions = NULL;
+ PyObject *setpgroup = NULL;
+ int resetids = 0;
+ int setsid = 0;
+ PyObject *setsigmask = NULL;
+ PyObject *setsigdef = NULL;
+ PyObject *scheduler = NULL;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ argv = args[1];
+ env = args[2];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[3]) {
+ file_actions = args[3];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[4]) {
+ setpgroup = args[4];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[5]) {
+ if (PyFloat_Check(args[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ resetids = _PyLong_AsInt(args[5]);
+ if (resetids == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[6]) {
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ setsid = _PyLong_AsInt(args[6]);
+ if (setsid == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[7]) {
+ setsigmask = args[7];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[8]) {
+ setsigdef = args[8];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ scheduler = args[9];
+skip_optional_kwonly:
+ return_value = os_posix_spawn_impl(module, &path, argv, env, file_actions, setpgroup, resetids, setsid, setsigmask, setsigdef, scheduler);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_POSIX_SPAWN) */
+
+#if defined(HAVE_POSIX_SPAWNP)
+
+PyDoc_STRVAR(os_posix_spawnp__doc__,
+"posix_spawnp($module, path, argv, env, /, *, file_actions=(),\n"
+" setpgroup=<unrepresentable>, resetids=False, setsid=False,\n"
+" setsigmask=(), setsigdef=(), scheduler=<unrepresentable>)\n"
+"--\n"
+"\n"
+"Execute the program specified by path in a new process.\n"
+"\n"
+" path\n"
+" Path of executable file.\n"
+" argv\n"
+" Tuple or list of strings.\n"
+" env\n"
+" Dictionary of strings mapping to strings.\n"
+" file_actions\n"
+" A sequence of file action tuples.\n"
+" setpgroup\n"
+" The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.\n"
+" resetids\n"
+" If the value is `True` the POSIX_SPAWN_RESETIDS will be activated.\n"
+" setsid\n"
+" If the value is `True` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.\n"
+" setsigmask\n"
+" The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.\n"
+" setsigdef\n"
+" The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.\n"
+" scheduler\n"
+" A tuple with the scheduler policy (optional) and parameters.");
+
+#define OS_POSIX_SPAWNP_METHODDEF \
+ {"posix_spawnp", (PyCFunction)(void(*)(void))os_posix_spawnp, METH_FASTCALL|METH_KEYWORDS, os_posix_spawnp__doc__},
+
+static PyObject *
+os_posix_spawnp_impl(PyObject *module, path_t *path, PyObject *argv,
+ PyObject *env, PyObject *file_actions,
+ PyObject *setpgroup, int resetids, int setsid,
+ PyObject *setsigmask, PyObject *setsigdef,
+ PyObject *scheduler);
+
+static PyObject *
+os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"", "", "", "file_actions", "setpgroup", "resetids", "setsid", "setsigmask", "setsigdef", "scheduler", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "posix_spawnp", 0};
+ PyObject *argsbuf[10];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
+ path_t path = PATH_T_INITIALIZE("posix_spawnp", "path", 0, 0);
+ PyObject *argv;
+ PyObject *env;
+ PyObject *file_actions = NULL;
+ PyObject *setpgroup = NULL;
+ int resetids = 0;
+ int setsid = 0;
+ PyObject *setsigmask = NULL;
+ PyObject *setsigdef = NULL;
+ PyObject *scheduler = NULL;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ argv = args[1];
+ env = args[2];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[3]) {
+ file_actions = args[3];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[4]) {
+ setpgroup = args[4];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[5]) {
+ if (PyFloat_Check(args[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ resetids = _PyLong_AsInt(args[5]);
+ if (resetids == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[6]) {
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ setsid = _PyLong_AsInt(args[6]);
+ if (setsid == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[7]) {
+ setsigmask = args[7];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[8]) {
+ setsigdef = args[8];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ scheduler = args[9];
+skip_optional_kwonly:
+ return_value = os_posix_spawnp_impl(module, &path, argv, env, file_actions, setpgroup, resetids, setsid, setsigmask, setsigdef, scheduler);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_POSIX_SPAWNP) */
+
+#if (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN))
+
PyDoc_STRVAR(os_spawnv__doc__,
"spawnv($module, mode, path, argv, /)\n"
"--\n"
@@ -2535,7 +2535,7 @@ PyDoc_STRVAR(os_spawnv__doc__,
" Tuple or list of strings.");
#define OS_SPAWNV_METHODDEF \
- {"spawnv", (PyCFunction)(void(*)(void))os_spawnv, METH_FASTCALL, os_spawnv__doc__},
+ {"spawnv", (PyCFunction)(void(*)(void))os_spawnv, METH_FASTCALL, os_spawnv__doc__},
static PyObject *
os_spawnv_impl(PyObject *module, int mode, path_t *path, PyObject *argv);
@@ -2548,22 +2548,22 @@ os_spawnv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
path_t path = PATH_T_INITIALIZE("spawnv", "path", 0, 0);
PyObject *argv;
- if (!_PyArg_CheckPositional("spawnv", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[0]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!path_converter(args[1], &path)) {
- goto exit;
- }
- argv = args[2];
+ if (!_PyArg_CheckPositional("spawnv", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[0]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &path)) {
+ goto exit;
+ }
+ argv = args[2];
return_value = os_spawnv_impl(module, mode, &path, argv);
exit:
@@ -2573,9 +2573,9 @@ exit:
return return_value;
}
-#endif /* (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN)) */
+#endif /* (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN)) */
-#if (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN))
+#if (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN))
PyDoc_STRVAR(os_spawnve__doc__,
"spawnve($module, mode, path, argv, env, /)\n"
@@ -2593,7 +2593,7 @@ PyDoc_STRVAR(os_spawnve__doc__,
" Dictionary of strings mapping to strings.");
#define OS_SPAWNVE_METHODDEF \
- {"spawnve", (PyCFunction)(void(*)(void))os_spawnve, METH_FASTCALL, os_spawnve__doc__},
+ {"spawnve", (PyCFunction)(void(*)(void))os_spawnve, METH_FASTCALL, os_spawnve__doc__},
static PyObject *
os_spawnve_impl(PyObject *module, int mode, path_t *path, PyObject *argv,
@@ -2608,23 +2608,23 @@ os_spawnve(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *argv;
PyObject *env;
- if (!_PyArg_CheckPositional("spawnve", nargs, 4, 4)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[0]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!path_converter(args[1], &path)) {
- goto exit;
- }
- argv = args[2];
- env = args[3];
+ if (!_PyArg_CheckPositional("spawnve", nargs, 4, 4)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[0]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &path)) {
+ goto exit;
+ }
+ argv = args[2];
+ env = args[3];
return_value = os_spawnve_impl(module, mode, &path, argv, env);
exit:
@@ -2634,14 +2634,14 @@ exit:
return return_value;
}
-#endif /* (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN)) */
+#endif /* (defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN)) */
#if defined(HAVE_FORK)
PyDoc_STRVAR(os_register_at_fork__doc__,
-"register_at_fork($module, /, *, before=<unrepresentable>,\n"
-" after_in_child=<unrepresentable>,\n"
-" after_in_parent=<unrepresentable>)\n"
+"register_at_fork($module, /, *, before=<unrepresentable>,\n"
+" after_in_child=<unrepresentable>,\n"
+" after_in_parent=<unrepresentable>)\n"
"--\n"
"\n"
"Register callables to be called when forking a new process.\n"
@@ -2657,7 +2657,7 @@ PyDoc_STRVAR(os_register_at_fork__doc__,
"\'after_in_child\' and \'after_in_parent\' callbacks are called in order.");
#define OS_REGISTER_AT_FORK_METHODDEF \
- {"register_at_fork", (PyCFunction)(void(*)(void))os_register_at_fork, METH_FASTCALL|METH_KEYWORDS, os_register_at_fork__doc__},
+ {"register_at_fork", (PyCFunction)(void(*)(void))os_register_at_fork, METH_FASTCALL|METH_KEYWORDS, os_register_at_fork__doc__},
static PyObject *
os_register_at_fork_impl(PyObject *module, PyObject *before,
@@ -2668,34 +2668,34 @@ os_register_at_fork(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"before", "after_in_child", "after_in_parent", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "register_at_fork", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "register_at_fork", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *before = NULL;
PyObject *after_in_child = NULL;
PyObject *after_in_parent = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[0]) {
- before = args[0];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[1]) {
- after_in_child = args[1];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- after_in_parent = args[2];
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[0]) {
+ before = args[0];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[1]) {
+ after_in_child = args[1];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ after_in_parent = args[2];
+skip_optional_kwonly:
return_value = os_register_at_fork_impl(module, before, after_in_child, after_in_parent);
exit:
@@ -2761,7 +2761,7 @@ PyDoc_STRVAR(os_sched_get_priority_max__doc__,
"Get the maximum scheduling priority for policy.");
#define OS_SCHED_GET_PRIORITY_MAX_METHODDEF \
- {"sched_get_priority_max", (PyCFunction)(void(*)(void))os_sched_get_priority_max, METH_FASTCALL|METH_KEYWORDS, os_sched_get_priority_max__doc__},
+ {"sched_get_priority_max", (PyCFunction)(void(*)(void))os_sched_get_priority_max, METH_FASTCALL|METH_KEYWORDS, os_sched_get_priority_max__doc__},
static PyObject *
os_sched_get_priority_max_impl(PyObject *module, int policy);
@@ -2771,23 +2771,23 @@ os_sched_get_priority_max(PyObject *module, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"policy", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_max", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_max", 0};
+ PyObject *argsbuf[1];
int policy;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ policy = _PyLong_AsInt(args[0]);
+ if (policy == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- policy = _PyLong_AsInt(args[0]);
- if (policy == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_sched_get_priority_max_impl(module, policy);
exit:
@@ -2805,7 +2805,7 @@ PyDoc_STRVAR(os_sched_get_priority_min__doc__,
"Get the minimum scheduling priority for policy.");
#define OS_SCHED_GET_PRIORITY_MIN_METHODDEF \
- {"sched_get_priority_min", (PyCFunction)(void(*)(void))os_sched_get_priority_min, METH_FASTCALL|METH_KEYWORDS, os_sched_get_priority_min__doc__},
+ {"sched_get_priority_min", (PyCFunction)(void(*)(void))os_sched_get_priority_min, METH_FASTCALL|METH_KEYWORDS, os_sched_get_priority_min__doc__},
static PyObject *
os_sched_get_priority_min_impl(PyObject *module, int policy);
@@ -2815,23 +2815,23 @@ os_sched_get_priority_min(PyObject *module, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"policy", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_min", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "sched_get_priority_min", 0};
+ PyObject *argsbuf[1];
int policy;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ policy = _PyLong_AsInt(args[0]);
+ if (policy == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- policy = _PyLong_AsInt(args[0]);
- if (policy == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_sched_get_priority_min_impl(module, policy);
exit:
@@ -2846,7 +2846,7 @@ PyDoc_STRVAR(os_sched_getscheduler__doc__,
"sched_getscheduler($module, pid, /)\n"
"--\n"
"\n"
-"Get the scheduling policy for the process identified by pid.\n"
+"Get the scheduling policy for the process identified by pid.\n"
"\n"
"Passing 0 for pid returns the scheduling policy for the calling process.");
@@ -2873,13 +2873,13 @@ exit:
#endif /* defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETSCHEDULER) */
-#if defined(HAVE_SCHED_H) && (defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM))
+#if defined(HAVE_SCHED_H) && (defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM))
PyDoc_STRVAR(os_sched_param__doc__,
"sched_param(sched_priority)\n"
"--\n"
"\n"
-"Currently has only one field: sched_priority\n"
+"Currently has only one field: sched_priority\n"
"\n"
" sched_priority\n"
" A scheduling parameter.");
@@ -2892,24 +2892,24 @@ os_sched_param(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sched_priority", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sched_param", 0};
- PyObject *argsbuf[1];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ static _PyArg_Parser _parser = {NULL, _keywords, "sched_param", 0};
+ PyObject *argsbuf[1];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
PyObject *sched_priority;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- sched_priority = fastargs[0];
+ sched_priority = fastargs[0];
return_value = os_sched_param_impl(type, sched_priority);
exit:
return return_value;
}
-#endif /* defined(HAVE_SCHED_H) && (defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)) */
+#endif /* defined(HAVE_SCHED_H) && (defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)) */
#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_SETSCHEDULER)
@@ -2923,11 +2923,11 @@ PyDoc_STRVAR(os_sched_setscheduler__doc__,
"param is an instance of sched_param.");
#define OS_SCHED_SETSCHEDULER_METHODDEF \
- {"sched_setscheduler", (PyCFunction)(void(*)(void))os_sched_setscheduler, METH_FASTCALL, os_sched_setscheduler__doc__},
+ {"sched_setscheduler", (PyCFunction)(void(*)(void))os_sched_setscheduler, METH_FASTCALL, os_sched_setscheduler__doc__},
static PyObject *
os_sched_setscheduler_impl(PyObject *module, pid_t pid, int policy,
- PyObject *param_obj);
+ PyObject *param_obj);
static PyObject *
os_sched_setscheduler(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
@@ -2935,13 +2935,13 @@ os_sched_setscheduler(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
pid_t pid;
int policy;
- PyObject *param_obj;
+ PyObject *param_obj;
- if (!_PyArg_ParseStack(args, nargs, "" _Py_PARSE_PID "iO:sched_setscheduler",
- &pid, &policy, &param_obj)) {
+ if (!_PyArg_ParseStack(args, nargs, "" _Py_PARSE_PID "iO:sched_setscheduler",
+ &pid, &policy, &param_obj)) {
goto exit;
}
- return_value = os_sched_setscheduler_impl(module, pid, policy, param_obj);
+ return_value = os_sched_setscheduler_impl(module, pid, policy, param_obj);
exit:
return return_value;
@@ -2995,23 +2995,23 @@ PyDoc_STRVAR(os_sched_setparam__doc__,
"param should be an instance of sched_param.");
#define OS_SCHED_SETPARAM_METHODDEF \
- {"sched_setparam", (PyCFunction)(void(*)(void))os_sched_setparam, METH_FASTCALL, os_sched_setparam__doc__},
+ {"sched_setparam", (PyCFunction)(void(*)(void))os_sched_setparam, METH_FASTCALL, os_sched_setparam__doc__},
static PyObject *
-os_sched_setparam_impl(PyObject *module, pid_t pid, PyObject *param_obj);
+os_sched_setparam_impl(PyObject *module, pid_t pid, PyObject *param_obj);
static PyObject *
os_sched_setparam(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
pid_t pid;
- PyObject *param_obj;
+ PyObject *param_obj;
- if (!_PyArg_ParseStack(args, nargs, "" _Py_PARSE_PID "O:sched_setparam",
- &pid, &param_obj)) {
+ if (!_PyArg_ParseStack(args, nargs, "" _Py_PARSE_PID "O:sched_setparam",
+ &pid, &param_obj)) {
goto exit;
}
- return_value = os_sched_setparam_impl(module, pid, param_obj);
+ return_value = os_sched_setparam_impl(module, pid, param_obj);
exit:
return return_value;
@@ -3090,7 +3090,7 @@ PyDoc_STRVAR(os_sched_setaffinity__doc__,
"mask should be an iterable of integers identifying CPUs.");
#define OS_SCHED_SETAFFINITY_METHODDEF \
- {"sched_setaffinity", (PyCFunction)(void(*)(void))os_sched_setaffinity, METH_FASTCALL, os_sched_setaffinity__doc__},
+ {"sched_setaffinity", (PyCFunction)(void(*)(void))os_sched_setaffinity, METH_FASTCALL, os_sched_setaffinity__doc__},
static PyObject *
os_sched_setaffinity_impl(PyObject *module, pid_t pid, PyObject *mask);
@@ -3287,118 +3287,118 @@ os_getpid(PyObject *module, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_GETPID) */
-#if defined(HAVE_GETGROUPLIST) && defined(__APPLE__)
-
-PyDoc_STRVAR(os_getgrouplist__doc__,
-"getgrouplist($module, user, group, /)\n"
-"--\n"
-"\n"
-"Returns a list of groups to which a user belongs.\n"
-"\n"
-" user\n"
-" username to lookup\n"
-" group\n"
-" base group id of the user");
-
-#define OS_GETGROUPLIST_METHODDEF \
- {"getgrouplist", (PyCFunction)(void(*)(void))os_getgrouplist, METH_FASTCALL, os_getgrouplist__doc__},
-
-static PyObject *
-os_getgrouplist_impl(PyObject *module, const char *user, int basegid);
-
-static PyObject *
-os_getgrouplist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- const char *user;
- int basegid;
-
- if (!_PyArg_CheckPositional("getgrouplist", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("getgrouplist", "argument 1", "str", args[0]);
- goto exit;
- }
- Py_ssize_t user_length;
- user = PyUnicode_AsUTF8AndSize(args[0], &user_length);
- if (user == NULL) {
- goto exit;
- }
- if (strlen(user) != (size_t)user_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- basegid = _PyLong_AsInt(args[1]);
- if (basegid == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = os_getgrouplist_impl(module, user, basegid);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_GETGROUPLIST) && defined(__APPLE__) */
-
-#if defined(HAVE_GETGROUPLIST) && !defined(__APPLE__)
-
-PyDoc_STRVAR(os_getgrouplist__doc__,
-"getgrouplist($module, user, group, /)\n"
-"--\n"
-"\n"
-"Returns a list of groups to which a user belongs.\n"
-"\n"
-" user\n"
-" username to lookup\n"
-" group\n"
-" base group id of the user");
-
-#define OS_GETGROUPLIST_METHODDEF \
- {"getgrouplist", (PyCFunction)(void(*)(void))os_getgrouplist, METH_FASTCALL, os_getgrouplist__doc__},
-
-static PyObject *
-os_getgrouplist_impl(PyObject *module, const char *user, gid_t basegid);
-
-static PyObject *
-os_getgrouplist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- const char *user;
- gid_t basegid;
-
- if (!_PyArg_CheckPositional("getgrouplist", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("getgrouplist", "argument 1", "str", args[0]);
- goto exit;
- }
- Py_ssize_t user_length;
- user = PyUnicode_AsUTF8AndSize(args[0], &user_length);
- if (user == NULL) {
- goto exit;
- }
- if (strlen(user) != (size_t)user_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!_Py_Gid_Converter(args[1], &basegid)) {
- goto exit;
- }
- return_value = os_getgrouplist_impl(module, user, basegid);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_GETGROUPLIST) && !defined(__APPLE__) */
-
+#if defined(HAVE_GETGROUPLIST) && defined(__APPLE__)
+
+PyDoc_STRVAR(os_getgrouplist__doc__,
+"getgrouplist($module, user, group, /)\n"
+"--\n"
+"\n"
+"Returns a list of groups to which a user belongs.\n"
+"\n"
+" user\n"
+" username to lookup\n"
+" group\n"
+" base group id of the user");
+
+#define OS_GETGROUPLIST_METHODDEF \
+ {"getgrouplist", (PyCFunction)(void(*)(void))os_getgrouplist, METH_FASTCALL, os_getgrouplist__doc__},
+
+static PyObject *
+os_getgrouplist_impl(PyObject *module, const char *user, int basegid);
+
+static PyObject *
+os_getgrouplist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ const char *user;
+ int basegid;
+
+ if (!_PyArg_CheckPositional("getgrouplist", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("getgrouplist", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t user_length;
+ user = PyUnicode_AsUTF8AndSize(args[0], &user_length);
+ if (user == NULL) {
+ goto exit;
+ }
+ if (strlen(user) != (size_t)user_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ basegid = _PyLong_AsInt(args[1]);
+ if (basegid == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = os_getgrouplist_impl(module, user, basegid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_GETGROUPLIST) && defined(__APPLE__) */
+
+#if defined(HAVE_GETGROUPLIST) && !defined(__APPLE__)
+
+PyDoc_STRVAR(os_getgrouplist__doc__,
+"getgrouplist($module, user, group, /)\n"
+"--\n"
+"\n"
+"Returns a list of groups to which a user belongs.\n"
+"\n"
+" user\n"
+" username to lookup\n"
+" group\n"
+" base group id of the user");
+
+#define OS_GETGROUPLIST_METHODDEF \
+ {"getgrouplist", (PyCFunction)(void(*)(void))os_getgrouplist, METH_FASTCALL, os_getgrouplist__doc__},
+
+static PyObject *
+os_getgrouplist_impl(PyObject *module, const char *user, gid_t basegid);
+
+static PyObject *
+os_getgrouplist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ const char *user;
+ gid_t basegid;
+
+ if (!_PyArg_CheckPositional("getgrouplist", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("getgrouplist", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t user_length;
+ user = PyUnicode_AsUTF8AndSize(args[0], &user_length);
+ if (user == NULL) {
+ goto exit;
+ }
+ if (strlen(user) != (size_t)user_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[1], &basegid)) {
+ goto exit;
+ }
+ return_value = os_getgrouplist_impl(module, user, basegid);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_GETGROUPLIST) && !defined(__APPLE__) */
+
#if defined(HAVE_GETGROUPS)
PyDoc_STRVAR(os_getgroups__doc__,
@@ -3421,102 +3421,102 @@ os_getgroups(PyObject *module, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_GETGROUPS) */
-#if defined(HAVE_INITGROUPS) && defined(__APPLE__)
-
-PyDoc_STRVAR(os_initgroups__doc__,
-"initgroups($module, username, gid, /)\n"
-"--\n"
-"\n"
-"Initialize the group access list.\n"
-"\n"
-"Call the system initgroups() to initialize the group access list with all of\n"
-"the groups of which the specified username is a member, plus the specified\n"
-"group id.");
-
-#define OS_INITGROUPS_METHODDEF \
- {"initgroups", (PyCFunction)(void(*)(void))os_initgroups, METH_FASTCALL, os_initgroups__doc__},
-
-static PyObject *
-os_initgroups_impl(PyObject *module, PyObject *oname, int gid);
-
-static PyObject *
-os_initgroups(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *oname = NULL;
- int gid;
-
- if (!_PyArg_CheckPositional("initgroups", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_FSConverter(args[0], &oname)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- gid = _PyLong_AsInt(args[1]);
- if (gid == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = os_initgroups_impl(module, oname, gid);
-
-exit:
- /* Cleanup for oname */
- Py_XDECREF(oname);
-
- return return_value;
-}
-
-#endif /* defined(HAVE_INITGROUPS) && defined(__APPLE__) */
-
-#if defined(HAVE_INITGROUPS) && !defined(__APPLE__)
-
-PyDoc_STRVAR(os_initgroups__doc__,
-"initgroups($module, username, gid, /)\n"
-"--\n"
-"\n"
-"Initialize the group access list.\n"
-"\n"
-"Call the system initgroups() to initialize the group access list with all of\n"
-"the groups of which the specified username is a member, plus the specified\n"
-"group id.");
-
-#define OS_INITGROUPS_METHODDEF \
- {"initgroups", (PyCFunction)(void(*)(void))os_initgroups, METH_FASTCALL, os_initgroups__doc__},
-
-static PyObject *
-os_initgroups_impl(PyObject *module, PyObject *oname, gid_t gid);
-
-static PyObject *
-os_initgroups(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *oname = NULL;
- gid_t gid;
-
- if (!_PyArg_CheckPositional("initgroups", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_FSConverter(args[0], &oname)) {
- goto exit;
- }
- if (!_Py_Gid_Converter(args[1], &gid)) {
- goto exit;
- }
- return_value = os_initgroups_impl(module, oname, gid);
-
-exit:
- /* Cleanup for oname */
- Py_XDECREF(oname);
-
- return return_value;
-}
-
-#endif /* defined(HAVE_INITGROUPS) && !defined(__APPLE__) */
-
+#if defined(HAVE_INITGROUPS) && defined(__APPLE__)
+
+PyDoc_STRVAR(os_initgroups__doc__,
+"initgroups($module, username, gid, /)\n"
+"--\n"
+"\n"
+"Initialize the group access list.\n"
+"\n"
+"Call the system initgroups() to initialize the group access list with all of\n"
+"the groups of which the specified username is a member, plus the specified\n"
+"group id.");
+
+#define OS_INITGROUPS_METHODDEF \
+ {"initgroups", (PyCFunction)(void(*)(void))os_initgroups, METH_FASTCALL, os_initgroups__doc__},
+
+static PyObject *
+os_initgroups_impl(PyObject *module, PyObject *oname, int gid);
+
+static PyObject *
+os_initgroups(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *oname = NULL;
+ int gid;
+
+ if (!_PyArg_CheckPositional("initgroups", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_FSConverter(args[0], &oname)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ gid = _PyLong_AsInt(args[1]);
+ if (gid == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = os_initgroups_impl(module, oname, gid);
+
+exit:
+ /* Cleanup for oname */
+ Py_XDECREF(oname);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_INITGROUPS) && defined(__APPLE__) */
+
+#if defined(HAVE_INITGROUPS) && !defined(__APPLE__)
+
+PyDoc_STRVAR(os_initgroups__doc__,
+"initgroups($module, username, gid, /)\n"
+"--\n"
+"\n"
+"Initialize the group access list.\n"
+"\n"
+"Call the system initgroups() to initialize the group access list with all of\n"
+"the groups of which the specified username is a member, plus the specified\n"
+"group id.");
+
+#define OS_INITGROUPS_METHODDEF \
+ {"initgroups", (PyCFunction)(void(*)(void))os_initgroups, METH_FASTCALL, os_initgroups__doc__},
+
+static PyObject *
+os_initgroups_impl(PyObject *module, PyObject *oname, gid_t gid);
+
+static PyObject *
+os_initgroups(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *oname = NULL;
+ gid_t gid;
+
+ if (!_PyArg_CheckPositional("initgroups", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_FSConverter(args[0], &oname)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[1], &gid)) {
+ goto exit;
+ }
+ return_value = os_initgroups_impl(module, oname, gid);
+
+exit:
+ /* Cleanup for oname */
+ Py_XDECREF(oname);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_INITGROUPS) && !defined(__APPLE__) */
+
#if defined(HAVE_GETPGID)
PyDoc_STRVAR(os_getpgid__doc__,
@@ -3526,7 +3526,7 @@ PyDoc_STRVAR(os_getpgid__doc__,
"Call the system call getpgid(), and return the result.");
#define OS_GETPGID_METHODDEF \
- {"getpgid", (PyCFunction)(void(*)(void))os_getpgid, METH_FASTCALL|METH_KEYWORDS, os_getpgid__doc__},
+ {"getpgid", (PyCFunction)(void(*)(void))os_getpgid, METH_FASTCALL|METH_KEYWORDS, os_getpgid__doc__},
static PyObject *
os_getpgid_impl(PyObject *module, pid_t pid);
@@ -3673,7 +3673,7 @@ PyDoc_STRVAR(os_kill__doc__,
"Kill a process with a signal.");
#define OS_KILL_METHODDEF \
- {"kill", (PyCFunction)(void(*)(void))os_kill, METH_FASTCALL, os_kill__doc__},
+ {"kill", (PyCFunction)(void(*)(void))os_kill, METH_FASTCALL, os_kill__doc__},
static PyObject *
os_kill_impl(PyObject *module, pid_t pid, Py_ssize_t signal);
@@ -3706,7 +3706,7 @@ PyDoc_STRVAR(os_killpg__doc__,
"Kill a process group with a signal.");
#define OS_KILLPG_METHODDEF \
- {"killpg", (PyCFunction)(void(*)(void))os_killpg, METH_FASTCALL, os_killpg__doc__},
+ {"killpg", (PyCFunction)(void(*)(void))os_killpg, METH_FASTCALL, os_killpg__doc__},
static PyObject *
os_killpg_impl(PyObject *module, pid_t pgid, int signal);
@@ -3750,15 +3750,15 @@ os_plock(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int op;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ op = _PyLong_AsInt(arg);
+ if (op == -1 && PyErr_Occurred()) {
goto exit;
}
- op = _PyLong_AsInt(arg);
- if (op == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_plock_impl(module, op);
exit:
@@ -3787,7 +3787,7 @@ os_setuid(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
uid_t uid;
- if (!_Py_Uid_Converter(arg, &uid)) {
+ if (!_Py_Uid_Converter(arg, &uid)) {
goto exit;
}
return_value = os_setuid_impl(module, uid);
@@ -3818,7 +3818,7 @@ os_seteuid(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
uid_t euid;
- if (!_Py_Uid_Converter(arg, &euid)) {
+ if (!_Py_Uid_Converter(arg, &euid)) {
goto exit;
}
return_value = os_seteuid_impl(module, euid);
@@ -3849,7 +3849,7 @@ os_setegid(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
gid_t egid;
- if (!_Py_Gid_Converter(arg, &egid)) {
+ if (!_Py_Gid_Converter(arg, &egid)) {
goto exit;
}
return_value = os_setegid_impl(module, egid);
@@ -3869,7 +3869,7 @@ PyDoc_STRVAR(os_setreuid__doc__,
"Set the current process\'s real and effective user ids.");
#define OS_SETREUID_METHODDEF \
- {"setreuid", (PyCFunction)(void(*)(void))os_setreuid, METH_FASTCALL, os_setreuid__doc__},
+ {"setreuid", (PyCFunction)(void(*)(void))os_setreuid, METH_FASTCALL, os_setreuid__doc__},
static PyObject *
os_setreuid_impl(PyObject *module, uid_t ruid, uid_t euid);
@@ -3881,15 +3881,15 @@ os_setreuid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
uid_t ruid;
uid_t euid;
- if (!_PyArg_CheckPositional("setreuid", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("setreuid", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[0], &ruid)) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[1], &euid)) {
goto exit;
}
- if (!_Py_Uid_Converter(args[0], &ruid)) {
- goto exit;
- }
- if (!_Py_Uid_Converter(args[1], &euid)) {
- goto exit;
- }
return_value = os_setreuid_impl(module, ruid, euid);
exit:
@@ -3907,7 +3907,7 @@ PyDoc_STRVAR(os_setregid__doc__,
"Set the current process\'s real and effective group ids.");
#define OS_SETREGID_METHODDEF \
- {"setregid", (PyCFunction)(void(*)(void))os_setregid, METH_FASTCALL, os_setregid__doc__},
+ {"setregid", (PyCFunction)(void(*)(void))os_setregid, METH_FASTCALL, os_setregid__doc__},
static PyObject *
os_setregid_impl(PyObject *module, gid_t rgid, gid_t egid);
@@ -3919,15 +3919,15 @@ os_setregid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
gid_t rgid;
gid_t egid;
- if (!_PyArg_CheckPositional("setregid", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("setregid", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[0], &rgid)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[1], &egid)) {
goto exit;
}
- if (!_Py_Gid_Converter(args[0], &rgid)) {
- goto exit;
- }
- if (!_Py_Gid_Converter(args[1], &egid)) {
- goto exit;
- }
return_value = os_setregid_impl(module, rgid, egid);
exit:
@@ -3956,7 +3956,7 @@ os_setgid(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
gid_t gid;
- if (!_Py_Gid_Converter(arg, &gid)) {
+ if (!_Py_Gid_Converter(arg, &gid)) {
goto exit;
}
return_value = os_setgid_impl(module, gid);
@@ -3992,7 +3992,7 @@ PyDoc_STRVAR(os_wait3__doc__,
" (pid, status, rusage)");
#define OS_WAIT3_METHODDEF \
- {"wait3", (PyCFunction)(void(*)(void))os_wait3, METH_FASTCALL|METH_KEYWORDS, os_wait3__doc__},
+ {"wait3", (PyCFunction)(void(*)(void))os_wait3, METH_FASTCALL|METH_KEYWORDS, os_wait3__doc__},
static PyObject *
os_wait3_impl(PyObject *module, int options);
@@ -4002,23 +4002,23 @@ os_wait3(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"options", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "wait3", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "wait3", 0};
+ PyObject *argsbuf[1];
int options;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ options = _PyLong_AsInt(args[0]);
+ if (options == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- options = _PyLong_AsInt(args[0]);
- if (options == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_wait3_impl(module, options);
exit:
@@ -4039,7 +4039,7 @@ PyDoc_STRVAR(os_wait4__doc__,
" (pid, status, rusage)");
#define OS_WAIT4_METHODDEF \
- {"wait4", (PyCFunction)(void(*)(void))os_wait4, METH_FASTCALL|METH_KEYWORDS, os_wait4__doc__},
+ {"wait4", (PyCFunction)(void(*)(void))os_wait4, METH_FASTCALL|METH_KEYWORDS, os_wait4__doc__},
static PyObject *
os_wait4_impl(PyObject *module, pid_t pid, int options);
@@ -4085,7 +4085,7 @@ PyDoc_STRVAR(os_waitid__doc__,
"no children in a waitable state.");
#define OS_WAITID_METHODDEF \
- {"waitid", (PyCFunction)(void(*)(void))os_waitid, METH_FASTCALL, os_waitid__doc__},
+ {"waitid", (PyCFunction)(void(*)(void))os_waitid, METH_FASTCALL, os_waitid__doc__},
static PyObject *
os_waitid_impl(PyObject *module, idtype_t idtype, id_t id, int options);
@@ -4124,7 +4124,7 @@ PyDoc_STRVAR(os_waitpid__doc__,
"The options argument is ignored on Windows.");
#define OS_WAITPID_METHODDEF \
- {"waitpid", (PyCFunction)(void(*)(void))os_waitpid, METH_FASTCALL, os_waitpid__doc__},
+ {"waitpid", (PyCFunction)(void(*)(void))os_waitpid, METH_FASTCALL, os_waitpid__doc__},
static PyObject *
os_waitpid_impl(PyObject *module, pid_t pid, int options);
@@ -4148,7 +4148,7 @@ exit:
#endif /* defined(HAVE_WAITPID) */
-#if !defined(HAVE_WAITPID) && defined(HAVE_CWAIT)
+#if !defined(HAVE_WAITPID) && defined(HAVE_CWAIT)
PyDoc_STRVAR(os_waitpid__doc__,
"waitpid($module, pid, options, /)\n"
@@ -4162,7 +4162,7 @@ PyDoc_STRVAR(os_waitpid__doc__,
"The options argument is ignored on Windows.");
#define OS_WAITPID_METHODDEF \
- {"waitpid", (PyCFunction)(void(*)(void))os_waitpid, METH_FASTCALL, os_waitpid__doc__},
+ {"waitpid", (PyCFunction)(void(*)(void))os_waitpid, METH_FASTCALL, os_waitpid__doc__},
static PyObject *
os_waitpid_impl(PyObject *module, intptr_t pid, int options);
@@ -4184,7 +4184,7 @@ exit:
return return_value;
}
-#endif /* !defined(HAVE_WAITPID) && defined(HAVE_CWAIT) */
+#endif /* !defined(HAVE_WAITPID) && defined(HAVE_CWAIT) */
#if defined(HAVE_WAIT)
@@ -4211,100 +4211,100 @@ os_wait(PyObject *module, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_WAIT) */
-#if (defined(__linux__) && defined(__NR_pidfd_open))
-
-PyDoc_STRVAR(os_pidfd_open__doc__,
-"pidfd_open($module, /, pid, flags=0)\n"
-"--\n"
-"\n"
-"Return a file descriptor referring to the process *pid*.\n"
-"\n"
-"The descriptor can be used to perform process management without races and\n"
-"signals.");
-
-#define OS_PIDFD_OPEN_METHODDEF \
- {"pidfd_open", (PyCFunction)(void(*)(void))os_pidfd_open, METH_FASTCALL|METH_KEYWORDS, os_pidfd_open__doc__},
-
-static PyObject *
-os_pidfd_open_impl(PyObject *module, pid_t pid, unsigned int flags);
-
-static PyObject *
-os_pidfd_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"pid", "flags", NULL};
- static _PyArg_Parser _parser = {"" _Py_PARSE_PID "|O&:pidfd_open", _keywords, 0};
- pid_t pid;
- unsigned int flags = 0;
-
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
- &pid, _PyLong_UnsignedInt_Converter, &flags)) {
- goto exit;
- }
- return_value = os_pidfd_open_impl(module, pid, flags);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(__linux__) && defined(__NR_pidfd_open)) */
-
-#if (defined(HAVE_READLINK) || defined(MS_WINDOWS))
-
-PyDoc_STRVAR(os_readlink__doc__,
-"readlink($module, /, path, *, dir_fd=None)\n"
-"--\n"
-"\n"
-"Return a string representing the path to which the symbolic link points.\n"
-"\n"
-"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
-"and path should be relative; path will then be relative to that directory.\n"
-"\n"
-"dir_fd may not be implemented on your platform. If it is unavailable,\n"
-"using it will raise a NotImplementedError.");
-
-#define OS_READLINK_METHODDEF \
- {"readlink", (PyCFunction)(void(*)(void))os_readlink, METH_FASTCALL|METH_KEYWORDS, os_readlink__doc__},
-
-static PyObject *
-os_readlink_impl(PyObject *module, path_t *path, int dir_fd);
-
-static PyObject *
-os_readlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"path", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "readlink", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- path_t path = PATH_T_INITIALIZE("readlink", "path", 0, 0);
- int dir_fd = DEFAULT_DIR_FD;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!READLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = os_readlink_impl(module, &path, dir_fd);
-
-exit:
- /* Cleanup for path */
- path_cleanup(&path);
-
- return return_value;
-}
-
-#endif /* (defined(HAVE_READLINK) || defined(MS_WINDOWS)) */
-
+#if (defined(__linux__) && defined(__NR_pidfd_open))
+
+PyDoc_STRVAR(os_pidfd_open__doc__,
+"pidfd_open($module, /, pid, flags=0)\n"
+"--\n"
+"\n"
+"Return a file descriptor referring to the process *pid*.\n"
+"\n"
+"The descriptor can be used to perform process management without races and\n"
+"signals.");
+
+#define OS_PIDFD_OPEN_METHODDEF \
+ {"pidfd_open", (PyCFunction)(void(*)(void))os_pidfd_open, METH_FASTCALL|METH_KEYWORDS, os_pidfd_open__doc__},
+
+static PyObject *
+os_pidfd_open_impl(PyObject *module, pid_t pid, unsigned int flags);
+
+static PyObject *
+os_pidfd_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"pid", "flags", NULL};
+ static _PyArg_Parser _parser = {"" _Py_PARSE_PID "|O&:pidfd_open", _keywords, 0};
+ pid_t pid;
+ unsigned int flags = 0;
+
+ if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
+ &pid, _PyLong_UnsignedInt_Converter, &flags)) {
+ goto exit;
+ }
+ return_value = os_pidfd_open_impl(module, pid, flags);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(__linux__) && defined(__NR_pidfd_open)) */
+
+#if (defined(HAVE_READLINK) || defined(MS_WINDOWS))
+
+PyDoc_STRVAR(os_readlink__doc__,
+"readlink($module, /, path, *, dir_fd=None)\n"
+"--\n"
+"\n"
+"Return a string representing the path to which the symbolic link points.\n"
+"\n"
+"If dir_fd is not None, it should be a file descriptor open to a directory,\n"
+"and path should be relative; path will then be relative to that directory.\n"
+"\n"
+"dir_fd may not be implemented on your platform. If it is unavailable,\n"
+"using it will raise a NotImplementedError.");
+
+#define OS_READLINK_METHODDEF \
+ {"readlink", (PyCFunction)(void(*)(void))os_readlink, METH_FASTCALL|METH_KEYWORDS, os_readlink__doc__},
+
+static PyObject *
+os_readlink_impl(PyObject *module, path_t *path, int dir_fd);
+
+static PyObject *
+os_readlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"path", "dir_fd", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "readlink", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ path_t path = PATH_T_INITIALIZE("readlink", "path", 0, 0);
+ int dir_fd = DEFAULT_DIR_FD;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!READLINKAT_DIR_FD_CONVERTER(args[1], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = os_readlink_impl(module, &path, dir_fd);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* (defined(HAVE_READLINK) || defined(MS_WINDOWS)) */
+
#if defined(HAVE_SYMLINK)
PyDoc_STRVAR(os_symlink__doc__,
@@ -4324,7 +4324,7 @@ PyDoc_STRVAR(os_symlink__doc__,
" If it is unavailable, using it will raise a NotImplementedError.");
#define OS_SYMLINK_METHODDEF \
- {"symlink", (PyCFunction)(void(*)(void))os_symlink, METH_FASTCALL|METH_KEYWORDS, os_symlink__doc__},
+ {"symlink", (PyCFunction)(void(*)(void))os_symlink, METH_FASTCALL|METH_KEYWORDS, os_symlink__doc__},
static PyObject *
os_symlink_impl(PyObject *module, path_t *src, path_t *dst,
@@ -4335,44 +4335,44 @@ os_symlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"src", "dst", "target_is_directory", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "symlink", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "symlink", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t src = PATH_T_INITIALIZE("symlink", "src", 0, 0);
path_t dst = PATH_T_INITIALIZE("symlink", "dst", 0, 0);
int target_is_directory = 0;
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &src)) {
- goto exit;
- }
- if (!path_converter(args[1], &dst)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- target_is_directory = PyObject_IsTrue(args[2]);
- if (target_is_directory < 0) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!SYMLINKAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &src)) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &dst)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ target_is_directory = PyObject_IsTrue(args[2]);
+ if (target_is_directory < 0) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!SYMLINKAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_symlink_impl(module, &src, &dst, target_is_directory, dir_fd);
exit:
@@ -4474,7 +4474,7 @@ PyDoc_STRVAR(os_setpgid__doc__,
"Call the system call setpgid(pid, pgrp).");
#define OS_SETPGID_METHODDEF \
- {"setpgid", (PyCFunction)(void(*)(void))os_setpgid, METH_FASTCALL, os_setpgid__doc__},
+ {"setpgid", (PyCFunction)(void(*)(void))os_setpgid, METH_FASTCALL, os_setpgid__doc__},
static PyObject *
os_setpgid_impl(PyObject *module, pid_t pid, pid_t pgrp);
@@ -4518,15 +4518,15 @@ os_tcgetpgrp(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int fd;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_tcgetpgrp_impl(module, fd);
exit:
@@ -4544,7 +4544,7 @@ PyDoc_STRVAR(os_tcsetpgrp__doc__,
"Set the process group associated with the terminal specified by fd.");
#define OS_TCSETPGRP_METHODDEF \
- {"tcsetpgrp", (PyCFunction)(void(*)(void))os_tcsetpgrp, METH_FASTCALL, os_tcsetpgrp__doc__},
+ {"tcsetpgrp", (PyCFunction)(void(*)(void))os_tcsetpgrp, METH_FASTCALL, os_tcsetpgrp__doc__},
static PyObject *
os_tcsetpgrp_impl(PyObject *module, int fd, pid_t pgid);
@@ -4580,7 +4580,7 @@ PyDoc_STRVAR(os_open__doc__,
" If it is unavailable, using it will raise a NotImplementedError.");
#define OS_OPEN_METHODDEF \
- {"open", (PyCFunction)(void(*)(void))os_open, METH_FASTCALL|METH_KEYWORDS, os_open__doc__},
+ {"open", (PyCFunction)(void(*)(void))os_open, METH_FASTCALL|METH_KEYWORDS, os_open__doc__},
static int
os_open_impl(PyObject *module, path_t *path, int flags, int mode, int dir_fd);
@@ -4590,56 +4590,56 @@ os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "flags", "mode", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "open", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "open", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t path = PATH_T_INITIALIZE("open", "path", 0, 0);
int flags;
int mode = 511;
int dir_fd = DEFAULT_DIR_FD;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[1]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[2]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!OPENAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[1]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[2]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!OPENAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
_return_value = os_open_impl(module, &path, flags, mode, dir_fd);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -4660,7 +4660,7 @@ PyDoc_STRVAR(os_close__doc__,
"Close a file descriptor.");
#define OS_CLOSE_METHODDEF \
- {"close", (PyCFunction)(void(*)(void))os_close, METH_FASTCALL|METH_KEYWORDS, os_close__doc__},
+ {"close", (PyCFunction)(void(*)(void))os_close, METH_FASTCALL|METH_KEYWORDS, os_close__doc__},
static PyObject *
os_close_impl(PyObject *module, int fd);
@@ -4670,23 +4670,23 @@ os_close(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "close", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "close", 0};
+ PyObject *argsbuf[1];
int fd;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_close_impl(module, fd);
exit:
@@ -4700,7 +4700,7 @@ PyDoc_STRVAR(os_closerange__doc__,
"Closes all file descriptors in [fd_low, fd_high), ignoring errors.");
#define OS_CLOSERANGE_METHODDEF \
- {"closerange", (PyCFunction)(void(*)(void))os_closerange, METH_FASTCALL, os_closerange__doc__},
+ {"closerange", (PyCFunction)(void(*)(void))os_closerange, METH_FASTCALL, os_closerange__doc__},
static PyObject *
os_closerange_impl(PyObject *module, int fd_low, int fd_high);
@@ -4712,27 +4712,27 @@ os_closerange(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int fd_low;
int fd_high;
- if (!_PyArg_CheckPositional("closerange", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd_low = _PyLong_AsInt(args[0]);
- if (fd_low == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd_high = _PyLong_AsInt(args[1]);
- if (fd_high == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("closerange", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd_low = _PyLong_AsInt(args[0]);
+ if (fd_low == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd_high = _PyLong_AsInt(args[1]);
+ if (fd_high == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = os_closerange_impl(module, fd_low, fd_high);
exit:
@@ -4758,15 +4758,15 @@ os_dup(PyObject *module, PyObject *arg)
int fd;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_dup_impl(module, fd);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -4784,7 +4784,7 @@ PyDoc_STRVAR(os_dup2__doc__,
"Duplicate file descriptor.");
#define OS_DUP2_METHODDEF \
- {"dup2", (PyCFunction)(void(*)(void))os_dup2, METH_FASTCALL|METH_KEYWORDS, os_dup2__doc__},
+ {"dup2", (PyCFunction)(void(*)(void))os_dup2, METH_FASTCALL|METH_KEYWORDS, os_dup2__doc__},
static int
os_dup2_impl(PyObject *module, int fd, int fd2, int inheritable);
@@ -4794,44 +4794,44 @@ os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", "fd2", "inheritable", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "dup2", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "dup2", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
int fd;
int fd2;
int inheritable = 1;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd2 = _PyLong_AsInt(args[1]);
- if (fd2 == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- inheritable = PyObject_IsTrue(args[2]);
- if (inheritable < 0) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd2 = _PyLong_AsInt(args[1]);
+ if (fd2 == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ inheritable = PyObject_IsTrue(args[2]);
+ if (inheritable < 0) {
+ goto exit;
+ }
+skip_optional_pos:
_return_value = os_dup2_impl(module, fd, fd2, inheritable);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -4858,7 +4858,7 @@ PyDoc_STRVAR(os_lockf__doc__,
" The number of bytes to lock, starting at the current position.");
#define OS_LOCKF_METHODDEF \
- {"lockf", (PyCFunction)(void(*)(void))os_lockf, METH_FASTCALL, os_lockf__doc__},
+ {"lockf", (PyCFunction)(void(*)(void))os_lockf, METH_FASTCALL, os_lockf__doc__},
static PyObject *
os_lockf_impl(PyObject *module, int fd, int command, Py_off_t length);
@@ -4871,30 +4871,30 @@ os_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int command;
Py_off_t length;
- if (!_PyArg_CheckPositional("lockf", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- command = _PyLong_AsInt(args[1]);
- if (command == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!Py_off_t_converter(args[2], &length)) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("lockf", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ command = _PyLong_AsInt(args[1]);
+ if (command == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[2], &length)) {
+ goto exit;
+ }
return_value = os_lockf_impl(module, fd, command, length);
exit:
@@ -4913,7 +4913,7 @@ PyDoc_STRVAR(os_lseek__doc__,
"relative to the beginning of the file.");
#define OS_LSEEK_METHODDEF \
- {"lseek", (PyCFunction)(void(*)(void))os_lseek, METH_FASTCALL, os_lseek__doc__},
+ {"lseek", (PyCFunction)(void(*)(void))os_lseek, METH_FASTCALL, os_lseek__doc__},
static Py_off_t
os_lseek_impl(PyObject *module, int fd, Py_off_t position, int how);
@@ -4927,30 +4927,30 @@ os_lseek(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int how;
Py_off_t _return_value;
- if (!_PyArg_CheckPositional("lseek", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!Py_off_t_converter(args[1], &position)) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- how = _PyLong_AsInt(args[2]);
- if (how == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("lseek", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[1], &position)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ how = _PyLong_AsInt(args[2]);
+ if (how == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
_return_value = os_lseek_impl(module, fd, position, how);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -4968,7 +4968,7 @@ PyDoc_STRVAR(os_read__doc__,
"Read from a file descriptor. Returns a bytes object.");
#define OS_READ_METHODDEF \
- {"read", (PyCFunction)(void(*)(void))os_read, METH_FASTCALL, os_read__doc__},
+ {"read", (PyCFunction)(void(*)(void))os_read, METH_FASTCALL, os_read__doc__},
static PyObject *
os_read_impl(PyObject *module, int fd, Py_ssize_t length);
@@ -4980,35 +4980,35 @@ os_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int fd;
Py_ssize_t length;
- if (!_PyArg_CheckPositional("read", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
+ if (!_PyArg_CheckPositional("read", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ length = ival;
+ }
return_value = os_read_impl(module, fd, length);
exit:
@@ -5032,7 +5032,7 @@ PyDoc_STRVAR(os_readv__doc__,
"which may be less than the total capacity of all the buffers.");
#define OS_READV_METHODDEF \
- {"readv", (PyCFunction)(void(*)(void))os_readv, METH_FASTCALL, os_readv__doc__},
+ {"readv", (PyCFunction)(void(*)(void))os_readv, METH_FASTCALL, os_readv__doc__},
static Py_ssize_t
os_readv_impl(PyObject *module, int fd, PyObject *buffers);
@@ -5045,19 +5045,19 @@ os_readv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *buffers;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("readv", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("readv", nargs, 2, 2)) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffers = args[1];
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffers = args[1];
_return_value = os_readv_impl(module, fd, buffers);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -5082,51 +5082,51 @@ PyDoc_STRVAR(os_pread__doc__,
"the beginning of the file. The file offset remains unchanged.");
#define OS_PREAD_METHODDEF \
- {"pread", (PyCFunction)(void(*)(void))os_pread, METH_FASTCALL, os_pread__doc__},
+ {"pread", (PyCFunction)(void(*)(void))os_pread, METH_FASTCALL, os_pread__doc__},
static PyObject *
-os_pread_impl(PyObject *module, int fd, Py_ssize_t length, Py_off_t offset);
+os_pread_impl(PyObject *module, int fd, Py_ssize_t length, Py_off_t offset);
static PyObject *
os_pread(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
int fd;
- Py_ssize_t length;
+ Py_ssize_t length;
Py_off_t offset;
- if (!_PyArg_CheckPositional("pread", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
- if (!Py_off_t_converter(args[2], &offset)) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("pread", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ length = ival;
+ }
+ if (!Py_off_t_converter(args[2], &offset)) {
+ goto exit;
+ }
return_value = os_pread_impl(module, fd, length, offset);
exit:
@@ -5158,7 +5158,7 @@ PyDoc_STRVAR(os_preadv__doc__,
"Using non-zero flags requires Linux 4.6 or newer.");
#define OS_PREADV_METHODDEF \
- {"preadv", (PyCFunction)(void(*)(void))os_preadv, METH_FASTCALL, os_preadv__doc__},
+ {"preadv", (PyCFunction)(void(*)(void))os_preadv, METH_FASTCALL, os_preadv__doc__},
static Py_ssize_t
os_preadv_impl(PyObject *module, int fd, PyObject *buffers, Py_off_t offset,
@@ -5174,35 +5174,35 @@ os_preadv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int flags = 0;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("preadv", nargs, 3, 4)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffers = args[1];
- if (!Py_off_t_converter(args[2], &offset)) {
- goto exit;
- }
- if (nargs < 4) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[3]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("preadv", nargs, 3, 4)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffers = args[1];
+ if (!Py_off_t_converter(args[2], &offset)) {
+ goto exit;
+ }
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[3]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
_return_value = os_preadv_impl(module, fd, buffers, offset, flags);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -5222,7 +5222,7 @@ PyDoc_STRVAR(os_write__doc__,
"Write a bytes object to a file descriptor.");
#define OS_WRITE_METHODDEF \
- {"write", (PyCFunction)(void(*)(void))os_write, METH_FASTCALL, os_write__doc__},
+ {"write", (PyCFunction)(void(*)(void))os_write, METH_FASTCALL, os_write__doc__},
static Py_ssize_t
os_write_impl(PyObject *module, int fd, Py_buffer *data);
@@ -5235,25 +5235,25 @@ os_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer data = {NULL, NULL};
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("write", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("write", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
+ if (!_PyArg_CheckPositional("write", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("write", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
_return_value = os_write_impl(module, fd, &data);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -5269,343 +5269,343 @@ exit:
return return_value;
}
-#if defined(HAVE_SENDFILE) && defined(__APPLE__)
-
-PyDoc_STRVAR(os_sendfile__doc__,
-"sendfile($module, /, out_fd, in_fd, offset, count, headers=(),\n"
-" trailers=(), flags=0)\n"
-"--\n"
-"\n"
-"Copy count bytes from file descriptor in_fd to file descriptor out_fd.");
-
-#define OS_SENDFILE_METHODDEF \
- {"sendfile", (PyCFunction)(void(*)(void))os_sendfile, METH_FASTCALL|METH_KEYWORDS, os_sendfile__doc__},
-
-static PyObject *
-os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
- Py_off_t sbytes, PyObject *headers, PyObject *trailers,
- int flags);
-
-static PyObject *
-os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0};
- PyObject *argsbuf[7];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4;
- int out_fd;
- int in_fd;
- Py_off_t offset;
- Py_off_t sbytes;
- PyObject *headers = NULL;
- PyObject *trailers = NULL;
- int flags = 0;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 7, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- out_fd = _PyLong_AsInt(args[0]);
- if (out_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- in_fd = _PyLong_AsInt(args[1]);
- if (in_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!Py_off_t_converter(args[2], &offset)) {
- goto exit;
- }
- if (!Py_off_t_converter(args[3], &sbytes)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[4]) {
- headers = args[4];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[5]) {
- trailers = args[5];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[6]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = os_sendfile_impl(module, out_fd, in_fd, offset, sbytes, headers, trailers, flags);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_SENDFILE) && defined(__APPLE__) */
-
-#if defined(HAVE_SENDFILE) && !defined(__APPLE__) && (defined(__FreeBSD__) || defined(__DragonFly__))
-
-PyDoc_STRVAR(os_sendfile__doc__,
-"sendfile($module, /, out_fd, in_fd, offset, count, headers=(),\n"
-" trailers=(), flags=0)\n"
-"--\n"
-"\n"
-"Copy count bytes from file descriptor in_fd to file descriptor out_fd.");
-
-#define OS_SENDFILE_METHODDEF \
- {"sendfile", (PyCFunction)(void(*)(void))os_sendfile, METH_FASTCALL|METH_KEYWORDS, os_sendfile__doc__},
-
-static PyObject *
-os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
- Py_ssize_t count, PyObject *headers, PyObject *trailers,
- int flags);
-
-static PyObject *
-os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0};
- PyObject *argsbuf[7];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4;
- int out_fd;
- int in_fd;
- Py_off_t offset;
- Py_ssize_t count;
- PyObject *headers = NULL;
- PyObject *trailers = NULL;
- int flags = 0;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 7, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- out_fd = _PyLong_AsInt(args[0]);
- if (out_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- in_fd = _PyLong_AsInt(args[1]);
- if (in_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!Py_off_t_converter(args[2], &offset)) {
- goto exit;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[3]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[4]) {
- headers = args[4];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[5]) {
- trailers = args[5];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[6]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = os_sendfile_impl(module, out_fd, in_fd, offset, count, headers, trailers, flags);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_SENDFILE) && !defined(__APPLE__) && (defined(__FreeBSD__) || defined(__DragonFly__)) */
-
-#if defined(HAVE_SENDFILE) && !defined(__APPLE__) && !(defined(__FreeBSD__) || defined(__DragonFly__))
-
-PyDoc_STRVAR(os_sendfile__doc__,
-"sendfile($module, /, out_fd, in_fd, offset, count)\n"
-"--\n"
-"\n"
-"Copy count bytes from file descriptor in_fd to file descriptor out_fd.");
-
-#define OS_SENDFILE_METHODDEF \
- {"sendfile", (PyCFunction)(void(*)(void))os_sendfile, METH_FASTCALL|METH_KEYWORDS, os_sendfile__doc__},
-
-static PyObject *
-os_sendfile_impl(PyObject *module, int out_fd, int in_fd, PyObject *offobj,
- Py_ssize_t count);
-
-static PyObject *
-os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0};
- PyObject *argsbuf[4];
- int out_fd;
- int in_fd;
- PyObject *offobj;
- Py_ssize_t count;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 4, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- out_fd = _PyLong_AsInt(args[0]);
- if (out_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- in_fd = _PyLong_AsInt(args[1]);
- if (in_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- offobj = args[2];
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[3]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
- return_value = os_sendfile_impl(module, out_fd, in_fd, offobj, count);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_SENDFILE) && !defined(__APPLE__) && !(defined(__FreeBSD__) || defined(__DragonFly__)) */
-
-#if defined(__APPLE__)
-
-PyDoc_STRVAR(os__fcopyfile__doc__,
-"_fcopyfile($module, in_fd, out_fd, flags, /)\n"
-"--\n"
-"\n"
-"Efficiently copy content or metadata of 2 regular file descriptors (macOS).");
-
-#define OS__FCOPYFILE_METHODDEF \
- {"_fcopyfile", (PyCFunction)(void(*)(void))os__fcopyfile, METH_FASTCALL, os__fcopyfile__doc__},
-
-static PyObject *
-os__fcopyfile_impl(PyObject *module, int in_fd, int out_fd, int flags);
-
-static PyObject *
-os__fcopyfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int in_fd;
- int out_fd;
- int flags;
-
- if (!_PyArg_CheckPositional("_fcopyfile", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- in_fd = _PyLong_AsInt(args[0]);
- if (in_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- out_fd = _PyLong_AsInt(args[1]);
- if (out_fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[2]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = os__fcopyfile_impl(module, in_fd, out_fd, flags);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(__APPLE__) */
-
+#if defined(HAVE_SENDFILE) && defined(__APPLE__)
+
+PyDoc_STRVAR(os_sendfile__doc__,
+"sendfile($module, /, out_fd, in_fd, offset, count, headers=(),\n"
+" trailers=(), flags=0)\n"
+"--\n"
+"\n"
+"Copy count bytes from file descriptor in_fd to file descriptor out_fd.");
+
+#define OS_SENDFILE_METHODDEF \
+ {"sendfile", (PyCFunction)(void(*)(void))os_sendfile, METH_FASTCALL|METH_KEYWORDS, os_sendfile__doc__},
+
+static PyObject *
+os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
+ Py_off_t sbytes, PyObject *headers, PyObject *trailers,
+ int flags);
+
+static PyObject *
+os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0};
+ PyObject *argsbuf[7];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4;
+ int out_fd;
+ int in_fd;
+ Py_off_t offset;
+ Py_off_t sbytes;
+ PyObject *headers = NULL;
+ PyObject *trailers = NULL;
+ int flags = 0;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 7, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ out_fd = _PyLong_AsInt(args[0]);
+ if (out_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ in_fd = _PyLong_AsInt(args[1]);
+ if (in_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[2], &offset)) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[3], &sbytes)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[4]) {
+ headers = args[4];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[5]) {
+ trailers = args[5];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[6]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = os_sendfile_impl(module, out_fd, in_fd, offset, sbytes, headers, trailers, flags);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SENDFILE) && defined(__APPLE__) */
+
+#if defined(HAVE_SENDFILE) && !defined(__APPLE__) && (defined(__FreeBSD__) || defined(__DragonFly__))
+
+PyDoc_STRVAR(os_sendfile__doc__,
+"sendfile($module, /, out_fd, in_fd, offset, count, headers=(),\n"
+" trailers=(), flags=0)\n"
+"--\n"
+"\n"
+"Copy count bytes from file descriptor in_fd to file descriptor out_fd.");
+
+#define OS_SENDFILE_METHODDEF \
+ {"sendfile", (PyCFunction)(void(*)(void))os_sendfile, METH_FASTCALL|METH_KEYWORDS, os_sendfile__doc__},
+
+static PyObject *
+os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
+ Py_ssize_t count, PyObject *headers, PyObject *trailers,
+ int flags);
+
+static PyObject *
+os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", "headers", "trailers", "flags", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0};
+ PyObject *argsbuf[7];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 4;
+ int out_fd;
+ int in_fd;
+ Py_off_t offset;
+ Py_ssize_t count;
+ PyObject *headers = NULL;
+ PyObject *trailers = NULL;
+ int flags = 0;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 7, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ out_fd = _PyLong_AsInt(args[0]);
+ if (out_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ in_fd = _PyLong_AsInt(args[1]);
+ if (in_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[2], &offset)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[3]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[4]) {
+ headers = args[4];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[5]) {
+ trailers = args[5];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[6]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = os_sendfile_impl(module, out_fd, in_fd, offset, count, headers, trailers, flags);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SENDFILE) && !defined(__APPLE__) && (defined(__FreeBSD__) || defined(__DragonFly__)) */
+
+#if defined(HAVE_SENDFILE) && !defined(__APPLE__) && !(defined(__FreeBSD__) || defined(__DragonFly__))
+
+PyDoc_STRVAR(os_sendfile__doc__,
+"sendfile($module, /, out_fd, in_fd, offset, count)\n"
+"--\n"
+"\n"
+"Copy count bytes from file descriptor in_fd to file descriptor out_fd.");
+
+#define OS_SENDFILE_METHODDEF \
+ {"sendfile", (PyCFunction)(void(*)(void))os_sendfile, METH_FASTCALL|METH_KEYWORDS, os_sendfile__doc__},
+
+static PyObject *
+os_sendfile_impl(PyObject *module, int out_fd, int in_fd, PyObject *offobj,
+ Py_ssize_t count);
+
+static PyObject *
+os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"out_fd", "in_fd", "offset", "count", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sendfile", 0};
+ PyObject *argsbuf[4];
+ int out_fd;
+ int in_fd;
+ PyObject *offobj;
+ Py_ssize_t count;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 4, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ out_fd = _PyLong_AsInt(args[0]);
+ if (out_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ in_fd = _PyLong_AsInt(args[1]);
+ if (in_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ offobj = args[2];
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[3]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+ return_value = os_sendfile_impl(module, out_fd, in_fd, offobj, count);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SENDFILE) && !defined(__APPLE__) && !(defined(__FreeBSD__) || defined(__DragonFly__)) */
+
+#if defined(__APPLE__)
+
+PyDoc_STRVAR(os__fcopyfile__doc__,
+"_fcopyfile($module, in_fd, out_fd, flags, /)\n"
+"--\n"
+"\n"
+"Efficiently copy content or metadata of 2 regular file descriptors (macOS).");
+
+#define OS__FCOPYFILE_METHODDEF \
+ {"_fcopyfile", (PyCFunction)(void(*)(void))os__fcopyfile, METH_FASTCALL, os__fcopyfile__doc__},
+
+static PyObject *
+os__fcopyfile_impl(PyObject *module, int in_fd, int out_fd, int flags);
+
+static PyObject *
+os__fcopyfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int in_fd;
+ int out_fd;
+ int flags;
+
+ if (!_PyArg_CheckPositional("_fcopyfile", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ in_fd = _PyLong_AsInt(args[0]);
+ if (in_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ out_fd = _PyLong_AsInt(args[1]);
+ if (out_fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[2]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = os__fcopyfile_impl(module, in_fd, out_fd, flags);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(__APPLE__) */
+
PyDoc_STRVAR(os_fstat__doc__,
"fstat($module, /, fd)\n"
"--\n"
@@ -5616,7 +5616,7 @@ PyDoc_STRVAR(os_fstat__doc__,
"Equivalent to os.stat(fd).");
#define OS_FSTAT_METHODDEF \
- {"fstat", (PyCFunction)(void(*)(void))os_fstat, METH_FASTCALL|METH_KEYWORDS, os_fstat__doc__},
+ {"fstat", (PyCFunction)(void(*)(void))os_fstat, METH_FASTCALL|METH_KEYWORDS, os_fstat__doc__},
static PyObject *
os_fstat_impl(PyObject *module, int fd);
@@ -5626,23 +5626,23 @@ os_fstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fstat", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "fstat", 0};
+ PyObject *argsbuf[1];
int fd;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_fstat_impl(module, fd);
exit:
@@ -5671,15 +5671,15 @@ os_isatty(PyObject *module, PyObject *arg)
int fd;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_isatty_impl(module, fd);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -5741,15 +5741,15 @@ os_pipe2(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int flags;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(arg);
+ if (flags == -1 && PyErr_Occurred()) {
goto exit;
}
- flags = _PyLong_AsInt(arg);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_pipe2_impl(module, flags);
exit:
@@ -5770,7 +5770,7 @@ PyDoc_STRVAR(os_writev__doc__,
"buffers must be a sequence of bytes-like objects.");
#define OS_WRITEV_METHODDEF \
- {"writev", (PyCFunction)(void(*)(void))os_writev, METH_FASTCALL, os_writev__doc__},
+ {"writev", (PyCFunction)(void(*)(void))os_writev, METH_FASTCALL, os_writev__doc__},
static Py_ssize_t
os_writev_impl(PyObject *module, int fd, PyObject *buffers);
@@ -5783,19 +5783,19 @@ os_writev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *buffers;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("writev", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("writev", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffers = args[1];
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffers = args[1];
_return_value = os_writev_impl(module, fd, buffers);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -5821,7 +5821,7 @@ PyDoc_STRVAR(os_pwrite__doc__,
"current file offset.");
#define OS_PWRITE_METHODDEF \
- {"pwrite", (PyCFunction)(void(*)(void))os_pwrite, METH_FASTCALL, os_pwrite__doc__},
+ {"pwrite", (PyCFunction)(void(*)(void))os_pwrite, METH_FASTCALL, os_pwrite__doc__},
static Py_ssize_t
os_pwrite_impl(PyObject *module, int fd, Py_buffer *buffer, Py_off_t offset);
@@ -5835,28 +5835,28 @@ os_pwrite(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_off_t offset;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("pwrite", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &buffer, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&buffer, 'C')) {
- _PyArg_BadArgument("pwrite", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
- if (!Py_off_t_converter(args[2], &offset)) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("pwrite", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &buffer, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&buffer, 'C')) {
+ _PyArg_BadArgument("pwrite", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[2], &offset)) {
+ goto exit;
+ }
_return_value = os_pwrite_impl(module, fd, &buffer, offset);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -5897,7 +5897,7 @@ PyDoc_STRVAR(os_pwritev__doc__,
"Using non-zero flags requires Linux 4.7 or newer.");
#define OS_PWRITEV_METHODDEF \
- {"pwritev", (PyCFunction)(void(*)(void))os_pwritev, METH_FASTCALL, os_pwritev__doc__},
+ {"pwritev", (PyCFunction)(void(*)(void))os_pwritev, METH_FASTCALL, os_pwritev__doc__},
static Py_ssize_t
os_pwritev_impl(PyObject *module, int fd, PyObject *buffers, Py_off_t offset,
@@ -5913,35 +5913,35 @@ os_pwritev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int flags = 0;
Py_ssize_t _return_value;
- if (!_PyArg_CheckPositional("pwritev", nargs, 3, 4)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- buffers = args[1];
- if (!Py_off_t_converter(args[2], &offset)) {
- goto exit;
- }
- if (nargs < 4) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[3]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("pwritev", nargs, 3, 4)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ buffers = args[1];
+ if (!Py_off_t_converter(args[2], &offset)) {
+ goto exit;
+ }
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[3]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
_return_value = os_pwritev_impl(module, fd, buffers, offset, flags);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -5954,108 +5954,108 @@ exit:
#endif /* (defined(HAVE_PWRITEV) || defined (HAVE_PWRITEV2)) */
-#if defined(HAVE_COPY_FILE_RANGE)
-
-PyDoc_STRVAR(os_copy_file_range__doc__,
-"copy_file_range($module, /, src, dst, count, offset_src=None,\n"
-" offset_dst=None)\n"
-"--\n"
-"\n"
-"Copy count bytes from one file descriptor to another.\n"
-"\n"
-" src\n"
-" Source file descriptor.\n"
-" dst\n"
-" Destination file descriptor.\n"
-" count\n"
-" Number of bytes to copy.\n"
-" offset_src\n"
-" Starting offset in src.\n"
-" offset_dst\n"
-" Starting offset in dst.\n"
-"\n"
-"If offset_src is None, then src is read from the current position;\n"
-"respectively for offset_dst.");
-
-#define OS_COPY_FILE_RANGE_METHODDEF \
- {"copy_file_range", (PyCFunction)(void(*)(void))os_copy_file_range, METH_FASTCALL|METH_KEYWORDS, os_copy_file_range__doc__},
-
-static PyObject *
-os_copy_file_range_impl(PyObject *module, int src, int dst, Py_ssize_t count,
- PyObject *offset_src, PyObject *offset_dst);
-
-static PyObject *
-os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"src", "dst", "count", "offset_src", "offset_dst", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "copy_file_range", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
- int src;
- int dst;
- Py_ssize_t count;
- PyObject *offset_src = Py_None;
- PyObject *offset_dst = Py_None;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 5, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- src = _PyLong_AsInt(args[0]);
- if (src == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- dst = _PyLong_AsInt(args[1]);
- if (dst == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[3]) {
- offset_src = args[3];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- offset_dst = args[4];
-skip_optional_pos:
- return_value = os_copy_file_range_impl(module, src, dst, count, offset_src, offset_dst);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_COPY_FILE_RANGE) */
-
+#if defined(HAVE_COPY_FILE_RANGE)
+
+PyDoc_STRVAR(os_copy_file_range__doc__,
+"copy_file_range($module, /, src, dst, count, offset_src=None,\n"
+" offset_dst=None)\n"
+"--\n"
+"\n"
+"Copy count bytes from one file descriptor to another.\n"
+"\n"
+" src\n"
+" Source file descriptor.\n"
+" dst\n"
+" Destination file descriptor.\n"
+" count\n"
+" Number of bytes to copy.\n"
+" offset_src\n"
+" Starting offset in src.\n"
+" offset_dst\n"
+" Starting offset in dst.\n"
+"\n"
+"If offset_src is None, then src is read from the current position;\n"
+"respectively for offset_dst.");
+
+#define OS_COPY_FILE_RANGE_METHODDEF \
+ {"copy_file_range", (PyCFunction)(void(*)(void))os_copy_file_range, METH_FASTCALL|METH_KEYWORDS, os_copy_file_range__doc__},
+
+static PyObject *
+os_copy_file_range_impl(PyObject *module, int src, int dst, Py_ssize_t count,
+ PyObject *offset_src, PyObject *offset_dst);
+
+static PyObject *
+os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"src", "dst", "count", "offset_src", "offset_dst", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "copy_file_range", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
+ int src;
+ int dst;
+ Py_ssize_t count;
+ PyObject *offset_src = Py_None;
+ PyObject *offset_dst = Py_None;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 5, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ src = _PyLong_AsInt(args[0]);
+ if (src == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ dst = _PyLong_AsInt(args[1]);
+ if (dst == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[3]) {
+ offset_src = args[3];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ offset_dst = args[4];
+skip_optional_pos:
+ return_value = os_copy_file_range_impl(module, src, dst, count, offset_src, offset_dst);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_COPY_FILE_RANGE) */
+
#if defined(HAVE_MKFIFO)
PyDoc_STRVAR(os_mkfifo__doc__,
@@ -6070,7 +6070,7 @@ PyDoc_STRVAR(os_mkfifo__doc__,
" If it is unavailable, using it will raise a NotImplementedError.");
#define OS_MKFIFO_METHODDEF \
- {"mkfifo", (PyCFunction)(void(*)(void))os_mkfifo, METH_FASTCALL|METH_KEYWORDS, os_mkfifo__doc__},
+ {"mkfifo", (PyCFunction)(void(*)(void))os_mkfifo, METH_FASTCALL|METH_KEYWORDS, os_mkfifo__doc__},
static PyObject *
os_mkfifo_impl(PyObject *module, path_t *path, int mode, int dir_fd);
@@ -6080,45 +6080,45 @@ os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "mode", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "mkfifo", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "mkfifo", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("mkfifo", "path", 0, 0);
int mode = 438;
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!MKFIFOAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!MKFIFOAT_DIR_FD_CONVERTER(args[2], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_mkfifo_impl(module, &path, mode, dir_fd);
exit:
@@ -6151,7 +6151,7 @@ PyDoc_STRVAR(os_mknod__doc__,
" If it is unavailable, using it will raise a NotImplementedError.");
#define OS_MKNOD_METHODDEF \
- {"mknod", (PyCFunction)(void(*)(void))os_mknod, METH_FASTCALL|METH_KEYWORDS, os_mknod__doc__},
+ {"mknod", (PyCFunction)(void(*)(void))os_mknod, METH_FASTCALL|METH_KEYWORDS, os_mknod__doc__},
static PyObject *
os_mknod_impl(PyObject *module, path_t *path, int mode, dev_t device,
@@ -6162,54 +6162,54 @@ os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "mode", "device", "dir_fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "mknod", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "mknod", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
path_t path = PATH_T_INITIALIZE("mknod", "path", 0, 0);
int mode = 384;
dev_t device = 0;
int dir_fd = DEFAULT_DIR_FD;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[2]) {
- if (!_Py_Dev_Converter(args[2], &device)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (!MKNODAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[2]) {
+ if (!_Py_Dev_Converter(args[2], &device)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (!MKNODAT_DIR_FD_CONVERTER(args[3], &dir_fd)) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_mknod_impl(module, &path, mode, device, dir_fd);
exit:
@@ -6242,7 +6242,7 @@ os_major(PyObject *module, PyObject *arg)
dev_t device;
unsigned int _return_value;
- if (!_Py_Dev_Converter(arg, &device)) {
+ if (!_Py_Dev_Converter(arg, &device)) {
goto exit;
}
_return_value = os_major_impl(module, device);
@@ -6278,7 +6278,7 @@ os_minor(PyObject *module, PyObject *arg)
dev_t device;
unsigned int _return_value;
- if (!_Py_Dev_Converter(arg, &device)) {
+ if (!_Py_Dev_Converter(arg, &device)) {
goto exit;
}
_return_value = os_minor_impl(module, device);
@@ -6302,7 +6302,7 @@ PyDoc_STRVAR(os_makedev__doc__,
"Composes a raw device number from the major and minor device numbers.");
#define OS_MAKEDEV_METHODDEF \
- {"makedev", (PyCFunction)(void(*)(void))os_makedev, METH_FASTCALL, os_makedev__doc__},
+ {"makedev", (PyCFunction)(void(*)(void))os_makedev, METH_FASTCALL, os_makedev__doc__},
static dev_t
os_makedev_impl(PyObject *module, int major, int minor);
@@ -6315,27 +6315,27 @@ os_makedev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int minor;
dev_t _return_value;
- if (!_PyArg_CheckPositional("makedev", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- major = _PyLong_AsInt(args[0]);
- if (major == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- minor = _PyLong_AsInt(args[1]);
- if (minor == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("makedev", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ major = _PyLong_AsInt(args[0]);
+ if (major == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ minor = _PyLong_AsInt(args[1]);
+ if (minor == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
_return_value = os_makedev_impl(module, major, minor);
if ((_return_value == (dev_t)-1) && PyErr_Occurred()) {
goto exit;
@@ -6357,7 +6357,7 @@ PyDoc_STRVAR(os_ftruncate__doc__,
"Truncate a file, specified by file descriptor, to a specific length.");
#define OS_FTRUNCATE_METHODDEF \
- {"ftruncate", (PyCFunction)(void(*)(void))os_ftruncate, METH_FASTCALL, os_ftruncate__doc__},
+ {"ftruncate", (PyCFunction)(void(*)(void))os_ftruncate, METH_FASTCALL, os_ftruncate__doc__},
static PyObject *
os_ftruncate_impl(PyObject *module, int fd, Py_off_t length);
@@ -6369,21 +6369,21 @@ os_ftruncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int fd;
Py_off_t length;
- if (!_PyArg_CheckPositional("ftruncate", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!Py_off_t_converter(args[1], &length)) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("ftruncate", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[1], &length)) {
+ goto exit;
+ }
return_value = os_ftruncate_impl(module, fd, length);
exit:
@@ -6404,7 +6404,7 @@ PyDoc_STRVAR(os_truncate__doc__,
" If this functionality is unavailable, using it raises an exception.");
#define OS_TRUNCATE_METHODDEF \
- {"truncate", (PyCFunction)(void(*)(void))os_truncate, METH_FASTCALL|METH_KEYWORDS, os_truncate__doc__},
+ {"truncate", (PyCFunction)(void(*)(void))os_truncate, METH_FASTCALL|METH_KEYWORDS, os_truncate__doc__},
static PyObject *
os_truncate_impl(PyObject *module, path_t *path, Py_off_t length);
@@ -6414,21 +6414,21 @@ os_truncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "length", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "truncate", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "truncate", 0};
+ PyObject *argsbuf[2];
path_t path = PATH_T_INITIALIZE("truncate", "path", 0, PATH_HAVE_FTRUNCATE);
Py_off_t length;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[1], &length)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!Py_off_t_converter(args[1], &length)) {
- goto exit;
- }
return_value = os_truncate_impl(module, &path, length);
exit:
@@ -6452,7 +6452,7 @@ PyDoc_STRVAR(os_posix_fallocate__doc__,
"starting at offset bytes from the beginning and continuing for length bytes.");
#define OS_POSIX_FALLOCATE_METHODDEF \
- {"posix_fallocate", (PyCFunction)(void(*)(void))os_posix_fallocate, METH_FASTCALL, os_posix_fallocate__doc__},
+ {"posix_fallocate", (PyCFunction)(void(*)(void))os_posix_fallocate, METH_FASTCALL, os_posix_fallocate__doc__},
static PyObject *
os_posix_fallocate_impl(PyObject *module, int fd, Py_off_t offset,
@@ -6466,24 +6466,24 @@ os_posix_fallocate(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_off_t offset;
Py_off_t length;
- if (!_PyArg_CheckPositional("posix_fallocate", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!Py_off_t_converter(args[1], &offset)) {
- goto exit;
- }
- if (!Py_off_t_converter(args[2], &length)) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("posix_fallocate", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[1], &offset)) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[2], &length)) {
+ goto exit;
+ }
return_value = os_posix_fallocate_impl(module, fd, offset, length);
exit:
@@ -6509,7 +6509,7 @@ PyDoc_STRVAR(os_posix_fadvise__doc__,
"POSIX_FADV_DONTNEED.");
#define OS_POSIX_FADVISE_METHODDEF \
- {"posix_fadvise", (PyCFunction)(void(*)(void))os_posix_fadvise, METH_FASTCALL, os_posix_fadvise__doc__},
+ {"posix_fadvise", (PyCFunction)(void(*)(void))os_posix_fadvise, METH_FASTCALL, os_posix_fadvise__doc__},
static PyObject *
os_posix_fadvise_impl(PyObject *module, int fd, Py_off_t offset,
@@ -6524,33 +6524,33 @@ os_posix_fadvise(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_off_t length;
int advice;
- if (!_PyArg_CheckPositional("posix_fadvise", nargs, 4, 4)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!Py_off_t_converter(args[1], &offset)) {
- goto exit;
- }
- if (!Py_off_t_converter(args[2], &length)) {
- goto exit;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- advice = _PyLong_AsInt(args[3]);
- if (advice == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("posix_fadvise", nargs, 4, 4)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[1], &offset)) {
+ goto exit;
+ }
+ if (!Py_off_t_converter(args[2], &length)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ advice = _PyLong_AsInt(args[3]);
+ if (advice == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = os_posix_fadvise_impl(module, fd, offset, length, advice);
exit:
@@ -6559,7 +6559,7 @@ exit:
#endif /* (defined(HAVE_POSIX_FADVISE) && !defined(POSIX_FADVISE_AIX_BUG)) */
-#if defined(MS_WINDOWS)
+#if defined(MS_WINDOWS)
PyDoc_STRVAR(os_putenv__doc__,
"putenv($module, name, value, /)\n"
@@ -6568,7 +6568,7 @@ PyDoc_STRVAR(os_putenv__doc__,
"Change or add an environment variable.");
#define OS_PUTENV_METHODDEF \
- {"putenv", (PyCFunction)(void(*)(void))os_putenv, METH_FASTCALL, os_putenv__doc__},
+ {"putenv", (PyCFunction)(void(*)(void))os_putenv, METH_FASTCALL, os_putenv__doc__},
static PyObject *
os_putenv_impl(PyObject *module, PyObject *name, PyObject *value);
@@ -6580,34 +6580,34 @@ os_putenv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *name;
PyObject *value;
- if (!_PyArg_CheckPositional("putenv", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("putenv", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- name = args[0];
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("putenv", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- value = args[1];
+ if (!_PyArg_CheckPositional("putenv", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("putenv", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ name = args[0];
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("putenv", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ value = args[1];
return_value = os_putenv_impl(module, name, value);
exit:
return return_value;
}
-#endif /* defined(MS_WINDOWS) */
+#endif /* defined(MS_WINDOWS) */
-#if !defined(MS_WINDOWS)
+#if !defined(MS_WINDOWS)
PyDoc_STRVAR(os_putenv__doc__,
"putenv($module, name, value, /)\n"
@@ -6616,7 +6616,7 @@ PyDoc_STRVAR(os_putenv__doc__,
"Change or add an environment variable.");
#define OS_PUTENV_METHODDEF \
- {"putenv", (PyCFunction)(void(*)(void))os_putenv, METH_FASTCALL, os_putenv__doc__},
+ {"putenv", (PyCFunction)(void(*)(void))os_putenv, METH_FASTCALL, os_putenv__doc__},
static PyObject *
os_putenv_impl(PyObject *module, PyObject *name, PyObject *value);
@@ -6628,15 +6628,15 @@ os_putenv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *name = NULL;
PyObject *value = NULL;
- if (!_PyArg_CheckPositional("putenv", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("putenv", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_FSConverter(args[0], &name)) {
+ goto exit;
+ }
+ if (!PyUnicode_FSConverter(args[1], &value)) {
goto exit;
}
- if (!PyUnicode_FSConverter(args[0], &name)) {
- goto exit;
- }
- if (!PyUnicode_FSConverter(args[1], &value)) {
- goto exit;
- }
return_value = os_putenv_impl(module, name, value);
exit:
@@ -6648,9 +6648,45 @@ exit:
return return_value;
}
-#endif /* !defined(MS_WINDOWS) */
+#endif /* !defined(MS_WINDOWS) */
-#if defined(MS_WINDOWS)
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_unsetenv__doc__,
+"unsetenv($module, name, /)\n"
+"--\n"
+"\n"
+"Delete an environment variable.");
+
+#define OS_UNSETENV_METHODDEF \
+ {"unsetenv", (PyCFunction)os_unsetenv, METH_O, os_unsetenv__doc__},
+
+static PyObject *
+os_unsetenv_impl(PyObject *module, PyObject *name);
+
+static PyObject *
+os_unsetenv(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *name;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("unsetenv", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ name = arg;
+ return_value = os_unsetenv_impl(module, name);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if !defined(MS_WINDOWS)
PyDoc_STRVAR(os_unsetenv__doc__,
"unsetenv($module, name, /)\n"
@@ -6668,45 +6704,9 @@ static PyObject *
os_unsetenv(PyObject *module, PyObject *arg)
{
PyObject *return_value = NULL;
- PyObject *name;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("unsetenv", "argument", "str", arg);
- goto exit;
- }
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
- return_value = os_unsetenv_impl(module, name);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(MS_WINDOWS) */
-
-#if !defined(MS_WINDOWS)
-
-PyDoc_STRVAR(os_unsetenv__doc__,
-"unsetenv($module, name, /)\n"
-"--\n"
-"\n"
-"Delete an environment variable.");
-
-#define OS_UNSETENV_METHODDEF \
- {"unsetenv", (PyCFunction)os_unsetenv, METH_O, os_unsetenv__doc__},
-
-static PyObject *
-os_unsetenv_impl(PyObject *module, PyObject *name);
-
-static PyObject *
-os_unsetenv(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
PyObject *name = NULL;
- if (!PyUnicode_FSConverter(arg, &name)) {
+ if (!PyUnicode_FSConverter(arg, &name)) {
goto exit;
}
return_value = os_unsetenv_impl(module, name);
@@ -6718,7 +6718,7 @@ exit:
return return_value;
}
-#endif /* !defined(MS_WINDOWS) */
+#endif /* !defined(MS_WINDOWS) */
PyDoc_STRVAR(os_strerror__doc__,
"strerror($module, code, /)\n"
@@ -6738,15 +6738,15 @@ os_strerror(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int code;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ code = _PyLong_AsInt(arg);
+ if (code == -1 && PyErr_Occurred()) {
goto exit;
}
- code = _PyLong_AsInt(arg);
- if (code == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_strerror_impl(module, code);
exit:
@@ -6774,15 +6774,15 @@ os_WCOREDUMP(PyObject *module, PyObject *arg)
int status;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(arg);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- status = _PyLong_AsInt(arg);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WCOREDUMP_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -6807,7 +6807,7 @@ PyDoc_STRVAR(os_WIFCONTINUED__doc__,
"job control stop.");
#define OS_WIFCONTINUED_METHODDEF \
- {"WIFCONTINUED", (PyCFunction)(void(*)(void))os_WIFCONTINUED, METH_FASTCALL|METH_KEYWORDS, os_WIFCONTINUED__doc__},
+ {"WIFCONTINUED", (PyCFunction)(void(*)(void))os_WIFCONTINUED, METH_FASTCALL|METH_KEYWORDS, os_WIFCONTINUED__doc__},
static int
os_WIFCONTINUED_impl(PyObject *module, int status);
@@ -6817,24 +6817,24 @@ os_WIFCONTINUED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "WIFCONTINUED", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "WIFCONTINUED", 0};
+ PyObject *argsbuf[1];
int status;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WIFCONTINUED_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -6856,7 +6856,7 @@ PyDoc_STRVAR(os_WIFSTOPPED__doc__,
"Return True if the process returning status was stopped.");
#define OS_WIFSTOPPED_METHODDEF \
- {"WIFSTOPPED", (PyCFunction)(void(*)(void))os_WIFSTOPPED, METH_FASTCALL|METH_KEYWORDS, os_WIFSTOPPED__doc__},
+ {"WIFSTOPPED", (PyCFunction)(void(*)(void))os_WIFSTOPPED, METH_FASTCALL|METH_KEYWORDS, os_WIFSTOPPED__doc__},
static int
os_WIFSTOPPED_impl(PyObject *module, int status);
@@ -6866,24 +6866,24 @@ os_WIFSTOPPED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "WIFSTOPPED", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "WIFSTOPPED", 0};
+ PyObject *argsbuf[1];
int status;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WIFSTOPPED_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -6905,7 +6905,7 @@ PyDoc_STRVAR(os_WIFSIGNALED__doc__,
"Return True if the process returning status was terminated by a signal.");
#define OS_WIFSIGNALED_METHODDEF \
- {"WIFSIGNALED", (PyCFunction)(void(*)(void))os_WIFSIGNALED, METH_FASTCALL|METH_KEYWORDS, os_WIFSIGNALED__doc__},
+ {"WIFSIGNALED", (PyCFunction)(void(*)(void))os_WIFSIGNALED, METH_FASTCALL|METH_KEYWORDS, os_WIFSIGNALED__doc__},
static int
os_WIFSIGNALED_impl(PyObject *module, int status);
@@ -6915,24 +6915,24 @@ os_WIFSIGNALED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "WIFSIGNALED", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "WIFSIGNALED", 0};
+ PyObject *argsbuf[1];
int status;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WIFSIGNALED_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -6954,7 +6954,7 @@ PyDoc_STRVAR(os_WIFEXITED__doc__,
"Return True if the process returning status exited via the exit() system call.");
#define OS_WIFEXITED_METHODDEF \
- {"WIFEXITED", (PyCFunction)(void(*)(void))os_WIFEXITED, METH_FASTCALL|METH_KEYWORDS, os_WIFEXITED__doc__},
+ {"WIFEXITED", (PyCFunction)(void(*)(void))os_WIFEXITED, METH_FASTCALL|METH_KEYWORDS, os_WIFEXITED__doc__},
static int
os_WIFEXITED_impl(PyObject *module, int status);
@@ -6964,24 +6964,24 @@ os_WIFEXITED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "WIFEXITED", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "WIFEXITED", 0};
+ PyObject *argsbuf[1];
int status;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WIFEXITED_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -7003,7 +7003,7 @@ PyDoc_STRVAR(os_WEXITSTATUS__doc__,
"Return the process return code from status.");
#define OS_WEXITSTATUS_METHODDEF \
- {"WEXITSTATUS", (PyCFunction)(void(*)(void))os_WEXITSTATUS, METH_FASTCALL|METH_KEYWORDS, os_WEXITSTATUS__doc__},
+ {"WEXITSTATUS", (PyCFunction)(void(*)(void))os_WEXITSTATUS, METH_FASTCALL|METH_KEYWORDS, os_WEXITSTATUS__doc__},
static int
os_WEXITSTATUS_impl(PyObject *module, int status);
@@ -7013,24 +7013,24 @@ os_WEXITSTATUS(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "WEXITSTATUS", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "WEXITSTATUS", 0};
+ PyObject *argsbuf[1];
int status;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WEXITSTATUS_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -7052,7 +7052,7 @@ PyDoc_STRVAR(os_WTERMSIG__doc__,
"Return the signal that terminated the process that provided the status value.");
#define OS_WTERMSIG_METHODDEF \
- {"WTERMSIG", (PyCFunction)(void(*)(void))os_WTERMSIG, METH_FASTCALL|METH_KEYWORDS, os_WTERMSIG__doc__},
+ {"WTERMSIG", (PyCFunction)(void(*)(void))os_WTERMSIG, METH_FASTCALL|METH_KEYWORDS, os_WTERMSIG__doc__},
static int
os_WTERMSIG_impl(PyObject *module, int status);
@@ -7062,24 +7062,24 @@ os_WTERMSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "WTERMSIG", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "WTERMSIG", 0};
+ PyObject *argsbuf[1];
int status;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WTERMSIG_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -7101,7 +7101,7 @@ PyDoc_STRVAR(os_WSTOPSIG__doc__,
"Return the signal that stopped the process that provided the status value.");
#define OS_WSTOPSIG_METHODDEF \
- {"WSTOPSIG", (PyCFunction)(void(*)(void))os_WSTOPSIG, METH_FASTCALL|METH_KEYWORDS, os_WSTOPSIG__doc__},
+ {"WSTOPSIG", (PyCFunction)(void(*)(void))os_WSTOPSIG, METH_FASTCALL|METH_KEYWORDS, os_WSTOPSIG__doc__},
static int
os_WSTOPSIG_impl(PyObject *module, int status);
@@ -7111,24 +7111,24 @@ os_WSTOPSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "WSTOPSIG", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "WSTOPSIG", 0};
+ PyObject *argsbuf[1];
int status;
int _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ status = _PyLong_AsInt(args[0]);
+ if (status == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- status = _PyLong_AsInt(args[0]);
- if (status == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_WSTOPSIG_impl(module, status);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -7163,15 +7163,15 @@ os_fstatvfs(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int fd;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_fstatvfs_impl(module, fd);
exit:
@@ -7193,7 +7193,7 @@ PyDoc_STRVAR(os_statvfs__doc__,
" If this functionality is unavailable, using it raises an exception.");
#define OS_STATVFS_METHODDEF \
- {"statvfs", (PyCFunction)(void(*)(void))os_statvfs, METH_FASTCALL|METH_KEYWORDS, os_statvfs__doc__},
+ {"statvfs", (PyCFunction)(void(*)(void))os_statvfs, METH_FASTCALL|METH_KEYWORDS, os_statvfs__doc__},
static PyObject *
os_statvfs_impl(PyObject *module, path_t *path);
@@ -7203,17 +7203,17 @@ os_statvfs(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "statvfs", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "statvfs", 0};
+ PyObject *argsbuf[1];
path_t path = PATH_T_INITIALIZE("statvfs", "path", 0, PATH_HAVE_FSTATVFS);
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
return_value = os_statvfs_impl(module, &path);
exit:
@@ -7234,7 +7234,7 @@ PyDoc_STRVAR(os__getdiskusage__doc__,
"Return disk usage statistics about the given path as a (total, free) tuple.");
#define OS__GETDISKUSAGE_METHODDEF \
- {"_getdiskusage", (PyCFunction)(void(*)(void))os__getdiskusage, METH_FASTCALL|METH_KEYWORDS, os__getdiskusage__doc__},
+ {"_getdiskusage", (PyCFunction)(void(*)(void))os__getdiskusage, METH_FASTCALL|METH_KEYWORDS, os__getdiskusage__doc__},
static PyObject *
os__getdiskusage_impl(PyObject *module, path_t *path);
@@ -7244,17 +7244,17 @@ os__getdiskusage(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_getdiskusage", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "_getdiskusage", 0};
+ PyObject *argsbuf[1];
path_t path = PATH_T_INITIALIZE("_getdiskusage", "path", 0, 0);
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
return_value = os__getdiskusage_impl(module, &path);
exit:
@@ -7277,7 +7277,7 @@ PyDoc_STRVAR(os_fpathconf__doc__,
"If there is no limit, return -1.");
#define OS_FPATHCONF_METHODDEF \
- {"fpathconf", (PyCFunction)(void(*)(void))os_fpathconf, METH_FASTCALL, os_fpathconf__doc__},
+ {"fpathconf", (PyCFunction)(void(*)(void))os_fpathconf, METH_FASTCALL, os_fpathconf__doc__},
static long
os_fpathconf_impl(PyObject *module, int fd, int name);
@@ -7290,21 +7290,21 @@ os_fpathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int name;
long _return_value;
- if (!_PyArg_CheckPositional("fpathconf", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!conv_path_confname(args[1], &name)) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("fpathconf", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!conv_path_confname(args[1], &name)) {
+ goto exit;
+ }
_return_value = os_fpathconf_impl(module, fd, name);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -7330,7 +7330,7 @@ PyDoc_STRVAR(os_pathconf__doc__,
" If this functionality is unavailable, using it raises an exception.");
#define OS_PATHCONF_METHODDEF \
- {"pathconf", (PyCFunction)(void(*)(void))os_pathconf, METH_FASTCALL|METH_KEYWORDS, os_pathconf__doc__},
+ {"pathconf", (PyCFunction)(void(*)(void))os_pathconf, METH_FASTCALL|METH_KEYWORDS, os_pathconf__doc__},
static long
os_pathconf_impl(PyObject *module, path_t *path, int name);
@@ -7340,22 +7340,22 @@ os_pathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "name", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "pathconf", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "pathconf", 0};
+ PyObject *argsbuf[2];
path_t path = PATH_T_INITIALIZE("pathconf", "path", 0, PATH_HAVE_FPATHCONF);
int name;
long _return_value;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!conv_path_confname(args[1], &name)) {
goto exit;
}
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!conv_path_confname(args[1], &name)) {
- goto exit;
- }
_return_value = os_pathconf_impl(module, &path, name);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -7391,7 +7391,7 @@ os_confstr(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int name;
- if (!conv_confstr_confname(arg, &name)) {
+ if (!conv_confstr_confname(arg, &name)) {
goto exit;
}
return_value = os_confstr_impl(module, name);
@@ -7423,7 +7423,7 @@ os_sysconf(PyObject *module, PyObject *arg)
int name;
long _return_value;
- if (!conv_sysconf_confname(arg, &name)) {
+ if (!conv_sysconf_confname(arg, &name)) {
goto exit;
}
_return_value = os_sysconf_impl(module, name);
@@ -7462,7 +7462,7 @@ os_abort(PyObject *module, PyObject *Py_UNUSED(ignored))
#if defined(MS_WINDOWS)
PyDoc_STRVAR(os_startfile__doc__,
-"startfile($module, /, filepath, operation=<unrepresentable>)\n"
+"startfile($module, /, filepath, operation=<unrepresentable>)\n"
"--\n"
"\n"
"Start a file with its associated application.\n"
@@ -7483,7 +7483,7 @@ PyDoc_STRVAR(os_startfile__doc__,
"the underlying Win32 ShellExecute function doesn\'t work if it is.");
#define OS_STARTFILE_METHODDEF \
- {"startfile", (PyCFunction)(void(*)(void))os_startfile, METH_FASTCALL|METH_KEYWORDS, os_startfile__doc__},
+ {"startfile", (PyCFunction)(void(*)(void))os_startfile, METH_FASTCALL|METH_KEYWORDS, os_startfile__doc__},
static PyObject *
os_startfile_impl(PyObject *module, path_t *filepath,
@@ -7549,7 +7549,7 @@ PyDoc_STRVAR(os_device_encoding__doc__,
"If the device is not a terminal, return None.");
#define OS_DEVICE_ENCODING_METHODDEF \
- {"device_encoding", (PyCFunction)(void(*)(void))os_device_encoding, METH_FASTCALL|METH_KEYWORDS, os_device_encoding__doc__},
+ {"device_encoding", (PyCFunction)(void(*)(void))os_device_encoding, METH_FASTCALL|METH_KEYWORDS, os_device_encoding__doc__},
static PyObject *
os_device_encoding_impl(PyObject *module, int fd);
@@ -7559,23 +7559,23 @@ os_device_encoding(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "device_encoding", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "device_encoding", 0};
+ PyObject *argsbuf[1];
int fd;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = os_device_encoding_impl(module, fd);
exit:
@@ -7591,7 +7591,7 @@ PyDoc_STRVAR(os_setresuid__doc__,
"Set the current process\'s real, effective, and saved user ids.");
#define OS_SETRESUID_METHODDEF \
- {"setresuid", (PyCFunction)(void(*)(void))os_setresuid, METH_FASTCALL, os_setresuid__doc__},
+ {"setresuid", (PyCFunction)(void(*)(void))os_setresuid, METH_FASTCALL, os_setresuid__doc__},
static PyObject *
os_setresuid_impl(PyObject *module, uid_t ruid, uid_t euid, uid_t suid);
@@ -7604,18 +7604,18 @@ os_setresuid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
uid_t euid;
uid_t suid;
- if (!_PyArg_CheckPositional("setresuid", nargs, 3, 3)) {
+ if (!_PyArg_CheckPositional("setresuid", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[0], &ruid)) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[1], &euid)) {
+ goto exit;
+ }
+ if (!_Py_Uid_Converter(args[2], &suid)) {
goto exit;
}
- if (!_Py_Uid_Converter(args[0], &ruid)) {
- goto exit;
- }
- if (!_Py_Uid_Converter(args[1], &euid)) {
- goto exit;
- }
- if (!_Py_Uid_Converter(args[2], &suid)) {
- goto exit;
- }
return_value = os_setresuid_impl(module, ruid, euid, suid);
exit:
@@ -7633,7 +7633,7 @@ PyDoc_STRVAR(os_setresgid__doc__,
"Set the current process\'s real, effective, and saved group ids.");
#define OS_SETRESGID_METHODDEF \
- {"setresgid", (PyCFunction)(void(*)(void))os_setresgid, METH_FASTCALL, os_setresgid__doc__},
+ {"setresgid", (PyCFunction)(void(*)(void))os_setresgid, METH_FASTCALL, os_setresgid__doc__},
static PyObject *
os_setresgid_impl(PyObject *module, gid_t rgid, gid_t egid, gid_t sgid);
@@ -7646,18 +7646,18 @@ os_setresgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
gid_t egid;
gid_t sgid;
- if (!_PyArg_CheckPositional("setresgid", nargs, 3, 3)) {
+ if (!_PyArg_CheckPositional("setresgid", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[0], &rgid)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[1], &egid)) {
+ goto exit;
+ }
+ if (!_Py_Gid_Converter(args[2], &sgid)) {
goto exit;
}
- if (!_Py_Gid_Converter(args[0], &rgid)) {
- goto exit;
- }
- if (!_Py_Gid_Converter(args[1], &egid)) {
- goto exit;
- }
- if (!_Py_Gid_Converter(args[2], &sgid)) {
- goto exit;
- }
return_value = os_setresgid_impl(module, rgid, egid, sgid);
exit:
@@ -7724,7 +7724,7 @@ PyDoc_STRVAR(os_getxattr__doc__,
" the link points to.");
#define OS_GETXATTR_METHODDEF \
- {"getxattr", (PyCFunction)(void(*)(void))os_getxattr, METH_FASTCALL|METH_KEYWORDS, os_getxattr__doc__},
+ {"getxattr", (PyCFunction)(void(*)(void))os_getxattr, METH_FASTCALL|METH_KEYWORDS, os_getxattr__doc__},
static PyObject *
os_getxattr_impl(PyObject *module, path_t *path, path_t *attribute,
@@ -7735,31 +7735,31 @@ os_getxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "attribute", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "getxattr", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "getxattr", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t path = PATH_T_INITIALIZE("getxattr", "path", 0, 1);
path_t attribute = PATH_T_INITIALIZE("getxattr", "attribute", 0, 0);
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!path_converter(args[1], &attribute)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- follow_symlinks = PyObject_IsTrue(args[2]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &attribute)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ follow_symlinks = PyObject_IsTrue(args[2]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_getxattr_impl(module, &path, &attribute, follow_symlinks);
exit:
@@ -7788,7 +7788,7 @@ PyDoc_STRVAR(os_setxattr__doc__,
" the link points to.");
#define OS_SETXATTR_METHODDEF \
- {"setxattr", (PyCFunction)(void(*)(void))os_setxattr, METH_FASTCALL|METH_KEYWORDS, os_setxattr__doc__},
+ {"setxattr", (PyCFunction)(void(*)(void))os_setxattr, METH_FASTCALL|METH_KEYWORDS, os_setxattr__doc__},
static PyObject *
os_setxattr_impl(PyObject *module, path_t *path, path_t *attribute,
@@ -7799,58 +7799,58 @@ os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "attribute", "value", "flags", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "setxattr", 0};
- PyObject *argsbuf[5];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
+ static _PyArg_Parser _parser = {NULL, _keywords, "setxattr", 0};
+ PyObject *argsbuf[5];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
path_t path = PATH_T_INITIALIZE("setxattr", "path", 0, 1);
path_t attribute = PATH_T_INITIALIZE("setxattr", "attribute", 0, 0);
Py_buffer value = {NULL, NULL};
int flags = 0;
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 4, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!path_converter(args[1], &attribute)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[2], &value, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&value, 'C')) {
- _PyArg_BadArgument("setxattr", "argument 'value'", "contiguous buffer", args[2]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[3]) {
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[3]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- follow_symlinks = PyObject_IsTrue(args[4]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 4, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &attribute)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[2], &value, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&value, 'C')) {
+ _PyArg_BadArgument("setxattr", "argument 'value'", "contiguous buffer", args[2]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[3]) {
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[3]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ follow_symlinks = PyObject_IsTrue(args[4]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_setxattr_impl(module, &path, &attribute, &value, flags, follow_symlinks);
exit:
@@ -7882,7 +7882,7 @@ PyDoc_STRVAR(os_removexattr__doc__,
" the link points to.");
#define OS_REMOVEXATTR_METHODDEF \
- {"removexattr", (PyCFunction)(void(*)(void))os_removexattr, METH_FASTCALL|METH_KEYWORDS, os_removexattr__doc__},
+ {"removexattr", (PyCFunction)(void(*)(void))os_removexattr, METH_FASTCALL|METH_KEYWORDS, os_removexattr__doc__},
static PyObject *
os_removexattr_impl(PyObject *module, path_t *path, path_t *attribute,
@@ -7893,31 +7893,31 @@ os_removexattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "attribute", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "removexattr", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "removexattr", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
path_t path = PATH_T_INITIALIZE("removexattr", "path", 0, 1);
path_t attribute = PATH_T_INITIALIZE("removexattr", "attribute", 0, 0);
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!path_converter(args[1], &attribute)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- follow_symlinks = PyObject_IsTrue(args[2]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!path_converter(args[1], &attribute)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ follow_symlinks = PyObject_IsTrue(args[2]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_removexattr_impl(module, &path, &attribute, follow_symlinks);
exit:
@@ -7946,7 +7946,7 @@ PyDoc_STRVAR(os_listxattr__doc__,
" the link points to.");
#define OS_LISTXATTR_METHODDEF \
- {"listxattr", (PyCFunction)(void(*)(void))os_listxattr, METH_FASTCALL|METH_KEYWORDS, os_listxattr__doc__},
+ {"listxattr", (PyCFunction)(void(*)(void))os_listxattr, METH_FASTCALL|METH_KEYWORDS, os_listxattr__doc__},
static PyObject *
os_listxattr_impl(PyObject *module, path_t *path, int follow_symlinks);
@@ -7956,36 +7956,36 @@ os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", "follow_symlinks", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "listxattr", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "listxattr", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
path_t path = PATH_T_INITIALIZE("listxattr", "path", 1, 1);
int follow_symlinks = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- follow_symlinks = PyObject_IsTrue(args[1]);
- if (follow_symlinks < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ follow_symlinks = PyObject_IsTrue(args[1]);
+ if (follow_symlinks < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = os_listxattr_impl(module, &path, follow_symlinks);
exit:
@@ -8015,140 +8015,140 @@ os_urandom(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_ssize_t size;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(arg);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- size = ival;
- }
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(arg);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ size = ival;
+ }
return_value = os_urandom_impl(module, size);
exit:
return return_value;
}
-#if defined(HAVE_MEMFD_CREATE)
-
-PyDoc_STRVAR(os_memfd_create__doc__,
-"memfd_create($module, /, name, flags=MFD_CLOEXEC)\n"
-"--\n"
-"\n");
-
-#define OS_MEMFD_CREATE_METHODDEF \
- {"memfd_create", (PyCFunction)(void(*)(void))os_memfd_create, METH_FASTCALL|METH_KEYWORDS, os_memfd_create__doc__},
-
-static PyObject *
-os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags);
-
-static PyObject *
-os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"name", "flags", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "memfd_create", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- PyObject *name = NULL;
- unsigned int flags = MFD_CLOEXEC;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!PyUnicode_FSConverter(args[0], &name)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (flags == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = os_memfd_create_impl(module, name, flags);
-
-exit:
- /* Cleanup for name */
- Py_XDECREF(name);
-
- return return_value;
-}
-
-#endif /* defined(HAVE_MEMFD_CREATE) */
-
-#if (defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL))
-
-PyDoc_STRVAR(os_get_terminal_size__doc__,
-"get_terminal_size($module, fd=<unrepresentable>, /)\n"
-"--\n"
-"\n"
-"Return the size of the terminal window as (columns, lines).\n"
-"\n"
-"The optional argument fd (default standard output) specifies\n"
-"which file descriptor should be queried.\n"
-"\n"
-"If the file descriptor is not connected to a terminal, an OSError\n"
-"is thrown.\n"
-"\n"
-"This function will only be defined if an implementation is\n"
-"available for this system.\n"
-"\n"
-"shutil.get_terminal_size is the high-level function which should\n"
-"normally be used, os.get_terminal_size is the low-level implementation.");
-
-#define OS_GET_TERMINAL_SIZE_METHODDEF \
- {"get_terminal_size", (PyCFunction)(void(*)(void))os_get_terminal_size, METH_FASTCALL, os_get_terminal_size__doc__},
-
-static PyObject *
-os_get_terminal_size_impl(PyObject *module, int fd);
-
-static PyObject *
-os_get_terminal_size(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int fd = fileno(stdout);
-
- if (!_PyArg_CheckPositional("get_terminal_size", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = os_get_terminal_size_impl(module, fd);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL)) */
-
+#if defined(HAVE_MEMFD_CREATE)
+
+PyDoc_STRVAR(os_memfd_create__doc__,
+"memfd_create($module, /, name, flags=MFD_CLOEXEC)\n"
+"--\n"
+"\n");
+
+#define OS_MEMFD_CREATE_METHODDEF \
+ {"memfd_create", (PyCFunction)(void(*)(void))os_memfd_create, METH_FASTCALL|METH_KEYWORDS, os_memfd_create__doc__},
+
+static PyObject *
+os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags);
+
+static PyObject *
+os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"name", "flags", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "memfd_create", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ PyObject *name = NULL;
+ unsigned int flags = MFD_CLOEXEC;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!PyUnicode_FSConverter(args[0], &name)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (flags == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = os_memfd_create_impl(module, name, flags);
+
+exit:
+ /* Cleanup for name */
+ Py_XDECREF(name);
+
+ return return_value;
+}
+
+#endif /* defined(HAVE_MEMFD_CREATE) */
+
+#if (defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL))
+
+PyDoc_STRVAR(os_get_terminal_size__doc__,
+"get_terminal_size($module, fd=<unrepresentable>, /)\n"
+"--\n"
+"\n"
+"Return the size of the terminal window as (columns, lines).\n"
+"\n"
+"The optional argument fd (default standard output) specifies\n"
+"which file descriptor should be queried.\n"
+"\n"
+"If the file descriptor is not connected to a terminal, an OSError\n"
+"is thrown.\n"
+"\n"
+"This function will only be defined if an implementation is\n"
+"available for this system.\n"
+"\n"
+"shutil.get_terminal_size is the high-level function which should\n"
+"normally be used, os.get_terminal_size is the low-level implementation.");
+
+#define OS_GET_TERMINAL_SIZE_METHODDEF \
+ {"get_terminal_size", (PyCFunction)(void(*)(void))os_get_terminal_size, METH_FASTCALL, os_get_terminal_size__doc__},
+
+static PyObject *
+os_get_terminal_size_impl(PyObject *module, int fd);
+
+static PyObject *
+os_get_terminal_size(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int fd = fileno(stdout);
+
+ if (!_PyArg_CheckPositional("get_terminal_size", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = os_get_terminal_size_impl(module, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL)) */
+
PyDoc_STRVAR(os_cpu_count__doc__,
"cpu_count($module, /)\n"
"--\n"
@@ -8190,15 +8190,15 @@ os_get_inheritable(PyObject *module, PyObject *arg)
int fd;
int _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = os_get_inheritable_impl(module, fd);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -8216,7 +8216,7 @@ PyDoc_STRVAR(os_set_inheritable__doc__,
"Set the inheritable flag of the specified file descriptor.");
#define OS_SET_INHERITABLE_METHODDEF \
- {"set_inheritable", (PyCFunction)(void(*)(void))os_set_inheritable, METH_FASTCALL, os_set_inheritable__doc__},
+ {"set_inheritable", (PyCFunction)(void(*)(void))os_set_inheritable, METH_FASTCALL, os_set_inheritable__doc__},
static PyObject *
os_set_inheritable_impl(PyObject *module, int fd, int inheritable);
@@ -8228,27 +8228,27 @@ os_set_inheritable(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int fd;
int inheritable;
- if (!_PyArg_CheckPositional("set_inheritable", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- inheritable = _PyLong_AsInt(args[1]);
- if (inheritable == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("set_inheritable", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ inheritable = _PyLong_AsInt(args[1]);
+ if (inheritable == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = os_set_inheritable_impl(module, fd, inheritable);
exit:
@@ -8300,7 +8300,7 @@ PyDoc_STRVAR(os_set_handle_inheritable__doc__,
"Set the inheritable flag of the specified handle.");
#define OS_SET_HANDLE_INHERITABLE_METHODDEF \
- {"set_handle_inheritable", (PyCFunction)(void(*)(void))os_set_handle_inheritable, METH_FASTCALL, os_set_handle_inheritable__doc__},
+ {"set_handle_inheritable", (PyCFunction)(void(*)(void))os_set_handle_inheritable, METH_FASTCALL, os_set_handle_inheritable__doc__},
static PyObject *
os_set_handle_inheritable_impl(PyObject *module, intptr_t handle,
@@ -8325,103 +8325,103 @@ exit:
#endif /* defined(MS_WINDOWS) */
-#if !defined(MS_WINDOWS)
-
-PyDoc_STRVAR(os_get_blocking__doc__,
-"get_blocking($module, fd, /)\n"
-"--\n"
-"\n"
-"Get the blocking mode of the file descriptor.\n"
-"\n"
-"Return False if the O_NONBLOCK flag is set, True if the flag is cleared.");
-
-#define OS_GET_BLOCKING_METHODDEF \
- {"get_blocking", (PyCFunction)os_get_blocking, METH_O, os_get_blocking__doc__},
-
-static int
-os_get_blocking_impl(PyObject *module, int fd);
-
-static PyObject *
-os_get_blocking(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int fd;
- int _return_value;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- _return_value = os_get_blocking_impl(module, fd);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyBool_FromLong((long)_return_value);
-
-exit:
- return return_value;
-}
-
-#endif /* !defined(MS_WINDOWS) */
-
-#if !defined(MS_WINDOWS)
-
-PyDoc_STRVAR(os_set_blocking__doc__,
-"set_blocking($module, fd, blocking, /)\n"
-"--\n"
-"\n"
-"Set the blocking mode of the specified file descriptor.\n"
-"\n"
-"Set the O_NONBLOCK flag if blocking is False,\n"
-"clear the O_NONBLOCK flag otherwise.");
-
-#define OS_SET_BLOCKING_METHODDEF \
- {"set_blocking", (PyCFunction)(void(*)(void))os_set_blocking, METH_FASTCALL, os_set_blocking__doc__},
-
-static PyObject *
-os_set_blocking_impl(PyObject *module, int fd, int blocking);
-
-static PyObject *
-os_set_blocking(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int fd;
- int blocking;
-
- if (!_PyArg_CheckPositional("set_blocking", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- blocking = _PyLong_AsInt(args[1]);
- if (blocking == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = os_set_blocking_impl(module, fd, blocking);
-
-exit:
- return return_value;
-}
-
-#endif /* !defined(MS_WINDOWS) */
-
+#if !defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_get_blocking__doc__,
+"get_blocking($module, fd, /)\n"
+"--\n"
+"\n"
+"Get the blocking mode of the file descriptor.\n"
+"\n"
+"Return False if the O_NONBLOCK flag is set, True if the flag is cleared.");
+
+#define OS_GET_BLOCKING_METHODDEF \
+ {"get_blocking", (PyCFunction)os_get_blocking, METH_O, os_get_blocking__doc__},
+
+static int
+os_get_blocking_impl(PyObject *module, int fd);
+
+static PyObject *
+os_get_blocking(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int _return_value;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ _return_value = os_get_blocking_impl(module, fd);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyBool_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* !defined(MS_WINDOWS) */
+
+#if !defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_set_blocking__doc__,
+"set_blocking($module, fd, blocking, /)\n"
+"--\n"
+"\n"
+"Set the blocking mode of the specified file descriptor.\n"
+"\n"
+"Set the O_NONBLOCK flag if blocking is False,\n"
+"clear the O_NONBLOCK flag otherwise.");
+
+#define OS_SET_BLOCKING_METHODDEF \
+ {"set_blocking", (PyCFunction)(void(*)(void))os_set_blocking, METH_FASTCALL, os_set_blocking__doc__},
+
+static PyObject *
+os_set_blocking_impl(PyObject *module, int fd, int blocking);
+
+static PyObject *
+os_set_blocking(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ int blocking;
+
+ if (!_PyArg_CheckPositional("set_blocking", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ blocking = _PyLong_AsInt(args[1]);
+ if (blocking == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = os_set_blocking_impl(module, fd, blocking);
+
+exit:
+ return return_value;
+}
+
+#endif /* !defined(MS_WINDOWS) */
+
PyDoc_STRVAR(os_DirEntry_is_symlink__doc__,
"is_symlink($self, /)\n"
"--\n"
@@ -8429,24 +8429,24 @@ PyDoc_STRVAR(os_DirEntry_is_symlink__doc__,
"Return True if the entry is a symbolic link; cached per entry.");
#define OS_DIRENTRY_IS_SYMLINK_METHODDEF \
- {"is_symlink", (PyCFunction)(void(*)(void))os_DirEntry_is_symlink, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_is_symlink__doc__},
+ {"is_symlink", (PyCFunction)(void(*)(void))os_DirEntry_is_symlink, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_is_symlink__doc__},
static int
-os_DirEntry_is_symlink_impl(DirEntry *self, PyTypeObject *defining_class);
+os_DirEntry_is_symlink_impl(DirEntry *self, PyTypeObject *defining_class);
static PyObject *
-os_DirEntry_is_symlink(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+os_DirEntry_is_symlink(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = { NULL};
- static _PyArg_Parser _parser = {":is_symlink", _keywords, 0};
+ static const char * const _keywords[] = { NULL};
+ static _PyArg_Parser _parser = {":is_symlink", _keywords, 0};
int _return_value;
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
- )) {
- goto exit;
- }
- _return_value = os_DirEntry_is_symlink_impl(self, defining_class);
+ if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
+ )) {
+ goto exit;
+ }
+ _return_value = os_DirEntry_is_symlink_impl(self, defining_class);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
}
@@ -8463,25 +8463,25 @@ PyDoc_STRVAR(os_DirEntry_stat__doc__,
"Return stat_result object for the entry; cached per entry.");
#define OS_DIRENTRY_STAT_METHODDEF \
- {"stat", (PyCFunction)(void(*)(void))os_DirEntry_stat, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_stat__doc__},
+ {"stat", (PyCFunction)(void(*)(void))os_DirEntry_stat, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_stat__doc__},
static PyObject *
-os_DirEntry_stat_impl(DirEntry *self, PyTypeObject *defining_class,
- int follow_symlinks);
+os_DirEntry_stat_impl(DirEntry *self, PyTypeObject *defining_class,
+ int follow_symlinks);
static PyObject *
-os_DirEntry_stat(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+os_DirEntry_stat(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"follow_symlinks", NULL};
- static _PyArg_Parser _parser = {"|$p:stat", _keywords, 0};
+ static _PyArg_Parser _parser = {"|$p:stat", _keywords, 0};
int follow_symlinks = 1;
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
- &follow_symlinks)) {
+ if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
+ &follow_symlinks)) {
goto exit;
}
- return_value = os_DirEntry_stat_impl(self, defining_class, follow_symlinks);
+ return_value = os_DirEntry_stat_impl(self, defining_class, follow_symlinks);
exit:
return return_value;
@@ -8494,26 +8494,26 @@ PyDoc_STRVAR(os_DirEntry_is_dir__doc__,
"Return True if the entry is a directory; cached per entry.");
#define OS_DIRENTRY_IS_DIR_METHODDEF \
- {"is_dir", (PyCFunction)(void(*)(void))os_DirEntry_is_dir, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_is_dir__doc__},
+ {"is_dir", (PyCFunction)(void(*)(void))os_DirEntry_is_dir, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_is_dir__doc__},
static int
-os_DirEntry_is_dir_impl(DirEntry *self, PyTypeObject *defining_class,
- int follow_symlinks);
+os_DirEntry_is_dir_impl(DirEntry *self, PyTypeObject *defining_class,
+ int follow_symlinks);
static PyObject *
-os_DirEntry_is_dir(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+os_DirEntry_is_dir(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"follow_symlinks", NULL};
- static _PyArg_Parser _parser = {"|$p:is_dir", _keywords, 0};
+ static _PyArg_Parser _parser = {"|$p:is_dir", _keywords, 0};
int follow_symlinks = 1;
int _return_value;
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
- &follow_symlinks)) {
+ if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
+ &follow_symlinks)) {
goto exit;
}
- _return_value = os_DirEntry_is_dir_impl(self, defining_class, follow_symlinks);
+ _return_value = os_DirEntry_is_dir_impl(self, defining_class, follow_symlinks);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
}
@@ -8530,26 +8530,26 @@ PyDoc_STRVAR(os_DirEntry_is_file__doc__,
"Return True if the entry is a file; cached per entry.");
#define OS_DIRENTRY_IS_FILE_METHODDEF \
- {"is_file", (PyCFunction)(void(*)(void))os_DirEntry_is_file, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_is_file__doc__},
+ {"is_file", (PyCFunction)(void(*)(void))os_DirEntry_is_file, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, os_DirEntry_is_file__doc__},
static int
-os_DirEntry_is_file_impl(DirEntry *self, PyTypeObject *defining_class,
- int follow_symlinks);
+os_DirEntry_is_file_impl(DirEntry *self, PyTypeObject *defining_class,
+ int follow_symlinks);
static PyObject *
-os_DirEntry_is_file(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+os_DirEntry_is_file(DirEntry *self, PyTypeObject *defining_class, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"follow_symlinks", NULL};
- static _PyArg_Parser _parser = {"|$p:is_file", _keywords, 0};
+ static _PyArg_Parser _parser = {"|$p:is_file", _keywords, 0};
int follow_symlinks = 1;
int _return_value;
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
- &follow_symlinks)) {
+ if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
+ &follow_symlinks)) {
goto exit;
}
- _return_value = os_DirEntry_is_file_impl(self, defining_class, follow_symlinks);
+ _return_value = os_DirEntry_is_file_impl(self, defining_class, follow_symlinks);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
}
@@ -8608,7 +8608,7 @@ PyDoc_STRVAR(os_scandir__doc__,
"If path is None, uses the path=\'.\'.");
#define OS_SCANDIR_METHODDEF \
- {"scandir", (PyCFunction)(void(*)(void))os_scandir, METH_FASTCALL|METH_KEYWORDS, os_scandir__doc__},
+ {"scandir", (PyCFunction)(void(*)(void))os_scandir, METH_FASTCALL|METH_KEYWORDS, os_scandir__doc__},
static PyObject *
os_scandir_impl(PyObject *module, path_t *path);
@@ -8618,22 +8618,22 @@ os_scandir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "scandir", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "scandir", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
path_t path = PATH_T_INITIALIZE("scandir", "path", 1, PATH_HAVE_FDOPENDIR);
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = os_scandir_impl(module, &path);
exit:
@@ -8654,7 +8654,7 @@ PyDoc_STRVAR(os_fspath__doc__,
"types raise a TypeError.");
#define OS_FSPATH_METHODDEF \
- {"fspath", (PyCFunction)(void(*)(void))os_fspath, METH_FASTCALL|METH_KEYWORDS, os_fspath__doc__},
+ {"fspath", (PyCFunction)(void(*)(void))os_fspath, METH_FASTCALL|METH_KEYWORDS, os_fspath__doc__},
static PyObject *
os_fspath_impl(PyObject *module, PyObject *path);
@@ -8664,15 +8664,15 @@ os_fspath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fspath", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "fspath", 0};
+ PyObject *argsbuf[1];
PyObject *path;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- path = args[0];
+ path = args[0];
return_value = os_fspath_impl(module, path);
exit:
@@ -8688,7 +8688,7 @@ PyDoc_STRVAR(os_getrandom__doc__,
"Obtain a series of random bytes.");
#define OS_GETRANDOM_METHODDEF \
- {"getrandom", (PyCFunction)(void(*)(void))os_getrandom, METH_FASTCALL|METH_KEYWORDS, os_getrandom__doc__},
+ {"getrandom", (PyCFunction)(void(*)(void))os_getrandom, METH_FASTCALL|METH_KEYWORDS, os_getrandom__doc__},
static PyObject *
os_getrandom_impl(PyObject *module, Py_ssize_t size, int flags);
@@ -8698,46 +8698,46 @@ os_getrandom(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"size", "flags", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "getrandom", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "getrandom", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_ssize_t size;
int flags = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- size = ival;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[1]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ size = ival;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[1]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = os_getrandom_impl(module, size, flags);
exit:
@@ -8746,142 +8746,142 @@ exit:
#endif /* defined(HAVE_GETRANDOM_SYSCALL) */
-#if defined(MS_WINDOWS)
-
-PyDoc_STRVAR(os__add_dll_directory__doc__,
-"_add_dll_directory($module, /, path)\n"
-"--\n"
-"\n"
-"Add a path to the DLL search path.\n"
-"\n"
-"This search path is used when resolving dependencies for imported\n"
-"extension modules (the module itself is resolved through sys.path),\n"
-"and also by ctypes.\n"
-"\n"
-"Returns an opaque value that may be passed to os.remove_dll_directory\n"
-"to remove this directory from the search path.");
-
-#define OS__ADD_DLL_DIRECTORY_METHODDEF \
- {"_add_dll_directory", (PyCFunction)(void(*)(void))os__add_dll_directory, METH_FASTCALL|METH_KEYWORDS, os__add_dll_directory__doc__},
-
-static PyObject *
-os__add_dll_directory_impl(PyObject *module, path_t *path);
-
-static PyObject *
-os__add_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"path", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_add_dll_directory", 0};
- PyObject *argsbuf[1];
- path_t path = PATH_T_INITIALIZE("_add_dll_directory", "path", 0, 0);
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!path_converter(args[0], &path)) {
- goto exit;
- }
- return_value = os__add_dll_directory_impl(module, &path);
-
-exit:
- /* Cleanup for path */
- path_cleanup(&path);
-
- return return_value;
-}
-
-#endif /* defined(MS_WINDOWS) */
-
-#if defined(MS_WINDOWS)
-
-PyDoc_STRVAR(os__remove_dll_directory__doc__,
-"_remove_dll_directory($module, /, cookie)\n"
-"--\n"
-"\n"
-"Removes a path from the DLL search path.\n"
-"\n"
-"The parameter is an opaque value that was returned from\n"
-"os.add_dll_directory. You can only remove directories that you added\n"
-"yourself.");
-
-#define OS__REMOVE_DLL_DIRECTORY_METHODDEF \
- {"_remove_dll_directory", (PyCFunction)(void(*)(void))os__remove_dll_directory, METH_FASTCALL|METH_KEYWORDS, os__remove_dll_directory__doc__},
-
-static PyObject *
-os__remove_dll_directory_impl(PyObject *module, PyObject *cookie);
-
-static PyObject *
-os__remove_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"cookie", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "_remove_dll_directory", 0};
- PyObject *argsbuf[1];
- PyObject *cookie;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- cookie = args[0];
- return_value = os__remove_dll_directory_impl(module, cookie);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(MS_WINDOWS) */
-
-#if (defined(WIFEXITED) || defined(MS_WINDOWS))
-
-PyDoc_STRVAR(os_waitstatus_to_exitcode__doc__,
-"waitstatus_to_exitcode($module, /, status)\n"
-"--\n"
-"\n"
-"Convert a wait status to an exit code.\n"
-"\n"
-"On Unix:\n"
-"\n"
-"* If WIFEXITED(status) is true, return WEXITSTATUS(status).\n"
-"* If WIFSIGNALED(status) is true, return -WTERMSIG(status).\n"
-"* Otherwise, raise a ValueError.\n"
-"\n"
-"On Windows, return status shifted right by 8 bits.\n"
-"\n"
-"On Unix, if the process is being traced or if waitpid() was called with\n"
-"WUNTRACED option, the caller must first check if WIFSTOPPED(status) is true.\n"
-"This function must not be called if WIFSTOPPED(status) is true.");
-
-#define OS_WAITSTATUS_TO_EXITCODE_METHODDEF \
- {"waitstatus_to_exitcode", (PyCFunction)(void(*)(void))os_waitstatus_to_exitcode, METH_FASTCALL|METH_KEYWORDS, os_waitstatus_to_exitcode__doc__},
-
-static PyObject *
-os_waitstatus_to_exitcode_impl(PyObject *module, PyObject *status_obj);
-
-static PyObject *
-os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"status", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "waitstatus_to_exitcode", 0};
- PyObject *argsbuf[1];
- PyObject *status_obj;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- status_obj = args[0];
- return_value = os_waitstatus_to_exitcode_impl(module, status_obj);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(WIFEXITED) || defined(MS_WINDOWS)) */
-
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__add_dll_directory__doc__,
+"_add_dll_directory($module, /, path)\n"
+"--\n"
+"\n"
+"Add a path to the DLL search path.\n"
+"\n"
+"This search path is used when resolving dependencies for imported\n"
+"extension modules (the module itself is resolved through sys.path),\n"
+"and also by ctypes.\n"
+"\n"
+"Returns an opaque value that may be passed to os.remove_dll_directory\n"
+"to remove this directory from the search path.");
+
+#define OS__ADD_DLL_DIRECTORY_METHODDEF \
+ {"_add_dll_directory", (PyCFunction)(void(*)(void))os__add_dll_directory, METH_FASTCALL|METH_KEYWORDS, os__add_dll_directory__doc__},
+
+static PyObject *
+os__add_dll_directory_impl(PyObject *module, path_t *path);
+
+static PyObject *
+os__add_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"path", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "_add_dll_directory", 0};
+ PyObject *argsbuf[1];
+ path_t path = PATH_T_INITIALIZE("_add_dll_directory", "path", 0, 0);
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!path_converter(args[0], &path)) {
+ goto exit;
+ }
+ return_value = os__add_dll_directory_impl(module, &path);
+
+exit:
+ /* Cleanup for path */
+ path_cleanup(&path);
+
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os__remove_dll_directory__doc__,
+"_remove_dll_directory($module, /, cookie)\n"
+"--\n"
+"\n"
+"Removes a path from the DLL search path.\n"
+"\n"
+"The parameter is an opaque value that was returned from\n"
+"os.add_dll_directory. You can only remove directories that you added\n"
+"yourself.");
+
+#define OS__REMOVE_DLL_DIRECTORY_METHODDEF \
+ {"_remove_dll_directory", (PyCFunction)(void(*)(void))os__remove_dll_directory, METH_FASTCALL|METH_KEYWORDS, os__remove_dll_directory__doc__},
+
+static PyObject *
+os__remove_dll_directory_impl(PyObject *module, PyObject *cookie);
+
+static PyObject *
+os__remove_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"cookie", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "_remove_dll_directory", 0};
+ PyObject *argsbuf[1];
+ PyObject *cookie;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ cookie = args[0];
+ return_value = os__remove_dll_directory_impl(module, cookie);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if (defined(WIFEXITED) || defined(MS_WINDOWS))
+
+PyDoc_STRVAR(os_waitstatus_to_exitcode__doc__,
+"waitstatus_to_exitcode($module, /, status)\n"
+"--\n"
+"\n"
+"Convert a wait status to an exit code.\n"
+"\n"
+"On Unix:\n"
+"\n"
+"* If WIFEXITED(status) is true, return WEXITSTATUS(status).\n"
+"* If WIFSIGNALED(status) is true, return -WTERMSIG(status).\n"
+"* Otherwise, raise a ValueError.\n"
+"\n"
+"On Windows, return status shifted right by 8 bits.\n"
+"\n"
+"On Unix, if the process is being traced or if waitpid() was called with\n"
+"WUNTRACED option, the caller must first check if WIFSTOPPED(status) is true.\n"
+"This function must not be called if WIFSTOPPED(status) is true.");
+
+#define OS_WAITSTATUS_TO_EXITCODE_METHODDEF \
+ {"waitstatus_to_exitcode", (PyCFunction)(void(*)(void))os_waitstatus_to_exitcode, METH_FASTCALL|METH_KEYWORDS, os_waitstatus_to_exitcode__doc__},
+
+static PyObject *
+os_waitstatus_to_exitcode_impl(PyObject *module, PyObject *status_obj);
+
+static PyObject *
+os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"status", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "waitstatus_to_exitcode", 0};
+ PyObject *argsbuf[1];
+ PyObject *status_obj;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ status_obj = args[0];
+ return_value = os_waitstatus_to_exitcode_impl(module, status_obj);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(WIFEXITED) || defined(MS_WINDOWS)) */
+
#ifndef OS_TTYNAME_METHODDEF
#define OS_TTYNAME_METHODDEF
#endif /* !defined(OS_TTYNAME_METHODDEF) */
@@ -8954,10 +8954,10 @@ exit:
#define OS__GETVOLUMEPATHNAME_METHODDEF
#endif /* !defined(OS__GETVOLUMEPATHNAME_METHODDEF) */
-#ifndef OS__PATH_SPLITROOT_METHODDEF
- #define OS__PATH_SPLITROOT_METHODDEF
-#endif /* !defined(OS__PATH_SPLITROOT_METHODDEF) */
-
+#ifndef OS__PATH_SPLITROOT_METHODDEF
+ #define OS__PATH_SPLITROOT_METHODDEF
+#endif /* !defined(OS__PATH_SPLITROOT_METHODDEF) */
+
#ifndef OS_NICE_METHODDEF
#define OS_NICE_METHODDEF
#endif /* !defined(OS_NICE_METHODDEF) */
@@ -8986,14 +8986,14 @@ exit:
#define OS_EXECVE_METHODDEF
#endif /* !defined(OS_EXECVE_METHODDEF) */
-#ifndef OS_POSIX_SPAWN_METHODDEF
- #define OS_POSIX_SPAWN_METHODDEF
-#endif /* !defined(OS_POSIX_SPAWN_METHODDEF) */
-
-#ifndef OS_POSIX_SPAWNP_METHODDEF
- #define OS_POSIX_SPAWNP_METHODDEF
-#endif /* !defined(OS_POSIX_SPAWNP_METHODDEF) */
-
+#ifndef OS_POSIX_SPAWN_METHODDEF
+ #define OS_POSIX_SPAWN_METHODDEF
+#endif /* !defined(OS_POSIX_SPAWN_METHODDEF) */
+
+#ifndef OS_POSIX_SPAWNP_METHODDEF
+ #define OS_POSIX_SPAWNP_METHODDEF
+#endif /* !defined(OS_POSIX_SPAWNP_METHODDEF) */
+
#ifndef OS_SPAWNV_METHODDEF
#define OS_SPAWNV_METHODDEF
#endif /* !defined(OS_SPAWNV_METHODDEF) */
@@ -9078,18 +9078,18 @@ exit:
#define OS_GETPID_METHODDEF
#endif /* !defined(OS_GETPID_METHODDEF) */
-#ifndef OS_GETGROUPLIST_METHODDEF
- #define OS_GETGROUPLIST_METHODDEF
-#endif /* !defined(OS_GETGROUPLIST_METHODDEF) */
-
+#ifndef OS_GETGROUPLIST_METHODDEF
+ #define OS_GETGROUPLIST_METHODDEF
+#endif /* !defined(OS_GETGROUPLIST_METHODDEF) */
+
#ifndef OS_GETGROUPS_METHODDEF
#define OS_GETGROUPS_METHODDEF
#endif /* !defined(OS_GETGROUPS_METHODDEF) */
-#ifndef OS_INITGROUPS_METHODDEF
- #define OS_INITGROUPS_METHODDEF
-#endif /* !defined(OS_INITGROUPS_METHODDEF) */
-
+#ifndef OS_INITGROUPS_METHODDEF
+ #define OS_INITGROUPS_METHODDEF
+#endif /* !defined(OS_INITGROUPS_METHODDEF) */
+
#ifndef OS_GETPGID_METHODDEF
#define OS_GETPGID_METHODDEF
#endif /* !defined(OS_GETPGID_METHODDEF) */
@@ -9174,14 +9174,14 @@ exit:
#define OS_WAIT_METHODDEF
#endif /* !defined(OS_WAIT_METHODDEF) */
-#ifndef OS_PIDFD_OPEN_METHODDEF
- #define OS_PIDFD_OPEN_METHODDEF
-#endif /* !defined(OS_PIDFD_OPEN_METHODDEF) */
-
-#ifndef OS_READLINK_METHODDEF
- #define OS_READLINK_METHODDEF
-#endif /* !defined(OS_READLINK_METHODDEF) */
-
+#ifndef OS_PIDFD_OPEN_METHODDEF
+ #define OS_PIDFD_OPEN_METHODDEF
+#endif /* !defined(OS_PIDFD_OPEN_METHODDEF) */
+
+#ifndef OS_READLINK_METHODDEF
+ #define OS_READLINK_METHODDEF
+#endif /* !defined(OS_READLINK_METHODDEF) */
+
#ifndef OS_SYMLINK_METHODDEF
#define OS_SYMLINK_METHODDEF
#endif /* !defined(OS_SYMLINK_METHODDEF) */
@@ -9226,14 +9226,14 @@ exit:
#define OS_PREADV_METHODDEF
#endif /* !defined(OS_PREADV_METHODDEF) */
-#ifndef OS_SENDFILE_METHODDEF
- #define OS_SENDFILE_METHODDEF
-#endif /* !defined(OS_SENDFILE_METHODDEF) */
-
-#ifndef OS__FCOPYFILE_METHODDEF
- #define OS__FCOPYFILE_METHODDEF
-#endif /* !defined(OS__FCOPYFILE_METHODDEF) */
-
+#ifndef OS_SENDFILE_METHODDEF
+ #define OS_SENDFILE_METHODDEF
+#endif /* !defined(OS_SENDFILE_METHODDEF) */
+
+#ifndef OS__FCOPYFILE_METHODDEF
+ #define OS__FCOPYFILE_METHODDEF
+#endif /* !defined(OS__FCOPYFILE_METHODDEF) */
+
#ifndef OS_PIPE_METHODDEF
#define OS_PIPE_METHODDEF
#endif /* !defined(OS_PIPE_METHODDEF) */
@@ -9254,10 +9254,10 @@ exit:
#define OS_PWRITEV_METHODDEF
#endif /* !defined(OS_PWRITEV_METHODDEF) */
-#ifndef OS_COPY_FILE_RANGE_METHODDEF
- #define OS_COPY_FILE_RANGE_METHODDEF
-#endif /* !defined(OS_COPY_FILE_RANGE_METHODDEF) */
-
+#ifndef OS_COPY_FILE_RANGE_METHODDEF
+ #define OS_COPY_FILE_RANGE_METHODDEF
+#endif /* !defined(OS_COPY_FILE_RANGE_METHODDEF) */
+
#ifndef OS_MKFIFO_METHODDEF
#define OS_MKFIFO_METHODDEF
#endif /* !defined(OS_MKFIFO_METHODDEF) */
@@ -9402,14 +9402,14 @@ exit:
#define OS_LISTXATTR_METHODDEF
#endif /* !defined(OS_LISTXATTR_METHODDEF) */
-#ifndef OS_MEMFD_CREATE_METHODDEF
- #define OS_MEMFD_CREATE_METHODDEF
-#endif /* !defined(OS_MEMFD_CREATE_METHODDEF) */
-
-#ifndef OS_GET_TERMINAL_SIZE_METHODDEF
- #define OS_GET_TERMINAL_SIZE_METHODDEF
-#endif /* !defined(OS_GET_TERMINAL_SIZE_METHODDEF) */
-
+#ifndef OS_MEMFD_CREATE_METHODDEF
+ #define OS_MEMFD_CREATE_METHODDEF
+#endif /* !defined(OS_MEMFD_CREATE_METHODDEF) */
+
+#ifndef OS_GET_TERMINAL_SIZE_METHODDEF
+ #define OS_GET_TERMINAL_SIZE_METHODDEF
+#endif /* !defined(OS_GET_TERMINAL_SIZE_METHODDEF) */
+
#ifndef OS_GET_HANDLE_INHERITABLE_METHODDEF
#define OS_GET_HANDLE_INHERITABLE_METHODDEF
#endif /* !defined(OS_GET_HANDLE_INHERITABLE_METHODDEF) */
@@ -9418,27 +9418,27 @@ exit:
#define OS_SET_HANDLE_INHERITABLE_METHODDEF
#endif /* !defined(OS_SET_HANDLE_INHERITABLE_METHODDEF) */
-#ifndef OS_GET_BLOCKING_METHODDEF
- #define OS_GET_BLOCKING_METHODDEF
-#endif /* !defined(OS_GET_BLOCKING_METHODDEF) */
-
-#ifndef OS_SET_BLOCKING_METHODDEF
- #define OS_SET_BLOCKING_METHODDEF
-#endif /* !defined(OS_SET_BLOCKING_METHODDEF) */
-
+#ifndef OS_GET_BLOCKING_METHODDEF
+ #define OS_GET_BLOCKING_METHODDEF
+#endif /* !defined(OS_GET_BLOCKING_METHODDEF) */
+
+#ifndef OS_SET_BLOCKING_METHODDEF
+ #define OS_SET_BLOCKING_METHODDEF
+#endif /* !defined(OS_SET_BLOCKING_METHODDEF) */
+
#ifndef OS_GETRANDOM_METHODDEF
#define OS_GETRANDOM_METHODDEF
#endif /* !defined(OS_GETRANDOM_METHODDEF) */
-
-#ifndef OS__ADD_DLL_DIRECTORY_METHODDEF
- #define OS__ADD_DLL_DIRECTORY_METHODDEF
-#endif /* !defined(OS__ADD_DLL_DIRECTORY_METHODDEF) */
-
-#ifndef OS__REMOVE_DLL_DIRECTORY_METHODDEF
- #define OS__REMOVE_DLL_DIRECTORY_METHODDEF
-#endif /* !defined(OS__REMOVE_DLL_DIRECTORY_METHODDEF) */
-
-#ifndef OS_WAITSTATUS_TO_EXITCODE_METHODDEF
- #define OS_WAITSTATUS_TO_EXITCODE_METHODDEF
-#endif /* !defined(OS_WAITSTATUS_TO_EXITCODE_METHODDEF) */
-/*[clinic end generated code: output=c7c8796918b09139 input=a9049054013a1b77]*/
+
+#ifndef OS__ADD_DLL_DIRECTORY_METHODDEF
+ #define OS__ADD_DLL_DIRECTORY_METHODDEF
+#endif /* !defined(OS__ADD_DLL_DIRECTORY_METHODDEF) */
+
+#ifndef OS__REMOVE_DLL_DIRECTORY_METHODDEF
+ #define OS__REMOVE_DLL_DIRECTORY_METHODDEF
+#endif /* !defined(OS__REMOVE_DLL_DIRECTORY_METHODDEF) */
+
+#ifndef OS_WAITSTATUS_TO_EXITCODE_METHODDEF
+ #define OS_WAITSTATUS_TO_EXITCODE_METHODDEF
+#endif /* !defined(OS_WAITSTATUS_TO_EXITCODE_METHODDEF) */
+/*[clinic end generated code: output=c7c8796918b09139 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/pwdmodule.c.h b/contrib/tools/python3/src/Modules/clinic/pwdmodule.c.h
index 0d9c4dbd99..cb83062495 100644
--- a/contrib/tools/python3/src/Modules/clinic/pwdmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/pwdmodule.c.h
@@ -14,7 +14,7 @@ PyDoc_STRVAR(pwd_getpwuid__doc__,
{"getpwuid", (PyCFunction)pwd_getpwuid, METH_O, pwd_getpwuid__doc__},
PyDoc_STRVAR(pwd_getpwnam__doc__,
-"getpwnam($module, name, /)\n"
+"getpwnam($module, name, /)\n"
"--\n"
"\n"
"Return the password database entry for the given user name.\n"
@@ -25,23 +25,23 @@ PyDoc_STRVAR(pwd_getpwnam__doc__,
{"getpwnam", (PyCFunction)pwd_getpwnam, METH_O, pwd_getpwnam__doc__},
static PyObject *
-pwd_getpwnam_impl(PyObject *module, PyObject *name);
+pwd_getpwnam_impl(PyObject *module, PyObject *name);
static PyObject *
-pwd_getpwnam(PyObject *module, PyObject *arg)
+pwd_getpwnam(PyObject *module, PyObject *arg)
{
PyObject *return_value = NULL;
- PyObject *name;
+ PyObject *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("getpwnam", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("getpwnam", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
- return_value = pwd_getpwnam_impl(module, name);
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ name = arg;
+ return_value = pwd_getpwnam_impl(module, name);
exit:
return return_value;
@@ -74,4 +74,4 @@ pwd_getpwall(PyObject *module, PyObject *Py_UNUSED(ignored))
#ifndef PWD_GETPWALL_METHODDEF
#define PWD_GETPWALL_METHODDEF
#endif /* !defined(PWD_GETPWALL_METHODDEF) */
-/*[clinic end generated code: output=7fceab7f1a85da36 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7fceab7f1a85da36 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/pyexpat.c.h b/contrib/tools/python3/src/Modules/clinic/pyexpat.c.h
index 6df048f2ff..ee5907ca7e 100644
--- a/contrib/tools/python3/src/Modules/clinic/pyexpat.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/pyexpat.c.h
@@ -11,7 +11,7 @@ PyDoc_STRVAR(pyexpat_xmlparser_Parse__doc__,
"`isfinal\' should be true at end of input.");
#define PYEXPAT_XMLPARSER_PARSE_METHODDEF \
- {"Parse", (PyCFunction)(void(*)(void))pyexpat_xmlparser_Parse, METH_FASTCALL, pyexpat_xmlparser_Parse__doc__},
+ {"Parse", (PyCFunction)(void(*)(void))pyexpat_xmlparser_Parse, METH_FASTCALL, pyexpat_xmlparser_Parse__doc__},
static PyObject *
pyexpat_xmlparser_Parse_impl(xmlparseobject *self, PyObject *data,
@@ -24,23 +24,23 @@ pyexpat_xmlparser_Parse(xmlparseobject *self, PyObject *const *args, Py_ssize_t
PyObject *data;
int isfinal = 0;
- if (!_PyArg_CheckPositional("Parse", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("Parse", nargs, 1, 2)) {
goto exit;
}
- data = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- isfinal = _PyLong_AsInt(args[1]);
- if (isfinal == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ data = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ isfinal = _PyLong_AsInt(args[1]);
+ if (isfinal == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = pyexpat_xmlparser_Parse_impl(self, data, isfinal);
exit:
@@ -74,19 +74,19 @@ pyexpat_xmlparser_SetBase(xmlparseobject *self, PyObject *arg)
PyObject *return_value = NULL;
const char *base;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("SetBase", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("SetBase", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t base_length;
+ base = PyUnicode_AsUTF8AndSize(arg, &base_length);
+ if (base == NULL) {
+ goto exit;
+ }
+ if (strlen(base) != (size_t)base_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t base_length;
- base = PyUnicode_AsUTF8AndSize(arg, &base_length);
- if (base == NULL) {
- goto exit;
- }
- if (strlen(base) != (size_t)base_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = pyexpat_xmlparser_SetBase_impl(self, base);
exit:
@@ -133,14 +133,14 @@ pyexpat_xmlparser_GetInputContext(xmlparseobject *self, PyObject *Py_UNUSED(igno
}
PyDoc_STRVAR(pyexpat_xmlparser_ExternalEntityParserCreate__doc__,
-"ExternalEntityParserCreate($self, context, encoding=<unrepresentable>,\n"
-" /)\n"
+"ExternalEntityParserCreate($self, context, encoding=<unrepresentable>,\n"
+" /)\n"
"--\n"
"\n"
"Create a parser for parsing an external entity based on the information passed to the ExternalEntityRefHandler.");
#define PYEXPAT_XMLPARSER_EXTERNALENTITYPARSERCREATE_METHODDEF \
- {"ExternalEntityParserCreate", (PyCFunction)(void(*)(void))pyexpat_xmlparser_ExternalEntityParserCreate, METH_FASTCALL, pyexpat_xmlparser_ExternalEntityParserCreate__doc__},
+ {"ExternalEntityParserCreate", (PyCFunction)(void(*)(void))pyexpat_xmlparser_ExternalEntityParserCreate, METH_FASTCALL, pyexpat_xmlparser_ExternalEntityParserCreate__doc__},
static PyObject *
pyexpat_xmlparser_ExternalEntityParserCreate_impl(xmlparseobject *self,
@@ -154,44 +154,44 @@ pyexpat_xmlparser_ExternalEntityParserCreate(xmlparseobject *self, PyObject *con
const char *context;
const char *encoding = NULL;
- if (!_PyArg_CheckPositional("ExternalEntityParserCreate", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("ExternalEntityParserCreate", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (args[0] == Py_None) {
+ context = NULL;
+ }
+ else if (PyUnicode_Check(args[0])) {
+ Py_ssize_t context_length;
+ context = PyUnicode_AsUTF8AndSize(args[0], &context_length);
+ if (context == NULL) {
+ goto exit;
+ }
+ if (strlen(context) != (size_t)context_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("ExternalEntityParserCreate", "argument 1", "str or None", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("ExternalEntityParserCreate", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[1], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- if (args[0] == Py_None) {
- context = NULL;
- }
- else if (PyUnicode_Check(args[0])) {
- Py_ssize_t context_length;
- context = PyUnicode_AsUTF8AndSize(args[0], &context_length);
- if (context == NULL) {
- goto exit;
- }
- if (strlen(context) != (size_t)context_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("ExternalEntityParserCreate", "argument 1", "str or None", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("ExternalEntityParserCreate", "argument 2", "str", args[1]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[1], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = pyexpat_xmlparser_ExternalEntityParserCreate_impl(self, context, encoding);
exit:
@@ -221,15 +221,15 @@ pyexpat_xmlparser_SetParamEntityParsing(xmlparseobject *self, PyObject *arg)
PyObject *return_value = NULL;
int flag;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(arg);
+ if (flag == -1 && PyErr_Occurred()) {
goto exit;
}
- flag = _PyLong_AsInt(arg);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = pyexpat_xmlparser_SetParamEntityParsing_impl(self, flag);
exit:
@@ -249,7 +249,7 @@ PyDoc_STRVAR(pyexpat_xmlparser_UseForeignDTD__doc__,
"information to the parser. \'flag\' defaults to True if not provided.");
#define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF \
- {"UseForeignDTD", (PyCFunction)(void(*)(void))pyexpat_xmlparser_UseForeignDTD, METH_FASTCALL, pyexpat_xmlparser_UseForeignDTD__doc__},
+ {"UseForeignDTD", (PyCFunction)(void(*)(void))pyexpat_xmlparser_UseForeignDTD, METH_FASTCALL, pyexpat_xmlparser_UseForeignDTD__doc__},
static PyObject *
pyexpat_xmlparser_UseForeignDTD_impl(xmlparseobject *self, int flag);
@@ -260,17 +260,17 @@ pyexpat_xmlparser_UseForeignDTD(xmlparseobject *self, PyObject *const *args, Py_
PyObject *return_value = NULL;
int flag = 1;
- if (!_PyArg_CheckPositional("UseForeignDTD", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("UseForeignDTD", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- flag = PyObject_IsTrue(args[0]);
- if (flag < 0) {
- goto exit;
- }
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ flag = PyObject_IsTrue(args[0]);
+ if (flag < 0) {
+ goto exit;
+ }
+skip_optional:
return_value = pyexpat_xmlparser_UseForeignDTD_impl(self, flag);
exit:
@@ -281,13 +281,13 @@ exit:
PyDoc_STRVAR(pyexpat_ParserCreate__doc__,
"ParserCreate($module, /, encoding=None, namespace_separator=None,\n"
-" intern=<unrepresentable>)\n"
+" intern=<unrepresentable>)\n"
"--\n"
"\n"
"Return a new XML parser object.");
#define PYEXPAT_PARSERCREATE_METHODDEF \
- {"ParserCreate", (PyCFunction)(void(*)(void))pyexpat_ParserCreate, METH_FASTCALL|METH_KEYWORDS, pyexpat_ParserCreate__doc__},
+ {"ParserCreate", (PyCFunction)(void(*)(void))pyexpat_ParserCreate, METH_FASTCALL|METH_KEYWORDS, pyexpat_ParserCreate__doc__},
static PyObject *
pyexpat_ParserCreate_impl(PyObject *module, const char *encoding,
@@ -298,68 +298,68 @@ pyexpat_ParserCreate(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"encoding", "namespace_separator", "intern", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "ParserCreate", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "ParserCreate", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
const char *encoding = NULL;
const char *namespace_separator = NULL;
PyObject *intern = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (args[0] == Py_None) {
- encoding = NULL;
- }
- else if (PyUnicode_Check(args[0])) {
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("ParserCreate", "argument 'encoding'", "str or None", args[0]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[1]) {
- if (args[1] == Py_None) {
- namespace_separator = NULL;
- }
- else if (PyUnicode_Check(args[1])) {
- Py_ssize_t namespace_separator_length;
- namespace_separator = PyUnicode_AsUTF8AndSize(args[1], &namespace_separator_length);
- if (namespace_separator == NULL) {
- goto exit;
- }
- if (strlen(namespace_separator) != (size_t)namespace_separator_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- }
- else {
- _PyArg_BadArgument("ParserCreate", "argument 'namespace_separator'", "str or None", args[1]);
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- intern = args[2];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (args[0] == Py_None) {
+ encoding = NULL;
+ }
+ else if (PyUnicode_Check(args[0])) {
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("ParserCreate", "argument 'encoding'", "str or None", args[0]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[1]) {
+ if (args[1] == Py_None) {
+ namespace_separator = NULL;
+ }
+ else if (PyUnicode_Check(args[1])) {
+ Py_ssize_t namespace_separator_length;
+ namespace_separator = PyUnicode_AsUTF8AndSize(args[1], &namespace_separator_length);
+ if (namespace_separator == NULL) {
+ goto exit;
+ }
+ if (strlen(namespace_separator) != (size_t)namespace_separator_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ }
+ else {
+ _PyArg_BadArgument("ParserCreate", "argument 'namespace_separator'", "str or None", args[1]);
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ intern = args[2];
+skip_optional_pos:
return_value = pyexpat_ParserCreate_impl(module, encoding, namespace_separator, intern);
exit:
@@ -384,15 +384,15 @@ pyexpat_ErrorString(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
long code;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ code = PyLong_AsLong(arg);
+ if (code == -1 && PyErr_Occurred()) {
goto exit;
}
- code = PyLong_AsLong(arg);
- if (code == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = pyexpat_ErrorString_impl(module, code);
exit:
@@ -402,4 +402,4 @@ exit:
#ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
#define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
#endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */
-/*[clinic end generated code: output=68ce25024280af41 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=68ce25024280af41 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/resource.c.h b/contrib/tools/python3/src/Modules/clinic/resource.c.h
index 410b82d1a4..80efb714bb 100644
--- a/contrib/tools/python3/src/Modules/clinic/resource.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/resource.c.h
@@ -19,15 +19,15 @@ resource_getrusage(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int who;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ who = _PyLong_AsInt(arg);
+ if (who == -1 && PyErr_Occurred()) {
goto exit;
}
- who = _PyLong_AsInt(arg);
- if (who == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = resource_getrusage_impl(module, who);
exit:
@@ -51,15 +51,15 @@ resource_getrlimit(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int resource;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ resource = _PyLong_AsInt(arg);
+ if (resource == -1 && PyErr_Occurred()) {
goto exit;
}
- resource = _PyLong_AsInt(arg);
- if (resource == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = resource_getrlimit_impl(module, resource);
exit:
@@ -72,7 +72,7 @@ PyDoc_STRVAR(resource_setrlimit__doc__,
"\n");
#define RESOURCE_SETRLIMIT_METHODDEF \
- {"setrlimit", (PyCFunction)(void(*)(void))resource_setrlimit, METH_FASTCALL, resource_setrlimit__doc__},
+ {"setrlimit", (PyCFunction)(void(*)(void))resource_setrlimit, METH_FASTCALL, resource_setrlimit__doc__},
static PyObject *
resource_setrlimit_impl(PyObject *module, int resource, PyObject *limits);
@@ -84,19 +84,19 @@ resource_setrlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int resource;
PyObject *limits;
- if (!_PyArg_CheckPositional("setrlimit", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("setrlimit", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ resource = _PyLong_AsInt(args[0]);
+ if (resource == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- resource = _PyLong_AsInt(args[0]);
- if (resource == -1 && PyErr_Occurred()) {
- goto exit;
- }
- limits = args[1];
+ limits = args[1];
return_value = resource_setrlimit_impl(module, resource, limits);
exit:
@@ -178,4 +178,4 @@ exit:
#ifndef RESOURCE_PRLIMIT_METHODDEF
#define RESOURCE_PRLIMIT_METHODDEF
#endif /* !defined(RESOURCE_PRLIMIT_METHODDEF) */
-/*[clinic end generated code: output=ef3034f291156a34 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ef3034f291156a34 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/selectmodule.c.h b/contrib/tools/python3/src/Modules/clinic/selectmodule.c.h
index cf97a5c7eb..c1072e6ef9 100644
--- a/contrib/tools/python3/src/Modules/clinic/selectmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/selectmodule.c.h
@@ -1,1222 +1,1222 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(select_select__doc__,
-"select($module, rlist, wlist, xlist, timeout=None, /)\n"
-"--\n"
-"\n"
-"Wait until one or more file descriptors are ready for some kind of I/O.\n"
-"\n"
-"The first three arguments are iterables of file descriptors to be waited for:\n"
-"rlist -- wait until ready for reading\n"
-"wlist -- wait until ready for writing\n"
-"xlist -- wait for an \"exceptional condition\"\n"
-"If only one kind of condition is required, pass [] for the other lists.\n"
-"\n"
-"A file descriptor is either a socket or file object, or a small integer\n"
-"gotten from a fileno() method call on one of those.\n"
-"\n"
-"The optional 4th argument specifies a timeout in seconds; it may be\n"
-"a floating point number to specify fractions of seconds. If it is absent\n"
-"or None, the call will never time out.\n"
-"\n"
-"The return value is a tuple of three lists corresponding to the first three\n"
-"arguments; each contains the subset of the corresponding file descriptors\n"
-"that are ready.\n"
-"\n"
-"*** IMPORTANT NOTICE ***\n"
-"On Windows, only sockets are supported; on Unix, all file\n"
-"descriptors can be used.");
-
-#define SELECT_SELECT_METHODDEF \
- {"select", (PyCFunction)(void(*)(void))select_select, METH_FASTCALL, select_select__doc__},
-
-static PyObject *
-select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
- PyObject *xlist, PyObject *timeout_obj);
-
-static PyObject *
-select_select(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *rlist;
- PyObject *wlist;
- PyObject *xlist;
- PyObject *timeout_obj = Py_None;
-
- if (!_PyArg_CheckPositional("select", nargs, 3, 4)) {
- goto exit;
- }
- rlist = args[0];
- wlist = args[1];
- xlist = args[2];
- if (nargs < 4) {
- goto skip_optional;
- }
- timeout_obj = args[3];
-skip_optional:
- return_value = select_select_impl(module, rlist, wlist, xlist, timeout_obj);
-
-exit:
- return return_value;
-}
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
-
-PyDoc_STRVAR(select_poll_register__doc__,
-"register($self, fd,\n"
-" eventmask=select.POLLIN | select.POLLPRI | select.POLLOUT, /)\n"
-"--\n"
-"\n"
-"Register a file descriptor with the polling object.\n"
-"\n"
-" fd\n"
-" either an integer, or an object with a fileno() method returning an int\n"
-" eventmask\n"
-" an optional bitmask describing the type of events to check for");
-
-#define SELECT_POLL_REGISTER_METHODDEF \
- {"register", (PyCFunction)(void(*)(void))select_poll_register, METH_FASTCALL, select_poll_register__doc__},
-
-static PyObject *
-select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask);
-
-static PyObject *
-select_poll_register(pollObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int fd;
- unsigned short eventmask = POLLIN | POLLPRI | POLLOUT;
-
- if (!_PyArg_CheckPositional("register", nargs, 1, 2)) {
- goto exit;
- }
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
- goto exit;
- }
-skip_optional:
- return_value = select_poll_register_impl(self, fd, eventmask);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
-
-PyDoc_STRVAR(select_poll_modify__doc__,
-"modify($self, fd, eventmask, /)\n"
-"--\n"
-"\n"
-"Modify an already registered file descriptor.\n"
-"\n"
-" fd\n"
-" either an integer, or an object with a fileno() method returning\n"
-" an int\n"
-" eventmask\n"
-" a bitmask describing the type of events to check for");
-
-#define SELECT_POLL_MODIFY_METHODDEF \
- {"modify", (PyCFunction)(void(*)(void))select_poll_modify, METH_FASTCALL, select_poll_modify__doc__},
-
-static PyObject *
-select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask);
-
-static PyObject *
-select_poll_modify(pollObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int fd;
- unsigned short eventmask;
-
- if (!_PyArg_CheckPositional("modify", nargs, 2, 2)) {
- goto exit;
- }
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
- if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
- goto exit;
- }
- return_value = select_poll_modify_impl(self, fd, eventmask);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
-
-PyDoc_STRVAR(select_poll_unregister__doc__,
-"unregister($self, fd, /)\n"
-"--\n"
-"\n"
-"Remove a file descriptor being tracked by the polling object.");
-
-#define SELECT_POLL_UNREGISTER_METHODDEF \
- {"unregister", (PyCFunction)select_poll_unregister, METH_O, select_poll_unregister__doc__},
-
-static PyObject *
-select_poll_unregister_impl(pollObject *self, int fd);
-
-static PyObject *
-select_poll_unregister(pollObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int fd;
-
- if (!fildes_converter(arg, &fd)) {
- goto exit;
- }
- return_value = select_poll_unregister_impl(self, fd);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
-
-PyDoc_STRVAR(select_poll_poll__doc__,
-"poll($self, timeout=None, /)\n"
-"--\n"
-"\n"
-"Polls the set of registered file descriptors.\n"
-"\n"
-"Returns a list containing any descriptors that have events or errors to\n"
-"report, as a list of (fd, event) 2-tuples.");
-
-#define SELECT_POLL_POLL_METHODDEF \
- {"poll", (PyCFunction)(void(*)(void))select_poll_poll, METH_FASTCALL, select_poll_poll__doc__},
-
-static PyObject *
-select_poll_poll_impl(pollObject *self, PyObject *timeout_obj);
-
-static PyObject *
-select_poll_poll(pollObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *timeout_obj = Py_None;
-
- if (!_PyArg_CheckPositional("poll", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- timeout_obj = args[0];
-skip_optional:
- return_value = select_poll_poll_impl(self, timeout_obj);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
-
-PyDoc_STRVAR(select_devpoll_register__doc__,
-"register($self, fd,\n"
-" eventmask=select.POLLIN | select.POLLPRI | select.POLLOUT, /)\n"
-"--\n"
-"\n"
-"Register a file descriptor with the polling object.\n"
-"\n"
-" fd\n"
-" either an integer, or an object with a fileno() method returning\n"
-" an int\n"
-" eventmask\n"
-" an optional bitmask describing the type of events to check for");
-
-#define SELECT_DEVPOLL_REGISTER_METHODDEF \
- {"register", (PyCFunction)(void(*)(void))select_devpoll_register, METH_FASTCALL, select_devpoll_register__doc__},
-
-static PyObject *
-select_devpoll_register_impl(devpollObject *self, int fd,
- unsigned short eventmask);
-
-static PyObject *
-select_devpoll_register(devpollObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int fd;
- unsigned short eventmask = POLLIN | POLLPRI | POLLOUT;
-
- if (!_PyArg_CheckPositional("register", nargs, 1, 2)) {
- goto exit;
- }
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
- goto exit;
- }
-skip_optional:
- return_value = select_devpoll_register_impl(self, fd, eventmask);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
-
-PyDoc_STRVAR(select_devpoll_modify__doc__,
-"modify($self, fd,\n"
-" eventmask=select.POLLIN | select.POLLPRI | select.POLLOUT, /)\n"
-"--\n"
-"\n"
-"Modify a possible already registered file descriptor.\n"
-"\n"
-" fd\n"
-" either an integer, or an object with a fileno() method returning\n"
-" an int\n"
-" eventmask\n"
-" an optional bitmask describing the type of events to check for");
-
-#define SELECT_DEVPOLL_MODIFY_METHODDEF \
- {"modify", (PyCFunction)(void(*)(void))select_devpoll_modify, METH_FASTCALL, select_devpoll_modify__doc__},
-
-static PyObject *
-select_devpoll_modify_impl(devpollObject *self, int fd,
- unsigned short eventmask);
-
-static PyObject *
-select_devpoll_modify(devpollObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int fd;
- unsigned short eventmask = POLLIN | POLLPRI | POLLOUT;
-
- if (!_PyArg_CheckPositional("modify", nargs, 1, 2)) {
- goto exit;
- }
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
- goto exit;
- }
-skip_optional:
- return_value = select_devpoll_modify_impl(self, fd, eventmask);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
-
-PyDoc_STRVAR(select_devpoll_unregister__doc__,
-"unregister($self, fd, /)\n"
-"--\n"
-"\n"
-"Remove a file descriptor being tracked by the polling object.");
-
-#define SELECT_DEVPOLL_UNREGISTER_METHODDEF \
- {"unregister", (PyCFunction)select_devpoll_unregister, METH_O, select_devpoll_unregister__doc__},
-
-static PyObject *
-select_devpoll_unregister_impl(devpollObject *self, int fd);
-
-static PyObject *
-select_devpoll_unregister(devpollObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int fd;
-
- if (!fildes_converter(arg, &fd)) {
- goto exit;
- }
- return_value = select_devpoll_unregister_impl(self, fd);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
-
-PyDoc_STRVAR(select_devpoll_poll__doc__,
-"poll($self, timeout=None, /)\n"
-"--\n"
-"\n"
-"Polls the set of registered file descriptors.\n"
-"\n"
-"Returns a list containing any descriptors that have events or errors to\n"
-"report, as a list of (fd, event) 2-tuples.");
-
-#define SELECT_DEVPOLL_POLL_METHODDEF \
- {"poll", (PyCFunction)(void(*)(void))select_devpoll_poll, METH_FASTCALL, select_devpoll_poll__doc__},
-
-static PyObject *
-select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj);
-
-static PyObject *
-select_devpoll_poll(devpollObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *timeout_obj = Py_None;
-
- if (!_PyArg_CheckPositional("poll", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- timeout_obj = args[0];
-skip_optional:
- return_value = select_devpoll_poll_impl(self, timeout_obj);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
-
-PyDoc_STRVAR(select_devpoll_close__doc__,
-"close($self, /)\n"
-"--\n"
-"\n"
-"Close the devpoll file descriptor.\n"
-"\n"
-"Further operations on the devpoll object will raise an exception.");
-
-#define SELECT_DEVPOLL_CLOSE_METHODDEF \
- {"close", (PyCFunction)select_devpoll_close, METH_NOARGS, select_devpoll_close__doc__},
-
-static PyObject *
-select_devpoll_close_impl(devpollObject *self);
-
-static PyObject *
-select_devpoll_close(devpollObject *self, PyObject *Py_UNUSED(ignored))
-{
- return select_devpoll_close_impl(self);
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
-
-PyDoc_STRVAR(select_devpoll_fileno__doc__,
-"fileno($self, /)\n"
-"--\n"
-"\n"
-"Return the file descriptor.");
-
-#define SELECT_DEVPOLL_FILENO_METHODDEF \
- {"fileno", (PyCFunction)select_devpoll_fileno, METH_NOARGS, select_devpoll_fileno__doc__},
-
-static PyObject *
-select_devpoll_fileno_impl(devpollObject *self);
-
-static PyObject *
-select_devpoll_fileno(devpollObject *self, PyObject *Py_UNUSED(ignored))
-{
- return select_devpoll_fileno_impl(self);
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
-
-PyDoc_STRVAR(select_poll__doc__,
-"poll($module, /)\n"
-"--\n"
-"\n"
-"Returns a polling object.\n"
-"\n"
-"This object supports registering and unregistering file descriptors, and then\n"
-"polling them for I/O events.");
-
-#define SELECT_POLL_METHODDEF \
- {"poll", (PyCFunction)select_poll, METH_NOARGS, select_poll__doc__},
-
-static PyObject *
-select_poll_impl(PyObject *module);
-
-static PyObject *
-select_poll(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return select_poll_impl(module);
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
-
-#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
-
-PyDoc_STRVAR(select_devpoll__doc__,
-"devpoll($module, /)\n"
-"--\n"
-"\n"
-"Returns a polling object.\n"
-"\n"
-"This object supports registering and unregistering file descriptors, and then\n"
-"polling them for I/O events.");
-
-#define SELECT_DEVPOLL_METHODDEF \
- {"devpoll", (PyCFunction)select_devpoll, METH_NOARGS, select_devpoll__doc__},
-
-static PyObject *
-select_devpoll_impl(PyObject *module);
-
-static PyObject *
-select_devpoll(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return select_devpoll_impl(module);
-}
-
-#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll__doc__,
-"epoll(sizehint=-1, flags=0)\n"
-"--\n"
-"\n"
-"Returns an epolling object.\n"
-"\n"
-" sizehint\n"
-" The expected number of events to be registered. It must be positive,\n"
-" or -1 to use the default. It is only used on older systems where\n"
-" epoll_create1() is not available; otherwise it has no effect (though its\n"
-" value is still checked).\n"
-" flags\n"
-" Deprecated and completely ignored. However, when supplied, its value\n"
-" must be 0 or select.EPOLL_CLOEXEC, otherwise OSError is raised.");
-
-static PyObject *
-select_epoll_impl(PyTypeObject *type, int sizehint, int flags);
-
-static PyObject *
-select_epoll(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"sizehint", "flags", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "epoll", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
- int sizehint = -1;
- int flags = 0;
-
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
- if (!fastargs) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[0]) {
- if (PyFloat_Check(fastargs[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- sizehint = _PyLong_AsInt(fastargs[0]);
- if (sizehint == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(fastargs[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(fastargs[1]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = select_epoll_impl(type, sizehint, flags);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll_close__doc__,
-"close($self, /)\n"
-"--\n"
-"\n"
-"Close the epoll control file descriptor.\n"
-"\n"
-"Further operations on the epoll object will raise an exception.");
-
-#define SELECT_EPOLL_CLOSE_METHODDEF \
- {"close", (PyCFunction)select_epoll_close, METH_NOARGS, select_epoll_close__doc__},
-
-static PyObject *
-select_epoll_close_impl(pyEpoll_Object *self);
-
-static PyObject *
-select_epoll_close(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))
-{
- return select_epoll_close_impl(self);
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll_fileno__doc__,
-"fileno($self, /)\n"
-"--\n"
-"\n"
-"Return the epoll control file descriptor.");
-
-#define SELECT_EPOLL_FILENO_METHODDEF \
- {"fileno", (PyCFunction)select_epoll_fileno, METH_NOARGS, select_epoll_fileno__doc__},
-
-static PyObject *
-select_epoll_fileno_impl(pyEpoll_Object *self);
-
-static PyObject *
-select_epoll_fileno(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))
-{
- return select_epoll_fileno_impl(self);
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll_fromfd__doc__,
-"fromfd($type, fd, /)\n"
-"--\n"
-"\n"
-"Create an epoll object from a given control fd.");
-
-#define SELECT_EPOLL_FROMFD_METHODDEF \
- {"fromfd", (PyCFunction)select_epoll_fromfd, METH_O|METH_CLASS, select_epoll_fromfd__doc__},
-
-static PyObject *
-select_epoll_fromfd_impl(PyTypeObject *type, int fd);
-
-static PyObject *
-select_epoll_fromfd(PyTypeObject *type, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int fd;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = select_epoll_fromfd_impl(type, fd);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll_register__doc__,
-"register($self, /, fd,\n"
-" eventmask=select.EPOLLIN | select.EPOLLPRI | select.EPOLLOUT)\n"
-"--\n"
-"\n"
-"Registers a new fd or raises an OSError if the fd is already registered.\n"
-"\n"
-" fd\n"
-" the target file descriptor of the operation\n"
-" eventmask\n"
-" a bit set composed of the various EPOLL constants\n"
-"\n"
-"The epoll interface supports all file descriptors that support poll.");
-
-#define SELECT_EPOLL_REGISTER_METHODDEF \
- {"register", (PyCFunction)(void(*)(void))select_epoll_register, METH_FASTCALL|METH_KEYWORDS, select_epoll_register__doc__},
-
-static PyObject *
-select_epoll_register_impl(pyEpoll_Object *self, int fd,
- unsigned int eventmask);
-
-static PyObject *
-select_epoll_register(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"fd", "eventmask", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "register", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
- int fd;
- unsigned int eventmask = EPOLLIN | EPOLLPRI | EPOLLOUT;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- eventmask = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (eventmask == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = select_epoll_register_impl(self, fd, eventmask);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll_modify__doc__,
-"modify($self, /, fd, eventmask)\n"
-"--\n"
-"\n"
-"Modify event mask for a registered file descriptor.\n"
-"\n"
-" fd\n"
-" the target file descriptor of the operation\n"
-" eventmask\n"
-" a bit set composed of the various EPOLL constants");
-
-#define SELECT_EPOLL_MODIFY_METHODDEF \
- {"modify", (PyCFunction)(void(*)(void))select_epoll_modify, METH_FASTCALL|METH_KEYWORDS, select_epoll_modify__doc__},
-
-static PyObject *
-select_epoll_modify_impl(pyEpoll_Object *self, int fd,
- unsigned int eventmask);
-
-static PyObject *
-select_epoll_modify(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"fd", "eventmask", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "modify", 0};
- PyObject *argsbuf[2];
- int fd;
- unsigned int eventmask;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- eventmask = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (eventmask == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = select_epoll_modify_impl(self, fd, eventmask);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll_unregister__doc__,
-"unregister($self, /, fd)\n"
-"--\n"
-"\n"
-"Remove a registered file descriptor from the epoll object.\n"
-"\n"
-" fd\n"
-" the target file descriptor of the operation");
-
-#define SELECT_EPOLL_UNREGISTER_METHODDEF \
- {"unregister", (PyCFunction)(void(*)(void))select_epoll_unregister, METH_FASTCALL|METH_KEYWORDS, select_epoll_unregister__doc__},
-
-static PyObject *
-select_epoll_unregister_impl(pyEpoll_Object *self, int fd);
-
-static PyObject *
-select_epoll_unregister(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"fd", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "unregister", 0};
- PyObject *argsbuf[1];
- int fd;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!fildes_converter(args[0], &fd)) {
- goto exit;
- }
- return_value = select_epoll_unregister_impl(self, fd);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll_poll__doc__,
-"poll($self, /, timeout=None, maxevents=-1)\n"
-"--\n"
-"\n"
-"Wait for events on the epoll file descriptor.\n"
-"\n"
-" timeout\n"
-" the maximum time to wait in seconds (as float);\n"
-" a timeout of None or -1 makes poll wait indefinitely\n"
-" maxevents\n"
-" the maximum number of events returned; -1 means no limit\n"
-"\n"
-"Returns a list containing any descriptors that have events to report,\n"
-"as a list of (fd, events) 2-tuples.");
-
-#define SELECT_EPOLL_POLL_METHODDEF \
- {"poll", (PyCFunction)(void(*)(void))select_epoll_poll, METH_FASTCALL|METH_KEYWORDS, select_epoll_poll__doc__},
-
-static PyObject *
-select_epoll_poll_impl(pyEpoll_Object *self, PyObject *timeout_obj,
- int maxevents);
-
-static PyObject *
-select_epoll_poll(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"timeout", "maxevents", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "poll", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *timeout_obj = Py_None;
- int maxevents = -1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- timeout_obj = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- maxevents = _PyLong_AsInt(args[1]);
- if (maxevents == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = select_epoll_poll_impl(self, timeout_obj, maxevents);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll___enter____doc__,
-"__enter__($self, /)\n"
-"--\n"
-"\n");
-
-#define SELECT_EPOLL___ENTER___METHODDEF \
- {"__enter__", (PyCFunction)select_epoll___enter__, METH_NOARGS, select_epoll___enter____doc__},
-
-static PyObject *
-select_epoll___enter___impl(pyEpoll_Object *self);
-
-static PyObject *
-select_epoll___enter__(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))
-{
- return select_epoll___enter___impl(self);
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_EPOLL)
-
-PyDoc_STRVAR(select_epoll___exit____doc__,
-"__exit__($self, exc_type=None, exc_value=None, exc_tb=None, /)\n"
-"--\n"
-"\n");
-
-#define SELECT_EPOLL___EXIT___METHODDEF \
- {"__exit__", (PyCFunction)(void(*)(void))select_epoll___exit__, METH_FASTCALL, select_epoll___exit____doc__},
-
-static PyObject *
-select_epoll___exit___impl(pyEpoll_Object *self, PyObject *exc_type,
- PyObject *exc_value, PyObject *exc_tb);
-
-static PyObject *
-select_epoll___exit__(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *exc_type = Py_None;
- PyObject *exc_value = Py_None;
- PyObject *exc_tb = Py_None;
-
- if (!_PyArg_CheckPositional("__exit__", nargs, 0, 3)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- exc_type = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- exc_value = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- exc_tb = args[2];
-skip_optional:
- return_value = select_epoll___exit___impl(self, exc_type, exc_value, exc_tb);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_EPOLL) */
-
-#if defined(HAVE_KQUEUE)
-
-PyDoc_STRVAR(select_kqueue__doc__,
-"kqueue()\n"
-"--\n"
-"\n"
-"Kqueue syscall wrapper.\n"
-"\n"
-"For example, to start watching a socket for input:\n"
-">>> kq = kqueue()\n"
-">>> sock = socket()\n"
-">>> sock.connect((host, port))\n"
-">>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_ADD)], 0)\n"
-"\n"
-"To wait one second for it to become writeable:\n"
-">>> kq.control(None, 1, 1000)\n"
-"\n"
-"To stop listening:\n"
-">>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_DELETE)], 0)");
-
-static PyObject *
-select_kqueue_impl(PyTypeObject *type);
-
-static PyObject *
-select_kqueue(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
-
- if ((type == _selectstate_global->kqueue_queue_Type) &&
- !_PyArg_NoPositional("kqueue", args)) {
- goto exit;
- }
- if ((type == _selectstate_global->kqueue_queue_Type) &&
- !_PyArg_NoKeywords("kqueue", kwargs)) {
- goto exit;
- }
- return_value = select_kqueue_impl(type);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_KQUEUE) */
-
-#if defined(HAVE_KQUEUE)
-
-PyDoc_STRVAR(select_kqueue_close__doc__,
-"close($self, /)\n"
-"--\n"
-"\n"
-"Close the kqueue control file descriptor.\n"
-"\n"
-"Further operations on the kqueue object will raise an exception.");
-
-#define SELECT_KQUEUE_CLOSE_METHODDEF \
- {"close", (PyCFunction)select_kqueue_close, METH_NOARGS, select_kqueue_close__doc__},
-
-static PyObject *
-select_kqueue_close_impl(kqueue_queue_Object *self);
-
-static PyObject *
-select_kqueue_close(kqueue_queue_Object *self, PyObject *Py_UNUSED(ignored))
-{
- return select_kqueue_close_impl(self);
-}
-
-#endif /* defined(HAVE_KQUEUE) */
-
-#if defined(HAVE_KQUEUE)
-
-PyDoc_STRVAR(select_kqueue_fileno__doc__,
-"fileno($self, /)\n"
-"--\n"
-"\n"
-"Return the kqueue control file descriptor.");
-
-#define SELECT_KQUEUE_FILENO_METHODDEF \
- {"fileno", (PyCFunction)select_kqueue_fileno, METH_NOARGS, select_kqueue_fileno__doc__},
-
-static PyObject *
-select_kqueue_fileno_impl(kqueue_queue_Object *self);
-
-static PyObject *
-select_kqueue_fileno(kqueue_queue_Object *self, PyObject *Py_UNUSED(ignored))
-{
- return select_kqueue_fileno_impl(self);
-}
-
-#endif /* defined(HAVE_KQUEUE) */
-
-#if defined(HAVE_KQUEUE)
-
-PyDoc_STRVAR(select_kqueue_fromfd__doc__,
-"fromfd($type, fd, /)\n"
-"--\n"
-"\n"
-"Create a kqueue object from a given control fd.");
-
-#define SELECT_KQUEUE_FROMFD_METHODDEF \
- {"fromfd", (PyCFunction)select_kqueue_fromfd, METH_O|METH_CLASS, select_kqueue_fromfd__doc__},
-
-static PyObject *
-select_kqueue_fromfd_impl(PyTypeObject *type, int fd);
-
-static PyObject *
-select_kqueue_fromfd(PyTypeObject *type, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int fd;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = select_kqueue_fromfd_impl(type, fd);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_KQUEUE) */
-
-#if defined(HAVE_KQUEUE)
-
-PyDoc_STRVAR(select_kqueue_control__doc__,
-"control($self, changelist, maxevents, timeout=None, /)\n"
-"--\n"
-"\n"
-"Calls the kernel kevent function.\n"
-"\n"
-" changelist\n"
-" Must be an iterable of kevent objects describing the changes to be made\n"
-" to the kernel\'s watch list or None.\n"
-" maxevents\n"
-" The maximum number of events that the kernel will return.\n"
-" timeout\n"
-" The maximum time to wait in seconds, or else None to wait forever.\n"
-" This accepts floats for smaller timeouts, too.");
-
-#define SELECT_KQUEUE_CONTROL_METHODDEF \
- {"control", (PyCFunction)(void(*)(void))select_kqueue_control, METH_FASTCALL, select_kqueue_control__doc__},
-
-static PyObject *
-select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
- int maxevents, PyObject *otimeout);
-
-static PyObject *
-select_kqueue_control(kqueue_queue_Object *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *changelist;
- int maxevents;
- PyObject *otimeout = Py_None;
-
- if (!_PyArg_CheckPositional("control", nargs, 2, 3)) {
- goto exit;
- }
- changelist = args[0];
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- maxevents = _PyLong_AsInt(args[1]);
- if (maxevents == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- otimeout = args[2];
-skip_optional:
- return_value = select_kqueue_control_impl(self, changelist, maxevents, otimeout);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_KQUEUE) */
-
-#ifndef SELECT_POLL_REGISTER_METHODDEF
- #define SELECT_POLL_REGISTER_METHODDEF
-#endif /* !defined(SELECT_POLL_REGISTER_METHODDEF) */
-
-#ifndef SELECT_POLL_MODIFY_METHODDEF
- #define SELECT_POLL_MODIFY_METHODDEF
-#endif /* !defined(SELECT_POLL_MODIFY_METHODDEF) */
-
-#ifndef SELECT_POLL_UNREGISTER_METHODDEF
- #define SELECT_POLL_UNREGISTER_METHODDEF
-#endif /* !defined(SELECT_POLL_UNREGISTER_METHODDEF) */
-
-#ifndef SELECT_POLL_POLL_METHODDEF
- #define SELECT_POLL_POLL_METHODDEF
-#endif /* !defined(SELECT_POLL_POLL_METHODDEF) */
-
-#ifndef SELECT_DEVPOLL_REGISTER_METHODDEF
- #define SELECT_DEVPOLL_REGISTER_METHODDEF
-#endif /* !defined(SELECT_DEVPOLL_REGISTER_METHODDEF) */
-
-#ifndef SELECT_DEVPOLL_MODIFY_METHODDEF
- #define SELECT_DEVPOLL_MODIFY_METHODDEF
-#endif /* !defined(SELECT_DEVPOLL_MODIFY_METHODDEF) */
-
-#ifndef SELECT_DEVPOLL_UNREGISTER_METHODDEF
- #define SELECT_DEVPOLL_UNREGISTER_METHODDEF
-#endif /* !defined(SELECT_DEVPOLL_UNREGISTER_METHODDEF) */
-
-#ifndef SELECT_DEVPOLL_POLL_METHODDEF
- #define SELECT_DEVPOLL_POLL_METHODDEF
-#endif /* !defined(SELECT_DEVPOLL_POLL_METHODDEF) */
-
-#ifndef SELECT_DEVPOLL_CLOSE_METHODDEF
- #define SELECT_DEVPOLL_CLOSE_METHODDEF
-#endif /* !defined(SELECT_DEVPOLL_CLOSE_METHODDEF) */
-
-#ifndef SELECT_DEVPOLL_FILENO_METHODDEF
- #define SELECT_DEVPOLL_FILENO_METHODDEF
-#endif /* !defined(SELECT_DEVPOLL_FILENO_METHODDEF) */
-
-#ifndef SELECT_POLL_METHODDEF
- #define SELECT_POLL_METHODDEF
-#endif /* !defined(SELECT_POLL_METHODDEF) */
-
-#ifndef SELECT_DEVPOLL_METHODDEF
- #define SELECT_DEVPOLL_METHODDEF
-#endif /* !defined(SELECT_DEVPOLL_METHODDEF) */
-
-#ifndef SELECT_EPOLL_CLOSE_METHODDEF
- #define SELECT_EPOLL_CLOSE_METHODDEF
-#endif /* !defined(SELECT_EPOLL_CLOSE_METHODDEF) */
-
-#ifndef SELECT_EPOLL_FILENO_METHODDEF
- #define SELECT_EPOLL_FILENO_METHODDEF
-#endif /* !defined(SELECT_EPOLL_FILENO_METHODDEF) */
-
-#ifndef SELECT_EPOLL_FROMFD_METHODDEF
- #define SELECT_EPOLL_FROMFD_METHODDEF
-#endif /* !defined(SELECT_EPOLL_FROMFD_METHODDEF) */
-
-#ifndef SELECT_EPOLL_REGISTER_METHODDEF
- #define SELECT_EPOLL_REGISTER_METHODDEF
-#endif /* !defined(SELECT_EPOLL_REGISTER_METHODDEF) */
-
-#ifndef SELECT_EPOLL_MODIFY_METHODDEF
- #define SELECT_EPOLL_MODIFY_METHODDEF
-#endif /* !defined(SELECT_EPOLL_MODIFY_METHODDEF) */
-
-#ifndef SELECT_EPOLL_UNREGISTER_METHODDEF
- #define SELECT_EPOLL_UNREGISTER_METHODDEF
-#endif /* !defined(SELECT_EPOLL_UNREGISTER_METHODDEF) */
-
-#ifndef SELECT_EPOLL_POLL_METHODDEF
- #define SELECT_EPOLL_POLL_METHODDEF
-#endif /* !defined(SELECT_EPOLL_POLL_METHODDEF) */
-
-#ifndef SELECT_EPOLL___ENTER___METHODDEF
- #define SELECT_EPOLL___ENTER___METHODDEF
-#endif /* !defined(SELECT_EPOLL___ENTER___METHODDEF) */
-
-#ifndef SELECT_EPOLL___EXIT___METHODDEF
- #define SELECT_EPOLL___EXIT___METHODDEF
-#endif /* !defined(SELECT_EPOLL___EXIT___METHODDEF) */
-
-#ifndef SELECT_KQUEUE_CLOSE_METHODDEF
- #define SELECT_KQUEUE_CLOSE_METHODDEF
-#endif /* !defined(SELECT_KQUEUE_CLOSE_METHODDEF) */
-
-#ifndef SELECT_KQUEUE_FILENO_METHODDEF
- #define SELECT_KQUEUE_FILENO_METHODDEF
-#endif /* !defined(SELECT_KQUEUE_FILENO_METHODDEF) */
-
-#ifndef SELECT_KQUEUE_FROMFD_METHODDEF
- #define SELECT_KQUEUE_FROMFD_METHODDEF
-#endif /* !defined(SELECT_KQUEUE_FROMFD_METHODDEF) */
-
-#ifndef SELECT_KQUEUE_CONTROL_METHODDEF
- #define SELECT_KQUEUE_CONTROL_METHODDEF
-#endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */
-/*[clinic end generated code: output=ef42c3485a8fe3a0 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(select_select__doc__,
+"select($module, rlist, wlist, xlist, timeout=None, /)\n"
+"--\n"
+"\n"
+"Wait until one or more file descriptors are ready for some kind of I/O.\n"
+"\n"
+"The first three arguments are iterables of file descriptors to be waited for:\n"
+"rlist -- wait until ready for reading\n"
+"wlist -- wait until ready for writing\n"
+"xlist -- wait for an \"exceptional condition\"\n"
+"If only one kind of condition is required, pass [] for the other lists.\n"
+"\n"
+"A file descriptor is either a socket or file object, or a small integer\n"
+"gotten from a fileno() method call on one of those.\n"
+"\n"
+"The optional 4th argument specifies a timeout in seconds; it may be\n"
+"a floating point number to specify fractions of seconds. If it is absent\n"
+"or None, the call will never time out.\n"
+"\n"
+"The return value is a tuple of three lists corresponding to the first three\n"
+"arguments; each contains the subset of the corresponding file descriptors\n"
+"that are ready.\n"
+"\n"
+"*** IMPORTANT NOTICE ***\n"
+"On Windows, only sockets are supported; on Unix, all file\n"
+"descriptors can be used.");
+
+#define SELECT_SELECT_METHODDEF \
+ {"select", (PyCFunction)(void(*)(void))select_select, METH_FASTCALL, select_select__doc__},
+
+static PyObject *
+select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
+ PyObject *xlist, PyObject *timeout_obj);
+
+static PyObject *
+select_select(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *rlist;
+ PyObject *wlist;
+ PyObject *xlist;
+ PyObject *timeout_obj = Py_None;
+
+ if (!_PyArg_CheckPositional("select", nargs, 3, 4)) {
+ goto exit;
+ }
+ rlist = args[0];
+ wlist = args[1];
+ xlist = args[2];
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ timeout_obj = args[3];
+skip_optional:
+ return_value = select_select_impl(module, rlist, wlist, xlist, timeout_obj);
+
+exit:
+ return return_value;
+}
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
+
+PyDoc_STRVAR(select_poll_register__doc__,
+"register($self, fd,\n"
+" eventmask=select.POLLIN | select.POLLPRI | select.POLLOUT, /)\n"
+"--\n"
+"\n"
+"Register a file descriptor with the polling object.\n"
+"\n"
+" fd\n"
+" either an integer, or an object with a fileno() method returning an int\n"
+" eventmask\n"
+" an optional bitmask describing the type of events to check for");
+
+#define SELECT_POLL_REGISTER_METHODDEF \
+ {"register", (PyCFunction)(void(*)(void))select_poll_register, METH_FASTCALL, select_poll_register__doc__},
+
+static PyObject *
+select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask);
+
+static PyObject *
+select_poll_register(pollObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ unsigned short eventmask = POLLIN | POLLPRI | POLLOUT;
+
+ if (!_PyArg_CheckPositional("register", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
+ goto exit;
+ }
+skip_optional:
+ return_value = select_poll_register_impl(self, fd, eventmask);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
+
+PyDoc_STRVAR(select_poll_modify__doc__,
+"modify($self, fd, eventmask, /)\n"
+"--\n"
+"\n"
+"Modify an already registered file descriptor.\n"
+"\n"
+" fd\n"
+" either an integer, or an object with a fileno() method returning\n"
+" an int\n"
+" eventmask\n"
+" a bitmask describing the type of events to check for");
+
+#define SELECT_POLL_MODIFY_METHODDEF \
+ {"modify", (PyCFunction)(void(*)(void))select_poll_modify, METH_FASTCALL, select_poll_modify__doc__},
+
+static PyObject *
+select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask);
+
+static PyObject *
+select_poll_modify(pollObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ unsigned short eventmask;
+
+ if (!_PyArg_CheckPositional("modify", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
+ goto exit;
+ }
+ if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
+ goto exit;
+ }
+ return_value = select_poll_modify_impl(self, fd, eventmask);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
+
+PyDoc_STRVAR(select_poll_unregister__doc__,
+"unregister($self, fd, /)\n"
+"--\n"
+"\n"
+"Remove a file descriptor being tracked by the polling object.");
+
+#define SELECT_POLL_UNREGISTER_METHODDEF \
+ {"unregister", (PyCFunction)select_poll_unregister, METH_O, select_poll_unregister__doc__},
+
+static PyObject *
+select_poll_unregister_impl(pollObject *self, int fd);
+
+static PyObject *
+select_poll_unregister(pollObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+
+ if (!fildes_converter(arg, &fd)) {
+ goto exit;
+ }
+ return_value = select_poll_unregister_impl(self, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
+
+PyDoc_STRVAR(select_poll_poll__doc__,
+"poll($self, timeout=None, /)\n"
+"--\n"
+"\n"
+"Polls the set of registered file descriptors.\n"
+"\n"
+"Returns a list containing any descriptors that have events or errors to\n"
+"report, as a list of (fd, event) 2-tuples.");
+
+#define SELECT_POLL_POLL_METHODDEF \
+ {"poll", (PyCFunction)(void(*)(void))select_poll_poll, METH_FASTCALL, select_poll_poll__doc__},
+
+static PyObject *
+select_poll_poll_impl(pollObject *self, PyObject *timeout_obj);
+
+static PyObject *
+select_poll_poll(pollObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *timeout_obj = Py_None;
+
+ if (!_PyArg_CheckPositional("poll", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ timeout_obj = args[0];
+skip_optional:
+ return_value = select_poll_poll_impl(self, timeout_obj);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
+
+PyDoc_STRVAR(select_devpoll_register__doc__,
+"register($self, fd,\n"
+" eventmask=select.POLLIN | select.POLLPRI | select.POLLOUT, /)\n"
+"--\n"
+"\n"
+"Register a file descriptor with the polling object.\n"
+"\n"
+" fd\n"
+" either an integer, or an object with a fileno() method returning\n"
+" an int\n"
+" eventmask\n"
+" an optional bitmask describing the type of events to check for");
+
+#define SELECT_DEVPOLL_REGISTER_METHODDEF \
+ {"register", (PyCFunction)(void(*)(void))select_devpoll_register, METH_FASTCALL, select_devpoll_register__doc__},
+
+static PyObject *
+select_devpoll_register_impl(devpollObject *self, int fd,
+ unsigned short eventmask);
+
+static PyObject *
+select_devpoll_register(devpollObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ unsigned short eventmask = POLLIN | POLLPRI | POLLOUT;
+
+ if (!_PyArg_CheckPositional("register", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
+ goto exit;
+ }
+skip_optional:
+ return_value = select_devpoll_register_impl(self, fd, eventmask);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
+
+PyDoc_STRVAR(select_devpoll_modify__doc__,
+"modify($self, fd,\n"
+" eventmask=select.POLLIN | select.POLLPRI | select.POLLOUT, /)\n"
+"--\n"
+"\n"
+"Modify a possible already registered file descriptor.\n"
+"\n"
+" fd\n"
+" either an integer, or an object with a fileno() method returning\n"
+" an int\n"
+" eventmask\n"
+" an optional bitmask describing the type of events to check for");
+
+#define SELECT_DEVPOLL_MODIFY_METHODDEF \
+ {"modify", (PyCFunction)(void(*)(void))select_devpoll_modify, METH_FASTCALL, select_devpoll_modify__doc__},
+
+static PyObject *
+select_devpoll_modify_impl(devpollObject *self, int fd,
+ unsigned short eventmask);
+
+static PyObject *
+select_devpoll_modify(devpollObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int fd;
+ unsigned short eventmask = POLLIN | POLLPRI | POLLOUT;
+
+ if (!_PyArg_CheckPositional("modify", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!_PyLong_UnsignedShort_Converter(args[1], &eventmask)) {
+ goto exit;
+ }
+skip_optional:
+ return_value = select_devpoll_modify_impl(self, fd, eventmask);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
+
+PyDoc_STRVAR(select_devpoll_unregister__doc__,
+"unregister($self, fd, /)\n"
+"--\n"
+"\n"
+"Remove a file descriptor being tracked by the polling object.");
+
+#define SELECT_DEVPOLL_UNREGISTER_METHODDEF \
+ {"unregister", (PyCFunction)select_devpoll_unregister, METH_O, select_devpoll_unregister__doc__},
+
+static PyObject *
+select_devpoll_unregister_impl(devpollObject *self, int fd);
+
+static PyObject *
+select_devpoll_unregister(devpollObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+
+ if (!fildes_converter(arg, &fd)) {
+ goto exit;
+ }
+ return_value = select_devpoll_unregister_impl(self, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
+
+PyDoc_STRVAR(select_devpoll_poll__doc__,
+"poll($self, timeout=None, /)\n"
+"--\n"
+"\n"
+"Polls the set of registered file descriptors.\n"
+"\n"
+"Returns a list containing any descriptors that have events or errors to\n"
+"report, as a list of (fd, event) 2-tuples.");
+
+#define SELECT_DEVPOLL_POLL_METHODDEF \
+ {"poll", (PyCFunction)(void(*)(void))select_devpoll_poll, METH_FASTCALL, select_devpoll_poll__doc__},
+
+static PyObject *
+select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj);
+
+static PyObject *
+select_devpoll_poll(devpollObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *timeout_obj = Py_None;
+
+ if (!_PyArg_CheckPositional("poll", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ timeout_obj = args[0];
+skip_optional:
+ return_value = select_devpoll_poll_impl(self, timeout_obj);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
+
+PyDoc_STRVAR(select_devpoll_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Close the devpoll file descriptor.\n"
+"\n"
+"Further operations on the devpoll object will raise an exception.");
+
+#define SELECT_DEVPOLL_CLOSE_METHODDEF \
+ {"close", (PyCFunction)select_devpoll_close, METH_NOARGS, select_devpoll_close__doc__},
+
+static PyObject *
+select_devpoll_close_impl(devpollObject *self);
+
+static PyObject *
+select_devpoll_close(devpollObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return select_devpoll_close_impl(self);
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
+
+PyDoc_STRVAR(select_devpoll_fileno__doc__,
+"fileno($self, /)\n"
+"--\n"
+"\n"
+"Return the file descriptor.");
+
+#define SELECT_DEVPOLL_FILENO_METHODDEF \
+ {"fileno", (PyCFunction)select_devpoll_fileno, METH_NOARGS, select_devpoll_fileno__doc__},
+
+static PyObject *
+select_devpoll_fileno_impl(devpollObject *self);
+
+static PyObject *
+select_devpoll_fileno(devpollObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return select_devpoll_fileno_impl(self);
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL))
+
+PyDoc_STRVAR(select_poll__doc__,
+"poll($module, /)\n"
+"--\n"
+"\n"
+"Returns a polling object.\n"
+"\n"
+"This object supports registering and unregistering file descriptors, and then\n"
+"polling them for I/O events.");
+
+#define SELECT_POLL_METHODDEF \
+ {"poll", (PyCFunction)select_poll, METH_NOARGS, select_poll__doc__},
+
+static PyObject *
+select_poll_impl(PyObject *module);
+
+static PyObject *
+select_poll(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return select_poll_impl(module);
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) */
+
+#if (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H)
+
+PyDoc_STRVAR(select_devpoll__doc__,
+"devpoll($module, /)\n"
+"--\n"
+"\n"
+"Returns a polling object.\n"
+"\n"
+"This object supports registering and unregistering file descriptors, and then\n"
+"polling them for I/O events.");
+
+#define SELECT_DEVPOLL_METHODDEF \
+ {"devpoll", (PyCFunction)select_devpoll, METH_NOARGS, select_devpoll__doc__},
+
+static PyObject *
+select_devpoll_impl(PyObject *module);
+
+static PyObject *
+select_devpoll(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return select_devpoll_impl(module);
+}
+
+#endif /* (defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)) && defined(HAVE_SYS_DEVPOLL_H) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll__doc__,
+"epoll(sizehint=-1, flags=0)\n"
+"--\n"
+"\n"
+"Returns an epolling object.\n"
+"\n"
+" sizehint\n"
+" The expected number of events to be registered. It must be positive,\n"
+" or -1 to use the default. It is only used on older systems where\n"
+" epoll_create1() is not available; otherwise it has no effect (though its\n"
+" value is still checked).\n"
+" flags\n"
+" Deprecated and completely ignored. However, when supplied, its value\n"
+" must be 0 or select.EPOLL_CLOEXEC, otherwise OSError is raised.");
+
+static PyObject *
+select_epoll_impl(PyTypeObject *type, int sizehint, int flags);
+
+static PyObject *
+select_epoll(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"sizehint", "flags", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "epoll", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ int sizehint = -1;
+ int flags = 0;
+
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[0]) {
+ if (PyFloat_Check(fastargs[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ sizehint = _PyLong_AsInt(fastargs[0]);
+ if (sizehint == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(fastargs[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(fastargs[1]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = select_epoll_impl(type, sizehint, flags);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Close the epoll control file descriptor.\n"
+"\n"
+"Further operations on the epoll object will raise an exception.");
+
+#define SELECT_EPOLL_CLOSE_METHODDEF \
+ {"close", (PyCFunction)select_epoll_close, METH_NOARGS, select_epoll_close__doc__},
+
+static PyObject *
+select_epoll_close_impl(pyEpoll_Object *self);
+
+static PyObject *
+select_epoll_close(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))
+{
+ return select_epoll_close_impl(self);
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll_fileno__doc__,
+"fileno($self, /)\n"
+"--\n"
+"\n"
+"Return the epoll control file descriptor.");
+
+#define SELECT_EPOLL_FILENO_METHODDEF \
+ {"fileno", (PyCFunction)select_epoll_fileno, METH_NOARGS, select_epoll_fileno__doc__},
+
+static PyObject *
+select_epoll_fileno_impl(pyEpoll_Object *self);
+
+static PyObject *
+select_epoll_fileno(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))
+{
+ return select_epoll_fileno_impl(self);
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll_fromfd__doc__,
+"fromfd($type, fd, /)\n"
+"--\n"
+"\n"
+"Create an epoll object from a given control fd.");
+
+#define SELECT_EPOLL_FROMFD_METHODDEF \
+ {"fromfd", (PyCFunction)select_epoll_fromfd, METH_O|METH_CLASS, select_epoll_fromfd__doc__},
+
+static PyObject *
+select_epoll_fromfd_impl(PyTypeObject *type, int fd);
+
+static PyObject *
+select_epoll_fromfd(PyTypeObject *type, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = select_epoll_fromfd_impl(type, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll_register__doc__,
+"register($self, /, fd,\n"
+" eventmask=select.EPOLLIN | select.EPOLLPRI | select.EPOLLOUT)\n"
+"--\n"
+"\n"
+"Registers a new fd or raises an OSError if the fd is already registered.\n"
+"\n"
+" fd\n"
+" the target file descriptor of the operation\n"
+" eventmask\n"
+" a bit set composed of the various EPOLL constants\n"
+"\n"
+"The epoll interface supports all file descriptors that support poll.");
+
+#define SELECT_EPOLL_REGISTER_METHODDEF \
+ {"register", (PyCFunction)(void(*)(void))select_epoll_register, METH_FASTCALL|METH_KEYWORDS, select_epoll_register__doc__},
+
+static PyObject *
+select_epoll_register_impl(pyEpoll_Object *self, int fd,
+ unsigned int eventmask);
+
+static PyObject *
+select_epoll_register(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"fd", "eventmask", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "register", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ int fd;
+ unsigned int eventmask = EPOLLIN | EPOLLPRI | EPOLLOUT;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ eventmask = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (eventmask == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = select_epoll_register_impl(self, fd, eventmask);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll_modify__doc__,
+"modify($self, /, fd, eventmask)\n"
+"--\n"
+"\n"
+"Modify event mask for a registered file descriptor.\n"
+"\n"
+" fd\n"
+" the target file descriptor of the operation\n"
+" eventmask\n"
+" a bit set composed of the various EPOLL constants");
+
+#define SELECT_EPOLL_MODIFY_METHODDEF \
+ {"modify", (PyCFunction)(void(*)(void))select_epoll_modify, METH_FASTCALL|METH_KEYWORDS, select_epoll_modify__doc__},
+
+static PyObject *
+select_epoll_modify_impl(pyEpoll_Object *self, int fd,
+ unsigned int eventmask);
+
+static PyObject *
+select_epoll_modify(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"fd", "eventmask", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "modify", 0};
+ PyObject *argsbuf[2];
+ int fd;
+ unsigned int eventmask;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ eventmask = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (eventmask == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = select_epoll_modify_impl(self, fd, eventmask);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll_unregister__doc__,
+"unregister($self, /, fd)\n"
+"--\n"
+"\n"
+"Remove a registered file descriptor from the epoll object.\n"
+"\n"
+" fd\n"
+" the target file descriptor of the operation");
+
+#define SELECT_EPOLL_UNREGISTER_METHODDEF \
+ {"unregister", (PyCFunction)(void(*)(void))select_epoll_unregister, METH_FASTCALL|METH_KEYWORDS, select_epoll_unregister__doc__},
+
+static PyObject *
+select_epoll_unregister_impl(pyEpoll_Object *self, int fd);
+
+static PyObject *
+select_epoll_unregister(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"fd", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "unregister", 0};
+ PyObject *argsbuf[1];
+ int fd;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!fildes_converter(args[0], &fd)) {
+ goto exit;
+ }
+ return_value = select_epoll_unregister_impl(self, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll_poll__doc__,
+"poll($self, /, timeout=None, maxevents=-1)\n"
+"--\n"
+"\n"
+"Wait for events on the epoll file descriptor.\n"
+"\n"
+" timeout\n"
+" the maximum time to wait in seconds (as float);\n"
+" a timeout of None or -1 makes poll wait indefinitely\n"
+" maxevents\n"
+" the maximum number of events returned; -1 means no limit\n"
+"\n"
+"Returns a list containing any descriptors that have events to report,\n"
+"as a list of (fd, events) 2-tuples.");
+
+#define SELECT_EPOLL_POLL_METHODDEF \
+ {"poll", (PyCFunction)(void(*)(void))select_epoll_poll, METH_FASTCALL|METH_KEYWORDS, select_epoll_poll__doc__},
+
+static PyObject *
+select_epoll_poll_impl(pyEpoll_Object *self, PyObject *timeout_obj,
+ int maxevents);
+
+static PyObject *
+select_epoll_poll(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"timeout", "maxevents", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "poll", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *timeout_obj = Py_None;
+ int maxevents = -1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ timeout_obj = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ maxevents = _PyLong_AsInt(args[1]);
+ if (maxevents == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = select_epoll_poll_impl(self, timeout_obj, maxevents);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll___enter____doc__,
+"__enter__($self, /)\n"
+"--\n"
+"\n");
+
+#define SELECT_EPOLL___ENTER___METHODDEF \
+ {"__enter__", (PyCFunction)select_epoll___enter__, METH_NOARGS, select_epoll___enter____doc__},
+
+static PyObject *
+select_epoll___enter___impl(pyEpoll_Object *self);
+
+static PyObject *
+select_epoll___enter__(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))
+{
+ return select_epoll___enter___impl(self);
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_EPOLL)
+
+PyDoc_STRVAR(select_epoll___exit____doc__,
+"__exit__($self, exc_type=None, exc_value=None, exc_tb=None, /)\n"
+"--\n"
+"\n");
+
+#define SELECT_EPOLL___EXIT___METHODDEF \
+ {"__exit__", (PyCFunction)(void(*)(void))select_epoll___exit__, METH_FASTCALL, select_epoll___exit____doc__},
+
+static PyObject *
+select_epoll___exit___impl(pyEpoll_Object *self, PyObject *exc_type,
+ PyObject *exc_value, PyObject *exc_tb);
+
+static PyObject *
+select_epoll___exit__(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *exc_type = Py_None;
+ PyObject *exc_value = Py_None;
+ PyObject *exc_tb = Py_None;
+
+ if (!_PyArg_CheckPositional("__exit__", nargs, 0, 3)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ exc_type = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ exc_value = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ exc_tb = args[2];
+skip_optional:
+ return_value = select_epoll___exit___impl(self, exc_type, exc_value, exc_tb);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_EPOLL) */
+
+#if defined(HAVE_KQUEUE)
+
+PyDoc_STRVAR(select_kqueue__doc__,
+"kqueue()\n"
+"--\n"
+"\n"
+"Kqueue syscall wrapper.\n"
+"\n"
+"For example, to start watching a socket for input:\n"
+">>> kq = kqueue()\n"
+">>> sock = socket()\n"
+">>> sock.connect((host, port))\n"
+">>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_ADD)], 0)\n"
+"\n"
+"To wait one second for it to become writeable:\n"
+">>> kq.control(None, 1, 1000)\n"
+"\n"
+"To stop listening:\n"
+">>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_DELETE)], 0)");
+
+static PyObject *
+select_kqueue_impl(PyTypeObject *type);
+
+static PyObject *
+select_kqueue(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+
+ if ((type == _selectstate_global->kqueue_queue_Type) &&
+ !_PyArg_NoPositional("kqueue", args)) {
+ goto exit;
+ }
+ if ((type == _selectstate_global->kqueue_queue_Type) &&
+ !_PyArg_NoKeywords("kqueue", kwargs)) {
+ goto exit;
+ }
+ return_value = select_kqueue_impl(type);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_KQUEUE) */
+
+#if defined(HAVE_KQUEUE)
+
+PyDoc_STRVAR(select_kqueue_close__doc__,
+"close($self, /)\n"
+"--\n"
+"\n"
+"Close the kqueue control file descriptor.\n"
+"\n"
+"Further operations on the kqueue object will raise an exception.");
+
+#define SELECT_KQUEUE_CLOSE_METHODDEF \
+ {"close", (PyCFunction)select_kqueue_close, METH_NOARGS, select_kqueue_close__doc__},
+
+static PyObject *
+select_kqueue_close_impl(kqueue_queue_Object *self);
+
+static PyObject *
+select_kqueue_close(kqueue_queue_Object *self, PyObject *Py_UNUSED(ignored))
+{
+ return select_kqueue_close_impl(self);
+}
+
+#endif /* defined(HAVE_KQUEUE) */
+
+#if defined(HAVE_KQUEUE)
+
+PyDoc_STRVAR(select_kqueue_fileno__doc__,
+"fileno($self, /)\n"
+"--\n"
+"\n"
+"Return the kqueue control file descriptor.");
+
+#define SELECT_KQUEUE_FILENO_METHODDEF \
+ {"fileno", (PyCFunction)select_kqueue_fileno, METH_NOARGS, select_kqueue_fileno__doc__},
+
+static PyObject *
+select_kqueue_fileno_impl(kqueue_queue_Object *self);
+
+static PyObject *
+select_kqueue_fileno(kqueue_queue_Object *self, PyObject *Py_UNUSED(ignored))
+{
+ return select_kqueue_fileno_impl(self);
+}
+
+#endif /* defined(HAVE_KQUEUE) */
+
+#if defined(HAVE_KQUEUE)
+
+PyDoc_STRVAR(select_kqueue_fromfd__doc__,
+"fromfd($type, fd, /)\n"
+"--\n"
+"\n"
+"Create a kqueue object from a given control fd.");
+
+#define SELECT_KQUEUE_FROMFD_METHODDEF \
+ {"fromfd", (PyCFunction)select_kqueue_fromfd, METH_O|METH_CLASS, select_kqueue_fromfd__doc__},
+
+static PyObject *
+select_kqueue_fromfd_impl(PyTypeObject *type, int fd);
+
+static PyObject *
+select_kqueue_fromfd(PyTypeObject *type, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int fd;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = select_kqueue_fromfd_impl(type, fd);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_KQUEUE) */
+
+#if defined(HAVE_KQUEUE)
+
+PyDoc_STRVAR(select_kqueue_control__doc__,
+"control($self, changelist, maxevents, timeout=None, /)\n"
+"--\n"
+"\n"
+"Calls the kernel kevent function.\n"
+"\n"
+" changelist\n"
+" Must be an iterable of kevent objects describing the changes to be made\n"
+" to the kernel\'s watch list or None.\n"
+" maxevents\n"
+" The maximum number of events that the kernel will return.\n"
+" timeout\n"
+" The maximum time to wait in seconds, or else None to wait forever.\n"
+" This accepts floats for smaller timeouts, too.");
+
+#define SELECT_KQUEUE_CONTROL_METHODDEF \
+ {"control", (PyCFunction)(void(*)(void))select_kqueue_control, METH_FASTCALL, select_kqueue_control__doc__},
+
+static PyObject *
+select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
+ int maxevents, PyObject *otimeout);
+
+static PyObject *
+select_kqueue_control(kqueue_queue_Object *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *changelist;
+ int maxevents;
+ PyObject *otimeout = Py_None;
+
+ if (!_PyArg_CheckPositional("control", nargs, 2, 3)) {
+ goto exit;
+ }
+ changelist = args[0];
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ maxevents = _PyLong_AsInt(args[1]);
+ if (maxevents == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ otimeout = args[2];
+skip_optional:
+ return_value = select_kqueue_control_impl(self, changelist, maxevents, otimeout);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_KQUEUE) */
+
+#ifndef SELECT_POLL_REGISTER_METHODDEF
+ #define SELECT_POLL_REGISTER_METHODDEF
+#endif /* !defined(SELECT_POLL_REGISTER_METHODDEF) */
+
+#ifndef SELECT_POLL_MODIFY_METHODDEF
+ #define SELECT_POLL_MODIFY_METHODDEF
+#endif /* !defined(SELECT_POLL_MODIFY_METHODDEF) */
+
+#ifndef SELECT_POLL_UNREGISTER_METHODDEF
+ #define SELECT_POLL_UNREGISTER_METHODDEF
+#endif /* !defined(SELECT_POLL_UNREGISTER_METHODDEF) */
+
+#ifndef SELECT_POLL_POLL_METHODDEF
+ #define SELECT_POLL_POLL_METHODDEF
+#endif /* !defined(SELECT_POLL_POLL_METHODDEF) */
+
+#ifndef SELECT_DEVPOLL_REGISTER_METHODDEF
+ #define SELECT_DEVPOLL_REGISTER_METHODDEF
+#endif /* !defined(SELECT_DEVPOLL_REGISTER_METHODDEF) */
+
+#ifndef SELECT_DEVPOLL_MODIFY_METHODDEF
+ #define SELECT_DEVPOLL_MODIFY_METHODDEF
+#endif /* !defined(SELECT_DEVPOLL_MODIFY_METHODDEF) */
+
+#ifndef SELECT_DEVPOLL_UNREGISTER_METHODDEF
+ #define SELECT_DEVPOLL_UNREGISTER_METHODDEF
+#endif /* !defined(SELECT_DEVPOLL_UNREGISTER_METHODDEF) */
+
+#ifndef SELECT_DEVPOLL_POLL_METHODDEF
+ #define SELECT_DEVPOLL_POLL_METHODDEF
+#endif /* !defined(SELECT_DEVPOLL_POLL_METHODDEF) */
+
+#ifndef SELECT_DEVPOLL_CLOSE_METHODDEF
+ #define SELECT_DEVPOLL_CLOSE_METHODDEF
+#endif /* !defined(SELECT_DEVPOLL_CLOSE_METHODDEF) */
+
+#ifndef SELECT_DEVPOLL_FILENO_METHODDEF
+ #define SELECT_DEVPOLL_FILENO_METHODDEF
+#endif /* !defined(SELECT_DEVPOLL_FILENO_METHODDEF) */
+
+#ifndef SELECT_POLL_METHODDEF
+ #define SELECT_POLL_METHODDEF
+#endif /* !defined(SELECT_POLL_METHODDEF) */
+
+#ifndef SELECT_DEVPOLL_METHODDEF
+ #define SELECT_DEVPOLL_METHODDEF
+#endif /* !defined(SELECT_DEVPOLL_METHODDEF) */
+
+#ifndef SELECT_EPOLL_CLOSE_METHODDEF
+ #define SELECT_EPOLL_CLOSE_METHODDEF
+#endif /* !defined(SELECT_EPOLL_CLOSE_METHODDEF) */
+
+#ifndef SELECT_EPOLL_FILENO_METHODDEF
+ #define SELECT_EPOLL_FILENO_METHODDEF
+#endif /* !defined(SELECT_EPOLL_FILENO_METHODDEF) */
+
+#ifndef SELECT_EPOLL_FROMFD_METHODDEF
+ #define SELECT_EPOLL_FROMFD_METHODDEF
+#endif /* !defined(SELECT_EPOLL_FROMFD_METHODDEF) */
+
+#ifndef SELECT_EPOLL_REGISTER_METHODDEF
+ #define SELECT_EPOLL_REGISTER_METHODDEF
+#endif /* !defined(SELECT_EPOLL_REGISTER_METHODDEF) */
+
+#ifndef SELECT_EPOLL_MODIFY_METHODDEF
+ #define SELECT_EPOLL_MODIFY_METHODDEF
+#endif /* !defined(SELECT_EPOLL_MODIFY_METHODDEF) */
+
+#ifndef SELECT_EPOLL_UNREGISTER_METHODDEF
+ #define SELECT_EPOLL_UNREGISTER_METHODDEF
+#endif /* !defined(SELECT_EPOLL_UNREGISTER_METHODDEF) */
+
+#ifndef SELECT_EPOLL_POLL_METHODDEF
+ #define SELECT_EPOLL_POLL_METHODDEF
+#endif /* !defined(SELECT_EPOLL_POLL_METHODDEF) */
+
+#ifndef SELECT_EPOLL___ENTER___METHODDEF
+ #define SELECT_EPOLL___ENTER___METHODDEF
+#endif /* !defined(SELECT_EPOLL___ENTER___METHODDEF) */
+
+#ifndef SELECT_EPOLL___EXIT___METHODDEF
+ #define SELECT_EPOLL___EXIT___METHODDEF
+#endif /* !defined(SELECT_EPOLL___EXIT___METHODDEF) */
+
+#ifndef SELECT_KQUEUE_CLOSE_METHODDEF
+ #define SELECT_KQUEUE_CLOSE_METHODDEF
+#endif /* !defined(SELECT_KQUEUE_CLOSE_METHODDEF) */
+
+#ifndef SELECT_KQUEUE_FILENO_METHODDEF
+ #define SELECT_KQUEUE_FILENO_METHODDEF
+#endif /* !defined(SELECT_KQUEUE_FILENO_METHODDEF) */
+
+#ifndef SELECT_KQUEUE_FROMFD_METHODDEF
+ #define SELECT_KQUEUE_FROMFD_METHODDEF
+#endif /* !defined(SELECT_KQUEUE_FROMFD_METHODDEF) */
+
+#ifndef SELECT_KQUEUE_CONTROL_METHODDEF
+ #define SELECT_KQUEUE_CONTROL_METHODDEF
+#endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */
+/*[clinic end generated code: output=ef42c3485a8fe3a0 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/sha1module.c.h b/contrib/tools/python3/src/Modules/clinic/sha1module.c.h
index 5a464582d2..fc37b1ab88 100644
--- a/contrib/tools/python3/src/Modules/clinic/sha1module.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/sha1module.c.h
@@ -66,53 +66,53 @@ PyDoc_STRVAR(SHA1Type_update__doc__,
{"update", (PyCFunction)SHA1Type_update, METH_O, SHA1Type_update__doc__},
PyDoc_STRVAR(_sha1_sha1__doc__,
-"sha1($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"sha1($module, /, string=b\'\', *, usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new SHA1 hash object; optionally initialized with a string.");
#define _SHA1_SHA1_METHODDEF \
- {"sha1", (PyCFunction)(void(*)(void))_sha1_sha1, METH_FASTCALL|METH_KEYWORDS, _sha1_sha1__doc__},
+ {"sha1", (PyCFunction)(void(*)(void))_sha1_sha1, METH_FASTCALL|METH_KEYWORDS, _sha1_sha1__doc__},
static PyObject *
-_sha1_sha1_impl(PyObject *module, PyObject *string, int usedforsecurity);
+_sha1_sha1_impl(PyObject *module, PyObject *string, int usedforsecurity);
static PyObject *
_sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sha1", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sha1", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *string = NULL;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- string = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _sha1_sha1_impl(module, string, usedforsecurity);
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ string = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _sha1_sha1_impl(module, string, usedforsecurity);
exit:
return return_value;
}
-/*[clinic end generated code: output=3ddd637ae17e14b3 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3ddd637ae17e14b3 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/sha256module.c.h b/contrib/tools/python3/src/Modules/clinic/sha256module.c.h
index 8e6e7c64da..2a788ea984 100644
--- a/contrib/tools/python3/src/Modules/clinic/sha256module.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/sha256module.c.h
@@ -66,104 +66,104 @@ PyDoc_STRVAR(SHA256Type_update__doc__,
{"update", (PyCFunction)SHA256Type_update, METH_O, SHA256Type_update__doc__},
PyDoc_STRVAR(_sha256_sha256__doc__,
-"sha256($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"sha256($module, /, string=b\'\', *, usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new SHA-256 hash object; optionally initialized with a string.");
#define _SHA256_SHA256_METHODDEF \
- {"sha256", (PyCFunction)(void(*)(void))_sha256_sha256, METH_FASTCALL|METH_KEYWORDS, _sha256_sha256__doc__},
+ {"sha256", (PyCFunction)(void(*)(void))_sha256_sha256, METH_FASTCALL|METH_KEYWORDS, _sha256_sha256__doc__},
static PyObject *
-_sha256_sha256_impl(PyObject *module, PyObject *string, int usedforsecurity);
+_sha256_sha256_impl(PyObject *module, PyObject *string, int usedforsecurity);
static PyObject *
_sha256_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sha256", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sha256", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *string = NULL;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- string = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _sha256_sha256_impl(module, string, usedforsecurity);
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ string = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _sha256_sha256_impl(module, string, usedforsecurity);
exit:
return return_value;
}
PyDoc_STRVAR(_sha256_sha224__doc__,
-"sha224($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"sha224($module, /, string=b\'\', *, usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new SHA-224 hash object; optionally initialized with a string.");
#define _SHA256_SHA224_METHODDEF \
- {"sha224", (PyCFunction)(void(*)(void))_sha256_sha224, METH_FASTCALL|METH_KEYWORDS, _sha256_sha224__doc__},
+ {"sha224", (PyCFunction)(void(*)(void))_sha256_sha224, METH_FASTCALL|METH_KEYWORDS, _sha256_sha224__doc__},
static PyObject *
-_sha256_sha224_impl(PyObject *module, PyObject *string, int usedforsecurity);
+_sha256_sha224_impl(PyObject *module, PyObject *string, int usedforsecurity);
static PyObject *
_sha256_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sha224", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sha224", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *string = NULL;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ string = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- string = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _sha256_sha224_impl(module, string, usedforsecurity);
+skip_optional_kwonly:
+ return_value = _sha256_sha224_impl(module, string, usedforsecurity);
exit:
return return_value;
}
-/*[clinic end generated code: output=c8cca8adbe72ec9a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c8cca8adbe72ec9a input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/sha512module.c.h b/contrib/tools/python3/src/Modules/clinic/sha512module.c.h
index 480202dca9..b8185b62bb 100644
--- a/contrib/tools/python3/src/Modules/clinic/sha512module.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/sha512module.c.h
@@ -66,104 +66,104 @@ PyDoc_STRVAR(SHA512Type_update__doc__,
{"update", (PyCFunction)SHA512Type_update, METH_O, SHA512Type_update__doc__},
PyDoc_STRVAR(_sha512_sha512__doc__,
-"sha512($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"sha512($module, /, string=b\'\', *, usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new SHA-512 hash object; optionally initialized with a string.");
#define _SHA512_SHA512_METHODDEF \
- {"sha512", (PyCFunction)(void(*)(void))_sha512_sha512, METH_FASTCALL|METH_KEYWORDS, _sha512_sha512__doc__},
+ {"sha512", (PyCFunction)(void(*)(void))_sha512_sha512, METH_FASTCALL|METH_KEYWORDS, _sha512_sha512__doc__},
static PyObject *
-_sha512_sha512_impl(PyObject *module, PyObject *string, int usedforsecurity);
+_sha512_sha512_impl(PyObject *module, PyObject *string, int usedforsecurity);
static PyObject *
_sha512_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sha512", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sha512", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *string = NULL;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- string = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _sha512_sha512_impl(module, string, usedforsecurity);
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ string = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
+ return_value = _sha512_sha512_impl(module, string, usedforsecurity);
exit:
return return_value;
}
PyDoc_STRVAR(_sha512_sha384__doc__,
-"sha384($module, /, string=b\'\', *, usedforsecurity=True)\n"
+"sha384($module, /, string=b\'\', *, usedforsecurity=True)\n"
"--\n"
"\n"
"Return a new SHA-384 hash object; optionally initialized with a string.");
#define _SHA512_SHA384_METHODDEF \
- {"sha384", (PyCFunction)(void(*)(void))_sha512_sha384, METH_FASTCALL|METH_KEYWORDS, _sha512_sha384__doc__},
+ {"sha384", (PyCFunction)(void(*)(void))_sha512_sha384, METH_FASTCALL|METH_KEYWORDS, _sha512_sha384__doc__},
static PyObject *
-_sha512_sha384_impl(PyObject *module, PyObject *string, int usedforsecurity);
+_sha512_sha384_impl(PyObject *module, PyObject *string, int usedforsecurity);
static PyObject *
_sha512_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sha384", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static const char * const _keywords[] = {"string", "usedforsecurity", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sha384", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *string = NULL;
- int usedforsecurity = 1;
+ int usedforsecurity = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ string = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ usedforsecurity = PyObject_IsTrue(args[1]);
+ if (usedforsecurity < 0) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- string = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- usedforsecurity = PyObject_IsTrue(args[1]);
- if (usedforsecurity < 0) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = _sha512_sha384_impl(module, string, usedforsecurity);
+skip_optional_kwonly:
+ return_value = _sha512_sha384_impl(module, string, usedforsecurity);
exit:
return return_value;
}
-/*[clinic end generated code: output=bbfa72d8703c82b5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bbfa72d8703c82b5 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/signalmodule.c.h b/contrib/tools/python3/src/Modules/clinic/signalmodule.c.h
index 3361ce3b1d..0fb25d5640 100644
--- a/contrib/tools/python3/src/Modules/clinic/signalmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/signalmodule.c.h
@@ -23,15 +23,15 @@ signal_alarm(PyObject *module, PyObject *arg)
int seconds;
long _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ seconds = _PyLong_AsInt(arg);
+ if (seconds == -1 && PyErr_Occurred()) {
goto exit;
}
- seconds = _PyLong_AsInt(arg);
- if (seconds == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = signal_alarm_impl(module, seconds);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -66,39 +66,39 @@ signal_pause(PyObject *module, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_PAUSE) */
-PyDoc_STRVAR(signal_raise_signal__doc__,
-"raise_signal($module, signalnum, /)\n"
-"--\n"
-"\n"
-"Send a signal to the executing process.");
-
-#define SIGNAL_RAISE_SIGNAL_METHODDEF \
- {"raise_signal", (PyCFunction)signal_raise_signal, METH_O, signal_raise_signal__doc__},
-
-static PyObject *
-signal_raise_signal_impl(PyObject *module, int signalnum);
-
-static PyObject *
-signal_raise_signal(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int signalnum;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- signalnum = _PyLong_AsInt(arg);
- if (signalnum == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = signal_raise_signal_impl(module, signalnum);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(signal_raise_signal__doc__,
+"raise_signal($module, signalnum, /)\n"
+"--\n"
+"\n"
+"Send a signal to the executing process.");
+
+#define SIGNAL_RAISE_SIGNAL_METHODDEF \
+ {"raise_signal", (PyCFunction)signal_raise_signal, METH_O, signal_raise_signal__doc__},
+
+static PyObject *
+signal_raise_signal_impl(PyObject *module, int signalnum);
+
+static PyObject *
+signal_raise_signal(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int signalnum;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ signalnum = _PyLong_AsInt(arg);
+ if (signalnum == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = signal_raise_signal_impl(module, signalnum);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(signal_signal__doc__,
"signal($module, signalnum, handler, /)\n"
"--\n"
@@ -113,7 +113,7 @@ PyDoc_STRVAR(signal_signal__doc__,
"the first is the signal number, the second is the interrupted stack frame.");
#define SIGNAL_SIGNAL_METHODDEF \
- {"signal", (PyCFunction)(void(*)(void))signal_signal, METH_FASTCALL, signal_signal__doc__},
+ {"signal", (PyCFunction)(void(*)(void))signal_signal, METH_FASTCALL, signal_signal__doc__},
static PyObject *
signal_signal_impl(PyObject *module, int signalnum, PyObject *handler);
@@ -125,19 +125,19 @@ signal_signal(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int signalnum;
PyObject *handler;
- if (!_PyArg_CheckPositional("signal", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("signal", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ signalnum = _PyLong_AsInt(args[0]);
+ if (signalnum == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- signalnum = _PyLong_AsInt(args[0]);
- if (signalnum == -1 && PyErr_Occurred()) {
- goto exit;
- }
- handler = args[1];
+ handler = args[1];
return_value = signal_signal_impl(module, signalnum, handler);
exit:
@@ -168,57 +168,57 @@ signal_getsignal(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int signalnum;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ signalnum = _PyLong_AsInt(arg);
+ if (signalnum == -1 && PyErr_Occurred()) {
goto exit;
}
- signalnum = _PyLong_AsInt(arg);
- if (signalnum == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = signal_getsignal_impl(module, signalnum);
exit:
return return_value;
}
-PyDoc_STRVAR(signal_strsignal__doc__,
-"strsignal($module, signalnum, /)\n"
-"--\n"
-"\n"
-"Return the system description of the given signal.\n"
-"\n"
-"The return values can be such as \"Interrupt\", \"Segmentation fault\", etc.\n"
-"Returns None if the signal is not recognized.");
-
-#define SIGNAL_STRSIGNAL_METHODDEF \
- {"strsignal", (PyCFunction)signal_strsignal, METH_O, signal_strsignal__doc__},
-
-static PyObject *
-signal_strsignal_impl(PyObject *module, int signalnum);
-
-static PyObject *
-signal_strsignal(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int signalnum;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- signalnum = _PyLong_AsInt(arg);
- if (signalnum == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = signal_strsignal_impl(module, signalnum);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(signal_strsignal__doc__,
+"strsignal($module, signalnum, /)\n"
+"--\n"
+"\n"
+"Return the system description of the given signal.\n"
+"\n"
+"The return values can be such as \"Interrupt\", \"Segmentation fault\", etc.\n"
+"Returns None if the signal is not recognized.");
+
+#define SIGNAL_STRSIGNAL_METHODDEF \
+ {"strsignal", (PyCFunction)signal_strsignal, METH_O, signal_strsignal__doc__},
+
+static PyObject *
+signal_strsignal_impl(PyObject *module, int signalnum);
+
+static PyObject *
+signal_strsignal(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int signalnum;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ signalnum = _PyLong_AsInt(arg);
+ if (signalnum == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = signal_strsignal_impl(module, signalnum);
+
+exit:
+ return return_value;
+}
+
#if defined(HAVE_SIGINTERRUPT)
PyDoc_STRVAR(signal_siginterrupt__doc__,
@@ -231,7 +231,7 @@ PyDoc_STRVAR(signal_siginterrupt__doc__,
"signal sig, else system calls will be interrupted.");
#define SIGNAL_SIGINTERRUPT_METHODDEF \
- {"siginterrupt", (PyCFunction)(void(*)(void))signal_siginterrupt, METH_FASTCALL, signal_siginterrupt__doc__},
+ {"siginterrupt", (PyCFunction)(void(*)(void))signal_siginterrupt, METH_FASTCALL, signal_siginterrupt__doc__},
static PyObject *
signal_siginterrupt_impl(PyObject *module, int signalnum, int flag);
@@ -243,27 +243,27 @@ signal_siginterrupt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int signalnum;
int flag;
- if (!_PyArg_CheckPositional("siginterrupt", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- signalnum = _PyLong_AsInt(args[0]);
- if (signalnum == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(args[1]);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("siginterrupt", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ signalnum = _PyLong_AsInt(args[0]);
+ if (signalnum == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(args[1]);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = signal_siginterrupt_impl(module, signalnum, flag);
exit:
@@ -286,7 +286,7 @@ PyDoc_STRVAR(signal_setitimer__doc__,
"Returns old values as a tuple: (delay, interval).");
#define SIGNAL_SETITIMER_METHODDEF \
- {"setitimer", (PyCFunction)(void(*)(void))signal_setitimer, METH_FASTCALL, signal_setitimer__doc__},
+ {"setitimer", (PyCFunction)(void(*)(void))signal_setitimer, METH_FASTCALL, signal_setitimer__doc__},
static PyObject *
signal_setitimer_impl(PyObject *module, int which, PyObject *seconds,
@@ -300,24 +300,24 @@ signal_setitimer(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *seconds;
PyObject *interval = NULL;
- if (!_PyArg_CheckPositional("setitimer", nargs, 2, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- which = _PyLong_AsInt(args[0]);
- if (which == -1 && PyErr_Occurred()) {
- goto exit;
- }
- seconds = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- interval = args[2];
-skip_optional:
+ if (!_PyArg_CheckPositional("setitimer", nargs, 2, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ which = _PyLong_AsInt(args[0]);
+ if (which == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ seconds = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ interval = args[2];
+skip_optional:
return_value = signal_setitimer_impl(module, which, seconds, interval);
exit:
@@ -346,15 +346,15 @@ signal_getitimer(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int which;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ which = _PyLong_AsInt(arg);
+ if (which == -1 && PyErr_Occurred()) {
goto exit;
}
- which = _PyLong_AsInt(arg);
- if (which == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = signal_getitimer_impl(module, which);
exit:
@@ -363,7 +363,7 @@ exit:
#endif /* defined(HAVE_GETITIMER) */
-#if defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK)
+#if defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK)
PyDoc_STRVAR(signal_pthread_sigmask__doc__,
"pthread_sigmask($module, how, mask, /)\n"
@@ -372,42 +372,42 @@ PyDoc_STRVAR(signal_pthread_sigmask__doc__,
"Fetch and/or change the signal mask of the calling thread.");
#define SIGNAL_PTHREAD_SIGMASK_METHODDEF \
- {"pthread_sigmask", (PyCFunction)(void(*)(void))signal_pthread_sigmask, METH_FASTCALL, signal_pthread_sigmask__doc__},
+ {"pthread_sigmask", (PyCFunction)(void(*)(void))signal_pthread_sigmask, METH_FASTCALL, signal_pthread_sigmask__doc__},
static PyObject *
-signal_pthread_sigmask_impl(PyObject *module, int how, sigset_t mask);
+signal_pthread_sigmask_impl(PyObject *module, int how, sigset_t mask);
static PyObject *
signal_pthread_sigmask(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
int how;
- sigset_t mask;
-
- if (!_PyArg_CheckPositional("pthread_sigmask", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- how = _PyLong_AsInt(args[0]);
- if (how == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!_Py_Sigset_Converter(args[1], &mask)) {
- goto exit;
- }
+ sigset_t mask;
+
+ if (!_PyArg_CheckPositional("pthread_sigmask", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ how = _PyLong_AsInt(args[0]);
+ if (how == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!_Py_Sigset_Converter(args[1], &mask)) {
+ goto exit;
+ }
return_value = signal_pthread_sigmask_impl(module, how, mask);
exit:
return return_value;
}
-#endif /* defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK) */
+#endif /* defined(HAVE_SIGSET_T) && defined(PYPTHREAD_SIGMASK) */
-#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING)
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING)
PyDoc_STRVAR(signal_sigpending__doc__,
"sigpending($module, /)\n"
@@ -430,9 +430,9 @@ signal_sigpending(PyObject *module, PyObject *Py_UNUSED(ignored))
return signal_sigpending_impl(module);
}
-#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING) */
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGPENDING) */
-#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT)
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT)
PyDoc_STRVAR(signal_sigwait__doc__,
"sigwait($module, sigset, /)\n"
@@ -447,52 +447,52 @@ PyDoc_STRVAR(signal_sigwait__doc__,
#define SIGNAL_SIGWAIT_METHODDEF \
{"sigwait", (PyCFunction)signal_sigwait, METH_O, signal_sigwait__doc__},
-static PyObject *
-signal_sigwait_impl(PyObject *module, sigset_t sigset);
-
-static PyObject *
-signal_sigwait(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- sigset_t sigset;
-
- if (!_Py_Sigset_Converter(arg, &sigset)) {
- goto exit;
- }
- return_value = signal_sigwait_impl(module, sigset);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT) */
-
-#if ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS))
-
-PyDoc_STRVAR(signal_valid_signals__doc__,
-"valid_signals($module, /)\n"
-"--\n"
-"\n"
-"Return a set of valid signal numbers on this platform.\n"
-"\n"
-"The signal numbers returned by this function can be safely passed to\n"
-"functions like `pthread_sigmask`.");
-
-#define SIGNAL_VALID_SIGNALS_METHODDEF \
- {"valid_signals", (PyCFunction)signal_valid_signals, METH_NOARGS, signal_valid_signals__doc__},
-
-static PyObject *
-signal_valid_signals_impl(PyObject *module);
-
-static PyObject *
-signal_valid_signals(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return signal_valid_signals_impl(module);
-}
-
-#endif /* ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)) */
-
-#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO)
+static PyObject *
+signal_sigwait_impl(PyObject *module, sigset_t sigset);
+
+static PyObject *
+signal_sigwait(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ sigset_t sigset;
+
+ if (!_Py_Sigset_Converter(arg, &sigset)) {
+ goto exit;
+ }
+ return_value = signal_sigwait_impl(module, sigset);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAIT) */
+
+#if ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS))
+
+PyDoc_STRVAR(signal_valid_signals__doc__,
+"valid_signals($module, /)\n"
+"--\n"
+"\n"
+"Return a set of valid signal numbers on this platform.\n"
+"\n"
+"The signal numbers returned by this function can be safely passed to\n"
+"functions like `pthread_sigmask`.");
+
+#define SIGNAL_VALID_SIGNALS_METHODDEF \
+ {"valid_signals", (PyCFunction)signal_valid_signals, METH_NOARGS, signal_valid_signals__doc__},
+
+static PyObject *
+signal_valid_signals_impl(PyObject *module);
+
+static PyObject *
+signal_valid_signals(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return signal_valid_signals_impl(module);
+}
+
+#endif /* ((defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)) */
+
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO)
PyDoc_STRVAR(signal_sigwaitinfo__doc__,
"sigwaitinfo($module, sigset, /)\n"
@@ -505,27 +505,27 @@ PyDoc_STRVAR(signal_sigwaitinfo__doc__,
#define SIGNAL_SIGWAITINFO_METHODDEF \
{"sigwaitinfo", (PyCFunction)signal_sigwaitinfo, METH_O, signal_sigwaitinfo__doc__},
-static PyObject *
-signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset);
-
-static PyObject *
-signal_sigwaitinfo(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- sigset_t sigset;
-
- if (!_Py_Sigset_Converter(arg, &sigset)) {
- goto exit;
- }
- return_value = signal_sigwaitinfo_impl(module, sigset);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO) */
-
-#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT)
+static PyObject *
+signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset);
+
+static PyObject *
+signal_sigwaitinfo(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ sigset_t sigset;
+
+ if (!_Py_Sigset_Converter(arg, &sigset)) {
+ goto exit;
+ }
+ return_value = signal_sigwaitinfo_impl(module, sigset);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGWAITINFO) */
+
+#if defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT)
PyDoc_STRVAR(signal_sigtimedwait__doc__,
"sigtimedwait($module, sigset, timeout, /)\n"
@@ -536,33 +536,33 @@ PyDoc_STRVAR(signal_sigtimedwait__doc__,
"The timeout is specified in seconds, with floating point numbers allowed.");
#define SIGNAL_SIGTIMEDWAIT_METHODDEF \
- {"sigtimedwait", (PyCFunction)(void(*)(void))signal_sigtimedwait, METH_FASTCALL, signal_sigtimedwait__doc__},
+ {"sigtimedwait", (PyCFunction)(void(*)(void))signal_sigtimedwait, METH_FASTCALL, signal_sigtimedwait__doc__},
static PyObject *
-signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
+signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
PyObject *timeout_obj);
static PyObject *
signal_sigtimedwait(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- sigset_t sigset;
+ sigset_t sigset;
PyObject *timeout_obj;
- if (!_PyArg_CheckPositional("sigtimedwait", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("sigtimedwait", nargs, 2, 2)) {
goto exit;
}
- if (!_Py_Sigset_Converter(args[0], &sigset)) {
- goto exit;
- }
- timeout_obj = args[1];
+ if (!_Py_Sigset_Converter(args[0], &sigset)) {
+ goto exit;
+ }
+ timeout_obj = args[1];
return_value = signal_sigtimedwait_impl(module, sigset, timeout_obj);
exit:
return return_value;
}
-#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT) */
+#endif /* defined(HAVE_SIGSET_T) && defined(HAVE_SIGTIMEDWAIT) */
#if defined(HAVE_PTHREAD_KILL)
@@ -573,7 +573,7 @@ PyDoc_STRVAR(signal_pthread_kill__doc__,
"Send a signal to a thread.");
#define SIGNAL_PTHREAD_KILL_METHODDEF \
- {"pthread_kill", (PyCFunction)(void(*)(void))signal_pthread_kill, METH_FASTCALL, signal_pthread_kill__doc__},
+ {"pthread_kill", (PyCFunction)(void(*)(void))signal_pthread_kill, METH_FASTCALL, signal_pthread_kill__doc__},
static PyObject *
signal_pthread_kill_impl(PyObject *module, unsigned long thread_id,
@@ -586,23 +586,23 @@ signal_pthread_kill(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
unsigned long thread_id;
int signalnum;
- if (!_PyArg_CheckPositional("pthread_kill", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyLong_Check(args[0])) {
- _PyArg_BadArgument("pthread_kill", "argument 1", "int", args[0]);
- goto exit;
- }
- thread_id = PyLong_AsUnsignedLongMask(args[0]);
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- signalnum = _PyLong_AsInt(args[1]);
- if (signalnum == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("pthread_kill", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyLong_Check(args[0])) {
+ _PyArg_BadArgument("pthread_kill", "argument 1", "int", args[0]);
+ goto exit;
+ }
+ thread_id = PyLong_AsUnsignedLongMask(args[0]);
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ signalnum = _PyLong_AsInt(args[1]);
+ if (signalnum == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = signal_pthread_kill_impl(module, thread_id, signalnum);
exit:
@@ -611,76 +611,76 @@ exit:
#endif /* defined(HAVE_PTHREAD_KILL) */
-#if (defined(__linux__) && defined(__NR_pidfd_send_signal))
-
-PyDoc_STRVAR(signal_pidfd_send_signal__doc__,
-"pidfd_send_signal($module, pidfd, signalnum, siginfo=None, flags=0, /)\n"
-"--\n"
-"\n"
-"Send a signal to a process referred to by a pid file descriptor.");
-
-#define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF \
- {"pidfd_send_signal", (PyCFunction)(void(*)(void))signal_pidfd_send_signal, METH_FASTCALL, signal_pidfd_send_signal__doc__},
-
-static PyObject *
-signal_pidfd_send_signal_impl(PyObject *module, int pidfd, int signalnum,
- PyObject *siginfo, int flags);
-
-static PyObject *
-signal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int pidfd;
- int signalnum;
- PyObject *siginfo = Py_None;
- int flags = 0;
-
- if (!_PyArg_CheckPositional("pidfd_send_signal", nargs, 2, 4)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- pidfd = _PyLong_AsInt(args[0]);
- if (pidfd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- signalnum = _PyLong_AsInt(args[1]);
- if (signalnum == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- siginfo = args[2];
- if (nargs < 4) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[3]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = signal_pidfd_send_signal_impl(module, pidfd, signalnum, siginfo, flags);
-
-exit:
- return return_value;
-}
-
-#endif /* (defined(__linux__) && defined(__NR_pidfd_send_signal)) */
-
+#if (defined(__linux__) && defined(__NR_pidfd_send_signal))
+
+PyDoc_STRVAR(signal_pidfd_send_signal__doc__,
+"pidfd_send_signal($module, pidfd, signalnum, siginfo=None, flags=0, /)\n"
+"--\n"
+"\n"
+"Send a signal to a process referred to by a pid file descriptor.");
+
+#define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF \
+ {"pidfd_send_signal", (PyCFunction)(void(*)(void))signal_pidfd_send_signal, METH_FASTCALL, signal_pidfd_send_signal__doc__},
+
+static PyObject *
+signal_pidfd_send_signal_impl(PyObject *module, int pidfd, int signalnum,
+ PyObject *siginfo, int flags);
+
+static PyObject *
+signal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int pidfd;
+ int signalnum;
+ PyObject *siginfo = Py_None;
+ int flags = 0;
+
+ if (!_PyArg_CheckPositional("pidfd_send_signal", nargs, 2, 4)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ pidfd = _PyLong_AsInt(args[0]);
+ if (pidfd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ signalnum = _PyLong_AsInt(args[1]);
+ if (signalnum == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ siginfo = args[2];
+ if (nargs < 4) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[3]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = signal_pidfd_send_signal_impl(module, pidfd, signalnum, siginfo, flags);
+
+exit:
+ return return_value;
+}
+
+#endif /* (defined(__linux__) && defined(__NR_pidfd_send_signal)) */
+
#ifndef SIGNAL_ALARM_METHODDEF
#define SIGNAL_ALARM_METHODDEF
#endif /* !defined(SIGNAL_ALARM_METHODDEF) */
@@ -713,10 +713,10 @@ exit:
#define SIGNAL_SIGWAIT_METHODDEF
#endif /* !defined(SIGNAL_SIGWAIT_METHODDEF) */
-#ifndef SIGNAL_VALID_SIGNALS_METHODDEF
- #define SIGNAL_VALID_SIGNALS_METHODDEF
-#endif /* !defined(SIGNAL_VALID_SIGNALS_METHODDEF) */
-
+#ifndef SIGNAL_VALID_SIGNALS_METHODDEF
+ #define SIGNAL_VALID_SIGNALS_METHODDEF
+#endif /* !defined(SIGNAL_VALID_SIGNALS_METHODDEF) */
+
#ifndef SIGNAL_SIGWAITINFO_METHODDEF
#define SIGNAL_SIGWAITINFO_METHODDEF
#endif /* !defined(SIGNAL_SIGWAITINFO_METHODDEF) */
@@ -728,8 +728,8 @@ exit:
#ifndef SIGNAL_PTHREAD_KILL_METHODDEF
#define SIGNAL_PTHREAD_KILL_METHODDEF
#endif /* !defined(SIGNAL_PTHREAD_KILL_METHODDEF) */
-
-#ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
- #define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
-#endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */
-/*[clinic end generated code: output=3c8b80f14df17563 input=a9049054013a1b77]*/
+
+#ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
+ #define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
+#endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */
+/*[clinic end generated code: output=3c8b80f14df17563 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/spwdmodule.c.h b/contrib/tools/python3/src/Modules/clinic/spwdmodule.c.h
index 159f982ecc..411d2344e1 100644
--- a/contrib/tools/python3/src/Modules/clinic/spwdmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/spwdmodule.c.h
@@ -24,14 +24,14 @@ spwd_getspnam(PyObject *module, PyObject *arg_)
PyObject *return_value = NULL;
PyObject *arg;
- if (!PyUnicode_Check(arg_)) {
- _PyArg_BadArgument("getspnam", "argument", "str", arg_);
+ if (!PyUnicode_Check(arg_)) {
+ _PyArg_BadArgument("getspnam", "argument", "str", arg_);
goto exit;
}
- if (PyUnicode_READY(arg_) == -1) {
- goto exit;
- }
- arg = arg_;
+ if (PyUnicode_READY(arg_) == -1) {
+ goto exit;
+ }
+ arg = arg_;
return_value = spwd_getspnam_impl(module, arg);
exit:
@@ -71,4 +71,4 @@ spwd_getspall(PyObject *module, PyObject *Py_UNUSED(ignored))
#ifndef SPWD_GETSPALL_METHODDEF
#define SPWD_GETSPALL_METHODDEF
#endif /* !defined(SPWD_GETSPALL_METHODDEF) */
-/*[clinic end generated code: output=eec8d0bedcd312e5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=eec8d0bedcd312e5 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/symtablemodule.c.h b/contrib/tools/python3/src/Modules/clinic/symtablemodule.c.h
index a46d0b4032..4a17f130ac 100644
--- a/contrib/tools/python3/src/Modules/clinic/symtablemodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/symtablemodule.c.h
@@ -3,49 +3,49 @@ preserve
[clinic start generated code]*/
PyDoc_STRVAR(_symtable_symtable__doc__,
-"symtable($module, source, filename, startstr, /)\n"
+"symtable($module, source, filename, startstr, /)\n"
"--\n"
"\n"
"Return symbol and scope dictionaries used internally by compiler.");
#define _SYMTABLE_SYMTABLE_METHODDEF \
- {"symtable", (PyCFunction)(void(*)(void))_symtable_symtable, METH_FASTCALL, _symtable_symtable__doc__},
+ {"symtable", (PyCFunction)(void(*)(void))_symtable_symtable, METH_FASTCALL, _symtable_symtable__doc__},
static PyObject *
-_symtable_symtable_impl(PyObject *module, PyObject *source,
+_symtable_symtable_impl(PyObject *module, PyObject *source,
PyObject *filename, const char *startstr);
static PyObject *
_symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- PyObject *source;
+ PyObject *source;
PyObject *filename;
const char *startstr;
- if (!_PyArg_CheckPositional("symtable", nargs, 3, 3)) {
+ if (!_PyArg_CheckPositional("symtable", nargs, 3, 3)) {
goto exit;
}
- source = args[0];
- if (!PyUnicode_FSDecoder(args[1], &filename)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("symtable", "argument 3", "str", args[2]);
- goto exit;
- }
- Py_ssize_t startstr_length;
- startstr = PyUnicode_AsUTF8AndSize(args[2], &startstr_length);
- if (startstr == NULL) {
- goto exit;
- }
- if (strlen(startstr) != (size_t)startstr_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- return_value = _symtable_symtable_impl(module, source, filename, startstr);
+ source = args[0];
+ if (!PyUnicode_FSDecoder(args[1], &filename)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("symtable", "argument 3", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t startstr_length;
+ startstr = PyUnicode_AsUTF8AndSize(args[2], &startstr_length);
+ if (startstr == NULL) {
+ goto exit;
+ }
+ if (strlen(startstr) != (size_t)startstr_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ return_value = _symtable_symtable_impl(module, source, filename, startstr);
exit:
return return_value;
}
-/*[clinic end generated code: output=a12f75cdbdf4e52a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a12f75cdbdf4e52a input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/unicodedata.c.h b/contrib/tools/python3/src/Modules/clinic/unicodedata.c.h
index 30280012ed..4251db2edc 100644
--- a/contrib/tools/python3/src/Modules/clinic/unicodedata.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/unicodedata.c.h
@@ -3,7 +3,7 @@ preserve
[clinic start generated code]*/
PyDoc_STRVAR(unicodedata_UCD_decimal__doc__,
-"decimal($self, chr, default=<unrepresentable>, /)\n"
+"decimal($self, chr, default=<unrepresentable>, /)\n"
"--\n"
"\n"
"Converts a Unicode character into its equivalent decimal value.\n"
@@ -13,7 +13,7 @@ PyDoc_STRVAR(unicodedata_UCD_decimal__doc__,
"ValueError is raised.");
#define UNICODEDATA_UCD_DECIMAL_METHODDEF \
- {"decimal", (PyCFunction)(void(*)(void))unicodedata_UCD_decimal, METH_FASTCALL, unicodedata_UCD_decimal__doc__},
+ {"decimal", (PyCFunction)(void(*)(void))unicodedata_UCD_decimal, METH_FASTCALL, unicodedata_UCD_decimal__doc__},
static PyObject *
unicodedata_UCD_decimal_impl(PyObject *self, int chr,
@@ -26,26 +26,26 @@ unicodedata_UCD_decimal(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
int chr;
PyObject *default_value = NULL;
- if (!_PyArg_CheckPositional("decimal", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("decimal", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0])) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(args[0]) != 1) {
- _PyArg_BadArgument("decimal", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(args[0], 0);
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ if (!_PyArg_CheckPositional("decimal", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("decimal", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0])) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(args[0]) != 1) {
+ _PyArg_BadArgument("decimal", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(args[0], 0);
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = unicodedata_UCD_decimal_impl(self, chr, default_value);
exit:
@@ -53,7 +53,7 @@ exit:
}
PyDoc_STRVAR(unicodedata_UCD_digit__doc__,
-"digit($self, chr, default=<unrepresentable>, /)\n"
+"digit($self, chr, default=<unrepresentable>, /)\n"
"--\n"
"\n"
"Converts a Unicode character into its equivalent digit value.\n"
@@ -63,7 +63,7 @@ PyDoc_STRVAR(unicodedata_UCD_digit__doc__,
"ValueError is raised.");
#define UNICODEDATA_UCD_DIGIT_METHODDEF \
- {"digit", (PyCFunction)(void(*)(void))unicodedata_UCD_digit, METH_FASTCALL, unicodedata_UCD_digit__doc__},
+ {"digit", (PyCFunction)(void(*)(void))unicodedata_UCD_digit, METH_FASTCALL, unicodedata_UCD_digit__doc__},
static PyObject *
unicodedata_UCD_digit_impl(PyObject *self, int chr, PyObject *default_value);
@@ -75,26 +75,26 @@ unicodedata_UCD_digit(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
int chr;
PyObject *default_value = NULL;
- if (!_PyArg_CheckPositional("digit", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("digit", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0])) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(args[0]) != 1) {
- _PyArg_BadArgument("digit", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(args[0], 0);
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ if (!_PyArg_CheckPositional("digit", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("digit", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0])) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(args[0]) != 1) {
+ _PyArg_BadArgument("digit", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(args[0], 0);
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = unicodedata_UCD_digit_impl(self, chr, default_value);
exit:
@@ -102,7 +102,7 @@ exit:
}
PyDoc_STRVAR(unicodedata_UCD_numeric__doc__,
-"numeric($self, chr, default=<unrepresentable>, /)\n"
+"numeric($self, chr, default=<unrepresentable>, /)\n"
"--\n"
"\n"
"Converts a Unicode character into its equivalent numeric value.\n"
@@ -112,7 +112,7 @@ PyDoc_STRVAR(unicodedata_UCD_numeric__doc__,
"ValueError is raised.");
#define UNICODEDATA_UCD_NUMERIC_METHODDEF \
- {"numeric", (PyCFunction)(void(*)(void))unicodedata_UCD_numeric, METH_FASTCALL, unicodedata_UCD_numeric__doc__},
+ {"numeric", (PyCFunction)(void(*)(void))unicodedata_UCD_numeric, METH_FASTCALL, unicodedata_UCD_numeric__doc__},
static PyObject *
unicodedata_UCD_numeric_impl(PyObject *self, int chr,
@@ -125,26 +125,26 @@ unicodedata_UCD_numeric(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
int chr;
PyObject *default_value = NULL;
- if (!_PyArg_CheckPositional("numeric", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("numeric", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0])) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(args[0]) != 1) {
- _PyArg_BadArgument("numeric", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(args[0], 0);
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ if (!_PyArg_CheckPositional("numeric", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("numeric", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0])) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(args[0]) != 1) {
+ _PyArg_BadArgument("numeric", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(args[0], 0);
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = unicodedata_UCD_numeric_impl(self, chr, default_value);
exit:
@@ -169,18 +169,18 @@ unicodedata_UCD_category(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
int chr;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("category", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("category", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg)) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("category", "argument", "a unicode character", arg);
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("category", "argument", "a unicode character", arg);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(arg, 0);
+ chr = PyUnicode_READ_CHAR(arg, 0);
return_value = unicodedata_UCD_category_impl(self, chr);
exit:
@@ -207,18 +207,18 @@ unicodedata_UCD_bidirectional(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
int chr;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("bidirectional", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("bidirectional", "argument", "a unicode character", arg);
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("bidirectional", "argument", "a unicode character", arg);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(arg, 0);
+ if (PyUnicode_READY(arg)) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("bidirectional", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(arg, 0);
return_value = unicodedata_UCD_bidirectional_impl(self, chr);
exit:
@@ -246,18 +246,18 @@ unicodedata_UCD_combining(PyObject *self, PyObject *arg)
int chr;
int _return_value;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("combining", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("combining", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg)) {
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("combining", "argument", "a unicode character", arg);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(arg, 0);
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("combining", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(arg, 0);
_return_value = unicodedata_UCD_combining_impl(self, chr);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -290,18 +290,18 @@ unicodedata_UCD_mirrored(PyObject *self, PyObject *arg)
int chr;
int _return_value;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("mirrored", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("mirrored", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg)) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("mirrored", "argument", "a unicode character", arg);
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("mirrored", "argument", "a unicode character", arg);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(arg, 0);
+ chr = PyUnicode_READ_CHAR(arg, 0);
_return_value = unicodedata_UCD_mirrored_impl(self, chr);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -330,18 +330,18 @@ unicodedata_UCD_east_asian_width(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
int chr;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("east_asian_width", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("east_asian_width", "argument", "a unicode character", arg);
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("east_asian_width", "argument", "a unicode character", arg);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(arg, 0);
+ if (PyUnicode_READY(arg)) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("east_asian_width", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(arg, 0);
return_value = unicodedata_UCD_east_asian_width_impl(self, chr);
exit:
@@ -368,71 +368,71 @@ unicodedata_UCD_decomposition(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
int chr;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("decomposition", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("decomposition", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg)) {
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("decomposition", "argument", "a unicode character", arg);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(arg, 0);
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("decomposition", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(arg, 0);
return_value = unicodedata_UCD_decomposition_impl(self, chr);
exit:
return return_value;
}
-PyDoc_STRVAR(unicodedata_UCD_is_normalized__doc__,
-"is_normalized($self, form, unistr, /)\n"
-"--\n"
-"\n"
-"Return whether the Unicode string unistr is in the normal form \'form\'.\n"
-"\n"
-"Valid values for form are \'NFC\', \'NFKC\', \'NFD\', and \'NFKD\'.");
-
-#define UNICODEDATA_UCD_IS_NORMALIZED_METHODDEF \
- {"is_normalized", (PyCFunction)(void(*)(void))unicodedata_UCD_is_normalized, METH_FASTCALL, unicodedata_UCD_is_normalized__doc__},
-
-static PyObject *
-unicodedata_UCD_is_normalized_impl(PyObject *self, PyObject *form,
- PyObject *input);
-
-static PyObject *
-unicodedata_UCD_is_normalized(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *form;
- PyObject *input;
-
- if (!_PyArg_CheckPositional("is_normalized", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("is_normalized", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- form = args[0];
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("is_normalized", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- input = args[1];
- return_value = unicodedata_UCD_is_normalized_impl(self, form, input);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(unicodedata_UCD_is_normalized__doc__,
+"is_normalized($self, form, unistr, /)\n"
+"--\n"
+"\n"
+"Return whether the Unicode string unistr is in the normal form \'form\'.\n"
+"\n"
+"Valid values for form are \'NFC\', \'NFKC\', \'NFD\', and \'NFKD\'.");
+
+#define UNICODEDATA_UCD_IS_NORMALIZED_METHODDEF \
+ {"is_normalized", (PyCFunction)(void(*)(void))unicodedata_UCD_is_normalized, METH_FASTCALL, unicodedata_UCD_is_normalized__doc__},
+
+static PyObject *
+unicodedata_UCD_is_normalized_impl(PyObject *self, PyObject *form,
+ PyObject *input);
+
+static PyObject *
+unicodedata_UCD_is_normalized(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *form;
+ PyObject *input;
+
+ if (!_PyArg_CheckPositional("is_normalized", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("is_normalized", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ form = args[0];
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("is_normalized", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ input = args[1];
+ return_value = unicodedata_UCD_is_normalized_impl(self, form, input);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(unicodedata_UCD_normalize__doc__,
"normalize($self, form, unistr, /)\n"
"--\n"
@@ -442,38 +442,38 @@ PyDoc_STRVAR(unicodedata_UCD_normalize__doc__,
"Valid values for form are \'NFC\', \'NFKC\', \'NFD\', and \'NFKD\'.");
#define UNICODEDATA_UCD_NORMALIZE_METHODDEF \
- {"normalize", (PyCFunction)(void(*)(void))unicodedata_UCD_normalize, METH_FASTCALL, unicodedata_UCD_normalize__doc__},
+ {"normalize", (PyCFunction)(void(*)(void))unicodedata_UCD_normalize, METH_FASTCALL, unicodedata_UCD_normalize__doc__},
static PyObject *
-unicodedata_UCD_normalize_impl(PyObject *self, PyObject *form,
+unicodedata_UCD_normalize_impl(PyObject *self, PyObject *form,
PyObject *input);
static PyObject *
unicodedata_UCD_normalize(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- PyObject *form;
+ PyObject *form;
PyObject *input;
- if (!_PyArg_CheckPositional("normalize", nargs, 2, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("normalize", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- form = args[0];
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("normalize", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- input = args[1];
+ if (!_PyArg_CheckPositional("normalize", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("normalize", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ form = args[0];
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("normalize", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ input = args[1];
return_value = unicodedata_UCD_normalize_impl(self, form, input);
exit:
@@ -481,7 +481,7 @@ exit:
}
PyDoc_STRVAR(unicodedata_UCD_name__doc__,
-"name($self, chr, default=<unrepresentable>, /)\n"
+"name($self, chr, default=<unrepresentable>, /)\n"
"--\n"
"\n"
"Returns the name assigned to the character chr as a string.\n"
@@ -490,7 +490,7 @@ PyDoc_STRVAR(unicodedata_UCD_name__doc__,
"ValueError is raised.");
#define UNICODEDATA_UCD_NAME_METHODDEF \
- {"name", (PyCFunction)(void(*)(void))unicodedata_UCD_name, METH_FASTCALL, unicodedata_UCD_name__doc__},
+ {"name", (PyCFunction)(void(*)(void))unicodedata_UCD_name, METH_FASTCALL, unicodedata_UCD_name__doc__},
static PyObject *
unicodedata_UCD_name_impl(PyObject *self, int chr, PyObject *default_value);
@@ -502,26 +502,26 @@ unicodedata_UCD_name(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
int chr;
PyObject *default_value = NULL;
- if (!_PyArg_CheckPositional("name", nargs, 1, 2)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("name", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0])) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(args[0]) != 1) {
- _PyArg_BadArgument("name", "argument 1", "a unicode character", args[0]);
- goto exit;
- }
- chr = PyUnicode_READ_CHAR(args[0], 0);
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ if (!_PyArg_CheckPositional("name", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("name", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0])) {
+ goto exit;
+ }
+ if (PyUnicode_GET_LENGTH(args[0]) != 1) {
+ _PyArg_BadArgument("name", "argument 1", "a unicode character", args[0]);
+ goto exit;
+ }
+ chr = PyUnicode_READ_CHAR(args[0], 0);
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = unicodedata_UCD_name_impl(self, chr, default_value);
exit:
@@ -559,4 +559,4 @@ unicodedata_UCD_lookup(PyObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=10c23477dbe8a202 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=10c23477dbe8a202 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/clinic/zlibmodule.c.h b/contrib/tools/python3/src/Modules/clinic/zlibmodule.c.h
index 1545c83e26..77ea04a353 100644
--- a/contrib/tools/python3/src/Modules/clinic/zlibmodule.c.h
+++ b/contrib/tools/python3/src/Modules/clinic/zlibmodule.c.h
@@ -14,7 +14,7 @@ PyDoc_STRVAR(zlib_compress__doc__,
" Compression level, in 0-9 or -1.");
#define ZLIB_COMPRESS_METHODDEF \
- {"compress", (PyCFunction)(void(*)(void))zlib_compress, METH_FASTCALL|METH_KEYWORDS, zlib_compress__doc__},
+ {"compress", (PyCFunction)(void(*)(void))zlib_compress, METH_FASTCALL|METH_KEYWORDS, zlib_compress__doc__},
static PyObject *
zlib_compress_impl(PyObject *module, Py_buffer *data, int level);
@@ -24,36 +24,36 @@ zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "level", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
int level = Z_DEFAULT_COMPRESSION;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("compress", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- level = _PyLong_AsInt(args[1]);
- if (level == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("compress", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ level = _PyLong_AsInt(args[1]);
+ if (level == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = zlib_compress_impl(module, &data, level);
exit:
@@ -79,7 +79,7 @@ PyDoc_STRVAR(zlib_decompress__doc__,
" The initial output buffer size.");
#define ZLIB_DECOMPRESS_METHODDEF \
- {"decompress", (PyCFunction)(void(*)(void))zlib_decompress, METH_FASTCALL|METH_KEYWORDS, zlib_decompress__doc__},
+ {"decompress", (PyCFunction)(void(*)(void))zlib_decompress, METH_FASTCALL|METH_KEYWORDS, zlib_decompress__doc__},
static PyObject *
zlib_decompress_impl(PyObject *module, Py_buffer *data, int wbits,
@@ -90,45 +90,45 @@ zlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "wbits", "bufsize", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
int wbits = MAX_WBITS;
Py_ssize_t bufsize = DEF_BUF_SIZE;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("decompress", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- wbits = _PyLong_AsInt(args[1]);
- if (wbits == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!ssize_t_converter(args[2], &bufsize)) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("decompress", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ wbits = _PyLong_AsInt(args[1]);
+ if (wbits == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!ssize_t_converter(args[2], &bufsize)) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = zlib_decompress_impl(module, &data, wbits, bufsize);
exit:
@@ -171,7 +171,7 @@ PyDoc_STRVAR(zlib_compressobj__doc__,
" containing subsequences that are likely to occur in the input data.");
#define ZLIB_COMPRESSOBJ_METHODDEF \
- {"compressobj", (PyCFunction)(void(*)(void))zlib_compressobj, METH_FASTCALL|METH_KEYWORDS, zlib_compressobj__doc__},
+ {"compressobj", (PyCFunction)(void(*)(void))zlib_compressobj, METH_FASTCALL|METH_KEYWORDS, zlib_compressobj__doc__},
static PyObject *
zlib_compressobj_impl(PyObject *module, int level, int method, int wbits,
@@ -182,9 +182,9 @@ zlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"level", "method", "wbits", "memLevel", "strategy", "zdict", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "compressobj", 0};
- PyObject *argsbuf[6];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "compressobj", 0};
+ PyObject *argsbuf[6];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int level = Z_DEFAULT_COMPRESSION;
int method = DEFLATED;
int wbits = MAX_WBITS;
@@ -192,91 +192,91 @@ zlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
int strategy = Z_DEFAULT_STRATEGY;
Py_buffer zdict = {NULL, NULL};
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 6, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- level = _PyLong_AsInt(args[0]);
- if (level == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- method = _PyLong_AsInt(args[1]);
- if (method == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- wbits = _PyLong_AsInt(args[2]);
- if (wbits == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[3]) {
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- memLevel = _PyLong_AsInt(args[3]);
- if (memLevel == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[4]) {
- if (PyFloat_Check(args[4])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- strategy = _PyLong_AsInt(args[4]);
- if (strategy == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyObject_GetBuffer(args[5], &zdict, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&zdict, 'C')) {
- _PyArg_BadArgument("compressobj", "argument 'zdict'", "contiguous buffer", args[5]);
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 6, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ level = _PyLong_AsInt(args[0]);
+ if (level == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ method = _PyLong_AsInt(args[1]);
+ if (method == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ wbits = _PyLong_AsInt(args[2]);
+ if (wbits == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[3]) {
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ memLevel = _PyLong_AsInt(args[3]);
+ if (memLevel == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[4]) {
+ if (PyFloat_Check(args[4])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ strategy = _PyLong_AsInt(args[4]);
+ if (strategy == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyObject_GetBuffer(args[5], &zdict, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&zdict, 'C')) {
+ _PyArg_BadArgument("compressobj", "argument 'zdict'", "contiguous buffer", args[5]);
+ goto exit;
+ }
+skip_optional_pos:
return_value = zlib_compressobj_impl(module, level, method, wbits, memLevel, strategy, &zdict);
exit:
@@ -301,7 +301,7 @@ PyDoc_STRVAR(zlib_decompressobj__doc__,
" dictionary as used by the compressor that produced the input data.");
#define ZLIB_DECOMPRESSOBJ_METHODDEF \
- {"decompressobj", (PyCFunction)(void(*)(void))zlib_decompressobj, METH_FASTCALL|METH_KEYWORDS, zlib_decompressobj__doc__},
+ {"decompressobj", (PyCFunction)(void(*)(void))zlib_decompressobj, METH_FASTCALL|METH_KEYWORDS, zlib_decompressobj__doc__},
static PyObject *
zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict);
@@ -311,35 +311,35 @@ zlib_decompressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"wbits", "zdict", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decompressobj", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decompressobj", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int wbits = MAX_WBITS;
PyObject *zdict = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- wbits = _PyLong_AsInt(args[0]);
- if (wbits == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- zdict = args[1];
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ wbits = _PyLong_AsInt(args[0]);
+ if (wbits == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ zdict = args[1];
+skip_optional_pos:
return_value = zlib_decompressobj_impl(module, wbits, zdict);
exit:
@@ -371,13 +371,13 @@ zlib_Compress_compress(compobject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("compress", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("compress", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = zlib_Compress_compress_impl(self, &data);
exit:
@@ -407,7 +407,7 @@ PyDoc_STRVAR(zlib_Decompress_decompress__doc__,
"Call the flush() method to clear these buffers.");
#define ZLIB_DECOMPRESS_DECOMPRESS_METHODDEF \
- {"decompress", (PyCFunction)(void(*)(void))zlib_Decompress_decompress, METH_FASTCALL|METH_KEYWORDS, zlib_Decompress_decompress__doc__},
+ {"decompress", (PyCFunction)(void(*)(void))zlib_Decompress_decompress, METH_FASTCALL|METH_KEYWORDS, zlib_Decompress_decompress__doc__},
static PyObject *
zlib_Decompress_decompress_impl(compobject *self, Py_buffer *data,
@@ -418,30 +418,30 @@ zlib_Decompress_decompress(compobject *self, PyObject *const *args, Py_ssize_t n
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "max_length", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Py_buffer data = {NULL, NULL};
Py_ssize_t max_length = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("decompress", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (!ssize_t_converter(args[1], &max_length)) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("decompress", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (!ssize_t_converter(args[1], &max_length)) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = zlib_Decompress_decompress_impl(self, &data, max_length);
exit:
@@ -466,7 +466,7 @@ PyDoc_STRVAR(zlib_Compress_flush__doc__,
" can still be compressed.");
#define ZLIB_COMPRESS_FLUSH_METHODDEF \
- {"flush", (PyCFunction)(void(*)(void))zlib_Compress_flush, METH_FASTCALL, zlib_Compress_flush__doc__},
+ {"flush", (PyCFunction)(void(*)(void))zlib_Compress_flush, METH_FASTCALL, zlib_Compress_flush__doc__},
static PyObject *
zlib_Compress_flush_impl(compobject *self, int mode);
@@ -477,22 +477,22 @@ zlib_Compress_flush(compobject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
int mode = Z_FINISH;
- if (!_PyArg_CheckPositional("flush", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[0]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("flush", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[0]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = zlib_Compress_flush_impl(self, mode);
exit:
@@ -523,39 +523,39 @@ zlib_Compress_copy(compobject *self, PyObject *Py_UNUSED(ignored))
#if defined(HAVE_ZLIB_COPY)
-PyDoc_STRVAR(zlib_Compress___copy____doc__,
-"__copy__($self, /)\n"
-"--\n"
-"\n");
-
-#define ZLIB_COMPRESS___COPY___METHODDEF \
- {"__copy__", (PyCFunction)zlib_Compress___copy__, METH_NOARGS, zlib_Compress___copy____doc__},
-
-static PyObject *
-zlib_Compress___copy___impl(compobject *self);
-
-static PyObject *
-zlib_Compress___copy__(compobject *self, PyObject *Py_UNUSED(ignored))
-{
- return zlib_Compress___copy___impl(self);
-}
-
-#endif /* defined(HAVE_ZLIB_COPY) */
-
-#if defined(HAVE_ZLIB_COPY)
-
-PyDoc_STRVAR(zlib_Compress___deepcopy____doc__,
-"__deepcopy__($self, memo, /)\n"
-"--\n"
-"\n");
-
-#define ZLIB_COMPRESS___DEEPCOPY___METHODDEF \
- {"__deepcopy__", (PyCFunction)zlib_Compress___deepcopy__, METH_O, zlib_Compress___deepcopy____doc__},
-
-#endif /* defined(HAVE_ZLIB_COPY) */
-
-#if defined(HAVE_ZLIB_COPY)
-
+PyDoc_STRVAR(zlib_Compress___copy____doc__,
+"__copy__($self, /)\n"
+"--\n"
+"\n");
+
+#define ZLIB_COMPRESS___COPY___METHODDEF \
+ {"__copy__", (PyCFunction)zlib_Compress___copy__, METH_NOARGS, zlib_Compress___copy____doc__},
+
+static PyObject *
+zlib_Compress___copy___impl(compobject *self);
+
+static PyObject *
+zlib_Compress___copy__(compobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return zlib_Compress___copy___impl(self);
+}
+
+#endif /* defined(HAVE_ZLIB_COPY) */
+
+#if defined(HAVE_ZLIB_COPY)
+
+PyDoc_STRVAR(zlib_Compress___deepcopy____doc__,
+"__deepcopy__($self, memo, /)\n"
+"--\n"
+"\n");
+
+#define ZLIB_COMPRESS___DEEPCOPY___METHODDEF \
+ {"__deepcopy__", (PyCFunction)zlib_Compress___deepcopy__, METH_O, zlib_Compress___deepcopy____doc__},
+
+#endif /* defined(HAVE_ZLIB_COPY) */
+
+#if defined(HAVE_ZLIB_COPY)
+
PyDoc_STRVAR(zlib_Decompress_copy__doc__,
"copy($self, /)\n"
"--\n"
@@ -576,39 +576,39 @@ zlib_Decompress_copy(compobject *self, PyObject *Py_UNUSED(ignored))
#endif /* defined(HAVE_ZLIB_COPY) */
-#if defined(HAVE_ZLIB_COPY)
-
-PyDoc_STRVAR(zlib_Decompress___copy____doc__,
-"__copy__($self, /)\n"
-"--\n"
-"\n");
-
-#define ZLIB_DECOMPRESS___COPY___METHODDEF \
- {"__copy__", (PyCFunction)zlib_Decompress___copy__, METH_NOARGS, zlib_Decompress___copy____doc__},
-
-static PyObject *
-zlib_Decompress___copy___impl(compobject *self);
-
-static PyObject *
-zlib_Decompress___copy__(compobject *self, PyObject *Py_UNUSED(ignored))
-{
- return zlib_Decompress___copy___impl(self);
-}
-
-#endif /* defined(HAVE_ZLIB_COPY) */
-
-#if defined(HAVE_ZLIB_COPY)
-
-PyDoc_STRVAR(zlib_Decompress___deepcopy____doc__,
-"__deepcopy__($self, memo, /)\n"
-"--\n"
-"\n");
-
-#define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF \
- {"__deepcopy__", (PyCFunction)zlib_Decompress___deepcopy__, METH_O, zlib_Decompress___deepcopy____doc__},
-
-#endif /* defined(HAVE_ZLIB_COPY) */
-
+#if defined(HAVE_ZLIB_COPY)
+
+PyDoc_STRVAR(zlib_Decompress___copy____doc__,
+"__copy__($self, /)\n"
+"--\n"
+"\n");
+
+#define ZLIB_DECOMPRESS___COPY___METHODDEF \
+ {"__copy__", (PyCFunction)zlib_Decompress___copy__, METH_NOARGS, zlib_Decompress___copy____doc__},
+
+static PyObject *
+zlib_Decompress___copy___impl(compobject *self);
+
+static PyObject *
+zlib_Decompress___copy__(compobject *self, PyObject *Py_UNUSED(ignored))
+{
+ return zlib_Decompress___copy___impl(self);
+}
+
+#endif /* defined(HAVE_ZLIB_COPY) */
+
+#if defined(HAVE_ZLIB_COPY)
+
+PyDoc_STRVAR(zlib_Decompress___deepcopy____doc__,
+"__deepcopy__($self, memo, /)\n"
+"--\n"
+"\n");
+
+#define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF \
+ {"__deepcopy__", (PyCFunction)zlib_Decompress___deepcopy__, METH_O, zlib_Decompress___deepcopy____doc__},
+
+#endif /* defined(HAVE_ZLIB_COPY) */
+
PyDoc_STRVAR(zlib_Decompress_flush__doc__,
"flush($self, length=zlib.DEF_BUF_SIZE, /)\n"
"--\n"
@@ -619,7 +619,7 @@ PyDoc_STRVAR(zlib_Decompress_flush__doc__,
" the initial size of the output buffer.");
#define ZLIB_DECOMPRESS_FLUSH_METHODDEF \
- {"flush", (PyCFunction)(void(*)(void))zlib_Decompress_flush, METH_FASTCALL, zlib_Decompress_flush__doc__},
+ {"flush", (PyCFunction)(void(*)(void))zlib_Decompress_flush, METH_FASTCALL, zlib_Decompress_flush__doc__},
static PyObject *
zlib_Decompress_flush_impl(compobject *self, Py_ssize_t length);
@@ -630,16 +630,16 @@ zlib_Decompress_flush(compobject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t length = DEF_BUF_SIZE;
- if (!_PyArg_CheckPositional("flush", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("flush", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (!ssize_t_converter(args[0], &length)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (!ssize_t_converter(args[0], &length)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = zlib_Decompress_flush_impl(self, length);
exit:
@@ -658,7 +658,7 @@ PyDoc_STRVAR(zlib_adler32__doc__,
"The returned checksum is an integer.");
#define ZLIB_ADLER32_METHODDEF \
- {"adler32", (PyCFunction)(void(*)(void))zlib_adler32, METH_FASTCALL, zlib_adler32__doc__},
+ {"adler32", (PyCFunction)(void(*)(void))zlib_adler32, METH_FASTCALL, zlib_adler32__doc__},
static PyObject *
zlib_adler32_impl(PyObject *module, Py_buffer *data, unsigned int value);
@@ -670,29 +670,29 @@ zlib_adler32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer data = {NULL, NULL};
unsigned int value = 1;
- if (!_PyArg_CheckPositional("adler32", nargs, 1, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("adler32", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- value = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (value == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("adler32", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("adler32", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ value = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (value == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = zlib_adler32_impl(module, &data, value);
exit:
@@ -716,7 +716,7 @@ PyDoc_STRVAR(zlib_crc32__doc__,
"The returned checksum is an integer.");
#define ZLIB_CRC32_METHODDEF \
- {"crc32", (PyCFunction)(void(*)(void))zlib_crc32, METH_FASTCALL, zlib_crc32__doc__},
+ {"crc32", (PyCFunction)(void(*)(void))zlib_crc32, METH_FASTCALL, zlib_crc32__doc__},
static PyObject *
zlib_crc32_impl(PyObject *module, Py_buffer *data, unsigned int value);
@@ -728,29 +728,29 @@ zlib_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
Py_buffer data = {NULL, NULL};
unsigned int value = 0;
- if (!_PyArg_CheckPositional("crc32", nargs, 1, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&data, 'C')) {
- _PyArg_BadArgument("crc32", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- value = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
- if (value == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("crc32", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&data, 'C')) {
+ _PyArg_BadArgument("crc32", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ value = (unsigned int)PyLong_AsUnsignedLongMask(args[1]);
+ if (value == (unsigned int)-1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = zlib_crc32_impl(module, &data, value);
exit:
@@ -766,23 +766,23 @@ exit:
#define ZLIB_COMPRESS_COPY_METHODDEF
#endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */
-#ifndef ZLIB_COMPRESS___COPY___METHODDEF
- #define ZLIB_COMPRESS___COPY___METHODDEF
-#endif /* !defined(ZLIB_COMPRESS___COPY___METHODDEF) */
-
-#ifndef ZLIB_COMPRESS___DEEPCOPY___METHODDEF
- #define ZLIB_COMPRESS___DEEPCOPY___METHODDEF
-#endif /* !defined(ZLIB_COMPRESS___DEEPCOPY___METHODDEF) */
-
+#ifndef ZLIB_COMPRESS___COPY___METHODDEF
+ #define ZLIB_COMPRESS___COPY___METHODDEF
+#endif /* !defined(ZLIB_COMPRESS___COPY___METHODDEF) */
+
+#ifndef ZLIB_COMPRESS___DEEPCOPY___METHODDEF
+ #define ZLIB_COMPRESS___DEEPCOPY___METHODDEF
+#endif /* !defined(ZLIB_COMPRESS___DEEPCOPY___METHODDEF) */
+
#ifndef ZLIB_DECOMPRESS_COPY_METHODDEF
#define ZLIB_DECOMPRESS_COPY_METHODDEF
#endif /* !defined(ZLIB_DECOMPRESS_COPY_METHODDEF) */
-
-#ifndef ZLIB_DECOMPRESS___COPY___METHODDEF
- #define ZLIB_DECOMPRESS___COPY___METHODDEF
-#endif /* !defined(ZLIB_DECOMPRESS___COPY___METHODDEF) */
-
-#ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
- #define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
-#endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */
-/*[clinic end generated code: output=faae38ef96b88b16 input=a9049054013a1b77]*/
+
+#ifndef ZLIB_DECOMPRESS___COPY___METHODDEF
+ #define ZLIB_DECOMPRESS___COPY___METHODDEF
+#endif /* !defined(ZLIB_DECOMPRESS___COPY___METHODDEF) */
+
+#ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
+ #define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
+#endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */
+/*[clinic end generated code: output=faae38ef96b88b16 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Modules/cmathmodule.c b/contrib/tools/python3/src/Modules/cmathmodule.c
index 8c47437a5e..5eac4b4940 100644
--- a/contrib/tools/python3/src/Modules/cmathmodule.c
+++ b/contrib/tools/python3/src/Modules/cmathmodule.c
@@ -3,7 +3,7 @@
/* much code borrowed from mathmodule.c */
#include "Python.h"
-#include "pycore_dtoa.h"
+#include "pycore_dtoa.h"
#include "_math.h"
/* we need DBL_MAX, DBL_MIN, DBL_EPSILON, DBL_MANT_DIG and FLT_RADIX from
float.h. We assume that FLT_RADIX is either 2 or 16. */
@@ -18,7 +18,7 @@ module cmath
/*[python input]
class Py_complex_protected_converter(Py_complex_converter):
def modify(self):
- return 'errno = 0;'
+ return 'errno = 0;'
class Py_complex_protected_return_converter(CReturnConverter):
@@ -40,7 +40,7 @@ else {
}
""".strip())
[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=8b27adb674c08321]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=8b27adb674c08321]*/
#if (FLT_RADIX != 2 && FLT_RADIX != 16)
#error "Modules/cmathmodule.c expects FLT_RADIX to be 2 or 16"
@@ -944,18 +944,18 @@ cmath_tanh_impl(PyObject *module, Py_complex z)
/*[clinic input]
cmath.log
- z as x: Py_complex
- base as y_obj: object = NULL
+ z as x: Py_complex
+ base as y_obj: object = NULL
/
-log(z[, base]) -> the logarithm of z to the given base.
+log(z[, base]) -> the logarithm of z to the given base.
If the base not specified, returns the natural logarithm (base e) of z.
[clinic start generated code]*/
static PyObject *
cmath_log_impl(PyObject *module, Py_complex x, PyObject *y_obj)
-/*[clinic end generated code: output=4effdb7d258e0d94 input=230ed3a71ecd000a]*/
+/*[clinic end generated code: output=4effdb7d258e0d94 input=230ed3a71ecd000a]*/
{
Py_complex y;
@@ -1224,8 +1224,8 @@ cmath_isclose_impl(PyObject *module, Py_complex a, Py_complex b,
}
PyDoc_STRVAR(module_doc,
-"This module provides access to mathematical functions for complex\n"
-"numbers.");
+"This module provides access to mathematical functions for complex\n"
+"numbers.");
static PyMethodDef cmath_methods[] = {
CMATH_ACOS_METHODDEF
diff --git a/contrib/tools/python3/src/Modules/config.c b/contrib/tools/python3/src/Modules/config.c
index 69b0a494f6..2128f544e5 100644
--- a/contrib/tools/python3/src/Modules/config.c
+++ b/contrib/tools/python3/src/Modules/config.c
@@ -36,9 +36,9 @@ extern PyObject* PyInit__codecs_kr(void); // _codecs_kr
extern PyObject* PyInit__codecs_tw(void); // _codecs_tw
extern PyObject* PyInit__collections(void); // _collections
extern PyObject* PyInit__contextvars(void); // _contextvars
-#if !defined(_MSC_VER)
-extern PyObject* PyInit__crypt(void); // _crypt
-#endif
+#if !defined(_MSC_VER)
+extern PyObject* PyInit__crypt(void); // _crypt
+#endif
extern PyObject* PyInit__csv(void); // _csv
extern PyObject* PyInit__ctypes(void); // _ctypes
extern PyObject* PyInit__datetime(void); // _datetime
@@ -58,9 +58,9 @@ extern PyObject* PyInit__multibytecodec(void); // _multibytecodec
extern PyObject* PyInit__multiprocessing(void); // _multiprocessing
extern PyObject* PyInit__opcode(void); // _opcode
extern PyObject* PyInit__operator(void); // _operator
-extern PyObject* PyInit__peg_parser(void); // _peg_parser
+extern PyObject* PyInit__peg_parser(void); // _peg_parser
extern PyObject* PyInit__pickle(void); // _pickle
-extern PyObject* PyInit__posixshmem(void); // _posixshmem
+extern PyObject* PyInit__posixshmem(void); // _posixshmem
#if !defined(_MSC_VER)
extern PyObject* PyInit__posixsubprocess(void); // _posixsubprocess
#endif
@@ -75,16 +75,16 @@ extern PyObject* PyInit__socket(void); // _socket
extern PyObject* PyInit__sre(void); // _sre
extern PyObject* PyInit__ssl(void); // _ssl
extern PyObject* PyInit__stat(void); // _stat
-extern PyObject* PyInit__statistics(void); // _statistics
+extern PyObject* PyInit__statistics(void); // _statistics
extern PyObject* PyInit__string(void); // _string
extern PyObject* PyInit__struct(void); // _struct
extern PyObject* PyInit__symtable(void); // _symtable
extern PyObject* PyInit__thread(void); // _thread
extern PyObject* PyInit__tracemalloc(void); // _tracemalloc
extern PyObject* PyInit__weakref(void); // _weakref
-extern PyObject* PyInit__xxsubinterpreters(void); // _xxsubinterpreters
+extern PyObject* PyInit__xxsubinterpreters(void); // _xxsubinterpreters
extern PyObject* PyInit__xxtestfuzz(void); // _xxtestfuzz
-extern PyObject* PyInit__zoneinfo(void); // _zoneinfo
+extern PyObject* PyInit__zoneinfo(void); // _zoneinfo
extern PyObject* PyInit_array(void); // array
extern PyObject* PyInit_atexit(void); // atexit
extern PyObject* PyInit_audioop(void); // audioop
@@ -170,9 +170,9 @@ struct _inittab _PyImport_Inittab[] = {
{"_codecs_tw", PyInit__codecs_tw},
{"_collections", PyInit__collections},
{"_contextvars", PyInit__contextvars},
-#if !defined(_MSC_VER)
- {"_crypt", PyInit__crypt},
-#endif
+#if !defined(_MSC_VER)
+ {"_crypt", PyInit__crypt},
+#endif
{"_csv", PyInit__csv},
{"_ctypes", PyInit__ctypes},
{"_datetime", PyInit__datetime},
@@ -192,9 +192,9 @@ struct _inittab _PyImport_Inittab[] = {
{"_multiprocessing", PyInit__multiprocessing},
{"_opcode", PyInit__opcode},
{"_operator", PyInit__operator},
- {"_peg_parser", PyInit__peg_parser},
+ {"_peg_parser", PyInit__peg_parser},
{"_pickle", PyInit__pickle},
- {"_posixshmem", PyInit__posixshmem},
+ {"_posixshmem", PyInit__posixshmem},
#if !defined(_MSC_VER)
{"_posixsubprocess", PyInit__posixsubprocess},
#endif
@@ -209,16 +209,16 @@ struct _inittab _PyImport_Inittab[] = {
{"_sre", PyInit__sre},
{"_ssl", PyInit__ssl},
{"_stat", PyInit__stat},
- {"_statistics", PyInit__statistics},
+ {"_statistics", PyInit__statistics},
{"_string", PyInit__string},
{"_struct", PyInit__struct},
{"_symtable", PyInit__symtable},
{"_thread", PyInit__thread},
{"_tracemalloc", PyInit__tracemalloc},
{"_weakref", PyInit__weakref},
- {"_xxsubinterpreters", PyInit__xxsubinterpreters},
+ {"_xxsubinterpreters", PyInit__xxsubinterpreters},
{"_xxtestfuzz", PyInit__xxtestfuzz},
- {"_zoneinfo", PyInit__zoneinfo},
+ {"_zoneinfo", PyInit__zoneinfo},
{"array", PyInit_array},
{"atexit", PyInit_atexit},
{"audioop", PyInit_audioop},
diff --git a/contrib/tools/python3/src/Modules/errnomodule.c b/contrib/tools/python3/src/Modules/errnomodule.c
index 7fbffd7e46..d99bed45bd 100644
--- a/contrib/tools/python3/src/Modules/errnomodule.c
+++ b/contrib/tools/python3/src/Modules/errnomodule.c
@@ -46,57 +46,57 @@ static PyMethodDef errno_methods[] = {
/* Helper function doing the dictionary inserting */
-static int
-_add_errcode(PyObject *module_dict, PyObject *error_dict, const char *name_str, int code_int)
+static int
+_add_errcode(PyObject *module_dict, PyObject *error_dict, const char *name_str, int code_int)
{
- PyObject *name = PyUnicode_FromString(name_str);
- if (!name) {
- return -1;
- }
+ PyObject *name = PyUnicode_FromString(name_str);
+ if (!name) {
+ return -1;
+ }
+
+ PyObject *code = PyLong_FromLong(code_int);
+ if (!code) {
+ Py_DECREF(name);
+ return -1;
+ }
- PyObject *code = PyLong_FromLong(code_int);
- if (!code) {
- Py_DECREF(name);
- return -1;
+ int ret = -1;
+ /* insert in modules dict */
+ if (PyDict_SetItem(module_dict, name, code) < 0) {
+ goto end;
+ }
+ /* insert in errorcode dict */
+ if (PyDict_SetItem(error_dict, code, name) < 0) {
+ goto end;
}
-
- int ret = -1;
- /* insert in modules dict */
- if (PyDict_SetItem(module_dict, name, code) < 0) {
- goto end;
- }
- /* insert in errorcode dict */
- if (PyDict_SetItem(error_dict, code, name) < 0) {
- goto end;
- }
- ret = 0;
-end:
- Py_DECREF(name);
- Py_DECREF(code);
- return ret;
+ ret = 0;
+end:
+ Py_DECREF(name);
+ Py_DECREF(code);
+ return ret;
}
-static int
-errno_exec(PyObject *module)
+static int
+errno_exec(PyObject *module)
{
- PyObject *module_dict = PyModule_GetDict(module);
- PyObject *error_dict = PyDict_New();
- if (!module_dict || !error_dict) {
- return -1;
- }
- if (PyDict_SetItemString(module_dict, "errorcode", error_dict) < 0) {
- Py_DECREF(error_dict);
- return -1;
- }
+ PyObject *module_dict = PyModule_GetDict(module);
+ PyObject *error_dict = PyDict_New();
+ if (!module_dict || !error_dict) {
+ return -1;
+ }
+ if (PyDict_SetItemString(module_dict, "errorcode", error_dict) < 0) {
+ Py_DECREF(error_dict);
+ return -1;
+ }
/* Macro so I don't have to edit each and every line below... */
-#define add_errcode(name, code, comment) \
- do { \
- if (_add_errcode(module_dict, error_dict, name, code) < 0) { \
- Py_DECREF(error_dict); \
- return -1; \
- } \
- } while (0);
+#define add_errcode(name, code, comment) \
+ do { \
+ if (_add_errcode(module_dict, error_dict, name, code) < 0) { \
+ Py_DECREF(error_dict); \
+ return -1; \
+ } \
+ } while (0);
/*
* The names and comments are borrowed from linux/include/errno.h,
@@ -107,854 +107,854 @@ errno_exec(PyObject *module)
*/
#ifdef ENODEV
- add_errcode("ENODEV", ENODEV, "No such device");
+ add_errcode("ENODEV", ENODEV, "No such device");
#endif
#ifdef ENOCSI
- add_errcode("ENOCSI", ENOCSI, "No CSI structure available");
+ add_errcode("ENOCSI", ENOCSI, "No CSI structure available");
#endif
#ifdef EHOSTUNREACH
- add_errcode("EHOSTUNREACH", EHOSTUNREACH, "No route to host");
+ add_errcode("EHOSTUNREACH", EHOSTUNREACH, "No route to host");
#else
#ifdef WSAEHOSTUNREACH
- add_errcode("EHOSTUNREACH", WSAEHOSTUNREACH, "No route to host");
+ add_errcode("EHOSTUNREACH", WSAEHOSTUNREACH, "No route to host");
#endif
#endif
#ifdef ENOMSG
- add_errcode("ENOMSG", ENOMSG, "No message of desired type");
+ add_errcode("ENOMSG", ENOMSG, "No message of desired type");
#endif
#ifdef EUCLEAN
- add_errcode("EUCLEAN", EUCLEAN, "Structure needs cleaning");
+ add_errcode("EUCLEAN", EUCLEAN, "Structure needs cleaning");
#endif
#ifdef EL2NSYNC
- add_errcode("EL2NSYNC", EL2NSYNC, "Level 2 not synchronized");
+ add_errcode("EL2NSYNC", EL2NSYNC, "Level 2 not synchronized");
#endif
#ifdef EL2HLT
- add_errcode("EL2HLT", EL2HLT, "Level 2 halted");
+ add_errcode("EL2HLT", EL2HLT, "Level 2 halted");
#endif
#ifdef ENODATA
- add_errcode("ENODATA", ENODATA, "No data available");
+ add_errcode("ENODATA", ENODATA, "No data available");
#endif
#ifdef ENOTBLK
- add_errcode("ENOTBLK", ENOTBLK, "Block device required");
+ add_errcode("ENOTBLK", ENOTBLK, "Block device required");
#endif
#ifdef ENOSYS
- add_errcode("ENOSYS", ENOSYS, "Function not implemented");
+ add_errcode("ENOSYS", ENOSYS, "Function not implemented");
#endif
#ifdef EPIPE
- add_errcode("EPIPE", EPIPE, "Broken pipe");
+ add_errcode("EPIPE", EPIPE, "Broken pipe");
#endif
#ifdef EINVAL
- add_errcode("EINVAL", EINVAL, "Invalid argument");
+ add_errcode("EINVAL", EINVAL, "Invalid argument");
#else
#ifdef WSAEINVAL
- add_errcode("EINVAL", WSAEINVAL, "Invalid argument");
+ add_errcode("EINVAL", WSAEINVAL, "Invalid argument");
#endif
#endif
#ifdef EOVERFLOW
- add_errcode("EOVERFLOW", EOVERFLOW, "Value too large for defined data type");
+ add_errcode("EOVERFLOW", EOVERFLOW, "Value too large for defined data type");
#endif
#ifdef EADV
- add_errcode("EADV", EADV, "Advertise error");
+ add_errcode("EADV", EADV, "Advertise error");
#endif
#ifdef EINTR
- add_errcode("EINTR", EINTR, "Interrupted system call");
+ add_errcode("EINTR", EINTR, "Interrupted system call");
#else
#ifdef WSAEINTR
- add_errcode("EINTR", WSAEINTR, "Interrupted system call");
+ add_errcode("EINTR", WSAEINTR, "Interrupted system call");
#endif
#endif
#ifdef EUSERS
- add_errcode("EUSERS", EUSERS, "Too many users");
+ add_errcode("EUSERS", EUSERS, "Too many users");
#else
#ifdef WSAEUSERS
- add_errcode("EUSERS", WSAEUSERS, "Too many users");
+ add_errcode("EUSERS", WSAEUSERS, "Too many users");
#endif
#endif
#ifdef ENOTEMPTY
- add_errcode("ENOTEMPTY", ENOTEMPTY, "Directory not empty");
+ add_errcode("ENOTEMPTY", ENOTEMPTY, "Directory not empty");
#else
#ifdef WSAENOTEMPTY
- add_errcode("ENOTEMPTY", WSAENOTEMPTY, "Directory not empty");
+ add_errcode("ENOTEMPTY", WSAENOTEMPTY, "Directory not empty");
#endif
#endif
#ifdef ENOBUFS
- add_errcode("ENOBUFS", ENOBUFS, "No buffer space available");
+ add_errcode("ENOBUFS", ENOBUFS, "No buffer space available");
#else
#ifdef WSAENOBUFS
- add_errcode("ENOBUFS", WSAENOBUFS, "No buffer space available");
+ add_errcode("ENOBUFS", WSAENOBUFS, "No buffer space available");
#endif
#endif
#ifdef EPROTO
- add_errcode("EPROTO", EPROTO, "Protocol error");
+ add_errcode("EPROTO", EPROTO, "Protocol error");
#endif
#ifdef EREMOTE
- add_errcode("EREMOTE", EREMOTE, "Object is remote");
+ add_errcode("EREMOTE", EREMOTE, "Object is remote");
#else
#ifdef WSAEREMOTE
- add_errcode("EREMOTE", WSAEREMOTE, "Object is remote");
+ add_errcode("EREMOTE", WSAEREMOTE, "Object is remote");
#endif
#endif
#ifdef ENAVAIL
- add_errcode("ENAVAIL", ENAVAIL, "No XENIX semaphores available");
+ add_errcode("ENAVAIL", ENAVAIL, "No XENIX semaphores available");
#endif
#ifdef ECHILD
- add_errcode("ECHILD", ECHILD, "No child processes");
+ add_errcode("ECHILD", ECHILD, "No child processes");
#endif
#ifdef ELOOP
- add_errcode("ELOOP", ELOOP, "Too many symbolic links encountered");
+ add_errcode("ELOOP", ELOOP, "Too many symbolic links encountered");
#else
#ifdef WSAELOOP
- add_errcode("ELOOP", WSAELOOP, "Too many symbolic links encountered");
+ add_errcode("ELOOP", WSAELOOP, "Too many symbolic links encountered");
#endif
#endif
#ifdef EXDEV
- add_errcode("EXDEV", EXDEV, "Cross-device link");
+ add_errcode("EXDEV", EXDEV, "Cross-device link");
#endif
#ifdef E2BIG
- add_errcode("E2BIG", E2BIG, "Arg list too long");
+ add_errcode("E2BIG", E2BIG, "Arg list too long");
#endif
#ifdef ESRCH
- add_errcode("ESRCH", ESRCH, "No such process");
+ add_errcode("ESRCH", ESRCH, "No such process");
#endif
#ifdef EMSGSIZE
- add_errcode("EMSGSIZE", EMSGSIZE, "Message too long");
+ add_errcode("EMSGSIZE", EMSGSIZE, "Message too long");
#else
#ifdef WSAEMSGSIZE
- add_errcode("EMSGSIZE", WSAEMSGSIZE, "Message too long");
+ add_errcode("EMSGSIZE", WSAEMSGSIZE, "Message too long");
#endif
#endif
#ifdef EAFNOSUPPORT
- add_errcode("EAFNOSUPPORT", EAFNOSUPPORT, "Address family not supported by protocol");
+ add_errcode("EAFNOSUPPORT", EAFNOSUPPORT, "Address family not supported by protocol");
#else
#ifdef WSAEAFNOSUPPORT
- add_errcode("EAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol");
+ add_errcode("EAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol");
#endif
#endif
#ifdef EBADR
- add_errcode("EBADR", EBADR, "Invalid request descriptor");
+ add_errcode("EBADR", EBADR, "Invalid request descriptor");
#endif
#ifdef EHOSTDOWN
- add_errcode("EHOSTDOWN", EHOSTDOWN, "Host is down");
+ add_errcode("EHOSTDOWN", EHOSTDOWN, "Host is down");
#else
#ifdef WSAEHOSTDOWN
- add_errcode("EHOSTDOWN", WSAEHOSTDOWN, "Host is down");
+ add_errcode("EHOSTDOWN", WSAEHOSTDOWN, "Host is down");
#endif
#endif
#ifdef EPFNOSUPPORT
- add_errcode("EPFNOSUPPORT", EPFNOSUPPORT, "Protocol family not supported");
+ add_errcode("EPFNOSUPPORT", EPFNOSUPPORT, "Protocol family not supported");
#else
#ifdef WSAEPFNOSUPPORT
- add_errcode("EPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported");
+ add_errcode("EPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported");
#endif
#endif
#ifdef ENOPROTOOPT
- add_errcode("ENOPROTOOPT", ENOPROTOOPT, "Protocol not available");
+ add_errcode("ENOPROTOOPT", ENOPROTOOPT, "Protocol not available");
#else
#ifdef WSAENOPROTOOPT
- add_errcode("ENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available");
+ add_errcode("ENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available");
#endif
#endif
#ifdef EBUSY
- add_errcode("EBUSY", EBUSY, "Device or resource busy");
+ add_errcode("EBUSY", EBUSY, "Device or resource busy");
#endif
#ifdef EWOULDBLOCK
- add_errcode("EWOULDBLOCK", EWOULDBLOCK, "Operation would block");
+ add_errcode("EWOULDBLOCK", EWOULDBLOCK, "Operation would block");
#else
#ifdef WSAEWOULDBLOCK
- add_errcode("EWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block");
+ add_errcode("EWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block");
#endif
#endif
#ifdef EBADFD
- add_errcode("EBADFD", EBADFD, "File descriptor in bad state");
+ add_errcode("EBADFD", EBADFD, "File descriptor in bad state");
#endif
#ifdef EDOTDOT
- add_errcode("EDOTDOT", EDOTDOT, "RFS specific error");
+ add_errcode("EDOTDOT", EDOTDOT, "RFS specific error");
#endif
#ifdef EISCONN
- add_errcode("EISCONN", EISCONN, "Transport endpoint is already connected");
+ add_errcode("EISCONN", EISCONN, "Transport endpoint is already connected");
#else
#ifdef WSAEISCONN
- add_errcode("EISCONN", WSAEISCONN, "Transport endpoint is already connected");
+ add_errcode("EISCONN", WSAEISCONN, "Transport endpoint is already connected");
#endif
#endif
#ifdef ENOANO
- add_errcode("ENOANO", ENOANO, "No anode");
+ add_errcode("ENOANO", ENOANO, "No anode");
#endif
#ifdef ESHUTDOWN
- add_errcode("ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown");
+ add_errcode("ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown");
#else
#ifdef WSAESHUTDOWN
- add_errcode("ESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown");
+ add_errcode("ESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown");
#endif
#endif
#ifdef ECHRNG
- add_errcode("ECHRNG", ECHRNG, "Channel number out of range");
+ add_errcode("ECHRNG", ECHRNG, "Channel number out of range");
#endif
#ifdef ELIBBAD
- add_errcode("ELIBBAD", ELIBBAD, "Accessing a corrupted shared library");
+ add_errcode("ELIBBAD", ELIBBAD, "Accessing a corrupted shared library");
#endif
#ifdef ENONET
- add_errcode("ENONET", ENONET, "Machine is not on the network");
+ add_errcode("ENONET", ENONET, "Machine is not on the network");
#endif
#ifdef EBADE
- add_errcode("EBADE", EBADE, "Invalid exchange");
+ add_errcode("EBADE", EBADE, "Invalid exchange");
#endif
#ifdef EBADF
- add_errcode("EBADF", EBADF, "Bad file number");
+ add_errcode("EBADF", EBADF, "Bad file number");
#else
#ifdef WSAEBADF
- add_errcode("EBADF", WSAEBADF, "Bad file number");
+ add_errcode("EBADF", WSAEBADF, "Bad file number");
#endif
#endif
#ifdef EMULTIHOP
- add_errcode("EMULTIHOP", EMULTIHOP, "Multihop attempted");
+ add_errcode("EMULTIHOP", EMULTIHOP, "Multihop attempted");
#endif
#ifdef EIO
- add_errcode("EIO", EIO, "I/O error");
+ add_errcode("EIO", EIO, "I/O error");
#endif
#ifdef EUNATCH
- add_errcode("EUNATCH", EUNATCH, "Protocol driver not attached");
+ add_errcode("EUNATCH", EUNATCH, "Protocol driver not attached");
#endif
#ifdef EPROTOTYPE
- add_errcode("EPROTOTYPE", EPROTOTYPE, "Protocol wrong type for socket");
+ add_errcode("EPROTOTYPE", EPROTOTYPE, "Protocol wrong type for socket");
#else
#ifdef WSAEPROTOTYPE
- add_errcode("EPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket");
+ add_errcode("EPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket");
#endif
#endif
#ifdef ENOSPC
- add_errcode("ENOSPC", ENOSPC, "No space left on device");
+ add_errcode("ENOSPC", ENOSPC, "No space left on device");
#endif
#ifdef ENOEXEC
- add_errcode("ENOEXEC", ENOEXEC, "Exec format error");
+ add_errcode("ENOEXEC", ENOEXEC, "Exec format error");
#endif
#ifdef EALREADY
- add_errcode("EALREADY", EALREADY, "Operation already in progress");
+ add_errcode("EALREADY", EALREADY, "Operation already in progress");
#else
#ifdef WSAEALREADY
- add_errcode("EALREADY", WSAEALREADY, "Operation already in progress");
+ add_errcode("EALREADY", WSAEALREADY, "Operation already in progress");
#endif
#endif
#ifdef ENETDOWN
- add_errcode("ENETDOWN", ENETDOWN, "Network is down");
+ add_errcode("ENETDOWN", ENETDOWN, "Network is down");
#else
#ifdef WSAENETDOWN
- add_errcode("ENETDOWN", WSAENETDOWN, "Network is down");
+ add_errcode("ENETDOWN", WSAENETDOWN, "Network is down");
#endif
#endif
#ifdef ENOTNAM
- add_errcode("ENOTNAM", ENOTNAM, "Not a XENIX named type file");
+ add_errcode("ENOTNAM", ENOTNAM, "Not a XENIX named type file");
#endif
#ifdef EACCES
- add_errcode("EACCES", EACCES, "Permission denied");
+ add_errcode("EACCES", EACCES, "Permission denied");
#else
#ifdef WSAEACCES
- add_errcode("EACCES", WSAEACCES, "Permission denied");
+ add_errcode("EACCES", WSAEACCES, "Permission denied");
#endif
#endif
#ifdef ELNRNG
- add_errcode("ELNRNG", ELNRNG, "Link number out of range");
+ add_errcode("ELNRNG", ELNRNG, "Link number out of range");
#endif
#ifdef EILSEQ
- add_errcode("EILSEQ", EILSEQ, "Illegal byte sequence");
+ add_errcode("EILSEQ", EILSEQ, "Illegal byte sequence");
#endif
#ifdef ENOTDIR
- add_errcode("ENOTDIR", ENOTDIR, "Not a directory");
+ add_errcode("ENOTDIR", ENOTDIR, "Not a directory");
#endif
#ifdef ENOTUNIQ
- add_errcode("ENOTUNIQ", ENOTUNIQ, "Name not unique on network");
+ add_errcode("ENOTUNIQ", ENOTUNIQ, "Name not unique on network");
#endif
#ifdef EPERM
- add_errcode("EPERM", EPERM, "Operation not permitted");
+ add_errcode("EPERM", EPERM, "Operation not permitted");
#endif
#ifdef EDOM
- add_errcode("EDOM", EDOM, "Math argument out of domain of func");
+ add_errcode("EDOM", EDOM, "Math argument out of domain of func");
#endif
#ifdef EXFULL
- add_errcode("EXFULL", EXFULL, "Exchange full");
+ add_errcode("EXFULL", EXFULL, "Exchange full");
#endif
#ifdef ECONNREFUSED
- add_errcode("ECONNREFUSED", ECONNREFUSED, "Connection refused");
+ add_errcode("ECONNREFUSED", ECONNREFUSED, "Connection refused");
#else
#ifdef WSAECONNREFUSED
- add_errcode("ECONNREFUSED", WSAECONNREFUSED, "Connection refused");
+ add_errcode("ECONNREFUSED", WSAECONNREFUSED, "Connection refused");
#endif
#endif
#ifdef EISDIR
- add_errcode("EISDIR", EISDIR, "Is a directory");
+ add_errcode("EISDIR", EISDIR, "Is a directory");
#endif
#ifdef EPROTONOSUPPORT
- add_errcode("EPROTONOSUPPORT", EPROTONOSUPPORT, "Protocol not supported");
+ add_errcode("EPROTONOSUPPORT", EPROTONOSUPPORT, "Protocol not supported");
#else
#ifdef WSAEPROTONOSUPPORT
- add_errcode("EPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported");
+ add_errcode("EPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported");
#endif
#endif
#ifdef EROFS
- add_errcode("EROFS", EROFS, "Read-only file system");
+ add_errcode("EROFS", EROFS, "Read-only file system");
#endif
#ifdef EADDRNOTAVAIL
- add_errcode("EADDRNOTAVAIL", EADDRNOTAVAIL, "Cannot assign requested address");
+ add_errcode("EADDRNOTAVAIL", EADDRNOTAVAIL, "Cannot assign requested address");
#else
#ifdef WSAEADDRNOTAVAIL
- add_errcode("EADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address");
+ add_errcode("EADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address");
#endif
#endif
#ifdef EIDRM
- add_errcode("EIDRM", EIDRM, "Identifier removed");
+ add_errcode("EIDRM", EIDRM, "Identifier removed");
#endif
#ifdef ECOMM
- add_errcode("ECOMM", ECOMM, "Communication error on send");
+ add_errcode("ECOMM", ECOMM, "Communication error on send");
#endif
#ifdef ESRMNT
- add_errcode("ESRMNT", ESRMNT, "Srmount error");
+ add_errcode("ESRMNT", ESRMNT, "Srmount error");
#endif
#ifdef EREMOTEIO
- add_errcode("EREMOTEIO", EREMOTEIO, "Remote I/O error");
+ add_errcode("EREMOTEIO", EREMOTEIO, "Remote I/O error");
#endif
#ifdef EL3RST
- add_errcode("EL3RST", EL3RST, "Level 3 reset");
+ add_errcode("EL3RST", EL3RST, "Level 3 reset");
#endif
#ifdef EBADMSG
- add_errcode("EBADMSG", EBADMSG, "Not a data message");
+ add_errcode("EBADMSG", EBADMSG, "Not a data message");
#endif
#ifdef ENFILE
- add_errcode("ENFILE", ENFILE, "File table overflow");
+ add_errcode("ENFILE", ENFILE, "File table overflow");
#endif
#ifdef ELIBMAX
- add_errcode("ELIBMAX", ELIBMAX, "Attempting to link in too many shared libraries");
+ add_errcode("ELIBMAX", ELIBMAX, "Attempting to link in too many shared libraries");
#endif
#ifdef ESPIPE
- add_errcode("ESPIPE", ESPIPE, "Illegal seek");
+ add_errcode("ESPIPE", ESPIPE, "Illegal seek");
#endif
#ifdef ENOLINK
- add_errcode("ENOLINK", ENOLINK, "Link has been severed");
+ add_errcode("ENOLINK", ENOLINK, "Link has been severed");
#endif
#ifdef ENETRESET
- add_errcode("ENETRESET", ENETRESET, "Network dropped connection because of reset");
+ add_errcode("ENETRESET", ENETRESET, "Network dropped connection because of reset");
#else
#ifdef WSAENETRESET
- add_errcode("ENETRESET", WSAENETRESET, "Network dropped connection because of reset");
+ add_errcode("ENETRESET", WSAENETRESET, "Network dropped connection because of reset");
#endif
#endif
#ifdef ETIMEDOUT
- add_errcode("ETIMEDOUT", ETIMEDOUT, "Connection timed out");
+ add_errcode("ETIMEDOUT", ETIMEDOUT, "Connection timed out");
#else
#ifdef WSAETIMEDOUT
- add_errcode("ETIMEDOUT", WSAETIMEDOUT, "Connection timed out");
+ add_errcode("ETIMEDOUT", WSAETIMEDOUT, "Connection timed out");
#endif
#endif
#ifdef ENOENT
- add_errcode("ENOENT", ENOENT, "No such file or directory");
+ add_errcode("ENOENT", ENOENT, "No such file or directory");
#endif
#ifdef EEXIST
- add_errcode("EEXIST", EEXIST, "File exists");
+ add_errcode("EEXIST", EEXIST, "File exists");
#endif
#ifdef EDQUOT
- add_errcode("EDQUOT", EDQUOT, "Quota exceeded");
+ add_errcode("EDQUOT", EDQUOT, "Quota exceeded");
#else
#ifdef WSAEDQUOT
- add_errcode("EDQUOT", WSAEDQUOT, "Quota exceeded");
+ add_errcode("EDQUOT", WSAEDQUOT, "Quota exceeded");
#endif
#endif
#ifdef ENOSTR
- add_errcode("ENOSTR", ENOSTR, "Device not a stream");
+ add_errcode("ENOSTR", ENOSTR, "Device not a stream");
#endif
#ifdef EBADSLT
- add_errcode("EBADSLT", EBADSLT, "Invalid slot");
+ add_errcode("EBADSLT", EBADSLT, "Invalid slot");
#endif
#ifdef EBADRQC
- add_errcode("EBADRQC", EBADRQC, "Invalid request code");
+ add_errcode("EBADRQC", EBADRQC, "Invalid request code");
#endif
#ifdef ELIBACC
- add_errcode("ELIBACC", ELIBACC, "Can not access a needed shared library");
+ add_errcode("ELIBACC", ELIBACC, "Can not access a needed shared library");
#endif
#ifdef EFAULT
- add_errcode("EFAULT", EFAULT, "Bad address");
+ add_errcode("EFAULT", EFAULT, "Bad address");
#else
#ifdef WSAEFAULT
- add_errcode("EFAULT", WSAEFAULT, "Bad address");
+ add_errcode("EFAULT", WSAEFAULT, "Bad address");
#endif
#endif
#ifdef EFBIG
- add_errcode("EFBIG", EFBIG, "File too large");
+ add_errcode("EFBIG", EFBIG, "File too large");
#endif
#ifdef EDEADLK
- add_errcode("EDEADLK", EDEADLK, "Resource deadlock would occur");
+ add_errcode("EDEADLK", EDEADLK, "Resource deadlock would occur");
#endif
#ifdef ENOTCONN
- add_errcode("ENOTCONN", ENOTCONN, "Transport endpoint is not connected");
+ add_errcode("ENOTCONN", ENOTCONN, "Transport endpoint is not connected");
#else
#ifdef WSAENOTCONN
- add_errcode("ENOTCONN", WSAENOTCONN, "Transport endpoint is not connected");
+ add_errcode("ENOTCONN", WSAENOTCONN, "Transport endpoint is not connected");
#endif
#endif
#ifdef EDESTADDRREQ
- add_errcode("EDESTADDRREQ", EDESTADDRREQ, "Destination address required");
+ add_errcode("EDESTADDRREQ", EDESTADDRREQ, "Destination address required");
#else
#ifdef WSAEDESTADDRREQ
- add_errcode("EDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required");
+ add_errcode("EDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required");
#endif
#endif
#ifdef ELIBSCN
- add_errcode("ELIBSCN", ELIBSCN, ".lib section in a.out corrupted");
+ add_errcode("ELIBSCN", ELIBSCN, ".lib section in a.out corrupted");
#endif
#ifdef ENOLCK
- add_errcode("ENOLCK", ENOLCK, "No record locks available");
+ add_errcode("ENOLCK", ENOLCK, "No record locks available");
#endif
#ifdef EISNAM
- add_errcode("EISNAM", EISNAM, "Is a named type file");
+ add_errcode("EISNAM", EISNAM, "Is a named type file");
#endif
#ifdef ECONNABORTED
- add_errcode("ECONNABORTED", ECONNABORTED, "Software caused connection abort");
+ add_errcode("ECONNABORTED", ECONNABORTED, "Software caused connection abort");
#else
#ifdef WSAECONNABORTED
- add_errcode("ECONNABORTED", WSAECONNABORTED, "Software caused connection abort");
+ add_errcode("ECONNABORTED", WSAECONNABORTED, "Software caused connection abort");
#endif
#endif
#ifdef ENETUNREACH
- add_errcode("ENETUNREACH", ENETUNREACH, "Network is unreachable");
+ add_errcode("ENETUNREACH", ENETUNREACH, "Network is unreachable");
#else
#ifdef WSAENETUNREACH
- add_errcode("ENETUNREACH", WSAENETUNREACH, "Network is unreachable");
+ add_errcode("ENETUNREACH", WSAENETUNREACH, "Network is unreachable");
#endif
#endif
#ifdef ESTALE
- add_errcode("ESTALE", ESTALE, "Stale NFS file handle");
+ add_errcode("ESTALE", ESTALE, "Stale NFS file handle");
#else
#ifdef WSAESTALE
- add_errcode("ESTALE", WSAESTALE, "Stale NFS file handle");
+ add_errcode("ESTALE", WSAESTALE, "Stale NFS file handle");
#endif
#endif
#ifdef ENOSR
- add_errcode("ENOSR", ENOSR, "Out of streams resources");
+ add_errcode("ENOSR", ENOSR, "Out of streams resources");
#endif
#ifdef ENOMEM
- add_errcode("ENOMEM", ENOMEM, "Out of memory");
+ add_errcode("ENOMEM", ENOMEM, "Out of memory");
#endif
#ifdef ENOTSOCK
- add_errcode("ENOTSOCK", ENOTSOCK, "Socket operation on non-socket");
+ add_errcode("ENOTSOCK", ENOTSOCK, "Socket operation on non-socket");
#else
#ifdef WSAENOTSOCK
- add_errcode("ENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket");
+ add_errcode("ENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket");
#endif
#endif
#ifdef ESTRPIPE
- add_errcode("ESTRPIPE", ESTRPIPE, "Streams pipe error");
+ add_errcode("ESTRPIPE", ESTRPIPE, "Streams pipe error");
#endif
#ifdef EMLINK
- add_errcode("EMLINK", EMLINK, "Too many links");
+ add_errcode("EMLINK", EMLINK, "Too many links");
#endif
#ifdef ERANGE
- add_errcode("ERANGE", ERANGE, "Math result not representable");
+ add_errcode("ERANGE", ERANGE, "Math result not representable");
#endif
#ifdef ELIBEXEC
- add_errcode("ELIBEXEC", ELIBEXEC, "Cannot exec a shared library directly");
+ add_errcode("ELIBEXEC", ELIBEXEC, "Cannot exec a shared library directly");
#endif
#ifdef EL3HLT
- add_errcode("EL3HLT", EL3HLT, "Level 3 halted");
+ add_errcode("EL3HLT", EL3HLT, "Level 3 halted");
#endif
#ifdef ECONNRESET
- add_errcode("ECONNRESET", ECONNRESET, "Connection reset by peer");
+ add_errcode("ECONNRESET", ECONNRESET, "Connection reset by peer");
#else
#ifdef WSAECONNRESET
- add_errcode("ECONNRESET", WSAECONNRESET, "Connection reset by peer");
+ add_errcode("ECONNRESET", WSAECONNRESET, "Connection reset by peer");
#endif
#endif
#ifdef EADDRINUSE
- add_errcode("EADDRINUSE", EADDRINUSE, "Address already in use");
+ add_errcode("EADDRINUSE", EADDRINUSE, "Address already in use");
#else
#ifdef WSAEADDRINUSE
- add_errcode("EADDRINUSE", WSAEADDRINUSE, "Address already in use");
+ add_errcode("EADDRINUSE", WSAEADDRINUSE, "Address already in use");
#endif
#endif
#ifdef EOPNOTSUPP
- add_errcode("EOPNOTSUPP", EOPNOTSUPP, "Operation not supported on transport endpoint");
+ add_errcode("EOPNOTSUPP", EOPNOTSUPP, "Operation not supported on transport endpoint");
#else
#ifdef WSAEOPNOTSUPP
- add_errcode("EOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint");
+ add_errcode("EOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint");
#endif
#endif
#ifdef EREMCHG
- add_errcode("EREMCHG", EREMCHG, "Remote address changed");
+ add_errcode("EREMCHG", EREMCHG, "Remote address changed");
#endif
#ifdef EAGAIN
- add_errcode("EAGAIN", EAGAIN, "Try again");
+ add_errcode("EAGAIN", EAGAIN, "Try again");
#endif
#ifdef ENAMETOOLONG
- add_errcode("ENAMETOOLONG", ENAMETOOLONG, "File name too long");
+ add_errcode("ENAMETOOLONG", ENAMETOOLONG, "File name too long");
#else
#ifdef WSAENAMETOOLONG
- add_errcode("ENAMETOOLONG", WSAENAMETOOLONG, "File name too long");
+ add_errcode("ENAMETOOLONG", WSAENAMETOOLONG, "File name too long");
#endif
#endif
#ifdef ENOTTY
- add_errcode("ENOTTY", ENOTTY, "Not a typewriter");
+ add_errcode("ENOTTY", ENOTTY, "Not a typewriter");
#endif
#ifdef ERESTART
- add_errcode("ERESTART", ERESTART, "Interrupted system call should be restarted");
+ add_errcode("ERESTART", ERESTART, "Interrupted system call should be restarted");
#endif
#ifdef ESOCKTNOSUPPORT
- add_errcode("ESOCKTNOSUPPORT", ESOCKTNOSUPPORT, "Socket type not supported");
+ add_errcode("ESOCKTNOSUPPORT", ESOCKTNOSUPPORT, "Socket type not supported");
#else
#ifdef WSAESOCKTNOSUPPORT
- add_errcode("ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported");
+ add_errcode("ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported");
#endif
#endif
#ifdef ETIME
- add_errcode("ETIME", ETIME, "Timer expired");
+ add_errcode("ETIME", ETIME, "Timer expired");
#endif
#ifdef EBFONT
- add_errcode("EBFONT", EBFONT, "Bad font file format");
+ add_errcode("EBFONT", EBFONT, "Bad font file format");
#endif
#ifdef EDEADLOCK
- add_errcode("EDEADLOCK", EDEADLOCK, "Error EDEADLOCK");
+ add_errcode("EDEADLOCK", EDEADLOCK, "Error EDEADLOCK");
#endif
#ifdef ETOOMANYREFS
- add_errcode("ETOOMANYREFS", ETOOMANYREFS, "Too many references: cannot splice");
+ add_errcode("ETOOMANYREFS", ETOOMANYREFS, "Too many references: cannot splice");
#else
#ifdef WSAETOOMANYREFS
- add_errcode("ETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice");
+ add_errcode("ETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice");
#endif
#endif
#ifdef EMFILE
- add_errcode("EMFILE", EMFILE, "Too many open files");
+ add_errcode("EMFILE", EMFILE, "Too many open files");
#else
#ifdef WSAEMFILE
- add_errcode("EMFILE", WSAEMFILE, "Too many open files");
+ add_errcode("EMFILE", WSAEMFILE, "Too many open files");
#endif
#endif
#ifdef ETXTBSY
- add_errcode("ETXTBSY", ETXTBSY, "Text file busy");
+ add_errcode("ETXTBSY", ETXTBSY, "Text file busy");
#endif
#ifdef EINPROGRESS
- add_errcode("EINPROGRESS", EINPROGRESS, "Operation now in progress");
+ add_errcode("EINPROGRESS", EINPROGRESS, "Operation now in progress");
#else
#ifdef WSAEINPROGRESS
- add_errcode("EINPROGRESS", WSAEINPROGRESS, "Operation now in progress");
+ add_errcode("EINPROGRESS", WSAEINPROGRESS, "Operation now in progress");
#endif
#endif
#ifdef ENXIO
- add_errcode("ENXIO", ENXIO, "No such device or address");
+ add_errcode("ENXIO", ENXIO, "No such device or address");
#endif
#ifdef ENOPKG
- add_errcode("ENOPKG", ENOPKG, "Package not installed");
+ add_errcode("ENOPKG", ENOPKG, "Package not installed");
#endif
#ifdef WSASY
- add_errcode("WSASY", WSASY, "Error WSASY");
+ add_errcode("WSASY", WSASY, "Error WSASY");
#endif
#ifdef WSAEHOSTDOWN
- add_errcode("WSAEHOSTDOWN", WSAEHOSTDOWN, "Host is down");
+ add_errcode("WSAEHOSTDOWN", WSAEHOSTDOWN, "Host is down");
#endif
#ifdef WSAENETDOWN
- add_errcode("WSAENETDOWN", WSAENETDOWN, "Network is down");
+ add_errcode("WSAENETDOWN", WSAENETDOWN, "Network is down");
#endif
#ifdef WSAENOTSOCK
- add_errcode("WSAENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket");
+ add_errcode("WSAENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket");
#endif
#ifdef WSAEHOSTUNREACH
- add_errcode("WSAEHOSTUNREACH", WSAEHOSTUNREACH, "No route to host");
+ add_errcode("WSAEHOSTUNREACH", WSAEHOSTUNREACH, "No route to host");
#endif
#ifdef WSAELOOP
- add_errcode("WSAELOOP", WSAELOOP, "Too many symbolic links encountered");
+ add_errcode("WSAELOOP", WSAELOOP, "Too many symbolic links encountered");
#endif
#ifdef WSAEMFILE
- add_errcode("WSAEMFILE", WSAEMFILE, "Too many open files");
+ add_errcode("WSAEMFILE", WSAEMFILE, "Too many open files");
#endif
#ifdef WSAESTALE
- add_errcode("WSAESTALE", WSAESTALE, "Stale NFS file handle");
+ add_errcode("WSAESTALE", WSAESTALE, "Stale NFS file handle");
#endif
#ifdef WSAVERNOTSUPPORTED
- add_errcode("WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED, "Error WSAVERNOTSUPPORTED");
+ add_errcode("WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED, "Error WSAVERNOTSUPPORTED");
#endif
#ifdef WSAENETUNREACH
- add_errcode("WSAENETUNREACH", WSAENETUNREACH, "Network is unreachable");
+ add_errcode("WSAENETUNREACH", WSAENETUNREACH, "Network is unreachable");
#endif
#ifdef WSAEPROCLIM
- add_errcode("WSAEPROCLIM", WSAEPROCLIM, "Error WSAEPROCLIM");
+ add_errcode("WSAEPROCLIM", WSAEPROCLIM, "Error WSAEPROCLIM");
#endif
#ifdef WSAEFAULT
- add_errcode("WSAEFAULT", WSAEFAULT, "Bad address");
+ add_errcode("WSAEFAULT", WSAEFAULT, "Bad address");
#endif
#ifdef WSANOTINITIALISED
- add_errcode("WSANOTINITIALISED", WSANOTINITIALISED, "Error WSANOTINITIALISED");
+ add_errcode("WSANOTINITIALISED", WSANOTINITIALISED, "Error WSANOTINITIALISED");
#endif
#ifdef WSAEUSERS
- add_errcode("WSAEUSERS", WSAEUSERS, "Too many users");
+ add_errcode("WSAEUSERS", WSAEUSERS, "Too many users");
#endif
#ifdef WSAMAKEASYNCREPL
- add_errcode("WSAMAKEASYNCREPL", WSAMAKEASYNCREPL, "Error WSAMAKEASYNCREPL");
+ add_errcode("WSAMAKEASYNCREPL", WSAMAKEASYNCREPL, "Error WSAMAKEASYNCREPL");
#endif
#ifdef WSAENOPROTOOPT
- add_errcode("WSAENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available");
+ add_errcode("WSAENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available");
#endif
#ifdef WSAECONNABORTED
- add_errcode("WSAECONNABORTED", WSAECONNABORTED, "Software caused connection abort");
+ add_errcode("WSAECONNABORTED", WSAECONNABORTED, "Software caused connection abort");
#endif
#ifdef WSAENAMETOOLONG
- add_errcode("WSAENAMETOOLONG", WSAENAMETOOLONG, "File name too long");
+ add_errcode("WSAENAMETOOLONG", WSAENAMETOOLONG, "File name too long");
#endif
#ifdef WSAENOTEMPTY
- add_errcode("WSAENOTEMPTY", WSAENOTEMPTY, "Directory not empty");
+ add_errcode("WSAENOTEMPTY", WSAENOTEMPTY, "Directory not empty");
#endif
#ifdef WSAESHUTDOWN
- add_errcode("WSAESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown");
+ add_errcode("WSAESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown");
#endif
#ifdef WSAEAFNOSUPPORT
- add_errcode("WSAEAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol");
+ add_errcode("WSAEAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol");
#endif
#ifdef WSAETOOMANYREFS
- add_errcode("WSAETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice");
+ add_errcode("WSAETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice");
#endif
#ifdef WSAEACCES
- add_errcode("WSAEACCES", WSAEACCES, "Permission denied");
+ add_errcode("WSAEACCES", WSAEACCES, "Permission denied");
#endif
#ifdef WSATR
- add_errcode("WSATR", WSATR, "Error WSATR");
+ add_errcode("WSATR", WSATR, "Error WSATR");
#endif
#ifdef WSABASEERR
- add_errcode("WSABASEERR", WSABASEERR, "Error WSABASEERR");
+ add_errcode("WSABASEERR", WSABASEERR, "Error WSABASEERR");
#endif
#ifdef WSADESCRIPTIO
- add_errcode("WSADESCRIPTIO", WSADESCRIPTIO, "Error WSADESCRIPTIO");
+ add_errcode("WSADESCRIPTIO", WSADESCRIPTIO, "Error WSADESCRIPTIO");
#endif
#ifdef WSAEMSGSIZE
- add_errcode("WSAEMSGSIZE", WSAEMSGSIZE, "Message too long");
+ add_errcode("WSAEMSGSIZE", WSAEMSGSIZE, "Message too long");
#endif
#ifdef WSAEBADF
- add_errcode("WSAEBADF", WSAEBADF, "Bad file number");
+ add_errcode("WSAEBADF", WSAEBADF, "Bad file number");
#endif
#ifdef WSAECONNRESET
- add_errcode("WSAECONNRESET", WSAECONNRESET, "Connection reset by peer");
+ add_errcode("WSAECONNRESET", WSAECONNRESET, "Connection reset by peer");
#endif
#ifdef WSAGETSELECTERRO
- add_errcode("WSAGETSELECTERRO", WSAGETSELECTERRO, "Error WSAGETSELECTERRO");
+ add_errcode("WSAGETSELECTERRO", WSAGETSELECTERRO, "Error WSAGETSELECTERRO");
#endif
#ifdef WSAETIMEDOUT
- add_errcode("WSAETIMEDOUT", WSAETIMEDOUT, "Connection timed out");
+ add_errcode("WSAETIMEDOUT", WSAETIMEDOUT, "Connection timed out");
#endif
#ifdef WSAENOBUFS
- add_errcode("WSAENOBUFS", WSAENOBUFS, "No buffer space available");
+ add_errcode("WSAENOBUFS", WSAENOBUFS, "No buffer space available");
#endif
#ifdef WSAEDISCON
- add_errcode("WSAEDISCON", WSAEDISCON, "Error WSAEDISCON");
+ add_errcode("WSAEDISCON", WSAEDISCON, "Error WSAEDISCON");
#endif
#ifdef WSAEINTR
- add_errcode("WSAEINTR", WSAEINTR, "Interrupted system call");
+ add_errcode("WSAEINTR", WSAEINTR, "Interrupted system call");
#endif
#ifdef WSAEPROTOTYPE
- add_errcode("WSAEPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket");
+ add_errcode("WSAEPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket");
#endif
#ifdef WSAHOS
- add_errcode("WSAHOS", WSAHOS, "Error WSAHOS");
+ add_errcode("WSAHOS", WSAHOS, "Error WSAHOS");
#endif
#ifdef WSAEADDRINUSE
- add_errcode("WSAEADDRINUSE", WSAEADDRINUSE, "Address already in use");
+ add_errcode("WSAEADDRINUSE", WSAEADDRINUSE, "Address already in use");
#endif
#ifdef WSAEADDRNOTAVAIL
- add_errcode("WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address");
+ add_errcode("WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address");
#endif
#ifdef WSAEALREADY
- add_errcode("WSAEALREADY", WSAEALREADY, "Operation already in progress");
+ add_errcode("WSAEALREADY", WSAEALREADY, "Operation already in progress");
#endif
#ifdef WSAEPROTONOSUPPORT
- add_errcode("WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported");
+ add_errcode("WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported");
#endif
#ifdef WSASYSNOTREADY
- add_errcode("WSASYSNOTREADY", WSASYSNOTREADY, "Error WSASYSNOTREADY");
+ add_errcode("WSASYSNOTREADY", WSASYSNOTREADY, "Error WSASYSNOTREADY");
#endif
#ifdef WSAEWOULDBLOCK
- add_errcode("WSAEWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block");
+ add_errcode("WSAEWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block");
#endif
#ifdef WSAEPFNOSUPPORT
- add_errcode("WSAEPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported");
+ add_errcode("WSAEPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported");
#endif
#ifdef WSAEOPNOTSUPP
- add_errcode("WSAEOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint");
+ add_errcode("WSAEOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint");
#endif
#ifdef WSAEISCONN
- add_errcode("WSAEISCONN", WSAEISCONN, "Transport endpoint is already connected");
+ add_errcode("WSAEISCONN", WSAEISCONN, "Transport endpoint is already connected");
#endif
#ifdef WSAEDQUOT
- add_errcode("WSAEDQUOT", WSAEDQUOT, "Quota exceeded");
+ add_errcode("WSAEDQUOT", WSAEDQUOT, "Quota exceeded");
#endif
#ifdef WSAENOTCONN
- add_errcode("WSAENOTCONN", WSAENOTCONN, "Transport endpoint is not connected");
+ add_errcode("WSAENOTCONN", WSAENOTCONN, "Transport endpoint is not connected");
#endif
#ifdef WSAEREMOTE
- add_errcode("WSAEREMOTE", WSAEREMOTE, "Object is remote");
+ add_errcode("WSAEREMOTE", WSAEREMOTE, "Object is remote");
#endif
#ifdef WSAEINVAL
- add_errcode("WSAEINVAL", WSAEINVAL, "Invalid argument");
+ add_errcode("WSAEINVAL", WSAEINVAL, "Invalid argument");
#endif
#ifdef WSAEINPROGRESS
- add_errcode("WSAEINPROGRESS", WSAEINPROGRESS, "Operation now in progress");
+ add_errcode("WSAEINPROGRESS", WSAEINPROGRESS, "Operation now in progress");
#endif
#ifdef WSAGETSELECTEVEN
- add_errcode("WSAGETSELECTEVEN", WSAGETSELECTEVEN, "Error WSAGETSELECTEVEN");
+ add_errcode("WSAGETSELECTEVEN", WSAGETSELECTEVEN, "Error WSAGETSELECTEVEN");
#endif
#ifdef WSAESOCKTNOSUPPORT
- add_errcode("WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported");
+ add_errcode("WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported");
#endif
#ifdef WSAGETASYNCERRO
- add_errcode("WSAGETASYNCERRO", WSAGETASYNCERRO, "Error WSAGETASYNCERRO");
+ add_errcode("WSAGETASYNCERRO", WSAGETASYNCERRO, "Error WSAGETASYNCERRO");
#endif
#ifdef WSAMAKESELECTREPL
- add_errcode("WSAMAKESELECTREPL", WSAMAKESELECTREPL, "Error WSAMAKESELECTREPL");
+ add_errcode("WSAMAKESELECTREPL", WSAMAKESELECTREPL, "Error WSAMAKESELECTREPL");
#endif
#ifdef WSAGETASYNCBUFLE
- add_errcode("WSAGETASYNCBUFLE", WSAGETASYNCBUFLE, "Error WSAGETASYNCBUFLE");
+ add_errcode("WSAGETASYNCBUFLE", WSAGETASYNCBUFLE, "Error WSAGETASYNCBUFLE");
#endif
#ifdef WSAEDESTADDRREQ
- add_errcode("WSAEDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required");
+ add_errcode("WSAEDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required");
#endif
#ifdef WSAECONNREFUSED
- add_errcode("WSAECONNREFUSED", WSAECONNREFUSED, "Connection refused");
+ add_errcode("WSAECONNREFUSED", WSAECONNREFUSED, "Connection refused");
#endif
#ifdef WSAENETRESET
- add_errcode("WSAENETRESET", WSAENETRESET, "Network dropped connection because of reset");
+ add_errcode("WSAENETRESET", WSAENETRESET, "Network dropped connection because of reset");
#endif
#ifdef WSAN
- add_errcode("WSAN", WSAN, "Error WSAN");
+ add_errcode("WSAN", WSAN, "Error WSAN");
#endif
#ifdef ENOMEDIUM
- add_errcode("ENOMEDIUM", ENOMEDIUM, "No medium found");
+ add_errcode("ENOMEDIUM", ENOMEDIUM, "No medium found");
#endif
#ifdef EMEDIUMTYPE
- add_errcode("EMEDIUMTYPE", EMEDIUMTYPE, "Wrong medium type");
+ add_errcode("EMEDIUMTYPE", EMEDIUMTYPE, "Wrong medium type");
#endif
#ifdef ECANCELED
- add_errcode("ECANCELED", ECANCELED, "Operation Canceled");
+ add_errcode("ECANCELED", ECANCELED, "Operation Canceled");
#endif
#ifdef ENOKEY
- add_errcode("ENOKEY", ENOKEY, "Required key not available");
+ add_errcode("ENOKEY", ENOKEY, "Required key not available");
#endif
#ifdef EKEYEXPIRED
- add_errcode("EKEYEXPIRED", EKEYEXPIRED, "Key has expired");
+ add_errcode("EKEYEXPIRED", EKEYEXPIRED, "Key has expired");
#endif
#ifdef EKEYREVOKED
- add_errcode("EKEYREVOKED", EKEYREVOKED, "Key has been revoked");
+ add_errcode("EKEYREVOKED", EKEYREVOKED, "Key has been revoked");
#endif
#ifdef EKEYREJECTED
- add_errcode("EKEYREJECTED", EKEYREJECTED, "Key was rejected by service");
+ add_errcode("EKEYREJECTED", EKEYREJECTED, "Key was rejected by service");
#endif
#ifdef EOWNERDEAD
- add_errcode("EOWNERDEAD", EOWNERDEAD, "Owner died");
+ add_errcode("EOWNERDEAD", EOWNERDEAD, "Owner died");
#endif
#ifdef ENOTRECOVERABLE
- add_errcode("ENOTRECOVERABLE", ENOTRECOVERABLE, "State not recoverable");
+ add_errcode("ENOTRECOVERABLE", ENOTRECOVERABLE, "State not recoverable");
#endif
#ifdef ERFKILL
- add_errcode("ERFKILL", ERFKILL, "Operation not possible due to RF-kill");
+ add_errcode("ERFKILL", ERFKILL, "Operation not possible due to RF-kill");
#endif
/* Solaris-specific errnos */
#ifdef ECANCELED
- add_errcode("ECANCELED", ECANCELED, "Operation canceled");
+ add_errcode("ECANCELED", ECANCELED, "Operation canceled");
#endif
#ifdef ENOTSUP
- add_errcode("ENOTSUP", ENOTSUP, "Operation not supported");
+ add_errcode("ENOTSUP", ENOTSUP, "Operation not supported");
#endif
#ifdef EOWNERDEAD
- add_errcode("EOWNERDEAD", EOWNERDEAD, "Process died with the lock");
+ add_errcode("EOWNERDEAD", EOWNERDEAD, "Process died with the lock");
#endif
#ifdef ENOTRECOVERABLE
- add_errcode("ENOTRECOVERABLE", ENOTRECOVERABLE, "Lock is not recoverable");
+ add_errcode("ENOTRECOVERABLE", ENOTRECOVERABLE, "Lock is not recoverable");
#endif
#ifdef ELOCKUNMAPPED
- add_errcode("ELOCKUNMAPPED", ELOCKUNMAPPED, "Locked lock was unmapped");
+ add_errcode("ELOCKUNMAPPED", ELOCKUNMAPPED, "Locked lock was unmapped");
#endif
#ifdef ENOTACTIVE
- add_errcode("ENOTACTIVE", ENOTACTIVE, "Facility is not active");
+ add_errcode("ENOTACTIVE", ENOTACTIVE, "Facility is not active");
#endif
/* MacOSX specific errnos */
#ifdef EAUTH
- add_errcode("EAUTH", EAUTH, "Authentication error");
+ add_errcode("EAUTH", EAUTH, "Authentication error");
#endif
#ifdef EBADARCH
- add_errcode("EBADARCH", EBADARCH, "Bad CPU type in executable");
+ add_errcode("EBADARCH", EBADARCH, "Bad CPU type in executable");
#endif
#ifdef EBADEXEC
- add_errcode("EBADEXEC", EBADEXEC, "Bad executable (or shared library)");
+ add_errcode("EBADEXEC", EBADEXEC, "Bad executable (or shared library)");
#endif
#ifdef EBADMACHO
- add_errcode("EBADMACHO", EBADMACHO, "Malformed Mach-o file");
+ add_errcode("EBADMACHO", EBADMACHO, "Malformed Mach-o file");
#endif
#ifdef EBADRPC
- add_errcode("EBADRPC", EBADRPC, "RPC struct is bad");
+ add_errcode("EBADRPC", EBADRPC, "RPC struct is bad");
#endif
#ifdef EDEVERR
- add_errcode("EDEVERR", EDEVERR, "Device error");
+ add_errcode("EDEVERR", EDEVERR, "Device error");
#endif
#ifdef EFTYPE
- add_errcode("EFTYPE", EFTYPE, "Inappropriate file type or format");
+ add_errcode("EFTYPE", EFTYPE, "Inappropriate file type or format");
#endif
#ifdef ENEEDAUTH
- add_errcode("ENEEDAUTH", ENEEDAUTH, "Need authenticator");
+ add_errcode("ENEEDAUTH", ENEEDAUTH, "Need authenticator");
#endif
#ifdef ENOATTR
- add_errcode("ENOATTR", ENOATTR, "Attribute not found");
+ add_errcode("ENOATTR", ENOATTR, "Attribute not found");
#endif
#ifdef ENOPOLICY
- add_errcode("ENOPOLICY", ENOPOLICY, "Policy not found");
+ add_errcode("ENOPOLICY", ENOPOLICY, "Policy not found");
#endif
#ifdef EPROCLIM
- add_errcode("EPROCLIM", EPROCLIM, "Too many processes");
+ add_errcode("EPROCLIM", EPROCLIM, "Too many processes");
#endif
#ifdef EPROCUNAVAIL
- add_errcode("EPROCUNAVAIL", EPROCUNAVAIL, "Bad procedure for program");
+ add_errcode("EPROCUNAVAIL", EPROCUNAVAIL, "Bad procedure for program");
#endif
#ifdef EPROGMISMATCH
- add_errcode("EPROGMISMATCH", EPROGMISMATCH, "Program version wrong");
+ add_errcode("EPROGMISMATCH", EPROGMISMATCH, "Program version wrong");
#endif
#ifdef EPROGUNAVAIL
- add_errcode("EPROGUNAVAIL", EPROGUNAVAIL, "RPC prog. not avail");
+ add_errcode("EPROGUNAVAIL", EPROGUNAVAIL, "RPC prog. not avail");
#endif
#ifdef EPWROFF
- add_errcode("EPWROFF", EPWROFF, "Device power is off");
+ add_errcode("EPWROFF", EPWROFF, "Device power is off");
#endif
#ifdef ERPCMISMATCH
- add_errcode("ERPCMISMATCH", ERPCMISMATCH, "RPC version wrong");
+ add_errcode("ERPCMISMATCH", ERPCMISMATCH, "RPC version wrong");
#endif
#ifdef ESHLIBVERS
- add_errcode("ESHLIBVERS", ESHLIBVERS, "Shared library version mismatch");
+ add_errcode("ESHLIBVERS", ESHLIBVERS, "Shared library version mismatch");
#endif
- Py_DECREF(error_dict);
- return 0;
+ Py_DECREF(error_dict);
+ return 0;
+}
+
+static PyModuleDef_Slot errno_slots[] = {
+ {Py_mod_exec, errno_exec},
+ {0, NULL}
+};
+
+PyDoc_STRVAR(errno__doc__,
+"This module makes available standard errno system symbols.\n\
+\n\
+The value of each symbol is the corresponding integer value,\n\
+e.g., on most systems, errno.ENOENT equals the integer 2.\n\
+\n\
+The dictionary errno.errorcode maps numeric codes to symbol names,\n\
+e.g., errno.errorcode[2] could be the string 'ENOENT'.\n\
+\n\
+Symbols that are not relevant to the underlying system are not defined.\n\
+\n\
+To map error codes to error messages, use the function os.strerror(),\n\
+e.g. os.strerror(2) could return 'No such file or directory'.");
+
+static struct PyModuleDef errnomodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "errno",
+ .m_doc = errno__doc__,
+ .m_size = 0,
+ .m_methods = errno_methods,
+ .m_slots = errno_slots,
+};
+
+PyMODINIT_FUNC
+PyInit_errno(void)
+{
+ return PyModuleDef_Init(&errnomodule);
}
-
-static PyModuleDef_Slot errno_slots[] = {
- {Py_mod_exec, errno_exec},
- {0, NULL}
-};
-
-PyDoc_STRVAR(errno__doc__,
-"This module makes available standard errno system symbols.\n\
-\n\
-The value of each symbol is the corresponding integer value,\n\
-e.g., on most systems, errno.ENOENT equals the integer 2.\n\
-\n\
-The dictionary errno.errorcode maps numeric codes to symbol names,\n\
-e.g., errno.errorcode[2] could be the string 'ENOENT'.\n\
-\n\
-Symbols that are not relevant to the underlying system are not defined.\n\
-\n\
-To map error codes to error messages, use the function os.strerror(),\n\
-e.g. os.strerror(2) could return 'No such file or directory'.");
-
-static struct PyModuleDef errnomodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "errno",
- .m_doc = errno__doc__,
- .m_size = 0,
- .m_methods = errno_methods,
- .m_slots = errno_slots,
-};
-
-PyMODINIT_FUNC
-PyInit_errno(void)
-{
- return PyModuleDef_Init(&errnomodule);
-}
diff --git a/contrib/tools/python3/src/Modules/faulthandler.c b/contrib/tools/python3/src/Modules/faulthandler.c
index 4973cff623..e7a2850330 100644
--- a/contrib/tools/python3/src/Modules/faulthandler.c
+++ b/contrib/tools/python3/src/Modules/faulthandler.c
@@ -1,6 +1,6 @@
#include "Python.h"
-#include "pycore_initconfig.h"
-#include "pycore_traceback.h"
+#include "pycore_initconfig.h"
+#include "pycore_traceback.h"
#include <signal.h>
#include <object.h>
#include <frameobject.h>
@@ -120,13 +120,13 @@ static fault_handler_t faulthandler_handlers[] = {
static const size_t faulthandler_nsignals = \
Py_ARRAY_LENGTH(faulthandler_handlers);
-/* Using an alternative stack requires sigaltstack()
- and sigaction() SA_ONSTACK */
-#if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION)
-# define FAULTHANDLER_USE_ALT_STACK
-#endif
-
-#ifdef FAULTHANDLER_USE_ALT_STACK
+/* Using an alternative stack requires sigaltstack()
+ and sigaction() SA_ONSTACK */
+#if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION)
+# define FAULTHANDLER_USE_ALT_STACK
+#endif
+
+#ifdef FAULTHANDLER_USE_ALT_STACK
static stack_t stack;
static stack_t old_stack;
#endif
@@ -173,7 +173,7 @@ faulthandler_get_fileno(PyObject **file_ptr)
return fd;
}
- result = _PyObject_CallMethodIdNoArgs(file, &PyId_fileno);
+ result = _PyObject_CallMethodIdNoArgs(file, &PyId_fileno);
if (result == NULL)
return -1;
@@ -191,7 +191,7 @@ faulthandler_get_fileno(PyObject **file_ptr)
return -1;
}
- result = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
+ result = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
if (result != NULL)
Py_DECREF(result);
else {
@@ -428,36 +428,36 @@ faulthandler_exc_handler(struct _EXCEPTION_POINTERS *exc_info)
}
#endif
-
-#ifdef FAULTHANDLER_USE_ALT_STACK
-static int
-faulthandler_allocate_stack(void)
-{
- if (stack.ss_sp != NULL) {
- return 0;
- }
- /* Allocate an alternate stack for faulthandler() signal handler
- to be able to execute a signal handler on a stack overflow error */
- stack.ss_sp = PyMem_Malloc(stack.ss_size);
- if (stack.ss_sp == NULL) {
- PyErr_NoMemory();
- return -1;
- }
-
- int err = sigaltstack(&stack, &old_stack);
- if (err) {
- /* Release the stack to retry sigaltstack() next time */
- PyMem_Free(stack.ss_sp);
- stack.ss_sp = NULL;
-
- PyErr_SetFromErrno(PyExc_OSError);
- return -1;
- }
- return 0;
-}
-#endif
-
-
+
+#ifdef FAULTHANDLER_USE_ALT_STACK
+static int
+faulthandler_allocate_stack(void)
+{
+ if (stack.ss_sp != NULL) {
+ return 0;
+ }
+ /* Allocate an alternate stack for faulthandler() signal handler
+ to be able to execute a signal handler on a stack overflow error */
+ stack.ss_sp = PyMem_Malloc(stack.ss_size);
+ if (stack.ss_sp == NULL) {
+ PyErr_NoMemory();
+ return -1;
+ }
+
+ int err = sigaltstack(&stack, &old_stack);
+ if (err) {
+ /* Release the stack to retry sigaltstack() next time */
+ PyMem_Free(stack.ss_sp);
+ stack.ss_sp = NULL;
+
+ PyErr_SetFromErrno(PyExc_OSError);
+ return -1;
+ }
+ return 0;
+}
+#endif
+
+
/* Install the handler for fatal signals, faulthandler_fatal_error(). */
static int
@@ -468,12 +468,12 @@ faulthandler_enable(void)
}
fatal_error.enabled = 1;
-#ifdef FAULTHANDLER_USE_ALT_STACK
- if (faulthandler_allocate_stack() < 0) {
- return -1;
- }
-#endif
-
+#ifdef FAULTHANDLER_USE_ALT_STACK
+ if (faulthandler_allocate_stack() < 0) {
+ return -1;
+ }
+#endif
+
for (size_t i=0; i < faulthandler_nsignals; i++) {
fault_handler_t *handler;
int err;
@@ -481,22 +481,22 @@ faulthandler_enable(void)
handler = &faulthandler_handlers[i];
assert(!handler->enabled);
#ifdef HAVE_SIGACTION
- struct sigaction action;
+ struct sigaction action;
action.sa_handler = faulthandler_fatal_error;
sigemptyset(&action.sa_mask);
/* Do not prevent the signal from being received from within
its own signal handler */
action.sa_flags = SA_NODEFER;
-#ifdef FAULTHANDLER_USE_ALT_STACK
- assert(stack.ss_sp != NULL);
- /* Call the signal handler on an alternate signal stack
- provided by sigaltstack() */
- action.sa_flags |= SA_ONSTACK;
+#ifdef FAULTHANDLER_USE_ALT_STACK
+ assert(stack.ss_sp != NULL);
+ /* Call the signal handler on an alternate signal stack
+ provided by sigaltstack() */
+ action.sa_flags |= SA_ONSTACK;
#endif
err = sigaction(handler->signum, &action, &handler->previous);
#else
handler->previous = signal(handler->signum,
- faulthandler_fatal_error);
+ faulthandler_fatal_error);
err = (handler->previous == SIG_ERR);
#endif
if (err) {
@@ -539,7 +539,7 @@ faulthandler_py_enable(PyObject *self, PyObject *args, PyObject *kwargs)
Py_XSETREF(fatal_error.file, file);
fatal_error.fd = fd;
fatal_error.all_threads = all_threads;
- fatal_error.interp = PyThreadState_GetInterpreter(tstate);
+ fatal_error.interp = PyThreadState_GetInterpreter(tstate);
if (faulthandler_enable() < 0) {
return NULL;
@@ -569,7 +569,7 @@ faulthandler_disable(void)
}
static PyObject*
-faulthandler_disable_py(PyObject *self, PyObject *Py_UNUSED(ignored))
+faulthandler_disable_py(PyObject *self, PyObject *Py_UNUSED(ignored))
{
if (!fatal_error.enabled) {
Py_RETURN_FALSE;
@@ -579,7 +579,7 @@ faulthandler_disable_py(PyObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject*
-faulthandler_is_enabled(PyObject *self, PyObject *Py_UNUSED(ignored))
+faulthandler_is_enabled(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return PyBool_FromLong(fatal_error.enabled);
}
@@ -624,11 +624,11 @@ faulthandler_thread(void *unused)
static void
cancel_dump_traceback_later(void)
{
- /* If not scheduled, nothing to cancel */
- if (!thread.cancel_event) {
- return;
- }
-
+ /* If not scheduled, nothing to cancel */
+ if (!thread.cancel_event) {
+ return;
+ }
+
/* Notify cancellation */
PyThread_release_lock(thread.cancel_event);
@@ -713,37 +713,37 @@ faulthandler_dump_traceback_later(PyObject *self,
}
tstate = get_thread_state();
- if (tstate == NULL) {
+ if (tstate == NULL) {
return NULL;
- }
+ }
fd = faulthandler_get_fileno(&file);
- if (fd < 0) {
+ if (fd < 0) {
return NULL;
- }
-
- if (!thread.running) {
- thread.running = PyThread_allocate_lock();
- if (!thread.running) {
- return PyErr_NoMemory();
- }
- }
- if (!thread.cancel_event) {
- thread.cancel_event = PyThread_allocate_lock();
- if (!thread.cancel_event || !thread.running) {
- return PyErr_NoMemory();
- }
-
- /* cancel_event starts to be acquired: it's only released to cancel
- the thread. */
- PyThread_acquire_lock(thread.cancel_event, 1);
- }
-
+ }
+
+ if (!thread.running) {
+ thread.running = PyThread_allocate_lock();
+ if (!thread.running) {
+ return PyErr_NoMemory();
+ }
+ }
+ if (!thread.cancel_event) {
+ thread.cancel_event = PyThread_allocate_lock();
+ if (!thread.cancel_event || !thread.running) {
+ return PyErr_NoMemory();
+ }
+
+ /* cancel_event starts to be acquired: it's only released to cancel
+ the thread. */
+ PyThread_acquire_lock(thread.cancel_event, 1);
+ }
+
/* format the timeout */
header = format_timeout(timeout_us);
- if (header == NULL) {
+ if (header == NULL) {
return PyErr_NoMemory();
- }
+ }
header_len = strlen(header);
/* Cancel previous thread, if running */
@@ -755,7 +755,7 @@ faulthandler_dump_traceback_later(PyObject *self,
/* the downcast is safe: we check that 0 < timeout_us < PY_TIMEOUT_MAX */
thread.timeout_us = (PY_TIMEOUT_T)timeout_us;
thread.repeat = repeat;
- thread.interp = PyThreadState_GetInterpreter(tstate);
+ thread.interp = PyThreadState_GetInterpreter(tstate);
thread.exit = exit;
thread.header = header;
thread.header_len = header_len;
@@ -777,17 +777,17 @@ faulthandler_dump_traceback_later(PyObject *self,
}
static PyObject*
-faulthandler_cancel_dump_traceback_later_py(PyObject *self,
- PyObject *Py_UNUSED(ignored))
+faulthandler_cancel_dump_traceback_later_py(PyObject *self,
+ PyObject *Py_UNUSED(ignored))
{
cancel_dump_traceback_later();
Py_RETURN_NONE;
}
-
+
#ifdef FAULTHANDLER_USER
static int
-faulthandler_register(int signum, int chain, _Py_sighandler_t *previous_p)
+faulthandler_register(int signum, int chain, _Py_sighandler_t *previous_p)
{
#ifdef HAVE_SIGACTION
struct sigaction action;
@@ -802,19 +802,19 @@ faulthandler_register(int signum, int chain, _Py_sighandler_t *previous_p)
own signal handler */
action.sa_flags = SA_NODEFER;
}
-#ifdef FAULTHANDLER_USE_ALT_STACK
- assert(stack.ss_sp != NULL);
- /* Call the signal handler on an alternate signal stack
- provided by sigaltstack() */
- action.sa_flags |= SA_ONSTACK;
+#ifdef FAULTHANDLER_USE_ALT_STACK
+ assert(stack.ss_sp != NULL);
+ /* Call the signal handler on an alternate signal stack
+ provided by sigaltstack() */
+ action.sa_flags |= SA_ONSTACK;
#endif
- return sigaction(signum, &action, previous_p);
+ return sigaction(signum, &action, previous_p);
#else
_Py_sighandler_t previous;
previous = signal(signum, faulthandler_user);
- if (previous_p != NULL) {
- *previous_p = previous;
- }
+ if (previous_p != NULL) {
+ *previous_p = previous;
+ }
return (previous == SIG_ERR);
#endif
}
@@ -910,19 +910,19 @@ faulthandler_register_py(PyObject *self,
return NULL;
if (user_signals == NULL) {
- user_signals = PyMem_Calloc(NSIG, sizeof(user_signal_t));
+ user_signals = PyMem_Calloc(NSIG, sizeof(user_signal_t));
if (user_signals == NULL)
return PyErr_NoMemory();
}
user = &user_signals[signum];
if (!user->enabled) {
-#ifdef FAULTHANDLER_USE_ALT_STACK
- if (faulthandler_allocate_stack() < 0) {
- return NULL;
- }
-#endif
-
+#ifdef FAULTHANDLER_USE_ALT_STACK
+ if (faulthandler_allocate_stack() < 0) {
+ return NULL;
+ }
+#endif
+
err = faulthandler_register(signum, chain, &previous);
if (err) {
PyErr_SetFromErrno(PyExc_OSError);
@@ -937,7 +937,7 @@ faulthandler_register_py(PyObject *self,
user->fd = fd;
user->all_threads = all_threads;
user->chain = chain;
- user->interp = PyThreadState_GetInterpreter(tstate);
+ user->interp = PyThreadState_GetInterpreter(tstate);
user->enabled = 1;
Py_RETURN_NONE;
@@ -1063,7 +1063,7 @@ faulthandler_sigsegv(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-static void _Py_NO_RETURN
+static void _Py_NO_RETURN
faulthandler_fatal_error_thread(void *plock)
{
Py_FatalError("in new thread");
@@ -1142,17 +1142,17 @@ faulthandler_fatal_error_py(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-#if defined(FAULTHANDLER_USE_ALT_STACK)
+#if defined(FAULTHANDLER_USE_ALT_STACK)
#define FAULTHANDLER_STACK_OVERFLOW
-static uintptr_t
+static uintptr_t
stack_overflow(uintptr_t min_sp, uintptr_t max_sp, size_t *depth)
{
- /* Allocate (at least) 4096 bytes on the stack at each call.
-
- bpo-23654, bpo-38965: use volatile keyword to prevent tail call
- optimization. */
- volatile unsigned char buffer[4096];
+ /* Allocate (at least) 4096 bytes on the stack at each call.
+
+ bpo-23654, bpo-38965: use volatile keyword to prevent tail call
+ optimization. */
+ volatile unsigned char buffer[4096];
uintptr_t sp = (uintptr_t)&buffer;
*depth += 1;
if (sp < min_sp || max_sp < sp)
@@ -1163,30 +1163,30 @@ stack_overflow(uintptr_t min_sp, uintptr_t max_sp, size_t *depth)
}
static PyObject *
-faulthandler_stack_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))
+faulthandler_stack_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))
{
size_t depth, size;
uintptr_t sp = (uintptr_t)&depth;
- uintptr_t stop, lower_limit, upper_limit;
+ uintptr_t stop, lower_limit, upper_limit;
faulthandler_suppress_crash_report();
depth = 0;
-
- if (STACK_OVERFLOW_MAX_SIZE <= sp) {
- lower_limit = sp - STACK_OVERFLOW_MAX_SIZE;
- }
- else {
- lower_limit = 0;
- }
-
- if (UINTPTR_MAX - STACK_OVERFLOW_MAX_SIZE >= sp) {
- upper_limit = sp + STACK_OVERFLOW_MAX_SIZE;
- }
- else {
- upper_limit = UINTPTR_MAX;
- }
-
- stop = stack_overflow(lower_limit, upper_limit, &depth);
+
+ if (STACK_OVERFLOW_MAX_SIZE <= sp) {
+ lower_limit = sp - STACK_OVERFLOW_MAX_SIZE;
+ }
+ else {
+ lower_limit = 0;
+ }
+
+ if (UINTPTR_MAX - STACK_OVERFLOW_MAX_SIZE >= sp) {
+ upper_limit = sp + STACK_OVERFLOW_MAX_SIZE;
+ }
+ else {
+ upper_limit = UINTPTR_MAX;
+ }
+
+ stop = stack_overflow(lower_limit, upper_limit, &depth);
if (sp < stop)
size = stop - sp;
else
@@ -1197,7 +1197,7 @@ faulthandler_stack_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))
size, depth);
return NULL;
}
-#endif /* defined(FAULTHANDLER_USE_ALT_STACK) && defined(HAVE_SIGACTION) */
+#endif /* defined(FAULTHANDLER_USE_ALT_STACK) && defined(HAVE_SIGACTION) */
static int
@@ -1232,37 +1232,37 @@ PyDoc_STRVAR(module_doc,
static PyMethodDef module_methods[] = {
{"enable",
- (PyCFunction)(void(*)(void))faulthandler_py_enable, METH_VARARGS|METH_KEYWORDS,
+ (PyCFunction)(void(*)(void))faulthandler_py_enable, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("enable(file=sys.stderr, all_threads=True): "
"enable the fault handler")},
- {"disable", faulthandler_disable_py, METH_NOARGS,
+ {"disable", faulthandler_disable_py, METH_NOARGS,
PyDoc_STR("disable(): disable the fault handler")},
- {"is_enabled", faulthandler_is_enabled, METH_NOARGS,
+ {"is_enabled", faulthandler_is_enabled, METH_NOARGS,
PyDoc_STR("is_enabled()->bool: check if the handler is enabled")},
{"dump_traceback",
- (PyCFunction)(void(*)(void))faulthandler_dump_traceback_py, METH_VARARGS|METH_KEYWORDS,
+ (PyCFunction)(void(*)(void))faulthandler_dump_traceback_py, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("dump_traceback(file=sys.stderr, all_threads=True): "
"dump the traceback of the current thread, or of all threads "
"if all_threads is True, into file")},
{"dump_traceback_later",
- (PyCFunction)(void(*)(void))faulthandler_dump_traceback_later, METH_VARARGS|METH_KEYWORDS,
+ (PyCFunction)(void(*)(void))faulthandler_dump_traceback_later, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("dump_traceback_later(timeout, repeat=False, file=sys.stderrn, exit=False):\n"
"dump the traceback of all threads in timeout seconds,\n"
"or each timeout seconds if repeat is True. If exit is True, "
"call _exit(1) which is not safe.")},
{"cancel_dump_traceback_later",
- faulthandler_cancel_dump_traceback_later_py, METH_NOARGS,
+ faulthandler_cancel_dump_traceback_later_py, METH_NOARGS,
PyDoc_STR("cancel_dump_traceback_later():\ncancel the previous call "
"to dump_traceback_later().")},
#ifdef FAULTHANDLER_USER
{"register",
- (PyCFunction)(void(*)(void))faulthandler_register_py, METH_VARARGS|METH_KEYWORDS,
+ (PyCFunction)(void(*)(void))faulthandler_register_py, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("register(signum, file=sys.stderr, all_threads=True, chain=False): "
"register a handler for the signal 'signum': dump the "
"traceback of the current thread, or of all threads if "
"all_threads is True, into file")},
{"unregister",
- (PyCFunction)(void(*)(void))faulthandler_unregister_py, METH_VARARGS|METH_KEYWORDS,
+ (PyCFunction)(void(*)(void))faulthandler_unregister_py, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("unregister(signum): unregister the handler of the signal "
"'signum' registered by register()")},
#endif
@@ -1281,7 +1281,7 @@ static PyMethodDef module_methods[] = {
{"_fatal_error", faulthandler_fatal_error_py, METH_VARARGS,
PyDoc_STR("_fatal_error(message): call Py_FatalError(message)")},
#ifdef FAULTHANDLER_STACK_OVERFLOW
- {"_stack_overflow", faulthandler_stack_overflow, METH_NOARGS,
+ {"_stack_overflow", faulthandler_stack_overflow, METH_NOARGS,
PyDoc_STR("_stack_overflow(): recursive call to raise a stack overflow")},
#endif
#ifdef MS_WINDOWS
@@ -1314,36 +1314,36 @@ PyInit_faulthandler(void)
#ifdef MS_WINDOWS
/* RaiseException() codes (prefixed by an underscore) */
if (PyModule_AddIntConstant(m, "_EXCEPTION_ACCESS_VIOLATION",
- EXCEPTION_ACCESS_VIOLATION)) {
- goto error;
- }
+ EXCEPTION_ACCESS_VIOLATION)) {
+ goto error;
+ }
if (PyModule_AddIntConstant(m, "_EXCEPTION_INT_DIVIDE_BY_ZERO",
- EXCEPTION_INT_DIVIDE_BY_ZERO)) {
- goto error;
- }
+ EXCEPTION_INT_DIVIDE_BY_ZERO)) {
+ goto error;
+ }
if (PyModule_AddIntConstant(m, "_EXCEPTION_STACK_OVERFLOW",
- EXCEPTION_STACK_OVERFLOW)) {
- goto error;
- }
+ EXCEPTION_STACK_OVERFLOW)) {
+ goto error;
+ }
/* RaiseException() flags (prefixed by an underscore) */
if (PyModule_AddIntConstant(m, "_EXCEPTION_NONCONTINUABLE",
- EXCEPTION_NONCONTINUABLE)) {
- goto error;
- }
+ EXCEPTION_NONCONTINUABLE)) {
+ goto error;
+ }
if (PyModule_AddIntConstant(m, "_EXCEPTION_NONCONTINUABLE_EXCEPTION",
- EXCEPTION_NONCONTINUABLE_EXCEPTION)) {
- goto error;
- }
+ EXCEPTION_NONCONTINUABLE_EXCEPTION)) {
+ goto error;
+ }
#endif
return m;
-
-#ifdef MS_WINDOWS
-error:
- Py_DECREF(m);
- return NULL;
-#endif
+
+#ifdef MS_WINDOWS
+error:
+ Py_DECREF(m);
+ return NULL;
+#endif
}
static int
@@ -1354,7 +1354,7 @@ faulthandler_init_enable(void)
return -1;
}
- PyObject *res = _PyObject_CallMethodIdNoArgs(module, &PyId_enable);
+ PyObject *res = _PyObject_CallMethodIdNoArgs(module, &PyId_enable);
Py_DECREF(module);
if (res == NULL) {
return -1;
@@ -1364,27 +1364,27 @@ faulthandler_init_enable(void)
return 0;
}
-PyStatus
+PyStatus
_PyFaulthandler_Init(int enable)
{
-#ifdef FAULTHANDLER_USE_ALT_STACK
- memset(&stack, 0, sizeof(stack));
+#ifdef FAULTHANDLER_USE_ALT_STACK
+ memset(&stack, 0, sizeof(stack));
stack.ss_flags = 0;
- /* bpo-21131: allocate dedicated stack of SIGSTKSZ*2 bytes, instead of just
- SIGSTKSZ bytes. Calling the previous signal handler in faulthandler
- signal handler uses more than SIGSTKSZ bytes of stack memory on some
- platforms. */
- stack.ss_size = SIGSTKSZ * 2;
+ /* bpo-21131: allocate dedicated stack of SIGSTKSZ*2 bytes, instead of just
+ SIGSTKSZ bytes. Calling the previous signal handler in faulthandler
+ signal handler uses more than SIGSTKSZ bytes of stack memory on some
+ platforms. */
+ stack.ss_size = SIGSTKSZ * 2;
#endif
- memset(&thread, 0, sizeof(thread));
-
+ memset(&thread, 0, sizeof(thread));
+
if (enable) {
if (faulthandler_init_enable() < 0) {
- return _PyStatus_ERR("failed to enable faulthandler");
+ return _PyStatus_ERR("failed to enable faulthandler");
}
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
void _PyFaulthandler_Fini(void)
@@ -1414,12 +1414,12 @@ void _PyFaulthandler_Fini(void)
/* fatal */
faulthandler_disable();
-
-#ifdef FAULTHANDLER_USE_ALT_STACK
+
+#ifdef FAULTHANDLER_USE_ALT_STACK
if (stack.ss_sp != NULL) {
/* Fetch the current alt stack */
- stack_t current_stack;
- memset(&current_stack, 0, sizeof(current_stack));
+ stack_t current_stack;
+ memset(&current_stack, 0, sizeof(current_stack));
if (sigaltstack(NULL, &current_stack) == 0) {
if (current_stack.ss_sp == stack.ss_sp) {
/* The current alt stack is the one that we installed.
diff --git a/contrib/tools/python3/src/Modules/fcntlmodule.c b/contrib/tools/python3/src/Modules/fcntlmodule.c
index de92c04655..43f9b22f67 100644
--- a/contrib/tools/python3/src/Modules/fcntlmodule.c
+++ b/contrib/tools/python3/src/Modules/fcntlmodule.c
@@ -66,10 +66,10 @@ fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)
char buf[1024];
int async_err = 0;
- if (PySys_Audit("fcntl.fcntl", "iiO", fd, code, arg ? arg : Py_None) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("fcntl.fcntl", "iiO", fd, code, arg ? arg : Py_None) < 0) {
+ return NULL;
+ }
+
if (arg != NULL) {
int parse_result;
@@ -175,11 +175,11 @@ fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
Py_ssize_t len;
char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */
- if (PySys_Audit("fcntl.ioctl", "iIO", fd, code,
- ob_arg ? ob_arg : Py_None) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("fcntl.ioctl", "iIO", fd, code,
+ ob_arg ? ob_arg : Py_None) < 0) {
+ return NULL;
+ }
+
if (ob_arg != NULL) {
if (PyArg_Parse(ob_arg, "w*:ioctl", &pstr)) {
char *arg;
@@ -297,10 +297,10 @@ fcntl_flock_impl(PyObject *module, int fd, int code)
int ret;
int async_err = 0;
- if (PySys_Audit("fcntl.flock", "ii", fd, code) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("fcntl.flock", "ii", fd, code) < 0) {
+ return NULL;
+ }
+
#ifdef HAVE_FLOCK
do {
Py_BEGIN_ALLOW_THREADS
@@ -385,11 +385,11 @@ fcntl_lockf_impl(PyObject *module, int fd, int code, PyObject *lenobj,
int ret;
int async_err = 0;
- if (PySys_Audit("fcntl.lockf", "iiOOi", fd, code, lenobj ? lenobj : Py_None,
- startobj ? startobj : Py_None, whence) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("fcntl.lockf", "iiOOi", fd, code, lenobj ? lenobj : Py_None,
+ startobj ? startobj : Py_None, whence) < 0) {
+ return NULL;
+ }
+
#ifndef LOCK_SH
#define LOCK_SH 1 /* shared lock */
#define LOCK_EX 2 /* exclusive lock */
@@ -457,7 +457,7 @@ static PyMethodDef fcntl_methods[] = {
PyDoc_STRVAR(module_doc,
-"This module performs file control and I/O control on file\n\
+"This module performs file control and I/O control on file\n\
descriptors. It is an interface to the fcntl() and ioctl() Unix\n\
routines. File descriptors can be obtained with the fileno() method of\n\
a file or socket object.");
@@ -513,24 +513,24 @@ all_ins(PyObject* m)
#ifdef F_SETLKW
if (PyModule_AddIntMacro(m, F_SETLKW)) return -1;
#endif
-#ifdef F_OFD_GETLK
- if (PyModule_AddIntMacro(m, F_OFD_GETLK)) return -1;
-#endif
-#ifdef F_OFD_SETLK
- if (PyModule_AddIntMacro(m, F_OFD_SETLK)) return -1;
-#endif
-#ifdef F_OFD_SETLKW
- if (PyModule_AddIntMacro(m, F_OFD_SETLKW)) return -1;
-#endif
+#ifdef F_OFD_GETLK
+ if (PyModule_AddIntMacro(m, F_OFD_GETLK)) return -1;
+#endif
+#ifdef F_OFD_SETLK
+ if (PyModule_AddIntMacro(m, F_OFD_SETLK)) return -1;
+#endif
+#ifdef F_OFD_SETLKW
+ if (PyModule_AddIntMacro(m, F_OFD_SETLKW)) return -1;
+#endif
#ifdef F_GETOWN
if (PyModule_AddIntMacro(m, F_GETOWN)) return -1;
#endif
#ifdef F_SETOWN
if (PyModule_AddIntMacro(m, F_SETOWN)) return -1;
#endif
-#ifdef F_GETPATH
- if (PyModule_AddIntMacro(m, F_GETPATH)) return -1;
-#endif
+#ifdef F_GETPATH
+ if (PyModule_AddIntMacro(m, F_GETPATH)) return -1;
+#endif
#ifdef F_GETSIG
if (PyModule_AddIntMacro(m, F_GETSIG)) return -1;
#endif
@@ -650,15 +650,15 @@ all_ins(PyObject* m)
if (PyModule_AddIntMacro(m, I_PLINK)) return -1;
if (PyModule_AddIntMacro(m, I_PUNLINK)) return -1;
#endif
-#ifdef F_ADD_SEALS
- /* Linux: file sealing for memfd_create() */
- if (PyModule_AddIntMacro(m, F_ADD_SEALS)) return -1;
- if (PyModule_AddIntMacro(m, F_GET_SEALS)) return -1;
- if (PyModule_AddIntMacro(m, F_SEAL_SEAL)) return -1;
- if (PyModule_AddIntMacro(m, F_SEAL_SHRINK)) return -1;
- if (PyModule_AddIntMacro(m, F_SEAL_GROW)) return -1;
- if (PyModule_AddIntMacro(m, F_SEAL_WRITE)) return -1;
-#endif
+#ifdef F_ADD_SEALS
+ /* Linux: file sealing for memfd_create() */
+ if (PyModule_AddIntMacro(m, F_ADD_SEALS)) return -1;
+ if (PyModule_AddIntMacro(m, F_GET_SEALS)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_SEAL)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_SHRINK)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_GROW)) return -1;
+ if (PyModule_AddIntMacro(m, F_SEAL_WRITE)) return -1;
+#endif
return 0;
}
@@ -686,10 +686,10 @@ PyInit_fcntl(void)
return NULL;
/* Add some symbolic constants to the module */
- if (all_ins(m) < 0) {
- Py_DECREF(m);
+ if (all_ins(m) < 0) {
+ Py_DECREF(m);
return NULL;
- }
+ }
return m;
}
diff --git a/contrib/tools/python3/src/Modules/gcmodule.c b/contrib/tools/python3/src/Modules/gcmodule.c
index 2f80ff3189..3cf1a00b00 100644
--- a/contrib/tools/python3/src/Modules/gcmodule.c
+++ b/contrib/tools/python3/src/Modules/gcmodule.c
@@ -24,99 +24,99 @@
*/
#include "Python.h"
-#include "pycore_context.h"
-#include "pycore_initconfig.h"
-#include "pycore_interp.h" // PyInterpreterState.gc
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_context.h"
+#include "pycore_initconfig.h"
+#include "pycore_interp.h" // PyInterpreterState.gc
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include "pydtrace.h"
-#include "pytime.h" // _PyTime_GetMonotonicClock()
+#include "pytime.h" // _PyTime_GetMonotonicClock()
+
+typedef struct _gc_runtime_state GCState;
-typedef struct _gc_runtime_state GCState;
-
/*[clinic input]
module gc
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b5c9690ecc842d79]*/
-
-#ifdef Py_DEBUG
-# define GC_DEBUG
-#endif
-
-#define GC_NEXT _PyGCHead_NEXT
-#define GC_PREV _PyGCHead_PREV
-
-// update_refs() set this bit for all objects in current generation.
-// subtract_refs() and move_unreachable() uses this to distinguish
-// visited object is in GCing or not.
-//
-// move_unreachable() removes this flag from reachable objects.
-// Only unreachable objects have this flag.
-//
-// No objects in interpreter have this flag after GC ends.
-#define PREV_MASK_COLLECTING _PyGC_PREV_MASK_COLLECTING
-
-// Lowest bit of _gc_next is used for UNREACHABLE flag.
-//
-// This flag represents the object is in unreachable list in move_unreachable()
-//
-// Although this flag is used only in move_unreachable(), move_unreachable()
-// doesn't clear this flag to skip unnecessary iteration.
-// move_legacy_finalizers() removes this flag instead.
-// Between them, unreachable list is not normal list and we can not use
-// most gc_list_* functions for it.
-#define NEXT_MASK_UNREACHABLE (1)
-
+
+#ifdef Py_DEBUG
+# define GC_DEBUG
+#endif
+
+#define GC_NEXT _PyGCHead_NEXT
+#define GC_PREV _PyGCHead_PREV
+
+// update_refs() set this bit for all objects in current generation.
+// subtract_refs() and move_unreachable() uses this to distinguish
+// visited object is in GCing or not.
+//
+// move_unreachable() removes this flag from reachable objects.
+// Only unreachable objects have this flag.
+//
+// No objects in interpreter have this flag after GC ends.
+#define PREV_MASK_COLLECTING _PyGC_PREV_MASK_COLLECTING
+
+// Lowest bit of _gc_next is used for UNREACHABLE flag.
+//
+// This flag represents the object is in unreachable list in move_unreachable()
+//
+// Although this flag is used only in move_unreachable(), move_unreachable()
+// doesn't clear this flag to skip unnecessary iteration.
+// move_legacy_finalizers() removes this flag instead.
+// Between them, unreachable list is not normal list and we can not use
+// most gc_list_* functions for it.
+#define NEXT_MASK_UNREACHABLE (1)
+
/* Get an object's GC head */
#define AS_GC(o) ((PyGC_Head *)(o)-1)
/* Get the object given the GC head */
#define FROM_GC(g) ((PyObject *)(((PyGC_Head *)g)+1))
-static inline int
-gc_is_collecting(PyGC_Head *g)
-{
- return (g->_gc_prev & PREV_MASK_COLLECTING) != 0;
-}
-
-static inline void
-gc_clear_collecting(PyGC_Head *g)
-{
- g->_gc_prev &= ~PREV_MASK_COLLECTING;
-}
-
-static inline Py_ssize_t
-gc_get_refs(PyGC_Head *g)
-{
- return (Py_ssize_t)(g->_gc_prev >> _PyGC_PREV_SHIFT);
-}
-
-static inline void
-gc_set_refs(PyGC_Head *g, Py_ssize_t refs)
-{
- g->_gc_prev = (g->_gc_prev & ~_PyGC_PREV_MASK)
- | ((uintptr_t)(refs) << _PyGC_PREV_SHIFT);
-}
-
-static inline void
-gc_reset_refs(PyGC_Head *g, Py_ssize_t refs)
-{
- g->_gc_prev = (g->_gc_prev & _PyGC_PREV_MASK_FINALIZED)
- | PREV_MASK_COLLECTING
- | ((uintptr_t)(refs) << _PyGC_PREV_SHIFT);
-}
-
-static inline void
-gc_decref(PyGC_Head *g)
-{
- _PyObject_ASSERT_WITH_MSG(FROM_GC(g),
- gc_get_refs(g) > 0,
- "refcount is too small");
- g->_gc_prev -= 1 << _PyGC_PREV_SHIFT;
-}
-
+static inline int
+gc_is_collecting(PyGC_Head *g)
+{
+ return (g->_gc_prev & PREV_MASK_COLLECTING) != 0;
+}
+
+static inline void
+gc_clear_collecting(PyGC_Head *g)
+{
+ g->_gc_prev &= ~PREV_MASK_COLLECTING;
+}
+
+static inline Py_ssize_t
+gc_get_refs(PyGC_Head *g)
+{
+ return (Py_ssize_t)(g->_gc_prev >> _PyGC_PREV_SHIFT);
+}
+
+static inline void
+gc_set_refs(PyGC_Head *g, Py_ssize_t refs)
+{
+ g->_gc_prev = (g->_gc_prev & ~_PyGC_PREV_MASK)
+ | ((uintptr_t)(refs) << _PyGC_PREV_SHIFT);
+}
+
+static inline void
+gc_reset_refs(PyGC_Head *g, Py_ssize_t refs)
+{
+ g->_gc_prev = (g->_gc_prev & _PyGC_PREV_MASK_FINALIZED)
+ | PREV_MASK_COLLECTING
+ | ((uintptr_t)(refs) << _PyGC_PREV_SHIFT);
+}
+
+static inline void
+gc_decref(PyGC_Head *g)
+{
+ _PyObject_ASSERT_WITH_MSG(FROM_GC(g),
+ gc_get_refs(g) > 0,
+ "refcount is too small");
+ g->_gc_prev -= 1 << _PyGC_PREV_SHIFT;
+}
+
/* set for debugging information */
#define DEBUG_STATS (1<<0) /* print collection statistics */
#define DEBUG_COLLECTABLE (1<<1) /* print collectable objects */
@@ -126,140 +126,140 @@ gc_decref(PyGC_Head *g)
DEBUG_UNCOLLECTABLE | \
DEBUG_SAVEALL
-#define GEN_HEAD(gcstate, n) (&(gcstate)->generations[n].head)
+#define GEN_HEAD(gcstate, n) (&(gcstate)->generations[n].head)
void
-_PyGC_InitState(GCState *gcstate)
+_PyGC_InitState(GCState *gcstate)
{
- gcstate->enabled = 1; /* automatic collection enabled? */
+ gcstate->enabled = 1; /* automatic collection enabled? */
-#define _GEN_HEAD(n) GEN_HEAD(gcstate, n)
+#define _GEN_HEAD(n) GEN_HEAD(gcstate, n)
struct gc_generation generations[NUM_GENERATIONS] = {
- /* PyGC_Head, threshold, count */
- {{(uintptr_t)_GEN_HEAD(0), (uintptr_t)_GEN_HEAD(0)}, 700, 0},
- {{(uintptr_t)_GEN_HEAD(1), (uintptr_t)_GEN_HEAD(1)}, 10, 0},
- {{(uintptr_t)_GEN_HEAD(2), (uintptr_t)_GEN_HEAD(2)}, 10, 0},
+ /* PyGC_Head, threshold, count */
+ {{(uintptr_t)_GEN_HEAD(0), (uintptr_t)_GEN_HEAD(0)}, 700, 0},
+ {{(uintptr_t)_GEN_HEAD(1), (uintptr_t)_GEN_HEAD(1)}, 10, 0},
+ {{(uintptr_t)_GEN_HEAD(2), (uintptr_t)_GEN_HEAD(2)}, 10, 0},
};
for (int i = 0; i < NUM_GENERATIONS; i++) {
- gcstate->generations[i] = generations[i];
+ gcstate->generations[i] = generations[i];
};
- gcstate->generation0 = GEN_HEAD(gcstate, 0);
+ gcstate->generation0 = GEN_HEAD(gcstate, 0);
struct gc_generation permanent_generation = {
- {(uintptr_t)&gcstate->permanent_generation.head,
- (uintptr_t)&gcstate->permanent_generation.head}, 0, 0
+ {(uintptr_t)&gcstate->permanent_generation.head,
+ (uintptr_t)&gcstate->permanent_generation.head}, 0, 0
};
- gcstate->permanent_generation = permanent_generation;
-}
-
-
-PyStatus
-_PyGC_Init(PyThreadState *tstate)
-{
- GCState *gcstate = &tstate->interp->gc;
- if (gcstate->garbage == NULL) {
- gcstate->garbage = PyList_New(0);
- if (gcstate->garbage == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
- return _PyStatus_OK();
-}
-
-
-/*
-_gc_prev values
----------------
-
-Between collections, _gc_prev is used for doubly linked list.
-
-Lowest two bits of _gc_prev are used for flags.
-PREV_MASK_COLLECTING is used only while collecting and cleared before GC ends
-or _PyObject_GC_UNTRACK() is called.
-
-During a collection, _gc_prev is temporary used for gc_refs, and the gc list
-is singly linked until _gc_prev is restored.
-
-gc_refs
+ gcstate->permanent_generation = permanent_generation;
+}
+
+
+PyStatus
+_PyGC_Init(PyThreadState *tstate)
+{
+ GCState *gcstate = &tstate->interp->gc;
+ if (gcstate->garbage == NULL) {
+ gcstate->garbage = PyList_New(0);
+ if (gcstate->garbage == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+/*
+_gc_prev values
+---------------
+
+Between collections, _gc_prev is used for doubly linked list.
+
+Lowest two bits of _gc_prev are used for flags.
+PREV_MASK_COLLECTING is used only while collecting and cleared before GC ends
+or _PyObject_GC_UNTRACK() is called.
+
+During a collection, _gc_prev is temporary used for gc_refs, and the gc list
+is singly linked until _gc_prev is restored.
+
+gc_refs
At the start of a collection, update_refs() copies the true refcount
to gc_refs, for each object in the generation being collected.
subtract_refs() then adjusts gc_refs so that it equals the number of
times an object is referenced directly from outside the generation
being collected.
-PREV_MASK_COLLECTING
- Objects in generation being collected are marked PREV_MASK_COLLECTING in
- update_refs().
-
-
-_gc_next values
----------------
-
-_gc_next takes these values:
-
-0
- The object is not tracked
-
-!= 0
- Pointer to the next object in the GC list.
- Additionally, lowest bit is used temporary for
- NEXT_MASK_UNREACHABLE flag described below.
-
-NEXT_MASK_UNREACHABLE
+PREV_MASK_COLLECTING
+ Objects in generation being collected are marked PREV_MASK_COLLECTING in
+ update_refs().
+
+
+_gc_next values
+---------------
+
+_gc_next takes these values:
+
+0
+ The object is not tracked
+
+!= 0
+ Pointer to the next object in the GC list.
+ Additionally, lowest bit is used temporary for
+ NEXT_MASK_UNREACHABLE flag described below.
+
+NEXT_MASK_UNREACHABLE
move_unreachable() then moves objects not reachable (whether directly or
- indirectly) from outside the generation into an "unreachable" set and
- set this flag.
-
- Objects that are found to be reachable have gc_refs set to 1.
- When this flag is set for the reachable object, the object must be in
- "unreachable" set.
- The flag is unset and the object is moved back to "reachable" set.
-
- move_legacy_finalizers() will remove this flag from "unreachable" set.
+ indirectly) from outside the generation into an "unreachable" set and
+ set this flag.
+
+ Objects that are found to be reachable have gc_refs set to 1.
+ When this flag is set for the reachable object, the object must be in
+ "unreachable" set.
+ The flag is unset and the object is moved back to "reachable" set.
+
+ move_legacy_finalizers() will remove this flag from "unreachable" set.
*/
/*** list functions ***/
-static inline void
+static inline void
gc_list_init(PyGC_Head *list)
{
- // List header must not have flags.
- // We can assign pointer by simple cast.
- list->_gc_prev = (uintptr_t)list;
- list->_gc_next = (uintptr_t)list;
+ // List header must not have flags.
+ // We can assign pointer by simple cast.
+ list->_gc_prev = (uintptr_t)list;
+ list->_gc_next = (uintptr_t)list;
}
-static inline int
+static inline int
gc_list_is_empty(PyGC_Head *list)
{
- return (list->_gc_next == (uintptr_t)list);
+ return (list->_gc_next == (uintptr_t)list);
}
/* Append `node` to `list`. */
-static inline void
+static inline void
gc_list_append(PyGC_Head *node, PyGC_Head *list)
{
- PyGC_Head *last = (PyGC_Head *)list->_gc_prev;
-
- // last <-> node
- _PyGCHead_SET_PREV(node, last);
- _PyGCHead_SET_NEXT(last, node);
-
- // node <-> list
- _PyGCHead_SET_NEXT(node, list);
- list->_gc_prev = (uintptr_t)node;
+ PyGC_Head *last = (PyGC_Head *)list->_gc_prev;
+
+ // last <-> node
+ _PyGCHead_SET_PREV(node, last);
+ _PyGCHead_SET_NEXT(last, node);
+
+ // node <-> list
+ _PyGCHead_SET_NEXT(node, list);
+ list->_gc_prev = (uintptr_t)node;
}
/* Remove `node` from the gc list it's currently in. */
-static inline void
+static inline void
gc_list_remove(PyGC_Head *node)
{
- PyGC_Head *prev = GC_PREV(node);
- PyGC_Head *next = GC_NEXT(node);
-
- _PyGCHead_SET_NEXT(prev, next);
- _PyGCHead_SET_PREV(next, prev);
-
- node->_gc_next = 0; /* object is not currently tracked */
+ PyGC_Head *prev = GC_PREV(node);
+ PyGC_Head *next = GC_NEXT(node);
+
+ _PyGCHead_SET_NEXT(prev, next);
+ _PyGCHead_SET_PREV(next, prev);
+
+ node->_gc_next = 0; /* object is not currently tracked */
}
/* Move `node` from the gc list it's currently in (which is not explicitly
@@ -270,18 +270,18 @@ static void
gc_list_move(PyGC_Head *node, PyGC_Head *list)
{
/* Unlink from current list. */
- PyGC_Head *from_prev = GC_PREV(node);
- PyGC_Head *from_next = GC_NEXT(node);
- _PyGCHead_SET_NEXT(from_prev, from_next);
- _PyGCHead_SET_PREV(from_next, from_prev);
-
+ PyGC_Head *from_prev = GC_PREV(node);
+ PyGC_Head *from_next = GC_NEXT(node);
+ _PyGCHead_SET_NEXT(from_prev, from_next);
+ _PyGCHead_SET_PREV(from_next, from_prev);
+
/* Relink at end of new list. */
- // list must not have flags. So we can skip macros.
- PyGC_Head *to_prev = (PyGC_Head*)list->_gc_prev;
- _PyGCHead_SET_PREV(node, to_prev);
- _PyGCHead_SET_NEXT(to_prev, node);
- list->_gc_prev = (uintptr_t)node;
- _PyGCHead_SET_NEXT(node, list);
+ // list must not have flags. So we can skip macros.
+ PyGC_Head *to_prev = (PyGC_Head*)list->_gc_prev;
+ _PyGCHead_SET_PREV(node, to_prev);
+ _PyGCHead_SET_NEXT(to_prev, node);
+ list->_gc_prev = (uintptr_t)node;
+ _PyGCHead_SET_NEXT(node, list);
}
/* append list `from` onto list `to`; `from` becomes an empty list */
@@ -290,17 +290,17 @@ gc_list_merge(PyGC_Head *from, PyGC_Head *to)
{
assert(from != to);
if (!gc_list_is_empty(from)) {
- PyGC_Head *to_tail = GC_PREV(to);
- PyGC_Head *from_head = GC_NEXT(from);
- PyGC_Head *from_tail = GC_PREV(from);
- assert(from_head != from);
- assert(from_tail != from);
-
- _PyGCHead_SET_NEXT(to_tail, from_head);
- _PyGCHead_SET_PREV(from_head, to_tail);
-
- _PyGCHead_SET_NEXT(from_tail, to);
- _PyGCHead_SET_PREV(to, from_tail);
+ PyGC_Head *to_tail = GC_PREV(to);
+ PyGC_Head *from_head = GC_NEXT(from);
+ PyGC_Head *from_tail = GC_PREV(from);
+ assert(from_head != from);
+ assert(from_tail != from);
+
+ _PyGCHead_SET_NEXT(to_tail, from_head);
+ _PyGCHead_SET_PREV(from_head, to_tail);
+
+ _PyGCHead_SET_NEXT(from_tail, to);
+ _PyGCHead_SET_PREV(to, from_tail);
}
gc_list_init(from);
}
@@ -310,30 +310,30 @@ gc_list_size(PyGC_Head *list)
{
PyGC_Head *gc;
Py_ssize_t n = 0;
- for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(gc)) {
+ for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(gc)) {
n++;
}
return n;
}
-/* Walk the list and mark all objects as non-collecting */
-static inline void
-gc_list_clear_collecting(PyGC_Head *collectable)
-{
- PyGC_Head *gc;
- for (gc = GC_NEXT(collectable); gc != collectable; gc = GC_NEXT(gc)) {
- gc_clear_collecting(gc);
- }
-}
-
+/* Walk the list and mark all objects as non-collecting */
+static inline void
+gc_list_clear_collecting(PyGC_Head *collectable)
+{
+ PyGC_Head *gc;
+ for (gc = GC_NEXT(collectable); gc != collectable; gc = GC_NEXT(gc)) {
+ gc_clear_collecting(gc);
+ }
+}
+
/* Append objects in a GC list to a Python list.
- * Return 0 if all OK, < 0 if error (out of memory for list)
+ * Return 0 if all OK, < 0 if error (out of memory for list)
*/
static int
append_objects(PyObject *py_list, PyGC_Head *gc_list)
{
PyGC_Head *gc;
- for (gc = GC_NEXT(gc_list); gc != gc_list; gc = GC_NEXT(gc)) {
+ for (gc = GC_NEXT(gc_list); gc != gc_list; gc = GC_NEXT(gc)) {
PyObject *op = FROM_GC(gc);
if (op != py_list) {
if (PyList_Append(py_list, op)) {
@@ -344,74 +344,74 @@ append_objects(PyObject *py_list, PyGC_Head *gc_list)
return 0;
}
-// Constants for validate_list's flags argument.
-enum flagstates {collecting_clear_unreachable_clear,
- collecting_clear_unreachable_set,
- collecting_set_unreachable_clear,
- collecting_set_unreachable_set};
-
-#ifdef GC_DEBUG
-// validate_list checks list consistency. And it works as document
-// describing when flags are expected to be set / unset.
-// `head` must be a doubly-linked gc list, although it's fine (expected!) if
-// the prev and next pointers are "polluted" with flags.
-// What's checked:
-// - The `head` pointers are not polluted.
-// - The objects' PREV_MASK_COLLECTING and NEXT_MASK_UNREACHABLE flags are all
-// `set or clear, as specified by the 'flags' argument.
-// - The prev and next pointers are mutually consistent.
-static void
-validate_list(PyGC_Head *head, enum flagstates flags)
-{
- assert((head->_gc_prev & PREV_MASK_COLLECTING) == 0);
- assert((head->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
- uintptr_t prev_value = 0, next_value = 0;
- switch (flags) {
- case collecting_clear_unreachable_clear:
- break;
- case collecting_set_unreachable_clear:
- prev_value = PREV_MASK_COLLECTING;
- break;
- case collecting_clear_unreachable_set:
- next_value = NEXT_MASK_UNREACHABLE;
- break;
- case collecting_set_unreachable_set:
- prev_value = PREV_MASK_COLLECTING;
- next_value = NEXT_MASK_UNREACHABLE;
- break;
- default:
- assert(! "bad internal flags argument");
- }
- PyGC_Head *prev = head;
- PyGC_Head *gc = GC_NEXT(head);
- while (gc != head) {
- PyGC_Head *trueprev = GC_PREV(gc);
- PyGC_Head *truenext = (PyGC_Head *)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE);
- assert(truenext != NULL);
- assert(trueprev == prev);
- assert((gc->_gc_prev & PREV_MASK_COLLECTING) == prev_value);
- assert((gc->_gc_next & NEXT_MASK_UNREACHABLE) == next_value);
- prev = gc;
- gc = truenext;
- }
- assert(prev == GC_PREV(head));
-}
-#else
-#define validate_list(x, y) do{}while(0)
-#endif
-
+// Constants for validate_list's flags argument.
+enum flagstates {collecting_clear_unreachable_clear,
+ collecting_clear_unreachable_set,
+ collecting_set_unreachable_clear,
+ collecting_set_unreachable_set};
+
+#ifdef GC_DEBUG
+// validate_list checks list consistency. And it works as document
+// describing when flags are expected to be set / unset.
+// `head` must be a doubly-linked gc list, although it's fine (expected!) if
+// the prev and next pointers are "polluted" with flags.
+// What's checked:
+// - The `head` pointers are not polluted.
+// - The objects' PREV_MASK_COLLECTING and NEXT_MASK_UNREACHABLE flags are all
+// `set or clear, as specified by the 'flags' argument.
+// - The prev and next pointers are mutually consistent.
+static void
+validate_list(PyGC_Head *head, enum flagstates flags)
+{
+ assert((head->_gc_prev & PREV_MASK_COLLECTING) == 0);
+ assert((head->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
+ uintptr_t prev_value = 0, next_value = 0;
+ switch (flags) {
+ case collecting_clear_unreachable_clear:
+ break;
+ case collecting_set_unreachable_clear:
+ prev_value = PREV_MASK_COLLECTING;
+ break;
+ case collecting_clear_unreachable_set:
+ next_value = NEXT_MASK_UNREACHABLE;
+ break;
+ case collecting_set_unreachable_set:
+ prev_value = PREV_MASK_COLLECTING;
+ next_value = NEXT_MASK_UNREACHABLE;
+ break;
+ default:
+ assert(! "bad internal flags argument");
+ }
+ PyGC_Head *prev = head;
+ PyGC_Head *gc = GC_NEXT(head);
+ while (gc != head) {
+ PyGC_Head *trueprev = GC_PREV(gc);
+ PyGC_Head *truenext = (PyGC_Head *)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE);
+ assert(truenext != NULL);
+ assert(trueprev == prev);
+ assert((gc->_gc_prev & PREV_MASK_COLLECTING) == prev_value);
+ assert((gc->_gc_next & NEXT_MASK_UNREACHABLE) == next_value);
+ prev = gc;
+ gc = truenext;
+ }
+ assert(prev == GC_PREV(head));
+}
+#else
+#define validate_list(x, y) do{}while(0)
+#endif
+
/*** end of list stuff ***/
-/* Set all gc_refs = ob_refcnt. After this, gc_refs is > 0 and
- * PREV_MASK_COLLECTING bit is set for all objects in containers.
+/* Set all gc_refs = ob_refcnt. After this, gc_refs is > 0 and
+ * PREV_MASK_COLLECTING bit is set for all objects in containers.
*/
static void
update_refs(PyGC_Head *containers)
{
- PyGC_Head *gc = GC_NEXT(containers);
- for (; gc != containers; gc = GC_NEXT(gc)) {
- gc_reset_refs(gc, Py_REFCNT(FROM_GC(gc)));
+ PyGC_Head *gc = GC_NEXT(containers);
+ for (; gc != containers; gc = GC_NEXT(gc)) {
+ gc_reset_refs(gc, Py_REFCNT(FROM_GC(gc)));
/* Python's cyclic gc should never see an incoming refcount
* of 0: if something decref'ed to 0, it should have been
* deallocated immediately at that time.
@@ -430,25 +430,25 @@ update_refs(PyGC_Head *containers)
* so serious that maybe this should be a release-build
* check instead of an assert?
*/
- _PyObject_ASSERT(FROM_GC(gc), gc_get_refs(gc) != 0);
+ _PyObject_ASSERT(FROM_GC(gc), gc_get_refs(gc) != 0);
}
}
/* A traversal callback for subtract_refs. */
static int
-visit_decref(PyObject *op, void *parent)
+visit_decref(PyObject *op, void *parent)
{
- _PyObject_ASSERT(_PyObject_CAST(parent), !_PyObject_IsFreed(op));
-
- if (_PyObject_IS_GC(op)) {
+ _PyObject_ASSERT(_PyObject_CAST(parent), !_PyObject_IsFreed(op));
+
+ if (_PyObject_IS_GC(op)) {
PyGC_Head *gc = AS_GC(op);
/* We're only interested in gc_refs for objects in the
* generation being collected, which can be recognized
* because only they have positive gc_refs.
*/
- if (gc_is_collecting(gc)) {
- gc_decref(gc);
- }
+ if (gc_is_collecting(gc)) {
+ gc_decref(gc);
+ }
}
return 0;
}
@@ -462,13 +462,13 @@ static void
subtract_refs(PyGC_Head *containers)
{
traverseproc traverse;
- PyGC_Head *gc = GC_NEXT(containers);
- for (; gc != containers; gc = GC_NEXT(gc)) {
- PyObject *op = FROM_GC(gc);
- traverse = Py_TYPE(op)->tp_traverse;
+ PyGC_Head *gc = GC_NEXT(containers);
+ for (; gc != containers; gc = GC_NEXT(gc)) {
+ PyObject *op = FROM_GC(gc);
+ traverse = Py_TYPE(op)->tp_traverse;
(void) traverse(FROM_GC(gc),
(visitproc)visit_decref,
- op);
+ op);
}
}
@@ -476,93 +476,93 @@ subtract_refs(PyGC_Head *containers)
static int
visit_reachable(PyObject *op, PyGC_Head *reachable)
{
- if (!_PyObject_IS_GC(op)) {
- return 0;
- }
-
- PyGC_Head *gc = AS_GC(op);
- const Py_ssize_t gc_refs = gc_get_refs(gc);
-
- // Ignore objects in other generation.
- // This also skips objects "to the left" of the current position in
- // move_unreachable's scan of the 'young' list - they've already been
- // traversed, and no longer have the PREV_MASK_COLLECTING flag.
- if (! gc_is_collecting(gc)) {
- return 0;
- }
- // It would be a logic error elsewhere if the collecting flag were set on
- // an untracked object.
- assert(gc->_gc_next != 0);
-
- if (gc->_gc_next & NEXT_MASK_UNREACHABLE) {
- /* This had gc_refs = 0 when move_unreachable got
- * to it, but turns out it's reachable after all.
- * Move it back to move_unreachable's 'young' list,
- * and move_unreachable will eventually get to it
- * again.
+ if (!_PyObject_IS_GC(op)) {
+ return 0;
+ }
+
+ PyGC_Head *gc = AS_GC(op);
+ const Py_ssize_t gc_refs = gc_get_refs(gc);
+
+ // Ignore objects in other generation.
+ // This also skips objects "to the left" of the current position in
+ // move_unreachable's scan of the 'young' list - they've already been
+ // traversed, and no longer have the PREV_MASK_COLLECTING flag.
+ if (! gc_is_collecting(gc)) {
+ return 0;
+ }
+ // It would be a logic error elsewhere if the collecting flag were set on
+ // an untracked object.
+ assert(gc->_gc_next != 0);
+
+ if (gc->_gc_next & NEXT_MASK_UNREACHABLE) {
+ /* This had gc_refs = 0 when move_unreachable got
+ * to it, but turns out it's reachable after all.
+ * Move it back to move_unreachable's 'young' list,
+ * and move_unreachable will eventually get to it
+ * again.
+ */
+ // Manually unlink gc from unreachable list because the list functions
+ // don't work right in the presence of NEXT_MASK_UNREACHABLE flags.
+ PyGC_Head *prev = GC_PREV(gc);
+ PyGC_Head *next = (PyGC_Head*)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE);
+ _PyObject_ASSERT(FROM_GC(prev),
+ prev->_gc_next & NEXT_MASK_UNREACHABLE);
+ _PyObject_ASSERT(FROM_GC(next),
+ next->_gc_next & NEXT_MASK_UNREACHABLE);
+ prev->_gc_next = gc->_gc_next; // copy NEXT_MASK_UNREACHABLE
+ _PyGCHead_SET_PREV(next, prev);
+
+ gc_list_append(gc, reachable);
+ gc_set_refs(gc, 1);
+ }
+ else if (gc_refs == 0) {
+ /* This is in move_unreachable's 'young' list, but
+ * the traversal hasn't yet gotten to it. All
+ * we need to do is tell move_unreachable that it's
+ * reachable.
*/
- // Manually unlink gc from unreachable list because the list functions
- // don't work right in the presence of NEXT_MASK_UNREACHABLE flags.
- PyGC_Head *prev = GC_PREV(gc);
- PyGC_Head *next = (PyGC_Head*)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE);
- _PyObject_ASSERT(FROM_GC(prev),
- prev->_gc_next & NEXT_MASK_UNREACHABLE);
- _PyObject_ASSERT(FROM_GC(next),
- next->_gc_next & NEXT_MASK_UNREACHABLE);
- prev->_gc_next = gc->_gc_next; // copy NEXT_MASK_UNREACHABLE
- _PyGCHead_SET_PREV(next, prev);
-
- gc_list_append(gc, reachable);
- gc_set_refs(gc, 1);
- }
- else if (gc_refs == 0) {
- /* This is in move_unreachable's 'young' list, but
- * the traversal hasn't yet gotten to it. All
- * we need to do is tell move_unreachable that it's
- * reachable.
- */
- gc_set_refs(gc, 1);
- }
- /* Else there's nothing to do.
- * If gc_refs > 0, it must be in move_unreachable's 'young'
- * list, and move_unreachable will eventually get to it.
- */
- else {
- _PyObject_ASSERT_WITH_MSG(op, gc_refs > 0, "refcount is too small");
- }
+ gc_set_refs(gc, 1);
+ }
+ /* Else there's nothing to do.
+ * If gc_refs > 0, it must be in move_unreachable's 'young'
+ * list, and move_unreachable will eventually get to it.
+ */
+ else {
+ _PyObject_ASSERT_WITH_MSG(op, gc_refs > 0, "refcount is too small");
+ }
return 0;
}
/* Move the unreachable objects from young to unreachable. After this,
- * all objects in young don't have PREV_MASK_COLLECTING flag and
- * unreachable have the flag.
+ * all objects in young don't have PREV_MASK_COLLECTING flag and
+ * unreachable have the flag.
* All objects in young after this are directly or indirectly reachable
* from outside the original young; and all objects in unreachable are
* not.
- *
- * This function restores _gc_prev pointer. young and unreachable are
- * doubly linked list after this function.
- * But _gc_next in unreachable list has NEXT_MASK_UNREACHABLE flag.
- * So we can not gc_list_* functions for unreachable until we remove the flag.
+ *
+ * This function restores _gc_prev pointer. young and unreachable are
+ * doubly linked list after this function.
+ * But _gc_next in unreachable list has NEXT_MASK_UNREACHABLE flag.
+ * So we can not gc_list_* functions for unreachable until we remove the flag.
*/
static void
move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
{
- // previous elem in the young list, used for restore gc_prev.
- PyGC_Head *prev = young;
- PyGC_Head *gc = GC_NEXT(young);
+ // previous elem in the young list, used for restore gc_prev.
+ PyGC_Head *prev = young;
+ PyGC_Head *gc = GC_NEXT(young);
- /* Invariants: all objects "to the left" of us in young are reachable
- * (directly or indirectly) from outside the young list as it was at entry.
- *
- * All other objects from the original young "to the left" of us are in
- * unreachable now, and have NEXT_MASK_UNREACHABLE. All objects to the
+ /* Invariants: all objects "to the left" of us in young are reachable
+ * (directly or indirectly) from outside the young list as it was at entry.
+ *
+ * All other objects from the original young "to the left" of us are in
+ * unreachable now, and have NEXT_MASK_UNREACHABLE. All objects to the
* left of us in 'young' now have been scanned, and no objects here
* or to the right have been scanned yet.
*/
while (gc != young) {
- if (gc_get_refs(gc)) {
+ if (gc_get_refs(gc)) {
/* gc is definitely reachable from outside the
* original 'young'. Mark it as such, and traverse
* its pointers to find any other objects that may
@@ -573,18 +573,18 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
*/
PyObject *op = FROM_GC(gc);
traverseproc traverse = Py_TYPE(op)->tp_traverse;
- _PyObject_ASSERT_WITH_MSG(op, gc_get_refs(gc) > 0,
- "refcount is too small");
- // NOTE: visit_reachable may change gc->_gc_next when
- // young->_gc_prev == gc. Don't do gc = GC_NEXT(gc) before!
+ _PyObject_ASSERT_WITH_MSG(op, gc_get_refs(gc) > 0,
+ "refcount is too small");
+ // NOTE: visit_reachable may change gc->_gc_next when
+ // young->_gc_prev == gc. Don't do gc = GC_NEXT(gc) before!
(void) traverse(op,
- (visitproc)visit_reachable,
- (void *)young);
- // relink gc_prev to prev element.
- _PyGCHead_SET_PREV(gc, prev);
- // gc is not COLLECTING state after here.
- gc_clear_collecting(gc);
- prev = gc;
+ (visitproc)visit_reachable,
+ (void *)young);
+ // relink gc_prev to prev element.
+ _PyGCHead_SET_PREV(gc, prev);
+ // gc is not COLLECTING state after here.
+ gc_clear_collecting(gc);
+ prev = gc;
}
else {
/* This *may* be unreachable. To make progress,
@@ -594,41 +594,41 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
* visit_reachable will eventually move gc back into
* young if that's so, and we'll see it again.
*/
- // Move gc to unreachable.
- // No need to gc->next->prev = prev because it is single linked.
- prev->_gc_next = gc->_gc_next;
-
- // We can't use gc_list_append() here because we use
- // NEXT_MASK_UNREACHABLE here.
- PyGC_Head *last = GC_PREV(unreachable);
- // NOTE: Since all objects in unreachable set has
- // NEXT_MASK_UNREACHABLE flag, we set it unconditionally.
- // But this may pollute the unreachable list head's 'next' pointer
- // too. That's semantically senseless but expedient here - the
- // damage is repaired when this function ends.
- last->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)gc);
- _PyGCHead_SET_PREV(gc, last);
- gc->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)unreachable);
- unreachable->_gc_prev = (uintptr_t)gc;
+ // Move gc to unreachable.
+ // No need to gc->next->prev = prev because it is single linked.
+ prev->_gc_next = gc->_gc_next;
+
+ // We can't use gc_list_append() here because we use
+ // NEXT_MASK_UNREACHABLE here.
+ PyGC_Head *last = GC_PREV(unreachable);
+ // NOTE: Since all objects in unreachable set has
+ // NEXT_MASK_UNREACHABLE flag, we set it unconditionally.
+ // But this may pollute the unreachable list head's 'next' pointer
+ // too. That's semantically senseless but expedient here - the
+ // damage is repaired when this function ends.
+ last->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)gc);
+ _PyGCHead_SET_PREV(gc, last);
+ gc->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)unreachable);
+ unreachable->_gc_prev = (uintptr_t)gc;
+ }
+ gc = (PyGC_Head*)prev->_gc_next;
+ }
+ // young->_gc_prev must be last element remained in the list.
+ young->_gc_prev = (uintptr_t)prev;
+ // don't let the pollution of the list head's next pointer leak
+ unreachable->_gc_next &= ~NEXT_MASK_UNREACHABLE;
+}
+
+static void
+untrack_tuples(PyGC_Head *head)
+{
+ PyGC_Head *next, *gc = GC_NEXT(head);
+ while (gc != head) {
+ PyObject *op = FROM_GC(gc);
+ next = GC_NEXT(gc);
+ if (PyTuple_CheckExact(op)) {
+ _PyTuple_MaybeUntrack(op);
}
- gc = (PyGC_Head*)prev->_gc_next;
- }
- // young->_gc_prev must be last element remained in the list.
- young->_gc_prev = (uintptr_t)prev;
- // don't let the pollution of the list head's next pointer leak
- unreachable->_gc_next &= ~NEXT_MASK_UNREACHABLE;
-}
-
-static void
-untrack_tuples(PyGC_Head *head)
-{
- PyGC_Head *next, *gc = GC_NEXT(head);
- while (gc != head) {
- PyObject *op = FROM_GC(gc);
- next = GC_NEXT(gc);
- if (PyTuple_CheckExact(op)) {
- _PyTuple_MaybeUntrack(op);
- }
gc = next;
}
}
@@ -637,13 +637,13 @@ untrack_tuples(PyGC_Head *head)
static void
untrack_dicts(PyGC_Head *head)
{
- PyGC_Head *next, *gc = GC_NEXT(head);
+ PyGC_Head *next, *gc = GC_NEXT(head);
while (gc != head) {
PyObject *op = FROM_GC(gc);
- next = GC_NEXT(gc);
- if (PyDict_CheckExact(op)) {
+ next = GC_NEXT(gc);
+ if (PyDict_CheckExact(op)) {
_PyDict_MaybeUntrack(op);
- }
+ }
gc = next;
}
}
@@ -652,62 +652,62 @@ untrack_dicts(PyGC_Head *head)
static int
has_legacy_finalizer(PyObject *op)
{
- return Py_TYPE(op)->tp_del != NULL;
+ return Py_TYPE(op)->tp_del != NULL;
}
/* Move the objects in unreachable with tp_del slots into `finalizers`.
- *
- * This function also removes NEXT_MASK_UNREACHABLE flag
- * from _gc_next in unreachable.
+ *
+ * This function also removes NEXT_MASK_UNREACHABLE flag
+ * from _gc_next in unreachable.
*/
static void
move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers)
{
- PyGC_Head *gc, *next;
- assert((unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
+ PyGC_Head *gc, *next;
+ assert((unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
/* March over unreachable. Move objects with finalizers into
* `finalizers`.
*/
- for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) {
+ for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) {
PyObject *op = FROM_GC(gc);
- _PyObject_ASSERT(op, gc->_gc_next & NEXT_MASK_UNREACHABLE);
- gc->_gc_next &= ~NEXT_MASK_UNREACHABLE;
- next = (PyGC_Head*)gc->_gc_next;
+ _PyObject_ASSERT(op, gc->_gc_next & NEXT_MASK_UNREACHABLE);
+ gc->_gc_next &= ~NEXT_MASK_UNREACHABLE;
+ next = (PyGC_Head*)gc->_gc_next;
if (has_legacy_finalizer(op)) {
- gc_clear_collecting(gc);
+ gc_clear_collecting(gc);
gc_list_move(gc, finalizers);
}
}
}
-static inline void
-clear_unreachable_mask(PyGC_Head *unreachable)
-{
- /* Check that the list head does not have the unreachable bit set */
- assert(((uintptr_t)unreachable & NEXT_MASK_UNREACHABLE) == 0);
-
- PyGC_Head *gc, *next;
- assert((unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
- for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) {
- _PyObject_ASSERT((PyObject*)FROM_GC(gc), gc->_gc_next & NEXT_MASK_UNREACHABLE);
- gc->_gc_next &= ~NEXT_MASK_UNREACHABLE;
- next = (PyGC_Head*)gc->_gc_next;
- }
- validate_list(unreachable, collecting_set_unreachable_clear);
-}
-
+static inline void
+clear_unreachable_mask(PyGC_Head *unreachable)
+{
+ /* Check that the list head does not have the unreachable bit set */
+ assert(((uintptr_t)unreachable & NEXT_MASK_UNREACHABLE) == 0);
+
+ PyGC_Head *gc, *next;
+ assert((unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0);
+ for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) {
+ _PyObject_ASSERT((PyObject*)FROM_GC(gc), gc->_gc_next & NEXT_MASK_UNREACHABLE);
+ gc->_gc_next &= ~NEXT_MASK_UNREACHABLE;
+ next = (PyGC_Head*)gc->_gc_next;
+ }
+ validate_list(unreachable, collecting_set_unreachable_clear);
+}
+
/* A traversal callback for move_legacy_finalizer_reachable. */
static int
visit_move(PyObject *op, PyGC_Head *tolist)
{
- if (_PyObject_IS_GC(op)) {
- PyGC_Head *gc = AS_GC(op);
- if (gc_is_collecting(gc)) {
+ if (_PyObject_IS_GC(op)) {
+ PyGC_Head *gc = AS_GC(op);
+ if (gc_is_collecting(gc)) {
gc_list_move(gc, tolist);
- gc_clear_collecting(gc);
+ gc_clear_collecting(gc);
}
}
return 0;
@@ -720,8 +720,8 @@ static void
move_legacy_finalizer_reachable(PyGC_Head *finalizers)
{
traverseproc traverse;
- PyGC_Head *gc = GC_NEXT(finalizers);
- for (; gc != finalizers; gc = GC_NEXT(gc)) {
+ PyGC_Head *gc = GC_NEXT(finalizers);
+ for (; gc != finalizers; gc = GC_NEXT(gc)) {
/* Note that the finalizers list may grow during this. */
traverse = Py_TYPE(FROM_GC(gc))->tp_traverse;
(void) traverse(FROM_GC(gc),
@@ -761,33 +761,33 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
* make another pass over wrcb_to_call, invoking callbacks, after this
* pass completes.
*/
- for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) {
+ for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) {
PyWeakReference **wrlist;
op = FROM_GC(gc);
- next = GC_NEXT(gc);
-
- if (PyWeakref_Check(op)) {
- /* A weakref inside the unreachable set must be cleared. If we
- * allow its callback to execute inside delete_garbage(), it
- * could expose objects that have tp_clear already called on
- * them. Or, it could resurrect unreachable objects. One way
- * this can happen is if some container objects do not implement
- * tp_traverse. Then, wr_object can be outside the unreachable
- * set but can be deallocated as a result of breaking the
- * reference cycle. If we don't clear the weakref, the callback
- * will run and potentially cause a crash. See bpo-38006 for
- * one example.
- */
- _PyWeakref_ClearRef((PyWeakReference *)op);
- }
-
+ next = GC_NEXT(gc);
+
+ if (PyWeakref_Check(op)) {
+ /* A weakref inside the unreachable set must be cleared. If we
+ * allow its callback to execute inside delete_garbage(), it
+ * could expose objects that have tp_clear already called on
+ * them. Or, it could resurrect unreachable objects. One way
+ * this can happen is if some container objects do not implement
+ * tp_traverse. Then, wr_object can be outside the unreachable
+ * set but can be deallocated as a result of breaking the
+ * reference cycle. If we don't clear the weakref, the callback
+ * will run and potentially cause a crash. See bpo-38006 for
+ * one example.
+ */
+ _PyWeakref_ClearRef((PyWeakReference *)op);
+ }
+
if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op)))
continue;
/* It supports weakrefs. Does it have any? */
wrlist = (PyWeakReference **)
- _PyObject_GET_WEAKREFS_LISTPTR(op);
+ _PyObject_GET_WEAKREFS_LISTPTR(op);
/* `op` may have some weakrefs. March over the list, clear
* all the weakrefs, and move the weakrefs with callbacks
@@ -800,47 +800,47 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
* the callback pointer intact. Obscure: it also
* changes *wrlist.
*/
- _PyObject_ASSERT((PyObject *)wr, wr->wr_object == op);
+ _PyObject_ASSERT((PyObject *)wr, wr->wr_object == op);
_PyWeakref_ClearRef(wr);
- _PyObject_ASSERT((PyObject *)wr, wr->wr_object == Py_None);
- if (wr->wr_callback == NULL) {
- /* no callback */
- continue;
- }
-
- /* Headache time. `op` is going away, and is weakly referenced by
- * `wr`, which has a callback. Should the callback be invoked? If wr
- * is also trash, no:
- *
- * 1. There's no need to call it. The object and the weakref are
- * both going away, so it's legitimate to pretend the weakref is
- * going away first. The user has to ensure a weakref outlives its
- * referent if they want a guarantee that the wr callback will get
- * invoked.
- *
- * 2. It may be catastrophic to call it. If the callback is also in
- * cyclic trash (CT), then although the CT is unreachable from
- * outside the current generation, CT may be reachable from the
- * callback. Then the callback could resurrect insane objects.
- *
- * Since the callback is never needed and may be unsafe in this case,
- * wr is simply left in the unreachable set. Note that because we
- * already called _PyWeakref_ClearRef(wr), its callback will never
- * trigger.
- *
- * OTOH, if wr isn't part of CT, we should invoke the callback: the
- * weakref outlived the trash. Note that since wr isn't CT in this
- * case, its callback can't be CT either -- wr acted as an external
- * root to this generation, and therefore its callback did too. So
- * nothing in CT is reachable from the callback either, so it's hard
- * to imagine how calling it later could create a problem for us. wr
- * is moved to wrcb_to_call in this case.
- */
- if (gc_is_collecting(AS_GC(wr))) {
- /* it should already have been cleared above */
- assert(wr->wr_object == Py_None);
+ _PyObject_ASSERT((PyObject *)wr, wr->wr_object == Py_None);
+ if (wr->wr_callback == NULL) {
+ /* no callback */
+ continue;
+ }
+
+ /* Headache time. `op` is going away, and is weakly referenced by
+ * `wr`, which has a callback. Should the callback be invoked? If wr
+ * is also trash, no:
+ *
+ * 1. There's no need to call it. The object and the weakref are
+ * both going away, so it's legitimate to pretend the weakref is
+ * going away first. The user has to ensure a weakref outlives its
+ * referent if they want a guarantee that the wr callback will get
+ * invoked.
+ *
+ * 2. It may be catastrophic to call it. If the callback is also in
+ * cyclic trash (CT), then although the CT is unreachable from
+ * outside the current generation, CT may be reachable from the
+ * callback. Then the callback could resurrect insane objects.
+ *
+ * Since the callback is never needed and may be unsafe in this case,
+ * wr is simply left in the unreachable set. Note that because we
+ * already called _PyWeakref_ClearRef(wr), its callback will never
+ * trigger.
+ *
+ * OTOH, if wr isn't part of CT, we should invoke the callback: the
+ * weakref outlived the trash. Note that since wr isn't CT in this
+ * case, its callback can't be CT either -- wr acted as an external
+ * root to this generation, and therefore its callback did too. So
+ * nothing in CT is reachable from the callback either, so it's hard
+ * to imagine how calling it later could create a problem for us. wr
+ * is moved to wrcb_to_call in this case.
+ */
+ if (gc_is_collecting(AS_GC(wr))) {
+ /* it should already have been cleared above */
+ assert(wr->wr_object == Py_None);
continue;
- }
+ }
/* Create a new reference so that wr can't go away
* before we can process it again.
@@ -863,15 +863,15 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
PyObject *temp;
PyObject *callback;
- gc = (PyGC_Head*)wrcb_to_call._gc_next;
+ gc = (PyGC_Head*)wrcb_to_call._gc_next;
op = FROM_GC(gc);
- _PyObject_ASSERT(op, PyWeakref_Check(op));
+ _PyObject_ASSERT(op, PyWeakref_Check(op));
wr = (PyWeakReference *)op;
callback = wr->wr_callback;
- _PyObject_ASSERT(op, callback != NULL);
+ _PyObject_ASSERT(op, callback != NULL);
/* copy-paste of weakrefobject.c's handle_callback() */
- temp = PyObject_CallOneArg(callback, (PyObject *)wr);
+ temp = PyObject_CallOneArg(callback, (PyObject *)wr);
if (temp == NULL)
PyErr_WriteUnraisable(callback);
else
@@ -889,13 +889,13 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
* ours).
*/
Py_DECREF(op);
- if (wrcb_to_call._gc_next == (uintptr_t)gc) {
+ if (wrcb_to_call._gc_next == (uintptr_t)gc) {
/* object is still alive -- move it */
gc_list_move(gc, old);
}
- else {
+ else {
++num_freed;
- }
+ }
}
return num_freed;
@@ -916,22 +916,22 @@ debug_cycle(const char *msg, PyObject *op)
* merged into the old list regardless.
*/
static void
-handle_legacy_finalizers(PyThreadState *tstate,
- GCState *gcstate,
- PyGC_Head *finalizers, PyGC_Head *old)
+handle_legacy_finalizers(PyThreadState *tstate,
+ GCState *gcstate,
+ PyGC_Head *finalizers, PyGC_Head *old)
{
- assert(!_PyErr_Occurred(tstate));
- assert(gcstate->garbage != NULL);
+ assert(!_PyErr_Occurred(tstate));
+ assert(gcstate->garbage != NULL);
- PyGC_Head *gc = GC_NEXT(finalizers);
- for (; gc != finalizers; gc = GC_NEXT(gc)) {
+ PyGC_Head *gc = GC_NEXT(finalizers);
+ for (; gc != finalizers; gc = GC_NEXT(gc)) {
PyObject *op = FROM_GC(gc);
- if ((gcstate->debug & DEBUG_SAVEALL) || has_legacy_finalizer(op)) {
- if (PyList_Append(gcstate->garbage, op) < 0) {
- _PyErr_Clear(tstate);
+ if ((gcstate->debug & DEBUG_SAVEALL) || has_legacy_finalizer(op)) {
+ if (PyList_Append(gcstate->garbage, op) < 0) {
+ _PyErr_Clear(tstate);
break;
- }
+ }
}
}
@@ -943,7 +943,7 @@ handle_legacy_finalizers(PyThreadState *tstate,
* list, due to refcounts falling to 0.
*/
static void
-finalize_garbage(PyThreadState *tstate, PyGC_Head *collectable)
+finalize_garbage(PyThreadState *tstate, PyGC_Head *collectable)
{
destructor finalize;
PyGC_Head seen;
@@ -959,15 +959,15 @@ finalize_garbage(PyThreadState *tstate, PyGC_Head *collectable)
gc_list_init(&seen);
while (!gc_list_is_empty(collectable)) {
- PyGC_Head *gc = GC_NEXT(collectable);
+ PyGC_Head *gc = GC_NEXT(collectable);
PyObject *op = FROM_GC(gc);
gc_list_move(gc, &seen);
if (!_PyGCHead_FINALIZED(gc) &&
(finalize = Py_TYPE(op)->tp_finalize) != NULL) {
- _PyGCHead_SET_FINALIZED(gc);
+ _PyGCHead_SET_FINALIZED(gc);
Py_INCREF(op);
finalize(op);
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
Py_DECREF(op);
}
}
@@ -979,39 +979,39 @@ finalize_garbage(PyThreadState *tstate, PyGC_Head *collectable)
* objects may be freed. It is possible I screwed something up here.
*/
static void
-delete_garbage(PyThreadState *tstate, GCState *gcstate,
- PyGC_Head *collectable, PyGC_Head *old)
+delete_garbage(PyThreadState *tstate, GCState *gcstate,
+ PyGC_Head *collectable, PyGC_Head *old)
{
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
while (!gc_list_is_empty(collectable)) {
- PyGC_Head *gc = GC_NEXT(collectable);
+ PyGC_Head *gc = GC_NEXT(collectable);
PyObject *op = FROM_GC(gc);
- _PyObject_ASSERT_WITH_MSG(op, Py_REFCNT(op) > 0,
- "refcount is too small");
-
- if (gcstate->debug & DEBUG_SAVEALL) {
- assert(gcstate->garbage != NULL);
- if (PyList_Append(gcstate->garbage, op) < 0) {
- _PyErr_Clear(tstate);
- }
+ _PyObject_ASSERT_WITH_MSG(op, Py_REFCNT(op) > 0,
+ "refcount is too small");
+
+ if (gcstate->debug & DEBUG_SAVEALL) {
+ assert(gcstate->garbage != NULL);
+ if (PyList_Append(gcstate->garbage, op) < 0) {
+ _PyErr_Clear(tstate);
+ }
}
else {
- inquiry clear;
+ inquiry clear;
if ((clear = Py_TYPE(op)->tp_clear) != NULL) {
Py_INCREF(op);
- (void) clear(op);
- if (_PyErr_Occurred(tstate)) {
- _PyErr_WriteUnraisableMsg("in tp_clear of",
- (PyObject*)Py_TYPE(op));
- }
+ (void) clear(op);
+ if (_PyErr_Occurred(tstate)) {
+ _PyErr_WriteUnraisableMsg("in tp_clear of",
+ (PyObject*)Py_TYPE(op));
+ }
Py_DECREF(op);
}
}
- if (GC_NEXT(collectable) == gc) {
+ if (GC_NEXT(collectable) == gc) {
/* object is still alive, move it, it may die later */
- gc_clear_collecting(gc);
+ gc_clear_collecting(gc);
gc_list_move(gc, old);
}
}
@@ -1025,150 +1025,150 @@ delete_garbage(PyThreadState *tstate, GCState *gcstate,
static void
clear_freelists(void)
{
- _PyFrame_ClearFreeList();
- _PyTuple_ClearFreeList();
- _PyFloat_ClearFreeList();
- _PyList_ClearFreeList();
- _PyDict_ClearFreeList();
- _PyAsyncGen_ClearFreeLists();
- _PyContext_ClearFreeList();
-}
-
-// Show stats for objects in each generations
-static void
-show_stats_each_generations(GCState *gcstate)
-{
- char buf[100];
- size_t pos = 0;
-
- for (int i = 0; i < NUM_GENERATIONS && pos < sizeof(buf); i++) {
- pos += PyOS_snprintf(buf+pos, sizeof(buf)-pos,
- " %"PY_FORMAT_SIZE_T"d",
- gc_list_size(GEN_HEAD(gcstate, i)));
- }
-
- PySys_FormatStderr(
- "gc: objects in each generation:%s\n"
- "gc: objects in permanent generation: %zd\n",
- buf, gc_list_size(&gcstate->permanent_generation.head));
-}
-
-/* Deduce which objects among "base" are unreachable from outside the list
- and move them to 'unreachable'. The process consist in the following steps:
-
-1. Copy all reference counts to a different field (gc_prev is used to hold
- this copy to save memory).
-2. Traverse all objects in "base" and visit all referred objects using
- "tp_traverse" and for every visited object, subtract 1 to the reference
- count (the one that we copied in the previous step). After this step, all
- objects that can be reached directly from outside must have strictly positive
- reference count, while all unreachable objects must have a count of exactly 0.
-3. Identify all unreachable objects (the ones with 0 reference count) and move
- them to the "unreachable" list. This step also needs to move back to "base" all
- objects that were initially marked as unreachable but are referred transitively
- by the reachable objects (the ones with strictly positive reference count).
-
-Contracts:
-
- * The "base" has to be a valid list with no mask set.
-
- * The "unreachable" list must be uninitialized (this function calls
- gc_list_init over 'unreachable').
-
-IMPORTANT: This function leaves 'unreachable' with the NEXT_MASK_UNREACHABLE
-flag set but it does not clear it to skip unnecessary iteration. Before the
-flag is cleared (for example, by using 'clear_unreachable_mask' function or
-by a call to 'move_legacy_finalizers'), the 'unreachable' list is not a normal
-list and we can not use most gc_list_* functions for it. */
-static inline void
-deduce_unreachable(PyGC_Head *base, PyGC_Head *unreachable) {
- validate_list(base, collecting_clear_unreachable_clear);
- /* Using ob_refcnt and gc_refs, calculate which objects in the
- * container set are reachable from outside the set (i.e., have a
- * refcount greater than 0 when all the references within the
- * set are taken into account).
- */
- update_refs(base); // gc_prev is used for gc_refs
- subtract_refs(base);
-
- /* Leave everything reachable from outside base in base, and move
- * everything else (in base) to unreachable.
- *
- * NOTE: This used to move the reachable objects into a reachable
- * set instead. But most things usually turn out to be reachable,
- * so it's more efficient to move the unreachable things. It "sounds slick"
- * to move the unreachable objects, until you think about it - the reason it
- * pays isn't actually obvious.
- *
- * Suppose we create objects A, B, C in that order. They appear in the young
- * generation in the same order. If B points to A, and C to B, and C is
- * reachable from outside, then the adjusted refcounts will be 0, 0, and 1
- * respectively.
- *
- * When move_unreachable finds A, A is moved to the unreachable list. The
- * same for B when it's first encountered. Then C is traversed, B is moved
- * _back_ to the reachable list. B is eventually traversed, and then A is
- * moved back to the reachable list.
- *
- * So instead of not moving at all, the reachable objects B and A are moved
- * twice each. Why is this a win? A straightforward algorithm to move the
- * reachable objects instead would move A, B, and C once each.
- *
- * The key is that this dance leaves the objects in order C, B, A - it's
- * reversed from the original order. On all _subsequent_ scans, none of
- * them will move. Since most objects aren't in cycles, this can save an
- * unbounded number of moves across an unbounded number of later collections.
- * It can cost more only the first time the chain is scanned.
- *
- * Drawback: move_unreachable is also used to find out what's still trash
- * after finalizers may resurrect objects. In _that_ case most unreachable
- * objects will remain unreachable, so it would be more efficient to move
- * the reachable objects instead. But this is a one-time cost, probably not
- * worth complicating the code to speed just a little.
- */
- gc_list_init(unreachable);
- move_unreachable(base, unreachable); // gc_prev is pointer again
- validate_list(base, collecting_clear_unreachable_clear);
- validate_list(unreachable, collecting_set_unreachable_set);
-}
-
-/* Handle objects that may have resurrected after a call to 'finalize_garbage', moving
- them to 'old_generation' and placing the rest on 'still_unreachable'.
-
- Contracts:
- * After this function 'unreachable' must not be used anymore and 'still_unreachable'
- will contain the objects that did not resurrect.
-
- * The "still_unreachable" list must be uninitialized (this function calls
- gc_list_init over 'still_unreachable').
-
-IMPORTANT: After a call to this function, the 'still_unreachable' set will have the
-PREV_MARK_COLLECTING set, but the objects in this set are going to be removed so
-we can skip the expense of clearing the flag to avoid extra iteration. */
-static inline void
-handle_resurrected_objects(PyGC_Head *unreachable, PyGC_Head* still_unreachable,
- PyGC_Head *old_generation)
-{
- // Remove the PREV_MASK_COLLECTING from unreachable
- // to prepare it for a new call to 'deduce_unreachable'
- gc_list_clear_collecting(unreachable);
-
- // After the call to deduce_unreachable, the 'still_unreachable' set will
- // have the PREV_MARK_COLLECTING set, but the objects are going to be
- // removed so we can skip the expense of clearing the flag.
- PyGC_Head* resurrected = unreachable;
- deduce_unreachable(resurrected, still_unreachable);
- clear_unreachable_mask(still_unreachable);
-
- // Move the resurrected objects to the old generation for future collection.
- gc_list_merge(resurrected, old_generation);
-}
-
+ _PyFrame_ClearFreeList();
+ _PyTuple_ClearFreeList();
+ _PyFloat_ClearFreeList();
+ _PyList_ClearFreeList();
+ _PyDict_ClearFreeList();
+ _PyAsyncGen_ClearFreeLists();
+ _PyContext_ClearFreeList();
+}
+
+// Show stats for objects in each generations
+static void
+show_stats_each_generations(GCState *gcstate)
+{
+ char buf[100];
+ size_t pos = 0;
+
+ for (int i = 0; i < NUM_GENERATIONS && pos < sizeof(buf); i++) {
+ pos += PyOS_snprintf(buf+pos, sizeof(buf)-pos,
+ " %"PY_FORMAT_SIZE_T"d",
+ gc_list_size(GEN_HEAD(gcstate, i)));
+ }
+
+ PySys_FormatStderr(
+ "gc: objects in each generation:%s\n"
+ "gc: objects in permanent generation: %zd\n",
+ buf, gc_list_size(&gcstate->permanent_generation.head));
+}
+
+/* Deduce which objects among "base" are unreachable from outside the list
+ and move them to 'unreachable'. The process consist in the following steps:
+
+1. Copy all reference counts to a different field (gc_prev is used to hold
+ this copy to save memory).
+2. Traverse all objects in "base" and visit all referred objects using
+ "tp_traverse" and for every visited object, subtract 1 to the reference
+ count (the one that we copied in the previous step). After this step, all
+ objects that can be reached directly from outside must have strictly positive
+ reference count, while all unreachable objects must have a count of exactly 0.
+3. Identify all unreachable objects (the ones with 0 reference count) and move
+ them to the "unreachable" list. This step also needs to move back to "base" all
+ objects that were initially marked as unreachable but are referred transitively
+ by the reachable objects (the ones with strictly positive reference count).
+
+Contracts:
+
+ * The "base" has to be a valid list with no mask set.
+
+ * The "unreachable" list must be uninitialized (this function calls
+ gc_list_init over 'unreachable').
+
+IMPORTANT: This function leaves 'unreachable' with the NEXT_MASK_UNREACHABLE
+flag set but it does not clear it to skip unnecessary iteration. Before the
+flag is cleared (for example, by using 'clear_unreachable_mask' function or
+by a call to 'move_legacy_finalizers'), the 'unreachable' list is not a normal
+list and we can not use most gc_list_* functions for it. */
+static inline void
+deduce_unreachable(PyGC_Head *base, PyGC_Head *unreachable) {
+ validate_list(base, collecting_clear_unreachable_clear);
+ /* Using ob_refcnt and gc_refs, calculate which objects in the
+ * container set are reachable from outside the set (i.e., have a
+ * refcount greater than 0 when all the references within the
+ * set are taken into account).
+ */
+ update_refs(base); // gc_prev is used for gc_refs
+ subtract_refs(base);
+
+ /* Leave everything reachable from outside base in base, and move
+ * everything else (in base) to unreachable.
+ *
+ * NOTE: This used to move the reachable objects into a reachable
+ * set instead. But most things usually turn out to be reachable,
+ * so it's more efficient to move the unreachable things. It "sounds slick"
+ * to move the unreachable objects, until you think about it - the reason it
+ * pays isn't actually obvious.
+ *
+ * Suppose we create objects A, B, C in that order. They appear in the young
+ * generation in the same order. If B points to A, and C to B, and C is
+ * reachable from outside, then the adjusted refcounts will be 0, 0, and 1
+ * respectively.
+ *
+ * When move_unreachable finds A, A is moved to the unreachable list. The
+ * same for B when it's first encountered. Then C is traversed, B is moved
+ * _back_ to the reachable list. B is eventually traversed, and then A is
+ * moved back to the reachable list.
+ *
+ * So instead of not moving at all, the reachable objects B and A are moved
+ * twice each. Why is this a win? A straightforward algorithm to move the
+ * reachable objects instead would move A, B, and C once each.
+ *
+ * The key is that this dance leaves the objects in order C, B, A - it's
+ * reversed from the original order. On all _subsequent_ scans, none of
+ * them will move. Since most objects aren't in cycles, this can save an
+ * unbounded number of moves across an unbounded number of later collections.
+ * It can cost more only the first time the chain is scanned.
+ *
+ * Drawback: move_unreachable is also used to find out what's still trash
+ * after finalizers may resurrect objects. In _that_ case most unreachable
+ * objects will remain unreachable, so it would be more efficient to move
+ * the reachable objects instead. But this is a one-time cost, probably not
+ * worth complicating the code to speed just a little.
+ */
+ gc_list_init(unreachable);
+ move_unreachable(base, unreachable); // gc_prev is pointer again
+ validate_list(base, collecting_clear_unreachable_clear);
+ validate_list(unreachable, collecting_set_unreachable_set);
+}
+
+/* Handle objects that may have resurrected after a call to 'finalize_garbage', moving
+ them to 'old_generation' and placing the rest on 'still_unreachable'.
+
+ Contracts:
+ * After this function 'unreachable' must not be used anymore and 'still_unreachable'
+ will contain the objects that did not resurrect.
+
+ * The "still_unreachable" list must be uninitialized (this function calls
+ gc_list_init over 'still_unreachable').
+
+IMPORTANT: After a call to this function, the 'still_unreachable' set will have the
+PREV_MARK_COLLECTING set, but the objects in this set are going to be removed so
+we can skip the expense of clearing the flag to avoid extra iteration. */
+static inline void
+handle_resurrected_objects(PyGC_Head *unreachable, PyGC_Head* still_unreachable,
+ PyGC_Head *old_generation)
+{
+ // Remove the PREV_MASK_COLLECTING from unreachable
+ // to prepare it for a new call to 'deduce_unreachable'
+ gc_list_clear_collecting(unreachable);
+
+ // After the call to deduce_unreachable, the 'still_unreachable' set will
+ // have the PREV_MARK_COLLECTING set, but the objects are going to be
+ // removed so we can skip the expense of clearing the flag.
+ PyGC_Head* resurrected = unreachable;
+ deduce_unreachable(resurrected, still_unreachable);
+ clear_unreachable_mask(still_unreachable);
+
+ // Move the resurrected objects to the old generation for future collection.
+ gc_list_merge(resurrected, old_generation);
+}
+
/* This is the main function. Read this to understand how the
* collection process works. */
static Py_ssize_t
-collect(PyThreadState *tstate, int generation,
- Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable, int nofail)
+collect(PyThreadState *tstate, int generation,
+ Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable, int nofail)
{
int i;
Py_ssize_t m = 0; /* # objects collected */
@@ -1179,11 +1179,11 @@ collect(PyThreadState *tstate, int generation,
PyGC_Head finalizers; /* objects with, & reachable from, __del__ */
PyGC_Head *gc;
_PyTime_t t1 = 0; /* initialize to prevent a compiler warning */
- GCState *gcstate = &tstate->interp->gc;
+ GCState *gcstate = &tstate->interp->gc;
- if (gcstate->debug & DEBUG_STATS) {
- PySys_WriteStderr("gc: collecting generation %d...\n", generation);
- show_stats_each_generations(gcstate);
+ if (gcstate->debug & DEBUG_STATS) {
+ PySys_WriteStderr("gc: collecting generation %d...\n", generation);
+ show_stats_each_generations(gcstate);
t1 = _PyTime_GetMonotonicClock();
}
@@ -1192,47 +1192,47 @@ collect(PyThreadState *tstate, int generation,
/* update collection and allocation counters */
if (generation+1 < NUM_GENERATIONS)
- gcstate->generations[generation+1].count += 1;
+ gcstate->generations[generation+1].count += 1;
for (i = 0; i <= generation; i++)
- gcstate->generations[i].count = 0;
+ gcstate->generations[i].count = 0;
/* merge younger generations with one we are currently collecting */
for (i = 0; i < generation; i++) {
- gc_list_merge(GEN_HEAD(gcstate, i), GEN_HEAD(gcstate, generation));
+ gc_list_merge(GEN_HEAD(gcstate, i), GEN_HEAD(gcstate, generation));
}
/* handy references */
- young = GEN_HEAD(gcstate, generation);
+ young = GEN_HEAD(gcstate, generation);
if (generation < NUM_GENERATIONS-1)
- old = GEN_HEAD(gcstate, generation+1);
+ old = GEN_HEAD(gcstate, generation+1);
else
old = young;
- validate_list(old, collecting_clear_unreachable_clear);
+ validate_list(old, collecting_clear_unreachable_clear);
- deduce_unreachable(young, &unreachable);
+ deduce_unreachable(young, &unreachable);
- untrack_tuples(young);
+ untrack_tuples(young);
/* Move reachable objects to next generation. */
if (young != old) {
if (generation == NUM_GENERATIONS - 2) {
- gcstate->long_lived_pending += gc_list_size(young);
+ gcstate->long_lived_pending += gc_list_size(young);
}
gc_list_merge(young, old);
}
else {
- /* We only un-track dicts in full collections, to avoid quadratic
+ /* We only un-track dicts in full collections, to avoid quadratic
dict build-up. See issue #14775. */
untrack_dicts(young);
- gcstate->long_lived_pending = 0;
- gcstate->long_lived_total = gc_list_size(young);
+ gcstate->long_lived_pending = 0;
+ gcstate->long_lived_total = gc_list_size(young);
}
/* All objects in unreachable are trash, but objects reachable from
* legacy finalizers (e.g. tp_del) can't safely be deleted.
*/
gc_list_init(&finalizers);
- // NEXT_MASK_UNREACHABLE is cleared here.
- // After move_legacy_finalizers(), unreachable is normal list.
+ // NEXT_MASK_UNREACHABLE is cleared here.
+ // After move_legacy_finalizers(), unreachable is normal list.
move_legacy_finalizers(&unreachable, &finalizers);
/* finalizers contains the unreachable objects with a legacy finalizer;
* unreachable objects reachable *from* those are also uncollectable,
@@ -1240,12 +1240,12 @@ collect(PyThreadState *tstate, int generation,
*/
move_legacy_finalizer_reachable(&finalizers);
- validate_list(&finalizers, collecting_clear_unreachable_clear);
- validate_list(&unreachable, collecting_set_unreachable_clear);
-
- /* Print debugging information. */
- if (gcstate->debug & DEBUG_COLLECTABLE) {
- for (gc = GC_NEXT(&unreachable); gc != &unreachable; gc = GC_NEXT(gc)) {
+ validate_list(&finalizers, collecting_clear_unreachable_clear);
+ validate_list(&unreachable, collecting_set_unreachable_clear);
+
+ /* Print debugging information. */
+ if (gcstate->debug & DEBUG_COLLECTABLE) {
+ for (gc = GC_NEXT(&unreachable); gc != &unreachable; gc = GC_NEXT(gc)) {
debug_cycle("collectable", FROM_GC(gc));
}
}
@@ -1253,46 +1253,46 @@ collect(PyThreadState *tstate, int generation,
/* Clear weakrefs and invoke callbacks as necessary. */
m += handle_weakrefs(&unreachable, old);
- validate_list(old, collecting_clear_unreachable_clear);
- validate_list(&unreachable, collecting_set_unreachable_clear);
-
+ validate_list(old, collecting_clear_unreachable_clear);
+ validate_list(&unreachable, collecting_set_unreachable_clear);
+
/* Call tp_finalize on objects which have one. */
- finalize_garbage(tstate, &unreachable);
-
- /* Handle any objects that may have resurrected after the call
- * to 'finalize_garbage' and continue the collection with the
- * objects that are still unreachable */
- PyGC_Head final_unreachable;
- handle_resurrected_objects(&unreachable, &final_unreachable, old);
-
- /* Call tp_clear on objects in the final_unreachable set. This will cause
- * the reference cycles to be broken. It may also cause some objects
- * in finalizers to be freed.
- */
- m += gc_list_size(&final_unreachable);
- delete_garbage(tstate, gcstate, &final_unreachable, old);
-
+ finalize_garbage(tstate, &unreachable);
+
+ /* Handle any objects that may have resurrected after the call
+ * to 'finalize_garbage' and continue the collection with the
+ * objects that are still unreachable */
+ PyGC_Head final_unreachable;
+ handle_resurrected_objects(&unreachable, &final_unreachable, old);
+
+ /* Call tp_clear on objects in the final_unreachable set. This will cause
+ * the reference cycles to be broken. It may also cause some objects
+ * in finalizers to be freed.
+ */
+ m += gc_list_size(&final_unreachable);
+ delete_garbage(tstate, gcstate, &final_unreachable, old);
+
/* Collect statistics on uncollectable objects found and print
* debugging information. */
- for (gc = GC_NEXT(&finalizers); gc != &finalizers; gc = GC_NEXT(gc)) {
+ for (gc = GC_NEXT(&finalizers); gc != &finalizers; gc = GC_NEXT(gc)) {
n++;
- if (gcstate->debug & DEBUG_UNCOLLECTABLE)
+ if (gcstate->debug & DEBUG_UNCOLLECTABLE)
debug_cycle("uncollectable", FROM_GC(gc));
}
- if (gcstate->debug & DEBUG_STATS) {
- double d = _PyTime_AsSecondsDouble(_PyTime_GetMonotonicClock() - t1);
- PySys_WriteStderr(
- "gc: done, %" PY_FORMAT_SIZE_T "d unreachable, "
- "%" PY_FORMAT_SIZE_T "d uncollectable, %.4fs elapsed\n",
- n+m, n, d);
+ if (gcstate->debug & DEBUG_STATS) {
+ double d = _PyTime_AsSecondsDouble(_PyTime_GetMonotonicClock() - t1);
+ PySys_WriteStderr(
+ "gc: done, %" PY_FORMAT_SIZE_T "d unreachable, "
+ "%" PY_FORMAT_SIZE_T "d uncollectable, %.4fs elapsed\n",
+ n+m, n, d);
}
/* Append instances in the uncollectable set to a Python
* reachable list of garbage. The programmer has to deal with
* this if they insist on creating this type of structure.
*/
- handle_legacy_finalizers(tstate, gcstate, &finalizers, old);
- validate_list(old, collecting_clear_unreachable_clear);
+ handle_legacy_finalizers(tstate, gcstate, &finalizers, old);
+ validate_list(old, collecting_clear_unreachable_clear);
/* Clear free list only during the collection of the highest
* generation */
@@ -1300,56 +1300,56 @@ collect(PyThreadState *tstate, int generation,
clear_freelists();
}
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
if (nofail) {
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
}
else {
- _PyErr_WriteUnraisableMsg("in garbage collection", NULL);
+ _PyErr_WriteUnraisableMsg("in garbage collection", NULL);
}
}
/* Update stats */
- if (n_collected) {
+ if (n_collected) {
*n_collected = m;
- }
- if (n_uncollectable) {
+ }
+ if (n_uncollectable) {
*n_uncollectable = n;
- }
-
- struct gc_generation_stats *stats = &gcstate->generation_stats[generation];
+ }
+
+ struct gc_generation_stats *stats = &gcstate->generation_stats[generation];
stats->collections++;
stats->collected += m;
stats->uncollectable += n;
- if (PyDTrace_GC_DONE_ENABLED()) {
- PyDTrace_GC_DONE(n + m);
- }
+ if (PyDTrace_GC_DONE_ENABLED()) {
+ PyDTrace_GC_DONE(n + m);
+ }
- assert(!_PyErr_Occurred(tstate));
- return n + m;
+ assert(!_PyErr_Occurred(tstate));
+ return n + m;
}
/* Invoke progress callbacks to notify clients that garbage collection
* is starting or stopping
*/
static void
-invoke_gc_callback(PyThreadState *tstate, const char *phase,
- int generation, Py_ssize_t collected,
- Py_ssize_t uncollectable)
+invoke_gc_callback(PyThreadState *tstate, const char *phase,
+ int generation, Py_ssize_t collected,
+ Py_ssize_t uncollectable)
{
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
/* we may get called very early */
- GCState *gcstate = &tstate->interp->gc;
- if (gcstate->callbacks == NULL) {
+ GCState *gcstate = &tstate->interp->gc;
+ if (gcstate->callbacks == NULL) {
return;
- }
-
+ }
+
/* The local variable cannot be rebound, check it for sanity */
- assert(PyList_CheckExact(gcstate->callbacks));
- PyObject *info = NULL;
- if (PyList_GET_SIZE(gcstate->callbacks) != 0) {
+ assert(PyList_CheckExact(gcstate->callbacks));
+ PyObject *info = NULL;
+ if (PyList_GET_SIZE(gcstate->callbacks) != 0) {
info = Py_BuildValue("{sisnsn}",
"generation", generation,
"collected", collected,
@@ -1359,8 +1359,8 @@ invoke_gc_callback(PyThreadState *tstate, const char *phase,
return;
}
}
- for (Py_ssize_t i=0; i<PyList_GET_SIZE(gcstate->callbacks); i++) {
- PyObject *r, *cb = PyList_GET_ITEM(gcstate->callbacks, i);
+ for (Py_ssize_t i=0; i<PyList_GET_SIZE(gcstate->callbacks); i++) {
+ PyObject *r, *cb = PyList_GET_ITEM(gcstate->callbacks, i);
Py_INCREF(cb); /* make sure cb doesn't go away */
r = PyObject_CallFunction(cb, "sO", phase, info);
if (r == NULL) {
@@ -1372,74 +1372,74 @@ invoke_gc_callback(PyThreadState *tstate, const char *phase,
Py_DECREF(cb);
}
Py_XDECREF(info);
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
}
/* Perform garbage collection of a generation and invoke
* progress callbacks.
*/
static Py_ssize_t
-collect_with_callback(PyThreadState *tstate, int generation)
+collect_with_callback(PyThreadState *tstate, int generation)
{
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
Py_ssize_t result, collected, uncollectable;
- invoke_gc_callback(tstate, "start", generation, 0, 0);
- result = collect(tstate, generation, &collected, &uncollectable, 0);
- invoke_gc_callback(tstate, "stop", generation, collected, uncollectable);
- assert(!_PyErr_Occurred(tstate));
+ invoke_gc_callback(tstate, "start", generation, 0, 0);
+ result = collect(tstate, generation, &collected, &uncollectable, 0);
+ invoke_gc_callback(tstate, "stop", generation, collected, uncollectable);
+ assert(!_PyErr_Occurred(tstate));
return result;
}
static Py_ssize_t
-collect_generations(PyThreadState *tstate)
+collect_generations(PyThreadState *tstate)
{
- GCState *gcstate = &tstate->interp->gc;
+ GCState *gcstate = &tstate->interp->gc;
/* Find the oldest generation (highest numbered) where the count
* exceeds the threshold. Objects in the that generation and
* generations younger than it will be collected. */
- Py_ssize_t n = 0;
- for (int i = NUM_GENERATIONS-1; i >= 0; i--) {
- if (gcstate->generations[i].count > gcstate->generations[i].threshold) {
+ Py_ssize_t n = 0;
+ for (int i = NUM_GENERATIONS-1; i >= 0; i--) {
+ if (gcstate->generations[i].count > gcstate->generations[i].threshold) {
/* Avoid quadratic performance degradation in number
- of tracked objects (see also issue #4074):
-
- To limit the cost of garbage collection, there are two strategies;
- - make each collection faster, e.g. by scanning fewer objects
- - do less collections
- This heuristic is about the latter strategy.
-
- In addition to the various configurable thresholds, we only trigger a
- full collection if the ratio
-
- long_lived_pending / long_lived_total
-
- is above a given value (hardwired to 25%).
-
- The reason is that, while "non-full" collections (i.e., collections of
- the young and middle generations) will always examine roughly the same
- number of objects -- determined by the aforementioned thresholds --,
- the cost of a full collection is proportional to the total number of
- long-lived objects, which is virtually unbounded.
-
- Indeed, it has been remarked that doing a full collection every
- <constant number> of object creations entails a dramatic performance
- degradation in workloads which consist in creating and storing lots of
- long-lived objects (e.g. building a large list of GC-tracked objects would
- show quadratic performance, instead of linear as expected: see issue #4074).
-
- Using the above ratio, instead, yields amortized linear performance in
- the total number of objects (the effect of which can be summarized
- thusly: "each full garbage collection is more and more costly as the
- number of objects grows, but we do fewer and fewer of them").
-
- This heuristic was suggested by Martin von Löwis on python-dev in
- June 2008. His original analysis and proposal can be found at:
- http://mail.python.org/pipermail/python-dev/2008-June/080579.html
+ of tracked objects (see also issue #4074):
+
+ To limit the cost of garbage collection, there are two strategies;
+ - make each collection faster, e.g. by scanning fewer objects
+ - do less collections
+ This heuristic is about the latter strategy.
+
+ In addition to the various configurable thresholds, we only trigger a
+ full collection if the ratio
+
+ long_lived_pending / long_lived_total
+
+ is above a given value (hardwired to 25%).
+
+ The reason is that, while "non-full" collections (i.e., collections of
+ the young and middle generations) will always examine roughly the same
+ number of objects -- determined by the aforementioned thresholds --,
+ the cost of a full collection is proportional to the total number of
+ long-lived objects, which is virtually unbounded.
+
+ Indeed, it has been remarked that doing a full collection every
+ <constant number> of object creations entails a dramatic performance
+ degradation in workloads which consist in creating and storing lots of
+ long-lived objects (e.g. building a large list of GC-tracked objects would
+ show quadratic performance, instead of linear as expected: see issue #4074).
+
+ Using the above ratio, instead, yields amortized linear performance in
+ the total number of objects (the effect of which can be summarized
+ thusly: "each full garbage collection is more and more costly as the
+ number of objects grows, but we do fewer and fewer of them").
+
+ This heuristic was suggested by Martin von Löwis on python-dev in
+ June 2008. His original analysis and proposal can be found at:
+ http://mail.python.org/pipermail/python-dev/2008-June/080579.html
*/
if (i == NUM_GENERATIONS - 1
- && gcstate->long_lived_pending < gcstate->long_lived_total / 4)
+ && gcstate->long_lived_pending < gcstate->long_lived_total / 4)
continue;
- n = collect_with_callback(tstate, i);
+ n = collect_with_callback(tstate, i);
break;
}
}
@@ -1458,9 +1458,9 @@ static PyObject *
gc_enable_impl(PyObject *module)
/*[clinic end generated code: output=45a427e9dce9155c input=81ac4940ca579707]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- gcstate->enabled = 1;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ gcstate->enabled = 1;
Py_RETURN_NONE;
}
@@ -1474,9 +1474,9 @@ static PyObject *
gc_disable_impl(PyObject *module)
/*[clinic end generated code: output=97d1030f7aa9d279 input=8c2e5a14e800d83b]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- gcstate->enabled = 0;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ gcstate->enabled = 0;
Py_RETURN_NONE;
}
@@ -1490,9 +1490,9 @@ static int
gc_isenabled_impl(PyObject *module)
/*[clinic end generated code: output=1874298331c49130 input=30005e0422373b31]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- return gcstate->enabled;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ return gcstate->enabled;
}
/*[clinic input]
@@ -1513,23 +1513,23 @@ static Py_ssize_t
gc_collect_impl(PyObject *module, int generation)
/*[clinic end generated code: output=b697e633043233c7 input=40720128b682d879]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (generation < 0 || generation >= NUM_GENERATIONS) {
- _PyErr_SetString(tstate, PyExc_ValueError, "invalid generation");
+ _PyErr_SetString(tstate, PyExc_ValueError, "invalid generation");
return -1;
}
- GCState *gcstate = &tstate->interp->gc;
- Py_ssize_t n;
- if (gcstate->collecting) {
- /* already collecting, don't do anything */
- n = 0;
- }
+ GCState *gcstate = &tstate->interp->gc;
+ Py_ssize_t n;
+ if (gcstate->collecting) {
+ /* already collecting, don't do anything */
+ n = 0;
+ }
else {
- gcstate->collecting = 1;
- n = collect_with_callback(tstate, generation);
- gcstate->collecting = 0;
+ gcstate->collecting = 1;
+ n = collect_with_callback(tstate, generation);
+ gcstate->collecting = 0;
}
return n;
}
@@ -1556,9 +1556,9 @@ static PyObject *
gc_set_debug_impl(PyObject *module, int flags)
/*[clinic end generated code: output=7c8366575486b228 input=5e5ce15e84fbed15]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- gcstate->debug = flags;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ gcstate->debug = flags;
Py_RETURN_NONE;
}
@@ -1572,9 +1572,9 @@ static int
gc_get_debug_impl(PyObject *module)
/*[clinic end generated code: output=91242f3506cd1e50 input=91a101e1c3b98366]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- return gcstate->debug;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ return gcstate->debug;
}
PyDoc_STRVAR(gc_set_thresh__doc__,
@@ -1584,18 +1584,18 @@ PyDoc_STRVAR(gc_set_thresh__doc__,
"collection.\n");
static PyObject *
-gc_set_threshold(PyObject *self, PyObject *args)
+gc_set_threshold(PyObject *self, PyObject *args)
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
if (!PyArg_ParseTuple(args, "i|ii:set_threshold",
- &gcstate->generations[0].threshold,
- &gcstate->generations[1].threshold,
- &gcstate->generations[2].threshold))
+ &gcstate->generations[0].threshold,
+ &gcstate->generations[1].threshold,
+ &gcstate->generations[2].threshold))
return NULL;
- for (int i = 3; i < NUM_GENERATIONS; i++) {
+ for (int i = 3; i < NUM_GENERATIONS; i++) {
/* generations higher than 2 get the same threshold */
- gcstate->generations[i].threshold = gcstate->generations[2].threshold;
+ gcstate->generations[i].threshold = gcstate->generations[2].threshold;
}
Py_RETURN_NONE;
}
@@ -1610,12 +1610,12 @@ static PyObject *
gc_get_threshold_impl(PyObject *module)
/*[clinic end generated code: output=7902bc9f41ecbbd8 input=286d79918034d6e6]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
return Py_BuildValue("(iii)",
- gcstate->generations[0].threshold,
- gcstate->generations[1].threshold,
- gcstate->generations[2].threshold);
+ gcstate->generations[0].threshold,
+ gcstate->generations[1].threshold,
+ gcstate->generations[2].threshold);
}
/*[clinic input]
@@ -1628,12 +1628,12 @@ static PyObject *
gc_get_count_impl(PyObject *module)
/*[clinic end generated code: output=354012e67b16398f input=a392794a08251751]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
return Py_BuildValue("(iii)",
- gcstate->generations[0].count,
- gcstate->generations[1].count,
- gcstate->generations[2].count);
+ gcstate->generations[0].count,
+ gcstate->generations[1].count,
+ gcstate->generations[2].count);
}
static int
@@ -1652,7 +1652,7 @@ gc_referrers_for(PyObject *objs, PyGC_Head *list, PyObject *resultlist)
PyGC_Head *gc;
PyObject *obj;
traverseproc traverse;
- for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(gc)) {
+ for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(gc)) {
obj = FROM_GC(gc);
traverse = Py_TYPE(obj)->tp_traverse;
if (obj == objs || obj == resultlist)
@@ -1672,21 +1672,21 @@ Return the list of objects that directly refer to any of objs.");
static PyObject *
gc_get_referrers(PyObject *self, PyObject *args)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
int i;
-
- if (PySys_Audit("gc.get_referrers", "(O)", args) < 0) {
- return NULL;
- }
-
+
+ if (PySys_Audit("gc.get_referrers", "(O)", args) < 0) {
+ return NULL;
+ }
+
PyObject *result = PyList_New(0);
- if (!result) {
- return NULL;
- }
+ if (!result) {
+ return NULL;
+ }
- GCState *gcstate = &tstate->interp->gc;
+ GCState *gcstate = &tstate->interp->gc;
for (i = 0; i < NUM_GENERATIONS; i++) {
- if (!(gc_referrers_for(args, GEN_HEAD(gcstate, i), result))) {
+ if (!(gc_referrers_for(args, GEN_HEAD(gcstate, i), result))) {
Py_DECREF(result);
return NULL;
}
@@ -1709,9 +1709,9 @@ static PyObject *
gc_get_referents(PyObject *self, PyObject *args)
{
Py_ssize_t i;
- if (PySys_Audit("gc.get_referents", "(O)", args) < 0) {
- return NULL;
- }
+ if (PySys_Audit("gc.get_referents", "(O)", args) < 0) {
+ return NULL;
+ }
PyObject *result = PyList_New(0);
if (result == NULL)
@@ -1721,7 +1721,7 @@ gc_get_referents(PyObject *self, PyObject *args)
traverseproc traverse;
PyObject *obj = PyTuple_GET_ITEM(args, i);
- if (!_PyObject_IS_GC(obj))
+ if (!_PyObject_IS_GC(obj))
continue;
traverse = Py_TYPE(obj)->tp_traverse;
if (! traverse)
@@ -1736,67 +1736,67 @@ gc_get_referents(PyObject *self, PyObject *args)
/*[clinic input]
gc.get_objects
- generation: Py_ssize_t(accept={int, NoneType}, c_default="-1") = None
- Generation to extract the objects from.
+ generation: Py_ssize_t(accept={int, NoneType}, c_default="-1") = None
+ Generation to extract the objects from.
Return a list of objects tracked by the collector (excluding the list returned).
-
-If generation is not None, return only the objects tracked by the collector
-that are in that generation.
+
+If generation is not None, return only the objects tracked by the collector
+that are in that generation.
[clinic start generated code]*/
static PyObject *
-gc_get_objects_impl(PyObject *module, Py_ssize_t generation)
-/*[clinic end generated code: output=48b35fea4ba6cb0e input=ef7da9df9806754c]*/
+gc_get_objects_impl(PyObject *module, Py_ssize_t generation)
+/*[clinic end generated code: output=48b35fea4ba6cb0e input=ef7da9df9806754c]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
int i;
PyObject* result;
- GCState *gcstate = &tstate->interp->gc;
+ GCState *gcstate = &tstate->interp->gc;
+
+ if (PySys_Audit("gc.get_objects", "n", generation) < 0) {
+ return NULL;
+ }
- if (PySys_Audit("gc.get_objects", "n", generation) < 0) {
- return NULL;
- }
-
result = PyList_New(0);
- if (result == NULL) {
+ if (result == NULL) {
return NULL;
- }
-
- /* If generation is passed, we extract only that generation */
- if (generation != -1) {
- if (generation >= NUM_GENERATIONS) {
- _PyErr_Format(tstate, PyExc_ValueError,
- "generation parameter must be less than the number of "
- "available generations (%i)",
- NUM_GENERATIONS);
- goto error;
- }
-
- if (generation < 0) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "generation parameter cannot be negative");
- goto error;
- }
-
- if (append_objects(result, GEN_HEAD(gcstate, generation))) {
- goto error;
- }
-
- return result;
- }
-
- /* If generation is not passed or None, get all objects from all generations */
+ }
+
+ /* If generation is passed, we extract only that generation */
+ if (generation != -1) {
+ if (generation >= NUM_GENERATIONS) {
+ _PyErr_Format(tstate, PyExc_ValueError,
+ "generation parameter must be less than the number of "
+ "available generations (%i)",
+ NUM_GENERATIONS);
+ goto error;
+ }
+
+ if (generation < 0) {
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "generation parameter cannot be negative");
+ goto error;
+ }
+
+ if (append_objects(result, GEN_HEAD(gcstate, generation))) {
+ goto error;
+ }
+
+ return result;
+ }
+
+ /* If generation is not passed or None, get all objects from all generations */
for (i = 0; i < NUM_GENERATIONS; i++) {
- if (append_objects(result, GEN_HEAD(gcstate, i))) {
- goto error;
+ if (append_objects(result, GEN_HEAD(gcstate, i))) {
+ goto error;
}
}
return result;
-
-error:
- Py_DECREF(result);
- return NULL;
+
+error:
+ Py_DECREF(result);
+ return NULL;
}
/*[clinic input]
@@ -1811,16 +1811,16 @@ gc_get_stats_impl(PyObject *module)
{
int i;
struct gc_generation_stats stats[NUM_GENERATIONS], *st;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
/* To get consistent values despite allocations while constructing
the result list, we use a snapshot of the running stats. */
- GCState *gcstate = &tstate->interp->gc;
+ GCState *gcstate = &tstate->interp->gc;
for (i = 0; i < NUM_GENERATIONS; i++) {
- stats[i] = gcstate->generation_stats[i];
+ stats[i] = gcstate->generation_stats[i];
}
- PyObject *result = PyList_New(0);
+ PyObject *result = PyList_New(0);
if (result == NULL)
return NULL;
@@ -1865,7 +1865,7 @@ gc_is_tracked(PyObject *module, PyObject *obj)
{
PyObject *result;
- if (_PyObject_IS_GC(obj) && _PyObject_GC_IS_TRACKED(obj))
+ if (_PyObject_IS_GC(obj) && _PyObject_GC_IS_TRACKED(obj))
result = Py_True;
else
result = Py_False;
@@ -1874,25 +1874,25 @@ gc_is_tracked(PyObject *module, PyObject *obj)
}
/*[clinic input]
-gc.is_finalized
-
- obj: object
- /
-
-Returns true if the object has been already finalized by the GC.
-[clinic start generated code]*/
-
-static PyObject *
-gc_is_finalized(PyObject *module, PyObject *obj)
-/*[clinic end generated code: output=e1516ac119a918ed input=201d0c58f69ae390]*/
-{
- if (_PyObject_IS_GC(obj) && _PyGCHead_FINALIZED(AS_GC(obj))) {
- Py_RETURN_TRUE;
- }
- Py_RETURN_FALSE;
-}
-
-/*[clinic input]
+gc.is_finalized
+
+ obj: object
+ /
+
+Returns true if the object has been already finalized by the GC.
+[clinic start generated code]*/
+
+static PyObject *
+gc_is_finalized(PyObject *module, PyObject *obj)
+/*[clinic end generated code: output=e1516ac119a918ed input=201d0c58f69ae390]*/
+{
+ if (_PyObject_IS_GC(obj) && _PyGCHead_FINALIZED(AS_GC(obj))) {
+ Py_RETURN_TRUE;
+ }
+ Py_RETURN_FALSE;
+}
+
+/*[clinic input]
gc.freeze
Freeze all current tracked objects and ignore them for future collections.
@@ -1906,11 +1906,11 @@ static PyObject *
gc_freeze_impl(PyObject *module)
/*[clinic end generated code: output=502159d9cdc4c139 input=b602b16ac5febbe5]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
for (int i = 0; i < NUM_GENERATIONS; ++i) {
- gc_list_merge(GEN_HEAD(gcstate, i), &gcstate->permanent_generation.head);
- gcstate->generations[i].count = 0;
+ gc_list_merge(GEN_HEAD(gcstate, i), &gcstate->permanent_generation.head);
+ gcstate->generations[i].count = 0;
}
Py_RETURN_NONE;
}
@@ -1927,10 +1927,10 @@ static PyObject *
gc_unfreeze_impl(PyObject *module)
/*[clinic end generated code: output=1c15f2043b25e169 input=2dd52b170f4cef6c]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- gc_list_merge(&gcstate->permanent_generation.head,
- GEN_HEAD(gcstate, NUM_GENERATIONS-1));
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ gc_list_merge(&gcstate->permanent_generation.head,
+ GEN_HEAD(gcstate, NUM_GENERATIONS-1));
Py_RETURN_NONE;
}
@@ -1944,9 +1944,9 @@ static Py_ssize_t
gc_get_freeze_count_impl(PyObject *module)
/*[clinic end generated code: output=61cbd9f43aa032e1 input=45ffbc65cfe2a6ed]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- return gc_list_size(&gcstate->permanent_generation.head);
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ return gc_list_size(&gcstate->permanent_generation.head);
}
@@ -1965,7 +1965,7 @@ PyDoc_STRVAR(gc__doc__,
"get_threshold() -- Return the current the collection thresholds.\n"
"get_objects() -- Return a list of all objects tracked by the collector.\n"
"is_tracked() -- Returns true if a given object is tracked.\n"
-"is_finalized() -- Returns true if a given object has been already finalized.\n"
+"is_finalized() -- Returns true if a given object has been already finalized.\n"
"get_referrers() -- Return the list of objects that refer to an object.\n"
"get_referents() -- Return the list of objects that an object refers to.\n"
"freeze() -- Freeze all tracked objects and ignore them for future collections.\n"
@@ -1979,13 +1979,13 @@ static PyMethodDef GcMethods[] = {
GC_SET_DEBUG_METHODDEF
GC_GET_DEBUG_METHODDEF
GC_GET_COUNT_METHODDEF
- {"set_threshold", gc_set_threshold, METH_VARARGS, gc_set_thresh__doc__},
+ {"set_threshold", gc_set_threshold, METH_VARARGS, gc_set_thresh__doc__},
GC_GET_THRESHOLD_METHODDEF
GC_COLLECT_METHODDEF
GC_GET_OBJECTS_METHODDEF
GC_GET_STATS_METHODDEF
GC_IS_TRACKED_METHODDEF
- GC_IS_FINALIZED_METHODDEF
+ GC_IS_FINALIZED_METHODDEF
{"get_referrers", gc_get_referrers, METH_VARARGS,
gc_get_referrers__doc__},
{"get_referents", gc_get_referents, METH_VARARGS,
@@ -2011,38 +2011,38 @@ static struct PyModuleDef gcmodule = {
PyMODINIT_FUNC
PyInit_gc(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
- PyObject *m = PyModule_Create(&gcmodule);
+ PyObject *m = PyModule_Create(&gcmodule);
- if (m == NULL) {
+ if (m == NULL) {
return NULL;
- }
+ }
- if (gcstate->garbage == NULL) {
- gcstate->garbage = PyList_New(0);
- if (gcstate->garbage == NULL) {
+ if (gcstate->garbage == NULL) {
+ gcstate->garbage = PyList_New(0);
+ if (gcstate->garbage == NULL) {
return NULL;
- }
+ }
}
- Py_INCREF(gcstate->garbage);
- if (PyModule_AddObject(m, "garbage", gcstate->garbage) < 0) {
+ Py_INCREF(gcstate->garbage);
+ if (PyModule_AddObject(m, "garbage", gcstate->garbage) < 0) {
return NULL;
- }
+ }
- if (gcstate->callbacks == NULL) {
- gcstate->callbacks = PyList_New(0);
- if (gcstate->callbacks == NULL) {
+ if (gcstate->callbacks == NULL) {
+ gcstate->callbacks = PyList_New(0);
+ if (gcstate->callbacks == NULL) {
return NULL;
- }
+ }
}
- Py_INCREF(gcstate->callbacks);
- if (PyModule_AddObject(m, "callbacks", gcstate->callbacks) < 0) {
+ Py_INCREF(gcstate->callbacks);
+ if (PyModule_AddObject(m, "callbacks", gcstate->callbacks) < 0) {
return NULL;
- }
+ }
-#define ADD_INT(NAME) if (PyModule_AddIntConstant(m, #NAME, NAME) < 0) { return NULL; }
+#define ADD_INT(NAME) if (PyModule_AddIntConstant(m, #NAME, NAME) < 0) { return NULL; }
ADD_INT(DEBUG_STATS);
ADD_INT(DEBUG_COLLECTABLE);
ADD_INT(DEBUG_UNCOLLECTABLE);
@@ -2056,25 +2056,25 @@ PyInit_gc(void)
Py_ssize_t
PyGC_Collect(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
-
- if (!gcstate->enabled) {
- return 0;
- }
-
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+
+ if (!gcstate->enabled) {
+ return 0;
+ }
+
Py_ssize_t n;
- if (gcstate->collecting) {
- /* already collecting, don't do anything */
- n = 0;
- }
+ if (gcstate->collecting) {
+ /* already collecting, don't do anything */
+ n = 0;
+ }
else {
PyObject *exc, *value, *tb;
- gcstate->collecting = 1;
- _PyErr_Fetch(tstate, &exc, &value, &tb);
- n = collect_with_callback(tstate, NUM_GENERATIONS - 1);
- _PyErr_Restore(tstate, exc, value, tb);
- gcstate->collecting = 0;
+ gcstate->collecting = 1;
+ _PyErr_Fetch(tstate, &exc, &value, &tb);
+ n = collect_with_callback(tstate, NUM_GENERATIONS - 1);
+ _PyErr_Restore(tstate, exc, value, tb);
+ gcstate->collecting = 0;
}
return n;
@@ -2089,10 +2089,10 @@ _PyGC_CollectIfEnabled(void)
Py_ssize_t
_PyGC_CollectNoFail(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- assert(!_PyErr_Occurred(tstate));
-
- GCState *gcstate = &tstate->interp->gc;
+ PyThreadState *tstate = _PyThreadState_GET();
+ assert(!_PyErr_Occurred(tstate));
+
+ GCState *gcstate = &tstate->interp->gc;
Py_ssize_t n;
/* Ideally, this function is only called on interpreter shutdown,
@@ -2101,25 +2101,25 @@ _PyGC_CollectNoFail(void)
during interpreter shutdown (and then never finish it).
See http://bugs.python.org/issue8713#msg195178 for an example.
*/
- if (gcstate->collecting) {
+ if (gcstate->collecting) {
n = 0;
- }
+ }
else {
- gcstate->collecting = 1;
- n = collect(tstate, NUM_GENERATIONS - 1, NULL, NULL, 1);
- gcstate->collecting = 0;
+ gcstate->collecting = 1;
+ n = collect(tstate, NUM_GENERATIONS - 1, NULL, NULL, 1);
+ gcstate->collecting = 0;
}
return n;
}
void
-_PyGC_DumpShutdownStats(PyThreadState *tstate)
+_PyGC_DumpShutdownStats(PyThreadState *tstate)
{
- GCState *gcstate = &tstate->interp->gc;
- if (!(gcstate->debug & DEBUG_SAVEALL)
- && gcstate->garbage != NULL && PyList_GET_SIZE(gcstate->garbage) > 0) {
+ GCState *gcstate = &tstate->interp->gc;
+ if (!(gcstate->debug & DEBUG_SAVEALL)
+ && gcstate->garbage != NULL && PyList_GET_SIZE(gcstate->garbage) > 0) {
const char *message;
- if (gcstate->debug & DEBUG_UNCOLLECTABLE)
+ if (gcstate->debug & DEBUG_UNCOLLECTABLE)
message = "gc: %zd uncollectable objects at " \
"shutdown";
else
@@ -2130,13 +2130,13 @@ _PyGC_DumpShutdownStats(PyThreadState *tstate)
already. */
if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0,
"gc", NULL, message,
- PyList_GET_SIZE(gcstate->garbage)))
+ PyList_GET_SIZE(gcstate->garbage)))
PyErr_WriteUnraisable(NULL);
- if (gcstate->debug & DEBUG_UNCOLLECTABLE) {
+ if (gcstate->debug & DEBUG_UNCOLLECTABLE) {
PyObject *repr = NULL, *bytes = NULL;
- repr = PyObject_Repr(gcstate->garbage);
+ repr = PyObject_Repr(gcstate->garbage);
if (!repr || !(bytes = PyUnicode_EncodeFSDefault(repr)))
- PyErr_WriteUnraisable(gcstate->garbage);
+ PyErr_WriteUnraisable(gcstate->garbage);
else {
PySys_WriteStderr(
" %s\n",
@@ -2149,36 +2149,36 @@ _PyGC_DumpShutdownStats(PyThreadState *tstate)
}
}
-
-static void
-gc_fini_untrack(PyGC_Head *list)
-{
- PyGC_Head *gc;
- for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(list)) {
- PyObject *op = FROM_GC(gc);
- _PyObject_GC_UNTRACK(op);
- }
-}
-
-
+
+static void
+gc_fini_untrack(PyGC_Head *list)
+{
+ PyGC_Head *gc;
+ for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(list)) {
+ PyObject *op = FROM_GC(gc);
+ _PyObject_GC_UNTRACK(op);
+ }
+}
+
+
void
-_PyGC_Fini(PyThreadState *tstate)
-{
- GCState *gcstate = &tstate->interp->gc;
- Py_CLEAR(gcstate->garbage);
- Py_CLEAR(gcstate->callbacks);
-
- if (!_Py_IsMainInterpreter(tstate)) {
- // bpo-46070: Explicitly untrack all objects currently tracked by the
- // GC. Otherwise, if an object is used later by another interpreter,
- // calling PyObject_GC_UnTrack() on the object crashs if the previous
- // or the next object of the PyGC_Head structure became a dangling
- // pointer.
- for (int i = 0; i < NUM_GENERATIONS; i++) {
- PyGC_Head *gen = GEN_HEAD(gcstate, i);
- gc_fini_untrack(gen);
- }
- }
+_PyGC_Fini(PyThreadState *tstate)
+{
+ GCState *gcstate = &tstate->interp->gc;
+ Py_CLEAR(gcstate->garbage);
+ Py_CLEAR(gcstate->callbacks);
+
+ if (!_Py_IsMainInterpreter(tstate)) {
+ // bpo-46070: Explicitly untrack all objects currently tracked by the
+ // GC. Otherwise, if an object is used later by another interpreter,
+ // calling PyObject_GC_UnTrack() on the object crashs if the previous
+ // or the next object of the PyGC_Head structure became a dangling
+ // pointer.
+ for (int i = 0; i < NUM_GENERATIONS; i++) {
+ PyGC_Head *gen = GEN_HEAD(gcstate, i);
+ gc_fini_untrack(gen);
+ }
+ }
}
/* for debugging */
@@ -2188,97 +2188,97 @@ _PyGC_Dump(PyGC_Head *g)
_PyObject_Dump(FROM_GC(g));
}
-
-#ifdef Py_DEBUG
-static int
-visit_validate(PyObject *op, void *parent_raw)
-{
- PyObject *parent = _PyObject_CAST(parent_raw);
- if (_PyObject_IsFreed(op)) {
- _PyObject_ASSERT_FAILED_MSG(parent,
- "PyObject_GC_Track() object is not valid");
- }
- return 0;
-}
-#endif
-
-
+
+#ifdef Py_DEBUG
+static int
+visit_validate(PyObject *op, void *parent_raw)
+{
+ PyObject *parent = _PyObject_CAST(parent_raw);
+ if (_PyObject_IsFreed(op)) {
+ _PyObject_ASSERT_FAILED_MSG(parent,
+ "PyObject_GC_Track() object is not valid");
+ }
+ return 0;
+}
+#endif
+
+
/* extension modules might be compiled with GC support so these
functions must always be available */
void
-PyObject_GC_Track(void *op_raw)
-{
- PyObject *op = _PyObject_CAST(op_raw);
- if (_PyObject_GC_IS_TRACKED(op)) {
- _PyObject_ASSERT_FAILED_MSG(op,
- "object already tracked "
- "by the garbage collector");
- }
+PyObject_GC_Track(void *op_raw)
+{
+ PyObject *op = _PyObject_CAST(op_raw);
+ if (_PyObject_GC_IS_TRACKED(op)) {
+ _PyObject_ASSERT_FAILED_MSG(op,
+ "object already tracked "
+ "by the garbage collector");
+ }
_PyObject_GC_TRACK(op);
-
-#ifdef Py_DEBUG
- /* Check that the object is valid: validate objects traversed
- by tp_traverse() */
- traverseproc traverse = Py_TYPE(op)->tp_traverse;
- (void)traverse(op, visit_validate, op);
-#endif
+
+#ifdef Py_DEBUG
+ /* Check that the object is valid: validate objects traversed
+ by tp_traverse() */
+ traverseproc traverse = Py_TYPE(op)->tp_traverse;
+ (void)traverse(op, visit_validate, op);
+#endif
}
void
-PyObject_GC_UnTrack(void *op_raw)
+PyObject_GC_UnTrack(void *op_raw)
{
- PyObject *op = _PyObject_CAST(op_raw);
+ PyObject *op = _PyObject_CAST(op_raw);
/* Obscure: the Py_TRASHCAN mechanism requires that we be able to
* call PyObject_GC_UnTrack twice on an object.
*/
- if (_PyObject_GC_IS_TRACKED(op)) {
+ if (_PyObject_GC_IS_TRACKED(op)) {
_PyObject_GC_UNTRACK(op);
- }
+ }
+}
+
+int
+PyObject_IS_GC(PyObject *obj)
+{
+ return _PyObject_IS_GC(obj);
}
-int
-PyObject_IS_GC(PyObject *obj)
-{
- return _PyObject_IS_GC(obj);
-}
-
static PyObject *
_PyObject_GC_Alloc(int use_calloc, size_t basicsize)
{
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- if (basicsize > PY_SSIZE_T_MAX - sizeof(PyGC_Head)) {
- return _PyErr_NoMemory(tstate);
- }
- size_t size = sizeof(PyGC_Head) + basicsize;
-
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ if (basicsize > PY_SSIZE_T_MAX - sizeof(PyGC_Head)) {
+ return _PyErr_NoMemory(tstate);
+ }
+ size_t size = sizeof(PyGC_Head) + basicsize;
+
PyGC_Head *g;
- if (use_calloc) {
+ if (use_calloc) {
g = (PyGC_Head *)PyObject_Calloc(1, size);
- }
- else {
+ }
+ else {
g = (PyGC_Head *)PyObject_Malloc(size);
- }
- if (g == NULL) {
- return _PyErr_NoMemory(tstate);
- }
- assert(((uintptr_t)g & 3) == 0); // g must be aligned 4bytes boundary
-
- g->_gc_next = 0;
- g->_gc_prev = 0;
- gcstate->generations[0].count++; /* number of allocated GC objects */
- if (gcstate->generations[0].count > gcstate->generations[0].threshold &&
- gcstate->enabled &&
- gcstate->generations[0].threshold &&
- !gcstate->collecting &&
- !_PyErr_Occurred(tstate))
- {
- gcstate->collecting = 1;
- collect_generations(tstate);
- gcstate->collecting = 0;
- }
- PyObject *op = FROM_GC(g);
+ }
+ if (g == NULL) {
+ return _PyErr_NoMemory(tstate);
+ }
+ assert(((uintptr_t)g & 3) == 0); // g must be aligned 4bytes boundary
+
+ g->_gc_next = 0;
+ g->_gc_prev = 0;
+ gcstate->generations[0].count++; /* number of allocated GC objects */
+ if (gcstate->generations[0].count > gcstate->generations[0].threshold &&
+ gcstate->enabled &&
+ gcstate->generations[0].threshold &&
+ !gcstate->collecting &&
+ !_PyErr_Occurred(tstate))
+ {
+ gcstate->collecting = 1;
+ collect_generations(tstate);
+ gcstate->collecting = 0;
+ }
+ PyObject *op = FROM_GC(g);
return op;
}
@@ -2324,17 +2324,17 @@ PyVarObject *
_PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems)
{
const size_t basicsize = _PyObject_VAR_SIZE(Py_TYPE(op), nitems);
- _PyObject_ASSERT((PyObject *)op, !_PyObject_GC_IS_TRACKED(op));
- if (basicsize > PY_SSIZE_T_MAX - sizeof(PyGC_Head)) {
- return (PyVarObject *)PyErr_NoMemory();
- }
-
+ _PyObject_ASSERT((PyObject *)op, !_PyObject_GC_IS_TRACKED(op));
+ if (basicsize > PY_SSIZE_T_MAX - sizeof(PyGC_Head)) {
+ return (PyVarObject *)PyErr_NoMemory();
+ }
+
PyGC_Head *g = AS_GC(op);
g = (PyGC_Head *)PyObject_REALLOC(g, sizeof(PyGC_Head) + basicsize);
if (g == NULL)
return (PyVarObject *)PyErr_NoMemory();
op = (PyVarObject *) FROM_GC(g);
- Py_SET_SIZE(op, nitems);
+ Py_SET_SIZE(op, nitems);
return op;
}
@@ -2342,31 +2342,31 @@ void
PyObject_GC_Del(void *op)
{
PyGC_Head *g = AS_GC(op);
- if (_PyObject_GC_IS_TRACKED(op)) {
+ if (_PyObject_GC_IS_TRACKED(op)) {
gc_list_remove(g);
}
- PyThreadState *tstate = _PyThreadState_GET();
- GCState *gcstate = &tstate->interp->gc;
- if (gcstate->generations[0].count > 0) {
- gcstate->generations[0].count--;
- }
+ PyThreadState *tstate = _PyThreadState_GET();
+ GCState *gcstate = &tstate->interp->gc;
+ if (gcstate->generations[0].count > 0) {
+ gcstate->generations[0].count--;
+ }
PyObject_FREE(g);
}
-
-int
-PyObject_GC_IsTracked(PyObject* obj)
-{
- if (_PyObject_IS_GC(obj) && _PyObject_GC_IS_TRACKED(obj)) {
- return 1;
- }
- return 0;
-}
-
-int
-PyObject_GC_IsFinalized(PyObject *obj)
-{
- if (_PyObject_IS_GC(obj) && _PyGCHead_FINALIZED(AS_GC(obj))) {
- return 1;
- }
- return 0;
-}
+
+int
+PyObject_GC_IsTracked(PyObject* obj)
+{
+ if (_PyObject_IS_GC(obj) && _PyObject_GC_IS_TRACKED(obj)) {
+ return 1;
+ }
+ return 0;
+}
+
+int
+PyObject_GC_IsFinalized(PyObject *obj)
+{
+ if (_PyObject_IS_GC(obj) && _PyGCHead_FINALIZED(AS_GC(obj))) {
+ return 1;
+ }
+ return 0;
+}
diff --git a/contrib/tools/python3/src/Modules/getbuildinfo.c b/contrib/tools/python3/src/Modules/getbuildinfo.c
index 61f9ca4bcb..7cb7397a22 100644
--- a/contrib/tools/python3/src/Modules/getbuildinfo.c
+++ b/contrib/tools/python3/src/Modules/getbuildinfo.c
@@ -40,9 +40,9 @@ Py_GetBuildInfo(void)
const char *revision = _Py_gitversion();
const char *sep = *revision ? ":" : "";
const char *gitid = _Py_gitidentifier();
- if (!(*gitid)) {
- gitid = "main";
- }
+ if (!(*gitid)) {
+ gitid = "main";
+ }
PyOS_snprintf(buildinfo, sizeof(buildinfo),
"%s%s%s, %.20s, %.9s", gitid, sep, revision,
DATE, TIME);
diff --git a/contrib/tools/python3/src/Modules/getpath.c b/contrib/tools/python3/src/Modules/getpath.c
index ef3fd5a6ce..5014dde930 100644
--- a/contrib/tools/python3/src/Modules/getpath.c
+++ b/contrib/tools/python3/src/Modules/getpath.c
@@ -2,10 +2,10 @@
/* Return the initial module search path. */
#include "Python.h"
-#include "pycore_fileutils.h"
-#include "pycore_initconfig.h"
-#include "pycore_pathconfig.h"
-#include "osdefs.h" // DELIM
+#include "pycore_fileutils.h"
+#include "pycore_initconfig.h"
+#include "pycore_pathconfig.h"
+#include "osdefs.h" // DELIM
#include <sys/types.h>
#include <string.h>
@@ -95,7 +95,7 @@
* process to find the installed Python tree.
*
* An embedding application can use Py_SetPath() to override all of
- * these automatic path computations.
+ * these automatic path computations.
*
* NOTE: Windows MSVC builds use PC/getpathp.c instead!
*/
@@ -105,45 +105,45 @@ extern "C" {
#endif
-#if (!defined(PREFIX) || !defined(EXEC_PREFIX) \
- || !defined(VERSION) || !defined(VPATH))
-#error "PREFIX, EXEC_PREFIX, VERSION and VPATH macros must be defined"
+#if (!defined(PREFIX) || !defined(EXEC_PREFIX) \
+ || !defined(VERSION) || !defined(VPATH))
+#error "PREFIX, EXEC_PREFIX, VERSION and VPATH macros must be defined"
#endif
#ifndef LANDMARK
#define LANDMARK L"os.py"
#endif
-#define BUILD_LANDMARK L"Modules/Setup.local"
-
+#define BUILD_LANDMARK L"Modules/Setup.local"
+
#define DECODE_LOCALE_ERR(NAME, LEN) \
((LEN) == (size_t)-2) \
- ? _PyStatus_ERR("cannot decode " NAME) \
- : _PyStatus_NO_MEMORY()
+ ? _PyStatus_ERR("cannot decode " NAME) \
+ : _PyStatus_NO_MEMORY()
+
+#define PATHLEN_ERR() _PyStatus_ERR("path configuration: path too long")
-#define PATHLEN_ERR() _PyStatus_ERR("path configuration: path too long")
-
typedef struct {
wchar_t *path_env; /* PATH environment variable */
- wchar_t *pythonpath_macro; /* PYTHONPATH macro */
- wchar_t *prefix_macro; /* PREFIX macro */
- wchar_t *exec_prefix_macro; /* EXEC_PREFIX macro */
- wchar_t *vpath_macro; /* VPATH macro */
+ wchar_t *pythonpath_macro; /* PYTHONPATH macro */
+ wchar_t *prefix_macro; /* PREFIX macro */
+ wchar_t *exec_prefix_macro; /* EXEC_PREFIX macro */
+ wchar_t *vpath_macro; /* VPATH macro */
- wchar_t *lib_python; /* <platlibdir> / "pythonX.Y" */
+ wchar_t *lib_python; /* <platlibdir> / "pythonX.Y" */
int prefix_found; /* found platform independent libraries? */
int exec_prefix_found; /* found the platform dependent libraries? */
-
- int warnings;
- const wchar_t *pythonpath_env;
- const wchar_t *platlibdir;
-
- wchar_t *argv0_path;
- wchar_t *zip_path;
- wchar_t *prefix;
- wchar_t *exec_prefix;
+
+ int warnings;
+ const wchar_t *pythonpath_env;
+ const wchar_t *platlibdir;
+
+ wchar_t *argv0_path;
+ wchar_t *zip_path;
+ wchar_t *prefix;
+ wchar_t *exec_prefix;
} PyCalculatePath;
static const wchar_t delimiter[2] = {DELIM, '\0'};
@@ -171,16 +171,16 @@ static void
reduce(wchar_t *dir)
{
size_t i = wcslen(dir);
- while (i > 0 && dir[i] != SEP) {
+ while (i > 0 && dir[i] != SEP) {
--i;
- }
+ }
dir[i] = '\0';
}
-/* Is file, not directory */
+/* Is file, not directory */
static int
-isfile(const wchar_t *filename)
+isfile(const wchar_t *filename)
{
struct stat buf;
if (_Py_wstat(filename, &buf) != 0) {
@@ -195,7 +195,7 @@ isfile(const wchar_t *filename)
/* Is executable file */
static int
-isxfile(const wchar_t *filename)
+isxfile(const wchar_t *filename)
{
struct stat buf;
if (_Py_wstat(filename, &buf) != 0) {
@@ -213,7 +213,7 @@ isxfile(const wchar_t *filename)
/* Is directory */
static int
-isdir(const wchar_t *filename)
+isdir(const wchar_t *filename)
{
struct stat buf;
if (_Py_wstat(filename, &buf) != 0) {
@@ -227,219 +227,219 @@ isdir(const wchar_t *filename)
/* Add a path component, by appending stuff to buffer.
- buflen: 'buffer' length in characters including trailing NUL.
-
- If path2 is empty:
-
- - if path doesn't end with SEP and is not empty, add SEP to path
- - otherwise, do nothing. */
-static PyStatus
-joinpath(wchar_t *path, const wchar_t *path2, size_t path_len)
+ buflen: 'buffer' length in characters including trailing NUL.
+
+ If path2 is empty:
+
+ - if path doesn't end with SEP and is not empty, add SEP to path
+ - otherwise, do nothing. */
+static PyStatus
+joinpath(wchar_t *path, const wchar_t *path2, size_t path_len)
{
- size_t n;
- if (!_Py_isabs(path2)) {
- n = wcslen(path);
- if (n >= path_len) {
- return PATHLEN_ERR();
- }
-
- if (n > 0 && path[n-1] != SEP) {
- path[n++] = SEP;
- }
- }
- else {
- n = 0;
- }
-
- size_t k = wcslen(path2);
- if (n + k >= path_len) {
- return PATHLEN_ERR();
- }
- wcsncpy(path + n, path2, k);
- path[n + k] = '\0';
-
- return _PyStatus_OK();
+ size_t n;
+ if (!_Py_isabs(path2)) {
+ n = wcslen(path);
+ if (n >= path_len) {
+ return PATHLEN_ERR();
+ }
+
+ if (n > 0 && path[n-1] != SEP) {
+ path[n++] = SEP;
+ }
+ }
+ else {
+ n = 0;
+ }
+
+ size_t k = wcslen(path2);
+ if (n + k >= path_len) {
+ return PATHLEN_ERR();
+ }
+ wcsncpy(path + n, path2, k);
+ path[n + k] = '\0';
+
+ return _PyStatus_OK();
+}
+
+
+static wchar_t*
+substring(const wchar_t *str, size_t len)
+{
+ wchar_t *substr = PyMem_RawMalloc((len + 1) * sizeof(wchar_t));
+ if (substr == NULL) {
+ return NULL;
+ }
+
+ if (len) {
+ memcpy(substr, str, len * sizeof(wchar_t));
+ }
+ substr[len] = L'\0';
+ return substr;
+}
+
+
+static wchar_t*
+joinpath2(const wchar_t *path, const wchar_t *path2)
+{
+ if (_Py_isabs(path2)) {
+ return _PyMem_RawWcsdup(path2);
+ }
+
+ size_t len = wcslen(path);
+ int add_sep = (len > 0 && path[len - 1] != SEP);
+ len += add_sep;
+ len += wcslen(path2);
+
+ wchar_t *new_path = PyMem_RawCalloc(sizeof(wchar_t), (len + 1));
+ if (new_path == NULL) {
+ return NULL;
+ }
+
+ wcscpy(new_path, path);
+ if (add_sep) {
+ wcscat(new_path, separator);
+ }
+ wcscat(new_path, path2);
+ return new_path;
+}
+
+
+static inline int
+safe_wcscpy(wchar_t *dst, const wchar_t *src, size_t n)
+{
+ size_t srclen = wcslen(src);
+ if (n <= srclen) {
+ dst[0] = L'\0';
+ return -1;
+ }
+ memcpy(dst, src, (srclen + 1) * sizeof(wchar_t));
+ return 0;
}
-static wchar_t*
-substring(const wchar_t *str, size_t len)
-{
- wchar_t *substr = PyMem_RawMalloc((len + 1) * sizeof(wchar_t));
- if (substr == NULL) {
- return NULL;
- }
-
- if (len) {
- memcpy(substr, str, len * sizeof(wchar_t));
- }
- substr[len] = L'\0';
- return substr;
-}
-
-
-static wchar_t*
-joinpath2(const wchar_t *path, const wchar_t *path2)
-{
- if (_Py_isabs(path2)) {
- return _PyMem_RawWcsdup(path2);
- }
-
- size_t len = wcslen(path);
- int add_sep = (len > 0 && path[len - 1] != SEP);
- len += add_sep;
- len += wcslen(path2);
-
- wchar_t *new_path = PyMem_RawCalloc(sizeof(wchar_t), (len + 1));
- if (new_path == NULL) {
- return NULL;
- }
-
- wcscpy(new_path, path);
- if (add_sep) {
- wcscat(new_path, separator);
- }
- wcscat(new_path, path2);
- return new_path;
-}
-
-
-static inline int
-safe_wcscpy(wchar_t *dst, const wchar_t *src, size_t n)
-{
- size_t srclen = wcslen(src);
- if (n <= srclen) {
- dst[0] = L'\0';
- return -1;
- }
- memcpy(dst, src, (srclen + 1) * sizeof(wchar_t));
- return 0;
-}
-
-
/* copy_absolute requires that path be allocated at least
- 'abs_path_len' characters (including trailing NUL). */
-static PyStatus
-copy_absolute(wchar_t *abs_path, const wchar_t *path, size_t abs_path_len)
+ 'abs_path_len' characters (including trailing NUL). */
+static PyStatus
+copy_absolute(wchar_t *abs_path, const wchar_t *path, size_t abs_path_len)
{
- if (_Py_isabs(path)) {
- if (safe_wcscpy(abs_path, path, abs_path_len) < 0) {
- return PATHLEN_ERR();
- }
+ if (_Py_isabs(path)) {
+ if (safe_wcscpy(abs_path, path, abs_path_len) < 0) {
+ return PATHLEN_ERR();
+ }
}
else {
- if (!_Py_wgetcwd(abs_path, abs_path_len)) {
+ if (!_Py_wgetcwd(abs_path, abs_path_len)) {
/* unable to get the current directory */
- if (safe_wcscpy(abs_path, path, abs_path_len) < 0) {
- return PATHLEN_ERR();
- }
- return _PyStatus_OK();
+ if (safe_wcscpy(abs_path, path, abs_path_len) < 0) {
+ return PATHLEN_ERR();
+ }
+ return _PyStatus_OK();
+ }
+ if (path[0] == '.' && path[1] == SEP) {
+ path += 2;
}
- if (path[0] == '.' && path[1] == SEP) {
- path += 2;
+ PyStatus status = joinpath(abs_path, path, abs_path_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
- PyStatus status = joinpath(abs_path, path, abs_path_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
-/* path_len: path length in characters including trailing NUL */
-static PyStatus
-absolutize(wchar_t **path_p)
+/* path_len: path length in characters including trailing NUL */
+static PyStatus
+absolutize(wchar_t **path_p)
{
- assert(!_Py_isabs(*path_p));
-
- wchar_t abs_path[MAXPATHLEN+1];
- wchar_t *path = *path_p;
-
- PyStatus status = copy_absolute(abs_path, path, Py_ARRAY_LENGTH(abs_path));
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- PyMem_RawFree(*path_p);
- *path_p = _PyMem_RawWcsdup(abs_path);
- if (*path_p == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
+ assert(!_Py_isabs(*path_p));
+
+ wchar_t abs_path[MAXPATHLEN+1];
+ wchar_t *path = *path_p;
+
+ PyStatus status = copy_absolute(abs_path, path, Py_ARRAY_LENGTH(abs_path));
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ PyMem_RawFree(*path_p);
+ *path_p = _PyMem_RawWcsdup(abs_path);
+ if (*path_p == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
+}
+
+
+/* Is module -- check for .pyc too */
+static PyStatus
+ismodule(const wchar_t *path, int *result)
+{
+ wchar_t *filename = joinpath2(path, LANDMARK);
+ if (filename == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ if (isfile(filename)) {
+ PyMem_RawFree(filename);
+ *result = 1;
+ return _PyStatus_OK();
+ }
+
+ /* Check for the compiled version of prefix. */
+ size_t len = wcslen(filename);
+ wchar_t *pyc = PyMem_RawMalloc((len + 2) * sizeof(wchar_t));
+ if (pyc == NULL) {
+ PyMem_RawFree(filename);
+ return _PyStatus_NO_MEMORY();
+ }
+
+ memcpy(pyc, filename, len * sizeof(wchar_t));
+ pyc[len] = L'c';
+ pyc[len + 1] = L'\0';
+ *result = isfile(pyc);
+
+ PyMem_RawFree(filename);
+ PyMem_RawFree(pyc);
+
+ return _PyStatus_OK();
}
-/* Is module -- check for .pyc too */
-static PyStatus
-ismodule(const wchar_t *path, int *result)
-{
- wchar_t *filename = joinpath2(path, LANDMARK);
- if (filename == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- if (isfile(filename)) {
- PyMem_RawFree(filename);
- *result = 1;
- return _PyStatus_OK();
- }
-
- /* Check for the compiled version of prefix. */
- size_t len = wcslen(filename);
- wchar_t *pyc = PyMem_RawMalloc((len + 2) * sizeof(wchar_t));
- if (pyc == NULL) {
- PyMem_RawFree(filename);
- return _PyStatus_NO_MEMORY();
- }
-
- memcpy(pyc, filename, len * sizeof(wchar_t));
- pyc[len] = L'c';
- pyc[len + 1] = L'\0';
- *result = isfile(pyc);
-
- PyMem_RawFree(filename);
- PyMem_RawFree(pyc);
-
- return _PyStatus_OK();
-}
-
-
#if defined(__CYGWIN__) || defined(__MINGW32__)
#ifndef EXE_SUFFIX
#define EXE_SUFFIX L".exe"
#endif
-/* pathlen: 'path' length in characters including trailing NUL */
-static PyStatus
-add_exe_suffix(wchar_t **progpath_p)
+/* pathlen: 'path' length in characters including trailing NUL */
+static PyStatus
+add_exe_suffix(wchar_t **progpath_p)
{
- wchar_t *progpath = *progpath_p;
-
+ wchar_t *progpath = *progpath_p;
+
/* Check for already have an executable suffix */
size_t n = wcslen(progpath);
size_t s = wcslen(EXE_SUFFIX);
- if (wcsncasecmp(EXE_SUFFIX, progpath + n - s, s) == 0) {
- return _PyStatus_OK();
- }
-
- wchar_t *progpath2 = PyMem_RawMalloc((n + s + 1) * sizeof(wchar_t));
- if (progpath2 == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- memcpy(progpath2, progpath, n * sizeof(wchar_t));
- memcpy(progpath2 + n, EXE_SUFFIX, s * sizeof(wchar_t));
- progpath2[n+s] = L'\0';
-
- if (isxfile(progpath2)) {
- PyMem_RawFree(*progpath_p);
- *progpath_p = progpath2;
- }
- else {
- PyMem_RawFree(progpath2);
- }
- return _PyStatus_OK();
+ if (wcsncasecmp(EXE_SUFFIX, progpath + n - s, s) == 0) {
+ return _PyStatus_OK();
+ }
+
+ wchar_t *progpath2 = PyMem_RawMalloc((n + s + 1) * sizeof(wchar_t));
+ if (progpath2 == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ memcpy(progpath2, progpath, n * sizeof(wchar_t));
+ memcpy(progpath2 + n, EXE_SUFFIX, s * sizeof(wchar_t));
+ progpath2[n+s] = L'\0';
+
+ if (isxfile(progpath2)) {
+ PyMem_RawFree(*progpath_p);
+ *progpath_p = progpath2;
+ }
+ else {
+ PyMem_RawFree(progpath2);
+ }
+ return _PyStatus_OK();
}
#endif
@@ -447,163 +447,163 @@ add_exe_suffix(wchar_t **progpath_p)
/* search_for_prefix requires that argv0_path be no more than MAXPATHLEN
bytes long.
*/
-static PyStatus
-search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
- wchar_t *prefix, size_t prefix_len, int *found)
+static PyStatus
+search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ wchar_t *prefix, size_t prefix_len, int *found)
{
- PyStatus status;
-
+ PyStatus status;
+
/* If PYTHONHOME is set, we believe it unconditionally */
- if (pathconfig->home) {
- /* Path: <home> / <lib_python> */
- if (safe_wcscpy(prefix, pathconfig->home, prefix_len) < 0) {
- return PATHLEN_ERR();
- }
+ if (pathconfig->home) {
+ /* Path: <home> / <lib_python> */
+ if (safe_wcscpy(prefix, pathconfig->home, prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
wchar_t *delim = wcschr(prefix, DELIM);
if (delim) {
*delim = L'\0';
}
- status = joinpath(prefix, calculate->lib_python, prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- *found = 1;
- return _PyStatus_OK();
- }
-
- /* Check to see if argv0_path is in the build directory
-
- Path: <argv0_path> / <BUILD_LANDMARK define> */
- wchar_t *path = joinpath2(calculate->argv0_path, BUILD_LANDMARK);
- if (path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- int is_build_dir = isfile(path);
- PyMem_RawFree(path);
-
- if (is_build_dir) {
- /* argv0_path is the build directory (BUILD_LANDMARK exists),
- now also check LANDMARK using ismodule(). */
-
- /* Path: <argv0_path> / <VPATH macro> / Lib */
- /* or if VPATH is empty: <argv0_path> / Lib */
- if (safe_wcscpy(prefix, calculate->argv0_path, prefix_len) < 0) {
- return PATHLEN_ERR();
- }
-
- status = joinpath(prefix, calculate->vpath_macro, prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = joinpath(prefix, L"Lib", prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- int module;
- status = ismodule(prefix, &module);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- if (module) {
- /* BUILD_LANDMARK and LANDMARK found */
- *found = -1;
- return _PyStatus_OK();
- }
+ status = joinpath(prefix, calculate->lib_python, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ *found = 1;
+ return _PyStatus_OK();
+ }
+
+ /* Check to see if argv0_path is in the build directory
+
+ Path: <argv0_path> / <BUILD_LANDMARK define> */
+ wchar_t *path = joinpath2(calculate->argv0_path, BUILD_LANDMARK);
+ if (path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ int is_build_dir = isfile(path);
+ PyMem_RawFree(path);
+
+ if (is_build_dir) {
+ /* argv0_path is the build directory (BUILD_LANDMARK exists),
+ now also check LANDMARK using ismodule(). */
+
+ /* Path: <argv0_path> / <VPATH macro> / Lib */
+ /* or if VPATH is empty: <argv0_path> / Lib */
+ if (safe_wcscpy(prefix, calculate->argv0_path, prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
+
+ status = joinpath(prefix, calculate->vpath_macro, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = joinpath(prefix, L"Lib", prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ int module;
+ status = ismodule(prefix, &module);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ if (module) {
+ /* BUILD_LANDMARK and LANDMARK found */
+ *found = -1;
+ return _PyStatus_OK();
+ }
}
/* Search from argv0_path, until root is found */
- status = copy_absolute(prefix, calculate->argv0_path, prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
+ status = copy_absolute(prefix, calculate->argv0_path, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
do {
- /* Path: <argv0_path or substring> / <lib_python> / LANDMARK */
- size_t n = wcslen(prefix);
- status = joinpath(prefix, calculate->lib_python, prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- int module;
- status = ismodule(prefix, &module);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- if (module) {
- *found = 1;
- return _PyStatus_OK();
- }
+ /* Path: <argv0_path or substring> / <lib_python> / LANDMARK */
+ size_t n = wcslen(prefix);
+ status = joinpath(prefix, calculate->lib_python, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ int module;
+ status = ismodule(prefix, &module);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ if (module) {
+ *found = 1;
+ return _PyStatus_OK();
+ }
prefix[n] = L'\0';
reduce(prefix);
} while (prefix[0]);
- /* Look at configure's PREFIX.
- Path: <PREFIX macro> / <lib_python> / LANDMARK */
- if (safe_wcscpy(prefix, calculate->prefix_macro, prefix_len) < 0) {
- return PATHLEN_ERR();
- }
- status = joinpath(prefix, calculate->lib_python, prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- int module;
- status = ismodule(prefix, &module);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- if (module) {
- *found = 1;
- return _PyStatus_OK();
- }
-
+ /* Look at configure's PREFIX.
+ Path: <PREFIX macro> / <lib_python> / LANDMARK */
+ if (safe_wcscpy(prefix, calculate->prefix_macro, prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
+ status = joinpath(prefix, calculate->lib_python, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ int module;
+ status = ismodule(prefix, &module);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ if (module) {
+ *found = 1;
+ return _PyStatus_OK();
+ }
+
/* Fail */
- *found = 0;
- return _PyStatus_OK();
+ *found = 0;
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+static PyStatus
+calculate_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
{
- wchar_t prefix[MAXPATHLEN+1];
- memset(prefix, 0, sizeof(prefix));
- size_t prefix_len = Py_ARRAY_LENGTH(prefix);
-
- PyStatus status;
- status = search_for_prefix(calculate, pathconfig,
- prefix, prefix_len,
- &calculate->prefix_found);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
+ wchar_t prefix[MAXPATHLEN+1];
+ memset(prefix, 0, sizeof(prefix));
+ size_t prefix_len = Py_ARRAY_LENGTH(prefix);
+
+ PyStatus status;
+ status = search_for_prefix(calculate, pathconfig,
+ prefix, prefix_len,
+ &calculate->prefix_found);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
if (!calculate->prefix_found) {
- if (calculate->warnings) {
+ if (calculate->warnings) {
fprintf(stderr,
"Could not find platform independent libraries <prefix>\n");
}
-
- calculate->prefix = joinpath2(calculate->prefix_macro,
- calculate->lib_python);
- }
- else {
- calculate->prefix = _PyMem_RawWcsdup(prefix);
- }
-
- if (calculate->prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
+
+ calculate->prefix = joinpath2(calculate->prefix_macro,
+ calculate->lib_python);
+ }
+ else {
+ calculate->prefix = _PyMem_RawWcsdup(prefix);
+ }
+
+ if (calculate->prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_set_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+static PyStatus
+calculate_set_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
{
/* Reduce prefix and exec_prefix to their essence,
* e.g. /usr/local/lib/python1.5 is reduced to /usr/local.
@@ -611,756 +611,756 @@ calculate_set_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
* return the compiled-in defaults instead.
*/
if (calculate->prefix_found > 0) {
- wchar_t *prefix = _PyMem_RawWcsdup(calculate->prefix);
- if (prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
+ wchar_t *prefix = _PyMem_RawWcsdup(calculate->prefix);
+ if (prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
reduce(prefix);
reduce(prefix);
- if (prefix[0]) {
- pathconfig->prefix = prefix;
- }
- else {
- PyMem_RawFree(prefix);
-
- /* The prefix is the root directory, but reduce() chopped
- off the "/". */
- pathconfig->prefix = _PyMem_RawWcsdup(separator);
- if (pathconfig->prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
+ if (prefix[0]) {
+ pathconfig->prefix = prefix;
+ }
+ else {
+ PyMem_RawFree(prefix);
+
+ /* The prefix is the root directory, but reduce() chopped
+ off the "/". */
+ pathconfig->prefix = _PyMem_RawWcsdup(separator);
+ if (pathconfig->prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
}
else {
- pathconfig->prefix = _PyMem_RawWcsdup(calculate->prefix_macro);
- if (pathconfig->prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
+ pathconfig->prefix = _PyMem_RawWcsdup(calculate->prefix_macro);
+ if (pathconfig->prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+calculate_pybuilddir(const wchar_t *argv0_path,
+ wchar_t *exec_prefix, size_t exec_prefix_len,
+ int *found)
+{
+ PyStatus status;
+
+ /* Check to see if argv[0] is in the build directory. "pybuilddir.txt"
+ is written by setup.py and contains the relative path to the location
+ of shared library modules.
+
+ Filename: <argv0_path> / "pybuilddir.txt" */
+ wchar_t *filename = joinpath2(argv0_path, L"pybuilddir.txt");
+ if (filename == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ FILE *fp = _Py_wfopen(filename, L"rb");
+ PyMem_RawFree(filename);
+ if (fp == NULL) {
+ errno = 0;
+ return _PyStatus_OK();
+ }
+
+ char buf[MAXPATHLEN + 1];
+ size_t n = fread(buf, 1, Py_ARRAY_LENGTH(buf) - 1, fp);
+ buf[n] = '\0';
+ fclose(fp);
+
+ size_t dec_len;
+ wchar_t *pybuilddir = _Py_DecodeUTF8_surrogateescape(buf, n, &dec_len);
+ if (!pybuilddir) {
+ return DECODE_LOCALE_ERR("pybuilddir.txt", dec_len);
}
- return _PyStatus_OK();
+
+ /* Path: <argv0_path> / <pybuilddir content> */
+ if (safe_wcscpy(exec_prefix, argv0_path, exec_prefix_len) < 0) {
+ PyMem_RawFree(pybuilddir);
+ return PATHLEN_ERR();
+ }
+ status = joinpath(exec_prefix, pybuilddir, exec_prefix_len);
+ PyMem_RawFree(pybuilddir);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ *found = -1;
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_pybuilddir(const wchar_t *argv0_path,
- wchar_t *exec_prefix, size_t exec_prefix_len,
- int *found)
-{
- PyStatus status;
-
- /* Check to see if argv[0] is in the build directory. "pybuilddir.txt"
- is written by setup.py and contains the relative path to the location
- of shared library modules.
-
- Filename: <argv0_path> / "pybuilddir.txt" */
- wchar_t *filename = joinpath2(argv0_path, L"pybuilddir.txt");
- if (filename == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- FILE *fp = _Py_wfopen(filename, L"rb");
- PyMem_RawFree(filename);
- if (fp == NULL) {
- errno = 0;
- return _PyStatus_OK();
- }
-
- char buf[MAXPATHLEN + 1];
- size_t n = fread(buf, 1, Py_ARRAY_LENGTH(buf) - 1, fp);
- buf[n] = '\0';
- fclose(fp);
-
- size_t dec_len;
- wchar_t *pybuilddir = _Py_DecodeUTF8_surrogateescape(buf, n, &dec_len);
- if (!pybuilddir) {
- return DECODE_LOCALE_ERR("pybuilddir.txt", dec_len);
- }
-
- /* Path: <argv0_path> / <pybuilddir content> */
- if (safe_wcscpy(exec_prefix, argv0_path, exec_prefix_len) < 0) {
- PyMem_RawFree(pybuilddir);
- return PATHLEN_ERR();
- }
- status = joinpath(exec_prefix, pybuilddir, exec_prefix_len);
- PyMem_RawFree(pybuilddir);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- *found = -1;
- return _PyStatus_OK();
-}
-
-
/* search_for_exec_prefix requires that argv0_path be no more than
MAXPATHLEN bytes long.
*/
-static PyStatus
-search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
- wchar_t *exec_prefix, size_t exec_prefix_len,
- int *found)
+static PyStatus
+search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ wchar_t *exec_prefix, size_t exec_prefix_len,
+ int *found)
{
- PyStatus status;
+ PyStatus status;
/* If PYTHONHOME is set, we believe it unconditionally */
- if (pathconfig->home) {
- /* Path: <home> / <lib_python> / "lib-dynload" */
- wchar_t *delim = wcschr(pathconfig->home, DELIM);
+ if (pathconfig->home) {
+ /* Path: <home> / <lib_python> / "lib-dynload" */
+ wchar_t *delim = wcschr(pathconfig->home, DELIM);
if (delim) {
- if (safe_wcscpy(exec_prefix, delim+1, exec_prefix_len) < 0) {
- return PATHLEN_ERR();
- }
+ if (safe_wcscpy(exec_prefix, delim+1, exec_prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
}
else {
- if (safe_wcscpy(exec_prefix, pathconfig->home, exec_prefix_len) < 0) {
- return PATHLEN_ERR();
- }
- }
- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- status = joinpath(exec_prefix, L"lib-dynload", exec_prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- *found = 1;
- return _PyStatus_OK();
- }
-
- /* Check for pybuilddir.txt */
- assert(*found == 0);
- status = calculate_pybuilddir(calculate->argv0_path,
- exec_prefix, exec_prefix_len, found);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- if (*found) {
- return _PyStatus_OK();
- }
-
+ if (safe_wcscpy(exec_prefix, pathconfig->home, exec_prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
+ }
+ status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ status = joinpath(exec_prefix, L"lib-dynload", exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ *found = 1;
+ return _PyStatus_OK();
+ }
+
+ /* Check for pybuilddir.txt */
+ assert(*found == 0);
+ status = calculate_pybuilddir(calculate->argv0_path,
+ exec_prefix, exec_prefix_len, found);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ if (*found) {
+ return _PyStatus_OK();
+ }
+
/* Search from argv0_path, until root is found */
- status = copy_absolute(exec_prefix, calculate->argv0_path, exec_prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
+ status = copy_absolute(exec_prefix, calculate->argv0_path, exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
do {
- /* Path: <argv0_path or substring> / <lib_python> / "lib-dynload" */
- size_t n = wcslen(exec_prefix);
- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- status = joinpath(exec_prefix, L"lib-dynload", exec_prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ /* Path: <argv0_path or substring> / <lib_python> / "lib-dynload" */
+ size_t n = wcslen(exec_prefix);
+ status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ status = joinpath(exec_prefix, L"lib-dynload", exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
if (isdir(exec_prefix)) {
- *found = 1;
- return _PyStatus_OK();
+ *found = 1;
+ return _PyStatus_OK();
}
exec_prefix[n] = L'\0';
reduce(exec_prefix);
} while (exec_prefix[0]);
- /* Look at configure's EXEC_PREFIX.
-
- Path: <EXEC_PREFIX macro> / <lib_python> / "lib-dynload" */
- if (safe_wcscpy(exec_prefix, calculate->exec_prefix_macro, exec_prefix_len) < 0) {
- return PATHLEN_ERR();
- }
- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- status = joinpath(exec_prefix, L"lib-dynload", exec_prefix_len);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ /* Look at configure's EXEC_PREFIX.
+
+ Path: <EXEC_PREFIX macro> / <lib_python> / "lib-dynload" */
+ if (safe_wcscpy(exec_prefix, calculate->exec_prefix_macro, exec_prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
+ status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ status = joinpath(exec_prefix, L"lib-dynload", exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
if (isdir(exec_prefix)) {
- *found = 1;
- return _PyStatus_OK();
+ *found = 1;
+ return _PyStatus_OK();
}
/* Fail */
- *found = 0;
- return _PyStatus_OK();
+ *found = 0;
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+static PyStatus
+calculate_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
{
- PyStatus status;
- wchar_t exec_prefix[MAXPATHLEN+1];
- memset(exec_prefix, 0, sizeof(exec_prefix));
- size_t exec_prefix_len = Py_ARRAY_LENGTH(exec_prefix);
-
- status = search_for_exec_prefix(calculate, pathconfig,
- exec_prefix, exec_prefix_len,
- &calculate->exec_prefix_found);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
+ PyStatus status;
+ wchar_t exec_prefix[MAXPATHLEN+1];
+ memset(exec_prefix, 0, sizeof(exec_prefix));
+ size_t exec_prefix_len = Py_ARRAY_LENGTH(exec_prefix);
+
+ status = search_for_exec_prefix(calculate, pathconfig,
+ exec_prefix, exec_prefix_len,
+ &calculate->exec_prefix_found);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
if (!calculate->exec_prefix_found) {
- if (calculate->warnings) {
+ if (calculate->warnings) {
fprintf(stderr,
"Could not find platform dependent libraries <exec_prefix>\n");
}
-
- /* <platlibdir> / "lib-dynload" */
- wchar_t *lib_dynload = joinpath2(calculate->platlibdir,
- L"lib-dynload");
- if (lib_dynload == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- calculate->exec_prefix = joinpath2(calculate->exec_prefix_macro,
- lib_dynload);
- PyMem_RawFree(lib_dynload);
-
- if (calculate->exec_prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
- else {
- /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
- calculate->exec_prefix = _PyMem_RawWcsdup(exec_prefix);
- if (calculate->exec_prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
- return _PyStatus_OK();
+
+ /* <platlibdir> / "lib-dynload" */
+ wchar_t *lib_dynload = joinpath2(calculate->platlibdir,
+ L"lib-dynload");
+ if (lib_dynload == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ calculate->exec_prefix = joinpath2(calculate->exec_prefix_macro,
+ lib_dynload);
+ PyMem_RawFree(lib_dynload);
+
+ if (calculate->exec_prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ else {
+ /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
+ calculate->exec_prefix = _PyMem_RawWcsdup(exec_prefix);
+ if (calculate->exec_prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_set_exec_prefix(PyCalculatePath *calculate,
- _PyPathConfig *pathconfig)
+static PyStatus
+calculate_set_exec_prefix(PyCalculatePath *calculate,
+ _PyPathConfig *pathconfig)
{
if (calculate->exec_prefix_found > 0) {
- wchar_t *exec_prefix = _PyMem_RawWcsdup(calculate->exec_prefix);
- if (exec_prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
+ wchar_t *exec_prefix = _PyMem_RawWcsdup(calculate->exec_prefix);
+ if (exec_prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
reduce(exec_prefix);
reduce(exec_prefix);
reduce(exec_prefix);
-
- if (exec_prefix[0]) {
- pathconfig->exec_prefix = exec_prefix;
- }
- else {
- /* empty string: use SEP instead */
- PyMem_RawFree(exec_prefix);
-
- /* The exec_prefix is the root directory, but reduce() chopped
- off the "/". */
- pathconfig->exec_prefix = _PyMem_RawWcsdup(separator);
- if (pathconfig->exec_prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
+
+ if (exec_prefix[0]) {
+ pathconfig->exec_prefix = exec_prefix;
+ }
+ else {
+ /* empty string: use SEP instead */
+ PyMem_RawFree(exec_prefix);
+
+ /* The exec_prefix is the root directory, but reduce() chopped
+ off the "/". */
+ pathconfig->exec_prefix = _PyMem_RawWcsdup(separator);
+ if (pathconfig->exec_prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
}
else {
- pathconfig->exec_prefix = _PyMem_RawWcsdup(calculate->exec_prefix_macro);
- if (pathconfig->exec_prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
- return _PyStatus_OK();
-}
-
-
-/* Similar to shutil.which().
- If found, write the path into *abs_path_p. */
-static PyStatus
-calculate_which(const wchar_t *path_env, wchar_t *program_name,
- wchar_t **abs_path_p)
-{
- while (1) {
- wchar_t *delim = wcschr(path_env, DELIM);
- wchar_t *abs_path;
-
- if (delim) {
- wchar_t *path = substring(path_env, delim - path_env);
- if (path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- abs_path = joinpath2(path, program_name);
- PyMem_RawFree(path);
- }
- else {
- abs_path = joinpath2(path_env, program_name);
- }
-
- if (abs_path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- if (isxfile(abs_path)) {
- *abs_path_p = abs_path;
- return _PyStatus_OK();
- }
- PyMem_RawFree(abs_path);
-
- if (!delim) {
- break;
- }
- path_env = delim + 1;
- }
-
- /* not found */
- return _PyStatus_OK();
+ pathconfig->exec_prefix = _PyMem_RawWcsdup(calculate->exec_prefix_macro);
+ if (pathconfig->exec_prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ return _PyStatus_OK();
}
-#ifdef __APPLE__
-static PyStatus
-calculate_program_macos(wchar_t **abs_path_p)
+/* Similar to shutil.which().
+ If found, write the path into *abs_path_p. */
+static PyStatus
+calculate_which(const wchar_t *path_env, wchar_t *program_name,
+ wchar_t **abs_path_p)
{
- char execpath[MAXPATHLEN + 1];
- uint32_t nsexeclength = Py_ARRAY_LENGTH(execpath) - 1;
-
- /* On Mac OS X, if a script uses an interpreter of the form
- "#!/opt/python2.3/bin/python", the kernel only passes "python"
- as argv[0], which falls through to the $PATH search below.
- If /opt/python2.3/bin isn't in your path, or is near the end,
- this algorithm may incorrectly find /usr/bin/python. To work
- around this, we can use _NSGetExecutablePath to get a better
- hint of what the intended interpreter was, although this
- will fail if a relative path was used. but in that case,
- absolutize() should help us out below
- */
- if (_NSGetExecutablePath(execpath, &nsexeclength) != 0
- || (wchar_t)execpath[0] != SEP)
- {
- /* _NSGetExecutablePath() failed or the path is relative */
- return _PyStatus_OK();
- }
-
- size_t len;
- *abs_path_p = Py_DecodeLocale(execpath, &len);
- if (*abs_path_p == NULL) {
- return DECODE_LOCALE_ERR("executable path", len);
- }
- return _PyStatus_OK();
-}
-#endif /* __APPLE__ */
-
-
-static PyStatus
-calculate_program_impl(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
-{
- assert(pathconfig->program_full_path == NULL);
-
- PyStatus status;
-
+ while (1) {
+ wchar_t *delim = wcschr(path_env, DELIM);
+ wchar_t *abs_path;
+
+ if (delim) {
+ wchar_t *path = substring(path_env, delim - path_env);
+ if (path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ abs_path = joinpath2(path, program_name);
+ PyMem_RawFree(path);
+ }
+ else {
+ abs_path = joinpath2(path_env, program_name);
+ }
+
+ if (abs_path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ if (isxfile(abs_path)) {
+ *abs_path_p = abs_path;
+ return _PyStatus_OK();
+ }
+ PyMem_RawFree(abs_path);
+
+ if (!delim) {
+ break;
+ }
+ path_env = delim + 1;
+ }
+
+ /* not found */
+ return _PyStatus_OK();
+}
+
+
+#ifdef __APPLE__
+static PyStatus
+calculate_program_macos(wchar_t **abs_path_p)
+{
+ char execpath[MAXPATHLEN + 1];
+ uint32_t nsexeclength = Py_ARRAY_LENGTH(execpath) - 1;
+
+ /* On Mac OS X, if a script uses an interpreter of the form
+ "#!/opt/python2.3/bin/python", the kernel only passes "python"
+ as argv[0], which falls through to the $PATH search below.
+ If /opt/python2.3/bin isn't in your path, or is near the end,
+ this algorithm may incorrectly find /usr/bin/python. To work
+ around this, we can use _NSGetExecutablePath to get a better
+ hint of what the intended interpreter was, although this
+ will fail if a relative path was used. but in that case,
+ absolutize() should help us out below
+ */
+ if (_NSGetExecutablePath(execpath, &nsexeclength) != 0
+ || (wchar_t)execpath[0] != SEP)
+ {
+ /* _NSGetExecutablePath() failed or the path is relative */
+ return _PyStatus_OK();
+ }
+
+ size_t len;
+ *abs_path_p = Py_DecodeLocale(execpath, &len);
+ if (*abs_path_p == NULL) {
+ return DECODE_LOCALE_ERR("executable path", len);
+ }
+ return _PyStatus_OK();
+}
+#endif /* __APPLE__ */
+
+
+static PyStatus
+calculate_program_impl(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+{
+ assert(pathconfig->program_full_path == NULL);
+
+ PyStatus status;
+
/* If there is no slash in the argv0 path, then we have to
* assume python is on the user's $PATH, since there's no
* other way to find a directory to start the search from. If
* $PATH isn't exported, you lose.
*/
- if (wcschr(pathconfig->program_name, SEP)) {
- pathconfig->program_full_path = _PyMem_RawWcsdup(pathconfig->program_name);
- if (pathconfig->program_full_path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
- }
-
+ if (wcschr(pathconfig->program_name, SEP)) {
+ pathconfig->program_full_path = _PyMem_RawWcsdup(pathconfig->program_name);
+ if (pathconfig->program_full_path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
+ }
+
#ifdef __APPLE__
- wchar_t *abs_path = NULL;
- status = calculate_program_macos(&abs_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- if (abs_path) {
- pathconfig->program_full_path = abs_path;
- return _PyStatus_OK();
- }
+ wchar_t *abs_path = NULL;
+ status = calculate_program_macos(&abs_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ if (abs_path) {
+ pathconfig->program_full_path = abs_path;
+ return _PyStatus_OK();
+ }
#endif /* __APPLE__ */
- if (calculate->path_env) {
- wchar_t *abs_path = NULL;
- status = calculate_which(calculate->path_env, pathconfig->program_name,
- &abs_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- if (abs_path) {
- pathconfig->program_full_path = abs_path;
- return _PyStatus_OK();
- }
- }
-
- /* In the last resort, use an empty string */
- pathconfig->program_full_path = _PyMem_RawWcsdup(L"");
- if (pathconfig->program_full_path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
+ if (calculate->path_env) {
+ wchar_t *abs_path = NULL;
+ status = calculate_which(calculate->path_env, pathconfig->program_name,
+ &abs_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ if (abs_path) {
+ pathconfig->program_full_path = abs_path;
+ return _PyStatus_OK();
+ }
+ }
+
+ /* In the last resort, use an empty string */
+ pathconfig->program_full_path = _PyMem_RawWcsdup(L"");
+ if (pathconfig->program_full_path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
+}
+
+
+/* Calculate pathconfig->program_full_path */
+static PyStatus
+calculate_program(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+{
+ PyStatus status;
+
+ status = calculate_program_impl(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (pathconfig->program_full_path[0] != '\0') {
+ /* program_full_path is not empty */
+
+ /* Make sure that program_full_path is an absolute path */
+ if (!_Py_isabs(pathconfig->program_full_path)) {
+ status = absolutize(&pathconfig->program_full_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+#if defined(__CYGWIN__) || defined(__MINGW32__)
+ /* For these platforms it is necessary to ensure that the .exe suffix
+ * is appended to the filename, otherwise there is potential for
+ * sys.executable to return the name of a directory under the same
+ * path (bpo-28441).
+ */
+ status = add_exe_suffix(&pathconfig->program_full_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+#endif
+ }
+ return _PyStatus_OK();
}
-/* Calculate pathconfig->program_full_path */
-static PyStatus
-calculate_program(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+#if HAVE_READLINK
+static PyStatus
+resolve_symlinks(wchar_t **path_p)
{
- PyStatus status;
-
- status = calculate_program_impl(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (pathconfig->program_full_path[0] != '\0') {
- /* program_full_path is not empty */
-
- /* Make sure that program_full_path is an absolute path */
- if (!_Py_isabs(pathconfig->program_full_path)) {
- status = absolutize(&pathconfig->program_full_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
-#if defined(__CYGWIN__) || defined(__MINGW32__)
- /* For these platforms it is necessary to ensure that the .exe suffix
- * is appended to the filename, otherwise there is potential for
- * sys.executable to return the name of a directory under the same
- * path (bpo-28441).
- */
- status = add_exe_suffix(&pathconfig->program_full_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-#endif
- }
- return _PyStatus_OK();
-}
-
-
-#if HAVE_READLINK
-static PyStatus
-resolve_symlinks(wchar_t **path_p)
-{
- wchar_t new_path[MAXPATHLEN + 1];
- const size_t new_path_len = Py_ARRAY_LENGTH(new_path);
- unsigned int nlink = 0;
-
- while (1) {
- int linklen = _Py_wreadlink(*path_p, new_path, new_path_len);
- if (linklen == -1) {
- /* not a symbolic link: we are done */
- break;
- }
-
- if (_Py_isabs(new_path)) {
- PyMem_RawFree(*path_p);
- *path_p = _PyMem_RawWcsdup(new_path);
- if (*path_p == NULL) {
- return _PyStatus_NO_MEMORY();
- }
+ wchar_t new_path[MAXPATHLEN + 1];
+ const size_t new_path_len = Py_ARRAY_LENGTH(new_path);
+ unsigned int nlink = 0;
+
+ while (1) {
+ int linklen = _Py_wreadlink(*path_p, new_path, new_path_len);
+ if (linklen == -1) {
+ /* not a symbolic link: we are done */
+ break;
+ }
+
+ if (_Py_isabs(new_path)) {
+ PyMem_RawFree(*path_p);
+ *path_p = _PyMem_RawWcsdup(new_path);
+ if (*path_p == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
}
else {
- /* new_path is relative to path */
- reduce(*path_p);
-
- wchar_t *abs_path = joinpath2(*path_p, new_path);
- if (abs_path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- PyMem_RawFree(*path_p);
- *path_p = abs_path;
- }
-
- nlink++;
- /* 40 is the Linux kernel 4.2 limit */
- if (nlink >= 40) {
- return _PyStatus_ERR("maximum number of symbolic links reached");
- }
- }
- return _PyStatus_OK();
-}
+ /* new_path is relative to path */
+ reduce(*path_p);
+
+ wchar_t *abs_path = joinpath2(*path_p, new_path);
+ if (abs_path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ PyMem_RawFree(*path_p);
+ *path_p = abs_path;
+ }
+
+ nlink++;
+ /* 40 is the Linux kernel 4.2 limit */
+ if (nlink >= 40) {
+ return _PyStatus_ERR("maximum number of symbolic links reached");
+ }
+ }
+ return _PyStatus_OK();
+}
#endif /* HAVE_READLINK */
-
-#ifdef WITH_NEXT_FRAMEWORK
-static PyStatus
-calculate_argv0_path_framework(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
-{
- NSModule pythonModule;
-
- /* On Mac OS X we have a special case if we're running from a framework.
- This is because the python home should be set relative to the library,
- which is in the framework, not relative to the executable, which may
- be outside of the framework. Except when we're in the build
- directory... */
- pythonModule = NSModuleForSymbol(NSLookupAndBindSymbol("_Py_Initialize"));
-
- /* Use dylib functions to find out where the framework was loaded from */
- const char* modPath = NSLibraryNameForModule(pythonModule);
- if (modPath == NULL) {
- return _PyStatus_OK();
- }
-
- /* We're in a framework.
- See if we might be in the build directory. The framework in the
- build directory is incomplete, it only has the .dylib and a few
- needed symlinks, it doesn't have the Lib directories and such.
- If we're running with the framework from the build directory we must
- be running the interpreter in the build directory, so we use the
- build-directory-specific logic to find Lib and such. */
- size_t len;
- wchar_t* wbuf = Py_DecodeLocale(modPath, &len);
- if (wbuf == NULL) {
- return DECODE_LOCALE_ERR("framework location", len);
- }
-
- /* Path: reduce(modPath) / lib_python / LANDMARK */
- PyStatus status;
-
- wchar_t *parent = _PyMem_RawWcsdup(wbuf);
- if (parent == NULL) {
- status = _PyStatus_NO_MEMORY();
- goto done;
- }
-
- reduce(parent);
- wchar_t *lib_python = joinpath2(parent, calculate->lib_python);
- PyMem_RawFree(parent);
-
- if (lib_python == NULL) {
- status = _PyStatus_NO_MEMORY();
- goto done;
- }
-
- int module;
- status = ismodule(lib_python, &module);
- PyMem_RawFree(lib_python);
-
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
- if (!module) {
- /* We are in the build directory so use the name of the
- executable - we know that the absolute path is passed */
- PyMem_RawFree(calculate->argv0_path);
- calculate->argv0_path = _PyMem_RawWcsdup(pathconfig->program_full_path);
- if (calculate->argv0_path == NULL) {
- status = _PyStatus_NO_MEMORY();
- goto done;
- }
-
- status = _PyStatus_OK();
- goto done;
- }
-
- /* Use the location of the library as argv0_path */
- PyMem_RawFree(calculate->argv0_path);
- calculate->argv0_path = wbuf;
- return _PyStatus_OK();
-
-done:
- PyMem_RawFree(wbuf);
- return status;
+
+#ifdef WITH_NEXT_FRAMEWORK
+static PyStatus
+calculate_argv0_path_framework(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+{
+ NSModule pythonModule;
+
+ /* On Mac OS X we have a special case if we're running from a framework.
+ This is because the python home should be set relative to the library,
+ which is in the framework, not relative to the executable, which may
+ be outside of the framework. Except when we're in the build
+ directory... */
+ pythonModule = NSModuleForSymbol(NSLookupAndBindSymbol("_Py_Initialize"));
+
+ /* Use dylib functions to find out where the framework was loaded from */
+ const char* modPath = NSLibraryNameForModule(pythonModule);
+ if (modPath == NULL) {
+ return _PyStatus_OK();
+ }
+
+ /* We're in a framework.
+ See if we might be in the build directory. The framework in the
+ build directory is incomplete, it only has the .dylib and a few
+ needed symlinks, it doesn't have the Lib directories and such.
+ If we're running with the framework from the build directory we must
+ be running the interpreter in the build directory, so we use the
+ build-directory-specific logic to find Lib and such. */
+ size_t len;
+ wchar_t* wbuf = Py_DecodeLocale(modPath, &len);
+ if (wbuf == NULL) {
+ return DECODE_LOCALE_ERR("framework location", len);
+ }
+
+ /* Path: reduce(modPath) / lib_python / LANDMARK */
+ PyStatus status;
+
+ wchar_t *parent = _PyMem_RawWcsdup(wbuf);
+ if (parent == NULL) {
+ status = _PyStatus_NO_MEMORY();
+ goto done;
+ }
+
+ reduce(parent);
+ wchar_t *lib_python = joinpath2(parent, calculate->lib_python);
+ PyMem_RawFree(parent);
+
+ if (lib_python == NULL) {
+ status = _PyStatus_NO_MEMORY();
+ goto done;
+ }
+
+ int module;
+ status = ismodule(lib_python, &module);
+ PyMem_RawFree(lib_python);
+
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+ if (!module) {
+ /* We are in the build directory so use the name of the
+ executable - we know that the absolute path is passed */
+ PyMem_RawFree(calculate->argv0_path);
+ calculate->argv0_path = _PyMem_RawWcsdup(pathconfig->program_full_path);
+ if (calculate->argv0_path == NULL) {
+ status = _PyStatus_NO_MEMORY();
+ goto done;
+ }
+
+ status = _PyStatus_OK();
+ goto done;
+ }
+
+ /* Use the location of the library as argv0_path */
+ PyMem_RawFree(calculate->argv0_path);
+ calculate->argv0_path = wbuf;
+ return _PyStatus_OK();
+
+done:
+ PyMem_RawFree(wbuf);
+ return status;
+}
+#endif
+
+
+static PyStatus
+calculate_argv0_path(PyCalculatePath *calculate,
+ _PyPathConfig *pathconfig)
+{
+ PyStatus status;
+
+ calculate->argv0_path = _PyMem_RawWcsdup(pathconfig->program_full_path);
+ if (calculate->argv0_path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+#ifdef WITH_NEXT_FRAMEWORK
+ status = calculate_argv0_path_framework(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+#endif
+
+ status = resolve_symlinks(&calculate->argv0_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ reduce(calculate->argv0_path);
+
+ return _PyStatus_OK();
}
-#endif
-static PyStatus
-calculate_argv0_path(PyCalculatePath *calculate,
- _PyPathConfig *pathconfig)
+static PyStatus
+calculate_open_pyenv(PyCalculatePath *calculate, FILE **env_file_p)
{
- PyStatus status;
-
- calculate->argv0_path = _PyMem_RawWcsdup(pathconfig->program_full_path);
- if (calculate->argv0_path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
-#ifdef WITH_NEXT_FRAMEWORK
- status = calculate_argv0_path_framework(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-#endif
-
- status = resolve_symlinks(&calculate->argv0_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- reduce(calculate->argv0_path);
-
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-calculate_open_pyenv(PyCalculatePath *calculate, FILE **env_file_p)
-{
- *env_file_p = NULL;
-
- const wchar_t *env_cfg = L"pyvenv.cfg";
-
- /* Filename: <argv0_path> / "pyvenv.cfg" */
- wchar_t *filename = joinpath2(calculate->argv0_path, env_cfg);
- if (filename == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- *env_file_p = _Py_wfopen(filename, L"r");
- PyMem_RawFree(filename);
-
- if (*env_file_p != NULL) {
- return _PyStatus_OK();
-
- }
-
- /* fopen() failed: reset errno */
- errno = 0;
-
- /* Path: <basename(argv0_path)> / "pyvenv.cfg" */
- wchar_t *parent = _PyMem_RawWcsdup(calculate->argv0_path);
- if (parent == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- reduce(parent);
-
- filename = joinpath2(parent, env_cfg);
- PyMem_RawFree(parent);
- if (filename == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- *env_file_p = _Py_wfopen(filename, L"r");
- PyMem_RawFree(filename);
-
- if (*env_file_p == NULL) {
- /* fopen() failed: reset errno */
+ *env_file_p = NULL;
+
+ const wchar_t *env_cfg = L"pyvenv.cfg";
+
+ /* Filename: <argv0_path> / "pyvenv.cfg" */
+ wchar_t *filename = joinpath2(calculate->argv0_path, env_cfg);
+ if (filename == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ *env_file_p = _Py_wfopen(filename, L"r");
+ PyMem_RawFree(filename);
+
+ if (*env_file_p != NULL) {
+ return _PyStatus_OK();
+
+ }
+
+ /* fopen() failed: reset errno */
+ errno = 0;
+
+ /* Path: <basename(argv0_path)> / "pyvenv.cfg" */
+ wchar_t *parent = _PyMem_RawWcsdup(calculate->argv0_path);
+ if (parent == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ reduce(parent);
+
+ filename = joinpath2(parent, env_cfg);
+ PyMem_RawFree(parent);
+ if (filename == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ *env_file_p = _Py_wfopen(filename, L"r");
+ PyMem_RawFree(filename);
+
+ if (*env_file_p == NULL) {
+ /* fopen() failed: reset errno */
errno = 0;
- }
- return _PyStatus_OK();
-}
-
-
-/* Search for an "pyvenv.cfg" environment configuration file, first in the
- executable's directory and then in the parent directory.
- If found, open it for use when searching for prefixes.
-
- Write the 'home' variable of pyvenv.cfg into calculate->argv0_path. */
-static PyStatus
-calculate_read_pyenv(PyCalculatePath *calculate)
-{
- PyStatus status;
- FILE *env_file = NULL;
-
- status = calculate_open_pyenv(calculate, &env_file);
- if (_PyStatus_EXCEPTION(status)) {
- assert(env_file == NULL);
- return status;
- }
- if (env_file == NULL) {
- /* pyvenv.cfg not found */
- return _PyStatus_OK();
- }
-
- /* Look for a 'home' variable and set argv0_path to it, if found */
- wchar_t *home = NULL;
- status = _Py_FindEnvConfigValue(env_file, L"home", &home);
- if (_PyStatus_EXCEPTION(status)) {
- fclose(env_file);
- return status;
- }
-
- if (home) {
- PyMem_RawFree(calculate->argv0_path);
- calculate->argv0_path = home;
+ }
+ return _PyStatus_OK();
+}
+
+
+/* Search for an "pyvenv.cfg" environment configuration file, first in the
+ executable's directory and then in the parent directory.
+ If found, open it for use when searching for prefixes.
+
+ Write the 'home' variable of pyvenv.cfg into calculate->argv0_path. */
+static PyStatus
+calculate_read_pyenv(PyCalculatePath *calculate)
+{
+ PyStatus status;
+ FILE *env_file = NULL;
+
+ status = calculate_open_pyenv(calculate, &env_file);
+ if (_PyStatus_EXCEPTION(status)) {
+ assert(env_file == NULL);
+ return status;
+ }
+ if (env_file == NULL) {
+ /* pyvenv.cfg not found */
+ return _PyStatus_OK();
+ }
+
+ /* Look for a 'home' variable and set argv0_path to it, if found */
+ wchar_t *home = NULL;
+ status = _Py_FindEnvConfigValue(env_file, L"home", &home);
+ if (_PyStatus_EXCEPTION(status)) {
+ fclose(env_file);
+ return status;
+ }
+
+ if (home) {
+ PyMem_RawFree(calculate->argv0_path);
+ calculate->argv0_path = home;
}
fclose(env_file);
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_zip_path(PyCalculatePath *calculate)
+static PyStatus
+calculate_zip_path(PyCalculatePath *calculate)
{
- PyStatus res;
-
- /* Path: <platlibdir> / "pythonXY.zip" */
- wchar_t *path = joinpath2(calculate->platlibdir,
- L"python" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION)
- L".zip");
- if (path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
+ PyStatus res;
+
+ /* Path: <platlibdir> / "pythonXY.zip" */
+ wchar_t *path = joinpath2(calculate->platlibdir,
+ L"python" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION)
+ L".zip");
+ if (path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
if (calculate->prefix_found > 0) {
- /* Use the reduced prefix returned by Py_GetPrefix()
-
- Path: <basename(basename(prefix))> / <platlibdir> / "pythonXY.zip" */
- wchar_t *parent = _PyMem_RawWcsdup(calculate->prefix);
- if (parent == NULL) {
- res = _PyStatus_NO_MEMORY();
- goto done;
- }
- reduce(parent);
- reduce(parent);
- calculate->zip_path = joinpath2(parent, path);
- PyMem_RawFree(parent);
+ /* Use the reduced prefix returned by Py_GetPrefix()
+
+ Path: <basename(basename(prefix))> / <platlibdir> / "pythonXY.zip" */
+ wchar_t *parent = _PyMem_RawWcsdup(calculate->prefix);
+ if (parent == NULL) {
+ res = _PyStatus_NO_MEMORY();
+ goto done;
+ }
+ reduce(parent);
+ reduce(parent);
+ calculate->zip_path = joinpath2(parent, path);
+ PyMem_RawFree(parent);
}
else {
- calculate->zip_path = joinpath2(calculate->prefix_macro, path);
+ calculate->zip_path = joinpath2(calculate->prefix_macro, path);
+ }
+
+ if (calculate->zip_path == NULL) {
+ res = _PyStatus_NO_MEMORY();
+ goto done;
}
-
- if (calculate->zip_path == NULL) {
- res = _PyStatus_NO_MEMORY();
- goto done;
- }
/* Replace "00" with version */
- size_t len = wcslen(calculate->zip_path);
- calculate->zip_path[len - 6] = VERSION[0];
- calculate->zip_path[len - 5] = VERSION[2];
-
- res = _PyStatus_OK();
-
-done:
- PyMem_RawFree(path);
- return res;
+ size_t len = wcslen(calculate->zip_path);
+ calculate->zip_path[len - 6] = VERSION[0];
+ calculate->zip_path[len - 5] = VERSION[2];
+
+ res = _PyStatus_OK();
+
+done:
+ PyMem_RawFree(path);
+ return res;
}
-static PyStatus
-calculate_module_search_path(PyCalculatePath *calculate,
- _PyPathConfig *pathconfig)
+static PyStatus
+calculate_module_search_path(PyCalculatePath *calculate,
+ _PyPathConfig *pathconfig)
{
- pathconfig->module_search_path = calculate->pythonpath_env;
- if (!pathconfig->module_search_path) {
- pathconfig->module_search_path = pathconfig->program_full_path;
+ pathconfig->module_search_path = calculate->pythonpath_env;
+ if (!pathconfig->module_search_path) {
+ pathconfig->module_search_path = pathconfig->program_full_path;
}
- pathconfig->module_search_path = _PyMem_RawWcsdup(pathconfig->module_search_path);
- return _PyStatus_OK();
+ pathconfig->module_search_path = _PyMem_RawWcsdup(pathconfig->module_search_path);
+ return _PyStatus_OK();
/* Calculate size of return buffer */
size_t bufsz = 0;
- if (calculate->pythonpath_env != NULL) {
- bufsz += wcslen(calculate->pythonpath_env) + 1;
+ if (calculate->pythonpath_env != NULL) {
+ bufsz += wcslen(calculate->pythonpath_env) + 1;
}
- wchar_t *defpath = calculate->pythonpath_macro;
- size_t prefixsz = wcslen(calculate->prefix) + 1;
+ wchar_t *defpath = calculate->pythonpath_macro;
+ size_t prefixsz = wcslen(calculate->prefix) + 1;
while (1) {
wchar_t *delim = wcschr(defpath, DELIM);
- if (!_Py_isabs(defpath)) {
+ if (!_Py_isabs(defpath)) {
/* Paths are relative to prefix */
bufsz += prefixsz;
}
@@ -1375,36 +1375,36 @@ calculate_module_search_path(PyCalculatePath *calculate,
defpath = delim + 1;
}
- bufsz += wcslen(calculate->zip_path) + 1;
- bufsz += wcslen(calculate->exec_prefix) + 1;
+ bufsz += wcslen(calculate->zip_path) + 1;
+ bufsz += wcslen(calculate->exec_prefix) + 1;
/* Allocate the buffer */
wchar_t *buf = PyMem_RawMalloc(bufsz * sizeof(wchar_t));
if (buf == NULL) {
- return _PyStatus_NO_MEMORY();
+ return _PyStatus_NO_MEMORY();
}
buf[0] = '\0';
/* Run-time value of $PYTHONPATH goes first */
- if (calculate->pythonpath_env) {
- wcscpy(buf, calculate->pythonpath_env);
+ if (calculate->pythonpath_env) {
+ wcscpy(buf, calculate->pythonpath_env);
wcscat(buf, delimiter);
}
/* Next is the default zip path */
- wcscat(buf, calculate->zip_path);
+ wcscat(buf, calculate->zip_path);
wcscat(buf, delimiter);
/* Next goes merge of compile-time $PYTHONPATH with
* dynamically located prefix.
*/
- defpath = calculate->pythonpath_macro;
+ defpath = calculate->pythonpath_macro;
while (1) {
wchar_t *delim = wcschr(defpath, DELIM);
- if (!_Py_isabs(defpath)) {
- wcscat(buf, calculate->prefix);
- if (prefixsz >= 2 && calculate->prefix[prefixsz - 2] != SEP &&
+ if (!_Py_isabs(defpath)) {
+ wcscat(buf, calculate->prefix);
+ if (prefixsz >= 2 && calculate->prefix[prefixsz - 2] != SEP &&
defpath[0] != (delim ? DELIM : L'\0'))
{
/* not empty */
@@ -1427,22 +1427,22 @@ calculate_module_search_path(PyCalculatePath *calculate,
wcscat(buf, delimiter);
/* Finally, on goes the directory for dynamic-load modules */
- wcscat(buf, calculate->exec_prefix);
+ wcscat(buf, calculate->exec_prefix);
- pathconfig->module_search_path = buf;
- return _PyStatus_OK();
+ pathconfig->module_search_path = buf;
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_init(PyCalculatePath *calculate, const PyConfig *config)
+static PyStatus
+calculate_init(PyCalculatePath *calculate, const PyConfig *config)
{
size_t len;
-
- calculate->warnings = config->pathconfig_warnings;
- calculate->pythonpath_env = config->pythonpath_env;
- calculate->platlibdir = config->platlibdir;
-
+
+ calculate->warnings = config->pathconfig_warnings;
+ calculate->pythonpath_env = config->pythonpath_env;
+ calculate->platlibdir = config->platlibdir;
+
const char *path = getenv("PATH");
if (path) {
calculate->path_env = Py_DecodeLocale(path, &len);
@@ -1451,181 +1451,181 @@ calculate_init(PyCalculatePath *calculate, const PyConfig *config)
}
}
- /* Decode macros */
- calculate->pythonpath_macro = Py_DecodeLocale(PYTHONPATH, &len);
- if (!calculate->pythonpath_macro) {
- return DECODE_LOCALE_ERR("PYTHONPATH macro", len);
- }
- calculate->prefix_macro = Py_DecodeLocale(PREFIX, &len);
- if (!calculate->prefix_macro) {
- return DECODE_LOCALE_ERR("PREFIX macro", len);
- }
- calculate->exec_prefix_macro = Py_DecodeLocale(EXEC_PREFIX, &len);
- if (!calculate->exec_prefix_macro) {
- return DECODE_LOCALE_ERR("EXEC_PREFIX macro", len);
- }
- calculate->vpath_macro = Py_DecodeLocale(VPATH, &len);
- if (!calculate->vpath_macro) {
- return DECODE_LOCALE_ERR("VPATH macro", len);
- }
-
- // <platlibdir> / "pythonX.Y"
- wchar_t *pyversion = Py_DecodeLocale("python" VERSION, &len);
- if (!pyversion) {
- return DECODE_LOCALE_ERR("VERSION macro", len);
- }
- calculate->lib_python = joinpath2(config->platlibdir, pyversion);
- PyMem_RawFree(pyversion);
- if (calculate->lib_python == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- return _PyStatus_OK();
+ /* Decode macros */
+ calculate->pythonpath_macro = Py_DecodeLocale(PYTHONPATH, &len);
+ if (!calculate->pythonpath_macro) {
+ return DECODE_LOCALE_ERR("PYTHONPATH macro", len);
+ }
+ calculate->prefix_macro = Py_DecodeLocale(PREFIX, &len);
+ if (!calculate->prefix_macro) {
+ return DECODE_LOCALE_ERR("PREFIX macro", len);
+ }
+ calculate->exec_prefix_macro = Py_DecodeLocale(EXEC_PREFIX, &len);
+ if (!calculate->exec_prefix_macro) {
+ return DECODE_LOCALE_ERR("EXEC_PREFIX macro", len);
+ }
+ calculate->vpath_macro = Py_DecodeLocale(VPATH, &len);
+ if (!calculate->vpath_macro) {
+ return DECODE_LOCALE_ERR("VPATH macro", len);
+ }
+
+ // <platlibdir> / "pythonX.Y"
+ wchar_t *pyversion = Py_DecodeLocale("python" VERSION, &len);
+ if (!pyversion) {
+ return DECODE_LOCALE_ERR("VERSION macro", len);
+ }
+ calculate->lib_python = joinpath2(config->platlibdir, pyversion);
+ PyMem_RawFree(pyversion);
+ if (calculate->lib_python == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ return _PyStatus_OK();
}
static void
calculate_free(PyCalculatePath *calculate)
{
- PyMem_RawFree(calculate->pythonpath_macro);
- PyMem_RawFree(calculate->prefix_macro);
- PyMem_RawFree(calculate->exec_prefix_macro);
- PyMem_RawFree(calculate->vpath_macro);
- PyMem_RawFree(calculate->lib_python);
- PyMem_RawFree(calculate->path_env);
- PyMem_RawFree(calculate->zip_path);
- PyMem_RawFree(calculate->argv0_path);
+ PyMem_RawFree(calculate->pythonpath_macro);
+ PyMem_RawFree(calculate->prefix_macro);
+ PyMem_RawFree(calculate->exec_prefix_macro);
+ PyMem_RawFree(calculate->vpath_macro);
+ PyMem_RawFree(calculate->lib_python);
+ PyMem_RawFree(calculate->path_env);
+ PyMem_RawFree(calculate->zip_path);
+ PyMem_RawFree(calculate->argv0_path);
PyMem_RawFree(calculate->prefix);
PyMem_RawFree(calculate->exec_prefix);
}
-static PyStatus
-calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+static PyStatus
+calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
{
- PyStatus status;
-
- if (pathconfig->program_full_path == NULL) {
- status = calculate_program(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- status = calculate_argv0_path(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- /* If a pyvenv.cfg configure file is found,
- argv0_path is overridden with its 'home' variable. */
- status = calculate_read_pyenv(calculate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = calculate_prefix(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = calculate_zip_path(calculate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = calculate_exec_prefix(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if ((!calculate->prefix_found || !calculate->exec_prefix_found)
- && calculate->warnings)
+ PyStatus status;
+
+ if (pathconfig->program_full_path == NULL) {
+ status = calculate_program(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ status = calculate_argv0_path(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ /* If a pyvenv.cfg configure file is found,
+ argv0_path is overridden with its 'home' variable. */
+ status = calculate_read_pyenv(calculate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = calculate_prefix(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = calculate_zip_path(calculate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = calculate_exec_prefix(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if ((!calculate->prefix_found || !calculate->exec_prefix_found)
+ && calculate->warnings)
{
fprintf(stderr,
"Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]\n");
}
- if (pathconfig->module_search_path == NULL) {
- status = calculate_module_search_path(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ if (pathconfig->module_search_path == NULL) {
+ status = calculate_module_search_path(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
}
- if (pathconfig->prefix == NULL) {
- status = calculate_set_prefix(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ if (pathconfig->prefix == NULL) {
+ status = calculate_set_prefix(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
}
- if (pathconfig->exec_prefix == NULL) {
- status = calculate_set_exec_prefix(calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ if (pathconfig->exec_prefix == NULL) {
+ status = calculate_set_exec_prefix(calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
-/* Calculate the Python path configuration.
-
- Inputs:
-
- - PATH environment variable
- - Macros: PYTHONPATH, PREFIX, EXEC_PREFIX, VERSION (ex: "3.9").
- PREFIX and EXEC_PREFIX are generated by the configure script.
- PYTHONPATH macro is the default search path.
- - pybuilddir.txt file
- - pyvenv.cfg configuration file
- - PyConfig fields ('config' function argument):
-
- - pathconfig_warnings
- - pythonpath_env (PYTHONPATH environment variable)
-
- - _PyPathConfig fields ('pathconfig' function argument):
-
- - program_name: see config_init_program_name()
- - home: Py_SetPythonHome() or PYTHONHOME environment variable
-
- - current working directory: see copy_absolute()
-
- Outputs, 'pathconfig' fields:
-
- - program_full_path
- - module_search_path
- - prefix
- - exec_prefix
-
- If a field is already set (non NULL), it is left unchanged. */
-PyStatus
-_PyPathConfig_Calculate(_PyPathConfig *pathconfig, const PyConfig *config)
+/* Calculate the Python path configuration.
+
+ Inputs:
+
+ - PATH environment variable
+ - Macros: PYTHONPATH, PREFIX, EXEC_PREFIX, VERSION (ex: "3.9").
+ PREFIX and EXEC_PREFIX are generated by the configure script.
+ PYTHONPATH macro is the default search path.
+ - pybuilddir.txt file
+ - pyvenv.cfg configuration file
+ - PyConfig fields ('config' function argument):
+
+ - pathconfig_warnings
+ - pythonpath_env (PYTHONPATH environment variable)
+
+ - _PyPathConfig fields ('pathconfig' function argument):
+
+ - program_name: see config_init_program_name()
+ - home: Py_SetPythonHome() or PYTHONHOME environment variable
+
+ - current working directory: see copy_absolute()
+
+ Outputs, 'pathconfig' fields:
+
+ - program_full_path
+ - module_search_path
+ - prefix
+ - exec_prefix
+
+ If a field is already set (non NULL), it is left unchanged. */
+PyStatus
+_PyPathConfig_Calculate(_PyPathConfig *pathconfig, const PyConfig *config)
{
- PyStatus status;
+ PyStatus status;
PyCalculatePath calculate;
memset(&calculate, 0, sizeof(calculate));
- status = calculate_init(&calculate, config);
- if (_PyStatus_EXCEPTION(status)) {
+ status = calculate_init(&calculate, config);
+ if (_PyStatus_EXCEPTION(status)) {
goto done;
}
- status = calculate_path(&calculate, pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
+ status = calculate_path(&calculate, pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
goto done;
}
- /* program_full_path must an either an empty string or an absolute path */
- assert(wcslen(pathconfig->program_full_path) == 0
- || _Py_isabs(pathconfig->program_full_path));
-
- status = _PyStatus_OK();
+ /* program_full_path must an either an empty string or an absolute path */
+ assert(wcslen(pathconfig->program_full_path) == 0
+ || _Py_isabs(pathconfig->program_full_path));
+
+ status = _PyStatus_OK();
done:
calculate_free(&calculate);
- return status;
+ return status;
}
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Modules/grpmodule.c b/contrib/tools/python3/src/Modules/grpmodule.c
index e9976501c6..cdb3ae859b 100644
--- a/contrib/tools/python3/src/Modules/grpmodule.c
+++ b/contrib/tools/python3/src/Modules/grpmodule.c
@@ -34,32 +34,32 @@ static PyStructSequence_Desc struct_group_type_desc = {
};
-typedef struct {
- PyTypeObject *StructGrpType;
-} grpmodulestate;
-
-static inline grpmodulestate*
-get_grp_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (grpmodulestate *)state;
-}
-
-#define modulestate_global get_grp_state(PyState_FindModule(&grpmodule))
-
-static struct PyModuleDef grpmodule;
-
-#define DEFAULT_BUFFER_SIZE 1024
-
+typedef struct {
+ PyTypeObject *StructGrpType;
+} grpmodulestate;
+
+static inline grpmodulestate*
+get_grp_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (grpmodulestate *)state;
+}
+
+#define modulestate_global get_grp_state(PyState_FindModule(&grpmodule))
+
+static struct PyModuleDef grpmodule;
+
+#define DEFAULT_BUFFER_SIZE 1024
+
static PyObject *
mkgrent(struct group *p)
{
int setIndex = 0;
- PyObject *v, *w;
+ PyObject *v, *w;
char **member;
- if ((v = PyStructSequence_New(modulestate_global->StructGrpType)) == NULL)
+ if ((v = PyStructSequence_New(modulestate_global->StructGrpType)) == NULL)
return NULL;
if ((w = PyList_New(0)) == NULL) {
@@ -111,9 +111,9 @@ static PyObject *
grp_getgrgid_impl(PyObject *module, PyObject *id)
/*[clinic end generated code: output=30797c289504a1ba input=15fa0e2ccf5cda25]*/
{
- PyObject *py_int_id, *retval = NULL;
- int nomem = 0;
- char *buf = NULL, *buf2 = NULL;
+ PyObject *py_int_id, *retval = NULL;
+ int nomem = 0;
+ char *buf = NULL, *buf2 = NULL;
gid_t gid;
struct group *p;
@@ -124,7 +124,7 @@ grp_getgrgid_impl(PyObject *module, PyObject *id)
PyErr_Clear();
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
"group id must be int, not %.200",
- Py_TYPE(id)->tp_name) < 0) {
+ Py_TYPE(id)->tp_name) < 0) {
return NULL;
}
py_int_id = PyNumber_Long(id);
@@ -136,49 +136,49 @@ grp_getgrgid_impl(PyObject *module, PyObject *id)
}
Py_DECREF(py_int_id);
}
-#ifdef HAVE_GETGRGID_R
- int status;
- Py_ssize_t bufsize;
- /* Note: 'grp' will be used via pointer 'p' on getgrgid_r success. */
- struct group grp;
-
- Py_BEGIN_ALLOW_THREADS
- bufsize = sysconf(_SC_GETGR_R_SIZE_MAX);
- if (bufsize == -1) {
- bufsize = DEFAULT_BUFFER_SIZE;
- }
-
- while (1) {
- buf2 = PyMem_RawRealloc(buf, bufsize);
- if (buf2 == NULL) {
- p = NULL;
- nomem = 1;
- break;
- }
- buf = buf2;
- status = getgrgid_r(gid, &grp, buf, bufsize, &p);
- if (status != 0) {
- p = NULL;
- }
- if (p != NULL || status != ERANGE) {
- break;
- }
- if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
- nomem = 1;
- break;
- }
- bufsize <<= 1;
- }
-
- Py_END_ALLOW_THREADS
-#else
- p = getgrgid(gid);
-#endif
- if (p == NULL) {
- PyMem_RawFree(buf);
- if (nomem == 1) {
- return PyErr_NoMemory();
- }
+#ifdef HAVE_GETGRGID_R
+ int status;
+ Py_ssize_t bufsize;
+ /* Note: 'grp' will be used via pointer 'p' on getgrgid_r success. */
+ struct group grp;
+
+ Py_BEGIN_ALLOW_THREADS
+ bufsize = sysconf(_SC_GETGR_R_SIZE_MAX);
+ if (bufsize == -1) {
+ bufsize = DEFAULT_BUFFER_SIZE;
+ }
+
+ while (1) {
+ buf2 = PyMem_RawRealloc(buf, bufsize);
+ if (buf2 == NULL) {
+ p = NULL;
+ nomem = 1;
+ break;
+ }
+ buf = buf2;
+ status = getgrgid_r(gid, &grp, buf, bufsize, &p);
+ if (status != 0) {
+ p = NULL;
+ }
+ if (p != NULL || status != ERANGE) {
+ break;
+ }
+ if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
+ nomem = 1;
+ break;
+ }
+ bufsize <<= 1;
+ }
+
+ Py_END_ALLOW_THREADS
+#else
+ p = getgrgid(gid);
+#endif
+ if (p == NULL) {
+ PyMem_RawFree(buf);
+ if (nomem == 1) {
+ return PyErr_NoMemory();
+ }
PyObject *gid_obj = _PyLong_FromGid(gid);
if (gid_obj == NULL)
return NULL;
@@ -186,11 +186,11 @@ grp_getgrgid_impl(PyObject *module, PyObject *id)
Py_DECREF(gid_obj);
return NULL;
}
- retval = mkgrent(p);
-#ifdef HAVE_GETGRGID_R
- PyMem_RawFree(buf);
-#endif
- return retval;
+ retval = mkgrent(p);
+#ifdef HAVE_GETGRGID_R
+ PyMem_RawFree(buf);
+#endif
+ return retval;
}
/*[clinic input]
@@ -207,8 +207,8 @@ static PyObject *
grp_getgrnam_impl(PyObject *module, PyObject *name)
/*[clinic end generated code: output=67905086f403c21c input=08ded29affa3c863]*/
{
- char *buf = NULL, *buf2 = NULL, *name_chars;
- int nomem = 0;
+ char *buf = NULL, *buf2 = NULL, *name_chars;
+ int nomem = 0;
struct group *p;
PyObject *bytes, *retval = NULL;
@@ -217,56 +217,56 @@ grp_getgrnam_impl(PyObject *module, PyObject *name)
/* check for embedded null bytes */
if (PyBytes_AsStringAndSize(bytes, &name_chars, NULL) == -1)
goto out;
-#ifdef HAVE_GETGRNAM_R
- int status;
- Py_ssize_t bufsize;
- /* Note: 'grp' will be used via pointer 'p' on getgrnam_r success. */
- struct group grp;
-
- Py_BEGIN_ALLOW_THREADS
- bufsize = sysconf(_SC_GETGR_R_SIZE_MAX);
- if (bufsize == -1) {
- bufsize = DEFAULT_BUFFER_SIZE;
- }
-
- while(1) {
- buf2 = PyMem_RawRealloc(buf, bufsize);
- if (buf2 == NULL) {
- p = NULL;
- nomem = 1;
- break;
- }
- buf = buf2;
- status = getgrnam_r(name_chars, &grp, buf, bufsize, &p);
- if (status != 0) {
- p = NULL;
- }
- if (p != NULL || status != ERANGE) {
- break;
- }
- if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
- nomem = 1;
- break;
- }
- bufsize <<= 1;
- }
-
- Py_END_ALLOW_THREADS
-#else
- p = getgrnam(name_chars);
-#endif
- if (p == NULL) {
- if (nomem == 1) {
- PyErr_NoMemory();
- }
- else {
- PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %R", name);
- }
+#ifdef HAVE_GETGRNAM_R
+ int status;
+ Py_ssize_t bufsize;
+ /* Note: 'grp' will be used via pointer 'p' on getgrnam_r success. */
+ struct group grp;
+
+ Py_BEGIN_ALLOW_THREADS
+ bufsize = sysconf(_SC_GETGR_R_SIZE_MAX);
+ if (bufsize == -1) {
+ bufsize = DEFAULT_BUFFER_SIZE;
+ }
+
+ while(1) {
+ buf2 = PyMem_RawRealloc(buf, bufsize);
+ if (buf2 == NULL) {
+ p = NULL;
+ nomem = 1;
+ break;
+ }
+ buf = buf2;
+ status = getgrnam_r(name_chars, &grp, buf, bufsize, &p);
+ if (status != 0) {
+ p = NULL;
+ }
+ if (p != NULL || status != ERANGE) {
+ break;
+ }
+ if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
+ nomem = 1;
+ break;
+ }
+ bufsize <<= 1;
+ }
+
+ Py_END_ALLOW_THREADS
+#else
+ p = getgrnam(name_chars);
+#endif
+ if (p == NULL) {
+ if (nomem == 1) {
+ PyErr_NoMemory();
+ }
+ else {
+ PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %R", name);
+ }
goto out;
}
retval = mkgrent(p);
out:
- PyMem_RawFree(buf);
+ PyMem_RawFree(buf);
Py_DECREF(bytes);
return retval;
}
@@ -327,52 +327,52 @@ users are not explicitly listed as members of the groups they are in\n\
according to the password database. Check both databases to get\n\
complete membership information.)");
-static int grpmodule_traverse(PyObject *m, visitproc visit, void *arg) {
- Py_VISIT(get_grp_state(m)->StructGrpType);
- return 0;
-}
+static int grpmodule_traverse(PyObject *m, visitproc visit, void *arg) {
+ Py_VISIT(get_grp_state(m)->StructGrpType);
+ return 0;
+}
-static int grpmodule_clear(PyObject *m) {
- Py_CLEAR(get_grp_state(m)->StructGrpType);
- return 0;
-}
+static int grpmodule_clear(PyObject *m) {
+ Py_CLEAR(get_grp_state(m)->StructGrpType);
+ return 0;
+}
+
+static void grpmodule_free(void *m) {
+ grpmodule_clear((PyObject *)m);
+}
-static void grpmodule_free(void *m) {
- grpmodule_clear((PyObject *)m);
-}
-
static struct PyModuleDef grpmodule = {
PyModuleDef_HEAD_INIT,
"grp",
grp__doc__,
- sizeof(grpmodulestate),
+ sizeof(grpmodulestate),
grp_methods,
NULL,
- grpmodule_traverse,
- grpmodule_clear,
- grpmodule_free,
+ grpmodule_traverse,
+ grpmodule_clear,
+ grpmodule_free,
};
PyMODINIT_FUNC
PyInit_grp(void)
{
- PyObject *m;
- if ((m = PyState_FindModule(&grpmodule)) != NULL) {
- Py_INCREF(m);
- return m;
- }
-
- if ((m = PyModule_Create(&grpmodule)) == NULL) {
+ PyObject *m;
+ if ((m = PyState_FindModule(&grpmodule)) != NULL) {
+ Py_INCREF(m);
+ return m;
+ }
+
+ if ((m = PyModule_Create(&grpmodule)) == NULL) {
return NULL;
}
-
- grpmodulestate *state = PyModule_GetState(m);
- state->StructGrpType = PyStructSequence_NewType(&struct_group_type_desc);
- if (state->StructGrpType == NULL) {
+
+ grpmodulestate *state = PyModule_GetState(m);
+ state->StructGrpType = PyStructSequence_NewType(&struct_group_type_desc);
+ if (state->StructGrpType == NULL) {
return NULL;
- }
-
- Py_INCREF(state->StructGrpType);
- PyModule_AddObject(m, "struct_group", (PyObject *) state->StructGrpType);
+ }
+
+ Py_INCREF(state->StructGrpType);
+ PyModule_AddObject(m, "struct_group", (PyObject *) state->StructGrpType);
return m;
}
diff --git a/contrib/tools/python3/src/Modules/hashlib.h b/contrib/tools/python3/src/Modules/hashlib.h
index 3e4a5719c0..56ae7a5e50 100644
--- a/contrib/tools/python3/src/Modules/hashlib.h
+++ b/contrib/tools/python3/src/Modules/hashlib.h
@@ -8,7 +8,7 @@
#define GET_BUFFER_VIEW_OR_ERROR(obj, viewp, erraction) do { \
if (PyUnicode_Check((obj))) { \
PyErr_SetString(PyExc_TypeError, \
- "Strings must be encoded before hashing");\
+ "Strings must be encoded before hashing");\
erraction; \
} \
if (!PyObject_CheckBuffer((obj))) { \
diff --git a/contrib/tools/python3/src/Modules/itertoolsmodule.c b/contrib/tools/python3/src/Modules/itertoolsmodule.c
index a44c74f98f..bc5382af7e 100644
--- a/contrib/tools/python3/src/Modules/itertoolsmodule.c
+++ b/contrib/tools/python3/src/Modules/itertoolsmodule.c
@@ -1,54 +1,54 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_tupleobject.h"
-#include "pycore_object.h" // _PyObject_GC_TRACK()
-#include <stddef.h> // offsetof()
+#include "pycore_tupleobject.h"
+#include "pycore_object.h" // _PyObject_GC_TRACK()
+#include <stddef.h> // offsetof()
/* Itertools module written and maintained
by Raymond D. Hettinger <python@rcn.com>
*/
-/*[clinic input]
-module itertools
-class itertools.groupby "groupbyobject *" "&groupby_type"
-class itertools._grouper "_grouperobject *" "&_grouper_type"
-class itertools.teedataobject "teedataobject *" "&teedataobject_type"
-class itertools._tee "teeobject *" "&tee_type"
-class itertools.cycle "cycleobject *" "&cycle_type"
-class itertools.dropwhile "dropwhileobject *" "&dropwhile_type"
-class itertools.takewhile "takewhileobject *" "&takewhile_type"
-class itertools.starmap "starmapobject *" "&starmap_type"
-class itertools.chain "chainobject *" "&chain_type"
-class itertools.combinations "combinationsobject *" "&combinations_type"
-class itertools.combinations_with_replacement "cwr_object *" "&cwr_type"
-class itertools.permutations "permutationsobject *" "&permutations_type"
-class itertools.accumulate "accumulateobject *" "&accumulate_type"
-class itertools.compress "compressobject *" "&compress_type"
-class itertools.filterfalse "filterfalseobject *" "&filterfalse_type"
-class itertools.count "countobject *" "&count_type"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ea05c93c6d94726a]*/
-
-static PyTypeObject groupby_type;
-static PyTypeObject _grouper_type;
-static PyTypeObject teedataobject_type;
-static PyTypeObject tee_type;
-static PyTypeObject cycle_type;
-static PyTypeObject dropwhile_type;
-static PyTypeObject takewhile_type;
-static PyTypeObject starmap_type;
-static PyTypeObject combinations_type;
-static PyTypeObject cwr_type;
-static PyTypeObject permutations_type;
-static PyTypeObject accumulate_type;
-static PyTypeObject compress_type;
-static PyTypeObject filterfalse_type;
-static PyTypeObject count_type;
-
-#include "clinic/itertoolsmodule.c.h"
-
-
+/*[clinic input]
+module itertools
+class itertools.groupby "groupbyobject *" "&groupby_type"
+class itertools._grouper "_grouperobject *" "&_grouper_type"
+class itertools.teedataobject "teedataobject *" "&teedataobject_type"
+class itertools._tee "teeobject *" "&tee_type"
+class itertools.cycle "cycleobject *" "&cycle_type"
+class itertools.dropwhile "dropwhileobject *" "&dropwhile_type"
+class itertools.takewhile "takewhileobject *" "&takewhile_type"
+class itertools.starmap "starmapobject *" "&starmap_type"
+class itertools.chain "chainobject *" "&chain_type"
+class itertools.combinations "combinationsobject *" "&combinations_type"
+class itertools.combinations_with_replacement "cwr_object *" "&cwr_type"
+class itertools.permutations "permutationsobject *" "&permutations_type"
+class itertools.accumulate "accumulateobject *" "&accumulate_type"
+class itertools.compress "compressobject *" "&compress_type"
+class itertools.filterfalse "filterfalseobject *" "&filterfalse_type"
+class itertools.count "countobject *" "&count_type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ea05c93c6d94726a]*/
+
+static PyTypeObject groupby_type;
+static PyTypeObject _grouper_type;
+static PyTypeObject teedataobject_type;
+static PyTypeObject tee_type;
+static PyTypeObject cycle_type;
+static PyTypeObject dropwhile_type;
+static PyTypeObject takewhile_type;
+static PyTypeObject starmap_type;
+static PyTypeObject combinations_type;
+static PyTypeObject cwr_type;
+static PyTypeObject permutations_type;
+static PyTypeObject accumulate_type;
+static PyTypeObject compress_type;
+static PyTypeObject filterfalse_type;
+static PyTypeObject count_type;
+
+#include "clinic/itertoolsmodule.c.h"
+
+
/* groupby object ************************************************************/
typedef struct {
@@ -63,23 +63,23 @@ typedef struct {
static PyObject *_grouper_create(groupbyobject *, PyObject *);
-/*[clinic input]
-@classmethod
-itertools.groupby.__new__
-
- iterable as it: object
- Elements to divide into groups according to the key function.
- key as keyfunc: object = None
- A function for computing the group category for each element.
- If the key function is not specified or is None, the element itself
- is used for grouping.
-
-make an iterator that returns consecutive keys and groups from the iterable
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.groupby.__new__
+
+ iterable as it: object
+ Elements to divide into groups according to the key function.
+ key as keyfunc: object = None
+ A function for computing the group category for each element.
+ If the key function is not specified or is None, the element itself
+ is used for grouping.
+
+make an iterator that returns consecutive keys and groups from the iterable
+[clinic start generated code]*/
+
static PyObject *
-itertools_groupby_impl(PyTypeObject *type, PyObject *it, PyObject *keyfunc)
-/*[clinic end generated code: output=cbb1ae3a90fd4141 input=6b3d123e87ff65a1]*/
+itertools_groupby_impl(PyTypeObject *type, PyObject *it, PyObject *keyfunc)
+/*[clinic end generated code: output=cbb1ae3a90fd4141 input=6b3d123e87ff65a1]*/
{
groupbyobject *gbo;
@@ -135,7 +135,7 @@ groupby_step(groupbyobject *gbo)
newkey = newvalue;
Py_INCREF(newvalue);
} else {
- newkey = PyObject_CallOneArg(gbo->keyfunc, newvalue);
+ newkey = PyObject_CallOneArg(gbo->keyfunc, newvalue);
if (newkey == NULL) {
Py_DECREF(newvalue);
return -1;
@@ -187,7 +187,7 @@ groupby_next(groupbyobject *gbo)
}
static PyObject *
-groupby_reduce(groupbyobject *lz, PyObject *Py_UNUSED(ignored))
+groupby_reduce(groupbyobject *lz, PyObject *Py_UNUSED(ignored))
{
/* reduce as a 'new' call with an optional 'setstate' if groupby
* has started
@@ -242,10 +242,10 @@ static PyTypeObject groupby_type = {
0, /* tp_itemsize */
/* methods */
(destructor)groupby_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -258,7 +258,7 @@ static PyTypeObject groupby_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_groupby__doc__, /* tp_doc */
+ itertools_groupby__doc__, /* tp_doc */
(traverseproc)groupby_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -275,7 +275,7 @@ static PyTypeObject groupby_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_groupby, /* tp_new */
+ itertools_groupby, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -288,19 +288,19 @@ typedef struct {
PyObject *tgtkey;
} _grouperobject;
-/*[clinic input]
-@classmethod
-itertools._grouper.__new__
+/*[clinic input]
+@classmethod
+itertools._grouper.__new__
+
+ parent: object(subclass_of='&groupby_type')
+ tgtkey: object
+ /
+[clinic start generated code]*/
- parent: object(subclass_of='&groupby_type')
- tgtkey: object
- /
-[clinic start generated code]*/
-
static PyObject *
-itertools__grouper_impl(PyTypeObject *type, PyObject *parent,
- PyObject *tgtkey)
-/*[clinic end generated code: output=462efb1cdebb5914 input=dc180d7771fc8c59]*/
+itertools__grouper_impl(PyTypeObject *type, PyObject *parent,
+ PyObject *tgtkey)
+/*[clinic end generated code: output=462efb1cdebb5914 input=dc180d7771fc8c59]*/
{
return _grouper_create((groupbyobject*) parent, tgtkey);
}
@@ -368,11 +368,11 @@ _grouper_next(_grouperobject *igo)
}
static PyObject *
-_grouper_reduce(_grouperobject *lz, PyObject *Py_UNUSED(ignored))
+_grouper_reduce(_grouperobject *lz, PyObject *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(iter);
if (((groupbyobject *)lz->parent)->currgrouper != lz) {
- return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
+ return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
}
return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->parent, lz->tgtkey);
}
@@ -391,10 +391,10 @@ static PyTypeObject _grouper_type = {
0, /* tp_itemsize */
/* methods */
(destructor)_grouper_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -423,7 +423,7 @@ static PyTypeObject _grouper_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools__grouper, /* tp_new */
+ itertools__grouper, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -444,7 +444,7 @@ typedef struct {
PyObject_HEAD
PyObject *it;
int numread; /* 0 <= numread <= LINKCELLS */
- int running;
+ int running;
PyObject *nextlink;
PyObject *(values[LINKCELLS]);
} teedataobject;
@@ -465,7 +465,7 @@ teedataobject_newinternal(PyObject *it)
if (tdo == NULL)
return NULL;
- tdo->running = 0;
+ tdo->running = 0;
tdo->numread = 0;
tdo->nextlink = NULL;
Py_INCREF(it);
@@ -494,14 +494,14 @@ teedataobject_getitem(teedataobject *tdo, int i)
else {
/* this is the lead iterator, so fetch more data */
assert(i == tdo->numread);
- if (tdo->running) {
- PyErr_SetString(PyExc_RuntimeError,
- "cannot re-enter the tee iterator");
- return NULL;
- }
- tdo->running = 1;
+ if (tdo->running) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "cannot re-enter the tee iterator");
+ return NULL;
+ }
+ tdo->running = 1;
value = PyIter_Next(tdo->it);
- tdo->running = 0;
+ tdo->running = 0;
if (value == NULL)
return NULL;
tdo->numread++;
@@ -526,7 +526,7 @@ teedataobject_traverse(teedataobject *tdo, visitproc visit, void * arg)
static void
teedataobject_safe_decref(PyObject *obj)
{
- while (obj && Py_IS_TYPE(obj, &teedataobject_type) &&
+ while (obj && Py_IS_TYPE(obj, &teedataobject_type) &&
Py_REFCNT(obj) == 1) {
PyObject *nextlink = ((teedataobject *)obj)->nextlink;
((teedataobject *)obj)->nextlink = NULL;
@@ -560,7 +560,7 @@ teedataobject_dealloc(teedataobject *tdo)
}
static PyObject *
-teedataobject_reduce(teedataobject *tdo, PyObject *Py_UNUSED(ignored))
+teedataobject_reduce(teedataobject *tdo, PyObject *Py_UNUSED(ignored))
{
int i;
/* create a temporary list of already iterated values */
@@ -577,20 +577,20 @@ teedataobject_reduce(teedataobject *tdo, PyObject *Py_UNUSED(ignored))
tdo->nextlink ? tdo->nextlink : Py_None);
}
-/*[clinic input]
-@classmethod
-itertools.teedataobject.__new__
- iterable as it: object
- values: object(subclass_of='&PyList_Type')
- next: object
- /
-Data container common to multiple tee objects.
-[clinic start generated code]*/
+/*[clinic input]
+@classmethod
+itertools.teedataobject.__new__
+ iterable as it: object
+ values: object(subclass_of='&PyList_Type')
+ next: object
+ /
+Data container common to multiple tee objects.
+[clinic start generated code]*/
static PyObject *
-itertools_teedataobject_impl(PyTypeObject *type, PyObject *it,
- PyObject *values, PyObject *next)
-/*[clinic end generated code: output=3343ceb07e08df5e input=be60f2fabd2b72ba]*/
+itertools_teedataobject_impl(PyTypeObject *type, PyObject *it,
+ PyObject *values, PyObject *next)
+/*[clinic end generated code: output=3343ceb07e08df5e input=be60f2fabd2b72ba]*/
{
teedataobject *tdo;
Py_ssize_t i, len;
@@ -613,7 +613,7 @@ itertools_teedataobject_impl(PyTypeObject *type, PyObject *it,
if (len == LINKCELLS) {
if (next != Py_None) {
- if (!Py_IS_TYPE(next, &teedataobject_type))
+ if (!Py_IS_TYPE(next, &teedataobject_type))
goto err;
assert(tdo->nextlink == NULL);
Py_INCREF(next);
@@ -644,10 +644,10 @@ static PyTypeObject teedataobject_type = {
0, /* tp_itemsize */
/* methods */
(destructor)teedataobject_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -659,7 +659,7 @@ static PyTypeObject teedataobject_type = {
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
- itertools_teedataobject__doc__, /* tp_doc */
+ itertools_teedataobject__doc__, /* tp_doc */
(traverseproc)teedataobject_traverse, /* tp_traverse */
(inquiry)teedataobject_clear, /* tp_clear */
0, /* tp_richcompare */
@@ -676,7 +676,7 @@ static PyTypeObject teedataobject_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_teedataobject, /* tp_new */
+ itertools_teedataobject, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -708,7 +708,7 @@ tee_traverse(teeobject *to, visitproc visit, void *arg)
}
static PyObject *
-tee_copy(teeobject *to, PyObject *Py_UNUSED(ignored))
+tee_copy(teeobject *to, PyObject *Py_UNUSED(ignored))
{
teeobject *newto;
@@ -729,46 +729,46 @@ static PyObject *
tee_fromiterable(PyObject *iterable)
{
teeobject *to;
- PyObject *it;
+ PyObject *it;
it = PyObject_GetIter(iterable);
if (it == NULL)
return NULL;
if (PyObject_TypeCheck(it, &tee_type)) {
- to = (teeobject *)tee_copy((teeobject *)it, NULL);
+ to = (teeobject *)tee_copy((teeobject *)it, NULL);
goto done;
}
- PyObject *dataobj = teedataobject_newinternal(it);
- if (!dataobj) {
+ PyObject *dataobj = teedataobject_newinternal(it);
+ if (!dataobj) {
to = NULL;
goto done;
}
- to = PyObject_GC_New(teeobject, &tee_type);
- if (to == NULL) {
- Py_DECREF(dataobj);
- goto done;
- }
- to->dataobj = (teedataobject *)dataobj;
+ to = PyObject_GC_New(teeobject, &tee_type);
+ if (to == NULL) {
+ Py_DECREF(dataobj);
+ goto done;
+ }
+ to->dataobj = (teedataobject *)dataobj;
to->index = 0;
to->weakreflist = NULL;
PyObject_GC_Track(to);
done:
- Py_DECREF(it);
+ Py_DECREF(it);
return (PyObject *)to;
}
-/*[clinic input]
-@classmethod
-itertools._tee.__new__
- iterable: object
- /
-Iterator wrapped to make it copyable.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools._tee.__new__
+ iterable: object
+ /
+Iterator wrapped to make it copyable.
+[clinic start generated code]*/
+
static PyObject *
-itertools__tee_impl(PyTypeObject *type, PyObject *iterable)
-/*[clinic end generated code: output=b02d3fd26c810c3f input=adc0779d2afe37a2]*/
+itertools__tee_impl(PyTypeObject *type, PyObject *iterable)
+/*[clinic end generated code: output=b02d3fd26c810c3f input=adc0779d2afe37a2]*/
{
return tee_fromiterable(iterable);
}
@@ -791,7 +791,7 @@ tee_dealloc(teeobject *to)
}
static PyObject *
-tee_reduce(teeobject *to, PyObject *Py_UNUSED(ignored))
+tee_reduce(teeobject *to, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(())(Oi)", Py_TYPE(to), to->dataobj, to->index);
}
@@ -832,10 +832,10 @@ static PyTypeObject tee_type = {
0, /* tp_itemsize */
/* methods */
(destructor)tee_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -847,7 +847,7 @@ static PyTypeObject tee_type = {
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
- itertools__tee__doc__, /* tp_doc */
+ itertools__tee__doc__, /* tp_doc */
(traverseproc)tee_traverse, /* tp_traverse */
(inquiry)tee_clear, /* tp_clear */
0, /* tp_richcompare */
@@ -864,24 +864,24 @@ static PyTypeObject tee_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools__tee, /* tp_new */
+ itertools__tee, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
-/*[clinic input]
-itertools.tee
- iterable: object
- n: Py_ssize_t = 2
- /
-Returns a tuple of n independent iterators.
-[clinic start generated code]*/
-
+/*[clinic input]
+itertools.tee
+ iterable: object
+ n: Py_ssize_t = 2
+ /
+Returns a tuple of n independent iterators.
+[clinic start generated code]*/
+
static PyObject *
-itertools_tee_impl(PyObject *module, PyObject *iterable, Py_ssize_t n)
-/*[clinic end generated code: output=1c64519cd859c2f0 input=c99a1472c425d66d]*/
+itertools_tee_impl(PyObject *module, PyObject *iterable, Py_ssize_t n)
+/*[clinic end generated code: output=1c64519cd859c2f0 input=c99a1472c425d66d]*/
{
- Py_ssize_t i;
- PyObject *it, *copyable, *copyfunc, *result;
+ Py_ssize_t i;
+ PyObject *it, *copyable, *copyfunc, *result;
_Py_IDENTIFIER(__copy__);
if (n < 0) {
@@ -947,17 +947,17 @@ typedef struct {
int firstpass;
} cycleobject;
-/*[clinic input]
-@classmethod
-itertools.cycle.__new__
- iterable: object
- /
-Return elements from the iterable until it is exhausted. Then repeat the sequence indefinitely.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.cycle.__new__
+ iterable: object
+ /
+Return elements from the iterable until it is exhausted. Then repeat the sequence indefinitely.
+[clinic start generated code]*/
+
static PyObject *
-itertools_cycle_impl(PyTypeObject *type, PyObject *iterable)
-/*[clinic end generated code: output=f60e5ec17a45b35c input=9d1d84bcf66e908b]*/
+itertools_cycle_impl(PyTypeObject *type, PyObject *iterable)
+/*[clinic end generated code: output=f60e5ec17a45b35c input=9d1d84bcf66e908b]*/
{
PyObject *it;
PyObject *saved;
@@ -1039,7 +1039,7 @@ cycle_next(cycleobject *lz)
}
static PyObject *
-cycle_reduce(cycleobject *lz, PyObject *Py_UNUSED(ignored))
+cycle_reduce(cycleobject *lz, PyObject *Py_UNUSED(ignored))
{
/* Create a new cycle with the iterator tuple, then set the saved state */
if (lz->it == NULL) {
@@ -1056,10 +1056,10 @@ cycle_reduce(cycleobject *lz, PyObject *Py_UNUSED(ignored))
}
Py_DECREF(res);
}
- return Py_BuildValue("O(N)(OO)", Py_TYPE(lz), it, lz->saved, Py_True);
+ return Py_BuildValue("O(N)(OO)", Py_TYPE(lz), it, lz->saved, Py_True);
}
- return Py_BuildValue("O(O)(OO)", Py_TYPE(lz), lz->it, lz->saved,
- lz->firstpass ? Py_True : Py_False);
+ return Py_BuildValue("O(O)(OO)", Py_TYPE(lz), lz->it, lz->saved,
+ lz->firstpass ? Py_True : Py_False);
}
static PyObject *
@@ -1096,10 +1096,10 @@ static PyTypeObject cycle_type = {
0, /* tp_itemsize */
/* methods */
(destructor)cycle_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1112,7 +1112,7 @@ static PyTypeObject cycle_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_cycle__doc__, /* tp_doc */
+ itertools_cycle__doc__, /* tp_doc */
(traverseproc)cycle_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -1129,7 +1129,7 @@ static PyTypeObject cycle_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_cycle, /* tp_new */
+ itertools_cycle, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -1143,20 +1143,20 @@ typedef struct {
long start;
} dropwhileobject;
-/*[clinic input]
-@classmethod
-itertools.dropwhile.__new__
- predicate as func: object
- iterable as seq: object
- /
-Drop items from the iterable while predicate(item) is true.
-
-Afterwards, return every element until the iterable is exhausted.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.dropwhile.__new__
+ predicate as func: object
+ iterable as seq: object
+ /
+Drop items from the iterable while predicate(item) is true.
+
+Afterwards, return every element until the iterable is exhausted.
+[clinic start generated code]*/
+
static PyObject *
-itertools_dropwhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
-/*[clinic end generated code: output=92f9d0d89af149e4 input=d39737147c9f0a26]*/
+itertools_dropwhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
+/*[clinic end generated code: output=92f9d0d89af149e4 input=d39737147c9f0a26]*/
{
PyObject *it;
dropwhileobject *lz;
@@ -1213,7 +1213,7 @@ dropwhile_next(dropwhileobject *lz)
if (lz->start == 1)
return item;
- good = PyObject_CallOneArg(lz->func, item);
+ good = PyObject_CallOneArg(lz->func, item);
if (good == NULL) {
Py_DECREF(item);
return NULL;
@@ -1231,7 +1231,7 @@ dropwhile_next(dropwhileobject *lz)
}
static PyObject *
-dropwhile_reduce(dropwhileobject *lz, PyObject *Py_UNUSED(ignored))
+dropwhile_reduce(dropwhileobject *lz, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(OO)l", Py_TYPE(lz), lz->func, lz->it, lz->start);
}
@@ -1261,10 +1261,10 @@ static PyTypeObject dropwhile_type = {
0, /* tp_itemsize */
/* methods */
(destructor)dropwhile_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1277,7 +1277,7 @@ static PyTypeObject dropwhile_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_dropwhile__doc__, /* tp_doc */
+ itertools_dropwhile__doc__, /* tp_doc */
(traverseproc)dropwhile_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -1294,7 +1294,7 @@ static PyTypeObject dropwhile_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_dropwhile, /* tp_new */
+ itertools_dropwhile, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -1308,18 +1308,18 @@ typedef struct {
long stop;
} takewhileobject;
-/*[clinic input]
-@classmethod
-itertools.takewhile.__new__
- predicate as func: object
- iterable as seq: object
- /
-Return successive entries from an iterable as long as the predicate evaluates to true for each entry.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.takewhile.__new__
+ predicate as func: object
+ iterable as seq: object
+ /
+Return successive entries from an iterable as long as the predicate evaluates to true for each entry.
+[clinic start generated code]*/
+
static PyObject *
-itertools_takewhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
-/*[clinic end generated code: output=bb179ea7864e2ef6 input=ba5255f7519aa119]*/
+itertools_takewhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
+/*[clinic end generated code: output=bb179ea7864e2ef6 input=ba5255f7519aa119]*/
{
PyObject *it;
takewhileobject *lz;
@@ -1374,7 +1374,7 @@ takewhile_next(takewhileobject *lz)
if (item == NULL)
return NULL;
- good = PyObject_CallOneArg(lz->func, item);
+ good = PyObject_CallOneArg(lz->func, item);
if (good == NULL) {
Py_DECREF(item);
return NULL;
@@ -1390,7 +1390,7 @@ takewhile_next(takewhileobject *lz)
}
static PyObject *
-takewhile_reduce(takewhileobject *lz, PyObject *Py_UNUSED(ignored))
+takewhile_reduce(takewhileobject *lz, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(OO)l", Py_TYPE(lz), lz->func, lz->it, lz->stop);
}
@@ -1421,10 +1421,10 @@ static PyTypeObject takewhile_type = {
0, /* tp_itemsize */
/* methods */
(destructor)takewhile_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1437,7 +1437,7 @@ static PyTypeObject takewhile_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_takewhile__doc__, /* tp_doc */
+ itertools_takewhile__doc__, /* tp_doc */
(traverseproc)takewhile_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -1454,7 +1454,7 @@ static PyTypeObject takewhile_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_takewhile, /* tp_new */
+ itertools_takewhile, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -1611,7 +1611,7 @@ empty:
}
static PyObject *
-islice_reduce(isliceobject *lz, PyObject *Py_UNUSED(ignored))
+islice_reduce(isliceobject *lz, PyObject *Py_UNUSED(ignored))
{
/* When unpickled, generate a new object with the same bounds,
* then 'setstate' with the next and count
@@ -1669,7 +1669,7 @@ islice(iterable, start, stop[, step]) --> islice object\n\
Return an iterator whose next() method returns selected values from an\n\
iterable. If start is specified, will skip all preceding elements;\n\
otherwise, start defaults to zero. Step defaults to one. If\n\
-specified as another value, step determines how many values are\n\
+specified as another value, step determines how many values are\n\
skipped between successive calls. Works like a slice() on a list\n\
but returns an iterator.");
@@ -1680,10 +1680,10 @@ static PyTypeObject islice_type = {
0, /* tp_itemsize */
/* methods */
(destructor)islice_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1726,18 +1726,18 @@ typedef struct {
PyObject *it;
} starmapobject;
-/*[clinic input]
-@classmethod
-itertools.starmap.__new__
- function as func: object
- iterable as seq: object
- /
-Return an iterator whose values are returned from the function evaluated with an argument tuple taken from the given sequence.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.starmap.__new__
+ function as func: object
+ iterable as seq: object
+ /
+Return an iterator whose values are returned from the function evaluated with an argument tuple taken from the given sequence.
+[clinic start generated code]*/
+
static PyObject *
-itertools_starmap_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
-/*[clinic end generated code: output=79eeb81d452c6e8d input=844766df6a0d4dad]*/
+itertools_starmap_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
+/*[clinic end generated code: output=79eeb81d452c6e8d input=844766df6a0d4dad]*/
{
PyObject *it;
starmapobject *lz;
@@ -1800,7 +1800,7 @@ starmap_next(starmapobject *lz)
}
static PyObject *
-starmap_reduce(starmapobject *lz, PyObject *Py_UNUSED(ignored))
+starmap_reduce(starmapobject *lz, PyObject *Py_UNUSED(ignored))
{
/* Just pickle the iterator */
return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->func, lz->it);
@@ -1819,10 +1819,10 @@ static PyTypeObject starmap_type = {
0, /* tp_itemsize */
/* methods */
(destructor)starmap_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1835,7 +1835,7 @@ static PyTypeObject starmap_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_starmap__doc__, /* tp_doc */
+ itertools_starmap__doc__, /* tp_doc */
(traverseproc)starmap_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -1852,7 +1852,7 @@ static PyTypeObject starmap_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_starmap, /* tp_new */
+ itertools_starmap, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -1898,17 +1898,17 @@ chain_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return chain_new_internal(type, source);
}
-/*[clinic input]
-@classmethod
-itertools.chain.from_iterable
- iterable as arg: object
- /
-Alternative chain() constructor taking a single iterable argument that evaluates lazily.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.chain.from_iterable
+ iterable as arg: object
+ /
+Alternative chain() constructor taking a single iterable argument that evaluates lazily.
+[clinic start generated code]*/
+
static PyObject *
-itertools_chain_from_iterable(PyTypeObject *type, PyObject *arg)
-/*[clinic end generated code: output=667ae7a7f7b68654 input=72c39e3a2ca3be85]*/
+itertools_chain_from_iterable(PyTypeObject *type, PyObject *arg)
+/*[clinic end generated code: output=667ae7a7f7b68654 input=72c39e3a2ca3be85]*/
{
PyObject *source;
@@ -1975,7 +1975,7 @@ chain_next(chainobject *lz)
}
static PyObject *
-chain_reduce(chainobject *lz, PyObject *Py_UNUSED(ignored))
+chain_reduce(chainobject *lz, PyObject *Py_UNUSED(ignored))
{
if (lz->source) {
/* we can't pickle function objects (itertools.from_iterable) so
@@ -2025,13 +2025,13 @@ first iterable until it is exhausted, then elements from the next\n\
iterable, until all of the iterables are exhausted.");
static PyMethodDef chain_methods[] = {
- ITERTOOLS_CHAIN_FROM_ITERABLE_METHODDEF
+ ITERTOOLS_CHAIN_FROM_ITERABLE_METHODDEF
{"__reduce__", (PyCFunction)chain_reduce, METH_NOARGS,
reduce_doc},
{"__setstate__", (PyCFunction)chain_setstate, METH_O,
setstate_doc},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -2042,10 +2042,10 @@ static PyTypeObject chain_type = {
0, /* tp_itemsize */
/* methods */
(destructor)chain_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2241,17 +2241,17 @@ product_next(productobject *lz)
/* Copy the previous result tuple or re-use it if available */
if (Py_REFCNT(result) > 1) {
PyObject *old_result = result;
- result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), npools);
+ result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), npools);
if (result == NULL)
goto empty;
lz->result = result;
Py_DECREF(old_result);
}
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ else if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
/* Now, we've got the only copy so we can update it in-place */
assert (npools==0 || Py_REFCNT(result) == 1);
@@ -2294,7 +2294,7 @@ empty:
}
static PyObject *
-product_reduce(productobject *lz, PyObject *Py_UNUSED(ignored))
+product_reduce(productobject *lz, PyObject *Py_UNUSED(ignored))
{
if (lz->stopped) {
return Py_BuildValue("O(())", Py_TYPE(lz));
@@ -2400,10 +2400,10 @@ static PyTypeObject product_type = {
0, /* tp_itemsize */
/* methods */
(destructor)product_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2450,20 +2450,20 @@ typedef struct {
} combinationsobject;
-/*[clinic input]
-@classmethod
-itertools.combinations.__new__
- iterable: object
- r: Py_ssize_t
-Return successive r-length combinations of elements in the iterable.
-
-combinations(range(4), 3) --> (0,1,2), (0,1,3), (0,2,3), (1,2,3)
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.combinations.__new__
+ iterable: object
+ r: Py_ssize_t
+Return successive r-length combinations of elements in the iterable.
+
+combinations(range(4), 3) --> (0,1,2), (0,1,3), (0,2,3), (1,2,3)
+[clinic start generated code]*/
+
static PyObject *
-itertools_combinations_impl(PyTypeObject *type, PyObject *iterable,
- Py_ssize_t r)
-/*[clinic end generated code: output=87a689b39c40039c input=06bede09e3da20f8]*/
+itertools_combinations_impl(PyTypeObject *type, PyObject *iterable,
+ Py_ssize_t r)
+/*[clinic end generated code: output=87a689b39c40039c input=06bede09e3da20f8]*/
{
combinationsobject *co;
Py_ssize_t n;
@@ -2569,17 +2569,17 @@ combinations_next(combinationsobject *co)
/* Copy the previous result tuple or re-use it if available */
if (Py_REFCNT(result) > 1) {
PyObject *old_result = result;
- result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
+ result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
if (result == NULL)
goto empty;
co->result = result;
Py_DECREF(old_result);
}
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ else if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
/* Now, we've got the only copy so we can update it in-place
* CPython's empty tuple is a singleton and cached in
* PyTuple's freelist.
@@ -2625,7 +2625,7 @@ empty:
}
static PyObject *
-combinations_reduce(combinationsobject *lz, PyObject *Py_UNUSED(ignored))
+combinations_reduce(combinationsobject *lz, PyObject *Py_UNUSED(ignored))
{
if (lz->result == NULL) {
return Py_BuildValue("O(On)", Py_TYPE(lz), lz->pool, lz->r);
@@ -2711,10 +2711,10 @@ static PyTypeObject combinations_type = {
0, /* tp_itemsize */
/* methods */
(destructor)combinations_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2727,7 +2727,7 @@ static PyTypeObject combinations_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_combinations__doc__, /* tp_doc */
+ itertools_combinations__doc__, /* tp_doc */
(traverseproc)combinations_traverse,/* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -2744,7 +2744,7 @@ static PyTypeObject combinations_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_combinations, /* tp_new */
+ itertools_combinations, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -2786,21 +2786,21 @@ typedef struct {
int stopped; /* set to 1 when the cwr iterator is exhausted */
} cwrobject;
-/*[clinic input]
-@classmethod
-itertools.combinations_with_replacement.__new__
- iterable: object
- r: Py_ssize_t
-Return successive r-length combinations of elements in the iterable allowing individual elements to have successive repeats.
-
-combinations_with_replacement('ABC', 2) --> AA AB AC BB BC CC"
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.combinations_with_replacement.__new__
+ iterable: object
+ r: Py_ssize_t
+Return successive r-length combinations of elements in the iterable allowing individual elements to have successive repeats.
+
+combinations_with_replacement('ABC', 2) --> AA AB AC BB BC CC"
+[clinic start generated code]*/
+
static PyObject *
-itertools_combinations_with_replacement_impl(PyTypeObject *type,
- PyObject *iterable,
- Py_ssize_t r)
-/*[clinic end generated code: output=48b26856d4e659ca input=dc2a8c7ba785fad7]*/
+itertools_combinations_with_replacement_impl(PyTypeObject *type,
+ PyObject *iterable,
+ Py_ssize_t r)
+/*[clinic end generated code: output=48b26856d4e659ca input=dc2a8c7ba785fad7]*/
{
cwrobject *co;
Py_ssize_t n;
@@ -2908,17 +2908,17 @@ cwr_next(cwrobject *co)
/* Copy the previous result tuple or re-use it if available */
if (Py_REFCNT(result) > 1) {
PyObject *old_result = result;
- result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
+ result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
if (result == NULL)
goto empty;
co->result = result;
Py_DECREF(old_result);
}
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ else if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
/* Now, we've got the only copy so we can update it in-place CPython's
empty tuple is a singleton and cached in PyTuple's freelist. */
assert(r == 0 || Py_REFCNT(result) == 1);
@@ -2956,7 +2956,7 @@ empty:
}
static PyObject *
-cwr_reduce(cwrobject *lz, PyObject *Py_UNUSED(ignored))
+cwr_reduce(cwrobject *lz, PyObject *Py_UNUSED(ignored))
{
if (lz->result == NULL) {
return Py_BuildValue("O(On)", Py_TYPE(lz), lz->pool, lz->r);
@@ -3038,10 +3038,10 @@ static PyTypeObject cwr_type = {
0, /* tp_itemsize */
/* methods */
(destructor)cwr_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3054,7 +3054,7 @@ static PyTypeObject cwr_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_combinations_with_replacement__doc__, /* tp_doc */
+ itertools_combinations_with_replacement__doc__, /* tp_doc */
(traverseproc)cwr_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -3071,7 +3071,7 @@ static PyTypeObject cwr_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_combinations_with_replacement, /* tp_new */
+ itertools_combinations_with_replacement, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -3079,15 +3079,15 @@ static PyTypeObject cwr_type = {
/* permutations object ********************************************************
def permutations(iterable, r=None):
- # permutations('ABCD', 2) --> AB AC AD BA BC BD CA CB CD DA DB DC
- # permutations(range(3)) --> 012 021 102 120 201 210
+ # permutations('ABCD', 2) --> AB AC AD BA BC BD CA CB CD DA DB DC
+ # permutations(range(3)) --> 012 021 102 120 201 210
pool = tuple(iterable)
n = len(pool)
r = n if r is None else r
- if r > n:
- return
- indices = list(range(n))
- cycles = list(range(n, n-r, -1))
+ if r > n:
+ return
+ indices = list(range(n))
+ cycles = list(range(n, n-r, -1))
yield tuple(pool[i] for i in indices[:r])
while n:
for i in reversed(range(r)):
@@ -3114,20 +3114,20 @@ typedef struct {
int stopped; /* set to 1 when the iterator is exhausted */
} permutationsobject;
-/*[clinic input]
-@classmethod
-itertools.permutations.__new__
- iterable: object
- r as robj: object = None
-Return successive r-length permutations of elements in the iterable.
-
-permutations(range(3), 2) --> (0,1), (0,2), (1,0), (1,2), (2,0), (2,1)
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.permutations.__new__
+ iterable: object
+ r as robj: object = None
+Return successive r-length permutations of elements in the iterable.
+
+permutations(range(3), 2) --> (0,1), (0,2), (1,0), (1,2), (2,0), (2,1)
+[clinic start generated code]*/
+
static PyObject *
-itertools_permutations_impl(PyTypeObject *type, PyObject *iterable,
- PyObject *robj)
-/*[clinic end generated code: output=296a72fa76d620ea input=57d0170a4ac0ec7a]*/
+itertools_permutations_impl(PyTypeObject *type, PyObject *iterable,
+ PyObject *robj)
+/*[clinic end generated code: output=296a72fa76d620ea input=57d0170a4ac0ec7a]*/
{
permutationsobject *po;
Py_ssize_t n;
@@ -3257,17 +3257,17 @@ permutations_next(permutationsobject *po)
/* Copy the previous result tuple or re-use it if available */
if (Py_REFCNT(result) > 1) {
PyObject *old_result = result;
- result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
+ result = _PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
if (result == NULL)
goto empty;
po->result = result;
Py_DECREF(old_result);
}
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ else if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
/* Now, we've got the only copy so we can update it in-place */
assert(r == 0 || Py_REFCNT(result) == 1);
@@ -3314,7 +3314,7 @@ empty:
}
static PyObject *
-permutations_reduce(permutationsobject *po, PyObject *Py_UNUSED(ignored))
+permutations_reduce(permutationsobject *po, PyObject *Py_UNUSED(ignored))
{
if (po->result == NULL) {
return Py_BuildValue("O(On)", Py_TYPE(po), po->pool, po->r);
@@ -3430,10 +3430,10 @@ static PyTypeObject permutations_type = {
0, /* tp_itemsize */
/* methods */
(destructor)permutations_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3446,7 +3446,7 @@ static PyTypeObject permutations_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_permutations__doc__, /* tp_doc */
+ itertools_permutations__doc__, /* tp_doc */
(traverseproc)permutations_traverse,/* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -3463,11 +3463,11 @@ static PyTypeObject permutations_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_permutations, /* tp_new */
+ itertools_permutations, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
-
+
/* accumulate object ********************************************************/
typedef struct {
@@ -3475,23 +3475,23 @@ typedef struct {
PyObject *total;
PyObject *it;
PyObject *binop;
- PyObject *initial;
+ PyObject *initial;
} accumulateobject;
-/*[clinic input]
-@classmethod
-itertools.accumulate.__new__
- iterable: object
- func as binop: object = None
- *
- initial: object = None
-Return series of accumulated sums (or other binary function results).
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.accumulate.__new__
+ iterable: object
+ func as binop: object = None
+ *
+ initial: object = None
+Return series of accumulated sums (or other binary function results).
+[clinic start generated code]*/
+
static PyObject *
-itertools_accumulate_impl(PyTypeObject *type, PyObject *iterable,
- PyObject *binop, PyObject *initial)
-/*[clinic end generated code: output=66da2650627128f8 input=c4ce20ac59bf7ffd]*/
+itertools_accumulate_impl(PyTypeObject *type, PyObject *iterable,
+ PyObject *binop, PyObject *initial)
+/*[clinic end generated code: output=66da2650627128f8 input=c4ce20ac59bf7ffd]*/
{
PyObject *it;
accumulateobject *lz;
@@ -3514,8 +3514,8 @@ itertools_accumulate_impl(PyTypeObject *type, PyObject *iterable,
}
lz->total = NULL;
lz->it = it;
- Py_XINCREF(initial);
- lz->initial = initial;
+ Py_XINCREF(initial);
+ lz->initial = initial;
return (PyObject *)lz;
}
@@ -3526,7 +3526,7 @@ accumulate_dealloc(accumulateobject *lz)
Py_XDECREF(lz->binop);
Py_XDECREF(lz->total);
Py_XDECREF(lz->it);
- Py_XDECREF(lz->initial);
+ Py_XDECREF(lz->initial);
Py_TYPE(lz)->tp_free(lz);
}
@@ -3536,7 +3536,7 @@ accumulate_traverse(accumulateobject *lz, visitproc visit, void *arg)
Py_VISIT(lz->binop);
Py_VISIT(lz->it);
Py_VISIT(lz->total);
- Py_VISIT(lz->initial);
+ Py_VISIT(lz->initial);
return 0;
}
@@ -3545,13 +3545,13 @@ accumulate_next(accumulateobject *lz)
{
PyObject *val, *newtotal;
- if (lz->initial != Py_None) {
- lz->total = lz->initial;
- Py_INCREF(Py_None);
- lz->initial = Py_None;
- Py_INCREF(lz->total);
- return lz->total;
- }
+ if (lz->initial != Py_None) {
+ lz->total = lz->initial;
+ Py_INCREF(Py_None);
+ lz->initial = Py_None;
+ Py_INCREF(lz->total);
+ return lz->total;
+ }
val = (*Py_TYPE(lz->it)->tp_iternext)(lz->it);
if (val == NULL)
return NULL;
@@ -3576,21 +3576,21 @@ accumulate_next(accumulateobject *lz)
}
static PyObject *
-accumulate_reduce(accumulateobject *lz, PyObject *Py_UNUSED(ignored))
-{
- if (lz->initial != Py_None) {
- PyObject *it;
-
- assert(lz->total == NULL);
- if (PyType_Ready(&chain_type) < 0)
- return NULL;
- it = PyObject_CallFunction((PyObject *)&chain_type, "(O)O",
- lz->initial, lz->it);
- if (it == NULL)
- return NULL;
- return Py_BuildValue("O(NO)O", Py_TYPE(lz),
- it, lz->binop?lz->binop:Py_None, Py_None);
- }
+accumulate_reduce(accumulateobject *lz, PyObject *Py_UNUSED(ignored))
+{
+ if (lz->initial != Py_None) {
+ PyObject *it;
+
+ assert(lz->total == NULL);
+ if (PyType_Ready(&chain_type) < 0)
+ return NULL;
+ it = PyObject_CallFunction((PyObject *)&chain_type, "(O)O",
+ lz->initial, lz->it);
+ if (it == NULL)
+ return NULL;
+ return Py_BuildValue("O(NO)O", Py_TYPE(lz),
+ it, lz->binop?lz->binop:Py_None, Py_None);
+ }
if (lz->total == Py_None) {
PyObject *it;
@@ -3636,10 +3636,10 @@ static PyTypeObject accumulate_type = {
0, /* tp_itemsize */
/* methods */
(destructor)accumulate_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3652,7 +3652,7 @@ static PyTypeObject accumulate_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_accumulate__doc__, /* tp_doc */
+ itertools_accumulate__doc__, /* tp_doc */
(traverseproc)accumulate_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -3669,7 +3669,7 @@ static PyTypeObject accumulate_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_accumulate, /* tp_new */
+ itertools_accumulate, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -3689,20 +3689,20 @@ typedef struct {
PyObject *selectors;
} compressobject;
-/*[clinic input]
-@classmethod
-itertools.compress.__new__
- data as seq1: object
- selectors as seq2: object
-Return data elements corresponding to true selector elements.
-
-Forms a shorter iterator from selected data elements using the selectors to
-choose the data elements.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.compress.__new__
+ data as seq1: object
+ selectors as seq2: object
+Return data elements corresponding to true selector elements.
+
+Forms a shorter iterator from selected data elements using the selectors to
+choose the data elements.
+[clinic start generated code]*/
+
static PyObject *
-itertools_compress_impl(PyTypeObject *type, PyObject *seq1, PyObject *seq2)
-/*[clinic end generated code: output=7e67157212ed09e0 input=79596d7cd20c77e5]*/
+itertools_compress_impl(PyTypeObject *type, PyObject *seq1, PyObject *seq2)
+/*[clinic end generated code: output=7e67157212ed09e0 input=79596d7cd20c77e5]*/
{
PyObject *data=NULL, *selectors=NULL;
compressobject *lz;
@@ -3782,7 +3782,7 @@ compress_next(compressobject *lz)
}
static PyObject *
-compress_reduce(compressobject *lz, PyObject *Py_UNUSED(ignored))
+compress_reduce(compressobject *lz, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(OO)", Py_TYPE(lz),
lz->data, lz->selectors);
@@ -3801,10 +3801,10 @@ static PyTypeObject compress_type = {
0, /* tp_itemsize */
/* methods */
(destructor)compress_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3817,7 +3817,7 @@ static PyTypeObject compress_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_compress__doc__, /* tp_doc */
+ itertools_compress__doc__, /* tp_doc */
(traverseproc)compress_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -3834,7 +3834,7 @@ static PyTypeObject compress_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_compress, /* tp_new */
+ itertools_compress, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -3847,20 +3847,20 @@ typedef struct {
PyObject *it;
} filterfalseobject;
-/*[clinic input]
-@classmethod
-itertools.filterfalse.__new__
- function as func: object
- iterable as seq: object
- /
-Return those items of iterable for which function(item) is false.
-
-If function is None, return the items that are false.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.filterfalse.__new__
+ function as func: object
+ iterable as seq: object
+ /
+Return those items of iterable for which function(item) is false.
+
+If function is None, return the items that are false.
+[clinic start generated code]*/
+
static PyObject *
-itertools_filterfalse_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
-/*[clinic end generated code: output=55f87eab9fc0484e input=2d684a2c66f99cde]*/
+itertools_filterfalse_impl(PyTypeObject *type, PyObject *func, PyObject *seq)
+/*[clinic end generated code: output=55f87eab9fc0484e input=2d684a2c66f99cde]*/
{
PyObject *it;
filterfalseobject *lz;
@@ -3918,7 +3918,7 @@ filterfalse_next(filterfalseobject *lz)
ok = PyObject_IsTrue(item);
} else {
PyObject *good;
- good = PyObject_CallOneArg(lz->func, item);
+ good = PyObject_CallOneArg(lz->func, item);
if (good == NULL) {
Py_DECREF(item);
return NULL;
@@ -3935,7 +3935,7 @@ filterfalse_next(filterfalseobject *lz)
}
static PyObject *
-filterfalse_reduce(filterfalseobject *lz, PyObject *Py_UNUSED(ignored))
+filterfalse_reduce(filterfalseobject *lz, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->func, lz->it);
}
@@ -3953,10 +3953,10 @@ static PyTypeObject filterfalse_type = {
0, /* tp_itemsize */
/* methods */
(destructor)filterfalse_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3969,7 +3969,7 @@ static PyTypeObject filterfalse_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_filterfalse__doc__, /* tp_doc */
+ itertools_filterfalse__doc__, /* tp_doc */
(traverseproc)filterfalse_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -3986,7 +3986,7 @@ static PyTypeObject filterfalse_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_filterfalse, /* tp_new */
+ itertools_filterfalse, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -4017,25 +4017,25 @@ slow_mode: when cnt == PY_SSIZE_T_MAX, step is not int(1), or cnt is a float.
Either long_cnt or long_step may be a float, Fraction, or Decimal.
*/
-/*[clinic input]
-@classmethod
-itertools.count.__new__
- start as long_cnt: object(c_default="NULL") = 0
- step as long_step: object(c_default="NULL") = 1
-Return a count object whose .__next__() method returns consecutive values.
-
-Equivalent to:
- def count(firstval=0, step=1):
- x = firstval
- while 1:
- yield x
- x += step
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+itertools.count.__new__
+ start as long_cnt: object(c_default="NULL") = 0
+ step as long_step: object(c_default="NULL") = 1
+Return a count object whose .__next__() method returns consecutive values.
+
+Equivalent to:
+ def count(firstval=0, step=1):
+ x = firstval
+ while 1:
+ yield x
+ x += step
+[clinic start generated code]*/
+
static PyObject *
-itertools_count_impl(PyTypeObject *type, PyObject *long_cnt,
- PyObject *long_step)
-/*[clinic end generated code: output=09a9250aebd00b1c input=d7a85eec18bfcd94]*/
+itertools_count_impl(PyTypeObject *type, PyObject *long_cnt,
+ PyObject *long_step)
+/*[clinic end generated code: output=09a9250aebd00b1c input=d7a85eec18bfcd94]*/
{
countobject *lz;
int fast_mode;
@@ -4099,7 +4099,7 @@ itertools_count_impl(PyTypeObject *type, PyObject *long_cnt,
lz = (countobject *)type->tp_alloc(type, 0);
if (lz == NULL) {
Py_XDECREF(long_cnt);
- Py_DECREF(long_step);
+ Py_DECREF(long_step);
return NULL;
}
lz->cnt = cnt;
@@ -4181,7 +4181,7 @@ count_repr(countobject *lz)
}
static PyObject *
-count_reduce(countobject *lz, PyObject *Py_UNUSED(ignored))
+count_reduce(countobject *lz, PyObject *Py_UNUSED(ignored))
{
if (lz->cnt == PY_SSIZE_T_MAX)
return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->long_cnt, lz->long_step);
@@ -4201,10 +4201,10 @@ static PyTypeObject count_type = {
0, /* tp_itemsize */
/* methods */
(destructor)count_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)count_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4217,7 +4217,7 @@ static PyTypeObject count_type = {
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
Py_TPFLAGS_BASETYPE, /* tp_flags */
- itertools_count__doc__, /* tp_doc */
+ itertools_count__doc__, /* tp_doc */
(traverseproc)count_traverse, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -4234,7 +4234,7 @@ static PyTypeObject count_type = {
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
- itertools_count, /* tp_new */
+ itertools_count, /* tp_new */
PyObject_GC_Del, /* tp_free */
};
@@ -4254,17 +4254,17 @@ repeat_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
repeatobject *ro;
PyObject *element;
- Py_ssize_t cnt = -1, n_args;
+ Py_ssize_t cnt = -1, n_args;
static char *kwargs[] = {"object", "times", NULL};
- n_args = PyTuple_GET_SIZE(args);
- if (kwds != NULL)
- n_args += PyDict_GET_SIZE(kwds);
+ n_args = PyTuple_GET_SIZE(args);
+ if (kwds != NULL)
+ n_args += PyDict_GET_SIZE(kwds);
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:repeat", kwargs,
&element, &cnt))
return NULL;
/* Does user supply times argument? */
- if (n_args == 2 && cnt < 0)
+ if (n_args == 2 && cnt < 0)
cnt = 0;
ro = (repeatobject *)type->tp_alloc(type, 0);
@@ -4315,7 +4315,7 @@ repeat_repr(repeatobject *ro)
}
static PyObject *
-repeat_len(repeatobject *ro, PyObject *Py_UNUSED(ignored))
+repeat_len(repeatobject *ro, PyObject *Py_UNUSED(ignored))
{
if (ro->cnt == -1) {
PyErr_SetString(PyExc_TypeError, "len() of unsized object");
@@ -4327,7 +4327,7 @@ repeat_len(repeatobject *ro, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
static PyObject *
-repeat_reduce(repeatobject *ro, PyObject *Py_UNUSED(ignored))
+repeat_reduce(repeatobject *ro, PyObject *Py_UNUSED(ignored))
{
/* unpickle this so that a new repeat iterator is constructed with an
* object, then call __setstate__ on it to set cnt
@@ -4356,10 +4356,10 @@ static PyTypeObject repeat_type = {
0, /* tp_itemsize */
/* methods */
(destructor)repeat_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)repeat_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4393,7 +4393,7 @@ static PyTypeObject repeat_type = {
PyObject_GC_Del, /* tp_free */
};
-
+
/* ziplongest object *********************************************************/
typedef struct {
@@ -4410,7 +4410,7 @@ static PyTypeObject ziplongest_type;
static PyObject *
zip_longest_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
- _Py_IDENTIFIER(fillvalue);
+ _Py_IDENTIFIER(fillvalue);
ziplongestobject *lz;
Py_ssize_t i;
PyObject *ittuple; /* tuple of iterators */
@@ -4419,15 +4419,15 @@ zip_longest_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_ssize_t tuplesize;
if (kwds != NULL && PyDict_CheckExact(kwds) && PyDict_GET_SIZE(kwds) > 0) {
- fillvalue = NULL;
- if (PyDict_GET_SIZE(kwds) == 1) {
- fillvalue = _PyDict_GetItemIdWithError(kwds, &PyId_fillvalue);
- }
- if (fillvalue == NULL) {
- if (!PyErr_Occurred()) {
- PyErr_SetString(PyExc_TypeError,
- "zip_longest() got an unexpected keyword argument");
- }
+ fillvalue = NULL;
+ if (PyDict_GET_SIZE(kwds) == 1) {
+ fillvalue = _PyDict_GetItemIdWithError(kwds, &PyId_fillvalue);
+ }
+ if (fillvalue == NULL) {
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(PyExc_TypeError,
+ "zip_longest() got an unexpected keyword argument");
+ }
return NULL;
}
}
@@ -4537,11 +4537,11 @@ zip_longest_next(ziplongestobject *lz)
PyTuple_SET_ITEM(result, i, item);
Py_DECREF(olditem);
}
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
} else {
result = PyTuple_New(tuplesize);
if (result == NULL)
@@ -4574,7 +4574,7 @@ zip_longest_next(ziplongestobject *lz)
}
static PyObject *
-zip_longest_reduce(ziplongestobject *lz, PyObject *Py_UNUSED(ignored))
+zip_longest_reduce(ziplongestobject *lz, PyObject *Py_UNUSED(ignored))
{
/* Create a new tuple with empty sequences where appropriate to pickle.
@@ -4634,10 +4634,10 @@ static PyTypeObject ziplongest_type = {
0, /* tp_itemsize */
/* methods */
(destructor)zip_longest_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4671,7 +4671,7 @@ static PyTypeObject ziplongest_type = {
PyObject_GC_Del, /* tp_free */
};
-
+
/* module level code ********************************************************/
PyDoc_STRVAR(module_doc,
@@ -4684,8 +4684,8 @@ repeat(elem [,n]) --> elem, elem, elem, ... endlessly or up to n times\n\
\n\
Iterators terminating on the shortest input sequence:\n\
accumulate(p[, func]) --> p0, p0+p1, p0+p1+p2\n\
-chain(p, q, ...) --> p0, p1, ... plast, q0, q1, ...\n\
-chain.from_iterable([p, q, ...]) --> p0, p1, ... plast, q0, q1, ...\n\
+chain(p, q, ...) --> p0, p1, ... plast, q0, q1, ...\n\
+chain.from_iterable([p, q, ...]) --> p0, p1, ... plast, q0, q1, ...\n\
compress(data, selectors) --> (d[0] if s[0]), (d[1] if s[1]), ...\n\
dropwhile(pred, seq) --> seq[n], seq[n+1], starting when pred fails\n\
groupby(iterable[, keyfunc]) --> sub-iterators grouped by value of keyfunc(v)\n\
@@ -4695,7 +4695,7 @@ islice(seq, [start,] stop [, step]) --> elements from\n\
starmap(fun, seq) --> fun(*seq[0]), fun(*seq[1]), ...\n\
tee(it, n=2) --> (it1, it2 , ... itn) splits one iterator into n\n\
takewhile(pred, seq) --> seq[0], seq[1], until pred fails\n\
-zip_longest(p, q, ...) --> (p[0], q[0]), (p[1], q[1]), ...\n\
+zip_longest(p, q, ...) --> (p[0], q[0]), (p[1], q[1]), ...\n\
\n\
Combinatoric generators:\n\
product(p, q, ... [repeat=1]) --> cartesian product\n\
@@ -4704,8 +4704,8 @@ combinations(p, r)\n\
combinations_with_replacement(p, r)\n\
");
-static int
-itertoolsmodule_exec(PyObject *m)
+static int
+itertoolsmodule_exec(PyObject *m)
{
PyTypeObject *typelist[] = {
&accumulate_type,
@@ -4727,45 +4727,45 @@ itertoolsmodule_exec(PyObject *m)
&groupby_type,
&_grouper_type,
&tee_type,
- &teedataobject_type
+ &teedataobject_type
};
- Py_SET_TYPE(&teedataobject_type, &PyType_Type);
+ Py_SET_TYPE(&teedataobject_type, &PyType_Type);
- for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
- if (PyModule_AddType(m, typelist[i]) < 0) {
- return -1;
- }
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(typelist); i++) {
+ if (PyModule_AddType(m, typelist[i]) < 0) {
+ return -1;
+ }
}
- return 0;
-}
-
-static struct PyModuleDef_Slot itertoolsmodule_slots[] = {
- {Py_mod_exec, itertoolsmodule_exec},
- {0, NULL}
-};
-
-static PyMethodDef module_methods[] = {
- ITERTOOLS_TEE_METHODDEF
- {NULL, NULL} /* sentinel */
-};
-
-
-static struct PyModuleDef itertoolsmodule = {
- PyModuleDef_HEAD_INIT,
- "itertools",
- module_doc,
- 0,
- module_methods,
- itertoolsmodule_slots,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit_itertools(void)
-{
- return PyModuleDef_Init(&itertoolsmodule);
-}
+ return 0;
+}
+
+static struct PyModuleDef_Slot itertoolsmodule_slots[] = {
+ {Py_mod_exec, itertoolsmodule_exec},
+ {0, NULL}
+};
+
+static PyMethodDef module_methods[] = {
+ ITERTOOLS_TEE_METHODDEF
+ {NULL, NULL} /* sentinel */
+};
+
+
+static struct PyModuleDef itertoolsmodule = {
+ PyModuleDef_HEAD_INIT,
+ "itertools",
+ module_doc,
+ 0,
+ module_methods,
+ itertoolsmodule_slots,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC
+PyInit_itertools(void)
+{
+ return PyModuleDef_Init(&itertoolsmodule);
+}
diff --git a/contrib/tools/python3/src/Modules/main.c b/contrib/tools/python3/src/Modules/main.c
index edb7064eef..1eec0f96c0 100644
--- a/contrib/tools/python3/src/Modules/main.c
+++ b/contrib/tools/python3/src/Modules/main.c
@@ -1,24 +1,24 @@
/* Python interpreter main program */
#include "Python.h"
-#include "pycore_initconfig.h" // _PyArgv
-#include "pycore_interp.h" // _PyInterpreterState.sysdict
-#include "pycore_pathconfig.h" // _PyPathConfig_ComputeSysPath0()
-#include "pycore_pylifecycle.h" // _Py_PreInitializeFromPyArgv()
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-
-/* Includes for exit_sigint() */
-#include <stdio.h> // perror()
-#ifdef HAVE_SIGNAL_H
-# include <signal.h> // SIGINT
+#include "pycore_initconfig.h" // _PyArgv
+#include "pycore_interp.h" // _PyInterpreterState.sysdict
+#include "pycore_pathconfig.h" // _PyPathConfig_ComputeSysPath0()
+#include "pycore_pylifecycle.h" // _Py_PreInitializeFromPyArgv()
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+
+/* Includes for exit_sigint() */
+#include <stdio.h> // perror()
+#ifdef HAVE_SIGNAL_H
+# include <signal.h> // SIGINT
#endif
-#if defined(HAVE_GETPID) && defined(HAVE_UNISTD_H)
-# include <unistd.h> // getpid()
-#endif
-#ifdef MS_WINDOWS
-# include <windows.h> // STATUS_CONTROL_C_EXIT
+#if defined(HAVE_GETPID) && defined(HAVE_UNISTD_H)
+# include <unistd.h> // getpid()
#endif
-/* End of includes for exit_sigint() */
+#ifdef MS_WINDOWS
+# include <windows.h> // STATUS_CONTROL_C_EXIT
+#endif
+/* End of includes for exit_sigint() */
#define COPYRIGHT \
"Type \"help\", \"copyright\", \"credits\" or \"license\" " \
@@ -28,102 +28,102 @@
extern "C" {
#endif
-/* --- pymain_init() ---------------------------------------------- */
+/* --- pymain_init() ---------------------------------------------- */
-static PyStatus
-pymain_init(const _PyArgv *args)
-{
- PyStatus status;
+static PyStatus
+pymain_init(const _PyArgv *args)
+{
+ PyStatus status;
- status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
- PyPreConfig preconfig;
- PyPreConfig_InitPythonConfig(&preconfig);
+ PyPreConfig preconfig;
+ PyPreConfig_InitPythonConfig(&preconfig);
- status = _Py_PreInitializeFromPyArgv(&preconfig, args);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ status = _Py_PreInitializeFromPyArgv(&preconfig, args);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
- PyConfig config;
- PyConfig_InitPythonConfig(&config);
+ PyConfig config;
+ PyConfig_InitPythonConfig(&config);
config.pathconfig_warnings = 0; /* Suppress errors from getpath.c */
- /* pass NULL as the config: config is read from command line arguments,
- environment variables, configuration files */
- if (args->use_bytes_argv) {
- status = PyConfig_SetBytesArgv(&config, args->argc, args->bytes_argv);
+ /* pass NULL as the config: config is read from command line arguments,
+ environment variables, configuration files */
+ if (args->use_bytes_argv) {
+ status = PyConfig_SetBytesArgv(&config, args->argc, args->bytes_argv);
}
else {
- status = PyConfig_SetArgv(&config, args->argc, args->wchar_argv);
+ status = PyConfig_SetArgv(&config, args->argc, args->wchar_argv);
}
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
}
- status = Py_InitializeFromConfig(&config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
+ status = Py_InitializeFromConfig(&config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
}
- status = _PyStatus_OK();
+ status = _PyStatus_OK();
+
+done:
+ PyConfig_Clear(&config);
+ return status;
+}
-done:
- PyConfig_Clear(&config);
- return status;
-}
+/* --- pymain_run_python() ---------------------------------------- */
-/* --- pymain_run_python() ---------------------------------------- */
-
-/* Non-zero if filename, command (-c) or module (-m) is set
- on the command line */
-static inline int config_run_code(const PyConfig *config)
-{
- return (config->run_command != NULL
- || config->run_filename != NULL
- || config->run_module != NULL);
+/* Non-zero if filename, command (-c) or module (-m) is set
+ on the command line */
+static inline int config_run_code(const PyConfig *config)
+{
+ return (config->run_command != NULL
+ || config->run_filename != NULL
+ || config->run_module != NULL);
}
-/* Return non-zero is stdin is a TTY or if -i command line option is used */
-static int
-stdin_is_interactive(const PyConfig *config)
+/* Return non-zero is stdin is a TTY or if -i command line option is used */
+static int
+stdin_is_interactive(const PyConfig *config)
{
- return (isatty(fileno(stdin)) || config->interactive);
-}
+ return (isatty(fileno(stdin)) || config->interactive);
+}
-/* Display the current Python exception and return an exitcode */
-static int
-pymain_err_print(int *exitcode_p)
+/* Display the current Python exception and return an exitcode */
+static int
+pymain_err_print(int *exitcode_p)
{
- int exitcode;
- if (_Py_HandleSystemExit(&exitcode)) {
- *exitcode_p = exitcode;
- return 1;
+ int exitcode;
+ if (_Py_HandleSystemExit(&exitcode)) {
+ *exitcode_p = exitcode;
+ return 1;
}
PyErr_Print();
- return 0;
+ return 0;
}
static int
-pymain_exit_err_print(void)
+pymain_exit_err_print(void)
{
- int exitcode = 1;
- pymain_err_print(&exitcode);
- return exitcode;
+ int exitcode = 1;
+ pymain_err_print(&exitcode);
+ return exitcode;
}
-
-/* Write an exitcode into *exitcode and return 1 if we have to exit Python.
- Return 0 otherwise. */
-static int
-pymain_get_importer(const wchar_t *filename, PyObject **importer_p, int *exitcode)
+
+/* Write an exitcode into *exitcode and return 1 if we have to exit Python.
+ Return 0 otherwise. */
+static int
+pymain_get_importer(const wchar_t *filename, PyObject **importer_p, int *exitcode)
{
PyObject *sys_path0 = NULL, *importer;
@@ -140,197 +140,197 @@ pymain_get_importer(const wchar_t *filename, PyObject **importer_p, int *exitcod
if (importer == Py_None) {
Py_DECREF(sys_path0);
Py_DECREF(importer);
- return 0;
+ return 0;
}
Py_DECREF(importer);
- *importer_p = sys_path0;
- return 0;
+ *importer_p = sys_path0;
+ return 0;
error:
Py_XDECREF(sys_path0);
-
+
PySys_WriteStderr("Failed checking if argv[0] is an import path entry\n");
- return pymain_err_print(exitcode);
+ return pymain_err_print(exitcode);
}
static int
-pymain_sys_path_add_path0(PyInterpreterState *interp, PyObject *path0)
+pymain_sys_path_add_path0(PyInterpreterState *interp, PyObject *path0)
{
- _Py_IDENTIFIER(path);
- PyObject *sys_path;
- PyObject *sysdict = interp->sysdict;
- if (sysdict != NULL) {
- sys_path = _PyDict_GetItemIdWithError(sysdict, &PyId_path);
- if (sys_path == NULL && PyErr_Occurred()) {
+ _Py_IDENTIFIER(path);
+ PyObject *sys_path;
+ PyObject *sysdict = interp->sysdict;
+ if (sysdict != NULL) {
+ sys_path = _PyDict_GetItemIdWithError(sysdict, &PyId_path);
+ if (sys_path == NULL && PyErr_Occurred()) {
return -1;
}
}
else {
- sys_path = NULL;
+ sys_path = NULL;
}
if (sys_path == NULL) {
PyErr_SetString(PyExc_RuntimeError, "unable to get sys.path");
- return -1;
+ return -1;
}
- if (PyList_Insert(sys_path, 0, path0)) {
+ if (PyList_Insert(sys_path, 0, path0)) {
return -1;
}
return 0;
}
-static void
-pymain_header(const PyConfig *config)
+static void
+pymain_header(const PyConfig *config)
{
- if (config->quiet) {
- return;
+ if (config->quiet) {
+ return;
}
- if (!config->verbose && (config_run_code(config) || !stdin_is_interactive(config))) {
- return;
+ if (!config->verbose && (config_run_code(config) || !stdin_is_interactive(config))) {
+ return;
}
- fprintf(stderr, "Python %s on %s\n", Py_GetVersion(), Py_GetPlatform());
- if (config->site_import) {
- fprintf(stderr, "%s\n", COPYRIGHT);
+ fprintf(stderr, "Python %s on %s\n", Py_GetVersion(), Py_GetPlatform());
+ if (config->site_import) {
+ fprintf(stderr, "%s\n", COPYRIGHT);
}
}
static void
-pymain_import_readline(const PyConfig *config)
+pymain_import_readline(const PyConfig *config)
{
- if (config->isolated) {
- return;
+ if (config->isolated) {
+ return;
}
- if (!config->inspect && config_run_code(config)) {
- return;
+ if (!config->inspect && config_run_code(config)) {
+ return;
}
- if (!isatty(fileno(stdin))) {
- return;
+ if (!isatty(fileno(stdin))) {
+ return;
}
- PyObject *mod = PyImport_ImportModule("readline");
- if (mod == NULL) {
- PyErr_Clear();
+ PyObject *mod = PyImport_ImportModule("readline");
+ if (mod == NULL) {
+ PyErr_Clear();
}
else {
- Py_DECREF(mod);
+ Py_DECREF(mod);
}
}
-static int
-pymain_run_command(wchar_t *command, PyCompilerFlags *cf)
+static int
+pymain_run_command(wchar_t *command, PyCompilerFlags *cf)
{
- PyObject *unicode, *bytes;
- int ret;
+ PyObject *unicode, *bytes;
+ int ret;
- unicode = PyUnicode_FromWideChar(command, -1);
- if (unicode == NULL) {
- goto error;
+ unicode = PyUnicode_FromWideChar(command, -1);
+ if (unicode == NULL) {
+ goto error;
}
- if (PySys_Audit("cpython.run_command", "O", unicode) < 0) {
- return pymain_exit_err_print();
+ if (PySys_Audit("cpython.run_command", "O", unicode) < 0) {
+ return pymain_exit_err_print();
}
- bytes = PyUnicode_AsUTF8String(unicode);
- Py_DECREF(unicode);
- if (bytes == NULL) {
- goto error;
+ bytes = PyUnicode_AsUTF8String(unicode);
+ Py_DECREF(unicode);
+ if (bytes == NULL) {
+ goto error;
}
- ret = PyRun_SimpleStringFlags(PyBytes_AsString(bytes), cf);
- Py_DECREF(bytes);
- return (ret != 0);
+ ret = PyRun_SimpleStringFlags(PyBytes_AsString(bytes), cf);
+ Py_DECREF(bytes);
+ return (ret != 0);
-error:
- PySys_WriteStderr("Unable to decode the command from the command line:\n");
- return pymain_exit_err_print();
+error:
+ PySys_WriteStderr("Unable to decode the command from the command line:\n");
+ return pymain_exit_err_print();
}
static int
-pymain_run_module(const wchar_t *modname, int set_argv0)
+pymain_run_module(const wchar_t *modname, int set_argv0)
{
- PyObject *module, *runpy, *runmodule, *runargs, *result;
- if (PySys_Audit("cpython.run_module", "u", modname) < 0) {
- return pymain_exit_err_print();
- }
- runpy = PyImport_ImportModule("runpy");
- if (runpy == NULL) {
- fprintf(stderr, "Could not import runpy module\n");
- return pymain_exit_err_print();
- }
- runmodule = PyObject_GetAttrString(runpy, "_run_module_as_main");
- if (runmodule == NULL) {
- fprintf(stderr, "Could not access runpy._run_module_as_main\n");
- Py_DECREF(runpy);
- return pymain_exit_err_print();
- }
- module = PyUnicode_FromWideChar(modname, wcslen(modname));
- if (module == NULL) {
- fprintf(stderr, "Could not convert module name to unicode\n");
- Py_DECREF(runpy);
- Py_DECREF(runmodule);
- return pymain_exit_err_print();
- }
- runargs = PyTuple_Pack(2, module, set_argv0 ? Py_True : Py_False);
- if (runargs == NULL) {
- fprintf(stderr,
- "Could not create arguments for runpy._run_module_as_main\n");
- Py_DECREF(runpy);
- Py_DECREF(runmodule);
- Py_DECREF(module);
- return pymain_exit_err_print();
- }
- _Py_UnhandledKeyboardInterrupt = 0;
- result = PyObject_Call(runmodule, runargs, NULL);
- if (!result && PyErr_Occurred() == PyExc_KeyboardInterrupt) {
- _Py_UnhandledKeyboardInterrupt = 1;
- }
- Py_DECREF(runpy);
- Py_DECREF(runmodule);
- Py_DECREF(module);
- Py_DECREF(runargs);
- if (result == NULL) {
- return pymain_exit_err_print();
- }
- Py_DECREF(result);
+ PyObject *module, *runpy, *runmodule, *runargs, *result;
+ if (PySys_Audit("cpython.run_module", "u", modname) < 0) {
+ return pymain_exit_err_print();
+ }
+ runpy = PyImport_ImportModule("runpy");
+ if (runpy == NULL) {
+ fprintf(stderr, "Could not import runpy module\n");
+ return pymain_exit_err_print();
+ }
+ runmodule = PyObject_GetAttrString(runpy, "_run_module_as_main");
+ if (runmodule == NULL) {
+ fprintf(stderr, "Could not access runpy._run_module_as_main\n");
+ Py_DECREF(runpy);
+ return pymain_exit_err_print();
+ }
+ module = PyUnicode_FromWideChar(modname, wcslen(modname));
+ if (module == NULL) {
+ fprintf(stderr, "Could not convert module name to unicode\n");
+ Py_DECREF(runpy);
+ Py_DECREF(runmodule);
+ return pymain_exit_err_print();
+ }
+ runargs = PyTuple_Pack(2, module, set_argv0 ? Py_True : Py_False);
+ if (runargs == NULL) {
+ fprintf(stderr,
+ "Could not create arguments for runpy._run_module_as_main\n");
+ Py_DECREF(runpy);
+ Py_DECREF(runmodule);
+ Py_DECREF(module);
+ return pymain_exit_err_print();
+ }
+ _Py_UnhandledKeyboardInterrupt = 0;
+ result = PyObject_Call(runmodule, runargs, NULL);
+ if (!result && PyErr_Occurred() == PyExc_KeyboardInterrupt) {
+ _Py_UnhandledKeyboardInterrupt = 1;
+ }
+ Py_DECREF(runpy);
+ Py_DECREF(runmodule);
+ Py_DECREF(module);
+ Py_DECREF(runargs);
+ if (result == NULL) {
+ return pymain_exit_err_print();
+ }
+ Py_DECREF(result);
return 0;
}
static int
-pymain_run_file(const PyConfig *config, PyCompilerFlags *cf)
+pymain_run_file(const PyConfig *config, PyCompilerFlags *cf)
{
- const wchar_t *filename = config->run_filename;
- if (PySys_Audit("cpython.run_file", "u", filename) < 0) {
- return pymain_exit_err_print();
+ const wchar_t *filename = config->run_filename;
+ if (PySys_Audit("cpython.run_file", "u", filename) < 0) {
+ return pymain_exit_err_print();
}
- FILE *fp = _Py_wfopen(filename, L"rb");
+ FILE *fp = _Py_wfopen(filename, L"rb");
if (fp == NULL) {
char *cfilename_buffer;
const char *cfilename;
int err = errno;
- cfilename_buffer = _Py_EncodeLocaleRaw(filename, NULL);
+ cfilename_buffer = _Py_EncodeLocaleRaw(filename, NULL);
if (cfilename_buffer != NULL)
cfilename = cfilename_buffer;
else
cfilename = "<unprintable file name>";
fprintf(stderr, "%ls: can't open file '%s': [Errno %d] %s\n",
- config->program_name, cfilename, err, strerror(err));
+ config->program_name, cfilename, err, strerror(err));
PyMem_RawFree(cfilename_buffer);
- return 2;
+ return 2;
}
- if (config->skip_source_first_line) {
+ if (config->skip_source_first_line) {
int ch;
- /* Push back first newline so line numbers remain the same */
+ /* Push back first newline so line numbers remain the same */
while ((ch = getc(fp)) != EOF) {
if (ch == '\n') {
(void)ungetc(ch, fp);
@@ -340,396 +340,396 @@ pymain_run_file(const PyConfig *config, PyCompilerFlags *cf)
}
struct _Py_stat_struct sb;
- if (_Py_fstat_noraise(fileno(fp), &sb) == 0 && S_ISDIR(sb.st_mode)) {
+ if (_Py_fstat_noraise(fileno(fp), &sb) == 0 && S_ISDIR(sb.st_mode)) {
fprintf(stderr,
"%ls: '%ls' is a directory, cannot continue\n",
- config->program_name, filename);
+ config->program_name, filename);
fclose(fp);
return 1;
}
- /* call pending calls like signal handlers (SIGINT) */
- if (Py_MakePendingCalls() == -1) {
- fclose(fp);
- return pymain_exit_err_print();
+ /* call pending calls like signal handlers (SIGINT) */
+ if (Py_MakePendingCalls() == -1) {
+ fclose(fp);
+ return pymain_exit_err_print();
}
- PyObject *unicode, *bytes = NULL;
- const char *filename_str;
+ PyObject *unicode, *bytes = NULL;
+ const char *filename_str;
- unicode = PyUnicode_FromWideChar(filename, wcslen(filename));
- if (unicode != NULL) {
- bytes = PyUnicode_EncodeFSDefault(unicode);
- Py_DECREF(unicode);
+ unicode = PyUnicode_FromWideChar(filename, wcslen(filename));
+ if (unicode != NULL) {
+ bytes = PyUnicode_EncodeFSDefault(unicode);
+ Py_DECREF(unicode);
}
- if (bytes != NULL) {
- filename_str = PyBytes_AsString(bytes);
+ if (bytes != NULL) {
+ filename_str = PyBytes_AsString(bytes);
}
- else {
- PyErr_Clear();
- filename_str = "<filename encoding error>";
+ else {
+ PyErr_Clear();
+ filename_str = "<filename encoding error>";
}
- /* PyRun_AnyFileExFlags(closeit=1) calls fclose(fp) before running code */
- int run = PyRun_AnyFileExFlags(fp, filename_str, 1, cf);
- Py_XDECREF(bytes);
- return (run != 0);
+ /* PyRun_AnyFileExFlags(closeit=1) calls fclose(fp) before running code */
+ int run = PyRun_AnyFileExFlags(fp, filename_str, 1, cf);
+ Py_XDECREF(bytes);
+ return (run != 0);
}
static int
-pymain_run_startup(PyConfig *config, PyCompilerFlags *cf, int *exitcode)
+pymain_run_startup(PyConfig *config, PyCompilerFlags *cf, int *exitcode)
{
- int ret;
- PyObject *startup_obj = NULL;
- if (!config->use_environment) {
- return 0;
+ int ret;
+ PyObject *startup_obj = NULL;
+ if (!config->use_environment) {
+ return 0;
+ }
+#ifdef MS_WINDOWS
+ const wchar_t *wstartup = _wgetenv(L"PYTHONSTARTUP");
+ if (wstartup == NULL || wstartup[0] == L'\0') {
+ return 0;
}
-#ifdef MS_WINDOWS
- const wchar_t *wstartup = _wgetenv(L"PYTHONSTARTUP");
- if (wstartup == NULL || wstartup[0] == L'\0') {
- return 0;
+ PyObject *startup_bytes = NULL;
+ startup_obj = PyUnicode_FromWideChar(wstartup, wcslen(wstartup));
+ if (startup_obj == NULL) {
+ goto error;
}
- PyObject *startup_bytes = NULL;
- startup_obj = PyUnicode_FromWideChar(wstartup, wcslen(wstartup));
- if (startup_obj == NULL) {
- goto error;
+ startup_bytes = PyUnicode_EncodeFSDefault(startup_obj);
+ if (startup_bytes == NULL) {
+ goto error;
}
- startup_bytes = PyUnicode_EncodeFSDefault(startup_obj);
- if (startup_bytes == NULL) {
- goto error;
+ const char *startup = PyBytes_AS_STRING(startup_bytes);
+#else
+ const char *startup = _Py_GetEnv(config->use_environment, "PYTHONSTARTUP");
+ if (startup == NULL) {
+ return 0;
}
- const char *startup = PyBytes_AS_STRING(startup_bytes);
-#else
- const char *startup = _Py_GetEnv(config->use_environment, "PYTHONSTARTUP");
- if (startup == NULL) {
- return 0;
+ startup_obj = PyUnicode_DecodeFSDefault(startup);
+ if (startup_obj == NULL) {
+ goto error;
}
- startup_obj = PyUnicode_DecodeFSDefault(startup);
- if (startup_obj == NULL) {
- goto error;
+#endif
+ if (PySys_Audit("cpython.run_startup", "O", startup_obj) < 0) {
+ goto error;
}
-#endif
- if (PySys_Audit("cpython.run_startup", "O", startup_obj) < 0) {
- goto error;
+
+#ifdef MS_WINDOWS
+ FILE *fp = _Py_wfopen(wstartup, L"r");
+#else
+ FILE *fp = _Py_fopen(startup, "r");
+#endif
+ if (fp == NULL) {
+ int save_errno = errno;
+ PyErr_Clear();
+ PySys_WriteStderr("Could not open PYTHONSTARTUP\n");
+
+ errno = save_errno;
+ PyErr_SetFromErrnoWithFilenameObjects(PyExc_OSError, startup_obj, NULL);
+ goto error;
}
+ (void) PyRun_SimpleFileExFlags(fp, startup, 0, cf);
+ PyErr_Clear();
+ fclose(fp);
+ ret = 0;
+
+done:
#ifdef MS_WINDOWS
- FILE *fp = _Py_wfopen(wstartup, L"r");
-#else
- FILE *fp = _Py_fopen(startup, "r");
+ Py_XDECREF(startup_bytes);
#endif
- if (fp == NULL) {
- int save_errno = errno;
- PyErr_Clear();
- PySys_WriteStderr("Could not open PYTHONSTARTUP\n");
-
- errno = save_errno;
- PyErr_SetFromErrnoWithFilenameObjects(PyExc_OSError, startup_obj, NULL);
- goto error;
- }
-
- (void) PyRun_SimpleFileExFlags(fp, startup, 0, cf);
- PyErr_Clear();
- fclose(fp);
- ret = 0;
-
-done:
-#ifdef MS_WINDOWS
- Py_XDECREF(startup_bytes);
-#endif
- Py_XDECREF(startup_obj);
- return ret;
-
-error:
- ret = pymain_err_print(exitcode);
- goto done;
+ Py_XDECREF(startup_obj);
+ return ret;
+
+error:
+ ret = pymain_err_print(exitcode);
+ goto done;
}
-/* Write an exitcode into *exitcode and return 1 if we have to exit Python.
- Return 0 otherwise. */
+/* Write an exitcode into *exitcode and return 1 if we have to exit Python.
+ Return 0 otherwise. */
static int
-pymain_run_interactive_hook(int *exitcode)
+pymain_run_interactive_hook(int *exitcode)
{
- PyObject *sys, *hook, *result;
- sys = PyImport_ImportModule("sys");
- if (sys == NULL) {
- goto error;
+ PyObject *sys, *hook, *result;
+ sys = PyImport_ImportModule("sys");
+ if (sys == NULL) {
+ goto error;
}
- hook = PyObject_GetAttrString(sys, "__interactivehook__");
- Py_DECREF(sys);
- if (hook == NULL) {
- PyErr_Clear();
- return 0;
+ hook = PyObject_GetAttrString(sys, "__interactivehook__");
+ Py_DECREF(sys);
+ if (hook == NULL) {
+ PyErr_Clear();
+ return 0;
}
- if (PySys_Audit("cpython.run_interactivehook", "O", hook) < 0) {
- goto error;
+ if (PySys_Audit("cpython.run_interactivehook", "O", hook) < 0) {
+ goto error;
}
- result = _PyObject_CallNoArg(hook);
- Py_DECREF(hook);
- if (result == NULL) {
- goto error;
+ result = _PyObject_CallNoArg(hook);
+ Py_DECREF(hook);
+ if (result == NULL) {
+ goto error;
}
- Py_DECREF(result);
+ Py_DECREF(result);
- return 0;
+ return 0;
-error:
- PySys_WriteStderr("Failed calling sys.__interactivehook__\n");
- return pymain_err_print(exitcode);
+error:
+ PySys_WriteStderr("Failed calling sys.__interactivehook__\n");
+ return pymain_err_print(exitcode);
}
static int
-pymain_run_stdin(PyConfig *config, PyCompilerFlags *cf)
+pymain_run_stdin(PyConfig *config, PyCompilerFlags *cf)
{
- if (stdin_is_interactive(config)) {
- config->inspect = 0;
- Py_InspectFlag = 0; /* do exit on SystemExit */
+ if (stdin_is_interactive(config)) {
+ config->inspect = 0;
+ Py_InspectFlag = 0; /* do exit on SystemExit */
- int exitcode;
- if (pymain_run_startup(config, cf, &exitcode)) {
- return exitcode;
+ int exitcode;
+ if (pymain_run_startup(config, cf, &exitcode)) {
+ return exitcode;
}
- if (pymain_run_interactive_hook(&exitcode)) {
- return exitcode;
+ if (pymain_run_interactive_hook(&exitcode)) {
+ return exitcode;
}
}
- /* call pending calls like signal handlers (SIGINT) */
- if (Py_MakePendingCalls() == -1) {
- return pymain_exit_err_print();
+ /* call pending calls like signal handlers (SIGINT) */
+ if (Py_MakePendingCalls() == -1) {
+ return pymain_exit_err_print();
}
- if (PySys_Audit("cpython.run_stdin", NULL) < 0) {
- return pymain_exit_err_print();
+ if (PySys_Audit("cpython.run_stdin", NULL) < 0) {
+ return pymain_exit_err_print();
}
- int run = PyRun_AnyFileExFlags(stdin, "<stdin>", 0, cf);
- return (run != 0);
+ int run = PyRun_AnyFileExFlags(stdin, "<stdin>", 0, cf);
+ return (run != 0);
}
-static void
-pymain_repl(PyConfig *config, PyCompilerFlags *cf, int *exitcode)
+static void
+pymain_repl(PyConfig *config, PyCompilerFlags *cf, int *exitcode)
{
- /* Check this environment variable at the end, to give programs the
- opportunity to set it from Python. */
- if (!config->inspect && _Py_GetEnv(config->use_environment, "PYTHONINSPECT")) {
- config->inspect = 1;
- Py_InspectFlag = 1;
+ /* Check this environment variable at the end, to give programs the
+ opportunity to set it from Python. */
+ if (!config->inspect && _Py_GetEnv(config->use_environment, "PYTHONINSPECT")) {
+ config->inspect = 1;
+ Py_InspectFlag = 1;
}
- if (!(config->inspect && stdin_is_interactive(config) && config_run_code(config))) {
- return;
+ if (!(config->inspect && stdin_is_interactive(config) && config_run_code(config))) {
+ return;
}
- config->inspect = 0;
- Py_InspectFlag = 0;
- if (pymain_run_interactive_hook(exitcode)) {
- return;
+ config->inspect = 0;
+ Py_InspectFlag = 0;
+ if (pymain_run_interactive_hook(exitcode)) {
+ return;
}
- int res = PyRun_AnyFileFlags(stdin, "<stdin>", cf);
- *exitcode = (res != 0);
+ int res = PyRun_AnyFileFlags(stdin, "<stdin>", cf);
+ *exitcode = (res != 0);
}
-static void
-pymain_run_python(int *exitcode)
+static void
+pymain_run_python(int *exitcode)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- /* pymain_run_stdin() modify the config */
- PyConfig *config = (PyConfig*)_PyInterpreterState_GetConfig(interp);
-
- PyObject *main_importer_path = NULL;
- if (config->run_filename != NULL) {
- /* If filename is a package (ex: directory or ZIP file) which contains
- __main__.py, main_importer_path is set to filename and will be
- prepended to sys.path.
-
- Otherwise, main_importer_path is left unchanged. */
- if (pymain_get_importer(config->run_filename, &main_importer_path,
- exitcode)) {
- return;
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ /* pymain_run_stdin() modify the config */
+ PyConfig *config = (PyConfig*)_PyInterpreterState_GetConfig(interp);
+
+ PyObject *main_importer_path = NULL;
+ if (config->run_filename != NULL) {
+ /* If filename is a package (ex: directory or ZIP file) which contains
+ __main__.py, main_importer_path is set to filename and will be
+ prepended to sys.path.
+
+ Otherwise, main_importer_path is left unchanged. */
+ if (pymain_get_importer(config->run_filename, &main_importer_path,
+ exitcode)) {
+ return;
}
}
- if (main_importer_path != NULL) {
- if (pymain_sys_path_add_path0(interp, main_importer_path) < 0) {
- goto error;
+ if (main_importer_path != NULL) {
+ if (pymain_sys_path_add_path0(interp, main_importer_path) < 0) {
+ goto error;
}
}
- else if (!config->isolated && 0) { // Do not add current directory.
- PyObject *path0 = NULL;
- int res = _PyPathConfig_ComputeSysPath0(&config->argv, &path0);
- if (res < 0) {
- goto error;
+ else if (!config->isolated && 0) { // Do not add current directory.
+ PyObject *path0 = NULL;
+ int res = _PyPathConfig_ComputeSysPath0(&config->argv, &path0);
+ if (res < 0) {
+ goto error;
}
- if (res > 0) {
- if (pymain_sys_path_add_path0(interp, path0) < 0) {
- Py_DECREF(path0);
- goto error;
- }
- Py_DECREF(path0);
+ if (res > 0) {
+ if (pymain_sys_path_add_path0(interp, path0) < 0) {
+ Py_DECREF(path0);
+ goto error;
+ }
+ Py_DECREF(path0);
}
}
- PyCompilerFlags cf = _PyCompilerFlags_INIT;
+ PyCompilerFlags cf = _PyCompilerFlags_INIT;
- pymain_header(config);
- pymain_import_readline(config);
+ pymain_header(config);
+ pymain_import_readline(config);
- if (config->run_command) {
- *exitcode = pymain_run_command(config->run_command, &cf);
+ if (config->run_command) {
+ *exitcode = pymain_run_command(config->run_command, &cf);
}
- else if (config->run_module) {
- *exitcode = pymain_run_module(config->run_module, 1);
+ else if (config->run_module) {
+ *exitcode = pymain_run_module(config->run_module, 1);
}
- else if (main_importer_path != NULL) {
- *exitcode = pymain_run_module(L"__main__", 0);
+ else if (main_importer_path != NULL) {
+ *exitcode = pymain_run_module(L"__main__", 0);
}
- else if (config->run_filename != NULL) {
- *exitcode = pymain_run_file(config, &cf);
+ else if (config->run_filename != NULL) {
+ *exitcode = pymain_run_file(config, &cf);
}
else {
- *exitcode = pymain_run_stdin(config, &cf);
+ *exitcode = pymain_run_stdin(config, &cf);
}
- pymain_repl(config, &cf, exitcode);
- goto done;
+ pymain_repl(config, &cf, exitcode);
+ goto done;
-error:
- *exitcode = pymain_exit_err_print();
+error:
+ *exitcode = pymain_exit_err_print();
-done:
- Py_XDECREF(main_importer_path);
+done:
+ Py_XDECREF(main_importer_path);
}
-/* --- pymain_main() ---------------------------------------------- */
+/* --- pymain_main() ---------------------------------------------- */
static void
-pymain_free(void)
+pymain_free(void)
{
- _PyImport_Fini2();
-
- /* Free global variables which cannot be freed in Py_Finalize():
- configuration options set before Py_Initialize() which should
- remain valid after Py_Finalize(), since
- Py_Initialize()-Py_Finalize() can be called multiple times. */
- _PyPathConfig_ClearGlobal();
- _Py_ClearStandardStreamEncoding();
- _Py_ClearArgcArgv();
- _PyRuntime_Finalize();
+ _PyImport_Fini2();
+
+ /* Free global variables which cannot be freed in Py_Finalize():
+ configuration options set before Py_Initialize() which should
+ remain valid after Py_Finalize(), since
+ Py_Initialize()-Py_Finalize() can be called multiple times. */
+ _PyPathConfig_ClearGlobal();
+ _Py_ClearStandardStreamEncoding();
+ _Py_ClearArgcArgv();
+ _PyRuntime_Finalize();
}
static int
-exit_sigint(void)
+exit_sigint(void)
{
- /* bpo-1054041: We need to exit via the
- * SIG_DFL handler for SIGINT if KeyboardInterrupt went unhandled.
- * If we don't, a calling process such as a shell may not know
- * about the user's ^C. https://www.cons.org/cracauer/sigint.html */
-#if defined(HAVE_GETPID) && !defined(MS_WINDOWS)
- if (PyOS_setsig(SIGINT, SIG_DFL) == SIG_ERR) {
- perror("signal"); /* Impossible in normal environments. */
- } else {
- kill(getpid(), SIGINT);
- }
- /* If setting SIG_DFL failed, or kill failed to terminate us,
- * there isn't much else we can do aside from an error code. */
-#endif /* HAVE_GETPID && !MS_WINDOWS */
-#ifdef MS_WINDOWS
- /* cmd.exe detects this, prints ^C, and offers to terminate. */
- /* https://msdn.microsoft.com/en-us/library/cc704588.aspx */
- return STATUS_CONTROL_C_EXIT;
-#else
- return SIGINT + 128;
-#endif /* !MS_WINDOWS */
+ /* bpo-1054041: We need to exit via the
+ * SIG_DFL handler for SIGINT if KeyboardInterrupt went unhandled.
+ * If we don't, a calling process such as a shell may not know
+ * about the user's ^C. https://www.cons.org/cracauer/sigint.html */
+#if defined(HAVE_GETPID) && !defined(MS_WINDOWS)
+ if (PyOS_setsig(SIGINT, SIG_DFL) == SIG_ERR) {
+ perror("signal"); /* Impossible in normal environments. */
+ } else {
+ kill(getpid(), SIGINT);
+ }
+ /* If setting SIG_DFL failed, or kill failed to terminate us,
+ * there isn't much else we can do aside from an error code. */
+#endif /* HAVE_GETPID && !MS_WINDOWS */
+#ifdef MS_WINDOWS
+ /* cmd.exe detects this, prints ^C, and offers to terminate. */
+ /* https://msdn.microsoft.com/en-us/library/cc704588.aspx */
+ return STATUS_CONTROL_C_EXIT;
+#else
+ return SIGINT + 128;
+#endif /* !MS_WINDOWS */
}
-static void _Py_NO_RETURN
-pymain_exit_error(PyStatus status)
+static void _Py_NO_RETURN
+pymain_exit_error(PyStatus status)
{
- if (_PyStatus_IS_EXIT(status)) {
- /* If it's an error rather than a regular exit, leave Python runtime
- alive: Py_ExitStatusException() uses the current exception and use
- sys.stdout in this case. */
- pymain_free();
+ if (_PyStatus_IS_EXIT(status)) {
+ /* If it's an error rather than a regular exit, leave Python runtime
+ alive: Py_ExitStatusException() uses the current exception and use
+ sys.stdout in this case. */
+ pymain_free();
}
- Py_ExitStatusException(status);
+ Py_ExitStatusException(status);
}
-int
-Py_RunMain(void)
+int
+Py_RunMain(void)
{
- int exitcode = 0;
+ int exitcode = 0;
- pymain_run_python(&exitcode);
+ pymain_run_python(&exitcode);
- if (Py_FinalizeEx() < 0) {
- /* Value unlikely to be confused with a non-error exit status or
- other special meaning */
- exitcode = 120;
+ if (Py_FinalizeEx() < 0) {
+ /* Value unlikely to be confused with a non-error exit status or
+ other special meaning */
+ exitcode = 120;
}
- pymain_free();
+ pymain_free();
- if (_Py_UnhandledKeyboardInterrupt) {
- exitcode = exit_sigint();
+ if (_Py_UnhandledKeyboardInterrupt) {
+ exitcode = exit_sigint();
}
- return exitcode;
+ return exitcode;
}
static int
-pymain_main(_PyArgv *args)
+pymain_main(_PyArgv *args)
{
- PyStatus status = pymain_init(args);
- if (_PyStatus_IS_EXIT(status)) {
- pymain_free();
- return status.exitcode;
+ PyStatus status = pymain_init(args);
+ if (_PyStatus_IS_EXIT(status)) {
+ pymain_free();
+ return status.exitcode;
}
- if (_PyStatus_EXCEPTION(status)) {
- pymain_exit_error(status);
+ if (_PyStatus_EXCEPTION(status)) {
+ pymain_exit_error(status);
}
- return Py_RunMain();
+ return Py_RunMain();
}
int
Py_Main(int argc, wchar_t **argv)
{
- _PyArgv args = {
- .argc = argc,
- .use_bytes_argv = 0,
- .bytes_argv = NULL,
- .wchar_argv = argv};
- return pymain_main(&args);
+ _PyArgv args = {
+ .argc = argc,
+ .use_bytes_argv = 0,
+ .bytes_argv = NULL,
+ .wchar_argv = argv};
+ return pymain_main(&args);
}
int
-Py_BytesMain(int argc, char **argv)
+Py_BytesMain(int argc, char **argv)
{
- _PyArgv args = {
- .argc = argc,
- .use_bytes_argv = 1,
- .bytes_argv = argv,
- .wchar_argv = NULL};
- return pymain_main(&args);
+ _PyArgv args = {
+ .argc = argc,
+ .use_bytes_argv = 1,
+ .bytes_argv = argv,
+ .wchar_argv = NULL};
+ return pymain_main(&args);
}
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Modules/mathmodule.c b/contrib/tools/python3/src/Modules/mathmodule.c
index 8688038df2..1f16849a3e 100644
--- a/contrib/tools/python3/src/Modules/mathmodule.c
+++ b/contrib/tools/python3/src/Modules/mathmodule.c
@@ -53,7 +53,7 @@ raised for division by zero and mod by zero.
*/
#include "Python.h"
-#include "pycore_dtoa.h"
+#include "pycore_dtoa.h"
#include "_math.h"
#include "clinic/mathmodule.c.h"
@@ -77,29 +77,29 @@ static const double logpi = 1.144729885849400174143427351353058711647;
static const double sqrtpi = 1.772453850905516027298167483341145182798;
#endif /* !defined(HAVE_ERF) || !defined(HAVE_ERFC) */
-
-/* Version of PyFloat_AsDouble() with in-line fast paths
- for exact floats and integers. Gives a substantial
- speed improvement for extracting float arguments.
-*/
-
-#define ASSIGN_DOUBLE(target_var, obj, error_label) \
- if (PyFloat_CheckExact(obj)) { \
- target_var = PyFloat_AS_DOUBLE(obj); \
- } \
- else if (PyLong_CheckExact(obj)) { \
- target_var = PyLong_AsDouble(obj); \
- if (target_var == -1.0 && PyErr_Occurred()) { \
- goto error_label; \
- } \
- } \
- else { \
- target_var = PyFloat_AsDouble(obj); \
- if (target_var == -1.0 && PyErr_Occurred()) { \
- goto error_label; \
- } \
- }
-
+
+/* Version of PyFloat_AsDouble() with in-line fast paths
+ for exact floats and integers. Gives a substantial
+ speed improvement for extracting float arguments.
+*/
+
+#define ASSIGN_DOUBLE(target_var, obj, error_label) \
+ if (PyFloat_CheckExact(obj)) { \
+ target_var = PyFloat_AS_DOUBLE(obj); \
+ } \
+ else if (PyLong_CheckExact(obj)) { \
+ target_var = PyLong_AsDouble(obj); \
+ if (target_var == -1.0 && PyErr_Occurred()) { \
+ goto error_label; \
+ } \
+ } \
+ else { \
+ target_var = PyFloat_AsDouble(obj); \
+ if (target_var == -1.0 && PyErr_Occurred()) { \
+ goto error_label; \
+ } \
+ }
+
static double
m_sinpi(double x)
{
@@ -647,7 +647,7 @@ m_remainder(double x, double y)
Warning: some subtlety here. What we *want* to know at this point is
whether the remainder m is less than, equal to, or greater than half
of absy. However, we can't do that comparison directly because we
- can't be sure that 0.5*absy is representable (the multiplication
+ can't be sure that 0.5*absy is representable (the multiplication
might incur precision loss due to underflow). So instead we compare
m with the complement c = absy - m: m < 0.5*absy if and only if m <
c, and so on. The catch is that absy - m might also not be
@@ -826,125 +826,125 @@ m_log10(double x)
}
-static PyObject *
-math_gcd(PyObject *module, PyObject * const *args, Py_ssize_t nargs)
-{
- PyObject *res, *x;
- Py_ssize_t i;
-
- if (nargs == 0) {
- return PyLong_FromLong(0);
- }
- res = PyNumber_Index(args[0]);
- if (res == NULL) {
- return NULL;
- }
- if (nargs == 1) {
- Py_SETREF(res, PyNumber_Absolute(res));
- return res;
- }
- for (i = 1; i < nargs; i++) {
- x = PyNumber_Index(args[i]);
- if (x == NULL) {
- Py_DECREF(res);
- return NULL;
- }
- if (res == _PyLong_One) {
- /* Fast path: just check arguments.
- It is okay to use identity comparison here. */
- Py_DECREF(x);
- continue;
- }
- Py_SETREF(res, _PyLong_GCD(res, x));
- Py_DECREF(x);
- if (res == NULL) {
- return NULL;
- }
- }
- return res;
-}
-
-PyDoc_STRVAR(math_gcd_doc,
-"gcd($module, *integers)\n"
-"--\n"
-"\n"
-"Greatest Common Divisor.");
-
-
static PyObject *
-long_lcm(PyObject *a, PyObject *b)
+math_gcd(PyObject *module, PyObject * const *args, Py_ssize_t nargs)
{
- PyObject *g, *m, *f, *ab;
+ PyObject *res, *x;
+ Py_ssize_t i;
- if (Py_SIZE(a) == 0 || Py_SIZE(b) == 0) {
- return PyLong_FromLong(0);
- }
- g = _PyLong_GCD(a, b);
- if (g == NULL) {
+ if (nargs == 0) {
+ return PyLong_FromLong(0);
+ }
+ res = PyNumber_Index(args[0]);
+ if (res == NULL) {
return NULL;
- }
- f = PyNumber_FloorDivide(a, g);
- Py_DECREF(g);
- if (f == NULL) {
+ }
+ if (nargs == 1) {
+ Py_SETREF(res, PyNumber_Absolute(res));
+ return res;
+ }
+ for (i = 1; i < nargs; i++) {
+ x = PyNumber_Index(args[i]);
+ if (x == NULL) {
+ Py_DECREF(res);
+ return NULL;
+ }
+ if (res == _PyLong_One) {
+ /* Fast path: just check arguments.
+ It is okay to use identity comparison here. */
+ Py_DECREF(x);
+ continue;
+ }
+ Py_SETREF(res, _PyLong_GCD(res, x));
+ Py_DECREF(x);
+ if (res == NULL) {
+ return NULL;
+ }
+ }
+ return res;
+}
+
+PyDoc_STRVAR(math_gcd_doc,
+"gcd($module, *integers)\n"
+"--\n"
+"\n"
+"Greatest Common Divisor.");
+
+
+static PyObject *
+long_lcm(PyObject *a, PyObject *b)
+{
+ PyObject *g, *m, *f, *ab;
+
+ if (Py_SIZE(a) == 0 || Py_SIZE(b) == 0) {
+ return PyLong_FromLong(0);
+ }
+ g = _PyLong_GCD(a, b);
+ if (g == NULL) {
+ return NULL;
+ }
+ f = PyNumber_FloorDivide(a, g);
+ Py_DECREF(g);
+ if (f == NULL) {
+ return NULL;
+ }
+ m = PyNumber_Multiply(f, b);
+ Py_DECREF(f);
+ if (m == NULL) {
+ return NULL;
+ }
+ ab = PyNumber_Absolute(m);
+ Py_DECREF(m);
+ return ab;
+}
+
+
+static PyObject *
+math_lcm(PyObject *module, PyObject * const *args, Py_ssize_t nargs)
+{
+ PyObject *res, *x;
+ Py_ssize_t i;
+
+ if (nargs == 0) {
+ return PyLong_FromLong(1);
+ }
+ res = PyNumber_Index(args[0]);
+ if (res == NULL) {
return NULL;
}
- m = PyNumber_Multiply(f, b);
- Py_DECREF(f);
- if (m == NULL) {
- return NULL;
- }
- ab = PyNumber_Absolute(m);
- Py_DECREF(m);
- return ab;
+ if (nargs == 1) {
+ Py_SETREF(res, PyNumber_Absolute(res));
+ return res;
+ }
+ for (i = 1; i < nargs; i++) {
+ x = PyNumber_Index(args[i]);
+ if (x == NULL) {
+ Py_DECREF(res);
+ return NULL;
+ }
+ if (res == _PyLong_Zero) {
+ /* Fast path: just check arguments.
+ It is okay to use identity comparison here. */
+ Py_DECREF(x);
+ continue;
+ }
+ Py_SETREF(res, long_lcm(res, x));
+ Py_DECREF(x);
+ if (res == NULL) {
+ return NULL;
+ }
+ }
+ return res;
}
-static PyObject *
-math_lcm(PyObject *module, PyObject * const *args, Py_ssize_t nargs)
-{
- PyObject *res, *x;
- Py_ssize_t i;
-
- if (nargs == 0) {
- return PyLong_FromLong(1);
- }
- res = PyNumber_Index(args[0]);
- if (res == NULL) {
- return NULL;
- }
- if (nargs == 1) {
- Py_SETREF(res, PyNumber_Absolute(res));
- return res;
- }
- for (i = 1; i < nargs; i++) {
- x = PyNumber_Index(args[i]);
- if (x == NULL) {
- Py_DECREF(res);
- return NULL;
- }
- if (res == _PyLong_Zero) {
- /* Fast path: just check arguments.
- It is okay to use identity comparison here. */
- Py_DECREF(x);
- continue;
- }
- Py_SETREF(res, long_lcm(res, x));
- Py_DECREF(x);
- if (res == NULL) {
- return NULL;
- }
- }
- return res;
-}
-
-
-PyDoc_STRVAR(math_lcm_doc,
-"lcm($module, *integers)\n"
-"--\n"
-"\n"
-"Least Common Multiple.");
-
-
+PyDoc_STRVAR(math_lcm_doc,
+"lcm($module, *integers)\n"
+"--\n"
+"\n"
+"Least Common Multiple.");
+
+
/* Call is_error when errno != 0, and where x is the result libm
* returned. is_error will usually set up an exception and return
* true (1), but may return false (0) without setting up an exception.
@@ -971,13 +971,13 @@ is_error(double x)
* On some platforms (Ubuntu/ia64) it seems that errno can be
* set to ERANGE for subnormal results that do *not* underflow
* to zero. So to be safe, we'll ignore ERANGE whenever the
- * function result is less than 1.5 in absolute value.
- *
- * bpo-46018: Changed to 1.5 to ensure underflows in expm1()
- * are correctly detected, since the function may underflow
- * toward -1.0 rather than 0.0.
+ * function result is less than 1.5 in absolute value.
+ *
+ * bpo-46018: Changed to 1.5 to ensure underflows in expm1()
+ * are correctly detected, since the function may underflow
+ * toward -1.0 rather than 0.0.
*/
- if (fabs(x) < 1.5)
+ if (fabs(x) < 1.5)
result = 0;
else
PyErr_SetString(PyExc_OverflowError,
@@ -1103,20 +1103,20 @@ math_1(PyObject *arg, double (*func) (double), int can_overflow)
}
static PyObject *
-math_2(PyObject *const *args, Py_ssize_t nargs,
- double (*func) (double, double), const char *funcname)
+math_2(PyObject *const *args, Py_ssize_t nargs,
+ double (*func) (double, double), const char *funcname)
{
double x, y, r;
- if (!_PyArg_CheckPositional(funcname, nargs, 2, 2))
+ if (!_PyArg_CheckPositional(funcname, nargs, 2, 2))
return NULL;
- x = PyFloat_AsDouble(args[0]);
- if (x == -1.0 && PyErr_Occurred()) {
+ x = PyFloat_AsDouble(args[0]);
+ if (x == -1.0 && PyErr_Occurred()) {
return NULL;
- }
- y = PyFloat_AsDouble(args[1]);
- if (y == -1.0 && PyErr_Occurred()) {
- return NULL;
- }
+ }
+ y = PyFloat_AsDouble(args[1]);
+ if (y == -1.0 && PyErr_Occurred()) {
+ return NULL;
+ }
errno = 0;
r = (*func)(x, y);
if (Py_IS_NAN(r)) {
@@ -1150,29 +1150,29 @@ math_2(PyObject *const *args, Py_ssize_t nargs,
PyDoc_STRVAR(math_##funcname##_doc, docstring);
#define FUNC2(funcname, func, docstring) \
- static PyObject * math_##funcname(PyObject *self, PyObject *const *args, Py_ssize_t nargs) { \
- return math_2(args, nargs, func, #funcname); \
+ static PyObject * math_##funcname(PyObject *self, PyObject *const *args, Py_ssize_t nargs) { \
+ return math_2(args, nargs, func, #funcname); \
}\
PyDoc_STRVAR(math_##funcname##_doc, docstring);
FUNC1(acos, acos, 0,
"acos($module, x, /)\n--\n\n"
- "Return the arc cosine (measured in radians) of x.\n\n"
- "The result is between 0 and pi.")
+ "Return the arc cosine (measured in radians) of x.\n\n"
+ "The result is between 0 and pi.")
FUNC1(acosh, m_acosh, 0,
"acosh($module, x, /)\n--\n\n"
"Return the inverse hyperbolic cosine of x.")
FUNC1(asin, asin, 0,
"asin($module, x, /)\n--\n\n"
- "Return the arc sine (measured in radians) of x.\n\n"
- "The result is between -pi/2 and pi/2.")
+ "Return the arc sine (measured in radians) of x.\n\n"
+ "The result is between -pi/2 and pi/2.")
FUNC1(asinh, m_asinh, 0,
"asinh($module, x, /)\n--\n\n"
"Return the inverse hyperbolic sine of x.")
FUNC1(atan, atan, 0,
"atan($module, x, /)\n--\n\n"
- "Return the arc tangent (measured in radians) of x.\n\n"
- "The result is between -pi/2 and pi/2.")
+ "Return the arc tangent (measured in radians) of x.\n\n"
+ "The result is between -pi/2 and pi/2.")
FUNC2(atan2, m_atan2,
"atan2($module, y, x, /)\n--\n\n"
"Return the arc tangent (measured in radians) of y/x.\n\n"
@@ -1198,21 +1198,21 @@ math_ceil(PyObject *module, PyObject *number)
{
_Py_IDENTIFIER(__ceil__);
- if (!PyFloat_CheckExact(number)) {
- PyObject *method = _PyObject_LookupSpecial(number, &PyId___ceil__);
- if (method != NULL) {
- PyObject *result = _PyObject_CallNoArg(method);
- Py_DECREF(method);
- return result;
- }
+ if (!PyFloat_CheckExact(number)) {
+ PyObject *method = _PyObject_LookupSpecial(number, &PyId___ceil__);
+ if (method != NULL) {
+ PyObject *result = _PyObject_CallNoArg(method);
+ Py_DECREF(method);
+ return result;
+ }
if (PyErr_Occurred())
return NULL;
}
- double x = PyFloat_AsDouble(number);
- if (x == -1.0 && PyErr_Occurred())
- return NULL;
-
- return PyLong_FromDouble(ceil(x));
+ double x = PyFloat_AsDouble(number);
+ if (x == -1.0 && PyErr_Occurred())
+ return NULL;
+
+ return PyLong_FromDouble(ceil(x));
}
FUNC2(copysign, copysign,
@@ -1259,28 +1259,28 @@ static PyObject *
math_floor(PyObject *module, PyObject *number)
/*[clinic end generated code: output=c6a65c4884884b8a input=63af6b5d7ebcc3d6]*/
{
- double x;
-
+ double x;
+
_Py_IDENTIFIER(__floor__);
- if (PyFloat_CheckExact(number)) {
- x = PyFloat_AS_DOUBLE(number);
- }
- else
- {
- PyObject *method = _PyObject_LookupSpecial(number, &PyId___floor__);
- if (method != NULL) {
- PyObject *result = _PyObject_CallNoArg(method);
- Py_DECREF(method);
- return result;
- }
+ if (PyFloat_CheckExact(number)) {
+ x = PyFloat_AS_DOUBLE(number);
+ }
+ else
+ {
+ PyObject *method = _PyObject_LookupSpecial(number, &PyId___floor__);
+ if (method != NULL) {
+ PyObject *result = _PyObject_CallNoArg(method);
+ Py_DECREF(method);
+ return result;
+ }
if (PyErr_Occurred())
return NULL;
- x = PyFloat_AsDouble(number);
- if (x == -1.0 && PyErr_Occurred())
- return NULL;
+ x = PyFloat_AsDouble(number);
+ if (x == -1.0 && PyErr_Occurred())
+ return NULL;
}
- return PyLong_FromDouble(floor(x));
+ return PyLong_FromDouble(floor(x));
}
FUNC1A(gamma, m_tgamma,
@@ -1447,7 +1447,7 @@ math_fsum(PyObject *module, PyObject *seq)
goto _fsum_error;
break;
}
- ASSIGN_DOUBLE(x, item, error_with_item);
+ ASSIGN_DOUBLE(x, item, error_with_item);
Py_DECREF(item);
xsave = x;
@@ -1529,15 +1529,15 @@ math_fsum(PyObject *module, PyObject *seq)
}
sum = PyFloat_FromDouble(hi);
- _fsum_error:
+ _fsum_error:
Py_DECREF(iter);
if (p != ps)
PyMem_Free(p);
return sum;
-
- error_with_item:
- Py_DECREF(item);
- goto _fsum_error;
+
+ error_with_item:
+ Py_DECREF(item);
+ goto _fsum_error;
}
#undef NUM_PARTIALS
@@ -1554,303 +1554,303 @@ count_set_bits(unsigned long n)
return count;
}
-/* Integer square root
-
-Given a nonnegative integer `n`, we want to compute the largest integer
-`a` for which `a * a <= n`, or equivalently the integer part of the exact
-square root of `n`.
-
-We use an adaptive-precision pure-integer version of Newton's iteration. Given
-a positive integer `n`, the algorithm produces at each iteration an integer
-approximation `a` to the square root of `n >> s` for some even integer `s`,
-with `s` decreasing as the iterations progress. On the final iteration, `s` is
-zero and we have an approximation to the square root of `n` itself.
-
-At every step, the approximation `a` is strictly within 1.0 of the true square
-root, so we have
-
- (a - 1)**2 < (n >> s) < (a + 1)**2
-
-After the final iteration, a check-and-correct step is needed to determine
-whether `a` or `a - 1` gives the desired integer square root of `n`.
-
-The algorithm is remarkable in its simplicity. There's no need for a
-per-iteration check-and-correct step, and termination is straightforward: the
-number of iterations is known in advance (it's exactly `floor(log2(log2(n)))`
-for `n > 1`). The only tricky part of the correctness proof is in establishing
-that the bound `(a - 1)**2 < (n >> s) < (a + 1)**2` is maintained from one
-iteration to the next. A sketch of the proof of this is given below.
-
-In addition to the proof sketch, a formal, computer-verified proof
-of correctness (using Lean) of an equivalent recursive algorithm can be found
-here:
-
- https://github.com/mdickinson/snippets/blob/master/proofs/isqrt/src/isqrt.lean
-
-
-Here's Python code equivalent to the C implementation below:
-
- def isqrt(n):
- """
- Return the integer part of the square root of the input.
- """
- n = operator.index(n)
-
- if n < 0:
- raise ValueError("isqrt() argument must be nonnegative")
- if n == 0:
- return 0
-
- c = (n.bit_length() - 1) // 2
- a = 1
- d = 0
- for s in reversed(range(c.bit_length())):
- # Loop invariant: (a-1)**2 < (n >> 2*(c - d)) < (a+1)**2
- e = d
- d = c >> s
- a = (a << d - e - 1) + (n >> 2*c - e - d + 1) // a
-
- return a - (a*a > n)
-
-
-Sketch of proof of correctness
-------------------------------
-
-The delicate part of the correctness proof is showing that the loop invariant
-is preserved from one iteration to the next. That is, just before the line
-
- a = (a << d - e - 1) + (n >> 2*c - e - d + 1) // a
-
-is executed in the above code, we know that
-
- (1) (a - 1)**2 < (n >> 2*(c - e)) < (a + 1)**2.
-
-(since `e` is always the value of `d` from the previous iteration). We must
-prove that after that line is executed, we have
-
- (a - 1)**2 < (n >> 2*(c - d)) < (a + 1)**2
-
-To facilitate the proof, we make some changes of notation. Write `m` for
-`n >> 2*(c-d)`, and write `b` for the new value of `a`, so
-
- b = (a << d - e - 1) + (n >> 2*c - e - d + 1) // a
-
-or equivalently:
-
- (2) b = (a << d - e - 1) + (m >> d - e + 1) // a
-
-Then we can rewrite (1) as:
-
- (3) (a - 1)**2 < (m >> 2*(d - e)) < (a + 1)**2
-
-and we must show that (b - 1)**2 < m < (b + 1)**2.
-
-From this point on, we switch to mathematical notation, so `/` means exact
-division rather than integer division and `^` is used for exponentiation. We
-use the `√` symbol for the exact square root. In (3), we can remove the
-implicit floor operation to give:
-
- (4) (a - 1)^2 < m / 4^(d - e) < (a + 1)^2
-
-Taking square roots throughout (4), scaling by `2^(d-e)`, and rearranging gives
-
- (5) 0 <= | 2^(d-e)a - √m | < 2^(d-e)
-
-Squaring and dividing through by `2^(d-e+1) a` gives
-
- (6) 0 <= 2^(d-e-1) a + m / (2^(d-e+1) a) - √m < 2^(d-e-1) / a
-
-We'll show below that `2^(d-e-1) <= a`. Given that, we can replace the
-right-hand side of (6) with `1`, and now replacing the central
-term `m / (2^(d-e+1) a)` with its floor in (6) gives
-
- (7) -1 < 2^(d-e-1) a + m // 2^(d-e+1) a - √m < 1
-
-Or equivalently, from (2):
-
- (7) -1 < b - √m < 1
-
-and rearranging gives that `(b-1)^2 < m < (b+1)^2`, which is what we needed
-to prove.
-
-We're not quite done: we still have to prove the inequality `2^(d - e - 1) <=
-a` that was used to get line (7) above. From the definition of `c`, we have
-`4^c <= n`, which implies
-
- (8) 4^d <= m
-
-also, since `e == d >> 1`, `d` is at most `2e + 1`, from which it follows
-that `2d - 2e - 1 <= d` and hence that
-
- (9) 4^(2d - 2e - 1) <= m
-
-Dividing both sides by `4^(d - e)` gives
-
- (10) 4^(d - e - 1) <= m / 4^(d - e)
-
-But we know from (4) that `m / 4^(d-e) < (a + 1)^2`, hence
-
- (11) 4^(d - e - 1) < (a + 1)^2
-
-Now taking square roots of both sides and observing that both `2^(d-e-1)` and
-`a` are integers gives `2^(d - e - 1) <= a`, which is what we needed. This
-completes the proof sketch.
-
-*/
-
-
-/* Approximate square root of a large 64-bit integer.
-
- Given `n` satisfying `2**62 <= n < 2**64`, return `a`
- satisfying `(a - 1)**2 < n < (a + 1)**2`. */
-
-static uint64_t
-_approximate_isqrt(uint64_t n)
-{
- uint32_t u = 1U + (n >> 62);
- u = (u << 1) + (n >> 59) / u;
- u = (u << 3) + (n >> 53) / u;
- u = (u << 7) + (n >> 41) / u;
- return (u << 15) + (n >> 17) / u;
-}
-
-/*[clinic input]
-math.isqrt
-
- n: object
- /
-
-Return the integer part of the square root of the input.
-[clinic start generated code]*/
-
-static PyObject *
-math_isqrt(PyObject *module, PyObject *n)
-/*[clinic end generated code: output=35a6f7f980beab26 input=5b6e7ae4fa6c43d6]*/
-{
- int a_too_large, c_bit_length;
- size_t c, d;
- uint64_t m, u;
- PyObject *a = NULL, *b;
-
- n = PyNumber_Index(n);
- if (n == NULL) {
- return NULL;
- }
-
- if (_PyLong_Sign(n) < 0) {
- PyErr_SetString(
- PyExc_ValueError,
- "isqrt() argument must be nonnegative");
- goto error;
- }
- if (_PyLong_Sign(n) == 0) {
- Py_DECREF(n);
- return PyLong_FromLong(0);
- }
-
- /* c = (n.bit_length() - 1) // 2 */
- c = _PyLong_NumBits(n);
- if (c == (size_t)(-1)) {
- goto error;
- }
- c = (c - 1U) / 2U;
-
- /* Fast path: if c <= 31 then n < 2**64 and we can compute directly with a
- fast, almost branch-free algorithm. In the final correction, we use `u*u
- - 1 >= m` instead of the simpler `u*u > m` in order to get the correct
- result in the corner case where `u=2**32`. */
- if (c <= 31U) {
- m = (uint64_t)PyLong_AsUnsignedLongLong(n);
- Py_DECREF(n);
- if (m == (uint64_t)(-1) && PyErr_Occurred()) {
- return NULL;
- }
- u = _approximate_isqrt(m << (62U - 2U*c)) >> (31U - c);
- u -= u * u - 1U >= m;
- return PyLong_FromUnsignedLongLong((unsigned long long)u);
- }
-
- /* Slow path: n >= 2**64. We perform the first five iterations in C integer
- arithmetic, then switch to using Python long integers. */
-
- /* From n >= 2**64 it follows that c.bit_length() >= 6. */
- c_bit_length = 6;
- while ((c >> c_bit_length) > 0U) {
- ++c_bit_length;
- }
-
- /* Initialise d and a. */
- d = c >> (c_bit_length - 5);
- b = _PyLong_Rshift(n, 2U*c - 62U);
- if (b == NULL) {
- goto error;
- }
- m = (uint64_t)PyLong_AsUnsignedLongLong(b);
- Py_DECREF(b);
- if (m == (uint64_t)(-1) && PyErr_Occurred()) {
- goto error;
- }
- u = _approximate_isqrt(m) >> (31U - d);
- a = PyLong_FromUnsignedLongLong((unsigned long long)u);
- if (a == NULL) {
- goto error;
- }
-
- for (int s = c_bit_length - 6; s >= 0; --s) {
- PyObject *q;
- size_t e = d;
-
- d = c >> s;
-
- /* q = (n >> 2*c - e - d + 1) // a */
- q = _PyLong_Rshift(n, 2U*c - d - e + 1U);
- if (q == NULL) {
- goto error;
- }
- Py_SETREF(q, PyNumber_FloorDivide(q, a));
- if (q == NULL) {
- goto error;
- }
-
- /* a = (a << d - 1 - e) + q */
- Py_SETREF(a, _PyLong_Lshift(a, d - 1U - e));
- if (a == NULL) {
- Py_DECREF(q);
- goto error;
- }
- Py_SETREF(a, PyNumber_Add(a, q));
- Py_DECREF(q);
- if (a == NULL) {
- goto error;
- }
- }
-
- /* The correct result is either a or a - 1. Figure out which, and
- decrement a if necessary. */
-
- /* a_too_large = n < a * a */
- b = PyNumber_Multiply(a, a);
- if (b == NULL) {
- goto error;
- }
- a_too_large = PyObject_RichCompareBool(n, b, Py_LT);
- Py_DECREF(b);
- if (a_too_large == -1) {
- goto error;
- }
-
- if (a_too_large) {
- Py_SETREF(a, PyNumber_Subtract(a, _PyLong_One));
- }
- Py_DECREF(n);
- return a;
-
- error:
- Py_XDECREF(a);
- Py_DECREF(n);
- return NULL;
-}
-
+/* Integer square root
+
+Given a nonnegative integer `n`, we want to compute the largest integer
+`a` for which `a * a <= n`, or equivalently the integer part of the exact
+square root of `n`.
+
+We use an adaptive-precision pure-integer version of Newton's iteration. Given
+a positive integer `n`, the algorithm produces at each iteration an integer
+approximation `a` to the square root of `n >> s` for some even integer `s`,
+with `s` decreasing as the iterations progress. On the final iteration, `s` is
+zero and we have an approximation to the square root of `n` itself.
+
+At every step, the approximation `a` is strictly within 1.0 of the true square
+root, so we have
+
+ (a - 1)**2 < (n >> s) < (a + 1)**2
+
+After the final iteration, a check-and-correct step is needed to determine
+whether `a` or `a - 1` gives the desired integer square root of `n`.
+
+The algorithm is remarkable in its simplicity. There's no need for a
+per-iteration check-and-correct step, and termination is straightforward: the
+number of iterations is known in advance (it's exactly `floor(log2(log2(n)))`
+for `n > 1`). The only tricky part of the correctness proof is in establishing
+that the bound `(a - 1)**2 < (n >> s) < (a + 1)**2` is maintained from one
+iteration to the next. A sketch of the proof of this is given below.
+
+In addition to the proof sketch, a formal, computer-verified proof
+of correctness (using Lean) of an equivalent recursive algorithm can be found
+here:
+
+ https://github.com/mdickinson/snippets/blob/master/proofs/isqrt/src/isqrt.lean
+
+
+Here's Python code equivalent to the C implementation below:
+
+ def isqrt(n):
+ """
+ Return the integer part of the square root of the input.
+ """
+ n = operator.index(n)
+
+ if n < 0:
+ raise ValueError("isqrt() argument must be nonnegative")
+ if n == 0:
+ return 0
+
+ c = (n.bit_length() - 1) // 2
+ a = 1
+ d = 0
+ for s in reversed(range(c.bit_length())):
+ # Loop invariant: (a-1)**2 < (n >> 2*(c - d)) < (a+1)**2
+ e = d
+ d = c >> s
+ a = (a << d - e - 1) + (n >> 2*c - e - d + 1) // a
+
+ return a - (a*a > n)
+
+
+Sketch of proof of correctness
+------------------------------
+
+The delicate part of the correctness proof is showing that the loop invariant
+is preserved from one iteration to the next. That is, just before the line
+
+ a = (a << d - e - 1) + (n >> 2*c - e - d + 1) // a
+
+is executed in the above code, we know that
+
+ (1) (a - 1)**2 < (n >> 2*(c - e)) < (a + 1)**2.
+
+(since `e` is always the value of `d` from the previous iteration). We must
+prove that after that line is executed, we have
+
+ (a - 1)**2 < (n >> 2*(c - d)) < (a + 1)**2
+
+To facilitate the proof, we make some changes of notation. Write `m` for
+`n >> 2*(c-d)`, and write `b` for the new value of `a`, so
+
+ b = (a << d - e - 1) + (n >> 2*c - e - d + 1) // a
+
+or equivalently:
+
+ (2) b = (a << d - e - 1) + (m >> d - e + 1) // a
+
+Then we can rewrite (1) as:
+
+ (3) (a - 1)**2 < (m >> 2*(d - e)) < (a + 1)**2
+
+and we must show that (b - 1)**2 < m < (b + 1)**2.
+
+From this point on, we switch to mathematical notation, so `/` means exact
+division rather than integer division and `^` is used for exponentiation. We
+use the `√` symbol for the exact square root. In (3), we can remove the
+implicit floor operation to give:
+
+ (4) (a - 1)^2 < m / 4^(d - e) < (a + 1)^2
+
+Taking square roots throughout (4), scaling by `2^(d-e)`, and rearranging gives
+
+ (5) 0 <= | 2^(d-e)a - √m | < 2^(d-e)
+
+Squaring and dividing through by `2^(d-e+1) a` gives
+
+ (6) 0 <= 2^(d-e-1) a + m / (2^(d-e+1) a) - √m < 2^(d-e-1) / a
+
+We'll show below that `2^(d-e-1) <= a`. Given that, we can replace the
+right-hand side of (6) with `1`, and now replacing the central
+term `m / (2^(d-e+1) a)` with its floor in (6) gives
+
+ (7) -1 < 2^(d-e-1) a + m // 2^(d-e+1) a - √m < 1
+
+Or equivalently, from (2):
+
+ (7) -1 < b - √m < 1
+
+and rearranging gives that `(b-1)^2 < m < (b+1)^2`, which is what we needed
+to prove.
+
+We're not quite done: we still have to prove the inequality `2^(d - e - 1) <=
+a` that was used to get line (7) above. From the definition of `c`, we have
+`4^c <= n`, which implies
+
+ (8) 4^d <= m
+
+also, since `e == d >> 1`, `d` is at most `2e + 1`, from which it follows
+that `2d - 2e - 1 <= d` and hence that
+
+ (9) 4^(2d - 2e - 1) <= m
+
+Dividing both sides by `4^(d - e)` gives
+
+ (10) 4^(d - e - 1) <= m / 4^(d - e)
+
+But we know from (4) that `m / 4^(d-e) < (a + 1)^2`, hence
+
+ (11) 4^(d - e - 1) < (a + 1)^2
+
+Now taking square roots of both sides and observing that both `2^(d-e-1)` and
+`a` are integers gives `2^(d - e - 1) <= a`, which is what we needed. This
+completes the proof sketch.
+
+*/
+
+
+/* Approximate square root of a large 64-bit integer.
+
+ Given `n` satisfying `2**62 <= n < 2**64`, return `a`
+ satisfying `(a - 1)**2 < n < (a + 1)**2`. */
+
+static uint64_t
+_approximate_isqrt(uint64_t n)
+{
+ uint32_t u = 1U + (n >> 62);
+ u = (u << 1) + (n >> 59) / u;
+ u = (u << 3) + (n >> 53) / u;
+ u = (u << 7) + (n >> 41) / u;
+ return (u << 15) + (n >> 17) / u;
+}
+
+/*[clinic input]
+math.isqrt
+
+ n: object
+ /
+
+Return the integer part of the square root of the input.
+[clinic start generated code]*/
+
+static PyObject *
+math_isqrt(PyObject *module, PyObject *n)
+/*[clinic end generated code: output=35a6f7f980beab26 input=5b6e7ae4fa6c43d6]*/
+{
+ int a_too_large, c_bit_length;
+ size_t c, d;
+ uint64_t m, u;
+ PyObject *a = NULL, *b;
+
+ n = PyNumber_Index(n);
+ if (n == NULL) {
+ return NULL;
+ }
+
+ if (_PyLong_Sign(n) < 0) {
+ PyErr_SetString(
+ PyExc_ValueError,
+ "isqrt() argument must be nonnegative");
+ goto error;
+ }
+ if (_PyLong_Sign(n) == 0) {
+ Py_DECREF(n);
+ return PyLong_FromLong(0);
+ }
+
+ /* c = (n.bit_length() - 1) // 2 */
+ c = _PyLong_NumBits(n);
+ if (c == (size_t)(-1)) {
+ goto error;
+ }
+ c = (c - 1U) / 2U;
+
+ /* Fast path: if c <= 31 then n < 2**64 and we can compute directly with a
+ fast, almost branch-free algorithm. In the final correction, we use `u*u
+ - 1 >= m` instead of the simpler `u*u > m` in order to get the correct
+ result in the corner case where `u=2**32`. */
+ if (c <= 31U) {
+ m = (uint64_t)PyLong_AsUnsignedLongLong(n);
+ Py_DECREF(n);
+ if (m == (uint64_t)(-1) && PyErr_Occurred()) {
+ return NULL;
+ }
+ u = _approximate_isqrt(m << (62U - 2U*c)) >> (31U - c);
+ u -= u * u - 1U >= m;
+ return PyLong_FromUnsignedLongLong((unsigned long long)u);
+ }
+
+ /* Slow path: n >= 2**64. We perform the first five iterations in C integer
+ arithmetic, then switch to using Python long integers. */
+
+ /* From n >= 2**64 it follows that c.bit_length() >= 6. */
+ c_bit_length = 6;
+ while ((c >> c_bit_length) > 0U) {
+ ++c_bit_length;
+ }
+
+ /* Initialise d and a. */
+ d = c >> (c_bit_length - 5);
+ b = _PyLong_Rshift(n, 2U*c - 62U);
+ if (b == NULL) {
+ goto error;
+ }
+ m = (uint64_t)PyLong_AsUnsignedLongLong(b);
+ Py_DECREF(b);
+ if (m == (uint64_t)(-1) && PyErr_Occurred()) {
+ goto error;
+ }
+ u = _approximate_isqrt(m) >> (31U - d);
+ a = PyLong_FromUnsignedLongLong((unsigned long long)u);
+ if (a == NULL) {
+ goto error;
+ }
+
+ for (int s = c_bit_length - 6; s >= 0; --s) {
+ PyObject *q;
+ size_t e = d;
+
+ d = c >> s;
+
+ /* q = (n >> 2*c - e - d + 1) // a */
+ q = _PyLong_Rshift(n, 2U*c - d - e + 1U);
+ if (q == NULL) {
+ goto error;
+ }
+ Py_SETREF(q, PyNumber_FloorDivide(q, a));
+ if (q == NULL) {
+ goto error;
+ }
+
+ /* a = (a << d - 1 - e) + q */
+ Py_SETREF(a, _PyLong_Lshift(a, d - 1U - e));
+ if (a == NULL) {
+ Py_DECREF(q);
+ goto error;
+ }
+ Py_SETREF(a, PyNumber_Add(a, q));
+ Py_DECREF(q);
+ if (a == NULL) {
+ goto error;
+ }
+ }
+
+ /* The correct result is either a or a - 1. Figure out which, and
+ decrement a if necessary. */
+
+ /* a_too_large = n < a * a */
+ b = PyNumber_Multiply(a, a);
+ if (b == NULL) {
+ goto error;
+ }
+ a_too_large = PyObject_RichCompareBool(n, b, Py_LT);
+ Py_DECREF(b);
+ if (a_too_large == -1) {
+ goto error;
+ }
+
+ if (a_too_large) {
+ Py_SETREF(a, PyNumber_Subtract(a, _PyLong_One));
+ }
+ Py_DECREF(n);
+ return a;
+
+ error:
+ Py_XDECREF(a);
+ Py_DECREF(n);
+ return NULL;
+}
+
/* Divide-and-conquer factorial algorithm
*
* Based on the formula and pseudo-code provided at:
@@ -1957,7 +1957,7 @@ factorial_partial_product(unsigned long start, unsigned long stop,
/* find midpoint of range(start, stop), rounded up to next odd number. */
midpoint = (start + num_operands) | 1;
left = factorial_partial_product(start, midpoint,
- _Py_bit_length(midpoint - 2));
+ _Py_bit_length(midpoint - 2));
if (left == NULL)
goto error;
right = factorial_partial_product(midpoint, stop, max_bits);
@@ -1987,7 +1987,7 @@ factorial_odd_part(unsigned long n)
Py_INCREF(outer);
upper = 3;
- for (i = _Py_bit_length(n) - 2; i >= 0; i--) {
+ for (i = _Py_bit_length(n) - 2; i >= 0; i--) {
v = n >> i;
if (v <= 2)
continue;
@@ -1997,7 +1997,7 @@ factorial_odd_part(unsigned long n)
/* Here inner is the product of all odd integers j in the range (0,
n/2**(i+1)]. The factorial_partial_product call below gives the
product of all odd integers j in the range (n/2**(i+1), n/2**i]. */
- partial = factorial_partial_product(lower, upper, _Py_bit_length(upper-2));
+ partial = factorial_partial_product(lower, upper, _Py_bit_length(upper-2));
/* inner *= partial */
if (partial == NULL)
goto error;
@@ -2054,17 +2054,17 @@ static PyObject *
math_factorial(PyObject *module, PyObject *arg)
/*[clinic end generated code: output=6686f26fae00e9ca input=6d1c8105c0d91fb4]*/
{
- long x, two_valuation;
+ long x, two_valuation;
int overflow;
- PyObject *result, *odd_part, *pyint_form;
+ PyObject *result, *odd_part, *pyint_form;
if (PyFloat_Check(arg)) {
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "Using factorial() with floats is deprecated",
- 1) < 0)
- {
- return NULL;
- }
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "Using factorial() with floats is deprecated",
+ 1) < 0)
+ {
+ return NULL;
+ }
PyObject *lx;
double dx = PyFloat_AS_DOUBLE((PyFloatObject *)arg);
if (!(Py_IS_FINITE(dx) && dx == floor(dx))) {
@@ -2078,14 +2078,14 @@ math_factorial(PyObject *module, PyObject *arg)
x = PyLong_AsLongAndOverflow(lx, &overflow);
Py_DECREF(lx);
}
- else {
- pyint_form = PyNumber_Index(arg);
- if (pyint_form == NULL) {
- return NULL;
- }
- x = PyLong_AsLongAndOverflow(pyint_form, &overflow);
- Py_DECREF(pyint_form);
- }
+ else {
+ pyint_form = PyNumber_Index(arg);
+ if (pyint_form == NULL) {
+ return NULL;
+ }
+ x = PyLong_AsLongAndOverflow(pyint_form, &overflow);
+ Py_DECREF(pyint_form);
+ }
if (x == -1 && PyErr_Occurred()) {
return NULL;
@@ -2111,8 +2111,8 @@ math_factorial(PyObject *module, PyObject *arg)
odd_part = factorial_odd_part(x);
if (odd_part == NULL)
return NULL;
- two_valuation = x - count_set_bits(x);
- result = _PyLong_Lshift(odd_part, two_valuation);
+ two_valuation = x - count_set_bits(x);
+ result = _PyLong_Lshift(odd_part, two_valuation);
Py_DECREF(odd_part);
return result;
}
@@ -2136,10 +2136,10 @@ math_trunc(PyObject *module, PyObject *x)
_Py_IDENTIFIER(__trunc__);
PyObject *trunc, *result;
- if (PyFloat_CheckExact(x)) {
- return PyFloat_Type.tp_as_number->nb_int(x);
- }
-
+ if (PyFloat_CheckExact(x)) {
+ return PyFloat_Type.tp_as_number->nb_int(x);
+ }
+
if (Py_TYPE(x)->tp_dict == NULL) {
if (PyType_Ready(Py_TYPE(x)) < 0)
return NULL;
@@ -2434,223 +2434,223 @@ math_fmod_impl(PyObject *module, double x, double y)
return PyFloat_FromDouble(r);
}
-/*
-Given an *n* length *vec* of values and a value *max*, compute:
-
- max * sqrt(sum((x / max) ** 2 for x in vec))
-
-The value of the *max* variable must be non-negative and
-equal to the absolute value of the largest magnitude
-entry in the vector. If n==0, then *max* should be 0.0.
-If an infinity is present in the vec, *max* should be INF.
-
-The *found_nan* variable indicates whether some member of
-the *vec* is a NaN.
-
-To improve accuracy and to increase the number of cases where
-vector_norm() is commutative, we use a variant of Neumaier
-summation specialized to exploit that we always know that
-|csum| >= |x|.
-
-The *csum* variable tracks the cumulative sum and *frac* tracks
-the cumulative fractional errors at each step. Since this
-variant assumes that |csum| >= |x| at each step, we establish
-the precondition by starting the accumulation from 1.0 which
-represents the largest possible value of (x/max)**2.
-
-After the loop is finished, the initial 1.0 is subtracted out
-for a net zero effect on the final sum. Since *csum* will be
-greater than 1.0, the subtraction of 1.0 will not cause
-fractional digits to be dropped from *csum*.
-
-*/
-
-static inline double
-vector_norm(Py_ssize_t n, double *vec, double max, int found_nan)
-{
- double x, csum = 1.0, oldcsum, frac = 0.0;
- Py_ssize_t i;
-
- if (Py_IS_INFINITY(max)) {
- return max;
- }
- if (found_nan) {
- return Py_NAN;
- }
- if (max == 0.0 || n <= 1) {
- return max;
- }
- for (i=0 ; i < n ; i++) {
- x = vec[i];
- assert(Py_IS_FINITE(x) && fabs(x) <= max);
- x /= max;
- x = x*x;
- oldcsum = csum;
- csum += x;
- assert(csum >= x);
- frac += (oldcsum - csum) + x;
- }
- return max * sqrt(csum - 1.0 + frac);
-}
-
-#define NUM_STACK_ELEMS 16
-
+/*
+Given an *n* length *vec* of values and a value *max*, compute:
+
+ max * sqrt(sum((x / max) ** 2 for x in vec))
+
+The value of the *max* variable must be non-negative and
+equal to the absolute value of the largest magnitude
+entry in the vector. If n==0, then *max* should be 0.0.
+If an infinity is present in the vec, *max* should be INF.
+
+The *found_nan* variable indicates whether some member of
+the *vec* is a NaN.
+
+To improve accuracy and to increase the number of cases where
+vector_norm() is commutative, we use a variant of Neumaier
+summation specialized to exploit that we always know that
+|csum| >= |x|.
+
+The *csum* variable tracks the cumulative sum and *frac* tracks
+the cumulative fractional errors at each step. Since this
+variant assumes that |csum| >= |x| at each step, we establish
+the precondition by starting the accumulation from 1.0 which
+represents the largest possible value of (x/max)**2.
+
+After the loop is finished, the initial 1.0 is subtracted out
+for a net zero effect on the final sum. Since *csum* will be
+greater than 1.0, the subtraction of 1.0 will not cause
+fractional digits to be dropped from *csum*.
+
+*/
+
+static inline double
+vector_norm(Py_ssize_t n, double *vec, double max, int found_nan)
+{
+ double x, csum = 1.0, oldcsum, frac = 0.0;
+ Py_ssize_t i;
+
+ if (Py_IS_INFINITY(max)) {
+ return max;
+ }
+ if (found_nan) {
+ return Py_NAN;
+ }
+ if (max == 0.0 || n <= 1) {
+ return max;
+ }
+ for (i=0 ; i < n ; i++) {
+ x = vec[i];
+ assert(Py_IS_FINITE(x) && fabs(x) <= max);
+ x /= max;
+ x = x*x;
+ oldcsum = csum;
+ csum += x;
+ assert(csum >= x);
+ frac += (oldcsum - csum) + x;
+ }
+ return max * sqrt(csum - 1.0 + frac);
+}
+
+#define NUM_STACK_ELEMS 16
+
/*[clinic input]
-math.dist
+math.dist
- p: object
- q: object
+ p: object
+ q: object
/
-Return the Euclidean distance between two points p and q.
-
-The points should be specified as sequences (or iterables) of
-coordinates. Both inputs must have the same dimension.
-
-Roughly equivalent to:
- sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
+Return the Euclidean distance between two points p and q.
+
+The points should be specified as sequences (or iterables) of
+coordinates. Both inputs must have the same dimension.
+
+Roughly equivalent to:
+ sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
[clinic start generated code]*/
static PyObject *
-math_dist_impl(PyObject *module, PyObject *p, PyObject *q)
-/*[clinic end generated code: output=56bd9538d06bbcfe input=74e85e1b6092e68e]*/
+math_dist_impl(PyObject *module, PyObject *p, PyObject *q)
+/*[clinic end generated code: output=56bd9538d06bbcfe input=74e85e1b6092e68e]*/
{
- PyObject *item;
- double max = 0.0;
- double x, px, qx, result;
- Py_ssize_t i, m, n;
- int found_nan = 0, p_allocated = 0, q_allocated = 0;
- double diffs_on_stack[NUM_STACK_ELEMS];
- double *diffs = diffs_on_stack;
-
- if (!PyTuple_Check(p)) {
- p = PySequence_Tuple(p);
- if (p == NULL) {
- return NULL;
- }
- p_allocated = 1;
- }
- if (!PyTuple_Check(q)) {
- q = PySequence_Tuple(q);
- if (q == NULL) {
- if (p_allocated) {
- Py_DECREF(p);
- }
- return NULL;
- }
- q_allocated = 1;
- }
-
- m = PyTuple_GET_SIZE(p);
- n = PyTuple_GET_SIZE(q);
- if (m != n) {
- PyErr_SetString(PyExc_ValueError,
- "both points must have the same number of dimensions");
+ PyObject *item;
+ double max = 0.0;
+ double x, px, qx, result;
+ Py_ssize_t i, m, n;
+ int found_nan = 0, p_allocated = 0, q_allocated = 0;
+ double diffs_on_stack[NUM_STACK_ELEMS];
+ double *diffs = diffs_on_stack;
+
+ if (!PyTuple_Check(p)) {
+ p = PySequence_Tuple(p);
+ if (p == NULL) {
+ return NULL;
+ }
+ p_allocated = 1;
+ }
+ if (!PyTuple_Check(q)) {
+ q = PySequence_Tuple(q);
+ if (q == NULL) {
+ if (p_allocated) {
+ Py_DECREF(p);
+ }
+ return NULL;
+ }
+ q_allocated = 1;
+ }
+
+ m = PyTuple_GET_SIZE(p);
+ n = PyTuple_GET_SIZE(q);
+ if (m != n) {
+ PyErr_SetString(PyExc_ValueError,
+ "both points must have the same number of dimensions");
return NULL;
-
- }
- if (n > NUM_STACK_ELEMS) {
- diffs = (double *) PyObject_Malloc(n * sizeof(double));
- if (diffs == NULL) {
- return PyErr_NoMemory();
- }
- }
- for (i=0 ; i<n ; i++) {
- item = PyTuple_GET_ITEM(p, i);
- ASSIGN_DOUBLE(px, item, error_exit);
- item = PyTuple_GET_ITEM(q, i);
- ASSIGN_DOUBLE(qx, item, error_exit);
- x = fabs(px - qx);
- diffs[i] = x;
- found_nan |= Py_IS_NAN(x);
- if (x > max) {
- max = x;
- }
- }
- result = vector_norm(n, diffs, max, found_nan);
- if (diffs != diffs_on_stack) {
- PyObject_Free(diffs);
- }
- if (p_allocated) {
- Py_DECREF(p);
- }
- if (q_allocated) {
- Py_DECREF(q);
- }
- return PyFloat_FromDouble(result);
-
- error_exit:
- if (diffs != diffs_on_stack) {
- PyObject_Free(diffs);
- }
- if (p_allocated) {
- Py_DECREF(p);
- }
- if (q_allocated) {
- Py_DECREF(q);
- }
- return NULL;
+
+ }
+ if (n > NUM_STACK_ELEMS) {
+ diffs = (double *) PyObject_Malloc(n * sizeof(double));
+ if (diffs == NULL) {
+ return PyErr_NoMemory();
+ }
+ }
+ for (i=0 ; i<n ; i++) {
+ item = PyTuple_GET_ITEM(p, i);
+ ASSIGN_DOUBLE(px, item, error_exit);
+ item = PyTuple_GET_ITEM(q, i);
+ ASSIGN_DOUBLE(qx, item, error_exit);
+ x = fabs(px - qx);
+ diffs[i] = x;
+ found_nan |= Py_IS_NAN(x);
+ if (x > max) {
+ max = x;
+ }
+ }
+ result = vector_norm(n, diffs, max, found_nan);
+ if (diffs != diffs_on_stack) {
+ PyObject_Free(diffs);
+ }
+ if (p_allocated) {
+ Py_DECREF(p);
+ }
+ if (q_allocated) {
+ Py_DECREF(q);
+ }
+ return PyFloat_FromDouble(result);
+
+ error_exit:
+ if (diffs != diffs_on_stack) {
+ PyObject_Free(diffs);
+ }
+ if (p_allocated) {
+ Py_DECREF(p);
+ }
+ if (q_allocated) {
+ Py_DECREF(q);
+ }
+ return NULL;
+}
+
+/* AC: cannot convert yet, waiting for *args support */
+static PyObject *
+math_hypot(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ Py_ssize_t i;
+ PyObject *item;
+ double max = 0.0;
+ double x, result;
+ int found_nan = 0;
+ double coord_on_stack[NUM_STACK_ELEMS];
+ double *coordinates = coord_on_stack;
+
+ if (nargs > NUM_STACK_ELEMS) {
+ coordinates = (double *) PyObject_Malloc(nargs * sizeof(double));
+ if (coordinates == NULL) {
+ return PyErr_NoMemory();
+ }
+ }
+ for (i = 0; i < nargs; i++) {
+ item = args[i];
+ ASSIGN_DOUBLE(x, item, error_exit);
+ x = fabs(x);
+ coordinates[i] = x;
+ found_nan |= Py_IS_NAN(x);
+ if (x > max) {
+ max = x;
+ }
+ }
+ result = vector_norm(nargs, coordinates, max, found_nan);
+ if (coordinates != coord_on_stack) {
+ PyObject_Free(coordinates);
+ }
+ return PyFloat_FromDouble(result);
+
+ error_exit:
+ if (coordinates != coord_on_stack) {
+ PyObject_Free(coordinates);
+ }
+ return NULL;
}
-/* AC: cannot convert yet, waiting for *args support */
-static PyObject *
-math_hypot(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- Py_ssize_t i;
- PyObject *item;
- double max = 0.0;
- double x, result;
- int found_nan = 0;
- double coord_on_stack[NUM_STACK_ELEMS];
- double *coordinates = coord_on_stack;
-
- if (nargs > NUM_STACK_ELEMS) {
- coordinates = (double *) PyObject_Malloc(nargs * sizeof(double));
- if (coordinates == NULL) {
- return PyErr_NoMemory();
- }
- }
- for (i = 0; i < nargs; i++) {
- item = args[i];
- ASSIGN_DOUBLE(x, item, error_exit);
- x = fabs(x);
- coordinates[i] = x;
- found_nan |= Py_IS_NAN(x);
- if (x > max) {
- max = x;
- }
- }
- result = vector_norm(nargs, coordinates, max, found_nan);
- if (coordinates != coord_on_stack) {
- PyObject_Free(coordinates);
- }
- return PyFloat_FromDouble(result);
-
- error_exit:
- if (coordinates != coord_on_stack) {
- PyObject_Free(coordinates);
- }
- return NULL;
-}
-
-#undef NUM_STACK_ELEMS
-
-PyDoc_STRVAR(math_hypot_doc,
- "hypot(*coordinates) -> value\n\n\
-Multidimensional Euclidean distance from the origin to a point.\n\
-\n\
-Roughly equivalent to:\n\
- sqrt(sum(x**2 for x in coordinates))\n\
-\n\
-For a two dimensional point (x, y), gives the hypotenuse\n\
-using the Pythagorean theorem: sqrt(x*x + y*y).\n\
-\n\
-For example, the hypotenuse of a 3/4/5 right triangle is:\n\
-\n\
- >>> hypot(3.0, 4.0)\n\
- 5.0\n\
-");
-
+#undef NUM_STACK_ELEMS
+
+PyDoc_STRVAR(math_hypot_doc,
+ "hypot(*coordinates) -> value\n\n\
+Multidimensional Euclidean distance from the origin to a point.\n\
+\n\
+Roughly equivalent to:\n\
+ sqrt(sum(x**2 for x in coordinates))\n\
+\n\
+For a two dimensional point (x, y), gives the hypotenuse\n\
+using the Pythagorean theorem: sqrt(x*x + y*y).\n\
+\n\
+For example, the hypotenuse of a 3/4/5 right triangle is:\n\
+\n\
+ >>> hypot(3.0, 4.0)\n\
+ 5.0\n\
+");
+
/* pow can't use math_2, but needs its own wrapper: the problem is
that an infinite result can arise either as a result of overflow
(in which case OverflowError should be raised) or as a result of
@@ -2893,576 +2893,576 @@ math_isclose_impl(PyObject *module, double a, double b, double rel_tol,
(diff <= abs_tol));
}
-static inline int
-_check_long_mult_overflow(long a, long b) {
-
- /* From Python2's int_mul code:
-
- Integer overflow checking for * is painful: Python tried a couple ways, but
- they didn't work on all platforms, or failed in endcases (a product of
- -sys.maxint-1 has been a particular pain).
-
- Here's another way:
-
- The native long product x*y is either exactly right or *way* off, being
- just the last n bits of the true product, where n is the number of bits
- in a long (the delivered product is the true product plus i*2**n for
- some integer i).
-
- The native double product (double)x * (double)y is subject to three
- rounding errors: on a sizeof(long)==8 box, each cast to double can lose
- info, and even on a sizeof(long)==4 box, the multiplication can lose info.
- But, unlike the native long product, it's not in *range* trouble: even
- if sizeof(long)==32 (256-bit longs), the product easily fits in the
- dynamic range of a double. So the leading 50 (or so) bits of the double
- product are correct.
-
- We check these two ways against each other, and declare victory if they're
- approximately the same. Else, because the native long product is the only
- one that can lose catastrophic amounts of information, it's the native long
- product that must have overflowed.
-
- */
-
- long longprod = (long)((unsigned long)a * b);
- double doubleprod = (double)a * (double)b;
- double doubled_longprod = (double)longprod;
-
- if (doubled_longprod == doubleprod) {
- return 0;
- }
-
- const double diff = doubled_longprod - doubleprod;
- const double absdiff = diff >= 0.0 ? diff : -diff;
- const double absprod = doubleprod >= 0.0 ? doubleprod : -doubleprod;
-
- if (32.0 * absdiff <= absprod) {
- return 0;
- }
-
- return 1;
-}
-
-/*[clinic input]
-math.prod
-
- iterable: object
- /
- *
- start: object(c_default="NULL") = 1
-
-Calculate the product of all the elements in the input iterable.
-
-The default start value for the product is 1.
-
-When the iterable is empty, return the start value. This function is
-intended specifically for use with numeric values and may reject
-non-numeric types.
-[clinic start generated code]*/
-
-static PyObject *
-math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)
-/*[clinic end generated code: output=36153bedac74a198 input=4c5ab0682782ed54]*/
-{
- PyObject *result = start;
- PyObject *temp, *item, *iter;
-
- iter = PyObject_GetIter(iterable);
- if (iter == NULL) {
- return NULL;
- }
-
- if (result == NULL) {
- result = _PyLong_One;
- }
- Py_INCREF(result);
-#ifndef SLOW_PROD
- /* Fast paths for integers keeping temporary products in C.
- * Assumes all inputs are the same type.
- * If the assumption fails, default to use PyObjects instead.
- */
- if (PyLong_CheckExact(result)) {
- int overflow;
- long i_result = PyLong_AsLongAndOverflow(result, &overflow);
- /* If this already overflowed, don't even enter the loop. */
- if (overflow == 0) {
- Py_DECREF(result);
- result = NULL;
- }
- /* Loop over all the items in the iterable until we finish, we overflow
- * or we found a non integer element */
- while (result == NULL) {
- item = PyIter_Next(iter);
- if (item == NULL) {
- Py_DECREF(iter);
- if (PyErr_Occurred()) {
- return NULL;
- }
- return PyLong_FromLong(i_result);
- }
- if (PyLong_CheckExact(item)) {
- long b = PyLong_AsLongAndOverflow(item, &overflow);
- if (overflow == 0 && !_check_long_mult_overflow(i_result, b)) {
- long x = i_result * b;
- i_result = x;
- Py_DECREF(item);
- continue;
- }
- }
- /* Either overflowed or is not an int.
- * Restore real objects and process normally */
- result = PyLong_FromLong(i_result);
- if (result == NULL) {
- Py_DECREF(item);
- Py_DECREF(iter);
- return NULL;
- }
- temp = PyNumber_Multiply(result, item);
- Py_DECREF(result);
- Py_DECREF(item);
- result = temp;
- if (result == NULL) {
- Py_DECREF(iter);
- return NULL;
- }
- }
- }
-
- /* Fast paths for floats keeping temporary products in C.
- * Assumes all inputs are the same type.
- * If the assumption fails, default to use PyObjects instead.
- */
- if (PyFloat_CheckExact(result)) {
- double f_result = PyFloat_AS_DOUBLE(result);
- Py_DECREF(result);
- result = NULL;
- while(result == NULL) {
- item = PyIter_Next(iter);
- if (item == NULL) {
- Py_DECREF(iter);
- if (PyErr_Occurred()) {
- return NULL;
- }
- return PyFloat_FromDouble(f_result);
- }
- if (PyFloat_CheckExact(item)) {
- f_result *= PyFloat_AS_DOUBLE(item);
- Py_DECREF(item);
- continue;
- }
- if (PyLong_CheckExact(item)) {
- long value;
- int overflow;
- value = PyLong_AsLongAndOverflow(item, &overflow);
- if (!overflow) {
- f_result *= (double)value;
- Py_DECREF(item);
- continue;
- }
- }
- result = PyFloat_FromDouble(f_result);
- if (result == NULL) {
- Py_DECREF(item);
- Py_DECREF(iter);
- return NULL;
- }
- temp = PyNumber_Multiply(result, item);
- Py_DECREF(result);
- Py_DECREF(item);
- result = temp;
- if (result == NULL) {
- Py_DECREF(iter);
- return NULL;
- }
- }
- }
-#endif
- /* Consume rest of the iterable (if any) that could not be handled
- * by specialized functions above.*/
- for(;;) {
- item = PyIter_Next(iter);
- if (item == NULL) {
- /* error, or end-of-sequence */
- if (PyErr_Occurred()) {
- Py_DECREF(result);
- result = NULL;
- }
- break;
- }
- temp = PyNumber_Multiply(result, item);
- Py_DECREF(result);
- Py_DECREF(item);
- result = temp;
- if (result == NULL)
- break;
- }
- Py_DECREF(iter);
- return result;
-}
-
-
-/*[clinic input]
-math.perm
-
- n: object
- k: object = None
- /
-
-Number of ways to choose k items from n items without repetition and with order.
-
-Evaluates to n! / (n - k)! when k <= n and evaluates
-to zero when k > n.
-
-If k is not specified or is None, then k defaults to n
-and the function returns n!.
-
-Raises TypeError if either of the arguments are not integers.
-Raises ValueError if either of the arguments are negative.
-[clinic start generated code]*/
-
-static PyObject *
-math_perm_impl(PyObject *module, PyObject *n, PyObject *k)
-/*[clinic end generated code: output=e021a25469653e23 input=5311c5a00f359b53]*/
-{
- PyObject *result = NULL, *factor = NULL;
- int overflow, cmp;
- long long i, factors;
-
- if (k == Py_None) {
- return math_factorial(module, n);
- }
- n = PyNumber_Index(n);
- if (n == NULL) {
- return NULL;
- }
- if (!PyLong_CheckExact(n)) {
- Py_SETREF(n, _PyLong_Copy((PyLongObject *)n));
- if (n == NULL) {
- return NULL;
- }
- }
- k = PyNumber_Index(k);
- if (k == NULL) {
- Py_DECREF(n);
- return NULL;
- }
- if (!PyLong_CheckExact(k)) {
- Py_SETREF(k, _PyLong_Copy((PyLongObject *)k));
- if (k == NULL) {
- Py_DECREF(n);
- return NULL;
- }
- }
-
- if (Py_SIZE(n) < 0) {
- PyErr_SetString(PyExc_ValueError,
- "n must be a non-negative integer");
- goto error;
- }
- if (Py_SIZE(k) < 0) {
- PyErr_SetString(PyExc_ValueError,
- "k must be a non-negative integer");
- goto error;
- }
-
- cmp = PyObject_RichCompareBool(n, k, Py_LT);
- if (cmp != 0) {
- if (cmp > 0) {
- result = PyLong_FromLong(0);
- goto done;
- }
- goto error;
- }
-
- factors = PyLong_AsLongLongAndOverflow(k, &overflow);
- if (overflow > 0) {
- PyErr_Format(PyExc_OverflowError,
- "k must not exceed %lld",
- LLONG_MAX);
- goto error;
- }
- else if (factors == -1) {
- /* k is nonnegative, so a return value of -1 can only indicate error */
- goto error;
- }
-
- if (factors == 0) {
- result = PyLong_FromLong(1);
- goto done;
- }
-
- result = n;
- Py_INCREF(result);
- if (factors == 1) {
- goto done;
- }
-
- factor = n;
- Py_INCREF(factor);
- for (i = 1; i < factors; ++i) {
- Py_SETREF(factor, PyNumber_Subtract(factor, _PyLong_One));
- if (factor == NULL) {
- goto error;
- }
- Py_SETREF(result, PyNumber_Multiply(result, factor));
- if (result == NULL) {
- goto error;
- }
- }
- Py_DECREF(factor);
-
-done:
- Py_DECREF(n);
- Py_DECREF(k);
- return result;
-
-error:
- Py_XDECREF(factor);
- Py_XDECREF(result);
- Py_DECREF(n);
- Py_DECREF(k);
- return NULL;
-}
-
-
-/*[clinic input]
-math.comb
-
- n: object
- k: object
- /
-
-Number of ways to choose k items from n items without repetition and without order.
-
-Evaluates to n! / (k! * (n - k)!) when k <= n and evaluates
-to zero when k > n.
-
-Also called the binomial coefficient because it is equivalent
-to the coefficient of k-th term in polynomial expansion of the
-expression (1 + x)**n.
-
-Raises TypeError if either of the arguments are not integers.
-Raises ValueError if either of the arguments are negative.
-
-[clinic start generated code]*/
-
-static PyObject *
-math_comb_impl(PyObject *module, PyObject *n, PyObject *k)
-/*[clinic end generated code: output=bd2cec8d854f3493 input=9a05315af2518709]*/
-{
- PyObject *result = NULL, *factor = NULL, *temp;
- int overflow, cmp;
- long long i, factors;
-
- n = PyNumber_Index(n);
- if (n == NULL) {
- return NULL;
- }
- if (!PyLong_CheckExact(n)) {
- Py_SETREF(n, _PyLong_Copy((PyLongObject *)n));
- if (n == NULL) {
- return NULL;
- }
- }
- k = PyNumber_Index(k);
- if (k == NULL) {
- Py_DECREF(n);
- return NULL;
- }
- if (!PyLong_CheckExact(k)) {
- Py_SETREF(k, _PyLong_Copy((PyLongObject *)k));
- if (k == NULL) {
- Py_DECREF(n);
- return NULL;
- }
- }
-
- if (Py_SIZE(n) < 0) {
- PyErr_SetString(PyExc_ValueError,
- "n must be a non-negative integer");
- goto error;
- }
- if (Py_SIZE(k) < 0) {
- PyErr_SetString(PyExc_ValueError,
- "k must be a non-negative integer");
- goto error;
- }
-
- /* k = min(k, n - k) */
- temp = PyNumber_Subtract(n, k);
- if (temp == NULL) {
- goto error;
- }
- if (Py_SIZE(temp) < 0) {
- Py_DECREF(temp);
- result = PyLong_FromLong(0);
- goto done;
- }
- cmp = PyObject_RichCompareBool(temp, k, Py_LT);
- if (cmp > 0) {
- Py_SETREF(k, temp);
- }
- else {
- Py_DECREF(temp);
- if (cmp < 0) {
- goto error;
- }
- }
-
- factors = PyLong_AsLongLongAndOverflow(k, &overflow);
- if (overflow > 0) {
- PyErr_Format(PyExc_OverflowError,
- "min(n - k, k) must not exceed %lld",
- LLONG_MAX);
- goto error;
- }
- if (factors == -1) {
- /* k is nonnegative, so a return value of -1 can only indicate error */
- goto error;
- }
-
- if (factors == 0) {
- result = PyLong_FromLong(1);
- goto done;
- }
-
- result = n;
- Py_INCREF(result);
- if (factors == 1) {
- goto done;
- }
-
- factor = n;
- Py_INCREF(factor);
- for (i = 1; i < factors; ++i) {
- Py_SETREF(factor, PyNumber_Subtract(factor, _PyLong_One));
- if (factor == NULL) {
- goto error;
- }
- Py_SETREF(result, PyNumber_Multiply(result, factor));
- if (result == NULL) {
- goto error;
- }
-
- temp = PyLong_FromUnsignedLongLong((unsigned long long)i + 1);
- if (temp == NULL) {
- goto error;
- }
- Py_SETREF(result, PyNumber_FloorDivide(result, temp));
- Py_DECREF(temp);
- if (result == NULL) {
- goto error;
- }
- }
- Py_DECREF(factor);
-
-done:
- Py_DECREF(n);
- Py_DECREF(k);
- return result;
-
-error:
- Py_XDECREF(factor);
- Py_XDECREF(result);
- Py_DECREF(n);
- Py_DECREF(k);
- return NULL;
-}
-
-
-/*[clinic input]
-math.nextafter
-
- x: double
- y: double
- /
-
-Return the next floating-point value after x towards y.
-[clinic start generated code]*/
-
-static PyObject *
-math_nextafter_impl(PyObject *module, double x, double y)
-/*[clinic end generated code: output=750c8266c1c540ce input=02b2d50cd1d9f9b6]*/
-{
-#if defined(_AIX)
- if (x == y) {
- /* On AIX 7.1, libm nextafter(-0.0, +0.0) returns -0.0.
- Bug fixed in bos.adt.libm 7.2.2.0 by APAR IV95512. */
- return PyFloat_FromDouble(y);
- }
-#endif
- return PyFloat_FromDouble(nextafter(x, y));
-}
-
-
-/*[clinic input]
-math.ulp -> double
-
- x: double
- /
-
-Return the value of the least significant bit of the float x.
-[clinic start generated code]*/
-
-static double
-math_ulp_impl(PyObject *module, double x)
-/*[clinic end generated code: output=f5207867a9384dd4 input=31f9bfbbe373fcaa]*/
-{
- if (Py_IS_NAN(x)) {
- return x;
- }
- x = fabs(x);
- if (Py_IS_INFINITY(x)) {
- return x;
- }
- double inf = m_inf();
- double x2 = nextafter(x, inf);
- if (Py_IS_INFINITY(x2)) {
- /* special case: x is the largest positive representable float */
- x2 = nextafter(x, -inf);
- return x - x2;
- }
- return x2 - x;
-}
-
-static int
-math_exec(PyObject *module)
-{
- if (PyModule_AddObject(module, "pi", PyFloat_FromDouble(Py_MATH_PI)) < 0) {
- return -1;
- }
- if (PyModule_AddObject(module, "e", PyFloat_FromDouble(Py_MATH_E)) < 0) {
- return -1;
- }
- // 2pi
- if (PyModule_AddObject(module, "tau", PyFloat_FromDouble(Py_MATH_TAU)) < 0) {
- return -1;
- }
- if (PyModule_AddObject(module, "inf", PyFloat_FromDouble(m_inf())) < 0) {
- return -1;
- }
-#if !defined(PY_NO_SHORT_FLOAT_REPR) || defined(Py_NAN)
- if (PyModule_AddObject(module, "nan", PyFloat_FromDouble(m_nan())) < 0) {
- return -1;
- }
-#endif
- return 0;
-}
-
+static inline int
+_check_long_mult_overflow(long a, long b) {
+
+ /* From Python2's int_mul code:
+
+ Integer overflow checking for * is painful: Python tried a couple ways, but
+ they didn't work on all platforms, or failed in endcases (a product of
+ -sys.maxint-1 has been a particular pain).
+
+ Here's another way:
+
+ The native long product x*y is either exactly right or *way* off, being
+ just the last n bits of the true product, where n is the number of bits
+ in a long (the delivered product is the true product plus i*2**n for
+ some integer i).
+
+ The native double product (double)x * (double)y is subject to three
+ rounding errors: on a sizeof(long)==8 box, each cast to double can lose
+ info, and even on a sizeof(long)==4 box, the multiplication can lose info.
+ But, unlike the native long product, it's not in *range* trouble: even
+ if sizeof(long)==32 (256-bit longs), the product easily fits in the
+ dynamic range of a double. So the leading 50 (or so) bits of the double
+ product are correct.
+
+ We check these two ways against each other, and declare victory if they're
+ approximately the same. Else, because the native long product is the only
+ one that can lose catastrophic amounts of information, it's the native long
+ product that must have overflowed.
+
+ */
+
+ long longprod = (long)((unsigned long)a * b);
+ double doubleprod = (double)a * (double)b;
+ double doubled_longprod = (double)longprod;
+
+ if (doubled_longprod == doubleprod) {
+ return 0;
+ }
+
+ const double diff = doubled_longprod - doubleprod;
+ const double absdiff = diff >= 0.0 ? diff : -diff;
+ const double absprod = doubleprod >= 0.0 ? doubleprod : -doubleprod;
+
+ if (32.0 * absdiff <= absprod) {
+ return 0;
+ }
+
+ return 1;
+}
+
+/*[clinic input]
+math.prod
+
+ iterable: object
+ /
+ *
+ start: object(c_default="NULL") = 1
+
+Calculate the product of all the elements in the input iterable.
+
+The default start value for the product is 1.
+
+When the iterable is empty, return the start value. This function is
+intended specifically for use with numeric values and may reject
+non-numeric types.
+[clinic start generated code]*/
+
+static PyObject *
+math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)
+/*[clinic end generated code: output=36153bedac74a198 input=4c5ab0682782ed54]*/
+{
+ PyObject *result = start;
+ PyObject *temp, *item, *iter;
+
+ iter = PyObject_GetIter(iterable);
+ if (iter == NULL) {
+ return NULL;
+ }
+
+ if (result == NULL) {
+ result = _PyLong_One;
+ }
+ Py_INCREF(result);
+#ifndef SLOW_PROD
+ /* Fast paths for integers keeping temporary products in C.
+ * Assumes all inputs are the same type.
+ * If the assumption fails, default to use PyObjects instead.
+ */
+ if (PyLong_CheckExact(result)) {
+ int overflow;
+ long i_result = PyLong_AsLongAndOverflow(result, &overflow);
+ /* If this already overflowed, don't even enter the loop. */
+ if (overflow == 0) {
+ Py_DECREF(result);
+ result = NULL;
+ }
+ /* Loop over all the items in the iterable until we finish, we overflow
+ * or we found a non integer element */
+ while (result == NULL) {
+ item = PyIter_Next(iter);
+ if (item == NULL) {
+ Py_DECREF(iter);
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+ return PyLong_FromLong(i_result);
+ }
+ if (PyLong_CheckExact(item)) {
+ long b = PyLong_AsLongAndOverflow(item, &overflow);
+ if (overflow == 0 && !_check_long_mult_overflow(i_result, b)) {
+ long x = i_result * b;
+ i_result = x;
+ Py_DECREF(item);
+ continue;
+ }
+ }
+ /* Either overflowed or is not an int.
+ * Restore real objects and process normally */
+ result = PyLong_FromLong(i_result);
+ if (result == NULL) {
+ Py_DECREF(item);
+ Py_DECREF(iter);
+ return NULL;
+ }
+ temp = PyNumber_Multiply(result, item);
+ Py_DECREF(result);
+ Py_DECREF(item);
+ result = temp;
+ if (result == NULL) {
+ Py_DECREF(iter);
+ return NULL;
+ }
+ }
+ }
+
+ /* Fast paths for floats keeping temporary products in C.
+ * Assumes all inputs are the same type.
+ * If the assumption fails, default to use PyObjects instead.
+ */
+ if (PyFloat_CheckExact(result)) {
+ double f_result = PyFloat_AS_DOUBLE(result);
+ Py_DECREF(result);
+ result = NULL;
+ while(result == NULL) {
+ item = PyIter_Next(iter);
+ if (item == NULL) {
+ Py_DECREF(iter);
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+ return PyFloat_FromDouble(f_result);
+ }
+ if (PyFloat_CheckExact(item)) {
+ f_result *= PyFloat_AS_DOUBLE(item);
+ Py_DECREF(item);
+ continue;
+ }
+ if (PyLong_CheckExact(item)) {
+ long value;
+ int overflow;
+ value = PyLong_AsLongAndOverflow(item, &overflow);
+ if (!overflow) {
+ f_result *= (double)value;
+ Py_DECREF(item);
+ continue;
+ }
+ }
+ result = PyFloat_FromDouble(f_result);
+ if (result == NULL) {
+ Py_DECREF(item);
+ Py_DECREF(iter);
+ return NULL;
+ }
+ temp = PyNumber_Multiply(result, item);
+ Py_DECREF(result);
+ Py_DECREF(item);
+ result = temp;
+ if (result == NULL) {
+ Py_DECREF(iter);
+ return NULL;
+ }
+ }
+ }
+#endif
+ /* Consume rest of the iterable (if any) that could not be handled
+ * by specialized functions above.*/
+ for(;;) {
+ item = PyIter_Next(iter);
+ if (item == NULL) {
+ /* error, or end-of-sequence */
+ if (PyErr_Occurred()) {
+ Py_DECREF(result);
+ result = NULL;
+ }
+ break;
+ }
+ temp = PyNumber_Multiply(result, item);
+ Py_DECREF(result);
+ Py_DECREF(item);
+ result = temp;
+ if (result == NULL)
+ break;
+ }
+ Py_DECREF(iter);
+ return result;
+}
+
+
+/*[clinic input]
+math.perm
+
+ n: object
+ k: object = None
+ /
+
+Number of ways to choose k items from n items without repetition and with order.
+
+Evaluates to n! / (n - k)! when k <= n and evaluates
+to zero when k > n.
+
+If k is not specified or is None, then k defaults to n
+and the function returns n!.
+
+Raises TypeError if either of the arguments are not integers.
+Raises ValueError if either of the arguments are negative.
+[clinic start generated code]*/
+
+static PyObject *
+math_perm_impl(PyObject *module, PyObject *n, PyObject *k)
+/*[clinic end generated code: output=e021a25469653e23 input=5311c5a00f359b53]*/
+{
+ PyObject *result = NULL, *factor = NULL;
+ int overflow, cmp;
+ long long i, factors;
+
+ if (k == Py_None) {
+ return math_factorial(module, n);
+ }
+ n = PyNumber_Index(n);
+ if (n == NULL) {
+ return NULL;
+ }
+ if (!PyLong_CheckExact(n)) {
+ Py_SETREF(n, _PyLong_Copy((PyLongObject *)n));
+ if (n == NULL) {
+ return NULL;
+ }
+ }
+ k = PyNumber_Index(k);
+ if (k == NULL) {
+ Py_DECREF(n);
+ return NULL;
+ }
+ if (!PyLong_CheckExact(k)) {
+ Py_SETREF(k, _PyLong_Copy((PyLongObject *)k));
+ if (k == NULL) {
+ Py_DECREF(n);
+ return NULL;
+ }
+ }
+
+ if (Py_SIZE(n) < 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "n must be a non-negative integer");
+ goto error;
+ }
+ if (Py_SIZE(k) < 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "k must be a non-negative integer");
+ goto error;
+ }
+
+ cmp = PyObject_RichCompareBool(n, k, Py_LT);
+ if (cmp != 0) {
+ if (cmp > 0) {
+ result = PyLong_FromLong(0);
+ goto done;
+ }
+ goto error;
+ }
+
+ factors = PyLong_AsLongLongAndOverflow(k, &overflow);
+ if (overflow > 0) {
+ PyErr_Format(PyExc_OverflowError,
+ "k must not exceed %lld",
+ LLONG_MAX);
+ goto error;
+ }
+ else if (factors == -1) {
+ /* k is nonnegative, so a return value of -1 can only indicate error */
+ goto error;
+ }
+
+ if (factors == 0) {
+ result = PyLong_FromLong(1);
+ goto done;
+ }
+
+ result = n;
+ Py_INCREF(result);
+ if (factors == 1) {
+ goto done;
+ }
+
+ factor = n;
+ Py_INCREF(factor);
+ for (i = 1; i < factors; ++i) {
+ Py_SETREF(factor, PyNumber_Subtract(factor, _PyLong_One));
+ if (factor == NULL) {
+ goto error;
+ }
+ Py_SETREF(result, PyNumber_Multiply(result, factor));
+ if (result == NULL) {
+ goto error;
+ }
+ }
+ Py_DECREF(factor);
+
+done:
+ Py_DECREF(n);
+ Py_DECREF(k);
+ return result;
+
+error:
+ Py_XDECREF(factor);
+ Py_XDECREF(result);
+ Py_DECREF(n);
+ Py_DECREF(k);
+ return NULL;
+}
+
+
+/*[clinic input]
+math.comb
+
+ n: object
+ k: object
+ /
+
+Number of ways to choose k items from n items without repetition and without order.
+
+Evaluates to n! / (k! * (n - k)!) when k <= n and evaluates
+to zero when k > n.
+
+Also called the binomial coefficient because it is equivalent
+to the coefficient of k-th term in polynomial expansion of the
+expression (1 + x)**n.
+
+Raises TypeError if either of the arguments are not integers.
+Raises ValueError if either of the arguments are negative.
+
+[clinic start generated code]*/
+
+static PyObject *
+math_comb_impl(PyObject *module, PyObject *n, PyObject *k)
+/*[clinic end generated code: output=bd2cec8d854f3493 input=9a05315af2518709]*/
+{
+ PyObject *result = NULL, *factor = NULL, *temp;
+ int overflow, cmp;
+ long long i, factors;
+
+ n = PyNumber_Index(n);
+ if (n == NULL) {
+ return NULL;
+ }
+ if (!PyLong_CheckExact(n)) {
+ Py_SETREF(n, _PyLong_Copy((PyLongObject *)n));
+ if (n == NULL) {
+ return NULL;
+ }
+ }
+ k = PyNumber_Index(k);
+ if (k == NULL) {
+ Py_DECREF(n);
+ return NULL;
+ }
+ if (!PyLong_CheckExact(k)) {
+ Py_SETREF(k, _PyLong_Copy((PyLongObject *)k));
+ if (k == NULL) {
+ Py_DECREF(n);
+ return NULL;
+ }
+ }
+
+ if (Py_SIZE(n) < 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "n must be a non-negative integer");
+ goto error;
+ }
+ if (Py_SIZE(k) < 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "k must be a non-negative integer");
+ goto error;
+ }
+
+ /* k = min(k, n - k) */
+ temp = PyNumber_Subtract(n, k);
+ if (temp == NULL) {
+ goto error;
+ }
+ if (Py_SIZE(temp) < 0) {
+ Py_DECREF(temp);
+ result = PyLong_FromLong(0);
+ goto done;
+ }
+ cmp = PyObject_RichCompareBool(temp, k, Py_LT);
+ if (cmp > 0) {
+ Py_SETREF(k, temp);
+ }
+ else {
+ Py_DECREF(temp);
+ if (cmp < 0) {
+ goto error;
+ }
+ }
+
+ factors = PyLong_AsLongLongAndOverflow(k, &overflow);
+ if (overflow > 0) {
+ PyErr_Format(PyExc_OverflowError,
+ "min(n - k, k) must not exceed %lld",
+ LLONG_MAX);
+ goto error;
+ }
+ if (factors == -1) {
+ /* k is nonnegative, so a return value of -1 can only indicate error */
+ goto error;
+ }
+
+ if (factors == 0) {
+ result = PyLong_FromLong(1);
+ goto done;
+ }
+
+ result = n;
+ Py_INCREF(result);
+ if (factors == 1) {
+ goto done;
+ }
+
+ factor = n;
+ Py_INCREF(factor);
+ for (i = 1; i < factors; ++i) {
+ Py_SETREF(factor, PyNumber_Subtract(factor, _PyLong_One));
+ if (factor == NULL) {
+ goto error;
+ }
+ Py_SETREF(result, PyNumber_Multiply(result, factor));
+ if (result == NULL) {
+ goto error;
+ }
+
+ temp = PyLong_FromUnsignedLongLong((unsigned long long)i + 1);
+ if (temp == NULL) {
+ goto error;
+ }
+ Py_SETREF(result, PyNumber_FloorDivide(result, temp));
+ Py_DECREF(temp);
+ if (result == NULL) {
+ goto error;
+ }
+ }
+ Py_DECREF(factor);
+
+done:
+ Py_DECREF(n);
+ Py_DECREF(k);
+ return result;
+
+error:
+ Py_XDECREF(factor);
+ Py_XDECREF(result);
+ Py_DECREF(n);
+ Py_DECREF(k);
+ return NULL;
+}
+
+
+/*[clinic input]
+math.nextafter
+
+ x: double
+ y: double
+ /
+
+Return the next floating-point value after x towards y.
+[clinic start generated code]*/
+
+static PyObject *
+math_nextafter_impl(PyObject *module, double x, double y)
+/*[clinic end generated code: output=750c8266c1c540ce input=02b2d50cd1d9f9b6]*/
+{
+#if defined(_AIX)
+ if (x == y) {
+ /* On AIX 7.1, libm nextafter(-0.0, +0.0) returns -0.0.
+ Bug fixed in bos.adt.libm 7.2.2.0 by APAR IV95512. */
+ return PyFloat_FromDouble(y);
+ }
+#endif
+ return PyFloat_FromDouble(nextafter(x, y));
+}
+
+
+/*[clinic input]
+math.ulp -> double
+
+ x: double
+ /
+
+Return the value of the least significant bit of the float x.
+[clinic start generated code]*/
+
+static double
+math_ulp_impl(PyObject *module, double x)
+/*[clinic end generated code: output=f5207867a9384dd4 input=31f9bfbbe373fcaa]*/
+{
+ if (Py_IS_NAN(x)) {
+ return x;
+ }
+ x = fabs(x);
+ if (Py_IS_INFINITY(x)) {
+ return x;
+ }
+ double inf = m_inf();
+ double x2 = nextafter(x, inf);
+ if (Py_IS_INFINITY(x2)) {
+ /* special case: x is the largest positive representable float */
+ x2 = nextafter(x, -inf);
+ return x - x2;
+ }
+ return x2 - x;
+}
+
+static int
+math_exec(PyObject *module)
+{
+ if (PyModule_AddObject(module, "pi", PyFloat_FromDouble(Py_MATH_PI)) < 0) {
+ return -1;
+ }
+ if (PyModule_AddObject(module, "e", PyFloat_FromDouble(Py_MATH_E)) < 0) {
+ return -1;
+ }
+ // 2pi
+ if (PyModule_AddObject(module, "tau", PyFloat_FromDouble(Py_MATH_TAU)) < 0) {
+ return -1;
+ }
+ if (PyModule_AddObject(module, "inf", PyFloat_FromDouble(m_inf())) < 0) {
+ return -1;
+ }
+#if !defined(PY_NO_SHORT_FLOAT_REPR) || defined(Py_NAN)
+ if (PyModule_AddObject(module, "nan", PyFloat_FromDouble(m_nan())) < 0) {
+ return -1;
+ }
+#endif
+ return 0;
+}
+
static PyMethodDef math_methods[] = {
{"acos", math_acos, METH_O, math_acos_doc},
{"acosh", math_acosh, METH_O, math_acosh_doc},
{"asin", math_asin, METH_O, math_asin_doc},
{"asinh", math_asinh, METH_O, math_asinh_doc},
{"atan", math_atan, METH_O, math_atan_doc},
- {"atan2", (PyCFunction)(void(*)(void))math_atan2, METH_FASTCALL, math_atan2_doc},
+ {"atan2", (PyCFunction)(void(*)(void))math_atan2, METH_FASTCALL, math_atan2_doc},
{"atanh", math_atanh, METH_O, math_atanh_doc},
MATH_CEIL_METHODDEF
- {"copysign", (PyCFunction)(void(*)(void))math_copysign, METH_FASTCALL, math_copysign_doc},
+ {"copysign", (PyCFunction)(void(*)(void))math_copysign, METH_FASTCALL, math_copysign_doc},
{"cos", math_cos, METH_O, math_cos_doc},
{"cosh", math_cosh, METH_O, math_cosh_doc},
MATH_DEGREES_METHODDEF
- MATH_DIST_METHODDEF
+ MATH_DIST_METHODDEF
{"erf", math_erf, METH_O, math_erf_doc},
{"erfc", math_erfc, METH_O, math_erfc_doc},
{"exp", math_exp, METH_O, math_exp_doc},
@@ -3474,14 +3474,14 @@ static PyMethodDef math_methods[] = {
MATH_FREXP_METHODDEF
MATH_FSUM_METHODDEF
{"gamma", math_gamma, METH_O, math_gamma_doc},
- {"gcd", (PyCFunction)(void(*)(void))math_gcd, METH_FASTCALL, math_gcd_doc},
- {"hypot", (PyCFunction)(void(*)(void))math_hypot, METH_FASTCALL, math_hypot_doc},
+ {"gcd", (PyCFunction)(void(*)(void))math_gcd, METH_FASTCALL, math_gcd_doc},
+ {"hypot", (PyCFunction)(void(*)(void))math_hypot, METH_FASTCALL, math_hypot_doc},
MATH_ISCLOSE_METHODDEF
MATH_ISFINITE_METHODDEF
MATH_ISINF_METHODDEF
MATH_ISNAN_METHODDEF
- MATH_ISQRT_METHODDEF
- {"lcm", (PyCFunction)(void(*)(void))math_lcm, METH_FASTCALL, math_lcm_doc},
+ MATH_ISQRT_METHODDEF
+ {"lcm", (PyCFunction)(void(*)(void))math_lcm, METH_FASTCALL, math_lcm_doc},
MATH_LDEXP_METHODDEF
{"lgamma", math_lgamma, METH_O, math_lgamma_doc},
MATH_LOG_METHODDEF
@@ -3491,41 +3491,41 @@ static PyMethodDef math_methods[] = {
MATH_MODF_METHODDEF
MATH_POW_METHODDEF
MATH_RADIANS_METHODDEF
- {"remainder", (PyCFunction)(void(*)(void))math_remainder, METH_FASTCALL, math_remainder_doc},
+ {"remainder", (PyCFunction)(void(*)(void))math_remainder, METH_FASTCALL, math_remainder_doc},
{"sin", math_sin, METH_O, math_sin_doc},
{"sinh", math_sinh, METH_O, math_sinh_doc},
{"sqrt", math_sqrt, METH_O, math_sqrt_doc},
{"tan", math_tan, METH_O, math_tan_doc},
{"tanh", math_tanh, METH_O, math_tanh_doc},
MATH_TRUNC_METHODDEF
- MATH_PROD_METHODDEF
- MATH_PERM_METHODDEF
- MATH_COMB_METHODDEF
- MATH_NEXTAFTER_METHODDEF
- MATH_ULP_METHODDEF
+ MATH_PROD_METHODDEF
+ MATH_PERM_METHODDEF
+ MATH_COMB_METHODDEF
+ MATH_NEXTAFTER_METHODDEF
+ MATH_ULP_METHODDEF
{NULL, NULL} /* sentinel */
};
-static PyModuleDef_Slot math_slots[] = {
- {Py_mod_exec, math_exec},
- {0, NULL}
-};
+static PyModuleDef_Slot math_slots[] = {
+ {Py_mod_exec, math_exec},
+ {0, NULL}
+};
PyDoc_STRVAR(module_doc,
-"This module provides access to the mathematical functions\n"
-"defined by the C standard.");
+"This module provides access to the mathematical functions\n"
+"defined by the C standard.");
static struct PyModuleDef mathmodule = {
PyModuleDef_HEAD_INIT,
- .m_name = "math",
- .m_doc = module_doc,
- .m_size = 0,
- .m_methods = math_methods,
- .m_slots = math_slots,
+ .m_name = "math",
+ .m_doc = module_doc,
+ .m_size = 0,
+ .m_methods = math_methods,
+ .m_slots = math_slots,
};
PyMODINIT_FUNC
PyInit_math(void)
{
- return PyModuleDef_Init(&mathmodule);
+ return PyModuleDef_Init(&mathmodule);
}
diff --git a/contrib/tools/python3/src/Modules/md5module.c b/contrib/tools/python3/src/Modules/md5module.c
index 3d5d7cdf8a..6ed843376a 100644
--- a/contrib/tools/python3/src/Modules/md5module.c
+++ b/contrib/tools/python3/src/Modules/md5module.c
@@ -74,7 +74,7 @@ typedef struct {
* The library is free for all purposes without any express
* guarantee it works.
*
- * Tom St Denis, tomstdenis@gmail.com, https://www.libtom.net
+ * Tom St Denis, tomstdenis@gmail.com, https://www.libtom.net
*/
/* rotate the hard way (platform optimizations could be done) */
@@ -119,7 +119,7 @@ typedef struct {
a = (a + I(b,c,d) + M + t); a = ROLc(a, s) + b;
-static void md5_compress(struct md5_state *md5, const unsigned char *buf)
+static void md5_compress(struct md5_state *md5, const unsigned char *buf)
{
MD5_INT32 i, W[16], a, b, c, d;
@@ -242,7 +242,7 @@ md5_process(struct md5_state *md5, const unsigned char *in, Py_ssize_t inlen)
while (inlen > 0) {
if (md5->curlen == 0 && inlen >= MD5_BLOCKSIZE) {
- md5_compress(md5, in);
+ md5_compress(md5, in);
md5->length += MD5_BLOCKSIZE * 8;
in += MD5_BLOCKSIZE;
inlen -= MD5_BLOCKSIZE;
@@ -469,10 +469,10 @@ static PyTypeObject MD5type = {
0, /*tp_itemsize*/
/* methods */
MD5_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -503,15 +503,15 @@ static PyTypeObject MD5type = {
_md5.md5
string: object(c_default="NULL") = b''
- *
- usedforsecurity: bool = True
+ *
+ usedforsecurity: bool = True
Return a new MD5 hash object; optionally initialized with a string.
[clinic start generated code]*/
static PyObject *
-_md5_md5_impl(PyObject *module, PyObject *string, int usedforsecurity)
-/*[clinic end generated code: output=587071f76254a4ac input=7a144a1905636985]*/
+_md5_md5_impl(PyObject *module, PyObject *string, int usedforsecurity)
+/*[clinic end generated code: output=587071f76254a4ac input=7a144a1905636985]*/
{
MD5object *new;
Py_buffer buf;
@@ -569,15 +569,15 @@ PyInit__md5(void)
{
PyObject *m;
- Py_SET_TYPE(&MD5type, &PyType_Type);
- if (PyType_Ready(&MD5type) < 0) {
+ Py_SET_TYPE(&MD5type, &PyType_Type);
+ if (PyType_Ready(&MD5type) < 0) {
return NULL;
- }
+ }
m = PyModule_Create(&_md5module);
- if (m == NULL) {
+ if (m == NULL) {
return NULL;
- }
+ }
Py_INCREF((PyObject *)&MD5type);
PyModule_AddObject(m, "MD5Type", (PyObject *)&MD5type);
diff --git a/contrib/tools/python3/src/Modules/mmapmodule.c b/contrib/tools/python3/src/Modules/mmapmodule.c
index 19bffbc39a..a3e22d0a51 100644
--- a/contrib/tools/python3/src/Modules/mmapmodule.c
+++ b/contrib/tools/python3/src/Modules/mmapmodule.c
@@ -20,7 +20,7 @@
#define PY_SSIZE_T_CLEAN
#include <Python.h>
-#include <stddef.h> // offsetof()
+#include <stddef.h> // offsetof()
#ifndef MS_WINDOWS
#define UNIX
@@ -97,7 +97,7 @@ typedef struct {
#else
off_t offset;
#endif
- Py_ssize_t exports;
+ Py_ssize_t exports;
#ifdef MS_WINDOWS
HANDLE map_handle;
@@ -118,26 +118,26 @@ static void
mmap_object_dealloc(mmap_object *m_obj)
{
#ifdef MS_WINDOWS
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
if (m_obj->data != NULL)
UnmapViewOfFile (m_obj->data);
if (m_obj->map_handle != NULL)
CloseHandle (m_obj->map_handle);
if (m_obj->file_handle != INVALID_HANDLE_VALUE)
CloseHandle (m_obj->file_handle);
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (m_obj->tagname)
PyMem_Free(m_obj->tagname);
#endif /* MS_WINDOWS */
#ifdef UNIX
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
if (m_obj->fd >= 0)
(void) close(m_obj->fd);
if (m_obj->data!=NULL) {
munmap(m_obj->data, m_obj->size);
}
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
#endif /* UNIX */
if (m_obj->weakreflist != NULL)
@@ -161,37 +161,37 @@ mmap_close_method(mmap_object *self, PyObject *unused)
again.
TODO - should we check for errors in the close operations???
*/
- HANDLE map_handle = self->map_handle;
- HANDLE file_handle = self->file_handle;
- char *data = self->data;
- self->map_handle = NULL;
- self->file_handle = INVALID_HANDLE_VALUE;
- self->data = NULL;
- Py_BEGIN_ALLOW_THREADS
- if (data != NULL) {
- UnmapViewOfFile(data);
+ HANDLE map_handle = self->map_handle;
+ HANDLE file_handle = self->file_handle;
+ char *data = self->data;
+ self->map_handle = NULL;
+ self->file_handle = INVALID_HANDLE_VALUE;
+ self->data = NULL;
+ Py_BEGIN_ALLOW_THREADS
+ if (data != NULL) {
+ UnmapViewOfFile(data);
}
- if (map_handle != NULL) {
- CloseHandle(map_handle);
+ if (map_handle != NULL) {
+ CloseHandle(map_handle);
}
- if (file_handle != INVALID_HANDLE_VALUE) {
- CloseHandle(file_handle);
+ if (file_handle != INVALID_HANDLE_VALUE) {
+ CloseHandle(file_handle);
}
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
#endif /* MS_WINDOWS */
#ifdef UNIX
- int fd = self->fd;
- char *data = self->data;
+ int fd = self->fd;
+ char *data = self->data;
self->fd = -1;
- self->data = NULL;
- Py_BEGIN_ALLOW_THREADS
- if (0 <= fd)
- (void) close(fd);
- if (data != NULL) {
- munmap(data, self->size);
+ self->data = NULL;
+ Py_BEGIN_ALLOW_THREADS
+ if (0 <= fd)
+ (void) close(fd);
+ if (data != NULL) {
+ munmap(data, self->size);
}
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
#endif
Py_RETURN_NONE;
@@ -582,21 +582,21 @@ mmap_flush_method(mmap_object *self, PyObject *args)
}
if (self->access == ACCESS_READ || self->access == ACCESS_COPY)
- Py_RETURN_NONE;
+ Py_RETURN_NONE;
#ifdef MS_WINDOWS
- if (!FlushViewOfFile(self->data+offset, size)) {
- PyErr_SetFromWindowsErr(GetLastError());
- return NULL;
- }
- Py_RETURN_NONE;
+ if (!FlushViewOfFile(self->data+offset, size)) {
+ PyErr_SetFromWindowsErr(GetLastError());
+ return NULL;
+ }
+ Py_RETURN_NONE;
#elif defined(UNIX)
/* XXX flags for msync? */
if (-1 == msync(self->data + offset, size, MS_SYNC)) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
- Py_RETURN_NONE;
+ Py_RETURN_NONE;
#else
PyErr_SetString(PyExc_ValueError, "flush not supported on this system");
return NULL;
@@ -692,55 +692,55 @@ mmap__exit__method(PyObject *self, PyObject *args)
{
_Py_IDENTIFIER(close);
- return _PyObject_CallMethodIdNoArgs(self, &PyId_close);
+ return _PyObject_CallMethodIdNoArgs(self, &PyId_close);
+}
+
+static PyObject *
+mmap__repr__method(PyObject *self)
+{
+ mmap_object *mobj = (mmap_object *)self;
+
+#ifdef MS_WINDOWS
+#define _Py_FORMAT_OFFSET "lld"
+ if (mobj->map_handle == NULL)
+#elif defined(UNIX)
+# ifdef HAVE_LARGEFILE_SUPPORT
+# define _Py_FORMAT_OFFSET "lld"
+# else
+# define _Py_FORMAT_OFFSET "ld"
+# endif
+ if (mobj->data == NULL)
+#endif
+ {
+ return PyUnicode_FromFormat("<%s closed=True>", Py_TYPE(self)->tp_name);
+ } else {
+ const char *access_str;
+
+ switch (mobj->access) {
+ case ACCESS_DEFAULT:
+ access_str = "ACCESS_DEFAULT";
+ break;
+ case ACCESS_READ:
+ access_str = "ACCESS_READ";
+ break;
+ case ACCESS_WRITE:
+ access_str = "ACCESS_WRITE";
+ break;
+ case ACCESS_COPY:
+ access_str = "ACCESS_COPY";
+ break;
+ default:
+ Py_UNREACHABLE();
+ }
+
+ return PyUnicode_FromFormat("<%s closed=False, access=%s, length=%zd, "
+ "pos=%zd, offset=%" _Py_FORMAT_OFFSET ">",
+ Py_TYPE(self)->tp_name, access_str,
+ mobj->size, mobj->pos, mobj->offset);
+ }
}
-static PyObject *
-mmap__repr__method(PyObject *self)
-{
- mmap_object *mobj = (mmap_object *)self;
-
#ifdef MS_WINDOWS
-#define _Py_FORMAT_OFFSET "lld"
- if (mobj->map_handle == NULL)
-#elif defined(UNIX)
-# ifdef HAVE_LARGEFILE_SUPPORT
-# define _Py_FORMAT_OFFSET "lld"
-# else
-# define _Py_FORMAT_OFFSET "ld"
-# endif
- if (mobj->data == NULL)
-#endif
- {
- return PyUnicode_FromFormat("<%s closed=True>", Py_TYPE(self)->tp_name);
- } else {
- const char *access_str;
-
- switch (mobj->access) {
- case ACCESS_DEFAULT:
- access_str = "ACCESS_DEFAULT";
- break;
- case ACCESS_READ:
- access_str = "ACCESS_READ";
- break;
- case ACCESS_WRITE:
- access_str = "ACCESS_WRITE";
- break;
- case ACCESS_COPY:
- access_str = "ACCESS_COPY";
- break;
- default:
- Py_UNREACHABLE();
- }
-
- return PyUnicode_FromFormat("<%s closed=False, access=%s, length=%zd, "
- "pos=%zd, offset=%" _Py_FORMAT_OFFSET ">",
- Py_TYPE(self)->tp_name, access_str,
- mobj->size, mobj->pos, mobj->offset);
- }
-}
-
-#ifdef MS_WINDOWS
static PyObject *
mmap__sizeof__method(mmap_object *self, void *unused)
{
@@ -753,54 +753,54 @@ mmap__sizeof__method(mmap_object *self, void *unused)
}
#endif
-#ifdef HAVE_MADVISE
-static PyObject *
-mmap_madvise_method(mmap_object *self, PyObject *args)
-{
- int option;
- Py_ssize_t start = 0, length;
-
- CHECK_VALID(NULL);
- length = self->size;
-
- if (!PyArg_ParseTuple(args, "i|nn:madvise", &option, &start, &length)) {
- return NULL;
- }
-
- if (start < 0 || start >= self->size) {
- PyErr_SetString(PyExc_ValueError, "madvise start out of bounds");
- return NULL;
- }
- if (length < 0) {
- PyErr_SetString(PyExc_ValueError, "madvise length invalid");
- return NULL;
- }
- if (PY_SSIZE_T_MAX - start < length) {
- PyErr_SetString(PyExc_OverflowError, "madvise length too large");
- return NULL;
- }
-
- if (start + length > self->size) {
- length = self->size - start;
- }
-
- if (madvise(self->data + start, length, option) != 0) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-#endif // HAVE_MADVISE
-
+#ifdef HAVE_MADVISE
+static PyObject *
+mmap_madvise_method(mmap_object *self, PyObject *args)
+{
+ int option;
+ Py_ssize_t start = 0, length;
+
+ CHECK_VALID(NULL);
+ length = self->size;
+
+ if (!PyArg_ParseTuple(args, "i|nn:madvise", &option, &start, &length)) {
+ return NULL;
+ }
+
+ if (start < 0 || start >= self->size) {
+ PyErr_SetString(PyExc_ValueError, "madvise start out of bounds");
+ return NULL;
+ }
+ if (length < 0) {
+ PyErr_SetString(PyExc_ValueError, "madvise length invalid");
+ return NULL;
+ }
+ if (PY_SSIZE_T_MAX - start < length) {
+ PyErr_SetString(PyExc_OverflowError, "madvise length too large");
+ return NULL;
+ }
+
+ if (start + length > self->size) {
+ length = self->size - start;
+ }
+
+ if (madvise(self->data + start, length, option) != 0) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+#endif // HAVE_MADVISE
+
static struct PyMethodDef mmap_object_methods[] = {
{"close", (PyCFunction) mmap_close_method, METH_NOARGS},
{"find", (PyCFunction) mmap_find_method, METH_VARARGS},
{"rfind", (PyCFunction) mmap_rfind_method, METH_VARARGS},
{"flush", (PyCFunction) mmap_flush_method, METH_VARARGS},
-#ifdef HAVE_MADVISE
- {"madvise", (PyCFunction) mmap_madvise_method, METH_VARARGS},
-#endif
+#ifdef HAVE_MADVISE
+ {"madvise", (PyCFunction) mmap_madvise_method, METH_VARARGS},
+#endif
{"move", (PyCFunction) mmap_move_method, METH_VARARGS},
{"read", (PyCFunction) mmap_read_method, METH_VARARGS},
{"read_byte", (PyCFunction) mmap_read_byte_method, METH_NOARGS},
@@ -894,8 +894,8 @@ mmap_subscript(mmap_object *self, PyObject *item)
slicelen);
else {
char *result_buf = (char *)PyMem_Malloc(slicelen);
- size_t cur;
- Py_ssize_t i;
+ size_t cur;
+ Py_ssize_t i;
PyObject *result;
if (result_buf == NULL)
@@ -1015,8 +1015,8 @@ mmap_ass_subscript(mmap_object *self, PyObject *item, PyObject *value)
memcpy(self->data + start, vbuf.buf, slicelen);
}
else {
- size_t cur;
- Py_ssize_t i;
+ size_t cur;
+ Py_ssize_t i;
for (cur = start, i = 0;
i < slicelen;
@@ -1089,23 +1089,23 @@ static PyTypeObject mmap_object_type = {
sizeof(mmap_object), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
- (destructor)mmap_object_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ (destructor)mmap_object_dealloc, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
- (reprfunc)mmap__repr__method, /* tp_repr */
+ 0, /* tp_as_async */
+ (reprfunc)mmap__repr__method, /* tp_repr */
0, /* tp_as_number */
- &mmap_as_sequence, /* tp_as_sequence */
- &mmap_as_mapping, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- PyObject_GenericGetAttr, /* tp_getattro */
- 0, /* tp_setattro */
- &mmap_as_buffer, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- mmap_doc, /* tp_doc */
+ &mmap_as_sequence, /* tp_as_sequence */
+ &mmap_as_mapping, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ PyObject_GenericGetAttr, /* tp_getattro */
+ 0, /* tp_setattro */
+ &mmap_as_buffer, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ mmap_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -1198,11 +1198,11 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
"mmap invalid access parameter.");
}
- if (PySys_Audit("mmap.__new__", "ini" _Py_PARSE_OFF_T,
- fd, map_size, access, offset) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("mmap.__new__", "ini" _Py_PARSE_OFF_T,
+ fd, map_size, access, offset) < 0) {
+ return NULL;
+ }
+
#ifdef __APPLE__
/* Issue #11277: fsync(2) is not enough on OS X - a special, OS X specific
fcntl(2) is necessary to force DISKSYNC and get around mmap(2) bug */
@@ -1257,13 +1257,13 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
#ifdef MAP_ANONYMOUS
/* BSD way to map anonymous memory */
flags |= MAP_ANONYMOUS;
-
- /* VxWorks only supports MAP_ANONYMOUS with MAP_PRIVATE flag */
-#ifdef __VXWORKS__
- flags &= ~MAP_SHARED;
- flags |= MAP_PRIVATE;
-#endif
-
+
+ /* VxWorks only supports MAP_ANONYMOUS with MAP_PRIVATE flag */
+#ifdef __VXWORKS__
+ flags &= ~MAP_SHARED;
+ flags |= MAP_PRIVATE;
+#endif
+
#else
/* SVR4 method to map anonymous memory is to open /dev/zero */
fd = devzero = _Py_open("/dev/zero", O_RDWR);
@@ -1333,11 +1333,11 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
return NULL;
}
- if (PySys_Audit("mmap.__new__", "iniL",
- fileno, map_size, access, offset) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("mmap.__new__", "iniL",
+ fileno, map_size, access, offset) < 0) {
+ return NULL;
+ }
+
switch((access_mode)access) {
case ACCESS_READ:
flProtect = PAGE_READONLY;
@@ -1513,8 +1513,8 @@ static void
setint(PyObject *d, const char *name, long value)
{
PyObject *o = PyLong_FromLong(value);
- if (o) {
- PyDict_SetItemString(d, name, o);
+ if (o) {
+ PyDict_SetItemString(d, name, o);
Py_DECREF(o);
}
}
@@ -1583,80 +1583,80 @@ PyInit_mmap(void)
setint(dict, "ACCESS_READ", ACCESS_READ);
setint(dict, "ACCESS_WRITE", ACCESS_WRITE);
setint(dict, "ACCESS_COPY", ACCESS_COPY);
-
-#ifdef HAVE_MADVISE
- // Conventional advice values
-#ifdef MADV_NORMAL
- setint(dict, "MADV_NORMAL", MADV_NORMAL);
-#endif
-#ifdef MADV_RANDOM
- setint(dict, "MADV_RANDOM", MADV_RANDOM);
-#endif
-#ifdef MADV_SEQUENTIAL
- setint(dict, "MADV_SEQUENTIAL", MADV_SEQUENTIAL);
-#endif
-#ifdef MADV_WILLNEED
- setint(dict, "MADV_WILLNEED", MADV_WILLNEED);
-#endif
-#ifdef MADV_DONTNEED
- setint(dict, "MADV_DONTNEED", MADV_DONTNEED);
-#endif
-
- // Linux-specific advice values
-#ifdef MADV_REMOVE
- setint(dict, "MADV_REMOVE", MADV_REMOVE);
-#endif
-#ifdef MADV_DONTFORK
- setint(dict, "MADV_DONTFORK", MADV_DONTFORK);
-#endif
-#ifdef MADV_DOFORK
- setint(dict, "MADV_DOFORK", MADV_DOFORK);
-#endif
-#ifdef MADV_HWPOISON
- setint(dict, "MADV_HWPOISON", MADV_HWPOISON);
-#endif
-#ifdef MADV_MERGEABLE
- setint(dict, "MADV_MERGEABLE", MADV_MERGEABLE);
-#endif
-#ifdef MADV_UNMERGEABLE
- setint(dict, "MADV_UNMERGEABLE", MADV_UNMERGEABLE);
-#endif
-#ifdef MADV_SOFT_OFFLINE
- setint(dict, "MADV_SOFT_OFFLINE", MADV_SOFT_OFFLINE);
-#endif
-#ifdef MADV_HUGEPAGE
- setint(dict, "MADV_HUGEPAGE", MADV_HUGEPAGE);
-#endif
-#ifdef MADV_NOHUGEPAGE
- setint(dict, "MADV_NOHUGEPAGE", MADV_NOHUGEPAGE);
-#endif
-#ifdef MADV_DONTDUMP
- setint(dict, "MADV_DONTDUMP", MADV_DONTDUMP);
-#endif
-#ifdef MADV_DODUMP
- setint(dict, "MADV_DODUMP", MADV_DODUMP);
-#endif
-#ifdef MADV_FREE // (Also present on FreeBSD and macOS.)
- setint(dict, "MADV_FREE", MADV_FREE);
-#endif
-
- // FreeBSD-specific
-#ifdef MADV_NOSYNC
- setint(dict, "MADV_NOSYNC", MADV_NOSYNC);
-#endif
-#ifdef MADV_AUTOSYNC
- setint(dict, "MADV_AUTOSYNC", MADV_AUTOSYNC);
-#endif
-#ifdef MADV_NOCORE
- setint(dict, "MADV_NOCORE", MADV_NOCORE);
-#endif
-#ifdef MADV_CORE
- setint(dict, "MADV_CORE", MADV_CORE);
-#endif
-#ifdef MADV_PROTECT
- setint(dict, "MADV_PROTECT", MADV_PROTECT);
-#endif
-#endif // HAVE_MADVISE
-
+
+#ifdef HAVE_MADVISE
+ // Conventional advice values
+#ifdef MADV_NORMAL
+ setint(dict, "MADV_NORMAL", MADV_NORMAL);
+#endif
+#ifdef MADV_RANDOM
+ setint(dict, "MADV_RANDOM", MADV_RANDOM);
+#endif
+#ifdef MADV_SEQUENTIAL
+ setint(dict, "MADV_SEQUENTIAL", MADV_SEQUENTIAL);
+#endif
+#ifdef MADV_WILLNEED
+ setint(dict, "MADV_WILLNEED", MADV_WILLNEED);
+#endif
+#ifdef MADV_DONTNEED
+ setint(dict, "MADV_DONTNEED", MADV_DONTNEED);
+#endif
+
+ // Linux-specific advice values
+#ifdef MADV_REMOVE
+ setint(dict, "MADV_REMOVE", MADV_REMOVE);
+#endif
+#ifdef MADV_DONTFORK
+ setint(dict, "MADV_DONTFORK", MADV_DONTFORK);
+#endif
+#ifdef MADV_DOFORK
+ setint(dict, "MADV_DOFORK", MADV_DOFORK);
+#endif
+#ifdef MADV_HWPOISON
+ setint(dict, "MADV_HWPOISON", MADV_HWPOISON);
+#endif
+#ifdef MADV_MERGEABLE
+ setint(dict, "MADV_MERGEABLE", MADV_MERGEABLE);
+#endif
+#ifdef MADV_UNMERGEABLE
+ setint(dict, "MADV_UNMERGEABLE", MADV_UNMERGEABLE);
+#endif
+#ifdef MADV_SOFT_OFFLINE
+ setint(dict, "MADV_SOFT_OFFLINE", MADV_SOFT_OFFLINE);
+#endif
+#ifdef MADV_HUGEPAGE
+ setint(dict, "MADV_HUGEPAGE", MADV_HUGEPAGE);
+#endif
+#ifdef MADV_NOHUGEPAGE
+ setint(dict, "MADV_NOHUGEPAGE", MADV_NOHUGEPAGE);
+#endif
+#ifdef MADV_DONTDUMP
+ setint(dict, "MADV_DONTDUMP", MADV_DONTDUMP);
+#endif
+#ifdef MADV_DODUMP
+ setint(dict, "MADV_DODUMP", MADV_DODUMP);
+#endif
+#ifdef MADV_FREE // (Also present on FreeBSD and macOS.)
+ setint(dict, "MADV_FREE", MADV_FREE);
+#endif
+
+ // FreeBSD-specific
+#ifdef MADV_NOSYNC
+ setint(dict, "MADV_NOSYNC", MADV_NOSYNC);
+#endif
+#ifdef MADV_AUTOSYNC
+ setint(dict, "MADV_AUTOSYNC", MADV_AUTOSYNC);
+#endif
+#ifdef MADV_NOCORE
+ setint(dict, "MADV_NOCORE", MADV_NOCORE);
+#endif
+#ifdef MADV_CORE
+ setint(dict, "MADV_CORE", MADV_CORE);
+#endif
+#ifdef MADV_PROTECT
+ setint(dict, "MADV_PROTECT", MADV_PROTECT);
+#endif
+#endif // HAVE_MADVISE
+
return module;
}
diff --git a/contrib/tools/python3/src/Modules/overlapped.c b/contrib/tools/python3/src/Modules/overlapped.c
index 77f59b2328..cd7869fa8a 100644
--- a/contrib/tools/python3/src/Modules/overlapped.c
+++ b/contrib/tools/python3/src/Modules/overlapped.c
@@ -8,7 +8,7 @@
Check itemsize */
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#define WINDOWS_LEAN_AND_MEAN
#include <winsock2.h>
@@ -39,8 +39,8 @@
enum {TYPE_NONE, TYPE_NOT_STARTED, TYPE_READ, TYPE_READINTO, TYPE_WRITE,
TYPE_ACCEPT, TYPE_CONNECT, TYPE_DISCONNECT, TYPE_CONNECT_NAMED_PIPE,
- TYPE_WAIT_NAMED_PIPE_AND_CONNECT, TYPE_TRANSMIT_FILE, TYPE_READ_FROM,
- TYPE_WRITE_TO};
+ TYPE_WAIT_NAMED_PIPE_AND_CONNECT, TYPE_TRANSMIT_FILE, TYPE_READ_FROM,
+ TYPE_WRITE_TO};
typedef struct {
PyObject_HEAD
@@ -54,19 +54,19 @@ typedef struct {
union {
/* Buffer allocated by us: TYPE_READ and TYPE_ACCEPT */
PyObject *allocated_buffer;
- /* Buffer passed by the user: TYPE_WRITE, TYPE_WRITE_TO, and TYPE_READINTO */
+ /* Buffer passed by the user: TYPE_WRITE, TYPE_WRITE_TO, and TYPE_READINTO */
Py_buffer user_buffer;
-
- /* Data used for reading from a connectionless socket:
- TYPE_READ_FROM */
- struct {
- // A (buffer, (host, port)) tuple
- PyObject *result;
- // The actual read buffer
- PyObject *allocated_buffer;
- struct sockaddr_in6 address;
- int address_length;
- } read_from;
+
+ /* Data used for reading from a connectionless socket:
+ TYPE_READ_FROM */
+ struct {
+ // A (buffer, (host, port)) tuple
+ PyObject *result;
+ // The actual read buffer
+ PyObject *allocated_buffer;
+ struct sockaddr_in6 address;
+ int address_length;
+ } read_from;
};
} OverlappedObject;
@@ -139,10 +139,10 @@ initialize_function_pointers(void)
closesocket(s);
/* On WinXP we will have Py_CancelIoEx == NULL */
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
hKernel32 = GetModuleHandle("KERNEL32");
*(FARPROC *)&Py_CancelIoEx = GetProcAddress(hKernel32, "CancelIoEx");
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
return 0;
}
@@ -254,7 +254,7 @@ struct PostCallbackData {
};
static VOID CALLBACK
-PostToQueueCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired)
+PostToQueueCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired)
{
struct PostCallbackData *p = (struct PostCallbackData*) lpParameter;
@@ -295,7 +295,7 @@ overlapped_RegisterWaitWithQueue(PyObject *self, PyObject *args)
*pdata = data;
if (!RegisterWaitForSingleObject(
- &NewWaitObject, Object, PostToQueueCallback, pdata, Milliseconds,
+ &NewWaitObject, Object, PostToQueueCallback, pdata, Milliseconds,
WT_EXECUTEINWAITTHREAD | WT_EXECUTEONLYONCE))
{
PyMem_RawFree(pdata);
@@ -499,8 +499,8 @@ overlapped_FormatMessage(PyObject *ignore, PyObject *args)
return NULL;
n = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
code,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
@@ -582,32 +582,32 @@ static int
Overlapped_clear(OverlappedObject *self)
{
switch (self->type) {
- case TYPE_READ:
- case TYPE_ACCEPT: {
- Py_CLEAR(self->allocated_buffer);
- break;
+ case TYPE_READ:
+ case TYPE_ACCEPT: {
+ Py_CLEAR(self->allocated_buffer);
+ break;
+ }
+ case TYPE_READ_FROM: {
+ // An initial call to WSARecvFrom will only allocate the buffer.
+ // The result tuple of (message, address) is only
+ // allocated _after_ a message has been received.
+ if(self->read_from.result) {
+ // We've received a message, free the result tuple.
+ Py_CLEAR(self->read_from.result);
+ }
+ if(self->read_from.allocated_buffer) {
+ Py_CLEAR(self->read_from.allocated_buffer);
+ }
+ break;
+ }
+ case TYPE_WRITE:
+ case TYPE_WRITE_TO:
+ case TYPE_READINTO: {
+ if (self->user_buffer.obj) {
+ PyBuffer_Release(&self->user_buffer);
+ }
+ break;
}
- case TYPE_READ_FROM: {
- // An initial call to WSARecvFrom will only allocate the buffer.
- // The result tuple of (message, address) is only
- // allocated _after_ a message has been received.
- if(self->read_from.result) {
- // We've received a message, free the result tuple.
- Py_CLEAR(self->read_from.result);
- }
- if(self->read_from.allocated_buffer) {
- Py_CLEAR(self->read_from.allocated_buffer);
- }
- break;
- }
- case TYPE_WRITE:
- case TYPE_WRITE_TO:
- case TYPE_READINTO: {
- if (self->user_buffer.obj) {
- PyBuffer_Release(&self->user_buffer);
- }
- break;
- }
}
self->type = TYPE_NOT_STARTED;
return 0;
@@ -655,77 +655,77 @@ Overlapped_dealloc(OverlappedObject *self)
SetLastError(olderr);
}
-
-/* Convert IPv4 sockaddr to a Python str. */
-
-static PyObject *
-make_ipv4_addr(const struct sockaddr_in *addr)
-{
- char buf[INET_ADDRSTRLEN];
- if (inet_ntop(AF_INET, &addr->sin_addr, buf, sizeof(buf)) == NULL) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
- return PyUnicode_FromString(buf);
-}
-
-/* Convert IPv6 sockaddr to a Python str. */
-
-static PyObject *
-make_ipv6_addr(const struct sockaddr_in6 *addr)
-{
- char buf[INET6_ADDRSTRLEN];
- if (inet_ntop(AF_INET6, &addr->sin6_addr, buf, sizeof(buf)) == NULL) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
- return PyUnicode_FromString(buf);
-}
-
-static PyObject*
-unparse_address(LPSOCKADDR Address, DWORD Length)
-{
- /* The function is adopted from mocketmodule.c makesockaddr()*/
-
- switch(Address->sa_family) {
- case AF_INET: {
- const struct sockaddr_in *a = (const struct sockaddr_in *)Address;
- PyObject *addrobj = make_ipv4_addr(a);
- PyObject *ret = NULL;
- if (addrobj) {
- ret = Py_BuildValue("Oi", addrobj, ntohs(a->sin_port));
- Py_DECREF(addrobj);
- }
- return ret;
- }
- case AF_INET6: {
- const struct sockaddr_in6 *a = (const struct sockaddr_in6 *)Address;
- PyObject *addrobj = make_ipv6_addr(a);
- PyObject *ret = NULL;
- if (addrobj) {
- ret = Py_BuildValue("OiII",
- addrobj,
- ntohs(a->sin6_port),
- ntohl(a->sin6_flowinfo),
- a->sin6_scope_id);
- Py_DECREF(addrobj);
- }
- return ret;
- }
- default: {
- PyErr_SetString(PyExc_ValueError, "recvfrom returned unsupported address family");
- return NULL;
- }
- }
-}
-
+
+/* Convert IPv4 sockaddr to a Python str. */
+
+static PyObject *
+make_ipv4_addr(const struct sockaddr_in *addr)
+{
+ char buf[INET_ADDRSTRLEN];
+ if (inet_ntop(AF_INET, &addr->sin_addr, buf, sizeof(buf)) == NULL) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return NULL;
+ }
+ return PyUnicode_FromString(buf);
+}
+
+/* Convert IPv6 sockaddr to a Python str. */
+
+static PyObject *
+make_ipv6_addr(const struct sockaddr_in6 *addr)
+{
+ char buf[INET6_ADDRSTRLEN];
+ if (inet_ntop(AF_INET6, &addr->sin6_addr, buf, sizeof(buf)) == NULL) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return NULL;
+ }
+ return PyUnicode_FromString(buf);
+}
+
+static PyObject*
+unparse_address(LPSOCKADDR Address, DWORD Length)
+{
+ /* The function is adopted from mocketmodule.c makesockaddr()*/
+
+ switch(Address->sa_family) {
+ case AF_INET: {
+ const struct sockaddr_in *a = (const struct sockaddr_in *)Address;
+ PyObject *addrobj = make_ipv4_addr(a);
+ PyObject *ret = NULL;
+ if (addrobj) {
+ ret = Py_BuildValue("Oi", addrobj, ntohs(a->sin_port));
+ Py_DECREF(addrobj);
+ }
+ return ret;
+ }
+ case AF_INET6: {
+ const struct sockaddr_in6 *a = (const struct sockaddr_in6 *)Address;
+ PyObject *addrobj = make_ipv6_addr(a);
+ PyObject *ret = NULL;
+ if (addrobj) {
+ ret = Py_BuildValue("OiII",
+ addrobj,
+ ntohs(a->sin6_port),
+ ntohl(a->sin6_flowinfo),
+ a->sin6_scope_id);
+ Py_DECREF(addrobj);
+ }
+ return ret;
+ }
+ default: {
+ PyErr_SetString(PyExc_ValueError, "recvfrom returned unsupported address family");
+ return NULL;
+ }
+ }
+}
+
PyDoc_STRVAR(
Overlapped_cancel_doc,
"cancel() -> None\n\n"
"Cancel overlapped operation");
static PyObject *
-Overlapped_cancel(OverlappedObject *self, PyObject *Py_UNUSED(ignored))
+Overlapped_cancel(OverlappedObject *self, PyObject *Py_UNUSED(ignored))
{
BOOL ret = TRUE;
@@ -762,7 +762,7 @@ Overlapped_getresult(OverlappedObject *self, PyObject *args)
DWORD transferred = 0;
BOOL ret;
DWORD err;
- PyObject *addr;
+ PyObject *addr;
if (!PyArg_ParseTuple(args, "|" F_BOOL, &wait))
return NULL;
@@ -788,15 +788,15 @@ Overlapped_getresult(OverlappedObject *self, PyObject *args)
case ERROR_MORE_DATA:
break;
case ERROR_BROKEN_PIPE:
- if (self->type == TYPE_READ || self->type == TYPE_READINTO) {
+ if (self->type == TYPE_READ || self->type == TYPE_READINTO) {
break;
- }
- else if (self->type == TYPE_READ_FROM &&
- (self->read_from.result != NULL ||
- self->read_from.allocated_buffer != NULL))
- {
- break;
- }
+ }
+ else if (self->type == TYPE_READ_FROM &&
+ (self->read_from.result != NULL ||
+ self->read_from.allocated_buffer != NULL))
+ {
+ break;
+ }
/* fall through */
default:
return SetFromWindowsErr(err);
@@ -808,43 +808,43 @@ Overlapped_getresult(OverlappedObject *self, PyObject *args)
if (transferred != PyBytes_GET_SIZE(self->allocated_buffer) &&
_PyBytes_Resize(&self->allocated_buffer, transferred))
return NULL;
-
+
Py_INCREF(self->allocated_buffer);
return self->allocated_buffer;
- case TYPE_READ_FROM:
- assert(PyBytes_CheckExact(self->read_from.allocated_buffer));
-
- if (transferred != PyBytes_GET_SIZE(
- self->read_from.allocated_buffer) &&
- _PyBytes_Resize(&self->read_from.allocated_buffer, transferred))
- {
- return NULL;
- }
-
- // unparse the address
- addr = unparse_address((SOCKADDR*)&self->read_from.address,
- self->read_from.address_length);
-
- if (addr == NULL) {
- return NULL;
- }
-
- // The result is a two item tuple: (message, address)
- self->read_from.result = PyTuple_New(2);
- if (self->read_from.result == NULL) {
- Py_CLEAR(addr);
- return NULL;
- }
-
- // first item: message
- Py_INCREF(self->read_from.allocated_buffer);
- PyTuple_SET_ITEM(self->read_from.result, 0,
- self->read_from.allocated_buffer);
- // second item: address
- PyTuple_SET_ITEM(self->read_from.result, 1, addr);
-
- Py_INCREF(self->read_from.result);
- return self->read_from.result;
+ case TYPE_READ_FROM:
+ assert(PyBytes_CheckExact(self->read_from.allocated_buffer));
+
+ if (transferred != PyBytes_GET_SIZE(
+ self->read_from.allocated_buffer) &&
+ _PyBytes_Resize(&self->read_from.allocated_buffer, transferred))
+ {
+ return NULL;
+ }
+
+ // unparse the address
+ addr = unparse_address((SOCKADDR*)&self->read_from.address,
+ self->read_from.address_length);
+
+ if (addr == NULL) {
+ return NULL;
+ }
+
+ // The result is a two item tuple: (message, address)
+ self->read_from.result = PyTuple_New(2);
+ if (self->read_from.result == NULL) {
+ Py_CLEAR(addr);
+ return NULL;
+ }
+
+ // first item: message
+ Py_INCREF(self->read_from.allocated_buffer);
+ PyTuple_SET_ITEM(self->read_from.result, 0,
+ self->read_from.allocated_buffer);
+ // second item: address
+ PyTuple_SET_ITEM(self->read_from.result, 1, addr);
+
+ Py_INCREF(self->read_from.result);
+ return self->read_from.result;
default:
return PyLong_FromUnsignedLong((unsigned long) transferred);
}
@@ -1448,7 +1448,7 @@ PyDoc_STRVAR(
"Connect to the pipe for asynchronous I/O (overlapped).");
static PyObject *
-overlapped_ConnectPipe(PyObject *self, PyObject *args)
+overlapped_ConnectPipe(PyObject *self, PyObject *args)
{
PyObject *AddressObj;
wchar_t *Address;
@@ -1496,214 +1496,214 @@ Overlapped_traverse(OverlappedObject *self, visitproc visit, void *arg)
Py_VISIT(self->allocated_buffer);
break;
case TYPE_WRITE:
- case TYPE_WRITE_TO:
+ case TYPE_WRITE_TO:
case TYPE_READINTO:
if (self->user_buffer.obj) {
Py_VISIT(&self->user_buffer.obj);
}
break;
- case TYPE_READ_FROM:
- if(self->read_from.result) {
- Py_VISIT(self->read_from.result);
- }
- if(self->read_from.allocated_buffer) {
- Py_VISIT(self->read_from.allocated_buffer);
- }
+ case TYPE_READ_FROM:
+ if(self->read_from.result) {
+ Py_VISIT(self->read_from.result);
+ }
+ if(self->read_from.allocated_buffer) {
+ Py_VISIT(self->read_from.allocated_buffer);
+ }
}
return 0;
}
-// UDP functions
-
-PyDoc_STRVAR(
- WSAConnect_doc,
- "WSAConnect(client_handle, address_as_bytes) -> Overlapped[None]\n\n"
- "Bind a remote address to a connectionless (UDP) socket");
-
-/*
- * Note: WSAConnect does not support Overlapped I/O so this function should
- * _only_ be used for connectionless sockets (UDP).
- */
-static PyObject *
-overlapped_WSAConnect(PyObject *self, PyObject *args)
-{
- SOCKET ConnectSocket;
- PyObject *AddressObj;
- char AddressBuf[sizeof(struct sockaddr_in6)];
- SOCKADDR *Address = (SOCKADDR*)AddressBuf;
- int Length;
- int err;
-
- if (!PyArg_ParseTuple(args, F_HANDLE "O", &ConnectSocket, &AddressObj)) {
- return NULL;
- }
-
- Length = sizeof(AddressBuf);
- Length = parse_address(AddressObj, Address, Length);
- if (Length < 0) {
- return NULL;
- }
-
- Py_BEGIN_ALLOW_THREADS
- // WSAConnect does not support overlapped I/O so this call will
- // successfully complete immediately.
- err = WSAConnect(ConnectSocket, Address, Length,
- NULL, NULL, NULL, NULL);
- Py_END_ALLOW_THREADS
-
- if (err == 0) {
- Py_RETURN_NONE;
- }
- else {
- return SetFromWindowsErr(WSAGetLastError());
- }
-}
-
-PyDoc_STRVAR(
- Overlapped_WSASendTo_doc,
- "WSASendTo(handle, buf, flags, address_as_bytes) -> "
- "Overlapped[bytes_transferred]\n\n"
- "Start overlapped sendto over a connectionless (UDP) socket");
-
-static PyObject *
-Overlapped_WSASendTo(OverlappedObject *self, PyObject *args)
-{
- HANDLE handle;
- PyObject *bufobj;
- DWORD flags;
- PyObject *AddressObj;
- char AddressBuf[sizeof(struct sockaddr_in6)];
- SOCKADDR *Address = (SOCKADDR*)AddressBuf;
- int AddressLength;
- DWORD written;
- WSABUF wsabuf;
- int ret;
- DWORD err;
-
- if (!PyArg_ParseTuple(args, F_HANDLE "O" F_DWORD "O",
- &handle, &bufobj, &flags, &AddressObj))
- {
- return NULL;
- }
-
- // Parse the "to" address
- AddressLength = sizeof(AddressBuf);
- AddressLength = parse_address(AddressObj, Address, AddressLength);
- if (AddressLength < 0) {
- return NULL;
- }
-
- if (self->type != TYPE_NONE) {
- PyErr_SetString(PyExc_ValueError, "operation already attempted");
- return NULL;
- }
-
- if (!PyArg_Parse(bufobj, "y*", &self->user_buffer)) {
- return NULL;
- }
-
-#if SIZEOF_SIZE_T > SIZEOF_LONG
- if (self->user_buffer.len > (Py_ssize_t)ULONG_MAX) {
- PyBuffer_Release(&self->user_buffer);
- PyErr_SetString(PyExc_ValueError, "buffer too large");
- return NULL;
- }
-#endif
-
- self->type = TYPE_WRITE_TO;
- self->handle = handle;
- wsabuf.len = (DWORD)self->user_buffer.len;
- wsabuf.buf = self->user_buffer.buf;
-
- Py_BEGIN_ALLOW_THREADS
- ret = WSASendTo((SOCKET)handle, &wsabuf, 1, &written, flags,
- Address, AddressLength, &self->overlapped, NULL);
- Py_END_ALLOW_THREADS
-
- self->error = err = (ret == SOCKET_ERROR ? WSAGetLastError() :
- ERROR_SUCCESS);
-
- switch(err) {
- case ERROR_SUCCESS:
- case ERROR_IO_PENDING:
- Py_RETURN_NONE;
- default:
- self->type = TYPE_NOT_STARTED;
- return SetFromWindowsErr(err);
- }
-}
-
-
-
-PyDoc_STRVAR(
- Overlapped_WSARecvFrom_doc,
- "RecvFile(handle, size, flags) -> Overlapped[(message, (host, port))]\n\n"
- "Start overlapped receive");
-
-static PyObject *
-Overlapped_WSARecvFrom(OverlappedObject *self, PyObject *args)
-{
- HANDLE handle;
- DWORD size;
- DWORD flags = 0;
- DWORD nread;
- PyObject *buf;
- WSABUF wsabuf;
- int ret;
- DWORD err;
-
- if (!PyArg_ParseTuple(args, F_HANDLE F_DWORD "|" F_DWORD,
- &handle, &size, &flags))
- {
- return NULL;
- }
-
- if (self->type != TYPE_NONE) {
- PyErr_SetString(PyExc_ValueError, "operation already attempted");
- return NULL;
- }
-
-#if SIZEOF_SIZE_T <= SIZEOF_LONG
- size = Py_MIN(size, (DWORD)PY_SSIZE_T_MAX);
-#endif
- buf = PyBytes_FromStringAndSize(NULL, Py_MAX(size, 1));
- if (buf == NULL) {
- return NULL;
- }
-
- wsabuf.len = size;
- wsabuf.buf = PyBytes_AS_STRING(buf);
-
- self->type = TYPE_READ_FROM;
- self->handle = handle;
- self->read_from.allocated_buffer = buf;
- memset(&self->read_from.address, 0, sizeof(self->read_from.address));
- self->read_from.address_length = sizeof(self->read_from.address);
-
- Py_BEGIN_ALLOW_THREADS
- ret = WSARecvFrom((SOCKET)handle, &wsabuf, 1, &nread, &flags,
- (SOCKADDR*)&self->read_from.address,
- &self->read_from.address_length,
- &self->overlapped, NULL);
- Py_END_ALLOW_THREADS
-
- self->error = err = (ret < 0 ? WSAGetLastError() : ERROR_SUCCESS);
-
- switch(err) {
- case ERROR_BROKEN_PIPE:
- mark_as_completed(&self->overlapped);
- return SetFromWindowsErr(err);
- case ERROR_SUCCESS:
- case ERROR_MORE_DATA:
- case ERROR_IO_PENDING:
- Py_RETURN_NONE;
- default:
- self->type = TYPE_NOT_STARTED;
- return SetFromWindowsErr(err);
- }
-}
-
-
+// UDP functions
+
+PyDoc_STRVAR(
+ WSAConnect_doc,
+ "WSAConnect(client_handle, address_as_bytes) -> Overlapped[None]\n\n"
+ "Bind a remote address to a connectionless (UDP) socket");
+
+/*
+ * Note: WSAConnect does not support Overlapped I/O so this function should
+ * _only_ be used for connectionless sockets (UDP).
+ */
+static PyObject *
+overlapped_WSAConnect(PyObject *self, PyObject *args)
+{
+ SOCKET ConnectSocket;
+ PyObject *AddressObj;
+ char AddressBuf[sizeof(struct sockaddr_in6)];
+ SOCKADDR *Address = (SOCKADDR*)AddressBuf;
+ int Length;
+ int err;
+
+ if (!PyArg_ParseTuple(args, F_HANDLE "O", &ConnectSocket, &AddressObj)) {
+ return NULL;
+ }
+
+ Length = sizeof(AddressBuf);
+ Length = parse_address(AddressObj, Address, Length);
+ if (Length < 0) {
+ return NULL;
+ }
+
+ Py_BEGIN_ALLOW_THREADS
+ // WSAConnect does not support overlapped I/O so this call will
+ // successfully complete immediately.
+ err = WSAConnect(ConnectSocket, Address, Length,
+ NULL, NULL, NULL, NULL);
+ Py_END_ALLOW_THREADS
+
+ if (err == 0) {
+ Py_RETURN_NONE;
+ }
+ else {
+ return SetFromWindowsErr(WSAGetLastError());
+ }
+}
+
+PyDoc_STRVAR(
+ Overlapped_WSASendTo_doc,
+ "WSASendTo(handle, buf, flags, address_as_bytes) -> "
+ "Overlapped[bytes_transferred]\n\n"
+ "Start overlapped sendto over a connectionless (UDP) socket");
+
+static PyObject *
+Overlapped_WSASendTo(OverlappedObject *self, PyObject *args)
+{
+ HANDLE handle;
+ PyObject *bufobj;
+ DWORD flags;
+ PyObject *AddressObj;
+ char AddressBuf[sizeof(struct sockaddr_in6)];
+ SOCKADDR *Address = (SOCKADDR*)AddressBuf;
+ int AddressLength;
+ DWORD written;
+ WSABUF wsabuf;
+ int ret;
+ DWORD err;
+
+ if (!PyArg_ParseTuple(args, F_HANDLE "O" F_DWORD "O",
+ &handle, &bufobj, &flags, &AddressObj))
+ {
+ return NULL;
+ }
+
+ // Parse the "to" address
+ AddressLength = sizeof(AddressBuf);
+ AddressLength = parse_address(AddressObj, Address, AddressLength);
+ if (AddressLength < 0) {
+ return NULL;
+ }
+
+ if (self->type != TYPE_NONE) {
+ PyErr_SetString(PyExc_ValueError, "operation already attempted");
+ return NULL;
+ }
+
+ if (!PyArg_Parse(bufobj, "y*", &self->user_buffer)) {
+ return NULL;
+ }
+
+#if SIZEOF_SIZE_T > SIZEOF_LONG
+ if (self->user_buffer.len > (Py_ssize_t)ULONG_MAX) {
+ PyBuffer_Release(&self->user_buffer);
+ PyErr_SetString(PyExc_ValueError, "buffer too large");
+ return NULL;
+ }
+#endif
+
+ self->type = TYPE_WRITE_TO;
+ self->handle = handle;
+ wsabuf.len = (DWORD)self->user_buffer.len;
+ wsabuf.buf = self->user_buffer.buf;
+
+ Py_BEGIN_ALLOW_THREADS
+ ret = WSASendTo((SOCKET)handle, &wsabuf, 1, &written, flags,
+ Address, AddressLength, &self->overlapped, NULL);
+ Py_END_ALLOW_THREADS
+
+ self->error = err = (ret == SOCKET_ERROR ? WSAGetLastError() :
+ ERROR_SUCCESS);
+
+ switch(err) {
+ case ERROR_SUCCESS:
+ case ERROR_IO_PENDING:
+ Py_RETURN_NONE;
+ default:
+ self->type = TYPE_NOT_STARTED;
+ return SetFromWindowsErr(err);
+ }
+}
+
+
+
+PyDoc_STRVAR(
+ Overlapped_WSARecvFrom_doc,
+ "RecvFile(handle, size, flags) -> Overlapped[(message, (host, port))]\n\n"
+ "Start overlapped receive");
+
+static PyObject *
+Overlapped_WSARecvFrom(OverlappedObject *self, PyObject *args)
+{
+ HANDLE handle;
+ DWORD size;
+ DWORD flags = 0;
+ DWORD nread;
+ PyObject *buf;
+ WSABUF wsabuf;
+ int ret;
+ DWORD err;
+
+ if (!PyArg_ParseTuple(args, F_HANDLE F_DWORD "|" F_DWORD,
+ &handle, &size, &flags))
+ {
+ return NULL;
+ }
+
+ if (self->type != TYPE_NONE) {
+ PyErr_SetString(PyExc_ValueError, "operation already attempted");
+ return NULL;
+ }
+
+#if SIZEOF_SIZE_T <= SIZEOF_LONG
+ size = Py_MIN(size, (DWORD)PY_SSIZE_T_MAX);
+#endif
+ buf = PyBytes_FromStringAndSize(NULL, Py_MAX(size, 1));
+ if (buf == NULL) {
+ return NULL;
+ }
+
+ wsabuf.len = size;
+ wsabuf.buf = PyBytes_AS_STRING(buf);
+
+ self->type = TYPE_READ_FROM;
+ self->handle = handle;
+ self->read_from.allocated_buffer = buf;
+ memset(&self->read_from.address, 0, sizeof(self->read_from.address));
+ self->read_from.address_length = sizeof(self->read_from.address);
+
+ Py_BEGIN_ALLOW_THREADS
+ ret = WSARecvFrom((SOCKET)handle, &wsabuf, 1, &nread, &flags,
+ (SOCKADDR*)&self->read_from.address,
+ &self->read_from.address_length,
+ &self->overlapped, NULL);
+ Py_END_ALLOW_THREADS
+
+ self->error = err = (ret < 0 ? WSAGetLastError() : ERROR_SUCCESS);
+
+ switch(err) {
+ case ERROR_BROKEN_PIPE:
+ mark_as_completed(&self->overlapped);
+ return SetFromWindowsErr(err);
+ case ERROR_SUCCESS:
+ case ERROR_MORE_DATA:
+ case ERROR_IO_PENDING:
+ Py_RETURN_NONE;
+ default:
+ self->type = TYPE_NOT_STARTED;
+ return SetFromWindowsErr(err);
+ }
+}
+
+
static PyMethodDef Overlapped_methods[] = {
{"getresult", (PyCFunction) Overlapped_getresult,
METH_VARARGS, Overlapped_getresult_doc},
@@ -1731,10 +1731,10 @@ static PyMethodDef Overlapped_methods[] = {
METH_VARARGS, Overlapped_TransmitFile_doc},
{"ConnectNamedPipe", (PyCFunction) Overlapped_ConnectNamedPipe,
METH_VARARGS, Overlapped_ConnectNamedPipe_doc},
- {"WSARecvFrom", (PyCFunction) Overlapped_WSARecvFrom,
- METH_VARARGS, Overlapped_WSARecvFrom_doc },
- {"WSASendTo", (PyCFunction) Overlapped_WSASendTo,
- METH_VARARGS, Overlapped_WSASendTo_doc },
+ {"WSARecvFrom", (PyCFunction) Overlapped_WSARecvFrom,
+ METH_VARARGS, Overlapped_WSARecvFrom_doc },
+ {"WSASendTo", (PyCFunction) Overlapped_WSASendTo,
+ METH_VARARGS, Overlapped_WSASendTo_doc },
{NULL}
};
@@ -1762,10 +1762,10 @@ PyTypeObject OverlappedType = {
/* tp_basicsize */ sizeof(OverlappedObject),
/* tp_itemsize */ 0,
/* tp_dealloc */ (destructor) Overlapped_dealloc,
- /* tp_vectorcall_offset */ 0,
+ /* tp_vectorcall_offset */ 0,
/* tp_getattr */ 0,
/* tp_setattr */ 0,
- /* tp_as_async */ 0,
+ /* tp_as_async */ 0,
/* tp_repr */ 0,
/* tp_as_number */ 0,
/* tp_as_sequence */ 0,
@@ -1820,10 +1820,10 @@ static PyMethodDef overlapped_functions[] = {
METH_VARARGS, SetEvent_doc},
{"ResetEvent", overlapped_ResetEvent,
METH_VARARGS, ResetEvent_doc},
- {"ConnectPipe", overlapped_ConnectPipe,
+ {"ConnectPipe", overlapped_ConnectPipe,
METH_VARARGS, ConnectPipe_doc},
- {"WSAConnect", overlapped_WSAConnect,
- METH_VARARGS, WSAConnect_doc},
+ {"WSAConnect", overlapped_WSAConnect,
+ METH_VARARGS, WSAConnect_doc},
{NULL}
};
@@ -1857,9 +1857,9 @@ PyInit__overlapped(void)
return NULL;
m = PyModule_Create(&overlapped_module);
- if (PyModule_AddType(m, &OverlappedType) < 0) {
+ if (PyModule_AddType(m, &OverlappedType) < 0) {
return NULL;
- }
+ }
d = PyModule_GetDict(m);
diff --git a/contrib/tools/python3/src/Modules/parsermodule.c b/contrib/tools/python3/src/Modules/parsermodule.c
index 9ba86e4b39..24b0ffbe36 100644
--- a/contrib/tools/python3/src/Modules/parsermodule.c
+++ b/contrib/tools/python3/src/Modules/parsermodule.c
@@ -28,13 +28,13 @@
#include "Python.h" /* general Python API */
#include "Python-ast.h" /* mod_ty */
-#undef Yield /* undefine macro conflicting with <winbase.h> */
-#include "ast.h"
+#undef Yield /* undefine macro conflicting with <winbase.h> */
+#include "ast.h"
#include "graminit.h" /* symbols defined in the grammar */
#include "node.h" /* internal parser structure */
#include "errcode.h" /* error codes for PyNode_*() */
#include "token.h" /* token definitions */
- /* ISTERMINAL() / ISNONTERMINAL() */
+ /* ISTERMINAL() / ISNONTERMINAL() */
#include "grammar.h"
#include "parsetok.h"
@@ -202,15 +202,15 @@ static PyObject* parser_st2tuple(PyST_Object *, PyObject *, PyObject *);
#define PUBLIC_METHOD_TYPE (METH_VARARGS|METH_KEYWORDS)
static PyMethodDef parser_methods[] = {
- {"compile", (PyCFunction)(void(*)(void))parser_compilest, PUBLIC_METHOD_TYPE,
+ {"compile", (PyCFunction)(void(*)(void))parser_compilest, PUBLIC_METHOD_TYPE,
PyDoc_STR("Compile this ST object into a code object.")},
- {"isexpr", (PyCFunction)(void(*)(void))parser_isexpr, PUBLIC_METHOD_TYPE,
+ {"isexpr", (PyCFunction)(void(*)(void))parser_isexpr, PUBLIC_METHOD_TYPE,
PyDoc_STR("Determines if this ST object was created from an expression.")},
- {"issuite", (PyCFunction)(void(*)(void))parser_issuite, PUBLIC_METHOD_TYPE,
+ {"issuite", (PyCFunction)(void(*)(void))parser_issuite, PUBLIC_METHOD_TYPE,
PyDoc_STR("Determines if this ST object was created from a suite.")},
- {"tolist", (PyCFunction)(void(*)(void))parser_st2list, PUBLIC_METHOD_TYPE,
+ {"tolist", (PyCFunction)(void(*)(void))parser_st2list, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates a list-tree representation of this ST.")},
- {"totuple", (PyCFunction)(void(*)(void))parser_st2tuple, PUBLIC_METHOD_TYPE,
+ {"totuple", (PyCFunction)(void(*)(void))parser_st2tuple, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates a tuple-tree representation of this ST.")},
{"__sizeof__", (PyCFunction)parser_sizeof, METH_NOARGS,
PyDoc_STR("Returns size in memory, in bytes.")},
@@ -224,10 +224,10 @@ PyTypeObject PyST_Type = {
(int) sizeof(PyST_Object), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)parser_free, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -256,7 +256,7 @@ PyTypeObject PyST_Type = {
/* PyST_Type isn't subclassable, so just check ob_type */
-#define PyST_Object_Check(v) Py_IS_TYPE(v, &PyST_Type)
+#define PyST_Object_Check(v) Py_IS_TYPE(v, &PyST_Type)
static int
parser_compare_nodes(node *left, node *right)
@@ -336,7 +336,7 @@ parser_newstobject(node *st, int type)
if (o != 0) {
o->st_node = st;
o->st_type = type;
- o->st_flags = _PyCompilerFlags_INIT;
+ o->st_flags = _PyCompilerFlags_INIT;
}
else {
PyNode_Free(st);
@@ -580,10 +580,10 @@ parser_do_parse(PyObject *args, PyObject *kw, const char *argspec, int type)
if (n) {
res = parser_newstobject(n, type);
- if (res) {
+ if (res) {
((PyST_Object *)res)->st_flags.cf_flags = flags & PyCF_MASK;
- ((PyST_Object *)res)->st_flags.cf_feature_version = PY_MINOR_VERSION;
- }
+ ((PyST_Object *)res)->st_flags.cf_feature_version = PY_MINOR_VERSION;
+ }
}
else {
PyParser_SetError(&err);
@@ -652,36 +652,36 @@ validate_node(node *tree)
PyErr_Format(parser_error, "Unrecognized node type %d.", TYPE(tree));
return 0;
}
- const dfa *nt_dfa = &_PyParser_Grammar.g_dfa[type];
+ const dfa *nt_dfa = &_PyParser_Grammar.g_dfa[type];
REQ(tree, nt_dfa->d_type);
/* Run the DFA for this nonterminal. */
- dfa_state = nt_dfa->d_state;
+ dfa_state = nt_dfa->d_state;
for (pos = 0; pos < nch; ++pos) {
node *ch = CHILD(tree, pos);
int ch_type = TYPE(ch);
- if ((ch_type >= NT_OFFSET + _PyParser_Grammar.g_ndfas)
- || (ISTERMINAL(ch_type) && (ch_type >= N_TOKENS))
- || (ch_type < 0)
- ) {
- PyErr_Format(parser_error, "Unrecognized node type %d.", ch_type);
- return 0;
- }
- if (ch_type == suite && TYPE(tree) == funcdef) {
- /* This is the opposite hack of what we do in parser.c
- (search for func_body_suite), except we don't ever
- support type comments here. */
- ch_type = func_body_suite;
- }
+ if ((ch_type >= NT_OFFSET + _PyParser_Grammar.g_ndfas)
+ || (ISTERMINAL(ch_type) && (ch_type >= N_TOKENS))
+ || (ch_type < 0)
+ ) {
+ PyErr_Format(parser_error, "Unrecognized node type %d.", ch_type);
+ return 0;
+ }
+ if (ch_type == suite && TYPE(tree) == funcdef) {
+ /* This is the opposite hack of what we do in parser.c
+ (search for func_body_suite), except we don't ever
+ support type comments here. */
+ ch_type = func_body_suite;
+ }
for (arc = 0; arc < dfa_state->s_narcs; ++arc) {
short a_label = dfa_state->s_arc[arc].a_lbl;
assert(a_label < _PyParser_Grammar.g_ll.ll_nlabels);
-
- const char *label_str = _PyParser_Grammar.g_ll.ll_label[a_label].lb_str;
- if ((_PyParser_Grammar.g_ll.ll_label[a_label].lb_type == ch_type)
- && ((ch->n_str == NULL) || (label_str == NULL)
- || (strcmp(ch->n_str, label_str) == 0))
- ) {
+
+ const char *label_str = _PyParser_Grammar.g_ll.ll_label[a_label].lb_str;
+ if ((_PyParser_Grammar.g_ll.ll_label[a_label].lb_type == ch_type)
+ && ((ch->n_str == NULL) || (label_str == NULL)
+ || (strcmp(ch->n_str, label_str) == 0))
+ ) {
/* The child is acceptable; if non-terminal, validate it recursively. */
if (ISNONTERMINAL(ch_type) && !validate_node(ch))
return 0;
@@ -697,23 +697,23 @@ validate_node(node *tree)
if (!a_label) /* Wouldn't accept any more children */
goto illegal_num_children;
- int next_type = _PyParser_Grammar.g_ll.ll_label[a_label].lb_type;
- const char *expected_str = _PyParser_Grammar.g_ll.ll_label[a_label].lb_str;
-
- if (ISNONTERMINAL(next_type)) {
- PyErr_Format(parser_error, "Expected %s, got %s.",
- _PyParser_Grammar.g_dfa[next_type - NT_OFFSET].d_name,
- ISTERMINAL(ch_type) ? _PyParser_TokenNames[ch_type] :
- _PyParser_Grammar.g_dfa[ch_type - NT_OFFSET].d_name);
- }
- else if (expected_str != NULL) {
- PyErr_Format(parser_error, "Illegal terminal: expected '%s'.",
- expected_str);
- }
- else {
+ int next_type = _PyParser_Grammar.g_ll.ll_label[a_label].lb_type;
+ const char *expected_str = _PyParser_Grammar.g_ll.ll_label[a_label].lb_str;
+
+ if (ISNONTERMINAL(next_type)) {
+ PyErr_Format(parser_error, "Expected %s, got %s.",
+ _PyParser_Grammar.g_dfa[next_type - NT_OFFSET].d_name,
+ ISTERMINAL(ch_type) ? _PyParser_TokenNames[ch_type] :
+ _PyParser_Grammar.g_dfa[ch_type - NT_OFFSET].d_name);
+ }
+ else if (expected_str != NULL) {
+ PyErr_Format(parser_error, "Illegal terminal: expected '%s'.",
+ expected_str);
+ }
+ else {
PyErr_Format(parser_error, "Illegal terminal: expected %s.",
_PyParser_TokenNames[next_type]);
- }
+ }
return 0;
}
@@ -944,7 +944,7 @@ build_node_children(PyObject *tuple, node *root, int *line_num)
Py_DECREF(elem);
return NULL;
}
- err = PyNode_AddChild(root, type, strn, *line_num, 0, *line_num, 0);
+ err = PyNode_AddChild(root, type, strn, *line_num, 0, *line_num, 0);
if (err == E_NOMEM) {
Py_DECREF(elem);
PyObject_FREE(strn);
@@ -1085,9 +1085,9 @@ parser__pickler(PyObject *self, PyObject *args)
PyObject *newargs;
PyObject *tuple;
- if ((newargs = PyTuple_Pack(2, st, Py_True)) == NULL)
- return NULL;
- tuple = parser_st2tuple((PyST_Object*)NULL, newargs, NULL);
+ if ((newargs = PyTuple_Pack(2, st, Py_True)) == NULL)
+ return NULL;
+ tuple = parser_st2tuple((PyST_Object*)NULL, newargs, NULL);
if (tuple != NULL) {
result = Py_BuildValue("O(O)", pickle_constructor, tuple);
Py_DECREF(tuple);
@@ -1106,23 +1106,23 @@ parser__pickler(PyObject *self, PyObject *args)
* inheritance.
*/
static PyMethodDef parser_functions[] = {
- {"compilest", (PyCFunction)(void(*)(void))parser_compilest, PUBLIC_METHOD_TYPE,
+ {"compilest", (PyCFunction)(void(*)(void))parser_compilest, PUBLIC_METHOD_TYPE,
PyDoc_STR("Compiles an ST object into a code object.")},
- {"expr", (PyCFunction)(void(*)(void))parser_expr, PUBLIC_METHOD_TYPE,
+ {"expr", (PyCFunction)(void(*)(void))parser_expr, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates an ST object from an expression.")},
- {"isexpr", (PyCFunction)(void(*)(void))parser_isexpr, PUBLIC_METHOD_TYPE,
+ {"isexpr", (PyCFunction)(void(*)(void))parser_isexpr, PUBLIC_METHOD_TYPE,
PyDoc_STR("Determines if an ST object was created from an expression.")},
- {"issuite", (PyCFunction)(void(*)(void))parser_issuite, PUBLIC_METHOD_TYPE,
+ {"issuite", (PyCFunction)(void(*)(void))parser_issuite, PUBLIC_METHOD_TYPE,
PyDoc_STR("Determines if an ST object was created from a suite.")},
- {"suite", (PyCFunction)(void(*)(void))parser_suite, PUBLIC_METHOD_TYPE,
+ {"suite", (PyCFunction)(void(*)(void))parser_suite, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates an ST object from a suite.")},
- {"sequence2st", (PyCFunction)(void(*)(void))parser_tuple2st, PUBLIC_METHOD_TYPE,
+ {"sequence2st", (PyCFunction)(void(*)(void))parser_tuple2st, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates an ST object from a tree representation.")},
- {"st2tuple", (PyCFunction)(void(*)(void))parser_st2tuple, PUBLIC_METHOD_TYPE,
+ {"st2tuple", (PyCFunction)(void(*)(void))parser_st2tuple, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates a tuple-tree representation of an ST.")},
- {"st2list", (PyCFunction)(void(*)(void))parser_st2list, PUBLIC_METHOD_TYPE,
+ {"st2list", (PyCFunction)(void(*)(void))parser_st2list, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates a list-tree representation of an ST.")},
- {"tuple2st", (PyCFunction)(void(*)(void))parser_tuple2st, PUBLIC_METHOD_TYPE,
+ {"tuple2st", (PyCFunction)(void(*)(void))parser_tuple2st, PUBLIC_METHOD_TYPE,
PyDoc_STR("Creates an ST object from a tree representation.")},
/* private stuff: support pickle module */
@@ -1153,12 +1153,12 @@ PyInit_parser(void)
{
PyObject *module, *copyreg;
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "The parser module is deprecated and will be removed "
- "in future versions of Python", 7) != 0) {
- return NULL;
- }
-
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "The parser module is deprecated and will be removed "
+ "in future versions of Python", 7) != 0) {
+ return NULL;
+ }
+
if (PyType_Ready(&PyST_Type) < 0)
return NULL;
module = PyModule_Create(&parsermodule);
diff --git a/contrib/tools/python3/src/Modules/posixmodule.c b/contrib/tools/python3/src/Modules/posixmodule.c
index 85dde7bd7e..0918266843 100644
--- a/contrib/tools/python3/src/Modules/posixmodule.c
+++ b/contrib/tools/python3/src/Modules/posixmodule.c
@@ -10,162 +10,162 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#ifdef MS_WINDOWS
- /* include <windows.h> early to avoid conflict with pycore_condvar.h:
-
- #define WIN32_LEAN_AND_MEAN
- #include <windows.h>
-
- FSCTL_GET_REPARSE_POINT is not exported with WIN32_LEAN_AND_MEAN. */
-# include <windows.h>
-# include <pathcch.h>
-#endif
-
-#include "pycore_ceval.h" // _PyEval_ReInitThreads()
-#include "pycore_import.h" // _PyImport_ReInitLock()
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "structmember.h" // PyMemberDef
+#ifdef MS_WINDOWS
+ /* include <windows.h> early to avoid conflict with pycore_condvar.h:
+
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
+
+ FSCTL_GET_REPARSE_POINT is not exported with WIN32_LEAN_AND_MEAN. */
+# include <windows.h>
+# include <pathcch.h>
+#endif
+
+#include "pycore_ceval.h" // _PyEval_ReInitThreads()
+#include "pycore_import.h" // _PyImport_ReInitLock()
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "structmember.h" // PyMemberDef
#ifndef MS_WINDOWS
-# include "posixmodule.h"
+# include "posixmodule.h"
#else
-# include "winreparse.h"
+# include "winreparse.h"
#endif
/* On android API level 21, 'AT_EACCESS' is not declared although
* HAVE_FACCESSAT is defined. */
#ifdef __ANDROID__
-# undef HAVE_FACCESSAT
+# undef HAVE_FACCESSAT
#endif
#include <stdio.h> /* needed for ctermid() */
-/*
- * A number of APIs are available on macOS from a certain macOS version.
- * To support building with a new SDK while deploying to older versions
- * the availability test is split into two:
- * - HAVE_<FUNCTION>: The configure check for compile time availability
- * - HAVE_<FUNCTION>_RUNTIME: Runtime check for availability
- *
- * The latter is always true when not on macOS, or when using a compiler
- * that does not support __has_builtin (older versions of Xcode).
- *
- * Due to compiler restrictions there is one valid use of HAVE_<FUNCTION>_RUNTIME:
- * if (HAVE_<FUNCTION>_RUNTIME) { ... }
- *
- * In mixing the test with other tests or using negations will result in compile
- * errors.
- */
-#if defined(__APPLE__)
-
-#if defined(__has_builtin)
-#if __has_builtin(__builtin_available)
-#define HAVE_BUILTIN_AVAILABLE 1
-#endif
-#endif
-
-#ifdef HAVE_BUILTIN_AVAILABLE
-# define HAVE_FSTATAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_FACCESSAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_FCHMODAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_FCHOWNAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_LINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_FDOPENDIR_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_MKDIRAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_RENAMEAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_UNLINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_OPENAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_READLINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_SYMLINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
-# define HAVE_FUTIMENS_RUNTIME __builtin_available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *)
-# define HAVE_UTIMENSAT_RUNTIME __builtin_available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *)
-# define HAVE_PWRITEV_RUNTIME __builtin_available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
-
-# define HAVE_POSIX_SPAWN_SETSID_RUNTIME __builtin_available(macOS 10.15, *)
-
-#else /* Xcode 8 or earlier */
-
- /* __builtin_available is not present in these compilers, but
- * some of the symbols might be weak linked (10.10 SDK or later
- * deploying on 10.9.
- *
- * Fall back to the older style of availability checking for
- * symbols introduced in macOS 10.10.
- */
-
-# ifdef HAVE_FSTATAT
-# define HAVE_FSTATAT_RUNTIME (fstatat != NULL)
-# endif
-
-# ifdef HAVE_FACCESSAT
-# define HAVE_FACCESSAT_RUNTIME (faccessat != NULL)
-# endif
-
-# ifdef HAVE_FCHMODAT
-# define HAVE_FCHMODAT_RUNTIME (fchmodat != NULL)
-# endif
-
-# ifdef HAVE_FCHOWNAT
-# define HAVE_FCHOWNAT_RUNTIME (fchownat != NULL)
-# endif
-
-# ifdef HAVE_LINKAT
-# define HAVE_LINKAT_RUNTIME (linkat != NULL)
-# endif
-
-# ifdef HAVE_FDOPENDIR
-# define HAVE_FDOPENDIR_RUNTIME (fdopendir != NULL)
-# endif
-
-# ifdef HAVE_MKDIRAT
-# define HAVE_MKDIRAT_RUNTIME (mkdirat != NULL)
-# endif
-
-# ifdef HAVE_RENAMEAT
-# define HAVE_RENAMEAT_RUNTIME (renameat != NULL)
-# endif
-
-# ifdef HAVE_UNLINKAT
-# define HAVE_UNLINKAT_RUNTIME (unlinkat != NULL)
-# endif
-
-# ifdef HAVE_OPENAT
-# define HAVE_OPENAT_RUNTIME (openat != NULL)
-# endif
-
-# ifdef HAVE_READLINKAT
-# define HAVE_READLINKAT_RUNTIME (readlinkat != NULL)
-# endif
-
-# ifdef HAVE_SYMLINKAT
-# define HAVE_SYMLINKAT_RUNTIME (symlinkat != NULL)
-# endif
-
-#endif
-
-#ifdef HAVE_FUTIMESAT
-/* Some of the logic for weak linking depends on this assertion */
-# error "HAVE_FUTIMESAT unexpectedly defined"
-#endif
-
-#else
-# define HAVE_FSTATAT_RUNTIME 1
-# define HAVE_FACCESSAT_RUNTIME 1
-# define HAVE_FCHMODAT_RUNTIME 1
-# define HAVE_FCHOWNAT_RUNTIME 1
-# define HAVE_LINKAT_RUNTIME 1
-# define HAVE_FDOPENDIR_RUNTIME 1
-# define HAVE_MKDIRAT_RUNTIME 1
-# define HAVE_RENAMEAT_RUNTIME 1
-# define HAVE_UNLINKAT_RUNTIME 1
-# define HAVE_OPENAT_RUNTIME 1
-# define HAVE_READLINKAT_RUNTIME 1
-# define HAVE_SYMLINKAT_RUNTIME 1
-# define HAVE_FUTIMENS_RUNTIME 1
-# define HAVE_UTIMENSAT_RUNTIME 1
-# define HAVE_PWRITEV_RUNTIME 1
-#endif
-
-
+/*
+ * A number of APIs are available on macOS from a certain macOS version.
+ * To support building with a new SDK while deploying to older versions
+ * the availability test is split into two:
+ * - HAVE_<FUNCTION>: The configure check for compile time availability
+ * - HAVE_<FUNCTION>_RUNTIME: Runtime check for availability
+ *
+ * The latter is always true when not on macOS, or when using a compiler
+ * that does not support __has_builtin (older versions of Xcode).
+ *
+ * Due to compiler restrictions there is one valid use of HAVE_<FUNCTION>_RUNTIME:
+ * if (HAVE_<FUNCTION>_RUNTIME) { ... }
+ *
+ * In mixing the test with other tests or using negations will result in compile
+ * errors.
+ */
+#if defined(__APPLE__)
+
+#if defined(__has_builtin)
+#if __has_builtin(__builtin_available)
+#define HAVE_BUILTIN_AVAILABLE 1
+#endif
+#endif
+
+#ifdef HAVE_BUILTIN_AVAILABLE
+# define HAVE_FSTATAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_FACCESSAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_FCHMODAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_FCHOWNAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_LINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_FDOPENDIR_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_MKDIRAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_RENAMEAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_UNLINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_OPENAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_READLINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_SYMLINKAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)
+# define HAVE_FUTIMENS_RUNTIME __builtin_available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *)
+# define HAVE_UTIMENSAT_RUNTIME __builtin_available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *)
+# define HAVE_PWRITEV_RUNTIME __builtin_available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
+
+# define HAVE_POSIX_SPAWN_SETSID_RUNTIME __builtin_available(macOS 10.15, *)
+
+#else /* Xcode 8 or earlier */
+
+ /* __builtin_available is not present in these compilers, but
+ * some of the symbols might be weak linked (10.10 SDK or later
+ * deploying on 10.9.
+ *
+ * Fall back to the older style of availability checking for
+ * symbols introduced in macOS 10.10.
+ */
+
+# ifdef HAVE_FSTATAT
+# define HAVE_FSTATAT_RUNTIME (fstatat != NULL)
+# endif
+
+# ifdef HAVE_FACCESSAT
+# define HAVE_FACCESSAT_RUNTIME (faccessat != NULL)
+# endif
+
+# ifdef HAVE_FCHMODAT
+# define HAVE_FCHMODAT_RUNTIME (fchmodat != NULL)
+# endif
+
+# ifdef HAVE_FCHOWNAT
+# define HAVE_FCHOWNAT_RUNTIME (fchownat != NULL)
+# endif
+
+# ifdef HAVE_LINKAT
+# define HAVE_LINKAT_RUNTIME (linkat != NULL)
+# endif
+
+# ifdef HAVE_FDOPENDIR
+# define HAVE_FDOPENDIR_RUNTIME (fdopendir != NULL)
+# endif
+
+# ifdef HAVE_MKDIRAT
+# define HAVE_MKDIRAT_RUNTIME (mkdirat != NULL)
+# endif
+
+# ifdef HAVE_RENAMEAT
+# define HAVE_RENAMEAT_RUNTIME (renameat != NULL)
+# endif
+
+# ifdef HAVE_UNLINKAT
+# define HAVE_UNLINKAT_RUNTIME (unlinkat != NULL)
+# endif
+
+# ifdef HAVE_OPENAT
+# define HAVE_OPENAT_RUNTIME (openat != NULL)
+# endif
+
+# ifdef HAVE_READLINKAT
+# define HAVE_READLINKAT_RUNTIME (readlinkat != NULL)
+# endif
+
+# ifdef HAVE_SYMLINKAT
+# define HAVE_SYMLINKAT_RUNTIME (symlinkat != NULL)
+# endif
+
+#endif
+
+#ifdef HAVE_FUTIMESAT
+/* Some of the logic for weak linking depends on this assertion */
+# error "HAVE_FUTIMESAT unexpectedly defined"
+#endif
+
+#else
+# define HAVE_FSTATAT_RUNTIME 1
+# define HAVE_FACCESSAT_RUNTIME 1
+# define HAVE_FCHMODAT_RUNTIME 1
+# define HAVE_FCHOWNAT_RUNTIME 1
+# define HAVE_LINKAT_RUNTIME 1
+# define HAVE_FDOPENDIR_RUNTIME 1
+# define HAVE_MKDIRAT_RUNTIME 1
+# define HAVE_RENAMEAT_RUNTIME 1
+# define HAVE_UNLINKAT_RUNTIME 1
+# define HAVE_OPENAT_RUNTIME 1
+# define HAVE_READLINKAT_RUNTIME 1
+# define HAVE_SYMLINKAT_RUNTIME 1
+# define HAVE_FUTIMENS_RUNTIME 1
+# define HAVE_UTIMENSAT_RUNTIME 1
+# define HAVE_PWRITEV_RUNTIME 1
+#endif
+
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -178,89 +178,89 @@ corresponding Unix manual entries for more information on calls.");
#ifdef HAVE_SYS_UIO_H
-# include <sys/uio.h>
+# include <sys/uio.h>
#endif
#ifdef HAVE_SYS_SYSMACROS_H
/* GNU C Library: major(), minor(), makedev() */
-# include <sys/sysmacros.h>
+# include <sys/sysmacros.h>
#endif
#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
+# include <sys/types.h>
#endif /* HAVE_SYS_TYPES_H */
#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
+# include <sys/stat.h>
#endif /* HAVE_SYS_STAT_H */
#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h> // WNOHANG
+# include <sys/wait.h> // WNOHANG
+#endif
+#ifdef HAVE_LINUX_WAIT_H
+# include <linux/wait.h> // P_PIDFD
#endif
-#ifdef HAVE_LINUX_WAIT_H
-# include <linux/wait.h> // P_PIDFD
-#endif
#ifdef HAVE_SIGNAL_H
-# include <signal.h>
+# include <signal.h>
#endif
#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
+# include <fcntl.h>
+#endif
#ifdef HAVE_GRP_H
-# include <grp.h>
+# include <grp.h>
#endif
#ifdef HAVE_SYSEXITS_H
-# include <sysexits.h>
-#endif
+# include <sysexits.h>
+#endif
#ifdef HAVE_SYS_LOADAVG_H
-# include <sys/loadavg.h>
+# include <sys/loadavg.h>
#endif
#ifdef HAVE_SYS_SENDFILE_H
-# include <sys/sendfile.h>
+# include <sys/sendfile.h>
+#endif
+
+#if defined(__APPLE__)
+# include <copyfile.h>
#endif
-#if defined(__APPLE__)
-# include <copyfile.h>
-#endif
-
#ifdef HAVE_SCHED_H
-# include <sched.h>
+# include <sched.h>
+#endif
+
+#ifdef HAVE_COPY_FILE_RANGE
+# include <unistd.h>
#endif
-#ifdef HAVE_COPY_FILE_RANGE
-# include <unistd.h>
-#endif
-
#if !defined(CPU_ALLOC) && defined(HAVE_SCHED_SETAFFINITY)
-# undef HAVE_SCHED_SETAFFINITY
+# undef HAVE_SCHED_SETAFFINITY
#endif
#if defined(HAVE_SYS_XATTR_H) && defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__GNU__)
-# define USE_XATTRS
+# define USE_XATTRS
#endif
#ifdef USE_XATTRS
-# include <sys/xattr.h>
+# include <sys/xattr.h>
#endif
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__APPLE__)
-# ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-# endif
+# ifdef HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+# endif
#endif
#ifdef HAVE_DLFCN_H
-# include <dlfcn.h>
+# include <dlfcn.h>
#endif
#ifdef __hpux
-# include <sys/mpctl.h>
+# include <sys/mpctl.h>
#endif
#if defined(__DragonFly__) || \
@@ -268,7 +268,7 @@ corresponding Unix manual entries for more information on calls.");
defined(__FreeBSD__) || \
defined(__NetBSD__) || \
defined(__APPLE__)
-# include <sys/sysctl.h>
+# include <sys/sysctl.h>
#endif
#ifdef HAVE_LINUX_RANDOM_H
@@ -293,47 +293,47 @@ corresponding Unix manual entries for more information on calls.");
/* Various compilers have only certain posix functions */
/* XXX Gosh I wish these were all moved into pyconfig.h */
#if defined(__WATCOMC__) && !defined(__QNX__) /* Watcom compiler */
-# define HAVE_OPENDIR 1
-# define HAVE_SYSTEM 1
-# include <process.h>
-#else
-# ifdef _MSC_VER
- /* Microsoft compiler */
-# define HAVE_GETPPID 1
-# define HAVE_GETLOGIN 1
-# define HAVE_SPAWNV 1
-# define HAVE_EXECV 1
-# define HAVE_WSPAWNV 1
-# define HAVE_WEXECV 1
-# define HAVE_PIPE 1
-# define HAVE_SYSTEM 1
-# define HAVE_CWAIT 1
-# define HAVE_FSYNC 1
-# define fsync _commit
-# else
- /* Unix functions that the configure script doesn't check for */
-# ifndef __VXWORKS__
-# define HAVE_EXECV 1
-# define HAVE_FORK 1
-# if defined(__USLC__) && defined(__SCO_VERSION__) /* SCO UDK Compiler */
-# define HAVE_FORK1 1
-# endif
-# endif
-# define HAVE_GETEGID 1
-# define HAVE_GETEUID 1
-# define HAVE_GETGID 1
-# define HAVE_GETPPID 1
-# define HAVE_GETUID 1
-# define HAVE_KILL 1
-# define HAVE_OPENDIR 1
-# define HAVE_PIPE 1
-# define HAVE_SYSTEM 1
-# define HAVE_WAIT 1
-# define HAVE_TTYNAME 1
-# endif /* _MSC_VER */
+# define HAVE_OPENDIR 1
+# define HAVE_SYSTEM 1
+# include <process.h>
+#else
+# ifdef _MSC_VER
+ /* Microsoft compiler */
+# define HAVE_GETPPID 1
+# define HAVE_GETLOGIN 1
+# define HAVE_SPAWNV 1
+# define HAVE_EXECV 1
+# define HAVE_WSPAWNV 1
+# define HAVE_WEXECV 1
+# define HAVE_PIPE 1
+# define HAVE_SYSTEM 1
+# define HAVE_CWAIT 1
+# define HAVE_FSYNC 1
+# define fsync _commit
+# else
+ /* Unix functions that the configure script doesn't check for */
+# ifndef __VXWORKS__
+# define HAVE_EXECV 1
+# define HAVE_FORK 1
+# if defined(__USLC__) && defined(__SCO_VERSION__) /* SCO UDK Compiler */
+# define HAVE_FORK1 1
+# endif
+# endif
+# define HAVE_GETEGID 1
+# define HAVE_GETEUID 1
+# define HAVE_GETGID 1
+# define HAVE_GETPPID 1
+# define HAVE_GETUID 1
+# define HAVE_KILL 1
+# define HAVE_OPENDIR 1
+# define HAVE_PIPE 1
+# define HAVE_SYSTEM 1
+# define HAVE_WAIT 1
+# define HAVE_TTYNAME 1
+# endif /* _MSC_VER */
#endif /* ! __WATCOMC__ || __QNX__ */
-_Py_IDENTIFIER(__fspath__);
+_Py_IDENTIFIER(__fspath__);
/*[clinic input]
# one of the few times we lie about this name!
@@ -349,123 +349,123 @@ module os
extern char *ctermid_r(char *);
#endif
-#endif /* !_MSC_VER */
-
-#if defined(__VXWORKS__)
-# include <vxCpuLib.h>
-# include <rtpLib.h>
-# include <wait.h>
-# include <taskLib.h>
-# ifndef _P_WAIT
-# define _P_WAIT 0
-# define _P_NOWAIT 1
-# define _P_NOWAITO 1
-# endif
-#endif /* __VXWORKS__ */
-
-#ifdef HAVE_POSIX_SPAWN
-# include <spawn.h>
+#endif /* !_MSC_VER */
+
+#if defined(__VXWORKS__)
+# include <vxCpuLib.h>
+# include <rtpLib.h>
+# include <wait.h>
+# include <taskLib.h>
+# ifndef _P_WAIT
+# define _P_WAIT 0
+# define _P_NOWAIT 1
+# define _P_NOWAITO 1
+# endif
+#endif /* __VXWORKS__ */
+
+#ifdef HAVE_POSIX_SPAWN
+# include <spawn.h>
#endif
#ifdef HAVE_UTIME_H
-# include <utime.h>
+# include <utime.h>
#endif /* HAVE_UTIME_H */
#ifdef HAVE_SYS_UTIME_H
-# include <sys/utime.h>
-# define HAVE_UTIME_H /* pretend we do for the rest of this file */
+# include <sys/utime.h>
+# define HAVE_UTIME_H /* pretend we do for the rest of this file */
#endif /* HAVE_SYS_UTIME_H */
#ifdef HAVE_SYS_TIMES_H
-# include <sys/times.h>
+# include <sys/times.h>
#endif /* HAVE_SYS_TIMES_H */
#ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
+# include <sys/param.h>
#endif /* HAVE_SYS_PARAM_H */
#ifdef HAVE_SYS_UTSNAME_H
-# include <sys/utsname.h>
+# include <sys/utsname.h>
#endif /* HAVE_SYS_UTSNAME_H */
#ifdef HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# if defined(__WATCOMC__) && !defined(__QNX__)
-# include <direct.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-# else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# endif
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
+# include <dirent.h>
+# define NAMLEN(dirent) strlen((dirent)->d_name)
+#else
+# if defined(__WATCOMC__) && !defined(__QNX__)
+# include <direct.h>
+# define NAMLEN(dirent) strlen((dirent)->d_name)
+# else
+# define dirent direct
+# define NAMLEN(dirent) (dirent)->d_namlen
+# endif
+# ifdef HAVE_SYS_NDIR_H
+# include <sys/ndir.h>
+# endif
+# ifdef HAVE_SYS_DIR_H
+# include <sys/dir.h>
+# endif
+# ifdef HAVE_NDIR_H
+# include <ndir.h>
+# endif
#endif
#ifdef _MSC_VER
-# ifdef HAVE_DIRECT_H
-# include <direct.h>
-# endif
-# ifdef HAVE_IO_H
-# include <io.h>
-# endif
-# ifdef HAVE_PROCESS_H
-# include <process.h>
-# endif
-# ifndef IO_REPARSE_TAG_SYMLINK
-# define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
-# endif
-# ifndef IO_REPARSE_TAG_MOUNT_POINT
-# define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L)
-# endif
-# include "osdefs.h" // SEP
-# include <malloc.h>
-# include <windows.h>
-# include <winioctl.h>
-# include <shellapi.h> // ShellExecute()
-# include <lmcons.h> // UNLEN
-# define HAVE_SYMLINK
+# ifdef HAVE_DIRECT_H
+# include <direct.h>
+# endif
+# ifdef HAVE_IO_H
+# include <io.h>
+# endif
+# ifdef HAVE_PROCESS_H
+# include <process.h>
+# endif
+# ifndef IO_REPARSE_TAG_SYMLINK
+# define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
+# endif
+# ifndef IO_REPARSE_TAG_MOUNT_POINT
+# define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L)
+# endif
+# include "osdefs.h" // SEP
+# include <malloc.h>
+# include <windows.h>
+# include <winioctl.h>
+# include <shellapi.h> // ShellExecute()
+# include <lmcons.h> // UNLEN
+# define HAVE_SYMLINK
#endif /* _MSC_VER */
#ifndef MAXPATHLEN
-# if defined(PATH_MAX) && PATH_MAX > 1024
-# define MAXPATHLEN PATH_MAX
-# else
-# define MAXPATHLEN 1024
-# endif
+# if defined(PATH_MAX) && PATH_MAX > 1024
+# define MAXPATHLEN PATH_MAX
+# else
+# define MAXPATHLEN 1024
+# endif
#endif /* MAXPATHLEN */
#ifdef UNION_WAIT
- /* Emulate some macros on systems that have a union instead of macros */
-# ifndef WIFEXITED
-# define WIFEXITED(u_wait) (!(u_wait).w_termsig && !(u_wait).w_coredump)
-# endif
-# ifndef WEXITSTATUS
-# define WEXITSTATUS(u_wait) (WIFEXITED(u_wait)?((u_wait).w_retcode):-1)
-# endif
-# ifndef WTERMSIG
-# define WTERMSIG(u_wait) ((u_wait).w_termsig)
-# endif
-# define WAIT_TYPE union wait
-# define WAIT_STATUS_INT(s) (s.w_status)
-#else
- /* !UNION_WAIT */
-# define WAIT_TYPE int
-# define WAIT_STATUS_INT(s) (s)
+ /* Emulate some macros on systems that have a union instead of macros */
+# ifndef WIFEXITED
+# define WIFEXITED(u_wait) (!(u_wait).w_termsig && !(u_wait).w_coredump)
+# endif
+# ifndef WEXITSTATUS
+# define WEXITSTATUS(u_wait) (WIFEXITED(u_wait)?((u_wait).w_retcode):-1)
+# endif
+# ifndef WTERMSIG
+# define WTERMSIG(u_wait) ((u_wait).w_termsig)
+# endif
+# define WAIT_TYPE union wait
+# define WAIT_STATUS_INT(s) (s.w_status)
+#else
+ /* !UNION_WAIT */
+# define WAIT_TYPE int
+# define WAIT_STATUS_INT(s) (s)
#endif /* UNION_WAIT */
/* Don't use the "_r" form if we don't need it (also, won't have a
prototype for it, at least on Solaris -- maybe others as well?). */
#if defined(HAVE_CTERMID_R)
-# define USE_CTERMID_R
+# define USE_CTERMID_R
#endif
/* choose the appropriate stat and fstat functions and return structs */
@@ -473,56 +473,56 @@ extern char *ctermid_r(char *);
#undef FSTAT
#undef STRUCT_STAT
#ifdef MS_WINDOWS
-# define STAT win32_stat
-# define LSTAT win32_lstat
-# define FSTAT _Py_fstat_noraise
-# define STRUCT_STAT struct _Py_stat_struct
+# define STAT win32_stat
+# define LSTAT win32_lstat
+# define FSTAT _Py_fstat_noraise
+# define STRUCT_STAT struct _Py_stat_struct
#else
-# define STAT stat
-# define LSTAT lstat
-# define FSTAT fstat
-# define STRUCT_STAT struct stat
+# define STAT stat
+# define LSTAT lstat
+# define FSTAT fstat
+# define STRUCT_STAT struct stat
#endif
#if defined(MAJOR_IN_MKDEV)
-# include <sys/mkdev.h>
+# include <sys/mkdev.h>
#else
-# if defined(MAJOR_IN_SYSMACROS)
-# include <sys/sysmacros.h>
-# endif
-# if defined(HAVE_MKNOD) && defined(HAVE_SYS_MKDEV_H)
-# include <sys/mkdev.h>
-# endif
+# if defined(MAJOR_IN_SYSMACROS)
+# include <sys/sysmacros.h>
+# endif
+# if defined(HAVE_MKNOD) && defined(HAVE_SYS_MKDEV_H)
+# include <sys/mkdev.h>
+# endif
#endif
#ifdef MS_WINDOWS
-# define INITFUNC PyInit_nt
-# define MODNAME "nt"
+# define INITFUNC PyInit_nt
+# define MODNAME "nt"
#else
-# define INITFUNC PyInit_posix
-# define MODNAME "posix"
+# define INITFUNC PyInit_posix
+# define MODNAME "posix"
#endif
#if defined(__sun)
/* Something to implement in autoconf, not present in autoconf 2.69 */
-# define HAVE_STRUCT_STAT_ST_FSTYPE 1
-#endif
-
-/* memfd_create is either defined in sys/mman.h or sys/memfd.h
- * linux/memfd.h defines additional flags
- */
-#ifdef HAVE_SYS_MMAN_H
-# include <sys/mman.h>
-#endif
-#ifdef HAVE_SYS_MEMFD_H
-# include <sys/memfd.h>
-#endif
-#ifdef HAVE_LINUX_MEMFD_H
-# include <linux/memfd.h>
-#endif
-
+# define HAVE_STRUCT_STAT_ST_FSTYPE 1
+#endif
+
+/* memfd_create is either defined in sys/mman.h or sys/memfd.h
+ * linux/memfd.h defines additional flags
+ */
+#ifdef HAVE_SYS_MMAN_H
+# include <sys/mman.h>
+#endif
+#ifdef HAVE_SYS_MEMFD_H
+# include <sys/memfd.h>
+#endif
+#ifdef HAVE_LINUX_MEMFD_H
+# include <linux/memfd.h>
+#endif
+
#ifdef _Py_MEMORY_SANITIZER
-# include <sanitizer/msan_interface.h>
+# include <sanitizer/msan_interface.h>
#endif
#ifdef HAVE_FORK
@@ -547,7 +547,7 @@ run_at_forkers(PyObject *lst, int reverse)
for (i = 0; i < PyList_GET_SIZE(cpy); i++) {
PyObject *func, *res;
func = PyList_GET_ITEM(cpy, i);
- res = _PyObject_CallNoArg(func);
+ res = _PyObject_CallNoArg(func);
if (res == NULL)
PyErr_WriteUnraisable(func);
else
@@ -561,7 +561,7 @@ run_at_forkers(PyObject *lst, int reverse)
void
PyOS_BeforeFork(void)
{
- run_at_forkers(_PyInterpreterState_GET()->before_forkers, 1);
+ run_at_forkers(_PyInterpreterState_GET()->before_forkers, 1);
_PyImport_AcquireLock();
}
@@ -572,21 +572,21 @@ PyOS_AfterFork_Parent(void)
if (_PyImport_ReleaseLock() <= 0)
Py_FatalError("failed releasing import lock after fork");
- run_at_forkers(_PyInterpreterState_GET()->after_forkers_parent, 0);
+ run_at_forkers(_PyInterpreterState_GET()->after_forkers_parent, 0);
}
void
PyOS_AfterFork_Child(void)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- _PyGILState_Reinit(runtime);
- _PyEval_ReInitThreads(runtime);
+ _PyRuntimeState *runtime = &_PyRuntime;
+ _PyGILState_Reinit(runtime);
+ _PyEval_ReInitThreads(runtime);
_PyImport_ReInitLock();
_PySignal_AfterFork();
- _PyRuntimeState_ReInitThreads(runtime);
- _PyInterpreterState_DeleteExceptMain(runtime);
+ _PyRuntimeState_ReInitThreads(runtime);
+ _PyInterpreterState_DeleteExceptMain(runtime);
- run_at_forkers(_PyInterpreterState_GET()->after_forkers_child, 0);
+ run_at_forkers(_PyInterpreterState_GET()->after_forkers_child, 0);
}
static int
@@ -601,9 +601,9 @@ register_at_forker(PyObject **lst, PyObject *func)
}
return PyList_Append(*lst, func);
}
-#endif /* HAVE_FORK */
+#endif /* HAVE_FORK */
+
-
/* Legacy wrapper */
void
PyOS_AfterFork(void)
@@ -616,8 +616,8 @@ PyOS_AfterFork(void)
#ifdef MS_WINDOWS
/* defined in fileutils.c */
-void _Py_time_t_to_FILE_TIME(time_t, int, FILETIME *);
-void _Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *,
+void _Py_time_t_to_FILE_TIME(time_t, int, FILETIME *);
+void _Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *,
ULONG, struct _Py_stat_struct *);
#endif
@@ -640,7 +640,7 @@ _PyLong_FromGid(gid_t gid)
}
int
-_Py_Uid_Converter(PyObject *obj, uid_t *p)
+_Py_Uid_Converter(PyObject *obj, uid_t *p)
{
uid_t uid;
PyObject *index;
@@ -652,7 +652,7 @@ _Py_Uid_Converter(PyObject *obj, uid_t *p)
if (index == NULL) {
PyErr_Format(PyExc_TypeError,
"uid should be integer, not %.200s",
- _PyType_Name(Py_TYPE(obj)));
+ _PyType_Name(Py_TYPE(obj)));
return 0;
}
@@ -727,7 +727,7 @@ _Py_Uid_Converter(PyObject *obj, uid_t *p)
success:
Py_DECREF(index);
- *p = uid;
+ *p = uid;
return 1;
underflow:
@@ -746,7 +746,7 @@ fail:
}
int
-_Py_Gid_Converter(PyObject *obj, gid_t *p)
+_Py_Gid_Converter(PyObject *obj, gid_t *p)
{
gid_t gid;
PyObject *index;
@@ -758,7 +758,7 @@ _Py_Gid_Converter(PyObject *obj, gid_t *p)
if (index == NULL) {
PyErr_Format(PyExc_TypeError,
"gid should be integer, not %.200s",
- _PyType_Name(Py_TYPE(obj)));
+ _PyType_Name(Py_TYPE(obj)));
return 0;
}
@@ -834,7 +834,7 @@ _Py_Gid_Converter(PyObject *obj, gid_t *p)
success:
Py_DECREF(index);
- *p = gid;
+ *p = gid;
return 1;
underflow:
@@ -925,41 +925,41 @@ dir_fd_converter(PyObject *o, void *p)
else {
PyErr_Format(PyExc_TypeError,
"argument should be integer or None, not %.200s",
- _PyType_Name(Py_TYPE(o)));
+ _PyType_Name(Py_TYPE(o)));
return 0;
}
}
-typedef struct {
- PyObject *billion;
- PyObject *DirEntryType;
- PyObject *ScandirIteratorType;
-#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
- PyObject *SchedParamType;
-#endif
- PyObject *StatResultType;
- PyObject *StatVFSResultType;
- PyObject *TerminalSizeType;
- PyObject *TimesResultType;
- PyObject *UnameResultType;
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
- PyObject *WaitidResultType;
-#endif
-#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
- PyObject *struct_rusage;
-#endif
- PyObject *st_mode;
-} _posixstate;
-
-
-static inline _posixstate*
-get_posix_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_posixstate *)state;
-}
-
+typedef struct {
+ PyObject *billion;
+ PyObject *DirEntryType;
+ PyObject *ScandirIteratorType;
+#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
+ PyObject *SchedParamType;
+#endif
+ PyObject *StatResultType;
+ PyObject *StatVFSResultType;
+ PyObject *TerminalSizeType;
+ PyObject *TimesResultType;
+ PyObject *UnameResultType;
+#if defined(HAVE_WAITID) && !defined(__APPLE__)
+ PyObject *WaitidResultType;
+#endif
+#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
+ PyObject *struct_rusage;
+#endif
+ PyObject *st_mode;
+} _posixstate;
+
+
+static inline _posixstate*
+get_posix_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_posixstate *)state;
+}
+
/*
* A PyArg_ParseTuple "converter" function
* that handles filesystem paths in the manner
@@ -1148,8 +1148,8 @@ path_converter(PyObject *o, void *p)
else {
PyErr_Format(PyExc_TypeError,
"expected %.200s.__fspath__() to return str or bytes, "
- "not %.200s", _PyType_Name(Py_TYPE(o)),
- _PyType_Name(Py_TYPE(res)));
+ "not %.200s", _PyType_Name(Py_TYPE(o)),
+ _PyType_Name(Py_TYPE(res)));
Py_DECREF(res);
goto error_exit;
}
@@ -1161,10 +1161,10 @@ path_converter(PyObject *o, void *p)
if (is_unicode) {
#ifdef MS_WINDOWS
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
wide = PyUnicode_AsUnicodeAndSize(o, &length);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (!wide) {
goto error_exit;
}
@@ -1204,7 +1204,7 @@ _Py_COMP_DIAG_POP
path->allow_fd ? "string, bytes, os.PathLike or integer" :
path->nullable ? "string, bytes, os.PathLike or None" :
"string, bytes or os.PathLike",
- _PyType_Name(Py_TYPE(o)))) {
+ _PyType_Name(Py_TYPE(o)))) {
goto error_exit;
}
bytes = PyBytes_FromObject(o);
@@ -1235,7 +1235,7 @@ _Py_COMP_DIAG_POP
path->allow_fd ? "string, bytes, os.PathLike or integer" :
path->nullable ? "string, bytes, os.PathLike or None" :
"string, bytes or os.PathLike",
- _PyType_Name(Py_TYPE(o)));
+ _PyType_Name(Py_TYPE(o)));
goto error_exit;
}
@@ -1255,10 +1255,10 @@ _Py_COMP_DIAG_POP
goto error_exit;
}
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
wide = PyUnicode_AsUnicodeAndSize(wo, &length);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (!wide) {
goto error_exit;
}
@@ -1429,66 +1429,66 @@ PyLong_FromPy_off_t(Py_off_t offset)
#endif
}
-#ifdef HAVE_SIGSET_T
-/* Convert an iterable of integers to a sigset.
- Return 1 on success, return 0 and raise an exception on error. */
-int
-_Py_Sigset_Converter(PyObject *obj, void *addr)
-{
- sigset_t *mask = (sigset_t *)addr;
- PyObject *iterator, *item;
- long signum;
- int overflow;
-
- // The extra parens suppress the unreachable-code warning with clang on MacOS
- if (sigemptyset(mask) < (0)) {
- /* Probably only if mask == NULL. */
- PyErr_SetFromErrno(PyExc_OSError);
- return 0;
- }
-
- iterator = PyObject_GetIter(obj);
- if (iterator == NULL) {
- return 0;
- }
-
- while ((item = PyIter_Next(iterator)) != NULL) {
- signum = PyLong_AsLongAndOverflow(item, &overflow);
- Py_DECREF(item);
- if (signum <= 0 || signum >= NSIG) {
- if (overflow || signum != -1 || !PyErr_Occurred()) {
- PyErr_Format(PyExc_ValueError,
- "signal number %ld out of range", signum);
- }
- goto error;
- }
- if (sigaddset(mask, (int)signum)) {
- if (errno != EINVAL) {
- /* Probably impossible */
- PyErr_SetFromErrno(PyExc_OSError);
- goto error;
- }
- /* For backwards compatibility, allow idioms such as
- * `range(1, NSIG)` but warn about invalid signal numbers
- */
- const char msg[] =
- "invalid signal number %ld, please use valid_signals()";
- if (PyErr_WarnFormat(PyExc_RuntimeWarning, 1, msg, signum)) {
- goto error;
- }
- }
- }
- if (!PyErr_Occurred()) {
- Py_DECREF(iterator);
- return 1;
- }
-
-error:
- Py_DECREF(iterator);
- return 0;
-}
-#endif /* HAVE_SIGSET_T */
-
+#ifdef HAVE_SIGSET_T
+/* Convert an iterable of integers to a sigset.
+ Return 1 on success, return 0 and raise an exception on error. */
+int
+_Py_Sigset_Converter(PyObject *obj, void *addr)
+{
+ sigset_t *mask = (sigset_t *)addr;
+ PyObject *iterator, *item;
+ long signum;
+ int overflow;
+
+ // The extra parens suppress the unreachable-code warning with clang on MacOS
+ if (sigemptyset(mask) < (0)) {
+ /* Probably only if mask == NULL. */
+ PyErr_SetFromErrno(PyExc_OSError);
+ return 0;
+ }
+
+ iterator = PyObject_GetIter(obj);
+ if (iterator == NULL) {
+ return 0;
+ }
+
+ while ((item = PyIter_Next(iterator)) != NULL) {
+ signum = PyLong_AsLongAndOverflow(item, &overflow);
+ Py_DECREF(item);
+ if (signum <= 0 || signum >= NSIG) {
+ if (overflow || signum != -1 || !PyErr_Occurred()) {
+ PyErr_Format(PyExc_ValueError,
+ "signal number %ld out of range", signum);
+ }
+ goto error;
+ }
+ if (sigaddset(mask, (int)signum)) {
+ if (errno != EINVAL) {
+ /* Probably impossible */
+ PyErr_SetFromErrno(PyExc_OSError);
+ goto error;
+ }
+ /* For backwards compatibility, allow idioms such as
+ * `range(1, NSIG)` but warn about invalid signal numbers
+ */
+ const char msg[] =
+ "invalid signal number %ld, please use valid_signals()";
+ if (PyErr_WarnFormat(PyExc_RuntimeWarning, 1, msg, signum)) {
+ goto error;
+ }
+ }
+ }
+ if (!PyErr_Occurred()) {
+ Py_DECREF(iterator);
+ return 1;
+ }
+
+error:
+ Py_DECREF(iterator);
+ return 0;
+}
+#endif /* HAVE_SIGSET_T */
+
#ifdef MS_WINDOWS
static int
@@ -1522,7 +1522,7 @@ win32_get_reparse_tag(HANDLE reparse_point_handle, ULONG *reparse_tag)
** man environ(7).
*/
#include <crt_externs.h>
-#elif !defined(_MSC_VER) && (!defined(__WATCOMC__) || defined(__QNX__) || defined(__VXWORKS__))
+#elif !defined(_MSC_VER) && (!defined(__WATCOMC__) || defined(__QNX__) || defined(__VXWORKS__))
extern char **environ;
#endif /* !_MSC_VER */
@@ -1543,53 +1543,53 @@ convertenviron(void)
/* _wenviron must be initialized in this way if the program is started
through main() instead of wmain(). */
_wgetenv(L"");
- e = _wenviron;
-#elif defined(WITH_NEXT_FRAMEWORK) || (defined(__APPLE__) && defined(Py_ENABLE_SHARED))
- /* environ is not accessible as an extern in a shared object on OSX; use
- _NSGetEnviron to resolve it. The value changes if you add environment
- variables between calls to Py_Initialize, so don't cache the value. */
- e = *_NSGetEnviron();
-#else
- e = environ;
-#endif
- if (e == NULL)
+ e = _wenviron;
+#elif defined(WITH_NEXT_FRAMEWORK) || (defined(__APPLE__) && defined(Py_ENABLE_SHARED))
+ /* environ is not accessible as an extern in a shared object on OSX; use
+ _NSGetEnviron to resolve it. The value changes if you add environment
+ variables between calls to Py_Initialize, so don't cache the value. */
+ e = *_NSGetEnviron();
+#else
+ e = environ;
+#endif
+ if (e == NULL)
return d;
- for (; *e != NULL; e++) {
+ for (; *e != NULL; e++) {
PyObject *k;
PyObject *v;
-#ifdef MS_WINDOWS
+#ifdef MS_WINDOWS
const wchar_t *p = wcschr(*e, L'=');
-#else
- const char *p = strchr(*e, '=');
-#endif
+#else
+ const char *p = strchr(*e, '=');
+#endif
if (p == NULL)
continue;
-#ifdef MS_WINDOWS
+#ifdef MS_WINDOWS
k = PyUnicode_FromWideChar(*e, (Py_ssize_t)(p-*e));
-#else
- k = PyBytes_FromStringAndSize(*e, (int)(p-*e));
-#endif
+#else
+ k = PyBytes_FromStringAndSize(*e, (int)(p-*e));
+#endif
if (k == NULL) {
- Py_DECREF(d);
- return NULL;
+ Py_DECREF(d);
+ return NULL;
}
-#ifdef MS_WINDOWS
+#ifdef MS_WINDOWS
v = PyUnicode_FromWideChar(p+1, wcslen(p+1));
#else
v = PyBytes_FromStringAndSize(p+1, strlen(p+1));
-#endif
+#endif
if (v == NULL) {
Py_DECREF(k);
- Py_DECREF(d);
- return NULL;
+ Py_DECREF(d);
+ return NULL;
}
- if (PyDict_GetItemWithError(d, k) == NULL) {
- if (PyErr_Occurred() || PyDict_SetItem(d, k, v) != 0) {
- Py_DECREF(v);
- Py_DECREF(k);
- Py_DECREF(d);
- return NULL;
- }
+ if (PyDict_GetItemWithError(d, k) == NULL) {
+ if (PyErr_Occurred() || PyDict_SetItem(d, k, v) != 0) {
+ Py_DECREF(v);
+ Py_DECREF(k);
+ Py_DECREF(d);
+ return NULL;
+ }
}
Py_DECREF(k);
Py_DECREF(v);
@@ -1622,25 +1622,25 @@ win32_error(const char* function, const char* filename)
}
static PyObject *
-win32_error_object_err(const char* function, PyObject* filename, DWORD err)
+win32_error_object_err(const char* function, PyObject* filename, DWORD err)
{
/* XXX - see win32_error for comments on 'function' */
if (filename)
return PyErr_SetExcFromWindowsErrWithFilenameObject(
PyExc_OSError,
- err,
+ err,
filename);
else
- return PyErr_SetFromWindowsErr(err);
+ return PyErr_SetFromWindowsErr(err);
+}
+
+static PyObject *
+win32_error_object(const char* function, PyObject* filename)
+{
+ errno = GetLastError();
+ return win32_error_object_err(function, filename, errno);
}
-static PyObject *
-win32_error_object(const char* function, PyObject* filename)
-{
- errno = GetLastError();
- return win32_error_object_err(function, filename, errno);
-}
-
#endif /* MS_WINDOWS */
static PyObject *
@@ -1774,7 +1774,7 @@ win32_wchdir(LPCWSTR path)
*/
#define HAVE_STAT_NSEC 1
#define HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES 1
-#define HAVE_STRUCT_STAT_ST_REPARSE_TAG 1
+#define HAVE_STRUCT_STAT_ST_REPARSE_TAG 1
static void
find_data_to_file_info(WIN32_FIND_DATAW *pFileData,
@@ -1800,28 +1800,28 @@ attributes_from_dir(LPCWSTR pszFile, BY_HANDLE_FILE_INFORMATION *info, ULONG *re
{
HANDLE hFindFile;
WIN32_FIND_DATAW FileData;
- LPCWSTR filename = pszFile;
- size_t n = wcslen(pszFile);
- if (n && (pszFile[n - 1] == L'\\' || pszFile[n - 1] == L'/')) {
- // cannot use PyMem_Malloc here because we do not hold the GIL
- filename = (LPCWSTR)malloc((n + 1) * sizeof(filename[0]));
- wcsncpy_s((LPWSTR)filename, n + 1, pszFile, n);
- while (--n > 0 && (filename[n] == L'\\' || filename[n] == L'/')) {
- ((LPWSTR)filename)[n] = L'\0';
- }
- if (!n || (n == 1 && filename[1] == L':')) {
- // Nothing left to query
- free((void *)filename);
- return FALSE;
- }
- }
- hFindFile = FindFirstFileW(filename, &FileData);
- if (pszFile != filename) {
- free((void *)filename);
- }
- if (hFindFile == INVALID_HANDLE_VALUE) {
+ LPCWSTR filename = pszFile;
+ size_t n = wcslen(pszFile);
+ if (n && (pszFile[n - 1] == L'\\' || pszFile[n - 1] == L'/')) {
+ // cannot use PyMem_Malloc here because we do not hold the GIL
+ filename = (LPCWSTR)malloc((n + 1) * sizeof(filename[0]));
+ wcsncpy_s((LPWSTR)filename, n + 1, pszFile, n);
+ while (--n > 0 && (filename[n] == L'\\' || filename[n] == L'/')) {
+ ((LPWSTR)filename)[n] = L'\0';
+ }
+ if (!n || (n == 1 && filename[1] == L':')) {
+ // Nothing left to query
+ free((void *)filename);
+ return FALSE;
+ }
+ }
+ hFindFile = FindFirstFileW(filename, &FileData);
+ if (pszFile != filename) {
+ free((void *)filename);
+ }
+ if (hFindFile == INVALID_HANDLE_VALUE) {
return FALSE;
- }
+ }
FindClose(hFindFile);
find_data_to_file_info(&FileData, info, reparse_tag);
return TRUE;
@@ -1831,181 +1831,181 @@ static int
win32_xstat_impl(const wchar_t *path, struct _Py_stat_struct *result,
BOOL traverse)
{
- HANDLE hFile;
- BY_HANDLE_FILE_INFORMATION fileInfo;
- FILE_ATTRIBUTE_TAG_INFO tagInfo = { 0 };
- DWORD fileType, error;
- BOOL isUnhandledTag = FALSE;
- int retval = 0;
+ HANDLE hFile;
+ BY_HANDLE_FILE_INFORMATION fileInfo;
+ FILE_ATTRIBUTE_TAG_INFO tagInfo = { 0 };
+ DWORD fileType, error;
+ BOOL isUnhandledTag = FALSE;
+ int retval = 0;
- DWORD access = FILE_READ_ATTRIBUTES;
- DWORD flags = FILE_FLAG_BACKUP_SEMANTICS; /* Allow opening directories. */
- if (!traverse) {
- flags |= FILE_FLAG_OPEN_REPARSE_POINT;
- }
+ DWORD access = FILE_READ_ATTRIBUTES;
+ DWORD flags = FILE_FLAG_BACKUP_SEMANTICS; /* Allow opening directories. */
+ if (!traverse) {
+ flags |= FILE_FLAG_OPEN_REPARSE_POINT;
+ }
- hFile = CreateFileW(path, access, 0, NULL, OPEN_EXISTING, flags, NULL);
+ hFile = CreateFileW(path, access, 0, NULL, OPEN_EXISTING, flags, NULL);
if (hFile == INVALID_HANDLE_VALUE) {
- /* Either the path doesn't exist, or the caller lacks access. */
- error = GetLastError();
- switch (error) {
- case ERROR_ACCESS_DENIED: /* Cannot sync or read attributes. */
- case ERROR_SHARING_VIOLATION: /* It's a paging file. */
- /* Try reading the parent directory. */
- if (!attributes_from_dir(path, &fileInfo, &tagInfo.ReparseTag)) {
- /* Cannot read the parent directory. */
- SetLastError(error);
+ /* Either the path doesn't exist, or the caller lacks access. */
+ error = GetLastError();
+ switch (error) {
+ case ERROR_ACCESS_DENIED: /* Cannot sync or read attributes. */
+ case ERROR_SHARING_VIOLATION: /* It's a paging file. */
+ /* Try reading the parent directory. */
+ if (!attributes_from_dir(path, &fileInfo, &tagInfo.ReparseTag)) {
+ /* Cannot read the parent directory. */
+ SetLastError(error);
return -1;
}
- if (fileInfo.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
- if (traverse ||
- !IsReparseTagNameSurrogate(tagInfo.ReparseTag)) {
- /* The stat call has to traverse but cannot, so fail. */
- SetLastError(error);
- return -1;
- }
- }
- break;
-
- case ERROR_INVALID_PARAMETER:
- /* \\.\con requires read or write access. */
- hFile = CreateFileW(path, access | GENERIC_READ,
- FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
- OPEN_EXISTING, flags, NULL);
- if (hFile == INVALID_HANDLE_VALUE) {
- SetLastError(error);
+ if (fileInfo.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
+ if (traverse ||
+ !IsReparseTagNameSurrogate(tagInfo.ReparseTag)) {
+ /* The stat call has to traverse but cannot, so fail. */
+ SetLastError(error);
+ return -1;
+ }
+ }
+ break;
+
+ case ERROR_INVALID_PARAMETER:
+ /* \\.\con requires read or write access. */
+ hFile = CreateFileW(path, access | GENERIC_READ,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, flags, NULL);
+ if (hFile == INVALID_HANDLE_VALUE) {
+ SetLastError(error);
return -1;
}
- break;
+ break;
- case ERROR_CANT_ACCESS_FILE:
- /* bpo37834: open unhandled reparse points if traverse fails. */
+ case ERROR_CANT_ACCESS_FILE:
+ /* bpo37834: open unhandled reparse points if traverse fails. */
if (traverse) {
- traverse = FALSE;
- isUnhandledTag = TRUE;
- hFile = CreateFileW(path, access, 0, NULL, OPEN_EXISTING,
- flags | FILE_FLAG_OPEN_REPARSE_POINT, NULL);
- }
- if (hFile == INVALID_HANDLE_VALUE) {
- SetLastError(error);
- return -1;
- }
- break;
-
- default:
- return -1;
- }
- }
-
- if (hFile != INVALID_HANDLE_VALUE) {
- /* Handle types other than files on disk. */
- fileType = GetFileType(hFile);
- if (fileType != FILE_TYPE_DISK) {
- if (fileType == FILE_TYPE_UNKNOWN && GetLastError() != 0) {
- retval = -1;
- goto cleanup;
- }
- DWORD fileAttributes = GetFileAttributesW(path);
- memset(result, 0, sizeof(*result));
- if (fileAttributes != INVALID_FILE_ATTRIBUTES &&
- fileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
- /* \\.\pipe\ or \\.\mailslot\ */
- result->st_mode = _S_IFDIR;
- } else if (fileType == FILE_TYPE_CHAR) {
- /* \\.\nul */
- result->st_mode = _S_IFCHR;
- } else if (fileType == FILE_TYPE_PIPE) {
- /* \\.\pipe\spam */
- result->st_mode = _S_IFIFO;
- }
- /* FILE_TYPE_UNKNOWN, e.g. \\.\mailslot\waitfor.exe\spam */
- goto cleanup;
- }
-
- /* Query the reparse tag, and traverse a non-link. */
- if (!traverse) {
- if (!GetFileInformationByHandleEx(hFile, FileAttributeTagInfo,
- &tagInfo, sizeof(tagInfo))) {
- /* Allow devices that do not support FileAttributeTagInfo. */
- switch (GetLastError()) {
- case ERROR_INVALID_PARAMETER:
- case ERROR_INVALID_FUNCTION:
- case ERROR_NOT_SUPPORTED:
- tagInfo.FileAttributes = FILE_ATTRIBUTE_NORMAL;
- tagInfo.ReparseTag = 0;
- break;
- default:
- retval = -1;
- goto cleanup;
+ traverse = FALSE;
+ isUnhandledTag = TRUE;
+ hFile = CreateFileW(path, access, 0, NULL, OPEN_EXISTING,
+ flags | FILE_FLAG_OPEN_REPARSE_POINT, NULL);
+ }
+ if (hFile == INVALID_HANDLE_VALUE) {
+ SetLastError(error);
+ return -1;
+ }
+ break;
+
+ default:
+ return -1;
+ }
+ }
+
+ if (hFile != INVALID_HANDLE_VALUE) {
+ /* Handle types other than files on disk. */
+ fileType = GetFileType(hFile);
+ if (fileType != FILE_TYPE_DISK) {
+ if (fileType == FILE_TYPE_UNKNOWN && GetLastError() != 0) {
+ retval = -1;
+ goto cleanup;
+ }
+ DWORD fileAttributes = GetFileAttributesW(path);
+ memset(result, 0, sizeof(*result));
+ if (fileAttributes != INVALID_FILE_ATTRIBUTES &&
+ fileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+ /* \\.\pipe\ or \\.\mailslot\ */
+ result->st_mode = _S_IFDIR;
+ } else if (fileType == FILE_TYPE_CHAR) {
+ /* \\.\nul */
+ result->st_mode = _S_IFCHR;
+ } else if (fileType == FILE_TYPE_PIPE) {
+ /* \\.\pipe\spam */
+ result->st_mode = _S_IFIFO;
+ }
+ /* FILE_TYPE_UNKNOWN, e.g. \\.\mailslot\waitfor.exe\spam */
+ goto cleanup;
+ }
+
+ /* Query the reparse tag, and traverse a non-link. */
+ if (!traverse) {
+ if (!GetFileInformationByHandleEx(hFile, FileAttributeTagInfo,
+ &tagInfo, sizeof(tagInfo))) {
+ /* Allow devices that do not support FileAttributeTagInfo. */
+ switch (GetLastError()) {
+ case ERROR_INVALID_PARAMETER:
+ case ERROR_INVALID_FUNCTION:
+ case ERROR_NOT_SUPPORTED:
+ tagInfo.FileAttributes = FILE_ATTRIBUTE_NORMAL;
+ tagInfo.ReparseTag = 0;
+ break;
+ default:
+ retval = -1;
+ goto cleanup;
+ }
+ } else if (tagInfo.FileAttributes &
+ FILE_ATTRIBUTE_REPARSE_POINT) {
+ if (IsReparseTagNameSurrogate(tagInfo.ReparseTag)) {
+ if (isUnhandledTag) {
+ /* Traversing previously failed for either this link
+ or its target. */
+ SetLastError(ERROR_CANT_ACCESS_FILE);
+ retval = -1;
+ goto cleanup;
+ }
+ /* Traverse a non-link, but not if traversing already failed
+ for an unhandled tag. */
+ } else if (!isUnhandledTag) {
+ CloseHandle(hFile);
+ return win32_xstat_impl(path, result, TRUE);
}
- } else if (tagInfo.FileAttributes &
- FILE_ATTRIBUTE_REPARSE_POINT) {
- if (IsReparseTagNameSurrogate(tagInfo.ReparseTag)) {
- if (isUnhandledTag) {
- /* Traversing previously failed for either this link
- or its target. */
- SetLastError(ERROR_CANT_ACCESS_FILE);
- retval = -1;
- goto cleanup;
- }
- /* Traverse a non-link, but not if traversing already failed
- for an unhandled tag. */
- } else if (!isUnhandledTag) {
- CloseHandle(hFile);
- return win32_xstat_impl(path, result, TRUE);
- }
- }
- }
-
- if (!GetFileInformationByHandle(hFile, &fileInfo)) {
- switch (GetLastError()) {
- case ERROR_INVALID_PARAMETER:
- case ERROR_INVALID_FUNCTION:
- case ERROR_NOT_SUPPORTED:
- /* Volumes and physical disks are block devices, e.g.
- \\.\C: and \\.\PhysicalDrive0. */
- memset(result, 0, sizeof(*result));
- result->st_mode = 0x6000; /* S_IFBLK */
- goto cleanup;
}
- retval = -1;
- goto cleanup;
- }
- }
-
- _Py_attribute_data_to_stat(&fileInfo, tagInfo.ReparseTag, result);
-
- if (!(fileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
- /* Fix the file execute permissions. This hack sets S_IEXEC if
- the filename has an extension that is commonly used by files
- that CreateProcessW can execute. A real implementation calls
- GetSecurityInfo, OpenThreadToken/OpenProcessToken, and
- AccessCheck to check for generic read, write, and execute
- access. */
- const wchar_t *fileExtension = wcsrchr(path, '.');
- if (fileExtension) {
- if (_wcsicmp(fileExtension, L".exe") == 0 ||
- _wcsicmp(fileExtension, L".bat") == 0 ||
- _wcsicmp(fileExtension, L".cmd") == 0 ||
- _wcsicmp(fileExtension, L".com") == 0) {
- result->st_mode |= 0111;
- }
- }
- }
-
-cleanup:
- if (hFile != INVALID_HANDLE_VALUE) {
- /* Preserve last error if we are failing */
- error = retval ? GetLastError() : 0;
- if (!CloseHandle(hFile)) {
- retval = -1;
- } else if (retval) {
- /* Restore last error */
- SetLastError(error);
- }
- }
-
- return retval;
+ }
+
+ if (!GetFileInformationByHandle(hFile, &fileInfo)) {
+ switch (GetLastError()) {
+ case ERROR_INVALID_PARAMETER:
+ case ERROR_INVALID_FUNCTION:
+ case ERROR_NOT_SUPPORTED:
+ /* Volumes and physical disks are block devices, e.g.
+ \\.\C: and \\.\PhysicalDrive0. */
+ memset(result, 0, sizeof(*result));
+ result->st_mode = 0x6000; /* S_IFBLK */
+ goto cleanup;
+ }
+ retval = -1;
+ goto cleanup;
+ }
+ }
+
+ _Py_attribute_data_to_stat(&fileInfo, tagInfo.ReparseTag, result);
+
+ if (!(fileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
+ /* Fix the file execute permissions. This hack sets S_IEXEC if
+ the filename has an extension that is commonly used by files
+ that CreateProcessW can execute. A real implementation calls
+ GetSecurityInfo, OpenThreadToken/OpenProcessToken, and
+ AccessCheck to check for generic read, write, and execute
+ access. */
+ const wchar_t *fileExtension = wcsrchr(path, '.');
+ if (fileExtension) {
+ if (_wcsicmp(fileExtension, L".exe") == 0 ||
+ _wcsicmp(fileExtension, L".bat") == 0 ||
+ _wcsicmp(fileExtension, L".cmd") == 0 ||
+ _wcsicmp(fileExtension, L".com") == 0) {
+ result->st_mode |= 0111;
+ }
+ }
+ }
+
+cleanup:
+ if (hFile != INVALID_HANDLE_VALUE) {
+ /* Preserve last error if we are failing */
+ error = retval ? GetLastError() : 0;
+ if (!CloseHandle(hFile)) {
+ retval = -1;
+ } else if (retval) {
+ /* Restore last error */
+ SetLastError(error);
+ }
+ }
+
+ return retval;
}
static int
@@ -2024,8 +2024,8 @@ win32_xstat(const wchar_t *path, struct _Py_stat_struct *result, BOOL traverse)
default does not traverse symlinks and instead returns attributes for
the symlink.
- Instead, we will open the file (which *does* traverse symlinks by default)
- and GetFileInformationByHandle(). */
+ Instead, we will open the file (which *does* traverse symlinks by default)
+ and GetFileInformationByHandle(). */
static int
win32_lstat(const wchar_t* path, struct _Py_stat_struct *result)
@@ -2094,9 +2094,9 @@ static PyStructSequence_Field stat_result_fields[] = {
#ifdef HAVE_STRUCT_STAT_ST_FSTYPE
{"st_fstype", "Type of filesystem"},
#endif
-#ifdef HAVE_STRUCT_STAT_ST_REPARSE_TAG
- {"st_reparse_tag", "Windows reparse tag"},
-#endif
+#ifdef HAVE_STRUCT_STAT_ST_REPARSE_TAG
+ {"st_reparse_tag", "Windows reparse tag"},
+#endif
{0}
};
@@ -2148,12 +2148,12 @@ static PyStructSequence_Field stat_result_fields[] = {
#define ST_FSTYPE_IDX ST_FILE_ATTRIBUTES_IDX
#endif
-#ifdef HAVE_STRUCT_STAT_ST_REPARSE_TAG
-#define ST_REPARSE_TAG_IDX (ST_FSTYPE_IDX+1)
-#else
-#define ST_REPARSE_TAG_IDX ST_FSTYPE_IDX
-#endif
-
+#ifdef HAVE_STRUCT_STAT_ST_REPARSE_TAG
+#define ST_REPARSE_TAG_IDX (ST_FSTYPE_IDX+1)
+#else
+#define ST_REPARSE_TAG_IDX ST_FSTYPE_IDX
+#endif
+
static PyStructSequence_Desc stat_result_desc = {
"stat_result", /* name */
stat_result__doc__, /* doc */
@@ -2240,65 +2240,65 @@ statresult_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return (PyObject*)result;
}
-static int
-_posix_clear(PyObject *module)
-{
- _posixstate *state = get_posix_state(module);
- Py_CLEAR(state->billion);
- Py_CLEAR(state->DirEntryType);
- Py_CLEAR(state->ScandirIteratorType);
-#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
- Py_CLEAR(state->SchedParamType);
-#endif
- Py_CLEAR(state->StatResultType);
- Py_CLEAR(state->StatVFSResultType);
- Py_CLEAR(state->TerminalSizeType);
- Py_CLEAR(state->TimesResultType);
- Py_CLEAR(state->UnameResultType);
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
- Py_CLEAR(state->WaitidResultType);
-#endif
-#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
- Py_CLEAR(state->struct_rusage);
-#endif
- Py_CLEAR(state->st_mode);
- return 0;
-}
-
-static int
-_posix_traverse(PyObject *module, visitproc visit, void *arg)
-{
- _posixstate *state = get_posix_state(module);
- Py_VISIT(state->billion);
- Py_VISIT(state->DirEntryType);
- Py_VISIT(state->ScandirIteratorType);
-#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
- Py_VISIT(state->SchedParamType);
-#endif
- Py_VISIT(state->StatResultType);
- Py_VISIT(state->StatVFSResultType);
- Py_VISIT(state->TerminalSizeType);
- Py_VISIT(state->TimesResultType);
- Py_VISIT(state->UnameResultType);
-#if defined(HAVE_WAITID) && !defined(__APPLE__)
- Py_VISIT(state->WaitidResultType);
-#endif
-#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
- Py_VISIT(state->struct_rusage);
-#endif
- Py_VISIT(state->st_mode);
- return 0;
-}
+static int
+_posix_clear(PyObject *module)
+{
+ _posixstate *state = get_posix_state(module);
+ Py_CLEAR(state->billion);
+ Py_CLEAR(state->DirEntryType);
+ Py_CLEAR(state->ScandirIteratorType);
+#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
+ Py_CLEAR(state->SchedParamType);
+#endif
+ Py_CLEAR(state->StatResultType);
+ Py_CLEAR(state->StatVFSResultType);
+ Py_CLEAR(state->TerminalSizeType);
+ Py_CLEAR(state->TimesResultType);
+ Py_CLEAR(state->UnameResultType);
+#if defined(HAVE_WAITID) && !defined(__APPLE__)
+ Py_CLEAR(state->WaitidResultType);
+#endif
+#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
+ Py_CLEAR(state->struct_rusage);
+#endif
+ Py_CLEAR(state->st_mode);
+ return 0;
+}
+
+static int
+_posix_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ _posixstate *state = get_posix_state(module);
+ Py_VISIT(state->billion);
+ Py_VISIT(state->DirEntryType);
+ Py_VISIT(state->ScandirIteratorType);
+#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
+ Py_VISIT(state->SchedParamType);
+#endif
+ Py_VISIT(state->StatResultType);
+ Py_VISIT(state->StatVFSResultType);
+ Py_VISIT(state->TerminalSizeType);
+ Py_VISIT(state->TimesResultType);
+ Py_VISIT(state->UnameResultType);
+#if defined(HAVE_WAITID) && !defined(__APPLE__)
+ Py_VISIT(state->WaitidResultType);
+#endif
+#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
+ Py_VISIT(state->struct_rusage);
+#endif
+ Py_VISIT(state->st_mode);
+ return 0;
+}
+
+static void
+_posix_free(void *module)
+{
+ _posix_clear((PyObject *)module);
+}
static void
-_posix_free(void *module)
-{
- _posix_clear((PyObject *)module);
-}
-
-static void
-fill_time(PyObject *module, PyObject *v, int index, time_t sec, unsigned long nsec)
-{
+fill_time(PyObject *module, PyObject *v, int index, time_t sec, unsigned long nsec)
+{
PyObject *s = _PyLong_FromTime_t(sec);
PyObject *ns_fractional = PyLong_FromUnsignedLong(nsec);
PyObject *s_in_ns = NULL;
@@ -2308,7 +2308,7 @@ fill_time(PyObject *module, PyObject *v, int index, time_t sec, unsigned long ns
if (!(s && ns_fractional))
goto exit;
- s_in_ns = PyNumber_Multiply(s, get_posix_state(module)->billion);
+ s_in_ns = PyNumber_Multiply(s, get_posix_state(module)->billion);
if (!s_in_ns)
goto exit;
@@ -2338,11 +2338,11 @@ exit:
/* pack a system stat C structure into the Python stat tuple
(used by posix_stat() and posix_fstat()) */
static PyObject*
-_pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)
+_pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)
{
unsigned long ansec, mnsec, cnsec;
- PyObject *StatResultType = get_posix_state(module)->StatResultType;
- PyObject *v = PyStructSequence_New((PyTypeObject *)StatResultType);
+ PyObject *StatResultType = get_posix_state(module)->StatResultType;
+ PyObject *v = PyStructSequence_New((PyTypeObject *)StatResultType);
if (v == NULL)
return NULL;
@@ -2380,9 +2380,9 @@ _pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)
#else
ansec = mnsec = cnsec = 0;
#endif
- fill_time(module, v, 7, st->st_atime, ansec);
- fill_time(module, v, 8, st->st_mtime, mnsec);
- fill_time(module, v, 9, st->st_ctime, cnsec);
+ fill_time(module, v, 7, st->st_atime, ansec);
+ fill_time(module, v, 8, st->st_mtime, mnsec);
+ fill_time(module, v, 9, st->st_ctime, cnsec);
#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
PyStructSequence_SET_ITEM(v, ST_BLKSIZE_IDX,
@@ -2427,10 +2427,10 @@ _pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)
PyStructSequence_SET_ITEM(v, ST_FSTYPE_IDX,
PyUnicode_FromString(st->st_fstype));
#endif
-#ifdef HAVE_STRUCT_STAT_ST_REPARSE_TAG
- PyStructSequence_SET_ITEM(v, ST_REPARSE_TAG_IDX,
- PyLong_FromUnsignedLong(st->st_reparse_tag));
-#endif
+#ifdef HAVE_STRUCT_STAT_ST_REPARSE_TAG
+ PyStructSequence_SET_ITEM(v, ST_REPARSE_TAG_IDX,
+ PyLong_FromUnsignedLong(st->st_reparse_tag));
+#endif
if (PyErr_Occurred()) {
Py_DECREF(v);
@@ -2444,16 +2444,16 @@ _pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)
static PyObject *
-posix_do_stat(PyObject *module, const char *function_name, path_t *path,
+posix_do_stat(PyObject *module, const char *function_name, path_t *path,
int dir_fd, int follow_symlinks)
{
STRUCT_STAT st;
int result;
-#ifdef HAVE_FSTATAT
- int fstatat_unavailable = 0;
-#endif
-
+#ifdef HAVE_FSTATAT
+ int fstatat_unavailable = 0;
+#endif
+
#if !defined(MS_WINDOWS) && !defined(HAVE_FSTATAT) && !defined(HAVE_LSTAT)
if (follow_symlinks_specified(function_name, follow_symlinks))
return NULL;
@@ -2480,32 +2480,32 @@ posix_do_stat(PyObject *module, const char *function_name, path_t *path,
else
#endif /* HAVE_LSTAT */
#ifdef HAVE_FSTATAT
- if ((dir_fd != DEFAULT_DIR_FD) || !follow_symlinks) {
- if (HAVE_FSTATAT_RUNTIME) {
- result = fstatat(dir_fd, path->narrow, &st,
+ if ((dir_fd != DEFAULT_DIR_FD) || !follow_symlinks) {
+ if (HAVE_FSTATAT_RUNTIME) {
+ result = fstatat(dir_fd, path->narrow, &st,
follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW);
-
- } else {
- fstatat_unavailable = 1;
- }
- } else
+
+ } else {
+ fstatat_unavailable = 1;
+ }
+ } else
#endif /* HAVE_FSTATAT */
result = STAT(path->narrow, &st);
#endif /* MS_WINDOWS */
Py_END_ALLOW_THREADS
-#ifdef HAVE_FSTATAT
- if (fstatat_unavailable) {
- argument_unavailable_error("stat", "dir_fd");
- return NULL;
- }
-#endif
-
+#ifdef HAVE_FSTATAT
+ if (fstatat_unavailable) {
+ argument_unavailable_error("stat", "dir_fd");
+ return NULL;
+ }
+#endif
+
if (result != 0) {
return path_error(path);
}
- return _pystat_fromstructstat(module, &st);
+ return _pystat_fromstructstat(module, &st);
}
/*[python input]
@@ -2801,7 +2801,7 @@ class sysconf_confname_converter(path_confname_converter):
converter="conv_sysconf_confname"
[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=f1c8ae8d744f6c8b]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=f1c8ae8d744f6c8b]*/
/*[clinic input]
@@ -2838,7 +2838,7 @@ static PyObject *
os_stat_impl(PyObject *module, path_t *path, int dir_fd, int follow_symlinks)
/*[clinic end generated code: output=7d4976e6f18a59c5 input=01d362ebcc06996b]*/
{
- return posix_do_stat(module, "stat", path, dir_fd, follow_symlinks);
+ return posix_do_stat(module, "stat", path, dir_fd, follow_symlinks);
}
@@ -2862,7 +2862,7 @@ os_lstat_impl(PyObject *module, path_t *path, int dir_fd)
/*[clinic end generated code: output=ef82a5d35ce8ab37 input=0b7474765927b925]*/
{
int follow_symlinks = 0;
- return posix_do_stat(module, "lstat", path, dir_fd, follow_symlinks);
+ return posix_do_stat(module, "lstat", path, dir_fd, follow_symlinks);
}
@@ -2918,10 +2918,10 @@ os_access_impl(PyObject *module, path_t *path, int mode, int dir_fd,
int result;
#endif
-#ifdef HAVE_FACCESSAT
- int faccessat_unavailable = 0;
-#endif
-
+#ifdef HAVE_FACCESSAT
+ int faccessat_unavailable = 0;
+#endif
+
#ifndef HAVE_FACCESSAT
if (follow_symlinks_specified("access", follow_symlinks))
return -1;
@@ -2956,40 +2956,40 @@ os_access_impl(PyObject *module, path_t *path, int mode, int dir_fd,
if ((dir_fd != DEFAULT_DIR_FD) ||
effective_ids ||
!follow_symlinks) {
-
- if (HAVE_FACCESSAT_RUNTIME) {
- int flags = 0;
- if (!follow_symlinks)
- flags |= AT_SYMLINK_NOFOLLOW;
- if (effective_ids)
- flags |= AT_EACCESS;
- result = faccessat(dir_fd, path->narrow, mode, flags);
- } else {
- faccessat_unavailable = 1;
- }
+
+ if (HAVE_FACCESSAT_RUNTIME) {
+ int flags = 0;
+ if (!follow_symlinks)
+ flags |= AT_SYMLINK_NOFOLLOW;
+ if (effective_ids)
+ flags |= AT_EACCESS;
+ result = faccessat(dir_fd, path->narrow, mode, flags);
+ } else {
+ faccessat_unavailable = 1;
+ }
}
else
#endif
result = access(path->narrow, mode);
Py_END_ALLOW_THREADS
-
-#ifdef HAVE_FACCESSAT
- if (faccessat_unavailable) {
- if (dir_fd != DEFAULT_DIR_FD) {
- argument_unavailable_error("access", "dir_fd");
- return -1;
- }
- if (follow_symlinks_specified("access", follow_symlinks))
- return -1;
-
- if (effective_ids) {
- argument_unavailable_error("access", "effective_ids");
- return -1;
- }
- /* should be unreachable */
- return -1;
- }
-#endif
+
+#ifdef HAVE_FACCESSAT
+ if (faccessat_unavailable) {
+ if (dir_fd != DEFAULT_DIR_FD) {
+ argument_unavailable_error("access", "dir_fd");
+ return -1;
+ }
+ if (follow_symlinks_specified("access", follow_symlinks))
+ return -1;
+
+ if (effective_ids) {
+ argument_unavailable_error("access", "effective_ids");
+ return -1;
+ }
+ /* should be unreachable */
+ return -1;
+ }
+#endif
return_value = !result;
#endif
@@ -3012,7 +3012,7 @@ os_access_impl(PyObject *module, path_t *path, int mode, int dir_fd,
#ifdef HAVE_TTYNAME
/*[clinic input]
-os.ttyname
+os.ttyname
fd: int
Integer file descriptor handle.
@@ -3022,28 +3022,28 @@ os.ttyname
Return the name of the terminal device connected to 'fd'.
[clinic start generated code]*/
-static PyObject *
+static PyObject *
os_ttyname_impl(PyObject *module, int fd)
-/*[clinic end generated code: output=c424d2e9d1cd636a input=9ff5a58b08115c55]*/
+/*[clinic end generated code: output=c424d2e9d1cd636a input=9ff5a58b08115c55]*/
{
- long size = sysconf(_SC_TTY_NAME_MAX);
- if (size == -1) {
- return posix_error();
- }
- char *buffer = (char *)PyMem_RawMalloc(size);
- if (buffer == NULL) {
- return PyErr_NoMemory();
- }
- int ret = ttyname_r(fd, buffer, size);
- if (ret != 0) {
- PyMem_RawFree(buffer);
- errno = ret;
- return posix_error();
- }
- PyObject *res = PyUnicode_DecodeFSDefault(buffer);
- PyMem_RawFree(buffer);
- return res;
+ long size = sysconf(_SC_TTY_NAME_MAX);
+ if (size == -1) {
+ return posix_error();
+ }
+ char *buffer = (char *)PyMem_RawMalloc(size);
+ if (buffer == NULL) {
+ return PyErr_NoMemory();
+ }
+ int ret = ttyname_r(fd, buffer, size);
+ if (ret != 0) {
+ PyMem_RawFree(buffer);
+ errno = ret;
+ return posix_error();
+ }
+ PyObject *res = PyUnicode_DecodeFSDefault(buffer);
+ PyMem_RawFree(buffer);
+ return res;
}
#endif
@@ -3091,10 +3091,10 @@ os_chdir_impl(PyObject *module, path_t *path)
{
int result;
- if (PySys_Audit("os.chdir", "(O)", path->object) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.chdir", "(O)", path->object) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
#ifdef MS_WINDOWS
/* on unix, success = 0, on windows, success = !0 */
@@ -3134,9 +3134,9 @@ static PyObject *
os_fchdir_impl(PyObject *module, int fd)
/*[clinic end generated code: output=42e064ec4dc00ab0 input=18e816479a2fa985]*/
{
- if (PySys_Audit("os.chdir", "(i)", fd) < 0) {
- return NULL;
- }
+ if (PySys_Audit("os.chdir", "(i)", fd) < 0) {
+ return NULL;
+ }
return posix_fildes_fd(fd, fchdir);
}
#endif /* HAVE_FCHDIR */
@@ -3187,7 +3187,7 @@ os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd,
#ifdef HAVE_FCHMODAT
int fchmodat_nofollow_unsupported = 0;
- int fchmodat_unsupported = 0;
+ int fchmodat_unsupported = 0;
#endif
#if !(defined(HAVE_FCHMODAT) || defined(HAVE_LCHMOD))
@@ -3195,11 +3195,11 @@ os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd,
return NULL;
#endif
- if (PySys_Audit("os.chmod", "Oii", path->object, mode,
- dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.chmod", "Oii", path->object, mode,
+ dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
+ return NULL;
+ }
+
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
attr = GetFileAttributesW(path->wide);
@@ -3223,56 +3223,56 @@ os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd,
if (path->fd != -1)
result = fchmod(path->fd, mode);
else
-#endif /* HAVE_CHMOD */
+#endif /* HAVE_CHMOD */
#ifdef HAVE_LCHMOD
if ((!follow_symlinks) && (dir_fd == DEFAULT_DIR_FD))
result = lchmod(path->narrow, mode);
else
-#endif /* HAVE_LCHMOD */
+#endif /* HAVE_LCHMOD */
#ifdef HAVE_FCHMODAT
if ((dir_fd != DEFAULT_DIR_FD) || !follow_symlinks) {
- if (HAVE_FCHMODAT_RUNTIME) {
- /*
- * fchmodat() doesn't currently support AT_SYMLINK_NOFOLLOW!
- * The documentation specifically shows how to use it,
- * and then says it isn't implemented yet.
- * (true on linux with glibc 2.15, and openindiana 3.x)
- *
- * Once it is supported, os.chmod will automatically
- * support dir_fd and follow_symlinks=False. (Hopefully.)
- * Until then, we need to be careful what exception we raise.
- */
- result = fchmodat(dir_fd, path->narrow, mode,
- follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW);
- /*
- * But wait! We can't throw the exception without allowing threads,
- * and we can't do that in this nested scope. (Macro trickery, sigh.)
- */
- fchmodat_nofollow_unsupported =
- result &&
- ((errno == ENOTSUP) || (errno == EOPNOTSUPP)) &&
- !follow_symlinks;
- } else {
- fchmodat_unsupported = 1;
- fchmodat_nofollow_unsupported = 1;
-
- result = -1;
- }
+ if (HAVE_FCHMODAT_RUNTIME) {
+ /*
+ * fchmodat() doesn't currently support AT_SYMLINK_NOFOLLOW!
+ * The documentation specifically shows how to use it,
+ * and then says it isn't implemented yet.
+ * (true on linux with glibc 2.15, and openindiana 3.x)
+ *
+ * Once it is supported, os.chmod will automatically
+ * support dir_fd and follow_symlinks=False. (Hopefully.)
+ * Until then, we need to be careful what exception we raise.
+ */
+ result = fchmodat(dir_fd, path->narrow, mode,
+ follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW);
+ /*
+ * But wait! We can't throw the exception without allowing threads,
+ * and we can't do that in this nested scope. (Macro trickery, sigh.)
+ */
+ fchmodat_nofollow_unsupported =
+ result &&
+ ((errno == ENOTSUP) || (errno == EOPNOTSUPP)) &&
+ !follow_symlinks;
+ } else {
+ fchmodat_unsupported = 1;
+ fchmodat_nofollow_unsupported = 1;
+
+ result = -1;
+ }
}
else
-#endif /* HAVE_FHCMODAT */
+#endif /* HAVE_FHCMODAT */
result = chmod(path->narrow, mode);
Py_END_ALLOW_THREADS
if (result) {
#ifdef HAVE_FCHMODAT
- if (fchmodat_unsupported) {
- if (dir_fd != DEFAULT_DIR_FD) {
- argument_unavailable_error("chmod", "dir_fd");
- return NULL;
- }
- }
-
+ if (fchmodat_unsupported) {
+ if (dir_fd != DEFAULT_DIR_FD) {
+ argument_unavailable_error("chmod", "dir_fd");
+ return NULL;
+ }
+ }
+
if (fchmodat_nofollow_unsupported) {
if (dir_fd != DEFAULT_DIR_FD)
dir_fd_and_follow_symlinks_invalid("chmod",
@@ -3282,10 +3282,10 @@ os_chmod_impl(PyObject *module, path_t *path, int mode, int dir_fd,
return NULL;
}
else
-#endif /* HAVE_FCHMODAT */
+#endif /* HAVE_FCHMODAT */
return path_error(path);
}
-#endif /* MS_WINDOWS */
+#endif /* MS_WINDOWS */
Py_RETURN_NONE;
}
@@ -3310,10 +3310,10 @@ os_fchmod_impl(PyObject *module, int fd, int mode)
int res;
int async_err = 0;
- if (PySys_Audit("os.chmod", "iii", fd, mode, -1) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.chmod", "iii", fd, mode, -1) < 0) {
+ return NULL;
+ }
+
do {
Py_BEGIN_ALLOW_THREADS
res = fchmod(fd, mode);
@@ -3345,9 +3345,9 @@ os_lchmod_impl(PyObject *module, path_t *path, int mode)
/*[clinic end generated code: output=082344022b51a1d5 input=90c5663c7465d24f]*/
{
int res;
- if (PySys_Audit("os.chmod", "Oii", path->object, mode, -1) < 0) {
- return NULL;
- }
+ if (PySys_Audit("os.chmod", "Oii", path->object, mode, -1) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
res = lchmod(path->narrow, mode);
Py_END_ALLOW_THREADS
@@ -3390,10 +3390,10 @@ os_chflags_impl(PyObject *module, path_t *path, unsigned long flags,
return NULL;
#endif
- if (PySys_Audit("os.chflags", "Ok", path->object, flags) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.chflags", "Ok", path->object, flags) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_LCHFLAGS
if (!follow_symlinks)
@@ -3429,9 +3429,9 @@ os_lchflags_impl(PyObject *module, path_t *path, unsigned long flags)
/*[clinic end generated code: output=30ae958695c07316 input=f9f82ea8b585ca9d]*/
{
int res;
- if (PySys_Audit("os.chflags", "Ok", path->object, flags) < 0) {
- return NULL;
- }
+ if (PySys_Audit("os.chflags", "Ok", path->object, flags) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
res = lchflags(path->narrow, flags);
Py_END_ALLOW_THREADS
@@ -3573,10 +3573,10 @@ os_chown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid,
{
int result;
-#if defined(HAVE_FCHOWNAT)
- int fchownat_unsupported = 0;
-#endif
-
+#if defined(HAVE_FCHOWNAT)
+ int fchownat_unsupported = 0;
+#endif
+
#if !(defined(HAVE_LCHOWN) || defined(HAVE_FCHOWNAT))
if (follow_symlinks_specified("chown", follow_symlinks))
return NULL;
@@ -3585,11 +3585,11 @@ os_chown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid,
fd_and_follow_symlinks_invalid("chown", path->fd, follow_symlinks))
return NULL;
- if (PySys_Audit("os.chown", "OIIi", path->object, uid, gid,
- dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.chown", "OIIi", path->object, uid, gid,
+ dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_FCHOWN
if (path->fd != -1)
@@ -3602,28 +3602,28 @@ os_chown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid,
else
#endif
#ifdef HAVE_FCHOWNAT
- if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) {
- if (HAVE_FCHOWNAT_RUNTIME) {
+ if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) {
+ if (HAVE_FCHOWNAT_RUNTIME) {
result = fchownat(dir_fd, path->narrow, uid, gid,
follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW);
- } else {
- fchownat_unsupported = 1;
- }
- } else
+ } else {
+ fchownat_unsupported = 1;
+ }
+ } else
#endif
result = chown(path->narrow, uid, gid);
Py_END_ALLOW_THREADS
-#ifdef HAVE_FCHOWNAT
- if (fchownat_unsupported) {
- /* This would be incorrect if the current platform
- * doesn't support lchown.
- */
- argument_unavailable_error(NULL, "dir_fd");
- return NULL;
- }
-#endif
-
+#ifdef HAVE_FCHOWNAT
+ if (fchownat_unsupported) {
+ /* This would be incorrect if the current platform
+ * doesn't support lchown.
+ */
+ argument_unavailable_error(NULL, "dir_fd");
+ return NULL;
+ }
+#endif
+
if (result)
return path_error(path);
@@ -3653,10 +3653,10 @@ os_fchown_impl(PyObject *module, int fd, uid_t uid, gid_t gid)
int res;
int async_err = 0;
- if (PySys_Audit("os.chown", "iIIi", fd, uid, gid, -1) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.chown", "iIIi", fd, uid, gid, -1) < 0) {
+ return NULL;
+ }
+
do {
Py_BEGIN_ALLOW_THREADS
res = fchown(fd, uid, gid);
@@ -3689,9 +3689,9 @@ os_lchown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid)
/*[clinic end generated code: output=25eaf6af412fdf2f input=b1c6014d563a7161]*/
{
int res;
- if (PySys_Audit("os.chown", "OIIi", path->object, uid, gid, -1) < 0) {
- return NULL;
- }
+ if (PySys_Audit("os.chown", "OIIi", path->object, uid, gid, -1) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
res = lchown(path->narrow, uid, gid);
Py_END_ALLOW_THREADS
@@ -3706,99 +3706,99 @@ os_lchown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid)
static PyObject *
posix_getcwd(int use_bytes)
{
-#ifdef MS_WINDOWS
- wchar_t wbuf[MAXPATHLEN];
- wchar_t *wbuf2 = wbuf;
- DWORD len;
-
- Py_BEGIN_ALLOW_THREADS
- len = GetCurrentDirectoryW(Py_ARRAY_LENGTH(wbuf), wbuf);
- /* If the buffer is large enough, len does not include the
- terminating \0. If the buffer is too small, len includes
- the space needed for the terminator. */
- if (len >= Py_ARRAY_LENGTH(wbuf)) {
- if (len <= PY_SSIZE_T_MAX / sizeof(wchar_t)) {
+#ifdef MS_WINDOWS
+ wchar_t wbuf[MAXPATHLEN];
+ wchar_t *wbuf2 = wbuf;
+ DWORD len;
+
+ Py_BEGIN_ALLOW_THREADS
+ len = GetCurrentDirectoryW(Py_ARRAY_LENGTH(wbuf), wbuf);
+ /* If the buffer is large enough, len does not include the
+ terminating \0. If the buffer is too small, len includes
+ the space needed for the terminator. */
+ if (len >= Py_ARRAY_LENGTH(wbuf)) {
+ if (len <= PY_SSIZE_T_MAX / sizeof(wchar_t)) {
wbuf2 = PyMem_RawMalloc(len * sizeof(wchar_t));
}
- else {
- wbuf2 = NULL;
+ else {
+ wbuf2 = NULL;
}
- if (wbuf2) {
- len = GetCurrentDirectoryW(len, wbuf2);
+ if (wbuf2) {
+ len = GetCurrentDirectoryW(len, wbuf2);
}
- }
- Py_END_ALLOW_THREADS
-
- if (!wbuf2) {
- PyErr_NoMemory();
- return NULL;
- }
- if (!len) {
+ }
+ Py_END_ALLOW_THREADS
+
+ if (!wbuf2) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ if (!len) {
if (wbuf2 != wbuf)
PyMem_RawFree(wbuf2);
- return PyErr_SetFromWindowsErr(0);
- }
-
- PyObject *resobj = PyUnicode_FromWideChar(wbuf2, len);
- if (wbuf2 != wbuf) {
- PyMem_RawFree(wbuf2);
- }
-
- if (use_bytes) {
- if (resobj == NULL) {
- return NULL;
- }
- Py_SETREF(resobj, PyUnicode_EncodeFSDefault(resobj));
- }
-
- return resobj;
-#else
- const size_t chunk = 1024;
-
- char *buf = NULL;
- char *cwd = NULL;
- size_t buflen = 0;
-
+ return PyErr_SetFromWindowsErr(0);
+ }
+
+ PyObject *resobj = PyUnicode_FromWideChar(wbuf2, len);
+ if (wbuf2 != wbuf) {
+ PyMem_RawFree(wbuf2);
+ }
+
+ if (use_bytes) {
+ if (resobj == NULL) {
+ return NULL;
+ }
+ Py_SETREF(resobj, PyUnicode_EncodeFSDefault(resobj));
+ }
+
+ return resobj;
+#else
+ const size_t chunk = 1024;
+
+ char *buf = NULL;
+ char *cwd = NULL;
+ size_t buflen = 0;
+
Py_BEGIN_ALLOW_THREADS
do {
- char *newbuf;
- if (buflen <= PY_SSIZE_T_MAX - chunk) {
- buflen += chunk;
- newbuf = PyMem_RawRealloc(buf, buflen);
- }
- else {
- newbuf = NULL;
- }
- if (newbuf == NULL) {
- PyMem_RawFree(buf);
- buf = NULL;
+ char *newbuf;
+ if (buflen <= PY_SSIZE_T_MAX - chunk) {
+ buflen += chunk;
+ newbuf = PyMem_RawRealloc(buf, buflen);
+ }
+ else {
+ newbuf = NULL;
+ }
+ if (newbuf == NULL) {
+ PyMem_RawFree(buf);
+ buf = NULL;
break;
}
- buf = newbuf;
+ buf = newbuf;
cwd = getcwd(buf, buflen);
} while (cwd == NULL && errno == ERANGE);
Py_END_ALLOW_THREADS
- if (buf == NULL) {
- return PyErr_NoMemory();
- }
+ if (buf == NULL) {
+ return PyErr_NoMemory();
+ }
if (cwd == NULL) {
PyMem_RawFree(buf);
return posix_error();
}
- PyObject *obj;
- if (use_bytes) {
+ PyObject *obj;
+ if (use_bytes) {
obj = PyBytes_FromStringAndSize(buf, strlen(buf));
- }
- else {
+ }
+ else {
obj = PyUnicode_DecodeFSDefault(buf);
- }
+ }
PyMem_RawFree(buf);
return obj;
-#endif /* !MS_WINDOWS */
+#endif /* !MS_WINDOWS */
}
@@ -3869,9 +3869,9 @@ os_link_impl(PyObject *module, path_t *src, path_t *dst, int src_dir_fd,
#else
int result;
#endif
-#if defined(HAVE_LINKAT)
- int linkat_unavailable = 0;
-#endif
+#if defined(HAVE_LINKAT)
+ int linkat_unavailable = 0;
+#endif
#ifndef HAVE_LINKAT
if ((src_dir_fd != DEFAULT_DIR_FD) || (dst_dir_fd != DEFAULT_DIR_FD)) {
@@ -3888,12 +3888,12 @@ os_link_impl(PyObject *module, path_t *src, path_t *dst, int src_dir_fd,
}
#endif
- if (PySys_Audit("os.link", "OOii", src->object, dst->object,
- src_dir_fd == DEFAULT_DIR_FD ? -1 : src_dir_fd,
- dst_dir_fd == DEFAULT_DIR_FD ? -1 : dst_dir_fd) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.link", "OOii", src->object, dst->object,
+ src_dir_fd == DEFAULT_DIR_FD ? -1 : src_dir_fd,
+ dst_dir_fd == DEFAULT_DIR_FD ? -1 : dst_dir_fd) < 0) {
+ return NULL;
+ }
+
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
result = CreateHardLinkW(dst->wide, src->wide, NULL);
@@ -3906,43 +3906,43 @@ os_link_impl(PyObject *module, path_t *src, path_t *dst, int src_dir_fd,
#ifdef HAVE_LINKAT
if ((src_dir_fd != DEFAULT_DIR_FD) ||
(dst_dir_fd != DEFAULT_DIR_FD) ||
- (!follow_symlinks)) {
-
- if (HAVE_LINKAT_RUNTIME) {
-
- result = linkat(src_dir_fd, src->narrow,
- dst_dir_fd, dst->narrow,
- follow_symlinks ? AT_SYMLINK_FOLLOW : 0);
-
- }
-#ifdef __APPLE__
- else {
- if (src_dir_fd == DEFAULT_DIR_FD && dst_dir_fd == DEFAULT_DIR_FD) {
- /* See issue 41355: This matches the behaviour of !HAVE_LINKAT */
- result = link(src->narrow, dst->narrow);
- } else {
- linkat_unavailable = 1;
- }
- }
-#endif
- }
+ (!follow_symlinks)) {
+
+ if (HAVE_LINKAT_RUNTIME) {
+
+ result = linkat(src_dir_fd, src->narrow,
+ dst_dir_fd, dst->narrow,
+ follow_symlinks ? AT_SYMLINK_FOLLOW : 0);
+
+ }
+#ifdef __APPLE__
+ else {
+ if (src_dir_fd == DEFAULT_DIR_FD && dst_dir_fd == DEFAULT_DIR_FD) {
+ /* See issue 41355: This matches the behaviour of !HAVE_LINKAT */
+ result = link(src->narrow, dst->narrow);
+ } else {
+ linkat_unavailable = 1;
+ }
+ }
+#endif
+ }
else
#endif /* HAVE_LINKAT */
result = link(src->narrow, dst->narrow);
Py_END_ALLOW_THREADS
-#ifdef HAVE_LINKAT
- if (linkat_unavailable) {
- /* Either or both dir_fd arguments were specified */
- if (src_dir_fd != DEFAULT_DIR_FD) {
- argument_unavailable_error("link", "src_dir_fd");
- } else {
- argument_unavailable_error("link", "dst_dir_fd");
- }
- return NULL;
- }
-#endif
-
+#ifdef HAVE_LINKAT
+ if (linkat_unavailable) {
+ /* Either or both dir_fd arguments were specified */
+ if (src_dir_fd != DEFAULT_DIR_FD) {
+ argument_unavailable_error("link", "src_dir_fd");
+ } else {
+ argument_unavailable_error("link", "dst_dir_fd");
+ }
+ return NULL;
+ }
+#endif
+
if (result)
return path_error2(src, dst);
#endif /* MS_WINDOWS */
@@ -4065,7 +4065,7 @@ _posix_listdir(path_t *path, PyObject *list)
errno = 0;
#ifdef HAVE_FDOPENDIR
if (path->fd != -1) {
- if (HAVE_FDOPENDIR_RUNTIME) {
+ if (HAVE_FDOPENDIR_RUNTIME) {
/* closedir() closes the FD, so we duplicate it */
fd = _Py_dup(path->fd);
if (fd == -1)
@@ -4076,11 +4076,11 @@ _posix_listdir(path_t *path, PyObject *list)
Py_BEGIN_ALLOW_THREADS
dirp = fdopendir(fd);
Py_END_ALLOW_THREADS
- } else {
- PyErr_SetString(PyExc_TypeError,
- "listdir: path should be string, bytes, os.PathLike or None, not int");
- return NULL;
- }
+ } else {
+ PyErr_SetString(PyExc_TypeError,
+ "listdir: path should be string, bytes, os.PathLike or None, not int");
+ return NULL;
+ }
}
else
#endif
@@ -4190,10 +4190,10 @@ static PyObject *
os_listdir_impl(PyObject *module, path_t *path)
/*[clinic end generated code: output=293045673fcd1a75 input=e3f58030f538295d]*/
{
- if (PySys_Audit("os.listdir", "O",
- path->object ? path->object : Py_None) < 0) {
- return NULL;
- }
+ if (PySys_Audit("os.listdir", "O",
+ path->object ? path->object : Py_None) < 0) {
+ return NULL;
+ }
#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR)
return _listdir_windows_no_opendir(path, NULL);
#else
@@ -4215,25 +4215,25 @@ static PyObject *
os__getfullpathname_impl(PyObject *module, path_t *path)
/*[clinic end generated code: output=bb8679d56845bc9b input=332ed537c29d0a3e]*/
{
- wchar_t *abspath;
+ wchar_t *abspath;
- /* _Py_abspath() is implemented with GetFullPathNameW() on Windows */
- if (_Py_abspath(path->wide, &abspath) < 0) {
- return win32_error_object("GetFullPathNameW", path->object);
+ /* _Py_abspath() is implemented with GetFullPathNameW() on Windows */
+ if (_Py_abspath(path->wide, &abspath) < 0) {
+ return win32_error_object("GetFullPathNameW", path->object);
+ }
+ if (abspath == NULL) {
+ return PyErr_NoMemory();
}
- if (abspath == NULL) {
- return PyErr_NoMemory();
- }
-
- PyObject *str = PyUnicode_FromWideChar(abspath, wcslen(abspath));
- PyMem_RawFree(abspath);
- if (str == NULL) {
- return NULL;
- }
- if (path->narrow) {
- Py_SETREF(str, PyUnicode_EncodeFSDefault(str));
- }
- return str;
+
+ PyObject *str = PyUnicode_FromWideChar(abspath, wcslen(abspath));
+ PyMem_RawFree(abspath);
+ if (str == NULL) {
+ return NULL;
+ }
+ if (path->narrow) {
+ Py_SETREF(str, PyUnicode_EncodeFSDefault(str));
+ }
+ return str;
}
@@ -4303,9 +4303,9 @@ os__getfinalpathname_impl(PyObject *module, path_t *path)
}
result = PyUnicode_FromWideChar(target_path, result_length);
- if (result && path->narrow) {
+ if (result && path->narrow) {
Py_SETREF(result, PyUnicode_EncodeFSDefault(result));
- }
+ }
cleanup:
if (target_path != buf) {
@@ -4363,53 +4363,53 @@ exit:
return result;
}
-
-/*[clinic input]
-os._path_splitroot
-
- path: path_t
-
-Removes everything after the root on Win32.
-[clinic start generated code]*/
-
-static PyObject *
-os__path_splitroot_impl(PyObject *module, path_t *path)
-/*[clinic end generated code: output=ab7f1a88b654581c input=dc93b1d3984cffb6]*/
-{
- wchar_t *buffer;
- wchar_t *end;
- PyObject *result = NULL;
- HRESULT ret;
-
- buffer = (wchar_t*)PyMem_Malloc(sizeof(wchar_t) * (wcslen(path->wide) + 1));
- if (!buffer) {
- return NULL;
- }
- wcscpy(buffer, path->wide);
- for (wchar_t *p = wcschr(buffer, L'/'); p; p = wcschr(p, L'/')) {
- *p = L'\\';
- }
-
- Py_BEGIN_ALLOW_THREADS
- ret = PathCchSkipRoot(buffer, &end);
- Py_END_ALLOW_THREADS
- if (FAILED(ret)) {
- result = Py_BuildValue("sO", "", path->object);
- } else if (end != buffer) {
- size_t rootLen = (size_t)(end - buffer);
- result = Py_BuildValue("NN",
- PyUnicode_FromWideChar(path->wide, rootLen),
- PyUnicode_FromWideChar(path->wide + rootLen, -1)
- );
- } else {
- result = Py_BuildValue("Os", path->object, "");
- }
- PyMem_Free(buffer);
-
- return result;
-}
-
-
+
+/*[clinic input]
+os._path_splitroot
+
+ path: path_t
+
+Removes everything after the root on Win32.
+[clinic start generated code]*/
+
+static PyObject *
+os__path_splitroot_impl(PyObject *module, path_t *path)
+/*[clinic end generated code: output=ab7f1a88b654581c input=dc93b1d3984cffb6]*/
+{
+ wchar_t *buffer;
+ wchar_t *end;
+ PyObject *result = NULL;
+ HRESULT ret;
+
+ buffer = (wchar_t*)PyMem_Malloc(sizeof(wchar_t) * (wcslen(path->wide) + 1));
+ if (!buffer) {
+ return NULL;
+ }
+ wcscpy(buffer, path->wide);
+ for (wchar_t *p = wcschr(buffer, L'/'); p; p = wcschr(p, L'/')) {
+ *p = L'\\';
+ }
+
+ Py_BEGIN_ALLOW_THREADS
+ ret = PathCchSkipRoot(buffer, &end);
+ Py_END_ALLOW_THREADS
+ if (FAILED(ret)) {
+ result = Py_BuildValue("sO", "", path->object);
+ } else if (end != buffer) {
+ size_t rootLen = (size_t)(end - buffer);
+ result = Py_BuildValue("NN",
+ PyUnicode_FromWideChar(path->wide, rootLen),
+ PyUnicode_FromWideChar(path->wide + rootLen, -1)
+ );
+ } else {
+ result = Py_BuildValue("Os", path->object, "");
+ }
+ PyMem_Free(buffer);
+
+ return result;
+}
+
+
#endif /* MS_WINDOWS */
@@ -4441,15 +4441,15 @@ os_mkdir_impl(PyObject *module, path_t *path, int mode, int dir_fd)
/*[clinic end generated code: output=a70446903abe821f input=e965f68377e9b1ce]*/
{
int result;
-#ifdef HAVE_MKDIRAT
- int mkdirat_unavailable = 0;
-#endif
-
- if (PySys_Audit("os.mkdir", "Oii", path->object, mode,
- dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
- return NULL;
- }
-
+#ifdef HAVE_MKDIRAT
+ int mkdirat_unavailable = 0;
+#endif
+
+ if (PySys_Audit("os.mkdir", "Oii", path->object, mode,
+ dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
+ return NULL;
+ }
+
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
result = CreateDirectoryW(path->wide, NULL);
@@ -4460,14 +4460,14 @@ os_mkdir_impl(PyObject *module, path_t *path, int mode, int dir_fd)
#else
Py_BEGIN_ALLOW_THREADS
#if HAVE_MKDIRAT
- if (dir_fd != DEFAULT_DIR_FD) {
- if (HAVE_MKDIRAT_RUNTIME) {
+ if (dir_fd != DEFAULT_DIR_FD) {
+ if (HAVE_MKDIRAT_RUNTIME) {
result = mkdirat(dir_fd, path->narrow, mode);
-
- } else {
- mkdirat_unavailable = 1;
- }
- } else
+
+ } else {
+ mkdirat_unavailable = 1;
+ }
+ } else
#endif
#if defined(__WATCOMC__) && !defined(__QNX__)
result = mkdir(path->narrow);
@@ -4475,14 +4475,14 @@ os_mkdir_impl(PyObject *module, path_t *path, int mode, int dir_fd)
result = mkdir(path->narrow, mode);
#endif
Py_END_ALLOW_THREADS
-
-#if HAVE_MKDIRAT
- if (mkdirat_unavailable) {
- argument_unavailable_error(NULL, "dir_fd");
- return NULL;
- }
-#endif
-
+
+#if HAVE_MKDIRAT
+ if (mkdirat_unavailable) {
+ argument_unavailable_error(NULL, "dir_fd");
+ return NULL;
+ }
+#endif
+
if (result < 0)
return path_error(path);
#endif /* MS_WINDOWS */
@@ -4592,10 +4592,10 @@ internal_rename(path_t *src, path_t *dst, int src_dir_fd, int dst_dir_fd, int is
const char *function_name = is_replace ? "replace" : "rename";
int dir_fd_specified;
-#ifdef HAVE_RENAMEAT
- int renameat_unavailable = 0;
-#endif
-
+#ifdef HAVE_RENAMEAT
+ int renameat_unavailable = 0;
+#endif
+
#ifdef MS_WINDOWS
BOOL result;
int flags = is_replace ? MOVEFILE_REPLACE_EXISTING : 0;
@@ -4612,12 +4612,12 @@ internal_rename(path_t *src, path_t *dst, int src_dir_fd, int dst_dir_fd, int is
}
#endif
- if (PySys_Audit("os.rename", "OOii", src->object, dst->object,
- src_dir_fd == DEFAULT_DIR_FD ? -1 : src_dir_fd,
- dst_dir_fd == DEFAULT_DIR_FD ? -1 : dst_dir_fd) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.rename", "OOii", src->object, dst->object,
+ src_dir_fd == DEFAULT_DIR_FD ? -1 : src_dir_fd,
+ dst_dir_fd == DEFAULT_DIR_FD ? -1 : dst_dir_fd) < 0) {
+ return NULL;
+ }
+
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
result = MoveFileExW(src->wide, dst->wide, flags);
@@ -4635,25 +4635,25 @@ internal_rename(path_t *src, path_t *dst, int src_dir_fd, int dst_dir_fd, int is
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_RENAMEAT
- if (dir_fd_specified) {
- if (HAVE_RENAMEAT_RUNTIME) {
- result = renameat(src_dir_fd, src->narrow, dst_dir_fd, dst->narrow);
- } else {
- renameat_unavailable = 1;
- }
- } else
+ if (dir_fd_specified) {
+ if (HAVE_RENAMEAT_RUNTIME) {
+ result = renameat(src_dir_fd, src->narrow, dst_dir_fd, dst->narrow);
+ } else {
+ renameat_unavailable = 1;
+ }
+ } else
#endif
result = rename(src->narrow, dst->narrow);
Py_END_ALLOW_THREADS
-
-#ifdef HAVE_RENAMEAT
- if (renameat_unavailable) {
- argument_unavailable_error(function_name, "src_dir_fd and dst_dir_fd");
- return NULL;
- }
-#endif
-
+
+#ifdef HAVE_RENAMEAT
+ if (renameat_unavailable) {
+ argument_unavailable_error(function_name, "src_dir_fd and dst_dir_fd");
+ return NULL;
+ }
+#endif
+
if (result)
return path_error2(src, dst);
#endif
@@ -4729,41 +4729,41 @@ os_rmdir_impl(PyObject *module, path_t *path, int dir_fd)
/*[clinic end generated code: output=080eb54f506e8301 input=38c8b375ca34a7e2]*/
{
int result;
-#ifdef HAVE_UNLINKAT
- int unlinkat_unavailable = 0;
-#endif
-
- if (PySys_Audit("os.rmdir", "Oi", path->object,
- dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
- return NULL;
- }
-
+#ifdef HAVE_UNLINKAT
+ int unlinkat_unavailable = 0;
+#endif
+
+ if (PySys_Audit("os.rmdir", "Oi", path->object,
+ dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
#ifdef MS_WINDOWS
/* Windows, success=1, UNIX, success=0 */
result = !RemoveDirectoryW(path->wide);
#else
#ifdef HAVE_UNLINKAT
- if (dir_fd != DEFAULT_DIR_FD) {
- if (HAVE_UNLINKAT_RUNTIME) {
+ if (dir_fd != DEFAULT_DIR_FD) {
+ if (HAVE_UNLINKAT_RUNTIME) {
result = unlinkat(dir_fd, path->narrow, AT_REMOVEDIR);
- } else {
- unlinkat_unavailable = 1;
- result = -1;
- }
- } else
+ } else {
+ unlinkat_unavailable = 1;
+ result = -1;
+ }
+ } else
#endif
result = rmdir(path->narrow);
#endif
Py_END_ALLOW_THREADS
-#ifdef HAVE_UNLINKAT
- if (unlinkat_unavailable) {
- argument_unavailable_error("rmdir", "dir_fd");
- return NULL;
- }
-#endif
-
+#ifdef HAVE_UNLINKAT
+ if (unlinkat_unavailable) {
+ argument_unavailable_error("rmdir", "dir_fd");
+ return NULL;
+ }
+#endif
+
if (result)
return path_error(path);
@@ -4786,11 +4786,11 @@ os_system_impl(PyObject *module, const Py_UNICODE *command)
/*[clinic end generated code: output=5b7c3599c068ca42 input=303f5ce97df606b0]*/
{
long result;
-
- if (PySys_Audit("os.system", "(u)", command) < 0) {
- return -1;
- }
-
+
+ if (PySys_Audit("os.system", "(u)", command) < 0) {
+ return -1;
+ }
+
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
result = _wsystem(command);
@@ -4813,11 +4813,11 @@ os_system_impl(PyObject *module, PyObject *command)
{
long result;
const char *bytes = PyBytes_AsString(command);
-
- if (PySys_Audit("os.system", "(O)", command) < 0) {
- return -1;
- }
-
+
+ if (PySys_Audit("os.system", "(O)", command) < 0) {
+ return -1;
+ }
+
Py_BEGIN_ALLOW_THREADS
result = system(bytes);
Py_END_ALLOW_THREADS
@@ -4907,15 +4907,15 @@ os_unlink_impl(PyObject *module, path_t *path, int dir_fd)
/*[clinic end generated code: output=621797807b9963b1 input=d7bcde2b1b2a2552]*/
{
int result;
-#ifdef HAVE_UNLINKAT
- int unlinkat_unavailable = 0;
-#endif
-
- if (PySys_Audit("os.remove", "Oi", path->object,
- dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
- return NULL;
- }
-
+#ifdef HAVE_UNLINKAT
+ int unlinkat_unavailable = 0;
+#endif
+
+ if (PySys_Audit("os.remove", "Oi", path->object,
+ dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
@@ -4923,27 +4923,27 @@ os_unlink_impl(PyObject *module, path_t *path, int dir_fd)
result = !Py_DeleteFileW(path->wide);
#else
#ifdef HAVE_UNLINKAT
- if (dir_fd != DEFAULT_DIR_FD) {
- if (HAVE_UNLINKAT_RUNTIME) {
-
+ if (dir_fd != DEFAULT_DIR_FD) {
+ if (HAVE_UNLINKAT_RUNTIME) {
+
result = unlinkat(dir_fd, path->narrow, 0);
- } else {
- unlinkat_unavailable = 1;
- }
- } else
+ } else {
+ unlinkat_unavailable = 1;
+ }
+ } else
#endif /* HAVE_UNLINKAT */
result = unlink(path->narrow);
#endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
-#ifdef HAVE_UNLINKAT
- if (unlinkat_unavailable) {
- argument_unavailable_error(NULL, "dir_fd");
- return NULL;
- }
-#endif
-
+#ifdef HAVE_UNLINKAT
+ if (unlinkat_unavailable) {
+ argument_unavailable_error(NULL, "dir_fd");
+ return NULL;
+ }
+#endif
+
if (result)
return path_error(path);
@@ -4988,7 +4988,7 @@ or via the attributes sysname, nodename, release, version, and machine.\n\
See os.uname for more information.");
static PyStructSequence_Desc uname_result_desc = {
- MODNAME ".uname_result", /* name */
+ MODNAME ".uname_result", /* name */
uname_result__doc__, /* doc */
uname_result_fields,
5
@@ -5019,8 +5019,8 @@ os_uname_impl(PyObject *module)
if (res < 0)
return posix_error();
- PyObject *UnameResultType = get_posix_state(module)->UnameResultType;
- value = PyStructSequence_New((PyTypeObject *)UnameResultType);
+ PyObject *UnameResultType = get_posix_state(module)->UnameResultType;
+ value = PyStructSequence_New((PyTypeObject *)UnameResultType);
if (value == NULL)
return NULL;
@@ -5114,16 +5114,16 @@ typedef struct {
static int
utime_dir_fd(utime_t *ut, int dir_fd, const char *path, int follow_symlinks)
{
-#if defined(__APPLE__) && defined(HAVE_UTIMENSAT)
- if (HAVE_UTIMENSAT_RUNTIME) {
- int flags = follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW;
- UTIME_TO_TIMESPEC;
- return utimensat(dir_fd, path, time, flags);
- } else {
- errno = ENOSYS;
- return -1;
- }
-#elif defined(HAVE_UTIMENSAT)
+#if defined(__APPLE__) && defined(HAVE_UTIMENSAT)
+ if (HAVE_UTIMENSAT_RUNTIME) {
+ int flags = follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW;
+ UTIME_TO_TIMESPEC;
+ return utimensat(dir_fd, path, time, flags);
+ } else {
+ errno = ENOSYS;
+ return -1;
+ }
+#elif defined(HAVE_UTIMENSAT)
int flags = follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW;
UTIME_TO_TIMESPEC;
return utimensat(dir_fd, path, time, flags);
@@ -5150,30 +5150,30 @@ static int
utime_fd(utime_t *ut, int fd)
{
#ifdef HAVE_FUTIMENS
-
- if (HAVE_FUTIMENS_RUNTIME) {
-
+
+ if (HAVE_FUTIMENS_RUNTIME) {
+
UTIME_TO_TIMESPEC;
return futimens(fd, time);
-
- } else
-#ifndef HAVE_FUTIMES
- {
- /* Not sure if this can happen */
- PyErr_SetString(
- PyExc_RuntimeError,
- "neither futimens nor futimes are supported"
- " on this system");
- return -1;
- }
-#endif
-
-#endif
-#ifdef HAVE_FUTIMES
- {
+
+ } else
+#ifndef HAVE_FUTIMES
+ {
+ /* Not sure if this can happen */
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "neither futimens nor futimes are supported"
+ " on this system");
+ return -1;
+ }
+#endif
+
+#endif
+#ifdef HAVE_FUTIMES
+ {
UTIME_TO_TIMEVAL;
return futimes(fd, time);
- }
+ }
#endif
}
@@ -5192,27 +5192,27 @@ static int
utime_nofollow_symlinks(utime_t *ut, const char *path)
{
#ifdef HAVE_UTIMENSAT
- if (HAVE_UTIMENSAT_RUNTIME) {
- UTIME_TO_TIMESPEC;
- return utimensat(DEFAULT_DIR_FD, path, time, AT_SYMLINK_NOFOLLOW);
- } else
-#ifndef HAVE_LUTIMES
- {
- /* Not sure if this can happen */
- PyErr_SetString(
- PyExc_RuntimeError,
- "neither utimensat nor lutimes are supported"
- " on this system");
- return -1;
- }
-#endif
-#endif
-
-#ifdef HAVE_LUTIMES
- {
+ if (HAVE_UTIMENSAT_RUNTIME) {
+ UTIME_TO_TIMESPEC;
+ return utimensat(DEFAULT_DIR_FD, path, time, AT_SYMLINK_NOFOLLOW);
+ } else
+#ifndef HAVE_LUTIMES
+ {
+ /* Not sure if this can happen */
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "neither utimensat nor lutimes are supported"
+ " on this system");
+ return -1;
+ }
+#endif
+#endif
+
+#ifdef HAVE_LUTIMES
+ {
UTIME_TO_TIMEVAL;
return lutimes(path, time);
- }
+ }
#endif
}
@@ -5223,15 +5223,15 @@ utime_nofollow_symlinks(utime_t *ut, const char *path)
static int
utime_default(utime_t *ut, const char *path)
{
-#if defined(__APPLE__) && defined(HAVE_UTIMENSAT)
- if (HAVE_UTIMENSAT_RUNTIME) {
- UTIME_TO_TIMESPEC;
- return utimensat(DEFAULT_DIR_FD, path, time, 0);
- } else {
- UTIME_TO_TIMEVAL;
- return utimes(path, time);
- }
-#elif defined(HAVE_UTIMENSAT)
+#if defined(__APPLE__) && defined(HAVE_UTIMENSAT)
+ if (HAVE_UTIMENSAT_RUNTIME) {
+ UTIME_TO_TIMESPEC;
+ return utimensat(DEFAULT_DIR_FD, path, time, 0);
+ } else {
+ UTIME_TO_TIMEVAL;
+ return utimes(path, time);
+ }
+#elif defined(HAVE_UTIMENSAT)
UTIME_TO_TIMESPEC;
return utimensat(DEFAULT_DIR_FD, path, time, 0);
#elif defined(HAVE_UTIMES)
@@ -5249,17 +5249,17 @@ utime_default(utime_t *ut, const char *path)
#endif
static int
-split_py_long_to_s_and_ns(PyObject *module, PyObject *py_long, time_t *s, long *ns)
+split_py_long_to_s_and_ns(PyObject *module, PyObject *py_long, time_t *s, long *ns)
{
int result = 0;
PyObject *divmod;
- divmod = PyNumber_Divmod(py_long, get_posix_state(module)->billion);
+ divmod = PyNumber_Divmod(py_long, get_posix_state(module)->billion);
if (!divmod)
goto exit;
if (!PyTuple_Check(divmod) || PyTuple_GET_SIZE(divmod) != 2) {
PyErr_Format(PyExc_TypeError,
"%.200s.__divmod__() must return a 2-tuple, not %.200s",
- _PyType_Name(Py_TYPE(py_long)), _PyType_Name(Py_TYPE(divmod)));
+ _PyType_Name(Py_TYPE(py_long)), _PyType_Name(Py_TYPE(divmod)));
goto exit;
}
*s = _PyLong_AsTime_t(PyTuple_GET_ITEM(divmod, 0));
@@ -5280,7 +5280,7 @@ exit:
os.utime
path: path_t(allow_fd='PATH_UTIME_HAVE_FD')
- times: object = None
+ times: object = None
*
ns: object = NULL
dir_fd: dir_fd(requires='futimensat') = None
@@ -5317,7 +5317,7 @@ dir_fd and follow_symlinks may not be available on your platform.
static PyObject *
os_utime_impl(PyObject *module, path_t *path, PyObject *times, PyObject *ns,
int dir_fd, int follow_symlinks)
-/*[clinic end generated code: output=cfcac69d027b82cf input=2fbd62a2f228f8f4]*/
+/*[clinic end generated code: output=cfcac69d027b82cf input=2fbd62a2f228f8f4]*/
{
#ifdef MS_WINDOWS
HANDLE hFile;
@@ -5330,14 +5330,14 @@ os_utime_impl(PyObject *module, path_t *path, PyObject *times, PyObject *ns,
memset(&utime, 0, sizeof(utime_t));
- if (times != Py_None && ns) {
+ if (times != Py_None && ns) {
PyErr_SetString(PyExc_ValueError,
"utime: you may specify either 'times'"
" or 'ns' but not both");
return NULL;
}
- if (times != Py_None) {
+ if (times != Py_None) {
time_t a_sec, m_sec;
long a_nsec, m_nsec;
if (!PyTuple_CheckExact(times) || (PyTuple_Size(times) != 2)) {
@@ -5365,9 +5365,9 @@ os_utime_impl(PyObject *module, path_t *path, PyObject *times, PyObject *ns,
return NULL;
}
utime.now = 0;
- if (!split_py_long_to_s_and_ns(module, PyTuple_GET_ITEM(ns, 0),
+ if (!split_py_long_to_s_and_ns(module, PyTuple_GET_ITEM(ns, 0),
&utime.atime_s, &utime.atime_ns) ||
- !split_py_long_to_s_and_ns(module, PyTuple_GET_ITEM(ns, 1),
+ !split_py_long_to_s_and_ns(module, PyTuple_GET_ITEM(ns, 1),
&utime.mtime_s, &utime.mtime_ns)) {
return NULL;
}
@@ -5396,11 +5396,11 @@ os_utime_impl(PyObject *module, path_t *path, PyObject *times, PyObject *ns,
}
#endif
- if (PySys_Audit("os.utime", "OOOi", path->object, times, ns ? ns : Py_None,
- dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.utime", "OOOi", path->object, times, ns ? ns : Py_None,
+ dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
+ return NULL;
+ }
+
#ifdef MS_WINDOWS
Py_BEGIN_ALLOW_THREADS
hFile = CreateFileW(path->wide, FILE_WRITE_ATTRIBUTES, 0,
@@ -5440,10 +5440,10 @@ os_utime_impl(PyObject *module, path_t *path, PyObject *times, PyObject *ns,
#endif
#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT)
- if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) {
+ if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) {
result = utime_dir_fd(&utime, dir_fd, path->narrow, follow_symlinks);
-
- } else
+
+ } else
#endif
#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS)
@@ -5456,14 +5456,14 @@ os_utime_impl(PyObject *module, path_t *path, PyObject *times, PyObject *ns,
Py_END_ALLOW_THREADS
-#if defined(__APPLE__) && defined(HAVE_UTIMENSAT)
- /* See utime_dir_fd implementation */
- if (result == -1 && errno == ENOSYS) {
- argument_unavailable_error(NULL, "dir_fd");
- return NULL;
- }
-#endif
-
+#if defined(__APPLE__) && defined(HAVE_UTIMENSAT)
+ /* See utime_dir_fd implementation */
+ if (result == -1 && errno == ENOSYS) {
+ argument_unavailable_error(NULL, "dir_fd");
+ return NULL;
+ }
+#endif
+
if (result < 0) {
/* see previous comment about not putting filename in error here */
posix_error();
@@ -5500,7 +5500,7 @@ os__exit_impl(PyObject *module, int status)
#define EXECV_CHAR char
#endif
-#if defined(HAVE_EXECV) || defined(HAVE_SPAWNV) || defined(HAVE_RTPSPAWN)
+#if defined(HAVE_EXECV) || defined(HAVE_SPAWNV) || defined(HAVE_RTPSPAWN)
static void
free_string_array(EXECV_CHAR **array, Py_ssize_t count)
{
@@ -5538,7 +5538,7 @@ fsconvert_strdup(PyObject *o, EXECV_CHAR **out)
}
#endif
-#if defined(HAVE_EXECV) || defined (HAVE_FEXECVE) || defined(HAVE_RTPSPAWN)
+#if defined(HAVE_EXECV) || defined (HAVE_FEXECVE) || defined(HAVE_RTPSPAWN)
static EXECV_CHAR**
parse_envlist(PyObject* env, Py_ssize_t *envc_ptr)
{
@@ -5711,11 +5711,11 @@ os_execv_impl(PyObject *module, path_t *path, PyObject *argv)
return NULL;
}
- if (PySys_Audit("os.exec", "OOO", path->object, argv, Py_None) < 0) {
- free_string_array(argvlist, argc);
- return NULL;
- }
-
+ if (PySys_Audit("os.exec", "OOO", path->object, argv, Py_None) < 0) {
+ free_string_array(argvlist, argc);
+ return NULL;
+ }
+
_Py_BEGIN_SUPPRESS_IPH
#ifdef HAVE_WEXECV
_wexecv(path->wide, argvlist);
@@ -5759,7 +5759,7 @@ os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env)
if (!PyList_Check(argv) && !PyTuple_Check(argv)) {
PyErr_SetString(PyExc_TypeError,
"execve: argv must be a tuple or list");
- goto fail_0;
+ goto fail_0;
}
argc = PySequence_Size(argv);
if (argc < 1) {
@@ -5770,27 +5770,27 @@ os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env)
if (!PyMapping_Check(env)) {
PyErr_SetString(PyExc_TypeError,
"execve: environment must be a mapping object");
- goto fail_0;
+ goto fail_0;
}
argvlist = parse_arglist(argv, &argc);
if (argvlist == NULL) {
- goto fail_0;
+ goto fail_0;
}
if (!argvlist[0][0]) {
PyErr_SetString(PyExc_ValueError,
"execve: argv first element cannot be empty");
- goto fail_0;
+ goto fail_0;
}
envlist = parse_envlist(env, &envc);
if (envlist == NULL)
- goto fail_0;
+ goto fail_0;
+
+ if (PySys_Audit("os.exec", "OOO", path->object, argv, env) < 0) {
+ goto fail_1;
+ }
- if (PySys_Audit("os.exec", "OOO", path->object, argv, env) < 0) {
- goto fail_1;
- }
-
_Py_BEGIN_SUPPRESS_IPH
#ifdef HAVE_FEXECVE
if (path->fd > -1)
@@ -5807,9 +5807,9 @@ os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env)
/* If we get here it's definitely an error */
posix_path_error(path);
- fail_1:
+ fail_1:
free_string_array(envlist, envc);
- fail_0:
+ fail_0:
if (argvlist)
free_string_array(argvlist, argc);
return NULL;
@@ -5817,523 +5817,523 @@ os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env)
#endif /* HAVE_EXECV */
-#ifdef HAVE_POSIX_SPAWN
-
-enum posix_spawn_file_actions_identifier {
- POSIX_SPAWN_OPEN,
- POSIX_SPAWN_CLOSE,
- POSIX_SPAWN_DUP2
-};
-
-#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
-static int
-convert_sched_param(PyObject *module, PyObject *param, struct sched_param *res);
-#endif
-
-static int
-parse_posix_spawn_flags(PyObject *module, const char *func_name, PyObject *setpgroup,
- int resetids, int setsid, PyObject *setsigmask,
- PyObject *setsigdef, PyObject *scheduler,
- posix_spawnattr_t *attrp)
-{
- long all_flags = 0;
-
- errno = posix_spawnattr_init(attrp);
- if (errno) {
- posix_error();
- return -1;
- }
-
- if (setpgroup) {
- pid_t pgid = PyLong_AsPid(setpgroup);
- if (pgid == (pid_t)-1 && PyErr_Occurred()) {
- goto fail;
- }
- errno = posix_spawnattr_setpgroup(attrp, pgid);
- if (errno) {
- posix_error();
- goto fail;
- }
- all_flags |= POSIX_SPAWN_SETPGROUP;
- }
-
- if (resetids) {
- all_flags |= POSIX_SPAWN_RESETIDS;
- }
-
- if (setsid) {
-#ifdef HAVE_POSIX_SPAWN_SETSID_RUNTIME
- if (HAVE_POSIX_SPAWN_SETSID_RUNTIME) {
-#endif
-#ifdef POSIX_SPAWN_SETSID
- all_flags |= POSIX_SPAWN_SETSID;
-#elif defined(POSIX_SPAWN_SETSID_NP)
- all_flags |= POSIX_SPAWN_SETSID_NP;
-#else
- argument_unavailable_error(func_name, "setsid");
- return -1;
-#endif
-
-#ifdef HAVE_POSIX_SPAWN_SETSID_RUNTIME
- } else {
- argument_unavailable_error(func_name, "setsid");
- return -1;
- }
-#endif /* HAVE_POSIX_SPAWN_SETSID_RUNTIME */
-
- }
-
-#ifdef HAVE_SIGSET_T
- if (setsigmask) {
- sigset_t set;
- if (!_Py_Sigset_Converter(setsigmask, &set)) {
- goto fail;
- }
- errno = posix_spawnattr_setsigmask(attrp, &set);
- if (errno) {
- posix_error();
- goto fail;
- }
- all_flags |= POSIX_SPAWN_SETSIGMASK;
- }
-
- if (setsigdef) {
- sigset_t set;
- if (!_Py_Sigset_Converter(setsigdef, &set)) {
- goto fail;
- }
- errno = posix_spawnattr_setsigdefault(attrp, &set);
- if (errno) {
- posix_error();
- goto fail;
- }
- all_flags |= POSIX_SPAWN_SETSIGDEF;
- }
-#else
- if (setsigmask || setsigdef) {
- PyErr_SetString(PyExc_NotImplementedError,
- "sigset is not supported on this platform");
- goto fail;
- }
-#endif
-
- if (scheduler) {
-#ifdef POSIX_SPAWN_SETSCHEDULER
- PyObject *py_schedpolicy;
- PyObject *schedparam_obj;
- struct sched_param schedparam;
-
- if (!PyArg_ParseTuple(scheduler, "OO"
- ";A scheduler tuple must have two elements",
- &py_schedpolicy, &schedparam_obj)) {
- goto fail;
- }
- if (!convert_sched_param(module, schedparam_obj, &schedparam)) {
- goto fail;
- }
- if (py_schedpolicy != Py_None) {
- int schedpolicy = _PyLong_AsInt(py_schedpolicy);
-
- if (schedpolicy == -1 && PyErr_Occurred()) {
- goto fail;
- }
- errno = posix_spawnattr_setschedpolicy(attrp, schedpolicy);
- if (errno) {
- posix_error();
- goto fail;
- }
- all_flags |= POSIX_SPAWN_SETSCHEDULER;
- }
- errno = posix_spawnattr_setschedparam(attrp, &schedparam);
- if (errno) {
- posix_error();
- goto fail;
- }
- all_flags |= POSIX_SPAWN_SETSCHEDPARAM;
-#else
- PyErr_SetString(PyExc_NotImplementedError,
- "The scheduler option is not supported in this system.");
- goto fail;
-#endif
- }
-
- errno = posix_spawnattr_setflags(attrp, all_flags);
- if (errno) {
- posix_error();
- goto fail;
- }
-
- return 0;
-
-fail:
- (void)posix_spawnattr_destroy(attrp);
- return -1;
-}
-
-static int
-parse_file_actions(PyObject *file_actions,
- posix_spawn_file_actions_t *file_actionsp,
- PyObject *temp_buffer)
-{
- PyObject *seq;
- PyObject *file_action = NULL;
- PyObject *tag_obj;
-
- seq = PySequence_Fast(file_actions,
- "file_actions must be a sequence or None");
- if (seq == NULL) {
- return -1;
- }
-
- errno = posix_spawn_file_actions_init(file_actionsp);
- if (errno) {
- posix_error();
- Py_DECREF(seq);
- return -1;
- }
-
- for (Py_ssize_t i = 0; i < PySequence_Fast_GET_SIZE(seq); ++i) {
- file_action = PySequence_Fast_GET_ITEM(seq, i);
- Py_INCREF(file_action);
- if (!PyTuple_Check(file_action) || !PyTuple_GET_SIZE(file_action)) {
- PyErr_SetString(PyExc_TypeError,
- "Each file_actions element must be a non-empty tuple");
- goto fail;
- }
- long tag = PyLong_AsLong(PyTuple_GET_ITEM(file_action, 0));
- if (tag == -1 && PyErr_Occurred()) {
- goto fail;
- }
-
- /* Populate the file_actions object */
- switch (tag) {
- case POSIX_SPAWN_OPEN: {
- int fd, oflag;
- PyObject *path;
- unsigned long mode;
- if (!PyArg_ParseTuple(file_action, "OiO&ik"
- ";A open file_action tuple must have 5 elements",
- &tag_obj, &fd, PyUnicode_FSConverter, &path,
- &oflag, &mode))
- {
- goto fail;
- }
- if (PyList_Append(temp_buffer, path)) {
- Py_DECREF(path);
- goto fail;
- }
- errno = posix_spawn_file_actions_addopen(file_actionsp,
- fd, PyBytes_AS_STRING(path), oflag, (mode_t)mode);
- Py_DECREF(path);
- if (errno) {
- posix_error();
- goto fail;
- }
- break;
- }
- case POSIX_SPAWN_CLOSE: {
- int fd;
- if (!PyArg_ParseTuple(file_action, "Oi"
- ";A close file_action tuple must have 2 elements",
- &tag_obj, &fd))
- {
- goto fail;
- }
- errno = posix_spawn_file_actions_addclose(file_actionsp, fd);
- if (errno) {
- posix_error();
- goto fail;
- }
- break;
- }
- case POSIX_SPAWN_DUP2: {
- int fd1, fd2;
- if (!PyArg_ParseTuple(file_action, "Oii"
- ";A dup2 file_action tuple must have 3 elements",
- &tag_obj, &fd1, &fd2))
- {
- goto fail;
- }
- errno = posix_spawn_file_actions_adddup2(file_actionsp,
- fd1, fd2);
- if (errno) {
- posix_error();
- goto fail;
- }
- break;
- }
- default: {
- PyErr_SetString(PyExc_TypeError,
- "Unknown file_actions identifier");
- goto fail;
- }
- }
- Py_DECREF(file_action);
- }
-
- Py_DECREF(seq);
- return 0;
-
-fail:
- Py_DECREF(seq);
- Py_DECREF(file_action);
- (void)posix_spawn_file_actions_destroy(file_actionsp);
- return -1;
-}
-
-
-static PyObject *
-py_posix_spawn(int use_posix_spawnp, PyObject *module, path_t *path, PyObject *argv,
- PyObject *env, PyObject *file_actions,
- PyObject *setpgroup, int resetids, int setsid, PyObject *setsigmask,
- PyObject *setsigdef, PyObject *scheduler)
-{
- const char *func_name = use_posix_spawnp ? "posix_spawnp" : "posix_spawn";
- EXECV_CHAR **argvlist = NULL;
- EXECV_CHAR **envlist = NULL;
- posix_spawn_file_actions_t file_actions_buf;
- posix_spawn_file_actions_t *file_actionsp = NULL;
- posix_spawnattr_t attr;
- posix_spawnattr_t *attrp = NULL;
- Py_ssize_t argc, envc;
- PyObject *result = NULL;
- PyObject *temp_buffer = NULL;
- pid_t pid;
- int err_code;
-
- /* posix_spawn and posix_spawnp have three arguments: (path, argv, env), where
- argv is a list or tuple of strings and env is a dictionary
- like posix.environ. */
-
- if (!PyList_Check(argv) && !PyTuple_Check(argv)) {
- PyErr_Format(PyExc_TypeError,
- "%s: argv must be a tuple or list", func_name);
- goto exit;
- }
- argc = PySequence_Size(argv);
- if (argc < 1) {
- PyErr_Format(PyExc_ValueError,
- "%s: argv must not be empty", func_name);
- return NULL;
- }
-
- if (!PyMapping_Check(env)) {
- PyErr_Format(PyExc_TypeError,
- "%s: environment must be a mapping object", func_name);
- goto exit;
- }
-
- argvlist = parse_arglist(argv, &argc);
- if (argvlist == NULL) {
- goto exit;
- }
- if (!argvlist[0][0]) {
- PyErr_Format(PyExc_ValueError,
- "%s: argv first element cannot be empty", func_name);
- goto exit;
- }
-
- envlist = parse_envlist(env, &envc);
- if (envlist == NULL) {
- goto exit;
- }
-
- if (file_actions != NULL && file_actions != Py_None) {
- /* There is a bug in old versions of glibc that makes some of the
- * helper functions for manipulating file actions not copy the provided
- * buffers. The problem is that posix_spawn_file_actions_addopen does not
- * copy the value of path for some old versions of glibc (<2.20).
- * The use of temp_buffer here is a workaround that keeps the
- * python objects that own the buffers alive until posix_spawn gets called.
- * Check https://bugs.python.org/issue33630 and
- * https://sourceware.org/bugzilla/show_bug.cgi?id=17048 for more info.*/
- temp_buffer = PyList_New(0);
- if (!temp_buffer) {
- goto exit;
- }
- if (parse_file_actions(file_actions, &file_actions_buf, temp_buffer)) {
- goto exit;
- }
- file_actionsp = &file_actions_buf;
- }
-
- if (parse_posix_spawn_flags(module, func_name, setpgroup, resetids, setsid,
- setsigmask, setsigdef, scheduler, &attr)) {
- goto exit;
- }
- attrp = &attr;
-
- if (PySys_Audit("os.posix_spawn", "OOO", path->object, argv, env) < 0) {
- goto exit;
- }
-
- _Py_BEGIN_SUPPRESS_IPH
-#ifdef HAVE_POSIX_SPAWNP
- if (use_posix_spawnp) {
- err_code = posix_spawnp(&pid, path->narrow,
- file_actionsp, attrp, argvlist, envlist);
- }
- else
-#endif /* HAVE_POSIX_SPAWNP */
- {
- err_code = posix_spawn(&pid, path->narrow,
- file_actionsp, attrp, argvlist, envlist);
- }
- _Py_END_SUPPRESS_IPH
-
- if (err_code) {
- errno = err_code;
- PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path->object);
- goto exit;
- }
-#ifdef _Py_MEMORY_SANITIZER
- __msan_unpoison(&pid, sizeof(pid));
-#endif
- result = PyLong_FromPid(pid);
-
-exit:
- if (file_actionsp) {
- (void)posix_spawn_file_actions_destroy(file_actionsp);
- }
- if (attrp) {
- (void)posix_spawnattr_destroy(attrp);
- }
- if (envlist) {
- free_string_array(envlist, envc);
- }
- if (argvlist) {
- free_string_array(argvlist, argc);
- }
- Py_XDECREF(temp_buffer);
- return result;
-}
-
-
-/*[clinic input]
-
-os.posix_spawn
- path: path_t
- Path of executable file.
- argv: object
- Tuple or list of strings.
- env: object
- Dictionary of strings mapping to strings.
- /
- *
- file_actions: object(c_default='NULL') = ()
- A sequence of file action tuples.
- setpgroup: object = NULL
- The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.
- resetids: bool(accept={int}) = False
- If the value is `true` the POSIX_SPAWN_RESETIDS will be activated.
- setsid: bool(accept={int}) = False
- If the value is `true` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.
- setsigmask: object(c_default='NULL') = ()
- The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.
- setsigdef: object(c_default='NULL') = ()
- The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.
- scheduler: object = NULL
- A tuple with the scheduler policy (optional) and parameters.
-
-Execute the program specified by path in a new process.
-[clinic start generated code]*/
-
-static PyObject *
-os_posix_spawn_impl(PyObject *module, path_t *path, PyObject *argv,
- PyObject *env, PyObject *file_actions,
- PyObject *setpgroup, int resetids, int setsid,
- PyObject *setsigmask, PyObject *setsigdef,
- PyObject *scheduler)
-/*[clinic end generated code: output=14a1098c566bc675 input=8c6305619a00ad04]*/
-{
- return py_posix_spawn(0, module, path, argv, env, file_actions,
- setpgroup, resetids, setsid, setsigmask, setsigdef,
- scheduler);
-}
- #endif /* HAVE_POSIX_SPAWN */
-
-
-
-#ifdef HAVE_POSIX_SPAWNP
-/*[clinic input]
-
-os.posix_spawnp
- path: path_t
- Path of executable file.
- argv: object
- Tuple or list of strings.
- env: object
- Dictionary of strings mapping to strings.
- /
- *
- file_actions: object(c_default='NULL') = ()
- A sequence of file action tuples.
- setpgroup: object = NULL
- The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.
- resetids: bool(accept={int}) = False
- If the value is `True` the POSIX_SPAWN_RESETIDS will be activated.
- setsid: bool(accept={int}) = False
- If the value is `True` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.
- setsigmask: object(c_default='NULL') = ()
- The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.
- setsigdef: object(c_default='NULL') = ()
- The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.
- scheduler: object = NULL
- A tuple with the scheduler policy (optional) and parameters.
-
-Execute the program specified by path in a new process.
-[clinic start generated code]*/
-
-static PyObject *
-os_posix_spawnp_impl(PyObject *module, path_t *path, PyObject *argv,
- PyObject *env, PyObject *file_actions,
- PyObject *setpgroup, int resetids, int setsid,
- PyObject *setsigmask, PyObject *setsigdef,
- PyObject *scheduler)
-/*[clinic end generated code: output=7b9aaefe3031238d input=c1911043a22028da]*/
-{
- return py_posix_spawn(1, module, path, argv, env, file_actions,
- setpgroup, resetids, setsid, setsigmask, setsigdef,
- scheduler);
-}
-#endif /* HAVE_POSIX_SPAWNP */
-
-#ifdef HAVE_RTPSPAWN
-static intptr_t
-_rtp_spawn(int mode, const char *rtpFileName, const char *argv[],
- const char *envp[])
-{
- RTP_ID rtpid;
- int status;
- pid_t res;
- int async_err = 0;
-
- /* Set priority=100 and uStackSize=16 MiB (0x1000000) for new processes.
- uStackSize=0 cannot be used, the default stack size is too small for
- Python. */
- if (envp) {
- rtpid = rtpSpawn(rtpFileName, argv, envp,
- 100, 0x1000000, 0, VX_FP_TASK);
- }
- else {
- rtpid = rtpSpawn(rtpFileName, argv, (const char **)environ,
- 100, 0x1000000, 0, VX_FP_TASK);
- }
- if ((rtpid != RTP_ID_ERROR) && (mode == _P_WAIT)) {
- do {
- res = waitpid((pid_t)rtpid, &status, 0);
- } while (res < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
-
- if (res < 0)
- return RTP_ID_ERROR;
- return ((intptr_t)status);
- }
- return ((intptr_t)rtpid);
-}
-#endif
-
-#if defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN)
-/*[clinic input]
+#ifdef HAVE_POSIX_SPAWN
+
+enum posix_spawn_file_actions_identifier {
+ POSIX_SPAWN_OPEN,
+ POSIX_SPAWN_CLOSE,
+ POSIX_SPAWN_DUP2
+};
+
+#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
+static int
+convert_sched_param(PyObject *module, PyObject *param, struct sched_param *res);
+#endif
+
+static int
+parse_posix_spawn_flags(PyObject *module, const char *func_name, PyObject *setpgroup,
+ int resetids, int setsid, PyObject *setsigmask,
+ PyObject *setsigdef, PyObject *scheduler,
+ posix_spawnattr_t *attrp)
+{
+ long all_flags = 0;
+
+ errno = posix_spawnattr_init(attrp);
+ if (errno) {
+ posix_error();
+ return -1;
+ }
+
+ if (setpgroup) {
+ pid_t pgid = PyLong_AsPid(setpgroup);
+ if (pgid == (pid_t)-1 && PyErr_Occurred()) {
+ goto fail;
+ }
+ errno = posix_spawnattr_setpgroup(attrp, pgid);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ all_flags |= POSIX_SPAWN_SETPGROUP;
+ }
+
+ if (resetids) {
+ all_flags |= POSIX_SPAWN_RESETIDS;
+ }
+
+ if (setsid) {
+#ifdef HAVE_POSIX_SPAWN_SETSID_RUNTIME
+ if (HAVE_POSIX_SPAWN_SETSID_RUNTIME) {
+#endif
+#ifdef POSIX_SPAWN_SETSID
+ all_flags |= POSIX_SPAWN_SETSID;
+#elif defined(POSIX_SPAWN_SETSID_NP)
+ all_flags |= POSIX_SPAWN_SETSID_NP;
+#else
+ argument_unavailable_error(func_name, "setsid");
+ return -1;
+#endif
+
+#ifdef HAVE_POSIX_SPAWN_SETSID_RUNTIME
+ } else {
+ argument_unavailable_error(func_name, "setsid");
+ return -1;
+ }
+#endif /* HAVE_POSIX_SPAWN_SETSID_RUNTIME */
+
+ }
+
+#ifdef HAVE_SIGSET_T
+ if (setsigmask) {
+ sigset_t set;
+ if (!_Py_Sigset_Converter(setsigmask, &set)) {
+ goto fail;
+ }
+ errno = posix_spawnattr_setsigmask(attrp, &set);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ all_flags |= POSIX_SPAWN_SETSIGMASK;
+ }
+
+ if (setsigdef) {
+ sigset_t set;
+ if (!_Py_Sigset_Converter(setsigdef, &set)) {
+ goto fail;
+ }
+ errno = posix_spawnattr_setsigdefault(attrp, &set);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ all_flags |= POSIX_SPAWN_SETSIGDEF;
+ }
+#else
+ if (setsigmask || setsigdef) {
+ PyErr_SetString(PyExc_NotImplementedError,
+ "sigset is not supported on this platform");
+ goto fail;
+ }
+#endif
+
+ if (scheduler) {
+#ifdef POSIX_SPAWN_SETSCHEDULER
+ PyObject *py_schedpolicy;
+ PyObject *schedparam_obj;
+ struct sched_param schedparam;
+
+ if (!PyArg_ParseTuple(scheduler, "OO"
+ ";A scheduler tuple must have two elements",
+ &py_schedpolicy, &schedparam_obj)) {
+ goto fail;
+ }
+ if (!convert_sched_param(module, schedparam_obj, &schedparam)) {
+ goto fail;
+ }
+ if (py_schedpolicy != Py_None) {
+ int schedpolicy = _PyLong_AsInt(py_schedpolicy);
+
+ if (schedpolicy == -1 && PyErr_Occurred()) {
+ goto fail;
+ }
+ errno = posix_spawnattr_setschedpolicy(attrp, schedpolicy);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ all_flags |= POSIX_SPAWN_SETSCHEDULER;
+ }
+ errno = posix_spawnattr_setschedparam(attrp, &schedparam);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ all_flags |= POSIX_SPAWN_SETSCHEDPARAM;
+#else
+ PyErr_SetString(PyExc_NotImplementedError,
+ "The scheduler option is not supported in this system.");
+ goto fail;
+#endif
+ }
+
+ errno = posix_spawnattr_setflags(attrp, all_flags);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+
+ return 0;
+
+fail:
+ (void)posix_spawnattr_destroy(attrp);
+ return -1;
+}
+
+static int
+parse_file_actions(PyObject *file_actions,
+ posix_spawn_file_actions_t *file_actionsp,
+ PyObject *temp_buffer)
+{
+ PyObject *seq;
+ PyObject *file_action = NULL;
+ PyObject *tag_obj;
+
+ seq = PySequence_Fast(file_actions,
+ "file_actions must be a sequence or None");
+ if (seq == NULL) {
+ return -1;
+ }
+
+ errno = posix_spawn_file_actions_init(file_actionsp);
+ if (errno) {
+ posix_error();
+ Py_DECREF(seq);
+ return -1;
+ }
+
+ for (Py_ssize_t i = 0; i < PySequence_Fast_GET_SIZE(seq); ++i) {
+ file_action = PySequence_Fast_GET_ITEM(seq, i);
+ Py_INCREF(file_action);
+ if (!PyTuple_Check(file_action) || !PyTuple_GET_SIZE(file_action)) {
+ PyErr_SetString(PyExc_TypeError,
+ "Each file_actions element must be a non-empty tuple");
+ goto fail;
+ }
+ long tag = PyLong_AsLong(PyTuple_GET_ITEM(file_action, 0));
+ if (tag == -1 && PyErr_Occurred()) {
+ goto fail;
+ }
+
+ /* Populate the file_actions object */
+ switch (tag) {
+ case POSIX_SPAWN_OPEN: {
+ int fd, oflag;
+ PyObject *path;
+ unsigned long mode;
+ if (!PyArg_ParseTuple(file_action, "OiO&ik"
+ ";A open file_action tuple must have 5 elements",
+ &tag_obj, &fd, PyUnicode_FSConverter, &path,
+ &oflag, &mode))
+ {
+ goto fail;
+ }
+ if (PyList_Append(temp_buffer, path)) {
+ Py_DECREF(path);
+ goto fail;
+ }
+ errno = posix_spawn_file_actions_addopen(file_actionsp,
+ fd, PyBytes_AS_STRING(path), oflag, (mode_t)mode);
+ Py_DECREF(path);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ break;
+ }
+ case POSIX_SPAWN_CLOSE: {
+ int fd;
+ if (!PyArg_ParseTuple(file_action, "Oi"
+ ";A close file_action tuple must have 2 elements",
+ &tag_obj, &fd))
+ {
+ goto fail;
+ }
+ errno = posix_spawn_file_actions_addclose(file_actionsp, fd);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ break;
+ }
+ case POSIX_SPAWN_DUP2: {
+ int fd1, fd2;
+ if (!PyArg_ParseTuple(file_action, "Oii"
+ ";A dup2 file_action tuple must have 3 elements",
+ &tag_obj, &fd1, &fd2))
+ {
+ goto fail;
+ }
+ errno = posix_spawn_file_actions_adddup2(file_actionsp,
+ fd1, fd2);
+ if (errno) {
+ posix_error();
+ goto fail;
+ }
+ break;
+ }
+ default: {
+ PyErr_SetString(PyExc_TypeError,
+ "Unknown file_actions identifier");
+ goto fail;
+ }
+ }
+ Py_DECREF(file_action);
+ }
+
+ Py_DECREF(seq);
+ return 0;
+
+fail:
+ Py_DECREF(seq);
+ Py_DECREF(file_action);
+ (void)posix_spawn_file_actions_destroy(file_actionsp);
+ return -1;
+}
+
+
+static PyObject *
+py_posix_spawn(int use_posix_spawnp, PyObject *module, path_t *path, PyObject *argv,
+ PyObject *env, PyObject *file_actions,
+ PyObject *setpgroup, int resetids, int setsid, PyObject *setsigmask,
+ PyObject *setsigdef, PyObject *scheduler)
+{
+ const char *func_name = use_posix_spawnp ? "posix_spawnp" : "posix_spawn";
+ EXECV_CHAR **argvlist = NULL;
+ EXECV_CHAR **envlist = NULL;
+ posix_spawn_file_actions_t file_actions_buf;
+ posix_spawn_file_actions_t *file_actionsp = NULL;
+ posix_spawnattr_t attr;
+ posix_spawnattr_t *attrp = NULL;
+ Py_ssize_t argc, envc;
+ PyObject *result = NULL;
+ PyObject *temp_buffer = NULL;
+ pid_t pid;
+ int err_code;
+
+ /* posix_spawn and posix_spawnp have three arguments: (path, argv, env), where
+ argv is a list or tuple of strings and env is a dictionary
+ like posix.environ. */
+
+ if (!PyList_Check(argv) && !PyTuple_Check(argv)) {
+ PyErr_Format(PyExc_TypeError,
+ "%s: argv must be a tuple or list", func_name);
+ goto exit;
+ }
+ argc = PySequence_Size(argv);
+ if (argc < 1) {
+ PyErr_Format(PyExc_ValueError,
+ "%s: argv must not be empty", func_name);
+ return NULL;
+ }
+
+ if (!PyMapping_Check(env)) {
+ PyErr_Format(PyExc_TypeError,
+ "%s: environment must be a mapping object", func_name);
+ goto exit;
+ }
+
+ argvlist = parse_arglist(argv, &argc);
+ if (argvlist == NULL) {
+ goto exit;
+ }
+ if (!argvlist[0][0]) {
+ PyErr_Format(PyExc_ValueError,
+ "%s: argv first element cannot be empty", func_name);
+ goto exit;
+ }
+
+ envlist = parse_envlist(env, &envc);
+ if (envlist == NULL) {
+ goto exit;
+ }
+
+ if (file_actions != NULL && file_actions != Py_None) {
+ /* There is a bug in old versions of glibc that makes some of the
+ * helper functions for manipulating file actions not copy the provided
+ * buffers. The problem is that posix_spawn_file_actions_addopen does not
+ * copy the value of path for some old versions of glibc (<2.20).
+ * The use of temp_buffer here is a workaround that keeps the
+ * python objects that own the buffers alive until posix_spawn gets called.
+ * Check https://bugs.python.org/issue33630 and
+ * https://sourceware.org/bugzilla/show_bug.cgi?id=17048 for more info.*/
+ temp_buffer = PyList_New(0);
+ if (!temp_buffer) {
+ goto exit;
+ }
+ if (parse_file_actions(file_actions, &file_actions_buf, temp_buffer)) {
+ goto exit;
+ }
+ file_actionsp = &file_actions_buf;
+ }
+
+ if (parse_posix_spawn_flags(module, func_name, setpgroup, resetids, setsid,
+ setsigmask, setsigdef, scheduler, &attr)) {
+ goto exit;
+ }
+ attrp = &attr;
+
+ if (PySys_Audit("os.posix_spawn", "OOO", path->object, argv, env) < 0) {
+ goto exit;
+ }
+
+ _Py_BEGIN_SUPPRESS_IPH
+#ifdef HAVE_POSIX_SPAWNP
+ if (use_posix_spawnp) {
+ err_code = posix_spawnp(&pid, path->narrow,
+ file_actionsp, attrp, argvlist, envlist);
+ }
+ else
+#endif /* HAVE_POSIX_SPAWNP */
+ {
+ err_code = posix_spawn(&pid, path->narrow,
+ file_actionsp, attrp, argvlist, envlist);
+ }
+ _Py_END_SUPPRESS_IPH
+
+ if (err_code) {
+ errno = err_code;
+ PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path->object);
+ goto exit;
+ }
+#ifdef _Py_MEMORY_SANITIZER
+ __msan_unpoison(&pid, sizeof(pid));
+#endif
+ result = PyLong_FromPid(pid);
+
+exit:
+ if (file_actionsp) {
+ (void)posix_spawn_file_actions_destroy(file_actionsp);
+ }
+ if (attrp) {
+ (void)posix_spawnattr_destroy(attrp);
+ }
+ if (envlist) {
+ free_string_array(envlist, envc);
+ }
+ if (argvlist) {
+ free_string_array(argvlist, argc);
+ }
+ Py_XDECREF(temp_buffer);
+ return result;
+}
+
+
+/*[clinic input]
+
+os.posix_spawn
+ path: path_t
+ Path of executable file.
+ argv: object
+ Tuple or list of strings.
+ env: object
+ Dictionary of strings mapping to strings.
+ /
+ *
+ file_actions: object(c_default='NULL') = ()
+ A sequence of file action tuples.
+ setpgroup: object = NULL
+ The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.
+ resetids: bool(accept={int}) = False
+ If the value is `true` the POSIX_SPAWN_RESETIDS will be activated.
+ setsid: bool(accept={int}) = False
+ If the value is `true` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.
+ setsigmask: object(c_default='NULL') = ()
+ The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.
+ setsigdef: object(c_default='NULL') = ()
+ The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.
+ scheduler: object = NULL
+ A tuple with the scheduler policy (optional) and parameters.
+
+Execute the program specified by path in a new process.
+[clinic start generated code]*/
+
+static PyObject *
+os_posix_spawn_impl(PyObject *module, path_t *path, PyObject *argv,
+ PyObject *env, PyObject *file_actions,
+ PyObject *setpgroup, int resetids, int setsid,
+ PyObject *setsigmask, PyObject *setsigdef,
+ PyObject *scheduler)
+/*[clinic end generated code: output=14a1098c566bc675 input=8c6305619a00ad04]*/
+{
+ return py_posix_spawn(0, module, path, argv, env, file_actions,
+ setpgroup, resetids, setsid, setsigmask, setsigdef,
+ scheduler);
+}
+ #endif /* HAVE_POSIX_SPAWN */
+
+
+
+#ifdef HAVE_POSIX_SPAWNP
+/*[clinic input]
+
+os.posix_spawnp
+ path: path_t
+ Path of executable file.
+ argv: object
+ Tuple or list of strings.
+ env: object
+ Dictionary of strings mapping to strings.
+ /
+ *
+ file_actions: object(c_default='NULL') = ()
+ A sequence of file action tuples.
+ setpgroup: object = NULL
+ The pgroup to use with the POSIX_SPAWN_SETPGROUP flag.
+ resetids: bool(accept={int}) = False
+ If the value is `True` the POSIX_SPAWN_RESETIDS will be activated.
+ setsid: bool(accept={int}) = False
+ If the value is `True` the POSIX_SPAWN_SETSID or POSIX_SPAWN_SETSID_NP will be activated.
+ setsigmask: object(c_default='NULL') = ()
+ The sigmask to use with the POSIX_SPAWN_SETSIGMASK flag.
+ setsigdef: object(c_default='NULL') = ()
+ The sigmask to use with the POSIX_SPAWN_SETSIGDEF flag.
+ scheduler: object = NULL
+ A tuple with the scheduler policy (optional) and parameters.
+
+Execute the program specified by path in a new process.
+[clinic start generated code]*/
+
+static PyObject *
+os_posix_spawnp_impl(PyObject *module, path_t *path, PyObject *argv,
+ PyObject *env, PyObject *file_actions,
+ PyObject *setpgroup, int resetids, int setsid,
+ PyObject *setsigmask, PyObject *setsigdef,
+ PyObject *scheduler)
+/*[clinic end generated code: output=7b9aaefe3031238d input=c1911043a22028da]*/
+{
+ return py_posix_spawn(1, module, path, argv, env, file_actions,
+ setpgroup, resetids, setsid, setsigmask, setsigdef,
+ scheduler);
+}
+#endif /* HAVE_POSIX_SPAWNP */
+
+#ifdef HAVE_RTPSPAWN
+static intptr_t
+_rtp_spawn(int mode, const char *rtpFileName, const char *argv[],
+ const char *envp[])
+{
+ RTP_ID rtpid;
+ int status;
+ pid_t res;
+ int async_err = 0;
+
+ /* Set priority=100 and uStackSize=16 MiB (0x1000000) for new processes.
+ uStackSize=0 cannot be used, the default stack size is too small for
+ Python. */
+ if (envp) {
+ rtpid = rtpSpawn(rtpFileName, argv, envp,
+ 100, 0x1000000, 0, VX_FP_TASK);
+ }
+ else {
+ rtpid = rtpSpawn(rtpFileName, argv, (const char **)environ,
+ 100, 0x1000000, 0, VX_FP_TASK);
+ }
+ if ((rtpid != RTP_ID_ERROR) && (mode == _P_WAIT)) {
+ do {
+ res = waitpid((pid_t)rtpid, &status, 0);
+ } while (res < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+
+ if (res < 0)
+ return RTP_ID_ERROR;
+ return ((intptr_t)status);
+ }
+ return ((intptr_t)rtpid);
+}
+#endif
+
+#if defined(HAVE_SPAWNV) || defined(HAVE_WSPAWNV) || defined(HAVE_RTPSPAWN)
+/*[clinic input]
os.spawnv
mode: int
@@ -6402,23 +6402,23 @@ os_spawnv_impl(PyObject *module, int mode, path_t *path, PyObject *argv)
}
argvlist[argc] = NULL;
-#if !defined(HAVE_RTPSPAWN)
+#if !defined(HAVE_RTPSPAWN)
if (mode == _OLD_P_OVERLAY)
mode = _P_OVERLAY;
-#endif
-
- if (PySys_Audit("os.spawn", "iOOO", mode, path->object, argv,
- Py_None) < 0) {
- free_string_array(argvlist, argc);
- return NULL;
- }
-
+#endif
+
+ if (PySys_Audit("os.spawn", "iOOO", mode, path->object, argv,
+ Py_None) < 0) {
+ free_string_array(argvlist, argc);
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef HAVE_WSPAWNV
spawnval = _wspawnv(mode, path->wide, argvlist);
-#elif defined(HAVE_RTPSPAWN)
- spawnval = _rtp_spawn(mode, path->narrow, (const char **)argvlist, NULL);
+#elif defined(HAVE_RTPSPAWN)
+ spawnval = _rtp_spawn(mode, path->narrow, (const char **)argvlist, NULL);
#else
spawnval = _spawnv(mode, path->narrow, argvlist);
#endif
@@ -6517,22 +6517,22 @@ os_spawnve_impl(PyObject *module, int mode, path_t *path, PyObject *argv,
if (envlist == NULL)
goto fail_1;
-#if !defined(HAVE_RTPSPAWN)
+#if !defined(HAVE_RTPSPAWN)
if (mode == _OLD_P_OVERLAY)
mode = _P_OVERLAY;
-#endif
+#endif
+
+ if (PySys_Audit("os.spawn", "iOOO", mode, path->object, argv, env) < 0) {
+ goto fail_2;
+ }
- if (PySys_Audit("os.spawn", "iOOO", mode, path->object, argv, env) < 0) {
- goto fail_2;
- }
-
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef HAVE_WSPAWNV
spawnval = _wspawnve(mode, path->wide, argvlist, envlist);
-#elif defined(HAVE_RTPSPAWN)
- spawnval = _rtp_spawn(mode, path->narrow, (const char **)argvlist,
- (const char **)envlist);
+#elif defined(HAVE_RTPSPAWN)
+ spawnval = _rtp_spawn(mode, path->narrow, (const char **)argvlist,
+ (const char **)envlist);
#else
spawnval = _spawnve(mode, path->narrow, argvlist, envlist);
#endif
@@ -6544,7 +6544,7 @@ os_spawnve_impl(PyObject *module, int mode, path_t *path, PyObject *argv,
else
res = Py_BuildValue(_Py_PARSE_INTPTR, spawnval);
- fail_2:
+ fail_2:
while (--envc >= 0)
PyMem_DEL(envlist[envc]);
PyMem_DEL(envlist);
@@ -6567,7 +6567,7 @@ check_null_or_callable(PyObject *obj, const char* obj_name)
{
if (obj && !PyCallable_Check(obj)) {
PyErr_Format(PyExc_TypeError, "'%s' must be callable, not %s",
- obj_name, _PyType_Name(Py_TYPE(obj)));
+ obj_name, _PyType_Name(Py_TYPE(obj)));
return -1;
}
return 0;
@@ -6607,7 +6607,7 @@ os_register_at_fork_impl(PyObject *module, PyObject *before,
check_null_or_callable(after_in_parent, "after_in_parent")) {
return NULL;
}
- interp = _PyInterpreterState_GET();
+ interp = _PyInterpreterState_GET();
if (register_at_forker(&interp->before_forkers, before)) {
return NULL;
@@ -6638,10 +6638,10 @@ os_fork1_impl(PyObject *module)
{
pid_t pid;
- if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
- PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
- return NULL;
- }
+ if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
+ PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
+ return NULL;
+ }
PyOS_BeforeFork();
pid = fork1();
if (pid == 0) {
@@ -6672,15 +6672,15 @@ os_fork_impl(PyObject *module)
/*[clinic end generated code: output=3626c81f98985d49 input=13c956413110eeaa]*/
{
pid_t pid;
- PyInterpreterState *interp = _PyInterpreterState_GET();
- if (interp->config._isolated_interpreter) {
- PyErr_SetString(PyExc_RuntimeError,
- "fork not supported for isolated subinterpreters");
- return NULL;
- }
- if (PySys_Audit("os.fork", NULL) < 0) {
- return NULL;
- }
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ if (interp->config._isolated_interpreter) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "fork not supported for isolated subinterpreters");
+ return NULL;
+ }
+ if (PySys_Audit("os.fork", NULL) < 0) {
+ return NULL;
+ }
PyOS_BeforeFork();
pid = fork();
if (pid == 0) {
@@ -6746,14 +6746,14 @@ os.sched_getscheduler
pid: pid_t
/
-Get the scheduling policy for the process identified by pid.
+Get the scheduling policy for the process identified by pid.
Passing 0 for pid returns the scheduling policy for the calling process.
[clinic start generated code]*/
static PyObject *
os_sched_getscheduler_impl(PyObject *module, pid_t pid)
-/*[clinic end generated code: output=dce4c0bd3f1b34c8 input=8d99dac505485ac8]*/
+/*[clinic end generated code: output=dce4c0bd3f1b34c8 input=8d99dac505485ac8]*/
{
int policy;
@@ -6765,9 +6765,9 @@ os_sched_getscheduler_impl(PyObject *module, pid_t pid)
#endif /* HAVE_SCHED_SETSCHEDULER */
-#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
+#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
/*[clinic input]
-class os.sched_param "PyObject *" "SchedParamType"
+class os.sched_param "PyObject *" "SchedParamType"
@classmethod
os.sched_param.__new__
@@ -6775,12 +6775,12 @@ os.sched_param.__new__
sched_priority: object
A scheduling parameter.
-Currently has only one field: sched_priority
+Currently has only one field: sched_priority
[clinic start generated code]*/
static PyObject *
os_sched_param_impl(PyTypeObject *type, PyObject *sched_priority)
-/*[clinic end generated code: output=48f4067d60f48c13 input=eb42909a2c0e3e6c]*/
+/*[clinic end generated code: output=48f4067d60f48c13 input=eb42909a2c0e3e6c]*/
{
PyObject *res;
@@ -6807,11 +6807,11 @@ static PyStructSequence_Desc sched_param_desc = {
};
static int
-convert_sched_param(PyObject *module, PyObject *param, struct sched_param *res)
+convert_sched_param(PyObject *module, PyObject *param, struct sched_param *res)
{
long priority;
- if (!Py_IS_TYPE(param, (PyTypeObject *)get_posix_state(module)->SchedParamType)) {
+ if (!Py_IS_TYPE(param, (PyTypeObject *)get_posix_state(module)->SchedParamType)) {
PyErr_SetString(PyExc_TypeError, "must have a sched_param object");
return 0;
}
@@ -6825,7 +6825,7 @@ convert_sched_param(PyObject *module, PyObject *param, struct sched_param *res)
res->sched_priority = Py_SAFE_DOWNCAST(priority, long, int);
return 1;
}
-#endif /* defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM) */
+#endif /* defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM) */
#ifdef HAVE_SCHED_SETSCHEDULER
@@ -6834,7 +6834,7 @@ os.sched_setscheduler
pid: pid_t
policy: int
- param as param_obj: object
+ param as param_obj: object
/
Set the scheduling policy for the process identified by pid.
@@ -6845,20 +6845,20 @@ param is an instance of sched_param.
static PyObject *
os_sched_setscheduler_impl(PyObject *module, pid_t pid, int policy,
- PyObject *param_obj)
-/*[clinic end generated code: output=cde27faa55dc993e input=73013d731bd8fbe9]*/
-{
- struct sched_param param;
- if (!convert_sched_param(module, param_obj, &param)) {
- return NULL;
- }
-
+ PyObject *param_obj)
+/*[clinic end generated code: output=cde27faa55dc993e input=73013d731bd8fbe9]*/
+{
+ struct sched_param param;
+ if (!convert_sched_param(module, param_obj, &param)) {
+ return NULL;
+ }
+
/*
** sched_setscheduler() returns 0 in Linux, but the previous
** scheduling policy under Solaris/Illumos, and others.
** On error, -1 is returned in all Operating Systems.
*/
- if (sched_setscheduler(pid, policy, &param) == -1)
+ if (sched_setscheduler(pid, policy, &param) == -1)
return posix_error();
Py_RETURN_NONE;
}
@@ -6887,8 +6887,8 @@ os_sched_getparam_impl(PyObject *module, pid_t pid)
if (sched_getparam(pid, &param))
return posix_error();
- PyObject *SchedParamType = get_posix_state(module)->SchedParamType;
- result = PyStructSequence_New((PyTypeObject *)SchedParamType);
+ PyObject *SchedParamType = get_posix_state(module)->SchedParamType;
+ result = PyStructSequence_New((PyTypeObject *)SchedParamType);
if (!result)
return NULL;
priority = PyLong_FromLong(param.sched_priority);
@@ -6904,7 +6904,7 @@ os_sched_getparam_impl(PyObject *module, pid_t pid)
/*[clinic input]
os.sched_setparam
pid: pid_t
- param as param_obj: object
+ param as param_obj: object
/
Set scheduling parameters for the process identified by pid.
@@ -6914,15 +6914,15 @@ param should be an instance of sched_param.
[clinic start generated code]*/
static PyObject *
-os_sched_setparam_impl(PyObject *module, pid_t pid, PyObject *param_obj)
-/*[clinic end generated code: output=f19fe020a53741c1 input=27b98337c8b2dcc7]*/
+os_sched_setparam_impl(PyObject *module, pid_t pid, PyObject *param_obj)
+/*[clinic end generated code: output=f19fe020a53741c1 input=27b98337c8b2dcc7]*/
{
- struct sched_param param;
- if (!convert_sched_param(module, param_obj, &param)) {
- return NULL;
- }
-
- if (sched_setparam(pid, &param))
+ struct sched_param param;
+ if (!convert_sched_param(module, param_obj, &param)) {
+ return NULL;
+ }
+
+ if (sched_setparam(pid, &param))
return posix_error();
Py_RETURN_NONE;
}
@@ -7056,9 +7056,9 @@ os_sched_setaffinity_impl(PyObject *module, pid_t pid, PyObject *mask)
}
CPU_SET_S(cpu, setsize, cpu_set);
}
- if (PyErr_Occurred()) {
- goto error;
- }
+ if (PyErr_Occurred()) {
+ goto error;
+ }
Py_CLEAR(iterator);
if (sched_setaffinity(pid, setsize, cpu_set)) {
@@ -7294,13 +7294,13 @@ os_forkpty_impl(PyObject *module)
int master_fd = -1;
pid_t pid;
- if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
- PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
- return NULL;
- }
- if (PySys_Audit("os.forkpty", NULL) < 0) {
- return NULL;
- }
+ if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
+ PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
+ return NULL;
+ }
+ if (PySys_Audit("os.forkpty", NULL) < 0) {
+ return NULL;
+ }
PyOS_BeforeFork();
pid = forkpty(&master_fd, NULL, NULL, NULL);
if (pid == 0) {
@@ -7380,100 +7380,100 @@ os_getpid_impl(PyObject *module)
}
#endif /* HAVE_GETPID */
-#ifdef NGROUPS_MAX
-#define MAX_GROUPS NGROUPS_MAX
-#else
- /* defined to be 16 on Solaris7, so this should be a small number */
-#define MAX_GROUPS 64
-#endif
-
+#ifdef NGROUPS_MAX
+#define MAX_GROUPS NGROUPS_MAX
+#else
+ /* defined to be 16 on Solaris7, so this should be a small number */
+#define MAX_GROUPS 64
+#endif
+
#ifdef HAVE_GETGROUPLIST
-#ifdef __APPLE__
-/*[clinic input]
-os.getgrouplist
-
- user: str
- username to lookup
- group as basegid: int
- base group id of the user
- /
-
-Returns a list of groups to which a user belongs.
-[clinic start generated code]*/
-
-static PyObject *
-os_getgrouplist_impl(PyObject *module, const char *user, int basegid)
-/*[clinic end generated code: output=6e734697b8c26de0 input=f8d870374b09a490]*/
-#else
-/*[clinic input]
-os.getgrouplist
-
- user: str
- username to lookup
- group as basegid: gid_t
- base group id of the user
- /
-
-Returns a list of groups to which a user belongs.
-[clinic start generated code]*/
-
-static PyObject *
-os_getgrouplist_impl(PyObject *module, const char *user, gid_t basegid)
-/*[clinic end generated code: output=0ebd7fb70115575b input=cc61d5c20b08958d]*/
-#endif
+#ifdef __APPLE__
+/*[clinic input]
+os.getgrouplist
+
+ user: str
+ username to lookup
+ group as basegid: int
+ base group id of the user
+ /
+
+Returns a list of groups to which a user belongs.
+[clinic start generated code]*/
+
+static PyObject *
+os_getgrouplist_impl(PyObject *module, const char *user, int basegid)
+/*[clinic end generated code: output=6e734697b8c26de0 input=f8d870374b09a490]*/
+#else
+/*[clinic input]
+os.getgrouplist
+
+ user: str
+ username to lookup
+ group as basegid: gid_t
+ base group id of the user
+ /
+
+Returns a list of groups to which a user belongs.
+[clinic start generated code]*/
+
+static PyObject *
+os_getgrouplist_impl(PyObject *module, const char *user, gid_t basegid)
+/*[clinic end generated code: output=0ebd7fb70115575b input=cc61d5c20b08958d]*/
+#endif
{
int i, ngroups;
PyObject *list;
#ifdef __APPLE__
- int *groups;
-#else
- gid_t *groups;
-#endif
-
- /*
- * NGROUPS_MAX is defined by POSIX.1 as the maximum
- * number of supplimental groups a users can belong to.
- * We have to increment it by one because
- * getgrouplist() returns both the supplemental groups
- * and the primary group, i.e. all of the groups the
- * user belongs to.
- */
- ngroups = 1 + MAX_GROUPS;
-
- while (1) {
+ int *groups;
+#else
+ gid_t *groups;
+#endif
+
+ /*
+ * NGROUPS_MAX is defined by POSIX.1 as the maximum
+ * number of supplimental groups a users can belong to.
+ * We have to increment it by one because
+ * getgrouplist() returns both the supplemental groups
+ * and the primary group, i.e. all of the groups the
+ * user belongs to.
+ */
+ ngroups = 1 + MAX_GROUPS;
+
+ while (1) {
#ifdef __APPLE__
- groups = PyMem_New(int, ngroups);
-#else
- groups = PyMem_New(gid_t, ngroups);
-#endif
- if (groups == NULL) {
- return PyErr_NoMemory();
- }
-
- int old_ngroups = ngroups;
- if (getgrouplist(user, basegid, groups, &ngroups) != -1) {
- /* Success */
- break;
- }
-
- /* getgrouplist() fails if the group list is too small */
- PyMem_Free(groups);
-
- if (ngroups > old_ngroups) {
- /* If the group list is too small, the glibc implementation of
- getgrouplist() sets ngroups to the total number of groups and
- returns -1. */
- }
- else {
- /* Double the group list size */
- if (ngroups > INT_MAX / 2) {
- return PyErr_NoMemory();
- }
- ngroups *= 2;
- }
-
- /* Retry getgrouplist() with a larger group list */
+ groups = PyMem_New(int, ngroups);
+#else
+ groups = PyMem_New(gid_t, ngroups);
+#endif
+ if (groups == NULL) {
+ return PyErr_NoMemory();
+ }
+
+ int old_ngroups = ngroups;
+ if (getgrouplist(user, basegid, groups, &ngroups) != -1) {
+ /* Success */
+ break;
+ }
+
+ /* getgrouplist() fails if the group list is too small */
+ PyMem_Free(groups);
+
+ if (ngroups > old_ngroups) {
+ /* If the group list is too small, the glibc implementation of
+ getgrouplist() sets ngroups to the total number of groups and
+ returns -1. */
+ }
+ else {
+ /* Double the group list size */
+ if (ngroups > INT_MAX / 2) {
+ return PyErr_NoMemory();
+ }
+ ngroups *= 2;
+ }
+
+ /* Retry getgrouplist() with a larger group list */
}
#ifdef _Py_MEMORY_SANITIZER
@@ -7611,47 +7611,47 @@ os_getgroups_impl(PyObject *module)
#endif /* HAVE_GETGROUPS */
#ifdef HAVE_INITGROUPS
-#ifdef __APPLE__
-/*[clinic input]
-os.initgroups
-
- username as oname: FSConverter
- gid: int
- /
-
-Initialize the group access list.
-
-Call the system initgroups() to initialize the group access list with all of
-the groups of which the specified username is a member, plus the specified
-group id.
-[clinic start generated code]*/
-
-static PyObject *
-os_initgroups_impl(PyObject *module, PyObject *oname, int gid)
-/*[clinic end generated code: output=7f074d30a425fd3a input=df3d54331b0af204]*/
-#else
-/*[clinic input]
-os.initgroups
-
- username as oname: FSConverter
- gid: gid_t
- /
-
-Initialize the group access list.
-
-Call the system initgroups() to initialize the group access list with all of
-the groups of which the specified username is a member, plus the specified
-group id.
-[clinic start generated code]*/
-
-static PyObject *
-os_initgroups_impl(PyObject *module, PyObject *oname, gid_t gid)
-/*[clinic end generated code: output=59341244521a9e3f input=0cb91bdc59a4c564]*/
-#endif
-{
- const char *username = PyBytes_AS_STRING(oname);
-
- if (initgroups(username, gid) == -1)
+#ifdef __APPLE__
+/*[clinic input]
+os.initgroups
+
+ username as oname: FSConverter
+ gid: int
+ /
+
+Initialize the group access list.
+
+Call the system initgroups() to initialize the group access list with all of
+the groups of which the specified username is a member, plus the specified
+group id.
+[clinic start generated code]*/
+
+static PyObject *
+os_initgroups_impl(PyObject *module, PyObject *oname, int gid)
+/*[clinic end generated code: output=7f074d30a425fd3a input=df3d54331b0af204]*/
+#else
+/*[clinic input]
+os.initgroups
+
+ username as oname: FSConverter
+ gid: gid_t
+ /
+
+Initialize the group access list.
+
+Call the system initgroups() to initialize the group access list with all of
+the groups of which the specified username is a member, plus the specified
+group id.
+[clinic start generated code]*/
+
+static PyObject *
+os_initgroups_impl(PyObject *module, PyObject *oname, gid_t gid)
+/*[clinic end generated code: output=59341244521a9e3f input=0cb91bdc59a4c564]*/
+#endif
+{
+ const char *username = PyBytes_AS_STRING(oname);
+
+ if (initgroups(username, gid) == -1)
return PyErr_SetFromErrno(PyExc_OSError);
Py_RETURN_NONE;
@@ -7865,10 +7865,10 @@ Kill a process with a signal.
static PyObject *
os_kill_impl(PyObject *module, pid_t pid, Py_ssize_t signal)
/*[clinic end generated code: output=8e346a6701c88568 input=61a36b86ca275ab9]*/
-{
- if (PySys_Audit("os.kill", "in", pid, signal) < 0) {
- return NULL;
- }
+{
+ if (PySys_Audit("os.kill", "in", pid, signal) < 0) {
+ return NULL;
+ }
#ifndef MS_WINDOWS
if (kill(pid, (int)signal) == -1)
return posix_error();
@@ -7908,7 +7908,7 @@ os_kill_impl(PyObject *module, pid_t pid, Py_ssize_t signal)
CloseHandle(handle);
return result;
-#endif /* !MS_WINDOWS */
+#endif /* !MS_WINDOWS */
}
#endif /* HAVE_KILL */
@@ -7928,9 +7928,9 @@ static PyObject *
os_killpg_impl(PyObject *module, pid_t pgid, int signal)
/*[clinic end generated code: output=6dbcd2f1fdf5fdba input=38b5449eb8faec19]*/
{
- if (PySys_Audit("os.killpg", "ii", pgid, signal) < 0) {
- return NULL;
- }
+ if (PySys_Audit("os.killpg", "ii", pgid, signal) < 0) {
+ return NULL;
+ }
/* XXX some man pages make the `pgid` parameter an int, others
a pid_t. Since getpgrp() returns a pid_t, we assume killpg should
take the same type. Moreover, pid_t is always at least as wide as
@@ -8151,31 +8151,31 @@ os_setgroups(PyObject *module, PyObject *groups)
#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
static PyObject *
-wait_helper(PyObject *module, pid_t pid, int status, struct rusage *ru)
+wait_helper(PyObject *module, pid_t pid, int status, struct rusage *ru)
{
PyObject *result;
- PyObject *struct_rusage;
+ PyObject *struct_rusage;
if (pid == -1)
return posix_error();
- // If wait succeeded but no child was ready to report status, ru will not
- // have been populated.
- if (pid == 0) {
- memset(ru, 0, sizeof(*ru));
+ // If wait succeeded but no child was ready to report status, ru will not
+ // have been populated.
+ if (pid == 0) {
+ memset(ru, 0, sizeof(*ru));
}
- PyObject *m = PyImport_ImportModuleNoBlock("resource");
- if (m == NULL)
- return NULL;
- struct_rusage = PyObject_GetAttr(m, get_posix_state(module)->struct_rusage);
- Py_DECREF(m);
- if (struct_rusage == NULL)
- return NULL;
-
+ PyObject *m = PyImport_ImportModuleNoBlock("resource");
+ if (m == NULL)
+ return NULL;
+ struct_rusage = PyObject_GetAttr(m, get_posix_state(module)->struct_rusage);
+ Py_DECREF(m);
+ if (struct_rusage == NULL)
+ return NULL;
+
/* XXX(nnorwitz): Copied (w/mods) from resource.c, there should be only one. */
result = PyStructSequence_New((PyTypeObject*) struct_rusage);
- Py_DECREF(struct_rusage);
+ Py_DECREF(struct_rusage);
if (!result)
return NULL;
@@ -8244,7 +8244,7 @@ os_wait3_impl(PyObject *module, int options)
if (pid < 0)
return (!async_err) ? posix_error() : NULL;
- return wait_helper(module, pid, WAIT_STATUS_INT(status), &ru);
+ return wait_helper(module, pid, WAIT_STATUS_INT(status), &ru);
}
#endif /* HAVE_WAIT3 */
@@ -8281,7 +8281,7 @@ os_wait4_impl(PyObject *module, pid_t pid, int options)
if (res < 0)
return (!async_err) ? posix_error() : NULL;
- return wait_helper(module, res, WAIT_STATUS_INT(status), &ru);
+ return wait_helper(module, res, WAIT_STATUS_INT(status), &ru);
}
#endif /* HAVE_WAIT4 */
@@ -8326,8 +8326,8 @@ os_waitid_impl(PyObject *module, idtype_t idtype, id_t id, int options)
if (si.si_pid == 0)
Py_RETURN_NONE;
- PyObject *WaitidResultType = get_posix_state(module)->WaitidResultType;
- result = PyStructSequence_New((PyTypeObject *)WaitidResultType);
+ PyObject *WaitidResultType = get_posix_state(module)->WaitidResultType;
+ result = PyStructSequence_New((PyTypeObject *)WaitidResultType);
if (!result)
return NULL;
@@ -8414,10 +8414,10 @@ os_waitpid_impl(PyObject *module, intptr_t pid, int options)
if (res < 0)
return (!async_err) ? posix_error() : NULL;
- unsigned long long ustatus = (unsigned int)status;
-
+ unsigned long long ustatus = (unsigned int)status;
+
/* shift the status left a byte so this is more like the POSIX waitpid */
- return Py_BuildValue(_Py_PARSE_INTPTR "K", res, ustatus << 8);
+ return Py_BuildValue(_Py_PARSE_INTPTR "K", res, ustatus << 8);
}
#endif
@@ -8453,156 +8453,156 @@ os_wait_impl(PyObject *module)
}
#endif /* HAVE_WAIT */
-#if defined(__linux__) && defined(__NR_pidfd_open)
-/*[clinic input]
-os.pidfd_open
- pid: pid_t
- flags: unsigned_int = 0
-
-Return a file descriptor referring to the process *pid*.
-
-The descriptor can be used to perform process management without races and
-signals.
-[clinic start generated code]*/
-
-static PyObject *
-os_pidfd_open_impl(PyObject *module, pid_t pid, unsigned int flags)
-/*[clinic end generated code: output=5c7252698947dc41 input=c3fd99ce947ccfef]*/
-{
- int fd = syscall(__NR_pidfd_open, pid, flags);
- if (fd < 0) {
- return posix_error();
- }
- return PyLong_FromLong(fd);
-}
-#endif
-
-
+#if defined(__linux__) && defined(__NR_pidfd_open)
+/*[clinic input]
+os.pidfd_open
+ pid: pid_t
+ flags: unsigned_int = 0
+
+Return a file descriptor referring to the process *pid*.
+
+The descriptor can be used to perform process management without races and
+signals.
+[clinic start generated code]*/
+
+static PyObject *
+os_pidfd_open_impl(PyObject *module, pid_t pid, unsigned int flags)
+/*[clinic end generated code: output=5c7252698947dc41 input=c3fd99ce947ccfef]*/
+{
+ int fd = syscall(__NR_pidfd_open, pid, flags);
+ if (fd < 0) {
+ return posix_error();
+ }
+ return PyLong_FromLong(fd);
+}
+#endif
+
+
#if defined(HAVE_READLINK) || defined(MS_WINDOWS)
-/*[clinic input]
-os.readlink
-
- path: path_t
- *
- dir_fd: dir_fd(requires='readlinkat') = None
-
-Return a string representing the path to which the symbolic link points.
-
-If dir_fd is not None, it should be a file descriptor open to a directory,
-and path should be relative; path will then be relative to that directory.
-
-dir_fd may not be implemented on your platform. If it is unavailable,
-using it will raise a NotImplementedError.
-[clinic start generated code]*/
-
-static PyObject *
-os_readlink_impl(PyObject *module, path_t *path, int dir_fd)
-/*[clinic end generated code: output=d21b732a2e814030 input=113c87e0db1ecaf2]*/
-{
-#if defined(HAVE_READLINK)
+/*[clinic input]
+os.readlink
+
+ path: path_t
+ *
+ dir_fd: dir_fd(requires='readlinkat') = None
+
+Return a string representing the path to which the symbolic link points.
+
+If dir_fd is not None, it should be a file descriptor open to a directory,
+and path should be relative; path will then be relative to that directory.
+
+dir_fd may not be implemented on your platform. If it is unavailable,
+using it will raise a NotImplementedError.
+[clinic start generated code]*/
+
+static PyObject *
+os_readlink_impl(PyObject *module, path_t *path, int dir_fd)
+/*[clinic end generated code: output=d21b732a2e814030 input=113c87e0db1ecaf2]*/
+{
+#if defined(HAVE_READLINK)
char buffer[MAXPATHLEN+1];
ssize_t length;
-#ifdef HAVE_READLINKAT
- int readlinkat_unavailable = 0;
-#endif
+#ifdef HAVE_READLINKAT
+ int readlinkat_unavailable = 0;
+#endif
Py_BEGIN_ALLOW_THREADS
#ifdef HAVE_READLINKAT
- if (dir_fd != DEFAULT_DIR_FD) {
- if (HAVE_READLINKAT_RUNTIME) {
- length = readlinkat(dir_fd, path->narrow, buffer, MAXPATHLEN);
- } else {
- readlinkat_unavailable = 1;
- }
- } else
-#endif
- length = readlink(path->narrow, buffer, MAXPATHLEN);
+ if (dir_fd != DEFAULT_DIR_FD) {
+ if (HAVE_READLINKAT_RUNTIME) {
+ length = readlinkat(dir_fd, path->narrow, buffer, MAXPATHLEN);
+ } else {
+ readlinkat_unavailable = 1;
+ }
+ } else
+#endif
+ length = readlink(path->narrow, buffer, MAXPATHLEN);
Py_END_ALLOW_THREADS
-#ifdef HAVE_READLINKAT
- if (readlinkat_unavailable) {
- argument_unavailable_error(NULL, "dir_fd");
- return NULL;
- }
-#endif
-
+#ifdef HAVE_READLINKAT
+ if (readlinkat_unavailable) {
+ argument_unavailable_error(NULL, "dir_fd");
+ return NULL;
+ }
+#endif
+
if (length < 0) {
- return path_error(path);
+ return path_error(path);
}
buffer[length] = '\0';
- if (PyUnicode_Check(path->object))
- return PyUnicode_DecodeFSDefaultAndSize(buffer, length);
+ if (PyUnicode_Check(path->object))
+ return PyUnicode_DecodeFSDefaultAndSize(buffer, length);
else
- return PyBytes_FromStringAndSize(buffer, length);
-#elif defined(MS_WINDOWS)
+ return PyBytes_FromStringAndSize(buffer, length);
+#elif defined(MS_WINDOWS)
DWORD n_bytes_returned;
- DWORD io_result = 0;
+ DWORD io_result = 0;
HANDLE reparse_point_handle;
char target_buffer[_Py_MAXIMUM_REPARSE_DATA_BUFFER_SIZE];
_Py_REPARSE_DATA_BUFFER *rdb = (_Py_REPARSE_DATA_BUFFER *)target_buffer;
- PyObject *result = NULL;
+ PyObject *result = NULL;
/* First get a handle to the reparse point */
Py_BEGIN_ALLOW_THREADS
reparse_point_handle = CreateFileW(
- path->wide,
+ path->wide,
0,
0,
0,
OPEN_EXISTING,
FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS,
0);
- if (reparse_point_handle != INVALID_HANDLE_VALUE) {
- /* New call DeviceIoControl to read the reparse point */
- io_result = DeviceIoControl(
- reparse_point_handle,
- FSCTL_GET_REPARSE_POINT,
- 0, 0, /* in buffer */
- target_buffer, sizeof(target_buffer),
- &n_bytes_returned,
- 0 /* we're not using OVERLAPPED_IO */
- );
- CloseHandle(reparse_point_handle);
- }
+ if (reparse_point_handle != INVALID_HANDLE_VALUE) {
+ /* New call DeviceIoControl to read the reparse point */
+ io_result = DeviceIoControl(
+ reparse_point_handle,
+ FSCTL_GET_REPARSE_POINT,
+ 0, 0, /* in buffer */
+ target_buffer, sizeof(target_buffer),
+ &n_bytes_returned,
+ 0 /* we're not using OVERLAPPED_IO */
+ );
+ CloseHandle(reparse_point_handle);
+ }
Py_END_ALLOW_THREADS
- if (io_result == 0) {
- return path_error(path);
- }
+ if (io_result == 0) {
+ return path_error(path);
+ }
- wchar_t *name = NULL;
- Py_ssize_t nameLen = 0;
- if (rdb->ReparseTag == IO_REPARSE_TAG_SYMLINK)
+ wchar_t *name = NULL;
+ Py_ssize_t nameLen = 0;
+ if (rdb->ReparseTag == IO_REPARSE_TAG_SYMLINK)
+ {
+ name = (wchar_t *)((char*)rdb->SymbolicLinkReparseBuffer.PathBuffer +
+ rdb->SymbolicLinkReparseBuffer.SubstituteNameOffset);
+ nameLen = rdb->SymbolicLinkReparseBuffer.SubstituteNameLength / sizeof(wchar_t);
+ }
+ else if (rdb->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT)
+ {
+ name = (wchar_t *)((char*)rdb->MountPointReparseBuffer.PathBuffer +
+ rdb->MountPointReparseBuffer.SubstituteNameOffset);
+ nameLen = rdb->MountPointReparseBuffer.SubstituteNameLength / sizeof(wchar_t);
+ }
+ else
{
- name = (wchar_t *)((char*)rdb->SymbolicLinkReparseBuffer.PathBuffer +
- rdb->SymbolicLinkReparseBuffer.SubstituteNameOffset);
- nameLen = rdb->SymbolicLinkReparseBuffer.SubstituteNameLength / sizeof(wchar_t);
- }
- else if (rdb->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT)
- {
- name = (wchar_t *)((char*)rdb->MountPointReparseBuffer.PathBuffer +
- rdb->MountPointReparseBuffer.SubstituteNameOffset);
- nameLen = rdb->MountPointReparseBuffer.SubstituteNameLength / sizeof(wchar_t);
- }
- else
- {
- PyErr_SetString(PyExc_ValueError, "not a symbolic link");
- }
- if (name) {
- if (nameLen > 4 && wcsncmp(name, L"\\??\\", 4) == 0) {
- /* Our buffer is mutable, so this is okay */
- name[1] = L'\\';
- }
- result = PyUnicode_FromWideChar(name, nameLen);
- if (result && path->narrow) {
- Py_SETREF(result, PyUnicode_EncodeFSDefault(result));
- }
- }
+ PyErr_SetString(PyExc_ValueError, "not a symbolic link");
+ }
+ if (name) {
+ if (nameLen > 4 && wcsncmp(name, L"\\??\\", 4) == 0) {
+ /* Our buffer is mutable, so this is okay */
+ name[1] = L'\\';
+ }
+ result = PyUnicode_FromWideChar(name, nameLen);
+ if (result && path->narrow) {
+ Py_SETREF(result, PyUnicode_EncodeFSDefault(result));
+ }
+ }
return result;
-#endif
+#endif
}
-#endif /* defined(HAVE_READLINK) || defined(MS_WINDOWS) */
+#endif /* defined(HAVE_READLINK) || defined(MS_WINDOWS) */
#if defined(MS_WINDOWS)
@@ -8626,12 +8626,12 @@ _dirnameW(WCHAR *path)
return 0;
}
-#endif
-
-#ifdef HAVE_SYMLINK
-
-#if defined(MS_WINDOWS)
-
+#endif
+
+#ifdef HAVE_SYMLINK
+
+#if defined(MS_WINDOWS)
+
/* Is this path absolute? */
static int
_is_absW(const WCHAR *path)
@@ -8715,65 +8715,65 @@ os_symlink_impl(PyObject *module, path_t *src, path_t *dst,
{
#ifdef MS_WINDOWS
DWORD result;
- DWORD flags = 0;
-
- /* Assumed true, set to false if detected to not be available. */
- static int windows_has_symlink_unprivileged_flag = TRUE;
+ DWORD flags = 0;
+
+ /* Assumed true, set to false if detected to not be available. */
+ static int windows_has_symlink_unprivileged_flag = TRUE;
#else
int result;
-#ifdef HAVE_SYMLINKAT
- int symlinkat_unavailable = 0;
+#ifdef HAVE_SYMLINKAT
+ int symlinkat_unavailable = 0;
+#endif
#endif
-#endif
- if (PySys_Audit("os.symlink", "OOi", src->object, dst->object,
- dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
+ if (PySys_Audit("os.symlink", "OOi", src->object, dst->object,
+ dir_fd == DEFAULT_DIR_FD ? -1 : dir_fd) < 0) {
return NULL;
- }
+ }
#ifdef MS_WINDOWS
- if (windows_has_symlink_unprivileged_flag) {
- /* Allow non-admin symlinks if system allows it. */
- flags |= SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE;
- }
-
+ if (windows_has_symlink_unprivileged_flag) {
+ /* Allow non-admin symlinks if system allows it. */
+ flags |= SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE;
+ }
+
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
- /* if src is a directory, ensure flags==1 (target_is_directory bit) */
- if (target_is_directory || _check_dirW(src->wide, dst->wide)) {
- flags |= SYMBOLIC_LINK_FLAG_DIRECTORY;
- }
-
- result = CreateSymbolicLinkW(dst->wide, src->wide, flags);
+ /* if src is a directory, ensure flags==1 (target_is_directory bit) */
+ if (target_is_directory || _check_dirW(src->wide, dst->wide)) {
+ flags |= SYMBOLIC_LINK_FLAG_DIRECTORY;
+ }
+
+ result = CreateSymbolicLinkW(dst->wide, src->wide, flags);
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
- if (windows_has_symlink_unprivileged_flag && !result &&
- ERROR_INVALID_PARAMETER == GetLastError()) {
-
- Py_BEGIN_ALLOW_THREADS
- _Py_BEGIN_SUPPRESS_IPH
- /* This error might be caused by
- SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE not being supported.
- Try again, and update windows_has_symlink_unprivileged_flag if we
- are successful this time.
-
- NOTE: There is a risk of a race condition here if there are other
- conditions than the flag causing ERROR_INVALID_PARAMETER, and
- another process (or thread) changes that condition in between our
- calls to CreateSymbolicLink.
- */
- flags &= ~(SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE);
- result = CreateSymbolicLinkW(dst->wide, src->wide, flags);
- _Py_END_SUPPRESS_IPH
- Py_END_ALLOW_THREADS
-
- if (result || ERROR_INVALID_PARAMETER != GetLastError()) {
- windows_has_symlink_unprivileged_flag = FALSE;
- }
- }
-
+ if (windows_has_symlink_unprivileged_flag && !result &&
+ ERROR_INVALID_PARAMETER == GetLastError()) {
+
+ Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+ /* This error might be caused by
+ SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE not being supported.
+ Try again, and update windows_has_symlink_unprivileged_flag if we
+ are successful this time.
+
+ NOTE: There is a risk of a race condition here if there are other
+ conditions than the flag causing ERROR_INVALID_PARAMETER, and
+ another process (or thread) changes that condition in between our
+ calls to CreateSymbolicLink.
+ */
+ flags &= ~(SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE);
+ result = CreateSymbolicLinkW(dst->wide, src->wide, flags);
+ _Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
+
+ if (result || ERROR_INVALID_PARAMETER != GetLastError()) {
+ windows_has_symlink_unprivileged_flag = FALSE;
+ }
+ }
+
if (!result)
return path_error2(src, dst);
@@ -8786,25 +8786,25 @@ os_symlink_impl(PyObject *module, path_t *src, path_t *dst,
}
Py_BEGIN_ALLOW_THREADS
-#ifdef HAVE_SYMLINKAT
- if (dir_fd != DEFAULT_DIR_FD) {
- if (HAVE_SYMLINKAT_RUNTIME) {
- result = symlinkat(src->narrow, dir_fd, dst->narrow);
- } else {
- symlinkat_unavailable = 1;
- }
- } else
+#ifdef HAVE_SYMLINKAT
+ if (dir_fd != DEFAULT_DIR_FD) {
+ if (HAVE_SYMLINKAT_RUNTIME) {
+ result = symlinkat(src->narrow, dir_fd, dst->narrow);
+ } else {
+ symlinkat_unavailable = 1;
+ }
+ } else
#endif
result = symlink(src->narrow, dst->narrow);
Py_END_ALLOW_THREADS
-#ifdef HAVE_SYMLINKAT
- if (symlinkat_unavailable) {
- argument_unavailable_error(NULL, "dir_fd");
- return NULL;
- }
-#endif
-
+#ifdef HAVE_SYMLINKAT
+ if (symlinkat_unavailable) {
+ argument_unavailable_error(NULL, "dir_fd");
+ return NULL;
+ }
+#endif
+
if (result)
return path_error2(src, dst);
#endif
@@ -8848,12 +8848,12 @@ static PyStructSequence_Desc times_result_desc = {
#ifdef HAVE_TIMES
static PyObject *
-build_times_result(PyObject *module, double user, double system,
+build_times_result(PyObject *module, double user, double system,
double children_user, double children_system,
double elapsed)
{
- PyObject *TimesResultType = get_posix_state(module)->TimesResultType;
- PyObject *value = PyStructSequence_New((PyTypeObject *)TimesResultType);
+ PyObject *TimesResultType = get_posix_state(module)->TimesResultType;
+ PyObject *value = PyStructSequence_New((PyTypeObject *)TimesResultType);
if (value == NULL)
return NULL;
@@ -8908,7 +8908,7 @@ os_times_impl(PyObject *module)
1e7 is one second in such units; 1e-7 the inverse.
429.4967296 is 2**32 / 1e7 or 2**32 * 1e-7.
*/
- return build_times_result(module,
+ return build_times_result(module,
(double)(user.dwHighDateTime*429.4967296 +
user.dwLowDateTime*1e-7),
(double)(kernel.dwHighDateTime*429.4967296 +
@@ -8927,7 +8927,7 @@ os_times_impl(PyObject *module)
c = times(&t);
if (c == (clock_t) -1)
return posix_error();
- return build_times_result(module,
+ return build_times_result(module,
(double)t.tms_utime / ticks_per_second,
(double)t.tms_stime / ticks_per_second,
(double)t.tms_cutime / ticks_per_second,
@@ -9075,9 +9075,9 @@ os_open_impl(PyObject *module, path_t *path, int flags, int mode, int dir_fd)
{
int fd;
int async_err = 0;
-#ifdef HAVE_OPENAT
- int openat_unavailable = 0;
-#endif
+#ifdef HAVE_OPENAT
+ int openat_unavailable = 0;
+#endif
#ifdef O_CLOEXEC
int *atomic_flag_works = &_Py_open_cloexec_works;
@@ -9091,10 +9091,10 @@ os_open_impl(PyObject *module, path_t *path, int flags, int mode, int dir_fd)
flags |= O_CLOEXEC;
#endif
- if (PySys_Audit("open", "OOi", path->object, Py_None, flags) < 0) {
- return -1;
- }
-
+ if (PySys_Audit("open", "OOi", path->object, Py_None, flags) < 0) {
+ return -1;
+ }
+
_Py_BEGIN_SUPPRESS_IPH
do {
Py_BEGIN_ALLOW_THREADS
@@ -9102,15 +9102,15 @@ os_open_impl(PyObject *module, path_t *path, int flags, int mode, int dir_fd)
fd = _wopen(path->wide, flags, mode);
#else
#ifdef HAVE_OPENAT
- if (dir_fd != DEFAULT_DIR_FD) {
- if (HAVE_OPENAT_RUNTIME) {
- fd = openat(dir_fd, path->narrow, flags, mode);
-
- } else {
- openat_unavailable = 1;
- fd = -1;
- }
- } else
+ if (dir_fd != DEFAULT_DIR_FD) {
+ if (HAVE_OPENAT_RUNTIME) {
+ fd = openat(dir_fd, path->narrow, flags, mode);
+
+ } else {
+ openat_unavailable = 1;
+ fd = -1;
+ }
+ } else
#endif /* HAVE_OPENAT */
fd = open(path->narrow, flags, mode);
#endif /* !MS_WINDOWS */
@@ -9118,13 +9118,13 @@ os_open_impl(PyObject *module, path_t *path, int flags, int mode, int dir_fd)
} while (fd < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
_Py_END_SUPPRESS_IPH
-#ifdef HAVE_OPENAT
- if (openat_unavailable) {
- argument_unavailable_error(NULL, "dir_fd");
- return -1;
- }
-#endif
-
+#ifdef HAVE_OPENAT
+ if (openat_unavailable) {
+ argument_unavailable_error(NULL, "dir_fd");
+ return -1;
+ }
+#endif
+
if (fd < 0) {
if (!async_err)
PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path->object);
@@ -9170,24 +9170,24 @@ os_close_impl(PyObject *module, int fd)
}
-#ifdef HAVE_FDWALK
-static int
-_fdwalk_close_func(void *lohi, int fd)
-{
- int lo = ((int *)lohi)[0];
- int hi = ((int *)lohi)[1];
-
- if (fd >= hi) {
- return 1;
- }
- else if (fd >= lo) {
- /* Ignore errors */
- (void)close(fd);
- }
- return 0;
-}
-#endif /* HAVE_FDWALK */
-
+#ifdef HAVE_FDWALK
+static int
+_fdwalk_close_func(void *lohi, int fd)
+{
+ int lo = ((int *)lohi)[0];
+ int hi = ((int *)lohi)[1];
+
+ if (fd >= hi) {
+ return 1;
+ }
+ else if (fd >= lo) {
+ /* Ignore errors */
+ (void)close(fd);
+ }
+ return 0;
+}
+#endif /* HAVE_FDWALK */
+
/*[clinic input]
os.closerange
@@ -9202,31 +9202,31 @@ static PyObject *
os_closerange_impl(PyObject *module, int fd_low, int fd_high)
/*[clinic end generated code: output=0ce5c20fcda681c2 input=5855a3d053ebd4ec]*/
{
-#ifdef HAVE_FDWALK
- int lohi[2];
-#endif
+#ifdef HAVE_FDWALK
+ int lohi[2];
+#endif
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
-#ifdef HAVE_FDWALK
- lohi[0] = Py_MAX(fd_low, 0);
- lohi[1] = fd_high;
- fdwalk(_fdwalk_close_func, lohi);
-#else
- fd_low = Py_MAX(fd_low, 0);
-#ifdef __FreeBSD__
- if (fd_high >= sysconf(_SC_OPEN_MAX)) {
- /* Any errors encountered while closing file descriptors are ignored */
- closefrom(fd_low);
- }
- else
-#endif
- {
- for (int i = fd_low; i < fd_high; i++) {
- /* Ignore errors */
- (void)close(i);
- }
- }
-#endif
+#ifdef HAVE_FDWALK
+ lohi[0] = Py_MAX(fd_low, 0);
+ lohi[1] = fd_high;
+ fdwalk(_fdwalk_close_func, lohi);
+#else
+ fd_low = Py_MAX(fd_low, 0);
+#ifdef __FreeBSD__
+ if (fd_high >= sysconf(_SC_OPEN_MAX)) {
+ /* Any errors encountered while closing file descriptors are ignored */
+ closefrom(fd_low);
+ }
+ else
+#endif
+ {
+ for (int i = fd_low; i < fd_high; i++) {
+ /* Ignore errors */
+ (void)close(i);
+ }
+ }
+#endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
Py_RETURN_NONE;
@@ -9373,10 +9373,10 @@ os_lockf_impl(PyObject *module, int fd, int command, Py_off_t length)
{
int res;
- if (PySys_Audit("os.lockf", "iiL", fd, command, length) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.lockf", "iiL", fd, command, length) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
res = lockf(fd, command, length);
Py_END_ALLOW_THREADS
@@ -9595,7 +9595,7 @@ os_readv_impl(PyObject *module, int fd, PyObject *buffers)
os.pread
fd: int
- length: Py_ssize_t
+ length: Py_ssize_t
offset: Py_off_t
/
@@ -9606,8 +9606,8 @@ the beginning of the file. The file offset remains unchanged.
[clinic start generated code]*/
static PyObject *
-os_pread_impl(PyObject *module, int fd, Py_ssize_t length, Py_off_t offset)
-/*[clinic end generated code: output=3f875c1eef82e32f input=85cb4a5589627144]*/
+os_pread_impl(PyObject *module, int fd, Py_ssize_t length, Py_off_t offset)
+/*[clinic end generated code: output=3f875c1eef82e32f input=85cb4a5589627144]*/
{
Py_ssize_t n;
int async_err = 0;
@@ -9707,27 +9707,27 @@ os_preadv_impl(PyObject *module, int fd, PyObject *buffers, Py_off_t offset,
} while (n < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
#else
do {
-#ifdef __APPLE__
-/* This entire function will be removed from the module dict when the API
- * is not available.
- */
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunguarded-availability"
-#pragma clang diagnostic ignored "-Wunguarded-availability-new"
-#endif
+#ifdef __APPLE__
+/* This entire function will be removed from the module dict when the API
+ * is not available.
+ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunguarded-availability"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
+#endif
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
n = preadv(fd, iov, cnt, offset);
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
} while (n < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
-
-#ifdef __APPLE__
-#pragma clang diagnostic pop
+
+#ifdef __APPLE__
+#pragma clang diagnostic pop
+#endif
+
#endif
-#endif
-
iov_cleanup(iov, buf, cnt);
if (n < 0) {
if (!async_err) {
@@ -9759,70 +9759,70 @@ os_write_impl(PyObject *module, int fd, Py_buffer *data)
}
#ifdef HAVE_SENDFILE
-#ifdef __APPLE__
-/*[clinic input]
-os.sendfile
-
- out_fd: int
- in_fd: int
- offset: Py_off_t
- count as sbytes: Py_off_t
- headers: object(c_default="NULL") = ()
- trailers: object(c_default="NULL") = ()
- flags: int = 0
-
-Copy count bytes from file descriptor in_fd to file descriptor out_fd.
-[clinic start generated code]*/
-
-static PyObject *
-os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
- Py_off_t sbytes, PyObject *headers, PyObject *trailers,
- int flags)
-/*[clinic end generated code: output=81c4bcd143f5c82b input=b0d72579d4c69afa]*/
-#elif defined(__FreeBSD__) || defined(__DragonFly__)
-/*[clinic input]
-os.sendfile
-
- out_fd: int
- in_fd: int
- offset: Py_off_t
- count: Py_ssize_t
- headers: object(c_default="NULL") = ()
- trailers: object(c_default="NULL") = ()
- flags: int = 0
-
-Copy count bytes from file descriptor in_fd to file descriptor out_fd.
-[clinic start generated code]*/
-
-static PyObject *
-os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
- Py_ssize_t count, PyObject *headers, PyObject *trailers,
- int flags)
-/*[clinic end generated code: output=329ea009bdd55afc input=338adb8ff84ae8cd]*/
-#else
-/*[clinic input]
-os.sendfile
-
- out_fd: int
- in_fd: int
- offset as offobj: object
- count: Py_ssize_t
-
-Copy count bytes from file descriptor in_fd to file descriptor out_fd.
-[clinic start generated code]*/
-
-static PyObject *
-os_sendfile_impl(PyObject *module, int out_fd, int in_fd, PyObject *offobj,
- Py_ssize_t count)
-/*[clinic end generated code: output=ae81216e40f167d8 input=76d64058c74477ba]*/
-#endif
+#ifdef __APPLE__
+/*[clinic input]
+os.sendfile
+
+ out_fd: int
+ in_fd: int
+ offset: Py_off_t
+ count as sbytes: Py_off_t
+ headers: object(c_default="NULL") = ()
+ trailers: object(c_default="NULL") = ()
+ flags: int = 0
+
+Copy count bytes from file descriptor in_fd to file descriptor out_fd.
+[clinic start generated code]*/
+
+static PyObject *
+os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
+ Py_off_t sbytes, PyObject *headers, PyObject *trailers,
+ int flags)
+/*[clinic end generated code: output=81c4bcd143f5c82b input=b0d72579d4c69afa]*/
+#elif defined(__FreeBSD__) || defined(__DragonFly__)
+/*[clinic input]
+os.sendfile
+
+ out_fd: int
+ in_fd: int
+ offset: Py_off_t
+ count: Py_ssize_t
+ headers: object(c_default="NULL") = ()
+ trailers: object(c_default="NULL") = ()
+ flags: int = 0
+
+Copy count bytes from file descriptor in_fd to file descriptor out_fd.
+[clinic start generated code]*/
+
+static PyObject *
+os_sendfile_impl(PyObject *module, int out_fd, int in_fd, Py_off_t offset,
+ Py_ssize_t count, PyObject *headers, PyObject *trailers,
+ int flags)
+/*[clinic end generated code: output=329ea009bdd55afc input=338adb8ff84ae8cd]*/
+#else
+/*[clinic input]
+os.sendfile
+
+ out_fd: int
+ in_fd: int
+ offset as offobj: object
+ count: Py_ssize_t
+
+Copy count bytes from file descriptor in_fd to file descriptor out_fd.
+[clinic start generated code]*/
+
+static PyObject *
+os_sendfile_impl(PyObject *module, int out_fd, int in_fd, PyObject *offobj,
+ Py_ssize_t count)
+/*[clinic end generated code: output=ae81216e40f167d8 input=76d64058c74477ba]*/
+#endif
{
Py_ssize_t ret;
int async_err = 0;
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__APPLE__)
#ifndef __APPLE__
- off_t sbytes;
+ off_t sbytes;
#endif
Py_buffer *hbuf, *tbuf;
struct sf_hdtr sf;
@@ -9891,9 +9891,9 @@ os_sendfile_impl(PyObject *module, int out_fd, int in_fd, PyObject *offobj,
do {
Py_BEGIN_ALLOW_THREADS
#ifdef __APPLE__
- ret = sendfile(in_fd, out_fd, offset, &sbytes, &sf, flags);
+ ret = sendfile(in_fd, out_fd, offset, &sbytes, &sf, flags);
#else
- ret = sendfile(in_fd, out_fd, offset, count, &sf, &sbytes, flags);
+ ret = sendfile(in_fd, out_fd, offset, count, &sf, &sbytes, flags);
#endif
Py_END_ALLOW_THREADS
} while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
@@ -9932,7 +9932,7 @@ done:
if (offobj == Py_None) {
do {
Py_BEGIN_ALLOW_THREADS
- ret = sendfile(out_fd, in_fd, NULL, count);
+ ret = sendfile(out_fd, in_fd, NULL, count);
Py_END_ALLOW_THREADS
} while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (ret < 0)
@@ -9940,46 +9940,46 @@ done:
return Py_BuildValue("n", ret);
}
#endif
- off_t offset;
+ off_t offset;
if (!Py_off_t_converter(offobj, &offset))
return NULL;
-#if defined(__sun) && defined(__SVR4)
- // On Solaris, sendfile raises EINVAL rather than returning 0
- // when the offset is equal or bigger than the in_fd size.
- struct stat st;
-
- do {
- Py_BEGIN_ALLOW_THREADS
- ret = fstat(in_fd, &st);
- Py_END_ALLOW_THREADS
- } while (ret != 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
- if (ret < 0)
- return (!async_err) ? posix_error() : NULL;
-
- if (offset >= st.st_size) {
- return Py_BuildValue("i", 0);
- }
-
- // On illumos specifically sendfile() may perform a partial write but
- // return -1/an error (in one confirmed case the destination socket
- // had a 5 second timeout set and errno was EAGAIN) and it's on the client
- // code to check if the offset parameter was modified by sendfile().
- //
- // We need this variable to track said change.
- off_t original_offset = offset;
-#endif
-
+#if defined(__sun) && defined(__SVR4)
+ // On Solaris, sendfile raises EINVAL rather than returning 0
+ // when the offset is equal or bigger than the in_fd size.
+ struct stat st;
+
do {
Py_BEGIN_ALLOW_THREADS
- ret = sendfile(out_fd, in_fd, &offset, count);
-#if defined(__sun) && defined(__SVR4)
- // This handles illumos-specific sendfile() partial write behavior,
- // see a comment above for more details.
- if (ret < 0 && offset != original_offset) {
- ret = offset - original_offset;
- }
-#endif
+ ret = fstat(in_fd, &st);
+ Py_END_ALLOW_THREADS
+ } while (ret != 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+ if (ret < 0)
+ return (!async_err) ? posix_error() : NULL;
+
+ if (offset >= st.st_size) {
+ return Py_BuildValue("i", 0);
+ }
+
+ // On illumos specifically sendfile() may perform a partial write but
+ // return -1/an error (in one confirmed case the destination socket
+ // had a 5 second timeout set and errno was EAGAIN) and it's on the client
+ // code to check if the offset parameter was modified by sendfile().
+ //
+ // We need this variable to track said change.
+ off_t original_offset = offset;
+#endif
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ ret = sendfile(out_fd, in_fd, &offset, count);
+#if defined(__sun) && defined(__SVR4)
+ // This handles illumos-specific sendfile() partial write behavior,
+ // see a comment above for more details.
+ if (ret < 0 && offset != original_offset) {
+ ret = offset - original_offset;
+ }
+#endif
Py_END_ALLOW_THREADS
} while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
if (ret < 0)
@@ -9990,35 +9990,35 @@ done:
#endif /* HAVE_SENDFILE */
-#if defined(__APPLE__)
-/*[clinic input]
-os._fcopyfile
-
- in_fd: int
- out_fd: int
- flags: int
- /
-
-Efficiently copy content or metadata of 2 regular file descriptors (macOS).
-[clinic start generated code]*/
-
-static PyObject *
-os__fcopyfile_impl(PyObject *module, int in_fd, int out_fd, int flags)
-/*[clinic end generated code: output=c9d1a35a992e401b input=1e34638a86948795]*/
-{
- int ret;
-
- Py_BEGIN_ALLOW_THREADS
- ret = fcopyfile(in_fd, out_fd, NULL, flags);
- Py_END_ALLOW_THREADS
- if (ret < 0)
- return posix_error();
- Py_RETURN_NONE;
-}
-#endif
-
-
-/*[clinic input]
+#if defined(__APPLE__)
+/*[clinic input]
+os._fcopyfile
+
+ in_fd: int
+ out_fd: int
+ flags: int
+ /
+
+Efficiently copy content or metadata of 2 regular file descriptors (macOS).
+[clinic start generated code]*/
+
+static PyObject *
+os__fcopyfile_impl(PyObject *module, int in_fd, int out_fd, int flags)
+/*[clinic end generated code: output=c9d1a35a992e401b input=1e34638a86948795]*/
+{
+ int ret;
+
+ Py_BEGIN_ALLOW_THREADS
+ ret = fcopyfile(in_fd, out_fd, NULL, flags);
+ Py_END_ALLOW_THREADS
+ if (ret < 0)
+ return posix_error();
+ Py_RETURN_NONE;
+}
+#endif
+
+
+/*[clinic input]
os.fstat
fd : int
@@ -10050,7 +10050,7 @@ os_fstat_impl(PyObject *module, int fd)
#endif
}
- return _pystat_fromstructstat(module, &st);
+ return _pystat_fromstructstat(module, &st);
}
@@ -10070,11 +10070,11 @@ os_isatty_impl(PyObject *module, int fd)
/*[clinic end generated code: output=6a48c8b4e644ca00 input=08ce94aa1eaf7b5e]*/
{
int return_value;
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
return_value = isatty(fd);
_Py_END_SUPPRESS_IPH
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
return return_value;
}
@@ -10349,15 +10349,15 @@ os_pwritev_impl(PyObject *module, int fd, PyObject *buffers, Py_off_t offset,
Py_END_ALLOW_THREADS
} while (result < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
#else
-
-#ifdef __APPLE__
-/* This entire function will be removed from the module dict when the API
- * is not available.
- */
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunguarded-availability"
-#pragma clang diagnostic ignored "-Wunguarded-availability-new"
-#endif
+
+#ifdef __APPLE__
+/* This entire function will be removed from the module dict when the API
+ * is not available.
+ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunguarded-availability"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
+#endif
do {
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
@@ -10365,13 +10365,13 @@ os_pwritev_impl(PyObject *module, int fd, PyObject *buffers, Py_off_t offset,
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
} while (result < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
-
-#ifdef __APPLE__
-#pragma clang diagnostic pop
+
+#ifdef __APPLE__
+#pragma clang diagnostic pop
+#endif
+
#endif
-#endif
-
iov_cleanup(iov, buf, cnt);
if (result < 0) {
if (!async_err) {
@@ -10384,75 +10384,75 @@ os_pwritev_impl(PyObject *module, int fd, PyObject *buffers, Py_off_t offset,
}
#endif /* HAVE_PWRITEV */
-#ifdef HAVE_COPY_FILE_RANGE
-/*[clinic input]
-
-os.copy_file_range
- src: int
- Source file descriptor.
- dst: int
- Destination file descriptor.
- count: Py_ssize_t
- Number of bytes to copy.
- offset_src: object = None
- Starting offset in src.
- offset_dst: object = None
- Starting offset in dst.
-
-Copy count bytes from one file descriptor to another.
-
-If offset_src is None, then src is read from the current position;
-respectively for offset_dst.
-[clinic start generated code]*/
-
-static PyObject *
-os_copy_file_range_impl(PyObject *module, int src, int dst, Py_ssize_t count,
- PyObject *offset_src, PyObject *offset_dst)
-/*[clinic end generated code: output=1a91713a1d99fc7a input=42fdce72681b25a9]*/
-{
- off_t offset_src_val, offset_dst_val;
- off_t *p_offset_src = NULL;
- off_t *p_offset_dst = NULL;
- Py_ssize_t ret;
- int async_err = 0;
- /* The flags argument is provided to allow
- * for future extensions and currently must be to 0. */
- int flags = 0;
-
-
- if (count < 0) {
- PyErr_SetString(PyExc_ValueError, "negative value for 'count' not allowed");
- return NULL;
- }
-
- if (offset_src != Py_None) {
- if (!Py_off_t_converter(offset_src, &offset_src_val)) {
- return NULL;
- }
- p_offset_src = &offset_src_val;
- }
-
- if (offset_dst != Py_None) {
- if (!Py_off_t_converter(offset_dst, &offset_dst_val)) {
- return NULL;
- }
- p_offset_dst = &offset_dst_val;
- }
-
- do {
- Py_BEGIN_ALLOW_THREADS
- ret = copy_file_range(src, p_offset_src, dst, p_offset_dst, count, flags);
- Py_END_ALLOW_THREADS
- } while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
-
- if (ret < 0) {
- return (!async_err) ? posix_error() : NULL;
- }
-
- return PyLong_FromSsize_t(ret);
-}
-#endif /* HAVE_COPY_FILE_RANGE*/
-
+#ifdef HAVE_COPY_FILE_RANGE
+/*[clinic input]
+
+os.copy_file_range
+ src: int
+ Source file descriptor.
+ dst: int
+ Destination file descriptor.
+ count: Py_ssize_t
+ Number of bytes to copy.
+ offset_src: object = None
+ Starting offset in src.
+ offset_dst: object = None
+ Starting offset in dst.
+
+Copy count bytes from one file descriptor to another.
+
+If offset_src is None, then src is read from the current position;
+respectively for offset_dst.
+[clinic start generated code]*/
+
+static PyObject *
+os_copy_file_range_impl(PyObject *module, int src, int dst, Py_ssize_t count,
+ PyObject *offset_src, PyObject *offset_dst)
+/*[clinic end generated code: output=1a91713a1d99fc7a input=42fdce72681b25a9]*/
+{
+ off_t offset_src_val, offset_dst_val;
+ off_t *p_offset_src = NULL;
+ off_t *p_offset_dst = NULL;
+ Py_ssize_t ret;
+ int async_err = 0;
+ /* The flags argument is provided to allow
+ * for future extensions and currently must be to 0. */
+ int flags = 0;
+
+
+ if (count < 0) {
+ PyErr_SetString(PyExc_ValueError, "negative value for 'count' not allowed");
+ return NULL;
+ }
+
+ if (offset_src != Py_None) {
+ if (!Py_off_t_converter(offset_src, &offset_src_val)) {
+ return NULL;
+ }
+ p_offset_src = &offset_src_val;
+ }
+
+ if (offset_dst != Py_None) {
+ if (!Py_off_t_converter(offset_dst, &offset_dst_val)) {
+ return NULL;
+ }
+ p_offset_dst = &offset_dst_val;
+ }
+
+ do {
+ Py_BEGIN_ALLOW_THREADS
+ ret = copy_file_range(src, p_offset_src, dst, p_offset_dst, count, flags);
+ Py_END_ALLOW_THREADS
+ } while (ret < 0 && errno == EINTR && !(async_err = PyErr_CheckSignals()));
+
+ if (ret < 0) {
+ return (!async_err) ? posix_error() : NULL;
+ }
+
+ return PyLong_FromSsize_t(ret);
+}
+#endif /* HAVE_COPY_FILE_RANGE*/
+
#ifdef HAVE_MKFIFO
/*[clinic input]
os.mkfifo
@@ -10620,10 +10620,10 @@ os_ftruncate_impl(PyObject *module, int fd, Py_off_t length)
int result;
int async_err = 0;
- if (PySys_Audit("os.truncate", "in", fd, length) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.truncate", "in", fd, length) < 0) {
+ return NULL;
+ }
+
do {
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
@@ -10667,10 +10667,10 @@ os_truncate_impl(PyObject *module, path_t *path, Py_off_t length)
if (path->fd != -1)
return os_ftruncate_impl(module, path->fd, length);
- if (PySys_Audit("os.truncate", "On", path->object, length) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.truncate", "On", path->object, length) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
@@ -10794,8 +10794,8 @@ os_posix_fadvise_impl(PyObject *module, int fd, Py_off_t offset,
#ifdef MS_WINDOWS
-static PyObject*
-win32_putenv(PyObject *name, PyObject *value)
+static PyObject*
+win32_putenv(PyObject *name, PyObject *value)
{
/* Search from index 1 because on Windows starting '=' is allowed for
defining hidden environment variables. */
@@ -10805,73 +10805,73 @@ win32_putenv(PyObject *name, PyObject *value)
PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
return NULL;
}
- PyObject *unicode;
- if (value != NULL) {
- unicode = PyUnicode_FromFormat("%U=%U", name, value);
- }
- else {
- unicode = PyUnicode_FromFormat("%U=", name);
- }
+ PyObject *unicode;
+ if (value != NULL) {
+ unicode = PyUnicode_FromFormat("%U=%U", name, value);
+ }
+ else {
+ unicode = PyUnicode_FromFormat("%U=", name);
+ }
if (unicode == NULL) {
return NULL;
}
- Py_ssize_t size;
- /* PyUnicode_AsWideCharString() rejects embedded null characters */
- wchar_t *env = PyUnicode_AsWideCharString(unicode, &size);
- Py_DECREF(unicode);
-
- if (env == NULL) {
- return NULL;
- }
+ Py_ssize_t size;
+ /* PyUnicode_AsWideCharString() rejects embedded null characters */
+ wchar_t *env = PyUnicode_AsWideCharString(unicode, &size);
+ Py_DECREF(unicode);
+
+ if (env == NULL) {
+ return NULL;
+ }
if (size > _MAX_ENV) {
PyErr_Format(PyExc_ValueError,
"the environment variable is longer than %u characters",
_MAX_ENV);
- PyMem_Free(env);
- return NULL;
- }
-
- /* _wputenv() and SetEnvironmentVariableW() update the environment in the
- Process Environment Block (PEB). _wputenv() also updates CRT 'environ'
- and '_wenviron' variables, whereas SetEnvironmentVariableW() does not.
-
- Prefer _wputenv() to be compatible with C libraries using CRT
- variables and CRT functions using these variables (ex: getenv()). */
- int err = _wputenv(env);
- PyMem_Free(env);
-
- if (err) {
+ PyMem_Free(env);
+ return NULL;
+ }
+
+ /* _wputenv() and SetEnvironmentVariableW() update the environment in the
+ Process Environment Block (PEB). _wputenv() also updates CRT 'environ'
+ and '_wenviron' variables, whereas SetEnvironmentVariableW() does not.
+
+ Prefer _wputenv() to be compatible with C libraries using CRT
+ variables and CRT functions using these variables (ex: getenv()). */
+ int err = _wputenv(env);
+ PyMem_Free(env);
+
+ if (err) {
posix_error();
- return NULL;
+ return NULL;
}
Py_RETURN_NONE;
-}
-#endif
-
-
-#ifdef MS_WINDOWS
-/*[clinic input]
-os.putenv
-
- name: unicode
- value: unicode
- /
-
-Change or add an environment variable.
-[clinic start generated code]*/
-
-static PyObject *
-os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
-/*[clinic end generated code: output=d29a567d6b2327d2 input=ba586581c2e6105f]*/
-{
- if (PySys_Audit("os.putenv", "OO", name, value) < 0) {
- return NULL;
- }
- return win32_putenv(name, value);
-}
-#else
+}
+#endif
+
+
+#ifdef MS_WINDOWS
+/*[clinic input]
+os.putenv
+
+ name: unicode
+ value: unicode
+ /
+
+Change or add an environment variable.
+[clinic start generated code]*/
+
+static PyObject *
+os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
+/*[clinic end generated code: output=d29a567d6b2327d2 input=ba586581c2e6105f]*/
+{
+ if (PySys_Audit("os.putenv", "OO", name, value) < 0) {
+ return NULL;
+ }
+ return win32_putenv(name, value);
+}
+#else
/*[clinic input]
os.putenv
@@ -10893,40 +10893,40 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
return NULL;
}
-
- if (PySys_Audit("os.putenv", "OO", name, value) < 0) {
- return NULL;
- }
- if (setenv(name_string, value_string, 1)) {
+ if (PySys_Audit("os.putenv", "OO", name, value) < 0) {
+ return NULL;
+ }
+
+ if (setenv(name_string, value_string, 1)) {
return posix_error();
}
Py_RETURN_NONE;
}
-#endif /* !defined(MS_WINDOWS) */
+#endif /* !defined(MS_WINDOWS) */
-#ifdef MS_WINDOWS
+#ifdef MS_WINDOWS
+/*[clinic input]
+os.unsetenv
+ name: unicode
+ /
+
+Delete an environment variable.
+[clinic start generated code]*/
+
+static PyObject *
+os_unsetenv_impl(PyObject *module, PyObject *name)
+/*[clinic end generated code: output=54c4137ab1834f02 input=4d6a1747cc526d2f]*/
+{
+ if (PySys_Audit("os.unsetenv", "(O)", name) < 0) {
+ return NULL;
+ }
+ return win32_putenv(name, NULL);
+}
+#else
/*[clinic input]
os.unsetenv
- name: unicode
- /
-
-Delete an environment variable.
-[clinic start generated code]*/
-
-static PyObject *
-os_unsetenv_impl(PyObject *module, PyObject *name)
-/*[clinic end generated code: output=54c4137ab1834f02 input=4d6a1747cc526d2f]*/
-{
- if (PySys_Audit("os.unsetenv", "(O)", name) < 0) {
- return NULL;
- }
- return win32_putenv(name, NULL);
-}
-#else
-/*[clinic input]
-os.unsetenv
name: FSConverter
/
@@ -10937,21 +10937,21 @@ static PyObject *
os_unsetenv_impl(PyObject *module, PyObject *name)
/*[clinic end generated code: output=54c4137ab1834f02 input=2bb5288a599c7107]*/
{
- if (PySys_Audit("os.unsetenv", "(O)", name) < 0) {
- return NULL;
- }
+ if (PySys_Audit("os.unsetenv", "(O)", name) < 0) {
+ return NULL;
+ }
#ifdef HAVE_BROKEN_UNSETENV
unsetenv(PyBytes_AS_STRING(name));
#else
- int err = unsetenv(PyBytes_AS_STRING(name));
- if (err) {
+ int err = unsetenv(PyBytes_AS_STRING(name));
+ if (err) {
return posix_error();
- }
+ }
#endif
Py_RETURN_NONE;
}
-#endif /* !MS_WINDOWS */
+#endif /* !MS_WINDOWS */
/*[clinic input]
@@ -11152,9 +11152,9 @@ os_WSTOPSIG_impl(PyObject *module, int status)
#include <sys/statvfs.h>
static PyObject*
-_pystatvfs_fromstructstatvfs(PyObject *module, struct statvfs st) {
- PyObject *StatVFSResultType = get_posix_state(module)->StatVFSResultType;
- PyObject *v = PyStructSequence_New((PyTypeObject *)StatVFSResultType);
+_pystatvfs_fromstructstatvfs(PyObject *module, struct statvfs st) {
+ PyObject *StatVFSResultType = get_posix_state(module)->StatVFSResultType;
+ PyObject *v = PyStructSequence_New((PyTypeObject *)StatVFSResultType);
if (v == NULL)
return NULL;
@@ -11230,7 +11230,7 @@ os_fstatvfs_impl(PyObject *module, int fd)
if (result != 0)
return (!async_err) ? posix_error() : NULL;
- return _pystatvfs_fromstructstatvfs(module, st);
+ return _pystatvfs_fromstructstatvfs(module, st);
}
#endif /* defined(HAVE_FSTATVFS) && defined(HAVE_SYS_STATVFS_H) */
@@ -11270,7 +11270,7 @@ os_statvfs_impl(PyObject *module, path_t *path)
return path_error(path);
}
- return _pystatvfs_fromstructstatvfs(module, st);
+ return _pystatvfs_fromstructstatvfs(module, st);
}
#endif /* defined(HAVE_STATVFS) && defined(HAVE_SYS_STATVFS_H) */
@@ -11290,38 +11290,38 @@ os__getdiskusage_impl(PyObject *module, path_t *path)
{
BOOL retval;
ULARGE_INTEGER _, total, free;
- DWORD err = 0;
+ DWORD err = 0;
Py_BEGIN_ALLOW_THREADS
retval = GetDiskFreeSpaceExW(path->wide, &_, &total, &free);
Py_END_ALLOW_THREADS
- if (retval == 0) {
- if (GetLastError() == ERROR_DIRECTORY) {
- wchar_t *dir_path = NULL;
-
- dir_path = PyMem_New(wchar_t, path->length + 1);
- if (dir_path == NULL) {
- return PyErr_NoMemory();
- }
-
- wcscpy_s(dir_path, path->length + 1, path->wide);
-
- if (_dirnameW(dir_path) != -1) {
- Py_BEGIN_ALLOW_THREADS
- retval = GetDiskFreeSpaceExW(dir_path, &_, &total, &free);
- Py_END_ALLOW_THREADS
- }
- /* Record the last error in case it's modified by PyMem_Free. */
- err = GetLastError();
- PyMem_Free(dir_path);
- if (retval) {
- goto success;
- }
- }
- return PyErr_SetFromWindowsErr(err);
- }
-
-success:
+ if (retval == 0) {
+ if (GetLastError() == ERROR_DIRECTORY) {
+ wchar_t *dir_path = NULL;
+
+ dir_path = PyMem_New(wchar_t, path->length + 1);
+ if (dir_path == NULL) {
+ return PyErr_NoMemory();
+ }
+
+ wcscpy_s(dir_path, path->length + 1, path->wide);
+
+ if (_dirnameW(dir_path) != -1) {
+ Py_BEGIN_ALLOW_THREADS
+ retval = GetDiskFreeSpaceExW(dir_path, &_, &total, &free);
+ Py_END_ALLOW_THREADS
+ }
+ /* Record the last error in case it's modified by PyMem_Free. */
+ err = GetLastError();
+ PyMem_Free(dir_path);
+ if (retval) {
+ goto success;
+ }
+ }
+ return PyErr_SetFromWindowsErr(err);
+ }
+
+success:
return Py_BuildValue("(LL)", total.QuadPart, free.QuadPart);
}
#endif /* MS_WINDOWS */
@@ -12024,9 +12024,9 @@ static struct constdef posix_constants_sysconf[] = {
#ifdef _SC_PAGE_SIZE
{"SC_PAGE_SIZE", _SC_PAGE_SIZE},
#endif
-#ifdef _SC_AIX_REALMEM
- {"SC_AIX_REALMEM", _SC_AIX_REALMEM},
-#endif
+#ifdef _SC_AIX_REALMEM
+ {"SC_AIX_REALMEM", _SC_AIX_REALMEM},
+#endif
#ifdef _SC_PASS_MAX
{"SC_PASS_MAX", _SC_PASS_MAX},
#endif
@@ -12415,7 +12415,7 @@ check_ShellExecute()
} else {
has_ShellExecute = 0;
}
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
}
return has_ShellExecute;
}
@@ -12447,7 +12447,7 @@ the underlying Win32 ShellExecute function doesn't work if it is.
static PyObject *
os_startfile_impl(PyObject *module, path_t *filepath,
const Py_UNICODE *operation)
-/*[clinic end generated code: output=66dc311c94d50797 input=c940888a5390f039]*/
+/*[clinic end generated code: output=66dc311c94d50797 input=c940888a5390f039]*/
{
HINSTANCE rc;
@@ -12458,10 +12458,10 @@ os_startfile_impl(PyObject *module, path_t *filepath,
"startfile not available on this platform");
}
- if (PySys_Audit("os.startfile", "Ou", filepath->object, operation) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.startfile", "Ou", filepath->object, operation) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
rc = Py_ShellExecuteW((HWND)0, operation, filepath->wide,
NULL, NULL, SW_SHOWNORMAL);
@@ -12636,10 +12636,10 @@ os_getxattr_impl(PyObject *module, path_t *path, path_t *attribute,
if (fd_and_follow_symlinks_invalid("getxattr", path->fd, follow_symlinks))
return NULL;
- if (PySys_Audit("os.getxattr", "OO", path->object, attribute->object) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.getxattr", "OO", path->object, attribute->object) < 0) {
+ return NULL;
+ }
+
for (i = 0; ; i++) {
void *ptr;
ssize_t result;
@@ -12711,11 +12711,11 @@ os_setxattr_impl(PyObject *module, path_t *path, path_t *attribute,
if (fd_and_follow_symlinks_invalid("setxattr", path->fd, follow_symlinks))
return NULL;
- if (PySys_Audit("os.setxattr", "OOy#i", path->object, attribute->object,
- value->buf, value->len, flags) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.setxattr", "OOy#i", path->object, attribute->object,
+ value->buf, value->len, flags) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS;
if (path->fd > -1)
result = fsetxattr(path->fd, attribute->narrow,
@@ -12764,10 +12764,10 @@ os_removexattr_impl(PyObject *module, path_t *path, path_t *attribute,
if (fd_and_follow_symlinks_invalid("removexattr", path->fd, follow_symlinks))
return NULL;
- if (PySys_Audit("os.removexattr", "OO", path->object, attribute->object) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.removexattr", "OO", path->object, attribute->object) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS;
if (path->fd > -1)
result = fremovexattr(path->fd, attribute->narrow);
@@ -12813,11 +12813,11 @@ os_listxattr_impl(PyObject *module, path_t *path, int follow_symlinks)
if (fd_and_follow_symlinks_invalid("listxattr", path->fd, follow_symlinks))
goto exit;
- if (PySys_Audit("os.listxattr", "(O)",
- path->object ? path->object : Py_None) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("os.listxattr", "(O)",
+ path->object ? path->object : Py_None) < 0) {
+ return NULL;
+ }
+
name = path->narrow ? path->narrow : ".";
for (i = 0; ; i++) {
@@ -12922,31 +12922,31 @@ os_urandom_impl(PyObject *module, Py_ssize_t size)
return bytes;
}
-#ifdef HAVE_MEMFD_CREATE
-/*[clinic input]
-os.memfd_create
-
- name: FSConverter
- flags: unsigned_int(bitwise=True, c_default="MFD_CLOEXEC") = MFD_CLOEXEC
-
-[clinic start generated code]*/
-
-static PyObject *
-os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags)
-/*[clinic end generated code: output=6681ede983bdb9a6 input=a42cfc199bcd56e9]*/
-{
- int fd;
- const char *bytes = PyBytes_AS_STRING(name);
- Py_BEGIN_ALLOW_THREADS
- fd = memfd_create(bytes, flags);
- Py_END_ALLOW_THREADS
- if (fd == -1) {
- return PyErr_SetFromErrno(PyExc_OSError);
- }
- return PyLong_FromLong(fd);
-}
-#endif
-
+#ifdef HAVE_MEMFD_CREATE
+/*[clinic input]
+os.memfd_create
+
+ name: FSConverter
+ flags: unsigned_int(bitwise=True, c_default="MFD_CLOEXEC") = MFD_CLOEXEC
+
+[clinic start generated code]*/
+
+static PyObject *
+os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags)
+/*[clinic end generated code: output=6681ede983bdb9a6 input=a42cfc199bcd56e9]*/
+{
+ int fd;
+ const char *bytes = PyBytes_AS_STRING(name);
+ Py_BEGIN_ALLOW_THREADS
+ fd = memfd_create(bytes, flags);
+ Py_END_ALLOW_THREADS
+ if (fd == -1) {
+ return PyErr_SetFromErrno(PyExc_OSError);
+ }
+ return PyLong_FromLong(fd);
+}
+#endif
+
/* Terminal size querying */
PyDoc_STRVAR(TerminalSize_docstring,
@@ -12966,30 +12966,30 @@ static PyStructSequence_Desc TerminalSize_desc = {
};
#if defined(TERMSIZE_USE_CONIO) || defined(TERMSIZE_USE_IOCTL)
-/*[clinic input]
-os.get_terminal_size
-
- fd: int(c_default="fileno(stdout)", py_default="<unrepresentable>") = -1
- /
-
-Return the size of the terminal window as (columns, lines).
-
-The optional argument fd (default standard output) specifies
-which file descriptor should be queried.
-
-If the file descriptor is not connected to a terminal, an OSError
-is thrown.
-
-This function will only be defined if an implementation is
-available for this system.
-
-shutil.get_terminal_size is the high-level function which should
-normally be used, os.get_terminal_size is the low-level implementation.
-[clinic start generated code]*/
-
-static PyObject *
-os_get_terminal_size_impl(PyObject *module, int fd)
-/*[clinic end generated code: output=fbab93acef980508 input=ead5679b82ddb920]*/
+/*[clinic input]
+os.get_terminal_size
+
+ fd: int(c_default="fileno(stdout)", py_default="<unrepresentable>") = -1
+ /
+
+Return the size of the terminal window as (columns, lines).
+
+The optional argument fd (default standard output) specifies
+which file descriptor should be queried.
+
+If the file descriptor is not connected to a terminal, an OSError
+is thrown.
+
+This function will only be defined if an implementation is
+available for this system.
+
+shutil.get_terminal_size is the high-level function which should
+normally be used, os.get_terminal_size is the low-level implementation.
+[clinic start generated code]*/
+
+static PyObject *
+os_get_terminal_size_impl(PyObject *module, int fd)
+/*[clinic end generated code: output=fbab93acef980508 input=ead5679b82ddb920]*/
{
int columns, lines;
PyObject *termsize;
@@ -13041,8 +13041,8 @@ os_get_terminal_size_impl(PyObject *module, int fd)
}
#endif /* TERMSIZE_USE_CONIO */
- PyObject *TerminalSizeType = get_posix_state(module)->TerminalSizeType;
- termsize = PyStructSequence_New((PyTypeObject *)TerminalSizeType);
+ PyObject *TerminalSizeType = get_posix_state(module)->TerminalSizeType;
+ termsize = PyStructSequence_New((PyTypeObject *)TerminalSizeType);
if (termsize == NULL)
return NULL;
PyStructSequence_SET_ITEM(termsize, 0, PyLong_FromLong(columns));
@@ -13072,7 +13072,7 @@ os_cpu_count_impl(PyObject *module)
{
int ncpu = 0;
#ifdef MS_WINDOWS
- ncpu = GetActiveProcessorCount(ALL_PROCESSOR_GROUPS);
+ ncpu = GetActiveProcessorCount(ALL_PROCESSOR_GROUPS);
#elif defined(__hpux)
ncpu = mpctl(MPC_GETNUMSPUS, NULL, NULL);
#elif defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)
@@ -13189,45 +13189,45 @@ os_set_handle_inheritable_impl(PyObject *module, intptr_t handle,
#endif /* MS_WINDOWS */
#ifndef MS_WINDOWS
-/*[clinic input]
-os.get_blocking -> bool
- fd: int
- /
-
-Get the blocking mode of the file descriptor.
-
-Return False if the O_NONBLOCK flag is set, True if the flag is cleared.
-[clinic start generated code]*/
-
-static int
-os_get_blocking_impl(PyObject *module, int fd)
-/*[clinic end generated code: output=336a12ad76a61482 input=f4afb59d51560179]*/
+/*[clinic input]
+os.get_blocking -> bool
+ fd: int
+ /
+
+Get the blocking mode of the file descriptor.
+
+Return False if the O_NONBLOCK flag is set, True if the flag is cleared.
+[clinic start generated code]*/
+
+static int
+os_get_blocking_impl(PyObject *module, int fd)
+/*[clinic end generated code: output=336a12ad76a61482 input=f4afb59d51560179]*/
{
int blocking;
_Py_BEGIN_SUPPRESS_IPH
blocking = _Py_get_blocking(fd);
_Py_END_SUPPRESS_IPH
- return blocking;
+ return blocking;
}
-/*[clinic input]
-os.set_blocking
- fd: int
- blocking: bool(accept={int})
- /
+/*[clinic input]
+os.set_blocking
+ fd: int
+ blocking: bool(accept={int})
+ /
+
+Set the blocking mode of the specified file descriptor.
-Set the blocking mode of the specified file descriptor.
-
-Set the O_NONBLOCK flag if blocking is False,
-clear the O_NONBLOCK flag otherwise.
-[clinic start generated code]*/
-
-static PyObject *
-os_set_blocking_impl(PyObject *module, int fd, int blocking)
-/*[clinic end generated code: output=384eb43aa0762a9d input=bf5c8efdc5860ff3]*/
+Set the O_NONBLOCK flag if blocking is False,
+clear the O_NONBLOCK flag otherwise.
+[clinic start generated code]*/
+
+static PyObject *
+os_set_blocking_impl(PyObject *module, int fd, int blocking)
+/*[clinic end generated code: output=384eb43aa0762a9d input=bf5c8efdc5860ff3]*/
{
- int result;
+ int result;
_Py_BEGIN_SUPPRESS_IPH
result = _Py_set_blocking(fd, blocking);
@@ -13240,9 +13240,9 @@ os_set_blocking_impl(PyObject *module, int fd, int blocking)
/*[clinic input]
-class os.DirEntry "DirEntry *" "DirEntryType"
+class os.DirEntry "DirEntry *" "DirEntryType"
[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=3c18c7a448247980]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=3c18c7a448247980]*/
typedef struct {
PyObject_HEAD
@@ -13263,43 +13263,43 @@ typedef struct {
#endif
} DirEntry;
-static PyObject *
-_disabled_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyErr_Format(PyExc_TypeError,
- "cannot create '%.100s' instances", _PyType_Name(type));
- return NULL;
-}
-
+static PyObject *
+_disabled_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyErr_Format(PyExc_TypeError,
+ "cannot create '%.100s' instances", _PyType_Name(type));
+ return NULL;
+}
+
static void
DirEntry_dealloc(DirEntry *entry)
{
- PyTypeObject *tp = Py_TYPE(entry);
+ PyTypeObject *tp = Py_TYPE(entry);
Py_XDECREF(entry->name);
Py_XDECREF(entry->path);
Py_XDECREF(entry->stat);
Py_XDECREF(entry->lstat);
- freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
- free_func(entry);
- Py_DECREF(tp);
+ freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
+ free_func(entry);
+ Py_DECREF(tp);
}
/* Forward reference */
static int
-DirEntry_test_mode(PyTypeObject *defining_class, DirEntry *self,
- int follow_symlinks, unsigned short mode_bits);
+DirEntry_test_mode(PyTypeObject *defining_class, DirEntry *self,
+ int follow_symlinks, unsigned short mode_bits);
/*[clinic input]
os.DirEntry.is_symlink -> bool
- defining_class: defining_class
- /
+ defining_class: defining_class
+ /
Return True if the entry is a symbolic link; cached per entry.
[clinic start generated code]*/
static int
-os_DirEntry_is_symlink_impl(DirEntry *self, PyTypeObject *defining_class)
-/*[clinic end generated code: output=293096d589b6d47c input=e9acc5ee4d511113]*/
+os_DirEntry_is_symlink_impl(DirEntry *self, PyTypeObject *defining_class)
+/*[clinic end generated code: output=293096d589b6d47c input=e9acc5ee4d511113]*/
{
#ifdef MS_WINDOWS
return (self->win32_lstat.st_mode & S_IFMT) == S_IFLNK;
@@ -13308,15 +13308,15 @@ os_DirEntry_is_symlink_impl(DirEntry *self, PyTypeObject *defining_class)
if (self->d_type != DT_UNKNOWN)
return self->d_type == DT_LNK;
else
- return DirEntry_test_mode(defining_class, self, 0, S_IFLNK);
+ return DirEntry_test_mode(defining_class, self, 0, S_IFLNK);
#else
/* POSIX without d_type */
- return DirEntry_test_mode(defining_class, self, 0, S_IFLNK);
+ return DirEntry_test_mode(defining_class, self, 0, S_IFLNK);
#endif
}
static PyObject *
-DirEntry_fetch_stat(PyObject *module, DirEntry *self, int follow_symlinks)
+DirEntry_fetch_stat(PyObject *module, DirEntry *self, int follow_symlinks)
{
int result;
STRUCT_STAT st;
@@ -13325,27 +13325,27 @@ DirEntry_fetch_stat(PyObject *module, DirEntry *self, int follow_symlinks)
#ifdef MS_WINDOWS
if (!PyUnicode_FSDecoder(self->path, &ub))
return NULL;
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
const wchar_t *path = PyUnicode_AsUnicode(ub);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
#else /* POSIX */
if (!PyUnicode_FSConverter(self->path, &ub))
return NULL;
const char *path = PyBytes_AS_STRING(ub);
if (self->dir_fd != DEFAULT_DIR_FD) {
#ifdef HAVE_FSTATAT
- if (HAVE_FSTATAT_RUNTIME) {
+ if (HAVE_FSTATAT_RUNTIME) {
result = fstatat(self->dir_fd, path, &st,
follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW);
- } else
-
-#endif /* HAVE_FSTATAT */
- {
- Py_DECREF(ub);
+ } else
+
+#endif /* HAVE_FSTATAT */
+ {
+ Py_DECREF(ub);
PyErr_SetString(PyExc_NotImplementedError, "can't fetch stat");
return NULL;
- }
+ }
}
else
#endif
@@ -13360,18 +13360,18 @@ _Py_COMP_DIAG_POP
if (result != 0)
return path_object_error(self->path);
- return _pystat_fromstructstat(module, &st);
+ return _pystat_fromstructstat(module, &st);
}
static PyObject *
-DirEntry_get_lstat(PyTypeObject *defining_class, DirEntry *self)
+DirEntry_get_lstat(PyTypeObject *defining_class, DirEntry *self)
{
if (!self->lstat) {
- PyObject *module = PyType_GetModule(defining_class);
+ PyObject *module = PyType_GetModule(defining_class);
#ifdef MS_WINDOWS
- self->lstat = _pystat_fromstructstat(module, &self->win32_lstat);
+ self->lstat = _pystat_fromstructstat(module, &self->win32_lstat);
#else /* POSIX */
- self->lstat = DirEntry_fetch_stat(module, self, 0);
+ self->lstat = DirEntry_fetch_stat(module, self, 0);
#endif
}
Py_XINCREF(self->lstat);
@@ -13380,8 +13380,8 @@ DirEntry_get_lstat(PyTypeObject *defining_class, DirEntry *self)
/*[clinic input]
os.DirEntry.stat
- defining_class: defining_class
- /
+ defining_class: defining_class
+ /
*
follow_symlinks: bool = True
@@ -13389,26 +13389,26 @@ Return stat_result object for the entry; cached per entry.
[clinic start generated code]*/
static PyObject *
-os_DirEntry_stat_impl(DirEntry *self, PyTypeObject *defining_class,
- int follow_symlinks)
-/*[clinic end generated code: output=23f803e19c3e780e input=e816273c4e67ee98]*/
+os_DirEntry_stat_impl(DirEntry *self, PyTypeObject *defining_class,
+ int follow_symlinks)
+/*[clinic end generated code: output=23f803e19c3e780e input=e816273c4e67ee98]*/
{
- if (!follow_symlinks) {
- return DirEntry_get_lstat(defining_class, self);
- }
+ if (!follow_symlinks) {
+ return DirEntry_get_lstat(defining_class, self);
+ }
if (!self->stat) {
- int result = os_DirEntry_is_symlink_impl(self, defining_class);
- if (result == -1) {
+ int result = os_DirEntry_is_symlink_impl(self, defining_class);
+ if (result == -1) {
return NULL;
- }
- if (result) {
- PyObject *module = PyType_GetModule(defining_class);
- self->stat = DirEntry_fetch_stat(module, self, 1);
- }
- else {
- self->stat = DirEntry_get_lstat(defining_class, self);
- }
+ }
+ if (result) {
+ PyObject *module = PyType_GetModule(defining_class);
+ self->stat = DirEntry_fetch_stat(module, self, 1);
+ }
+ else {
+ self->stat = DirEntry_get_lstat(defining_class, self);
+ }
}
Py_XINCREF(self->stat);
@@ -13417,8 +13417,8 @@ os_DirEntry_stat_impl(DirEntry *self, PyTypeObject *defining_class,
/* Set exception and return -1 on error, 0 for False, 1 for True */
static int
-DirEntry_test_mode(PyTypeObject *defining_class, DirEntry *self,
- int follow_symlinks, unsigned short mode_bits)
+DirEntry_test_mode(PyTypeObject *defining_class, DirEntry *self,
+ int follow_symlinks, unsigned short mode_bits)
{
PyObject *stat = NULL;
PyObject *st_mode = NULL;
@@ -13443,7 +13443,7 @@ DirEntry_test_mode(PyTypeObject *defining_class, DirEntry *self,
#if defined(MS_WINDOWS) || defined(HAVE_DIRENT_D_TYPE)
if (need_stat) {
#endif
- stat = os_DirEntry_stat_impl(self, defining_class, follow_symlinks);
+ stat = os_DirEntry_stat_impl(self, defining_class, follow_symlinks);
if (!stat) {
if (PyErr_ExceptionMatches(PyExc_FileNotFoundError)) {
/* If file doesn't exist (anymore), then return False
@@ -13453,8 +13453,8 @@ DirEntry_test_mode(PyTypeObject *defining_class, DirEntry *self,
}
goto error;
}
- _posixstate* state = get_posix_state(PyType_GetModule(defining_class));
- st_mode = PyObject_GetAttr(stat, state->st_mode);
+ _posixstate* state = get_posix_state(PyType_GetModule(defining_class));
+ st_mode = PyObject_GetAttr(stat, state->st_mode);
if (!st_mode)
goto error;
@@ -13497,8 +13497,8 @@ error:
/*[clinic input]
os.DirEntry.is_dir -> bool
- defining_class: defining_class
- /
+ defining_class: defining_class
+ /
*
follow_symlinks: bool = True
@@ -13506,17 +13506,17 @@ Return True if the entry is a directory; cached per entry.
[clinic start generated code]*/
static int
-os_DirEntry_is_dir_impl(DirEntry *self, PyTypeObject *defining_class,
- int follow_symlinks)
-/*[clinic end generated code: output=0cd453b9c0987fdf input=1a4ffd6dec9920cb]*/
+os_DirEntry_is_dir_impl(DirEntry *self, PyTypeObject *defining_class,
+ int follow_symlinks)
+/*[clinic end generated code: output=0cd453b9c0987fdf input=1a4ffd6dec9920cb]*/
{
- return DirEntry_test_mode(defining_class, self, follow_symlinks, S_IFDIR);
+ return DirEntry_test_mode(defining_class, self, follow_symlinks, S_IFDIR);
}
/*[clinic input]
os.DirEntry.is_file -> bool
- defining_class: defining_class
- /
+ defining_class: defining_class
+ /
*
follow_symlinks: bool = True
@@ -13524,11 +13524,11 @@ Return True if the entry is a file; cached per entry.
[clinic start generated code]*/
static int
-os_DirEntry_is_file_impl(DirEntry *self, PyTypeObject *defining_class,
- int follow_symlinks)
-/*[clinic end generated code: output=f7c277ab5ba80908 input=0a64c5a12e802e3b]*/
+os_DirEntry_is_file_impl(DirEntry *self, PyTypeObject *defining_class,
+ int follow_symlinks)
+/*[clinic end generated code: output=f7c277ab5ba80908 input=0a64c5a12e802e3b]*/
{
- return DirEntry_test_mode(defining_class, self, follow_symlinks, S_IFREG);
+ return DirEntry_test_mode(defining_class, self, follow_symlinks, S_IFREG);
}
/*[clinic input]
@@ -13550,10 +13550,10 @@ os_DirEntry_inode_impl(DirEntry *self)
if (!PyUnicode_FSDecoder(self->path, &unicode))
return NULL;
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
path = PyUnicode_AsUnicode(unicode);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
result = LSTAT(path, &stat);
Py_DECREF(unicode);
@@ -13608,29 +13608,29 @@ static PyMethodDef DirEntry_methods[] = {
OS_DIRENTRY_STAT_METHODDEF
OS_DIRENTRY_INODE_METHODDEF
OS_DIRENTRY___FSPATH___METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL}
};
-static PyType_Slot DirEntryType_slots[] = {
- {Py_tp_new, _disabled_new},
- {Py_tp_dealloc, DirEntry_dealloc},
- {Py_tp_repr, DirEntry_repr},
- {Py_tp_methods, DirEntry_methods},
- {Py_tp_members, DirEntry_members},
- {0, 0},
+static PyType_Slot DirEntryType_slots[] = {
+ {Py_tp_new, _disabled_new},
+ {Py_tp_dealloc, DirEntry_dealloc},
+ {Py_tp_repr, DirEntry_repr},
+ {Py_tp_methods, DirEntry_methods},
+ {Py_tp_members, DirEntry_members},
+ {0, 0},
};
-static PyType_Spec DirEntryType_spec = {
- MODNAME ".DirEntry",
- sizeof(DirEntry),
- 0,
- Py_TPFLAGS_DEFAULT,
- DirEntryType_slots
-};
-
-
+static PyType_Spec DirEntryType_spec = {
+ MODNAME ".DirEntry",
+ sizeof(DirEntry),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ DirEntryType_slots
+};
+
+
#ifdef MS_WINDOWS
static wchar_t *
@@ -13667,15 +13667,15 @@ join_path_filenameW(const wchar_t *path_wide, const wchar_t *filename)
}
static PyObject *
-DirEntry_from_find_data(PyObject *module, path_t *path, WIN32_FIND_DATAW *dataW)
+DirEntry_from_find_data(PyObject *module, path_t *path, WIN32_FIND_DATAW *dataW)
{
DirEntry *entry;
BY_HANDLE_FILE_INFORMATION file_info;
ULONG reparse_tag;
wchar_t *joined_path;
- PyObject *DirEntryType = get_posix_state(module)->DirEntryType;
- entry = PyObject_New(DirEntry, (PyTypeObject *)DirEntryType);
+ PyObject *DirEntryType = get_posix_state(module)->DirEntryType;
+ entry = PyObject_New(DirEntry, (PyTypeObject *)DirEntryType);
if (!entry)
return NULL;
entry->name = NULL;
@@ -13752,8 +13752,8 @@ join_path_filename(const char *path_narrow, const char* filename, Py_ssize_t fil
}
static PyObject *
-DirEntry_from_posix_info(PyObject *module, path_t *path, const char *name,
- Py_ssize_t name_len, ino_t d_ino
+DirEntry_from_posix_info(PyObject *module, path_t *path, const char *name,
+ Py_ssize_t name_len, ino_t d_ino
#ifdef HAVE_DIRENT_D_TYPE
, unsigned char d_type
#endif
@@ -13762,8 +13762,8 @@ DirEntry_from_posix_info(PyObject *module, path_t *path, const char *name,
DirEntry *entry;
char *joined_path;
- PyObject *DirEntryType = get_posix_state(module)->DirEntryType;
- entry = PyObject_New(DirEntry, (PyTypeObject *)DirEntryType);
+ PyObject *DirEntryType = get_posix_state(module)->DirEntryType;
+ entry = PyObject_New(DirEntry, (PyTypeObject *)DirEntryType);
if (!entry)
return NULL;
entry->name = NULL;
@@ -13882,10 +13882,10 @@ ScandirIterator_iternext(ScandirIterator *iterator)
/* Skip over . and .. */
if (wcscmp(file_data->cFileName, L".") != 0 &&
- wcscmp(file_data->cFileName, L"..") != 0)
- {
- PyObject *module = PyType_GetModule(Py_TYPE(iterator));
- entry = DirEntry_from_find_data(module, &iterator->path, file_data);
+ wcscmp(file_data->cFileName, L"..") != 0)
+ {
+ PyObject *module = PyType_GetModule(Py_TYPE(iterator));
+ entry = DirEntry_from_find_data(module, &iterator->path, file_data);
if (!entry)
break;
return entry;
@@ -13956,12 +13956,12 @@ ScandirIterator_iternext(ScandirIterator *iterator)
is_dot = direntp->d_name[0] == '.' &&
(name_len == 1 || (direntp->d_name[1] == '.' && name_len == 2));
if (!is_dot) {
- PyObject *module = PyType_GetModule(Py_TYPE(iterator));
- entry = DirEntry_from_posix_info(module,
- &iterator->path, direntp->d_name,
- name_len, direntp->d_ino
+ PyObject *module = PyType_GetModule(Py_TYPE(iterator));
+ entry = DirEntry_from_posix_info(module,
+ &iterator->path, direntp->d_name,
+ name_len, direntp->d_ino
#ifdef HAVE_DIRENT_D_TYPE
- , direntp->d_type
+ , direntp->d_type
#endif
);
if (!entry)
@@ -14029,13 +14029,13 @@ ScandirIterator_finalize(ScandirIterator *iterator)
static void
ScandirIterator_dealloc(ScandirIterator *iterator)
{
- PyTypeObject *tp = Py_TYPE(iterator);
+ PyTypeObject *tp = Py_TYPE(iterator);
if (PyObject_CallFinalizerFromDealloc((PyObject *)iterator) < 0)
return;
- freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
- free_func(iterator);
- Py_DECREF(tp);
+ freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
+ free_func(iterator);
+ Py_DECREF(tp);
}
static PyMethodDef ScandirIterator_methods[] = {
@@ -14045,26 +14045,26 @@ static PyMethodDef ScandirIterator_methods[] = {
{NULL}
};
-static PyType_Slot ScandirIteratorType_slots[] = {
- {Py_tp_new, _disabled_new},
- {Py_tp_dealloc, ScandirIterator_dealloc},
- {Py_tp_finalize, ScandirIterator_finalize},
- {Py_tp_iter, PyObject_SelfIter},
- {Py_tp_iternext, ScandirIterator_iternext},
- {Py_tp_methods, ScandirIterator_methods},
- {0, 0},
+static PyType_Slot ScandirIteratorType_slots[] = {
+ {Py_tp_new, _disabled_new},
+ {Py_tp_dealloc, ScandirIterator_dealloc},
+ {Py_tp_finalize, ScandirIterator_finalize},
+ {Py_tp_iter, PyObject_SelfIter},
+ {Py_tp_iternext, ScandirIterator_iternext},
+ {Py_tp_methods, ScandirIterator_methods},
+ {0, 0},
+};
+
+static PyType_Spec ScandirIteratorType_spec = {
+ MODNAME ".ScandirIterator",
+ sizeof(ScandirIterator),
+ 0,
+ // bpo-40549: Py_TPFLAGS_BASETYPE should not be used, since
+ // PyType_GetModule(Py_TYPE(self)) doesn't work on a subclass instance.
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_FINALIZE,
+ ScandirIteratorType_slots
};
-static PyType_Spec ScandirIteratorType_spec = {
- MODNAME ".ScandirIterator",
- sizeof(ScandirIterator),
- 0,
- // bpo-40549: Py_TPFLAGS_BASETYPE should not be used, since
- // PyType_GetModule(Py_TYPE(self)) doesn't work on a subclass instance.
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_FINALIZE,
- ScandirIteratorType_slots
-};
-
/*[clinic input]
os.scandir
@@ -14093,13 +14093,13 @@ os_scandir_impl(PyObject *module, path_t *path)
#endif
#endif
- if (PySys_Audit("os.scandir", "O",
- path->object ? path->object : Py_None) < 0) {
- return NULL;
- }
-
- PyObject *ScandirIteratorType = get_posix_state(module)->ScandirIteratorType;
- iterator = PyObject_New(ScandirIterator, (PyTypeObject *)ScandirIteratorType);
+ if (PySys_Audit("os.scandir", "O",
+ path->object ? path->object : Py_None) < 0) {
+ return NULL;
+ }
+
+ PyObject *ScandirIteratorType = get_posix_state(module)->ScandirIteratorType;
+ iterator = PyObject_New(ScandirIterator, (PyTypeObject *)ScandirIteratorType);
if (!iterator)
return NULL;
@@ -14134,8 +14134,8 @@ os_scandir_impl(PyObject *module, path_t *path)
#else /* POSIX */
errno = 0;
#ifdef HAVE_FDOPENDIR
- if (iterator->path.fd != -1) {
- if (HAVE_FDOPENDIR_RUNTIME) {
+ if (iterator->path.fd != -1) {
+ if (HAVE_FDOPENDIR_RUNTIME) {
/* closedir() closes the FD, so we duplicate it */
fd = _Py_dup(path->fd);
if (fd == -1)
@@ -14144,11 +14144,11 @@ os_scandir_impl(PyObject *module, path_t *path)
Py_BEGIN_ALLOW_THREADS
iterator->dirp = fdopendir(fd);
Py_END_ALLOW_THREADS
- } else {
- PyErr_SetString(PyExc_TypeError,
- "scandir: path should be string, bytes, os.PathLike or None, not int");
- return NULL;
- }
+ } else {
+ PyErr_SetString(PyExc_TypeError,
+ "scandir: path should be string, bytes, os.PathLike or None, not int");
+ return NULL;
+ }
}
else
#endif
@@ -14208,7 +14208,7 @@ PyOS_FSPath(PyObject *path)
return PyErr_Format(PyExc_TypeError,
"expected str, bytes or os.PathLike object, "
"not %.200s",
- _PyType_Name(Py_TYPE(path)));
+ _PyType_Name(Py_TYPE(path)));
}
path_repr = _PyObject_CallNoArg(func);
@@ -14220,8 +14220,8 @@ PyOS_FSPath(PyObject *path)
if (!(PyUnicode_Check(path_repr) || PyBytes_Check(path_repr))) {
PyErr_Format(PyExc_TypeError,
"expected %.200s.__fspath__() to return str or bytes, "
- "not %.200s", _PyType_Name(Py_TYPE(path)),
- _PyType_Name(Py_TYPE(path_repr)));
+ "not %.200s", _PyType_Name(Py_TYPE(path)),
+ _PyType_Name(Py_TYPE(path_repr)));
Py_DECREF(path_repr);
return NULL;
}
@@ -14309,217 +14309,217 @@ error:
}
#endif /* HAVE_GETRANDOM_SYSCALL */
-#ifdef MS_WINDOWS
-/* bpo-36085: Helper functions for managing DLL search directories
- * on win32
- */
-
-typedef DLL_DIRECTORY_COOKIE (WINAPI *PAddDllDirectory)(PCWSTR newDirectory);
-typedef BOOL (WINAPI *PRemoveDllDirectory)(DLL_DIRECTORY_COOKIE cookie);
-
-/*[clinic input]
-os._add_dll_directory
-
- path: path_t
-
-Add a path to the DLL search path.
-
-This search path is used when resolving dependencies for imported
-extension modules (the module itself is resolved through sys.path),
-and also by ctypes.
-
-Returns an opaque value that may be passed to os.remove_dll_directory
-to remove this directory from the search path.
-[clinic start generated code]*/
-
-static PyObject *
-os__add_dll_directory_impl(PyObject *module, path_t *path)
-/*[clinic end generated code: output=80b025daebb5d683 input=1de3e6c13a5808c8]*/
-{
- HMODULE hKernel32;
- PAddDllDirectory AddDllDirectory;
- DLL_DIRECTORY_COOKIE cookie = 0;
- DWORD err = 0;
-
- if (PySys_Audit("os.add_dll_directory", "(O)", path->object) < 0) {
- return NULL;
- }
-
- /* For Windows 7, we have to load this. As this will be a fairly
- infrequent operation, just do it each time. Kernel32 is always
- loaded. */
- Py_BEGIN_ALLOW_THREADS
- if (!(hKernel32 = GetModuleHandleW(L"kernel32")) ||
- !(AddDllDirectory = (PAddDllDirectory)GetProcAddress(
- hKernel32, "AddDllDirectory")) ||
- !(cookie = (*AddDllDirectory)(path->wide))) {
- err = GetLastError();
- }
- Py_END_ALLOW_THREADS
-
- if (err) {
- return win32_error_object_err("add_dll_directory",
- path->object, err);
- }
-
- return PyCapsule_New(cookie, "DLL directory cookie", NULL);
-}
-
-/*[clinic input]
-os._remove_dll_directory
-
- cookie: object
-
-Removes a path from the DLL search path.
-
-The parameter is an opaque value that was returned from
-os.add_dll_directory. You can only remove directories that you added
-yourself.
-[clinic start generated code]*/
-
-static PyObject *
-os__remove_dll_directory_impl(PyObject *module, PyObject *cookie)
-/*[clinic end generated code: output=594350433ae535bc input=c1d16a7e7d9dc5dc]*/
-{
- HMODULE hKernel32;
- PRemoveDllDirectory RemoveDllDirectory;
- DLL_DIRECTORY_COOKIE cookieValue;
- DWORD err = 0;
-
- if (!PyCapsule_IsValid(cookie, "DLL directory cookie")) {
- PyErr_SetString(PyExc_TypeError,
- "Provided cookie was not returned from os.add_dll_directory");
- return NULL;
- }
-
- cookieValue = (DLL_DIRECTORY_COOKIE)PyCapsule_GetPointer(
- cookie, "DLL directory cookie");
-
- /* For Windows 7, we have to load this. As this will be a fairly
- infrequent operation, just do it each time. Kernel32 is always
- loaded. */
- Py_BEGIN_ALLOW_THREADS
- if (!(hKernel32 = GetModuleHandleW(L"kernel32")) ||
- !(RemoveDllDirectory = (PRemoveDllDirectory)GetProcAddress(
- hKernel32, "RemoveDllDirectory")) ||
- !(*RemoveDllDirectory)(cookieValue)) {
- err = GetLastError();
- }
- Py_END_ALLOW_THREADS
-
- if (err) {
- return win32_error_object_err("remove_dll_directory",
- NULL, err);
- }
-
- if (PyCapsule_SetName(cookie, NULL)) {
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-#endif
-
-
-/* Only check if WIFEXITED is available: expect that it comes
- with WEXITSTATUS, WIFSIGNALED, etc.
-
- os.waitstatus_to_exitcode() is implemented in C and not in Python, so
- subprocess can safely call it during late Python finalization without
- risking that used os attributes were set to None by _PyImport_Cleanup(). */
-#if defined(WIFEXITED) || defined(MS_WINDOWS)
-/*[clinic input]
-os.waitstatus_to_exitcode
-
- status as status_obj: object
-
-Convert a wait status to an exit code.
-
-On Unix:
-
-* If WIFEXITED(status) is true, return WEXITSTATUS(status).
-* If WIFSIGNALED(status) is true, return -WTERMSIG(status).
-* Otherwise, raise a ValueError.
-
-On Windows, return status shifted right by 8 bits.
-
-On Unix, if the process is being traced or if waitpid() was called with
-WUNTRACED option, the caller must first check if WIFSTOPPED(status) is true.
-This function must not be called if WIFSTOPPED(status) is true.
-[clinic start generated code]*/
-
-static PyObject *
-os_waitstatus_to_exitcode_impl(PyObject *module, PyObject *status_obj)
-/*[clinic end generated code: output=db50b1b0ba3c7153 input=7fe2d7fdaea3db42]*/
-{
- if (PyFloat_Check(status_obj)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- return NULL;
- }
-#ifndef MS_WINDOWS
- int status = _PyLong_AsInt(status_obj);
- if (status == -1 && PyErr_Occurred()) {
- return NULL;
- }
-
- WAIT_TYPE wait_status;
- WAIT_STATUS_INT(wait_status) = status;
- int exitcode;
- if (WIFEXITED(wait_status)) {
- exitcode = WEXITSTATUS(wait_status);
- /* Sanity check to provide warranty on the function behavior.
- It should not occur in practice */
- if (exitcode < 0) {
- PyErr_Format(PyExc_ValueError, "invalid WEXITSTATUS: %i", exitcode);
- return NULL;
- }
- }
- else if (WIFSIGNALED(wait_status)) {
- int signum = WTERMSIG(wait_status);
- /* Sanity check to provide warranty on the function behavior.
- It should not occurs in practice */
- if (signum <= 0) {
- PyErr_Format(PyExc_ValueError, "invalid WTERMSIG: %i", signum);
- return NULL;
- }
- exitcode = -signum;
- } else if (WIFSTOPPED(wait_status)) {
- /* Status only received if the process is being traced
- or if waitpid() was called with WUNTRACED option. */
- int signum = WSTOPSIG(wait_status);
- PyErr_Format(PyExc_ValueError,
- "process stopped by delivery of signal %i",
- signum);
- return NULL;
- }
- else {
- PyErr_Format(PyExc_ValueError, "invalid wait status: %i", status);
- return NULL;
- }
- return PyLong_FromLong(exitcode);
-#else
- /* Windows implementation: see os.waitpid() implementation
- which uses _cwait(). */
- unsigned long long status = PyLong_AsUnsignedLongLong(status_obj);
- if (status == (unsigned long long)-1 && PyErr_Occurred()) {
- return NULL;
- }
-
- unsigned long long exitcode = (status >> 8);
- /* ExitProcess() accepts an UINT type:
- reject exit code which doesn't fit in an UINT */
- if (exitcode > UINT_MAX) {
- PyErr_Format(PyExc_ValueError, "invalid exit code: %llu", exitcode);
- return NULL;
- }
- return PyLong_FromUnsignedLong((unsigned long)exitcode);
-#endif
-}
-#endif
-
-
+#ifdef MS_WINDOWS
+/* bpo-36085: Helper functions for managing DLL search directories
+ * on win32
+ */
+
+typedef DLL_DIRECTORY_COOKIE (WINAPI *PAddDllDirectory)(PCWSTR newDirectory);
+typedef BOOL (WINAPI *PRemoveDllDirectory)(DLL_DIRECTORY_COOKIE cookie);
+
+/*[clinic input]
+os._add_dll_directory
+
+ path: path_t
+
+Add a path to the DLL search path.
+
+This search path is used when resolving dependencies for imported
+extension modules (the module itself is resolved through sys.path),
+and also by ctypes.
+
+Returns an opaque value that may be passed to os.remove_dll_directory
+to remove this directory from the search path.
+[clinic start generated code]*/
+
+static PyObject *
+os__add_dll_directory_impl(PyObject *module, path_t *path)
+/*[clinic end generated code: output=80b025daebb5d683 input=1de3e6c13a5808c8]*/
+{
+ HMODULE hKernel32;
+ PAddDllDirectory AddDllDirectory;
+ DLL_DIRECTORY_COOKIE cookie = 0;
+ DWORD err = 0;
+
+ if (PySys_Audit("os.add_dll_directory", "(O)", path->object) < 0) {
+ return NULL;
+ }
+
+ /* For Windows 7, we have to load this. As this will be a fairly
+ infrequent operation, just do it each time. Kernel32 is always
+ loaded. */
+ Py_BEGIN_ALLOW_THREADS
+ if (!(hKernel32 = GetModuleHandleW(L"kernel32")) ||
+ !(AddDllDirectory = (PAddDllDirectory)GetProcAddress(
+ hKernel32, "AddDllDirectory")) ||
+ !(cookie = (*AddDllDirectory)(path->wide))) {
+ err = GetLastError();
+ }
+ Py_END_ALLOW_THREADS
+
+ if (err) {
+ return win32_error_object_err("add_dll_directory",
+ path->object, err);
+ }
+
+ return PyCapsule_New(cookie, "DLL directory cookie", NULL);
+}
+
+/*[clinic input]
+os._remove_dll_directory
+
+ cookie: object
+
+Removes a path from the DLL search path.
+
+The parameter is an opaque value that was returned from
+os.add_dll_directory. You can only remove directories that you added
+yourself.
+[clinic start generated code]*/
+
+static PyObject *
+os__remove_dll_directory_impl(PyObject *module, PyObject *cookie)
+/*[clinic end generated code: output=594350433ae535bc input=c1d16a7e7d9dc5dc]*/
+{
+ HMODULE hKernel32;
+ PRemoveDllDirectory RemoveDllDirectory;
+ DLL_DIRECTORY_COOKIE cookieValue;
+ DWORD err = 0;
+
+ if (!PyCapsule_IsValid(cookie, "DLL directory cookie")) {
+ PyErr_SetString(PyExc_TypeError,
+ "Provided cookie was not returned from os.add_dll_directory");
+ return NULL;
+ }
+
+ cookieValue = (DLL_DIRECTORY_COOKIE)PyCapsule_GetPointer(
+ cookie, "DLL directory cookie");
+
+ /* For Windows 7, we have to load this. As this will be a fairly
+ infrequent operation, just do it each time. Kernel32 is always
+ loaded. */
+ Py_BEGIN_ALLOW_THREADS
+ if (!(hKernel32 = GetModuleHandleW(L"kernel32")) ||
+ !(RemoveDllDirectory = (PRemoveDllDirectory)GetProcAddress(
+ hKernel32, "RemoveDllDirectory")) ||
+ !(*RemoveDllDirectory)(cookieValue)) {
+ err = GetLastError();
+ }
+ Py_END_ALLOW_THREADS
+
+ if (err) {
+ return win32_error_object_err("remove_dll_directory",
+ NULL, err);
+ }
+
+ if (PyCapsule_SetName(cookie, NULL)) {
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+
+#endif
+
+
+/* Only check if WIFEXITED is available: expect that it comes
+ with WEXITSTATUS, WIFSIGNALED, etc.
+
+ os.waitstatus_to_exitcode() is implemented in C and not in Python, so
+ subprocess can safely call it during late Python finalization without
+ risking that used os attributes were set to None by _PyImport_Cleanup(). */
+#if defined(WIFEXITED) || defined(MS_WINDOWS)
+/*[clinic input]
+os.waitstatus_to_exitcode
+
+ status as status_obj: object
+
+Convert a wait status to an exit code.
+
+On Unix:
+
+* If WIFEXITED(status) is true, return WEXITSTATUS(status).
+* If WIFSIGNALED(status) is true, return -WTERMSIG(status).
+* Otherwise, raise a ValueError.
+
+On Windows, return status shifted right by 8 bits.
+
+On Unix, if the process is being traced or if waitpid() was called with
+WUNTRACED option, the caller must first check if WIFSTOPPED(status) is true.
+This function must not be called if WIFSTOPPED(status) is true.
+[clinic start generated code]*/
+
+static PyObject *
+os_waitstatus_to_exitcode_impl(PyObject *module, PyObject *status_obj)
+/*[clinic end generated code: output=db50b1b0ba3c7153 input=7fe2d7fdaea3db42]*/
+{
+ if (PyFloat_Check(status_obj)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ return NULL;
+ }
+#ifndef MS_WINDOWS
+ int status = _PyLong_AsInt(status_obj);
+ if (status == -1 && PyErr_Occurred()) {
+ return NULL;
+ }
+
+ WAIT_TYPE wait_status;
+ WAIT_STATUS_INT(wait_status) = status;
+ int exitcode;
+ if (WIFEXITED(wait_status)) {
+ exitcode = WEXITSTATUS(wait_status);
+ /* Sanity check to provide warranty on the function behavior.
+ It should not occur in practice */
+ if (exitcode < 0) {
+ PyErr_Format(PyExc_ValueError, "invalid WEXITSTATUS: %i", exitcode);
+ return NULL;
+ }
+ }
+ else if (WIFSIGNALED(wait_status)) {
+ int signum = WTERMSIG(wait_status);
+ /* Sanity check to provide warranty on the function behavior.
+ It should not occurs in practice */
+ if (signum <= 0) {
+ PyErr_Format(PyExc_ValueError, "invalid WTERMSIG: %i", signum);
+ return NULL;
+ }
+ exitcode = -signum;
+ } else if (WIFSTOPPED(wait_status)) {
+ /* Status only received if the process is being traced
+ or if waitpid() was called with WUNTRACED option. */
+ int signum = WSTOPSIG(wait_status);
+ PyErr_Format(PyExc_ValueError,
+ "process stopped by delivery of signal %i",
+ signum);
+ return NULL;
+ }
+ else {
+ PyErr_Format(PyExc_ValueError, "invalid wait status: %i", status);
+ return NULL;
+ }
+ return PyLong_FromLong(exitcode);
+#else
+ /* Windows implementation: see os.waitpid() implementation
+ which uses _cwait(). */
+ unsigned long long status = PyLong_AsUnsignedLongLong(status_obj);
+ if (status == (unsigned long long)-1 && PyErr_Occurred()) {
+ return NULL;
+ }
+
+ unsigned long long exitcode = (status >> 8);
+ /* ExitProcess() accepts an UINT type:
+ reject exit code which doesn't fit in an UINT */
+ if (exitcode > UINT_MAX) {
+ PyErr_Format(PyExc_ValueError, "invalid exit code: %llu", exitcode);
+ return NULL;
+ }
+ return PyLong_FromUnsignedLong((unsigned long)exitcode);
+#endif
+}
+#endif
+
+
static PyMethodDef posix_methods[] = {
OS_STAT_METHODDEF
@@ -14545,10 +14545,10 @@ static PyMethodDef posix_methods[] = {
OS_NICE_METHODDEF
OS_GETPRIORITY_METHODDEF
OS_SETPRIORITY_METHODDEF
- OS_POSIX_SPAWN_METHODDEF
- OS_POSIX_SPAWNP_METHODDEF
- OS_READLINK_METHODDEF
- OS_COPY_FILE_RANGE_METHODDEF
+ OS_POSIX_SPAWN_METHODDEF
+ OS_POSIX_SPAWNP_METHODDEF
+ OS_READLINK_METHODDEF
+ OS_COPY_FILE_RANGE_METHODDEF
OS_RENAME_METHODDEF
OS_REPLACE_METHODDEF
OS_RMDIR_METHODDEF
@@ -14561,7 +14561,7 @@ static PyMethodDef posix_methods[] = {
OS_UTIME_METHODDEF
OS_TIMES_METHODDEF
OS__EXIT_METHODDEF
- OS__FCOPYFILE_METHODDEF
+ OS__FCOPYFILE_METHODDEF
OS_EXECV_METHODDEF
OS_EXECVE_METHODDEF
OS_SPAWNV_METHODDEF
@@ -14584,7 +14584,7 @@ static PyMethodDef posix_methods[] = {
OS_GETEGID_METHODDEF
OS_GETEUID_METHODDEF
OS_GETGID_METHODDEF
- OS_GETGROUPLIST_METHODDEF
+ OS_GETGROUPLIST_METHODDEF
OS_GETGROUPS_METHODDEF
OS_GETPID_METHODDEF
OS_GETPGRP_METHODDEF
@@ -14602,7 +14602,7 @@ static PyMethodDef posix_methods[] = {
OS_SETEGID_METHODDEF
OS_SETREGID_METHODDEF
OS_SETGROUPS_METHODDEF
- OS_INITGROUPS_METHODDEF
+ OS_INITGROUPS_METHODDEF
OS_GETPGID_METHODDEF
OS_SETPGRP_METHODDEF
OS_WAIT_METHODDEF
@@ -14610,7 +14610,7 @@ static PyMethodDef posix_methods[] = {
OS_WAIT4_METHODDEF
OS_WAITID_METHODDEF
OS_WAITPID_METHODDEF
- OS_PIDFD_OPEN_METHODDEF
+ OS_PIDFD_OPEN_METHODDEF
OS_GETSID_METHODDEF
OS_SETSID_METHODDEF
OS_SETPGID_METHODDEF
@@ -14632,7 +14632,7 @@ static PyMethodDef posix_methods[] = {
OS_WRITEV_METHODDEF
OS_PWRITE_METHODDEF
OS_PWRITEV_METHODDEF
- OS_SENDFILE_METHODDEF
+ OS_SENDFILE_METHODDEF
OS_FSTAT_METHODDEF
OS_ISATTY_METHODDEF
OS_PIPE_METHODDEF
@@ -14672,7 +14672,7 @@ static PyMethodDef posix_methods[] = {
OS__GETDISKUSAGE_METHODDEF
OS__GETFINALPATHNAME_METHODDEF
OS__GETVOLUMEPATHNAME_METHODDEF
- OS__PATH_SPLITROOT_METHODDEF
+ OS__PATH_SPLITROOT_METHODDEF
OS_GETLOADAVG_METHODDEF
OS_URANDOM_METHODDEF
OS_SETRESUID_METHODDEF
@@ -14685,21 +14685,21 @@ static PyMethodDef posix_methods[] = {
OS_REMOVEXATTR_METHODDEF
OS_LISTXATTR_METHODDEF
- OS_GET_TERMINAL_SIZE_METHODDEF
+ OS_GET_TERMINAL_SIZE_METHODDEF
OS_CPU_COUNT_METHODDEF
OS_GET_INHERITABLE_METHODDEF
OS_SET_INHERITABLE_METHODDEF
OS_GET_HANDLE_INHERITABLE_METHODDEF
OS_SET_HANDLE_INHERITABLE_METHODDEF
- OS_GET_BLOCKING_METHODDEF
- OS_SET_BLOCKING_METHODDEF
+ OS_GET_BLOCKING_METHODDEF
+ OS_SET_BLOCKING_METHODDEF
OS_SCANDIR_METHODDEF
OS_FSPATH_METHODDEF
OS_GETRANDOM_METHODDEF
- OS_MEMFD_CREATE_METHODDEF
- OS__ADD_DLL_DIRECTORY_METHODDEF
- OS__REMOVE_DLL_DIRECTORY_METHODDEF
- OS_WAITSTATUS_TO_EXITCODE_METHODDEF
+ OS_MEMFD_CREATE_METHODDEF
+ OS__ADD_DLL_DIRECTORY_METHODDEF
+ OS__REMOVE_DLL_DIRECTORY_METHODDEF
+ OS_WAITSTATUS_TO_EXITCODE_METHODDEF
{NULL, NULL} /* Sentinel */
};
@@ -15007,10 +15007,10 @@ all_ins(PyObject *m)
if (PyModule_AddIntMacro(m, P_PID)) return -1;
if (PyModule_AddIntMacro(m, P_PGID)) return -1;
if (PyModule_AddIntMacro(m, P_ALL)) return -1;
-#ifdef P_PIDFD
- if (PyModule_AddIntMacro(m, P_PIDFD)) return -1;
+#ifdef P_PIDFD
+ if (PyModule_AddIntMacro(m, P_PIDFD)) return -1;
+#endif
#endif
-#endif
#ifdef WEXITED
if (PyModule_AddIntMacro(m, WEXITED)) return -1;
#endif
@@ -15023,18 +15023,18 @@ all_ins(PyObject *m)
#ifdef CLD_EXITED
if (PyModule_AddIntMacro(m, CLD_EXITED)) return -1;
#endif
-#ifdef CLD_KILLED
- if (PyModule_AddIntMacro(m, CLD_KILLED)) return -1;
-#endif
+#ifdef CLD_KILLED
+ if (PyModule_AddIntMacro(m, CLD_KILLED)) return -1;
+#endif
#ifdef CLD_DUMPED
if (PyModule_AddIntMacro(m, CLD_DUMPED)) return -1;
#endif
#ifdef CLD_TRAPPED
if (PyModule_AddIntMacro(m, CLD_TRAPPED)) return -1;
#endif
-#ifdef CLD_STOPPED
- if (PyModule_AddIntMacro(m, CLD_STOPPED)) return -1;
-#endif
+#ifdef CLD_STOPPED
+ if (PyModule_AddIntMacro(m, CLD_STOPPED)) return -1;
+#endif
#ifdef CLD_CONTINUED
if (PyModule_AddIntMacro(m, CLD_CONTINUED)) return -1;
#endif
@@ -15066,19 +15066,19 @@ all_ins(PyObject *m)
if (PyModule_AddIntConstant(m, "RWF_NOWAIT", RWF_NOWAIT)) return -1;
#endif
-/* constants for posix_spawn */
-#ifdef HAVE_POSIX_SPAWN
- if (PyModule_AddIntConstant(m, "POSIX_SPAWN_OPEN", POSIX_SPAWN_OPEN)) return -1;
- if (PyModule_AddIntConstant(m, "POSIX_SPAWN_CLOSE", POSIX_SPAWN_CLOSE)) return -1;
- if (PyModule_AddIntConstant(m, "POSIX_SPAWN_DUP2", POSIX_SPAWN_DUP2)) return -1;
-#endif
-
-#if defined(HAVE_SPAWNV) || defined (HAVE_RTPSPAWN)
+/* constants for posix_spawn */
+#ifdef HAVE_POSIX_SPAWN
+ if (PyModule_AddIntConstant(m, "POSIX_SPAWN_OPEN", POSIX_SPAWN_OPEN)) return -1;
+ if (PyModule_AddIntConstant(m, "POSIX_SPAWN_CLOSE", POSIX_SPAWN_CLOSE)) return -1;
+ if (PyModule_AddIntConstant(m, "POSIX_SPAWN_DUP2", POSIX_SPAWN_DUP2)) return -1;
+#endif
+
+#if defined(HAVE_SPAWNV) || defined (HAVE_RTPSPAWN)
if (PyModule_AddIntConstant(m, "P_WAIT", _P_WAIT)) return -1;
if (PyModule_AddIntConstant(m, "P_NOWAIT", _P_NOWAIT)) return -1;
- if (PyModule_AddIntConstant(m, "P_NOWAITO", _P_NOWAITO)) return -1;
-#endif
-#ifdef HAVE_SPAWNV
+ if (PyModule_AddIntConstant(m, "P_NOWAITO", _P_NOWAITO)) return -1;
+#endif
+#ifdef HAVE_SPAWNV
if (PyModule_AddIntConstant(m, "P_OVERLAY", _OLD_P_OVERLAY)) return -1;
if (PyModule_AddIntConstant(m, "P_DETACH", _P_DETACH)) return -1;
#endif
@@ -15154,423 +15154,423 @@ all_ins(PyObject *m)
if (PyModule_AddIntMacro(m, GRND_RANDOM)) return -1;
if (PyModule_AddIntMacro(m, GRND_NONBLOCK)) return -1;
#endif
-#ifdef HAVE_MEMFD_CREATE
- if (PyModule_AddIntMacro(m, MFD_CLOEXEC)) return -1;
- if (PyModule_AddIntMacro(m, MFD_ALLOW_SEALING)) return -1;
-#ifdef MFD_HUGETLB
- if (PyModule_AddIntMacro(m, MFD_HUGETLB)) return -1;
-#endif
-#ifdef MFD_HUGE_SHIFT
- if (PyModule_AddIntMacro(m, MFD_HUGE_SHIFT)) return -1;
-#endif
-#ifdef MFD_HUGE_MASK
- if (PyModule_AddIntMacro(m, MFD_HUGE_MASK)) return -1;
-#endif
-#ifdef MFD_HUGE_64KB
- if (PyModule_AddIntMacro(m, MFD_HUGE_64KB)) return -1;
-#endif
-#ifdef MFD_HUGE_512KB
- if (PyModule_AddIntMacro(m, MFD_HUGE_512KB)) return -1;
-#endif
-#ifdef MFD_HUGE_1MB
- if (PyModule_AddIntMacro(m, MFD_HUGE_1MB)) return -1;
-#endif
-#ifdef MFD_HUGE_2MB
- if (PyModule_AddIntMacro(m, MFD_HUGE_2MB)) return -1;
-#endif
-#ifdef MFD_HUGE_8MB
- if (PyModule_AddIntMacro(m, MFD_HUGE_8MB)) return -1;
-#endif
-#ifdef MFD_HUGE_16MB
- if (PyModule_AddIntMacro(m, MFD_HUGE_16MB)) return -1;
-#endif
-#ifdef MFD_HUGE_32MB
- if (PyModule_AddIntMacro(m, MFD_HUGE_32MB)) return -1;
-#endif
-#ifdef MFD_HUGE_256MB
- if (PyModule_AddIntMacro(m, MFD_HUGE_256MB)) return -1;
-#endif
-#ifdef MFD_HUGE_512MB
- if (PyModule_AddIntMacro(m, MFD_HUGE_512MB)) return -1;
-#endif
-#ifdef MFD_HUGE_1GB
- if (PyModule_AddIntMacro(m, MFD_HUGE_1GB)) return -1;
-#endif
-#ifdef MFD_HUGE_2GB
- if (PyModule_AddIntMacro(m, MFD_HUGE_2GB)) return -1;
-#endif
-#ifdef MFD_HUGE_16GB
- if (PyModule_AddIntMacro(m, MFD_HUGE_16GB)) return -1;
-#endif
-#endif
-
-#if defined(__APPLE__)
- if (PyModule_AddIntConstant(m, "_COPYFILE_DATA", COPYFILE_DATA)) return -1;
-#endif
-
-#ifdef MS_WINDOWS
- if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_DEFAULT_DIRS", LOAD_LIBRARY_SEARCH_DEFAULT_DIRS)) return -1;
- if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_APPLICATION_DIR", LOAD_LIBRARY_SEARCH_APPLICATION_DIR)) return -1;
- if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_SYSTEM32", LOAD_LIBRARY_SEARCH_SYSTEM32)) return -1;
- if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_USER_DIRS", LOAD_LIBRARY_SEARCH_USER_DIRS)) return -1;
- if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR", LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR)) return -1;
-#endif
-
+#ifdef HAVE_MEMFD_CREATE
+ if (PyModule_AddIntMacro(m, MFD_CLOEXEC)) return -1;
+ if (PyModule_AddIntMacro(m, MFD_ALLOW_SEALING)) return -1;
+#ifdef MFD_HUGETLB
+ if (PyModule_AddIntMacro(m, MFD_HUGETLB)) return -1;
+#endif
+#ifdef MFD_HUGE_SHIFT
+ if (PyModule_AddIntMacro(m, MFD_HUGE_SHIFT)) return -1;
+#endif
+#ifdef MFD_HUGE_MASK
+ if (PyModule_AddIntMacro(m, MFD_HUGE_MASK)) return -1;
+#endif
+#ifdef MFD_HUGE_64KB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_64KB)) return -1;
+#endif
+#ifdef MFD_HUGE_512KB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_512KB)) return -1;
+#endif
+#ifdef MFD_HUGE_1MB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_1MB)) return -1;
+#endif
+#ifdef MFD_HUGE_2MB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_2MB)) return -1;
+#endif
+#ifdef MFD_HUGE_8MB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_8MB)) return -1;
+#endif
+#ifdef MFD_HUGE_16MB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_16MB)) return -1;
+#endif
+#ifdef MFD_HUGE_32MB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_32MB)) return -1;
+#endif
+#ifdef MFD_HUGE_256MB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_256MB)) return -1;
+#endif
+#ifdef MFD_HUGE_512MB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_512MB)) return -1;
+#endif
+#ifdef MFD_HUGE_1GB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_1GB)) return -1;
+#endif
+#ifdef MFD_HUGE_2GB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_2GB)) return -1;
+#endif
+#ifdef MFD_HUGE_16GB
+ if (PyModule_AddIntMacro(m, MFD_HUGE_16GB)) return -1;
+#endif
+#endif
+
+#if defined(__APPLE__)
+ if (PyModule_AddIntConstant(m, "_COPYFILE_DATA", COPYFILE_DATA)) return -1;
+#endif
+
+#ifdef MS_WINDOWS
+ if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_DEFAULT_DIRS", LOAD_LIBRARY_SEARCH_DEFAULT_DIRS)) return -1;
+ if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_APPLICATION_DIR", LOAD_LIBRARY_SEARCH_APPLICATION_DIR)) return -1;
+ if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_SYSTEM32", LOAD_LIBRARY_SEARCH_SYSTEM32)) return -1;
+ if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_USER_DIRS", LOAD_LIBRARY_SEARCH_USER_DIRS)) return -1;
+ if (PyModule_AddIntConstant(m, "_LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR", LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR)) return -1;
+#endif
+
return 0;
}
-#define PROBE(name, test) \
- static int name(void) \
- { \
- if (test) { \
- return 1; \
- } else { \
- return 0; \
- } \
- }
+#define PROBE(name, test) \
+ static int name(void) \
+ { \
+ if (test) { \
+ return 1; \
+ } else { \
+ return 0; \
+ } \
+ }
-#ifdef HAVE_FSTATAT
-PROBE(probe_fstatat, HAVE_FSTATAT_RUNTIME)
-#endif
+#ifdef HAVE_FSTATAT
+PROBE(probe_fstatat, HAVE_FSTATAT_RUNTIME)
+#endif
#ifdef HAVE_FACCESSAT
-PROBE(probe_faccessat, HAVE_FACCESSAT_RUNTIME)
-#endif
-
-#ifdef HAVE_FCHMODAT
-PROBE(probe_fchmodat, HAVE_FCHMODAT_RUNTIME)
-#endif
-
-#ifdef HAVE_FCHOWNAT
-PROBE(probe_fchownat, HAVE_FCHOWNAT_RUNTIME)
-#endif
-
-#ifdef HAVE_LINKAT
-PROBE(probe_linkat, HAVE_LINKAT_RUNTIME)
-#endif
-
-#ifdef HAVE_FDOPENDIR
-PROBE(probe_fdopendir, HAVE_FDOPENDIR_RUNTIME)
-#endif
-
-#ifdef HAVE_MKDIRAT
-PROBE(probe_mkdirat, HAVE_MKDIRAT_RUNTIME)
-#endif
-
-#ifdef HAVE_RENAMEAT
-PROBE(probe_renameat, HAVE_RENAMEAT_RUNTIME)
-#endif
-
-#ifdef HAVE_UNLINKAT
-PROBE(probe_unlinkat, HAVE_UNLINKAT_RUNTIME)
-#endif
-
-#ifdef HAVE_OPENAT
-PROBE(probe_openat, HAVE_OPENAT_RUNTIME)
-#endif
-
-#ifdef HAVE_READLINKAT
-PROBE(probe_readlinkat, HAVE_READLINKAT_RUNTIME)
-#endif
-
-#ifdef HAVE_SYMLINKAT
-PROBE(probe_symlinkat, HAVE_SYMLINKAT_RUNTIME)
-#endif
-
-#ifdef HAVE_FUTIMENS
-PROBE(probe_futimens, HAVE_FUTIMENS_RUNTIME)
-#endif
-
-#ifdef HAVE_UTIMENSAT
-PROBE(probe_utimensat, HAVE_UTIMENSAT_RUNTIME)
-#endif
-
-
-
-
-static const struct have_function {
- const char * const label;
- int (*probe)(void);
-} have_functions[] = {
-
-#ifdef HAVE_FACCESSAT
- { "HAVE_FACCESSAT", probe_faccessat },
-#endif
-
+PROBE(probe_faccessat, HAVE_FACCESSAT_RUNTIME)
+#endif
+
+#ifdef HAVE_FCHMODAT
+PROBE(probe_fchmodat, HAVE_FCHMODAT_RUNTIME)
+#endif
+
+#ifdef HAVE_FCHOWNAT
+PROBE(probe_fchownat, HAVE_FCHOWNAT_RUNTIME)
+#endif
+
+#ifdef HAVE_LINKAT
+PROBE(probe_linkat, HAVE_LINKAT_RUNTIME)
+#endif
+
+#ifdef HAVE_FDOPENDIR
+PROBE(probe_fdopendir, HAVE_FDOPENDIR_RUNTIME)
+#endif
+
+#ifdef HAVE_MKDIRAT
+PROBE(probe_mkdirat, HAVE_MKDIRAT_RUNTIME)
+#endif
+
+#ifdef HAVE_RENAMEAT
+PROBE(probe_renameat, HAVE_RENAMEAT_RUNTIME)
+#endif
+
+#ifdef HAVE_UNLINKAT
+PROBE(probe_unlinkat, HAVE_UNLINKAT_RUNTIME)
+#endif
+
+#ifdef HAVE_OPENAT
+PROBE(probe_openat, HAVE_OPENAT_RUNTIME)
+#endif
+
+#ifdef HAVE_READLINKAT
+PROBE(probe_readlinkat, HAVE_READLINKAT_RUNTIME)
+#endif
+
+#ifdef HAVE_SYMLINKAT
+PROBE(probe_symlinkat, HAVE_SYMLINKAT_RUNTIME)
+#endif
+
+#ifdef HAVE_FUTIMENS
+PROBE(probe_futimens, HAVE_FUTIMENS_RUNTIME)
+#endif
+
+#ifdef HAVE_UTIMENSAT
+PROBE(probe_utimensat, HAVE_UTIMENSAT_RUNTIME)
+#endif
+
+
+
+
+static const struct have_function {
+ const char * const label;
+ int (*probe)(void);
+} have_functions[] = {
+
+#ifdef HAVE_FACCESSAT
+ { "HAVE_FACCESSAT", probe_faccessat },
+#endif
+
#ifdef HAVE_FCHDIR
- { "HAVE_FCHDIR", NULL },
+ { "HAVE_FCHDIR", NULL },
#endif
#ifdef HAVE_FCHMOD
- { "HAVE_FCHMOD", NULL },
+ { "HAVE_FCHMOD", NULL },
#endif
#ifdef HAVE_FCHMODAT
- { "HAVE_FCHMODAT", probe_fchmodat },
+ { "HAVE_FCHMODAT", probe_fchmodat },
#endif
#ifdef HAVE_FCHOWN
- { "HAVE_FCHOWN", NULL },
+ { "HAVE_FCHOWN", NULL },
#endif
#ifdef HAVE_FCHOWNAT
- { "HAVE_FCHOWNAT", probe_fchownat },
+ { "HAVE_FCHOWNAT", probe_fchownat },
#endif
#ifdef HAVE_FEXECVE
- { "HAVE_FEXECVE", NULL },
+ { "HAVE_FEXECVE", NULL },
#endif
#ifdef HAVE_FDOPENDIR
- { "HAVE_FDOPENDIR", probe_fdopendir },
+ { "HAVE_FDOPENDIR", probe_fdopendir },
#endif
#ifdef HAVE_FPATHCONF
- { "HAVE_FPATHCONF", NULL },
+ { "HAVE_FPATHCONF", NULL },
#endif
#ifdef HAVE_FSTATAT
- { "HAVE_FSTATAT", probe_fstatat },
+ { "HAVE_FSTATAT", probe_fstatat },
#endif
#ifdef HAVE_FSTATVFS
- { "HAVE_FSTATVFS", NULL },
+ { "HAVE_FSTATVFS", NULL },
#endif
#if defined HAVE_FTRUNCATE || defined MS_WINDOWS
- { "HAVE_FTRUNCATE", NULL },
+ { "HAVE_FTRUNCATE", NULL },
#endif
#ifdef HAVE_FUTIMENS
- { "HAVE_FUTIMENS", probe_futimens },
+ { "HAVE_FUTIMENS", probe_futimens },
#endif
#ifdef HAVE_FUTIMES
- { "HAVE_FUTIMES", NULL },
+ { "HAVE_FUTIMES", NULL },
#endif
#ifdef HAVE_FUTIMESAT
- { "HAVE_FUTIMESAT", NULL },
+ { "HAVE_FUTIMESAT", NULL },
#endif
#ifdef HAVE_LINKAT
- { "HAVE_LINKAT", probe_linkat },
+ { "HAVE_LINKAT", probe_linkat },
#endif
#ifdef HAVE_LCHFLAGS
- { "HAVE_LCHFLAGS", NULL },
+ { "HAVE_LCHFLAGS", NULL },
#endif
#ifdef HAVE_LCHMOD
- { "HAVE_LCHMOD", NULL },
+ { "HAVE_LCHMOD", NULL },
#endif
#ifdef HAVE_LCHOWN
- { "HAVE_LCHOWN", NULL },
+ { "HAVE_LCHOWN", NULL },
#endif
#ifdef HAVE_LSTAT
- { "HAVE_LSTAT", NULL },
+ { "HAVE_LSTAT", NULL },
#endif
#ifdef HAVE_LUTIMES
- { "HAVE_LUTIMES", NULL },
+ { "HAVE_LUTIMES", NULL },
+#endif
+
+#ifdef HAVE_MEMFD_CREATE
+ { "HAVE_MEMFD_CREATE", NULL },
#endif
-#ifdef HAVE_MEMFD_CREATE
- { "HAVE_MEMFD_CREATE", NULL },
-#endif
-
#ifdef HAVE_MKDIRAT
- { "HAVE_MKDIRAT", probe_mkdirat },
+ { "HAVE_MKDIRAT", probe_mkdirat },
#endif
#ifdef HAVE_MKFIFOAT
- { "HAVE_MKFIFOAT", NULL },
+ { "HAVE_MKFIFOAT", NULL },
#endif
#ifdef HAVE_MKNODAT
- { "HAVE_MKNODAT", NULL },
+ { "HAVE_MKNODAT", NULL },
#endif
#ifdef HAVE_OPENAT
- { "HAVE_OPENAT", probe_openat },
+ { "HAVE_OPENAT", probe_openat },
#endif
#ifdef HAVE_READLINKAT
- { "HAVE_READLINKAT", probe_readlinkat },
+ { "HAVE_READLINKAT", probe_readlinkat },
#endif
#ifdef HAVE_RENAMEAT
- { "HAVE_RENAMEAT", probe_renameat },
+ { "HAVE_RENAMEAT", probe_renameat },
#endif
#ifdef HAVE_SYMLINKAT
- { "HAVE_SYMLINKAT", probe_symlinkat },
+ { "HAVE_SYMLINKAT", probe_symlinkat },
#endif
#ifdef HAVE_UNLINKAT
- { "HAVE_UNLINKAT", probe_unlinkat },
+ { "HAVE_UNLINKAT", probe_unlinkat },
#endif
#ifdef HAVE_UTIMENSAT
- { "HAVE_UTIMENSAT", probe_utimensat },
+ { "HAVE_UTIMENSAT", probe_utimensat },
#endif
#ifdef MS_WINDOWS
- { "MS_WINDOWS", NULL },
+ { "MS_WINDOWS", NULL },
#endif
- { NULL, NULL }
+ { NULL, NULL }
};
-static int
-posixmodule_exec(PyObject *m)
-{
- _posixstate *state = get_posix_state(m);
-
-#if defined(HAVE_PWRITEV)
- if (HAVE_PWRITEV_RUNTIME) {} else {
- PyObject* dct = PyModule_GetDict(m);
-
- if (dct == NULL) {
- return -1;
- }
-
- if (PyDict_DelItemString(dct, "pwritev") == -1) {
- PyErr_Clear();
- }
- if (PyDict_DelItemString(dct, "preadv") == -1) {
- PyErr_Clear();
- }
- }
-#endif
-
+static int
+posixmodule_exec(PyObject *m)
+{
+ _posixstate *state = get_posix_state(m);
+
+#if defined(HAVE_PWRITEV)
+ if (HAVE_PWRITEV_RUNTIME) {} else {
+ PyObject* dct = PyModule_GetDict(m);
+
+ if (dct == NULL) {
+ return -1;
+ }
+
+ if (PyDict_DelItemString(dct, "pwritev") == -1) {
+ PyErr_Clear();
+ }
+ if (PyDict_DelItemString(dct, "preadv") == -1) {
+ PyErr_Clear();
+ }
+ }
+#endif
+
/* Initialize environ dictionary */
- PyObject *v = convertenviron();
+ PyObject *v = convertenviron();
Py_XINCREF(v);
if (v == NULL || PyModule_AddObject(m, "environ", v) != 0)
- return -1;
+ return -1;
Py_DECREF(v);
if (all_ins(m))
- return -1;
+ return -1;
if (setup_confname_tables(m))
- return -1;
+ return -1;
Py_INCREF(PyExc_OSError);
PyModule_AddObject(m, "error", PyExc_OSError);
#if defined(HAVE_WAITID) && !defined(__APPLE__)
- waitid_result_desc.name = MODNAME ".waitid_result";
- PyObject *WaitidResultType = (PyObject *)PyStructSequence_NewType(&waitid_result_desc);
- if (WaitidResultType == NULL) {
- return -1;
- }
- Py_INCREF(WaitidResultType);
- PyModule_AddObject(m, "waitid_result", WaitidResultType);
- state->WaitidResultType = WaitidResultType;
-#endif
-
- stat_result_desc.name = "os.stat_result"; /* see issue #19209 */
- stat_result_desc.fields[7].name = PyStructSequence_UnnamedField;
- stat_result_desc.fields[8].name = PyStructSequence_UnnamedField;
- stat_result_desc.fields[9].name = PyStructSequence_UnnamedField;
- PyObject *StatResultType = (PyObject *)PyStructSequence_NewType(&stat_result_desc);
- if (StatResultType == NULL) {
- return -1;
- }
- Py_INCREF(StatResultType);
- PyModule_AddObject(m, "stat_result", StatResultType);
- state->StatResultType = StatResultType;
- structseq_new = ((PyTypeObject *)StatResultType)->tp_new;
- ((PyTypeObject *)StatResultType)->tp_new = statresult_new;
-
- statvfs_result_desc.name = "os.statvfs_result"; /* see issue #19209 */
- PyObject *StatVFSResultType = (PyObject *)PyStructSequence_NewType(&statvfs_result_desc);
- if (StatVFSResultType == NULL) {
- return -1;
- }
- Py_INCREF(StatVFSResultType);
- PyModule_AddObject(m, "statvfs_result", StatVFSResultType);
- state->StatVFSResultType = StatVFSResultType;
+ waitid_result_desc.name = MODNAME ".waitid_result";
+ PyObject *WaitidResultType = (PyObject *)PyStructSequence_NewType(&waitid_result_desc);
+ if (WaitidResultType == NULL) {
+ return -1;
+ }
+ Py_INCREF(WaitidResultType);
+ PyModule_AddObject(m, "waitid_result", WaitidResultType);
+ state->WaitidResultType = WaitidResultType;
+#endif
+
+ stat_result_desc.name = "os.stat_result"; /* see issue #19209 */
+ stat_result_desc.fields[7].name = PyStructSequence_UnnamedField;
+ stat_result_desc.fields[8].name = PyStructSequence_UnnamedField;
+ stat_result_desc.fields[9].name = PyStructSequence_UnnamedField;
+ PyObject *StatResultType = (PyObject *)PyStructSequence_NewType(&stat_result_desc);
+ if (StatResultType == NULL) {
+ return -1;
+ }
+ Py_INCREF(StatResultType);
+ PyModule_AddObject(m, "stat_result", StatResultType);
+ state->StatResultType = StatResultType;
+ structseq_new = ((PyTypeObject *)StatResultType)->tp_new;
+ ((PyTypeObject *)StatResultType)->tp_new = statresult_new;
+
+ statvfs_result_desc.name = "os.statvfs_result"; /* see issue #19209 */
+ PyObject *StatVFSResultType = (PyObject *)PyStructSequence_NewType(&statvfs_result_desc);
+ if (StatVFSResultType == NULL) {
+ return -1;
+ }
+ Py_INCREF(StatVFSResultType);
+ PyModule_AddObject(m, "statvfs_result", StatVFSResultType);
+ state->StatVFSResultType = StatVFSResultType;
#ifdef NEED_TICKS_PER_SECOND
# if defined(HAVE_SYSCONF) && defined(_SC_CLK_TCK)
- ticks_per_second = sysconf(_SC_CLK_TCK);
+ ticks_per_second = sysconf(_SC_CLK_TCK);
# elif defined(HZ)
- ticks_per_second = HZ;
+ ticks_per_second = HZ;
# else
- ticks_per_second = 60; /* magic fallback value; may be bogus */
+ ticks_per_second = 60; /* magic fallback value; may be bogus */
# endif
#endif
-#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
- sched_param_desc.name = MODNAME ".sched_param";
- PyObject *SchedParamType = (PyObject *)PyStructSequence_NewType(&sched_param_desc);
- if (SchedParamType == NULL) {
- return -1;
- }
- Py_INCREF(SchedParamType);
- PyModule_AddObject(m, "sched_param", SchedParamType);
- state->SchedParamType = SchedParamType;
- ((PyTypeObject *)SchedParamType)->tp_new = os_sched_param;
-#endif
-
- /* initialize TerminalSize_info */
- PyObject *TerminalSizeType = (PyObject *)PyStructSequence_NewType(&TerminalSize_desc);
- if (TerminalSizeType == NULL) {
- return -1;
- }
- Py_INCREF(TerminalSizeType);
- PyModule_AddObject(m, "terminal_size", TerminalSizeType);
- state->TerminalSizeType = TerminalSizeType;
-
- /* initialize scandir types */
- PyObject *ScandirIteratorType = PyType_FromModuleAndSpec(m, &ScandirIteratorType_spec, NULL);
- if (ScandirIteratorType == NULL) {
- return -1;
- }
- state->ScandirIteratorType = ScandirIteratorType;
-
- PyObject *DirEntryType = PyType_FromModuleAndSpec(m, &DirEntryType_spec, NULL);
- if (DirEntryType == NULL) {
- return -1;
- }
- Py_INCREF(DirEntryType);
- PyModule_AddObject(m, "DirEntry", DirEntryType);
- state->DirEntryType = DirEntryType;
+#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
+ sched_param_desc.name = MODNAME ".sched_param";
+ PyObject *SchedParamType = (PyObject *)PyStructSequence_NewType(&sched_param_desc);
+ if (SchedParamType == NULL) {
+ return -1;
+ }
+ Py_INCREF(SchedParamType);
+ PyModule_AddObject(m, "sched_param", SchedParamType);
+ state->SchedParamType = SchedParamType;
+ ((PyTypeObject *)SchedParamType)->tp_new = os_sched_param;
+#endif
+
+ /* initialize TerminalSize_info */
+ PyObject *TerminalSizeType = (PyObject *)PyStructSequence_NewType(&TerminalSize_desc);
+ if (TerminalSizeType == NULL) {
+ return -1;
+ }
+ Py_INCREF(TerminalSizeType);
+ PyModule_AddObject(m, "terminal_size", TerminalSizeType);
+ state->TerminalSizeType = TerminalSizeType;
+
+ /* initialize scandir types */
+ PyObject *ScandirIteratorType = PyType_FromModuleAndSpec(m, &ScandirIteratorType_spec, NULL);
+ if (ScandirIteratorType == NULL) {
+ return -1;
+ }
+ state->ScandirIteratorType = ScandirIteratorType;
+
+ PyObject *DirEntryType = PyType_FromModuleAndSpec(m, &DirEntryType_spec, NULL);
+ if (DirEntryType == NULL) {
+ return -1;
+ }
+ Py_INCREF(DirEntryType);
+ PyModule_AddObject(m, "DirEntry", DirEntryType);
+ state->DirEntryType = DirEntryType;
times_result_desc.name = MODNAME ".times_result";
- PyObject *TimesResultType = (PyObject *)PyStructSequence_NewType(&times_result_desc);
- if (TimesResultType == NULL) {
- return -1;
- }
- Py_INCREF(TimesResultType);
- PyModule_AddObject(m, "times_result", TimesResultType);
- state->TimesResultType = TimesResultType;
-
- PyTypeObject *UnameResultType = PyStructSequence_NewType(&uname_result_desc);
- if (UnameResultType == NULL) {
- return -1;
- }
- Py_INCREF(UnameResultType);
- PyModule_AddObject(m, "uname_result", (PyObject *)UnameResultType);
- state->UnameResultType = (PyObject *)UnameResultType;
-
- if ((state->billion = PyLong_FromLong(1000000000)) == NULL)
- return -1;
-#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
- state->struct_rusage = PyUnicode_InternFromString("struct_rusage");
- if (state->struct_rusage == NULL)
- return -1;
-#endif
- state->st_mode = PyUnicode_InternFromString("st_mode");
- if (state->st_mode == NULL)
- return -1;
+ PyObject *TimesResultType = (PyObject *)PyStructSequence_NewType(&times_result_desc);
+ if (TimesResultType == NULL) {
+ return -1;
+ }
+ Py_INCREF(TimesResultType);
+ PyModule_AddObject(m, "times_result", TimesResultType);
+ state->TimesResultType = TimesResultType;
+
+ PyTypeObject *UnameResultType = PyStructSequence_NewType(&uname_result_desc);
+ if (UnameResultType == NULL) {
+ return -1;
+ }
+ Py_INCREF(UnameResultType);
+ PyModule_AddObject(m, "uname_result", (PyObject *)UnameResultType);
+ state->UnameResultType = (PyObject *)UnameResultType;
+
+ if ((state->billion = PyLong_FromLong(1000000000)) == NULL)
+ return -1;
+#if defined(HAVE_WAIT3) || defined(HAVE_WAIT4)
+ state->struct_rusage = PyUnicode_InternFromString("struct_rusage");
+ if (state->struct_rusage == NULL)
+ return -1;
+#endif
+ state->st_mode = PyUnicode_InternFromString("st_mode");
+ if (state->st_mode == NULL)
+ return -1;
/* suppress "function not used" warnings */
{
@@ -15586,48 +15586,48 @@ posixmodule_exec(PyObject *m)
* provide list of locally available functions
* so os.py can populate support_* lists
*/
- PyObject *list = PyList_New(0);
- if (!list) {
- return -1;
- }
- for (const struct have_function *trace = have_functions; trace->label; trace++) {
- PyObject *unicode;
- if (trace->probe && !trace->probe()) continue;
- unicode = PyUnicode_DecodeASCII(trace->label, strlen(trace->label), NULL);
+ PyObject *list = PyList_New(0);
+ if (!list) {
+ return -1;
+ }
+ for (const struct have_function *trace = have_functions; trace->label; trace++) {
+ PyObject *unicode;
+ if (trace->probe && !trace->probe()) continue;
+ unicode = PyUnicode_DecodeASCII(trace->label, strlen(trace->label), NULL);
if (!unicode)
- return -1;
+ return -1;
if (PyList_Append(list, unicode))
- return -1;
+ return -1;
Py_DECREF(unicode);
}
-
+
PyModule_AddObject(m, "_have_functions", list);
- return 0;
-}
-
-
-static PyModuleDef_Slot posixmodile_slots[] = {
- {Py_mod_exec, posixmodule_exec},
- {0, NULL}
-};
-
-static struct PyModuleDef posixmodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = MODNAME,
- .m_doc = posix__doc__,
- .m_size = sizeof(_posixstate),
- .m_methods = posix_methods,
- .m_slots = posixmodile_slots,
- .m_traverse = _posix_traverse,
- .m_clear = _posix_clear,
- .m_free = _posix_free,
-};
-
-PyMODINIT_FUNC
-INITFUNC(void)
-{
- return PyModuleDef_Init(&posixmodule);
+ return 0;
+}
+
+
+static PyModuleDef_Slot posixmodile_slots[] = {
+ {Py_mod_exec, posixmodule_exec},
+ {0, NULL}
+};
+
+static struct PyModuleDef posixmodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = MODNAME,
+ .m_doc = posix__doc__,
+ .m_size = sizeof(_posixstate),
+ .m_methods = posix_methods,
+ .m_slots = posixmodile_slots,
+ .m_traverse = _posix_traverse,
+ .m_clear = _posix_clear,
+ .m_free = _posix_free,
+};
+
+PyMODINIT_FUNC
+INITFUNC(void)
+{
+ return PyModuleDef_Init(&posixmodule);
}
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Modules/posixmodule.h b/contrib/tools/python3/src/Modules/posixmodule.h
index a292c2eeab..5452ffbf17 100644
--- a/contrib/tools/python3/src/Modules/posixmodule.h
+++ b/contrib/tools/python3/src/Modules/posixmodule.h
@@ -14,18 +14,18 @@ extern "C" {
#ifndef MS_WINDOWS
PyAPI_FUNC(PyObject *) _PyLong_FromUid(uid_t);
PyAPI_FUNC(PyObject *) _PyLong_FromGid(gid_t);
-PyAPI_FUNC(int) _Py_Uid_Converter(PyObject *, uid_t *);
-PyAPI_FUNC(int) _Py_Gid_Converter(PyObject *, gid_t *);
+PyAPI_FUNC(int) _Py_Uid_Converter(PyObject *, uid_t *);
+PyAPI_FUNC(int) _Py_Gid_Converter(PyObject *, gid_t *);
#endif /* MS_WINDOWS */
-
-#if defined(PYPTHREAD_SIGMASK) || defined(HAVE_SIGWAIT) || \
- defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT)
-# define HAVE_SIGSET_T
+
+#if defined(PYPTHREAD_SIGMASK) || defined(HAVE_SIGWAIT) || \
+ defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT)
+# define HAVE_SIGSET_T
#endif
-PyAPI_FUNC(int) _Py_Sigset_Converter(PyObject *, void *);
-#endif /* Py_LIMITED_API */
-
+PyAPI_FUNC(int) _Py_Sigset_Converter(PyObject *, void *);
+#endif /* Py_LIMITED_API */
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Modules/pwdmodule.c b/contrib/tools/python3/src/Modules/pwdmodule.c
index 8c2df952d2..901a3ed9a2 100644
--- a/contrib/tools/python3/src/Modules/pwdmodule.c
+++ b/contrib/tools/python3/src/Modules/pwdmodule.c
@@ -47,24 +47,24 @@ The uid and gid items are integers, all others are strings. An\n\
exception is raised if the entry asked for cannot be found.");
-typedef struct {
- PyTypeObject *StructPwdType;
-} pwdmodulestate;
-
-static inline pwdmodulestate*
-get_pwd_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (pwdmodulestate *)state;
-}
-
-#define modulestate_global get_pwd_state(PyState_FindModule(&pwdmodule))
-
-static struct PyModuleDef pwdmodule;
-
-#define DEFAULT_BUFFER_SIZE 1024
-
+typedef struct {
+ PyTypeObject *StructPwdType;
+} pwdmodulestate;
+
+static inline pwdmodulestate*
+get_pwd_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (pwdmodulestate *)state;
+}
+
+#define modulestate_global get_pwd_state(PyState_FindModule(&pwdmodule))
+
+static struct PyModuleDef pwdmodule;
+
+#define DEFAULT_BUFFER_SIZE 1024
+
static void
sets(PyObject *v, int i, const char* val)
{
@@ -82,7 +82,7 @@ static PyObject *
mkpwent(struct passwd *p)
{
int setIndex = 0;
- PyObject *v = PyStructSequence_New(modulestate_global->StructPwdType);
+ PyObject *v = PyStructSequence_New(modulestate_global->StructPwdType);
if (v == NULL)
return NULL;
@@ -131,11 +131,11 @@ static PyObject *
pwd_getpwuid(PyObject *module, PyObject *uidobj)
/*[clinic end generated code: output=c4ee1d4d429b86c4 input=ae64d507a1c6d3e8]*/
{
- PyObject *retval = NULL;
+ PyObject *retval = NULL;
uid_t uid;
- int nomem = 0;
+ int nomem = 0;
struct passwd *p;
- char *buf = NULL, *buf2 = NULL;
+ char *buf = NULL, *buf2 = NULL;
if (!_Py_Uid_Converter(uidobj, &uid)) {
if (PyErr_ExceptionMatches(PyExc_OverflowError))
@@ -143,49 +143,49 @@ pwd_getpwuid(PyObject *module, PyObject *uidobj)
"getpwuid(): uid not found");
return NULL;
}
-#ifdef HAVE_GETPWUID_R
- int status;
- Py_ssize_t bufsize;
- /* Note: 'pwd' will be used via pointer 'p' on getpwuid_r success. */
- struct passwd pwd;
-
- Py_BEGIN_ALLOW_THREADS
- bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
- if (bufsize == -1) {
- bufsize = DEFAULT_BUFFER_SIZE;
- }
-
- while(1) {
- buf2 = PyMem_RawRealloc(buf, bufsize);
- if (buf2 == NULL) {
- p = NULL;
- nomem = 1;
- break;
- }
- buf = buf2;
- status = getpwuid_r(uid, &pwd, buf, bufsize, &p);
- if (status != 0) {
- p = NULL;
- }
- if (p != NULL || status != ERANGE) {
- break;
- }
- if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
- nomem = 1;
- break;
- }
- bufsize <<= 1;
- }
-
- Py_END_ALLOW_THREADS
-#else
- p = getpwuid(uid);
-#endif
- if (p == NULL) {
- PyMem_RawFree(buf);
- if (nomem == 1) {
- return PyErr_NoMemory();
- }
+#ifdef HAVE_GETPWUID_R
+ int status;
+ Py_ssize_t bufsize;
+ /* Note: 'pwd' will be used via pointer 'p' on getpwuid_r success. */
+ struct passwd pwd;
+
+ Py_BEGIN_ALLOW_THREADS
+ bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
+ if (bufsize == -1) {
+ bufsize = DEFAULT_BUFFER_SIZE;
+ }
+
+ while(1) {
+ buf2 = PyMem_RawRealloc(buf, bufsize);
+ if (buf2 == NULL) {
+ p = NULL;
+ nomem = 1;
+ break;
+ }
+ buf = buf2;
+ status = getpwuid_r(uid, &pwd, buf, bufsize, &p);
+ if (status != 0) {
+ p = NULL;
+ }
+ if (p != NULL || status != ERANGE) {
+ break;
+ }
+ if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
+ nomem = 1;
+ break;
+ }
+ bufsize <<= 1;
+ }
+
+ Py_END_ALLOW_THREADS
+#else
+ p = getpwuid(uid);
+#endif
+ if (p == NULL) {
+ PyMem_RawFree(buf);
+ if (nomem == 1) {
+ return PyErr_NoMemory();
+ }
PyObject *uid_obj = _PyLong_FromUid(uid);
if (uid_obj == NULL)
return NULL;
@@ -194,17 +194,17 @@ pwd_getpwuid(PyObject *module, PyObject *uidobj)
Py_DECREF(uid_obj);
return NULL;
}
- retval = mkpwent(p);
-#ifdef HAVE_GETPWUID_R
- PyMem_RawFree(buf);
-#endif
- return retval;
+ retval = mkpwent(p);
+#ifdef HAVE_GETPWUID_R
+ PyMem_RawFree(buf);
+#endif
+ return retval;
}
/*[clinic input]
pwd.getpwnam
- name: unicode
+ name: unicode
/
Return the password database entry for the given user name.
@@ -213,70 +213,70 @@ See `help(pwd)` for more on password database entries.
[clinic start generated code]*/
static PyObject *
-pwd_getpwnam_impl(PyObject *module, PyObject *name)
-/*[clinic end generated code: output=359ce1ddeb7a824f input=a6aeb5e3447fb9e0]*/
+pwd_getpwnam_impl(PyObject *module, PyObject *name)
+/*[clinic end generated code: output=359ce1ddeb7a824f input=a6aeb5e3447fb9e0]*/
{
- char *buf = NULL, *buf2 = NULL, *name_chars;
- int nomem = 0;
+ char *buf = NULL, *buf2 = NULL, *name_chars;
+ int nomem = 0;
struct passwd *p;
PyObject *bytes, *retval = NULL;
- if ((bytes = PyUnicode_EncodeFSDefault(name)) == NULL)
+ if ((bytes = PyUnicode_EncodeFSDefault(name)) == NULL)
return NULL;
/* check for embedded null bytes */
- if (PyBytes_AsStringAndSize(bytes, &name_chars, NULL) == -1)
+ if (PyBytes_AsStringAndSize(bytes, &name_chars, NULL) == -1)
goto out;
-#ifdef HAVE_GETPWNAM_R
- int status;
- Py_ssize_t bufsize;
- /* Note: 'pwd' will be used via pointer 'p' on getpwnam_r success. */
- struct passwd pwd;
-
- Py_BEGIN_ALLOW_THREADS
- bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
- if (bufsize == -1) {
- bufsize = DEFAULT_BUFFER_SIZE;
- }
-
- while(1) {
- buf2 = PyMem_RawRealloc(buf, bufsize);
- if (buf2 == NULL) {
- p = NULL;
- nomem = 1;
- break;
- }
- buf = buf2;
- status = getpwnam_r(name_chars, &pwd, buf, bufsize, &p);
- if (status != 0) {
- p = NULL;
- }
- if (p != NULL || status != ERANGE) {
- break;
- }
- if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
- nomem = 1;
- break;
- }
- bufsize <<= 1;
- }
-
- Py_END_ALLOW_THREADS
-#else
- p = getpwnam(name_chars);
-#endif
- if (p == NULL) {
- if (nomem == 1) {
- PyErr_NoMemory();
- }
- else {
- PyErr_Format(PyExc_KeyError,
- "getpwnam(): name not found: %R", name);
- }
+#ifdef HAVE_GETPWNAM_R
+ int status;
+ Py_ssize_t bufsize;
+ /* Note: 'pwd' will be used via pointer 'p' on getpwnam_r success. */
+ struct passwd pwd;
+
+ Py_BEGIN_ALLOW_THREADS
+ bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
+ if (bufsize == -1) {
+ bufsize = DEFAULT_BUFFER_SIZE;
+ }
+
+ while(1) {
+ buf2 = PyMem_RawRealloc(buf, bufsize);
+ if (buf2 == NULL) {
+ p = NULL;
+ nomem = 1;
+ break;
+ }
+ buf = buf2;
+ status = getpwnam_r(name_chars, &pwd, buf, bufsize, &p);
+ if (status != 0) {
+ p = NULL;
+ }
+ if (p != NULL || status != ERANGE) {
+ break;
+ }
+ if (bufsize > (PY_SSIZE_T_MAX >> 1)) {
+ nomem = 1;
+ break;
+ }
+ bufsize <<= 1;
+ }
+
+ Py_END_ALLOW_THREADS
+#else
+ p = getpwnam(name_chars);
+#endif
+ if (p == NULL) {
+ if (nomem == 1) {
+ PyErr_NoMemory();
+ }
+ else {
+ PyErr_Format(PyExc_KeyError,
+ "getpwnam(): name not found: %R", name);
+ }
goto out;
}
retval = mkpwent(p);
out:
- PyMem_RawFree(buf);
+ PyMem_RawFree(buf);
Py_DECREF(bytes);
return retval;
}
@@ -323,28 +323,28 @@ static PyMethodDef pwd_methods[] = {
{NULL, NULL} /* sentinel */
};
-static int pwdmodule_traverse(PyObject *m, visitproc visit, void *arg) {
- Py_VISIT(get_pwd_state(m)->StructPwdType);
- return 0;
-}
-static int pwdmodule_clear(PyObject *m) {
- Py_CLEAR(get_pwd_state(m)->StructPwdType);
- return 0;
-}
-static void pwdmodule_free(void *m) {
- pwdmodule_clear((PyObject *)m);
-}
-
+static int pwdmodule_traverse(PyObject *m, visitproc visit, void *arg) {
+ Py_VISIT(get_pwd_state(m)->StructPwdType);
+ return 0;
+}
+static int pwdmodule_clear(PyObject *m) {
+ Py_CLEAR(get_pwd_state(m)->StructPwdType);
+ return 0;
+}
+static void pwdmodule_free(void *m) {
+ pwdmodule_clear((PyObject *)m);
+}
+
static struct PyModuleDef pwdmodule = {
PyModuleDef_HEAD_INIT,
"pwd",
pwd__doc__,
- sizeof(pwdmodulestate),
+ sizeof(pwdmodulestate),
pwd_methods,
NULL,
- pwdmodule_traverse,
- pwdmodule_clear,
- pwdmodule_free,
+ pwdmodule_traverse,
+ pwdmodule_clear,
+ pwdmodule_free,
};
@@ -352,19 +352,19 @@ PyMODINIT_FUNC
PyInit_pwd(void)
{
PyObject *m;
- if ((m = PyState_FindModule(&pwdmodule)) != NULL) {
- Py_INCREF(m);
- return m;
- }
- if ((m = PyModule_Create(&pwdmodule)) == NULL)
+ if ((m = PyState_FindModule(&pwdmodule)) != NULL) {
+ Py_INCREF(m);
+ return m;
+ }
+ if ((m = PyModule_Create(&pwdmodule)) == NULL)
return NULL;
- pwdmodulestate *state = PyModule_GetState(m);
- state->StructPwdType = PyStructSequence_NewType(&struct_pwd_type_desc);
- if (state->StructPwdType == NULL) {
- return NULL;
+ pwdmodulestate *state = PyModule_GetState(m);
+ state->StructPwdType = PyStructSequence_NewType(&struct_pwd_type_desc);
+ if (state->StructPwdType == NULL) {
+ return NULL;
}
- Py_INCREF(state->StructPwdType);
- PyModule_AddObject(m, "struct_passwd", (PyObject *) state->StructPwdType);
+ Py_INCREF(state->StructPwdType);
+ PyModule_AddObject(m, "struct_passwd", (PyObject *) state->StructPwdType);
return m;
}
diff --git a/contrib/tools/python3/src/Modules/pyexpat.c b/contrib/tools/python3/src/Modules/pyexpat.c
index 0f87af951d..12ae66d945 100644
--- a/contrib/tools/python3/src/Modules/pyexpat.c
+++ b/contrib/tools/python3/src/Modules/pyexpat.c
@@ -1,7 +1,7 @@
#include "Python.h"
#include <ctype.h>
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include "frameobject.h"
#include "expat.h"
@@ -82,7 +82,7 @@ struct HandlerInfo {
const char *name;
xmlhandlersetter setter;
xmlhandler handler;
- PyGetSetDef getset;
+ PyGetSetDef getset;
};
static struct HandlerInfo handler_info[64];
@@ -119,7 +119,7 @@ set_error(xmlparseobject *self, enum XML_Error code)
XML_ErrorString(code), lineno, column);
if (buffer == NULL)
return NULL;
- err = PyObject_CallOneArg(ErrorObject, buffer);
+ err = PyObject_CallOneArg(ErrorObject, buffer);
Py_DECREF(buffer);
if ( err != NULL
&& set_error_attr(err, "code", code)
@@ -208,7 +208,7 @@ call_with_frame(const char *funcname, int lineno, PyObject* func, PyObject* args
{
PyObject *res;
- res = PyObject_Call(func, args, NULL);
+ res = PyObject_Call(func, args, NULL);
if (res == NULL) {
_PyTraceback_Add(funcname, __FILE__, lineno);
XML_StopParser(self->itself, XML_FALSE);
@@ -226,13 +226,13 @@ string_intern(xmlparseobject *self, const char* str)
return result;
if (!self->intern)
return result;
- value = PyDict_GetItemWithError(self->intern, result);
+ value = PyDict_GetItemWithError(self->intern, result);
if (!value) {
- if (!PyErr_Occurred() &&
- PyDict_SetItem(self->intern, result, result) == 0)
- {
+ if (!PyErr_Occurred() &&
+ PyDict_SetItem(self->intern, result, result) == 0)
+ {
return result;
- }
+ }
else {
Py_DECREF(result);
return NULL;
@@ -641,7 +641,7 @@ VOID_HANDLER(Default,
VOID_HANDLER(DefaultHandlerExpand,
(void *userData, const XML_Char *s, int len),
("(N)", (conv_string_len_to_unicode(s,len))))
-#define my_DefaultHandlerExpand my_DefaultHandlerExpandHandler
+#define my_DefaultHandlerExpand my_DefaultHandlerExpandHandler
INT_HANDLER(NotStandalone,
(void *userData),
@@ -810,9 +810,9 @@ pyexpat_xmlparser_ParseFile(xmlparseobject *self, PyObject *file)
PyObject *readmethod = NULL;
_Py_IDENTIFIER(read);
- if (_PyObject_LookupAttrId(file, &PyId_read, &readmethod) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(file, &PyId_read, &readmethod) < 0) {
+ return NULL;
+ }
if (readmethod == NULL) {
PyErr_SetString(PyExc_TypeError,
"argument must have 'read' attribute");
@@ -974,8 +974,8 @@ pyexpat_xmlparser_ExternalEntityParserCreate_impl(xmlparseobject *self,
handler_info[i].handler);
}
}
-
- PyObject_GC_Track(new_parser);
+
+ PyObject_GC_Track(new_parser);
return (PyObject *)new_parser;
}
@@ -1060,7 +1060,7 @@ PyUnknownEncodingHandler(void *encodingHandlerData,
static unsigned char template_buffer[256] = {0};
PyObject* u;
int i;
- const void *data;
+ const void *data;
unsigned int kind;
if (PyErr_Occurred())
@@ -1152,7 +1152,7 @@ newxmlparseobject(const char *encoding, const char *namespace_separator, PyObjec
}
clear_handlers(self, 1);
- PyObject_GC_Track(self);
+ PyObject_GC_Track(self);
return (PyObject*)self;
}
@@ -1182,153 +1182,153 @@ xmlparse_dealloc(xmlparseobject *self)
static PyObject *
-xmlparse_handler_getter(xmlparseobject *self, struct HandlerInfo *hi)
+xmlparse_handler_getter(xmlparseobject *self, struct HandlerInfo *hi)
{
- assert((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info));
- int handlernum = (int)(hi - handler_info);
- PyObject *result = self->handlers[handlernum];
- if (result == NULL)
- result = Py_None;
+ assert((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info));
+ int handlernum = (int)(hi - handler_info);
+ PyObject *result = self->handlers[handlernum];
+ if (result == NULL)
+ result = Py_None;
Py_INCREF(result);
return result;
}
-static int
-xmlparse_handler_setter(xmlparseobject *self, PyObject *v, struct HandlerInfo *hi)
+static int
+xmlparse_handler_setter(xmlparseobject *self, PyObject *v, struct HandlerInfo *hi)
{
- assert((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info));
- int handlernum = (int)(hi - handler_info);
- if (v == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
- return -1;
- }
- if (handlernum == CharacterData) {
- /* If we're changing the character data handler, flush all
- * cached data with the old handler. Not sure there's a
- * "right" thing to do, though, but this probably won't
- * happen.
- */
- if (flush_character_buffer(self) < 0)
- return -1;
- }
-
- xmlhandler c_handler = NULL;
- if (v == Py_None) {
- /* If this is the character data handler, and a character
- data handler is already active, we need to be more
- careful. What we can safely do is replace the existing
- character data handler callback function with a no-op
- function that will refuse to call Python. The downside
- is that this doesn't completely remove the character
- data handler from the C layer if there's any callback
- active, so Expat does a little more work than it
- otherwise would, but that's really an odd case. A more
- elaborate system of handlers and state could remove the
- C handler more effectively. */
- if (handlernum == CharacterData && self->in_callback)
- c_handler = noop_character_data_handler;
- v = NULL;
- }
- else if (v != NULL) {
- Py_INCREF(v);
- c_handler = handler_info[handlernum].handler;
- }
- Py_XSETREF(self->handlers[handlernum], v);
- handler_info[handlernum].setter(self->itself, c_handler);
- return 0;
+ assert((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info));
+ int handlernum = (int)(hi - handler_info);
+ if (v == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
+ return -1;
+ }
+ if (handlernum == CharacterData) {
+ /* If we're changing the character data handler, flush all
+ * cached data with the old handler. Not sure there's a
+ * "right" thing to do, though, but this probably won't
+ * happen.
+ */
+ if (flush_character_buffer(self) < 0)
+ return -1;
+ }
+
+ xmlhandler c_handler = NULL;
+ if (v == Py_None) {
+ /* If this is the character data handler, and a character
+ data handler is already active, we need to be more
+ careful. What we can safely do is replace the existing
+ character data handler callback function with a no-op
+ function that will refuse to call Python. The downside
+ is that this doesn't completely remove the character
+ data handler from the C layer if there's any callback
+ active, so Expat does a little more work than it
+ otherwise would, but that's really an odd case. A more
+ elaborate system of handlers and state could remove the
+ C handler more effectively. */
+ if (handlernum == CharacterData && self->in_callback)
+ c_handler = noop_character_data_handler;
+ v = NULL;
+ }
+ else if (v != NULL) {
+ Py_INCREF(v);
+ c_handler = handler_info[handlernum].handler;
+ }
+ Py_XSETREF(self->handlers[handlernum], v);
+ handler_info[handlernum].setter(self->itself, c_handler);
+ return 0;
}
-#define INT_GETTER(name) \
- static PyObject * \
- xmlparse_##name##_getter(xmlparseobject *self, void *closure) \
- { \
- return PyLong_FromLong((long) XML_Get##name(self->itself)); \
- }
-INT_GETTER(ErrorCode)
-INT_GETTER(ErrorLineNumber)
-INT_GETTER(ErrorColumnNumber)
-INT_GETTER(ErrorByteIndex)
-INT_GETTER(CurrentLineNumber)
-INT_GETTER(CurrentColumnNumber)
-INT_GETTER(CurrentByteIndex)
-
-#undef INT_GETTER
-
-static PyObject *
-xmlparse_buffer_text_getter(xmlparseobject *self, void *closure)
+#define INT_GETTER(name) \
+ static PyObject * \
+ xmlparse_##name##_getter(xmlparseobject *self, void *closure) \
+ { \
+ return PyLong_FromLong((long) XML_Get##name(self->itself)); \
+ }
+INT_GETTER(ErrorCode)
+INT_GETTER(ErrorLineNumber)
+INT_GETTER(ErrorColumnNumber)
+INT_GETTER(ErrorByteIndex)
+INT_GETTER(CurrentLineNumber)
+INT_GETTER(CurrentColumnNumber)
+INT_GETTER(CurrentByteIndex)
+
+#undef INT_GETTER
+
+static PyObject *
+xmlparse_buffer_text_getter(xmlparseobject *self, void *closure)
{
- return PyBool_FromLong(self->buffer != NULL);
+ return PyBool_FromLong(self->buffer != NULL);
}
static int
-xmlparse_buffer_text_setter(xmlparseobject *self, PyObject *v, void *closure)
+xmlparse_buffer_text_setter(xmlparseobject *self, PyObject *v, void *closure)
{
if (v == NULL) {
PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
return -1;
}
- int b = PyObject_IsTrue(v);
- if (b < 0)
- return -1;
- if (b) {
- if (self->buffer == NULL) {
- self->buffer = PyMem_Malloc(self->buffer_size);
+ int b = PyObject_IsTrue(v);
+ if (b < 0)
+ return -1;
+ if (b) {
+ if (self->buffer == NULL) {
+ self->buffer = PyMem_Malloc(self->buffer_size);
if (self->buffer == NULL) {
- PyErr_NoMemory();
- return -1;
+ PyErr_NoMemory();
+ return -1;
}
- self->buffer_used = 0;
+ self->buffer_used = 0;
}
}
- else if (self->buffer != NULL) {
- if (flush_character_buffer(self) < 0)
+ else if (self->buffer != NULL) {
+ if (flush_character_buffer(self) < 0)
return -1;
- PyMem_Free(self->buffer);
- self->buffer = NULL;
- }
- return 0;
-}
-
-static PyObject *
-xmlparse_buffer_size_getter(xmlparseobject *self, void *closure)
-{
- return PyLong_FromLong((long) self->buffer_size);
-}
-
-static int
-xmlparse_buffer_size_setter(xmlparseobject *self, PyObject *v, void *closure)
-{
- if (v == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
- return -1;
- }
- long new_buffer_size;
- if (!PyLong_Check(v)) {
+ PyMem_Free(self->buffer);
+ self->buffer = NULL;
+ }
+ return 0;
+}
+
+static PyObject *
+xmlparse_buffer_size_getter(xmlparseobject *self, void *closure)
+{
+ return PyLong_FromLong((long) self->buffer_size);
+}
+
+static int
+xmlparse_buffer_size_setter(xmlparseobject *self, PyObject *v, void *closure)
+{
+ if (v == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
+ return -1;
+ }
+ long new_buffer_size;
+ if (!PyLong_Check(v)) {
PyErr_SetString(PyExc_TypeError, "buffer_size must be an integer");
return -1;
- }
+ }
- new_buffer_size = PyLong_AsLong(v);
- if (new_buffer_size <= 0) {
+ new_buffer_size = PyLong_AsLong(v);
+ if (new_buffer_size <= 0) {
if (!PyErr_Occurred())
- PyErr_SetString(PyExc_ValueError, "buffer_size must be greater than zero");
+ PyErr_SetString(PyExc_ValueError, "buffer_size must be greater than zero");
return -1;
- }
+ }
- /* trivial case -- no change */
- if (new_buffer_size == self->buffer_size) {
+ /* trivial case -- no change */
+ if (new_buffer_size == self->buffer_size) {
return 0;
- }
+ }
- /* check maximum */
- if (new_buffer_size > INT_MAX) {
+ /* check maximum */
+ if (new_buffer_size > INT_MAX) {
char errmsg[100];
sprintf(errmsg, "buffer_size must not be greater than %i", INT_MAX);
PyErr_SetString(PyExc_ValueError, errmsg);
return -1;
- }
+ }
- if (self->buffer != NULL) {
+ if (self->buffer != NULL) {
/* there is already a buffer */
if (self->buffer_used != 0) {
if (flush_character_buffer(self) < 0) {
@@ -1337,115 +1337,115 @@ xmlparse_buffer_size_setter(xmlparseobject *self, PyObject *v, void *closure)
}
/* free existing buffer */
PyMem_Free(self->buffer);
- }
- self->buffer = PyMem_Malloc(new_buffer_size);
- if (self->buffer == NULL) {
+ }
+ self->buffer = PyMem_Malloc(new_buffer_size);
+ if (self->buffer == NULL) {
PyErr_NoMemory();
return -1;
}
- self->buffer_size = new_buffer_size;
- return 0;
-}
-
-static PyObject *
-xmlparse_buffer_used_getter(xmlparseobject *self, void *closure)
-{
- return PyLong_FromLong((long) self->buffer_used);
-}
-
-static PyObject *
-xmlparse_namespace_prefixes_getter(xmlparseobject *self, void *closure)
-{
- return PyBool_FromLong(self->ns_prefixes);
-}
-
-static int
-xmlparse_namespace_prefixes_setter(xmlparseobject *self, PyObject *v, void *closure)
-{
- if (v == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
- return -1;
- }
- int b = PyObject_IsTrue(v);
- if (b < 0)
- return -1;
- self->ns_prefixes = b;
- XML_SetReturnNSTriplet(self->itself, self->ns_prefixes);
- return 0;
-}
-
-static PyObject *
-xmlparse_ordered_attributes_getter(xmlparseobject *self, void *closure)
-{
- return PyBool_FromLong(self->ordered_attributes);
-}
-
-static int
-xmlparse_ordered_attributes_setter(xmlparseobject *self, PyObject *v, void *closure)
-{
- if (v == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
- return -1;
- }
- int b = PyObject_IsTrue(v);
- if (b < 0)
- return -1;
- self->ordered_attributes = b;
- return 0;
+ self->buffer_size = new_buffer_size;
+ return 0;
+}
+
+static PyObject *
+xmlparse_buffer_used_getter(xmlparseobject *self, void *closure)
+{
+ return PyLong_FromLong((long) self->buffer_used);
+}
+
+static PyObject *
+xmlparse_namespace_prefixes_getter(xmlparseobject *self, void *closure)
+{
+ return PyBool_FromLong(self->ns_prefixes);
}
-static PyObject *
-xmlparse_specified_attributes_getter(xmlparseobject *self, void *closure)
-{
- return PyBool_FromLong((long) self->specified_attributes);
-}
-
static int
-xmlparse_specified_attributes_setter(xmlparseobject *self, PyObject *v, void *closure)
-{
- if (v == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
- return -1;
- }
- int b = PyObject_IsTrue(v);
- if (b < 0)
- return -1;
- self->specified_attributes = b;
- return 0;
-}
-
-static PyMemberDef xmlparse_members[] = {
- {"intern", T_OBJECT, offsetof(xmlparseobject, intern), READONLY, NULL},
- {NULL}
-};
-
-#define XMLPARSE_GETTER_DEF(name) \
- {#name, (getter)xmlparse_##name##_getter, NULL, NULL},
-#define XMLPARSE_GETTER_SETTER_DEF(name) \
- {#name, (getter)xmlparse_##name##_getter, \
- (setter)xmlparse_##name##_setter, NULL},
-
-static PyGetSetDef xmlparse_getsetlist[] = {
- XMLPARSE_GETTER_DEF(ErrorCode)
- XMLPARSE_GETTER_DEF(ErrorLineNumber)
- XMLPARSE_GETTER_DEF(ErrorColumnNumber)
- XMLPARSE_GETTER_DEF(ErrorByteIndex)
- XMLPARSE_GETTER_DEF(CurrentLineNumber)
- XMLPARSE_GETTER_DEF(CurrentColumnNumber)
- XMLPARSE_GETTER_DEF(CurrentByteIndex)
- XMLPARSE_GETTER_SETTER_DEF(buffer_size)
- XMLPARSE_GETTER_SETTER_DEF(buffer_text)
- XMLPARSE_GETTER_DEF(buffer_used)
- XMLPARSE_GETTER_SETTER_DEF(namespace_prefixes)
- XMLPARSE_GETTER_SETTER_DEF(ordered_attributes)
- XMLPARSE_GETTER_SETTER_DEF(specified_attributes)
- {NULL},
-};
-
-#undef XMLPARSE_GETTER_DEF
-#undef XMLPARSE_GETTER_SETTER_DEF
-
-static int
+xmlparse_namespace_prefixes_setter(xmlparseobject *self, PyObject *v, void *closure)
+{
+ if (v == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
+ return -1;
+ }
+ int b = PyObject_IsTrue(v);
+ if (b < 0)
+ return -1;
+ self->ns_prefixes = b;
+ XML_SetReturnNSTriplet(self->itself, self->ns_prefixes);
+ return 0;
+}
+
+static PyObject *
+xmlparse_ordered_attributes_getter(xmlparseobject *self, void *closure)
+{
+ return PyBool_FromLong(self->ordered_attributes);
+}
+
+static int
+xmlparse_ordered_attributes_setter(xmlparseobject *self, PyObject *v, void *closure)
+{
+ if (v == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
+ return -1;
+ }
+ int b = PyObject_IsTrue(v);
+ if (b < 0)
+ return -1;
+ self->ordered_attributes = b;
+ return 0;
+}
+
+static PyObject *
+xmlparse_specified_attributes_getter(xmlparseobject *self, void *closure)
+{
+ return PyBool_FromLong((long) self->specified_attributes);
+}
+
+static int
+xmlparse_specified_attributes_setter(xmlparseobject *self, PyObject *v, void *closure)
+{
+ if (v == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute");
+ return -1;
+ }
+ int b = PyObject_IsTrue(v);
+ if (b < 0)
+ return -1;
+ self->specified_attributes = b;
+ return 0;
+}
+
+static PyMemberDef xmlparse_members[] = {
+ {"intern", T_OBJECT, offsetof(xmlparseobject, intern), READONLY, NULL},
+ {NULL}
+};
+
+#define XMLPARSE_GETTER_DEF(name) \
+ {#name, (getter)xmlparse_##name##_getter, NULL, NULL},
+#define XMLPARSE_GETTER_SETTER_DEF(name) \
+ {#name, (getter)xmlparse_##name##_getter, \
+ (setter)xmlparse_##name##_setter, NULL},
+
+static PyGetSetDef xmlparse_getsetlist[] = {
+ XMLPARSE_GETTER_DEF(ErrorCode)
+ XMLPARSE_GETTER_DEF(ErrorLineNumber)
+ XMLPARSE_GETTER_DEF(ErrorColumnNumber)
+ XMLPARSE_GETTER_DEF(ErrorByteIndex)
+ XMLPARSE_GETTER_DEF(CurrentLineNumber)
+ XMLPARSE_GETTER_DEF(CurrentColumnNumber)
+ XMLPARSE_GETTER_DEF(CurrentByteIndex)
+ XMLPARSE_GETTER_SETTER_DEF(buffer_size)
+ XMLPARSE_GETTER_SETTER_DEF(buffer_text)
+ XMLPARSE_GETTER_DEF(buffer_used)
+ XMLPARSE_GETTER_SETTER_DEF(namespace_prefixes)
+ XMLPARSE_GETTER_SETTER_DEF(ordered_attributes)
+ XMLPARSE_GETTER_SETTER_DEF(specified_attributes)
+ {NULL},
+};
+
+#undef XMLPARSE_GETTER_DEF
+#undef XMLPARSE_GETTER_SETTER_DEF
+
+static int
xmlparse_traverse(xmlparseobject *op, visitproc visit, void *arg)
{
int i;
@@ -1471,10 +1471,10 @@ static PyTypeObject Xmlparsetype = {
0, /*tp_itemsize*/
/* methods */
(destructor)xmlparse_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -1482,8 +1482,8 @@ static PyTypeObject Xmlparsetype = {
(hashfunc)0, /*tp_hash*/
(ternaryfunc)0, /*tp_call*/
(reprfunc)0, /*tp_str*/
- (getattrofunc)0, /* tp_getattro */
- (setattrofunc)0, /* tp_setattro */
+ (getattrofunc)0, /* tp_getattro */
+ (setattrofunc)0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
Xmlparsetype__doc__, /* tp_doc - Documentation string */
@@ -1494,8 +1494,8 @@ static PyTypeObject Xmlparsetype = {
0, /* tp_iter */
0, /* tp_iternext */
xmlparse_methods, /* tp_methods */
- xmlparse_members, /* tp_members */
- xmlparse_getsetlist, /* tp_getset */
+ xmlparse_members, /* tp_members */
+ xmlparse_getsetlist, /* tp_getset */
};
/* End of code for xmlparser objects */
@@ -1504,8 +1504,8 @@ static PyTypeObject Xmlparsetype = {
/*[clinic input]
pyexpat.ParserCreate
- encoding: str(accept={str, NoneType}) = None
- namespace_separator: str(accept={str, NoneType}) = None
+ encoding: str(accept={str, NoneType}) = None
+ namespace_separator: str(accept={str, NoneType}) = None
intern: object = NULL
Return a new XML parser object.
@@ -1514,7 +1514,7 @@ Return a new XML parser object.
static PyObject *
pyexpat_ParserCreate_impl(PyObject *module, const char *encoding,
const char *namespace_separator, PyObject *intern)
-/*[clinic end generated code: output=295c0cf01ab1146c input=e8da8e8d7122cb5d]*/
+/*[clinic end generated code: output=295c0cf01ab1146c input=e8da8e8d7122cb5d]*/
{
PyObject *result;
int intern_decref = 0;
@@ -1599,38 +1599,38 @@ static struct PyModuleDef pyexpatmodule = {
NULL
};
-static int init_handler_descrs(void)
-{
- int i;
- assert(!PyType_HasFeature(&Xmlparsetype, Py_TPFLAGS_VALID_VERSION_TAG));
- for (i = 0; handler_info[i].name != NULL; i++) {
- struct HandlerInfo *hi = &handler_info[i];
- hi->getset.name = hi->name;
- hi->getset.get = (getter)xmlparse_handler_getter;
- hi->getset.set = (setter)xmlparse_handler_setter;
- hi->getset.closure = &handler_info[i];
-
- PyObject *descr = PyDescr_NewGetSet(&Xmlparsetype, &hi->getset);
- if (descr == NULL)
- return -1;
-
- if (PyDict_GetItemWithError(Xmlparsetype.tp_dict, PyDescr_NAME(descr))) {
- Py_DECREF(descr);
- continue;
- }
- else if (PyErr_Occurred()) {
- Py_DECREF(descr);
- return -1;
- }
- if (PyDict_SetItem(Xmlparsetype.tp_dict, PyDescr_NAME(descr), descr) < 0) {
- Py_DECREF(descr);
- return -1;
- }
- Py_DECREF(descr);
- }
- return 0;
-}
-
+static int init_handler_descrs(void)
+{
+ int i;
+ assert(!PyType_HasFeature(&Xmlparsetype, Py_TPFLAGS_VALID_VERSION_TAG));
+ for (i = 0; handler_info[i].name != NULL; i++) {
+ struct HandlerInfo *hi = &handler_info[i];
+ hi->getset.name = hi->name;
+ hi->getset.get = (getter)xmlparse_handler_getter;
+ hi->getset.set = (setter)xmlparse_handler_setter;
+ hi->getset.closure = &handler_info[i];
+
+ PyObject *descr = PyDescr_NewGetSet(&Xmlparsetype, &hi->getset);
+ if (descr == NULL)
+ return -1;
+
+ if (PyDict_GetItemWithError(Xmlparsetype.tp_dict, PyDescr_NAME(descr))) {
+ Py_DECREF(descr);
+ continue;
+ }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(descr);
+ return -1;
+ }
+ if (PyDict_SetItem(Xmlparsetype.tp_dict, PyDescr_NAME(descr), descr) < 0) {
+ Py_DECREF(descr);
+ return -1;
+ }
+ Py_DECREF(descr);
+ }
+ return 0;
+}
+
PyMODINIT_FUNC
MODULE_INITFUNC(void)
{
@@ -1652,7 +1652,7 @@ MODULE_INITFUNC(void)
if (modelmod_name == NULL)
return NULL;
- if (PyType_Ready(&Xmlparsetype) < 0 || init_handler_descrs() < 0)
+ if (PyType_Ready(&Xmlparsetype) < 0 || init_handler_descrs() < 0)
return NULL;
/* Create the module and add the functions */
@@ -1693,8 +1693,8 @@ MODULE_INITFUNC(void)
Py_DECREF(m);
return NULL;
}
- errors_module = PyDict_GetItemWithError(d, errmod_name);
- if (errors_module == NULL && !PyErr_Occurred()) {
+ errors_module = PyDict_GetItemWithError(d, errmod_name);
+ if (errors_module == NULL && !PyErr_Occurred()) {
errors_module = PyModule_New(MODULE_NAME ".errors");
if (errors_module != NULL) {
_PyImport_SetModule(errmod_name, errors_module);
@@ -1703,8 +1703,8 @@ MODULE_INITFUNC(void)
}
}
Py_DECREF(errmod_name);
- model_module = PyDict_GetItemWithError(d, modelmod_name);
- if (model_module == NULL && !PyErr_Occurred()) {
+ model_module = PyDict_GetItemWithError(d, modelmod_name);
+ if (model_module == NULL && !PyErr_Occurred()) {
model_module = PyModule_New(MODULE_NAME ".model");
if (model_module != NULL) {
_PyImport_SetModule(modelmod_name, model_module);
@@ -1902,36 +1902,36 @@ clear_handlers(xmlparseobject *self, int initial)
}
static struct HandlerInfo handler_info[] = {
-
-#define HANDLER_INFO(name) \
- {#name, (xmlhandlersetter)XML_Set##name, (xmlhandler)my_##name},
-
- HANDLER_INFO(StartElementHandler)
- HANDLER_INFO(EndElementHandler)
- HANDLER_INFO(ProcessingInstructionHandler)
- HANDLER_INFO(CharacterDataHandler)
- HANDLER_INFO(UnparsedEntityDeclHandler)
- HANDLER_INFO(NotationDeclHandler)
- HANDLER_INFO(StartNamespaceDeclHandler)
- HANDLER_INFO(EndNamespaceDeclHandler)
- HANDLER_INFO(CommentHandler)
- HANDLER_INFO(StartCdataSectionHandler)
- HANDLER_INFO(EndCdataSectionHandler)
- HANDLER_INFO(DefaultHandler)
- HANDLER_INFO(DefaultHandlerExpand)
- HANDLER_INFO(NotStandaloneHandler)
- HANDLER_INFO(ExternalEntityRefHandler)
- HANDLER_INFO(StartDoctypeDeclHandler)
- HANDLER_INFO(EndDoctypeDeclHandler)
- HANDLER_INFO(EntityDeclHandler)
- HANDLER_INFO(XmlDeclHandler)
- HANDLER_INFO(ElementDeclHandler)
- HANDLER_INFO(AttlistDeclHandler)
+
+#define HANDLER_INFO(name) \
+ {#name, (xmlhandlersetter)XML_Set##name, (xmlhandler)my_##name},
+
+ HANDLER_INFO(StartElementHandler)
+ HANDLER_INFO(EndElementHandler)
+ HANDLER_INFO(ProcessingInstructionHandler)
+ HANDLER_INFO(CharacterDataHandler)
+ HANDLER_INFO(UnparsedEntityDeclHandler)
+ HANDLER_INFO(NotationDeclHandler)
+ HANDLER_INFO(StartNamespaceDeclHandler)
+ HANDLER_INFO(EndNamespaceDeclHandler)
+ HANDLER_INFO(CommentHandler)
+ HANDLER_INFO(StartCdataSectionHandler)
+ HANDLER_INFO(EndCdataSectionHandler)
+ HANDLER_INFO(DefaultHandler)
+ HANDLER_INFO(DefaultHandlerExpand)
+ HANDLER_INFO(NotStandaloneHandler)
+ HANDLER_INFO(ExternalEntityRefHandler)
+ HANDLER_INFO(StartDoctypeDeclHandler)
+ HANDLER_INFO(EndDoctypeDeclHandler)
+ HANDLER_INFO(EntityDeclHandler)
+ HANDLER_INFO(XmlDeclHandler)
+ HANDLER_INFO(ElementDeclHandler)
+ HANDLER_INFO(AttlistDeclHandler)
#if XML_COMBINED_VERSION >= 19504
- HANDLER_INFO(SkippedEntityHandler)
+ HANDLER_INFO(SkippedEntityHandler)
#endif
-#undef HANDLER_INFO
-
+#undef HANDLER_INFO
+
{NULL, NULL, NULL} /* sentinel */
};
diff --git a/contrib/tools/python3/src/Modules/resource.c b/contrib/tools/python3/src/Modules/resource.c
index 936f5cc027..ddbf80be9c 100644
--- a/contrib/tools/python3/src/Modules/resource.c
+++ b/contrib/tools/python3/src/Modules/resource.c
@@ -224,11 +224,11 @@ resource_setrlimit_impl(PyObject *module, int resource, PyObject *limits)
return NULL;
}
- if (PySys_Audit("resource.setrlimit", "iO", resource,
- limits ? limits : Py_None) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("resource.setrlimit", "iO", resource,
+ limits ? limits : Py_None) < 0) {
+ return NULL;
+ }
+
if (py2rlimit(limits, &rl) < 0) {
return NULL;
}
@@ -274,11 +274,11 @@ resource_prlimit_impl(PyObject *module, pid_t pid, int resource,
return NULL;
}
- if (PySys_Audit("resource.prlimit", "iiO", pid, resource,
- limits ? limits : Py_None) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("resource.prlimit", "iiO", pid, resource,
+ limits ? limits : Py_None) < 0) {
+ return NULL;
+ }
+
if (group_right_1) {
if (py2rlimit(limits, &new_limit) < 0) {
return NULL;
@@ -340,174 +340,174 @@ resource_methods[] = {
/* Module initialization */
-static int
-resource_exec(PyObject *module)
+static int
+resource_exec(PyObject *module)
{
-#define ADD_INT(module, value) \
- do { \
- if (PyModule_AddIntConstant(module, #value, value) < 0) { \
- return -1; \
- } \
- } while (0)
+#define ADD_INT(module, value) \
+ do { \
+ if (PyModule_AddIntConstant(module, #value, value) < 0) { \
+ return -1; \
+ } \
+ } while (0)
/* Add some symbolic constants to the module */
Py_INCREF(PyExc_OSError);
- if (PyModule_AddObject(module, "error", PyExc_OSError) < 0) {
- Py_DECREF(PyExc_OSError);
- return -1;
- }
+ if (PyModule_AddObject(module, "error", PyExc_OSError) < 0) {
+ Py_DECREF(PyExc_OSError);
+ return -1;
+ }
if (!initialized) {
if (PyStructSequence_InitType2(&StructRUsageType,
&struct_rusage_desc) < 0)
- return -1;
+ return -1;
}
- if(PyModule_AddType(module, &StructRUsageType) < 0) {
- return -1;
- }
+ if(PyModule_AddType(module, &StructRUsageType) < 0) {
+ return -1;
+ }
/* insert constants */
#ifdef RLIMIT_CPU
- ADD_INT(module, RLIMIT_CPU);
+ ADD_INT(module, RLIMIT_CPU);
#endif
#ifdef RLIMIT_FSIZE
- ADD_INT(module, RLIMIT_FSIZE);
+ ADD_INT(module, RLIMIT_FSIZE);
#endif
#ifdef RLIMIT_DATA
- ADD_INT(module, RLIMIT_DATA);
+ ADD_INT(module, RLIMIT_DATA);
#endif
#ifdef RLIMIT_STACK
- ADD_INT(module, RLIMIT_STACK);
+ ADD_INT(module, RLIMIT_STACK);
#endif
#ifdef RLIMIT_CORE
- ADD_INT(module, RLIMIT_CORE);
+ ADD_INT(module, RLIMIT_CORE);
#endif
#ifdef RLIMIT_NOFILE
- ADD_INT(module, RLIMIT_NOFILE);
+ ADD_INT(module, RLIMIT_NOFILE);
#endif
#ifdef RLIMIT_OFILE
- ADD_INT(module, RLIMIT_OFILE);
+ ADD_INT(module, RLIMIT_OFILE);
#endif
#ifdef RLIMIT_VMEM
- ADD_INT(module, RLIMIT_VMEM);
+ ADD_INT(module, RLIMIT_VMEM);
#endif
#ifdef RLIMIT_AS
- ADD_INT(module, RLIMIT_AS);
+ ADD_INT(module, RLIMIT_AS);
#endif
#ifdef RLIMIT_RSS
- ADD_INT(module, RLIMIT_RSS);
+ ADD_INT(module, RLIMIT_RSS);
#endif
#ifdef RLIMIT_NPROC
- ADD_INT(module, RLIMIT_NPROC);
+ ADD_INT(module, RLIMIT_NPROC);
#endif
#ifdef RLIMIT_MEMLOCK
- ADD_INT(module, RLIMIT_MEMLOCK);
+ ADD_INT(module, RLIMIT_MEMLOCK);
#endif
#ifdef RLIMIT_SBSIZE
- ADD_INT(module, RLIMIT_SBSIZE);
+ ADD_INT(module, RLIMIT_SBSIZE);
#endif
/* Linux specific */
#ifdef RLIMIT_MSGQUEUE
- ADD_INT(module, RLIMIT_MSGQUEUE);
+ ADD_INT(module, RLIMIT_MSGQUEUE);
#endif
#ifdef RLIMIT_NICE
- ADD_INT(module, RLIMIT_NICE);
+ ADD_INT(module, RLIMIT_NICE);
#endif
#ifdef RLIMIT_RTPRIO
- ADD_INT(module, RLIMIT_RTPRIO);
+ ADD_INT(module, RLIMIT_RTPRIO);
#endif
#ifdef RLIMIT_RTTIME
- ADD_INT(module, RLIMIT_RTTIME);
+ ADD_INT(module, RLIMIT_RTTIME);
#endif
#ifdef RLIMIT_SIGPENDING
- ADD_INT(module, RLIMIT_SIGPENDING);
+ ADD_INT(module, RLIMIT_SIGPENDING);
#endif
/* target */
#ifdef RUSAGE_SELF
- ADD_INT(module, RUSAGE_SELF);
+ ADD_INT(module, RUSAGE_SELF);
#endif
#ifdef RUSAGE_CHILDREN
- ADD_INT(module, RUSAGE_CHILDREN);
+ ADD_INT(module, RUSAGE_CHILDREN);
#endif
#ifdef RUSAGE_BOTH
- ADD_INT(module, RUSAGE_BOTH);
+ ADD_INT(module, RUSAGE_BOTH);
#endif
#ifdef RUSAGE_THREAD
- ADD_INT(module, RUSAGE_THREAD);
+ ADD_INT(module, RUSAGE_THREAD);
#endif
/* FreeBSD specific */
#ifdef RLIMIT_SWAP
- ADD_INT(module, RLIMIT_SWAP);
+ ADD_INT(module, RLIMIT_SWAP);
#endif
#ifdef RLIMIT_SBSIZE
- ADD_INT(module, RLIMIT_SBSIZE);
+ ADD_INT(module, RLIMIT_SBSIZE);
#endif
#ifdef RLIMIT_NPTS
- ADD_INT(module, RLIMIT_NPTS);
+ ADD_INT(module, RLIMIT_NPTS);
#endif
- PyObject *v;
+ PyObject *v;
if (sizeof(RLIM_INFINITY) > sizeof(long)) {
v = PyLong_FromLongLong((long long) RLIM_INFINITY);
} else
{
v = PyLong_FromLong((long) RLIM_INFINITY);
}
- if (!v) {
- return -1;
+ if (!v) {
+ return -1;
}
-
- if (PyModule_AddObject(module, "RLIM_INFINITY", v) < 0) {
- Py_DECREF(v);
- return -1;
- }
-
+
+ if (PyModule_AddObject(module, "RLIM_INFINITY", v) < 0) {
+ Py_DECREF(v);
+ return -1;
+ }
+
initialized = 1;
- return 0;
-
-#undef ADD_INT
+ return 0;
+
+#undef ADD_INT
+}
+
+static struct PyModuleDef_Slot resource_slots[] = {
+ {Py_mod_exec, resource_exec},
+ {0, NULL}
+};
+
+static struct PyModuleDef resourcemodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "resource",
+ .m_size = 0,
+ .m_methods = resource_methods,
+ .m_slots = resource_slots,
+};
+
+PyMODINIT_FUNC
+PyInit_resource(void)
+{
+ return PyModuleDef_Init(&resourcemodule);
}
-
-static struct PyModuleDef_Slot resource_slots[] = {
- {Py_mod_exec, resource_exec},
- {0, NULL}
-};
-
-static struct PyModuleDef resourcemodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "resource",
- .m_size = 0,
- .m_methods = resource_methods,
- .m_slots = resource_slots,
-};
-
-PyMODINIT_FUNC
-PyInit_resource(void)
-{
- return PyModuleDef_Init(&resourcemodule);
-}
diff --git a/contrib/tools/python3/src/Modules/selectmodule.c b/contrib/tools/python3/src/Modules/selectmodule.c
index e929daaa79..fb71e9196f 100644
--- a/contrib/tools/python3/src/Modules/selectmodule.c
+++ b/contrib/tools/python3/src/Modules/selectmodule.c
@@ -9,7 +9,7 @@
#endif
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#ifdef HAVE_SYS_DEVPOLL_H
#include <sys/resource.h>
@@ -58,55 +58,55 @@ extern void bzero(void *, int);
# define SOCKET int
#endif
-typedef struct {
- PyObject *close;
- PyTypeObject *poll_Type;
- PyTypeObject *devpoll_Type;
- PyTypeObject *pyEpoll_Type;
- PyTypeObject *kqueue_event_Type;
- PyTypeObject *kqueue_queue_Type;
-} _selectstate;
-
-static struct PyModuleDef selectmodule;
-
-static inline _selectstate*
-get_select_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_selectstate *)state;
-}
-
-#define _selectstate_global get_select_state(PyState_FindModule(&selectmodule))
-
-/*[clinic input]
-module select
-class select.poll "pollObject *" "&poll_Type"
-class select.devpoll "devpollObject *" "&devpoll_Type"
-class select.epoll "pyEpoll_Object *" "&pyEpoll_Type"
-class select.kqueue "kqueue_queue_Object *" "_selectstate_global->kqueue_queue_Type"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=41071028e0ede093]*/
-
-static int
-fildes_converter(PyObject *o, void *p)
-{
- int fd;
- int *pointer = (int *)p;
- fd = PyObject_AsFileDescriptor(o);
- if (fd == -1)
- return 0;
- *pointer = fd;
- return 1;
-}
-
-/*[python input]
-class fildes_converter(CConverter):
- type = 'int'
- converter = 'fildes_converter'
-[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=ca54eb5aa476e20a]*/
-
+typedef struct {
+ PyObject *close;
+ PyTypeObject *poll_Type;
+ PyTypeObject *devpoll_Type;
+ PyTypeObject *pyEpoll_Type;
+ PyTypeObject *kqueue_event_Type;
+ PyTypeObject *kqueue_queue_Type;
+} _selectstate;
+
+static struct PyModuleDef selectmodule;
+
+static inline _selectstate*
+get_select_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_selectstate *)state;
+}
+
+#define _selectstate_global get_select_state(PyState_FindModule(&selectmodule))
+
+/*[clinic input]
+module select
+class select.poll "pollObject *" "&poll_Type"
+class select.devpoll "devpollObject *" "&devpoll_Type"
+class select.epoll "pyEpoll_Object *" "&pyEpoll_Type"
+class select.kqueue "kqueue_queue_Object *" "_selectstate_global->kqueue_queue_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=41071028e0ede093]*/
+
+static int
+fildes_converter(PyObject *o, void *p)
+{
+ int fd;
+ int *pointer = (int *)p;
+ fd = PyObject_AsFileDescriptor(o);
+ if (fd == -1)
+ return 0;
+ *pointer = fd;
+ return 1;
+}
+
+/*[python input]
+class fildes_converter(CConverter):
+ type = 'int'
+ converter = 'fildes_converter'
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=ca54eb5aa476e20a]*/
+
/* list of Python objects and their file descriptor */
typedef struct {
PyObject *obj; /* owned reference */
@@ -228,43 +228,43 @@ set2list(fd_set *set, pylist fd2obj[FD_SETSIZE + 1])
#define SELECT_USES_HEAP
#endif /* FD_SETSIZE > 1024 */
-/*[clinic input]
-select.select
-
- rlist: object
- wlist: object
- xlist: object
- timeout as timeout_obj: object = None
- /
-
-Wait until one or more file descriptors are ready for some kind of I/O.
-
-The first three arguments are iterables of file descriptors to be waited for:
-rlist -- wait until ready for reading
-wlist -- wait until ready for writing
-xlist -- wait for an "exceptional condition"
-If only one kind of condition is required, pass [] for the other lists.
-
-A file descriptor is either a socket or file object, or a small integer
-gotten from a fileno() method call on one of those.
-
-The optional 4th argument specifies a timeout in seconds; it may be
-a floating point number to specify fractions of seconds. If it is absent
-or None, the call will never time out.
-
-The return value is a tuple of three lists corresponding to the first three
-arguments; each contains the subset of the corresponding file descriptors
-that are ready.
-
-*** IMPORTANT NOTICE ***
-On Windows, only sockets are supported; on Unix, all file
-descriptors can be used.
-[clinic start generated code]*/
-
+/*[clinic input]
+select.select
+
+ rlist: object
+ wlist: object
+ xlist: object
+ timeout as timeout_obj: object = None
+ /
+
+Wait until one or more file descriptors are ready for some kind of I/O.
+
+The first three arguments are iterables of file descriptors to be waited for:
+rlist -- wait until ready for reading
+wlist -- wait until ready for writing
+xlist -- wait for an "exceptional condition"
+If only one kind of condition is required, pass [] for the other lists.
+
+A file descriptor is either a socket or file object, or a small integer
+gotten from a fileno() method call on one of those.
+
+The optional 4th argument specifies a timeout in seconds; it may be
+a floating point number to specify fractions of seconds. If it is absent
+or None, the call will never time out.
+
+The return value is a tuple of three lists corresponding to the first three
+arguments; each contains the subset of the corresponding file descriptors
+that are ready.
+
+*** IMPORTANT NOTICE ***
+On Windows, only sockets are supported; on Unix, all file
+descriptors can be used.
+[clinic start generated code]*/
+
static PyObject *
-select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
- PyObject *xlist, PyObject *timeout_obj)
-/*[clinic end generated code: output=2b3cfa824f7ae4cf input=e467f5d68033de00]*/
+select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
+ PyObject *xlist, PyObject *timeout_obj)
+/*[clinic end generated code: output=2b3cfa824f7ae4cf input=e467f5d68033de00]*/
{
#ifdef SELECT_USES_HEAP
pylist *rfd2obj, *wfd2obj, *efd2obj;
@@ -320,17 +320,17 @@ select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
}
#endif /* SELECT_USES_HEAP */
- /* Convert iterables to fd_sets, and get maximum fd number
+ /* Convert iterables to fd_sets, and get maximum fd number
* propagates the Python exception set in seq2set()
*/
rfd2obj[0].sentinel = -1;
wfd2obj[0].sentinel = -1;
efd2obj[0].sentinel = -1;
- if ((imax = seq2set(rlist, &ifdset, rfd2obj)) < 0)
+ if ((imax = seq2set(rlist, &ifdset, rfd2obj)) < 0)
goto finally;
- if ((omax = seq2set(wlist, &ofdset, wfd2obj)) < 0)
+ if ((omax = seq2set(wlist, &ofdset, wfd2obj)) < 0)
goto finally;
- if ((emax = seq2set(xlist, &efdset, efd2obj)) < 0)
+ if ((emax = seq2set(xlist, &efdset, efd2obj)) < 0)
goto finally;
max = imax;
@@ -382,17 +382,17 @@ select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist,
convenient to test for this after all three calls... but
is that acceptable?
*/
- rlist = set2list(&ifdset, rfd2obj);
- wlist = set2list(&ofdset, wfd2obj);
- xlist = set2list(&efdset, efd2obj);
+ rlist = set2list(&ifdset, rfd2obj);
+ wlist = set2list(&ofdset, wfd2obj);
+ xlist = set2list(&efdset, efd2obj);
if (PyErr_Occurred())
ret = NULL;
else
- ret = PyTuple_Pack(3, rlist, wlist, xlist);
+ ret = PyTuple_Pack(3, rlist, wlist, xlist);
- Py_XDECREF(rlist);
- Py_XDECREF(wlist);
- Py_XDECREF(xlist);
+ Py_XDECREF(rlist);
+ Py_XDECREF(wlist);
+ Py_XDECREF(xlist);
}
finally:
@@ -453,23 +453,23 @@ update_ufd_array(pollObject *self)
return 1;
}
-/*[clinic input]
-select.poll.register
+/*[clinic input]
+select.poll.register
- fd: fildes
- either an integer, or an object with a fileno() method returning an int
- eventmask: unsigned_short(c_default="POLLIN | POLLPRI | POLLOUT") = select.POLLIN | select.POLLPRI | select.POLLOUT
- an optional bitmask describing the type of events to check for
- /
+ fd: fildes
+ either an integer, or an object with a fileno() method returning an int
+ eventmask: unsigned_short(c_default="POLLIN | POLLPRI | POLLOUT") = select.POLLIN | select.POLLPRI | select.POLLOUT
+ an optional bitmask describing the type of events to check for
+ /
-Register a file descriptor with the polling object.
-[clinic start generated code]*/
+Register a file descriptor with the polling object.
+[clinic start generated code]*/
static PyObject *
-select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask)
-/*[clinic end generated code: output=0dc7173c800a4a65 input=34e16cfb28d3c900]*/
+select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask)
+/*[clinic end generated code: output=0dc7173c800a4a65 input=34e16cfb28d3c900]*/
{
- PyObject *key, *value;
+ PyObject *key, *value;
int err;
/* Add entry to the internal dictionary: the key is the
@@ -477,7 +477,7 @@ select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask)
key = PyLong_FromLong(fd);
if (key == NULL)
return NULL;
- value = PyLong_FromLong(eventmask);
+ value = PyLong_FromLong(eventmask);
if (value == NULL) {
Py_DECREF(key);
return NULL;
@@ -494,39 +494,39 @@ select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask)
}
-/*[clinic input]
-select.poll.modify
-
- fd: fildes
- either an integer, or an object with a fileno() method returning
- an int
- eventmask: unsigned_short
- a bitmask describing the type of events to check for
- /
-
-Modify an already registered file descriptor.
-[clinic start generated code]*/
-
+/*[clinic input]
+select.poll.modify
+
+ fd: fildes
+ either an integer, or an object with a fileno() method returning
+ an int
+ eventmask: unsigned_short
+ a bitmask describing the type of events to check for
+ /
+
+Modify an already registered file descriptor.
+[clinic start generated code]*/
+
static PyObject *
-select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask)
-/*[clinic end generated code: output=1a7b88bf079eff17 input=a8e383df075c32cf]*/
+select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask)
+/*[clinic end generated code: output=1a7b88bf079eff17 input=a8e383df075c32cf]*/
{
- PyObject *key, *value;
+ PyObject *key, *value;
int err;
/* Modify registered fd */
key = PyLong_FromLong(fd);
if (key == NULL)
return NULL;
- if (PyDict_GetItemWithError(self->dict, key) == NULL) {
- if (!PyErr_Occurred()) {
- errno = ENOENT;
- PyErr_SetFromErrno(PyExc_OSError);
- }
+ if (PyDict_GetItemWithError(self->dict, key) == NULL) {
+ if (!PyErr_Occurred()) {
+ errno = ENOENT;
+ PyErr_SetFromErrno(PyExc_OSError);
+ }
Py_DECREF(key);
return NULL;
}
- value = PyLong_FromLong(eventmask);
+ value = PyLong_FromLong(eventmask);
if (value == NULL) {
Py_DECREF(key);
return NULL;
@@ -543,18 +543,18 @@ select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask)
}
-/*[clinic input]
-select.poll.unregister
+/*[clinic input]
+select.poll.unregister
+
+ fd: fildes
+ /
+
+Remove a file descriptor being tracked by the polling object.
+[clinic start generated code]*/
- fd: fildes
- /
-
-Remove a file descriptor being tracked by the polling object.
-[clinic start generated code]*/
-
static PyObject *
-select_poll_unregister_impl(pollObject *self, int fd)
-/*[clinic end generated code: output=8c9f42e75e7d291b input=4b4fccc1040e79cb]*/
+select_poll_unregister_impl(pollObject *self, int fd)
+/*[clinic end generated code: output=8c9f42e75e7d291b input=4b4fccc1040e79cb]*/
{
PyObject *key;
@@ -576,29 +576,29 @@ select_poll_unregister_impl(pollObject *self, int fd)
Py_RETURN_NONE;
}
-/*[clinic input]
-select.poll.poll
+/*[clinic input]
+select.poll.poll
+
+ timeout as timeout_obj: object = None
+ /
+
+Polls the set of registered file descriptors.
+
+Returns a list containing any descriptors that have events or errors to
+report, as a list of (fd, event) 2-tuples.
+[clinic start generated code]*/
- timeout as timeout_obj: object = None
- /
-
-Polls the set of registered file descriptors.
-
-Returns a list containing any descriptors that have events or errors to
-report, as a list of (fd, event) 2-tuples.
-[clinic start generated code]*/
-
static PyObject *
-select_poll_poll_impl(pollObject *self, PyObject *timeout_obj)
-/*[clinic end generated code: output=876e837d193ed7e4 input=7a446ed45189e894]*/
+select_poll_poll_impl(pollObject *self, PyObject *timeout_obj)
+/*[clinic end generated code: output=876e837d193ed7e4 input=7a446ed45189e894]*/
{
- PyObject *result_list = NULL;
+ PyObject *result_list = NULL;
int poll_result, i, j;
PyObject *value = NULL, *num = NULL;
_PyTime_t timeout = -1, ms = -1, deadline = 0;
int async_err = 0;
- if (timeout_obj != Py_None) {
+ if (timeout_obj != Py_None) {
if (_PyTime_FromMillisecondsObject(&timeout, timeout_obj,
_PyTime_ROUND_TIMEOUT) < 0) {
if (PyErr_ExceptionMatches(PyExc_TypeError)) {
@@ -728,7 +728,7 @@ static pollObject *
newPollObject(void)
{
pollObject *self;
- self = PyObject_New(pollObject, _selectstate_global->poll_Type);
+ self = PyObject_New(pollObject, _selectstate_global->poll_Type);
if (self == NULL)
return NULL;
/* ufd_uptodate is a Boolean, denoting whether the
@@ -744,28 +744,28 @@ newPollObject(void)
return self;
}
-static PyObject *
-poll_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyErr_Format(PyExc_TypeError, "Cannot create '%.200s' instances", _PyType_Name(type));
- return NULL;
-}
-
+static PyObject *
+poll_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyErr_Format(PyExc_TypeError, "Cannot create '%.200s' instances", _PyType_Name(type));
+ return NULL;
+}
+
static void
poll_dealloc(pollObject *self)
{
- PyObject* type = (PyObject *)Py_TYPE(self);
+ PyObject* type = (PyObject *)Py_TYPE(self);
if (self->ufds != NULL)
PyMem_DEL(self->ufds);
Py_XDECREF(self->dict);
PyObject_Del(self);
- Py_DECREF(type);
+ Py_DECREF(type);
}
#ifdef HAVE_SYS_DEVPOLL_H
-static PyMethodDef devpoll_methods[];
-
+static PyMethodDef devpoll_methods[];
+
typedef struct {
PyObject_HEAD
int fd_devpoll;
@@ -812,8 +812,8 @@ static int devpoll_flush(devpollObject *self)
}
static PyObject *
-internal_devpoll_register(devpollObject *self, int fd,
- unsigned short events, int remove)
+internal_devpoll_register(devpollObject *self, int fd,
+ unsigned short events, int remove)
{
if (self->fd_devpoll < 0)
return devpoll_err_closed();
@@ -839,60 +839,60 @@ internal_devpoll_register(devpollObject *self, int fd,
Py_RETURN_NONE;
}
-/*[clinic input]
-select.devpoll.register
+/*[clinic input]
+select.devpoll.register
+
+ fd: fildes
+ either an integer, or an object with a fileno() method returning
+ an int
+ eventmask: unsigned_short(c_default="POLLIN | POLLPRI | POLLOUT") = select.POLLIN | select.POLLPRI | select.POLLOUT
+ an optional bitmask describing the type of events to check for
+ /
+
+Register a file descriptor with the polling object.
+[clinic start generated code]*/
- fd: fildes
- either an integer, or an object with a fileno() method returning
- an int
- eventmask: unsigned_short(c_default="POLLIN | POLLPRI | POLLOUT") = select.POLLIN | select.POLLPRI | select.POLLOUT
- an optional bitmask describing the type of events to check for
- /
-
-Register a file descriptor with the polling object.
-[clinic start generated code]*/
-
static PyObject *
-select_devpoll_register_impl(devpollObject *self, int fd,
- unsigned short eventmask)
-/*[clinic end generated code: output=6e07fe8b74abba0c input=22006fabe9567522]*/
-{
- return internal_devpoll_register(self, fd, eventmask, 0);
-}
-
-/*[clinic input]
-select.devpoll.modify
-
- fd: fildes
- either an integer, or an object with a fileno() method returning
- an int
- eventmask: unsigned_short(c_default="POLLIN | POLLPRI | POLLOUT") = select.POLLIN | select.POLLPRI | select.POLLOUT
- an optional bitmask describing the type of events to check for
- /
-
-Modify a possible already registered file descriptor.
-[clinic start generated code]*/
-
+select_devpoll_register_impl(devpollObject *self, int fd,
+ unsigned short eventmask)
+/*[clinic end generated code: output=6e07fe8b74abba0c input=22006fabe9567522]*/
+{
+ return internal_devpoll_register(self, fd, eventmask, 0);
+}
+
+/*[clinic input]
+select.devpoll.modify
+
+ fd: fildes
+ either an integer, or an object with a fileno() method returning
+ an int
+ eventmask: unsigned_short(c_default="POLLIN | POLLPRI | POLLOUT") = select.POLLIN | select.POLLPRI | select.POLLOUT
+ an optional bitmask describing the type of events to check for
+ /
+
+Modify a possible already registered file descriptor.
+[clinic start generated code]*/
+
static PyObject *
-select_devpoll_modify_impl(devpollObject *self, int fd,
- unsigned short eventmask)
-/*[clinic end generated code: output=bc2e6d23aaff98b4 input=09fa335db7cdc09e]*/
+select_devpoll_modify_impl(devpollObject *self, int fd,
+ unsigned short eventmask)
+/*[clinic end generated code: output=bc2e6d23aaff98b4 input=09fa335db7cdc09e]*/
{
- return internal_devpoll_register(self, fd, eventmask, 1);
+ return internal_devpoll_register(self, fd, eventmask, 1);
}
-/*[clinic input]
-select.devpoll.unregister
+/*[clinic input]
+select.devpoll.unregister
+
+ fd: fildes
+ /
- fd: fildes
- /
+Remove a file descriptor being tracked by the polling object.
+[clinic start generated code]*/
-Remove a file descriptor being tracked by the polling object.
-[clinic start generated code]*/
-
static PyObject *
-select_devpoll_unregister_impl(devpollObject *self, int fd)
-/*[clinic end generated code: output=95519ffa0c7d43fe input=b4ea42a4442fd467]*/
+select_devpoll_unregister_impl(devpollObject *self, int fd)
+/*[clinic end generated code: output=95519ffa0c7d43fe input=b4ea42a4442fd467]*/
{
if (self->fd_devpoll < 0)
return devpoll_err_closed();
@@ -908,23 +908,23 @@ select_devpoll_unregister_impl(devpollObject *self, int fd)
Py_RETURN_NONE;
}
-/*[clinic input]
-select.devpoll.poll
- timeout as timeout_obj: object = None
- /
+/*[clinic input]
+select.devpoll.poll
+ timeout as timeout_obj: object = None
+ /
+
+Polls the set of registered file descriptors.
+
+Returns a list containing any descriptors that have events or errors to
+report, as a list of (fd, event) 2-tuples.
+[clinic start generated code]*/
-Polls the set of registered file descriptors.
-
-Returns a list containing any descriptors that have events or errors to
-report, as a list of (fd, event) 2-tuples.
-[clinic start generated code]*/
-
static PyObject *
-select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj)
-/*[clinic end generated code: output=2654e5457cca0b3c input=fd0db698d84f0333]*/
+select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj)
+/*[clinic end generated code: output=2654e5457cca0b3c input=fd0db698d84f0333]*/
{
struct dvpoll dvp;
- PyObject *result_list = NULL;
+ PyObject *result_list = NULL;
int poll_result, i;
PyObject *value, *num1, *num2;
_PyTime_t timeout, ms, deadline = 0;
@@ -933,7 +933,7 @@ select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj)
return devpoll_err_closed();
/* Check values for timeout */
- if (timeout_obj == Py_None) {
+ if (timeout_obj == Py_None) {
timeout = -1;
ms = -1;
}
@@ -1038,17 +1038,17 @@ devpoll_internal_close(devpollObject *self)
return save_errno;
}
-/*[clinic input]
-select.devpoll.close
-
-Close the devpoll file descriptor.
-
-Further operations on the devpoll object will raise an exception.
-[clinic start generated code]*/
-
-static PyObject *
-select_devpoll_close_impl(devpollObject *self)
-/*[clinic end generated code: output=26b355bd6429f21b input=6273c30f5560a99b]*/
+/*[clinic input]
+select.devpoll.close
+
+Close the devpoll file descriptor.
+
+Further operations on the devpoll object will raise an exception.
+[clinic start generated code]*/
+
+static PyObject *
+select_devpoll_close_impl(devpollObject *self)
+/*[clinic end generated code: output=26b355bd6429f21b input=6273c30f5560a99b]*/
{
errno = devpoll_internal_close(self);
if (errno < 0) {
@@ -1067,15 +1067,15 @@ devpoll_get_closed(devpollObject *self, void *Py_UNUSED(ignored))
Py_RETURN_FALSE;
}
-/*[clinic input]
-select.devpoll.fileno
-
-Return the file descriptor.
-[clinic start generated code]*/
-
-static PyObject *
-select_devpoll_fileno_impl(devpollObject *self)
-/*[clinic end generated code: output=26920929f8d292f4 input=ef15331ebde6c368]*/
+/*[clinic input]
+select.devpoll.fileno
+
+Return the file descriptor.
+[clinic start generated code]*/
+
+static PyObject *
+select_devpoll_fileno_impl(devpollObject *self)
+/*[clinic end generated code: output=26920929f8d292f4 input=ef15331ebde6c368]*/
{
if (self->fd_devpoll < 0)
return devpoll_err_closed();
@@ -1119,7 +1119,7 @@ newDevPollObject(void)
return NULL;
}
- self = PyObject_New(devpollObject, _selectstate_global->devpoll_Type);
+ self = PyObject_New(devpollObject, _selectstate_global->devpoll_Type);
if (self == NULL) {
close(fd_devpoll);
PyMem_DEL(fds);
@@ -1133,72 +1133,72 @@ newDevPollObject(void)
return self;
}
-static PyObject *
-devpoll_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyErr_Format(PyExc_TypeError, "Cannot create '%.200s' instances", _PyType_Name(type));
- return NULL;
-}
-
+static PyObject *
+devpoll_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyErr_Format(PyExc_TypeError, "Cannot create '%.200s' instances", _PyType_Name(type));
+ return NULL;
+}
+
static void
devpoll_dealloc(devpollObject *self)
{
- PyObject *type = (PyObject *)Py_TYPE(self);
+ PyObject *type = (PyObject *)Py_TYPE(self);
(void)devpoll_internal_close(self);
PyMem_DEL(self->fds);
PyObject_Del(self);
- Py_DECREF(type);
-}
-
-static PyType_Slot devpoll_Type_slots[] = {
- {Py_tp_dealloc, devpoll_dealloc},
- {Py_tp_getset, devpoll_getsetlist},
- {Py_tp_methods, devpoll_methods},
- {Py_tp_new, devpoll_new},
- {0, 0},
-};
-
-static PyType_Spec devpoll_Type_spec = {
- "select.devpoll",
- sizeof(devpollObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- devpoll_Type_slots
-};
-
+ Py_DECREF(type);
+}
+
+static PyType_Slot devpoll_Type_slots[] = {
+ {Py_tp_dealloc, devpoll_dealloc},
+ {Py_tp_getset, devpoll_getsetlist},
+ {Py_tp_methods, devpoll_methods},
+ {Py_tp_new, devpoll_new},
+ {0, 0},
+};
+
+static PyType_Spec devpoll_Type_spec = {
+ "select.devpoll",
+ sizeof(devpollObject),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ devpoll_Type_slots
+};
+
#endif /* HAVE_SYS_DEVPOLL_H */
-/*[clinic input]
-select.poll
+/*[clinic input]
+select.poll
-Returns a polling object.
+Returns a polling object.
+
+This object supports registering and unregistering file descriptors, and then
+polling them for I/O events.
+[clinic start generated code]*/
-This object supports registering and unregistering file descriptors, and then
-polling them for I/O events.
-[clinic start generated code]*/
-
static PyObject *
-select_poll_impl(PyObject *module)
-/*[clinic end generated code: output=16a665a4e1d228c5 input=3f877909d5696bbf]*/
+select_poll_impl(PyObject *module)
+/*[clinic end generated code: output=16a665a4e1d228c5 input=3f877909d5696bbf]*/
{
return (PyObject *)newPollObject();
}
#ifdef HAVE_SYS_DEVPOLL_H
-/*[clinic input]
-select.devpoll
-
-Returns a polling object.
-
-This object supports registering and unregistering file descriptors, and then
-polling them for I/O events.
-[clinic start generated code]*/
-
+/*[clinic input]
+select.devpoll
+
+Returns a polling object.
+
+This object supports registering and unregistering file descriptors, and then
+polling them for I/O events.
+[clinic start generated code]*/
+
static PyObject *
-select_devpoll_impl(PyObject *module)
-/*[clinic end generated code: output=ea9213cc87fd9581 input=53a1af94564f00a3]*/
+select_devpoll_impl(PyObject *module)
+/*[clinic end generated code: output=ea9213cc87fd9581 input=53a1af94564f00a3]*/
{
return (PyObject *)newDevPollObject();
}
@@ -1254,7 +1254,7 @@ typedef struct {
SOCKET epfd; /* epoll control file descriptor */
} pyEpoll_Object;
-#define pyepoll_CHECK(op) (PyObject_TypeCheck((op), _selectstate_global->pyEpoll_Type))
+#define pyepoll_CHECK(op) (PyObject_TypeCheck((op), _selectstate_global->pyEpoll_Type))
static PyObject *
pyepoll_err_closed(void)
@@ -1282,10 +1282,10 @@ static PyObject *
newPyEpoll_Object(PyTypeObject *type, int sizehint, SOCKET fd)
{
pyEpoll_Object *self;
- assert(type != NULL);
- allocfunc epoll_alloc = PyType_GetSlot(type, Py_tp_alloc);
- assert(epoll_alloc != NULL);
- self = (pyEpoll_Object *) epoll_alloc(type, 0);
+ assert(type != NULL);
+ allocfunc epoll_alloc = PyType_GetSlot(type, Py_tp_alloc);
+ assert(epoll_alloc != NULL);
+ self = (pyEpoll_Object *) epoll_alloc(type, 0);
if (self == NULL)
return NULL;
@@ -1318,31 +1318,31 @@ newPyEpoll_Object(PyTypeObject *type, int sizehint, SOCKET fd)
}
-/*[clinic input]
-@classmethod
-select.epoll.__new__
-
- sizehint: int = -1
- The expected number of events to be registered. It must be positive,
- or -1 to use the default. It is only used on older systems where
- epoll_create1() is not available; otherwise it has no effect (though its
- value is still checked).
- flags: int = 0
- Deprecated and completely ignored. However, when supplied, its value
- must be 0 or select.EPOLL_CLOEXEC, otherwise OSError is raised.
-
-Returns an epolling object.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+select.epoll.__new__
+
+ sizehint: int = -1
+ The expected number of events to be registered. It must be positive,
+ or -1 to use the default. It is only used on older systems where
+ epoll_create1() is not available; otherwise it has no effect (though its
+ value is still checked).
+ flags: int = 0
+ Deprecated and completely ignored. However, when supplied, its value
+ must be 0 or select.EPOLL_CLOEXEC, otherwise OSError is raised.
+
+Returns an epolling object.
+[clinic start generated code]*/
+
static PyObject *
-select_epoll_impl(PyTypeObject *type, int sizehint, int flags)
-/*[clinic end generated code: output=c87404e705013bb5 input=303e3295e7975e43]*/
+select_epoll_impl(PyTypeObject *type, int sizehint, int flags)
+/*[clinic end generated code: output=c87404e705013bb5 input=303e3295e7975e43]*/
{
if (sizehint == -1) {
sizehint = FD_SETSIZE - 1;
}
else if (sizehint <= 0) {
- PyErr_SetString(PyExc_ValueError, "negative sizehint");
+ PyErr_SetString(PyExc_ValueError, "negative sizehint");
return NULL;
}
@@ -1352,7 +1352,7 @@ select_epoll_impl(PyTypeObject *type, int sizehint, int flags)
return NULL;
}
#endif
-
+
return newPyEpoll_Object(type, sizehint, -1);
}
@@ -1360,24 +1360,24 @@ select_epoll_impl(PyTypeObject *type, int sizehint, int flags)
static void
pyepoll_dealloc(pyEpoll_Object *self)
{
- PyTypeObject* type = Py_TYPE(self);
+ PyTypeObject* type = Py_TYPE(self);
(void)pyepoll_internal_close(self);
- freefunc epoll_free = PyType_GetSlot(type, Py_tp_free);
- epoll_free((PyObject *)self);
- Py_DECREF((PyObject *)type);
-}
-
-/*[clinic input]
-select.epoll.close
-
-Close the epoll control file descriptor.
-
-Further operations on the epoll object will raise an exception.
-[clinic start generated code]*/
-
-static PyObject *
-select_epoll_close_impl(pyEpoll_Object *self)
-/*[clinic end generated code: output=ee2144c446a1a435 input=ca6c66ba5a736bfd]*/
+ freefunc epoll_free = PyType_GetSlot(type, Py_tp_free);
+ epoll_free((PyObject *)self);
+ Py_DECREF((PyObject *)type);
+}
+
+/*[clinic input]
+select.epoll.close
+
+Close the epoll control file descriptor.
+
+Further operations on the epoll object will raise an exception.
+[clinic start generated code]*/
+
+static PyObject *
+select_epoll_close_impl(pyEpoll_Object *self)
+/*[clinic end generated code: output=ee2144c446a1a435 input=ca6c66ba5a736bfd]*/
{
errno = pyepoll_internal_close(self);
if (errno < 0) {
@@ -1397,15 +1397,15 @@ pyepoll_get_closed(pyEpoll_Object *self, void *Py_UNUSED(ignored))
Py_RETURN_FALSE;
}
-/*[clinic input]
-select.epoll.fileno
-
-Return the epoll control file descriptor.
-[clinic start generated code]*/
-
-static PyObject *
-select_epoll_fileno_impl(pyEpoll_Object *self)
-/*[clinic end generated code: output=e171375fdc619ba3 input=c11091a6aee60b5c]*/
+/*[clinic input]
+select.epoll.fileno
+
+Return the epoll control file descriptor.
+[clinic start generated code]*/
+
+static PyObject *
+select_epoll_fileno_impl(pyEpoll_Object *self)
+/*[clinic end generated code: output=e171375fdc619ba3 input=c11091a6aee60b5c]*/
{
if (self->epfd < 0)
return pyepoll_err_closed();
@@ -1413,27 +1413,27 @@ select_epoll_fileno_impl(pyEpoll_Object *self)
}
-/*[clinic input]
-@classmethod
-select.epoll.fromfd
+/*[clinic input]
+@classmethod
+select.epoll.fromfd
+
+ fd: int
+ /
- fd: int
- /
+Create an epoll object from a given control fd.
+[clinic start generated code]*/
-Create an epoll object from a given control fd.
-[clinic start generated code]*/
-
-static PyObject *
-select_epoll_fromfd_impl(PyTypeObject *type, int fd)
-/*[clinic end generated code: output=c15de2a083524e8e input=faecefdb55e3046e]*/
-{
- SOCKET s_fd = (SOCKET)fd;
- return newPyEpoll_Object(type, FD_SETSIZE - 1, s_fd);
+static PyObject *
+select_epoll_fromfd_impl(PyTypeObject *type, int fd)
+/*[clinic end generated code: output=c15de2a083524e8e input=faecefdb55e3046e]*/
+{
+ SOCKET s_fd = (SOCKET)fd;
+ return newPyEpoll_Object(type, FD_SETSIZE - 1, s_fd);
}
static PyObject *
-pyepoll_internal_ctl(int epfd, int op, int fd, unsigned int events)
+pyepoll_internal_ctl(int epfd, int op, int fd, unsigned int events)
{
struct epoll_event ev;
int result;
@@ -1470,91 +1470,91 @@ pyepoll_internal_ctl(int epfd, int op, int fd, unsigned int events)
Py_RETURN_NONE;
}
-/*[clinic input]
-select.epoll.register
-
- fd: fildes
- the target file descriptor of the operation
- eventmask: unsigned_int(c_default="EPOLLIN | EPOLLPRI | EPOLLOUT", bitwise=True) = select.EPOLLIN | select.EPOLLPRI | select.EPOLLOUT
- a bit set composed of the various EPOLL constants
-
-Registers a new fd or raises an OSError if the fd is already registered.
-
-The epoll interface supports all file descriptors that support poll.
-[clinic start generated code]*/
-
+/*[clinic input]
+select.epoll.register
+
+ fd: fildes
+ the target file descriptor of the operation
+ eventmask: unsigned_int(c_default="EPOLLIN | EPOLLPRI | EPOLLOUT", bitwise=True) = select.EPOLLIN | select.EPOLLPRI | select.EPOLLOUT
+ a bit set composed of the various EPOLL constants
+
+Registers a new fd or raises an OSError if the fd is already registered.
+
+The epoll interface supports all file descriptors that support poll.
+[clinic start generated code]*/
+
static PyObject *
-select_epoll_register_impl(pyEpoll_Object *self, int fd,
- unsigned int eventmask)
-/*[clinic end generated code: output=318e5e6386520599 input=a5071b71edfe3578]*/
+select_epoll_register_impl(pyEpoll_Object *self, int fd,
+ unsigned int eventmask)
+/*[clinic end generated code: output=318e5e6386520599 input=a5071b71edfe3578]*/
{
- return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_ADD, fd, eventmask);
-}
+ return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_ADD, fd, eventmask);
+}
-/*[clinic input]
-select.epoll.modify
+/*[clinic input]
+select.epoll.modify
- fd: fildes
- the target file descriptor of the operation
- eventmask: unsigned_int(bitwise=True)
- a bit set composed of the various EPOLL constants
+ fd: fildes
+ the target file descriptor of the operation
+ eventmask: unsigned_int(bitwise=True)
+ a bit set composed of the various EPOLL constants
-Modify event mask for a registered file descriptor.
-[clinic start generated code]*/
+Modify event mask for a registered file descriptor.
+[clinic start generated code]*/
static PyObject *
-select_epoll_modify_impl(pyEpoll_Object *self, int fd,
- unsigned int eventmask)
-/*[clinic end generated code: output=7e3447307cff6f65 input=88a83dac53a8c3da]*/
+select_epoll_modify_impl(pyEpoll_Object *self, int fd,
+ unsigned int eventmask)
+/*[clinic end generated code: output=7e3447307cff6f65 input=88a83dac53a8c3da]*/
{
- return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_MOD, fd, eventmask);
-}
+ return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_MOD, fd, eventmask);
+}
-/*[clinic input]
-select.epoll.unregister
+/*[clinic input]
+select.epoll.unregister
- fd: fildes
- the target file descriptor of the operation
+ fd: fildes
+ the target file descriptor of the operation
-Remove a registered file descriptor from the epoll object.
-[clinic start generated code]*/
+Remove a registered file descriptor from the epoll object.
+[clinic start generated code]*/
static PyObject *
-select_epoll_unregister_impl(pyEpoll_Object *self, int fd)
-/*[clinic end generated code: output=07c5dbd612a512d4 input=3093f68d3644743d]*/
+select_epoll_unregister_impl(pyEpoll_Object *self, int fd)
+/*[clinic end generated code: output=07c5dbd612a512d4 input=3093f68d3644743d]*/
{
- return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_DEL, fd, 0);
-}
+ return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_DEL, fd, 0);
+}
-/*[clinic input]
-select.epoll.poll
+/*[clinic input]
+select.epoll.poll
- timeout as timeout_obj: object = None
- the maximum time to wait in seconds (as float);
- a timeout of None or -1 makes poll wait indefinitely
- maxevents: int = -1
- the maximum number of events returned; -1 means no limit
+ timeout as timeout_obj: object = None
+ the maximum time to wait in seconds (as float);
+ a timeout of None or -1 makes poll wait indefinitely
+ maxevents: int = -1
+ the maximum number of events returned; -1 means no limit
-Wait for events on the epoll file descriptor.
+Wait for events on the epoll file descriptor.
+
+Returns a list containing any descriptors that have events to report,
+as a list of (fd, events) 2-tuples.
+[clinic start generated code]*/
-Returns a list containing any descriptors that have events to report,
-as a list of (fd, events) 2-tuples.
-[clinic start generated code]*/
-
static PyObject *
-select_epoll_poll_impl(pyEpoll_Object *self, PyObject *timeout_obj,
- int maxevents)
-/*[clinic end generated code: output=e02d121a20246c6c input=33d34a5ea430fd5b]*/
+select_epoll_poll_impl(pyEpoll_Object *self, PyObject *timeout_obj,
+ int maxevents)
+/*[clinic end generated code: output=e02d121a20246c6c input=33d34a5ea430fd5b]*/
{
int nfds, i;
PyObject *elist = NULL, *etuple = NULL;
struct epoll_event *evs = NULL;
- _PyTime_t timeout = -1, ms = -1, deadline = 0;
+ _PyTime_t timeout = -1, ms = -1, deadline = 0;
if (self->epfd < 0)
return pyepoll_err_closed();
- if (timeout_obj != Py_None) {
+ if (timeout_obj != Py_None) {
/* epoll_wait() has a resolution of 1 millisecond, round towards
infinity to wait at least timeout seconds. */
if (_PyTime_FromSecondsObject(&timeout, timeout_obj,
@@ -1571,20 +1571,20 @@ select_epoll_poll_impl(pyEpoll_Object *self, PyObject *timeout_obj,
PyErr_SetString(PyExc_OverflowError, "timeout is too large");
return NULL;
}
- /* epoll_wait(2) treats all arbitrary negative numbers the same
- for the timeout argument, but -1 is the documented way to block
- indefinitely in the epoll_wait(2) documentation, so we set ms
- to -1 if the value of ms is a negative number.
-
- Note that we didn't use INFTIM here since it's non-standard and
- isn't available under Linux. */
- if (ms < 0) {
- ms = -1;
- }
-
- if (timeout >= 0) {
- deadline = _PyTime_GetMonotonicClock() + timeout;
- }
+ /* epoll_wait(2) treats all arbitrary negative numbers the same
+ for the timeout argument, but -1 is the documented way to block
+ indefinitely in the epoll_wait(2) documentation, so we set ms
+ to -1 if the value of ms is a negative number.
+
+ Note that we didn't use INFTIM here since it's non-standard and
+ isn't available under Linux. */
+ if (ms < 0) {
+ ms = -1;
+ }
+
+ if (timeout >= 0) {
+ deadline = _PyTime_GetMonotonicClock() + timeout;
+ }
}
if (maxevents == -1) {
@@ -1652,14 +1652,14 @@ select_epoll_poll_impl(pyEpoll_Object *self, PyObject *timeout_obj,
}
-/*[clinic input]
-select.epoll.__enter__
-
-[clinic start generated code]*/
-
+/*[clinic input]
+select.epoll.__enter__
+
+[clinic start generated code]*/
+
static PyObject *
-select_epoll___enter___impl(pyEpoll_Object *self)
-/*[clinic end generated code: output=ab45d433504db2a0 input=3c22568587efeadb]*/
+select_epoll___enter___impl(pyEpoll_Object *self)
+/*[clinic end generated code: output=ab45d433504db2a0 input=3c22568587efeadb]*/
{
if (self->epfd < 0)
return pyepoll_err_closed();
@@ -1668,22 +1668,22 @@ select_epoll___enter___impl(pyEpoll_Object *self)
return (PyObject *)self;
}
-/*[clinic input]
-select.epoll.__exit__
-
- exc_type: object = None
- exc_value: object = None
- exc_tb: object = None
- /
-
-[clinic start generated code]*/
-
+/*[clinic input]
+select.epoll.__exit__
+
+ exc_type: object = None
+ exc_value: object = None
+ exc_tb: object = None
+ /
+
+[clinic start generated code]*/
+
static PyObject *
-select_epoll___exit___impl(pyEpoll_Object *self, PyObject *exc_type,
- PyObject *exc_value, PyObject *exc_tb)
-/*[clinic end generated code: output=c480f38ce361748e input=7ae81a5a4c1a98d8]*/
+select_epoll___exit___impl(pyEpoll_Object *self, PyObject *exc_type,
+ PyObject *exc_value, PyObject *exc_tb)
+/*[clinic end generated code: output=c480f38ce361748e input=7ae81a5a4c1a98d8]*/
{
- return PyObject_CallMethodObjArgs((PyObject *)self, _selectstate_global->close, NULL);
+ return PyObject_CallMethodObjArgs((PyObject *)self, _selectstate_global->close, NULL);
}
static PyGetSetDef pyepoll_getsetlist[] = {
@@ -1692,15 +1692,15 @@ static PyGetSetDef pyepoll_getsetlist[] = {
{0},
};
-PyDoc_STRVAR(pyepoll_doc,
-"select.epoll(sizehint=-1, flags=0)\n\
-\n\
-Returns an epolling object\n\
-\n\
-sizehint must be a positive integer or -1 for the default size. The\n\
-sizehint is used to optimize internal data structures. It doesn't limit\n\
-the maximum number of monitored events.");
-
+PyDoc_STRVAR(pyepoll_doc,
+"select.epoll(sizehint=-1, flags=0)\n\
+\n\
+Returns an epolling object\n\
+\n\
+sizehint must be a positive integer or -1 for the default size. The\n\
+sizehint is used to optimize internal data structures. It doesn't limit\n\
+the maximum number of monitored events.");
+
#endif /* HAVE_EPOLL */
#ifdef HAVE_KQUEUE
@@ -1757,14 +1757,14 @@ typedef struct {
struct kevent e;
} kqueue_event_Object;
-#define kqueue_event_Check(op) (PyObject_TypeCheck((op), _selectstate_global->kqueue_event_Type))
+#define kqueue_event_Check(op) (PyObject_TypeCheck((op), _selectstate_global->kqueue_event_Type))
typedef struct {
PyObject_HEAD
SOCKET kqfd; /* kqueue control fd */
} kqueue_queue_Object;
-#define kqueue_queue_Check(op) (PyObject_TypeCheck((op), _selectstate_global->kqueue_queue_Type))
+#define kqueue_queue_Check(op) (PyObject_TypeCheck((op), _selectstate_global->kqueue_queue_Type))
#if (SIZEOF_UINTPTR_T != SIZEOF_VOID_P)
# error uintptr_t does not match void *!
@@ -1924,24 +1924,24 @@ kqueue_event_richcompare(kqueue_event_Object *s, kqueue_event_Object *o,
Py_RETURN_RICHCOMPARE(result, 0, op);
}
-static PyType_Slot kqueue_event_Type_slots[] = {
- {Py_tp_doc, (void*)kqueue_event_doc},
- {Py_tp_init, kqueue_event_init},
- {Py_tp_members, kqueue_event_members},
- {Py_tp_new, PyType_GenericNew},
- {Py_tp_repr, kqueue_event_repr},
- {Py_tp_richcompare, kqueue_event_richcompare},
- {0, 0},
-};
-
-static PyType_Spec kqueue_event_Type_spec = {
- "select.kevent",
- sizeof(kqueue_event_Object),
- 0,
- Py_TPFLAGS_DEFAULT,
- kqueue_event_Type_slots
-};
-
+static PyType_Slot kqueue_event_Type_slots[] = {
+ {Py_tp_doc, (void*)kqueue_event_doc},
+ {Py_tp_init, kqueue_event_init},
+ {Py_tp_members, kqueue_event_members},
+ {Py_tp_new, PyType_GenericNew},
+ {Py_tp_repr, kqueue_event_repr},
+ {Py_tp_richcompare, kqueue_event_richcompare},
+ {0, 0},
+};
+
+static PyType_Spec kqueue_event_Type_spec = {
+ "select.kevent",
+ sizeof(kqueue_event_Object),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ kqueue_event_Type_slots
+};
+
static PyObject *
kqueue_queue_err_closed(void)
{
@@ -1968,10 +1968,10 @@ static PyObject *
newKqueue_Object(PyTypeObject *type, SOCKET fd)
{
kqueue_queue_Object *self;
- assert(type != NULL);
- allocfunc queue_alloc = PyType_GetSlot(type, Py_tp_alloc);
- assert(queue_alloc != NULL);
- self = (kqueue_queue_Object *) queue_alloc(type, 0);
+ assert(type != NULL);
+ allocfunc queue_alloc = PyType_GetSlot(type, Py_tp_alloc);
+ assert(queue_alloc != NULL);
+ self = (kqueue_queue_Object *) queue_alloc(type, 0);
if (self == NULL) {
return NULL;
}
@@ -1999,28 +1999,28 @@ newKqueue_Object(PyTypeObject *type, SOCKET fd)
return (PyObject *)self;
}
-/*[clinic input]
-@classmethod
-select.kqueue.__new__
-
-Kqueue syscall wrapper.
-
-For example, to start watching a socket for input:
->>> kq = kqueue()
->>> sock = socket()
->>> sock.connect((host, port))
->>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_ADD)], 0)
-
-To wait one second for it to become writeable:
->>> kq.control(None, 1, 1000)
-
-To stop listening:
->>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_DELETE)], 0)
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+select.kqueue.__new__
+
+Kqueue syscall wrapper.
+
+For example, to start watching a socket for input:
+>>> kq = kqueue()
+>>> sock = socket()
+>>> sock.connect((host, port))
+>>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_ADD)], 0)
+
+To wait one second for it to become writeable:
+>>> kq.control(None, 1, 1000)
+
+To stop listening:
+>>> kq.control([kevent(sock, KQ_FILTER_WRITE, KQ_EV_DELETE)], 0)
+[clinic start generated code]*/
+
static PyObject *
-select_kqueue_impl(PyTypeObject *type)
-/*[clinic end generated code: output=e0ff89f154d56236 input=cf625e49218366e8]*/
+select_kqueue_impl(PyTypeObject *type)
+/*[clinic end generated code: output=e0ff89f154d56236 input=cf625e49218366e8]*/
{
return newKqueue_Object(type, -1);
}
@@ -2028,24 +2028,24 @@ select_kqueue_impl(PyTypeObject *type)
static void
kqueue_queue_dealloc(kqueue_queue_Object *self)
{
- PyTypeObject* type = Py_TYPE(self);
+ PyTypeObject* type = Py_TYPE(self);
kqueue_queue_internal_close(self);
- freefunc kqueue_free = PyType_GetSlot(type, Py_tp_free);
- kqueue_free((PyObject *)self);
- Py_DECREF((PyObject *)type);
-}
-
-/*[clinic input]
-select.kqueue.close
-
-Close the kqueue control file descriptor.
-
-Further operations on the kqueue object will raise an exception.
-[clinic start generated code]*/
-
-static PyObject *
-select_kqueue_close_impl(kqueue_queue_Object *self)
-/*[clinic end generated code: output=d1c7df0b407a4bc1 input=0b12d95430e0634c]*/
+ freefunc kqueue_free = PyType_GetSlot(type, Py_tp_free);
+ kqueue_free((PyObject *)self);
+ Py_DECREF((PyObject *)type);
+}
+
+/*[clinic input]
+select.kqueue.close
+
+Close the kqueue control file descriptor.
+
+Further operations on the kqueue object will raise an exception.
+[clinic start generated code]*/
+
+static PyObject *
+select_kqueue_close_impl(kqueue_queue_Object *self)
+/*[clinic end generated code: output=d1c7df0b407a4bc1 input=0b12d95430e0634c]*/
{
errno = kqueue_queue_internal_close(self);
if (errno < 0) {
@@ -2064,60 +2064,60 @@ kqueue_queue_get_closed(kqueue_queue_Object *self, void *Py_UNUSED(ignored))
Py_RETURN_FALSE;
}
-/*[clinic input]
-select.kqueue.fileno
-
-Return the kqueue control file descriptor.
-[clinic start generated code]*/
-
-static PyObject *
-select_kqueue_fileno_impl(kqueue_queue_Object *self)
-/*[clinic end generated code: output=716f46112a4f6e5c input=41911c539ca2b0ca]*/
+/*[clinic input]
+select.kqueue.fileno
+
+Return the kqueue control file descriptor.
+[clinic start generated code]*/
+
+static PyObject *
+select_kqueue_fileno_impl(kqueue_queue_Object *self)
+/*[clinic end generated code: output=716f46112a4f6e5c input=41911c539ca2b0ca]*/
{
if (self->kqfd < 0)
return kqueue_queue_err_closed();
return PyLong_FromLong(self->kqfd);
}
-/*[clinic input]
-@classmethod
-select.kqueue.fromfd
-
- fd: int
- /
-
-Create a kqueue object from a given control fd.
-[clinic start generated code]*/
-
-static PyObject *
-select_kqueue_fromfd_impl(PyTypeObject *type, int fd)
-/*[clinic end generated code: output=d02c3c7dc538a653 input=f6172a48ca4ecdd0]*/
-{
- SOCKET s_fd = (SOCKET)fd;
-
- return newKqueue_Object(type, s_fd);
-}
-
-/*[clinic input]
-select.kqueue.control
-
- changelist: object
- Must be an iterable of kevent objects describing the changes to be made
- to the kernel's watch list or None.
- maxevents: int
- The maximum number of events that the kernel will return.
- timeout as otimeout: object = None
- The maximum time to wait in seconds, or else None to wait forever.
- This accepts floats for smaller timeouts, too.
- /
-
-Calls the kernel kevent function.
-[clinic start generated code]*/
-
+/*[clinic input]
+@classmethod
+select.kqueue.fromfd
+
+ fd: int
+ /
+
+Create a kqueue object from a given control fd.
+[clinic start generated code]*/
+
+static PyObject *
+select_kqueue_fromfd_impl(PyTypeObject *type, int fd)
+/*[clinic end generated code: output=d02c3c7dc538a653 input=f6172a48ca4ecdd0]*/
+{
+ SOCKET s_fd = (SOCKET)fd;
+
+ return newKqueue_Object(type, s_fd);
+}
+
+/*[clinic input]
+select.kqueue.control
+
+ changelist: object
+ Must be an iterable of kevent objects describing the changes to be made
+ to the kernel's watch list or None.
+ maxevents: int
+ The maximum number of events that the kernel will return.
+ timeout as otimeout: object = None
+ The maximum time to wait in seconds, or else None to wait forever.
+ This accepts floats for smaller timeouts, too.
+ /
+
+Calls the kernel kevent function.
+[clinic start generated code]*/
+
static PyObject *
-select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
- int maxevents, PyObject *otimeout)
-/*[clinic end generated code: output=81324ff5130db7ae input=59c4e30811209c47]*/
+select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
+ int maxevents, PyObject *otimeout)
+/*[clinic end generated code: output=81324ff5130db7ae input=59c4e30811209c47]*/
{
int gotevents = 0;
int nchanges = 0;
@@ -2133,14 +2133,14 @@ select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
if (self->kqfd < 0)
return kqueue_queue_err_closed();
- if (maxevents < 0) {
+ if (maxevents < 0) {
PyErr_Format(PyExc_ValueError,
"Length of eventlist must be 0 or positive, got %d",
- maxevents);
+ maxevents);
return NULL;
}
- if (otimeout == Py_None) {
+ if (otimeout == Py_None) {
ptimeoutspec = NULL;
}
else {
@@ -2149,7 +2149,7 @@ select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
PyErr_Format(PyExc_TypeError,
"timeout argument must be a number "
"or None, got %.200s",
- _PyType_Name(Py_TYPE(otimeout)));
+ _PyType_Name(Py_TYPE(otimeout)));
return NULL;
}
@@ -2164,8 +2164,8 @@ select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
ptimeoutspec = &timeoutspec;
}
- if (changelist != Py_None) {
- seq = PySequence_Fast(changelist, "changelist is not iterable");
+ if (changelist != Py_None) {
+ seq = PySequence_Fast(changelist, "changelist is not iterable");
if (seq == NULL) {
return NULL;
}
@@ -2195,8 +2195,8 @@ select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
}
/* event list */
- if (maxevents) {
- evl = PyMem_New(struct kevent, maxevents);
+ if (maxevents) {
+ evl = PyMem_New(struct kevent, maxevents);
if (evl == NULL) {
PyErr_NoMemory();
goto error;
@@ -2210,7 +2210,7 @@ select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
Py_BEGIN_ALLOW_THREADS
errno = 0;
gotevents = kevent(self->kqfd, chl, nchanges,
- evl, maxevents, ptimeoutspec);
+ evl, maxevents, ptimeoutspec);
Py_END_ALLOW_THREADS
if (errno != EINTR)
@@ -2245,7 +2245,7 @@ select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
for (i = 0; i < gotevents; i++) {
kqueue_event_Object *ch;
- ch = PyObject_New(kqueue_event_Object, _selectstate_global->kqueue_event_Type);
+ ch = PyObject_New(kqueue_event_Object, _selectstate_global->kqueue_event_Type);
if (ch == NULL) {
goto error;
}
@@ -2264,123 +2264,123 @@ select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
return NULL;
}
-static PyGetSetDef kqueue_queue_getsetlist[] = {
- {"closed", (getter)kqueue_queue_get_closed, NULL,
- "True if the kqueue handler is closed"},
- {0},
-};
-
-#endif /* HAVE_KQUEUE */
-
-
-/* ************************************************************************ */
-
-#include "clinic/selectmodule.c.h"
-
-#if defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)
-
-static PyMethodDef poll_methods[] = {
- SELECT_POLL_REGISTER_METHODDEF
- SELECT_POLL_MODIFY_METHODDEF
- SELECT_POLL_UNREGISTER_METHODDEF
- SELECT_POLL_POLL_METHODDEF
- {NULL, NULL} /* sentinel */
-};
-
-
-static PyType_Slot poll_Type_slots[] = {
- {Py_tp_dealloc, poll_dealloc},
- {Py_tp_methods, poll_methods},
- {Py_tp_new, poll_new},
- {0, 0},
-};
-
-static PyType_Spec poll_Type_spec = {
- "select.poll",
- sizeof(pollObject),
- 0,
- Py_TPFLAGS_DEFAULT,
- poll_Type_slots
-};
-
-#ifdef HAVE_SYS_DEVPOLL_H
-
-static PyMethodDef devpoll_methods[] = {
- SELECT_DEVPOLL_REGISTER_METHODDEF
- SELECT_DEVPOLL_MODIFY_METHODDEF
- SELECT_DEVPOLL_UNREGISTER_METHODDEF
- SELECT_DEVPOLL_POLL_METHODDEF
- SELECT_DEVPOLL_CLOSE_METHODDEF
- SELECT_DEVPOLL_FILENO_METHODDEF
- {NULL, NULL} /* sentinel */
-};
-
-#endif /* HAVE_SYS_DEVPOLL_H */
-
-#endif /* HAVE_POLL */
-
-#ifdef HAVE_EPOLL
-
-static PyMethodDef pyepoll_methods[] = {
- SELECT_EPOLL_FROMFD_METHODDEF
- SELECT_EPOLL_CLOSE_METHODDEF
- SELECT_EPOLL_FILENO_METHODDEF
- SELECT_EPOLL_MODIFY_METHODDEF
- SELECT_EPOLL_REGISTER_METHODDEF
- SELECT_EPOLL_UNREGISTER_METHODDEF
- SELECT_EPOLL_POLL_METHODDEF
- SELECT_EPOLL___ENTER___METHODDEF
- SELECT_EPOLL___EXIT___METHODDEF
+static PyGetSetDef kqueue_queue_getsetlist[] = {
+ {"closed", (getter)kqueue_queue_get_closed, NULL,
+ "True if the kqueue handler is closed"},
+ {0},
+};
+
+#endif /* HAVE_KQUEUE */
+
+
+/* ************************************************************************ */
+
+#include "clinic/selectmodule.c.h"
+
+#if defined(HAVE_POLL) && !defined(HAVE_BROKEN_POLL)
+
+static PyMethodDef poll_methods[] = {
+ SELECT_POLL_REGISTER_METHODDEF
+ SELECT_POLL_MODIFY_METHODDEF
+ SELECT_POLL_UNREGISTER_METHODDEF
+ SELECT_POLL_POLL_METHODDEF
+ {NULL, NULL} /* sentinel */
+};
+
+
+static PyType_Slot poll_Type_slots[] = {
+ {Py_tp_dealloc, poll_dealloc},
+ {Py_tp_methods, poll_methods},
+ {Py_tp_new, poll_new},
+ {0, 0},
+};
+
+static PyType_Spec poll_Type_spec = {
+ "select.poll",
+ sizeof(pollObject),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ poll_Type_slots
+};
+
+#ifdef HAVE_SYS_DEVPOLL_H
+
+static PyMethodDef devpoll_methods[] = {
+ SELECT_DEVPOLL_REGISTER_METHODDEF
+ SELECT_DEVPOLL_MODIFY_METHODDEF
+ SELECT_DEVPOLL_UNREGISTER_METHODDEF
+ SELECT_DEVPOLL_POLL_METHODDEF
+ SELECT_DEVPOLL_CLOSE_METHODDEF
+ SELECT_DEVPOLL_FILENO_METHODDEF
+ {NULL, NULL} /* sentinel */
+};
+
+#endif /* HAVE_SYS_DEVPOLL_H */
+
+#endif /* HAVE_POLL */
+
+#ifdef HAVE_EPOLL
+
+static PyMethodDef pyepoll_methods[] = {
+ SELECT_EPOLL_FROMFD_METHODDEF
+ SELECT_EPOLL_CLOSE_METHODDEF
+ SELECT_EPOLL_FILENO_METHODDEF
+ SELECT_EPOLL_MODIFY_METHODDEF
+ SELECT_EPOLL_REGISTER_METHODDEF
+ SELECT_EPOLL_UNREGISTER_METHODDEF
+ SELECT_EPOLL_POLL_METHODDEF
+ SELECT_EPOLL___ENTER___METHODDEF
+ SELECT_EPOLL___EXIT___METHODDEF
+ {NULL, NULL},
+};
+
+static PyType_Slot pyEpoll_Type_slots[] = {
+ {Py_tp_dealloc, pyepoll_dealloc},
+ {Py_tp_doc, (void*)pyepoll_doc},
+ {Py_tp_getattro, PyObject_GenericGetAttr},
+ {Py_tp_getset, pyepoll_getsetlist},
+ {Py_tp_methods, pyepoll_methods},
+ {Py_tp_new, select_epoll},
+ {0, 0},
+};
+
+static PyType_Spec pyEpoll_Type_spec = {
+ "select.epoll",
+ sizeof(pyEpoll_Object),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ pyEpoll_Type_slots
+};
+
+#endif /* HAVE_EPOLL */
+
+#ifdef HAVE_KQUEUE
+
+static PyMethodDef kqueue_queue_methods[] = {
+ SELECT_KQUEUE_FROMFD_METHODDEF
+ SELECT_KQUEUE_CLOSE_METHODDEF
+ SELECT_KQUEUE_FILENO_METHODDEF
+ SELECT_KQUEUE_CONTROL_METHODDEF
{NULL, NULL},
};
-static PyType_Slot pyEpoll_Type_slots[] = {
- {Py_tp_dealloc, pyepoll_dealloc},
- {Py_tp_doc, (void*)pyepoll_doc},
- {Py_tp_getattro, PyObject_GenericGetAttr},
- {Py_tp_getset, pyepoll_getsetlist},
- {Py_tp_methods, pyepoll_methods},
- {Py_tp_new, select_epoll},
- {0, 0},
+static PyType_Slot kqueue_queue_Type_slots[] = {
+ {Py_tp_dealloc, kqueue_queue_dealloc},
+ {Py_tp_doc, (void*)select_kqueue__doc__},
+ {Py_tp_getset, kqueue_queue_getsetlist},
+ {Py_tp_methods, kqueue_queue_methods},
+ {Py_tp_new, select_kqueue},
+ {0, 0},
};
-static PyType_Spec pyEpoll_Type_spec = {
- "select.epoll",
- sizeof(pyEpoll_Object),
- 0,
- Py_TPFLAGS_DEFAULT,
- pyEpoll_Type_slots
-};
-
-#endif /* HAVE_EPOLL */
-
-#ifdef HAVE_KQUEUE
-
-static PyMethodDef kqueue_queue_methods[] = {
- SELECT_KQUEUE_FROMFD_METHODDEF
- SELECT_KQUEUE_CLOSE_METHODDEF
- SELECT_KQUEUE_FILENO_METHODDEF
- SELECT_KQUEUE_CONTROL_METHODDEF
- {NULL, NULL},
-};
-
-static PyType_Slot kqueue_queue_Type_slots[] = {
- {Py_tp_dealloc, kqueue_queue_dealloc},
- {Py_tp_doc, (void*)select_kqueue__doc__},
- {Py_tp_getset, kqueue_queue_getsetlist},
- {Py_tp_methods, kqueue_queue_methods},
- {Py_tp_new, select_kqueue},
- {0, 0},
+static PyType_Spec kqueue_queue_Type_spec = {
+ "select.kqueue",
+ sizeof(kqueue_queue_Object),
+ 0,
+ Py_TPFLAGS_DEFAULT,
+ kqueue_queue_Type_slots
};
-static PyType_Spec kqueue_queue_Type_spec = {
- "select.kqueue",
- sizeof(kqueue_queue_Object),
- 0,
- Py_TPFLAGS_DEFAULT,
- kqueue_queue_Type_slots
-};
-
#endif /* HAVE_KQUEUE */
@@ -2391,9 +2391,9 @@ static PyType_Spec kqueue_queue_Type_spec = {
static PyMethodDef select_methods[] = {
- SELECT_SELECT_METHODDEF
- SELECT_POLL_METHODDEF
- SELECT_DEVPOLL_METHODDEF
+ SELECT_SELECT_METHODDEF
+ SELECT_POLL_METHODDEF
+ SELECT_DEVPOLL_METHODDEF
{0, 0}, /* sentinel */
};
@@ -2404,47 +2404,47 @@ PyDoc_STRVAR(module_doc,
On Windows, only sockets are supported; on Unix, all file descriptors.");
-
-static int
-_select_traverse(PyObject *module, visitproc visit, void *arg)
-{
- Py_VISIT(get_select_state(module)->close);
- Py_VISIT(get_select_state(module)->poll_Type);
- Py_VISIT(get_select_state(module)->devpoll_Type);
- Py_VISIT(get_select_state(module)->pyEpoll_Type);
- Py_VISIT(get_select_state(module)->kqueue_event_Type);
- Py_VISIT(get_select_state(module)->kqueue_queue_Type);
- return 0;
-}
-
-static int
-_select_clear(PyObject *module)
-{
- Py_CLEAR(get_select_state(module)->close);
- Py_CLEAR(get_select_state(module)->poll_Type);
- Py_CLEAR(get_select_state(module)->devpoll_Type);
- Py_CLEAR(get_select_state(module)->pyEpoll_Type);
- Py_CLEAR(get_select_state(module)->kqueue_event_Type);
- Py_CLEAR(get_select_state(module)->kqueue_queue_Type);
- return 0;
-}
-
-static void
-_select_free(void *module)
-{
- _select_clear((PyObject *)module);
-}
-
+
+static int
+_select_traverse(PyObject *module, visitproc visit, void *arg)
+{
+ Py_VISIT(get_select_state(module)->close);
+ Py_VISIT(get_select_state(module)->poll_Type);
+ Py_VISIT(get_select_state(module)->devpoll_Type);
+ Py_VISIT(get_select_state(module)->pyEpoll_Type);
+ Py_VISIT(get_select_state(module)->kqueue_event_Type);
+ Py_VISIT(get_select_state(module)->kqueue_queue_Type);
+ return 0;
+}
+
+static int
+_select_clear(PyObject *module)
+{
+ Py_CLEAR(get_select_state(module)->close);
+ Py_CLEAR(get_select_state(module)->poll_Type);
+ Py_CLEAR(get_select_state(module)->devpoll_Type);
+ Py_CLEAR(get_select_state(module)->pyEpoll_Type);
+ Py_CLEAR(get_select_state(module)->kqueue_event_Type);
+ Py_CLEAR(get_select_state(module)->kqueue_queue_Type);
+ return 0;
+}
+
+static void
+_select_free(void *module)
+{
+ _select_clear((PyObject *)module);
+}
+
static struct PyModuleDef selectmodule = {
PyModuleDef_HEAD_INIT,
"select",
module_doc,
- sizeof(_selectstate),
+ sizeof(_selectstate),
select_methods,
NULL,
- _select_traverse,
- _select_clear,
- _select_free,
+ _select_traverse,
+ _select_clear,
+ _select_free,
};
PyMODINIT_FUNC
@@ -2455,8 +2455,8 @@ PyInit_select(void)
if (m == NULL)
return NULL;
- get_select_state(m)->close = PyUnicode_InternFromString("close");
-
+ get_select_state(m)->close = PyUnicode_InternFromString("close");
+
Py_INCREF(PyExc_OSError);
PyModule_AddObject(m, "error", PyExc_OSError);
@@ -2478,12 +2478,12 @@ PyInit_select(void)
#else
{
#endif
- PyObject *poll_Type = PyType_FromSpec(&poll_Type_spec);
- if (poll_Type == NULL)
+ PyObject *poll_Type = PyType_FromSpec(&poll_Type_spec);
+ if (poll_Type == NULL)
return NULL;
- get_select_state(m)->poll_Type = (PyTypeObject *)poll_Type;
- Py_INCREF(poll_Type);
-
+ get_select_state(m)->poll_Type = (PyTypeObject *)poll_Type;
+ Py_INCREF(poll_Type);
+
PyModule_AddIntMacro(m, POLLIN);
PyModule_AddIntMacro(m, POLLPRI);
PyModule_AddIntMacro(m, POLLOUT);
@@ -2514,20 +2514,20 @@ PyInit_select(void)
#endif /* HAVE_POLL */
#ifdef HAVE_SYS_DEVPOLL_H
- PyObject *devpoll_Type = PyType_FromSpec(&devpoll_Type_spec);
- if (devpoll_Type == NULL)
+ PyObject *devpoll_Type = PyType_FromSpec(&devpoll_Type_spec);
+ if (devpoll_Type == NULL)
return NULL;
- get_select_state(m)->devpoll_Type = (PyTypeObject *)devpoll_Type;
- Py_INCREF(devpoll_Type);
+ get_select_state(m)->devpoll_Type = (PyTypeObject *)devpoll_Type;
+ Py_INCREF(devpoll_Type);
#endif
#ifdef HAVE_EPOLL
- PyObject *pyEpoll_Type = PyType_FromSpec(&pyEpoll_Type_spec);
- if (pyEpoll_Type == NULL)
+ PyObject *pyEpoll_Type = PyType_FromSpec(&pyEpoll_Type_spec);
+ if (pyEpoll_Type == NULL)
return NULL;
- get_select_state(m)->pyEpoll_Type = (PyTypeObject *)pyEpoll_Type;
- Py_INCREF(pyEpoll_Type);
- PyModule_AddObject(m, "epoll", (PyObject *)get_select_state(m)->pyEpoll_Type);
+ get_select_state(m)->pyEpoll_Type = (PyTypeObject *)pyEpoll_Type;
+ Py_INCREF(pyEpoll_Type);
+ PyModule_AddObject(m, "epoll", (PyObject *)get_select_state(m)->pyEpoll_Type);
PyModule_AddIntMacro(m, EPOLLIN);
PyModule_AddIntMacro(m, EPOLLOUT);
@@ -2569,19 +2569,19 @@ PyInit_select(void)
#endif /* HAVE_EPOLL */
#ifdef HAVE_KQUEUE
- PyObject *kqueue_event_Type = PyType_FromSpec(&kqueue_event_Type_spec);
- if (kqueue_event_Type == NULL)
+ PyObject *kqueue_event_Type = PyType_FromSpec(&kqueue_event_Type_spec);
+ if (kqueue_event_Type == NULL)
return NULL;
- get_select_state(m)->kqueue_event_Type = (PyTypeObject *)kqueue_event_Type;
- Py_INCREF(get_select_state(m)->kqueue_event_Type);
- PyModule_AddObject(m, "kevent", kqueue_event_Type);
+ get_select_state(m)->kqueue_event_Type = (PyTypeObject *)kqueue_event_Type;
+ Py_INCREF(get_select_state(m)->kqueue_event_Type);
+ PyModule_AddObject(m, "kevent", kqueue_event_Type);
- PyObject *kqueue_queue_Type = PyType_FromSpec(&kqueue_queue_Type_spec);
- if (kqueue_queue_Type == NULL)
+ PyObject *kqueue_queue_Type = PyType_FromSpec(&kqueue_queue_Type_spec);
+ if (kqueue_queue_Type == NULL)
return NULL;
- get_select_state(m)->kqueue_queue_Type = (PyTypeObject *)kqueue_queue_Type;
- Py_INCREF(get_select_state(m)->kqueue_queue_Type);
- PyModule_AddObject(m, "kqueue", kqueue_queue_Type);
+ get_select_state(m)->kqueue_queue_Type = (PyTypeObject *)kqueue_queue_Type;
+ Py_INCREF(get_select_state(m)->kqueue_queue_Type);
+ PyModule_AddObject(m, "kqueue", kqueue_queue_Type);
/* event filters */
PyModule_AddIntConstant(m, "KQ_FILTER_READ", EVFILT_READ);
diff --git a/contrib/tools/python3/src/Modules/sha1module.c b/contrib/tools/python3/src/Modules/sha1module.c
index 614855f506..44fe8ef7b3 100644
--- a/contrib/tools/python3/src/Modules/sha1module.c
+++ b/contrib/tools/python3/src/Modules/sha1module.c
@@ -74,7 +74,7 @@ typedef struct {
* The library is free for all purposes without any express
* guarantee it works.
*
- * Tom St Denis, tomstdenis@gmail.com, https://www.libtom.net
+ * Tom St Denis, tomstdenis@gmail.com, https://www.libtom.net
*/
/* rotate the hard way (platform optimizations could be done) */
@@ -269,7 +269,7 @@ sha1_done(struct sha1_state *sha1, unsigned char *out)
sha1->curlen = 0;
}
- /* pad up to 56 bytes of zeroes */
+ /* pad up to 56 bytes of zeroes */
while (sha1->curlen < 56) {
sha1->buf[sha1->curlen++] = (unsigned char)0;
}
@@ -446,10 +446,10 @@ static PyTypeObject SHA1type = {
0, /*tp_itemsize*/
/* methods */
SHA1_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -480,15 +480,15 @@ static PyTypeObject SHA1type = {
_sha1.sha1
string: object(c_default="NULL") = b''
- *
- usedforsecurity: bool = True
+ *
+ usedforsecurity: bool = True
Return a new SHA1 hash object; optionally initialized with a string.
[clinic start generated code]*/
static PyObject *
-_sha1_sha1_impl(PyObject *module, PyObject *string, int usedforsecurity)
-/*[clinic end generated code: output=6f8b3af05126e18e input=bd54b68e2bf36a8a]*/
+_sha1_sha1_impl(PyObject *module, PyObject *string, int usedforsecurity)
+/*[clinic end generated code: output=6f8b3af05126e18e input=bd54b68e2bf36a8a]*/
{
SHA1object *new;
Py_buffer buf;
@@ -546,15 +546,15 @@ PyInit__sha1(void)
{
PyObject *m;
- Py_SET_TYPE(&SHA1type, &PyType_Type);
- if (PyType_Ready(&SHA1type) < 0) {
+ Py_SET_TYPE(&SHA1type, &PyType_Type);
+ if (PyType_Ready(&SHA1type) < 0) {
return NULL;
- }
+ }
m = PyModule_Create(&_sha1module);
- if (m == NULL) {
+ if (m == NULL) {
return NULL;
- }
+ }
Py_INCREF((PyObject *)&SHA1type);
PyModule_AddObject(m, "SHA1Type", (PyObject *)&SHA1type);
diff --git a/contrib/tools/python3/src/Modules/sha256module.c b/contrib/tools/python3/src/Modules/sha256module.c
index c3ab835ee0..9b885c7255 100644
--- a/contrib/tools/python3/src/Modules/sha256module.c
+++ b/contrib/tools/python3/src/Modules/sha256module.c
@@ -17,8 +17,8 @@
/* SHA objects */
#include "Python.h"
-#include "pycore_byteswap.h" // _Py_bswap32()
-#include "structmember.h" // PyMemberDef
+#include "pycore_byteswap.h" // _Py_bswap32()
+#include "structmember.h" // PyMemberDef
#include "hashlib.h"
#include "pystrhex.h"
@@ -31,7 +31,7 @@ class SHA256Type "SHAobject *" "&PyType_Type"
/* Some useful types */
typedef unsigned char SHA_BYTE;
-typedef uint32_t SHA_INT32; /* 32-bit integer */
+typedef uint32_t SHA_INT32; /* 32-bit integer */
/* The SHA block size and message digest sizes, in bytes */
@@ -58,8 +58,8 @@ typedef struct {
static void longReverse(SHA_INT32 *buffer, int byteCount)
{
byteCount /= sizeof(*buffer);
- for (; byteCount--; buffer++) {
- *buffer = _Py_bswap32(*buffer);
+ for (; byteCount--; buffer++) {
+ *buffer = _Py_bswap32(*buffer);
}
}
#endif
@@ -93,7 +93,7 @@ static void SHAcopy(SHAobject *src, SHAobject *dest)
* The library is free for all purposes without any express
* guarantee it works.
*
- * Tom St Denis, tomstdenis@iahu.ca, https://www.libtom.net
+ * Tom St Denis, tomstdenis@iahu.ca, https://www.libtom.net
*/
@@ -404,7 +404,7 @@ SHA256Type_copy_impl(SHAobject *self)
{
SHAobject *newobj;
- if (Py_IS_TYPE(self, &SHA256type)) {
+ if (Py_IS_TYPE(self, &SHA256type)) {
if ( (newobj = newSHA256object())==NULL)
return NULL;
} else {
@@ -524,10 +524,10 @@ static PyTypeObject SHA224type = {
0, /*tp_itemsize*/
/* methods */
SHA_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -558,10 +558,10 @@ static PyTypeObject SHA256type = {
0, /*tp_itemsize*/
/* methods */
SHA_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -592,15 +592,15 @@ static PyTypeObject SHA256type = {
_sha256.sha256
string: object(c_default="NULL") = b''
- *
- usedforsecurity: bool = True
+ *
+ usedforsecurity: bool = True
Return a new SHA-256 hash object; optionally initialized with a string.
[clinic start generated code]*/
static PyObject *
-_sha256_sha256_impl(PyObject *module, PyObject *string, int usedforsecurity)
-/*[clinic end generated code: output=a1de327e8e1185cf input=9be86301aeb14ea5]*/
+_sha256_sha256_impl(PyObject *module, PyObject *string, int usedforsecurity)
+/*[clinic end generated code: output=a1de327e8e1185cf input=9be86301aeb14ea5]*/
{
SHAobject *new;
Py_buffer buf;
@@ -634,15 +634,15 @@ _sha256_sha256_impl(PyObject *module, PyObject *string, int usedforsecurity)
_sha256.sha224
string: object(c_default="NULL") = b''
- *
- usedforsecurity: bool = True
+ *
+ usedforsecurity: bool = True
Return a new SHA-224 hash object; optionally initialized with a string.
[clinic start generated code]*/
static PyObject *
-_sha256_sha224_impl(PyObject *module, PyObject *string, int usedforsecurity)
-/*[clinic end generated code: output=08be6b36569bc69c input=9fcfb46e460860ac]*/
+_sha256_sha224_impl(PyObject *module, PyObject *string, int usedforsecurity)
+/*[clinic end generated code: output=08be6b36569bc69c input=9fcfb46e460860ac]*/
{
SHAobject *new;
Py_buffer buf;
@@ -701,14 +701,14 @@ PyInit__sha256(void)
{
PyObject *m;
- Py_SET_TYPE(&SHA224type, &PyType_Type);
- if (PyType_Ready(&SHA224type) < 0) {
+ Py_SET_TYPE(&SHA224type, &PyType_Type);
+ if (PyType_Ready(&SHA224type) < 0) {
return NULL;
- }
- Py_SET_TYPE(&SHA256type, &PyType_Type);
- if (PyType_Ready(&SHA256type) < 0) {
+ }
+ Py_SET_TYPE(&SHA256type, &PyType_Type);
+ if (PyType_Ready(&SHA256type) < 0) {
return NULL;
- }
+ }
m = PyModule_Create(&_sha256module);
if (m == NULL)
diff --git a/contrib/tools/python3/src/Modules/sha512module.c b/contrib/tools/python3/src/Modules/sha512module.c
index 6b8328136a..831160c324 100644
--- a/contrib/tools/python3/src/Modules/sha512module.c
+++ b/contrib/tools/python3/src/Modules/sha512module.c
@@ -17,8 +17,8 @@
/* SHA objects */
#include "Python.h"
-#include "pycore_byteswap.h" // _Py_bswap32()
-#include "structmember.h" // PyMemberDef
+#include "pycore_byteswap.h" // _Py_bswap32()
+#include "structmember.h" // PyMemberDef
#include "hashlib.h"
#include "pystrhex.h"
@@ -31,8 +31,8 @@ class SHA512Type "SHAobject *" "&PyType_Type"
/* Some useful types */
typedef unsigned char SHA_BYTE;
-typedef uint32_t SHA_INT32; /* 32-bit integer */
-typedef uint64_t SHA_INT64; /* 64-bit integer */
+typedef uint32_t SHA_INT32; /* 32-bit integer */
+typedef uint64_t SHA_INT64; /* 64-bit integer */
/* The SHA block size and message digest sizes, in bytes */
@@ -59,8 +59,8 @@ typedef struct {
static void longReverse(SHA_INT64 *buffer, int byteCount)
{
byteCount /= sizeof(*buffer);
- for (; byteCount--; buffer++) {
- *buffer = _Py_bswap64(*buffer);
+ for (; byteCount--; buffer++) {
+ *buffer = _Py_bswap64(*buffer);
}
}
#endif
@@ -94,7 +94,7 @@ static void SHAcopy(SHAobject *src, SHAobject *dest)
* The library is free for all purposes without any express
* guarantee it works.
*
- * Tom St Denis, tomstdenis@iahu.ca, https://www.libtom.net
+ * Tom St Denis, tomstdenis@iahu.ca, https://www.libtom.net
*/
@@ -461,7 +461,7 @@ SHA512Type_copy_impl(SHAobject *self)
{
SHAobject *newobj;
- if (Py_IS_TYPE((PyObject*)self, &SHA512type)) {
+ if (Py_IS_TYPE((PyObject*)self, &SHA512type)) {
if ( (newobj = newSHA512object())==NULL)
return NULL;
} else {
@@ -581,10 +581,10 @@ static PyTypeObject SHA384type = {
0, /*tp_itemsize*/
/* methods */
SHA512_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -615,10 +615,10 @@ static PyTypeObject SHA512type = {
0, /*tp_itemsize*/
/* methods */
SHA512_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -649,15 +649,15 @@ static PyTypeObject SHA512type = {
_sha512.sha512
string: object(c_default="NULL") = b''
- *
- usedforsecurity: bool = True
+ *
+ usedforsecurity: bool = True
Return a new SHA-512 hash object; optionally initialized with a string.
[clinic start generated code]*/
static PyObject *
-_sha512_sha512_impl(PyObject *module, PyObject *string, int usedforsecurity)
-/*[clinic end generated code: output=a8d9e5f9e6a0831c input=23b4daebc2ebb9c9]*/
+_sha512_sha512_impl(PyObject *module, PyObject *string, int usedforsecurity)
+/*[clinic end generated code: output=a8d9e5f9e6a0831c input=23b4daebc2ebb9c9]*/
{
SHAobject *new;
Py_buffer buf;
@@ -691,15 +691,15 @@ _sha512_sha512_impl(PyObject *module, PyObject *string, int usedforsecurity)
_sha512.sha384
string: object(c_default="NULL") = b''
- *
- usedforsecurity: bool = True
+ *
+ usedforsecurity: bool = True
Return a new SHA-384 hash object; optionally initialized with a string.
[clinic start generated code]*/
static PyObject *
-_sha512_sha384_impl(PyObject *module, PyObject *string, int usedforsecurity)
-/*[clinic end generated code: output=da7d594a08027ac3 input=59ef72f039a6b431]*/
+_sha512_sha384_impl(PyObject *module, PyObject *string, int usedforsecurity)
+/*[clinic end generated code: output=da7d594a08027ac3 input=59ef72f039a6b431]*/
{
SHAobject *new;
Py_buffer buf;
@@ -758,19 +758,19 @@ PyInit__sha512(void)
{
PyObject *m;
- Py_SET_TYPE(&SHA384type, &PyType_Type);
- if (PyType_Ready(&SHA384type) < 0) {
+ Py_SET_TYPE(&SHA384type, &PyType_Type);
+ if (PyType_Ready(&SHA384type) < 0) {
return NULL;
- }
- Py_SET_TYPE(&SHA512type, &PyType_Type);
- if (PyType_Ready(&SHA512type) < 0) {
+ }
+ Py_SET_TYPE(&SHA512type, &PyType_Type);
+ if (PyType_Ready(&SHA512type) < 0) {
return NULL;
- }
+ }
m = PyModule_Create(&_sha512module);
- if (m == NULL) {
+ if (m == NULL) {
return NULL;
- }
+ }
Py_INCREF((PyObject *)&SHA384type);
PyModule_AddObject(m, "SHA384Type", (PyObject *)&SHA384type);
diff --git a/contrib/tools/python3/src/Modules/signalmodule.c b/contrib/tools/python3/src/Modules/signalmodule.c
index dad12805ae..e396a4ad8b 100644
--- a/contrib/tools/python3/src/Modules/signalmodule.c
+++ b/contrib/tools/python3/src/Modules/signalmodule.c
@@ -4,12 +4,12 @@
/* XXX Signals should be recorded per thread, now we have thread state. */
#include "Python.h"
-#include "pycore_atomic.h"
-#include "pycore_call.h"
-#include "pycore_ceval.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-
+#include "pycore_atomic.h"
+#include "pycore_call.h"
+#include "pycore_ceval.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+
#ifndef MS_WINDOWS
#include "posixmodule.h"
#endif
@@ -27,9 +27,9 @@
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
-#ifdef HAVE_SYS_SYSCALL_H
-#include <sys/syscall.h>
-#endif
+#ifdef HAVE_SYS_SYSCALL_H
+#include <sys/syscall.h>
+#endif
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
@@ -68,26 +68,26 @@ module signal
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b0301a3bde5fe9d3]*/
-#ifdef HAVE_SETSIG_T
-
-/*[python input]
-
-class sigset_t_converter(CConverter):
- type = 'sigset_t'
- converter = '_Py_Sigset_Converter'
-
-[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=b5689d14466b6823]*/
-#endif
-
+#ifdef HAVE_SETSIG_T
+
+/*[python input]
+
+class sigset_t_converter(CConverter):
+ type = 'sigset_t'
+ converter = '_Py_Sigset_Converter'
+
+[python start generated code]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=b5689d14466b6823]*/
+#endif
+
/*
NOTES ON THE INTERACTION BETWEEN SIGNALS AND THREADS
- We want the following semantics:
+ We want the following semantics:
- only the main thread can set a signal handler
- - only the main thread runs the signal handler
- - signals can be delivered to any thread
+ - only the main thread runs the signal handler
+ - signals can be delivered to any thread
- any thread can get a signal handler
I.e. we don't support "synchronous signals" like SIGFPE (catching
@@ -99,12 +99,12 @@ class sigset_t_converter(CConverter):
We still have the problem that in some implementations signals
generated by the keyboard (e.g. SIGINT) are delivered to all
threads (e.g. SGI), while in others (e.g. Solaris) such signals are
- delivered to one random thread. On Linux, signals are delivered to
- the main thread (unless the main thread is blocking the signal, for
- example because it's already handling the same signal). Since we
- allow signals to be delivered to any thread, this works fine. The
- only oddity is that the thread executing the Python signal handler
- may not be the thread that received the signal.
+ delivered to one random thread. On Linux, signals are delivered to
+ the main thread (unless the main thread is blocking the signal, for
+ example because it's already handling the same signal). Since we
+ allow signals to be delivered to any thread, this works fine. The
+ only oddity is that the thread executing the Python signal handler
+ may not be the thread that received the signal.
*/
static volatile struct {
@@ -209,15 +209,15 @@ It raises KeyboardInterrupt.");
static int
report_wakeup_write_error(void *data)
{
- PyObject *exc, *val, *tb;
+ PyObject *exc, *val, *tb;
int save_errno = errno;
errno = (int) (intptr_t) data;
- PyErr_Fetch(&exc, &val, &tb);
+ PyErr_Fetch(&exc, &val, &tb);
PyErr_SetFromErrno(PyExc_OSError);
PySys_WriteStderr("Exception ignored when trying to write to the "
"signal wakeup fd:\n");
PyErr_WriteUnraisable(NULL);
- PyErr_Restore(exc, val, tb);
+ PyErr_Restore(exc, val, tb);
errno = save_errno;
return 0;
}
@@ -226,8 +226,8 @@ report_wakeup_write_error(void *data)
static int
report_wakeup_send_error(void* data)
{
- PyObject *exc, *val, *tb;
- PyErr_Fetch(&exc, &val, &tb);
+ PyObject *exc, *val, *tb;
+ PyErr_Fetch(&exc, &val, &tb);
/* PyErr_SetExcFromWindowsErr() invokes FormatMessage() which
recognizes the error codes used by both GetLastError() and
WSAGetLastError */
@@ -235,7 +235,7 @@ report_wakeup_send_error(void* data)
PySys_WriteStderr("Exception ignored when trying to send to the "
"signal wakeup fd:\n");
PyErr_WriteUnraisable(NULL);
- PyErr_Restore(exc, val, tb);
+ PyErr_Restore(exc, val, tb);
return 0;
}
#endif /* MS_WINDOWS */
@@ -253,11 +253,11 @@ trip_signal(int sig_num)
cleared in PyErr_CheckSignals() before .tripped. */
_Py_atomic_store(&is_tripped, 1);
- /* Signals are always handled by the main interpreter */
- PyInterpreterState *interp = _PyRuntime.interpreters.main;
-
+ /* Signals are always handled by the main interpreter */
+ PyInterpreterState *interp = _PyRuntime.interpreters.main;
+
/* Notify ceval.c */
- _PyEval_SignalReceived(interp);
+ _PyEval_SignalReceived(interp);
/* And then write to the wakeup fd *after* setting all the globals and
doing the _PyEval_SignalReceived. We used to write to the wakeup fd
@@ -295,11 +295,11 @@ trip_signal(int sig_num)
if (wakeup.warn_on_full_buffer ||
last_error != WSAEWOULDBLOCK)
{
- /* _PyEval_AddPendingCall() isn't signal-safe, but we
+ /* _PyEval_AddPendingCall() isn't signal-safe, but we
still use it for this exceptional case. */
- _PyEval_AddPendingCall(interp,
- report_wakeup_send_error,
- (void *)(intptr_t) last_error);
+ _PyEval_AddPendingCall(interp,
+ report_wakeup_send_error,
+ (void *)(intptr_t) last_error);
}
}
}
@@ -314,11 +314,11 @@ trip_signal(int sig_num)
if (wakeup.warn_on_full_buffer ||
(errno != EWOULDBLOCK && errno != EAGAIN))
{
- /* _PyEval_AddPendingCall() isn't signal-safe, but we
+ /* _PyEval_AddPendingCall() isn't signal-safe, but we
still use it for this exceptional case. */
- _PyEval_AddPendingCall(interp,
- report_wakeup_write_error,
- (void *)(intptr_t)errno);
+ _PyEval_AddPendingCall(interp,
+ report_wakeup_write_error,
+ (void *)(intptr_t)errno);
}
}
}
@@ -330,7 +330,7 @@ signal_handler(int sig_num)
{
int save_errno = errno;
- trip_signal(sig_num);
+ trip_signal(sig_num);
#ifndef HAVE_SIGACTION
#ifdef SIGCHLD
@@ -404,32 +404,32 @@ signal_pause_impl(PyObject *module)
#endif
-/*[clinic input]
-signal.raise_signal
-
- signalnum: int
- /
-
-Send a signal to the executing process.
-[clinic start generated code]*/
-
-static PyObject *
-signal_raise_signal_impl(PyObject *module, int signalnum)
-/*[clinic end generated code: output=e2b014220aa6111d input=e90c0f9a42358de6]*/
-{
- int err;
- Py_BEGIN_ALLOW_THREADS
- _Py_BEGIN_SUPPRESS_IPH
- err = raise(signalnum);
- _Py_END_SUPPRESS_IPH
- Py_END_ALLOW_THREADS
-
- if (err) {
- return PyErr_SetFromErrno(PyExc_OSError);
- }
- Py_RETURN_NONE;
-}
-
+/*[clinic input]
+signal.raise_signal
+
+ signalnum: int
+ /
+
+Send a signal to the executing process.
+[clinic start generated code]*/
+
+static PyObject *
+signal_raise_signal_impl(PyObject *module, int signalnum)
+/*[clinic end generated code: output=e2b014220aa6111d input=e90c0f9a42358de6]*/
+{
+ int err;
+ Py_BEGIN_ALLOW_THREADS
+ _Py_BEGIN_SUPPRESS_IPH
+ err = raise(signalnum);
+ _Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
+
+ if (err) {
+ return PyErr_SetFromErrno(PyExc_OSError);
+ }
+ Py_RETURN_NONE;
+}
+
/*[clinic input]
signal.signal
@@ -472,54 +472,54 @@ signal_signal_impl(PyObject *module, int signalnum, PyObject *handler)
return NULL;
}
#endif
-
- PyThreadState *tstate = _PyThreadState_GET();
- if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "signal only works in main thread "
- "of the main interpreter");
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "signal only works in main thread "
+ "of the main interpreter");
return NULL;
}
if (signalnum < 1 || signalnum >= NSIG) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "signal number out of range");
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "signal number out of range");
return NULL;
}
- if (handler == IgnoreHandler) {
+ if (handler == IgnoreHandler) {
func = SIG_IGN;
- }
- else if (handler == DefaultHandler) {
+ }
+ else if (handler == DefaultHandler) {
func = SIG_DFL;
- }
+ }
else if (!PyCallable_Check(handler)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "signal handler must be signal.SIG_IGN, "
- "signal.SIG_DFL, or a callable object");
- return NULL;
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "signal handler must be signal.SIG_IGN, "
+ "signal.SIG_DFL, or a callable object");
+ return NULL;
}
- else {
+ else {
func = signal_handler;
- }
-
+ }
+
/* Check for pending signals before changing signal handler */
- if (_PyErr_CheckSignalsTstate(tstate)) {
+ if (_PyErr_CheckSignalsTstate(tstate)) {
return NULL;
}
if (PyOS_setsig(signalnum, func) == SIG_ERR) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
-
+
old_handler = Handlers[signalnum].func;
Py_INCREF(handler);
Handlers[signalnum].func = handler;
-
- if (old_handler != NULL) {
+
+ if (old_handler != NULL) {
return old_handler;
- }
- else {
+ }
+ else {
Py_RETURN_NONE;
- }
+ }
}
@@ -558,84 +558,84 @@ signal_getsignal_impl(PyObject *module, int signalnum)
}
}
-
-/*[clinic input]
-signal.strsignal
-
- signalnum: int
- /
-
-Return the system description of the given signal.
-
-The return values can be such as "Interrupt", "Segmentation fault", etc.
-Returns None if the signal is not recognized.
-[clinic start generated code]*/
-
-static PyObject *
-signal_strsignal_impl(PyObject *module, int signalnum)
-/*[clinic end generated code: output=44e12e1e3b666261 input=b77914b03f856c74]*/
-{
- char *res;
-
- if (signalnum < 1 || signalnum >= NSIG) {
- PyErr_SetString(PyExc_ValueError,
- "signal number out of range");
- return NULL;
- }
-
-#ifndef HAVE_STRSIGNAL
- switch (signalnum) {
- /* Though being a UNIX, HP-UX does not provide strsignal(3). */
-#ifndef MS_WINDOWS
- case SIGHUP:
- res = "Hangup";
- break;
- case SIGALRM:
- res = "Alarm clock";
- break;
- case SIGPIPE:
- res = "Broken pipe";
- break;
- case SIGQUIT:
- res = "Quit";
- break;
- case SIGCHLD:
- res = "Child exited";
- break;
-#endif
- /* Custom redefinition of POSIX signals allowed on Windows. */
- case SIGINT:
- res = "Interrupt";
- break;
- case SIGILL:
- res = "Illegal instruction";
- break;
- case SIGABRT:
- res = "Aborted";
- break;
- case SIGFPE:
- res = "Floating point exception";
- break;
- case SIGSEGV:
- res = "Segmentation fault";
- break;
- case SIGTERM:
- res = "Terminated";
- break;
- default:
- Py_RETURN_NONE;
- }
-#else
- errno = 0;
- res = strsignal(signalnum);
-
- if (errno || res == NULL || strstr(res, "Unknown signal") != NULL)
- Py_RETURN_NONE;
-#endif
-
- return Py_BuildValue("s", res);
-}
-
+
+/*[clinic input]
+signal.strsignal
+
+ signalnum: int
+ /
+
+Return the system description of the given signal.
+
+The return values can be such as "Interrupt", "Segmentation fault", etc.
+Returns None if the signal is not recognized.
+[clinic start generated code]*/
+
+static PyObject *
+signal_strsignal_impl(PyObject *module, int signalnum)
+/*[clinic end generated code: output=44e12e1e3b666261 input=b77914b03f856c74]*/
+{
+ char *res;
+
+ if (signalnum < 1 || signalnum >= NSIG) {
+ PyErr_SetString(PyExc_ValueError,
+ "signal number out of range");
+ return NULL;
+ }
+
+#ifndef HAVE_STRSIGNAL
+ switch (signalnum) {
+ /* Though being a UNIX, HP-UX does not provide strsignal(3). */
+#ifndef MS_WINDOWS
+ case SIGHUP:
+ res = "Hangup";
+ break;
+ case SIGALRM:
+ res = "Alarm clock";
+ break;
+ case SIGPIPE:
+ res = "Broken pipe";
+ break;
+ case SIGQUIT:
+ res = "Quit";
+ break;
+ case SIGCHLD:
+ res = "Child exited";
+ break;
+#endif
+ /* Custom redefinition of POSIX signals allowed on Windows. */
+ case SIGINT:
+ res = "Interrupt";
+ break;
+ case SIGILL:
+ res = "Illegal instruction";
+ break;
+ case SIGABRT:
+ res = "Aborted";
+ break;
+ case SIGFPE:
+ res = "Floating point exception";
+ break;
+ case SIGSEGV:
+ res = "Segmentation fault";
+ break;
+ case SIGTERM:
+ res = "Terminated";
+ break;
+ default:
+ Py_RETURN_NONE;
+ }
+#else
+ errno = 0;
+ res = strsignal(signalnum);
+
+ if (errno || res == NULL || strstr(res, "Unknown signal") != NULL)
+ Py_RETURN_NONE;
+#endif
+
+ return Py_BuildValue("s", res);
+}
+
#ifdef HAVE_SIGINTERRUPT
/*[clinic input]
@@ -701,11 +701,11 @@ signal_set_wakeup_fd(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
#endif
- PyThreadState *tstate = _PyThreadState_GET();
- if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "set_wakeup_fd only works in main thread "
- "of the main interpreter");
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "set_wakeup_fd only works in main thread "
+ "of the main interpreter");
return NULL;
}
@@ -731,13 +731,13 @@ signal_set_wakeup_fd(PyObject *self, PyObject *args, PyObject *kwds)
fd = (int)sockfd;
if ((SOCKET_T)fd != sockfd) {
- _PyErr_SetString(tstate, PyExc_ValueError, "invalid fd");
+ _PyErr_SetString(tstate, PyExc_ValueError, "invalid fd");
return NULL;
}
- if (_Py_fstat(fd, &status) != 0) {
+ if (_Py_fstat(fd, &status) != 0) {
return NULL;
- }
+ }
/* on Windows, a file cannot be set to non-blocking mode */
}
@@ -769,9 +769,9 @@ signal_set_wakeup_fd(PyObject *self, PyObject *args, PyObject *kwds)
if (blocking < 0)
return NULL;
if (blocking) {
- _PyErr_Format(tstate, PyExc_ValueError,
- "the fd %i must be in non-blocking mode",
- fd);
+ _PyErr_Format(tstate, PyExc_ValueError,
+ "the fd %i must be in non-blocking mode",
+ fd);
return NULL;
}
}
@@ -883,7 +883,7 @@ signal_getitimer_impl(PyObject *module, int which)
#endif
-#ifdef HAVE_SIGSET_T
+#ifdef HAVE_SIGSET_T
#if defined(PYPTHREAD_SIGMASK) || defined(HAVE_SIGPENDING)
static PyObject*
sigset_to_set(sigset_t mask)
@@ -926,20 +926,20 @@ sigset_to_set(sigset_t mask)
signal.pthread_sigmask
how: int
- mask: sigset_t
+ mask: sigset_t
/
Fetch and/or change the signal mask of the calling thread.
[clinic start generated code]*/
static PyObject *
-signal_pthread_sigmask_impl(PyObject *module, int how, sigset_t mask)
-/*[clinic end generated code: output=0562c0fb192981a8 input=85bcebda442fa77f]*/
+signal_pthread_sigmask_impl(PyObject *module, int how, sigset_t mask)
+/*[clinic end generated code: output=0562c0fb192981a8 input=85bcebda442fa77f]*/
{
- sigset_t previous;
+ sigset_t previous;
int err;
- err = pthread_sigmask(how, &mask, &previous);
+ err = pthread_sigmask(how, &mask, &previous);
if (err != 0) {
errno = err;
PyErr_SetFromErrno(PyExc_OSError);
@@ -987,7 +987,7 @@ signal_sigpending_impl(PyObject *module)
/*[clinic input]
signal.sigwait
- sigset: sigset_t
+ sigset: sigset_t
/
Wait for a signal.
@@ -998,13 +998,13 @@ and returns the signal number.
[clinic start generated code]*/
static PyObject *
-signal_sigwait_impl(PyObject *module, sigset_t sigset)
-/*[clinic end generated code: output=f43770699d682f96 input=a6fbd47b1086d119]*/
+signal_sigwait_impl(PyObject *module, sigset_t sigset)
+/*[clinic end generated code: output=f43770699d682f96 input=a6fbd47b1086d119]*/
{
int err, signum;
Py_BEGIN_ALLOW_THREADS
- err = sigwait(&sigset, &signum);
+ err = sigwait(&sigset, &signum);
Py_END_ALLOW_THREADS
if (err) {
errno = err;
@@ -1015,50 +1015,50 @@ signal_sigwait_impl(PyObject *module, sigset_t sigset)
}
#endif /* #ifdef HAVE_SIGWAIT */
-#endif /* #ifdef HAVE_SIGSET_T */
-
-#if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)
-
-/*[clinic input]
-signal.valid_signals
-
-Return a set of valid signal numbers on this platform.
-
-The signal numbers returned by this function can be safely passed to
-functions like `pthread_sigmask`.
-[clinic start generated code]*/
-
-static PyObject *
-signal_valid_signals_impl(PyObject *module)
-/*[clinic end generated code: output=1609cffbcfcf1314 input=86a3717ff25288f2]*/
-{
-#ifdef MS_WINDOWS
-#ifdef SIGBREAK
- PyObject *tup = Py_BuildValue("(iiiiiii)", SIGABRT, SIGBREAK, SIGFPE,
- SIGILL, SIGINT, SIGSEGV, SIGTERM);
-#else
- PyObject *tup = Py_BuildValue("(iiiiii)", SIGABRT, SIGFPE, SIGILL,
- SIGINT, SIGSEGV, SIGTERM);
-#endif
- if (tup == NULL) {
- return NULL;
- }
- PyObject *set = PySet_New(tup);
- Py_DECREF(tup);
- return set;
-#else
- sigset_t mask;
- if (sigemptyset(&mask) || sigfillset(&mask)) {
- return PyErr_SetFromErrno(PyExc_OSError);
- }
- return sigset_to_set(mask);
-#endif
-}
-
-#endif /* #if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS) */
-
-
-
+#endif /* #ifdef HAVE_SIGSET_T */
+
+#if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)
+
+/*[clinic input]
+signal.valid_signals
+
+Return a set of valid signal numbers on this platform.
+
+The signal numbers returned by this function can be safely passed to
+functions like `pthread_sigmask`.
+[clinic start generated code]*/
+
+static PyObject *
+signal_valid_signals_impl(PyObject *module)
+/*[clinic end generated code: output=1609cffbcfcf1314 input=86a3717ff25288f2]*/
+{
+#ifdef MS_WINDOWS
+#ifdef SIGBREAK
+ PyObject *tup = Py_BuildValue("(iiiiiii)", SIGABRT, SIGBREAK, SIGFPE,
+ SIGILL, SIGINT, SIGSEGV, SIGTERM);
+#else
+ PyObject *tup = Py_BuildValue("(iiiiii)", SIGABRT, SIGFPE, SIGILL,
+ SIGINT, SIGSEGV, SIGTERM);
+#endif
+ if (tup == NULL) {
+ return NULL;
+ }
+ PyObject *set = PySet_New(tup);
+ Py_DECREF(tup);
+ return set;
+#else
+ sigset_t mask;
+ if (sigemptyset(&mask) || sigfillset(&mask)) {
+ return PyErr_SetFromErrno(PyExc_OSError);
+ }
+ return sigset_to_set(mask);
+#endif
+}
+
+#endif /* #if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS) */
+
+
+
#if defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT)
static int initialized;
static PyStructSequence_Field struct_siginfo_fields[] = {
@@ -1096,18 +1096,18 @@ fill_siginfo(siginfo_t *si)
PyStructSequence_SET_ITEM(result, 0, PyLong_FromLong((long)(si->si_signo)));
PyStructSequence_SET_ITEM(result, 1, PyLong_FromLong((long)(si->si_code)));
-#ifdef __VXWORKS__
- PyStructSequence_SET_ITEM(result, 2, PyLong_FromLong(0L));
- PyStructSequence_SET_ITEM(result, 3, PyLong_FromLong(0L));
- PyStructSequence_SET_ITEM(result, 4, PyLong_FromLong(0L));
- PyStructSequence_SET_ITEM(result, 5, PyLong_FromLong(0L));
-#else
+#ifdef __VXWORKS__
+ PyStructSequence_SET_ITEM(result, 2, PyLong_FromLong(0L));
+ PyStructSequence_SET_ITEM(result, 3, PyLong_FromLong(0L));
+ PyStructSequence_SET_ITEM(result, 4, PyLong_FromLong(0L));
+ PyStructSequence_SET_ITEM(result, 5, PyLong_FromLong(0L));
+#else
PyStructSequence_SET_ITEM(result, 2, PyLong_FromLong((long)(si->si_errno)));
PyStructSequence_SET_ITEM(result, 3, PyLong_FromPid(si->si_pid));
PyStructSequence_SET_ITEM(result, 4, _PyLong_FromUid(si->si_uid));
PyStructSequence_SET_ITEM(result, 5,
PyLong_FromLong((long)(si->si_status)));
-#endif
+#endif
#ifdef HAVE_SIGINFO_T_SI_BAND
PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(si->si_band));
#else
@@ -1122,13 +1122,13 @@ fill_siginfo(siginfo_t *si)
}
#endif
-#ifdef HAVE_SIGSET_T
+#ifdef HAVE_SIGSET_T
#ifdef HAVE_SIGWAITINFO
/*[clinic input]
signal.sigwaitinfo
- sigset: sigset_t
+ sigset: sigset_t
/
Wait synchronously until one of the signals in *sigset* is delivered.
@@ -1137,8 +1137,8 @@ Returns a struct_siginfo containing information about the signal.
[clinic start generated code]*/
static PyObject *
-signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset)
-/*[clinic end generated code: output=1eb2f1fa236fdbca input=3d1a7e1f27fc664c]*/
+signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset)
+/*[clinic end generated code: output=1eb2f1fa236fdbca input=3d1a7e1f27fc664c]*/
{
siginfo_t si;
int err;
@@ -1146,7 +1146,7 @@ signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset)
do {
Py_BEGIN_ALLOW_THREADS
- err = sigwaitinfo(&sigset, &si);
+ err = sigwaitinfo(&sigset, &si);
Py_END_ALLOW_THREADS
} while (err == -1
&& errno == EINTR && !(async_err = PyErr_CheckSignals()));
@@ -1163,7 +1163,7 @@ signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset)
/*[clinic input]
signal.sigtimedwait
- sigset: sigset_t
+ sigset: sigset_t
timeout as timeout_obj: object
/
@@ -1173,9 +1173,9 @@ The timeout is specified in seconds, with floating point numbers allowed.
[clinic start generated code]*/
static PyObject *
-signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
+signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
PyObject *timeout_obj)
-/*[clinic end generated code: output=59c8971e8ae18a64 input=87fd39237cf0b7ba]*/
+/*[clinic end generated code: output=59c8971e8ae18a64 input=87fd39237cf0b7ba]*/
{
struct timespec ts;
siginfo_t si;
@@ -1198,7 +1198,7 @@ signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
return NULL;
Py_BEGIN_ALLOW_THREADS
- res = sigtimedwait(&sigset, &si, &ts);
+ res = sigtimedwait(&sigset, &si, &ts);
Py_END_ALLOW_THREADS
if (res != -1)
@@ -1225,7 +1225,7 @@ signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
}
#endif /* #ifdef HAVE_SIGTIMEDWAIT */
-#endif /* #ifdef HAVE_SIGSET_T */
+#endif /* #ifdef HAVE_SIGSET_T */
#if defined(HAVE_PTHREAD_KILL)
@@ -1247,10 +1247,10 @@ signal_pthread_kill_impl(PyObject *module, unsigned long thread_id,
{
int err;
- if (PySys_Audit("signal.pthread_kill", "ki", thread_id, signalnum) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("signal.pthread_kill", "ki", thread_id, signalnum) < 0) {
+ return NULL;
+ }
+
err = pthread_kill((pthread_t)thread_id, signalnum);
if (err != 0) {
errno = err;
@@ -1268,39 +1268,39 @@ signal_pthread_kill_impl(PyObject *module, unsigned long thread_id,
#endif /* #if defined(HAVE_PTHREAD_KILL) */
-#if defined(__linux__) && defined(__NR_pidfd_send_signal)
-/*[clinic input]
-signal.pidfd_send_signal
-
- pidfd: int
- signalnum: int
- siginfo: object = None
- flags: int = 0
- /
-
-Send a signal to a process referred to by a pid file descriptor.
-[clinic start generated code]*/
-
-static PyObject *
-signal_pidfd_send_signal_impl(PyObject *module, int pidfd, int signalnum,
- PyObject *siginfo, int flags)
-/*[clinic end generated code: output=2d59f04a75d9cbdf input=2a6543a1f4ac2000]*/
-
-{
- if (siginfo != Py_None) {
- PyErr_SetString(PyExc_TypeError, "siginfo must be None");
- return NULL;
- }
- if (syscall(__NR_pidfd_send_signal, pidfd, signalnum, NULL, flags) < 0) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
- Py_RETURN_NONE;
-}
-#endif
-
-
-
+#if defined(__linux__) && defined(__NR_pidfd_send_signal)
+/*[clinic input]
+signal.pidfd_send_signal
+
+ pidfd: int
+ signalnum: int
+ siginfo: object = None
+ flags: int = 0
+ /
+
+Send a signal to a process referred to by a pid file descriptor.
+[clinic start generated code]*/
+
+static PyObject *
+signal_pidfd_send_signal_impl(PyObject *module, int pidfd, int signalnum,
+ PyObject *siginfo, int flags)
+/*[clinic end generated code: output=2d59f04a75d9cbdf input=2a6543a1f4ac2000]*/
+
+{
+ if (siginfo != Py_None) {
+ PyErr_SetString(PyExc_TypeError, "siginfo must be None");
+ return NULL;
+ }
+ if (syscall(__NR_pidfd_send_signal, pidfd, signalnum, NULL, flags) < 0) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+#endif
+
+
+
/* List of functions defined in the module -- some of the methoddefs are
defined to nothing if the corresponding C function is not available. */
static PyMethodDef signal_methods[] = {
@@ -1309,22 +1309,22 @@ static PyMethodDef signal_methods[] = {
SIGNAL_SETITIMER_METHODDEF
SIGNAL_GETITIMER_METHODDEF
SIGNAL_SIGNAL_METHODDEF
- SIGNAL_RAISE_SIGNAL_METHODDEF
- SIGNAL_STRSIGNAL_METHODDEF
+ SIGNAL_RAISE_SIGNAL_METHODDEF
+ SIGNAL_STRSIGNAL_METHODDEF
SIGNAL_GETSIGNAL_METHODDEF
- {"set_wakeup_fd", (PyCFunction)(void(*)(void))signal_set_wakeup_fd, METH_VARARGS | METH_KEYWORDS, set_wakeup_fd_doc},
+ {"set_wakeup_fd", (PyCFunction)(void(*)(void))signal_set_wakeup_fd, METH_VARARGS | METH_KEYWORDS, set_wakeup_fd_doc},
SIGNAL_SIGINTERRUPT_METHODDEF
SIGNAL_PAUSE_METHODDEF
- SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
+ SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
SIGNAL_PTHREAD_KILL_METHODDEF
SIGNAL_PTHREAD_SIGMASK_METHODDEF
SIGNAL_SIGPENDING_METHODDEF
SIGNAL_SIGWAIT_METHODDEF
SIGNAL_SIGWAITINFO_METHODDEF
SIGNAL_SIGTIMEDWAIT_METHODDEF
-#if defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS)
- SIGNAL_VALID_SIGNALS_METHODDEF
-#endif
+#if defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS)
+ SIGNAL_VALID_SIGNALS_METHODDEF
+#endif
{NULL, NULL} /* sentinel */
};
@@ -1380,7 +1380,7 @@ static struct PyModuleDef signalmodule = {
PyMODINIT_FUNC
PyInit__signal(void)
{
- PyObject *m, *d;
+ PyObject *m, *d;
int i;
/* Create the module and add the functions */
@@ -1401,19 +1401,19 @@ PyInit__signal(void)
/* Add some symbolic constants to the module */
d = PyModule_GetDict(m);
- DefaultHandler = PyLong_FromVoidPtr((void *)SIG_DFL);
- if (!DefaultHandler ||
- PyDict_SetItemString(d, "SIG_DFL", DefaultHandler) < 0) {
+ DefaultHandler = PyLong_FromVoidPtr((void *)SIG_DFL);
+ if (!DefaultHandler ||
+ PyDict_SetItemString(d, "SIG_DFL", DefaultHandler) < 0) {
goto finally;
- }
+ }
- IgnoreHandler = PyLong_FromVoidPtr((void *)SIG_IGN);
- if (!IgnoreHandler ||
- PyDict_SetItemString(d, "SIG_IGN", IgnoreHandler) < 0) {
+ IgnoreHandler = PyLong_FromVoidPtr((void *)SIG_IGN);
+ if (!IgnoreHandler ||
+ PyDict_SetItemString(d, "SIG_IGN", IgnoreHandler) < 0) {
goto finally;
- }
+ }
- if (PyModule_AddIntMacro(m, NSIG))
+ if (PyModule_AddIntMacro(m, NSIG))
goto finally;
#ifdef SIG_BLOCK
@@ -1429,8 +1429,8 @@ PyInit__signal(void)
goto finally;
#endif
- IntHandler = PyDict_GetItemString(d, "default_int_handler");
- if (!IntHandler)
+ IntHandler = PyDict_GetItemString(d, "default_int_handler");
+ if (!IntHandler)
goto finally;
Py_INCREF(IntHandler);
@@ -1623,10 +1623,10 @@ PyInit__signal(void)
#if defined (HAVE_SETITIMER) || defined (HAVE_GETITIMER)
ItimerError = PyErr_NewException("signal.ItimerError",
PyExc_OSError, NULL);
- if (!ItimerError ||
- PyDict_SetItemString(d, "ItimerError", ItimerError) < 0) {
- goto finally;
- }
+ if (!ItimerError ||
+ PyDict_SetItemString(d, "ItimerError", ItimerError) < 0) {
+ goto finally;
+ }
#endif
#ifdef CTRL_C_EVENT
@@ -1667,9 +1667,9 @@ finisignal(void)
Py_CLEAR(IntHandler);
Py_CLEAR(DefaultHandler);
Py_CLEAR(IgnoreHandler);
-#ifdef HAVE_GETITIMER
- Py_CLEAR(ItimerError);
-#endif
+#ifdef HAVE_GETITIMER
+ Py_CLEAR(ItimerError);
+#endif
}
@@ -1677,22 +1677,22 @@ finisignal(void)
int
PyErr_CheckSignals(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
- return 0;
- }
-
- return _PyErr_CheckSignalsTstate(tstate);
-}
-
-
-/* Declared in cpython/pyerrors.h */
-int
-_PyErr_CheckSignalsTstate(PyThreadState *tstate)
-{
- if (!_Py_atomic_load(&is_tripped)) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
return 0;
- }
+ }
+
+ return _PyErr_CheckSignalsTstate(tstate);
+}
+
+
+/* Declared in cpython/pyerrors.h */
+int
+_PyErr_CheckSignalsTstate(PyThreadState *tstate)
+{
+ if (!_Py_atomic_load(&is_tripped)) {
+ return 0;
+ }
/*
* The is_tripped variable is meant to speed up the calls to
@@ -1710,84 +1710,84 @@ _PyErr_CheckSignalsTstate(PyThreadState *tstate)
*/
_Py_atomic_store(&is_tripped, 0);
- PyObject *frame = (PyObject *)tstate->frame;
- if (!frame) {
- frame = Py_None;
- }
-
- for (int i = 1; i < NSIG; i++) {
- if (!_Py_atomic_load_relaxed(&Handlers[i].tripped)) {
- continue;
- }
- _Py_atomic_store_relaxed(&Handlers[i].tripped, 0);
-
- /* Signal handlers can be modified while a signal is received,
- * and therefore the fact that trip_signal() or PyErr_SetInterrupt()
- * was called doesn't guarantee that there is still a Python
- * signal handler for it by the time PyErr_CheckSignals() is called
- * (see bpo-43406).
- */
- PyObject *func = Handlers[i].func;
- if (func == NULL || func == Py_None || func == IgnoreHandler ||
- func == DefaultHandler) {
- /* No Python signal handler due to aforementioned race condition.
- * We can't call raise() as it would break the assumption
- * that PyErr_SetInterrupt() only *simulates* an incoming
- * signal (i.e. it will never kill the process).
- * We also don't want to interrupt user code with a cryptic
- * asynchronous exception, so instead just write out an
- * unraisable error.
- */
- PyErr_Format(PyExc_OSError,
- "Signal %i ignored due to race condition",
- i);
- PyErr_WriteUnraisable(Py_None);
- continue;
- }
-
- PyObject *arglist = Py_BuildValue("(iO)", i, frame);
- PyObject *result;
- if (arglist) {
- result = _PyObject_Call(tstate, func, arglist, NULL);
- Py_DECREF(arglist);
- }
- else {
- result = NULL;
- }
- if (!result) {
- /* On error, re-schedule a call to _PyErr_CheckSignalsTstate() */
- _Py_atomic_store(&is_tripped, 1);
- return -1;
- }
-
- Py_DECREF(result);
+ PyObject *frame = (PyObject *)tstate->frame;
+ if (!frame) {
+ frame = Py_None;
+ }
+
+ for (int i = 1; i < NSIG; i++) {
+ if (!_Py_atomic_load_relaxed(&Handlers[i].tripped)) {
+ continue;
+ }
+ _Py_atomic_store_relaxed(&Handlers[i].tripped, 0);
+
+ /* Signal handlers can be modified while a signal is received,
+ * and therefore the fact that trip_signal() or PyErr_SetInterrupt()
+ * was called doesn't guarantee that there is still a Python
+ * signal handler for it by the time PyErr_CheckSignals() is called
+ * (see bpo-43406).
+ */
+ PyObject *func = Handlers[i].func;
+ if (func == NULL || func == Py_None || func == IgnoreHandler ||
+ func == DefaultHandler) {
+ /* No Python signal handler due to aforementioned race condition.
+ * We can't call raise() as it would break the assumption
+ * that PyErr_SetInterrupt() only *simulates* an incoming
+ * signal (i.e. it will never kill the process).
+ * We also don't want to interrupt user code with a cryptic
+ * asynchronous exception, so instead just write out an
+ * unraisable error.
+ */
+ PyErr_Format(PyExc_OSError,
+ "Signal %i ignored due to race condition",
+ i);
+ PyErr_WriteUnraisable(Py_None);
+ continue;
+ }
+
+ PyObject *arglist = Py_BuildValue("(iO)", i, frame);
+ PyObject *result;
+ if (arglist) {
+ result = _PyObject_Call(tstate, func, arglist, NULL);
+ Py_DECREF(arglist);
+ }
+ else {
+ result = NULL;
+ }
+ if (!result) {
+ /* On error, re-schedule a call to _PyErr_CheckSignalsTstate() */
+ _Py_atomic_store(&is_tripped, 1);
+ return -1;
+ }
+
+ Py_DECREF(result);
}
return 0;
}
-
-int
-_PyErr_CheckSignals(void)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyErr_CheckSignalsTstate(tstate);
-}
-
-
-/* Simulate the effect of a signal.SIGINT signal arriving. The next time
- PyErr_CheckSignals is called, the Python SIGINT signal handler will be
- raised.
-
- Missing signal handler for the SIGINT signal is silently ignored. */
+
+int
+_PyErr_CheckSignals(void)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyErr_CheckSignalsTstate(tstate);
+}
+
+
+/* Simulate the effect of a signal.SIGINT signal arriving. The next time
+ PyErr_CheckSignals is called, the Python SIGINT signal handler will be
+ raised.
+
+ Missing signal handler for the SIGINT signal is silently ignored. */
void
PyErr_SetInterrupt(void)
{
- if ((Handlers[SIGINT].func != IgnoreHandler) &&
- (Handlers[SIGINT].func != DefaultHandler)) {
- trip_signal(SIGINT);
- }
+ if ((Handlers[SIGINT].func != IgnoreHandler) &&
+ (Handlers[SIGINT].func != DefaultHandler)) {
+ trip_signal(SIGINT);
+ }
}
void
@@ -1799,87 +1799,87 @@ PyOS_InitInterrupts(void)
}
}
-
-static int
-signal_install_handlers(void)
-{
-#ifdef SIGPIPE
- PyOS_setsig(SIGPIPE, SIG_IGN);
-#endif
-#ifdef SIGXFZ
- PyOS_setsig(SIGXFZ, SIG_IGN);
-#endif
-#ifdef SIGXFSZ
- PyOS_setsig(SIGXFSZ, SIG_IGN);
-#endif
-
- // Import _signal to install the Python SIGINT handler
- PyObject *module = PyImport_ImportModule("_signal");
- if (!module) {
- return -1;
- }
- Py_DECREF(module);
-
- return 0;
-}
-
-
-int
-_PySignal_Init(int install_signal_handlers)
-{
-#ifdef MS_WINDOWS
- /* Create manual-reset event, initially unset */
- sigint_event = CreateEvent(NULL, TRUE, FALSE, FALSE);
- if (sigint_event == NULL) {
- PyErr_SetFromWindowsErr(0);
- return -1;
- }
-#endif
-
- if (install_signal_handlers) {
- if (signal_install_handlers() < 0) {
- return -1;
- }
- }
-
- return 0;
-}
-
-
+
+static int
+signal_install_handlers(void)
+{
+#ifdef SIGPIPE
+ PyOS_setsig(SIGPIPE, SIG_IGN);
+#endif
+#ifdef SIGXFZ
+ PyOS_setsig(SIGXFZ, SIG_IGN);
+#endif
+#ifdef SIGXFSZ
+ PyOS_setsig(SIGXFSZ, SIG_IGN);
+#endif
+
+ // Import _signal to install the Python SIGINT handler
+ PyObject *module = PyImport_ImportModule("_signal");
+ if (!module) {
+ return -1;
+ }
+ Py_DECREF(module);
+
+ return 0;
+}
+
+
+int
+_PySignal_Init(int install_signal_handlers)
+{
+#ifdef MS_WINDOWS
+ /* Create manual-reset event, initially unset */
+ sigint_event = CreateEvent(NULL, TRUE, FALSE, FALSE);
+ if (sigint_event == NULL) {
+ PyErr_SetFromWindowsErr(0);
+ return -1;
+ }
+#endif
+
+ if (install_signal_handlers) {
+ if (signal_install_handlers() < 0) {
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+
void
PyOS_FiniInterrupts(void)
{
finisignal();
}
-
-// The caller doesn't have to hold the GIL
+
+// The caller doesn't have to hold the GIL
int
-_PyOS_InterruptOccurred(PyThreadState *tstate)
+_PyOS_InterruptOccurred(PyThreadState *tstate)
{
- _Py_EnsureTstateNotNULL(tstate);
- if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
- return 0;
+ _Py_EnsureTstateNotNULL(tstate);
+ if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
+ return 0;
}
-
- if (!_Py_atomic_load_relaxed(&Handlers[SIGINT].tripped)) {
- return 0;
- }
-
- _Py_atomic_store_relaxed(&Handlers[SIGINT].tripped, 0);
- return 1;
+
+ if (!_Py_atomic_load_relaxed(&Handlers[SIGINT].tripped)) {
+ return 0;
+ }
+
+ _Py_atomic_store_relaxed(&Handlers[SIGINT].tripped, 0);
+ return 1;
}
-
-// The caller must to hold the GIL
-int
-PyOS_InterruptOccurred(void)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyOS_InterruptOccurred(tstate);
-}
-
-
+
+// The caller must to hold the GIL
+int
+PyOS_InterruptOccurred(void)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyOS_InterruptOccurred(tstate);
+}
+
+
static void
_clear_pending_signals(void)
{
@@ -1904,8 +1904,8 @@ _PySignal_AfterFork(void)
int
_PyOS_IsMainThread(void)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- return _Py_ThreadCanHandleSignals(interp);
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ return _Py_ThreadCanHandleSignals(interp);
}
#ifdef MS_WINDOWS
diff --git a/contrib/tools/python3/src/Modules/socketmodule.c b/contrib/tools/python3/src/Modules/socketmodule.c
index 6e9cc04cd5..5ac2ee510f 100644
--- a/contrib/tools/python3/src/Modules/socketmodule.c
+++ b/contrib/tools/python3/src/Modules/socketmodule.c
@@ -7,8 +7,8 @@ This module provides an interface to Berkeley socket IPC.
Limitations:
- Only AF_INET, AF_INET6 and AF_UNIX address families are supported in a
- portable manner, though AF_PACKET, AF_NETLINK, AF_QIPCRTR and AF_TIPC are
- supported under Linux.
+ portable manner, though AF_PACKET, AF_NETLINK, AF_QIPCRTR and AF_TIPC are
+ supported under Linux.
- No read/write operations (use sendall/recv or makefile instead).
- Additional restrictions apply on some non-Unix platforms (compensated
for by socket.py).
@@ -55,8 +55,8 @@ Module interface:
the Ethernet protocol number to be received. For example:
("eth0",0x1234). Optional 3rd,4th,5th elements in the tuple
specify packet-type and ha-type/addr.
-- an AF_QIPCRTR socket address is a (node, port) tuple where the
- node and port are non-negative integers.
+- an AF_QIPCRTR socket address is a (node, port) tuple where the
+ node and port are non-negative integers.
- an AF_TIPC socket address is expressed as
(addr_type, v1, v2, v3 [, scope]); where addr_type can be one of:
TIPC_ADDR_NAMESEQ, TIPC_ADDR_NAME, and TIPC_ADDR_ID;
@@ -106,9 +106,9 @@ bool IsReusePortAvailable();
# pragma weak inet_aton
#endif
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#ifdef _Py_MEMORY_SANITIZER
# include <sanitizer/msan_interface.h>
@@ -153,7 +153,7 @@ recvfrom_into(buffer[, nbytes, [, flags])\n\
sendall(data[, flags]) -- send all data\n\
send(data[, flags]) -- send data, may not send all of it\n\
sendto(data[, flags], addr) -- send data to a given address\n\
-setblocking(bool) -- set or clear the blocking I/O flag\n\
+setblocking(bool) -- set or clear the blocking I/O flag\n\
getblocking() -- return True if socket is blocking, False if non-blocking\n\
setsockopt(level, optname, value[, optlen]) -- set socket options\n\
settimeout(None | float) -- set or clear the timeout\n\
@@ -239,7 +239,7 @@ http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/net/getaddrinfo.c.diff?r1=1.82&
#endif
#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__NetBSD__)
-# include <sys/ioctl.h>
+# include <sys/ioctl.h>
#endif
@@ -308,44 +308,44 @@ http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/net/getaddrinfo.c.diff?r1=1.82&
# include <fcntl.h>
# endif
-/* Macros based on the IPPROTO enum, see: https://bugs.python.org/issue29515 */
-#ifdef MS_WINDOWS
-#define IPPROTO_ICMP IPPROTO_ICMP
-#define IPPROTO_IGMP IPPROTO_IGMP
-#define IPPROTO_GGP IPPROTO_GGP
-#define IPPROTO_TCP IPPROTO_TCP
-#define IPPROTO_PUP IPPROTO_PUP
-#define IPPROTO_UDP IPPROTO_UDP
-#define IPPROTO_IDP IPPROTO_IDP
-#define IPPROTO_ND IPPROTO_ND
-#define IPPROTO_RAW IPPROTO_RAW
-#define IPPROTO_MAX IPPROTO_MAX
-#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
-#define IPPROTO_IPV4 IPPROTO_IPV4
-#define IPPROTO_IPV6 IPPROTO_IPV6
-#define IPPROTO_ROUTING IPPROTO_ROUTING
-#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
-#define IPPROTO_ESP IPPROTO_ESP
-#define IPPROTO_AH IPPROTO_AH
-#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
-#define IPPROTO_NONE IPPROTO_NONE
-#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
-#define IPPROTO_EGP IPPROTO_EGP
-#define IPPROTO_PIM IPPROTO_PIM
-#define IPPROTO_ICLFXBM IPPROTO_ICLFXBM // WinSock2 only
-#define IPPROTO_ST IPPROTO_ST // WinSock2 only
-#define IPPROTO_CBT IPPROTO_CBT // WinSock2 only
-#define IPPROTO_IGP IPPROTO_IGP // WinSock2 only
-#define IPPROTO_RDP IPPROTO_RDP // WinSock2 only
-#define IPPROTO_PGM IPPROTO_PGM // WinSock2 only
-#define IPPROTO_L2TP IPPROTO_L2TP // WinSock2 only
-#define IPPROTO_SCTP IPPROTO_SCTP // WinSock2 only
-#endif /* MS_WINDOWS */
-
+/* Macros based on the IPPROTO enum, see: https://bugs.python.org/issue29515 */
+#ifdef MS_WINDOWS
+#define IPPROTO_ICMP IPPROTO_ICMP
+#define IPPROTO_IGMP IPPROTO_IGMP
+#define IPPROTO_GGP IPPROTO_GGP
+#define IPPROTO_TCP IPPROTO_TCP
+#define IPPROTO_PUP IPPROTO_PUP
+#define IPPROTO_UDP IPPROTO_UDP
+#define IPPROTO_IDP IPPROTO_IDP
+#define IPPROTO_ND IPPROTO_ND
+#define IPPROTO_RAW IPPROTO_RAW
+#define IPPROTO_MAX IPPROTO_MAX
+#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
+#define IPPROTO_IPV4 IPPROTO_IPV4
+#define IPPROTO_IPV6 IPPROTO_IPV6
+#define IPPROTO_ROUTING IPPROTO_ROUTING
+#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
+#define IPPROTO_ESP IPPROTO_ESP
+#define IPPROTO_AH IPPROTO_AH
+#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
+#define IPPROTO_NONE IPPROTO_NONE
+#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
+#define IPPROTO_EGP IPPROTO_EGP
+#define IPPROTO_PIM IPPROTO_PIM
+#define IPPROTO_ICLFXBM IPPROTO_ICLFXBM // WinSock2 only
+#define IPPROTO_ST IPPROTO_ST // WinSock2 only
+#define IPPROTO_CBT IPPROTO_CBT // WinSock2 only
+#define IPPROTO_IGP IPPROTO_IGP // WinSock2 only
+#define IPPROTO_RDP IPPROTO_RDP // WinSock2 only
+#define IPPROTO_PGM IPPROTO_PGM // WinSock2 only
+#define IPPROTO_L2TP IPPROTO_L2TP // WinSock2 only
+#define IPPROTO_SCTP IPPROTO_SCTP // WinSock2 only
+#endif /* MS_WINDOWS */
+
/* Provides the IsWindows7SP1OrGreater() function */
#include <versionhelpers.h>
-// For if_nametoindex() and if_indextoname()
-#include <iphlpapi.h>
+// For if_nametoindex() and if_indextoname()
+#include <iphlpapi.h>
/* remove some flags on older version Windows during run-time.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms738596.aspx */
@@ -391,7 +391,7 @@ remove_unusable_flags(PyObject *m)
for (int i=0; i<sizeof(win_runtime_flags)/sizeof(FlagRuntimeInfo); i++) {
info.dwBuildNumber = win_runtime_flags[i].build_number;
- /* greater than or equal to the specified version?
+ /* greater than or equal to the specified version?
Compatibility Mode will not cheat VerifyVersionInfo(...) */
if (VerifyVersionInfo(
&info,
@@ -477,12 +477,12 @@ remove_unusable_flags(PyObject *m)
#endif
#ifdef MS_WIN32
-# undef EAFNOSUPPORT
-# define EAFNOSUPPORT WSAEAFNOSUPPORT
+# undef EAFNOSUPPORT
+# define EAFNOSUPPORT WSAEAFNOSUPPORT
#endif
#ifndef SOCKETCLOSE
-# define SOCKETCLOSE close
+# define SOCKETCLOSE close
#endif
#if (defined(HAVE_BLUETOOTH_H) || defined(HAVE_BLUETOOTH_BLUETOOTH_H)) && !defined(__NetBSD__) && !defined(__DragonFly__)
@@ -518,15 +518,15 @@ remove_unusable_flags(PyObject *m)
#endif
#endif
-#ifdef MS_WINDOWS
-#define sockaddr_rc SOCKADDR_BTH_REDEF
-
-#define USE_BLUETOOTH 1
-#define AF_BLUETOOTH AF_BTH
-#define BTPROTO_RFCOMM BTHPROTO_RFCOMM
-#define _BT_RC_MEMB(sa, memb) ((sa)->memb)
-#endif
-
+#ifdef MS_WINDOWS
+#define sockaddr_rc SOCKADDR_BTH_REDEF
+
+#define USE_BLUETOOTH 1
+#define AF_BLUETOOTH AF_BTH
+#define BTPROTO_RFCOMM BTHPROTO_RFCOMM
+#define _BT_RC_MEMB(sa, memb) ((sa)->memb)
+#endif
+
/* Convert "sock_addr_t *" to "struct sockaddr *". */
#define SAS2SA(x) (&((x)->sa))
@@ -656,7 +656,7 @@ set_herror(int h_error)
PyObject *v;
#ifdef HAVE_HSTRERROR
- v = Py_BuildValue("(is)", h_error, hstrerror(h_error));
+ v = Py_BuildValue("(is)", h_error, hstrerror(h_error));
#else
v = Py_BuildValue("(is)", h_error, "host not found");
#endif
@@ -787,17 +787,17 @@ internal_select(PySocketSockObject *s, int writing, _PyTime_t interval,
ms = _PyTime_AsMilliseconds(interval, _PyTime_ROUND_CEILING);
assert(ms <= INT_MAX);
- /* On some OSes, typically BSD-based ones, the timeout parameter of the
- poll() syscall, when negative, must be exactly INFTIM, where defined,
- or -1. See issue 37811. */
- if (ms < 0) {
-#ifdef INFTIM
- ms = INFTIM;
-#else
- ms = -1;
-#endif
- }
-
+ /* On some OSes, typically BSD-based ones, the timeout parameter of the
+ poll() syscall, when negative, must be exactly INFTIM, where defined,
+ or -1. See issue 37811. */
+ if (ms < 0) {
+#ifdef INFTIM
+ ms = INFTIM;
+#else
+ ms = -1;
+#endif
+ }
+
Py_BEGIN_ALLOW_THREADS;
n = poll(&pollfd, 1, (int)ms);
Py_END_ALLOW_THREADS;
@@ -972,7 +972,7 @@ sock_call_ex(PySocketSockObject *s,
reading, but the data then discarded by the OS because of a
wrong checksum.
- Loop on select() to recheck for socket readiness. */
+ Loop on select() to recheck for socket readiness. */
continue;
}
@@ -1274,23 +1274,23 @@ setbdaddr(const char *name, bdaddr_t *bdaddr)
n = sscanf(name, "%X:%X:%X:%X:%X:%X%c",
&b5, &b4, &b3, &b2, &b1, &b0, &ch);
if (n == 6 && (b0 | b1 | b2 | b3 | b4 | b5) < 256) {
-
-#ifdef MS_WINDOWS
- *bdaddr = (ULONGLONG)(b0 & 0xFF);
- *bdaddr |= ((ULONGLONG)(b1 & 0xFF) << 8);
- *bdaddr |= ((ULONGLONG)(b2 & 0xFF) << 16);
- *bdaddr |= ((ULONGLONG)(b3 & 0xFF) << 24);
- *bdaddr |= ((ULONGLONG)(b4 & 0xFF) << 32);
- *bdaddr |= ((ULONGLONG)(b5 & 0xFF) << 40);
-#else
+
+#ifdef MS_WINDOWS
+ *bdaddr = (ULONGLONG)(b0 & 0xFF);
+ *bdaddr |= ((ULONGLONG)(b1 & 0xFF) << 8);
+ *bdaddr |= ((ULONGLONG)(b2 & 0xFF) << 16);
+ *bdaddr |= ((ULONGLONG)(b3 & 0xFF) << 24);
+ *bdaddr |= ((ULONGLONG)(b4 & 0xFF) << 32);
+ *bdaddr |= ((ULONGLONG)(b5 & 0xFF) << 40);
+#else
bdaddr->b[0] = b0;
bdaddr->b[1] = b1;
bdaddr->b[2] = b2;
bdaddr->b[3] = b3;
bdaddr->b[4] = b4;
bdaddr->b[5] = b5;
-#endif
-
+#endif
+
return 6;
} else {
PyErr_SetString(PyExc_OSError, "bad bluetooth address");
@@ -1307,23 +1307,23 @@ makebdaddr(bdaddr_t *bdaddr)
{
char buf[(6 * 2) + 5 + 1];
-#ifdef MS_WINDOWS
- int i;
- unsigned int octets[6];
-
- for (i = 0; i < 6; ++i) {
- octets[i] = ((*bdaddr) >> (8 * i)) & 0xFF;
- }
-
+#ifdef MS_WINDOWS
+ int i;
+ unsigned int octets[6];
+
+ for (i = 0; i < 6; ++i) {
+ octets[i] = ((*bdaddr) >> (8 * i)) & 0xFF;
+ }
+
+ sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X",
+ octets[5], octets[4], octets[3],
+ octets[2], octets[1], octets[0]);
+#else
sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X",
- octets[5], octets[4], octets[3],
- octets[2], octets[1], octets[0]);
-#else
- sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X",
bdaddr->b[5], bdaddr->b[4], bdaddr->b[3],
bdaddr->b[2], bdaddr->b[1], bdaddr->b[0]);
-#endif
-
+#endif
+
return PyUnicode_FromString(buf);
}
#endif
@@ -1383,14 +1383,14 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
}
#endif /* AF_NETLINK */
-#if defined(AF_QIPCRTR)
- case AF_QIPCRTR:
- {
- struct sockaddr_qrtr *a = (struct sockaddr_qrtr *) addr;
- return Py_BuildValue("II", a->sq_node, a->sq_port);
- }
-#endif /* AF_QIPCRTR */
-
+#if defined(AF_QIPCRTR)
+ case AF_QIPCRTR:
+ {
+ struct sockaddr_qrtr *a = (struct sockaddr_qrtr *) addr;
+ return Py_BuildValue("II", a->sq_node, a->sq_port);
+ }
+#endif /* AF_QIPCRTR */
+
#if defined(AF_VSOCK)
case AF_VSOCK:
{
@@ -1421,7 +1421,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
case AF_BLUETOOTH:
switch (proto) {
-#ifdef BTPROTO_L2CAP
+#ifdef BTPROTO_L2CAP
case BTPROTO_L2CAP:
{
struct sockaddr_l2 *a = (struct sockaddr_l2 *) addr;
@@ -1436,8 +1436,8 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
return ret;
}
-#endif /* BTPROTO_L2CAP */
-
+#endif /* BTPROTO_L2CAP */
+
case BTPROTO_RFCOMM:
{
struct sockaddr_rc *a = (struct sockaddr_rc *) addr;
@@ -1452,7 +1452,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
return ret;
}
-#ifdef BTPROTO_HCI
+#ifdef BTPROTO_HCI
case BTPROTO_HCI:
{
struct sockaddr_hci *a = (struct sockaddr_hci *) addr;
@@ -1472,7 +1472,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
return makebdaddr(&_BT_SCO_MEMB(a, bdaddr));
}
#endif /* !__FreeBSD__ */
-#endif /* BTPROTO_HCI */
+#endif /* BTPROTO_HCI */
default:
PyErr_SetString(PyExc_ValueError,
@@ -1499,7 +1499,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
a->sll_pkttype,
a->sll_hatype,
a->sll_addr,
- (Py_ssize_t)a->sll_halen);
+ (Py_ssize_t)a->sll_halen);
}
#endif /* HAVE_NETPACKET_PACKET_H && SIOCGIFNAME */
@@ -1559,19 +1559,19 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
a->can_addr.tp.tx_id);
}
#endif /* CAN_ISOTP */
-#ifdef CAN_J1939
- case CAN_J1939:
- {
- return Py_BuildValue("O&KIB", PyUnicode_DecodeFSDefault,
- ifname,
- (unsigned long long)a->can_addr.j1939.name,
- (unsigned int)a->can_addr.j1939.pgn,
- a->can_addr.j1939.addr);
- }
-#endif /* CAN_J1939 */
+#ifdef CAN_J1939
+ case CAN_J1939:
+ {
+ return Py_BuildValue("O&KIB", PyUnicode_DecodeFSDefault,
+ ifname,
+ (unsigned long long)a->can_addr.j1939.name,
+ (unsigned int)a->can_addr.j1939.pgn,
+ a->can_addr.j1939.addr);
+ }
+#endif /* CAN_J1939 */
default:
{
- return Py_BuildValue("(O&)", PyUnicode_DecodeFSDefault,
+ return Py_BuildValue("(O&)", PyUnicode_DecodeFSDefault,
ifname);
}
}
@@ -1678,7 +1678,7 @@ idna_converter(PyObject *obj, struct maybe_idna *data)
}
else {
PyErr_Format(PyExc_TypeError, "str, bytes or bytearray expected, not %s",
- Py_TYPE(obj)->tp_name);
+ Py_TYPE(obj)->tp_name);
return 0;
}
if (strlen(data->buf) != len) {
@@ -1696,7 +1696,7 @@ idna_converter(PyObject *obj, struct maybe_idna *data)
static int
getsockaddrarg(PySocketSockObject *s, PyObject *args,
- sock_addr_t *addrbuf, int *len_ret, const char *caller)
+ sock_addr_t *addrbuf, int *len_ret, const char *caller)
{
switch (s->sock_family) {
@@ -1720,7 +1720,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
}
assert(path.len >= 0);
- struct sockaddr_un* addr = &addrbuf->un;
+ struct sockaddr_un* addr = &addrbuf->un;
#ifdef __linux__
if (path.len > 0 && *(const char *)path.buf == 0) {
/* Linux abstract namespace extension */
@@ -1756,21 +1756,21 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
case AF_NETLINK:
{
int pid, groups;
- struct sockaddr_nl* addr = &addrbuf->nl;
+ struct sockaddr_nl* addr = &addrbuf->nl;
if (!PyTuple_Check(args)) {
PyErr_Format(
PyExc_TypeError,
- "%s(): AF_NETLINK address must be tuple, not %.500s",
- caller, Py_TYPE(args)->tp_name);
+ "%s(): AF_NETLINK address must be tuple, not %.500s",
+ caller, Py_TYPE(args)->tp_name);
return 0;
}
- if (!PyArg_ParseTuple(args,
- "II;AF_NETLINK address must be a pair "
- "(pid, groups)",
- &pid, &groups))
- {
+ if (!PyArg_ParseTuple(args,
+ "II;AF_NETLINK address must be a pair "
+ "(pid, groups)",
+ &pid, &groups))
+ {
return 0;
- }
+ }
addr->nl_family = AF_NETLINK;
addr->nl_pid = pid;
addr->nl_groups = groups;
@@ -1779,33 +1779,33 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
}
#endif /* AF_NETLINK */
-#if defined(AF_QIPCRTR)
- case AF_QIPCRTR:
- {
- unsigned int node, port;
- struct sockaddr_qrtr* addr = &addrbuf->sq;
- if (!PyTuple_Check(args)) {
- PyErr_Format(
- PyExc_TypeError,
- "getsockaddrarg: "
- "AF_QIPCRTR address must be tuple, not %.500s",
- Py_TYPE(args)->tp_name);
- return 0;
- }
- if (!PyArg_ParseTuple(args, "II:getsockaddrarg", &node, &port))
- return 0;
- addr->sq_family = AF_QIPCRTR;
- addr->sq_node = node;
- addr->sq_port = port;
- *len_ret = sizeof(*addr);
- return 1;
- }
-#endif /* AF_QIPCRTR */
-
+#if defined(AF_QIPCRTR)
+ case AF_QIPCRTR:
+ {
+ unsigned int node, port;
+ struct sockaddr_qrtr* addr = &addrbuf->sq;
+ if (!PyTuple_Check(args)) {
+ PyErr_Format(
+ PyExc_TypeError,
+ "getsockaddrarg: "
+ "AF_QIPCRTR address must be tuple, not %.500s",
+ Py_TYPE(args)->tp_name);
+ return 0;
+ }
+ if (!PyArg_ParseTuple(args, "II:getsockaddrarg", &node, &port))
+ return 0;
+ addr->sq_family = AF_QIPCRTR;
+ addr->sq_node = node;
+ addr->sq_port = port;
+ *len_ret = sizeof(*addr);
+ return 1;
+ }
+#endif /* AF_QIPCRTR */
+
#if defined(AF_VSOCK)
case AF_VSOCK:
{
- struct sockaddr_vm* addr = &addrbuf->vm;
+ struct sockaddr_vm* addr = &addrbuf->vm;
int port, cid;
memset(addr, 0, sizeof(struct sockaddr_vm));
if (!PyTuple_Check(args)) {
@@ -1839,32 +1839,32 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
if (!PyTuple_Check(args)) {
PyErr_Format(
PyExc_TypeError,
- "%s(): AF_INET address must be tuple, not %.500s",
- caller, Py_TYPE(args)->tp_name);
+ "%s(): AF_INET address must be tuple, not %.500s",
+ caller, Py_TYPE(args)->tp_name);
return 0;
}
- if (!PyArg_ParseTuple(args,
- "O&i;AF_INET address must be a pair "
- "(host, port)",
+ if (!PyArg_ParseTuple(args,
+ "O&i;AF_INET address must be a pair "
+ "(host, port)",
idna_converter, &host, &port))
- {
- assert(PyErr_Occurred());
- if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
- PyErr_Format(PyExc_OverflowError,
- "%s(): port must be 0-65535.", caller);
- }
+ {
+ assert(PyErr_Occurred());
+ if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
+ PyErr_Format(PyExc_OverflowError,
+ "%s(): port must be 0-65535.", caller);
+ }
return 0;
- }
- struct sockaddr_in* addr = &addrbuf->in;
+ }
+ struct sockaddr_in* addr = &addrbuf->in;
result = setipaddr(host.buf, (struct sockaddr *)addr,
sizeof(*addr), AF_INET);
idna_cleanup(&host);
if (result < 0)
return 0;
if (port < 0 || port > 0xffff) {
- PyErr_Format(
+ PyErr_Format(
PyExc_OverflowError,
- "%s(): port must be 0-65535.", caller);
+ "%s(): port must be 0-65535.", caller);
return 0;
}
addr->sin_family = AF_INET;
@@ -1883,39 +1883,39 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
if (!PyTuple_Check(args)) {
PyErr_Format(
PyExc_TypeError,
- "%s(): AF_INET6 address must be tuple, not %.500s",
- caller, Py_TYPE(args)->tp_name);
+ "%s(): AF_INET6 address must be tuple, not %.500s",
+ caller, Py_TYPE(args)->tp_name);
return 0;
}
- if (!PyArg_ParseTuple(args,
- "O&i|II;AF_INET6 address must be a tuple "
- "(host, port[, flowinfo[, scopeid]])",
+ if (!PyArg_ParseTuple(args,
+ "O&i|II;AF_INET6 address must be a tuple "
+ "(host, port[, flowinfo[, scopeid]])",
idna_converter, &host, &port, &flowinfo,
- &scope_id))
- {
- assert(PyErr_Occurred());
- if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
- PyErr_Format(PyExc_OverflowError,
- "%s(): port must be 0-65535.", caller);
- }
+ &scope_id))
+ {
+ assert(PyErr_Occurred());
+ if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
+ PyErr_Format(PyExc_OverflowError,
+ "%s(): port must be 0-65535.", caller);
+ }
return 0;
}
- struct sockaddr_in6* addr = &addrbuf->in6;
+ struct sockaddr_in6* addr = &addrbuf->in6;
result = setipaddr(host.buf, (struct sockaddr *)addr,
sizeof(*addr), AF_INET6);
idna_cleanup(&host);
if (result < 0)
return 0;
if (port < 0 || port > 0xffff) {
- PyErr_Format(
+ PyErr_Format(
PyExc_OverflowError,
- "%s(): port must be 0-65535.", caller);
+ "%s(): port must be 0-65535.", caller);
return 0;
}
if (flowinfo > 0xfffff) {
- PyErr_Format(
+ PyErr_Format(
PyExc_OverflowError,
- "%s(): flowinfo must be 0-1048575.", caller);
+ "%s(): flowinfo must be 0-1048575.", caller);
return 0;
}
addr->sin6_family = s->sock_family;
@@ -1931,18 +1931,18 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
case AF_BLUETOOTH:
{
switch (s->sock_proto) {
-#ifdef BTPROTO_L2CAP
+#ifdef BTPROTO_L2CAP
case BTPROTO_L2CAP:
{
const char *straddr;
- struct sockaddr_l2 *addr = &addrbuf->bt_l2;
+ struct sockaddr_l2 *addr = &addrbuf->bt_l2;
memset(addr, 0, sizeof(struct sockaddr_l2));
_BT_L2_MEMB(addr, family) = AF_BLUETOOTH;
if (!PyArg_ParseTuple(args, "si", &straddr,
&_BT_L2_MEMB(addr, psm))) {
- PyErr_Format(PyExc_OSError,
- "%s(): wrong format", caller);
+ PyErr_Format(PyExc_OSError,
+ "%s(): wrong format", caller);
return 0;
}
if (setbdaddr(straddr, &_BT_L2_MEMB(addr, bdaddr)) < 0)
@@ -1951,16 +1951,16 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
*len_ret = sizeof *addr;
return 1;
}
-#endif /* BTPROTO_L2CAP */
+#endif /* BTPROTO_L2CAP */
case BTPROTO_RFCOMM:
{
const char *straddr;
- struct sockaddr_rc *addr = &addrbuf->bt_rc;
+ struct sockaddr_rc *addr = &addrbuf->bt_rc;
_BT_RC_MEMB(addr, family) = AF_BLUETOOTH;
if (!PyArg_ParseTuple(args, "si", &straddr,
&_BT_RC_MEMB(addr, channel))) {
- PyErr_Format(PyExc_OSError,
- "%s(): wrong format", caller);
+ PyErr_Format(PyExc_OSError,
+ "%s(): wrong format", caller);
return 0;
}
if (setbdaddr(straddr, &_BT_RC_MEMB(addr, bdaddr)) < 0)
@@ -1969,16 +1969,16 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
*len_ret = sizeof *addr;
return 1;
}
-#ifdef BTPROTO_HCI
+#ifdef BTPROTO_HCI
case BTPROTO_HCI:
{
- struct sockaddr_hci *addr = &addrbuf->bt_hci;
+ struct sockaddr_hci *addr = &addrbuf->bt_hci;
#if defined(__NetBSD__) || defined(__DragonFly__)
const char *straddr;
_BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
if (!PyBytes_Check(args)) {
- PyErr_Format(PyExc_OSError, "%s: "
- "wrong format", caller);
+ PyErr_Format(PyExc_OSError, "%s: "
+ "wrong format", caller);
return 0;
}
straddr = PyBytes_AS_STRING(args);
@@ -1987,8 +1987,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
#else /* __NetBSD__ || __DragonFly__ */
_BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
if (!PyArg_ParseTuple(args, "i", &_BT_HCI_MEMB(addr, dev))) {
- PyErr_Format(PyExc_OSError,
- "%s(): wrong format", caller);
+ PyErr_Format(PyExc_OSError,
+ "%s(): wrong format", caller);
return 0;
}
#endif /* !(__NetBSD__ || __DragonFly__) */
@@ -2000,11 +2000,11 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
{
const char *straddr;
- struct sockaddr_sco *addr = &addrbuf->bt_sco;
+ struct sockaddr_sco *addr = &addrbuf->bt_sco;
_BT_SCO_MEMB(addr, family) = AF_BLUETOOTH;
if (!PyBytes_Check(args)) {
- PyErr_Format(PyExc_OSError,
- "%s(): wrong format", caller);
+ PyErr_Format(PyExc_OSError,
+ "%s(): wrong format", caller);
return 0;
}
straddr = PyBytes_AS_STRING(args);
@@ -2015,10 +2015,10 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
return 1;
}
#endif /* !__FreeBSD__ */
-#endif /* BTPROTO_HCI */
+#endif /* BTPROTO_HCI */
default:
- PyErr_Format(PyExc_OSError,
- "%s(): unknown Bluetooth protocol", caller);
+ PyErr_Format(PyExc_OSError,
+ "%s(): unknown Bluetooth protocol", caller);
return 0;
}
}
@@ -2037,26 +2037,26 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
if (!PyTuple_Check(args)) {
PyErr_Format(
PyExc_TypeError,
- "%s(): AF_PACKET address must be tuple, not %.500s",
- caller, Py_TYPE(args)->tp_name);
+ "%s(): AF_PACKET address must be tuple, not %.500s",
+ caller, Py_TYPE(args)->tp_name);
return 0;
}
- /* XXX: improve the default error message according to the
- documentation of AF_PACKET, which would be added as part
- of bpo-25041. */
- if (!PyArg_ParseTuple(args,
- "si|iiy*;AF_PACKET address must be a tuple of "
- "two to five elements",
- &interfaceName, &protoNumber, &pkttype, &hatype,
+ /* XXX: improve the default error message according to the
+ documentation of AF_PACKET, which would be added as part
+ of bpo-25041. */
+ if (!PyArg_ParseTuple(args,
+ "si|iiy*;AF_PACKET address must be a tuple of "
+ "two to five elements",
+ &interfaceName, &protoNumber, &pkttype, &hatype,
&haddr))
- {
- assert(PyErr_Occurred());
- if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
- PyErr_Format(PyExc_OverflowError,
- "%s(): address argument out of range", caller);
- }
+ {
+ assert(PyErr_Occurred());
+ if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
+ PyErr_Format(PyExc_OverflowError,
+ "%s(): address argument out of range", caller);
+ }
return 0;
- }
+ }
strncpy(ifr.ifr_name, interfaceName, sizeof(ifr.ifr_name));
ifr.ifr_name[(sizeof(ifr.ifr_name))-1] = '\0';
if (ioctl(s->sock_fd, SIOCGIFINDEX, &ifr) < 0) {
@@ -2071,13 +2071,13 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
return 0;
}
if (protoNumber < 0 || protoNumber > 0xffff) {
- PyErr_Format(
+ PyErr_Format(
PyExc_OverflowError,
- "%s(): proto must be 0-65535.", caller);
+ "%s(): proto must be 0-65535.", caller);
PyBuffer_Release(&haddr);
return 0;
}
- struct sockaddr_ll* addr = &addrbuf->ll;
+ struct sockaddr_ll* addr = &addrbuf->ll;
addr->sll_family = AF_PACKET;
addr->sll_protocol = htons((short)protoNumber);
addr->sll_ifindex = ifr.ifr_ifindex;
@@ -2104,20 +2104,20 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
if (!PyTuple_Check(args)) {
PyErr_Format(
PyExc_TypeError,
- "%s(): AF_TIPC address must be tuple, not %.500s",
- caller, Py_TYPE(args)->tp_name);
+ "%s(): AF_TIPC address must be tuple, not %.500s",
+ caller, Py_TYPE(args)->tp_name);
return 0;
}
if (!PyArg_ParseTuple(args,
- "IIII|I;AF_TIPC address must be a tuple "
- "(addr_type, v1, v2, v3[, scope])",
- &atype, &v1, &v2, &v3, &scope))
- {
+ "IIII|I;AF_TIPC address must be a tuple "
+ "(addr_type, v1, v2, v3[, scope])",
+ &atype, &v1, &v2, &v3, &scope))
+ {
return 0;
- }
+ }
- struct sockaddr_tipc *addr = &addrbuf->tipc;
+ struct sockaddr_tipc *addr = &addrbuf->tipc;
memset(addr, 0, sizeof(struct sockaddr_tipc));
addr->family = AF_TIPC;
@@ -2161,21 +2161,21 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
PyObject *interfaceName;
struct ifreq ifr;
Py_ssize_t len;
- struct sockaddr_can *addr = &addrbuf->can;
+ struct sockaddr_can *addr = &addrbuf->can;
- if (!PyTuple_Check(args)) {
- PyErr_Format(PyExc_TypeError,
- "%s(): AF_CAN address must be tuple, not %.500s",
- caller, Py_TYPE(args)->tp_name);
+ if (!PyTuple_Check(args)) {
+ PyErr_Format(PyExc_TypeError,
+ "%s(): AF_CAN address must be tuple, not %.500s",
+ caller, Py_TYPE(args)->tp_name);
return 0;
- }
- if (!PyArg_ParseTuple(args,
- "O&;AF_CAN address must be a tuple "
- "(interface, )",
- PyUnicode_FSConverter, &interfaceName))
- {
- return 0;
- }
+ }
+ if (!PyArg_ParseTuple(args,
+ "O&;AF_CAN address must be a tuple "
+ "(interface, )",
+ PyUnicode_FSConverter, &interfaceName))
+ {
+ return 0;
+ }
len = PyBytes_GET_SIZE(interfaceName);
@@ -2213,7 +2213,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
Py_ssize_t len;
unsigned long int rx_id, tx_id;
- struct sockaddr_can *addr = &addrbuf->can;
+ struct sockaddr_can *addr = &addrbuf->can;
if (!PyArg_ParseTuple(args, "O&kk", PyUnicode_FSConverter,
&interfaceName,
@@ -2250,58 +2250,58 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
return 1;
}
#endif /* CAN_ISOTP */
-#ifdef CAN_J1939
- case CAN_J1939:
- {
- PyObject *interfaceName;
- struct ifreq ifr;
- Py_ssize_t len;
- unsigned long long j1939_name; /* at least 64 bits */
- unsigned int j1939_pgn; /* at least 32 bits */
- uint8_t j1939_addr;
-
- struct sockaddr_can *addr = &addrbuf->can;
-
- if (!PyArg_ParseTuple(args, "O&KIB", PyUnicode_FSConverter,
- &interfaceName,
- &j1939_name,
- &j1939_pgn,
- &j1939_addr))
- return 0;
-
- len = PyBytes_GET_SIZE(interfaceName);
-
- if (len == 0) {
- ifr.ifr_ifindex = 0;
- } else if ((size_t)len < sizeof(ifr.ifr_name)) {
- strncpy(ifr.ifr_name, PyBytes_AS_STRING(interfaceName), sizeof(ifr.ifr_name));
- ifr.ifr_name[(sizeof(ifr.ifr_name))-1] = '\0';
- if (ioctl(s->sock_fd, SIOCGIFINDEX, &ifr) < 0) {
- s->errorhandler();
- Py_DECREF(interfaceName);
- return 0;
- }
- } else {
- PyErr_SetString(PyExc_OSError,
- "AF_CAN interface name too long");
- Py_DECREF(interfaceName);
- return 0;
- }
-
- addr->can_family = AF_CAN;
- addr->can_ifindex = ifr.ifr_ifindex;
- addr->can_addr.j1939.name = (uint64_t)j1939_name;
- addr->can_addr.j1939.pgn = (uint32_t)j1939_pgn;
- addr->can_addr.j1939.addr = j1939_addr;
-
- *len_ret = sizeof(*addr);
- Py_DECREF(interfaceName);
- return 1;
- }
-#endif /* CAN_J1939 */
+#ifdef CAN_J1939
+ case CAN_J1939:
+ {
+ PyObject *interfaceName;
+ struct ifreq ifr;
+ Py_ssize_t len;
+ unsigned long long j1939_name; /* at least 64 bits */
+ unsigned int j1939_pgn; /* at least 32 bits */
+ uint8_t j1939_addr;
+
+ struct sockaddr_can *addr = &addrbuf->can;
+
+ if (!PyArg_ParseTuple(args, "O&KIB", PyUnicode_FSConverter,
+ &interfaceName,
+ &j1939_name,
+ &j1939_pgn,
+ &j1939_addr))
+ return 0;
+
+ len = PyBytes_GET_SIZE(interfaceName);
+
+ if (len == 0) {
+ ifr.ifr_ifindex = 0;
+ } else if ((size_t)len < sizeof(ifr.ifr_name)) {
+ strncpy(ifr.ifr_name, PyBytes_AS_STRING(interfaceName), sizeof(ifr.ifr_name));
+ ifr.ifr_name[(sizeof(ifr.ifr_name))-1] = '\0';
+ if (ioctl(s->sock_fd, SIOCGIFINDEX, &ifr) < 0) {
+ s->errorhandler();
+ Py_DECREF(interfaceName);
+ return 0;
+ }
+ } else {
+ PyErr_SetString(PyExc_OSError,
+ "AF_CAN interface name too long");
+ Py_DECREF(interfaceName);
+ return 0;
+ }
+
+ addr->can_family = AF_CAN;
+ addr->can_ifindex = ifr.ifr_ifindex;
+ addr->can_addr.j1939.name = (uint64_t)j1939_name;
+ addr->can_addr.j1939.pgn = (uint32_t)j1939_pgn;
+ addr->can_addr.j1939.addr = j1939_addr;
+
+ *len_ret = sizeof(*addr);
+ Py_DECREF(interfaceName);
+ return 1;
+ }
+#endif /* CAN_J1939 */
default:
- PyErr_Format(PyExc_OSError,
- "%s(): unsupported CAN protocol", caller);
+ PyErr_Format(PyExc_OSError,
+ "%s(): unsupported CAN protocol", caller);
return 0;
}
#endif /* AF_CAN && SIOCGIFINDEX */
@@ -2312,7 +2312,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
#ifdef SYSPROTO_CONTROL
case SYSPROTO_CONTROL:
{
- struct sockaddr_ctl *addr = &addrbuf->ctl;
+ struct sockaddr_ctl *addr = &addrbuf->ctl;
addr->sc_family = AF_SYSTEM;
addr->ss_sysaddr = AF_SYS_CONTROL;
@@ -2345,9 +2345,9 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
addr->sc_unit = 0;
} else if (!PyArg_ParseTuple(args, "II",
&(addr->sc_id), &(addr->sc_unit))) {
- PyErr_Format(PyExc_TypeError,
- "%s(): PF_SYSTEM address must be a str or "
- "a pair (id, unit)", caller);
+ PyErr_Format(PyExc_TypeError,
+ "%s(): PF_SYSTEM address must be a str or "
+ "a pair (id, unit)", caller);
return 0;
}
@@ -2356,8 +2356,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
}
#endif /* SYSPROTO_CONTROL */
default:
- PyErr_Format(PyExc_OSError,
- "%s(): unsupported PF_SYSTEM protocol", caller);
+ PyErr_Format(PyExc_OSError,
+ "%s(): unsupported PF_SYSTEM protocol", caller);
return 0;
}
#endif /* PF_SYSTEM */
@@ -2366,21 +2366,21 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
{
const char *type;
const char *name;
- struct sockaddr_alg *sa = &addrbuf->alg;
+ struct sockaddr_alg *sa = &addrbuf->alg;
memset(sa, 0, sizeof(*sa));
sa->salg_family = AF_ALG;
- if (!PyTuple_Check(args)) {
- PyErr_Format(PyExc_TypeError,
- "%s(): AF_ALG address must be tuple, not %.500s",
- caller, Py_TYPE(args)->tp_name);
- return 0;
- }
- if (!PyArg_ParseTuple(args,
- "ss|HH;AF_ALG address must be a tuple "
- "(type, name[, feat[, mask]])",
- &type, &name, &sa->salg_feat, &sa->salg_mask))
+ if (!PyTuple_Check(args)) {
+ PyErr_Format(PyExc_TypeError,
+ "%s(): AF_ALG address must be tuple, not %.500s",
+ caller, Py_TYPE(args)->tp_name);
+ return 0;
+ }
+ if (!PyArg_ParseTuple(args,
+ "ss|HH;AF_ALG address must be a tuple "
+ "(type, name[, feat[, mask]])",
+ &type, &name, &sa->salg_feat, &sa->salg_mask))
{
return 0;
}
@@ -2406,7 +2406,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
/* More cases here... */
default:
- PyErr_Format(PyExc_OSError, "%s(): bad family", caller);
+ PyErr_Format(PyExc_OSError, "%s(): bad family", caller);
return 0;
}
@@ -2438,14 +2438,14 @@ getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret)
}
#endif /* AF_NETLINK */
-#if defined(AF_QIPCRTR)
- case AF_QIPCRTR:
- {
- *len_ret = sizeof (struct sockaddr_qrtr);
- return 1;
- }
-#endif /* AF_QIPCRTR */
-
+#if defined(AF_QIPCRTR)
+ case AF_QIPCRTR:
+ {
+ *len_ret = sizeof (struct sockaddr_qrtr);
+ return 1;
+ }
+#endif /* AF_QIPCRTR */
+
#if defined(AF_VSOCK)
case AF_VSOCK:
{
@@ -2479,15 +2479,15 @@ getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret)
switch(s->sock_proto)
{
-#ifdef BTPROTO_L2CAP
+#ifdef BTPROTO_L2CAP
case BTPROTO_L2CAP:
*len_ret = sizeof (struct sockaddr_l2);
return 1;
-#endif /* BTPROTO_L2CAP */
+#endif /* BTPROTO_L2CAP */
case BTPROTO_RFCOMM:
*len_ret = sizeof (struct sockaddr_rc);
return 1;
-#ifdef BTPROTO_HCI
+#ifdef BTPROTO_HCI
case BTPROTO_HCI:
*len_ret = sizeof (struct sockaddr_hci);
return 1;
@@ -2496,7 +2496,7 @@ getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret)
*len_ret = sizeof (struct sockaddr_sco);
return 1;
#endif /* !__FreeBSD__ */
-#endif /* BTPROTO_HCI */
+#endif /* BTPROTO_HCI */
default:
PyErr_SetString(PyExc_OSError, "getsockaddrlen: "
"unknown BT protocol");
@@ -2747,7 +2747,7 @@ sock_accept_impl(PySocketSockObject *s, void *data)
/* s._accept() -> (fd, address) */
static PyObject *
-sock_accept(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_accept(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
sock_addr_t addrbuf;
SOCKET_T newfd;
@@ -2848,7 +2848,7 @@ setblocking(False) is equivalent to settimeout(0.0).");
False if it is in non-blocking mode.
*/
static PyObject *
-sock_getblocking(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_getblocking(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
if (s->sock_timeout) {
Py_RETURN_TRUE;
@@ -2960,7 +2960,7 @@ Setting a timeout of zero is the same as setblocking(0).");
/* s.gettimeout() method.
Returns the timeout associated with a socket. */
static PyObject *
-sock_gettimeout(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_gettimeout(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
if (s->sock_timeout < 0) {
Py_RETURN_NONE;
@@ -2974,8 +2974,8 @@ sock_gettimeout(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(gettimeout_doc,
"gettimeout() -> timeout\n\
\n\
-Returns the timeout in seconds (float) associated with socket\n\
-operations. A timeout of None indicates that timeouts on socket\n\
+Returns the timeout in seconds (float) associated with socket\n\
+operations. A timeout of None indicates that timeouts on socket\n\
operations are disabled.");
/* s.setsockopt() method.
@@ -3065,7 +3065,7 @@ setsockopt(level, option, value: buffer)\n\
setsockopt(level, option, None, optlen: int)\n\
\n\
Set a socket option. See the Unix manual for level and option.\n\
-The value argument can either be an integer, a string buffer, or\n\
+The value argument can either be an integer, a string buffer, or\n\
None, optlen.");
@@ -3150,14 +3150,14 @@ sock_bind(PySocketSockObject *s, PyObject *addro)
int addrlen;
int res;
- if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "bind")) {
+ if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "bind")) {
return NULL;
- }
-
- if (PySys_Audit("socket.bind", "OO", s, addro) < 0) {
- return NULL;
- }
-
+ }
+
+ if (PySys_Audit("socket.bind", "OO", s, addro) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
res = bind(s->sock_fd, SAS2SA(&addrbuf), addrlen);
Py_END_ALLOW_THREADS
@@ -3179,7 +3179,7 @@ sockets the address is a tuple (ifname, proto [,pkttype [,hatype [,addr]]])");
will surely fail. */
static PyObject *
-sock_close(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_close(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
SOCKET_T fd;
int res;
@@ -3210,7 +3210,7 @@ PyDoc_STRVAR(sock_close_doc,
Close the socket. It cannot be used after this call.");
static PyObject *
-sock_detach(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_detach(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
SOCKET_T fd = s->sock_fd;
s->sock_fd = INVALID_SOCKET;
@@ -3320,14 +3320,14 @@ sock_connect(PySocketSockObject *s, PyObject *addro)
int addrlen;
int res;
- if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "connect")) {
+ if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "connect")) {
return NULL;
- }
+ }
+
+ if (PySys_Audit("socket.connect", "OO", s, addro) < 0) {
+ return NULL;
+ }
- if (PySys_Audit("socket.connect", "OO", s, addro) < 0) {
- return NULL;
- }
-
res = internal_connect(s, SAS2SA(&addrbuf), addrlen, 1);
if (res < 0)
return NULL;
@@ -3351,14 +3351,14 @@ sock_connect_ex(PySocketSockObject *s, PyObject *addro)
int addrlen;
int res;
- if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "connect_ex")) {
+ if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "connect_ex")) {
+ return NULL;
+ }
+
+ if (PySys_Audit("socket.connect", "OO", s, addro) < 0) {
return NULL;
- }
+ }
- if (PySys_Audit("socket.connect", "OO", s, addro) < 0) {
- return NULL;
- }
-
res = internal_connect(s, SAS2SA(&addrbuf), addrlen, 0);
if (res < 0)
return NULL;
@@ -3376,7 +3376,7 @@ instead of raising an exception when an error occurs.");
/* s.fileno() method */
static PyObject *
-sock_fileno(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_fileno(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromSocket_t(s->sock_fd);
}
@@ -3390,7 +3390,7 @@ Return the integer file descriptor of the socket.");
/* s.getsockname() method */
static PyObject *
-sock_getsockname(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_getsockname(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
sock_addr_t addrbuf;
int res;
@@ -3411,16 +3411,16 @@ sock_getsockname(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(getsockname_doc,
"getsockname() -> address info\n\
\n\
-Return the address of the local endpoint. The format depends on the\n\
-address family. For IPv4 sockets, the address info is a pair\n\
-(hostaddr, port).");
+Return the address of the local endpoint. The format depends on the\n\
+address family. For IPv4 sockets, the address info is a pair\n\
+(hostaddr, port).");
#ifdef HAVE_GETPEERNAME /* Cray APP doesn't have this :-( */
/* s.getpeername() method */
static PyObject *
-sock_getpeername(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
+sock_getpeername(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))
{
sock_addr_t addrbuf;
int res;
@@ -3640,8 +3640,8 @@ sock_recv_into(PySocketSockObject *s, PyObject *args, PyObject *kwds)
PyDoc_STRVAR(recv_into_doc,
"recv_into(buffer, [nbytes[, flags]]) -> nbytes_read\n\
\n\
-A version of recv() that stores its data into a buffer rather than creating\n\
-a new string. Receive up to buffersize bytes from the socket. If buffersize\n\
+A version of recv() that stores its data into a buffer rather than creating\n\
+a new string. Receive up to buffersize bytes from the socket. If buffersize\n\
is not specified (or 0), receive up to the size available in the given buffer.\n\
\n\
See recv() for documentation about the flags.");
@@ -4347,7 +4347,7 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
break;
default:
PyErr_Format(PyExc_TypeError,
- "sendto() takes 2 or 3 arguments (%zd given)",
+ "sendto() takes 2 or 3 arguments (%zd given)",
arglen);
return NULL;
}
@@ -4357,15 +4357,15 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
return select_error();
}
- if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "sendto")) {
+ if (!getsockaddrarg(s, addro, &addrbuf, &addrlen, "sendto")) {
PyBuffer_Release(&pbuf);
return NULL;
}
- if (PySys_Audit("socket.sendto", "OO", s, addro) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("socket.sendto", "OO", s, addro) < 0) {
+ return NULL;
+ }
+
ctx.buf = pbuf.buf;
ctx.len = pbuf.len;
ctx.flags = flags;
@@ -4492,20 +4492,20 @@ sock_sendmsg(PySocketSockObject *s, PyObject *args)
/* Parse destination address. */
if (addr_arg != NULL && addr_arg != Py_None) {
- if (!getsockaddrarg(s, addr_arg, &addrbuf, &addrlen,
- "sendmsg"))
- {
+ if (!getsockaddrarg(s, addr_arg, &addrbuf, &addrlen,
+ "sendmsg"))
+ {
goto finally;
- }
- if (PySys_Audit("socket.sendmsg", "OO", s, addr_arg) < 0) {
- return NULL;
- }
+ }
+ if (PySys_Audit("socket.sendmsg", "OO", s, addr_arg) < 0) {
+ return NULL;
+ }
msg.msg_name = &addrbuf;
msg.msg_namelen = addrlen;
- } else {
- if (PySys_Audit("socket.sendmsg", "OO", s, Py_None) < 0) {
- return NULL;
- }
+ } else {
+ if (PySys_Audit("socket.sendmsg", "OO", s, Py_None) < 0) {
+ return NULL;
+ }
}
/* Fill in an iovec for each message part, and save the Py_buffer
@@ -4901,7 +4901,7 @@ sock_ioctl(PySocketSockObject *s, PyObject *arg)
return PyLong_FromUnsignedLong(recv); }
#endif
default:
- PyErr_Format(PyExc_ValueError, "invalid ioctl command %lu", cmd);
+ PyErr_Format(PyExc_ValueError, "invalid ioctl command %lu", cmd);
return NULL;
}
}
@@ -4980,11 +4980,11 @@ static PyMethodDef sock_methods[] = {
listen_doc},
{"recv", (PyCFunction)sock_recv, METH_VARARGS,
recv_doc},
- {"recv_into", (PyCFunction)(void(*)(void))sock_recv_into, METH_VARARGS | METH_KEYWORDS,
+ {"recv_into", (PyCFunction)(void(*)(void))sock_recv_into, METH_VARARGS | METH_KEYWORDS,
recv_into_doc},
{"recvfrom", (PyCFunction)sock_recvfrom, METH_VARARGS,
recvfrom_doc},
- {"recvfrom_into", (PyCFunction)(void(*)(void))sock_recvfrom_into, METH_VARARGS | METH_KEYWORDS,
+ {"recvfrom_into", (PyCFunction)(void(*)(void))sock_recvfrom_into, METH_VARARGS | METH_KEYWORDS,
recvfrom_into_doc},
{"send", (PyCFunction)sock_send, METH_VARARGS,
send_doc},
@@ -5013,7 +5013,7 @@ static PyMethodDef sock_methods[] = {
sendmsg_doc},
#endif
#ifdef HAVE_SOCKADDR_ALG
- {"sendmsg_afalg", (PyCFunction)(void(*)(void))sock_sendmsg_afalg, METH_VARARGS | METH_KEYWORDS,
+ {"sendmsg_afalg", (PyCFunction)(void(*)(void))sock_sendmsg_afalg, METH_VARARGS | METH_KEYWORDS,
sendmsg_afalg_doc},
#endif
{NULL, NULL} /* sentinel */
@@ -5155,17 +5155,17 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
&family, &type, &proto, &fdobj))
return -1;
-#ifdef MS_WINDOWS
- /* In this case, we don't use the family, type and proto args */
- if (fdobj == NULL || fdobj == Py_None)
-#endif
- {
- if (PySys_Audit("socket.__new__", "Oiii",
- s, family, type, proto) < 0) {
- return -1;
- }
- }
-
+#ifdef MS_WINDOWS
+ /* In this case, we don't use the family, type and proto args */
+ if (fdobj == NULL || fdobj == Py_None)
+#endif
+ {
+ if (PySys_Audit("socket.__new__", "Oiii",
+ s, family, type, proto) < 0) {
+ return -1;
+ }
+ }
+
if (fdobj != NULL && fdobj != Py_None) {
#ifdef MS_WINDOWS
/* recreate a socket that was duplicated */
@@ -5178,13 +5178,13 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
return -1;
}
memcpy(&info, PyBytes_AS_STRING(fdobj), sizeof(info));
-
- if (PySys_Audit("socket.__new__", "Oiii", s,
- info.iAddressFamily, info.iSocketType,
- info.iProtocol) < 0) {
- return -1;
- }
-
+
+ if (PySys_Audit("socket.__new__", "Oiii", s,
+ info.iAddressFamily, info.iSocketType,
+ info.iProtocol) < 0) {
+ return -1;
+ }
+
Py_BEGIN_ALLOW_THREADS
fd = WSASocketW(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
FROM_PROTOCOL_INFO, &info, 0, WSA_FLAG_OVERLAPPED);
@@ -5200,45 +5200,45 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
else
#endif
{
-
- if (PyFloat_Check(fdobj)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float");
- return -1;
- }
-
+
+ if (PyFloat_Check(fdobj)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float");
+ return -1;
+ }
+
fd = PyLong_AsSocket_t(fdobj);
if (fd == (SOCKET_T)(-1) && PyErr_Occurred())
return -1;
-#ifdef MS_WINDOWS
+#ifdef MS_WINDOWS
if (fd == INVALID_SOCKET) {
-#else
- if (fd < 0) {
-#endif
- PyErr_SetString(PyExc_ValueError, "negative file descriptor");
+#else
+ if (fd < 0) {
+#endif
+ PyErr_SetString(PyExc_ValueError, "negative file descriptor");
return -1;
}
- /* validate that passed file descriptor is valid and a socket. */
- sock_addr_t addrbuf;
- socklen_t addrlen = sizeof(sock_addr_t);
+ /* validate that passed file descriptor is valid and a socket. */
+ sock_addr_t addrbuf;
+ socklen_t addrlen = sizeof(sock_addr_t);
- memset(&addrbuf, 0, addrlen);
- if (getsockname(fd, SAS2SA(&addrbuf), &addrlen) == 0) {
- if (family == -1) {
+ memset(&addrbuf, 0, addrlen);
+ if (getsockname(fd, SAS2SA(&addrbuf), &addrlen) == 0) {
+ if (family == -1) {
family = SAS2SA(&addrbuf)->sa_family;
- }
- } else {
+ }
+ } else {
#ifdef MS_WINDOWS
- /* getsockname() on an unbound socket is an error on Windows.
- Invalid descriptor and not a socket is same error code.
- Error out if family must be resolved, or bad descriptor. */
- if (family == -1 || CHECK_ERRNO(ENOTSOCK)) {
+ /* getsockname() on an unbound socket is an error on Windows.
+ Invalid descriptor and not a socket is same error code.
+ Error out if family must be resolved, or bad descriptor. */
+ if (family == -1 || CHECK_ERRNO(ENOTSOCK)) {
#else
- /* getsockname() is not supported for SOL_ALG on Linux. */
- if (family == -1 || CHECK_ERRNO(EBADF) || CHECK_ERRNO(ENOTSOCK)) {
+ /* getsockname() is not supported for SOL_ALG on Linux. */
+ if (family == -1 || CHECK_ERRNO(EBADF) || CHECK_ERRNO(ENOTSOCK)) {
#endif
- set_error();
+ set_error();
return -1;
}
}
@@ -5251,7 +5251,7 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
{
type = tmp;
} else {
- set_error();
+ set_error();
return -1;
}
}
@@ -5267,7 +5267,7 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwds)
{
proto = tmp;
} else {
- set_error();
+ set_error();
return -1;
}
}
@@ -5374,10 +5374,10 @@ static PyTypeObject sock_type = {
sizeof(PySocketSockObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)sock_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)sock_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -5388,7 +5388,7 @@ static PyTypeObject sock_type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
sock_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
@@ -5426,10 +5426,10 @@ static PyTypeObject sock_type = {
static PyObject *
socket_gethostname(PyObject *self, PyObject *unused)
{
- if (PySys_Audit("socket.gethostname", NULL) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("socket.gethostname", NULL) < 0) {
+ return NULL;
+ }
+
#ifdef MS_WINDOWS
/* Don't use winsock's gethostname, as this returns the ANSI
version of the hostname, whereas we need a Unicode string.
@@ -5508,11 +5508,11 @@ extern int sethostname(const char *, size_t);
return NULL;
flag = 1;
}
-
- if (PySys_Audit("socket.sethostname", "(O)", hnobj) < 0) {
- return NULL;
- }
-
+
+ if (PySys_Audit("socket.sethostname", "(O)", hnobj) < 0) {
+ return NULL;
+ }
+
res = PyObject_GetBuffer(hnobj, &buf, PyBUF_SIMPLE);
if (!res) {
res = sethostname(buf.buf, buf.len);
@@ -5538,9 +5538,9 @@ socket_gethostbyname(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "et:gethostbyname", "idna", &name))
return NULL;
- if (PySys_Audit("socket.gethostbyname", "O", args) < 0) {
- goto finally;
- }
+ if (PySys_Audit("socket.gethostbyname", "O", args) < 0) {
+ goto finally;
+ }
if (setipaddr(name, (struct sockaddr *)&addrbuf, sizeof(addrbuf), AF_INET) < 0)
goto finally;
ret = make_ipv4_addr(&addrbuf);
@@ -5561,7 +5561,7 @@ sock_decode_hostname(const char *name)
#ifdef MS_WINDOWS
/* Issue #26227: gethostbyaddr() returns a string encoded
* to the ANSI code page */
- return PyUnicode_DecodeMBCS(name, strlen(name), "surrogatepass");
+ return PyUnicode_DecodeMBCS(name, strlen(name), "surrogatepass");
#else
/* Decode from UTF-8 */
return PyUnicode_FromString(name);
@@ -5725,9 +5725,9 @@ socket_gethostbyname_ex(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "et:gethostbyname_ex", "idna", &name))
return NULL;
- if (PySys_Audit("socket.gethostbyname", "O", args) < 0) {
- goto finally;
- }
+ if (PySys_Audit("socket.gethostbyname", "O", args) < 0) {
+ goto finally;
+ }
if (setipaddr(name, SAS2SA(&addr), sizeof(addr), AF_INET) < 0)
goto finally;
Py_BEGIN_ALLOW_THREADS
@@ -5806,9 +5806,9 @@ socket_gethostbyaddr(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "et:gethostbyaddr", "idna", &ip_num))
return NULL;
- if (PySys_Audit("socket.gethostbyaddr", "O", args) < 0) {
- goto finally;
- }
+ if (PySys_Audit("socket.gethostbyaddr", "O", args) < 0) {
+ goto finally;
+ }
af = AF_UNSPEC;
if (setipaddr(ip_num, sa, sizeof(addr), af) < 0)
goto finally;
@@ -5880,11 +5880,11 @@ socket_getservbyname(PyObject *self, PyObject *args)
struct servent *sp;
if (!PyArg_ParseTuple(args, "s|s:getservbyname", &name, &proto))
return NULL;
-
- if (PySys_Audit("socket.getservbyname", "ss", name, proto) < 0) {
- return NULL;
- }
-
+
+ if (PySys_Audit("socket.getservbyname", "ss", name, proto) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
sp = getservbyname(name, proto);
Py_END_ALLOW_THREADS
@@ -5922,11 +5922,11 @@ socket_getservbyport(PyObject *self, PyObject *args)
"getservbyport: port must be 0-65535.");
return NULL;
}
-
- if (PySys_Audit("socket.getservbyport", "is", port, proto) < 0) {
- return NULL;
- }
-
+
+ if (PySys_Audit("socket.getservbyport", "is", port, proto) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
sp = getservbyport(htons((short)port), proto);
Py_END_ALLOW_THREADS
@@ -6173,7 +6173,7 @@ Convert a 16-bit unsigned integer from network to host byte order.\n\
Note that in case the received integer does not fit in 16-bit unsigned\n\
integer, but does fit in a positive C int, it is silently truncated to\n\
16-bit unsigned integer.\n\
-However, this silent truncation feature is deprecated, and will raise an\n\
+However, this silent truncation feature is deprecated, and will raise an\n\
exception in future versions of Python.");
@@ -6244,7 +6244,7 @@ Convert a 16-bit unsigned integer from host to network byte order.\n\
Note that in case the received integer does not fit in 16-bit unsigned\n\
integer, but does fit in a positive C int, it is silently truncated to\n\
16-bit unsigned integer.\n\
-However, this silent truncation feature is deprecated, and will raise an\n\
+However, this silent truncation feature is deprecated, and will raise an\n\
exception in future versions of Python.");
@@ -6562,12 +6562,12 @@ socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs)
pptr = "00";
}
#endif
-
- if (PySys_Audit("socket.getaddrinfo", "OOiii",
- hobj, pobj, family, socktype, protocol) < 0) {
- return NULL;
- }
-
+
+ if (PySys_Audit("socket.getaddrinfo", "OOiii",
+ hobj, pobj, family, socktype, protocol) < 0) {
+ return NULL;
+ }
+
memset(&hints, 0, sizeof(hints));
hints.ai_family = family;
hints.ai_socktype = socktype;
@@ -6659,11 +6659,11 @@ socket_getnameinfo(PyObject *self, PyObject *args)
"getnameinfo(): flowinfo must be 0-1048575.");
return NULL;
}
-
- if (PySys_Audit("socket.getnameinfo", "(O)", sa) < 0) {
- return NULL;
- }
-
+
+ if (PySys_Audit("socket.getnameinfo", "(O)", sa) < 0) {
+ return NULL;
+ }
+
PyOS_snprintf(pbuf, sizeof(pbuf), "%d", port);
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC;
@@ -6731,7 +6731,7 @@ Get host and port for a sockaddr.");
/* Python API to getting and setting the default timeout value. */
static PyObject *
-socket_getdefaulttimeout(PyObject *self, PyObject *Py_UNUSED(ignored))
+socket_getdefaulttimeout(PyObject *self, PyObject *Py_UNUSED(ignored))
{
if (defaulttimeout < 0) {
Py_RETURN_NONE;
@@ -6769,52 +6769,52 @@ Set the default timeout in seconds (float) for new socket objects.\n\
A value of None indicates that new socket objects have no timeout.\n\
When the socket module is first imported, the default is None.");
-#if defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS)
+#if defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS)
/* Python API for getting interface indices and names */
static PyObject *
socket_if_nameindex(PyObject *self, PyObject *arg)
{
- PyObject *list = PyList_New(0);
- if (list == NULL) {
- return NULL;
- }
-#ifdef MS_WINDOWS
- PMIB_IF_TABLE2 tbl;
- int ret;
- if ((ret = GetIfTable2Ex(MibIfTableRaw, &tbl)) != NO_ERROR) {
- Py_DECREF(list);
- // ret is used instead of GetLastError()
- return PyErr_SetFromWindowsErr(ret);
- }
- for (ULONG i = 0; i < tbl->NumEntries; ++i) {
- MIB_IF_ROW2 r = tbl->Table[i];
- WCHAR buf[NDIS_IF_MAX_STRING_SIZE + 1];
- if ((ret = ConvertInterfaceLuidToNameW(&r.InterfaceLuid, buf,
- Py_ARRAY_LENGTH(buf)))) {
- Py_DECREF(list);
- FreeMibTable(tbl);
- // ret is used instead of GetLastError()
- return PyErr_SetFromWindowsErr(ret);
- }
- PyObject *tuple = Py_BuildValue("Iu", r.InterfaceIndex, buf);
- if (tuple == NULL || PyList_Append(list, tuple) == -1) {
- Py_XDECREF(tuple);
- Py_DECREF(list);
- FreeMibTable(tbl);
- return NULL;
- }
- Py_DECREF(tuple);
- }
- FreeMibTable(tbl);
- return list;
-#else
+ PyObject *list = PyList_New(0);
+ if (list == NULL) {
+ return NULL;
+ }
+#ifdef MS_WINDOWS
+ PMIB_IF_TABLE2 tbl;
+ int ret;
+ if ((ret = GetIfTable2Ex(MibIfTableRaw, &tbl)) != NO_ERROR) {
+ Py_DECREF(list);
+ // ret is used instead of GetLastError()
+ return PyErr_SetFromWindowsErr(ret);
+ }
+ for (ULONG i = 0; i < tbl->NumEntries; ++i) {
+ MIB_IF_ROW2 r = tbl->Table[i];
+ WCHAR buf[NDIS_IF_MAX_STRING_SIZE + 1];
+ if ((ret = ConvertInterfaceLuidToNameW(&r.InterfaceLuid, buf,
+ Py_ARRAY_LENGTH(buf)))) {
+ Py_DECREF(list);
+ FreeMibTable(tbl);
+ // ret is used instead of GetLastError()
+ return PyErr_SetFromWindowsErr(ret);
+ }
+ PyObject *tuple = Py_BuildValue("Iu", r.InterfaceIndex, buf);
+ if (tuple == NULL || PyList_Append(list, tuple) == -1) {
+ Py_XDECREF(tuple);
+ Py_DECREF(list);
+ FreeMibTable(tbl);
+ return NULL;
+ }
+ Py_DECREF(tuple);
+ }
+ FreeMibTable(tbl);
+ return list;
+#else
int i;
struct if_nameindex *ni;
ni = if_nameindex();
if (ni == NULL) {
- Py_DECREF(list);
+ Py_DECREF(list);
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
@@ -6850,7 +6850,7 @@ socket_if_nameindex(PyObject *self, PyObject *arg)
if_freenameindex(ni);
return list;
-#endif
+#endif
}
PyDoc_STRVAR(if_nameindex_doc,
@@ -6862,11 +6862,11 @@ static PyObject *
socket_if_nametoindex(PyObject *self, PyObject *args)
{
PyObject *oname;
-#ifdef MS_WINDOWS
- NET_IFINDEX index;
-#else
+#ifdef MS_WINDOWS
+ NET_IFINDEX index;
+#else
unsigned long index;
-#endif
+#endif
if (!PyArg_ParseTuple(args, "O&:if_nametoindex",
PyUnicode_FSConverter, &oname))
return NULL;
@@ -6890,11 +6890,11 @@ Returns the interface index corresponding to the interface name if_name.");
static PyObject *
socket_if_indextoname(PyObject *self, PyObject *arg)
{
-#ifdef MS_WINDOWS
- NET_IFINDEX index;
-#else
+#ifdef MS_WINDOWS
+ NET_IFINDEX index;
+#else
unsigned long index;
-#endif
+#endif
char name[IF_NAMESIZE + 1];
index = PyLong_AsUnsignedLong(arg);
@@ -6914,7 +6914,7 @@ PyDoc_STRVAR(if_indextoname_doc,
\n\
Returns the interface name corresponding to the interface index if_index.");
-#endif // defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS)
+#endif // defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS)
#ifdef CMSG_LEN
@@ -7028,15 +7028,15 @@ static PyMethodDef socket_methods[] = {
{"inet_ntop", socket_inet_ntop,
METH_VARARGS, inet_ntop_doc},
#endif
- {"getaddrinfo", (PyCFunction)(void(*)(void))socket_getaddrinfo,
+ {"getaddrinfo", (PyCFunction)(void(*)(void))socket_getaddrinfo,
METH_VARARGS | METH_KEYWORDS, getaddrinfo_doc},
{"getnameinfo", socket_getnameinfo,
METH_VARARGS, getnameinfo_doc},
- {"getdefaulttimeout", socket_getdefaulttimeout,
+ {"getdefaulttimeout", socket_getdefaulttimeout,
METH_NOARGS, getdefaulttimeout_doc},
{"setdefaulttimeout", socket_setdefaulttimeout,
METH_O, setdefaulttimeout_doc},
-#if defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS)
+#if defined(HAVE_IF_NAMEINDEX) || defined(MS_WINDOWS)
{"if_nameindex", socket_if_nameindex,
METH_NOARGS, if_nameindex_doc},
{"if_nametoindex", socket_if_nametoindex,
@@ -7159,7 +7159,7 @@ PyInit__socket(void)
}
#endif
- Py_SET_TYPE(&sock_type, &PyType_Type);
+ Py_SET_TYPE(&sock_type, &PyType_Type);
m = PyModule_Create(&socketmodule);
if (m == NULL)
return NULL;
@@ -7314,11 +7314,11 @@ PyInit__socket(void)
#endif
#endif /* AF_NETLINK */
-#ifdef AF_QIPCRTR
- /* Qualcomm IPCROUTER */
- PyModule_AddIntMacro(m, AF_QIPCRTR);
-#endif
-
+#ifdef AF_QIPCRTR
+ /* Qualcomm IPCROUTER */
+ PyModule_AddIntMacro(m, AF_QIPCRTR);
+#endif
+
#ifdef AF_VSOCK
PyModule_AddIntConstant(m, "AF_VSOCK", AF_VSOCK);
PyModule_AddIntConstant(m, "SO_VM_SOCKETS_BUFFER_SIZE", 0);
@@ -7373,10 +7373,10 @@ PyInit__socket(void)
#ifdef USE_BLUETOOTH
PyModule_AddIntMacro(m, AF_BLUETOOTH);
-#ifdef BTPROTO_L2CAP
+#ifdef BTPROTO_L2CAP
PyModule_AddIntMacro(m, BTPROTO_L2CAP);
-#endif /* BTPROTO_L2CAP */
-#ifdef BTPROTO_HCI
+#endif /* BTPROTO_L2CAP */
+#ifdef BTPROTO_HCI
PyModule_AddIntMacro(m, BTPROTO_HCI);
PyModule_AddIntMacro(m, SOL_HCI);
#if !defined(__NetBSD__) && !defined(__DragonFly__)
@@ -7384,18 +7384,18 @@ PyInit__socket(void)
#if !defined(__FreeBSD__)
PyModule_AddIntMacro(m, HCI_TIME_STAMP);
PyModule_AddIntMacro(m, HCI_DATA_DIR);
-#endif /* !__FreeBSD__ */
-#endif /* !__NetBSD__ && !__DragonFly__ */
-#endif /* BTPROTO_HCI */
-#ifdef BTPROTO_RFCOMM
+#endif /* !__FreeBSD__ */
+#endif /* !__NetBSD__ && !__DragonFly__ */
+#endif /* BTPROTO_HCI */
+#ifdef BTPROTO_RFCOMM
PyModule_AddIntMacro(m, BTPROTO_RFCOMM);
-#endif /* BTPROTO_RFCOMM */
+#endif /* BTPROTO_RFCOMM */
PyModule_AddStringConstant(m, "BDADDR_ANY", "00:00:00:00:00:00");
PyModule_AddStringConstant(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF");
-#ifdef BTPROTO_SCO
- PyModule_AddIntMacro(m, BTPROTO_SCO);
-#endif /* BTPROTO_SCO */
-#endif /* USE_BLUETOOTH */
+#ifdef BTPROTO_SCO
+ PyModule_AddIntMacro(m, BTPROTO_SCO);
+#endif /* BTPROTO_SCO */
+#endif /* USE_BLUETOOTH */
#ifdef AF_CAN
/* Controller Area Network */
@@ -7751,10 +7751,10 @@ PyInit__socket(void)
#ifdef CAN_ISOTP
PyModule_AddIntMacro(m, CAN_ISOTP);
#endif
-#ifdef CAN_J1939
- PyModule_AddIntMacro(m, CAN_J1939);
+#ifdef CAN_J1939
+ PyModule_AddIntMacro(m, CAN_J1939);
+#endif
#endif
-#endif
#ifdef HAVE_LINUX_CAN_RAW_H
PyModule_AddIntMacro(m, CAN_RAW_FILTER);
PyModule_AddIntMacro(m, CAN_RAW_ERR_FILTER);
@@ -7764,13 +7764,13 @@ PyInit__socket(void)
#ifdef HAVE_LINUX_CAN_RAW_FD_FRAMES
PyModule_AddIntMacro(m, CAN_RAW_FD_FRAMES);
#endif
-#ifdef HAVE_LINUX_CAN_RAW_JOIN_FILTERS
- PyModule_AddIntMacro(m, CAN_RAW_JOIN_FILTERS);
-#endif
+#ifdef HAVE_LINUX_CAN_RAW_JOIN_FILTERS
+ PyModule_AddIntMacro(m, CAN_RAW_JOIN_FILTERS);
+#endif
#ifdef HAVE_LINUX_CAN_BCM_H
PyModule_AddIntMacro(m, CAN_BCM);
-
- /* BCM opcodes */
+
+ /* BCM opcodes */
PyModule_AddIntConstant(m, "CAN_BCM_TX_SETUP", TX_SETUP);
PyModule_AddIntConstant(m, "CAN_BCM_TX_DELETE", TX_DELETE);
PyModule_AddIntConstant(m, "CAN_BCM_TX_READ", TX_READ);
@@ -7783,55 +7783,55 @@ PyInit__socket(void)
PyModule_AddIntConstant(m, "CAN_BCM_RX_STATUS", RX_STATUS);
PyModule_AddIntConstant(m, "CAN_BCM_RX_TIMEOUT", RX_TIMEOUT);
PyModule_AddIntConstant(m, "CAN_BCM_RX_CHANGED", RX_CHANGED);
-
- /* BCM flags */
- PyModule_AddIntConstant(m, "CAN_BCM_SETTIMER", SETTIMER);
- PyModule_AddIntConstant(m, "CAN_BCM_STARTTIMER", STARTTIMER);
- PyModule_AddIntConstant(m, "CAN_BCM_TX_COUNTEVT", TX_COUNTEVT);
- PyModule_AddIntConstant(m, "CAN_BCM_TX_ANNOUNCE", TX_ANNOUNCE);
- PyModule_AddIntConstant(m, "CAN_BCM_TX_CP_CAN_ID", TX_CP_CAN_ID);
- PyModule_AddIntConstant(m, "CAN_BCM_RX_FILTER_ID", RX_FILTER_ID);
- PyModule_AddIntConstant(m, "CAN_BCM_RX_CHECK_DLC", RX_CHECK_DLC);
- PyModule_AddIntConstant(m, "CAN_BCM_RX_NO_AUTOTIMER", RX_NO_AUTOTIMER);
- PyModule_AddIntConstant(m, "CAN_BCM_RX_ANNOUNCE_RESUME", RX_ANNOUNCE_RESUME);
- PyModule_AddIntConstant(m, "CAN_BCM_TX_RESET_MULTI_IDX", TX_RESET_MULTI_IDX);
- PyModule_AddIntConstant(m, "CAN_BCM_RX_RTR_FRAME", RX_RTR_FRAME);
-#ifdef CAN_FD_FRAME
- /* CAN_FD_FRAME was only introduced in the 4.8.x kernel series */
- PyModule_AddIntConstant(m, "CAN_BCM_CAN_FD_FRAME", CAN_FD_FRAME);
-#endif
-#endif
-#ifdef HAVE_LINUX_CAN_J1939_H
- PyModule_AddIntMacro(m, J1939_MAX_UNICAST_ADDR);
- PyModule_AddIntMacro(m, J1939_IDLE_ADDR);
- PyModule_AddIntMacro(m, J1939_NO_ADDR);
- PyModule_AddIntMacro(m, J1939_NO_NAME);
- PyModule_AddIntMacro(m, J1939_PGN_REQUEST);
- PyModule_AddIntMacro(m, J1939_PGN_ADDRESS_CLAIMED);
- PyModule_AddIntMacro(m, J1939_PGN_ADDRESS_COMMANDED);
- PyModule_AddIntMacro(m, J1939_PGN_PDU1_MAX);
- PyModule_AddIntMacro(m, J1939_PGN_MAX);
- PyModule_AddIntMacro(m, J1939_NO_PGN);
-
- /* J1939 socket options */
- PyModule_AddIntMacro(m, SO_J1939_FILTER);
- PyModule_AddIntMacro(m, SO_J1939_PROMISC);
- PyModule_AddIntMacro(m, SO_J1939_SEND_PRIO);
- PyModule_AddIntMacro(m, SO_J1939_ERRQUEUE);
-
- PyModule_AddIntMacro(m, SCM_J1939_DEST_ADDR);
- PyModule_AddIntMacro(m, SCM_J1939_DEST_NAME);
- PyModule_AddIntMacro(m, SCM_J1939_PRIO);
- PyModule_AddIntMacro(m, SCM_J1939_ERRQUEUE);
-
- PyModule_AddIntMacro(m, J1939_NLA_PAD);
- PyModule_AddIntMacro(m, J1939_NLA_BYTES_ACKED);
-
- PyModule_AddIntMacro(m, J1939_EE_INFO_NONE);
- PyModule_AddIntMacro(m, J1939_EE_INFO_TX_ABORT);
-
- PyModule_AddIntMacro(m, J1939_FILTER_MAX);
-#endif
+
+ /* BCM flags */
+ PyModule_AddIntConstant(m, "CAN_BCM_SETTIMER", SETTIMER);
+ PyModule_AddIntConstant(m, "CAN_BCM_STARTTIMER", STARTTIMER);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_COUNTEVT", TX_COUNTEVT);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_ANNOUNCE", TX_ANNOUNCE);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_CP_CAN_ID", TX_CP_CAN_ID);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_FILTER_ID", RX_FILTER_ID);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_CHECK_DLC", RX_CHECK_DLC);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_NO_AUTOTIMER", RX_NO_AUTOTIMER);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_ANNOUNCE_RESUME", RX_ANNOUNCE_RESUME);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_RESET_MULTI_IDX", TX_RESET_MULTI_IDX);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_RTR_FRAME", RX_RTR_FRAME);
+#ifdef CAN_FD_FRAME
+ /* CAN_FD_FRAME was only introduced in the 4.8.x kernel series */
+ PyModule_AddIntConstant(m, "CAN_BCM_CAN_FD_FRAME", CAN_FD_FRAME);
+#endif
+#endif
+#ifdef HAVE_LINUX_CAN_J1939_H
+ PyModule_AddIntMacro(m, J1939_MAX_UNICAST_ADDR);
+ PyModule_AddIntMacro(m, J1939_IDLE_ADDR);
+ PyModule_AddIntMacro(m, J1939_NO_ADDR);
+ PyModule_AddIntMacro(m, J1939_NO_NAME);
+ PyModule_AddIntMacro(m, J1939_PGN_REQUEST);
+ PyModule_AddIntMacro(m, J1939_PGN_ADDRESS_CLAIMED);
+ PyModule_AddIntMacro(m, J1939_PGN_ADDRESS_COMMANDED);
+ PyModule_AddIntMacro(m, J1939_PGN_PDU1_MAX);
+ PyModule_AddIntMacro(m, J1939_PGN_MAX);
+ PyModule_AddIntMacro(m, J1939_NO_PGN);
+
+ /* J1939 socket options */
+ PyModule_AddIntMacro(m, SO_J1939_FILTER);
+ PyModule_AddIntMacro(m, SO_J1939_PROMISC);
+ PyModule_AddIntMacro(m, SO_J1939_SEND_PRIO);
+ PyModule_AddIntMacro(m, SO_J1939_ERRQUEUE);
+
+ PyModule_AddIntMacro(m, SCM_J1939_DEST_ADDR);
+ PyModule_AddIntMacro(m, SCM_J1939_DEST_NAME);
+ PyModule_AddIntMacro(m, SCM_J1939_PRIO);
+ PyModule_AddIntMacro(m, SCM_J1939_ERRQUEUE);
+
+ PyModule_AddIntMacro(m, J1939_NLA_PAD);
+ PyModule_AddIntMacro(m, J1939_NLA_BYTES_ACKED);
+
+ PyModule_AddIntMacro(m, J1939_EE_INFO_NONE);
+ PyModule_AddIntMacro(m, J1939_EE_INFO_TX_ABORT);
+
+ PyModule_AddIntMacro(m, J1939_FILTER_MAX);
+#endif
#ifdef SOL_RDS
PyModule_AddIntMacro(m, SOL_RDS);
#endif
@@ -7900,17 +7900,17 @@ PyInit__socket(void)
#else
PyModule_AddIntConstant(m, "IPPROTO_UDP", 17);
#endif
-#ifdef IPPROTO_UDPLITE
- PyModule_AddIntMacro(m, IPPROTO_UDPLITE);
- #ifndef UDPLITE_SEND_CSCOV
- #define UDPLITE_SEND_CSCOV 10
- #endif
- PyModule_AddIntMacro(m, UDPLITE_SEND_CSCOV);
- #ifndef UDPLITE_RECV_CSCOV
- #define UDPLITE_RECV_CSCOV 11
- #endif
- PyModule_AddIntMacro(m, UDPLITE_RECV_CSCOV);
-#endif
+#ifdef IPPROTO_UDPLITE
+ PyModule_AddIntMacro(m, IPPROTO_UDPLITE);
+ #ifndef UDPLITE_SEND_CSCOV
+ #define UDPLITE_SEND_CSCOV 10
+ #endif
+ PyModule_AddIntMacro(m, UDPLITE_SEND_CSCOV);
+ #ifndef UDPLITE_RECV_CSCOV
+ #define UDPLITE_RECV_CSCOV 11
+ #endif
+ PyModule_AddIntMacro(m, UDPLITE_RECV_CSCOV);
+#endif
#ifdef IPPROTO_IDP
PyModule_AddIntMacro(m, IPPROTO_IDP);
#endif
@@ -7984,17 +7984,17 @@ PyInit__socket(void)
PyModule_AddIntMacro(m, IPPROTO_MAX);
#endif
-#ifdef MS_WINDOWS
- PyModule_AddIntMacro(m, IPPROTO_ICLFXBM);
- PyModule_AddIntMacro(m, IPPROTO_ST);
- PyModule_AddIntMacro(m, IPPROTO_CBT);
- PyModule_AddIntMacro(m, IPPROTO_IGP);
- PyModule_AddIntMacro(m, IPPROTO_RDP);
- PyModule_AddIntMacro(m, IPPROTO_PGM);
- PyModule_AddIntMacro(m, IPPROTO_L2TP);
- PyModule_AddIntMacro(m, IPPROTO_SCTP);
-#endif
-
+#ifdef MS_WINDOWS
+ PyModule_AddIntMacro(m, IPPROTO_ICLFXBM);
+ PyModule_AddIntMacro(m, IPPROTO_ST);
+ PyModule_AddIntMacro(m, IPPROTO_CBT);
+ PyModule_AddIntMacro(m, IPPROTO_IGP);
+ PyModule_AddIntMacro(m, IPPROTO_RDP);
+ PyModule_AddIntMacro(m, IPPROTO_PGM);
+ PyModule_AddIntMacro(m, IPPROTO_L2TP);
+ PyModule_AddIntMacro(m, IPPROTO_SCTP);
+#endif
+
#ifdef SYSPROTO_CONTROL
PyModule_AddIntMacro(m, SYSPROTO_CONTROL);
#endif
diff --git a/contrib/tools/python3/src/Modules/socketmodule.h b/contrib/tools/python3/src/Modules/socketmodule.h
index 0d226300b8..ba2c9f5c31 100644
--- a/contrib/tools/python3/src/Modules/socketmodule.h
+++ b/contrib/tools/python3/src/Modules/socketmodule.h
@@ -14,47 +14,47 @@
#else /* MS_WINDOWS */
# include <winsock2.h>
-
-/*
- * If Windows has bluetooth support, include bluetooth constants.
- */
-#ifdef AF_BTH
-# include <ws2bth.h>
-# include <pshpack1.h>
-
-/*
- * The current implementation assumes the bdaddr in the sockaddr structs
- * will be a bdaddr_t. We treat this as an opaque type: on *nix systems, it
- * will be a struct with a single member (an array of six bytes). On windows,
- * we typedef this to ULONGLONG to match the Windows definition.
- */
-typedef ULONGLONG bdaddr_t;
-
-/*
- * Redefine SOCKADDR_BTH to provide names compatible with _BT_RC_MEMB() macros.
- */
-struct SOCKADDR_BTH_REDEF {
- union {
- USHORT addressFamily;
- USHORT family;
- };
-
- union {
- ULONGLONG btAddr;
- bdaddr_t bdaddr;
- };
-
- GUID serviceClassId;
-
- union {
- ULONG port;
- ULONG channel;
- };
-
-};
-# include <poppack.h>
-#endif
-
+
+/*
+ * If Windows has bluetooth support, include bluetooth constants.
+ */
+#ifdef AF_BTH
+# include <ws2bth.h>
+# include <pshpack1.h>
+
+/*
+ * The current implementation assumes the bdaddr in the sockaddr structs
+ * will be a bdaddr_t. We treat this as an opaque type: on *nix systems, it
+ * will be a struct with a single member (an array of six bytes). On windows,
+ * we typedef this to ULONGLONG to match the Windows definition.
+ */
+typedef ULONGLONG bdaddr_t;
+
+/*
+ * Redefine SOCKADDR_BTH to provide names compatible with _BT_RC_MEMB() macros.
+ */
+struct SOCKADDR_BTH_REDEF {
+ union {
+ USHORT addressFamily;
+ USHORT family;
+ };
+
+ union {
+ ULONGLONG btAddr;
+ bdaddr_t bdaddr;
+ };
+
+ GUID serviceClassId;
+
+ union {
+ ULONG port;
+ ULONG channel;
+ };
+
+};
+# include <poppack.h>
+#endif
+
/* Windows 'supports' CMSG_LEN, but does not follow the POSIX standard
* interface at all, so there is no point including the code that
* attempts to use it.
@@ -95,15 +95,15 @@ typedef int socklen_t;
# undef AF_NETLINK
#endif
-#ifdef HAVE_LINUX_QRTR_H
-# ifdef HAVE_ASM_TYPES_H
-# include <asm/types.h>
-# endif
-# include <linux/qrtr.h>
-#else
-# undef AF_QIPCRTR
-#endif
-
+#ifdef HAVE_LINUX_QRTR_H
+# ifdef HAVE_ASM_TYPES_H
+# include <asm/types.h>
+# endif
+# include <linux/qrtr.h>
+#else
+# undef AF_QIPCRTR
+#endif
+
#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
#include <bluetooth/bluetooth.h>
#include <bluetooth/rfcomm.h>
@@ -144,10 +144,10 @@ typedef int socklen_t;
#include <linux/can/bcm.h>
#endif
-#ifdef HAVE_LINUX_CAN_J1939_H
-#include <linux/can/j1939.h>
-#endif
-
+#ifdef HAVE_LINUX_CAN_J1939_H
+#include <linux/can/j1939.h>
+#endif
+
#ifdef HAVE_SYS_SYS_DOMAIN_H
#include <sys/sys_domain.h>
#endif
@@ -239,18 +239,18 @@ typedef union sock_addr {
struct sockaddr_in6 in6;
struct sockaddr_storage storage;
#endif
-#if defined(HAVE_BLUETOOTH_H) && defined(__FreeBSD__)
- struct sockaddr_l2cap bt_l2;
- struct sockaddr_rfcomm bt_rc;
- struct sockaddr_sco bt_sco;
- struct sockaddr_hci bt_hci;
-#elif defined(HAVE_BLUETOOTH_BLUETOOTH_H)
+#if defined(HAVE_BLUETOOTH_H) && defined(__FreeBSD__)
+ struct sockaddr_l2cap bt_l2;
+ struct sockaddr_rfcomm bt_rc;
+ struct sockaddr_sco bt_sco;
+ struct sockaddr_hci bt_hci;
+#elif defined(HAVE_BLUETOOTH_BLUETOOTH_H)
struct sockaddr_l2 bt_l2;
struct sockaddr_rc bt_rc;
struct sockaddr_sco bt_sco;
struct sockaddr_hci bt_hci;
-#elif defined(MS_WINDOWS)
- struct SOCKADDR_BTH_REDEF bt_rc;
+#elif defined(MS_WINDOWS)
+ struct SOCKADDR_BTH_REDEF bt_rc;
#endif
#ifdef HAVE_NETPACKET_PACKET_H
struct sockaddr_ll ll;
@@ -264,15 +264,15 @@ typedef union sock_addr {
#ifdef HAVE_SOCKADDR_ALG
struct sockaddr_alg alg;
#endif
-#ifdef AF_QIPCRTR
- struct sockaddr_qrtr sq;
-#endif
+#ifdef AF_QIPCRTR
+ struct sockaddr_qrtr sq;
+#endif
#ifdef AF_VSOCK
struct sockaddr_vm vm;
#endif
-#ifdef HAVE_LINUX_TIPC_H
- struct sockaddr_tipc tipc;
-#endif
+#ifdef HAVE_LINUX_TIPC_H
+ struct sockaddr_tipc tipc;
+#endif
} sock_addr_t;
/* The object holding a socket. It holds some extra information,
diff --git a/contrib/tools/python3/src/Modules/sre.h b/contrib/tools/python3/src/Modules/sre.h
index fe1542c4ab..9b0d8b1904 100644
--- a/contrib/tools/python3/src/Modules/sre.h
+++ b/contrib/tools/python3/src/Modules/sre.h
@@ -54,17 +54,17 @@ typedef struct {
typedef struct SRE_REPEAT_T {
Py_ssize_t count;
- const SRE_CODE* pattern; /* points to REPEAT operator arguments */
- const void* last_ptr; /* helper to check for infinite loops */
+ const SRE_CODE* pattern; /* points to REPEAT operator arguments */
+ const void* last_ptr; /* helper to check for infinite loops */
struct SRE_REPEAT_T *prev; /* points to previous repeat context */
} SRE_REPEAT;
typedef struct {
/* string pointers */
- const void* ptr; /* current position (also end of current slice) */
- const void* beginning; /* start of original string */
- const void* start; /* start of current slice */
- const void* end; /* end of original string */
+ const void* ptr; /* current position (also end of current slice) */
+ const void* beginning; /* start of original string */
+ const void* start; /* start of current slice */
+ const void* end; /* end of original string */
/* attributes for the match object */
PyObject* string;
Py_buffer buffer;
@@ -74,7 +74,7 @@ typedef struct {
/* registers */
Py_ssize_t lastindex;
Py_ssize_t lastmark;
- const void** mark;
+ const void** mark;
int match_all;
int must_advance;
/* dynamically allocated stuff */
diff --git a/contrib/tools/python3/src/Modules/sre_lib.h b/contrib/tools/python3/src/Modules/sre_lib.h
index c52d3a92cb..2657d8d82c 100644
--- a/contrib/tools/python3/src/Modules/sre_lib.h
+++ b/contrib/tools/python3/src/Modules/sre_lib.h
@@ -13,7 +13,7 @@
/* This file is included three times, with different character settings */
LOCAL(int)
-SRE(at)(SRE_STATE* state, const SRE_CHAR* ptr, SRE_CODE at)
+SRE(at)(SRE_STATE* state, const SRE_CHAR* ptr, SRE_CODE at)
{
/* check if pointer is at given position */
@@ -101,7 +101,7 @@ SRE(at)(SRE_STATE* state, const SRE_CHAR* ptr, SRE_CODE at)
}
LOCAL(int)
-SRE(charset)(SRE_STATE* state, const SRE_CODE* set, SRE_CODE ch)
+SRE(charset)(SRE_STATE* state, const SRE_CODE* set, SRE_CODE ch)
{
/* check if character is a member of the given set */
@@ -188,7 +188,7 @@ SRE(charset)(SRE_STATE* state, const SRE_CODE* set, SRE_CODE ch)
}
LOCAL(int)
-SRE(charset_loc_ignore)(SRE_STATE* state, const SRE_CODE* set, SRE_CODE ch)
+SRE(charset_loc_ignore)(SRE_STATE* state, const SRE_CODE* set, SRE_CODE ch)
{
SRE_CODE lo, up;
lo = sre_lower_locale(ch);
@@ -199,15 +199,15 @@ SRE(charset_loc_ignore)(SRE_STATE* state, const SRE_CODE* set, SRE_CODE ch)
return up != lo && SRE(charset)(state, set, up);
}
-LOCAL(Py_ssize_t) SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel);
+LOCAL(Py_ssize_t) SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel);
LOCAL(Py_ssize_t)
-SRE(count)(SRE_STATE* state, const SRE_CODE* pattern, Py_ssize_t maxcount)
+SRE(count)(SRE_STATE* state, const SRE_CODE* pattern, Py_ssize_t maxcount)
{
SRE_CODE chr;
SRE_CHAR c;
- const SRE_CHAR* ptr = (const SRE_CHAR *)state->ptr;
- const SRE_CHAR* end = (const SRE_CHAR *)state->end;
+ const SRE_CHAR* ptr = (const SRE_CHAR *)state->ptr;
+ const SRE_CHAR* end = (const SRE_CHAR *)state->end;
Py_ssize_t i;
/* adjust end */
@@ -335,14 +335,14 @@ SRE(count)(SRE_STATE* state, const SRE_CODE* pattern, Py_ssize_t maxcount)
#if 0 /* not used in this release */
LOCAL(int)
-SRE(info)(SRE_STATE* state, const SRE_CODE* pattern)
+SRE(info)(SRE_STATE* state, const SRE_CODE* pattern)
{
/* check if an SRE_OP_INFO block matches at the current position.
returns the number of SRE_CODE objects to skip if successful, 0
if no match */
- const SRE_CHAR* end = (const SRE_CHAR*) state->end;
- const SRE_CHAR* ptr = (const SRE_CHAR*) state->ptr;
+ const SRE_CHAR* end = (const SRE_CHAR*) state->end;
+ const SRE_CHAR* ptr = (const SRE_CHAR*) state->ptr;
Py_ssize_t i;
/* check minimal length */
@@ -448,15 +448,15 @@ do { \
state->data_stack_base += size; \
} while (0)
-/* We add an explicit cast to memcpy here because MSVC has a bug when
- compiling C code where it believes that `const void**` cannot be
- safely casted to `void*`, see bpo-39943 for details. */
+/* We add an explicit cast to memcpy here because MSVC has a bug when
+ compiling C code where it believes that `const void**` cannot be
+ safely casted to `void*`, see bpo-39943 for details. */
#define DATA_STACK_POP(state, data, size, discard) \
do { \
TRACE(("copy data to %p from %" PY_FORMAT_SIZE_T "d " \
"(%" PY_FORMAT_SIZE_T "d)\n", \
data, state->data_stack_base-size, size)); \
- memcpy((void*) data, state->data_stack+state->data_stack_base-size, size); \
+ memcpy((void*) data, state->data_stack+state->data_stack_base-size, size); \
if (discard) \
state->data_stack_base -= size; \
} while (0)
@@ -534,8 +534,8 @@ do { \
typedef struct {
Py_ssize_t last_ctx_pos;
Py_ssize_t jump;
- const SRE_CHAR* ptr;
- const SRE_CODE* pattern;
+ const SRE_CHAR* ptr;
+ const SRE_CODE* pattern;
Py_ssize_t count;
Py_ssize_t lastmark;
Py_ssize_t lastindex;
@@ -549,9 +549,9 @@ typedef struct {
/* check if string matches the given pattern. returns <0 for
error, 0 for failure, and 1 for success */
LOCAL(Py_ssize_t)
-SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel)
+SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel)
{
- const SRE_CHAR* end = (const SRE_CHAR *)state->end;
+ const SRE_CHAR* end = (const SRE_CHAR *)state->end;
Py_ssize_t alloc_pos, ctx_pos = -1;
Py_ssize_t i, ret = 0;
Py_ssize_t jump;
diff --git a/contrib/tools/python3/src/Modules/symtablemodule.c b/contrib/tools/python3/src/Modules/symtablemodule.c
index eb33989acc..9180f185e1 100644
--- a/contrib/tools/python3/src/Modules/symtablemodule.c
+++ b/contrib/tools/python3/src/Modules/symtablemodule.c
@@ -14,7 +14,7 @@ module _symtable
/*[clinic input]
_symtable.symtable
- source: object
+ source: object
filename: object(converter='PyUnicode_FSDecoder')
startstr: str
/
@@ -23,23 +23,23 @@ Return symbol and scope dictionaries used internally by compiler.
[clinic start generated code]*/
static PyObject *
-_symtable_symtable_impl(PyObject *module, PyObject *source,
+_symtable_symtable_impl(PyObject *module, PyObject *source,
PyObject *filename, const char *startstr)
-/*[clinic end generated code: output=59eb0d5fc7285ac4 input=9dd8a50c0c36a4d7]*/
+/*[clinic end generated code: output=59eb0d5fc7285ac4 input=9dd8a50c0c36a4d7]*/
{
struct symtable *st;
PyObject *t;
int start;
- PyCompilerFlags cf = _PyCompilerFlags_INIT;
- PyObject *source_copy = NULL;
-
- cf.cf_flags = PyCF_SOURCE_IS_UTF8;
-
- const char *str = _Py_SourceAsString(source, "symtable", "string or bytes", &cf, &source_copy);
- if (str == NULL) {
- return NULL;
- }
-
+ PyCompilerFlags cf = _PyCompilerFlags_INIT;
+ PyObject *source_copy = NULL;
+
+ cf.cf_flags = PyCF_SOURCE_IS_UTF8;
+
+ const char *str = _Py_SourceAsString(source, "symtable", "string or bytes", &cf, &source_copy);
+ if (str == NULL) {
+ return NULL;
+ }
+
if (strcmp(startstr, "exec") == 0)
start = Py_file_input;
else if (strcmp(startstr, "eval") == 0)
@@ -50,15 +50,15 @@ _symtable_symtable_impl(PyObject *module, PyObject *source,
PyErr_SetString(PyExc_ValueError,
"symtable() arg 3 must be 'exec' or 'eval' or 'single'");
Py_DECREF(filename);
- Py_XDECREF(source_copy);
+ Py_XDECREF(source_copy);
return NULL;
}
- st = _Py_SymtableStringObjectFlags(str, filename, start, &cf);
+ st = _Py_SymtableStringObjectFlags(str, filename, start, &cf);
Py_DECREF(filename);
- Py_XDECREF(source_copy);
- if (st == NULL) {
+ Py_XDECREF(source_copy);
+ if (st == NULL) {
return NULL;
- }
+ }
t = (PyObject *)st->st_top;
Py_INCREF(t);
PyMem_Free((void *)st->st_future);
@@ -96,7 +96,7 @@ PyInit__symtable(void)
return NULL;
PyModule_AddIntMacro(m, USE);
PyModule_AddIntMacro(m, DEF_GLOBAL);
- PyModule_AddIntMacro(m, DEF_NONLOCAL);
+ PyModule_AddIntMacro(m, DEF_NONLOCAL);
PyModule_AddIntMacro(m, DEF_LOCAL);
PyModule_AddIntMacro(m, DEF_PARAM);
PyModule_AddIntMacro(m, DEF_FREE);
diff --git a/contrib/tools/python3/src/Modules/syslogmodule.c b/contrib/tools/python3/src/Modules/syslogmodule.c
index 2db71f7e6d..0f2fea15b3 100644
--- a/contrib/tools/python3/src/Modules/syslogmodule.c
+++ b/contrib/tools/python3/src/Modules/syslogmodule.c
@@ -50,7 +50,7 @@ Revision history:
/* syslog module */
#include "Python.h"
-#include "osdefs.h" // SEP
+#include "osdefs.h" // SEP
#include <syslog.h>
@@ -99,7 +99,7 @@ syslog_get_argv(void)
if (slash == -2)
return NULL;
if (slash != -1) {
- return PyUnicode_Substring(scriptobj, slash + 1, scriptlen);
+ return PyUnicode_Substring(scriptobj, slash + 1, scriptlen);
} else {
Py_INCREF(scriptobj);
return(scriptobj);
@@ -144,10 +144,10 @@ syslog_openlog(PyObject * self, PyObject * args, PyObject *kwds)
return NULL;
}
- if (PySys_Audit("syslog.openlog", "sll", ident, logopt, facility) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("syslog.openlog", "sll", ident, logopt, facility) < 0) {
+ return NULL;
+ }
+
openlog(ident, logopt, facility);
S_log_open = 1;
@@ -174,16 +174,16 @@ syslog_syslog(PyObject * self, PyObject * args)
if (message == NULL)
return NULL;
- if (PySys_Audit("syslog.syslog", "is", priority, message) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("syslog.syslog", "is", priority, message) < 0) {
+ return NULL;
+ }
+
/* if log is not opened, open it now */
if (!S_log_open) {
PyObject *openargs;
/* Continue even if PyTuple_New fails, because openlog(3) is optional.
- * So, we can still do logging in the unlikely event things are so hosed
+ * So, we can still do logging in the unlikely event things are so hosed
* that we can't do this tuple.
*/
if ((openargs = PyTuple_New(0))) {
@@ -202,9 +202,9 @@ syslog_syslog(PyObject * self, PyObject * args)
static PyObject *
syslog_closelog(PyObject *self, PyObject *unused)
{
- if (PySys_Audit("syslog.closelog", NULL) < 0) {
- return NULL;
- }
+ if (PySys_Audit("syslog.closelog", NULL) < 0) {
+ return NULL;
+ }
if (S_log_open) {
closelog();
Py_CLEAR(S_ident_o);
@@ -220,9 +220,9 @@ syslog_setlogmask(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "l;mask for priority", &maskpri))
return NULL;
- if (PySys_Audit("syslog.setlogmask", "(O)", args ? args : Py_None) < 0) {
- return NULL;
- }
+ if (PySys_Audit("syslog.setlogmask", "(O)", args ? args : Py_None) < 0) {
+ return NULL;
+ }
omaskpri = setlogmask(maskpri);
return PyLong_FromLong(omaskpri);
}
@@ -252,7 +252,7 @@ syslog_log_upto(PyObject *self, PyObject *args)
/* List of functions defined in the module */
static PyMethodDef syslog_methods[] = {
- {"openlog", (PyCFunction)(void(*)(void)) syslog_openlog, METH_VARARGS | METH_KEYWORDS},
+ {"openlog", (PyCFunction)(void(*)(void)) syslog_openlog, METH_VARARGS | METH_KEYWORDS},
{"closelog", syslog_closelog, METH_NOARGS},
{"syslog", syslog_syslog, METH_VARARGS},
{"setlogmask", syslog_setlogmask, METH_VARARGS},
@@ -262,54 +262,54 @@ static PyMethodDef syslog_methods[] = {
};
-static int
-syslog_exec(PyObject *module)
+static int
+syslog_exec(PyObject *module)
{
-#define ADD_INT_MACRO(module, macro) \
- do { \
- if (PyModule_AddIntConstant(module, #macro, macro) < 0) { \
- return -1; \
- } \
- } while (0)
+#define ADD_INT_MACRO(module, macro) \
+ do { \
+ if (PyModule_AddIntConstant(module, #macro, macro) < 0) { \
+ return -1; \
+ } \
+ } while (0)
/* Priorities */
- ADD_INT_MACRO(module, LOG_EMERG);
- ADD_INT_MACRO(module, LOG_ALERT);
- ADD_INT_MACRO(module, LOG_CRIT);
- ADD_INT_MACRO(module, LOG_ERR);
- ADD_INT_MACRO(module, LOG_WARNING);
- ADD_INT_MACRO(module, LOG_NOTICE);
- ADD_INT_MACRO(module, LOG_INFO);
- ADD_INT_MACRO(module, LOG_DEBUG);
+ ADD_INT_MACRO(module, LOG_EMERG);
+ ADD_INT_MACRO(module, LOG_ALERT);
+ ADD_INT_MACRO(module, LOG_CRIT);
+ ADD_INT_MACRO(module, LOG_ERR);
+ ADD_INT_MACRO(module, LOG_WARNING);
+ ADD_INT_MACRO(module, LOG_NOTICE);
+ ADD_INT_MACRO(module, LOG_INFO);
+ ADD_INT_MACRO(module, LOG_DEBUG);
/* openlog() option flags */
- ADD_INT_MACRO(module, LOG_PID);
- ADD_INT_MACRO(module, LOG_CONS);
- ADD_INT_MACRO(module, LOG_NDELAY);
+ ADD_INT_MACRO(module, LOG_PID);
+ ADD_INT_MACRO(module, LOG_CONS);
+ ADD_INT_MACRO(module, LOG_NDELAY);
#ifdef LOG_ODELAY
- ADD_INT_MACRO(module, LOG_ODELAY);
+ ADD_INT_MACRO(module, LOG_ODELAY);
#endif
#ifdef LOG_NOWAIT
- ADD_INT_MACRO(module, LOG_NOWAIT);
+ ADD_INT_MACRO(module, LOG_NOWAIT);
#endif
#ifdef LOG_PERROR
- ADD_INT_MACRO(module, LOG_PERROR);
+ ADD_INT_MACRO(module, LOG_PERROR);
#endif
/* Facilities */
- ADD_INT_MACRO(module, LOG_KERN);
- ADD_INT_MACRO(module, LOG_USER);
- ADD_INT_MACRO(module, LOG_MAIL);
- ADD_INT_MACRO(module, LOG_DAEMON);
- ADD_INT_MACRO(module, LOG_AUTH);
- ADD_INT_MACRO(module, LOG_LPR);
- ADD_INT_MACRO(module, LOG_LOCAL0);
- ADD_INT_MACRO(module, LOG_LOCAL1);
- ADD_INT_MACRO(module, LOG_LOCAL2);
- ADD_INT_MACRO(module, LOG_LOCAL3);
- ADD_INT_MACRO(module, LOG_LOCAL4);
- ADD_INT_MACRO(module, LOG_LOCAL5);
- ADD_INT_MACRO(module, LOG_LOCAL6);
- ADD_INT_MACRO(module, LOG_LOCAL7);
+ ADD_INT_MACRO(module, LOG_KERN);
+ ADD_INT_MACRO(module, LOG_USER);
+ ADD_INT_MACRO(module, LOG_MAIL);
+ ADD_INT_MACRO(module, LOG_DAEMON);
+ ADD_INT_MACRO(module, LOG_AUTH);
+ ADD_INT_MACRO(module, LOG_LPR);
+ ADD_INT_MACRO(module, LOG_LOCAL0);
+ ADD_INT_MACRO(module, LOG_LOCAL1);
+ ADD_INT_MACRO(module, LOG_LOCAL2);
+ ADD_INT_MACRO(module, LOG_LOCAL3);
+ ADD_INT_MACRO(module, LOG_LOCAL4);
+ ADD_INT_MACRO(module, LOG_LOCAL5);
+ ADD_INT_MACRO(module, LOG_LOCAL6);
+ ADD_INT_MACRO(module, LOG_LOCAL7);
#ifndef LOG_SYSLOG
#define LOG_SYSLOG LOG_DAEMON
@@ -324,35 +324,35 @@ syslog_exec(PyObject *module)
#define LOG_CRON LOG_DAEMON
#endif
- ADD_INT_MACRO(module, LOG_SYSLOG);
- ADD_INT_MACRO(module, LOG_CRON);
- ADD_INT_MACRO(module, LOG_UUCP);
- ADD_INT_MACRO(module, LOG_NEWS);
+ ADD_INT_MACRO(module, LOG_SYSLOG);
+ ADD_INT_MACRO(module, LOG_CRON);
+ ADD_INT_MACRO(module, LOG_UUCP);
+ ADD_INT_MACRO(module, LOG_NEWS);
#ifdef LOG_AUTHPRIV
- ADD_INT_MACRO(module, LOG_AUTHPRIV);
+ ADD_INT_MACRO(module, LOG_AUTHPRIV);
#endif
- return 0;
+ return 0;
}
-
-static PyModuleDef_Slot syslog_slots[] = {
- {Py_mod_exec, syslog_exec},
- {0, NULL}
-};
-
-/* Initialization function for the module */
-
-static struct PyModuleDef syslogmodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "syslog",
- .m_size = 0,
- .m_methods = syslog_methods,
- .m_slots = syslog_slots,
-};
-
-PyMODINIT_FUNC
-PyInit_syslog(void)
-{
- return PyModuleDef_Init(&syslogmodule);
-} \ No newline at end of file
+
+static PyModuleDef_Slot syslog_slots[] = {
+ {Py_mod_exec, syslog_exec},
+ {0, NULL}
+};
+
+/* Initialization function for the module */
+
+static struct PyModuleDef syslogmodule = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "syslog",
+ .m_size = 0,
+ .m_methods = syslog_methods,
+ .m_slots = syslog_slots,
+};
+
+PyMODINIT_FUNC
+PyInit_syslog(void)
+{
+ return PyModuleDef_Init(&syslogmodule);
+} \ No newline at end of file
diff --git a/contrib/tools/python3/src/Modules/termios.c b/contrib/tools/python3/src/Modules/termios.c
index 3a069aa19f..75e5e52320 100644
--- a/contrib/tools/python3/src/Modules/termios.c
+++ b/contrib/tools/python3/src/Modules/termios.c
@@ -18,7 +18,7 @@
#include <sys/ioctl.h>
/* HP-UX requires that this be included to pick up MDCD, MCTS, MDSR,
- * MDTR, MRI, and MRTS (apparently used internally by some things
+ * MDTR, MRI, and MRTS (apparently used internally by some things
* defined as macros; these are not used here directly).
*/
#ifdef HAVE_SYS_MODEM_H
@@ -39,20 +39,20 @@ All functions in this module take a file descriptor fd as their first\n\
argument. This can be an integer file descriptor, such as returned by\n\
sys.stdin.fileno(), or a file object, such as sys.stdin itself.");
-typedef struct {
- PyObject *TermiosError;
-} termiosmodulestate;
-
-static inline termiosmodulestate*
-get_termios_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (termiosmodulestate *)state;
-}
-
-#define modulestate_global get_termios_state(PyState_FindModule(&termiosmodule))
-
+typedef struct {
+ PyObject *TermiosError;
+} termiosmodulestate;
+
+static inline termiosmodulestate*
+get_termios_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (termiosmodulestate *)state;
+}
+
+#define modulestate_global get_termios_state(PyState_FindModule(&termiosmodule))
+
static int fdconv(PyObject* obj, void* p)
{
int fd;
@@ -65,8 +65,8 @@ static int fdconv(PyObject* obj, void* p)
return 0;
}
-static struct PyModuleDef termiosmodule;
-
+static struct PyModuleDef termiosmodule;
+
PyDoc_STRVAR(termios_tcgetattr__doc__,
"tcgetattr(fd) -> list_of_attrs\n\
\n\
@@ -94,7 +94,7 @@ termios_tcgetattr(PyObject *self, PyObject *args)
return NULL;
if (tcgetattr(fd, &mode) == -1)
- return PyErr_SetFromErrno(modulestate_global->TermiosError);
+ return PyErr_SetFromErrno(modulestate_global->TermiosError);
ispeed = cfgetispeed(&mode);
ospeed = cfgetospeed(&mode);
@@ -174,9 +174,9 @@ termios_tcsetattr(PyObject *self, PyObject *args)
}
/* Get the old mode, in case there are any hidden fields... */
- termiosmodulestate *state = modulestate_global;
+ termiosmodulestate *state = modulestate_global;
if (tcgetattr(fd, &mode) == -1)
- return PyErr_SetFromErrno(state->TermiosError);
+ return PyErr_SetFromErrno(state->TermiosError);
mode.c_iflag = (tcflag_t) PyLong_AsLong(PyList_GetItem(term, 0));
mode.c_oflag = (tcflag_t) PyLong_AsLong(PyList_GetItem(term, 1));
mode.c_cflag = (tcflag_t) PyLong_AsLong(PyList_GetItem(term, 2));
@@ -209,11 +209,11 @@ termios_tcsetattr(PyObject *self, PyObject *args)
}
if (cfsetispeed(&mode, (speed_t) ispeed) == -1)
- return PyErr_SetFromErrno(state->TermiosError);
+ return PyErr_SetFromErrno(state->TermiosError);
if (cfsetospeed(&mode, (speed_t) ospeed) == -1)
- return PyErr_SetFromErrno(state->TermiosError);
+ return PyErr_SetFromErrno(state->TermiosError);
if (tcsetattr(fd, when, &mode) == -1)
- return PyErr_SetFromErrno(state->TermiosError);
+ return PyErr_SetFromErrno(state->TermiosError);
Py_RETURN_NONE;
}
@@ -234,7 +234,7 @@ termios_tcsendbreak(PyObject *self, PyObject *args)
fdconv, &fd, &duration))
return NULL;
if (tcsendbreak(fd, duration) == -1)
- return PyErr_SetFromErrno(modulestate_global->TermiosError);
+ return PyErr_SetFromErrno(modulestate_global->TermiosError);
Py_RETURN_NONE;
}
@@ -253,7 +253,7 @@ termios_tcdrain(PyObject *self, PyObject *args)
fdconv, &fd))
return NULL;
if (tcdrain(fd) == -1)
- return PyErr_SetFromErrno(modulestate_global->TermiosError);
+ return PyErr_SetFromErrno(modulestate_global->TermiosError);
Py_RETURN_NONE;
}
@@ -275,7 +275,7 @@ termios_tcflush(PyObject *self, PyObject *args)
fdconv, &fd, &queue))
return NULL;
if (tcflush(fd, queue) == -1)
- return PyErr_SetFromErrno(modulestate_global->TermiosError);
+ return PyErr_SetFromErrno(modulestate_global->TermiosError);
Py_RETURN_NONE;
}
@@ -297,7 +297,7 @@ termios_tcflow(PyObject *self, PyObject *args)
fdconv, &fd, &action))
return NULL;
if (tcflow(fd, action) == -1)
- return PyErr_SetFromErrno(modulestate_global->TermiosError);
+ return PyErr_SetFromErrno(modulestate_global->TermiosError);
Py_RETURN_NONE;
}
@@ -621,39 +621,39 @@ static struct constant {
#ifdef B460800
{"B460800", B460800},
#endif
-#ifdef B500000
- {"B500000", B500000},
-#endif
-#ifdef B576000
- { "B576000", B576000},
-#endif
-#ifdef B921600
- { "B921600", B921600},
-#endif
-#ifdef B1000000
- { "B1000000", B1000000},
-#endif
-#ifdef B1152000
- { "B1152000", B1152000},
-#endif
-#ifdef B1500000
- { "B1500000", B1500000},
-#endif
-#ifdef B2000000
- { "B2000000", B2000000},
-#endif
-#ifdef B2500000
- { "B2500000", B2500000},
-#endif
-#ifdef B3000000
- { "B3000000", B3000000},
-#endif
-#ifdef B3500000
- { "B3500000", B3500000},
-#endif
-#ifdef B4000000
- { "B4000000", B4000000},
-#endif
+#ifdef B500000
+ {"B500000", B500000},
+#endif
+#ifdef B576000
+ { "B576000", B576000},
+#endif
+#ifdef B921600
+ { "B921600", B921600},
+#endif
+#ifdef B1000000
+ { "B1000000", B1000000},
+#endif
+#ifdef B1152000
+ { "B1152000", B1152000},
+#endif
+#ifdef B1500000
+ { "B1500000", B1500000},
+#endif
+#ifdef B2000000
+ { "B2000000", B2000000},
+#endif
+#ifdef B2500000
+ { "B2500000", B2500000},
+#endif
+#ifdef B3000000
+ { "B3000000", B3000000},
+#endif
+#ifdef B3500000
+ { "B3500000", B3500000},
+#endif
+#ifdef B4000000
+ { "B4000000", B4000000},
+#endif
#ifdef CBAUD
{"CBAUD", CBAUD},
#endif
@@ -983,30 +983,30 @@ static struct constant {
{NULL, 0}
};
-static int termiosmodule_traverse(PyObject *m, visitproc visit, void *arg) {
- Py_VISIT(get_termios_state(m)->TermiosError);
- return 0;
-}
-
-static int termiosmodule_clear(PyObject *m) {
- Py_CLEAR(get_termios_state(m)->TermiosError);
- return 0;
-}
-
-static void termiosmodule_free(void *m) {
- termiosmodule_clear((PyObject *)m);
-}
-
+static int termiosmodule_traverse(PyObject *m, visitproc visit, void *arg) {
+ Py_VISIT(get_termios_state(m)->TermiosError);
+ return 0;
+}
+
+static int termiosmodule_clear(PyObject *m) {
+ Py_CLEAR(get_termios_state(m)->TermiosError);
+ return 0;
+}
+
+static void termiosmodule_free(void *m) {
+ termiosmodule_clear((PyObject *)m);
+}
+
static struct PyModuleDef termiosmodule = {
PyModuleDef_HEAD_INIT,
"termios",
termios__doc__,
- sizeof(termiosmodulestate),
+ sizeof(termiosmodulestate),
termios_methods,
NULL,
- termiosmodule_traverse,
- termiosmodule_clear,
- termiosmodule_free,
+ termiosmodule_traverse,
+ termiosmodule_clear,
+ termiosmodule_free,
};
PyMODINIT_FUNC
@@ -1015,22 +1015,22 @@ PyInit_termios(void)
PyObject *m;
struct constant *constant = termios_constants;
- if ((m = PyState_FindModule(&termiosmodule)) != NULL) {
- Py_INCREF(m);
- return m;
- }
-
- if ((m = PyModule_Create(&termiosmodule)) == NULL) {
+ if ((m = PyState_FindModule(&termiosmodule)) != NULL) {
+ Py_INCREF(m);
+ return m;
+ }
+
+ if ((m = PyModule_Create(&termiosmodule)) == NULL) {
return NULL;
- }
+ }
- termiosmodulestate *state = get_termios_state(m);
- state->TermiosError = PyErr_NewException("termios.error", NULL, NULL);
- if (state->TermiosError == NULL) {
- return NULL;
+ termiosmodulestate *state = get_termios_state(m);
+ state->TermiosError = PyErr_NewException("termios.error", NULL, NULL);
+ if (state->TermiosError == NULL) {
+ return NULL;
}
- Py_INCREF(state->TermiosError);
- PyModule_AddObject(m, "error", state->TermiosError);
+ Py_INCREF(state->TermiosError);
+ PyModule_AddObject(m, "error", state->TermiosError);
while (constant->name != NULL) {
PyModule_AddIntConstant(m, constant->name, constant->value);
diff --git a/contrib/tools/python3/src/Modules/timemodule.c b/contrib/tools/python3/src/Modules/timemodule.c
index 10c3cd0bb3..df59f2aac5 100644
--- a/contrib/tools/python3/src/Modules/timemodule.c
+++ b/contrib/tools/python3/src/Modules/timemodule.c
@@ -24,17 +24,17 @@
# include <pthread.h>
#endif
-#if defined(_AIX)
-# include <sys/thread.h>
-#endif
-
+#if defined(_AIX)
+# include <sys/thread.h>
+#endif
+
#if defined(__WATCOMC__) && !defined(__QNX__)
-# include <i86.h>
+# include <i86.h>
#else
-# ifdef MS_WINDOWS
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-# endif /* MS_WINDOWS */
+# ifdef MS_WINDOWS
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+# endif /* MS_WINDOWS */
#endif /* !__WATCOMC__ || __QNX__ */
#ifdef _Py_MEMORY_SANITIZER
@@ -51,15 +51,15 @@
#define _Py_tzname tzname
#endif
-#if defined(__APPLE__ ) && defined(__has_builtin)
-# if __has_builtin(__builtin_available)
-# define HAVE_CLOCK_GETTIME_RUNTIME __builtin_available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)
-# endif
-#endif
-#ifndef HAVE_CLOCK_GETTIME_RUNTIME
-# define HAVE_CLOCK_GETTIME_RUNTIME 1
-#endif
-
+#if defined(__APPLE__ ) && defined(__has_builtin)
+# if __has_builtin(__builtin_available)
+# define HAVE_CLOCK_GETTIME_RUNTIME __builtin_available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)
+# endif
+#endif
+#ifndef HAVE_CLOCK_GETTIME_RUNTIME
+# define HAVE_CLOCK_GETTIME_RUNTIME 1
+#endif
+
#define SEC_TO_NS (1000 * 1000 * 1000)
/* Forward declarations */
@@ -158,29 +158,29 @@ perf_counter(_Py_clock_info_t *info)
}
#ifdef HAVE_CLOCK_GETTIME
-
-#ifdef __APPLE__
-/*
- * The clock_* functions will be removed from the module
- * dict entirely when the C API is not available.
- */
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunguarded-availability"
-#endif
-
+
+#ifdef __APPLE__
+/*
+ * The clock_* functions will be removed from the module
+ * dict entirely when the C API is not available.
+ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunguarded-availability"
+#endif
+
static PyObject *
time_clock_gettime(PyObject *self, PyObject *args)
{
int ret;
struct timespec tp;
-#if defined(_AIX) && (SIZEOF_LONG == 8)
- long clk_id;
- if (!PyArg_ParseTuple(args, "l:clock_gettime", &clk_id)) {
-#else
- int clk_id;
+#if defined(_AIX) && (SIZEOF_LONG == 8)
+ long clk_id;
+ if (!PyArg_ParseTuple(args, "l:clock_gettime", &clk_id)) {
+#else
+ int clk_id;
if (!PyArg_ParseTuple(args, "i:clock_gettime", &clk_id)) {
-#endif
+#endif
return NULL;
}
@@ -316,11 +316,11 @@ PyDoc_STRVAR(clock_getres_doc,
"clock_getres(clk_id) -> floating point number\n\
\n\
Return the resolution (precision) of the specified clock clk_id.");
-
-#ifdef __APPLE__
-#pragma clang diagnostic pop
-#endif
-
+
+#ifdef __APPLE__
+#pragma clang diagnostic pop
+#endif
+
#endif /* HAVE_CLOCK_GETRES */
#ifdef HAVE_PTHREAD_GETCPUCLOCKID
@@ -534,10 +534,10 @@ time_localtime(PyObject *self, PyObject *args)
#endif
}
-#if defined(__linux__) && !defined(__GLIBC__)
-static const char *utc_string = NULL;
-#endif
-
+#if defined(__linux__) && !defined(__GLIBC__)
+static const char *utc_string = NULL;
+#endif
+
PyDoc_STRVAR(localtime_doc,
"localtime([seconds]) -> (tm_year,tm_mon,tm_mday,tm_hour,tm_min,\n\
tm_sec,tm_wday,tm_yday,tm_isdst)\n\
@@ -577,35 +577,35 @@ gettmarg(PyObject *args, struct tm *p, const char *format)
p->tm_wday = (p->tm_wday + 1) % 7;
p->tm_yday--;
#ifdef HAVE_STRUCT_TM_TM_ZONE
- if (Py_IS_TYPE(args, &StructTimeType)) {
+ if (Py_IS_TYPE(args, &StructTimeType)) {
PyObject *item;
- item = PyStructSequence_GET_ITEM(args, 9);
- if (item != Py_None) {
- p->tm_zone = (char *)PyUnicode_AsUTF8(item);
- if (p->tm_zone == NULL) {
- return 0;
- }
-#if defined(__linux__) && !defined(__GLIBC__)
- // Make an attempt to return the C library's own timezone strings to
- // it. musl refuses to process a tm_zone field unless it produced
- // it. See issue #34672.
- if (utc_string && strcmp(p->tm_zone, utc_string) == 0) {
- p->tm_zone = utc_string;
- }
- else if (tzname[0] && strcmp(p->tm_zone, tzname[0]) == 0) {
- p->tm_zone = tzname[0];
- }
- else if (tzname[1] && strcmp(p->tm_zone, tzname[1]) == 0) {
- p->tm_zone = tzname[1];
- }
-#endif
- }
- item = PyStructSequence_GET_ITEM(args, 10);
- if (item != Py_None) {
- p->tm_gmtoff = PyLong_AsLong(item);
- if (PyErr_Occurred())
- return 0;
- }
+ item = PyStructSequence_GET_ITEM(args, 9);
+ if (item != Py_None) {
+ p->tm_zone = (char *)PyUnicode_AsUTF8(item);
+ if (p->tm_zone == NULL) {
+ return 0;
+ }
+#if defined(__linux__) && !defined(__GLIBC__)
+ // Make an attempt to return the C library's own timezone strings to
+ // it. musl refuses to process a tm_zone field unless it produced
+ // it. See issue #34672.
+ if (utc_string && strcmp(p->tm_zone, utc_string) == 0) {
+ p->tm_zone = utc_string;
+ }
+ else if (tzname[0] && strcmp(p->tm_zone, tzname[0]) == 0) {
+ p->tm_zone = tzname[0];
+ }
+ else if (tzname[1] && strcmp(p->tm_zone, tzname[1]) == 0) {
+ p->tm_zone = tzname[1];
+ }
+#endif
+ }
+ item = PyStructSequence_GET_ITEM(args, 10);
+ if (item != Py_None) {
+ p->tm_gmtoff = PyLong_AsLong(item);
+ if (PyErr_Occurred())
+ return 0;
+ }
}
#endif /* HAVE_STRUCT_TM_TM_ZONE */
return 1;
@@ -754,7 +754,7 @@ time_strftime(PyObject *self, PyObject *args)
return NULL;
}
-#if defined(_MSC_VER) || (defined(__sun) && defined(__SVR4)) || defined(_AIX) || defined(__VXWORKS__)
+#if defined(_MSC_VER) || (defined(__sun) && defined(__SVR4)) || defined(_AIX) || defined(__VXWORKS__)
if (buf.tm_year + 1900 < 1 || 9999 < buf.tm_year + 1900) {
PyErr_SetString(PyExc_ValueError,
"strftime() requires year in [1; 9999]");
@@ -979,71 +979,71 @@ not present, current time as returned by localtime() is used.");
#ifdef HAVE_MKTIME
static PyObject *
-time_mktime(PyObject *self, PyObject *tm_tuple)
+time_mktime(PyObject *self, PyObject *tm_tuple)
{
- struct tm tm;
+ struct tm tm;
time_t tt;
-
- if (!gettmarg(tm_tuple, &tm,
+
+ if (!gettmarg(tm_tuple, &tm,
"iiiiiiiii;mktime(): illegal time tuple argument"))
{
return NULL;
}
-
-#if defined(_AIX) || (defined(__VXWORKS__) && !defined(_WRS_CONFIG_LP64))
- /* bpo-19748: AIX mktime() valid range is 00:00:00 UTC, January 1, 1970
- to 03:14:07 UTC, January 19, 2038. Thanks to the workaround below,
- it is possible to support years in range [1902; 2037] */
- if (tm.tm_year < 2 || tm.tm_year > 137) {
- /* bpo-19748: On AIX, mktime() does not report overflow error
- for timestamp < -2^31 or timestamp > 2**31-1. VxWorks has the
- same issue when working in 32 bit mode. */
+
+#if defined(_AIX) || (defined(__VXWORKS__) && !defined(_WRS_CONFIG_LP64))
+ /* bpo-19748: AIX mktime() valid range is 00:00:00 UTC, January 1, 1970
+ to 03:14:07 UTC, January 19, 2038. Thanks to the workaround below,
+ it is possible to support years in range [1902; 2037] */
+ if (tm.tm_year < 2 || tm.tm_year > 137) {
+ /* bpo-19748: On AIX, mktime() does not report overflow error
+ for timestamp < -2^31 or timestamp > 2**31-1. VxWorks has the
+ same issue when working in 32 bit mode. */
PyErr_SetString(PyExc_OverflowError,
"mktime argument out of range");
return NULL;
}
#endif
-
-#ifdef _AIX
- /* bpo-34373: AIX mktime() has an integer overflow for years in range
- [1902; 1969]. Workaround the issue by using a year greater or equal than
- 1970 (tm_year >= 70): mktime() behaves correctly in that case
- (ex: properly report errors). tm_year and tm_wday are adjusted after
- mktime() call. */
- int orig_tm_year = tm.tm_year;
- int delta_days = 0;
- while (tm.tm_year < 70) {
- /* Use 4 years to account properly leap years */
- tm.tm_year += 4;
- delta_days -= (366 + (365 * 3));
- }
-#endif
-
- tm.tm_wday = -1; /* sentinel; original value ignored */
- tt = mktime(&tm);
-
+
+#ifdef _AIX
+ /* bpo-34373: AIX mktime() has an integer overflow for years in range
+ [1902; 1969]. Workaround the issue by using a year greater or equal than
+ 1970 (tm_year >= 70): mktime() behaves correctly in that case
+ (ex: properly report errors). tm_year and tm_wday are adjusted after
+ mktime() call. */
+ int orig_tm_year = tm.tm_year;
+ int delta_days = 0;
+ while (tm.tm_year < 70) {
+ /* Use 4 years to account properly leap years */
+ tm.tm_year += 4;
+ delta_days -= (366 + (365 * 3));
+ }
+#endif
+
+ tm.tm_wday = -1; /* sentinel; original value ignored */
+ tt = mktime(&tm);
+
/* Return value of -1 does not necessarily mean an error, but tm_wday
* cannot remain set to -1 if mktime succeeded. */
if (tt == (time_t)(-1)
/* Return value of -1 does not necessarily mean an error, but
* tm_wday cannot remain set to -1 if mktime succeeded. */
- && tm.tm_wday == -1)
+ && tm.tm_wday == -1)
{
PyErr_SetString(PyExc_OverflowError,
"mktime argument out of range");
return NULL;
}
-
-#ifdef _AIX
- if (delta_days != 0) {
- tm.tm_year = orig_tm_year;
- if (tm.tm_wday != -1) {
- tm.tm_wday = (tm.tm_wday + delta_days) % 7;
- }
- tt += delta_days * (24 * 3600);
- }
-#endif
-
+
+#ifdef _AIX
+ if (delta_days != 0) {
+ tm.tm_year = orig_tm_year;
+ if (tm.tm_wday != -1) {
+ tm.tm_wday = (tm.tm_wday + delta_days) % 7;
+ }
+ tt += delta_days * (24 * 3600);
+ }
+#endif
+
return PyFloat_FromDouble((double)tt);
}
@@ -1186,34 +1186,34 @@ _PyTime_GetProcessTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
#if defined(HAVE_CLOCK_GETTIME) \
&& (defined(CLOCK_PROCESS_CPUTIME_ID) || defined(CLOCK_PROF))
struct timespec ts;
-
- if (HAVE_CLOCK_GETTIME_RUNTIME) {
-
+
+ if (HAVE_CLOCK_GETTIME_RUNTIME) {
+
#ifdef CLOCK_PROF
- const clockid_t clk_id = CLOCK_PROF;
- const char *function = "clock_gettime(CLOCK_PROF)";
+ const clockid_t clk_id = CLOCK_PROF;
+ const char *function = "clock_gettime(CLOCK_PROF)";
#else
- const clockid_t clk_id = CLOCK_PROCESS_CPUTIME_ID;
- const char *function = "clock_gettime(CLOCK_PROCESS_CPUTIME_ID)";
-#endif
-
- if (clock_gettime(clk_id, &ts) == 0) {
- if (info) {
- struct timespec res;
- info->implementation = function;
- info->monotonic = 1;
- info->adjustable = 0;
- if (clock_getres(clk_id, &res)) {
- PyErr_SetFromErrno(PyExc_OSError);
- return -1;
- }
- info->resolution = res.tv_sec + res.tv_nsec * 1e-9;
- }
-
- if (_PyTime_FromTimespec(tp, &ts) < 0) {
+ const clockid_t clk_id = CLOCK_PROCESS_CPUTIME_ID;
+ const char *function = "clock_gettime(CLOCK_PROCESS_CPUTIME_ID)";
+#endif
+
+ if (clock_gettime(clk_id, &ts) == 0) {
+ if (info) {
+ struct timespec res;
+ info->implementation = function;
+ info->monotonic = 1;
+ info->adjustable = 0;
+ if (clock_getres(clk_id, &res)) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return -1;
+ }
+ info->resolution = res.tv_sec + res.tv_nsec * 1e-9;
+ }
+
+ if (_PyTime_FromTimespec(tp, &ts) < 0) {
return -1;
}
- return 0;
+ return 0;
}
}
#endif
@@ -1239,7 +1239,7 @@ _PyTime_GetProcessTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
return -1;
}
- _PyTime_t total = utime + stime;
+ _PyTime_t total = utime + stime;
*tp = total;
return 0;
}
@@ -1375,60 +1375,60 @@ _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
return 0;
}
-#elif defined(_AIX)
-#define HAVE_THREAD_TIME
-static int
-_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
-{
- /* bpo-40192: On AIX, thread_cputime() is preferred: it has nanosecond
- resolution, whereas clock_gettime(CLOCK_THREAD_CPUTIME_ID)
- has a resolution of 10 ms. */
- thread_cputime_t tc;
- if (thread_cputime(-1, &tc) != 0) {
- PyErr_SetFromErrno(PyExc_OSError);
- return -1;
- }
-
- if (info) {
- info->implementation = "thread_cputime()";
- info->monotonic = 1;
- info->adjustable = 0;
- info->resolution = 1e-9;
- }
- *tp = _PyTime_FromNanoseconds(tc.stime + tc.utime);
- return 0;
-}
-
-#elif defined(__sun) && defined(__SVR4)
-#define HAVE_THREAD_TIME
-static int
-_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
-{
- /* bpo-35455: On Solaris, CLOCK_THREAD_CPUTIME_ID clock is not always
- available; use gethrvtime() to substitute this functionality. */
- if (info) {
- info->implementation = "gethrvtime()";
- info->resolution = 1e-9;
- info->monotonic = 1;
- info->adjustable = 0;
- }
- *tp = _PyTime_FromNanoseconds(gethrvtime());
- return 0;
-}
-
+#elif defined(_AIX)
+#define HAVE_THREAD_TIME
+static int
+_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
+{
+ /* bpo-40192: On AIX, thread_cputime() is preferred: it has nanosecond
+ resolution, whereas clock_gettime(CLOCK_THREAD_CPUTIME_ID)
+ has a resolution of 10 ms. */
+ thread_cputime_t tc;
+ if (thread_cputime(-1, &tc) != 0) {
+ PyErr_SetFromErrno(PyExc_OSError);
+ return -1;
+ }
+
+ if (info) {
+ info->implementation = "thread_cputime()";
+ info->monotonic = 1;
+ info->adjustable = 0;
+ info->resolution = 1e-9;
+ }
+ *tp = _PyTime_FromNanoseconds(tc.stime + tc.utime);
+ return 0;
+}
+
+#elif defined(__sun) && defined(__SVR4)
+#define HAVE_THREAD_TIME
+static int
+_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
+{
+ /* bpo-35455: On Solaris, CLOCK_THREAD_CPUTIME_ID clock is not always
+ available; use gethrvtime() to substitute this functionality. */
+ if (info) {
+ info->implementation = "gethrvtime()";
+ info->resolution = 1e-9;
+ info->monotonic = 1;
+ info->adjustable = 0;
+ }
+ *tp = _PyTime_FromNanoseconds(gethrvtime());
+ return 0;
+}
+
#elif defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID)
#define HAVE_THREAD_TIME
-
-#if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)
+
+#if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)
+static int
+_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
+ __attribute__((availability(macos, introduced=10.12)))
+ __attribute__((availability(ios, introduced=10.0)))
+ __attribute__((availability(tvos, introduced=10.0)))
+ __attribute__((availability(watchos, introduced=3.0)));
+#endif
+
static int
-_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
- __attribute__((availability(macos, introduced=10.12)))
- __attribute__((availability(ios, introduced=10.0)))
- __attribute__((availability(tvos, introduced=10.0)))
- __attribute__((availability(watchos, introduced=3.0)));
-#endif
-
-static int
_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
{
struct timespec ts;
@@ -1459,15 +1459,15 @@ _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
#endif
#ifdef HAVE_THREAD_TIME
-#ifdef __APPLE__
-/*
- * The clock_* functions will be removed from the module
- * dict entirely when the C API is not available.
- */
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunguarded-availability"
-#endif
-
+#ifdef __APPLE__
+/*
+ * The clock_* functions will be removed from the module
+ * dict entirely when the C API is not available.
+ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunguarded-availability"
+#endif
+
static PyObject *
time_thread_time(PyObject *self, PyObject *unused)
{
@@ -1498,14 +1498,14 @@ PyDoc_STRVAR(thread_time_ns_doc,
\n\
Thread time for profiling as nanoseconds:\n\
sum of the kernel and user-space CPU time.");
-
-#ifdef __APPLE__
-#pragma clang diagnostic pop
+
+#ifdef __APPLE__
+#pragma clang diagnostic pop
+#endif
+
#endif
-#endif
-
static PyObject *
time_get_clock_info(PyObject *self, PyObject *args)
{
@@ -1552,19 +1552,19 @@ time_get_clock_info(PyObject *self, PyObject *args)
}
#ifdef HAVE_THREAD_TIME
else if (strcmp(name, "thread_time") == 0) {
-
-#ifdef __APPLE__
- if (HAVE_CLOCK_GETTIME_RUNTIME) {
-#endif
- if (_PyTime_GetThreadTimeWithInfo(&t, &info) < 0) {
- return NULL;
- }
-#ifdef __APPLE__
- } else {
- PyErr_SetString(PyExc_ValueError, "unknown clock");
+
+#ifdef __APPLE__
+ if (HAVE_CLOCK_GETTIME_RUNTIME) {
+#endif
+ if (_PyTime_GetThreadTimeWithInfo(&t, &info) < 0) {
+ return NULL;
+ }
+#ifdef __APPLE__
+ } else {
+ PyErr_SetString(PyExc_ValueError, "unknown clock");
return NULL;
}
-#endif
+#endif
}
#endif
else {
@@ -1633,7 +1633,7 @@ PyDoc_STRVAR(get_clock_info_doc,
\n\
Get information of the specified clock.");
-#ifndef HAVE_DECL_TZNAME
+#ifndef HAVE_DECL_TZNAME
static void
get_zone(char *zone, int n, struct tm *p)
{
@@ -1654,7 +1654,7 @@ get_gmtoff(time_t t, struct tm *p)
return timegm(p) - t;
#endif
}
-#endif // !HAVE_DECL_TZNAME
+#endif // !HAVE_DECL_TZNAME
static int
init_timezone(PyObject *m)
@@ -1677,7 +1677,7 @@ init_timezone(PyObject *m)
And I'm lazy and hate C so nyer.
*/
-#ifdef HAVE_DECL_TZNAME
+#ifdef HAVE_DECL_TZNAME
PyObject *otz0, *otz1;
tzset();
PyModule_AddIntConstant(m, "timezone", _Py_timezone);
@@ -1687,19 +1687,19 @@ init_timezone(PyObject *m)
PyModule_AddIntConstant(m, "altzone", _Py_timezone-3600);
#endif
PyModule_AddIntConstant(m, "daylight", _Py_daylight);
-#ifdef MS_WINDOWS
- TIME_ZONE_INFORMATION tzinfo = {0};
- GetTimeZoneInformation(&tzinfo);
- otz0 = PyUnicode_FromWideChar(tzinfo.StandardName, -1);
- if (otz0 == NULL) {
- return -1;
- }
- otz1 = PyUnicode_FromWideChar(tzinfo.DaylightName, -1);
- if (otz1 == NULL) {
- Py_DECREF(otz0);
- return -1;
- }
-#else
+#ifdef MS_WINDOWS
+ TIME_ZONE_INFORMATION tzinfo = {0};
+ GetTimeZoneInformation(&tzinfo);
+ otz0 = PyUnicode_FromWideChar(tzinfo.StandardName, -1);
+ if (otz0 == NULL) {
+ return -1;
+ }
+ otz1 = PyUnicode_FromWideChar(tzinfo.DaylightName, -1);
+ if (otz1 == NULL) {
+ Py_DECREF(otz0);
+ return -1;
+ }
+#else
otz0 = PyUnicode_DecodeLocale(_Py_tzname[0], "surrogateescape");
if (otz0 == NULL) {
return -1;
@@ -1709,59 +1709,59 @@ init_timezone(PyObject *m)
Py_DECREF(otz0);
return -1;
}
-#endif // MS_WINDOWS
+#endif // MS_WINDOWS
PyObject *tzname_obj = Py_BuildValue("(NN)", otz0, otz1);
if (tzname_obj == NULL) {
return -1;
}
PyModule_AddObject(m, "tzname", tzname_obj);
-#else // !HAVE_DECL_TZNAME
- static const time_t YEAR = (365 * 24 + 6) * 3600;
- time_t t;
- struct tm p;
- time_t janzone_t, julyzone_t;
- char janname[10], julyname[10];
- t = (time((time_t *)0) / YEAR) * YEAR;
- _PyTime_localtime(t, &p);
- get_zone(janname, 9, &p);
- janzone_t = -get_gmtoff(t, &p);
- janname[9] = '\0';
- t += YEAR/2;
- _PyTime_localtime(t, &p);
- get_zone(julyname, 9, &p);
- julyzone_t = -get_gmtoff(t, &p);
- julyname[9] = '\0';
-
- /* Sanity check, don't check for the validity of timezones.
- In practice, it should be more in range -12 hours .. +14 hours. */
+#else // !HAVE_DECL_TZNAME
+ static const time_t YEAR = (365 * 24 + 6) * 3600;
+ time_t t;
+ struct tm p;
+ time_t janzone_t, julyzone_t;
+ char janname[10], julyname[10];
+ t = (time((time_t *)0) / YEAR) * YEAR;
+ _PyTime_localtime(t, &p);
+ get_zone(janname, 9, &p);
+ janzone_t = -get_gmtoff(t, &p);
+ janname[9] = '\0';
+ t += YEAR/2;
+ _PyTime_localtime(t, &p);
+ get_zone(julyname, 9, &p);
+ julyzone_t = -get_gmtoff(t, &p);
+ julyname[9] = '\0';
+
+ /* Sanity check, don't check for the validity of timezones.
+ In practice, it should be more in range -12 hours .. +14 hours. */
#define MAX_TIMEZONE (48 * 3600)
- if (janzone_t < -MAX_TIMEZONE || janzone_t > MAX_TIMEZONE
- || julyzone_t < -MAX_TIMEZONE || julyzone_t > MAX_TIMEZONE)
- {
- PyErr_SetString(PyExc_RuntimeError, "invalid GMT offset");
- return -1;
- }
- int janzone = (int)janzone_t;
- int julyzone = (int)julyzone_t;
-
- PyObject *tzname_obj;
- if (janzone < julyzone) {
- /* DST is reversed in the southern hemisphere */
- PyModule_AddIntConstant(m, "timezone", julyzone);
- PyModule_AddIntConstant(m, "altzone", janzone);
- PyModule_AddIntConstant(m, "daylight", janzone != julyzone);
- tzname_obj = Py_BuildValue("(zz)", julyname, janname);
- } else {
- PyModule_AddIntConstant(m, "timezone", janzone);
- PyModule_AddIntConstant(m, "altzone", julyzone);
- PyModule_AddIntConstant(m, "daylight", janzone != julyzone);
- tzname_obj = Py_BuildValue("(zz)", janname, julyname);
- }
- if (tzname_obj == NULL) {
- return -1;
- }
- PyModule_AddObject(m, "tzname", tzname_obj);
-#endif // !HAVE_DECL_TZNAME
+ if (janzone_t < -MAX_TIMEZONE || janzone_t > MAX_TIMEZONE
+ || julyzone_t < -MAX_TIMEZONE || julyzone_t > MAX_TIMEZONE)
+ {
+ PyErr_SetString(PyExc_RuntimeError, "invalid GMT offset");
+ return -1;
+ }
+ int janzone = (int)janzone_t;
+ int julyzone = (int)julyzone_t;
+
+ PyObject *tzname_obj;
+ if (janzone < julyzone) {
+ /* DST is reversed in the southern hemisphere */
+ PyModule_AddIntConstant(m, "timezone", julyzone);
+ PyModule_AddIntConstant(m, "altzone", janzone);
+ PyModule_AddIntConstant(m, "daylight", janzone != julyzone);
+ tzname_obj = Py_BuildValue("(zz)", julyname, janname);
+ } else {
+ PyModule_AddIntConstant(m, "timezone", janzone);
+ PyModule_AddIntConstant(m, "altzone", julyzone);
+ PyModule_AddIntConstant(m, "daylight", janzone != julyzone);
+ tzname_obj = Py_BuildValue("(zz)", janname, julyname);
+ }
+ if (tzname_obj == NULL) {
+ return -1;
+ }
+ PyModule_AddObject(m, "tzname", tzname_obj);
+#endif // !HAVE_DECL_TZNAME
if (PyErr_Occurred()) {
return -1;
@@ -1842,171 +1842,171 @@ if it is 1, the time is given in the DST time zone;\n\
if it is -1, mktime() should guess based on the date and time.\n");
-static int
-time_exec(PyObject *module)
-{
-#if defined(__APPLE__) && defined(HAVE_CLOCK_GETTIME)
- if (HAVE_CLOCK_GETTIME_RUNTIME) {
- /* pass: ^^^ cannot use '!' here */
- } else {
- PyObject* dct = PyModule_GetDict(module);
- if (dct == NULL) {
- return -1;
- }
-
- if (PyDict_DelItemString(dct, "clock_gettime") == -1) {
- PyErr_Clear();
- }
- if (PyDict_DelItemString(dct, "clock_gettime_ns") == -1) {
- PyErr_Clear();
- }
- if (PyDict_DelItemString(dct, "clock_settime") == -1) {
- PyErr_Clear();
- }
- if (PyDict_DelItemString(dct, "clock_settime_ns") == -1) {
- PyErr_Clear();
- }
- if (PyDict_DelItemString(dct, "clock_getres") == -1) {
- PyErr_Clear();
- }
- }
-#endif
-#if defined(__APPLE__) && defined(HAVE_THREAD_TIME)
- if (HAVE_CLOCK_GETTIME_RUNTIME) {
- /* pass: ^^^ cannot use '!' here */
- } else {
- PyObject* dct = PyModule_GetDict(module);
-
- if (PyDict_DelItemString(dct, "thread_time") == -1) {
- PyErr_Clear();
- }
- if (PyDict_DelItemString(dct, "thread_time_ns") == -1) {
- PyErr_Clear();
- }
- }
-#endif
+static int
+time_exec(PyObject *module)
+{
+#if defined(__APPLE__) && defined(HAVE_CLOCK_GETTIME)
+ if (HAVE_CLOCK_GETTIME_RUNTIME) {
+ /* pass: ^^^ cannot use '!' here */
+ } else {
+ PyObject* dct = PyModule_GetDict(module);
+ if (dct == NULL) {
+ return -1;
+ }
+
+ if (PyDict_DelItemString(dct, "clock_gettime") == -1) {
+ PyErr_Clear();
+ }
+ if (PyDict_DelItemString(dct, "clock_gettime_ns") == -1) {
+ PyErr_Clear();
+ }
+ if (PyDict_DelItemString(dct, "clock_settime") == -1) {
+ PyErr_Clear();
+ }
+ if (PyDict_DelItemString(dct, "clock_settime_ns") == -1) {
+ PyErr_Clear();
+ }
+ if (PyDict_DelItemString(dct, "clock_getres") == -1) {
+ PyErr_Clear();
+ }
+ }
+#endif
+#if defined(__APPLE__) && defined(HAVE_THREAD_TIME)
+ if (HAVE_CLOCK_GETTIME_RUNTIME) {
+ /* pass: ^^^ cannot use '!' here */
+ } else {
+ PyObject* dct = PyModule_GetDict(module);
+
+ if (PyDict_DelItemString(dct, "thread_time") == -1) {
+ PyErr_Clear();
+ }
+ if (PyDict_DelItemString(dct, "thread_time_ns") == -1) {
+ PyErr_Clear();
+ }
+ }
+#endif
/* Set, or reset, module variables like time.timezone */
- if (init_timezone(module) < 0) {
- return -1;
+ if (init_timezone(module) < 0) {
+ return -1;
}
#if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_CLOCK_SETTIME) || defined(HAVE_CLOCK_GETRES)
- if (HAVE_CLOCK_GETTIME_RUNTIME) {
+ if (HAVE_CLOCK_GETTIME_RUNTIME) {
#ifdef CLOCK_REALTIME
- if (PyModule_AddIntMacro(module, CLOCK_REALTIME) < 0) {
- return -1;
- }
+ if (PyModule_AddIntMacro(module, CLOCK_REALTIME) < 0) {
+ return -1;
+ }
#endif
-
+
#ifdef CLOCK_MONOTONIC
-
- if (PyModule_AddIntMacro(module, CLOCK_MONOTONIC) < 0) {
- return -1;
- }
-
+
+ if (PyModule_AddIntMacro(module, CLOCK_MONOTONIC) < 0) {
+ return -1;
+ }
+
#endif
#ifdef CLOCK_MONOTONIC_RAW
- if (PyModule_AddIntMacro(module, CLOCK_MONOTONIC_RAW) < 0) {
- return -1;
- }
+ if (PyModule_AddIntMacro(module, CLOCK_MONOTONIC_RAW) < 0) {
+ return -1;
+ }
#endif
-
+
#ifdef CLOCK_HIGHRES
- if (PyModule_AddIntMacro(module, CLOCK_HIGHRES) < 0) {
- return -1;
- }
+ if (PyModule_AddIntMacro(module, CLOCK_HIGHRES) < 0) {
+ return -1;
+ }
#endif
#ifdef CLOCK_PROCESS_CPUTIME_ID
- if (PyModule_AddIntMacro(module, CLOCK_PROCESS_CPUTIME_ID) < 0) {
- return -1;
- }
+ if (PyModule_AddIntMacro(module, CLOCK_PROCESS_CPUTIME_ID) < 0) {
+ return -1;
+ }
#endif
-
+
#ifdef CLOCK_THREAD_CPUTIME_ID
- if (PyModule_AddIntMacro(module, CLOCK_THREAD_CPUTIME_ID) < 0) {
- return -1;
- }
+ if (PyModule_AddIntMacro(module, CLOCK_THREAD_CPUTIME_ID) < 0) {
+ return -1;
+ }
#endif
#ifdef CLOCK_PROF
- if (PyModule_AddIntMacro(module, CLOCK_PROF) < 0) {
- return -1;
- }
+ if (PyModule_AddIntMacro(module, CLOCK_PROF) < 0) {
+ return -1;
+ }
#endif
#ifdef CLOCK_BOOTTIME
- if (PyModule_AddIntMacro(module, CLOCK_BOOTTIME) < 0) {
- return -1;
- }
-#endif
-#ifdef CLOCK_TAI
- if (PyModule_AddIntMacro(module, CLOCK_TAI) < 0) {
- return -1;
- }
-#endif
+ if (PyModule_AddIntMacro(module, CLOCK_BOOTTIME) < 0) {
+ return -1;
+ }
+#endif
+#ifdef CLOCK_TAI
+ if (PyModule_AddIntMacro(module, CLOCK_TAI) < 0) {
+ return -1;
+ }
+#endif
#ifdef CLOCK_UPTIME
- if (PyModule_AddIntMacro(module, CLOCK_UPTIME) < 0) {
- return -1;
- }
-#endif
-#ifdef CLOCK_UPTIME_RAW
-
- if (PyModule_AddIntMacro(module, CLOCK_UPTIME_RAW) < 0) {
- return -1;
- }
-#endif
- }
+ if (PyModule_AddIntMacro(module, CLOCK_UPTIME) < 0) {
+ return -1;
+ }
+#endif
+#ifdef CLOCK_UPTIME_RAW
+
+ if (PyModule_AddIntMacro(module, CLOCK_UPTIME_RAW) < 0) {
+ return -1;
+ }
+#endif
+ }
#endif /* defined(HAVE_CLOCK_GETTIME) || defined(HAVE_CLOCK_SETTIME) || defined(HAVE_CLOCK_GETRES) */
if (!initialized) {
if (PyStructSequence_InitType2(&StructTimeType,
- &struct_time_type_desc) < 0) {
- return -1;
- }
+ &struct_time_type_desc) < 0) {
+ return -1;
+ }
+ }
+ if (PyModule_AddIntConstant(module, "_STRUCT_TM_ITEMS", 11)) {
+ return -1;
}
- if (PyModule_AddIntConstant(module, "_STRUCT_TM_ITEMS", 11)) {
- return -1;
- }
Py_INCREF(&StructTimeType);
- if (PyModule_AddObject(module, "struct_time", (PyObject*) &StructTimeType)) {
- Py_DECREF(&StructTimeType);
- return -1;
- }
+ if (PyModule_AddObject(module, "struct_time", (PyObject*) &StructTimeType)) {
+ Py_DECREF(&StructTimeType);
+ return -1;
+ }
initialized = 1;
-#if defined(__linux__) && !defined(__GLIBC__)
- struct tm tm;
- const time_t zero = 0;
- if (gmtime_r(&zero, &tm) != NULL)
- utc_string = tm.tm_zone;
-#endif
-
- return 0;
+#if defined(__linux__) && !defined(__GLIBC__)
+ struct tm tm;
+ const time_t zero = 0;
+ if (gmtime_r(&zero, &tm) != NULL)
+ utc_string = tm.tm_zone;
+#endif
+
+ return 0;
+}
+
+static struct PyModuleDef_Slot time_slots[] = {
+ {Py_mod_exec, time_exec},
+ {0, NULL}
+};
+
+static struct PyModuleDef timemodule = {
+ PyModuleDef_HEAD_INIT,
+ "time",
+ module_doc,
+ 0,
+ time_methods,
+ time_slots,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyMODINIT_FUNC
+PyInit_time(void)
+{
+ return PyModuleDef_Init(&timemodule);
}
-static struct PyModuleDef_Slot time_slots[] = {
- {Py_mod_exec, time_exec},
- {0, NULL}
-};
-
-static struct PyModuleDef timemodule = {
- PyModuleDef_HEAD_INIT,
- "time",
- module_doc,
- 0,
- time_methods,
- time_slots,
- NULL,
- NULL,
- NULL
-};
-
-PyMODINIT_FUNC
-PyInit_time(void)
-{
- return PyModuleDef_Init(&timemodule);
-}
-
/* Implement pysleep() for various platforms.
When interrupted (or when another error occurs), return -1 and
set an exception; else return 0. */
diff --git a/contrib/tools/python3/src/Modules/unicodedata.c b/contrib/tools/python3/src/Modules/unicodedata.c
index 847c16da72..8a1198a2b7 100644
--- a/contrib/tools/python3/src/Modules/unicodedata.c
+++ b/contrib/tools/python3/src/Modules/unicodedata.c
@@ -17,15 +17,15 @@
#include "Python.h"
#include "ucnhash.h"
-#include "structmember.h" // PyMemberDef
-
-#include <stdbool.h>
-
-_Py_IDENTIFIER(NFC);
-_Py_IDENTIFIER(NFD);
-_Py_IDENTIFIER(NFKC);
-_Py_IDENTIFIER(NFKD);
-
+#include "structmember.h" // PyMemberDef
+
+#include <stdbool.h>
+
+_Py_IDENTIFIER(NFC);
+_Py_IDENTIFIER(NFD);
+_Py_IDENTIFIER(NFKC);
+_Py_IDENTIFIER(NFKD);
+
/*[clinic input]
module unicodedata
class unicodedata.UCD 'PreviousDBVersion *' '&UCD_Type'
@@ -92,7 +92,7 @@ static PyMemberDef DB_members[] = {
/* forward declaration */
static PyTypeObject UCD_Type;
-#define UCD_Check(o) Py_IS_TYPE(o, &UCD_Type)
+#define UCD_Check(o) Py_IS_TYPE(o, &UCD_Type)
static PyObject*
new_previous_version(const char*name, const change_record* (*getrecord)(Py_UCS4),
@@ -496,7 +496,7 @@ nfd_nfkd(PyObject *self, PyObject *input, int k)
Py_UCS4 *output;
Py_ssize_t i, o, osize;
int kind;
- const void *data;
+ const void *data;
/* Longest decomposition in Unicode 3.2: U+FDFA */
Py_UCS4 stack[20];
Py_ssize_t space, isize;
@@ -623,7 +623,7 @@ nfd_nfkd(PyObject *self, PyObject *input, int k)
}
static int
-find_nfc_index(const struct reindex* nfc, Py_UCS4 code)
+find_nfc_index(const struct reindex* nfc, Py_UCS4 code)
{
unsigned int index;
for (index = 0; nfc[index].start; index++) {
@@ -643,7 +643,7 @@ nfc_nfkc(PyObject *self, PyObject *input, int k)
{
PyObject *result;
int kind;
- const void *data;
+ const void *data;
Py_UCS4 *output;
Py_ssize_t i, i1, o, len;
int f,l,index,index1,comb;
@@ -709,7 +709,7 @@ nfc_nfkc(PyObject *self, PyObject *input, int k)
}
/* code is still input[i] here */
- f = find_nfc_index(nfc_first, code);
+ f = find_nfc_index(nfc_first, code);
if (f == -1) {
output[o++] = code;
i++;
@@ -732,7 +732,7 @@ nfc_nfkc(PyObject *self, PyObject *input, int k)
continue;
}
}
- l = find_nfc_index(nfc_last, code1);
+ l = find_nfc_index(nfc_last, code1);
/* i1 cannot be combined with i. If i1
is a starter, we don't need to look further.
Otherwise, record the combining class. */
@@ -757,7 +757,7 @@ nfc_nfkc(PyObject *self, PyObject *input, int k)
assert(cskipped < 20);
skipped[cskipped++] = i1;
i1++;
- f = find_nfc_index(nfc_first, output[o]);
+ f = find_nfc_index(nfc_first, output[o]);
if (f == -1)
break;
}
@@ -777,40 +777,40 @@ nfc_nfkc(PyObject *self, PyObject *input, int k)
return result;
}
-// This needs to match the logic in makeunicodedata.py
-// which constructs the quickcheck data.
-typedef enum {YES = 0, MAYBE = 1, NO = 2} QuickcheckResult;
-
-/* Run the Unicode normalization "quickcheck" algorithm.
- *
- * Return YES or NO if quickcheck determines the input is certainly
- * normalized or certainly not, and MAYBE if quickcheck is unable to
- * tell.
- *
- * If `yes_only` is true, then return MAYBE as soon as we determine
- * the answer is not YES.
- *
- * For background and details on the algorithm, see UAX #15:
- * https://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms
- */
-static QuickcheckResult
-is_normalized_quickcheck(PyObject *self, PyObject *input,
- bool nfc, bool k, bool yes_only)
+// This needs to match the logic in makeunicodedata.py
+// which constructs the quickcheck data.
+typedef enum {YES = 0, MAYBE = 1, NO = 2} QuickcheckResult;
+
+/* Run the Unicode normalization "quickcheck" algorithm.
+ *
+ * Return YES or NO if quickcheck determines the input is certainly
+ * normalized or certainly not, and MAYBE if quickcheck is unable to
+ * tell.
+ *
+ * If `yes_only` is true, then return MAYBE as soon as we determine
+ * the answer is not YES.
+ *
+ * For background and details on the algorithm, see UAX #15:
+ * https://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms
+ */
+static QuickcheckResult
+is_normalized_quickcheck(PyObject *self, PyObject *input,
+ bool nfc, bool k, bool yes_only)
{
- /* An older version of the database is requested, quickchecks must be
- disabled. */
- if (self && UCD_Check(self))
- return NO;
-
+ /* An older version of the database is requested, quickchecks must be
+ disabled. */
+ if (self && UCD_Check(self))
+ return NO;
+
Py_ssize_t i, len;
int kind;
- const void *data;
- unsigned char prev_combining = 0;
+ const void *data;
+ unsigned char prev_combining = 0;
- /* The two quickcheck bits at this shift have type QuickcheckResult. */
- int quickcheck_shift = (nfc ? 4 : 0) + (k ? 2 : 0);
+ /* The two quickcheck bits at this shift have type QuickcheckResult. */
+ int quickcheck_shift = (nfc ? 4 : 0) + (k ? 2 : 0);
- QuickcheckResult result = YES; /* certainly normalized, unless we find something */
+ QuickcheckResult result = YES; /* certainly normalized, unless we find something */
i = 0;
kind = PyUnicode_KIND(input);
@@ -819,106 +819,106 @@ is_normalized_quickcheck(PyObject *self, PyObject *input,
while (i < len) {
Py_UCS4 ch = PyUnicode_READ(kind, data, i++);
const _PyUnicode_DatabaseRecord *record = _getrecord_ex(ch);
-
+
unsigned char combining = record->combining;
if (combining && prev_combining > combining)
- return NO; /* non-canonical sort order, not normalized */
+ return NO; /* non-canonical sort order, not normalized */
prev_combining = combining;
-
- unsigned char quickcheck_whole = record->normalization_quick_check;
- if (yes_only) {
- if (quickcheck_whole & (3 << quickcheck_shift))
- return MAYBE;
- } else {
- switch ((quickcheck_whole >> quickcheck_shift) & 3) {
- case NO:
- return NO;
- case MAYBE:
- result = MAYBE; /* this string might need normalization */
- }
- }
+
+ unsigned char quickcheck_whole = record->normalization_quick_check;
+ if (yes_only) {
+ if (quickcheck_whole & (3 << quickcheck_shift))
+ return MAYBE;
+ } else {
+ switch ((quickcheck_whole >> quickcheck_shift) & 3) {
+ case NO:
+ return NO;
+ case MAYBE:
+ result = MAYBE; /* this string might need normalization */
+ }
+ }
}
- return result;
+ return result;
}
/*[clinic input]
-unicodedata.UCD.is_normalized
-
- self: self
- form: unicode
- unistr as input: unicode
- /
-
-Return whether the Unicode string unistr is in the normal form 'form'.
-
-Valid values for form are 'NFC', 'NFKC', 'NFD', and 'NFKD'.
-[clinic start generated code]*/
-
-static PyObject *
-unicodedata_UCD_is_normalized_impl(PyObject *self, PyObject *form,
- PyObject *input)
-/*[clinic end generated code: output=11e5a3694e723ca5 input=a544f14cea79e508]*/
-{
- if (PyUnicode_READY(input) == -1) {
- return NULL;
- }
-
- if (PyUnicode_GET_LENGTH(input) == 0) {
- /* special case empty input strings. */
- Py_RETURN_TRUE;
- }
-
- PyObject *result;
- bool nfc = false;
- bool k = false;
- QuickcheckResult m;
-
- PyObject *cmp;
- int match = 0;
-
- if (_PyUnicode_EqualToASCIIId(form, &PyId_NFC)) {
- nfc = true;
- }
- else if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKC)) {
- nfc = true;
- k = true;
- }
- else if (_PyUnicode_EqualToASCIIId(form, &PyId_NFD)) {
- /* matches default values for `nfc` and `k` */
- }
- else if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKD)) {
- k = true;
- }
- else {
- PyErr_SetString(PyExc_ValueError, "invalid normalization form");
- return NULL;
- }
-
- m = is_normalized_quickcheck(self, input, nfc, k, false);
-
- if (m == MAYBE) {
- cmp = (nfc ? nfc_nfkc : nfd_nfkd)(self, input, k);
- if (cmp == NULL) {
- return NULL;
- }
- match = PyUnicode_Compare(input, cmp);
- Py_DECREF(cmp);
- result = (match == 0) ? Py_True : Py_False;
- }
- else {
- result = (m == YES) ? Py_True : Py_False;
- }
-
- Py_INCREF(result);
- return result;
-}
-
-
-/*[clinic input]
+unicodedata.UCD.is_normalized
+
+ self: self
+ form: unicode
+ unistr as input: unicode
+ /
+
+Return whether the Unicode string unistr is in the normal form 'form'.
+
+Valid values for form are 'NFC', 'NFKC', 'NFD', and 'NFKD'.
+[clinic start generated code]*/
+
+static PyObject *
+unicodedata_UCD_is_normalized_impl(PyObject *self, PyObject *form,
+ PyObject *input)
+/*[clinic end generated code: output=11e5a3694e723ca5 input=a544f14cea79e508]*/
+{
+ if (PyUnicode_READY(input) == -1) {
+ return NULL;
+ }
+
+ if (PyUnicode_GET_LENGTH(input) == 0) {
+ /* special case empty input strings. */
+ Py_RETURN_TRUE;
+ }
+
+ PyObject *result;
+ bool nfc = false;
+ bool k = false;
+ QuickcheckResult m;
+
+ PyObject *cmp;
+ int match = 0;
+
+ if (_PyUnicode_EqualToASCIIId(form, &PyId_NFC)) {
+ nfc = true;
+ }
+ else if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKC)) {
+ nfc = true;
+ k = true;
+ }
+ else if (_PyUnicode_EqualToASCIIId(form, &PyId_NFD)) {
+ /* matches default values for `nfc` and `k` */
+ }
+ else if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKD)) {
+ k = true;
+ }
+ else {
+ PyErr_SetString(PyExc_ValueError, "invalid normalization form");
+ return NULL;
+ }
+
+ m = is_normalized_quickcheck(self, input, nfc, k, false);
+
+ if (m == MAYBE) {
+ cmp = (nfc ? nfc_nfkc : nfd_nfkd)(self, input, k);
+ if (cmp == NULL) {
+ return NULL;
+ }
+ match = PyUnicode_Compare(input, cmp);
+ Py_DECREF(cmp);
+ result = (match == 0) ? Py_True : Py_False;
+ }
+ else {
+ result = (m == YES) ? Py_True : Py_False;
+ }
+
+ Py_INCREF(result);
+ return result;
+}
+
+
+/*[clinic input]
unicodedata.UCD.normalize
self: self
- form: unicode
+ form: unicode
unistr as input: unicode
/
@@ -928,9 +928,9 @@ Valid values for form are 'NFC', 'NFKC', 'NFD', and 'NFKD'.
[clinic start generated code]*/
static PyObject *
-unicodedata_UCD_normalize_impl(PyObject *self, PyObject *form,
+unicodedata_UCD_normalize_impl(PyObject *self, PyObject *form,
PyObject *input)
-/*[clinic end generated code: output=05ca4385a2ad6983 input=3a5206c0ad2833fb]*/
+/*[clinic end generated code: output=05ca4385a2ad6983 input=3a5206c0ad2833fb]*/
{
if (PyUnicode_GET_LENGTH(input) == 0) {
/* Special case empty input strings, since resizing
@@ -939,29 +939,29 @@ unicodedata_UCD_normalize_impl(PyObject *self, PyObject *form,
return input;
}
- if (_PyUnicode_EqualToASCIIId(form, &PyId_NFC)) {
- if (is_normalized_quickcheck(self, input, true, false, true) == YES) {
+ if (_PyUnicode_EqualToASCIIId(form, &PyId_NFC)) {
+ if (is_normalized_quickcheck(self, input, true, false, true) == YES) {
Py_INCREF(input);
return input;
}
return nfc_nfkc(self, input, 0);
}
- if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKC)) {
- if (is_normalized_quickcheck(self, input, true, true, true) == YES) {
+ if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKC)) {
+ if (is_normalized_quickcheck(self, input, true, true, true) == YES) {
Py_INCREF(input);
return input;
}
return nfc_nfkc(self, input, 1);
}
- if (_PyUnicode_EqualToASCIIId(form, &PyId_NFD)) {
- if (is_normalized_quickcheck(self, input, false, false, true) == YES) {
+ if (_PyUnicode_EqualToASCIIId(form, &PyId_NFD)) {
+ if (is_normalized_quickcheck(self, input, false, false, true) == YES) {
Py_INCREF(input);
return input;
}
return nfd_nfkd(self, input, 0);
}
- if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKD)) {
- if (is_normalized_quickcheck(self, input, false, true, true) == YES) {
+ if (_PyUnicode_EqualToASCIIId(form, &PyId_NFKD)) {
+ if (is_normalized_quickcheck(self, input, false, true, true) == YES) {
Py_INCREF(input);
return input;
}
@@ -987,7 +987,7 @@ _gethash(const char *s, int len, int scale)
unsigned long h = 0;
unsigned long ix;
for (i = 0; i < len; i++) {
- h = (h * scale) + (unsigned char) Py_TOUPPER(s[i]);
+ h = (h * scale) + (unsigned char) Py_TOUPPER(s[i]);
ix = h & 0xff000000;
if (ix)
h = (h ^ ((ix>>24) & 0xff)) & 0x00ffffff;
@@ -1031,14 +1031,14 @@ static int
is_unified_ideograph(Py_UCS4 code)
{
return
- (0x3400 <= code && code <= 0x4DBF) || /* CJK Ideograph Extension A */
- (0x4E00 <= code && code <= 0x9FFC) || /* CJK Ideograph */
- (0x20000 <= code && code <= 0x2A6DD) || /* CJK Ideograph Extension B */
+ (0x3400 <= code && code <= 0x4DBF) || /* CJK Ideograph Extension A */
+ (0x4E00 <= code && code <= 0x9FFC) || /* CJK Ideograph */
+ (0x20000 <= code && code <= 0x2A6DD) || /* CJK Ideograph Extension B */
(0x2A700 <= code && code <= 0x2B734) || /* CJK Ideograph Extension C */
(0x2B740 <= code && code <= 0x2B81D) || /* CJK Ideograph Extension D */
(0x2B820 <= code && code <= 0x2CEA1) || /* CJK Ideograph Extension E */
- (0x2CEB0 <= code && code <= 0x2EBE0) || /* CJK Ideograph Extension F */
- (0x30000 <= code && code <= 0x3134A); /* CJK Ideograph Extension G */
+ (0x2CEB0 <= code && code <= 0x2EBE0) || /* CJK Ideograph Extension F */
+ (0x30000 <= code && code <= 0x3134A); /* CJK Ideograph Extension G */
}
/* macros used to determine if the given code point is in the PUA range that
@@ -1057,7 +1057,7 @@ _getucname(PyObject *self, Py_UCS4 code, char* buffer, int buflen,
int offset;
int i;
int word;
- const unsigned char* w;
+ const unsigned char* w;
if (code >= 0x110000)
return 0;
@@ -1158,7 +1158,7 @@ _cmpname(PyObject *self, int code, const char* name, int namelen)
if (!_getucname(self, code, buffer, NAME_MAXLEN, 1))
return 0;
for (i = 0; i < namelen; i++) {
- if (Py_TOUPPER(name[i]) != buffer[i])
+ if (Py_TOUPPER(name[i]) != buffer[i])
return 0;
}
return buffer[namelen] == '\0';
@@ -1379,7 +1379,7 @@ static PyMethodDef unicodedata_functions[] = {
UNICODEDATA_UCD_DECOMPOSITION_METHODDEF
UNICODEDATA_UCD_NAME_METHODDEF
UNICODEDATA_UCD_LOOKUP_METHODDEF
- UNICODEDATA_UCD_IS_NORMALIZED_METHODDEF
+ UNICODEDATA_UCD_IS_NORMALIZED_METHODDEF
UNICODEDATA_UCD_NORMALIZE_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -1393,10 +1393,10 @@ static PyTypeObject UCD_Type = {
0, /*tp_itemsize*/
/* methods */
(destructor)PyObject_Del, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -1456,7 +1456,7 @@ PyInit_unicodedata(void)
{
PyObject *m, *v;
- Py_SET_TYPE(&UCD_Type, &PyType_Type);
+ Py_SET_TYPE(&UCD_Type, &PyType_Type);
m = PyModule_Create(&unicodedatamodule);
if (!m)
diff --git a/contrib/tools/python3/src/Modules/unicodedata_db.h b/contrib/tools/python3/src/Modules/unicodedata_db.h
index a7af0fdd71..da93876156 100644
--- a/contrib/tools/python3/src/Modules/unicodedata_db.h
+++ b/contrib/tools/python3/src/Modules/unicodedata_db.h
@@ -1,6 +1,6 @@
-/* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */
+/* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */
-#define UNIDATA_VERSION "13.0.0"
+#define UNIDATA_VERSION "13.0.0"
/* a list of unique database records */
const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = {
{0, 0, 0, 0, 0, 0},
@@ -335,8 +335,8 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = {
{9, 0, 12, 0, 5, 0},
{9, 0, 5, 0, 5, 0},
{4, 9, 1, 0, 5, 0},
- {4, 0, 14, 0, 2, 0},
- {5, 6, 1, 0, 2, 0},
+ {4, 0, 14, 0, 2, 0},
+ {5, 6, 1, 0, 2, 0},
{30, 0, 1, 0, 5, 170},
{5, 216, 1, 0, 5, 0},
{5, 226, 1, 0, 5, 0},
@@ -348,8 +348,8 @@ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = {
};
/* Reindexing of NFC first characters. */
-#define TOTAL_FIRST 377
-#define TOTAL_LAST 63
+#define TOTAL_FIRST 377
+#define TOTAL_LAST 63
struct reindex{int start;short count,index;};
static struct reindex nfc_first[] = {
{ 60, 2, 0},
@@ -562,7 +562,7 @@ static struct reindex nfc_first[] = {
{ 70471, 0, 372},
{ 70841, 0, 373},
{ 71096, 1, 374},
- { 71989, 0, 376},
+ { 71989, 0, 376},
{0,0,0}
};
@@ -606,7 +606,7 @@ static struct reindex nfc_last[] = {
{ 70842, 0, 59},
{ 70845, 0, 60},
{ 71087, 0, 61},
- { 71984, 0, 62},
+ { 71984, 0, 62},
{0,0,0}
};
@@ -703,7 +703,7 @@ static const char *decomp_prefix[] = {
};
/* index tables for the database records */
#define SHIFT 7
-static const unsigned short index1[] = {
+static const unsigned short index1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 41, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
@@ -740,40 +740,40 @@ static const unsigned short index1[] = {
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 123, 124,
125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
138, 139, 140, 141, 142, 143, 144, 138, 41, 41, 145, 138, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 138, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 138, 168, 169, 138, 170, 171, 172, 173,
- 138, 174, 175, 176, 177, 178, 179, 138, 138, 180, 181, 182, 183, 138,
- 184, 138, 185, 41, 41, 41, 41, 41, 41, 41, 186, 187, 41, 188, 138, 138,
+ 149, 150, 151, 152, 153, 154, 155, 156, 138, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 138, 168, 169, 138, 170, 171, 172, 173,
+ 138, 174, 175, 176, 177, 178, 179, 138, 138, 180, 181, 182, 183, 138,
+ 184, 138, 185, 41, 41, 41, 41, 41, 41, 41, 186, 187, 41, 188, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 41, 41, 41, 41, 41, 41, 41, 41, 189, 138, 138,
+ 138, 138, 138, 138, 138, 41, 41, 41, 41, 41, 41, 41, 41, 189, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 41, 41, 41, 41, 190, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 41, 41, 41, 41, 190, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 41, 41, 41, 41, 191, 192, 193, 194, 138, 138, 138, 138, 195,
- 196, 197, 198, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 138, 138, 41, 41, 41, 41, 191, 192, 193, 194, 138, 138, 138, 138, 195,
+ 196, 197, 198, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101, 199, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 200, 201, 138, 138, 138, 138, 138, 138, 138, 138,
+ 101, 101, 101, 101, 101, 101, 101, 101, 199, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 200, 201, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 101, 101, 202, 101, 101, 203, 138, 138, 138,
+ 138, 138, 138, 138, 138, 101, 101, 202, 101, 101, 203, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 204, 205, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 204, 205, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 78, 206,
- 207, 208, 209, 210, 211, 138, 212, 213, 214, 215, 216, 217, 218, 219, 78,
- 78, 78, 78, 220, 221, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 222, 138, 223, 138, 138, 224, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 225, 226, 227, 138, 138, 138, 138, 138, 228, 229, 230, 138,
- 231, 232, 138, 138, 233, 234, 235, 236, 237, 138, 238, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 78, 206,
+ 207, 208, 209, 210, 211, 138, 212, 213, 214, 215, 216, 217, 218, 219, 78,
+ 78, 78, 78, 220, 221, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 222, 138, 223, 138, 138, 224, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 225, 226, 227, 138, 138, 138, 138, 138, 228, 229, 230, 138,
+ 231, 232, 138, 138, 233, 234, 235, 236, 237, 138, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
138, 138, 138, 138, 138, 138, 138, 138, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
@@ -798,22 +798,22 @@ static const unsigned short index1[] = {
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 256, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 256, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 257, 101, 258, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 257, 101, 258, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 259, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 259, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 260, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 101, 101, 101, 260, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 122, 122, 122, 122, 261, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 262, 138,
+ 122, 122, 122, 122, 261, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 262, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
@@ -1213,7 +1213,7 @@ static const unsigned short index1[] = {
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 138, 263, 138, 264, 265, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 263, 138, 264, 265, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
@@ -1286,7 +1286,7 @@ static const unsigned short index1[] = {
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 266, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 266, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
@@ -1323,10 +1323,10 @@ static const unsigned short index1[] = {
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 266,
+ 121, 266,
};
-static const unsigned short index2[] = {
+static const unsigned short index2[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 3, 3, 3, 2, 5, 6, 6, 7, 8, 7, 6, 6, 9, 10, 6, 11, 12, 13, 12,
12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 6, 15, 16, 15, 6, 6, 17,
@@ -1456,171 +1456,173 @@ static const unsigned short index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 81,
- 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 108, 86, 81, 81, 86,
- 81, 81, 86, 81, 81, 81, 86, 86, 86, 121, 122, 123, 81, 81, 81, 86, 81,
- 81, 86, 86, 81, 81, 81, 81, 81, 135, 135, 135, 140, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 48, 48,
- 48, 48, 48, 48, 141, 48, 48, 141, 48, 48, 48, 48, 48, 135, 140, 142, 48,
- 140, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 140, 140, 140,
- 140, 143, 140, 140, 48, 81, 86, 81, 81, 135, 135, 135, 144, 144, 144,
- 144, 144, 144, 144, 144, 48, 48, 135, 135, 83, 83, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 83, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 135, 140, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 0, 0, 0, 48, 48, 48, 48, 0, 0, 146, 48, 147, 140, 140, 135, 135, 135,
- 135, 0, 0, 140, 140, 0, 0, 148, 148, 143, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 147, 0, 0, 0, 0, 144, 144, 0, 144, 48, 48, 135, 135, 0, 0, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 48, 48, 85, 85, 149, 149, 149, 149,
- 149, 149, 80, 85, 48, 83, 81, 0, 0, 135, 135, 140, 0, 48, 48, 48, 48, 48,
- 48, 0, 0, 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 144, 0, 48, 144, 0, 48, 48, 0, 0, 146, 0, 140, 140, 140, 135,
- 135, 0, 0, 0, 0, 135, 135, 0, 0, 135, 135, 143, 0, 0, 0, 135, 0, 0, 0, 0,
- 0, 0, 0, 144, 144, 144, 48, 0, 144, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 135, 135, 48, 48, 48, 135, 83, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 0, 48, 48, 48, 48, 48, 0, 0, 146, 48, 140, 140, 140, 135, 135, 135,
- 135, 135, 0, 135, 135, 140, 0, 140, 140, 143, 0, 0, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 135, 135, 0, 0, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 83, 85, 0, 0, 0, 0, 0, 0, 0, 48, 135, 135,
- 135, 135, 135, 135, 0, 135, 140, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 0, 48, 48, 48, 48, 48, 0, 0, 146, 48, 147, 135, 140, 135, 135, 135,
- 135, 0, 0, 140, 148, 0, 0, 148, 148, 143, 0, 0, 0, 0, 0, 0, 0, 135, 150,
- 147, 0, 0, 0, 0, 144, 144, 0, 48, 48, 48, 135, 135, 0, 0, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 80, 48, 149, 149, 149, 149, 149, 149,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 48, 0, 48, 48, 48, 48, 48, 48, 0, 0,
- 0, 48, 48, 48, 0, 48, 48, 141, 48, 0, 0, 0, 48, 48, 0, 48, 0, 48, 48, 0,
- 0, 0, 48, 48, 0, 0, 0, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 0, 0, 0, 147, 140, 135, 140, 140, 0, 0, 0, 140,
- 140, 140, 0, 148, 148, 148, 143, 0, 0, 48, 0, 0, 0, 0, 0, 0, 147, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 149, 149, 149, 26, 26, 26, 26, 26, 26, 85, 26, 0, 0, 0, 0,
- 0, 135, 140, 140, 140, 135, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
- 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 135, 135, 135, 140, 140, 140, 140,
- 0, 135, 135, 151, 0, 135, 135, 135, 143, 0, 0, 0, 0, 0, 0, 0, 152, 153,
- 0, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 135, 135, 0, 0, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 83, 154, 154, 154,
- 154, 154, 154, 154, 80, 48, 135, 140, 140, 83, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 0, 0, 146, 48, 140, 155, 148, 140,
- 147, 140, 140, 0, 155, 148, 148, 0, 148, 148, 135, 143, 0, 0, 0, 0, 0, 0,
- 0, 147, 147, 0, 0, 0, 0, 0, 0, 0, 48, 0, 48, 48, 135, 135, 0, 0, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 48, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 135, 135, 140, 140, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 143, 143, 48, 147, 140, 140, 135,
- 135, 135, 135, 0, 140, 140, 140, 0, 148, 148, 148, 143, 48, 80, 0, 0, 0,
- 0, 48, 48, 48, 147, 149, 149, 149, 149, 149, 149, 149, 48, 48, 48, 135,
- 135, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 80, 48, 48, 48, 48, 48, 48, 0, 135,
- 140, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 156, 0, 0,
- 0, 0, 147, 140, 140, 135, 135, 135, 0, 135, 0, 140, 140, 148, 140, 148,
- 148, 148, 147, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 0, 0, 140, 140, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 48, 157, 135, 135, 135, 135,
- 158, 158, 143, 0, 0, 0, 0, 85, 48, 48, 48, 48, 48, 48, 53, 135, 159, 159,
- 159, 159, 135, 135, 135, 83, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, 0, 48,
- 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 135, 48, 157, 135, 135, 135, 135, 160, 160, 143, 135,
- 135, 48, 0, 0, 48, 48, 48, 48, 48, 0, 53, 0, 161, 161, 161, 161, 135,
- 135, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 157,
- 157, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83, 83, 83,
- 83, 83, 83, 162, 83, 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86, 86, 80,
- 80, 80, 80, 80, 80, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 80, 86, 80, 86, 80,
- 163, 164, 165, 164, 165, 140, 140, 48, 48, 48, 144, 48, 48, 48, 48, 0,
- 48, 48, 48, 48, 144, 48, 48, 48, 48, 144, 48, 48, 48, 48, 144, 48, 48,
- 48, 48, 144, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 144, 48, 48,
- 48, 0, 0, 0, 0, 166, 167, 168, 169, 168, 168, 170, 168, 170, 167, 167,
- 167, 167, 135, 140, 167, 168, 81, 81, 143, 83, 81, 81, 48, 48, 48, 48,
- 48, 135, 135, 135, 135, 135, 135, 168, 135, 135, 135, 135, 0, 135, 135,
- 135, 135, 168, 135, 135, 135, 135, 168, 135, 135, 135, 135, 168, 135,
- 135, 135, 135, 168, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 168, 135, 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80,
- 80, 80, 80, 80, 80, 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83,
- 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 48, 48, 48, 140,
- 140, 135, 150, 135, 135, 140, 135, 135, 135, 135, 135, 146, 140, 143,
- 143, 140, 140, 135, 135, 48, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 83, 83, 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 140, 140, 135, 135,
- 48, 48, 48, 48, 135, 135, 135, 48, 140, 140, 140, 48, 48, 140, 140, 140,
- 140, 140, 140, 140, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 135, 140, 140, 135, 135, 140, 140, 140,
- 140, 140, 140, 86, 48, 140, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 140, 140, 140, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 118, 118, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 81,
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 108, 86, 81, 81, 86,
+ 81, 81, 86, 81, 81, 81, 86, 86, 86, 121, 122, 123, 81, 81, 81, 86, 81,
+ 81, 86, 86, 81, 81, 81, 81, 81, 135, 135, 135, 140, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 48, 48,
+ 48, 48, 48, 48, 141, 48, 48, 141, 48, 48, 48, 48, 48, 135, 140, 142, 48,
+ 140, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 140, 140, 140,
+ 140, 143, 140, 140, 48, 81, 86, 81, 81, 135, 135, 135, 144, 144, 144,
+ 144, 144, 144, 144, 144, 48, 48, 135, 135, 83, 83, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 83, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 135, 140, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 0, 0, 0, 48, 48, 48, 48, 0, 0, 146, 48, 147, 140, 140, 135, 135, 135,
+ 135, 0, 0, 140, 140, 0, 0, 148, 148, 143, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 147, 0, 0, 0, 0, 144, 144, 0, 144, 48, 48, 135, 135, 0, 0, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 48, 48, 85, 85, 149, 149, 149, 149,
+ 149, 149, 80, 85, 48, 83, 81, 0, 0, 135, 135, 140, 0, 48, 48, 48, 48, 48,
+ 48, 0, 0, 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 144, 0, 48, 144, 0, 48, 48, 0, 0, 146, 0, 140, 140, 140, 135,
+ 135, 0, 0, 0, 0, 135, 135, 0, 0, 135, 135, 143, 0, 0, 0, 135, 0, 0, 0, 0,
+ 0, 0, 0, 144, 144, 144, 48, 0, 144, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 135, 135, 48, 48, 48, 135, 83, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 48, 0, 48, 48, 48, 48, 48, 0, 0, 146, 48, 140, 140, 140, 135, 135, 135,
+ 135, 135, 0, 135, 135, 140, 0, 140, 140, 143, 0, 0, 48, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 135, 135, 0, 0, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 83, 85, 0, 0, 0, 0, 0, 0, 0, 48, 135, 135,
+ 135, 135, 135, 135, 0, 135, 140, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 48, 0, 48, 48, 48, 48, 48, 0, 0, 146, 48, 147, 135, 140, 135, 135, 135,
+ 135, 0, 0, 140, 148, 0, 0, 148, 148, 143, 0, 0, 0, 0, 0, 0, 0, 135, 150,
+ 147, 0, 0, 0, 0, 144, 144, 0, 48, 48, 48, 135, 135, 0, 0, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 80, 48, 149, 149, 149, 149, 149, 149,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 48, 0, 48, 48, 48, 48, 48, 48, 0, 0,
+ 0, 48, 48, 48, 0, 48, 48, 141, 48, 0, 0, 0, 48, 48, 0, 48, 0, 48, 48, 0,
+ 0, 0, 48, 48, 0, 0, 0, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 0, 0, 0, 0, 147, 140, 135, 140, 140, 0, 0, 0, 140,
+ 140, 140, 0, 148, 148, 148, 143, 0, 0, 48, 0, 0, 0, 0, 0, 0, 147, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 145, 149, 149, 149, 26, 26, 26, 26, 26, 26, 85, 26, 0, 0, 0, 0,
+ 0, 135, 140, 140, 140, 135, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 135, 135, 135, 140, 140, 140, 140,
+ 0, 135, 135, 151, 0, 135, 135, 135, 143, 0, 0, 0, 0, 0, 0, 0, 152, 153,
+ 0, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 135, 135, 0, 0, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 83, 154, 154, 154,
+ 154, 154, 154, 154, 80, 48, 135, 140, 140, 83, 48, 48, 48, 48, 48, 48,
+ 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 0, 0, 146, 48, 140, 155, 148, 140,
+ 147, 140, 140, 0, 155, 148, 148, 0, 148, 148, 135, 143, 0, 0, 0, 0, 0, 0,
+ 0, 147, 147, 0, 0, 0, 0, 0, 0, 0, 48, 0, 48, 48, 135, 135, 0, 0, 145,
+ 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 48, 48, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 135, 135, 140, 140, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 143, 143, 48, 147, 140, 140, 135,
+ 135, 135, 135, 0, 140, 140, 140, 0, 148, 148, 148, 143, 48, 80, 0, 0, 0,
+ 0, 48, 48, 48, 147, 149, 149, 149, 149, 149, 149, 149, 48, 48, 48, 135,
+ 135, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 80, 48, 48, 48, 48, 48, 48, 0, 135,
+ 140, 140, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 156, 0, 0,
+ 0, 0, 147, 140, 140, 135, 135, 135, 0, 135, 0, 140, 140, 148, 140, 148,
+ 148, 148, 147, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 0, 0, 140, 140, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 48, 157, 135, 135, 135, 135,
+ 158, 158, 143, 0, 0, 0, 0, 85, 48, 48, 48, 48, 48, 48, 53, 135, 159, 159,
+ 159, 159, 135, 135, 135, 83, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, 48, 0, 48,
+ 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 135, 48, 157, 135, 135, 135, 135, 160, 160, 143, 135,
+ 135, 48, 0, 0, 48, 48, 48, 48, 48, 0, 53, 0, 161, 161, 161, 161, 135,
+ 135, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 157,
+ 157, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 80, 80, 80, 83, 83, 83, 83, 83,
+ 83, 83, 83, 162, 83, 83, 83, 83, 83, 83, 80, 83, 80, 80, 80, 86, 86, 80,
+ 80, 80, 80, 80, 80, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 80, 86, 80, 86, 80,
+ 163, 164, 165, 164, 165, 140, 140, 48, 48, 48, 144, 48, 48, 48, 48, 0,
+ 48, 48, 48, 48, 144, 48, 48, 48, 48, 144, 48, 48, 48, 48, 144, 48, 48,
+ 48, 48, 144, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 144, 48, 48,
+ 48, 0, 0, 0, 0, 166, 167, 168, 169, 168, 168, 170, 168, 170, 167, 167,
+ 167, 167, 135, 140, 167, 168, 81, 81, 143, 83, 81, 81, 48, 48, 48, 48,
+ 48, 135, 135, 135, 135, 135, 135, 168, 135, 135, 135, 135, 0, 135, 135,
+ 135, 135, 168, 135, 135, 135, 135, 168, 135, 135, 135, 135, 168, 135,
+ 135, 135, 135, 168, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 168, 135, 135, 135, 0, 80, 80, 80, 80, 80, 80, 80, 80, 86, 80,
+ 80, 80, 80, 80, 80, 0, 80, 80, 83, 83, 83, 83, 83, 80, 80, 80, 80, 83,
+ 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 48, 48, 48, 140,
+ 140, 135, 150, 135, 135, 140, 135, 135, 135, 135, 135, 146, 140, 143,
+ 143, 140, 140, 135, 135, 48, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 83, 83, 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 140, 140, 135, 135,
+ 48, 48, 48, 48, 135, 135, 135, 48, 140, 140, 140, 48, 48, 140, 140, 140,
+ 140, 140, 140, 140, 48, 48, 48, 135, 135, 135, 135, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 135, 140, 140, 135, 135, 140, 140, 140,
+ 140, 140, 140, 86, 48, 140, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 140, 140, 140, 135, 80, 80, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 83, 51, 47, 47, 47, 171, 171, 171, 171, 171,
+ 47, 47, 47, 47, 47, 47, 47, 83, 51, 47, 47, 47, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 48, 172, 172, 172, 172, 172, 172, 172,
- 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 48,
+ 171, 171, 171, 171, 171, 171, 171, 48, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 172, 172, 172, 172,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 172, 172, 172, 172,
172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
- 172, 172, 172, 172, 172, 172, 172, 172, 172, 48, 48, 48, 48, 48, 48, 48,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48,
- 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 0, 0,
- 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48, 0, 0, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0,
- 81, 81, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 44, 44, 44,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0,
+ 81, 81, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 47, 47, 47, 47, 47, 47,
- 0, 0, 84, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 47, 47, 47, 47, 47, 47,
+ 0, 0, 84, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
@@ -1638,363 +1640,361 @@ static const unsigned short index2[] = {
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 80, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 173, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 164, 165,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 80, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 173, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 164, 165,
- 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 83, 83, 83, 174, 174, 174, 48, 48, 48, 48, 48, 48,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 0, 48, 48, 48, 48, 135, 135, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 135, 135, 143, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 0, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 83, 83, 83, 174, 174, 174, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 48, 48, 48, 48, 135, 135, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 135, 135, 143, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 0, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135,
+ 140, 135, 135, 135, 135, 135, 135, 135, 140, 140, 140, 140, 140, 140,
+ 140, 140, 135, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 143, 135, 83, 83, 83, 53, 83, 83, 83, 85, 48, 81, 0, 0, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138,
+ 138, 84, 138, 138, 138, 138, 135, 135, 135, 175, 0, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135,
- 140, 135, 135, 135, 135, 135, 135, 135, 140, 140, 140, 140, 140, 140,
- 140, 140, 135, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 143, 135, 83, 83, 83, 53, 83, 83, 83, 85, 48, 81, 0, 0, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138,
- 138, 84, 138, 138, 138, 138, 135, 135, 135, 175, 0, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 88, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 48, 48, 48, 135, 135, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 88, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 135, 135, 135, 140, 140, 140, 140,
+ 135, 135, 140, 140, 140, 0, 0, 0, 0, 140, 140, 135, 140, 140, 140, 140,
+ 140, 140, 87, 81, 86, 0, 0, 0, 0, 26, 0, 0, 0, 138, 138, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 135, 135, 135, 140, 140, 140, 140,
- 135, 135, 140, 140, 140, 0, 0, 0, 0, 140, 140, 135, 140, 140, 140, 140,
- 140, 140, 87, 81, 86, 0, 0, 0, 0, 26, 0, 0, 0, 138, 138, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 149, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 48, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 149, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 81, 86, 140, 140, 135, 0, 0, 83, 83, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 135, 140,
- 135, 135, 135, 135, 135, 135, 135, 0, 143, 140, 135, 140, 140, 135, 135,
- 135, 135, 135, 135, 135, 135, 140, 140, 140, 140, 140, 140, 135, 135, 81,
- 81, 81, 81, 81, 81, 81, 81, 0, 0, 86, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 83, 83, 83, 53, 83, 83, 83,
- 83, 83, 83, 0, 0, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 81, 81, 86,
- 82, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135,
- 135, 140, 48, 141, 48, 141, 48, 141, 48, 141, 48, 141, 48, 48, 48, 141,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 146, 147,
- 135, 135, 135, 135, 135, 148, 135, 148, 140, 140, 148, 148, 135, 148,
- 176, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 83, 83, 83, 83, 83, 83, 83, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 81, 86, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 0, 0, 0, 135, 135, 140, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 140, 135, 135, 135, 135, 140, 140, 135, 135, 176,
- 143, 135, 135, 48, 48, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 146, 140, 135, 135, 140, 140, 140, 135,
- 140, 135, 135, 135, 176, 176, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140,
- 140, 140, 140, 140, 140, 140, 140, 135, 135, 135, 135, 135, 135, 135,
- 135, 140, 140, 135, 146, 0, 0, 0, 83, 83, 83, 83, 83, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 0, 0, 0, 48, 48, 48, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 53, 53, 53, 53, 53, 53, 83, 83, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 26, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 81, 86, 140, 140, 135, 0, 0, 83, 83, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 135, 140,
+ 135, 135, 135, 135, 135, 135, 135, 0, 143, 140, 135, 140, 140, 135, 135,
+ 135, 135, 135, 135, 135, 135, 140, 140, 140, 140, 140, 140, 135, 135, 81,
+ 81, 81, 81, 81, 81, 81, 81, 0, 0, 86, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 145, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 83, 83, 83, 53, 83, 83, 83,
+ 83, 83, 83, 0, 0, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 81, 81, 86,
+ 82, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135,
+ 135, 140, 48, 141, 48, 141, 48, 141, 48, 141, 48, 141, 48, 48, 48, 141,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 146, 147,
+ 135, 135, 135, 135, 135, 148, 135, 148, 140, 140, 148, 148, 135, 148,
+ 176, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 145, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 83, 83, 83, 83, 83, 83, 83, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 81, 86, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 0, 0, 0, 135, 135, 140, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 140, 135, 135, 135, 135, 140, 140, 135, 135, 176,
+ 143, 135, 135, 48, 48, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 146, 140, 135, 135, 140, 140, 140, 135,
+ 140, 135, 135, 135, 176, 176, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 83, 83, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140,
+ 140, 140, 140, 140, 140, 140, 140, 135, 135, 135, 135, 135, 135, 135,
+ 135, 140, 140, 135, 146, 0, 0, 0, 83, 83, 83, 83, 83, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 0, 0, 0, 48, 48, 48, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 53, 53, 53, 53, 53, 53, 83, 83, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 44, 44, 44, 83, 83,
- 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, 83, 177, 86,
- 86, 86, 86, 86, 81, 81, 86, 86, 86, 86, 81, 140, 177, 177, 177, 177, 177,
- 177, 177, 48, 48, 48, 48, 86, 48, 48, 48, 48, 48, 48, 81, 48, 48, 140,
- 81, 81, 48, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 44, 44, 44, 83, 83,
+ 83, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 81, 83, 177, 86,
+ 86, 86, 86, 86, 81, 81, 86, 86, 86, 86, 81, 140, 177, 177, 177, 177, 177,
+ 177, 177, 48, 48, 48, 48, 86, 48, 48, 48, 48, 48, 48, 81, 48, 48, 140,
+ 81, 81, 48, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 51, 51,
- 53, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 51, 51,
+ 53, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 81, 81, 86, 81, 81, 81, 81, 81, 81, 81, 86, 81, 81, 178, 179, 86,
- 180, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 81, 81, 86, 81, 81, 81, 81, 81, 81, 81, 86, 81, 81, 178, 179, 86,
+ 180, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
- 81, 81, 181, 88, 88, 86, 0, 81, 182, 86, 81, 86, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 43, 43, 43, 43, 35, 183, 47, 47, 44, 47, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
- 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 44, 47, 44, 47, 44, 47, 43, 43,
- 43, 43, 43, 43, 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43,
- 43, 43, 0, 0, 38, 38, 38, 38, 38, 38, 0, 0, 43, 43, 43, 43, 43, 43, 43,
- 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, 43, 43, 38,
- 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, 0, 0, 38, 38, 38, 38,
- 38, 38, 0, 0, 43, 43, 43, 43, 43, 43, 43, 43, 0, 38, 0, 38, 0, 38, 0, 38,
- 43, 43, 43, 43, 43, 43, 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 184,
- 43, 184, 43, 184, 43, 184, 43, 184, 43, 184, 43, 184, 0, 0, 43, 43, 43,
- 43, 43, 43, 43, 43, 185, 185, 185, 185, 185, 185, 185, 185, 43, 43, 43,
- 43, 43, 43, 43, 43, 185, 185, 185, 185, 185, 185, 185, 185, 43, 43, 43,
- 43, 43, 43, 43, 43, 185, 185, 185, 185, 185, 185, 185, 185, 43, 43, 43,
- 43, 43, 0, 43, 43, 38, 38, 38, 186, 185, 58, 184, 58, 58, 76, 43, 43, 43,
- 0, 43, 43, 38, 186, 38, 186, 185, 76, 76, 76, 43, 43, 43, 184, 0, 0, 43,
- 43, 38, 38, 38, 186, 0, 76, 76, 76, 43, 43, 43, 184, 43, 43, 43, 43, 38,
- 38, 38, 186, 38, 76, 187, 187, 0, 0, 43, 43, 43, 0, 43, 43, 38, 186, 38,
- 186, 185, 187, 58, 0, 188, 188, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 175, 175, 175, 190, 191, 192, 193, 84, 192, 192, 192, 22, 194, 195,
- 196, 197, 198, 195, 196, 197, 198, 22, 22, 22, 138, 199, 199, 199, 22,
- 200, 201, 202, 203, 204, 205, 206, 21, 207, 110, 207, 208, 209, 22, 194,
- 194, 138, 28, 36, 22, 194, 138, 199, 210, 210, 138, 138, 138, 211, 164,
- 165, 194, 194, 194, 138, 138, 138, 138, 138, 138, 138, 138, 78, 138, 210,
- 138, 138, 194, 138, 138, 138, 138, 138, 138, 138, 189, 175, 175, 175,
- 175, 175, 0, 212, 213, 214, 215, 175, 175, 175, 175, 175, 175, 216, 51,
- 0, 0, 34, 216, 216, 216, 216, 216, 217, 217, 218, 219, 220, 221, 216, 34,
- 34, 34, 34, 216, 216, 216, 216, 216, 217, 217, 218, 219, 220, 0, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 85, 85, 85, 85, 85,
- 85, 85, 85, 222, 223, 85, 85, 23, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 81, 81, 177, 177, 81, 81, 81, 81, 177, 177, 177, 81, 81, 82,
- 82, 82, 82, 81, 82, 82, 82, 177, 177, 81, 86, 81, 177, 177, 86, 86, 86,
- 86, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 49, 225,
- 26, 225, 224, 49, 26, 225, 35, 49, 49, 49, 35, 35, 49, 49, 49, 46, 26,
- 49, 225, 26, 78, 49, 49, 49, 49, 49, 26, 26, 224, 225, 225, 26, 49, 26,
- 226, 26, 49, 26, 186, 226, 49, 49, 227, 35, 49, 49, 44, 49, 35, 157, 157,
- 157, 157, 35, 26, 224, 35, 35, 49, 49, 228, 78, 78, 78, 78, 49, 35, 35,
- 35, 35, 26, 78, 26, 26, 47, 80, 229, 229, 229, 37, 37, 229, 229, 229,
- 229, 229, 229, 37, 37, 37, 37, 229, 230, 230, 230, 230, 230, 230, 230,
- 230, 230, 230, 230, 230, 231, 231, 231, 231, 230, 230, 230, 230, 230,
- 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 174, 174, 174, 44,
- 47, 174, 174, 174, 174, 37, 26, 26, 0, 0, 0, 0, 40, 40, 40, 40, 40, 30,
- 30, 30, 30, 30, 232, 232, 26, 26, 26, 26, 78, 26, 26, 78, 26, 26, 78, 26,
- 26, 26, 26, 26, 26, 26, 232, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 233, 232, 232, 26, 26, 40, 26, 40, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 40,
- 234, 235, 235, 236, 78, 78, 40, 235, 236, 234, 235, 236, 234, 78, 40, 78,
- 235, 237, 238, 78, 235, 234, 78, 78, 78, 235, 234, 234, 235, 40, 235,
- 235, 234, 234, 40, 236, 40, 236, 40, 40, 40, 40, 235, 239, 228, 235, 228,
- 228, 234, 234, 234, 40, 40, 40, 40, 78, 234, 78, 234, 235, 235, 234, 234,
- 234, 236, 234, 234, 236, 234, 234, 236, 235, 236, 234, 234, 235, 78, 78,
- 78, 78, 78, 235, 234, 234, 234, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234,
- 240, 40, 236, 78, 235, 235, 235, 235, 234, 234, 235, 235, 78, 232, 240,
- 240, 236, 236, 234, 234, 236, 236, 234, 234, 236, 236, 234, 234, 234,
- 234, 234, 234, 236, 236, 235, 235, 236, 236, 235, 235, 236, 236, 234,
- 234, 234, 78, 78, 234, 234, 234, 234, 78, 78, 40, 78, 78, 234, 40, 78,
- 78, 78, 78, 78, 78, 78, 78, 234, 234, 78, 40, 234, 234, 234, 234, 234,
- 234, 236, 236, 236, 236, 234, 234, 234, 234, 234, 234, 234, 234, 234, 78,
- 78, 78, 78, 78, 234, 235, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234,
- 234, 234, 234, 78, 78, 234, 234, 78, 78, 78, 78, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 236, 236, 236, 236, 234, 234, 234, 234, 234,
- 234, 236, 236, 236, 236, 78, 78, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 234, 234, 234, 26, 26, 26, 26, 26, 26, 26, 26,
- 164, 165, 164, 165, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26,
- 26, 241, 241, 26, 26, 26, 26, 234, 234, 26, 26, 26, 26, 26, 26, 26, 242,
- 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80, 80, 80, 80, 80, 80,
+ 81, 81, 181, 88, 88, 86, 0, 81, 182, 86, 81, 86, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 43, 43, 43, 43, 35, 183, 47, 47, 44, 47, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 38, 43,
+ 38, 43, 38, 43, 38, 43, 38, 43, 38, 43, 44, 47, 44, 47, 44, 47, 43, 43,
+ 43, 43, 43, 43, 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43,
+ 43, 43, 0, 0, 38, 38, 38, 38, 38, 38, 0, 0, 43, 43, 43, 43, 43, 43, 43,
+ 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, 43, 43, 38,
+ 38, 38, 38, 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, 0, 0, 38, 38, 38, 38,
+ 38, 38, 0, 0, 43, 43, 43, 43, 43, 43, 43, 43, 0, 38, 0, 38, 0, 38, 0, 38,
+ 43, 43, 43, 43, 43, 43, 43, 43, 38, 38, 38, 38, 38, 38, 38, 38, 43, 184,
+ 43, 184, 43, 184, 43, 184, 43, 184, 43, 184, 43, 184, 0, 0, 43, 43, 43,
+ 43, 43, 43, 43, 43, 185, 185, 185, 185, 185, 185, 185, 185, 43, 43, 43,
+ 43, 43, 43, 43, 43, 185, 185, 185, 185, 185, 185, 185, 185, 43, 43, 43,
+ 43, 43, 43, 43, 43, 185, 185, 185, 185, 185, 185, 185, 185, 43, 43, 43,
+ 43, 43, 0, 43, 43, 38, 38, 38, 186, 185, 58, 184, 58, 58, 76, 43, 43, 43,
+ 0, 43, 43, 38, 186, 38, 186, 185, 76, 76, 76, 43, 43, 43, 184, 0, 0, 43,
+ 43, 38, 38, 38, 186, 0, 76, 76, 76, 43, 43, 43, 184, 43, 43, 43, 43, 38,
+ 38, 38, 186, 38, 76, 187, 187, 0, 0, 43, 43, 43, 0, 43, 43, 38, 186, 38,
+ 186, 185, 187, 58, 0, 188, 188, 189, 189, 189, 189, 189, 189, 189, 189,
+ 189, 175, 175, 175, 190, 191, 192, 193, 84, 192, 192, 192, 22, 194, 195,
+ 196, 197, 198, 195, 196, 197, 198, 22, 22, 22, 138, 199, 199, 199, 22,
+ 200, 201, 202, 203, 204, 205, 206, 21, 207, 110, 207, 208, 209, 22, 194,
+ 194, 138, 28, 36, 22, 194, 138, 199, 210, 210, 138, 138, 138, 211, 164,
+ 165, 194, 194, 194, 138, 138, 138, 138, 138, 138, 138, 138, 78, 138, 210,
+ 138, 138, 194, 138, 138, 138, 138, 138, 138, 138, 189, 175, 175, 175,
+ 175, 175, 0, 212, 213, 214, 215, 175, 175, 175, 175, 175, 175, 216, 51,
+ 0, 0, 34, 216, 216, 216, 216, 216, 217, 217, 218, 219, 220, 221, 216, 34,
+ 34, 34, 34, 216, 216, 216, 216, 216, 217, 217, 218, 219, 220, 0, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 85, 85, 85, 85, 85,
+ 85, 85, 85, 222, 223, 85, 85, 23, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 81, 81, 177, 177, 81, 81, 81, 81, 177, 177, 177, 81, 81, 82,
+ 82, 82, 82, 81, 82, 82, 82, 177, 177, 81, 86, 81, 177, 177, 86, 86, 86,
+ 86, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 49, 225,
+ 26, 225, 224, 49, 26, 225, 35, 49, 49, 49, 35, 35, 49, 49, 49, 46, 26,
+ 49, 225, 26, 78, 49, 49, 49, 49, 49, 26, 26, 224, 225, 225, 26, 49, 26,
+ 226, 26, 49, 26, 186, 226, 49, 49, 227, 35, 49, 49, 44, 49, 35, 157, 157,
+ 157, 157, 35, 26, 224, 35, 35, 49, 49, 228, 78, 78, 78, 78, 49, 35, 35,
+ 35, 35, 26, 78, 26, 26, 47, 80, 229, 229, 229, 37, 37, 229, 229, 229,
+ 229, 229, 229, 37, 37, 37, 37, 229, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 231, 231, 231, 231, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 174, 174, 174, 44,
+ 47, 174, 174, 174, 174, 37, 26, 26, 0, 0, 0, 0, 40, 40, 40, 40, 40, 30,
+ 30, 30, 30, 30, 232, 232, 26, 26, 26, 26, 78, 26, 26, 78, 26, 26, 78, 26,
+ 26, 26, 26, 26, 26, 26, 232, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 233, 232, 232, 26, 26, 40, 26, 40, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 40,
+ 234, 235, 235, 236, 78, 78, 40, 235, 236, 234, 235, 236, 234, 78, 40, 78,
+ 235, 237, 238, 78, 235, 234, 78, 78, 78, 235, 234, 234, 235, 40, 235,
+ 235, 234, 234, 40, 236, 40, 236, 40, 40, 40, 40, 235, 239, 228, 235, 228,
+ 228, 234, 234, 234, 40, 40, 40, 40, 78, 234, 78, 234, 235, 235, 234, 234,
+ 234, 236, 234, 234, 236, 234, 234, 236, 235, 236, 234, 234, 235, 78, 78,
+ 78, 78, 78, 235, 234, 234, 234, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234,
+ 240, 40, 236, 78, 235, 235, 235, 235, 234, 234, 235, 235, 78, 232, 240,
+ 240, 236, 236, 234, 234, 236, 236, 234, 234, 236, 236, 234, 234, 234,
+ 234, 234, 234, 236, 236, 235, 235, 236, 236, 235, 235, 236, 236, 234,
+ 234, 234, 78, 78, 234, 234, 234, 234, 78, 78, 40, 78, 78, 234, 40, 78,
+ 78, 78, 78, 78, 78, 78, 78, 234, 234, 78, 40, 234, 234, 234, 234, 234,
+ 234, 236, 236, 236, 236, 234, 234, 234, 234, 234, 234, 234, 234, 234, 78,
+ 78, 78, 78, 78, 234, 235, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234,
+ 234, 234, 234, 78, 78, 234, 234, 78, 78, 78, 78, 234, 234, 234, 234, 234,
+ 234, 234, 234, 234, 234, 236, 236, 236, 236, 234, 234, 234, 234, 234,
+ 234, 236, 236, 236, 236, 78, 78, 234, 234, 234, 234, 234, 234, 234, 234,
+ 234, 234, 234, 234, 234, 234, 234, 234, 26, 26, 26, 26, 26, 26, 26, 26,
+ 164, 165, 164, 165, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26,
+ 26, 241, 241, 26, 26, 26, 26, 234, 234, 26, 26, 26, 26, 26, 26, 26, 242,
+ 243, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 26, 78, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80,
- 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 26, 26, 26, 26, 26, 26,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 26, 78, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 80,
+ 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78,
- 78, 78, 78, 78, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241, 241, 26, 26,
- 26, 241, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78,
+ 78, 78, 78, 78, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241, 241, 26, 26,
+ 26, 241, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37,
+ 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 244, 244,
+ 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 244, 244, 229, 245, 245, 245, 245, 245, 245, 245,
- 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 30,
+ 244, 244, 244, 244, 244, 244, 229, 245, 245, 245, 245, 245, 245, 245,
+ 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 26, 26, 26, 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26,
- 26, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26,
- 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26,
- 26, 30, 40, 26, 26, 26, 26, 30, 30, 26, 26, 30, 40, 26, 26, 26, 26, 30,
- 30, 30, 26, 26, 30, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78, 78, 78, 78,
- 246, 246, 78, 26, 26, 26, 26, 26, 30, 30, 26, 26, 30, 26, 26, 26, 26, 30,
- 30, 26, 26, 26, 26, 241, 241, 26, 26, 26, 26, 26, 26, 30, 26, 30, 26, 26,
+ 30, 30, 30, 26, 26, 26, 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26,
+ 26, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26,
+ 30, 30, 30, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26,
+ 26, 30, 40, 26, 26, 26, 26, 30, 30, 26, 26, 30, 40, 26, 26, 26, 26, 30,
+ 30, 30, 26, 26, 30, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 30, 30, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 78, 78, 78, 78, 78,
+ 246, 246, 78, 26, 26, 26, 26, 26, 30, 30, 26, 26, 30, 26, 26, 26, 26, 30,
+ 30, 26, 26, 26, 26, 241, 241, 26, 26, 26, 26, 26, 26, 30, 26, 30, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26, 30, 26, 26,
+ 26, 26, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26, 30, 30, 30,
+ 26, 30, 30, 30, 30, 26, 30, 30, 26, 40, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 30, 30, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 80,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241,
+ 30, 26, 26, 26, 26, 241, 241, 30, 30, 30, 30, 30, 30, 30, 30, 241, 30,
+ 30, 30, 30, 30, 241, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 26, 30, 26, 26, 26, 26, 30, 30, 241, 30, 30, 30, 30, 30, 30, 30, 241,
+ 241, 30, 241, 30, 30, 30, 30, 241, 30, 30, 241, 30, 30, 26, 26, 26, 26,
+ 26, 241, 26, 26, 26, 26, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 26, 30, 26, 26,
- 26, 26, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 30, 30, 26, 30, 30, 30,
- 26, 30, 30, 30, 30, 26, 30, 30, 26, 40, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 30, 30, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 80,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241,
- 30, 26, 26, 26, 26, 241, 241, 30, 30, 30, 30, 30, 30, 30, 30, 241, 30,
- 30, 30, 30, 30, 241, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 26, 30, 26, 26, 26, 26, 30, 30, 241, 30, 30, 30, 30, 30, 30, 30, 241,
- 241, 30, 241, 30, 30, 30, 30, 241, 30, 30, 241, 30, 30, 26, 26, 26, 26,
- 26, 241, 26, 26, 26, 26, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 241, 26, 241, 26, 26, 26, 26, 241, 241, 241, 26, 241, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 164, 165, 164, 165, 164,
- 165, 164, 165, 164, 165, 164, 165, 164, 165, 245, 245, 245, 245, 245,
- 245, 245, 245, 245, 245, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 26, 241, 241, 241,
+ 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 241, 26, 241, 26, 26, 26, 26, 241, 241, 241, 26, 241, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 164, 165, 164, 165, 164,
+ 165, 164, 165, 164, 165, 164, 165, 164, 165, 245, 245, 245, 245, 245,
+ 245, 245, 245, 245, 245, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 26, 241, 241, 241,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 241, 234, 78, 78, 234, 234, 164, 165, 78, 234, 234, 78, 234,
- 234, 234, 78, 78, 78, 78, 78, 234, 234, 234, 234, 78, 78, 78, 78, 78,
- 234, 234, 234, 78, 78, 78, 234, 234, 234, 234, 9, 10, 9, 10, 9, 10, 9,
- 10, 164, 165, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 241, 234, 78, 78, 234, 234, 164, 165, 78, 234, 234, 78, 234,
+ 234, 234, 78, 78, 78, 78, 78, 234, 234, 234, 234, 78, 78, 78, 78, 78,
+ 234, 234, 234, 78, 78, 78, 234, 234, 234, 234, 9, 10, 9, 10, 9, 10, 9,
+ 10, 164, 165, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 80, 80, 80, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 164, 165, 9, 10, 164, 165, 164, 165, 164,
- 165, 164, 165, 164, 165, 164, 165, 164, 165, 164, 165, 164, 165, 78, 78,
- 234, 234, 234, 234, 234, 234, 78, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 234, 78, 78, 78, 78, 78, 78, 78, 78, 234, 78,
- 78, 78, 78, 78, 78, 78, 234, 234, 234, 234, 234, 234, 78, 78, 78, 234,
- 78, 78, 78, 78, 234, 234, 234, 234, 234, 78, 234, 234, 78, 78, 164, 165,
- 164, 165, 234, 78, 78, 78, 78, 234, 78, 234, 234, 234, 78, 78, 234, 234,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234, 234, 234, 234, 234, 78,
- 78, 164, 165, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234,
- 228, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 78, 234, 234, 234, 234, 78, 78, 234, 78, 234, 78, 78, 234,
- 78, 234, 234, 234, 234, 78, 78, 78, 78, 78, 234, 234, 78, 78, 78, 78, 78,
- 78, 234, 234, 234, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 234, 234, 78, 78, 78, 78, 234, 234, 234, 234, 78,
- 234, 234, 78, 78, 234, 228, 218, 218, 78, 78, 234, 234, 234, 234, 234,
+ 78, 78, 78, 78, 78, 78, 78, 78, 164, 165, 9, 10, 164, 165, 164, 165, 164,
+ 165, 164, 165, 164, 165, 164, 165, 164, 165, 164, 165, 164, 165, 78, 78,
+ 234, 234, 234, 234, 234, 234, 78, 234, 234, 234, 234, 234, 234, 234, 234,
+ 234, 234, 234, 234, 234, 234, 78, 78, 78, 78, 78, 78, 78, 78, 234, 78,
+ 78, 78, 78, 78, 78, 78, 234, 234, 234, 234, 234, 234, 78, 78, 78, 234,
+ 78, 78, 78, 78, 234, 234, 234, 234, 234, 78, 234, 234, 78, 78, 164, 165,
+ 164, 165, 234, 78, 78, 78, 78, 234, 78, 234, 234, 234, 78, 78, 234, 234,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234, 234, 234, 234, 234, 78,
+ 78, 164, 165, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234,
+ 228, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
+ 234, 234, 234, 78, 234, 234, 234, 234, 78, 78, 234, 78, 234, 78, 78, 234,
+ 78, 234, 234, 234, 234, 78, 78, 78, 78, 78, 234, 234, 78, 78, 78, 78, 78,
+ 78, 234, 234, 234, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 234, 234, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 234, 234, 78, 78, 78, 78, 234, 234, 234, 234, 78,
+ 234, 234, 78, 78, 234, 228, 218, 218, 78, 78, 234, 234, 234, 234, 234,
+ 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
+ 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 78, 78, 234, 234, 234,
+ 234, 234, 234, 234, 234, 78, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 78, 78, 234, 234, 234,
- 234, 234, 234, 234, 234, 78, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 78, 78, 78, 78, 78, 247, 78, 234, 78, 78, 78, 234, 234,
- 234, 234, 234, 78, 78, 78, 78, 78, 234, 234, 234, 78, 78, 78, 78, 234,
- 78, 78, 78, 234, 234, 234, 234, 234, 78, 234, 78, 78, 26, 26, 26, 26, 26,
+ 234, 234, 234, 78, 78, 78, 78, 78, 247, 78, 234, 78, 78, 78, 234, 234,
+ 234, 234, 234, 78, 78, 78, 78, 78, 234, 234, 234, 78, 78, 78, 78, 234,
+ 78, 78, 78, 234, 234, 234, 234, 234, 78, 234, 78, 78, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 26, 26, 78, 78, 78, 78, 78, 78,
- 26, 26, 26, 241, 26, 26, 26, 26, 241, 30, 30, 30, 30, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 26, 26, 78, 78, 78, 78, 78, 78,
+ 26, 26, 26, 241, 26, 26, 26, 26, 241, 30, 30, 30, 30, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 248, 26, 44, 44,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 248, 26, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 47, 47, 47, 47, 47, 47, 47, 47,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 0, 44, 47, 44, 44, 44, 47, 47, 44, 47, 44, 47, 44, 47, 44,
- 44, 44, 44, 47, 44, 47, 47, 44, 47, 47, 47, 47, 47, 47, 51, 51, 44, 44,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
- 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 47, 26, 26, 26, 26, 26, 26, 44,
- 47, 44, 47, 81, 81, 81, 44, 47, 0, 0, 0, 0, 0, 138, 138, 138, 138, 154,
- 138, 138, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 0, 44, 47, 44, 44, 44, 47, 47, 44, 47, 44, 47, 44, 47, 44,
+ 44, 44, 44, 47, 44, 47, 47, 44, 47, 47, 47, 47, 47, 47, 51, 51, 44, 44,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47,
+ 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 47, 26, 26, 26, 26, 26, 26, 44,
+ 47, 44, 47, 81, 81, 81, 44, 47, 0, 0, 0, 0, 0, 138, 138, 138, 138, 154,
+ 138, 138, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 0, 47, 0, 0, 0, 0, 0, 47, 0, 0, 48, 48, 48, 48, 48, 48,
+ 47, 47, 47, 47, 0, 47, 0, 0, 0, 0, 0, 47, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0,
+ 0, 51, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0,
- 0, 51, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48,
- 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 81, 81, 81, 81,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48,
+ 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 138, 138, 28, 36, 28, 36, 138,
- 138, 138, 28, 36, 138, 28, 36, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 84, 138, 138, 84, 138, 28, 36, 138, 138, 28, 36, 164, 165, 164, 165,
- 164, 165, 164, 165, 138, 138, 138, 138, 138, 52, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 84, 84, 138, 138, 138, 138, 84, 138, 197, 138,
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 26, 26, 138,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241,
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 138, 138, 28, 36, 28, 36, 138,
+ 138, 138, 28, 36, 138, 28, 36, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 84, 138, 138, 84, 138, 28, 36, 138, 138, 28, 36, 164, 165, 164, 165,
+ 164, 165, 164, 165, 138, 138, 138, 138, 138, 52, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 84, 84, 138, 138, 138, 138, 84, 138, 197, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 26, 26, 138,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 241, 241, 241, 241,
- 249, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 241, 241, 241, 241,
+ 249, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 249, 249, 249, 249, 249,
+ 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 249, 249, 249, 249, 249,
249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
@@ -2009,60 +2009,60 @@ static const unsigned short index2[] = {
249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
- 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 250,
- 251, 251, 251, 241, 252, 171, 253, 254, 255, 254, 255, 254, 255, 254,
- 255, 254, 255, 241, 241, 254, 255, 254, 255, 254, 255, 254, 255, 256,
- 257, 258, 258, 241, 253, 253, 253, 253, 253, 253, 253, 253, 253, 259,
- 260, 261, 262, 263, 263, 256, 252, 252, 252, 252, 252, 249, 241, 264,
- 264, 264, 252, 171, 251, 241, 26, 0, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171,
+ 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 250,
+ 251, 251, 251, 241, 252, 171, 253, 254, 255, 254, 255, 254, 255, 254,
+ 255, 254, 255, 241, 241, 254, 255, 254, 255, 254, 255, 254, 255, 256,
+ 257, 258, 258, 241, 253, 253, 253, 253, 253, 253, 253, 253, 253, 259,
+ 260, 261, 262, 263, 263, 256, 252, 252, 252, 252, 252, 249, 241, 264,
+ 264, 264, 252, 171, 251, 241, 26, 0, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171,
265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171,
- 171, 265, 171, 265, 171, 265, 171, 171, 171, 171, 171, 171, 265, 265,
- 171, 265, 265, 171, 265, 265, 171, 265, 265, 171, 265, 265, 171, 171,
+ 171, 265, 171, 265, 171, 265, 171, 171, 171, 171, 171, 171, 265, 265,
+ 171, 265, 265, 171, 265, 265, 171, 265, 265, 171, 265, 265, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 265, 171, 171, 0, 0, 266, 266, 267, 267,
- 252, 268, 269, 256, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265,
- 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 171, 265, 171,
- 265, 171, 265, 171, 171, 171, 171, 171, 171, 265, 265, 171, 265, 265,
- 171, 265, 265, 171, 265, 265, 171, 265, 265, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 265, 171, 171, 0, 0, 266, 266, 267, 267,
+ 252, 268, 269, 256, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 265,
+ 171, 265, 171, 265, 171, 265, 171, 265, 171, 265, 171, 171, 265, 171,
+ 265, 171, 265, 171, 171, 171, 171, 171, 171, 265, 265, 171, 265, 265,
+ 171, 265, 265, 171, 265, 265, 171, 265, 265, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 265, 171, 171, 265, 265, 265, 265, 251, 252, 252, 268,
- 269, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 0, 269, 269, 269, 269, 269, 269, 269, 269, 269,
+ 171, 171, 171, 265, 171, 171, 265, 265, 265, 265, 251, 252, 252, 268,
+ 269, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 0, 269, 269, 269, 269, 269, 269, 269, 269, 269,
269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269,
- 269, 0, 270, 270, 271, 271, 271, 271, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 269, 0, 270, 270, 271, 271, 271, 271, 272, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 241, 241, 241, 241, 241, 241, 241,
+ 171, 171, 171, 171, 171, 171, 171, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 272, 272, 272, 272,
+ 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 249, 249, 0, 271,
- 271, 271, 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 249, 249, 0, 271,
+ 271, 271, 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 273, 273, 273,
- 273, 273, 273, 273, 273, 249, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 272, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 273, 273, 273,
+ 273, 273, 273, 273, 273, 249, 274, 274, 274, 274, 274, 274, 274, 274,
+ 274, 274, 274, 274, 274, 274, 274, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 272, 272, 272, 249, 249, 249, 270, 271, 271, 271,
- 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 272, 272, 272, 272, 249, 249, 249, 270, 271, 271, 271,
+ 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 249, 249, 249, 249, 272, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 272, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
+ 274, 274, 274, 274, 274, 272, 272, 272, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 249, 249, 249, 249, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
@@ -2074,17 +2074,17 @@ static const unsigned short index2[] = {
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 272, 272, 249, 249, 249, 249, 272, 272, 272, 272,
+ 272, 272, 272, 272, 272, 272, 249, 249, 249, 249, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 249, 249, 272,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 249, 249, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 249, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
+ 272, 272, 249, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
@@ -2097,11 +2097,12 @@ static const unsigned short index2[] = {
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 26, 26,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 171, 171, 171, 171, 171, 171, 171, 171,
+ 26, 26, 26, 26, 26, 26, 26, 26, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
@@ -2109,9 +2110,9 @@ static const unsigned short index2[] = {
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 252,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 252,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
@@ -2119,100 +2120,99 @@ static const unsigned short index2[] = {
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 241, 241, 241, 241, 241, 241,
+ 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 53, 53, 53, 53, 53, 53, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 53, 138, 138, 138, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 48, 81, 82, 82, 82, 138, 81, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 138, 52, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 51, 51, 81, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 81, 81, 83,
- 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 54, 54, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 47, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 51, 47, 47,
- 47, 47, 47, 47, 47, 47, 44, 47, 44, 47, 44, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 52, 275, 275, 44, 47, 44, 47, 48, 44, 47, 44, 47, 47, 47, 44,
- 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 44, 44, 44, 44, 47, 44, 44, 44, 44, 44, 47, 44, 47, 44, 47, 44,
- 47, 44, 47, 44, 47, 0, 0, 44, 47, 44, 44, 44, 44, 47, 44, 47, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 47, 48, 51, 51, 47, 48, 48,
- 48, 48, 48, 48, 48, 135, 48, 48, 48, 143, 48, 48, 48, 48, 135, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 140, 140, 135, 135, 140, 26, 26, 26, 26, 143, 0, 0, 0, 149,
- 149, 149, 149, 149, 149, 80, 80, 85, 227, 0, 0, 0, 0, 0, 0, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 138, 138, 138, 138,
- 0, 0, 0, 0, 0, 0, 0, 0, 140, 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 143, 135, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 48, 48,
- 48, 48, 48, 48, 83, 83, 83, 48, 83, 48, 48, 135, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135,
- 135, 135, 135, 86, 86, 86, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 140, 176, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 83, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 53, 53, 53, 53, 53, 53, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 53, 138, 138, 138, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 48, 81, 82, 82, 82, 138, 81, 81, 81,
+ 81, 81, 81, 81, 81, 81, 81, 138, 52, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 51, 51, 81, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 81, 81, 83,
+ 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 54, 54, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 47, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 51, 47, 47,
+ 47, 47, 47, 47, 47, 47, 44, 47, 44, 47, 44, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 52, 275, 275, 44, 47, 44, 47, 48, 44, 47, 44, 47, 47, 47, 44,
+ 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 44, 44, 44, 44, 47, 44, 44, 44, 44, 44, 47, 44, 47, 44, 47, 44,
+ 47, 44, 47, 44, 47, 0, 0, 44, 47, 44, 44, 44, 44, 47, 44, 47, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 47, 48, 51, 51, 47, 48, 48,
+ 48, 48, 48, 48, 48, 135, 48, 48, 48, 143, 48, 48, 48, 48, 135, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 140, 140, 135, 135, 140, 26, 26, 26, 26, 143, 0, 0, 0, 149,
+ 149, 149, 149, 149, 149, 80, 80, 85, 227, 0, 0, 0, 0, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 138, 138, 138, 138,
+ 0, 0, 0, 0, 0, 0, 0, 0, 140, 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 140, 140, 140, 140, 140, 143, 135, 0, 0, 0, 0, 0, 0, 0, 0, 83, 83, 145,
+ 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 81, 81,
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 48, 48,
+ 48, 48, 48, 48, 83, 83, 83, 48, 83, 48, 48, 135, 145, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135,
+ 135, 135, 135, 86, 86, 86, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 140, 176, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 83, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 0, 0, 0, 135, 135, 135, 140, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 146, 140, 140, 135, 135, 135, 135, 140, 140, 135, 135,
- 140, 140, 176, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 0, 53,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 83, 83, 48,
- 48, 48, 48, 48, 135, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 135, 135, 135, 135, 135, 135, 140, 140, 135, 135, 140, 140,
- 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 135, 48, 48, 48, 48, 48,
- 48, 48, 48, 135, 140, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 0, 0, 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 53, 48, 48, 48, 48, 48, 48, 80, 80, 80, 48, 140, 135,
- 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 48, 81,
- 81, 86, 48, 48, 81, 81, 48, 48, 48, 48, 48, 81, 81, 48, 81, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 53, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 135, 135,
- 140, 140, 83, 83, 48, 53, 53, 140, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
- 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48,
- 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
- 48, 48, 48, 48, 48, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 171, 171, 171, 0, 0, 0, 135, 135, 135, 140, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 146, 140, 140, 135, 135, 135, 135, 140, 140, 135, 135,
+ 140, 140, 176, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 0, 53,
+ 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 83, 83, 48,
+ 48, 48, 48, 48, 135, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 145, 48, 48, 48, 48, 48, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 135, 135, 135, 135, 135, 135, 140, 140, 135, 135, 140, 140,
+ 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 135, 48, 48, 48, 48, 48,
+ 48, 48, 48, 135, 140, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 0, 0, 83, 83, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 53, 48, 48, 48, 48, 48, 48, 80, 80, 80, 48, 140, 135,
+ 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 48, 81,
+ 81, 86, 48, 48, 81, 81, 48, 48, 48, 48, 48, 81, 81, 48, 81, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 53, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 135, 135,
+ 140, 140, 83, 83, 48, 53, 53, 140, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
+ 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
+ 48, 48, 48, 48, 48, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 275, 51, 51, 51, 51,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 54, 54, 0, 0, 0, 0, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 275, 51, 51, 51, 51,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 54, 54, 0, 0, 0, 0, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 140, 140, 135, 140, 140, 135, 140, 140, 83, 140, 143, 0,
- 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 140, 140, 135, 140, 140, 135, 140, 140, 83, 140, 143, 0,
+ 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
@@ -2223,13 +2223,13 @@ static const unsigned short index2[] = {
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
- 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
- 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
+ 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 276, 276, 276, 276, 276, 276, 276,
+ 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 276, 276, 276, 276, 276, 276, 276,
276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
@@ -2238,7 +2238,7 @@ static const unsigned short index2[] = {
276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
- 276, 276, 276, 276, 276, 276, 276, 276, 276, 277, 277, 277, 277, 277,
+ 276, 276, 276, 276, 276, 276, 276, 276, 276, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
@@ -2247,7 +2247,8 @@ static const unsigned short index2[] = {
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
- 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 278, 278, 278,
+ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 278, 278, 278,
+ 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
@@ -2256,38 +2257,37 @@ static const unsigned short index2[] = {
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
+ 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 171,
+ 171, 278, 171, 278, 171, 171, 278, 278, 278, 278, 278, 278, 278, 278,
+ 278, 278, 171, 278, 171, 278, 171, 171, 278, 278, 171, 171, 171, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 171,
- 171, 278, 171, 278, 171, 171, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 171, 278, 171, 278, 171, 171, 278, 278, 171, 171, 171, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
+ 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 0, 0, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 0, 0, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 278, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 35, 35, 35, 35, 35, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35,
- 35, 35, 35, 0, 0, 0, 0, 0, 279, 280, 279, 281, 281, 281, 281, 281, 281,
- 281, 281, 281, 217, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 0, 279, 279, 279, 279, 279, 0, 279, 0, 279, 279, 0, 279,
- 279, 0, 279, 279, 279, 279, 279, 279, 279, 279, 279, 281, 131, 131, 131,
+ 278, 278, 278, 278, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 35, 35, 35, 35, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35,
+ 35, 35, 35, 0, 0, 0, 0, 0, 279, 280, 279, 281, 281, 281, 281, 281, 281,
+ 281, 281, 281, 217, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
+ 279, 279, 279, 0, 279, 279, 279, 279, 279, 0, 279, 0, 279, 279, 0, 279,
+ 279, 0, 279, 279, 279, 279, 279, 279, 279, 279, 279, 281, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 282, 282, 282,
- 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 282, 282, 282,
+ 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
@@ -2304,26 +2304,26 @@ static const unsigned short index2[] = {
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 283, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 283, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 284, 26, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
- 71, 71, 71, 285, 285, 285, 285, 285, 285, 285, 286, 287, 285, 0, 0, 0, 0,
- 0, 0, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 81, 81,
- 285, 288, 288, 289, 289, 286, 287, 286, 287, 286, 287, 286, 287, 286,
- 287, 286, 287, 286, 287, 286, 287, 251, 251, 286, 287, 285, 285, 285,
- 285, 289, 289, 289, 290, 285, 290, 0, 285, 290, 285, 285, 288, 291, 292,
- 291, 292, 291, 292, 293, 285, 285, 294, 295, 296, 296, 297, 0, 285, 298,
- 293, 285, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 284, 26, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 285, 285, 285, 285, 285, 285, 285, 286, 287, 285, 0, 0, 0, 0,
+ 0, 0, 81, 81, 81, 81, 81, 81, 81, 86, 86, 86, 86, 86, 86, 86, 81, 81,
+ 285, 288, 288, 289, 289, 286, 287, 286, 287, 286, 287, 286, 287, 286,
+ 287, 286, 287, 286, 287, 286, 287, 251, 251, 286, 287, 285, 285, 285,
+ 285, 289, 289, 289, 290, 285, 290, 0, 285, 290, 285, 285, 288, 291, 292,
+ 291, 292, 291, 292, 293, 285, 285, 294, 295, 296, 296, 297, 0, 285, 298,
+ 293, 285, 0, 0, 0, 0, 131, 131, 131, 118, 131, 0, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
@@ -2333,145 +2333,145 @@ static const unsigned short index2[] = {
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 0, 0, 175, 0, 299, 299, 300, 301, 300, 299, 299,
- 302, 303, 299, 304, 305, 306, 305, 305, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 305, 299, 308, 309, 308, 299, 299, 310, 310, 310,
+ 131, 131, 131, 131, 131, 0, 0, 175, 0, 299, 299, 300, 301, 300, 299, 299,
+ 302, 303, 299, 304, 305, 306, 305, 305, 307, 307, 307, 307, 307, 307,
+ 307, 307, 307, 307, 305, 299, 308, 309, 308, 299, 299, 310, 310, 310,
310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
- 310, 310, 310, 310, 310, 310, 310, 310, 310, 302, 299, 303, 311, 312,
- 311, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
- 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 302,
- 309, 303, 309, 302, 303, 314, 315, 316, 314, 314, 317, 317, 317, 317,
- 317, 317, 317, 317, 317, 317, 318, 317, 317, 317, 317, 317, 317, 317,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 302, 299, 303, 311, 312,
+ 311, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 302,
+ 309, 303, 309, 302, 303, 314, 315, 316, 314, 314, 317, 317, 317, 317,
+ 317, 317, 317, 317, 317, 317, 318, 317, 317, 317, 317, 317, 317, 317,
317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
- 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 318, 318, 317, 317,
+ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 318, 318, 317, 317,
317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
- 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
- 317, 0, 0, 0, 317, 317, 317, 317, 317, 317, 0, 0, 317, 317, 317, 317,
- 317, 317, 0, 0, 317, 317, 317, 317, 317, 317, 0, 0, 317, 317, 317, 0, 0,
- 0, 301, 301, 309, 311, 319, 301, 301, 0, 320, 321, 321, 321, 321, 320,
- 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 322, 322, 26, 30, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48,
+ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
+ 317, 0, 0, 0, 317, 317, 317, 317, 317, 317, 0, 0, 317, 317, 317, 317,
+ 317, 317, 0, 0, 317, 317, 317, 317, 317, 317, 0, 0, 317, 317, 317, 0, 0,
+ 0, 301, 301, 309, 311, 319, 301, 301, 0, 320, 321, 321, 321, 321, 320,
+ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 322, 322, 26, 30, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 149, 149, 149,
+ 48, 48, 48, 48, 0, 0, 0, 0, 0, 83, 138, 83, 0, 0, 0, 0, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 0,
- 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 323, 323, 323, 323, 323, 323,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 0,
+ 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
- 323, 323, 323, 323, 323, 154, 154, 154, 154, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 154, 154, 26, 80, 80, 0, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0,
+ 323, 323, 323, 323, 323, 154, 154, 154, 154, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 154, 154, 26, 80, 80, 0, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 80, 80, 80, 80, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 324, 324, 324,
+ 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 324, 324, 324,
324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 0, 0, 0, 0, 48, 48, 48,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 0, 0, 0, 0, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 149, 149, 149, 149, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 174, 48, 48, 48, 48, 48, 48, 48, 48, 174, 0, 0,
- 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 149, 149, 149, 149, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 174, 48, 48, 48, 48, 48, 48, 48, 48, 174, 0, 0,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
- 48, 48, 83, 174, 174, 174, 174, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 83, 174, 174, 174, 174, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0,
+ 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 47, 47, 47, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
+ 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 107, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 107, 0,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 0, 107, 107, 0, 0, 0, 107, 0, 0, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 0, 104, 325, 325, 325, 325, 325, 325, 325, 325, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 0, 104, 325, 325, 325, 325, 325, 325, 325, 325, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 326, 326, 325, 325, 325, 325, 325,
+ 325, 325, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 326, 326, 325, 325, 325, 325, 325,
- 325, 325, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 325, 325, 325, 325, 325,
- 325, 325, 325, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 0, 0, 325,
- 325, 325, 325, 325, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 325, 325,
- 325, 325, 325, 325, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, 0, 0, 325,
+ 325, 325, 325, 325, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 325, 325,
+ 325, 325, 325, 325, 0, 0, 0, 138, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 107, 107, 107, 107, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 0, 0, 0, 0, 325, 325, 107, 107, 325, 325, 325, 325, 325,
- 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 0, 0, 325, 325,
+ 107, 107, 107, 0, 0, 0, 0, 325, 325, 107, 107, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 0, 0, 325, 325,
325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
- 325, 325, 107, 135, 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, 135, 86, 135,
- 81, 107, 107, 107, 107, 0, 107, 107, 107, 0, 107, 107, 107, 107, 107,
+ 325, 325, 107, 135, 135, 135, 0, 135, 135, 0, 0, 0, 0, 0, 135, 86, 135,
+ 81, 107, 107, 107, 107, 0, 107, 107, 107, 0, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 81, 177, 86, 0,
+ 0, 0, 0, 143, 325, 325, 325, 325, 325, 325, 325, 325, 325, 0, 0, 0, 0, 0,
+ 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 81, 177, 86, 0,
- 0, 0, 0, 143, 325, 325, 325, 325, 325, 325, 325, 325, 325, 0, 0, 0, 0, 0,
- 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 325, 325, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 325, 325, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2525,202 +2525,202 @@ static const unsigned short index2[] = {
329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
329, 329, 329, 329, 329, 329, 329, 0, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 0, 81, 81, 102, 0, 0, 107, 107, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 107, 0,
- 0, 0, 0, 0, 0, 0, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 86, 86, 81,
- 81, 81, 86, 81, 86, 86, 86, 86, 330, 330, 330, 330, 113, 113, 113, 113,
- 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 325, 325, 325, 325, 325, 325, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 135, 140, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 143, 83, 83, 83, 83, 83, 83, 83,
- 0, 0, 0, 0, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
- 135, 135, 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 141, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 48, 48, 48, 140, 140, 140, 135,
- 135, 135, 135, 140, 140, 143, 142, 83, 83, 190, 83, 83, 83, 83, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
- 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0,
- 0, 0, 81, 81, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 150, 135, 135, 135, 135, 140, 135, 151, 151, 135, 135,
- 135, 143, 143, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 83,
- 83, 83, 83, 48, 140, 140, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 146, 83, 83, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 135, 135, 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 140, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 135, 140,
- 176, 48, 48, 48, 48, 83, 83, 83, 83, 135, 146, 135, 135, 83, 140, 135,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 48, 83, 48, 83, 83, 83,
- 0, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 140, 140, 140, 135, 135, 135, 140, 140, 135, 176,
- 146, 135, 83, 83, 83, 83, 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48,
- 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 83, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 135, 140, 140, 140, 135, 135, 135, 135, 135, 135,
- 146, 143, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 0, 0, 0, 0, 0, 0, 135, 135, 140, 140, 0, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0,
- 48, 48, 0, 48, 48, 48, 48, 48, 0, 146, 146, 48, 147, 140, 135, 140, 140,
- 140, 140, 0, 0, 140, 140, 0, 0, 148, 148, 176, 0, 0, 48, 0, 0, 0, 0, 0,
- 0, 147, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 140, 140, 0, 0, 81, 81, 81,
- 81, 81, 81, 81, 0, 0, 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 140, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 140, 140, 143,
- 135, 135, 140, 146, 48, 48, 48, 48, 83, 83, 83, 83, 83, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 83, 83, 0, 83, 81, 48, 48, 48, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 147, 140,
- 140, 135, 135, 135, 135, 135, 135, 140, 150, 148, 148, 147, 148, 135,
- 135, 140, 143, 146, 48, 48, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 147, 140, 140, 135,
- 135, 135, 135, 0, 0, 140, 140, 148, 148, 135, 135, 140, 143, 146, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 140, 140, 135, 135, 135,
- 135, 135, 135, 135, 135, 140, 140, 135, 140, 143, 135, 83, 83, 83, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 135, 140, 135, 140, 140, 135, 135, 135,
- 135, 135, 135, 176, 146, 48, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 0, 135, 135, 135, 140, 140, 135, 135, 135, 135, 140, 135,
- 135, 135, 135, 143, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 149, 149, 83, 83, 83, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 140, 140, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 140, 143, 146, 83, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 0, 81, 81, 102, 0, 0, 107, 107, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 107, 0,
+ 0, 0, 0, 0, 0, 0, 0, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 86, 86, 81,
+ 81, 81, 86, 81, 86, 86, 86, 86, 330, 330, 330, 330, 113, 113, 113, 113,
+ 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 325, 325, 325, 325, 325, 325, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 135, 140, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 143, 83, 83, 83, 83, 83, 83, 83,
+ 0, 0, 0, 0, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 145, 145, 145, 145, 145, 145,
+ 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
+ 135, 135, 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 141, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 141, 48, 48, 48, 48, 140, 140, 140, 135,
+ 135, 135, 135, 140, 140, 143, 142, 83, 83, 190, 83, 83, 83, 83, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
+ 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0,
+ 0, 0, 81, 81, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 150, 135, 135, 135, 135, 140, 135, 151, 151, 135, 135,
+ 135, 143, 143, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 83,
+ 83, 83, 83, 48, 140, 140, 48, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 146, 83, 83, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 135, 135, 140, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 140, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 135, 140,
+ 176, 48, 48, 48, 48, 83, 83, 83, 83, 135, 146, 135, 135, 83, 140, 135,
+ 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 48, 83, 48, 83, 83, 83,
+ 0, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 140, 140, 140, 135, 135, 135, 140, 140, 135, 176,
+ 146, 135, 83, 83, 83, 83, 83, 83, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 0, 48, 0, 48, 48, 48, 48,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 83, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 135, 140, 140, 140, 135, 135, 135, 135, 135, 135,
+ 146, 143, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 0, 0, 0, 0, 0, 0, 135, 135, 140, 140, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 0, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 0,
+ 48, 48, 0, 48, 48, 48, 48, 48, 0, 146, 146, 48, 147, 140, 135, 140, 140,
+ 140, 140, 0, 0, 140, 140, 0, 0, 148, 148, 176, 0, 0, 48, 0, 0, 0, 0, 0,
+ 0, 147, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 140, 140, 0, 0, 81, 81, 81,
+ 81, 81, 81, 81, 0, 0, 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 140, 140, 140, 135, 135, 135, 135, 135, 135, 135, 135, 140, 140, 143,
+ 135, 135, 140, 146, 48, 48, 48, 48, 83, 83, 83, 83, 83, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 83, 83, 0, 83, 81, 48, 48, 48, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 147, 140,
+ 140, 135, 135, 135, 135, 135, 135, 140, 150, 148, 148, 147, 148, 135,
+ 135, 140, 143, 146, 48, 48, 83, 48, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 147, 140, 140, 135,
+ 135, 135, 135, 0, 0, 140, 140, 148, 148, 135, 135, 140, 143, 146, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 48, 48, 48, 48, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 140, 140, 135, 135, 135,
+ 135, 135, 135, 135, 135, 140, 140, 135, 140, 143, 135, 83, 83, 83, 48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 135, 140, 135, 140, 140, 135, 135, 135,
+ 135, 135, 135, 176, 146, 48, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 135, 135, 135, 140, 140, 135, 135, 135, 135, 140, 135,
+ 135, 135, 135, 143, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 149, 149, 83, 83, 83, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 140, 140, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 140, 143, 146, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 149, 149, 149, 149, 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 0, 0, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 147, 140, 140,
- 140, 140, 140, 0, 140, 148, 0, 0, 135, 135, 176, 143, 48, 140, 48, 140,
- 146, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48,
+ 47, 47, 47, 47, 47, 47, 47, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 149, 149, 149, 149, 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 147, 140, 140,
+ 140, 140, 140, 0, 140, 148, 0, 0, 135, 135, 176, 143, 48, 140, 48, 140,
+ 146, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145,
+ 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 140,
- 140, 135, 135, 135, 135, 0, 0, 135, 135, 140, 140, 140, 140, 143, 48, 83,
- 48, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 48, 135, 135, 135, 135, 135, 135, 155, 155, 135, 135,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 140, 140,
+ 140, 135, 135, 135, 135, 0, 0, 135, 135, 140, 140, 140, 140, 143, 48, 83,
+ 48, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 48, 135, 135, 135, 135, 135, 135, 155, 155, 135, 135,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 135, 143, 135, 135, 135, 135, 140, 48, 135, 135, 135,
- 135, 83, 83, 83, 83, 83, 83, 83, 83, 143, 0, 0, 0, 0, 0, 0, 0, 0, 48,
- 135, 135, 135, 135, 135, 135, 140, 140, 135, 135, 135, 48, 48, 48, 48,
+ 48, 48, 48, 48, 135, 143, 135, 135, 135, 135, 140, 48, 135, 135, 135,
+ 135, 83, 83, 83, 83, 83, 83, 83, 83, 143, 0, 0, 0, 0, 0, 0, 0, 0, 48,
+ 135, 135, 135, 135, 135, 135, 140, 140, 135, 135, 135, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 140, 135, 143, 83, 83, 83, 48, 83, 83, 83, 83, 83, 0, 0,
+ 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 140, 135, 143, 83, 83, 83, 48, 83, 83, 83, 83, 83, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 140, 135, 135, 135, 135, 135, 135, 135, 0, 135, 135, 135,
- 135, 135, 135, 140, 331, 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 0, 0, 0, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 140, 135, 135, 135,
- 135, 135, 135, 135, 140, 135, 135, 140, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 140, 135, 135, 135, 135, 135, 135, 135, 0, 135, 135, 135,
+ 135, 135, 135, 140, 331, 48, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 0, 0, 0, 83, 83, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 0, 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 140, 135, 135, 135,
+ 135, 135, 135, 135, 140, 135, 135, 140, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
- 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 0, 0, 0, 135,
- 0, 135, 135, 0, 135, 135, 135, 146, 135, 143, 143, 48, 135, 0, 0, 0, 0,
- 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0,
- 0, 0, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 140, 140, 140, 140, 140, 0, 135, 135, 0, 140,
- 140, 135, 140, 143, 48, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 135, 135, 135, 135, 135, 135, 0, 0, 0, 135,
+ 0, 135, 135, 0, 135, 135, 135, 146, 135, 143, 143, 48, 135, 0, 0, 0, 0,
+ 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 0, 0, 0,
+ 0, 0, 48, 48, 48, 48, 48, 48, 0, 48, 48, 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 140, 140, 140, 140, 140, 0, 135, 135, 0, 140,
+ 140, 135, 140, 143, 48, 0, 0, 0, 0, 0, 0, 0, 145, 145, 145, 145, 145,
+ 145, 145, 145, 145, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135,
+ 135, 140, 140, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 135,
- 135, 140, 140, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 26, 26, 26, 26, 26, 26,
+ 26, 26, 85, 85, 85, 85, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 26, 26, 26, 26, 26, 26,
- 26, 26, 85, 85, 85, 85, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 174, 174, 174, 174, 174,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
@@ -2728,78 +2728,78 @@ static const unsigned short index2[] = {
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
- 174, 174, 174, 174, 174, 174, 174, 0, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 174, 174, 174, 174, 174, 174, 174, 0, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 0, 190, 190, 190, 190, 190, 190, 190, 190, 190, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 0, 190, 190, 190, 190, 190, 190, 190, 190, 190, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0,
- 0, 0, 0, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0,
+ 0, 0, 0, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0,
- 177, 177, 177, 177, 177, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
+ 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0,
+ 177, 177, 177, 177, 177, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 81, 81, 83, 83,
- 83, 83, 83, 80, 80, 80, 80, 53, 53, 53, 53, 83, 80, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 149, 149,
- 149, 149, 149, 149, 149, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 81, 81, 81, 83, 83,
+ 83, 83, 83, 80, 80, 80, 80, 53, 53, 53, 53, 83, 80, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 149, 149,
+ 149, 149, 149, 149, 149, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
- 0, 135, 48, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
+ 0, 135, 48, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 140, 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 252, 252, 251, 252, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 333, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171,
+ 252, 252, 251, 252, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 333, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
@@ -2808,26 +2808,26 @@ static const unsigned short index2[] = {
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171,
- 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171,
+ 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
@@ -2837,88 +2837,88 @@ static const unsigned short index2[] = {
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 0, 0, 80, 135, 177, 83, 175, 175, 175, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 0, 0, 80, 135, 177, 83, 175, 175, 175, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 334, 334, 334, 334, 334, 334, 334,
- 335, 335, 177, 177, 177, 80, 80, 80, 336, 335, 335, 335, 335, 335, 175,
- 175, 175, 175, 175, 175, 175, 175, 86, 86, 86, 86, 86, 86, 86, 86, 80,
- 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 334, 334, 334, 334, 334, 334, 334,
+ 335, 335, 177, 177, 177, 80, 80, 80, 336, 335, 335, 335, 335, 335, 175,
+ 175, 175, 175, 175, 175, 175, 175, 86, 86, 86, 86, 86, 86, 86, 86, 80,
+ 80, 81, 81, 81, 81, 81, 86, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 334, 334, 334, 334, 334, 334, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 334, 334, 334, 334, 334, 334, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 81, 81, 81, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0,
- 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 0, 0, 0, 0, 0, 0,
+ 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 0, 49, 49, 0, 0,
+ 49, 0, 0, 49, 49, 0, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49,
+ 49, 35, 35, 35, 35, 0, 35, 0, 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 0, 49, 49, 49, 49,
+ 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 0, 49, 0, 0, 0,
+ 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 0, 49, 49, 0, 0,
- 49, 0, 0, 49, 49, 0, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49,
- 49, 35, 35, 35, 35, 0, 35, 0, 35, 35, 35, 35, 35, 35, 35, 0, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 0, 49, 49, 49, 49,
- 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 49, 49, 0, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 0, 49, 0, 0, 0,
- 49, 49, 49, 49, 49, 49, 49, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49,
+ 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 49, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
@@ -2928,60 +2928,60 @@ static const unsigned short index2[] = {
35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 337, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 337, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 228, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49,
+ 35, 35, 35, 35, 228, 35, 35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 337, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 228, 35, 35, 35, 35, 35, 35, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 337, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 228, 35, 35, 35, 35, 35,
- 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 337, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 337, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 228, 35, 35, 35, 35, 35, 35, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 337, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 228, 35, 35, 35, 35, 35,
+ 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 337, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 228, 35,
35, 35, 35, 35, 35, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 337, 35, 35, 35, 35, 35,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 337, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 228, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 338, 338, 338, 338,
- 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
- 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
- 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
- 338, 338, 338, 338, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 35, 35, 228, 35, 35, 35, 35, 35, 35, 49, 35, 0, 0, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 80, 80, 80, 80, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 80, 80, 80, 80, 135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 80,
- 80, 80, 80, 80, 80, 80, 80, 135, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 135, 80, 80, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 135, 0, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 81, 81, 81, 81, 81, 81, 81, 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 81, 81, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 81, 81,
- 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 53, 53, 53,
- 53, 53, 53, 53, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 0, 0, 0, 0, 48, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 0, 0, 0, 0, 0, 85, 107, 107, 107, 107, 107, 107, 107,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 80,
+ 80, 80, 80, 80, 80, 80, 80, 135, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 135, 80, 80, 83, 83, 83, 83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 135, 135, 135, 135, 135, 0, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 81, 81, 81, 81, 81, 81, 81, 0, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 81, 81, 81, 81, 81, 81, 81, 0, 0, 81, 81, 81, 81, 81, 81, 81, 0, 81, 81,
+ 0, 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 0, 0, 0, 81, 81, 81, 81, 81, 81, 81, 53, 53, 53,
+ 53, 53, 53, 53, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 0, 0, 0, 0, 48, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 81, 81, 81, 81, 145, 145, 145, 145, 145, 145,
+ 145, 145, 145, 145, 0, 0, 0, 0, 0, 85, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
@@ -2995,110 +2995,110 @@ static const unsigned short index2[] = {
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 325, 325, 325, 325, 325,
- 325, 325, 325, 325, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0,
+ 107, 107, 107, 107, 107, 107, 107, 107, 0, 0, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, 327, 327, 327, 327, 327, 327, 327, 327,
327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 328, 328, 328,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 81, 81, 81, 81, 81, 81, 146, 137, 0, 0, 0, 0, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 0, 0, 0, 0, 104, 104, 0, 0, 0, 0,
+ 328, 328, 328, 81, 81, 81, 81, 81, 81, 146, 137, 0, 0, 0, 0, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 0, 0, 0, 0, 104, 104, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, 330,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 133, 330, 330, 330, 111, 330, 330, 330, 330, 0, 0, 0, 0, 0, 0, 0, 0,
+ 330, 133, 330, 330, 330, 111, 330, 330, 330, 330, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 133, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
+ 330, 133, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
+ 330, 330, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131,
- 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131,
+ 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 0, 131, 131, 0, 131, 0, 0, 131, 0, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 0, 0, 0,
- 0, 0, 0, 131, 0, 0, 0, 0, 131, 0, 131, 0, 131, 0, 131, 131, 131, 0, 131,
- 131, 0, 131, 0, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 131, 0,
- 131, 0, 0, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 0,
- 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 131, 131,
- 131, 0, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 241, 26, 26, 26, 26,
+ 131, 131, 0, 131, 131, 0, 131, 0, 0, 131, 0, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 0, 0, 0,
+ 0, 0, 0, 131, 0, 0, 0, 0, 131, 0, 131, 0, 131, 0, 131, 131, 131, 0, 131,
+ 131, 0, 131, 0, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 0, 131, 131, 0,
+ 131, 0, 0, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 0,
+ 131, 131, 131, 131, 0, 131, 131, 131, 131, 0, 131, 0, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 131, 131,
+ 131, 0, 131, 131, 131, 131, 131, 0, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 241, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0,
- 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0,
+ 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 0, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 0, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 154, 154,
- 26, 26, 26, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 154, 154,
+ 26, 26, 26, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 339, 26, 244, 244, 244, 244, 244, 244, 244, 244, 244,
+ 244, 244, 244, 244, 339, 26, 244, 244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 244, 244, 244, 244, 244, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 224, 224, 224, 26, 26, 26, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 270, 340, 244, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 272, 272,
+ 244, 244, 244, 244, 244, 244, 244, 244, 244, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 224, 224, 224, 26, 26, 26, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 270, 340, 244, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+ 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 0, 0, 0, 0,
- 272, 272, 272, 272, 272, 272, 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 272,
- 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241, 241, 241,
- 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 0, 0, 0, 0,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 0, 0, 0, 0, 0, 0, 0, 272,
+ 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241, 241, 241,
+ 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241,
+ 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26,
- 26, 26, 26, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 26, 26, 26, 241, 26, 26, 26, 241, 241, 241, 341,
- 341, 341, 341, 341, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26,
+ 26, 26, 26, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 26, 26, 26, 241, 26, 26, 26, 241, 241, 241, 341,
+ 341, 341, 341, 341, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 241, 26, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 241, 26, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
@@ -3112,130 +3112,130 @@ static const unsigned short index2[] = {
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 26, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 26, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241, 241, 26, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241, 241, 26, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26,
+ 241, 241, 241, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 241, 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 26, 26,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241, 241, 241, 241, 241,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 241, 26, 26,
- 26, 241, 241, 241, 26, 26, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 0, 0, 0, 26, 26, 26, 26,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 26, 26, 26, 26, 26,
+ 241, 241, 241, 241, 241, 241, 241, 26, 26, 26, 26, 26, 26, 241, 26, 26,
+ 26, 241, 241, 241, 26, 26, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 241, 241, 0, 0, 0, 26, 26, 26, 26,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0,
+ 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 26, 26,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 0, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 26, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 0, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 0, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 0, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0,
- 0, 241, 241, 241, 241, 241, 0, 0, 0, 241, 241, 241, 0, 0, 0, 0, 0, 241,
- 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 241, 241,
- 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241, 241, 241, 241, 241, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 338, 338, 338, 338, 338, 338, 338,
- 338, 338, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 241, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0,
+ 0, 241, 241, 241, 241, 241, 0, 0, 0, 241, 241, 241, 0, 0, 0, 0, 0, 241,
+ 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 241, 241,
+ 241, 241, 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 241, 241, 241, 241, 241, 241, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171,
+ 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
@@ -3244,8 +3244,8 @@ static const unsigned short index2[] = {
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
@@ -3256,31 +3256,32 @@ static const unsigned short index2[] = {
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 278, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
+ 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
+ 0, 0, 0, 0, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 71,
+ 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
@@ -3293,8 +3294,7 @@ static const unsigned short index2[] = {
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
- 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
- 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277,
+ 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
@@ -3303,11 +3303,11 @@ static const unsigned short index2[] = {
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
- 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 0, 0,
+ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 0, 0,
};
/* decomposition data */
-static const unsigned int decomp_data[] = {
+static const unsigned int decomp_data[] = {
0, 257, 32, 514, 32, 776, 259, 97, 514, 32, 772, 259, 50, 259, 51, 514,
32, 769, 258, 956, 514, 32, 807, 259, 49, 259, 111, 772, 49, 8260, 52,
772, 49, 8260, 50, 772, 51, 8260, 52, 512, 65, 768, 512, 65, 769, 512,
@@ -3714,435 +3714,435 @@ static const unsigned int decomp_data[] = {
263, 12507, 263, 12510, 263, 12511, 263, 12512, 263, 12513, 263, 12514,
263, 12516, 263, 12518, 263, 12520, 263, 12521, 263, 12522, 263, 12523,
263, 12524, 263, 12525, 263, 12527, 263, 12528, 263, 12529, 263, 12530,
- 522, 20196, 21644, 1034, 12450, 12497, 12540, 12488, 1034, 12450, 12523,
- 12501, 12449, 1034, 12450, 12531, 12506, 12450, 778, 12450, 12540, 12523,
- 1034, 12452, 12491, 12531, 12464, 778, 12452, 12531, 12481, 778, 12454,
- 12457, 12531, 1290, 12456, 12473, 12463, 12540, 12489, 1034, 12456,
- 12540, 12459, 12540, 778, 12458, 12531, 12473, 778, 12458, 12540, 12512,
- 778, 12459, 12452, 12522, 1034, 12459, 12521, 12483, 12488, 1034, 12459,
- 12525, 12522, 12540, 778, 12460, 12525, 12531, 778, 12460, 12531, 12510,
- 522, 12462, 12460, 778, 12462, 12491, 12540, 1034, 12461, 12517, 12522,
- 12540, 1034, 12462, 12523, 12480, 12540, 522, 12461, 12525, 1290, 12461,
- 12525, 12464, 12521, 12512, 1546, 12461, 12525, 12513, 12540, 12488,
- 12523, 1290, 12461, 12525, 12527, 12483, 12488, 778, 12464, 12521, 12512,
- 1290, 12464, 12521, 12512, 12488, 12531, 1290, 12463, 12523, 12476,
- 12452, 12525, 1034, 12463, 12525, 12540, 12493, 778, 12465, 12540, 12473,
- 778, 12467, 12523, 12490, 778, 12467, 12540, 12509, 1034, 12469, 12452,
- 12463, 12523, 1290, 12469, 12531, 12481, 12540, 12512, 1034, 12471,
- 12522, 12531, 12464, 778, 12475, 12531, 12481, 778, 12475, 12531, 12488,
- 778, 12480, 12540, 12473, 522, 12487, 12471, 522, 12489, 12523, 522,
- 12488, 12531, 522, 12490, 12494, 778, 12494, 12483, 12488, 778, 12495,
- 12452, 12484, 1290, 12497, 12540, 12475, 12531, 12488, 778, 12497, 12540,
- 12484, 1034, 12496, 12540, 12524, 12523, 1290, 12500, 12450, 12473,
- 12488, 12523, 778, 12500, 12463, 12523, 522, 12500, 12467, 522, 12499,
- 12523, 1290, 12501, 12449, 12521, 12483, 12489, 1034, 12501, 12451,
- 12540, 12488, 1290, 12502, 12483, 12471, 12455, 12523, 778, 12501, 12521,
- 12531, 1290, 12504, 12463, 12479, 12540, 12523, 522, 12506, 12477, 778,
- 12506, 12491, 12498, 778, 12504, 12523, 12484, 778, 12506, 12531, 12473,
- 778, 12506, 12540, 12472, 778, 12505, 12540, 12479, 1034, 12509, 12452,
- 12531, 12488, 778, 12508, 12523, 12488, 522, 12507, 12531, 778, 12509,
- 12531, 12489, 778, 12507, 12540, 12523, 778, 12507, 12540, 12531, 1034,
- 12510, 12452, 12463, 12525, 778, 12510, 12452, 12523, 778, 12510, 12483,
- 12495, 778, 12510, 12523, 12463, 1290, 12510, 12531, 12471, 12519, 12531,
- 1034, 12511, 12463, 12525, 12531, 522, 12511, 12522, 1290, 12511, 12522,
- 12496, 12540, 12523, 522, 12513, 12460, 1034, 12513, 12460, 12488, 12531,
- 1034, 12513, 12540, 12488, 12523, 778, 12516, 12540, 12489, 778, 12516,
- 12540, 12523, 778, 12518, 12450, 12531, 1034, 12522, 12483, 12488, 12523,
- 522, 12522, 12521, 778, 12523, 12500, 12540, 1034, 12523, 12540, 12502,
- 12523, 522, 12524, 12512, 1290, 12524, 12531, 12488, 12466, 12531, 778,
- 12527, 12483, 12488, 514, 48, 28857, 514, 49, 28857, 514, 50, 28857, 514,
- 51, 28857, 514, 52, 28857, 514, 53, 28857, 514, 54, 28857, 514, 55,
- 28857, 514, 56, 28857, 514, 57, 28857, 770, 49, 48, 28857, 770, 49, 49,
- 28857, 770, 49, 50, 28857, 770, 49, 51, 28857, 770, 49, 52, 28857, 770,
- 49, 53, 28857, 770, 49, 54, 28857, 770, 49, 55, 28857, 770, 49, 56,
- 28857, 770, 49, 57, 28857, 770, 50, 48, 28857, 770, 50, 49, 28857, 770,
- 50, 50, 28857, 770, 50, 51, 28857, 770, 50, 52, 28857, 778, 104, 80, 97,
- 522, 100, 97, 522, 65, 85, 778, 98, 97, 114, 522, 111, 86, 522, 112, 99,
- 522, 100, 109, 778, 100, 109, 178, 778, 100, 109, 179, 522, 73, 85, 522,
- 24179, 25104, 522, 26157, 21644, 522, 22823, 27491, 522, 26126, 27835,
- 1034, 26666, 24335, 20250, 31038, 522, 112, 65, 522, 110, 65, 522, 956,
- 65, 522, 109, 65, 522, 107, 65, 522, 75, 66, 522, 77, 66, 522, 71, 66,
- 778, 99, 97, 108, 1034, 107, 99, 97, 108, 522, 112, 70, 522, 110, 70,
- 522, 956, 70, 522, 956, 103, 522, 109, 103, 522, 107, 103, 522, 72, 122,
- 778, 107, 72, 122, 778, 77, 72, 122, 778, 71, 72, 122, 778, 84, 72, 122,
- 522, 956, 8467, 522, 109, 8467, 522, 100, 8467, 522, 107, 8467, 522, 102,
- 109, 522, 110, 109, 522, 956, 109, 522, 109, 109, 522, 99, 109, 522, 107,
- 109, 778, 109, 109, 178, 778, 99, 109, 178, 522, 109, 178, 778, 107, 109,
- 178, 778, 109, 109, 179, 778, 99, 109, 179, 522, 109, 179, 778, 107, 109,
- 179, 778, 109, 8725, 115, 1034, 109, 8725, 115, 178, 522, 80, 97, 778,
- 107, 80, 97, 778, 77, 80, 97, 778, 71, 80, 97, 778, 114, 97, 100, 1290,
- 114, 97, 100, 8725, 115, 1546, 114, 97, 100, 8725, 115, 178, 522, 112,
- 115, 522, 110, 115, 522, 956, 115, 522, 109, 115, 522, 112, 86, 522, 110,
- 86, 522, 956, 86, 522, 109, 86, 522, 107, 86, 522, 77, 86, 522, 112, 87,
- 522, 110, 87, 522, 956, 87, 522, 109, 87, 522, 107, 87, 522, 77, 87, 522,
- 107, 937, 522, 77, 937, 1034, 97, 46, 109, 46, 522, 66, 113, 522, 99, 99,
- 522, 99, 100, 1034, 67, 8725, 107, 103, 778, 67, 111, 46, 522, 100, 66,
- 522, 71, 121, 522, 104, 97, 522, 72, 80, 522, 105, 110, 522, 75, 75, 522,
- 75, 77, 522, 107, 116, 522, 108, 109, 522, 108, 110, 778, 108, 111, 103,
- 522, 108, 120, 522, 109, 98, 778, 109, 105, 108, 778, 109, 111, 108, 522,
- 80, 72, 1034, 112, 46, 109, 46, 778, 80, 80, 77, 522, 80, 82, 522, 115,
- 114, 522, 83, 118, 522, 87, 98, 778, 86, 8725, 109, 778, 65, 8725, 109,
- 514, 49, 26085, 514, 50, 26085, 514, 51, 26085, 514, 52, 26085, 514, 53,
- 26085, 514, 54, 26085, 514, 55, 26085, 514, 56, 26085, 514, 57, 26085,
- 770, 49, 48, 26085, 770, 49, 49, 26085, 770, 49, 50, 26085, 770, 49, 51,
- 26085, 770, 49, 52, 26085, 770, 49, 53, 26085, 770, 49, 54, 26085, 770,
- 49, 55, 26085, 770, 49, 56, 26085, 770, 49, 57, 26085, 770, 50, 48,
- 26085, 770, 50, 49, 26085, 770, 50, 50, 26085, 770, 50, 51, 26085, 770,
- 50, 52, 26085, 770, 50, 53, 26085, 770, 50, 54, 26085, 770, 50, 55,
- 26085, 770, 50, 56, 26085, 770, 50, 57, 26085, 770, 51, 48, 26085, 770,
- 51, 49, 26085, 778, 103, 97, 108, 259, 1098, 259, 1100, 259, 42863, 259,
- 294, 259, 339, 259, 42791, 259, 43831, 259, 619, 259, 43858, 259, 653,
- 256, 35912, 256, 26356, 256, 36554, 256, 36040, 256, 28369, 256, 20018,
- 256, 21477, 256, 40860, 256, 40860, 256, 22865, 256, 37329, 256, 21895,
- 256, 22856, 256, 25078, 256, 30313, 256, 32645, 256, 34367, 256, 34746,
- 256, 35064, 256, 37007, 256, 27138, 256, 27931, 256, 28889, 256, 29662,
- 256, 33853, 256, 37226, 256, 39409, 256, 20098, 256, 21365, 256, 27396,
- 256, 29211, 256, 34349, 256, 40478, 256, 23888, 256, 28651, 256, 34253,
- 256, 35172, 256, 25289, 256, 33240, 256, 34847, 256, 24266, 256, 26391,
- 256, 28010, 256, 29436, 256, 37070, 256, 20358, 256, 20919, 256, 21214,
- 256, 25796, 256, 27347, 256, 29200, 256, 30439, 256, 32769, 256, 34310,
- 256, 34396, 256, 36335, 256, 38706, 256, 39791, 256, 40442, 256, 30860,
- 256, 31103, 256, 32160, 256, 33737, 256, 37636, 256, 40575, 256, 35542,
- 256, 22751, 256, 24324, 256, 31840, 256, 32894, 256, 29282, 256, 30922,
- 256, 36034, 256, 38647, 256, 22744, 256, 23650, 256, 27155, 256, 28122,
- 256, 28431, 256, 32047, 256, 32311, 256, 38475, 256, 21202, 256, 32907,
- 256, 20956, 256, 20940, 256, 31260, 256, 32190, 256, 33777, 256, 38517,
- 256, 35712, 256, 25295, 256, 27138, 256, 35582, 256, 20025, 256, 23527,
- 256, 24594, 256, 29575, 256, 30064, 256, 21271, 256, 30971, 256, 20415,
- 256, 24489, 256, 19981, 256, 27852, 256, 25976, 256, 32034, 256, 21443,
- 256, 22622, 256, 30465, 256, 33865, 256, 35498, 256, 27578, 256, 36784,
- 256, 27784, 256, 25342, 256, 33509, 256, 25504, 256, 30053, 256, 20142,
- 256, 20841, 256, 20937, 256, 26753, 256, 31975, 256, 33391, 256, 35538,
- 256, 37327, 256, 21237, 256, 21570, 256, 22899, 256, 24300, 256, 26053,
- 256, 28670, 256, 31018, 256, 38317, 256, 39530, 256, 40599, 256, 40654,
- 256, 21147, 256, 26310, 256, 27511, 256, 36706, 256, 24180, 256, 24976,
- 256, 25088, 256, 25754, 256, 28451, 256, 29001, 256, 29833, 256, 31178,
- 256, 32244, 256, 32879, 256, 36646, 256, 34030, 256, 36899, 256, 37706,
- 256, 21015, 256, 21155, 256, 21693, 256, 28872, 256, 35010, 256, 35498,
- 256, 24265, 256, 24565, 256, 25467, 256, 27566, 256, 31806, 256, 29557,
- 256, 20196, 256, 22265, 256, 23527, 256, 23994, 256, 24604, 256, 29618,
- 256, 29801, 256, 32666, 256, 32838, 256, 37428, 256, 38646, 256, 38728,
- 256, 38936, 256, 20363, 256, 31150, 256, 37300, 256, 38584, 256, 24801,
- 256, 20102, 256, 20698, 256, 23534, 256, 23615, 256, 26009, 256, 27138,
- 256, 29134, 256, 30274, 256, 34044, 256, 36988, 256, 40845, 256, 26248,
- 256, 38446, 256, 21129, 256, 26491, 256, 26611, 256, 27969, 256, 28316,
- 256, 29705, 256, 30041, 256, 30827, 256, 32016, 256, 39006, 256, 20845,
- 256, 25134, 256, 38520, 256, 20523, 256, 23833, 256, 28138, 256, 36650,
- 256, 24459, 256, 24900, 256, 26647, 256, 29575, 256, 38534, 256, 21033,
- 256, 21519, 256, 23653, 256, 26131, 256, 26446, 256, 26792, 256, 27877,
- 256, 29702, 256, 30178, 256, 32633, 256, 35023, 256, 35041, 256, 37324,
- 256, 38626, 256, 21311, 256, 28346, 256, 21533, 256, 29136, 256, 29848,
- 256, 34298, 256, 38563, 256, 40023, 256, 40607, 256, 26519, 256, 28107,
- 256, 33256, 256, 31435, 256, 31520, 256, 31890, 256, 29376, 256, 28825,
- 256, 35672, 256, 20160, 256, 33590, 256, 21050, 256, 20999, 256, 24230,
- 256, 25299, 256, 31958, 256, 23429, 256, 27934, 256, 26292, 256, 36667,
- 256, 34892, 256, 38477, 256, 35211, 256, 24275, 256, 20800, 256, 21952,
- 256, 22618, 256, 26228, 256, 20958, 256, 29482, 256, 30410, 256, 31036,
- 256, 31070, 256, 31077, 256, 31119, 256, 38742, 256, 31934, 256, 32701,
- 256, 34322, 256, 35576, 256, 36920, 256, 37117, 256, 39151, 256, 39164,
- 256, 39208, 256, 40372, 256, 37086, 256, 38583, 256, 20398, 256, 20711,
- 256, 20813, 256, 21193, 256, 21220, 256, 21329, 256, 21917, 256, 22022,
- 256, 22120, 256, 22592, 256, 22696, 256, 23652, 256, 23662, 256, 24724,
- 256, 24936, 256, 24974, 256, 25074, 256, 25935, 256, 26082, 256, 26257,
- 256, 26757, 256, 28023, 256, 28186, 256, 28450, 256, 29038, 256, 29227,
- 256, 29730, 256, 30865, 256, 31038, 256, 31049, 256, 31048, 256, 31056,
- 256, 31062, 256, 31069, 256, 31117, 256, 31118, 256, 31296, 256, 31361,
- 256, 31680, 256, 32244, 256, 32265, 256, 32321, 256, 32626, 256, 32773,
- 256, 33261, 256, 33401, 256, 33401, 256, 33879, 256, 35088, 256, 35222,
- 256, 35585, 256, 35641, 256, 36051, 256, 36104, 256, 36790, 256, 36920,
- 256, 38627, 256, 38911, 256, 38971, 256, 24693, 256, 148206, 256, 33304,
- 256, 20006, 256, 20917, 256, 20840, 256, 20352, 256, 20805, 256, 20864,
- 256, 21191, 256, 21242, 256, 21917, 256, 21845, 256, 21913, 256, 21986,
- 256, 22618, 256, 22707, 256, 22852, 256, 22868, 256, 23138, 256, 23336,
- 256, 24274, 256, 24281, 256, 24425, 256, 24493, 256, 24792, 256, 24910,
- 256, 24840, 256, 24974, 256, 24928, 256, 25074, 256, 25140, 256, 25540,
- 256, 25628, 256, 25682, 256, 25942, 256, 26228, 256, 26391, 256, 26395,
- 256, 26454, 256, 27513, 256, 27578, 256, 27969, 256, 28379, 256, 28363,
- 256, 28450, 256, 28702, 256, 29038, 256, 30631, 256, 29237, 256, 29359,
- 256, 29482, 256, 29809, 256, 29958, 256, 30011, 256, 30237, 256, 30239,
- 256, 30410, 256, 30427, 256, 30452, 256, 30538, 256, 30528, 256, 30924,
- 256, 31409, 256, 31680, 256, 31867, 256, 32091, 256, 32244, 256, 32574,
- 256, 32773, 256, 33618, 256, 33775, 256, 34681, 256, 35137, 256, 35206,
- 256, 35222, 256, 35519, 256, 35576, 256, 35531, 256, 35585, 256, 35582,
- 256, 35565, 256, 35641, 256, 35722, 256, 36104, 256, 36664, 256, 36978,
- 256, 37273, 256, 37494, 256, 38524, 256, 38627, 256, 38742, 256, 38875,
- 256, 38911, 256, 38923, 256, 38971, 256, 39698, 256, 40860, 256, 141386,
- 256, 141380, 256, 144341, 256, 15261, 256, 16408, 256, 16441, 256,
- 152137, 256, 154832, 256, 163539, 256, 40771, 256, 40846, 514, 102, 102,
- 514, 102, 105, 514, 102, 108, 770, 102, 102, 105, 770, 102, 102, 108,
- 514, 383, 116, 514, 115, 116, 514, 1396, 1398, 514, 1396, 1381, 514,
- 1396, 1387, 514, 1406, 1398, 514, 1396, 1389, 512, 1497, 1460, 512, 1522,
- 1463, 262, 1506, 262, 1488, 262, 1491, 262, 1492, 262, 1499, 262, 1500,
- 262, 1501, 262, 1512, 262, 1514, 262, 43, 512, 1513, 1473, 512, 1513,
- 1474, 512, 64329, 1473, 512, 64329, 1474, 512, 1488, 1463, 512, 1488,
- 1464, 512, 1488, 1468, 512, 1489, 1468, 512, 1490, 1468, 512, 1491, 1468,
- 512, 1492, 1468, 512, 1493, 1468, 512, 1494, 1468, 512, 1496, 1468, 512,
- 1497, 1468, 512, 1498, 1468, 512, 1499, 1468, 512, 1500, 1468, 512, 1502,
- 1468, 512, 1504, 1468, 512, 1505, 1468, 512, 1507, 1468, 512, 1508, 1468,
- 512, 1510, 1468, 512, 1511, 1468, 512, 1512, 1468, 512, 1513, 1468, 512,
- 1514, 1468, 512, 1493, 1465, 512, 1489, 1471, 512, 1499, 1471, 512, 1508,
- 1471, 514, 1488, 1500, 267, 1649, 268, 1649, 267, 1659, 268, 1659, 269,
- 1659, 270, 1659, 267, 1662, 268, 1662, 269, 1662, 270, 1662, 267, 1664,
- 268, 1664, 269, 1664, 270, 1664, 267, 1658, 268, 1658, 269, 1658, 270,
- 1658, 267, 1663, 268, 1663, 269, 1663, 270, 1663, 267, 1657, 268, 1657,
- 269, 1657, 270, 1657, 267, 1700, 268, 1700, 269, 1700, 270, 1700, 267,
- 1702, 268, 1702, 269, 1702, 270, 1702, 267, 1668, 268, 1668, 269, 1668,
- 270, 1668, 267, 1667, 268, 1667, 269, 1667, 270, 1667, 267, 1670, 268,
- 1670, 269, 1670, 270, 1670, 267, 1671, 268, 1671, 269, 1671, 270, 1671,
- 267, 1677, 268, 1677, 267, 1676, 268, 1676, 267, 1678, 268, 1678, 267,
- 1672, 268, 1672, 267, 1688, 268, 1688, 267, 1681, 268, 1681, 267, 1705,
- 268, 1705, 269, 1705, 270, 1705, 267, 1711, 268, 1711, 269, 1711, 270,
- 1711, 267, 1715, 268, 1715, 269, 1715, 270, 1715, 267, 1713, 268, 1713,
- 269, 1713, 270, 1713, 267, 1722, 268, 1722, 267, 1723, 268, 1723, 269,
- 1723, 270, 1723, 267, 1728, 268, 1728, 267, 1729, 268, 1729, 269, 1729,
- 270, 1729, 267, 1726, 268, 1726, 269, 1726, 270, 1726, 267, 1746, 268,
- 1746, 267, 1747, 268, 1747, 267, 1709, 268, 1709, 269, 1709, 270, 1709,
- 267, 1735, 268, 1735, 267, 1734, 268, 1734, 267, 1736, 268, 1736, 267,
- 1655, 267, 1739, 268, 1739, 267, 1733, 268, 1733, 267, 1737, 268, 1737,
- 267, 1744, 268, 1744, 269, 1744, 270, 1744, 269, 1609, 270, 1609, 523,
- 1574, 1575, 524, 1574, 1575, 523, 1574, 1749, 524, 1574, 1749, 523, 1574,
- 1608, 524, 1574, 1608, 523, 1574, 1735, 524, 1574, 1735, 523, 1574, 1734,
- 524, 1574, 1734, 523, 1574, 1736, 524, 1574, 1736, 523, 1574, 1744, 524,
- 1574, 1744, 525, 1574, 1744, 523, 1574, 1609, 524, 1574, 1609, 525, 1574,
- 1609, 267, 1740, 268, 1740, 269, 1740, 270, 1740, 523, 1574, 1580, 523,
- 1574, 1581, 523, 1574, 1605, 523, 1574, 1609, 523, 1574, 1610, 523, 1576,
- 1580, 523, 1576, 1581, 523, 1576, 1582, 523, 1576, 1605, 523, 1576, 1609,
- 523, 1576, 1610, 523, 1578, 1580, 523, 1578, 1581, 523, 1578, 1582, 523,
- 1578, 1605, 523, 1578, 1609, 523, 1578, 1610, 523, 1579, 1580, 523, 1579,
- 1605, 523, 1579, 1609, 523, 1579, 1610, 523, 1580, 1581, 523, 1580, 1605,
- 523, 1581, 1580, 523, 1581, 1605, 523, 1582, 1580, 523, 1582, 1581, 523,
- 1582, 1605, 523, 1587, 1580, 523, 1587, 1581, 523, 1587, 1582, 523, 1587,
- 1605, 523, 1589, 1581, 523, 1589, 1605, 523, 1590, 1580, 523, 1590, 1581,
- 523, 1590, 1582, 523, 1590, 1605, 523, 1591, 1581, 523, 1591, 1605, 523,
- 1592, 1605, 523, 1593, 1580, 523, 1593, 1605, 523, 1594, 1580, 523, 1594,
- 1605, 523, 1601, 1580, 523, 1601, 1581, 523, 1601, 1582, 523, 1601, 1605,
- 523, 1601, 1609, 523, 1601, 1610, 523, 1602, 1581, 523, 1602, 1605, 523,
- 1602, 1609, 523, 1602, 1610, 523, 1603, 1575, 523, 1603, 1580, 523, 1603,
- 1581, 523, 1603, 1582, 523, 1603, 1604, 523, 1603, 1605, 523, 1603, 1609,
- 523, 1603, 1610, 523, 1604, 1580, 523, 1604, 1581, 523, 1604, 1582, 523,
- 1604, 1605, 523, 1604, 1609, 523, 1604, 1610, 523, 1605, 1580, 523, 1605,
- 1581, 523, 1605, 1582, 523, 1605, 1605, 523, 1605, 1609, 523, 1605, 1610,
- 523, 1606, 1580, 523, 1606, 1581, 523, 1606, 1582, 523, 1606, 1605, 523,
- 1606, 1609, 523, 1606, 1610, 523, 1607, 1580, 523, 1607, 1605, 523, 1607,
- 1609, 523, 1607, 1610, 523, 1610, 1580, 523, 1610, 1581, 523, 1610, 1582,
- 523, 1610, 1605, 523, 1610, 1609, 523, 1610, 1610, 523, 1584, 1648, 523,
- 1585, 1648, 523, 1609, 1648, 779, 32, 1612, 1617, 779, 32, 1613, 1617,
- 779, 32, 1614, 1617, 779, 32, 1615, 1617, 779, 32, 1616, 1617, 779, 32,
- 1617, 1648, 524, 1574, 1585, 524, 1574, 1586, 524, 1574, 1605, 524, 1574,
- 1606, 524, 1574, 1609, 524, 1574, 1610, 524, 1576, 1585, 524, 1576, 1586,
- 524, 1576, 1605, 524, 1576, 1606, 524, 1576, 1609, 524, 1576, 1610, 524,
- 1578, 1585, 524, 1578, 1586, 524, 1578, 1605, 524, 1578, 1606, 524, 1578,
- 1609, 524, 1578, 1610, 524, 1579, 1585, 524, 1579, 1586, 524, 1579, 1605,
- 524, 1579, 1606, 524, 1579, 1609, 524, 1579, 1610, 524, 1601, 1609, 524,
- 1601, 1610, 524, 1602, 1609, 524, 1602, 1610, 524, 1603, 1575, 524, 1603,
- 1604, 524, 1603, 1605, 524, 1603, 1609, 524, 1603, 1610, 524, 1604, 1605,
- 524, 1604, 1609, 524, 1604, 1610, 524, 1605, 1575, 524, 1605, 1605, 524,
- 1606, 1585, 524, 1606, 1586, 524, 1606, 1605, 524, 1606, 1606, 524, 1606,
- 1609, 524, 1606, 1610, 524, 1609, 1648, 524, 1610, 1585, 524, 1610, 1586,
- 524, 1610, 1605, 524, 1610, 1606, 524, 1610, 1609, 524, 1610, 1610, 525,
- 1574, 1580, 525, 1574, 1581, 525, 1574, 1582, 525, 1574, 1605, 525, 1574,
- 1607, 525, 1576, 1580, 525, 1576, 1581, 525, 1576, 1582, 525, 1576, 1605,
- 525, 1576, 1607, 525, 1578, 1580, 525, 1578, 1581, 525, 1578, 1582, 525,
- 1578, 1605, 525, 1578, 1607, 525, 1579, 1605, 525, 1580, 1581, 525, 1580,
- 1605, 525, 1581, 1580, 525, 1581, 1605, 525, 1582, 1580, 525, 1582, 1605,
- 525, 1587, 1580, 525, 1587, 1581, 525, 1587, 1582, 525, 1587, 1605, 525,
- 1589, 1581, 525, 1589, 1582, 525, 1589, 1605, 525, 1590, 1580, 525, 1590,
- 1581, 525, 1590, 1582, 525, 1590, 1605, 525, 1591, 1581, 525, 1592, 1605,
- 525, 1593, 1580, 525, 1593, 1605, 525, 1594, 1580, 525, 1594, 1605, 525,
- 1601, 1580, 525, 1601, 1581, 525, 1601, 1582, 525, 1601, 1605, 525, 1602,
- 1581, 525, 1602, 1605, 525, 1603, 1580, 525, 1603, 1581, 525, 1603, 1582,
- 525, 1603, 1604, 525, 1603, 1605, 525, 1604, 1580, 525, 1604, 1581, 525,
- 1604, 1582, 525, 1604, 1605, 525, 1604, 1607, 525, 1605, 1580, 525, 1605,
- 1581, 525, 1605, 1582, 525, 1605, 1605, 525, 1606, 1580, 525, 1606, 1581,
- 525, 1606, 1582, 525, 1606, 1605, 525, 1606, 1607, 525, 1607, 1580, 525,
- 1607, 1605, 525, 1607, 1648, 525, 1610, 1580, 525, 1610, 1581, 525, 1610,
- 1582, 525, 1610, 1605, 525, 1610, 1607, 526, 1574, 1605, 526, 1574, 1607,
- 526, 1576, 1605, 526, 1576, 1607, 526, 1578, 1605, 526, 1578, 1607, 526,
- 1579, 1605, 526, 1579, 1607, 526, 1587, 1605, 526, 1587, 1607, 526, 1588,
- 1605, 526, 1588, 1607, 526, 1603, 1604, 526, 1603, 1605, 526, 1604, 1605,
- 526, 1606, 1605, 526, 1606, 1607, 526, 1610, 1605, 526, 1610, 1607, 782,
- 1600, 1614, 1617, 782, 1600, 1615, 1617, 782, 1600, 1616, 1617, 523,
- 1591, 1609, 523, 1591, 1610, 523, 1593, 1609, 523, 1593, 1610, 523, 1594,
- 1609, 523, 1594, 1610, 523, 1587, 1609, 523, 1587, 1610, 523, 1588, 1609,
- 523, 1588, 1610, 523, 1581, 1609, 523, 1581, 1610, 523, 1580, 1609, 523,
- 1580, 1610, 523, 1582, 1609, 523, 1582, 1610, 523, 1589, 1609, 523, 1589,
- 1610, 523, 1590, 1609, 523, 1590, 1610, 523, 1588, 1580, 523, 1588, 1581,
- 523, 1588, 1582, 523, 1588, 1605, 523, 1588, 1585, 523, 1587, 1585, 523,
- 1589, 1585, 523, 1590, 1585, 524, 1591, 1609, 524, 1591, 1610, 524, 1593,
- 1609, 524, 1593, 1610, 524, 1594, 1609, 524, 1594, 1610, 524, 1587, 1609,
- 524, 1587, 1610, 524, 1588, 1609, 524, 1588, 1610, 524, 1581, 1609, 524,
- 1581, 1610, 524, 1580, 1609, 524, 1580, 1610, 524, 1582, 1609, 524, 1582,
- 1610, 524, 1589, 1609, 524, 1589, 1610, 524, 1590, 1609, 524, 1590, 1610,
- 524, 1588, 1580, 524, 1588, 1581, 524, 1588, 1582, 524, 1588, 1605, 524,
- 1588, 1585, 524, 1587, 1585, 524, 1589, 1585, 524, 1590, 1585, 525, 1588,
- 1580, 525, 1588, 1581, 525, 1588, 1582, 525, 1588, 1605, 525, 1587, 1607,
- 525, 1588, 1607, 525, 1591, 1605, 526, 1587, 1580, 526, 1587, 1581, 526,
- 1587, 1582, 526, 1588, 1580, 526, 1588, 1581, 526, 1588, 1582, 526, 1591,
- 1605, 526, 1592, 1605, 524, 1575, 1611, 523, 1575, 1611, 781, 1578, 1580,
- 1605, 780, 1578, 1581, 1580, 781, 1578, 1581, 1580, 781, 1578, 1581,
- 1605, 781, 1578, 1582, 1605, 781, 1578, 1605, 1580, 781, 1578, 1605,
- 1581, 781, 1578, 1605, 1582, 780, 1580, 1605, 1581, 781, 1580, 1605,
- 1581, 780, 1581, 1605, 1610, 780, 1581, 1605, 1609, 781, 1587, 1581,
- 1580, 781, 1587, 1580, 1581, 780, 1587, 1580, 1609, 780, 1587, 1605,
- 1581, 781, 1587, 1605, 1581, 781, 1587, 1605, 1580, 780, 1587, 1605,
- 1605, 781, 1587, 1605, 1605, 780, 1589, 1581, 1581, 781, 1589, 1581,
- 1581, 780, 1589, 1605, 1605, 780, 1588, 1581, 1605, 781, 1588, 1581,
- 1605, 780, 1588, 1580, 1610, 780, 1588, 1605, 1582, 781, 1588, 1605,
- 1582, 780, 1588, 1605, 1605, 781, 1588, 1605, 1605, 780, 1590, 1581,
- 1609, 780, 1590, 1582, 1605, 781, 1590, 1582, 1605, 780, 1591, 1605,
- 1581, 781, 1591, 1605, 1581, 781, 1591, 1605, 1605, 780, 1591, 1605,
- 1610, 780, 1593, 1580, 1605, 780, 1593, 1605, 1605, 781, 1593, 1605,
- 1605, 780, 1593, 1605, 1609, 780, 1594, 1605, 1605, 780, 1594, 1605,
- 1610, 780, 1594, 1605, 1609, 780, 1601, 1582, 1605, 781, 1601, 1582,
- 1605, 780, 1602, 1605, 1581, 780, 1602, 1605, 1605, 780, 1604, 1581,
- 1605, 780, 1604, 1581, 1610, 780, 1604, 1581, 1609, 781, 1604, 1580,
- 1580, 780, 1604, 1580, 1580, 780, 1604, 1582, 1605, 781, 1604, 1582,
- 1605, 780, 1604, 1605, 1581, 781, 1604, 1605, 1581, 781, 1605, 1581,
- 1580, 781, 1605, 1581, 1605, 780, 1605, 1581, 1610, 781, 1605, 1580,
- 1581, 781, 1605, 1580, 1605, 781, 1605, 1582, 1580, 781, 1605, 1582,
- 1605, 781, 1605, 1580, 1582, 781, 1607, 1605, 1580, 781, 1607, 1605,
- 1605, 781, 1606, 1581, 1605, 780, 1606, 1581, 1609, 780, 1606, 1580,
- 1605, 781, 1606, 1580, 1605, 780, 1606, 1580, 1609, 780, 1606, 1605,
- 1610, 780, 1606, 1605, 1609, 780, 1610, 1605, 1605, 781, 1610, 1605,
- 1605, 780, 1576, 1582, 1610, 780, 1578, 1580, 1610, 780, 1578, 1580,
- 1609, 780, 1578, 1582, 1610, 780, 1578, 1582, 1609, 780, 1578, 1605,
- 1610, 780, 1578, 1605, 1609, 780, 1580, 1605, 1610, 780, 1580, 1581,
- 1609, 780, 1580, 1605, 1609, 780, 1587, 1582, 1609, 780, 1589, 1581,
- 1610, 780, 1588, 1581, 1610, 780, 1590, 1581, 1610, 780, 1604, 1580,
- 1610, 780, 1604, 1605, 1610, 780, 1610, 1581, 1610, 780, 1610, 1580,
- 1610, 780, 1610, 1605, 1610, 780, 1605, 1605, 1610, 780, 1602, 1605,
- 1610, 780, 1606, 1581, 1610, 781, 1602, 1605, 1581, 781, 1604, 1581,
- 1605, 780, 1593, 1605, 1610, 780, 1603, 1605, 1610, 781, 1606, 1580,
- 1581, 780, 1605, 1582, 1610, 781, 1604, 1580, 1605, 780, 1603, 1605,
- 1605, 780, 1604, 1580, 1605, 780, 1606, 1580, 1581, 780, 1580, 1581,
- 1610, 780, 1581, 1580, 1610, 780, 1605, 1580, 1610, 780, 1601, 1605,
- 1610, 780, 1576, 1581, 1610, 781, 1603, 1605, 1605, 781, 1593, 1580,
- 1605, 781, 1589, 1605, 1605, 780, 1587, 1582, 1610, 780, 1606, 1580,
- 1610, 779, 1589, 1604, 1746, 779, 1602, 1604, 1746, 1035, 1575, 1604,
- 1604, 1607, 1035, 1575, 1603, 1576, 1585, 1035, 1605, 1581, 1605, 1583,
- 1035, 1589, 1604, 1593, 1605, 1035, 1585, 1587, 1608, 1604, 1035, 1593,
- 1604, 1610, 1607, 1035, 1608, 1587, 1604, 1605, 779, 1589, 1604, 1609,
- 4619, 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610,
- 1607, 32, 1608, 1587, 1604, 1605, 2059, 1580, 1604, 32, 1580, 1604, 1575,
- 1604, 1607, 1035, 1585, 1740, 1575, 1604, 265, 44, 265, 12289, 265,
- 12290, 265, 58, 265, 59, 265, 33, 265, 63, 265, 12310, 265, 12311, 265,
- 8230, 265, 8229, 265, 8212, 265, 8211, 265, 95, 265, 95, 265, 40, 265,
- 41, 265, 123, 265, 125, 265, 12308, 265, 12309, 265, 12304, 265, 12305,
- 265, 12298, 265, 12299, 265, 12296, 265, 12297, 265, 12300, 265, 12301,
- 265, 12302, 265, 12303, 265, 91, 265, 93, 258, 8254, 258, 8254, 258,
- 8254, 258, 8254, 258, 95, 258, 95, 258, 95, 271, 44, 271, 12289, 271, 46,
- 271, 59, 271, 58, 271, 63, 271, 33, 271, 8212, 271, 40, 271, 41, 271,
- 123, 271, 125, 271, 12308, 271, 12309, 271, 35, 271, 38, 271, 42, 271,
- 43, 271, 45, 271, 60, 271, 62, 271, 61, 271, 92, 271, 36, 271, 37, 271,
- 64, 523, 32, 1611, 526, 1600, 1611, 523, 32, 1612, 523, 32, 1613, 523,
- 32, 1614, 526, 1600, 1614, 523, 32, 1615, 526, 1600, 1615, 523, 32, 1616,
- 526, 1600, 1616, 523, 32, 1617, 526, 1600, 1617, 523, 32, 1618, 526,
- 1600, 1618, 267, 1569, 267, 1570, 268, 1570, 267, 1571, 268, 1571, 267,
- 1572, 268, 1572, 267, 1573, 268, 1573, 267, 1574, 268, 1574, 269, 1574,
- 270, 1574, 267, 1575, 268, 1575, 267, 1576, 268, 1576, 269, 1576, 270,
- 1576, 267, 1577, 268, 1577, 267, 1578, 268, 1578, 269, 1578, 270, 1578,
- 267, 1579, 268, 1579, 269, 1579, 270, 1579, 267, 1580, 268, 1580, 269,
- 1580, 270, 1580, 267, 1581, 268, 1581, 269, 1581, 270, 1581, 267, 1582,
- 268, 1582, 269, 1582, 270, 1582, 267, 1583, 268, 1583, 267, 1584, 268,
- 1584, 267, 1585, 268, 1585, 267, 1586, 268, 1586, 267, 1587, 268, 1587,
- 269, 1587, 270, 1587, 267, 1588, 268, 1588, 269, 1588, 270, 1588, 267,
- 1589, 268, 1589, 269, 1589, 270, 1589, 267, 1590, 268, 1590, 269, 1590,
- 270, 1590, 267, 1591, 268, 1591, 269, 1591, 270, 1591, 267, 1592, 268,
- 1592, 269, 1592, 270, 1592, 267, 1593, 268, 1593, 269, 1593, 270, 1593,
- 267, 1594, 268, 1594, 269, 1594, 270, 1594, 267, 1601, 268, 1601, 269,
- 1601, 270, 1601, 267, 1602, 268, 1602, 269, 1602, 270, 1602, 267, 1603,
- 268, 1603, 269, 1603, 270, 1603, 267, 1604, 268, 1604, 269, 1604, 270,
- 1604, 267, 1605, 268, 1605, 269, 1605, 270, 1605, 267, 1606, 268, 1606,
- 269, 1606, 270, 1606, 267, 1607, 268, 1607, 269, 1607, 270, 1607, 267,
- 1608, 268, 1608, 267, 1609, 268, 1609, 267, 1610, 268, 1610, 269, 1610,
- 270, 1610, 523, 1604, 1570, 524, 1604, 1570, 523, 1604, 1571, 524, 1604,
- 1571, 523, 1604, 1573, 524, 1604, 1573, 523, 1604, 1575, 524, 1604, 1575,
- 264, 33, 264, 34, 264, 35, 264, 36, 264, 37, 264, 38, 264, 39, 264, 40,
- 264, 41, 264, 42, 264, 43, 264, 44, 264, 45, 264, 46, 264, 47, 264, 48,
- 264, 49, 264, 50, 264, 51, 264, 52, 264, 53, 264, 54, 264, 55, 264, 56,
- 264, 57, 264, 58, 264, 59, 264, 60, 264, 61, 264, 62, 264, 63, 264, 64,
- 264, 65, 264, 66, 264, 67, 264, 68, 264, 69, 264, 70, 264, 71, 264, 72,
- 264, 73, 264, 74, 264, 75, 264, 76, 264, 77, 264, 78, 264, 79, 264, 80,
- 264, 81, 264, 82, 264, 83, 264, 84, 264, 85, 264, 86, 264, 87, 264, 88,
- 264, 89, 264, 90, 264, 91, 264, 92, 264, 93, 264, 94, 264, 95, 264, 96,
- 264, 97, 264, 98, 264, 99, 264, 100, 264, 101, 264, 102, 264, 103, 264,
- 104, 264, 105, 264, 106, 264, 107, 264, 108, 264, 109, 264, 110, 264,
- 111, 264, 112, 264, 113, 264, 114, 264, 115, 264, 116, 264, 117, 264,
- 118, 264, 119, 264, 120, 264, 121, 264, 122, 264, 123, 264, 124, 264,
- 125, 264, 126, 264, 10629, 264, 10630, 272, 12290, 272, 12300, 272,
- 12301, 272, 12289, 272, 12539, 272, 12530, 272, 12449, 272, 12451, 272,
- 12453, 272, 12455, 272, 12457, 272, 12515, 272, 12517, 272, 12519, 272,
- 12483, 272, 12540, 272, 12450, 272, 12452, 272, 12454, 272, 12456, 272,
- 12458, 272, 12459, 272, 12461, 272, 12463, 272, 12465, 272, 12467, 272,
- 12469, 272, 12471, 272, 12473, 272, 12475, 272, 12477, 272, 12479, 272,
- 12481, 272, 12484, 272, 12486, 272, 12488, 272, 12490, 272, 12491, 272,
- 12492, 272, 12493, 272, 12494, 272, 12495, 272, 12498, 272, 12501, 272,
- 12504, 272, 12507, 272, 12510, 272, 12511, 272, 12512, 272, 12513, 272,
- 12514, 272, 12516, 272, 12518, 272, 12520, 272, 12521, 272, 12522, 272,
- 12523, 272, 12524, 272, 12525, 272, 12527, 272, 12531, 272, 12441, 272,
- 12442, 272, 12644, 272, 12593, 272, 12594, 272, 12595, 272, 12596, 272,
- 12597, 272, 12598, 272, 12599, 272, 12600, 272, 12601, 272, 12602, 272,
- 12603, 272, 12604, 272, 12605, 272, 12606, 272, 12607, 272, 12608, 272,
- 12609, 272, 12610, 272, 12611, 272, 12612, 272, 12613, 272, 12614, 272,
- 12615, 272, 12616, 272, 12617, 272, 12618, 272, 12619, 272, 12620, 272,
- 12621, 272, 12622, 272, 12623, 272, 12624, 272, 12625, 272, 12626, 272,
- 12627, 272, 12628, 272, 12629, 272, 12630, 272, 12631, 272, 12632, 272,
- 12633, 272, 12634, 272, 12635, 272, 12636, 272, 12637, 272, 12638, 272,
- 12639, 272, 12640, 272, 12641, 272, 12642, 272, 12643, 264, 162, 264,
- 163, 264, 172, 264, 175, 264, 166, 264, 165, 264, 8361, 272, 9474, 272,
- 8592, 272, 8593, 272, 8594, 272, 8595, 272, 9632, 272, 9675, 512, 69785,
- 69818, 512, 69787, 69818, 512, 69797, 69818, 512, 69937, 69927, 512,
- 69938, 69927, 512, 70471, 70462, 512, 70471, 70487, 512, 70841, 70842,
- 512, 70841, 70832, 512, 70841, 70845, 512, 71096, 71087, 512, 71097,
- 71087, 512, 71989, 71984, 512, 119127, 119141, 512, 119128, 119141, 512,
- 119135, 119150, 512, 119135, 119151, 512, 119135, 119152, 512, 119135,
- 119153, 512, 119135, 119154, 512, 119225, 119141, 512, 119226, 119141,
- 512, 119227, 119150, 512, 119228, 119150, 512, 119227, 119151, 512,
- 119228, 119151, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70,
- 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78,
- 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86,
- 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100,
- 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107,
- 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114,
- 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121,
- 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71,
- 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79,
- 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87,
- 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101,
- 262, 102, 262, 103, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109,
- 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116,
- 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262,
- 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262,
- 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262,
- 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262,
- 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103,
- 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110,
- 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117,
- 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 67, 262,
- 68, 262, 71, 262, 74, 262, 75, 262, 78, 262, 79, 262, 80, 262, 81, 262,
- 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262,
- 97, 262, 98, 262, 99, 262, 100, 262, 102, 262, 104, 262, 105, 262, 106,
- 262, 107, 262, 108, 262, 109, 262, 110, 262, 112, 262, 113, 262, 114,
- 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121,
- 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71,
- 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79,
- 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87,
- 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101,
- 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108,
+ 522, 20196, 21644, 1034, 12450, 12497, 12540, 12488, 1034, 12450, 12523,
+ 12501, 12449, 1034, 12450, 12531, 12506, 12450, 778, 12450, 12540, 12523,
+ 1034, 12452, 12491, 12531, 12464, 778, 12452, 12531, 12481, 778, 12454,
+ 12457, 12531, 1290, 12456, 12473, 12463, 12540, 12489, 1034, 12456,
+ 12540, 12459, 12540, 778, 12458, 12531, 12473, 778, 12458, 12540, 12512,
+ 778, 12459, 12452, 12522, 1034, 12459, 12521, 12483, 12488, 1034, 12459,
+ 12525, 12522, 12540, 778, 12460, 12525, 12531, 778, 12460, 12531, 12510,
+ 522, 12462, 12460, 778, 12462, 12491, 12540, 1034, 12461, 12517, 12522,
+ 12540, 1034, 12462, 12523, 12480, 12540, 522, 12461, 12525, 1290, 12461,
+ 12525, 12464, 12521, 12512, 1546, 12461, 12525, 12513, 12540, 12488,
+ 12523, 1290, 12461, 12525, 12527, 12483, 12488, 778, 12464, 12521, 12512,
+ 1290, 12464, 12521, 12512, 12488, 12531, 1290, 12463, 12523, 12476,
+ 12452, 12525, 1034, 12463, 12525, 12540, 12493, 778, 12465, 12540, 12473,
+ 778, 12467, 12523, 12490, 778, 12467, 12540, 12509, 1034, 12469, 12452,
+ 12463, 12523, 1290, 12469, 12531, 12481, 12540, 12512, 1034, 12471,
+ 12522, 12531, 12464, 778, 12475, 12531, 12481, 778, 12475, 12531, 12488,
+ 778, 12480, 12540, 12473, 522, 12487, 12471, 522, 12489, 12523, 522,
+ 12488, 12531, 522, 12490, 12494, 778, 12494, 12483, 12488, 778, 12495,
+ 12452, 12484, 1290, 12497, 12540, 12475, 12531, 12488, 778, 12497, 12540,
+ 12484, 1034, 12496, 12540, 12524, 12523, 1290, 12500, 12450, 12473,
+ 12488, 12523, 778, 12500, 12463, 12523, 522, 12500, 12467, 522, 12499,
+ 12523, 1290, 12501, 12449, 12521, 12483, 12489, 1034, 12501, 12451,
+ 12540, 12488, 1290, 12502, 12483, 12471, 12455, 12523, 778, 12501, 12521,
+ 12531, 1290, 12504, 12463, 12479, 12540, 12523, 522, 12506, 12477, 778,
+ 12506, 12491, 12498, 778, 12504, 12523, 12484, 778, 12506, 12531, 12473,
+ 778, 12506, 12540, 12472, 778, 12505, 12540, 12479, 1034, 12509, 12452,
+ 12531, 12488, 778, 12508, 12523, 12488, 522, 12507, 12531, 778, 12509,
+ 12531, 12489, 778, 12507, 12540, 12523, 778, 12507, 12540, 12531, 1034,
+ 12510, 12452, 12463, 12525, 778, 12510, 12452, 12523, 778, 12510, 12483,
+ 12495, 778, 12510, 12523, 12463, 1290, 12510, 12531, 12471, 12519, 12531,
+ 1034, 12511, 12463, 12525, 12531, 522, 12511, 12522, 1290, 12511, 12522,
+ 12496, 12540, 12523, 522, 12513, 12460, 1034, 12513, 12460, 12488, 12531,
+ 1034, 12513, 12540, 12488, 12523, 778, 12516, 12540, 12489, 778, 12516,
+ 12540, 12523, 778, 12518, 12450, 12531, 1034, 12522, 12483, 12488, 12523,
+ 522, 12522, 12521, 778, 12523, 12500, 12540, 1034, 12523, 12540, 12502,
+ 12523, 522, 12524, 12512, 1290, 12524, 12531, 12488, 12466, 12531, 778,
+ 12527, 12483, 12488, 514, 48, 28857, 514, 49, 28857, 514, 50, 28857, 514,
+ 51, 28857, 514, 52, 28857, 514, 53, 28857, 514, 54, 28857, 514, 55,
+ 28857, 514, 56, 28857, 514, 57, 28857, 770, 49, 48, 28857, 770, 49, 49,
+ 28857, 770, 49, 50, 28857, 770, 49, 51, 28857, 770, 49, 52, 28857, 770,
+ 49, 53, 28857, 770, 49, 54, 28857, 770, 49, 55, 28857, 770, 49, 56,
+ 28857, 770, 49, 57, 28857, 770, 50, 48, 28857, 770, 50, 49, 28857, 770,
+ 50, 50, 28857, 770, 50, 51, 28857, 770, 50, 52, 28857, 778, 104, 80, 97,
+ 522, 100, 97, 522, 65, 85, 778, 98, 97, 114, 522, 111, 86, 522, 112, 99,
+ 522, 100, 109, 778, 100, 109, 178, 778, 100, 109, 179, 522, 73, 85, 522,
+ 24179, 25104, 522, 26157, 21644, 522, 22823, 27491, 522, 26126, 27835,
+ 1034, 26666, 24335, 20250, 31038, 522, 112, 65, 522, 110, 65, 522, 956,
+ 65, 522, 109, 65, 522, 107, 65, 522, 75, 66, 522, 77, 66, 522, 71, 66,
+ 778, 99, 97, 108, 1034, 107, 99, 97, 108, 522, 112, 70, 522, 110, 70,
+ 522, 956, 70, 522, 956, 103, 522, 109, 103, 522, 107, 103, 522, 72, 122,
+ 778, 107, 72, 122, 778, 77, 72, 122, 778, 71, 72, 122, 778, 84, 72, 122,
+ 522, 956, 8467, 522, 109, 8467, 522, 100, 8467, 522, 107, 8467, 522, 102,
+ 109, 522, 110, 109, 522, 956, 109, 522, 109, 109, 522, 99, 109, 522, 107,
+ 109, 778, 109, 109, 178, 778, 99, 109, 178, 522, 109, 178, 778, 107, 109,
+ 178, 778, 109, 109, 179, 778, 99, 109, 179, 522, 109, 179, 778, 107, 109,
+ 179, 778, 109, 8725, 115, 1034, 109, 8725, 115, 178, 522, 80, 97, 778,
+ 107, 80, 97, 778, 77, 80, 97, 778, 71, 80, 97, 778, 114, 97, 100, 1290,
+ 114, 97, 100, 8725, 115, 1546, 114, 97, 100, 8725, 115, 178, 522, 112,
+ 115, 522, 110, 115, 522, 956, 115, 522, 109, 115, 522, 112, 86, 522, 110,
+ 86, 522, 956, 86, 522, 109, 86, 522, 107, 86, 522, 77, 86, 522, 112, 87,
+ 522, 110, 87, 522, 956, 87, 522, 109, 87, 522, 107, 87, 522, 77, 87, 522,
+ 107, 937, 522, 77, 937, 1034, 97, 46, 109, 46, 522, 66, 113, 522, 99, 99,
+ 522, 99, 100, 1034, 67, 8725, 107, 103, 778, 67, 111, 46, 522, 100, 66,
+ 522, 71, 121, 522, 104, 97, 522, 72, 80, 522, 105, 110, 522, 75, 75, 522,
+ 75, 77, 522, 107, 116, 522, 108, 109, 522, 108, 110, 778, 108, 111, 103,
+ 522, 108, 120, 522, 109, 98, 778, 109, 105, 108, 778, 109, 111, 108, 522,
+ 80, 72, 1034, 112, 46, 109, 46, 778, 80, 80, 77, 522, 80, 82, 522, 115,
+ 114, 522, 83, 118, 522, 87, 98, 778, 86, 8725, 109, 778, 65, 8725, 109,
+ 514, 49, 26085, 514, 50, 26085, 514, 51, 26085, 514, 52, 26085, 514, 53,
+ 26085, 514, 54, 26085, 514, 55, 26085, 514, 56, 26085, 514, 57, 26085,
+ 770, 49, 48, 26085, 770, 49, 49, 26085, 770, 49, 50, 26085, 770, 49, 51,
+ 26085, 770, 49, 52, 26085, 770, 49, 53, 26085, 770, 49, 54, 26085, 770,
+ 49, 55, 26085, 770, 49, 56, 26085, 770, 49, 57, 26085, 770, 50, 48,
+ 26085, 770, 50, 49, 26085, 770, 50, 50, 26085, 770, 50, 51, 26085, 770,
+ 50, 52, 26085, 770, 50, 53, 26085, 770, 50, 54, 26085, 770, 50, 55,
+ 26085, 770, 50, 56, 26085, 770, 50, 57, 26085, 770, 51, 48, 26085, 770,
+ 51, 49, 26085, 778, 103, 97, 108, 259, 1098, 259, 1100, 259, 42863, 259,
+ 294, 259, 339, 259, 42791, 259, 43831, 259, 619, 259, 43858, 259, 653,
+ 256, 35912, 256, 26356, 256, 36554, 256, 36040, 256, 28369, 256, 20018,
+ 256, 21477, 256, 40860, 256, 40860, 256, 22865, 256, 37329, 256, 21895,
+ 256, 22856, 256, 25078, 256, 30313, 256, 32645, 256, 34367, 256, 34746,
+ 256, 35064, 256, 37007, 256, 27138, 256, 27931, 256, 28889, 256, 29662,
+ 256, 33853, 256, 37226, 256, 39409, 256, 20098, 256, 21365, 256, 27396,
+ 256, 29211, 256, 34349, 256, 40478, 256, 23888, 256, 28651, 256, 34253,
+ 256, 35172, 256, 25289, 256, 33240, 256, 34847, 256, 24266, 256, 26391,
+ 256, 28010, 256, 29436, 256, 37070, 256, 20358, 256, 20919, 256, 21214,
+ 256, 25796, 256, 27347, 256, 29200, 256, 30439, 256, 32769, 256, 34310,
+ 256, 34396, 256, 36335, 256, 38706, 256, 39791, 256, 40442, 256, 30860,
+ 256, 31103, 256, 32160, 256, 33737, 256, 37636, 256, 40575, 256, 35542,
+ 256, 22751, 256, 24324, 256, 31840, 256, 32894, 256, 29282, 256, 30922,
+ 256, 36034, 256, 38647, 256, 22744, 256, 23650, 256, 27155, 256, 28122,
+ 256, 28431, 256, 32047, 256, 32311, 256, 38475, 256, 21202, 256, 32907,
+ 256, 20956, 256, 20940, 256, 31260, 256, 32190, 256, 33777, 256, 38517,
+ 256, 35712, 256, 25295, 256, 27138, 256, 35582, 256, 20025, 256, 23527,
+ 256, 24594, 256, 29575, 256, 30064, 256, 21271, 256, 30971, 256, 20415,
+ 256, 24489, 256, 19981, 256, 27852, 256, 25976, 256, 32034, 256, 21443,
+ 256, 22622, 256, 30465, 256, 33865, 256, 35498, 256, 27578, 256, 36784,
+ 256, 27784, 256, 25342, 256, 33509, 256, 25504, 256, 30053, 256, 20142,
+ 256, 20841, 256, 20937, 256, 26753, 256, 31975, 256, 33391, 256, 35538,
+ 256, 37327, 256, 21237, 256, 21570, 256, 22899, 256, 24300, 256, 26053,
+ 256, 28670, 256, 31018, 256, 38317, 256, 39530, 256, 40599, 256, 40654,
+ 256, 21147, 256, 26310, 256, 27511, 256, 36706, 256, 24180, 256, 24976,
+ 256, 25088, 256, 25754, 256, 28451, 256, 29001, 256, 29833, 256, 31178,
+ 256, 32244, 256, 32879, 256, 36646, 256, 34030, 256, 36899, 256, 37706,
+ 256, 21015, 256, 21155, 256, 21693, 256, 28872, 256, 35010, 256, 35498,
+ 256, 24265, 256, 24565, 256, 25467, 256, 27566, 256, 31806, 256, 29557,
+ 256, 20196, 256, 22265, 256, 23527, 256, 23994, 256, 24604, 256, 29618,
+ 256, 29801, 256, 32666, 256, 32838, 256, 37428, 256, 38646, 256, 38728,
+ 256, 38936, 256, 20363, 256, 31150, 256, 37300, 256, 38584, 256, 24801,
+ 256, 20102, 256, 20698, 256, 23534, 256, 23615, 256, 26009, 256, 27138,
+ 256, 29134, 256, 30274, 256, 34044, 256, 36988, 256, 40845, 256, 26248,
+ 256, 38446, 256, 21129, 256, 26491, 256, 26611, 256, 27969, 256, 28316,
+ 256, 29705, 256, 30041, 256, 30827, 256, 32016, 256, 39006, 256, 20845,
+ 256, 25134, 256, 38520, 256, 20523, 256, 23833, 256, 28138, 256, 36650,
+ 256, 24459, 256, 24900, 256, 26647, 256, 29575, 256, 38534, 256, 21033,
+ 256, 21519, 256, 23653, 256, 26131, 256, 26446, 256, 26792, 256, 27877,
+ 256, 29702, 256, 30178, 256, 32633, 256, 35023, 256, 35041, 256, 37324,
+ 256, 38626, 256, 21311, 256, 28346, 256, 21533, 256, 29136, 256, 29848,
+ 256, 34298, 256, 38563, 256, 40023, 256, 40607, 256, 26519, 256, 28107,
+ 256, 33256, 256, 31435, 256, 31520, 256, 31890, 256, 29376, 256, 28825,
+ 256, 35672, 256, 20160, 256, 33590, 256, 21050, 256, 20999, 256, 24230,
+ 256, 25299, 256, 31958, 256, 23429, 256, 27934, 256, 26292, 256, 36667,
+ 256, 34892, 256, 38477, 256, 35211, 256, 24275, 256, 20800, 256, 21952,
+ 256, 22618, 256, 26228, 256, 20958, 256, 29482, 256, 30410, 256, 31036,
+ 256, 31070, 256, 31077, 256, 31119, 256, 38742, 256, 31934, 256, 32701,
+ 256, 34322, 256, 35576, 256, 36920, 256, 37117, 256, 39151, 256, 39164,
+ 256, 39208, 256, 40372, 256, 37086, 256, 38583, 256, 20398, 256, 20711,
+ 256, 20813, 256, 21193, 256, 21220, 256, 21329, 256, 21917, 256, 22022,
+ 256, 22120, 256, 22592, 256, 22696, 256, 23652, 256, 23662, 256, 24724,
+ 256, 24936, 256, 24974, 256, 25074, 256, 25935, 256, 26082, 256, 26257,
+ 256, 26757, 256, 28023, 256, 28186, 256, 28450, 256, 29038, 256, 29227,
+ 256, 29730, 256, 30865, 256, 31038, 256, 31049, 256, 31048, 256, 31056,
+ 256, 31062, 256, 31069, 256, 31117, 256, 31118, 256, 31296, 256, 31361,
+ 256, 31680, 256, 32244, 256, 32265, 256, 32321, 256, 32626, 256, 32773,
+ 256, 33261, 256, 33401, 256, 33401, 256, 33879, 256, 35088, 256, 35222,
+ 256, 35585, 256, 35641, 256, 36051, 256, 36104, 256, 36790, 256, 36920,
+ 256, 38627, 256, 38911, 256, 38971, 256, 24693, 256, 148206, 256, 33304,
+ 256, 20006, 256, 20917, 256, 20840, 256, 20352, 256, 20805, 256, 20864,
+ 256, 21191, 256, 21242, 256, 21917, 256, 21845, 256, 21913, 256, 21986,
+ 256, 22618, 256, 22707, 256, 22852, 256, 22868, 256, 23138, 256, 23336,
+ 256, 24274, 256, 24281, 256, 24425, 256, 24493, 256, 24792, 256, 24910,
+ 256, 24840, 256, 24974, 256, 24928, 256, 25074, 256, 25140, 256, 25540,
+ 256, 25628, 256, 25682, 256, 25942, 256, 26228, 256, 26391, 256, 26395,
+ 256, 26454, 256, 27513, 256, 27578, 256, 27969, 256, 28379, 256, 28363,
+ 256, 28450, 256, 28702, 256, 29038, 256, 30631, 256, 29237, 256, 29359,
+ 256, 29482, 256, 29809, 256, 29958, 256, 30011, 256, 30237, 256, 30239,
+ 256, 30410, 256, 30427, 256, 30452, 256, 30538, 256, 30528, 256, 30924,
+ 256, 31409, 256, 31680, 256, 31867, 256, 32091, 256, 32244, 256, 32574,
+ 256, 32773, 256, 33618, 256, 33775, 256, 34681, 256, 35137, 256, 35206,
+ 256, 35222, 256, 35519, 256, 35576, 256, 35531, 256, 35585, 256, 35582,
+ 256, 35565, 256, 35641, 256, 35722, 256, 36104, 256, 36664, 256, 36978,
+ 256, 37273, 256, 37494, 256, 38524, 256, 38627, 256, 38742, 256, 38875,
+ 256, 38911, 256, 38923, 256, 38971, 256, 39698, 256, 40860, 256, 141386,
+ 256, 141380, 256, 144341, 256, 15261, 256, 16408, 256, 16441, 256,
+ 152137, 256, 154832, 256, 163539, 256, 40771, 256, 40846, 514, 102, 102,
+ 514, 102, 105, 514, 102, 108, 770, 102, 102, 105, 770, 102, 102, 108,
+ 514, 383, 116, 514, 115, 116, 514, 1396, 1398, 514, 1396, 1381, 514,
+ 1396, 1387, 514, 1406, 1398, 514, 1396, 1389, 512, 1497, 1460, 512, 1522,
+ 1463, 262, 1506, 262, 1488, 262, 1491, 262, 1492, 262, 1499, 262, 1500,
+ 262, 1501, 262, 1512, 262, 1514, 262, 43, 512, 1513, 1473, 512, 1513,
+ 1474, 512, 64329, 1473, 512, 64329, 1474, 512, 1488, 1463, 512, 1488,
+ 1464, 512, 1488, 1468, 512, 1489, 1468, 512, 1490, 1468, 512, 1491, 1468,
+ 512, 1492, 1468, 512, 1493, 1468, 512, 1494, 1468, 512, 1496, 1468, 512,
+ 1497, 1468, 512, 1498, 1468, 512, 1499, 1468, 512, 1500, 1468, 512, 1502,
+ 1468, 512, 1504, 1468, 512, 1505, 1468, 512, 1507, 1468, 512, 1508, 1468,
+ 512, 1510, 1468, 512, 1511, 1468, 512, 1512, 1468, 512, 1513, 1468, 512,
+ 1514, 1468, 512, 1493, 1465, 512, 1489, 1471, 512, 1499, 1471, 512, 1508,
+ 1471, 514, 1488, 1500, 267, 1649, 268, 1649, 267, 1659, 268, 1659, 269,
+ 1659, 270, 1659, 267, 1662, 268, 1662, 269, 1662, 270, 1662, 267, 1664,
+ 268, 1664, 269, 1664, 270, 1664, 267, 1658, 268, 1658, 269, 1658, 270,
+ 1658, 267, 1663, 268, 1663, 269, 1663, 270, 1663, 267, 1657, 268, 1657,
+ 269, 1657, 270, 1657, 267, 1700, 268, 1700, 269, 1700, 270, 1700, 267,
+ 1702, 268, 1702, 269, 1702, 270, 1702, 267, 1668, 268, 1668, 269, 1668,
+ 270, 1668, 267, 1667, 268, 1667, 269, 1667, 270, 1667, 267, 1670, 268,
+ 1670, 269, 1670, 270, 1670, 267, 1671, 268, 1671, 269, 1671, 270, 1671,
+ 267, 1677, 268, 1677, 267, 1676, 268, 1676, 267, 1678, 268, 1678, 267,
+ 1672, 268, 1672, 267, 1688, 268, 1688, 267, 1681, 268, 1681, 267, 1705,
+ 268, 1705, 269, 1705, 270, 1705, 267, 1711, 268, 1711, 269, 1711, 270,
+ 1711, 267, 1715, 268, 1715, 269, 1715, 270, 1715, 267, 1713, 268, 1713,
+ 269, 1713, 270, 1713, 267, 1722, 268, 1722, 267, 1723, 268, 1723, 269,
+ 1723, 270, 1723, 267, 1728, 268, 1728, 267, 1729, 268, 1729, 269, 1729,
+ 270, 1729, 267, 1726, 268, 1726, 269, 1726, 270, 1726, 267, 1746, 268,
+ 1746, 267, 1747, 268, 1747, 267, 1709, 268, 1709, 269, 1709, 270, 1709,
+ 267, 1735, 268, 1735, 267, 1734, 268, 1734, 267, 1736, 268, 1736, 267,
+ 1655, 267, 1739, 268, 1739, 267, 1733, 268, 1733, 267, 1737, 268, 1737,
+ 267, 1744, 268, 1744, 269, 1744, 270, 1744, 269, 1609, 270, 1609, 523,
+ 1574, 1575, 524, 1574, 1575, 523, 1574, 1749, 524, 1574, 1749, 523, 1574,
+ 1608, 524, 1574, 1608, 523, 1574, 1735, 524, 1574, 1735, 523, 1574, 1734,
+ 524, 1574, 1734, 523, 1574, 1736, 524, 1574, 1736, 523, 1574, 1744, 524,
+ 1574, 1744, 525, 1574, 1744, 523, 1574, 1609, 524, 1574, 1609, 525, 1574,
+ 1609, 267, 1740, 268, 1740, 269, 1740, 270, 1740, 523, 1574, 1580, 523,
+ 1574, 1581, 523, 1574, 1605, 523, 1574, 1609, 523, 1574, 1610, 523, 1576,
+ 1580, 523, 1576, 1581, 523, 1576, 1582, 523, 1576, 1605, 523, 1576, 1609,
+ 523, 1576, 1610, 523, 1578, 1580, 523, 1578, 1581, 523, 1578, 1582, 523,
+ 1578, 1605, 523, 1578, 1609, 523, 1578, 1610, 523, 1579, 1580, 523, 1579,
+ 1605, 523, 1579, 1609, 523, 1579, 1610, 523, 1580, 1581, 523, 1580, 1605,
+ 523, 1581, 1580, 523, 1581, 1605, 523, 1582, 1580, 523, 1582, 1581, 523,
+ 1582, 1605, 523, 1587, 1580, 523, 1587, 1581, 523, 1587, 1582, 523, 1587,
+ 1605, 523, 1589, 1581, 523, 1589, 1605, 523, 1590, 1580, 523, 1590, 1581,
+ 523, 1590, 1582, 523, 1590, 1605, 523, 1591, 1581, 523, 1591, 1605, 523,
+ 1592, 1605, 523, 1593, 1580, 523, 1593, 1605, 523, 1594, 1580, 523, 1594,
+ 1605, 523, 1601, 1580, 523, 1601, 1581, 523, 1601, 1582, 523, 1601, 1605,
+ 523, 1601, 1609, 523, 1601, 1610, 523, 1602, 1581, 523, 1602, 1605, 523,
+ 1602, 1609, 523, 1602, 1610, 523, 1603, 1575, 523, 1603, 1580, 523, 1603,
+ 1581, 523, 1603, 1582, 523, 1603, 1604, 523, 1603, 1605, 523, 1603, 1609,
+ 523, 1603, 1610, 523, 1604, 1580, 523, 1604, 1581, 523, 1604, 1582, 523,
+ 1604, 1605, 523, 1604, 1609, 523, 1604, 1610, 523, 1605, 1580, 523, 1605,
+ 1581, 523, 1605, 1582, 523, 1605, 1605, 523, 1605, 1609, 523, 1605, 1610,
+ 523, 1606, 1580, 523, 1606, 1581, 523, 1606, 1582, 523, 1606, 1605, 523,
+ 1606, 1609, 523, 1606, 1610, 523, 1607, 1580, 523, 1607, 1605, 523, 1607,
+ 1609, 523, 1607, 1610, 523, 1610, 1580, 523, 1610, 1581, 523, 1610, 1582,
+ 523, 1610, 1605, 523, 1610, 1609, 523, 1610, 1610, 523, 1584, 1648, 523,
+ 1585, 1648, 523, 1609, 1648, 779, 32, 1612, 1617, 779, 32, 1613, 1617,
+ 779, 32, 1614, 1617, 779, 32, 1615, 1617, 779, 32, 1616, 1617, 779, 32,
+ 1617, 1648, 524, 1574, 1585, 524, 1574, 1586, 524, 1574, 1605, 524, 1574,
+ 1606, 524, 1574, 1609, 524, 1574, 1610, 524, 1576, 1585, 524, 1576, 1586,
+ 524, 1576, 1605, 524, 1576, 1606, 524, 1576, 1609, 524, 1576, 1610, 524,
+ 1578, 1585, 524, 1578, 1586, 524, 1578, 1605, 524, 1578, 1606, 524, 1578,
+ 1609, 524, 1578, 1610, 524, 1579, 1585, 524, 1579, 1586, 524, 1579, 1605,
+ 524, 1579, 1606, 524, 1579, 1609, 524, 1579, 1610, 524, 1601, 1609, 524,
+ 1601, 1610, 524, 1602, 1609, 524, 1602, 1610, 524, 1603, 1575, 524, 1603,
+ 1604, 524, 1603, 1605, 524, 1603, 1609, 524, 1603, 1610, 524, 1604, 1605,
+ 524, 1604, 1609, 524, 1604, 1610, 524, 1605, 1575, 524, 1605, 1605, 524,
+ 1606, 1585, 524, 1606, 1586, 524, 1606, 1605, 524, 1606, 1606, 524, 1606,
+ 1609, 524, 1606, 1610, 524, 1609, 1648, 524, 1610, 1585, 524, 1610, 1586,
+ 524, 1610, 1605, 524, 1610, 1606, 524, 1610, 1609, 524, 1610, 1610, 525,
+ 1574, 1580, 525, 1574, 1581, 525, 1574, 1582, 525, 1574, 1605, 525, 1574,
+ 1607, 525, 1576, 1580, 525, 1576, 1581, 525, 1576, 1582, 525, 1576, 1605,
+ 525, 1576, 1607, 525, 1578, 1580, 525, 1578, 1581, 525, 1578, 1582, 525,
+ 1578, 1605, 525, 1578, 1607, 525, 1579, 1605, 525, 1580, 1581, 525, 1580,
+ 1605, 525, 1581, 1580, 525, 1581, 1605, 525, 1582, 1580, 525, 1582, 1605,
+ 525, 1587, 1580, 525, 1587, 1581, 525, 1587, 1582, 525, 1587, 1605, 525,
+ 1589, 1581, 525, 1589, 1582, 525, 1589, 1605, 525, 1590, 1580, 525, 1590,
+ 1581, 525, 1590, 1582, 525, 1590, 1605, 525, 1591, 1581, 525, 1592, 1605,
+ 525, 1593, 1580, 525, 1593, 1605, 525, 1594, 1580, 525, 1594, 1605, 525,
+ 1601, 1580, 525, 1601, 1581, 525, 1601, 1582, 525, 1601, 1605, 525, 1602,
+ 1581, 525, 1602, 1605, 525, 1603, 1580, 525, 1603, 1581, 525, 1603, 1582,
+ 525, 1603, 1604, 525, 1603, 1605, 525, 1604, 1580, 525, 1604, 1581, 525,
+ 1604, 1582, 525, 1604, 1605, 525, 1604, 1607, 525, 1605, 1580, 525, 1605,
+ 1581, 525, 1605, 1582, 525, 1605, 1605, 525, 1606, 1580, 525, 1606, 1581,
+ 525, 1606, 1582, 525, 1606, 1605, 525, 1606, 1607, 525, 1607, 1580, 525,
+ 1607, 1605, 525, 1607, 1648, 525, 1610, 1580, 525, 1610, 1581, 525, 1610,
+ 1582, 525, 1610, 1605, 525, 1610, 1607, 526, 1574, 1605, 526, 1574, 1607,
+ 526, 1576, 1605, 526, 1576, 1607, 526, 1578, 1605, 526, 1578, 1607, 526,
+ 1579, 1605, 526, 1579, 1607, 526, 1587, 1605, 526, 1587, 1607, 526, 1588,
+ 1605, 526, 1588, 1607, 526, 1603, 1604, 526, 1603, 1605, 526, 1604, 1605,
+ 526, 1606, 1605, 526, 1606, 1607, 526, 1610, 1605, 526, 1610, 1607, 782,
+ 1600, 1614, 1617, 782, 1600, 1615, 1617, 782, 1600, 1616, 1617, 523,
+ 1591, 1609, 523, 1591, 1610, 523, 1593, 1609, 523, 1593, 1610, 523, 1594,
+ 1609, 523, 1594, 1610, 523, 1587, 1609, 523, 1587, 1610, 523, 1588, 1609,
+ 523, 1588, 1610, 523, 1581, 1609, 523, 1581, 1610, 523, 1580, 1609, 523,
+ 1580, 1610, 523, 1582, 1609, 523, 1582, 1610, 523, 1589, 1609, 523, 1589,
+ 1610, 523, 1590, 1609, 523, 1590, 1610, 523, 1588, 1580, 523, 1588, 1581,
+ 523, 1588, 1582, 523, 1588, 1605, 523, 1588, 1585, 523, 1587, 1585, 523,
+ 1589, 1585, 523, 1590, 1585, 524, 1591, 1609, 524, 1591, 1610, 524, 1593,
+ 1609, 524, 1593, 1610, 524, 1594, 1609, 524, 1594, 1610, 524, 1587, 1609,
+ 524, 1587, 1610, 524, 1588, 1609, 524, 1588, 1610, 524, 1581, 1609, 524,
+ 1581, 1610, 524, 1580, 1609, 524, 1580, 1610, 524, 1582, 1609, 524, 1582,
+ 1610, 524, 1589, 1609, 524, 1589, 1610, 524, 1590, 1609, 524, 1590, 1610,
+ 524, 1588, 1580, 524, 1588, 1581, 524, 1588, 1582, 524, 1588, 1605, 524,
+ 1588, 1585, 524, 1587, 1585, 524, 1589, 1585, 524, 1590, 1585, 525, 1588,
+ 1580, 525, 1588, 1581, 525, 1588, 1582, 525, 1588, 1605, 525, 1587, 1607,
+ 525, 1588, 1607, 525, 1591, 1605, 526, 1587, 1580, 526, 1587, 1581, 526,
+ 1587, 1582, 526, 1588, 1580, 526, 1588, 1581, 526, 1588, 1582, 526, 1591,
+ 1605, 526, 1592, 1605, 524, 1575, 1611, 523, 1575, 1611, 781, 1578, 1580,
+ 1605, 780, 1578, 1581, 1580, 781, 1578, 1581, 1580, 781, 1578, 1581,
+ 1605, 781, 1578, 1582, 1605, 781, 1578, 1605, 1580, 781, 1578, 1605,
+ 1581, 781, 1578, 1605, 1582, 780, 1580, 1605, 1581, 781, 1580, 1605,
+ 1581, 780, 1581, 1605, 1610, 780, 1581, 1605, 1609, 781, 1587, 1581,
+ 1580, 781, 1587, 1580, 1581, 780, 1587, 1580, 1609, 780, 1587, 1605,
+ 1581, 781, 1587, 1605, 1581, 781, 1587, 1605, 1580, 780, 1587, 1605,
+ 1605, 781, 1587, 1605, 1605, 780, 1589, 1581, 1581, 781, 1589, 1581,
+ 1581, 780, 1589, 1605, 1605, 780, 1588, 1581, 1605, 781, 1588, 1581,
+ 1605, 780, 1588, 1580, 1610, 780, 1588, 1605, 1582, 781, 1588, 1605,
+ 1582, 780, 1588, 1605, 1605, 781, 1588, 1605, 1605, 780, 1590, 1581,
+ 1609, 780, 1590, 1582, 1605, 781, 1590, 1582, 1605, 780, 1591, 1605,
+ 1581, 781, 1591, 1605, 1581, 781, 1591, 1605, 1605, 780, 1591, 1605,
+ 1610, 780, 1593, 1580, 1605, 780, 1593, 1605, 1605, 781, 1593, 1605,
+ 1605, 780, 1593, 1605, 1609, 780, 1594, 1605, 1605, 780, 1594, 1605,
+ 1610, 780, 1594, 1605, 1609, 780, 1601, 1582, 1605, 781, 1601, 1582,
+ 1605, 780, 1602, 1605, 1581, 780, 1602, 1605, 1605, 780, 1604, 1581,
+ 1605, 780, 1604, 1581, 1610, 780, 1604, 1581, 1609, 781, 1604, 1580,
+ 1580, 780, 1604, 1580, 1580, 780, 1604, 1582, 1605, 781, 1604, 1582,
+ 1605, 780, 1604, 1605, 1581, 781, 1604, 1605, 1581, 781, 1605, 1581,
+ 1580, 781, 1605, 1581, 1605, 780, 1605, 1581, 1610, 781, 1605, 1580,
+ 1581, 781, 1605, 1580, 1605, 781, 1605, 1582, 1580, 781, 1605, 1582,
+ 1605, 781, 1605, 1580, 1582, 781, 1607, 1605, 1580, 781, 1607, 1605,
+ 1605, 781, 1606, 1581, 1605, 780, 1606, 1581, 1609, 780, 1606, 1580,
+ 1605, 781, 1606, 1580, 1605, 780, 1606, 1580, 1609, 780, 1606, 1605,
+ 1610, 780, 1606, 1605, 1609, 780, 1610, 1605, 1605, 781, 1610, 1605,
+ 1605, 780, 1576, 1582, 1610, 780, 1578, 1580, 1610, 780, 1578, 1580,
+ 1609, 780, 1578, 1582, 1610, 780, 1578, 1582, 1609, 780, 1578, 1605,
+ 1610, 780, 1578, 1605, 1609, 780, 1580, 1605, 1610, 780, 1580, 1581,
+ 1609, 780, 1580, 1605, 1609, 780, 1587, 1582, 1609, 780, 1589, 1581,
+ 1610, 780, 1588, 1581, 1610, 780, 1590, 1581, 1610, 780, 1604, 1580,
+ 1610, 780, 1604, 1605, 1610, 780, 1610, 1581, 1610, 780, 1610, 1580,
+ 1610, 780, 1610, 1605, 1610, 780, 1605, 1605, 1610, 780, 1602, 1605,
+ 1610, 780, 1606, 1581, 1610, 781, 1602, 1605, 1581, 781, 1604, 1581,
+ 1605, 780, 1593, 1605, 1610, 780, 1603, 1605, 1610, 781, 1606, 1580,
+ 1581, 780, 1605, 1582, 1610, 781, 1604, 1580, 1605, 780, 1603, 1605,
+ 1605, 780, 1604, 1580, 1605, 780, 1606, 1580, 1581, 780, 1580, 1581,
+ 1610, 780, 1581, 1580, 1610, 780, 1605, 1580, 1610, 780, 1601, 1605,
+ 1610, 780, 1576, 1581, 1610, 781, 1603, 1605, 1605, 781, 1593, 1580,
+ 1605, 781, 1589, 1605, 1605, 780, 1587, 1582, 1610, 780, 1606, 1580,
+ 1610, 779, 1589, 1604, 1746, 779, 1602, 1604, 1746, 1035, 1575, 1604,
+ 1604, 1607, 1035, 1575, 1603, 1576, 1585, 1035, 1605, 1581, 1605, 1583,
+ 1035, 1589, 1604, 1593, 1605, 1035, 1585, 1587, 1608, 1604, 1035, 1593,
+ 1604, 1610, 1607, 1035, 1608, 1587, 1604, 1605, 779, 1589, 1604, 1609,
+ 4619, 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610,
+ 1607, 32, 1608, 1587, 1604, 1605, 2059, 1580, 1604, 32, 1580, 1604, 1575,
+ 1604, 1607, 1035, 1585, 1740, 1575, 1604, 265, 44, 265, 12289, 265,
+ 12290, 265, 58, 265, 59, 265, 33, 265, 63, 265, 12310, 265, 12311, 265,
+ 8230, 265, 8229, 265, 8212, 265, 8211, 265, 95, 265, 95, 265, 40, 265,
+ 41, 265, 123, 265, 125, 265, 12308, 265, 12309, 265, 12304, 265, 12305,
+ 265, 12298, 265, 12299, 265, 12296, 265, 12297, 265, 12300, 265, 12301,
+ 265, 12302, 265, 12303, 265, 91, 265, 93, 258, 8254, 258, 8254, 258,
+ 8254, 258, 8254, 258, 95, 258, 95, 258, 95, 271, 44, 271, 12289, 271, 46,
+ 271, 59, 271, 58, 271, 63, 271, 33, 271, 8212, 271, 40, 271, 41, 271,
+ 123, 271, 125, 271, 12308, 271, 12309, 271, 35, 271, 38, 271, 42, 271,
+ 43, 271, 45, 271, 60, 271, 62, 271, 61, 271, 92, 271, 36, 271, 37, 271,
+ 64, 523, 32, 1611, 526, 1600, 1611, 523, 32, 1612, 523, 32, 1613, 523,
+ 32, 1614, 526, 1600, 1614, 523, 32, 1615, 526, 1600, 1615, 523, 32, 1616,
+ 526, 1600, 1616, 523, 32, 1617, 526, 1600, 1617, 523, 32, 1618, 526,
+ 1600, 1618, 267, 1569, 267, 1570, 268, 1570, 267, 1571, 268, 1571, 267,
+ 1572, 268, 1572, 267, 1573, 268, 1573, 267, 1574, 268, 1574, 269, 1574,
+ 270, 1574, 267, 1575, 268, 1575, 267, 1576, 268, 1576, 269, 1576, 270,
+ 1576, 267, 1577, 268, 1577, 267, 1578, 268, 1578, 269, 1578, 270, 1578,
+ 267, 1579, 268, 1579, 269, 1579, 270, 1579, 267, 1580, 268, 1580, 269,
+ 1580, 270, 1580, 267, 1581, 268, 1581, 269, 1581, 270, 1581, 267, 1582,
+ 268, 1582, 269, 1582, 270, 1582, 267, 1583, 268, 1583, 267, 1584, 268,
+ 1584, 267, 1585, 268, 1585, 267, 1586, 268, 1586, 267, 1587, 268, 1587,
+ 269, 1587, 270, 1587, 267, 1588, 268, 1588, 269, 1588, 270, 1588, 267,
+ 1589, 268, 1589, 269, 1589, 270, 1589, 267, 1590, 268, 1590, 269, 1590,
+ 270, 1590, 267, 1591, 268, 1591, 269, 1591, 270, 1591, 267, 1592, 268,
+ 1592, 269, 1592, 270, 1592, 267, 1593, 268, 1593, 269, 1593, 270, 1593,
+ 267, 1594, 268, 1594, 269, 1594, 270, 1594, 267, 1601, 268, 1601, 269,
+ 1601, 270, 1601, 267, 1602, 268, 1602, 269, 1602, 270, 1602, 267, 1603,
+ 268, 1603, 269, 1603, 270, 1603, 267, 1604, 268, 1604, 269, 1604, 270,
+ 1604, 267, 1605, 268, 1605, 269, 1605, 270, 1605, 267, 1606, 268, 1606,
+ 269, 1606, 270, 1606, 267, 1607, 268, 1607, 269, 1607, 270, 1607, 267,
+ 1608, 268, 1608, 267, 1609, 268, 1609, 267, 1610, 268, 1610, 269, 1610,
+ 270, 1610, 523, 1604, 1570, 524, 1604, 1570, 523, 1604, 1571, 524, 1604,
+ 1571, 523, 1604, 1573, 524, 1604, 1573, 523, 1604, 1575, 524, 1604, 1575,
+ 264, 33, 264, 34, 264, 35, 264, 36, 264, 37, 264, 38, 264, 39, 264, 40,
+ 264, 41, 264, 42, 264, 43, 264, 44, 264, 45, 264, 46, 264, 47, 264, 48,
+ 264, 49, 264, 50, 264, 51, 264, 52, 264, 53, 264, 54, 264, 55, 264, 56,
+ 264, 57, 264, 58, 264, 59, 264, 60, 264, 61, 264, 62, 264, 63, 264, 64,
+ 264, 65, 264, 66, 264, 67, 264, 68, 264, 69, 264, 70, 264, 71, 264, 72,
+ 264, 73, 264, 74, 264, 75, 264, 76, 264, 77, 264, 78, 264, 79, 264, 80,
+ 264, 81, 264, 82, 264, 83, 264, 84, 264, 85, 264, 86, 264, 87, 264, 88,
+ 264, 89, 264, 90, 264, 91, 264, 92, 264, 93, 264, 94, 264, 95, 264, 96,
+ 264, 97, 264, 98, 264, 99, 264, 100, 264, 101, 264, 102, 264, 103, 264,
+ 104, 264, 105, 264, 106, 264, 107, 264, 108, 264, 109, 264, 110, 264,
+ 111, 264, 112, 264, 113, 264, 114, 264, 115, 264, 116, 264, 117, 264,
+ 118, 264, 119, 264, 120, 264, 121, 264, 122, 264, 123, 264, 124, 264,
+ 125, 264, 126, 264, 10629, 264, 10630, 272, 12290, 272, 12300, 272,
+ 12301, 272, 12289, 272, 12539, 272, 12530, 272, 12449, 272, 12451, 272,
+ 12453, 272, 12455, 272, 12457, 272, 12515, 272, 12517, 272, 12519, 272,
+ 12483, 272, 12540, 272, 12450, 272, 12452, 272, 12454, 272, 12456, 272,
+ 12458, 272, 12459, 272, 12461, 272, 12463, 272, 12465, 272, 12467, 272,
+ 12469, 272, 12471, 272, 12473, 272, 12475, 272, 12477, 272, 12479, 272,
+ 12481, 272, 12484, 272, 12486, 272, 12488, 272, 12490, 272, 12491, 272,
+ 12492, 272, 12493, 272, 12494, 272, 12495, 272, 12498, 272, 12501, 272,
+ 12504, 272, 12507, 272, 12510, 272, 12511, 272, 12512, 272, 12513, 272,
+ 12514, 272, 12516, 272, 12518, 272, 12520, 272, 12521, 272, 12522, 272,
+ 12523, 272, 12524, 272, 12525, 272, 12527, 272, 12531, 272, 12441, 272,
+ 12442, 272, 12644, 272, 12593, 272, 12594, 272, 12595, 272, 12596, 272,
+ 12597, 272, 12598, 272, 12599, 272, 12600, 272, 12601, 272, 12602, 272,
+ 12603, 272, 12604, 272, 12605, 272, 12606, 272, 12607, 272, 12608, 272,
+ 12609, 272, 12610, 272, 12611, 272, 12612, 272, 12613, 272, 12614, 272,
+ 12615, 272, 12616, 272, 12617, 272, 12618, 272, 12619, 272, 12620, 272,
+ 12621, 272, 12622, 272, 12623, 272, 12624, 272, 12625, 272, 12626, 272,
+ 12627, 272, 12628, 272, 12629, 272, 12630, 272, 12631, 272, 12632, 272,
+ 12633, 272, 12634, 272, 12635, 272, 12636, 272, 12637, 272, 12638, 272,
+ 12639, 272, 12640, 272, 12641, 272, 12642, 272, 12643, 264, 162, 264,
+ 163, 264, 172, 264, 175, 264, 166, 264, 165, 264, 8361, 272, 9474, 272,
+ 8592, 272, 8593, 272, 8594, 272, 8595, 272, 9632, 272, 9675, 512, 69785,
+ 69818, 512, 69787, 69818, 512, 69797, 69818, 512, 69937, 69927, 512,
+ 69938, 69927, 512, 70471, 70462, 512, 70471, 70487, 512, 70841, 70842,
+ 512, 70841, 70832, 512, 70841, 70845, 512, 71096, 71087, 512, 71097,
+ 71087, 512, 71989, 71984, 512, 119127, 119141, 512, 119128, 119141, 512,
+ 119135, 119150, 512, 119135, 119151, 512, 119135, 119152, 512, 119135,
+ 119153, 512, 119135, 119154, 512, 119225, 119141, 512, 119226, 119141,
+ 512, 119227, 119150, 512, 119228, 119150, 512, 119227, 119151, 512,
+ 119228, 119151, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70,
+ 262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78,
+ 262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86,
+ 262, 87, 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100,
+ 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107,
+ 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114,
+ 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121,
+ 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71,
+ 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79,
+ 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87,
+ 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101,
+ 262, 102, 262, 103, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109,
+ 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116,
+ 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262,
+ 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262,
+ 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262,
+ 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262,
+ 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103,
+ 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110,
+ 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117,
+ 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 67, 262,
+ 68, 262, 71, 262, 74, 262, 75, 262, 78, 262, 79, 262, 80, 262, 81, 262,
+ 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262,
+ 97, 262, 98, 262, 99, 262, 100, 262, 102, 262, 104, 262, 105, 262, 106,
+ 262, 107, 262, 108, 262, 109, 262, 110, 262, 112, 262, 113, 262, 114,
+ 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121,
+ 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71,
+ 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79,
+ 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87,
+ 262, 88, 262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101,
+ 262, 102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108,
262, 109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115,
262, 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122,
- 262, 65, 262, 66, 262, 68, 262, 69, 262, 70, 262, 71, 262, 74, 262, 75,
- 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 83, 262, 84,
- 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 97, 262, 98, 262, 99,
+ 262, 65, 262, 66, 262, 68, 262, 69, 262, 70, 262, 71, 262, 74, 262, 75,
+ 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 83, 262, 84,
+ 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 97, 262, 98, 262, 99,
+ 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106,
+ 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113,
+ 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120,
+ 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, 262, 69, 262, 70, 262, 71,
+ 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 79, 262, 83, 262, 84,
+ 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 97, 262, 98, 262, 99,
262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106,
262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113,
262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120,
- 262, 121, 262, 122, 262, 65, 262, 66, 262, 68, 262, 69, 262, 70, 262, 71,
- 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 79, 262, 83, 262, 84,
- 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 97, 262, 98, 262, 99,
- 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262, 105, 262, 106,
- 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262, 112, 262, 113,
- 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262, 119, 262, 120,
262, 121, 262, 122, 262, 65, 262, 66, 262, 67, 262, 68, 262, 69, 262, 70,
262, 71, 262, 72, 262, 73, 262, 74, 262, 75, 262, 76, 262, 77, 262, 78,
262, 79, 262, 80, 262, 81, 262, 82, 262, 83, 262, 84, 262, 85, 262, 86,
@@ -4163,37 +4163,37 @@ static const unsigned int decomp_data[] = {
262, 89, 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262,
102, 262, 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262,
109, 262, 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262,
- 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65,
- 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73,
- 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81,
- 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89,
- 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262,
- 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262,
- 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262,
- 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66,
- 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74,
- 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82,
- 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90,
- 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262,
- 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262,
- 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262,
- 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67,
- 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75,
- 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83,
- 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97,
- 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262,
- 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262,
- 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262,
- 119, 262, 120, 262, 121, 262, 122, 262, 305, 262, 567, 262, 913, 262,
- 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262,
- 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262,
- 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262,
- 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262,
- 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262,
- 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262,
- 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262,
- 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262,
- 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262,
+ 116, 262, 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65,
+ 262, 66, 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73,
+ 262, 74, 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81,
+ 262, 82, 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89,
+ 262, 90, 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262,
+ 103, 262, 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262,
+ 110, 262, 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262,
+ 117, 262, 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66,
+ 262, 67, 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74,
+ 262, 75, 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82,
+ 262, 83, 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90,
+ 262, 97, 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262,
+ 104, 262, 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262,
+ 111, 262, 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262,
+ 118, 262, 119, 262, 120, 262, 121, 262, 122, 262, 65, 262, 66, 262, 67,
+ 262, 68, 262, 69, 262, 70, 262, 71, 262, 72, 262, 73, 262, 74, 262, 75,
+ 262, 76, 262, 77, 262, 78, 262, 79, 262, 80, 262, 81, 262, 82, 262, 83,
+ 262, 84, 262, 85, 262, 86, 262, 87, 262, 88, 262, 89, 262, 90, 262, 97,
+ 262, 98, 262, 99, 262, 100, 262, 101, 262, 102, 262, 103, 262, 104, 262,
+ 105, 262, 106, 262, 107, 262, 108, 262, 109, 262, 110, 262, 111, 262,
+ 112, 262, 113, 262, 114, 262, 115, 262, 116, 262, 117, 262, 118, 262,
+ 119, 262, 120, 262, 121, 262, 122, 262, 305, 262, 567, 262, 913, 262,
+ 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262,
+ 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262,
+ 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262,
+ 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262,
+ 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262,
+ 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262,
+ 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262,
+ 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262,
+ 982, 262, 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262,
919, 262, 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, 925, 262,
926, 262, 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262,
933, 262, 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262,
@@ -4209,175 +4209,175 @@ static const unsigned int decomp_data[] = {
951, 262, 952, 262, 953, 262, 954, 262, 955, 262, 956, 262, 957, 262,
958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262,
965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262,
- 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262,
- 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, 262,
- 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 928, 262,
- 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262,
- 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262,
- 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262,
- 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262,
- 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262,
- 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262,
- 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262,
- 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262,
- 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262,
- 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262,
- 947, 262, 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262,
- 954, 262, 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262,
- 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262,
- 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262,
- 1009, 262, 982, 262, 988, 262, 989, 262, 48, 262, 49, 262, 50, 262, 51,
- 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49,
- 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57,
- 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55,
- 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53,
- 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51,
- 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 1575, 262,
- 1576, 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262, 1591,
- 262, 1610, 262, 1603, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262,
- 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578,
- 262, 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 262,
- 1646, 262, 1722, 262, 1697, 262, 1647, 262, 1576, 262, 1580, 262, 1607,
- 262, 1581, 262, 1610, 262, 1603, 262, 1604, 262, 1605, 262, 1606, 262,
- 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1588, 262, 1578,
- 262, 1579, 262, 1582, 262, 1590, 262, 1594, 262, 1580, 262, 1581, 262,
- 1610, 262, 1604, 262, 1606, 262, 1587, 262, 1593, 262, 1589, 262, 1602,
- 262, 1588, 262, 1582, 262, 1590, 262, 1594, 262, 1722, 262, 1647, 262,
- 1576, 262, 1580, 262, 1607, 262, 1581, 262, 1591, 262, 1610, 262, 1603,
- 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262,
- 1602, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1590, 262, 1592,
- 262, 1594, 262, 1646, 262, 1697, 262, 1575, 262, 1576, 262, 1580, 262,
- 1583, 262, 1607, 262, 1608, 262, 1586, 262, 1581, 262, 1591, 262, 1610,
- 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262,
- 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578, 262, 1579, 262, 1582,
- 262, 1584, 262, 1590, 262, 1592, 262, 1594, 262, 1576, 262, 1580, 262,
- 1583, 262, 1608, 262, 1586, 262, 1581, 262, 1591, 262, 1610, 262, 1604,
- 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262,
- 1602, 262, 1585, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1584,
- 262, 1590, 262, 1592, 262, 1594, 514, 48, 46, 514, 48, 44, 514, 49, 44,
- 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53, 44, 514, 54, 44, 514, 55,
- 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41, 770, 40, 66, 41, 770, 40,
- 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770, 40, 70, 41, 770, 40, 71,
- 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40, 74, 41, 770, 40, 75, 41,
- 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78, 41, 770, 40, 79, 41, 770,
- 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41, 770, 40, 83, 41, 770, 40,
- 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770, 40, 87, 41, 770, 40, 88,
- 41, 770, 40, 89, 41, 770, 40, 90, 41, 770, 12308, 83, 12309, 263, 67,
- 263, 82, 519, 67, 68, 519, 87, 90, 266, 65, 266, 66, 266, 67, 266, 68,
- 266, 69, 266, 70, 266, 71, 266, 72, 266, 73, 266, 74, 266, 75, 266, 76,
- 266, 77, 266, 78, 266, 79, 266, 80, 266, 81, 266, 82, 266, 83, 266, 84,
- 266, 85, 266, 86, 266, 87, 266, 88, 266, 89, 266, 90, 522, 72, 86, 522,
- 77, 86, 522, 83, 68, 522, 83, 83, 778, 80, 80, 86, 522, 87, 67, 515, 77,
- 67, 515, 77, 68, 515, 77, 82, 522, 68, 74, 522, 12411, 12363, 522, 12467,
- 12467, 266, 12469, 266, 25163, 266, 23383, 266, 21452, 266, 12487, 266,
- 20108, 266, 22810, 266, 35299, 266, 22825, 266, 20132, 266, 26144, 266,
- 28961, 266, 26009, 266, 21069, 266, 24460, 266, 20877, 266, 26032, 266,
- 21021, 266, 32066, 266, 29983, 266, 36009, 266, 22768, 266, 21561, 266,
- 28436, 266, 25237, 266, 25429, 266, 19968, 266, 19977, 266, 36938, 266,
- 24038, 266, 20013, 266, 21491, 266, 25351, 266, 36208, 266, 25171, 266,
- 31105, 266, 31354, 266, 21512, 266, 28288, 266, 26377, 266, 26376, 266,
- 30003, 266, 21106, 266, 21942, 266, 37197, 770, 12308, 26412, 12309, 770,
- 12308, 19977, 12309, 770, 12308, 20108, 12309, 770, 12308, 23433, 12309,
- 770, 12308, 28857, 12309, 770, 12308, 25171, 12309, 770, 12308, 30423,
- 12309, 770, 12308, 21213, 12309, 770, 12308, 25943, 12309, 263, 24471,
- 263, 21487, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262,
- 54, 262, 55, 262, 56, 262, 57, 256, 20029, 256, 20024, 256, 20033, 256,
- 131362, 256, 20320, 256, 20398, 256, 20411, 256, 20482, 256, 20602, 256,
- 20633, 256, 20711, 256, 20687, 256, 13470, 256, 132666, 256, 20813, 256,
- 20820, 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, 20839, 256,
- 20877, 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256,
- 20917, 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256,
- 21062, 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256,
- 21220, 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256,
- 21329, 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256,
- 21375, 256, 133676, 256, 28784, 256, 21450, 256, 21471, 256, 133987, 256,
- 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, 256,
- 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859, 256,
- 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954, 256,
- 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999, 256,
- 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256,
- 22577, 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, 22790, 256,
- 22810, 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, 23020, 256,
- 23067, 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 256,
- 23304, 256, 23358, 256, 23358, 256, 137672, 256, 23491, 256, 23512, 256,
- 23527, 256, 23539, 256, 138008, 256, 23551, 256, 23558, 256, 24403, 256,
- 23586, 256, 14209, 256, 23648, 256, 23662, 256, 23744, 256, 23693, 256,
- 138724, 256, 23875, 256, 138726, 256, 23918, 256, 23915, 256, 23932, 256,
- 24033, 256, 24034, 256, 14383, 256, 24061, 256, 24104, 256, 24125, 256,
- 24169, 256, 14434, 256, 139651, 256, 14460, 256, 24240, 256, 24243, 256,
- 24246, 256, 24266, 256, 172946, 256, 24318, 256, 140081, 256, 140081,
- 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, 144056, 256, 156122,
- 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535,
- 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, 141012,
- 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, 24954,
- 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, 25074,
- 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300,
- 256, 25424, 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, 25475,
- 256, 25572, 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, 14894,
- 256, 25705, 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, 25935,
- 256, 25964, 256, 143370, 256, 26083, 256, 26360, 256, 26185, 256, 15129,
- 256, 26257, 256, 15112, 256, 15076, 256, 20882, 256, 20885, 256, 26368,
- 256, 26268, 256, 32941, 256, 17369, 256, 26391, 256, 26395, 256, 26401,
- 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, 256, 26501,
- 256, 26706, 256, 26757, 256, 144493, 256, 26766, 256, 26655, 256, 26900,
- 256, 15261, 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, 145059,
- 256, 27355, 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, 15438,
- 256, 27506, 256, 27551, 256, 27578, 256, 27579, 256, 146061, 256, 138507,
- 256, 146170, 256, 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751,
- 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256, 28024,
- 256, 28037, 256, 146718, 256, 27956, 256, 28207, 256, 28270, 256, 15667,
- 256, 28363, 256, 28359, 256, 147153, 256, 28153, 256, 28526, 256, 147294,
- 256, 147342, 256, 28614, 256, 28729, 256, 28702, 256, 28699, 256, 15766,
- 256, 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, 28997,
- 256, 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29237, 256, 29264,
- 256, 149000, 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256,
- 29562, 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256,
- 29767, 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256,
- 29988, 256, 150582, 256, 30014, 256, 150674, 256, 30064, 256, 139679,
- 256, 30224, 256, 151457, 256, 151480, 256, 151620, 256, 16380, 256,
- 16392, 256, 30452, 256, 151795, 256, 151794, 256, 151833, 256, 151859,
- 256, 30494, 256, 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603,
- 256, 16454, 256, 16534, 256, 152605, 256, 30798, 256, 30860, 256, 30924,
- 256, 16611, 256, 153126, 256, 31062, 256, 153242, 256, 153285, 256,
- 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256,
- 153980, 256, 154279, 256, 154279, 256, 31470, 256, 16898, 256, 154539,
- 256, 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, 256, 17056,
- 256, 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, 256, 17153,
- 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, 256, 156231,
- 256, 17241, 256, 156377, 256, 32634, 256, 156478, 256, 32661, 256, 32762,
- 256, 32773, 256, 156890, 256, 156963, 256, 32864, 256, 157096, 256,
- 32880, 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256,
- 33086, 256, 23221, 256, 157607, 256, 157621, 256, 144275, 256, 144284,
- 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, 256, 33419,
- 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, 256, 33510,
- 256, 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, 256, 33571,
- 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, 256, 33740,
- 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, 17707, 256,
- 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, 159532, 256,
- 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, 256, 34384, 256,
- 34396, 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256,
- 34530, 256, 34681, 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256,
- 34785, 256, 34817, 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256,
- 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256,
- 162150, 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256,
- 35925, 256, 162984, 256, 36011, 256, 36033, 256, 36123, 256, 36215, 256,
- 163631, 256, 133124, 256, 36299, 256, 36284, 256, 36336, 256, 133342,
- 256, 36564, 256, 36664, 256, 165330, 256, 165357, 256, 37012, 256, 37105,
- 256, 37137, 256, 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592,
- 256, 37500, 256, 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837,
- 256, 38327, 256, 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691,
- 256, 168261, 256, 168474, 256, 19054, 256, 19062, 256, 38880, 256,
- 168970, 256, 19122, 256, 169110, 256, 38923, 256, 38923, 256, 38953, 256,
- 169398, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256,
- 39422, 256, 19406, 256, 170800, 256, 39698, 256, 40000, 256, 40189, 256,
- 19662, 256, 19693, 256, 40295, 256, 172238, 256, 19704, 256, 172293, 256,
- 172558, 256, 172689, 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256,
- 40709, 256, 40719, 256, 40726, 256, 40763, 256, 173568,
+ 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262, 913, 262, 914, 262,
+ 915, 262, 916, 262, 917, 262, 918, 262, 919, 262, 920, 262, 921, 262,
+ 922, 262, 923, 262, 924, 262, 925, 262, 926, 262, 927, 262, 928, 262,
+ 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262, 934, 262, 935, 262,
+ 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262, 947, 262, 948, 262,
+ 949, 262, 950, 262, 951, 262, 952, 262, 953, 262, 954, 262, 955, 262,
+ 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262,
+ 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262,
+ 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, 982, 262,
+ 913, 262, 914, 262, 915, 262, 916, 262, 917, 262, 918, 262, 919, 262,
+ 920, 262, 921, 262, 922, 262, 923, 262, 924, 262, 925, 262, 926, 262,
+ 927, 262, 928, 262, 929, 262, 1012, 262, 931, 262, 932, 262, 933, 262,
+ 934, 262, 935, 262, 936, 262, 937, 262, 8711, 262, 945, 262, 946, 262,
+ 947, 262, 948, 262, 949, 262, 950, 262, 951, 262, 952, 262, 953, 262,
+ 954, 262, 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262,
+ 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262,
+ 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262,
+ 1009, 262, 982, 262, 988, 262, 989, 262, 48, 262, 49, 262, 50, 262, 51,
+ 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49,
+ 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57,
+ 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55,
+ 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53,
+ 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51,
+ 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 1575, 262,
+ 1576, 262, 1580, 262, 1583, 262, 1608, 262, 1586, 262, 1581, 262, 1591,
+ 262, 1610, 262, 1603, 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262,
+ 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578,
+ 262, 1579, 262, 1582, 262, 1584, 262, 1590, 262, 1592, 262, 1594, 262,
+ 1646, 262, 1722, 262, 1697, 262, 1647, 262, 1576, 262, 1580, 262, 1607,
+ 262, 1581, 262, 1610, 262, 1603, 262, 1604, 262, 1605, 262, 1606, 262,
+ 1587, 262, 1593, 262, 1601, 262, 1589, 262, 1602, 262, 1588, 262, 1578,
+ 262, 1579, 262, 1582, 262, 1590, 262, 1594, 262, 1580, 262, 1581, 262,
+ 1610, 262, 1604, 262, 1606, 262, 1587, 262, 1593, 262, 1589, 262, 1602,
+ 262, 1588, 262, 1582, 262, 1590, 262, 1594, 262, 1722, 262, 1647, 262,
+ 1576, 262, 1580, 262, 1607, 262, 1581, 262, 1591, 262, 1610, 262, 1603,
+ 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262,
+ 1602, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1590, 262, 1592,
+ 262, 1594, 262, 1646, 262, 1697, 262, 1575, 262, 1576, 262, 1580, 262,
+ 1583, 262, 1607, 262, 1608, 262, 1586, 262, 1581, 262, 1591, 262, 1610,
+ 262, 1604, 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262,
+ 1589, 262, 1602, 262, 1585, 262, 1588, 262, 1578, 262, 1579, 262, 1582,
+ 262, 1584, 262, 1590, 262, 1592, 262, 1594, 262, 1576, 262, 1580, 262,
+ 1583, 262, 1608, 262, 1586, 262, 1581, 262, 1591, 262, 1610, 262, 1604,
+ 262, 1605, 262, 1606, 262, 1587, 262, 1593, 262, 1601, 262, 1589, 262,
+ 1602, 262, 1585, 262, 1588, 262, 1578, 262, 1579, 262, 1582, 262, 1584,
+ 262, 1590, 262, 1592, 262, 1594, 514, 48, 46, 514, 48, 44, 514, 49, 44,
+ 514, 50, 44, 514, 51, 44, 514, 52, 44, 514, 53, 44, 514, 54, 44, 514, 55,
+ 44, 514, 56, 44, 514, 57, 44, 770, 40, 65, 41, 770, 40, 66, 41, 770, 40,
+ 67, 41, 770, 40, 68, 41, 770, 40, 69, 41, 770, 40, 70, 41, 770, 40, 71,
+ 41, 770, 40, 72, 41, 770, 40, 73, 41, 770, 40, 74, 41, 770, 40, 75, 41,
+ 770, 40, 76, 41, 770, 40, 77, 41, 770, 40, 78, 41, 770, 40, 79, 41, 770,
+ 40, 80, 41, 770, 40, 81, 41, 770, 40, 82, 41, 770, 40, 83, 41, 770, 40,
+ 84, 41, 770, 40, 85, 41, 770, 40, 86, 41, 770, 40, 87, 41, 770, 40, 88,
+ 41, 770, 40, 89, 41, 770, 40, 90, 41, 770, 12308, 83, 12309, 263, 67,
+ 263, 82, 519, 67, 68, 519, 87, 90, 266, 65, 266, 66, 266, 67, 266, 68,
+ 266, 69, 266, 70, 266, 71, 266, 72, 266, 73, 266, 74, 266, 75, 266, 76,
+ 266, 77, 266, 78, 266, 79, 266, 80, 266, 81, 266, 82, 266, 83, 266, 84,
+ 266, 85, 266, 86, 266, 87, 266, 88, 266, 89, 266, 90, 522, 72, 86, 522,
+ 77, 86, 522, 83, 68, 522, 83, 83, 778, 80, 80, 86, 522, 87, 67, 515, 77,
+ 67, 515, 77, 68, 515, 77, 82, 522, 68, 74, 522, 12411, 12363, 522, 12467,
+ 12467, 266, 12469, 266, 25163, 266, 23383, 266, 21452, 266, 12487, 266,
+ 20108, 266, 22810, 266, 35299, 266, 22825, 266, 20132, 266, 26144, 266,
+ 28961, 266, 26009, 266, 21069, 266, 24460, 266, 20877, 266, 26032, 266,
+ 21021, 266, 32066, 266, 29983, 266, 36009, 266, 22768, 266, 21561, 266,
+ 28436, 266, 25237, 266, 25429, 266, 19968, 266, 19977, 266, 36938, 266,
+ 24038, 266, 20013, 266, 21491, 266, 25351, 266, 36208, 266, 25171, 266,
+ 31105, 266, 31354, 266, 21512, 266, 28288, 266, 26377, 266, 26376, 266,
+ 30003, 266, 21106, 266, 21942, 266, 37197, 770, 12308, 26412, 12309, 770,
+ 12308, 19977, 12309, 770, 12308, 20108, 12309, 770, 12308, 23433, 12309,
+ 770, 12308, 28857, 12309, 770, 12308, 25171, 12309, 770, 12308, 30423,
+ 12309, 770, 12308, 21213, 12309, 770, 12308, 25943, 12309, 263, 24471,
+ 263, 21487, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262,
+ 54, 262, 55, 262, 56, 262, 57, 256, 20029, 256, 20024, 256, 20033, 256,
+ 131362, 256, 20320, 256, 20398, 256, 20411, 256, 20482, 256, 20602, 256,
+ 20633, 256, 20711, 256, 20687, 256, 13470, 256, 132666, 256, 20813, 256,
+ 20820, 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, 20839, 256,
+ 20877, 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256,
+ 20917, 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256,
+ 21062, 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256,
+ 21220, 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256,
+ 21329, 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256,
+ 21375, 256, 133676, 256, 28784, 256, 21450, 256, 21471, 256, 133987, 256,
+ 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, 256,
+ 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859, 256,
+ 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954, 256,
+ 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999, 256,
+ 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256,
+ 22577, 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, 22790, 256,
+ 22810, 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, 23020, 256,
+ 23067, 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 256,
+ 23304, 256, 23358, 256, 23358, 256, 137672, 256, 23491, 256, 23512, 256,
+ 23527, 256, 23539, 256, 138008, 256, 23551, 256, 23558, 256, 24403, 256,
+ 23586, 256, 14209, 256, 23648, 256, 23662, 256, 23744, 256, 23693, 256,
+ 138724, 256, 23875, 256, 138726, 256, 23918, 256, 23915, 256, 23932, 256,
+ 24033, 256, 24034, 256, 14383, 256, 24061, 256, 24104, 256, 24125, 256,
+ 24169, 256, 14434, 256, 139651, 256, 14460, 256, 24240, 256, 24243, 256,
+ 24246, 256, 24266, 256, 172946, 256, 24318, 256, 140081, 256, 140081,
+ 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, 144056, 256, 156122,
+ 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535,
+ 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, 141012,
+ 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, 24954,
+ 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, 25074,
+ 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300,
+ 256, 25424, 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, 25475,
+ 256, 25572, 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, 14894,
+ 256, 25705, 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, 25935,
+ 256, 25964, 256, 143370, 256, 26083, 256, 26360, 256, 26185, 256, 15129,
+ 256, 26257, 256, 15112, 256, 15076, 256, 20882, 256, 20885, 256, 26368,
+ 256, 26268, 256, 32941, 256, 17369, 256, 26391, 256, 26395, 256, 26401,
+ 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, 256, 26501,
+ 256, 26706, 256, 26757, 256, 144493, 256, 26766, 256, 26655, 256, 26900,
+ 256, 15261, 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, 145059,
+ 256, 27355, 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, 15438,
+ 256, 27506, 256, 27551, 256, 27578, 256, 27579, 256, 146061, 256, 138507,
+ 256, 146170, 256, 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751,
+ 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256, 28024,
+ 256, 28037, 256, 146718, 256, 27956, 256, 28207, 256, 28270, 256, 15667,
+ 256, 28363, 256, 28359, 256, 147153, 256, 28153, 256, 28526, 256, 147294,
+ 256, 147342, 256, 28614, 256, 28729, 256, 28702, 256, 28699, 256, 15766,
+ 256, 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, 28997,
+ 256, 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29237, 256, 29264,
+ 256, 149000, 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256,
+ 29562, 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256,
+ 29767, 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256,
+ 29988, 256, 150582, 256, 30014, 256, 150674, 256, 30064, 256, 139679,
+ 256, 30224, 256, 151457, 256, 151480, 256, 151620, 256, 16380, 256,
+ 16392, 256, 30452, 256, 151795, 256, 151794, 256, 151833, 256, 151859,
+ 256, 30494, 256, 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603,
+ 256, 16454, 256, 16534, 256, 152605, 256, 30798, 256, 30860, 256, 30924,
+ 256, 16611, 256, 153126, 256, 31062, 256, 153242, 256, 153285, 256,
+ 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256,
+ 153980, 256, 154279, 256, 154279, 256, 31470, 256, 16898, 256, 154539,
+ 256, 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, 256, 17056,
+ 256, 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, 256, 17153,
+ 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, 256, 156231,
+ 256, 17241, 256, 156377, 256, 32634, 256, 156478, 256, 32661, 256, 32762,
+ 256, 32773, 256, 156890, 256, 156963, 256, 32864, 256, 157096, 256,
+ 32880, 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256,
+ 33086, 256, 23221, 256, 157607, 256, 157621, 256, 144275, 256, 144284,
+ 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, 256, 33419,
+ 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, 256, 33510,
+ 256, 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, 256, 33571,
+ 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, 256, 33740,
+ 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, 17707, 256,
+ 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, 159532, 256,
+ 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, 256, 34384, 256,
+ 34396, 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256,
+ 34530, 256, 34681, 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256,
+ 34785, 256, 34817, 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256,
+ 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256,
+ 162150, 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256,
+ 35925, 256, 162984, 256, 36011, 256, 36033, 256, 36123, 256, 36215, 256,
+ 163631, 256, 133124, 256, 36299, 256, 36284, 256, 36336, 256, 133342,
+ 256, 36564, 256, 36664, 256, 165330, 256, 165357, 256, 37012, 256, 37105,
+ 256, 37137, 256, 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592,
+ 256, 37500, 256, 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837,
+ 256, 38327, 256, 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691,
+ 256, 168261, 256, 168474, 256, 19054, 256, 19062, 256, 38880, 256,
+ 168970, 256, 19122, 256, 169110, 256, 38923, 256, 38923, 256, 38953, 256,
+ 169398, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256,
+ 39422, 256, 19406, 256, 170800, 256, 39698, 256, 40000, 256, 40189, 256,
+ 19662, 256, 19693, 256, 40295, 256, 172238, 256, 19704, 256, 172293, 256,
+ 172558, 256, 172689, 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256,
+ 40709, 256, 40719, 256, 40726, 256, 40763, 256, 173568,
};
/* index tables for the decomposition data */
#define DECOMP_SHIFT 7
-static const unsigned char decomp_index1[] = {
+static const unsigned char decomp_index1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11, 12, 0, 0, 0, 0, 13, 14, 15, 0,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 29, 30, 31, 32, 33, 34,
@@ -4402,7 +4402,7 @@ static const unsigned char decomp_index1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 78, 0, 0, 0, 79, 0, 0, 80, 0,
- 81, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 81, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4417,11 +4417,11 @@ static const unsigned char decomp_index1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 84, 0, 0, 0, 0, 85, 86,
- 87, 88, 89, 90, 91, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 84, 0, 0, 0, 0, 85, 86,
+ 87, 88, 89, 90, 91, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 93, 94, 0, 0, 0, 0, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 93, 94, 0, 0, 0, 0, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4442,7 +4442,7 @@ static const unsigned char decomp_index1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4741,10 +4741,10 @@ static const unsigned char decomp_index1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
-static const unsigned short decomp_index2[] = {
+static const unsigned short decomp_index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5131,863 +5131,863 @@ static const unsigned short decomp_index2[] = {
5592, 5594, 5596, 5598, 5600, 5602, 5604, 5606, 5608, 5610, 5612, 5614,
5616, 5618, 5620, 5622, 5624, 5626, 5628, 5630, 5632, 5634, 5636, 5638,
5640, 5642, 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, 5660, 5662,
- 5664, 5666, 5668, 5671, 5676, 5681, 5686, 5690, 5695, 5699, 5703, 5709,
- 5714, 5718, 5722, 5726, 5731, 5736, 5740, 5744, 5747, 5751, 5756, 5761,
- 5764, 5770, 5777, 5783, 5787, 5793, 5799, 5804, 5808, 5812, 5816, 5821,
- 5827, 5832, 5836, 5840, 5844, 5847, 5850, 5853, 5856, 5860, 5864, 5870,
- 5874, 5879, 5885, 5889, 5892, 5895, 5901, 5906, 5912, 5916, 5922, 5925,
- 5929, 5933, 5937, 5941, 5945, 5950, 5954, 5957, 5961, 5965, 5969, 5974,
- 5978, 5982, 5986, 5992, 5997, 6000, 6006, 6009, 6014, 6019, 6023, 6027,
- 6031, 6036, 6039, 6043, 6048, 6051, 6057, 6061, 6064, 6067, 6070, 6073,
- 6076, 6079, 6082, 6085, 6088, 6091, 6095, 6099, 6103, 6107, 6111, 6115,
- 6119, 6123, 6127, 6131, 6135, 6139, 6143, 6147, 6151, 6155, 6158, 6161,
- 6165, 6168, 6171, 6174, 6178, 6182, 6185, 6188, 6191, 6194, 6197, 6202,
- 6205, 6208, 6211, 6214, 6217, 6220, 6223, 6226, 6230, 6235, 6238, 6241,
- 6244, 6247, 6250, 6253, 6256, 6260, 6264, 6268, 6272, 6275, 6278, 6281,
- 6284, 6287, 6290, 6293, 6296, 6299, 6302, 6306, 6310, 6313, 6317, 6321,
- 6325, 6328, 6332, 6336, 6341, 6344, 6348, 6352, 6356, 6360, 6366, 6373,
- 6376, 6379, 6382, 6385, 6388, 6391, 6394, 6397, 6400, 6403, 6406, 6409,
- 6412, 6415, 6418, 6421, 6424, 6427, 6432, 6435, 6438, 6441, 6446, 6450,
- 6453, 6456, 6459, 6462, 6465, 6468, 6471, 6474, 6477, 6480, 6484, 6487,
- 6490, 6494, 6498, 6501, 6506, 6510, 6513, 6516, 6519, 6522, 6526, 6530,
- 6533, 6536, 6539, 6542, 6545, 6548, 6551, 6554, 6557, 6561, 6565, 6569,
- 6573, 6577, 6581, 6585, 6589, 6593, 6597, 6601, 6605, 6609, 6613, 6617,
- 6621, 6625, 6629, 6633, 6637, 6641, 6645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6649, 6651, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6653, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6655, 6657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6659, 6661, 6663, 6665, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6669, 6671, 6673, 6675, 6677, 6679, 6681, 6683,
- 6685, 6687, 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707,
- 6709, 6711, 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731,
- 6733, 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755,
- 6757, 6759, 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779,
- 6781, 6783, 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803,
- 6805, 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827,
- 6829, 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851,
- 6853, 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875,
- 6877, 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899,
- 6901, 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923,
- 6925, 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6941, 6943, 6945, 6947,
- 6949, 6951, 6953, 6955, 6957, 6959, 6961, 6963, 6965, 6967, 6969, 6971,
- 6973, 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, 6995,
- 6997, 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, 7017, 7019,
- 7021, 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, 7041, 7043,
- 7045, 7047, 7049, 7051, 7053, 7055, 7057, 7059, 7061, 7063, 7065, 7067,
- 7069, 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, 7087, 7089, 7091,
- 7093, 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, 7111, 7113, 7115,
- 7117, 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139,
- 7141, 7143, 7145, 7147, 7149, 7151, 7153, 7155, 7157, 7159, 7161, 7163,
- 7165, 7167, 7169, 7171, 7173, 7175, 7177, 7179, 7181, 7183, 7185, 7187,
- 7189, 7191, 7193, 7195, 7197, 7199, 7201, 7203, 7205, 7207, 0, 0, 7209,
- 0, 7211, 0, 0, 7213, 7215, 7217, 7219, 7221, 7223, 7225, 7227, 7229,
- 7231, 0, 7233, 0, 7235, 0, 0, 7237, 7239, 0, 0, 0, 7241, 7243, 7245,
- 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, 7267, 7269,
- 7271, 7273, 7275, 7277, 7279, 7281, 7283, 7285, 7287, 7289, 7291, 7293,
- 7295, 7297, 7299, 7301, 7303, 7305, 7307, 7309, 7311, 7313, 7315, 7317,
- 7319, 7321, 7323, 7325, 7327, 7329, 7331, 7333, 7335, 7337, 7339, 7341,
- 7343, 7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, 7361, 7363, 7365,
- 7367, 7369, 7371, 7373, 7375, 0, 0, 7377, 7379, 7381, 7383, 7385, 7387,
- 7389, 7391, 7393, 7395, 7397, 7399, 7401, 7403, 7405, 7407, 7409, 7411,
- 7413, 7415, 7417, 7419, 7421, 7423, 7425, 7427, 7429, 7431, 7433, 7435,
- 7437, 7439, 7441, 7443, 7445, 7447, 7449, 7451, 7453, 7455, 7457, 7459,
- 7461, 7463, 7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, 7481, 7483,
- 7485, 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503, 7505, 7507,
- 7509, 7511, 7513, 7515, 7517, 7519, 7521, 7523, 7525, 7527, 7529, 7531,
- 7533, 7535, 7537, 7539, 7541, 7543, 7545, 7547, 7549, 7551, 7553, 7555,
- 7557, 7559, 7561, 7563, 7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579,
- 7581, 7583, 7585, 7587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7589,
- 7592, 7595, 7598, 7602, 7606, 7609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7612, 7615, 7618, 7621, 7624, 0, 0, 0, 0, 0, 7627, 0, 7630, 7633, 7635,
- 7637, 7639, 7641, 7643, 7645, 7647, 7649, 7651, 7653, 7656, 7659, 7662,
- 7665, 7668, 7671, 7674, 7677, 7680, 7683, 7686, 7689, 0, 7692, 7695,
- 7698, 7701, 7704, 0, 7707, 0, 7710, 7713, 0, 7716, 7719, 0, 7722, 7725,
- 7728, 7731, 7734, 7737, 7740, 7743, 7746, 7749, 7752, 7754, 7756, 7758,
- 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782,
- 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806,
- 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830,
- 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854,
- 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878,
- 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902,
- 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926,
- 7928, 7930, 7932, 7934, 7936, 7938, 7940, 7942, 7944, 7946, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7948, 7950, 7952, 7954, 7956, 7958, 7960, 7962, 7964,
- 7966, 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, 7984, 7986, 7988,
- 7990, 7992, 7994, 7997, 8000, 8003, 8006, 8009, 8012, 8015, 8018, 8021,
- 8024, 8027, 8030, 8033, 8036, 8039, 8042, 8045, 8048, 8050, 8052, 8054,
- 8056, 8059, 8062, 8065, 8068, 8071, 8074, 8077, 8080, 8083, 8086, 8089,
- 8092, 8095, 8098, 8101, 8104, 8107, 8110, 8113, 8116, 8119, 8122, 8125,
- 8128, 8131, 8134, 8137, 8140, 8143, 8146, 8149, 8152, 8155, 8158, 8161,
- 8164, 8167, 8170, 8173, 8176, 8179, 8182, 8185, 8188, 8191, 8194, 8197,
- 8200, 8203, 8206, 8209, 8212, 8215, 8218, 8221, 8224, 8227, 8230, 8233,
- 8236, 8239, 8242, 8245, 8248, 8251, 8254, 8257, 8260, 8263, 8266, 8269,
- 8272, 8275, 8278, 8281, 8284, 8287, 8290, 8293, 8296, 8299, 8302, 8305,
- 8308, 8311, 8314, 8317, 8320, 8323, 8326, 8329, 8332, 8335, 8338, 8342,
- 8346, 8350, 8354, 8358, 8362, 8365, 8368, 8371, 8374, 8377, 8380, 8383,
- 8386, 8389, 8392, 8395, 8398, 8401, 8404, 8407, 8410, 8413, 8416, 8419,
- 8422, 8425, 8428, 8431, 8434, 8437, 8440, 8443, 8446, 8449, 8452, 8455,
- 8458, 8461, 8464, 8467, 8470, 8473, 8476, 8479, 8482, 8485, 8488, 8491,
- 8494, 8497, 8500, 8503, 8506, 8509, 8512, 8515, 8518, 8521, 8524, 8527,
- 8530, 8533, 8536, 8539, 8542, 8545, 8548, 8551, 8554, 8557, 8560, 8563,
- 8566, 8569, 8572, 8575, 8578, 8581, 8584, 8587, 8590, 8593, 8596, 8599,
- 8602, 8605, 8608, 8611, 8614, 8617, 8620, 8623, 8626, 8629, 8632, 8635,
- 8638, 8641, 8644, 8647, 8650, 8653, 8656, 8659, 8662, 8665, 8668, 8671,
- 8674, 8677, 8680, 8683, 8686, 8689, 8692, 8695, 8698, 8701, 8704, 8707,
- 8710, 8713, 8716, 8719, 8722, 8725, 8728, 8731, 8734, 8737, 8740, 8743,
- 8746, 8749, 8752, 8755, 8758, 8761, 8764, 8767, 8770, 8773, 8776, 8779,
- 8782, 8785, 8788, 8792, 8796, 8800, 8803, 8806, 8809, 8812, 8815, 8818,
- 8821, 8824, 8827, 8830, 8833, 8836, 8839, 8842, 8845, 8848, 8851, 8854,
- 8857, 8860, 8863, 8866, 8869, 8872, 8875, 8878, 8881, 8884, 8887, 8890,
- 8893, 8896, 8899, 8902, 8905, 8908, 8911, 8914, 8917, 8920, 8923, 8926,
- 8929, 8932, 8935, 8938, 8941, 8944, 8947, 8950, 8953, 8956, 8959, 8962,
- 8965, 8968, 8971, 8974, 8977, 8980, 8983, 8986, 8989, 8992, 8995, 8998,
- 9001, 9004, 9007, 9010, 9013, 9016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9019, 9023, 9027, 9031, 9035, 9039, 9043, 9047, 9051,
- 9055, 9059, 9063, 9067, 9071, 9075, 9079, 9083, 9087, 9091, 9095, 9099,
- 9103, 9107, 9111, 9115, 9119, 9123, 9127, 9131, 9135, 9139, 9143, 9147,
- 9151, 9155, 9159, 9163, 9167, 9171, 9175, 9179, 9183, 9187, 9191, 9195,
- 9199, 9203, 9207, 9211, 9215, 9219, 9223, 9227, 9231, 9235, 9239, 9243,
- 9247, 9251, 9255, 9259, 9263, 9267, 9271, 0, 0, 9275, 9279, 9283, 9287,
- 9291, 9295, 9299, 9303, 9307, 9311, 9315, 9319, 9323, 9327, 9331, 9335,
- 9339, 9343, 9347, 9351, 9355, 9359, 9363, 9367, 9371, 9375, 9379, 9383,
- 9387, 9391, 9395, 9399, 9403, 9407, 9411, 9415, 9419, 9423, 9427, 9431,
- 9435, 9439, 9443, 9447, 9451, 9455, 9459, 9463, 9467, 9471, 9475, 9479,
- 9483, 9487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9491, 9495,
- 9499, 9504, 9509, 9514, 9519, 9524, 9529, 9534, 9538, 9557, 9566, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9571, 9573, 9575,
- 9577, 9579, 9581, 9583, 9585, 9587, 9589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9591, 9593, 9595, 9597, 9599, 9601,
- 9603, 9605, 9607, 9609, 9611, 9613, 9615, 9617, 9619, 9621, 9623, 9625,
- 9627, 9629, 9631, 0, 0, 9633, 9635, 9637, 9639, 9641, 9643, 9645, 9647,
- 9649, 9651, 9653, 9655, 0, 9657, 9659, 9661, 9663, 9665, 9667, 9669,
- 9671, 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, 9693,
- 0, 9695, 9697, 9699, 9701, 0, 0, 0, 0, 9703, 9706, 9709, 0, 9712, 0,
- 9715, 9718, 9721, 9724, 9727, 9730, 9733, 9736, 9739, 9742, 9745, 9747,
- 9749, 9751, 9753, 9755, 9757, 9759, 9761, 9763, 9765, 9767, 9769, 9771,
- 9773, 9775, 9777, 9779, 9781, 9783, 9785, 9787, 9789, 9791, 9793, 9795,
- 9797, 9799, 9801, 9803, 9805, 9807, 9809, 9811, 9813, 9815, 9817, 9819,
- 9821, 9823, 9825, 9827, 9829, 9831, 9833, 9835, 9837, 9839, 9841, 9843,
- 9845, 9847, 9849, 9851, 9853, 9855, 9857, 9859, 9861, 9863, 9865, 9867,
- 9869, 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, 9889, 9891,
- 9893, 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9909, 9911, 9913, 9915,
- 9917, 9919, 9921, 9923, 9925, 9927, 9929, 9931, 9933, 9935, 9937, 9939,
- 9941, 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, 9961, 9963,
- 9965, 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9982, 9985, 9988, 9991,
- 9994, 9997, 10000, 0, 0, 0, 0, 10003, 10005, 10007, 10009, 10011, 10013,
- 10015, 10017, 10019, 10021, 10023, 10025, 10027, 10029, 10031, 10033,
- 10035, 10037, 10039, 10041, 10043, 10045, 10047, 10049, 10051, 10053,
- 10055, 10057, 10059, 10061, 10063, 10065, 10067, 10069, 10071, 10073,
- 10075, 10077, 10079, 10081, 10083, 10085, 10087, 10089, 10091, 10093,
- 10095, 10097, 10099, 10101, 10103, 10105, 10107, 10109, 10111, 10113,
- 10115, 10117, 10119, 10121, 10123, 10125, 10127, 10129, 10131, 10133,
- 10135, 10137, 10139, 10141, 10143, 10145, 10147, 10149, 10151, 10153,
- 10155, 10157, 10159, 10161, 10163, 10165, 10167, 10169, 10171, 10173,
- 10175, 10177, 10179, 10181, 10183, 10185, 10187, 10189, 10191, 10193,
- 10195, 10197, 10199, 10201, 10203, 10205, 10207, 10209, 10211, 10213,
- 10215, 10217, 10219, 10221, 10223, 10225, 10227, 10229, 10231, 10233,
- 10235, 10237, 10239, 10241, 10243, 10245, 10247, 10249, 10251, 10253,
- 10255, 10257, 10259, 10261, 10263, 10265, 10267, 10269, 10271, 10273,
- 10275, 10277, 10279, 10281, 10283, 10285, 10287, 10289, 10291, 10293,
- 10295, 10297, 10299, 10301, 10303, 10305, 10307, 10309, 10311, 10313,
- 10315, 10317, 10319, 10321, 10323, 10325, 10327, 10329, 10331, 10333,
- 10335, 10337, 10339, 10341, 10343, 10345, 10347, 10349, 10351, 10353,
- 10355, 10357, 10359, 10361, 10363, 10365, 10367, 10369, 10371, 10373,
- 10375, 10377, 10379, 10381, 0, 0, 0, 10383, 10385, 10387, 10389, 10391,
- 10393, 0, 0, 10395, 10397, 10399, 10401, 10403, 10405, 0, 0, 10407,
- 10409, 10411, 10413, 10415, 10417, 0, 0, 10419, 10421, 10423, 0, 0, 0,
- 10425, 10427, 10429, 10431, 10433, 10435, 10437, 0, 10439, 10441, 10443,
- 10445, 10447, 10449, 10451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10453, 0, 10456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10462, 10465, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 10468, 10471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10474,
- 10477, 0, 10480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 10483, 10486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10489, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10492, 10495, 10498, 10501,
- 10504, 10507, 10510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10513,
- 10516, 10519, 10522, 10525, 10528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 10531, 10533, 10535, 10537, 10539, 10541, 10543, 10545, 10547,
- 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567,
- 10569, 10571, 10573, 10575, 10577, 10579, 10581, 10583, 10585, 10587,
- 10589, 10591, 10593, 10595, 10597, 10599, 10601, 10603, 10605, 10607,
- 10609, 10611, 10613, 10615, 10617, 10619, 10621, 10623, 10625, 10627,
- 10629, 10631, 10633, 10635, 10637, 10639, 10641, 10643, 10645, 10647,
- 10649, 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, 10667,
- 10669, 10671, 10673, 10675, 10677, 10679, 10681, 10683, 10685, 10687,
- 10689, 10691, 10693, 10695, 10697, 10699, 0, 10701, 10703, 10705, 10707,
- 10709, 10711, 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727,
- 10729, 10731, 10733, 10735, 10737, 10739, 10741, 10743, 10745, 10747,
- 10749, 10751, 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767,
- 10769, 10771, 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787,
- 10789, 10791, 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807,
- 10809, 10811, 10813, 10815, 10817, 10819, 10821, 10823, 10825, 10827,
- 10829, 10831, 10833, 10835, 10837, 10839, 10841, 0, 10843, 10845, 0, 0,
- 10847, 0, 0, 10849, 10851, 0, 0, 10853, 10855, 10857, 10859, 0, 10861,
- 10863, 10865, 10867, 10869, 10871, 10873, 10875, 10877, 10879, 10881,
- 10883, 0, 10885, 0, 10887, 10889, 10891, 10893, 10895, 10897, 10899, 0,
- 10901, 10903, 10905, 10907, 10909, 10911, 10913, 10915, 10917, 10919,
- 10921, 10923, 10925, 10927, 10929, 10931, 10933, 10935, 10937, 10939,
- 10941, 10943, 10945, 10947, 10949, 10951, 10953, 10955, 10957, 10959,
- 10961, 10963, 10965, 10967, 10969, 10971, 10973, 10975, 10977, 10979,
- 10981, 10983, 10985, 10987, 10989, 10991, 10993, 10995, 10997, 10999,
- 11001, 11003, 11005, 11007, 11009, 11011, 11013, 11015, 11017, 11019,
- 11021, 11023, 11025, 11027, 11029, 0, 11031, 11033, 11035, 11037, 0, 0,
- 11039, 11041, 11043, 11045, 11047, 11049, 11051, 11053, 0, 11055, 11057,
- 11059, 11061, 11063, 11065, 11067, 0, 11069, 11071, 11073, 11075, 11077,
- 11079, 11081, 11083, 11085, 11087, 11089, 11091, 11093, 11095, 11097,
- 11099, 11101, 11103, 11105, 11107, 11109, 11111, 11113, 11115, 11117,
- 11119, 11121, 11123, 0, 11125, 11127, 11129, 11131, 0, 11133, 11135,
- 11137, 11139, 11141, 0, 11143, 0, 0, 0, 11145, 11147, 11149, 11151,
- 11153, 11155, 11157, 0, 11159, 11161, 11163, 11165, 11167, 11169, 11171,
- 11173, 11175, 11177, 11179, 11181, 11183, 11185, 11187, 11189, 11191,
- 11193, 11195, 11197, 11199, 11201, 11203, 11205, 11207, 11209, 11211,
- 11213, 11215, 11217, 11219, 11221, 11223, 11225, 11227, 11229, 11231,
- 11233, 11235, 11237, 11239, 11241, 11243, 11245, 11247, 11249, 11251,
- 11253, 11255, 11257, 11259, 11261, 11263, 11265, 11267, 11269, 11271,
- 11273, 11275, 11277, 11279, 11281, 11283, 11285, 11287, 11289, 11291,
- 11293, 11295, 11297, 11299, 11301, 11303, 11305, 11307, 11309, 11311,
- 11313, 11315, 11317, 11319, 11321, 11323, 11325, 11327, 11329, 11331,
- 11333, 11335, 11337, 11339, 11341, 11343, 11345, 11347, 11349, 11351,
- 11353, 11355, 11357, 11359, 11361, 11363, 11365, 11367, 11369, 11371,
- 11373, 11375, 11377, 11379, 11381, 11383, 11385, 11387, 11389, 11391,
- 11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411,
- 11413, 11415, 11417, 11419, 11421, 11423, 11425, 11427, 11429, 11431,
- 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451,
- 11453, 11455, 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471,
- 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487, 11489, 11491,
- 11493, 11495, 11497, 11499, 11501, 11503, 11505, 11507, 11509, 11511,
- 11513, 11515, 11517, 11519, 11521, 11523, 11525, 11527, 11529, 11531,
- 11533, 11535, 11537, 11539, 11541, 11543, 11545, 11547, 11549, 11551,
- 11553, 11555, 11557, 11559, 11561, 11563, 11565, 11567, 11569, 11571,
- 11573, 11575, 11577, 11579, 11581, 11583, 11585, 11587, 11589, 11591,
- 11593, 11595, 11597, 11599, 11601, 11603, 11605, 11607, 11609, 11611,
- 11613, 11615, 11617, 11619, 11621, 11623, 11625, 11627, 11629, 11631,
- 11633, 11635, 11637, 11639, 11641, 11643, 11645, 11647, 11649, 11651,
- 11653, 11655, 11657, 11659, 11661, 11663, 11665, 11667, 11669, 11671,
- 11673, 11675, 11677, 11679, 11681, 11683, 11685, 11687, 11689, 11691,
- 11693, 11695, 11697, 11699, 11701, 11703, 11705, 11707, 11709, 11711,
- 11713, 11715, 11717, 11719, 11721, 11723, 11725, 11727, 11729, 11731,
- 11733, 11735, 11737, 11739, 11741, 11743, 11745, 11747, 11749, 11751,
- 11753, 11755, 11757, 11759, 11761, 11763, 11765, 11767, 11769, 11771,
- 11773, 11775, 11777, 11779, 11781, 11783, 11785, 11787, 11789, 11791,
- 11793, 11795, 11797, 11799, 11801, 11803, 11805, 11807, 11809, 11811,
- 11813, 11815, 11817, 11819, 11821, 11823, 11825, 11827, 11829, 11831,
- 11833, 11835, 11837, 0, 0, 11839, 11841, 11843, 11845, 11847, 11849,
- 11851, 11853, 11855, 11857, 11859, 11861, 11863, 11865, 11867, 11869,
- 11871, 11873, 11875, 11877, 11879, 11881, 11883, 11885, 11887, 11889,
- 11891, 11893, 11895, 11897, 11899, 11901, 11903, 11905, 11907, 11909,
- 11911, 11913, 11915, 11917, 11919, 11921, 11923, 11925, 11927, 11929,
- 11931, 11933, 11935, 11937, 11939, 11941, 11943, 11945, 11947, 11949,
- 11951, 11953, 11955, 11957, 11959, 11961, 11963, 11965, 11967, 11969,
- 11971, 11973, 11975, 11977, 11979, 11981, 11983, 11985, 11987, 11989,
- 11991, 11993, 11995, 11997, 11999, 12001, 12003, 12005, 12007, 12009,
- 12011, 12013, 12015, 12017, 12019, 12021, 12023, 12025, 12027, 12029,
- 12031, 12033, 12035, 12037, 12039, 12041, 12043, 12045, 12047, 12049,
- 12051, 12053, 12055, 12057, 12059, 12061, 12063, 12065, 12067, 12069,
- 12071, 12073, 12075, 12077, 12079, 12081, 12083, 12085, 12087, 12089,
- 12091, 12093, 12095, 12097, 12099, 12101, 12103, 12105, 12107, 12109,
- 12111, 12113, 12115, 12117, 12119, 12121, 12123, 12125, 12127, 12129,
- 12131, 12133, 12135, 12137, 12139, 12141, 12143, 12145, 12147, 12149,
- 12151, 12153, 12155, 12157, 12159, 12161, 12163, 12165, 12167, 12169,
- 12171, 12173, 12175, 12177, 12179, 12181, 12183, 12185, 12187, 12189,
- 12191, 12193, 12195, 12197, 12199, 12201, 12203, 12205, 12207, 12209,
- 12211, 12213, 12215, 12217, 12219, 12221, 12223, 12225, 12227, 12229,
- 12231, 12233, 12235, 12237, 12239, 12241, 12243, 12245, 12247, 12249,
- 12251, 12253, 12255, 12257, 12259, 12261, 12263, 12265, 12267, 12269,
- 12271, 12273, 12275, 12277, 12279, 12281, 12283, 12285, 12287, 12289,
- 12291, 12293, 12295, 12297, 12299, 12301, 12303, 12305, 12307, 12309,
- 12311, 12313, 12315, 12317, 12319, 12321, 12323, 12325, 12327, 12329,
- 12331, 12333, 12335, 12337, 12339, 12341, 12343, 12345, 12347, 12349,
- 12351, 12353, 12355, 12357, 12359, 12361, 12363, 12365, 12367, 12369,
- 12371, 12373, 12375, 12377, 12379, 12381, 12383, 12385, 12387, 12389,
- 12391, 12393, 12395, 12397, 12399, 12401, 12403, 12405, 12407, 12409,
- 12411, 12413, 12415, 12417, 12419, 12421, 0, 0, 12423, 12425, 12427,
- 12429, 12431, 12433, 12435, 12437, 12439, 12441, 12443, 12445, 12447,
- 12449, 12451, 12453, 12455, 12457, 12459, 12461, 12463, 12465, 12467,
- 12469, 12471, 12473, 12475, 12477, 12479, 12481, 12483, 12485, 12487,
- 12489, 12491, 12493, 12495, 12497, 12499, 12501, 12503, 12505, 12507,
- 12509, 12511, 12513, 12515, 12517, 12519, 12521, 12523, 12525, 12527,
- 12529, 0, 12531, 12533, 12535, 12537, 12539, 12541, 12543, 12545, 12547,
- 12549, 12551, 12553, 12555, 12557, 12559, 12561, 12563, 12565, 12567,
- 12569, 12571, 12573, 12575, 12577, 12579, 12581, 12583, 0, 12585, 12587,
- 0, 12589, 0, 0, 12591, 0, 12593, 12595, 12597, 12599, 12601, 12603,
- 12605, 12607, 12609, 12611, 0, 12613, 12615, 12617, 12619, 0, 12621, 0,
- 12623, 0, 0, 0, 0, 0, 0, 12625, 0, 0, 0, 0, 12627, 0, 12629, 0, 12631, 0,
- 12633, 12635, 12637, 0, 12639, 12641, 0, 12643, 0, 0, 12645, 0, 12647, 0,
- 12649, 0, 12651, 0, 12653, 0, 12655, 12657, 0, 12659, 0, 0, 12661, 12663,
- 12665, 12667, 0, 12669, 12671, 12673, 12675, 12677, 12679, 12681, 0,
- 12683, 12685, 12687, 12689, 0, 12691, 12693, 12695, 12697, 0, 12699, 0,
- 12701, 12703, 12705, 12707, 12709, 12711, 12713, 12715, 12717, 12719, 0,
- 12721, 12723, 12725, 12727, 12729, 12731, 12733, 12735, 12737, 12739,
- 12741, 12743, 12745, 12747, 12749, 12751, 12753, 0, 0, 0, 0, 0, 12755,
- 12757, 12759, 0, 12761, 12763, 12765, 12767, 12769, 0, 12771, 12773,
- 12775, 12777, 12779, 12781, 12783, 12785, 12787, 12789, 12791, 12793,
- 12795, 12797, 12799, 12801, 12803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 12805, 12808, 12811, 12814, 12817, 12820, 12823,
- 12826, 12829, 12832, 12835, 0, 0, 0, 0, 0, 12838, 12842, 12846, 12850,
- 12854, 12858, 12862, 12866, 12870, 12874, 12878, 12882, 12886, 12890,
- 12894, 12898, 12902, 12906, 12910, 12914, 12918, 12922, 12926, 12930,
- 12934, 12938, 12942, 12946, 12948, 12950, 12953, 0, 12956, 12958, 12960,
- 12962, 12964, 12966, 12968, 12970, 12972, 12974, 12976, 12978, 12980,
- 12982, 12984, 12986, 12988, 12990, 12992, 12994, 12996, 12998, 13000,
- 13002, 13004, 13006, 13008, 13011, 13014, 13017, 13020, 13024, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13027, 13030, 13033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13036, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13039, 13042, 13045, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 13047, 13049, 13051, 13053, 13055, 13057, 13059,
- 13061, 13063, 13065, 13067, 13069, 13071, 13073, 13075, 13077, 13079,
- 13081, 13083, 13085, 13087, 13089, 13091, 13093, 13095, 13097, 13099,
- 13101, 13103, 13105, 13107, 13109, 13111, 13113, 13115, 13117, 13119,
- 13121, 13123, 13125, 13127, 13129, 13131, 13133, 0, 0, 0, 0, 13135,
- 13139, 13143, 13147, 13151, 13155, 13159, 13163, 13167, 0, 0, 0, 0, 0, 0,
- 0, 13171, 13173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13175, 13177,
- 13179, 13181, 13183, 13185, 13187, 13189, 13191, 13193, 0, 0, 0, 0, 0, 0,
- 13195, 13197, 13199, 13201, 13203, 13205, 13207, 13209, 13211, 13213,
- 13215, 13217, 13219, 13221, 13223, 13225, 13227, 13229, 13231, 13233,
- 13235, 13237, 13239, 13241, 13243, 13245, 13247, 13249, 13251, 13253,
- 13255, 13257, 13259, 13261, 13263, 13265, 13267, 13269, 13271, 13273,
- 13275, 13277, 13279, 13281, 13283, 13285, 13287, 13289, 13291, 13293,
- 13295, 13297, 13299, 13301, 13303, 13305, 13307, 13309, 13311, 13313,
- 13315, 13317, 13319, 13321, 13323, 13325, 13327, 13329, 13331, 13333,
- 13335, 13337, 13339, 13341, 13343, 13345, 13347, 13349, 13351, 13353,
- 13355, 13357, 13359, 13361, 13363, 13365, 13367, 13369, 13371, 13373,
- 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393,
- 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13413,
- 13415, 13417, 13419, 13421, 13423, 13425, 13427, 13429, 13431, 13433,
- 13435, 13437, 13439, 13441, 13443, 13445, 13447, 13449, 13451, 13453,
- 13455, 13457, 13459, 13461, 13463, 13465, 13467, 13469, 13471, 13473,
- 13475, 13477, 13479, 13481, 13483, 13485, 13487, 13489, 13491, 13493,
- 13495, 13497, 13499, 13501, 13503, 13505, 13507, 13509, 13511, 13513,
- 13515, 13517, 13519, 13521, 13523, 13525, 13527, 13529, 13531, 13533,
- 13535, 13537, 13539, 13541, 13543, 13545, 13547, 13549, 13551, 13553,
- 13555, 13557, 13559, 13561, 13563, 13565, 13567, 13569, 13571, 13573,
- 13575, 13577, 13579, 13581, 13583, 13585, 13587, 13589, 13591, 13593,
- 13595, 13597, 13599, 13601, 13603, 13605, 13607, 13609, 13611, 13613,
- 13615, 13617, 13619, 13621, 13623, 13625, 13627, 13629, 13631, 13633,
- 13635, 13637, 13639, 13641, 13643, 13645, 13647, 13649, 13651, 13653,
- 13655, 13657, 13659, 13661, 13663, 13665, 13667, 13669, 13671, 13673,
- 13675, 13677, 13679, 13681, 13683, 13685, 13687, 13689, 13691, 13693,
- 13695, 13697, 13699, 13701, 13703, 13705, 13707, 13709, 13711, 13713,
- 13715, 13717, 13719, 13721, 13723, 13725, 13727, 13729, 13731, 13733,
- 13735, 13737, 13739, 13741, 13743, 13745, 13747, 13749, 13751, 13753,
- 13755, 13757, 13759, 13761, 13763, 13765, 13767, 13769, 13771, 13773,
- 13775, 13777, 13779, 13781, 13783, 13785, 13787, 13789, 13791, 13793,
- 13795, 13797, 13799, 13801, 13803, 13805, 13807, 13809, 13811, 13813,
- 13815, 13817, 13819, 13821, 13823, 13825, 13827, 13829, 13831, 13833,
- 13835, 13837, 13839, 13841, 13843, 13845, 13847, 13849, 13851, 13853,
- 13855, 13857, 13859, 13861, 13863, 13865, 13867, 13869, 13871, 13873,
- 13875, 13877, 13879, 13881, 13883, 13885, 13887, 13889, 13891, 13893,
- 13895, 13897, 13899, 13901, 13903, 13905, 13907, 13909, 13911, 13913,
- 13915, 13917, 13919, 13921, 13923, 13925, 13927, 13929, 13931, 13933,
- 13935, 13937, 13939, 13941, 13943, 13945, 13947, 13949, 13951, 13953,
- 13955, 13957, 13959, 13961, 13963, 13965, 13967, 13969, 13971, 13973,
- 13975, 13977, 13979, 13981, 13983, 13985, 13987, 13989, 13991, 13993,
- 13995, 13997, 13999, 14001, 14003, 14005, 14007, 14009, 14011, 14013,
- 14015, 14017, 14019, 14021, 14023, 14025, 14027, 14029, 14031, 14033,
- 14035, 14037, 14039, 14041, 14043, 14045, 14047, 14049, 14051, 14053,
- 14055, 14057, 14059, 14061, 14063, 14065, 14067, 14069, 14071, 14073,
- 14075, 14077, 14079, 14081, 14083, 14085, 14087, 14089, 14091, 14093,
- 14095, 14097, 14099, 14101, 14103, 14105, 14107, 14109, 14111, 14113,
- 14115, 14117, 14119, 14121, 14123, 14125, 14127, 14129, 14131, 14133,
- 14135, 14137, 14139, 14141, 14143, 14145, 14147, 14149, 14151, 14153,
- 14155, 14157, 14159, 14161, 14163, 14165, 14167, 14169, 14171, 14173,
- 14175, 14177, 14179, 14181, 14183, 14185, 14187, 14189, 14191, 14193,
- 14195, 14197, 14199, 14201, 14203, 14205, 14207, 14209, 14211, 14213,
- 14215, 14217, 14219, 14221, 14223, 14225, 14227, 14229, 14231, 14233,
- 14235, 14237, 14239, 14241, 14243, 14245, 14247, 14249, 14251, 14253,
- 14255, 14257, 14259, 14261, 14263, 14265, 14267, 14269, 14271, 14273,
- 14275, 14277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,
+ 5664, 5666, 5668, 5671, 5676, 5681, 5686, 5690, 5695, 5699, 5703, 5709,
+ 5714, 5718, 5722, 5726, 5731, 5736, 5740, 5744, 5747, 5751, 5756, 5761,
+ 5764, 5770, 5777, 5783, 5787, 5793, 5799, 5804, 5808, 5812, 5816, 5821,
+ 5827, 5832, 5836, 5840, 5844, 5847, 5850, 5853, 5856, 5860, 5864, 5870,
+ 5874, 5879, 5885, 5889, 5892, 5895, 5901, 5906, 5912, 5916, 5922, 5925,
+ 5929, 5933, 5937, 5941, 5945, 5950, 5954, 5957, 5961, 5965, 5969, 5974,
+ 5978, 5982, 5986, 5992, 5997, 6000, 6006, 6009, 6014, 6019, 6023, 6027,
+ 6031, 6036, 6039, 6043, 6048, 6051, 6057, 6061, 6064, 6067, 6070, 6073,
+ 6076, 6079, 6082, 6085, 6088, 6091, 6095, 6099, 6103, 6107, 6111, 6115,
+ 6119, 6123, 6127, 6131, 6135, 6139, 6143, 6147, 6151, 6155, 6158, 6161,
+ 6165, 6168, 6171, 6174, 6178, 6182, 6185, 6188, 6191, 6194, 6197, 6202,
+ 6205, 6208, 6211, 6214, 6217, 6220, 6223, 6226, 6230, 6235, 6238, 6241,
+ 6244, 6247, 6250, 6253, 6256, 6260, 6264, 6268, 6272, 6275, 6278, 6281,
+ 6284, 6287, 6290, 6293, 6296, 6299, 6302, 6306, 6310, 6313, 6317, 6321,
+ 6325, 6328, 6332, 6336, 6341, 6344, 6348, 6352, 6356, 6360, 6366, 6373,
+ 6376, 6379, 6382, 6385, 6388, 6391, 6394, 6397, 6400, 6403, 6406, 6409,
+ 6412, 6415, 6418, 6421, 6424, 6427, 6432, 6435, 6438, 6441, 6446, 6450,
+ 6453, 6456, 6459, 6462, 6465, 6468, 6471, 6474, 6477, 6480, 6484, 6487,
+ 6490, 6494, 6498, 6501, 6506, 6510, 6513, 6516, 6519, 6522, 6526, 6530,
+ 6533, 6536, 6539, 6542, 6545, 6548, 6551, 6554, 6557, 6561, 6565, 6569,
+ 6573, 6577, 6581, 6585, 6589, 6593, 6597, 6601, 6605, 6609, 6613, 6617,
+ 6621, 6625, 6629, 6633, 6637, 6641, 6645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6649, 6651, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6653, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 6655, 6657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6659, 6661, 6663, 6665, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 6667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 6669, 6671, 6673, 6675, 6677, 6679, 6681, 6683,
+ 6685, 6687, 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707,
+ 6709, 6711, 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731,
+ 6733, 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755,
+ 6757, 6759, 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779,
+ 6781, 6783, 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803,
+ 6805, 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827,
+ 6829, 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851,
+ 6853, 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875,
+ 6877, 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899,
+ 6901, 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923,
+ 6925, 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6941, 6943, 6945, 6947,
+ 6949, 6951, 6953, 6955, 6957, 6959, 6961, 6963, 6965, 6967, 6969, 6971,
+ 6973, 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, 6995,
+ 6997, 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, 7017, 7019,
+ 7021, 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, 7041, 7043,
+ 7045, 7047, 7049, 7051, 7053, 7055, 7057, 7059, 7061, 7063, 7065, 7067,
+ 7069, 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, 7087, 7089, 7091,
+ 7093, 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, 7111, 7113, 7115,
+ 7117, 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139,
+ 7141, 7143, 7145, 7147, 7149, 7151, 7153, 7155, 7157, 7159, 7161, 7163,
+ 7165, 7167, 7169, 7171, 7173, 7175, 7177, 7179, 7181, 7183, 7185, 7187,
+ 7189, 7191, 7193, 7195, 7197, 7199, 7201, 7203, 7205, 7207, 0, 0, 7209,
+ 0, 7211, 0, 0, 7213, 7215, 7217, 7219, 7221, 7223, 7225, 7227, 7229,
+ 7231, 0, 7233, 0, 7235, 0, 0, 7237, 7239, 0, 0, 0, 7241, 7243, 7245,
+ 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, 7267, 7269,
+ 7271, 7273, 7275, 7277, 7279, 7281, 7283, 7285, 7287, 7289, 7291, 7293,
+ 7295, 7297, 7299, 7301, 7303, 7305, 7307, 7309, 7311, 7313, 7315, 7317,
+ 7319, 7321, 7323, 7325, 7327, 7329, 7331, 7333, 7335, 7337, 7339, 7341,
+ 7343, 7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, 7361, 7363, 7365,
+ 7367, 7369, 7371, 7373, 7375, 0, 0, 7377, 7379, 7381, 7383, 7385, 7387,
+ 7389, 7391, 7393, 7395, 7397, 7399, 7401, 7403, 7405, 7407, 7409, 7411,
+ 7413, 7415, 7417, 7419, 7421, 7423, 7425, 7427, 7429, 7431, 7433, 7435,
+ 7437, 7439, 7441, 7443, 7445, 7447, 7449, 7451, 7453, 7455, 7457, 7459,
+ 7461, 7463, 7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, 7481, 7483,
+ 7485, 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503, 7505, 7507,
+ 7509, 7511, 7513, 7515, 7517, 7519, 7521, 7523, 7525, 7527, 7529, 7531,
+ 7533, 7535, 7537, 7539, 7541, 7543, 7545, 7547, 7549, 7551, 7553, 7555,
+ 7557, 7559, 7561, 7563, 7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579,
+ 7581, 7583, 7585, 7587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7589,
+ 7592, 7595, 7598, 7602, 7606, 7609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7612, 7615, 7618, 7621, 7624, 0, 0, 0, 0, 0, 7627, 0, 7630, 7633, 7635,
+ 7637, 7639, 7641, 7643, 7645, 7647, 7649, 7651, 7653, 7656, 7659, 7662,
+ 7665, 7668, 7671, 7674, 7677, 7680, 7683, 7686, 7689, 0, 7692, 7695,
+ 7698, 7701, 7704, 0, 7707, 0, 7710, 7713, 0, 7716, 7719, 0, 7722, 7725,
+ 7728, 7731, 7734, 7737, 7740, 7743, 7746, 7749, 7752, 7754, 7756, 7758,
+ 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782,
+ 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806,
+ 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830,
+ 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854,
+ 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878,
+ 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902,
+ 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926,
+ 7928, 7930, 7932, 7934, 7936, 7938, 7940, 7942, 7944, 7946, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7948, 7950, 7952, 7954, 7956, 7958, 7960, 7962, 7964,
+ 7966, 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, 7984, 7986, 7988,
+ 7990, 7992, 7994, 7997, 8000, 8003, 8006, 8009, 8012, 8015, 8018, 8021,
+ 8024, 8027, 8030, 8033, 8036, 8039, 8042, 8045, 8048, 8050, 8052, 8054,
+ 8056, 8059, 8062, 8065, 8068, 8071, 8074, 8077, 8080, 8083, 8086, 8089,
+ 8092, 8095, 8098, 8101, 8104, 8107, 8110, 8113, 8116, 8119, 8122, 8125,
+ 8128, 8131, 8134, 8137, 8140, 8143, 8146, 8149, 8152, 8155, 8158, 8161,
+ 8164, 8167, 8170, 8173, 8176, 8179, 8182, 8185, 8188, 8191, 8194, 8197,
+ 8200, 8203, 8206, 8209, 8212, 8215, 8218, 8221, 8224, 8227, 8230, 8233,
+ 8236, 8239, 8242, 8245, 8248, 8251, 8254, 8257, 8260, 8263, 8266, 8269,
+ 8272, 8275, 8278, 8281, 8284, 8287, 8290, 8293, 8296, 8299, 8302, 8305,
+ 8308, 8311, 8314, 8317, 8320, 8323, 8326, 8329, 8332, 8335, 8338, 8342,
+ 8346, 8350, 8354, 8358, 8362, 8365, 8368, 8371, 8374, 8377, 8380, 8383,
+ 8386, 8389, 8392, 8395, 8398, 8401, 8404, 8407, 8410, 8413, 8416, 8419,
+ 8422, 8425, 8428, 8431, 8434, 8437, 8440, 8443, 8446, 8449, 8452, 8455,
+ 8458, 8461, 8464, 8467, 8470, 8473, 8476, 8479, 8482, 8485, 8488, 8491,
+ 8494, 8497, 8500, 8503, 8506, 8509, 8512, 8515, 8518, 8521, 8524, 8527,
+ 8530, 8533, 8536, 8539, 8542, 8545, 8548, 8551, 8554, 8557, 8560, 8563,
+ 8566, 8569, 8572, 8575, 8578, 8581, 8584, 8587, 8590, 8593, 8596, 8599,
+ 8602, 8605, 8608, 8611, 8614, 8617, 8620, 8623, 8626, 8629, 8632, 8635,
+ 8638, 8641, 8644, 8647, 8650, 8653, 8656, 8659, 8662, 8665, 8668, 8671,
+ 8674, 8677, 8680, 8683, 8686, 8689, 8692, 8695, 8698, 8701, 8704, 8707,
+ 8710, 8713, 8716, 8719, 8722, 8725, 8728, 8731, 8734, 8737, 8740, 8743,
+ 8746, 8749, 8752, 8755, 8758, 8761, 8764, 8767, 8770, 8773, 8776, 8779,
+ 8782, 8785, 8788, 8792, 8796, 8800, 8803, 8806, 8809, 8812, 8815, 8818,
+ 8821, 8824, 8827, 8830, 8833, 8836, 8839, 8842, 8845, 8848, 8851, 8854,
+ 8857, 8860, 8863, 8866, 8869, 8872, 8875, 8878, 8881, 8884, 8887, 8890,
+ 8893, 8896, 8899, 8902, 8905, 8908, 8911, 8914, 8917, 8920, 8923, 8926,
+ 8929, 8932, 8935, 8938, 8941, 8944, 8947, 8950, 8953, 8956, 8959, 8962,
+ 8965, 8968, 8971, 8974, 8977, 8980, 8983, 8986, 8989, 8992, 8995, 8998,
+ 9001, 9004, 9007, 9010, 9013, 9016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9019, 9023, 9027, 9031, 9035, 9039, 9043, 9047, 9051,
+ 9055, 9059, 9063, 9067, 9071, 9075, 9079, 9083, 9087, 9091, 9095, 9099,
+ 9103, 9107, 9111, 9115, 9119, 9123, 9127, 9131, 9135, 9139, 9143, 9147,
+ 9151, 9155, 9159, 9163, 9167, 9171, 9175, 9179, 9183, 9187, 9191, 9195,
+ 9199, 9203, 9207, 9211, 9215, 9219, 9223, 9227, 9231, 9235, 9239, 9243,
+ 9247, 9251, 9255, 9259, 9263, 9267, 9271, 0, 0, 9275, 9279, 9283, 9287,
+ 9291, 9295, 9299, 9303, 9307, 9311, 9315, 9319, 9323, 9327, 9331, 9335,
+ 9339, 9343, 9347, 9351, 9355, 9359, 9363, 9367, 9371, 9375, 9379, 9383,
+ 9387, 9391, 9395, 9399, 9403, 9407, 9411, 9415, 9419, 9423, 9427, 9431,
+ 9435, 9439, 9443, 9447, 9451, 9455, 9459, 9463, 9467, 9471, 9475, 9479,
+ 9483, 9487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9491, 9495,
+ 9499, 9504, 9509, 9514, 9519, 9524, 9529, 9534, 9538, 9557, 9566, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9571, 9573, 9575,
+ 9577, 9579, 9581, 9583, 9585, 9587, 9589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9591, 9593, 9595, 9597, 9599, 9601,
+ 9603, 9605, 9607, 9609, 9611, 9613, 9615, 9617, 9619, 9621, 9623, 9625,
+ 9627, 9629, 9631, 0, 0, 9633, 9635, 9637, 9639, 9641, 9643, 9645, 9647,
+ 9649, 9651, 9653, 9655, 0, 9657, 9659, 9661, 9663, 9665, 9667, 9669,
+ 9671, 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, 9693,
+ 0, 9695, 9697, 9699, 9701, 0, 0, 0, 0, 9703, 9706, 9709, 0, 9712, 0,
+ 9715, 9718, 9721, 9724, 9727, 9730, 9733, 9736, 9739, 9742, 9745, 9747,
+ 9749, 9751, 9753, 9755, 9757, 9759, 9761, 9763, 9765, 9767, 9769, 9771,
+ 9773, 9775, 9777, 9779, 9781, 9783, 9785, 9787, 9789, 9791, 9793, 9795,
+ 9797, 9799, 9801, 9803, 9805, 9807, 9809, 9811, 9813, 9815, 9817, 9819,
+ 9821, 9823, 9825, 9827, 9829, 9831, 9833, 9835, 9837, 9839, 9841, 9843,
+ 9845, 9847, 9849, 9851, 9853, 9855, 9857, 9859, 9861, 9863, 9865, 9867,
+ 9869, 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, 9889, 9891,
+ 9893, 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9909, 9911, 9913, 9915,
+ 9917, 9919, 9921, 9923, 9925, 9927, 9929, 9931, 9933, 9935, 9937, 9939,
+ 9941, 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, 9961, 9963,
+ 9965, 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9982, 9985, 9988, 9991,
+ 9994, 9997, 10000, 0, 0, 0, 0, 10003, 10005, 10007, 10009, 10011, 10013,
+ 10015, 10017, 10019, 10021, 10023, 10025, 10027, 10029, 10031, 10033,
+ 10035, 10037, 10039, 10041, 10043, 10045, 10047, 10049, 10051, 10053,
+ 10055, 10057, 10059, 10061, 10063, 10065, 10067, 10069, 10071, 10073,
+ 10075, 10077, 10079, 10081, 10083, 10085, 10087, 10089, 10091, 10093,
+ 10095, 10097, 10099, 10101, 10103, 10105, 10107, 10109, 10111, 10113,
+ 10115, 10117, 10119, 10121, 10123, 10125, 10127, 10129, 10131, 10133,
+ 10135, 10137, 10139, 10141, 10143, 10145, 10147, 10149, 10151, 10153,
+ 10155, 10157, 10159, 10161, 10163, 10165, 10167, 10169, 10171, 10173,
+ 10175, 10177, 10179, 10181, 10183, 10185, 10187, 10189, 10191, 10193,
+ 10195, 10197, 10199, 10201, 10203, 10205, 10207, 10209, 10211, 10213,
+ 10215, 10217, 10219, 10221, 10223, 10225, 10227, 10229, 10231, 10233,
+ 10235, 10237, 10239, 10241, 10243, 10245, 10247, 10249, 10251, 10253,
+ 10255, 10257, 10259, 10261, 10263, 10265, 10267, 10269, 10271, 10273,
+ 10275, 10277, 10279, 10281, 10283, 10285, 10287, 10289, 10291, 10293,
+ 10295, 10297, 10299, 10301, 10303, 10305, 10307, 10309, 10311, 10313,
+ 10315, 10317, 10319, 10321, 10323, 10325, 10327, 10329, 10331, 10333,
+ 10335, 10337, 10339, 10341, 10343, 10345, 10347, 10349, 10351, 10353,
+ 10355, 10357, 10359, 10361, 10363, 10365, 10367, 10369, 10371, 10373,
+ 10375, 10377, 10379, 10381, 0, 0, 0, 10383, 10385, 10387, 10389, 10391,
+ 10393, 0, 0, 10395, 10397, 10399, 10401, 10403, 10405, 0, 0, 10407,
+ 10409, 10411, 10413, 10415, 10417, 0, 0, 10419, 10421, 10423, 0, 0, 0,
+ 10425, 10427, 10429, 10431, 10433, 10435, 10437, 0, 10439, 10441, 10443,
+ 10445, 10447, 10449, 10451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 10453, 0, 10456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10462, 10465, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 10468, 10471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10474,
+ 10477, 0, 10480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 10483, 10486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10489, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10492, 10495, 10498, 10501,
+ 10504, 10507, 10510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10513,
+ 10516, 10519, 10522, 10525, 10528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 10531, 10533, 10535, 10537, 10539, 10541, 10543, 10545, 10547,
+ 10549, 10551, 10553, 10555, 10557, 10559, 10561, 10563, 10565, 10567,
+ 10569, 10571, 10573, 10575, 10577, 10579, 10581, 10583, 10585, 10587,
+ 10589, 10591, 10593, 10595, 10597, 10599, 10601, 10603, 10605, 10607,
+ 10609, 10611, 10613, 10615, 10617, 10619, 10621, 10623, 10625, 10627,
+ 10629, 10631, 10633, 10635, 10637, 10639, 10641, 10643, 10645, 10647,
+ 10649, 10651, 10653, 10655, 10657, 10659, 10661, 10663, 10665, 10667,
+ 10669, 10671, 10673, 10675, 10677, 10679, 10681, 10683, 10685, 10687,
+ 10689, 10691, 10693, 10695, 10697, 10699, 0, 10701, 10703, 10705, 10707,
+ 10709, 10711, 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727,
+ 10729, 10731, 10733, 10735, 10737, 10739, 10741, 10743, 10745, 10747,
+ 10749, 10751, 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767,
+ 10769, 10771, 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787,
+ 10789, 10791, 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807,
+ 10809, 10811, 10813, 10815, 10817, 10819, 10821, 10823, 10825, 10827,
+ 10829, 10831, 10833, 10835, 10837, 10839, 10841, 0, 10843, 10845, 0, 0,
+ 10847, 0, 0, 10849, 10851, 0, 0, 10853, 10855, 10857, 10859, 0, 10861,
+ 10863, 10865, 10867, 10869, 10871, 10873, 10875, 10877, 10879, 10881,
+ 10883, 0, 10885, 0, 10887, 10889, 10891, 10893, 10895, 10897, 10899, 0,
+ 10901, 10903, 10905, 10907, 10909, 10911, 10913, 10915, 10917, 10919,
+ 10921, 10923, 10925, 10927, 10929, 10931, 10933, 10935, 10937, 10939,
+ 10941, 10943, 10945, 10947, 10949, 10951, 10953, 10955, 10957, 10959,
+ 10961, 10963, 10965, 10967, 10969, 10971, 10973, 10975, 10977, 10979,
+ 10981, 10983, 10985, 10987, 10989, 10991, 10993, 10995, 10997, 10999,
+ 11001, 11003, 11005, 11007, 11009, 11011, 11013, 11015, 11017, 11019,
+ 11021, 11023, 11025, 11027, 11029, 0, 11031, 11033, 11035, 11037, 0, 0,
+ 11039, 11041, 11043, 11045, 11047, 11049, 11051, 11053, 0, 11055, 11057,
+ 11059, 11061, 11063, 11065, 11067, 0, 11069, 11071, 11073, 11075, 11077,
+ 11079, 11081, 11083, 11085, 11087, 11089, 11091, 11093, 11095, 11097,
+ 11099, 11101, 11103, 11105, 11107, 11109, 11111, 11113, 11115, 11117,
+ 11119, 11121, 11123, 0, 11125, 11127, 11129, 11131, 0, 11133, 11135,
+ 11137, 11139, 11141, 0, 11143, 0, 0, 0, 11145, 11147, 11149, 11151,
+ 11153, 11155, 11157, 0, 11159, 11161, 11163, 11165, 11167, 11169, 11171,
+ 11173, 11175, 11177, 11179, 11181, 11183, 11185, 11187, 11189, 11191,
+ 11193, 11195, 11197, 11199, 11201, 11203, 11205, 11207, 11209, 11211,
+ 11213, 11215, 11217, 11219, 11221, 11223, 11225, 11227, 11229, 11231,
+ 11233, 11235, 11237, 11239, 11241, 11243, 11245, 11247, 11249, 11251,
+ 11253, 11255, 11257, 11259, 11261, 11263, 11265, 11267, 11269, 11271,
+ 11273, 11275, 11277, 11279, 11281, 11283, 11285, 11287, 11289, 11291,
+ 11293, 11295, 11297, 11299, 11301, 11303, 11305, 11307, 11309, 11311,
+ 11313, 11315, 11317, 11319, 11321, 11323, 11325, 11327, 11329, 11331,
+ 11333, 11335, 11337, 11339, 11341, 11343, 11345, 11347, 11349, 11351,
+ 11353, 11355, 11357, 11359, 11361, 11363, 11365, 11367, 11369, 11371,
+ 11373, 11375, 11377, 11379, 11381, 11383, 11385, 11387, 11389, 11391,
+ 11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411,
+ 11413, 11415, 11417, 11419, 11421, 11423, 11425, 11427, 11429, 11431,
+ 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451,
+ 11453, 11455, 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471,
+ 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487, 11489, 11491,
+ 11493, 11495, 11497, 11499, 11501, 11503, 11505, 11507, 11509, 11511,
+ 11513, 11515, 11517, 11519, 11521, 11523, 11525, 11527, 11529, 11531,
+ 11533, 11535, 11537, 11539, 11541, 11543, 11545, 11547, 11549, 11551,
+ 11553, 11555, 11557, 11559, 11561, 11563, 11565, 11567, 11569, 11571,
+ 11573, 11575, 11577, 11579, 11581, 11583, 11585, 11587, 11589, 11591,
+ 11593, 11595, 11597, 11599, 11601, 11603, 11605, 11607, 11609, 11611,
+ 11613, 11615, 11617, 11619, 11621, 11623, 11625, 11627, 11629, 11631,
+ 11633, 11635, 11637, 11639, 11641, 11643, 11645, 11647, 11649, 11651,
+ 11653, 11655, 11657, 11659, 11661, 11663, 11665, 11667, 11669, 11671,
+ 11673, 11675, 11677, 11679, 11681, 11683, 11685, 11687, 11689, 11691,
+ 11693, 11695, 11697, 11699, 11701, 11703, 11705, 11707, 11709, 11711,
+ 11713, 11715, 11717, 11719, 11721, 11723, 11725, 11727, 11729, 11731,
+ 11733, 11735, 11737, 11739, 11741, 11743, 11745, 11747, 11749, 11751,
+ 11753, 11755, 11757, 11759, 11761, 11763, 11765, 11767, 11769, 11771,
+ 11773, 11775, 11777, 11779, 11781, 11783, 11785, 11787, 11789, 11791,
+ 11793, 11795, 11797, 11799, 11801, 11803, 11805, 11807, 11809, 11811,
+ 11813, 11815, 11817, 11819, 11821, 11823, 11825, 11827, 11829, 11831,
+ 11833, 11835, 11837, 0, 0, 11839, 11841, 11843, 11845, 11847, 11849,
+ 11851, 11853, 11855, 11857, 11859, 11861, 11863, 11865, 11867, 11869,
+ 11871, 11873, 11875, 11877, 11879, 11881, 11883, 11885, 11887, 11889,
+ 11891, 11893, 11895, 11897, 11899, 11901, 11903, 11905, 11907, 11909,
+ 11911, 11913, 11915, 11917, 11919, 11921, 11923, 11925, 11927, 11929,
+ 11931, 11933, 11935, 11937, 11939, 11941, 11943, 11945, 11947, 11949,
+ 11951, 11953, 11955, 11957, 11959, 11961, 11963, 11965, 11967, 11969,
+ 11971, 11973, 11975, 11977, 11979, 11981, 11983, 11985, 11987, 11989,
+ 11991, 11993, 11995, 11997, 11999, 12001, 12003, 12005, 12007, 12009,
+ 12011, 12013, 12015, 12017, 12019, 12021, 12023, 12025, 12027, 12029,
+ 12031, 12033, 12035, 12037, 12039, 12041, 12043, 12045, 12047, 12049,
+ 12051, 12053, 12055, 12057, 12059, 12061, 12063, 12065, 12067, 12069,
+ 12071, 12073, 12075, 12077, 12079, 12081, 12083, 12085, 12087, 12089,
+ 12091, 12093, 12095, 12097, 12099, 12101, 12103, 12105, 12107, 12109,
+ 12111, 12113, 12115, 12117, 12119, 12121, 12123, 12125, 12127, 12129,
+ 12131, 12133, 12135, 12137, 12139, 12141, 12143, 12145, 12147, 12149,
+ 12151, 12153, 12155, 12157, 12159, 12161, 12163, 12165, 12167, 12169,
+ 12171, 12173, 12175, 12177, 12179, 12181, 12183, 12185, 12187, 12189,
+ 12191, 12193, 12195, 12197, 12199, 12201, 12203, 12205, 12207, 12209,
+ 12211, 12213, 12215, 12217, 12219, 12221, 12223, 12225, 12227, 12229,
+ 12231, 12233, 12235, 12237, 12239, 12241, 12243, 12245, 12247, 12249,
+ 12251, 12253, 12255, 12257, 12259, 12261, 12263, 12265, 12267, 12269,
+ 12271, 12273, 12275, 12277, 12279, 12281, 12283, 12285, 12287, 12289,
+ 12291, 12293, 12295, 12297, 12299, 12301, 12303, 12305, 12307, 12309,
+ 12311, 12313, 12315, 12317, 12319, 12321, 12323, 12325, 12327, 12329,
+ 12331, 12333, 12335, 12337, 12339, 12341, 12343, 12345, 12347, 12349,
+ 12351, 12353, 12355, 12357, 12359, 12361, 12363, 12365, 12367, 12369,
+ 12371, 12373, 12375, 12377, 12379, 12381, 12383, 12385, 12387, 12389,
+ 12391, 12393, 12395, 12397, 12399, 12401, 12403, 12405, 12407, 12409,
+ 12411, 12413, 12415, 12417, 12419, 12421, 0, 0, 12423, 12425, 12427,
+ 12429, 12431, 12433, 12435, 12437, 12439, 12441, 12443, 12445, 12447,
+ 12449, 12451, 12453, 12455, 12457, 12459, 12461, 12463, 12465, 12467,
+ 12469, 12471, 12473, 12475, 12477, 12479, 12481, 12483, 12485, 12487,
+ 12489, 12491, 12493, 12495, 12497, 12499, 12501, 12503, 12505, 12507,
+ 12509, 12511, 12513, 12515, 12517, 12519, 12521, 12523, 12525, 12527,
+ 12529, 0, 12531, 12533, 12535, 12537, 12539, 12541, 12543, 12545, 12547,
+ 12549, 12551, 12553, 12555, 12557, 12559, 12561, 12563, 12565, 12567,
+ 12569, 12571, 12573, 12575, 12577, 12579, 12581, 12583, 0, 12585, 12587,
+ 0, 12589, 0, 0, 12591, 0, 12593, 12595, 12597, 12599, 12601, 12603,
+ 12605, 12607, 12609, 12611, 0, 12613, 12615, 12617, 12619, 0, 12621, 0,
+ 12623, 0, 0, 0, 0, 0, 0, 12625, 0, 0, 0, 0, 12627, 0, 12629, 0, 12631, 0,
+ 12633, 12635, 12637, 0, 12639, 12641, 0, 12643, 0, 0, 12645, 0, 12647, 0,
+ 12649, 0, 12651, 0, 12653, 0, 12655, 12657, 0, 12659, 0, 0, 12661, 12663,
+ 12665, 12667, 0, 12669, 12671, 12673, 12675, 12677, 12679, 12681, 0,
+ 12683, 12685, 12687, 12689, 0, 12691, 12693, 12695, 12697, 0, 12699, 0,
+ 12701, 12703, 12705, 12707, 12709, 12711, 12713, 12715, 12717, 12719, 0,
+ 12721, 12723, 12725, 12727, 12729, 12731, 12733, 12735, 12737, 12739,
+ 12741, 12743, 12745, 12747, 12749, 12751, 12753, 0, 0, 0, 0, 0, 12755,
+ 12757, 12759, 0, 12761, 12763, 12765, 12767, 12769, 0, 12771, 12773,
+ 12775, 12777, 12779, 12781, 12783, 12785, 12787, 12789, 12791, 12793,
+ 12795, 12797, 12799, 12801, 12803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 12805, 12808, 12811, 12814, 12817, 12820, 12823,
+ 12826, 12829, 12832, 12835, 0, 0, 0, 0, 0, 12838, 12842, 12846, 12850,
+ 12854, 12858, 12862, 12866, 12870, 12874, 12878, 12882, 12886, 12890,
+ 12894, 12898, 12902, 12906, 12910, 12914, 12918, 12922, 12926, 12930,
+ 12934, 12938, 12942, 12946, 12948, 12950, 12953, 0, 12956, 12958, 12960,
+ 12962, 12964, 12966, 12968, 12970, 12972, 12974, 12976, 12978, 12980,
+ 12982, 12984, 12986, 12988, 12990, 12992, 12994, 12996, 12998, 13000,
+ 13002, 13004, 13006, 13008, 13011, 13014, 13017, 13020, 13024, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 13027, 13030, 13033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13036, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13039, 13042, 13045, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13047, 13049, 13051, 13053, 13055, 13057, 13059,
+ 13061, 13063, 13065, 13067, 13069, 13071, 13073, 13075, 13077, 13079,
+ 13081, 13083, 13085, 13087, 13089, 13091, 13093, 13095, 13097, 13099,
+ 13101, 13103, 13105, 13107, 13109, 13111, 13113, 13115, 13117, 13119,
+ 13121, 13123, 13125, 13127, 13129, 13131, 13133, 0, 0, 0, 0, 13135,
+ 13139, 13143, 13147, 13151, 13155, 13159, 13163, 13167, 0, 0, 0, 0, 0, 0,
+ 0, 13171, 13173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13175, 13177,
+ 13179, 13181, 13183, 13185, 13187, 13189, 13191, 13193, 0, 0, 0, 0, 0, 0,
+ 13195, 13197, 13199, 13201, 13203, 13205, 13207, 13209, 13211, 13213,
+ 13215, 13217, 13219, 13221, 13223, 13225, 13227, 13229, 13231, 13233,
+ 13235, 13237, 13239, 13241, 13243, 13245, 13247, 13249, 13251, 13253,
+ 13255, 13257, 13259, 13261, 13263, 13265, 13267, 13269, 13271, 13273,
+ 13275, 13277, 13279, 13281, 13283, 13285, 13287, 13289, 13291, 13293,
+ 13295, 13297, 13299, 13301, 13303, 13305, 13307, 13309, 13311, 13313,
+ 13315, 13317, 13319, 13321, 13323, 13325, 13327, 13329, 13331, 13333,
+ 13335, 13337, 13339, 13341, 13343, 13345, 13347, 13349, 13351, 13353,
+ 13355, 13357, 13359, 13361, 13363, 13365, 13367, 13369, 13371, 13373,
+ 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393,
+ 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13413,
+ 13415, 13417, 13419, 13421, 13423, 13425, 13427, 13429, 13431, 13433,
+ 13435, 13437, 13439, 13441, 13443, 13445, 13447, 13449, 13451, 13453,
+ 13455, 13457, 13459, 13461, 13463, 13465, 13467, 13469, 13471, 13473,
+ 13475, 13477, 13479, 13481, 13483, 13485, 13487, 13489, 13491, 13493,
+ 13495, 13497, 13499, 13501, 13503, 13505, 13507, 13509, 13511, 13513,
+ 13515, 13517, 13519, 13521, 13523, 13525, 13527, 13529, 13531, 13533,
+ 13535, 13537, 13539, 13541, 13543, 13545, 13547, 13549, 13551, 13553,
+ 13555, 13557, 13559, 13561, 13563, 13565, 13567, 13569, 13571, 13573,
+ 13575, 13577, 13579, 13581, 13583, 13585, 13587, 13589, 13591, 13593,
+ 13595, 13597, 13599, 13601, 13603, 13605, 13607, 13609, 13611, 13613,
+ 13615, 13617, 13619, 13621, 13623, 13625, 13627, 13629, 13631, 13633,
+ 13635, 13637, 13639, 13641, 13643, 13645, 13647, 13649, 13651, 13653,
+ 13655, 13657, 13659, 13661, 13663, 13665, 13667, 13669, 13671, 13673,
+ 13675, 13677, 13679, 13681, 13683, 13685, 13687, 13689, 13691, 13693,
+ 13695, 13697, 13699, 13701, 13703, 13705, 13707, 13709, 13711, 13713,
+ 13715, 13717, 13719, 13721, 13723, 13725, 13727, 13729, 13731, 13733,
+ 13735, 13737, 13739, 13741, 13743, 13745, 13747, 13749, 13751, 13753,
+ 13755, 13757, 13759, 13761, 13763, 13765, 13767, 13769, 13771, 13773,
+ 13775, 13777, 13779, 13781, 13783, 13785, 13787, 13789, 13791, 13793,
+ 13795, 13797, 13799, 13801, 13803, 13805, 13807, 13809, 13811, 13813,
+ 13815, 13817, 13819, 13821, 13823, 13825, 13827, 13829, 13831, 13833,
+ 13835, 13837, 13839, 13841, 13843, 13845, 13847, 13849, 13851, 13853,
+ 13855, 13857, 13859, 13861, 13863, 13865, 13867, 13869, 13871, 13873,
+ 13875, 13877, 13879, 13881, 13883, 13885, 13887, 13889, 13891, 13893,
+ 13895, 13897, 13899, 13901, 13903, 13905, 13907, 13909, 13911, 13913,
+ 13915, 13917, 13919, 13921, 13923, 13925, 13927, 13929, 13931, 13933,
+ 13935, 13937, 13939, 13941, 13943, 13945, 13947, 13949, 13951, 13953,
+ 13955, 13957, 13959, 13961, 13963, 13965, 13967, 13969, 13971, 13973,
+ 13975, 13977, 13979, 13981, 13983, 13985, 13987, 13989, 13991, 13993,
+ 13995, 13997, 13999, 14001, 14003, 14005, 14007, 14009, 14011, 14013,
+ 14015, 14017, 14019, 14021, 14023, 14025, 14027, 14029, 14031, 14033,
+ 14035, 14037, 14039, 14041, 14043, 14045, 14047, 14049, 14051, 14053,
+ 14055, 14057, 14059, 14061, 14063, 14065, 14067, 14069, 14071, 14073,
+ 14075, 14077, 14079, 14081, 14083, 14085, 14087, 14089, 14091, 14093,
+ 14095, 14097, 14099, 14101, 14103, 14105, 14107, 14109, 14111, 14113,
+ 14115, 14117, 14119, 14121, 14123, 14125, 14127, 14129, 14131, 14133,
+ 14135, 14137, 14139, 14141, 14143, 14145, 14147, 14149, 14151, 14153,
+ 14155, 14157, 14159, 14161, 14163, 14165, 14167, 14169, 14171, 14173,
+ 14175, 14177, 14179, 14181, 14183, 14185, 14187, 14189, 14191, 14193,
+ 14195, 14197, 14199, 14201, 14203, 14205, 14207, 14209, 14211, 14213,
+ 14215, 14217, 14219, 14221, 14223, 14225, 14227, 14229, 14231, 14233,
+ 14235, 14237, 14239, 14241, 14243, 14245, 14247, 14249, 14251, 14253,
+ 14255, 14257, 14259, 14261, 14263, 14265, 14267, 14269, 14271, 14273,
+ 14275, 14277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
};
/* NFC pairs */
#define COMP_SHIFT 2
-static const unsigned short comp_index[] = {
+static const unsigned short comp_index[] = {
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 11, 0, 12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
- 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 32, 33, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36,
- 37, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 0, 50, 0, 51, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 55, 56, 57,
- 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 60, 61, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 64, 65, 0, 66, 67, 68, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 71,
- 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 77, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 78, 79, 0, 80, 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 85, 86, 0, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 90, 0, 91,
- 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 101, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
- 104, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 111, 112, 0, 113, 114, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 117,
- 118, 119, 120, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 123, 0,
- 124, 0, 0, 0, 0, 0, 0, 0, 0, 125, 126, 127, 128, 0, 129, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 130, 0, 131, 132, 133, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 135, 136, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 0, 147, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 155, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 162, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 165, 166,
- 167, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 170, 171, 172, 173, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 177, 178, 179, 180, 0, 181, 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185,
- 186, 187, 188, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 191, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 193, 194, 195, 196, 197, 198, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 199, 200, 201, 0, 202, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 204, 205, 206, 207, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211,
- 212, 213, 214, 215, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 218, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, 220, 221, 222, 0, 223, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 226,
- 227, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, 0, 232, 0,
- 233, 0, 0, 0, 0, 0, 0, 0, 0, 234, 235, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0,
- 0, 0, 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248,
- 249, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 252, 253, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 257, 0, 258, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266,
- 267, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 270, 271, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 273, 274, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 278, 279, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 282,
- 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 285, 286, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 288, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 301, 302, 303, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 306,
- 307, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 311, 0, 312, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 314, 0, 315, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327,
- 0, 328, 329, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 332, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 0, 0, 335, 0, 0, 0, 336, 0, 0, 0, 0, 0,
- 0, 0, 337, 338, 339, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0,
- 342, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 345, 346, 347, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 349, 0, 0, 0, 350, 0, 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0,
- 0, 0, 354, 355, 356, 0, 357, 0, 0, 358, 359, 0, 0, 0, 0, 0, 0, 0, 360, 0,
- 0, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 363, 364, 0, 0,
- 365, 0, 0, 0, 0, 0, 0, 0, 0, 366, 367, 0, 368, 0, 0, 0, 369, 0, 0, 0, 0,
- 0, 0, 0, 370, 371, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 375, 376, 377, 378, 0, 0,
- 379, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 381, 0, 0, 0, 382, 0, 0, 0, 0, 0,
- 0, 0, 383, 384, 0, 0, 0, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 0,
- 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0,
- 0, 0, 0, 0, 0, 389, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 393, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 395, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 399, 400, 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 404, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 411,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 413, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4,
+ 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 11, 0, 12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
+ 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 31, 32, 33, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36,
+ 37, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 49, 0, 50, 0, 51, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 55, 56, 57,
+ 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 60, 61, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 64, 65, 0, 66, 67, 68, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 71,
+ 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 77, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 78, 79, 0, 80, 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 84, 85, 86, 0, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 90, 0, 91,
+ 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 101, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
+ 104, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 111, 112, 0, 113, 114, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 117,
+ 118, 119, 120, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 123, 0,
+ 124, 0, 0, 0, 0, 0, 0, 0, 0, 125, 126, 127, 128, 0, 129, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 130, 0, 131, 132, 133, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 135, 136, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 0, 147, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 155, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 162, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 165, 166,
+ 167, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 170, 171, 172, 173, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 177, 178, 179, 180, 0, 181, 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185,
+ 186, 187, 188, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 191, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 193, 194, 195, 196, 197, 198, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 199, 200, 201, 0, 202, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 204, 205, 206, 207, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211,
+ 212, 213, 214, 215, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 218, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, 220, 221, 222, 0, 223, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 226,
+ 227, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 230, 231, 0, 232, 0,
+ 233, 0, 0, 0, 0, 0, 0, 0, 0, 234, 235, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0,
+ 0, 0, 0, 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248,
+ 249, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 252, 253, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 257, 0, 258, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266,
+ 267, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 270, 271, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 273, 274, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 278, 279, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 282,
+ 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 285, 286, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 288, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 301, 302, 303, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 306,
+ 307, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 311, 0, 312, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 314, 0, 315, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327,
+ 0, 328, 329, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 332, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 0, 0, 335, 0, 0, 0, 336, 0, 0, 0, 0, 0,
+ 0, 0, 337, 338, 339, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0,
+ 342, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 345, 346, 347, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 349, 0, 0, 0, 350, 0, 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0,
+ 0, 0, 354, 355, 356, 0, 357, 0, 0, 358, 359, 0, 0, 0, 0, 0, 0, 0, 360, 0,
+ 0, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 363, 364, 0, 0,
+ 365, 0, 0, 0, 0, 0, 0, 0, 0, 366, 367, 0, 368, 0, 0, 0, 369, 0, 0, 0, 0,
+ 0, 0, 0, 370, 371, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 375, 376, 377, 378, 0, 0,
+ 379, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 381, 0, 0, 0, 382, 0, 0, 0, 0, 0,
+ 0, 0, 383, 384, 0, 0, 0, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 0,
+ 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0,
+ 0, 0, 0, 0, 0, 389, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 393, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 395, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 399, 400, 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 404, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 411,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 413, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 417, 418, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 423, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 429,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 432, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 455, 456, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 0, 0, 0, 470, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 477, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, 0, 0, 0,
- 0, 0, 484, 0, 0, 0, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 486, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0,
- 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 495,
- 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 497,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 0, 0, 0, 503, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 505, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 509, 0, 0, 0, 0, 0,
- 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 513, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, 518, 0, 0,
- 0, 0, 0, 0, 519, 0, 0, 0, 0, 0, 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, 521, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, 0,
- 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
- 530, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0,
- 534, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0,
- 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 0,
- 0, 0, 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 545, 0,
- 0, 0, 0, 0, 0, 0, 546, 547, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, 0, 0, 0,
- 549, 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0,
- 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 559, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0,
- 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, 574, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 577, 578, 0, 0, 0, 0, 0, 579,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 639, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 660, 661,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 664,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 666, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 675, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 681,
+ 0, 0, 0, 0, 0, 0, 0, 417, 418, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 423, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 429,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 432, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 455, 456, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 0, 0, 0, 470, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 477, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, 0, 0, 0,
+ 0, 0, 484, 0, 0, 0, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 486, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0,
+ 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 495,
+ 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 497,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 0, 0, 0, 503, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 505, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 509, 0, 0, 0, 0, 0,
+ 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 513, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, 518, 0, 0,
+ 0, 0, 0, 0, 519, 0, 0, 0, 0, 0, 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, 521, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, 0,
+ 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 530, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0,
+ 534, 0, 0, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0,
+ 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539, 540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 0,
+ 0, 0, 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 545, 0,
+ 0, 0, 0, 0, 0, 0, 546, 547, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, 0, 0, 0,
+ 549, 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0,
+ 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 559, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0,
+ 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, 574, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 577, 578, 0, 0, 0, 0, 0, 579,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 639, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 660, 661,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 664,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 666, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 675, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 681,
};
-static const unsigned int comp_data[] = {
- 0, 0, 0, 0, 0, 0, 0, 8814, 0, 0, 8800, 0, 0, 8815, 0, 0, 0, 192, 193,
+static const unsigned int comp_data[] = {
+ 0, 0, 0, 0, 0, 0, 0, 8814, 0, 0, 8800, 0, 0, 8815, 0, 0, 0, 192, 193,
194, 195, 256, 258, 550, 196, 7842, 197, 0, 461, 512, 514, 0, 0, 0, 7840,
- 0, 7680, 0, 0, 260, 0, 0, 7682, 0, 0, 7684, 0, 0, 0, 0, 7686, 0, 262,
- 264, 0, 0, 0, 266, 0, 0, 0, 0, 268, 0, 199, 0, 0, 0, 7690, 0, 0, 0, 0,
- 270, 0, 0, 0, 0, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0, 0, 0, 0,
- 200, 201, 202, 7868, 274, 276, 278, 203, 7866, 0, 0, 282, 516, 518, 0, 0,
- 0, 7864, 0, 0, 0, 552, 280, 7704, 0, 7706, 0, 0, 0, 7710, 0, 500, 284, 0,
- 7712, 286, 288, 0, 0, 0, 0, 486, 0, 290, 0, 0, 0, 292, 0, 0, 0, 7714,
- 7718, 0, 0, 0, 542, 0, 0, 0, 0, 0, 7716, 0, 0, 0, 7720, 0, 0, 7722, 0, 0,
- 204, 205, 206, 296, 298, 300, 304, 207, 7880, 0, 0, 463, 520, 522, 0, 0,
- 0, 7882, 0, 0, 0, 0, 302, 0, 0, 7724, 0, 0, 0, 308, 0, 7728, 0, 0, 0, 0,
- 0, 488, 0, 7730, 0, 0, 0, 310, 0, 0, 0, 0, 7732, 0, 0, 0, 0, 0, 313, 0,
- 317, 0, 0, 0, 0, 0, 7734, 0, 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 0, 0,
- 0, 7742, 0, 0, 0, 0, 7744, 0, 0, 7746, 0, 504, 323, 0, 209, 0, 0, 7748,
- 0, 0, 0, 0, 327, 0, 7750, 0, 0, 0, 325, 0, 7754, 0, 0, 7752, 0, 0, 0, 0,
- 210, 211, 212, 213, 332, 334, 558, 214, 7886, 0, 336, 465, 524, 526, 0,
- 0, 416, 7884, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 7764, 7766, 0, 0, 0, 0, 0,
- 340, 0, 0, 0, 0, 7768, 344, 528, 530, 0, 0, 0, 7770, 0, 0, 0, 342, 0, 0,
- 0, 0, 7774, 0, 346, 348, 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 7778, 0, 0,
- 536, 350, 0, 0, 0, 7786, 0, 0, 0, 0, 356, 0, 7788, 0, 0, 538, 354, 0,
- 7792, 0, 0, 7790, 0, 0, 0, 0, 217, 218, 219, 360, 362, 364, 0, 220, 7910,
+ 0, 7680, 0, 0, 260, 0, 0, 7682, 0, 0, 7684, 0, 0, 0, 0, 7686, 0, 262,
+ 264, 0, 0, 0, 266, 0, 0, 0, 0, 268, 0, 199, 0, 0, 0, 7690, 0, 0, 0, 0,
+ 270, 0, 0, 0, 0, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0, 0, 0, 0,
+ 200, 201, 202, 7868, 274, 276, 278, 203, 7866, 0, 0, 282, 516, 518, 0, 0,
+ 0, 7864, 0, 0, 0, 552, 280, 7704, 0, 7706, 0, 0, 0, 7710, 0, 500, 284, 0,
+ 7712, 286, 288, 0, 0, 0, 0, 486, 0, 290, 0, 0, 0, 292, 0, 0, 0, 7714,
+ 7718, 0, 0, 0, 542, 0, 0, 0, 0, 0, 7716, 0, 0, 0, 7720, 0, 0, 7722, 0, 0,
+ 204, 205, 206, 296, 298, 300, 304, 207, 7880, 0, 0, 463, 520, 522, 0, 0,
+ 0, 7882, 0, 0, 0, 0, 302, 0, 0, 7724, 0, 0, 0, 308, 0, 7728, 0, 0, 0, 0,
+ 0, 488, 0, 7730, 0, 0, 0, 310, 0, 0, 0, 0, 7732, 0, 0, 0, 0, 0, 313, 0,
+ 317, 0, 0, 0, 0, 0, 7734, 0, 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 0, 0,
+ 0, 7742, 0, 0, 0, 0, 7744, 0, 0, 7746, 0, 504, 323, 0, 209, 0, 0, 7748,
+ 0, 0, 0, 0, 327, 0, 7750, 0, 0, 0, 325, 0, 7754, 0, 0, 7752, 0, 0, 0, 0,
+ 210, 211, 212, 213, 332, 334, 558, 214, 7886, 0, 336, 465, 524, 526, 0,
+ 0, 416, 7884, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 7764, 7766, 0, 0, 0, 0, 0,
+ 340, 0, 0, 0, 0, 7768, 344, 528, 530, 0, 0, 0, 7770, 0, 0, 0, 342, 0, 0,
+ 0, 0, 7774, 0, 346, 348, 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 7778, 0, 0,
+ 536, 350, 0, 0, 0, 7786, 0, 0, 0, 0, 356, 0, 7788, 0, 0, 538, 354, 0,
+ 7792, 0, 0, 7790, 0, 0, 0, 0, 217, 218, 219, 360, 362, 364, 0, 220, 7910,
366, 368, 467, 532, 534, 0, 0, 431, 7908, 7794, 0, 0, 0, 370, 7798, 0,
- 7796, 7804, 0, 0, 0, 0, 0, 7806, 0, 7808, 7810, 372, 0, 0, 0, 7814, 7812,
- 0, 7816, 0, 0, 0, 7818, 7820, 0, 0, 0, 7922, 221, 374, 7928, 562, 0,
- 7822, 376, 7926, 0, 0, 0, 0, 7924, 0, 0, 377, 7824, 0, 0, 0, 379, 381, 0,
- 0, 0, 0, 0, 7826, 0, 0, 0, 0, 7828, 224, 225, 226, 227, 257, 259, 551,
- 228, 7843, 229, 0, 462, 513, 515, 0, 0, 0, 7841, 0, 7681, 0, 0, 261, 0,
- 0, 7683, 0, 0, 7685, 0, 0, 0, 0, 7687, 0, 0, 0, 0, 0, 263, 265, 0, 0, 0,
- 267, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 231, 0, 0, 0, 7691, 271, 0, 0, 0, 0,
- 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, 0, 7695, 232, 233, 234, 7869, 275,
- 277, 279, 235, 7867, 0, 0, 283, 517, 519, 0, 0, 0, 7865, 0, 0, 0, 553,
- 281, 7705, 0, 7707, 0, 0, 0, 7711, 0, 0, 0, 0, 0, 501, 285, 0, 7713, 287,
- 289, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 291, 0, 0, 0, 293, 0, 0, 0, 7715,
+ 7796, 7804, 0, 0, 0, 0, 0, 7806, 0, 7808, 7810, 372, 0, 0, 0, 7814, 7812,
+ 0, 7816, 0, 0, 0, 7818, 7820, 0, 0, 0, 7922, 221, 374, 7928, 562, 0,
+ 7822, 376, 7926, 0, 0, 0, 0, 7924, 0, 0, 377, 7824, 0, 0, 0, 379, 381, 0,
+ 0, 0, 0, 0, 7826, 0, 0, 0, 0, 7828, 224, 225, 226, 227, 257, 259, 551,
+ 228, 7843, 229, 0, 462, 513, 515, 0, 0, 0, 7841, 0, 7681, 0, 0, 261, 0,
+ 0, 7683, 0, 0, 7685, 0, 0, 0, 0, 7687, 0, 0, 0, 0, 0, 263, 265, 0, 0, 0,
+ 267, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 231, 0, 0, 0, 7691, 271, 0, 0, 0, 0,
+ 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, 0, 7695, 232, 233, 234, 7869, 275,
+ 277, 279, 235, 7867, 0, 0, 283, 517, 519, 0, 0, 0, 7865, 0, 0, 0, 553,
+ 281, 7705, 0, 7707, 0, 0, 0, 7711, 0, 0, 0, 0, 0, 501, 285, 0, 7713, 287,
+ 289, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 291, 0, 0, 0, 293, 0, 0, 0, 7715,
7719, 0, 0, 0, 543, 0, 0, 0, 0, 0, 7717, 0, 0, 0, 7721, 0, 0, 7723, 0,
- 7830, 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, 0, 464, 521, 523, 0,
- 0, 0, 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 0, 309, 0, 0, 0, 0, 496,
- 0, 0, 0, 0, 7729, 0, 489, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 311, 7733, 0, 0,
- 0, 0, 0, 314, 0, 318, 0, 0, 0, 0, 0, 7735, 0, 0, 0, 316, 0, 7741, 0, 0,
- 7739, 0, 7743, 0, 0, 0, 0, 7745, 0, 0, 7747, 0, 0, 0, 0, 0, 505, 324, 0,
- 241, 0, 0, 7749, 0, 0, 0, 0, 328, 0, 7751, 0, 0, 0, 326, 0, 7755, 0, 0,
- 7753, 0, 0, 0, 0, 242, 243, 244, 245, 333, 335, 559, 246, 7887, 0, 337,
- 466, 525, 527, 0, 0, 417, 7885, 491, 0, 0, 0, 0, 0, 7765, 0, 0, 0, 0,
- 7767, 0, 341, 0, 0, 0, 0, 7769, 0, 0, 0, 0, 345, 529, 531, 0, 0, 0, 7771,
- 0, 0, 0, 343, 0, 0, 0, 0, 7775, 0, 347, 349, 0, 0, 0, 7777, 0, 0, 0, 0,
- 353, 0, 7779, 0, 0, 537, 351, 0, 0, 0, 7787, 7831, 0, 0, 0, 357, 0, 0, 0,
- 0, 0, 7789, 0, 0, 539, 355, 0, 7793, 0, 0, 7791, 0, 0, 0, 0, 249, 250,
- 251, 361, 363, 365, 0, 252, 7911, 367, 369, 468, 533, 535, 0, 0, 432,
- 7909, 7795, 0, 0, 0, 371, 7799, 0, 7797, 0, 0, 0, 0, 7805, 0, 7807, 0, 0,
- 0, 0, 0, 7809, 7811, 373, 0, 0, 0, 7815, 7813, 0, 7832, 0, 0, 0, 7817, 0,
- 0, 0, 7819, 7821, 0, 0, 0, 7923, 253, 375, 7929, 563, 0, 7823, 255, 7927,
- 7833, 0, 0, 0, 7925, 0, 0, 378, 7825, 0, 0, 0, 380, 0, 0, 0, 0, 382, 0,
- 7827, 0, 0, 0, 0, 7829, 0, 0, 0, 0, 8173, 901, 0, 0, 0, 0, 0, 0, 8129, 0,
- 0, 7846, 7844, 0, 7850, 0, 0, 0, 0, 7848, 0, 0, 478, 0, 0, 0, 506, 0, 0,
- 508, 0, 0, 482, 0, 0, 0, 7688, 0, 7872, 7870, 0, 7876, 0, 0, 0, 0, 7874,
- 0, 0, 0, 7726, 0, 0, 0, 0, 0, 7890, 7888, 0, 7894, 0, 0, 0, 0, 7892, 0,
- 0, 0, 7756, 0, 0, 556, 0, 0, 7758, 0, 0, 0, 554, 0, 0, 0, 510, 0, 0, 0,
- 0, 0, 475, 471, 0, 0, 469, 0, 0, 473, 0, 0, 0, 7847, 7845, 0, 7851, 0, 0,
- 0, 0, 7849, 0, 0, 479, 0, 0, 0, 507, 0, 0, 509, 0, 0, 483, 0, 0, 0, 7689,
- 0, 7873, 7871, 0, 7877, 0, 0, 0, 0, 7875, 0, 0, 0, 7727, 0, 0, 0, 0, 0,
- 7891, 7889, 0, 7895, 0, 0, 0, 0, 7893, 0, 0, 0, 7757, 0, 0, 557, 0, 0,
- 7759, 0, 0, 0, 555, 0, 0, 0, 511, 0, 0, 0, 0, 0, 476, 472, 0, 0, 470, 0,
- 0, 474, 0, 0, 0, 7856, 7854, 0, 7860, 0, 0, 0, 0, 7858, 0, 0, 7857, 7855,
- 0, 7861, 0, 0, 0, 0, 7859, 0, 0, 7700, 7702, 0, 0, 0, 0, 0, 7701, 7703,
- 0, 0, 0, 0, 0, 7760, 7762, 0, 7761, 7763, 0, 0, 0, 7780, 0, 0, 7781, 0,
- 0, 7782, 0, 0, 0, 0, 0, 0, 7783, 0, 7800, 0, 0, 7801, 0, 0, 0, 0, 7802,
- 0, 0, 7803, 0, 0, 0, 0, 0, 7835, 0, 0, 0, 0, 7900, 7898, 0, 7904, 0, 0,
- 0, 0, 7902, 7906, 0, 0, 0, 0, 0, 7901, 7899, 0, 7905, 0, 0, 0, 0, 7903,
- 0, 0, 0, 0, 7907, 0, 7914, 7912, 0, 7918, 0, 0, 0, 0, 7916, 0, 0, 0, 0,
- 7920, 0, 7915, 7913, 0, 7919, 7917, 0, 0, 0, 0, 7921, 0, 0, 0, 0, 494, 0,
- 0, 0, 492, 0, 0, 493, 0, 0, 480, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 7708, 0,
- 0, 7709, 0, 560, 0, 0, 0, 0, 0, 0, 561, 0, 495, 0, 0, 0, 8122, 902, 0, 0,
- 8121, 8120, 0, 0, 0, 0, 7944, 7945, 0, 0, 0, 0, 0, 8124, 0, 8136, 904, 0,
- 0, 0, 0, 7960, 7961, 0, 0, 0, 8138, 905, 0, 0, 0, 0, 7976, 7977, 0, 8140,
- 0, 0, 0, 0, 0, 8154, 906, 0, 0, 8153, 8152, 0, 938, 0, 0, 7992, 7993, 0,
- 0, 0, 8184, 908, 0, 0, 0, 0, 8008, 8009, 0, 0, 0, 0, 0, 0, 8172, 0, 0, 0,
- 8170, 910, 0, 0, 8169, 8168, 0, 939, 0, 0, 0, 8025, 0, 0, 0, 8186, 911,
- 8040, 8041, 0, 0, 0, 0, 0, 8188, 0, 0, 8116, 0, 0, 8132, 0, 0, 0, 0, 0,
- 8048, 940, 0, 0, 8113, 8112, 0, 0, 0, 0, 7936, 7937, 0, 0, 0, 0, 8118,
- 8115, 0, 0, 0, 0, 0, 8050, 941, 7952, 7953, 0, 0, 0, 8052, 942, 0, 0, 0,
- 0, 7968, 7969, 0, 0, 0, 0, 8134, 8131, 0, 8054, 943, 0, 0, 8145, 8144, 0,
- 970, 0, 0, 7984, 7985, 8150, 0, 0, 0, 0, 0, 0, 8056, 972, 0, 0, 0, 0,
- 8000, 8001, 0, 8164, 8165, 0, 0, 0, 8058, 973, 0, 0, 8161, 8160, 0, 971,
- 0, 0, 0, 0, 0, 0, 8016, 8017, 0, 0, 0, 0, 8166, 0, 0, 8060, 974, 0, 0, 0,
- 0, 8032, 8033, 8182, 8179, 0, 0, 0, 0, 0, 8146, 912, 0, 0, 0, 0, 0, 0,
- 8151, 0, 0, 8162, 944, 0, 0, 8167, 0, 0, 0, 8180, 0, 0, 979, 0, 0, 0, 0,
- 0, 980, 0, 0, 1031, 0, 0, 0, 0, 1232, 0, 1234, 0, 0, 0, 0, 1027, 0, 1024,
- 0, 0, 0, 0, 1238, 0, 1025, 1217, 0, 1244, 0, 0, 1246, 0, 0, 0, 1037, 0,
- 0, 0, 1250, 1049, 0, 1252, 0, 0, 0, 0, 1036, 0, 0, 0, 0, 1254, 0, 0, 0,
- 1262, 1038, 0, 1264, 0, 0, 1266, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 1272,
- 0, 0, 1260, 0, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, 0, 1107, 0, 1104, 0, 0,
- 0, 0, 1239, 0, 1105, 1218, 0, 1245, 0, 0, 1247, 0, 0, 0, 1117, 0, 0, 0,
- 1251, 1081, 0, 1253, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 1255, 0, 0, 0, 1263,
- 1118, 0, 1265, 0, 0, 1267, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, 1273, 0, 0,
- 1261, 0, 0, 1111, 0, 0, 0, 1142, 0, 0, 1143, 0, 0, 0, 0, 0, 1242, 0, 0,
- 1243, 0, 0, 1258, 0, 0, 0, 0, 0, 0, 1259, 0, 1570, 1571, 1573, 0, 1572,
- 0, 0, 1574, 0, 0, 0, 0, 0, 0, 1730, 0, 0, 1747, 0, 0, 1728, 0, 0, 0, 0,
- 2345, 0, 0, 2353, 0, 0, 2356, 0, 0, 0, 2507, 2508, 0, 0, 0, 2891, 2888,
- 2892, 2964, 0, 0, 0, 0, 0, 3018, 3020, 0, 3019, 0, 0, 0, 0, 3144, 0, 0,
- 0, 0, 3264, 0, 3274, 3271, 3272, 0, 3275, 0, 0, 0, 0, 3402, 3404, 0,
- 3403, 0, 0, 0, 0, 3546, 3548, 3550, 0, 0, 0, 0, 3549, 0, 0, 0, 0, 0,
- 4134, 0, 0, 0, 6918, 0, 0, 6920, 0, 0, 6922, 0, 0, 6924, 0, 0, 0, 0, 0,
- 0, 6926, 0, 0, 6930, 0, 0, 6971, 0, 0, 6973, 0, 0, 0, 0, 0, 0, 6976, 0,
- 0, 6977, 0, 0, 6979, 0, 0, 0, 7736, 0, 0, 7737, 0, 0, 0, 0, 0, 0, 7772,
- 0, 0, 7773, 0, 0, 0, 0, 7784, 0, 0, 7785, 0, 0, 7852, 0, 0, 7862, 0, 0,
- 0, 7853, 0, 0, 7863, 0, 0, 0, 7878, 0, 0, 7879, 0, 0, 7896, 0, 0, 7897,
- 0, 0, 0, 0, 7938, 7940, 0, 0, 7942, 8064, 0, 7939, 7941, 0, 0, 7943,
- 8065, 0, 0, 8066, 0, 0, 0, 0, 0, 0, 8067, 0, 0, 8068, 0, 0, 8069, 0, 0,
- 8070, 0, 0, 0, 0, 0, 0, 8071, 0, 7946, 7948, 0, 0, 7950, 8072, 0, 7947,
- 7949, 0, 0, 7951, 8073, 0, 0, 8074, 0, 0, 0, 0, 0, 0, 8075, 0, 0, 8076,
- 0, 0, 8077, 0, 0, 8078, 0, 0, 0, 0, 0, 0, 8079, 0, 7954, 7956, 0, 7955,
- 7957, 0, 0, 0, 0, 0, 7962, 7964, 0, 0, 0, 0, 0, 7963, 7965, 0, 7970,
- 7972, 0, 0, 7974, 8080, 0, 7971, 7973, 0, 0, 7975, 8081, 0, 0, 8082, 0,
- 0, 0, 0, 0, 0, 8083, 0, 0, 8084, 0, 0, 8085, 0, 0, 8086, 0, 0, 0, 0, 0,
- 0, 8087, 0, 7978, 7980, 0, 0, 7982, 8088, 0, 7979, 7981, 0, 0, 7983,
- 8089, 0, 0, 8090, 0, 0, 0, 0, 0, 0, 8091, 0, 0, 8092, 0, 0, 8093, 0, 0,
- 8094, 0, 0, 0, 0, 0, 0, 8095, 0, 7986, 7988, 0, 0, 7990, 0, 0, 7987,
- 7989, 0, 0, 7991, 0, 0, 0, 0, 0, 0, 7994, 7996, 0, 0, 0, 0, 0, 0, 7998,
- 0, 0, 7995, 7997, 0, 0, 7999, 0, 0, 8002, 8004, 0, 8003, 8005, 0, 0, 0,
- 0, 0, 8010, 8012, 0, 0, 0, 0, 0, 8011, 8013, 0, 8018, 8020, 0, 0, 8022,
- 0, 0, 8019, 8021, 0, 0, 8023, 0, 0, 0, 0, 0, 0, 8027, 8029, 0, 0, 0, 0,
- 0, 0, 8031, 0, 0, 8034, 8036, 0, 0, 8038, 8096, 0, 8035, 8037, 0, 0,
- 8039, 8097, 0, 0, 8098, 0, 0, 8099, 0, 0, 0, 0, 0, 0, 8100, 0, 0, 8101,
- 0, 0, 8102, 0, 0, 8103, 0, 0, 0, 0, 0, 8042, 8044, 0, 0, 8046, 8104, 0,
- 8043, 8045, 0, 0, 8047, 8105, 0, 0, 8106, 0, 0, 8107, 0, 0, 0, 0, 0, 0,
- 8108, 0, 0, 8109, 0, 0, 8110, 0, 0, 8111, 0, 0, 0, 0, 0, 0, 8114, 0, 0,
- 8130, 0, 0, 8178, 0, 0, 8119, 0, 0, 0, 0, 0, 8141, 8142, 0, 0, 8143, 0,
- 0, 0, 8135, 0, 0, 8183, 0, 0, 0, 0, 0, 8157, 8158, 0, 0, 0, 0, 0, 0,
- 8159, 0, 8602, 0, 0, 8603, 0, 0, 0, 0, 0, 0, 8622, 0, 0, 8653, 0, 0,
- 8655, 0, 0, 8654, 0, 0, 0, 0, 0, 0, 8708, 0, 0, 8713, 0, 0, 8716, 0, 0,
- 8740, 0, 0, 0, 0, 0, 0, 8742, 0, 0, 8769, 0, 0, 8772, 0, 0, 8775, 0, 0,
- 0, 0, 0, 0, 8777, 0, 0, 8813, 0, 0, 8802, 0, 0, 8816, 0, 0, 0, 0, 0, 0,
- 8817, 0, 0, 8820, 0, 0, 8821, 0, 0, 8824, 0, 0, 0, 0, 0, 0, 8825, 0, 0,
- 8832, 0, 0, 8833, 0, 0, 8928, 0, 0, 0, 0, 0, 0, 8929, 0, 0, 8836, 0, 0,
- 8837, 0, 0, 8840, 0, 0, 0, 0, 0, 0, 8841, 0, 0, 8930, 0, 0, 8931, 0, 0,
- 8876, 0, 0, 0, 0, 0, 0, 8877, 0, 0, 8878, 0, 0, 8879, 0, 0, 8938, 0, 0,
- 0, 0, 0, 0, 8939, 0, 0, 8940, 0, 0, 8941, 0, 0, 0, 12436, 0, 0, 12364, 0,
- 0, 0, 0, 0, 0, 12366, 0, 0, 12368, 0, 0, 12370, 0, 0, 12372, 0, 0, 0, 0,
- 0, 0, 12374, 0, 0, 12376, 0, 0, 12378, 0, 0, 12380, 0, 0, 0, 0, 0, 0,
- 12382, 0, 0, 12384, 0, 0, 12386, 0, 0, 12389, 0, 0, 0, 0, 0, 0, 12391, 0,
- 0, 12393, 0, 0, 12400, 12401, 0, 12403, 12404, 0, 0, 0, 0, 0, 12406,
- 12407, 0, 0, 0, 0, 0, 12409, 12410, 0, 12412, 12413, 0, 12446, 0, 0, 0,
- 0, 0, 0, 12532, 0, 0, 12460, 0, 0, 12462, 0, 0, 12464, 0, 0, 0, 0, 0, 0,
- 12466, 0, 0, 12468, 0, 0, 12470, 0, 0, 12472, 0, 0, 0, 0, 0, 0, 12474, 0,
- 0, 12476, 0, 0, 12478, 0, 0, 12480, 0, 0, 0, 0, 0, 0, 12482, 0, 0, 12485,
- 0, 0, 12487, 0, 0, 12489, 0, 0, 0, 0, 0, 0, 12496, 12497, 0, 0, 0, 0, 0,
- 12499, 12500, 0, 12502, 12503, 0, 12505, 12506, 0, 0, 0, 0, 0, 12508,
- 12509, 0, 0, 0, 0, 0, 12535, 0, 0, 12536, 0, 0, 12537, 0, 0, 0, 0, 0, 0,
- 12538, 0, 0, 12542, 0, 0, 0, 0, 69786, 0, 0, 69788, 0, 0, 69803, 0, 0, 0,
- 69934, 0, 0, 69935, 0, 0, 0, 70475, 70476, 0, 0, 0, 70844, 70843, 70846,
- 0, 0, 0, 71098, 0, 0, 71099, 0, 0, 0, 71992,
+ 7830, 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, 0, 464, 521, 523, 0,
+ 0, 0, 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 0, 309, 0, 0, 0, 0, 496,
+ 0, 0, 0, 0, 7729, 0, 489, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 311, 7733, 0, 0,
+ 0, 0, 0, 314, 0, 318, 0, 0, 0, 0, 0, 7735, 0, 0, 0, 316, 0, 7741, 0, 0,
+ 7739, 0, 7743, 0, 0, 0, 0, 7745, 0, 0, 7747, 0, 0, 0, 0, 0, 505, 324, 0,
+ 241, 0, 0, 7749, 0, 0, 0, 0, 328, 0, 7751, 0, 0, 0, 326, 0, 7755, 0, 0,
+ 7753, 0, 0, 0, 0, 242, 243, 244, 245, 333, 335, 559, 246, 7887, 0, 337,
+ 466, 525, 527, 0, 0, 417, 7885, 491, 0, 0, 0, 0, 0, 7765, 0, 0, 0, 0,
+ 7767, 0, 341, 0, 0, 0, 0, 7769, 0, 0, 0, 0, 345, 529, 531, 0, 0, 0, 7771,
+ 0, 0, 0, 343, 0, 0, 0, 0, 7775, 0, 347, 349, 0, 0, 0, 7777, 0, 0, 0, 0,
+ 353, 0, 7779, 0, 0, 537, 351, 0, 0, 0, 7787, 7831, 0, 0, 0, 357, 0, 0, 0,
+ 0, 0, 7789, 0, 0, 539, 355, 0, 7793, 0, 0, 7791, 0, 0, 0, 0, 249, 250,
+ 251, 361, 363, 365, 0, 252, 7911, 367, 369, 468, 533, 535, 0, 0, 432,
+ 7909, 7795, 0, 0, 0, 371, 7799, 0, 7797, 0, 0, 0, 0, 7805, 0, 7807, 0, 0,
+ 0, 0, 0, 7809, 7811, 373, 0, 0, 0, 7815, 7813, 0, 7832, 0, 0, 0, 7817, 0,
+ 0, 0, 7819, 7821, 0, 0, 0, 7923, 253, 375, 7929, 563, 0, 7823, 255, 7927,
+ 7833, 0, 0, 0, 7925, 0, 0, 378, 7825, 0, 0, 0, 380, 0, 0, 0, 0, 382, 0,
+ 7827, 0, 0, 0, 0, 7829, 0, 0, 0, 0, 8173, 901, 0, 0, 0, 0, 0, 0, 8129, 0,
+ 0, 7846, 7844, 0, 7850, 0, 0, 0, 0, 7848, 0, 0, 478, 0, 0, 0, 506, 0, 0,
+ 508, 0, 0, 482, 0, 0, 0, 7688, 0, 7872, 7870, 0, 7876, 0, 0, 0, 0, 7874,
+ 0, 0, 0, 7726, 0, 0, 0, 0, 0, 7890, 7888, 0, 7894, 0, 0, 0, 0, 7892, 0,
+ 0, 0, 7756, 0, 0, 556, 0, 0, 7758, 0, 0, 0, 554, 0, 0, 0, 510, 0, 0, 0,
+ 0, 0, 475, 471, 0, 0, 469, 0, 0, 473, 0, 0, 0, 7847, 7845, 0, 7851, 0, 0,
+ 0, 0, 7849, 0, 0, 479, 0, 0, 0, 507, 0, 0, 509, 0, 0, 483, 0, 0, 0, 7689,
+ 0, 7873, 7871, 0, 7877, 0, 0, 0, 0, 7875, 0, 0, 0, 7727, 0, 0, 0, 0, 0,
+ 7891, 7889, 0, 7895, 0, 0, 0, 0, 7893, 0, 0, 0, 7757, 0, 0, 557, 0, 0,
+ 7759, 0, 0, 0, 555, 0, 0, 0, 511, 0, 0, 0, 0, 0, 476, 472, 0, 0, 470, 0,
+ 0, 474, 0, 0, 0, 7856, 7854, 0, 7860, 0, 0, 0, 0, 7858, 0, 0, 7857, 7855,
+ 0, 7861, 0, 0, 0, 0, 7859, 0, 0, 7700, 7702, 0, 0, 0, 0, 0, 7701, 7703,
+ 0, 0, 0, 0, 0, 7760, 7762, 0, 7761, 7763, 0, 0, 0, 7780, 0, 0, 7781, 0,
+ 0, 7782, 0, 0, 0, 0, 0, 0, 7783, 0, 7800, 0, 0, 7801, 0, 0, 0, 0, 7802,
+ 0, 0, 7803, 0, 0, 0, 0, 0, 7835, 0, 0, 0, 0, 7900, 7898, 0, 7904, 0, 0,
+ 0, 0, 7902, 7906, 0, 0, 0, 0, 0, 7901, 7899, 0, 7905, 0, 0, 0, 0, 7903,
+ 0, 0, 0, 0, 7907, 0, 7914, 7912, 0, 7918, 0, 0, 0, 0, 7916, 0, 0, 0, 0,
+ 7920, 0, 7915, 7913, 0, 7919, 7917, 0, 0, 0, 0, 7921, 0, 0, 0, 0, 494, 0,
+ 0, 0, 492, 0, 0, 493, 0, 0, 480, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 7708, 0,
+ 0, 7709, 0, 560, 0, 0, 0, 0, 0, 0, 561, 0, 495, 0, 0, 0, 8122, 902, 0, 0,
+ 8121, 8120, 0, 0, 0, 0, 7944, 7945, 0, 0, 0, 0, 0, 8124, 0, 8136, 904, 0,
+ 0, 0, 0, 7960, 7961, 0, 0, 0, 8138, 905, 0, 0, 0, 0, 7976, 7977, 0, 8140,
+ 0, 0, 0, 0, 0, 8154, 906, 0, 0, 8153, 8152, 0, 938, 0, 0, 7992, 7993, 0,
+ 0, 0, 8184, 908, 0, 0, 0, 0, 8008, 8009, 0, 0, 0, 0, 0, 0, 8172, 0, 0, 0,
+ 8170, 910, 0, 0, 8169, 8168, 0, 939, 0, 0, 0, 8025, 0, 0, 0, 8186, 911,
+ 8040, 8041, 0, 0, 0, 0, 0, 8188, 0, 0, 8116, 0, 0, 8132, 0, 0, 0, 0, 0,
+ 8048, 940, 0, 0, 8113, 8112, 0, 0, 0, 0, 7936, 7937, 0, 0, 0, 0, 8118,
+ 8115, 0, 0, 0, 0, 0, 8050, 941, 7952, 7953, 0, 0, 0, 8052, 942, 0, 0, 0,
+ 0, 7968, 7969, 0, 0, 0, 0, 8134, 8131, 0, 8054, 943, 0, 0, 8145, 8144, 0,
+ 970, 0, 0, 7984, 7985, 8150, 0, 0, 0, 0, 0, 0, 8056, 972, 0, 0, 0, 0,
+ 8000, 8001, 0, 8164, 8165, 0, 0, 0, 8058, 973, 0, 0, 8161, 8160, 0, 971,
+ 0, 0, 0, 0, 0, 0, 8016, 8017, 0, 0, 0, 0, 8166, 0, 0, 8060, 974, 0, 0, 0,
+ 0, 8032, 8033, 8182, 8179, 0, 0, 0, 0, 0, 8146, 912, 0, 0, 0, 0, 0, 0,
+ 8151, 0, 0, 8162, 944, 0, 0, 8167, 0, 0, 0, 8180, 0, 0, 979, 0, 0, 0, 0,
+ 0, 980, 0, 0, 1031, 0, 0, 0, 0, 1232, 0, 1234, 0, 0, 0, 0, 1027, 0, 1024,
+ 0, 0, 0, 0, 1238, 0, 1025, 1217, 0, 1244, 0, 0, 1246, 0, 0, 0, 1037, 0,
+ 0, 0, 1250, 1049, 0, 1252, 0, 0, 0, 0, 1036, 0, 0, 0, 0, 1254, 0, 0, 0,
+ 1262, 1038, 0, 1264, 0, 0, 1266, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 1272,
+ 0, 0, 1260, 0, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, 0, 1107, 0, 1104, 0, 0,
+ 0, 0, 1239, 0, 1105, 1218, 0, 1245, 0, 0, 1247, 0, 0, 0, 1117, 0, 0, 0,
+ 1251, 1081, 0, 1253, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 1255, 0, 0, 0, 1263,
+ 1118, 0, 1265, 0, 0, 1267, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, 1273, 0, 0,
+ 1261, 0, 0, 1111, 0, 0, 0, 1142, 0, 0, 1143, 0, 0, 0, 0, 0, 1242, 0, 0,
+ 1243, 0, 0, 1258, 0, 0, 0, 0, 0, 0, 1259, 0, 1570, 1571, 1573, 0, 1572,
+ 0, 0, 1574, 0, 0, 0, 0, 0, 0, 1730, 0, 0, 1747, 0, 0, 1728, 0, 0, 0, 0,
+ 2345, 0, 0, 2353, 0, 0, 2356, 0, 0, 0, 2507, 2508, 0, 0, 0, 2891, 2888,
+ 2892, 2964, 0, 0, 0, 0, 0, 3018, 3020, 0, 3019, 0, 0, 0, 0, 3144, 0, 0,
+ 0, 0, 3264, 0, 3274, 3271, 3272, 0, 3275, 0, 0, 0, 0, 3402, 3404, 0,
+ 3403, 0, 0, 0, 0, 3546, 3548, 3550, 0, 0, 0, 0, 3549, 0, 0, 0, 0, 0,
+ 4134, 0, 0, 0, 6918, 0, 0, 6920, 0, 0, 6922, 0, 0, 6924, 0, 0, 0, 0, 0,
+ 0, 6926, 0, 0, 6930, 0, 0, 6971, 0, 0, 6973, 0, 0, 0, 0, 0, 0, 6976, 0,
+ 0, 6977, 0, 0, 6979, 0, 0, 0, 7736, 0, 0, 7737, 0, 0, 0, 0, 0, 0, 7772,
+ 0, 0, 7773, 0, 0, 0, 0, 7784, 0, 0, 7785, 0, 0, 7852, 0, 0, 7862, 0, 0,
+ 0, 7853, 0, 0, 7863, 0, 0, 0, 7878, 0, 0, 7879, 0, 0, 7896, 0, 0, 7897,
+ 0, 0, 0, 0, 7938, 7940, 0, 0, 7942, 8064, 0, 7939, 7941, 0, 0, 7943,
+ 8065, 0, 0, 8066, 0, 0, 0, 0, 0, 0, 8067, 0, 0, 8068, 0, 0, 8069, 0, 0,
+ 8070, 0, 0, 0, 0, 0, 0, 8071, 0, 7946, 7948, 0, 0, 7950, 8072, 0, 7947,
+ 7949, 0, 0, 7951, 8073, 0, 0, 8074, 0, 0, 0, 0, 0, 0, 8075, 0, 0, 8076,
+ 0, 0, 8077, 0, 0, 8078, 0, 0, 0, 0, 0, 0, 8079, 0, 7954, 7956, 0, 7955,
+ 7957, 0, 0, 0, 0, 0, 7962, 7964, 0, 0, 0, 0, 0, 7963, 7965, 0, 7970,
+ 7972, 0, 0, 7974, 8080, 0, 7971, 7973, 0, 0, 7975, 8081, 0, 0, 8082, 0,
+ 0, 0, 0, 0, 0, 8083, 0, 0, 8084, 0, 0, 8085, 0, 0, 8086, 0, 0, 0, 0, 0,
+ 0, 8087, 0, 7978, 7980, 0, 0, 7982, 8088, 0, 7979, 7981, 0, 0, 7983,
+ 8089, 0, 0, 8090, 0, 0, 0, 0, 0, 0, 8091, 0, 0, 8092, 0, 0, 8093, 0, 0,
+ 8094, 0, 0, 0, 0, 0, 0, 8095, 0, 7986, 7988, 0, 0, 7990, 0, 0, 7987,
+ 7989, 0, 0, 7991, 0, 0, 0, 0, 0, 0, 7994, 7996, 0, 0, 0, 0, 0, 0, 7998,
+ 0, 0, 7995, 7997, 0, 0, 7999, 0, 0, 8002, 8004, 0, 8003, 8005, 0, 0, 0,
+ 0, 0, 8010, 8012, 0, 0, 0, 0, 0, 8011, 8013, 0, 8018, 8020, 0, 0, 8022,
+ 0, 0, 8019, 8021, 0, 0, 8023, 0, 0, 0, 0, 0, 0, 8027, 8029, 0, 0, 0, 0,
+ 0, 0, 8031, 0, 0, 8034, 8036, 0, 0, 8038, 8096, 0, 8035, 8037, 0, 0,
+ 8039, 8097, 0, 0, 8098, 0, 0, 8099, 0, 0, 0, 0, 0, 0, 8100, 0, 0, 8101,
+ 0, 0, 8102, 0, 0, 8103, 0, 0, 0, 0, 0, 8042, 8044, 0, 0, 8046, 8104, 0,
+ 8043, 8045, 0, 0, 8047, 8105, 0, 0, 8106, 0, 0, 8107, 0, 0, 0, 0, 0, 0,
+ 8108, 0, 0, 8109, 0, 0, 8110, 0, 0, 8111, 0, 0, 0, 0, 0, 0, 8114, 0, 0,
+ 8130, 0, 0, 8178, 0, 0, 8119, 0, 0, 0, 0, 0, 8141, 8142, 0, 0, 8143, 0,
+ 0, 0, 8135, 0, 0, 8183, 0, 0, 0, 0, 0, 8157, 8158, 0, 0, 0, 0, 0, 0,
+ 8159, 0, 8602, 0, 0, 8603, 0, 0, 0, 0, 0, 0, 8622, 0, 0, 8653, 0, 0,
+ 8655, 0, 0, 8654, 0, 0, 0, 0, 0, 0, 8708, 0, 0, 8713, 0, 0, 8716, 0, 0,
+ 8740, 0, 0, 0, 0, 0, 0, 8742, 0, 0, 8769, 0, 0, 8772, 0, 0, 8775, 0, 0,
+ 0, 0, 0, 0, 8777, 0, 0, 8813, 0, 0, 8802, 0, 0, 8816, 0, 0, 0, 0, 0, 0,
+ 8817, 0, 0, 8820, 0, 0, 8821, 0, 0, 8824, 0, 0, 0, 0, 0, 0, 8825, 0, 0,
+ 8832, 0, 0, 8833, 0, 0, 8928, 0, 0, 0, 0, 0, 0, 8929, 0, 0, 8836, 0, 0,
+ 8837, 0, 0, 8840, 0, 0, 0, 0, 0, 0, 8841, 0, 0, 8930, 0, 0, 8931, 0, 0,
+ 8876, 0, 0, 0, 0, 0, 0, 8877, 0, 0, 8878, 0, 0, 8879, 0, 0, 8938, 0, 0,
+ 0, 0, 0, 0, 8939, 0, 0, 8940, 0, 0, 8941, 0, 0, 0, 12436, 0, 0, 12364, 0,
+ 0, 0, 0, 0, 0, 12366, 0, 0, 12368, 0, 0, 12370, 0, 0, 12372, 0, 0, 0, 0,
+ 0, 0, 12374, 0, 0, 12376, 0, 0, 12378, 0, 0, 12380, 0, 0, 0, 0, 0, 0,
+ 12382, 0, 0, 12384, 0, 0, 12386, 0, 0, 12389, 0, 0, 0, 0, 0, 0, 12391, 0,
+ 0, 12393, 0, 0, 12400, 12401, 0, 12403, 12404, 0, 0, 0, 0, 0, 12406,
+ 12407, 0, 0, 0, 0, 0, 12409, 12410, 0, 12412, 12413, 0, 12446, 0, 0, 0,
+ 0, 0, 0, 12532, 0, 0, 12460, 0, 0, 12462, 0, 0, 12464, 0, 0, 0, 0, 0, 0,
+ 12466, 0, 0, 12468, 0, 0, 12470, 0, 0, 12472, 0, 0, 0, 0, 0, 0, 12474, 0,
+ 0, 12476, 0, 0, 12478, 0, 0, 12480, 0, 0, 0, 0, 0, 0, 12482, 0, 0, 12485,
+ 0, 0, 12487, 0, 0, 12489, 0, 0, 0, 0, 0, 0, 12496, 12497, 0, 0, 0, 0, 0,
+ 12499, 12500, 0, 12502, 12503, 0, 12505, 12506, 0, 0, 0, 0, 0, 12508,
+ 12509, 0, 0, 0, 0, 0, 12535, 0, 0, 12536, 0, 0, 12537, 0, 0, 0, 0, 0, 0,
+ 12538, 0, 0, 12542, 0, 0, 0, 0, 69786, 0, 0, 69788, 0, 0, 69803, 0, 0, 0,
+ 69934, 0, 0, 69935, 0, 0, 0, 70475, 70476, 0, 0, 0, 70844, 70843, 70846,
+ 0, 0, 0, 71098, 0, 0, 71099, 0, 0, 0, 71992,
};
static const change_record change_records_3_2_0[] = {
@@ -6050,7 +6050,7 @@ static const change_record change_records_3_2_0[] = {
{ 255, 19, 255, 255, 255, -1 },
{ 1, 255, 255, 0, 255, 0 },
};
-static const unsigned char changes_3_2_0_index[] = {
+static const unsigned char changes_3_2_0_index[] = {
0, 1, 2, 2, 3, 4, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 2, 2, 2, 38, 39, 2, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
@@ -6076,56 +6076,56 @@ static const unsigned char changes_3_2_0_index[] = {
2, 2, 2, 2, 2, 2, 2, 114, 115, 116, 117, 118, 119, 2, 2, 120, 121, 122,
2, 123, 124, 125, 126, 127, 128, 2, 129, 130, 131, 132, 133, 134, 2, 51,
51, 135, 2, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 2,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 2, 158, 159, 2,
- 160, 161, 162, 163, 2, 164, 165, 166, 167, 168, 169, 2, 2, 170, 171, 172,
- 173, 2, 174, 2, 175, 51, 51, 51, 51, 51, 51, 51, 176, 177, 51, 178, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 51, 51,
- 51, 51, 51, 51, 179, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 51, 51, 180, 2, 2, 2,
+ 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 2, 158, 159, 2,
+ 160, 161, 162, 163, 2, 164, 165, 166, 167, 168, 169, 2, 2, 170, 171, 172,
+ 173, 2, 174, 2, 175, 51, 51, 51, 51, 51, 51, 51, 176, 177, 51, 178, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 51, 51,
+ 51, 51, 51, 51, 179, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 51, 51, 180, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 51, 51, 181, 182,
- 183, 184, 2, 2, 2, 2, 185, 186, 187, 188, 51, 51, 51, 51, 51, 51, 51, 51,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 51, 51, 181, 182,
+ 183, 184, 2, 2, 2, 2, 185, 186, 187, 188, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 103, 51, 51, 51, 51, 51, 51, 51, 51, 51, 189, 190, 2, 2, 2,
+ 51, 51, 51, 103, 51, 51, 51, 51, 51, 51, 51, 51, 51, 189, 190, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 191, 51,
- 51, 192, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 193, 194,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 51, 191, 51,
+ 51, 192, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 193, 194,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 195, 196, 197, 198, 199,
- 2, 2, 200, 2, 2, 2, 201, 202, 203, 51, 51, 51, 51, 51, 204, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 205, 2, 206, 2, 2, 207, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 51, 208, 209, 2, 2, 2, 2, 2, 210, 211, 212, 2, 213, 214, 2, 2, 215, 216,
- 51, 217, 218, 2, 51, 51, 51, 51, 51, 51, 51, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 51, 228, 2, 2, 2, 2, 2, 2, 2, 2, 229, 230, 98, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 87, 231, 2, 232, 233, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 195, 196, 197, 198, 199,
+ 2, 2, 200, 2, 2, 2, 201, 202, 203, 51, 51, 51, 51, 51, 204, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 205, 2, 206, 2, 2, 207, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 51, 208, 209, 2, 2, 2, 2, 2, 210, 211, 212, 2, 213, 214, 2, 2, 215, 216,
+ 51, 217, 218, 2, 51, 51, 51, 51, 51, 51, 51, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 51, 228, 2, 2, 2, 2, 2, 2, 2, 2, 229, 230, 98, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 87, 231, 2, 232, 233, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 234, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 235, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 236, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 234, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 235, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 236, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 237, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 237, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 238, 51, 51, 51,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 238, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 239, 51, 240, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 239, 51, 240, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 241, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 241, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 242, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 234, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 242, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 234, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 243, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 51, 51, 51, 51, 51, 243, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -6358,7 +6358,7 @@ static const unsigned char changes_3_2_0_index[] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 244, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 51, 244, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -6422,10 +6422,10 @@ static const unsigned char changes_3_2_0_index[] = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
};
-static const unsigned char changes_3_2_0_data[] = {
+static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6508,8 +6508,8 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6536,7 +6536,7 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6548,26 +6548,26 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 20, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 9, 9, 9, 0, 9, 9, 9, 9,
9, 9, 9, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 9, 0, 0, 9, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6635,7 +6635,7 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6676,7 +6676,7 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
@@ -6699,7 +6699,7 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
@@ -6810,12 +6810,12 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9,
@@ -6839,7 +6839,7 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6859,8 +6859,8 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
@@ -6873,7 +6873,7 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6907,9 +6907,9 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6963,7 +6963,7 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6987,12 +6987,12 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
@@ -7027,7 +7027,7 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
@@ -7114,7 +7114,7 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 0,
+ 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
@@ -7222,208 +7222,208 @@ static const unsigned char changes_3_2_0_data[] = {
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 9, 9, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 9, 9, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 0, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 0, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 9, 9, 0, 0, 9, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
- 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 9, 9, 0, 0, 9, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, 0,
- 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 0, 0, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 0, 9, 9, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 0, 9, 9, 0, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0,
+ 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7431,48 +7431,48 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 0, 0,
0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7480,190 +7480,190 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 9, 9, 9,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 9, 9, 9, 9, 0, 9, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 9,
- 0, 9, 0, 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9,
- 9, 0, 9, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 9,
- 9, 9, 9, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 0, 9, 9, 9, 9, 9,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 9, 9, 9, 9, 0, 9, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 9,
+ 0, 9, 0, 9, 9, 9, 0, 9, 9, 0, 9, 0, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9,
+ 9, 0, 9, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 9,
+ 9, 9, 9, 0, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 0, 9, 9, 9, 9, 9,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9,
- 9, 9, 9, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9,
+ 9, 9, 9, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7672,14 +7672,14 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7690,7 +7690,7 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -7699,38 +7699,38 @@ static const unsigned char changes_3_2_0_data[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
diff --git a/contrib/tools/python3/src/Modules/unicodename_db.h b/contrib/tools/python3/src/Modules/unicodename_db.h
index 774c811c21..793d5109ee 100644
--- a/contrib/tools/python3/src/Modules/unicodename_db.h
+++ b/contrib/tools/python3/src/Modules/unicodename_db.h
@@ -1,11 +1,11 @@
-/* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */
+/* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */
#define NAME_MAXLEN 256
/* lexicon */
-static const unsigned char lexicon[] = {
- 76, 69, 84, 84, 69, 210, 83, 77, 65, 76, 204, 83, 73, 71, 206, 87, 73,
- 84, 200, 83, 89, 76, 76, 65, 66, 76, 197, 67, 65, 80, 73, 84, 65, 204,
+static const unsigned char lexicon[] = {
+ 76, 69, 84, 84, 69, 210, 83, 77, 65, 76, 204, 83, 73, 71, 206, 87, 73,
+ 84, 200, 83, 89, 76, 76, 65, 66, 76, 197, 67, 65, 80, 73, 84, 65, 204,
72, 73, 69, 82, 79, 71, 76, 89, 80, 200, 76, 65, 84, 73, 206, 65, 82, 65,
66, 73, 195, 67, 85, 78, 69, 73, 70, 79, 82, 205, 89, 201, 67, 74, 203,
77, 65, 84, 72, 69, 77, 65, 84, 73, 67, 65, 204, 69, 71, 89, 80, 84, 73,
@@ -13,959 +13,959 @@ static const unsigned char lexicon[] = {
66, 79, 204, 68, 73, 71, 73, 212, 86, 79, 87, 69, 204, 84, 65, 78, 71,
85, 212, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, 73, 65, 206, 83, 89,
76, 76, 65, 66, 73, 67, 211, 83, 73, 71, 78, 87, 82, 73, 84, 73, 78, 199,
- 84, 73, 77, 69, 211, 66, 65, 77, 85, 205, 65, 78, 196, 83, 67, 82, 73,
- 80, 212, 66, 79, 76, 196, 65, 78, 65, 84, 79, 76, 73, 65, 206, 72, 65,
- 78, 71, 85, 204, 78, 85, 77, 66, 69, 210, 76, 73, 78, 69, 65, 210, 71,
- 82, 69, 69, 203, 76, 73, 71, 65, 84, 85, 82, 197, 77, 85, 83, 73, 67, 65,
- 204, 69, 84, 72, 73, 79, 80, 73, 195, 75, 72, 73, 84, 65, 206, 67, 79,
- 77, 66, 73, 78, 73, 78, 199, 70, 79, 210, 193, 67, 89, 82, 73, 76, 76,
- 73, 195, 73, 84, 65, 76, 73, 195, 84, 65, 77, 73, 204, 78, 85, 83, 72,
- 213, 76, 69, 70, 212, 67, 73, 82, 67, 76, 69, 196, 82, 65, 68, 73, 67,
- 65, 204, 83, 65, 78, 83, 45, 83, 69, 82, 73, 198, 83, 81, 85, 65, 82,
- 197, 82, 73, 71, 72, 212, 70, 73, 78, 65, 204, 84, 65, 201, 65, 82, 82,
- 79, 87, 128, 68, 79, 85, 66, 76, 197, 86, 65, 201, 83, 73, 71, 78, 128,
- 65, 66, 79, 86, 69, 128, 72, 69, 78, 84, 65, 73, 71, 65, 78, 193, 66, 76,
- 65, 67, 203, 65, 82, 82, 79, 215, 87, 72, 73, 84, 197, 66, 69, 76, 79,
- 87, 128, 65, 128, 86, 65, 82, 73, 65, 84, 73, 79, 206, 66, 82, 65, 73,
- 76, 76, 197, 80, 65, 84, 84, 69, 82, 206, 85, 128, 66, 89, 90, 65, 78,
- 84, 73, 78, 197, 73, 128, 73, 83, 79, 76, 65, 84, 69, 196, 77, 79, 68,
- 73, 70, 73, 69, 210, 79, 128, 75, 65, 84, 65, 75, 65, 78, 193, 194, 77,
- 65, 82, 75, 128, 68, 79, 212, 77, 89, 65, 78, 77, 65, 210, 79, 198, 75,
- 65, 78, 71, 88, 201, 75, 73, 75, 65, 75, 85, 201, 77, 69, 78, 68, 197,
- 86, 69, 82, 84, 73, 67, 65, 204, 77, 73, 68, 68, 76, 197, 84, 73, 66, 69,
- 84, 65, 206, 72, 69, 65, 86, 217, 73, 78, 73, 84, 73, 65, 204, 72, 77,
- 79, 78, 199, 79, 78, 197, 77, 69, 69, 205, 67, 79, 80, 84, 73, 195, 75,
- 72, 77, 69, 210, 82, 73, 71, 72, 84, 87, 65, 82, 68, 211, 65, 66, 79, 86,
- 197, 67, 65, 82, 82, 73, 69, 210, 89, 69, 200, 71, 69, 79, 82, 71, 73,
- 65, 206, 67, 72, 69, 82, 79, 75, 69, 197, 77, 79, 78, 71, 79, 76, 73, 65,
- 206, 79, 78, 69, 128, 80, 76, 85, 211, 84, 87, 207, 84, 87, 79, 128, 66,
- 79, 216, 76, 79, 87, 69, 210, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201,
- 83, 81, 85, 65, 82, 69, 196, 83, 89, 77, 66, 79, 76, 128, 80, 72, 65, 83,
- 69, 45, 197, 83, 84, 82, 79, 75, 69, 128, 84, 72, 82, 69, 197, 85, 80,
- 80, 69, 210, 76, 69, 70, 84, 87, 65, 82, 68, 211, 84, 207, 67, 79, 78,
- 83, 79, 78, 65, 78, 212, 77, 73, 65, 207, 86, 79, 67, 65, 76, 73, 195,
- 68, 82, 65, 87, 73, 78, 71, 211, 84, 73, 76, 197, 68, 85, 80, 76, 79, 89,
- 65, 206, 77, 65, 82, 203, 74, 79, 78, 71, 83, 69, 79, 78, 199, 80, 65,
- 82, 69, 78, 84, 72, 69, 83, 73, 90, 69, 196, 84, 72, 65, 205, 71, 79, 78,
- 68, 201, 72, 79, 79, 75, 128, 72, 69, 66, 82, 69, 215, 85, 208, 71, 76,
- 65, 71, 79, 76, 73, 84, 73, 195, 76, 79, 215, 84, 72, 82, 69, 69, 128,
- 70, 79, 85, 82, 128, 77, 65, 76, 65, 89, 65, 76, 65, 205, 79, 86, 69,
- 210, 83, 73, 89, 65, 209, 72, 65, 76, 198, 72, 73, 71, 200, 73, 78, 68,
- 69, 216, 80, 65, 72, 65, 87, 200, 68, 79, 87, 206, 67, 72, 79, 83, 69,
- 79, 78, 199, 72, 65, 128, 72, 65, 76, 70, 87, 73, 68, 84, 200, 72, 65,
- 78, 68, 45, 70, 73, 83, 212, 77, 69, 82, 79, 73, 84, 73, 195, 66, 65, 76,
- 73, 78, 69, 83, 197, 73, 68, 69, 79, 71, 82, 65, 80, 72, 73, 195, 70, 73,
- 86, 69, 128, 76, 73, 71, 72, 212, 73, 68, 69, 79, 71, 82, 65, 205, 80,
- 72, 65, 83, 69, 45, 196, 84, 79, 128, 65, 76, 67, 72, 69, 77, 73, 67, 65,
- 204, 65, 76, 69, 198, 84, 79, 78, 197, 83, 73, 78, 72, 65, 76, 193, 75,
- 65, 128, 66, 65, 82, 128, 78, 85, 77, 69, 82, 73, 195, 84, 85, 82, 78,
- 69, 196, 66, 82, 65, 72, 77, 201, 80, 65, 128, 82, 65, 128, 89, 65, 128,
- 72, 85, 78, 71, 65, 82, 73, 65, 206, 83, 73, 88, 128, 84, 72, 85, 77,
- 194, 77, 65, 128, 66, 65, 82, 194, 69, 73, 71, 72, 84, 128, 66, 76, 79,
- 67, 203, 72, 65, 200, 76, 65, 128, 78, 79, 82, 84, 200, 83, 69, 86, 69,
- 78, 128, 84, 72, 79, 85, 83, 65, 78, 68, 128, 78, 65, 128, 78, 73, 78,
- 69, 128, 70, 85, 76, 76, 87, 73, 68, 84, 200, 76, 79, 78, 199, 66, 82,
- 65, 67, 75, 69, 84, 128, 69, 81, 85, 65, 204, 83, 65, 128, 84, 65, 128,
- 84, 65, 199, 68, 79, 77, 73, 78, 207, 90, 90, 89, 88, 128, 90, 90, 89,
- 84, 128, 90, 90, 89, 82, 88, 128, 90, 90, 89, 82, 128, 90, 90, 89, 80,
- 128, 90, 90, 89, 65, 128, 90, 90, 89, 128, 90, 90, 85, 88, 128, 90, 90,
- 85, 82, 88, 128, 90, 90, 85, 82, 128, 90, 90, 85, 80, 128, 90, 90, 85,
- 128, 90, 90, 83, 89, 65, 128, 90, 90, 83, 65, 128, 90, 90, 79, 88, 128,
- 90, 90, 79, 80, 128, 90, 90, 79, 128, 90, 90, 73, 88, 128, 90, 90, 73,
- 84, 128, 90, 90, 73, 80, 128, 90, 90, 73, 69, 88, 128, 90, 90, 73, 69,
- 84, 128, 90, 90, 73, 69, 80, 128, 90, 90, 73, 69, 128, 90, 90, 73, 128,
- 90, 90, 69, 88, 128, 90, 90, 69, 80, 128, 90, 90, 69, 69, 128, 90, 90,
- 69, 128, 90, 90, 65, 88, 128, 90, 90, 65, 84, 128, 90, 90, 65, 80, 128,
- 90, 90, 65, 65, 128, 90, 90, 65, 128, 90, 89, 71, 79, 83, 128, 90, 87,
- 83, 80, 128, 90, 87, 78, 74, 128, 90, 87, 78, 66, 83, 80, 128, 90, 87,
- 74, 128, 90, 87, 202, 90, 87, 65, 82, 65, 75, 65, 89, 128, 90, 87, 65,
- 128, 90, 85, 84, 128, 90, 85, 79, 88, 128, 90, 85, 79, 80, 128, 90, 85,
- 79, 128, 90, 85, 77, 128, 90, 85, 66, 85, 82, 128, 90, 85, 53, 128, 90,
- 85, 181, 90, 213, 90, 83, 72, 65, 128, 90, 82, 65, 128, 90, 81, 65, 80,
- 72, 193, 90, 79, 84, 128, 90, 79, 79, 128, 90, 79, 77, 66, 73, 69, 128,
- 90, 79, 65, 128, 90, 76, 65, 77, 193, 90, 76, 65, 128, 90, 76, 193, 90,
- 74, 69, 128, 90, 73, 90, 50, 128, 90, 73, 81, 65, 65, 128, 90, 73, 80,
- 80, 69, 82, 45, 77, 79, 85, 84, 200, 90, 73, 78, 79, 82, 128, 90, 73, 76,
- 68, 69, 128, 90, 73, 71, 90, 65, 199, 90, 73, 71, 128, 90, 73, 68, 193,
- 90, 73, 66, 128, 90, 73, 194, 90, 73, 51, 128, 90, 201, 90, 72, 89, 88,
- 128, 90, 72, 89, 84, 128, 90, 72, 89, 82, 88, 128, 90, 72, 89, 82, 128,
- 90, 72, 89, 80, 128, 90, 72, 89, 128, 90, 72, 87, 69, 128, 90, 72, 87,
- 65, 128, 90, 72, 85, 88, 128, 90, 72, 85, 84, 128, 90, 72, 85, 82, 88,
- 128, 90, 72, 85, 82, 128, 90, 72, 85, 80, 128, 90, 72, 85, 79, 88, 128,
- 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, 128, 90, 72, 85, 128, 90, 72,
- 79, 88, 128, 90, 72, 79, 84, 128, 90, 72, 79, 80, 128, 90, 72, 79, 79,
- 128, 90, 72, 79, 73, 128, 90, 72, 79, 128, 90, 72, 73, 86, 69, 84, 69,
- 128, 90, 72, 73, 76, 128, 90, 72, 73, 128, 90, 72, 69, 88, 128, 90, 72,
- 69, 84, 128, 90, 72, 69, 80, 128, 90, 72, 69, 69, 128, 90, 72, 69, 128,
- 90, 72, 197, 90, 72, 65, 89, 73, 78, 128, 90, 72, 65, 88, 128, 90, 72,
- 65, 84, 128, 90, 72, 65, 82, 128, 90, 72, 65, 80, 128, 90, 72, 65, 73,
- 78, 128, 90, 72, 65, 65, 128, 90, 72, 65, 128, 90, 72, 128, 90, 69, 85,
- 83, 128, 90, 69, 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, 82, 207, 90,
- 69, 78, 128, 90, 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, 74, 65, 128,
- 90, 69, 66, 82, 193, 90, 69, 50, 128, 90, 197, 90, 65, 89, 78, 128, 90,
- 65, 89, 73, 78, 45, 89, 79, 68, 72, 128, 90, 65, 89, 73, 78, 128, 90, 65,
- 89, 73, 206, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 65, 84, 65, 128,
- 90, 65, 82, 81, 65, 128, 90, 65, 82, 76, 128, 90, 65, 81, 69, 198, 90,
- 65, 78, 65, 66, 65, 90, 65, 210, 90, 65, 77, 88, 128, 90, 65, 76, 128,
- 90, 65, 204, 90, 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, 73, 128, 90,
- 65, 72, 128, 90, 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, 128, 90, 65,
- 55, 128, 90, 193, 90, 48, 49, 54, 72, 128, 90, 48, 49, 54, 71, 128, 90,
- 48, 49, 54, 70, 128, 90, 48, 49, 54, 69, 128, 90, 48, 49, 54, 68, 128,
- 90, 48, 49, 54, 67, 128, 90, 48, 49, 54, 66, 128, 90, 48, 49, 54, 65,
- 128, 90, 48, 49, 54, 128, 90, 48, 49, 53, 73, 128, 90, 48, 49, 53, 72,
- 128, 90, 48, 49, 53, 71, 128, 90, 48, 49, 53, 70, 128, 90, 48, 49, 53,
- 69, 128, 90, 48, 49, 53, 68, 128, 90, 48, 49, 53, 67, 128, 90, 48, 49,
- 53, 66, 128, 90, 48, 49, 53, 65, 128, 90, 48, 49, 53, 128, 90, 48, 49,
- 52, 128, 90, 48, 49, 51, 128, 90, 48, 49, 50, 128, 90, 48, 49, 49, 128,
- 90, 48, 49, 48, 128, 90, 48, 48, 57, 128, 90, 48, 48, 56, 128, 90, 48,
- 48, 55, 128, 90, 48, 48, 54, 128, 90, 48, 48, 53, 65, 128, 90, 48, 48,
- 53, 128, 90, 48, 48, 52, 65, 128, 90, 48, 48, 52, 128, 90, 48, 48, 51,
- 66, 128, 90, 48, 48, 51, 65, 128, 90, 48, 48, 51, 128, 90, 48, 48, 50,
- 68, 128, 90, 48, 48, 50, 67, 128, 90, 48, 48, 50, 66, 128, 90, 48, 48,
- 50, 65, 128, 90, 48, 48, 50, 128, 90, 48, 48, 49, 128, 90, 128, 218, 89,
- 89, 88, 128, 89, 89, 84, 128, 89, 89, 82, 88, 128, 89, 89, 82, 128, 89,
- 89, 80, 128, 89, 89, 69, 128, 89, 89, 65, 65, 128, 89, 89, 65, 128, 89,
- 89, 128, 89, 87, 79, 79, 128, 89, 87, 79, 128, 89, 87, 73, 73, 128, 89,
- 87, 73, 128, 89, 87, 69, 128, 89, 87, 65, 65, 128, 89, 87, 65, 128, 89,
- 86, 128, 89, 85, 88, 128, 89, 85, 87, 79, 81, 128, 89, 85, 85, 75, 65,
- 76, 69, 65, 80, 73, 78, 84, 85, 128, 89, 85, 85, 128, 89, 85, 84, 128,
- 89, 85, 83, 128, 89, 85, 211, 89, 85, 82, 88, 128, 89, 85, 82, 128, 89,
- 85, 81, 128, 89, 85, 209, 89, 85, 80, 128, 89, 85, 79, 88, 128, 89, 85,
- 79, 84, 128, 89, 85, 79, 80, 128, 89, 85, 79, 77, 128, 89, 85, 79, 128,
- 89, 85, 78, 128, 89, 85, 77, 128, 89, 85, 74, 128, 89, 85, 73, 128, 89,
- 85, 69, 81, 128, 89, 85, 69, 128, 89, 85, 68, 72, 128, 89, 85, 68, 200,
- 89, 85, 65, 78, 128, 89, 85, 65, 69, 78, 128, 89, 85, 45, 89, 69, 79,
- 128, 89, 85, 45, 89, 69, 128, 89, 85, 45, 85, 128, 89, 85, 45, 79, 128,
- 89, 85, 45, 73, 128, 89, 85, 45, 69, 79, 128, 89, 85, 45, 69, 128, 89,
- 85, 45, 65, 69, 128, 89, 85, 45, 65, 128, 89, 85, 45, 52, 128, 89, 85,
- 45, 51, 128, 89, 85, 45, 50, 128, 89, 85, 45, 49, 128, 89, 85, 128, 89,
- 213, 89, 82, 89, 128, 89, 80, 83, 73, 76, 73, 128, 89, 80, 79, 82, 82,
- 79, 73, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, 128, 89, 80, 79, 75, 82,
- 73, 83, 73, 211, 89, 80, 79, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128,
- 89, 79, 89, 128, 89, 79, 88, 128, 89, 79, 87, 68, 128, 89, 79, 85, 84,
- 72, 70, 85, 76, 78, 69, 83, 83, 128, 89, 79, 85, 84, 72, 70, 85, 204, 89,
- 79, 213, 89, 79, 84, 128, 89, 79, 212, 89, 79, 82, 73, 128, 89, 79, 81,
- 128, 89, 79, 209, 89, 79, 80, 128, 89, 79, 79, 128, 89, 79, 77, 79, 128,
- 89, 79, 71, 72, 128, 89, 79, 68, 128, 89, 79, 196, 89, 79, 65, 128, 89,
- 79, 45, 89, 79, 128, 89, 79, 45, 89, 69, 79, 128, 89, 79, 45, 89, 65, 69,
- 128, 89, 79, 45, 89, 65, 128, 89, 79, 45, 79, 128, 89, 79, 45, 73, 128,
- 89, 79, 45, 69, 79, 128, 89, 79, 45, 65, 69, 128, 89, 79, 45, 65, 128,
- 89, 79, 45, 54, 128, 89, 79, 45, 53, 128, 89, 79, 45, 52, 128, 89, 79,
- 45, 51, 128, 89, 79, 45, 50, 128, 89, 79, 45, 49, 128, 89, 207, 89, 73,
- 90, 69, 84, 128, 89, 73, 88, 128, 89, 73, 87, 78, 128, 89, 73, 84, 128,
- 89, 73, 80, 128, 89, 73, 78, 71, 128, 89, 73, 73, 128, 89, 73, 72, 128,
- 89, 73, 199, 89, 73, 69, 88, 128, 89, 73, 69, 84, 128, 89, 73, 69, 80,
- 128, 89, 73, 69, 69, 128, 89, 73, 69, 128, 89, 73, 68, 68, 73, 83, 200,
- 89, 73, 45, 85, 128, 89, 73, 128, 89, 72, 69, 128, 89, 72, 65, 128, 89,
- 70, 69, 83, 73, 83, 128, 89, 70, 69, 83, 73, 211, 89, 70, 69, 206, 89,
- 69, 90, 73, 68, 201, 89, 69, 89, 128, 89, 69, 87, 128, 89, 69, 85, 88,
- 128, 89, 69, 85, 82, 65, 69, 128, 89, 69, 85, 81, 128, 89, 69, 85, 77,
- 128, 89, 69, 85, 65, 69, 84, 128, 89, 69, 85, 65, 69, 128, 89, 69, 84,
- 73, 86, 128, 89, 69, 83, 84, 85, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45,
- 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, 69, 85,
- 78, 71, 45, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 80,
- 65, 78, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 77, 73,
- 69, 85, 77, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 75, 73, 89, 69, 79,
- 75, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72,
- 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 72, 73, 69, 85, 72, 128, 89, 69,
- 83, 73, 69, 85, 78, 71, 128, 89, 69, 82, 85, 128, 89, 69, 82, 213, 89,
- 69, 82, 73, 128, 89, 69, 82, 65, 200, 89, 69, 82, 128, 89, 69, 79, 82,
- 73, 78, 72, 73, 69, 85, 72, 128, 89, 69, 79, 45, 89, 65, 128, 89, 69, 79,
- 45, 85, 128, 89, 69, 79, 45, 79, 128, 89, 69, 78, 73, 83, 69, 201, 89,
- 69, 78, 65, 80, 128, 89, 69, 78, 128, 89, 69, 206, 89, 69, 76, 76, 79,
- 87, 128, 89, 69, 76, 76, 79, 215, 89, 69, 73, 78, 128, 89, 69, 72, 128,
- 89, 69, 69, 71, 128, 89, 69, 69, 128, 89, 69, 65, 210, 89, 69, 65, 128,
- 89, 65, 90, 90, 128, 89, 65, 90, 72, 128, 89, 65, 90, 128, 89, 65, 89,
- 68, 128, 89, 65, 89, 65, 78, 78, 65, 128, 89, 65, 89, 128, 89, 65, 87,
- 78, 73, 78, 199, 89, 65, 87, 78, 128, 89, 65, 87, 128, 89, 65, 86, 128,
- 89, 65, 85, 128, 89, 65, 84, 84, 128, 89, 65, 84, 73, 128, 89, 65, 84,
- 72, 128, 89, 65, 84, 128, 89, 65, 83, 83, 128, 89, 65, 83, 72, 128, 89,
- 65, 83, 128, 89, 65, 82, 82, 128, 89, 65, 82, 78, 128, 89, 65, 82, 128,
- 89, 65, 210, 89, 65, 81, 128, 89, 65, 80, 128, 89, 65, 78, 83, 65, 89,
- 65, 128, 89, 65, 78, 71, 128, 89, 65, 78, 199, 89, 65, 78, 128, 89, 65,
- 77, 79, 75, 128, 89, 65, 77, 65, 75, 75, 65, 78, 128, 89, 65, 77, 128,
- 89, 65, 76, 128, 89, 65, 75, 72, 72, 128, 89, 65, 75, 72, 128, 89, 65,
- 75, 65, 83, 72, 128, 89, 65, 75, 128, 89, 65, 74, 85, 82, 86, 69, 68, 73,
- 195, 89, 65, 74, 128, 89, 65, 73, 128, 89, 65, 72, 72, 128, 89, 65, 72,
- 128, 89, 65, 71, 78, 128, 89, 65, 71, 72, 72, 128, 89, 65, 71, 72, 128,
- 89, 65, 71, 128, 89, 65, 70, 213, 89, 65, 70, 128, 89, 65, 69, 77, 77,
- 65, 69, 128, 89, 65, 68, 72, 128, 89, 65, 68, 68, 72, 128, 89, 65, 68,
- 68, 128, 89, 65, 68, 128, 89, 65, 67, 72, 128, 89, 65, 66, 72, 128, 89,
- 65, 66, 128, 89, 65, 65, 82, 85, 128, 89, 65, 65, 73, 128, 89, 65, 65,
- 68, 79, 128, 89, 65, 45, 89, 79, 128, 89, 65, 45, 85, 128, 89, 65, 45,
- 79, 128, 89, 65, 45, 53, 128, 89, 65, 45, 52, 128, 89, 65, 45, 51, 128,
- 89, 65, 45, 50, 128, 89, 65, 45, 49, 128, 89, 48, 48, 56, 128, 89, 48,
- 48, 55, 128, 89, 48, 48, 54, 128, 89, 48, 48, 53, 128, 89, 48, 48, 52,
- 128, 89, 48, 48, 51, 128, 89, 48, 48, 50, 128, 89, 48, 48, 49, 65, 128,
- 89, 48, 48, 49, 128, 89, 45, 67, 82, 69, 197, 88, 89, 88, 128, 88, 89,
- 85, 128, 88, 89, 84, 128, 88, 89, 82, 88, 128, 88, 89, 82, 128, 88, 89,
- 80, 128, 88, 89, 79, 79, 74, 128, 88, 89, 79, 79, 128, 88, 89, 79, 128,
- 88, 89, 73, 128, 88, 89, 69, 69, 205, 88, 89, 69, 69, 128, 88, 89, 69,
- 128, 88, 89, 65, 65, 128, 88, 89, 65, 128, 88, 89, 128, 88, 87, 73, 128,
- 88, 87, 69, 69, 128, 88, 87, 69, 128, 88, 87, 65, 65, 128, 88, 87, 65,
- 128, 88, 87, 128, 88, 215, 88, 86, 69, 128, 88, 86, 65, 128, 88, 85, 79,
- 88, 128, 88, 85, 79, 128, 88, 85, 128, 88, 83, 72, 65, 65, 89, 65, 84,
- 72, 73, 89, 65, 128, 88, 79, 88, 128, 88, 79, 84, 128, 88, 79, 82, 128,
- 88, 79, 80, 72, 128, 88, 79, 80, 128, 88, 79, 65, 128, 88, 79, 128, 88,
- 73, 88, 128, 88, 73, 84, 128, 88, 73, 82, 79, 206, 88, 73, 80, 128, 88,
- 73, 69, 88, 128, 88, 73, 69, 84, 128, 88, 73, 69, 80, 128, 88, 73, 69,
- 128, 88, 73, 65, 78, 71, 81, 201, 88, 73, 65, 66, 128, 88, 73, 128, 88,
- 72, 69, 89, 78, 128, 88, 71, 128, 88, 69, 89, 78, 128, 88, 69, 83, 84,
- 69, 211, 88, 69, 72, 128, 88, 69, 69, 128, 88, 69, 128, 88, 65, 85, 83,
- 128, 88, 65, 85, 128, 88, 65, 80, 72, 128, 88, 65, 78, 128, 88, 65, 65,
- 128, 88, 65, 128, 88, 48, 48, 56, 65, 128, 88, 48, 48, 56, 128, 88, 48,
- 48, 55, 128, 88, 48, 48, 54, 65, 128, 88, 48, 48, 54, 128, 88, 48, 48,
- 53, 128, 88, 48, 48, 52, 66, 128, 88, 48, 48, 52, 65, 128, 88, 48, 48,
- 52, 128, 88, 48, 48, 51, 128, 88, 48, 48, 50, 128, 88, 48, 48, 49, 128,
- 88, 45, 216, 87, 90, 128, 87, 89, 78, 78, 128, 87, 89, 78, 206, 87, 86,
- 73, 128, 87, 86, 69, 128, 87, 86, 65, 128, 87, 86, 128, 87, 85, 80, 128,
- 87, 85, 79, 88, 128, 87, 85, 79, 80, 128, 87, 85, 79, 128, 87, 85, 78,
- 74, 207, 87, 85, 78, 128, 87, 85, 76, 85, 128, 87, 85, 76, 213, 87, 85,
- 73, 128, 87, 85, 69, 128, 87, 85, 65, 69, 84, 128, 87, 85, 65, 69, 78,
- 128, 87, 85, 128, 87, 82, 217, 87, 82, 79, 78, 71, 128, 87, 82, 73, 83,
- 212, 87, 82, 73, 78, 75, 76, 69, 83, 128, 87, 82, 73, 78, 75, 76, 69,
- 211, 87, 82, 73, 78, 75, 76, 69, 68, 128, 87, 82, 69, 83, 84, 76, 69, 82,
- 83, 128, 87, 82, 69, 78, 67, 72, 128, 87, 82, 69, 65, 84, 200, 87, 82,
- 65, 80, 80, 69, 196, 87, 82, 65, 80, 128, 87, 79, 88, 128, 87, 79, 87,
- 128, 87, 79, 82, 83, 72, 73, 80, 128, 87, 79, 82, 82, 73, 69, 196, 87,
- 79, 82, 77, 128, 87, 79, 82, 76, 196, 87, 79, 82, 75, 69, 82, 128, 87,
- 79, 82, 75, 128, 87, 79, 82, 203, 87, 79, 82, 68, 83, 80, 65, 67, 69,
- 128, 87, 79, 82, 196, 87, 79, 80, 128, 87, 79, 79, 78, 128, 87, 79, 79,
- 76, 128, 87, 79, 79, 68, 83, 45, 67, 82, 69, 197, 87, 79, 79, 68, 128,
- 87, 79, 78, 128, 87, 79, 206, 87, 79, 77, 69, 78, 211, 87, 79, 77, 69,
- 206, 87, 79, 77, 65, 78, 211, 87, 79, 77, 65, 78, 128, 87, 79, 77, 65,
- 206, 87, 79, 76, 79, 83, 79, 128, 87, 79, 76, 198, 87, 79, 69, 128, 87,
- 79, 65, 128, 87, 79, 45, 55, 128, 87, 79, 45, 54, 128, 87, 79, 45, 53,
- 128, 87, 79, 45, 52, 128, 87, 79, 45, 51, 128, 87, 79, 45, 50, 128, 87,
- 79, 45, 49, 128, 87, 73, 84, 72, 79, 85, 212, 87, 73, 84, 72, 73, 78,
- 128, 87, 73, 84, 72, 73, 206, 87, 73, 82, 69, 196, 87, 73, 78, 84, 69,
- 82, 128, 87, 73, 78, 75, 73, 78, 199, 87, 73, 78, 75, 128, 87, 73, 78,
- 74, 65, 128, 87, 73, 78, 71, 83, 128, 87, 73, 78, 69, 128, 87, 73, 78,
- 197, 87, 73, 78, 68, 85, 128, 87, 73, 78, 68, 79, 87, 128, 87, 73, 78,
- 68, 128, 87, 73, 78, 196, 87, 73, 78, 128, 87, 73, 76, 84, 69, 196, 87,
- 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, 217, 87, 73, 71, 71, 76,
- 69, 83, 128, 87, 73, 68, 84, 72, 128, 87, 73, 68, 69, 78, 73, 78, 199,
- 87, 73, 68, 69, 45, 72, 69, 65, 68, 69, 196, 87, 73, 68, 197, 87, 73, 65,
- 78, 71, 87, 65, 65, 75, 128, 87, 73, 65, 78, 71, 128, 87, 73, 45, 53,
- 128, 87, 73, 45, 52, 128, 87, 73, 45, 51, 128, 87, 73, 45, 50, 128, 87,
- 73, 45, 49, 128, 87, 72, 79, 76, 197, 87, 72, 73, 84, 69, 45, 70, 69, 65,
- 84, 72, 69, 82, 69, 196, 87, 72, 73, 84, 69, 128, 87, 72, 69, 69, 76, 69,
- 196, 87, 72, 69, 69, 76, 67, 72, 65, 73, 82, 128, 87, 72, 69, 69, 76, 67,
- 72, 65, 73, 210, 87, 72, 69, 69, 76, 128, 87, 72, 69, 69, 204, 87, 72,
- 69, 65, 84, 128, 87, 72, 65, 76, 69, 128, 87, 72, 128, 87, 71, 128, 87,
- 69, 88, 128, 87, 69, 85, 88, 128, 87, 69, 212, 87, 69, 83, 84, 69, 82,
- 206, 87, 69, 83, 84, 45, 67, 82, 69, 197, 87, 69, 83, 84, 128, 87, 69,
- 83, 212, 87, 69, 80, 128, 87, 69, 79, 128, 87, 69, 78, 128, 87, 69, 76,
- 76, 128, 87, 69, 73, 71, 72, 212, 87, 69, 73, 69, 82, 83, 84, 82, 65, 83,
- 211, 87, 69, 73, 128, 87, 69, 69, 78, 128, 87, 69, 68, 71, 69, 45, 84,
- 65, 73, 76, 69, 196, 87, 69, 68, 71, 69, 128, 87, 69, 68, 68, 73, 78, 71,
- 128, 87, 69, 66, 128, 87, 69, 65, 82, 217, 87, 69, 65, 80, 79, 78, 128,
- 87, 69, 45, 52, 128, 87, 69, 45, 51, 128, 87, 69, 45, 50, 128, 87, 69,
- 45, 49, 128, 87, 67, 128, 87, 66, 128, 87, 65, 89, 128, 87, 65, 217, 87,
- 65, 88, 73, 78, 199, 87, 65, 88, 128, 87, 65, 87, 45, 65, 89, 73, 78, 45,
- 82, 69, 83, 72, 128, 87, 65, 87, 128, 87, 65, 215, 87, 65, 86, 217, 87,
- 65, 86, 73, 78, 199, 87, 65, 86, 69, 83, 128, 87, 65, 86, 69, 128, 87,
- 65, 86, 197, 87, 65, 85, 128, 87, 65, 84, 84, 79, 128, 87, 65, 84, 69,
- 82, 77, 69, 76, 79, 78, 128, 87, 65, 84, 69, 82, 128, 87, 65, 84, 69,
- 210, 87, 65, 84, 67, 72, 128, 87, 65, 84, 128, 87, 65, 83, 84, 73, 78,
- 71, 128, 87, 65, 83, 84, 69, 66, 65, 83, 75, 69, 84, 128, 87, 65, 83, 83,
- 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128, 87, 65, 83, 76, 193,
- 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65, 76, 76, 65, 205, 87,
- 65, 82, 78, 73, 78, 199, 87, 65, 82, 65, 78, 199, 87, 65, 81, 70, 65,
- 128, 87, 65, 80, 128, 87, 65, 78, 73, 78, 199, 87, 65, 78, 71, 75, 85,
- 79, 81, 128, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 78, 68, 128,
- 87, 65, 78, 67, 72, 207, 87, 65, 78, 128, 87, 65, 76, 76, 80, 76, 65, 78,
- 197, 87, 65, 76, 76, 128, 87, 65, 76, 204, 87, 65, 76, 75, 128, 87, 65,
- 76, 203, 87, 65, 73, 84, 73, 78, 71, 128, 87, 65, 73, 83, 84, 128, 87,
- 65, 73, 128, 87, 65, 70, 70, 76, 69, 128, 87, 65, 69, 78, 128, 87, 65,
- 69, 128, 87, 65, 68, 68, 65, 128, 87, 65, 65, 86, 85, 128, 87, 65, 45,
- 53, 128, 87, 65, 45, 52, 128, 87, 65, 45, 51, 128, 87, 65, 45, 50, 128,
- 87, 65, 45, 49, 128, 87, 48, 50, 53, 128, 87, 48, 50, 52, 65, 128, 87,
- 48, 50, 52, 128, 87, 48, 50, 51, 128, 87, 48, 50, 50, 128, 87, 48, 50,
- 49, 128, 87, 48, 50, 48, 128, 87, 48, 49, 57, 128, 87, 48, 49, 56, 65,
- 128, 87, 48, 49, 56, 128, 87, 48, 49, 55, 65, 128, 87, 48, 49, 55, 128,
- 87, 48, 49, 54, 128, 87, 48, 49, 53, 128, 87, 48, 49, 52, 65, 128, 87,
- 48, 49, 52, 128, 87, 48, 49, 51, 128, 87, 48, 49, 50, 128, 87, 48, 49,
- 49, 128, 87, 48, 49, 48, 65, 128, 87, 48, 49, 48, 128, 87, 48, 48, 57,
- 65, 128, 87, 48, 48, 57, 128, 87, 48, 48, 56, 128, 87, 48, 48, 55, 128,
- 87, 48, 48, 54, 128, 87, 48, 48, 53, 128, 87, 48, 48, 52, 128, 87, 48,
- 48, 51, 65, 128, 87, 48, 48, 51, 128, 87, 48, 48, 50, 128, 87, 48, 48,
- 49, 128, 86, 90, 77, 69, 84, 128, 86, 89, 88, 128, 86, 89, 84, 128, 86,
- 89, 82, 88, 128, 86, 89, 82, 128, 86, 89, 80, 128, 86, 89, 128, 86, 87,
- 74, 128, 86, 87, 65, 128, 86, 87, 128, 86, 85, 88, 128, 86, 85, 85, 128,
- 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, 85, 82, 128, 86, 85, 80, 128,
- 86, 85, 76, 71, 65, 210, 86, 85, 76, 67, 65, 78, 85, 83, 128, 86, 85, 69,
- 81, 128, 86, 84, 83, 128, 86, 84, 128, 86, 83, 57, 57, 128, 86, 83, 57,
- 56, 128, 86, 83, 57, 55, 128, 86, 83, 57, 54, 128, 86, 83, 57, 53, 128,
- 86, 83, 57, 52, 128, 86, 83, 57, 51, 128, 86, 83, 57, 50, 128, 86, 83,
- 57, 49, 128, 86, 83, 57, 48, 128, 86, 83, 57, 128, 86, 83, 56, 57, 128,
- 86, 83, 56, 56, 128, 86, 83, 56, 55, 128, 86, 83, 56, 54, 128, 86, 83,
- 56, 53, 128, 86, 83, 56, 52, 128, 86, 83, 56, 51, 128, 86, 83, 56, 50,
- 128, 86, 83, 56, 49, 128, 86, 83, 56, 48, 128, 86, 83, 56, 128, 86, 83,
- 55, 57, 128, 86, 83, 55, 56, 128, 86, 83, 55, 55, 128, 86, 83, 55, 54,
- 128, 86, 83, 55, 53, 128, 86, 83, 55, 52, 128, 86, 83, 55, 51, 128, 86,
- 83, 55, 50, 128, 86, 83, 55, 49, 128, 86, 83, 55, 48, 128, 86, 83, 55,
- 128, 86, 83, 54, 57, 128, 86, 83, 54, 56, 128, 86, 83, 54, 55, 128, 86,
- 83, 54, 54, 128, 86, 83, 54, 53, 128, 86, 83, 54, 52, 128, 86, 83, 54,
- 51, 128, 86, 83, 54, 50, 128, 86, 83, 54, 49, 128, 86, 83, 54, 48, 128,
- 86, 83, 54, 128, 86, 83, 53, 57, 128, 86, 83, 53, 56, 128, 86, 83, 53,
- 55, 128, 86, 83, 53, 54, 128, 86, 83, 53, 53, 128, 86, 83, 53, 52, 128,
- 86, 83, 53, 51, 128, 86, 83, 53, 50, 128, 86, 83, 53, 49, 128, 86, 83,
- 53, 48, 128, 86, 83, 53, 128, 86, 83, 52, 57, 128, 86, 83, 52, 56, 128,
- 86, 83, 52, 55, 128, 86, 83, 52, 54, 128, 86, 83, 52, 53, 128, 86, 83,
- 52, 52, 128, 86, 83, 52, 51, 128, 86, 83, 52, 50, 128, 86, 83, 52, 49,
- 128, 86, 83, 52, 48, 128, 86, 83, 52, 128, 86, 83, 51, 57, 128, 86, 83,
- 51, 56, 128, 86, 83, 51, 55, 128, 86, 83, 51, 54, 128, 86, 83, 51, 53,
- 128, 86, 83, 51, 52, 128, 86, 83, 51, 51, 128, 86, 83, 51, 50, 128, 86,
- 83, 51, 49, 128, 86, 83, 51, 48, 128, 86, 83, 51, 128, 86, 83, 50, 57,
- 128, 86, 83, 50, 56, 128, 86, 83, 50, 55, 128, 86, 83, 50, 54, 128, 86,
- 83, 50, 53, 54, 128, 86, 83, 50, 53, 53, 128, 86, 83, 50, 53, 52, 128,
- 86, 83, 50, 53, 51, 128, 86, 83, 50, 53, 50, 128, 86, 83, 50, 53, 49,
- 128, 86, 83, 50, 53, 48, 128, 86, 83, 50, 53, 128, 86, 83, 50, 52, 57,
- 128, 86, 83, 50, 52, 56, 128, 86, 83, 50, 52, 55, 128, 86, 83, 50, 52,
- 54, 128, 86, 83, 50, 52, 53, 128, 86, 83, 50, 52, 52, 128, 86, 83, 50,
- 52, 51, 128, 86, 83, 50, 52, 50, 128, 86, 83, 50, 52, 49, 128, 86, 83,
- 50, 52, 48, 128, 86, 83, 50, 52, 128, 86, 83, 50, 51, 57, 128, 86, 83,
- 50, 51, 56, 128, 86, 83, 50, 51, 55, 128, 86, 83, 50, 51, 54, 128, 86,
- 83, 50, 51, 53, 128, 86, 83, 50, 51, 52, 128, 86, 83, 50, 51, 51, 128,
- 86, 83, 50, 51, 50, 128, 86, 83, 50, 51, 49, 128, 86, 83, 50, 51, 48,
- 128, 86, 83, 50, 51, 128, 86, 83, 50, 50, 57, 128, 86, 83, 50, 50, 56,
- 128, 86, 83, 50, 50, 55, 128, 86, 83, 50, 50, 54, 128, 86, 83, 50, 50,
- 53, 128, 86, 83, 50, 50, 52, 128, 86, 83, 50, 50, 51, 128, 86, 83, 50,
- 50, 50, 128, 86, 83, 50, 50, 49, 128, 86, 83, 50, 50, 48, 128, 86, 83,
- 50, 50, 128, 86, 83, 50, 49, 57, 128, 86, 83, 50, 49, 56, 128, 86, 83,
- 50, 49, 55, 128, 86, 83, 50, 49, 54, 128, 86, 83, 50, 49, 53, 128, 86,
- 83, 50, 49, 52, 128, 86, 83, 50, 49, 51, 128, 86, 83, 50, 49, 50, 128,
- 86, 83, 50, 49, 49, 128, 86, 83, 50, 49, 48, 128, 86, 83, 50, 49, 128,
- 86, 83, 50, 48, 57, 128, 86, 83, 50, 48, 56, 128, 86, 83, 50, 48, 55,
- 128, 86, 83, 50, 48, 54, 128, 86, 83, 50, 48, 53, 128, 86, 83, 50, 48,
- 52, 128, 86, 83, 50, 48, 51, 128, 86, 83, 50, 48, 50, 128, 86, 83, 50,
- 48, 49, 128, 86, 83, 50, 48, 48, 128, 86, 83, 50, 48, 128, 86, 83, 50,
- 128, 86, 83, 49, 57, 57, 128, 86, 83, 49, 57, 56, 128, 86, 83, 49, 57,
- 55, 128, 86, 83, 49, 57, 54, 128, 86, 83, 49, 57, 53, 128, 86, 83, 49,
- 57, 52, 128, 86, 83, 49, 57, 51, 128, 86, 83, 49, 57, 50, 128, 86, 83,
- 49, 57, 49, 128, 86, 83, 49, 57, 48, 128, 86, 83, 49, 57, 128, 86, 83,
- 49, 56, 57, 128, 86, 83, 49, 56, 56, 128, 86, 83, 49, 56, 55, 128, 86,
- 83, 49, 56, 54, 128, 86, 83, 49, 56, 53, 128, 86, 83, 49, 56, 52, 128,
- 86, 83, 49, 56, 51, 128, 86, 83, 49, 56, 50, 128, 86, 83, 49, 56, 49,
- 128, 86, 83, 49, 56, 48, 128, 86, 83, 49, 56, 128, 86, 83, 49, 55, 57,
- 128, 86, 83, 49, 55, 56, 128, 86, 83, 49, 55, 55, 128, 86, 83, 49, 55,
- 54, 128, 86, 83, 49, 55, 53, 128, 86, 83, 49, 55, 52, 128, 86, 83, 49,
- 55, 51, 128, 86, 83, 49, 55, 50, 128, 86, 83, 49, 55, 49, 128, 86, 83,
- 49, 55, 48, 128, 86, 83, 49, 55, 128, 86, 83, 49, 54, 57, 128, 86, 83,
- 49, 54, 56, 128, 86, 83, 49, 54, 55, 128, 86, 83, 49, 54, 54, 128, 86,
- 83, 49, 54, 53, 128, 86, 83, 49, 54, 52, 128, 86, 83, 49, 54, 51, 128,
- 86, 83, 49, 54, 50, 128, 86, 83, 49, 54, 49, 128, 86, 83, 49, 54, 48,
- 128, 86, 83, 49, 54, 128, 86, 83, 49, 53, 57, 128, 86, 83, 49, 53, 56,
- 128, 86, 83, 49, 53, 55, 128, 86, 83, 49, 53, 54, 128, 86, 83, 49, 53,
- 53, 128, 86, 83, 49, 53, 52, 128, 86, 83, 49, 53, 51, 128, 86, 83, 49,
- 53, 50, 128, 86, 83, 49, 53, 49, 128, 86, 83, 49, 53, 48, 128, 86, 83,
- 49, 53, 128, 86, 83, 49, 52, 57, 128, 86, 83, 49, 52, 56, 128, 86, 83,
- 49, 52, 55, 128, 86, 83, 49, 52, 54, 128, 86, 83, 49, 52, 53, 128, 86,
- 83, 49, 52, 52, 128, 86, 83, 49, 52, 51, 128, 86, 83, 49, 52, 50, 128,
- 86, 83, 49, 52, 49, 128, 86, 83, 49, 52, 48, 128, 86, 83, 49, 52, 128,
- 86, 83, 49, 51, 57, 128, 86, 83, 49, 51, 56, 128, 86, 83, 49, 51, 55,
- 128, 86, 83, 49, 51, 54, 128, 86, 83, 49, 51, 53, 128, 86, 83, 49, 51,
- 52, 128, 86, 83, 49, 51, 51, 128, 86, 83, 49, 51, 50, 128, 86, 83, 49,
- 51, 49, 128, 86, 83, 49, 51, 48, 128, 86, 83, 49, 51, 128, 86, 83, 49,
- 50, 57, 128, 86, 83, 49, 50, 56, 128, 86, 83, 49, 50, 55, 128, 86, 83,
- 49, 50, 54, 128, 86, 83, 49, 50, 53, 128, 86, 83, 49, 50, 52, 128, 86,
- 83, 49, 50, 51, 128, 86, 83, 49, 50, 50, 128, 86, 83, 49, 50, 49, 128,
- 86, 83, 49, 50, 48, 128, 86, 83, 49, 50, 128, 86, 83, 49, 49, 57, 128,
- 86, 83, 49, 49, 56, 128, 86, 83, 49, 49, 55, 128, 86, 83, 49, 49, 54,
- 128, 86, 83, 49, 49, 53, 128, 86, 83, 49, 49, 52, 128, 86, 83, 49, 49,
- 51, 128, 86, 83, 49, 49, 50, 128, 86, 83, 49, 49, 49, 128, 86, 83, 49,
- 49, 48, 128, 86, 83, 49, 49, 128, 86, 83, 49, 48, 57, 128, 86, 83, 49,
- 48, 56, 128, 86, 83, 49, 48, 55, 128, 86, 83, 49, 48, 54, 128, 86, 83,
- 49, 48, 53, 128, 86, 83, 49, 48, 52, 128, 86, 83, 49, 48, 51, 128, 86,
- 83, 49, 48, 50, 128, 86, 83, 49, 48, 49, 128, 86, 83, 49, 48, 48, 128,
- 86, 83, 49, 48, 128, 86, 83, 49, 128, 86, 83, 128, 86, 82, 65, 67, 72,
- 89, 128, 86, 79, 88, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, 82, 73, 69,
- 210, 86, 79, 87, 128, 86, 79, 85, 128, 86, 79, 84, 128, 86, 79, 211, 86,
- 79, 80, 128, 86, 79, 79, 73, 128, 86, 79, 79, 128, 86, 79, 77, 73, 84,
- 73, 78, 71, 128, 86, 79, 77, 128, 86, 79, 76, 85, 77, 197, 86, 79, 76,
- 84, 65, 71, 197, 86, 79, 76, 76, 69, 89, 66, 65, 76, 76, 128, 86, 79, 76,
- 67, 65, 78, 79, 128, 86, 79, 76, 65, 80, 85, 203, 86, 79, 73, 68, 69,
- 196, 86, 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79, 73, 67,
- 69, 76, 69, 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 68, 128, 86, 79,
- 67, 65, 76, 73, 90, 65, 84, 73, 79, 206, 86, 79, 67, 65, 204, 86, 79,
- 128, 86, 73, 89, 79, 128, 86, 73, 88, 128, 86, 73, 84, 82, 73, 79, 76,
- 45, 50, 128, 86, 73, 84, 82, 73, 79, 76, 128, 86, 73, 84, 65, 69, 45, 50,
- 128, 86, 73, 84, 65, 69, 128, 86, 73, 84, 128, 86, 73, 83, 73, 71, 79,
- 84, 72, 73, 195, 86, 73, 83, 65, 82, 71, 65, 89, 65, 128, 86, 73, 83, 65,
- 82, 71, 65, 128, 86, 73, 83, 65, 82, 71, 193, 86, 73, 82, 73, 65, 77,
- 128, 86, 73, 82, 71, 79, 128, 86, 73, 82, 71, 65, 128, 86, 73, 82, 65,
- 77, 65, 128, 86, 73, 80, 128, 86, 73, 79, 76, 73, 78, 128, 86, 73, 78,
- 69, 71, 65, 82, 45, 51, 128, 86, 73, 78, 69, 71, 65, 82, 45, 50, 128, 86,
- 73, 78, 69, 71, 65, 82, 128, 86, 73, 78, 69, 71, 65, 210, 86, 73, 78, 69,
- 128, 86, 73, 78, 197, 86, 73, 78, 128, 86, 73, 76, 76, 65, 71, 69, 128,
- 86, 73, 73, 128, 86, 73, 71, 73, 78, 84, 73, 76, 69, 128, 86, 73, 69, 88,
- 128, 86, 73, 69, 87, 73, 78, 199, 86, 73, 69, 87, 68, 65, 84, 193, 86,
- 73, 69, 84, 78, 65, 77, 69, 83, 197, 86, 73, 69, 84, 128, 86, 73, 69,
- 212, 86, 73, 69, 80, 128, 86, 73, 69, 128, 86, 73, 68, 74, 45, 50, 128,
- 86, 73, 68, 74, 128, 86, 73, 68, 69, 79, 67, 65, 83, 83, 69, 84, 84, 69,
- 128, 86, 73, 68, 69, 207, 86, 73, 68, 65, 128, 86, 73, 67, 84, 79, 82,
- 217, 86, 73, 66, 82, 65, 84, 73, 79, 206, 86, 72, 65, 128, 86, 70, 65,
- 128, 86, 69, 89, 90, 128, 86, 69, 88, 128, 86, 69, 87, 128, 86, 69, 215,
- 86, 69, 85, 88, 128, 86, 69, 85, 77, 128, 86, 69, 85, 65, 69, 80, 69, 78,
- 128, 86, 69, 85, 65, 69, 128, 86, 69, 83, 84, 65, 128, 86, 69, 83, 84,
- 128, 86, 69, 83, 83, 69, 204, 86, 69, 82, 217, 86, 69, 82, 84, 73, 67,
- 65, 76, 76, 89, 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 217, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 54, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 54, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45,
- 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 49, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 53, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 53, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45,
- 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 50, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 53, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 52, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45,
- 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 51, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 52, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 52, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45,
- 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 52, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 51, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 51, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45,
- 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 53, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 50, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 50, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45,
- 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 54, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 49, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 49, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45,
- 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 48, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 45, 48, 48, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
- 48, 48, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45,
- 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128,
- 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 49, 128, 86, 69, 82,
- 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67,
- 65, 76, 128, 86, 69, 82, 83, 73, 67, 76, 69, 128, 86, 69, 82, 83, 197,
- 86, 69, 82, 71, 69, 128, 86, 69, 82, 68, 73, 71, 82, 73, 83, 128, 86, 69,
- 82, 128, 86, 69, 80, 128, 86, 69, 78, 68, 128, 86, 69, 76, 73, 128, 86,
- 69, 73, 76, 128, 86, 69, 72, 73, 67, 76, 69, 128, 86, 69, 72, 128, 86,
- 69, 200, 86, 69, 69, 128, 86, 69, 197, 86, 69, 68, 69, 128, 86, 69, 67,
- 84, 79, 210, 86, 65, 89, 65, 78, 78, 65, 128, 86, 65, 88, 128, 86, 65,
- 86, 128, 86, 65, 214, 86, 65, 85, 128, 86, 65, 84, 72, 89, 128, 86, 65,
- 84, 128, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 83, 73, 83, 128, 86,
- 65, 82, 89, 211, 86, 65, 82, 73, 75, 65, 128, 86, 65, 82, 73, 65, 78, 84,
- 128, 86, 65, 82, 73, 65, 78, 212, 86, 65, 82, 73, 65, 128, 86, 65, 82,
- 73, 193, 86, 65, 82, 69, 73, 65, 201, 86, 65, 82, 69, 73, 193, 86, 65,
- 82, 65, 65, 75, 65, 78, 128, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80,
- 128, 86, 65, 78, 69, 128, 86, 65, 77, 80, 73, 82, 69, 128, 86, 65, 77,
- 65, 71, 79, 77, 85, 75, 72, 65, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75,
- 72, 193, 86, 65, 76, 76, 69, 89, 128, 86, 65, 75, 65, 73, 89, 65, 82, 65,
- 65, 128, 86, 65, 74, 128, 86, 65, 73, 128, 86, 65, 72, 128, 86, 65, 200,
- 86, 65, 65, 86, 85, 128, 86, 65, 65, 128, 86, 193, 86, 48, 52, 48, 65,
- 128, 86, 48, 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51, 56, 128, 86,
- 48, 51, 55, 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54, 128, 86, 48,
- 51, 53, 128, 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128, 86, 48, 51,
- 51, 128, 86, 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86, 48, 51, 49,
- 128, 86, 48, 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48, 50, 57, 65,
- 128, 86, 48, 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48, 50, 56, 128,
- 86, 48, 50, 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53, 128, 86, 48,
- 50, 52, 128, 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128, 86, 48, 50,
- 50, 128, 86, 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86, 48, 50, 48,
- 75, 128, 86, 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128, 86, 48, 50,
- 48, 72, 128, 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70, 128, 86, 48,
- 50, 48, 69, 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48, 67, 128, 86,
- 48, 50, 48, 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50, 48, 128, 86,
- 48, 49, 57, 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128, 86, 48, 49,
- 54, 128, 86, 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48, 49, 51, 128,
- 86, 48, 49, 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48, 49, 50, 128,
- 86, 48, 49, 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48, 49, 49, 65,
- 128, 86, 48, 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48, 57, 128, 86,
- 48, 48, 56, 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55, 65, 128, 86,
- 48, 48, 55, 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128, 86, 48, 48,
- 52, 128, 86, 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86, 48, 48, 50,
- 128, 86, 48, 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86, 48, 48, 49,
- 71, 128, 86, 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128, 86, 48, 48,
- 49, 68, 128, 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66, 128, 86, 48,
- 48, 49, 65, 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85, 90, 72, 65,
- 75, 75, 85, 128, 85, 90, 51, 128, 85, 90, 179, 85, 89, 65, 78, 78, 65,
- 128, 85, 89, 128, 85, 87, 85, 128, 85, 85, 89, 65, 78, 78, 65, 128, 85,
- 85, 85, 85, 128, 85, 85, 85, 51, 128, 85, 85, 85, 50, 128, 85, 85, 69,
- 128, 85, 84, 85, 75, 73, 128, 85, 83, 83, 85, 51, 128, 85, 83, 83, 85,
- 128, 85, 83, 72, 88, 128, 85, 83, 72, 85, 77, 88, 128, 85, 83, 72, 69,
- 78, 78, 65, 128, 85, 83, 72, 50, 128, 85, 83, 72, 128, 85, 83, 200, 85,
- 83, 69, 196, 85, 83, 69, 45, 50, 128, 85, 83, 69, 45, 49, 128, 85, 83,
- 69, 128, 85, 83, 197, 85, 82, 85, 218, 85, 82, 85, 83, 128, 85, 82, 85,
- 68, 65, 128, 85, 82, 85, 68, 193, 85, 82, 85, 128, 85, 82, 213, 85, 82,
- 78, 128, 85, 82, 73, 78, 69, 128, 85, 82, 73, 51, 128, 85, 82, 73, 128,
- 85, 82, 65, 78, 85, 83, 128, 85, 82, 65, 128, 85, 82, 52, 128, 85, 82,
- 50, 128, 85, 82, 178, 85, 210, 85, 80, 87, 65, 82, 68, 83, 128, 85, 80,
- 87, 65, 82, 68, 211, 85, 80, 87, 65, 82, 68, 128, 85, 80, 87, 65, 82,
- 196, 85, 80, 84, 85, 82, 78, 128, 85, 80, 83, 73, 76, 79, 78, 128, 85,
- 80, 83, 73, 76, 79, 206, 85, 80, 83, 73, 68, 69, 45, 68, 79, 87, 206, 85,
- 80, 82, 73, 71, 72, 212, 85, 80, 80, 69, 82, 128, 85, 80, 65, 68, 72, 77,
- 65, 78, 73, 89, 65, 128, 85, 80, 45, 80, 79, 73, 78, 84, 73, 78, 199, 85,
- 79, 78, 128, 85, 79, 71, 128, 85, 78, 78, 128, 85, 78, 77, 65, 82, 82,
- 73, 69, 196, 85, 78, 75, 78, 79, 87, 78, 128, 85, 78, 75, 128, 85, 78,
- 73, 86, 69, 82, 83, 65, 204, 85, 78, 73, 84, 89, 128, 85, 78, 73, 84, 69,
- 196, 85, 78, 73, 84, 128, 85, 78, 73, 212, 85, 78, 73, 79, 78, 128, 85,
- 78, 73, 79, 206, 85, 78, 73, 70, 79, 82, 77, 128, 85, 78, 73, 70, 73, 69,
- 196, 85, 78, 73, 67, 79, 82, 206, 85, 78, 69, 86, 69, 206, 85, 78, 68,
- 207, 85, 78, 68, 69, 82, 84, 73, 69, 128, 85, 78, 68, 69, 82, 76, 73, 78,
- 197, 85, 78, 68, 69, 82, 68, 79, 84, 128, 85, 78, 68, 69, 82, 66, 65, 82,
- 128, 85, 78, 68, 69, 82, 128, 85, 78, 68, 69, 210, 85, 78, 67, 73, 193,
- 85, 78, 67, 69, 82, 84, 65, 73, 78, 84, 217, 85, 78, 66, 76, 69, 78, 68,
- 69, 196, 85, 78, 65, 83, 80, 73, 82, 65, 84, 69, 68, 128, 85, 78, 65, 80,
- 128, 85, 78, 65, 77, 85, 83, 69, 196, 85, 78, 65, 128, 85, 206, 85, 77,
- 85, 77, 128, 85, 77, 85, 205, 85, 77, 66, 82, 69, 76, 76, 65, 128, 85,
- 77, 66, 82, 69, 76, 76, 193, 85, 77, 66, 73, 78, 128, 85, 75, 85, 128,
- 85, 75, 82, 65, 73, 78, 73, 65, 206, 85, 75, 65, 82, 65, 128, 85, 75, 65,
- 82, 193, 85, 75, 128, 85, 73, 76, 76, 69, 65, 78, 78, 128, 85, 73, 71,
- 72, 85, 210, 85, 72, 68, 128, 85, 71, 65, 82, 73, 84, 73, 195, 85, 69,
- 89, 128, 85, 69, 78, 128, 85, 69, 73, 128, 85, 69, 69, 128, 85, 69, 65,
- 128, 85, 68, 85, 71, 128, 85, 68, 65, 84, 84, 65, 128, 85, 68, 65, 84,
- 84, 193, 85, 68, 65, 65, 84, 128, 85, 68, 128, 85, 196, 85, 67, 128, 85,
- 66, 85, 70, 73, 76, 73, 128, 85, 66, 72, 65, 89, 65, 84, 207, 85, 66, 65,
- 68, 65, 77, 65, 128, 85, 66, 128, 85, 65, 84, 72, 128, 85, 65, 78, 71,
- 128, 85, 65, 128, 85, 178, 85, 48, 52, 50, 128, 85, 48, 52, 49, 128, 85,
- 48, 52, 48, 128, 85, 48, 51, 57, 128, 85, 48, 51, 56, 128, 85, 48, 51,
- 55, 128, 85, 48, 51, 54, 128, 85, 48, 51, 53, 128, 85, 48, 51, 52, 128,
- 85, 48, 51, 51, 128, 85, 48, 51, 50, 65, 128, 85, 48, 51, 50, 128, 85,
- 48, 51, 49, 128, 85, 48, 51, 48, 128, 85, 48, 50, 57, 65, 128, 85, 48,
- 50, 57, 128, 85, 48, 50, 56, 128, 85, 48, 50, 55, 128, 85, 48, 50, 54,
- 128, 85, 48, 50, 53, 128, 85, 48, 50, 52, 128, 85, 48, 50, 51, 65, 128,
- 85, 48, 50, 51, 128, 85, 48, 50, 50, 128, 85, 48, 50, 49, 128, 85, 48,
- 50, 48, 128, 85, 48, 49, 57, 128, 85, 48, 49, 56, 128, 85, 48, 49, 55,
- 128, 85, 48, 49, 54, 128, 85, 48, 49, 53, 128, 85, 48, 49, 52, 128, 85,
- 48, 49, 51, 128, 85, 48, 49, 50, 128, 85, 48, 49, 49, 128, 85, 48, 49,
- 48, 128, 85, 48, 48, 57, 128, 85, 48, 48, 56, 128, 85, 48, 48, 55, 128,
- 85, 48, 48, 54, 66, 128, 85, 48, 48, 54, 65, 128, 85, 48, 48, 54, 128,
- 85, 48, 48, 53, 128, 85, 48, 48, 52, 128, 85, 48, 48, 51, 128, 85, 48,
- 48, 50, 128, 85, 48, 48, 49, 128, 85, 45, 83, 72, 65, 80, 69, 196, 85,
- 45, 73, 45, 73, 128, 85, 45, 69, 79, 45, 69, 85, 128, 85, 45, 66, 82, 74,
- 71, 85, 128, 85, 45, 53, 128, 84, 90, 85, 128, 84, 90, 79, 65, 128, 84,
- 90, 79, 128, 84, 90, 73, 210, 84, 90, 73, 128, 84, 90, 69, 69, 128, 84,
- 90, 69, 128, 84, 90, 65, 65, 128, 84, 90, 65, 128, 84, 90, 128, 84, 89,
- 210, 84, 89, 80, 69, 45, 183, 84, 89, 80, 69, 45, 54, 128, 84, 89, 80,
- 69, 45, 182, 84, 89, 80, 69, 45, 53, 128, 84, 89, 80, 69, 45, 181, 84,
- 89, 80, 69, 45, 52, 128, 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45, 51,
- 128, 84, 89, 80, 69, 45, 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69,
- 45, 49, 45, 50, 128, 84, 89, 80, 69, 45, 177, 84, 89, 80, 197, 84, 89,
- 79, 128, 84, 89, 73, 128, 84, 89, 69, 128, 84, 89, 65, 89, 128, 84, 89,
- 65, 128, 84, 88, 87, 86, 128, 84, 88, 87, 214, 84, 88, 72, 69, 69, 202,
- 84, 88, 65, 128, 84, 87, 79, 79, 128, 84, 87, 79, 45, 87, 65, 217, 84,
- 87, 79, 45, 84, 72, 73, 82, 84, 89, 128, 84, 87, 79, 45, 76, 73, 78, 197,
- 84, 87, 79, 45, 72, 69, 65, 68, 69, 196, 84, 87, 79, 45, 69, 205, 84, 87,
- 79, 45, 67, 73, 82, 67, 76, 197, 84, 87, 73, 83, 84, 73, 78, 71, 128, 84,
- 87, 73, 83, 84, 69, 196, 84, 87, 73, 73, 128, 84, 87, 73, 128, 84, 87,
- 69, 78, 84, 89, 45, 84, 87, 79, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87,
- 207, 84, 87, 69, 78, 84, 89, 45, 84, 72, 82, 69, 69, 128, 84, 87, 69, 78,
- 84, 89, 45, 83, 73, 88, 128, 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69,
- 78, 128, 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, 128, 84, 87, 69, 78, 84,
- 89, 45, 78, 73, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 79, 85, 82,
- 128, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84,
- 89, 45, 70, 73, 86, 197, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84,
- 200, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78,
- 84, 89, 128, 84, 87, 69, 78, 84, 217, 84, 87, 69, 78, 84, 73, 69, 84, 72,
- 83, 128, 84, 87, 69, 78, 84, 73, 69, 84, 72, 128, 84, 87, 69, 76, 86, 69,
- 45, 84, 72, 73, 82, 84, 89, 128, 84, 87, 69, 76, 86, 69, 128, 84, 87, 69,
- 76, 86, 197, 84, 87, 69, 76, 70, 84, 72, 83, 128, 84, 87, 69, 76, 70, 84,
- 72, 128, 84, 87, 69, 128, 84, 87, 65, 65, 128, 84, 87, 65, 128, 84, 86,
- 82, 73, 68, 79, 128, 84, 86, 73, 77, 65, 68, 85, 210, 84, 85, 88, 69, 68,
- 79, 128, 84, 85, 88, 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128, 84,
- 85, 84, 84, 89, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84,
+ 84, 73, 77, 69, 211, 66, 65, 77, 85, 205, 65, 78, 196, 83, 67, 82, 73,
+ 80, 212, 66, 79, 76, 196, 65, 78, 65, 84, 79, 76, 73, 65, 206, 72, 65,
+ 78, 71, 85, 204, 78, 85, 77, 66, 69, 210, 76, 73, 78, 69, 65, 210, 71,
+ 82, 69, 69, 203, 76, 73, 71, 65, 84, 85, 82, 197, 77, 85, 83, 73, 67, 65,
+ 204, 69, 84, 72, 73, 79, 80, 73, 195, 75, 72, 73, 84, 65, 206, 67, 79,
+ 77, 66, 73, 78, 73, 78, 199, 70, 79, 210, 193, 67, 89, 82, 73, 76, 76,
+ 73, 195, 73, 84, 65, 76, 73, 195, 84, 65, 77, 73, 204, 78, 85, 83, 72,
+ 213, 76, 69, 70, 212, 67, 73, 82, 67, 76, 69, 196, 82, 65, 68, 73, 67,
+ 65, 204, 83, 65, 78, 83, 45, 83, 69, 82, 73, 198, 83, 81, 85, 65, 82,
+ 197, 82, 73, 71, 72, 212, 70, 73, 78, 65, 204, 84, 65, 201, 65, 82, 82,
+ 79, 87, 128, 68, 79, 85, 66, 76, 197, 86, 65, 201, 83, 73, 71, 78, 128,
+ 65, 66, 79, 86, 69, 128, 72, 69, 78, 84, 65, 73, 71, 65, 78, 193, 66, 76,
+ 65, 67, 203, 65, 82, 82, 79, 215, 87, 72, 73, 84, 197, 66, 69, 76, 79,
+ 87, 128, 65, 128, 86, 65, 82, 73, 65, 84, 73, 79, 206, 66, 82, 65, 73,
+ 76, 76, 197, 80, 65, 84, 84, 69, 82, 206, 85, 128, 66, 89, 90, 65, 78,
+ 84, 73, 78, 197, 73, 128, 73, 83, 79, 76, 65, 84, 69, 196, 77, 79, 68,
+ 73, 70, 73, 69, 210, 79, 128, 75, 65, 84, 65, 75, 65, 78, 193, 194, 77,
+ 65, 82, 75, 128, 68, 79, 212, 77, 89, 65, 78, 77, 65, 210, 79, 198, 75,
+ 65, 78, 71, 88, 201, 75, 73, 75, 65, 75, 85, 201, 77, 69, 78, 68, 197,
+ 86, 69, 82, 84, 73, 67, 65, 204, 77, 73, 68, 68, 76, 197, 84, 73, 66, 69,
+ 84, 65, 206, 72, 69, 65, 86, 217, 73, 78, 73, 84, 73, 65, 204, 72, 77,
+ 79, 78, 199, 79, 78, 197, 77, 69, 69, 205, 67, 79, 80, 84, 73, 195, 75,
+ 72, 77, 69, 210, 82, 73, 71, 72, 84, 87, 65, 82, 68, 211, 65, 66, 79, 86,
+ 197, 67, 65, 82, 82, 73, 69, 210, 89, 69, 200, 71, 69, 79, 82, 71, 73,
+ 65, 206, 67, 72, 69, 82, 79, 75, 69, 197, 77, 79, 78, 71, 79, 76, 73, 65,
+ 206, 79, 78, 69, 128, 80, 76, 85, 211, 84, 87, 207, 84, 87, 79, 128, 66,
+ 79, 216, 76, 79, 87, 69, 210, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201,
+ 83, 81, 85, 65, 82, 69, 196, 83, 89, 77, 66, 79, 76, 128, 80, 72, 65, 83,
+ 69, 45, 197, 83, 84, 82, 79, 75, 69, 128, 84, 72, 82, 69, 197, 85, 80,
+ 80, 69, 210, 76, 69, 70, 84, 87, 65, 82, 68, 211, 84, 207, 67, 79, 78,
+ 83, 79, 78, 65, 78, 212, 77, 73, 65, 207, 86, 79, 67, 65, 76, 73, 195,
+ 68, 82, 65, 87, 73, 78, 71, 211, 84, 73, 76, 197, 68, 85, 80, 76, 79, 89,
+ 65, 206, 77, 65, 82, 203, 74, 79, 78, 71, 83, 69, 79, 78, 199, 80, 65,
+ 82, 69, 78, 84, 72, 69, 83, 73, 90, 69, 196, 84, 72, 65, 205, 71, 79, 78,
+ 68, 201, 72, 79, 79, 75, 128, 72, 69, 66, 82, 69, 215, 85, 208, 71, 76,
+ 65, 71, 79, 76, 73, 84, 73, 195, 76, 79, 215, 84, 72, 82, 69, 69, 128,
+ 70, 79, 85, 82, 128, 77, 65, 76, 65, 89, 65, 76, 65, 205, 79, 86, 69,
+ 210, 83, 73, 89, 65, 209, 72, 65, 76, 198, 72, 73, 71, 200, 73, 78, 68,
+ 69, 216, 80, 65, 72, 65, 87, 200, 68, 79, 87, 206, 67, 72, 79, 83, 69,
+ 79, 78, 199, 72, 65, 128, 72, 65, 76, 70, 87, 73, 68, 84, 200, 72, 65,
+ 78, 68, 45, 70, 73, 83, 212, 77, 69, 82, 79, 73, 84, 73, 195, 66, 65, 76,
+ 73, 78, 69, 83, 197, 73, 68, 69, 79, 71, 82, 65, 80, 72, 73, 195, 70, 73,
+ 86, 69, 128, 76, 73, 71, 72, 212, 73, 68, 69, 79, 71, 82, 65, 205, 80,
+ 72, 65, 83, 69, 45, 196, 84, 79, 128, 65, 76, 67, 72, 69, 77, 73, 67, 65,
+ 204, 65, 76, 69, 198, 84, 79, 78, 197, 83, 73, 78, 72, 65, 76, 193, 75,
+ 65, 128, 66, 65, 82, 128, 78, 85, 77, 69, 82, 73, 195, 84, 85, 82, 78,
+ 69, 196, 66, 82, 65, 72, 77, 201, 80, 65, 128, 82, 65, 128, 89, 65, 128,
+ 72, 85, 78, 71, 65, 82, 73, 65, 206, 83, 73, 88, 128, 84, 72, 85, 77,
+ 194, 77, 65, 128, 66, 65, 82, 194, 69, 73, 71, 72, 84, 128, 66, 76, 79,
+ 67, 203, 72, 65, 200, 76, 65, 128, 78, 79, 82, 84, 200, 83, 69, 86, 69,
+ 78, 128, 84, 72, 79, 85, 83, 65, 78, 68, 128, 78, 65, 128, 78, 73, 78,
+ 69, 128, 70, 85, 76, 76, 87, 73, 68, 84, 200, 76, 79, 78, 199, 66, 82,
+ 65, 67, 75, 69, 84, 128, 69, 81, 85, 65, 204, 83, 65, 128, 84, 65, 128,
+ 84, 65, 199, 68, 79, 77, 73, 78, 207, 90, 90, 89, 88, 128, 90, 90, 89,
+ 84, 128, 90, 90, 89, 82, 88, 128, 90, 90, 89, 82, 128, 90, 90, 89, 80,
+ 128, 90, 90, 89, 65, 128, 90, 90, 89, 128, 90, 90, 85, 88, 128, 90, 90,
+ 85, 82, 88, 128, 90, 90, 85, 82, 128, 90, 90, 85, 80, 128, 90, 90, 85,
+ 128, 90, 90, 83, 89, 65, 128, 90, 90, 83, 65, 128, 90, 90, 79, 88, 128,
+ 90, 90, 79, 80, 128, 90, 90, 79, 128, 90, 90, 73, 88, 128, 90, 90, 73,
+ 84, 128, 90, 90, 73, 80, 128, 90, 90, 73, 69, 88, 128, 90, 90, 73, 69,
+ 84, 128, 90, 90, 73, 69, 80, 128, 90, 90, 73, 69, 128, 90, 90, 73, 128,
+ 90, 90, 69, 88, 128, 90, 90, 69, 80, 128, 90, 90, 69, 69, 128, 90, 90,
+ 69, 128, 90, 90, 65, 88, 128, 90, 90, 65, 84, 128, 90, 90, 65, 80, 128,
+ 90, 90, 65, 65, 128, 90, 90, 65, 128, 90, 89, 71, 79, 83, 128, 90, 87,
+ 83, 80, 128, 90, 87, 78, 74, 128, 90, 87, 78, 66, 83, 80, 128, 90, 87,
+ 74, 128, 90, 87, 202, 90, 87, 65, 82, 65, 75, 65, 89, 128, 90, 87, 65,
+ 128, 90, 85, 84, 128, 90, 85, 79, 88, 128, 90, 85, 79, 80, 128, 90, 85,
+ 79, 128, 90, 85, 77, 128, 90, 85, 66, 85, 82, 128, 90, 85, 53, 128, 90,
+ 85, 181, 90, 213, 90, 83, 72, 65, 128, 90, 82, 65, 128, 90, 81, 65, 80,
+ 72, 193, 90, 79, 84, 128, 90, 79, 79, 128, 90, 79, 77, 66, 73, 69, 128,
+ 90, 79, 65, 128, 90, 76, 65, 77, 193, 90, 76, 65, 128, 90, 76, 193, 90,
+ 74, 69, 128, 90, 73, 90, 50, 128, 90, 73, 81, 65, 65, 128, 90, 73, 80,
+ 80, 69, 82, 45, 77, 79, 85, 84, 200, 90, 73, 78, 79, 82, 128, 90, 73, 76,
+ 68, 69, 128, 90, 73, 71, 90, 65, 199, 90, 73, 71, 128, 90, 73, 68, 193,
+ 90, 73, 66, 128, 90, 73, 194, 90, 73, 51, 128, 90, 201, 90, 72, 89, 88,
+ 128, 90, 72, 89, 84, 128, 90, 72, 89, 82, 88, 128, 90, 72, 89, 82, 128,
+ 90, 72, 89, 80, 128, 90, 72, 89, 128, 90, 72, 87, 69, 128, 90, 72, 87,
+ 65, 128, 90, 72, 85, 88, 128, 90, 72, 85, 84, 128, 90, 72, 85, 82, 88,
+ 128, 90, 72, 85, 82, 128, 90, 72, 85, 80, 128, 90, 72, 85, 79, 88, 128,
+ 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, 128, 90, 72, 85, 128, 90, 72,
+ 79, 88, 128, 90, 72, 79, 84, 128, 90, 72, 79, 80, 128, 90, 72, 79, 79,
+ 128, 90, 72, 79, 73, 128, 90, 72, 79, 128, 90, 72, 73, 86, 69, 84, 69,
+ 128, 90, 72, 73, 76, 128, 90, 72, 73, 128, 90, 72, 69, 88, 128, 90, 72,
+ 69, 84, 128, 90, 72, 69, 80, 128, 90, 72, 69, 69, 128, 90, 72, 69, 128,
+ 90, 72, 197, 90, 72, 65, 89, 73, 78, 128, 90, 72, 65, 88, 128, 90, 72,
+ 65, 84, 128, 90, 72, 65, 82, 128, 90, 72, 65, 80, 128, 90, 72, 65, 73,
+ 78, 128, 90, 72, 65, 65, 128, 90, 72, 65, 128, 90, 72, 128, 90, 69, 85,
+ 83, 128, 90, 69, 84, 65, 128, 90, 69, 82, 79, 128, 90, 69, 82, 207, 90,
+ 69, 78, 128, 90, 69, 77, 76, 89, 65, 128, 90, 69, 77, 76, 74, 65, 128,
+ 90, 69, 66, 82, 193, 90, 69, 50, 128, 90, 197, 90, 65, 89, 78, 128, 90,
+ 65, 89, 73, 78, 45, 89, 79, 68, 72, 128, 90, 65, 89, 73, 78, 128, 90, 65,
+ 89, 73, 206, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 65, 84, 65, 128,
+ 90, 65, 82, 81, 65, 128, 90, 65, 82, 76, 128, 90, 65, 81, 69, 198, 90,
+ 65, 78, 65, 66, 65, 90, 65, 210, 90, 65, 77, 88, 128, 90, 65, 76, 128,
+ 90, 65, 204, 90, 65, 73, 78, 128, 90, 65, 73, 206, 90, 65, 73, 128, 90,
+ 65, 72, 128, 90, 65, 200, 90, 65, 71, 128, 90, 65, 69, 70, 128, 90, 65,
+ 55, 128, 90, 193, 90, 48, 49, 54, 72, 128, 90, 48, 49, 54, 71, 128, 90,
+ 48, 49, 54, 70, 128, 90, 48, 49, 54, 69, 128, 90, 48, 49, 54, 68, 128,
+ 90, 48, 49, 54, 67, 128, 90, 48, 49, 54, 66, 128, 90, 48, 49, 54, 65,
+ 128, 90, 48, 49, 54, 128, 90, 48, 49, 53, 73, 128, 90, 48, 49, 53, 72,
+ 128, 90, 48, 49, 53, 71, 128, 90, 48, 49, 53, 70, 128, 90, 48, 49, 53,
+ 69, 128, 90, 48, 49, 53, 68, 128, 90, 48, 49, 53, 67, 128, 90, 48, 49,
+ 53, 66, 128, 90, 48, 49, 53, 65, 128, 90, 48, 49, 53, 128, 90, 48, 49,
+ 52, 128, 90, 48, 49, 51, 128, 90, 48, 49, 50, 128, 90, 48, 49, 49, 128,
+ 90, 48, 49, 48, 128, 90, 48, 48, 57, 128, 90, 48, 48, 56, 128, 90, 48,
+ 48, 55, 128, 90, 48, 48, 54, 128, 90, 48, 48, 53, 65, 128, 90, 48, 48,
+ 53, 128, 90, 48, 48, 52, 65, 128, 90, 48, 48, 52, 128, 90, 48, 48, 51,
+ 66, 128, 90, 48, 48, 51, 65, 128, 90, 48, 48, 51, 128, 90, 48, 48, 50,
+ 68, 128, 90, 48, 48, 50, 67, 128, 90, 48, 48, 50, 66, 128, 90, 48, 48,
+ 50, 65, 128, 90, 48, 48, 50, 128, 90, 48, 48, 49, 128, 90, 128, 218, 89,
+ 89, 88, 128, 89, 89, 84, 128, 89, 89, 82, 88, 128, 89, 89, 82, 128, 89,
+ 89, 80, 128, 89, 89, 69, 128, 89, 89, 65, 65, 128, 89, 89, 65, 128, 89,
+ 89, 128, 89, 87, 79, 79, 128, 89, 87, 79, 128, 89, 87, 73, 73, 128, 89,
+ 87, 73, 128, 89, 87, 69, 128, 89, 87, 65, 65, 128, 89, 87, 65, 128, 89,
+ 86, 128, 89, 85, 88, 128, 89, 85, 87, 79, 81, 128, 89, 85, 85, 75, 65,
+ 76, 69, 65, 80, 73, 78, 84, 85, 128, 89, 85, 85, 128, 89, 85, 84, 128,
+ 89, 85, 83, 128, 89, 85, 211, 89, 85, 82, 88, 128, 89, 85, 82, 128, 89,
+ 85, 81, 128, 89, 85, 209, 89, 85, 80, 128, 89, 85, 79, 88, 128, 89, 85,
+ 79, 84, 128, 89, 85, 79, 80, 128, 89, 85, 79, 77, 128, 89, 85, 79, 128,
+ 89, 85, 78, 128, 89, 85, 77, 128, 89, 85, 74, 128, 89, 85, 73, 128, 89,
+ 85, 69, 81, 128, 89, 85, 69, 128, 89, 85, 68, 72, 128, 89, 85, 68, 200,
+ 89, 85, 65, 78, 128, 89, 85, 65, 69, 78, 128, 89, 85, 45, 89, 69, 79,
+ 128, 89, 85, 45, 89, 69, 128, 89, 85, 45, 85, 128, 89, 85, 45, 79, 128,
+ 89, 85, 45, 73, 128, 89, 85, 45, 69, 79, 128, 89, 85, 45, 69, 128, 89,
+ 85, 45, 65, 69, 128, 89, 85, 45, 65, 128, 89, 85, 45, 52, 128, 89, 85,
+ 45, 51, 128, 89, 85, 45, 50, 128, 89, 85, 45, 49, 128, 89, 85, 128, 89,
+ 213, 89, 82, 89, 128, 89, 80, 83, 73, 76, 73, 128, 89, 80, 79, 82, 82,
+ 79, 73, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, 128, 89, 80, 79, 75, 82,
+ 73, 83, 73, 211, 89, 80, 79, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128,
+ 89, 79, 89, 128, 89, 79, 88, 128, 89, 79, 87, 68, 128, 89, 79, 85, 84,
+ 72, 70, 85, 76, 78, 69, 83, 83, 128, 89, 79, 85, 84, 72, 70, 85, 204, 89,
+ 79, 213, 89, 79, 84, 128, 89, 79, 212, 89, 79, 82, 73, 128, 89, 79, 81,
+ 128, 89, 79, 209, 89, 79, 80, 128, 89, 79, 79, 128, 89, 79, 77, 79, 128,
+ 89, 79, 71, 72, 128, 89, 79, 68, 128, 89, 79, 196, 89, 79, 65, 128, 89,
+ 79, 45, 89, 79, 128, 89, 79, 45, 89, 69, 79, 128, 89, 79, 45, 89, 65, 69,
+ 128, 89, 79, 45, 89, 65, 128, 89, 79, 45, 79, 128, 89, 79, 45, 73, 128,
+ 89, 79, 45, 69, 79, 128, 89, 79, 45, 65, 69, 128, 89, 79, 45, 65, 128,
+ 89, 79, 45, 54, 128, 89, 79, 45, 53, 128, 89, 79, 45, 52, 128, 89, 79,
+ 45, 51, 128, 89, 79, 45, 50, 128, 89, 79, 45, 49, 128, 89, 207, 89, 73,
+ 90, 69, 84, 128, 89, 73, 88, 128, 89, 73, 87, 78, 128, 89, 73, 84, 128,
+ 89, 73, 80, 128, 89, 73, 78, 71, 128, 89, 73, 73, 128, 89, 73, 72, 128,
+ 89, 73, 199, 89, 73, 69, 88, 128, 89, 73, 69, 84, 128, 89, 73, 69, 80,
+ 128, 89, 73, 69, 69, 128, 89, 73, 69, 128, 89, 73, 68, 68, 73, 83, 200,
+ 89, 73, 45, 85, 128, 89, 73, 128, 89, 72, 69, 128, 89, 72, 65, 128, 89,
+ 70, 69, 83, 73, 83, 128, 89, 70, 69, 83, 73, 211, 89, 70, 69, 206, 89,
+ 69, 90, 73, 68, 201, 89, 69, 89, 128, 89, 69, 87, 128, 89, 69, 85, 88,
+ 128, 89, 69, 85, 82, 65, 69, 128, 89, 69, 85, 81, 128, 89, 69, 85, 77,
+ 128, 89, 69, 85, 65, 69, 84, 128, 89, 69, 85, 65, 69, 128, 89, 69, 84,
+ 73, 86, 128, 89, 69, 83, 84, 85, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45,
+ 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 89, 69, 83, 73, 69, 85,
+ 78, 71, 45, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 80,
+ 65, 78, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 77, 73,
+ 69, 85, 77, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 75, 73, 89, 69, 79,
+ 75, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72,
+ 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 72, 73, 69, 85, 72, 128, 89, 69,
+ 83, 73, 69, 85, 78, 71, 128, 89, 69, 82, 85, 128, 89, 69, 82, 213, 89,
+ 69, 82, 73, 128, 89, 69, 82, 65, 200, 89, 69, 82, 128, 89, 69, 79, 82,
+ 73, 78, 72, 73, 69, 85, 72, 128, 89, 69, 79, 45, 89, 65, 128, 89, 69, 79,
+ 45, 85, 128, 89, 69, 79, 45, 79, 128, 89, 69, 78, 73, 83, 69, 201, 89,
+ 69, 78, 65, 80, 128, 89, 69, 78, 128, 89, 69, 206, 89, 69, 76, 76, 79,
+ 87, 128, 89, 69, 76, 76, 79, 215, 89, 69, 73, 78, 128, 89, 69, 72, 128,
+ 89, 69, 69, 71, 128, 89, 69, 69, 128, 89, 69, 65, 210, 89, 69, 65, 128,
+ 89, 65, 90, 90, 128, 89, 65, 90, 72, 128, 89, 65, 90, 128, 89, 65, 89,
+ 68, 128, 89, 65, 89, 65, 78, 78, 65, 128, 89, 65, 89, 128, 89, 65, 87,
+ 78, 73, 78, 199, 89, 65, 87, 78, 128, 89, 65, 87, 128, 89, 65, 86, 128,
+ 89, 65, 85, 128, 89, 65, 84, 84, 128, 89, 65, 84, 73, 128, 89, 65, 84,
+ 72, 128, 89, 65, 84, 128, 89, 65, 83, 83, 128, 89, 65, 83, 72, 128, 89,
+ 65, 83, 128, 89, 65, 82, 82, 128, 89, 65, 82, 78, 128, 89, 65, 82, 128,
+ 89, 65, 210, 89, 65, 81, 128, 89, 65, 80, 128, 89, 65, 78, 83, 65, 89,
+ 65, 128, 89, 65, 78, 71, 128, 89, 65, 78, 199, 89, 65, 78, 128, 89, 65,
+ 77, 79, 75, 128, 89, 65, 77, 65, 75, 75, 65, 78, 128, 89, 65, 77, 128,
+ 89, 65, 76, 128, 89, 65, 75, 72, 72, 128, 89, 65, 75, 72, 128, 89, 65,
+ 75, 65, 83, 72, 128, 89, 65, 75, 128, 89, 65, 74, 85, 82, 86, 69, 68, 73,
+ 195, 89, 65, 74, 128, 89, 65, 73, 128, 89, 65, 72, 72, 128, 89, 65, 72,
+ 128, 89, 65, 71, 78, 128, 89, 65, 71, 72, 72, 128, 89, 65, 71, 72, 128,
+ 89, 65, 71, 128, 89, 65, 70, 213, 89, 65, 70, 128, 89, 65, 69, 77, 77,
+ 65, 69, 128, 89, 65, 68, 72, 128, 89, 65, 68, 68, 72, 128, 89, 65, 68,
+ 68, 128, 89, 65, 68, 128, 89, 65, 67, 72, 128, 89, 65, 66, 72, 128, 89,
+ 65, 66, 128, 89, 65, 65, 82, 85, 128, 89, 65, 65, 73, 128, 89, 65, 65,
+ 68, 79, 128, 89, 65, 45, 89, 79, 128, 89, 65, 45, 85, 128, 89, 65, 45,
+ 79, 128, 89, 65, 45, 53, 128, 89, 65, 45, 52, 128, 89, 65, 45, 51, 128,
+ 89, 65, 45, 50, 128, 89, 65, 45, 49, 128, 89, 48, 48, 56, 128, 89, 48,
+ 48, 55, 128, 89, 48, 48, 54, 128, 89, 48, 48, 53, 128, 89, 48, 48, 52,
+ 128, 89, 48, 48, 51, 128, 89, 48, 48, 50, 128, 89, 48, 48, 49, 65, 128,
+ 89, 48, 48, 49, 128, 89, 45, 67, 82, 69, 197, 88, 89, 88, 128, 88, 89,
+ 85, 128, 88, 89, 84, 128, 88, 89, 82, 88, 128, 88, 89, 82, 128, 88, 89,
+ 80, 128, 88, 89, 79, 79, 74, 128, 88, 89, 79, 79, 128, 88, 89, 79, 128,
+ 88, 89, 73, 128, 88, 89, 69, 69, 205, 88, 89, 69, 69, 128, 88, 89, 69,
+ 128, 88, 89, 65, 65, 128, 88, 89, 65, 128, 88, 89, 128, 88, 87, 73, 128,
+ 88, 87, 69, 69, 128, 88, 87, 69, 128, 88, 87, 65, 65, 128, 88, 87, 65,
+ 128, 88, 87, 128, 88, 215, 88, 86, 69, 128, 88, 86, 65, 128, 88, 85, 79,
+ 88, 128, 88, 85, 79, 128, 88, 85, 128, 88, 83, 72, 65, 65, 89, 65, 84,
+ 72, 73, 89, 65, 128, 88, 79, 88, 128, 88, 79, 84, 128, 88, 79, 82, 128,
+ 88, 79, 80, 72, 128, 88, 79, 80, 128, 88, 79, 65, 128, 88, 79, 128, 88,
+ 73, 88, 128, 88, 73, 84, 128, 88, 73, 82, 79, 206, 88, 73, 80, 128, 88,
+ 73, 69, 88, 128, 88, 73, 69, 84, 128, 88, 73, 69, 80, 128, 88, 73, 69,
+ 128, 88, 73, 65, 78, 71, 81, 201, 88, 73, 65, 66, 128, 88, 73, 128, 88,
+ 72, 69, 89, 78, 128, 88, 71, 128, 88, 69, 89, 78, 128, 88, 69, 83, 84,
+ 69, 211, 88, 69, 72, 128, 88, 69, 69, 128, 88, 69, 128, 88, 65, 85, 83,
+ 128, 88, 65, 85, 128, 88, 65, 80, 72, 128, 88, 65, 78, 128, 88, 65, 65,
+ 128, 88, 65, 128, 88, 48, 48, 56, 65, 128, 88, 48, 48, 56, 128, 88, 48,
+ 48, 55, 128, 88, 48, 48, 54, 65, 128, 88, 48, 48, 54, 128, 88, 48, 48,
+ 53, 128, 88, 48, 48, 52, 66, 128, 88, 48, 48, 52, 65, 128, 88, 48, 48,
+ 52, 128, 88, 48, 48, 51, 128, 88, 48, 48, 50, 128, 88, 48, 48, 49, 128,
+ 88, 45, 216, 87, 90, 128, 87, 89, 78, 78, 128, 87, 89, 78, 206, 87, 86,
+ 73, 128, 87, 86, 69, 128, 87, 86, 65, 128, 87, 86, 128, 87, 85, 80, 128,
+ 87, 85, 79, 88, 128, 87, 85, 79, 80, 128, 87, 85, 79, 128, 87, 85, 78,
+ 74, 207, 87, 85, 78, 128, 87, 85, 76, 85, 128, 87, 85, 76, 213, 87, 85,
+ 73, 128, 87, 85, 69, 128, 87, 85, 65, 69, 84, 128, 87, 85, 65, 69, 78,
+ 128, 87, 85, 128, 87, 82, 217, 87, 82, 79, 78, 71, 128, 87, 82, 73, 83,
+ 212, 87, 82, 73, 78, 75, 76, 69, 83, 128, 87, 82, 73, 78, 75, 76, 69,
+ 211, 87, 82, 73, 78, 75, 76, 69, 68, 128, 87, 82, 69, 83, 84, 76, 69, 82,
+ 83, 128, 87, 82, 69, 78, 67, 72, 128, 87, 82, 69, 65, 84, 200, 87, 82,
+ 65, 80, 80, 69, 196, 87, 82, 65, 80, 128, 87, 79, 88, 128, 87, 79, 87,
+ 128, 87, 79, 82, 83, 72, 73, 80, 128, 87, 79, 82, 82, 73, 69, 196, 87,
+ 79, 82, 77, 128, 87, 79, 82, 76, 196, 87, 79, 82, 75, 69, 82, 128, 87,
+ 79, 82, 75, 128, 87, 79, 82, 203, 87, 79, 82, 68, 83, 80, 65, 67, 69,
+ 128, 87, 79, 82, 196, 87, 79, 80, 128, 87, 79, 79, 78, 128, 87, 79, 79,
+ 76, 128, 87, 79, 79, 68, 83, 45, 67, 82, 69, 197, 87, 79, 79, 68, 128,
+ 87, 79, 78, 128, 87, 79, 206, 87, 79, 77, 69, 78, 211, 87, 79, 77, 69,
+ 206, 87, 79, 77, 65, 78, 211, 87, 79, 77, 65, 78, 128, 87, 79, 77, 65,
+ 206, 87, 79, 76, 79, 83, 79, 128, 87, 79, 76, 198, 87, 79, 69, 128, 87,
+ 79, 65, 128, 87, 79, 45, 55, 128, 87, 79, 45, 54, 128, 87, 79, 45, 53,
+ 128, 87, 79, 45, 52, 128, 87, 79, 45, 51, 128, 87, 79, 45, 50, 128, 87,
+ 79, 45, 49, 128, 87, 73, 84, 72, 79, 85, 212, 87, 73, 84, 72, 73, 78,
+ 128, 87, 73, 84, 72, 73, 206, 87, 73, 82, 69, 196, 87, 73, 78, 84, 69,
+ 82, 128, 87, 73, 78, 75, 73, 78, 199, 87, 73, 78, 75, 128, 87, 73, 78,
+ 74, 65, 128, 87, 73, 78, 71, 83, 128, 87, 73, 78, 69, 128, 87, 73, 78,
+ 197, 87, 73, 78, 68, 85, 128, 87, 73, 78, 68, 79, 87, 128, 87, 73, 78,
+ 68, 128, 87, 73, 78, 196, 87, 73, 78, 128, 87, 73, 76, 84, 69, 196, 87,
+ 73, 71, 78, 89, 65, 78, 128, 87, 73, 71, 71, 76, 217, 87, 73, 71, 71, 76,
+ 69, 83, 128, 87, 73, 68, 84, 72, 128, 87, 73, 68, 69, 78, 73, 78, 199,
+ 87, 73, 68, 69, 45, 72, 69, 65, 68, 69, 196, 87, 73, 68, 197, 87, 73, 65,
+ 78, 71, 87, 65, 65, 75, 128, 87, 73, 65, 78, 71, 128, 87, 73, 45, 53,
+ 128, 87, 73, 45, 52, 128, 87, 73, 45, 51, 128, 87, 73, 45, 50, 128, 87,
+ 73, 45, 49, 128, 87, 72, 79, 76, 197, 87, 72, 73, 84, 69, 45, 70, 69, 65,
+ 84, 72, 69, 82, 69, 196, 87, 72, 73, 84, 69, 128, 87, 72, 69, 69, 76, 69,
+ 196, 87, 72, 69, 69, 76, 67, 72, 65, 73, 82, 128, 87, 72, 69, 69, 76, 67,
+ 72, 65, 73, 210, 87, 72, 69, 69, 76, 128, 87, 72, 69, 69, 204, 87, 72,
+ 69, 65, 84, 128, 87, 72, 65, 76, 69, 128, 87, 72, 128, 87, 71, 128, 87,
+ 69, 88, 128, 87, 69, 85, 88, 128, 87, 69, 212, 87, 69, 83, 84, 69, 82,
+ 206, 87, 69, 83, 84, 45, 67, 82, 69, 197, 87, 69, 83, 84, 128, 87, 69,
+ 83, 212, 87, 69, 80, 128, 87, 69, 79, 128, 87, 69, 78, 128, 87, 69, 76,
+ 76, 128, 87, 69, 73, 71, 72, 212, 87, 69, 73, 69, 82, 83, 84, 82, 65, 83,
+ 211, 87, 69, 73, 128, 87, 69, 69, 78, 128, 87, 69, 68, 71, 69, 45, 84,
+ 65, 73, 76, 69, 196, 87, 69, 68, 71, 69, 128, 87, 69, 68, 68, 73, 78, 71,
+ 128, 87, 69, 66, 128, 87, 69, 65, 82, 217, 87, 69, 65, 80, 79, 78, 128,
+ 87, 69, 45, 52, 128, 87, 69, 45, 51, 128, 87, 69, 45, 50, 128, 87, 69,
+ 45, 49, 128, 87, 67, 128, 87, 66, 128, 87, 65, 89, 128, 87, 65, 217, 87,
+ 65, 88, 73, 78, 199, 87, 65, 88, 128, 87, 65, 87, 45, 65, 89, 73, 78, 45,
+ 82, 69, 83, 72, 128, 87, 65, 87, 128, 87, 65, 215, 87, 65, 86, 217, 87,
+ 65, 86, 73, 78, 199, 87, 65, 86, 69, 83, 128, 87, 65, 86, 69, 128, 87,
+ 65, 86, 197, 87, 65, 85, 128, 87, 65, 84, 84, 79, 128, 87, 65, 84, 69,
+ 82, 77, 69, 76, 79, 78, 128, 87, 65, 84, 69, 82, 128, 87, 65, 84, 69,
+ 210, 87, 65, 84, 67, 72, 128, 87, 65, 84, 128, 87, 65, 83, 84, 73, 78,
+ 71, 128, 87, 65, 83, 84, 69, 66, 65, 83, 75, 69, 84, 128, 87, 65, 83, 83,
+ 65, 76, 76, 65, 77, 128, 87, 65, 83, 76, 65, 128, 87, 65, 83, 76, 193,
+ 87, 65, 83, 65, 76, 76, 65, 77, 128, 87, 65, 83, 65, 76, 76, 65, 205, 87,
+ 65, 82, 78, 73, 78, 199, 87, 65, 82, 65, 78, 199, 87, 65, 81, 70, 65,
+ 128, 87, 65, 80, 128, 87, 65, 78, 73, 78, 199, 87, 65, 78, 71, 75, 85,
+ 79, 81, 128, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 78, 68, 128,
+ 87, 65, 78, 67, 72, 207, 87, 65, 78, 128, 87, 65, 76, 76, 80, 76, 65, 78,
+ 197, 87, 65, 76, 76, 128, 87, 65, 76, 204, 87, 65, 76, 75, 128, 87, 65,
+ 76, 203, 87, 65, 73, 84, 73, 78, 71, 128, 87, 65, 73, 83, 84, 128, 87,
+ 65, 73, 128, 87, 65, 70, 70, 76, 69, 128, 87, 65, 69, 78, 128, 87, 65,
+ 69, 128, 87, 65, 68, 68, 65, 128, 87, 65, 65, 86, 85, 128, 87, 65, 45,
+ 53, 128, 87, 65, 45, 52, 128, 87, 65, 45, 51, 128, 87, 65, 45, 50, 128,
+ 87, 65, 45, 49, 128, 87, 48, 50, 53, 128, 87, 48, 50, 52, 65, 128, 87,
+ 48, 50, 52, 128, 87, 48, 50, 51, 128, 87, 48, 50, 50, 128, 87, 48, 50,
+ 49, 128, 87, 48, 50, 48, 128, 87, 48, 49, 57, 128, 87, 48, 49, 56, 65,
+ 128, 87, 48, 49, 56, 128, 87, 48, 49, 55, 65, 128, 87, 48, 49, 55, 128,
+ 87, 48, 49, 54, 128, 87, 48, 49, 53, 128, 87, 48, 49, 52, 65, 128, 87,
+ 48, 49, 52, 128, 87, 48, 49, 51, 128, 87, 48, 49, 50, 128, 87, 48, 49,
+ 49, 128, 87, 48, 49, 48, 65, 128, 87, 48, 49, 48, 128, 87, 48, 48, 57,
+ 65, 128, 87, 48, 48, 57, 128, 87, 48, 48, 56, 128, 87, 48, 48, 55, 128,
+ 87, 48, 48, 54, 128, 87, 48, 48, 53, 128, 87, 48, 48, 52, 128, 87, 48,
+ 48, 51, 65, 128, 87, 48, 48, 51, 128, 87, 48, 48, 50, 128, 87, 48, 48,
+ 49, 128, 86, 90, 77, 69, 84, 128, 86, 89, 88, 128, 86, 89, 84, 128, 86,
+ 89, 82, 88, 128, 86, 89, 82, 128, 86, 89, 80, 128, 86, 89, 128, 86, 87,
+ 74, 128, 86, 87, 65, 128, 86, 87, 128, 86, 85, 88, 128, 86, 85, 85, 128,
+ 86, 85, 84, 128, 86, 85, 82, 88, 128, 86, 85, 82, 128, 86, 85, 80, 128,
+ 86, 85, 76, 71, 65, 210, 86, 85, 76, 67, 65, 78, 85, 83, 128, 86, 85, 69,
+ 81, 128, 86, 84, 83, 128, 86, 84, 128, 86, 83, 57, 57, 128, 86, 83, 57,
+ 56, 128, 86, 83, 57, 55, 128, 86, 83, 57, 54, 128, 86, 83, 57, 53, 128,
+ 86, 83, 57, 52, 128, 86, 83, 57, 51, 128, 86, 83, 57, 50, 128, 86, 83,
+ 57, 49, 128, 86, 83, 57, 48, 128, 86, 83, 57, 128, 86, 83, 56, 57, 128,
+ 86, 83, 56, 56, 128, 86, 83, 56, 55, 128, 86, 83, 56, 54, 128, 86, 83,
+ 56, 53, 128, 86, 83, 56, 52, 128, 86, 83, 56, 51, 128, 86, 83, 56, 50,
+ 128, 86, 83, 56, 49, 128, 86, 83, 56, 48, 128, 86, 83, 56, 128, 86, 83,
+ 55, 57, 128, 86, 83, 55, 56, 128, 86, 83, 55, 55, 128, 86, 83, 55, 54,
+ 128, 86, 83, 55, 53, 128, 86, 83, 55, 52, 128, 86, 83, 55, 51, 128, 86,
+ 83, 55, 50, 128, 86, 83, 55, 49, 128, 86, 83, 55, 48, 128, 86, 83, 55,
+ 128, 86, 83, 54, 57, 128, 86, 83, 54, 56, 128, 86, 83, 54, 55, 128, 86,
+ 83, 54, 54, 128, 86, 83, 54, 53, 128, 86, 83, 54, 52, 128, 86, 83, 54,
+ 51, 128, 86, 83, 54, 50, 128, 86, 83, 54, 49, 128, 86, 83, 54, 48, 128,
+ 86, 83, 54, 128, 86, 83, 53, 57, 128, 86, 83, 53, 56, 128, 86, 83, 53,
+ 55, 128, 86, 83, 53, 54, 128, 86, 83, 53, 53, 128, 86, 83, 53, 52, 128,
+ 86, 83, 53, 51, 128, 86, 83, 53, 50, 128, 86, 83, 53, 49, 128, 86, 83,
+ 53, 48, 128, 86, 83, 53, 128, 86, 83, 52, 57, 128, 86, 83, 52, 56, 128,
+ 86, 83, 52, 55, 128, 86, 83, 52, 54, 128, 86, 83, 52, 53, 128, 86, 83,
+ 52, 52, 128, 86, 83, 52, 51, 128, 86, 83, 52, 50, 128, 86, 83, 52, 49,
+ 128, 86, 83, 52, 48, 128, 86, 83, 52, 128, 86, 83, 51, 57, 128, 86, 83,
+ 51, 56, 128, 86, 83, 51, 55, 128, 86, 83, 51, 54, 128, 86, 83, 51, 53,
+ 128, 86, 83, 51, 52, 128, 86, 83, 51, 51, 128, 86, 83, 51, 50, 128, 86,
+ 83, 51, 49, 128, 86, 83, 51, 48, 128, 86, 83, 51, 128, 86, 83, 50, 57,
+ 128, 86, 83, 50, 56, 128, 86, 83, 50, 55, 128, 86, 83, 50, 54, 128, 86,
+ 83, 50, 53, 54, 128, 86, 83, 50, 53, 53, 128, 86, 83, 50, 53, 52, 128,
+ 86, 83, 50, 53, 51, 128, 86, 83, 50, 53, 50, 128, 86, 83, 50, 53, 49,
+ 128, 86, 83, 50, 53, 48, 128, 86, 83, 50, 53, 128, 86, 83, 50, 52, 57,
+ 128, 86, 83, 50, 52, 56, 128, 86, 83, 50, 52, 55, 128, 86, 83, 50, 52,
+ 54, 128, 86, 83, 50, 52, 53, 128, 86, 83, 50, 52, 52, 128, 86, 83, 50,
+ 52, 51, 128, 86, 83, 50, 52, 50, 128, 86, 83, 50, 52, 49, 128, 86, 83,
+ 50, 52, 48, 128, 86, 83, 50, 52, 128, 86, 83, 50, 51, 57, 128, 86, 83,
+ 50, 51, 56, 128, 86, 83, 50, 51, 55, 128, 86, 83, 50, 51, 54, 128, 86,
+ 83, 50, 51, 53, 128, 86, 83, 50, 51, 52, 128, 86, 83, 50, 51, 51, 128,
+ 86, 83, 50, 51, 50, 128, 86, 83, 50, 51, 49, 128, 86, 83, 50, 51, 48,
+ 128, 86, 83, 50, 51, 128, 86, 83, 50, 50, 57, 128, 86, 83, 50, 50, 56,
+ 128, 86, 83, 50, 50, 55, 128, 86, 83, 50, 50, 54, 128, 86, 83, 50, 50,
+ 53, 128, 86, 83, 50, 50, 52, 128, 86, 83, 50, 50, 51, 128, 86, 83, 50,
+ 50, 50, 128, 86, 83, 50, 50, 49, 128, 86, 83, 50, 50, 48, 128, 86, 83,
+ 50, 50, 128, 86, 83, 50, 49, 57, 128, 86, 83, 50, 49, 56, 128, 86, 83,
+ 50, 49, 55, 128, 86, 83, 50, 49, 54, 128, 86, 83, 50, 49, 53, 128, 86,
+ 83, 50, 49, 52, 128, 86, 83, 50, 49, 51, 128, 86, 83, 50, 49, 50, 128,
+ 86, 83, 50, 49, 49, 128, 86, 83, 50, 49, 48, 128, 86, 83, 50, 49, 128,
+ 86, 83, 50, 48, 57, 128, 86, 83, 50, 48, 56, 128, 86, 83, 50, 48, 55,
+ 128, 86, 83, 50, 48, 54, 128, 86, 83, 50, 48, 53, 128, 86, 83, 50, 48,
+ 52, 128, 86, 83, 50, 48, 51, 128, 86, 83, 50, 48, 50, 128, 86, 83, 50,
+ 48, 49, 128, 86, 83, 50, 48, 48, 128, 86, 83, 50, 48, 128, 86, 83, 50,
+ 128, 86, 83, 49, 57, 57, 128, 86, 83, 49, 57, 56, 128, 86, 83, 49, 57,
+ 55, 128, 86, 83, 49, 57, 54, 128, 86, 83, 49, 57, 53, 128, 86, 83, 49,
+ 57, 52, 128, 86, 83, 49, 57, 51, 128, 86, 83, 49, 57, 50, 128, 86, 83,
+ 49, 57, 49, 128, 86, 83, 49, 57, 48, 128, 86, 83, 49, 57, 128, 86, 83,
+ 49, 56, 57, 128, 86, 83, 49, 56, 56, 128, 86, 83, 49, 56, 55, 128, 86,
+ 83, 49, 56, 54, 128, 86, 83, 49, 56, 53, 128, 86, 83, 49, 56, 52, 128,
+ 86, 83, 49, 56, 51, 128, 86, 83, 49, 56, 50, 128, 86, 83, 49, 56, 49,
+ 128, 86, 83, 49, 56, 48, 128, 86, 83, 49, 56, 128, 86, 83, 49, 55, 57,
+ 128, 86, 83, 49, 55, 56, 128, 86, 83, 49, 55, 55, 128, 86, 83, 49, 55,
+ 54, 128, 86, 83, 49, 55, 53, 128, 86, 83, 49, 55, 52, 128, 86, 83, 49,
+ 55, 51, 128, 86, 83, 49, 55, 50, 128, 86, 83, 49, 55, 49, 128, 86, 83,
+ 49, 55, 48, 128, 86, 83, 49, 55, 128, 86, 83, 49, 54, 57, 128, 86, 83,
+ 49, 54, 56, 128, 86, 83, 49, 54, 55, 128, 86, 83, 49, 54, 54, 128, 86,
+ 83, 49, 54, 53, 128, 86, 83, 49, 54, 52, 128, 86, 83, 49, 54, 51, 128,
+ 86, 83, 49, 54, 50, 128, 86, 83, 49, 54, 49, 128, 86, 83, 49, 54, 48,
+ 128, 86, 83, 49, 54, 128, 86, 83, 49, 53, 57, 128, 86, 83, 49, 53, 56,
+ 128, 86, 83, 49, 53, 55, 128, 86, 83, 49, 53, 54, 128, 86, 83, 49, 53,
+ 53, 128, 86, 83, 49, 53, 52, 128, 86, 83, 49, 53, 51, 128, 86, 83, 49,
+ 53, 50, 128, 86, 83, 49, 53, 49, 128, 86, 83, 49, 53, 48, 128, 86, 83,
+ 49, 53, 128, 86, 83, 49, 52, 57, 128, 86, 83, 49, 52, 56, 128, 86, 83,
+ 49, 52, 55, 128, 86, 83, 49, 52, 54, 128, 86, 83, 49, 52, 53, 128, 86,
+ 83, 49, 52, 52, 128, 86, 83, 49, 52, 51, 128, 86, 83, 49, 52, 50, 128,
+ 86, 83, 49, 52, 49, 128, 86, 83, 49, 52, 48, 128, 86, 83, 49, 52, 128,
+ 86, 83, 49, 51, 57, 128, 86, 83, 49, 51, 56, 128, 86, 83, 49, 51, 55,
+ 128, 86, 83, 49, 51, 54, 128, 86, 83, 49, 51, 53, 128, 86, 83, 49, 51,
+ 52, 128, 86, 83, 49, 51, 51, 128, 86, 83, 49, 51, 50, 128, 86, 83, 49,
+ 51, 49, 128, 86, 83, 49, 51, 48, 128, 86, 83, 49, 51, 128, 86, 83, 49,
+ 50, 57, 128, 86, 83, 49, 50, 56, 128, 86, 83, 49, 50, 55, 128, 86, 83,
+ 49, 50, 54, 128, 86, 83, 49, 50, 53, 128, 86, 83, 49, 50, 52, 128, 86,
+ 83, 49, 50, 51, 128, 86, 83, 49, 50, 50, 128, 86, 83, 49, 50, 49, 128,
+ 86, 83, 49, 50, 48, 128, 86, 83, 49, 50, 128, 86, 83, 49, 49, 57, 128,
+ 86, 83, 49, 49, 56, 128, 86, 83, 49, 49, 55, 128, 86, 83, 49, 49, 54,
+ 128, 86, 83, 49, 49, 53, 128, 86, 83, 49, 49, 52, 128, 86, 83, 49, 49,
+ 51, 128, 86, 83, 49, 49, 50, 128, 86, 83, 49, 49, 49, 128, 86, 83, 49,
+ 49, 48, 128, 86, 83, 49, 49, 128, 86, 83, 49, 48, 57, 128, 86, 83, 49,
+ 48, 56, 128, 86, 83, 49, 48, 55, 128, 86, 83, 49, 48, 54, 128, 86, 83,
+ 49, 48, 53, 128, 86, 83, 49, 48, 52, 128, 86, 83, 49, 48, 51, 128, 86,
+ 83, 49, 48, 50, 128, 86, 83, 49, 48, 49, 128, 86, 83, 49, 48, 48, 128,
+ 86, 83, 49, 48, 128, 86, 83, 49, 128, 86, 83, 128, 86, 82, 65, 67, 72,
+ 89, 128, 86, 79, 88, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, 82, 73, 69,
+ 210, 86, 79, 87, 128, 86, 79, 85, 128, 86, 79, 84, 128, 86, 79, 211, 86,
+ 79, 80, 128, 86, 79, 79, 73, 128, 86, 79, 79, 128, 86, 79, 77, 73, 84,
+ 73, 78, 71, 128, 86, 79, 77, 128, 86, 79, 76, 85, 77, 197, 86, 79, 76,
+ 84, 65, 71, 197, 86, 79, 76, 76, 69, 89, 66, 65, 76, 76, 128, 86, 79, 76,
+ 67, 65, 78, 79, 128, 86, 79, 76, 65, 80, 85, 203, 86, 79, 73, 68, 69,
+ 196, 86, 79, 73, 196, 86, 79, 73, 67, 73, 78, 71, 128, 86, 79, 73, 67,
+ 69, 76, 69, 83, 211, 86, 79, 73, 67, 69, 196, 86, 79, 68, 128, 86, 79,
+ 67, 65, 76, 73, 90, 65, 84, 73, 79, 206, 86, 79, 67, 65, 204, 86, 79,
+ 128, 86, 73, 89, 79, 128, 86, 73, 88, 128, 86, 73, 84, 82, 73, 79, 76,
+ 45, 50, 128, 86, 73, 84, 82, 73, 79, 76, 128, 86, 73, 84, 65, 69, 45, 50,
+ 128, 86, 73, 84, 65, 69, 128, 86, 73, 84, 128, 86, 73, 83, 73, 71, 79,
+ 84, 72, 73, 195, 86, 73, 83, 65, 82, 71, 65, 89, 65, 128, 86, 73, 83, 65,
+ 82, 71, 65, 128, 86, 73, 83, 65, 82, 71, 193, 86, 73, 82, 73, 65, 77,
+ 128, 86, 73, 82, 71, 79, 128, 86, 73, 82, 71, 65, 128, 86, 73, 82, 65,
+ 77, 65, 128, 86, 73, 80, 128, 86, 73, 79, 76, 73, 78, 128, 86, 73, 78,
+ 69, 71, 65, 82, 45, 51, 128, 86, 73, 78, 69, 71, 65, 82, 45, 50, 128, 86,
+ 73, 78, 69, 71, 65, 82, 128, 86, 73, 78, 69, 71, 65, 210, 86, 73, 78, 69,
+ 128, 86, 73, 78, 197, 86, 73, 78, 128, 86, 73, 76, 76, 65, 71, 69, 128,
+ 86, 73, 73, 128, 86, 73, 71, 73, 78, 84, 73, 76, 69, 128, 86, 73, 69, 88,
+ 128, 86, 73, 69, 87, 73, 78, 199, 86, 73, 69, 87, 68, 65, 84, 193, 86,
+ 73, 69, 84, 78, 65, 77, 69, 83, 197, 86, 73, 69, 84, 128, 86, 73, 69,
+ 212, 86, 73, 69, 80, 128, 86, 73, 69, 128, 86, 73, 68, 74, 45, 50, 128,
+ 86, 73, 68, 74, 128, 86, 73, 68, 69, 79, 67, 65, 83, 83, 69, 84, 84, 69,
+ 128, 86, 73, 68, 69, 207, 86, 73, 68, 65, 128, 86, 73, 67, 84, 79, 82,
+ 217, 86, 73, 66, 82, 65, 84, 73, 79, 206, 86, 72, 65, 128, 86, 70, 65,
+ 128, 86, 69, 89, 90, 128, 86, 69, 88, 128, 86, 69, 87, 128, 86, 69, 215,
+ 86, 69, 85, 88, 128, 86, 69, 85, 77, 128, 86, 69, 85, 65, 69, 80, 69, 78,
+ 128, 86, 69, 85, 65, 69, 128, 86, 69, 83, 84, 65, 128, 86, 69, 83, 84,
+ 128, 86, 69, 83, 83, 69, 204, 86, 69, 82, 217, 86, 69, 82, 84, 73, 67,
+ 65, 76, 76, 89, 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 217, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 54, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 54, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45,
+ 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 49, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 53, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 53, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45,
+ 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 50, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 53, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 52, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45,
+ 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 51, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 52, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 52, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45,
+ 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 52, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 51, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 51, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45,
+ 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 53, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 50, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 50, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45,
+ 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 54, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 49, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 49, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45,
+ 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 48, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 45, 48, 48, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45,
+ 48, 48, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45,
+ 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128,
+ 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 49, 128, 86, 69, 82,
+ 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67,
+ 65, 76, 128, 86, 69, 82, 83, 73, 67, 76, 69, 128, 86, 69, 82, 83, 197,
+ 86, 69, 82, 71, 69, 128, 86, 69, 82, 68, 73, 71, 82, 73, 83, 128, 86, 69,
+ 82, 128, 86, 69, 80, 128, 86, 69, 78, 68, 128, 86, 69, 76, 73, 128, 86,
+ 69, 73, 76, 128, 86, 69, 72, 73, 67, 76, 69, 128, 86, 69, 72, 128, 86,
+ 69, 200, 86, 69, 69, 128, 86, 69, 197, 86, 69, 68, 69, 128, 86, 69, 67,
+ 84, 79, 210, 86, 65, 89, 65, 78, 78, 65, 128, 86, 65, 88, 128, 86, 65,
+ 86, 128, 86, 65, 214, 86, 65, 85, 128, 86, 65, 84, 72, 89, 128, 86, 65,
+ 84, 128, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 83, 73, 83, 128, 86,
+ 65, 82, 89, 211, 86, 65, 82, 73, 75, 65, 128, 86, 65, 82, 73, 65, 78, 84,
+ 128, 86, 65, 82, 73, 65, 78, 212, 86, 65, 82, 73, 65, 128, 86, 65, 82,
+ 73, 193, 86, 65, 82, 69, 73, 65, 201, 86, 65, 82, 69, 73, 193, 86, 65,
+ 82, 65, 65, 75, 65, 78, 128, 86, 65, 80, 79, 85, 82, 83, 128, 86, 65, 80,
+ 128, 86, 65, 78, 69, 128, 86, 65, 77, 80, 73, 82, 69, 128, 86, 65, 77,
+ 65, 71, 79, 77, 85, 75, 72, 65, 128, 86, 65, 77, 65, 71, 79, 77, 85, 75,
+ 72, 193, 86, 65, 76, 76, 69, 89, 128, 86, 65, 75, 65, 73, 89, 65, 82, 65,
+ 65, 128, 86, 65, 74, 128, 86, 65, 73, 128, 86, 65, 72, 128, 86, 65, 200,
+ 86, 65, 65, 86, 85, 128, 86, 65, 65, 128, 86, 193, 86, 48, 52, 48, 65,
+ 128, 86, 48, 52, 48, 128, 86, 48, 51, 57, 128, 86, 48, 51, 56, 128, 86,
+ 48, 51, 55, 65, 128, 86, 48, 51, 55, 128, 86, 48, 51, 54, 128, 86, 48,
+ 51, 53, 128, 86, 48, 51, 52, 128, 86, 48, 51, 51, 65, 128, 86, 48, 51,
+ 51, 128, 86, 48, 51, 50, 128, 86, 48, 51, 49, 65, 128, 86, 48, 51, 49,
+ 128, 86, 48, 51, 48, 65, 128, 86, 48, 51, 48, 128, 86, 48, 50, 57, 65,
+ 128, 86, 48, 50, 57, 128, 86, 48, 50, 56, 65, 128, 86, 48, 50, 56, 128,
+ 86, 48, 50, 55, 128, 86, 48, 50, 54, 128, 86, 48, 50, 53, 128, 86, 48,
+ 50, 52, 128, 86, 48, 50, 51, 65, 128, 86, 48, 50, 51, 128, 86, 48, 50,
+ 50, 128, 86, 48, 50, 49, 128, 86, 48, 50, 48, 76, 128, 86, 48, 50, 48,
+ 75, 128, 86, 48, 50, 48, 74, 128, 86, 48, 50, 48, 73, 128, 86, 48, 50,
+ 48, 72, 128, 86, 48, 50, 48, 71, 128, 86, 48, 50, 48, 70, 128, 86, 48,
+ 50, 48, 69, 128, 86, 48, 50, 48, 68, 128, 86, 48, 50, 48, 67, 128, 86,
+ 48, 50, 48, 66, 128, 86, 48, 50, 48, 65, 128, 86, 48, 50, 48, 128, 86,
+ 48, 49, 57, 128, 86, 48, 49, 56, 128, 86, 48, 49, 55, 128, 86, 48, 49,
+ 54, 128, 86, 48, 49, 53, 128, 86, 48, 49, 52, 128, 86, 48, 49, 51, 128,
+ 86, 48, 49, 50, 66, 128, 86, 48, 49, 50, 65, 128, 86, 48, 49, 50, 128,
+ 86, 48, 49, 49, 67, 128, 86, 48, 49, 49, 66, 128, 86, 48, 49, 49, 65,
+ 128, 86, 48, 49, 49, 128, 86, 48, 49, 48, 128, 86, 48, 48, 57, 128, 86,
+ 48, 48, 56, 128, 86, 48, 48, 55, 66, 128, 86, 48, 48, 55, 65, 128, 86,
+ 48, 48, 55, 128, 86, 48, 48, 54, 128, 86, 48, 48, 53, 128, 86, 48, 48,
+ 52, 128, 86, 48, 48, 51, 128, 86, 48, 48, 50, 65, 128, 86, 48, 48, 50,
+ 128, 86, 48, 48, 49, 73, 128, 86, 48, 48, 49, 72, 128, 86, 48, 48, 49,
+ 71, 128, 86, 48, 48, 49, 70, 128, 86, 48, 48, 49, 69, 128, 86, 48, 48,
+ 49, 68, 128, 86, 48, 48, 49, 67, 128, 86, 48, 48, 49, 66, 128, 86, 48,
+ 48, 49, 65, 128, 86, 48, 48, 49, 128, 85, 90, 85, 128, 85, 90, 72, 65,
+ 75, 75, 85, 128, 85, 90, 51, 128, 85, 90, 179, 85, 89, 65, 78, 78, 65,
+ 128, 85, 89, 128, 85, 87, 85, 128, 85, 85, 89, 65, 78, 78, 65, 128, 85,
+ 85, 85, 85, 128, 85, 85, 85, 51, 128, 85, 85, 85, 50, 128, 85, 85, 69,
+ 128, 85, 84, 85, 75, 73, 128, 85, 83, 83, 85, 51, 128, 85, 83, 83, 85,
+ 128, 85, 83, 72, 88, 128, 85, 83, 72, 85, 77, 88, 128, 85, 83, 72, 69,
+ 78, 78, 65, 128, 85, 83, 72, 50, 128, 85, 83, 72, 128, 85, 83, 200, 85,
+ 83, 69, 196, 85, 83, 69, 45, 50, 128, 85, 83, 69, 45, 49, 128, 85, 83,
+ 69, 128, 85, 83, 197, 85, 82, 85, 218, 85, 82, 85, 83, 128, 85, 82, 85,
+ 68, 65, 128, 85, 82, 85, 68, 193, 85, 82, 85, 128, 85, 82, 213, 85, 82,
+ 78, 128, 85, 82, 73, 78, 69, 128, 85, 82, 73, 51, 128, 85, 82, 73, 128,
+ 85, 82, 65, 78, 85, 83, 128, 85, 82, 65, 128, 85, 82, 52, 128, 85, 82,
+ 50, 128, 85, 82, 178, 85, 210, 85, 80, 87, 65, 82, 68, 83, 128, 85, 80,
+ 87, 65, 82, 68, 211, 85, 80, 87, 65, 82, 68, 128, 85, 80, 87, 65, 82,
+ 196, 85, 80, 84, 85, 82, 78, 128, 85, 80, 83, 73, 76, 79, 78, 128, 85,
+ 80, 83, 73, 76, 79, 206, 85, 80, 83, 73, 68, 69, 45, 68, 79, 87, 206, 85,
+ 80, 82, 73, 71, 72, 212, 85, 80, 80, 69, 82, 128, 85, 80, 65, 68, 72, 77,
+ 65, 78, 73, 89, 65, 128, 85, 80, 45, 80, 79, 73, 78, 84, 73, 78, 199, 85,
+ 79, 78, 128, 85, 79, 71, 128, 85, 78, 78, 128, 85, 78, 77, 65, 82, 82,
+ 73, 69, 196, 85, 78, 75, 78, 79, 87, 78, 128, 85, 78, 75, 128, 85, 78,
+ 73, 86, 69, 82, 83, 65, 204, 85, 78, 73, 84, 89, 128, 85, 78, 73, 84, 69,
+ 196, 85, 78, 73, 84, 128, 85, 78, 73, 212, 85, 78, 73, 79, 78, 128, 85,
+ 78, 73, 79, 206, 85, 78, 73, 70, 79, 82, 77, 128, 85, 78, 73, 70, 73, 69,
+ 196, 85, 78, 73, 67, 79, 82, 206, 85, 78, 69, 86, 69, 206, 85, 78, 68,
+ 207, 85, 78, 68, 69, 82, 84, 73, 69, 128, 85, 78, 68, 69, 82, 76, 73, 78,
+ 197, 85, 78, 68, 69, 82, 68, 79, 84, 128, 85, 78, 68, 69, 82, 66, 65, 82,
+ 128, 85, 78, 68, 69, 82, 128, 85, 78, 68, 69, 210, 85, 78, 67, 73, 193,
+ 85, 78, 67, 69, 82, 84, 65, 73, 78, 84, 217, 85, 78, 66, 76, 69, 78, 68,
+ 69, 196, 85, 78, 65, 83, 80, 73, 82, 65, 84, 69, 68, 128, 85, 78, 65, 80,
+ 128, 85, 78, 65, 77, 85, 83, 69, 196, 85, 78, 65, 128, 85, 206, 85, 77,
+ 85, 77, 128, 85, 77, 85, 205, 85, 77, 66, 82, 69, 76, 76, 65, 128, 85,
+ 77, 66, 82, 69, 76, 76, 193, 85, 77, 66, 73, 78, 128, 85, 75, 85, 128,
+ 85, 75, 82, 65, 73, 78, 73, 65, 206, 85, 75, 65, 82, 65, 128, 85, 75, 65,
+ 82, 193, 85, 75, 128, 85, 73, 76, 76, 69, 65, 78, 78, 128, 85, 73, 71,
+ 72, 85, 210, 85, 72, 68, 128, 85, 71, 65, 82, 73, 84, 73, 195, 85, 69,
+ 89, 128, 85, 69, 78, 128, 85, 69, 73, 128, 85, 69, 69, 128, 85, 69, 65,
+ 128, 85, 68, 85, 71, 128, 85, 68, 65, 84, 84, 65, 128, 85, 68, 65, 84,
+ 84, 193, 85, 68, 65, 65, 84, 128, 85, 68, 128, 85, 196, 85, 67, 128, 85,
+ 66, 85, 70, 73, 76, 73, 128, 85, 66, 72, 65, 89, 65, 84, 207, 85, 66, 65,
+ 68, 65, 77, 65, 128, 85, 66, 128, 85, 65, 84, 72, 128, 85, 65, 78, 71,
+ 128, 85, 65, 128, 85, 178, 85, 48, 52, 50, 128, 85, 48, 52, 49, 128, 85,
+ 48, 52, 48, 128, 85, 48, 51, 57, 128, 85, 48, 51, 56, 128, 85, 48, 51,
+ 55, 128, 85, 48, 51, 54, 128, 85, 48, 51, 53, 128, 85, 48, 51, 52, 128,
+ 85, 48, 51, 51, 128, 85, 48, 51, 50, 65, 128, 85, 48, 51, 50, 128, 85,
+ 48, 51, 49, 128, 85, 48, 51, 48, 128, 85, 48, 50, 57, 65, 128, 85, 48,
+ 50, 57, 128, 85, 48, 50, 56, 128, 85, 48, 50, 55, 128, 85, 48, 50, 54,
+ 128, 85, 48, 50, 53, 128, 85, 48, 50, 52, 128, 85, 48, 50, 51, 65, 128,
+ 85, 48, 50, 51, 128, 85, 48, 50, 50, 128, 85, 48, 50, 49, 128, 85, 48,
+ 50, 48, 128, 85, 48, 49, 57, 128, 85, 48, 49, 56, 128, 85, 48, 49, 55,
+ 128, 85, 48, 49, 54, 128, 85, 48, 49, 53, 128, 85, 48, 49, 52, 128, 85,
+ 48, 49, 51, 128, 85, 48, 49, 50, 128, 85, 48, 49, 49, 128, 85, 48, 49,
+ 48, 128, 85, 48, 48, 57, 128, 85, 48, 48, 56, 128, 85, 48, 48, 55, 128,
+ 85, 48, 48, 54, 66, 128, 85, 48, 48, 54, 65, 128, 85, 48, 48, 54, 128,
+ 85, 48, 48, 53, 128, 85, 48, 48, 52, 128, 85, 48, 48, 51, 128, 85, 48,
+ 48, 50, 128, 85, 48, 48, 49, 128, 85, 45, 83, 72, 65, 80, 69, 196, 85,
+ 45, 73, 45, 73, 128, 85, 45, 69, 79, 45, 69, 85, 128, 85, 45, 66, 82, 74,
+ 71, 85, 128, 85, 45, 53, 128, 84, 90, 85, 128, 84, 90, 79, 65, 128, 84,
+ 90, 79, 128, 84, 90, 73, 210, 84, 90, 73, 128, 84, 90, 69, 69, 128, 84,
+ 90, 69, 128, 84, 90, 65, 65, 128, 84, 90, 65, 128, 84, 90, 128, 84, 89,
+ 210, 84, 89, 80, 69, 45, 183, 84, 89, 80, 69, 45, 54, 128, 84, 89, 80,
+ 69, 45, 182, 84, 89, 80, 69, 45, 53, 128, 84, 89, 80, 69, 45, 181, 84,
+ 89, 80, 69, 45, 52, 128, 84, 89, 80, 69, 45, 180, 84, 89, 80, 69, 45, 51,
+ 128, 84, 89, 80, 69, 45, 179, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69,
+ 45, 49, 45, 50, 128, 84, 89, 80, 69, 45, 177, 84, 89, 80, 197, 84, 89,
+ 79, 128, 84, 89, 73, 128, 84, 89, 69, 128, 84, 89, 65, 89, 128, 84, 89,
+ 65, 128, 84, 88, 87, 86, 128, 84, 88, 87, 214, 84, 88, 72, 69, 69, 202,
+ 84, 88, 65, 128, 84, 87, 79, 79, 128, 84, 87, 79, 45, 87, 65, 217, 84,
+ 87, 79, 45, 84, 72, 73, 82, 84, 89, 128, 84, 87, 79, 45, 76, 73, 78, 197,
+ 84, 87, 79, 45, 72, 69, 65, 68, 69, 196, 84, 87, 79, 45, 69, 205, 84, 87,
+ 79, 45, 67, 73, 82, 67, 76, 197, 84, 87, 73, 83, 84, 73, 78, 71, 128, 84,
+ 87, 73, 83, 84, 69, 196, 84, 87, 73, 73, 128, 84, 87, 73, 128, 84, 87,
+ 69, 78, 84, 89, 45, 84, 87, 79, 128, 84, 87, 69, 78, 84, 89, 45, 84, 87,
+ 207, 84, 87, 69, 78, 84, 89, 45, 84, 72, 82, 69, 69, 128, 84, 87, 69, 78,
+ 84, 89, 45, 83, 73, 88, 128, 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69,
+ 78, 128, 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, 128, 84, 87, 69, 78, 84,
+ 89, 45, 78, 73, 78, 69, 128, 84, 87, 69, 78, 84, 89, 45, 70, 79, 85, 82,
+ 128, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84,
+ 89, 45, 70, 73, 86, 197, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84,
+ 200, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78,
+ 84, 89, 128, 84, 87, 69, 78, 84, 217, 84, 87, 69, 78, 84, 73, 69, 84, 72,
+ 83, 128, 84, 87, 69, 78, 84, 73, 69, 84, 72, 128, 84, 87, 69, 76, 86, 69,
+ 45, 84, 72, 73, 82, 84, 89, 128, 84, 87, 69, 76, 86, 69, 128, 84, 87, 69,
+ 76, 86, 197, 84, 87, 69, 76, 70, 84, 72, 83, 128, 84, 87, 69, 76, 70, 84,
+ 72, 128, 84, 87, 69, 128, 84, 87, 65, 65, 128, 84, 87, 65, 128, 84, 86,
+ 82, 73, 68, 79, 128, 84, 86, 73, 77, 65, 68, 85, 210, 84, 85, 88, 69, 68,
+ 79, 128, 84, 85, 88, 128, 84, 85, 85, 77, 85, 128, 84, 85, 85, 128, 84,
+ 85, 84, 84, 89, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 84, 85, 84,
128, 84, 85, 82, 88, 128, 84, 85, 82, 85, 128, 84, 85, 82, 84, 76, 69,
128, 84, 85, 82, 79, 50, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, 128,
- 84, 85, 82, 206, 84, 85, 82, 75, 73, 83, 200, 84, 85, 82, 75, 73, 195,
- 84, 85, 82, 75, 69, 89, 128, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82,
- 128, 84, 85, 210, 84, 85, 80, 78, 73, 128, 84, 85, 80, 128, 84, 85, 79,
- 88, 128, 84, 85, 79, 84, 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84,
- 85, 78, 78, 89, 128, 84, 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 66, 76,
- 69, 210, 84, 85, 77, 65, 69, 128, 84, 85, 77, 128, 84, 85, 205, 84, 85,
- 76, 73, 80, 128, 84, 85, 75, 87, 69, 78, 84, 73, 83, 128, 84, 85, 75,
- 128, 84, 85, 71, 82, 73, 203, 84, 85, 71, 50, 128, 84, 85, 71, 178, 84,
- 85, 66, 69, 128, 84, 85, 66, 128, 84, 85, 65, 82, 69, 199, 84, 85, 65,
- 69, 80, 128, 84, 85, 65, 69, 128, 84, 85, 45, 84, 79, 128, 84, 85, 45,
- 52, 128, 84, 85, 45, 51, 128, 84, 85, 45, 50, 128, 84, 85, 45, 49, 128,
- 84, 213, 84, 84, 85, 85, 128, 84, 84, 85, 68, 68, 65, 71, 128, 84, 84,
- 85, 68, 68, 65, 65, 71, 128, 84, 84, 85, 128, 84, 84, 84, 72, 65, 128,
- 84, 84, 84, 65, 128, 84, 84, 83, 85, 128, 84, 84, 83, 79, 128, 84, 84,
- 83, 73, 128, 84, 84, 83, 69, 69, 128, 84, 84, 83, 69, 128, 84, 84, 83,
- 65, 128, 84, 84, 79, 79, 128, 84, 84, 73, 73, 128, 84, 84, 73, 128, 84,
- 84, 72, 87, 69, 128, 84, 84, 72, 85, 128, 84, 84, 72, 79, 79, 128, 84,
- 84, 72, 79, 128, 84, 84, 72, 73, 128, 84, 84, 72, 69, 69, 128, 84, 84,
- 72, 69, 128, 84, 84, 72, 65, 65, 128, 84, 84, 72, 128, 84, 84, 69, 72,
- 69, 72, 128, 84, 84, 69, 72, 69, 200, 84, 84, 69, 72, 128, 84, 84, 69,
- 200, 84, 84, 69, 69, 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84,
- 65, 85, 128, 84, 84, 65, 73, 128, 84, 84, 65, 65, 128, 84, 84, 50, 128,
- 84, 83, 87, 69, 128, 84, 83, 87, 66, 128, 84, 83, 87, 65, 128, 84, 83,
- 86, 128, 84, 83, 83, 69, 128, 84, 83, 83, 65, 128, 84, 83, 79, 214, 84,
- 83, 73, 85, 128, 84, 83, 72, 85, 71, 83, 128, 84, 83, 72, 79, 79, 75,
- 128, 84, 83, 72, 79, 79, 203, 84, 83, 72, 79, 79, 74, 128, 84, 83, 72,
- 69, 83, 128, 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, 199, 84, 83, 72,
- 69, 69, 74, 128, 84, 83, 72, 69, 128, 84, 83, 72, 65, 194, 84, 83, 72,
- 65, 128, 84, 83, 69, 82, 69, 128, 84, 83, 69, 69, 66, 128, 84, 83, 65,
- 68, 73, 128, 84, 83, 65, 68, 201, 84, 83, 65, 66, 128, 84, 83, 65, 65,
- 68, 73, 89, 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 211, 84, 82, 89,
- 66, 76, 73, 79, 206, 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, 128,
- 84, 82, 85, 78, 67, 65, 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, 128, 84,
- 82, 85, 77, 80, 45, 57, 128, 84, 82, 85, 77, 80, 45, 56, 128, 84, 82, 85,
- 77, 80, 45, 55, 128, 84, 82, 85, 77, 80, 45, 54, 128, 84, 82, 85, 77, 80,
- 45, 53, 128, 84, 82, 85, 77, 80, 45, 52, 128, 84, 82, 85, 77, 80, 45, 51,
- 128, 84, 82, 85, 77, 80, 45, 50, 49, 128, 84, 82, 85, 77, 80, 45, 50, 48,
- 128, 84, 82, 85, 77, 80, 45, 50, 128, 84, 82, 85, 77, 80, 45, 49, 57,
- 128, 84, 82, 85, 77, 80, 45, 49, 56, 128, 84, 82, 85, 77, 80, 45, 49, 55,
- 128, 84, 82, 85, 77, 80, 45, 49, 54, 128, 84, 82, 85, 77, 80, 45, 49, 53,
- 128, 84, 82, 85, 77, 80, 45, 49, 52, 128, 84, 82, 85, 77, 80, 45, 49, 51,
- 128, 84, 82, 85, 77, 80, 45, 49, 50, 128, 84, 82, 85, 77, 80, 45, 49, 49,
- 128, 84, 82, 85, 77, 80, 45, 49, 48, 128, 84, 82, 85, 77, 80, 45, 49,
- 128, 84, 82, 85, 69, 128, 84, 82, 85, 197, 84, 82, 85, 67, 75, 128, 84,
- 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79, 77,
- 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79,
- 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 80,
- 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79,
- 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79, 76,
- 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83, 128,
- 84, 82, 79, 76, 76, 69, 89, 128, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201,
- 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, 84, 82, 73, 85, 77, 80, 72, 128,
- 84, 82, 73, 84, 79, 211, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128,
- 84, 82, 73, 83, 73, 77, 79, 85, 128, 84, 82, 73, 83, 69, 77, 69, 128, 84,
- 82, 73, 80, 79, 68, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 76,
- 69, 128, 84, 82, 73, 80, 76, 197, 84, 82, 73, 79, 206, 84, 82, 73, 76,
- 76, 73, 79, 78, 83, 128, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71,
- 82, 65, 77, 77, 79, 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79,
- 82, 71, 79, 78, 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73,
- 70, 79, 76, 73, 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73,
- 68, 69, 78, 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78,
- 71, 85, 76, 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78,
- 196, 84, 82, 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82,
- 73, 65, 78, 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73,
- 65, 128, 84, 82, 73, 128, 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82,
- 69, 78, 68, 128, 84, 82, 69, 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51,
- 128, 84, 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79,
- 45, 49, 128, 84, 82, 69, 69, 128, 84, 82, 69, 197, 84, 82, 69, 68, 69,
- 67, 73, 76, 69, 128, 84, 82, 69, 65, 68, 73, 78, 71, 128, 84, 82, 65, 89,
- 128, 84, 82, 65, 86, 69, 76, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84,
- 82, 65, 86, 69, 76, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 82,
- 65, 80, 69, 90, 73, 85, 77, 128, 84, 82, 65, 80, 128, 84, 82, 65, 78, 83,
- 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80, 79, 83, 73, 84, 73, 79,
- 206, 84, 82, 65, 78, 83, 80, 76, 85, 84, 79, 128, 84, 82, 65, 78, 83, 77,
- 73, 212, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, 82, 65,
- 78, 83, 77, 73, 83, 83, 73, 79, 206, 84, 82, 65, 77, 87, 65, 89, 128, 84,
- 82, 65, 77, 128, 84, 82, 65, 205, 84, 82, 65, 73, 78, 128, 84, 82, 65,
- 73, 206, 84, 82, 65, 73, 76, 73, 78, 199, 84, 82, 65, 70, 70, 73, 67,
- 128, 84, 82, 65, 70, 70, 73, 195, 84, 82, 65, 68, 73, 84, 73, 79, 78, 65,
- 204, 84, 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, 82, 128, 84, 82, 65,
- 67, 75, 66, 65, 76, 76, 128, 84, 82, 65, 67, 75, 128, 84, 82, 65, 128,
- 84, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, 128, 84, 79, 87, 65,
- 82, 68, 211, 84, 79, 86, 128, 84, 79, 85, 82, 78, 79, 73, 211, 84, 79,
- 85, 67, 72, 84, 79, 78, 197, 84, 79, 85, 67, 72, 73, 78, 199, 84, 79, 85,
- 67, 72, 69, 211, 84, 79, 85, 67, 200, 84, 79, 84, 65, 204, 84, 79, 84,
- 128, 84, 79, 83, 128, 84, 79, 82, 84, 79, 73, 83, 197, 84, 79, 82, 83,
- 79, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, 45, 70,
- 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, 128, 84, 79, 82,
- 78, 65, 68, 79, 128, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, 79, 82, 67,
- 85, 76, 85, 211, 84, 79, 82, 67, 72, 128, 84, 79, 81, 128, 84, 79, 80,
- 66, 65, 82, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, 84, 79, 80,
- 128, 84, 79, 208, 84, 79, 79, 84, 72, 66, 82, 85, 83, 72, 128, 84, 79,
- 79, 84, 72, 128, 84, 79, 79, 78, 128, 84, 79, 79, 76, 66, 79, 88, 128,
- 84, 79, 78, 79, 83, 128, 84, 79, 78, 71, 85, 69, 128, 84, 79, 78, 71, 85,
- 197, 84, 79, 78, 71, 128, 84, 79, 78, 69, 45, 86, 128, 84, 79, 78, 69,
- 45, 83, 128, 84, 79, 78, 69, 45, 77, 128, 84, 79, 78, 69, 45, 74, 128,
- 84, 79, 78, 69, 45, 71, 128, 84, 79, 78, 69, 45, 68, 128, 84, 79, 78, 69,
- 45, 66, 128, 84, 79, 78, 69, 45, 56, 128, 84, 79, 78, 69, 45, 55, 128,
- 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69, 45, 53, 128, 84, 79, 78, 69,
- 45, 52, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, 78, 69, 45, 50, 128,
- 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69, 128, 84, 79, 78, 65, 204,
- 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84, 79, 128, 84, 79, 76, 79, 78,
- 71, 128, 84, 79, 75, 89, 207, 84, 79, 73, 76, 69, 84, 128, 84, 79, 71,
- 69, 84, 72, 69, 82, 128, 84, 79, 68, 207, 84, 79, 65, 78, 68, 65, 75, 72,
- 73, 65, 84, 128, 84, 79, 65, 128, 84, 79, 45, 82, 65, 128, 84, 79, 45,
- 54, 128, 84, 79, 45, 53, 128, 84, 79, 45, 52, 128, 84, 79, 45, 51, 128,
- 84, 79, 45, 50, 128, 84, 79, 45, 49, 128, 84, 78, 128, 84, 76, 86, 128,
- 84, 76, 85, 128, 84, 76, 79, 128, 84, 76, 73, 128, 84, 76, 72, 89, 65,
- 128, 84, 76, 72, 87, 69, 128, 84, 76, 72, 85, 128, 84, 76, 72, 79, 79,
- 128, 84, 76, 72, 79, 128, 84, 76, 72, 73, 128, 84, 76, 72, 69, 69, 128,
- 84, 76, 72, 69, 128, 84, 76, 72, 65, 128, 84, 76, 69, 69, 128, 84, 76,
- 65, 128, 84, 74, 69, 128, 84, 73, 88, 128, 84, 73, 87, 82, 128, 84, 73,
- 87, 78, 128, 84, 73, 87, 65, 218, 84, 73, 84, 85, 65, 69, 80, 128, 84,
- 73, 84, 76, 79, 128, 84, 73, 84, 76, 207, 84, 73, 84, 193, 84, 73, 84,
- 128, 84, 73, 82, 89, 65, 75, 128, 84, 73, 82, 84, 193, 84, 73, 82, 79,
- 78, 73, 65, 206, 84, 73, 82, 72, 85, 84, 193, 84, 73, 82, 69, 196, 84,
- 73, 82, 128, 84, 73, 210, 84, 73, 80, 80, 73, 128, 84, 73, 80, 69, 72,
- 65, 128, 84, 73, 80, 128, 84, 73, 208, 84, 73, 78, 89, 128, 84, 73, 78,
- 217, 84, 73, 78, 78, 69, 128, 84, 73, 78, 67, 84, 85, 82, 69, 128, 84,
- 73, 78, 65, 71, 77, 65, 128, 84, 73, 77, 69, 83, 128, 84, 73, 77, 69,
- 210, 84, 73, 77, 69, 128, 84, 73, 76, 84, 73, 78, 71, 128, 84, 73, 76,
- 84, 73, 78, 199, 84, 73, 76, 84, 128, 84, 73, 76, 69, 83, 128, 84, 73,
- 76, 68, 69, 128, 84, 73, 76, 68, 197, 84, 73, 76, 128, 84, 73, 204, 84,
- 73, 75, 69, 85, 84, 45, 84, 72, 73, 69, 85, 84, 72, 128, 84, 73, 75, 69,
- 85, 84, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75,
- 69, 85, 84, 45, 83, 73, 79, 83, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73,
- 69, 85, 76, 128, 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 84,
- 73, 75, 69, 85, 84, 45, 77, 73, 69, 85, 77, 128, 84, 73, 75, 69, 85, 84,
- 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 67, 73, 69,
- 85, 67, 128, 84, 73, 75, 69, 85, 84, 45, 67, 72, 73, 69, 85, 67, 72, 128,
- 84, 73, 75, 69, 85, 84, 128, 84, 73, 75, 69, 85, 212, 84, 73, 71, 72, 84,
- 76, 89, 45, 67, 76, 79, 83, 69, 196, 84, 73, 71, 72, 212, 84, 73, 71, 69,
- 82, 128, 84, 73, 71, 69, 210, 84, 73, 70, 73, 78, 65, 71, 200, 84, 73,
- 69, 88, 128, 84, 73, 69, 80, 128, 84, 73, 197, 84, 73, 67, 75, 69, 84,
- 83, 128, 84, 73, 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67,
- 203, 84, 73, 65, 82, 65, 128, 84, 73, 50, 128, 84, 73, 45, 55, 128, 84,
- 73, 45, 54, 128, 84, 73, 45, 53, 128, 84, 73, 45, 52, 128, 84, 73, 45,
- 51, 128, 84, 73, 45, 50, 128, 84, 73, 45, 49, 128, 84, 72, 90, 128, 84,
- 72, 89, 79, 79, 205, 84, 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84,
- 72, 87, 73, 73, 128, 84, 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84,
- 72, 87, 65, 65, 128, 84, 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72,
- 85, 82, 73, 83, 65, 218, 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69,
- 82, 83, 84, 79, 82, 77, 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85,
- 78, 68, 69, 210, 84, 72, 85, 77, 66, 211, 84, 72, 85, 77, 66, 128, 84,
- 72, 82, 79, 87, 73, 78, 199, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 82,
- 79, 85, 71, 200, 84, 72, 82, 69, 69, 45, 84, 72, 73, 82, 84, 89, 128, 84,
- 72, 82, 69, 69, 45, 81, 85, 65, 82, 84, 69, 210, 84, 72, 82, 69, 69, 45,
- 80, 69, 82, 45, 69, 205, 84, 72, 82, 69, 69, 45, 76, 73, 78, 197, 84, 72,
- 82, 69, 69, 45, 76, 69, 71, 71, 69, 196, 84, 72, 82, 69, 69, 45, 72, 85,
- 78, 68, 82, 69, 68, 45, 65, 78, 68, 45, 84, 87, 69, 78, 84, 73, 69, 84,
- 72, 128, 84, 72, 82, 69, 69, 45, 69, 205, 84, 72, 82, 69, 69, 45, 68, 79,
- 212, 84, 72, 82, 69, 69, 45, 196, 84, 72, 82, 69, 69, 45, 67, 73, 82, 67,
- 76, 197, 84, 72, 82, 69, 65, 68, 128, 84, 72, 79, 85, 83, 65, 78, 68, 83,
- 128, 84, 72, 79, 85, 83, 65, 78, 68, 211, 84, 72, 79, 85, 83, 65, 78,
- 196, 84, 72, 79, 85, 71, 72, 212, 84, 72, 79, 85, 128, 84, 72, 79, 82,
- 78, 128, 84, 72, 79, 82, 206, 84, 72, 79, 78, 71, 128, 84, 72, 79, 78,
- 199, 84, 72, 79, 77, 128, 84, 72, 79, 74, 128, 84, 72, 79, 65, 128, 84,
- 72, 207, 84, 72, 73, 85, 84, 72, 128, 84, 72, 73, 84, 65, 128, 84, 72,
- 73, 82, 84, 89, 45, 83, 69, 67, 79, 78, 68, 128, 84, 72, 73, 82, 84, 89,
- 45, 83, 69, 67, 79, 78, 196, 84, 72, 73, 82, 84, 89, 45, 79, 78, 69, 128,
- 84, 72, 73, 82, 84, 89, 45, 70, 73, 86, 197, 84, 72, 73, 82, 84, 217, 84,
- 72, 73, 82, 84, 69, 69, 78, 128, 84, 72, 73, 82, 84, 69, 69, 206, 84, 72,
- 73, 82, 68, 83, 128, 84, 72, 73, 82, 68, 211, 84, 72, 73, 82, 68, 45, 83,
- 84, 65, 71, 197, 84, 72, 73, 82, 68, 128, 84, 72, 73, 82, 196, 84, 72,
- 73, 78, 75, 73, 78, 199, 84, 72, 73, 78, 71, 128, 84, 72, 73, 73, 128,
- 84, 72, 73, 71, 72, 128, 84, 72, 73, 69, 85, 84, 200, 84, 72, 73, 67,
- 203, 84, 72, 73, 65, 66, 128, 84, 72, 69, 89, 128, 84, 72, 69, 84, 72,
- 69, 128, 84, 72, 69, 84, 72, 128, 84, 72, 69, 84, 65, 128, 84, 72, 69,
- 84, 193, 84, 72, 69, 83, 80, 73, 65, 206, 84, 72, 69, 83, 69, 79, 83,
- 128, 84, 72, 69, 83, 69, 79, 211, 84, 72, 69, 211, 84, 72, 69, 82, 77,
- 79, 77, 69, 84, 69, 82, 128, 84, 72, 69, 82, 77, 79, 68, 89, 78, 65, 77,
- 73, 67, 128, 84, 72, 69, 82, 69, 70, 79, 82, 69, 128, 84, 72, 69, 82,
- 197, 84, 72, 69, 206, 84, 72, 69, 77, 65, 84, 73, 83, 77, 79, 211, 84,
- 72, 69, 77, 65, 128, 84, 72, 69, 77, 193, 84, 72, 69, 72, 128, 84, 72,
- 69, 200, 84, 72, 69, 65, 128, 84, 72, 197, 84, 72, 65, 87, 128, 84, 72,
- 65, 78, 84, 72, 65, 75, 72, 65, 84, 128, 84, 72, 65, 78, 78, 65, 128, 84,
- 72, 65, 78, 128, 84, 72, 65, 206, 84, 72, 65, 77, 69, 68, 72, 128, 84,
- 72, 65, 76, 128, 84, 72, 65, 204, 84, 72, 65, 74, 128, 84, 72, 65, 201,
- 84, 72, 65, 72, 65, 78, 128, 84, 72, 65, 65, 78, 193, 84, 72, 65, 65, 76,
- 85, 128, 84, 72, 45, 67, 82, 69, 197, 84, 69, 88, 84, 128, 84, 69, 88,
- 212, 84, 69, 88, 128, 84, 69, 86, 73, 82, 128, 84, 69, 85, 84, 69, 85,
- 88, 128, 84, 69, 85, 84, 69, 85, 87, 69, 78, 128, 84, 69, 85, 84, 128,
- 84, 69, 85, 78, 128, 84, 69, 85, 65, 69, 81, 128, 84, 69, 85, 65, 69, 78,
- 128, 84, 69, 85, 128, 84, 69, 84, 82, 65, 83, 73, 77, 79, 85, 128, 84,
- 69, 84, 82, 65, 83, 69, 77, 69, 128, 84, 69, 84, 82, 65, 80, 76, 73, 128,
- 84, 69, 84, 82, 65, 71, 82, 65, 205, 84, 69, 84, 82, 65, 70, 79, 78, 73,
- 65, 83, 128, 84, 69, 84, 72, 128, 84, 69, 84, 200, 84, 69, 84, 65, 82,
- 84, 79, 211, 84, 69, 84, 65, 82, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84,
- 69, 84, 128, 84, 69, 212, 84, 69, 83, 212, 84, 69, 83, 83, 69, 82, 65,
- 128, 84, 69, 83, 83, 69, 82, 193, 84, 69, 83, 83, 65, 82, 79, 206, 84,
- 69, 83, 200, 84, 69, 82, 77, 73, 78, 65, 84, 79, 82, 128, 84, 69, 82, 77,
- 73, 78, 65, 204, 84, 69, 80, 128, 84, 69, 78, 85, 84, 79, 128, 84, 69,
- 78, 85, 128, 84, 69, 78, 213, 84, 69, 78, 84, 72, 128, 84, 69, 78, 84,
- 128, 84, 69, 78, 83, 69, 128, 84, 69, 78, 83, 197, 84, 69, 78, 83, 128,
- 84, 69, 78, 211, 84, 69, 78, 78, 73, 211, 84, 69, 78, 71, 197, 84, 69,
- 78, 45, 84, 72, 73, 82, 84, 89, 128, 84, 69, 78, 128, 84, 69, 206, 84,
- 69, 77, 80, 85, 211, 84, 69, 77, 80, 76, 69, 128, 84, 69, 76, 85, 71,
- 213, 84, 69, 76, 85, 128, 84, 69, 76, 79, 85, 211, 84, 69, 76, 76, 69,
- 210, 84, 69, 76, 73, 83, 72, 193, 84, 69, 76, 69, 86, 73, 83, 73, 79, 78,
- 128, 84, 69, 76, 69, 83, 67, 79, 80, 69, 128, 84, 69, 76, 69, 80, 72, 79,
- 78, 69, 128, 84, 69, 76, 69, 80, 72, 79, 78, 197, 84, 69, 76, 69, 73, 65,
- 128, 84, 69, 76, 69, 71, 82, 65, 80, 200, 84, 69, 75, 128, 84, 69, 73,
- 87, 83, 128, 84, 69, 71, 69, 72, 128, 84, 69, 69, 84, 72, 128, 84, 69,
- 69, 84, 200, 84, 69, 69, 78, 83, 128, 84, 69, 69, 69, 69, 128, 84, 69,
- 197, 84, 69, 68, 85, 78, 71, 128, 84, 69, 68, 68, 217, 84, 69, 65, 82,
- 211, 84, 69, 65, 82, 68, 82, 79, 80, 45, 83, 80, 79, 75, 69, 196, 84, 69,
- 65, 82, 68, 82, 79, 80, 45, 83, 72, 65, 78, 75, 69, 196, 84, 69, 65, 82,
- 68, 82, 79, 80, 45, 66, 65, 82, 66, 69, 196, 84, 69, 65, 82, 45, 79, 70,
- 198, 84, 69, 65, 82, 128, 84, 69, 65, 80, 79, 84, 128, 84, 69, 65, 67,
- 85, 208, 84, 69, 65, 128, 84, 69, 45, 85, 128, 84, 69, 45, 57, 128, 84,
- 69, 45, 56, 128, 84, 69, 45, 55, 128, 84, 69, 45, 54, 128, 84, 69, 45,
- 53, 128, 84, 69, 45, 52, 128, 84, 69, 45, 51, 128, 84, 69, 45, 50, 128,
- 84, 69, 45, 49, 128, 84, 67, 72, 69, 72, 69, 72, 128, 84, 67, 72, 69, 72,
- 69, 200, 84, 67, 72, 69, 72, 128, 84, 67, 72, 69, 200, 84, 67, 72, 69,
- 128, 84, 195, 84, 65, 89, 128, 84, 65, 88, 73, 128, 84, 65, 88, 128, 84,
- 65, 87, 69, 76, 76, 69, 77, 69, 212, 84, 65, 87, 65, 128, 84, 65, 87,
- 128, 84, 65, 215, 84, 65, 86, 73, 89, 65, 78, 73, 128, 84, 65, 86, 128,
- 84, 65, 214, 84, 65, 85, 82, 85, 83, 128, 84, 65, 85, 77, 128, 84, 65,
- 213, 84, 65, 84, 87, 69, 69, 76, 128, 84, 65, 84, 87, 69, 69, 204, 84,
- 65, 84, 84, 79, 79, 69, 196, 84, 65, 84, 128, 84, 65, 83, 83, 73, 128,
- 84, 65, 83, 128, 84, 65, 82, 85, 78, 71, 128, 84, 65, 82, 84, 65, 82, 45,
- 50, 128, 84, 65, 82, 84, 65, 82, 128, 84, 65, 82, 71, 69, 84, 128, 84,
- 65, 81, 128, 84, 65, 80, 69, 82, 128, 84, 65, 80, 197, 84, 65, 80, 128,
- 84, 65, 79, 128, 84, 65, 78, 78, 69, 196, 84, 65, 78, 71, 69, 82, 73, 78,
- 69, 128, 84, 65, 78, 71, 69, 78, 84, 128, 84, 65, 78, 71, 69, 78, 212,
- 84, 65, 78, 199, 84, 65, 78, 65, 66, 65, 84, 193, 84, 65, 78, 65, 128,
- 84, 65, 78, 128, 84, 65, 77, 73, 78, 71, 128, 84, 65, 77, 65, 206, 84,
- 65, 77, 65, 76, 69, 128, 84, 65, 77, 128, 84, 65, 76, 76, 217, 84, 65,
- 76, 76, 128, 84, 65, 76, 204, 84, 65, 76, 73, 78, 71, 128, 84, 65, 76,
- 73, 78, 199, 84, 65, 76, 69, 78, 84, 83, 128, 84, 65, 76, 69, 78, 212,
- 84, 65, 75, 82, 201, 84, 65, 75, 72, 65, 76, 76, 85, 83, 128, 84, 65, 75,
- 69, 79, 85, 212, 84, 65, 75, 69, 128, 84, 65, 75, 52, 128, 84, 65, 75,
- 180, 84, 65, 75, 128, 84, 65, 73, 83, 89, 79, 85, 128, 84, 65, 73, 76,
- 76, 69, 83, 211, 84, 65, 73, 76, 128, 84, 65, 73, 204, 84, 65, 72, 65,
- 76, 65, 128, 84, 65, 72, 128, 84, 65, 200, 84, 65, 71, 66, 65, 78, 87,
- 193, 84, 65, 71, 65, 76, 79, 199, 84, 65, 71, 128, 84, 65, 69, 206, 84,
- 65, 67, 79, 128, 84, 65, 67, 75, 128, 84, 65, 67, 203, 84, 65, 66, 85,
- 76, 65, 84, 73, 79, 78, 128, 84, 65, 66, 85, 76, 65, 84, 73, 79, 206, 84,
- 65, 66, 83, 128, 84, 65, 66, 76, 69, 128, 84, 65, 66, 76, 197, 84, 65,
- 66, 128, 84, 65, 194, 84, 65, 65, 83, 72, 65, 69, 128, 84, 65, 65, 81,
- 128, 84, 65, 65, 77, 128, 84, 65, 65, 76, 85, 74, 193, 84, 65, 65, 73,
- 128, 84, 65, 65, 70, 128, 84, 65, 50, 128, 84, 65, 45, 82, 79, 76, 128,
- 84, 65, 45, 52, 128, 84, 65, 45, 51, 128, 84, 65, 45, 50, 128, 84, 65,
- 45, 49, 128, 84, 48, 51, 54, 128, 84, 48, 51, 53, 128, 84, 48, 51, 52,
- 128, 84, 48, 51, 51, 65, 128, 84, 48, 51, 51, 128, 84, 48, 51, 50, 65,
- 128, 84, 48, 51, 50, 128, 84, 48, 51, 49, 128, 84, 48, 51, 48, 128, 84,
- 48, 50, 57, 128, 84, 48, 50, 56, 128, 84, 48, 50, 55, 128, 84, 48, 50,
- 54, 128, 84, 48, 50, 53, 128, 84, 48, 50, 52, 128, 84, 48, 50, 51, 128,
- 84, 48, 50, 50, 128, 84, 48, 50, 49, 128, 84, 48, 50, 48, 128, 84, 48,
- 49, 57, 128, 84, 48, 49, 56, 128, 84, 48, 49, 55, 128, 84, 48, 49, 54,
- 65, 128, 84, 48, 49, 54, 128, 84, 48, 49, 53, 128, 84, 48, 49, 52, 128,
- 84, 48, 49, 51, 128, 84, 48, 49, 50, 128, 84, 48, 49, 49, 65, 128, 84,
- 48, 49, 49, 128, 84, 48, 49, 48, 128, 84, 48, 48, 57, 65, 128, 84, 48,
- 48, 57, 128, 84, 48, 48, 56, 65, 128, 84, 48, 48, 56, 128, 84, 48, 48,
- 55, 65, 128, 84, 48, 48, 55, 128, 84, 48, 48, 54, 128, 84, 48, 48, 53,
- 128, 84, 48, 48, 52, 128, 84, 48, 48, 51, 65, 128, 84, 48, 48, 51, 128,
- 84, 48, 48, 50, 128, 84, 48, 48, 49, 128, 84, 45, 83, 72, 73, 82, 84,
- 128, 84, 45, 82, 69, 88, 128, 83, 90, 90, 128, 83, 90, 87, 71, 128, 83,
- 90, 87, 65, 128, 83, 90, 85, 128, 83, 90, 79, 128, 83, 90, 73, 128, 83,
- 90, 69, 69, 128, 83, 90, 69, 128, 83, 90, 65, 65, 128, 83, 90, 65, 128,
- 83, 90, 128, 83, 89, 88, 128, 83, 89, 84, 128, 83, 89, 83, 84, 69, 205,
- 83, 89, 82, 88, 128, 83, 89, 82, 77, 65, 84, 73, 75, 73, 128, 83, 89, 82,
- 77, 65, 128, 83, 89, 82, 73, 78, 71, 69, 128, 83, 89, 82, 73, 65, 195,
- 83, 89, 82, 128, 83, 89, 80, 128, 83, 89, 79, 85, 87, 65, 128, 83, 89,
- 78, 69, 86, 77, 65, 128, 83, 89, 78, 68, 69, 83, 77, 79, 211, 83, 89, 78,
- 67, 72, 82, 79, 78, 79, 85, 211, 83, 89, 78, 65, 71, 79, 71, 85, 69, 128,
- 83, 89, 78, 65, 71, 77, 193, 83, 89, 78, 65, 70, 73, 128, 83, 89, 78,
- 128, 83, 89, 77, 77, 69, 84, 82, 89, 128, 83, 89, 77, 77, 69, 84, 82, 73,
- 195, 83, 89, 77, 66, 79, 76, 83, 128, 83, 89, 77, 66, 79, 76, 211, 83,
- 89, 77, 66, 79, 76, 45, 57, 128, 83, 89, 77, 66, 79, 76, 45, 56, 128, 83,
- 89, 77, 66, 79, 76, 45, 55, 128, 83, 89, 77, 66, 79, 76, 45, 54, 128, 83,
- 89, 77, 66, 79, 76, 45, 53, 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 51,
- 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, 89, 77, 66, 79, 76, 45,
- 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83, 89, 77, 66, 79,
- 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, 45, 52, 57, 128, 83, 89, 77, 66,
- 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, 79, 76, 45, 52, 55, 128, 83, 89,
- 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76, 45, 52, 51, 128,
- 83, 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52,
- 48, 128, 83, 89, 77, 66, 79, 76, 45, 52, 128, 83, 89, 77, 66, 79, 76, 45,
- 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83, 89, 77, 66, 79,
- 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54, 128, 83, 89, 77,
- 66, 79, 76, 45, 51, 50, 128, 83, 89, 77, 66, 79, 76, 45, 51, 48, 128, 83,
- 89, 77, 66, 79, 76, 45, 51, 128, 83, 89, 77, 66, 79, 76, 45, 50, 57, 128,
- 83, 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66, 79, 76, 45, 50,
- 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 53, 128, 83, 89, 77, 66, 79, 76,
- 45, 50, 52, 128, 83, 89, 77, 66, 79, 76, 45, 50, 51, 128, 83, 89, 77, 66,
- 79, 76, 45, 50, 50, 128, 83, 89, 77, 66, 79, 76, 45, 50, 49, 128, 83, 89,
- 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, 79, 76, 45, 50, 128, 83,
- 89, 77, 66, 79, 76, 45, 49, 57, 128, 83, 89, 77, 66, 79, 76, 45, 49, 56,
- 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, 128, 83, 89, 77, 66, 79, 76, 45,
- 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83, 89, 77, 66, 79,
- 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51, 128, 83, 89, 77,
- 66, 79, 76, 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 49, 128, 83,
- 89, 77, 66, 79, 76, 45, 49, 48, 128, 83, 89, 77, 66, 79, 76, 45, 49, 128,
- 83, 89, 76, 79, 84, 201, 83, 89, 73, 128, 83, 89, 128, 83, 87, 90, 128,
- 83, 87, 85, 78, 199, 83, 87, 79, 82, 68, 83, 128, 83, 87, 79, 82, 68,
- 128, 83, 87, 79, 79, 128, 83, 87, 79, 128, 83, 87, 73, 82, 204, 83, 87,
- 73, 77, 83, 85, 73, 84, 128, 83, 87, 73, 77, 77, 73, 78, 71, 128, 83, 87,
- 73, 77, 77, 69, 82, 128, 83, 87, 73, 73, 128, 83, 87, 73, 128, 83, 87,
- 71, 128, 83, 87, 69, 69, 84, 128, 83, 87, 69, 69, 212, 83, 87, 69, 65,
- 84, 128, 83, 87, 69, 65, 212, 83, 87, 65, 83, 200, 83, 87, 65, 80, 80,
- 73, 78, 71, 128, 83, 87, 65, 78, 128, 83, 87, 65, 65, 128, 83, 87, 128,
- 83, 86, 65, 83, 84, 201, 83, 86, 65, 82, 73, 84, 65, 128, 83, 86, 65, 82,
- 73, 84, 193, 83, 85, 88, 128, 83, 85, 85, 128, 83, 85, 84, 82, 193, 83,
- 85, 84, 128, 83, 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 85, 83, 72, 73,
- 128, 83, 85, 82, 89, 65, 128, 83, 85, 82, 88, 128, 83, 85, 82, 82, 79,
- 85, 78, 68, 128, 83, 85, 82, 82, 79, 85, 78, 196, 83, 85, 82, 70, 69, 82,
- 128, 83, 85, 82, 70, 65, 67, 197, 83, 85, 82, 69, 128, 83, 85, 82, 65,
- 78, 71, 128, 83, 85, 82, 57, 128, 83, 85, 82, 128, 83, 85, 210, 83, 85,
- 80, 82, 65, 76, 73, 78, 69, 65, 210, 83, 85, 80, 69, 82, 86, 73, 83, 69,
- 128, 83, 85, 80, 69, 82, 86, 73, 76, 76, 65, 73, 78, 128, 83, 85, 80, 69,
- 82, 83, 69, 84, 128, 83, 85, 80, 69, 82, 83, 69, 212, 83, 85, 80, 69, 82,
- 83, 67, 82, 73, 80, 212, 83, 85, 80, 69, 82, 73, 77, 80, 79, 83, 69, 196,
- 83, 85, 80, 69, 82, 72, 69, 82, 79, 128, 83, 85, 80, 69, 82, 70, 73, 88,
- 69, 196, 83, 85, 80, 69, 210, 83, 85, 80, 128, 83, 85, 79, 88, 128, 83,
- 85, 79, 80, 128, 83, 85, 79, 128, 83, 85, 78, 83, 69, 212, 83, 85, 78,
- 82, 73, 83, 69, 128, 83, 85, 78, 82, 73, 83, 197, 83, 85, 78, 71, 76, 65,
- 83, 83, 69, 83, 128, 83, 85, 78, 71, 128, 83, 85, 78, 70, 76, 79, 87, 69,
- 82, 128, 83, 85, 78, 68, 65, 78, 69, 83, 197, 83, 85, 78, 128, 83, 85,
- 206, 83, 85, 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84, 73, 79, 78,
- 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83, 72, 128,
- 83, 85, 77, 128, 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85, 78, 128,
- 83, 85, 75, 85, 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83, 85, 73,
- 84, 65, 66, 76, 69, 128, 83, 85, 73, 212, 83, 85, 72, 85, 82, 128, 83,
- 85, 69, 128, 83, 85, 68, 50, 128, 83, 85, 68, 128, 83, 85, 67, 75, 73,
- 78, 199, 83, 85, 67, 75, 69, 68, 128, 83, 85, 67, 203, 83, 85, 67, 67,
- 69, 69, 68, 83, 128, 83, 85, 67, 67, 69, 69, 68, 211, 83, 85, 67, 67, 69,
- 69, 68, 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 66, 85, 78, 73, 84,
- 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 83, 85, 66, 83, 84,
- 73, 84, 85, 84, 69, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, 85,
- 66, 83, 69, 84, 128, 83, 85, 66, 83, 69, 212, 83, 85, 66, 83, 67, 82, 73,
- 80, 212, 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 76, 73,
- 78, 69, 65, 210, 83, 85, 66, 76, 73, 77, 65, 84, 73, 79, 78, 128, 83, 85,
- 66, 76, 73, 77, 65, 84, 69, 45, 51, 128, 83, 85, 66, 76, 73, 77, 65, 84,
- 69, 45, 50, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 128, 83, 85, 66, 76,
- 73, 77, 65, 84, 197, 83, 85, 66, 74, 79, 73, 78, 69, 82, 128, 83, 85, 66,
- 74, 79, 73, 78, 69, 196, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 66, 73,
- 84, 79, 128, 83, 85, 66, 71, 82, 79, 85, 80, 128, 83, 85, 66, 71, 82, 79,
- 85, 208, 83, 85, 66, 128, 83, 85, 65, 77, 128, 83, 85, 65, 69, 84, 128,
- 83, 85, 65, 69, 78, 128, 83, 85, 65, 69, 128, 83, 85, 65, 66, 128, 83,
- 85, 65, 128, 83, 85, 45, 56, 128, 83, 85, 45, 55, 128, 83, 85, 45, 54,
- 128, 83, 85, 45, 53, 128, 83, 85, 45, 52, 128, 83, 85, 45, 51, 128, 83,
- 85, 45, 50, 128, 83, 85, 45, 49, 128, 83, 213, 83, 84, 88, 128, 83, 84,
- 87, 65, 128, 83, 84, 85, 80, 65, 128, 83, 84, 85, 70, 70, 69, 196, 83,
- 84, 85, 68, 89, 128, 83, 84, 85, 68, 73, 207, 83, 84, 85, 67, 75, 45, 79,
- 85, 212, 83, 84, 83, 128, 83, 84, 82, 79, 78, 199, 83, 84, 82, 79, 75,
- 69, 83, 128, 83, 84, 82, 79, 75, 69, 211, 83, 84, 82, 79, 75, 69, 45, 57,
- 128, 83, 84, 82, 79, 75, 69, 45, 56, 128, 83, 84, 82, 79, 75, 69, 45, 55,
- 128, 83, 84, 82, 79, 75, 69, 45, 54, 128, 83, 84, 82, 79, 75, 69, 45, 53,
- 128, 83, 84, 82, 79, 75, 69, 45, 52, 128, 83, 84, 82, 79, 75, 69, 45, 51,
- 128, 83, 84, 82, 79, 75, 69, 45, 50, 128, 83, 84, 82, 79, 75, 69, 45, 49,
- 49, 128, 83, 84, 82, 79, 75, 69, 45, 49, 48, 128, 83, 84, 82, 79, 75, 69,
- 45, 49, 128, 83, 84, 82, 79, 75, 197, 83, 84, 82, 73, 80, 69, 128, 83,
- 84, 82, 73, 78, 71, 128, 83, 84, 82, 73, 78, 199, 83, 84, 82, 73, 75, 69,
- 84, 72, 82, 79, 85, 71, 72, 128, 83, 84, 82, 73, 75, 197, 83, 84, 82, 73,
- 68, 69, 128, 83, 84, 82, 73, 67, 84, 76, 217, 83, 84, 82, 69, 84, 67, 72,
- 69, 196, 83, 84, 82, 69, 84, 67, 72, 128, 83, 84, 82, 69, 83, 211, 83,
- 84, 82, 69, 78, 71, 84, 72, 128, 83, 84, 82, 69, 65, 77, 69, 82, 128, 83,
- 84, 82, 65, 87, 66, 69, 82, 82, 89, 128, 83, 84, 82, 65, 87, 128, 83, 84,
- 82, 65, 84, 85, 77, 45, 50, 128, 83, 84, 82, 65, 84, 85, 77, 128, 83, 84,
- 82, 65, 84, 85, 205, 83, 84, 82, 65, 84, 73, 65, 206, 83, 84, 82, 65, 73,
- 78, 69, 82, 128, 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, 83, 128, 83,
- 84, 82, 65, 73, 71, 72, 84, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, 84,
- 82, 65, 73, 70, 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128,
- 83, 84, 79, 86, 69, 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, 87, 65,
- 84, 67, 72, 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, 80, 80,
- 65, 71, 69, 128, 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, 78,
- 69, 128, 83, 84, 79, 67, 75, 128, 83, 84, 79, 67, 203, 83, 84, 73, 82,
- 82, 85, 208, 83, 84, 73, 77, 77, 69, 128, 83, 84, 73, 76, 204, 83, 84,
- 73, 76, 197, 83, 84, 73, 71, 77, 65, 128, 83, 84, 73, 67, 75, 73, 78,
- 199, 83, 84, 73, 67, 203, 83, 84, 69, 84, 72, 79, 83, 67, 79, 80, 69,
- 128, 83, 84, 69, 82, 69, 79, 128, 83, 84, 69, 80, 128, 83, 84, 69, 78,
- 79, 71, 82, 65, 80, 72, 73, 195, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77,
- 217, 83, 84, 69, 65, 77, 73, 78, 199, 83, 84, 69, 65, 77, 128, 83, 84,
- 69, 65, 205, 83, 84, 65, 86, 82, 79, 85, 128, 83, 84, 65, 86, 82, 79, 83,
- 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 65, 85, 82, 79, 83, 128, 83,
- 84, 65, 84, 85, 197, 83, 84, 65, 84, 73, 79, 78, 128, 83, 84, 65, 84, 69,
- 82, 83, 128, 83, 84, 65, 84, 69, 128, 83, 84, 65, 82, 84, 73, 78, 199,
- 83, 84, 65, 82, 84, 128, 83, 84, 65, 82, 212, 83, 84, 65, 82, 83, 128,
- 83, 84, 65, 82, 82, 69, 196, 83, 84, 65, 82, 75, 128, 83, 84, 65, 82,
- 128, 83, 84, 65, 210, 83, 84, 65, 78, 68, 83, 84, 73, 76, 76, 128, 83,
- 84, 65, 78, 68, 73, 78, 199, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, 65,
- 78, 68, 128, 83, 84, 65, 78, 128, 83, 84, 65, 77, 80, 69, 196, 83, 84,
- 65, 76, 76, 73, 79, 78, 128, 83, 84, 65, 70, 70, 128, 83, 84, 65, 70,
+ 84, 85, 82, 206, 84, 85, 82, 75, 73, 83, 200, 84, 85, 82, 75, 73, 195,
+ 84, 85, 82, 75, 69, 89, 128, 84, 85, 82, 66, 65, 78, 128, 84, 85, 82,
+ 128, 84, 85, 210, 84, 85, 80, 78, 73, 128, 84, 85, 80, 128, 84, 85, 79,
+ 88, 128, 84, 85, 79, 84, 128, 84, 85, 79, 80, 128, 84, 85, 79, 128, 84,
+ 85, 78, 78, 89, 128, 84, 85, 77, 69, 84, 69, 83, 128, 84, 85, 77, 66, 76,
+ 69, 210, 84, 85, 77, 65, 69, 128, 84, 85, 77, 128, 84, 85, 205, 84, 85,
+ 76, 73, 80, 128, 84, 85, 75, 87, 69, 78, 84, 73, 83, 128, 84, 85, 75,
+ 128, 84, 85, 71, 82, 73, 203, 84, 85, 71, 50, 128, 84, 85, 71, 178, 84,
+ 85, 66, 69, 128, 84, 85, 66, 128, 84, 85, 65, 82, 69, 199, 84, 85, 65,
+ 69, 80, 128, 84, 85, 65, 69, 128, 84, 85, 45, 84, 79, 128, 84, 85, 45,
+ 52, 128, 84, 85, 45, 51, 128, 84, 85, 45, 50, 128, 84, 85, 45, 49, 128,
+ 84, 213, 84, 84, 85, 85, 128, 84, 84, 85, 68, 68, 65, 71, 128, 84, 84,
+ 85, 68, 68, 65, 65, 71, 128, 84, 84, 85, 128, 84, 84, 84, 72, 65, 128,
+ 84, 84, 84, 65, 128, 84, 84, 83, 85, 128, 84, 84, 83, 79, 128, 84, 84,
+ 83, 73, 128, 84, 84, 83, 69, 69, 128, 84, 84, 83, 69, 128, 84, 84, 83,
+ 65, 128, 84, 84, 79, 79, 128, 84, 84, 73, 73, 128, 84, 84, 73, 128, 84,
+ 84, 72, 87, 69, 128, 84, 84, 72, 85, 128, 84, 84, 72, 79, 79, 128, 84,
+ 84, 72, 79, 128, 84, 84, 72, 73, 128, 84, 84, 72, 69, 69, 128, 84, 84,
+ 72, 69, 128, 84, 84, 72, 65, 65, 128, 84, 84, 72, 128, 84, 84, 69, 72,
+ 69, 72, 128, 84, 84, 69, 72, 69, 200, 84, 84, 69, 72, 128, 84, 84, 69,
+ 200, 84, 84, 69, 69, 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84,
+ 65, 85, 128, 84, 84, 65, 73, 128, 84, 84, 65, 65, 128, 84, 84, 50, 128,
+ 84, 83, 87, 69, 128, 84, 83, 87, 66, 128, 84, 83, 87, 65, 128, 84, 83,
+ 86, 128, 84, 83, 83, 69, 128, 84, 83, 83, 65, 128, 84, 83, 79, 214, 84,
+ 83, 73, 85, 128, 84, 83, 72, 85, 71, 83, 128, 84, 83, 72, 79, 79, 75,
+ 128, 84, 83, 72, 79, 79, 203, 84, 83, 72, 79, 79, 74, 128, 84, 83, 72,
+ 69, 83, 128, 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, 199, 84, 83, 72,
+ 69, 69, 74, 128, 84, 83, 72, 69, 128, 84, 83, 72, 65, 194, 84, 83, 72,
+ 65, 128, 84, 83, 69, 82, 69, 128, 84, 83, 69, 69, 66, 128, 84, 83, 65,
+ 68, 73, 128, 84, 83, 65, 68, 201, 84, 83, 65, 66, 128, 84, 83, 65, 65,
+ 68, 73, 89, 128, 84, 83, 65, 65, 128, 84, 83, 193, 84, 211, 84, 82, 89,
+ 66, 76, 73, 79, 206, 84, 82, 85, 84, 72, 128, 84, 82, 85, 78, 75, 128,
+ 84, 82, 85, 78, 67, 65, 84, 69, 196, 84, 82, 85, 77, 80, 69, 84, 128, 84,
+ 82, 85, 77, 80, 45, 57, 128, 84, 82, 85, 77, 80, 45, 56, 128, 84, 82, 85,
+ 77, 80, 45, 55, 128, 84, 82, 85, 77, 80, 45, 54, 128, 84, 82, 85, 77, 80,
+ 45, 53, 128, 84, 82, 85, 77, 80, 45, 52, 128, 84, 82, 85, 77, 80, 45, 51,
+ 128, 84, 82, 85, 77, 80, 45, 50, 49, 128, 84, 82, 85, 77, 80, 45, 50, 48,
+ 128, 84, 82, 85, 77, 80, 45, 50, 128, 84, 82, 85, 77, 80, 45, 49, 57,
+ 128, 84, 82, 85, 77, 80, 45, 49, 56, 128, 84, 82, 85, 77, 80, 45, 49, 55,
+ 128, 84, 82, 85, 77, 80, 45, 49, 54, 128, 84, 82, 85, 77, 80, 45, 49, 53,
+ 128, 84, 82, 85, 77, 80, 45, 49, 52, 128, 84, 82, 85, 77, 80, 45, 49, 51,
+ 128, 84, 82, 85, 77, 80, 45, 49, 50, 128, 84, 82, 85, 77, 80, 45, 49, 49,
+ 128, 84, 82, 85, 77, 80, 45, 49, 48, 128, 84, 82, 85, 77, 80, 45, 49,
+ 128, 84, 82, 85, 69, 128, 84, 82, 85, 197, 84, 82, 85, 67, 75, 128, 84,
+ 82, 79, 80, 73, 67, 65, 204, 84, 82, 79, 80, 72, 89, 128, 84, 82, 79, 77,
+ 73, 75, 79, 83, 89, 78, 65, 71, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79,
+ 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 80,
+ 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79,
+ 78, 128, 84, 82, 79, 77, 73, 75, 79, 206, 84, 82, 79, 77, 73, 75, 79, 76,
+ 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 76, 76, 69, 89, 66, 85, 83, 128,
+ 84, 82, 79, 76, 76, 69, 89, 128, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201,
+ 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, 84, 82, 73, 85, 77, 80, 72, 128,
+ 84, 82, 73, 84, 79, 211, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128,
+ 84, 82, 73, 83, 73, 77, 79, 85, 128, 84, 82, 73, 83, 69, 77, 69, 128, 84,
+ 82, 73, 80, 79, 68, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 76,
+ 69, 128, 84, 82, 73, 80, 76, 197, 84, 82, 73, 79, 206, 84, 82, 73, 76,
+ 76, 73, 79, 78, 83, 128, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 73, 71,
+ 82, 65, 77, 77, 79, 211, 84, 82, 73, 71, 82, 65, 205, 84, 82, 73, 71, 79,
+ 82, 71, 79, 78, 128, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73,
+ 70, 79, 76, 73, 65, 84, 197, 84, 82, 73, 68, 69, 78, 84, 128, 84, 82, 73,
+ 68, 69, 78, 212, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 65, 78,
+ 71, 85, 76, 65, 210, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, 85, 78,
+ 196, 84, 82, 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, 196, 84, 82,
+ 73, 65, 78, 71, 76, 69, 128, 84, 82, 73, 65, 78, 71, 76, 197, 84, 82, 73,
+ 65, 128, 84, 82, 73, 128, 84, 82, 69, 83, 73, 76, 76, 79, 128, 84, 82,
+ 69, 78, 68, 128, 84, 82, 69, 78, 196, 84, 82, 69, 77, 79, 76, 79, 45, 51,
+ 128, 84, 82, 69, 77, 79, 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79,
+ 45, 49, 128, 84, 82, 69, 69, 128, 84, 82, 69, 197, 84, 82, 69, 68, 69,
+ 67, 73, 76, 69, 128, 84, 82, 69, 65, 68, 73, 78, 71, 128, 84, 82, 65, 89,
+ 128, 84, 82, 65, 86, 69, 76, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84,
+ 82, 65, 86, 69, 76, 45, 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 82,
+ 65, 80, 69, 90, 73, 85, 77, 128, 84, 82, 65, 80, 128, 84, 82, 65, 78, 83,
+ 86, 69, 82, 83, 65, 204, 84, 82, 65, 78, 83, 80, 79, 83, 73, 84, 73, 79,
+ 206, 84, 82, 65, 78, 83, 80, 76, 85, 84, 79, 128, 84, 82, 65, 78, 83, 77,
+ 73, 212, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, 82, 65,
+ 78, 83, 77, 73, 83, 83, 73, 79, 206, 84, 82, 65, 77, 87, 65, 89, 128, 84,
+ 82, 65, 77, 128, 84, 82, 65, 205, 84, 82, 65, 73, 78, 128, 84, 82, 65,
+ 73, 206, 84, 82, 65, 73, 76, 73, 78, 199, 84, 82, 65, 70, 70, 73, 67,
+ 128, 84, 82, 65, 70, 70, 73, 195, 84, 82, 65, 68, 73, 84, 73, 79, 78, 65,
+ 204, 84, 82, 65, 68, 197, 84, 82, 65, 67, 84, 79, 82, 128, 84, 82, 65,
+ 67, 75, 66, 65, 76, 76, 128, 84, 82, 65, 67, 75, 128, 84, 82, 65, 128,
+ 84, 82, 128, 84, 79, 88, 128, 84, 79, 87, 69, 82, 128, 84, 79, 87, 65,
+ 82, 68, 211, 84, 79, 86, 128, 84, 79, 85, 82, 78, 79, 73, 211, 84, 79,
+ 85, 67, 72, 84, 79, 78, 197, 84, 79, 85, 67, 72, 73, 78, 199, 84, 79, 85,
+ 67, 72, 69, 211, 84, 79, 85, 67, 200, 84, 79, 84, 65, 204, 84, 79, 84,
+ 128, 84, 79, 83, 128, 84, 79, 82, 84, 79, 73, 83, 197, 84, 79, 82, 83,
+ 79, 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, 45, 70,
+ 76, 79, 79, 82, 80, 76, 65, 78, 197, 84, 79, 82, 83, 79, 128, 84, 79, 82,
+ 78, 65, 68, 79, 128, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, 79, 82, 67,
+ 85, 76, 85, 211, 84, 79, 82, 67, 72, 128, 84, 79, 81, 128, 84, 79, 80,
+ 66, 65, 82, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, 84, 79, 80,
+ 128, 84, 79, 208, 84, 79, 79, 84, 72, 66, 82, 85, 83, 72, 128, 84, 79,
+ 79, 84, 72, 128, 84, 79, 79, 78, 128, 84, 79, 79, 76, 66, 79, 88, 128,
+ 84, 79, 78, 79, 83, 128, 84, 79, 78, 71, 85, 69, 128, 84, 79, 78, 71, 85,
+ 197, 84, 79, 78, 71, 128, 84, 79, 78, 69, 45, 86, 128, 84, 79, 78, 69,
+ 45, 83, 128, 84, 79, 78, 69, 45, 77, 128, 84, 79, 78, 69, 45, 74, 128,
+ 84, 79, 78, 69, 45, 71, 128, 84, 79, 78, 69, 45, 68, 128, 84, 79, 78, 69,
+ 45, 66, 128, 84, 79, 78, 69, 45, 56, 128, 84, 79, 78, 69, 45, 55, 128,
+ 84, 79, 78, 69, 45, 54, 128, 84, 79, 78, 69, 45, 53, 128, 84, 79, 78, 69,
+ 45, 52, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, 78, 69, 45, 50, 128,
+ 84, 79, 78, 69, 45, 49, 128, 84, 79, 78, 69, 128, 84, 79, 78, 65, 204,
+ 84, 79, 77, 80, 73, 128, 84, 79, 77, 65, 84, 79, 128, 84, 79, 76, 79, 78,
+ 71, 128, 84, 79, 75, 89, 207, 84, 79, 73, 76, 69, 84, 128, 84, 79, 71,
+ 69, 84, 72, 69, 82, 128, 84, 79, 68, 207, 84, 79, 65, 78, 68, 65, 75, 72,
+ 73, 65, 84, 128, 84, 79, 65, 128, 84, 79, 45, 82, 65, 128, 84, 79, 45,
+ 54, 128, 84, 79, 45, 53, 128, 84, 79, 45, 52, 128, 84, 79, 45, 51, 128,
+ 84, 79, 45, 50, 128, 84, 79, 45, 49, 128, 84, 78, 128, 84, 76, 86, 128,
+ 84, 76, 85, 128, 84, 76, 79, 128, 84, 76, 73, 128, 84, 76, 72, 89, 65,
+ 128, 84, 76, 72, 87, 69, 128, 84, 76, 72, 85, 128, 84, 76, 72, 79, 79,
+ 128, 84, 76, 72, 79, 128, 84, 76, 72, 73, 128, 84, 76, 72, 69, 69, 128,
+ 84, 76, 72, 69, 128, 84, 76, 72, 65, 128, 84, 76, 69, 69, 128, 84, 76,
+ 65, 128, 84, 74, 69, 128, 84, 73, 88, 128, 84, 73, 87, 82, 128, 84, 73,
+ 87, 78, 128, 84, 73, 87, 65, 218, 84, 73, 84, 85, 65, 69, 80, 128, 84,
+ 73, 84, 76, 79, 128, 84, 73, 84, 76, 207, 84, 73, 84, 193, 84, 73, 84,
+ 128, 84, 73, 82, 89, 65, 75, 128, 84, 73, 82, 84, 193, 84, 73, 82, 79,
+ 78, 73, 65, 206, 84, 73, 82, 72, 85, 84, 193, 84, 73, 82, 69, 196, 84,
+ 73, 82, 128, 84, 73, 210, 84, 73, 80, 80, 73, 128, 84, 73, 80, 69, 72,
+ 65, 128, 84, 73, 80, 128, 84, 73, 208, 84, 73, 78, 89, 128, 84, 73, 78,
+ 217, 84, 73, 78, 78, 69, 128, 84, 73, 78, 67, 84, 85, 82, 69, 128, 84,
+ 73, 78, 65, 71, 77, 65, 128, 84, 73, 77, 69, 83, 128, 84, 73, 77, 69,
+ 210, 84, 73, 77, 69, 128, 84, 73, 76, 84, 73, 78, 71, 128, 84, 73, 76,
+ 84, 73, 78, 199, 84, 73, 76, 84, 128, 84, 73, 76, 69, 83, 128, 84, 73,
+ 76, 68, 69, 128, 84, 73, 76, 68, 197, 84, 73, 76, 128, 84, 73, 204, 84,
+ 73, 75, 69, 85, 84, 45, 84, 72, 73, 69, 85, 84, 72, 128, 84, 73, 75, 69,
+ 85, 84, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75,
+ 69, 85, 84, 45, 83, 73, 79, 83, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73,
+ 69, 85, 76, 128, 84, 73, 75, 69, 85, 84, 45, 80, 73, 69, 85, 80, 128, 84,
+ 73, 75, 69, 85, 84, 45, 77, 73, 69, 85, 77, 128, 84, 73, 75, 69, 85, 84,
+ 45, 75, 73, 89, 69, 79, 75, 128, 84, 73, 75, 69, 85, 84, 45, 67, 73, 69,
+ 85, 67, 128, 84, 73, 75, 69, 85, 84, 45, 67, 72, 73, 69, 85, 67, 72, 128,
+ 84, 73, 75, 69, 85, 84, 128, 84, 73, 75, 69, 85, 212, 84, 73, 71, 72, 84,
+ 76, 89, 45, 67, 76, 79, 83, 69, 196, 84, 73, 71, 72, 212, 84, 73, 71, 69,
+ 82, 128, 84, 73, 71, 69, 210, 84, 73, 70, 73, 78, 65, 71, 200, 84, 73,
+ 69, 88, 128, 84, 73, 69, 80, 128, 84, 73, 197, 84, 73, 67, 75, 69, 84,
+ 83, 128, 84, 73, 67, 75, 69, 84, 128, 84, 73, 67, 75, 128, 84, 73, 67,
+ 203, 84, 73, 65, 82, 65, 128, 84, 73, 50, 128, 84, 73, 45, 55, 128, 84,
+ 73, 45, 54, 128, 84, 73, 45, 53, 128, 84, 73, 45, 52, 128, 84, 73, 45,
+ 51, 128, 84, 73, 45, 50, 128, 84, 73, 45, 49, 128, 84, 72, 90, 128, 84,
+ 72, 89, 79, 79, 205, 84, 72, 87, 79, 79, 128, 84, 72, 87, 79, 128, 84,
+ 72, 87, 73, 73, 128, 84, 72, 87, 73, 128, 84, 72, 87, 69, 69, 128, 84,
+ 72, 87, 65, 65, 128, 84, 72, 87, 65, 128, 84, 72, 85, 82, 211, 84, 72,
+ 85, 82, 73, 83, 65, 218, 84, 72, 85, 78, 71, 128, 84, 72, 85, 78, 68, 69,
+ 82, 83, 84, 79, 82, 77, 128, 84, 72, 85, 78, 68, 69, 82, 128, 84, 72, 85,
+ 78, 68, 69, 210, 84, 72, 85, 77, 66, 211, 84, 72, 85, 77, 66, 128, 84,
+ 72, 82, 79, 87, 73, 78, 199, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 82,
+ 79, 85, 71, 200, 84, 72, 82, 69, 69, 45, 84, 72, 73, 82, 84, 89, 128, 84,
+ 72, 82, 69, 69, 45, 81, 85, 65, 82, 84, 69, 210, 84, 72, 82, 69, 69, 45,
+ 80, 69, 82, 45, 69, 205, 84, 72, 82, 69, 69, 45, 76, 73, 78, 197, 84, 72,
+ 82, 69, 69, 45, 76, 69, 71, 71, 69, 196, 84, 72, 82, 69, 69, 45, 72, 85,
+ 78, 68, 82, 69, 68, 45, 65, 78, 68, 45, 84, 87, 69, 78, 84, 73, 69, 84,
+ 72, 128, 84, 72, 82, 69, 69, 45, 69, 205, 84, 72, 82, 69, 69, 45, 68, 79,
+ 212, 84, 72, 82, 69, 69, 45, 196, 84, 72, 82, 69, 69, 45, 67, 73, 82, 67,
+ 76, 197, 84, 72, 82, 69, 65, 68, 128, 84, 72, 79, 85, 83, 65, 78, 68, 83,
+ 128, 84, 72, 79, 85, 83, 65, 78, 68, 211, 84, 72, 79, 85, 83, 65, 78,
+ 196, 84, 72, 79, 85, 71, 72, 212, 84, 72, 79, 85, 128, 84, 72, 79, 82,
+ 78, 128, 84, 72, 79, 82, 206, 84, 72, 79, 78, 71, 128, 84, 72, 79, 78,
+ 199, 84, 72, 79, 77, 128, 84, 72, 79, 74, 128, 84, 72, 79, 65, 128, 84,
+ 72, 207, 84, 72, 73, 85, 84, 72, 128, 84, 72, 73, 84, 65, 128, 84, 72,
+ 73, 82, 84, 89, 45, 83, 69, 67, 79, 78, 68, 128, 84, 72, 73, 82, 84, 89,
+ 45, 83, 69, 67, 79, 78, 196, 84, 72, 73, 82, 84, 89, 45, 79, 78, 69, 128,
+ 84, 72, 73, 82, 84, 89, 45, 70, 73, 86, 197, 84, 72, 73, 82, 84, 217, 84,
+ 72, 73, 82, 84, 69, 69, 78, 128, 84, 72, 73, 82, 84, 69, 69, 206, 84, 72,
+ 73, 82, 68, 83, 128, 84, 72, 73, 82, 68, 211, 84, 72, 73, 82, 68, 45, 83,
+ 84, 65, 71, 197, 84, 72, 73, 82, 68, 128, 84, 72, 73, 82, 196, 84, 72,
+ 73, 78, 75, 73, 78, 199, 84, 72, 73, 78, 71, 128, 84, 72, 73, 73, 128,
+ 84, 72, 73, 71, 72, 128, 84, 72, 73, 69, 85, 84, 200, 84, 72, 73, 67,
+ 203, 84, 72, 73, 65, 66, 128, 84, 72, 69, 89, 128, 84, 72, 69, 84, 72,
+ 69, 128, 84, 72, 69, 84, 72, 128, 84, 72, 69, 84, 65, 128, 84, 72, 69,
+ 84, 193, 84, 72, 69, 83, 80, 73, 65, 206, 84, 72, 69, 83, 69, 79, 83,
+ 128, 84, 72, 69, 83, 69, 79, 211, 84, 72, 69, 211, 84, 72, 69, 82, 77,
+ 79, 77, 69, 84, 69, 82, 128, 84, 72, 69, 82, 77, 79, 68, 89, 78, 65, 77,
+ 73, 67, 128, 84, 72, 69, 82, 69, 70, 79, 82, 69, 128, 84, 72, 69, 82,
+ 197, 84, 72, 69, 206, 84, 72, 69, 77, 65, 84, 73, 83, 77, 79, 211, 84,
+ 72, 69, 77, 65, 128, 84, 72, 69, 77, 193, 84, 72, 69, 72, 128, 84, 72,
+ 69, 200, 84, 72, 69, 65, 128, 84, 72, 197, 84, 72, 65, 87, 128, 84, 72,
+ 65, 78, 84, 72, 65, 75, 72, 65, 84, 128, 84, 72, 65, 78, 78, 65, 128, 84,
+ 72, 65, 78, 128, 84, 72, 65, 206, 84, 72, 65, 77, 69, 68, 72, 128, 84,
+ 72, 65, 76, 128, 84, 72, 65, 204, 84, 72, 65, 74, 128, 84, 72, 65, 201,
+ 84, 72, 65, 72, 65, 78, 128, 84, 72, 65, 65, 78, 193, 84, 72, 65, 65, 76,
+ 85, 128, 84, 72, 45, 67, 82, 69, 197, 84, 69, 88, 84, 128, 84, 69, 88,
+ 212, 84, 69, 88, 128, 84, 69, 86, 73, 82, 128, 84, 69, 85, 84, 69, 85,
+ 88, 128, 84, 69, 85, 84, 69, 85, 87, 69, 78, 128, 84, 69, 85, 84, 128,
+ 84, 69, 85, 78, 128, 84, 69, 85, 65, 69, 81, 128, 84, 69, 85, 65, 69, 78,
+ 128, 84, 69, 85, 128, 84, 69, 84, 82, 65, 83, 73, 77, 79, 85, 128, 84,
+ 69, 84, 82, 65, 83, 69, 77, 69, 128, 84, 69, 84, 82, 65, 80, 76, 73, 128,
+ 84, 69, 84, 82, 65, 71, 82, 65, 205, 84, 69, 84, 82, 65, 70, 79, 78, 73,
+ 65, 83, 128, 84, 69, 84, 72, 128, 84, 69, 84, 200, 84, 69, 84, 65, 82,
+ 84, 79, 211, 84, 69, 84, 65, 82, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84,
+ 69, 84, 128, 84, 69, 212, 84, 69, 83, 212, 84, 69, 83, 83, 69, 82, 65,
+ 128, 84, 69, 83, 83, 69, 82, 193, 84, 69, 83, 83, 65, 82, 79, 206, 84,
+ 69, 83, 200, 84, 69, 82, 77, 73, 78, 65, 84, 79, 82, 128, 84, 69, 82, 77,
+ 73, 78, 65, 204, 84, 69, 80, 128, 84, 69, 78, 85, 84, 79, 128, 84, 69,
+ 78, 85, 128, 84, 69, 78, 213, 84, 69, 78, 84, 72, 128, 84, 69, 78, 84,
+ 128, 84, 69, 78, 83, 69, 128, 84, 69, 78, 83, 197, 84, 69, 78, 83, 128,
+ 84, 69, 78, 211, 84, 69, 78, 78, 73, 211, 84, 69, 78, 71, 197, 84, 69,
+ 78, 45, 84, 72, 73, 82, 84, 89, 128, 84, 69, 78, 128, 84, 69, 206, 84,
+ 69, 77, 80, 85, 211, 84, 69, 77, 80, 76, 69, 128, 84, 69, 76, 85, 71,
+ 213, 84, 69, 76, 85, 128, 84, 69, 76, 79, 85, 211, 84, 69, 76, 76, 69,
+ 210, 84, 69, 76, 73, 83, 72, 193, 84, 69, 76, 69, 86, 73, 83, 73, 79, 78,
+ 128, 84, 69, 76, 69, 83, 67, 79, 80, 69, 128, 84, 69, 76, 69, 80, 72, 79,
+ 78, 69, 128, 84, 69, 76, 69, 80, 72, 79, 78, 197, 84, 69, 76, 69, 73, 65,
+ 128, 84, 69, 76, 69, 71, 82, 65, 80, 200, 84, 69, 75, 128, 84, 69, 73,
+ 87, 83, 128, 84, 69, 71, 69, 72, 128, 84, 69, 69, 84, 72, 128, 84, 69,
+ 69, 84, 200, 84, 69, 69, 78, 83, 128, 84, 69, 69, 69, 69, 128, 84, 69,
+ 197, 84, 69, 68, 85, 78, 71, 128, 84, 69, 68, 68, 217, 84, 69, 65, 82,
+ 211, 84, 69, 65, 82, 68, 82, 79, 80, 45, 83, 80, 79, 75, 69, 196, 84, 69,
+ 65, 82, 68, 82, 79, 80, 45, 83, 72, 65, 78, 75, 69, 196, 84, 69, 65, 82,
+ 68, 82, 79, 80, 45, 66, 65, 82, 66, 69, 196, 84, 69, 65, 82, 45, 79, 70,
+ 198, 84, 69, 65, 82, 128, 84, 69, 65, 80, 79, 84, 128, 84, 69, 65, 67,
+ 85, 208, 84, 69, 65, 128, 84, 69, 45, 85, 128, 84, 69, 45, 57, 128, 84,
+ 69, 45, 56, 128, 84, 69, 45, 55, 128, 84, 69, 45, 54, 128, 84, 69, 45,
+ 53, 128, 84, 69, 45, 52, 128, 84, 69, 45, 51, 128, 84, 69, 45, 50, 128,
+ 84, 69, 45, 49, 128, 84, 67, 72, 69, 72, 69, 72, 128, 84, 67, 72, 69, 72,
+ 69, 200, 84, 67, 72, 69, 72, 128, 84, 67, 72, 69, 200, 84, 67, 72, 69,
+ 128, 84, 195, 84, 65, 89, 128, 84, 65, 88, 73, 128, 84, 65, 88, 128, 84,
+ 65, 87, 69, 76, 76, 69, 77, 69, 212, 84, 65, 87, 65, 128, 84, 65, 87,
+ 128, 84, 65, 215, 84, 65, 86, 73, 89, 65, 78, 73, 128, 84, 65, 86, 128,
+ 84, 65, 214, 84, 65, 85, 82, 85, 83, 128, 84, 65, 85, 77, 128, 84, 65,
+ 213, 84, 65, 84, 87, 69, 69, 76, 128, 84, 65, 84, 87, 69, 69, 204, 84,
+ 65, 84, 84, 79, 79, 69, 196, 84, 65, 84, 128, 84, 65, 83, 83, 73, 128,
+ 84, 65, 83, 128, 84, 65, 82, 85, 78, 71, 128, 84, 65, 82, 84, 65, 82, 45,
+ 50, 128, 84, 65, 82, 84, 65, 82, 128, 84, 65, 82, 71, 69, 84, 128, 84,
+ 65, 81, 128, 84, 65, 80, 69, 82, 128, 84, 65, 80, 197, 84, 65, 80, 128,
+ 84, 65, 79, 128, 84, 65, 78, 78, 69, 196, 84, 65, 78, 71, 69, 82, 73, 78,
+ 69, 128, 84, 65, 78, 71, 69, 78, 84, 128, 84, 65, 78, 71, 69, 78, 212,
+ 84, 65, 78, 199, 84, 65, 78, 65, 66, 65, 84, 193, 84, 65, 78, 65, 128,
+ 84, 65, 78, 128, 84, 65, 77, 73, 78, 71, 128, 84, 65, 77, 65, 206, 84,
+ 65, 77, 65, 76, 69, 128, 84, 65, 77, 128, 84, 65, 76, 76, 217, 84, 65,
+ 76, 76, 128, 84, 65, 76, 204, 84, 65, 76, 73, 78, 71, 128, 84, 65, 76,
+ 73, 78, 199, 84, 65, 76, 69, 78, 84, 83, 128, 84, 65, 76, 69, 78, 212,
+ 84, 65, 75, 82, 201, 84, 65, 75, 72, 65, 76, 76, 85, 83, 128, 84, 65, 75,
+ 69, 79, 85, 212, 84, 65, 75, 69, 128, 84, 65, 75, 52, 128, 84, 65, 75,
+ 180, 84, 65, 75, 128, 84, 65, 73, 83, 89, 79, 85, 128, 84, 65, 73, 76,
+ 76, 69, 83, 211, 84, 65, 73, 76, 128, 84, 65, 73, 204, 84, 65, 72, 65,
+ 76, 65, 128, 84, 65, 72, 128, 84, 65, 200, 84, 65, 71, 66, 65, 78, 87,
+ 193, 84, 65, 71, 65, 76, 79, 199, 84, 65, 71, 128, 84, 65, 69, 206, 84,
+ 65, 67, 79, 128, 84, 65, 67, 75, 128, 84, 65, 67, 203, 84, 65, 66, 85,
+ 76, 65, 84, 73, 79, 78, 128, 84, 65, 66, 85, 76, 65, 84, 73, 79, 206, 84,
+ 65, 66, 83, 128, 84, 65, 66, 76, 69, 128, 84, 65, 66, 76, 197, 84, 65,
+ 66, 128, 84, 65, 194, 84, 65, 65, 83, 72, 65, 69, 128, 84, 65, 65, 81,
+ 128, 84, 65, 65, 77, 128, 84, 65, 65, 76, 85, 74, 193, 84, 65, 65, 73,
+ 128, 84, 65, 65, 70, 128, 84, 65, 50, 128, 84, 65, 45, 82, 79, 76, 128,
+ 84, 65, 45, 52, 128, 84, 65, 45, 51, 128, 84, 65, 45, 50, 128, 84, 65,
+ 45, 49, 128, 84, 48, 51, 54, 128, 84, 48, 51, 53, 128, 84, 48, 51, 52,
+ 128, 84, 48, 51, 51, 65, 128, 84, 48, 51, 51, 128, 84, 48, 51, 50, 65,
+ 128, 84, 48, 51, 50, 128, 84, 48, 51, 49, 128, 84, 48, 51, 48, 128, 84,
+ 48, 50, 57, 128, 84, 48, 50, 56, 128, 84, 48, 50, 55, 128, 84, 48, 50,
+ 54, 128, 84, 48, 50, 53, 128, 84, 48, 50, 52, 128, 84, 48, 50, 51, 128,
+ 84, 48, 50, 50, 128, 84, 48, 50, 49, 128, 84, 48, 50, 48, 128, 84, 48,
+ 49, 57, 128, 84, 48, 49, 56, 128, 84, 48, 49, 55, 128, 84, 48, 49, 54,
+ 65, 128, 84, 48, 49, 54, 128, 84, 48, 49, 53, 128, 84, 48, 49, 52, 128,
+ 84, 48, 49, 51, 128, 84, 48, 49, 50, 128, 84, 48, 49, 49, 65, 128, 84,
+ 48, 49, 49, 128, 84, 48, 49, 48, 128, 84, 48, 48, 57, 65, 128, 84, 48,
+ 48, 57, 128, 84, 48, 48, 56, 65, 128, 84, 48, 48, 56, 128, 84, 48, 48,
+ 55, 65, 128, 84, 48, 48, 55, 128, 84, 48, 48, 54, 128, 84, 48, 48, 53,
+ 128, 84, 48, 48, 52, 128, 84, 48, 48, 51, 65, 128, 84, 48, 48, 51, 128,
+ 84, 48, 48, 50, 128, 84, 48, 48, 49, 128, 84, 45, 83, 72, 73, 82, 84,
+ 128, 84, 45, 82, 69, 88, 128, 83, 90, 90, 128, 83, 90, 87, 71, 128, 83,
+ 90, 87, 65, 128, 83, 90, 85, 128, 83, 90, 79, 128, 83, 90, 73, 128, 83,
+ 90, 69, 69, 128, 83, 90, 69, 128, 83, 90, 65, 65, 128, 83, 90, 65, 128,
+ 83, 90, 128, 83, 89, 88, 128, 83, 89, 84, 128, 83, 89, 83, 84, 69, 205,
+ 83, 89, 82, 88, 128, 83, 89, 82, 77, 65, 84, 73, 75, 73, 128, 83, 89, 82,
+ 77, 65, 128, 83, 89, 82, 73, 78, 71, 69, 128, 83, 89, 82, 73, 65, 195,
+ 83, 89, 82, 128, 83, 89, 80, 128, 83, 89, 79, 85, 87, 65, 128, 83, 89,
+ 78, 69, 86, 77, 65, 128, 83, 89, 78, 68, 69, 83, 77, 79, 211, 83, 89, 78,
+ 67, 72, 82, 79, 78, 79, 85, 211, 83, 89, 78, 65, 71, 79, 71, 85, 69, 128,
+ 83, 89, 78, 65, 71, 77, 193, 83, 89, 78, 65, 70, 73, 128, 83, 89, 78,
+ 128, 83, 89, 77, 77, 69, 84, 82, 89, 128, 83, 89, 77, 77, 69, 84, 82, 73,
+ 195, 83, 89, 77, 66, 79, 76, 83, 128, 83, 89, 77, 66, 79, 76, 211, 83,
+ 89, 77, 66, 79, 76, 45, 57, 128, 83, 89, 77, 66, 79, 76, 45, 56, 128, 83,
+ 89, 77, 66, 79, 76, 45, 55, 128, 83, 89, 77, 66, 79, 76, 45, 54, 128, 83,
+ 89, 77, 66, 79, 76, 45, 53, 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 51,
+ 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, 89, 77, 66, 79, 76, 45,
+ 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83, 89, 77, 66, 79,
+ 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, 45, 52, 57, 128, 83, 89, 77, 66,
+ 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, 79, 76, 45, 52, 55, 128, 83, 89,
+ 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76, 45, 52, 51, 128,
+ 83, 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52,
+ 48, 128, 83, 89, 77, 66, 79, 76, 45, 52, 128, 83, 89, 77, 66, 79, 76, 45,
+ 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83, 89, 77, 66, 79,
+ 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54, 128, 83, 89, 77,
+ 66, 79, 76, 45, 51, 50, 128, 83, 89, 77, 66, 79, 76, 45, 51, 48, 128, 83,
+ 89, 77, 66, 79, 76, 45, 51, 128, 83, 89, 77, 66, 79, 76, 45, 50, 57, 128,
+ 83, 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66, 79, 76, 45, 50,
+ 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 53, 128, 83, 89, 77, 66, 79, 76,
+ 45, 50, 52, 128, 83, 89, 77, 66, 79, 76, 45, 50, 51, 128, 83, 89, 77, 66,
+ 79, 76, 45, 50, 50, 128, 83, 89, 77, 66, 79, 76, 45, 50, 49, 128, 83, 89,
+ 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, 79, 76, 45, 50, 128, 83,
+ 89, 77, 66, 79, 76, 45, 49, 57, 128, 83, 89, 77, 66, 79, 76, 45, 49, 56,
+ 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, 128, 83, 89, 77, 66, 79, 76, 45,
+ 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83, 89, 77, 66, 79,
+ 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51, 128, 83, 89, 77,
+ 66, 79, 76, 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 49, 128, 83,
+ 89, 77, 66, 79, 76, 45, 49, 48, 128, 83, 89, 77, 66, 79, 76, 45, 49, 128,
+ 83, 89, 76, 79, 84, 201, 83, 89, 73, 128, 83, 89, 128, 83, 87, 90, 128,
+ 83, 87, 85, 78, 199, 83, 87, 79, 82, 68, 83, 128, 83, 87, 79, 82, 68,
+ 128, 83, 87, 79, 79, 128, 83, 87, 79, 128, 83, 87, 73, 82, 204, 83, 87,
+ 73, 77, 83, 85, 73, 84, 128, 83, 87, 73, 77, 77, 73, 78, 71, 128, 83, 87,
+ 73, 77, 77, 69, 82, 128, 83, 87, 73, 73, 128, 83, 87, 73, 128, 83, 87,
+ 71, 128, 83, 87, 69, 69, 84, 128, 83, 87, 69, 69, 212, 83, 87, 69, 65,
+ 84, 128, 83, 87, 69, 65, 212, 83, 87, 65, 83, 200, 83, 87, 65, 80, 80,
+ 73, 78, 71, 128, 83, 87, 65, 78, 128, 83, 87, 65, 65, 128, 83, 87, 128,
+ 83, 86, 65, 83, 84, 201, 83, 86, 65, 82, 73, 84, 65, 128, 83, 86, 65, 82,
+ 73, 84, 193, 83, 85, 88, 128, 83, 85, 85, 128, 83, 85, 84, 82, 193, 83,
+ 85, 84, 128, 83, 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 85, 83, 72, 73,
+ 128, 83, 85, 82, 89, 65, 128, 83, 85, 82, 88, 128, 83, 85, 82, 82, 79,
+ 85, 78, 68, 128, 83, 85, 82, 82, 79, 85, 78, 196, 83, 85, 82, 70, 69, 82,
+ 128, 83, 85, 82, 70, 65, 67, 197, 83, 85, 82, 69, 128, 83, 85, 82, 65,
+ 78, 71, 128, 83, 85, 82, 57, 128, 83, 85, 82, 128, 83, 85, 210, 83, 85,
+ 80, 82, 65, 76, 73, 78, 69, 65, 210, 83, 85, 80, 69, 82, 86, 73, 83, 69,
+ 128, 83, 85, 80, 69, 82, 86, 73, 76, 76, 65, 73, 78, 128, 83, 85, 80, 69,
+ 82, 83, 69, 84, 128, 83, 85, 80, 69, 82, 83, 69, 212, 83, 85, 80, 69, 82,
+ 83, 67, 82, 73, 80, 212, 83, 85, 80, 69, 82, 73, 77, 80, 79, 83, 69, 196,
+ 83, 85, 80, 69, 82, 72, 69, 82, 79, 128, 83, 85, 80, 69, 82, 70, 73, 88,
+ 69, 196, 83, 85, 80, 69, 210, 83, 85, 80, 128, 83, 85, 79, 88, 128, 83,
+ 85, 79, 80, 128, 83, 85, 79, 128, 83, 85, 78, 83, 69, 212, 83, 85, 78,
+ 82, 73, 83, 69, 128, 83, 85, 78, 82, 73, 83, 197, 83, 85, 78, 71, 76, 65,
+ 83, 83, 69, 83, 128, 83, 85, 78, 71, 128, 83, 85, 78, 70, 76, 79, 87, 69,
+ 82, 128, 83, 85, 78, 68, 65, 78, 69, 83, 197, 83, 85, 78, 128, 83, 85,
+ 206, 83, 85, 77, 77, 69, 82, 128, 83, 85, 77, 77, 65, 84, 73, 79, 78,
+ 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 83, 85, 77, 65, 83, 72, 128,
+ 83, 85, 77, 128, 83, 85, 76, 70, 85, 82, 128, 83, 85, 75, 85, 78, 128,
+ 83, 85, 75, 85, 206, 83, 85, 75, 85, 128, 83, 85, 75, 213, 83, 85, 73,
+ 84, 65, 66, 76, 69, 128, 83, 85, 73, 212, 83, 85, 72, 85, 82, 128, 83,
+ 85, 69, 128, 83, 85, 68, 50, 128, 83, 85, 68, 128, 83, 85, 67, 75, 73,
+ 78, 199, 83, 85, 67, 75, 69, 68, 128, 83, 85, 67, 203, 83, 85, 67, 67,
+ 69, 69, 68, 83, 128, 83, 85, 67, 67, 69, 69, 68, 211, 83, 85, 67, 67, 69,
+ 69, 68, 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 66, 85, 78, 73, 84,
+ 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 83, 85, 66, 83, 84,
+ 73, 84, 85, 84, 69, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, 85,
+ 66, 83, 69, 84, 128, 83, 85, 66, 83, 69, 212, 83, 85, 66, 83, 67, 82, 73,
+ 80, 212, 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 76, 73,
+ 78, 69, 65, 210, 83, 85, 66, 76, 73, 77, 65, 84, 73, 79, 78, 128, 83, 85,
+ 66, 76, 73, 77, 65, 84, 69, 45, 51, 128, 83, 85, 66, 76, 73, 77, 65, 84,
+ 69, 45, 50, 128, 83, 85, 66, 76, 73, 77, 65, 84, 69, 128, 83, 85, 66, 76,
+ 73, 77, 65, 84, 197, 83, 85, 66, 74, 79, 73, 78, 69, 82, 128, 83, 85, 66,
+ 74, 79, 73, 78, 69, 196, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 66, 73,
+ 84, 79, 128, 83, 85, 66, 71, 82, 79, 85, 80, 128, 83, 85, 66, 71, 82, 79,
+ 85, 208, 83, 85, 66, 128, 83, 85, 65, 77, 128, 83, 85, 65, 69, 84, 128,
+ 83, 85, 65, 69, 78, 128, 83, 85, 65, 69, 128, 83, 85, 65, 66, 128, 83,
+ 85, 65, 128, 83, 85, 45, 56, 128, 83, 85, 45, 55, 128, 83, 85, 45, 54,
+ 128, 83, 85, 45, 53, 128, 83, 85, 45, 52, 128, 83, 85, 45, 51, 128, 83,
+ 85, 45, 50, 128, 83, 85, 45, 49, 128, 83, 213, 83, 84, 88, 128, 83, 84,
+ 87, 65, 128, 83, 84, 85, 80, 65, 128, 83, 84, 85, 70, 70, 69, 196, 83,
+ 84, 85, 68, 89, 128, 83, 84, 85, 68, 73, 207, 83, 84, 85, 67, 75, 45, 79,
+ 85, 212, 83, 84, 83, 128, 83, 84, 82, 79, 78, 199, 83, 84, 82, 79, 75,
+ 69, 83, 128, 83, 84, 82, 79, 75, 69, 211, 83, 84, 82, 79, 75, 69, 45, 57,
+ 128, 83, 84, 82, 79, 75, 69, 45, 56, 128, 83, 84, 82, 79, 75, 69, 45, 55,
+ 128, 83, 84, 82, 79, 75, 69, 45, 54, 128, 83, 84, 82, 79, 75, 69, 45, 53,
+ 128, 83, 84, 82, 79, 75, 69, 45, 52, 128, 83, 84, 82, 79, 75, 69, 45, 51,
+ 128, 83, 84, 82, 79, 75, 69, 45, 50, 128, 83, 84, 82, 79, 75, 69, 45, 49,
+ 49, 128, 83, 84, 82, 79, 75, 69, 45, 49, 48, 128, 83, 84, 82, 79, 75, 69,
+ 45, 49, 128, 83, 84, 82, 79, 75, 197, 83, 84, 82, 73, 80, 69, 128, 83,
+ 84, 82, 73, 78, 71, 128, 83, 84, 82, 73, 78, 199, 83, 84, 82, 73, 75, 69,
+ 84, 72, 82, 79, 85, 71, 72, 128, 83, 84, 82, 73, 75, 197, 83, 84, 82, 73,
+ 68, 69, 128, 83, 84, 82, 73, 67, 84, 76, 217, 83, 84, 82, 69, 84, 67, 72,
+ 69, 196, 83, 84, 82, 69, 84, 67, 72, 128, 83, 84, 82, 69, 83, 211, 83,
+ 84, 82, 69, 78, 71, 84, 72, 128, 83, 84, 82, 69, 65, 77, 69, 82, 128, 83,
+ 84, 82, 65, 87, 66, 69, 82, 82, 89, 128, 83, 84, 82, 65, 87, 128, 83, 84,
+ 82, 65, 84, 85, 77, 45, 50, 128, 83, 84, 82, 65, 84, 85, 77, 128, 83, 84,
+ 82, 65, 84, 85, 205, 83, 84, 82, 65, 84, 73, 65, 206, 83, 84, 82, 65, 73,
+ 78, 69, 82, 128, 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, 83, 128, 83,
+ 84, 82, 65, 73, 71, 72, 84, 128, 83, 84, 82, 65, 73, 71, 72, 212, 83, 84,
+ 82, 65, 73, 70, 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128,
+ 83, 84, 79, 86, 69, 128, 83, 84, 79, 82, 69, 128, 83, 84, 79, 80, 87, 65,
+ 84, 67, 72, 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 79, 80, 80,
+ 65, 71, 69, 128, 83, 84, 79, 80, 128, 83, 84, 79, 208, 83, 84, 79, 78,
+ 69, 128, 83, 84, 79, 67, 75, 128, 83, 84, 79, 67, 203, 83, 84, 73, 82,
+ 82, 85, 208, 83, 84, 73, 77, 77, 69, 128, 83, 84, 73, 76, 204, 83, 84,
+ 73, 76, 197, 83, 84, 73, 71, 77, 65, 128, 83, 84, 73, 67, 75, 73, 78,
+ 199, 83, 84, 73, 67, 203, 83, 84, 69, 84, 72, 79, 83, 67, 79, 80, 69,
+ 128, 83, 84, 69, 82, 69, 79, 128, 83, 84, 69, 80, 128, 83, 84, 69, 78,
+ 79, 71, 82, 65, 80, 72, 73, 195, 83, 84, 69, 77, 128, 83, 84, 69, 65, 77,
+ 217, 83, 84, 69, 65, 77, 73, 78, 199, 83, 84, 69, 65, 77, 128, 83, 84,
+ 69, 65, 205, 83, 84, 65, 86, 82, 79, 85, 128, 83, 84, 65, 86, 82, 79, 83,
+ 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 65, 85, 82, 79, 83, 128, 83,
+ 84, 65, 84, 85, 197, 83, 84, 65, 84, 73, 79, 78, 128, 83, 84, 65, 84, 69,
+ 82, 83, 128, 83, 84, 65, 84, 69, 128, 83, 84, 65, 82, 84, 73, 78, 199,
+ 83, 84, 65, 82, 84, 128, 83, 84, 65, 82, 212, 83, 84, 65, 82, 83, 128,
+ 83, 84, 65, 82, 82, 69, 196, 83, 84, 65, 82, 75, 128, 83, 84, 65, 82,
+ 128, 83, 84, 65, 210, 83, 84, 65, 78, 68, 83, 84, 73, 76, 76, 128, 83,
+ 84, 65, 78, 68, 73, 78, 199, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, 65,
+ 78, 68, 128, 83, 84, 65, 78, 128, 83, 84, 65, 77, 80, 69, 196, 83, 84,
+ 65, 76, 76, 73, 79, 78, 128, 83, 84, 65, 70, 70, 128, 83, 84, 65, 70,
198, 83, 84, 65, 68, 73, 85, 77, 128, 83, 84, 65, 67, 75, 69, 196, 83,
84, 65, 67, 67, 65, 84, 79, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83,
73, 77, 79, 128, 83, 84, 50, 128, 83, 83, 89, 88, 128, 83, 83, 89, 84,
@@ -1010,3119 +1010,3119 @@ static const unsigned char lexicon[] = {
73, 82, 65, 76, 128, 83, 80, 73, 82, 65, 204, 83, 80, 73, 78, 69, 128,
83, 80, 73, 68, 69, 82, 217, 83, 80, 73, 68, 69, 82, 128, 83, 80, 73, 68,
69, 210, 83, 80, 73, 67, 69, 128, 83, 80, 72, 69, 82, 73, 67, 65, 204,
- 83, 80, 69, 83, 77, 73, 76, 207, 83, 80, 69, 78, 212, 83, 80, 69, 69, 68,
- 66, 79, 65, 84, 128, 83, 80, 69, 69, 67, 72, 128, 83, 80, 69, 69, 67,
- 200, 83, 80, 69, 67, 73, 65, 76, 128, 83, 80, 69, 65, 82, 128, 83, 80,
- 69, 65, 75, 73, 78, 199, 83, 80, 69, 65, 75, 69, 82, 128, 83, 80, 69, 65,
- 75, 69, 210, 83, 80, 69, 65, 75, 45, 78, 79, 45, 69, 86, 73, 204, 83, 80,
- 65, 84, 72, 73, 128, 83, 80, 65, 82, 75, 76, 73, 78, 199, 83, 80, 65, 82,
- 75, 76, 69, 83, 128, 83, 80, 65, 82, 75, 76, 69, 82, 128, 83, 80, 65, 82,
- 75, 76, 69, 128, 83, 80, 65, 71, 72, 69, 84, 84, 73, 128, 83, 80, 65, 68,
- 69, 83, 128, 83, 80, 65, 68, 197, 83, 80, 65, 67, 73, 78, 199, 83, 80,
- 65, 67, 197, 83, 80, 65, 128, 83, 79, 89, 79, 77, 66, 207, 83, 79, 89,
- 128, 83, 79, 87, 73, 76, 207, 83, 79, 87, 128, 83, 79, 85, 84, 72, 69,
- 82, 206, 83, 79, 85, 84, 72, 45, 83, 76, 65, 86, 69, 217, 83, 79, 85, 84,
- 200, 83, 79, 85, 82, 67, 69, 128, 83, 79, 85, 78, 68, 128, 83, 79, 85,
- 78, 196, 83, 79, 85, 78, 65, 80, 128, 83, 79, 85, 128, 83, 79, 83, 128,
- 83, 79, 82, 193, 83, 79, 81, 128, 83, 79, 79, 206, 83, 79, 78, 74, 65,
- 77, 128, 83, 79, 78, 71, 128, 83, 79, 78, 128, 83, 79, 77, 80, 69, 78,
- 199, 83, 79, 77, 128, 83, 79, 76, 73, 68, 85, 83, 128, 83, 79, 76, 73,
- 68, 85, 211, 83, 79, 76, 73, 196, 83, 79, 76, 68, 73, 69, 82, 128, 83,
- 79, 72, 128, 83, 79, 71, 68, 73, 65, 206, 83, 79, 70, 84, 87, 65, 82, 69,
- 45, 70, 85, 78, 67, 84, 73, 79, 206, 83, 79, 70, 84, 78, 69, 83, 83, 128,
- 83, 79, 70, 84, 66, 65, 76, 76, 128, 83, 79, 70, 212, 83, 79, 198, 83,
- 79, 67, 75, 83, 128, 83, 79, 67, 73, 69, 84, 89, 128, 83, 79, 67, 67, 69,
- 210, 83, 79, 65, 80, 128, 83, 79, 65, 128, 83, 79, 45, 55, 128, 83, 79,
- 45, 54, 128, 83, 79, 45, 53, 128, 83, 79, 45, 52, 128, 83, 79, 45, 51,
- 128, 83, 79, 45, 50, 128, 83, 79, 45, 49, 128, 83, 207, 83, 78, 79, 87,
- 77, 65, 78, 128, 83, 78, 79, 87, 77, 65, 206, 83, 78, 79, 87, 70, 76, 65,
- 75, 69, 128, 83, 78, 79, 87, 66, 79, 65, 82, 68, 69, 82, 128, 83, 78, 79,
- 87, 128, 83, 78, 79, 215, 83, 78, 79, 85, 84, 128, 83, 78, 79, 85, 212,
- 83, 78, 69, 69, 90, 73, 78, 199, 83, 78, 65, 208, 83, 78, 65, 75, 69,
- 128, 83, 78, 65, 75, 197, 83, 78, 65, 73, 76, 128, 83, 78, 193, 83, 77,
- 79, 75, 73, 78, 199, 83, 77, 73, 82, 75, 73, 78, 199, 83, 77, 73, 76, 73,
- 78, 199, 83, 77, 73, 76, 69, 128, 83, 77, 73, 76, 197, 83, 77, 69, 65,
- 82, 128, 83, 77, 65, 83, 200, 83, 77, 65, 76, 76, 69, 210, 83, 77, 65,
- 76, 76, 128, 83, 76, 85, 82, 128, 83, 76, 79, 87, 76, 89, 128, 83, 76,
- 79, 87, 128, 83, 76, 79, 215, 83, 76, 79, 86, 79, 128, 83, 76, 79, 84,
- 72, 128, 83, 76, 79, 212, 83, 76, 79, 80, 73, 78, 199, 83, 76, 79, 80,
- 69, 128, 83, 76, 79, 65, 206, 83, 76, 73, 78, 71, 128, 83, 76, 73, 71,
- 72, 84, 76, 217, 83, 76, 73, 68, 73, 78, 71, 128, 83, 76, 73, 68, 69, 82,
- 128, 83, 76, 73, 67, 69, 128, 83, 76, 73, 67, 197, 83, 76, 69, 85, 84,
- 200, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78, 199, 83, 76,
- 69, 69, 208, 83, 76, 69, 68, 128, 83, 76, 65, 86, 79, 78, 73, 195, 83,
- 76, 65, 86, 69, 128, 83, 76, 65, 83, 72, 128, 83, 76, 65, 83, 200, 83,
- 76, 65, 78, 84, 69, 196, 83, 75, 87, 65, 128, 83, 75, 87, 128, 83, 75,
- 85, 78, 75, 128, 83, 75, 85, 76, 76, 128, 83, 75, 85, 76, 204, 83, 75,
- 76, 73, 82, 79, 206, 83, 75, 73, 78, 128, 83, 75, 73, 69, 82, 128, 83,
- 75, 201, 83, 75, 69, 87, 69, 196, 83, 75, 65, 84, 69, 66, 79, 65, 82, 68,
- 128, 83, 75, 65, 84, 69, 128, 83, 75, 128, 83, 74, 69, 128, 83, 73, 90,
- 197, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 72, 83, 128, 83, 73, 88,
- 84, 89, 45, 70, 79, 85, 82, 84, 72, 128, 83, 73, 88, 84, 89, 45, 70, 79,
- 85, 82, 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84, 217, 83, 73,
- 88, 84, 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88, 84, 72, 128,
- 83, 73, 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84, 69, 69, 78,
- 84, 72, 45, 50, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, 45, 49, 128, 83,
- 73, 88, 84, 69, 69, 78, 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200,
- 83, 73, 88, 84, 69, 69, 78, 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88,
- 45, 84, 72, 73, 82, 84, 89, 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199,
- 83, 73, 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197,
- 83, 73, 216, 83, 73, 84, 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 73,
- 78, 71, 85, 128, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128, 83,
- 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 73, 79, 83,
- 45, 82, 73, 69, 85, 76, 128, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 45,
- 75, 73, 89, 69, 79, 75, 128, 83, 73, 79, 83, 45, 80, 72, 73, 69, 85, 80,
- 72, 128, 83, 73, 79, 83, 45, 80, 65, 78, 83, 73, 79, 83, 128, 83, 73, 79,
- 83, 45, 78, 73, 69, 85, 78, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77,
- 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 73, 79, 83,
- 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80, 128, 83, 73, 79,
- 83, 45, 73, 69, 85, 78, 71, 128, 83, 73, 79, 83, 45, 72, 73, 69, 85, 72,
- 128, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 83, 73, 79, 83, 45, 67,
- 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, 211, 83, 73, 78, 85, 83, 79, 73,
- 196, 83, 73, 78, 79, 76, 79, 71, 73, 67, 65, 204, 83, 73, 78, 78, 89, 73,
- 73, 89, 72, 69, 128, 83, 73, 78, 75, 73, 78, 71, 128, 83, 73, 78, 71, 76,
- 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, 83, 73, 78, 71, 76, 69, 45, 83,
- 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, 71, 76, 69, 45, 76, 73, 78, 197,
- 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, 71, 76, 197, 83, 73, 78, 71, 65,
- 65, 84, 128, 83, 73, 78, 197, 83, 73, 78, 68, 72, 201, 83, 73, 78, 128,
- 83, 73, 206, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, 83, 128, 83, 73,
- 77, 85, 76, 84, 65, 78, 69, 79, 85, 211, 83, 73, 77, 80, 76, 73, 70, 73,
- 69, 196, 83, 73, 77, 73, 76, 65, 82, 128, 83, 73, 77, 73, 76, 65, 210,
- 83, 73, 77, 65, 78, 83, 73, 211, 83, 73, 77, 65, 76, 85, 78, 71, 85, 206,
- 83, 73, 77, 65, 128, 83, 73, 76, 86, 69, 82, 128, 83, 73, 76, 75, 128,
- 83, 73, 76, 73, 81, 85, 193, 83, 73, 76, 72, 79, 85, 69, 84, 84, 69, 128,
- 83, 73, 76, 72, 79, 85, 69, 84, 84, 197, 83, 73, 76, 65, 51, 128, 83, 73,
- 75, 73, 128, 83, 73, 75, 50, 128, 83, 73, 75, 178, 83, 73, 71, 78, 83,
- 128, 83, 73, 71, 77, 65, 128, 83, 73, 71, 77, 193, 83, 73, 71, 69, 204,
- 83, 73, 71, 52, 128, 83, 73, 71, 180, 83, 73, 71, 128, 83, 73, 69, 69,
- 128, 83, 73, 68, 69, 87, 65, 89, 211, 83, 73, 68, 69, 128, 83, 73, 68,
- 197, 83, 73, 68, 68, 72, 73, 128, 83, 73, 68, 68, 72, 65, 77, 128, 83,
- 73, 68, 68, 72, 65, 205, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 73, 67,
- 75, 76, 69, 128, 83, 73, 66, 197, 83, 73, 65, 128, 83, 73, 45, 54, 128,
- 83, 73, 45, 53, 128, 83, 73, 45, 52, 128, 83, 73, 45, 51, 128, 83, 73,
- 45, 50, 128, 83, 73, 45, 49, 128, 83, 201, 83, 72, 89, 88, 128, 83, 72,
- 89, 84, 128, 83, 72, 89, 82, 88, 128, 83, 72, 89, 82, 128, 83, 72, 89,
- 80, 128, 83, 72, 89, 69, 128, 83, 72, 89, 65, 128, 83, 72, 89, 128, 83,
- 72, 87, 79, 89, 128, 83, 72, 87, 79, 79, 128, 83, 72, 87, 79, 128, 83,
- 72, 87, 73, 73, 128, 83, 72, 87, 73, 128, 83, 72, 87, 69, 128, 83, 72,
- 87, 197, 83, 72, 87, 65, 65, 128, 83, 72, 87, 65, 128, 83, 72, 86, 128,
- 83, 72, 85, 88, 128, 83, 72, 85, 85, 128, 83, 72, 85, 84, 84, 76, 69, 67,
- 79, 67, 75, 128, 83, 72, 85, 84, 128, 83, 72, 85, 82, 88, 128, 83, 72,
- 85, 82, 128, 83, 72, 85, 80, 128, 83, 72, 85, 79, 88, 128, 83, 72, 85,
- 79, 80, 128, 83, 72, 85, 79, 128, 83, 72, 85, 77, 128, 83, 72, 85, 76,
- 128, 83, 72, 85, 70, 70, 76, 197, 83, 72, 85, 69, 81, 128, 83, 72, 85,
- 69, 78, 83, 72, 85, 69, 84, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85,
- 65, 78, 71, 88, 73, 128, 83, 72, 85, 50, 128, 83, 72, 85, 178, 83, 72,
- 85, 128, 83, 72, 84, 65, 80, 73, 67, 128, 83, 72, 84, 65, 128, 83, 72,
- 82, 85, 71, 128, 83, 72, 82, 73, 78, 69, 128, 83, 72, 82, 73, 77, 80,
- 128, 83, 72, 82, 73, 73, 128, 83, 72, 82, 73, 128, 83, 72, 79, 89, 128,
- 83, 72, 79, 88, 128, 83, 72, 79, 87, 69, 82, 128, 83, 72, 79, 85, 76, 68,
- 69, 82, 69, 196, 83, 72, 79, 85, 76, 68, 69, 210, 83, 72, 79, 85, 128,
- 83, 72, 79, 84, 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 79, 82, 84,
- 211, 83, 72, 79, 82, 84, 72, 65, 78, 196, 83, 72, 79, 82, 84, 69, 78, 69,
- 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69, 128, 83, 72, 79, 82, 84, 45,
- 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71,
- 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, 79, 204,
- 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, 79, 82,
- 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 72, 79, 82, 84, 45, 84,
- 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71,
- 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45,
- 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45,
- 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79, 82, 212, 83, 72, 79, 81,
- 128, 83, 72, 79, 209, 83, 72, 79, 80, 80, 73, 78, 199, 83, 72, 79, 80,
- 128, 83, 72, 79, 79, 84, 73, 78, 199, 83, 72, 79, 79, 84, 128, 83, 72,
- 79, 79, 73, 128, 83, 72, 79, 79, 128, 83, 72, 79, 71, 201, 83, 72, 79,
- 199, 83, 72, 79, 69, 83, 128, 83, 72, 79, 69, 128, 83, 72, 79, 197, 83,
- 72, 79, 67, 75, 69, 196, 83, 72, 79, 65, 128, 83, 72, 79, 128, 83, 72,
- 73, 89, 89, 65, 65, 76, 65, 65, 128, 83, 72, 73, 84, 65, 128, 83, 72, 73,
- 84, 193, 83, 72, 73, 82, 212, 83, 72, 73, 82, 65, 69, 128, 83, 72, 73,
- 82, 128, 83, 72, 73, 210, 83, 72, 73, 81, 128, 83, 72, 73, 78, 84, 207,
- 83, 72, 73, 78, 73, 71, 128, 83, 72, 73, 78, 68, 193, 83, 72, 73, 206,
- 83, 72, 73, 77, 65, 128, 83, 72, 73, 77, 193, 83, 72, 73, 77, 128, 83,
- 72, 73, 205, 83, 72, 73, 73, 78, 128, 83, 72, 73, 73, 128, 83, 72, 73,
- 70, 212, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 68, 128, 83, 72, 73,
- 196, 83, 72, 72, 65, 128, 83, 72, 72, 193, 83, 72, 69, 88, 128, 83, 72,
- 69, 86, 65, 128, 83, 72, 69, 85, 88, 128, 83, 72, 69, 85, 79, 81, 128,
- 83, 72, 69, 85, 65, 69, 81, 84, 85, 128, 83, 72, 69, 85, 65, 69, 81, 128,
- 83, 72, 69, 85, 65, 69, 128, 83, 72, 69, 84, 128, 83, 72, 69, 212, 83,
- 72, 69, 83, 72, 76, 65, 77, 128, 83, 72, 69, 83, 72, 73, 71, 128, 83, 72,
- 69, 83, 72, 73, 199, 83, 72, 69, 83, 72, 50, 128, 83, 72, 69, 83, 72,
- 128, 83, 72, 69, 83, 200, 83, 72, 69, 81, 69, 204, 83, 72, 69, 80, 128,
- 83, 72, 69, 78, 128, 83, 72, 69, 76, 76, 128, 83, 72, 69, 76, 204, 83,
- 72, 69, 76, 70, 128, 83, 72, 69, 73, 128, 83, 72, 69, 71, 57, 128, 83,
- 72, 69, 69, 80, 128, 83, 72, 69, 69, 78, 85, 128, 83, 72, 69, 69, 78,
- 128, 83, 72, 69, 69, 206, 83, 72, 69, 69, 128, 83, 72, 69, 45, 71, 79,
- 65, 84, 128, 83, 72, 197, 83, 72, 67, 72, 79, 79, 73, 128, 83, 72, 67,
- 72, 65, 128, 83, 72, 65, 89, 128, 83, 72, 65, 88, 128, 83, 72, 65, 86,
- 73, 89, 65, 78, 73, 128, 83, 72, 65, 86, 73, 65, 206, 83, 72, 65, 86, 69,
- 196, 83, 72, 65, 85, 128, 83, 72, 65, 84, 128, 83, 72, 65, 82, 85, 128,
- 83, 72, 65, 82, 213, 83, 72, 65, 82, 80, 128, 83, 72, 65, 82, 208, 83,
- 72, 65, 82, 75, 128, 83, 72, 65, 82, 65, 68, 193, 83, 72, 65, 82, 65,
- 128, 83, 72, 65, 82, 50, 128, 83, 72, 65, 82, 178, 83, 72, 65, 80, 73,
- 78, 71, 128, 83, 72, 65, 80, 69, 83, 128, 83, 72, 65, 80, 197, 83, 72,
- 65, 80, 128, 83, 72, 65, 78, 71, 128, 83, 72, 65, 78, 128, 83, 72, 65,
- 206, 83, 72, 65, 77, 82, 79, 67, 75, 128, 83, 72, 65, 76, 83, 72, 69, 76,
- 69, 84, 128, 83, 72, 65, 76, 76, 79, 215, 83, 72, 65, 75, 84, 73, 128,
- 83, 72, 65, 75, 73, 78, 71, 128, 83, 72, 65, 75, 73, 78, 199, 83, 72, 65,
- 75, 69, 82, 128, 83, 72, 65, 75, 128, 83, 72, 65, 73, 128, 83, 72, 65,
- 70, 84, 128, 83, 72, 65, 70, 212, 83, 72, 65, 68, 79, 87, 69, 196, 83,
- 72, 65, 68, 69, 196, 83, 72, 65, 68, 69, 128, 83, 72, 65, 68, 197, 83,
- 72, 65, 68, 68, 65, 128, 83, 72, 65, 68, 68, 193, 83, 72, 65, 68, 128,
- 83, 72, 65, 196, 83, 72, 65, 66, 54, 128, 83, 72, 65, 65, 128, 83, 72,
- 65, 54, 128, 83, 72, 65, 182, 83, 72, 65, 51, 128, 83, 72, 65, 179, 83,
- 71, 82, 193, 83, 71, 79, 210, 83, 71, 67, 128, 83, 71, 65, 215, 83, 71,
- 65, 194, 83, 71, 128, 83, 69, 89, 75, 128, 83, 69, 88, 84, 85, 76, 193,
- 83, 69, 88, 84, 73, 76, 69, 128, 83, 69, 88, 84, 65, 78, 84, 45, 54, 128,
- 83, 69, 88, 84, 65, 78, 84, 45, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84,
- 45, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 52, 54, 128, 83, 69, 88, 84,
- 65, 78, 84, 45, 52, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 52, 53,
- 128, 83, 69, 88, 84, 65, 78, 84, 45, 52, 128, 83, 69, 88, 84, 65, 78, 84,
- 45, 51, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51, 53, 54, 128, 83, 69,
- 88, 84, 65, 78, 84, 45, 51, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51,
- 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51, 52, 53, 54, 128, 83, 69,
- 88, 84, 65, 78, 84, 45, 51, 52, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45,
- 51, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51, 128, 83, 69, 88, 84, 65,
- 78, 84, 45, 50, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 53, 54, 128,
- 83, 69, 88, 84, 65, 78, 84, 45, 50, 53, 128, 83, 69, 88, 84, 65, 78, 84,
- 45, 50, 52, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 52, 53, 128,
- 83, 69, 88, 84, 65, 78, 84, 45, 50, 52, 128, 83, 69, 88, 84, 65, 78, 84,
- 45, 50, 51, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 53, 54, 128,
- 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 53, 128, 83, 69, 88, 84, 65, 78,
- 84, 45, 50, 51, 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 52,
- 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 52, 53, 128, 83, 69,
- 88, 84, 65, 78, 84, 45, 50, 51, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45,
- 50, 51, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 128, 83, 69, 88, 84, 65,
- 78, 84, 45, 49, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 53, 54, 128,
- 83, 69, 88, 84, 65, 78, 84, 45, 49, 53, 128, 83, 69, 88, 84, 65, 78, 84,
- 45, 49, 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 52, 53, 54, 128,
- 83, 69, 88, 84, 65, 78, 84, 45, 49, 52, 53, 128, 83, 69, 88, 84, 65, 78,
- 84, 45, 49, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 51, 54, 128, 83,
- 69, 88, 84, 65, 78, 84, 45, 49, 51, 53, 54, 128, 83, 69, 88, 84, 65, 78,
- 84, 45, 49, 51, 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 51, 52,
- 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 51, 52, 53, 128, 83, 69,
- 88, 84, 65, 78, 84, 45, 49, 51, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45,
- 49, 51, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 54, 128, 83, 69, 88,
- 84, 65, 78, 84, 45, 49, 50, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45,
- 49, 50, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 52, 54, 128, 83,
- 69, 88, 84, 65, 78, 84, 45, 49, 50, 52, 53, 54, 128, 83, 69, 88, 84, 65,
- 78, 84, 45, 49, 50, 52, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50,
- 52, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 51, 54, 128, 83, 69, 88,
- 84, 65, 78, 84, 45, 49, 50, 51, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84,
- 45, 49, 50, 51, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 51, 52,
- 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 51, 52, 53, 128, 83, 69,
- 88, 84, 65, 78, 84, 45, 49, 50, 51, 52, 128, 83, 69, 88, 84, 65, 78, 84,
- 45, 49, 50, 51, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 128, 83, 69,
- 88, 84, 65, 78, 84, 45, 49, 128, 83, 69, 88, 84, 65, 78, 211, 83, 69, 87,
- 73, 78, 199, 83, 69, 86, 69, 82, 65, 78, 67, 69, 128, 83, 69, 86, 69, 78,
- 84, 89, 128, 83, 69, 86, 69, 78, 84, 217, 83, 69, 86, 69, 78, 84, 72,
- 128, 83, 69, 86, 69, 78, 84, 69, 69, 78, 128, 83, 69, 86, 69, 78, 84, 69,
- 69, 206, 83, 69, 86, 69, 78, 45, 84, 72, 73, 82, 84, 89, 128, 83, 69, 86,
- 69, 206, 83, 69, 85, 88, 128, 83, 69, 85, 78, 89, 65, 77, 128, 83, 69,
- 85, 65, 69, 81, 128, 83, 69, 84, 70, 79, 78, 128, 83, 69, 83, 84, 69, 82,
- 84, 73, 85, 211, 83, 69, 83, 81, 85, 73, 81, 85, 65, 68, 82, 65, 84, 69,
- 128, 83, 69, 83, 65, 77, 197, 83, 69, 82, 86, 73, 67, 197, 83, 69, 82,
- 73, 79, 85, 211, 83, 69, 82, 73, 70, 83, 128, 83, 69, 82, 73, 70, 211,
- 83, 69, 82, 73, 70, 128, 83, 69, 81, 85, 69, 78, 84, 73, 65, 76, 128, 83,
- 69, 81, 85, 69, 78, 67, 197, 83, 69, 80, 84, 85, 80, 76, 197, 83, 69, 80,
- 84, 69, 77, 66, 69, 82, 128, 83, 69, 80, 65, 82, 65, 84, 79, 82, 128, 83,
- 69, 80, 65, 82, 65, 84, 79, 210, 83, 69, 80, 65, 82, 65, 84, 69, 196, 83,
- 69, 78, 84, 79, 128, 83, 69, 78, 84, 73, 128, 83, 69, 78, 84, 65, 71, 79,
- 78, 128, 83, 69, 77, 85, 78, 67, 73, 193, 83, 69, 77, 75, 65, 84, 72,
- 128, 83, 69, 77, 75, 128, 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 69,
- 77, 73, 83, 79, 70, 212, 83, 69, 77, 73, 83, 69, 88, 84, 73, 76, 69, 128,
- 83, 69, 77, 73, 77, 73, 78, 73, 77, 193, 83, 69, 77, 73, 68, 73, 82, 69,
- 67, 212, 83, 69, 77, 73, 67, 79, 76, 79, 78, 128, 83, 69, 77, 73, 67, 79,
- 76, 79, 206, 83, 69, 77, 73, 67, 73, 82, 67, 85, 76, 65, 210, 83, 69, 77,
- 73, 67, 73, 82, 67, 76, 197, 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83,
- 69, 77, 73, 45, 86, 79, 73, 67, 69, 196, 83, 69, 76, 70, 73, 69, 128, 83,
- 69, 76, 70, 128, 83, 69, 76, 69, 78, 65, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 57, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 56, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 57, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 53, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 57, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 50, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 56, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 55, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 56, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 52, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 56, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 56, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 49, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 57, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 55, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 55, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 54, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 55, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 51, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 55, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 48, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
- 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 56, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 54, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
- 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 53, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 54, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
- 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 50, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
- 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 56,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 55, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 53,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 52, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 50,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 49, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 57, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 55, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 54, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 52, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 51, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 49, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 48, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 57, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 54, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 51, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 48, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 56, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 54, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 53, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53,
- 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 50, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 57, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52,
- 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 54, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 51, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 50, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 50, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
- 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 55, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 50, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
- 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 51, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 50, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 50, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 48,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 50, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
- 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 55, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 50, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 50, 50, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 52,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 51, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 50, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 50, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 48, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 50, 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 56,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 55, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 50, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 50, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 52, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 51, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49,
- 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 48, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 50, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 56, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 55, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 50, 48, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48,
- 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 52, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 50, 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 50, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 49, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 57, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 54, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 57, 53, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 51,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 50, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 56, 57, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 55,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 54, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 56, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 51, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 50, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 56, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56,
- 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 55, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 55, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 55, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 54, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55,
- 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 51, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 55, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 48, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54,
- 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 55, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 54, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 54, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 52, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 51, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 54, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 48, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 56, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 52, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 49,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 48, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 56, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 53,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 52, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 52, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 49, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 48, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 57,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 56, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 53, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 52, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51,
- 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 49, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 57, 128, 83,
- 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 56, 128, 83, 69, 76, 69, 67, 84,
- 79, 82, 45, 49, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50,
- 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 53, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 50, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 50, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 57, 128, 83, 69, 76,
- 69, 67, 84, 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82,
- 45, 49, 49, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 54, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 53, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 50, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 128,
- 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 57, 128, 83, 69, 76, 69, 67,
- 84, 79, 82, 45, 49, 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
- 48, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 54, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79,
- 82, 45, 49, 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 51,
- 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 50, 128, 83, 69, 76, 69,
- 67, 84, 79, 82, 45, 49, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
- 49, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 128, 83, 69,
- 76, 69, 67, 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 128,
- 83, 69, 76, 69, 67, 84, 79, 210, 83, 69, 76, 69, 67, 84, 69, 196, 83, 69,
- 73, 83, 77, 65, 128, 83, 69, 73, 83, 77, 193, 83, 69, 72, 128, 83, 69,
- 71, 79, 76, 128, 83, 69, 71, 78, 79, 128, 83, 69, 71, 77, 69, 78, 84, 69,
- 196, 83, 69, 71, 77, 69, 78, 84, 128, 83, 69, 69, 86, 128, 83, 69, 69,
- 78, 85, 128, 83, 69, 69, 78, 128, 83, 69, 69, 206, 83, 69, 69, 68, 76,
- 73, 78, 71, 128, 83, 69, 69, 45, 78, 79, 45, 69, 86, 73, 204, 83, 69, 68,
- 78, 65, 128, 83, 69, 67, 84, 79, 82, 128, 83, 69, 67, 84, 73, 79, 78,
- 128, 83, 69, 67, 84, 73, 79, 206, 83, 69, 67, 82, 69, 84, 128, 83, 69,
- 67, 65, 78, 84, 128, 83, 69, 66, 65, 84, 66, 69, 73, 212, 83, 69, 65, 84,
- 128, 83, 69, 65, 76, 128, 83, 69, 65, 71, 85, 76, 204, 83, 69, 45, 53,
- 128, 83, 69, 45, 52, 128, 83, 69, 45, 51, 128, 83, 68, 79, 78, 199, 83,
- 68, 128, 83, 67, 87, 65, 128, 83, 67, 82, 85, 80, 76, 69, 128, 83, 67,
- 82, 79, 76, 76, 128, 83, 67, 82, 73, 80, 84, 128, 83, 67, 82, 69, 87, 68,
- 82, 73, 86, 69, 82, 128, 83, 67, 82, 69, 69, 78, 128, 83, 67, 82, 69, 69,
- 206, 83, 67, 82, 69, 65, 77, 73, 78, 199, 83, 67, 79, 82, 80, 73, 85, 83,
- 128, 83, 67, 79, 82, 80, 73, 79, 78, 128, 83, 67, 79, 82, 69, 128, 83,
- 67, 79, 79, 84, 69, 82, 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 67,
- 73, 128, 83, 67, 72, 87, 65, 128, 83, 67, 72, 87, 193, 83, 67, 72, 82,
- 79, 69, 68, 69, 82, 128, 83, 67, 72, 79, 79, 76, 128, 83, 67, 72, 79, 79,
- 204, 83, 67, 72, 79, 76, 65, 82, 128, 83, 67, 72, 69, 77, 193, 83, 67,
- 69, 80, 84, 69, 210, 83, 67, 65, 82, 70, 128, 83, 67, 65, 78, 68, 73, 67,
- 85, 83, 128, 83, 67, 65, 78, 68, 73, 67, 85, 211, 83, 67, 65, 206, 83,
- 67, 65, 76, 69, 83, 128, 83, 66, 85, 194, 83, 66, 82, 85, 204, 83, 65,
- 89, 73, 83, 201, 83, 65, 89, 65, 78, 78, 65, 128, 83, 65, 89, 128, 83,
- 65, 88, 79, 80, 72, 79, 78, 69, 128, 83, 65, 88, 73, 77, 65, 84, 65, 128,
- 83, 65, 87, 65, 78, 128, 83, 65, 87, 128, 83, 65, 86, 79, 85, 82, 73, 78,
- 199, 83, 65, 85, 82, 79, 80, 79, 68, 128, 83, 65, 85, 82, 65, 83, 72, 84,
- 82, 193, 83, 65, 85, 73, 76, 128, 83, 65, 85, 67, 69, 82, 128, 83, 65,
- 84, 85, 82, 78, 128, 83, 65, 84, 75, 65, 65, 78, 75, 85, 85, 128, 83, 65,
- 84, 75, 65, 65, 78, 128, 83, 65, 84, 69, 76, 76, 73, 84, 69, 128, 83, 65,
- 84, 69, 76, 76, 73, 84, 197, 83, 65, 84, 67, 72, 69, 76, 128, 83, 65, 84,
- 65, 78, 71, 65, 128, 83, 65, 83, 72, 128, 83, 65, 83, 65, 75, 128, 83,
- 65, 82, 73, 128, 83, 65, 82, 193, 83, 65, 82, 128, 83, 65, 81, 128, 83,
- 65, 80, 65, 128, 83, 65, 78, 89, 79, 79, 71, 193, 83, 65, 78, 89, 65, 75,
- 193, 83, 65, 78, 84, 73, 73, 77, 85, 128, 83, 65, 78, 83, 75, 82, 73,
- 212, 83, 65, 78, 78, 89, 65, 128, 83, 65, 78, 71, 65, 50, 128, 83, 65,
- 78, 68, 87, 73, 67, 72, 128, 83, 65, 78, 68, 72, 201, 83, 65, 78, 68, 65,
- 76, 128, 83, 65, 78, 65, 72, 128, 83, 65, 78, 128, 83, 65, 77, 89, 79,
- 203, 83, 65, 77, 86, 65, 84, 128, 83, 65, 77, 80, 73, 128, 83, 65, 77,
- 80, 72, 65, 79, 128, 83, 65, 77, 75, 65, 128, 83, 65, 77, 69, 75, 72,
- 128, 83, 65, 77, 69, 75, 200, 83, 65, 77, 66, 65, 128, 83, 65, 77, 65,
- 82, 73, 84, 65, 206, 83, 65, 77, 128, 83, 65, 76, 84, 73, 82, 69, 128,
- 83, 65, 76, 84, 73, 82, 197, 83, 65, 76, 84, 73, 76, 76, 79, 128, 83, 65,
- 76, 84, 45, 50, 128, 83, 65, 76, 84, 128, 83, 65, 76, 212, 83, 65, 76,
- 76, 65, 76, 76, 65, 72, 79, 213, 83, 65, 76, 76, 193, 83, 65, 76, 65,
- 205, 83, 65, 76, 65, 68, 128, 83, 65, 76, 65, 128, 83, 65, 76, 45, 65,
- 77, 77, 79, 78, 73, 65, 67, 128, 83, 65, 76, 128, 83, 65, 75, 84, 65,
- 128, 83, 65, 75, 79, 84, 128, 83, 65, 75, 73, 78, 128, 83, 65, 75, 72,
- 193, 83, 65, 75, 69, 85, 65, 69, 128, 83, 65, 75, 197, 83, 65, 74, 68,
- 65, 72, 128, 83, 65, 73, 76, 66, 79, 65, 84, 128, 83, 65, 73, 76, 128,
- 83, 65, 73, 75, 85, 82, 85, 128, 83, 65, 72, 128, 83, 65, 71, 73, 84, 84,
- 65, 82, 73, 85, 83, 128, 83, 65, 71, 65, 128, 83, 65, 71, 128, 83, 65,
- 199, 83, 65, 70, 72, 65, 128, 83, 65, 70, 69, 84, 217, 83, 65, 68, 72,
- 69, 128, 83, 65, 68, 72, 197, 83, 65, 68, 69, 128, 83, 65, 68, 128, 83,
- 65, 196, 83, 65, 67, 82, 73, 70, 73, 67, 73, 65, 204, 83, 65, 65, 73,
- 128, 83, 65, 65, 68, 72, 85, 128, 83, 65, 45, 73, 128, 83, 65, 45, 56,
- 128, 83, 65, 45, 55, 128, 83, 65, 45, 54, 128, 83, 65, 45, 53, 128, 83,
- 65, 45, 52, 128, 83, 65, 45, 51, 128, 83, 65, 45, 50, 128, 83, 65, 45,
- 49, 128, 83, 48, 52, 54, 128, 83, 48, 52, 53, 128, 83, 48, 52, 52, 128,
- 83, 48, 52, 51, 128, 83, 48, 52, 50, 128, 83, 48, 52, 49, 128, 83, 48,
- 52, 48, 128, 83, 48, 51, 57, 128, 83, 48, 51, 56, 128, 83, 48, 51, 55,
- 128, 83, 48, 51, 54, 128, 83, 48, 51, 53, 65, 128, 83, 48, 51, 53, 128,
- 83, 48, 51, 52, 128, 83, 48, 51, 51, 128, 83, 48, 51, 50, 128, 83, 48,
- 51, 49, 128, 83, 48, 51, 48, 128, 83, 48, 50, 57, 128, 83, 48, 50, 56,
- 128, 83, 48, 50, 55, 128, 83, 48, 50, 54, 66, 128, 83, 48, 50, 54, 65,
- 128, 83, 48, 50, 54, 128, 83, 48, 50, 53, 128, 83, 48, 50, 52, 128, 83,
- 48, 50, 51, 128, 83, 48, 50, 50, 128, 83, 48, 50, 49, 128, 83, 48, 50,
- 48, 128, 83, 48, 49, 57, 128, 83, 48, 49, 56, 128, 83, 48, 49, 55, 65,
- 128, 83, 48, 49, 55, 128, 83, 48, 49, 54, 128, 83, 48, 49, 53, 128, 83,
- 48, 49, 52, 66, 128, 83, 48, 49, 52, 65, 128, 83, 48, 49, 52, 128, 83,
- 48, 49, 51, 128, 83, 48, 49, 50, 128, 83, 48, 49, 49, 128, 83, 48, 49,
- 48, 128, 83, 48, 48, 57, 128, 83, 48, 48, 56, 128, 83, 48, 48, 55, 128,
- 83, 48, 48, 54, 65, 128, 83, 48, 48, 54, 128, 83, 48, 48, 53, 128, 83,
- 48, 48, 52, 128, 83, 48, 48, 51, 128, 83, 48, 48, 50, 65, 128, 83, 48,
- 48, 50, 128, 83, 48, 48, 49, 128, 83, 45, 87, 128, 83, 45, 83, 72, 65,
- 80, 69, 196, 82, 89, 89, 128, 82, 89, 88, 128, 82, 89, 84, 128, 82, 89,
- 82, 88, 128, 82, 89, 82, 128, 82, 89, 80, 128, 82, 87, 79, 79, 128, 82,
- 87, 79, 128, 82, 87, 73, 73, 128, 82, 87, 73, 128, 82, 87, 69, 69, 128,
- 82, 87, 69, 128, 82, 87, 65, 72, 65, 128, 82, 87, 65, 65, 128, 82, 87,
- 65, 128, 82, 85, 88, 128, 82, 85, 85, 66, 85, 82, 85, 128, 82, 85, 85,
- 128, 82, 85, 84, 128, 82, 85, 83, 83, 73, 65, 206, 82, 85, 83, 73, 128,
- 82, 85, 82, 88, 128, 82, 85, 82, 128, 82, 85, 80, 73, 73, 128, 82, 85,
- 80, 69, 197, 82, 85, 80, 128, 82, 85, 79, 88, 128, 82, 85, 79, 80, 128,
- 82, 85, 79, 128, 82, 85, 78, 79, 85, 84, 128, 82, 85, 78, 78, 73, 78,
- 199, 82, 85, 78, 78, 69, 82, 128, 82, 85, 78, 73, 195, 82, 85, 78, 128,
- 82, 85, 77, 201, 82, 85, 77, 65, 201, 82, 85, 77, 128, 82, 85, 205, 82,
- 85, 76, 69, 82, 128, 82, 85, 76, 69, 45, 68, 69, 76, 65, 89, 69, 68, 128,
- 82, 85, 76, 69, 128, 82, 85, 76, 65, 73, 128, 82, 85, 75, 75, 65, 75, 72,
- 65, 128, 82, 85, 73, 83, 128, 82, 85, 71, 66, 217, 82, 85, 68, 73, 77,
- 69, 78, 84, 193, 82, 85, 66, 76, 197, 82, 85, 194, 82, 85, 65, 128, 82,
- 85, 45, 54, 128, 82, 85, 45, 53, 128, 82, 85, 45, 52, 128, 82, 85, 45,
- 51, 128, 82, 85, 45, 50, 128, 82, 85, 45, 49, 128, 82, 84, 72, 65, 78,
- 199, 82, 84, 69, 128, 82, 84, 65, 71, 83, 128, 82, 84, 65, 71, 211, 82,
- 82, 89, 88, 128, 82, 82, 89, 84, 128, 82, 82, 89, 82, 88, 128, 82, 82,
- 89, 82, 128, 82, 82, 89, 80, 128, 82, 82, 85, 88, 128, 82, 82, 85, 85,
- 128, 82, 82, 85, 84, 128, 82, 82, 85, 82, 88, 128, 82, 82, 85, 82, 128,
- 82, 82, 85, 80, 128, 82, 82, 85, 79, 88, 128, 82, 82, 85, 79, 128, 82,
- 82, 85, 128, 82, 82, 82, 65, 128, 82, 82, 79, 88, 128, 82, 82, 79, 84,
- 128, 82, 82, 79, 80, 128, 82, 82, 79, 79, 128, 82, 82, 79, 128, 82, 82,
- 73, 73, 128, 82, 82, 73, 128, 82, 82, 69, 88, 128, 82, 82, 69, 84, 128,
- 82, 82, 69, 80, 128, 82, 82, 69, 72, 128, 82, 82, 69, 200, 82, 82, 69,
- 69, 128, 82, 82, 69, 128, 82, 82, 65, 88, 128, 82, 82, 65, 85, 128, 82,
- 82, 65, 73, 128, 82, 82, 65, 65, 128, 82, 79, 87, 66, 79, 65, 84, 128,
- 82, 79, 85, 78, 68, 69, 196, 82, 79, 85, 78, 68, 45, 84, 73, 80, 80, 69,
- 196, 82, 79, 84, 85, 78, 68, 65, 128, 82, 79, 84, 65, 84, 73, 79, 78, 83,
- 128, 82, 79, 84, 65, 84, 73, 79, 78, 45, 87, 65, 76, 76, 80, 76, 65, 78,
- 197, 82, 79, 84, 65, 84, 73, 79, 78, 45, 70, 76, 79, 79, 82, 80, 76, 65,
- 78, 197, 82, 79, 84, 65, 84, 73, 79, 78, 128, 82, 79, 84, 65, 84, 73, 79,
- 206, 82, 79, 84, 65, 84, 69, 196, 82, 79, 83, 72, 128, 82, 79, 83, 69,
- 84, 84, 69, 128, 82, 79, 83, 69, 128, 82, 79, 79, 84, 128, 82, 79, 79,
- 83, 84, 69, 82, 128, 82, 79, 79, 77, 128, 82, 79, 79, 75, 128, 82, 79,
- 79, 203, 82, 79, 79, 70, 128, 82, 79, 77, 65, 78, 73, 65, 206, 82, 79,
- 77, 65, 206, 82, 79, 77, 128, 82, 79, 76, 76, 73, 78, 199, 82, 79, 76,
- 76, 69, 210, 82, 79, 76, 76, 69, 68, 45, 85, 208, 82, 79, 76, 204, 82,
- 79, 72, 73, 78, 71, 89, 193, 82, 79, 71, 128, 82, 79, 196, 82, 79, 67,
- 75, 69, 84, 128, 82, 79, 67, 203, 82, 79, 67, 128, 82, 79, 66, 79, 212,
- 82, 79, 66, 65, 84, 128, 82, 79, 65, 83, 84, 69, 196, 82, 79, 65, 82,
- 128, 82, 79, 65, 128, 82, 79, 45, 54, 128, 82, 79, 45, 53, 128, 82, 79,
- 45, 52, 128, 82, 79, 45, 51, 128, 82, 79, 45, 50, 128, 82, 79, 45, 49,
- 128, 82, 78, 89, 73, 78, 199, 82, 78, 79, 79, 78, 128, 82, 78, 79, 79,
- 206, 82, 78, 65, 205, 82, 77, 84, 128, 82, 76, 79, 128, 82, 76, 77, 128,
- 82, 76, 73, 128, 82, 76, 69, 128, 82, 74, 69, 211, 82, 74, 69, 128, 82,
- 74, 197, 82, 73, 84, 85, 65, 76, 128, 82, 73, 84, 84, 79, 82, 85, 128,
- 82, 73, 84, 83, 73, 128, 82, 73, 83, 73, 78, 199, 82, 73, 83, 72, 128,
- 82, 73, 82, 65, 128, 82, 73, 80, 80, 76, 197, 82, 73, 80, 128, 82, 73,
- 78, 71, 211, 82, 73, 78, 71, 73, 78, 199, 82, 73, 78, 71, 69, 196, 82,
- 73, 78, 70, 79, 82, 90, 65, 78, 68, 79, 128, 82, 73, 206, 82, 73, 77, 71,
- 66, 65, 128, 82, 73, 77, 128, 82, 73, 75, 82, 73, 75, 128, 82, 73, 71,
- 86, 69, 68, 73, 195, 82, 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, 82, 73,
- 71, 72, 84, 72, 65, 78, 196, 82, 73, 71, 72, 84, 45, 84, 79, 45, 76, 69,
- 70, 212, 82, 73, 71, 72, 84, 45, 83, 73, 68, 197, 82, 73, 71, 72, 84, 45,
- 83, 72, 65, 68, 79, 87, 69, 196, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68,
- 69, 196, 82, 73, 71, 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 82, 73,
- 71, 72, 84, 45, 76, 73, 71, 72, 84, 69, 196, 82, 73, 71, 72, 84, 45, 72,
- 65, 78, 68, 69, 196, 82, 73, 71, 72, 84, 45, 72, 65, 78, 196, 82, 73, 71,
- 72, 84, 45, 70, 65, 67, 73, 78, 199, 82, 73, 71, 72, 84, 128, 82, 73, 70,
- 76, 69, 128, 82, 73, 69, 85, 76, 45, 89, 69, 83, 73, 69, 85, 78, 71, 128,
- 82, 73, 69, 85, 76, 45, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 45,
- 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 89, 69, 79, 82, 73, 78,
- 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, 85, 84,
- 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, 85,
- 84, 128, 82, 73, 69, 85, 76, 45, 84, 72, 73, 69, 85, 84, 72, 128, 82, 73,
- 69, 85, 76, 45, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 128, 82, 73,
- 69, 85, 76, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 82, 73, 69, 85,
- 76, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76,
- 45, 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76,
- 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45,
- 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80,
- 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45,
- 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85,
- 80, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85,
- 80, 128, 82, 73, 69, 85, 76, 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73,
- 69, 85, 76, 45, 80, 65, 78, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45,
- 78, 73, 69, 85, 78, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45,
- 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45, 75,
- 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45,
- 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 128,
- 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 128,
- 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, 45, 72, 73, 69, 85, 72,
- 128, 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85,
- 76, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80, 128, 82, 73,
- 69, 85, 76, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 67, 73,
- 69, 85, 67, 128, 82, 73, 69, 85, 204, 82, 73, 69, 76, 128, 82, 73, 69,
- 69, 128, 82, 73, 67, 75, 83, 72, 65, 87, 128, 82, 73, 67, 69, 77, 128,
- 82, 73, 67, 69, 128, 82, 73, 67, 197, 82, 73, 66, 66, 79, 78, 128, 82,
- 73, 66, 66, 79, 206, 82, 73, 65, 204, 82, 73, 45, 55, 128, 82, 73, 45,
- 54, 128, 82, 73, 45, 53, 128, 82, 73, 45, 52, 128, 82, 73, 45, 51, 128,
- 82, 73, 45, 50, 128, 82, 73, 45, 49, 128, 82, 72, 79, 84, 73, 195, 82,
- 72, 79, 128, 82, 72, 207, 82, 72, 73, 78, 79, 67, 69, 82, 79, 83, 128,
- 82, 72, 65, 128, 82, 72, 128, 82, 71, 89, 73, 78, 71, 83, 128, 82, 71,
- 89, 65, 78, 128, 82, 71, 89, 193, 82, 69, 86, 79, 76, 86, 73, 78, 199,
- 82, 69, 86, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 77, 65, 128, 82,
- 69, 86, 73, 65, 128, 82, 69, 86, 69, 82, 83, 69, 68, 45, 83, 67, 72, 87,
- 65, 128, 82, 69, 86, 69, 82, 83, 69, 68, 128, 82, 69, 86, 69, 82, 83, 69,
- 196, 82, 69, 86, 69, 82, 83, 197, 82, 69, 85, 88, 128, 82, 69, 85, 128,
- 82, 69, 84, 85, 82, 78, 128, 82, 69, 84, 85, 82, 206, 82, 69, 84, 82, 79,
- 70, 76, 69, 216, 82, 69, 84, 82, 69, 65, 84, 128, 82, 69, 84, 79, 82, 84,
- 128, 82, 69, 83, 85, 80, 73, 78, 85, 83, 128, 82, 69, 83, 84, 82, 79, 79,
- 77, 128, 82, 69, 83, 84, 82, 73, 67, 84, 69, 196, 82, 69, 83, 84, 128,
- 82, 69, 83, 80, 79, 78, 83, 69, 128, 82, 69, 83, 79, 85, 82, 67, 69, 128,
- 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 83, 73, 83, 84, 65,
- 78, 67, 69, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69, 83, 72,
- 45, 65, 89, 73, 78, 45, 68, 65, 76, 69, 84, 72, 128, 82, 69, 83, 72, 45,
- 65, 89, 73, 78, 128, 82, 69, 83, 200, 82, 69, 82, 69, 78, 71, 71, 65, 78,
- 128, 82, 69, 82, 69, 75, 65, 78, 128, 82, 69, 80, 82, 69, 83, 69, 78, 84,
- 128, 82, 69, 80, 76, 65, 67, 69, 77, 69, 78, 212, 82, 69, 80, 72, 65,
- 128, 82, 69, 80, 72, 128, 82, 69, 80, 69, 84, 73, 84, 73, 79, 206, 82,
- 69, 80, 69, 65, 84, 69, 196, 82, 69, 80, 69, 65, 84, 128, 82, 69, 80, 69,
- 65, 212, 82, 69, 80, 65, 89, 65, 128, 82, 69, 80, 65, 128, 82, 69, 80,
- 193, 82, 69, 78, 84, 79, 71, 69, 78, 128, 82, 69, 78, 128, 82, 69, 206,
- 82, 69, 77, 85, 128, 82, 69, 77, 73, 78, 68, 69, 210, 82, 69, 77, 69, 68,
- 89, 128, 82, 69, 76, 73, 71, 73, 79, 78, 128, 82, 69, 76, 73, 69, 86, 69,
- 196, 82, 69, 76, 69, 65, 83, 69, 128, 82, 69, 76, 65, 88, 69, 68, 128,
- 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 76, 65, 84, 73, 79, 78,
- 128, 82, 69, 76, 65, 65, 128, 82, 69, 74, 65, 78, 199, 82, 69, 73, 87,
- 65, 128, 82, 69, 73, 196, 82, 69, 73, 128, 82, 69, 71, 85, 76, 85, 83,
- 45, 52, 128, 82, 69, 71, 85, 76, 85, 83, 45, 51, 128, 82, 69, 71, 85, 76,
- 85, 83, 45, 50, 128, 82, 69, 71, 85, 76, 85, 83, 128, 82, 69, 71, 85, 76,
- 85, 211, 82, 69, 71, 73, 83, 84, 69, 82, 69, 196, 82, 69, 71, 73, 79, 78,
- 65, 204, 82, 69, 71, 73, 65, 45, 50, 128, 82, 69, 71, 73, 65, 128, 82,
- 69, 70, 79, 82, 77, 69, 196, 82, 69, 70, 69, 82, 69, 78, 67, 197, 82, 69,
- 68, 85, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 82, 69, 67, 89, 67, 76,
- 73, 78, 199, 82, 69, 67, 89, 67, 76, 69, 196, 82, 69, 67, 84, 73, 76, 73,
- 78, 69, 65, 210, 82, 69, 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67,
- 84, 65, 78, 71, 76, 69, 128, 82, 69, 67, 84, 65, 78, 71, 76, 197, 82, 69,
- 67, 82, 69, 65, 84, 73, 79, 78, 65, 204, 82, 69, 67, 79, 82, 68, 73, 78,
- 199, 82, 69, 67, 79, 82, 68, 69, 82, 128, 82, 69, 67, 79, 82, 68, 128,
- 82, 69, 67, 79, 82, 196, 82, 69, 67, 73, 84, 65, 84, 73, 86, 197, 82, 69,
- 67, 69, 80, 84, 73, 86, 197, 82, 69, 67, 69, 73, 86, 69, 82, 128, 82, 69,
- 67, 69, 73, 86, 69, 210, 82, 69, 67, 69, 73, 80, 84, 128, 82, 69, 65, 76,
- 71, 65, 82, 45, 50, 128, 82, 69, 65, 76, 71, 65, 82, 128, 82, 69, 65, 72,
- 77, 85, 75, 128, 82, 69, 65, 68, 73, 78, 199, 82, 69, 65, 67, 72, 128,
- 82, 69, 45, 52, 128, 82, 69, 45, 51, 128, 82, 69, 45, 50, 128, 82, 69,
- 45, 49, 128, 82, 68, 207, 82, 68, 69, 204, 82, 66, 65, 83, 193, 82, 65,
- 90, 79, 82, 128, 82, 65, 89, 83, 128, 82, 65, 89, 211, 82, 65, 89, 65,
- 78, 78, 65, 128, 82, 65, 84, 73, 79, 128, 82, 65, 84, 72, 65, 128, 82,
- 65, 84, 72, 193, 82, 65, 84, 65, 128, 82, 65, 84, 128, 82, 65, 83, 87,
- 65, 68, 73, 128, 82, 65, 83, 79, 85, 204, 82, 65, 83, 72, 65, 128, 82,
- 65, 81, 128, 82, 65, 80, 73, 83, 77, 65, 128, 82, 65, 78, 71, 197, 82,
- 65, 78, 65, 128, 82, 65, 78, 128, 82, 65, 77, 211, 82, 65, 77, 66, 65,
- 84, 128, 82, 65, 75, 72, 65, 78, 71, 128, 82, 65, 75, 65, 65, 82, 65, 65,
- 78, 83, 65, 89, 65, 128, 82, 65, 73, 83, 73, 78, 199, 82, 65, 73, 83, 69,
- 68, 128, 82, 65, 73, 83, 69, 196, 82, 65, 73, 78, 66, 79, 87, 128, 82,
- 65, 73, 76, 87, 65, 89, 128, 82, 65, 73, 76, 87, 65, 217, 82, 65, 73, 76,
- 128, 82, 65, 73, 68, 207, 82, 65, 73, 68, 65, 128, 82, 65, 72, 77, 65,
- 84, 85, 76, 76, 65, 200, 82, 65, 72, 128, 82, 65, 70, 69, 128, 82, 65,
- 69, 77, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86, 197, 82, 65, 68, 73,
- 79, 128, 82, 65, 68, 73, 207, 82, 65, 68, 201, 82, 65, 68, 128, 82, 65,
- 196, 82, 65, 67, 81, 85, 69, 212, 82, 65, 67, 73, 78, 71, 128, 82, 65,
- 67, 73, 78, 199, 82, 65, 67, 67, 79, 79, 78, 128, 82, 65, 66, 66, 73, 84,
- 128, 82, 65, 66, 66, 73, 212, 82, 65, 66, 128, 82, 65, 65, 73, 128, 82,
- 65, 51, 128, 82, 65, 50, 128, 82, 65, 45, 75, 65, 82, 65, 128, 82, 65,
- 45, 52, 128, 82, 65, 45, 51, 128, 82, 65, 45, 50, 128, 82, 65, 45, 49,
- 128, 82, 48, 50, 57, 128, 82, 48, 50, 56, 128, 82, 48, 50, 55, 128, 82,
- 48, 50, 54, 128, 82, 48, 50, 53, 128, 82, 48, 50, 52, 128, 82, 48, 50,
- 51, 128, 82, 48, 50, 50, 128, 82, 48, 50, 49, 128, 82, 48, 50, 48, 128,
- 82, 48, 49, 57, 128, 82, 48, 49, 56, 128, 82, 48, 49, 55, 128, 82, 48,
- 49, 54, 65, 128, 82, 48, 49, 54, 128, 82, 48, 49, 53, 128, 82, 48, 49,
- 52, 128, 82, 48, 49, 51, 128, 82, 48, 49, 50, 128, 82, 48, 49, 49, 128,
- 82, 48, 49, 48, 65, 128, 82, 48, 49, 48, 128, 82, 48, 48, 57, 128, 82,
- 48, 48, 56, 128, 82, 48, 48, 55, 128, 82, 48, 48, 54, 128, 82, 48, 48,
- 53, 128, 82, 48, 48, 52, 128, 82, 48, 48, 51, 66, 128, 82, 48, 48, 51,
- 65, 128, 82, 48, 48, 51, 128, 82, 48, 48, 50, 65, 128, 82, 48, 48, 50,
- 128, 82, 48, 48, 49, 128, 82, 45, 67, 82, 69, 197, 81, 89, 88, 128, 81,
- 89, 85, 128, 81, 89, 84, 128, 81, 89, 82, 88, 128, 81, 89, 82, 128, 81,
- 89, 80, 128, 81, 89, 79, 128, 81, 89, 73, 128, 81, 89, 69, 69, 128, 81,
- 89, 69, 128, 81, 89, 65, 65, 128, 81, 89, 65, 128, 81, 89, 128, 81, 87,
- 73, 128, 81, 87, 69, 69, 128, 81, 87, 69, 128, 81, 87, 65, 65, 128, 81,
- 87, 65, 128, 81, 85, 88, 128, 81, 85, 86, 128, 81, 85, 85, 86, 128, 81,
- 85, 85, 128, 81, 85, 84, 128, 81, 85, 83, 72, 83, 72, 65, 89, 65, 128,
- 81, 85, 82, 88, 128, 81, 85, 82, 128, 81, 85, 80, 128, 81, 85, 79, 88,
- 128, 81, 85, 79, 84, 197, 81, 85, 79, 84, 65, 84, 73, 79, 206, 81, 85,
- 79, 84, 128, 81, 85, 79, 80, 128, 81, 85, 79, 128, 81, 85, 75, 128, 81,
- 85, 73, 78, 84, 73, 76, 69, 128, 81, 85, 73, 78, 84, 69, 83, 83, 69, 78,
- 67, 69, 128, 81, 85, 73, 78, 68, 73, 67, 69, 83, 73, 77, 193, 81, 85, 73,
- 78, 67, 85, 78, 88, 128, 81, 85, 73, 78, 65, 82, 73, 85, 211, 81, 85, 73,
- 76, 212, 81, 85, 73, 76, 76, 128, 81, 85, 73, 67, 203, 81, 85, 73, 128,
- 81, 85, 70, 128, 81, 85, 69, 83, 84, 73, 79, 78, 69, 196, 81, 85, 69, 83,
- 84, 73, 79, 78, 128, 81, 85, 69, 83, 84, 73, 79, 206, 81, 85, 69, 69, 78,
- 128, 81, 85, 69, 69, 206, 81, 85, 69, 128, 81, 85, 66, 85, 84, 83, 128,
- 81, 85, 65, 84, 69, 82, 78, 73, 79, 206, 81, 85, 65, 82, 84, 69, 82, 83,
- 128, 81, 85, 65, 82, 84, 69, 82, 211, 81, 85, 65, 82, 84, 69, 82, 128,
- 81, 85, 65, 78, 84, 73, 84, 217, 81, 85, 65, 68, 82, 85, 80, 76, 197, 81,
- 85, 65, 68, 82, 65, 78, 84, 128, 81, 85, 65, 68, 82, 65, 78, 212, 81, 85,
- 65, 68, 67, 79, 76, 79, 78, 128, 81, 85, 65, 68, 128, 81, 85, 65, 196,
- 81, 85, 65, 128, 81, 85, 128, 81, 208, 81, 79, 88, 128, 81, 79, 84, 128,
- 81, 79, 80, 72, 128, 81, 79, 80, 65, 128, 81, 79, 80, 128, 81, 79, 79,
- 128, 81, 79, 207, 81, 79, 70, 128, 81, 79, 198, 81, 79, 65, 128, 81, 79,
- 128, 81, 78, 128, 81, 73, 88, 128, 81, 73, 84, 83, 65, 128, 81, 73, 84,
- 128, 81, 73, 80, 128, 81, 73, 73, 128, 81, 73, 70, 128, 81, 73, 69, 88,
- 128, 81, 73, 69, 84, 128, 81, 73, 69, 80, 128, 81, 73, 69, 128, 81, 73,
- 128, 81, 72, 87, 73, 128, 81, 72, 87, 69, 69, 128, 81, 72, 87, 69, 128,
- 81, 72, 87, 65, 65, 128, 81, 72, 87, 65, 128, 81, 72, 85, 128, 81, 72,
- 79, 80, 72, 128, 81, 72, 79, 128, 81, 72, 73, 128, 81, 72, 69, 69, 128,
- 81, 72, 69, 128, 81, 72, 65, 85, 128, 81, 72, 65, 65, 128, 81, 72, 65,
- 128, 81, 71, 65, 128, 81, 69, 84, 65, 78, 65, 128, 81, 69, 69, 128, 81,
- 69, 128, 81, 65, 89, 128, 81, 65, 85, 128, 81, 65, 84, 65, 78, 128, 81,
- 65, 82, 78, 69, 217, 81, 65, 82, 128, 81, 65, 81, 128, 81, 65, 80, 72,
- 128, 81, 65, 77, 65, 84, 83, 128, 81, 65, 77, 65, 84, 211, 81, 65, 76,
- 193, 81, 65, 73, 82, 84, 72, 82, 65, 128, 81, 65, 73, 128, 81, 65, 70,
- 128, 81, 65, 198, 81, 65, 68, 77, 65, 128, 81, 65, 65, 73, 128, 81, 65,
- 65, 70, 85, 128, 81, 65, 65, 70, 128, 81, 48, 48, 55, 128, 81, 48, 48,
- 54, 128, 81, 48, 48, 53, 128, 81, 48, 48, 52, 128, 81, 48, 48, 51, 128,
- 81, 48, 48, 50, 128, 81, 48, 48, 49, 128, 80, 90, 128, 80, 89, 88, 128,
- 80, 89, 84, 128, 80, 89, 82, 88, 128, 80, 89, 82, 128, 80, 89, 80, 128,
- 80, 87, 79, 89, 128, 80, 87, 79, 79, 128, 80, 87, 79, 128, 80, 87, 207,
- 80, 87, 73, 73, 128, 80, 87, 73, 128, 80, 87, 69, 69, 128, 80, 87, 69,
- 128, 80, 87, 65, 65, 128, 80, 87, 128, 80, 86, 128, 80, 85, 90, 90, 76,
- 197, 80, 85, 88, 128, 80, 85, 85, 84, 128, 80, 85, 85, 128, 80, 85, 84,
- 82, 69, 70, 65, 67, 84, 73, 79, 78, 128, 80, 85, 84, 128, 80, 85, 212,
- 80, 85, 83, 72, 80, 73, 78, 128, 80, 85, 83, 72, 80, 73, 75, 65, 128, 80,
- 85, 83, 72, 73, 78, 199, 80, 85, 82, 88, 128, 80, 85, 82, 83, 69, 128,
- 80, 85, 82, 80, 76, 197, 80, 85, 82, 78, 65, 77, 65, 128, 80, 85, 82, 73,
- 84, 89, 128, 80, 85, 82, 73, 70, 89, 128, 80, 85, 82, 128, 80, 85, 81,
- 128, 80, 85, 80, 128, 80, 85, 79, 88, 128, 80, 85, 79, 80, 128, 80, 85,
- 79, 128, 80, 85, 78, 71, 65, 65, 77, 128, 80, 85, 78, 71, 128, 80, 85,
- 78, 67, 84, 85, 211, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 78, 128, 80,
- 85, 78, 67, 84, 85, 65, 84, 73, 79, 206, 80, 85, 77, 80, 128, 80, 85, 77,
- 128, 80, 85, 70, 70, 69, 68, 128, 80, 85, 69, 128, 80, 85, 67, 75, 128,
- 80, 85, 66, 76, 73, 195, 80, 85, 194, 80, 85, 65, 81, 128, 80, 85, 65,
- 69, 128, 80, 85, 65, 67, 72, 85, 197, 80, 85, 50, 128, 80, 85, 49, 128,
- 80, 85, 128, 80, 84, 72, 65, 72, 193, 80, 84, 69, 128, 80, 83, 73, 76,
- 201, 80, 83, 73, 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77, 65, 128, 80,
- 83, 73, 70, 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65,
- 128, 80, 83, 73, 70, 73, 83, 84, 79, 206, 80, 83, 73, 70, 73, 83, 84, 79,
- 76, 89, 71, 73, 83, 77, 65, 128, 80, 83, 73, 128, 80, 83, 65, 76, 84, 69,
- 210, 80, 83, 128, 80, 82, 79, 86, 69, 128, 80, 82, 79, 84, 79, 86, 65,
- 82, 89, 211, 80, 82, 79, 84, 79, 211, 80, 82, 79, 84, 69, 67, 84, 69,
- 196, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 80, 82,
- 79, 83, 69, 82, 80, 73, 78, 65, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79,
- 78, 65, 204, 80, 82, 79, 80, 79, 82, 84, 73, 79, 78, 128, 80, 82, 79, 80,
- 69, 82, 84, 217, 80, 82, 79, 80, 69, 76, 76, 69, 210, 80, 82, 79, 79, 70,
- 128, 80, 82, 79, 76, 79, 78, 71, 69, 196, 80, 82, 79, 76, 65, 84, 73, 79,
- 78, 197, 80, 82, 79, 74, 69, 67, 84, 79, 82, 128, 80, 82, 79, 74, 69, 67,
- 84, 73, 86, 69, 128, 80, 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82,
- 79, 72, 73, 66, 73, 84, 69, 196, 80, 82, 79, 71, 82, 69, 83, 83, 128, 80,
- 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79,
- 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, 67, 212, 80, 82, 79, 66, 73, 78,
- 199, 80, 82, 73, 86, 65, 84, 69, 128, 80, 82, 73, 86, 65, 84, 197, 80,
- 82, 73, 86, 65, 67, 217, 80, 82, 73, 83, 72, 84, 72, 65, 77, 65, 84, 82,
- 193, 80, 82, 73, 78, 84, 83, 128, 80, 82, 73, 78, 84, 69, 82, 128, 80,
- 82, 73, 78, 84, 69, 210, 80, 82, 73, 78, 84, 128, 80, 82, 73, 78, 212,
- 80, 82, 73, 78, 67, 69, 83, 83, 128, 80, 82, 73, 78, 67, 69, 128, 80, 82,
- 73, 77, 69, 128, 80, 82, 73, 77, 197, 80, 82, 69, 86, 73, 79, 85, 211,
- 80, 82, 69, 84, 90, 69, 76, 128, 80, 82, 69, 83, 83, 69, 196, 80, 82, 69,
- 83, 69, 84, 128, 80, 82, 69, 83, 69, 78, 84, 65, 84, 73, 79, 206, 80, 82,
- 69, 83, 67, 82, 73, 80, 84, 73, 79, 206, 80, 82, 69, 80, 79, 78, 68, 69,
- 82, 65, 78, 67, 69, 128, 80, 82, 69, 78, 75, 72, 65, 128, 80, 82, 69, 71,
- 78, 65, 78, 212, 80, 82, 69, 70, 73, 88, 69, 196, 80, 82, 69, 70, 65, 67,
- 197, 80, 82, 69, 67, 73, 80, 73, 84, 65, 84, 69, 128, 80, 82, 69, 67, 69,
- 68, 73, 78, 199, 80, 82, 69, 67, 69, 68, 69, 83, 128, 80, 82, 69, 67, 69,
- 68, 69, 211, 80, 82, 69, 67, 69, 68, 69, 196, 80, 82, 69, 67, 69, 68, 69,
- 128, 80, 82, 69, 67, 69, 68, 197, 80, 82, 65, 89, 69, 210, 80, 82, 65,
- 77, 45, 80, 73, 73, 128, 80, 82, 65, 77, 45, 80, 73, 201, 80, 82, 65, 77,
- 45, 77, 85, 79, 89, 128, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 65,
- 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 66, 85, 79, 206, 80, 82,
- 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 66, 69, 201, 80, 82, 65,
- 77, 128, 80, 82, 65, 205, 80, 82, 128, 80, 80, 86, 128, 80, 80, 77, 128,
- 80, 80, 65, 128, 80, 79, 89, 128, 80, 79, 88, 128, 80, 79, 87, 69, 82,
- 211, 80, 79, 87, 69, 82, 128, 80, 79, 87, 69, 210, 80, 79, 87, 68, 69,
- 82, 69, 196, 80, 79, 87, 68, 69, 82, 128, 80, 79, 85, 78, 196, 80, 79,
- 85, 76, 84, 82, 217, 80, 79, 85, 67, 72, 128, 80, 79, 84, 84, 69, 196,
- 80, 79, 84, 65, 84, 79, 128, 80, 79, 84, 65, 66, 76, 197, 80, 79, 212,
- 80, 79, 83, 84, 80, 79, 83, 73, 84, 73, 79, 206, 80, 79, 83, 84, 66, 79,
- 88, 128, 80, 79, 83, 84, 65, 204, 80, 79, 83, 84, 128, 80, 79, 83, 212,
- 80, 79, 83, 83, 69, 83, 83, 73, 79, 78, 128, 80, 79, 83, 83, 69, 83, 83,
- 73, 79, 206, 80, 79, 83, 73, 84, 73, 79, 78, 83, 128, 80, 79, 83, 73, 84,
- 73, 79, 78, 128, 80, 79, 83, 69, 73, 68, 79, 78, 128, 80, 79, 82, 84, 65,
- 66, 76, 197, 80, 79, 82, 82, 69, 67, 84, 85, 83, 128, 80, 79, 82, 82, 69,
- 67, 84, 85, 211, 80, 79, 80, 80, 73, 78, 199, 80, 79, 80, 80, 69, 82,
- 128, 80, 79, 80, 67, 79, 82, 78, 128, 80, 79, 80, 128, 80, 79, 208, 80,
- 79, 79, 68, 76, 69, 128, 80, 79, 79, 128, 80, 79, 78, 68, 79, 128, 80,
- 79, 206, 80, 79, 77, 77, 69, 69, 128, 80, 79, 77, 77, 69, 197, 80, 79,
- 76, 79, 128, 80, 79, 76, 73, 83, 72, 128, 80, 79, 76, 73, 67, 197, 80,
- 79, 76, 201, 80, 79, 76, 69, 128, 80, 79, 76, 197, 80, 79, 75, 82, 89,
- 84, 73, 69, 128, 80, 79, 75, 79, 74, 73, 128, 80, 79, 73, 78, 84, 211,
- 80, 79, 73, 78, 84, 79, 128, 80, 79, 73, 78, 84, 69, 82, 128, 80, 79, 73,
- 78, 84, 69, 196, 80, 79, 73, 78, 84, 128, 80, 79, 73, 78, 212, 80, 79,
- 69, 84, 82, 217, 80, 79, 69, 84, 73, 195, 80, 79, 68, 65, 84, 85, 83,
- 128, 80, 79, 67, 75, 69, 212, 80, 79, 65, 128, 80, 79, 128, 80, 207, 80,
- 78, 69, 85, 77, 65, 84, 65, 128, 80, 76, 85, 84, 207, 80, 76, 85, 84, 65,
- 128, 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 76, 85, 83, 128, 80,
- 76, 85, 82, 65, 76, 128, 80, 76, 85, 78, 71, 69, 82, 128, 80, 76, 85, 77,
- 69, 196, 80, 76, 85, 77, 128, 80, 76, 85, 75, 128, 80, 76, 85, 71, 128,
- 80, 76, 85, 128, 80, 76, 79, 87, 128, 80, 76, 79, 80, 72, 85, 128, 80,
- 76, 72, 65, 85, 128, 80, 76, 69, 84, 72, 82, 79, 78, 128, 80, 76, 69, 65,
- 68, 73, 78, 199, 80, 76, 68, 128, 80, 76, 65, 89, 73, 78, 199, 80, 76,
- 65, 84, 69, 128, 80, 76, 65, 83, 84, 73, 67, 83, 128, 80, 76, 65, 78, 84,
- 128, 80, 76, 65, 78, 69, 84, 128, 80, 76, 65, 78, 69, 128, 80, 76, 65,
- 78, 67, 203, 80, 76, 65, 75, 128, 80, 76, 65, 71, 73, 79, 211, 80, 76,
- 65, 67, 69, 72, 79, 76, 68, 69, 82, 128, 80, 76, 65, 67, 69, 72, 79, 76,
- 68, 69, 210, 80, 76, 65, 67, 197, 80, 76, 65, 67, 65, 82, 68, 128, 80,
- 76, 65, 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, 80, 73, 90, 90, 65,
- 128, 80, 73, 88, 128, 80, 73, 87, 82, 128, 80, 73, 84, 67, 72, 70, 79,
- 82, 75, 128, 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 73, 84, 128, 80,
- 73, 83, 84, 79, 76, 128, 80, 73, 83, 69, 76, 69, 72, 128, 80, 73, 83, 67,
- 69, 83, 128, 80, 73, 82, 73, 71, 128, 80, 73, 82, 73, 199, 80, 73, 82,
- 73, 69, 69, 78, 128, 80, 73, 82, 65, 67, 89, 128, 80, 73, 82, 50, 128,
- 80, 73, 80, 73, 78, 71, 128, 80, 73, 80, 65, 69, 77, 71, 66, 73, 69, 69,
- 128, 80, 73, 80, 65, 69, 77, 66, 65, 128, 80, 73, 80, 128, 80, 73, 78,
- 87, 72, 69, 69, 204, 80, 73, 78, 69, 65, 80, 80, 76, 69, 128, 80, 73, 78,
- 197, 80, 73, 78, 67, 72, 73, 78, 199, 80, 73, 78, 67, 72, 69, 196, 80,
- 73, 78, 65, 84, 65, 128, 80, 73, 78, 65, 82, 66, 79, 82, 65, 83, 128, 80,
- 73, 76, 76, 128, 80, 73, 76, 197, 80, 73, 76, 67, 82, 79, 215, 80, 73,
- 75, 85, 82, 85, 128, 80, 73, 75, 79, 128, 80, 73, 71, 128, 80, 73, 199,
- 80, 73, 69, 88, 128, 80, 73, 69, 85, 80, 45, 84, 72, 73, 69, 85, 84, 72,
- 128, 80, 73, 69, 85, 80, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80,
- 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 80,
- 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128,
- 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 80,
- 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 80,
- 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 80, 73,
- 69, 85, 80, 45, 82, 73, 69, 85, 76, 45, 80, 72, 73, 69, 85, 80, 72, 128,
- 80, 73, 69, 85, 80, 45, 82, 73, 69, 85, 76, 128, 80, 73, 69, 85, 80, 45,
- 78, 73, 69, 85, 78, 128, 80, 73, 69, 85, 80, 45, 77, 73, 69, 85, 77, 128,
- 80, 73, 69, 85, 80, 45, 75, 72, 73, 69, 85, 75, 72, 128, 80, 73, 69, 85,
- 80, 45, 67, 73, 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 67, 72, 73, 69,
- 85, 67, 72, 128, 80, 73, 69, 85, 208, 80, 73, 69, 84, 128, 80, 73, 69,
- 80, 128, 80, 73, 69, 69, 84, 128, 80, 73, 69, 69, 81, 128, 80, 73, 69,
- 67, 69, 128, 80, 73, 69, 128, 80, 73, 67, 84, 85, 82, 69, 128, 80, 73,
- 67, 75, 85, 208, 80, 73, 67, 75, 69, 84, 128, 80, 73, 67, 75, 128, 80,
- 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, 73, 65, 83, 77, 193, 80, 73, 65,
- 78, 79, 128, 80, 201, 80, 72, 87, 65, 128, 80, 72, 85, 84, 72, 65, 79,
- 128, 80, 72, 85, 210, 80, 72, 85, 78, 71, 128, 80, 72, 82, 65, 83, 69,
- 128, 80, 72, 79, 78, 69, 83, 128, 80, 72, 79, 76, 85, 83, 128, 80, 72,
- 79, 69, 78, 73, 67, 73, 65, 206, 80, 72, 79, 65, 128, 80, 72, 79, 128,
- 80, 72, 207, 80, 72, 78, 65, 69, 203, 80, 72, 73, 78, 84, 72, 85, 128,
- 80, 72, 73, 76, 79, 83, 79, 80, 72, 69, 82, 211, 80, 72, 73, 76, 73, 80,
- 80, 73, 78, 197, 80, 72, 73, 69, 85, 80, 72, 45, 84, 72, 73, 69, 85, 84,
- 72, 128, 80, 72, 73, 69, 85, 80, 72, 45, 83, 73, 79, 83, 128, 80, 72, 73,
- 69, 85, 80, 72, 45, 80, 73, 69, 85, 80, 128, 80, 72, 73, 69, 85, 80, 72,
- 45, 72, 73, 69, 85, 72, 128, 80, 72, 73, 69, 85, 80, 200, 80, 72, 73,
- 128, 80, 72, 201, 80, 72, 69, 69, 128, 80, 72, 69, 128, 80, 72, 65, 83,
- 69, 45, 198, 80, 72, 65, 83, 69, 45, 195, 80, 72, 65, 83, 69, 45, 194,
- 80, 72, 65, 83, 69, 45, 193, 80, 72, 65, 82, 89, 78, 71, 69, 65, 204, 80,
- 72, 65, 82, 128, 80, 72, 65, 78, 128, 80, 72, 65, 77, 128, 80, 72, 65,
- 73, 83, 84, 79, 211, 80, 72, 65, 71, 83, 45, 80, 193, 80, 72, 65, 66,
- 128, 80, 72, 65, 65, 82, 75, 65, 65, 128, 80, 72, 65, 65, 128, 80, 71,
- 128, 80, 70, 128, 80, 69, 85, 88, 128, 80, 69, 85, 84, 65, 69, 128, 80,
- 69, 85, 84, 128, 80, 69, 84, 82, 201, 80, 69, 84, 65, 83, 84, 79, 75, 79,
- 85, 70, 73, 83, 77, 65, 128, 80, 69, 84, 65, 83, 84, 73, 128, 80, 69, 84,
- 65, 83, 77, 65, 128, 80, 69, 84, 65, 76, 76, 69, 196, 80, 69, 83, 79,
- 128, 80, 69, 83, 207, 80, 69, 83, 72, 50, 128, 80, 69, 83, 72, 178, 80,
- 69, 83, 69, 84, 193, 80, 69, 211, 80, 69, 82, 84, 72, 207, 80, 69, 82,
- 83, 80, 69, 67, 84, 73, 86, 69, 128, 80, 69, 82, 83, 79, 78, 65, 204, 80,
- 69, 82, 83, 79, 78, 128, 80, 69, 82, 83, 79, 206, 80, 69, 82, 83, 73, 65,
- 206, 80, 69, 82, 83, 69, 86, 69, 82, 73, 78, 199, 80, 69, 82, 80, 69, 78,
- 68, 73, 67, 85, 76, 65, 82, 128, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85,
- 76, 65, 210, 80, 69, 82, 78, 73, 206, 80, 69, 82, 77, 73, 84, 84, 69,
- 196, 80, 69, 82, 77, 73, 195, 80, 69, 82, 77, 65, 78, 69, 78, 212, 80,
- 69, 82, 73, 83, 80, 79, 77, 69, 78, 73, 128, 80, 69, 82, 73, 83, 80, 79,
- 77, 69, 78, 201, 80, 69, 82, 70, 79, 82, 77, 73, 78, 199, 80, 69, 82, 70,
- 69, 67, 84, 85, 205, 80, 69, 82, 70, 69, 67, 84, 65, 128, 80, 69, 82, 70,
- 69, 67, 84, 193, 80, 69, 82, 67, 85, 83, 83, 73, 86, 69, 128, 80, 69, 82,
- 67, 69, 78, 212, 80, 69, 80, 80, 69, 82, 128, 80, 69, 80, 69, 84, 128,
- 80, 69, 80, 69, 212, 80, 69, 79, 82, 84, 200, 80, 69, 79, 80, 76, 69,
- 128, 80, 69, 79, 80, 76, 197, 80, 69, 78, 84, 65, 84, 72, 76, 79, 78,
- 128, 80, 69, 78, 84, 65, 83, 69, 77, 69, 128, 80, 69, 78, 84, 65, 71, 82,
- 65, 77, 128, 80, 69, 78, 84, 65, 71, 79, 78, 128, 80, 69, 78, 83, 85,
- 128, 80, 69, 78, 83, 73, 86, 197, 80, 69, 78, 78, 217, 80, 69, 78, 78,
- 65, 78, 84, 128, 80, 69, 78, 73, 72, 73, 128, 80, 69, 78, 71, 85, 73, 78,
- 128, 80, 69, 78, 71, 75, 65, 76, 128, 80, 69, 78, 69, 84, 82, 65, 84, 73,
- 79, 78, 128, 80, 69, 78, 67, 73, 76, 128, 80, 69, 206, 80, 69, 76, 65,
- 83, 84, 79, 78, 128, 80, 69, 76, 65, 83, 84, 79, 206, 80, 69, 73, 84, 72,
- 128, 80, 69, 72, 69, 72, 128, 80, 69, 72, 69, 200, 80, 69, 72, 128, 80,
- 69, 200, 80, 69, 69, 90, 73, 128, 80, 69, 69, 83, 72, 73, 128, 80, 69,
- 69, 80, 128, 80, 69, 69, 77, 128, 80, 69, 69, 73, 128, 80, 69, 69, 128,
- 80, 69, 68, 69, 83, 84, 82, 73, 65, 78, 83, 128, 80, 69, 68, 69, 83, 84,
- 82, 73, 65, 78, 128, 80, 69, 68, 69, 83, 84, 65, 76, 128, 80, 69, 68, 69,
- 83, 84, 65, 204, 80, 69, 68, 65, 204, 80, 69, 65, 78, 85, 84, 83, 128,
- 80, 69, 65, 75, 211, 80, 69, 65, 67, 79, 67, 75, 128, 80, 69, 65, 67, 72,
- 128, 80, 69, 65, 67, 69, 128, 80, 69, 65, 67, 197, 80, 68, 73, 128, 80,
- 68, 70, 128, 80, 68, 128, 80, 67, 128, 80, 65, 90, 69, 82, 128, 80, 65,
- 89, 69, 82, 79, 75, 128, 80, 65, 89, 65, 78, 78, 65, 128, 80, 65, 89,
- 128, 80, 65, 88, 128, 80, 65, 87, 78, 128, 80, 65, 87, 206, 80, 65, 215,
- 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 65, 85, 83, 197, 80, 65, 85,
- 128, 80, 65, 213, 80, 65, 84, 84, 217, 80, 65, 84, 84, 69, 82, 78, 128,
- 80, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 65, 84, 72, 65, 75, 75,
- 85, 128, 80, 65, 84, 200, 80, 65, 84, 65, 75, 128, 80, 65, 84, 65, 72,
- 128, 80, 65, 84, 128, 80, 65, 83, 85, 81, 128, 80, 65, 83, 83, 80, 79,
- 82, 212, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 85, 80, 45,
- 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76,
- 45, 68, 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 77,
- 66, 65, 78, 71, 128, 80, 65, 83, 83, 69, 78, 71, 69, 210, 80, 65, 83, 83,
- 69, 196, 80, 65, 83, 72, 84, 65, 128, 80, 65, 83, 72, 65, 69, 128, 80,
- 65, 83, 69, 81, 128, 80, 65, 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77,
- 128, 80, 65, 82, 84, 217, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208,
- 80, 65, 82, 84, 73, 65, 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196,
- 80, 65, 82, 84, 73, 65, 204, 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82,
- 212, 80, 65, 82, 82, 79, 84, 128, 80, 65, 82, 75, 128, 80, 65, 82, 73,
- 67, 72, 79, 78, 128, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206,
- 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73,
- 83, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211, 80, 65, 82, 69, 78,
- 84, 72, 69, 83, 69, 211, 80, 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 65,
- 82, 65, 76, 76, 69, 76, 79, 71, 82, 65, 77, 128, 80, 65, 82, 65, 76, 76,
- 69, 76, 128, 80, 65, 82, 65, 76, 76, 69, 204, 80, 65, 82, 65, 75, 76, 73,
- 84, 73, 75, 73, 128, 80, 65, 82, 65, 75, 76, 73, 84, 73, 75, 201, 80, 65,
- 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 71, 82, 65, 80, 72,
- 85, 211, 80, 65, 82, 65, 71, 82, 65, 80, 72, 79, 83, 128, 80, 65, 82, 65,
- 71, 82, 65, 80, 72, 128, 80, 65, 82, 65, 71, 82, 65, 80, 200, 80, 65, 82,
- 65, 67, 72, 85, 84, 69, 128, 80, 65, 82, 65, 128, 80, 65, 82, 128, 80,
- 65, 80, 89, 82, 85, 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, 83, 128,
- 80, 65, 80, 69, 82, 67, 76, 73, 80, 128, 80, 65, 80, 69, 82, 128, 80, 65,
- 80, 69, 210, 80, 65, 80, 128, 80, 65, 208, 80, 65, 207, 80, 65, 78, 89,
- 85, 75, 85, 128, 80, 65, 78, 89, 73, 75, 85, 128, 80, 65, 78, 89, 69, 67,
- 69, 75, 128, 80, 65, 78, 89, 65, 78, 71, 71, 65, 128, 80, 65, 78, 89, 65,
- 75, 82, 65, 128, 80, 65, 78, 84, 73, 128, 80, 65, 78, 83, 73, 79, 83, 45,
- 80, 73, 69, 85, 80, 128, 80, 65, 78, 83, 73, 79, 83, 45, 75, 65, 80, 89,
- 69, 79, 85, 78, 80, 73, 69, 85, 80, 128, 80, 65, 78, 79, 78, 71, 79, 78,
- 65, 78, 128, 80, 65, 78, 79, 76, 79, 78, 71, 128, 80, 65, 78, 71, 87, 73,
- 83, 65, 68, 128, 80, 65, 78, 71, 82, 65, 78, 71, 75, 69, 80, 128, 80, 65,
- 78, 71, 79, 76, 65, 84, 128, 80, 65, 78, 71, 76, 79, 78, 71, 128, 80, 65,
- 78, 71, 76, 65, 89, 65, 82, 128, 80, 65, 78, 71, 75, 79, 78, 128, 80, 65,
- 78, 71, 75, 65, 84, 128, 80, 65, 78, 71, 72, 85, 76, 85, 128, 80, 65, 78,
- 71, 128, 80, 65, 78, 69, 85, 76, 69, 85, 78, 71, 128, 80, 65, 78, 68,
- 193, 80, 65, 78, 67, 65, 75, 69, 83, 128, 80, 65, 78, 65, 77, 128, 80,
- 65, 78, 65, 69, 76, 65, 69, 78, 71, 128, 80, 65, 78, 128, 80, 65, 206,
- 80, 65, 77, 85, 78, 71, 75, 65, 72, 128, 80, 65, 77, 85, 68, 80, 79, 68,
- 128, 80, 65, 77, 83, 72, 65, 69, 128, 80, 65, 77, 80, 72, 89, 76, 73, 65,
- 206, 80, 65, 77, 73, 78, 71, 75, 65, 76, 128, 80, 65, 77, 69, 80, 69, 84,
- 128, 80, 65, 77, 69, 78, 69, 78, 71, 128, 80, 65, 77, 65, 68, 65, 128,
- 80, 65, 77, 65, 65, 69, 72, 128, 80, 65, 76, 85, 84, 65, 128, 80, 65, 76,
- 79, 67, 72, 75, 65, 128, 80, 65, 76, 77, 89, 82, 69, 78, 197, 80, 65, 76,
- 77, 211, 80, 65, 76, 77, 128, 80, 65, 76, 205, 80, 65, 76, 76, 65, 87,
- 65, 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 201, 80, 65, 76, 69,
- 84, 84, 69, 128, 80, 65, 76, 65, 85, 78, 199, 80, 65, 76, 65, 84, 65, 76,
- 73, 90, 69, 196, 80, 65, 76, 65, 84, 65, 76, 73, 90, 65, 84, 73, 79, 78,
- 128, 80, 65, 76, 65, 84, 65, 204, 80, 65, 75, 80, 65, 203, 80, 65, 73,
- 89, 65, 78, 78, 79, 73, 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65,
- 73, 82, 69, 196, 80, 65, 73, 78, 84, 66, 82, 85, 83, 72, 128, 80, 65, 73,
- 128, 80, 65, 72, 76, 65, 86, 201, 80, 65, 72, 128, 80, 65, 71, 79, 68,
- 65, 128, 80, 65, 71, 69, 83, 128, 80, 65, 71, 69, 82, 128, 80, 65, 71,
- 197, 80, 65, 68, 77, 193, 80, 65, 68, 68, 76, 197, 80, 65, 68, 68, 73,
- 78, 199, 80, 65, 68, 193, 80, 65, 68, 128, 80, 65, 67, 75, 73, 78, 71,
- 128, 80, 65, 67, 75, 65, 71, 69, 128, 80, 65, 65, 84, 85, 128, 80, 65,
- 65, 83, 69, 78, 84, 79, 128, 80, 65, 65, 82, 65, 77, 128, 80, 65, 65, 82,
- 65, 69, 128, 80, 65, 65, 77, 128, 80, 65, 65, 73, 128, 80, 65, 65, 45,
- 80, 73, 76, 76, 65, 128, 80, 65, 65, 128, 80, 50, 128, 80, 48, 49, 49,
- 128, 80, 48, 49, 48, 128, 80, 48, 48, 57, 128, 80, 48, 48, 56, 128, 80,
- 48, 48, 55, 128, 80, 48, 48, 54, 128, 80, 48, 48, 53, 128, 80, 48, 48,
- 52, 128, 80, 48, 48, 51, 65, 128, 80, 48, 48, 51, 128, 80, 48, 48, 50,
- 128, 80, 48, 48, 49, 65, 128, 80, 48, 48, 49, 128, 79, 89, 83, 84, 69,
- 82, 128, 79, 89, 82, 65, 78, 73, 83, 77, 193, 79, 89, 65, 78, 78, 65,
- 128, 79, 88, 73, 65, 128, 79, 88, 73, 193, 79, 88, 69, 73, 65, 201, 79,
- 88, 69, 73, 193, 79, 87, 76, 128, 79, 86, 69, 82, 82, 73, 68, 69, 128,
- 79, 86, 69, 82, 76, 79, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, 128, 79,
- 86, 69, 82, 76, 65, 89, 128, 79, 86, 69, 82, 76, 65, 217, 79, 86, 69, 82,
- 76, 65, 80, 80, 73, 78, 199, 79, 86, 69, 82, 76, 65, 80, 128, 79, 86, 69,
- 82, 76, 65, 73, 68, 128, 79, 86, 69, 82, 76, 65, 73, 196, 79, 86, 69, 82,
- 72, 69, 65, 84, 69, 196, 79, 86, 69, 82, 66, 65, 82, 128, 79, 86, 65, 76,
- 128, 79, 86, 65, 204, 79, 85, 84, 76, 73, 78, 69, 196, 79, 85, 84, 76,
- 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79, 216, 79, 85,
- 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67, 197, 79, 84,
- 85, 128, 79, 84, 84, 79, 77, 65, 206, 79, 84, 84, 69, 82, 128, 79, 84,
- 84, 65, 86, 193, 79, 84, 84, 128, 79, 84, 72, 69, 82, 211, 79, 84, 72,
- 69, 210, 79, 84, 72, 65, 76, 65, 206, 79, 84, 72, 65, 76, 128, 79, 83,
- 77, 65, 78, 89, 193, 79, 83, 67, 128, 79, 83, 65, 71, 197, 79, 82, 84,
- 72, 79, 71, 79, 78, 65, 204, 79, 82, 84, 72, 79, 68, 79, 216, 79, 82, 78,
- 65, 84, 197, 79, 82, 78, 65, 77, 69, 78, 84, 83, 128, 79, 82, 78, 65, 77,
- 69, 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, 212, 79, 82, 75, 72, 79,
- 206, 79, 82, 73, 89, 193, 79, 82, 73, 71, 73, 78, 65, 204, 79, 82, 73,
- 71, 73, 78, 128, 79, 82, 69, 45, 50, 128, 79, 82, 68, 73, 78, 65, 204,
- 79, 82, 68, 69, 210, 79, 82, 67, 72, 73, 68, 128, 79, 82, 65, 78, 71, 85,
- 84, 65, 78, 128, 79, 82, 65, 78, 71, 197, 79, 80, 84, 73, 79, 206, 79,
- 80, 84, 73, 67, 65, 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, 128, 79,
- 80, 80, 79, 83, 73, 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, 78, 199,
- 79, 80, 80, 79, 83, 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83, 128, 79,
- 80, 69, 82, 65, 84, 79, 82, 128, 79, 80, 69, 82, 65, 84, 79, 210, 79, 80,
- 69, 82, 65, 84, 73, 78, 199, 79, 80, 69, 78, 73, 78, 199, 79, 80, 69, 78,
- 45, 80, 128, 79, 80, 69, 78, 45, 79, 85, 84, 76, 73, 78, 69, 196, 79, 80,
- 69, 78, 45, 79, 128, 79, 80, 69, 78, 45, 207, 79, 80, 69, 78, 45, 72, 69,
- 65, 68, 69, 196, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, 79,
- 85, 84, 80, 85, 212, 79, 80, 69, 78, 128, 79, 80, 69, 206, 79, 79, 90,
- 69, 128, 79, 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, 128, 79, 79, 77,
- 85, 128, 79, 79, 72, 128, 79, 79, 69, 128, 79, 79, 66, 79, 79, 70, 73,
- 76, 73, 128, 79, 78, 85, 128, 79, 78, 83, 85, 128, 79, 78, 78, 128, 79,
- 78, 75, 65, 82, 128, 79, 78, 73, 79, 78, 128, 79, 78, 69, 83, 69, 76, 70,
- 128, 79, 78, 69, 45, 87, 65, 217, 79, 78, 69, 45, 84, 72, 73, 82, 84, 89,
- 128, 79, 78, 69, 45, 80, 73, 69, 67, 197, 79, 78, 69, 45, 76, 73, 78,
- 197, 79, 78, 69, 45, 72, 85, 78, 68, 82, 69, 68, 45, 65, 78, 68, 45, 83,
- 73, 88, 84, 73, 69, 84, 72, 128, 79, 78, 67, 79, 77, 73, 78, 199, 79, 78,
- 65, 80, 128, 79, 78, 45, 79, 70, 198, 79, 77, 73, 83, 83, 73, 79, 206,
- 79, 77, 73, 67, 82, 79, 78, 128, 79, 77, 73, 67, 82, 79, 206, 79, 77, 69,
- 71, 65, 128, 79, 77, 69, 71, 193, 79, 77, 65, 76, 79, 78, 128, 79, 76,
- 73, 86, 69, 128, 79, 76, 73, 71, 79, 206, 79, 76, 68, 128, 79, 75, 84,
- 207, 79, 75, 65, 82, 65, 128, 79, 75, 65, 82, 193, 79, 74, 73, 66, 87,
- 65, 217, 79, 74, 69, 79, 78, 128, 79, 73, 78, 128, 79, 73, 76, 128, 79,
- 73, 204, 79, 72, 77, 128, 79, 72, 205, 79, 71, 82, 69, 128, 79, 71, 79,
- 78, 69, 75, 128, 79, 71, 79, 78, 69, 203, 79, 71, 72, 65, 205, 79, 70,
- 70, 73, 67, 69, 82, 128, 79, 70, 70, 73, 67, 69, 128, 79, 70, 70, 73, 67,
- 197, 79, 70, 70, 128, 79, 69, 89, 128, 79, 69, 82, 128, 79, 69, 75, 128,
- 79, 69, 69, 128, 79, 68, 69, 78, 128, 79, 68, 68, 128, 79, 68, 196, 79,
- 67, 84, 79, 80, 85, 83, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 67, 84,
- 69, 212, 79, 67, 84, 65, 71, 79, 78, 65, 204, 79, 67, 84, 65, 71, 79, 78,
- 128, 79, 67, 210, 79, 67, 76, 79, 67, 75, 128, 79, 67, 67, 76, 85, 83,
- 73, 79, 78, 128, 79, 66, 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 79, 66,
- 83, 69, 82, 86, 69, 210, 79, 66, 79, 76, 211, 79, 66, 79, 204, 79, 66,
- 79, 70, 73, 76, 73, 128, 79, 66, 76, 73, 81, 85, 197, 79, 66, 74, 69, 67,
- 212, 79, 66, 69, 76, 85, 83, 128, 79, 66, 69, 76, 79, 83, 128, 79, 66,
- 128, 79, 65, 89, 128, 79, 65, 75, 128, 79, 65, 66, 79, 65, 70, 73, 76,
- 73, 128, 79, 193, 79, 48, 53, 49, 128, 79, 48, 53, 48, 66, 128, 79, 48,
- 53, 48, 65, 128, 79, 48, 53, 48, 128, 79, 48, 52, 57, 128, 79, 48, 52,
- 56, 128, 79, 48, 52, 55, 128, 79, 48, 52, 54, 128, 79, 48, 52, 53, 128,
- 79, 48, 52, 52, 128, 79, 48, 52, 51, 128, 79, 48, 52, 50, 128, 79, 48,
- 52, 49, 128, 79, 48, 52, 48, 128, 79, 48, 51, 57, 128, 79, 48, 51, 56,
- 128, 79, 48, 51, 55, 128, 79, 48, 51, 54, 68, 128, 79, 48, 51, 54, 67,
- 128, 79, 48, 51, 54, 66, 128, 79, 48, 51, 54, 65, 128, 79, 48, 51, 54,
- 128, 79, 48, 51, 53, 128, 79, 48, 51, 52, 128, 79, 48, 51, 51, 65, 128,
- 79, 48, 51, 51, 128, 79, 48, 51, 50, 128, 79, 48, 51, 49, 128, 79, 48,
- 51, 48, 65, 128, 79, 48, 51, 48, 128, 79, 48, 50, 57, 65, 128, 79, 48,
- 50, 57, 128, 79, 48, 50, 56, 128, 79, 48, 50, 55, 128, 79, 48, 50, 54,
- 128, 79, 48, 50, 53, 65, 128, 79, 48, 50, 53, 128, 79, 48, 50, 52, 65,
- 128, 79, 48, 50, 52, 128, 79, 48, 50, 51, 128, 79, 48, 50, 50, 128, 79,
- 48, 50, 49, 128, 79, 48, 50, 48, 65, 128, 79, 48, 50, 48, 128, 79, 48,
- 49, 57, 65, 128, 79, 48, 49, 57, 128, 79, 48, 49, 56, 128, 79, 48, 49,
- 55, 128, 79, 48, 49, 54, 128, 79, 48, 49, 53, 128, 79, 48, 49, 52, 128,
- 79, 48, 49, 51, 128, 79, 48, 49, 50, 128, 79, 48, 49, 49, 128, 79, 48,
- 49, 48, 67, 128, 79, 48, 49, 48, 66, 128, 79, 48, 49, 48, 65, 128, 79,
- 48, 49, 48, 128, 79, 48, 48, 57, 128, 79, 48, 48, 56, 128, 79, 48, 48,
- 55, 128, 79, 48, 48, 54, 70, 128, 79, 48, 48, 54, 69, 128, 79, 48, 48,
- 54, 68, 128, 79, 48, 48, 54, 67, 128, 79, 48, 48, 54, 66, 128, 79, 48,
- 48, 54, 65, 128, 79, 48, 48, 54, 128, 79, 48, 48, 53, 65, 128, 79, 48,
- 48, 53, 128, 79, 48, 48, 52, 128, 79, 48, 48, 51, 128, 79, 48, 48, 50,
- 128, 79, 48, 48, 49, 65, 128, 79, 48, 48, 49, 128, 79, 45, 89, 69, 128,
- 79, 45, 79, 45, 73, 128, 79, 45, 69, 128, 78, 90, 89, 88, 128, 78, 90,
- 89, 84, 128, 78, 90, 89, 82, 88, 128, 78, 90, 89, 82, 128, 78, 90, 89,
- 80, 128, 78, 90, 89, 128, 78, 90, 85, 88, 128, 78, 90, 85, 82, 88, 128,
- 78, 90, 85, 82, 128, 78, 90, 85, 81, 128, 78, 90, 85, 80, 128, 78, 90,
- 85, 79, 88, 128, 78, 90, 85, 79, 128, 78, 90, 85, 206, 78, 90, 85, 128,
- 78, 90, 79, 88, 128, 78, 90, 79, 80, 128, 78, 90, 73, 88, 128, 78, 90,
- 73, 84, 128, 78, 90, 73, 80, 128, 78, 90, 73, 69, 88, 128, 78, 90, 73,
- 69, 80, 128, 78, 90, 73, 69, 128, 78, 90, 73, 128, 78, 90, 69, 88, 128,
- 78, 90, 69, 85, 77, 128, 78, 90, 69, 128, 78, 90, 65, 88, 128, 78, 90,
- 65, 84, 128, 78, 90, 65, 81, 128, 78, 90, 65, 80, 128, 78, 90, 65, 128,
- 78, 90, 193, 78, 89, 87, 65, 128, 78, 89, 85, 88, 128, 78, 89, 85, 85,
- 128, 78, 89, 85, 84, 128, 78, 89, 85, 80, 128, 78, 89, 85, 79, 88, 128,
- 78, 89, 85, 79, 80, 128, 78, 89, 85, 79, 128, 78, 89, 85, 78, 128, 78,
- 89, 85, 69, 128, 78, 89, 85, 128, 78, 89, 79, 88, 128, 78, 89, 79, 84,
- 128, 78, 89, 79, 80, 128, 78, 89, 79, 79, 128, 78, 89, 79, 78, 128, 78,
- 89, 79, 65, 128, 78, 89, 79, 128, 78, 89, 74, 65, 128, 78, 89, 73, 88,
- 128, 78, 89, 73, 84, 128, 78, 89, 73, 212, 78, 89, 73, 211, 78, 89, 73,
- 210, 78, 89, 73, 80, 128, 78, 89, 73, 78, 45, 68, 79, 128, 78, 89, 73,
- 78, 128, 78, 89, 73, 73, 128, 78, 89, 73, 69, 88, 128, 78, 89, 73, 69,
- 84, 128, 78, 89, 73, 69, 80, 128, 78, 89, 73, 69, 128, 78, 89, 73, 65,
- 75, 69, 78, 199, 78, 89, 73, 128, 78, 89, 201, 78, 89, 72, 65, 128, 78,
- 89, 69, 84, 128, 78, 89, 69, 212, 78, 89, 69, 78, 128, 78, 89, 69, 72,
- 128, 78, 89, 69, 200, 78, 89, 69, 69, 128, 78, 89, 69, 128, 78, 89, 196,
- 78, 89, 67, 65, 128, 78, 89, 65, 85, 128, 78, 89, 65, 74, 128, 78, 89,
- 65, 73, 128, 78, 89, 65, 72, 128, 78, 89, 65, 69, 77, 65, 69, 128, 78,
- 89, 65, 65, 128, 78, 87, 79, 79, 128, 78, 87, 79, 128, 78, 87, 73, 73,
- 128, 78, 87, 73, 128, 78, 87, 69, 128, 78, 87, 65, 65, 128, 78, 87, 65,
- 128, 78, 87, 128, 78, 86, 128, 78, 85, 88, 128, 78, 85, 85, 78, 128, 78,
- 85, 85, 128, 78, 85, 84, 73, 76, 76, 85, 128, 78, 85, 84, 128, 78, 85,
- 212, 78, 85, 82, 88, 128, 78, 85, 82, 128, 78, 85, 80, 128, 78, 85, 79,
- 88, 128, 78, 85, 79, 80, 128, 78, 85, 79, 128, 78, 85, 78, 85, 90, 128,
- 78, 85, 78, 85, 218, 78, 85, 78, 71, 128, 78, 85, 78, 65, 86, 85, 212,
- 78, 85, 78, 65, 86, 73, 203, 78, 85, 78, 128, 78, 85, 206, 78, 85, 77,
- 69, 82, 207, 78, 85, 77, 69, 82, 65, 84, 79, 210, 78, 85, 77, 69, 82, 65,
- 204, 78, 85, 77, 66, 69, 82, 83, 128, 78, 85, 77, 66, 69, 82, 128, 78,
- 85, 77, 128, 78, 85, 76, 76, 128, 78, 85, 76, 204, 78, 85, 76, 128, 78,
- 85, 75, 84, 65, 128, 78, 85, 75, 84, 193, 78, 85, 69, 78, 71, 128, 78,
- 85, 69, 128, 78, 85, 66, 73, 65, 206, 78, 85, 65, 69, 128, 78, 85, 49,
- 49, 128, 78, 85, 49, 177, 78, 85, 48, 50, 50, 65, 128, 78, 85, 48, 50,
- 50, 128, 78, 85, 48, 50, 49, 128, 78, 85, 48, 50, 48, 128, 78, 85, 48,
- 49, 57, 128, 78, 85, 48, 49, 56, 65, 128, 78, 85, 48, 49, 56, 128, 78,
- 85, 48, 49, 55, 128, 78, 85, 48, 49, 54, 128, 78, 85, 48, 49, 53, 128,
- 78, 85, 48, 49, 52, 128, 78, 85, 48, 49, 51, 128, 78, 85, 48, 49, 50,
- 128, 78, 85, 48, 49, 49, 65, 128, 78, 85, 48, 49, 49, 128, 78, 85, 48,
- 49, 48, 65, 128, 78, 85, 48, 49, 48, 128, 78, 85, 48, 48, 57, 128, 78,
- 85, 48, 48, 56, 128, 78, 85, 48, 48, 55, 128, 78, 85, 48, 48, 54, 128,
- 78, 85, 48, 48, 53, 128, 78, 85, 48, 48, 52, 128, 78, 85, 48, 48, 51,
- 128, 78, 85, 48, 48, 50, 128, 78, 85, 48, 48, 49, 128, 78, 85, 45, 51,
- 128, 78, 85, 45, 50, 128, 78, 85, 45, 49, 128, 78, 84, 88, 73, 86, 128,
- 78, 84, 88, 65, 128, 78, 84, 85, 85, 128, 78, 84, 85, 77, 128, 78, 84,
- 85, 74, 128, 78, 84, 213, 78, 84, 83, 65, 85, 128, 78, 84, 83, 65, 128,
- 78, 84, 79, 81, 80, 69, 78, 128, 78, 84, 79, 71, 128, 78, 84, 79, 199,
- 78, 84, 73, 69, 197, 78, 84, 72, 65, 85, 128, 78, 84, 69, 85, 78, 71, 66,
- 65, 128, 78, 84, 69, 85, 77, 128, 78, 84, 69, 78, 128, 78, 84, 69, 69,
- 128, 78, 84, 65, 80, 128, 78, 84, 65, 208, 78, 84, 65, 65, 128, 78, 84,
- 65, 128, 78, 83, 85, 79, 212, 78, 83, 85, 78, 128, 78, 83, 85, 77, 128,
- 78, 83, 79, 77, 128, 78, 83, 73, 69, 69, 84, 128, 78, 83, 73, 69, 69, 80,
- 128, 78, 83, 73, 69, 69, 128, 78, 83, 72, 85, 84, 128, 78, 83, 72, 85,
- 212, 78, 83, 72, 85, 79, 80, 128, 78, 83, 72, 85, 69, 128, 78, 83, 72,
- 73, 69, 69, 128, 78, 83, 72, 69, 69, 128, 78, 83, 72, 65, 81, 128, 78,
- 83, 72, 65, 128, 78, 83, 69, 85, 65, 69, 78, 128, 78, 83, 69, 78, 128,
- 78, 83, 65, 128, 78, 82, 89, 88, 128, 78, 82, 89, 84, 128, 78, 82, 89,
- 82, 88, 128, 78, 82, 89, 82, 128, 78, 82, 89, 80, 128, 78, 82, 89, 128,
- 78, 82, 85, 88, 128, 78, 82, 85, 84, 128, 78, 82, 85, 82, 88, 128, 78,
- 82, 85, 82, 128, 78, 82, 85, 80, 128, 78, 82, 85, 65, 128, 78, 82, 85,
- 128, 78, 82, 79, 88, 128, 78, 82, 79, 80, 128, 78, 82, 79, 128, 78, 82,
- 69, 88, 128, 78, 82, 69, 84, 128, 78, 82, 69, 211, 78, 82, 69, 80, 128,
- 78, 82, 69, 128, 78, 82, 65, 88, 128, 78, 82, 65, 84, 128, 78, 82, 65,
- 80, 128, 78, 82, 65, 128, 78, 81, 73, 71, 128, 78, 81, 65, 128, 78, 80,
- 76, 65, 128, 78, 80, 65, 128, 78, 79, 89, 128, 78, 79, 88, 128, 78, 79,
- 87, 67, 128, 78, 79, 86, 73, 76, 69, 128, 78, 79, 86, 69, 77, 66, 69, 82,
- 128, 78, 79, 84, 84, 79, 128, 78, 79, 84, 69, 83, 128, 78, 79, 84, 69,
- 72, 69, 65, 68, 128, 78, 79, 84, 69, 72, 69, 65, 196, 78, 79, 84, 69, 66,
- 79, 79, 75, 128, 78, 79, 84, 69, 66, 79, 79, 203, 78, 79, 84, 69, 128,
- 78, 79, 84, 197, 78, 79, 84, 67, 72, 69, 196, 78, 79, 84, 67, 72, 128,
- 78, 79, 84, 65, 84, 73, 79, 206, 78, 79, 84, 128, 78, 79, 212, 78, 79,
- 83, 69, 128, 78, 79, 83, 197, 78, 79, 82, 84, 72, 87, 69, 83, 212, 78,
- 79, 82, 84, 72, 69, 82, 206, 78, 79, 82, 84, 72, 69, 65, 83, 84, 45, 80,
- 79, 73, 78, 84, 73, 78, 199, 78, 79, 82, 77, 65, 204, 78, 79, 82, 68, 73,
- 195, 78, 79, 210, 78, 79, 80, 128, 78, 79, 79, 78, 85, 128, 78, 79, 79,
- 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, 128, 78, 79, 78, 45, 80, 79,
- 84, 65, 66, 76, 197, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82, 128, 78, 79,
- 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 78, 79, 78, 128, 78, 79, 77, 73,
- 83, 77, 193, 78, 79, 77, 73, 78, 65, 204, 78, 79, 75, 72, 85, 75, 128,
- 78, 79, 68, 69, 128, 78, 79, 65, 128, 78, 79, 45, 66, 82, 69, 65, 203,
- 78, 79, 45, 53, 128, 78, 79, 45, 52, 128, 78, 79, 45, 51, 128, 78, 79,
- 45, 50, 128, 78, 79, 45, 49, 128, 78, 78, 85, 85, 128, 78, 78, 85, 128,
- 78, 78, 79, 79, 128, 78, 78, 79, 128, 78, 78, 78, 85, 85, 128, 78, 78,
- 78, 85, 128, 78, 78, 78, 79, 79, 128, 78, 78, 78, 79, 128, 78, 78, 78,
- 73, 73, 128, 78, 78, 78, 73, 128, 78, 78, 78, 69, 69, 128, 78, 78, 78,
- 69, 128, 78, 78, 78, 65, 85, 128, 78, 78, 78, 65, 73, 128, 78, 78, 78,
- 65, 65, 128, 78, 78, 78, 65, 128, 78, 78, 78, 128, 78, 78, 72, 65, 128,
- 78, 78, 71, 79, 79, 128, 78, 78, 71, 79, 128, 78, 78, 71, 73, 73, 128,
- 78, 78, 71, 73, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, 65, 128, 78,
- 78, 71, 128, 78, 78, 66, 83, 80, 128, 78, 77, 128, 78, 76, 65, 85, 128,
- 78, 76, 48, 50, 48, 128, 78, 76, 48, 49, 57, 128, 78, 76, 48, 49, 56,
- 128, 78, 76, 48, 49, 55, 65, 128, 78, 76, 48, 49, 55, 128, 78, 76, 48,
- 49, 54, 128, 78, 76, 48, 49, 53, 128, 78, 76, 48, 49, 52, 128, 78, 76,
- 48, 49, 51, 128, 78, 76, 48, 49, 50, 128, 78, 76, 48, 49, 49, 128, 78,
- 76, 48, 49, 48, 128, 78, 76, 48, 48, 57, 128, 78, 76, 48, 48, 56, 128,
- 78, 76, 48, 48, 55, 128, 78, 76, 48, 48, 54, 128, 78, 76, 48, 48, 53, 65,
- 128, 78, 76, 48, 48, 53, 128, 78, 76, 48, 48, 52, 128, 78, 76, 48, 48,
- 51, 128, 78, 76, 48, 48, 50, 128, 78, 76, 48, 48, 49, 128, 78, 76, 128,
- 78, 75, 79, 77, 128, 78, 75, 207, 78, 75, 73, 78, 68, 73, 128, 78, 75,
- 65, 85, 128, 78, 75, 65, 65, 82, 65, 69, 128, 78, 75, 65, 128, 78, 74,
- 89, 88, 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, 128, 78, 74, 89,
- 82, 128, 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, 85, 88, 128, 78,
- 74, 85, 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, 81, 65, 128, 78,
- 74, 85, 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 79, 128, 78, 74,
- 85, 69, 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, 128, 78, 74, 79,
- 88, 128, 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, 74, 79, 79, 128,
- 78, 74, 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, 128, 78, 74, 73,
- 80, 128, 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, 128, 78, 74, 73,
- 69, 80, 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, 128, 78, 74, 73,
- 128, 78, 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, 85, 84, 128, 78,
- 74, 69, 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, 77, 128, 78, 74,
- 69, 69, 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, 197, 78, 74, 69,
- 128, 78, 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, 65, 69, 77, 76,
- 73, 128, 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, 78, 73, 88, 128,
- 78, 73, 84, 82, 69, 128, 78, 73, 83, 65, 71, 128, 78, 73, 82, 85, 71, 85,
- 128, 78, 73, 80, 128, 78, 73, 78, 84, 72, 128, 78, 73, 78, 74, 65, 128,
- 78, 73, 78, 69, 84, 89, 128, 78, 73, 78, 69, 84, 217, 78, 73, 78, 69, 84,
- 69, 69, 78, 128, 78, 73, 78, 69, 84, 69, 69, 206, 78, 73, 78, 69, 45, 84,
- 72, 73, 82, 84, 89, 128, 78, 73, 78, 197, 78, 73, 78, 68, 65, 50, 128,
- 78, 73, 78, 68, 65, 178, 78, 73, 78, 57, 128, 78, 73, 78, 128, 78, 73,
- 77, 128, 78, 73, 205, 78, 73, 75, 79, 76, 83, 66, 85, 82, 199, 78, 73,
- 75, 72, 65, 72, 73, 84, 128, 78, 73, 75, 65, 72, 73, 84, 128, 78, 73, 75,
- 65, 128, 78, 73, 72, 83, 72, 86, 65, 83, 65, 128, 78, 73, 71, 73, 68, 65,
- 77, 73, 78, 128, 78, 73, 71, 73, 68, 65, 69, 83, 72, 128, 78, 73, 71, 72,
- 84, 128, 78, 73, 71, 72, 212, 78, 73, 71, 71, 65, 72, 73, 84, 65, 128,
- 78, 73, 69, 88, 128, 78, 73, 69, 85, 78, 45, 84, 73, 75, 69, 85, 84, 128,
- 78, 73, 69, 85, 78, 45, 84, 72, 73, 69, 85, 84, 72, 128, 78, 73, 69, 85,
- 78, 45, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 82, 73, 69, 85, 76,
- 128, 78, 73, 69, 85, 78, 45, 80, 73, 69, 85, 80, 128, 78, 73, 69, 85, 78,
- 45, 80, 65, 78, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 75, 73, 89,
- 69, 79, 75, 128, 78, 73, 69, 85, 78, 45, 72, 73, 69, 85, 72, 128, 78, 73,
- 69, 85, 78, 45, 67, 73, 69, 85, 67, 128, 78, 73, 69, 85, 78, 45, 67, 72,
- 73, 69, 85, 67, 72, 128, 78, 73, 69, 85, 206, 78, 73, 69, 80, 128, 78,
- 73, 69, 128, 78, 73, 66, 128, 78, 73, 65, 128, 78, 73, 50, 128, 78, 73,
- 45, 84, 69, 128, 78, 73, 45, 55, 128, 78, 73, 45, 54, 128, 78, 73, 45,
- 53, 128, 78, 73, 45, 52, 128, 78, 73, 45, 51, 128, 78, 73, 45, 50, 128,
- 78, 73, 45, 49, 128, 78, 72, 85, 69, 128, 78, 72, 74, 65, 128, 78, 72,
- 65, 89, 128, 78, 72, 128, 78, 71, 89, 69, 128, 78, 71, 86, 69, 128, 78,
- 71, 85, 85, 128, 78, 71, 85, 79, 88, 128, 78, 71, 85, 79, 84, 128, 78,
- 71, 85, 79, 128, 78, 71, 85, 65, 78, 128, 78, 71, 85, 65, 69, 84, 128,
- 78, 71, 85, 65, 69, 128, 78, 71, 79, 88, 128, 78, 71, 79, 85, 128, 78,
- 71, 79, 213, 78, 71, 79, 84, 128, 78, 71, 79, 81, 128, 78, 71, 79, 80,
- 128, 78, 71, 79, 78, 128, 78, 71, 79, 77, 128, 78, 71, 79, 69, 72, 128,
- 78, 71, 79, 69, 200, 78, 71, 207, 78, 71, 75, 89, 69, 69, 128, 78, 71,
- 75, 87, 65, 69, 78, 128, 78, 71, 75, 85, 80, 128, 78, 71, 75, 85, 78,
- 128, 78, 71, 75, 85, 77, 128, 78, 71, 75, 85, 69, 78, 90, 69, 85, 77,
- 128, 78, 71, 75, 85, 197, 78, 71, 75, 73, 78, 68, 201, 78, 71, 75, 73,
- 69, 69, 128, 78, 71, 75, 69, 85, 88, 128, 78, 71, 75, 69, 85, 82, 73,
- 128, 78, 71, 75, 69, 85, 65, 69, 81, 128, 78, 71, 75, 69, 85, 65, 69, 77,
- 128, 78, 71, 75, 65, 81, 128, 78, 71, 75, 65, 80, 128, 78, 71, 75, 65,
- 65, 77, 73, 128, 78, 71, 75, 65, 128, 78, 71, 73, 69, 88, 128, 78, 71,
- 73, 69, 80, 128, 78, 71, 73, 69, 128, 78, 71, 72, 65, 128, 78, 71, 71,
- 87, 65, 69, 78, 128, 78, 71, 71, 85, 82, 65, 69, 128, 78, 71, 71, 85, 80,
- 128, 78, 71, 71, 85, 79, 81, 128, 78, 71, 71, 85, 79, 209, 78, 71, 71,
- 85, 79, 78, 128, 78, 71, 71, 85, 79, 77, 128, 78, 71, 71, 85, 77, 128,
- 78, 71, 71, 85, 69, 69, 84, 128, 78, 71, 71, 85, 65, 69, 83, 72, 65, 197,
- 78, 71, 71, 85, 65, 69, 206, 78, 71, 71, 85, 65, 128, 78, 71, 71, 85,
- 128, 78, 71, 71, 79, 79, 128, 78, 71, 71, 79, 128, 78, 71, 71, 73, 128,
- 78, 71, 71, 69, 85, 88, 128, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 71,
- 71, 69, 85, 65, 69, 128, 78, 71, 71, 69, 213, 78, 71, 71, 69, 78, 128,
- 78, 71, 71, 69, 69, 84, 128, 78, 71, 71, 69, 69, 69, 69, 128, 78, 71, 71,
- 69, 69, 128, 78, 71, 71, 69, 128, 78, 71, 71, 65, 80, 128, 78, 71, 71,
- 65, 65, 77, 65, 69, 128, 78, 71, 71, 65, 65, 77, 128, 78, 71, 71, 65, 65,
- 128, 78, 71, 71, 128, 78, 71, 69, 88, 128, 78, 71, 69, 85, 82, 69, 85,
- 84, 128, 78, 71, 69, 80, 128, 78, 71, 69, 78, 128, 78, 71, 69, 69, 128,
- 78, 71, 69, 65, 68, 65, 76, 128, 78, 71, 65, 88, 128, 78, 71, 65, 85,
- 128, 78, 71, 65, 84, 128, 78, 71, 65, 211, 78, 71, 65, 81, 128, 78, 71,
- 65, 80, 128, 78, 71, 65, 78, 71, 85, 128, 78, 71, 65, 78, 128, 78, 71,
- 65, 73, 128, 78, 71, 65, 72, 128, 78, 71, 65, 65, 73, 128, 78, 71, 193,
- 78, 70, 128, 78, 69, 88, 212, 78, 69, 88, 128, 78, 69, 87, 83, 80, 65,
- 80, 69, 82, 128, 78, 69, 87, 76, 73, 78, 69, 128, 78, 69, 87, 76, 73, 78,
- 197, 78, 69, 87, 193, 78, 69, 87, 128, 78, 69, 215, 78, 69, 85, 84, 82,
- 65, 76, 128, 78, 69, 85, 84, 82, 65, 204, 78, 69, 85, 84, 69, 82, 128,
- 78, 69, 84, 87, 79, 82, 75, 69, 196, 78, 69, 212, 78, 69, 83, 84, 73, 78,
- 199, 78, 69, 83, 84, 69, 196, 78, 69, 83, 83, 85, 83, 128, 78, 69, 82,
- 196, 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, 84, 85, 78, 69, 128,
- 78, 69, 80, 84, 85, 78, 197, 78, 69, 80, 128, 78, 69, 79, 128, 78, 69,
- 207, 78, 69, 78, 79, 69, 128, 78, 69, 78, 65, 78, 79, 128, 78, 69, 78,
- 128, 78, 69, 76, 128, 78, 69, 73, 84, 72, 69, 210, 78, 69, 71, 65, 84,
- 73, 86, 197, 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 71, 65, 84, 69,
- 196, 78, 69, 69, 68, 76, 69, 128, 78, 69, 67, 75, 84, 73, 69, 128, 78,
- 69, 67, 75, 128, 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78, 69,
- 45, 75, 79, 128, 78, 68, 85, 88, 128, 78, 68, 85, 84, 128, 78, 68, 85,
- 82, 88, 128, 78, 68, 85, 82, 128, 78, 68, 85, 80, 128, 78, 68, 85, 78,
- 128, 78, 68, 213, 78, 68, 79, 88, 128, 78, 68, 79, 84, 128, 78, 68, 79,
- 80, 128, 78, 68, 79, 79, 128, 78, 68, 79, 78, 128, 78, 68, 79, 77, 66,
- 85, 128, 78, 68, 79, 76, 197, 78, 68, 73, 88, 128, 78, 68, 73, 84, 128,
- 78, 68, 73, 81, 128, 78, 68, 73, 80, 128, 78, 68, 73, 69, 88, 128, 78,
- 68, 73, 69, 128, 78, 68, 73, 68, 65, 128, 78, 68, 73, 65, 81, 128, 78,
- 68, 69, 88, 128, 78, 68, 69, 85, 88, 128, 78, 68, 69, 85, 84, 128, 78,
- 68, 69, 85, 65, 69, 82, 69, 69, 128, 78, 68, 69, 80, 128, 78, 68, 69, 69,
- 128, 78, 68, 69, 128, 78, 68, 65, 88, 128, 78, 68, 65, 84, 128, 78, 68,
- 65, 80, 128, 78, 68, 65, 77, 128, 78, 68, 65, 65, 78, 71, 71, 69, 85, 65,
- 69, 84, 128, 78, 68, 65, 65, 128, 78, 68, 65, 193, 78, 67, 72, 65, 85,
- 128, 78, 67, 65, 128, 78, 66, 89, 88, 128, 78, 66, 89, 84, 128, 78, 66,
- 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, 66, 89, 80, 128, 78, 66, 89,
- 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, 128, 78, 66, 85, 82, 88, 128,
- 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, 78, 66, 85, 128, 78, 66, 79,
- 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, 80, 128, 78, 66, 79, 128, 78,
- 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, 66, 73, 80, 128, 78, 66, 73,
- 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 128, 78, 66, 73,
- 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, 78, 66, 65, 84, 128, 78, 66,
- 65, 80, 128, 78, 66, 65, 128, 78, 65, 90, 65, 210, 78, 65, 89, 65, 78,
- 78, 65, 128, 78, 65, 89, 128, 78, 65, 88, 73, 65, 206, 78, 65, 88, 128,
- 78, 65, 85, 84, 72, 83, 128, 78, 65, 85, 83, 69, 65, 84, 69, 196, 78, 65,
- 85, 68, 73, 218, 78, 65, 84, 85, 82, 65, 204, 78, 65, 84, 73, 79, 78, 65,
- 204, 78, 65, 83, 75, 65, 80, 201, 78, 65, 83, 72, 73, 128, 78, 65, 83,
- 65, 76, 73, 90, 65, 84, 73, 79, 78, 128, 78, 65, 83, 65, 76, 73, 90, 65,
- 84, 73, 79, 206, 78, 65, 83, 65, 204, 78, 65, 82, 82, 79, 215, 78, 65,
- 82, 128, 78, 65, 81, 128, 78, 65, 79, 211, 78, 65, 78, 83, 65, 78, 65,
- 81, 128, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, 128, 78, 65, 78, 68, 73,
- 78, 65, 71, 65, 82, 201, 78, 65, 78, 68, 128, 78, 65, 78, 65, 128, 78,
- 65, 77, 69, 128, 78, 65, 77, 197, 78, 65, 77, 50, 128, 78, 65, 75, 128,
- 78, 65, 73, 82, 193, 78, 65, 73, 204, 78, 65, 71, 82, 201, 78, 65, 71,
- 65, 82, 128, 78, 65, 71, 65, 128, 78, 65, 71, 193, 78, 65, 71, 128, 78,
- 65, 199, 78, 65, 69, 128, 78, 65, 66, 76, 65, 128, 78, 65, 66, 65, 84,
- 65, 69, 65, 206, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65,
- 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, 73, 128, 78, 65, 193,
- 78, 65, 52, 128, 78, 65, 50, 128, 78, 65, 45, 57, 128, 78, 65, 45, 56,
- 128, 78, 65, 45, 55, 128, 78, 65, 45, 54, 128, 78, 65, 45, 53, 128, 78,
- 65, 45, 52, 128, 78, 65, 45, 51, 128, 78, 65, 45, 50, 128, 78, 65, 45,
- 49, 128, 78, 48, 52, 50, 128, 78, 48, 52, 49, 128, 78, 48, 52, 48, 128,
- 78, 48, 51, 57, 128, 78, 48, 51, 56, 128, 78, 48, 51, 55, 65, 128, 78,
- 48, 51, 55, 128, 78, 48, 51, 54, 128, 78, 48, 51, 53, 65, 128, 78, 48,
- 51, 53, 128, 78, 48, 51, 52, 65, 128, 78, 48, 51, 52, 128, 78, 48, 51,
- 51, 65, 128, 78, 48, 51, 51, 128, 78, 48, 51, 50, 128, 78, 48, 51, 49,
- 128, 78, 48, 51, 48, 128, 78, 48, 50, 57, 128, 78, 48, 50, 56, 128, 78,
- 48, 50, 55, 128, 78, 48, 50, 54, 128, 78, 48, 50, 53, 65, 128, 78, 48,
- 50, 53, 128, 78, 48, 50, 52, 128, 78, 48, 50, 51, 128, 78, 48, 50, 50,
- 128, 78, 48, 50, 49, 128, 78, 48, 50, 48, 128, 78, 48, 49, 57, 128, 78,
- 48, 49, 56, 66, 128, 78, 48, 49, 56, 65, 128, 78, 48, 49, 56, 128, 78,
- 48, 49, 55, 128, 78, 48, 49, 54, 128, 78, 48, 49, 53, 128, 78, 48, 49,
- 52, 128, 78, 48, 49, 51, 128, 78, 48, 49, 50, 128, 78, 48, 49, 49, 128,
- 78, 48, 49, 48, 128, 78, 48, 48, 57, 128, 78, 48, 48, 56, 128, 78, 48,
- 48, 55, 128, 78, 48, 48, 54, 128, 78, 48, 48, 53, 128, 78, 48, 48, 52,
- 128, 78, 48, 48, 51, 128, 78, 48, 48, 50, 128, 78, 48, 48, 49, 128, 78,
- 45, 77, 85, 45, 77, 79, 45, 50, 128, 78, 45, 77, 85, 45, 77, 79, 45, 49,
- 128, 78, 45, 67, 82, 69, 197, 78, 45, 65, 82, 217, 77, 89, 88, 128, 77,
- 89, 84, 128, 77, 89, 83, 76, 73, 84, 69, 128, 77, 89, 80, 128, 77, 89,
- 65, 128, 77, 89, 193, 77, 89, 128, 77, 87, 79, 79, 128, 77, 87, 79, 128,
- 77, 87, 73, 73, 128, 77, 87, 73, 128, 77, 87, 69, 69, 128, 77, 87, 69,
- 128, 77, 87, 65, 65, 128, 77, 87, 65, 128, 77, 87, 128, 77, 215, 77, 86,
- 83, 128, 77, 86, 79, 80, 128, 77, 86, 73, 128, 77, 86, 69, 85, 65, 69,
- 78, 71, 65, 77, 128, 77, 86, 128, 77, 214, 77, 85, 88, 128, 77, 85, 85,
- 86, 85, 90, 72, 65, 75, 75, 85, 128, 77, 85, 85, 83, 73, 75, 65, 84, 79,
- 65, 78, 128, 77, 85, 85, 82, 68, 72, 65, 74, 193, 77, 85, 85, 128, 77,
- 85, 84, 72, 65, 76, 73, 89, 65, 128, 77, 85, 84, 128, 77, 85, 83, 73, 67,
- 128, 77, 85, 83, 73, 195, 77, 85, 83, 72, 82, 79, 79, 77, 128, 77, 85,
- 83, 72, 51, 128, 77, 85, 83, 72, 179, 77, 85, 83, 72, 128, 77, 85, 83,
- 200, 77, 85, 83, 128, 77, 85, 82, 88, 128, 77, 85, 82, 71, 85, 50, 128,
- 77, 85, 82, 69, 128, 77, 85, 82, 68, 65, 128, 77, 85, 82, 68, 193, 77,
- 85, 82, 128, 77, 85, 81, 68, 65, 77, 128, 77, 85, 80, 128, 77, 85, 79,
- 88, 128, 77, 85, 79, 84, 128, 77, 85, 79, 80, 128, 77, 85, 79, 77, 65,
- 69, 128, 77, 85, 79, 128, 77, 85, 78, 83, 85, 66, 128, 77, 85, 78, 65,
- 72, 128, 77, 85, 78, 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 77, 85,
- 76, 84, 73, 83, 69, 212, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73,
- 79, 78, 128, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 206, 77,
- 85, 76, 84, 73, 80, 76, 69, 128, 77, 85, 76, 84, 73, 80, 76, 197, 77, 85,
- 76, 84, 73, 79, 67, 85, 76, 65, 210, 77, 85, 76, 84, 73, 77, 65, 80, 128,
- 77, 85, 76, 84, 201, 77, 85, 76, 84, 65, 78, 201, 77, 85, 75, 80, 72, 82,
- 69, 78, 71, 128, 77, 85, 75, 75, 85, 82, 85, 78, 73, 128, 77, 85, 73, 78,
- 128, 77, 85, 71, 83, 128, 77, 85, 71, 128, 77, 85, 199, 77, 85, 69, 78,
- 128, 77, 85, 69, 128, 77, 85, 67, 72, 128, 77, 85, 67, 200, 77, 85, 67,
- 65, 65, 68, 128, 77, 85, 65, 83, 128, 77, 85, 65, 78, 128, 77, 85, 65,
- 69, 128, 77, 85, 45, 71, 65, 65, 72, 76, 65, 193, 77, 85, 45, 52, 128,
- 77, 85, 45, 51, 128, 77, 85, 45, 50, 128, 77, 85, 45, 49, 128, 77, 213,
- 77, 84, 65, 86, 82, 85, 76, 201, 77, 83, 128, 77, 82, 207, 77, 210, 77,
- 80, 65, 128, 77, 79, 89, 65, 73, 128, 77, 79, 88, 128, 77, 79, 86, 73,
- 197, 77, 79, 86, 69, 211, 77, 79, 86, 69, 77, 69, 78, 84, 45, 87, 65, 76,
- 76, 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 72, 73, 78,
- 71, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 70, 76, 79, 79, 82, 80, 76,
- 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 68, 73, 65, 71, 79, 78,
- 65, 204, 77, 79, 86, 69, 77, 69, 78, 84, 128, 77, 79, 86, 69, 77, 69, 78,
- 212, 77, 79, 86, 69, 196, 77, 79, 86, 69, 128, 77, 79, 85, 84, 72, 128,
- 77, 79, 85, 83, 69, 128, 77, 79, 85, 83, 197, 77, 79, 85, 78, 84, 65, 73,
- 78, 83, 128, 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 79, 85, 78, 84, 65,
- 73, 206, 77, 79, 85, 78, 212, 77, 79, 85, 78, 68, 128, 77, 79, 85, 78,
- 196, 77, 79, 84, 79, 82, 87, 65, 89, 128, 77, 79, 84, 79, 82, 73, 90, 69,
- 196, 77, 79, 84, 79, 82, 67, 89, 67, 76, 69, 128, 77, 79, 84, 79, 210,
- 77, 79, 84, 72, 69, 82, 128, 77, 79, 84, 72, 69, 210, 77, 79, 84, 128,
- 77, 79, 83, 81, 85, 73, 84, 79, 128, 77, 79, 83, 81, 85, 69, 128, 77, 79,
- 82, 84, 85, 85, 77, 128, 77, 79, 82, 84, 65, 82, 128, 77, 79, 82, 80, 72,
- 79, 76, 79, 71, 73, 67, 65, 204, 77, 79, 82, 78, 73, 78, 71, 128, 77, 79,
- 80, 128, 77, 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, 79, 79, 78, 128,
- 77, 79, 79, 206, 77, 79, 79, 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85,
- 84, 128, 77, 79, 79, 68, 128, 77, 79, 79, 196, 77, 79, 79, 128, 77, 79,
- 78, 84, 73, 69, 69, 78, 128, 77, 79, 78, 84, 72, 128, 77, 79, 78, 84,
- 200, 77, 79, 78, 83, 84, 69, 82, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76,
- 197, 77, 79, 78, 79, 83, 80, 65, 67, 197, 77, 79, 78, 79, 82, 65, 73, 76,
- 128, 77, 79, 78, 79, 71, 82, 65, 80, 200, 77, 79, 78, 79, 71, 82, 65, 77,
- 77, 79, 211, 77, 79, 78, 79, 71, 82, 65, 205, 77, 79, 78, 79, 70, 79, 78,
- 73, 65, 83, 128, 77, 79, 78, 79, 67, 85, 76, 65, 210, 77, 79, 78, 79, 67,
- 76, 69, 128, 77, 79, 78, 75, 69, 89, 128, 77, 79, 78, 75, 69, 217, 77,
- 79, 78, 73, 128, 77, 79, 78, 71, 75, 69, 85, 65, 69, 81, 128, 77, 79, 78,
- 69, 89, 45, 77, 79, 85, 84, 200, 77, 79, 78, 69, 217, 77, 79, 78, 128,
- 77, 79, 206, 77, 79, 76, 128, 77, 79, 72, 65, 77, 77, 65, 196, 77, 79,
- 68, 85, 76, 207, 77, 79, 68, 73, 70, 73, 69, 82, 45, 57, 128, 77, 79, 68,
- 73, 70, 73, 69, 82, 45, 56, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 55,
- 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 54, 128, 77, 79, 68, 73, 70, 73,
- 69, 82, 45, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 52, 128, 77, 79,
- 68, 73, 70, 73, 69, 82, 45, 51, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45,
- 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 54, 128, 77, 79, 68, 73,
- 70, 73, 69, 82, 45, 49, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49,
- 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 51, 128, 77, 79, 68, 73,
- 70, 73, 69, 82, 45, 49, 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49,
- 49, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 48, 128, 77, 79, 68, 73,
- 70, 73, 69, 82, 128, 77, 79, 68, 201, 77, 79, 68, 69, 83, 84, 89, 128,
- 77, 79, 68, 69, 82, 206, 77, 79, 68, 69, 77, 128, 77, 79, 68, 69, 76, 83,
- 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 69, 128, 77, 79, 66, 73, 76,
- 197, 77, 79, 65, 128, 77, 79, 45, 54, 128, 77, 79, 45, 53, 128, 77, 79,
- 45, 52, 128, 77, 79, 45, 51, 128, 77, 207, 77, 78, 89, 65, 205, 77, 78,
- 65, 83, 128, 77, 77, 83, 80, 128, 77, 77, 128, 77, 205, 77, 76, 65, 128,
- 77, 76, 128, 77, 75, 80, 65, 82, 65, 209, 77, 73, 88, 128, 77, 73, 84,
- 128, 77, 73, 83, 82, 65, 128, 77, 73, 82, 82, 79, 82, 128, 77, 73, 82,
- 73, 66, 65, 65, 82, 85, 128, 77, 73, 82, 73, 128, 77, 73, 82, 69, 68,
- 128, 77, 73, 80, 128, 77, 73, 78, 89, 128, 77, 73, 78, 85, 83, 45, 79,
- 82, 45, 80, 76, 85, 211, 77, 73, 78, 85, 83, 128, 77, 73, 78, 73, 83, 84,
- 69, 82, 128, 77, 73, 78, 73, 77, 73, 90, 69, 128, 77, 73, 78, 73, 77, 65,
- 128, 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83,
- 128, 77, 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, 76, 73, 79, 78,
- 83, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77, 73, 76, 76, 69, 84, 128,
- 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73, 76, 75, 217, 77, 73, 76,
- 75, 128, 77, 73, 76, 73, 84, 65, 82, 217, 77, 73, 76, 128, 77, 73, 75,
- 85, 82, 79, 78, 128, 77, 73, 75, 82, 79, 206, 77, 73, 75, 82, 73, 128,
- 77, 73, 73, 78, 128, 77, 73, 73, 77, 128, 77, 73, 73, 128, 77, 73, 199,
- 77, 73, 69, 88, 128, 77, 73, 69, 85, 77, 45, 84, 73, 75, 69, 85, 84, 128,
- 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 77, 73,
- 69, 85, 77, 45, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 77, 73, 69,
- 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69,
- 85, 80, 45, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69, 85,
- 80, 128, 77, 73, 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 77, 73,
- 69, 85, 77, 45, 78, 73, 69, 85, 78, 128, 77, 73, 69, 85, 77, 45, 67, 73,
- 69, 85, 67, 128, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128,
- 77, 73, 69, 85, 205, 77, 73, 69, 80, 128, 77, 73, 69, 69, 128, 77, 73,
- 69, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 68, 68, 76, 69, 45, 87, 69,
- 76, 83, 200, 77, 73, 68, 68, 76, 69, 128, 77, 73, 68, 45, 76, 69, 86, 69,
- 204, 77, 73, 196, 77, 73, 67, 82, 79, 83, 67, 79, 80, 69, 128, 77, 73,
- 67, 82, 79, 80, 72, 79, 78, 69, 128, 77, 73, 67, 82, 79, 66, 69, 128, 77,
- 73, 67, 82, 207, 77, 73, 67, 210, 77, 73, 45, 55, 128, 77, 73, 45, 54,
- 128, 77, 73, 45, 53, 128, 77, 73, 45, 52, 128, 77, 73, 45, 51, 128, 77,
- 73, 45, 50, 128, 77, 73, 45, 49, 128, 77, 72, 90, 128, 77, 72, 65, 128,
- 77, 72, 128, 77, 71, 85, 88, 128, 77, 71, 85, 84, 128, 77, 71, 85, 82,
- 88, 128, 77, 71, 85, 82, 128, 77, 71, 85, 80, 128, 77, 71, 85, 79, 88,
- 128, 77, 71, 85, 79, 80, 128, 77, 71, 85, 79, 128, 77, 71, 85, 128, 77,
- 71, 79, 88, 128, 77, 71, 79, 84, 128, 77, 71, 79, 80, 128, 77, 71, 79,
- 128, 77, 71, 207, 77, 71, 73, 69, 88, 128, 77, 71, 73, 69, 128, 77, 71,
- 69, 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 128, 77, 71, 66, 85, 128,
- 77, 71, 66, 79, 79, 128, 77, 71, 66, 79, 70, 85, 77, 128, 77, 71, 66, 79,
- 128, 77, 71, 66, 73, 128, 77, 71, 66, 69, 85, 78, 128, 77, 71, 66, 69,
- 78, 128, 77, 71, 66, 69, 69, 128, 77, 71, 66, 69, 128, 77, 71, 66, 65,
- 83, 65, 81, 128, 77, 71, 66, 65, 83, 65, 128, 77, 71, 65, 88, 128, 77,
- 71, 65, 84, 128, 77, 71, 65, 80, 128, 77, 71, 65, 128, 77, 71, 128, 77,
- 70, 79, 78, 128, 77, 70, 79, 206, 77, 70, 79, 128, 77, 70, 73, 89, 65,
- 81, 128, 77, 70, 73, 69, 69, 128, 77, 70, 69, 85, 84, 128, 77, 70, 69,
- 85, 81, 128, 77, 70, 69, 85, 65, 69, 128, 77, 70, 65, 65, 128, 77, 69,
- 90, 90, 79, 128, 77, 69, 88, 128, 77, 69, 85, 212, 77, 69, 85, 81, 128,
- 77, 69, 85, 78, 74, 79, 77, 78, 68, 69, 85, 81, 128, 77, 69, 85, 78, 128,
- 77, 69, 84, 82, 79, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 69, 84, 82,
- 73, 65, 128, 77, 69, 84, 82, 69, 84, 69, 211, 77, 69, 84, 79, 66, 69, 76,
- 85, 83, 128, 77, 69, 84, 69, 75, 128, 77, 69, 84, 69, 71, 128, 77, 69,
- 84, 65, 76, 128, 77, 69, 84, 193, 77, 69, 83, 83, 69, 78, 73, 65, 206,
- 77, 69, 83, 83, 65, 71, 69, 128, 77, 69, 83, 83, 65, 71, 197, 77, 69, 83,
- 79, 128, 77, 69, 83, 73, 128, 77, 69, 83, 72, 128, 77, 69, 82, 80, 69,
- 82, 83, 79, 78, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 82, 75, 72,
- 193, 77, 69, 82, 73, 68, 73, 65, 78, 83, 128, 77, 69, 82, 73, 128, 77,
- 69, 82, 71, 69, 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 82, 67, 85,
- 82, 217, 77, 69, 78, 79, 82, 65, 200, 77, 69, 78, 79, 69, 128, 77, 69,
- 78, 68, 85, 84, 128, 77, 69, 78, 128, 77, 69, 77, 79, 128, 77, 69, 77,
- 66, 69, 82, 83, 72, 73, 80, 128, 77, 69, 77, 66, 69, 82, 128, 77, 69, 77,
- 66, 69, 210, 77, 69, 77, 45, 81, 79, 80, 72, 128, 77, 69, 77, 128, 77,
- 69, 205, 77, 69, 76, 79, 68, 73, 195, 77, 69, 76, 73, 75, 128, 77, 69,
- 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78, 128, 77, 69, 71, 65, 80, 72,
- 79, 78, 69, 128, 77, 69, 71, 65, 76, 73, 128, 77, 69, 69, 84, 79, 82, 85,
- 128, 77, 69, 69, 84, 69, 201, 77, 69, 69, 84, 128, 77, 69, 69, 77, 85,
- 128, 77, 69, 69, 77, 128, 77, 69, 69, 202, 77, 69, 69, 69, 69, 128, 77,
- 69, 68, 73, 85, 77, 128, 77, 69, 68, 73, 85, 205, 77, 69, 68, 73, 69, 86,
- 65, 204, 77, 69, 68, 73, 67, 73, 78, 69, 128, 77, 69, 68, 73, 67, 65,
- 204, 77, 69, 68, 73, 65, 204, 77, 69, 68, 69, 70, 65, 73, 68, 82, 73,
- 206, 77, 69, 68, 65, 76, 128, 77, 69, 67, 72, 65, 78, 73, 67, 65, 204,
- 77, 69, 65, 84, 128, 77, 69, 65, 212, 77, 69, 65, 83, 85, 82, 69, 196,
- 77, 69, 65, 83, 85, 82, 69, 128, 77, 69, 65, 83, 85, 82, 197, 77, 69, 45,
- 77, 65, 128, 77, 69, 45, 50, 128, 77, 69, 45, 49, 128, 77, 68, 85, 206,
- 77, 196, 77, 67, 72, 213, 77, 67, 72, 65, 206, 77, 195, 77, 66, 85, 85,
- 128, 77, 66, 85, 79, 81, 128, 77, 66, 85, 79, 128, 77, 66, 85, 69, 128,
- 77, 66, 85, 65, 69, 77, 128, 77, 66, 85, 65, 69, 128, 77, 66, 79, 79,
- 128, 77, 66, 79, 128, 77, 66, 73, 84, 128, 77, 66, 73, 212, 77, 66, 73,
- 82, 73, 69, 69, 78, 128, 77, 66, 73, 128, 77, 66, 69, 85, 88, 128, 77,
- 66, 69, 85, 82, 73, 128, 77, 66, 69, 85, 77, 128, 77, 66, 69, 82, 65, 69,
- 128, 77, 66, 69, 78, 128, 77, 66, 69, 69, 75, 69, 69, 84, 128, 77, 66,
- 69, 69, 128, 77, 66, 69, 128, 77, 66, 65, 81, 128, 77, 66, 65, 78, 89,
- 73, 128, 77, 66, 65, 65, 82, 65, 69, 128, 77, 66, 65, 65, 75, 69, 84,
- 128, 77, 66, 65, 65, 128, 77, 66, 65, 193, 77, 66, 193, 77, 66, 52, 128,
- 77, 66, 51, 128, 77, 66, 50, 128, 77, 65, 89, 69, 203, 77, 65, 89, 65,
- 78, 78, 65, 128, 77, 65, 89, 65, 206, 77, 65, 89, 128, 77, 65, 88, 73,
- 77, 73, 90, 69, 128, 77, 65, 88, 73, 77, 65, 128, 77, 65, 88, 128, 77,
- 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128, 77, 65, 84, 82, 73, 88,
- 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77, 65, 84, 128, 77, 65,
- 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65, 83, 83, 65, 71, 69,
- 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128, 77, 65, 83, 203, 77,
- 65, 83, 72, 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, 128, 77, 65, 83, 67,
- 85, 76, 73, 78, 197, 77, 65, 83, 65, 82, 65, 205, 77, 65, 82, 89, 128,
- 77, 65, 82, 87, 65, 82, 201, 77, 65, 82, 85, 75, 85, 128, 77, 65, 82, 84,
- 89, 82, 73, 193, 77, 65, 82, 84, 73, 65, 204, 77, 65, 82, 82, 89, 73, 78,
- 199, 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, 82, 65, 84, 65, 78,
- 128, 77, 65, 82, 75, 211, 77, 65, 82, 75, 69, 82, 128, 77, 65, 82, 75,
- 45, 52, 128, 77, 65, 82, 75, 45, 51, 128, 77, 65, 82, 75, 45, 50, 128,
- 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 69, 128, 77, 65, 82, 67, 72, 69,
- 206, 77, 65, 82, 67, 72, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83, 84, 65,
- 67, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, 82, 67,
- 65, 83, 73, 84, 69, 128, 77, 65, 82, 66, 85, 84, 65, 128, 77, 65, 82, 66,
- 85, 84, 193, 77, 65, 82, 128, 77, 65, 81, 65, 70, 128, 77, 65, 81, 128,
- 77, 65, 80, 76, 197, 77, 65, 80, 73, 81, 128, 77, 65, 208, 77, 65, 79,
- 128, 77, 65, 78, 85, 65, 204, 77, 65, 78, 84, 69, 76, 80, 73, 69, 67,
- 197, 77, 65, 78, 83, 89, 79, 78, 128, 77, 65, 78, 83, 85, 65, 69, 128,
- 77, 65, 78, 78, 65, 218, 77, 65, 78, 78, 65, 128, 77, 65, 78, 73, 67, 72,
- 65, 69, 65, 206, 77, 65, 78, 71, 79, 128, 77, 65, 78, 71, 65, 76, 65, 77,
- 128, 77, 65, 78, 68, 65, 82, 73, 78, 128, 77, 65, 78, 68, 65, 73, 76, 73,
- 78, 199, 77, 65, 78, 68, 65, 73, 195, 77, 65, 78, 67, 72, 213, 77, 65,
- 78, 65, 212, 77, 65, 78, 65, 67, 76, 69, 83, 128, 77, 65, 77, 77, 79, 84,
- 72, 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 76, 69, 69, 82, 73, 128,
- 77, 65, 76, 197, 77, 65, 76, 65, 75, 79, 206, 77, 65, 75, 83, 85, 82, 65,
- 128, 77, 65, 75, 83, 85, 82, 193, 77, 65, 75, 65, 83, 65, 210, 77, 65,
- 73, 90, 69, 128, 77, 65, 73, 89, 65, 77, 79, 75, 128, 77, 65, 73, 84, 65,
- 73, 75, 72, 85, 128, 77, 65, 73, 82, 85, 128, 77, 65, 73, 77, 85, 65, 78,
- 128, 77, 65, 73, 77, 65, 76, 65, 73, 128, 77, 65, 73, 76, 66, 79, 216,
- 77, 65, 73, 75, 85, 82, 79, 128, 77, 65, 73, 68, 69, 78, 128, 77, 65, 73,
- 128, 77, 65, 72, 74, 79, 78, 199, 77, 65, 72, 72, 65, 128, 77, 65, 72,
- 65, 80, 82, 65, 78, 65, 128, 77, 65, 72, 65, 80, 65, 75, 72, 128, 77, 65,
- 72, 65, 74, 65, 78, 201, 77, 65, 72, 65, 65, 80, 82, 65, 65, 78, 193, 77,
- 65, 72, 128, 77, 65, 71, 78, 73, 70, 89, 73, 78, 199, 77, 65, 71, 78, 69,
- 84, 128, 77, 65, 71, 73, 195, 77, 65, 71, 69, 128, 77, 65, 69, 83, 73,
- 128, 77, 65, 69, 78, 89, 73, 128, 77, 65, 69, 78, 74, 69, 84, 128, 77,
- 65, 69, 77, 86, 69, 85, 88, 128, 77, 65, 69, 77, 75, 80, 69, 78, 128, 77,
- 65, 69, 77, 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, 71, 66, 73, 69,
- 69, 128, 77, 65, 69, 77, 66, 65, 128, 77, 65, 69, 77, 128, 77, 65, 69,
- 76, 69, 69, 128, 77, 65, 69, 75, 69, 85, 80, 128, 77, 65, 68, 89, 65,
- 128, 77, 65, 68, 85, 128, 77, 65, 68, 68, 65, 72, 128, 77, 65, 68, 68,
- 65, 200, 77, 65, 68, 68, 65, 128, 77, 65, 68, 68, 193, 77, 65, 67, 82,
- 79, 78, 45, 71, 82, 65, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 66, 82,
- 69, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 65, 67, 85, 84, 69, 128, 77,
- 65, 67, 82, 79, 78, 128, 77, 65, 67, 82, 79, 206, 77, 65, 67, 72, 73, 78,
- 69, 128, 77, 65, 65, 89, 89, 65, 65, 128, 77, 65, 65, 73, 128, 77, 65,
- 65, 128, 77, 65, 50, 128, 77, 65, 45, 55, 128, 77, 65, 45, 54, 128, 77,
- 65, 45, 53, 128, 77, 65, 45, 52, 128, 77, 65, 45, 51, 128, 77, 65, 45,
- 50, 128, 77, 65, 45, 49, 128, 77, 49, 57, 183, 77, 49, 57, 182, 77, 49,
- 57, 181, 77, 49, 57, 180, 77, 49, 57, 179, 77, 49, 57, 178, 77, 49, 57,
- 177, 77, 49, 57, 176, 77, 49, 56, 185, 77, 49, 56, 184, 77, 49, 56, 183,
- 77, 49, 56, 182, 77, 49, 56, 181, 77, 49, 56, 180, 77, 49, 56, 179, 77,
- 49, 56, 178, 77, 49, 56, 177, 77, 49, 56, 176, 77, 49, 55, 185, 77, 49,
- 55, 184, 77, 49, 55, 183, 77, 49, 55, 182, 77, 49, 55, 181, 77, 49, 55,
- 180, 77, 49, 55, 179, 77, 49, 55, 178, 77, 49, 55, 177, 77, 49, 55, 176,
- 77, 49, 54, 185, 77, 49, 54, 184, 77, 49, 54, 183, 77, 49, 54, 182, 77,
- 49, 54, 181, 77, 49, 54, 180, 77, 49, 54, 179, 77, 49, 54, 178, 77, 49,
- 54, 177, 77, 49, 54, 176, 77, 49, 53, 185, 77, 49, 53, 184, 77, 49, 53,
- 183, 77, 49, 53, 182, 77, 49, 53, 181, 77, 49, 53, 180, 77, 49, 53, 179,
- 77, 49, 53, 178, 77, 49, 53, 177, 77, 49, 53, 176, 77, 49, 52, 185, 77,
- 49, 52, 184, 77, 49, 52, 183, 77, 49, 52, 182, 77, 49, 52, 181, 77, 49,
- 52, 180, 77, 49, 52, 179, 77, 49, 52, 178, 77, 49, 52, 177, 77, 49, 52,
- 176, 77, 49, 51, 185, 77, 49, 51, 184, 77, 49, 51, 183, 77, 49, 51, 182,
- 77, 49, 51, 181, 77, 49, 51, 180, 77, 49, 51, 179, 77, 49, 51, 178, 77,
- 49, 51, 177, 77, 49, 51, 176, 77, 49, 50, 185, 77, 49, 50, 184, 77, 49,
- 50, 183, 77, 49, 50, 182, 77, 49, 50, 181, 77, 49, 50, 180, 77, 49, 50,
- 179, 77, 49, 50, 178, 77, 49, 50, 177, 77, 49, 50, 176, 77, 49, 49, 185,
- 77, 49, 49, 184, 77, 49, 49, 183, 77, 49, 49, 182, 77, 49, 49, 181, 77,
- 49, 49, 180, 77, 49, 49, 179, 77, 49, 49, 178, 77, 49, 49, 177, 77, 49,
- 49, 176, 77, 49, 48, 185, 77, 49, 48, 184, 77, 49, 48, 183, 77, 49, 48,
- 182, 77, 49, 48, 181, 77, 49, 48, 180, 77, 49, 48, 179, 77, 49, 48, 178,
- 77, 49, 48, 177, 77, 49, 48, 176, 77, 48, 57, 185, 77, 48, 57, 184, 77,
- 48, 57, 183, 77, 48, 57, 182, 77, 48, 57, 181, 77, 48, 57, 180, 77, 48,
- 57, 179, 77, 48, 57, 178, 77, 48, 57, 177, 77, 48, 57, 176, 77, 48, 56,
- 185, 77, 48, 56, 184, 77, 48, 56, 183, 77, 48, 56, 182, 77, 48, 56, 181,
- 77, 48, 56, 180, 77, 48, 56, 179, 77, 48, 56, 178, 77, 48, 56, 177, 77,
- 48, 56, 176, 77, 48, 55, 185, 77, 48, 55, 184, 77, 48, 55, 183, 77, 48,
- 55, 182, 77, 48, 55, 181, 77, 48, 55, 180, 77, 48, 55, 179, 77, 48, 55,
- 178, 77, 48, 55, 177, 77, 48, 55, 176, 77, 48, 54, 185, 77, 48, 54, 184,
- 77, 48, 54, 183, 77, 48, 54, 182, 77, 48, 54, 181, 77, 48, 54, 180, 77,
- 48, 54, 179, 77, 48, 54, 178, 77, 48, 54, 177, 77, 48, 54, 176, 77, 48,
- 53, 185, 77, 48, 53, 184, 77, 48, 53, 183, 77, 48, 53, 182, 77, 48, 53,
- 181, 77, 48, 53, 180, 77, 48, 53, 179, 77, 48, 53, 178, 77, 48, 53, 177,
- 77, 48, 53, 176, 77, 48, 52, 185, 77, 48, 52, 184, 77, 48, 52, 183, 77,
- 48, 52, 182, 77, 48, 52, 181, 77, 48, 52, 52, 128, 77, 48, 52, 180, 77,
- 48, 52, 51, 128, 77, 48, 52, 179, 77, 48, 52, 50, 128, 77, 48, 52, 178,
- 77, 48, 52, 49, 128, 77, 48, 52, 177, 77, 48, 52, 48, 65, 128, 77, 48,
- 52, 48, 128, 77, 48, 52, 176, 77, 48, 51, 57, 128, 77, 48, 51, 185, 77,
- 48, 51, 56, 128, 77, 48, 51, 184, 77, 48, 51, 55, 128, 77, 48, 51, 183,
- 77, 48, 51, 54, 128, 77, 48, 51, 182, 77, 48, 51, 53, 128, 77, 48, 51,
- 181, 77, 48, 51, 52, 128, 77, 48, 51, 180, 77, 48, 51, 51, 66, 128, 77,
- 48, 51, 51, 65, 128, 77, 48, 51, 51, 128, 77, 48, 51, 179, 77, 48, 51,
- 50, 128, 77, 48, 51, 178, 77, 48, 51, 49, 65, 128, 77, 48, 51, 49, 128,
- 77, 48, 51, 177, 77, 48, 51, 48, 128, 77, 48, 51, 176, 77, 48, 50, 57,
- 128, 77, 48, 50, 185, 77, 48, 50, 56, 65, 128, 77, 48, 50, 56, 128, 77,
- 48, 50, 184, 77, 48, 50, 55, 128, 77, 48, 50, 183, 77, 48, 50, 54, 128,
- 77, 48, 50, 182, 77, 48, 50, 53, 128, 77, 48, 50, 181, 77, 48, 50, 52,
- 65, 128, 77, 48, 50, 52, 128, 77, 48, 50, 180, 77, 48, 50, 51, 128, 77,
- 48, 50, 179, 77, 48, 50, 50, 65, 128, 77, 48, 50, 50, 128, 77, 48, 50,
- 178, 77, 48, 50, 49, 128, 77, 48, 50, 177, 77, 48, 50, 48, 128, 77, 48,
- 50, 176, 77, 48, 49, 57, 128, 77, 48, 49, 185, 77, 48, 49, 56, 128, 77,
- 48, 49, 184, 77, 48, 49, 55, 65, 128, 77, 48, 49, 55, 128, 77, 48, 49,
- 183, 77, 48, 49, 54, 65, 128, 77, 48, 49, 54, 128, 77, 48, 49, 182, 77,
- 48, 49, 53, 65, 128, 77, 48, 49, 53, 128, 77, 48, 49, 181, 77, 48, 49,
- 52, 128, 77, 48, 49, 180, 77, 48, 49, 51, 128, 77, 48, 49, 179, 77, 48,
- 49, 50, 72, 128, 77, 48, 49, 50, 71, 128, 77, 48, 49, 50, 70, 128, 77,
- 48, 49, 50, 69, 128, 77, 48, 49, 50, 68, 128, 77, 48, 49, 50, 67, 128,
- 77, 48, 49, 50, 66, 128, 77, 48, 49, 50, 65, 128, 77, 48, 49, 50, 128,
- 77, 48, 49, 178, 77, 48, 49, 49, 128, 77, 48, 49, 177, 77, 48, 49, 48,
- 65, 128, 77, 48, 49, 48, 128, 77, 48, 49, 176, 77, 48, 48, 57, 128, 77,
- 48, 48, 185, 77, 48, 48, 56, 128, 77, 48, 48, 184, 77, 48, 48, 55, 128,
- 77, 48, 48, 183, 77, 48, 48, 54, 128, 77, 48, 48, 182, 77, 48, 48, 53,
- 128, 77, 48, 48, 181, 77, 48, 48, 52, 128, 77, 48, 48, 180, 77, 48, 48,
- 51, 65, 128, 77, 48, 48, 51, 128, 77, 48, 48, 179, 77, 48, 48, 50, 128,
- 77, 48, 48, 178, 77, 48, 48, 49, 66, 128, 77, 48, 48, 49, 65, 128, 77,
- 48, 48, 49, 128, 77, 48, 48, 177, 76, 218, 76, 89, 89, 128, 76, 89, 88,
- 128, 76, 89, 84, 128, 76, 89, 82, 88, 128, 76, 89, 82, 128, 76, 89, 80,
- 128, 76, 89, 73, 84, 128, 76, 89, 73, 78, 199, 76, 89, 68, 73, 65, 206,
- 76, 89, 67, 73, 65, 206, 76, 88, 128, 76, 87, 79, 79, 128, 76, 87, 79,
- 128, 76, 87, 73, 73, 128, 76, 87, 73, 128, 76, 87, 69, 128, 76, 87, 65,
- 65, 128, 76, 87, 65, 128, 76, 85, 88, 128, 76, 85, 85, 128, 76, 85, 84,
- 128, 76, 85, 82, 88, 128, 76, 85, 80, 128, 76, 85, 79, 88, 128, 76, 85,
- 79, 84, 128, 76, 85, 79, 80, 128, 76, 85, 79, 128, 76, 85, 78, 71, 83,
- 73, 128, 76, 85, 78, 71, 83, 128, 76, 85, 78, 65, 84, 197, 76, 85, 205,
- 76, 85, 76, 128, 76, 85, 73, 83, 128, 76, 85, 72, 85, 82, 128, 76, 85,
- 72, 128, 76, 85, 200, 76, 85, 71, 71, 65, 71, 69, 128, 76, 85, 71, 65,
- 76, 128, 76, 85, 71, 65, 204, 76, 85, 69, 128, 76, 85, 197, 76, 85, 66,
- 128, 76, 85, 65, 69, 80, 128, 76, 85, 51, 128, 76, 85, 50, 128, 76, 85,
- 178, 76, 82, 79, 128, 76, 82, 77, 128, 76, 82, 73, 128, 76, 82, 69, 128,
- 76, 79, 90, 69, 78, 71, 69, 128, 76, 79, 90, 69, 78, 71, 197, 76, 79, 88,
- 128, 76, 79, 87, 69, 82, 69, 196, 76, 79, 87, 45, 82, 69, 86, 69, 82, 83,
- 69, 68, 45, 185, 76, 79, 87, 45, 77, 73, 196, 76, 79, 87, 45, 70, 65, 76,
- 76, 73, 78, 199, 76, 79, 87, 45, 185, 76, 79, 86, 197, 76, 79, 85, 82,
- 69, 128, 76, 79, 85, 68, 83, 80, 69, 65, 75, 69, 82, 128, 76, 79, 85, 68,
- 76, 217, 76, 79, 84, 85, 83, 128, 76, 79, 84, 85, 211, 76, 79, 84, 73,
- 79, 206, 76, 79, 84, 128, 76, 79, 83, 83, 76, 69, 83, 83, 128, 76, 79,
- 82, 82, 89, 128, 76, 79, 82, 82, 65, 73, 78, 69, 128, 76, 79, 81, 128,
- 76, 79, 80, 128, 76, 79, 79, 84, 128, 76, 79, 79, 80, 69, 196, 76, 79,
- 79, 80, 128, 76, 79, 79, 208, 76, 79, 79, 78, 128, 76, 79, 79, 203, 76,
- 79, 79, 128, 76, 79, 78, 83, 85, 77, 128, 76, 79, 78, 71, 65, 128, 76,
- 79, 78, 71, 193, 76, 79, 78, 71, 45, 76, 69, 71, 71, 69, 196, 76, 79, 78,
- 71, 45, 66, 82, 65, 78, 67, 72, 45, 89, 82, 128, 76, 79, 78, 71, 45, 66,
- 82, 65, 78, 67, 72, 45, 83, 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78,
- 67, 72, 45, 79, 83, 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45,
- 77, 65, 68, 210, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 72, 65,
- 71, 65, 76, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210,
- 76, 79, 77, 77, 65, 69, 128, 76, 79, 77, 128, 76, 79, 205, 76, 79, 76,
- 76, 73, 80, 79, 80, 128, 76, 79, 76, 76, 128, 76, 79, 71, 210, 76, 79,
- 71, 79, 84, 89, 80, 197, 76, 79, 71, 79, 71, 82, 65, 205, 76, 79, 71,
- 128, 76, 79, 68, 69, 83, 84, 79, 78, 69, 128, 76, 79, 67, 79, 77, 79, 84,
- 73, 86, 69, 128, 76, 79, 67, 75, 73, 78, 71, 45, 83, 72, 73, 70, 212, 76,
- 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 67, 65, 84, 73, 79, 78, 45, 87,
- 65, 76, 76, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 45, 70,
- 76, 79, 79, 82, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 128,
- 76, 79, 67, 65, 84, 73, 79, 206, 76, 79, 66, 83, 84, 69, 82, 128, 76, 79,
- 65, 128, 76, 78, 128, 76, 76, 85, 85, 128, 76, 76, 79, 79, 128, 76, 76,
- 76, 85, 85, 128, 76, 76, 76, 85, 128, 76, 76, 76, 79, 79, 128, 76, 76,
- 76, 79, 128, 76, 76, 76, 73, 73, 128, 76, 76, 76, 73, 128, 76, 76, 76,
- 69, 69, 128, 76, 76, 76, 69, 128, 76, 76, 76, 65, 85, 128, 76, 76, 76,
- 65, 73, 128, 76, 76, 76, 65, 65, 128, 76, 76, 76, 65, 128, 76, 76, 76,
- 128, 76, 76, 72, 65, 128, 76, 76, 65, 77, 65, 128, 76, 74, 85, 68, 73,
- 74, 69, 128, 76, 74, 69, 128, 76, 74, 128, 76, 73, 90, 65, 82, 68, 128,
- 76, 73, 88, 128, 76, 73, 87, 78, 128, 76, 73, 86, 82, 197, 76, 73, 84,
- 84, 76, 69, 128, 76, 73, 84, 84, 76, 197, 76, 73, 84, 84, 69, 210, 76,
- 73, 84, 82, 193, 76, 73, 84, 200, 76, 73, 83, 213, 76, 73, 83, 128, 76,
- 73, 82, 193, 76, 73, 81, 85, 73, 196, 76, 73, 81, 128, 76, 73, 80, 83,
- 84, 73, 67, 75, 128, 76, 73, 80, 211, 76, 73, 208, 76, 73, 78, 75, 73,
- 78, 199, 76, 73, 78, 75, 69, 196, 76, 73, 78, 203, 76, 73, 78, 71, 83,
- 65, 128, 76, 73, 78, 69, 83, 128, 76, 73, 78, 69, 211, 76, 73, 78, 69,
- 45, 57, 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69, 45, 51, 128,
- 76, 73, 78, 69, 45, 49, 128, 76, 73, 77, 77, 85, 52, 128, 76, 73, 77, 77,
- 85, 50, 128, 76, 73, 77, 77, 85, 128, 76, 73, 77, 77, 213, 76, 73, 77,
- 73, 84, 69, 196, 76, 73, 77, 73, 84, 65, 84, 73, 79, 78, 128, 76, 73, 77,
- 73, 84, 128, 76, 73, 77, 69, 128, 76, 73, 77, 66, 213, 76, 73, 77, 66,
- 211, 76, 73, 77, 194, 76, 73, 76, 89, 128, 76, 73, 76, 73, 84, 72, 128,
- 76, 73, 76, 128, 76, 73, 71, 72, 84, 78, 73, 78, 71, 128, 76, 73, 71, 72,
- 84, 78, 73, 78, 199, 76, 73, 71, 72, 84, 72, 79, 85, 83, 69, 128, 76, 73,
- 71, 72, 84, 128, 76, 73, 71, 65, 84, 73, 78, 199, 76, 73, 70, 84, 69, 82,
- 128, 76, 73, 70, 69, 128, 76, 73, 69, 88, 128, 76, 73, 69, 84, 128, 76,
- 73, 69, 80, 128, 76, 73, 69, 69, 128, 76, 73, 69, 128, 76, 73, 68, 128,
- 76, 73, 67, 75, 73, 78, 199, 76, 73, 66, 82, 65, 128, 76, 73, 66, 69, 82,
- 84, 89, 128, 76, 73, 65, 66, 73, 76, 73, 84, 217, 76, 72, 73, 73, 128,
- 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 72, 65, 199, 76, 72, 65, 65,
- 128, 76, 72, 128, 76, 69, 90, 72, 128, 76, 69, 88, 128, 76, 69, 86, 73,
- 84, 65, 84, 73, 78, 71, 128, 76, 69, 85, 77, 128, 76, 69, 85, 65, 69, 80,
- 128, 76, 69, 85, 65, 69, 77, 128, 76, 69, 85, 128, 76, 69, 213, 76, 69,
- 84, 84, 69, 82, 83, 128, 76, 69, 84, 84, 69, 82, 128, 76, 69, 212, 76,
- 69, 83, 83, 69, 210, 76, 69, 83, 83, 45, 84, 72, 65, 78, 128, 76, 69, 83,
- 83, 45, 84, 72, 65, 206, 76, 69, 83, 72, 128, 76, 69, 80, 67, 72, 193,
- 76, 69, 80, 128, 76, 69, 79, 80, 65, 82, 68, 128, 76, 69, 79, 128, 76,
- 69, 78, 84, 73, 67, 85, 76, 65, 210, 76, 69, 78, 73, 83, 128, 76, 69, 78,
- 73, 211, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, 76, 69, 78, 71, 84,
- 72, 45, 55, 128, 76, 69, 78, 71, 84, 72, 45, 54, 128, 76, 69, 78, 71, 84,
- 72, 45, 53, 128, 76, 69, 78, 71, 84, 72, 45, 52, 128, 76, 69, 78, 71, 84,
- 72, 45, 51, 128, 76, 69, 78, 71, 84, 72, 45, 50, 128, 76, 69, 78, 71, 84,
- 72, 45, 49, 128, 76, 69, 78, 71, 84, 200, 76, 69, 78, 71, 65, 128, 76,
- 69, 78, 71, 193, 76, 69, 77, 79, 78, 128, 76, 69, 77, 79, 73, 128, 76,
- 69, 76, 69, 84, 128, 76, 69, 76, 69, 212, 76, 69, 203, 76, 69, 73, 77,
- 77, 65, 128, 76, 69, 73, 77, 77, 193, 76, 69, 73, 128, 76, 69, 71, 83,
- 128, 76, 69, 71, 73, 79, 78, 128, 76, 69, 71, 69, 84, 79, 211, 76, 69,
- 71, 128, 76, 69, 199, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 76, 69,
- 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 76, 69, 70, 84, 45, 83, 84,
- 69, 205, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 69, 70, 84, 45, 83, 72,
- 65, 68, 69, 196, 76, 69, 70, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 76,
- 69, 70, 84, 45, 76, 73, 71, 72, 84, 69, 196, 76, 69, 70, 84, 45, 72, 65,
- 78, 68, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, 196, 76, 69, 70, 84, 45,
- 70, 65, 67, 73, 78, 199, 76, 69, 70, 84, 128, 76, 69, 69, 82, 65, 69, 87,
- 65, 128, 76, 69, 69, 75, 128, 76, 69, 69, 69, 69, 128, 76, 69, 68, 71,
- 69, 82, 128, 76, 69, 65, 84, 72, 69, 82, 128, 76, 69, 65, 78, 73, 78,
- 199, 76, 69, 65, 70, 217, 76, 69, 65, 70, 128, 76, 69, 65, 198, 76, 69,
- 65, 68, 69, 82, 128, 76, 69, 65, 196, 76, 68, 65, 78, 128, 76, 68, 50,
- 128, 76, 67, 201, 76, 67, 197, 76, 65, 90, 217, 76, 65, 89, 65, 78, 78,
- 65, 128, 76, 65, 88, 128, 76, 65, 87, 128, 76, 65, 215, 76, 65, 85, 76,
- 65, 128, 76, 65, 85, 75, 65, 218, 76, 65, 85, 74, 128, 76, 65, 85, 71,
- 72, 73, 78, 71, 128, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 84, 73, 75,
- 128, 76, 65, 84, 69, 82, 65, 204, 76, 65, 84, 197, 76, 65, 83, 212, 76,
- 65, 82, 89, 78, 71, 69, 65, 204, 76, 65, 82, 201, 76, 65, 82, 71, 69, 83,
- 84, 128, 76, 65, 82, 71, 69, 210, 76, 65, 82, 71, 69, 128, 76, 65, 82,
- 71, 197, 76, 65, 81, 128, 76, 65, 80, 65, 81, 128, 76, 65, 207, 76, 65,
- 78, 84, 69, 82, 78, 128, 76, 65, 78, 71, 85, 65, 71, 197, 76, 65, 78, 69,
- 83, 128, 76, 65, 78, 196, 76, 65, 78, 128, 76, 65, 77, 80, 128, 76, 65,
- 77, 69, 68, 72, 128, 76, 65, 77, 69, 68, 128, 76, 65, 77, 69, 196, 76,
- 65, 77, 69, 128, 76, 65, 77, 197, 76, 65, 77, 68, 65, 128, 76, 65, 77,
- 68, 128, 76, 65, 77, 66, 68, 193, 76, 65, 77, 65, 68, 72, 128, 76, 65,
- 76, 128, 76, 65, 204, 76, 65, 75, 75, 72, 65, 78, 71, 89, 65, 79, 128,
- 76, 65, 75, 72, 65, 78, 128, 76, 65, 75, 72, 128, 76, 65, 75, 200, 76,
- 65, 75, 45, 55, 52, 57, 128, 76, 65, 75, 45, 55, 50, 52, 128, 76, 65, 75,
- 45, 54, 54, 56, 128, 76, 65, 75, 45, 54, 52, 56, 128, 76, 65, 75, 45, 54,
- 52, 184, 76, 65, 75, 45, 54, 51, 54, 128, 76, 65, 75, 45, 54, 49, 55,
- 128, 76, 65, 75, 45, 54, 49, 183, 76, 65, 75, 45, 54, 48, 56, 128, 76,
- 65, 75, 45, 53, 53, 48, 128, 76, 65, 75, 45, 52, 57, 53, 128, 76, 65, 75,
- 45, 52, 57, 51, 128, 76, 65, 75, 45, 52, 57, 50, 128, 76, 65, 75, 45, 52,
- 57, 48, 128, 76, 65, 75, 45, 52, 56, 51, 128, 76, 65, 75, 45, 52, 55, 48,
- 128, 76, 65, 75, 45, 52, 53, 55, 128, 76, 65, 75, 45, 52, 53, 48, 128,
- 76, 65, 75, 45, 52, 52, 57, 128, 76, 65, 75, 45, 52, 52, 185, 76, 65, 75,
- 45, 52, 52, 49, 128, 76, 65, 75, 45, 51, 57, 48, 128, 76, 65, 75, 45, 51,
- 56, 52, 128, 76, 65, 75, 45, 51, 56, 51, 128, 76, 65, 75, 45, 51, 52, 56,
- 128, 76, 65, 75, 45, 51, 52, 55, 128, 76, 65, 75, 45, 51, 52, 51, 128,
- 76, 65, 75, 45, 50, 54, 54, 128, 76, 65, 75, 45, 50, 54, 53, 128, 76, 65,
- 75, 45, 50, 51, 56, 128, 76, 65, 75, 45, 50, 50, 56, 128, 76, 65, 75, 45,
- 50, 50, 53, 128, 76, 65, 75, 45, 50, 50, 48, 128, 76, 65, 75, 45, 50, 49,
- 57, 128, 76, 65, 75, 45, 50, 49, 48, 128, 76, 65, 75, 45, 49, 52, 50,
- 128, 76, 65, 75, 45, 49, 51, 48, 128, 76, 65, 75, 45, 48, 57, 50, 128,
- 76, 65, 75, 45, 48, 56, 49, 128, 76, 65, 75, 45, 48, 56, 177, 76, 65, 75,
- 45, 48, 56, 48, 128, 76, 65, 75, 45, 48, 55, 185, 76, 65, 75, 45, 48, 54,
- 50, 128, 76, 65, 75, 45, 48, 53, 49, 128, 76, 65, 75, 45, 48, 53, 48,
- 128, 76, 65, 75, 45, 48, 51, 48, 128, 76, 65, 75, 45, 48, 50, 53, 128,
- 76, 65, 75, 45, 48, 50, 49, 128, 76, 65, 75, 45, 48, 50, 48, 128, 76, 65,
- 75, 45, 48, 48, 51, 128, 76, 65, 74, 65, 78, 89, 65, 76, 65, 78, 128, 76,
- 65, 73, 78, 199, 76, 65, 201, 76, 65, 72, 83, 72, 85, 128, 76, 65, 72,
- 128, 76, 65, 71, 85, 83, 128, 76, 65, 71, 213, 76, 65, 71, 65, 82, 128,
- 76, 65, 71, 65, 210, 76, 65, 71, 65, 66, 128, 76, 65, 71, 65, 194, 76,
- 65, 69, 86, 128, 76, 65, 69, 128, 76, 65, 68, 217, 76, 65, 68, 68, 69,
- 82, 128, 76, 65, 67, 82, 79, 83, 83, 197, 76, 65, 67, 75, 128, 76, 65,
- 67, 65, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71, 128, 76, 65, 66, 79, 82,
- 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73, 79, 206, 76, 65, 66, 73,
- 65, 204, 76, 65, 66, 69, 76, 128, 76, 65, 66, 65, 84, 128, 76, 65, 194,
- 76, 65, 65, 78, 65, 69, 128, 76, 65, 65, 78, 128, 76, 65, 65, 77, 85,
- 128, 76, 65, 65, 77, 128, 76, 65, 65, 73, 128, 76, 54, 128, 76, 52, 128,
- 76, 51, 128, 76, 50, 128, 76, 48, 48, 54, 65, 128, 76, 48, 48, 50, 65,
- 128, 76, 45, 84, 89, 80, 197, 76, 45, 83, 72, 65, 80, 69, 196, 75, 89,
- 85, 82, 73, 73, 128, 75, 89, 85, 128, 75, 89, 79, 128, 75, 89, 76, 73,
- 83, 77, 65, 128, 75, 89, 73, 128, 75, 89, 69, 128, 75, 89, 65, 84, 72,
- 79, 211, 75, 89, 65, 65, 128, 75, 89, 65, 128, 75, 88, 87, 73, 128, 75,
- 88, 87, 69, 69, 128, 75, 88, 87, 69, 128, 75, 88, 87, 65, 65, 128, 75,
- 88, 87, 65, 128, 75, 88, 85, 128, 75, 88, 79, 128, 75, 88, 73, 128, 75,
- 88, 69, 69, 128, 75, 88, 69, 128, 75, 88, 65, 65, 128, 75, 88, 65, 128,
- 75, 87, 86, 128, 75, 87, 85, 51, 49, 56, 128, 75, 87, 79, 79, 128, 75,
- 87, 79, 128, 75, 87, 77, 128, 75, 87, 73, 73, 128, 75, 87, 73, 128, 75,
- 87, 69, 69, 128, 75, 87, 69, 128, 75, 87, 66, 128, 75, 87, 65, 89, 128,
- 75, 87, 65, 69, 84, 128, 75, 87, 65, 65, 128, 75, 86, 65, 128, 75, 86,
- 128, 75, 85, 90, 72, 73, 128, 75, 85, 88, 128, 75, 85, 86, 128, 75, 85,
- 85, 72, 128, 75, 85, 84, 128, 75, 85, 83, 77, 65, 128, 75, 85, 83, 72,
- 85, 50, 128, 75, 85, 83, 72, 85, 178, 75, 85, 82, 88, 128, 75, 85, 82,
- 85, 90, 69, 73, 82, 79, 128, 75, 85, 82, 84, 128, 75, 85, 82, 79, 79, 78,
- 69, 128, 75, 85, 82, 128, 75, 85, 210, 75, 85, 81, 128, 75, 85, 79, 88,
- 128, 75, 85, 79, 80, 128, 75, 85, 79, 208, 75, 85, 79, 77, 128, 75, 85,
- 79, 128, 75, 85, 78, 71, 128, 75, 85, 78, 68, 68, 65, 76, 73, 89, 65,
- 128, 75, 85, 76, 128, 75, 85, 204, 75, 85, 71, 128, 75, 85, 69, 84, 128,
- 75, 85, 66, 128, 75, 85, 65, 86, 128, 75, 85, 65, 66, 128, 75, 85, 65,
- 128, 75, 85, 55, 128, 75, 85, 52, 128, 75, 85, 180, 75, 85, 51, 128, 75,
- 85, 179, 75, 85, 45, 55, 128, 75, 85, 45, 54, 128, 75, 85, 45, 53, 128,
- 75, 85, 45, 52, 128, 75, 85, 45, 51, 128, 75, 85, 45, 50, 128, 75, 85,
- 45, 49, 128, 75, 84, 128, 75, 83, 83, 85, 85, 128, 75, 83, 83, 85, 128,
- 75, 83, 83, 79, 79, 128, 75, 83, 83, 79, 128, 75, 83, 83, 73, 73, 128,
- 75, 83, 83, 73, 128, 75, 83, 83, 69, 69, 128, 75, 83, 83, 69, 128, 75,
- 83, 83, 65, 85, 128, 75, 83, 83, 65, 73, 128, 75, 83, 83, 65, 65, 128,
- 75, 83, 83, 65, 128, 75, 83, 83, 128, 75, 83, 73, 128, 75, 82, 79, 78,
- 79, 83, 128, 75, 82, 69, 77, 65, 83, 84, 73, 128, 75, 82, 65, 84, 73, 77,
- 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, 75, 82, 65, 84, 73, 77, 79, 75,
- 79, 85, 70, 73, 83, 77, 65, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128,
- 75, 82, 65, 84, 73, 77, 193, 75, 80, 85, 128, 75, 80, 79, 81, 128, 75,
- 80, 79, 79, 128, 75, 80, 79, 128, 75, 80, 73, 128, 75, 80, 69, 85, 88,
- 128, 75, 80, 69, 69, 128, 75, 80, 69, 128, 75, 80, 65, 82, 65, 81, 128,
- 75, 80, 65, 78, 128, 75, 80, 65, 72, 128, 75, 80, 65, 128, 75, 80, 128,
- 75, 79, 88, 128, 75, 79, 86, 85, 85, 128, 75, 79, 86, 128, 75, 79, 84,
- 79, 128, 75, 79, 82, 85, 78, 65, 128, 75, 79, 82, 79, 78, 73, 83, 128,
- 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, 78, 73, 195, 75, 79, 81, 78, 68,
- 79, 78, 128, 75, 79, 80, 80, 65, 128, 75, 79, 80, 128, 75, 79, 79, 86,
- 128, 75, 79, 79, 80, 79, 128, 75, 79, 79, 77, 85, 85, 84, 128, 75, 79,
- 79, 66, 128, 75, 79, 79, 128, 75, 79, 78, 84, 69, 86, 77, 65, 128, 75,
- 79, 78, 84, 69, 86, 77, 193, 75, 79, 77, 201, 75, 79, 77, 66, 85, 86, 65,
- 128, 75, 79, 77, 66, 85, 86, 193, 75, 79, 77, 66, 213, 75, 79, 75, 79,
- 128, 75, 79, 75, 69, 128, 75, 79, 75, 128, 75, 79, 203, 75, 79, 73, 78,
- 73, 128, 75, 79, 73, 128, 75, 79, 201, 75, 79, 72, 128, 75, 79, 71, 72,
- 79, 77, 128, 75, 79, 69, 84, 128, 75, 79, 66, 128, 75, 79, 65, 76, 65,
- 128, 75, 79, 65, 128, 75, 79, 45, 75, 73, 128, 75, 79, 45, 51, 128, 75,
- 79, 45, 50, 128, 75, 79, 45, 49, 128, 75, 78, 85, 67, 75, 76, 69, 83,
- 128, 75, 78, 85, 67, 75, 76, 69, 128, 75, 78, 79, 84, 128, 75, 78, 79,
- 66, 83, 128, 75, 78, 73, 71, 72, 84, 45, 82, 79, 79, 75, 128, 75, 78, 73,
- 71, 72, 84, 45, 81, 85, 69, 69, 78, 128, 75, 78, 73, 71, 72, 84, 45, 66,
- 73, 83, 72, 79, 80, 128, 75, 78, 73, 71, 72, 84, 128, 75, 78, 73, 71, 72,
- 212, 75, 78, 73, 70, 69, 128, 75, 78, 73, 70, 197, 75, 78, 69, 69, 76,
- 73, 78, 199, 75, 77, 128, 75, 205, 75, 76, 73, 84, 79, 78, 128, 75, 76,
- 65, 83, 77, 65, 128, 75, 76, 65, 83, 77, 193, 75, 76, 65, 128, 75, 76,
- 128, 75, 75, 79, 128, 75, 75, 73, 128, 75, 75, 69, 69, 128, 75, 75, 69,
- 128, 75, 75, 65, 128, 75, 75, 128, 75, 74, 69, 128, 75, 73, 89, 69, 79,
- 75, 45, 84, 73, 75, 69, 85, 84, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73,
- 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 75, 73, 89, 69, 79, 75, 45, 82,
- 73, 69, 85, 76, 128, 75, 73, 89, 69, 79, 75, 45, 80, 73, 69, 85, 80, 128,
- 75, 73, 89, 69, 79, 75, 45, 78, 73, 69, 85, 78, 128, 75, 73, 89, 69, 79,
- 75, 45, 75, 72, 73, 69, 85, 75, 72, 128, 75, 73, 89, 69, 79, 75, 45, 67,
- 72, 73, 69, 85, 67, 72, 128, 75, 73, 89, 69, 79, 203, 75, 73, 88, 128,
- 75, 73, 87, 73, 70, 82, 85, 73, 84, 128, 75, 73, 87, 128, 75, 73, 86,
- 128, 75, 73, 84, 69, 128, 75, 73, 84, 128, 75, 73, 83, 83, 73, 78, 199,
- 75, 73, 83, 83, 128, 75, 73, 83, 211, 75, 73, 83, 73, 77, 53, 128, 75,
- 73, 83, 73, 77, 181, 75, 73, 83, 72, 128, 75, 73, 83, 65, 76, 128, 75,
- 73, 82, 79, 87, 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, 69, 69, 84, 79,
- 82, 85, 128, 75, 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 73, 82, 79,
- 128, 75, 73, 82, 71, 72, 73, 218, 75, 73, 81, 128, 75, 73, 80, 128, 75,
- 73, 208, 75, 73, 78, 83, 72, 73, 80, 128, 75, 73, 78, 78, 193, 75, 73,
- 78, 68, 69, 82, 71, 65, 82, 84, 69, 78, 128, 75, 73, 77, 79, 78, 79, 128,
- 75, 73, 76, 76, 69, 82, 128, 75, 73, 73, 90, 72, 128, 75, 73, 73, 128,
- 75, 73, 72, 128, 75, 73, 69, 88, 128, 75, 73, 69, 86, 65, 206, 75, 73,
- 69, 80, 128, 75, 73, 69, 69, 77, 128, 75, 73, 69, 128, 75, 73, 68, 128,
- 75, 73, 196, 75, 73, 67, 75, 128, 75, 73, 66, 128, 75, 73, 65, 86, 128,
- 75, 73, 65, 66, 128, 75, 73, 45, 56, 128, 75, 73, 45, 55, 128, 75, 73,
- 45, 54, 128, 75, 73, 45, 53, 128, 75, 73, 45, 52, 128, 75, 73, 45, 51,
- 128, 75, 73, 45, 50, 128, 75, 73, 45, 49, 128, 75, 72, 90, 128, 75, 72,
- 87, 65, 73, 128, 75, 72, 85, 69, 78, 45, 76, 85, 197, 75, 72, 85, 69,
- 206, 75, 72, 85, 68, 65, 87, 65, 68, 201, 75, 72, 85, 68, 65, 77, 128,
- 75, 72, 85, 65, 84, 128, 75, 72, 79, 85, 128, 75, 72, 79, 212, 75, 72,
- 79, 78, 78, 65, 128, 75, 72, 79, 78, 128, 75, 72, 79, 77, 85, 84, 128,
- 75, 72, 79, 74, 75, 201, 75, 72, 79, 128, 75, 72, 207, 75, 72, 77, 213,
- 75, 72, 73, 84, 128, 75, 72, 73, 78, 89, 65, 128, 75, 72, 73, 69, 85, 75,
- 200, 75, 72, 73, 128, 75, 72, 201, 75, 72, 72, 79, 128, 75, 72, 72, 65,
- 128, 75, 72, 69, 84, 72, 128, 75, 72, 69, 73, 128, 75, 72, 69, 69, 128,
- 75, 72, 69, 128, 75, 72, 65, 86, 128, 75, 72, 65, 82, 79, 83, 72, 84, 72,
- 201, 75, 72, 65, 82, 128, 75, 72, 65, 80, 72, 128, 75, 72, 65, 78, 199,
- 75, 72, 65, 78, 68, 193, 75, 72, 65, 77, 84, 201, 75, 72, 65, 75, 65, 83,
- 83, 73, 65, 206, 75, 72, 65, 73, 128, 75, 72, 65, 72, 128, 75, 72, 65,
- 200, 75, 72, 65, 70, 128, 75, 72, 65, 66, 128, 75, 72, 65, 65, 128, 75,
- 71, 128, 75, 69, 89, 67, 65, 80, 128, 75, 69, 89, 67, 65, 208, 75, 69,
- 89, 66, 79, 65, 82, 68, 128, 75, 69, 89, 66, 79, 65, 82, 196, 75, 69, 88,
- 128, 75, 69, 86, 128, 75, 69, 85, 89, 69, 85, 88, 128, 75, 69, 85, 83,
- 72, 69, 85, 65, 69, 80, 128, 75, 69, 85, 83, 69, 85, 88, 128, 75, 69, 85,
- 80, 85, 81, 128, 75, 69, 85, 79, 212, 75, 69, 85, 77, 128, 75, 69, 85,
- 75, 69, 85, 84, 78, 68, 65, 128, 75, 69, 85, 75, 65, 81, 128, 75, 69, 85,
- 65, 69, 84, 77, 69, 85, 78, 128, 75, 69, 85, 65, 69, 82, 73, 128, 75, 69,
- 84, 84, 201, 75, 69, 83, 72, 50, 128, 75, 69, 82, 69, 84, 128, 75, 69,
- 79, 87, 128, 75, 69, 78, 84, 73, 77, 65, 84, 65, 128, 75, 69, 78, 84, 73,
- 77, 65, 84, 193, 75, 69, 78, 84, 73, 77, 193, 75, 69, 78, 65, 84, 128,
- 75, 69, 78, 128, 75, 69, 206, 75, 69, 77, 80, 85, 76, 128, 75, 69, 77,
- 80, 85, 204, 75, 69, 77, 80, 76, 73, 128, 75, 69, 77, 80, 76, 201, 75,
- 69, 77, 80, 72, 82, 69, 78, 71, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75,
- 69, 76, 86, 73, 206, 75, 69, 72, 69, 72, 128, 75, 69, 72, 69, 200, 75,
- 69, 72, 128, 75, 69, 70, 85, 76, 65, 128, 75, 69, 69, 86, 128, 75, 69,
- 69, 83, 85, 128, 75, 69, 69, 80, 73, 78, 199, 75, 69, 69, 78, 71, 128,
- 75, 69, 69, 66, 128, 75, 69, 66, 128, 75, 69, 65, 65, 69, 128, 75, 67,
- 65, 76, 128, 75, 66, 128, 75, 65, 90, 65, 75, 200, 75, 65, 89, 65, 78,
- 78, 65, 128, 75, 65, 89, 65, 200, 75, 65, 88, 128, 75, 65, 87, 86, 128,
- 75, 65, 87, 73, 128, 75, 65, 87, 66, 128, 75, 65, 86, 89, 75, 65, 128,
- 75, 65, 86, 89, 75, 193, 75, 65, 86, 128, 75, 65, 85, 86, 128, 75, 65,
- 85, 78, 65, 128, 75, 65, 85, 206, 75, 65, 85, 66, 128, 75, 65, 84, 79,
- 128, 75, 65, 84, 72, 73, 83, 84, 73, 128, 75, 65, 84, 72, 65, 75, 193,
- 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75, 65, 84, 65, 86, 193, 75, 65,
- 84, 65, 75, 65, 78, 65, 45, 72, 73, 82, 65, 71, 65, 78, 193, 75, 65, 83,
- 82, 65, 84, 65, 78, 128, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 83, 82,
- 65, 128, 75, 65, 83, 82, 193, 75, 65, 83, 75, 65, 76, 128, 75, 65, 83,
- 75, 65, 204, 75, 65, 83, 72, 77, 73, 82, 201, 75, 65, 82, 83, 72, 65, 78,
- 65, 128, 75, 65, 82, 79, 82, 73, 73, 128, 75, 65, 82, 79, 82, 65, 78,
- 128, 75, 65, 82, 79, 82, 128, 75, 65, 82, 207, 75, 65, 82, 69, 206, 75,
- 65, 82, 65, 84, 84, 79, 128, 75, 65, 82, 65, 78, 128, 75, 65, 80, 89, 69,
- 79, 85, 78, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 75, 65, 80, 89,
- 69, 79, 85, 78, 82, 73, 69, 85, 76, 128, 75, 65, 80, 89, 69, 79, 85, 78,
- 80, 72, 73, 69, 85, 80, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 77, 73,
- 69, 85, 77, 128, 75, 65, 80, 80, 65, 128, 75, 65, 80, 80, 193, 75, 65,
- 80, 79, 128, 75, 65, 80, 72, 128, 75, 65, 80, 65, 76, 128, 75, 65, 80,
- 65, 128, 75, 65, 208, 75, 65, 78, 84, 65, 74, 193, 75, 65, 78, 78, 65,
- 68, 193, 75, 65, 78, 71, 65, 82, 79, 79, 128, 75, 65, 78, 71, 128, 75,
- 65, 78, 199, 75, 65, 78, 65, 75, 79, 128, 75, 65, 77, 52, 128, 75, 65,
- 77, 50, 128, 75, 65, 77, 128, 75, 65, 75, 79, 128, 75, 65, 75, 65, 66,
- 65, 84, 128, 75, 65, 75, 128, 75, 65, 203, 75, 65, 73, 86, 128, 75, 65,
- 73, 84, 72, 201, 75, 65, 73, 82, 73, 128, 75, 65, 73, 66, 128, 75, 65,
- 73, 128, 75, 65, 201, 75, 65, 70, 65, 128, 75, 65, 70, 128, 75, 65, 198,
- 75, 65, 68, 53, 128, 75, 65, 68, 181, 75, 65, 68, 52, 128, 75, 65, 68,
- 51, 128, 75, 65, 68, 179, 75, 65, 68, 50, 128, 75, 65, 68, 128, 75, 65,
- 66, 193, 75, 65, 66, 128, 75, 65, 65, 86, 128, 75, 65, 65, 73, 128, 75,
- 65, 65, 70, 85, 128, 75, 65, 65, 70, 128, 75, 65, 65, 67, 85, 128, 75,
- 65, 65, 66, 65, 128, 75, 65, 65, 66, 128, 75, 65, 50, 128, 75, 65, 178,
- 75, 65, 45, 75, 69, 128, 75, 65, 45, 57, 128, 75, 65, 45, 56, 128, 75,
- 65, 45, 55, 128, 75, 65, 45, 54, 128, 75, 65, 45, 53, 128, 75, 65, 45,
- 52, 128, 75, 65, 45, 51, 128, 75, 65, 45, 50, 128, 75, 65, 45, 49, 49,
- 128, 75, 65, 45, 49, 48, 128, 75, 65, 45, 49, 128, 75, 48, 48, 56, 128,
- 75, 48, 48, 55, 128, 75, 48, 48, 54, 128, 75, 48, 48, 53, 128, 75, 48,
- 48, 52, 128, 75, 48, 48, 51, 128, 75, 48, 48, 50, 128, 75, 48, 48, 49,
- 128, 74, 87, 65, 128, 74, 85, 85, 128, 74, 85, 84, 128, 74, 85, 83, 84,
- 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 74, 85, 80, 73, 84, 69, 82, 128,
- 74, 85, 79, 84, 128, 74, 85, 79, 80, 128, 74, 85, 78, 79, 128, 74, 85,
- 78, 71, 83, 69, 79, 78, 199, 74, 85, 78, 69, 128, 74, 85, 76, 89, 128,
- 74, 85, 71, 71, 76, 73, 78, 71, 128, 74, 85, 69, 85, 73, 128, 74, 85, 68,
- 85, 76, 128, 74, 85, 68, 71, 69, 128, 74, 85, 68, 69, 79, 45, 83, 80, 65,
- 78, 73, 83, 200, 74, 79, 89, 83, 84, 73, 67, 75, 128, 74, 79, 89, 79, 85,
- 211, 74, 79, 89, 128, 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71,
- 128, 74, 79, 78, 193, 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 84, 83,
- 128, 74, 79, 73, 78, 69, 68, 128, 74, 79, 73, 78, 128, 74, 79, 65, 128,
- 74, 78, 89, 65, 128, 74, 74, 89, 88, 128, 74, 74, 89, 84, 128, 74, 74,
- 89, 80, 128, 74, 74, 89, 128, 74, 74, 85, 88, 128, 74, 74, 85, 84, 128,
- 74, 74, 85, 82, 88, 128, 74, 74, 85, 82, 128, 74, 74, 85, 80, 128, 74,
- 74, 85, 79, 88, 128, 74, 74, 85, 79, 80, 128, 74, 74, 85, 79, 128, 74,
- 74, 85, 128, 74, 74, 79, 88, 128, 74, 74, 79, 84, 128, 74, 74, 79, 80,
- 128, 74, 74, 79, 128, 74, 74, 73, 88, 128, 74, 74, 73, 84, 128, 74, 74,
- 73, 80, 128, 74, 74, 73, 69, 88, 128, 74, 74, 73, 69, 84, 128, 74, 74,
- 73, 69, 80, 128, 74, 74, 73, 69, 128, 74, 74, 73, 128, 74, 74, 69, 69,
- 128, 74, 74, 69, 128, 74, 74, 65, 128, 74, 73, 76, 128, 74, 73, 73, 77,
- 128, 74, 73, 73, 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65, 128,
- 74, 73, 71, 83, 65, 215, 74, 73, 65, 128, 74, 72, 79, 88, 128, 74, 72,
- 79, 128, 74, 72, 69, 72, 128, 74, 72, 65, 89, 73, 78, 128, 74, 72, 65,
- 78, 128, 74, 72, 65, 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74,
- 69, 85, 128, 74, 69, 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65,
- 206, 74, 69, 82, 65, 128, 74, 69, 82, 128, 74, 69, 72, 128, 74, 69, 200,
- 74, 69, 71, 79, 71, 65, 78, 128, 74, 69, 69, 77, 128, 74, 69, 69, 205,
- 74, 69, 65, 78, 83, 128, 74, 65, 89, 78, 128, 74, 65, 89, 73, 78, 128,
- 74, 65, 89, 65, 78, 78, 65, 128, 74, 65, 87, 128, 74, 65, 86, 73, 89, 65,
- 78, 73, 128, 74, 65, 86, 65, 78, 69, 83, 197, 74, 65, 85, 128, 74, 65,
- 82, 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 65, 80, 65, 78, 128, 74,
- 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76, 65, 74, 65, 76, 65, 76, 79,
- 85, 72, 79, 85, 128, 74, 65, 73, 206, 74, 65, 73, 128, 74, 65, 72, 128,
- 74, 65, 68, 69, 128, 74, 65, 67, 75, 83, 128, 74, 65, 67, 75, 45, 79, 45,
- 76, 65, 78, 84, 69, 82, 78, 128, 74, 65, 67, 203, 74, 45, 83, 73, 77, 80,
- 76, 73, 70, 73, 69, 196, 73, 90, 72, 73, 84, 83, 65, 128, 73, 90, 72, 73,
- 84, 83, 193, 73, 90, 72, 69, 128, 73, 90, 65, 75, 65, 89, 193, 73, 89,
- 69, 75, 128, 73, 89, 65, 78, 78, 65, 128, 73, 85, 74, 65, 128, 73, 84,
- 211, 73, 84, 69, 82, 65, 84, 73, 79, 206, 73, 84, 69, 77, 128, 73, 83,
- 83, 72, 65, 82, 128, 73, 83, 79, 83, 67, 69, 76, 69, 211, 73, 83, 79, 78,
- 128, 73, 83, 79, 206, 73, 83, 79, 76, 65, 84, 69, 128, 73, 83, 76, 65,
- 78, 68, 128, 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83, 65, 75, 73,
- 193, 73, 83, 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65, 78, 78, 65,
- 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78, 45, 67, 79,
- 80, 80, 69, 210, 73, 82, 79, 78, 128, 73, 82, 66, 128, 73, 79, 84, 73,
- 70, 73, 69, 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65, 128, 73,
- 79, 84, 193, 73, 79, 82, 128, 73, 79, 78, 71, 128, 73, 79, 68, 72, 65,
- 68, 72, 128, 73, 78, 86, 73, 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, 84,
- 69, 68, 128, 73, 78, 86, 69, 82, 84, 69, 196, 73, 78, 86, 69, 82, 84, 69,
- 66, 82, 65, 84, 69, 128, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84, 82, 79,
- 68, 85, 67, 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82, 83, 89,
- 76, 76, 65, 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 78,
- 128, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84, 69, 82,
- 83, 69, 67, 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 71,
- 128, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 199, 73, 78, 84, 69, 82, 80,
- 79, 76, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196,
- 73, 78, 84, 69, 82, 76, 73, 78, 69, 65, 210, 73, 78, 84, 69, 82, 76, 65,
- 67, 69, 196, 73, 78, 84, 69, 82, 73, 79, 210, 73, 78, 84, 69, 82, 69, 83,
- 212, 73, 78, 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 73, 78, 84, 69, 71,
- 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206,
- 73, 78, 84, 69, 71, 82, 65, 76, 128, 73, 78, 84, 69, 71, 82, 65, 204, 73,
- 78, 83, 85, 76, 65, 210, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, 65, 204,
- 73, 78, 83, 73, 68, 69, 128, 73, 78, 83, 73, 68, 197, 73, 78, 83, 69, 82,
- 84, 73, 79, 206, 73, 78, 83, 69, 82, 212, 73, 78, 83, 69, 67, 84, 128,
- 73, 78, 83, 67, 82, 73, 80, 84, 73, 79, 78, 65, 204, 73, 78, 80, 85, 212,
- 73, 78, 78, 79, 67, 69, 78, 67, 69, 128, 73, 78, 78, 78, 128, 73, 78, 78,
- 69, 82, 128, 73, 78, 78, 69, 210, 73, 78, 78, 128, 73, 78, 73, 78, 71,
- 85, 128, 73, 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, 78, 212,
- 73, 78, 72, 65, 76, 69, 128, 73, 78, 71, 87, 65, 90, 128, 73, 78, 70, 79,
- 82, 77, 65, 84, 73, 79, 206, 73, 78, 70, 76, 85, 69, 78, 67, 69, 128, 73,
- 78, 70, 73, 78, 73, 84, 89, 128, 73, 78, 70, 73, 78, 73, 84, 217, 73, 78,
- 68, 85, 83, 84, 82, 73, 65, 204, 73, 78, 68, 73, 82, 69, 67, 212, 73, 78,
- 68, 73, 67, 84, 73, 79, 206, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 73,
- 78, 68, 73, 67, 65, 84, 79, 210, 73, 78, 68, 73, 195, 73, 78, 68, 73, 65,
- 206, 73, 78, 68, 69, 88, 128, 73, 78, 68, 69, 80, 69, 78, 68, 69, 78,
- 212, 73, 78, 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 67, 82, 69, 65, 83,
- 69, 211, 73, 78, 67, 82, 69, 65, 83, 69, 128, 73, 78, 67, 82, 69, 65, 83,
- 197, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, 79, 77, 73, 78,
- 199, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 72, 128, 73, 78,
- 66, 79, 216, 73, 78, 65, 80, 128, 73, 78, 45, 65, 76, 65, 70, 128, 73,
- 77, 80, 69, 82, 73, 65, 204, 73, 77, 80, 69, 82, 70, 69, 67, 84, 85, 205,
- 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, 73, 77, 80, 69, 82, 70, 69,
- 67, 84, 193, 73, 77, 78, 128, 73, 77, 73, 83, 69, 79, 211, 73, 77, 73,
- 78, 51, 128, 73, 77, 73, 78, 128, 73, 77, 73, 206, 73, 77, 73, 70, 84,
- 72, 79, 82, 79, 78, 128, 73, 77, 73, 70, 84, 72, 79, 82, 65, 128, 73, 77,
- 73, 70, 79, 78, 79, 78, 128, 73, 77, 73, 68, 73, 65, 82, 71, 79, 78, 128,
- 73, 77, 65, 71, 197, 73, 76, 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, 89,
- 128, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, 84, 128, 73,
- 76, 73, 77, 77, 85, 52, 128, 73, 76, 73, 77, 77, 85, 51, 128, 73, 76, 73,
- 77, 77, 85, 128, 73, 76, 73, 77, 77, 213, 73, 76, 50, 128, 73, 75, 65,
- 82, 65, 128, 73, 75, 65, 82, 193, 73, 74, 128, 73, 73, 89, 65, 78, 78,
- 65, 128, 73, 71, 73, 128, 73, 71, 201, 73, 71, 71, 87, 83, 128, 73, 70,
- 73, 78, 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, 73, 69,
- 85, 78, 71, 45, 84, 72, 73, 69, 85, 84, 72, 128, 73, 69, 85, 78, 71, 45,
- 82, 73, 69, 85, 76, 128, 73, 69, 85, 78, 71, 45, 80, 73, 69, 85, 80, 128,
- 73, 69, 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78,
- 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69,
- 85, 67, 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69, 128, 73, 68, 73,
- 77, 128, 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
- 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 54, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 65, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 52, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 69, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 56, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
- 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 50, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 57, 49, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 57, 48, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 68,
- 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 67, 65, 57, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 57, 69, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 55, 68, 52, 50, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 55, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 55, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 54,
- 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 51, 51, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 49, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 55, 49, 50, 49, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 55, 48, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 54, 70, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 69,
- 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 50, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 56, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 54, 54, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 54, 53, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53,
- 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 53, 55, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 53, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 54, 51, 48, 55, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 54, 50, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 54, 50, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50,
- 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 70, 56, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 68, 69, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 53, 66, 56, 57, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 53, 66, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 53, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 57,
- 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 56, 70, 48, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 53, 66, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 53, 52, 51, 57, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 53, 52, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 53, 51, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 51,
- 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 68, 68, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 55, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 53, 50, 52, 68, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 53, 50, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 53, 49, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69,
- 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 56, 67, 128,
- 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 50, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 57, 128, 73, 68, 69, 79, 71, 82,
- 65, 80, 72, 45, 52, 69, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
- 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
- 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
- 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
- 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 68,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 52,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 66,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 50,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 49, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 69,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 53,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 67,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 66, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 51,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 68,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 52,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 66,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 50,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 49, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 69,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 53,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 67,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 66, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
- 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 51,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 68,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 52,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 66,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 50,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 49, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 69,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 68, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 53,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 52, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 67,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 66, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 51,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 50, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 65,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 57, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 49,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 48, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 56,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 55, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 70,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 69, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 54,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 53, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 68,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 67, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 52,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 51, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 66,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 65, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 50,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 49, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 57,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 56, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 48,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 70, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
- 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 55,
- 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 54, 128, 73,
- 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, 69,
- 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, 73, 68, 69, 79, 71,
- 82, 65, 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65,
- 80, 72, 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
- 45, 50, 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
- 70, 56, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 200, 73, 68, 69, 78,
- 84, 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, 69, 78, 84, 73, 67,
- 65, 204, 73, 67, 79, 78, 128, 73, 67, 72, 79, 85, 128, 73, 67, 72, 79,
- 83, 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 73, 67, 72, 65, 68, 73,
- 78, 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 66, 73,
- 70, 73, 76, 73, 128, 73, 65, 85, 68, 65, 128, 73, 48, 49, 53, 128, 73,
- 48, 49, 52, 128, 73, 48, 49, 51, 128, 73, 48, 49, 50, 128, 73, 48, 49,
- 49, 65, 128, 73, 48, 49, 49, 128, 73, 48, 49, 48, 65, 128, 73, 48, 49,
- 48, 128, 73, 48, 48, 57, 65, 128, 73, 48, 48, 57, 128, 73, 48, 48, 56,
- 128, 73, 48, 48, 55, 128, 73, 48, 48, 54, 128, 73, 48, 48, 53, 65, 128,
- 73, 48, 48, 53, 128, 73, 48, 48, 52, 128, 73, 48, 48, 51, 128, 73, 48,
- 48, 50, 128, 73, 48, 48, 49, 128, 73, 45, 89, 85, 128, 73, 45, 89, 79,
- 128, 73, 45, 89, 69, 79, 128, 73, 45, 89, 69, 128, 73, 45, 89, 65, 69,
- 128, 73, 45, 89, 65, 45, 79, 128, 73, 45, 89, 65, 128, 73, 45, 79, 45,
- 73, 128, 73, 45, 79, 128, 73, 45, 69, 85, 128, 73, 45, 66, 69, 65, 77,
- 128, 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65, 128, 72, 90, 90, 90,
- 71, 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128, 72, 90, 90, 128, 72,
- 90, 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128, 72, 90, 71, 128, 72,
- 89, 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79, 68, 73, 65, 83, 84,
- 79, 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73, 79, 206, 72, 89, 80,
- 72, 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80, 72, 69, 78, 128, 72,
- 89, 80, 72, 69, 206, 72, 89, 71, 73, 69, 73, 65, 128, 72, 89, 71, 73, 69,
- 65, 128, 72, 88, 87, 71, 128, 72, 88, 85, 79, 88, 128, 72, 88, 85, 79,
- 84, 128, 72, 88, 85, 79, 80, 128, 72, 88, 85, 79, 128, 72, 88, 79, 88,
- 128, 72, 88, 79, 84, 128, 72, 88, 79, 80, 128, 72, 88, 79, 128, 72, 88,
- 73, 88, 128, 72, 88, 73, 84, 128, 72, 88, 73, 80, 128, 72, 88, 73, 69,
- 88, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, 69, 80, 128, 72, 88, 73,
- 69, 128, 72, 88, 73, 128, 72, 88, 69, 88, 128, 72, 88, 69, 80, 128, 72,
- 88, 69, 128, 72, 88, 65, 88, 128, 72, 88, 65, 84, 128, 72, 88, 65, 80,
- 128, 72, 88, 65, 128, 72, 87, 85, 128, 72, 87, 65, 73, 82, 128, 72, 87,
- 65, 72, 128, 72, 85, 86, 65, 128, 72, 85, 83, 72, 69, 196, 72, 85, 83,
- 72, 128, 72, 85, 82, 65, 78, 128, 72, 85, 79, 84, 128, 72, 85, 78, 68,
- 82, 69, 68, 83, 128, 72, 85, 78, 68, 82, 69, 68, 211, 72, 85, 78, 68, 82,
- 69, 68, 128, 72, 85, 78, 68, 82, 69, 196, 72, 85, 78, 128, 72, 85, 77,
- 208, 72, 85, 77, 65, 78, 128, 72, 85, 77, 65, 206, 72, 85, 76, 50, 128,
- 72, 85, 73, 73, 84, 79, 128, 72, 85, 71, 71, 73, 78, 71, 128, 72, 85, 71,
- 71, 73, 78, 199, 72, 85, 66, 50, 128, 72, 85, 66, 178, 72, 85, 66, 128,
- 72, 85, 65, 82, 65, 68, 68, 79, 128, 72, 85, 65, 78, 128, 72, 85, 45, 51,
- 128, 72, 85, 45, 50, 128, 72, 85, 45, 49, 128, 72, 84, 83, 128, 72, 84,
- 74, 128, 72, 82, 89, 86, 78, 73, 193, 72, 80, 87, 71, 128, 72, 80, 65,
- 128, 72, 80, 128, 72, 79, 85, 83, 197, 72, 79, 85, 82, 71, 76, 65, 83,
- 83, 128, 72, 79, 85, 82, 71, 76, 65, 83, 211, 72, 79, 85, 82, 128, 72,
- 79, 85, 210, 72, 79, 84, 69, 76, 128, 72, 79, 84, 65, 128, 72, 79, 83,
- 80, 73, 84, 65, 76, 128, 72, 79, 82, 83, 69, 128, 72, 79, 82, 83, 197,
- 72, 79, 82, 82, 128, 72, 79, 82, 78, 83, 128, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 76, 217, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54,
- 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45,
- 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48,
- 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 51,
- 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 50, 128,
- 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 49, 128, 72,
- 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 48, 128, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 54, 128, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 53, 128, 72, 79, 82, 73,
- 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 52, 128, 72, 79, 82, 73, 90,
- 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79,
- 78, 84, 65, 76, 45, 48, 53, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 45, 48, 53, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84,
- 65, 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
- 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
- 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
- 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52,
- 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45,
- 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48,
- 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 54,
- 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 53, 128,
- 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 52, 128, 72,
- 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 51, 128, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 50, 128, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 49, 128, 72, 79, 82, 73,
- 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 48, 128, 72, 79, 82, 73, 90,
- 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79,
- 78, 84, 65, 76, 45, 48, 50, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 45, 48, 50, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84,
- 65, 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
- 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
- 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
- 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49,
- 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45,
- 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48,
- 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 50,
- 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 49, 128,
- 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 48, 128, 72,
- 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 54, 128, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 53, 128, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 52, 128, 72, 79, 82, 73,
- 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 51, 128, 72, 79, 82, 73, 90,
- 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79,
- 78, 84, 65, 76, 45, 48, 48, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 45, 48, 48, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84,
- 65, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 204, 72, 79, 82, 73,
- 128, 72, 79, 82, 193, 72, 79, 79, 85, 128, 72, 79, 79, 82, 85, 128, 72,
- 79, 79, 80, 128, 72, 79, 79, 78, 128, 72, 79, 79, 75, 69, 68, 128, 72,
- 79, 79, 75, 69, 196, 72, 79, 78, 69, 89, 66, 69, 69, 128, 72, 79, 78, 69,
- 217, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, 128, 72, 79, 77, 79, 84, 72,
- 69, 84, 73, 195, 72, 79, 76, 79, 128, 72, 79, 76, 76, 79, 215, 72, 79,
- 76, 69, 128, 72, 79, 76, 68, 73, 78, 199, 72, 79, 76, 65, 77, 128, 72,
- 79, 76, 65, 205, 72, 79, 75, 65, 128, 72, 79, 67, 75, 69, 217, 72, 79,
- 67, 72, 79, 128, 72, 79, 45, 56, 128, 72, 79, 45, 55, 128, 72, 79, 45,
- 54, 128, 72, 79, 45, 53, 128, 72, 79, 45, 52, 128, 72, 79, 45, 51, 128,
- 72, 79, 45, 50, 128, 72, 79, 45, 49, 128, 72, 78, 85, 84, 128, 72, 78,
- 85, 79, 88, 128, 72, 78, 85, 79, 128, 72, 78, 85, 66, 128, 72, 78, 79,
- 88, 128, 72, 78, 79, 84, 128, 72, 78, 79, 80, 128, 72, 78, 73, 88, 128,
- 72, 78, 73, 84, 128, 72, 78, 73, 80, 128, 72, 78, 73, 69, 88, 128, 72,
- 78, 73, 69, 84, 128, 72, 78, 73, 69, 80, 128, 72, 78, 73, 69, 128, 72,
- 78, 73, 128, 72, 78, 69, 88, 128, 72, 78, 69, 80, 128, 72, 78, 69, 128,
- 72, 78, 65, 88, 128, 72, 78, 65, 85, 128, 72, 78, 65, 84, 128, 72, 78,
- 65, 80, 128, 72, 78, 65, 128, 72, 77, 89, 88, 128, 72, 77, 89, 82, 88,
- 128, 72, 77, 89, 82, 128, 72, 77, 89, 80, 128, 72, 77, 89, 128, 72, 77,
- 85, 88, 128, 72, 77, 85, 84, 128, 72, 77, 85, 82, 88, 128, 72, 77, 85,
- 82, 128, 72, 77, 85, 80, 128, 72, 77, 85, 79, 88, 128, 72, 77, 85, 79,
- 80, 128, 72, 77, 85, 79, 128, 72, 77, 85, 128, 72, 77, 79, 88, 128, 72,
- 77, 79, 84, 128, 72, 77, 79, 80, 128, 72, 77, 79, 128, 72, 77, 73, 88,
- 128, 72, 77, 73, 84, 128, 72, 77, 73, 80, 128, 72, 77, 73, 69, 88, 128,
- 72, 77, 73, 69, 80, 128, 72, 77, 73, 69, 128, 72, 77, 73, 128, 72, 77,
- 69, 128, 72, 77, 65, 88, 128, 72, 77, 65, 84, 128, 72, 77, 65, 80, 128,
- 72, 77, 65, 128, 72, 76, 89, 88, 128, 72, 76, 89, 84, 128, 72, 76, 89,
- 82, 88, 128, 72, 76, 89, 82, 128, 72, 76, 89, 80, 128, 72, 76, 89, 128,
- 72, 76, 85, 88, 128, 72, 76, 85, 84, 128, 72, 76, 85, 82, 88, 128, 72,
- 76, 85, 82, 128, 72, 76, 85, 80, 128, 72, 76, 85, 79, 88, 128, 72, 76,
- 85, 79, 80, 128, 72, 76, 85, 79, 128, 72, 76, 85, 128, 72, 76, 79, 88,
- 128, 72, 76, 79, 80, 128, 72, 76, 79, 128, 72, 76, 73, 88, 128, 72, 76,
- 73, 84, 128, 72, 76, 73, 80, 128, 72, 76, 73, 69, 88, 128, 72, 76, 73,
- 69, 80, 128, 72, 76, 73, 69, 128, 72, 76, 73, 128, 72, 76, 69, 88, 128,
- 72, 76, 69, 80, 128, 72, 76, 69, 128, 72, 76, 65, 88, 128, 72, 76, 65,
- 85, 128, 72, 76, 65, 84, 128, 72, 76, 65, 80, 128, 72, 76, 65, 128, 72,
- 76, 128, 72, 75, 128, 72, 73, 90, 66, 128, 72, 73, 89, 79, 128, 72, 73,
- 84, 84, 73, 78, 199, 72, 73, 83, 84, 79, 82, 73, 195, 72, 73, 82, 73, 81,
- 128, 72, 73, 80, 80, 79, 80, 79, 84, 65, 77, 85, 83, 128, 72, 73, 78, 71,
- 69, 68, 128, 72, 73, 78, 71, 69, 196, 72, 73, 78, 71, 69, 128, 72, 73,
- 78, 68, 213, 72, 73, 75, 73, 78, 199, 72, 73, 71, 72, 45, 83, 80, 69, 69,
- 196, 72, 73, 71, 72, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 72, 73,
- 71, 72, 45, 76, 79, 215, 72, 73, 71, 72, 45, 72, 69, 69, 76, 69, 196, 72,
- 73, 69, 88, 128, 72, 73, 69, 85, 72, 45, 83, 73, 79, 83, 128, 72, 73, 69,
- 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, 73, 69, 85, 72, 45, 80, 73, 69,
- 85, 80, 128, 72, 73, 69, 85, 72, 45, 78, 73, 69, 85, 78, 128, 72, 73, 69,
- 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, 73, 69, 85, 200, 72, 73, 69, 82,
- 79, 71, 76, 89, 80, 72, 73, 195, 72, 73, 69, 128, 72, 73, 68, 73, 78,
- 199, 72, 73, 68, 69, 84, 128, 72, 73, 68, 69, 128, 72, 73, 66, 73, 83,
- 67, 85, 83, 128, 72, 73, 45, 82, 69, 83, 128, 72, 73, 45, 55, 128, 72,
- 73, 45, 54, 128, 72, 73, 45, 53, 128, 72, 73, 45, 52, 128, 72, 73, 45,
- 51, 128, 72, 73, 45, 50, 128, 72, 73, 45, 49, 128, 72, 72, 87, 65, 128,
- 72, 72, 85, 128, 72, 72, 73, 128, 72, 72, 69, 69, 128, 72, 72, 69, 128,
- 72, 72, 65, 65, 128, 72, 71, 128, 72, 69, 89, 84, 128, 72, 69, 88, 73,
- 70, 79, 82, 205, 72, 69, 88, 65, 71, 82, 65, 205, 72, 69, 88, 65, 71, 79,
- 78, 128, 72, 69, 82, 85, 84, 85, 128, 72, 69, 82, 85, 128, 72, 69, 82,
- 77, 73, 84, 73, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 69,
- 82, 77, 69, 83, 128, 72, 69, 82, 69, 128, 72, 69, 82, 66, 128, 72, 69,
- 82, 65, 69, 85, 205, 72, 69, 78, 71, 128, 72, 69, 78, 199, 72, 69, 77,
- 80, 128, 72, 69, 76, 77, 69, 84, 128, 72, 69, 76, 77, 69, 212, 72, 69,
- 76, 205, 72, 69, 76, 76, 83, 67, 72, 82, 69, 73, 66, 69, 210, 72, 69, 76,
- 73, 88, 128, 72, 69, 76, 73, 67, 79, 80, 84, 69, 82, 128, 72, 69, 75, 85,
- 84, 65, 65, 82, 85, 128, 72, 69, 73, 83, 69, 73, 128, 72, 69, 73, 71, 72,
- 84, 128, 72, 69, 69, 73, 128, 72, 69, 68, 71, 69, 72, 79, 71, 128, 72,
- 69, 65, 86, 89, 128, 72, 69, 65, 86, 69, 78, 76, 217, 72, 69, 65, 86, 69,
- 78, 128, 72, 69, 65, 86, 69, 206, 72, 69, 65, 82, 84, 83, 128, 72, 69,
- 65, 82, 84, 45, 83, 72, 65, 80, 69, 196, 72, 69, 65, 82, 84, 128, 72, 69,
- 65, 82, 212, 72, 69, 65, 82, 73, 78, 199, 72, 69, 65, 82, 45, 78, 79, 45,
- 69, 86, 73, 204, 72, 69, 65, 68, 83, 84, 82, 79, 75, 69, 128, 72, 69, 65,
- 68, 83, 84, 79, 78, 69, 128, 72, 69, 65, 68, 83, 84, 79, 78, 197, 72, 69,
- 65, 68, 83, 67, 65, 82, 70, 128, 72, 69, 65, 68, 80, 72, 79, 78, 69, 128,
- 72, 69, 65, 68, 73, 78, 71, 128, 72, 69, 65, 68, 45, 66, 65, 78, 68, 65,
- 71, 69, 128, 72, 69, 45, 55, 128, 72, 69, 45, 54, 128, 72, 69, 45, 53,
- 128, 72, 69, 45, 52, 128, 72, 69, 45, 51, 128, 72, 69, 45, 50, 128, 72,
- 69, 45, 49, 128, 72, 68, 82, 128, 72, 67, 128, 72, 66, 65, 83, 65, 45,
- 69, 83, 65, 83, 193, 72, 66, 65, 83, 193, 72, 65, 89, 65, 78, 78, 65,
- 128, 72, 65, 87, 74, 128, 72, 65, 86, 69, 128, 72, 65, 85, 80, 84, 83,
- 84, 73, 77, 77, 69, 128, 72, 65, 213, 72, 65, 84, 82, 65, 206, 72, 65,
- 84, 72, 73, 128, 72, 65, 84, 69, 128, 72, 65, 84, 67, 72, 73, 78, 199,
- 72, 65, 84, 65, 198, 72, 65, 83, 69, 210, 72, 65, 83, 65, 78, 84, 65,
- 128, 72, 65, 82, 80, 79, 79, 78, 128, 72, 65, 82, 80, 79, 79, 206, 72,
- 65, 82, 77, 79, 78, 73, 67, 128, 72, 65, 82, 75, 76, 69, 65, 206, 72, 65,
- 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 196, 72, 65, 82, 66, 65, 72, 65,
- 89, 128, 72, 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, 207, 72, 65, 78,
- 73, 70, 201, 72, 65, 78, 71, 90, 72, 79, 213, 72, 65, 78, 68, 83, 72, 65,
- 75, 69, 128, 72, 65, 78, 68, 83, 128, 72, 65, 78, 68, 211, 72, 65, 78,
- 68, 76, 69, 83, 128, 72, 65, 78, 68, 76, 69, 128, 72, 65, 78, 68, 66, 65,
- 76, 76, 128, 72, 65, 78, 68, 66, 65, 71, 128, 72, 65, 78, 68, 45, 79, 86,
- 65, 76, 128, 72, 65, 78, 68, 45, 79, 86, 65, 204, 72, 65, 78, 68, 45, 72,
- 79, 79, 75, 128, 72, 65, 78, 68, 45, 72, 79, 79, 203, 72, 65, 78, 68, 45,
- 72, 73, 78, 71, 69, 128, 72, 65, 78, 68, 45, 72, 73, 78, 71, 197, 72, 65,
- 78, 68, 45, 70, 76, 65, 84, 128, 72, 65, 78, 68, 45, 70, 76, 65, 212, 72,
- 65, 78, 68, 45, 70, 73, 83, 84, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76,
- 73, 67, 85, 69, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76, 73, 67, 85, 197,
- 72, 65, 78, 68, 45, 67, 85, 80, 128, 72, 65, 78, 68, 45, 67, 85, 208, 72,
- 65, 78, 68, 45, 67, 76, 65, 87, 128, 72, 65, 78, 68, 45, 67, 76, 65, 215,
- 72, 65, 78, 68, 45, 67, 73, 82, 67, 76, 69, 128, 72, 65, 78, 68, 45, 67,
- 73, 82, 67, 76, 197, 72, 65, 78, 68, 45, 65, 78, 71, 76, 69, 128, 72, 65,
- 78, 68, 45, 65, 78, 71, 76, 197, 72, 65, 78, 68, 128, 72, 65, 78, 45, 65,
- 75, 65, 84, 128, 72, 65, 77, 90, 65, 128, 72, 65, 77, 90, 193, 72, 65,
- 77, 83, 84, 69, 210, 72, 65, 77, 77, 69, 82, 128, 72, 65, 77, 77, 69,
- 210, 72, 65, 77, 66, 85, 82, 71, 69, 82, 128, 72, 65, 76, 81, 65, 128,
- 72, 65, 76, 79, 128, 72, 65, 76, 70, 45, 67, 73, 82, 67, 76, 197, 72, 65,
- 76, 70, 45, 50, 128, 72, 65, 76, 70, 45, 49, 128, 72, 65, 76, 70, 128,
- 72, 65, 76, 66, 69, 82, 68, 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65,
- 73, 84, 85, 128, 72, 65, 73, 211, 72, 65, 73, 82, 67, 85, 84, 128, 72,
- 65, 71, 76, 65, 218, 72, 65, 71, 76, 128, 72, 65, 70, 85, 75, 72, 65,
- 128, 72, 65, 70, 85, 75, 72, 128, 72, 65, 69, 71, 204, 72, 65, 68, 69,
- 83, 128, 72, 65, 65, 82, 85, 128, 72, 65, 65, 77, 128, 72, 65, 193, 72,
- 65, 45, 72, 65, 128, 72, 65, 45, 57, 128, 72, 65, 45, 56, 128, 72, 65,
- 45, 55, 128, 72, 65, 45, 54, 128, 72, 65, 45, 53, 128, 72, 65, 45, 52,
- 128, 72, 65, 45, 51, 128, 72, 65, 45, 50, 128, 72, 65, 45, 49, 49, 128,
- 72, 65, 45, 49, 48, 128, 72, 65, 45, 49, 128, 72, 48, 48, 56, 128, 72,
- 48, 48, 55, 128, 72, 48, 48, 54, 65, 128, 72, 48, 48, 54, 128, 72, 48,
- 48, 53, 128, 72, 48, 48, 52, 128, 72, 48, 48, 51, 128, 72, 48, 48, 50,
- 128, 72, 48, 48, 49, 128, 72, 45, 84, 89, 80, 197, 71, 89, 85, 128, 71,
- 89, 79, 78, 128, 71, 89, 79, 128, 71, 89, 73, 128, 71, 89, 70, 213, 71,
- 89, 69, 69, 128, 71, 89, 65, 83, 128, 71, 89, 65, 65, 128, 71, 89, 65,
- 128, 71, 89, 128, 71, 87, 85, 128, 71, 87, 73, 128, 71, 87, 69, 69, 128,
- 71, 87, 69, 128, 71, 87, 65, 65, 128, 71, 87, 65, 128, 71, 87, 128, 71,
- 86, 65, 78, 71, 128, 71, 86, 128, 71, 85, 82, 85, 83, 72, 128, 71, 85,
- 82, 85, 78, 128, 71, 85, 82, 77, 85, 75, 72, 201, 71, 85, 82, 65, 77, 85,
- 84, 79, 78, 128, 71, 85, 82, 55, 128, 71, 85, 78, 85, 128, 71, 85, 78,
- 213, 71, 85, 78, 74, 65, 76, 193, 71, 85, 205, 71, 85, 76, 128, 71, 85,
- 74, 65, 82, 65, 84, 201, 71, 85, 73, 84, 65, 82, 128, 71, 85, 73, 68,
- 197, 71, 85, 199, 71, 85, 69, 73, 128, 71, 85, 69, 72, 128, 71, 85, 69,
- 200, 71, 85, 68, 128, 71, 85, 196, 71, 85, 65, 82, 68, 83, 77, 65, 78,
- 128, 71, 85, 65, 82, 68, 69, 68, 78, 69, 83, 83, 128, 71, 85, 65, 82, 68,
- 69, 196, 71, 85, 65, 82, 68, 128, 71, 85, 65, 82, 65, 78, 201, 71, 85,
- 193, 71, 85, 178, 71, 84, 69, 210, 71, 83, 85, 77, 128, 71, 83, 85, 205,
- 71, 82, 213, 71, 82, 79, 87, 73, 78, 199, 71, 82, 79, 85, 78, 68, 128,
- 71, 82, 79, 78, 84, 72, 73, 83, 77, 65, 84, 65, 128, 71, 82, 73, 78, 78,
- 73, 78, 199, 71, 82, 73, 77, 65, 67, 73, 78, 199, 71, 82, 69, 71, 79, 82,
- 73, 65, 206, 71, 82, 69, 69, 78, 128, 71, 82, 69, 69, 206, 71, 82, 69,
- 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65,
- 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, 71, 82, 69, 65,
- 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65, 86, 69, 89, 65, 82, 196,
- 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 71, 82, 65, 86, 69,
- 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 71, 82, 65, 86, 197,
- 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83, 83, 128, 71, 82, 65, 83,
- 211, 71, 82, 65, 83, 208, 71, 82, 65, 80, 72, 69, 77, 197, 71, 82, 65,
- 80, 69, 83, 128, 71, 82, 65, 78, 84, 72, 193, 71, 82, 65, 77, 77, 193,
- 71, 82, 65, 73, 78, 128, 71, 82, 65, 68, 85, 65, 84, 73, 79, 206, 71, 82,
- 65, 68, 85, 65, 76, 128, 71, 82, 65, 67, 69, 128, 71, 82, 65, 67, 197,
- 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, 73, 75, 79, 206, 71, 79, 82, 84,
- 128, 71, 79, 82, 73, 76, 76, 65, 128, 71, 79, 82, 71, 79, 84, 69, 82, 73,
- 128, 71, 79, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, 128, 71, 79,
- 82, 71, 79, 206, 71, 79, 82, 71, 73, 128, 71, 79, 82, 65, 128, 71, 79,
- 79, 196, 71, 79, 78, 71, 128, 71, 79, 76, 70, 69, 82, 128, 71, 79, 76,
- 68, 128, 71, 79, 75, 128, 71, 79, 73, 78, 199, 71, 79, 71, 71, 76, 69,
- 83, 128, 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, 76, 128, 71, 79, 65,
- 204, 71, 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, 78, 65, 86, 73, 89,
- 65, 78, 73, 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, 79, 86, 69, 83,
- 128, 71, 76, 79, 86, 69, 128, 71, 76, 79, 84, 84, 65, 204, 71, 76, 79,
- 66, 197, 71, 76, 73, 83, 83, 65, 78, 68, 207, 71, 76, 69, 73, 67, 200,
- 71, 76, 65, 71, 79, 76, 73, 128, 71, 76, 65, 128, 71, 74, 69, 128, 71,
- 73, 88, 128, 71, 73, 84, 128, 71, 73, 83, 72, 128, 71, 73, 83, 200, 71,
- 73, 83, 65, 76, 128, 71, 73, 82, 85, 68, 65, 65, 128, 71, 73, 82, 76,
- 211, 71, 73, 82, 76, 128, 71, 73, 82, 65, 70, 70, 197, 71, 73, 82, 51,
- 128, 71, 73, 82, 179, 71, 73, 82, 50, 128, 71, 73, 82, 178, 71, 73, 80,
- 128, 71, 73, 78, 73, 73, 128, 71, 73, 77, 69, 76, 128, 71, 73, 77, 69,
- 204, 71, 73, 77, 128, 71, 73, 71, 65, 128, 71, 73, 71, 128, 71, 73, 70,
- 212, 71, 73, 69, 84, 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79,
- 85, 211, 71, 73, 66, 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90,
- 128, 71, 72, 87, 65, 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78,
- 78, 193, 71, 72, 85, 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128,
- 71, 72, 79, 128, 71, 72, 73, 77, 69, 76, 128, 71, 72, 73, 128, 71, 72,
- 72, 65, 128, 71, 72, 69, 89, 83, 128, 71, 72, 69, 85, 88, 128, 71, 72,
- 69, 85, 78, 128, 71, 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71, 72,
- 69, 85, 71, 72, 69, 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128, 71,
- 72, 69, 85, 65, 69, 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128, 71,
- 72, 69, 69, 128, 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78, 128,
- 71, 72, 65, 82, 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78, 128,
- 71, 72, 65, 77, 77, 65, 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73,
- 78, 85, 128, 71, 72, 65, 73, 78, 128, 71, 72, 65, 73, 206, 71, 72, 65,
- 68, 128, 71, 72, 65, 65, 77, 65, 69, 128, 71, 72, 65, 65, 128, 71, 71,
- 87, 73, 128, 71, 71, 87, 69, 69, 128, 71, 71, 87, 69, 128, 71, 71, 87,
- 65, 65, 128, 71, 71, 87, 65, 128, 71, 71, 85, 88, 128, 71, 71, 85, 84,
- 128, 71, 71, 85, 82, 88, 128, 71, 71, 85, 82, 128, 71, 71, 85, 79, 88,
- 128, 71, 71, 85, 79, 84, 128, 71, 71, 85, 79, 80, 128, 71, 71, 85, 79,
- 128, 71, 71, 79, 88, 128, 71, 71, 79, 84, 128, 71, 71, 79, 80, 128, 71,
- 71, 73, 88, 128, 71, 71, 73, 84, 128, 71, 71, 73, 69, 88, 128, 71, 71,
- 73, 69, 80, 128, 71, 71, 73, 69, 128, 71, 71, 69, 88, 128, 71, 71, 69,
- 84, 128, 71, 71, 69, 80, 128, 71, 71, 65, 88, 128, 71, 71, 65, 84, 128,
- 71, 69, 84, 193, 71, 69, 83, 84, 85, 82, 69, 128, 71, 69, 83, 72, 85,
- 128, 71, 69, 83, 72, 84, 73, 78, 128, 71, 69, 83, 72, 84, 73, 206, 71,
- 69, 83, 72, 50, 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, 71, 69, 82,
- 77, 65, 206, 71, 69, 82, 69, 83, 72, 128, 71, 69, 82, 69, 83, 200, 71,
- 69, 79, 77, 69, 84, 82, 73, 67, 65, 76, 76, 217, 71, 69, 79, 77, 69, 84,
- 82, 73, 195, 71, 69, 78, 84, 76, 197, 71, 69, 78, 73, 84, 73, 86, 69,
- 128, 71, 69, 78, 73, 75, 201, 71, 69, 78, 73, 69, 128, 71, 69, 78, 69,
- 82, 73, 195, 71, 69, 78, 69, 82, 65, 76, 128, 71, 69, 77, 73, 78, 73,
+ 83, 80, 69, 83, 77, 73, 76, 207, 83, 80, 69, 78, 212, 83, 80, 69, 69, 68,
+ 66, 79, 65, 84, 128, 83, 80, 69, 69, 67, 72, 128, 83, 80, 69, 69, 67,
+ 200, 83, 80, 69, 67, 73, 65, 76, 128, 83, 80, 69, 65, 82, 128, 83, 80,
+ 69, 65, 75, 73, 78, 199, 83, 80, 69, 65, 75, 69, 82, 128, 83, 80, 69, 65,
+ 75, 69, 210, 83, 80, 69, 65, 75, 45, 78, 79, 45, 69, 86, 73, 204, 83, 80,
+ 65, 84, 72, 73, 128, 83, 80, 65, 82, 75, 76, 73, 78, 199, 83, 80, 65, 82,
+ 75, 76, 69, 83, 128, 83, 80, 65, 82, 75, 76, 69, 82, 128, 83, 80, 65, 82,
+ 75, 76, 69, 128, 83, 80, 65, 71, 72, 69, 84, 84, 73, 128, 83, 80, 65, 68,
+ 69, 83, 128, 83, 80, 65, 68, 197, 83, 80, 65, 67, 73, 78, 199, 83, 80,
+ 65, 67, 197, 83, 80, 65, 128, 83, 79, 89, 79, 77, 66, 207, 83, 79, 89,
+ 128, 83, 79, 87, 73, 76, 207, 83, 79, 87, 128, 83, 79, 85, 84, 72, 69,
+ 82, 206, 83, 79, 85, 84, 72, 45, 83, 76, 65, 86, 69, 217, 83, 79, 85, 84,
+ 200, 83, 79, 85, 82, 67, 69, 128, 83, 79, 85, 78, 68, 128, 83, 79, 85,
+ 78, 196, 83, 79, 85, 78, 65, 80, 128, 83, 79, 85, 128, 83, 79, 83, 128,
+ 83, 79, 82, 193, 83, 79, 81, 128, 83, 79, 79, 206, 83, 79, 78, 74, 65,
+ 77, 128, 83, 79, 78, 71, 128, 83, 79, 78, 128, 83, 79, 77, 80, 69, 78,
+ 199, 83, 79, 77, 128, 83, 79, 76, 73, 68, 85, 83, 128, 83, 79, 76, 73,
+ 68, 85, 211, 83, 79, 76, 73, 196, 83, 79, 76, 68, 73, 69, 82, 128, 83,
+ 79, 72, 128, 83, 79, 71, 68, 73, 65, 206, 83, 79, 70, 84, 87, 65, 82, 69,
+ 45, 70, 85, 78, 67, 84, 73, 79, 206, 83, 79, 70, 84, 78, 69, 83, 83, 128,
+ 83, 79, 70, 84, 66, 65, 76, 76, 128, 83, 79, 70, 212, 83, 79, 198, 83,
+ 79, 67, 75, 83, 128, 83, 79, 67, 73, 69, 84, 89, 128, 83, 79, 67, 67, 69,
+ 210, 83, 79, 65, 80, 128, 83, 79, 65, 128, 83, 79, 45, 55, 128, 83, 79,
+ 45, 54, 128, 83, 79, 45, 53, 128, 83, 79, 45, 52, 128, 83, 79, 45, 51,
+ 128, 83, 79, 45, 50, 128, 83, 79, 45, 49, 128, 83, 207, 83, 78, 79, 87,
+ 77, 65, 78, 128, 83, 78, 79, 87, 77, 65, 206, 83, 78, 79, 87, 70, 76, 65,
+ 75, 69, 128, 83, 78, 79, 87, 66, 79, 65, 82, 68, 69, 82, 128, 83, 78, 79,
+ 87, 128, 83, 78, 79, 215, 83, 78, 79, 85, 84, 128, 83, 78, 79, 85, 212,
+ 83, 78, 69, 69, 90, 73, 78, 199, 83, 78, 65, 208, 83, 78, 65, 75, 69,
+ 128, 83, 78, 65, 75, 197, 83, 78, 65, 73, 76, 128, 83, 78, 193, 83, 77,
+ 79, 75, 73, 78, 199, 83, 77, 73, 82, 75, 73, 78, 199, 83, 77, 73, 76, 73,
+ 78, 199, 83, 77, 73, 76, 69, 128, 83, 77, 73, 76, 197, 83, 77, 69, 65,
+ 82, 128, 83, 77, 65, 83, 200, 83, 77, 65, 76, 76, 69, 210, 83, 77, 65,
+ 76, 76, 128, 83, 76, 85, 82, 128, 83, 76, 79, 87, 76, 89, 128, 83, 76,
+ 79, 87, 128, 83, 76, 79, 215, 83, 76, 79, 86, 79, 128, 83, 76, 79, 84,
+ 72, 128, 83, 76, 79, 212, 83, 76, 79, 80, 73, 78, 199, 83, 76, 79, 80,
+ 69, 128, 83, 76, 79, 65, 206, 83, 76, 73, 78, 71, 128, 83, 76, 73, 71,
+ 72, 84, 76, 217, 83, 76, 73, 68, 73, 78, 71, 128, 83, 76, 73, 68, 69, 82,
+ 128, 83, 76, 73, 67, 69, 128, 83, 76, 73, 67, 197, 83, 76, 69, 85, 84,
+ 200, 83, 76, 69, 69, 80, 217, 83, 76, 69, 69, 80, 73, 78, 199, 83, 76,
+ 69, 69, 208, 83, 76, 69, 68, 128, 83, 76, 65, 86, 79, 78, 73, 195, 83,
+ 76, 65, 86, 69, 128, 83, 76, 65, 83, 72, 128, 83, 76, 65, 83, 200, 83,
+ 76, 65, 78, 84, 69, 196, 83, 75, 87, 65, 128, 83, 75, 87, 128, 83, 75,
+ 85, 78, 75, 128, 83, 75, 85, 76, 76, 128, 83, 75, 85, 76, 204, 83, 75,
+ 76, 73, 82, 79, 206, 83, 75, 73, 78, 128, 83, 75, 73, 69, 82, 128, 83,
+ 75, 201, 83, 75, 69, 87, 69, 196, 83, 75, 65, 84, 69, 66, 79, 65, 82, 68,
+ 128, 83, 75, 65, 84, 69, 128, 83, 75, 128, 83, 74, 69, 128, 83, 73, 90,
+ 197, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 72, 83, 128, 83, 73, 88,
+ 84, 89, 45, 70, 79, 85, 82, 84, 72, 128, 83, 73, 88, 84, 89, 45, 70, 79,
+ 85, 82, 84, 200, 83, 73, 88, 84, 89, 128, 83, 73, 88, 84, 217, 83, 73,
+ 88, 84, 72, 83, 128, 83, 73, 88, 84, 72, 211, 83, 73, 88, 84, 72, 128,
+ 83, 73, 88, 84, 69, 69, 78, 84, 72, 83, 128, 83, 73, 88, 84, 69, 69, 78,
+ 84, 72, 45, 50, 128, 83, 73, 88, 84, 69, 69, 78, 84, 72, 45, 49, 128, 83,
+ 73, 88, 84, 69, 69, 78, 84, 72, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200,
+ 83, 73, 88, 84, 69, 69, 78, 128, 83, 73, 88, 84, 69, 69, 206, 83, 73, 88,
+ 45, 84, 72, 73, 82, 84, 89, 128, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199,
+ 83, 73, 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 76, 73, 78, 197,
+ 83, 73, 216, 83, 73, 84, 69, 128, 83, 73, 83, 65, 128, 83, 73, 82, 73,
+ 78, 71, 85, 128, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128, 83,
+ 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 83, 73, 79, 83,
+ 45, 82, 73, 69, 85, 76, 128, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 45,
+ 75, 73, 89, 69, 79, 75, 128, 83, 73, 79, 83, 45, 80, 72, 73, 69, 85, 80,
+ 72, 128, 83, 73, 79, 83, 45, 80, 65, 78, 83, 73, 79, 83, 128, 83, 73, 79,
+ 83, 45, 78, 73, 69, 85, 78, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77,
+ 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 73, 79, 83,
+ 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80, 128, 83, 73, 79,
+ 83, 45, 73, 69, 85, 78, 71, 128, 83, 73, 79, 83, 45, 72, 73, 69, 85, 72,
+ 128, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 83, 73, 79, 83, 45, 67,
+ 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, 211, 83, 73, 78, 85, 83, 79, 73,
+ 196, 83, 73, 78, 79, 76, 79, 71, 73, 67, 65, 204, 83, 73, 78, 78, 89, 73,
+ 73, 89, 72, 69, 128, 83, 73, 78, 75, 73, 78, 71, 128, 83, 73, 78, 71, 76,
+ 69, 45, 83, 72, 73, 70, 84, 45, 51, 128, 83, 73, 78, 71, 76, 69, 45, 83,
+ 72, 73, 70, 84, 45, 50, 128, 83, 73, 78, 71, 76, 69, 45, 76, 73, 78, 197,
+ 83, 73, 78, 71, 76, 69, 128, 83, 73, 78, 71, 76, 197, 83, 73, 78, 71, 65,
+ 65, 84, 128, 83, 73, 78, 197, 83, 73, 78, 68, 72, 201, 83, 73, 78, 128,
+ 83, 73, 206, 83, 73, 77, 85, 76, 84, 65, 78, 69, 79, 85, 83, 128, 83, 73,
+ 77, 85, 76, 84, 65, 78, 69, 79, 85, 211, 83, 73, 77, 80, 76, 73, 70, 73,
+ 69, 196, 83, 73, 77, 73, 76, 65, 82, 128, 83, 73, 77, 73, 76, 65, 210,
+ 83, 73, 77, 65, 78, 83, 73, 211, 83, 73, 77, 65, 76, 85, 78, 71, 85, 206,
+ 83, 73, 77, 65, 128, 83, 73, 76, 86, 69, 82, 128, 83, 73, 76, 75, 128,
+ 83, 73, 76, 73, 81, 85, 193, 83, 73, 76, 72, 79, 85, 69, 84, 84, 69, 128,
+ 83, 73, 76, 72, 79, 85, 69, 84, 84, 197, 83, 73, 76, 65, 51, 128, 83, 73,
+ 75, 73, 128, 83, 73, 75, 50, 128, 83, 73, 75, 178, 83, 73, 71, 78, 83,
+ 128, 83, 73, 71, 77, 65, 128, 83, 73, 71, 77, 193, 83, 73, 71, 69, 204,
+ 83, 73, 71, 52, 128, 83, 73, 71, 180, 83, 73, 71, 128, 83, 73, 69, 69,
+ 128, 83, 73, 68, 69, 87, 65, 89, 211, 83, 73, 68, 69, 128, 83, 73, 68,
+ 197, 83, 73, 68, 68, 72, 73, 128, 83, 73, 68, 68, 72, 65, 77, 128, 83,
+ 73, 68, 68, 72, 65, 205, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 73, 67,
+ 75, 76, 69, 128, 83, 73, 66, 197, 83, 73, 65, 128, 83, 73, 45, 54, 128,
+ 83, 73, 45, 53, 128, 83, 73, 45, 52, 128, 83, 73, 45, 51, 128, 83, 73,
+ 45, 50, 128, 83, 73, 45, 49, 128, 83, 201, 83, 72, 89, 88, 128, 83, 72,
+ 89, 84, 128, 83, 72, 89, 82, 88, 128, 83, 72, 89, 82, 128, 83, 72, 89,
+ 80, 128, 83, 72, 89, 69, 128, 83, 72, 89, 65, 128, 83, 72, 89, 128, 83,
+ 72, 87, 79, 89, 128, 83, 72, 87, 79, 79, 128, 83, 72, 87, 79, 128, 83,
+ 72, 87, 73, 73, 128, 83, 72, 87, 73, 128, 83, 72, 87, 69, 128, 83, 72,
+ 87, 197, 83, 72, 87, 65, 65, 128, 83, 72, 87, 65, 128, 83, 72, 86, 128,
+ 83, 72, 85, 88, 128, 83, 72, 85, 85, 128, 83, 72, 85, 84, 84, 76, 69, 67,
+ 79, 67, 75, 128, 83, 72, 85, 84, 128, 83, 72, 85, 82, 88, 128, 83, 72,
+ 85, 82, 128, 83, 72, 85, 80, 128, 83, 72, 85, 79, 88, 128, 83, 72, 85,
+ 79, 80, 128, 83, 72, 85, 79, 128, 83, 72, 85, 77, 128, 83, 72, 85, 76,
+ 128, 83, 72, 85, 70, 70, 76, 197, 83, 72, 85, 69, 81, 128, 83, 72, 85,
+ 69, 78, 83, 72, 85, 69, 84, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85,
+ 65, 78, 71, 88, 73, 128, 83, 72, 85, 50, 128, 83, 72, 85, 178, 83, 72,
+ 85, 128, 83, 72, 84, 65, 80, 73, 67, 128, 83, 72, 84, 65, 128, 83, 72,
+ 82, 85, 71, 128, 83, 72, 82, 73, 78, 69, 128, 83, 72, 82, 73, 77, 80,
+ 128, 83, 72, 82, 73, 73, 128, 83, 72, 82, 73, 128, 83, 72, 79, 89, 128,
+ 83, 72, 79, 88, 128, 83, 72, 79, 87, 69, 82, 128, 83, 72, 79, 85, 76, 68,
+ 69, 82, 69, 196, 83, 72, 79, 85, 76, 68, 69, 210, 83, 72, 79, 85, 128,
+ 83, 72, 79, 84, 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 79, 82, 84,
+ 211, 83, 72, 79, 82, 84, 72, 65, 78, 196, 83, 72, 79, 82, 84, 69, 78, 69,
+ 82, 128, 83, 72, 79, 82, 84, 67, 65, 75, 69, 128, 83, 72, 79, 82, 84, 45,
+ 84, 87, 73, 71, 45, 89, 82, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71,
+ 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, 79, 204,
+ 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, 79, 82,
+ 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 72, 79, 82, 84, 45, 84,
+ 87, 73, 71, 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71,
+ 45, 72, 65, 71, 65, 76, 204, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45,
+ 66, 74, 65, 82, 75, 65, 206, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45,
+ 65, 210, 83, 72, 79, 82, 84, 128, 83, 72, 79, 82, 212, 83, 72, 79, 81,
+ 128, 83, 72, 79, 209, 83, 72, 79, 80, 80, 73, 78, 199, 83, 72, 79, 80,
+ 128, 83, 72, 79, 79, 84, 73, 78, 199, 83, 72, 79, 79, 84, 128, 83, 72,
+ 79, 79, 73, 128, 83, 72, 79, 79, 128, 83, 72, 79, 71, 201, 83, 72, 79,
+ 199, 83, 72, 79, 69, 83, 128, 83, 72, 79, 69, 128, 83, 72, 79, 197, 83,
+ 72, 79, 67, 75, 69, 196, 83, 72, 79, 65, 128, 83, 72, 79, 128, 83, 72,
+ 73, 89, 89, 65, 65, 76, 65, 65, 128, 83, 72, 73, 84, 65, 128, 83, 72, 73,
+ 84, 193, 83, 72, 73, 82, 212, 83, 72, 73, 82, 65, 69, 128, 83, 72, 73,
+ 82, 128, 83, 72, 73, 210, 83, 72, 73, 81, 128, 83, 72, 73, 78, 84, 207,
+ 83, 72, 73, 78, 73, 71, 128, 83, 72, 73, 78, 68, 193, 83, 72, 73, 206,
+ 83, 72, 73, 77, 65, 128, 83, 72, 73, 77, 193, 83, 72, 73, 77, 128, 83,
+ 72, 73, 205, 83, 72, 73, 73, 78, 128, 83, 72, 73, 73, 128, 83, 72, 73,
+ 70, 212, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 68, 128, 83, 72, 73,
+ 196, 83, 72, 72, 65, 128, 83, 72, 72, 193, 83, 72, 69, 88, 128, 83, 72,
+ 69, 86, 65, 128, 83, 72, 69, 85, 88, 128, 83, 72, 69, 85, 79, 81, 128,
+ 83, 72, 69, 85, 65, 69, 81, 84, 85, 128, 83, 72, 69, 85, 65, 69, 81, 128,
+ 83, 72, 69, 85, 65, 69, 128, 83, 72, 69, 84, 128, 83, 72, 69, 212, 83,
+ 72, 69, 83, 72, 76, 65, 77, 128, 83, 72, 69, 83, 72, 73, 71, 128, 83, 72,
+ 69, 83, 72, 73, 199, 83, 72, 69, 83, 72, 50, 128, 83, 72, 69, 83, 72,
+ 128, 83, 72, 69, 83, 200, 83, 72, 69, 81, 69, 204, 83, 72, 69, 80, 128,
+ 83, 72, 69, 78, 128, 83, 72, 69, 76, 76, 128, 83, 72, 69, 76, 204, 83,
+ 72, 69, 76, 70, 128, 83, 72, 69, 73, 128, 83, 72, 69, 71, 57, 128, 83,
+ 72, 69, 69, 80, 128, 83, 72, 69, 69, 78, 85, 128, 83, 72, 69, 69, 78,
+ 128, 83, 72, 69, 69, 206, 83, 72, 69, 69, 128, 83, 72, 69, 45, 71, 79,
+ 65, 84, 128, 83, 72, 197, 83, 72, 67, 72, 79, 79, 73, 128, 83, 72, 67,
+ 72, 65, 128, 83, 72, 65, 89, 128, 83, 72, 65, 88, 128, 83, 72, 65, 86,
+ 73, 89, 65, 78, 73, 128, 83, 72, 65, 86, 73, 65, 206, 83, 72, 65, 86, 69,
+ 196, 83, 72, 65, 85, 128, 83, 72, 65, 84, 128, 83, 72, 65, 82, 85, 128,
+ 83, 72, 65, 82, 213, 83, 72, 65, 82, 80, 128, 83, 72, 65, 82, 208, 83,
+ 72, 65, 82, 75, 128, 83, 72, 65, 82, 65, 68, 193, 83, 72, 65, 82, 65,
+ 128, 83, 72, 65, 82, 50, 128, 83, 72, 65, 82, 178, 83, 72, 65, 80, 73,
+ 78, 71, 128, 83, 72, 65, 80, 69, 83, 128, 83, 72, 65, 80, 197, 83, 72,
+ 65, 80, 128, 83, 72, 65, 78, 71, 128, 83, 72, 65, 78, 128, 83, 72, 65,
+ 206, 83, 72, 65, 77, 82, 79, 67, 75, 128, 83, 72, 65, 76, 83, 72, 69, 76,
+ 69, 84, 128, 83, 72, 65, 76, 76, 79, 215, 83, 72, 65, 75, 84, 73, 128,
+ 83, 72, 65, 75, 73, 78, 71, 128, 83, 72, 65, 75, 73, 78, 199, 83, 72, 65,
+ 75, 69, 82, 128, 83, 72, 65, 75, 128, 83, 72, 65, 73, 128, 83, 72, 65,
+ 70, 84, 128, 83, 72, 65, 70, 212, 83, 72, 65, 68, 79, 87, 69, 196, 83,
+ 72, 65, 68, 69, 196, 83, 72, 65, 68, 69, 128, 83, 72, 65, 68, 197, 83,
+ 72, 65, 68, 68, 65, 128, 83, 72, 65, 68, 68, 193, 83, 72, 65, 68, 128,
+ 83, 72, 65, 196, 83, 72, 65, 66, 54, 128, 83, 72, 65, 65, 128, 83, 72,
+ 65, 54, 128, 83, 72, 65, 182, 83, 72, 65, 51, 128, 83, 72, 65, 179, 83,
+ 71, 82, 193, 83, 71, 79, 210, 83, 71, 67, 128, 83, 71, 65, 215, 83, 71,
+ 65, 194, 83, 71, 128, 83, 69, 89, 75, 128, 83, 69, 88, 84, 85, 76, 193,
+ 83, 69, 88, 84, 73, 76, 69, 128, 83, 69, 88, 84, 65, 78, 84, 45, 54, 128,
+ 83, 69, 88, 84, 65, 78, 84, 45, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84,
+ 45, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 52, 54, 128, 83, 69, 88, 84,
+ 65, 78, 84, 45, 52, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 52, 53,
+ 128, 83, 69, 88, 84, 65, 78, 84, 45, 52, 128, 83, 69, 88, 84, 65, 78, 84,
+ 45, 51, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51, 53, 54, 128, 83, 69,
+ 88, 84, 65, 78, 84, 45, 51, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51,
+ 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51, 52, 53, 54, 128, 83, 69,
+ 88, 84, 65, 78, 84, 45, 51, 52, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45,
+ 51, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45, 51, 128, 83, 69, 88, 84, 65,
+ 78, 84, 45, 50, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 53, 54, 128,
+ 83, 69, 88, 84, 65, 78, 84, 45, 50, 53, 128, 83, 69, 88, 84, 65, 78, 84,
+ 45, 50, 52, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 52, 53, 128,
+ 83, 69, 88, 84, 65, 78, 84, 45, 50, 52, 128, 83, 69, 88, 84, 65, 78, 84,
+ 45, 50, 51, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 53, 54, 128,
+ 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 53, 128, 83, 69, 88, 84, 65, 78,
+ 84, 45, 50, 51, 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 52,
+ 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 51, 52, 53, 128, 83, 69,
+ 88, 84, 65, 78, 84, 45, 50, 51, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45,
+ 50, 51, 128, 83, 69, 88, 84, 65, 78, 84, 45, 50, 128, 83, 69, 88, 84, 65,
+ 78, 84, 45, 49, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 53, 54, 128,
+ 83, 69, 88, 84, 65, 78, 84, 45, 49, 53, 128, 83, 69, 88, 84, 65, 78, 84,
+ 45, 49, 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 52, 53, 54, 128,
+ 83, 69, 88, 84, 65, 78, 84, 45, 49, 52, 53, 128, 83, 69, 88, 84, 65, 78,
+ 84, 45, 49, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 51, 54, 128, 83,
+ 69, 88, 84, 65, 78, 84, 45, 49, 51, 53, 54, 128, 83, 69, 88, 84, 65, 78,
+ 84, 45, 49, 51, 52, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 51, 52,
+ 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 51, 52, 53, 128, 83, 69,
+ 88, 84, 65, 78, 84, 45, 49, 51, 52, 128, 83, 69, 88, 84, 65, 78, 84, 45,
+ 49, 51, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 54, 128, 83, 69, 88,
+ 84, 65, 78, 84, 45, 49, 50, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84, 45,
+ 49, 50, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 52, 54, 128, 83,
+ 69, 88, 84, 65, 78, 84, 45, 49, 50, 52, 53, 54, 128, 83, 69, 88, 84, 65,
+ 78, 84, 45, 49, 50, 52, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50,
+ 52, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 51, 54, 128, 83, 69, 88,
+ 84, 65, 78, 84, 45, 49, 50, 51, 53, 54, 128, 83, 69, 88, 84, 65, 78, 84,
+ 45, 49, 50, 51, 53, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 51, 52,
+ 54, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 51, 52, 53, 128, 83, 69,
+ 88, 84, 65, 78, 84, 45, 49, 50, 51, 52, 128, 83, 69, 88, 84, 65, 78, 84,
+ 45, 49, 50, 51, 128, 83, 69, 88, 84, 65, 78, 84, 45, 49, 50, 128, 83, 69,
+ 88, 84, 65, 78, 84, 45, 49, 128, 83, 69, 88, 84, 65, 78, 211, 83, 69, 87,
+ 73, 78, 199, 83, 69, 86, 69, 82, 65, 78, 67, 69, 128, 83, 69, 86, 69, 78,
+ 84, 89, 128, 83, 69, 86, 69, 78, 84, 217, 83, 69, 86, 69, 78, 84, 72,
+ 128, 83, 69, 86, 69, 78, 84, 69, 69, 78, 128, 83, 69, 86, 69, 78, 84, 69,
+ 69, 206, 83, 69, 86, 69, 78, 45, 84, 72, 73, 82, 84, 89, 128, 83, 69, 86,
+ 69, 206, 83, 69, 85, 88, 128, 83, 69, 85, 78, 89, 65, 77, 128, 83, 69,
+ 85, 65, 69, 81, 128, 83, 69, 84, 70, 79, 78, 128, 83, 69, 83, 84, 69, 82,
+ 84, 73, 85, 211, 83, 69, 83, 81, 85, 73, 81, 85, 65, 68, 82, 65, 84, 69,
+ 128, 83, 69, 83, 65, 77, 197, 83, 69, 82, 86, 73, 67, 197, 83, 69, 82,
+ 73, 79, 85, 211, 83, 69, 82, 73, 70, 83, 128, 83, 69, 82, 73, 70, 211,
+ 83, 69, 82, 73, 70, 128, 83, 69, 81, 85, 69, 78, 84, 73, 65, 76, 128, 83,
+ 69, 81, 85, 69, 78, 67, 197, 83, 69, 80, 84, 85, 80, 76, 197, 83, 69, 80,
+ 84, 69, 77, 66, 69, 82, 128, 83, 69, 80, 65, 82, 65, 84, 79, 82, 128, 83,
+ 69, 80, 65, 82, 65, 84, 79, 210, 83, 69, 80, 65, 82, 65, 84, 69, 196, 83,
+ 69, 78, 84, 79, 128, 83, 69, 78, 84, 73, 128, 83, 69, 78, 84, 65, 71, 79,
+ 78, 128, 83, 69, 77, 85, 78, 67, 73, 193, 83, 69, 77, 75, 65, 84, 72,
+ 128, 83, 69, 77, 75, 128, 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 69,
+ 77, 73, 83, 79, 70, 212, 83, 69, 77, 73, 83, 69, 88, 84, 73, 76, 69, 128,
+ 83, 69, 77, 73, 77, 73, 78, 73, 77, 193, 83, 69, 77, 73, 68, 73, 82, 69,
+ 67, 212, 83, 69, 77, 73, 67, 79, 76, 79, 78, 128, 83, 69, 77, 73, 67, 79,
+ 76, 79, 206, 83, 69, 77, 73, 67, 73, 82, 67, 85, 76, 65, 210, 83, 69, 77,
+ 73, 67, 73, 82, 67, 76, 197, 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83,
+ 69, 77, 73, 45, 86, 79, 73, 67, 69, 196, 83, 69, 76, 70, 73, 69, 128, 83,
+ 69, 76, 70, 128, 83, 69, 76, 69, 78, 65, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 57, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 56, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 57, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 53, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 57, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 50, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 56, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 55, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 56, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 52, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 56, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 56, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 49, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 57, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 55, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 55, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 54, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 55, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 51, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 55, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 55, 48, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
+ 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 56, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 54, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
+ 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 53, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 54, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
+ 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 50, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54,
+ 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 56,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 55, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 53,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 52, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 50,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 49, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 57, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 55, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 54, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 52, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 51, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 49, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 52, 48, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 57, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 54, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 51, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 48, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 56, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 54, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 53, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 50, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53,
+ 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 50, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 57, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52,
+ 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 54, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 51, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 50, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 50, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 55, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 50, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 51, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 50, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 48,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 50, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50,
+ 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 55, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 50, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 50, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 52,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 51, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 50, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 48, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 50, 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 56,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 55, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 50, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 50, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 52, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 51, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49,
+ 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 48, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 50, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 56, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 55, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 50, 48, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48,
+ 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 52, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 50, 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 50, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 49, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 57, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 54, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 57, 53, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 51,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 50, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 56, 57, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 55,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 54, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 56, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 51, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 50, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 56, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56,
+ 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 55, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 55, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 55, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 54, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55,
+ 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 51, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 55, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 48, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54,
+ 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 55, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 54, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 54, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 52, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 51, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 54, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 48, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 56, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 52, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 49,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 48, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 56, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 53,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 52, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 52, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 49, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 48, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 57,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 56, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 53, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 52, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51,
+ 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 49, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 57, 128, 83,
+ 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 56, 128, 83, 69, 76, 69, 67, 84,
+ 79, 82, 45, 49, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50,
+ 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 53, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 50, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 50, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 57, 128, 83, 69, 76,
+ 69, 67, 84, 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82,
+ 45, 49, 49, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 54, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 53, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 50, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 128,
+ 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 57, 128, 83, 69, 76, 69, 67,
+ 84, 79, 82, 45, 49, 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49,
+ 48, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 54, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79,
+ 82, 45, 49, 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 51,
+ 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 50, 128, 83, 69, 76, 69,
+ 67, 84, 79, 82, 45, 49, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45,
+ 49, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 128, 83, 69,
+ 76, 69, 67, 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 128,
+ 83, 69, 76, 69, 67, 84, 79, 210, 83, 69, 76, 69, 67, 84, 69, 196, 83, 69,
+ 73, 83, 77, 65, 128, 83, 69, 73, 83, 77, 193, 83, 69, 72, 128, 83, 69,
+ 71, 79, 76, 128, 83, 69, 71, 78, 79, 128, 83, 69, 71, 77, 69, 78, 84, 69,
+ 196, 83, 69, 71, 77, 69, 78, 84, 128, 83, 69, 69, 86, 128, 83, 69, 69,
+ 78, 85, 128, 83, 69, 69, 78, 128, 83, 69, 69, 206, 83, 69, 69, 68, 76,
+ 73, 78, 71, 128, 83, 69, 69, 45, 78, 79, 45, 69, 86, 73, 204, 83, 69, 68,
+ 78, 65, 128, 83, 69, 67, 84, 79, 82, 128, 83, 69, 67, 84, 73, 79, 78,
+ 128, 83, 69, 67, 84, 73, 79, 206, 83, 69, 67, 82, 69, 84, 128, 83, 69,
+ 67, 65, 78, 84, 128, 83, 69, 66, 65, 84, 66, 69, 73, 212, 83, 69, 65, 84,
+ 128, 83, 69, 65, 76, 128, 83, 69, 65, 71, 85, 76, 204, 83, 69, 45, 53,
+ 128, 83, 69, 45, 52, 128, 83, 69, 45, 51, 128, 83, 68, 79, 78, 199, 83,
+ 68, 128, 83, 67, 87, 65, 128, 83, 67, 82, 85, 80, 76, 69, 128, 83, 67,
+ 82, 79, 76, 76, 128, 83, 67, 82, 73, 80, 84, 128, 83, 67, 82, 69, 87, 68,
+ 82, 73, 86, 69, 82, 128, 83, 67, 82, 69, 69, 78, 128, 83, 67, 82, 69, 69,
+ 206, 83, 67, 82, 69, 65, 77, 73, 78, 199, 83, 67, 79, 82, 80, 73, 85, 83,
+ 128, 83, 67, 79, 82, 80, 73, 79, 78, 128, 83, 67, 79, 82, 69, 128, 83,
+ 67, 79, 79, 84, 69, 82, 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 67,
+ 73, 128, 83, 67, 72, 87, 65, 128, 83, 67, 72, 87, 193, 83, 67, 72, 82,
+ 79, 69, 68, 69, 82, 128, 83, 67, 72, 79, 79, 76, 128, 83, 67, 72, 79, 79,
+ 204, 83, 67, 72, 79, 76, 65, 82, 128, 83, 67, 72, 69, 77, 193, 83, 67,
+ 69, 80, 84, 69, 210, 83, 67, 65, 82, 70, 128, 83, 67, 65, 78, 68, 73, 67,
+ 85, 83, 128, 83, 67, 65, 78, 68, 73, 67, 85, 211, 83, 67, 65, 206, 83,
+ 67, 65, 76, 69, 83, 128, 83, 66, 85, 194, 83, 66, 82, 85, 204, 83, 65,
+ 89, 73, 83, 201, 83, 65, 89, 65, 78, 78, 65, 128, 83, 65, 89, 128, 83,
+ 65, 88, 79, 80, 72, 79, 78, 69, 128, 83, 65, 88, 73, 77, 65, 84, 65, 128,
+ 83, 65, 87, 65, 78, 128, 83, 65, 87, 128, 83, 65, 86, 79, 85, 82, 73, 78,
+ 199, 83, 65, 85, 82, 79, 80, 79, 68, 128, 83, 65, 85, 82, 65, 83, 72, 84,
+ 82, 193, 83, 65, 85, 73, 76, 128, 83, 65, 85, 67, 69, 82, 128, 83, 65,
+ 84, 85, 82, 78, 128, 83, 65, 84, 75, 65, 65, 78, 75, 85, 85, 128, 83, 65,
+ 84, 75, 65, 65, 78, 128, 83, 65, 84, 69, 76, 76, 73, 84, 69, 128, 83, 65,
+ 84, 69, 76, 76, 73, 84, 197, 83, 65, 84, 67, 72, 69, 76, 128, 83, 65, 84,
+ 65, 78, 71, 65, 128, 83, 65, 83, 72, 128, 83, 65, 83, 65, 75, 128, 83,
+ 65, 82, 73, 128, 83, 65, 82, 193, 83, 65, 82, 128, 83, 65, 81, 128, 83,
+ 65, 80, 65, 128, 83, 65, 78, 89, 79, 79, 71, 193, 83, 65, 78, 89, 65, 75,
+ 193, 83, 65, 78, 84, 73, 73, 77, 85, 128, 83, 65, 78, 83, 75, 82, 73,
+ 212, 83, 65, 78, 78, 89, 65, 128, 83, 65, 78, 71, 65, 50, 128, 83, 65,
+ 78, 68, 87, 73, 67, 72, 128, 83, 65, 78, 68, 72, 201, 83, 65, 78, 68, 65,
+ 76, 128, 83, 65, 78, 65, 72, 128, 83, 65, 78, 128, 83, 65, 77, 89, 79,
+ 203, 83, 65, 77, 86, 65, 84, 128, 83, 65, 77, 80, 73, 128, 83, 65, 77,
+ 80, 72, 65, 79, 128, 83, 65, 77, 75, 65, 128, 83, 65, 77, 69, 75, 72,
+ 128, 83, 65, 77, 69, 75, 200, 83, 65, 77, 66, 65, 128, 83, 65, 77, 65,
+ 82, 73, 84, 65, 206, 83, 65, 77, 128, 83, 65, 76, 84, 73, 82, 69, 128,
+ 83, 65, 76, 84, 73, 82, 197, 83, 65, 76, 84, 73, 76, 76, 79, 128, 83, 65,
+ 76, 84, 45, 50, 128, 83, 65, 76, 84, 128, 83, 65, 76, 212, 83, 65, 76,
+ 76, 65, 76, 76, 65, 72, 79, 213, 83, 65, 76, 76, 193, 83, 65, 76, 65,
+ 205, 83, 65, 76, 65, 68, 128, 83, 65, 76, 65, 128, 83, 65, 76, 45, 65,
+ 77, 77, 79, 78, 73, 65, 67, 128, 83, 65, 76, 128, 83, 65, 75, 84, 65,
+ 128, 83, 65, 75, 79, 84, 128, 83, 65, 75, 73, 78, 128, 83, 65, 75, 72,
+ 193, 83, 65, 75, 69, 85, 65, 69, 128, 83, 65, 75, 197, 83, 65, 74, 68,
+ 65, 72, 128, 83, 65, 73, 76, 66, 79, 65, 84, 128, 83, 65, 73, 76, 128,
+ 83, 65, 73, 75, 85, 82, 85, 128, 83, 65, 72, 128, 83, 65, 71, 73, 84, 84,
+ 65, 82, 73, 85, 83, 128, 83, 65, 71, 65, 128, 83, 65, 71, 128, 83, 65,
+ 199, 83, 65, 70, 72, 65, 128, 83, 65, 70, 69, 84, 217, 83, 65, 68, 72,
+ 69, 128, 83, 65, 68, 72, 197, 83, 65, 68, 69, 128, 83, 65, 68, 128, 83,
+ 65, 196, 83, 65, 67, 82, 73, 70, 73, 67, 73, 65, 204, 83, 65, 65, 73,
+ 128, 83, 65, 65, 68, 72, 85, 128, 83, 65, 45, 73, 128, 83, 65, 45, 56,
+ 128, 83, 65, 45, 55, 128, 83, 65, 45, 54, 128, 83, 65, 45, 53, 128, 83,
+ 65, 45, 52, 128, 83, 65, 45, 51, 128, 83, 65, 45, 50, 128, 83, 65, 45,
+ 49, 128, 83, 48, 52, 54, 128, 83, 48, 52, 53, 128, 83, 48, 52, 52, 128,
+ 83, 48, 52, 51, 128, 83, 48, 52, 50, 128, 83, 48, 52, 49, 128, 83, 48,
+ 52, 48, 128, 83, 48, 51, 57, 128, 83, 48, 51, 56, 128, 83, 48, 51, 55,
+ 128, 83, 48, 51, 54, 128, 83, 48, 51, 53, 65, 128, 83, 48, 51, 53, 128,
+ 83, 48, 51, 52, 128, 83, 48, 51, 51, 128, 83, 48, 51, 50, 128, 83, 48,
+ 51, 49, 128, 83, 48, 51, 48, 128, 83, 48, 50, 57, 128, 83, 48, 50, 56,
+ 128, 83, 48, 50, 55, 128, 83, 48, 50, 54, 66, 128, 83, 48, 50, 54, 65,
+ 128, 83, 48, 50, 54, 128, 83, 48, 50, 53, 128, 83, 48, 50, 52, 128, 83,
+ 48, 50, 51, 128, 83, 48, 50, 50, 128, 83, 48, 50, 49, 128, 83, 48, 50,
+ 48, 128, 83, 48, 49, 57, 128, 83, 48, 49, 56, 128, 83, 48, 49, 55, 65,
+ 128, 83, 48, 49, 55, 128, 83, 48, 49, 54, 128, 83, 48, 49, 53, 128, 83,
+ 48, 49, 52, 66, 128, 83, 48, 49, 52, 65, 128, 83, 48, 49, 52, 128, 83,
+ 48, 49, 51, 128, 83, 48, 49, 50, 128, 83, 48, 49, 49, 128, 83, 48, 49,
+ 48, 128, 83, 48, 48, 57, 128, 83, 48, 48, 56, 128, 83, 48, 48, 55, 128,
+ 83, 48, 48, 54, 65, 128, 83, 48, 48, 54, 128, 83, 48, 48, 53, 128, 83,
+ 48, 48, 52, 128, 83, 48, 48, 51, 128, 83, 48, 48, 50, 65, 128, 83, 48,
+ 48, 50, 128, 83, 48, 48, 49, 128, 83, 45, 87, 128, 83, 45, 83, 72, 65,
+ 80, 69, 196, 82, 89, 89, 128, 82, 89, 88, 128, 82, 89, 84, 128, 82, 89,
+ 82, 88, 128, 82, 89, 82, 128, 82, 89, 80, 128, 82, 87, 79, 79, 128, 82,
+ 87, 79, 128, 82, 87, 73, 73, 128, 82, 87, 73, 128, 82, 87, 69, 69, 128,
+ 82, 87, 69, 128, 82, 87, 65, 72, 65, 128, 82, 87, 65, 65, 128, 82, 87,
+ 65, 128, 82, 85, 88, 128, 82, 85, 85, 66, 85, 82, 85, 128, 82, 85, 85,
+ 128, 82, 85, 84, 128, 82, 85, 83, 83, 73, 65, 206, 82, 85, 83, 73, 128,
+ 82, 85, 82, 88, 128, 82, 85, 82, 128, 82, 85, 80, 73, 73, 128, 82, 85,
+ 80, 69, 197, 82, 85, 80, 128, 82, 85, 79, 88, 128, 82, 85, 79, 80, 128,
+ 82, 85, 79, 128, 82, 85, 78, 79, 85, 84, 128, 82, 85, 78, 78, 73, 78,
+ 199, 82, 85, 78, 78, 69, 82, 128, 82, 85, 78, 73, 195, 82, 85, 78, 128,
+ 82, 85, 77, 201, 82, 85, 77, 65, 201, 82, 85, 77, 128, 82, 85, 205, 82,
+ 85, 76, 69, 82, 128, 82, 85, 76, 69, 45, 68, 69, 76, 65, 89, 69, 68, 128,
+ 82, 85, 76, 69, 128, 82, 85, 76, 65, 73, 128, 82, 85, 75, 75, 65, 75, 72,
+ 65, 128, 82, 85, 73, 83, 128, 82, 85, 71, 66, 217, 82, 85, 68, 73, 77,
+ 69, 78, 84, 193, 82, 85, 66, 76, 197, 82, 85, 194, 82, 85, 65, 128, 82,
+ 85, 45, 54, 128, 82, 85, 45, 53, 128, 82, 85, 45, 52, 128, 82, 85, 45,
+ 51, 128, 82, 85, 45, 50, 128, 82, 85, 45, 49, 128, 82, 84, 72, 65, 78,
+ 199, 82, 84, 69, 128, 82, 84, 65, 71, 83, 128, 82, 84, 65, 71, 211, 82,
+ 82, 89, 88, 128, 82, 82, 89, 84, 128, 82, 82, 89, 82, 88, 128, 82, 82,
+ 89, 82, 128, 82, 82, 89, 80, 128, 82, 82, 85, 88, 128, 82, 82, 85, 85,
+ 128, 82, 82, 85, 84, 128, 82, 82, 85, 82, 88, 128, 82, 82, 85, 82, 128,
+ 82, 82, 85, 80, 128, 82, 82, 85, 79, 88, 128, 82, 82, 85, 79, 128, 82,
+ 82, 85, 128, 82, 82, 82, 65, 128, 82, 82, 79, 88, 128, 82, 82, 79, 84,
+ 128, 82, 82, 79, 80, 128, 82, 82, 79, 79, 128, 82, 82, 79, 128, 82, 82,
+ 73, 73, 128, 82, 82, 73, 128, 82, 82, 69, 88, 128, 82, 82, 69, 84, 128,
+ 82, 82, 69, 80, 128, 82, 82, 69, 72, 128, 82, 82, 69, 200, 82, 82, 69,
+ 69, 128, 82, 82, 69, 128, 82, 82, 65, 88, 128, 82, 82, 65, 85, 128, 82,
+ 82, 65, 73, 128, 82, 82, 65, 65, 128, 82, 79, 87, 66, 79, 65, 84, 128,
+ 82, 79, 85, 78, 68, 69, 196, 82, 79, 85, 78, 68, 45, 84, 73, 80, 80, 69,
+ 196, 82, 79, 84, 85, 78, 68, 65, 128, 82, 79, 84, 65, 84, 73, 79, 78, 83,
+ 128, 82, 79, 84, 65, 84, 73, 79, 78, 45, 87, 65, 76, 76, 80, 76, 65, 78,
+ 197, 82, 79, 84, 65, 84, 73, 79, 78, 45, 70, 76, 79, 79, 82, 80, 76, 65,
+ 78, 197, 82, 79, 84, 65, 84, 73, 79, 78, 128, 82, 79, 84, 65, 84, 73, 79,
+ 206, 82, 79, 84, 65, 84, 69, 196, 82, 79, 83, 72, 128, 82, 79, 83, 69,
+ 84, 84, 69, 128, 82, 79, 83, 69, 128, 82, 79, 79, 84, 128, 82, 79, 79,
+ 83, 84, 69, 82, 128, 82, 79, 79, 77, 128, 82, 79, 79, 75, 128, 82, 79,
+ 79, 203, 82, 79, 79, 70, 128, 82, 79, 77, 65, 78, 73, 65, 206, 82, 79,
+ 77, 65, 206, 82, 79, 77, 128, 82, 79, 76, 76, 73, 78, 199, 82, 79, 76,
+ 76, 69, 210, 82, 79, 76, 76, 69, 68, 45, 85, 208, 82, 79, 76, 204, 82,
+ 79, 72, 73, 78, 71, 89, 193, 82, 79, 71, 128, 82, 79, 196, 82, 79, 67,
+ 75, 69, 84, 128, 82, 79, 67, 203, 82, 79, 67, 128, 82, 79, 66, 79, 212,
+ 82, 79, 66, 65, 84, 128, 82, 79, 65, 83, 84, 69, 196, 82, 79, 65, 82,
+ 128, 82, 79, 65, 128, 82, 79, 45, 54, 128, 82, 79, 45, 53, 128, 82, 79,
+ 45, 52, 128, 82, 79, 45, 51, 128, 82, 79, 45, 50, 128, 82, 79, 45, 49,
+ 128, 82, 78, 89, 73, 78, 199, 82, 78, 79, 79, 78, 128, 82, 78, 79, 79,
+ 206, 82, 78, 65, 205, 82, 77, 84, 128, 82, 76, 79, 128, 82, 76, 77, 128,
+ 82, 76, 73, 128, 82, 76, 69, 128, 82, 74, 69, 211, 82, 74, 69, 128, 82,
+ 74, 197, 82, 73, 84, 85, 65, 76, 128, 82, 73, 84, 84, 79, 82, 85, 128,
+ 82, 73, 84, 83, 73, 128, 82, 73, 83, 73, 78, 199, 82, 73, 83, 72, 128,
+ 82, 73, 82, 65, 128, 82, 73, 80, 80, 76, 197, 82, 73, 80, 128, 82, 73,
+ 78, 71, 211, 82, 73, 78, 71, 73, 78, 199, 82, 73, 78, 71, 69, 196, 82,
+ 73, 78, 70, 79, 82, 90, 65, 78, 68, 79, 128, 82, 73, 206, 82, 73, 77, 71,
+ 66, 65, 128, 82, 73, 77, 128, 82, 73, 75, 82, 73, 75, 128, 82, 73, 71,
+ 86, 69, 68, 73, 195, 82, 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, 82, 73,
+ 71, 72, 84, 72, 65, 78, 196, 82, 73, 71, 72, 84, 45, 84, 79, 45, 76, 69,
+ 70, 212, 82, 73, 71, 72, 84, 45, 83, 73, 68, 197, 82, 73, 71, 72, 84, 45,
+ 83, 72, 65, 68, 79, 87, 69, 196, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68,
+ 69, 196, 82, 73, 71, 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 82, 73,
+ 71, 72, 84, 45, 76, 73, 71, 72, 84, 69, 196, 82, 73, 71, 72, 84, 45, 72,
+ 65, 78, 68, 69, 196, 82, 73, 71, 72, 84, 45, 72, 65, 78, 196, 82, 73, 71,
+ 72, 84, 45, 70, 65, 67, 73, 78, 199, 82, 73, 71, 72, 84, 128, 82, 73, 70,
+ 76, 69, 128, 82, 73, 69, 85, 76, 45, 89, 69, 83, 73, 69, 85, 78, 71, 128,
+ 82, 73, 69, 85, 76, 45, 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 45,
+ 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 89, 69, 79, 82, 73, 78,
+ 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, 85, 84,
+ 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, 85,
+ 84, 128, 82, 73, 69, 85, 76, 45, 84, 72, 73, 69, 85, 84, 72, 128, 82, 73,
+ 69, 85, 76, 45, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 128, 82, 73,
+ 69, 85, 76, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 82, 73, 69, 85,
+ 76, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76,
+ 45, 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76,
+ 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45,
+ 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80,
+ 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85, 80, 45,
+ 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85,
+ 80, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 80, 73, 69, 85,
+ 80, 128, 82, 73, 69, 85, 76, 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73,
+ 69, 85, 76, 45, 80, 65, 78, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45,
+ 78, 73, 69, 85, 78, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45,
+ 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45, 75,
+ 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45,
+ 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 128,
+ 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 128,
+ 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, 45, 72, 73, 69, 85, 72,
+ 128, 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85,
+ 76, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, 80, 128, 82, 73,
+ 69, 85, 76, 45, 72, 73, 69, 85, 72, 128, 82, 73, 69, 85, 76, 45, 67, 73,
+ 69, 85, 67, 128, 82, 73, 69, 85, 204, 82, 73, 69, 76, 128, 82, 73, 69,
+ 69, 128, 82, 73, 67, 75, 83, 72, 65, 87, 128, 82, 73, 67, 69, 77, 128,
+ 82, 73, 67, 69, 128, 82, 73, 67, 197, 82, 73, 66, 66, 79, 78, 128, 82,
+ 73, 66, 66, 79, 206, 82, 73, 65, 204, 82, 73, 45, 55, 128, 82, 73, 45,
+ 54, 128, 82, 73, 45, 53, 128, 82, 73, 45, 52, 128, 82, 73, 45, 51, 128,
+ 82, 73, 45, 50, 128, 82, 73, 45, 49, 128, 82, 72, 79, 84, 73, 195, 82,
+ 72, 79, 128, 82, 72, 207, 82, 72, 73, 78, 79, 67, 69, 82, 79, 83, 128,
+ 82, 72, 65, 128, 82, 72, 128, 82, 71, 89, 73, 78, 71, 83, 128, 82, 71,
+ 89, 65, 78, 128, 82, 71, 89, 193, 82, 69, 86, 79, 76, 86, 73, 78, 199,
+ 82, 69, 86, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 77, 65, 128, 82,
+ 69, 86, 73, 65, 128, 82, 69, 86, 69, 82, 83, 69, 68, 45, 83, 67, 72, 87,
+ 65, 128, 82, 69, 86, 69, 82, 83, 69, 68, 128, 82, 69, 86, 69, 82, 83, 69,
+ 196, 82, 69, 86, 69, 82, 83, 197, 82, 69, 85, 88, 128, 82, 69, 85, 128,
+ 82, 69, 84, 85, 82, 78, 128, 82, 69, 84, 85, 82, 206, 82, 69, 84, 82, 79,
+ 70, 76, 69, 216, 82, 69, 84, 82, 69, 65, 84, 128, 82, 69, 84, 79, 82, 84,
+ 128, 82, 69, 83, 85, 80, 73, 78, 85, 83, 128, 82, 69, 83, 84, 82, 79, 79,
+ 77, 128, 82, 69, 83, 84, 82, 73, 67, 84, 69, 196, 82, 69, 83, 84, 128,
+ 82, 69, 83, 80, 79, 78, 83, 69, 128, 82, 69, 83, 79, 85, 82, 67, 69, 128,
+ 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 83, 73, 83, 84, 65,
+ 78, 67, 69, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69, 83, 72,
+ 45, 65, 89, 73, 78, 45, 68, 65, 76, 69, 84, 72, 128, 82, 69, 83, 72, 45,
+ 65, 89, 73, 78, 128, 82, 69, 83, 200, 82, 69, 82, 69, 78, 71, 71, 65, 78,
+ 128, 82, 69, 82, 69, 75, 65, 78, 128, 82, 69, 80, 82, 69, 83, 69, 78, 84,
+ 128, 82, 69, 80, 76, 65, 67, 69, 77, 69, 78, 212, 82, 69, 80, 72, 65,
+ 128, 82, 69, 80, 72, 128, 82, 69, 80, 69, 84, 73, 84, 73, 79, 206, 82,
+ 69, 80, 69, 65, 84, 69, 196, 82, 69, 80, 69, 65, 84, 128, 82, 69, 80, 69,
+ 65, 212, 82, 69, 80, 65, 89, 65, 128, 82, 69, 80, 65, 128, 82, 69, 80,
+ 193, 82, 69, 78, 84, 79, 71, 69, 78, 128, 82, 69, 78, 128, 82, 69, 206,
+ 82, 69, 77, 85, 128, 82, 69, 77, 73, 78, 68, 69, 210, 82, 69, 77, 69, 68,
+ 89, 128, 82, 69, 76, 73, 71, 73, 79, 78, 128, 82, 69, 76, 73, 69, 86, 69,
+ 196, 82, 69, 76, 69, 65, 83, 69, 128, 82, 69, 76, 65, 88, 69, 68, 128,
+ 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 76, 65, 84, 73, 79, 78,
+ 128, 82, 69, 76, 65, 65, 128, 82, 69, 74, 65, 78, 199, 82, 69, 73, 87,
+ 65, 128, 82, 69, 73, 196, 82, 69, 73, 128, 82, 69, 71, 85, 76, 85, 83,
+ 45, 52, 128, 82, 69, 71, 85, 76, 85, 83, 45, 51, 128, 82, 69, 71, 85, 76,
+ 85, 83, 45, 50, 128, 82, 69, 71, 85, 76, 85, 83, 128, 82, 69, 71, 85, 76,
+ 85, 211, 82, 69, 71, 73, 83, 84, 69, 82, 69, 196, 82, 69, 71, 73, 79, 78,
+ 65, 204, 82, 69, 71, 73, 65, 45, 50, 128, 82, 69, 71, 73, 65, 128, 82,
+ 69, 70, 79, 82, 77, 69, 196, 82, 69, 70, 69, 82, 69, 78, 67, 197, 82, 69,
+ 68, 85, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 82, 69, 67, 89, 67, 76,
+ 73, 78, 199, 82, 69, 67, 89, 67, 76, 69, 196, 82, 69, 67, 84, 73, 76, 73,
+ 78, 69, 65, 210, 82, 69, 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67,
+ 84, 65, 78, 71, 76, 69, 128, 82, 69, 67, 84, 65, 78, 71, 76, 197, 82, 69,
+ 67, 82, 69, 65, 84, 73, 79, 78, 65, 204, 82, 69, 67, 79, 82, 68, 73, 78,
+ 199, 82, 69, 67, 79, 82, 68, 69, 82, 128, 82, 69, 67, 79, 82, 68, 128,
+ 82, 69, 67, 79, 82, 196, 82, 69, 67, 73, 84, 65, 84, 73, 86, 197, 82, 69,
+ 67, 69, 80, 84, 73, 86, 197, 82, 69, 67, 69, 73, 86, 69, 82, 128, 82, 69,
+ 67, 69, 73, 86, 69, 210, 82, 69, 67, 69, 73, 80, 84, 128, 82, 69, 65, 76,
+ 71, 65, 82, 45, 50, 128, 82, 69, 65, 76, 71, 65, 82, 128, 82, 69, 65, 72,
+ 77, 85, 75, 128, 82, 69, 65, 68, 73, 78, 199, 82, 69, 65, 67, 72, 128,
+ 82, 69, 45, 52, 128, 82, 69, 45, 51, 128, 82, 69, 45, 50, 128, 82, 69,
+ 45, 49, 128, 82, 68, 207, 82, 68, 69, 204, 82, 66, 65, 83, 193, 82, 65,
+ 90, 79, 82, 128, 82, 65, 89, 83, 128, 82, 65, 89, 211, 82, 65, 89, 65,
+ 78, 78, 65, 128, 82, 65, 84, 73, 79, 128, 82, 65, 84, 72, 65, 128, 82,
+ 65, 84, 72, 193, 82, 65, 84, 65, 128, 82, 65, 84, 128, 82, 65, 83, 87,
+ 65, 68, 73, 128, 82, 65, 83, 79, 85, 204, 82, 65, 83, 72, 65, 128, 82,
+ 65, 81, 128, 82, 65, 80, 73, 83, 77, 65, 128, 82, 65, 78, 71, 197, 82,
+ 65, 78, 65, 128, 82, 65, 78, 128, 82, 65, 77, 211, 82, 65, 77, 66, 65,
+ 84, 128, 82, 65, 75, 72, 65, 78, 71, 128, 82, 65, 75, 65, 65, 82, 65, 65,
+ 78, 83, 65, 89, 65, 128, 82, 65, 73, 83, 73, 78, 199, 82, 65, 73, 83, 69,
+ 68, 128, 82, 65, 73, 83, 69, 196, 82, 65, 73, 78, 66, 79, 87, 128, 82,
+ 65, 73, 76, 87, 65, 89, 128, 82, 65, 73, 76, 87, 65, 217, 82, 65, 73, 76,
+ 128, 82, 65, 73, 68, 207, 82, 65, 73, 68, 65, 128, 82, 65, 72, 77, 65,
+ 84, 85, 76, 76, 65, 200, 82, 65, 72, 128, 82, 65, 70, 69, 128, 82, 65,
+ 69, 77, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86, 197, 82, 65, 68, 73,
+ 79, 128, 82, 65, 68, 73, 207, 82, 65, 68, 201, 82, 65, 68, 128, 82, 65,
+ 196, 82, 65, 67, 81, 85, 69, 212, 82, 65, 67, 73, 78, 71, 128, 82, 65,
+ 67, 73, 78, 199, 82, 65, 67, 67, 79, 79, 78, 128, 82, 65, 66, 66, 73, 84,
+ 128, 82, 65, 66, 66, 73, 212, 82, 65, 66, 128, 82, 65, 65, 73, 128, 82,
+ 65, 51, 128, 82, 65, 50, 128, 82, 65, 45, 75, 65, 82, 65, 128, 82, 65,
+ 45, 52, 128, 82, 65, 45, 51, 128, 82, 65, 45, 50, 128, 82, 65, 45, 49,
+ 128, 82, 48, 50, 57, 128, 82, 48, 50, 56, 128, 82, 48, 50, 55, 128, 82,
+ 48, 50, 54, 128, 82, 48, 50, 53, 128, 82, 48, 50, 52, 128, 82, 48, 50,
+ 51, 128, 82, 48, 50, 50, 128, 82, 48, 50, 49, 128, 82, 48, 50, 48, 128,
+ 82, 48, 49, 57, 128, 82, 48, 49, 56, 128, 82, 48, 49, 55, 128, 82, 48,
+ 49, 54, 65, 128, 82, 48, 49, 54, 128, 82, 48, 49, 53, 128, 82, 48, 49,
+ 52, 128, 82, 48, 49, 51, 128, 82, 48, 49, 50, 128, 82, 48, 49, 49, 128,
+ 82, 48, 49, 48, 65, 128, 82, 48, 49, 48, 128, 82, 48, 48, 57, 128, 82,
+ 48, 48, 56, 128, 82, 48, 48, 55, 128, 82, 48, 48, 54, 128, 82, 48, 48,
+ 53, 128, 82, 48, 48, 52, 128, 82, 48, 48, 51, 66, 128, 82, 48, 48, 51,
+ 65, 128, 82, 48, 48, 51, 128, 82, 48, 48, 50, 65, 128, 82, 48, 48, 50,
+ 128, 82, 48, 48, 49, 128, 82, 45, 67, 82, 69, 197, 81, 89, 88, 128, 81,
+ 89, 85, 128, 81, 89, 84, 128, 81, 89, 82, 88, 128, 81, 89, 82, 128, 81,
+ 89, 80, 128, 81, 89, 79, 128, 81, 89, 73, 128, 81, 89, 69, 69, 128, 81,
+ 89, 69, 128, 81, 89, 65, 65, 128, 81, 89, 65, 128, 81, 89, 128, 81, 87,
+ 73, 128, 81, 87, 69, 69, 128, 81, 87, 69, 128, 81, 87, 65, 65, 128, 81,
+ 87, 65, 128, 81, 85, 88, 128, 81, 85, 86, 128, 81, 85, 85, 86, 128, 81,
+ 85, 85, 128, 81, 85, 84, 128, 81, 85, 83, 72, 83, 72, 65, 89, 65, 128,
+ 81, 85, 82, 88, 128, 81, 85, 82, 128, 81, 85, 80, 128, 81, 85, 79, 88,
+ 128, 81, 85, 79, 84, 197, 81, 85, 79, 84, 65, 84, 73, 79, 206, 81, 85,
+ 79, 84, 128, 81, 85, 79, 80, 128, 81, 85, 79, 128, 81, 85, 75, 128, 81,
+ 85, 73, 78, 84, 73, 76, 69, 128, 81, 85, 73, 78, 84, 69, 83, 83, 69, 78,
+ 67, 69, 128, 81, 85, 73, 78, 68, 73, 67, 69, 83, 73, 77, 193, 81, 85, 73,
+ 78, 67, 85, 78, 88, 128, 81, 85, 73, 78, 65, 82, 73, 85, 211, 81, 85, 73,
+ 76, 212, 81, 85, 73, 76, 76, 128, 81, 85, 73, 67, 203, 81, 85, 73, 128,
+ 81, 85, 70, 128, 81, 85, 69, 83, 84, 73, 79, 78, 69, 196, 81, 85, 69, 83,
+ 84, 73, 79, 78, 128, 81, 85, 69, 83, 84, 73, 79, 206, 81, 85, 69, 69, 78,
+ 128, 81, 85, 69, 69, 206, 81, 85, 69, 128, 81, 85, 66, 85, 84, 83, 128,
+ 81, 85, 65, 84, 69, 82, 78, 73, 79, 206, 81, 85, 65, 82, 84, 69, 82, 83,
+ 128, 81, 85, 65, 82, 84, 69, 82, 211, 81, 85, 65, 82, 84, 69, 82, 128,
+ 81, 85, 65, 78, 84, 73, 84, 217, 81, 85, 65, 68, 82, 85, 80, 76, 197, 81,
+ 85, 65, 68, 82, 65, 78, 84, 128, 81, 85, 65, 68, 82, 65, 78, 212, 81, 85,
+ 65, 68, 67, 79, 76, 79, 78, 128, 81, 85, 65, 68, 128, 81, 85, 65, 196,
+ 81, 85, 65, 128, 81, 85, 128, 81, 208, 81, 79, 88, 128, 81, 79, 84, 128,
+ 81, 79, 80, 72, 128, 81, 79, 80, 65, 128, 81, 79, 80, 128, 81, 79, 79,
+ 128, 81, 79, 207, 81, 79, 70, 128, 81, 79, 198, 81, 79, 65, 128, 81, 79,
+ 128, 81, 78, 128, 81, 73, 88, 128, 81, 73, 84, 83, 65, 128, 81, 73, 84,
+ 128, 81, 73, 80, 128, 81, 73, 73, 128, 81, 73, 70, 128, 81, 73, 69, 88,
+ 128, 81, 73, 69, 84, 128, 81, 73, 69, 80, 128, 81, 73, 69, 128, 81, 73,
+ 128, 81, 72, 87, 73, 128, 81, 72, 87, 69, 69, 128, 81, 72, 87, 69, 128,
+ 81, 72, 87, 65, 65, 128, 81, 72, 87, 65, 128, 81, 72, 85, 128, 81, 72,
+ 79, 80, 72, 128, 81, 72, 79, 128, 81, 72, 73, 128, 81, 72, 69, 69, 128,
+ 81, 72, 69, 128, 81, 72, 65, 85, 128, 81, 72, 65, 65, 128, 81, 72, 65,
+ 128, 81, 71, 65, 128, 81, 69, 84, 65, 78, 65, 128, 81, 69, 69, 128, 81,
+ 69, 128, 81, 65, 89, 128, 81, 65, 85, 128, 81, 65, 84, 65, 78, 128, 81,
+ 65, 82, 78, 69, 217, 81, 65, 82, 128, 81, 65, 81, 128, 81, 65, 80, 72,
+ 128, 81, 65, 77, 65, 84, 83, 128, 81, 65, 77, 65, 84, 211, 81, 65, 76,
+ 193, 81, 65, 73, 82, 84, 72, 82, 65, 128, 81, 65, 73, 128, 81, 65, 70,
+ 128, 81, 65, 198, 81, 65, 68, 77, 65, 128, 81, 65, 65, 73, 128, 81, 65,
+ 65, 70, 85, 128, 81, 65, 65, 70, 128, 81, 48, 48, 55, 128, 81, 48, 48,
+ 54, 128, 81, 48, 48, 53, 128, 81, 48, 48, 52, 128, 81, 48, 48, 51, 128,
+ 81, 48, 48, 50, 128, 81, 48, 48, 49, 128, 80, 90, 128, 80, 89, 88, 128,
+ 80, 89, 84, 128, 80, 89, 82, 88, 128, 80, 89, 82, 128, 80, 89, 80, 128,
+ 80, 87, 79, 89, 128, 80, 87, 79, 79, 128, 80, 87, 79, 128, 80, 87, 207,
+ 80, 87, 73, 73, 128, 80, 87, 73, 128, 80, 87, 69, 69, 128, 80, 87, 69,
+ 128, 80, 87, 65, 65, 128, 80, 87, 128, 80, 86, 128, 80, 85, 90, 90, 76,
+ 197, 80, 85, 88, 128, 80, 85, 85, 84, 128, 80, 85, 85, 128, 80, 85, 84,
+ 82, 69, 70, 65, 67, 84, 73, 79, 78, 128, 80, 85, 84, 128, 80, 85, 212,
+ 80, 85, 83, 72, 80, 73, 78, 128, 80, 85, 83, 72, 80, 73, 75, 65, 128, 80,
+ 85, 83, 72, 73, 78, 199, 80, 85, 82, 88, 128, 80, 85, 82, 83, 69, 128,
+ 80, 85, 82, 80, 76, 197, 80, 85, 82, 78, 65, 77, 65, 128, 80, 85, 82, 73,
+ 84, 89, 128, 80, 85, 82, 73, 70, 89, 128, 80, 85, 82, 128, 80, 85, 81,
+ 128, 80, 85, 80, 128, 80, 85, 79, 88, 128, 80, 85, 79, 80, 128, 80, 85,
+ 79, 128, 80, 85, 78, 71, 65, 65, 77, 128, 80, 85, 78, 71, 128, 80, 85,
+ 78, 67, 84, 85, 211, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 78, 128, 80,
+ 85, 78, 67, 84, 85, 65, 84, 73, 79, 206, 80, 85, 77, 80, 128, 80, 85, 77,
+ 128, 80, 85, 70, 70, 69, 68, 128, 80, 85, 69, 128, 80, 85, 67, 75, 128,
+ 80, 85, 66, 76, 73, 195, 80, 85, 194, 80, 85, 65, 81, 128, 80, 85, 65,
+ 69, 128, 80, 85, 65, 67, 72, 85, 197, 80, 85, 50, 128, 80, 85, 49, 128,
+ 80, 85, 128, 80, 84, 72, 65, 72, 193, 80, 84, 69, 128, 80, 83, 73, 76,
+ 201, 80, 83, 73, 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77, 65, 128, 80,
+ 83, 73, 70, 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65,
+ 128, 80, 83, 73, 70, 73, 83, 84, 79, 206, 80, 83, 73, 70, 73, 83, 84, 79,
+ 76, 89, 71, 73, 83, 77, 65, 128, 80, 83, 73, 128, 80, 83, 65, 76, 84, 69,
+ 210, 80, 83, 128, 80, 82, 79, 86, 69, 128, 80, 82, 79, 84, 79, 86, 65,
+ 82, 89, 211, 80, 82, 79, 84, 79, 211, 80, 82, 79, 84, 69, 67, 84, 69,
+ 196, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 80, 82,
+ 79, 83, 69, 82, 80, 73, 78, 65, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79,
+ 78, 65, 204, 80, 82, 79, 80, 79, 82, 84, 73, 79, 78, 128, 80, 82, 79, 80,
+ 69, 82, 84, 217, 80, 82, 79, 80, 69, 76, 76, 69, 210, 80, 82, 79, 79, 70,
+ 128, 80, 82, 79, 76, 79, 78, 71, 69, 196, 80, 82, 79, 76, 65, 84, 73, 79,
+ 78, 197, 80, 82, 79, 74, 69, 67, 84, 79, 82, 128, 80, 82, 79, 74, 69, 67,
+ 84, 73, 86, 69, 128, 80, 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82,
+ 79, 72, 73, 66, 73, 84, 69, 196, 80, 82, 79, 71, 82, 69, 83, 83, 128, 80,
+ 82, 79, 71, 82, 65, 205, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79,
+ 68, 85, 67, 84, 128, 80, 82, 79, 68, 85, 67, 212, 80, 82, 79, 66, 73, 78,
+ 199, 80, 82, 73, 86, 65, 84, 69, 128, 80, 82, 73, 86, 65, 84, 197, 80,
+ 82, 73, 86, 65, 67, 217, 80, 82, 73, 83, 72, 84, 72, 65, 77, 65, 84, 82,
+ 193, 80, 82, 73, 78, 84, 83, 128, 80, 82, 73, 78, 84, 69, 82, 128, 80,
+ 82, 73, 78, 84, 69, 210, 80, 82, 73, 78, 84, 128, 80, 82, 73, 78, 212,
+ 80, 82, 73, 78, 67, 69, 83, 83, 128, 80, 82, 73, 78, 67, 69, 128, 80, 82,
+ 73, 77, 69, 128, 80, 82, 73, 77, 197, 80, 82, 69, 86, 73, 79, 85, 211,
+ 80, 82, 69, 84, 90, 69, 76, 128, 80, 82, 69, 83, 83, 69, 196, 80, 82, 69,
+ 83, 69, 84, 128, 80, 82, 69, 83, 69, 78, 84, 65, 84, 73, 79, 206, 80, 82,
+ 69, 83, 67, 82, 73, 80, 84, 73, 79, 206, 80, 82, 69, 80, 79, 78, 68, 69,
+ 82, 65, 78, 67, 69, 128, 80, 82, 69, 78, 75, 72, 65, 128, 80, 82, 69, 71,
+ 78, 65, 78, 212, 80, 82, 69, 70, 73, 88, 69, 196, 80, 82, 69, 70, 65, 67,
+ 197, 80, 82, 69, 67, 73, 80, 73, 84, 65, 84, 69, 128, 80, 82, 69, 67, 69,
+ 68, 73, 78, 199, 80, 82, 69, 67, 69, 68, 69, 83, 128, 80, 82, 69, 67, 69,
+ 68, 69, 211, 80, 82, 69, 67, 69, 68, 69, 196, 80, 82, 69, 67, 69, 68, 69,
+ 128, 80, 82, 69, 67, 69, 68, 197, 80, 82, 65, 89, 69, 210, 80, 82, 65,
+ 77, 45, 80, 73, 73, 128, 80, 82, 65, 77, 45, 80, 73, 201, 80, 82, 65, 77,
+ 45, 77, 85, 79, 89, 128, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 65,
+ 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 66, 85, 79, 206, 80, 82,
+ 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 66, 69, 201, 80, 82, 65,
+ 77, 128, 80, 82, 65, 205, 80, 82, 128, 80, 80, 86, 128, 80, 80, 77, 128,
+ 80, 80, 65, 128, 80, 79, 89, 128, 80, 79, 88, 128, 80, 79, 87, 69, 82,
+ 211, 80, 79, 87, 69, 82, 128, 80, 79, 87, 69, 210, 80, 79, 87, 68, 69,
+ 82, 69, 196, 80, 79, 87, 68, 69, 82, 128, 80, 79, 85, 78, 196, 80, 79,
+ 85, 76, 84, 82, 217, 80, 79, 85, 67, 72, 128, 80, 79, 84, 84, 69, 196,
+ 80, 79, 84, 65, 84, 79, 128, 80, 79, 84, 65, 66, 76, 197, 80, 79, 212,
+ 80, 79, 83, 84, 80, 79, 83, 73, 84, 73, 79, 206, 80, 79, 83, 84, 66, 79,
+ 88, 128, 80, 79, 83, 84, 65, 204, 80, 79, 83, 84, 128, 80, 79, 83, 212,
+ 80, 79, 83, 83, 69, 83, 83, 73, 79, 78, 128, 80, 79, 83, 83, 69, 83, 83,
+ 73, 79, 206, 80, 79, 83, 73, 84, 73, 79, 78, 83, 128, 80, 79, 83, 73, 84,
+ 73, 79, 78, 128, 80, 79, 83, 69, 73, 68, 79, 78, 128, 80, 79, 82, 84, 65,
+ 66, 76, 197, 80, 79, 82, 82, 69, 67, 84, 85, 83, 128, 80, 79, 82, 82, 69,
+ 67, 84, 85, 211, 80, 79, 80, 80, 73, 78, 199, 80, 79, 80, 80, 69, 82,
+ 128, 80, 79, 80, 67, 79, 82, 78, 128, 80, 79, 80, 128, 80, 79, 208, 80,
+ 79, 79, 68, 76, 69, 128, 80, 79, 79, 128, 80, 79, 78, 68, 79, 128, 80,
+ 79, 206, 80, 79, 77, 77, 69, 69, 128, 80, 79, 77, 77, 69, 197, 80, 79,
+ 76, 79, 128, 80, 79, 76, 73, 83, 72, 128, 80, 79, 76, 73, 67, 197, 80,
+ 79, 76, 201, 80, 79, 76, 69, 128, 80, 79, 76, 197, 80, 79, 75, 82, 89,
+ 84, 73, 69, 128, 80, 79, 75, 79, 74, 73, 128, 80, 79, 73, 78, 84, 211,
+ 80, 79, 73, 78, 84, 79, 128, 80, 79, 73, 78, 84, 69, 82, 128, 80, 79, 73,
+ 78, 84, 69, 196, 80, 79, 73, 78, 84, 128, 80, 79, 73, 78, 212, 80, 79,
+ 69, 84, 82, 217, 80, 79, 69, 84, 73, 195, 80, 79, 68, 65, 84, 85, 83,
+ 128, 80, 79, 67, 75, 69, 212, 80, 79, 65, 128, 80, 79, 128, 80, 207, 80,
+ 78, 69, 85, 77, 65, 84, 65, 128, 80, 76, 85, 84, 207, 80, 76, 85, 84, 65,
+ 128, 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 76, 85, 83, 128, 80,
+ 76, 85, 82, 65, 76, 128, 80, 76, 85, 78, 71, 69, 82, 128, 80, 76, 85, 77,
+ 69, 196, 80, 76, 85, 77, 128, 80, 76, 85, 75, 128, 80, 76, 85, 71, 128,
+ 80, 76, 85, 128, 80, 76, 79, 87, 128, 80, 76, 79, 80, 72, 85, 128, 80,
+ 76, 72, 65, 85, 128, 80, 76, 69, 84, 72, 82, 79, 78, 128, 80, 76, 69, 65,
+ 68, 73, 78, 199, 80, 76, 68, 128, 80, 76, 65, 89, 73, 78, 199, 80, 76,
+ 65, 84, 69, 128, 80, 76, 65, 83, 84, 73, 67, 83, 128, 80, 76, 65, 78, 84,
+ 128, 80, 76, 65, 78, 69, 84, 128, 80, 76, 65, 78, 69, 128, 80, 76, 65,
+ 78, 67, 203, 80, 76, 65, 75, 128, 80, 76, 65, 71, 73, 79, 211, 80, 76,
+ 65, 67, 69, 72, 79, 76, 68, 69, 82, 128, 80, 76, 65, 67, 69, 72, 79, 76,
+ 68, 69, 210, 80, 76, 65, 67, 197, 80, 76, 65, 67, 65, 82, 68, 128, 80,
+ 76, 65, 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, 80, 73, 90, 90, 65,
+ 128, 80, 73, 88, 128, 80, 73, 87, 82, 128, 80, 73, 84, 67, 72, 70, 79,
+ 82, 75, 128, 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 73, 84, 128, 80,
+ 73, 83, 84, 79, 76, 128, 80, 73, 83, 69, 76, 69, 72, 128, 80, 73, 83, 67,
+ 69, 83, 128, 80, 73, 82, 73, 71, 128, 80, 73, 82, 73, 199, 80, 73, 82,
+ 73, 69, 69, 78, 128, 80, 73, 82, 65, 67, 89, 128, 80, 73, 82, 50, 128,
+ 80, 73, 80, 73, 78, 71, 128, 80, 73, 80, 65, 69, 77, 71, 66, 73, 69, 69,
+ 128, 80, 73, 80, 65, 69, 77, 66, 65, 128, 80, 73, 80, 128, 80, 73, 78,
+ 87, 72, 69, 69, 204, 80, 73, 78, 69, 65, 80, 80, 76, 69, 128, 80, 73, 78,
+ 197, 80, 73, 78, 67, 72, 73, 78, 199, 80, 73, 78, 67, 72, 69, 196, 80,
+ 73, 78, 65, 84, 65, 128, 80, 73, 78, 65, 82, 66, 79, 82, 65, 83, 128, 80,
+ 73, 76, 76, 128, 80, 73, 76, 197, 80, 73, 76, 67, 82, 79, 215, 80, 73,
+ 75, 85, 82, 85, 128, 80, 73, 75, 79, 128, 80, 73, 71, 128, 80, 73, 199,
+ 80, 73, 69, 88, 128, 80, 73, 69, 85, 80, 45, 84, 72, 73, 69, 85, 84, 72,
+ 128, 80, 73, 69, 85, 80, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80,
+ 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 80,
+ 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128,
+ 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 80,
+ 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 80,
+ 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 80, 73,
+ 69, 85, 80, 45, 82, 73, 69, 85, 76, 45, 80, 72, 73, 69, 85, 80, 72, 128,
+ 80, 73, 69, 85, 80, 45, 82, 73, 69, 85, 76, 128, 80, 73, 69, 85, 80, 45,
+ 78, 73, 69, 85, 78, 128, 80, 73, 69, 85, 80, 45, 77, 73, 69, 85, 77, 128,
+ 80, 73, 69, 85, 80, 45, 75, 72, 73, 69, 85, 75, 72, 128, 80, 73, 69, 85,
+ 80, 45, 67, 73, 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 67, 72, 73, 69,
+ 85, 67, 72, 128, 80, 73, 69, 85, 208, 80, 73, 69, 84, 128, 80, 73, 69,
+ 80, 128, 80, 73, 69, 69, 84, 128, 80, 73, 69, 69, 81, 128, 80, 73, 69,
+ 67, 69, 128, 80, 73, 69, 128, 80, 73, 67, 84, 85, 82, 69, 128, 80, 73,
+ 67, 75, 85, 208, 80, 73, 67, 75, 69, 84, 128, 80, 73, 67, 75, 128, 80,
+ 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, 73, 65, 83, 77, 193, 80, 73, 65,
+ 78, 79, 128, 80, 201, 80, 72, 87, 65, 128, 80, 72, 85, 84, 72, 65, 79,
+ 128, 80, 72, 85, 210, 80, 72, 85, 78, 71, 128, 80, 72, 82, 65, 83, 69,
+ 128, 80, 72, 79, 78, 69, 83, 128, 80, 72, 79, 76, 85, 83, 128, 80, 72,
+ 79, 69, 78, 73, 67, 73, 65, 206, 80, 72, 79, 65, 128, 80, 72, 79, 128,
+ 80, 72, 207, 80, 72, 78, 65, 69, 203, 80, 72, 73, 78, 84, 72, 85, 128,
+ 80, 72, 73, 76, 79, 83, 79, 80, 72, 69, 82, 211, 80, 72, 73, 76, 73, 80,
+ 80, 73, 78, 197, 80, 72, 73, 69, 85, 80, 72, 45, 84, 72, 73, 69, 85, 84,
+ 72, 128, 80, 72, 73, 69, 85, 80, 72, 45, 83, 73, 79, 83, 128, 80, 72, 73,
+ 69, 85, 80, 72, 45, 80, 73, 69, 85, 80, 128, 80, 72, 73, 69, 85, 80, 72,
+ 45, 72, 73, 69, 85, 72, 128, 80, 72, 73, 69, 85, 80, 200, 80, 72, 73,
+ 128, 80, 72, 201, 80, 72, 69, 69, 128, 80, 72, 69, 128, 80, 72, 65, 83,
+ 69, 45, 198, 80, 72, 65, 83, 69, 45, 195, 80, 72, 65, 83, 69, 45, 194,
+ 80, 72, 65, 83, 69, 45, 193, 80, 72, 65, 82, 89, 78, 71, 69, 65, 204, 80,
+ 72, 65, 82, 128, 80, 72, 65, 78, 128, 80, 72, 65, 77, 128, 80, 72, 65,
+ 73, 83, 84, 79, 211, 80, 72, 65, 71, 83, 45, 80, 193, 80, 72, 65, 66,
+ 128, 80, 72, 65, 65, 82, 75, 65, 65, 128, 80, 72, 65, 65, 128, 80, 71,
+ 128, 80, 70, 128, 80, 69, 85, 88, 128, 80, 69, 85, 84, 65, 69, 128, 80,
+ 69, 85, 84, 128, 80, 69, 84, 82, 201, 80, 69, 84, 65, 83, 84, 79, 75, 79,
+ 85, 70, 73, 83, 77, 65, 128, 80, 69, 84, 65, 83, 84, 73, 128, 80, 69, 84,
+ 65, 83, 77, 65, 128, 80, 69, 84, 65, 76, 76, 69, 196, 80, 69, 83, 79,
+ 128, 80, 69, 83, 207, 80, 69, 83, 72, 50, 128, 80, 69, 83, 72, 178, 80,
+ 69, 83, 69, 84, 193, 80, 69, 211, 80, 69, 82, 84, 72, 207, 80, 69, 82,
+ 83, 80, 69, 67, 84, 73, 86, 69, 128, 80, 69, 82, 83, 79, 78, 65, 204, 80,
+ 69, 82, 83, 79, 78, 128, 80, 69, 82, 83, 79, 206, 80, 69, 82, 83, 73, 65,
+ 206, 80, 69, 82, 83, 69, 86, 69, 82, 73, 78, 199, 80, 69, 82, 80, 69, 78,
+ 68, 73, 67, 85, 76, 65, 82, 128, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85,
+ 76, 65, 210, 80, 69, 82, 78, 73, 206, 80, 69, 82, 77, 73, 84, 84, 69,
+ 196, 80, 69, 82, 77, 73, 195, 80, 69, 82, 77, 65, 78, 69, 78, 212, 80,
+ 69, 82, 73, 83, 80, 79, 77, 69, 78, 73, 128, 80, 69, 82, 73, 83, 80, 79,
+ 77, 69, 78, 201, 80, 69, 82, 70, 79, 82, 77, 73, 78, 199, 80, 69, 82, 70,
+ 69, 67, 84, 85, 205, 80, 69, 82, 70, 69, 67, 84, 65, 128, 80, 69, 82, 70,
+ 69, 67, 84, 193, 80, 69, 82, 67, 85, 83, 83, 73, 86, 69, 128, 80, 69, 82,
+ 67, 69, 78, 212, 80, 69, 80, 80, 69, 82, 128, 80, 69, 80, 69, 84, 128,
+ 80, 69, 80, 69, 212, 80, 69, 79, 82, 84, 200, 80, 69, 79, 80, 76, 69,
+ 128, 80, 69, 79, 80, 76, 197, 80, 69, 78, 84, 65, 84, 72, 76, 79, 78,
+ 128, 80, 69, 78, 84, 65, 83, 69, 77, 69, 128, 80, 69, 78, 84, 65, 71, 82,
+ 65, 77, 128, 80, 69, 78, 84, 65, 71, 79, 78, 128, 80, 69, 78, 83, 85,
+ 128, 80, 69, 78, 83, 73, 86, 197, 80, 69, 78, 78, 217, 80, 69, 78, 78,
+ 65, 78, 84, 128, 80, 69, 78, 73, 72, 73, 128, 80, 69, 78, 71, 85, 73, 78,
+ 128, 80, 69, 78, 71, 75, 65, 76, 128, 80, 69, 78, 69, 84, 82, 65, 84, 73,
+ 79, 78, 128, 80, 69, 78, 67, 73, 76, 128, 80, 69, 206, 80, 69, 76, 65,
+ 83, 84, 79, 78, 128, 80, 69, 76, 65, 83, 84, 79, 206, 80, 69, 73, 84, 72,
+ 128, 80, 69, 72, 69, 72, 128, 80, 69, 72, 69, 200, 80, 69, 72, 128, 80,
+ 69, 200, 80, 69, 69, 90, 73, 128, 80, 69, 69, 83, 72, 73, 128, 80, 69,
+ 69, 80, 128, 80, 69, 69, 77, 128, 80, 69, 69, 73, 128, 80, 69, 69, 128,
+ 80, 69, 68, 69, 83, 84, 82, 73, 65, 78, 83, 128, 80, 69, 68, 69, 83, 84,
+ 82, 73, 65, 78, 128, 80, 69, 68, 69, 83, 84, 65, 76, 128, 80, 69, 68, 69,
+ 83, 84, 65, 204, 80, 69, 68, 65, 204, 80, 69, 65, 78, 85, 84, 83, 128,
+ 80, 69, 65, 75, 211, 80, 69, 65, 67, 79, 67, 75, 128, 80, 69, 65, 67, 72,
+ 128, 80, 69, 65, 67, 69, 128, 80, 69, 65, 67, 197, 80, 68, 73, 128, 80,
+ 68, 70, 128, 80, 68, 128, 80, 67, 128, 80, 65, 90, 69, 82, 128, 80, 65,
+ 89, 69, 82, 79, 75, 128, 80, 65, 89, 65, 78, 78, 65, 128, 80, 65, 89,
+ 128, 80, 65, 88, 128, 80, 65, 87, 78, 128, 80, 65, 87, 206, 80, 65, 215,
+ 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 65, 85, 83, 197, 80, 65, 85,
+ 128, 80, 65, 213, 80, 65, 84, 84, 217, 80, 65, 84, 84, 69, 82, 78, 128,
+ 80, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 65, 84, 72, 65, 75, 75,
+ 85, 128, 80, 65, 84, 200, 80, 65, 84, 65, 75, 128, 80, 65, 84, 65, 72,
+ 128, 80, 65, 84, 128, 80, 65, 83, 85, 81, 128, 80, 65, 83, 83, 80, 79,
+ 82, 212, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, 45, 85, 80, 45,
+ 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76,
+ 45, 68, 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, 80, 65, 83, 83, 73, 77,
+ 66, 65, 78, 71, 128, 80, 65, 83, 83, 69, 78, 71, 69, 210, 80, 65, 83, 83,
+ 69, 196, 80, 65, 83, 72, 84, 65, 128, 80, 65, 83, 72, 65, 69, 128, 80,
+ 65, 83, 69, 81, 128, 80, 65, 83, 65, 78, 71, 65, 206, 80, 65, 82, 85, 77,
+ 128, 80, 65, 82, 84, 217, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208,
+ 80, 65, 82, 84, 73, 65, 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196,
+ 80, 65, 82, 84, 73, 65, 204, 80, 65, 82, 84, 72, 73, 65, 206, 80, 65, 82,
+ 212, 80, 65, 82, 82, 79, 84, 128, 80, 65, 82, 75, 128, 80, 65, 82, 73,
+ 67, 72, 79, 78, 128, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206,
+ 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73,
+ 83, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211, 80, 65, 82, 69, 78,
+ 84, 72, 69, 83, 69, 211, 80, 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 65,
+ 82, 65, 76, 76, 69, 76, 79, 71, 82, 65, 77, 128, 80, 65, 82, 65, 76, 76,
+ 69, 76, 128, 80, 65, 82, 65, 76, 76, 69, 204, 80, 65, 82, 65, 75, 76, 73,
+ 84, 73, 75, 73, 128, 80, 65, 82, 65, 75, 76, 73, 84, 73, 75, 201, 80, 65,
+ 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 71, 82, 65, 80, 72,
+ 85, 211, 80, 65, 82, 65, 71, 82, 65, 80, 72, 79, 83, 128, 80, 65, 82, 65,
+ 71, 82, 65, 80, 72, 128, 80, 65, 82, 65, 71, 82, 65, 80, 200, 80, 65, 82,
+ 65, 67, 72, 85, 84, 69, 128, 80, 65, 82, 65, 128, 80, 65, 82, 128, 80,
+ 65, 80, 89, 82, 85, 83, 128, 80, 65, 80, 69, 82, 67, 76, 73, 80, 83, 128,
+ 80, 65, 80, 69, 82, 67, 76, 73, 80, 128, 80, 65, 80, 69, 82, 128, 80, 65,
+ 80, 69, 210, 80, 65, 80, 128, 80, 65, 208, 80, 65, 207, 80, 65, 78, 89,
+ 85, 75, 85, 128, 80, 65, 78, 89, 73, 75, 85, 128, 80, 65, 78, 89, 69, 67,
+ 69, 75, 128, 80, 65, 78, 89, 65, 78, 71, 71, 65, 128, 80, 65, 78, 89, 65,
+ 75, 82, 65, 128, 80, 65, 78, 84, 73, 128, 80, 65, 78, 83, 73, 79, 83, 45,
+ 80, 73, 69, 85, 80, 128, 80, 65, 78, 83, 73, 79, 83, 45, 75, 65, 80, 89,
+ 69, 79, 85, 78, 80, 73, 69, 85, 80, 128, 80, 65, 78, 79, 78, 71, 79, 78,
+ 65, 78, 128, 80, 65, 78, 79, 76, 79, 78, 71, 128, 80, 65, 78, 71, 87, 73,
+ 83, 65, 68, 128, 80, 65, 78, 71, 82, 65, 78, 71, 75, 69, 80, 128, 80, 65,
+ 78, 71, 79, 76, 65, 84, 128, 80, 65, 78, 71, 76, 79, 78, 71, 128, 80, 65,
+ 78, 71, 76, 65, 89, 65, 82, 128, 80, 65, 78, 71, 75, 79, 78, 128, 80, 65,
+ 78, 71, 75, 65, 84, 128, 80, 65, 78, 71, 72, 85, 76, 85, 128, 80, 65, 78,
+ 71, 128, 80, 65, 78, 69, 85, 76, 69, 85, 78, 71, 128, 80, 65, 78, 68,
+ 193, 80, 65, 78, 67, 65, 75, 69, 83, 128, 80, 65, 78, 65, 77, 128, 80,
+ 65, 78, 65, 69, 76, 65, 69, 78, 71, 128, 80, 65, 78, 128, 80, 65, 206,
+ 80, 65, 77, 85, 78, 71, 75, 65, 72, 128, 80, 65, 77, 85, 68, 80, 79, 68,
+ 128, 80, 65, 77, 83, 72, 65, 69, 128, 80, 65, 77, 80, 72, 89, 76, 73, 65,
+ 206, 80, 65, 77, 73, 78, 71, 75, 65, 76, 128, 80, 65, 77, 69, 80, 69, 84,
+ 128, 80, 65, 77, 69, 78, 69, 78, 71, 128, 80, 65, 77, 65, 68, 65, 128,
+ 80, 65, 77, 65, 65, 69, 72, 128, 80, 65, 76, 85, 84, 65, 128, 80, 65, 76,
+ 79, 67, 72, 75, 65, 128, 80, 65, 76, 77, 89, 82, 69, 78, 197, 80, 65, 76,
+ 77, 211, 80, 65, 76, 77, 128, 80, 65, 76, 205, 80, 65, 76, 76, 65, 87,
+ 65, 128, 80, 65, 76, 76, 65, 83, 128, 80, 65, 76, 201, 80, 65, 76, 69,
+ 84, 84, 69, 128, 80, 65, 76, 65, 85, 78, 199, 80, 65, 76, 65, 84, 65, 76,
+ 73, 90, 69, 196, 80, 65, 76, 65, 84, 65, 76, 73, 90, 65, 84, 73, 79, 78,
+ 128, 80, 65, 76, 65, 84, 65, 204, 80, 65, 75, 80, 65, 203, 80, 65, 73,
+ 89, 65, 78, 78, 79, 73, 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65,
+ 73, 82, 69, 196, 80, 65, 73, 78, 84, 66, 82, 85, 83, 72, 128, 80, 65, 73,
+ 128, 80, 65, 72, 76, 65, 86, 201, 80, 65, 72, 128, 80, 65, 71, 79, 68,
+ 65, 128, 80, 65, 71, 69, 83, 128, 80, 65, 71, 69, 82, 128, 80, 65, 71,
+ 197, 80, 65, 68, 77, 193, 80, 65, 68, 68, 76, 197, 80, 65, 68, 68, 73,
+ 78, 199, 80, 65, 68, 193, 80, 65, 68, 128, 80, 65, 67, 75, 73, 78, 71,
+ 128, 80, 65, 67, 75, 65, 71, 69, 128, 80, 65, 65, 84, 85, 128, 80, 65,
+ 65, 83, 69, 78, 84, 79, 128, 80, 65, 65, 82, 65, 77, 128, 80, 65, 65, 82,
+ 65, 69, 128, 80, 65, 65, 77, 128, 80, 65, 65, 73, 128, 80, 65, 65, 45,
+ 80, 73, 76, 76, 65, 128, 80, 65, 65, 128, 80, 50, 128, 80, 48, 49, 49,
+ 128, 80, 48, 49, 48, 128, 80, 48, 48, 57, 128, 80, 48, 48, 56, 128, 80,
+ 48, 48, 55, 128, 80, 48, 48, 54, 128, 80, 48, 48, 53, 128, 80, 48, 48,
+ 52, 128, 80, 48, 48, 51, 65, 128, 80, 48, 48, 51, 128, 80, 48, 48, 50,
+ 128, 80, 48, 48, 49, 65, 128, 80, 48, 48, 49, 128, 79, 89, 83, 84, 69,
+ 82, 128, 79, 89, 82, 65, 78, 73, 83, 77, 193, 79, 89, 65, 78, 78, 65,
+ 128, 79, 88, 73, 65, 128, 79, 88, 73, 193, 79, 88, 69, 73, 65, 201, 79,
+ 88, 69, 73, 193, 79, 87, 76, 128, 79, 86, 69, 82, 82, 73, 68, 69, 128,
+ 79, 86, 69, 82, 76, 79, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, 128, 79,
+ 86, 69, 82, 76, 65, 89, 128, 79, 86, 69, 82, 76, 65, 217, 79, 86, 69, 82,
+ 76, 65, 80, 80, 73, 78, 199, 79, 86, 69, 82, 76, 65, 80, 128, 79, 86, 69,
+ 82, 76, 65, 73, 68, 128, 79, 86, 69, 82, 76, 65, 73, 196, 79, 86, 69, 82,
+ 72, 69, 65, 84, 69, 196, 79, 86, 69, 82, 66, 65, 82, 128, 79, 86, 65, 76,
+ 128, 79, 86, 65, 204, 79, 85, 84, 76, 73, 78, 69, 196, 79, 85, 84, 76,
+ 73, 78, 69, 128, 79, 85, 84, 69, 210, 79, 85, 84, 66, 79, 216, 79, 85,
+ 78, 75, 73, 193, 79, 85, 78, 67, 69, 128, 79, 85, 78, 67, 197, 79, 84,
+ 85, 128, 79, 84, 84, 79, 77, 65, 206, 79, 84, 84, 69, 82, 128, 79, 84,
+ 84, 65, 86, 193, 79, 84, 84, 128, 79, 84, 72, 69, 82, 211, 79, 84, 72,
+ 69, 210, 79, 84, 72, 65, 76, 65, 206, 79, 84, 72, 65, 76, 128, 79, 83,
+ 77, 65, 78, 89, 193, 79, 83, 67, 128, 79, 83, 65, 71, 197, 79, 82, 84,
+ 72, 79, 71, 79, 78, 65, 204, 79, 82, 84, 72, 79, 68, 79, 216, 79, 82, 78,
+ 65, 84, 197, 79, 82, 78, 65, 77, 69, 78, 84, 83, 128, 79, 82, 78, 65, 77,
+ 69, 78, 84, 128, 79, 82, 78, 65, 77, 69, 78, 212, 79, 82, 75, 72, 79,
+ 206, 79, 82, 73, 89, 193, 79, 82, 73, 71, 73, 78, 65, 204, 79, 82, 73,
+ 71, 73, 78, 128, 79, 82, 69, 45, 50, 128, 79, 82, 68, 73, 78, 65, 204,
+ 79, 82, 68, 69, 210, 79, 82, 67, 72, 73, 68, 128, 79, 82, 65, 78, 71, 85,
+ 84, 65, 78, 128, 79, 82, 65, 78, 71, 197, 79, 80, 84, 73, 79, 206, 79,
+ 80, 84, 73, 67, 65, 204, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, 128, 79,
+ 80, 80, 79, 83, 73, 84, 73, 79, 78, 128, 79, 80, 80, 79, 83, 73, 78, 199,
+ 79, 80, 80, 79, 83, 69, 128, 79, 80, 72, 73, 85, 67, 72, 85, 83, 128, 79,
+ 80, 69, 82, 65, 84, 79, 82, 128, 79, 80, 69, 82, 65, 84, 79, 210, 79, 80,
+ 69, 82, 65, 84, 73, 78, 199, 79, 80, 69, 78, 73, 78, 199, 79, 80, 69, 78,
+ 45, 80, 128, 79, 80, 69, 78, 45, 79, 85, 84, 76, 73, 78, 69, 196, 79, 80,
+ 69, 78, 45, 79, 128, 79, 80, 69, 78, 45, 207, 79, 80, 69, 78, 45, 72, 69,
+ 65, 68, 69, 196, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, 79,
+ 85, 84, 80, 85, 212, 79, 80, 69, 78, 128, 79, 80, 69, 206, 79, 79, 90,
+ 69, 128, 79, 79, 89, 65, 78, 78, 65, 128, 79, 79, 85, 128, 79, 79, 77,
+ 85, 128, 79, 79, 72, 128, 79, 79, 69, 128, 79, 79, 66, 79, 79, 70, 73,
+ 76, 73, 128, 79, 78, 85, 128, 79, 78, 83, 85, 128, 79, 78, 78, 128, 79,
+ 78, 75, 65, 82, 128, 79, 78, 73, 79, 78, 128, 79, 78, 69, 83, 69, 76, 70,
+ 128, 79, 78, 69, 45, 87, 65, 217, 79, 78, 69, 45, 84, 72, 73, 82, 84, 89,
+ 128, 79, 78, 69, 45, 80, 73, 69, 67, 197, 79, 78, 69, 45, 76, 73, 78,
+ 197, 79, 78, 69, 45, 72, 85, 78, 68, 82, 69, 68, 45, 65, 78, 68, 45, 83,
+ 73, 88, 84, 73, 69, 84, 72, 128, 79, 78, 67, 79, 77, 73, 78, 199, 79, 78,
+ 65, 80, 128, 79, 78, 45, 79, 70, 198, 79, 77, 73, 83, 83, 73, 79, 206,
+ 79, 77, 73, 67, 82, 79, 78, 128, 79, 77, 73, 67, 82, 79, 206, 79, 77, 69,
+ 71, 65, 128, 79, 77, 69, 71, 193, 79, 77, 65, 76, 79, 78, 128, 79, 76,
+ 73, 86, 69, 128, 79, 76, 73, 71, 79, 206, 79, 76, 68, 128, 79, 75, 84,
+ 207, 79, 75, 65, 82, 65, 128, 79, 75, 65, 82, 193, 79, 74, 73, 66, 87,
+ 65, 217, 79, 74, 69, 79, 78, 128, 79, 73, 78, 128, 79, 73, 76, 128, 79,
+ 73, 204, 79, 72, 77, 128, 79, 72, 205, 79, 71, 82, 69, 128, 79, 71, 79,
+ 78, 69, 75, 128, 79, 71, 79, 78, 69, 203, 79, 71, 72, 65, 205, 79, 70,
+ 70, 73, 67, 69, 82, 128, 79, 70, 70, 73, 67, 69, 128, 79, 70, 70, 73, 67,
+ 197, 79, 70, 70, 128, 79, 69, 89, 128, 79, 69, 82, 128, 79, 69, 75, 128,
+ 79, 69, 69, 128, 79, 68, 69, 78, 128, 79, 68, 68, 128, 79, 68, 196, 79,
+ 67, 84, 79, 80, 85, 83, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 67, 84,
+ 69, 212, 79, 67, 84, 65, 71, 79, 78, 65, 204, 79, 67, 84, 65, 71, 79, 78,
+ 128, 79, 67, 210, 79, 67, 76, 79, 67, 75, 128, 79, 67, 67, 76, 85, 83,
+ 73, 79, 78, 128, 79, 66, 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 79, 66,
+ 83, 69, 82, 86, 69, 210, 79, 66, 79, 76, 211, 79, 66, 79, 204, 79, 66,
+ 79, 70, 73, 76, 73, 128, 79, 66, 76, 73, 81, 85, 197, 79, 66, 74, 69, 67,
+ 212, 79, 66, 69, 76, 85, 83, 128, 79, 66, 69, 76, 79, 83, 128, 79, 66,
+ 128, 79, 65, 89, 128, 79, 65, 75, 128, 79, 65, 66, 79, 65, 70, 73, 76,
+ 73, 128, 79, 193, 79, 48, 53, 49, 128, 79, 48, 53, 48, 66, 128, 79, 48,
+ 53, 48, 65, 128, 79, 48, 53, 48, 128, 79, 48, 52, 57, 128, 79, 48, 52,
+ 56, 128, 79, 48, 52, 55, 128, 79, 48, 52, 54, 128, 79, 48, 52, 53, 128,
+ 79, 48, 52, 52, 128, 79, 48, 52, 51, 128, 79, 48, 52, 50, 128, 79, 48,
+ 52, 49, 128, 79, 48, 52, 48, 128, 79, 48, 51, 57, 128, 79, 48, 51, 56,
+ 128, 79, 48, 51, 55, 128, 79, 48, 51, 54, 68, 128, 79, 48, 51, 54, 67,
+ 128, 79, 48, 51, 54, 66, 128, 79, 48, 51, 54, 65, 128, 79, 48, 51, 54,
+ 128, 79, 48, 51, 53, 128, 79, 48, 51, 52, 128, 79, 48, 51, 51, 65, 128,
+ 79, 48, 51, 51, 128, 79, 48, 51, 50, 128, 79, 48, 51, 49, 128, 79, 48,
+ 51, 48, 65, 128, 79, 48, 51, 48, 128, 79, 48, 50, 57, 65, 128, 79, 48,
+ 50, 57, 128, 79, 48, 50, 56, 128, 79, 48, 50, 55, 128, 79, 48, 50, 54,
+ 128, 79, 48, 50, 53, 65, 128, 79, 48, 50, 53, 128, 79, 48, 50, 52, 65,
+ 128, 79, 48, 50, 52, 128, 79, 48, 50, 51, 128, 79, 48, 50, 50, 128, 79,
+ 48, 50, 49, 128, 79, 48, 50, 48, 65, 128, 79, 48, 50, 48, 128, 79, 48,
+ 49, 57, 65, 128, 79, 48, 49, 57, 128, 79, 48, 49, 56, 128, 79, 48, 49,
+ 55, 128, 79, 48, 49, 54, 128, 79, 48, 49, 53, 128, 79, 48, 49, 52, 128,
+ 79, 48, 49, 51, 128, 79, 48, 49, 50, 128, 79, 48, 49, 49, 128, 79, 48,
+ 49, 48, 67, 128, 79, 48, 49, 48, 66, 128, 79, 48, 49, 48, 65, 128, 79,
+ 48, 49, 48, 128, 79, 48, 48, 57, 128, 79, 48, 48, 56, 128, 79, 48, 48,
+ 55, 128, 79, 48, 48, 54, 70, 128, 79, 48, 48, 54, 69, 128, 79, 48, 48,
+ 54, 68, 128, 79, 48, 48, 54, 67, 128, 79, 48, 48, 54, 66, 128, 79, 48,
+ 48, 54, 65, 128, 79, 48, 48, 54, 128, 79, 48, 48, 53, 65, 128, 79, 48,
+ 48, 53, 128, 79, 48, 48, 52, 128, 79, 48, 48, 51, 128, 79, 48, 48, 50,
+ 128, 79, 48, 48, 49, 65, 128, 79, 48, 48, 49, 128, 79, 45, 89, 69, 128,
+ 79, 45, 79, 45, 73, 128, 79, 45, 69, 128, 78, 90, 89, 88, 128, 78, 90,
+ 89, 84, 128, 78, 90, 89, 82, 88, 128, 78, 90, 89, 82, 128, 78, 90, 89,
+ 80, 128, 78, 90, 89, 128, 78, 90, 85, 88, 128, 78, 90, 85, 82, 88, 128,
+ 78, 90, 85, 82, 128, 78, 90, 85, 81, 128, 78, 90, 85, 80, 128, 78, 90,
+ 85, 79, 88, 128, 78, 90, 85, 79, 128, 78, 90, 85, 206, 78, 90, 85, 128,
+ 78, 90, 79, 88, 128, 78, 90, 79, 80, 128, 78, 90, 73, 88, 128, 78, 90,
+ 73, 84, 128, 78, 90, 73, 80, 128, 78, 90, 73, 69, 88, 128, 78, 90, 73,
+ 69, 80, 128, 78, 90, 73, 69, 128, 78, 90, 73, 128, 78, 90, 69, 88, 128,
+ 78, 90, 69, 85, 77, 128, 78, 90, 69, 128, 78, 90, 65, 88, 128, 78, 90,
+ 65, 84, 128, 78, 90, 65, 81, 128, 78, 90, 65, 80, 128, 78, 90, 65, 128,
+ 78, 90, 193, 78, 89, 87, 65, 128, 78, 89, 85, 88, 128, 78, 89, 85, 85,
+ 128, 78, 89, 85, 84, 128, 78, 89, 85, 80, 128, 78, 89, 85, 79, 88, 128,
+ 78, 89, 85, 79, 80, 128, 78, 89, 85, 79, 128, 78, 89, 85, 78, 128, 78,
+ 89, 85, 69, 128, 78, 89, 85, 128, 78, 89, 79, 88, 128, 78, 89, 79, 84,
+ 128, 78, 89, 79, 80, 128, 78, 89, 79, 79, 128, 78, 89, 79, 78, 128, 78,
+ 89, 79, 65, 128, 78, 89, 79, 128, 78, 89, 74, 65, 128, 78, 89, 73, 88,
+ 128, 78, 89, 73, 84, 128, 78, 89, 73, 212, 78, 89, 73, 211, 78, 89, 73,
+ 210, 78, 89, 73, 80, 128, 78, 89, 73, 78, 45, 68, 79, 128, 78, 89, 73,
+ 78, 128, 78, 89, 73, 73, 128, 78, 89, 73, 69, 88, 128, 78, 89, 73, 69,
+ 84, 128, 78, 89, 73, 69, 80, 128, 78, 89, 73, 69, 128, 78, 89, 73, 65,
+ 75, 69, 78, 199, 78, 89, 73, 128, 78, 89, 201, 78, 89, 72, 65, 128, 78,
+ 89, 69, 84, 128, 78, 89, 69, 212, 78, 89, 69, 78, 128, 78, 89, 69, 72,
+ 128, 78, 89, 69, 200, 78, 89, 69, 69, 128, 78, 89, 69, 128, 78, 89, 196,
+ 78, 89, 67, 65, 128, 78, 89, 65, 85, 128, 78, 89, 65, 74, 128, 78, 89,
+ 65, 73, 128, 78, 89, 65, 72, 128, 78, 89, 65, 69, 77, 65, 69, 128, 78,
+ 89, 65, 65, 128, 78, 87, 79, 79, 128, 78, 87, 79, 128, 78, 87, 73, 73,
+ 128, 78, 87, 73, 128, 78, 87, 69, 128, 78, 87, 65, 65, 128, 78, 87, 65,
+ 128, 78, 87, 128, 78, 86, 128, 78, 85, 88, 128, 78, 85, 85, 78, 128, 78,
+ 85, 85, 128, 78, 85, 84, 73, 76, 76, 85, 128, 78, 85, 84, 128, 78, 85,
+ 212, 78, 85, 82, 88, 128, 78, 85, 82, 128, 78, 85, 80, 128, 78, 85, 79,
+ 88, 128, 78, 85, 79, 80, 128, 78, 85, 79, 128, 78, 85, 78, 85, 90, 128,
+ 78, 85, 78, 85, 218, 78, 85, 78, 71, 128, 78, 85, 78, 65, 86, 85, 212,
+ 78, 85, 78, 65, 86, 73, 203, 78, 85, 78, 128, 78, 85, 206, 78, 85, 77,
+ 69, 82, 207, 78, 85, 77, 69, 82, 65, 84, 79, 210, 78, 85, 77, 69, 82, 65,
+ 204, 78, 85, 77, 66, 69, 82, 83, 128, 78, 85, 77, 66, 69, 82, 128, 78,
+ 85, 77, 128, 78, 85, 76, 76, 128, 78, 85, 76, 204, 78, 85, 76, 128, 78,
+ 85, 75, 84, 65, 128, 78, 85, 75, 84, 193, 78, 85, 69, 78, 71, 128, 78,
+ 85, 69, 128, 78, 85, 66, 73, 65, 206, 78, 85, 65, 69, 128, 78, 85, 49,
+ 49, 128, 78, 85, 49, 177, 78, 85, 48, 50, 50, 65, 128, 78, 85, 48, 50,
+ 50, 128, 78, 85, 48, 50, 49, 128, 78, 85, 48, 50, 48, 128, 78, 85, 48,
+ 49, 57, 128, 78, 85, 48, 49, 56, 65, 128, 78, 85, 48, 49, 56, 128, 78,
+ 85, 48, 49, 55, 128, 78, 85, 48, 49, 54, 128, 78, 85, 48, 49, 53, 128,
+ 78, 85, 48, 49, 52, 128, 78, 85, 48, 49, 51, 128, 78, 85, 48, 49, 50,
+ 128, 78, 85, 48, 49, 49, 65, 128, 78, 85, 48, 49, 49, 128, 78, 85, 48,
+ 49, 48, 65, 128, 78, 85, 48, 49, 48, 128, 78, 85, 48, 48, 57, 128, 78,
+ 85, 48, 48, 56, 128, 78, 85, 48, 48, 55, 128, 78, 85, 48, 48, 54, 128,
+ 78, 85, 48, 48, 53, 128, 78, 85, 48, 48, 52, 128, 78, 85, 48, 48, 51,
+ 128, 78, 85, 48, 48, 50, 128, 78, 85, 48, 48, 49, 128, 78, 85, 45, 51,
+ 128, 78, 85, 45, 50, 128, 78, 85, 45, 49, 128, 78, 84, 88, 73, 86, 128,
+ 78, 84, 88, 65, 128, 78, 84, 85, 85, 128, 78, 84, 85, 77, 128, 78, 84,
+ 85, 74, 128, 78, 84, 213, 78, 84, 83, 65, 85, 128, 78, 84, 83, 65, 128,
+ 78, 84, 79, 81, 80, 69, 78, 128, 78, 84, 79, 71, 128, 78, 84, 79, 199,
+ 78, 84, 73, 69, 197, 78, 84, 72, 65, 85, 128, 78, 84, 69, 85, 78, 71, 66,
+ 65, 128, 78, 84, 69, 85, 77, 128, 78, 84, 69, 78, 128, 78, 84, 69, 69,
+ 128, 78, 84, 65, 80, 128, 78, 84, 65, 208, 78, 84, 65, 65, 128, 78, 84,
+ 65, 128, 78, 83, 85, 79, 212, 78, 83, 85, 78, 128, 78, 83, 85, 77, 128,
+ 78, 83, 79, 77, 128, 78, 83, 73, 69, 69, 84, 128, 78, 83, 73, 69, 69, 80,
+ 128, 78, 83, 73, 69, 69, 128, 78, 83, 72, 85, 84, 128, 78, 83, 72, 85,
+ 212, 78, 83, 72, 85, 79, 80, 128, 78, 83, 72, 85, 69, 128, 78, 83, 72,
+ 73, 69, 69, 128, 78, 83, 72, 69, 69, 128, 78, 83, 72, 65, 81, 128, 78,
+ 83, 72, 65, 128, 78, 83, 69, 85, 65, 69, 78, 128, 78, 83, 69, 78, 128,
+ 78, 83, 65, 128, 78, 82, 89, 88, 128, 78, 82, 89, 84, 128, 78, 82, 89,
+ 82, 88, 128, 78, 82, 89, 82, 128, 78, 82, 89, 80, 128, 78, 82, 89, 128,
+ 78, 82, 85, 88, 128, 78, 82, 85, 84, 128, 78, 82, 85, 82, 88, 128, 78,
+ 82, 85, 82, 128, 78, 82, 85, 80, 128, 78, 82, 85, 65, 128, 78, 82, 85,
+ 128, 78, 82, 79, 88, 128, 78, 82, 79, 80, 128, 78, 82, 79, 128, 78, 82,
+ 69, 88, 128, 78, 82, 69, 84, 128, 78, 82, 69, 211, 78, 82, 69, 80, 128,
+ 78, 82, 69, 128, 78, 82, 65, 88, 128, 78, 82, 65, 84, 128, 78, 82, 65,
+ 80, 128, 78, 82, 65, 128, 78, 81, 73, 71, 128, 78, 81, 65, 128, 78, 80,
+ 76, 65, 128, 78, 80, 65, 128, 78, 79, 89, 128, 78, 79, 88, 128, 78, 79,
+ 87, 67, 128, 78, 79, 86, 73, 76, 69, 128, 78, 79, 86, 69, 77, 66, 69, 82,
+ 128, 78, 79, 84, 84, 79, 128, 78, 79, 84, 69, 83, 128, 78, 79, 84, 69,
+ 72, 69, 65, 68, 128, 78, 79, 84, 69, 72, 69, 65, 196, 78, 79, 84, 69, 66,
+ 79, 79, 75, 128, 78, 79, 84, 69, 66, 79, 79, 203, 78, 79, 84, 69, 128,
+ 78, 79, 84, 197, 78, 79, 84, 67, 72, 69, 196, 78, 79, 84, 67, 72, 128,
+ 78, 79, 84, 65, 84, 73, 79, 206, 78, 79, 84, 128, 78, 79, 212, 78, 79,
+ 83, 69, 128, 78, 79, 83, 197, 78, 79, 82, 84, 72, 87, 69, 83, 212, 78,
+ 79, 82, 84, 72, 69, 82, 206, 78, 79, 82, 84, 72, 69, 65, 83, 84, 45, 80,
+ 79, 73, 78, 84, 73, 78, 199, 78, 79, 82, 77, 65, 204, 78, 79, 82, 68, 73,
+ 195, 78, 79, 210, 78, 79, 80, 128, 78, 79, 79, 78, 85, 128, 78, 79, 79,
+ 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, 128, 78, 79, 78, 45, 80, 79,
+ 84, 65, 66, 76, 197, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82, 128, 78, 79,
+ 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 78, 79, 78, 128, 78, 79, 77, 73,
+ 83, 77, 193, 78, 79, 77, 73, 78, 65, 204, 78, 79, 75, 72, 85, 75, 128,
+ 78, 79, 68, 69, 128, 78, 79, 65, 128, 78, 79, 45, 66, 82, 69, 65, 203,
+ 78, 79, 45, 53, 128, 78, 79, 45, 52, 128, 78, 79, 45, 51, 128, 78, 79,
+ 45, 50, 128, 78, 79, 45, 49, 128, 78, 78, 85, 85, 128, 78, 78, 85, 128,
+ 78, 78, 79, 79, 128, 78, 78, 79, 128, 78, 78, 78, 85, 85, 128, 78, 78,
+ 78, 85, 128, 78, 78, 78, 79, 79, 128, 78, 78, 78, 79, 128, 78, 78, 78,
+ 73, 73, 128, 78, 78, 78, 73, 128, 78, 78, 78, 69, 69, 128, 78, 78, 78,
+ 69, 128, 78, 78, 78, 65, 85, 128, 78, 78, 78, 65, 73, 128, 78, 78, 78,
+ 65, 65, 128, 78, 78, 78, 65, 128, 78, 78, 78, 128, 78, 78, 72, 65, 128,
+ 78, 78, 71, 79, 79, 128, 78, 78, 71, 79, 128, 78, 78, 71, 73, 73, 128,
+ 78, 78, 71, 73, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, 65, 128, 78,
+ 78, 71, 128, 78, 78, 66, 83, 80, 128, 78, 77, 128, 78, 76, 65, 85, 128,
+ 78, 76, 48, 50, 48, 128, 78, 76, 48, 49, 57, 128, 78, 76, 48, 49, 56,
+ 128, 78, 76, 48, 49, 55, 65, 128, 78, 76, 48, 49, 55, 128, 78, 76, 48,
+ 49, 54, 128, 78, 76, 48, 49, 53, 128, 78, 76, 48, 49, 52, 128, 78, 76,
+ 48, 49, 51, 128, 78, 76, 48, 49, 50, 128, 78, 76, 48, 49, 49, 128, 78,
+ 76, 48, 49, 48, 128, 78, 76, 48, 48, 57, 128, 78, 76, 48, 48, 56, 128,
+ 78, 76, 48, 48, 55, 128, 78, 76, 48, 48, 54, 128, 78, 76, 48, 48, 53, 65,
+ 128, 78, 76, 48, 48, 53, 128, 78, 76, 48, 48, 52, 128, 78, 76, 48, 48,
+ 51, 128, 78, 76, 48, 48, 50, 128, 78, 76, 48, 48, 49, 128, 78, 76, 128,
+ 78, 75, 79, 77, 128, 78, 75, 207, 78, 75, 73, 78, 68, 73, 128, 78, 75,
+ 65, 85, 128, 78, 75, 65, 65, 82, 65, 69, 128, 78, 75, 65, 128, 78, 74,
+ 89, 88, 128, 78, 74, 89, 84, 128, 78, 74, 89, 82, 88, 128, 78, 74, 89,
+ 82, 128, 78, 74, 89, 80, 128, 78, 74, 89, 128, 78, 74, 85, 88, 128, 78,
+ 74, 85, 82, 88, 128, 78, 74, 85, 82, 128, 78, 74, 85, 81, 65, 128, 78,
+ 74, 85, 80, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 79, 128, 78, 74,
+ 85, 69, 81, 128, 78, 74, 85, 65, 69, 128, 78, 74, 85, 128, 78, 74, 79,
+ 88, 128, 78, 74, 79, 84, 128, 78, 74, 79, 80, 128, 78, 74, 79, 79, 128,
+ 78, 74, 79, 128, 78, 74, 73, 88, 128, 78, 74, 73, 84, 128, 78, 74, 73,
+ 80, 128, 78, 74, 73, 69, 88, 128, 78, 74, 73, 69, 84, 128, 78, 74, 73,
+ 69, 80, 128, 78, 74, 73, 69, 69, 128, 78, 74, 73, 69, 128, 78, 74, 73,
+ 128, 78, 74, 201, 78, 74, 69, 85, 88, 128, 78, 74, 69, 85, 84, 128, 78,
+ 74, 69, 85, 65, 69, 78, 65, 128, 78, 74, 69, 85, 65, 69, 77, 128, 78, 74,
+ 69, 69, 69, 69, 128, 78, 74, 69, 69, 128, 78, 74, 69, 197, 78, 74, 69,
+ 128, 78, 74, 65, 81, 128, 78, 74, 65, 80, 128, 78, 74, 65, 69, 77, 76,
+ 73, 128, 78, 74, 65, 69, 77, 128, 78, 74, 65, 65, 128, 78, 73, 88, 128,
+ 78, 73, 84, 82, 69, 128, 78, 73, 83, 65, 71, 128, 78, 73, 82, 85, 71, 85,
+ 128, 78, 73, 80, 128, 78, 73, 78, 84, 72, 128, 78, 73, 78, 74, 65, 128,
+ 78, 73, 78, 69, 84, 89, 128, 78, 73, 78, 69, 84, 217, 78, 73, 78, 69, 84,
+ 69, 69, 78, 128, 78, 73, 78, 69, 84, 69, 69, 206, 78, 73, 78, 69, 45, 84,
+ 72, 73, 82, 84, 89, 128, 78, 73, 78, 197, 78, 73, 78, 68, 65, 50, 128,
+ 78, 73, 78, 68, 65, 178, 78, 73, 78, 57, 128, 78, 73, 78, 128, 78, 73,
+ 77, 128, 78, 73, 205, 78, 73, 75, 79, 76, 83, 66, 85, 82, 199, 78, 73,
+ 75, 72, 65, 72, 73, 84, 128, 78, 73, 75, 65, 72, 73, 84, 128, 78, 73, 75,
+ 65, 128, 78, 73, 72, 83, 72, 86, 65, 83, 65, 128, 78, 73, 71, 73, 68, 65,
+ 77, 73, 78, 128, 78, 73, 71, 73, 68, 65, 69, 83, 72, 128, 78, 73, 71, 72,
+ 84, 128, 78, 73, 71, 72, 212, 78, 73, 71, 71, 65, 72, 73, 84, 65, 128,
+ 78, 73, 69, 88, 128, 78, 73, 69, 85, 78, 45, 84, 73, 75, 69, 85, 84, 128,
+ 78, 73, 69, 85, 78, 45, 84, 72, 73, 69, 85, 84, 72, 128, 78, 73, 69, 85,
+ 78, 45, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 82, 73, 69, 85, 76,
+ 128, 78, 73, 69, 85, 78, 45, 80, 73, 69, 85, 80, 128, 78, 73, 69, 85, 78,
+ 45, 80, 65, 78, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 75, 73, 89,
+ 69, 79, 75, 128, 78, 73, 69, 85, 78, 45, 72, 73, 69, 85, 72, 128, 78, 73,
+ 69, 85, 78, 45, 67, 73, 69, 85, 67, 128, 78, 73, 69, 85, 78, 45, 67, 72,
+ 73, 69, 85, 67, 72, 128, 78, 73, 69, 85, 206, 78, 73, 69, 80, 128, 78,
+ 73, 69, 128, 78, 73, 66, 128, 78, 73, 65, 128, 78, 73, 50, 128, 78, 73,
+ 45, 84, 69, 128, 78, 73, 45, 55, 128, 78, 73, 45, 54, 128, 78, 73, 45,
+ 53, 128, 78, 73, 45, 52, 128, 78, 73, 45, 51, 128, 78, 73, 45, 50, 128,
+ 78, 73, 45, 49, 128, 78, 72, 85, 69, 128, 78, 72, 74, 65, 128, 78, 72,
+ 65, 89, 128, 78, 72, 128, 78, 71, 89, 69, 128, 78, 71, 86, 69, 128, 78,
+ 71, 85, 85, 128, 78, 71, 85, 79, 88, 128, 78, 71, 85, 79, 84, 128, 78,
+ 71, 85, 79, 128, 78, 71, 85, 65, 78, 128, 78, 71, 85, 65, 69, 84, 128,
+ 78, 71, 85, 65, 69, 128, 78, 71, 79, 88, 128, 78, 71, 79, 85, 128, 78,
+ 71, 79, 213, 78, 71, 79, 84, 128, 78, 71, 79, 81, 128, 78, 71, 79, 80,
+ 128, 78, 71, 79, 78, 128, 78, 71, 79, 77, 128, 78, 71, 79, 69, 72, 128,
+ 78, 71, 79, 69, 200, 78, 71, 207, 78, 71, 75, 89, 69, 69, 128, 78, 71,
+ 75, 87, 65, 69, 78, 128, 78, 71, 75, 85, 80, 128, 78, 71, 75, 85, 78,
+ 128, 78, 71, 75, 85, 77, 128, 78, 71, 75, 85, 69, 78, 90, 69, 85, 77,
+ 128, 78, 71, 75, 85, 197, 78, 71, 75, 73, 78, 68, 201, 78, 71, 75, 73,
+ 69, 69, 128, 78, 71, 75, 69, 85, 88, 128, 78, 71, 75, 69, 85, 82, 73,
+ 128, 78, 71, 75, 69, 85, 65, 69, 81, 128, 78, 71, 75, 69, 85, 65, 69, 77,
+ 128, 78, 71, 75, 65, 81, 128, 78, 71, 75, 65, 80, 128, 78, 71, 75, 65,
+ 65, 77, 73, 128, 78, 71, 75, 65, 128, 78, 71, 73, 69, 88, 128, 78, 71,
+ 73, 69, 80, 128, 78, 71, 73, 69, 128, 78, 71, 72, 65, 128, 78, 71, 71,
+ 87, 65, 69, 78, 128, 78, 71, 71, 85, 82, 65, 69, 128, 78, 71, 71, 85, 80,
+ 128, 78, 71, 71, 85, 79, 81, 128, 78, 71, 71, 85, 79, 209, 78, 71, 71,
+ 85, 79, 78, 128, 78, 71, 71, 85, 79, 77, 128, 78, 71, 71, 85, 77, 128,
+ 78, 71, 71, 85, 69, 69, 84, 128, 78, 71, 71, 85, 65, 69, 83, 72, 65, 197,
+ 78, 71, 71, 85, 65, 69, 206, 78, 71, 71, 85, 65, 128, 78, 71, 71, 85,
+ 128, 78, 71, 71, 79, 79, 128, 78, 71, 71, 79, 128, 78, 71, 71, 73, 128,
+ 78, 71, 71, 69, 85, 88, 128, 78, 71, 71, 69, 85, 65, 69, 84, 128, 78, 71,
+ 71, 69, 85, 65, 69, 128, 78, 71, 71, 69, 213, 78, 71, 71, 69, 78, 128,
+ 78, 71, 71, 69, 69, 84, 128, 78, 71, 71, 69, 69, 69, 69, 128, 78, 71, 71,
+ 69, 69, 128, 78, 71, 71, 69, 128, 78, 71, 71, 65, 80, 128, 78, 71, 71,
+ 65, 65, 77, 65, 69, 128, 78, 71, 71, 65, 65, 77, 128, 78, 71, 71, 65, 65,
+ 128, 78, 71, 71, 128, 78, 71, 69, 88, 128, 78, 71, 69, 85, 82, 69, 85,
+ 84, 128, 78, 71, 69, 80, 128, 78, 71, 69, 78, 128, 78, 71, 69, 69, 128,
+ 78, 71, 69, 65, 68, 65, 76, 128, 78, 71, 65, 88, 128, 78, 71, 65, 85,
+ 128, 78, 71, 65, 84, 128, 78, 71, 65, 211, 78, 71, 65, 81, 128, 78, 71,
+ 65, 80, 128, 78, 71, 65, 78, 71, 85, 128, 78, 71, 65, 78, 128, 78, 71,
+ 65, 73, 128, 78, 71, 65, 72, 128, 78, 71, 65, 65, 73, 128, 78, 71, 193,
+ 78, 70, 128, 78, 69, 88, 212, 78, 69, 88, 128, 78, 69, 87, 83, 80, 65,
+ 80, 69, 82, 128, 78, 69, 87, 76, 73, 78, 69, 128, 78, 69, 87, 76, 73, 78,
+ 197, 78, 69, 87, 193, 78, 69, 87, 128, 78, 69, 215, 78, 69, 85, 84, 82,
+ 65, 76, 128, 78, 69, 85, 84, 82, 65, 204, 78, 69, 85, 84, 69, 82, 128,
+ 78, 69, 84, 87, 79, 82, 75, 69, 196, 78, 69, 212, 78, 69, 83, 84, 73, 78,
+ 199, 78, 69, 83, 84, 69, 196, 78, 69, 83, 83, 85, 83, 128, 78, 69, 82,
+ 196, 78, 69, 81, 85, 68, 65, 65, 128, 78, 69, 80, 84, 85, 78, 69, 128,
+ 78, 69, 80, 84, 85, 78, 197, 78, 69, 80, 128, 78, 69, 79, 128, 78, 69,
+ 207, 78, 69, 78, 79, 69, 128, 78, 69, 78, 65, 78, 79, 128, 78, 69, 78,
+ 128, 78, 69, 76, 128, 78, 69, 73, 84, 72, 69, 210, 78, 69, 71, 65, 84,
+ 73, 86, 197, 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 71, 65, 84, 69,
+ 196, 78, 69, 69, 68, 76, 69, 128, 78, 69, 67, 75, 84, 73, 69, 128, 78,
+ 69, 67, 75, 128, 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78, 69,
+ 45, 75, 79, 128, 78, 68, 85, 88, 128, 78, 68, 85, 84, 128, 78, 68, 85,
+ 82, 88, 128, 78, 68, 85, 82, 128, 78, 68, 85, 80, 128, 78, 68, 85, 78,
+ 128, 78, 68, 213, 78, 68, 79, 88, 128, 78, 68, 79, 84, 128, 78, 68, 79,
+ 80, 128, 78, 68, 79, 79, 128, 78, 68, 79, 78, 128, 78, 68, 79, 77, 66,
+ 85, 128, 78, 68, 79, 76, 197, 78, 68, 73, 88, 128, 78, 68, 73, 84, 128,
+ 78, 68, 73, 81, 128, 78, 68, 73, 80, 128, 78, 68, 73, 69, 88, 128, 78,
+ 68, 73, 69, 128, 78, 68, 73, 68, 65, 128, 78, 68, 73, 65, 81, 128, 78,
+ 68, 69, 88, 128, 78, 68, 69, 85, 88, 128, 78, 68, 69, 85, 84, 128, 78,
+ 68, 69, 85, 65, 69, 82, 69, 69, 128, 78, 68, 69, 80, 128, 78, 68, 69, 69,
+ 128, 78, 68, 69, 128, 78, 68, 65, 88, 128, 78, 68, 65, 84, 128, 78, 68,
+ 65, 80, 128, 78, 68, 65, 77, 128, 78, 68, 65, 65, 78, 71, 71, 69, 85, 65,
+ 69, 84, 128, 78, 68, 65, 65, 128, 78, 68, 65, 193, 78, 67, 72, 65, 85,
+ 128, 78, 67, 65, 128, 78, 66, 89, 88, 128, 78, 66, 89, 84, 128, 78, 66,
+ 89, 82, 88, 128, 78, 66, 89, 82, 128, 78, 66, 89, 80, 128, 78, 66, 89,
+ 128, 78, 66, 85, 88, 128, 78, 66, 85, 84, 128, 78, 66, 85, 82, 88, 128,
+ 78, 66, 85, 82, 128, 78, 66, 85, 80, 128, 78, 66, 85, 128, 78, 66, 79,
+ 88, 128, 78, 66, 79, 84, 128, 78, 66, 79, 80, 128, 78, 66, 79, 128, 78,
+ 66, 73, 88, 128, 78, 66, 73, 84, 128, 78, 66, 73, 80, 128, 78, 66, 73,
+ 69, 88, 128, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 128, 78, 66, 73,
+ 128, 78, 66, 72, 128, 78, 66, 65, 88, 128, 78, 66, 65, 84, 128, 78, 66,
+ 65, 80, 128, 78, 66, 65, 128, 78, 65, 90, 65, 210, 78, 65, 89, 65, 78,
+ 78, 65, 128, 78, 65, 89, 128, 78, 65, 88, 73, 65, 206, 78, 65, 88, 128,
+ 78, 65, 85, 84, 72, 83, 128, 78, 65, 85, 83, 69, 65, 84, 69, 196, 78, 65,
+ 85, 68, 73, 218, 78, 65, 84, 85, 82, 65, 204, 78, 65, 84, 73, 79, 78, 65,
+ 204, 78, 65, 83, 75, 65, 80, 201, 78, 65, 83, 72, 73, 128, 78, 65, 83,
+ 65, 76, 73, 90, 65, 84, 73, 79, 78, 128, 78, 65, 83, 65, 76, 73, 90, 65,
+ 84, 73, 79, 206, 78, 65, 83, 65, 204, 78, 65, 82, 82, 79, 215, 78, 65,
+ 82, 128, 78, 65, 81, 128, 78, 65, 79, 211, 78, 65, 78, 83, 65, 78, 65,
+ 81, 128, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, 128, 78, 65, 78, 68, 73,
+ 78, 65, 71, 65, 82, 201, 78, 65, 78, 68, 128, 78, 65, 78, 65, 128, 78,
+ 65, 77, 69, 128, 78, 65, 77, 197, 78, 65, 77, 50, 128, 78, 65, 75, 128,
+ 78, 65, 73, 82, 193, 78, 65, 73, 204, 78, 65, 71, 82, 201, 78, 65, 71,
+ 65, 82, 128, 78, 65, 71, 65, 128, 78, 65, 71, 193, 78, 65, 71, 128, 78,
+ 65, 199, 78, 65, 69, 128, 78, 65, 66, 76, 65, 128, 78, 65, 66, 65, 84,
+ 65, 69, 65, 206, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65,
+ 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 65, 65, 73, 128, 78, 65, 193,
+ 78, 65, 52, 128, 78, 65, 50, 128, 78, 65, 45, 57, 128, 78, 65, 45, 56,
+ 128, 78, 65, 45, 55, 128, 78, 65, 45, 54, 128, 78, 65, 45, 53, 128, 78,
+ 65, 45, 52, 128, 78, 65, 45, 51, 128, 78, 65, 45, 50, 128, 78, 65, 45,
+ 49, 128, 78, 48, 52, 50, 128, 78, 48, 52, 49, 128, 78, 48, 52, 48, 128,
+ 78, 48, 51, 57, 128, 78, 48, 51, 56, 128, 78, 48, 51, 55, 65, 128, 78,
+ 48, 51, 55, 128, 78, 48, 51, 54, 128, 78, 48, 51, 53, 65, 128, 78, 48,
+ 51, 53, 128, 78, 48, 51, 52, 65, 128, 78, 48, 51, 52, 128, 78, 48, 51,
+ 51, 65, 128, 78, 48, 51, 51, 128, 78, 48, 51, 50, 128, 78, 48, 51, 49,
+ 128, 78, 48, 51, 48, 128, 78, 48, 50, 57, 128, 78, 48, 50, 56, 128, 78,
+ 48, 50, 55, 128, 78, 48, 50, 54, 128, 78, 48, 50, 53, 65, 128, 78, 48,
+ 50, 53, 128, 78, 48, 50, 52, 128, 78, 48, 50, 51, 128, 78, 48, 50, 50,
+ 128, 78, 48, 50, 49, 128, 78, 48, 50, 48, 128, 78, 48, 49, 57, 128, 78,
+ 48, 49, 56, 66, 128, 78, 48, 49, 56, 65, 128, 78, 48, 49, 56, 128, 78,
+ 48, 49, 55, 128, 78, 48, 49, 54, 128, 78, 48, 49, 53, 128, 78, 48, 49,
+ 52, 128, 78, 48, 49, 51, 128, 78, 48, 49, 50, 128, 78, 48, 49, 49, 128,
+ 78, 48, 49, 48, 128, 78, 48, 48, 57, 128, 78, 48, 48, 56, 128, 78, 48,
+ 48, 55, 128, 78, 48, 48, 54, 128, 78, 48, 48, 53, 128, 78, 48, 48, 52,
+ 128, 78, 48, 48, 51, 128, 78, 48, 48, 50, 128, 78, 48, 48, 49, 128, 78,
+ 45, 77, 85, 45, 77, 79, 45, 50, 128, 78, 45, 77, 85, 45, 77, 79, 45, 49,
+ 128, 78, 45, 67, 82, 69, 197, 78, 45, 65, 82, 217, 77, 89, 88, 128, 77,
+ 89, 84, 128, 77, 89, 83, 76, 73, 84, 69, 128, 77, 89, 80, 128, 77, 89,
+ 65, 128, 77, 89, 193, 77, 89, 128, 77, 87, 79, 79, 128, 77, 87, 79, 128,
+ 77, 87, 73, 73, 128, 77, 87, 73, 128, 77, 87, 69, 69, 128, 77, 87, 69,
+ 128, 77, 87, 65, 65, 128, 77, 87, 65, 128, 77, 87, 128, 77, 215, 77, 86,
+ 83, 128, 77, 86, 79, 80, 128, 77, 86, 73, 128, 77, 86, 69, 85, 65, 69,
+ 78, 71, 65, 77, 128, 77, 86, 128, 77, 214, 77, 85, 88, 128, 77, 85, 85,
+ 86, 85, 90, 72, 65, 75, 75, 85, 128, 77, 85, 85, 83, 73, 75, 65, 84, 79,
+ 65, 78, 128, 77, 85, 85, 82, 68, 72, 65, 74, 193, 77, 85, 85, 128, 77,
+ 85, 84, 72, 65, 76, 73, 89, 65, 128, 77, 85, 84, 128, 77, 85, 83, 73, 67,
+ 128, 77, 85, 83, 73, 195, 77, 85, 83, 72, 82, 79, 79, 77, 128, 77, 85,
+ 83, 72, 51, 128, 77, 85, 83, 72, 179, 77, 85, 83, 72, 128, 77, 85, 83,
+ 200, 77, 85, 83, 128, 77, 85, 82, 88, 128, 77, 85, 82, 71, 85, 50, 128,
+ 77, 85, 82, 69, 128, 77, 85, 82, 68, 65, 128, 77, 85, 82, 68, 193, 77,
+ 85, 82, 128, 77, 85, 81, 68, 65, 77, 128, 77, 85, 80, 128, 77, 85, 79,
+ 88, 128, 77, 85, 79, 84, 128, 77, 85, 79, 80, 128, 77, 85, 79, 77, 65,
+ 69, 128, 77, 85, 79, 128, 77, 85, 78, 83, 85, 66, 128, 77, 85, 78, 65,
+ 72, 128, 77, 85, 78, 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 77, 85,
+ 76, 84, 73, 83, 69, 212, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73,
+ 79, 78, 128, 77, 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 206, 77,
+ 85, 76, 84, 73, 80, 76, 69, 128, 77, 85, 76, 84, 73, 80, 76, 197, 77, 85,
+ 76, 84, 73, 79, 67, 85, 76, 65, 210, 77, 85, 76, 84, 73, 77, 65, 80, 128,
+ 77, 85, 76, 84, 201, 77, 85, 76, 84, 65, 78, 201, 77, 85, 75, 80, 72, 82,
+ 69, 78, 71, 128, 77, 85, 75, 75, 85, 82, 85, 78, 73, 128, 77, 85, 73, 78,
+ 128, 77, 85, 71, 83, 128, 77, 85, 71, 128, 77, 85, 199, 77, 85, 69, 78,
+ 128, 77, 85, 69, 128, 77, 85, 67, 72, 128, 77, 85, 67, 200, 77, 85, 67,
+ 65, 65, 68, 128, 77, 85, 65, 83, 128, 77, 85, 65, 78, 128, 77, 85, 65,
+ 69, 128, 77, 85, 45, 71, 65, 65, 72, 76, 65, 193, 77, 85, 45, 52, 128,
+ 77, 85, 45, 51, 128, 77, 85, 45, 50, 128, 77, 85, 45, 49, 128, 77, 213,
+ 77, 84, 65, 86, 82, 85, 76, 201, 77, 83, 128, 77, 82, 207, 77, 210, 77,
+ 80, 65, 128, 77, 79, 89, 65, 73, 128, 77, 79, 88, 128, 77, 79, 86, 73,
+ 197, 77, 79, 86, 69, 211, 77, 79, 86, 69, 77, 69, 78, 84, 45, 87, 65, 76,
+ 76, 80, 76, 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 72, 73, 78,
+ 71, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 70, 76, 79, 79, 82, 80, 76,
+ 65, 78, 197, 77, 79, 86, 69, 77, 69, 78, 84, 45, 68, 73, 65, 71, 79, 78,
+ 65, 204, 77, 79, 86, 69, 77, 69, 78, 84, 128, 77, 79, 86, 69, 77, 69, 78,
+ 212, 77, 79, 86, 69, 196, 77, 79, 86, 69, 128, 77, 79, 85, 84, 72, 128,
+ 77, 79, 85, 83, 69, 128, 77, 79, 85, 83, 197, 77, 79, 85, 78, 84, 65, 73,
+ 78, 83, 128, 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 79, 85, 78, 84, 65,
+ 73, 206, 77, 79, 85, 78, 212, 77, 79, 85, 78, 68, 128, 77, 79, 85, 78,
+ 196, 77, 79, 84, 79, 82, 87, 65, 89, 128, 77, 79, 84, 79, 82, 73, 90, 69,
+ 196, 77, 79, 84, 79, 82, 67, 89, 67, 76, 69, 128, 77, 79, 84, 79, 210,
+ 77, 79, 84, 72, 69, 82, 128, 77, 79, 84, 72, 69, 210, 77, 79, 84, 128,
+ 77, 79, 83, 81, 85, 73, 84, 79, 128, 77, 79, 83, 81, 85, 69, 128, 77, 79,
+ 82, 84, 85, 85, 77, 128, 77, 79, 82, 84, 65, 82, 128, 77, 79, 82, 80, 72,
+ 79, 76, 79, 71, 73, 67, 65, 204, 77, 79, 82, 78, 73, 78, 71, 128, 77, 79,
+ 80, 128, 77, 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, 79, 79, 78, 128,
+ 77, 79, 79, 206, 77, 79, 79, 77, 80, 85, 81, 128, 77, 79, 79, 77, 69, 85,
+ 84, 128, 77, 79, 79, 68, 128, 77, 79, 79, 196, 77, 79, 79, 128, 77, 79,
+ 78, 84, 73, 69, 69, 78, 128, 77, 79, 78, 84, 72, 128, 77, 79, 78, 84,
+ 200, 77, 79, 78, 83, 84, 69, 82, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76,
+ 197, 77, 79, 78, 79, 83, 80, 65, 67, 197, 77, 79, 78, 79, 82, 65, 73, 76,
+ 128, 77, 79, 78, 79, 71, 82, 65, 80, 200, 77, 79, 78, 79, 71, 82, 65, 77,
+ 77, 79, 211, 77, 79, 78, 79, 71, 82, 65, 205, 77, 79, 78, 79, 70, 79, 78,
+ 73, 65, 83, 128, 77, 79, 78, 79, 67, 85, 76, 65, 210, 77, 79, 78, 79, 67,
+ 76, 69, 128, 77, 79, 78, 75, 69, 89, 128, 77, 79, 78, 75, 69, 217, 77,
+ 79, 78, 73, 128, 77, 79, 78, 71, 75, 69, 85, 65, 69, 81, 128, 77, 79, 78,
+ 69, 89, 45, 77, 79, 85, 84, 200, 77, 79, 78, 69, 217, 77, 79, 78, 128,
+ 77, 79, 206, 77, 79, 76, 128, 77, 79, 72, 65, 77, 77, 65, 196, 77, 79,
+ 68, 85, 76, 207, 77, 79, 68, 73, 70, 73, 69, 82, 45, 57, 128, 77, 79, 68,
+ 73, 70, 73, 69, 82, 45, 56, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 55,
+ 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 54, 128, 77, 79, 68, 73, 70, 73,
+ 69, 82, 45, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 52, 128, 77, 79,
+ 68, 73, 70, 73, 69, 82, 45, 51, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45,
+ 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 54, 128, 77, 79, 68, 73,
+ 70, 73, 69, 82, 45, 49, 53, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49,
+ 52, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 51, 128, 77, 79, 68, 73,
+ 70, 73, 69, 82, 45, 49, 50, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49,
+ 49, 128, 77, 79, 68, 73, 70, 73, 69, 82, 45, 49, 48, 128, 77, 79, 68, 73,
+ 70, 73, 69, 82, 128, 77, 79, 68, 201, 77, 79, 68, 69, 83, 84, 89, 128,
+ 77, 79, 68, 69, 82, 206, 77, 79, 68, 69, 77, 128, 77, 79, 68, 69, 76, 83,
+ 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 69, 128, 77, 79, 66, 73, 76,
+ 197, 77, 79, 65, 128, 77, 79, 45, 54, 128, 77, 79, 45, 53, 128, 77, 79,
+ 45, 52, 128, 77, 79, 45, 51, 128, 77, 207, 77, 78, 89, 65, 205, 77, 78,
+ 65, 83, 128, 77, 77, 83, 80, 128, 77, 77, 128, 77, 205, 77, 76, 65, 128,
+ 77, 76, 128, 77, 75, 80, 65, 82, 65, 209, 77, 73, 88, 128, 77, 73, 84,
+ 128, 77, 73, 83, 82, 65, 128, 77, 73, 82, 82, 79, 82, 128, 77, 73, 82,
+ 73, 66, 65, 65, 82, 85, 128, 77, 73, 82, 73, 128, 77, 73, 82, 69, 68,
+ 128, 77, 73, 80, 128, 77, 73, 78, 89, 128, 77, 73, 78, 85, 83, 45, 79,
+ 82, 45, 80, 76, 85, 211, 77, 73, 78, 85, 83, 128, 77, 73, 78, 73, 83, 84,
+ 69, 82, 128, 77, 73, 78, 73, 77, 73, 90, 69, 128, 77, 73, 78, 73, 77, 65,
+ 128, 77, 73, 78, 73, 68, 73, 83, 67, 128, 77, 73, 78, 73, 66, 85, 83,
+ 128, 77, 73, 77, 69, 128, 77, 73, 77, 128, 77, 73, 76, 76, 73, 79, 78,
+ 83, 128, 77, 73, 76, 76, 73, 79, 78, 211, 77, 73, 76, 76, 69, 84, 128,
+ 77, 73, 76, 76, 197, 77, 73, 76, 204, 77, 73, 76, 75, 217, 77, 73, 76,
+ 75, 128, 77, 73, 76, 73, 84, 65, 82, 217, 77, 73, 76, 128, 77, 73, 75,
+ 85, 82, 79, 78, 128, 77, 73, 75, 82, 79, 206, 77, 73, 75, 82, 73, 128,
+ 77, 73, 73, 78, 128, 77, 73, 73, 77, 128, 77, 73, 73, 128, 77, 73, 199,
+ 77, 73, 69, 88, 128, 77, 73, 69, 85, 77, 45, 84, 73, 75, 69, 85, 84, 128,
+ 77, 73, 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 77, 73,
+ 69, 85, 77, 45, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 77, 73, 69,
+ 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69,
+ 85, 80, 45, 83, 73, 79, 83, 128, 77, 73, 69, 85, 77, 45, 80, 73, 69, 85,
+ 80, 128, 77, 73, 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 77, 73,
+ 69, 85, 77, 45, 78, 73, 69, 85, 78, 128, 77, 73, 69, 85, 77, 45, 67, 73,
+ 69, 85, 67, 128, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128,
+ 77, 73, 69, 85, 205, 77, 73, 69, 80, 128, 77, 73, 69, 69, 128, 77, 73,
+ 69, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 68, 68, 76, 69, 45, 87, 69,
+ 76, 83, 200, 77, 73, 68, 68, 76, 69, 128, 77, 73, 68, 45, 76, 69, 86, 69,
+ 204, 77, 73, 196, 77, 73, 67, 82, 79, 83, 67, 79, 80, 69, 128, 77, 73,
+ 67, 82, 79, 80, 72, 79, 78, 69, 128, 77, 73, 67, 82, 79, 66, 69, 128, 77,
+ 73, 67, 82, 207, 77, 73, 67, 210, 77, 73, 45, 55, 128, 77, 73, 45, 54,
+ 128, 77, 73, 45, 53, 128, 77, 73, 45, 52, 128, 77, 73, 45, 51, 128, 77,
+ 73, 45, 50, 128, 77, 73, 45, 49, 128, 77, 72, 90, 128, 77, 72, 65, 128,
+ 77, 72, 128, 77, 71, 85, 88, 128, 77, 71, 85, 84, 128, 77, 71, 85, 82,
+ 88, 128, 77, 71, 85, 82, 128, 77, 71, 85, 80, 128, 77, 71, 85, 79, 88,
+ 128, 77, 71, 85, 79, 80, 128, 77, 71, 85, 79, 128, 77, 71, 85, 128, 77,
+ 71, 79, 88, 128, 77, 71, 79, 84, 128, 77, 71, 79, 80, 128, 77, 71, 79,
+ 128, 77, 71, 207, 77, 71, 73, 69, 88, 128, 77, 71, 73, 69, 128, 77, 71,
+ 69, 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 128, 77, 71, 66, 85, 128,
+ 77, 71, 66, 79, 79, 128, 77, 71, 66, 79, 70, 85, 77, 128, 77, 71, 66, 79,
+ 128, 77, 71, 66, 73, 128, 77, 71, 66, 69, 85, 78, 128, 77, 71, 66, 69,
+ 78, 128, 77, 71, 66, 69, 69, 128, 77, 71, 66, 69, 128, 77, 71, 66, 65,
+ 83, 65, 81, 128, 77, 71, 66, 65, 83, 65, 128, 77, 71, 65, 88, 128, 77,
+ 71, 65, 84, 128, 77, 71, 65, 80, 128, 77, 71, 65, 128, 77, 71, 128, 77,
+ 70, 79, 78, 128, 77, 70, 79, 206, 77, 70, 79, 128, 77, 70, 73, 89, 65,
+ 81, 128, 77, 70, 73, 69, 69, 128, 77, 70, 69, 85, 84, 128, 77, 70, 69,
+ 85, 81, 128, 77, 70, 69, 85, 65, 69, 128, 77, 70, 65, 65, 128, 77, 69,
+ 90, 90, 79, 128, 77, 69, 88, 128, 77, 69, 85, 212, 77, 69, 85, 81, 128,
+ 77, 69, 85, 78, 74, 79, 77, 78, 68, 69, 85, 81, 128, 77, 69, 85, 78, 128,
+ 77, 69, 84, 82, 79, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 69, 84, 82,
+ 73, 65, 128, 77, 69, 84, 82, 69, 84, 69, 211, 77, 69, 84, 79, 66, 69, 76,
+ 85, 83, 128, 77, 69, 84, 69, 75, 128, 77, 69, 84, 69, 71, 128, 77, 69,
+ 84, 65, 76, 128, 77, 69, 84, 193, 77, 69, 83, 83, 69, 78, 73, 65, 206,
+ 77, 69, 83, 83, 65, 71, 69, 128, 77, 69, 83, 83, 65, 71, 197, 77, 69, 83,
+ 79, 128, 77, 69, 83, 73, 128, 77, 69, 83, 72, 128, 77, 69, 82, 80, 69,
+ 82, 83, 79, 78, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 82, 75, 72,
+ 193, 77, 69, 82, 73, 68, 73, 65, 78, 83, 128, 77, 69, 82, 73, 128, 77,
+ 69, 82, 71, 69, 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 82, 67, 85,
+ 82, 217, 77, 69, 78, 79, 82, 65, 200, 77, 69, 78, 79, 69, 128, 77, 69,
+ 78, 68, 85, 84, 128, 77, 69, 78, 128, 77, 69, 77, 79, 128, 77, 69, 77,
+ 66, 69, 82, 83, 72, 73, 80, 128, 77, 69, 77, 66, 69, 82, 128, 77, 69, 77,
+ 66, 69, 210, 77, 69, 77, 45, 81, 79, 80, 72, 128, 77, 69, 77, 128, 77,
+ 69, 205, 77, 69, 76, 79, 68, 73, 195, 77, 69, 76, 73, 75, 128, 77, 69,
+ 73, 90, 73, 128, 77, 69, 71, 65, 84, 79, 78, 128, 77, 69, 71, 65, 80, 72,
+ 79, 78, 69, 128, 77, 69, 71, 65, 76, 73, 128, 77, 69, 69, 84, 79, 82, 85,
+ 128, 77, 69, 69, 84, 69, 201, 77, 69, 69, 84, 128, 77, 69, 69, 77, 85,
+ 128, 77, 69, 69, 77, 128, 77, 69, 69, 202, 77, 69, 69, 69, 69, 128, 77,
+ 69, 68, 73, 85, 77, 128, 77, 69, 68, 73, 85, 205, 77, 69, 68, 73, 69, 86,
+ 65, 204, 77, 69, 68, 73, 67, 73, 78, 69, 128, 77, 69, 68, 73, 67, 65,
+ 204, 77, 69, 68, 73, 65, 204, 77, 69, 68, 69, 70, 65, 73, 68, 82, 73,
+ 206, 77, 69, 68, 65, 76, 128, 77, 69, 67, 72, 65, 78, 73, 67, 65, 204,
+ 77, 69, 65, 84, 128, 77, 69, 65, 212, 77, 69, 65, 83, 85, 82, 69, 196,
+ 77, 69, 65, 83, 85, 82, 69, 128, 77, 69, 65, 83, 85, 82, 197, 77, 69, 45,
+ 77, 65, 128, 77, 69, 45, 50, 128, 77, 69, 45, 49, 128, 77, 68, 85, 206,
+ 77, 196, 77, 67, 72, 213, 77, 67, 72, 65, 206, 77, 195, 77, 66, 85, 85,
+ 128, 77, 66, 85, 79, 81, 128, 77, 66, 85, 79, 128, 77, 66, 85, 69, 128,
+ 77, 66, 85, 65, 69, 77, 128, 77, 66, 85, 65, 69, 128, 77, 66, 79, 79,
+ 128, 77, 66, 79, 128, 77, 66, 73, 84, 128, 77, 66, 73, 212, 77, 66, 73,
+ 82, 73, 69, 69, 78, 128, 77, 66, 73, 128, 77, 66, 69, 85, 88, 128, 77,
+ 66, 69, 85, 82, 73, 128, 77, 66, 69, 85, 77, 128, 77, 66, 69, 82, 65, 69,
+ 128, 77, 66, 69, 78, 128, 77, 66, 69, 69, 75, 69, 69, 84, 128, 77, 66,
+ 69, 69, 128, 77, 66, 69, 128, 77, 66, 65, 81, 128, 77, 66, 65, 78, 89,
+ 73, 128, 77, 66, 65, 65, 82, 65, 69, 128, 77, 66, 65, 65, 75, 69, 84,
+ 128, 77, 66, 65, 65, 128, 77, 66, 65, 193, 77, 66, 193, 77, 66, 52, 128,
+ 77, 66, 51, 128, 77, 66, 50, 128, 77, 65, 89, 69, 203, 77, 65, 89, 65,
+ 78, 78, 65, 128, 77, 65, 89, 65, 206, 77, 65, 89, 128, 77, 65, 88, 73,
+ 77, 73, 90, 69, 128, 77, 65, 88, 73, 77, 65, 128, 77, 65, 88, 128, 77,
+ 65, 85, 128, 77, 65, 84, 84, 79, 67, 75, 128, 77, 65, 84, 82, 73, 88,
+ 128, 77, 65, 84, 69, 82, 73, 65, 76, 83, 128, 77, 65, 84, 128, 77, 65,
+ 83, 213, 77, 65, 83, 83, 73, 78, 71, 128, 77, 65, 83, 83, 65, 71, 69,
+ 128, 77, 65, 83, 79, 82, 193, 77, 65, 83, 75, 128, 77, 65, 83, 203, 77,
+ 65, 83, 72, 70, 65, 65, 84, 128, 77, 65, 83, 72, 50, 128, 77, 65, 83, 67,
+ 85, 76, 73, 78, 197, 77, 65, 83, 65, 82, 65, 205, 77, 65, 82, 89, 128,
+ 77, 65, 82, 87, 65, 82, 201, 77, 65, 82, 85, 75, 85, 128, 77, 65, 82, 84,
+ 89, 82, 73, 193, 77, 65, 82, 84, 73, 65, 204, 77, 65, 82, 82, 89, 73, 78,
+ 199, 77, 65, 82, 82, 73, 65, 71, 197, 77, 65, 82, 82, 65, 84, 65, 78,
+ 128, 77, 65, 82, 75, 211, 77, 65, 82, 75, 69, 82, 128, 77, 65, 82, 75,
+ 45, 52, 128, 77, 65, 82, 75, 45, 51, 128, 77, 65, 82, 75, 45, 50, 128,
+ 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 69, 128, 77, 65, 82, 67, 72, 69,
+ 206, 77, 65, 82, 67, 72, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83, 84, 65,
+ 67, 67, 65, 84, 79, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, 82, 67,
+ 65, 83, 73, 84, 69, 128, 77, 65, 82, 66, 85, 84, 65, 128, 77, 65, 82, 66,
+ 85, 84, 193, 77, 65, 82, 128, 77, 65, 81, 65, 70, 128, 77, 65, 81, 128,
+ 77, 65, 80, 76, 197, 77, 65, 80, 73, 81, 128, 77, 65, 208, 77, 65, 79,
+ 128, 77, 65, 78, 85, 65, 204, 77, 65, 78, 84, 69, 76, 80, 73, 69, 67,
+ 197, 77, 65, 78, 83, 89, 79, 78, 128, 77, 65, 78, 83, 85, 65, 69, 128,
+ 77, 65, 78, 78, 65, 218, 77, 65, 78, 78, 65, 128, 77, 65, 78, 73, 67, 72,
+ 65, 69, 65, 206, 77, 65, 78, 71, 79, 128, 77, 65, 78, 71, 65, 76, 65, 77,
+ 128, 77, 65, 78, 68, 65, 82, 73, 78, 128, 77, 65, 78, 68, 65, 73, 76, 73,
+ 78, 199, 77, 65, 78, 68, 65, 73, 195, 77, 65, 78, 67, 72, 213, 77, 65,
+ 78, 65, 212, 77, 65, 78, 65, 67, 76, 69, 83, 128, 77, 65, 77, 77, 79, 84,
+ 72, 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 76, 69, 69, 82, 73, 128,
+ 77, 65, 76, 197, 77, 65, 76, 65, 75, 79, 206, 77, 65, 75, 83, 85, 82, 65,
+ 128, 77, 65, 75, 83, 85, 82, 193, 77, 65, 75, 65, 83, 65, 210, 77, 65,
+ 73, 90, 69, 128, 77, 65, 73, 89, 65, 77, 79, 75, 128, 77, 65, 73, 84, 65,
+ 73, 75, 72, 85, 128, 77, 65, 73, 82, 85, 128, 77, 65, 73, 77, 85, 65, 78,
+ 128, 77, 65, 73, 77, 65, 76, 65, 73, 128, 77, 65, 73, 76, 66, 79, 216,
+ 77, 65, 73, 75, 85, 82, 79, 128, 77, 65, 73, 68, 69, 78, 128, 77, 65, 73,
+ 128, 77, 65, 72, 74, 79, 78, 199, 77, 65, 72, 72, 65, 128, 77, 65, 72,
+ 65, 80, 82, 65, 78, 65, 128, 77, 65, 72, 65, 80, 65, 75, 72, 128, 77, 65,
+ 72, 65, 74, 65, 78, 201, 77, 65, 72, 65, 65, 80, 82, 65, 65, 78, 193, 77,
+ 65, 72, 128, 77, 65, 71, 78, 73, 70, 89, 73, 78, 199, 77, 65, 71, 78, 69,
+ 84, 128, 77, 65, 71, 73, 195, 77, 65, 71, 69, 128, 77, 65, 69, 83, 73,
+ 128, 77, 65, 69, 78, 89, 73, 128, 77, 65, 69, 78, 74, 69, 84, 128, 77,
+ 65, 69, 77, 86, 69, 85, 88, 128, 77, 65, 69, 77, 75, 80, 69, 78, 128, 77,
+ 65, 69, 77, 71, 66, 73, 69, 69, 128, 77, 65, 69, 77, 66, 71, 66, 73, 69,
+ 69, 128, 77, 65, 69, 77, 66, 65, 128, 77, 65, 69, 77, 128, 77, 65, 69,
+ 76, 69, 69, 128, 77, 65, 69, 75, 69, 85, 80, 128, 77, 65, 68, 89, 65,
+ 128, 77, 65, 68, 85, 128, 77, 65, 68, 68, 65, 72, 128, 77, 65, 68, 68,
+ 65, 200, 77, 65, 68, 68, 65, 128, 77, 65, 68, 68, 193, 77, 65, 67, 82,
+ 79, 78, 45, 71, 82, 65, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 66, 82,
+ 69, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 65, 67, 85, 84, 69, 128, 77,
+ 65, 67, 82, 79, 78, 128, 77, 65, 67, 82, 79, 206, 77, 65, 67, 72, 73, 78,
+ 69, 128, 77, 65, 65, 89, 89, 65, 65, 128, 77, 65, 65, 73, 128, 77, 65,
+ 65, 128, 77, 65, 50, 128, 77, 65, 45, 55, 128, 77, 65, 45, 54, 128, 77,
+ 65, 45, 53, 128, 77, 65, 45, 52, 128, 77, 65, 45, 51, 128, 77, 65, 45,
+ 50, 128, 77, 65, 45, 49, 128, 77, 49, 57, 183, 77, 49, 57, 182, 77, 49,
+ 57, 181, 77, 49, 57, 180, 77, 49, 57, 179, 77, 49, 57, 178, 77, 49, 57,
+ 177, 77, 49, 57, 176, 77, 49, 56, 185, 77, 49, 56, 184, 77, 49, 56, 183,
+ 77, 49, 56, 182, 77, 49, 56, 181, 77, 49, 56, 180, 77, 49, 56, 179, 77,
+ 49, 56, 178, 77, 49, 56, 177, 77, 49, 56, 176, 77, 49, 55, 185, 77, 49,
+ 55, 184, 77, 49, 55, 183, 77, 49, 55, 182, 77, 49, 55, 181, 77, 49, 55,
+ 180, 77, 49, 55, 179, 77, 49, 55, 178, 77, 49, 55, 177, 77, 49, 55, 176,
+ 77, 49, 54, 185, 77, 49, 54, 184, 77, 49, 54, 183, 77, 49, 54, 182, 77,
+ 49, 54, 181, 77, 49, 54, 180, 77, 49, 54, 179, 77, 49, 54, 178, 77, 49,
+ 54, 177, 77, 49, 54, 176, 77, 49, 53, 185, 77, 49, 53, 184, 77, 49, 53,
+ 183, 77, 49, 53, 182, 77, 49, 53, 181, 77, 49, 53, 180, 77, 49, 53, 179,
+ 77, 49, 53, 178, 77, 49, 53, 177, 77, 49, 53, 176, 77, 49, 52, 185, 77,
+ 49, 52, 184, 77, 49, 52, 183, 77, 49, 52, 182, 77, 49, 52, 181, 77, 49,
+ 52, 180, 77, 49, 52, 179, 77, 49, 52, 178, 77, 49, 52, 177, 77, 49, 52,
+ 176, 77, 49, 51, 185, 77, 49, 51, 184, 77, 49, 51, 183, 77, 49, 51, 182,
+ 77, 49, 51, 181, 77, 49, 51, 180, 77, 49, 51, 179, 77, 49, 51, 178, 77,
+ 49, 51, 177, 77, 49, 51, 176, 77, 49, 50, 185, 77, 49, 50, 184, 77, 49,
+ 50, 183, 77, 49, 50, 182, 77, 49, 50, 181, 77, 49, 50, 180, 77, 49, 50,
+ 179, 77, 49, 50, 178, 77, 49, 50, 177, 77, 49, 50, 176, 77, 49, 49, 185,
+ 77, 49, 49, 184, 77, 49, 49, 183, 77, 49, 49, 182, 77, 49, 49, 181, 77,
+ 49, 49, 180, 77, 49, 49, 179, 77, 49, 49, 178, 77, 49, 49, 177, 77, 49,
+ 49, 176, 77, 49, 48, 185, 77, 49, 48, 184, 77, 49, 48, 183, 77, 49, 48,
+ 182, 77, 49, 48, 181, 77, 49, 48, 180, 77, 49, 48, 179, 77, 49, 48, 178,
+ 77, 49, 48, 177, 77, 49, 48, 176, 77, 48, 57, 185, 77, 48, 57, 184, 77,
+ 48, 57, 183, 77, 48, 57, 182, 77, 48, 57, 181, 77, 48, 57, 180, 77, 48,
+ 57, 179, 77, 48, 57, 178, 77, 48, 57, 177, 77, 48, 57, 176, 77, 48, 56,
+ 185, 77, 48, 56, 184, 77, 48, 56, 183, 77, 48, 56, 182, 77, 48, 56, 181,
+ 77, 48, 56, 180, 77, 48, 56, 179, 77, 48, 56, 178, 77, 48, 56, 177, 77,
+ 48, 56, 176, 77, 48, 55, 185, 77, 48, 55, 184, 77, 48, 55, 183, 77, 48,
+ 55, 182, 77, 48, 55, 181, 77, 48, 55, 180, 77, 48, 55, 179, 77, 48, 55,
+ 178, 77, 48, 55, 177, 77, 48, 55, 176, 77, 48, 54, 185, 77, 48, 54, 184,
+ 77, 48, 54, 183, 77, 48, 54, 182, 77, 48, 54, 181, 77, 48, 54, 180, 77,
+ 48, 54, 179, 77, 48, 54, 178, 77, 48, 54, 177, 77, 48, 54, 176, 77, 48,
+ 53, 185, 77, 48, 53, 184, 77, 48, 53, 183, 77, 48, 53, 182, 77, 48, 53,
+ 181, 77, 48, 53, 180, 77, 48, 53, 179, 77, 48, 53, 178, 77, 48, 53, 177,
+ 77, 48, 53, 176, 77, 48, 52, 185, 77, 48, 52, 184, 77, 48, 52, 183, 77,
+ 48, 52, 182, 77, 48, 52, 181, 77, 48, 52, 52, 128, 77, 48, 52, 180, 77,
+ 48, 52, 51, 128, 77, 48, 52, 179, 77, 48, 52, 50, 128, 77, 48, 52, 178,
+ 77, 48, 52, 49, 128, 77, 48, 52, 177, 77, 48, 52, 48, 65, 128, 77, 48,
+ 52, 48, 128, 77, 48, 52, 176, 77, 48, 51, 57, 128, 77, 48, 51, 185, 77,
+ 48, 51, 56, 128, 77, 48, 51, 184, 77, 48, 51, 55, 128, 77, 48, 51, 183,
+ 77, 48, 51, 54, 128, 77, 48, 51, 182, 77, 48, 51, 53, 128, 77, 48, 51,
+ 181, 77, 48, 51, 52, 128, 77, 48, 51, 180, 77, 48, 51, 51, 66, 128, 77,
+ 48, 51, 51, 65, 128, 77, 48, 51, 51, 128, 77, 48, 51, 179, 77, 48, 51,
+ 50, 128, 77, 48, 51, 178, 77, 48, 51, 49, 65, 128, 77, 48, 51, 49, 128,
+ 77, 48, 51, 177, 77, 48, 51, 48, 128, 77, 48, 51, 176, 77, 48, 50, 57,
+ 128, 77, 48, 50, 185, 77, 48, 50, 56, 65, 128, 77, 48, 50, 56, 128, 77,
+ 48, 50, 184, 77, 48, 50, 55, 128, 77, 48, 50, 183, 77, 48, 50, 54, 128,
+ 77, 48, 50, 182, 77, 48, 50, 53, 128, 77, 48, 50, 181, 77, 48, 50, 52,
+ 65, 128, 77, 48, 50, 52, 128, 77, 48, 50, 180, 77, 48, 50, 51, 128, 77,
+ 48, 50, 179, 77, 48, 50, 50, 65, 128, 77, 48, 50, 50, 128, 77, 48, 50,
+ 178, 77, 48, 50, 49, 128, 77, 48, 50, 177, 77, 48, 50, 48, 128, 77, 48,
+ 50, 176, 77, 48, 49, 57, 128, 77, 48, 49, 185, 77, 48, 49, 56, 128, 77,
+ 48, 49, 184, 77, 48, 49, 55, 65, 128, 77, 48, 49, 55, 128, 77, 48, 49,
+ 183, 77, 48, 49, 54, 65, 128, 77, 48, 49, 54, 128, 77, 48, 49, 182, 77,
+ 48, 49, 53, 65, 128, 77, 48, 49, 53, 128, 77, 48, 49, 181, 77, 48, 49,
+ 52, 128, 77, 48, 49, 180, 77, 48, 49, 51, 128, 77, 48, 49, 179, 77, 48,
+ 49, 50, 72, 128, 77, 48, 49, 50, 71, 128, 77, 48, 49, 50, 70, 128, 77,
+ 48, 49, 50, 69, 128, 77, 48, 49, 50, 68, 128, 77, 48, 49, 50, 67, 128,
+ 77, 48, 49, 50, 66, 128, 77, 48, 49, 50, 65, 128, 77, 48, 49, 50, 128,
+ 77, 48, 49, 178, 77, 48, 49, 49, 128, 77, 48, 49, 177, 77, 48, 49, 48,
+ 65, 128, 77, 48, 49, 48, 128, 77, 48, 49, 176, 77, 48, 48, 57, 128, 77,
+ 48, 48, 185, 77, 48, 48, 56, 128, 77, 48, 48, 184, 77, 48, 48, 55, 128,
+ 77, 48, 48, 183, 77, 48, 48, 54, 128, 77, 48, 48, 182, 77, 48, 48, 53,
+ 128, 77, 48, 48, 181, 77, 48, 48, 52, 128, 77, 48, 48, 180, 77, 48, 48,
+ 51, 65, 128, 77, 48, 48, 51, 128, 77, 48, 48, 179, 77, 48, 48, 50, 128,
+ 77, 48, 48, 178, 77, 48, 48, 49, 66, 128, 77, 48, 48, 49, 65, 128, 77,
+ 48, 48, 49, 128, 77, 48, 48, 177, 76, 218, 76, 89, 89, 128, 76, 89, 88,
+ 128, 76, 89, 84, 128, 76, 89, 82, 88, 128, 76, 89, 82, 128, 76, 89, 80,
+ 128, 76, 89, 73, 84, 128, 76, 89, 73, 78, 199, 76, 89, 68, 73, 65, 206,
+ 76, 89, 67, 73, 65, 206, 76, 88, 128, 76, 87, 79, 79, 128, 76, 87, 79,
+ 128, 76, 87, 73, 73, 128, 76, 87, 73, 128, 76, 87, 69, 128, 76, 87, 65,
+ 65, 128, 76, 87, 65, 128, 76, 85, 88, 128, 76, 85, 85, 128, 76, 85, 84,
+ 128, 76, 85, 82, 88, 128, 76, 85, 80, 128, 76, 85, 79, 88, 128, 76, 85,
+ 79, 84, 128, 76, 85, 79, 80, 128, 76, 85, 79, 128, 76, 85, 78, 71, 83,
+ 73, 128, 76, 85, 78, 71, 83, 128, 76, 85, 78, 65, 84, 197, 76, 85, 205,
+ 76, 85, 76, 128, 76, 85, 73, 83, 128, 76, 85, 72, 85, 82, 128, 76, 85,
+ 72, 128, 76, 85, 200, 76, 85, 71, 71, 65, 71, 69, 128, 76, 85, 71, 65,
+ 76, 128, 76, 85, 71, 65, 204, 76, 85, 69, 128, 76, 85, 197, 76, 85, 66,
+ 128, 76, 85, 65, 69, 80, 128, 76, 85, 51, 128, 76, 85, 50, 128, 76, 85,
+ 178, 76, 82, 79, 128, 76, 82, 77, 128, 76, 82, 73, 128, 76, 82, 69, 128,
+ 76, 79, 90, 69, 78, 71, 69, 128, 76, 79, 90, 69, 78, 71, 197, 76, 79, 88,
+ 128, 76, 79, 87, 69, 82, 69, 196, 76, 79, 87, 45, 82, 69, 86, 69, 82, 83,
+ 69, 68, 45, 185, 76, 79, 87, 45, 77, 73, 196, 76, 79, 87, 45, 70, 65, 76,
+ 76, 73, 78, 199, 76, 79, 87, 45, 185, 76, 79, 86, 197, 76, 79, 85, 82,
+ 69, 128, 76, 79, 85, 68, 83, 80, 69, 65, 75, 69, 82, 128, 76, 79, 85, 68,
+ 76, 217, 76, 79, 84, 85, 83, 128, 76, 79, 84, 85, 211, 76, 79, 84, 73,
+ 79, 206, 76, 79, 84, 128, 76, 79, 83, 83, 76, 69, 83, 83, 128, 76, 79,
+ 82, 82, 89, 128, 76, 79, 82, 82, 65, 73, 78, 69, 128, 76, 79, 81, 128,
+ 76, 79, 80, 128, 76, 79, 79, 84, 128, 76, 79, 79, 80, 69, 196, 76, 79,
+ 79, 80, 128, 76, 79, 79, 208, 76, 79, 79, 78, 128, 76, 79, 79, 203, 76,
+ 79, 79, 128, 76, 79, 78, 83, 85, 77, 128, 76, 79, 78, 71, 65, 128, 76,
+ 79, 78, 71, 193, 76, 79, 78, 71, 45, 76, 69, 71, 71, 69, 196, 76, 79, 78,
+ 71, 45, 66, 82, 65, 78, 67, 72, 45, 89, 82, 128, 76, 79, 78, 71, 45, 66,
+ 82, 65, 78, 67, 72, 45, 83, 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78,
+ 67, 72, 45, 79, 83, 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45,
+ 77, 65, 68, 210, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 72, 65,
+ 71, 65, 76, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210,
+ 76, 79, 77, 77, 65, 69, 128, 76, 79, 77, 128, 76, 79, 205, 76, 79, 76,
+ 76, 73, 80, 79, 80, 128, 76, 79, 76, 76, 128, 76, 79, 71, 210, 76, 79,
+ 71, 79, 84, 89, 80, 197, 76, 79, 71, 79, 71, 82, 65, 205, 76, 79, 71,
+ 128, 76, 79, 68, 69, 83, 84, 79, 78, 69, 128, 76, 79, 67, 79, 77, 79, 84,
+ 73, 86, 69, 128, 76, 79, 67, 75, 73, 78, 71, 45, 83, 72, 73, 70, 212, 76,
+ 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 67, 65, 84, 73, 79, 78, 45, 87,
+ 65, 76, 76, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 45, 70,
+ 76, 79, 79, 82, 80, 76, 65, 78, 197, 76, 79, 67, 65, 84, 73, 79, 78, 128,
+ 76, 79, 67, 65, 84, 73, 79, 206, 76, 79, 66, 83, 84, 69, 82, 128, 76, 79,
+ 65, 128, 76, 78, 128, 76, 76, 85, 85, 128, 76, 76, 79, 79, 128, 76, 76,
+ 76, 85, 85, 128, 76, 76, 76, 85, 128, 76, 76, 76, 79, 79, 128, 76, 76,
+ 76, 79, 128, 76, 76, 76, 73, 73, 128, 76, 76, 76, 73, 128, 76, 76, 76,
+ 69, 69, 128, 76, 76, 76, 69, 128, 76, 76, 76, 65, 85, 128, 76, 76, 76,
+ 65, 73, 128, 76, 76, 76, 65, 65, 128, 76, 76, 76, 65, 128, 76, 76, 76,
+ 128, 76, 76, 72, 65, 128, 76, 76, 65, 77, 65, 128, 76, 74, 85, 68, 73,
+ 74, 69, 128, 76, 74, 69, 128, 76, 74, 128, 76, 73, 90, 65, 82, 68, 128,
+ 76, 73, 88, 128, 76, 73, 87, 78, 128, 76, 73, 86, 82, 197, 76, 73, 84,
+ 84, 76, 69, 128, 76, 73, 84, 84, 76, 197, 76, 73, 84, 84, 69, 210, 76,
+ 73, 84, 82, 193, 76, 73, 84, 200, 76, 73, 83, 213, 76, 73, 83, 128, 76,
+ 73, 82, 193, 76, 73, 81, 85, 73, 196, 76, 73, 81, 128, 76, 73, 80, 83,
+ 84, 73, 67, 75, 128, 76, 73, 80, 211, 76, 73, 208, 76, 73, 78, 75, 73,
+ 78, 199, 76, 73, 78, 75, 69, 196, 76, 73, 78, 203, 76, 73, 78, 71, 83,
+ 65, 128, 76, 73, 78, 69, 83, 128, 76, 73, 78, 69, 211, 76, 73, 78, 69,
+ 45, 57, 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69, 45, 51, 128,
+ 76, 73, 78, 69, 45, 49, 128, 76, 73, 77, 77, 85, 52, 128, 76, 73, 77, 77,
+ 85, 50, 128, 76, 73, 77, 77, 85, 128, 76, 73, 77, 77, 213, 76, 73, 77,
+ 73, 84, 69, 196, 76, 73, 77, 73, 84, 65, 84, 73, 79, 78, 128, 76, 73, 77,
+ 73, 84, 128, 76, 73, 77, 69, 128, 76, 73, 77, 66, 213, 76, 73, 77, 66,
+ 211, 76, 73, 77, 194, 76, 73, 76, 89, 128, 76, 73, 76, 73, 84, 72, 128,
+ 76, 73, 76, 128, 76, 73, 71, 72, 84, 78, 73, 78, 71, 128, 76, 73, 71, 72,
+ 84, 78, 73, 78, 199, 76, 73, 71, 72, 84, 72, 79, 85, 83, 69, 128, 76, 73,
+ 71, 72, 84, 128, 76, 73, 71, 65, 84, 73, 78, 199, 76, 73, 70, 84, 69, 82,
+ 128, 76, 73, 70, 69, 128, 76, 73, 69, 88, 128, 76, 73, 69, 84, 128, 76,
+ 73, 69, 80, 128, 76, 73, 69, 69, 128, 76, 73, 69, 128, 76, 73, 68, 128,
+ 76, 73, 67, 75, 73, 78, 199, 76, 73, 66, 82, 65, 128, 76, 73, 66, 69, 82,
+ 84, 89, 128, 76, 73, 65, 66, 73, 76, 73, 84, 217, 76, 72, 73, 73, 128,
+ 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 72, 65, 199, 76, 72, 65, 65,
+ 128, 76, 72, 128, 76, 69, 90, 72, 128, 76, 69, 88, 128, 76, 69, 86, 73,
+ 84, 65, 84, 73, 78, 71, 128, 76, 69, 85, 77, 128, 76, 69, 85, 65, 69, 80,
+ 128, 76, 69, 85, 65, 69, 77, 128, 76, 69, 85, 128, 76, 69, 213, 76, 69,
+ 84, 84, 69, 82, 83, 128, 76, 69, 84, 84, 69, 82, 128, 76, 69, 212, 76,
+ 69, 83, 83, 69, 210, 76, 69, 83, 83, 45, 84, 72, 65, 78, 128, 76, 69, 83,
+ 83, 45, 84, 72, 65, 206, 76, 69, 83, 72, 128, 76, 69, 80, 67, 72, 193,
+ 76, 69, 80, 128, 76, 69, 79, 80, 65, 82, 68, 128, 76, 69, 79, 128, 76,
+ 69, 78, 84, 73, 67, 85, 76, 65, 210, 76, 69, 78, 73, 83, 128, 76, 69, 78,
+ 73, 211, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, 76, 69, 78, 71, 84,
+ 72, 45, 55, 128, 76, 69, 78, 71, 84, 72, 45, 54, 128, 76, 69, 78, 71, 84,
+ 72, 45, 53, 128, 76, 69, 78, 71, 84, 72, 45, 52, 128, 76, 69, 78, 71, 84,
+ 72, 45, 51, 128, 76, 69, 78, 71, 84, 72, 45, 50, 128, 76, 69, 78, 71, 84,
+ 72, 45, 49, 128, 76, 69, 78, 71, 84, 200, 76, 69, 78, 71, 65, 128, 76,
+ 69, 78, 71, 193, 76, 69, 77, 79, 78, 128, 76, 69, 77, 79, 73, 128, 76,
+ 69, 76, 69, 84, 128, 76, 69, 76, 69, 212, 76, 69, 203, 76, 69, 73, 77,
+ 77, 65, 128, 76, 69, 73, 77, 77, 193, 76, 69, 73, 128, 76, 69, 71, 83,
+ 128, 76, 69, 71, 73, 79, 78, 128, 76, 69, 71, 69, 84, 79, 211, 76, 69,
+ 71, 128, 76, 69, 199, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 76, 69,
+ 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 76, 69, 70, 84, 45, 83, 84,
+ 69, 205, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 69, 70, 84, 45, 83, 72,
+ 65, 68, 69, 196, 76, 69, 70, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 76,
+ 69, 70, 84, 45, 76, 73, 71, 72, 84, 69, 196, 76, 69, 70, 84, 45, 72, 65,
+ 78, 68, 69, 196, 76, 69, 70, 84, 45, 72, 65, 78, 196, 76, 69, 70, 84, 45,
+ 70, 65, 67, 73, 78, 199, 76, 69, 70, 84, 128, 76, 69, 69, 82, 65, 69, 87,
+ 65, 128, 76, 69, 69, 75, 128, 76, 69, 69, 69, 69, 128, 76, 69, 68, 71,
+ 69, 82, 128, 76, 69, 65, 84, 72, 69, 82, 128, 76, 69, 65, 78, 73, 78,
+ 199, 76, 69, 65, 70, 217, 76, 69, 65, 70, 128, 76, 69, 65, 198, 76, 69,
+ 65, 68, 69, 82, 128, 76, 69, 65, 196, 76, 68, 65, 78, 128, 76, 68, 50,
+ 128, 76, 67, 201, 76, 67, 197, 76, 65, 90, 217, 76, 65, 89, 65, 78, 78,
+ 65, 128, 76, 65, 88, 128, 76, 65, 87, 128, 76, 65, 215, 76, 65, 85, 76,
+ 65, 128, 76, 65, 85, 75, 65, 218, 76, 65, 85, 74, 128, 76, 65, 85, 71,
+ 72, 73, 78, 71, 128, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 84, 73, 75,
+ 128, 76, 65, 84, 69, 82, 65, 204, 76, 65, 84, 197, 76, 65, 83, 212, 76,
+ 65, 82, 89, 78, 71, 69, 65, 204, 76, 65, 82, 201, 76, 65, 82, 71, 69, 83,
+ 84, 128, 76, 65, 82, 71, 69, 210, 76, 65, 82, 71, 69, 128, 76, 65, 82,
+ 71, 197, 76, 65, 81, 128, 76, 65, 80, 65, 81, 128, 76, 65, 207, 76, 65,
+ 78, 84, 69, 82, 78, 128, 76, 65, 78, 71, 85, 65, 71, 197, 76, 65, 78, 69,
+ 83, 128, 76, 65, 78, 196, 76, 65, 78, 128, 76, 65, 77, 80, 128, 76, 65,
+ 77, 69, 68, 72, 128, 76, 65, 77, 69, 68, 128, 76, 65, 77, 69, 196, 76,
+ 65, 77, 69, 128, 76, 65, 77, 197, 76, 65, 77, 68, 65, 128, 76, 65, 77,
+ 68, 128, 76, 65, 77, 66, 68, 193, 76, 65, 77, 65, 68, 72, 128, 76, 65,
+ 76, 128, 76, 65, 204, 76, 65, 75, 75, 72, 65, 78, 71, 89, 65, 79, 128,
+ 76, 65, 75, 72, 65, 78, 128, 76, 65, 75, 72, 128, 76, 65, 75, 200, 76,
+ 65, 75, 45, 55, 52, 57, 128, 76, 65, 75, 45, 55, 50, 52, 128, 76, 65, 75,
+ 45, 54, 54, 56, 128, 76, 65, 75, 45, 54, 52, 56, 128, 76, 65, 75, 45, 54,
+ 52, 184, 76, 65, 75, 45, 54, 51, 54, 128, 76, 65, 75, 45, 54, 49, 55,
+ 128, 76, 65, 75, 45, 54, 49, 183, 76, 65, 75, 45, 54, 48, 56, 128, 76,
+ 65, 75, 45, 53, 53, 48, 128, 76, 65, 75, 45, 52, 57, 53, 128, 76, 65, 75,
+ 45, 52, 57, 51, 128, 76, 65, 75, 45, 52, 57, 50, 128, 76, 65, 75, 45, 52,
+ 57, 48, 128, 76, 65, 75, 45, 52, 56, 51, 128, 76, 65, 75, 45, 52, 55, 48,
+ 128, 76, 65, 75, 45, 52, 53, 55, 128, 76, 65, 75, 45, 52, 53, 48, 128,
+ 76, 65, 75, 45, 52, 52, 57, 128, 76, 65, 75, 45, 52, 52, 185, 76, 65, 75,
+ 45, 52, 52, 49, 128, 76, 65, 75, 45, 51, 57, 48, 128, 76, 65, 75, 45, 51,
+ 56, 52, 128, 76, 65, 75, 45, 51, 56, 51, 128, 76, 65, 75, 45, 51, 52, 56,
+ 128, 76, 65, 75, 45, 51, 52, 55, 128, 76, 65, 75, 45, 51, 52, 51, 128,
+ 76, 65, 75, 45, 50, 54, 54, 128, 76, 65, 75, 45, 50, 54, 53, 128, 76, 65,
+ 75, 45, 50, 51, 56, 128, 76, 65, 75, 45, 50, 50, 56, 128, 76, 65, 75, 45,
+ 50, 50, 53, 128, 76, 65, 75, 45, 50, 50, 48, 128, 76, 65, 75, 45, 50, 49,
+ 57, 128, 76, 65, 75, 45, 50, 49, 48, 128, 76, 65, 75, 45, 49, 52, 50,
+ 128, 76, 65, 75, 45, 49, 51, 48, 128, 76, 65, 75, 45, 48, 57, 50, 128,
+ 76, 65, 75, 45, 48, 56, 49, 128, 76, 65, 75, 45, 48, 56, 177, 76, 65, 75,
+ 45, 48, 56, 48, 128, 76, 65, 75, 45, 48, 55, 185, 76, 65, 75, 45, 48, 54,
+ 50, 128, 76, 65, 75, 45, 48, 53, 49, 128, 76, 65, 75, 45, 48, 53, 48,
+ 128, 76, 65, 75, 45, 48, 51, 48, 128, 76, 65, 75, 45, 48, 50, 53, 128,
+ 76, 65, 75, 45, 48, 50, 49, 128, 76, 65, 75, 45, 48, 50, 48, 128, 76, 65,
+ 75, 45, 48, 48, 51, 128, 76, 65, 74, 65, 78, 89, 65, 76, 65, 78, 128, 76,
+ 65, 73, 78, 199, 76, 65, 201, 76, 65, 72, 83, 72, 85, 128, 76, 65, 72,
+ 128, 76, 65, 71, 85, 83, 128, 76, 65, 71, 213, 76, 65, 71, 65, 82, 128,
+ 76, 65, 71, 65, 210, 76, 65, 71, 65, 66, 128, 76, 65, 71, 65, 194, 76,
+ 65, 69, 86, 128, 76, 65, 69, 128, 76, 65, 68, 217, 76, 65, 68, 68, 69,
+ 82, 128, 76, 65, 67, 82, 79, 83, 83, 197, 76, 65, 67, 75, 128, 76, 65,
+ 67, 65, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71, 128, 76, 65, 66, 79, 82,
+ 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73, 79, 206, 76, 65, 66, 73,
+ 65, 204, 76, 65, 66, 69, 76, 128, 76, 65, 66, 65, 84, 128, 76, 65, 194,
+ 76, 65, 65, 78, 65, 69, 128, 76, 65, 65, 78, 128, 76, 65, 65, 77, 85,
+ 128, 76, 65, 65, 77, 128, 76, 65, 65, 73, 128, 76, 54, 128, 76, 52, 128,
+ 76, 51, 128, 76, 50, 128, 76, 48, 48, 54, 65, 128, 76, 48, 48, 50, 65,
+ 128, 76, 45, 84, 89, 80, 197, 76, 45, 83, 72, 65, 80, 69, 196, 75, 89,
+ 85, 82, 73, 73, 128, 75, 89, 85, 128, 75, 89, 79, 128, 75, 89, 76, 73,
+ 83, 77, 65, 128, 75, 89, 73, 128, 75, 89, 69, 128, 75, 89, 65, 84, 72,
+ 79, 211, 75, 89, 65, 65, 128, 75, 89, 65, 128, 75, 88, 87, 73, 128, 75,
+ 88, 87, 69, 69, 128, 75, 88, 87, 69, 128, 75, 88, 87, 65, 65, 128, 75,
+ 88, 87, 65, 128, 75, 88, 85, 128, 75, 88, 79, 128, 75, 88, 73, 128, 75,
+ 88, 69, 69, 128, 75, 88, 69, 128, 75, 88, 65, 65, 128, 75, 88, 65, 128,
+ 75, 87, 86, 128, 75, 87, 85, 51, 49, 56, 128, 75, 87, 79, 79, 128, 75,
+ 87, 79, 128, 75, 87, 77, 128, 75, 87, 73, 73, 128, 75, 87, 73, 128, 75,
+ 87, 69, 69, 128, 75, 87, 69, 128, 75, 87, 66, 128, 75, 87, 65, 89, 128,
+ 75, 87, 65, 69, 84, 128, 75, 87, 65, 65, 128, 75, 86, 65, 128, 75, 86,
+ 128, 75, 85, 90, 72, 73, 128, 75, 85, 88, 128, 75, 85, 86, 128, 75, 85,
+ 85, 72, 128, 75, 85, 84, 128, 75, 85, 83, 77, 65, 128, 75, 85, 83, 72,
+ 85, 50, 128, 75, 85, 83, 72, 85, 178, 75, 85, 82, 88, 128, 75, 85, 82,
+ 85, 90, 69, 73, 82, 79, 128, 75, 85, 82, 84, 128, 75, 85, 82, 79, 79, 78,
+ 69, 128, 75, 85, 82, 128, 75, 85, 210, 75, 85, 81, 128, 75, 85, 79, 88,
+ 128, 75, 85, 79, 80, 128, 75, 85, 79, 208, 75, 85, 79, 77, 128, 75, 85,
+ 79, 128, 75, 85, 78, 71, 128, 75, 85, 78, 68, 68, 65, 76, 73, 89, 65,
+ 128, 75, 85, 76, 128, 75, 85, 204, 75, 85, 71, 128, 75, 85, 69, 84, 128,
+ 75, 85, 66, 128, 75, 85, 65, 86, 128, 75, 85, 65, 66, 128, 75, 85, 65,
+ 128, 75, 85, 55, 128, 75, 85, 52, 128, 75, 85, 180, 75, 85, 51, 128, 75,
+ 85, 179, 75, 85, 45, 55, 128, 75, 85, 45, 54, 128, 75, 85, 45, 53, 128,
+ 75, 85, 45, 52, 128, 75, 85, 45, 51, 128, 75, 85, 45, 50, 128, 75, 85,
+ 45, 49, 128, 75, 84, 128, 75, 83, 83, 85, 85, 128, 75, 83, 83, 85, 128,
+ 75, 83, 83, 79, 79, 128, 75, 83, 83, 79, 128, 75, 83, 83, 73, 73, 128,
+ 75, 83, 83, 73, 128, 75, 83, 83, 69, 69, 128, 75, 83, 83, 69, 128, 75,
+ 83, 83, 65, 85, 128, 75, 83, 83, 65, 73, 128, 75, 83, 83, 65, 65, 128,
+ 75, 83, 83, 65, 128, 75, 83, 83, 128, 75, 83, 73, 128, 75, 82, 79, 78,
+ 79, 83, 128, 75, 82, 69, 77, 65, 83, 84, 73, 128, 75, 82, 65, 84, 73, 77,
+ 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, 75, 82, 65, 84, 73, 77, 79, 75,
+ 79, 85, 70, 73, 83, 77, 65, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128,
+ 75, 82, 65, 84, 73, 77, 193, 75, 80, 85, 128, 75, 80, 79, 81, 128, 75,
+ 80, 79, 79, 128, 75, 80, 79, 128, 75, 80, 73, 128, 75, 80, 69, 85, 88,
+ 128, 75, 80, 69, 69, 128, 75, 80, 69, 128, 75, 80, 65, 82, 65, 81, 128,
+ 75, 80, 65, 78, 128, 75, 80, 65, 72, 128, 75, 80, 65, 128, 75, 80, 128,
+ 75, 79, 88, 128, 75, 79, 86, 85, 85, 128, 75, 79, 86, 128, 75, 79, 84,
+ 79, 128, 75, 79, 82, 85, 78, 65, 128, 75, 79, 82, 79, 78, 73, 83, 128,
+ 75, 79, 82, 69, 65, 206, 75, 79, 82, 65, 78, 73, 195, 75, 79, 81, 78, 68,
+ 79, 78, 128, 75, 79, 80, 80, 65, 128, 75, 79, 80, 128, 75, 79, 79, 86,
+ 128, 75, 79, 79, 80, 79, 128, 75, 79, 79, 77, 85, 85, 84, 128, 75, 79,
+ 79, 66, 128, 75, 79, 79, 128, 75, 79, 78, 84, 69, 86, 77, 65, 128, 75,
+ 79, 78, 84, 69, 86, 77, 193, 75, 79, 77, 201, 75, 79, 77, 66, 85, 86, 65,
+ 128, 75, 79, 77, 66, 85, 86, 193, 75, 79, 77, 66, 213, 75, 79, 75, 79,
+ 128, 75, 79, 75, 69, 128, 75, 79, 75, 128, 75, 79, 203, 75, 79, 73, 78,
+ 73, 128, 75, 79, 73, 128, 75, 79, 201, 75, 79, 72, 128, 75, 79, 71, 72,
+ 79, 77, 128, 75, 79, 69, 84, 128, 75, 79, 66, 128, 75, 79, 65, 76, 65,
+ 128, 75, 79, 65, 128, 75, 79, 45, 75, 73, 128, 75, 79, 45, 51, 128, 75,
+ 79, 45, 50, 128, 75, 79, 45, 49, 128, 75, 78, 85, 67, 75, 76, 69, 83,
+ 128, 75, 78, 85, 67, 75, 76, 69, 128, 75, 78, 79, 84, 128, 75, 78, 79,
+ 66, 83, 128, 75, 78, 73, 71, 72, 84, 45, 82, 79, 79, 75, 128, 75, 78, 73,
+ 71, 72, 84, 45, 81, 85, 69, 69, 78, 128, 75, 78, 73, 71, 72, 84, 45, 66,
+ 73, 83, 72, 79, 80, 128, 75, 78, 73, 71, 72, 84, 128, 75, 78, 73, 71, 72,
+ 212, 75, 78, 73, 70, 69, 128, 75, 78, 73, 70, 197, 75, 78, 69, 69, 76,
+ 73, 78, 199, 75, 77, 128, 75, 205, 75, 76, 73, 84, 79, 78, 128, 75, 76,
+ 65, 83, 77, 65, 128, 75, 76, 65, 83, 77, 193, 75, 76, 65, 128, 75, 76,
+ 128, 75, 75, 79, 128, 75, 75, 73, 128, 75, 75, 69, 69, 128, 75, 75, 69,
+ 128, 75, 75, 65, 128, 75, 75, 128, 75, 74, 69, 128, 75, 73, 89, 69, 79,
+ 75, 45, 84, 73, 75, 69, 85, 84, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73,
+ 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 75, 73, 89, 69, 79, 75, 45, 82,
+ 73, 69, 85, 76, 128, 75, 73, 89, 69, 79, 75, 45, 80, 73, 69, 85, 80, 128,
+ 75, 73, 89, 69, 79, 75, 45, 78, 73, 69, 85, 78, 128, 75, 73, 89, 69, 79,
+ 75, 45, 75, 72, 73, 69, 85, 75, 72, 128, 75, 73, 89, 69, 79, 75, 45, 67,
+ 72, 73, 69, 85, 67, 72, 128, 75, 73, 89, 69, 79, 203, 75, 73, 88, 128,
+ 75, 73, 87, 73, 70, 82, 85, 73, 84, 128, 75, 73, 87, 128, 75, 73, 86,
+ 128, 75, 73, 84, 69, 128, 75, 73, 84, 128, 75, 73, 83, 83, 73, 78, 199,
+ 75, 73, 83, 83, 128, 75, 73, 83, 211, 75, 73, 83, 73, 77, 53, 128, 75,
+ 73, 83, 73, 77, 181, 75, 73, 83, 72, 128, 75, 73, 83, 65, 76, 128, 75,
+ 73, 82, 79, 87, 65, 84, 84, 79, 128, 75, 73, 82, 79, 77, 69, 69, 84, 79,
+ 82, 85, 128, 75, 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 73, 82, 79,
+ 128, 75, 73, 82, 71, 72, 73, 218, 75, 73, 81, 128, 75, 73, 80, 128, 75,
+ 73, 208, 75, 73, 78, 83, 72, 73, 80, 128, 75, 73, 78, 78, 193, 75, 73,
+ 78, 68, 69, 82, 71, 65, 82, 84, 69, 78, 128, 75, 73, 77, 79, 78, 79, 128,
+ 75, 73, 76, 76, 69, 82, 128, 75, 73, 73, 90, 72, 128, 75, 73, 73, 128,
+ 75, 73, 72, 128, 75, 73, 69, 88, 128, 75, 73, 69, 86, 65, 206, 75, 73,
+ 69, 80, 128, 75, 73, 69, 69, 77, 128, 75, 73, 69, 128, 75, 73, 68, 128,
+ 75, 73, 196, 75, 73, 67, 75, 128, 75, 73, 66, 128, 75, 73, 65, 86, 128,
+ 75, 73, 65, 66, 128, 75, 73, 45, 56, 128, 75, 73, 45, 55, 128, 75, 73,
+ 45, 54, 128, 75, 73, 45, 53, 128, 75, 73, 45, 52, 128, 75, 73, 45, 51,
+ 128, 75, 73, 45, 50, 128, 75, 73, 45, 49, 128, 75, 72, 90, 128, 75, 72,
+ 87, 65, 73, 128, 75, 72, 85, 69, 78, 45, 76, 85, 197, 75, 72, 85, 69,
+ 206, 75, 72, 85, 68, 65, 87, 65, 68, 201, 75, 72, 85, 68, 65, 77, 128,
+ 75, 72, 85, 65, 84, 128, 75, 72, 79, 85, 128, 75, 72, 79, 212, 75, 72,
+ 79, 78, 78, 65, 128, 75, 72, 79, 78, 128, 75, 72, 79, 77, 85, 84, 128,
+ 75, 72, 79, 74, 75, 201, 75, 72, 79, 128, 75, 72, 207, 75, 72, 77, 213,
+ 75, 72, 73, 84, 128, 75, 72, 73, 78, 89, 65, 128, 75, 72, 73, 69, 85, 75,
+ 200, 75, 72, 73, 128, 75, 72, 201, 75, 72, 72, 79, 128, 75, 72, 72, 65,
+ 128, 75, 72, 69, 84, 72, 128, 75, 72, 69, 73, 128, 75, 72, 69, 69, 128,
+ 75, 72, 69, 128, 75, 72, 65, 86, 128, 75, 72, 65, 82, 79, 83, 72, 84, 72,
+ 201, 75, 72, 65, 82, 128, 75, 72, 65, 80, 72, 128, 75, 72, 65, 78, 199,
+ 75, 72, 65, 78, 68, 193, 75, 72, 65, 77, 84, 201, 75, 72, 65, 75, 65, 83,
+ 83, 73, 65, 206, 75, 72, 65, 73, 128, 75, 72, 65, 72, 128, 75, 72, 65,
+ 200, 75, 72, 65, 70, 128, 75, 72, 65, 66, 128, 75, 72, 65, 65, 128, 75,
+ 71, 128, 75, 69, 89, 67, 65, 80, 128, 75, 69, 89, 67, 65, 208, 75, 69,
+ 89, 66, 79, 65, 82, 68, 128, 75, 69, 89, 66, 79, 65, 82, 196, 75, 69, 88,
+ 128, 75, 69, 86, 128, 75, 69, 85, 89, 69, 85, 88, 128, 75, 69, 85, 83,
+ 72, 69, 85, 65, 69, 80, 128, 75, 69, 85, 83, 69, 85, 88, 128, 75, 69, 85,
+ 80, 85, 81, 128, 75, 69, 85, 79, 212, 75, 69, 85, 77, 128, 75, 69, 85,
+ 75, 69, 85, 84, 78, 68, 65, 128, 75, 69, 85, 75, 65, 81, 128, 75, 69, 85,
+ 65, 69, 84, 77, 69, 85, 78, 128, 75, 69, 85, 65, 69, 82, 73, 128, 75, 69,
+ 84, 84, 201, 75, 69, 83, 72, 50, 128, 75, 69, 82, 69, 84, 128, 75, 69,
+ 79, 87, 128, 75, 69, 78, 84, 73, 77, 65, 84, 65, 128, 75, 69, 78, 84, 73,
+ 77, 65, 84, 193, 75, 69, 78, 84, 73, 77, 193, 75, 69, 78, 65, 84, 128,
+ 75, 69, 78, 128, 75, 69, 206, 75, 69, 77, 80, 85, 76, 128, 75, 69, 77,
+ 80, 85, 204, 75, 69, 77, 80, 76, 73, 128, 75, 69, 77, 80, 76, 201, 75,
+ 69, 77, 80, 72, 82, 69, 78, 71, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75,
+ 69, 76, 86, 73, 206, 75, 69, 72, 69, 72, 128, 75, 69, 72, 69, 200, 75,
+ 69, 72, 128, 75, 69, 70, 85, 76, 65, 128, 75, 69, 69, 86, 128, 75, 69,
+ 69, 83, 85, 128, 75, 69, 69, 80, 73, 78, 199, 75, 69, 69, 78, 71, 128,
+ 75, 69, 69, 66, 128, 75, 69, 66, 128, 75, 69, 65, 65, 69, 128, 75, 67,
+ 65, 76, 128, 75, 66, 128, 75, 65, 90, 65, 75, 200, 75, 65, 89, 65, 78,
+ 78, 65, 128, 75, 65, 89, 65, 200, 75, 65, 88, 128, 75, 65, 87, 86, 128,
+ 75, 65, 87, 73, 128, 75, 65, 87, 66, 128, 75, 65, 86, 89, 75, 65, 128,
+ 75, 65, 86, 89, 75, 193, 75, 65, 86, 128, 75, 65, 85, 86, 128, 75, 65,
+ 85, 78, 65, 128, 75, 65, 85, 206, 75, 65, 85, 66, 128, 75, 65, 84, 79,
+ 128, 75, 65, 84, 72, 73, 83, 84, 73, 128, 75, 65, 84, 72, 65, 75, 193,
+ 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75, 65, 84, 65, 86, 193, 75, 65,
+ 84, 65, 75, 65, 78, 65, 45, 72, 73, 82, 65, 71, 65, 78, 193, 75, 65, 83,
+ 82, 65, 84, 65, 78, 128, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 83, 82,
+ 65, 128, 75, 65, 83, 82, 193, 75, 65, 83, 75, 65, 76, 128, 75, 65, 83,
+ 75, 65, 204, 75, 65, 83, 72, 77, 73, 82, 201, 75, 65, 82, 83, 72, 65, 78,
+ 65, 128, 75, 65, 82, 79, 82, 73, 73, 128, 75, 65, 82, 79, 82, 65, 78,
+ 128, 75, 65, 82, 79, 82, 128, 75, 65, 82, 207, 75, 65, 82, 69, 206, 75,
+ 65, 82, 65, 84, 84, 79, 128, 75, 65, 82, 65, 78, 128, 75, 65, 80, 89, 69,
+ 79, 85, 78, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 75, 65, 80, 89,
+ 69, 79, 85, 78, 82, 73, 69, 85, 76, 128, 75, 65, 80, 89, 69, 79, 85, 78,
+ 80, 72, 73, 69, 85, 80, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 77, 73,
+ 69, 85, 77, 128, 75, 65, 80, 80, 65, 128, 75, 65, 80, 80, 193, 75, 65,
+ 80, 79, 128, 75, 65, 80, 72, 128, 75, 65, 80, 65, 76, 128, 75, 65, 80,
+ 65, 128, 75, 65, 208, 75, 65, 78, 84, 65, 74, 193, 75, 65, 78, 78, 65,
+ 68, 193, 75, 65, 78, 71, 65, 82, 79, 79, 128, 75, 65, 78, 71, 128, 75,
+ 65, 78, 199, 75, 65, 78, 65, 75, 79, 128, 75, 65, 77, 52, 128, 75, 65,
+ 77, 50, 128, 75, 65, 77, 128, 75, 65, 75, 79, 128, 75, 65, 75, 65, 66,
+ 65, 84, 128, 75, 65, 75, 128, 75, 65, 203, 75, 65, 73, 86, 128, 75, 65,
+ 73, 84, 72, 201, 75, 65, 73, 82, 73, 128, 75, 65, 73, 66, 128, 75, 65,
+ 73, 128, 75, 65, 201, 75, 65, 70, 65, 128, 75, 65, 70, 128, 75, 65, 198,
+ 75, 65, 68, 53, 128, 75, 65, 68, 181, 75, 65, 68, 52, 128, 75, 65, 68,
+ 51, 128, 75, 65, 68, 179, 75, 65, 68, 50, 128, 75, 65, 68, 128, 75, 65,
+ 66, 193, 75, 65, 66, 128, 75, 65, 65, 86, 128, 75, 65, 65, 73, 128, 75,
+ 65, 65, 70, 85, 128, 75, 65, 65, 70, 128, 75, 65, 65, 67, 85, 128, 75,
+ 65, 65, 66, 65, 128, 75, 65, 65, 66, 128, 75, 65, 50, 128, 75, 65, 178,
+ 75, 65, 45, 75, 69, 128, 75, 65, 45, 57, 128, 75, 65, 45, 56, 128, 75,
+ 65, 45, 55, 128, 75, 65, 45, 54, 128, 75, 65, 45, 53, 128, 75, 65, 45,
+ 52, 128, 75, 65, 45, 51, 128, 75, 65, 45, 50, 128, 75, 65, 45, 49, 49,
+ 128, 75, 65, 45, 49, 48, 128, 75, 65, 45, 49, 128, 75, 48, 48, 56, 128,
+ 75, 48, 48, 55, 128, 75, 48, 48, 54, 128, 75, 48, 48, 53, 128, 75, 48,
+ 48, 52, 128, 75, 48, 48, 51, 128, 75, 48, 48, 50, 128, 75, 48, 48, 49,
+ 128, 74, 87, 65, 128, 74, 85, 85, 128, 74, 85, 84, 128, 74, 85, 83, 84,
+ 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 74, 85, 80, 73, 84, 69, 82, 128,
+ 74, 85, 79, 84, 128, 74, 85, 79, 80, 128, 74, 85, 78, 79, 128, 74, 85,
+ 78, 71, 83, 69, 79, 78, 199, 74, 85, 78, 69, 128, 74, 85, 76, 89, 128,
+ 74, 85, 71, 71, 76, 73, 78, 71, 128, 74, 85, 69, 85, 73, 128, 74, 85, 68,
+ 85, 76, 128, 74, 85, 68, 71, 69, 128, 74, 85, 68, 69, 79, 45, 83, 80, 65,
+ 78, 73, 83, 200, 74, 79, 89, 83, 84, 73, 67, 75, 128, 74, 79, 89, 79, 85,
+ 211, 74, 79, 89, 128, 74, 79, 86, 69, 128, 74, 79, 212, 74, 79, 78, 71,
+ 128, 74, 79, 78, 193, 74, 79, 75, 69, 82, 128, 74, 79, 73, 78, 84, 83,
+ 128, 74, 79, 73, 78, 69, 68, 128, 74, 79, 73, 78, 128, 74, 79, 65, 128,
+ 74, 78, 89, 65, 128, 74, 74, 89, 88, 128, 74, 74, 89, 84, 128, 74, 74,
+ 89, 80, 128, 74, 74, 89, 128, 74, 74, 85, 88, 128, 74, 74, 85, 84, 128,
+ 74, 74, 85, 82, 88, 128, 74, 74, 85, 82, 128, 74, 74, 85, 80, 128, 74,
+ 74, 85, 79, 88, 128, 74, 74, 85, 79, 80, 128, 74, 74, 85, 79, 128, 74,
+ 74, 85, 128, 74, 74, 79, 88, 128, 74, 74, 79, 84, 128, 74, 74, 79, 80,
+ 128, 74, 74, 79, 128, 74, 74, 73, 88, 128, 74, 74, 73, 84, 128, 74, 74,
+ 73, 80, 128, 74, 74, 73, 69, 88, 128, 74, 74, 73, 69, 84, 128, 74, 74,
+ 73, 69, 80, 128, 74, 74, 73, 69, 128, 74, 74, 73, 128, 74, 74, 69, 69,
+ 128, 74, 74, 69, 128, 74, 74, 65, 128, 74, 73, 76, 128, 74, 73, 73, 77,
+ 128, 74, 73, 73, 128, 74, 73, 72, 86, 65, 77, 85, 76, 73, 89, 65, 128,
+ 74, 73, 71, 83, 65, 215, 74, 73, 65, 128, 74, 72, 79, 88, 128, 74, 72,
+ 79, 128, 74, 72, 69, 72, 128, 74, 72, 65, 89, 73, 78, 128, 74, 72, 65,
+ 78, 128, 74, 72, 65, 77, 128, 74, 72, 65, 65, 128, 74, 72, 65, 128, 74,
+ 69, 85, 128, 74, 69, 82, 85, 83, 65, 76, 69, 77, 128, 74, 69, 82, 65,
+ 206, 74, 69, 82, 65, 128, 74, 69, 82, 128, 74, 69, 72, 128, 74, 69, 200,
+ 74, 69, 71, 79, 71, 65, 78, 128, 74, 69, 69, 77, 128, 74, 69, 69, 205,
+ 74, 69, 65, 78, 83, 128, 74, 65, 89, 78, 128, 74, 65, 89, 73, 78, 128,
+ 74, 65, 89, 65, 78, 78, 65, 128, 74, 65, 87, 128, 74, 65, 86, 73, 89, 65,
+ 78, 73, 128, 74, 65, 86, 65, 78, 69, 83, 197, 74, 65, 85, 128, 74, 65,
+ 82, 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 65, 80, 65, 78, 128, 74,
+ 65, 78, 85, 65, 82, 89, 128, 74, 65, 76, 76, 65, 74, 65, 76, 65, 76, 79,
+ 85, 72, 79, 85, 128, 74, 65, 73, 206, 74, 65, 73, 128, 74, 65, 72, 128,
+ 74, 65, 68, 69, 128, 74, 65, 67, 75, 83, 128, 74, 65, 67, 75, 45, 79, 45,
+ 76, 65, 78, 84, 69, 82, 78, 128, 74, 65, 67, 203, 74, 45, 83, 73, 77, 80,
+ 76, 73, 70, 73, 69, 196, 73, 90, 72, 73, 84, 83, 65, 128, 73, 90, 72, 73,
+ 84, 83, 193, 73, 90, 72, 69, 128, 73, 90, 65, 75, 65, 89, 193, 73, 89,
+ 69, 75, 128, 73, 89, 65, 78, 78, 65, 128, 73, 85, 74, 65, 128, 73, 84,
+ 211, 73, 84, 69, 82, 65, 84, 73, 79, 206, 73, 84, 69, 77, 128, 73, 83,
+ 83, 72, 65, 82, 128, 73, 83, 79, 83, 67, 69, 76, 69, 211, 73, 83, 79, 78,
+ 128, 73, 83, 79, 206, 73, 83, 79, 76, 65, 84, 69, 128, 73, 83, 76, 65,
+ 78, 68, 128, 73, 83, 69, 78, 45, 73, 83, 69, 78, 128, 73, 83, 65, 75, 73,
+ 193, 73, 83, 45, 80, 73, 76, 76, 65, 128, 73, 82, 85, 89, 65, 78, 78, 65,
+ 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 73, 82, 79, 78, 45, 67, 79,
+ 80, 80, 69, 210, 73, 82, 79, 78, 128, 73, 82, 66, 128, 73, 79, 84, 73,
+ 70, 73, 69, 196, 73, 79, 84, 65, 84, 69, 196, 73, 79, 84, 65, 128, 73,
+ 79, 84, 193, 73, 79, 82, 128, 73, 79, 78, 71, 128, 73, 79, 68, 72, 65,
+ 68, 72, 128, 73, 78, 86, 73, 83, 73, 66, 76, 197, 73, 78, 86, 69, 82, 84,
+ 69, 68, 128, 73, 78, 86, 69, 82, 84, 69, 196, 73, 78, 86, 69, 82, 84, 69,
+ 66, 82, 65, 84, 69, 128, 73, 78, 86, 69, 82, 83, 197, 73, 78, 84, 82, 79,
+ 68, 85, 67, 69, 82, 128, 73, 78, 84, 73, 128, 73, 78, 84, 69, 82, 83, 89,
+ 76, 76, 65, 66, 73, 195, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 78,
+ 128, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 73, 78, 84, 69, 82,
+ 83, 69, 67, 84, 73, 78, 199, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 71,
+ 128, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 199, 73, 78, 84, 69, 82, 80,
+ 79, 76, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196,
+ 73, 78, 84, 69, 82, 76, 73, 78, 69, 65, 210, 73, 78, 84, 69, 82, 76, 65,
+ 67, 69, 196, 73, 78, 84, 69, 82, 73, 79, 210, 73, 78, 84, 69, 82, 69, 83,
+ 212, 73, 78, 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 73, 78, 84, 69, 71,
+ 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206,
+ 73, 78, 84, 69, 71, 82, 65, 76, 128, 73, 78, 84, 69, 71, 82, 65, 204, 73,
+ 78, 83, 85, 76, 65, 210, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, 65, 204,
+ 73, 78, 83, 73, 68, 69, 128, 73, 78, 83, 73, 68, 197, 73, 78, 83, 69, 82,
+ 84, 73, 79, 206, 73, 78, 83, 69, 82, 212, 73, 78, 83, 69, 67, 84, 128,
+ 73, 78, 83, 67, 82, 73, 80, 84, 73, 79, 78, 65, 204, 73, 78, 80, 85, 212,
+ 73, 78, 78, 79, 67, 69, 78, 67, 69, 128, 73, 78, 78, 78, 128, 73, 78, 78,
+ 69, 82, 128, 73, 78, 78, 69, 210, 73, 78, 78, 128, 73, 78, 73, 78, 71,
+ 85, 128, 73, 78, 72, 73, 66, 73, 212, 73, 78, 72, 69, 82, 69, 78, 212,
+ 73, 78, 72, 65, 76, 69, 128, 73, 78, 71, 87, 65, 90, 128, 73, 78, 70, 79,
+ 82, 77, 65, 84, 73, 79, 206, 73, 78, 70, 76, 85, 69, 78, 67, 69, 128, 73,
+ 78, 70, 73, 78, 73, 84, 89, 128, 73, 78, 70, 73, 78, 73, 84, 217, 73, 78,
+ 68, 85, 83, 84, 82, 73, 65, 204, 73, 78, 68, 73, 82, 69, 67, 212, 73, 78,
+ 68, 73, 67, 84, 73, 79, 206, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 73,
+ 78, 68, 73, 67, 65, 84, 79, 210, 73, 78, 68, 73, 195, 73, 78, 68, 73, 65,
+ 206, 73, 78, 68, 69, 88, 128, 73, 78, 68, 69, 80, 69, 78, 68, 69, 78,
+ 212, 73, 78, 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 67, 82, 69, 65, 83,
+ 69, 211, 73, 78, 67, 82, 69, 65, 83, 69, 128, 73, 78, 67, 82, 69, 65, 83,
+ 197, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, 79, 77, 73, 78,
+ 199, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 72, 128, 73, 78,
+ 66, 79, 216, 73, 78, 65, 80, 128, 73, 78, 45, 65, 76, 65, 70, 128, 73,
+ 77, 80, 69, 82, 73, 65, 204, 73, 77, 80, 69, 82, 70, 69, 67, 84, 85, 205,
+ 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, 73, 77, 80, 69, 82, 70, 69,
+ 67, 84, 193, 73, 77, 78, 128, 73, 77, 73, 83, 69, 79, 211, 73, 77, 73,
+ 78, 51, 128, 73, 77, 73, 78, 128, 73, 77, 73, 206, 73, 77, 73, 70, 84,
+ 72, 79, 82, 79, 78, 128, 73, 77, 73, 70, 84, 72, 79, 82, 65, 128, 73, 77,
+ 73, 70, 79, 78, 79, 78, 128, 73, 77, 73, 68, 73, 65, 82, 71, 79, 78, 128,
+ 73, 77, 65, 71, 197, 73, 76, 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, 89,
+ 128, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 76, 85, 84, 128, 73,
+ 76, 73, 77, 77, 85, 52, 128, 73, 76, 73, 77, 77, 85, 51, 128, 73, 76, 73,
+ 77, 77, 85, 128, 73, 76, 73, 77, 77, 213, 73, 76, 50, 128, 73, 75, 65,
+ 82, 65, 128, 73, 75, 65, 82, 193, 73, 74, 128, 73, 73, 89, 65, 78, 78,
+ 65, 128, 73, 71, 73, 128, 73, 71, 201, 73, 71, 71, 87, 83, 128, 73, 70,
+ 73, 78, 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, 73, 69,
+ 85, 78, 71, 45, 84, 72, 73, 69, 85, 84, 72, 128, 73, 69, 85, 78, 71, 45,
+ 82, 73, 69, 85, 76, 128, 73, 69, 85, 78, 71, 45, 80, 73, 69, 85, 80, 128,
+ 73, 69, 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78,
+ 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69,
+ 85, 67, 72, 128, 73, 69, 85, 78, 199, 73, 68, 76, 69, 128, 73, 68, 73,
+ 77, 128, 73, 68, 73, 205, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65,
+ 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 54, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 65, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 52, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 69, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 56, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57,
+ 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 50, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 57, 49, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 57, 48, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 68,
+ 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 67, 65, 57, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 56, 57, 69, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 55, 68, 52, 50, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 55, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 55, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 54,
+ 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 51, 51, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 55, 53, 49, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 55, 49, 50, 49, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 55, 48, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 54, 70, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 69,
+ 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 50, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 54, 55, 48, 56, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 54, 54, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 54, 53, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53,
+ 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 53, 53, 55, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 51, 53, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 54, 51, 48, 55, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 54, 50, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 54, 50, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 54, 50,
+ 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 70, 56, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 68, 69, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 53, 66, 56, 57, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 53, 66, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 53, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 57,
+ 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 56, 70, 48, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 53, 66, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 53, 52, 51, 57, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 53, 52, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 53, 51, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 51,
+ 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 68, 68, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 53, 50, 55, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 53, 50, 52, 68, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 53, 50, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 53, 49, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69,
+ 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 56, 67, 128,
+ 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 52, 69, 50, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 52, 69, 48, 57, 128, 73, 68, 69, 79, 71, 82,
+ 65, 80, 72, 45, 52, 69, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
+ 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 65,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
+ 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 49,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
+ 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 56,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65,
+ 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 70,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 69,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 53,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 67,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 66, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 51,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 65,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 49,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 56,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 70,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 69,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 53,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 67,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 66, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57,
+ 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 51,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 65,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 49,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 56,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 70,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 69,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 68, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 53,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 52, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 67,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 66, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 51,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 50, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 65,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 57, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 49,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 48, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 56,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 55, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 70,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 69, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 54,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 53, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 68,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 67, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 52,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 51, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 66,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 65, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 50,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 49, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 57,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 56, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 48,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 70, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56,
+ 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 55,
+ 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 54, 128, 73,
+ 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, 69,
+ 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, 73, 68, 69, 79, 71,
+ 82, 65, 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65,
+ 80, 72, 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72,
+ 45, 50, 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50,
+ 70, 56, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 200, 73, 68, 69, 78,
+ 84, 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, 69, 78, 84, 73, 67,
+ 65, 204, 73, 67, 79, 78, 128, 73, 67, 72, 79, 85, 128, 73, 67, 72, 79,
+ 83, 128, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 73, 67, 72, 65, 68, 73,
+ 78, 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 66, 73,
+ 70, 73, 76, 73, 128, 73, 65, 85, 68, 65, 128, 73, 48, 49, 53, 128, 73,
+ 48, 49, 52, 128, 73, 48, 49, 51, 128, 73, 48, 49, 50, 128, 73, 48, 49,
+ 49, 65, 128, 73, 48, 49, 49, 128, 73, 48, 49, 48, 65, 128, 73, 48, 49,
+ 48, 128, 73, 48, 48, 57, 65, 128, 73, 48, 48, 57, 128, 73, 48, 48, 56,
+ 128, 73, 48, 48, 55, 128, 73, 48, 48, 54, 128, 73, 48, 48, 53, 65, 128,
+ 73, 48, 48, 53, 128, 73, 48, 48, 52, 128, 73, 48, 48, 51, 128, 73, 48,
+ 48, 50, 128, 73, 48, 48, 49, 128, 73, 45, 89, 85, 128, 73, 45, 89, 79,
+ 128, 73, 45, 89, 69, 79, 128, 73, 45, 89, 69, 128, 73, 45, 89, 65, 69,
+ 128, 73, 45, 89, 65, 45, 79, 128, 73, 45, 89, 65, 128, 73, 45, 79, 45,
+ 73, 128, 73, 45, 79, 128, 73, 45, 69, 85, 128, 73, 45, 66, 69, 65, 77,
+ 128, 73, 45, 65, 82, 65, 69, 65, 128, 73, 45, 65, 128, 72, 90, 90, 90,
+ 71, 128, 72, 90, 90, 90, 128, 72, 90, 90, 80, 128, 72, 90, 90, 128, 72,
+ 90, 87, 71, 128, 72, 90, 87, 128, 72, 90, 84, 128, 72, 90, 71, 128, 72,
+ 89, 83, 84, 69, 82, 69, 83, 73, 211, 72, 89, 80, 79, 68, 73, 65, 83, 84,
+ 79, 76, 69, 128, 72, 89, 80, 72, 69, 78, 65, 84, 73, 79, 206, 72, 89, 80,
+ 72, 69, 78, 45, 77, 73, 78, 85, 83, 128, 72, 89, 80, 72, 69, 78, 128, 72,
+ 89, 80, 72, 69, 206, 72, 89, 71, 73, 69, 73, 65, 128, 72, 89, 71, 73, 69,
+ 65, 128, 72, 88, 87, 71, 128, 72, 88, 85, 79, 88, 128, 72, 88, 85, 79,
+ 84, 128, 72, 88, 85, 79, 80, 128, 72, 88, 85, 79, 128, 72, 88, 79, 88,
+ 128, 72, 88, 79, 84, 128, 72, 88, 79, 80, 128, 72, 88, 79, 128, 72, 88,
+ 73, 88, 128, 72, 88, 73, 84, 128, 72, 88, 73, 80, 128, 72, 88, 73, 69,
+ 88, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, 69, 80, 128, 72, 88, 73,
+ 69, 128, 72, 88, 73, 128, 72, 88, 69, 88, 128, 72, 88, 69, 80, 128, 72,
+ 88, 69, 128, 72, 88, 65, 88, 128, 72, 88, 65, 84, 128, 72, 88, 65, 80,
+ 128, 72, 88, 65, 128, 72, 87, 85, 128, 72, 87, 65, 73, 82, 128, 72, 87,
+ 65, 72, 128, 72, 85, 86, 65, 128, 72, 85, 83, 72, 69, 196, 72, 85, 83,
+ 72, 128, 72, 85, 82, 65, 78, 128, 72, 85, 79, 84, 128, 72, 85, 78, 68,
+ 82, 69, 68, 83, 128, 72, 85, 78, 68, 82, 69, 68, 211, 72, 85, 78, 68, 82,
+ 69, 68, 128, 72, 85, 78, 68, 82, 69, 196, 72, 85, 78, 128, 72, 85, 77,
+ 208, 72, 85, 77, 65, 78, 128, 72, 85, 77, 65, 206, 72, 85, 76, 50, 128,
+ 72, 85, 73, 73, 84, 79, 128, 72, 85, 71, 71, 73, 78, 71, 128, 72, 85, 71,
+ 71, 73, 78, 199, 72, 85, 66, 50, 128, 72, 85, 66, 178, 72, 85, 66, 128,
+ 72, 85, 65, 82, 65, 68, 68, 79, 128, 72, 85, 65, 78, 128, 72, 85, 45, 51,
+ 128, 72, 85, 45, 50, 128, 72, 85, 45, 49, 128, 72, 84, 83, 128, 72, 84,
+ 74, 128, 72, 82, 89, 86, 78, 73, 193, 72, 80, 87, 71, 128, 72, 80, 65,
+ 128, 72, 80, 128, 72, 79, 85, 83, 197, 72, 79, 85, 82, 71, 76, 65, 83,
+ 83, 128, 72, 79, 85, 82, 71, 76, 65, 83, 211, 72, 79, 85, 82, 128, 72,
+ 79, 85, 210, 72, 79, 84, 69, 76, 128, 72, 79, 84, 65, 128, 72, 79, 83,
+ 80, 73, 84, 65, 76, 128, 72, 79, 82, 83, 69, 128, 72, 79, 82, 83, 197,
+ 72, 79, 82, 82, 128, 72, 79, 82, 78, 83, 128, 72, 79, 82, 73, 90, 79, 78,
+ 84, 65, 76, 76, 217, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54,
+ 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45,
+ 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48,
+ 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 51,
+ 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 50, 128,
+ 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 49, 128, 72,
+ 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 48, 128, 72, 79,
+ 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 54, 128, 72, 79, 82,
+ 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 53, 128, 72, 79, 82, 73,
+ 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 52, 128, 72, 79, 82, 73, 90,
+ 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79,
+ 78, 84, 65, 76, 45, 48, 53, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78,
+ 84, 65, 76, 45, 48, 53, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84,
+ 65, 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
+ 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
+ 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
+ 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
+ 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52,
+ 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45,
+ 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48,
+ 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 54,
+ 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 53, 128,
+ 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 52, 128, 72,
+ 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 51, 128, 72, 79,
+ 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 50, 128, 72, 79, 82,
+ 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 49, 128, 72, 79, 82, 73,
+ 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 48, 128, 72, 79, 82, 73, 90,
+ 79, 78, 84, 65, 76, 45, 48, 50, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79,
+ 78, 84, 65, 76, 45, 48, 50, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78,
+ 84, 65, 76, 45, 48, 50, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84,
+ 65, 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65,
+ 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
+ 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45,
+ 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48,
+ 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49,
+ 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45,
+ 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48,
+ 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 50,
+ 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 49, 128,
+ 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 48, 128, 72,
+ 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 54, 128, 72, 79,
+ 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 53, 128, 72, 79, 82,
+ 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 52, 128, 72, 79, 82, 73,
+ 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 51, 128, 72, 79, 82, 73, 90,
+ 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79,
+ 78, 84, 65, 76, 45, 48, 48, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78,
+ 84, 65, 76, 45, 48, 48, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84,
+ 65, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 204, 72, 79, 82, 73,
+ 128, 72, 79, 82, 193, 72, 79, 79, 85, 128, 72, 79, 79, 82, 85, 128, 72,
+ 79, 79, 80, 128, 72, 79, 79, 78, 128, 72, 79, 79, 75, 69, 68, 128, 72,
+ 79, 79, 75, 69, 196, 72, 79, 78, 69, 89, 66, 69, 69, 128, 72, 79, 78, 69,
+ 217, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, 128, 72, 79, 77, 79, 84, 72,
+ 69, 84, 73, 195, 72, 79, 76, 79, 128, 72, 79, 76, 76, 79, 215, 72, 79,
+ 76, 69, 128, 72, 79, 76, 68, 73, 78, 199, 72, 79, 76, 65, 77, 128, 72,
+ 79, 76, 65, 205, 72, 79, 75, 65, 128, 72, 79, 67, 75, 69, 217, 72, 79,
+ 67, 72, 79, 128, 72, 79, 45, 56, 128, 72, 79, 45, 55, 128, 72, 79, 45,
+ 54, 128, 72, 79, 45, 53, 128, 72, 79, 45, 52, 128, 72, 79, 45, 51, 128,
+ 72, 79, 45, 50, 128, 72, 79, 45, 49, 128, 72, 78, 85, 84, 128, 72, 78,
+ 85, 79, 88, 128, 72, 78, 85, 79, 128, 72, 78, 85, 66, 128, 72, 78, 79,
+ 88, 128, 72, 78, 79, 84, 128, 72, 78, 79, 80, 128, 72, 78, 73, 88, 128,
+ 72, 78, 73, 84, 128, 72, 78, 73, 80, 128, 72, 78, 73, 69, 88, 128, 72,
+ 78, 73, 69, 84, 128, 72, 78, 73, 69, 80, 128, 72, 78, 73, 69, 128, 72,
+ 78, 73, 128, 72, 78, 69, 88, 128, 72, 78, 69, 80, 128, 72, 78, 69, 128,
+ 72, 78, 65, 88, 128, 72, 78, 65, 85, 128, 72, 78, 65, 84, 128, 72, 78,
+ 65, 80, 128, 72, 78, 65, 128, 72, 77, 89, 88, 128, 72, 77, 89, 82, 88,
+ 128, 72, 77, 89, 82, 128, 72, 77, 89, 80, 128, 72, 77, 89, 128, 72, 77,
+ 85, 88, 128, 72, 77, 85, 84, 128, 72, 77, 85, 82, 88, 128, 72, 77, 85,
+ 82, 128, 72, 77, 85, 80, 128, 72, 77, 85, 79, 88, 128, 72, 77, 85, 79,
+ 80, 128, 72, 77, 85, 79, 128, 72, 77, 85, 128, 72, 77, 79, 88, 128, 72,
+ 77, 79, 84, 128, 72, 77, 79, 80, 128, 72, 77, 79, 128, 72, 77, 73, 88,
+ 128, 72, 77, 73, 84, 128, 72, 77, 73, 80, 128, 72, 77, 73, 69, 88, 128,
+ 72, 77, 73, 69, 80, 128, 72, 77, 73, 69, 128, 72, 77, 73, 128, 72, 77,
+ 69, 128, 72, 77, 65, 88, 128, 72, 77, 65, 84, 128, 72, 77, 65, 80, 128,
+ 72, 77, 65, 128, 72, 76, 89, 88, 128, 72, 76, 89, 84, 128, 72, 76, 89,
+ 82, 88, 128, 72, 76, 89, 82, 128, 72, 76, 89, 80, 128, 72, 76, 89, 128,
+ 72, 76, 85, 88, 128, 72, 76, 85, 84, 128, 72, 76, 85, 82, 88, 128, 72,
+ 76, 85, 82, 128, 72, 76, 85, 80, 128, 72, 76, 85, 79, 88, 128, 72, 76,
+ 85, 79, 80, 128, 72, 76, 85, 79, 128, 72, 76, 85, 128, 72, 76, 79, 88,
+ 128, 72, 76, 79, 80, 128, 72, 76, 79, 128, 72, 76, 73, 88, 128, 72, 76,
+ 73, 84, 128, 72, 76, 73, 80, 128, 72, 76, 73, 69, 88, 128, 72, 76, 73,
+ 69, 80, 128, 72, 76, 73, 69, 128, 72, 76, 73, 128, 72, 76, 69, 88, 128,
+ 72, 76, 69, 80, 128, 72, 76, 69, 128, 72, 76, 65, 88, 128, 72, 76, 65,
+ 85, 128, 72, 76, 65, 84, 128, 72, 76, 65, 80, 128, 72, 76, 65, 128, 72,
+ 76, 128, 72, 75, 128, 72, 73, 90, 66, 128, 72, 73, 89, 79, 128, 72, 73,
+ 84, 84, 73, 78, 199, 72, 73, 83, 84, 79, 82, 73, 195, 72, 73, 82, 73, 81,
+ 128, 72, 73, 80, 80, 79, 80, 79, 84, 65, 77, 85, 83, 128, 72, 73, 78, 71,
+ 69, 68, 128, 72, 73, 78, 71, 69, 196, 72, 73, 78, 71, 69, 128, 72, 73,
+ 78, 68, 213, 72, 73, 75, 73, 78, 199, 72, 73, 71, 72, 45, 83, 80, 69, 69,
+ 196, 72, 73, 71, 72, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 72, 73,
+ 71, 72, 45, 76, 79, 215, 72, 73, 71, 72, 45, 72, 69, 69, 76, 69, 196, 72,
+ 73, 69, 88, 128, 72, 73, 69, 85, 72, 45, 83, 73, 79, 83, 128, 72, 73, 69,
+ 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, 73, 69, 85, 72, 45, 80, 73, 69,
+ 85, 80, 128, 72, 73, 69, 85, 72, 45, 78, 73, 69, 85, 78, 128, 72, 73, 69,
+ 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, 73, 69, 85, 200, 72, 73, 69, 82,
+ 79, 71, 76, 89, 80, 72, 73, 195, 72, 73, 69, 128, 72, 73, 68, 73, 78,
+ 199, 72, 73, 68, 69, 84, 128, 72, 73, 68, 69, 128, 72, 73, 66, 73, 83,
+ 67, 85, 83, 128, 72, 73, 45, 82, 69, 83, 128, 72, 73, 45, 55, 128, 72,
+ 73, 45, 54, 128, 72, 73, 45, 53, 128, 72, 73, 45, 52, 128, 72, 73, 45,
+ 51, 128, 72, 73, 45, 50, 128, 72, 73, 45, 49, 128, 72, 72, 87, 65, 128,
+ 72, 72, 85, 128, 72, 72, 73, 128, 72, 72, 69, 69, 128, 72, 72, 69, 128,
+ 72, 72, 65, 65, 128, 72, 71, 128, 72, 69, 89, 84, 128, 72, 69, 88, 73,
+ 70, 79, 82, 205, 72, 69, 88, 65, 71, 82, 65, 205, 72, 69, 88, 65, 71, 79,
+ 78, 128, 72, 69, 82, 85, 84, 85, 128, 72, 69, 82, 85, 128, 72, 69, 82,
+ 77, 73, 84, 73, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 69,
+ 82, 77, 69, 83, 128, 72, 69, 82, 69, 128, 72, 69, 82, 66, 128, 72, 69,
+ 82, 65, 69, 85, 205, 72, 69, 78, 71, 128, 72, 69, 78, 199, 72, 69, 77,
+ 80, 128, 72, 69, 76, 77, 69, 84, 128, 72, 69, 76, 77, 69, 212, 72, 69,
+ 76, 205, 72, 69, 76, 76, 83, 67, 72, 82, 69, 73, 66, 69, 210, 72, 69, 76,
+ 73, 88, 128, 72, 69, 76, 73, 67, 79, 80, 84, 69, 82, 128, 72, 69, 75, 85,
+ 84, 65, 65, 82, 85, 128, 72, 69, 73, 83, 69, 73, 128, 72, 69, 73, 71, 72,
+ 84, 128, 72, 69, 69, 73, 128, 72, 69, 68, 71, 69, 72, 79, 71, 128, 72,
+ 69, 65, 86, 89, 128, 72, 69, 65, 86, 69, 78, 76, 217, 72, 69, 65, 86, 69,
+ 78, 128, 72, 69, 65, 86, 69, 206, 72, 69, 65, 82, 84, 83, 128, 72, 69,
+ 65, 82, 84, 45, 83, 72, 65, 80, 69, 196, 72, 69, 65, 82, 84, 128, 72, 69,
+ 65, 82, 212, 72, 69, 65, 82, 73, 78, 199, 72, 69, 65, 82, 45, 78, 79, 45,
+ 69, 86, 73, 204, 72, 69, 65, 68, 83, 84, 82, 79, 75, 69, 128, 72, 69, 65,
+ 68, 83, 84, 79, 78, 69, 128, 72, 69, 65, 68, 83, 84, 79, 78, 197, 72, 69,
+ 65, 68, 83, 67, 65, 82, 70, 128, 72, 69, 65, 68, 80, 72, 79, 78, 69, 128,
+ 72, 69, 65, 68, 73, 78, 71, 128, 72, 69, 65, 68, 45, 66, 65, 78, 68, 65,
+ 71, 69, 128, 72, 69, 45, 55, 128, 72, 69, 45, 54, 128, 72, 69, 45, 53,
+ 128, 72, 69, 45, 52, 128, 72, 69, 45, 51, 128, 72, 69, 45, 50, 128, 72,
+ 69, 45, 49, 128, 72, 68, 82, 128, 72, 67, 128, 72, 66, 65, 83, 65, 45,
+ 69, 83, 65, 83, 193, 72, 66, 65, 83, 193, 72, 65, 89, 65, 78, 78, 65,
+ 128, 72, 65, 87, 74, 128, 72, 65, 86, 69, 128, 72, 65, 85, 80, 84, 83,
+ 84, 73, 77, 77, 69, 128, 72, 65, 213, 72, 65, 84, 82, 65, 206, 72, 65,
+ 84, 72, 73, 128, 72, 65, 84, 69, 128, 72, 65, 84, 67, 72, 73, 78, 199,
+ 72, 65, 84, 65, 198, 72, 65, 83, 69, 210, 72, 65, 83, 65, 78, 84, 65,
+ 128, 72, 65, 82, 80, 79, 79, 78, 128, 72, 65, 82, 80, 79, 79, 206, 72,
+ 65, 82, 77, 79, 78, 73, 67, 128, 72, 65, 82, 75, 76, 69, 65, 206, 72, 65,
+ 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 196, 72, 65, 82, 66, 65, 72, 65,
+ 89, 128, 72, 65, 80, 80, 217, 72, 65, 78, 85, 78, 79, 207, 72, 65, 78,
+ 73, 70, 201, 72, 65, 78, 71, 90, 72, 79, 213, 72, 65, 78, 68, 83, 72, 65,
+ 75, 69, 128, 72, 65, 78, 68, 83, 128, 72, 65, 78, 68, 211, 72, 65, 78,
+ 68, 76, 69, 83, 128, 72, 65, 78, 68, 76, 69, 128, 72, 65, 78, 68, 66, 65,
+ 76, 76, 128, 72, 65, 78, 68, 66, 65, 71, 128, 72, 65, 78, 68, 45, 79, 86,
+ 65, 76, 128, 72, 65, 78, 68, 45, 79, 86, 65, 204, 72, 65, 78, 68, 45, 72,
+ 79, 79, 75, 128, 72, 65, 78, 68, 45, 72, 79, 79, 203, 72, 65, 78, 68, 45,
+ 72, 73, 78, 71, 69, 128, 72, 65, 78, 68, 45, 72, 73, 78, 71, 197, 72, 65,
+ 78, 68, 45, 70, 76, 65, 84, 128, 72, 65, 78, 68, 45, 70, 76, 65, 212, 72,
+ 65, 78, 68, 45, 70, 73, 83, 84, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76,
+ 73, 67, 85, 69, 128, 72, 65, 78, 68, 45, 67, 85, 82, 76, 73, 67, 85, 197,
+ 72, 65, 78, 68, 45, 67, 85, 80, 128, 72, 65, 78, 68, 45, 67, 85, 208, 72,
+ 65, 78, 68, 45, 67, 76, 65, 87, 128, 72, 65, 78, 68, 45, 67, 76, 65, 215,
+ 72, 65, 78, 68, 45, 67, 73, 82, 67, 76, 69, 128, 72, 65, 78, 68, 45, 67,
+ 73, 82, 67, 76, 197, 72, 65, 78, 68, 45, 65, 78, 71, 76, 69, 128, 72, 65,
+ 78, 68, 45, 65, 78, 71, 76, 197, 72, 65, 78, 68, 128, 72, 65, 78, 45, 65,
+ 75, 65, 84, 128, 72, 65, 77, 90, 65, 128, 72, 65, 77, 90, 193, 72, 65,
+ 77, 83, 84, 69, 210, 72, 65, 77, 77, 69, 82, 128, 72, 65, 77, 77, 69,
+ 210, 72, 65, 77, 66, 85, 82, 71, 69, 82, 128, 72, 65, 76, 81, 65, 128,
+ 72, 65, 76, 79, 128, 72, 65, 76, 70, 45, 67, 73, 82, 67, 76, 197, 72, 65,
+ 76, 70, 45, 50, 128, 72, 65, 76, 70, 45, 49, 128, 72, 65, 76, 70, 128,
+ 72, 65, 76, 66, 69, 82, 68, 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65,
+ 73, 84, 85, 128, 72, 65, 73, 211, 72, 65, 73, 82, 67, 85, 84, 128, 72,
+ 65, 71, 76, 65, 218, 72, 65, 71, 76, 128, 72, 65, 70, 85, 75, 72, 65,
+ 128, 72, 65, 70, 85, 75, 72, 128, 72, 65, 69, 71, 204, 72, 65, 68, 69,
+ 83, 128, 72, 65, 65, 82, 85, 128, 72, 65, 65, 77, 128, 72, 65, 193, 72,
+ 65, 45, 72, 65, 128, 72, 65, 45, 57, 128, 72, 65, 45, 56, 128, 72, 65,
+ 45, 55, 128, 72, 65, 45, 54, 128, 72, 65, 45, 53, 128, 72, 65, 45, 52,
+ 128, 72, 65, 45, 51, 128, 72, 65, 45, 50, 128, 72, 65, 45, 49, 49, 128,
+ 72, 65, 45, 49, 48, 128, 72, 65, 45, 49, 128, 72, 48, 48, 56, 128, 72,
+ 48, 48, 55, 128, 72, 48, 48, 54, 65, 128, 72, 48, 48, 54, 128, 72, 48,
+ 48, 53, 128, 72, 48, 48, 52, 128, 72, 48, 48, 51, 128, 72, 48, 48, 50,
+ 128, 72, 48, 48, 49, 128, 72, 45, 84, 89, 80, 197, 71, 89, 85, 128, 71,
+ 89, 79, 78, 128, 71, 89, 79, 128, 71, 89, 73, 128, 71, 89, 70, 213, 71,
+ 89, 69, 69, 128, 71, 89, 65, 83, 128, 71, 89, 65, 65, 128, 71, 89, 65,
+ 128, 71, 89, 128, 71, 87, 85, 128, 71, 87, 73, 128, 71, 87, 69, 69, 128,
+ 71, 87, 69, 128, 71, 87, 65, 65, 128, 71, 87, 65, 128, 71, 87, 128, 71,
+ 86, 65, 78, 71, 128, 71, 86, 128, 71, 85, 82, 85, 83, 72, 128, 71, 85,
+ 82, 85, 78, 128, 71, 85, 82, 77, 85, 75, 72, 201, 71, 85, 82, 65, 77, 85,
+ 84, 79, 78, 128, 71, 85, 82, 55, 128, 71, 85, 78, 85, 128, 71, 85, 78,
+ 213, 71, 85, 78, 74, 65, 76, 193, 71, 85, 205, 71, 85, 76, 128, 71, 85,
+ 74, 65, 82, 65, 84, 201, 71, 85, 73, 84, 65, 82, 128, 71, 85, 73, 68,
+ 197, 71, 85, 199, 71, 85, 69, 73, 128, 71, 85, 69, 72, 128, 71, 85, 69,
+ 200, 71, 85, 68, 128, 71, 85, 196, 71, 85, 65, 82, 68, 83, 77, 65, 78,
+ 128, 71, 85, 65, 82, 68, 69, 68, 78, 69, 83, 83, 128, 71, 85, 65, 82, 68,
+ 69, 196, 71, 85, 65, 82, 68, 128, 71, 85, 65, 82, 65, 78, 201, 71, 85,
+ 193, 71, 85, 178, 71, 84, 69, 210, 71, 83, 85, 77, 128, 71, 83, 85, 205,
+ 71, 82, 213, 71, 82, 79, 87, 73, 78, 199, 71, 82, 79, 85, 78, 68, 128,
+ 71, 82, 79, 78, 84, 72, 73, 83, 77, 65, 84, 65, 128, 71, 82, 73, 78, 78,
+ 73, 78, 199, 71, 82, 73, 77, 65, 67, 73, 78, 199, 71, 82, 69, 71, 79, 82,
+ 73, 65, 206, 71, 82, 69, 69, 78, 128, 71, 82, 69, 69, 206, 71, 82, 69,
+ 65, 84, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65,
+ 78, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, 71, 82, 69, 65,
+ 84, 69, 210, 71, 82, 69, 65, 212, 71, 82, 65, 86, 69, 89, 65, 82, 196,
+ 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 71, 82, 65, 86, 69,
+ 45, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 71, 82, 65, 86, 197,
+ 71, 82, 65, 84, 69, 82, 128, 71, 82, 65, 83, 83, 128, 71, 82, 65, 83,
+ 211, 71, 82, 65, 83, 208, 71, 82, 65, 80, 72, 69, 77, 197, 71, 82, 65,
+ 80, 69, 83, 128, 71, 82, 65, 78, 84, 72, 193, 71, 82, 65, 77, 77, 193,
+ 71, 82, 65, 73, 78, 128, 71, 82, 65, 68, 85, 65, 84, 73, 79, 206, 71, 82,
+ 65, 68, 85, 65, 76, 128, 71, 82, 65, 67, 69, 128, 71, 82, 65, 67, 197,
+ 71, 80, 65, 128, 71, 79, 82, 84, 72, 77, 73, 75, 79, 206, 71, 79, 82, 84,
+ 128, 71, 79, 82, 73, 76, 76, 65, 128, 71, 79, 82, 71, 79, 84, 69, 82, 73,
+ 128, 71, 79, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, 128, 71, 79,
+ 82, 71, 79, 206, 71, 79, 82, 71, 73, 128, 71, 79, 82, 65, 128, 71, 79,
+ 79, 196, 71, 79, 78, 71, 128, 71, 79, 76, 70, 69, 82, 128, 71, 79, 76,
+ 68, 128, 71, 79, 75, 128, 71, 79, 73, 78, 199, 71, 79, 71, 71, 76, 69,
+ 83, 128, 71, 79, 66, 76, 73, 78, 128, 71, 79, 65, 76, 128, 71, 79, 65,
+ 204, 71, 79, 65, 128, 71, 78, 89, 73, 83, 128, 71, 78, 65, 86, 73, 89,
+ 65, 78, 73, 128, 71, 76, 79, 87, 73, 78, 199, 71, 76, 79, 86, 69, 83,
+ 128, 71, 76, 79, 86, 69, 128, 71, 76, 79, 84, 84, 65, 204, 71, 76, 79,
+ 66, 197, 71, 76, 73, 83, 83, 65, 78, 68, 207, 71, 76, 69, 73, 67, 200,
+ 71, 76, 65, 71, 79, 76, 73, 128, 71, 76, 65, 128, 71, 74, 69, 128, 71,
+ 73, 88, 128, 71, 73, 84, 128, 71, 73, 83, 72, 128, 71, 73, 83, 200, 71,
+ 73, 83, 65, 76, 128, 71, 73, 82, 85, 68, 65, 65, 128, 71, 73, 82, 76,
+ 211, 71, 73, 82, 76, 128, 71, 73, 82, 65, 70, 70, 197, 71, 73, 82, 51,
+ 128, 71, 73, 82, 179, 71, 73, 82, 50, 128, 71, 73, 82, 178, 71, 73, 80,
+ 128, 71, 73, 78, 73, 73, 128, 71, 73, 77, 69, 76, 128, 71, 73, 77, 69,
+ 204, 71, 73, 77, 128, 71, 73, 71, 65, 128, 71, 73, 71, 128, 71, 73, 70,
+ 212, 71, 73, 69, 84, 128, 71, 73, 68, 73, 77, 128, 71, 73, 66, 66, 79,
+ 85, 211, 71, 73, 66, 65, 128, 71, 73, 52, 128, 71, 73, 180, 71, 72, 90,
+ 128, 71, 72, 87, 65, 128, 71, 72, 85, 78, 78, 65, 128, 71, 72, 85, 78,
+ 78, 193, 71, 72, 85, 128, 71, 72, 79, 85, 128, 71, 72, 79, 83, 84, 128,
+ 71, 72, 79, 128, 71, 72, 73, 77, 69, 76, 128, 71, 72, 73, 128, 71, 72,
+ 72, 65, 128, 71, 72, 69, 89, 83, 128, 71, 72, 69, 85, 88, 128, 71, 72,
+ 69, 85, 78, 128, 71, 72, 69, 85, 71, 72, 69, 85, 65, 69, 77, 128, 71, 72,
+ 69, 85, 71, 72, 69, 78, 128, 71, 72, 69, 85, 65, 69, 82, 65, 69, 128, 71,
+ 72, 69, 85, 65, 69, 71, 72, 69, 85, 65, 69, 128, 71, 72, 69, 84, 128, 71,
+ 72, 69, 69, 128, 71, 72, 69, 128, 71, 72, 197, 71, 72, 65, 89, 78, 128,
+ 71, 72, 65, 82, 65, 69, 128, 71, 72, 65, 80, 128, 71, 72, 65, 78, 128,
+ 71, 72, 65, 77, 77, 65, 128, 71, 72, 65, 77, 65, 76, 128, 71, 72, 65, 73,
+ 78, 85, 128, 71, 72, 65, 73, 78, 128, 71, 72, 65, 73, 206, 71, 72, 65,
+ 68, 128, 71, 72, 65, 65, 77, 65, 69, 128, 71, 72, 65, 65, 128, 71, 71,
+ 87, 73, 128, 71, 71, 87, 69, 69, 128, 71, 71, 87, 69, 128, 71, 71, 87,
+ 65, 65, 128, 71, 71, 87, 65, 128, 71, 71, 85, 88, 128, 71, 71, 85, 84,
+ 128, 71, 71, 85, 82, 88, 128, 71, 71, 85, 82, 128, 71, 71, 85, 79, 88,
+ 128, 71, 71, 85, 79, 84, 128, 71, 71, 85, 79, 80, 128, 71, 71, 85, 79,
+ 128, 71, 71, 79, 88, 128, 71, 71, 79, 84, 128, 71, 71, 79, 80, 128, 71,
+ 71, 73, 88, 128, 71, 71, 73, 84, 128, 71, 71, 73, 69, 88, 128, 71, 71,
+ 73, 69, 80, 128, 71, 71, 73, 69, 128, 71, 71, 69, 88, 128, 71, 71, 69,
+ 84, 128, 71, 71, 69, 80, 128, 71, 71, 65, 88, 128, 71, 71, 65, 84, 128,
+ 71, 69, 84, 193, 71, 69, 83, 84, 85, 82, 69, 128, 71, 69, 83, 72, 85,
+ 128, 71, 69, 83, 72, 84, 73, 78, 128, 71, 69, 83, 72, 84, 73, 206, 71,
+ 69, 83, 72, 50, 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, 71, 69, 82,
+ 77, 65, 206, 71, 69, 82, 69, 83, 72, 128, 71, 69, 82, 69, 83, 200, 71,
+ 69, 79, 77, 69, 84, 82, 73, 67, 65, 76, 76, 217, 71, 69, 79, 77, 69, 84,
+ 82, 73, 195, 71, 69, 78, 84, 76, 197, 71, 69, 78, 73, 84, 73, 86, 69,
+ 128, 71, 69, 78, 73, 75, 201, 71, 69, 78, 73, 69, 128, 71, 69, 78, 69,
+ 82, 73, 195, 71, 69, 78, 69, 82, 65, 76, 128, 71, 69, 77, 73, 78, 73,
128, 71, 69, 77, 73, 78, 65, 84, 73, 79, 206, 71, 69, 77, 73, 78, 65, 84,
197, 71, 69, 205, 71, 69, 69, 77, 128, 71, 69, 68, 79, 76, 65, 128, 71,
69, 68, 69, 128, 71, 69, 66, 207, 71, 69, 66, 193, 71, 69, 65, 82, 128,
@@ -4134,237 +4134,237 @@ static const unsigned char lexicon[] = {
128, 71, 65, 85, 78, 84, 76, 69, 84, 128, 71, 65, 84, 72, 69, 82, 73, 78,
71, 128, 71, 65, 84, 72, 69, 82, 73, 78, 199, 71, 65, 84, 69, 128, 71,
65, 83, 72, 65, 78, 128, 71, 65, 82, 83, 72, 85, 78, 73, 128, 71, 65, 82,
- 79, 78, 128, 71, 65, 82, 77, 69, 78, 84, 128, 71, 65, 82, 76, 73, 67,
- 128, 71, 65, 82, 68, 69, 78, 128, 71, 65, 82, 51, 128, 71, 65, 80, 80,
- 69, 196, 71, 65, 208, 71, 65, 78, 77, 65, 128, 71, 65, 78, 71, 73, 65,
- 128, 71, 65, 78, 68, 193, 71, 65, 78, 50, 128, 71, 65, 78, 178, 71, 65,
- 77, 77, 65, 128, 71, 65, 77, 76, 65, 128, 71, 65, 77, 76, 128, 71, 65,
- 77, 69, 128, 71, 65, 77, 197, 71, 65, 77, 65, 78, 128, 71, 65, 77, 65,
- 76, 128, 71, 65, 77, 65, 204, 71, 65, 76, 201, 71, 65, 71, 128, 71, 65,
- 70, 128, 71, 65, 198, 71, 65, 69, 84, 84, 65, 45, 80, 73, 76, 76, 65,
- 128, 71, 65, 68, 79, 76, 128, 71, 65, 68, 128, 71, 65, 196, 71, 65, 66,
- 65, 128, 71, 65, 66, 193, 71, 65, 65, 70, 85, 128, 71, 65, 178, 71, 48,
- 53, 52, 128, 71, 48, 53, 51, 128, 71, 48, 53, 50, 128, 71, 48, 53, 49,
- 128, 71, 48, 53, 48, 128, 71, 48, 52, 57, 128, 71, 48, 52, 56, 128, 71,
- 48, 52, 55, 128, 71, 48, 52, 54, 128, 71, 48, 52, 53, 65, 128, 71, 48,
- 52, 53, 128, 71, 48, 52, 52, 128, 71, 48, 52, 51, 65, 128, 71, 48, 52,
- 51, 128, 71, 48, 52, 50, 128, 71, 48, 52, 49, 128, 71, 48, 52, 48, 128,
- 71, 48, 51, 57, 128, 71, 48, 51, 56, 128, 71, 48, 51, 55, 65, 128, 71,
- 48, 51, 55, 128, 71, 48, 51, 54, 65, 128, 71, 48, 51, 54, 128, 71, 48,
- 51, 53, 128, 71, 48, 51, 52, 128, 71, 48, 51, 51, 128, 71, 48, 51, 50,
- 128, 71, 48, 51, 49, 128, 71, 48, 51, 48, 128, 71, 48, 50, 57, 128, 71,
- 48, 50, 56, 128, 71, 48, 50, 55, 128, 71, 48, 50, 54, 65, 128, 71, 48,
- 50, 54, 128, 71, 48, 50, 53, 128, 71, 48, 50, 52, 128, 71, 48, 50, 51,
- 128, 71, 48, 50, 50, 128, 71, 48, 50, 49, 128, 71, 48, 50, 48, 65, 128,
- 71, 48, 50, 48, 128, 71, 48, 49, 57, 128, 71, 48, 49, 56, 128, 71, 48,
- 49, 55, 128, 71, 48, 49, 54, 128, 71, 48, 49, 53, 128, 71, 48, 49, 52,
- 128, 71, 48, 49, 51, 128, 71, 48, 49, 50, 128, 71, 48, 49, 49, 65, 128,
- 71, 48, 49, 49, 128, 71, 48, 49, 48, 128, 71, 48, 48, 57, 128, 71, 48,
- 48, 56, 128, 71, 48, 48, 55, 66, 128, 71, 48, 48, 55, 65, 128, 71, 48,
- 48, 55, 128, 71, 48, 48, 54, 65, 128, 71, 48, 48, 54, 128, 71, 48, 48,
- 53, 128, 71, 48, 48, 52, 128, 71, 48, 48, 51, 128, 71, 48, 48, 50, 128,
- 71, 48, 48, 49, 128, 70, 89, 88, 128, 70, 89, 84, 128, 70, 89, 80, 128,
- 70, 89, 65, 128, 70, 87, 73, 128, 70, 87, 69, 69, 128, 70, 87, 69, 128,
- 70, 87, 65, 65, 128, 70, 87, 65, 128, 70, 86, 83, 51, 128, 70, 86, 83,
- 50, 128, 70, 86, 83, 49, 128, 70, 85, 88, 128, 70, 85, 84, 128, 70, 85,
- 83, 69, 128, 70, 85, 83, 193, 70, 85, 82, 88, 128, 70, 85, 80, 128, 70,
- 85, 78, 69, 82, 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 65, 204, 70, 85,
- 78, 67, 84, 73, 79, 78, 128, 70, 85, 76, 76, 78, 69, 83, 83, 128, 70, 85,
- 76, 204, 70, 85, 74, 73, 128, 70, 85, 69, 84, 128, 70, 85, 69, 204, 70,
- 85, 69, 128, 70, 85, 65, 128, 70, 84, 72, 79, 82, 193, 70, 83, 73, 128,
- 70, 82, 79, 87, 78, 73, 78, 71, 128, 70, 82, 79, 87, 78, 73, 78, 199, 70,
- 82, 79, 87, 78, 128, 70, 82, 79, 87, 206, 70, 82, 79, 78, 84, 45, 84, 73,
- 76, 84, 69, 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, 73, 78, 199, 70, 82,
- 79, 78, 212, 70, 82, 79, 205, 70, 82, 79, 71, 128, 70, 82, 79, 199, 70,
- 82, 73, 84, 85, 128, 70, 82, 73, 69, 83, 128, 70, 82, 73, 69, 196, 70,
- 82, 73, 67, 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, 66, 79, 65, 82, 68,
- 128, 70, 82, 69, 78, 67, 200, 70, 82, 69, 69, 90, 73, 78, 199, 70, 82,
- 69, 69, 128, 70, 82, 69, 197, 70, 82, 65, 78, 75, 211, 70, 82, 65, 78,
- 195, 70, 82, 65, 77, 69, 83, 128, 70, 82, 65, 77, 69, 128, 70, 82, 65,
- 77, 197, 70, 82, 65, 75, 84, 85, 210, 70, 82, 65, 71, 82, 65, 78, 84,
- 128, 70, 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, 84, 73, 79,
- 206, 70, 79, 88, 128, 70, 79, 216, 70, 79, 85, 82, 84, 69, 69, 78, 128,
- 70, 79, 85, 82, 84, 69, 69, 206, 70, 79, 85, 82, 45, 84, 72, 73, 82, 84,
- 89, 128, 70, 79, 85, 82, 45, 83, 84, 82, 73, 78, 199, 70, 79, 85, 82, 45,
- 80, 69, 82, 45, 69, 205, 70, 79, 85, 82, 45, 76, 73, 78, 197, 70, 79, 85,
- 210, 70, 79, 85, 78, 84, 65, 73, 78, 128, 70, 79, 85, 78, 84, 65, 73,
- 206, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65, 82, 68,
- 128, 70, 79, 82, 87, 65, 82, 196, 70, 79, 82, 84, 89, 45, 70, 73, 86,
- 197, 70, 79, 82, 84, 89, 128, 70, 79, 82, 84, 217, 70, 79, 82, 84, 85,
- 78, 197, 70, 79, 82, 84, 73, 69, 84, 72, 128, 70, 79, 82, 84, 69, 128,
- 70, 79, 82, 77, 211, 70, 79, 82, 77, 69, 69, 128, 70, 79, 82, 77, 69,
- 197, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 82, 77, 65,
- 212, 70, 79, 82, 75, 69, 196, 70, 79, 82, 69, 72, 69, 65, 196, 70, 79,
- 82, 67, 69, 83, 128, 70, 79, 82, 67, 69, 128, 70, 79, 80, 128, 70, 79,
- 79, 84, 83, 84, 79, 79, 76, 128, 70, 79, 79, 84, 80, 82, 73, 78, 84, 83,
- 128, 70, 79, 79, 84, 78, 79, 84, 197, 70, 79, 79, 84, 66, 65, 76, 76,
- 128, 70, 79, 79, 84, 128, 70, 79, 79, 76, 128, 70, 79, 79, 68, 128, 70,
- 79, 79, 128, 70, 79, 78, 212, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79,
- 78, 68, 85, 69, 128, 70, 79, 77, 128, 70, 79, 76, 76, 89, 128, 70, 79,
- 76, 76, 79, 87, 73, 78, 71, 128, 70, 79, 76, 68, 69, 82, 128, 70, 79, 76,
- 68, 69, 196, 70, 79, 71, 71, 89, 128, 70, 79, 71, 128, 70, 207, 70, 77,
- 128, 70, 76, 89, 73, 78, 199, 70, 76, 89, 128, 70, 76, 85, 84, 84, 69,
- 82, 73, 78, 71, 128, 70, 76, 85, 84, 84, 69, 82, 73, 78, 199, 70, 76, 85,
- 84, 69, 128, 70, 76, 85, 83, 72, 69, 196, 70, 76, 79, 87, 73, 78, 199,
- 70, 76, 79, 87, 69, 82, 83, 128, 70, 76, 79, 87, 69, 210, 70, 76, 79, 85,
- 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, 84, 69, 128, 70, 76, 79, 82,
- 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, 79, 79, 82, 128, 70, 76, 79,
- 79, 210, 70, 76, 73, 80, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, 73,
- 67, 203, 70, 76, 69, 88, 85, 83, 128, 70, 76, 69, 88, 69, 196, 70, 76,
- 69, 88, 128, 70, 76, 69, 85, 82, 79, 78, 128, 70, 76, 69, 85, 82, 45, 68,
- 69, 45, 76, 73, 83, 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 70, 76, 65,
- 84, 78, 69, 83, 83, 128, 70, 76, 65, 84, 66, 82, 69, 65, 68, 128, 70, 76,
- 65, 83, 72, 128, 70, 76, 65, 77, 73, 78, 71, 79, 128, 70, 76, 65, 77, 69,
- 128, 70, 76, 65, 71, 83, 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, 65,
- 71, 45, 52, 128, 70, 76, 65, 71, 45, 51, 128, 70, 76, 65, 71, 45, 50,
- 128, 70, 76, 65, 71, 45, 49, 128, 70, 76, 65, 71, 128, 70, 76, 65, 199,
- 70, 76, 65, 128, 70, 76, 128, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205,
- 70, 73, 88, 128, 70, 73, 86, 69, 45, 84, 72, 73, 82, 84, 89, 128, 70, 73,
- 86, 69, 45, 76, 73, 78, 197, 70, 73, 84, 90, 80, 65, 84, 82, 73, 67, 203,
- 70, 73, 84, 65, 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70, 73,
- 83, 72, 73, 78, 199, 70, 73, 83, 72, 72, 79, 79, 75, 128, 70, 73, 83, 72,
- 72, 79, 79, 203, 70, 73, 83, 72, 69, 89, 69, 128, 70, 73, 83, 72, 128,
- 70, 73, 83, 200, 70, 73, 82, 83, 212, 70, 73, 82, 73, 128, 70, 73, 82,
- 69, 87, 79, 82, 75, 83, 128, 70, 73, 82, 69, 87, 79, 82, 203, 70, 73, 82,
- 69, 67, 82, 65, 67, 75, 69, 82, 128, 70, 73, 82, 69, 128, 70, 73, 82,
- 197, 70, 73, 80, 128, 70, 73, 78, 73, 84, 197, 70, 73, 78, 71, 69, 82,
- 83, 128, 70, 73, 78, 71, 69, 82, 211, 70, 73, 78, 71, 69, 82, 78, 65, 73,
- 76, 83, 128, 70, 73, 78, 71, 69, 82, 69, 196, 70, 73, 78, 71, 69, 82, 45,
- 80, 79, 83, 212, 70, 73, 78, 71, 69, 82, 128, 70, 73, 78, 71, 69, 210,
- 70, 73, 78, 65, 78, 67, 73, 65, 76, 128, 70, 73, 78, 65, 76, 128, 70, 73,
- 76, 205, 70, 73, 76, 76, 69, 82, 45, 50, 128, 70, 73, 76, 76, 69, 82, 45,
- 49, 128, 70, 73, 76, 76, 69, 82, 128, 70, 73, 76, 76, 69, 196, 70, 73,
- 76, 76, 128, 70, 73, 76, 204, 70, 73, 76, 197, 70, 73, 73, 128, 70, 73,
- 71, 85, 82, 69, 45, 51, 128, 70, 73, 71, 85, 82, 69, 45, 50, 128, 70, 73,
- 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, 128, 70, 73, 71, 85,
- 82, 197, 70, 73, 71, 72, 84, 128, 70, 73, 70, 84, 89, 128, 70, 73, 70,
- 84, 217, 70, 73, 70, 84, 72, 83, 128, 70, 73, 70, 84, 72, 128, 70, 73,
- 70, 84, 69, 69, 78, 128, 70, 73, 70, 84, 69, 69, 206, 70, 73, 69, 76, 68,
- 128, 70, 73, 69, 76, 196, 70, 72, 84, 79, 82, 193, 70, 70, 76, 128, 70,
- 70, 73, 128, 70, 69, 85, 88, 128, 70, 69, 85, 70, 69, 85, 65, 69, 84,
- 128, 70, 69, 84, 72, 128, 70, 69, 83, 84, 73, 86, 65, 76, 128, 70, 69,
- 82, 82, 89, 128, 70, 69, 82, 82, 73, 211, 70, 69, 82, 77, 65, 84, 65,
- 128, 70, 69, 82, 77, 65, 84, 193, 70, 69, 79, 200, 70, 69, 78, 199, 70,
- 69, 78, 67, 69, 82, 128, 70, 69, 78, 67, 69, 128, 70, 69, 77, 73, 78, 73,
- 78, 197, 70, 69, 77, 65, 76, 69, 128, 70, 69, 77, 65, 76, 197, 70, 69,
- 76, 76, 79, 87, 83, 72, 73, 80, 128, 70, 69, 73, 128, 70, 69, 72, 213,
- 70, 69, 72, 128, 70, 69, 200, 70, 69, 69, 78, 71, 128, 70, 69, 69, 77,
- 128, 70, 69, 69, 68, 128, 70, 69, 69, 196, 70, 69, 69, 128, 70, 69, 66,
- 82, 85, 65, 82, 89, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 69, 65, 84,
- 72, 69, 210, 70, 69, 65, 82, 78, 128, 70, 69, 65, 82, 70, 85, 204, 70,
- 69, 65, 82, 128, 70, 65, 89, 65, 78, 78, 65, 128, 70, 65, 89, 128, 70,
- 65, 88, 128, 70, 65, 216, 70, 65, 84, 73, 71, 85, 69, 128, 70, 65, 84,
- 72, 69, 82, 128, 70, 65, 84, 72, 69, 210, 70, 65, 84, 72, 65, 84, 65, 78,
- 128, 70, 65, 84, 72, 65, 84, 65, 206, 70, 65, 84, 72, 65, 128, 70, 65,
- 84, 72, 193, 70, 65, 84, 128, 70, 65, 83, 84, 128, 70, 65, 82, 83, 201,
- 70, 65, 82, 128, 70, 65, 81, 128, 70, 65, 80, 128, 70, 65, 78, 71, 128,
- 70, 65, 78, 69, 82, 79, 83, 73, 211, 70, 65, 78, 128, 70, 65, 77, 73, 76,
- 89, 128, 70, 65, 77, 128, 70, 65, 76, 76, 69, 206, 70, 65, 76, 65, 70,
- 69, 76, 128, 70, 65, 74, 128, 70, 65, 73, 82, 89, 128, 70, 65, 73, 76,
- 85, 82, 69, 128, 70, 65, 73, 72, 85, 128, 70, 65, 73, 66, 128, 70, 65,
- 72, 82, 69, 78, 72, 69, 73, 84, 128, 70, 65, 67, 84, 79, 82, 89, 128, 70,
- 65, 67, 84, 79, 210, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 67, 73,
- 78, 71, 83, 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, 67, 69, 45, 53,
- 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45, 51, 128, 70, 65,
- 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, 65, 77, 65, 69,
- 128, 70, 65, 65, 73, 128, 70, 65, 65, 70, 85, 128, 70, 48, 53, 51, 128,
- 70, 48, 53, 50, 128, 70, 48, 53, 49, 67, 128, 70, 48, 53, 49, 66, 128,
- 70, 48, 53, 49, 65, 128, 70, 48, 53, 49, 128, 70, 48, 53, 48, 128, 70,
- 48, 52, 57, 128, 70, 48, 52, 56, 128, 70, 48, 52, 55, 65, 128, 70, 48,
- 52, 55, 128, 70, 48, 52, 54, 65, 128, 70, 48, 52, 54, 128, 70, 48, 52,
- 53, 65, 128, 70, 48, 52, 53, 128, 70, 48, 52, 52, 128, 70, 48, 52, 51,
- 128, 70, 48, 52, 50, 128, 70, 48, 52, 49, 128, 70, 48, 52, 48, 128, 70,
- 48, 51, 57, 128, 70, 48, 51, 56, 65, 128, 70, 48, 51, 56, 128, 70, 48,
- 51, 55, 65, 128, 70, 48, 51, 55, 128, 70, 48, 51, 54, 128, 70, 48, 51,
- 53, 128, 70, 48, 51, 52, 128, 70, 48, 51, 51, 128, 70, 48, 51, 50, 128,
- 70, 48, 51, 49, 65, 128, 70, 48, 51, 49, 128, 70, 48, 51, 48, 128, 70,
- 48, 50, 57, 128, 70, 48, 50, 56, 128, 70, 48, 50, 55, 128, 70, 48, 50,
- 54, 128, 70, 48, 50, 53, 128, 70, 48, 50, 52, 128, 70, 48, 50, 51, 128,
- 70, 48, 50, 50, 128, 70, 48, 50, 49, 65, 128, 70, 48, 50, 49, 128, 70,
- 48, 50, 48, 128, 70, 48, 49, 57, 128, 70, 48, 49, 56, 128, 70, 48, 49,
- 55, 128, 70, 48, 49, 54, 128, 70, 48, 49, 53, 128, 70, 48, 49, 52, 128,
- 70, 48, 49, 51, 65, 128, 70, 48, 49, 51, 128, 70, 48, 49, 50, 128, 70,
- 48, 49, 49, 128, 70, 48, 49, 48, 128, 70, 48, 48, 57, 128, 70, 48, 48,
- 56, 128, 70, 48, 48, 55, 128, 70, 48, 48, 54, 128, 70, 48, 48, 53, 128,
- 70, 48, 48, 52, 128, 70, 48, 48, 51, 128, 70, 48, 48, 50, 128, 70, 48,
- 48, 49, 65, 128, 70, 48, 48, 49, 128, 69, 90, 83, 128, 69, 90, 200, 69,
- 90, 69, 78, 128, 69, 90, 69, 206, 69, 90, 128, 69, 89, 89, 89, 128, 69,
- 89, 69, 83, 128, 69, 89, 69, 211, 69, 89, 69, 76, 65, 83, 72, 69, 211,
- 69, 89, 69, 71, 76, 65, 83, 83, 69, 83, 128, 69, 89, 69, 71, 65, 90, 69,
- 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 69, 89, 69, 71, 65, 90, 69, 45,
- 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 69, 89, 69, 66, 82, 79, 87, 211,
- 69, 89, 69, 66, 82, 79, 215, 69, 89, 197, 69, 89, 66, 69, 89, 70, 73, 76,
- 73, 128, 69, 89, 65, 78, 78, 65, 128, 69, 88, 84, 82, 69, 77, 69, 76,
- 217, 69, 88, 84, 82, 65, 84, 69, 82, 82, 69, 83, 84, 82, 73, 65, 204, 69,
- 88, 84, 82, 65, 45, 76, 79, 215, 69, 88, 84, 82, 65, 45, 72, 73, 71, 200,
- 69, 88, 84, 82, 193, 69, 88, 84, 73, 78, 71, 85, 73, 83, 72, 69, 82, 128,
- 69, 88, 84, 69, 78, 83, 73, 79, 78, 128, 69, 88, 84, 69, 78, 68, 69, 68,
- 128, 69, 88, 84, 69, 78, 68, 69, 196, 69, 88, 80, 82, 69, 83, 83, 73, 79,
- 78, 76, 69, 83, 211, 69, 88, 80, 79, 78, 69, 78, 212, 69, 88, 80, 76, 79,
- 68, 73, 78, 199, 69, 88, 79, 128, 69, 88, 207, 69, 88, 73, 83, 84, 83,
- 128, 69, 88, 73, 83, 84, 128, 69, 88, 72, 65, 85, 83, 84, 73, 79, 78,
- 128, 69, 88, 72, 65, 76, 69, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79,
- 78, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 206, 69, 88, 67, 73, 84,
- 69, 77, 69, 78, 84, 128, 69, 88, 67, 72, 65, 78, 71, 69, 128, 69, 88, 67,
- 69, 83, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, 128, 69, 87, 69,
- 128, 69, 86, 69, 82, 217, 69, 86, 69, 82, 71, 82, 69, 69, 206, 69, 86,
- 69, 78, 73, 78, 71, 128, 69, 85, 82, 79, 80, 69, 65, 206, 69, 85, 82, 79,
- 80, 69, 45, 65, 70, 82, 73, 67, 65, 128, 69, 85, 82, 79, 45, 67, 85, 82,
- 82, 69, 78, 67, 217, 69, 85, 82, 207, 69, 85, 76, 69, 210, 69, 85, 45,
- 85, 128, 69, 85, 45, 79, 128, 69, 85, 45, 69, 85, 128, 69, 85, 45, 69,
- 79, 128, 69, 85, 45, 69, 128, 69, 85, 45, 65, 128, 69, 84, 88, 128, 69,
- 84, 78, 65, 72, 84, 65, 128, 69, 84, 72, 69, 204, 69, 84, 69, 82, 79,
- 206, 69, 84, 69, 82, 78, 73, 84, 89, 128, 69, 84, 69, 82, 78, 73, 84,
- 217, 69, 84, 66, 128, 69, 83, 90, 128, 69, 83, 85, 75, 85, 85, 68, 79,
- 128, 69, 83, 84, 73, 77, 65, 84, 69, 83, 128, 69, 83, 84, 73, 77, 65, 84,
- 69, 196, 69, 83, 72, 69, 51, 128, 69, 83, 72, 50, 49, 128, 69, 83, 72,
- 49, 54, 128, 69, 83, 67, 65, 80, 69, 128, 69, 83, 67, 128, 69, 83, 65,
- 128, 69, 83, 45, 84, 69, 128, 69, 83, 45, 51, 128, 69, 83, 45, 50, 128,
- 69, 83, 45, 49, 128, 69, 82, 82, 79, 82, 45, 66, 65, 82, 82, 69, 196, 69,
- 82, 82, 128, 69, 82, 73, 211, 69, 82, 73, 78, 50, 128, 69, 82, 73, 78,
- 178, 69, 82, 71, 128, 69, 82, 65, 83, 197, 69, 81, 85, 73, 86, 65, 76,
- 69, 78, 212, 69, 81, 85, 73, 76, 65, 84, 69, 82, 65, 204, 69, 81, 85, 73,
- 72, 79, 80, 80, 69, 82, 128, 69, 81, 85, 73, 72, 79, 80, 80, 69, 210, 69,
- 81, 85, 73, 68, 128, 69, 81, 85, 73, 65, 78, 71, 85, 76, 65, 210, 69, 81,
- 85, 65, 76, 83, 128, 69, 81, 85, 65, 76, 211, 69, 81, 85, 65, 76, 128,
- 69, 80, 83, 73, 76, 79, 78, 128, 69, 80, 83, 73, 76, 79, 206, 69, 80, 79,
- 67, 72, 128, 69, 80, 73, 71, 82, 65, 80, 72, 73, 195, 69, 80, 73, 68, 65,
- 85, 82, 69, 65, 206, 69, 80, 69, 78, 84, 72, 69, 84, 73, 195, 69, 80, 69,
- 71, 69, 82, 77, 65, 128, 69, 80, 65, 67, 212, 69, 79, 84, 128, 69, 79,
- 77, 128, 69, 79, 76, 72, 88, 128, 69, 79, 76, 128, 69, 79, 72, 128, 69,
- 78, 89, 128, 69, 78, 86, 69, 76, 79, 80, 69, 128, 69, 78, 86, 69, 76, 79,
- 80, 197, 69, 78, 85, 77, 69, 82, 65, 84, 73, 79, 206, 69, 78, 84, 82, 89,
- 45, 50, 128, 69, 78, 84, 82, 89, 45, 49, 128, 69, 78, 84, 82, 89, 128,
- 69, 78, 84, 82, 217, 69, 78, 84, 72, 85, 83, 73, 65, 83, 77, 128, 69, 78,
- 84, 69, 82, 80, 82, 73, 83, 69, 128, 69, 78, 84, 69, 82, 73, 78, 199, 69,
- 78, 84, 69, 82, 128, 69, 78, 84, 69, 210, 69, 78, 84, 45, 83, 72, 65, 80,
- 69, 196, 69, 78, 81, 85, 73, 82, 89, 128, 69, 78, 81, 128, 69, 78, 79,
- 211, 69, 78, 78, 73, 128, 69, 78, 78, 128, 69, 78, 76, 65, 82, 71, 69,
- 77, 69, 78, 84, 128, 69, 78, 71, 73, 78, 69, 128, 69, 78, 68, 79, 70, 79,
- 78, 79, 78, 128, 69, 78, 68, 73, 78, 199, 69, 78, 68, 69, 80, 128, 69,
- 78, 68, 69, 65, 86, 79, 85, 82, 128, 69, 78, 67, 79, 85, 78, 84, 69, 82,
- 83, 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 83, 128, 69, 78, 67, 76, 79,
- 83, 85, 82, 69, 128, 69, 78, 67, 76, 79, 83, 73, 78, 199, 69, 78, 67,
- 128, 69, 78, 65, 82, 88, 73, 211, 69, 78, 65, 82, 77, 79, 78, 73, 79,
- 211, 69, 77, 80, 84, 217, 69, 77, 80, 72, 65, 84, 73, 195, 69, 77, 80,
- 72, 65, 83, 73, 211, 69, 77, 79, 74, 201, 69, 77, 66, 82, 79, 73, 68, 69,
- 82, 89, 128, 69, 77, 66, 76, 69, 77, 128, 69, 77, 66, 69, 76, 76, 73, 83,
- 72, 77, 69, 78, 84, 128, 69, 77, 66, 69, 68, 68, 73, 78, 71, 128, 69, 76,
- 89, 77, 65, 73, 195, 69, 76, 89, 128, 69, 76, 84, 128, 69, 76, 76, 73,
- 80, 84, 73, 195, 69, 76, 76, 73, 80, 83, 73, 83, 128, 69, 76, 76, 73, 80,
- 83, 69, 128, 69, 76, 73, 70, 73, 128, 69, 76, 73, 70, 128, 69, 76, 69,
- 86, 69, 78, 45, 84, 72, 73, 82, 84, 89, 128, 69, 76, 69, 86, 69, 78, 128,
- 69, 76, 69, 86, 69, 206, 69, 76, 69, 86, 65, 84, 85, 211, 69, 76, 69, 86,
- 65, 84, 79, 82, 128, 69, 76, 69, 80, 72, 65, 78, 84, 128, 69, 76, 69, 77,
- 69, 78, 212, 69, 76, 69, 67, 84, 82, 79, 78, 73, 67, 83, 128, 69, 76, 69,
- 67, 84, 82, 73, 67, 65, 204, 69, 76, 69, 67, 84, 82, 73, 195, 69, 76, 66,
- 65, 83, 65, 206, 69, 76, 65, 77, 73, 84, 69, 128, 69, 76, 65, 77, 73, 84,
- 197, 69, 76, 65, 70, 82, 79, 78, 128, 69, 75, 83, 84, 82, 69, 80, 84, 79,
- 78, 128, 69, 75, 83, 128, 69, 75, 70, 79, 78, 73, 84, 73, 75, 79, 78,
- 128, 69, 75, 65, 82, 65, 128, 69, 75, 65, 77, 128, 69, 74, 69, 67, 212,
- 69, 73, 83, 128, 69, 73, 71, 72, 84, 89, 128, 69, 73, 71, 72, 84, 217,
- 69, 73, 71, 72, 84, 73, 69, 84, 72, 83, 128, 69, 73, 71, 72, 84, 73, 69,
- 84, 72, 128, 69, 73, 71, 72, 84, 72, 83, 128, 69, 73, 71, 72, 84, 72,
+ 79, 78, 128, 71, 65, 82, 77, 69, 78, 84, 128, 71, 65, 82, 76, 73, 67,
+ 128, 71, 65, 82, 68, 69, 78, 128, 71, 65, 82, 51, 128, 71, 65, 80, 80,
+ 69, 196, 71, 65, 208, 71, 65, 78, 77, 65, 128, 71, 65, 78, 71, 73, 65,
+ 128, 71, 65, 78, 68, 193, 71, 65, 78, 50, 128, 71, 65, 78, 178, 71, 65,
+ 77, 77, 65, 128, 71, 65, 77, 76, 65, 128, 71, 65, 77, 76, 128, 71, 65,
+ 77, 69, 128, 71, 65, 77, 197, 71, 65, 77, 65, 78, 128, 71, 65, 77, 65,
+ 76, 128, 71, 65, 77, 65, 204, 71, 65, 76, 201, 71, 65, 71, 128, 71, 65,
+ 70, 128, 71, 65, 198, 71, 65, 69, 84, 84, 65, 45, 80, 73, 76, 76, 65,
+ 128, 71, 65, 68, 79, 76, 128, 71, 65, 68, 128, 71, 65, 196, 71, 65, 66,
+ 65, 128, 71, 65, 66, 193, 71, 65, 65, 70, 85, 128, 71, 65, 178, 71, 48,
+ 53, 52, 128, 71, 48, 53, 51, 128, 71, 48, 53, 50, 128, 71, 48, 53, 49,
+ 128, 71, 48, 53, 48, 128, 71, 48, 52, 57, 128, 71, 48, 52, 56, 128, 71,
+ 48, 52, 55, 128, 71, 48, 52, 54, 128, 71, 48, 52, 53, 65, 128, 71, 48,
+ 52, 53, 128, 71, 48, 52, 52, 128, 71, 48, 52, 51, 65, 128, 71, 48, 52,
+ 51, 128, 71, 48, 52, 50, 128, 71, 48, 52, 49, 128, 71, 48, 52, 48, 128,
+ 71, 48, 51, 57, 128, 71, 48, 51, 56, 128, 71, 48, 51, 55, 65, 128, 71,
+ 48, 51, 55, 128, 71, 48, 51, 54, 65, 128, 71, 48, 51, 54, 128, 71, 48,
+ 51, 53, 128, 71, 48, 51, 52, 128, 71, 48, 51, 51, 128, 71, 48, 51, 50,
+ 128, 71, 48, 51, 49, 128, 71, 48, 51, 48, 128, 71, 48, 50, 57, 128, 71,
+ 48, 50, 56, 128, 71, 48, 50, 55, 128, 71, 48, 50, 54, 65, 128, 71, 48,
+ 50, 54, 128, 71, 48, 50, 53, 128, 71, 48, 50, 52, 128, 71, 48, 50, 51,
+ 128, 71, 48, 50, 50, 128, 71, 48, 50, 49, 128, 71, 48, 50, 48, 65, 128,
+ 71, 48, 50, 48, 128, 71, 48, 49, 57, 128, 71, 48, 49, 56, 128, 71, 48,
+ 49, 55, 128, 71, 48, 49, 54, 128, 71, 48, 49, 53, 128, 71, 48, 49, 52,
+ 128, 71, 48, 49, 51, 128, 71, 48, 49, 50, 128, 71, 48, 49, 49, 65, 128,
+ 71, 48, 49, 49, 128, 71, 48, 49, 48, 128, 71, 48, 48, 57, 128, 71, 48,
+ 48, 56, 128, 71, 48, 48, 55, 66, 128, 71, 48, 48, 55, 65, 128, 71, 48,
+ 48, 55, 128, 71, 48, 48, 54, 65, 128, 71, 48, 48, 54, 128, 71, 48, 48,
+ 53, 128, 71, 48, 48, 52, 128, 71, 48, 48, 51, 128, 71, 48, 48, 50, 128,
+ 71, 48, 48, 49, 128, 70, 89, 88, 128, 70, 89, 84, 128, 70, 89, 80, 128,
+ 70, 89, 65, 128, 70, 87, 73, 128, 70, 87, 69, 69, 128, 70, 87, 69, 128,
+ 70, 87, 65, 65, 128, 70, 87, 65, 128, 70, 86, 83, 51, 128, 70, 86, 83,
+ 50, 128, 70, 86, 83, 49, 128, 70, 85, 88, 128, 70, 85, 84, 128, 70, 85,
+ 83, 69, 128, 70, 85, 83, 193, 70, 85, 82, 88, 128, 70, 85, 80, 128, 70,
+ 85, 78, 69, 82, 65, 204, 70, 85, 78, 67, 84, 73, 79, 78, 65, 204, 70, 85,
+ 78, 67, 84, 73, 79, 78, 128, 70, 85, 76, 76, 78, 69, 83, 83, 128, 70, 85,
+ 76, 204, 70, 85, 74, 73, 128, 70, 85, 69, 84, 128, 70, 85, 69, 204, 70,
+ 85, 69, 128, 70, 85, 65, 128, 70, 84, 72, 79, 82, 193, 70, 83, 73, 128,
+ 70, 82, 79, 87, 78, 73, 78, 71, 128, 70, 82, 79, 87, 78, 73, 78, 199, 70,
+ 82, 79, 87, 78, 128, 70, 82, 79, 87, 206, 70, 82, 79, 78, 84, 45, 84, 73,
+ 76, 84, 69, 196, 70, 82, 79, 78, 84, 45, 70, 65, 67, 73, 78, 199, 70, 82,
+ 79, 78, 212, 70, 82, 79, 205, 70, 82, 79, 71, 128, 70, 82, 79, 199, 70,
+ 82, 73, 84, 85, 128, 70, 82, 73, 69, 83, 128, 70, 82, 73, 69, 196, 70,
+ 82, 73, 67, 65, 84, 73, 86, 69, 128, 70, 82, 69, 84, 66, 79, 65, 82, 68,
+ 128, 70, 82, 69, 78, 67, 200, 70, 82, 69, 69, 90, 73, 78, 199, 70, 82,
+ 69, 69, 128, 70, 82, 69, 197, 70, 82, 65, 78, 75, 211, 70, 82, 65, 78,
+ 195, 70, 82, 65, 77, 69, 83, 128, 70, 82, 65, 77, 69, 128, 70, 82, 65,
+ 77, 197, 70, 82, 65, 75, 84, 85, 210, 70, 82, 65, 71, 82, 65, 78, 84,
+ 128, 70, 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 67, 84, 73, 79,
+ 206, 70, 79, 88, 128, 70, 79, 216, 70, 79, 85, 82, 84, 69, 69, 78, 128,
+ 70, 79, 85, 82, 84, 69, 69, 206, 70, 79, 85, 82, 45, 84, 72, 73, 82, 84,
+ 89, 128, 70, 79, 85, 82, 45, 83, 84, 82, 73, 78, 199, 70, 79, 85, 82, 45,
+ 80, 69, 82, 45, 69, 205, 70, 79, 85, 82, 45, 76, 73, 78, 197, 70, 79, 85,
+ 210, 70, 79, 85, 78, 84, 65, 73, 78, 128, 70, 79, 85, 78, 84, 65, 73,
+ 206, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 79, 82, 87, 65, 82, 68,
+ 128, 70, 79, 82, 87, 65, 82, 196, 70, 79, 82, 84, 89, 45, 70, 73, 86,
+ 197, 70, 79, 82, 84, 89, 128, 70, 79, 82, 84, 217, 70, 79, 82, 84, 85,
+ 78, 197, 70, 79, 82, 84, 73, 69, 84, 72, 128, 70, 79, 82, 84, 69, 128,
+ 70, 79, 82, 77, 211, 70, 79, 82, 77, 69, 69, 128, 70, 79, 82, 77, 69,
+ 197, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 82, 77, 65,
+ 212, 70, 79, 82, 75, 69, 196, 70, 79, 82, 69, 72, 69, 65, 196, 70, 79,
+ 82, 67, 69, 83, 128, 70, 79, 82, 67, 69, 128, 70, 79, 80, 128, 70, 79,
+ 79, 84, 83, 84, 79, 79, 76, 128, 70, 79, 79, 84, 80, 82, 73, 78, 84, 83,
+ 128, 70, 79, 79, 84, 78, 79, 84, 197, 70, 79, 79, 84, 66, 65, 76, 76,
+ 128, 70, 79, 79, 84, 128, 70, 79, 79, 76, 128, 70, 79, 79, 68, 128, 70,
+ 79, 79, 128, 70, 79, 78, 212, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79,
+ 78, 68, 85, 69, 128, 70, 79, 77, 128, 70, 79, 76, 76, 89, 128, 70, 79,
+ 76, 76, 79, 87, 73, 78, 71, 128, 70, 79, 76, 68, 69, 82, 128, 70, 79, 76,
+ 68, 69, 196, 70, 79, 71, 71, 89, 128, 70, 79, 71, 128, 70, 207, 70, 77,
+ 128, 70, 76, 89, 73, 78, 199, 70, 76, 89, 128, 70, 76, 85, 84, 84, 69,
+ 82, 73, 78, 71, 128, 70, 76, 85, 84, 84, 69, 82, 73, 78, 199, 70, 76, 85,
+ 84, 69, 128, 70, 76, 85, 83, 72, 69, 196, 70, 76, 79, 87, 73, 78, 199,
+ 70, 76, 79, 87, 69, 82, 83, 128, 70, 76, 79, 87, 69, 210, 70, 76, 79, 85,
+ 82, 73, 83, 72, 128, 70, 76, 79, 82, 69, 84, 84, 69, 128, 70, 76, 79, 82,
+ 65, 204, 70, 76, 79, 80, 80, 217, 70, 76, 79, 79, 82, 128, 70, 76, 79,
+ 79, 210, 70, 76, 73, 80, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, 73,
+ 67, 203, 70, 76, 69, 88, 85, 83, 128, 70, 76, 69, 88, 69, 196, 70, 76,
+ 69, 88, 128, 70, 76, 69, 85, 82, 79, 78, 128, 70, 76, 69, 85, 82, 45, 68,
+ 69, 45, 76, 73, 83, 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 70, 76, 65,
+ 84, 78, 69, 83, 83, 128, 70, 76, 65, 84, 66, 82, 69, 65, 68, 128, 70, 76,
+ 65, 83, 72, 128, 70, 76, 65, 77, 73, 78, 71, 79, 128, 70, 76, 65, 77, 69,
+ 128, 70, 76, 65, 71, 83, 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, 65,
+ 71, 45, 52, 128, 70, 76, 65, 71, 45, 51, 128, 70, 76, 65, 71, 45, 50,
+ 128, 70, 76, 65, 71, 45, 49, 128, 70, 76, 65, 71, 128, 70, 76, 65, 199,
+ 70, 76, 65, 128, 70, 76, 128, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205,
+ 70, 73, 88, 128, 70, 73, 86, 69, 45, 84, 72, 73, 82, 84, 89, 128, 70, 73,
+ 86, 69, 45, 76, 73, 78, 197, 70, 73, 84, 90, 80, 65, 84, 82, 73, 67, 203,
+ 70, 73, 84, 65, 128, 70, 73, 84, 128, 70, 73, 83, 84, 69, 196, 70, 73,
+ 83, 72, 73, 78, 199, 70, 73, 83, 72, 72, 79, 79, 75, 128, 70, 73, 83, 72,
+ 72, 79, 79, 203, 70, 73, 83, 72, 69, 89, 69, 128, 70, 73, 83, 72, 128,
+ 70, 73, 83, 200, 70, 73, 82, 83, 212, 70, 73, 82, 73, 128, 70, 73, 82,
+ 69, 87, 79, 82, 75, 83, 128, 70, 73, 82, 69, 87, 79, 82, 203, 70, 73, 82,
+ 69, 67, 82, 65, 67, 75, 69, 82, 128, 70, 73, 82, 69, 128, 70, 73, 82,
+ 197, 70, 73, 80, 128, 70, 73, 78, 73, 84, 197, 70, 73, 78, 71, 69, 82,
+ 83, 128, 70, 73, 78, 71, 69, 82, 211, 70, 73, 78, 71, 69, 82, 78, 65, 73,
+ 76, 83, 128, 70, 73, 78, 71, 69, 82, 69, 196, 70, 73, 78, 71, 69, 82, 45,
+ 80, 79, 83, 212, 70, 73, 78, 71, 69, 82, 128, 70, 73, 78, 71, 69, 210,
+ 70, 73, 78, 65, 78, 67, 73, 65, 76, 128, 70, 73, 78, 65, 76, 128, 70, 73,
+ 76, 205, 70, 73, 76, 76, 69, 82, 45, 50, 128, 70, 73, 76, 76, 69, 82, 45,
+ 49, 128, 70, 73, 76, 76, 69, 82, 128, 70, 73, 76, 76, 69, 196, 70, 73,
+ 76, 76, 128, 70, 73, 76, 204, 70, 73, 76, 197, 70, 73, 73, 128, 70, 73,
+ 71, 85, 82, 69, 45, 51, 128, 70, 73, 71, 85, 82, 69, 45, 50, 128, 70, 73,
+ 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, 128, 70, 73, 71, 85,
+ 82, 197, 70, 73, 71, 72, 84, 128, 70, 73, 70, 84, 89, 128, 70, 73, 70,
+ 84, 217, 70, 73, 70, 84, 72, 83, 128, 70, 73, 70, 84, 72, 128, 70, 73,
+ 70, 84, 69, 69, 78, 128, 70, 73, 70, 84, 69, 69, 206, 70, 73, 69, 76, 68,
+ 128, 70, 73, 69, 76, 196, 70, 72, 84, 79, 82, 193, 70, 70, 76, 128, 70,
+ 70, 73, 128, 70, 69, 85, 88, 128, 70, 69, 85, 70, 69, 85, 65, 69, 84,
+ 128, 70, 69, 84, 72, 128, 70, 69, 83, 84, 73, 86, 65, 76, 128, 70, 69,
+ 82, 82, 89, 128, 70, 69, 82, 82, 73, 211, 70, 69, 82, 77, 65, 84, 65,
+ 128, 70, 69, 82, 77, 65, 84, 193, 70, 69, 79, 200, 70, 69, 78, 199, 70,
+ 69, 78, 67, 69, 82, 128, 70, 69, 78, 67, 69, 128, 70, 69, 77, 73, 78, 73,
+ 78, 197, 70, 69, 77, 65, 76, 69, 128, 70, 69, 77, 65, 76, 197, 70, 69,
+ 76, 76, 79, 87, 83, 72, 73, 80, 128, 70, 69, 73, 128, 70, 69, 72, 213,
+ 70, 69, 72, 128, 70, 69, 200, 70, 69, 69, 78, 71, 128, 70, 69, 69, 77,
+ 128, 70, 69, 69, 68, 128, 70, 69, 69, 196, 70, 69, 69, 128, 70, 69, 66,
+ 82, 85, 65, 82, 89, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 69, 65, 84,
+ 72, 69, 210, 70, 69, 65, 82, 78, 128, 70, 69, 65, 82, 70, 85, 204, 70,
+ 69, 65, 82, 128, 70, 65, 89, 65, 78, 78, 65, 128, 70, 65, 89, 128, 70,
+ 65, 88, 128, 70, 65, 216, 70, 65, 84, 73, 71, 85, 69, 128, 70, 65, 84,
+ 72, 69, 82, 128, 70, 65, 84, 72, 69, 210, 70, 65, 84, 72, 65, 84, 65, 78,
+ 128, 70, 65, 84, 72, 65, 84, 65, 206, 70, 65, 84, 72, 65, 128, 70, 65,
+ 84, 72, 193, 70, 65, 84, 128, 70, 65, 83, 84, 128, 70, 65, 82, 83, 201,
+ 70, 65, 82, 128, 70, 65, 81, 128, 70, 65, 80, 128, 70, 65, 78, 71, 128,
+ 70, 65, 78, 69, 82, 79, 83, 73, 211, 70, 65, 78, 128, 70, 65, 77, 73, 76,
+ 89, 128, 70, 65, 77, 128, 70, 65, 76, 76, 69, 206, 70, 65, 76, 65, 70,
+ 69, 76, 128, 70, 65, 74, 128, 70, 65, 73, 82, 89, 128, 70, 65, 73, 76,
+ 85, 82, 69, 128, 70, 65, 73, 72, 85, 128, 70, 65, 73, 66, 128, 70, 65,
+ 72, 82, 69, 78, 72, 69, 73, 84, 128, 70, 65, 67, 84, 79, 82, 89, 128, 70,
+ 65, 67, 84, 79, 210, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 67, 73,
+ 78, 71, 83, 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, 67, 69, 45, 53,
+ 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45, 51, 128, 70, 65,
+ 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, 65, 77, 65, 69,
+ 128, 70, 65, 65, 73, 128, 70, 65, 65, 70, 85, 128, 70, 48, 53, 51, 128,
+ 70, 48, 53, 50, 128, 70, 48, 53, 49, 67, 128, 70, 48, 53, 49, 66, 128,
+ 70, 48, 53, 49, 65, 128, 70, 48, 53, 49, 128, 70, 48, 53, 48, 128, 70,
+ 48, 52, 57, 128, 70, 48, 52, 56, 128, 70, 48, 52, 55, 65, 128, 70, 48,
+ 52, 55, 128, 70, 48, 52, 54, 65, 128, 70, 48, 52, 54, 128, 70, 48, 52,
+ 53, 65, 128, 70, 48, 52, 53, 128, 70, 48, 52, 52, 128, 70, 48, 52, 51,
+ 128, 70, 48, 52, 50, 128, 70, 48, 52, 49, 128, 70, 48, 52, 48, 128, 70,
+ 48, 51, 57, 128, 70, 48, 51, 56, 65, 128, 70, 48, 51, 56, 128, 70, 48,
+ 51, 55, 65, 128, 70, 48, 51, 55, 128, 70, 48, 51, 54, 128, 70, 48, 51,
+ 53, 128, 70, 48, 51, 52, 128, 70, 48, 51, 51, 128, 70, 48, 51, 50, 128,
+ 70, 48, 51, 49, 65, 128, 70, 48, 51, 49, 128, 70, 48, 51, 48, 128, 70,
+ 48, 50, 57, 128, 70, 48, 50, 56, 128, 70, 48, 50, 55, 128, 70, 48, 50,
+ 54, 128, 70, 48, 50, 53, 128, 70, 48, 50, 52, 128, 70, 48, 50, 51, 128,
+ 70, 48, 50, 50, 128, 70, 48, 50, 49, 65, 128, 70, 48, 50, 49, 128, 70,
+ 48, 50, 48, 128, 70, 48, 49, 57, 128, 70, 48, 49, 56, 128, 70, 48, 49,
+ 55, 128, 70, 48, 49, 54, 128, 70, 48, 49, 53, 128, 70, 48, 49, 52, 128,
+ 70, 48, 49, 51, 65, 128, 70, 48, 49, 51, 128, 70, 48, 49, 50, 128, 70,
+ 48, 49, 49, 128, 70, 48, 49, 48, 128, 70, 48, 48, 57, 128, 70, 48, 48,
+ 56, 128, 70, 48, 48, 55, 128, 70, 48, 48, 54, 128, 70, 48, 48, 53, 128,
+ 70, 48, 48, 52, 128, 70, 48, 48, 51, 128, 70, 48, 48, 50, 128, 70, 48,
+ 48, 49, 65, 128, 70, 48, 48, 49, 128, 69, 90, 83, 128, 69, 90, 200, 69,
+ 90, 69, 78, 128, 69, 90, 69, 206, 69, 90, 128, 69, 89, 89, 89, 128, 69,
+ 89, 69, 83, 128, 69, 89, 69, 211, 69, 89, 69, 76, 65, 83, 72, 69, 211,
+ 69, 89, 69, 71, 76, 65, 83, 83, 69, 83, 128, 69, 89, 69, 71, 65, 90, 69,
+ 45, 87, 65, 76, 76, 80, 76, 65, 78, 197, 69, 89, 69, 71, 65, 90, 69, 45,
+ 70, 76, 79, 79, 82, 80, 76, 65, 78, 197, 69, 89, 69, 66, 82, 79, 87, 211,
+ 69, 89, 69, 66, 82, 79, 215, 69, 89, 197, 69, 89, 66, 69, 89, 70, 73, 76,
+ 73, 128, 69, 89, 65, 78, 78, 65, 128, 69, 88, 84, 82, 69, 77, 69, 76,
+ 217, 69, 88, 84, 82, 65, 84, 69, 82, 82, 69, 83, 84, 82, 73, 65, 204, 69,
+ 88, 84, 82, 65, 45, 76, 79, 215, 69, 88, 84, 82, 65, 45, 72, 73, 71, 200,
+ 69, 88, 84, 82, 193, 69, 88, 84, 73, 78, 71, 85, 73, 83, 72, 69, 82, 128,
+ 69, 88, 84, 69, 78, 83, 73, 79, 78, 128, 69, 88, 84, 69, 78, 68, 69, 68,
+ 128, 69, 88, 84, 69, 78, 68, 69, 196, 69, 88, 80, 82, 69, 83, 83, 73, 79,
+ 78, 76, 69, 83, 211, 69, 88, 80, 79, 78, 69, 78, 212, 69, 88, 80, 76, 79,
+ 68, 73, 78, 199, 69, 88, 79, 128, 69, 88, 207, 69, 88, 73, 83, 84, 83,
+ 128, 69, 88, 73, 83, 84, 128, 69, 88, 72, 65, 85, 83, 84, 73, 79, 78,
+ 128, 69, 88, 72, 65, 76, 69, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79,
+ 78, 128, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 206, 69, 88, 67, 73, 84,
+ 69, 77, 69, 78, 84, 128, 69, 88, 67, 72, 65, 78, 71, 69, 128, 69, 88, 67,
+ 69, 83, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, 128, 69, 87, 69,
+ 128, 69, 86, 69, 82, 217, 69, 86, 69, 82, 71, 82, 69, 69, 206, 69, 86,
+ 69, 78, 73, 78, 71, 128, 69, 85, 82, 79, 80, 69, 65, 206, 69, 85, 82, 79,
+ 80, 69, 45, 65, 70, 82, 73, 67, 65, 128, 69, 85, 82, 79, 45, 67, 85, 82,
+ 82, 69, 78, 67, 217, 69, 85, 82, 207, 69, 85, 76, 69, 210, 69, 85, 45,
+ 85, 128, 69, 85, 45, 79, 128, 69, 85, 45, 69, 85, 128, 69, 85, 45, 69,
+ 79, 128, 69, 85, 45, 69, 128, 69, 85, 45, 65, 128, 69, 84, 88, 128, 69,
+ 84, 78, 65, 72, 84, 65, 128, 69, 84, 72, 69, 204, 69, 84, 69, 82, 79,
+ 206, 69, 84, 69, 82, 78, 73, 84, 89, 128, 69, 84, 69, 82, 78, 73, 84,
+ 217, 69, 84, 66, 128, 69, 83, 90, 128, 69, 83, 85, 75, 85, 85, 68, 79,
+ 128, 69, 83, 84, 73, 77, 65, 84, 69, 83, 128, 69, 83, 84, 73, 77, 65, 84,
+ 69, 196, 69, 83, 72, 69, 51, 128, 69, 83, 72, 50, 49, 128, 69, 83, 72,
+ 49, 54, 128, 69, 83, 67, 65, 80, 69, 128, 69, 83, 67, 128, 69, 83, 65,
+ 128, 69, 83, 45, 84, 69, 128, 69, 83, 45, 51, 128, 69, 83, 45, 50, 128,
+ 69, 83, 45, 49, 128, 69, 82, 82, 79, 82, 45, 66, 65, 82, 82, 69, 196, 69,
+ 82, 82, 128, 69, 82, 73, 211, 69, 82, 73, 78, 50, 128, 69, 82, 73, 78,
+ 178, 69, 82, 71, 128, 69, 82, 65, 83, 197, 69, 81, 85, 73, 86, 65, 76,
+ 69, 78, 212, 69, 81, 85, 73, 76, 65, 84, 69, 82, 65, 204, 69, 81, 85, 73,
+ 72, 79, 80, 80, 69, 82, 128, 69, 81, 85, 73, 72, 79, 80, 80, 69, 210, 69,
+ 81, 85, 73, 68, 128, 69, 81, 85, 73, 65, 78, 71, 85, 76, 65, 210, 69, 81,
+ 85, 65, 76, 83, 128, 69, 81, 85, 65, 76, 211, 69, 81, 85, 65, 76, 128,
+ 69, 80, 83, 73, 76, 79, 78, 128, 69, 80, 83, 73, 76, 79, 206, 69, 80, 79,
+ 67, 72, 128, 69, 80, 73, 71, 82, 65, 80, 72, 73, 195, 69, 80, 73, 68, 65,
+ 85, 82, 69, 65, 206, 69, 80, 69, 78, 84, 72, 69, 84, 73, 195, 69, 80, 69,
+ 71, 69, 82, 77, 65, 128, 69, 80, 65, 67, 212, 69, 79, 84, 128, 69, 79,
+ 77, 128, 69, 79, 76, 72, 88, 128, 69, 79, 76, 128, 69, 79, 72, 128, 69,
+ 78, 89, 128, 69, 78, 86, 69, 76, 79, 80, 69, 128, 69, 78, 86, 69, 76, 79,
+ 80, 197, 69, 78, 85, 77, 69, 82, 65, 84, 73, 79, 206, 69, 78, 84, 82, 89,
+ 45, 50, 128, 69, 78, 84, 82, 89, 45, 49, 128, 69, 78, 84, 82, 89, 128,
+ 69, 78, 84, 82, 217, 69, 78, 84, 72, 85, 83, 73, 65, 83, 77, 128, 69, 78,
+ 84, 69, 82, 80, 82, 73, 83, 69, 128, 69, 78, 84, 69, 82, 73, 78, 199, 69,
+ 78, 84, 69, 82, 128, 69, 78, 84, 69, 210, 69, 78, 84, 45, 83, 72, 65, 80,
+ 69, 196, 69, 78, 81, 85, 73, 82, 89, 128, 69, 78, 81, 128, 69, 78, 79,
+ 211, 69, 78, 78, 73, 128, 69, 78, 78, 128, 69, 78, 76, 65, 82, 71, 69,
+ 77, 69, 78, 84, 128, 69, 78, 71, 73, 78, 69, 128, 69, 78, 68, 79, 70, 79,
+ 78, 79, 78, 128, 69, 78, 68, 73, 78, 199, 69, 78, 68, 69, 80, 128, 69,
+ 78, 68, 69, 65, 86, 79, 85, 82, 128, 69, 78, 67, 79, 85, 78, 84, 69, 82,
+ 83, 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 83, 128, 69, 78, 67, 76, 79,
+ 83, 85, 82, 69, 128, 69, 78, 67, 76, 79, 83, 73, 78, 199, 69, 78, 67,
+ 128, 69, 78, 65, 82, 88, 73, 211, 69, 78, 65, 82, 77, 79, 78, 73, 79,
+ 211, 69, 77, 80, 84, 217, 69, 77, 80, 72, 65, 84, 73, 195, 69, 77, 80,
+ 72, 65, 83, 73, 211, 69, 77, 79, 74, 201, 69, 77, 66, 82, 79, 73, 68, 69,
+ 82, 89, 128, 69, 77, 66, 76, 69, 77, 128, 69, 77, 66, 69, 76, 76, 73, 83,
+ 72, 77, 69, 78, 84, 128, 69, 77, 66, 69, 68, 68, 73, 78, 71, 128, 69, 76,
+ 89, 77, 65, 73, 195, 69, 76, 89, 128, 69, 76, 84, 128, 69, 76, 76, 73,
+ 80, 84, 73, 195, 69, 76, 76, 73, 80, 83, 73, 83, 128, 69, 76, 76, 73, 80,
+ 83, 69, 128, 69, 76, 73, 70, 73, 128, 69, 76, 73, 70, 128, 69, 76, 69,
+ 86, 69, 78, 45, 84, 72, 73, 82, 84, 89, 128, 69, 76, 69, 86, 69, 78, 128,
+ 69, 76, 69, 86, 69, 206, 69, 76, 69, 86, 65, 84, 85, 211, 69, 76, 69, 86,
+ 65, 84, 79, 82, 128, 69, 76, 69, 80, 72, 65, 78, 84, 128, 69, 76, 69, 77,
+ 69, 78, 212, 69, 76, 69, 67, 84, 82, 79, 78, 73, 67, 83, 128, 69, 76, 69,
+ 67, 84, 82, 73, 67, 65, 204, 69, 76, 69, 67, 84, 82, 73, 195, 69, 76, 66,
+ 65, 83, 65, 206, 69, 76, 65, 77, 73, 84, 69, 128, 69, 76, 65, 77, 73, 84,
+ 197, 69, 76, 65, 70, 82, 79, 78, 128, 69, 75, 83, 84, 82, 69, 80, 84, 79,
+ 78, 128, 69, 75, 83, 128, 69, 75, 70, 79, 78, 73, 84, 73, 75, 79, 78,
+ 128, 69, 75, 65, 82, 65, 128, 69, 75, 65, 77, 128, 69, 74, 69, 67, 212,
+ 69, 73, 83, 128, 69, 73, 71, 72, 84, 89, 128, 69, 73, 71, 72, 84, 217,
+ 69, 73, 71, 72, 84, 73, 69, 84, 72, 83, 128, 69, 73, 71, 72, 84, 73, 69,
+ 84, 72, 128, 69, 73, 71, 72, 84, 72, 83, 128, 69, 73, 71, 72, 84, 72,
211, 69, 73, 71, 72, 84, 72, 128, 69, 73, 71, 72, 84, 69, 69, 78, 128,
69, 73, 71, 72, 84, 69, 69, 206, 69, 73, 71, 72, 84, 45, 84, 72, 73, 82,
84, 89, 128, 69, 73, 69, 128, 69, 72, 87, 65, 218, 69, 72, 84, 83, 65,
@@ -4393,1092 +4393,1092 @@ static const unsigned char lexicon[] = {
128, 69, 48, 48, 55, 128, 69, 48, 48, 54, 128, 69, 48, 48, 53, 128, 69,
48, 48, 52, 128, 69, 48, 48, 51, 128, 69, 48, 48, 50, 128, 69, 48, 48,
49, 128, 69, 45, 77, 65, 73, 204, 68, 90, 90, 72, 69, 128, 68, 90, 90,
- 69, 128, 68, 90, 90, 65, 128, 68, 90, 89, 73, 128, 68, 90, 89, 65, 89,
- 128, 68, 90, 87, 69, 128, 68, 90, 85, 128, 68, 90, 79, 128, 68, 90, 74,
- 69, 128, 68, 90, 73, 84, 65, 128, 68, 90, 73, 128, 68, 90, 72, 79, 73,
- 128, 68, 90, 72, 69, 128, 68, 90, 72, 65, 128, 68, 90, 69, 76, 79, 128,
- 68, 90, 69, 69, 128, 68, 90, 69, 128, 68, 90, 65, 89, 128, 68, 90, 65,
- 65, 128, 68, 90, 65, 128, 68, 90, 128, 68, 218, 68, 89, 79, 128, 68, 89,
- 207, 68, 89, 78, 65, 77, 73, 195, 68, 89, 69, 72, 128, 68, 89, 69, 200,
- 68, 89, 65, 78, 128, 68, 87, 79, 128, 68, 87, 69, 128, 68, 87, 65, 128,
- 68, 86, 73, 83, 86, 65, 82, 65, 128, 68, 86, 68, 128, 68, 86, 128, 68,
- 85, 84, 73, 69, 83, 128, 68, 85, 83, 75, 128, 68, 85, 83, 72, 69, 78, 78,
- 65, 128, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 85, 82, 50, 128, 68,
- 85, 80, 79, 78, 68, 73, 85, 211, 68, 85, 79, 88, 128, 68, 85, 79, 128,
- 68, 85, 78, 52, 128, 68, 85, 78, 51, 128, 68, 85, 78, 179, 68, 85, 77,
- 80, 76, 73, 78, 71, 128, 68, 85, 77, 128, 68, 85, 204, 68, 85, 72, 128,
- 68, 85, 71, 85, 68, 128, 68, 85, 199, 68, 85, 67, 75, 128, 68, 85, 66,
- 50, 128, 68, 85, 66, 128, 68, 85, 194, 68, 82, 89, 128, 68, 82, 217, 68,
- 82, 85, 77, 83, 84, 73, 67, 75, 83, 128, 68, 82, 85, 77, 128, 68, 82, 85,
- 205, 68, 82, 79, 80, 83, 128, 68, 82, 79, 80, 76, 69, 84, 128, 68, 82,
- 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196, 68, 82, 79, 208, 68, 82, 79,
- 79, 76, 73, 78, 199, 68, 82, 79, 77, 69, 68, 65, 82, 217, 68, 82, 73, 86,
- 69, 128, 68, 82, 73, 86, 197, 68, 82, 73, 78, 75, 128, 68, 82, 73, 204,
- 68, 82, 69, 83, 83, 128, 68, 82, 69, 65, 77, 217, 68, 82, 65, 85, 71, 72,
- 84, 211, 68, 82, 65, 77, 128, 68, 82, 65, 205, 68, 82, 65, 71, 79, 78,
- 128, 68, 82, 65, 71, 79, 206, 68, 82, 65, 70, 84, 73, 78, 199, 68, 82,
- 65, 67, 72, 77, 65, 83, 128, 68, 82, 65, 67, 72, 77, 65, 128, 68, 82, 65,
- 67, 72, 77, 193, 68, 79, 87, 78, 87, 65, 82, 68, 83, 128, 68, 79, 87, 78,
- 87, 65, 82, 68, 211, 68, 79, 87, 78, 87, 65, 82, 196, 68, 79, 87, 78, 83,
- 67, 65, 76, 73, 78, 199, 68, 79, 87, 78, 45, 80, 79, 73, 78, 84, 73, 78,
- 199, 68, 79, 87, 78, 128, 68, 79, 86, 69, 128, 68, 79, 86, 197, 68, 79,
- 85, 71, 72, 78, 85, 84, 128, 68, 79, 85, 66, 84, 128, 68, 79, 85, 66, 76,
- 69, 196, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 68, 79, 85,
- 66, 76, 69, 45, 76, 73, 78, 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73,
- 78, 197, 68, 79, 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66,
- 76, 69, 128, 68, 79, 84, 84, 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68,
- 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68,
- 128, 68, 79, 84, 84, 69, 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84,
- 83, 45, 55, 56, 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54,
- 56, 128, 68, 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55,
- 128, 68, 79, 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68,
- 79, 84, 83, 45, 53, 55, 56, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79,
- 84, 83, 45, 53, 54, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68,
- 79, 84, 83, 45, 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79,
- 84, 83, 45, 53, 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45,
- 52, 55, 56, 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52,
- 54, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45,
- 52, 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52,
- 53, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45,
- 52, 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83,
- 45, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68,
- 79, 84, 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79,
- 84, 83, 45, 52, 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45,
- 51, 55, 56, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51,
- 54, 56, 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45,
- 51, 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51,
- 53, 56, 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45,
- 51, 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83,
- 45, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68,
- 79, 84, 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79,
- 84, 83, 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68,
- 79, 84, 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128,
- 68, 79, 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52,
- 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51,
- 52, 53, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84,
- 83, 45, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128,
- 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51,
- 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84,
- 83, 45, 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83,
- 45, 51, 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55,
- 56, 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56,
- 128, 68, 79, 84, 83, 45, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 54,
- 55, 128, 68, 79, 84, 83, 45, 50, 54, 128, 68, 79, 84, 83, 45, 50, 53, 56,
- 128, 68, 79, 84, 83, 45, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53,
- 55, 128, 68, 79, 84, 83, 45, 50, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50,
- 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, 128, 68, 79, 84,
- 83, 45, 50, 53, 54, 128, 68, 79, 84, 83, 45, 50, 53, 128, 68, 79, 84, 83,
- 45, 50, 52, 56, 128, 68, 79, 84, 83, 45, 50, 52, 55, 56, 128, 68, 79, 84,
- 83, 45, 50, 52, 55, 128, 68, 79, 84, 83, 45, 50, 52, 54, 56, 128, 68, 79,
- 84, 83, 45, 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 54, 55,
- 128, 68, 79, 84, 83, 45, 50, 52, 54, 128, 68, 79, 84, 83, 45, 50, 52, 53,
- 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45,
- 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 56, 128, 68, 79,
- 84, 83, 45, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53,
- 54, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 128, 68, 79, 84, 83, 45,
- 50, 52, 53, 128, 68, 79, 84, 83, 45, 50, 52, 128, 68, 79, 84, 83, 45, 50,
- 51, 56, 128, 68, 79, 84, 83, 45, 50, 51, 55, 56, 128, 68, 79, 84, 83, 45,
- 50, 51, 55, 128, 68, 79, 84, 83, 45, 50, 51, 54, 56, 128, 68, 79, 84, 83,
- 45, 50, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 54, 55, 128, 68,
- 79, 84, 83, 45, 50, 51, 54, 128, 68, 79, 84, 83, 45, 50, 51, 53, 56, 128,
- 68, 79, 84, 83, 45, 50, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51,
- 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 56, 128, 68, 79, 84, 83,
- 45, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 55,
- 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 128, 68, 79, 84, 83, 45, 50, 51,
- 53, 128, 68, 79, 84, 83, 45, 50, 51, 52, 56, 128, 68, 79, 84, 83, 45, 50,
- 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 55, 128, 68, 79, 84,
- 83, 45, 50, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55,
- 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45,
- 50, 51, 52, 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 56, 128, 68, 79,
- 84, 83, 45, 50, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52,
- 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84,
- 83, 45, 50, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52,
- 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 128, 68, 79, 84,
- 83, 45, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, 50, 51, 52, 128, 68, 79,
- 84, 83, 45, 50, 51, 128, 68, 79, 84, 83, 45, 50, 128, 68, 79, 84, 83, 45,
- 49, 56, 128, 68, 79, 84, 83, 45, 49, 55, 56, 128, 68, 79, 84, 83, 45, 49,
- 55, 128, 68, 79, 84, 83, 45, 49, 54, 56, 128, 68, 79, 84, 83, 45, 49, 54,
- 55, 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, 128, 68, 79, 84, 83, 45, 49,
- 54, 128, 68, 79, 84, 83, 45, 49, 53, 56, 128, 68, 79, 84, 83, 45, 49, 53,
- 55, 56, 128, 68, 79, 84, 83, 45, 49, 53, 55, 128, 68, 79, 84, 83, 45, 49,
- 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 53, 54, 55, 56, 128, 68, 79, 84,
- 83, 45, 49, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 53, 54, 128, 68, 79,
- 84, 83, 45, 49, 53, 128, 68, 79, 84, 83, 45, 49, 52, 56, 128, 68, 79, 84,
- 83, 45, 49, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 55, 128, 68, 79,
- 84, 83, 45, 49, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 56,
- 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 52,
- 54, 128, 68, 79, 84, 83, 45, 49, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49,
- 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 55, 128, 68, 79, 84,
- 83, 45, 49, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55,
- 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45,
- 49, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 52, 53, 128, 68, 79, 84, 83,
- 45, 49, 52, 128, 68, 79, 84, 83, 45, 49, 51, 56, 128, 68, 79, 84, 83, 45,
- 49, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 55, 128, 68, 79, 84, 83,
- 45, 49, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 54, 55, 56, 128, 68,
- 79, 84, 83, 45, 49, 51, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 54, 128,
- 68, 79, 84, 83, 45, 49, 51, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53,
- 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 55, 128, 68, 79, 84, 83, 45,
- 49, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, 56, 128,
- 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51,
- 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 53, 128, 68, 79, 84, 83, 45, 49,
- 51, 52, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 55, 56, 128, 68, 79, 84,
- 83, 45, 49, 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 56, 128,
- 68, 79, 84, 83, 45, 49, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49,
- 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 128, 68, 79, 84,
- 83, 45, 49, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55,
- 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45,
- 49, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 55,
- 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83,
- 45, 49, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 128, 68,
- 79, 84, 83, 45, 49, 51, 52, 128, 68, 79, 84, 83, 45, 49, 51, 128, 68, 79,
- 84, 83, 45, 49, 50, 56, 128, 68, 79, 84, 83, 45, 49, 50, 55, 56, 128, 68,
- 79, 84, 83, 45, 49, 50, 55, 128, 68, 79, 84, 83, 45, 49, 50, 54, 56, 128,
- 68, 79, 84, 83, 45, 49, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50,
- 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 54, 128, 68, 79, 84, 83, 45, 49,
- 50, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 55, 56, 128, 68, 79, 84,
- 83, 45, 49, 50, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 56, 128,
- 68, 79, 84, 83, 45, 49, 50, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49,
- 50, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 128, 68, 79, 84,
- 83, 45, 49, 50, 53, 128, 68, 79, 84, 83, 45, 49, 50, 52, 56, 128, 68, 79,
- 84, 83, 45, 49, 50, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 55,
- 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49,
- 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 55, 128, 68,
- 79, 84, 83, 45, 49, 50, 52, 54, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53,
- 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83,
- 45, 49, 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 56,
- 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83,
- 45, 49, 50, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54,
- 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 128, 68, 79, 84, 83, 45, 49, 50,
- 52, 128, 68, 79, 84, 83, 45, 49, 50, 51, 56, 128, 68, 79, 84, 83, 45, 49,
- 50, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 55, 128, 68, 79, 84,
- 83, 45, 49, 50, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55,
- 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55, 128, 68, 79, 84, 83, 45,
- 49, 50, 51, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 56, 128, 68, 79,
- 84, 83, 45, 49, 50, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51,
- 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 56, 128, 68, 79, 84,
- 83, 45, 49, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51,
- 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 128, 68, 79, 84,
- 83, 45, 49, 50, 51, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 56, 128,
- 68, 79, 84, 83, 45, 49, 50, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49,
- 50, 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 56, 128, 68,
- 79, 84, 83, 45, 49, 50, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49,
- 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 128, 68,
- 79, 84, 83, 45, 49, 50, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50,
- 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 55, 128,
- 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45,
- 49, 50, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52,
- 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 128, 68, 79,
- 84, 83, 45, 49, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52,
- 128, 68, 79, 84, 83, 45, 49, 50, 51, 128, 68, 79, 84, 83, 45, 49, 50,
- 128, 68, 79, 84, 83, 45, 49, 128, 68, 79, 84, 83, 128, 68, 79, 84, 211,
- 68, 79, 84, 76, 69, 83, 211, 68, 79, 82, 85, 128, 68, 79, 82, 79, 77,
- 197, 68, 79, 79, 82, 128, 68, 79, 79, 78, 71, 128, 68, 79, 78, 71, 128,
- 68, 79, 77, 65, 73, 206, 68, 79, 76, 80, 72, 73, 78, 128, 68, 79, 76, 76,
- 83, 128, 68, 79, 76, 76, 65, 210, 68, 79, 76, 73, 85, 77, 128, 68, 79,
- 75, 77, 65, 73, 128, 68, 79, 73, 84, 128, 68, 79, 73, 78, 199, 68, 79,
- 73, 128, 68, 79, 71, 82, 193, 68, 79, 71, 128, 68, 79, 199, 68, 79, 69,
- 211, 68, 79, 68, 79, 128, 68, 79, 68, 69, 75, 65, 84, 65, 128, 68, 79,
- 67, 85, 77, 69, 78, 84, 128, 68, 79, 67, 85, 77, 69, 78, 212, 68, 79, 66,
- 82, 79, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 69, 128, 68, 79, 65,
- 67, 72, 65, 83, 72, 77, 69, 197, 68, 79, 65, 128, 68, 79, 45, 79, 128,
- 68, 78, 193, 68, 77, 128, 68, 205, 68, 76, 85, 128, 68, 76, 79, 128, 68,
- 76, 73, 128, 68, 76, 72, 89, 65, 128, 68, 76, 72, 65, 128, 68, 76, 69,
- 69, 128, 68, 76, 65, 128, 68, 76, 128, 68, 75, 65, 82, 128, 68, 75, 65,
- 210, 68, 74, 69, 82, 86, 73, 128, 68, 74, 69, 82, 86, 128, 68, 74, 69,
- 128, 68, 74, 65, 128, 68, 73, 90, 90, 217, 68, 73, 89, 193, 68, 73, 86,
- 79, 82, 67, 197, 68, 73, 86, 73, 83, 73, 79, 78, 128, 68, 73, 86, 73, 83,
- 73, 79, 206, 68, 73, 86, 73, 78, 199, 68, 73, 86, 73, 78, 65, 84, 73, 79,
- 78, 128, 68, 73, 86, 73, 68, 69, 83, 128, 68, 73, 86, 73, 68, 69, 82, 83,
- 128, 68, 73, 86, 73, 68, 69, 82, 128, 68, 73, 86, 73, 68, 69, 196, 68,
- 73, 86, 73, 68, 69, 128, 68, 73, 86, 73, 68, 197, 68, 73, 86, 69, 211,
- 68, 73, 86, 69, 82, 71, 69, 78, 67, 69, 128, 68, 73, 84, 84, 207, 68, 73,
- 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, 73, 83, 84, 73, 78, 71, 85, 73,
- 83, 72, 128, 68, 73, 83, 84, 73, 76, 76, 128, 68, 73, 83, 83, 79, 76, 86,
- 69, 45, 50, 128, 68, 73, 83, 83, 79, 76, 86, 69, 128, 68, 73, 83, 80, 85,
- 84, 69, 196, 68, 73, 83, 80, 69, 82, 83, 73, 79, 78, 128, 68, 73, 83, 75,
- 128, 68, 73, 83, 73, 77, 79, 85, 128, 68, 73, 83, 72, 128, 68, 73, 83,
- 71, 85, 73, 83, 69, 196, 68, 73, 83, 67, 79, 78, 84, 73, 78, 85, 79, 85,
- 211, 68, 73, 83, 195, 68, 73, 83, 65, 80, 80, 79, 73, 78, 84, 69, 196,
- 68, 73, 83, 65, 66, 76, 69, 196, 68, 73, 82, 71, 193, 68, 73, 82, 69, 67,
- 84, 76, 217, 68, 73, 82, 69, 67, 84, 73, 79, 78, 65, 204, 68, 73, 82, 69,
- 67, 84, 73, 79, 206, 68, 73, 80, 84, 69, 128, 68, 73, 80, 80, 69, 82,
- 128, 68, 73, 80, 76, 79, 85, 78, 128, 68, 73, 80, 76, 73, 128, 68, 73,
- 80, 76, 201, 68, 73, 78, 71, 66, 65, 212, 68, 73, 206, 68, 73, 77, 77,
- 73, 78, 71, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 51, 128, 68,
- 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, 68, 73, 77, 73, 78, 85,
- 84, 73, 79, 78, 45, 49, 128, 68, 73, 77, 73, 78, 73, 83, 72, 77, 69, 78,
- 84, 128, 68, 73, 77, 73, 68, 73, 193, 68, 73, 77, 69, 78, 83, 73, 79, 78,
- 65, 204, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 73, 77, 50, 128, 68,
- 73, 77, 178, 68, 73, 76, 128, 68, 73, 71, 82, 65, 80, 72, 128, 68, 73,
- 71, 82, 65, 80, 200, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 73, 71, 82,
- 65, 77, 77, 193, 68, 73, 71, 82, 65, 205, 68, 73, 71, 79, 82, 71, 79, 78,
- 128, 68, 73, 71, 79, 82, 71, 79, 206, 68, 73, 71, 73, 84, 83, 128, 68,
- 73, 71, 65, 77, 77, 65, 128, 68, 73, 71, 193, 68, 73, 70, 84, 79, 71, 71,
- 79, 211, 68, 73, 70, 79, 78, 73, 65, 83, 128, 68, 73, 70, 70, 73, 67, 85,
- 76, 84, 217, 68, 73, 70, 70, 73, 67, 85, 76, 84, 73, 69, 83, 128, 68, 73,
- 70, 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 73, 70, 70, 69, 82, 69,
- 78, 67, 197, 68, 73, 70, 65, 84, 128, 68, 73, 69, 83, 73, 83, 128, 68,
- 73, 69, 83, 73, 211, 68, 73, 69, 83, 69, 204, 68, 73, 69, 80, 128, 68,
- 73, 197, 68, 73, 66, 128, 68, 73, 65, 84, 79, 78, 79, 206, 68, 73, 65,
- 84, 79, 78, 73, 75, 201, 68, 73, 65, 83, 84, 79, 76, 201, 68, 73, 65, 77,
- 79, 78, 68, 83, 128, 68, 73, 65, 77, 79, 78, 68, 128, 68, 73, 65, 77, 79,
- 78, 196, 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 76, 89, 84, 73, 75,
- 65, 128, 68, 73, 65, 76, 89, 84, 73, 75, 193, 68, 73, 65, 76, 69, 67, 84,
- 45, 208, 68, 73, 65, 71, 79, 78, 65, 76, 128, 68, 73, 65, 69, 82, 69, 83,
- 73, 90, 69, 196, 68, 73, 65, 69, 82, 69, 83, 73, 83, 45, 82, 73, 78, 71,
- 128, 68, 73, 65, 69, 82, 69, 83, 73, 83, 128, 68, 73, 65, 69, 82, 69, 83,
- 73, 211, 68, 72, 79, 85, 128, 68, 72, 79, 79, 128, 68, 72, 79, 128, 68,
- 72, 73, 73, 128, 68, 72, 72, 85, 128, 68, 72, 72, 79, 79, 128, 68, 72,
- 72, 79, 128, 68, 72, 72, 73, 128, 68, 72, 72, 69, 69, 128, 68, 72, 72,
- 69, 128, 68, 72, 72, 65, 128, 68, 72, 69, 69, 128, 68, 72, 65, 82, 77,
- 65, 128, 68, 72, 65, 77, 69, 68, 72, 128, 68, 72, 65, 76, 69, 84, 72,
- 128, 68, 72, 65, 76, 65, 84, 72, 128, 68, 72, 65, 76, 128, 68, 72, 65,
- 68, 72, 69, 128, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 65, 128, 68,
- 72, 65, 128, 68, 69, 90, 200, 68, 69, 89, 84, 69, 82, 79, 213, 68, 69,
- 89, 84, 69, 82, 79, 211, 68, 69, 88, 73, 65, 128, 68, 69, 86, 73, 67,
- 197, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 69, 85, 78, 71,
- 128, 68, 69, 83, 75, 84, 79, 208, 68, 69, 83, 203, 68, 69, 83, 73, 71,
- 78, 128, 68, 69, 83, 73, 128, 68, 69, 83, 69, 82, 84, 128, 68, 69, 83,
- 69, 82, 212, 68, 69, 83, 69, 82, 69, 212, 68, 69, 83, 67, 82, 73, 80, 84,
- 73, 79, 206, 68, 69, 83, 67, 69, 78, 68, 73, 78, 199, 68, 69, 83, 67, 69,
- 78, 68, 69, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68,
- 69, 82, 69, 84, 128, 68, 69, 82, 69, 76, 73, 67, 212, 68, 69, 80, 84, 72,
- 128, 68, 69, 80, 65, 82, 84, 85, 82, 69, 128, 68, 69, 80, 65, 82, 84, 77,
- 69, 78, 212, 68, 69, 80, 65, 82, 84, 73, 78, 199, 68, 69, 78, 84, 73, 83,
- 84, 82, 217, 68, 69, 78, 84, 65, 204, 68, 69, 78, 79, 77, 73, 78, 65, 84,
- 79, 82, 128, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 69, 78, 78,
- 69, 78, 128, 68, 69, 78, 71, 128, 68, 69, 78, 197, 68, 69, 78, 65, 82,
- 73, 85, 211, 68, 69, 76, 84, 65, 128, 68, 69, 76, 84, 193, 68, 69, 76,
- 84, 128, 68, 69, 76, 80, 72, 73, 195, 68, 69, 76, 73, 86, 69, 82, 217,
- 68, 69, 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, 76, 73, 77, 73,
- 84, 69, 82, 128, 68, 69, 76, 73, 77, 73, 84, 69, 210, 68, 69, 76, 73, 67,
- 73, 79, 85, 211, 68, 69, 76, 69, 84, 73, 79, 206, 68, 69, 76, 69, 84, 69,
- 128, 68, 69, 76, 69, 84, 197, 68, 69, 75, 65, 128, 68, 69, 75, 128, 68,
- 69, 73, 128, 68, 69, 72, 73, 128, 68, 69, 71, 82, 69, 69, 83, 128, 68,
- 69, 71, 82, 69, 197, 68, 69, 70, 73, 78, 73, 84, 73, 79, 78, 128, 68, 69,
- 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 69, 69, 82, 128, 68, 69,
- 69, 80, 76, 89, 128, 68, 69, 69, 76, 128, 68, 69, 67, 82, 69, 83, 67, 69,
- 78, 68, 79, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, 68, 69, 67, 82, 69,
- 65, 83, 197, 68, 69, 67, 79, 82, 65, 84, 73, 86, 197, 68, 69, 67, 79, 82,
- 65, 84, 73, 79, 78, 128, 68, 69, 67, 73, 83, 73, 86, 69, 78, 69, 83, 83,
- 128, 68, 69, 67, 73, 77, 65, 204, 68, 69, 67, 73, 68, 85, 79, 85, 211,
- 68, 69, 67, 69, 77, 66, 69, 82, 128, 68, 69, 67, 65, 89, 69, 68, 128, 68,
- 69, 66, 73, 212, 68, 69, 65, 84, 72, 128, 68, 69, 65, 198, 68, 69, 65,
- 68, 128, 68, 68, 87, 65, 128, 68, 68, 85, 88, 128, 68, 68, 85, 84, 128,
- 68, 68, 85, 82, 88, 128, 68, 68, 85, 82, 128, 68, 68, 85, 80, 128, 68,
- 68, 85, 79, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, 85, 79, 128, 68,
- 68, 85, 128, 68, 68, 79, 88, 128, 68, 68, 79, 84, 128, 68, 68, 79, 80,
- 128, 68, 68, 79, 65, 128, 68, 68, 73, 88, 128, 68, 68, 73, 84, 128, 68,
- 68, 73, 80, 128, 68, 68, 73, 69, 88, 128, 68, 68, 73, 69, 80, 128, 68,
- 68, 73, 69, 128, 68, 68, 73, 128, 68, 68, 72, 85, 128, 68, 68, 72, 79,
- 128, 68, 68, 72, 69, 69, 128, 68, 68, 72, 69, 128, 68, 68, 72, 65, 65,
- 128, 68, 68, 72, 65, 128, 68, 68, 69, 88, 128, 68, 68, 69, 80, 128, 68,
- 68, 69, 69, 128, 68, 68, 69, 128, 68, 68, 68, 72, 65, 128, 68, 68, 68,
- 65, 128, 68, 68, 65, 89, 65, 78, 78, 65, 128, 68, 68, 65, 88, 128, 68,
- 68, 65, 84, 128, 68, 68, 65, 80, 128, 68, 68, 65, 76, 128, 68, 68, 65,
- 204, 68, 68, 65, 72, 65, 76, 128, 68, 68, 65, 72, 65, 204, 68, 68, 65,
- 65, 128, 68, 67, 83, 128, 68, 67, 72, 69, 128, 68, 67, 52, 128, 68, 67,
- 51, 128, 68, 67, 50, 128, 68, 67, 49, 128, 68, 194, 68, 65, 89, 45, 78,
- 73, 71, 72, 84, 128, 68, 65, 217, 68, 65, 87, 66, 128, 68, 65, 86, 73,
- 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, 128, 68, 65, 84, 197, 68, 65,
- 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, 65, 83, 72, 69, 196, 68, 65,
- 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, 69, 73, 65, 128, 68, 65, 82,
- 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 65, 82, 75, 69, 78,
- 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, 71, 65, 128, 68, 65, 82, 65,
- 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, 82, 128, 68, 65, 80, 45, 80,
- 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, 68, 65, 80, 45, 77, 85, 79,
- 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, 80, 45, 66, 69, 201, 68,
- 65, 208, 68, 65, 78, 84, 65, 89, 65, 76, 65, 78, 128, 68, 65, 78, 84, 65,
- 74, 193, 68, 65, 78, 71, 79, 128, 68, 65, 78, 71, 128, 68, 65, 78, 199,
- 68, 65, 78, 68, 65, 128, 68, 65, 78, 67, 73, 78, 71, 128, 68, 65, 78, 67,
- 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, 77, 208, 68, 65, 77, 77, 65,
- 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 77, 77, 65,
- 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, 85, 128, 68, 65, 76, 69,
- 84, 72, 45, 82, 69, 83, 72, 128, 68, 65, 76, 69, 84, 128, 68, 65, 76, 69,
- 212, 68, 65, 76, 68, 65, 128, 68, 65, 76, 65, 84, 72, 128, 68, 65, 76,
- 65, 84, 200, 68, 65, 76, 65, 84, 128, 68, 65, 73, 82, 128, 68, 65, 73,
- 78, 71, 128, 68, 65, 73, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 45, 50,
- 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, 65, 71, 83, 128, 68,
- 65, 71, 71, 69, 82, 128, 68, 65, 71, 71, 69, 210, 68, 65, 71, 69, 83, 72,
- 128, 68, 65, 71, 69, 83, 200, 68, 65, 71, 66, 65, 83, 73, 78, 78, 65,
- 128, 68, 65, 71, 65, 218, 68, 65, 71, 65, 76, 71, 65, 128, 68, 65, 71,
- 51, 128, 68, 65, 199, 68, 65, 69, 78, 71, 128, 68, 65, 69, 199, 68, 65,
- 68, 128, 68, 65, 196, 68, 65, 65, 83, 85, 128, 68, 65, 65, 76, 73, 128,
- 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, 68, 48, 54, 55, 71,
- 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, 128, 68, 48, 54, 55,
- 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, 66, 128, 68, 48, 54,
- 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, 128, 68, 48, 54, 53,
- 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, 48, 54, 50, 128, 68,
- 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, 57, 128, 68, 48, 53,
- 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, 68, 48, 53, 53, 128,
- 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, 48, 53, 51, 128, 68,
- 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, 53, 49, 128, 68, 48,
- 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, 53, 48, 71, 128, 68,
- 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, 48, 53, 48, 68, 128,
- 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, 68, 48, 53, 48, 65,
- 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, 48, 52, 56, 65, 128,
- 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, 52, 54, 65, 128, 68,
- 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, 52, 128, 68, 48, 52,
- 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, 68, 48, 52, 48, 128,
- 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, 51, 55, 128, 68, 48,
- 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, 65, 128, 68, 48, 51,
- 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, 68, 48, 51, 49, 65,
- 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, 48, 50, 57, 128, 68,
- 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, 50, 55, 128, 68, 48,
- 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, 128, 68, 48, 50, 51,
- 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, 48, 50, 48, 128, 68,
- 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, 55, 128, 68, 48, 49,
- 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, 68, 48, 49, 51, 128,
- 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, 49, 48, 128, 68, 48,
- 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, 56, 128, 68, 48, 48,
- 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, 68, 48, 48, 52, 128,
- 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, 48, 49, 128, 67, 89,
- 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, 89, 82, 69, 78, 65,
- 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 73, 79, 212, 67, 89, 80, 69,
- 82, 85, 83, 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73,
- 84, 89, 128, 67, 89, 67, 76, 79, 78, 69, 128, 67, 89, 65, 89, 128, 67,
- 89, 65, 87, 128, 67, 89, 65, 128, 67, 87, 79, 79, 128, 67, 87, 79, 128,
- 67, 87, 73, 73, 128, 67, 87, 73, 128, 67, 87, 69, 79, 82, 84, 72, 128,
- 67, 87, 69, 128, 67, 87, 65, 65, 128, 67, 85, 88, 128, 67, 85, 85, 128,
- 67, 85, 212, 67, 85, 83, 84, 79, 77, 83, 128, 67, 85, 83, 84, 79, 77, 69,
- 210, 67, 85, 83, 84, 65, 82, 68, 128, 67, 85, 83, 80, 128, 67, 85, 82,
- 88, 128, 67, 85, 82, 86, 73, 78, 199, 67, 85, 82, 86, 69, 68, 128, 67,
- 85, 82, 86, 69, 196, 67, 85, 82, 86, 69, 128, 67, 85, 82, 86, 197, 67,
- 85, 82, 83, 73, 86, 197, 67, 85, 82, 82, 217, 67, 85, 82, 82, 69, 78, 84,
- 128, 67, 85, 82, 82, 69, 78, 212, 67, 85, 82, 76, 217, 67, 85, 82, 76,
- 73, 78, 199, 67, 85, 82, 76, 69, 196, 67, 85, 82, 76, 128, 67, 85, 82,
- 128, 67, 85, 80, 80, 69, 68, 128, 67, 85, 80, 80, 69, 196, 67, 85, 80,
- 73, 68, 79, 128, 67, 85, 80, 67, 65, 75, 69, 128, 67, 85, 79, 88, 128,
- 67, 85, 79, 80, 128, 67, 85, 79, 128, 67, 85, 205, 67, 85, 76, 84, 73,
- 86, 65, 84, 73, 79, 206, 67, 85, 67, 85, 77, 66, 69, 82, 128, 67, 85, 66,
- 69, 68, 128, 67, 85, 66, 69, 128, 67, 85, 66, 197, 67, 85, 65, 84, 82,
- 73, 76, 76, 79, 128, 67, 85, 65, 84, 82, 73, 76, 76, 207, 67, 85, 65,
- 205, 67, 83, 73, 128, 67, 82, 89, 83, 84, 65, 204, 67, 82, 89, 80, 84,
- 79, 71, 82, 65, 77, 77, 73, 195, 67, 82, 89, 73, 78, 199, 67, 82, 85, 90,
- 69, 73, 82, 207, 67, 82, 85, 67, 73, 70, 79, 82, 205, 67, 82, 85, 67, 73,
- 66, 76, 69, 45, 53, 128, 67, 82, 85, 67, 73, 66, 76, 69, 45, 52, 128, 67,
- 82, 85, 67, 73, 66, 76, 69, 45, 51, 128, 67, 82, 85, 67, 73, 66, 76, 69,
- 45, 50, 128, 67, 82, 85, 67, 73, 66, 76, 69, 128, 67, 82, 79, 87, 78,
- 128, 67, 82, 79, 83, 83, 73, 78, 71, 128, 67, 82, 79, 83, 83, 73, 78,
- 199, 67, 82, 79, 83, 83, 72, 65, 84, 67, 200, 67, 82, 79, 83, 83, 69, 68,
- 45, 84, 65, 73, 76, 128, 67, 82, 79, 83, 83, 69, 68, 128, 67, 82, 79, 83,
- 83, 69, 196, 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 67, 82, 79, 83,
- 83, 66, 65, 82, 128, 67, 82, 79, 83, 83, 128, 67, 82, 79, 83, 211, 67,
- 82, 79, 80, 128, 67, 82, 79, 73, 88, 128, 67, 82, 79, 73, 83, 83, 65, 78,
- 84, 128, 67, 82, 79, 67, 85, 211, 67, 82, 79, 67, 79, 68, 73, 76, 69,
- 128, 67, 82, 73, 67, 75, 69, 84, 128, 67, 82, 73, 67, 75, 69, 212, 67,
- 82, 69, 83, 67, 69, 78, 84, 83, 128, 67, 82, 69, 83, 67, 69, 78, 84, 128,
- 67, 82, 69, 83, 67, 69, 78, 212, 67, 82, 69, 68, 73, 212, 67, 82, 69, 65,
- 84, 73, 86, 197, 67, 82, 69, 65, 77, 128, 67, 82, 65, 89, 79, 78, 128,
- 67, 82, 65, 66, 128, 67, 82, 128, 67, 79, 88, 128, 67, 79, 87, 66, 79,
- 217, 67, 79, 87, 128, 67, 79, 215, 67, 79, 86, 69, 82, 73, 78, 199, 67,
- 79, 86, 69, 82, 128, 67, 79, 85, 80, 76, 197, 67, 79, 85, 78, 84, 73, 78,
- 199, 67, 79, 85, 78, 84, 69, 82, 83, 73, 78, 75, 128, 67, 79, 85, 78, 84,
- 69, 82, 66, 79, 82, 69, 128, 67, 79, 85, 78, 67, 73, 204, 67, 79, 85, 67,
+ 69, 128, 68, 90, 90, 65, 128, 68, 90, 89, 73, 128, 68, 90, 89, 65, 89,
+ 128, 68, 90, 87, 69, 128, 68, 90, 85, 128, 68, 90, 79, 128, 68, 90, 74,
+ 69, 128, 68, 90, 73, 84, 65, 128, 68, 90, 73, 128, 68, 90, 72, 79, 73,
+ 128, 68, 90, 72, 69, 128, 68, 90, 72, 65, 128, 68, 90, 69, 76, 79, 128,
+ 68, 90, 69, 69, 128, 68, 90, 69, 128, 68, 90, 65, 89, 128, 68, 90, 65,
+ 65, 128, 68, 90, 65, 128, 68, 90, 128, 68, 218, 68, 89, 79, 128, 68, 89,
+ 207, 68, 89, 78, 65, 77, 73, 195, 68, 89, 69, 72, 128, 68, 89, 69, 200,
+ 68, 89, 65, 78, 128, 68, 87, 79, 128, 68, 87, 69, 128, 68, 87, 65, 128,
+ 68, 86, 73, 83, 86, 65, 82, 65, 128, 68, 86, 68, 128, 68, 86, 128, 68,
+ 85, 84, 73, 69, 83, 128, 68, 85, 83, 75, 128, 68, 85, 83, 72, 69, 78, 78,
+ 65, 128, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 85, 82, 50, 128, 68,
+ 85, 80, 79, 78, 68, 73, 85, 211, 68, 85, 79, 88, 128, 68, 85, 79, 128,
+ 68, 85, 78, 52, 128, 68, 85, 78, 51, 128, 68, 85, 78, 179, 68, 85, 77,
+ 80, 76, 73, 78, 71, 128, 68, 85, 77, 128, 68, 85, 204, 68, 85, 72, 128,
+ 68, 85, 71, 85, 68, 128, 68, 85, 199, 68, 85, 67, 75, 128, 68, 85, 66,
+ 50, 128, 68, 85, 66, 128, 68, 85, 194, 68, 82, 89, 128, 68, 82, 217, 68,
+ 82, 85, 77, 83, 84, 73, 67, 75, 83, 128, 68, 82, 85, 77, 128, 68, 82, 85,
+ 205, 68, 82, 79, 80, 83, 128, 68, 82, 79, 80, 76, 69, 84, 128, 68, 82,
+ 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196, 68, 82, 79, 208, 68, 82, 79,
+ 79, 76, 73, 78, 199, 68, 82, 79, 77, 69, 68, 65, 82, 217, 68, 82, 73, 86,
+ 69, 128, 68, 82, 73, 86, 197, 68, 82, 73, 78, 75, 128, 68, 82, 73, 204,
+ 68, 82, 69, 83, 83, 128, 68, 82, 69, 65, 77, 217, 68, 82, 65, 85, 71, 72,
+ 84, 211, 68, 82, 65, 77, 128, 68, 82, 65, 205, 68, 82, 65, 71, 79, 78,
+ 128, 68, 82, 65, 71, 79, 206, 68, 82, 65, 70, 84, 73, 78, 199, 68, 82,
+ 65, 67, 72, 77, 65, 83, 128, 68, 82, 65, 67, 72, 77, 65, 128, 68, 82, 65,
+ 67, 72, 77, 193, 68, 79, 87, 78, 87, 65, 82, 68, 83, 128, 68, 79, 87, 78,
+ 87, 65, 82, 68, 211, 68, 79, 87, 78, 87, 65, 82, 196, 68, 79, 87, 78, 83,
+ 67, 65, 76, 73, 78, 199, 68, 79, 87, 78, 45, 80, 79, 73, 78, 84, 73, 78,
+ 199, 68, 79, 87, 78, 128, 68, 79, 86, 69, 128, 68, 79, 86, 197, 68, 79,
+ 85, 71, 72, 78, 85, 84, 128, 68, 79, 85, 66, 84, 128, 68, 79, 85, 66, 76,
+ 69, 196, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 68, 79, 85,
+ 66, 76, 69, 45, 76, 73, 78, 69, 196, 68, 79, 85, 66, 76, 69, 45, 76, 73,
+ 78, 197, 68, 79, 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 68, 79, 85, 66,
+ 76, 69, 128, 68, 79, 84, 84, 69, 68, 45, 80, 128, 68, 79, 84, 84, 69, 68,
+ 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68,
+ 128, 68, 79, 84, 84, 69, 196, 68, 79, 84, 83, 45, 56, 128, 68, 79, 84,
+ 83, 45, 55, 56, 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 54,
+ 56, 128, 68, 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 83, 45, 54, 55,
+ 128, 68, 79, 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 53, 56, 128, 68,
+ 79, 84, 83, 45, 53, 55, 56, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79,
+ 84, 83, 45, 53, 54, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 68,
+ 79, 84, 83, 45, 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79,
+ 84, 83, 45, 53, 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, 45,
+ 52, 55, 56, 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52,
+ 54, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45,
+ 52, 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, 84, 83, 45, 52,
+ 53, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45,
+ 52, 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83,
+ 45, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68,
+ 79, 84, 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79,
+ 84, 83, 45, 52, 128, 68, 79, 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45,
+ 51, 55, 56, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51,
+ 54, 56, 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45,
+ 51, 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51,
+ 53, 56, 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45,
+ 51, 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83,
+ 45, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68,
+ 79, 84, 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79,
+ 84, 83, 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68,
+ 79, 84, 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, 128,
+ 68, 79, 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52,
+ 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51,
+ 52, 53, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84,
+ 83, 45, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128,
+ 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51,
+ 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84,
+ 83, 45, 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83,
+ 45, 51, 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 50, 55,
+ 56, 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56,
+ 128, 68, 79, 84, 83, 45, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 54,
+ 55, 128, 68, 79, 84, 83, 45, 50, 54, 128, 68, 79, 84, 83, 45, 50, 53, 56,
+ 128, 68, 79, 84, 83, 45, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53,
+ 55, 128, 68, 79, 84, 83, 45, 50, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50,
+ 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, 128, 68, 79, 84,
+ 83, 45, 50, 53, 54, 128, 68, 79, 84, 83, 45, 50, 53, 128, 68, 79, 84, 83,
+ 45, 50, 52, 56, 128, 68, 79, 84, 83, 45, 50, 52, 55, 56, 128, 68, 79, 84,
+ 83, 45, 50, 52, 55, 128, 68, 79, 84, 83, 45, 50, 52, 54, 56, 128, 68, 79,
+ 84, 83, 45, 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 54, 55,
+ 128, 68, 79, 84, 83, 45, 50, 52, 54, 128, 68, 79, 84, 83, 45, 50, 52, 53,
+ 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45,
+ 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 56, 128, 68, 79,
+ 84, 83, 45, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53,
+ 54, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 128, 68, 79, 84, 83, 45,
+ 50, 52, 53, 128, 68, 79, 84, 83, 45, 50, 52, 128, 68, 79, 84, 83, 45, 50,
+ 51, 56, 128, 68, 79, 84, 83, 45, 50, 51, 55, 56, 128, 68, 79, 84, 83, 45,
+ 50, 51, 55, 128, 68, 79, 84, 83, 45, 50, 51, 54, 56, 128, 68, 79, 84, 83,
+ 45, 50, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 54, 55, 128, 68,
+ 79, 84, 83, 45, 50, 51, 54, 128, 68, 79, 84, 83, 45, 50, 51, 53, 56, 128,
+ 68, 79, 84, 83, 45, 50, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51,
+ 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 56, 128, 68, 79, 84, 83,
+ 45, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 55,
+ 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 128, 68, 79, 84, 83, 45, 50, 51,
+ 53, 128, 68, 79, 84, 83, 45, 50, 51, 52, 56, 128, 68, 79, 84, 83, 45, 50,
+ 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 55, 128, 68, 79, 84,
+ 83, 45, 50, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55,
+ 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45,
+ 50, 51, 52, 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 56, 128, 68, 79,
+ 84, 83, 45, 50, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52,
+ 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84,
+ 83, 45, 50, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52,
+ 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 128, 68, 79, 84,
+ 83, 45, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, 50, 51, 52, 128, 68, 79,
+ 84, 83, 45, 50, 51, 128, 68, 79, 84, 83, 45, 50, 128, 68, 79, 84, 83, 45,
+ 49, 56, 128, 68, 79, 84, 83, 45, 49, 55, 56, 128, 68, 79, 84, 83, 45, 49,
+ 55, 128, 68, 79, 84, 83, 45, 49, 54, 56, 128, 68, 79, 84, 83, 45, 49, 54,
+ 55, 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, 128, 68, 79, 84, 83, 45, 49,
+ 54, 128, 68, 79, 84, 83, 45, 49, 53, 56, 128, 68, 79, 84, 83, 45, 49, 53,
+ 55, 56, 128, 68, 79, 84, 83, 45, 49, 53, 55, 128, 68, 79, 84, 83, 45, 49,
+ 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 53, 54, 55, 56, 128, 68, 79, 84,
+ 83, 45, 49, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 53, 54, 128, 68, 79,
+ 84, 83, 45, 49, 53, 128, 68, 79, 84, 83, 45, 49, 52, 56, 128, 68, 79, 84,
+ 83, 45, 49, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 55, 128, 68, 79,
+ 84, 83, 45, 49, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 56,
+ 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 52,
+ 54, 128, 68, 79, 84, 83, 45, 49, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49,
+ 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 55, 128, 68, 79, 84,
+ 83, 45, 49, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55,
+ 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45,
+ 49, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 52, 53, 128, 68, 79, 84, 83,
+ 45, 49, 52, 128, 68, 79, 84, 83, 45, 49, 51, 56, 128, 68, 79, 84, 83, 45,
+ 49, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 55, 128, 68, 79, 84, 83,
+ 45, 49, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 54, 55, 56, 128, 68,
+ 79, 84, 83, 45, 49, 51, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 54, 128,
+ 68, 79, 84, 83, 45, 49, 51, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53,
+ 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 55, 128, 68, 79, 84, 83, 45,
+ 49, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, 56, 128,
+ 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51,
+ 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 53, 128, 68, 79, 84, 83, 45, 49,
+ 51, 52, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 55, 56, 128, 68, 79, 84,
+ 83, 45, 49, 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 56, 128,
+ 68, 79, 84, 83, 45, 49, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49,
+ 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 128, 68, 79, 84,
+ 83, 45, 49, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55,
+ 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45,
+ 49, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 55,
+ 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83,
+ 45, 49, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 128, 68,
+ 79, 84, 83, 45, 49, 51, 52, 128, 68, 79, 84, 83, 45, 49, 51, 128, 68, 79,
+ 84, 83, 45, 49, 50, 56, 128, 68, 79, 84, 83, 45, 49, 50, 55, 56, 128, 68,
+ 79, 84, 83, 45, 49, 50, 55, 128, 68, 79, 84, 83, 45, 49, 50, 54, 56, 128,
+ 68, 79, 84, 83, 45, 49, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50,
+ 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 54, 128, 68, 79, 84, 83, 45, 49,
+ 50, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 55, 56, 128, 68, 79, 84,
+ 83, 45, 49, 50, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 56, 128,
+ 68, 79, 84, 83, 45, 49, 50, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49,
+ 50, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 128, 68, 79, 84,
+ 83, 45, 49, 50, 53, 128, 68, 79, 84, 83, 45, 49, 50, 52, 56, 128, 68, 79,
+ 84, 83, 45, 49, 50, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 55,
+ 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49,
+ 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 55, 128, 68,
+ 79, 84, 83, 45, 49, 50, 52, 54, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53,
+ 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83,
+ 45, 49, 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 56,
+ 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83,
+ 45, 49, 50, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54,
+ 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 128, 68, 79, 84, 83, 45, 49, 50,
+ 52, 128, 68, 79, 84, 83, 45, 49, 50, 51, 56, 128, 68, 79, 84, 83, 45, 49,
+ 50, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 55, 128, 68, 79, 84,
+ 83, 45, 49, 50, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55,
+ 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55, 128, 68, 79, 84, 83, 45,
+ 49, 50, 51, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 56, 128, 68, 79,
+ 84, 83, 45, 49, 50, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51,
+ 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 56, 128, 68, 79, 84,
+ 83, 45, 49, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51,
+ 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 128, 68, 79, 84,
+ 83, 45, 49, 50, 51, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 56, 128,
+ 68, 79, 84, 83, 45, 49, 50, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49,
+ 50, 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 56, 128, 68,
+ 79, 84, 83, 45, 49, 50, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49,
+ 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 128, 68,
+ 79, 84, 83, 45, 49, 50, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50,
+ 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 55, 128,
+ 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45,
+ 49, 50, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52,
+ 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 128, 68, 79,
+ 84, 83, 45, 49, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52,
+ 128, 68, 79, 84, 83, 45, 49, 50, 51, 128, 68, 79, 84, 83, 45, 49, 50,
+ 128, 68, 79, 84, 83, 45, 49, 128, 68, 79, 84, 83, 128, 68, 79, 84, 211,
+ 68, 79, 84, 76, 69, 83, 211, 68, 79, 82, 85, 128, 68, 79, 82, 79, 77,
+ 197, 68, 79, 79, 82, 128, 68, 79, 79, 78, 71, 128, 68, 79, 78, 71, 128,
+ 68, 79, 77, 65, 73, 206, 68, 79, 76, 80, 72, 73, 78, 128, 68, 79, 76, 76,
+ 83, 128, 68, 79, 76, 76, 65, 210, 68, 79, 76, 73, 85, 77, 128, 68, 79,
+ 75, 77, 65, 73, 128, 68, 79, 73, 84, 128, 68, 79, 73, 78, 199, 68, 79,
+ 73, 128, 68, 79, 71, 82, 193, 68, 79, 71, 128, 68, 79, 199, 68, 79, 69,
+ 211, 68, 79, 68, 79, 128, 68, 79, 68, 69, 75, 65, 84, 65, 128, 68, 79,
+ 67, 85, 77, 69, 78, 84, 128, 68, 79, 67, 85, 77, 69, 78, 212, 68, 79, 66,
+ 82, 79, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 69, 128, 68, 79, 65,
+ 67, 72, 65, 83, 72, 77, 69, 197, 68, 79, 65, 128, 68, 79, 45, 79, 128,
+ 68, 78, 193, 68, 77, 128, 68, 205, 68, 76, 85, 128, 68, 76, 79, 128, 68,
+ 76, 73, 128, 68, 76, 72, 89, 65, 128, 68, 76, 72, 65, 128, 68, 76, 69,
+ 69, 128, 68, 76, 65, 128, 68, 76, 128, 68, 75, 65, 82, 128, 68, 75, 65,
+ 210, 68, 74, 69, 82, 86, 73, 128, 68, 74, 69, 82, 86, 128, 68, 74, 69,
+ 128, 68, 74, 65, 128, 68, 73, 90, 90, 217, 68, 73, 89, 193, 68, 73, 86,
+ 79, 82, 67, 197, 68, 73, 86, 73, 83, 73, 79, 78, 128, 68, 73, 86, 73, 83,
+ 73, 79, 206, 68, 73, 86, 73, 78, 199, 68, 73, 86, 73, 78, 65, 84, 73, 79,
+ 78, 128, 68, 73, 86, 73, 68, 69, 83, 128, 68, 73, 86, 73, 68, 69, 82, 83,
+ 128, 68, 73, 86, 73, 68, 69, 82, 128, 68, 73, 86, 73, 68, 69, 196, 68,
+ 73, 86, 73, 68, 69, 128, 68, 73, 86, 73, 68, 197, 68, 73, 86, 69, 211,
+ 68, 73, 86, 69, 82, 71, 69, 78, 67, 69, 128, 68, 73, 84, 84, 207, 68, 73,
+ 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, 73, 83, 84, 73, 78, 71, 85, 73,
+ 83, 72, 128, 68, 73, 83, 84, 73, 76, 76, 128, 68, 73, 83, 83, 79, 76, 86,
+ 69, 45, 50, 128, 68, 73, 83, 83, 79, 76, 86, 69, 128, 68, 73, 83, 80, 85,
+ 84, 69, 196, 68, 73, 83, 80, 69, 82, 83, 73, 79, 78, 128, 68, 73, 83, 75,
+ 128, 68, 73, 83, 73, 77, 79, 85, 128, 68, 73, 83, 72, 128, 68, 73, 83,
+ 71, 85, 73, 83, 69, 196, 68, 73, 83, 67, 79, 78, 84, 73, 78, 85, 79, 85,
+ 211, 68, 73, 83, 195, 68, 73, 83, 65, 80, 80, 79, 73, 78, 84, 69, 196,
+ 68, 73, 83, 65, 66, 76, 69, 196, 68, 73, 82, 71, 193, 68, 73, 82, 69, 67,
+ 84, 76, 217, 68, 73, 82, 69, 67, 84, 73, 79, 78, 65, 204, 68, 73, 82, 69,
+ 67, 84, 73, 79, 206, 68, 73, 80, 84, 69, 128, 68, 73, 80, 80, 69, 82,
+ 128, 68, 73, 80, 76, 79, 85, 78, 128, 68, 73, 80, 76, 73, 128, 68, 73,
+ 80, 76, 201, 68, 73, 78, 71, 66, 65, 212, 68, 73, 206, 68, 73, 77, 77,
+ 73, 78, 71, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 51, 128, 68,
+ 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, 68, 73, 77, 73, 78, 85,
+ 84, 73, 79, 78, 45, 49, 128, 68, 73, 77, 73, 78, 73, 83, 72, 77, 69, 78,
+ 84, 128, 68, 73, 77, 73, 68, 73, 193, 68, 73, 77, 69, 78, 83, 73, 79, 78,
+ 65, 204, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 73, 77, 50, 128, 68,
+ 73, 77, 178, 68, 73, 76, 128, 68, 73, 71, 82, 65, 80, 72, 128, 68, 73,
+ 71, 82, 65, 80, 200, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 73, 71, 82,
+ 65, 77, 77, 193, 68, 73, 71, 82, 65, 205, 68, 73, 71, 79, 82, 71, 79, 78,
+ 128, 68, 73, 71, 79, 82, 71, 79, 206, 68, 73, 71, 73, 84, 83, 128, 68,
+ 73, 71, 65, 77, 77, 65, 128, 68, 73, 71, 193, 68, 73, 70, 84, 79, 71, 71,
+ 79, 211, 68, 73, 70, 79, 78, 73, 65, 83, 128, 68, 73, 70, 70, 73, 67, 85,
+ 76, 84, 217, 68, 73, 70, 70, 73, 67, 85, 76, 84, 73, 69, 83, 128, 68, 73,
+ 70, 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 73, 70, 70, 69, 82, 69,
+ 78, 67, 197, 68, 73, 70, 65, 84, 128, 68, 73, 69, 83, 73, 83, 128, 68,
+ 73, 69, 83, 73, 211, 68, 73, 69, 83, 69, 204, 68, 73, 69, 80, 128, 68,
+ 73, 197, 68, 73, 66, 128, 68, 73, 65, 84, 79, 78, 79, 206, 68, 73, 65,
+ 84, 79, 78, 73, 75, 201, 68, 73, 65, 83, 84, 79, 76, 201, 68, 73, 65, 77,
+ 79, 78, 68, 83, 128, 68, 73, 65, 77, 79, 78, 68, 128, 68, 73, 65, 77, 79,
+ 78, 196, 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 76, 89, 84, 73, 75,
+ 65, 128, 68, 73, 65, 76, 89, 84, 73, 75, 193, 68, 73, 65, 76, 69, 67, 84,
+ 45, 208, 68, 73, 65, 71, 79, 78, 65, 76, 128, 68, 73, 65, 69, 82, 69, 83,
+ 73, 90, 69, 196, 68, 73, 65, 69, 82, 69, 83, 73, 83, 45, 82, 73, 78, 71,
+ 128, 68, 73, 65, 69, 82, 69, 83, 73, 83, 128, 68, 73, 65, 69, 82, 69, 83,
+ 73, 211, 68, 72, 79, 85, 128, 68, 72, 79, 79, 128, 68, 72, 79, 128, 68,
+ 72, 73, 73, 128, 68, 72, 72, 85, 128, 68, 72, 72, 79, 79, 128, 68, 72,
+ 72, 79, 128, 68, 72, 72, 73, 128, 68, 72, 72, 69, 69, 128, 68, 72, 72,
+ 69, 128, 68, 72, 72, 65, 128, 68, 72, 69, 69, 128, 68, 72, 65, 82, 77,
+ 65, 128, 68, 72, 65, 77, 69, 68, 72, 128, 68, 72, 65, 76, 69, 84, 72,
+ 128, 68, 72, 65, 76, 65, 84, 72, 128, 68, 72, 65, 76, 128, 68, 72, 65,
+ 68, 72, 69, 128, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 65, 128, 68,
+ 72, 65, 128, 68, 69, 90, 200, 68, 69, 89, 84, 69, 82, 79, 213, 68, 69,
+ 89, 84, 69, 82, 79, 211, 68, 69, 88, 73, 65, 128, 68, 69, 86, 73, 67,
+ 197, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 69, 85, 78, 71,
+ 128, 68, 69, 83, 75, 84, 79, 208, 68, 69, 83, 203, 68, 69, 83, 73, 71,
+ 78, 128, 68, 69, 83, 73, 128, 68, 69, 83, 69, 82, 84, 128, 68, 69, 83,
+ 69, 82, 212, 68, 69, 83, 69, 82, 69, 212, 68, 69, 83, 67, 82, 73, 80, 84,
+ 73, 79, 206, 68, 69, 83, 67, 69, 78, 68, 73, 78, 199, 68, 69, 83, 67, 69,
+ 78, 68, 69, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68,
+ 69, 82, 69, 84, 128, 68, 69, 82, 69, 76, 73, 67, 212, 68, 69, 80, 84, 72,
+ 128, 68, 69, 80, 65, 82, 84, 85, 82, 69, 128, 68, 69, 80, 65, 82, 84, 77,
+ 69, 78, 212, 68, 69, 80, 65, 82, 84, 73, 78, 199, 68, 69, 78, 84, 73, 83,
+ 84, 82, 217, 68, 69, 78, 84, 65, 204, 68, 69, 78, 79, 77, 73, 78, 65, 84,
+ 79, 82, 128, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 69, 78, 78,
+ 69, 78, 128, 68, 69, 78, 71, 128, 68, 69, 78, 197, 68, 69, 78, 65, 82,
+ 73, 85, 211, 68, 69, 76, 84, 65, 128, 68, 69, 76, 84, 193, 68, 69, 76,
+ 84, 128, 68, 69, 76, 80, 72, 73, 195, 68, 69, 76, 73, 86, 69, 82, 217,
+ 68, 69, 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, 76, 73, 77, 73,
+ 84, 69, 82, 128, 68, 69, 76, 73, 77, 73, 84, 69, 210, 68, 69, 76, 73, 67,
+ 73, 79, 85, 211, 68, 69, 76, 69, 84, 73, 79, 206, 68, 69, 76, 69, 84, 69,
+ 128, 68, 69, 76, 69, 84, 197, 68, 69, 75, 65, 128, 68, 69, 75, 128, 68,
+ 69, 73, 128, 68, 69, 72, 73, 128, 68, 69, 71, 82, 69, 69, 83, 128, 68,
+ 69, 71, 82, 69, 197, 68, 69, 70, 73, 78, 73, 84, 73, 79, 78, 128, 68, 69,
+ 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 69, 69, 82, 128, 68, 69,
+ 69, 80, 76, 89, 128, 68, 69, 69, 76, 128, 68, 69, 67, 82, 69, 83, 67, 69,
+ 78, 68, 79, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, 68, 69, 67, 82, 69,
+ 65, 83, 197, 68, 69, 67, 79, 82, 65, 84, 73, 86, 197, 68, 69, 67, 79, 82,
+ 65, 84, 73, 79, 78, 128, 68, 69, 67, 73, 83, 73, 86, 69, 78, 69, 83, 83,
+ 128, 68, 69, 67, 73, 77, 65, 204, 68, 69, 67, 73, 68, 85, 79, 85, 211,
+ 68, 69, 67, 69, 77, 66, 69, 82, 128, 68, 69, 67, 65, 89, 69, 68, 128, 68,
+ 69, 66, 73, 212, 68, 69, 65, 84, 72, 128, 68, 69, 65, 198, 68, 69, 65,
+ 68, 128, 68, 68, 87, 65, 128, 68, 68, 85, 88, 128, 68, 68, 85, 84, 128,
+ 68, 68, 85, 82, 88, 128, 68, 68, 85, 82, 128, 68, 68, 85, 80, 128, 68,
+ 68, 85, 79, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, 85, 79, 128, 68,
+ 68, 85, 128, 68, 68, 79, 88, 128, 68, 68, 79, 84, 128, 68, 68, 79, 80,
+ 128, 68, 68, 79, 65, 128, 68, 68, 73, 88, 128, 68, 68, 73, 84, 128, 68,
+ 68, 73, 80, 128, 68, 68, 73, 69, 88, 128, 68, 68, 73, 69, 80, 128, 68,
+ 68, 73, 69, 128, 68, 68, 73, 128, 68, 68, 72, 85, 128, 68, 68, 72, 79,
+ 128, 68, 68, 72, 69, 69, 128, 68, 68, 72, 69, 128, 68, 68, 72, 65, 65,
+ 128, 68, 68, 72, 65, 128, 68, 68, 69, 88, 128, 68, 68, 69, 80, 128, 68,
+ 68, 69, 69, 128, 68, 68, 69, 128, 68, 68, 68, 72, 65, 128, 68, 68, 68,
+ 65, 128, 68, 68, 65, 89, 65, 78, 78, 65, 128, 68, 68, 65, 88, 128, 68,
+ 68, 65, 84, 128, 68, 68, 65, 80, 128, 68, 68, 65, 76, 128, 68, 68, 65,
+ 204, 68, 68, 65, 72, 65, 76, 128, 68, 68, 65, 72, 65, 204, 68, 68, 65,
+ 65, 128, 68, 67, 83, 128, 68, 67, 72, 69, 128, 68, 67, 52, 128, 68, 67,
+ 51, 128, 68, 67, 50, 128, 68, 67, 49, 128, 68, 194, 68, 65, 89, 45, 78,
+ 73, 71, 72, 84, 128, 68, 65, 217, 68, 65, 87, 66, 128, 68, 65, 86, 73,
+ 89, 65, 78, 73, 128, 68, 65, 86, 73, 68, 128, 68, 65, 84, 197, 68, 65,
+ 83, 73, 65, 128, 68, 65, 83, 73, 193, 68, 65, 83, 72, 69, 196, 68, 65,
+ 83, 72, 128, 68, 65, 83, 200, 68, 65, 83, 69, 73, 65, 128, 68, 65, 82,
+ 84, 128, 68, 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 65, 82, 75, 69, 78,
+ 73, 78, 199, 68, 65, 82, 203, 68, 65, 82, 71, 65, 128, 68, 65, 82, 65,
+ 52, 128, 68, 65, 82, 65, 51, 128, 68, 65, 82, 128, 68, 65, 80, 45, 80,
+ 82, 65, 205, 68, 65, 80, 45, 80, 73, 201, 68, 65, 80, 45, 77, 85, 79,
+ 217, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, 80, 45, 66, 69, 201, 68,
+ 65, 208, 68, 65, 78, 84, 65, 89, 65, 76, 65, 78, 128, 68, 65, 78, 84, 65,
+ 74, 193, 68, 65, 78, 71, 79, 128, 68, 65, 78, 71, 128, 68, 65, 78, 199,
+ 68, 65, 78, 68, 65, 128, 68, 65, 78, 67, 73, 78, 71, 128, 68, 65, 78, 67,
+ 69, 82, 128, 68, 65, 77, 80, 128, 68, 65, 77, 208, 68, 65, 77, 77, 65,
+ 84, 65, 78, 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 77, 77, 65,
+ 128, 68, 65, 77, 77, 193, 68, 65, 77, 65, 82, 85, 128, 68, 65, 76, 69,
+ 84, 72, 45, 82, 69, 83, 72, 128, 68, 65, 76, 69, 84, 128, 68, 65, 76, 69,
+ 212, 68, 65, 76, 68, 65, 128, 68, 65, 76, 65, 84, 72, 128, 68, 65, 76,
+ 65, 84, 200, 68, 65, 76, 65, 84, 128, 68, 65, 73, 82, 128, 68, 65, 73,
+ 78, 71, 128, 68, 65, 73, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 45, 50,
+ 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, 65, 71, 83, 128, 68,
+ 65, 71, 71, 69, 82, 128, 68, 65, 71, 71, 69, 210, 68, 65, 71, 69, 83, 72,
+ 128, 68, 65, 71, 69, 83, 200, 68, 65, 71, 66, 65, 83, 73, 78, 78, 65,
+ 128, 68, 65, 71, 65, 218, 68, 65, 71, 65, 76, 71, 65, 128, 68, 65, 71,
+ 51, 128, 68, 65, 199, 68, 65, 69, 78, 71, 128, 68, 65, 69, 199, 68, 65,
+ 68, 128, 68, 65, 196, 68, 65, 65, 83, 85, 128, 68, 65, 65, 76, 73, 128,
+ 68, 65, 65, 68, 72, 85, 128, 68, 48, 54, 55, 72, 128, 68, 48, 54, 55, 71,
+ 128, 68, 48, 54, 55, 70, 128, 68, 48, 54, 55, 69, 128, 68, 48, 54, 55,
+ 68, 128, 68, 48, 54, 55, 67, 128, 68, 48, 54, 55, 66, 128, 68, 48, 54,
+ 55, 65, 128, 68, 48, 54, 55, 128, 68, 48, 54, 54, 128, 68, 48, 54, 53,
+ 128, 68, 48, 54, 52, 128, 68, 48, 54, 51, 128, 68, 48, 54, 50, 128, 68,
+ 48, 54, 49, 128, 68, 48, 54, 48, 128, 68, 48, 53, 57, 128, 68, 48, 53,
+ 56, 128, 68, 48, 53, 55, 128, 68, 48, 53, 54, 128, 68, 48, 53, 53, 128,
+ 68, 48, 53, 52, 65, 128, 68, 48, 53, 52, 128, 68, 48, 53, 51, 128, 68,
+ 48, 53, 50, 65, 128, 68, 48, 53, 50, 128, 68, 48, 53, 49, 128, 68, 48,
+ 53, 48, 73, 128, 68, 48, 53, 48, 72, 128, 68, 48, 53, 48, 71, 128, 68,
+ 48, 53, 48, 70, 128, 68, 48, 53, 48, 69, 128, 68, 48, 53, 48, 68, 128,
+ 68, 48, 53, 48, 67, 128, 68, 48, 53, 48, 66, 128, 68, 48, 53, 48, 65,
+ 128, 68, 48, 53, 48, 128, 68, 48, 52, 57, 128, 68, 48, 52, 56, 65, 128,
+ 68, 48, 52, 56, 128, 68, 48, 52, 55, 128, 68, 48, 52, 54, 65, 128, 68,
+ 48, 52, 54, 128, 68, 48, 52, 53, 128, 68, 48, 52, 52, 128, 68, 48, 52,
+ 51, 128, 68, 48, 52, 50, 128, 68, 48, 52, 49, 128, 68, 48, 52, 48, 128,
+ 68, 48, 51, 57, 128, 68, 48, 51, 56, 128, 68, 48, 51, 55, 128, 68, 48,
+ 51, 54, 128, 68, 48, 51, 53, 128, 68, 48, 51, 52, 65, 128, 68, 48, 51,
+ 52, 128, 68, 48, 51, 51, 128, 68, 48, 51, 50, 128, 68, 48, 51, 49, 65,
+ 128, 68, 48, 51, 49, 128, 68, 48, 51, 48, 128, 68, 48, 50, 57, 128, 68,
+ 48, 50, 56, 128, 68, 48, 50, 55, 65, 128, 68, 48, 50, 55, 128, 68, 48,
+ 50, 54, 128, 68, 48, 50, 53, 128, 68, 48, 50, 52, 128, 68, 48, 50, 51,
+ 128, 68, 48, 50, 50, 128, 68, 48, 50, 49, 128, 68, 48, 50, 48, 128, 68,
+ 48, 49, 57, 128, 68, 48, 49, 56, 128, 68, 48, 49, 55, 128, 68, 48, 49,
+ 54, 128, 68, 48, 49, 53, 128, 68, 48, 49, 52, 128, 68, 48, 49, 51, 128,
+ 68, 48, 49, 50, 128, 68, 48, 49, 49, 128, 68, 48, 49, 48, 128, 68, 48,
+ 48, 57, 128, 68, 48, 48, 56, 65, 128, 68, 48, 48, 56, 128, 68, 48, 48,
+ 55, 128, 68, 48, 48, 54, 128, 68, 48, 48, 53, 128, 68, 48, 48, 52, 128,
+ 68, 48, 48, 51, 128, 68, 48, 48, 50, 128, 68, 48, 48, 49, 128, 67, 89,
+ 88, 128, 67, 89, 84, 128, 67, 89, 82, 88, 128, 67, 89, 82, 69, 78, 65,
+ 73, 195, 67, 89, 82, 128, 67, 89, 80, 82, 73, 79, 212, 67, 89, 80, 69,
+ 82, 85, 83, 128, 67, 89, 80, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73,
+ 84, 89, 128, 67, 89, 67, 76, 79, 78, 69, 128, 67, 89, 65, 89, 128, 67,
+ 89, 65, 87, 128, 67, 89, 65, 128, 67, 87, 79, 79, 128, 67, 87, 79, 128,
+ 67, 87, 73, 73, 128, 67, 87, 73, 128, 67, 87, 69, 79, 82, 84, 72, 128,
+ 67, 87, 69, 128, 67, 87, 65, 65, 128, 67, 85, 88, 128, 67, 85, 85, 128,
+ 67, 85, 212, 67, 85, 83, 84, 79, 77, 83, 128, 67, 85, 83, 84, 79, 77, 69,
+ 210, 67, 85, 83, 84, 65, 82, 68, 128, 67, 85, 83, 80, 128, 67, 85, 82,
+ 88, 128, 67, 85, 82, 86, 73, 78, 199, 67, 85, 82, 86, 69, 68, 128, 67,
+ 85, 82, 86, 69, 196, 67, 85, 82, 86, 69, 128, 67, 85, 82, 86, 197, 67,
+ 85, 82, 83, 73, 86, 197, 67, 85, 82, 82, 217, 67, 85, 82, 82, 69, 78, 84,
+ 128, 67, 85, 82, 82, 69, 78, 212, 67, 85, 82, 76, 217, 67, 85, 82, 76,
+ 73, 78, 199, 67, 85, 82, 76, 69, 196, 67, 85, 82, 76, 128, 67, 85, 82,
+ 128, 67, 85, 80, 80, 69, 68, 128, 67, 85, 80, 80, 69, 196, 67, 85, 80,
+ 73, 68, 79, 128, 67, 85, 80, 67, 65, 75, 69, 128, 67, 85, 79, 88, 128,
+ 67, 85, 79, 80, 128, 67, 85, 79, 128, 67, 85, 205, 67, 85, 76, 84, 73,
+ 86, 65, 84, 73, 79, 206, 67, 85, 67, 85, 77, 66, 69, 82, 128, 67, 85, 66,
+ 69, 68, 128, 67, 85, 66, 69, 128, 67, 85, 66, 197, 67, 85, 65, 84, 82,
+ 73, 76, 76, 79, 128, 67, 85, 65, 84, 82, 73, 76, 76, 207, 67, 85, 65,
+ 205, 67, 83, 73, 128, 67, 82, 89, 83, 84, 65, 204, 67, 82, 89, 80, 84,
+ 79, 71, 82, 65, 77, 77, 73, 195, 67, 82, 89, 73, 78, 199, 67, 82, 85, 90,
+ 69, 73, 82, 207, 67, 82, 85, 67, 73, 70, 79, 82, 205, 67, 82, 85, 67, 73,
+ 66, 76, 69, 45, 53, 128, 67, 82, 85, 67, 73, 66, 76, 69, 45, 52, 128, 67,
+ 82, 85, 67, 73, 66, 76, 69, 45, 51, 128, 67, 82, 85, 67, 73, 66, 76, 69,
+ 45, 50, 128, 67, 82, 85, 67, 73, 66, 76, 69, 128, 67, 82, 79, 87, 78,
+ 128, 67, 82, 79, 83, 83, 73, 78, 71, 128, 67, 82, 79, 83, 83, 73, 78,
+ 199, 67, 82, 79, 83, 83, 72, 65, 84, 67, 200, 67, 82, 79, 83, 83, 69, 68,
+ 45, 84, 65, 73, 76, 128, 67, 82, 79, 83, 83, 69, 68, 128, 67, 82, 79, 83,
+ 83, 69, 196, 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 67, 82, 79, 83,
+ 83, 66, 65, 82, 128, 67, 82, 79, 83, 83, 128, 67, 82, 79, 83, 211, 67,
+ 82, 79, 80, 128, 67, 82, 79, 73, 88, 128, 67, 82, 79, 73, 83, 83, 65, 78,
+ 84, 128, 67, 82, 79, 67, 85, 211, 67, 82, 79, 67, 79, 68, 73, 76, 69,
+ 128, 67, 82, 73, 67, 75, 69, 84, 128, 67, 82, 73, 67, 75, 69, 212, 67,
+ 82, 69, 83, 67, 69, 78, 84, 83, 128, 67, 82, 69, 83, 67, 69, 78, 84, 128,
+ 67, 82, 69, 83, 67, 69, 78, 212, 67, 82, 69, 68, 73, 212, 67, 82, 69, 65,
+ 84, 73, 86, 197, 67, 82, 69, 65, 77, 128, 67, 82, 65, 89, 79, 78, 128,
+ 67, 82, 65, 66, 128, 67, 82, 128, 67, 79, 88, 128, 67, 79, 87, 66, 79,
+ 217, 67, 79, 87, 128, 67, 79, 215, 67, 79, 86, 69, 82, 73, 78, 199, 67,
+ 79, 86, 69, 82, 128, 67, 79, 85, 80, 76, 197, 67, 79, 85, 78, 84, 73, 78,
+ 199, 67, 79, 85, 78, 84, 69, 82, 83, 73, 78, 75, 128, 67, 79, 85, 78, 84,
+ 69, 82, 66, 79, 82, 69, 128, 67, 79, 85, 78, 67, 73, 204, 67, 79, 85, 67,
200, 67, 79, 84, 128, 67, 79, 82, 82, 69, 83, 80, 79, 78, 68, 211, 67,
79, 82, 82, 69, 67, 84, 128, 67, 79, 82, 80, 83, 69, 128, 67, 79, 82, 80,
79, 82, 65, 84, 73, 79, 78, 128, 67, 79, 82, 79, 78, 73, 83, 128, 67, 79,
- 82, 78, 73, 83, 200, 67, 79, 82, 78, 69, 82, 83, 128, 67, 79, 82, 78, 69,
- 82, 128, 67, 79, 82, 78, 69, 210, 67, 79, 82, 75, 128, 67, 79, 80, 89,
- 82, 73, 71, 72, 84, 128, 67, 79, 80, 89, 82, 73, 71, 72, 212, 67, 79, 80,
- 89, 76, 69, 70, 212, 67, 79, 80, 89, 128, 67, 79, 80, 82, 79, 68, 85, 67,
- 84, 128, 67, 79, 80, 80, 69, 82, 45, 50, 128, 67, 79, 80, 80, 69, 82,
- 128, 67, 79, 80, 128, 67, 79, 79, 76, 128, 67, 79, 79, 75, 73, 78, 71,
- 128, 67, 79, 79, 75, 73, 69, 128, 67, 79, 79, 75, 69, 196, 67, 79, 79,
- 128, 67, 79, 78, 86, 69, 82, 71, 73, 78, 199, 67, 79, 78, 86, 69, 78, 73,
- 69, 78, 67, 197, 67, 79, 78, 84, 82, 79, 76, 128, 67, 79, 78, 84, 82, 79,
- 204, 67, 79, 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79, 78, 84, 82,
- 65, 67, 84, 73, 79, 78, 128, 67, 79, 78, 84, 79, 85, 82, 69, 196, 67, 79,
- 78, 84, 79, 85, 210, 67, 79, 78, 84, 73, 78, 85, 73, 78, 199, 67, 79, 78,
- 84, 73, 78, 85, 65, 84, 73, 79, 206, 67, 79, 78, 84, 69, 78, 84, 73, 79,
- 78, 128, 67, 79, 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128, 67, 79,
- 78, 84, 65, 73, 78, 211, 67, 79, 78, 84, 65, 73, 78, 73, 78, 199, 67, 79,
- 78, 84, 65, 73, 206, 67, 79, 78, 84, 65, 67, 84, 128, 67, 79, 78, 83, 84,
- 82, 85, 67, 84, 73, 79, 78, 128, 67, 79, 78, 83, 84, 82, 85, 67, 84, 73,
- 79, 206, 67, 79, 78, 83, 84, 65, 78, 84, 128, 67, 79, 78, 83, 84, 65, 78,
- 212, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, 78, 83, 69, 67, 85,
- 84, 73, 86, 197, 67, 79, 78, 74, 85, 78, 67, 84, 73, 79, 78, 128, 67, 79,
- 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 74, 79, 73, 78, 73, 78, 199, 67,
- 79, 78, 74, 79, 73, 78, 69, 68, 128, 67, 79, 78, 74, 79, 73, 78, 69, 196,
- 67, 79, 78, 73, 67, 65, 204, 67, 79, 78, 71, 82, 85, 69, 78, 212, 67, 79,
- 78, 71, 82, 65, 84, 85, 76, 65, 84, 73, 79, 78, 128, 67, 79, 78, 70, 85,
- 83, 69, 196, 67, 79, 78, 70, 79, 85, 78, 68, 69, 196, 67, 79, 78, 70, 76,
- 73, 67, 84, 128, 67, 79, 78, 70, 69, 84, 84, 201, 67, 79, 78, 67, 65, 86,
- 69, 45, 83, 73, 68, 69, 196, 67, 79, 78, 67, 65, 86, 69, 45, 80, 79, 73,
- 78, 84, 69, 196, 67, 79, 77, 80, 85, 84, 69, 82, 83, 128, 67, 79, 77, 80,
- 85, 84, 69, 82, 128, 67, 79, 77, 80, 82, 69, 83, 83, 73, 79, 78, 128, 67,
- 79, 77, 80, 82, 69, 83, 83, 69, 196, 67, 79, 77, 80, 79, 83, 73, 84, 73,
- 79, 78, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 55, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 55, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 55, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 55, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 55, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 55, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 55, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 55, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 55, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 55, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 54, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 54, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 54, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 54, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 53, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 53, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 53, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 53, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 52, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 52, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 52, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 52, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 51, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 51, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 51, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 51, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 50, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 50, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 50, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 50, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 49, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 49, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 49, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 49, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 48, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 57, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 54, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 53, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56,
- 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 49, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 48, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 55, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 54, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55,
- 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 50, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 49, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 56, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 55, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54,
- 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 51, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 50, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 57, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 56, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53,
- 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 52, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 51, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 48, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 57, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52,
- 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 53, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 52, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 49, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 48, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51,
- 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 54, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 53, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 50, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 49, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50,
- 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 55, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 54, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 51, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 50, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49,
- 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 56, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 55, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 52, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 51, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49,
- 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 57, 128, 67, 79,
- 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 56, 128, 67, 79, 77, 80, 79, 78,
- 69, 78, 84, 45, 48, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
- 48, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 53, 128,
- 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 52, 128, 67, 79, 77, 80,
- 79, 78, 69, 78, 84, 45, 48, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
- 84, 45, 48, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48,
- 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 212, 67, 79, 77, 80, 76, 73, 65,
- 78, 67, 69, 128, 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, 128, 67, 79, 77,
- 80, 76, 69, 84, 69, 68, 128, 67, 79, 77, 80, 76, 69, 77, 69, 78, 84, 128,
- 67, 79, 77, 80, 65, 83, 83, 128, 67, 79, 77, 80, 65, 82, 69, 128, 67, 79,
- 77, 77, 79, 206, 67, 79, 77, 77, 69, 82, 67, 73, 65, 204, 67, 79, 77, 77,
- 65, 78, 68, 128, 67, 79, 77, 77, 65, 128, 67, 79, 77, 77, 193, 67, 79,
- 77, 69, 84, 128, 67, 79, 77, 66, 73, 78, 69, 68, 128, 67, 79, 77, 66, 73,
- 78, 65, 84, 73, 79, 78, 128, 67, 79, 77, 66, 128, 67, 79, 76, 85, 77, 78,
- 128, 67, 79, 76, 79, 82, 128, 67, 79, 76, 76, 73, 83, 73, 79, 206, 67,
- 79, 76, 76, 128, 67, 79, 76, 196, 67, 79, 73, 78, 128, 67, 79, 70, 70,
- 73, 78, 128, 67, 79, 69, 78, 71, 128, 67, 79, 69, 78, 199, 67, 79, 68,
- 65, 128, 67, 79, 67, 79, 78, 85, 84, 128, 67, 79, 67, 75, 84, 65, 73,
- 204, 67, 79, 67, 75, 82, 79, 65, 67, 72, 128, 67, 79, 65, 84, 128, 67,
- 79, 65, 83, 84, 69, 82, 128, 67, 79, 65, 128, 67, 77, 128, 67, 205, 67,
- 76, 85, 83, 84, 69, 82, 45, 73, 78, 73, 84, 73, 65, 204, 67, 76, 85, 83,
- 84, 69, 82, 45, 70, 73, 78, 65, 204, 67, 76, 85, 83, 84, 69, 210, 67, 76,
- 85, 66, 83, 128, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67, 76, 85,
- 66, 128, 67, 76, 85, 194, 67, 76, 79, 87, 206, 67, 76, 79, 86, 69, 82,
- 128, 67, 76, 79, 85, 68, 128, 67, 76, 79, 85, 196, 67, 76, 79, 84, 72,
- 69, 83, 128, 67, 76, 79, 84, 72, 128, 67, 76, 79, 83, 69, 84, 128, 67,
- 76, 79, 83, 69, 78, 69, 83, 83, 128, 67, 76, 79, 83, 69, 68, 128, 67, 76,
- 79, 83, 197, 67, 76, 79, 67, 75, 87, 73, 83, 197, 67, 76, 79, 67, 203,
- 67, 76, 73, 86, 73, 83, 128, 67, 76, 73, 80, 66, 79, 65, 82, 68, 128, 67,
- 76, 73, 78, 75, 73, 78, 199, 67, 76, 73, 78, 71, 73, 78, 199, 67, 76, 73,
- 77, 66, 73, 78, 71, 128, 67, 76, 73, 77, 65, 67, 85, 83, 128, 67, 76, 73,
- 70, 70, 128, 67, 76, 73, 67, 75, 128, 67, 76, 69, 70, 45, 50, 128, 67,
- 76, 69, 70, 45, 49, 128, 67, 76, 69, 70, 128, 67, 76, 69, 198, 67, 76,
- 69, 65, 86, 69, 82, 128, 67, 76, 69, 65, 210, 67, 76, 65, 83, 83, 73, 67,
- 65, 204, 67, 76, 65, 80, 80, 73, 78, 199, 67, 76, 65, 80, 80, 69, 210,
- 67, 76, 65, 78, 128, 67, 76, 65, 206, 67, 76, 65, 77, 83, 72, 69, 76,
- 204, 67, 76, 65, 73, 77, 128, 67, 76, 128, 67, 73, 88, 128, 67, 73, 86,
- 73, 76, 73, 65, 78, 128, 67, 73, 84, 89, 83, 67, 65, 80, 69, 128, 67, 73,
- 84, 89, 83, 67, 65, 80, 197, 67, 73, 84, 201, 67, 73, 84, 65, 84, 73, 79,
- 206, 67, 73, 84, 128, 67, 73, 82, 67, 85, 211, 67, 73, 82, 67, 85, 77,
- 70, 76, 69, 88, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, 216, 67, 73, 82,
- 67, 85, 76, 65, 84, 73, 79, 206, 67, 73, 82, 67, 76, 73, 78, 71, 128, 67,
- 73, 82, 67, 76, 73, 78, 199, 67, 73, 82, 67, 76, 69, 83, 128, 67, 73, 82,
- 67, 76, 69, 211, 67, 73, 82, 67, 76, 69, 68, 128, 67, 73, 80, 128, 67,
- 73, 78, 78, 65, 66, 65, 82, 128, 67, 73, 78, 69, 77, 65, 128, 67, 73,
- 206, 67, 73, 77, 128, 67, 73, 205, 67, 73, 73, 128, 67, 73, 69, 88, 128,
- 67, 73, 69, 85, 67, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 67,
- 73, 69, 85, 67, 45, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, 67, 45, 73,
- 69, 85, 78, 71, 128, 67, 73, 69, 85, 195, 67, 73, 69, 84, 128, 67, 73,
- 69, 80, 128, 67, 73, 69, 128, 67, 72, 89, 88, 128, 67, 72, 89, 84, 128,
- 67, 72, 89, 82, 88, 128, 67, 72, 89, 82, 128, 67, 72, 89, 80, 128, 67,
- 72, 87, 86, 128, 67, 72, 85, 88, 128, 67, 72, 85, 82, 88, 128, 67, 72,
- 85, 82, 67, 72, 128, 67, 72, 85, 82, 128, 67, 72, 85, 80, 128, 67, 72,
- 85, 79, 88, 128, 67, 72, 85, 79, 84, 128, 67, 72, 85, 79, 80, 128, 67,
- 72, 85, 79, 128, 67, 72, 85, 76, 65, 128, 67, 72, 85, 128, 67, 72, 82,
- 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, 128, 67, 72, 82, 79, 78, 79, 85,
- 128, 67, 72, 82, 79, 78, 79, 78, 128, 67, 72, 82, 79, 77, 193, 67, 72,
- 82, 79, 193, 67, 72, 82, 73, 86, 73, 128, 67, 72, 82, 73, 83, 84, 77, 65,
- 83, 128, 67, 72, 82, 73, 83, 84, 77, 65, 211, 67, 72, 79, 89, 128, 67,
- 72, 79, 88, 128, 67, 72, 79, 84, 128, 67, 72, 79, 82, 69, 86, 77, 193,
- 67, 72, 79, 82, 65, 83, 77, 73, 65, 206, 67, 72, 79, 80, 83, 84, 73, 67,
- 75, 83, 128, 67, 72, 79, 80, 128, 67, 72, 79, 75, 69, 128, 67, 72, 79,
- 69, 128, 67, 72, 79, 67, 79, 76, 65, 84, 197, 67, 72, 79, 65, 128, 67,
- 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 67,
- 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128,
- 67, 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, 84, 85,
- 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67,
- 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 82, 79, 78, 128, 67, 72, 73, 82,
- 69, 84, 128, 67, 72, 73, 80, 77, 85, 78, 75, 128, 67, 72, 73, 78, 79, 79,
- 203, 67, 72, 73, 78, 71, 128, 67, 72, 73, 78, 69, 83, 197, 67, 72, 73,
- 78, 128, 67, 72, 73, 77, 69, 128, 67, 72, 73, 77, 128, 67, 72, 73, 76,
- 76, 213, 67, 72, 73, 76, 68, 82, 69, 206, 67, 72, 73, 76, 68, 128, 67,
- 72, 73, 76, 128, 67, 72, 73, 75, 201, 67, 72, 73, 69, 85, 67, 72, 45, 75,
- 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, 69, 85, 67, 72, 45, 72, 73, 69,
- 85, 72, 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 73, 67, 75, 69, 78,
- 128, 67, 72, 73, 67, 75, 128, 67, 72, 73, 128, 67, 72, 201, 67, 72, 72,
- 73, 77, 128, 67, 72, 72, 65, 128, 67, 72, 69, 88, 128, 67, 72, 69, 86,
- 82, 79, 78, 128, 67, 72, 69, 86, 82, 79, 206, 67, 72, 69, 84, 128, 67,
- 72, 69, 83, 84, 78, 85, 84, 128, 67, 72, 69, 83, 84, 128, 67, 72, 69, 83,
+ 82, 78, 73, 83, 200, 67, 79, 82, 78, 69, 82, 83, 128, 67, 79, 82, 78, 69,
+ 82, 128, 67, 79, 82, 78, 69, 210, 67, 79, 82, 75, 128, 67, 79, 80, 89,
+ 82, 73, 71, 72, 84, 128, 67, 79, 80, 89, 82, 73, 71, 72, 212, 67, 79, 80,
+ 89, 76, 69, 70, 212, 67, 79, 80, 89, 128, 67, 79, 80, 82, 79, 68, 85, 67,
+ 84, 128, 67, 79, 80, 80, 69, 82, 45, 50, 128, 67, 79, 80, 80, 69, 82,
+ 128, 67, 79, 80, 128, 67, 79, 79, 76, 128, 67, 79, 79, 75, 73, 78, 71,
+ 128, 67, 79, 79, 75, 73, 69, 128, 67, 79, 79, 75, 69, 196, 67, 79, 79,
+ 128, 67, 79, 78, 86, 69, 82, 71, 73, 78, 199, 67, 79, 78, 86, 69, 78, 73,
+ 69, 78, 67, 197, 67, 79, 78, 84, 82, 79, 76, 128, 67, 79, 78, 84, 82, 79,
+ 204, 67, 79, 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79, 78, 84, 82,
+ 65, 67, 84, 73, 79, 78, 128, 67, 79, 78, 84, 79, 85, 82, 69, 196, 67, 79,
+ 78, 84, 79, 85, 210, 67, 79, 78, 84, 73, 78, 85, 73, 78, 199, 67, 79, 78,
+ 84, 73, 78, 85, 65, 84, 73, 79, 206, 67, 79, 78, 84, 69, 78, 84, 73, 79,
+ 78, 128, 67, 79, 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128, 67, 79,
+ 78, 84, 65, 73, 78, 211, 67, 79, 78, 84, 65, 73, 78, 73, 78, 199, 67, 79,
+ 78, 84, 65, 73, 206, 67, 79, 78, 84, 65, 67, 84, 128, 67, 79, 78, 83, 84,
+ 82, 85, 67, 84, 73, 79, 78, 128, 67, 79, 78, 83, 84, 82, 85, 67, 84, 73,
+ 79, 206, 67, 79, 78, 83, 84, 65, 78, 84, 128, 67, 79, 78, 83, 84, 65, 78,
+ 212, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, 78, 83, 69, 67, 85,
+ 84, 73, 86, 197, 67, 79, 78, 74, 85, 78, 67, 84, 73, 79, 78, 128, 67, 79,
+ 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 74, 79, 73, 78, 73, 78, 199, 67,
+ 79, 78, 74, 79, 73, 78, 69, 68, 128, 67, 79, 78, 74, 79, 73, 78, 69, 196,
+ 67, 79, 78, 73, 67, 65, 204, 67, 79, 78, 71, 82, 85, 69, 78, 212, 67, 79,
+ 78, 71, 82, 65, 84, 85, 76, 65, 84, 73, 79, 78, 128, 67, 79, 78, 70, 85,
+ 83, 69, 196, 67, 79, 78, 70, 79, 85, 78, 68, 69, 196, 67, 79, 78, 70, 76,
+ 73, 67, 84, 128, 67, 79, 78, 70, 69, 84, 84, 201, 67, 79, 78, 67, 65, 86,
+ 69, 45, 83, 73, 68, 69, 196, 67, 79, 78, 67, 65, 86, 69, 45, 80, 79, 73,
+ 78, 84, 69, 196, 67, 79, 77, 80, 85, 84, 69, 82, 83, 128, 67, 79, 77, 80,
+ 85, 84, 69, 82, 128, 67, 79, 77, 80, 82, 69, 83, 83, 73, 79, 78, 128, 67,
+ 79, 77, 80, 82, 69, 83, 83, 69, 196, 67, 79, 77, 80, 79, 83, 73, 84, 73,
+ 79, 78, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 55, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 54, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 55, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 53, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 55, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 52, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 55, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 51,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 55, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 50, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 55, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 49, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 55, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 55, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 55, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 55, 48, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 55, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 57, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 56, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 55, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 54, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 53, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 52,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 51, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 50, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 49, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 54, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 54, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 54, 48, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 54, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 54, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 57, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 56, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 55, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 54, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 53,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 52, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 51, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 50, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 49, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 53, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 53, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 53, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 53, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 53, 48, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 57, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 56, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 55, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 54,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 53, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 52, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 51, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 50, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 49, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 52, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 52, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 52, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 52, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 52, 48, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 57, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 57, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 56, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 56, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 56, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 55, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 55,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 54, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 54, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 53, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 53, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 52, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 52, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 51, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 51, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 50, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 50, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 49, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 49, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 51, 48, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 51, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 51, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 51, 48, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 51, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 57, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 57, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 57, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 57, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 56, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 56, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 56,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 55, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 55, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 55, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 54, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 54, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 54, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 53, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 53, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 53, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 52, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 52, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 52, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 52, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 51, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 51, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 51, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 50, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 50, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 50, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 49, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 49, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 49, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 48, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 50, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 50, 48, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 50, 48, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 50, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 50, 48, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 57, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 57, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 57,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 56, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 56, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 56, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 55, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 55, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 55, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 54, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 54, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 54, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 53, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 53, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 53, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 53, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 52, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 52, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 52, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 51, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 51, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 51, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 50, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 50, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 50, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 49, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 49, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 49, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 49, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 49, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 49, 48, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 49, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 49, 48, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 49, 48,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 57, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 57, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 57, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 57, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 57, 48, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 57, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 56, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 56, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 54, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 53, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 56, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 56, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56,
+ 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 49, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 56, 48, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 55, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 55, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 55, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 54, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 55, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 55, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55,
+ 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 50, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 55, 49, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 55, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 54, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 56, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 55, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 54, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 54, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54,
+ 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 51, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 54, 50, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 54, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 54, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 57, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 56, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 53, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 53, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53,
+ 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 52, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 51, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 53, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 53, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 53, 48, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 57, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 52, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 52, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52,
+ 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 53, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 52, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 52, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 52, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 49, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 52, 48, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 51, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 51, 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51,
+ 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 54, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 53, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 51, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 51, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 50, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 51, 49, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 51, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 50, 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50,
+ 56, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 55, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 54, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 50, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 50, 52, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 51, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 50, 50, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 50, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 50, 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49,
+ 57, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 56, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 55, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 49, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 49, 53, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 52, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49, 51, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 49, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 49, 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 49,
+ 48, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 57, 128, 67, 79,
+ 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 56, 128, 67, 79, 77, 80, 79, 78,
+ 69, 78, 84, 45, 48, 48, 55, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45,
+ 48, 48, 54, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 53, 128,
+ 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48, 52, 128, 67, 79, 77, 80,
+ 79, 78, 69, 78, 84, 45, 48, 48, 51, 128, 67, 79, 77, 80, 79, 78, 69, 78,
+ 84, 45, 48, 48, 50, 128, 67, 79, 77, 80, 79, 78, 69, 78, 84, 45, 48, 48,
+ 49, 128, 67, 79, 77, 80, 79, 78, 69, 78, 212, 67, 79, 77, 80, 76, 73, 65,
+ 78, 67, 69, 128, 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, 128, 67, 79, 77,
+ 80, 76, 69, 84, 69, 68, 128, 67, 79, 77, 80, 76, 69, 77, 69, 78, 84, 128,
+ 67, 79, 77, 80, 65, 83, 83, 128, 67, 79, 77, 80, 65, 82, 69, 128, 67, 79,
+ 77, 77, 79, 206, 67, 79, 77, 77, 69, 82, 67, 73, 65, 204, 67, 79, 77, 77,
+ 65, 78, 68, 128, 67, 79, 77, 77, 65, 128, 67, 79, 77, 77, 193, 67, 79,
+ 77, 69, 84, 128, 67, 79, 77, 66, 73, 78, 69, 68, 128, 67, 79, 77, 66, 73,
+ 78, 65, 84, 73, 79, 78, 128, 67, 79, 77, 66, 128, 67, 79, 76, 85, 77, 78,
+ 128, 67, 79, 76, 79, 82, 128, 67, 79, 76, 76, 73, 83, 73, 79, 206, 67,
+ 79, 76, 76, 128, 67, 79, 76, 196, 67, 79, 73, 78, 128, 67, 79, 70, 70,
+ 73, 78, 128, 67, 79, 69, 78, 71, 128, 67, 79, 69, 78, 199, 67, 79, 68,
+ 65, 128, 67, 79, 67, 79, 78, 85, 84, 128, 67, 79, 67, 75, 84, 65, 73,
+ 204, 67, 79, 67, 75, 82, 79, 65, 67, 72, 128, 67, 79, 65, 84, 128, 67,
+ 79, 65, 83, 84, 69, 82, 128, 67, 79, 65, 128, 67, 77, 128, 67, 205, 67,
+ 76, 85, 83, 84, 69, 82, 45, 73, 78, 73, 84, 73, 65, 204, 67, 76, 85, 83,
+ 84, 69, 82, 45, 70, 73, 78, 65, 204, 67, 76, 85, 83, 84, 69, 210, 67, 76,
+ 85, 66, 83, 128, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67, 76, 85,
+ 66, 128, 67, 76, 85, 194, 67, 76, 79, 87, 206, 67, 76, 79, 86, 69, 82,
+ 128, 67, 76, 79, 85, 68, 128, 67, 76, 79, 85, 196, 67, 76, 79, 84, 72,
+ 69, 83, 128, 67, 76, 79, 84, 72, 128, 67, 76, 79, 83, 69, 84, 128, 67,
+ 76, 79, 83, 69, 78, 69, 83, 83, 128, 67, 76, 79, 83, 69, 68, 128, 67, 76,
+ 79, 83, 197, 67, 76, 79, 67, 75, 87, 73, 83, 197, 67, 76, 79, 67, 203,
+ 67, 76, 73, 86, 73, 83, 128, 67, 76, 73, 80, 66, 79, 65, 82, 68, 128, 67,
+ 76, 73, 78, 75, 73, 78, 199, 67, 76, 73, 78, 71, 73, 78, 199, 67, 76, 73,
+ 77, 66, 73, 78, 71, 128, 67, 76, 73, 77, 65, 67, 85, 83, 128, 67, 76, 73,
+ 70, 70, 128, 67, 76, 73, 67, 75, 128, 67, 76, 69, 70, 45, 50, 128, 67,
+ 76, 69, 70, 45, 49, 128, 67, 76, 69, 70, 128, 67, 76, 69, 198, 67, 76,
+ 69, 65, 86, 69, 82, 128, 67, 76, 69, 65, 210, 67, 76, 65, 83, 83, 73, 67,
+ 65, 204, 67, 76, 65, 80, 80, 73, 78, 199, 67, 76, 65, 80, 80, 69, 210,
+ 67, 76, 65, 78, 128, 67, 76, 65, 206, 67, 76, 65, 77, 83, 72, 69, 76,
+ 204, 67, 76, 65, 73, 77, 128, 67, 76, 128, 67, 73, 88, 128, 67, 73, 86,
+ 73, 76, 73, 65, 78, 128, 67, 73, 84, 89, 83, 67, 65, 80, 69, 128, 67, 73,
+ 84, 89, 83, 67, 65, 80, 197, 67, 73, 84, 201, 67, 73, 84, 65, 84, 73, 79,
+ 206, 67, 73, 84, 128, 67, 73, 82, 67, 85, 211, 67, 73, 82, 67, 85, 77,
+ 70, 76, 69, 88, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, 216, 67, 73, 82,
+ 67, 85, 76, 65, 84, 73, 79, 206, 67, 73, 82, 67, 76, 73, 78, 71, 128, 67,
+ 73, 82, 67, 76, 73, 78, 199, 67, 73, 82, 67, 76, 69, 83, 128, 67, 73, 82,
+ 67, 76, 69, 211, 67, 73, 82, 67, 76, 69, 68, 128, 67, 73, 80, 128, 67,
+ 73, 78, 78, 65, 66, 65, 82, 128, 67, 73, 78, 69, 77, 65, 128, 67, 73,
+ 206, 67, 73, 77, 128, 67, 73, 205, 67, 73, 73, 128, 67, 73, 69, 88, 128,
+ 67, 73, 69, 85, 67, 45, 83, 83, 65, 78, 71, 80, 73, 69, 85, 80, 128, 67,
+ 73, 69, 85, 67, 45, 80, 73, 69, 85, 80, 128, 67, 73, 69, 85, 67, 45, 73,
+ 69, 85, 78, 71, 128, 67, 73, 69, 85, 195, 67, 73, 69, 84, 128, 67, 73,
+ 69, 80, 128, 67, 73, 69, 128, 67, 72, 89, 88, 128, 67, 72, 89, 84, 128,
+ 67, 72, 89, 82, 88, 128, 67, 72, 89, 82, 128, 67, 72, 89, 80, 128, 67,
+ 72, 87, 86, 128, 67, 72, 85, 88, 128, 67, 72, 85, 82, 88, 128, 67, 72,
+ 85, 82, 67, 72, 128, 67, 72, 85, 82, 128, 67, 72, 85, 80, 128, 67, 72,
+ 85, 79, 88, 128, 67, 72, 85, 79, 84, 128, 67, 72, 85, 79, 80, 128, 67,
+ 72, 85, 79, 128, 67, 72, 85, 76, 65, 128, 67, 72, 85, 128, 67, 72, 82,
+ 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, 128, 67, 72, 82, 79, 78, 79, 85,
+ 128, 67, 72, 82, 79, 78, 79, 78, 128, 67, 72, 82, 79, 77, 193, 67, 72,
+ 82, 79, 193, 67, 72, 82, 73, 86, 73, 128, 67, 72, 82, 73, 83, 84, 77, 65,
+ 83, 128, 67, 72, 82, 73, 83, 84, 77, 65, 211, 67, 72, 79, 89, 128, 67,
+ 72, 79, 88, 128, 67, 72, 79, 84, 128, 67, 72, 79, 82, 69, 86, 77, 193,
+ 67, 72, 79, 82, 65, 83, 77, 73, 65, 206, 67, 72, 79, 80, 83, 84, 73, 67,
+ 75, 83, 128, 67, 72, 79, 80, 128, 67, 72, 79, 75, 69, 128, 67, 72, 79,
+ 69, 128, 67, 72, 79, 67, 79, 76, 65, 84, 197, 67, 72, 79, 65, 128, 67,
+ 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 67,
+ 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, 67, 73, 69, 85, 67, 128,
+ 67, 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, 84, 85,
+ 69, 85, 77, 67, 73, 69, 85, 67, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67,
+ 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 82, 79, 78, 128, 67, 72, 73, 82,
+ 69, 84, 128, 67, 72, 73, 80, 77, 85, 78, 75, 128, 67, 72, 73, 78, 79, 79,
+ 203, 67, 72, 73, 78, 71, 128, 67, 72, 73, 78, 69, 83, 197, 67, 72, 73,
+ 78, 128, 67, 72, 73, 77, 69, 128, 67, 72, 73, 77, 128, 67, 72, 73, 76,
+ 76, 213, 67, 72, 73, 76, 68, 82, 69, 206, 67, 72, 73, 76, 68, 128, 67,
+ 72, 73, 76, 128, 67, 72, 73, 75, 201, 67, 72, 73, 69, 85, 67, 72, 45, 75,
+ 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, 69, 85, 67, 72, 45, 72, 73, 69,
+ 85, 72, 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 73, 67, 75, 69, 78,
+ 128, 67, 72, 73, 67, 75, 128, 67, 72, 73, 128, 67, 72, 201, 67, 72, 72,
+ 73, 77, 128, 67, 72, 72, 65, 128, 67, 72, 69, 88, 128, 67, 72, 69, 86,
+ 82, 79, 78, 128, 67, 72, 69, 86, 82, 79, 206, 67, 72, 69, 84, 128, 67,
+ 72, 69, 83, 84, 78, 85, 84, 128, 67, 72, 69, 83, 84, 128, 67, 72, 69, 83,
211, 67, 72, 69, 82, 89, 128, 67, 72, 69, 82, 82, 217, 67, 72, 69, 82,
82, 73, 69, 83, 128, 67, 72, 69, 81, 85, 69, 82, 69, 196, 67, 72, 69, 80,
128, 67, 72, 69, 73, 78, 65, 80, 128, 67, 72, 69, 73, 75, 72, 69, 73,
@@ -5842,14427 +5842,14427 @@ static const unsigned char lexicon[] = {
67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 50, 128, 67, 72,
65, 82, 65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 49, 128, 67, 72, 65, 82,
65, 67, 84, 69, 82, 45, 49, 66, 49, 55, 48, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68,
- 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 48, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 70, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 69, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 68, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67,
- 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 55, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 54, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 53, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 52, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66,
- 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 69, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 68, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 67, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 66, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66,
- 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 53, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 52, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 51, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 50, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65,
- 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 67, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 66, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 65, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 57, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65,
- 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 51, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 50, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 49, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 48, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57,
- 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 65, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 57, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 56, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 55, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57,
- 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 49, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 48, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 70, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 69, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56,
- 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 56, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 55, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 54, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 53, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56,
- 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 70, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 69, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 68, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 67, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55,
- 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 54, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 53, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 52, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 51, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54,
- 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 68, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 67, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 66, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 65, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54,
- 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 52, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 51, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 50, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 49, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53,
- 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 66, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 65, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 57, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 56, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53,
- 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 50, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 49, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 48, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 70, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52,
- 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 57, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 56, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 55, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 54, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52,
- 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 48, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 70, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 69, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 68, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51,
- 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 55, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 54, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 53, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 52, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50,
- 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 69, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 68, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 67, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 66, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50,
- 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 53, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 52, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 51, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 50, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49,
- 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 67, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 66, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 65, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 57, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49,
- 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 51, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 50, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 49, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 48, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48,
- 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 65, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 57, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 56, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 55, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 67, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 67, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 67, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 67, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48,
- 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 49, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 48, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 70, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 69, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 70, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70,
- 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 56, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 55, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 54, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 53, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70,
- 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 70, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 69, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 68, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 67, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69,
- 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 54, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 53, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 52, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 51, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68,
- 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 68, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 67, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 66, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 65, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68,
- 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 52, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 51, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 50, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 49, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67,
- 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 66, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 65, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 57, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 56, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67,
- 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 50, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 49, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 48, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 70, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66,
- 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 57, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 56, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 55, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 54, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66,
- 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 48, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 70, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 69, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 68, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65,
- 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 55, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 54, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 53, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 52, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57,
- 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 69, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 68, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 67, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 66, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57,
- 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 53, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 52, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 51, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 50, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56,
- 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 67, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 66, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 65, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 57, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56,
- 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 51, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 50, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 49, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 48, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55,
- 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 65, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 57, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 56, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 55, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55,
- 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 49, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 48, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 70, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 69, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 54, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54,
- 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 56, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 55, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 54, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 53, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 54, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54,
- 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 70, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 69, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 68, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 67, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 53, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53,
- 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 54, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 53, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 52, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 51, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 53, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52,
- 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 68, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 67, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 66, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 65, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 52, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52,
- 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 52, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 51, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 50, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 49, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 51, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51,
- 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 66, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 65, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 57, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 56, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 51, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51,
- 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 50, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 49, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 48, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 70, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 50, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50,
- 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 57, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 56, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 55, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 54, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 50, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50,
- 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 48, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 70, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 69, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 68, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 49, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49,
- 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 55, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 54, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 53, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 52, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 49, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48,
- 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 69, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 68, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 67, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 66, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 48, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
- 49, 56, 66, 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
- 66, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48,
- 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 53, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 52, 128, 67, 72,
- 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 51, 128, 67, 72, 65, 82,
- 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 50, 128, 67, 72, 65, 82, 65, 67,
- 84, 69, 82, 45, 49, 56, 66, 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
- 82, 45, 49, 56, 66, 48, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 128,
- 67, 72, 65, 82, 65, 67, 84, 69, 210, 67, 72, 65, 82, 128, 67, 72, 65, 80,
- 84, 69, 82, 128, 67, 72, 65, 80, 128, 67, 72, 65, 78, 71, 128, 67, 72,
- 65, 78, 128, 67, 72, 65, 77, 75, 79, 128, 67, 72, 65, 77, 73, 76, 79, 78,
- 128, 67, 72, 65, 77, 73, 76, 73, 128, 67, 72, 65, 205, 67, 72, 65, 75,
- 77, 193, 67, 72, 65, 73, 78, 83, 128, 67, 72, 65, 68, 65, 128, 67, 72,
- 65, 196, 67, 72, 65, 65, 128, 67, 71, 74, 128, 67, 69, 88, 128, 67, 69,
- 86, 73, 84, 85, 128, 67, 69, 82, 69, 83, 128, 67, 69, 82, 69, 77, 79, 78,
- 89, 128, 67, 69, 82, 69, 75, 128, 67, 69, 82, 45, 87, 65, 128, 67, 69,
- 80, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71,
- 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83,
- 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69,
- 85, 77, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77,
- 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67,
- 72, 73, 69, 85, 67, 72, 128, 67, 69, 78, 84, 85, 82, 73, 65, 204, 67, 69,
- 78, 84, 82, 69, 76, 73, 78, 197, 67, 69, 78, 84, 82, 69, 68, 128, 67, 69,
- 78, 84, 82, 69, 196, 67, 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, 82,
- 197, 67, 69, 78, 84, 82, 65, 76, 73, 90, 65, 84, 73, 79, 206, 67, 69, 78,
- 128, 67, 69, 76, 84, 73, 195, 67, 69, 76, 83, 73, 85, 83, 128, 67, 69,
- 76, 69, 66, 82, 65, 84, 73, 79, 78, 128, 67, 69, 73, 82, 84, 128, 67, 69,
- 73, 76, 73, 78, 71, 128, 67, 69, 73, 76, 73, 78, 199, 67, 69, 69, 86,
- 128, 67, 69, 69, 66, 128, 67, 69, 69, 128, 67, 69, 68, 73, 76, 76, 65,
- 128, 67, 69, 68, 73, 76, 76, 193, 67, 69, 68, 201, 67, 69, 67, 69, 75,
- 128, 67, 69, 67, 65, 75, 128, 67, 69, 67, 65, 203, 67, 69, 65, 76, 67,
- 128, 67, 67, 85, 128, 67, 67, 79, 128, 67, 67, 73, 128, 67, 67, 72, 85,
- 128, 67, 67, 72, 79, 128, 67, 67, 72, 73, 128, 67, 67, 72, 72, 85, 128,
- 67, 67, 72, 72, 79, 128, 67, 67, 72, 72, 73, 128, 67, 67, 72, 72, 69, 69,
- 128, 67, 67, 72, 72, 69, 128, 67, 67, 72, 72, 65, 65, 128, 67, 67, 72,
- 72, 65, 128, 67, 67, 72, 69, 69, 128, 67, 67, 72, 69, 128, 67, 67, 72,
- 65, 65, 128, 67, 67, 72, 65, 128, 67, 67, 72, 128, 67, 67, 69, 69, 128,
- 67, 67, 65, 65, 128, 67, 65, 89, 78, 128, 67, 65, 89, 65, 78, 78, 65,
- 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, 67, 65, 85, 84, 73, 79, 206,
- 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, 85, 68, 65, 128, 67, 65, 85,
- 67, 65, 83, 73, 65, 206, 67, 65, 85, 128, 67, 65, 84, 65, 87, 65, 128,
- 67, 65, 84, 128, 67, 65, 212, 67, 65, 83, 84, 76, 69, 128, 67, 65, 83,
- 75, 69, 212, 67, 65, 82, 89, 83, 84, 73, 65, 206, 67, 65, 82, 84, 87, 72,
- 69, 69, 76, 128, 67, 65, 82, 84, 82, 73, 68, 71, 69, 128, 67, 65, 82, 84,
- 128, 67, 65, 82, 211, 67, 65, 82, 82, 79, 84, 128, 67, 65, 82, 82, 73,
- 65, 71, 197, 67, 65, 82, 80, 69, 78, 84, 82, 217, 67, 65, 82, 208, 67,
- 65, 82, 79, 85, 83, 69, 204, 67, 65, 82, 79, 78, 128, 67, 65, 82, 79,
- 206, 67, 65, 82, 73, 203, 67, 65, 82, 73, 65, 206, 67, 65, 82, 69, 84,
- 128, 67, 65, 82, 69, 212, 67, 65, 82, 197, 67, 65, 82, 68, 83, 128, 67,
- 65, 82, 196, 67, 65, 82, 128, 67, 65, 210, 67, 65, 80, 85, 212, 67, 65,
- 80, 84, 73, 86, 69, 128, 67, 65, 80, 82, 73, 67, 79, 82, 78, 128, 67, 65,
- 80, 80, 69, 196, 67, 65, 80, 79, 128, 67, 65, 80, 73, 84, 85, 76, 85, 77,
- 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, 78, 84, 73, 76, 76, 65, 84,
- 73, 79, 206, 67, 65, 78, 79, 69, 128, 67, 65, 78, 78, 79, 78, 128, 67,
- 65, 78, 78, 69, 196, 67, 65, 78, 199, 67, 65, 78, 69, 128, 67, 65, 78,
- 68, 89, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, 68, 85, 128, 67, 65, 78,
- 68, 82, 65, 66, 73, 78, 68, 213, 67, 65, 78, 68, 82, 65, 128, 67, 65, 78,
- 68, 82, 193, 67, 65, 78, 68, 76, 69, 128, 67, 65, 78, 67, 69, 82, 128,
- 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 67, 69, 76,
- 128, 67, 65, 78, 67, 69, 204, 67, 65, 78, 128, 67, 65, 77, 80, 73, 78,
- 71, 128, 67, 65, 77, 78, 85, 195, 67, 65, 77, 69, 82, 65, 128, 67, 65,
- 77, 69, 82, 193, 67, 65, 77, 69, 76, 128, 67, 65, 76, 89, 65, 128, 67,
- 65, 76, 89, 193, 67, 65, 76, 88, 128, 67, 65, 76, 76, 128, 67, 65, 76,
- 204, 67, 65, 76, 69, 78, 68, 65, 82, 128, 67, 65, 76, 69, 78, 68, 65,
- 210, 67, 65, 76, 67, 85, 76, 65, 84, 79, 82, 128, 67, 65, 76, 67, 128,
- 67, 65, 75, 82, 65, 128, 67, 65, 75, 197, 67, 65, 73, 128, 67, 65, 72,
- 128, 67, 65, 69, 83, 85, 82, 65, 128, 67, 65, 68, 85, 67, 69, 85, 83,
- 128, 67, 65, 68, 193, 67, 65, 67, 84, 85, 83, 128, 67, 65, 66, 76, 69,
- 87, 65, 89, 128, 67, 65, 66, 73, 78, 69, 84, 128, 67, 65, 66, 66, 65, 71,
- 69, 45, 84, 82, 69, 69, 128, 67, 65, 65, 78, 71, 128, 67, 65, 65, 73,
- 128, 67, 193, 67, 48, 50, 52, 128, 67, 48, 50, 51, 128, 67, 48, 50, 50,
- 128, 67, 48, 50, 49, 128, 67, 48, 50, 48, 128, 67, 48, 49, 57, 128, 67,
- 48, 49, 56, 128, 67, 48, 49, 55, 128, 67, 48, 49, 54, 128, 67, 48, 49,
- 53, 128, 67, 48, 49, 52, 128, 67, 48, 49, 51, 128, 67, 48, 49, 50, 128,
- 67, 48, 49, 49, 128, 67, 48, 49, 48, 65, 128, 67, 48, 49, 48, 128, 67,
- 48, 48, 57, 128, 67, 48, 48, 56, 128, 67, 48, 48, 55, 128, 67, 48, 48,
- 54, 128, 67, 48, 48, 53, 128, 67, 48, 48, 52, 128, 67, 48, 48, 51, 128,
- 67, 48, 48, 50, 67, 128, 67, 48, 48, 50, 66, 128, 67, 48, 48, 50, 65,
- 128, 67, 48, 48, 50, 128, 67, 48, 48, 49, 128, 67, 45, 83, 73, 77, 80,
- 76, 73, 70, 73, 69, 196, 67, 45, 51, 57, 128, 67, 45, 49, 56, 128, 66,
- 90, 85, 78, 199, 66, 90, 72, 201, 66, 89, 84, 197, 66, 89, 69, 76, 79,
- 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, 78, 73, 65, 206, 66,
- 88, 71, 128, 66, 87, 73, 128, 66, 87, 69, 69, 128, 66, 87, 69, 128, 66,
- 87, 65, 128, 66, 85, 85, 77, 73, 83, 72, 128, 66, 85, 84, 84, 79, 78,
- 128, 66, 85, 84, 84, 79, 206, 66, 85, 84, 84, 69, 82, 70, 76, 89, 128,
- 66, 85, 84, 84, 69, 82, 128, 66, 85, 212, 66, 85, 83, 84, 211, 66, 85,
- 83, 212, 66, 85, 83, 83, 89, 69, 82, 85, 128, 66, 85, 83, 73, 78, 69, 83,
- 211, 66, 85, 211, 66, 85, 82, 213, 66, 85, 82, 82, 73, 84, 79, 128, 66,
- 85, 82, 50, 128, 66, 85, 210, 66, 85, 79, 88, 128, 66, 85, 79, 80, 128,
- 66, 85, 78, 78, 217, 66, 85, 78, 71, 128, 66, 85, 77, 80, 217, 66, 85,
- 76, 85, 71, 128, 66, 85, 76, 85, 199, 66, 85, 76, 76, 83, 69, 89, 69,
- 128, 66, 85, 76, 76, 211, 66, 85, 76, 76, 72, 79, 82, 78, 128, 66, 85,
- 76, 76, 72, 79, 82, 206, 66, 85, 76, 76, 69, 84, 128, 66, 85, 76, 76, 69,
- 212, 66, 85, 76, 76, 128, 66, 85, 76, 66, 128, 66, 85, 75, 89, 128, 66,
- 85, 73, 76, 68, 73, 78, 71, 83, 128, 66, 85, 73, 76, 68, 73, 78, 71, 128,
- 66, 85, 73, 76, 68, 73, 78, 199, 66, 85, 72, 73, 196, 66, 85, 71, 73, 78,
- 69, 83, 197, 66, 85, 71, 128, 66, 85, 70, 70, 65, 76, 79, 128, 66, 85,
- 68, 128, 66, 85, 67, 75, 76, 69, 128, 66, 85, 67, 75, 69, 84, 128, 66,
- 85, 66, 66, 76, 69, 83, 128, 66, 85, 66, 66, 76, 69, 128, 66, 85, 66, 66,
- 76, 197, 66, 83, 84, 65, 82, 128, 66, 83, 75, 85, 210, 66, 83, 75, 65,
- 173, 66, 83, 68, 85, 211, 66, 82, 85, 83, 200, 66, 82, 79, 87, 206, 66,
- 82, 79, 79, 77, 128, 66, 82, 79, 78, 90, 69, 128, 66, 82, 79, 75, 69,
- 206, 66, 82, 79, 67, 67, 79, 76, 73, 128, 66, 82, 79, 65, 196, 66, 82,
- 73, 83, 84, 76, 69, 128, 66, 82, 73, 71, 72, 84, 78, 69, 83, 211, 66, 82,
- 73, 69, 70, 83, 128, 66, 82, 73, 69, 70, 67, 65, 83, 69, 128, 66, 82, 73,
- 68, 71, 197, 66, 82, 73, 68, 197, 66, 82, 73, 67, 75, 128, 66, 82, 73,
- 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 69, 86, 69, 45, 77, 65, 67, 82,
- 79, 78, 128, 66, 82, 69, 86, 197, 66, 82, 69, 65, 84, 200, 66, 82, 69,
- 65, 83, 84, 45, 70, 69, 69, 68, 73, 78, 71, 128, 66, 82, 69, 65, 75, 84,
- 72, 82, 79, 85, 71, 72, 128, 66, 82, 68, 193, 66, 82, 65, 78, 67, 72, 73,
- 78, 199, 66, 82, 65, 78, 67, 72, 69, 83, 128, 66, 82, 65, 78, 67, 72,
- 128, 66, 82, 65, 78, 67, 200, 66, 82, 65, 75, 67, 69, 84, 128, 66, 82,
- 65, 73, 78, 128, 66, 82, 65, 67, 75, 69, 84, 69, 196, 66, 82, 65, 67, 75,
- 69, 212, 66, 82, 65, 67, 69, 128, 66, 81, 128, 66, 80, 72, 128, 66, 79,
- 89, 211, 66, 79, 89, 128, 66, 79, 88, 73, 78, 199, 66, 79, 87, 84, 73,
- 69, 128, 66, 79, 87, 84, 73, 197, 66, 79, 87, 76, 73, 78, 71, 128, 66,
- 79, 87, 76, 128, 66, 79, 87, 204, 66, 79, 87, 73, 78, 199, 66, 79, 215,
- 66, 79, 85, 81, 85, 69, 84, 128, 66, 79, 85, 81, 85, 69, 212, 66, 79, 85,
- 78, 68, 65, 82, 217, 66, 79, 84, 84, 79, 77, 45, 83, 72, 65, 68, 69, 196,
- 66, 79, 84, 84, 79, 77, 45, 76, 73, 71, 72, 84, 69, 196, 66, 79, 84, 84,
- 79, 77, 128, 66, 79, 84, 84, 79, 205, 66, 79, 84, 84, 76, 69, 128, 66,
- 79, 84, 84, 76, 197, 66, 79, 84, 200, 66, 79, 82, 85, 84, 79, 128, 66,
- 79, 82, 65, 88, 45, 51, 128, 66, 79, 82, 65, 88, 45, 50, 128, 66, 79, 82,
- 65, 88, 128, 66, 79, 80, 79, 77, 79, 70, 207, 66, 79, 79, 84, 83, 128,
- 66, 79, 79, 84, 128, 66, 79, 79, 77, 69, 82, 65, 78, 71, 128, 66, 79, 79,
- 75, 83, 128, 66, 79, 79, 75, 77, 65, 82, 75, 128, 66, 79, 79, 75, 77, 65,
- 82, 203, 66, 79, 78, 69, 128, 66, 79, 77, 66, 128, 66, 79, 77, 128, 66,
- 79, 76, 84, 128, 66, 79, 76, 212, 66, 79, 72, 65, 73, 82, 73, 195, 66,
- 79, 68, 89, 128, 66, 79, 68, 217, 66, 79, 65, 82, 128, 66, 79, 65, 128,
- 66, 76, 85, 69, 66, 69, 82, 82, 73, 69, 83, 128, 66, 76, 85, 69, 128, 66,
- 76, 85, 197, 66, 76, 79, 87, 73, 78, 199, 66, 76, 79, 87, 70, 73, 83, 72,
- 128, 66, 76, 79, 215, 66, 76, 79, 83, 83, 79, 77, 128, 66, 76, 79, 79,
- 68, 128, 66, 76, 79, 78, 196, 66, 76, 79, 67, 75, 45, 55, 128, 66, 76,
- 79, 67, 75, 45, 54, 128, 66, 76, 79, 67, 75, 45, 53, 128, 66, 76, 79, 67,
- 75, 45, 52, 128, 66, 76, 79, 67, 75, 45, 51, 128, 66, 76, 79, 67, 75, 45,
- 50, 128, 66, 76, 79, 67, 75, 45, 49, 51, 53, 56, 128, 66, 76, 79, 67, 75,
- 128, 66, 76, 73, 78, 203, 66, 76, 65, 78, 75, 128, 66, 76, 65, 78, 203,
- 66, 76, 65, 68, 197, 66, 76, 65, 67, 75, 76, 69, 84, 84, 69, 210, 66, 76,
- 65, 67, 75, 70, 79, 79, 212, 66, 76, 65, 67, 75, 45, 76, 69, 84, 84, 69,
- 210, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 66, 76,
- 65, 67, 75, 128, 66, 75, 65, 173, 66, 73, 84, 84, 69, 82, 128, 66, 73,
- 84, 73, 78, 199, 66, 73, 84, 197, 66, 73, 84, 67, 79, 73, 206, 66, 73,
- 83, 79, 78, 128, 66, 73, 83, 77, 85, 84, 200, 66, 73, 83, 77, 73, 76, 76,
- 65, 200, 66, 73, 83, 72, 79, 208, 66, 73, 83, 69, 67, 84, 73, 78, 199,
- 66, 73, 83, 65, 72, 128, 66, 73, 82, 85, 128, 66, 73, 82, 84, 72, 68, 65,
- 217, 66, 73, 82, 71, 65, 128, 66, 73, 82, 71, 193, 66, 73, 82, 68, 128,
- 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 78, 79, 86, 73, 76, 69, 128,
- 66, 73, 78, 79, 67, 85, 76, 65, 210, 66, 73, 78, 68, 73, 78, 199, 66, 73,
- 78, 68, 73, 128, 66, 73, 78, 65, 82, 217, 66, 73, 76, 76, 73, 79, 78, 83,
- 128, 66, 73, 76, 76, 73, 65, 82, 68, 83, 128, 66, 73, 76, 76, 69, 196,
- 66, 73, 76, 65, 66, 73, 65, 204, 66, 73, 75, 73, 78, 73, 128, 66, 73, 71,
- 128, 66, 73, 199, 66, 73, 69, 84, 128, 66, 73, 68, 69, 78, 84, 65, 204,
- 66, 73, 68, 65, 75, 85, 79, 206, 66, 73, 67, 89, 67, 76, 73, 83, 84, 128,
- 66, 73, 67, 89, 67, 76, 69, 83, 128, 66, 73, 67, 89, 67, 76, 69, 128, 66,
- 73, 67, 69, 80, 83, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, 66, 73,
- 66, 128, 66, 201, 66, 72, 85, 128, 66, 72, 79, 79, 128, 66, 72, 79, 128,
- 66, 72, 73, 128, 66, 72, 69, 84, 72, 128, 66, 72, 69, 69, 128, 66, 72,
- 69, 128, 66, 72, 65, 84, 84, 73, 80, 82, 79, 76, 213, 66, 72, 65, 77,
- 128, 66, 72, 65, 73, 75, 83, 85, 75, 201, 66, 72, 65, 65, 128, 66, 72,
- 65, 128, 66, 69, 89, 89, 65, 76, 128, 66, 69, 88, 128, 66, 69, 86, 69,
- 82, 65, 71, 69, 128, 66, 69, 86, 69, 82, 65, 71, 197, 66, 69, 84, 87, 69,
- 69, 78, 128, 66, 69, 84, 87, 69, 69, 206, 66, 69, 84, 72, 128, 66, 69,
- 84, 65, 128, 66, 69, 84, 193, 66, 69, 212, 66, 69, 83, 73, 68, 197, 66,
- 69, 82, 75, 65, 78, 65, 206, 66, 69, 82, 66, 69, 210, 66, 69, 80, 128,
- 66, 69, 79, 82, 195, 66, 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207,
- 66, 69, 78, 84, 128, 66, 69, 78, 212, 66, 69, 78, 71, 65, 76, 201, 66,
- 69, 78, 68, 69, 128, 66, 69, 78, 68, 128, 66, 69, 78, 196, 66, 69, 206,
- 66, 69, 76, 84, 128, 66, 69, 76, 212, 66, 69, 76, 79, 215, 66, 69, 76,
- 76, 72, 79, 208, 66, 69, 76, 76, 128, 66, 69, 76, 204, 66, 69, 76, 71,
- 84, 72, 79, 210, 66, 69, 73, 84, 72, 128, 66, 69, 72, 73, 78, 196, 66,
- 69, 72, 69, 72, 128, 66, 69, 72, 69, 200, 66, 69, 72, 128, 66, 69, 200,
- 66, 69, 71, 73, 78, 78, 73, 78, 71, 128, 66, 69, 71, 73, 78, 78, 69, 82,
- 128, 66, 69, 71, 73, 206, 66, 69, 70, 79, 82, 197, 66, 69, 69, 84, 76,
- 69, 128, 66, 69, 69, 84, 65, 128, 66, 69, 69, 210, 66, 69, 69, 72, 73,
- 86, 69, 128, 66, 69, 69, 72, 128, 66, 69, 69, 200, 66, 69, 67, 65, 85,
- 83, 69, 128, 66, 69, 65, 86, 69, 82, 128, 66, 69, 65, 86, 69, 210, 66,
- 69, 65, 84, 73, 78, 199, 66, 69, 65, 84, 128, 66, 69, 65, 82, 68, 69,
- 196, 66, 69, 65, 82, 128, 66, 69, 65, 210, 66, 69, 65, 78, 128, 66, 69,
- 65, 77, 69, 196, 66, 69, 65, 68, 83, 128, 66, 69, 65, 67, 200, 66, 67,
- 65, 68, 128, 66, 67, 65, 196, 66, 66, 89, 88, 128, 66, 66, 89, 84, 128,
- 66, 66, 89, 80, 128, 66, 66, 89, 128, 66, 66, 85, 88, 128, 66, 66, 85,
- 84, 128, 66, 66, 85, 82, 88, 128, 66, 66, 85, 82, 128, 66, 66, 85, 80,
- 128, 66, 66, 85, 79, 88, 128, 66, 66, 85, 79, 80, 128, 66, 66, 85, 79,
- 128, 66, 66, 85, 128, 66, 66, 79, 88, 128, 66, 66, 79, 84, 128, 66, 66,
- 79, 80, 128, 66, 66, 79, 128, 66, 66, 73, 88, 128, 66, 66, 73, 80, 128,
- 66, 66, 73, 69, 88, 128, 66, 66, 73, 69, 84, 128, 66, 66, 73, 69, 80,
- 128, 66, 66, 73, 69, 128, 66, 66, 73, 128, 66, 66, 69, 88, 128, 66, 66,
- 69, 80, 128, 66, 66, 69, 69, 128, 66, 66, 65, 88, 128, 66, 66, 65, 84,
- 128, 66, 66, 65, 80, 128, 66, 66, 65, 65, 128, 66, 65, 89, 65, 78, 78,
- 65, 128, 66, 65, 85, 128, 66, 65, 84, 84, 69, 82, 89, 128, 66, 65, 84,
- 72, 84, 85, 66, 128, 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 66, 65,
- 84, 72, 128, 66, 65, 84, 200, 66, 65, 84, 65, 203, 66, 65, 83, 83, 65,
- 128, 66, 65, 83, 83, 193, 66, 65, 83, 75, 69, 84, 66, 65, 76, 204, 66,
- 65, 83, 72, 75, 73, 210, 66, 65, 83, 72, 128, 66, 65, 83, 69, 76, 73, 78,
- 197, 66, 65, 83, 69, 66, 65, 76, 76, 128, 66, 65, 83, 69, 128, 66, 65,
- 83, 197, 66, 65, 82, 83, 128, 66, 65, 82, 211, 66, 65, 82, 82, 73, 69,
- 82, 128, 66, 65, 82, 82, 69, 75, 72, 128, 66, 65, 82, 82, 69, 69, 128,
- 66, 65, 82, 82, 69, 197, 66, 65, 82, 76, 73, 78, 69, 128, 66, 65, 82, 76,
- 69, 89, 128, 66, 65, 82, 73, 89, 79, 79, 83, 65, 78, 128, 66, 65, 82, 66,
- 69, 210, 66, 65, 82, 65, 50, 128, 66, 65, 210, 66, 65, 78, 84, 79, 67,
- 128, 66, 65, 78, 75, 78, 79, 84, 197, 66, 65, 78, 75, 128, 66, 65, 78,
- 203, 66, 65, 78, 74, 79, 128, 66, 65, 78, 68, 128, 66, 65, 78, 65, 78,
- 65, 128, 66, 65, 78, 50, 128, 66, 65, 78, 178, 66, 65, 77, 66, 79, 79,
- 83, 128, 66, 65, 77, 66, 79, 79, 128, 66, 65, 76, 85, 68, 65, 128, 66,
- 65, 76, 76, 80, 79, 73, 78, 212, 66, 65, 76, 76, 79, 84, 128, 66, 65, 76,
- 76, 79, 212, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75, 69, 196, 66,
- 65, 76, 76, 79, 79, 78, 128, 66, 65, 76, 76, 69, 212, 66, 65, 76, 68,
- 128, 66, 65, 76, 65, 71, 128, 66, 65, 76, 128, 66, 65, 204, 66, 65, 73,
- 82, 75, 65, 78, 128, 66, 65, 73, 77, 65, 73, 128, 66, 65, 72, 84, 128,
- 66, 65, 72, 73, 82, 71, 79, 77, 85, 75, 72, 65, 128, 66, 65, 72, 65, 82,
- 50, 128, 66, 65, 72, 65, 82, 178, 66, 65, 72, 128, 66, 65, 71, 85, 69,
- 84, 84, 197, 66, 65, 71, 83, 128, 66, 65, 71, 71, 65, 71, 197, 66, 65,
- 71, 69, 76, 128, 66, 65, 71, 65, 128, 66, 65, 71, 51, 128, 66, 65, 199,
- 66, 65, 68, 77, 73, 78, 84, 79, 206, 66, 65, 68, 71, 69, 82, 128, 66, 65,
- 68, 71, 69, 128, 66, 65, 196, 66, 65, 67, 84, 82, 73, 65, 206, 66, 65,
- 67, 79, 78, 128, 66, 65, 67, 75, 87, 65, 82, 68, 128, 66, 65, 67, 75, 83,
- 80, 65, 67, 69, 128, 66, 65, 67, 75, 83, 76, 65, 83, 72, 128, 66, 65, 67,
- 75, 83, 76, 65, 83, 200, 66, 65, 67, 75, 83, 76, 65, 78, 84, 69, 196, 66,
- 65, 67, 75, 72, 65, 78, 196, 66, 65, 67, 75, 45, 84, 73, 76, 84, 69, 196,
- 66, 65, 67, 75, 128, 66, 65, 67, 203, 66, 65, 66, 89, 128, 66, 65, 66,
- 217, 66, 65, 65, 82, 69, 82, 85, 128, 66, 65, 45, 50, 128, 66, 51, 48,
- 53, 128, 66, 50, 53, 180, 66, 50, 52, 183, 66, 50, 52, 179, 66, 50, 52,
- 178, 66, 50, 52, 177, 66, 50, 52, 176, 66, 50, 51, 179, 66, 50, 51, 177,
- 66, 50, 51, 176, 66, 50, 50, 181, 66, 50, 50, 176, 66, 49, 57, 177, 66,
- 49, 55, 182, 66, 49, 55, 179, 66, 49, 54, 57, 128, 66, 49, 54, 56, 128,
- 66, 49, 54, 55, 128, 66, 49, 54, 54, 128, 66, 49, 54, 53, 128, 66, 49,
- 54, 52, 128, 66, 49, 54, 179, 66, 49, 54, 178, 66, 49, 54, 49, 128, 66,
- 49, 54, 48, 128, 66, 49, 53, 185, 66, 49, 53, 56, 128, 66, 49, 53, 55,
- 128, 66, 49, 53, 182, 66, 49, 53, 53, 128, 66, 49, 53, 52, 128, 66, 49,
- 53, 51, 128, 66, 49, 53, 50, 128, 66, 49, 53, 177, 66, 49, 53, 48, 128,
- 66, 49, 52, 54, 128, 66, 49, 52, 181, 66, 49, 52, 50, 128, 66, 49, 52,
- 177, 66, 49, 52, 176, 66, 49, 51, 181, 66, 49, 51, 179, 66, 49, 51, 50,
- 128, 66, 49, 51, 177, 66, 49, 51, 176, 66, 49, 50, 184, 66, 49, 50, 183,
- 66, 49, 50, 181, 66, 49, 50, 179, 66, 49, 50, 178, 66, 49, 50, 177, 66,
- 49, 50, 176, 66, 49, 48, 57, 205, 66, 49, 48, 57, 198, 66, 49, 48, 56,
- 205, 66, 49, 48, 56, 198, 66, 49, 48, 55, 205, 66, 49, 48, 55, 198, 66,
- 49, 48, 54, 205, 66, 49, 48, 54, 198, 66, 49, 48, 53, 205, 66, 49, 48,
- 53, 198, 66, 49, 48, 181, 66, 49, 48, 180, 66, 49, 48, 178, 66, 49, 48,
- 176, 66, 48, 57, 177, 66, 48, 57, 176, 66, 48, 56, 57, 128, 66, 48, 56,
- 183, 66, 48, 56, 54, 128, 66, 48, 56, 181, 66, 48, 56, 51, 128, 66, 48,
- 56, 50, 128, 66, 48, 56, 177, 66, 48, 56, 176, 66, 48, 55, 57, 128, 66,
- 48, 55, 184, 66, 48, 55, 183, 66, 48, 55, 182, 66, 48, 55, 181, 66, 48,
- 55, 180, 66, 48, 55, 179, 66, 48, 55, 178, 66, 48, 55, 177, 66, 48, 55,
- 176, 66, 48, 54, 185, 66, 48, 54, 184, 66, 48, 54, 183, 66, 48, 54, 182,
- 66, 48, 54, 181, 66, 48, 54, 52, 128, 66, 48, 54, 51, 128, 66, 48, 54,
- 178, 66, 48, 54, 177, 66, 48, 54, 176, 66, 48, 53, 185, 66, 48, 53, 184,
- 66, 48, 53, 183, 66, 48, 53, 54, 128, 66, 48, 53, 181, 66, 48, 53, 180,
- 66, 48, 53, 179, 66, 48, 53, 178, 66, 48, 53, 177, 66, 48, 53, 176, 66,
- 48, 52, 57, 128, 66, 48, 52, 184, 66, 48, 52, 55, 128, 66, 48, 52, 182,
- 66, 48, 52, 181, 66, 48, 52, 180, 66, 48, 52, 179, 66, 48, 52, 178, 66,
- 48, 52, 177, 66, 48, 52, 176, 66, 48, 51, 185, 66, 48, 51, 184, 66, 48,
- 51, 183, 66, 48, 51, 182, 66, 48, 51, 52, 128, 66, 48, 51, 179, 66, 48,
- 51, 178, 66, 48, 51, 177, 66, 48, 51, 176, 66, 48, 50, 185, 66, 48, 50,
- 184, 66, 48, 50, 183, 66, 48, 50, 182, 66, 48, 50, 181, 66, 48, 50, 180,
- 66, 48, 50, 179, 66, 48, 50, 50, 128, 66, 48, 50, 177, 66, 48, 50, 176,
- 66, 48, 49, 57, 128, 66, 48, 49, 56, 128, 66, 48, 49, 183, 66, 48, 49,
- 182, 66, 48, 49, 181, 66, 48, 49, 180, 66, 48, 49, 179, 66, 48, 49, 178,
- 66, 48, 49, 177, 66, 48, 49, 176, 66, 48, 48, 57, 128, 66, 48, 48, 185,
- 66, 48, 48, 56, 128, 66, 48, 48, 184, 66, 48, 48, 55, 128, 66, 48, 48,
- 183, 66, 48, 48, 54, 128, 66, 48, 48, 182, 66, 48, 48, 53, 65, 128, 66,
- 48, 48, 53, 128, 66, 48, 48, 181, 66, 48, 48, 52, 128, 66, 48, 48, 180,
- 66, 48, 48, 51, 128, 66, 48, 48, 179, 66, 48, 48, 50, 128, 66, 48, 48,
- 178, 66, 48, 48, 49, 128, 66, 48, 48, 177, 65, 90, 85, 128, 65, 89, 66,
- 128, 65, 89, 65, 72, 128, 65, 88, 69, 128, 65, 87, 69, 128, 65, 87, 65,
- 217, 65, 86, 79, 67, 65, 68, 79, 128, 65, 86, 69, 83, 84, 65, 206, 65,
- 86, 69, 82, 65, 71, 197, 65, 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89,
- 65, 128, 65, 86, 65, 71, 82, 65, 72, 65, 128, 65, 85, 89, 65, 78, 78, 65,
- 128, 65, 85, 84, 85, 77, 78, 128, 65, 85, 84, 79, 77, 79, 66, 73, 76, 69,
- 128, 65, 85, 84, 79, 77, 65, 84, 69, 196, 65, 85, 84, 207, 65, 85, 83,
- 84, 82, 65, 204, 65, 85, 82, 73, 80, 73, 71, 77, 69, 78, 84, 128, 65, 85,
- 82, 65, 77, 65, 90, 68, 65, 65, 72, 65, 128, 65, 85, 82, 65, 77, 65, 90,
- 68, 65, 65, 45, 50, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 128, 65,
- 85, 78, 78, 128, 65, 85, 71, 85, 83, 84, 128, 65, 85, 71, 77, 69, 78, 84,
- 65, 84, 73, 79, 206, 65, 85, 69, 128, 65, 85, 66, 69, 82, 71, 73, 78, 69,
- 128, 65, 84, 84, 73, 195, 65, 84, 84, 72, 65, 67, 65, 78, 128, 65, 84,
- 84, 69, 78, 84, 73, 79, 78, 128, 65, 84, 84, 65, 203, 65, 84, 84, 65, 67,
- 72, 69, 196, 65, 84, 79, 205, 65, 84, 78, 65, 200, 65, 84, 77, 65, 65,
- 85, 128, 65, 84, 73, 89, 65, 128, 65, 84, 73, 85, 128, 65, 84, 73, 75,
- 82, 65, 77, 65, 128, 65, 84, 72, 76, 69, 84, 73, 195, 65, 84, 72, 65, 82,
- 86, 65, 86, 69, 68, 73, 195, 65, 84, 72, 65, 80, 65, 83, 67, 65, 206, 65,
- 84, 72, 45, 84, 72, 65, 76, 65, 84, 72, 65, 128, 65, 83, 90, 128, 65, 83,
- 89, 85, 82, 193, 65, 83, 89, 77, 80, 84, 79, 84, 73, 67, 65, 76, 76, 217,
- 65, 83, 84, 82, 79, 78, 79, 77, 73, 67, 65, 204, 65, 83, 84, 82, 79, 76,
- 79, 71, 73, 67, 65, 204, 65, 83, 84, 82, 65, 69, 65, 128, 65, 83, 84, 79,
- 78, 73, 83, 72, 69, 196, 65, 83, 84, 69, 82, 73, 83, 77, 128, 65, 83, 84,
- 69, 82, 73, 83, 75, 211, 65, 83, 84, 69, 82, 73, 83, 75, 128, 65, 83, 84,
- 69, 82, 73, 83, 203, 65, 83, 84, 69, 82, 73, 83, 67, 85, 83, 128, 65, 83,
- 83, 89, 82, 73, 65, 206, 65, 83, 83, 69, 82, 84, 73, 79, 78, 128, 65, 83,
- 80, 73, 82, 65, 84, 73, 79, 78, 128, 65, 83, 80, 73, 82, 65, 84, 69, 196,
- 65, 83, 80, 69, 82, 128, 65, 83, 73, 65, 45, 65, 85, 83, 84, 82, 65, 76,
- 73, 65, 128, 65, 83, 72, 71, 65, 66, 128, 65, 83, 72, 69, 83, 128, 65,
- 83, 72, 57, 128, 65, 83, 72, 51, 128, 65, 83, 72, 178, 65, 83, 67, 73,
- 193, 65, 83, 67, 69, 78, 84, 128, 65, 83, 67, 69, 78, 68, 73, 78, 199,
- 65, 83, 65, 76, 50, 128, 65, 83, 45, 83, 65, 74, 68, 65, 128, 65, 82, 85,
- 72, 85, 65, 128, 65, 82, 84, 211, 65, 82, 84, 73, 83, 212, 65, 82, 84,
- 73, 67, 85, 76, 65, 84, 69, 196, 65, 82, 84, 65, 66, 197, 65, 82, 84, 65,
- 128, 65, 82, 83, 69, 79, 83, 128, 65, 82, 83, 69, 79, 211, 65, 82, 83,
- 69, 78, 73, 67, 128, 65, 82, 82, 79, 87, 83, 128, 65, 82, 82, 79, 87,
- 211, 65, 82, 82, 79, 87, 72, 69, 65, 68, 83, 128, 65, 82, 82, 79, 87, 72,
- 69, 65, 68, 45, 83, 72, 65, 80, 69, 196, 65, 82, 82, 79, 87, 72, 69, 65,
- 68, 128, 65, 82, 82, 79, 87, 72, 69, 65, 196, 65, 82, 82, 79, 87, 45, 84,
- 65, 73, 76, 128, 65, 82, 82, 73, 86, 73, 78, 71, 128, 65, 82, 82, 73, 86,
- 69, 128, 65, 82, 82, 65, 89, 128, 65, 82, 80, 69, 71, 71, 73, 65, 84,
- 207, 65, 82, 79, 85, 83, 73, 78, 199, 65, 82, 79, 85, 82, 193, 65, 82,
- 79, 85, 78, 68, 45, 80, 82, 79, 70, 73, 76, 69, 128, 65, 82, 79, 85, 78,
- 196, 65, 82, 77, 89, 128, 65, 82, 77, 211, 65, 82, 77, 79, 85, 82, 128,
- 65, 82, 77, 69, 78, 73, 65, 206, 65, 82, 77, 128, 65, 82, 205, 65, 82,
- 76, 65, 85, 199, 65, 82, 75, 84, 73, 75, 207, 65, 82, 75, 65, 66, 128,
- 65, 82, 75, 65, 65, 78, 85, 128, 65, 82, 73, 83, 84, 69, 82, 65, 128, 65,
- 82, 73, 83, 84, 69, 82, 193, 65, 82, 73, 69, 83, 128, 65, 82, 71, 79, 84,
- 69, 82, 73, 128, 65, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, 128,
- 65, 82, 71, 73, 128, 65, 82, 69, 80, 65, 128, 65, 82, 69, 65, 128, 65,
- 82, 68, 72, 65, 86, 73, 83, 65, 82, 71, 65, 128, 65, 82, 68, 72, 65, 67,
- 65, 78, 68, 82, 65, 128, 65, 82, 67, 72, 65, 73, 79, 78, 128, 65, 82, 67,
- 72, 65, 73, 79, 206, 65, 82, 67, 72, 65, 73, 195, 65, 82, 67, 200, 65,
- 82, 67, 128, 65, 82, 195, 65, 82, 65, 77, 65, 73, 195, 65, 82, 65, 69,
- 65, 69, 128, 65, 82, 65, 69, 65, 45, 85, 128, 65, 82, 65, 69, 65, 45, 73,
- 128, 65, 82, 65, 69, 65, 45, 69, 79, 128, 65, 82, 65, 69, 65, 45, 69,
- 128, 65, 82, 65, 69, 65, 45, 65, 128, 65, 82, 65, 68, 128, 65, 82, 65,
- 196, 65, 82, 65, 66, 73, 67, 45, 73, 78, 68, 73, 195, 65, 82, 65, 66, 73,
- 65, 206, 65, 82, 45, 82, 85, 66, 128, 65, 82, 45, 82, 65, 72, 77, 65,
- 206, 65, 82, 45, 82, 65, 72, 69, 69, 77, 128, 65, 81, 85, 65, 82, 73, 85,
- 83, 128, 65, 81, 85, 65, 70, 79, 82, 84, 73, 83, 128, 65, 81, 85, 193,
- 65, 80, 85, 206, 65, 80, 82, 73, 76, 128, 65, 80, 80, 82, 79, 88, 73, 77,
- 65, 84, 69, 76, 217, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 128, 65,
- 80, 80, 82, 79, 65, 67, 72, 69, 211, 65, 80, 80, 82, 79, 65, 67, 72, 128,
- 65, 80, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 65, 80, 80, 76, 73, 67,
- 65, 84, 73, 79, 206, 65, 80, 79, 84, 72, 69, 83, 128, 65, 80, 79, 84, 72,
- 69, 77, 65, 128, 65, 80, 79, 83, 84, 82, 79, 80, 72, 69, 128, 65, 80, 79,
- 83, 84, 82, 79, 70, 79, 83, 128, 65, 80, 79, 83, 84, 82, 79, 70, 79, 211,
- 65, 80, 79, 83, 84, 82, 79, 70, 79, 201, 65, 80, 79, 76, 76, 79, 78, 128,
- 65, 80, 79, 68, 69, 88, 73, 65, 128, 65, 80, 79, 68, 69, 82, 77, 193, 65,
- 80, 76, 79, 85, 78, 128, 65, 80, 76, 201, 65, 80, 204, 65, 80, 73, 78,
- 128, 65, 80, 69, 83, 207, 65, 80, 67, 128, 65, 80, 65, 82, 84, 128, 65,
- 80, 65, 65, 84, 79, 128, 65, 79, 85, 128, 65, 79, 82, 128, 65, 78, 85,
- 83, 86, 65, 82, 65, 89, 65, 128, 65, 78, 85, 83, 86, 65, 82, 65, 128, 65,
- 78, 85, 83, 86, 65, 82, 193, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 78,
- 85, 68, 65, 84, 84, 193, 65, 78, 84, 73, 82, 69, 83, 84, 82, 73, 67, 84,
- 73, 79, 78, 128, 65, 78, 84, 73, 77, 79, 78, 89, 45, 50, 128, 65, 78, 84,
- 73, 77, 79, 78, 89, 128, 65, 78, 84, 73, 77, 79, 78, 217, 65, 78, 84, 73,
- 77, 79, 78, 73, 65, 84, 69, 128, 65, 78, 84, 73, 75, 69, 78, 79, 77, 65,
- 128, 65, 78, 84, 73, 75, 69, 78, 79, 75, 89, 76, 73, 83, 77, 65, 128, 65,
- 78, 84, 73, 70, 79, 78, 73, 65, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75,
- 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, 65, 78, 84, 73, 67, 76,
- 79, 67, 75, 87, 73, 83, 69, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87,
- 73, 83, 197, 65, 78, 84, 69, 78, 78, 65, 128, 65, 78, 84, 69, 78, 78,
- 193, 65, 78, 84, 65, 82, 71, 79, 77, 85, 75, 72, 65, 128, 65, 78, 83, 85,
- 218, 65, 78, 83, 72, 69, 128, 65, 78, 80, 69, 65, 128, 65, 78, 207, 65,
- 78, 78, 85, 73, 84, 217, 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 65, 78,
- 78, 65, 65, 85, 128, 65, 78, 75, 72, 128, 65, 78, 74, 73, 128, 65, 78,
- 73, 77, 65, 76, 128, 65, 78, 72, 85, 128, 65, 78, 71, 85, 76, 65, 82,
- 128, 65, 78, 71, 85, 73, 83, 72, 69, 196, 65, 78, 71, 83, 84, 82, 79,
- 205, 65, 78, 71, 82, 217, 65, 78, 71, 76, 73, 67, 65, 78, 193, 65, 78,
- 71, 76, 69, 68, 128, 65, 78, 71, 76, 69, 196, 65, 78, 71, 75, 72, 65, 78,
- 75, 72, 85, 128, 65, 78, 71, 75, 65, 128, 65, 78, 71, 69, 210, 65, 78,
- 71, 69, 76, 128, 65, 78, 71, 69, 68, 128, 65, 78, 68, 65, 80, 128, 65,
- 78, 67, 79, 82, 65, 128, 65, 78, 67, 72, 79, 82, 128, 65, 78, 65, 84, 82,
- 73, 67, 72, 73, 83, 77, 65, 128, 65, 78, 65, 84, 79, 77, 73, 67, 65, 204,
- 65, 78, 65, 80, 128, 65, 78, 45, 78, 73, 83, 70, 128, 65, 77, 85, 76, 69,
- 84, 128, 65, 77, 80, 83, 128, 65, 77, 80, 72, 79, 82, 65, 128, 65, 77,
- 80, 69, 82, 83, 65, 78, 68, 128, 65, 77, 80, 69, 82, 83, 65, 78, 196, 65,
- 77, 79, 85, 78, 212, 65, 77, 69, 82, 73, 67, 65, 83, 128, 65, 77, 69, 82,
- 73, 67, 65, 206, 65, 77, 66, 85, 76, 65, 78, 67, 69, 128, 65, 77, 66,
- 193, 65, 77, 66, 128, 65, 77, 65, 82, 128, 65, 77, 65, 210, 65, 77, 65,
- 76, 71, 65, 77, 65, 84, 73, 79, 206, 65, 77, 65, 76, 71, 65, 77, 128, 65,
- 76, 86, 69, 79, 76, 65, 210, 65, 76, 85, 77, 128, 65, 76, 84, 69, 82, 78,
- 65, 84, 73, 86, 197, 65, 76, 84, 69, 82, 78, 65, 84, 73, 79, 206, 65, 76,
- 84, 69, 82, 78, 65, 84, 73, 78, 71, 128, 65, 76, 84, 69, 82, 78, 65, 84,
- 73, 78, 199, 65, 76, 84, 69, 82, 78, 65, 84, 69, 128, 65, 76, 84, 69, 82,
- 78, 65, 84, 197, 65, 76, 84, 65, 128, 65, 76, 80, 72, 65, 128, 65, 76,
- 80, 72, 193, 65, 76, 80, 65, 80, 82, 65, 78, 65, 128, 65, 76, 80, 65, 80,
- 82, 65, 65, 78, 193, 65, 76, 80, 65, 128, 65, 76, 77, 79, 83, 212, 65,
- 76, 76, 79, 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 65, 76, 76, 201,
- 65, 76, 76, 65, 200, 65, 76, 75, 65, 76, 73, 45, 50, 128, 65, 76, 75, 65,
- 76, 73, 128, 65, 76, 73, 71, 78, 69, 196, 65, 76, 73, 70, 85, 128, 65,
- 76, 73, 70, 128, 65, 76, 73, 198, 65, 76, 73, 69, 78, 128, 65, 76, 73,
- 69, 206, 65, 76, 71, 73, 218, 65, 76, 70, 65, 128, 65, 76, 69, 85, 212,
- 65, 76, 69, 82, 84, 128, 65, 76, 69, 80, 72, 128, 65, 76, 69, 77, 66, 73,
- 67, 128, 65, 76, 69, 70, 128, 65, 76, 66, 65, 78, 73, 65, 206, 65, 76,
- 65, 89, 72, 69, 128, 65, 76, 65, 89, 72, 197, 65, 76, 65, 82, 205, 65,
- 76, 65, 80, 72, 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 75, 85,
- 82, 213, 65, 75, 84, 73, 69, 83, 69, 76, 83, 75, 65, 66, 128, 65, 75, 83,
- 65, 128, 65, 75, 72, 77, 73, 77, 73, 195, 65, 75, 66, 65, 210, 65, 75,
- 65, 82, 65, 128, 65, 75, 65, 82, 193, 65, 73, 89, 65, 78, 78, 65, 128,
- 65, 73, 86, 73, 76, 73, 203, 65, 73, 86, 65, 128, 65, 73, 84, 79, 206,
- 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 73, 82, 80, 76, 65, 78, 197, 65,
- 73, 78, 213, 65, 73, 78, 78, 128, 65, 73, 76, 77, 128, 65, 73, 75, 65,
- 82, 65, 128, 65, 73, 72, 86, 85, 83, 128, 65, 72, 83, 68, 65, 128, 65,
- 72, 83, 65, 128, 65, 72, 79, 205, 65, 72, 65, 78, 199, 65, 72, 65, 71,
- 71, 65, 210, 65, 72, 65, 68, 128, 65, 71, 85, 78, 71, 128, 65, 71, 79,
- 71, 201, 65, 71, 71, 82, 65, 86, 65, 84, 73, 79, 78, 128, 65, 71, 71, 82,
- 65, 86, 65, 84, 69, 196, 65, 71, 65, 73, 78, 83, 212, 65, 71, 65, 73, 78,
- 128, 65, 70, 84, 69, 210, 65, 70, 83, 65, 65, 81, 128, 65, 70, 82, 73,
- 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, 69, 68, 128,
- 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, 82, 73, 67, 65, 84, 73, 79, 206,
- 65, 70, 70, 73, 216, 65, 69, 89, 65, 78, 78, 65, 128, 65, 69, 89, 128,
- 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 69, 83, 67, 128, 65,
- 69, 83, 128, 65, 69, 82, 73, 65, 204, 65, 69, 82, 128, 65, 69, 76, 65,
- 45, 80, 73, 76, 76, 65, 128, 65, 69, 76, 128, 65, 69, 75, 128, 65, 69,
- 71, 69, 65, 206, 65, 69, 71, 128, 65, 69, 69, 89, 65, 78, 78, 65, 128,
- 65, 69, 69, 128, 65, 69, 68, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 68,
- 128, 65, 69, 66, 128, 65, 68, 86, 65, 78, 84, 65, 71, 69, 128, 65, 68,
- 86, 65, 78, 67, 69, 128, 65, 68, 85, 76, 84, 128, 65, 68, 77, 73, 83, 83,
- 73, 79, 206, 65, 68, 77, 69, 84, 79, 83, 128, 65, 68, 76, 65, 205, 65,
- 68, 72, 69, 83, 73, 86, 197, 65, 68, 69, 71, 128, 65, 68, 69, 199, 65,
- 68, 68, 82, 69, 83, 83, 69, 196, 65, 68, 68, 82, 69, 83, 211, 65, 68, 68,
- 65, 75, 128, 65, 68, 65, 203, 65, 67, 85, 84, 69, 45, 77, 65, 67, 82, 79,
- 78, 128, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 45, 65, 67, 85, 84,
- 69, 128, 65, 67, 85, 84, 197, 65, 67, 84, 85, 65, 76, 76, 217, 65, 67,
- 84, 73, 86, 65, 84, 197, 65, 67, 82, 79, 80, 72, 79, 78, 73, 195, 65, 67,
- 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, 65, 67, 67, 85, 77, 85, 76, 65,
- 84, 73, 79, 78, 128, 65, 67, 67, 79, 85, 78, 212, 65, 67, 67, 79, 82, 68,
- 73, 79, 78, 128, 65, 67, 67, 79, 77, 77, 79, 68, 65, 84, 73, 79, 78, 128,
- 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, 69, 78, 84, 45, 83, 84, 65, 67,
- 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, 84, 128, 65, 67, 67, 69, 78,
- 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, 89, 83, 77, 65, 204, 65, 66,
- 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, 72, 65, 83, 73, 65, 206, 65,
- 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65, 66, 65, 70, 73, 76, 73,
- 128, 65, 66, 65, 67, 85, 83, 128, 65, 66, 178, 65, 66, 49, 57, 49, 128,
- 65, 66, 49, 56, 56, 128, 65, 66, 49, 56, 48, 128, 65, 66, 49, 55, 49,
- 128, 65, 66, 49, 54, 52, 128, 65, 66, 49, 51, 49, 66, 128, 65, 66, 49,
- 51, 49, 65, 128, 65, 66, 49, 50, 51, 128, 65, 66, 49, 50, 50, 128, 65,
- 66, 49, 50, 48, 128, 65, 66, 49, 49, 56, 128, 65, 66, 48, 56, 55, 128,
- 65, 66, 48, 56, 54, 128, 65, 66, 48, 56, 53, 128, 65, 66, 48, 56, 50,
- 128, 65, 66, 48, 56, 49, 128, 65, 66, 48, 56, 48, 128, 65, 66, 48, 55,
- 57, 128, 65, 66, 48, 55, 56, 128, 65, 66, 48, 55, 55, 128, 65, 66, 48,
- 55, 54, 128, 65, 66, 48, 55, 52, 128, 65, 66, 48, 55, 51, 128, 65, 66,
- 48, 55, 48, 128, 65, 66, 48, 54, 57, 128, 65, 66, 48, 54, 55, 128, 65,
- 66, 48, 54, 54, 128, 65, 66, 48, 54, 53, 128, 65, 66, 48, 54, 49, 128,
- 65, 66, 48, 54, 48, 128, 65, 66, 48, 53, 57, 128, 65, 66, 48, 53, 56,
- 128, 65, 66, 48, 53, 55, 128, 65, 66, 48, 53, 54, 128, 65, 66, 48, 53,
- 53, 128, 65, 66, 48, 53, 52, 128, 65, 66, 48, 53, 51, 128, 65, 66, 48,
- 53, 49, 128, 65, 66, 48, 53, 48, 128, 65, 66, 48, 52, 57, 128, 65, 66,
- 48, 52, 56, 128, 65, 66, 48, 52, 55, 128, 65, 66, 48, 52, 54, 128, 65,
- 66, 48, 52, 53, 128, 65, 66, 48, 52, 52, 128, 65, 66, 48, 52, 49, 128,
- 65, 66, 48, 52, 48, 128, 65, 66, 48, 51, 57, 128, 65, 66, 48, 51, 56,
- 128, 65, 66, 48, 51, 55, 128, 65, 66, 48, 51, 52, 128, 65, 66, 48, 51,
- 49, 128, 65, 66, 48, 51, 48, 128, 65, 66, 48, 50, 57, 128, 65, 66, 48,
- 50, 56, 128, 65, 66, 48, 50, 55, 128, 65, 66, 48, 50, 54, 128, 65, 66,
- 48, 50, 52, 128, 65, 66, 48, 50, 51, 77, 128, 65, 66, 48, 50, 51, 128,
- 65, 66, 48, 50, 50, 77, 128, 65, 66, 48, 50, 50, 70, 128, 65, 66, 48, 50,
- 50, 128, 65, 66, 48, 50, 49, 77, 128, 65, 66, 48, 50, 49, 70, 128, 65,
- 66, 48, 50, 49, 128, 65, 66, 48, 50, 48, 128, 65, 66, 48, 49, 55, 128,
- 65, 66, 48, 49, 54, 128, 65, 66, 48, 49, 51, 128, 65, 66, 48, 49, 49,
- 128, 65, 66, 48, 49, 48, 128, 65, 66, 48, 48, 57, 128, 65, 66, 48, 48,
- 56, 128, 65, 66, 48, 48, 55, 128, 65, 66, 48, 48, 54, 128, 65, 66, 48,
- 48, 53, 128, 65, 66, 48, 48, 52, 128, 65, 66, 48, 48, 51, 128, 65, 66,
- 48, 48, 50, 128, 65, 66, 48, 48, 49, 128, 65, 65, 90, 72, 65, 65, 75, 75,
- 85, 128, 65, 65, 89, 73, 78, 128, 65, 65, 89, 65, 78, 78, 65, 128, 65,
- 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, 128, 65, 65, 74, 128, 65, 65,
- 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, 48, 51, 50, 128, 65, 65, 48, 51,
- 49, 128, 65, 65, 48, 51, 48, 128, 65, 65, 48, 50, 57, 128, 65, 65, 48,
- 50, 56, 128, 65, 65, 48, 50, 55, 128, 65, 65, 48, 50, 54, 128, 65, 65,
- 48, 50, 53, 128, 65, 65, 48, 50, 52, 128, 65, 65, 48, 50, 51, 128, 65,
- 65, 48, 50, 50, 128, 65, 65, 48, 50, 49, 128, 65, 65, 48, 50, 48, 128,
- 65, 65, 48, 49, 57, 128, 65, 65, 48, 49, 56, 128, 65, 65, 48, 49, 55,
- 128, 65, 65, 48, 49, 54, 128, 65, 65, 48, 49, 53, 128, 65, 65, 48, 49,
- 52, 128, 65, 65, 48, 49, 51, 128, 65, 65, 48, 49, 50, 128, 65, 65, 48,
- 49, 49, 128, 65, 65, 48, 49, 48, 128, 65, 65, 48, 48, 57, 128, 65, 65,
- 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, 128, 65, 65, 48, 48, 55, 65,
- 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, 48, 54, 128, 65, 65, 48, 48,
- 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, 48, 48, 51, 128, 65, 65, 48,
- 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, 56, 48, 55, 128, 65, 56, 48,
- 54, 128, 65, 56, 48, 53, 128, 65, 56, 48, 52, 128, 65, 56, 48, 51, 128,
- 65, 56, 48, 50, 128, 65, 56, 48, 49, 128, 65, 56, 48, 48, 128, 65, 55,
- 51, 178, 65, 55, 50, 182, 65, 55, 49, 183, 65, 55, 49, 181, 65, 55, 49,
- 180, 65, 55, 49, 179, 65, 55, 49, 178, 65, 55, 49, 177, 65, 55, 49, 176,
- 65, 55, 48, 57, 45, 182, 65, 55, 48, 57, 45, 180, 65, 55, 48, 57, 45,
- 179, 65, 55, 48, 57, 45, 178, 65, 55, 48, 185, 65, 55, 48, 184, 65, 55,
- 48, 183, 65, 55, 48, 182, 65, 55, 48, 181, 65, 55, 48, 180, 65, 55, 48,
- 179, 65, 55, 48, 178, 65, 55, 48, 177, 65, 54, 54, 52, 128, 65, 54, 54,
- 51, 128, 65, 54, 54, 50, 128, 65, 54, 54, 49, 128, 65, 54, 54, 48, 128,
- 65, 54, 53, 57, 128, 65, 54, 53, 56, 128, 65, 54, 53, 55, 128, 65, 54,
- 53, 54, 128, 65, 54, 53, 53, 128, 65, 54, 53, 52, 128, 65, 54, 53, 51,
- 128, 65, 54, 53, 50, 128, 65, 54, 53, 49, 128, 65, 54, 52, 57, 128, 65,
- 54, 52, 56, 128, 65, 54, 52, 54, 128, 65, 54, 52, 53, 128, 65, 54, 52,
- 52, 128, 65, 54, 52, 51, 128, 65, 54, 52, 50, 128, 65, 54, 52, 48, 128,
- 65, 54, 51, 56, 128, 65, 54, 51, 55, 128, 65, 54, 51, 52, 128, 65, 54,
- 50, 57, 128, 65, 54, 50, 56, 128, 65, 54, 50, 55, 128, 65, 54, 50, 54,
- 128, 65, 54, 50, 52, 128, 65, 54, 50, 51, 128, 65, 54, 50, 50, 128, 65,
- 54, 50, 49, 128, 65, 54, 50, 48, 128, 65, 54, 49, 57, 128, 65, 54, 49,
- 56, 128, 65, 54, 49, 55, 128, 65, 54, 49, 54, 128, 65, 54, 49, 53, 128,
- 65, 54, 49, 52, 128, 65, 54, 49, 51, 128, 65, 54, 49, 50, 128, 65, 54,
- 49, 49, 128, 65, 54, 49, 48, 128, 65, 54, 48, 57, 128, 65, 54, 48, 56,
- 128, 65, 54, 48, 54, 128, 65, 54, 48, 52, 128, 65, 54, 48, 51, 128, 65,
- 54, 48, 50, 128, 65, 54, 48, 49, 128, 65, 54, 48, 48, 128, 65, 53, 57,
- 56, 128, 65, 53, 57, 54, 128, 65, 53, 57, 53, 128, 65, 53, 57, 52, 128,
- 65, 53, 57, 50, 128, 65, 53, 57, 49, 128, 65, 53, 56, 57, 128, 65, 53,
- 56, 56, 128, 65, 53, 56, 55, 128, 65, 53, 56, 54, 128, 65, 53, 56, 53,
- 128, 65, 53, 56, 52, 128, 65, 53, 56, 51, 128, 65, 53, 56, 50, 128, 65,
- 53, 56, 49, 128, 65, 53, 56, 48, 128, 65, 53, 55, 57, 128, 65, 53, 55,
- 56, 128, 65, 53, 55, 55, 128, 65, 53, 55, 54, 128, 65, 53, 55, 53, 128,
- 65, 53, 55, 52, 128, 65, 53, 55, 51, 128, 65, 53, 55, 50, 128, 65, 53,
- 55, 49, 128, 65, 53, 55, 48, 128, 65, 53, 54, 57, 128, 65, 53, 54, 56,
- 128, 65, 53, 54, 54, 128, 65, 53, 54, 53, 128, 65, 53, 54, 52, 128, 65,
- 53, 54, 51, 128, 65, 53, 53, 57, 128, 65, 53, 53, 55, 128, 65, 53, 53,
- 54, 128, 65, 53, 53, 53, 128, 65, 53, 53, 52, 128, 65, 53, 53, 51, 128,
- 65, 53, 53, 50, 128, 65, 53, 53, 49, 128, 65, 53, 53, 48, 128, 65, 53,
- 52, 57, 128, 65, 53, 52, 56, 128, 65, 53, 52, 55, 128, 65, 53, 52, 53,
- 128, 65, 53, 52, 50, 128, 65, 53, 52, 49, 128, 65, 53, 52, 48, 128, 65,
- 53, 51, 57, 128, 65, 53, 51, 56, 128, 65, 53, 51, 55, 128, 65, 53, 51,
- 54, 128, 65, 53, 51, 53, 128, 65, 53, 51, 52, 128, 65, 53, 51, 50, 128,
- 65, 53, 51, 49, 128, 65, 53, 51, 48, 128, 65, 53, 50, 57, 128, 65, 53,
- 50, 56, 128, 65, 53, 50, 55, 128, 65, 53, 50, 54, 128, 65, 53, 50, 53,
- 128, 65, 53, 50, 52, 128, 65, 53, 50, 51, 128, 65, 53, 50, 50, 128, 65,
- 53, 50, 49, 128, 65, 53, 50, 48, 128, 65, 53, 49, 57, 128, 65, 53, 49,
- 56, 128, 65, 53, 49, 55, 128, 65, 53, 49, 54, 128, 65, 53, 49, 53, 128,
- 65, 53, 49, 52, 128, 65, 53, 49, 51, 128, 65, 53, 49, 50, 128, 65, 53,
- 49, 49, 128, 65, 53, 49, 48, 128, 65, 53, 48, 57, 128, 65, 53, 48, 56,
- 128, 65, 53, 48, 55, 128, 65, 53, 48, 54, 128, 65, 53, 48, 53, 128, 65,
- 53, 48, 52, 128, 65, 53, 48, 51, 128, 65, 53, 48, 50, 128, 65, 53, 48,
- 49, 128, 65, 52, 57, 55, 128, 65, 52, 57, 54, 128, 65, 52, 57, 53, 128,
- 65, 52, 57, 52, 128, 65, 52, 57, 51, 128, 65, 52, 57, 50, 128, 65, 52,
- 57, 49, 128, 65, 52, 57, 48, 128, 65, 52, 56, 57, 128, 65, 52, 56, 56,
- 128, 65, 52, 56, 55, 128, 65, 52, 56, 54, 128, 65, 52, 56, 53, 128, 65,
- 52, 56, 52, 128, 65, 52, 56, 51, 128, 65, 52, 56, 50, 128, 65, 52, 56,
- 49, 128, 65, 52, 56, 48, 128, 65, 52, 55, 57, 128, 65, 52, 55, 56, 128,
- 65, 52, 55, 55, 128, 65, 52, 55, 54, 128, 65, 52, 55, 53, 128, 65, 52,
- 55, 52, 128, 65, 52, 55, 51, 128, 65, 52, 55, 50, 128, 65, 52, 55, 49,
- 128, 65, 52, 55, 48, 128, 65, 52, 54, 57, 128, 65, 52, 54, 56, 128, 65,
- 52, 54, 55, 128, 65, 52, 54, 54, 128, 65, 52, 54, 53, 128, 65, 52, 54,
- 52, 128, 65, 52, 54, 51, 128, 65, 52, 54, 50, 128, 65, 52, 54, 49, 128,
- 65, 52, 54, 48, 128, 65, 52, 53, 57, 128, 65, 52, 53, 56, 128, 65, 52,
- 53, 55, 65, 128, 65, 52, 53, 55, 128, 65, 52, 53, 54, 128, 65, 52, 53,
- 53, 128, 65, 52, 53, 52, 128, 65, 52, 53, 51, 128, 65, 52, 53, 50, 128,
- 65, 52, 53, 49, 128, 65, 52, 53, 48, 65, 128, 65, 52, 53, 48, 128, 65,
- 52, 52, 57, 128, 65, 52, 52, 56, 128, 65, 52, 52, 55, 128, 65, 52, 52,
- 54, 128, 65, 52, 52, 53, 128, 65, 52, 52, 52, 128, 65, 52, 52, 51, 128,
- 65, 52, 52, 50, 128, 65, 52, 52, 49, 128, 65, 52, 52, 48, 128, 65, 52,
- 51, 57, 128, 65, 52, 51, 56, 128, 65, 52, 51, 55, 128, 65, 52, 51, 54,
- 128, 65, 52, 51, 53, 128, 65, 52, 51, 52, 128, 65, 52, 51, 51, 128, 65,
- 52, 51, 50, 128, 65, 52, 51, 49, 128, 65, 52, 51, 48, 128, 65, 52, 50,
- 57, 128, 65, 52, 50, 56, 128, 65, 52, 50, 55, 128, 65, 52, 50, 54, 128,
- 65, 52, 50, 53, 128, 65, 52, 50, 52, 128, 65, 52, 50, 51, 128, 65, 52,
- 50, 50, 128, 65, 52, 50, 49, 128, 65, 52, 50, 48, 128, 65, 52, 49, 57,
- 128, 65, 52, 49, 56, 45, 86, 65, 83, 128, 65, 52, 49, 56, 128, 65, 52,
- 49, 55, 45, 86, 65, 83, 128, 65, 52, 49, 55, 128, 65, 52, 49, 54, 45, 86,
- 65, 83, 128, 65, 52, 49, 54, 128, 65, 52, 49, 53, 45, 86, 65, 83, 128,
- 65, 52, 49, 53, 128, 65, 52, 49, 52, 45, 86, 65, 83, 128, 65, 52, 49, 52,
- 128, 65, 52, 49, 51, 45, 86, 65, 83, 128, 65, 52, 49, 51, 128, 65, 52,
- 49, 50, 45, 86, 65, 83, 128, 65, 52, 49, 50, 128, 65, 52, 49, 49, 45, 86,
- 65, 83, 128, 65, 52, 49, 49, 128, 65, 52, 49, 48, 193, 65, 52, 49, 48,
- 45, 86, 65, 83, 128, 65, 52, 49, 176, 65, 52, 48, 57, 45, 86, 65, 83,
- 128, 65, 52, 48, 57, 128, 65, 52, 48, 56, 45, 86, 65, 83, 128, 65, 52,
- 48, 56, 128, 65, 52, 48, 55, 45, 86, 65, 83, 128, 65, 52, 48, 55, 128,
- 65, 52, 48, 54, 45, 86, 65, 83, 128, 65, 52, 48, 54, 128, 65, 52, 48, 53,
- 45, 86, 65, 83, 128, 65, 52, 48, 53, 128, 65, 52, 48, 52, 45, 86, 65, 83,
- 128, 65, 52, 48, 52, 128, 65, 52, 48, 51, 45, 86, 65, 83, 128, 65, 52,
- 48, 51, 128, 65, 52, 48, 50, 45, 86, 65, 83, 128, 65, 52, 48, 50, 128,
- 65, 52, 48, 49, 45, 86, 65, 83, 128, 65, 52, 48, 49, 128, 65, 52, 48, 48,
- 45, 86, 65, 83, 128, 65, 52, 48, 48, 128, 65, 51, 57, 57, 128, 65, 51,
- 57, 56, 128, 65, 51, 57, 55, 128, 65, 51, 57, 54, 128, 65, 51, 57, 53,
- 128, 65, 51, 57, 52, 128, 65, 51, 57, 179, 65, 51, 57, 50, 128, 65, 51,
- 57, 49, 128, 65, 51, 57, 48, 128, 65, 51, 56, 57, 128, 65, 51, 56, 56,
- 128, 65, 51, 56, 55, 128, 65, 51, 56, 54, 65, 128, 65, 51, 56, 54, 128,
- 65, 51, 56, 53, 128, 65, 51, 56, 52, 128, 65, 51, 56, 51, 65, 128, 65,
- 51, 56, 179, 65, 51, 56, 50, 128, 65, 51, 56, 49, 65, 128, 65, 51, 56,
- 49, 128, 65, 51, 56, 48, 128, 65, 51, 55, 57, 128, 65, 51, 55, 56, 128,
- 65, 51, 55, 55, 128, 65, 51, 55, 54, 128, 65, 51, 55, 53, 128, 65, 51,
- 55, 52, 128, 65, 51, 55, 51, 128, 65, 51, 55, 50, 128, 65, 51, 55, 49,
- 65, 128, 65, 51, 55, 49, 128, 65, 51, 55, 48, 128, 65, 51, 54, 57, 128,
- 65, 51, 54, 56, 65, 128, 65, 51, 54, 56, 128, 65, 51, 54, 55, 128, 65,
- 51, 54, 54, 128, 65, 51, 54, 53, 128, 65, 51, 54, 52, 65, 128, 65, 51,
- 54, 52, 128, 65, 51, 54, 51, 128, 65, 51, 54, 50, 128, 65, 51, 54, 49,
- 128, 65, 51, 54, 48, 128, 65, 51, 53, 57, 65, 128, 65, 51, 53, 57, 128,
- 65, 51, 53, 56, 128, 65, 51, 53, 55, 128, 65, 51, 53, 54, 128, 65, 51,
- 53, 53, 128, 65, 51, 53, 52, 128, 65, 51, 53, 51, 128, 65, 51, 53, 50,
- 128, 65, 51, 53, 49, 128, 65, 51, 53, 48, 128, 65, 51, 52, 57, 128, 65,
- 51, 52, 56, 128, 65, 51, 52, 55, 128, 65, 51, 52, 54, 128, 65, 51, 52,
- 53, 128, 65, 51, 52, 52, 128, 65, 51, 52, 51, 128, 65, 51, 52, 50, 128,
- 65, 51, 52, 49, 128, 65, 51, 52, 48, 128, 65, 51, 51, 57, 128, 65, 51,
- 51, 56, 128, 65, 51, 51, 55, 128, 65, 51, 51, 54, 67, 128, 65, 51, 51,
- 54, 66, 128, 65, 51, 51, 54, 65, 128, 65, 51, 51, 54, 128, 65, 51, 51,
- 53, 128, 65, 51, 51, 52, 128, 65, 51, 51, 51, 128, 65, 51, 51, 50, 67,
- 128, 65, 51, 51, 50, 66, 128, 65, 51, 51, 50, 65, 128, 65, 51, 51, 50,
- 128, 65, 51, 51, 49, 128, 65, 51, 51, 48, 128, 65, 51, 50, 57, 65, 128,
- 65, 51, 50, 57, 128, 65, 51, 50, 56, 128, 65, 51, 50, 55, 128, 65, 51,
- 50, 54, 128, 65, 51, 50, 53, 128, 65, 51, 50, 52, 128, 65, 51, 50, 51,
- 128, 65, 51, 50, 50, 128, 65, 51, 50, 49, 128, 65, 51, 50, 48, 128, 65,
- 51, 49, 57, 128, 65, 51, 49, 56, 128, 65, 51, 49, 55, 128, 65, 51, 49,
- 54, 128, 65, 51, 49, 53, 128, 65, 51, 49, 52, 128, 65, 51, 49, 51, 67,
- 128, 65, 51, 49, 51, 66, 128, 65, 51, 49, 51, 65, 128, 65, 51, 49, 51,
- 128, 65, 51, 49, 50, 128, 65, 51, 49, 49, 128, 65, 51, 49, 48, 128, 65,
- 51, 48, 57, 67, 128, 65, 51, 48, 57, 66, 128, 65, 51, 48, 57, 65, 128,
- 65, 51, 48, 57, 128, 65, 51, 48, 56, 128, 65, 51, 48, 55, 128, 65, 51,
- 48, 54, 128, 65, 51, 48, 53, 128, 65, 51, 48, 52, 128, 65, 51, 48, 51,
- 128, 65, 51, 48, 50, 128, 65, 51, 48, 49, 128, 65, 51, 48, 48, 128, 65,
- 50, 57, 57, 65, 128, 65, 50, 57, 57, 128, 65, 50, 57, 56, 128, 65, 50,
- 57, 55, 128, 65, 50, 57, 54, 128, 65, 50, 57, 53, 128, 65, 50, 57, 52,
- 65, 128, 65, 50, 57, 52, 128, 65, 50, 57, 51, 128, 65, 50, 57, 50, 128,
- 65, 50, 57, 49, 128, 65, 50, 57, 48, 128, 65, 50, 56, 57, 65, 128, 65,
- 50, 56, 57, 128, 65, 50, 56, 56, 128, 65, 50, 56, 55, 128, 65, 50, 56,
- 54, 128, 65, 50, 56, 53, 128, 65, 50, 56, 52, 128, 65, 50, 56, 51, 128,
- 65, 50, 56, 50, 128, 65, 50, 56, 49, 128, 65, 50, 56, 48, 128, 65, 50,
- 55, 57, 128, 65, 50, 55, 56, 128, 65, 50, 55, 55, 128, 65, 50, 55, 54,
- 128, 65, 50, 55, 53, 128, 65, 50, 55, 52, 128, 65, 50, 55, 51, 128, 65,
- 50, 55, 50, 128, 65, 50, 55, 49, 128, 65, 50, 55, 48, 128, 65, 50, 54,
- 57, 128, 65, 50, 54, 56, 128, 65, 50, 54, 55, 65, 128, 65, 50, 54, 55,
- 128, 65, 50, 54, 54, 128, 65, 50, 54, 53, 128, 65, 50, 54, 52, 128, 65,
- 50, 54, 51, 128, 65, 50, 54, 50, 128, 65, 50, 54, 49, 128, 65, 50, 54,
- 48, 128, 65, 50, 53, 57, 128, 65, 50, 53, 56, 128, 65, 50, 53, 55, 128,
- 65, 50, 53, 54, 128, 65, 50, 53, 53, 128, 65, 50, 53, 52, 128, 65, 50,
- 53, 51, 128, 65, 50, 53, 50, 128, 65, 50, 53, 49, 128, 65, 50, 53, 48,
- 128, 65, 50, 52, 57, 128, 65, 50, 52, 56, 128, 65, 50, 52, 55, 128, 65,
- 50, 52, 54, 128, 65, 50, 52, 53, 128, 65, 50, 52, 52, 128, 65, 50, 52,
- 51, 128, 65, 50, 52, 50, 128, 65, 50, 52, 49, 128, 65, 50, 52, 48, 128,
- 65, 50, 51, 57, 128, 65, 50, 51, 56, 128, 65, 50, 51, 55, 128, 65, 50,
- 51, 54, 128, 65, 50, 51, 53, 128, 65, 50, 51, 52, 128, 65, 50, 51, 51,
- 128, 65, 50, 51, 50, 128, 65, 50, 51, 49, 128, 65, 50, 51, 48, 128, 65,
- 50, 50, 57, 128, 65, 50, 50, 56, 128, 65, 50, 50, 55, 65, 128, 65, 50,
- 50, 55, 128, 65, 50, 50, 54, 128, 65, 50, 50, 53, 128, 65, 50, 50, 52,
- 128, 65, 50, 50, 51, 128, 65, 50, 50, 50, 128, 65, 50, 50, 49, 128, 65,
- 50, 50, 48, 128, 65, 50, 49, 57, 128, 65, 50, 49, 56, 128, 65, 50, 49,
- 55, 128, 65, 50, 49, 54, 65, 128, 65, 50, 49, 54, 128, 65, 50, 49, 53,
- 65, 128, 65, 50, 49, 53, 128, 65, 50, 49, 52, 128, 65, 50, 49, 51, 128,
- 65, 50, 49, 50, 128, 65, 50, 49, 49, 128, 65, 50, 49, 48, 128, 65, 50,
- 48, 57, 65, 128, 65, 50, 48, 57, 128, 65, 50, 48, 56, 128, 65, 50, 48,
- 55, 65, 128, 65, 50, 48, 55, 128, 65, 50, 48, 54, 128, 65, 50, 48, 53,
- 128, 65, 50, 48, 52, 128, 65, 50, 48, 51, 128, 65, 50, 48, 50, 66, 128,
- 65, 50, 48, 50, 65, 128, 65, 50, 48, 50, 128, 65, 50, 48, 49, 128, 65,
- 50, 48, 48, 128, 65, 49, 57, 57, 128, 65, 49, 57, 56, 128, 65, 49, 57,
- 55, 128, 65, 49, 57, 54, 128, 65, 49, 57, 53, 128, 65, 49, 57, 52, 128,
- 65, 49, 57, 51, 128, 65, 49, 57, 50, 128, 65, 49, 57, 49, 128, 65, 49,
- 57, 48, 128, 65, 49, 56, 57, 128, 65, 49, 56, 56, 128, 65, 49, 56, 55,
- 128, 65, 49, 56, 54, 128, 65, 49, 56, 53, 128, 65, 49, 56, 52, 128, 65,
- 49, 56, 51, 128, 65, 49, 56, 50, 128, 65, 49, 56, 49, 128, 65, 49, 56,
- 48, 128, 65, 49, 55, 57, 128, 65, 49, 55, 56, 128, 65, 49, 55, 55, 128,
- 65, 49, 55, 54, 128, 65, 49, 55, 53, 128, 65, 49, 55, 52, 128, 65, 49,
- 55, 51, 128, 65, 49, 55, 50, 128, 65, 49, 55, 49, 128, 65, 49, 55, 48,
- 128, 65, 49, 54, 57, 128, 65, 49, 54, 56, 128, 65, 49, 54, 55, 128, 65,
- 49, 54, 54, 128, 65, 49, 54, 53, 128, 65, 49, 54, 52, 128, 65, 49, 54,
- 51, 128, 65, 49, 54, 50, 128, 65, 49, 54, 49, 128, 65, 49, 54, 48, 128,
- 65, 49, 53, 57, 128, 65, 49, 53, 56, 128, 65, 49, 53, 55, 128, 65, 49,
- 53, 54, 128, 65, 49, 53, 53, 128, 65, 49, 53, 52, 128, 65, 49, 53, 51,
- 128, 65, 49, 53, 50, 128, 65, 49, 53, 49, 128, 65, 49, 53, 48, 128, 65,
- 49, 52, 57, 128, 65, 49, 52, 56, 128, 65, 49, 52, 55, 128, 65, 49, 52,
- 54, 128, 65, 49, 52, 53, 128, 65, 49, 52, 52, 128, 65, 49, 52, 51, 128,
- 65, 49, 52, 50, 128, 65, 49, 52, 49, 128, 65, 49, 52, 48, 128, 65, 49,
- 51, 57, 128, 65, 49, 51, 56, 128, 65, 49, 51, 55, 128, 65, 49, 51, 54,
- 128, 65, 49, 51, 53, 65, 128, 65, 49, 51, 53, 128, 65, 49, 51, 52, 128,
- 65, 49, 51, 51, 128, 65, 49, 51, 50, 128, 65, 49, 51, 49, 67, 128, 65,
- 49, 51, 49, 128, 65, 49, 51, 48, 128, 65, 49, 50, 57, 128, 65, 49, 50,
- 56, 128, 65, 49, 50, 55, 128, 65, 49, 50, 54, 128, 65, 49, 50, 53, 65,
- 128, 65, 49, 50, 53, 128, 65, 49, 50, 52, 128, 65, 49, 50, 51, 128, 65,
- 49, 50, 50, 128, 65, 49, 50, 49, 128, 65, 49, 50, 48, 66, 128, 65, 49,
- 50, 48, 128, 65, 49, 49, 57, 128, 65, 49, 49, 56, 128, 65, 49, 49, 55,
- 128, 65, 49, 49, 54, 128, 65, 49, 49, 53, 65, 128, 65, 49, 49, 53, 128,
- 65, 49, 49, 52, 128, 65, 49, 49, 51, 128, 65, 49, 49, 50, 128, 65, 49,
- 49, 49, 128, 65, 49, 49, 48, 66, 128, 65, 49, 49, 48, 65, 128, 65, 49,
- 49, 48, 128, 65, 49, 48, 57, 128, 65, 49, 48, 56, 128, 65, 49, 48, 55,
- 67, 128, 65, 49, 48, 55, 66, 128, 65, 49, 48, 55, 65, 128, 65, 49, 48,
- 55, 128, 65, 49, 48, 54, 128, 65, 49, 48, 53, 66, 128, 65, 49, 48, 53,
- 65, 128, 65, 49, 48, 53, 128, 65, 49, 48, 52, 67, 128, 65, 49, 48, 52,
- 66, 128, 65, 49, 48, 52, 65, 128, 65, 49, 48, 52, 128, 65, 49, 48, 51,
- 128, 65, 49, 48, 50, 65, 128, 65, 49, 48, 50, 128, 65, 49, 48, 49, 65,
- 128, 65, 49, 48, 49, 128, 65, 49, 48, 48, 65, 128, 65, 49, 48, 48, 45,
- 49, 48, 50, 128, 65, 49, 48, 48, 128, 65, 48, 57, 57, 128, 65, 48, 57,
- 56, 65, 128, 65, 48, 57, 56, 128, 65, 48, 57, 55, 65, 128, 65, 48, 57,
- 55, 128, 65, 48, 57, 54, 128, 65, 48, 57, 53, 128, 65, 48, 57, 52, 128,
- 65, 48, 57, 51, 128, 65, 48, 57, 50, 128, 65, 48, 57, 49, 128, 65, 48,
- 57, 48, 128, 65, 48, 56, 57, 128, 65, 48, 56, 56, 128, 65, 48, 56, 55,
- 128, 65, 48, 56, 54, 128, 65, 48, 56, 53, 128, 65, 48, 56, 52, 128, 65,
- 48, 56, 51, 128, 65, 48, 56, 50, 128, 65, 48, 56, 49, 128, 65, 48, 56,
- 48, 128, 65, 48, 55, 57, 128, 65, 48, 55, 56, 128, 65, 48, 55, 55, 128,
- 65, 48, 55, 54, 128, 65, 48, 55, 53, 128, 65, 48, 55, 52, 128, 65, 48,
- 55, 51, 128, 65, 48, 55, 50, 128, 65, 48, 55, 49, 128, 65, 48, 55, 48,
- 128, 65, 48, 54, 57, 128, 65, 48, 54, 56, 128, 65, 48, 54, 55, 128, 65,
- 48, 54, 54, 67, 128, 65, 48, 54, 54, 66, 128, 65, 48, 54, 54, 65, 128,
- 65, 48, 54, 54, 128, 65, 48, 54, 53, 128, 65, 48, 54, 52, 128, 65, 48,
- 54, 51, 128, 65, 48, 54, 50, 128, 65, 48, 54, 49, 128, 65, 48, 54, 48,
- 128, 65, 48, 53, 57, 128, 65, 48, 53, 56, 128, 65, 48, 53, 55, 128, 65,
- 48, 53, 54, 128, 65, 48, 53, 53, 128, 65, 48, 53, 52, 128, 65, 48, 53,
- 51, 128, 65, 48, 53, 50, 128, 65, 48, 53, 49, 128, 65, 48, 53, 48, 128,
- 65, 48, 52, 57, 128, 65, 48, 52, 56, 128, 65, 48, 52, 55, 128, 65, 48,
- 52, 54, 66, 128, 65, 48, 52, 54, 65, 128, 65, 48, 52, 54, 128, 65, 48,
- 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, 48, 52, 52, 128, 65, 48, 52,
- 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, 52, 50, 65, 128, 65, 48, 52,
- 50, 128, 65, 48, 52, 49, 65, 128, 65, 48, 52, 49, 128, 65, 48, 52, 48,
- 65, 128, 65, 48, 52, 48, 128, 65, 48, 51, 57, 65, 128, 65, 48, 51, 57,
- 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, 128, 65, 48, 51, 54, 128, 65,
- 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, 48, 51, 51, 128, 65, 48, 51,
- 50, 65, 128, 65, 48, 50, 56, 66, 128, 65, 48, 50, 54, 65, 128, 65, 48,
- 49, 55, 65, 128, 65, 48, 49, 52, 65, 128, 65, 48, 49, 48, 65, 128, 65,
- 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, 128, 65, 48, 48, 53, 65, 128,
- 65, 45, 87, 79, 128, 65, 45, 69, 85, 128, 45, 85, 205, 45, 80, 72, 82,
- 85, 128, 45, 75, 72, 89, 85, 196, 45, 75, 72, 89, 73, 76, 128, 45, 68,
- 90, 85, 196, 45, 67, 72, 65, 210, 45, 67, 72, 65, 76, 128,
+ 84, 69, 82, 45, 49, 56, 67, 68, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 68, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 68, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 68, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68,
+ 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 68, 48, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 70, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 69, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 68, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 67, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 67, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 67, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 67, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67,
+ 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 55, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 54, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 53, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 67, 52, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 67, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 67, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 67, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 67, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66,
+ 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 69, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 68, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 67, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 66, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 66, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 66, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 66, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 66, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66,
+ 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 53, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 52, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 51, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 66, 50, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 66, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 66, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 65, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 65, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65,
+ 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 67, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 66, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 65, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 57, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 65, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 65, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 65, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 65, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65,
+ 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 51, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 50, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 49, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 65, 48, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 57, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 57, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 57, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 57, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57,
+ 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 65, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 57, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 56, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 55, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 57, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 57, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 57, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 57, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57,
+ 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 49, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 57, 48, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 70, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 69, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 56, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 56, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 56, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 56, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56,
+ 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 56, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 55, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 54, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 56, 53, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 56, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 56, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 56, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 56, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 56,
+ 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 70, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 69, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 68, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 67, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 55, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 55, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 55, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 55, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55,
+ 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 54, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 53, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 52, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 55, 51, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 55, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 55, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 55, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 54, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54,
+ 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 68, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 67, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 66, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 65, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 54, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 54, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 54, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 54, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54,
+ 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 52, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 51, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 50, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 54, 49, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 54, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 53, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 53, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 53, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53,
+ 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 66, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 65, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 57, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 56, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 53, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 53, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 53, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 53, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53,
+ 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 50, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 49, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 53, 48, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 70, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 52, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 52, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 52, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 52, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52,
+ 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 57, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 56, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 55, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 54, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 52, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 52, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 52, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 52, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52,
+ 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 52, 48, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 70, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 69, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 68, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 51, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 51, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 51, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 51, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51,
+ 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 55, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 54, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 53, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 51, 52, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 51, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 51, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 51, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 51, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50,
+ 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 69, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 68, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 67, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 66, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 50, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 50, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 50, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 50, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50,
+ 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 53, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 52, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 51, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 50, 50, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 50, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 50, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 49, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 49, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49,
+ 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 67, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 66, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 65, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 57, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 49, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 49, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 49, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 49, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49,
+ 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 51, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 50, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 49, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 49, 48, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 48, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 48, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 48, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 48, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48,
+ 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 65, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 57, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 56, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 55, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 67, 48, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 67, 48, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 67, 48, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 67, 48, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48,
+ 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 49, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 67, 48, 48, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 70, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 69, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 70, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 70, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 70, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 70, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70,
+ 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 56, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 55, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 54, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 70, 53, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 70, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 70, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 70, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 70, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 70,
+ 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 70, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 69, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 68, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 67, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 69, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 69, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 69, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 69, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69,
+ 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 54, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 53, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 52, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 69, 51, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 69, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 69, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 69, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 68, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68,
+ 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 68, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 67, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 66, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 65, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 68, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 68, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 68, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 68, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68,
+ 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 52, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 51, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 50, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 68, 49, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 68, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 67, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 67, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 67, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67,
+ 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 66, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 65, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 57, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 56, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 67, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 67, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 67, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 67, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67,
+ 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 50, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 49, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 67, 48, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 70, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 66, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 66, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 66, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 66, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66,
+ 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 57, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 56, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 55, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 54, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 66, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 66, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 66, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 66, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66,
+ 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 66, 48, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 70, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 69, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 68, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 65, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 65, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 65, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 65, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65,
+ 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 55, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 54, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 53, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 65, 52, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 65, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 65, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 65, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 65, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57,
+ 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 69, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 68, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 67, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 66, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 57, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 57, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 57, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 57, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57,
+ 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 53, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 52, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 51, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 57, 50, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 57, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 57, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 56, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 56, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56,
+ 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 67, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 66, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 65, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 57, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 56, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 56, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 56, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 56, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56,
+ 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 51, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 50, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 49, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 56, 48, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 55, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 55, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 55, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 55, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55,
+ 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 65, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 57, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 56, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 55, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 55, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 55, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 55, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 55, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55,
+ 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 49, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 55, 48, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 70, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 69, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 54, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 54, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 54, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 54, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54,
+ 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 56, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 55, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 54, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 54, 53, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 54, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 54, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 54, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 54, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 54,
+ 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 70, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 69, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 68, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 67, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 53, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 53, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 53, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 53, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53,
+ 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 54, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 53, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 52, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 53, 51, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 53, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 53, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 53, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 52, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52,
+ 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 68, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 67, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 66, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 65, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 52, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 52, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 52, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 52, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52,
+ 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 52, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 51, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 50, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 52, 49, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 52, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 51, 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 51, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 51, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51,
+ 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 66, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 65, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 57, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 56, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 51, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 51, 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 51, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 51, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51,
+ 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 50, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 49, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 51, 48, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 70, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 50, 69, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 50, 68, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 50, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 50, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50,
+ 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 57, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 56, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 55, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 54, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 50, 53, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 50, 52, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 50, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 50, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50,
+ 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 50, 48, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 70, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 69, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 68, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 49, 67, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 49, 66, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 49, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 49, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49,
+ 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 55, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 54, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 53, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 49, 52, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 49, 51, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 49, 50, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 49, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 49, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48,
+ 70, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 69, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 68, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 67, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 66, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 48, 65, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 48, 57, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45,
+ 49, 56, 66, 48, 56, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56,
+ 66, 48, 55, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48,
+ 54, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 53, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 52, 128, 67, 72,
+ 65, 82, 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 51, 128, 67, 72, 65, 82,
+ 65, 67, 84, 69, 82, 45, 49, 56, 66, 48, 50, 128, 67, 72, 65, 82, 65, 67,
+ 84, 69, 82, 45, 49, 56, 66, 48, 49, 128, 67, 72, 65, 82, 65, 67, 84, 69,
+ 82, 45, 49, 56, 66, 48, 48, 128, 67, 72, 65, 82, 65, 67, 84, 69, 82, 128,
+ 67, 72, 65, 82, 65, 67, 84, 69, 210, 67, 72, 65, 82, 128, 67, 72, 65, 80,
+ 84, 69, 82, 128, 67, 72, 65, 80, 128, 67, 72, 65, 78, 71, 128, 67, 72,
+ 65, 78, 128, 67, 72, 65, 77, 75, 79, 128, 67, 72, 65, 77, 73, 76, 79, 78,
+ 128, 67, 72, 65, 77, 73, 76, 73, 128, 67, 72, 65, 205, 67, 72, 65, 75,
+ 77, 193, 67, 72, 65, 73, 78, 83, 128, 67, 72, 65, 68, 65, 128, 67, 72,
+ 65, 196, 67, 72, 65, 65, 128, 67, 71, 74, 128, 67, 69, 88, 128, 67, 69,
+ 86, 73, 84, 85, 128, 67, 69, 82, 69, 83, 128, 67, 69, 82, 69, 77, 79, 78,
+ 89, 128, 67, 69, 82, 69, 75, 128, 67, 69, 82, 45, 87, 65, 128, 67, 69,
+ 80, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71,
+ 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83,
+ 65, 78, 71, 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69,
+ 85, 77, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77,
+ 67, 73, 69, 85, 67, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67,
+ 72, 73, 69, 85, 67, 72, 128, 67, 69, 78, 84, 85, 82, 73, 65, 204, 67, 69,
+ 78, 84, 82, 69, 76, 73, 78, 197, 67, 69, 78, 84, 82, 69, 68, 128, 67, 69,
+ 78, 84, 82, 69, 196, 67, 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, 82,
+ 197, 67, 69, 78, 84, 82, 65, 76, 73, 90, 65, 84, 73, 79, 206, 67, 69, 78,
+ 128, 67, 69, 76, 84, 73, 195, 67, 69, 76, 83, 73, 85, 83, 128, 67, 69,
+ 76, 69, 66, 82, 65, 84, 73, 79, 78, 128, 67, 69, 73, 82, 84, 128, 67, 69,
+ 73, 76, 73, 78, 71, 128, 67, 69, 73, 76, 73, 78, 199, 67, 69, 69, 86,
+ 128, 67, 69, 69, 66, 128, 67, 69, 69, 128, 67, 69, 68, 73, 76, 76, 65,
+ 128, 67, 69, 68, 73, 76, 76, 193, 67, 69, 68, 201, 67, 69, 67, 69, 75,
+ 128, 67, 69, 67, 65, 75, 128, 67, 69, 67, 65, 203, 67, 69, 65, 76, 67,
+ 128, 67, 67, 85, 128, 67, 67, 79, 128, 67, 67, 73, 128, 67, 67, 72, 85,
+ 128, 67, 67, 72, 79, 128, 67, 67, 72, 73, 128, 67, 67, 72, 72, 85, 128,
+ 67, 67, 72, 72, 79, 128, 67, 67, 72, 72, 73, 128, 67, 67, 72, 72, 69, 69,
+ 128, 67, 67, 72, 72, 69, 128, 67, 67, 72, 72, 65, 65, 128, 67, 67, 72,
+ 72, 65, 128, 67, 67, 72, 69, 69, 128, 67, 67, 72, 69, 128, 67, 67, 72,
+ 65, 65, 128, 67, 67, 72, 65, 128, 67, 67, 72, 128, 67, 67, 69, 69, 128,
+ 67, 67, 65, 65, 128, 67, 65, 89, 78, 128, 67, 65, 89, 65, 78, 78, 65,
+ 128, 67, 65, 88, 128, 67, 65, 86, 69, 128, 67, 65, 85, 84, 73, 79, 206,
+ 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 65, 85, 68, 65, 128, 67, 65, 85,
+ 67, 65, 83, 73, 65, 206, 67, 65, 85, 128, 67, 65, 84, 65, 87, 65, 128,
+ 67, 65, 84, 128, 67, 65, 212, 67, 65, 83, 84, 76, 69, 128, 67, 65, 83,
+ 75, 69, 212, 67, 65, 82, 89, 83, 84, 73, 65, 206, 67, 65, 82, 84, 87, 72,
+ 69, 69, 76, 128, 67, 65, 82, 84, 82, 73, 68, 71, 69, 128, 67, 65, 82, 84,
+ 128, 67, 65, 82, 211, 67, 65, 82, 82, 79, 84, 128, 67, 65, 82, 82, 73,
+ 65, 71, 197, 67, 65, 82, 80, 69, 78, 84, 82, 217, 67, 65, 82, 208, 67,
+ 65, 82, 79, 85, 83, 69, 204, 67, 65, 82, 79, 78, 128, 67, 65, 82, 79,
+ 206, 67, 65, 82, 73, 203, 67, 65, 82, 73, 65, 206, 67, 65, 82, 69, 84,
+ 128, 67, 65, 82, 69, 212, 67, 65, 82, 197, 67, 65, 82, 68, 83, 128, 67,
+ 65, 82, 196, 67, 65, 82, 128, 67, 65, 210, 67, 65, 80, 85, 212, 67, 65,
+ 80, 84, 73, 86, 69, 128, 67, 65, 80, 82, 73, 67, 79, 82, 78, 128, 67, 65,
+ 80, 80, 69, 196, 67, 65, 80, 79, 128, 67, 65, 80, 73, 84, 85, 76, 85, 77,
+ 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, 78, 84, 73, 76, 76, 65, 84,
+ 73, 79, 206, 67, 65, 78, 79, 69, 128, 67, 65, 78, 78, 79, 78, 128, 67,
+ 65, 78, 78, 69, 196, 67, 65, 78, 199, 67, 65, 78, 69, 128, 67, 65, 78,
+ 68, 89, 128, 67, 65, 78, 68, 82, 65, 66, 73, 78, 68, 85, 128, 67, 65, 78,
+ 68, 82, 65, 66, 73, 78, 68, 213, 67, 65, 78, 68, 82, 65, 128, 67, 65, 78,
+ 68, 82, 193, 67, 65, 78, 68, 76, 69, 128, 67, 65, 78, 67, 69, 82, 128,
+ 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, 67, 65, 78, 67, 69, 76,
+ 128, 67, 65, 78, 67, 69, 204, 67, 65, 78, 128, 67, 65, 77, 80, 73, 78,
+ 71, 128, 67, 65, 77, 78, 85, 195, 67, 65, 77, 69, 82, 65, 128, 67, 65,
+ 77, 69, 82, 193, 67, 65, 77, 69, 76, 128, 67, 65, 76, 89, 65, 128, 67,
+ 65, 76, 89, 193, 67, 65, 76, 88, 128, 67, 65, 76, 76, 128, 67, 65, 76,
+ 204, 67, 65, 76, 69, 78, 68, 65, 82, 128, 67, 65, 76, 69, 78, 68, 65,
+ 210, 67, 65, 76, 67, 85, 76, 65, 84, 79, 82, 128, 67, 65, 76, 67, 128,
+ 67, 65, 75, 82, 65, 128, 67, 65, 75, 197, 67, 65, 73, 128, 67, 65, 72,
+ 128, 67, 65, 69, 83, 85, 82, 65, 128, 67, 65, 68, 85, 67, 69, 85, 83,
+ 128, 67, 65, 68, 193, 67, 65, 67, 84, 85, 83, 128, 67, 65, 66, 76, 69,
+ 87, 65, 89, 128, 67, 65, 66, 73, 78, 69, 84, 128, 67, 65, 66, 66, 65, 71,
+ 69, 45, 84, 82, 69, 69, 128, 67, 65, 65, 78, 71, 128, 67, 65, 65, 73,
+ 128, 67, 193, 67, 48, 50, 52, 128, 67, 48, 50, 51, 128, 67, 48, 50, 50,
+ 128, 67, 48, 50, 49, 128, 67, 48, 50, 48, 128, 67, 48, 49, 57, 128, 67,
+ 48, 49, 56, 128, 67, 48, 49, 55, 128, 67, 48, 49, 54, 128, 67, 48, 49,
+ 53, 128, 67, 48, 49, 52, 128, 67, 48, 49, 51, 128, 67, 48, 49, 50, 128,
+ 67, 48, 49, 49, 128, 67, 48, 49, 48, 65, 128, 67, 48, 49, 48, 128, 67,
+ 48, 48, 57, 128, 67, 48, 48, 56, 128, 67, 48, 48, 55, 128, 67, 48, 48,
+ 54, 128, 67, 48, 48, 53, 128, 67, 48, 48, 52, 128, 67, 48, 48, 51, 128,
+ 67, 48, 48, 50, 67, 128, 67, 48, 48, 50, 66, 128, 67, 48, 48, 50, 65,
+ 128, 67, 48, 48, 50, 128, 67, 48, 48, 49, 128, 67, 45, 83, 73, 77, 80,
+ 76, 73, 70, 73, 69, 196, 67, 45, 51, 57, 128, 67, 45, 49, 56, 128, 66,
+ 90, 85, 78, 199, 66, 90, 72, 201, 66, 89, 84, 197, 66, 89, 69, 76, 79,
+ 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, 78, 73, 65, 206, 66,
+ 88, 71, 128, 66, 87, 73, 128, 66, 87, 69, 69, 128, 66, 87, 69, 128, 66,
+ 87, 65, 128, 66, 85, 85, 77, 73, 83, 72, 128, 66, 85, 84, 84, 79, 78,
+ 128, 66, 85, 84, 84, 79, 206, 66, 85, 84, 84, 69, 82, 70, 76, 89, 128,
+ 66, 85, 84, 84, 69, 82, 128, 66, 85, 212, 66, 85, 83, 84, 211, 66, 85,
+ 83, 212, 66, 85, 83, 83, 89, 69, 82, 85, 128, 66, 85, 83, 73, 78, 69, 83,
+ 211, 66, 85, 211, 66, 85, 82, 213, 66, 85, 82, 82, 73, 84, 79, 128, 66,
+ 85, 82, 50, 128, 66, 85, 210, 66, 85, 79, 88, 128, 66, 85, 79, 80, 128,
+ 66, 85, 78, 78, 217, 66, 85, 78, 71, 128, 66, 85, 77, 80, 217, 66, 85,
+ 76, 85, 71, 128, 66, 85, 76, 85, 199, 66, 85, 76, 76, 83, 69, 89, 69,
+ 128, 66, 85, 76, 76, 211, 66, 85, 76, 76, 72, 79, 82, 78, 128, 66, 85,
+ 76, 76, 72, 79, 82, 206, 66, 85, 76, 76, 69, 84, 128, 66, 85, 76, 76, 69,
+ 212, 66, 85, 76, 76, 128, 66, 85, 76, 66, 128, 66, 85, 75, 89, 128, 66,
+ 85, 73, 76, 68, 73, 78, 71, 83, 128, 66, 85, 73, 76, 68, 73, 78, 71, 128,
+ 66, 85, 73, 76, 68, 73, 78, 199, 66, 85, 72, 73, 196, 66, 85, 71, 73, 78,
+ 69, 83, 197, 66, 85, 71, 128, 66, 85, 70, 70, 65, 76, 79, 128, 66, 85,
+ 68, 128, 66, 85, 67, 75, 76, 69, 128, 66, 85, 67, 75, 69, 84, 128, 66,
+ 85, 66, 66, 76, 69, 83, 128, 66, 85, 66, 66, 76, 69, 128, 66, 85, 66, 66,
+ 76, 197, 66, 83, 84, 65, 82, 128, 66, 83, 75, 85, 210, 66, 83, 75, 65,
+ 173, 66, 83, 68, 85, 211, 66, 82, 85, 83, 200, 66, 82, 79, 87, 206, 66,
+ 82, 79, 79, 77, 128, 66, 82, 79, 78, 90, 69, 128, 66, 82, 79, 75, 69,
+ 206, 66, 82, 79, 67, 67, 79, 76, 73, 128, 66, 82, 79, 65, 196, 66, 82,
+ 73, 83, 84, 76, 69, 128, 66, 82, 73, 71, 72, 84, 78, 69, 83, 211, 66, 82,
+ 73, 69, 70, 83, 128, 66, 82, 73, 69, 70, 67, 65, 83, 69, 128, 66, 82, 73,
+ 68, 71, 197, 66, 82, 73, 68, 197, 66, 82, 73, 67, 75, 128, 66, 82, 73,
+ 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 69, 86, 69, 45, 77, 65, 67, 82,
+ 79, 78, 128, 66, 82, 69, 86, 197, 66, 82, 69, 65, 84, 200, 66, 82, 69,
+ 65, 83, 84, 45, 70, 69, 69, 68, 73, 78, 71, 128, 66, 82, 69, 65, 75, 84,
+ 72, 82, 79, 85, 71, 72, 128, 66, 82, 68, 193, 66, 82, 65, 78, 67, 72, 73,
+ 78, 199, 66, 82, 65, 78, 67, 72, 69, 83, 128, 66, 82, 65, 78, 67, 72,
+ 128, 66, 82, 65, 78, 67, 200, 66, 82, 65, 75, 67, 69, 84, 128, 66, 82,
+ 65, 73, 78, 128, 66, 82, 65, 67, 75, 69, 84, 69, 196, 66, 82, 65, 67, 75,
+ 69, 212, 66, 82, 65, 67, 69, 128, 66, 81, 128, 66, 80, 72, 128, 66, 79,
+ 89, 211, 66, 79, 89, 128, 66, 79, 88, 73, 78, 199, 66, 79, 87, 84, 73,
+ 69, 128, 66, 79, 87, 84, 73, 197, 66, 79, 87, 76, 73, 78, 71, 128, 66,
+ 79, 87, 76, 128, 66, 79, 87, 204, 66, 79, 87, 73, 78, 199, 66, 79, 215,
+ 66, 79, 85, 81, 85, 69, 84, 128, 66, 79, 85, 81, 85, 69, 212, 66, 79, 85,
+ 78, 68, 65, 82, 217, 66, 79, 84, 84, 79, 77, 45, 83, 72, 65, 68, 69, 196,
+ 66, 79, 84, 84, 79, 77, 45, 76, 73, 71, 72, 84, 69, 196, 66, 79, 84, 84,
+ 79, 77, 128, 66, 79, 84, 84, 79, 205, 66, 79, 84, 84, 76, 69, 128, 66,
+ 79, 84, 84, 76, 197, 66, 79, 84, 200, 66, 79, 82, 85, 84, 79, 128, 66,
+ 79, 82, 65, 88, 45, 51, 128, 66, 79, 82, 65, 88, 45, 50, 128, 66, 79, 82,
+ 65, 88, 128, 66, 79, 80, 79, 77, 79, 70, 207, 66, 79, 79, 84, 83, 128,
+ 66, 79, 79, 84, 128, 66, 79, 79, 77, 69, 82, 65, 78, 71, 128, 66, 79, 79,
+ 75, 83, 128, 66, 79, 79, 75, 77, 65, 82, 75, 128, 66, 79, 79, 75, 77, 65,
+ 82, 203, 66, 79, 78, 69, 128, 66, 79, 77, 66, 128, 66, 79, 77, 128, 66,
+ 79, 76, 84, 128, 66, 79, 76, 212, 66, 79, 72, 65, 73, 82, 73, 195, 66,
+ 79, 68, 89, 128, 66, 79, 68, 217, 66, 79, 65, 82, 128, 66, 79, 65, 128,
+ 66, 76, 85, 69, 66, 69, 82, 82, 73, 69, 83, 128, 66, 76, 85, 69, 128, 66,
+ 76, 85, 197, 66, 76, 79, 87, 73, 78, 199, 66, 76, 79, 87, 70, 73, 83, 72,
+ 128, 66, 76, 79, 215, 66, 76, 79, 83, 83, 79, 77, 128, 66, 76, 79, 79,
+ 68, 128, 66, 76, 79, 78, 196, 66, 76, 79, 67, 75, 45, 55, 128, 66, 76,
+ 79, 67, 75, 45, 54, 128, 66, 76, 79, 67, 75, 45, 53, 128, 66, 76, 79, 67,
+ 75, 45, 52, 128, 66, 76, 79, 67, 75, 45, 51, 128, 66, 76, 79, 67, 75, 45,
+ 50, 128, 66, 76, 79, 67, 75, 45, 49, 51, 53, 56, 128, 66, 76, 79, 67, 75,
+ 128, 66, 76, 73, 78, 203, 66, 76, 65, 78, 75, 128, 66, 76, 65, 78, 203,
+ 66, 76, 65, 68, 197, 66, 76, 65, 67, 75, 76, 69, 84, 84, 69, 210, 66, 76,
+ 65, 67, 75, 70, 79, 79, 212, 66, 76, 65, 67, 75, 45, 76, 69, 84, 84, 69,
+ 210, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 66, 76,
+ 65, 67, 75, 128, 66, 75, 65, 173, 66, 73, 84, 84, 69, 82, 128, 66, 73,
+ 84, 73, 78, 199, 66, 73, 84, 197, 66, 73, 84, 67, 79, 73, 206, 66, 73,
+ 83, 79, 78, 128, 66, 73, 83, 77, 85, 84, 200, 66, 73, 83, 77, 73, 76, 76,
+ 65, 200, 66, 73, 83, 72, 79, 208, 66, 73, 83, 69, 67, 84, 73, 78, 199,
+ 66, 73, 83, 65, 72, 128, 66, 73, 82, 85, 128, 66, 73, 82, 84, 72, 68, 65,
+ 217, 66, 73, 82, 71, 65, 128, 66, 73, 82, 71, 193, 66, 73, 82, 68, 128,
+ 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 78, 79, 86, 73, 76, 69, 128,
+ 66, 73, 78, 79, 67, 85, 76, 65, 210, 66, 73, 78, 68, 73, 78, 199, 66, 73,
+ 78, 68, 73, 128, 66, 73, 78, 65, 82, 217, 66, 73, 76, 76, 73, 79, 78, 83,
+ 128, 66, 73, 76, 76, 73, 65, 82, 68, 83, 128, 66, 73, 76, 76, 69, 196,
+ 66, 73, 76, 65, 66, 73, 65, 204, 66, 73, 75, 73, 78, 73, 128, 66, 73, 71,
+ 128, 66, 73, 199, 66, 73, 69, 84, 128, 66, 73, 68, 69, 78, 84, 65, 204,
+ 66, 73, 68, 65, 75, 85, 79, 206, 66, 73, 67, 89, 67, 76, 73, 83, 84, 128,
+ 66, 73, 67, 89, 67, 76, 69, 83, 128, 66, 73, 67, 89, 67, 76, 69, 128, 66,
+ 73, 67, 69, 80, 83, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, 66, 73,
+ 66, 128, 66, 201, 66, 72, 85, 128, 66, 72, 79, 79, 128, 66, 72, 79, 128,
+ 66, 72, 73, 128, 66, 72, 69, 84, 72, 128, 66, 72, 69, 69, 128, 66, 72,
+ 69, 128, 66, 72, 65, 84, 84, 73, 80, 82, 79, 76, 213, 66, 72, 65, 77,
+ 128, 66, 72, 65, 73, 75, 83, 85, 75, 201, 66, 72, 65, 65, 128, 66, 72,
+ 65, 128, 66, 69, 89, 89, 65, 76, 128, 66, 69, 88, 128, 66, 69, 86, 69,
+ 82, 65, 71, 69, 128, 66, 69, 86, 69, 82, 65, 71, 197, 66, 69, 84, 87, 69,
+ 69, 78, 128, 66, 69, 84, 87, 69, 69, 206, 66, 69, 84, 72, 128, 66, 69,
+ 84, 65, 128, 66, 69, 84, 193, 66, 69, 212, 66, 69, 83, 73, 68, 197, 66,
+ 69, 82, 75, 65, 78, 65, 206, 66, 69, 82, 66, 69, 210, 66, 69, 80, 128,
+ 66, 69, 79, 82, 195, 66, 69, 78, 90, 69, 78, 197, 66, 69, 78, 84, 207,
+ 66, 69, 78, 84, 128, 66, 69, 78, 212, 66, 69, 78, 71, 65, 76, 201, 66,
+ 69, 78, 68, 69, 128, 66, 69, 78, 68, 128, 66, 69, 78, 196, 66, 69, 206,
+ 66, 69, 76, 84, 128, 66, 69, 76, 212, 66, 69, 76, 79, 215, 66, 69, 76,
+ 76, 72, 79, 208, 66, 69, 76, 76, 128, 66, 69, 76, 204, 66, 69, 76, 71,
+ 84, 72, 79, 210, 66, 69, 73, 84, 72, 128, 66, 69, 72, 73, 78, 196, 66,
+ 69, 72, 69, 72, 128, 66, 69, 72, 69, 200, 66, 69, 72, 128, 66, 69, 200,
+ 66, 69, 71, 73, 78, 78, 73, 78, 71, 128, 66, 69, 71, 73, 78, 78, 69, 82,
+ 128, 66, 69, 71, 73, 206, 66, 69, 70, 79, 82, 197, 66, 69, 69, 84, 76,
+ 69, 128, 66, 69, 69, 84, 65, 128, 66, 69, 69, 210, 66, 69, 69, 72, 73,
+ 86, 69, 128, 66, 69, 69, 72, 128, 66, 69, 69, 200, 66, 69, 67, 65, 85,
+ 83, 69, 128, 66, 69, 65, 86, 69, 82, 128, 66, 69, 65, 86, 69, 210, 66,
+ 69, 65, 84, 73, 78, 199, 66, 69, 65, 84, 128, 66, 69, 65, 82, 68, 69,
+ 196, 66, 69, 65, 82, 128, 66, 69, 65, 210, 66, 69, 65, 78, 128, 66, 69,
+ 65, 77, 69, 196, 66, 69, 65, 68, 83, 128, 66, 69, 65, 67, 200, 66, 67,
+ 65, 68, 128, 66, 67, 65, 196, 66, 66, 89, 88, 128, 66, 66, 89, 84, 128,
+ 66, 66, 89, 80, 128, 66, 66, 89, 128, 66, 66, 85, 88, 128, 66, 66, 85,
+ 84, 128, 66, 66, 85, 82, 88, 128, 66, 66, 85, 82, 128, 66, 66, 85, 80,
+ 128, 66, 66, 85, 79, 88, 128, 66, 66, 85, 79, 80, 128, 66, 66, 85, 79,
+ 128, 66, 66, 85, 128, 66, 66, 79, 88, 128, 66, 66, 79, 84, 128, 66, 66,
+ 79, 80, 128, 66, 66, 79, 128, 66, 66, 73, 88, 128, 66, 66, 73, 80, 128,
+ 66, 66, 73, 69, 88, 128, 66, 66, 73, 69, 84, 128, 66, 66, 73, 69, 80,
+ 128, 66, 66, 73, 69, 128, 66, 66, 73, 128, 66, 66, 69, 88, 128, 66, 66,
+ 69, 80, 128, 66, 66, 69, 69, 128, 66, 66, 65, 88, 128, 66, 66, 65, 84,
+ 128, 66, 66, 65, 80, 128, 66, 66, 65, 65, 128, 66, 65, 89, 65, 78, 78,
+ 65, 128, 66, 65, 85, 128, 66, 65, 84, 84, 69, 82, 89, 128, 66, 65, 84,
+ 72, 84, 85, 66, 128, 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 66, 65,
+ 84, 72, 128, 66, 65, 84, 200, 66, 65, 84, 65, 203, 66, 65, 83, 83, 65,
+ 128, 66, 65, 83, 83, 193, 66, 65, 83, 75, 69, 84, 66, 65, 76, 204, 66,
+ 65, 83, 72, 75, 73, 210, 66, 65, 83, 72, 128, 66, 65, 83, 69, 76, 73, 78,
+ 197, 66, 65, 83, 69, 66, 65, 76, 76, 128, 66, 65, 83, 69, 128, 66, 65,
+ 83, 197, 66, 65, 82, 83, 128, 66, 65, 82, 211, 66, 65, 82, 82, 73, 69,
+ 82, 128, 66, 65, 82, 82, 69, 75, 72, 128, 66, 65, 82, 82, 69, 69, 128,
+ 66, 65, 82, 82, 69, 197, 66, 65, 82, 76, 73, 78, 69, 128, 66, 65, 82, 76,
+ 69, 89, 128, 66, 65, 82, 73, 89, 79, 79, 83, 65, 78, 128, 66, 65, 82, 66,
+ 69, 210, 66, 65, 82, 65, 50, 128, 66, 65, 210, 66, 65, 78, 84, 79, 67,
+ 128, 66, 65, 78, 75, 78, 79, 84, 197, 66, 65, 78, 75, 128, 66, 65, 78,
+ 203, 66, 65, 78, 74, 79, 128, 66, 65, 78, 68, 128, 66, 65, 78, 65, 78,
+ 65, 128, 66, 65, 78, 50, 128, 66, 65, 78, 178, 66, 65, 77, 66, 79, 79,
+ 83, 128, 66, 65, 77, 66, 79, 79, 128, 66, 65, 76, 85, 68, 65, 128, 66,
+ 65, 76, 76, 80, 79, 73, 78, 212, 66, 65, 76, 76, 79, 84, 128, 66, 65, 76,
+ 76, 79, 212, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75, 69, 196, 66,
+ 65, 76, 76, 79, 79, 78, 128, 66, 65, 76, 76, 69, 212, 66, 65, 76, 68,
+ 128, 66, 65, 76, 65, 71, 128, 66, 65, 76, 128, 66, 65, 204, 66, 65, 73,
+ 82, 75, 65, 78, 128, 66, 65, 73, 77, 65, 73, 128, 66, 65, 72, 84, 128,
+ 66, 65, 72, 73, 82, 71, 79, 77, 85, 75, 72, 65, 128, 66, 65, 72, 65, 82,
+ 50, 128, 66, 65, 72, 65, 82, 178, 66, 65, 72, 128, 66, 65, 71, 85, 69,
+ 84, 84, 197, 66, 65, 71, 83, 128, 66, 65, 71, 71, 65, 71, 197, 66, 65,
+ 71, 69, 76, 128, 66, 65, 71, 65, 128, 66, 65, 71, 51, 128, 66, 65, 199,
+ 66, 65, 68, 77, 73, 78, 84, 79, 206, 66, 65, 68, 71, 69, 82, 128, 66, 65,
+ 68, 71, 69, 128, 66, 65, 196, 66, 65, 67, 84, 82, 73, 65, 206, 66, 65,
+ 67, 79, 78, 128, 66, 65, 67, 75, 87, 65, 82, 68, 128, 66, 65, 67, 75, 83,
+ 80, 65, 67, 69, 128, 66, 65, 67, 75, 83, 76, 65, 83, 72, 128, 66, 65, 67,
+ 75, 83, 76, 65, 83, 200, 66, 65, 67, 75, 83, 76, 65, 78, 84, 69, 196, 66,
+ 65, 67, 75, 72, 65, 78, 196, 66, 65, 67, 75, 45, 84, 73, 76, 84, 69, 196,
+ 66, 65, 67, 75, 128, 66, 65, 67, 203, 66, 65, 66, 89, 128, 66, 65, 66,
+ 217, 66, 65, 65, 82, 69, 82, 85, 128, 66, 65, 45, 50, 128, 66, 51, 48,
+ 53, 128, 66, 50, 53, 180, 66, 50, 52, 183, 66, 50, 52, 179, 66, 50, 52,
+ 178, 66, 50, 52, 177, 66, 50, 52, 176, 66, 50, 51, 179, 66, 50, 51, 177,
+ 66, 50, 51, 176, 66, 50, 50, 181, 66, 50, 50, 176, 66, 49, 57, 177, 66,
+ 49, 55, 182, 66, 49, 55, 179, 66, 49, 54, 57, 128, 66, 49, 54, 56, 128,
+ 66, 49, 54, 55, 128, 66, 49, 54, 54, 128, 66, 49, 54, 53, 128, 66, 49,
+ 54, 52, 128, 66, 49, 54, 179, 66, 49, 54, 178, 66, 49, 54, 49, 128, 66,
+ 49, 54, 48, 128, 66, 49, 53, 185, 66, 49, 53, 56, 128, 66, 49, 53, 55,
+ 128, 66, 49, 53, 182, 66, 49, 53, 53, 128, 66, 49, 53, 52, 128, 66, 49,
+ 53, 51, 128, 66, 49, 53, 50, 128, 66, 49, 53, 177, 66, 49, 53, 48, 128,
+ 66, 49, 52, 54, 128, 66, 49, 52, 181, 66, 49, 52, 50, 128, 66, 49, 52,
+ 177, 66, 49, 52, 176, 66, 49, 51, 181, 66, 49, 51, 179, 66, 49, 51, 50,
+ 128, 66, 49, 51, 177, 66, 49, 51, 176, 66, 49, 50, 184, 66, 49, 50, 183,
+ 66, 49, 50, 181, 66, 49, 50, 179, 66, 49, 50, 178, 66, 49, 50, 177, 66,
+ 49, 50, 176, 66, 49, 48, 57, 205, 66, 49, 48, 57, 198, 66, 49, 48, 56,
+ 205, 66, 49, 48, 56, 198, 66, 49, 48, 55, 205, 66, 49, 48, 55, 198, 66,
+ 49, 48, 54, 205, 66, 49, 48, 54, 198, 66, 49, 48, 53, 205, 66, 49, 48,
+ 53, 198, 66, 49, 48, 181, 66, 49, 48, 180, 66, 49, 48, 178, 66, 49, 48,
+ 176, 66, 48, 57, 177, 66, 48, 57, 176, 66, 48, 56, 57, 128, 66, 48, 56,
+ 183, 66, 48, 56, 54, 128, 66, 48, 56, 181, 66, 48, 56, 51, 128, 66, 48,
+ 56, 50, 128, 66, 48, 56, 177, 66, 48, 56, 176, 66, 48, 55, 57, 128, 66,
+ 48, 55, 184, 66, 48, 55, 183, 66, 48, 55, 182, 66, 48, 55, 181, 66, 48,
+ 55, 180, 66, 48, 55, 179, 66, 48, 55, 178, 66, 48, 55, 177, 66, 48, 55,
+ 176, 66, 48, 54, 185, 66, 48, 54, 184, 66, 48, 54, 183, 66, 48, 54, 182,
+ 66, 48, 54, 181, 66, 48, 54, 52, 128, 66, 48, 54, 51, 128, 66, 48, 54,
+ 178, 66, 48, 54, 177, 66, 48, 54, 176, 66, 48, 53, 185, 66, 48, 53, 184,
+ 66, 48, 53, 183, 66, 48, 53, 54, 128, 66, 48, 53, 181, 66, 48, 53, 180,
+ 66, 48, 53, 179, 66, 48, 53, 178, 66, 48, 53, 177, 66, 48, 53, 176, 66,
+ 48, 52, 57, 128, 66, 48, 52, 184, 66, 48, 52, 55, 128, 66, 48, 52, 182,
+ 66, 48, 52, 181, 66, 48, 52, 180, 66, 48, 52, 179, 66, 48, 52, 178, 66,
+ 48, 52, 177, 66, 48, 52, 176, 66, 48, 51, 185, 66, 48, 51, 184, 66, 48,
+ 51, 183, 66, 48, 51, 182, 66, 48, 51, 52, 128, 66, 48, 51, 179, 66, 48,
+ 51, 178, 66, 48, 51, 177, 66, 48, 51, 176, 66, 48, 50, 185, 66, 48, 50,
+ 184, 66, 48, 50, 183, 66, 48, 50, 182, 66, 48, 50, 181, 66, 48, 50, 180,
+ 66, 48, 50, 179, 66, 48, 50, 50, 128, 66, 48, 50, 177, 66, 48, 50, 176,
+ 66, 48, 49, 57, 128, 66, 48, 49, 56, 128, 66, 48, 49, 183, 66, 48, 49,
+ 182, 66, 48, 49, 181, 66, 48, 49, 180, 66, 48, 49, 179, 66, 48, 49, 178,
+ 66, 48, 49, 177, 66, 48, 49, 176, 66, 48, 48, 57, 128, 66, 48, 48, 185,
+ 66, 48, 48, 56, 128, 66, 48, 48, 184, 66, 48, 48, 55, 128, 66, 48, 48,
+ 183, 66, 48, 48, 54, 128, 66, 48, 48, 182, 66, 48, 48, 53, 65, 128, 66,
+ 48, 48, 53, 128, 66, 48, 48, 181, 66, 48, 48, 52, 128, 66, 48, 48, 180,
+ 66, 48, 48, 51, 128, 66, 48, 48, 179, 66, 48, 48, 50, 128, 66, 48, 48,
+ 178, 66, 48, 48, 49, 128, 66, 48, 48, 177, 65, 90, 85, 128, 65, 89, 66,
+ 128, 65, 89, 65, 72, 128, 65, 88, 69, 128, 65, 87, 69, 128, 65, 87, 65,
+ 217, 65, 86, 79, 67, 65, 68, 79, 128, 65, 86, 69, 83, 84, 65, 206, 65,
+ 86, 69, 82, 65, 71, 197, 65, 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89,
+ 65, 128, 65, 86, 65, 71, 82, 65, 72, 65, 128, 65, 85, 89, 65, 78, 78, 65,
+ 128, 65, 85, 84, 85, 77, 78, 128, 65, 85, 84, 79, 77, 79, 66, 73, 76, 69,
+ 128, 65, 85, 84, 79, 77, 65, 84, 69, 196, 65, 85, 84, 207, 65, 85, 83,
+ 84, 82, 65, 204, 65, 85, 82, 73, 80, 73, 71, 77, 69, 78, 84, 128, 65, 85,
+ 82, 65, 77, 65, 90, 68, 65, 65, 72, 65, 128, 65, 85, 82, 65, 77, 65, 90,
+ 68, 65, 65, 45, 50, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 128, 65,
+ 85, 78, 78, 128, 65, 85, 71, 85, 83, 84, 128, 65, 85, 71, 77, 69, 78, 84,
+ 65, 84, 73, 79, 206, 65, 85, 69, 128, 65, 85, 66, 69, 82, 71, 73, 78, 69,
+ 128, 65, 84, 84, 73, 195, 65, 84, 84, 72, 65, 67, 65, 78, 128, 65, 84,
+ 84, 69, 78, 84, 73, 79, 78, 128, 65, 84, 84, 65, 203, 65, 84, 84, 65, 67,
+ 72, 69, 196, 65, 84, 79, 205, 65, 84, 78, 65, 200, 65, 84, 77, 65, 65,
+ 85, 128, 65, 84, 73, 89, 65, 128, 65, 84, 73, 85, 128, 65, 84, 73, 75,
+ 82, 65, 77, 65, 128, 65, 84, 72, 76, 69, 84, 73, 195, 65, 84, 72, 65, 82,
+ 86, 65, 86, 69, 68, 73, 195, 65, 84, 72, 65, 80, 65, 83, 67, 65, 206, 65,
+ 84, 72, 45, 84, 72, 65, 76, 65, 84, 72, 65, 128, 65, 83, 90, 128, 65, 83,
+ 89, 85, 82, 193, 65, 83, 89, 77, 80, 84, 79, 84, 73, 67, 65, 76, 76, 217,
+ 65, 83, 84, 82, 79, 78, 79, 77, 73, 67, 65, 204, 65, 83, 84, 82, 79, 76,
+ 79, 71, 73, 67, 65, 204, 65, 83, 84, 82, 65, 69, 65, 128, 65, 83, 84, 79,
+ 78, 73, 83, 72, 69, 196, 65, 83, 84, 69, 82, 73, 83, 77, 128, 65, 83, 84,
+ 69, 82, 73, 83, 75, 211, 65, 83, 84, 69, 82, 73, 83, 75, 128, 65, 83, 84,
+ 69, 82, 73, 83, 203, 65, 83, 84, 69, 82, 73, 83, 67, 85, 83, 128, 65, 83,
+ 83, 89, 82, 73, 65, 206, 65, 83, 83, 69, 82, 84, 73, 79, 78, 128, 65, 83,
+ 80, 73, 82, 65, 84, 73, 79, 78, 128, 65, 83, 80, 73, 82, 65, 84, 69, 196,
+ 65, 83, 80, 69, 82, 128, 65, 83, 73, 65, 45, 65, 85, 83, 84, 82, 65, 76,
+ 73, 65, 128, 65, 83, 72, 71, 65, 66, 128, 65, 83, 72, 69, 83, 128, 65,
+ 83, 72, 57, 128, 65, 83, 72, 51, 128, 65, 83, 72, 178, 65, 83, 67, 73,
+ 193, 65, 83, 67, 69, 78, 84, 128, 65, 83, 67, 69, 78, 68, 73, 78, 199,
+ 65, 83, 65, 76, 50, 128, 65, 83, 45, 83, 65, 74, 68, 65, 128, 65, 82, 85,
+ 72, 85, 65, 128, 65, 82, 84, 211, 65, 82, 84, 73, 83, 212, 65, 82, 84,
+ 73, 67, 85, 76, 65, 84, 69, 196, 65, 82, 84, 65, 66, 197, 65, 82, 84, 65,
+ 128, 65, 82, 83, 69, 79, 83, 128, 65, 82, 83, 69, 79, 211, 65, 82, 83,
+ 69, 78, 73, 67, 128, 65, 82, 82, 79, 87, 83, 128, 65, 82, 82, 79, 87,
+ 211, 65, 82, 82, 79, 87, 72, 69, 65, 68, 83, 128, 65, 82, 82, 79, 87, 72,
+ 69, 65, 68, 45, 83, 72, 65, 80, 69, 196, 65, 82, 82, 79, 87, 72, 69, 65,
+ 68, 128, 65, 82, 82, 79, 87, 72, 69, 65, 196, 65, 82, 82, 79, 87, 45, 84,
+ 65, 73, 76, 128, 65, 82, 82, 73, 86, 73, 78, 71, 128, 65, 82, 82, 73, 86,
+ 69, 128, 65, 82, 82, 65, 89, 128, 65, 82, 80, 69, 71, 71, 73, 65, 84,
+ 207, 65, 82, 79, 85, 83, 73, 78, 199, 65, 82, 79, 85, 82, 193, 65, 82,
+ 79, 85, 78, 68, 45, 80, 82, 79, 70, 73, 76, 69, 128, 65, 82, 79, 85, 78,
+ 196, 65, 82, 77, 89, 128, 65, 82, 77, 211, 65, 82, 77, 79, 85, 82, 128,
+ 65, 82, 77, 69, 78, 73, 65, 206, 65, 82, 77, 128, 65, 82, 205, 65, 82,
+ 76, 65, 85, 199, 65, 82, 75, 84, 73, 75, 207, 65, 82, 75, 65, 66, 128,
+ 65, 82, 75, 65, 65, 78, 85, 128, 65, 82, 73, 83, 84, 69, 82, 65, 128, 65,
+ 82, 73, 83, 84, 69, 82, 193, 65, 82, 73, 69, 83, 128, 65, 82, 71, 79, 84,
+ 69, 82, 73, 128, 65, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, 128,
+ 65, 82, 71, 73, 128, 65, 82, 69, 80, 65, 128, 65, 82, 69, 65, 128, 65,
+ 82, 68, 72, 65, 86, 73, 83, 65, 82, 71, 65, 128, 65, 82, 68, 72, 65, 67,
+ 65, 78, 68, 82, 65, 128, 65, 82, 67, 72, 65, 73, 79, 78, 128, 65, 82, 67,
+ 72, 65, 73, 79, 206, 65, 82, 67, 72, 65, 73, 195, 65, 82, 67, 200, 65,
+ 82, 67, 128, 65, 82, 195, 65, 82, 65, 77, 65, 73, 195, 65, 82, 65, 69,
+ 65, 69, 128, 65, 82, 65, 69, 65, 45, 85, 128, 65, 82, 65, 69, 65, 45, 73,
+ 128, 65, 82, 65, 69, 65, 45, 69, 79, 128, 65, 82, 65, 69, 65, 45, 69,
+ 128, 65, 82, 65, 69, 65, 45, 65, 128, 65, 82, 65, 68, 128, 65, 82, 65,
+ 196, 65, 82, 65, 66, 73, 67, 45, 73, 78, 68, 73, 195, 65, 82, 65, 66, 73,
+ 65, 206, 65, 82, 45, 82, 85, 66, 128, 65, 82, 45, 82, 65, 72, 77, 65,
+ 206, 65, 82, 45, 82, 65, 72, 69, 69, 77, 128, 65, 81, 85, 65, 82, 73, 85,
+ 83, 128, 65, 81, 85, 65, 70, 79, 82, 84, 73, 83, 128, 65, 81, 85, 193,
+ 65, 80, 85, 206, 65, 80, 82, 73, 76, 128, 65, 80, 80, 82, 79, 88, 73, 77,
+ 65, 84, 69, 76, 217, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 128, 65,
+ 80, 80, 82, 79, 65, 67, 72, 69, 211, 65, 80, 80, 82, 79, 65, 67, 72, 128,
+ 65, 80, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 65, 80, 80, 76, 73, 67,
+ 65, 84, 73, 79, 206, 65, 80, 79, 84, 72, 69, 83, 128, 65, 80, 79, 84, 72,
+ 69, 77, 65, 128, 65, 80, 79, 83, 84, 82, 79, 80, 72, 69, 128, 65, 80, 79,
+ 83, 84, 82, 79, 70, 79, 83, 128, 65, 80, 79, 83, 84, 82, 79, 70, 79, 211,
+ 65, 80, 79, 83, 84, 82, 79, 70, 79, 201, 65, 80, 79, 76, 76, 79, 78, 128,
+ 65, 80, 79, 68, 69, 88, 73, 65, 128, 65, 80, 79, 68, 69, 82, 77, 193, 65,
+ 80, 76, 79, 85, 78, 128, 65, 80, 76, 201, 65, 80, 204, 65, 80, 73, 78,
+ 128, 65, 80, 69, 83, 207, 65, 80, 67, 128, 65, 80, 65, 82, 84, 128, 65,
+ 80, 65, 65, 84, 79, 128, 65, 79, 85, 128, 65, 79, 82, 128, 65, 78, 85,
+ 83, 86, 65, 82, 65, 89, 65, 128, 65, 78, 85, 83, 86, 65, 82, 65, 128, 65,
+ 78, 85, 83, 86, 65, 82, 193, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 78,
+ 85, 68, 65, 84, 84, 193, 65, 78, 84, 73, 82, 69, 83, 84, 82, 73, 67, 84,
+ 73, 79, 78, 128, 65, 78, 84, 73, 77, 79, 78, 89, 45, 50, 128, 65, 78, 84,
+ 73, 77, 79, 78, 89, 128, 65, 78, 84, 73, 77, 79, 78, 217, 65, 78, 84, 73,
+ 77, 79, 78, 73, 65, 84, 69, 128, 65, 78, 84, 73, 75, 69, 78, 79, 77, 65,
+ 128, 65, 78, 84, 73, 75, 69, 78, 79, 75, 89, 76, 73, 83, 77, 65, 128, 65,
+ 78, 84, 73, 70, 79, 78, 73, 65, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75,
+ 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, 65, 78, 84, 73, 67, 76,
+ 79, 67, 75, 87, 73, 83, 69, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87,
+ 73, 83, 197, 65, 78, 84, 69, 78, 78, 65, 128, 65, 78, 84, 69, 78, 78,
+ 193, 65, 78, 84, 65, 82, 71, 79, 77, 85, 75, 72, 65, 128, 65, 78, 83, 85,
+ 218, 65, 78, 83, 72, 69, 128, 65, 78, 80, 69, 65, 128, 65, 78, 207, 65,
+ 78, 78, 85, 73, 84, 217, 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 65, 78,
+ 78, 65, 65, 85, 128, 65, 78, 75, 72, 128, 65, 78, 74, 73, 128, 65, 78,
+ 73, 77, 65, 76, 128, 65, 78, 72, 85, 128, 65, 78, 71, 85, 76, 65, 82,
+ 128, 65, 78, 71, 85, 73, 83, 72, 69, 196, 65, 78, 71, 83, 84, 82, 79,
+ 205, 65, 78, 71, 82, 217, 65, 78, 71, 76, 73, 67, 65, 78, 193, 65, 78,
+ 71, 76, 69, 68, 128, 65, 78, 71, 76, 69, 196, 65, 78, 71, 75, 72, 65, 78,
+ 75, 72, 85, 128, 65, 78, 71, 75, 65, 128, 65, 78, 71, 69, 210, 65, 78,
+ 71, 69, 76, 128, 65, 78, 71, 69, 68, 128, 65, 78, 68, 65, 80, 128, 65,
+ 78, 67, 79, 82, 65, 128, 65, 78, 67, 72, 79, 82, 128, 65, 78, 65, 84, 82,
+ 73, 67, 72, 73, 83, 77, 65, 128, 65, 78, 65, 84, 79, 77, 73, 67, 65, 204,
+ 65, 78, 65, 80, 128, 65, 78, 45, 78, 73, 83, 70, 128, 65, 77, 85, 76, 69,
+ 84, 128, 65, 77, 80, 83, 128, 65, 77, 80, 72, 79, 82, 65, 128, 65, 77,
+ 80, 69, 82, 83, 65, 78, 68, 128, 65, 77, 80, 69, 82, 83, 65, 78, 196, 65,
+ 77, 79, 85, 78, 212, 65, 77, 69, 82, 73, 67, 65, 83, 128, 65, 77, 69, 82,
+ 73, 67, 65, 206, 65, 77, 66, 85, 76, 65, 78, 67, 69, 128, 65, 77, 66,
+ 193, 65, 77, 66, 128, 65, 77, 65, 82, 128, 65, 77, 65, 210, 65, 77, 65,
+ 76, 71, 65, 77, 65, 84, 73, 79, 206, 65, 77, 65, 76, 71, 65, 77, 128, 65,
+ 76, 86, 69, 79, 76, 65, 210, 65, 76, 85, 77, 128, 65, 76, 84, 69, 82, 78,
+ 65, 84, 73, 86, 197, 65, 76, 84, 69, 82, 78, 65, 84, 73, 79, 206, 65, 76,
+ 84, 69, 82, 78, 65, 84, 73, 78, 71, 128, 65, 76, 84, 69, 82, 78, 65, 84,
+ 73, 78, 199, 65, 76, 84, 69, 82, 78, 65, 84, 69, 128, 65, 76, 84, 69, 82,
+ 78, 65, 84, 197, 65, 76, 84, 65, 128, 65, 76, 80, 72, 65, 128, 65, 76,
+ 80, 72, 193, 65, 76, 80, 65, 80, 82, 65, 78, 65, 128, 65, 76, 80, 65, 80,
+ 82, 65, 65, 78, 193, 65, 76, 80, 65, 128, 65, 76, 77, 79, 83, 212, 65,
+ 76, 76, 79, 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 65, 76, 76, 201,
+ 65, 76, 76, 65, 200, 65, 76, 75, 65, 76, 73, 45, 50, 128, 65, 76, 75, 65,
+ 76, 73, 128, 65, 76, 73, 71, 78, 69, 196, 65, 76, 73, 70, 85, 128, 65,
+ 76, 73, 70, 128, 65, 76, 73, 198, 65, 76, 73, 69, 78, 128, 65, 76, 73,
+ 69, 206, 65, 76, 71, 73, 218, 65, 76, 70, 65, 128, 65, 76, 69, 85, 212,
+ 65, 76, 69, 82, 84, 128, 65, 76, 69, 80, 72, 128, 65, 76, 69, 77, 66, 73,
+ 67, 128, 65, 76, 69, 70, 128, 65, 76, 66, 65, 78, 73, 65, 206, 65, 76,
+ 65, 89, 72, 69, 128, 65, 76, 65, 89, 72, 197, 65, 76, 65, 82, 205, 65,
+ 76, 65, 80, 72, 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 75, 85,
+ 82, 213, 65, 75, 84, 73, 69, 83, 69, 76, 83, 75, 65, 66, 128, 65, 75, 83,
+ 65, 128, 65, 75, 72, 77, 73, 77, 73, 195, 65, 75, 66, 65, 210, 65, 75,
+ 65, 82, 65, 128, 65, 75, 65, 82, 193, 65, 73, 89, 65, 78, 78, 65, 128,
+ 65, 73, 86, 73, 76, 73, 203, 65, 73, 86, 65, 128, 65, 73, 84, 79, 206,
+ 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 73, 82, 80, 76, 65, 78, 197, 65,
+ 73, 78, 213, 65, 73, 78, 78, 128, 65, 73, 76, 77, 128, 65, 73, 75, 65,
+ 82, 65, 128, 65, 73, 72, 86, 85, 83, 128, 65, 72, 83, 68, 65, 128, 65,
+ 72, 83, 65, 128, 65, 72, 79, 205, 65, 72, 65, 78, 199, 65, 72, 65, 71,
+ 71, 65, 210, 65, 72, 65, 68, 128, 65, 71, 85, 78, 71, 128, 65, 71, 79,
+ 71, 201, 65, 71, 71, 82, 65, 86, 65, 84, 73, 79, 78, 128, 65, 71, 71, 82,
+ 65, 86, 65, 84, 69, 196, 65, 71, 65, 73, 78, 83, 212, 65, 71, 65, 73, 78,
+ 128, 65, 70, 84, 69, 210, 65, 70, 83, 65, 65, 81, 128, 65, 70, 82, 73,
+ 67, 65, 206, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, 69, 68, 128,
+ 65, 70, 71, 72, 65, 78, 201, 65, 70, 70, 82, 73, 67, 65, 84, 73, 79, 206,
+ 65, 70, 70, 73, 216, 65, 69, 89, 65, 78, 78, 65, 128, 65, 69, 89, 128,
+ 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 69, 83, 67, 128, 65,
+ 69, 83, 128, 65, 69, 82, 73, 65, 204, 65, 69, 82, 128, 65, 69, 76, 65,
+ 45, 80, 73, 76, 76, 65, 128, 65, 69, 76, 128, 65, 69, 75, 128, 65, 69,
+ 71, 69, 65, 206, 65, 69, 71, 128, 65, 69, 69, 89, 65, 78, 78, 65, 128,
+ 65, 69, 69, 128, 65, 69, 68, 65, 45, 80, 73, 76, 76, 65, 128, 65, 69, 68,
+ 128, 65, 69, 66, 128, 65, 68, 86, 65, 78, 84, 65, 71, 69, 128, 65, 68,
+ 86, 65, 78, 67, 69, 128, 65, 68, 85, 76, 84, 128, 65, 68, 77, 73, 83, 83,
+ 73, 79, 206, 65, 68, 77, 69, 84, 79, 83, 128, 65, 68, 76, 65, 205, 65,
+ 68, 72, 69, 83, 73, 86, 197, 65, 68, 69, 71, 128, 65, 68, 69, 199, 65,
+ 68, 68, 82, 69, 83, 83, 69, 196, 65, 68, 68, 82, 69, 83, 211, 65, 68, 68,
+ 65, 75, 128, 65, 68, 65, 203, 65, 67, 85, 84, 69, 45, 77, 65, 67, 82, 79,
+ 78, 128, 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 45, 65, 67, 85, 84,
+ 69, 128, 65, 67, 85, 84, 197, 65, 67, 84, 85, 65, 76, 76, 217, 65, 67,
+ 84, 73, 86, 65, 84, 197, 65, 67, 82, 79, 80, 72, 79, 78, 73, 195, 65, 67,
+ 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, 65, 67, 67, 85, 77, 85, 76, 65,
+ 84, 73, 79, 78, 128, 65, 67, 67, 79, 85, 78, 212, 65, 67, 67, 79, 82, 68,
+ 73, 79, 78, 128, 65, 67, 67, 79, 77, 77, 79, 68, 65, 84, 73, 79, 78, 128,
+ 65, 67, 67, 69, 80, 84, 128, 65, 67, 67, 69, 78, 84, 45, 83, 84, 65, 67,
+ 67, 65, 84, 79, 128, 65, 67, 67, 69, 78, 84, 128, 65, 67, 67, 69, 78,
+ 212, 65, 67, 65, 68, 69, 77, 217, 65, 66, 89, 83, 77, 65, 204, 65, 66,
+ 85, 78, 68, 65, 78, 67, 69, 128, 65, 66, 75, 72, 65, 83, 73, 65, 206, 65,
+ 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65, 66, 65, 70, 73, 76, 73,
+ 128, 65, 66, 65, 67, 85, 83, 128, 65, 66, 178, 65, 66, 49, 57, 49, 128,
+ 65, 66, 49, 56, 56, 128, 65, 66, 49, 56, 48, 128, 65, 66, 49, 55, 49,
+ 128, 65, 66, 49, 54, 52, 128, 65, 66, 49, 51, 49, 66, 128, 65, 66, 49,
+ 51, 49, 65, 128, 65, 66, 49, 50, 51, 128, 65, 66, 49, 50, 50, 128, 65,
+ 66, 49, 50, 48, 128, 65, 66, 49, 49, 56, 128, 65, 66, 48, 56, 55, 128,
+ 65, 66, 48, 56, 54, 128, 65, 66, 48, 56, 53, 128, 65, 66, 48, 56, 50,
+ 128, 65, 66, 48, 56, 49, 128, 65, 66, 48, 56, 48, 128, 65, 66, 48, 55,
+ 57, 128, 65, 66, 48, 55, 56, 128, 65, 66, 48, 55, 55, 128, 65, 66, 48,
+ 55, 54, 128, 65, 66, 48, 55, 52, 128, 65, 66, 48, 55, 51, 128, 65, 66,
+ 48, 55, 48, 128, 65, 66, 48, 54, 57, 128, 65, 66, 48, 54, 55, 128, 65,
+ 66, 48, 54, 54, 128, 65, 66, 48, 54, 53, 128, 65, 66, 48, 54, 49, 128,
+ 65, 66, 48, 54, 48, 128, 65, 66, 48, 53, 57, 128, 65, 66, 48, 53, 56,
+ 128, 65, 66, 48, 53, 55, 128, 65, 66, 48, 53, 54, 128, 65, 66, 48, 53,
+ 53, 128, 65, 66, 48, 53, 52, 128, 65, 66, 48, 53, 51, 128, 65, 66, 48,
+ 53, 49, 128, 65, 66, 48, 53, 48, 128, 65, 66, 48, 52, 57, 128, 65, 66,
+ 48, 52, 56, 128, 65, 66, 48, 52, 55, 128, 65, 66, 48, 52, 54, 128, 65,
+ 66, 48, 52, 53, 128, 65, 66, 48, 52, 52, 128, 65, 66, 48, 52, 49, 128,
+ 65, 66, 48, 52, 48, 128, 65, 66, 48, 51, 57, 128, 65, 66, 48, 51, 56,
+ 128, 65, 66, 48, 51, 55, 128, 65, 66, 48, 51, 52, 128, 65, 66, 48, 51,
+ 49, 128, 65, 66, 48, 51, 48, 128, 65, 66, 48, 50, 57, 128, 65, 66, 48,
+ 50, 56, 128, 65, 66, 48, 50, 55, 128, 65, 66, 48, 50, 54, 128, 65, 66,
+ 48, 50, 52, 128, 65, 66, 48, 50, 51, 77, 128, 65, 66, 48, 50, 51, 128,
+ 65, 66, 48, 50, 50, 77, 128, 65, 66, 48, 50, 50, 70, 128, 65, 66, 48, 50,
+ 50, 128, 65, 66, 48, 50, 49, 77, 128, 65, 66, 48, 50, 49, 70, 128, 65,
+ 66, 48, 50, 49, 128, 65, 66, 48, 50, 48, 128, 65, 66, 48, 49, 55, 128,
+ 65, 66, 48, 49, 54, 128, 65, 66, 48, 49, 51, 128, 65, 66, 48, 49, 49,
+ 128, 65, 66, 48, 49, 48, 128, 65, 66, 48, 48, 57, 128, 65, 66, 48, 48,
+ 56, 128, 65, 66, 48, 48, 55, 128, 65, 66, 48, 48, 54, 128, 65, 66, 48,
+ 48, 53, 128, 65, 66, 48, 48, 52, 128, 65, 66, 48, 48, 51, 128, 65, 66,
+ 48, 48, 50, 128, 65, 66, 48, 48, 49, 128, 65, 65, 90, 72, 65, 65, 75, 75,
+ 85, 128, 65, 65, 89, 73, 78, 128, 65, 65, 89, 65, 78, 78, 65, 128, 65,
+ 65, 89, 128, 65, 65, 87, 128, 65, 65, 79, 128, 65, 65, 74, 128, 65, 65,
+ 66, 65, 65, 70, 73, 76, 73, 128, 65, 65, 48, 51, 50, 128, 65, 65, 48, 51,
+ 49, 128, 65, 65, 48, 51, 48, 128, 65, 65, 48, 50, 57, 128, 65, 65, 48,
+ 50, 56, 128, 65, 65, 48, 50, 55, 128, 65, 65, 48, 50, 54, 128, 65, 65,
+ 48, 50, 53, 128, 65, 65, 48, 50, 52, 128, 65, 65, 48, 50, 51, 128, 65,
+ 65, 48, 50, 50, 128, 65, 65, 48, 50, 49, 128, 65, 65, 48, 50, 48, 128,
+ 65, 65, 48, 49, 57, 128, 65, 65, 48, 49, 56, 128, 65, 65, 48, 49, 55,
+ 128, 65, 65, 48, 49, 54, 128, 65, 65, 48, 49, 53, 128, 65, 65, 48, 49,
+ 52, 128, 65, 65, 48, 49, 51, 128, 65, 65, 48, 49, 50, 128, 65, 65, 48,
+ 49, 49, 128, 65, 65, 48, 49, 48, 128, 65, 65, 48, 48, 57, 128, 65, 65,
+ 48, 48, 56, 128, 65, 65, 48, 48, 55, 66, 128, 65, 65, 48, 48, 55, 65,
+ 128, 65, 65, 48, 48, 55, 128, 65, 65, 48, 48, 54, 128, 65, 65, 48, 48,
+ 53, 128, 65, 65, 48, 48, 52, 128, 65, 65, 48, 48, 51, 128, 65, 65, 48,
+ 48, 50, 128, 65, 65, 48, 48, 49, 128, 65, 56, 48, 55, 128, 65, 56, 48,
+ 54, 128, 65, 56, 48, 53, 128, 65, 56, 48, 52, 128, 65, 56, 48, 51, 128,
+ 65, 56, 48, 50, 128, 65, 56, 48, 49, 128, 65, 56, 48, 48, 128, 65, 55,
+ 51, 178, 65, 55, 50, 182, 65, 55, 49, 183, 65, 55, 49, 181, 65, 55, 49,
+ 180, 65, 55, 49, 179, 65, 55, 49, 178, 65, 55, 49, 177, 65, 55, 49, 176,
+ 65, 55, 48, 57, 45, 182, 65, 55, 48, 57, 45, 180, 65, 55, 48, 57, 45,
+ 179, 65, 55, 48, 57, 45, 178, 65, 55, 48, 185, 65, 55, 48, 184, 65, 55,
+ 48, 183, 65, 55, 48, 182, 65, 55, 48, 181, 65, 55, 48, 180, 65, 55, 48,
+ 179, 65, 55, 48, 178, 65, 55, 48, 177, 65, 54, 54, 52, 128, 65, 54, 54,
+ 51, 128, 65, 54, 54, 50, 128, 65, 54, 54, 49, 128, 65, 54, 54, 48, 128,
+ 65, 54, 53, 57, 128, 65, 54, 53, 56, 128, 65, 54, 53, 55, 128, 65, 54,
+ 53, 54, 128, 65, 54, 53, 53, 128, 65, 54, 53, 52, 128, 65, 54, 53, 51,
+ 128, 65, 54, 53, 50, 128, 65, 54, 53, 49, 128, 65, 54, 52, 57, 128, 65,
+ 54, 52, 56, 128, 65, 54, 52, 54, 128, 65, 54, 52, 53, 128, 65, 54, 52,
+ 52, 128, 65, 54, 52, 51, 128, 65, 54, 52, 50, 128, 65, 54, 52, 48, 128,
+ 65, 54, 51, 56, 128, 65, 54, 51, 55, 128, 65, 54, 51, 52, 128, 65, 54,
+ 50, 57, 128, 65, 54, 50, 56, 128, 65, 54, 50, 55, 128, 65, 54, 50, 54,
+ 128, 65, 54, 50, 52, 128, 65, 54, 50, 51, 128, 65, 54, 50, 50, 128, 65,
+ 54, 50, 49, 128, 65, 54, 50, 48, 128, 65, 54, 49, 57, 128, 65, 54, 49,
+ 56, 128, 65, 54, 49, 55, 128, 65, 54, 49, 54, 128, 65, 54, 49, 53, 128,
+ 65, 54, 49, 52, 128, 65, 54, 49, 51, 128, 65, 54, 49, 50, 128, 65, 54,
+ 49, 49, 128, 65, 54, 49, 48, 128, 65, 54, 48, 57, 128, 65, 54, 48, 56,
+ 128, 65, 54, 48, 54, 128, 65, 54, 48, 52, 128, 65, 54, 48, 51, 128, 65,
+ 54, 48, 50, 128, 65, 54, 48, 49, 128, 65, 54, 48, 48, 128, 65, 53, 57,
+ 56, 128, 65, 53, 57, 54, 128, 65, 53, 57, 53, 128, 65, 53, 57, 52, 128,
+ 65, 53, 57, 50, 128, 65, 53, 57, 49, 128, 65, 53, 56, 57, 128, 65, 53,
+ 56, 56, 128, 65, 53, 56, 55, 128, 65, 53, 56, 54, 128, 65, 53, 56, 53,
+ 128, 65, 53, 56, 52, 128, 65, 53, 56, 51, 128, 65, 53, 56, 50, 128, 65,
+ 53, 56, 49, 128, 65, 53, 56, 48, 128, 65, 53, 55, 57, 128, 65, 53, 55,
+ 56, 128, 65, 53, 55, 55, 128, 65, 53, 55, 54, 128, 65, 53, 55, 53, 128,
+ 65, 53, 55, 52, 128, 65, 53, 55, 51, 128, 65, 53, 55, 50, 128, 65, 53,
+ 55, 49, 128, 65, 53, 55, 48, 128, 65, 53, 54, 57, 128, 65, 53, 54, 56,
+ 128, 65, 53, 54, 54, 128, 65, 53, 54, 53, 128, 65, 53, 54, 52, 128, 65,
+ 53, 54, 51, 128, 65, 53, 53, 57, 128, 65, 53, 53, 55, 128, 65, 53, 53,
+ 54, 128, 65, 53, 53, 53, 128, 65, 53, 53, 52, 128, 65, 53, 53, 51, 128,
+ 65, 53, 53, 50, 128, 65, 53, 53, 49, 128, 65, 53, 53, 48, 128, 65, 53,
+ 52, 57, 128, 65, 53, 52, 56, 128, 65, 53, 52, 55, 128, 65, 53, 52, 53,
+ 128, 65, 53, 52, 50, 128, 65, 53, 52, 49, 128, 65, 53, 52, 48, 128, 65,
+ 53, 51, 57, 128, 65, 53, 51, 56, 128, 65, 53, 51, 55, 128, 65, 53, 51,
+ 54, 128, 65, 53, 51, 53, 128, 65, 53, 51, 52, 128, 65, 53, 51, 50, 128,
+ 65, 53, 51, 49, 128, 65, 53, 51, 48, 128, 65, 53, 50, 57, 128, 65, 53,
+ 50, 56, 128, 65, 53, 50, 55, 128, 65, 53, 50, 54, 128, 65, 53, 50, 53,
+ 128, 65, 53, 50, 52, 128, 65, 53, 50, 51, 128, 65, 53, 50, 50, 128, 65,
+ 53, 50, 49, 128, 65, 53, 50, 48, 128, 65, 53, 49, 57, 128, 65, 53, 49,
+ 56, 128, 65, 53, 49, 55, 128, 65, 53, 49, 54, 128, 65, 53, 49, 53, 128,
+ 65, 53, 49, 52, 128, 65, 53, 49, 51, 128, 65, 53, 49, 50, 128, 65, 53,
+ 49, 49, 128, 65, 53, 49, 48, 128, 65, 53, 48, 57, 128, 65, 53, 48, 56,
+ 128, 65, 53, 48, 55, 128, 65, 53, 48, 54, 128, 65, 53, 48, 53, 128, 65,
+ 53, 48, 52, 128, 65, 53, 48, 51, 128, 65, 53, 48, 50, 128, 65, 53, 48,
+ 49, 128, 65, 52, 57, 55, 128, 65, 52, 57, 54, 128, 65, 52, 57, 53, 128,
+ 65, 52, 57, 52, 128, 65, 52, 57, 51, 128, 65, 52, 57, 50, 128, 65, 52,
+ 57, 49, 128, 65, 52, 57, 48, 128, 65, 52, 56, 57, 128, 65, 52, 56, 56,
+ 128, 65, 52, 56, 55, 128, 65, 52, 56, 54, 128, 65, 52, 56, 53, 128, 65,
+ 52, 56, 52, 128, 65, 52, 56, 51, 128, 65, 52, 56, 50, 128, 65, 52, 56,
+ 49, 128, 65, 52, 56, 48, 128, 65, 52, 55, 57, 128, 65, 52, 55, 56, 128,
+ 65, 52, 55, 55, 128, 65, 52, 55, 54, 128, 65, 52, 55, 53, 128, 65, 52,
+ 55, 52, 128, 65, 52, 55, 51, 128, 65, 52, 55, 50, 128, 65, 52, 55, 49,
+ 128, 65, 52, 55, 48, 128, 65, 52, 54, 57, 128, 65, 52, 54, 56, 128, 65,
+ 52, 54, 55, 128, 65, 52, 54, 54, 128, 65, 52, 54, 53, 128, 65, 52, 54,
+ 52, 128, 65, 52, 54, 51, 128, 65, 52, 54, 50, 128, 65, 52, 54, 49, 128,
+ 65, 52, 54, 48, 128, 65, 52, 53, 57, 128, 65, 52, 53, 56, 128, 65, 52,
+ 53, 55, 65, 128, 65, 52, 53, 55, 128, 65, 52, 53, 54, 128, 65, 52, 53,
+ 53, 128, 65, 52, 53, 52, 128, 65, 52, 53, 51, 128, 65, 52, 53, 50, 128,
+ 65, 52, 53, 49, 128, 65, 52, 53, 48, 65, 128, 65, 52, 53, 48, 128, 65,
+ 52, 52, 57, 128, 65, 52, 52, 56, 128, 65, 52, 52, 55, 128, 65, 52, 52,
+ 54, 128, 65, 52, 52, 53, 128, 65, 52, 52, 52, 128, 65, 52, 52, 51, 128,
+ 65, 52, 52, 50, 128, 65, 52, 52, 49, 128, 65, 52, 52, 48, 128, 65, 52,
+ 51, 57, 128, 65, 52, 51, 56, 128, 65, 52, 51, 55, 128, 65, 52, 51, 54,
+ 128, 65, 52, 51, 53, 128, 65, 52, 51, 52, 128, 65, 52, 51, 51, 128, 65,
+ 52, 51, 50, 128, 65, 52, 51, 49, 128, 65, 52, 51, 48, 128, 65, 52, 50,
+ 57, 128, 65, 52, 50, 56, 128, 65, 52, 50, 55, 128, 65, 52, 50, 54, 128,
+ 65, 52, 50, 53, 128, 65, 52, 50, 52, 128, 65, 52, 50, 51, 128, 65, 52,
+ 50, 50, 128, 65, 52, 50, 49, 128, 65, 52, 50, 48, 128, 65, 52, 49, 57,
+ 128, 65, 52, 49, 56, 45, 86, 65, 83, 128, 65, 52, 49, 56, 128, 65, 52,
+ 49, 55, 45, 86, 65, 83, 128, 65, 52, 49, 55, 128, 65, 52, 49, 54, 45, 86,
+ 65, 83, 128, 65, 52, 49, 54, 128, 65, 52, 49, 53, 45, 86, 65, 83, 128,
+ 65, 52, 49, 53, 128, 65, 52, 49, 52, 45, 86, 65, 83, 128, 65, 52, 49, 52,
+ 128, 65, 52, 49, 51, 45, 86, 65, 83, 128, 65, 52, 49, 51, 128, 65, 52,
+ 49, 50, 45, 86, 65, 83, 128, 65, 52, 49, 50, 128, 65, 52, 49, 49, 45, 86,
+ 65, 83, 128, 65, 52, 49, 49, 128, 65, 52, 49, 48, 193, 65, 52, 49, 48,
+ 45, 86, 65, 83, 128, 65, 52, 49, 176, 65, 52, 48, 57, 45, 86, 65, 83,
+ 128, 65, 52, 48, 57, 128, 65, 52, 48, 56, 45, 86, 65, 83, 128, 65, 52,
+ 48, 56, 128, 65, 52, 48, 55, 45, 86, 65, 83, 128, 65, 52, 48, 55, 128,
+ 65, 52, 48, 54, 45, 86, 65, 83, 128, 65, 52, 48, 54, 128, 65, 52, 48, 53,
+ 45, 86, 65, 83, 128, 65, 52, 48, 53, 128, 65, 52, 48, 52, 45, 86, 65, 83,
+ 128, 65, 52, 48, 52, 128, 65, 52, 48, 51, 45, 86, 65, 83, 128, 65, 52,
+ 48, 51, 128, 65, 52, 48, 50, 45, 86, 65, 83, 128, 65, 52, 48, 50, 128,
+ 65, 52, 48, 49, 45, 86, 65, 83, 128, 65, 52, 48, 49, 128, 65, 52, 48, 48,
+ 45, 86, 65, 83, 128, 65, 52, 48, 48, 128, 65, 51, 57, 57, 128, 65, 51,
+ 57, 56, 128, 65, 51, 57, 55, 128, 65, 51, 57, 54, 128, 65, 51, 57, 53,
+ 128, 65, 51, 57, 52, 128, 65, 51, 57, 179, 65, 51, 57, 50, 128, 65, 51,
+ 57, 49, 128, 65, 51, 57, 48, 128, 65, 51, 56, 57, 128, 65, 51, 56, 56,
+ 128, 65, 51, 56, 55, 128, 65, 51, 56, 54, 65, 128, 65, 51, 56, 54, 128,
+ 65, 51, 56, 53, 128, 65, 51, 56, 52, 128, 65, 51, 56, 51, 65, 128, 65,
+ 51, 56, 179, 65, 51, 56, 50, 128, 65, 51, 56, 49, 65, 128, 65, 51, 56,
+ 49, 128, 65, 51, 56, 48, 128, 65, 51, 55, 57, 128, 65, 51, 55, 56, 128,
+ 65, 51, 55, 55, 128, 65, 51, 55, 54, 128, 65, 51, 55, 53, 128, 65, 51,
+ 55, 52, 128, 65, 51, 55, 51, 128, 65, 51, 55, 50, 128, 65, 51, 55, 49,
+ 65, 128, 65, 51, 55, 49, 128, 65, 51, 55, 48, 128, 65, 51, 54, 57, 128,
+ 65, 51, 54, 56, 65, 128, 65, 51, 54, 56, 128, 65, 51, 54, 55, 128, 65,
+ 51, 54, 54, 128, 65, 51, 54, 53, 128, 65, 51, 54, 52, 65, 128, 65, 51,
+ 54, 52, 128, 65, 51, 54, 51, 128, 65, 51, 54, 50, 128, 65, 51, 54, 49,
+ 128, 65, 51, 54, 48, 128, 65, 51, 53, 57, 65, 128, 65, 51, 53, 57, 128,
+ 65, 51, 53, 56, 128, 65, 51, 53, 55, 128, 65, 51, 53, 54, 128, 65, 51,
+ 53, 53, 128, 65, 51, 53, 52, 128, 65, 51, 53, 51, 128, 65, 51, 53, 50,
+ 128, 65, 51, 53, 49, 128, 65, 51, 53, 48, 128, 65, 51, 52, 57, 128, 65,
+ 51, 52, 56, 128, 65, 51, 52, 55, 128, 65, 51, 52, 54, 128, 65, 51, 52,
+ 53, 128, 65, 51, 52, 52, 128, 65, 51, 52, 51, 128, 65, 51, 52, 50, 128,
+ 65, 51, 52, 49, 128, 65, 51, 52, 48, 128, 65, 51, 51, 57, 128, 65, 51,
+ 51, 56, 128, 65, 51, 51, 55, 128, 65, 51, 51, 54, 67, 128, 65, 51, 51,
+ 54, 66, 128, 65, 51, 51, 54, 65, 128, 65, 51, 51, 54, 128, 65, 51, 51,
+ 53, 128, 65, 51, 51, 52, 128, 65, 51, 51, 51, 128, 65, 51, 51, 50, 67,
+ 128, 65, 51, 51, 50, 66, 128, 65, 51, 51, 50, 65, 128, 65, 51, 51, 50,
+ 128, 65, 51, 51, 49, 128, 65, 51, 51, 48, 128, 65, 51, 50, 57, 65, 128,
+ 65, 51, 50, 57, 128, 65, 51, 50, 56, 128, 65, 51, 50, 55, 128, 65, 51,
+ 50, 54, 128, 65, 51, 50, 53, 128, 65, 51, 50, 52, 128, 65, 51, 50, 51,
+ 128, 65, 51, 50, 50, 128, 65, 51, 50, 49, 128, 65, 51, 50, 48, 128, 65,
+ 51, 49, 57, 128, 65, 51, 49, 56, 128, 65, 51, 49, 55, 128, 65, 51, 49,
+ 54, 128, 65, 51, 49, 53, 128, 65, 51, 49, 52, 128, 65, 51, 49, 51, 67,
+ 128, 65, 51, 49, 51, 66, 128, 65, 51, 49, 51, 65, 128, 65, 51, 49, 51,
+ 128, 65, 51, 49, 50, 128, 65, 51, 49, 49, 128, 65, 51, 49, 48, 128, 65,
+ 51, 48, 57, 67, 128, 65, 51, 48, 57, 66, 128, 65, 51, 48, 57, 65, 128,
+ 65, 51, 48, 57, 128, 65, 51, 48, 56, 128, 65, 51, 48, 55, 128, 65, 51,
+ 48, 54, 128, 65, 51, 48, 53, 128, 65, 51, 48, 52, 128, 65, 51, 48, 51,
+ 128, 65, 51, 48, 50, 128, 65, 51, 48, 49, 128, 65, 51, 48, 48, 128, 65,
+ 50, 57, 57, 65, 128, 65, 50, 57, 57, 128, 65, 50, 57, 56, 128, 65, 50,
+ 57, 55, 128, 65, 50, 57, 54, 128, 65, 50, 57, 53, 128, 65, 50, 57, 52,
+ 65, 128, 65, 50, 57, 52, 128, 65, 50, 57, 51, 128, 65, 50, 57, 50, 128,
+ 65, 50, 57, 49, 128, 65, 50, 57, 48, 128, 65, 50, 56, 57, 65, 128, 65,
+ 50, 56, 57, 128, 65, 50, 56, 56, 128, 65, 50, 56, 55, 128, 65, 50, 56,
+ 54, 128, 65, 50, 56, 53, 128, 65, 50, 56, 52, 128, 65, 50, 56, 51, 128,
+ 65, 50, 56, 50, 128, 65, 50, 56, 49, 128, 65, 50, 56, 48, 128, 65, 50,
+ 55, 57, 128, 65, 50, 55, 56, 128, 65, 50, 55, 55, 128, 65, 50, 55, 54,
+ 128, 65, 50, 55, 53, 128, 65, 50, 55, 52, 128, 65, 50, 55, 51, 128, 65,
+ 50, 55, 50, 128, 65, 50, 55, 49, 128, 65, 50, 55, 48, 128, 65, 50, 54,
+ 57, 128, 65, 50, 54, 56, 128, 65, 50, 54, 55, 65, 128, 65, 50, 54, 55,
+ 128, 65, 50, 54, 54, 128, 65, 50, 54, 53, 128, 65, 50, 54, 52, 128, 65,
+ 50, 54, 51, 128, 65, 50, 54, 50, 128, 65, 50, 54, 49, 128, 65, 50, 54,
+ 48, 128, 65, 50, 53, 57, 128, 65, 50, 53, 56, 128, 65, 50, 53, 55, 128,
+ 65, 50, 53, 54, 128, 65, 50, 53, 53, 128, 65, 50, 53, 52, 128, 65, 50,
+ 53, 51, 128, 65, 50, 53, 50, 128, 65, 50, 53, 49, 128, 65, 50, 53, 48,
+ 128, 65, 50, 52, 57, 128, 65, 50, 52, 56, 128, 65, 50, 52, 55, 128, 65,
+ 50, 52, 54, 128, 65, 50, 52, 53, 128, 65, 50, 52, 52, 128, 65, 50, 52,
+ 51, 128, 65, 50, 52, 50, 128, 65, 50, 52, 49, 128, 65, 50, 52, 48, 128,
+ 65, 50, 51, 57, 128, 65, 50, 51, 56, 128, 65, 50, 51, 55, 128, 65, 50,
+ 51, 54, 128, 65, 50, 51, 53, 128, 65, 50, 51, 52, 128, 65, 50, 51, 51,
+ 128, 65, 50, 51, 50, 128, 65, 50, 51, 49, 128, 65, 50, 51, 48, 128, 65,
+ 50, 50, 57, 128, 65, 50, 50, 56, 128, 65, 50, 50, 55, 65, 128, 65, 50,
+ 50, 55, 128, 65, 50, 50, 54, 128, 65, 50, 50, 53, 128, 65, 50, 50, 52,
+ 128, 65, 50, 50, 51, 128, 65, 50, 50, 50, 128, 65, 50, 50, 49, 128, 65,
+ 50, 50, 48, 128, 65, 50, 49, 57, 128, 65, 50, 49, 56, 128, 65, 50, 49,
+ 55, 128, 65, 50, 49, 54, 65, 128, 65, 50, 49, 54, 128, 65, 50, 49, 53,
+ 65, 128, 65, 50, 49, 53, 128, 65, 50, 49, 52, 128, 65, 50, 49, 51, 128,
+ 65, 50, 49, 50, 128, 65, 50, 49, 49, 128, 65, 50, 49, 48, 128, 65, 50,
+ 48, 57, 65, 128, 65, 50, 48, 57, 128, 65, 50, 48, 56, 128, 65, 50, 48,
+ 55, 65, 128, 65, 50, 48, 55, 128, 65, 50, 48, 54, 128, 65, 50, 48, 53,
+ 128, 65, 50, 48, 52, 128, 65, 50, 48, 51, 128, 65, 50, 48, 50, 66, 128,
+ 65, 50, 48, 50, 65, 128, 65, 50, 48, 50, 128, 65, 50, 48, 49, 128, 65,
+ 50, 48, 48, 128, 65, 49, 57, 57, 128, 65, 49, 57, 56, 128, 65, 49, 57,
+ 55, 128, 65, 49, 57, 54, 128, 65, 49, 57, 53, 128, 65, 49, 57, 52, 128,
+ 65, 49, 57, 51, 128, 65, 49, 57, 50, 128, 65, 49, 57, 49, 128, 65, 49,
+ 57, 48, 128, 65, 49, 56, 57, 128, 65, 49, 56, 56, 128, 65, 49, 56, 55,
+ 128, 65, 49, 56, 54, 128, 65, 49, 56, 53, 128, 65, 49, 56, 52, 128, 65,
+ 49, 56, 51, 128, 65, 49, 56, 50, 128, 65, 49, 56, 49, 128, 65, 49, 56,
+ 48, 128, 65, 49, 55, 57, 128, 65, 49, 55, 56, 128, 65, 49, 55, 55, 128,
+ 65, 49, 55, 54, 128, 65, 49, 55, 53, 128, 65, 49, 55, 52, 128, 65, 49,
+ 55, 51, 128, 65, 49, 55, 50, 128, 65, 49, 55, 49, 128, 65, 49, 55, 48,
+ 128, 65, 49, 54, 57, 128, 65, 49, 54, 56, 128, 65, 49, 54, 55, 128, 65,
+ 49, 54, 54, 128, 65, 49, 54, 53, 128, 65, 49, 54, 52, 128, 65, 49, 54,
+ 51, 128, 65, 49, 54, 50, 128, 65, 49, 54, 49, 128, 65, 49, 54, 48, 128,
+ 65, 49, 53, 57, 128, 65, 49, 53, 56, 128, 65, 49, 53, 55, 128, 65, 49,
+ 53, 54, 128, 65, 49, 53, 53, 128, 65, 49, 53, 52, 128, 65, 49, 53, 51,
+ 128, 65, 49, 53, 50, 128, 65, 49, 53, 49, 128, 65, 49, 53, 48, 128, 65,
+ 49, 52, 57, 128, 65, 49, 52, 56, 128, 65, 49, 52, 55, 128, 65, 49, 52,
+ 54, 128, 65, 49, 52, 53, 128, 65, 49, 52, 52, 128, 65, 49, 52, 51, 128,
+ 65, 49, 52, 50, 128, 65, 49, 52, 49, 128, 65, 49, 52, 48, 128, 65, 49,
+ 51, 57, 128, 65, 49, 51, 56, 128, 65, 49, 51, 55, 128, 65, 49, 51, 54,
+ 128, 65, 49, 51, 53, 65, 128, 65, 49, 51, 53, 128, 65, 49, 51, 52, 128,
+ 65, 49, 51, 51, 128, 65, 49, 51, 50, 128, 65, 49, 51, 49, 67, 128, 65,
+ 49, 51, 49, 128, 65, 49, 51, 48, 128, 65, 49, 50, 57, 128, 65, 49, 50,
+ 56, 128, 65, 49, 50, 55, 128, 65, 49, 50, 54, 128, 65, 49, 50, 53, 65,
+ 128, 65, 49, 50, 53, 128, 65, 49, 50, 52, 128, 65, 49, 50, 51, 128, 65,
+ 49, 50, 50, 128, 65, 49, 50, 49, 128, 65, 49, 50, 48, 66, 128, 65, 49,
+ 50, 48, 128, 65, 49, 49, 57, 128, 65, 49, 49, 56, 128, 65, 49, 49, 55,
+ 128, 65, 49, 49, 54, 128, 65, 49, 49, 53, 65, 128, 65, 49, 49, 53, 128,
+ 65, 49, 49, 52, 128, 65, 49, 49, 51, 128, 65, 49, 49, 50, 128, 65, 49,
+ 49, 49, 128, 65, 49, 49, 48, 66, 128, 65, 49, 49, 48, 65, 128, 65, 49,
+ 49, 48, 128, 65, 49, 48, 57, 128, 65, 49, 48, 56, 128, 65, 49, 48, 55,
+ 67, 128, 65, 49, 48, 55, 66, 128, 65, 49, 48, 55, 65, 128, 65, 49, 48,
+ 55, 128, 65, 49, 48, 54, 128, 65, 49, 48, 53, 66, 128, 65, 49, 48, 53,
+ 65, 128, 65, 49, 48, 53, 128, 65, 49, 48, 52, 67, 128, 65, 49, 48, 52,
+ 66, 128, 65, 49, 48, 52, 65, 128, 65, 49, 48, 52, 128, 65, 49, 48, 51,
+ 128, 65, 49, 48, 50, 65, 128, 65, 49, 48, 50, 128, 65, 49, 48, 49, 65,
+ 128, 65, 49, 48, 49, 128, 65, 49, 48, 48, 65, 128, 65, 49, 48, 48, 45,
+ 49, 48, 50, 128, 65, 49, 48, 48, 128, 65, 48, 57, 57, 128, 65, 48, 57,
+ 56, 65, 128, 65, 48, 57, 56, 128, 65, 48, 57, 55, 65, 128, 65, 48, 57,
+ 55, 128, 65, 48, 57, 54, 128, 65, 48, 57, 53, 128, 65, 48, 57, 52, 128,
+ 65, 48, 57, 51, 128, 65, 48, 57, 50, 128, 65, 48, 57, 49, 128, 65, 48,
+ 57, 48, 128, 65, 48, 56, 57, 128, 65, 48, 56, 56, 128, 65, 48, 56, 55,
+ 128, 65, 48, 56, 54, 128, 65, 48, 56, 53, 128, 65, 48, 56, 52, 128, 65,
+ 48, 56, 51, 128, 65, 48, 56, 50, 128, 65, 48, 56, 49, 128, 65, 48, 56,
+ 48, 128, 65, 48, 55, 57, 128, 65, 48, 55, 56, 128, 65, 48, 55, 55, 128,
+ 65, 48, 55, 54, 128, 65, 48, 55, 53, 128, 65, 48, 55, 52, 128, 65, 48,
+ 55, 51, 128, 65, 48, 55, 50, 128, 65, 48, 55, 49, 128, 65, 48, 55, 48,
+ 128, 65, 48, 54, 57, 128, 65, 48, 54, 56, 128, 65, 48, 54, 55, 128, 65,
+ 48, 54, 54, 67, 128, 65, 48, 54, 54, 66, 128, 65, 48, 54, 54, 65, 128,
+ 65, 48, 54, 54, 128, 65, 48, 54, 53, 128, 65, 48, 54, 52, 128, 65, 48,
+ 54, 51, 128, 65, 48, 54, 50, 128, 65, 48, 54, 49, 128, 65, 48, 54, 48,
+ 128, 65, 48, 53, 57, 128, 65, 48, 53, 56, 128, 65, 48, 53, 55, 128, 65,
+ 48, 53, 54, 128, 65, 48, 53, 53, 128, 65, 48, 53, 52, 128, 65, 48, 53,
+ 51, 128, 65, 48, 53, 50, 128, 65, 48, 53, 49, 128, 65, 48, 53, 48, 128,
+ 65, 48, 52, 57, 128, 65, 48, 52, 56, 128, 65, 48, 52, 55, 128, 65, 48,
+ 52, 54, 66, 128, 65, 48, 52, 54, 65, 128, 65, 48, 52, 54, 128, 65, 48,
+ 52, 53, 65, 128, 65, 48, 52, 53, 128, 65, 48, 52, 52, 128, 65, 48, 52,
+ 51, 65, 128, 65, 48, 52, 51, 128, 65, 48, 52, 50, 65, 128, 65, 48, 52,
+ 50, 128, 65, 48, 52, 49, 65, 128, 65, 48, 52, 49, 128, 65, 48, 52, 48,
+ 65, 128, 65, 48, 52, 48, 128, 65, 48, 51, 57, 65, 128, 65, 48, 51, 57,
+ 128, 65, 48, 51, 56, 128, 65, 48, 51, 55, 128, 65, 48, 51, 54, 128, 65,
+ 48, 51, 53, 128, 65, 48, 51, 52, 128, 65, 48, 51, 51, 128, 65, 48, 51,
+ 50, 65, 128, 65, 48, 50, 56, 66, 128, 65, 48, 50, 54, 65, 128, 65, 48,
+ 49, 55, 65, 128, 65, 48, 49, 52, 65, 128, 65, 48, 49, 48, 65, 128, 65,
+ 48, 48, 54, 66, 128, 65, 48, 48, 54, 65, 128, 65, 48, 48, 53, 65, 128,
+ 65, 45, 87, 79, 128, 65, 45, 69, 85, 128, 45, 85, 205, 45, 80, 72, 82,
+ 85, 128, 45, 75, 72, 89, 85, 196, 45, 75, 72, 89, 73, 76, 128, 45, 68,
+ 90, 85, 196, 45, 67, 72, 65, 210, 45, 67, 72, 65, 76, 128,
};
-static const unsigned int lexicon_offset[] = {
- 0, 0, 6, 11, 15, 19, 27, 34, 44, 49, 55, 64, 66, 69, 81, 89, 102, 108,
- 113, 118, 124, 129, 137, 146, 157, 162, 167, 170, 176, 180, 189, 195,
- 201, 207, 212, 220, 227, 235, 241, 250, 177, 253, 254, 262, 268, 273,
- 278, 282, 289, 296, 306, 312, 317, 322, 325, 331, 337, 340, 345, 351,
- 361, 366, 371, 376, 382, 384, 393, 400, 407, 409, 418, 349, 420, 428,
- 436, 438, 446, 447, 452, 455, 462, 464, 470, 477, 482, 490, 496, 503,
- 508, 515, 520, 523, 527, 533, 538, 548, 553, 560, 563, 571, 579, 588,
- 592, 596, 599, 603, 606, 611, 621, 628, 635, 642, 649, 654, 659, 668,
- 670, 679, 683, 690, 698, 702, 710, 714, 277, 723, 736, 740, 745, 750,
- 756, 758, 768, 771, 777, 782, 791, 795, 800, 804, 808, 813, 819, 823,
- 831, 834, 843, 852, 860, 868, 780, 879, 884, 889, 897, 904, 907, 917,
- 921, 925, 932, 935, 939, 946, 952, 633, 958, 961, 964, 967, 976, 980,
- 985, 988, 992, 998, 1003, 1006, 1009, 1014, 1020, 1029, 1032, 1037, 1046,
- 598, 1050, 1058, 1063, 1066, 1069, 1072, 1078, 1083, 1088, 1094, 1099,
- 1104, 1109, 1113, 1118, 1124, 1129, 1134, 1138, 1144, 1149, 1154, 1159,
- 1163, 1168, 1173, 1178, 1184, 1190, 1196, 1201, 1205, 1210, 1215, 1220,
- 1224, 1229, 1234, 1239, 1244, 1079, 1084, 1089, 1095, 1100, 1248, 1110,
- 1254, 1259, 1264, 1271, 1275, 1278, 1287, 1114, 1291, 1119, 1125, 1130,
- 1295, 1300, 1305, 1309, 1313, 1319, 1323, 1135, 1326, 1328, 1145, 1333,
- 1337, 1150, 1343, 1155, 1347, 1351, 1358, 1160, 1362, 1367, 1371, 1374,
- 1378, 1164, 1169, 1383, 1389, 1174, 1401, 1407, 1413, 1419, 1179, 1191,
- 1197, 1423, 1427, 1431, 1434, 1202, 1438, 1440, 1445, 1450, 1456, 1461,
- 1466, 1470, 1475, 1480, 1485, 1490, 1496, 1501, 1506, 1512, 1518, 1523,
- 1527, 1532, 1537, 1542, 1547, 1552, 1556, 1564, 1569, 1573, 1578, 1583,
- 1588, 1593, 1597, 1600, 1607, 1612, 1617, 1622, 1627, 1633, 1638, 1642,
- 1206, 1645, 1650, 1655, 1660, 1211, 1664, 1668, 1675, 1216, 1682, 1687,
- 1221, 1691, 1693, 1698, 1709, 1715, 1225, 1720, 1729, 1230, 1734, 1740,
- 1745, 1235, 1750, 1759, 1764, 1768, 1771, 1776, 1780, 1784, 1788, 1791,
- 1795, 1240, 1800, 1245, 1804, 1806, 1812, 1818, 1824, 1830, 1836, 1842,
- 1848, 1854, 1859, 1865, 1871, 1877, 1883, 1889, 1895, 1901, 1907, 1913,
- 1918, 1923, 1928, 1933, 1938, 1943, 1948, 1953, 1958, 1963, 1969, 1974,
- 1980, 1985, 1991, 1997, 2002, 2008, 2014, 2020, 2026, 2031, 2036, 2038,
- 2039, 2043, 2047, 2052, 2056, 2060, 2064, 2069, 2073, 2076, 2081, 2085,
- 2090, 2094, 2098, 2103, 2107, 2110, 2114, 2120, 2134, 2138, 2142, 2146,
- 2149, 2154, 2158, 2162, 2165, 2169, 2174, 2179, 2184, 2189, 2193, 2197,
- 2201, 2205, 2209, 2214, 2218, 2223, 2227, 2232, 2238, 2245, 2251, 2256,
- 2261, 2266, 2272, 2277, 2283, 2288, 2293, 2298, 2303, 2308, 2311, 2313,
- 1096, 2317, 2324, 2332, 2342, 2351, 2365, 2369, 2373, 2378, 2391, 2399,
- 2402, 2406, 2409, 2414, 2418, 2421, 2425, 2429, 2434, 1704, 2439, 2443,
- 2446, 2450, 2456, 2463, 2470, 2476, 2481, 2486, 2492, 2498, 2503, 2508,
- 2513, 2518, 2523, 2528, 2453, 2533, 1695, 2535, 2541, 2545, 2550, 2554,
- 2558, 1603, 1717, 2563, 2567, 2571, 2574, 2579, 2584, 2589, 2594, 2598,
- 2605, 2610, 2613, 2617, 2621, 2628, 2634, 2638, 2644, 2648, 2652, 2657,
- 2664, 2669, 2674, 2681, 2687, 2693, 2699, 2720, 2734, 2751, 2766, 2782,
- 2799, 2814, 2823, 2828, 2832, 2837, 2842, 2846, 2858, 2865, 2871, 2241,
- 2877, 2884, 2890, 2894, 2897, 2904, 2910, 2915, 2919, 2924, 2928, 2932,
- 2061, 2936, 2941, 2946, 2950, 2955, 2963, 2967, 2974, 2979, 2983, 2987,
- 2991, 2996, 3001, 3006, 3010, 3015, 3020, 3024, 3029, 3034, 3038, 3041,
- 3045, 3049, 3057, 3062, 3066, 3070, 3076, 3085, 3089, 3093, 3099, 3104,
- 3111, 3115, 3125, 3129, 3133, 3138, 3142, 3147, 3153, 3158, 3162, 3166,
- 3170, 2466, 3178, 3183, 3189, 3194, 3198, 3203, 3208, 3212, 3218, 3223,
- 2065, 3229, 3235, 3240, 3245, 3250, 3255, 3260, 3265, 3270, 3275, 3280,
- 3285, 3290, 3295, 3300, 3305, 3311, 3316, 1111, 101, 3322, 3326, 3330,
- 3334, 3339, 3343, 3347, 3353, 3358, 3362, 3366, 3371, 3376, 3380, 3385,
- 3389, 3392, 3396, 3401, 3405, 3410, 3414, 3417, 3419, 3423, 3427, 3432,
- 3436, 3439, 3452, 3456, 3460, 3464, 3469, 3473, 3477, 3480, 3484, 3488,
- 3493, 3497, 3502, 3507, 3512, 3516, 3523, 3528, 3531, 3537, 3540, 3545,
- 3551, 3555, 3559, 3562, 3567, 3571, 3576, 3580, 3584, 3587, 3593, 3598,
- 3603, 3609, 3614, 3619, 3625, 3631, 3636, 3641, 3646, 3651, 978, 605,
- 3654, 3657, 3662, 3666, 3670, 3674, 3678, 3681, 3685, 3690, 3695, 3699,
- 3704, 3708, 3713, 3717, 3721, 3725, 3731, 3737, 3740, 3743, 150, 3749,
- 3754, 3763, 3771, 3780, 3790, 3797, 3803, 3810, 3815, 3819, 3823, 3831,
- 3838, 3843, 3848, 3855, 3860, 3864, 3874, 3878, 3882, 3887, 3892, 3902,
- 2077, 3907, 3911, 3914, 3920, 3925, 3931, 3937, 3942, 3949, 3953, 3957,
- 3961, 3966, 3971, 3976, 3981, 3986, 3991, 600, 597, 1272, 3996, 4003,
- 4010, 4016, 4021, 4028, 4035, 4040, 4046, 4052, 4057, 4061, 4067, 4074,
- 4079, 4083, 4087, 2086, 4093, 4101, 4107, 4115, 838, 4121, 4129, 4140,
- 4144, 4154, 4160, 4165, 4170, 4175, 4180, 2091, 4185, 4190, 4205, 4211,
- 4218, 4229, 4239, 4245, 4250, 4256, 4262, 4265, 4268, 4272, 4277, 4280,
- 4287, 4296, 4301, 4305, 4309, 4313, 4317, 4322, 4328, 4339, 4343, 3397,
- 4348, 4360, 4366, 4374, 4378, 4383, 4390, 4395, 4400, 4405, 1472, 4410,
- 4413, 4416, 4420, 4423, 4429, 4433, 4447, 4451, 4454, 4458, 4464, 4470,
- 4475, 4479, 4483, 4489, 4500, 4506, 4511, 4517, 4521, 4529, 4541, 4551,
- 4557, 4562, 4571, 4579, 4586, 4592, 4598, 4602, 4608, 4617, 4626, 4631,
- 4637, 4641, 4650, 4655, 4659, 4664, 4668, 4676, 4682, 4686, 4693, 4698,
- 4702, 4708, 2099, 4714, 4719, 4724, 4729, 4734, 1288, 4739, 4744, 4750,
- 4755, 4760, 4765, 4770, 4775, 4780, 4786, 4791, 4797, 4802, 4807, 4812,
- 4818, 4823, 4828, 4833, 4838, 4844, 4849, 4855, 4860, 4865, 4870, 4875,
- 4880, 4885, 4891, 4896, 4901, 329, 370, 4906, 4912, 4916, 4920, 4925,
- 4929, 4933, 4936, 4940, 4944, 4947, 4951, 4955, 4959, 4964, 4968, 4972,
- 4978, 4987, 4711, 4992, 4996, 4999, 5004, 5009, 5014, 5019, 5024, 5029,
- 5034, 5039, 5044, 5049, 5053, 5058, 5063, 5068, 5073, 5078, 5083, 5088,
- 5093, 5098, 5103, 5107, 5112, 5117, 5122, 5127, 5132, 5137, 5142, 5147,
- 5152, 5157, 5161, 5166, 5171, 5176, 5181, 5186, 5191, 5196, 5201, 5206,
- 5211, 5215, 5220, 5225, 5230, 5235, 5240, 5245, 5250, 5255, 5260, 5265,
- 5269, 5274, 5279, 5284, 5289, 5294, 5299, 5304, 5309, 5314, 5319, 5323,
- 5328, 5333, 5338, 5343, 5348, 5353, 5358, 5363, 5368, 5373, 5377, 5382,
- 5387, 5392, 5397, 5403, 5409, 5415, 5421, 5427, 5433, 5439, 5444, 5450,
- 5456, 5462, 5468, 5474, 5480, 5486, 5492, 5498, 5504, 5509, 5515, 5521,
- 5527, 5533, 5539, 5545, 5551, 5557, 5563, 5569, 5574, 5580, 5586, 5592,
- 5598, 5604, 5610, 5616, 5622, 5628, 5634, 5639, 5645, 5651, 5657, 5663,
- 5669, 5675, 5681, 5687, 5693, 5699, 5704, 5710, 5716, 5722, 5728, 5734,
- 5740, 5746, 5752, 5758, 5764, 5769, 5773, 5779, 5785, 5791, 5797, 5803,
- 5809, 5815, 5821, 5827, 5833, 5838, 5844, 5850, 5856, 5862, 5868, 5874,
- 5880, 5886, 5892, 5898, 5903, 5909, 5915, 5921, 5927, 5933, 5939, 5945,
- 5951, 5957, 5963, 5968, 5974, 5980, 5986, 5992, 5998, 6004, 6010, 6016,
- 6022, 6028, 6033, 6039, 6045, 6051, 6057, 6063, 6069, 6075, 6081, 6087,
- 6093, 6098, 6104, 6110, 6116, 6122, 6128, 6134, 6140, 6146, 6152, 6158,
- 6163, 6169, 6175, 6181, 6187, 6193, 6199, 6205, 6211, 6217, 6223, 6228,
- 6234, 6240, 6246, 6252, 6258, 6264, 6270, 6276, 6282, 6288, 6293, 6299,
- 6305, 6311, 6317, 6323, 6329, 6335, 6341, 6347, 6353, 6358, 6364, 6370,
- 6376, 6382, 6388, 6394, 6400, 6406, 6412, 6418, 6423, 6427, 6430, 6437,
- 6441, 6454, 6458, 6462, 6466, 6469, 6473, 6478, 6482, 6491, 6495, 6501,
- 6508, 6519, 6527, 6534, 6540, 6544, 6552, 6561, 6567, 6571, 6583, 6588,
- 6591, 6596, 6600, 6610, 6618, 6626, 6632, 6636, 6646, 6656, 6664, 6671,
- 6678, 6684, 6690, 6697, 6701, 6708, 6718, 6728, 6736, 6743, 6748, 6752,
- 6756, 6764, 6768, 6778, 6783, 6790, 6798, 6808, 6813, 6817, 6822, 6826,
- 6833, 6838, 6852, 6857, 6862, 6869, 3667, 6878, 6882, 6886, 6891, 6895,
- 6899, 6902, 6907, 6912, 6921, 6927, 6933, 6938, 6944, 6948, 6959, 6969,
- 6984, 6999, 7014, 7029, 7044, 7059, 7074, 7089, 7104, 7119, 7134, 7149,
- 7164, 7179, 7194, 7209, 7224, 7239, 7254, 7269, 7284, 7299, 7314, 7329,
- 7344, 7359, 7374, 7389, 7404, 7419, 7434, 7449, 7464, 7479, 7494, 7509,
- 7524, 7539, 7554, 7569, 7584, 7599, 7614, 7629, 7644, 7659, 7674, 7689,
- 7704, 7713, 7722, 7727, 7733, 7743, 7747, 7751, 7756, 7761, 7766, 7774,
- 7778, 7781, 7785, 3120, 7788, 7793, 348, 551, 7799, 7807, 7811, 7815,
- 7818, 7822, 7828, 7832, 7840, 7846, 7851, 7858, 7866, 7873, 7879, 7884,
- 7891, 7897, 7906, 7914, 7918, 7923, 7931, 7943, 7954, 7961, 7972, 7976,
- 7980, 7984, 7987, 7993, 3424, 7997, 7999, 8005, 8010, 8015, 8020, 8026,
- 8031, 8036, 8041, 8046, 8052, 8057, 8062, 8068, 8073, 8079, 8084, 8090,
- 8095, 8101, 8106, 8111, 8116, 8121, 8126, 8132, 8137, 8142, 8147, 8153,
- 8159, 8165, 8171, 8177, 8183, 8189, 8195, 8201, 8207, 8213, 8219, 8224,
- 8229, 8234, 8239, 8244, 8249, 8254, 8259, 8265, 8271, 8276, 8282, 8288,
- 8294, 8299, 8304, 8309, 8314, 8320, 8326, 8331, 8336, 8341, 8346, 8351,
- 8357, 8362, 8368, 8374, 8380, 8386, 8392, 8398, 8404, 8410, 8416, 2108,
- 7817, 8421, 8425, 8433, 8437, 8440, 8447, 8450, 8454, 8462, 8467, 8472,
- 8463, 8477, 2135, 8481, 8487, 8493, 8498, 8503, 8510, 8518, 8523, 8527,
- 8530, 8534, 8540, 8546, 8550, 1647, 594, 8553, 8557, 8562, 8568, 8573,
- 8577, 8580, 8584, 8590, 8595, 8599, 8606, 8610, 8614, 8618, 779, 8621,
- 8623, 8631, 8638, 8645, 8651, 8658, 8666, 8673, 8684, 8691, 8697, 8709,
- 1131, 1296, 1301, 8720, 8724, 1306, 8728, 8732, 8741, 8749, 8753, 8762,
- 8768, 8774, 8779, 8783, 8789, 8794, 8802, 8809, 2819, 8816, 8822, 8826,
- 8835, 8844, 8853, 8862, 8868, 8873, 8878, 8889, 8898, 8910, 8915, 8923,
- 2194, 8927, 8929, 8934, 8938, 8947, 8955, 1310, 165, 3709, 3714, 8961,
- 8965, 8974, 8980, 8985, 8988, 8997, 2206, 9003, 2811, 9007, 9015, 9019,
- 9023, 9027, 9031, 2215, 9035, 9040, 9047, 9053, 9059, 9062, 9064, 9067,
- 9075, 9083, 9091, 9094, 9099, 2228, 9104, 8474, 9107, 9109, 9114, 9119,
- 9124, 9129, 9134, 9139, 9144, 9149, 9154, 9159, 9165, 9170, 9175, 9180,
- 9186, 9191, 9196, 9201, 9206, 9211, 9216, 9222, 9227, 9232, 9237, 9242,
- 9247, 9252, 9257, 9262, 9267, 9272, 9277, 9282, 9287, 9292, 9297, 9302,
- 9307, 9313, 9319, 9324, 9329, 9334, 9339, 9344, 2239, 2246, 2252, 9349,
- 9357, 9363, 9371, 2278, 2284, 9379, 2289, 2294, 2299, 2304, 9383, 9387,
- 9392, 9396, 9400, 9404, 9409, 9413, 9418, 9422, 9425, 9428, 9434, 9441,
- 9447, 9454, 9460, 9467, 9473, 9480, 9486, 9492, 9501, 9507, 9511, 9515,
- 9519, 9523, 9528, 9532, 9537, 9541, 9547, 9551, 9556, 9563, 9574, 9582,
- 9592, 9598, 9608, 9617, 9624, 9629, 9633, 9644, 9654, 9667, 9678, 9691,
- 9702, 9714, 9726, 9738, 9749, 9762, 9775, 9782, 9788, 9799, 9809, 9823,
- 9830, 9836, 9845, 9853, 9857, 9862, 9866, 9873, 9881, 9888, 9892, 9898,
- 9902, 9908, 9918, 9922, 9927, 9932, 9939, 9945, 8653, 9955, 9959, 9966,
- 9972, 9979, 9986, 9990, 9993, 9999, 10003, 10008, 10013, 10018, 10022,
- 10028, 10036, 10043, 10049, 10053, 10056, 10062, 10072, 10076, 10082,
- 10087, 10091, 10096, 10100, 10106, 10112, 10117, 10123, 10128, 10133,
- 10138, 2131, 10143, 10145, 10150, 10158, 10167, 10171, 10177, 10182,
- 10187, 10192, 10197, 10203, 10208, 10213, 4485, 10218, 10223, 10227,
- 10233, 10238, 10244, 10249, 10254, 10260, 10265, 10172, 10271, 10275,
- 10282, 10288, 10293, 10297, 6848, 10302, 10311, 10316, 10321, 9043, 9050,
- 10326, 2993, 10330, 10335, 10340, 10345, 10183, 10349, 10354, 10359,
- 10188, 10363, 10193, 10368, 10375, 10382, 10388, 10395, 10401, 10407,
- 10412, 10419, 10424, 10429, 10434, 10440, 10198, 10204, 10446, 10452,
- 10457, 10462, 10470, 10209, 10475, 10478, 10480, 10488, 10494, 10500,
- 10509, 10517, 10525, 10533, 10541, 10549, 10557, 10565, 10573, 10582,
- 10591, 10599, 10608, 10617, 10626, 10635, 10644, 10653, 10662, 10671,
- 10680, 10689, 10697, 10702, 10706, 10712, 10720, 10727, 10742, 10759,
- 10778, 10787, 10795, 10810, 10821, 10829, 10839, 10849, 10857, 10863,
- 10875, 10884, 10892, 10899, 10906, 10913, 10919, 10924, 10934, 10942,
- 10952, 10959, 10969, 10979, 10989, 10997, 11004, 11013, 11023, 11037,
- 11052, 11061, 11069, 11074, 11078, 11087, 11093, 11098, 11108, 11118,
- 11128, 11133, 11137, 11147, 11156, 11161, 11177, 11194, 11204, 11209,
- 11220, 11233, 11244, 11252, 11265, 11277, 11285, 11290, 11294, 11300,
- 11305, 11313, 11321, 11328, 11339, 11344, 11352, 11362, 11368, 11372,
- 11375, 11379, 11385, 11392, 11396, 11404, 11413, 11421, 11428, 11433,
- 11438, 11442, 11446, 11454, 11469, 11485, 11491, 11499, 11508, 11516,
- 11522, 11526, 11533, 11544, 11548, 11551, 11562, 11568, 11573, 10214,
- 11581, 11587, 11594, 11600, 11605, 11612, 11619, 11626, 11633, 11640,
- 11647, 11654, 11661, 11668, 11675, 11682, 11689, 11696, 11703, 11710,
- 11715, 10755, 11720, 11726, 11733, 11740, 11745, 11752, 11761, 11765,
- 11777, 11781, 11787, 11792, 11797, 11802, 11807, 11812, 11817, 11820,
- 11824, 11828, 11832, 11836, 11842, 11848, 11853, 11859, 11864, 11869,
- 11875, 11880, 11885, 9935, 11890, 11894, 11898, 11902, 11907, 11912,
- 11917, 11925, 11931, 11936, 11940, 11944, 11951, 11956, 11964, 11971,
- 11976, 11980, 11983, 11989, 11996, 12000, 12003, 12008, 12012, 4524,
- 12018, 12027, 46, 12035, 12041, 12046, 12051, 12059, 12066, 12071, 6773,
- 12077, 12083, 12088, 12092, 12095, 12110, 12129, 12141, 12154, 12167,
- 12180, 12194, 12207, 12222, 12229, 10219, 12235, 12249, 12254, 12260,
- 12265, 12273, 12278, 8831, 12283, 12286, 12294, 12301, 12306, 12310,
- 12316, 12320, 12325, 12330, 12335, 12340, 12345, 12350, 2998, 10837,
- 12355, 12359, 12365, 12371, 12376, 12382, 12387, 10228, 12393, 12399,
- 12404, 12409, 12417, 12423, 12436, 12444, 12451, 12457, 10234, 12463,
- 12471, 12479, 12486, 12499, 12512, 12524, 12534, 12546, 12574, 12582,
- 12591, 12598, 12610, 12617, 12627, 12636, 12644, 12651, 12656, 12662,
- 10239, 12667, 12673, 12678, 12683, 12688, 10245, 12693, 12696, 12703,
- 12709, 12723, 12736, 12747, 9567, 12758, 12764, 12773, 12781, 12788,
- 12794, 12805, 12811, 12816, 12824, 4012, 12830, 12835, 12102, 12841,
- 12848, 12853, 10250, 12859, 12864, 12871, 12877, 12883, 12888, 12896,
- 12904, 12911, 12915, 12927, 12941, 12951, 12956, 12960, 12971, 12977,
- 12982, 12987, 10255, 12991, 10261, 12996, 12999, 13004, 13016, 13023,
- 13028, 13032, 13040, 13045, 13049, 13054, 13058, 13065, 13071, 10266,
- 10173, 13078, 3003, 17, 13085, 13090, 13094, 13098, 13104, 13112, 13122,
- 13127, 13132, 13139, 13146, 13150, 13161, 13171, 13180, 13189, 13201,
- 13206, 13210, 13218, 13232, 13236, 13239, 13243, 13251, 13258, 13266,
- 13270, 13281, 13289, 13293, 13300, 13305, 13309, 13315, 13320, 13326,
- 13331, 13336, 13340, 13346, 13351, 13362, 13366, 13369, 13375, 13382,
- 13388, 13393, 13399, 13405, 13412, 13423, 13433, 13443, 13452, 13459,
- 13468, 13472, 10276, 10283, 10289, 10294, 13478, 13484, 13490, 13495,
- 13501, 10298, 13507, 13510, 13517, 13522, 13527, 13542, 13558, 13573,
- 13581, 13586, 13593, 13599, 13603, 13608, 13613, 13618, 13623, 13628,
- 13633, 13638, 13643, 13648, 1561, 374, 13653, 13661, 13668, 13674, 13679,
- 13684, 10303, 13686, 13690, 13695, 13699, 13709, 13714, 13718, 13721,
- 13730, 13734, 13737, 13744, 10312, 13749, 13752, 13760, 13767, 13775,
- 13779, 13785, 13789, 13796, 13805, 13812, 13808, 13819, 13823, 13829,
- 13833, 13837, 13841, 13847, 13857, 13865, 13872, 13876, 13884, 13889,
- 13893, 13900, 13905, 13912, 13916, 13921, 13926, 13930, 13937, 13943,
- 13951, 13957, 13962, 13972, 13979, 13984, 13989, 13993, 13997, 14005,
- 4354, 14013, 14018, 10317, 14022, 14029, 14033, 14036, 14044, 14051,
- 14055, 6628, 14059, 14064, 14069, 14073, 14084, 14094, 14099, 14105,
- 14110, 14114, 14117, 14125, 14130, 14135, 14142, 14147, 10322, 14152,
- 14156, 14163, 14168, 14173, 14178, 6796, 14183, 14188, 14193, 14198,
- 14204, 14209, 14215, 14220, 14225, 14230, 14235, 14240, 14245, 14250,
- 14255, 14260, 14265, 14270, 14275, 14280, 14285, 14290, 14295, 14301,
- 14306, 14311, 14316, 14321, 14326, 14332, 14337, 14342, 14348, 14353,
- 14359, 14364, 14370, 14375, 14380, 14385, 14390, 14396, 14401, 14406,
- 14411, 14419, 996, 112, 14425, 14429, 14434, 14439, 14443, 14447, 14451,
- 14456, 14460, 14465, 14469, 14472, 14476, 14480, 14486, 14491, 14501,
- 14507, 14515, 14521, 14525, 14529, 14536, 14544, 14553, 14564, 14574,
- 14581, 14588, 14592, 14601, 14610, 14618, 14625, 14634, 14643, 14652,
- 14661, 14671, 14681, 14691, 14701, 14711, 14720, 14730, 14740, 14750,
- 14760, 14770, 14780, 14790, 14799, 14809, 14819, 14829, 14839, 14849,
- 14859, 14868, 14878, 14888, 14898, 14908, 14918, 14928, 14938, 14948,
- 14958, 14967, 14977, 14987, 14997, 15007, 15017, 15027, 15037, 15047,
- 15057, 15067, 15076, 15082, 1140, 15086, 15089, 15093, 15098, 15105,
- 15111, 15116, 15120, 15125, 15134, 15143, 15151, 15156, 15160, 15164,
- 15170, 15175, 15181, 10331, 15186, 15191, 15200, 15205, 10341, 15210,
- 15213, 15219, 15227, 10346, 15234, 15238, 15242, 15247, 15251, 15261,
- 15267, 15273, 15278, 15287, 15295, 15302, 15309, 15314, 15321, 15326,
- 15330, 15333, 15344, 15354, 15367, 15376, 15384, 15395, 15407, 15417,
- 15427, 15432, 15436, 15441, 15446, 15450, 15456, 15464, 15471, 15482,
- 15487, 15497, 15506, 15510, 15513, 15520, 15530, 15539, 15546, 15550,
- 15557, 15563, 15568, 15573, 15577, 15129, 15586, 15590, 15596, 15600,
- 15605, 15609, 15616, 15623, 15627, 15636, 15644, 15652, 15659, 15667,
- 15679, 15690, 15700, 15707, 15713, 15722, 15733, 15742, 15754, 15766,
- 15778, 15788, 15797, 15807, 15816, 15824, 15831, 15840, 15848, 15852,
- 15857, 15863, 15869, 15874, 15879, 15883, 15888, 15893, 15898, 15903,
- 15908, 15913, 15918, 8495, 15923, 15925, 15929, 15934, 15940, 15947,
- 15953, 15959, 15968, 15972, 15978, 15986, 15993, 16002, 16011, 16020,
- 16029, 16038, 16047, 16056, 16065, 16075, 16085, 16094, 16100, 16107,
- 16114, 16120, 16134, 16140, 16147, 16155, 16164, 16172, 16178, 16187,
- 16196, 16207, 16213, 16223, 16231, 16238, 16246, 16255, 16268, 16277,
- 16285, 16292, 16305, 16311, 16317, 16327, 16336, 16345, 16350, 16354,
- 16360, 16366, 16371, 16378, 16385, 9949, 16390, 16395, 16402, 16410,
- 16415, 16427, 16434, 16439, 16451, 14482, 16456, 16462, 16470, 16476,
- 16481, 16489, 16497, 16504, 16512, 16518, 16526, 16534, 16540, 16548,
- 16554, 16559, 16565, 16572, 16578, 16583, 16587, 16598, 16606, 16614,
- 16620, 16625, 16632, 16641, 16647, 16652, 16660, 16667, 16676, 16690,
- 4298, 16694, 16699, 16704, 16710, 16715, 16720, 16724, 16729, 16734,
- 16739, 8494, 16744, 16749, 16754, 16759, 16764, 16768, 16773, 16778,
- 16783, 16788, 16794, 16800, 13781, 16805, 16811, 16816, 16821, 16826,
- 10350, 16831, 16836, 16841, 16846, 16851, 16865, 16882, 16900, 16912,
- 16925, 16942, 16958, 16975, 16985, 17004, 17015, 17026, 17037, 2708,
- 17048, 17059, 17070, 17087, 17098, 17109, 17114, 10355, 17119, 17123,
- 2388, 17127, 17130, 17136, 17144, 17152, 17158, 17167, 17174, 17179,
- 17187, 17195, 17202, 17206, 17211, 17217, 17224, 17232, 17239, 17251,
- 17258, 17264, 17272, 17277, 17283, 17289, 17294, 13536, 17301, 17310,
- 17316, 17321, 17329, 17338, 17346, 17353, 17359, 17367, 17374, 17380,
- 17386, 17393, 17400, 17406, 17412, 17421, 17429, 17434, 17444, 17451,
- 17457, 17465, 17471, 17479, 17487, 17494, 17507, 17514, 17523, 17532,
- 17541, 17549, 17559, 17566, 17571, 3868, 17578, 17583, 1256, 17587,
- 17594, 16745, 17598, 17604, 17608, 17616, 17628, 17633, 17640, 17646,
- 17651, 17658, 16750, 17662, 17666, 17670, 16755, 17674, 16760, 17678,
- 17685, 17690, 17694, 17701, 17705, 17713, 17720, 17725, 17733, 17737,
- 17744, 17761, 17770, 17779, 17783, 17786, 17792, 17800, 17806, 17811,
- 17815, 17820, 17825, 17830, 17835, 17840, 17845, 3946, 17850, 17852,
- 17860, 17867, 17877, 17889, 17894, 17898, 17904, 17909, 17917, 17921,
- 17927, 17932, 17938, 17941, 17948, 17956, 17963, 17969, 17974, 17980,
- 17985, 17992, 17998, 18003, 18010, 18015, 18019, 18025, 18031, 18035,
- 18042, 18048, 18053, 18059, 18067, 18075, 18082, 18088, 18093, 18099,
- 18105, 18113, 18118, 18123, 18131, 18137, 18143, 18148, 18155, 18160,
- 18164, 18170, 18176, 18181, 18188, 18193, 18199, 18202, 18208, 18219,
- 18225, 18228, 18232, 18236, 18250, 18263, 18275, 18281, 18286, 18293,
- 18299, 18305, 18316, 18328, 18340, 18350, 18359, 18367, 18374, 18385,
- 18395, 18405, 18413, 18416, 16774, 18421, 18426, 16779, 16930, 18434,
- 18447, 18462, 18473, 16947, 18491, 18504, 18517, 18528, 12117, 18539,
- 18552, 18571, 18582, 18593, 18604, 2729, 18617, 18621, 18629, 18640,
- 18651, 18659, 18674, 18689, 18700, 18707, 18713, 18721, 18725, 18731,
- 18735, 18738, 18751, 18763, 18773, 18781, 18788, 18796, 18806, 18811,
- 18818, 18823, 18830, 18841, 18851, 18857, 18862, 18867, 16784, 18871,
- 18877, 18883, 18888, 18893, 18898, 18902, 16789, 16795, 18906, 16801,
- 18911, 18919, 18924, 18928, 18935, 18943, 18950, 18959, 18966, 18970,
- 18974, 18979, 18984, 18989, 18994, 18999, 10194, 19004, 19006, 19011,
- 19016, 19022, 19027, 19032, 19037, 19042, 19046, 19052, 19058, 19063,
- 19069, 19074, 19079, 19083, 19089, 19094, 19098, 19103, 19108, 19120,
- 19125, 19131, 19136, 19141, 19147, 19153, 19158, 19163, 19168, 19175,
- 19181, 19192, 19199, 19208, 19213, 19217, 275, 19221, 19229, 19234,
- 19240, 19247, 19254, 19260, 19265, 19270, 19275, 19282, 19292, 19300,
- 19305, 19310, 19317, 19323, 19332, 19342, 19352, 19366, 19380, 19394,
- 19408, 19423, 19438, 19455, 19473, 19486, 19492, 19497, 19502, 19506,
- 19514, 19519, 19527, 19533, 19539, 19544, 19549, 19553, 19559, 19564,
- 19568, 19575, 19580, 19584, 19595, 19601, 19606, 19611, 19618, 19623,
- 19627, 3826, 19632, 19638, 19645, 16806, 19651, 19655, 19661, 19666,
- 19671, 19675, 19681, 19686, 19691, 19698, 19703, 15263, 19707, 19712,
- 19716, 19721, 19727, 19733, 19740, 19750, 19758, 19765, 19770, 19774,
- 19783, 19791, 19798, 19805, 19811, 19816, 19822, 19827, 19832, 19838,
- 19843, 19849, 19854, 19860, 19866, 19873, 19879, 19884, 19889, 10420,
- 19898, 19901, 19909, 19915, 19920, 19925, 19935, 19942, 19948, 19953,
- 19958, 19964, 19969, 19975, 19980, 19986, 19993, 19999, 20005, 20010,
- 20018, 20025, 20030, 20035, 20041, 20046, 20050, 20059, 20070, 20077,
- 20084, 20092, 20099, 20106, 20111, 20116, 20122, 20127, 20135, 20141,
- 20147, 20152, 20159, 20165, 20170, 20174, 20180, 20185, 20190, 20194,
- 20199, 1329, 8519, 3017, 20203, 20207, 20211, 20215, 20219, 20223, 20226,
- 20231, 20238, 20246, 20256, 20267, 20277, 20288, 20300, 20311, 20321,
- 20332, 20344, 20355, 20367, 20380, 20392, 20403, 20413, 20424, 20436,
- 20447, 20460, 20472, 20483, 20495, 20508, 20520, 20533, 20547, 20560,
- 20572, 20583, 20593, 20604, 20616, 20627, 20639, 20652, 20664, 20675,
- 20687, 20700, 20713, 20727, 20740, 20752, 20763, 20775, 20788, 20800,
- 20813, 20827, 20840, 20852, 20865, 20879, 20892, 20906, 20920, 20933,
- 20945, 20956, 20966, 16817, 20973, 20979, 20989, 20997, 21004, 21012,
- 21022, 21031, 21044, 21049, 21054, 21062, 21069, 15372, 15381, 21076,
- 21086, 21101, 21107, 21114, 21121, 21128, 21134, 21140, 21151, 21159,
- 21167, 21177, 21187, 21196, 16822, 21205, 21211, 21217, 21226, 21234,
- 21242, 21247, 21256, 21264, 21276, 21286, 21296, 21306, 21315, 21327,
- 21337, 21347, 21358, 21365, 21370, 21377, 21389, 21401, 21413, 21425,
- 21437, 21449, 21461, 21473, 21485, 21497, 21508, 21520, 21532, 21544,
- 21556, 21568, 21580, 21592, 21604, 21616, 21628, 21639, 21651, 21663,
- 21675, 21687, 21699, 21711, 21723, 21735, 21747, 21759, 21770, 21782,
- 21794, 21806, 21818, 21830, 21842, 21854, 21866, 21878, 21890, 21901,
- 21913, 21925, 21937, 21949, 21961, 21973, 21985, 21997, 22009, 22021,
- 22032, 22044, 22056, 22068, 22080, 22092, 22104, 22116, 22128, 22140,
- 22152, 22163, 22175, 22187, 22199, 22211, 22223, 22235, 22247, 22259,
- 22271, 22283, 22294, 22306, 22318, 22330, 22342, 22355, 22368, 22381,
- 22394, 22407, 22420, 22433, 22445, 22458, 22471, 22484, 22497, 22510,
- 22523, 22536, 22549, 22562, 22575, 22587, 22600, 22613, 22626, 22639,
- 22652, 22665, 22678, 22691, 22704, 22717, 22729, 22742, 22755, 22768,
- 22781, 22794, 22807, 22820, 22833, 22846, 22859, 22871, 22884, 22897,
- 22910, 22923, 22936, 22949, 22962, 22975, 22988, 23001, 23013, 23026,
- 23039, 23052, 23065, 23078, 23091, 23104, 23117, 23130, 23143, 23155,
- 23166, 23179, 23192, 23205, 23218, 23231, 23244, 23257, 23270, 23283,
- 23296, 23308, 23321, 23334, 23347, 23360, 23373, 23386, 23399, 23412,
- 23425, 23438, 23450, 23463, 23476, 23489, 23502, 23515, 23528, 23541,
- 23554, 23567, 23580, 23592, 23605, 23618, 23631, 23644, 23657, 23670,
- 23683, 23696, 23709, 23722, 23734, 23747, 23760, 23773, 23786, 23799,
- 23812, 23825, 23838, 23851, 23864, 23876, 23889, 23902, 23915, 23928,
- 23941, 23954, 23967, 23980, 23993, 24006, 24018, 24031, 24044, 24057,
- 24070, 24083, 24096, 24109, 24122, 24135, 24148, 24160, 24173, 24186,
- 24199, 24212, 24225, 24238, 24251, 24264, 24277, 24290, 24302, 24315,
- 24328, 24341, 24354, 24367, 24380, 24393, 24406, 24419, 24432, 24444,
- 24457, 24470, 24483, 24496, 24509, 24522, 24535, 24548, 24561, 24574,
- 24586, 24597, 24606, 24614, 24622, 24629, 24635, 24639, 24645, 24651,
- 24660, 24668, 24673, 24679, 24684, 24688, 24697, 10199, 24708, 24714,
- 24721, 24729, 24736, 12716, 12730, 24743, 24750, 24759, 24764, 24769,
- 24776, 24781, 24786, 8535, 8541, 8547, 24791, 24796, 24799, 24804, 24812,
- 24819, 24826, 24838, 24845, 24851, 24860, 24869, 24878, 24884, 24892,
- 24901, 24905, 24911, 24916, 24926, 24933, 24939, 24947, 24953, 24960,
- 24966, 24976, 24985, 24989, 24996, 25000, 25005, 25011, 25019, 25023,
- 25033, 16832, 25042, 25048, 25052, 25061, 25070, 25080, 25086, 16837,
- 25093, 25100, 25111, 25119, 25129, 25138, 25146, 9914, 25154, 25159,
- 25165, 25170, 25174, 25178, 25182, 10938, 25187, 25195, 25202, 25211,
- 25219, 25226, 25233, 25242, 25248, 1024, 25255, 25261, 25265, 25271,
- 25278, 25284, 25292, 25298, 25305, 25311, 25317, 25326, 25330, 25338,
- 25345, 25354, 25361, 25366, 25370, 25381, 25386, 25391, 25397, 25402,
- 25415, 8759, 25419, 25425, 25431, 25437, 25442, 25450, 25454, 25461,
- 25470, 25475, 17110, 25483, 25487, 25499, 25504, 25508, 25511, 25517,
- 25523, 25529, 25534, 25539, 25543, 25546, 25557, 25562, 10471, 25569,
- 25574, 25579, 25584, 25589, 25594, 25599, 25604, 25609, 10476, 25614,
- 25619, 25624, 25629, 25634, 25639, 25644, 25649, 25654, 25659, 25664,
- 25669, 25675, 25680, 25685, 25690, 25695, 25700, 25705, 25710, 25715,
- 25720, 25726, 25732, 25737, 25742, 25747, 25752, 25757, 25762, 25767,
- 25772, 25777, 25783, 25788, 25793, 25798, 25804, 25810, 25815, 25820,
- 25825, 25830, 25835, 25840, 25845, 25850, 25856, 25861, 25866, 25871,
- 25876, 25882, 25887, 25892, 25896, 1252, 145, 25904, 25908, 25912, 25916,
- 25921, 25925, 15269, 2314, 25929, 25934, 25938, 25943, 25947, 25952,
- 25956, 25962, 25967, 25971, 25975, 25983, 25987, 25991, 25998, 26003,
- 26008, 26012, 26018, 26023, 26027, 26032, 26037, 26041, 26048, 26055,
- 26062, 26067, 26071, 26075, 26080, 26084, 26087, 26093, 26106, 26111,
- 26117, 26126, 26131, 10698, 26136, 26145, 26150, 26153, 26157, 26162,
- 26167, 26172, 26177, 26182, 2825, 2830, 26187, 26193, 26197, 26203, 3787,
- 26208, 26213, 26218, 26224, 26229, 16203, 26234, 26239, 26244, 26249,
- 26255, 26260, 26265, 26271, 26276, 26280, 26285, 26290, 26295, 26300,
- 26305, 26309, 26314, 26318, 26323, 26328, 26333, 26338, 26342, 26347,
- 26351, 26356, 26361, 26366, 26281, 3026, 26286, 26371, 26379, 26386,
- 11032, 26398, 26406, 26416, 26434, 26453, 26462, 26470, 26291, 26477,
- 26482, 26490, 26296, 26495, 26500, 26508, 26513, 26518, 26522, 26301,
- 26527, 26535, 26540, 26544, 26551, 26557, 26566, 26570, 26578, 26582,
- 26585, 20054, 26592, 26596, 26600, 26605, 26611, 26618, 26623, 9941,
- 26627, 26632, 26637, 26642, 26647, 26652, 1657, 1662, 26657, 26663,
- 26669, 26674, 26678, 26682, 26686, 26690, 26694, 26698, 26702, 26706,
- 24832, 26709, 26716, 26724, 26730, 26736, 26741, 26746, 26752, 26756,
- 26761, 26768, 16109, 16116, 26774, 26786, 26789, 26796, 26800, 19256,
- 26807, 26815, 26826, 26835, 26848, 26858, 26872, 26884, 26898, 26911,
- 26923, 26933, 26945, 26951, 26957, 26972, 26996, 27014, 27033, 27046,
- 27060, 27078, 27094, 27111, 27129, 27140, 27159, 27176, 27196, 27214,
- 27226, 27240, 27254, 27266, 27283, 27302, 27320, 27332, 27350, 27369,
- 16990, 27382, 27402, 27414, 12148, 27426, 27431, 27436, 27441, 27450,
- 27456, 27461, 27465, 27472, 27478, 27482, 27487, 27492, 27497, 27502,
- 27507, 27512, 2411, 27517, 27523, 27527, 27530, 27541, 27545, 27548,
- 27556, 27562, 14421, 27566, 27575, 27586, 27592, 27598, 27613, 27622,
- 27630, 27637, 27642, 27646, 27653, 27659, 27668, 27676, 27683, 27693,
- 27702, 27712, 27717, 27726, 27735, 27746, 27757, 27767, 27784, 4442,
- 27794, 27798, 27808, 27816, 27826, 27837, 27843, 27848, 27858, 27866,
- 27873, 27879, 27886, 27891, 26329, 27895, 27904, 27908, 27911, 27916,
- 27924, 27931, 27940, 27948, 27956, 27964, 27974, 27983, 27989, 27995,
- 28001, 28005, 26334, 26339, 28009, 28019, 28029, 28039, 28047, 28054,
- 28064, 28072, 28080, 28086, 28094, 773, 28103, 17191, 625, 28117, 28126,
- 28134, 28145, 28156, 28166, 28175, 28187, 28196, 28205, 28212, 28218,
- 28228, 28237, 28246, 28254, 28262, 28272, 28280, 28288, 28295, 28301,
- 28306, 28311, 28316, 7928, 28321, 28324, 28328, 28333, 28339, 28344,
- 28348, 11157, 26352, 26357, 28356, 28362, 28368, 28373, 28378, 28382,
- 28390, 28396, 28402, 28406, 3811, 28414, 28419, 28424, 28428, 28432,
- 11286, 28439, 28447, 28461, 28468, 28475, 28481, 11295, 11301, 28489,
- 28497, 28504, 28509, 28514, 26362, 28520, 28531, 28535, 28540, 2660,
- 28545, 28556, 28562, 28567, 28571, 28575, 28578, 28585, 28592, 28598,
- 28606, 28613, 28619, 28623, 7968, 28628, 28632, 28636, 28644, 28649,
- 28654, 28659, 1685, 28664, 28669, 28674, 28679, 28684, 28689, 28694,
- 28699, 28704, 28709, 28714, 28719, 28724, 28729, 28735, 28740, 28745,
- 28750, 28755, 28760, 28765, 28771, 28776, 28781, 28786, 28791, 28796,
- 28801, 28806, 28812, 28818, 28823, 28829, 28834, 28839, 5, 28845, 28849,
- 28853, 28857, 28862, 28866, 28870, 28874, 28878, 28883, 28887, 28892,
- 28896, 28899, 28903, 28908, 28912, 28917, 28921, 28925, 28929, 28934,
- 28938, 28942, 28952, 28957, 28961, 28965, 28970, 28975, 28984, 28989,
- 28994, 28998, 29002, 29011, 29024, 29036, 29045, 29054, 29059, 29065,
- 29070, 29074, 29078, 29088, 29097, 29105, 29111, 29116, 29120, 29127,
- 29137, 29146, 29154, 12505, 29162, 29170, 29179, 29188, 29196, 29206,
- 29211, 29215, 29219, 29222, 29224, 29228, 29232, 29237, 29242, 29246,
- 29250, 29253, 29257, 29260, 29264, 29267, 29270, 29274, 29280, 29284,
- 29288, 29292, 29296, 29301, 29306, 29311, 29315, 29318, 29323, 29329,
- 29334, 29340, 29345, 29349, 29355, 29359, 29363, 29368, 29372, 29377,
- 29382, 29386, 29390, 29397, 29401, 29404, 29408, 29412, 29418, 29424,
- 29428, 29432, 29437, 29444, 29450, 29454, 29463, 29467, 29471, 29474,
- 29480, 29485, 29491, 1385, 1737, 29496, 29501, 29506, 29511, 29516,
- 29521, 29526, 2118, 799, 29531, 29534, 29538, 29542, 29547, 29551, 17203,
- 29555, 29560, 29565, 29569, 29572, 29577, 29581, 29586, 29590, 17207,
- 29595, 29598, 29601, 29607, 29611, 29616, 29620, 29633, 29637, 29640,
- 29648, 29657, 29664, 29669, 29675, 29681, 29689, 29696, 29703, 29707,
- 29711, 29715, 29720, 29725, 29729, 29737, 29742, 29749, 29761, 29772,
- 29777, 29781, 29788, 29792, 29797, 29803, 29806, 29811, 29816, 29823,
- 29827, 29831, 29834, 29840, 8659, 2318, 29844, 29849, 29865, 10749,
- 29885, 29894, 29910, 29914, 29921, 29924, 29930, 29940, 29946, 29955,
- 29970, 29981, 29993, 30004, 30012, 30021, 30027, 30036, 30046, 30056,
- 30067, 30078, 30088, 30097, 30104, 30113, 30121, 30128, 30135, 30143,
- 30150, 30157, 30170, 30177, 30185, 30192, 30198, 30203, 30212, 30219,
- 30225, 30230, 30238, 30246, 30253, 30260, 27818, 30272, 30284, 30298,
- 30306, 30314, 30322, 30329, 30341, 30350, 30359, 30367, 30375, 30383,
- 30390, 30396, 30405, 30413, 30423, 30432, 30442, 30451, 30460, 30468,
- 30473, 30477, 30480, 30484, 30488, 30492, 30496, 30500, 30506, 30512,
- 30517, 30525, 17265, 30532, 30537, 30544, 30550, 30556, 30563, 13589,
- 30570, 30573, 30585, 30593, 30599, 30604, 30608, 30619, 30629, 30639,
- 11225, 30648, 30657, 30665, 30675, 30684, 30691, 30698, 30706, 30710,
- 17284, 30713, 30720, 30724, 4386, 30730, 30733, 30740, 30746, 30751,
- 30758, 30764, 30768, 30773, 30777, 30786, 30793, 30799, 8712, 30806,
- 30814, 30821, 30827, 30832, 30838, 30844, 30852, 30858, 30862, 30865,
- 30867, 30485, 11238, 30876, 30881, 30887, 30897, 30902, 30909, 30917,
- 30923, 30928, 30933, 30938, 30942, 30947, 30954, 30960, 30969, 30977,
- 30981, 30988, 30994, 31003, 31009, 31016, 4645, 31022, 31028, 31033,
- 31040, 31052, 31063, 31068, 31076, 31080, 31090, 31096, 31100, 31105,
- 31115, 31124, 31128, 31135, 31143, 31150, 31156, 31161, 31169, 31176,
- 31181, 31188, 31200, 31209, 31213, 15195, 31221, 31231, 31235, 31243,
- 31250, 31257, 29644, 31268, 31273, 31277, 31284, 31291, 26014, 30410,
- 31296, 31300, 31303, 27146, 31308, 31322, 31338, 31356, 31375, 31392,
- 31410, 27165, 31427, 31447, 27182, 31459, 31471, 18478, 31483, 27202,
- 31497, 31509, 12161, 31523, 31528, 31533, 31538, 31544, 31550, 31556,
- 31560, 31568, 31574, 31581, 31586, 31596, 31602, 11723, 31608, 31610,
- 31615, 31623, 31627, 30950, 31633, 31640, 13437, 13447, 31647, 31654,
- 31664, 31669, 31673, 31676, 31682, 31690, 31702, 31712, 31728, 31741,
- 31755, 18496, 31769, 31776, 31780, 31783, 31788, 31792, 31799, 31806,
- 31813, 31820, 31830, 31835, 31840, 31845, 31853, 31861, 31866, 31875,
- 27839, 3466, 31880, 31883, 31886, 31891, 31898, 31903, 31908, 31924,
- 31932, 31940, 10513, 31948, 31953, 31957, 31963, 31968, 31974, 31977,
- 31983, 31995, 32003, 32010, 32016, 32023, 32034, 32048, 32061, 32067,
- 32076, 32082, 32091, 32103, 32114, 32124, 32133, 32142, 32150, 32161,
- 656, 32168, 32175, 32181, 32186, 32192, 32199, 32205, 32216, 32226,
- 32236, 32245, 32251, 32258, 32263, 32271, 32278, 32286, 32294, 32306,
- 6917, 32313, 32316, 32325, 32333, 32339, 32345, 32350, 32354, 32357,
- 32363, 32370, 32375, 32380, 32385, 32389, 32401, 32412, 32421, 32429,
- 17466, 32434, 32442, 32447, 32455, 32461, 32467, 13430, 9509, 32472,
- 32476, 32480, 32483, 32486, 32492, 32500, 32508, 32512, 32516, 32521,
- 32525, 32528, 32537, 32542, 32546, 32549, 32554, 32562, 32573, 32582,
- 32586, 32592, 32598, 32602, 32608, 32616, 32638, 32662, 32673, 32682,
- 32688, 32695, 32702, 32708, 32716, 32722, 32727, 32738, 32756, 32763,
- 32771, 32775, 32782, 32787, 32796, 32809, 32817, 32829, 32840, 32851,
- 32861, 32875, 32884, 32892, 32904, 10766, 32915, 32926, 32937, 32949,
- 32959, 32968, 32978, 32983, 32987, 32995, 33006, 33016, 33022, 33027,
- 33031, 33034, 33037, 33045, 33053, 33062, 33072, 33081, 33087, 33101,
- 2743, 33123, 33134, 33143, 33153, 33165, 33174, 33183, 33193, 33201,
- 33209, 33218, 33223, 33234, 33239, 33248, 33254, 33265, 33269, 33272,
- 33282, 33291, 33299, 33309, 33319, 33327, 33336, 33343, 33351, 33358,
- 33367, 33376, 33381, 33386, 33390, 33398, 33405, 33409, 33417, 33424,
- 33435, 33450, 33457, 33463, 33473, 33482, 33488, 33499, 33503, 33510,
- 33514, 33521, 33527, 16340, 33533, 33537, 33542, 33548, 33555, 33559,
- 33563, 33571, 33579, 33585, 33594, 33601, 33608, 33613, 33618, 33628,
- 27893, 33632, 33635, 33640, 33645, 33650, 33655, 33660, 33665, 33670,
- 33675, 33681, 33686, 33691, 33697, 1102, 757, 33702, 33709, 33718, 2366,
- 33725, 33730, 33734, 33740, 1151, 604, 33745, 328, 33749, 33758, 33766,
- 33775, 33783, 33790, 33801, 33809, 33818, 33826, 33836, 33844, 33849,
- 11393, 33853, 33861, 33869, 33874, 17220, 4000, 33880, 33886, 33892,
- 6459, 33897, 33901, 33908, 33914, 33920, 33924, 33930, 33935, 33942,
- 1344, 33948, 33955, 33959, 1251, 6467, 33964, 33974, 33982, 33988, 33998,
- 34007, 34015, 34021, 34026, 34034, 34041, 12947, 34047, 34054, 34059,
- 34066, 34076, 1404, 251, 2117, 34082, 34088, 34095, 34106, 34117, 34125,
- 34132, 34142, 34151, 34159, 34168, 34175, 34182, 34195, 34202, 34208,
- 34219, 34238, 34243, 1156, 34247, 34252, 34260, 3883, 34264, 34269,
- 34273, 34277, 1348, 29251, 34287, 34291, 34296, 34300, 34306, 3745,
- 34312, 34320, 34327, 34338, 34347, 34355, 34380, 34388, 34393, 3884, 391,
- 34399, 34407, 34415, 34422, 34428, 34433, 2186, 12363, 34440, 34446,
- 30769, 31058, 34452, 632, 106, 34456, 34460, 34466, 747, 10386, 34471,
- 34478, 34484, 34488, 34492, 1549, 34495, 34499, 17734, 34502, 34507,
- 34514, 34520, 8725, 34525, 34533, 34540, 34546, 26524, 34550, 34554,
- 34558, 34562, 3954, 19566, 34566, 34571, 34575, 34578, 34586, 34594,
- 34599, 34608, 34616, 34619, 34626, 34636, 34648, 34656, 34661, 34665,
- 34673, 34680, 34686, 34693, 34700, 34703, 34707, 34711, 1359, 34721,
- 34723, 34728, 34734, 34740, 34745, 34750, 34755, 34760, 34765, 34770,
- 34775, 34780, 34785, 34790, 34795, 34800, 34805, 34810, 34816, 34822,
- 34828, 34834, 34839, 34844, 34849, 34855, 34860, 34865, 34870, 34876,
- 34881, 34887, 34892, 34897, 34902, 34907, 34913, 34918, 34924, 34929,
- 34934, 34939, 34944, 34950, 34955, 34961, 34966, 34971, 34976, 34981,
- 34986, 34991, 34996, 35001, 35006, 35012, 35018, 35024, 35029, 35034,
- 35039, 35044, 35050, 35056, 35062, 35068, 35074, 35080, 35085, 35091,
- 35096, 35101, 35106, 35111, 35117, 2457, 35122, 2464, 2471, 2867, 35127,
- 2477, 2487, 35133, 2519, 2524, 2529, 35137, 35142, 35147, 35153, 35158,
- 35163, 35167, 35172, 35178, 35183, 35188, 35193, 35199, 35204, 35208,
- 35212, 35217, 35222, 35227, 35232, 35237, 35243, 35249, 35254, 35258,
- 35263, 35269, 35273, 35278, 35283, 35288, 35293, 35297, 35300, 35305,
- 35310, 35315, 35320, 35325, 35331, 35337, 35342, 35347, 35352, 35356,
- 35361, 35366, 35371, 35376, 35381, 35386, 35390, 35395, 35400, 35405,
- 35409, 35413, 35417, 35422, 35430, 35435, 35440, 35446, 35452, 35458,
- 35463, 35471, 35475, 35478, 35483, 35488, 35492, 35497, 35502, 35506,
- 35511, 35515, 35518, 35523, 4096, 21057, 35528, 35533, 35538, 35543,
- 35551, 25222, 33952, 10025, 35556, 35561, 35565, 35570, 35574, 35578,
- 35583, 35587, 35590, 35593, 35597, 35602, 35606, 35614, 35618, 35621,
- 35626, 35630, 35634, 35639, 35644, 35648, 35654, 35659, 35664, 35671,
- 35678, 35682, 35685, 35691, 35700, 35707, 35715, 35722, 35726, 35731,
- 35735, 35739, 35745, 35750, 35756, 35760, 35766, 35771, 35776, 35780,
- 35787, 35793, 35799, 35805, 35811, 35818, 35824, 35830, 35836, 35842,
- 35848, 35854, 35860, 35867, 35873, 35880, 35886, 35892, 35898, 35904,
- 35910, 35916, 35922, 35928, 35934, 35940, 35945, 35950, 13302, 35955,
- 35961, 35966, 35971, 35976, 35981, 35984, 35990, 35995, 36003, 36008,
- 36012, 36017, 36023, 36032, 36038, 36043, 36048, 36053, 36057, 36062,
- 36066, 36071, 36076, 36081, 36086, 36093, 36100, 36106, 36112, 36117,
- 19185, 36124, 36130, 36137, 36143, 36149, 36154, 36162, 36167, 10931,
- 36171, 36176, 36181, 36187, 36192, 36197, 36201, 36206, 36211, 36217,
- 36222, 36227, 36232, 36236, 36241, 36246, 36250, 36255, 36260, 36264,
- 36269, 36273, 36278, 36283, 36288, 36292, 36297, 36301, 36306, 36310,
- 36314, 36318, 17890, 36323, 36330, 36339, 36345, 36351, 36360, 36368,
- 36377, 36385, 36390, 36394, 36401, 36407, 36415, 36419, 36422, 36427,
- 36431, 36440, 36448, 36466, 36472, 1403, 36478, 36481, 36485, 26664,
- 26670, 36491, 36495, 36506, 36517, 36528, 36540, 36544, 36551, 36558,
- 36565, 36570, 36574, 36582, 36587, 36592, 36597, 36602, 6524, 1076,
- 25221, 36607, 36612, 36616, 36621, 36625, 36631, 36636, 36642, 36647,
- 36653, 36658, 36664, 36669, 36675, 36681, 36687, 36692, 36648, 36654,
- 36696, 36701, 36707, 36712, 36718, 36723, 36729, 36734, 36659, 12014,
- 36738, 36670, 36676, 36682, 2959, 3659, 36744, 36747, 36752, 36758,
- 36764, 36770, 36777, 36783, 36789, 36795, 36801, 36807, 36813, 36819,
- 36825, 36831, 36837, 36843, 36849, 36856, 36862, 36868, 36874, 36880,
- 36886, 36889, 36894, 36897, 36904, 36909, 36917, 36921, 36926, 36931,
- 36937, 36942, 36947, 36951, 36956, 36962, 36967, 36973, 36978, 36984,
- 36989, 36995, 37001, 37005, 37010, 37015, 37020, 37025, 37029, 37034,
- 37039, 37044, 37050, 37056, 37062, 37068, 37073, 37077, 37080, 37086,
- 37092, 37101, 37109, 37116, 37121, 37125, 37129, 37134, 17680, 37139,
- 37147, 37153, 4042, 1261, 37158, 37162, 8775, 37168, 37174, 37181, 8784,
- 37185, 37191, 37197, 37204, 37210, 37219, 37227, 37239, 37243, 37250,
- 37256, 37261, 37265, 37269, 37272, 37282, 37291, 37299, 36649, 37304,
- 37314, 37324, 37334, 37340, 37345, 37355, 37360, 37373, 37387, 37398,
- 37410, 37422, 37436, 37449, 37461, 37473, 17031, 37487, 37492, 37497,
- 37501, 37505, 37509, 37513, 37519, 37524, 37529, 37534, 37539, 37544,
- 37549, 1726, 32112, 37554, 37559, 37564, 36697, 37569, 37572, 37577,
- 37582, 37587, 37593, 37599, 18802, 11589, 37604, 37610, 37617, 18430,
- 37623, 37628, 37633, 37637, 37642, 37647, 36702, 37652, 37657, 37662,
- 37668, 36708, 37673, 37676, 37683, 37691, 37697, 37703, 37709, 37720,
- 37725, 37732, 37739, 37746, 37754, 37763, 37772, 37778, 37784, 37792,
- 36713, 37797, 37803, 37809, 36719, 37814, 37819, 37827, 37835, 37841,
- 37848, 37854, 37861, 37868, 37874, 37882, 37892, 37899, 37905, 37910,
- 37916, 37921, 37926, 37933, 37942, 37950, 37955, 37961, 37968, 37976,
- 37982, 37987, 37993, 38002, 38009, 33067, 38015, 38019, 38024, 38033,
- 38038, 38043, 38048, 14511, 38056, 38061, 38066, 38071, 38075, 38080,
- 38085, 38092, 38097, 38102, 38107, 36724, 25150, 38113, 2560, 155, 38116,
- 38119, 38123, 38127, 38137, 38145, 38152, 38156, 38160, 38163, 38171,
- 38178, 38185, 31012, 38194, 38197, 38204, 38210, 38217, 38221, 38229,
- 38237, 38244, 38248, 38252, 38255, 38261, 38268, 38272, 38276, 38283,
- 38291, 38299, 38306, 36660, 38313, 38321, 38326, 38338, 11670, 11677,
- 11684, 11691, 11698, 11705, 589, 416, 38344, 38349, 38354, 38360, 38365,
- 38370, 4063, 38375, 38378, 38383, 38388, 38393, 38398, 38403, 38410,
- 26782, 38415, 38420, 38425, 38430, 38435, 38441, 38446, 38452, 36900,
- 38458, 38463, 38469, 38475, 38485, 38490, 38495, 38499, 38504, 38509,
- 38514, 38519, 38532, 38537, 26402, 19648, 1026, 38541, 38547, 38551,
- 38556, 38561, 38567, 38572, 38577, 38581, 38586, 38591, 38597, 38602,
- 38607, 1266, 38611, 38616, 38621, 38626, 38630, 38635, 38640, 38645,
- 38651, 38657, 38662, 38666, 38670, 38675, 38680, 38685, 38689, 38694,
- 38702, 38706, 38712, 38716, 38723, 38732, 19419, 36671, 38738, 38745,
- 38753, 38760, 38766, 38779, 38791, 38796, 38802, 38806, 2886, 38810,
- 38814, 38263, 38823, 38834, 38845, 38850, 33130, 38855, 38860, 38864,
- 33250, 26675, 38869, 38873, 38878, 36677, 25257, 38882, 38887, 38893,
- 38898, 38902, 38906, 38909, 38913, 38919, 38928, 38939, 38951, 36683,
- 38956, 38959, 38963, 38967, 38972, 38977, 38982, 38987, 38992, 38997,
- 39002, 39007, 359, 39012, 39017, 39022, 39027, 39032, 39037, 39043,
- 39048, 39053, 39059, 39064, 39070, 39075, 39081, 39086, 39091, 39096,
- 39101, 39106, 39111, 39116, 39121, 39127, 39132, 39137, 39142, 39147,
- 39152, 39157, 39162, 39168, 39174, 39179, 39184, 39189, 39194, 39199,
- 39204, 39209, 39214, 39219, 39224, 39229, 39234, 39239, 39244, 39249,
- 39254, 39259, 39264, 39274, 39284, 39290, 343, 14, 39295, 39299, 39303,
- 39311, 39315, 39319, 39322, 16460, 39325, 39330, 39334, 39339, 39343,
- 39348, 39352, 39357, 39361, 39364, 39366, 39370, 39375, 39379, 39390,
- 39393, 39395, 39399, 39411, 39423, 39432, 39436, 39446, 39450, 39456,
- 39461, 39470, 39476, 39481, 39486, 39490, 39494, 39499, 39506, 39511,
- 39517, 39522, 39526, 39533, 30418, 30428, 39537, 39542, 39547, 39552,
- 39559, 39563, 39570, 39576, 8930, 39580, 39589, 39597, 39612, 39626,
- 39635, 39643, 39654, 39663, 39668, 39675, 39685, 7937, 39695, 39700,
- 39705, 39709, 39712, 39717, 39721, 39726, 39730, 39737, 39742, 39747,
- 39752, 39762, 39767, 39772, 39777, 9895, 39782, 39784, 39792, 39795,
- 39798, 39800, 39804, 39810, 39814, 39819, 39824, 39842, 39856, 39875,
- 39892, 39901, 39909, 39914, 39919, 1396, 39925, 39931, 39936, 39946,
- 39955, 39963, 39968, 39974, 39979, 39988, 39997, 40008, 40013, 40020,
- 40026, 40030, 40039, 40046, 40054, 40061, 40074, 40082, 40086, 40096,
- 40101, 40105, 40113, 40121, 40126, 40130, 40134, 40143, 40149, 40154,
- 40162, 40172, 40181, 40190, 40199, 40210, 40218, 40229, 40238, 40246,
- 40253, 40259, 40264, 40275, 40286, 40291, 40295, 40298, 40302, 40310,
- 40316, 40327, 40338, 40349, 40360, 40371, 40382, 40393, 40404, 40416,
- 40428, 40440, 40452, 40464, 40476, 40488, 40497, 40501, 40509, 40515,
- 40521, 40528, 40534, 40539, 40545, 40549, 40554, 40559, 40564, 39269,
- 39279, 2431, 40569, 40571, 40576, 40581, 40586, 40589, 40591, 40595,
- 40598, 40605, 40609, 11249, 40613, 40619, 40626, 40636, 40641, 40647,
- 40651, 40656, 40669, 30892, 40675, 40684, 40693, 21280, 40700, 40709,
- 37320, 40717, 40722, 40726, 40735, 40743, 40750, 40755, 40759, 40764,
- 40769, 40777, 40781, 40789, 40795, 40801, 40806, 40811, 40815, 40818,
- 40823, 40836, 40852, 27272, 40869, 40881, 40898, 40910, 40924, 27289,
- 27308, 40936, 40948, 2760, 40962, 40967, 40972, 40977, 40981, 40988,
- 41000, 41007, 41016, 41019, 41030, 41041, 41049, 41054, 41058, 41063,
- 41068, 41073, 41078, 41083, 41088, 37789, 956, 41093, 41097, 41101,
- 41104, 41109, 41114, 41120, 41125, 41130, 41136, 41142, 41147, 41151,
- 41156, 41161, 41166, 41170, 41173, 41179, 41184, 41189, 41194, 41198,
- 41203, 41209, 41217, 31193, 41222, 41227, 41234, 41240, 41246, 41251,
- 41259, 26791, 41266, 41271, 41276, 41281, 41285, 41288, 41293, 41297,
- 41301, 41308, 41314, 41320, 41326, 41333, 41338, 41344, 40116, 41348,
- 41352, 41357, 41370, 41375, 41381, 41389, 41396, 41404, 41414, 41420,
- 41426, 41432, 41436, 41445, 41453, 41460, 41465, 41470, 12037, 41475,
- 41485, 41492, 41498, 41508, 41513, 41519, 41527, 3916, 41534, 41541,
- 41547, 41554, 3922, 41558, 41563, 41574, 41581, 41587, 41596, 41600,
- 4494, 41603, 41610, 41616, 41622, 41630, 41640, 34423, 41647, 41655,
- 41661, 41666, 41672, 41677, 41681, 30736, 41687, 41694, 41700, 41708,
- 41717, 41724, 41730, 41741, 28091, 41747, 41757, 41762, 41766, 41774,
- 41782, 41789, 41795, 41800, 10889, 6499, 41805, 41809, 41811, 41815,
- 41820, 41822, 41827, 41833, 41838, 41843, 41850, 38406, 41856, 41861,
- 41865, 41870, 41874, 41883, 41887, 41893, 41900, 41906, 41913, 41918,
- 41927, 41932, 41936, 41941, 41948, 41956, 41964, 41969, 25313, 41973,
- 41976, 41980, 41984, 12460, 983, 41988, 41993, 42001, 42006, 42010,
- 42019, 42026, 42030, 42034, 42042, 42049, 15793, 42059, 42063, 42067,
- 42075, 42083, 42089, 42094, 42098, 42107, 15541, 42113, 42122, 42129,
- 42134, 42141, 42148, 42156, 42163, 42171, 42179, 42188, 42193, 42200,
- 42207, 42214, 42221, 42228, 42233, 42240, 42246, 42263, 42271, 42281,
- 42289, 42296, 459, 42300, 42306, 42310, 42315, 39659, 42321, 42324,
- 42328, 42334, 42345, 42353, 3927, 42361, 42367, 42373, 42383, 42389,
- 42398, 42407, 42417, 42424, 42430, 42435, 3933, 3939, 42444, 42452,
- 42459, 13907, 42467, 42471, 42478, 42486, 42493, 42500, 42506, 42515,
- 42525, 42531, 42539, 42548, 42555, 42563, 42570, 26077, 42574, 42581,
- 42587, 42597, 42606, 42614, 42625, 42629, 42639, 42646, 42651, 42656,
- 42662, 42669, 42677, 42686, 42695, 42705, 42716, 42723, 42728, 42735,
- 3174, 42743, 42749, 42754, 42761, 42767, 42773, 42778, 42791, 42804,
- 42817, 42824, 42830, 42838, 42846, 42851, 42855, 42859, 42864, 42869,
- 42874, 42879, 42884, 42889, 1365, 42894, 42898, 42902, 42906, 42910,
- 42914, 42918, 42922, 42926, 42930, 42934, 42938, 42942, 42946, 42950,
- 42954, 42958, 42962, 42966, 42970, 42974, 42978, 42982, 42986, 42990,
- 42994, 42998, 43002, 43006, 43010, 43014, 43018, 43022, 43026, 43030,
- 43034, 43038, 43042, 43046, 43050, 43054, 43058, 43062, 43066, 43070,
- 43074, 43078, 43082, 43086, 43090, 43094, 43098, 43102, 43106, 43110,
- 43114, 43118, 43122, 43126, 43130, 43134, 43138, 43142, 43146, 43150,
- 43154, 43158, 43162, 43166, 43170, 43174, 43178, 43182, 43186, 43190,
- 43194, 43198, 43202, 43206, 43210, 43214, 43218, 43222, 43226, 43230,
- 43234, 43238, 43242, 43246, 43250, 43254, 43258, 43262, 43266, 43270,
- 43274, 43278, 43282, 43286, 43290, 43294, 43298, 43302, 43306, 43310,
- 43314, 43318, 43322, 43326, 43330, 43334, 43338, 43342, 43346, 43350,
- 43354, 43358, 43362, 43366, 43370, 43374, 43378, 43382, 43386, 43390,
- 43394, 43398, 43402, 43406, 43410, 43414, 43418, 43422, 43426, 43430,
- 43434, 43438, 43442, 43446, 43450, 43454, 43458, 43462, 43466, 43470,
- 43474, 43478, 43482, 43486, 43490, 43494, 43498, 43502, 43506, 43511,
- 43515, 43520, 43524, 43529, 43533, 43538, 43542, 43548, 43553, 43557,
- 43562, 43566, 43571, 43575, 43580, 43584, 43589, 43593, 43598, 43602,
- 43607, 43611, 43617, 43623, 43628, 43632, 43637, 43641, 43647, 43652,
- 43656, 43661, 43665, 43670, 43674, 43680, 43685, 43689, 43694, 43698,
- 43703, 43707, 43712, 43716, 43722, 43727, 43731, 43736, 43740, 43746,
- 43751, 43755, 43760, 43764, 43769, 43773, 43778, 43782, 43787, 43791,
- 43797, 43802, 43806, 43812, 43817, 43821, 43827, 43832, 43836, 43841,
- 43845, 43850, 43854, 43860, 43866, 43872, 43878, 43884, 43890, 43896,
- 43902, 43907, 43911, 43916, 43920, 43926, 43931, 43935, 43940, 43944,
- 43949, 43953, 43958, 43962, 43967, 43971, 43976, 43980, 43985, 43989,
- 43995, 44000, 44004, 44009, 44013, 44019, 44025, 44030, 127, 63, 44034,
- 44036, 44040, 44044, 44048, 44053, 44057, 44061, 44066, 10802, 44071,
- 44077, 1671, 6956, 44083, 44086, 44091, 44095, 44100, 44104, 44108,
- 44113, 11821, 44117, 44121, 44125, 593, 44129, 17999, 44134, 44138,
- 44143, 44148, 44153, 44157, 44164, 44170, 30924, 44176, 44179, 44183,
- 44188, 44194, 44198, 44201, 44209, 44215, 44220, 44224, 44227, 44231,
- 44237, 44241, 44245, 3710, 3715, 14623, 44248, 44252, 44256, 44260,
- 44264, 44272, 44279, 44283, 15491, 44290, 44304, 44311, 44322, 378,
- 44327, 44331, 44337, 44349, 44355, 44361, 44366, 44372, 44376, 34696,
- 44385, 44391, 44400, 44404, 44408, 44413, 44419, 44424, 44428, 44433,
- 44437, 44441, 44448, 44454, 44459, 44470, 44485, 44500, 44515, 44531,
- 44549, 11735, 44563, 44570, 44574, 44577, 44586, 44591, 44595, 44603,
- 18633, 44611, 44615, 44625, 44636, 34621, 999, 44649, 44658, 44676,
- 44695, 44704, 44712, 44720, 11084, 11934, 44724, 26687, 44727, 35610,
- 44732, 11083, 44737, 44743, 44748, 44754, 44759, 44765, 44770, 44776,
- 44781, 44787, 44793, 44799, 44804, 44760, 44766, 44808, 44771, 44777,
- 44782, 44813, 44788, 44794, 8943, 4319, 44819, 44827, 44831, 44834,
- 44841, 44845, 44850, 44855, 44862, 44868, 44874, 44879, 17312, 44883,
- 30753, 44887, 44891, 44895, 44901, 44905, 33001, 44914, 10058, 44918,
- 10484, 44921, 44928, 44934, 44938, 13932, 44945, 44951, 44956, 44963,
- 44970, 44977, 33770, 8840, 44984, 44991, 44998, 45004, 45009, 45016,
- 45027, 45033, 45038, 45043, 45048, 45052, 45057, 45064, 44761, 45068,
- 45078, 45087, 45098, 45104, 45112, 45119, 45124, 45129, 45134, 45139,
- 45144, 45148, 45152, 45159, 45165, 45173, 2321, 29847, 11837, 11849,
- 11854, 11860, 45182, 11865, 11870, 11876, 45187, 45197, 45201, 11881,
- 45206, 19846, 45209, 45214, 45218, 41011, 45229, 45234, 45241, 45248,
- 45252, 45255, 45263, 11748, 45270, 45273, 45279, 45289, 6557, 45298,
- 45303, 45309, 45313, 45321, 45325, 45335, 45341, 45346, 45357, 45366,
- 45375, 45384, 45393, 45402, 45411, 45420, 45426, 45432, 45437, 45443,
- 45449, 45455, 45460, 45463, 45470, 45476, 45480, 45485, 45492, 45499,
- 45503, 45506, 45516, 45529, 45538, 45547, 45558, 45571, 45583, 45594,
- 45603, 45614, 45619, 45628, 45633, 11886, 45639, 45646, 45654, 45661,
- 45666, 45671, 30970, 45675, 45682, 4259, 25, 45686, 45691, 19695, 45695,
- 45698, 45701, 33187, 45705, 33779, 45713, 45717, 45721, 45724, 45730,
- 45736, 45741, 36748, 45750, 45758, 45764, 45771, 33170, 45775, 33401,
- 45779, 45788, 45792, 45800, 45806, 45812, 45817, 45821, 33805, 45827,
- 45830, 45838, 45846, 4646, 45852, 45856, 45860, 45865, 45872, 45878,
- 45883, 45888, 45892, 45898, 45903, 45909, 4547, 788, 45916, 45920, 45923,
- 45935, 45942, 45947, 17872, 45951, 45959, 45967, 45975, 45983, 45990,
- 45998, 46006, 46013, 46021, 46029, 46037, 46045, 46053, 46061, 46069,
- 46077, 46085, 46093, 46101, 46108, 46116, 46124, 46132, 46140, 46148,
- 46156, 46164, 46172, 46180, 46188, 46196, 46204, 46212, 46220, 46228,
- 46236, 46244, 46252, 46260, 46267, 46275, 46282, 46290, 46298, 46306,
- 46314, 46322, 46330, 46338, 46346, 46357, 26113, 46362, 46365, 46372,
- 46376, 46382, 46386, 46392, 46397, 46403, 46408, 46413, 46417, 46421,
- 46428, 46436, 46441, 46446, 46456, 46462, 46475, 46481, 46487, 46493,
- 46496, 46503, 46508, 46514, 46519, 19591, 930, 46524, 46527, 46530,
- 46533, 36832, 36838, 46536, 36844, 36857, 36863, 36869, 46542, 36875,
- 36881, 46548, 46554, 10, 46562, 46569, 46573, 46577, 46585, 37678, 46589,
- 46593, 46600, 46605, 46609, 46614, 46620, 46625, 46631, 46636, 46640,
- 46644, 46648, 46653, 46657, 46662, 46666, 46670, 46677, 46682, 46686,
- 46690, 46695, 46699, 46704, 46708, 46712, 46717, 46723, 18156, 18161,
- 46728, 46732, 46735, 46741, 46745, 46749, 25107, 46754, 46758, 46764,
- 46771, 46777, 46782, 39688, 46792, 46797, 46805, 46809, 46812, 37693,
- 46816, 4612, 46821, 46826, 46830, 46835, 46839, 46844, 15559, 46855,
- 46859, 46862, 46866, 46871, 46875, 46880, 46885, 46889, 46893, 46897,
- 46900, 46904, 46907, 46912, 46917, 46922, 46927, 46932, 46937, 8430,
- 15575, 46942, 46945, 46951, 46956, 46962, 46967, 46973, 46978, 46984,
- 46989, 46995, 47001, 47007, 47012, 47016, 47020, 47027, 47036, 47052,
- 47068, 47078, 33077, 47085, 47089, 47094, 47099, 47103, 47107, 42690,
- 47113, 47118, 47122, 47129, 47134, 47139, 47143, 47146, 47150, 47156,
- 31915, 47160, 25427, 47165, 47172, 47180, 47186, 47193, 47201, 47207,
- 47211, 47216, 47222, 47230, 47235, 47239, 47248, 10783, 47256, 47260,
- 47268, 47275, 47280, 47285, 47290, 47294, 47297, 47303, 47307, 47310,
- 47314, 47321, 47326, 47330, 47336, 47340, 47346, 47351, 47356, 31293,
- 36895, 47361, 47370, 47378, 47383, 47389, 47401, 47414, 47428, 47435,
- 47441, 47447, 47452, 47460, 47463, 47465, 47472, 47479, 47485, 47489,
- 8429, 47492, 47496, 47500, 47505, 47509, 47513, 47516, 47520, 47534,
- 27338, 47553, 47566, 47579, 47592, 27356, 47607, 2713, 47622, 47628,
- 47632, 47642, 47646, 47650, 47655, 47659, 47666, 47671, 47675, 47682,
- 47688, 47693, 47699, 47709, 47721, 47732, 47737, 47744, 47748, 47752,
- 47755, 47763, 18654, 4031, 47768, 18189, 47781, 47788, 47795, 47801,
- 47805, 47809, 47814, 47820, 47825, 47831, 47835, 47839, 47842, 47847,
- 47851, 47856, 47861, 47866, 47871, 47876, 47881, 47886, 47891, 47896,
- 8484, 18200, 47901, 47905, 47911, 47920, 47925, 47934, 47941, 42521,
- 47947, 47952, 47956, 47963, 47968, 47975, 47981, 47985, 47988, 47992,
- 47997, 2791, 48004, 48011, 48015, 48018, 48023, 48028, 48034, 48039,
- 48044, 48048, 48053, 48063, 48068, 48074, 48079, 45937, 48085, 48091,
- 48101, 48106, 48111, 48115, 48120, 48125, 7939, 7951, 48130, 48133,
- 48140, 48146, 48155, 9975, 40256, 48163, 48167, 48171, 37741, 48179,
- 48190, 48198, 42738, 48205, 48210, 48215, 48226, 48233, 48244, 37765,
- 25444, 48252, 1054, 48257, 15982, 48263, 33161, 48269, 48274, 48284,
- 48293, 48300, 48306, 48310, 48313, 48320, 48326, 48333, 48339, 48349,
- 48357, 48363, 48369, 48374, 48378, 48385, 48390, 48396, 48403, 48409,
- 47501, 48414, 48418, 16024, 16033, 16042, 16051, 16060, 16089, 646,
- 16098, 48424, 48429, 48432, 48438, 48446, 1283, 48451, 48455, 48460,
- 48465, 48470, 48477, 48483, 48487, 48492, 48498, 48502, 36905, 48507,
- 48512, 48521, 48528, 48538, 48544, 33205, 48561, 48570, 48578, 48584,
- 48589, 48596, 48602, 48610, 48619, 48627, 48635, 48641, 48645, 48650,
- 48658, 34302, 37774, 48664, 48683, 18557, 48697, 48713, 48727, 48733,
- 48738, 48743, 48748, 48754, 37780, 48759, 48762, 48769, 48776, 48785,
- 48790, 48794, 442, 3081, 48801, 48806, 48811, 32290, 48599, 48815, 48820,
- 48828, 48832, 48835, 48840, 48846, 48852, 48857, 48861, 33278, 48864,
- 48869, 48873, 48876, 48881, 48885, 48890, 48895, 48899, 48904, 48908,
- 48912, 48916, 25103, 25114, 48921, 48926, 48932, 48937, 48943, 48949,
- 31871, 48954, 48958, 48961, 48967, 48972, 48977, 48982, 48987, 48992,
- 48997, 49002, 49007, 49013, 49019, 25200, 18864, 49024, 49029, 49034,
- 49039, 49044, 49049, 49054, 49059, 450, 68, 36922, 36927, 36932, 36938,
- 36943, 36948, 49064, 36952, 49068, 49072, 49076, 36957, 36963, 49090,
- 36974, 36979, 49098, 49103, 36985, 49108, 49113, 49122, 49127, 49132,
- 49141, 49147, 49153, 49159, 37002, 49172, 49181, 49187, 37006, 49191,
- 37011, 49196, 37016, 37021, 49199, 49204, 49208, 49214, 15800, 49221,
- 15810, 49228, 49233, 37026, 49237, 49242, 49247, 49252, 49257, 49261,
- 49266, 49271, 49277, 49282, 49287, 49293, 49299, 49304, 49308, 49313,
- 49318, 49323, 49327, 49332, 49337, 49342, 49348, 49354, 49360, 49365,
- 49369, 49374, 49378, 37030, 37035, 37040, 49382, 49386, 49391, 49395,
- 49407, 37045, 37051, 37057, 37069, 49413, 30790, 49417, 49422, 49426,
- 49431, 49438, 49443, 49448, 49453, 49457, 49461, 49471, 49476, 49481,
- 49485, 49489, 49492, 49500, 49505, 37117, 49509, 1375, 49515, 49520,
- 49526, 49534, 49538, 49547, 49555, 49559, 49563, 49571, 49577, 49585,
- 49601, 49605, 49609, 49613, 49618, 49624, 49639, 37154, 1679, 14140,
- 49643, 1262, 1277, 49655, 49663, 49670, 49675, 49682, 49687, 10467, 977,
- 2546, 11913, 49694, 10365, 49699, 49702, 49711, 1170, 49716, 47672,
- 49723, 49732, 49737, 49741, 49749, 26737, 2602, 49756, 12413, 49766,
- 49772, 2339, 2349, 49781, 49790, 49800, 49811, 3489, 40637, 49816, 4226,
- 4237, 19629, 1175, 49820, 49828, 49835, 49840, 49844, 49848, 49853,
- 28359, 47999, 12004, 49861, 49870, 49879, 49887, 49900, 49907, 49918,
- 49923, 49936, 49949, 49961, 49973, 49985, 49996, 50009, 50020, 50031,
- 50041, 50049, 50057, 50069, 50081, 50092, 50101, 50109, 50116, 50128,
- 50135, 50141, 50150, 50156, 50163, 50176, 50181, 50191, 50196, 50202,
- 50207, 44935, 50211, 47299, 50218, 50225, 50233, 50240, 2559, 50247,
- 50258, 50268, 50277, 50285, 50295, 50303, 50312, 50322, 50331, 50336,
- 50342, 50348, 4075, 50359, 50369, 50378, 50387, 50395, 50405, 50413,
- 50422, 50427, 50432, 50437, 1604, 47, 50445, 50453, 50464, 50475, 19250,
- 50485, 50489, 50496, 50502, 50507, 50511, 50522, 50532, 50541, 50552,
- 19668, 19673, 50557, 50566, 50571, 50581, 50586, 50594, 50602, 50609,
- 50615, 1566, 271, 50619, 50625, 50630, 50633, 2087, 2568, 50641, 50645,
- 50648, 1420, 50654, 16289, 1180, 50659, 50672, 2702, 2723, 50686, 50698,
- 50710, 2737, 2754, 2769, 2785, 2802, 50724, 50736, 2817, 50750, 1186,
- 1192, 1198, 12284, 50755, 50760, 50765, 50769, 50784, 50799, 50814,
- 50829, 50844, 50859, 50874, 50889, 50904, 50919, 50934, 50949, 50964,
- 50979, 50994, 51009, 51024, 51039, 51054, 51069, 51084, 51099, 51114,
- 51129, 51144, 51159, 51174, 51189, 51204, 51219, 51234, 51249, 51264,
- 51279, 51294, 51309, 51324, 51339, 51354, 51369, 51384, 51399, 51414,
- 51429, 51444, 51459, 51474, 51489, 51504, 51519, 51534, 51549, 51564,
- 51579, 51594, 51609, 51624, 51639, 51654, 51669, 51684, 51699, 51714,
- 51729, 51744, 51759, 51774, 51789, 51804, 51819, 51834, 51849, 51864,
- 51879, 51894, 51909, 51924, 51939, 51954, 51969, 51984, 51999, 52014,
- 52029, 52044, 52059, 52074, 52089, 52104, 52119, 52134, 52149, 52164,
- 52179, 52194, 52209, 52224, 52239, 52254, 52269, 52284, 52299, 52314,
- 52329, 52344, 52359, 52374, 52389, 52404, 52419, 52434, 52449, 52464,
- 52479, 52494, 52509, 52524, 52539, 52554, 52569, 52584, 52599, 52614,
- 52629, 52644, 52659, 52674, 52689, 52704, 52719, 52734, 52749, 52764,
- 52779, 52794, 52809, 52824, 52839, 52854, 52869, 52884, 52899, 52914,
- 52929, 52944, 52959, 52974, 52989, 53004, 53019, 53034, 53049, 53064,
- 53079, 53094, 53109, 53124, 53139, 53154, 53169, 53184, 53199, 53214,
- 53229, 53244, 53259, 53274, 53289, 53304, 53319, 53334, 53349, 53364,
- 53379, 53394, 53409, 53424, 53439, 53454, 53469, 53484, 53499, 53514,
- 53529, 53544, 53559, 53574, 53589, 53604, 53619, 53634, 53649, 53664,
- 53679, 53694, 53709, 53724, 53739, 53754, 53769, 53784, 53799, 53814,
- 53829, 53844, 53859, 53874, 53889, 53904, 53919, 53934, 53949, 53964,
- 53979, 53994, 54009, 54024, 54039, 54054, 54069, 54084, 54099, 54114,
- 54129, 54144, 54159, 54174, 54189, 54204, 54219, 54234, 54249, 54264,
- 54279, 54294, 54309, 54324, 54339, 54354, 54369, 54384, 54399, 54414,
- 54429, 54444, 54459, 54474, 54489, 54504, 54519, 54534, 54549, 54564,
- 54579, 54594, 54609, 54624, 54639, 54654, 54669, 54684, 54699, 54714,
- 54729, 54744, 54759, 54774, 54789, 54804, 54819, 54834, 54849, 54864,
- 54879, 54894, 54909, 54924, 54939, 54954, 54969, 54984, 54999, 55014,
- 55029, 55044, 55059, 55074, 55089, 55104, 55119, 55134, 55149, 55164,
- 55179, 55194, 55209, 55224, 55239, 55254, 55269, 55284, 55299, 55314,
- 55329, 55344, 55359, 55374, 55389, 55404, 55419, 55434, 55449, 55464,
- 55479, 55494, 55509, 55524, 55539, 55554, 55569, 55584, 55599, 55614,
- 55629, 55644, 55659, 55674, 55689, 55704, 55719, 55734, 55749, 55764,
- 55779, 55794, 55809, 55824, 55839, 55854, 55869, 55884, 55899, 55914,
- 55929, 55944, 55959, 55974, 55989, 56004, 56019, 56034, 56049, 56064,
- 56079, 56094, 56109, 56124, 56139, 56154, 56169, 56184, 56199, 56214,
- 56229, 56244, 56259, 56274, 56289, 56304, 56319, 56334, 56349, 56364,
- 56379, 56394, 56409, 56424, 56439, 56454, 56469, 56484, 56499, 56514,
- 56529, 56544, 56559, 56574, 56589, 56604, 56619, 56634, 56649, 56664,
- 56679, 56694, 56709, 56724, 56739, 56754, 56769, 56784, 56799, 56814,
- 56829, 56844, 56859, 56874, 56889, 56904, 56919, 56934, 56949, 56964,
- 56979, 56994, 57009, 57024, 57039, 57054, 57069, 57084, 57099, 57114,
- 57129, 57144, 57159, 57174, 57189, 57204, 57219, 57234, 57249, 57264,
- 57279, 57294, 57309, 57324, 57339, 57354, 57369, 57384, 57399, 57414,
- 57429, 57444, 57459, 57474, 57489, 57504, 57519, 57534, 57549, 57564,
- 57579, 57594, 57609, 57624, 57639, 57654, 57669, 57684, 57699, 57714,
- 57729, 57744, 57759, 57774, 57789, 57804, 57819, 57834, 57849, 57864,
- 57879, 57894, 57909, 57924, 57939, 57954, 57969, 57984, 57999, 58014,
- 58029, 58044, 58059, 58074, 58089, 58104, 58119, 58134, 58149, 58164,
- 58179, 58194, 58209, 58224, 58239, 58254, 58269, 58284, 58299, 58314,
- 58329, 58344, 58359, 58374, 58389, 58404, 58419, 58434, 58449, 58464,
- 58479, 58494, 58509, 58524, 58539, 58554, 58569, 58584, 58600, 58616,
- 58632, 58648, 58664, 58680, 58696, 58712, 58728, 58744, 58760, 58776,
- 58792, 58808, 58824, 58840, 58856, 58872, 58888, 58904, 58920, 58936,
- 58952, 58968, 58984, 59000, 59016, 59032, 59048, 59064, 59080, 59096,
- 59112, 59128, 59144, 59160, 59176, 59192, 59208, 59224, 59240, 59256,
- 59272, 59288, 59304, 59320, 59336, 59352, 59368, 59384, 59400, 59416,
- 59432, 59448, 59464, 59480, 59496, 59512, 59528, 59544, 59560, 59576,
- 59592, 59608, 59624, 59640, 59656, 59672, 59688, 59704, 59720, 59736,
- 59752, 59768, 59784, 59800, 59816, 59832, 59848, 59864, 59880, 59896,
- 59912, 59928, 59944, 59960, 59976, 59992, 60008, 60024, 60040, 60056,
- 60072, 60088, 60104, 60120, 60136, 60152, 60168, 60184, 60200, 60216,
- 60232, 60248, 60264, 60280, 60296, 60312, 60328, 60344, 60360, 60376,
- 60392, 60408, 60424, 60440, 60456, 60472, 60488, 60504, 60520, 60536,
- 60552, 60568, 60584, 60600, 60616, 60632, 60648, 60664, 60680, 60696,
- 60712, 60728, 60744, 60760, 60776, 60792, 60808, 60824, 60840, 60856,
- 60872, 60888, 60904, 60920, 60936, 60952, 60968, 60984, 61000, 61016,
- 61032, 61048, 61064, 61080, 61096, 61112, 61128, 61144, 61160, 61176,
- 61192, 61208, 61224, 61240, 61256, 61272, 61288, 61304, 61320, 61336,
- 61352, 61368, 61384, 61400, 61416, 61432, 61448, 61464, 61480, 61496,
- 61512, 61528, 61544, 61560, 61576, 61592, 61608, 61624, 61640, 61656,
- 61672, 61688, 61704, 61720, 61736, 61752, 61768, 61784, 61800, 61816,
- 61832, 61848, 61864, 61880, 61896, 61912, 61928, 61944, 61960, 61976,
- 61992, 62008, 62024, 62040, 62056, 62072, 62088, 62104, 62120, 62136,
- 62152, 62168, 62184, 62200, 62216, 62232, 62248, 62264, 62280, 62296,
- 62312, 62328, 62344, 62360, 62376, 62392, 62408, 62424, 62440, 62456,
- 62472, 62488, 62504, 62520, 62536, 62552, 62568, 62584, 62600, 62616,
- 62632, 62648, 62664, 62680, 62696, 62712, 62728, 62744, 62760, 62776,
- 62792, 62808, 62824, 62840, 62856, 62872, 62888, 62904, 62920, 62936,
- 62952, 62968, 62984, 63000, 63016, 63032, 63048, 63064, 63080, 63096,
- 63112, 63128, 63144, 63160, 63176, 63192, 63208, 63224, 63240, 63256,
- 63272, 63288, 63304, 63320, 63336, 63352, 63368, 63384, 63400, 63416,
- 63432, 63448, 63464, 63480, 63496, 63512, 63528, 63544, 63560, 63576,
- 63592, 63608, 63624, 63640, 63656, 63672, 63688, 63704, 63720, 63736,
- 63752, 63768, 63784, 63800, 63816, 63832, 63848, 63864, 63880, 63896,
- 63912, 63928, 63944, 63960, 63976, 63992, 64008, 64024, 64040, 64056,
- 64072, 64088, 64104, 64120, 64136, 64152, 64168, 64184, 64200, 64216,
- 64232, 64248, 64264, 64280, 64296, 64312, 64328, 64344, 64360, 64376,
- 64392, 64408, 64424, 64440, 64456, 64472, 64488, 64504, 64520, 64536,
- 64552, 64568, 64584, 64600, 64616, 64632, 64648, 64664, 64680, 64696,
- 64712, 64728, 64744, 64760, 64776, 64792, 64808, 64824, 64840, 64856,
- 64872, 64888, 64904, 64920, 64936, 64952, 64968, 64984, 65000, 65016,
- 65032, 65048, 65064, 65080, 65096, 65112, 65128, 65144, 65160, 65176,
- 65192, 65208, 65224, 65240, 65256, 65272, 65288, 65304, 65320, 65336,
- 65352, 65368, 65384, 65400, 65416, 65432, 65448, 65464, 65480, 65496,
- 65512, 65528, 65544, 65560, 65576, 65592, 65608, 65624, 65640, 65656,
- 65672, 65688, 65704, 65720, 65736, 65752, 65768, 65784, 65800, 65816,
- 65832, 65848, 65864, 65880, 65896, 65912, 65928, 65944, 65960, 65976,
- 65992, 66008, 66024, 66040, 66056, 66072, 66088, 66104, 66120, 66136,
- 66152, 66168, 66184, 66200, 66216, 66232, 66248, 66264, 66280, 66296,
- 66312, 66328, 66344, 66360, 66376, 66392, 66408, 66424, 66440, 66456,
- 66472, 66488, 66504, 66520, 66536, 66552, 66568, 66584, 66600, 66616,
- 66632, 66648, 66664, 66680, 66696, 66712, 66728, 66744, 66760, 66776,
- 66792, 66808, 66824, 66840, 66856, 66872, 66888, 66904, 66920, 66936,
- 66952, 66968, 66984, 67000, 67016, 67032, 67048, 67064, 67080, 67096,
- 67112, 67128, 67144, 67160, 67176, 67192, 67208, 67224, 67240, 67256,
- 67265, 67280, 17155, 67289, 67294, 67300, 67306, 67316, 67324, 17408,
- 18090, 11318, 67337, 1428, 1432, 67345, 4155, 32408, 7876, 67351, 67356,
- 67361, 67366, 67371, 67377, 67382, 67388, 67393, 67399, 67404, 67409,
- 67414, 67419, 67425, 67430, 67435, 67440, 67445, 67450, 67455, 67460,
- 67466, 67471, 67477, 67484, 2606, 67489, 67495, 9359, 67499, 67504,
- 67511, 67519, 4166, 4171, 4176, 4181, 65, 67523, 67529, 67534, 67539,
- 67543, 67548, 67552, 67556, 12356, 67560, 67570, 67583, 67594, 67607,
- 67614, 67620, 67628, 11838, 67635, 67640, 67646, 67652, 67658, 67663,
- 67668, 67673, 67678, 67682, 67687, 67692, 67697, 67703, 67709, 67715,
- 67720, 67724, 67729, 67734, 67738, 67743, 67748, 67753, 67757, 12372,
- 12383, 12388, 1471, 67761, 67767, 1476, 19095, 67772, 19104, 1486, 67777,
- 67783, 67788, 1507, 67794, 1513, 1519, 12418, 67799, 67808, 67816, 67824,
- 67831, 67835, 67839, 67845, 67850, 36561, 67855, 67862, 67870, 67877,
- 67882, 67886, 67890, 67899, 67904, 67909, 67914, 1524, 276, 67919, 67923,
- 19230, 995, 67927, 67934, 67939, 67943, 19266, 1528, 45092, 67946, 67951,
- 67961, 67970, 67975, 67979, 67985, 1533, 47953, 67990, 67999, 68005,
- 68010, 68015, 12657, 12663, 68021, 68033, 68050, 68067, 68084, 68101,
- 68118, 68135, 68152, 68169, 68186, 68203, 68220, 68237, 68254, 68271,
- 68288, 68305, 68322, 68339, 68356, 68373, 68390, 68407, 68424, 68441,
- 68458, 68475, 68492, 68509, 68526, 68543, 68560, 68577, 68594, 68611,
- 68628, 68645, 68662, 68679, 68696, 68713, 68730, 68747, 68764, 68781,
- 68798, 68815, 68832, 68849, 68866, 68877, 68887, 68892, 1538, 68896,
- 68901, 68907, 68912, 68917, 68924, 10384, 1543, 68930, 68939, 32792,
- 68944, 68955, 12679, 68965, 68970, 68976, 68981, 68988, 68994, 68999,
- 1548, 19560, 69004, 69010, 12689, 69016, 69021, 69026, 69031, 69036,
- 69041, 69046, 69051, 1553, 4635, 69056, 69061, 69067, 69072, 69077,
- 69082, 69087, 69092, 69097, 69102, 69107, 69113, 69119, 69125, 69130,
- 69134, 69139, 69144, 69148, 69153, 69158, 69163, 69168, 69172, 69177,
- 69183, 69188, 69193, 69197, 69202, 69207, 69213, 69218, 69223, 69229,
- 69235, 69240, 69244, 69249, 69254, 69259, 69263, 69268, 69273, 69278,
- 69284, 69290, 69295, 69299, 69303, 69308, 69313, 69318, 34496, 69322,
- 69327, 69332, 69338, 69343, 69348, 69352, 69357, 69362, 69368, 69373,
- 69378, 69384, 69390, 69395, 69399, 69404, 69409, 69413, 69418, 69423,
- 69428, 69434, 69440, 69445, 69449, 69454, 69459, 69463, 69468, 69473,
- 69478, 69483, 69487, 69490, 69493, 69498, 69503, 37287, 69510, 69518,
- 48553, 69524, 3827, 32735, 69537, 69544, 69550, 69556, 4006, 69561,
- 12831, 69567, 69577, 69592, 69600, 12836, 69611, 69616, 69627, 69639,
- 69651, 69663, 2808, 69675, 69680, 69692, 69696, 69702, 69708, 69713,
- 69722, 69729, 69734, 69739, 69744, 69749, 69754, 69759, 1570, 18729,
- 69764, 69769, 48019, 69773, 69777, 69782, 69786, 19708, 69791, 69794,
- 69799, 69807, 69815, 1574, 12872, 12878, 1579, 69823, 69830, 69835,
- 69844, 69854, 69861, 69866, 69871, 1584, 69878, 69883, 19828, 69887,
- 69892, 69899, 69905, 69909, 69922, 69928, 69939, 69949, 69956, 19850,
- 10278, 10285, 4240, 4246, 69963, 1589, 69968, 69977, 69983, 69991, 69998,
- 70004, 70011, 70023, 70029, 70034, 70041, 70053, 70064, 70074, 70083,
- 70093, 70103, 4134, 70111, 36355, 36364, 19890, 70124, 70129, 70134,
- 70139, 70144, 70149, 70154, 1594, 1598, 70159, 70163, 70166, 70177,
- 70182, 19916, 1608, 70190, 70195, 70200, 19949, 70212, 70215, 70221,
- 70227, 70232, 70240, 1613, 70245, 70250, 70258, 70266, 70273, 70282,
- 70290, 70299, 70303, 1618, 70312, 1623, 25288, 70317, 70324, 70330,
- 20036, 70338, 70348, 70354, 70359, 70367, 70374, 70383, 70391, 70401,
- 70410, 70420, 70429, 70440, 70450, 70460, 70469, 70479, 70493, 70506,
- 70515, 70523, 70533, 70542, 70554, 70565, 70576, 70586, 19328, 70591,
- 13024, 70600, 70606, 70611, 70618, 70625, 70631, 18939, 70641, 70647,
- 70652, 70663, 70670, 70677, 70682, 70690, 13041, 13046, 70698, 70704,
- 70708, 4224, 4235, 20112, 48107, 70716, 70722, 70727, 70735, 70742,
- 14121, 70747, 70753, 70759, 1634, 70764, 70767, 70773, 70778, 70783,
- 70788, 70793, 70798, 70803, 70808, 70813, 70819, 70825, 1341, 70830,
- 70835, 70840, 70846, 70851, 70856, 70861, 70866, 70871, 70876, 1643, 18,
- 70882, 70886, 70891, 70895, 70899, 70903, 37573, 70908, 27557, 70913,
- 70918, 70922, 70925, 70929, 70933, 70938, 70942, 70947, 70951, 70954,
- 70960, 41105, 41110, 41115, 70963, 70970, 70976, 70984, 47725, 70994,
- 41121, 37837, 37588, 37594, 41137, 37600, 70999, 71004, 71008, 37870,
- 71015, 71018, 71022, 71030, 71037, 71042, 71045, 71050, 71055, 71059,
- 71063, 71066, 71076, 71088, 71095, 71101, 37605, 71108, 39502, 71111,
- 9376, 13386, 71114, 71118, 71123, 4049, 71127, 71130, 15843, 71137,
- 71144, 71157, 71165, 71174, 71183, 71189, 71194, 71204, 71217, 71229,
- 71236, 71241, 71250, 71263, 42785, 71281, 71286, 71293, 71299, 71304,
- 872, 71309, 71317, 71324, 71331, 32231, 893, 71337, 71343, 71353, 71361,
- 71367, 71372, 37624, 6640, 37638, 71376, 71386, 71391, 71399, 71409,
- 71424, 71430, 71436, 37648, 71441, 36703, 71445, 71450, 71457, 71462,
- 71466, 71471, 71479, 19893, 71486, 71491, 71495, 6681, 37674, 71499,
- 71505, 342, 71515, 71522, 71529, 71535, 71542, 71547, 71556, 15474,
- 67955, 67965, 71562, 71570, 71574, 71578, 71582, 71586, 71591, 71595,
- 71601, 71609, 71614, 71619, 71626, 71631, 71635, 71640, 71644, 71648,
- 71654, 71660, 71665, 71669, 71674, 71678, 37798, 71682, 37804, 37810,
- 71687, 71693, 71700, 71705, 71709, 36720, 19547, 71712, 71716, 71721,
- 71728, 71734, 71738, 71743, 47316, 71749, 71753, 71760, 71764, 71769,
- 71775, 71781, 71787, 71799, 71808, 71818, 71824, 71831, 71836, 71841,
- 71845, 71848, 71854, 71861, 71866, 71871, 71878, 71885, 71892, 71898,
- 71903, 71908, 71916, 37815, 2436, 71921, 71926, 71932, 71937, 71943,
- 71948, 71953, 71958, 71964, 37836, 71969, 71975, 71981, 71987, 37906,
- 71992, 71997, 72002, 37917, 72007, 72012, 72017, 72023, 72029, 37922,
- 72034, 72039, 72044, 37977, 37983, 72049, 72054, 37988, 38010, 33068,
- 38016, 38020, 72059, 13815, 72063, 72071, 72077, 72085, 72092, 72098,
- 72108, 72114, 72121, 12256, 38034, 72127, 72140, 72149, 72155, 72164,
- 72170, 72176, 72183, 27900, 72191, 72198, 72208, 72216, 72219, 37978,
- 72224, 72231, 72236, 72240, 72244, 72249, 72253, 4363, 72258, 72263,
- 72268, 41199, 41204, 72272, 41218, 72277, 41223, 72282, 72288, 41235,
- 41241, 41247, 72293, 72299, 26792, 72310, 72313, 72325, 72333, 38057,
- 72337, 72346, 72356, 72365, 38067, 72370, 72377, 72386, 72392, 72400,
- 72407, 72414, 6732, 4975, 72419, 37989, 72425, 72428, 72434, 72441,
- 72446, 72451, 27804, 72455, 72461, 72467, 72472, 72477, 72481, 72487,
- 72493, 39386, 72498, 42392, 44211, 44217, 38098, 38103, 72502, 72506,
- 72510, 72513, 72526, 72532, 72536, 72539, 72544, 39755, 72548, 36725,
- 25229, 72554, 6661, 6669, 10084, 72557, 72562, 72567, 72572, 72577,
- 72582, 72587, 72592, 72597, 72602, 72608, 72613, 72618, 72624, 72629,
- 72634, 72639, 72644, 72649, 72654, 72660, 72665, 72671, 72676, 72681,
- 72686, 72691, 72696, 72701, 72706, 72711, 72716, 72721, 72727, 72732,
- 72737, 72742, 72747, 72752, 72757, 72763, 72768, 72773, 72778, 72783,
- 72788, 72793, 72798, 72803, 72808, 72814, 72819, 72824, 72829, 72834,
- 72840, 72846, 72851, 72857, 72862, 72867, 72872, 72877, 72882, 1421, 156,
- 72887, 72891, 72895, 72899, 29700, 72903, 72907, 72912, 72916, 72921,
- 72925, 72930, 72935, 72940, 72944, 72948, 72953, 72957, 15553, 72962,
- 72966, 72973, 72983, 17753, 72992, 73001, 73005, 73010, 73015, 73019,
- 73023, 29488, 3164, 73027, 73033, 21125, 73037, 73046, 73054, 73060,
- 73065, 73077, 73089, 73094, 73098, 73103, 73107, 73113, 73119, 73124,
- 73134, 73144, 73150, 73158, 73163, 73167, 73173, 73178, 73185, 73191,
- 73196, 73203, 73212, 73221, 73229, 73233, 18269, 73236, 73245, 73253,
- 73265, 73276, 73287, 73296, 73300, 73309, 73317, 73327, 73335, 73342,
- 73352, 73358, 73363, 73370, 73379, 73385, 73390, 73397, 73403, 73414, 60,
- 36498, 73420, 31110, 31120, 73426, 73434, 73441, 73447, 73451, 73461,
- 73472, 73480, 73489, 73494, 73499, 73504, 73508, 73512, 73520, 21072,
- 73527, 73531, 73537, 73547, 73554, 73560, 73566, 41298, 73570, 73572,
- 73575, 73581, 73585, 73596, 73606, 73612, 73619, 73626, 15490, 73634,
- 73640, 73649, 73658, 73664, 11184, 73670, 73676, 73681, 73686, 73693,
- 73698, 73705, 73711, 73716, 73724, 73737, 73746, 73755, 70455, 70465,
- 73765, 73771, 73780, 73786, 73792, 73799, 73806, 73813, 73820, 73827,
- 73832, 73836, 73840, 73843, 73853, 73857, 73869, 9745, 73878, 73889,
- 73894, 73898, 70474, 73904, 73911, 73920, 73928, 73936, 73941, 73945,
- 73950, 73955, 73965, 73973, 73985, 73990, 73994, 73998, 74004, 74012,
- 74019, 74031, 74039, 74050, 74057, 74063, 74073, 74079, 74083, 74092,
- 74101, 74108, 74114, 74119, 74123, 74127, 74131, 74140, 74149, 74158,
- 74165, 74171, 74177, 74183, 74188, 74195, 74201, 74209, 74216, 74222,
- 14585, 74227, 74233, 74237, 16644, 74241, 74246, 74256, 74261, 74270,
- 74276, 74282, 74290, 74297, 74301, 74305, 74312, 74318, 74326, 74333,
- 74339, 74350, 74354, 74358, 74362, 74365, 74371, 74376, 74381, 74385,
- 74389, 74398, 74406, 74413, 74419, 74426, 28537, 47450, 74431, 74439,
- 74443, 74447, 74450, 74458, 74465, 74471, 74480, 74488, 74494, 74499,
- 74503, 74508, 74513, 74517, 74521, 74525, 74530, 74539, 74543, 74550,
- 44315, 74554, 74560, 74568, 74572, 74578, 74586, 74592, 74597, 74608,
- 74616, 74622, 74631, 26939, 74639, 74646, 74653, 74660, 74667, 74674,
- 50944, 15305, 74681, 74688, 74693, 41334, 4595, 74699, 74704, 74709,
- 74715, 74721, 74727, 74732, 74737, 74742, 74747, 74753, 74758, 74764,
- 74769, 74775, 74780, 74785, 74790, 74795, 74800, 74805, 74810, 74816,
- 74821, 74827, 74832, 74837, 74842, 74847, 74852, 74857, 74863, 74868,
- 74873, 74878, 74883, 74888, 74893, 74898, 74903, 74908, 74913, 74919,
- 74924, 74929, 74934, 74939, 74944, 74949, 74954, 74959, 74965, 74970,
- 74975, 74980, 74985, 74990, 74995, 75000, 75005, 75010, 75015, 75020,
- 75025, 75031, 1798, 305, 75036, 45210, 75040, 75043, 75048, 75052, 75055,
- 3533, 75060, 75065, 75069, 75078, 75089, 75106, 75124, 75132, 73932,
- 75139, 75142, 75152, 75159, 75168, 75184, 75193, 75203, 75208, 75221,
- 75231, 75240, 75248, 75262, 75270, 75279, 75283, 75286, 75293, 75299,
- 75310, 75317, 75329, 75340, 75351, 75360, 75367, 1181, 811, 75377, 2649,
- 75381, 75386, 75395, 1015, 8818, 24670, 75403, 75411, 75425, 75438,
- 75442, 75447, 75452, 75457, 75463, 75469, 75474, 9368, 17796, 75479,
- 75483, 75491, 9805, 75496, 75502, 75511, 75519, 1651, 12885, 1055, 4278,
- 75523, 75527, 75536, 75546, 2387, 31949, 75555, 75561, 19800, 31964,
- 75567, 4443, 13267, 75573, 75580, 70172, 75584, 75588, 75594, 75599,
- 75604, 3760, 160, 3786, 75609, 75621, 75625, 75629, 75635, 75640, 32812,
- 75644, 13255, 2843, 4, 75649, 75659, 75670, 75681, 75691, 75697, 75708,
- 75715, 75721, 75727, 75735, 75742, 75748, 75758, 75768, 75778, 75787,
- 27887, 1193, 75792, 75796, 75800, 75806, 75810, 2866, 2872, 9365, 2242,
- 75814, 75818, 75827, 75835, 75846, 75854, 75862, 75868, 75873, 75884,
- 75895, 75903, 75909, 75914, 10993, 75924, 75932, 75936, 75940, 75945,
- 75949, 75961, 33261, 17698, 75968, 75978, 75984, 75990, 7752, 11095,
- 76000, 76011, 76022, 76032, 76041, 76045, 76052, 1017, 2636, 76062,
- 76067, 76075, 69888, 76083, 76088, 76099, 76106, 76120, 16453, 525,
- 76130, 76137, 76141, 76145, 76153, 76162, 76170, 76176, 19845, 76181,
- 76195, 76202, 76208, 76216, 76225, 76234, 76241, 76253, 76263, 76271,
- 76278, 76286, 76293, 4242, 116, 76301, 76312, 76316, 76328, 76334, 13469,
- 210, 76339, 10416, 76344, 2911, 76348, 76355, 76361, 76372, 76382, 76390,
- 76397, 9756, 76404, 76413, 76421, 4323, 76434, 4340, 76438, 76443, 76449,
- 76454, 76459, 76464, 2916, 561, 76470, 76483, 76487, 76492, 2921, 1797,
- 919, 76496, 4344, 76504, 76510, 76514, 774, 76524, 76533, 76538, 3777,
- 76542, 17447, 17454, 54306, 76546, 4375, 4252, 15183, 76554, 76561,
- 76566, 27951, 76570, 76577, 76583, 76588, 76593, 13582, 204, 76598,
- 76610, 76616, 76624, 2933, 1688, 76632, 76634, 76639, 76644, 76649,
- 76655, 76660, 76665, 76670, 76675, 76680, 76685, 76691, 76696, 76701,
- 76706, 76711, 76716, 76721, 76726, 76731, 76737, 76742, 76747, 76752,
- 76758, 76763, 76769, 76774, 76779, 76784, 76789, 76794, 76799, 76804,
- 76810, 76815, 76821, 76826, 76831, 76836, 76841, 76846, 76851, 76856,
- 76861, 9437, 9450, 4391, 4396, 4401, 4406, 26, 76867, 76873, 76878,
- 76883, 76888, 76894, 76899, 76903, 76907, 76912, 76918, 76922, 76928,
- 76933, 76938, 76944, 76949, 76953, 76958, 76963, 76967, 76970, 76972,
- 76976, 76979, 76986, 76991, 76995, 77000, 77004, 77008, 77012, 77021,
- 77025, 38345, 77028, 38350, 77035, 77040, 38355, 77049, 77058, 38361,
- 77063, 38366, 77072, 77077, 13512, 77081, 77086, 77091, 38371, 77095,
- 77104, 49149, 77108, 77111, 77115, 9036, 77121, 77124, 77129, 77134,
- 77138, 4064, 38376, 77141, 77145, 77148, 77159, 77164, 77168, 77174,
- 77182, 77195, 77199, 77207, 77216, 77222, 77227, 77233, 77237, 77243,
- 77249, 77257, 77262, 77266, 77273, 77279, 77287, 77296, 77304, 38379,
- 77311, 77321, 77330, 77338, 77349, 77362, 77367, 77372, 77376, 77385,
- 77391, 77398, 77411, 77423, 77434, 77446, 77453, 77462, 77471, 77480,
- 77487, 77493, 77500, 77508, 77515, 77523, 77532, 77540, 77547, 77555,
- 77564, 77572, 77581, 77591, 77600, 77608, 77615, 77623, 77632, 77640,
- 77649, 77659, 77668, 77676, 77685, 77695, 77704, 77714, 77725, 77735,
- 77744, 77752, 77759, 77767, 77776, 77784, 77793, 77803, 77812, 77820,
- 77829, 77839, 77848, 77858, 77869, 77879, 77888, 77896, 77905, 77915,
- 77924, 77934, 77945, 77955, 77964, 77974, 77985, 77995, 78006, 78018,
- 78029, 78039, 78048, 78056, 78063, 78071, 78080, 78088, 78097, 78107,
- 78116, 78124, 78133, 78143, 78152, 78162, 78173, 78183, 78192, 78200,
- 78209, 78219, 78228, 78238, 78249, 78259, 78268, 78278, 78289, 78299,
- 78310, 78322, 78333, 78343, 78352, 78360, 78369, 78379, 78388, 78398,
- 78409, 78419, 78428, 78438, 78449, 78459, 78470, 78482, 78493, 78503,
- 78512, 78522, 78533, 78543, 78554, 78566, 78577, 78587, 78598, 78610,
- 78621, 78633, 78646, 78658, 78669, 78679, 78688, 78696, 78703, 78711,
- 78720, 78728, 78737, 78747, 78756, 78764, 78773, 78783, 78792, 78802,
- 78813, 78823, 78832, 78840, 78849, 78859, 78868, 78878, 78889, 78899,
- 78908, 78918, 78929, 78939, 78950, 78962, 78973, 78983, 78992, 79000,
- 79009, 79019, 79028, 79038, 79049, 79059, 79068, 79078, 79089, 79099,
- 79110, 79122, 79133, 79143, 79152, 79162, 79173, 79183, 79194, 79206,
- 79217, 79227, 79238, 79250, 79261, 79273, 79286, 79298, 79309, 79319,
- 79328, 79336, 79345, 79355, 79364, 79374, 79385, 79395, 79404, 79414,
- 79425, 79435, 79446, 79458, 79469, 79479, 79488, 79498, 79509, 79519,
- 79530, 79542, 79553, 79563, 79574, 79586, 79597, 79609, 79622, 79634,
- 79645, 79655, 79664, 79674, 79685, 79695, 79706, 79718, 79729, 79739,
- 79750, 79762, 79773, 79785, 79798, 79810, 79821, 79831, 79842, 79854,
- 79865, 79877, 79890, 79902, 79913, 79925, 79938, 79950, 79963, 79977,
- 79990, 80002, 80013, 80023, 80032, 80040, 80047, 80052, 80056, 8849,
- 80063, 80068, 38389, 80074, 80079, 38394, 80085, 24792, 30653, 80090,
- 80096, 80104, 80110, 80116, 80123, 80130, 80135, 80140, 80144, 80149,
- 80153, 80156, 80160, 80165, 80174, 80183, 80191, 80197, 80209, 80220,
- 80224, 3226, 8824, 80229, 80232, 80235, 80237, 80241, 80245, 80249,
- 80255, 80260, 30716, 80265, 80269, 80272, 80277, 80281, 80288, 80294,
- 80298, 6835, 80302, 80307, 38416, 80311, 80318, 80327, 80335, 80341,
- 80352, 80360, 80369, 80377, 80384, 80391, 80397, 80402, 80413, 38421,
- 80418, 80429, 80441, 80449, 80460, 80469, 80477, 80488, 80493, 80501,
- 2601, 80506, 80515, 40704, 80528, 80532, 80544, 80552, 80557, 80565,
- 80576, 21290, 80585, 80591, 80598, 80606, 80612, 38431, 80617, 4369,
- 67320, 80624, 80627, 80635, 80648, 80661, 80674, 80687, 80694, 80705,
- 80714, 80719, 50761, 50766, 80723, 80727, 80735, 80742, 80751, 80759,
- 80765, 80774, 80782, 80789, 80797, 80801, 80810, 80819, 80829, 80842,
- 80855, 80865, 38436, 80871, 80878, 80884, 80890, 38442, 80895, 80898,
- 80902, 80910, 80919, 50544, 80927, 80936, 80944, 80951, 80959, 80969,
- 80978, 80987, 39884, 80996, 81007, 81022, 81032, 10449, 25565, 81041,
- 81046, 81051, 81055, 18931, 81060, 81065, 81071, 81076, 81081, 81087,
- 81092, 81097, 25525, 81102, 81109, 81117, 81125, 81133, 81138, 81145,
- 81152, 81157, 1706, 81161, 81165, 81173, 81181, 38459, 81187, 81193,
- 81205, 81211, 81218, 81222, 81229, 81234, 81241, 81247, 81254, 81265,
- 81275, 81285, 81297, 81303, 81311, 81317, 81327, 81337, 38486, 81346,
- 81355, 81361, 81373, 81384, 81391, 81396, 81400, 81408, 81414, 81419,
- 81424, 81431, 81439, 81451, 81461, 81470, 81479, 81487, 81494, 40530,
- 28325, 81500, 81505, 81509, 81513, 81518, 81526, 81532, 81543, 81556,
- 81561, 81568, 38491, 81573, 81585, 81594, 81602, 81612, 81623, 81636,
- 81643, 81652, 81661, 81669, 81674, 81680, 81684, 1410, 81689, 81694,
- 81699, 81704, 81710, 81715, 81720, 81726, 81732, 81737, 81741, 81746,
- 81751, 81756, 67895, 81761, 81766, 81771, 81776, 81782, 81788, 81793,
- 81797, 81802, 18930, 81807, 81813, 81818, 81824, 81829, 81834, 81839,
- 81844, 81848, 81854, 81859, 81868, 81873, 81878, 81883, 81888, 81892,
- 81899, 81905, 4704, 20162, 3191, 81910, 81914, 81919, 81923, 81927,
- 81931, 54561, 81935, 81860, 81937, 81947, 38500, 81950, 81955, 81964,
- 81970, 6794, 38505, 81974, 81980, 81985, 81991, 81996, 82000, 82007,
- 82012, 82022, 82031, 82035, 82041, 82047, 82053, 82057, 82065, 82072,
- 82080, 82088, 38510, 82095, 82098, 82109, 82116, 82122, 82127, 82131,
- 82137, 82145, 82152, 82157, 82161, 82170, 82178, 82184, 82189, 38515,
- 82196, 27777, 82208, 82214, 82219, 82225, 82232, 82238, 25251, 32431,
- 82244, 82249, 82255, 82259, 82271, 81893, 81900, 25457, 82281, 82286,
- 82293, 82299, 82306, 82312, 82323, 82328, 82336, 10154, 82341, 82344,
- 82350, 82354, 82358, 82361, 82367, 82373, 38225, 4705, 1425, 15602,
- 82380, 82386, 82392, 82398, 82404, 82410, 82416, 82422, 82428, 82433,
- 82438, 82443, 82448, 82453, 82458, 82463, 82468, 82473, 82478, 82483,
- 82488, 82493, 82499, 82504, 82509, 82515, 82520, 82525, 82531, 82537,
- 82543, 82549, 82555, 82561, 82567, 82573, 82579, 82584, 82589, 82595,
- 82600, 82605, 82611, 82616, 82621, 82626, 82631, 82636, 82641, 82646,
- 82651, 82656, 82661, 82666, 82671, 82677, 82682, 82687, 82692, 82698,
- 82703, 82708, 82713, 82718, 82724, 82729, 82734, 82739, 82744, 82749,
- 82754, 82759, 82764, 82769, 82774, 82779, 82784, 82789, 82794, 82799,
- 82804, 82809, 82814, 82819, 82825, 82830, 82835, 82840, 82845, 82850,
- 82855, 82860, 1027, 169, 82865, 82869, 82873, 82878, 82886, 82890, 82897,
- 82905, 82909, 82922, 82930, 82935, 82940, 31173, 82944, 82949, 82953,
- 82958, 82962, 82970, 82974, 24800, 82979, 82983, 70712, 82987, 82990,
- 82998, 83006, 83014, 83019, 83024, 83031, 83038, 83044, 83050, 83055,
- 83062, 83067, 83075, 75430, 83082, 83087, 70484, 83094, 83100, 83105,
- 83109, 83116, 83122, 83129, 70511, 13596, 83137, 83142, 83147, 83151,
- 83154, 83165, 83174, 83180, 83185, 83189, 83199, 83208, 48940, 83212,
- 83216, 83223, 83236, 83242, 83250, 83259, 83270, 83281, 83292, 83303,
- 83312, 83318, 83327, 83335, 83345, 83358, 83366, 83373, 83384, 83393,
- 83399, 83404, 83409, 83415, 83425, 83431, 83441, 83449, 83456, 83466,
- 83475, 81575, 83483, 83489, 83497, 83503, 73977, 83510, 83515, 83518,
- 83522, 83528, 83532, 83535, 83543, 83549, 83555, 83563, 83575, 83587,
- 83594, 83599, 83603, 83614, 83622, 83629, 83641, 83649, 83656, 83664,
- 83671, 83677, 83682, 83692, 83701, 83709, 83714, 83724, 83733, 49805,
- 83740, 83744, 83749, 83757, 83764, 83770, 83774, 83784, 83795, 83803,
- 83810, 83822, 83834, 83843, 80518, 83850, 83860, 83872, 83883, 83897,
- 83905, 83915, 83922, 83930, 83943, 83955, 83964, 83972, 83982, 83993,
- 84005, 84014, 84024, 84034, 84043, 84050, 84059, 84074, 84082, 84092,
- 84101, 84109, 84122, 67290, 84137, 84147, 84156, 84168, 84178, 84190,
- 84201, 84215, 84229, 84243, 84257, 84271, 84285, 84299, 84313, 84327,
- 84341, 84355, 84369, 84383, 84397, 84411, 84425, 84439, 84453, 84467,
- 84481, 84495, 84509, 84523, 84537, 84551, 84565, 84579, 84593, 84607,
- 84621, 84635, 84649, 84663, 84677, 84691, 84705, 84719, 84733, 84747,
- 84761, 84775, 84789, 84803, 84817, 84831, 84845, 84859, 84873, 84887,
- 84901, 84915, 84929, 84943, 84957, 84971, 84985, 84999, 85013, 85027,
- 85041, 85055, 85069, 85083, 85097, 85111, 85125, 85139, 85153, 85167,
- 85181, 85195, 85209, 85223, 85237, 85251, 85265, 85279, 85293, 85307,
- 85321, 85335, 85349, 85363, 85377, 85391, 85405, 85419, 85433, 85447,
- 85461, 85475, 85489, 85503, 85517, 85531, 85545, 85559, 85573, 85587,
- 85601, 85615, 85629, 85643, 85657, 85671, 85685, 85699, 85713, 85727,
- 85741, 85755, 85769, 85783, 85797, 85811, 85825, 85839, 85853, 85867,
- 85881, 85895, 85909, 85923, 85937, 85951, 85965, 85979, 85993, 86007,
- 86021, 86035, 86049, 86063, 86077, 86091, 86105, 86119, 86133, 86147,
- 86161, 86175, 86189, 86203, 86217, 86231, 86245, 86259, 86273, 86287,
- 86301, 86315, 86329, 86343, 86357, 86371, 86385, 86399, 86413, 86427,
- 86441, 86455, 86469, 86483, 86497, 86511, 86525, 86539, 86553, 86567,
- 86581, 86595, 86609, 86623, 86637, 86651, 86665, 86679, 86693, 86707,
- 86721, 86735, 86749, 86763, 86777, 86791, 86805, 86819, 86833, 86847,
- 86861, 86875, 86889, 86903, 86917, 86931, 86945, 86959, 86973, 86987,
- 87001, 87015, 87029, 87043, 87057, 87071, 87085, 87099, 87113, 87127,
- 87141, 87155, 87169, 87183, 87197, 87211, 87225, 87239, 87253, 87267,
- 87281, 87295, 87309, 87323, 87337, 87351, 87365, 87379, 87393, 87407,
- 87421, 87435, 87449, 87463, 87477, 87491, 87505, 87519, 87533, 87547,
- 87561, 87575, 87589, 87603, 87617, 87631, 87645, 87659, 87673, 87687,
- 87701, 87715, 87729, 87743, 87757, 87771, 87785, 87799, 87813, 87827,
- 87841, 87855, 87869, 87883, 87897, 87911, 87925, 87939, 87953, 87967,
- 87981, 87995, 88009, 88023, 88037, 88051, 88065, 88079, 88093, 88107,
- 88121, 88135, 88149, 88163, 88177, 88191, 88205, 88219, 88233, 88247,
- 88261, 88275, 88289, 88303, 88317, 88331, 88345, 88359, 88373, 88387,
- 88401, 88415, 88429, 88443, 88457, 88471, 88485, 88499, 88513, 88527,
- 88541, 88555, 88569, 88583, 88597, 88611, 88625, 88639, 88653, 88667,
- 88681, 88695, 88709, 88723, 88737, 88751, 88765, 88779, 88793, 88807,
- 88821, 88835, 88849, 88863, 88877, 88891, 88905, 88919, 88933, 88947,
- 88961, 88975, 88989, 89003, 89017, 89031, 89045, 89059, 89073, 89087,
- 89101, 89115, 89129, 89143, 89157, 89171, 89185, 89199, 89213, 89227,
- 89241, 89255, 89269, 89283, 89297, 89311, 89325, 89339, 89353, 89367,
- 89381, 89395, 89409, 89423, 89437, 89451, 89465, 89479, 89493, 89507,
- 89521, 89535, 89549, 89563, 89577, 89591, 89605, 89619, 89633, 89647,
- 89661, 89675, 89689, 89703, 89717, 89731, 89745, 89759, 89773, 89787,
- 89801, 89815, 89829, 89843, 89857, 89871, 89885, 89899, 89913, 89927,
- 89941, 89955, 89969, 89983, 89997, 90011, 90025, 90039, 90053, 90067,
- 90081, 90095, 90109, 90123, 90137, 90151, 90165, 90179, 90193, 90207,
- 90221, 90235, 90249, 90263, 90277, 90291, 90305, 90319, 90333, 90347,
- 90361, 90375, 90389, 90403, 90417, 90431, 90445, 90459, 90473, 90487,
- 90501, 90515, 90529, 90543, 90557, 90571, 90585, 90599, 90613, 90627,
- 90641, 90655, 90669, 90683, 90697, 90711, 90725, 90739, 90753, 90767,
- 90781, 90795, 90809, 90823, 90837, 90851, 90865, 90879, 90893, 90907,
- 90921, 90935, 90949, 90963, 90977, 90991, 91005, 91019, 91033, 91047,
- 91061, 91075, 91089, 91103, 91117, 91131, 91145, 91159, 91173, 91187,
- 91201, 91215, 91229, 91243, 91257, 91271, 91285, 91299, 91313, 91327,
- 91341, 91355, 91369, 91383, 91397, 91411, 91425, 91439, 91453, 91467,
- 91481, 91495, 91509, 91523, 91537, 91551, 91565, 91579, 91593, 91607,
- 91621, 91635, 91649, 91663, 91677, 91691, 91705, 91719, 91733, 91747,
- 91761, 91775, 91789, 91803, 91817, 91831, 91845, 91859, 91873, 91887,
- 91901, 91915, 91929, 91943, 91957, 91971, 91985, 91999, 92013, 92027,
- 92041, 92055, 92069, 92083, 92097, 92111, 92125, 92139, 92153, 92167,
- 92181, 92195, 92209, 92223, 92237, 92251, 92265, 92279, 92293, 92307,
- 92321, 92335, 92349, 92363, 92377, 92391, 92405, 92419, 92433, 92447,
- 92461, 92475, 92489, 92503, 92517, 92531, 92545, 92559, 92573, 92587,
- 92601, 92615, 92629, 92643, 92657, 92671, 92685, 92699, 92713, 92727,
- 92741, 92755, 92769, 92783, 92797, 92811, 92825, 92839, 92853, 92867,
- 92881, 92895, 92909, 92923, 92937, 92951, 92965, 92979, 92993, 93007,
- 93021, 93035, 93049, 93063, 93077, 93091, 93105, 93119, 93133, 93147,
- 93161, 93175, 93189, 93203, 93217, 93231, 93245, 93259, 93273, 93287,
- 93301, 93315, 93329, 93343, 93357, 93371, 93385, 93399, 93413, 93427,
- 93441, 93455, 93469, 93483, 93497, 93511, 93525, 93539, 93553, 93567,
- 93581, 93595, 93609, 93623, 93637, 93651, 93665, 93679, 93693, 93707,
- 93721, 93735, 93749, 93763, 93777, 93791, 93805, 93819, 93833, 93847,
- 93861, 93875, 93889, 93903, 93917, 93931, 93945, 93959, 93973, 93987,
- 94001, 94015, 94029, 94043, 94057, 94071, 94085, 94099, 94113, 94127,
- 94141, 94155, 94169, 94183, 94197, 94211, 94225, 94239, 94253, 94267,
- 94281, 94295, 94309, 94323, 94337, 94351, 94365, 94379, 94393, 94407,
- 94421, 94435, 94449, 94463, 94477, 94491, 94505, 94519, 94533, 94547,
- 94561, 94575, 94589, 94603, 94617, 94631, 94645, 94659, 94673, 94687,
- 94701, 94715, 94729, 94743, 94757, 94771, 94785, 94799, 94813, 94827,
- 94841, 94855, 94869, 94883, 94897, 94911, 94925, 94939, 94953, 94962,
- 94973, 94984, 94994, 95005, 95013, 95021, 95027, 95037, 95045, 95051,
- 34382, 95056, 95062, 95071, 95083, 95088, 95095, 11007, 21310, 95101,
- 95110, 95115, 95119, 95124, 95131, 95137, 95142, 95147, 95155, 95163,
- 95173, 95178, 95186, 14061, 95190, 95193, 95195, 95210, 95223, 95230,
- 95236, 95247, 95252, 95256, 95261, 95268, 95274, 95279, 95287, 76024,
- 76034, 95293, 95300, 95310, 12243, 95317, 95322, 34620, 95331, 95336,
- 95343, 95353, 95361, 95369, 95378, 95387, 95393, 95399, 95406, 95413,
- 95418, 95422, 95430, 70528, 95435, 95444, 95452, 95459, 95464, 95468,
- 95477, 95483, 95486, 95490, 95499, 95509, 82917, 95518, 95522, 95530,
- 95534, 95540, 95551, 95561, 21319, 95572, 95581, 95589, 95597, 95604,
- 70547, 9602, 95612, 95616, 95625, 95632, 95635, 95639, 32309, 95642,
- 95646, 95651, 95668, 95680, 12201, 95692, 95697, 95702, 95707, 24902,
- 95711, 95716, 95721, 95727, 95732, 6433, 95737, 24906, 95742, 95747,
- 95753, 95760, 95765, 95770, 95776, 95782, 95788, 95793, 95799, 95803,
- 95817, 95825, 95833, 95839, 95844, 95851, 95861, 95870, 95875, 95880,
- 95885, 95893, 95903, 95914, 95919, 95925, 95930, 95939, 69012, 4634,
- 95944, 95962, 95981, 95994, 96008, 96024, 96031, 96038, 96047, 96054,
- 96060, 96067, 96072, 96078, 96083, 96089, 96097, 96103, 96108, 96113,
- 96129, 12214, 96143, 96150, 96158, 96164, 96168, 96171, 96177, 96182,
- 96187, 96195, 96202, 96207, 96216, 96222, 96227, 96233, 96239, 96248,
- 96257, 42236, 96262, 96270, 96279, 13669, 96288, 96294, 96302, 96308,
- 96314, 96320, 96325, 96332, 96338, 13680, 96343, 96346, 96351, 38542,
- 96361, 96370, 96375, 96381, 96386, 96394, 96401, 96412, 96428, 96444,
- 96460, 96476, 96492, 96508, 96524, 96540, 96556, 96572, 96588, 96604,
- 96620, 96636, 96652, 96668, 96684, 96700, 96716, 96732, 96748, 96764,
- 96780, 96796, 96812, 96828, 96844, 96860, 96876, 96892, 96908, 96924,
- 96940, 96956, 96972, 96988, 97004, 97020, 97036, 97052, 97068, 97084,
- 97100, 97116, 97132, 97148, 97164, 97180, 97196, 97212, 97228, 97244,
- 97260, 97276, 97292, 97308, 97324, 97340, 97356, 97372, 97388, 97404,
- 97420, 97436, 97452, 97468, 97484, 97500, 97516, 97532, 97548, 97564,
- 97580, 97596, 97612, 97628, 97644, 97660, 97676, 97692, 97708, 97724,
- 97740, 97756, 97772, 97788, 97804, 97820, 97836, 97852, 97868, 97884,
- 97900, 97916, 97932, 97948, 97964, 97980, 97996, 98012, 98028, 98044,
- 98060, 98076, 98092, 98108, 98124, 98140, 98156, 98172, 98188, 98204,
- 98220, 98236, 98252, 98268, 98284, 98300, 98316, 98332, 98348, 98364,
- 98380, 98396, 98412, 98428, 98444, 98460, 98476, 98492, 98508, 98524,
- 98540, 98556, 98572, 98588, 98604, 98620, 98636, 98652, 98668, 98684,
- 98700, 98716, 98732, 98748, 98764, 98780, 98796, 98812, 98828, 98844,
- 98860, 98876, 98892, 98908, 98924, 98940, 98956, 98972, 98988, 99004,
- 99020, 99036, 99052, 99068, 99084, 99100, 99116, 99132, 99148, 99164,
- 99180, 99196, 99212, 99228, 99244, 99260, 99276, 99292, 99308, 99324,
- 99340, 99356, 99372, 99388, 99404, 99420, 99436, 99452, 99468, 99484,
- 99500, 99516, 99532, 99548, 99564, 99580, 99596, 99612, 99628, 99644,
- 99660, 99676, 99692, 99708, 99724, 99740, 99756, 99772, 99788, 99804,
- 99820, 99836, 99852, 99868, 99884, 99900, 99916, 99932, 99948, 99964,
- 99980, 99996, 100012, 100028, 100044, 100060, 100076, 100092, 100108,
- 100124, 100140, 100156, 100172, 100188, 100204, 100220, 100236, 100252,
- 100268, 100284, 100300, 100316, 100332, 100348, 100364, 100380, 100396,
- 100412, 100428, 100444, 100460, 100476, 100492, 100508, 100524, 100540,
- 100556, 100572, 100588, 100604, 100620, 100636, 100652, 100668, 100684,
- 100700, 100716, 100732, 100748, 100764, 100780, 100796, 100812, 100828,
- 100844, 100860, 100876, 100892, 100908, 100924, 100940, 100956, 100972,
- 100988, 101004, 101020, 101036, 101052, 101068, 101084, 101100, 101116,
- 101132, 101148, 101164, 101180, 101196, 101212, 101228, 101244, 101260,
- 101276, 101292, 101308, 101324, 101340, 101356, 101372, 101388, 101404,
- 101420, 101436, 101452, 101468, 101484, 101500, 101516, 101532, 101548,
- 101564, 101580, 101596, 101612, 101628, 101644, 101660, 101676, 101692,
- 101708, 101724, 101740, 101756, 101772, 101788, 101804, 101820, 101836,
- 101852, 101868, 101884, 101900, 101916, 101932, 101948, 101964, 101980,
- 101996, 102012, 102028, 102044, 102060, 102076, 102092, 102108, 102124,
- 102140, 102156, 102172, 102188, 102204, 102220, 102236, 102252, 102268,
- 102284, 102300, 102316, 102332, 102348, 102364, 102380, 102396, 102412,
- 102428, 102444, 102460, 102476, 102492, 102508, 102524, 102540, 102556,
- 102572, 102588, 102604, 102620, 102636, 102652, 102668, 102684, 102700,
- 102716, 102732, 102748, 102764, 102780, 102796, 102812, 102828, 102844,
- 102860, 102876, 102892, 102908, 102924, 102940, 102956, 102972, 102988,
- 103004, 103020, 103036, 103052, 103068, 103084, 103100, 103116, 103132,
- 103148, 103164, 103180, 103196, 103212, 103228, 103244, 103260, 103276,
- 103292, 103308, 103324, 103340, 103356, 103372, 103388, 103404, 103420,
- 103436, 103452, 103468, 103484, 103500, 103516, 103532, 103548, 103564,
- 103580, 103596, 103612, 103628, 103644, 103660, 103676, 103692, 103708,
- 103724, 103740, 103756, 103772, 103788, 103804, 103820, 103836, 103852,
- 103868, 103884, 103900, 103916, 103932, 103948, 103964, 103980, 103996,
- 104012, 104028, 104044, 104060, 104076, 104092, 104108, 104124, 104140,
- 104156, 104172, 104188, 104204, 104220, 104236, 104252, 104268, 104284,
- 104300, 104316, 104332, 104348, 104364, 104380, 104396, 104412, 104428,
- 104444, 104460, 104476, 104492, 104508, 104524, 104540, 104556, 104572,
- 104588, 104604, 104620, 104636, 104652, 104668, 104684, 104700, 104716,
- 104732, 104748, 104764, 104780, 104796, 104812, 104828, 104844, 104860,
- 104876, 104892, 104908, 104924, 104940, 104956, 104972, 104988, 105004,
- 105020, 105036, 105052, 105068, 105084, 105100, 105116, 105132, 105148,
- 105164, 105180, 105196, 105212, 105228, 105244, 105260, 105276, 105292,
- 105308, 105324, 105340, 105356, 105372, 105388, 105404, 105420, 105436,
- 105452, 105468, 105484, 105500, 105516, 105532, 105548, 105564, 105580,
- 105596, 105612, 105628, 105644, 105660, 105676, 105692, 105708, 105724,
- 105740, 105756, 105772, 105788, 105804, 105820, 105836, 105852, 105868,
- 105884, 105900, 105916, 105932, 105948, 105964, 105980, 105996, 106012,
- 106028, 106044, 106060, 106076, 106092, 106108, 106124, 106140, 106156,
- 106172, 106188, 106204, 106220, 106236, 106252, 106268, 106284, 106300,
- 106316, 106332, 106348, 106364, 106380, 106396, 106412, 106428, 106444,
- 106460, 106476, 106492, 106508, 106524, 106540, 106556, 106572, 106588,
- 106604, 106620, 106636, 106652, 106668, 106684, 106700, 106716, 106732,
- 106748, 106764, 106780, 106796, 106812, 106828, 106844, 106860, 106876,
- 106892, 106908, 106924, 106940, 106956, 106972, 106988, 107004, 107020,
- 107036, 107052, 107068, 107084, 107100, 107116, 107132, 107148, 107164,
- 107180, 107196, 107212, 107228, 107244, 107260, 107276, 107292, 107308,
- 107324, 107340, 107356, 107372, 107388, 107404, 107420, 107436, 107452,
- 107468, 107484, 107500, 107516, 107532, 107548, 107564, 107580, 107596,
- 107612, 107628, 107644, 107660, 107676, 107692, 107708, 107724, 107740,
- 107756, 107772, 107788, 107804, 107820, 107836, 107852, 107868, 107884,
- 107900, 107916, 107932, 107948, 107964, 107980, 107996, 108012, 108028,
- 108044, 108060, 108076, 108092, 108108, 108124, 108140, 108156, 108172,
- 108188, 108204, 108220, 108236, 108252, 108268, 108284, 108300, 108316,
- 108332, 108348, 108364, 108380, 108396, 108412, 108428, 108444, 108460,
- 108476, 108492, 108508, 108524, 108540, 108556, 108572, 108588, 108604,
- 108620, 108636, 108652, 108668, 108684, 108700, 108716, 108732, 108748,
- 108764, 108780, 108796, 108812, 108828, 108844, 108860, 108876, 108892,
- 108908, 108924, 108940, 108956, 108972, 108988, 109004, 109020, 109036,
- 109052, 109068, 109084, 109100, 109116, 109132, 109148, 109164, 109180,
- 109196, 109212, 109228, 109244, 109260, 109276, 109292, 109308, 109324,
- 109340, 109356, 109372, 109388, 109404, 109420, 109436, 109452, 109468,
- 109484, 109500, 109516, 109532, 109548, 109564, 109580, 109596, 109612,
- 109628, 109644, 109660, 109676, 109692, 109708, 109724, 109740, 109756,
- 109772, 109788, 109804, 109820, 109836, 109852, 109868, 109884, 109900,
- 109916, 109932, 109948, 109964, 109980, 109996, 110012, 110028, 110044,
- 110060, 110076, 110092, 110108, 110124, 110140, 110156, 110172, 110188,
- 110204, 110220, 110236, 110252, 110268, 110278, 110287, 110292, 110300,
- 75353, 110305, 110311, 110316, 110323, 110332, 110340, 110344, 4223,
- 110350, 110357, 110363, 110367, 19911, 45306, 3200, 110372, 110376,
- 110380, 110387, 110393, 110402, 110408, 110415, 110419, 110440, 110462,
- 110478, 110495, 110514, 110523, 110533, 110541, 110548, 110555, 110561,
- 32164, 110575, 110579, 110585, 110593, 110605, 110611, 110619, 110626,
- 110631, 110636, 110640, 110648, 110655, 110659, 110665, 110671, 110676,
- 3871, 50961, 110682, 110686, 110690, 110694, 110699, 110704, 110709,
- 110715, 110721, 110727, 110734, 110740, 110747, 110753, 110759, 110764,
- 110770, 110775, 110779, 102872, 110784, 102936, 50976, 110789, 110794,
- 110802, 110806, 110811, 110818, 110827, 110833, 110842, 110846, 110853,
- 110857, 110860, 110867, 110873, 110882, 110892, 110902, 110907, 110911,
- 110918, 110926, 110935, 110939, 110947, 110953, 110958, 110963, 110969,
- 110975, 110980, 110984, 31071, 110990, 110994, 110998, 111001, 111006,
- 111014, 111024, 111030, 111035, 111045, 48136, 111053, 111065, 111071,
- 111078, 111084, 111088, 111093, 111099, 111111, 111122, 111129, 111135,
- 111142, 111149, 111161, 111168, 111174, 24986, 111178, 111186, 111192,
- 111199, 111205, 111211, 111217, 111222, 111227, 111232, 111236, 111245,
- 111253, 111264, 7709, 111269, 19347, 111275, 111279, 111283, 111287,
- 111295, 111304, 111308, 111315, 111324, 111332, 111345, 111351, 103448,
- 35520, 111356, 111358, 111363, 111368, 111373, 111378, 111383, 111388,
- 111393, 111398, 111403, 111408, 111413, 111418, 111423, 111428, 111434,
- 111439, 111444, 111449, 111454, 111459, 111464, 111469, 111474, 111480,
- 111486, 111492, 111497, 111502, 111514, 111519, 1840, 54, 111524, 111529,
- 38552, 111533, 38557, 38562, 38568, 38573, 111537, 38578, 26134, 111559,
- 111563, 111567, 111572, 111576, 38582, 111580, 111588, 111595, 111601,
- 111611, 38587, 111618, 111621, 111626, 111630, 111639, 10817, 111647,
- 38592, 25978, 111650, 111654, 111662, 1315, 111667, 38603, 111670,
- 111675, 30437, 30447, 41834, 111680, 111685, 111690, 111695, 111701,
- 111706, 111715, 111720, 111729, 111737, 111744, 111750, 111755, 111760,
- 111765, 111775, 111784, 111792, 111797, 111805, 111809, 111817, 111821,
- 111828, 111835, 111843, 111850, 38407, 45041, 111856, 111862, 111867,
- 111872, 14096, 11556, 111877, 111882, 111887, 111893, 111900, 111906,
- 111915, 111920, 111928, 111938, 111945, 111955, 111961, 111966, 111972,
- 111976, 21341, 111983, 42798, 111996, 112001, 112007, 112022, 36577,
- 73759, 112035, 112039, 112048, 112057, 112064, 112070, 112078, 112084,
- 112093, 112100, 45161, 112106, 112109, 112113, 112117, 112121, 11577,
- 112127, 112134, 112140, 112148, 112153, 112157, 28485, 112163, 112166,
- 112174, 112181, 112189, 112202, 112216, 112223, 112229, 112236, 112242,
- 38617, 112246, 112253, 112261, 112269, 112275, 38622, 112283, 112289,
- 112294, 112304, 112310, 112319, 36372, 41205, 112327, 112332, 112337,
- 112341, 112346, 112350, 112358, 112363, 17439, 18213, 48158, 112367,
- 112372, 38627, 17592, 112376, 112388, 112393, 112397, 112404, 112413,
- 112417, 112425, 112431, 112436, 112444, 112452, 112460, 112468, 112476,
- 112484, 112495, 112501, 8891, 112506, 112512, 112517, 112522, 112533,
- 112542, 112554, 112569, 38915, 112575, 19466, 38631, 112579, 112586,
- 112592, 112596, 28609, 112603, 112609, 112616, 47421, 112625, 112631,
- 112640, 112646, 112651, 112659, 112665, 112670, 38641, 112675, 112684,
- 112693, 111117, 112702, 112709, 112715, 112721, 112730, 112740, 112746,
- 112754, 112761, 112765, 38646, 112768, 38652, 1354, 112773, 112781,
- 112789, 112799, 112808, 112816, 112823, 112833, 38663, 112837, 112839,
- 112843, 112848, 112852, 112856, 112862, 112867, 112871, 112882, 112887,
- 112896, 112901, 3205, 112905, 112912, 112916, 112925, 112933, 112941,
- 112948, 112953, 112958, 72289, 112962, 112965, 112971, 112979, 112985,
- 112989, 112994, 113001, 113006, 113011, 113015, 113022, 113028, 113033,
- 41236, 113037, 113040, 113045, 113049, 113054, 113061, 113066, 113070,
- 46483, 113078, 30456, 30465, 113084, 113090, 113096, 113101, 113105,
- 113108, 113118, 113127, 113132, 113138, 113145, 113151, 113155, 113163,
- 113168, 41242, 83176, 113172, 113180, 113187, 113193, 113200, 113205,
- 113212, 113217, 113221, 113226, 67506, 113232, 113238, 10093, 113243,
- 113248, 113252, 113257, 113262, 113267, 113271, 113276, 113281, 113287,
- 113292, 113297, 113303, 113309, 113314, 113318, 113323, 113328, 113333,
- 113337, 28608, 113342, 113347, 113353, 113359, 113365, 113370, 113374,
- 113379, 113384, 107224, 113389, 113394, 113399, 113404, 107288, 51231,
- 113409, 38671, 113417, 113421, 113429, 113437, 113448, 113453, 113457,
- 26607, 80621, 113462, 113468, 113473, 4534, 113483, 113490, 113495,
- 113503, 113512, 113517, 113521, 113526, 113530, 113538, 113546, 113553,
- 75615, 113559, 113567, 113574, 113585, 113591, 113597, 38681, 113600,
- 113607, 113615, 113620, 113624, 32668, 70116, 113630, 113635, 113642,
- 113647, 9982, 113651, 113659, 113666, 113673, 113682, 113689, 113695,
- 113709, 113717, 6514, 113479, 113723, 113728, 113734, 113738, 113741,
- 113749, 113756, 113761, 113774, 113781, 113787, 113791, 113799, 113804,
- 113811, 113817, 113822, 70387, 113827, 113830, 113839, 113846, 107496,
- 113852, 113855, 113863, 113869, 113878, 113888, 113898, 113907, 113918,
- 113926, 113937, 113942, 113946, 113951, 113955, 41965, 113963, 25314,
- 41974, 113968, 99015, 99031, 99047, 99063, 99079, 113973, 99111, 99127,
- 99143, 99159, 99271, 99287, 113977, 99319, 99335, 113981, 113985, 113989,
- 113993, 99575, 99607, 113997, 99639, 114001, 114005, 99783, 99799, 99815,
- 99831, 114009, 99895, 99911, 114013, 100039, 100055, 100071, 100087,
- 100103, 100119, 100135, 100151, 100167, 100183, 100295, 100311, 100327,
- 100343, 100359, 100375, 100391, 100407, 100423, 100439, 114017, 102231,
- 102343, 102407, 102423, 102439, 102455, 102471, 102487, 102599, 102615,
- 102631, 114021, 102679, 114025, 102711, 102727, 102743, 114029, 114034,
- 114039, 114044, 114049, 114054, 114059, 114063, 114067, 114072, 114077,
- 114081, 114086, 114091, 114095, 114100, 114105, 114110, 114115, 114119,
- 114124, 114129, 114133, 114138, 114142, 114146, 114150, 114154, 114159,
- 114163, 114167, 114171, 114175, 114179, 114183, 114187, 114191, 114195,
- 114200, 114205, 114210, 114215, 114220, 114225, 114230, 114235, 114240,
- 114245, 114249, 114253, 114257, 114261, 114265, 114269, 114274, 114278,
- 114283, 114287, 114292, 114297, 114301, 114305, 114310, 114314, 114318,
- 114322, 114326, 114330, 114334, 114338, 114342, 114346, 114350, 114354,
- 114358, 114362, 114366, 114371, 114376, 114380, 114384, 114388, 114392,
- 114396, 114400, 114405, 114409, 114413, 114417, 114421, 114425, 114429,
- 114434, 114438, 114443, 114447, 114451, 114455, 114459, 114463, 114467,
- 114471, 114475, 114479, 114483, 114487, 114492, 114496, 114500, 114504,
- 114508, 114512, 114516, 114520, 114524, 114528, 114532, 114536, 114541,
- 114545, 114549, 114554, 114559, 114563, 114567, 114571, 114575, 114579,
- 114583, 114587, 114591, 114596, 114600, 114605, 114609, 114614, 114618,
- 114623, 114627, 114633, 114638, 114642, 114647, 114651, 114656, 114660,
- 114665, 114669, 114674, 1429, 114678, 2947, 1694, 27772, 1602, 30392,
- 114682, 2956, 114686, 1284, 114691, 1226, 114695, 114699, 2980, 114703,
- 114711, 114718, 114725, 114739, 2984, 7816, 114748, 114756, 114763,
- 114774, 114783, 114787, 114794, 114806, 114819, 114832, 114843, 114848,
- 114855, 114867, 114871, 2988, 13750, 114881, 114886, 114895, 114905,
- 114910, 2992, 114918, 114922, 114927, 114934, 114940, 114945, 114954,
- 114962, 114974, 114984, 1231, 15184, 114997, 115001, 115007, 115021,
- 115033, 115045, 115053, 115063, 115072, 115081, 115090, 115098, 115109,
- 115117, 4542, 115127, 115138, 115147, 115153, 115168, 115175, 115181,
- 115186, 42108, 115191, 3016, 15188, 115195, 115200, 115207, 9913, 115216,
- 115222, 3021, 38073, 115231, 70006, 115238, 115242, 115248, 115259,
- 115265, 115270, 115277, 115283, 115291, 115298, 115304, 115315, 115331,
- 115341, 115350, 115361, 115370, 115377, 115383, 115393, 115401, 115407,
- 115422, 115428, 115433, 115437, 115444, 115452, 115456, 115459, 115465,
- 115472, 115478, 115486, 115495, 115503, 115509, 115518, 50546, 115532,
- 115537, 115543, 17198, 115548, 115561, 115573, 115582, 115590, 115597,
- 115601, 115605, 115608, 115615, 115622, 115630, 115638, 115647, 115655,
- 17103, 115663, 115668, 115672, 115684, 115691, 115698, 115707, 936,
- 115717, 115726, 115737, 3042, 115741, 115745, 115751, 115764, 115776,
- 115786, 115795, 115807, 31225, 115818, 115826, 115835, 115846, 115857,
- 115867, 115877, 115885, 115894, 115902, 13175, 115909, 115913, 115916,
- 115921, 115926, 115930, 115936, 1236, 115943, 115947, 13838, 115951,
- 115962, 115971, 115979, 115988, 115996, 116012, 116023, 116032, 116040,
- 116052, 116063, 116079, 116089, 116110, 116124, 116137, 116145, 116152,
- 7862, 116165, 116170, 116176, 6523, 116182, 116185, 116192, 116202, 8993,
- 116209, 116214, 116219, 116226, 116231, 116239, 116248, 116256, 116261,
- 116270, 116277, 11055, 11064, 116283, 116294, 116300, 116305, 116311,
- 3058, 3063, 116317, 1025, 116323, 116330, 116337, 116350, 116360, 116365,
- 2229, 87, 116373, 116380, 116385, 116393, 116403, 116412, 116418, 116427,
- 116435, 116445, 116449, 116453, 116458, 116462, 116474, 3086, 116482,
- 116490, 116495, 116506, 116517, 116529, 116540, 116550, 116559, 25362,
- 116564, 116570, 116575, 116585, 116595, 116600, 33382, 116606, 116611,
- 116620, 25374, 116624, 4651, 8, 116629, 116638, 116645, 116652, 116658,
- 116663, 116667, 116673, 33406, 116678, 116683, 70678, 116688, 116693,
- 116699, 116705, 116713, 116718, 116726, 116733, 116739, 116744, 46352,
- 50440, 116750, 1765, 32, 116760, 116765, 116778, 116783, 116791, 116796,
- 116802, 3112, 33461, 116807, 116815, 116822, 116827, 116832, 116841,
- 4225, 4236, 71887, 116849, 116853, 1629, 1777, 116858, 116863, 116870,
- 33814, 1781, 323, 116877, 116883, 116888, 3134, 116892, 116897, 116904,
- 1785, 116909, 116915, 116920, 116932, 6760, 116942, 116949, 1792, 116955,
- 116960, 116967, 116974, 116989, 116996, 117007, 117012, 117020, 2677,
- 117024, 117036, 117041, 117045, 117051, 33260, 2234, 117055, 117066,
- 117070, 117074, 117080, 117084, 117093, 117097, 117108, 117112, 2280,
- 37890, 117116, 117126, 117134, 3225, 117140, 117149, 117157, 10454,
- 117162, 117170, 117175, 117179, 117188, 117195, 117201, 3195, 17262,
- 117205, 117218, 42811, 117236, 117241, 117249, 117257, 117267, 11364,
- 15306, 117279, 117292, 117299, 117309, 117323, 117330, 117346, 117353,
- 117359, 25412, 14519, 117366, 117373, 117383, 117392, 51230, 117404,
- 117412, 51365, 117419, 117422, 117428, 117434, 117440, 117446, 117452,
- 117459, 117466, 117472, 117478, 117484, 117490, 117496, 117502, 117508,
- 117514, 117520, 117526, 117532, 117538, 117544, 117550, 117556, 117562,
- 117568, 117574, 117580, 117586, 117592, 117598, 117604, 117610, 117616,
- 117622, 117628, 117634, 117640, 117646, 117652, 117658, 117664, 117670,
- 117676, 117682, 117688, 117694, 117700, 117706, 117712, 117718, 117724,
- 117730, 117736, 117742, 117748, 117754, 117760, 117766, 117772, 117779,
- 117785, 117792, 117799, 117805, 117812, 117819, 117825, 117831, 117837,
- 117843, 117849, 117855, 117861, 117867, 117873, 117879, 117885, 117891,
- 117897, 117903, 117909, 3209, 10427, 117915, 117925, 117931, 117939,
- 117943, 114930, 3213, 117947, 111346, 25115, 14131, 4150, 117951, 3219,
- 117955, 117965, 117971, 117977, 117983, 117989, 117995, 118001, 118007,
- 118013, 118019, 118025, 118031, 118037, 118043, 118049, 118055, 118061,
- 118067, 118073, 118079, 118085, 118091, 118097, 118103, 118109, 118115,
- 118122, 118129, 118135, 118141, 118147, 118153, 118159, 118165, 1241,
- 118171, 118176, 118181, 118186, 118191, 118196, 118201, 118206, 118211,
- 118215, 118219, 118223, 118227, 118231, 118235, 118239, 118243, 118247,
- 118253, 118259, 118265, 118271, 118275, 118279, 118283, 118287, 118291,
- 118295, 118299, 118303, 118307, 118312, 118317, 118322, 118327, 118332,
- 118337, 118342, 118347, 118352, 118357, 118362, 118367, 118372, 118377,
- 118382, 118387, 118392, 118397, 118402, 118407, 118412, 118417, 118422,
- 118427, 118432, 118437, 118442, 118447, 118452, 118457, 118462, 118467,
- 118472, 118477, 118482, 118487, 118492, 118497, 118502, 118507, 118512,
- 118517, 118522, 118527, 118532, 118537, 118542, 118547, 118552, 118557,
- 118562, 118567, 118572, 118577, 118582, 118587, 118592, 118597, 118602,
- 118607, 118612, 118617, 118622, 118627, 118632, 118637, 118642, 118647,
- 118652, 118657, 118662, 118667, 118672, 118677, 118682, 118687, 118692,
- 118697, 118702, 118707, 118712, 118717, 118722, 118727, 118732, 118737,
- 118742, 118747, 118752, 118757, 118762, 118767, 118772, 118777, 118782,
- 118787, 118792, 118797, 118802, 118807, 118812, 118817, 118822, 118827,
- 118832, 118837, 118842, 118847, 118852, 118857, 118862, 118867, 118872,
- 118877, 118882, 118887, 118892, 118897, 118902, 118907, 118912, 118917,
- 118922, 118927, 118932, 118937, 118942, 118947, 118952, 118957, 118962,
- 118967, 118972, 118977, 118982, 118987, 118992, 118997, 119002, 119007,
- 119012, 119017, 119022, 119027, 119032, 119037, 119042, 119047, 119052,
- 119057, 119062, 119067, 119072, 119077, 119082, 119087, 119092, 119097,
- 119102, 119107, 119112, 119117, 119122, 119127, 119132, 119137, 119142,
- 119147, 119152, 119157, 119162, 119167, 119172, 119177, 119182, 119187,
- 119192, 119197, 119203, 119208, 119213, 119218, 119223, 119228, 119233,
- 119238, 119244, 119249, 119254, 119259, 119264, 119269, 119274, 119279,
- 119284, 119289, 119294, 119299, 119304, 119309, 119314, 119319, 119324,
- 119329, 119334, 119339, 119344, 119349, 119354, 119359, 119364, 119369,
- 119374, 119379, 119384, 119389, 119394, 119399, 119404, 119413, 119418,
- 119427, 119432, 119441, 119446, 119455, 119460, 119469, 119474, 119483,
- 119488, 119497, 119502, 119511, 119516, 119521, 119530, 119534, 119543,
- 119548, 119557, 119562, 119571, 119576, 119585, 119590, 119599, 119604,
- 119613, 119618, 119627, 119632, 119641, 119646, 119655, 119660, 119669,
- 119674, 119679, 119684, 119689, 119694, 119699, 119704, 119708, 119713,
- 119718, 119723, 119728, 119733, 119738, 119744, 119749, 119754, 119759,
- 119765, 119769, 119774, 119780, 119785, 119790, 119795, 119800, 119805,
- 119810, 119815, 119820, 119825, 119830, 119836, 119841, 119846, 119851,
- 119857, 119862, 119867, 119872, 119877, 119883, 119888, 119893, 119898,
- 119903, 119908, 119914, 119919, 119924, 119929, 119934, 119939, 119944,
- 119949, 119954, 119959, 119964, 119969, 119974, 119979, 119984, 119989,
- 119994, 119999, 120004, 120009, 120014, 120019, 120024, 120029, 120035,
- 120041, 120047, 120052, 120057, 120062, 120067, 120073, 120079, 120085,
- 120090, 120095, 120100, 120106, 120111, 120116, 120121, 120126, 120131,
- 120136, 120141, 120146, 120151, 120156, 120161, 120166, 120171, 120176,
- 120181, 120186, 120192, 120198, 120204, 120209, 120214, 120219, 120224,
- 120230, 120236, 120242, 120247, 120252, 120257, 120262, 120267, 120272,
- 120277, 120282, 120287, 18854, 120292, 120298, 120303, 120308, 120313,
- 120318, 120323, 120329, 120334, 120339, 120344, 120349, 120354, 120360,
- 120365, 120370, 120375, 120380, 120385, 120390, 120395, 120400, 120405,
- 120410, 120415, 120420, 120425, 120430, 120435, 120440, 120445, 120450,
- 120455, 120460, 120465, 120470, 120476, 120481, 120486, 120491, 120496,
- 120501, 120506, 120511, 120516, 120521, 120526, 120531, 120536, 120541,
- 120546, 120551, 120556, 120561, 120566, 120571, 120576, 120581, 120586,
- 120591, 120596, 120601, 120606, 120611, 120616, 120621, 120626, 120631,
- 120636, 120641, 120646, 120651, 120656, 120661, 120666, 120671, 120676,
- 120682, 120687, 120692, 120697, 120702, 120707, 120712, 120717, 120722,
- 120727, 120732, 120737, 120743, 120748, 120754, 120759, 120764, 120769,
- 120774, 120779, 120784, 120790, 120795, 120800, 120806, 120811, 120816,
- 120821, 120826, 120831, 120837, 120843, 120848, 120853, 14153, 120858,
- 120863, 120868, 120873, 120878, 120883, 120888, 120893, 120898, 120903,
- 120908, 120913, 120918, 120923, 120928, 120933, 120938, 120943, 120948,
- 120953, 120958, 120963, 120968, 120973, 120978, 120983, 120988, 120993,
- 120998, 121003, 121008, 121013, 121018, 121023, 121028, 121033, 121038,
- 121043, 121048, 121053, 121058, 121063, 121068, 121073, 121078, 121083,
- 121088, 121093, 121098, 121103, 121108, 121113, 121118, 121123, 121128,
- 121133, 121138, 121143, 121148, 121153, 121158, 121163, 121168, 121173,
- 121178, 121184, 121189, 121194, 121199, 121204, 121210, 121215, 121220,
- 121225, 121230, 121235, 121240, 121246, 121251, 121256, 121261, 121266,
- 121271, 121277, 121282, 121287, 121292, 121297, 121302, 121308, 121313,
- 121318, 121323, 121328, 121333, 121339, 121345, 121350, 121355, 121360,
- 121366, 121372, 121378, 121383, 121388, 121394, 121400, 121405, 121411,
- 121417, 121423, 121428, 121433, 121439, 121444, 121450, 121455, 121461,
- 121470, 121475, 121480, 121486, 121491, 121497, 121502, 121507, 121512,
- 121517, 121522, 121527, 121532, 121537, 121542, 121547, 121552, 121557,
- 121562, 121567, 121572, 121577, 121582, 121587, 121592, 121597, 121602,
- 121607, 121612, 121617, 121622, 121627, 121632, 121637, 121642, 121647,
- 121652, 121658, 121664, 121670, 121675, 121680, 121685, 121690, 121695,
- 121700, 121705, 121710, 121715, 121720, 121725, 121730, 121735, 121740,
- 121745, 121750, 121755, 121760, 121765, 121770, 121776, 121782, 121787,
- 121793, 121798, 121803, 121809, 121814, 121820, 121825, 121831, 121836,
- 121842, 121847, 121853, 121858, 121863, 121868, 121873, 121878, 121883,
- 121888, 117966, 117972, 117978, 117984, 121894, 117990, 117996, 121900,
- 118002, 118008, 118014, 118020, 118026, 118032, 118038, 118044, 118050,
- 121906, 118056, 118062, 118068, 121912, 118074, 118080, 118086, 118092,
- 121918, 118098, 118104, 118110, 118130, 121924, 121930, 118136, 121936,
- 118142, 118148, 118154, 118160, 118166, 121942, 3236, 3241, 121947, 3256,
- 3261, 3266, 121952, 121955, 121961, 121967, 121974, 121979, 121984, 2285,
+static const unsigned int lexicon_offset[] = {
+ 0, 0, 6, 11, 15, 19, 27, 34, 44, 49, 55, 64, 66, 69, 81, 89, 102, 108,
+ 113, 118, 124, 129, 137, 146, 157, 162, 167, 170, 176, 180, 189, 195,
+ 201, 207, 212, 220, 227, 235, 241, 250, 177, 253, 254, 262, 268, 273,
+ 278, 282, 289, 296, 306, 312, 317, 322, 325, 331, 337, 340, 345, 351,
+ 361, 366, 371, 376, 382, 384, 393, 400, 407, 409, 418, 349, 420, 428,
+ 436, 438, 446, 447, 452, 455, 462, 464, 470, 477, 482, 490, 496, 503,
+ 508, 515, 520, 523, 527, 533, 538, 548, 553, 560, 563, 571, 579, 588,
+ 592, 596, 599, 603, 606, 611, 621, 628, 635, 642, 649, 654, 659, 668,
+ 670, 679, 683, 690, 698, 702, 710, 714, 277, 723, 736, 740, 745, 750,
+ 756, 758, 768, 771, 777, 782, 791, 795, 800, 804, 808, 813, 819, 823,
+ 831, 834, 843, 852, 860, 868, 780, 879, 884, 889, 897, 904, 907, 917,
+ 921, 925, 932, 935, 939, 946, 952, 633, 958, 961, 964, 967, 976, 980,
+ 985, 988, 992, 998, 1003, 1006, 1009, 1014, 1020, 1029, 1032, 1037, 1046,
+ 598, 1050, 1058, 1063, 1066, 1069, 1072, 1078, 1083, 1088, 1094, 1099,
+ 1104, 1109, 1113, 1118, 1124, 1129, 1134, 1138, 1144, 1149, 1154, 1159,
+ 1163, 1168, 1173, 1178, 1184, 1190, 1196, 1201, 1205, 1210, 1215, 1220,
+ 1224, 1229, 1234, 1239, 1244, 1079, 1084, 1089, 1095, 1100, 1248, 1110,
+ 1254, 1259, 1264, 1271, 1275, 1278, 1287, 1114, 1291, 1119, 1125, 1130,
+ 1295, 1300, 1305, 1309, 1313, 1319, 1323, 1135, 1326, 1328, 1145, 1333,
+ 1337, 1150, 1343, 1155, 1347, 1351, 1358, 1160, 1362, 1367, 1371, 1374,
+ 1378, 1164, 1169, 1383, 1389, 1174, 1401, 1407, 1413, 1419, 1179, 1191,
+ 1197, 1423, 1427, 1431, 1434, 1202, 1438, 1440, 1445, 1450, 1456, 1461,
+ 1466, 1470, 1475, 1480, 1485, 1490, 1496, 1501, 1506, 1512, 1518, 1523,
+ 1527, 1532, 1537, 1542, 1547, 1552, 1556, 1564, 1569, 1573, 1578, 1583,
+ 1588, 1593, 1597, 1600, 1607, 1612, 1617, 1622, 1627, 1633, 1638, 1642,
+ 1206, 1645, 1650, 1655, 1660, 1211, 1664, 1668, 1675, 1216, 1682, 1687,
+ 1221, 1691, 1693, 1698, 1709, 1715, 1225, 1720, 1729, 1230, 1734, 1740,
+ 1745, 1235, 1750, 1759, 1764, 1768, 1771, 1776, 1780, 1784, 1788, 1791,
+ 1795, 1240, 1800, 1245, 1804, 1806, 1812, 1818, 1824, 1830, 1836, 1842,
+ 1848, 1854, 1859, 1865, 1871, 1877, 1883, 1889, 1895, 1901, 1907, 1913,
+ 1918, 1923, 1928, 1933, 1938, 1943, 1948, 1953, 1958, 1963, 1969, 1974,
+ 1980, 1985, 1991, 1997, 2002, 2008, 2014, 2020, 2026, 2031, 2036, 2038,
+ 2039, 2043, 2047, 2052, 2056, 2060, 2064, 2069, 2073, 2076, 2081, 2085,
+ 2090, 2094, 2098, 2103, 2107, 2110, 2114, 2120, 2134, 2138, 2142, 2146,
+ 2149, 2154, 2158, 2162, 2165, 2169, 2174, 2179, 2184, 2189, 2193, 2197,
+ 2201, 2205, 2209, 2214, 2218, 2223, 2227, 2232, 2238, 2245, 2251, 2256,
+ 2261, 2266, 2272, 2277, 2283, 2288, 2293, 2298, 2303, 2308, 2311, 2313,
+ 1096, 2317, 2324, 2332, 2342, 2351, 2365, 2369, 2373, 2378, 2391, 2399,
+ 2402, 2406, 2409, 2414, 2418, 2421, 2425, 2429, 2434, 1704, 2439, 2443,
+ 2446, 2450, 2456, 2463, 2470, 2476, 2481, 2486, 2492, 2498, 2503, 2508,
+ 2513, 2518, 2523, 2528, 2453, 2533, 1695, 2535, 2541, 2545, 2550, 2554,
+ 2558, 1603, 1717, 2563, 2567, 2571, 2574, 2579, 2584, 2589, 2594, 2598,
+ 2605, 2610, 2613, 2617, 2621, 2628, 2634, 2638, 2644, 2648, 2652, 2657,
+ 2664, 2669, 2674, 2681, 2687, 2693, 2699, 2720, 2734, 2751, 2766, 2782,
+ 2799, 2814, 2823, 2828, 2832, 2837, 2842, 2846, 2858, 2865, 2871, 2241,
+ 2877, 2884, 2890, 2894, 2897, 2904, 2910, 2915, 2919, 2924, 2928, 2932,
+ 2061, 2936, 2941, 2946, 2950, 2955, 2963, 2967, 2974, 2979, 2983, 2987,
+ 2991, 2996, 3001, 3006, 3010, 3015, 3020, 3024, 3029, 3034, 3038, 3041,
+ 3045, 3049, 3057, 3062, 3066, 3070, 3076, 3085, 3089, 3093, 3099, 3104,
+ 3111, 3115, 3125, 3129, 3133, 3138, 3142, 3147, 3153, 3158, 3162, 3166,
+ 3170, 2466, 3178, 3183, 3189, 3194, 3198, 3203, 3208, 3212, 3218, 3223,
+ 2065, 3229, 3235, 3240, 3245, 3250, 3255, 3260, 3265, 3270, 3275, 3280,
+ 3285, 3290, 3295, 3300, 3305, 3311, 3316, 1111, 101, 3322, 3326, 3330,
+ 3334, 3339, 3343, 3347, 3353, 3358, 3362, 3366, 3371, 3376, 3380, 3385,
+ 3389, 3392, 3396, 3401, 3405, 3410, 3414, 3417, 3419, 3423, 3427, 3432,
+ 3436, 3439, 3452, 3456, 3460, 3464, 3469, 3473, 3477, 3480, 3484, 3488,
+ 3493, 3497, 3502, 3507, 3512, 3516, 3523, 3528, 3531, 3537, 3540, 3545,
+ 3551, 3555, 3559, 3562, 3567, 3571, 3576, 3580, 3584, 3587, 3593, 3598,
+ 3603, 3609, 3614, 3619, 3625, 3631, 3636, 3641, 3646, 3651, 978, 605,
+ 3654, 3657, 3662, 3666, 3670, 3674, 3678, 3681, 3685, 3690, 3695, 3699,
+ 3704, 3708, 3713, 3717, 3721, 3725, 3731, 3737, 3740, 3743, 150, 3749,
+ 3754, 3763, 3771, 3780, 3790, 3797, 3803, 3810, 3815, 3819, 3823, 3831,
+ 3838, 3843, 3848, 3855, 3860, 3864, 3874, 3878, 3882, 3887, 3892, 3902,
+ 2077, 3907, 3911, 3914, 3920, 3925, 3931, 3937, 3942, 3949, 3953, 3957,
+ 3961, 3966, 3971, 3976, 3981, 3986, 3991, 600, 597, 1272, 3996, 4003,
+ 4010, 4016, 4021, 4028, 4035, 4040, 4046, 4052, 4057, 4061, 4067, 4074,
+ 4079, 4083, 4087, 2086, 4093, 4101, 4107, 4115, 838, 4121, 4129, 4140,
+ 4144, 4154, 4160, 4165, 4170, 4175, 4180, 2091, 4185, 4190, 4205, 4211,
+ 4218, 4229, 4239, 4245, 4250, 4256, 4262, 4265, 4268, 4272, 4277, 4280,
+ 4287, 4296, 4301, 4305, 4309, 4313, 4317, 4322, 4328, 4339, 4343, 3397,
+ 4348, 4360, 4366, 4374, 4378, 4383, 4390, 4395, 4400, 4405, 1472, 4410,
+ 4413, 4416, 4420, 4423, 4429, 4433, 4447, 4451, 4454, 4458, 4464, 4470,
+ 4475, 4479, 4483, 4489, 4500, 4506, 4511, 4517, 4521, 4529, 4541, 4551,
+ 4557, 4562, 4571, 4579, 4586, 4592, 4598, 4602, 4608, 4617, 4626, 4631,
+ 4637, 4641, 4650, 4655, 4659, 4664, 4668, 4676, 4682, 4686, 4693, 4698,
+ 4702, 4708, 2099, 4714, 4719, 4724, 4729, 4734, 1288, 4739, 4744, 4750,
+ 4755, 4760, 4765, 4770, 4775, 4780, 4786, 4791, 4797, 4802, 4807, 4812,
+ 4818, 4823, 4828, 4833, 4838, 4844, 4849, 4855, 4860, 4865, 4870, 4875,
+ 4880, 4885, 4891, 4896, 4901, 329, 370, 4906, 4912, 4916, 4920, 4925,
+ 4929, 4933, 4936, 4940, 4944, 4947, 4951, 4955, 4959, 4964, 4968, 4972,
+ 4978, 4987, 4711, 4992, 4996, 4999, 5004, 5009, 5014, 5019, 5024, 5029,
+ 5034, 5039, 5044, 5049, 5053, 5058, 5063, 5068, 5073, 5078, 5083, 5088,
+ 5093, 5098, 5103, 5107, 5112, 5117, 5122, 5127, 5132, 5137, 5142, 5147,
+ 5152, 5157, 5161, 5166, 5171, 5176, 5181, 5186, 5191, 5196, 5201, 5206,
+ 5211, 5215, 5220, 5225, 5230, 5235, 5240, 5245, 5250, 5255, 5260, 5265,
+ 5269, 5274, 5279, 5284, 5289, 5294, 5299, 5304, 5309, 5314, 5319, 5323,
+ 5328, 5333, 5338, 5343, 5348, 5353, 5358, 5363, 5368, 5373, 5377, 5382,
+ 5387, 5392, 5397, 5403, 5409, 5415, 5421, 5427, 5433, 5439, 5444, 5450,
+ 5456, 5462, 5468, 5474, 5480, 5486, 5492, 5498, 5504, 5509, 5515, 5521,
+ 5527, 5533, 5539, 5545, 5551, 5557, 5563, 5569, 5574, 5580, 5586, 5592,
+ 5598, 5604, 5610, 5616, 5622, 5628, 5634, 5639, 5645, 5651, 5657, 5663,
+ 5669, 5675, 5681, 5687, 5693, 5699, 5704, 5710, 5716, 5722, 5728, 5734,
+ 5740, 5746, 5752, 5758, 5764, 5769, 5773, 5779, 5785, 5791, 5797, 5803,
+ 5809, 5815, 5821, 5827, 5833, 5838, 5844, 5850, 5856, 5862, 5868, 5874,
+ 5880, 5886, 5892, 5898, 5903, 5909, 5915, 5921, 5927, 5933, 5939, 5945,
+ 5951, 5957, 5963, 5968, 5974, 5980, 5986, 5992, 5998, 6004, 6010, 6016,
+ 6022, 6028, 6033, 6039, 6045, 6051, 6057, 6063, 6069, 6075, 6081, 6087,
+ 6093, 6098, 6104, 6110, 6116, 6122, 6128, 6134, 6140, 6146, 6152, 6158,
+ 6163, 6169, 6175, 6181, 6187, 6193, 6199, 6205, 6211, 6217, 6223, 6228,
+ 6234, 6240, 6246, 6252, 6258, 6264, 6270, 6276, 6282, 6288, 6293, 6299,
+ 6305, 6311, 6317, 6323, 6329, 6335, 6341, 6347, 6353, 6358, 6364, 6370,
+ 6376, 6382, 6388, 6394, 6400, 6406, 6412, 6418, 6423, 6427, 6430, 6437,
+ 6441, 6454, 6458, 6462, 6466, 6469, 6473, 6478, 6482, 6491, 6495, 6501,
+ 6508, 6519, 6527, 6534, 6540, 6544, 6552, 6561, 6567, 6571, 6583, 6588,
+ 6591, 6596, 6600, 6610, 6618, 6626, 6632, 6636, 6646, 6656, 6664, 6671,
+ 6678, 6684, 6690, 6697, 6701, 6708, 6718, 6728, 6736, 6743, 6748, 6752,
+ 6756, 6764, 6768, 6778, 6783, 6790, 6798, 6808, 6813, 6817, 6822, 6826,
+ 6833, 6838, 6852, 6857, 6862, 6869, 3667, 6878, 6882, 6886, 6891, 6895,
+ 6899, 6902, 6907, 6912, 6921, 6927, 6933, 6938, 6944, 6948, 6959, 6969,
+ 6984, 6999, 7014, 7029, 7044, 7059, 7074, 7089, 7104, 7119, 7134, 7149,
+ 7164, 7179, 7194, 7209, 7224, 7239, 7254, 7269, 7284, 7299, 7314, 7329,
+ 7344, 7359, 7374, 7389, 7404, 7419, 7434, 7449, 7464, 7479, 7494, 7509,
+ 7524, 7539, 7554, 7569, 7584, 7599, 7614, 7629, 7644, 7659, 7674, 7689,
+ 7704, 7713, 7722, 7727, 7733, 7743, 7747, 7751, 7756, 7761, 7766, 7774,
+ 7778, 7781, 7785, 3120, 7788, 7793, 348, 551, 7799, 7807, 7811, 7815,
+ 7818, 7822, 7828, 7832, 7840, 7846, 7851, 7858, 7866, 7873, 7879, 7884,
+ 7891, 7897, 7906, 7914, 7918, 7923, 7931, 7943, 7954, 7961, 7972, 7976,
+ 7980, 7984, 7987, 7993, 3424, 7997, 7999, 8005, 8010, 8015, 8020, 8026,
+ 8031, 8036, 8041, 8046, 8052, 8057, 8062, 8068, 8073, 8079, 8084, 8090,
+ 8095, 8101, 8106, 8111, 8116, 8121, 8126, 8132, 8137, 8142, 8147, 8153,
+ 8159, 8165, 8171, 8177, 8183, 8189, 8195, 8201, 8207, 8213, 8219, 8224,
+ 8229, 8234, 8239, 8244, 8249, 8254, 8259, 8265, 8271, 8276, 8282, 8288,
+ 8294, 8299, 8304, 8309, 8314, 8320, 8326, 8331, 8336, 8341, 8346, 8351,
+ 8357, 8362, 8368, 8374, 8380, 8386, 8392, 8398, 8404, 8410, 8416, 2108,
+ 7817, 8421, 8425, 8433, 8437, 8440, 8447, 8450, 8454, 8462, 8467, 8472,
+ 8463, 8477, 2135, 8481, 8487, 8493, 8498, 8503, 8510, 8518, 8523, 8527,
+ 8530, 8534, 8540, 8546, 8550, 1647, 594, 8553, 8557, 8562, 8568, 8573,
+ 8577, 8580, 8584, 8590, 8595, 8599, 8606, 8610, 8614, 8618, 779, 8621,
+ 8623, 8631, 8638, 8645, 8651, 8658, 8666, 8673, 8684, 8691, 8697, 8709,
+ 1131, 1296, 1301, 8720, 8724, 1306, 8728, 8732, 8741, 8749, 8753, 8762,
+ 8768, 8774, 8779, 8783, 8789, 8794, 8802, 8809, 2819, 8816, 8822, 8826,
+ 8835, 8844, 8853, 8862, 8868, 8873, 8878, 8889, 8898, 8910, 8915, 8923,
+ 2194, 8927, 8929, 8934, 8938, 8947, 8955, 1310, 165, 3709, 3714, 8961,
+ 8965, 8974, 8980, 8985, 8988, 8997, 2206, 9003, 2811, 9007, 9015, 9019,
+ 9023, 9027, 9031, 2215, 9035, 9040, 9047, 9053, 9059, 9062, 9064, 9067,
+ 9075, 9083, 9091, 9094, 9099, 2228, 9104, 8474, 9107, 9109, 9114, 9119,
+ 9124, 9129, 9134, 9139, 9144, 9149, 9154, 9159, 9165, 9170, 9175, 9180,
+ 9186, 9191, 9196, 9201, 9206, 9211, 9216, 9222, 9227, 9232, 9237, 9242,
+ 9247, 9252, 9257, 9262, 9267, 9272, 9277, 9282, 9287, 9292, 9297, 9302,
+ 9307, 9313, 9319, 9324, 9329, 9334, 9339, 9344, 2239, 2246, 2252, 9349,
+ 9357, 9363, 9371, 2278, 2284, 9379, 2289, 2294, 2299, 2304, 9383, 9387,
+ 9392, 9396, 9400, 9404, 9409, 9413, 9418, 9422, 9425, 9428, 9434, 9441,
+ 9447, 9454, 9460, 9467, 9473, 9480, 9486, 9492, 9501, 9507, 9511, 9515,
+ 9519, 9523, 9528, 9532, 9537, 9541, 9547, 9551, 9556, 9563, 9574, 9582,
+ 9592, 9598, 9608, 9617, 9624, 9629, 9633, 9644, 9654, 9667, 9678, 9691,
+ 9702, 9714, 9726, 9738, 9749, 9762, 9775, 9782, 9788, 9799, 9809, 9823,
+ 9830, 9836, 9845, 9853, 9857, 9862, 9866, 9873, 9881, 9888, 9892, 9898,
+ 9902, 9908, 9918, 9922, 9927, 9932, 9939, 9945, 8653, 9955, 9959, 9966,
+ 9972, 9979, 9986, 9990, 9993, 9999, 10003, 10008, 10013, 10018, 10022,
+ 10028, 10036, 10043, 10049, 10053, 10056, 10062, 10072, 10076, 10082,
+ 10087, 10091, 10096, 10100, 10106, 10112, 10117, 10123, 10128, 10133,
+ 10138, 2131, 10143, 10145, 10150, 10158, 10167, 10171, 10177, 10182,
+ 10187, 10192, 10197, 10203, 10208, 10213, 4485, 10218, 10223, 10227,
+ 10233, 10238, 10244, 10249, 10254, 10260, 10265, 10172, 10271, 10275,
+ 10282, 10288, 10293, 10297, 6848, 10302, 10311, 10316, 10321, 9043, 9050,
+ 10326, 2993, 10330, 10335, 10340, 10345, 10183, 10349, 10354, 10359,
+ 10188, 10363, 10193, 10368, 10375, 10382, 10388, 10395, 10401, 10407,
+ 10412, 10419, 10424, 10429, 10434, 10440, 10198, 10204, 10446, 10452,
+ 10457, 10462, 10470, 10209, 10475, 10478, 10480, 10488, 10494, 10500,
+ 10509, 10517, 10525, 10533, 10541, 10549, 10557, 10565, 10573, 10582,
+ 10591, 10599, 10608, 10617, 10626, 10635, 10644, 10653, 10662, 10671,
+ 10680, 10689, 10697, 10702, 10706, 10712, 10720, 10727, 10742, 10759,
+ 10778, 10787, 10795, 10810, 10821, 10829, 10839, 10849, 10857, 10863,
+ 10875, 10884, 10892, 10899, 10906, 10913, 10919, 10924, 10934, 10942,
+ 10952, 10959, 10969, 10979, 10989, 10997, 11004, 11013, 11023, 11037,
+ 11052, 11061, 11069, 11074, 11078, 11087, 11093, 11098, 11108, 11118,
+ 11128, 11133, 11137, 11147, 11156, 11161, 11177, 11194, 11204, 11209,
+ 11220, 11233, 11244, 11252, 11265, 11277, 11285, 11290, 11294, 11300,
+ 11305, 11313, 11321, 11328, 11339, 11344, 11352, 11362, 11368, 11372,
+ 11375, 11379, 11385, 11392, 11396, 11404, 11413, 11421, 11428, 11433,
+ 11438, 11442, 11446, 11454, 11469, 11485, 11491, 11499, 11508, 11516,
+ 11522, 11526, 11533, 11544, 11548, 11551, 11562, 11568, 11573, 10214,
+ 11581, 11587, 11594, 11600, 11605, 11612, 11619, 11626, 11633, 11640,
+ 11647, 11654, 11661, 11668, 11675, 11682, 11689, 11696, 11703, 11710,
+ 11715, 10755, 11720, 11726, 11733, 11740, 11745, 11752, 11761, 11765,
+ 11777, 11781, 11787, 11792, 11797, 11802, 11807, 11812, 11817, 11820,
+ 11824, 11828, 11832, 11836, 11842, 11848, 11853, 11859, 11864, 11869,
+ 11875, 11880, 11885, 9935, 11890, 11894, 11898, 11902, 11907, 11912,
+ 11917, 11925, 11931, 11936, 11940, 11944, 11951, 11956, 11964, 11971,
+ 11976, 11980, 11983, 11989, 11996, 12000, 12003, 12008, 12012, 4524,
+ 12018, 12027, 46, 12035, 12041, 12046, 12051, 12059, 12066, 12071, 6773,
+ 12077, 12083, 12088, 12092, 12095, 12110, 12129, 12141, 12154, 12167,
+ 12180, 12194, 12207, 12222, 12229, 10219, 12235, 12249, 12254, 12260,
+ 12265, 12273, 12278, 8831, 12283, 12286, 12294, 12301, 12306, 12310,
+ 12316, 12320, 12325, 12330, 12335, 12340, 12345, 12350, 2998, 10837,
+ 12355, 12359, 12365, 12371, 12376, 12382, 12387, 10228, 12393, 12399,
+ 12404, 12409, 12417, 12423, 12436, 12444, 12451, 12457, 10234, 12463,
+ 12471, 12479, 12486, 12499, 12512, 12524, 12534, 12546, 12574, 12582,
+ 12591, 12598, 12610, 12617, 12627, 12636, 12644, 12651, 12656, 12662,
+ 10239, 12667, 12673, 12678, 12683, 12688, 10245, 12693, 12696, 12703,
+ 12709, 12723, 12736, 12747, 9567, 12758, 12764, 12773, 12781, 12788,
+ 12794, 12805, 12811, 12816, 12824, 4012, 12830, 12835, 12102, 12841,
+ 12848, 12853, 10250, 12859, 12864, 12871, 12877, 12883, 12888, 12896,
+ 12904, 12911, 12915, 12927, 12941, 12951, 12956, 12960, 12971, 12977,
+ 12982, 12987, 10255, 12991, 10261, 12996, 12999, 13004, 13016, 13023,
+ 13028, 13032, 13040, 13045, 13049, 13054, 13058, 13065, 13071, 10266,
+ 10173, 13078, 3003, 17, 13085, 13090, 13094, 13098, 13104, 13112, 13122,
+ 13127, 13132, 13139, 13146, 13150, 13161, 13171, 13180, 13189, 13201,
+ 13206, 13210, 13218, 13232, 13236, 13239, 13243, 13251, 13258, 13266,
+ 13270, 13281, 13289, 13293, 13300, 13305, 13309, 13315, 13320, 13326,
+ 13331, 13336, 13340, 13346, 13351, 13362, 13366, 13369, 13375, 13382,
+ 13388, 13393, 13399, 13405, 13412, 13423, 13433, 13443, 13452, 13459,
+ 13468, 13472, 10276, 10283, 10289, 10294, 13478, 13484, 13490, 13495,
+ 13501, 10298, 13507, 13510, 13517, 13522, 13527, 13542, 13558, 13573,
+ 13581, 13586, 13593, 13599, 13603, 13608, 13613, 13618, 13623, 13628,
+ 13633, 13638, 13643, 13648, 1561, 374, 13653, 13661, 13668, 13674, 13679,
+ 13684, 10303, 13686, 13690, 13695, 13699, 13709, 13714, 13718, 13721,
+ 13730, 13734, 13737, 13744, 10312, 13749, 13752, 13760, 13767, 13775,
+ 13779, 13785, 13789, 13796, 13805, 13812, 13808, 13819, 13823, 13829,
+ 13833, 13837, 13841, 13847, 13857, 13865, 13872, 13876, 13884, 13889,
+ 13893, 13900, 13905, 13912, 13916, 13921, 13926, 13930, 13937, 13943,
+ 13951, 13957, 13962, 13972, 13979, 13984, 13989, 13993, 13997, 14005,
+ 4354, 14013, 14018, 10317, 14022, 14029, 14033, 14036, 14044, 14051,
+ 14055, 6628, 14059, 14064, 14069, 14073, 14084, 14094, 14099, 14105,
+ 14110, 14114, 14117, 14125, 14130, 14135, 14142, 14147, 10322, 14152,
+ 14156, 14163, 14168, 14173, 14178, 6796, 14183, 14188, 14193, 14198,
+ 14204, 14209, 14215, 14220, 14225, 14230, 14235, 14240, 14245, 14250,
+ 14255, 14260, 14265, 14270, 14275, 14280, 14285, 14290, 14295, 14301,
+ 14306, 14311, 14316, 14321, 14326, 14332, 14337, 14342, 14348, 14353,
+ 14359, 14364, 14370, 14375, 14380, 14385, 14390, 14396, 14401, 14406,
+ 14411, 14419, 996, 112, 14425, 14429, 14434, 14439, 14443, 14447, 14451,
+ 14456, 14460, 14465, 14469, 14472, 14476, 14480, 14486, 14491, 14501,
+ 14507, 14515, 14521, 14525, 14529, 14536, 14544, 14553, 14564, 14574,
+ 14581, 14588, 14592, 14601, 14610, 14618, 14625, 14634, 14643, 14652,
+ 14661, 14671, 14681, 14691, 14701, 14711, 14720, 14730, 14740, 14750,
+ 14760, 14770, 14780, 14790, 14799, 14809, 14819, 14829, 14839, 14849,
+ 14859, 14868, 14878, 14888, 14898, 14908, 14918, 14928, 14938, 14948,
+ 14958, 14967, 14977, 14987, 14997, 15007, 15017, 15027, 15037, 15047,
+ 15057, 15067, 15076, 15082, 1140, 15086, 15089, 15093, 15098, 15105,
+ 15111, 15116, 15120, 15125, 15134, 15143, 15151, 15156, 15160, 15164,
+ 15170, 15175, 15181, 10331, 15186, 15191, 15200, 15205, 10341, 15210,
+ 15213, 15219, 15227, 10346, 15234, 15238, 15242, 15247, 15251, 15261,
+ 15267, 15273, 15278, 15287, 15295, 15302, 15309, 15314, 15321, 15326,
+ 15330, 15333, 15344, 15354, 15367, 15376, 15384, 15395, 15407, 15417,
+ 15427, 15432, 15436, 15441, 15446, 15450, 15456, 15464, 15471, 15482,
+ 15487, 15497, 15506, 15510, 15513, 15520, 15530, 15539, 15546, 15550,
+ 15557, 15563, 15568, 15573, 15577, 15129, 15586, 15590, 15596, 15600,
+ 15605, 15609, 15616, 15623, 15627, 15636, 15644, 15652, 15659, 15667,
+ 15679, 15690, 15700, 15707, 15713, 15722, 15733, 15742, 15754, 15766,
+ 15778, 15788, 15797, 15807, 15816, 15824, 15831, 15840, 15848, 15852,
+ 15857, 15863, 15869, 15874, 15879, 15883, 15888, 15893, 15898, 15903,
+ 15908, 15913, 15918, 8495, 15923, 15925, 15929, 15934, 15940, 15947,
+ 15953, 15959, 15968, 15972, 15978, 15986, 15993, 16002, 16011, 16020,
+ 16029, 16038, 16047, 16056, 16065, 16075, 16085, 16094, 16100, 16107,
+ 16114, 16120, 16134, 16140, 16147, 16155, 16164, 16172, 16178, 16187,
+ 16196, 16207, 16213, 16223, 16231, 16238, 16246, 16255, 16268, 16277,
+ 16285, 16292, 16305, 16311, 16317, 16327, 16336, 16345, 16350, 16354,
+ 16360, 16366, 16371, 16378, 16385, 9949, 16390, 16395, 16402, 16410,
+ 16415, 16427, 16434, 16439, 16451, 14482, 16456, 16462, 16470, 16476,
+ 16481, 16489, 16497, 16504, 16512, 16518, 16526, 16534, 16540, 16548,
+ 16554, 16559, 16565, 16572, 16578, 16583, 16587, 16598, 16606, 16614,
+ 16620, 16625, 16632, 16641, 16647, 16652, 16660, 16667, 16676, 16690,
+ 4298, 16694, 16699, 16704, 16710, 16715, 16720, 16724, 16729, 16734,
+ 16739, 8494, 16744, 16749, 16754, 16759, 16764, 16768, 16773, 16778,
+ 16783, 16788, 16794, 16800, 13781, 16805, 16811, 16816, 16821, 16826,
+ 10350, 16831, 16836, 16841, 16846, 16851, 16865, 16882, 16900, 16912,
+ 16925, 16942, 16958, 16975, 16985, 17004, 17015, 17026, 17037, 2708,
+ 17048, 17059, 17070, 17087, 17098, 17109, 17114, 10355, 17119, 17123,
+ 2388, 17127, 17130, 17136, 17144, 17152, 17158, 17167, 17174, 17179,
+ 17187, 17195, 17202, 17206, 17211, 17217, 17224, 17232, 17239, 17251,
+ 17258, 17264, 17272, 17277, 17283, 17289, 17294, 13536, 17301, 17310,
+ 17316, 17321, 17329, 17338, 17346, 17353, 17359, 17367, 17374, 17380,
+ 17386, 17393, 17400, 17406, 17412, 17421, 17429, 17434, 17444, 17451,
+ 17457, 17465, 17471, 17479, 17487, 17494, 17507, 17514, 17523, 17532,
+ 17541, 17549, 17559, 17566, 17571, 3868, 17578, 17583, 1256, 17587,
+ 17594, 16745, 17598, 17604, 17608, 17616, 17628, 17633, 17640, 17646,
+ 17651, 17658, 16750, 17662, 17666, 17670, 16755, 17674, 16760, 17678,
+ 17685, 17690, 17694, 17701, 17705, 17713, 17720, 17725, 17733, 17737,
+ 17744, 17761, 17770, 17779, 17783, 17786, 17792, 17800, 17806, 17811,
+ 17815, 17820, 17825, 17830, 17835, 17840, 17845, 3946, 17850, 17852,
+ 17860, 17867, 17877, 17889, 17894, 17898, 17904, 17909, 17917, 17921,
+ 17927, 17932, 17938, 17941, 17948, 17956, 17963, 17969, 17974, 17980,
+ 17985, 17992, 17998, 18003, 18010, 18015, 18019, 18025, 18031, 18035,
+ 18042, 18048, 18053, 18059, 18067, 18075, 18082, 18088, 18093, 18099,
+ 18105, 18113, 18118, 18123, 18131, 18137, 18143, 18148, 18155, 18160,
+ 18164, 18170, 18176, 18181, 18188, 18193, 18199, 18202, 18208, 18219,
+ 18225, 18228, 18232, 18236, 18250, 18263, 18275, 18281, 18286, 18293,
+ 18299, 18305, 18316, 18328, 18340, 18350, 18359, 18367, 18374, 18385,
+ 18395, 18405, 18413, 18416, 16774, 18421, 18426, 16779, 16930, 18434,
+ 18447, 18462, 18473, 16947, 18491, 18504, 18517, 18528, 12117, 18539,
+ 18552, 18571, 18582, 18593, 18604, 2729, 18617, 18621, 18629, 18640,
+ 18651, 18659, 18674, 18689, 18700, 18707, 18713, 18721, 18725, 18731,
+ 18735, 18738, 18751, 18763, 18773, 18781, 18788, 18796, 18806, 18811,
+ 18818, 18823, 18830, 18841, 18851, 18857, 18862, 18867, 16784, 18871,
+ 18877, 18883, 18888, 18893, 18898, 18902, 16789, 16795, 18906, 16801,
+ 18911, 18919, 18924, 18928, 18935, 18943, 18950, 18959, 18966, 18970,
+ 18974, 18979, 18984, 18989, 18994, 18999, 10194, 19004, 19006, 19011,
+ 19016, 19022, 19027, 19032, 19037, 19042, 19046, 19052, 19058, 19063,
+ 19069, 19074, 19079, 19083, 19089, 19094, 19098, 19103, 19108, 19120,
+ 19125, 19131, 19136, 19141, 19147, 19153, 19158, 19163, 19168, 19175,
+ 19181, 19192, 19199, 19208, 19213, 19217, 275, 19221, 19229, 19234,
+ 19240, 19247, 19254, 19260, 19265, 19270, 19275, 19282, 19292, 19300,
+ 19305, 19310, 19317, 19323, 19332, 19342, 19352, 19366, 19380, 19394,
+ 19408, 19423, 19438, 19455, 19473, 19486, 19492, 19497, 19502, 19506,
+ 19514, 19519, 19527, 19533, 19539, 19544, 19549, 19553, 19559, 19564,
+ 19568, 19575, 19580, 19584, 19595, 19601, 19606, 19611, 19618, 19623,
+ 19627, 3826, 19632, 19638, 19645, 16806, 19651, 19655, 19661, 19666,
+ 19671, 19675, 19681, 19686, 19691, 19698, 19703, 15263, 19707, 19712,
+ 19716, 19721, 19727, 19733, 19740, 19750, 19758, 19765, 19770, 19774,
+ 19783, 19791, 19798, 19805, 19811, 19816, 19822, 19827, 19832, 19838,
+ 19843, 19849, 19854, 19860, 19866, 19873, 19879, 19884, 19889, 10420,
+ 19898, 19901, 19909, 19915, 19920, 19925, 19935, 19942, 19948, 19953,
+ 19958, 19964, 19969, 19975, 19980, 19986, 19993, 19999, 20005, 20010,
+ 20018, 20025, 20030, 20035, 20041, 20046, 20050, 20059, 20070, 20077,
+ 20084, 20092, 20099, 20106, 20111, 20116, 20122, 20127, 20135, 20141,
+ 20147, 20152, 20159, 20165, 20170, 20174, 20180, 20185, 20190, 20194,
+ 20199, 1329, 8519, 3017, 20203, 20207, 20211, 20215, 20219, 20223, 20226,
+ 20231, 20238, 20246, 20256, 20267, 20277, 20288, 20300, 20311, 20321,
+ 20332, 20344, 20355, 20367, 20380, 20392, 20403, 20413, 20424, 20436,
+ 20447, 20460, 20472, 20483, 20495, 20508, 20520, 20533, 20547, 20560,
+ 20572, 20583, 20593, 20604, 20616, 20627, 20639, 20652, 20664, 20675,
+ 20687, 20700, 20713, 20727, 20740, 20752, 20763, 20775, 20788, 20800,
+ 20813, 20827, 20840, 20852, 20865, 20879, 20892, 20906, 20920, 20933,
+ 20945, 20956, 20966, 16817, 20973, 20979, 20989, 20997, 21004, 21012,
+ 21022, 21031, 21044, 21049, 21054, 21062, 21069, 15372, 15381, 21076,
+ 21086, 21101, 21107, 21114, 21121, 21128, 21134, 21140, 21151, 21159,
+ 21167, 21177, 21187, 21196, 16822, 21205, 21211, 21217, 21226, 21234,
+ 21242, 21247, 21256, 21264, 21276, 21286, 21296, 21306, 21315, 21327,
+ 21337, 21347, 21358, 21365, 21370, 21377, 21389, 21401, 21413, 21425,
+ 21437, 21449, 21461, 21473, 21485, 21497, 21508, 21520, 21532, 21544,
+ 21556, 21568, 21580, 21592, 21604, 21616, 21628, 21639, 21651, 21663,
+ 21675, 21687, 21699, 21711, 21723, 21735, 21747, 21759, 21770, 21782,
+ 21794, 21806, 21818, 21830, 21842, 21854, 21866, 21878, 21890, 21901,
+ 21913, 21925, 21937, 21949, 21961, 21973, 21985, 21997, 22009, 22021,
+ 22032, 22044, 22056, 22068, 22080, 22092, 22104, 22116, 22128, 22140,
+ 22152, 22163, 22175, 22187, 22199, 22211, 22223, 22235, 22247, 22259,
+ 22271, 22283, 22294, 22306, 22318, 22330, 22342, 22355, 22368, 22381,
+ 22394, 22407, 22420, 22433, 22445, 22458, 22471, 22484, 22497, 22510,
+ 22523, 22536, 22549, 22562, 22575, 22587, 22600, 22613, 22626, 22639,
+ 22652, 22665, 22678, 22691, 22704, 22717, 22729, 22742, 22755, 22768,
+ 22781, 22794, 22807, 22820, 22833, 22846, 22859, 22871, 22884, 22897,
+ 22910, 22923, 22936, 22949, 22962, 22975, 22988, 23001, 23013, 23026,
+ 23039, 23052, 23065, 23078, 23091, 23104, 23117, 23130, 23143, 23155,
+ 23166, 23179, 23192, 23205, 23218, 23231, 23244, 23257, 23270, 23283,
+ 23296, 23308, 23321, 23334, 23347, 23360, 23373, 23386, 23399, 23412,
+ 23425, 23438, 23450, 23463, 23476, 23489, 23502, 23515, 23528, 23541,
+ 23554, 23567, 23580, 23592, 23605, 23618, 23631, 23644, 23657, 23670,
+ 23683, 23696, 23709, 23722, 23734, 23747, 23760, 23773, 23786, 23799,
+ 23812, 23825, 23838, 23851, 23864, 23876, 23889, 23902, 23915, 23928,
+ 23941, 23954, 23967, 23980, 23993, 24006, 24018, 24031, 24044, 24057,
+ 24070, 24083, 24096, 24109, 24122, 24135, 24148, 24160, 24173, 24186,
+ 24199, 24212, 24225, 24238, 24251, 24264, 24277, 24290, 24302, 24315,
+ 24328, 24341, 24354, 24367, 24380, 24393, 24406, 24419, 24432, 24444,
+ 24457, 24470, 24483, 24496, 24509, 24522, 24535, 24548, 24561, 24574,
+ 24586, 24597, 24606, 24614, 24622, 24629, 24635, 24639, 24645, 24651,
+ 24660, 24668, 24673, 24679, 24684, 24688, 24697, 10199, 24708, 24714,
+ 24721, 24729, 24736, 12716, 12730, 24743, 24750, 24759, 24764, 24769,
+ 24776, 24781, 24786, 8535, 8541, 8547, 24791, 24796, 24799, 24804, 24812,
+ 24819, 24826, 24838, 24845, 24851, 24860, 24869, 24878, 24884, 24892,
+ 24901, 24905, 24911, 24916, 24926, 24933, 24939, 24947, 24953, 24960,
+ 24966, 24976, 24985, 24989, 24996, 25000, 25005, 25011, 25019, 25023,
+ 25033, 16832, 25042, 25048, 25052, 25061, 25070, 25080, 25086, 16837,
+ 25093, 25100, 25111, 25119, 25129, 25138, 25146, 9914, 25154, 25159,
+ 25165, 25170, 25174, 25178, 25182, 10938, 25187, 25195, 25202, 25211,
+ 25219, 25226, 25233, 25242, 25248, 1024, 25255, 25261, 25265, 25271,
+ 25278, 25284, 25292, 25298, 25305, 25311, 25317, 25326, 25330, 25338,
+ 25345, 25354, 25361, 25366, 25370, 25381, 25386, 25391, 25397, 25402,
+ 25415, 8759, 25419, 25425, 25431, 25437, 25442, 25450, 25454, 25461,
+ 25470, 25475, 17110, 25483, 25487, 25499, 25504, 25508, 25511, 25517,
+ 25523, 25529, 25534, 25539, 25543, 25546, 25557, 25562, 10471, 25569,
+ 25574, 25579, 25584, 25589, 25594, 25599, 25604, 25609, 10476, 25614,
+ 25619, 25624, 25629, 25634, 25639, 25644, 25649, 25654, 25659, 25664,
+ 25669, 25675, 25680, 25685, 25690, 25695, 25700, 25705, 25710, 25715,
+ 25720, 25726, 25732, 25737, 25742, 25747, 25752, 25757, 25762, 25767,
+ 25772, 25777, 25783, 25788, 25793, 25798, 25804, 25810, 25815, 25820,
+ 25825, 25830, 25835, 25840, 25845, 25850, 25856, 25861, 25866, 25871,
+ 25876, 25882, 25887, 25892, 25896, 1252, 145, 25904, 25908, 25912, 25916,
+ 25921, 25925, 15269, 2314, 25929, 25934, 25938, 25943, 25947, 25952,
+ 25956, 25962, 25967, 25971, 25975, 25983, 25987, 25991, 25998, 26003,
+ 26008, 26012, 26018, 26023, 26027, 26032, 26037, 26041, 26048, 26055,
+ 26062, 26067, 26071, 26075, 26080, 26084, 26087, 26093, 26106, 26111,
+ 26117, 26126, 26131, 10698, 26136, 26145, 26150, 26153, 26157, 26162,
+ 26167, 26172, 26177, 26182, 2825, 2830, 26187, 26193, 26197, 26203, 3787,
+ 26208, 26213, 26218, 26224, 26229, 16203, 26234, 26239, 26244, 26249,
+ 26255, 26260, 26265, 26271, 26276, 26280, 26285, 26290, 26295, 26300,
+ 26305, 26309, 26314, 26318, 26323, 26328, 26333, 26338, 26342, 26347,
+ 26351, 26356, 26361, 26366, 26281, 3026, 26286, 26371, 26379, 26386,
+ 11032, 26398, 26406, 26416, 26434, 26453, 26462, 26470, 26291, 26477,
+ 26482, 26490, 26296, 26495, 26500, 26508, 26513, 26518, 26522, 26301,
+ 26527, 26535, 26540, 26544, 26551, 26557, 26566, 26570, 26578, 26582,
+ 26585, 20054, 26592, 26596, 26600, 26605, 26611, 26618, 26623, 9941,
+ 26627, 26632, 26637, 26642, 26647, 26652, 1657, 1662, 26657, 26663,
+ 26669, 26674, 26678, 26682, 26686, 26690, 26694, 26698, 26702, 26706,
+ 24832, 26709, 26716, 26724, 26730, 26736, 26741, 26746, 26752, 26756,
+ 26761, 26768, 16109, 16116, 26774, 26786, 26789, 26796, 26800, 19256,
+ 26807, 26815, 26826, 26835, 26848, 26858, 26872, 26884, 26898, 26911,
+ 26923, 26933, 26945, 26951, 26957, 26972, 26996, 27014, 27033, 27046,
+ 27060, 27078, 27094, 27111, 27129, 27140, 27159, 27176, 27196, 27214,
+ 27226, 27240, 27254, 27266, 27283, 27302, 27320, 27332, 27350, 27369,
+ 16990, 27382, 27402, 27414, 12148, 27426, 27431, 27436, 27441, 27450,
+ 27456, 27461, 27465, 27472, 27478, 27482, 27487, 27492, 27497, 27502,
+ 27507, 27512, 2411, 27517, 27523, 27527, 27530, 27541, 27545, 27548,
+ 27556, 27562, 14421, 27566, 27575, 27586, 27592, 27598, 27613, 27622,
+ 27630, 27637, 27642, 27646, 27653, 27659, 27668, 27676, 27683, 27693,
+ 27702, 27712, 27717, 27726, 27735, 27746, 27757, 27767, 27784, 4442,
+ 27794, 27798, 27808, 27816, 27826, 27837, 27843, 27848, 27858, 27866,
+ 27873, 27879, 27886, 27891, 26329, 27895, 27904, 27908, 27911, 27916,
+ 27924, 27931, 27940, 27948, 27956, 27964, 27974, 27983, 27989, 27995,
+ 28001, 28005, 26334, 26339, 28009, 28019, 28029, 28039, 28047, 28054,
+ 28064, 28072, 28080, 28086, 28094, 773, 28103, 17191, 625, 28117, 28126,
+ 28134, 28145, 28156, 28166, 28175, 28187, 28196, 28205, 28212, 28218,
+ 28228, 28237, 28246, 28254, 28262, 28272, 28280, 28288, 28295, 28301,
+ 28306, 28311, 28316, 7928, 28321, 28324, 28328, 28333, 28339, 28344,
+ 28348, 11157, 26352, 26357, 28356, 28362, 28368, 28373, 28378, 28382,
+ 28390, 28396, 28402, 28406, 3811, 28414, 28419, 28424, 28428, 28432,
+ 11286, 28439, 28447, 28461, 28468, 28475, 28481, 11295, 11301, 28489,
+ 28497, 28504, 28509, 28514, 26362, 28520, 28531, 28535, 28540, 2660,
+ 28545, 28556, 28562, 28567, 28571, 28575, 28578, 28585, 28592, 28598,
+ 28606, 28613, 28619, 28623, 7968, 28628, 28632, 28636, 28644, 28649,
+ 28654, 28659, 1685, 28664, 28669, 28674, 28679, 28684, 28689, 28694,
+ 28699, 28704, 28709, 28714, 28719, 28724, 28729, 28735, 28740, 28745,
+ 28750, 28755, 28760, 28765, 28771, 28776, 28781, 28786, 28791, 28796,
+ 28801, 28806, 28812, 28818, 28823, 28829, 28834, 28839, 5, 28845, 28849,
+ 28853, 28857, 28862, 28866, 28870, 28874, 28878, 28883, 28887, 28892,
+ 28896, 28899, 28903, 28908, 28912, 28917, 28921, 28925, 28929, 28934,
+ 28938, 28942, 28952, 28957, 28961, 28965, 28970, 28975, 28984, 28989,
+ 28994, 28998, 29002, 29011, 29024, 29036, 29045, 29054, 29059, 29065,
+ 29070, 29074, 29078, 29088, 29097, 29105, 29111, 29116, 29120, 29127,
+ 29137, 29146, 29154, 12505, 29162, 29170, 29179, 29188, 29196, 29206,
+ 29211, 29215, 29219, 29222, 29224, 29228, 29232, 29237, 29242, 29246,
+ 29250, 29253, 29257, 29260, 29264, 29267, 29270, 29274, 29280, 29284,
+ 29288, 29292, 29296, 29301, 29306, 29311, 29315, 29318, 29323, 29329,
+ 29334, 29340, 29345, 29349, 29355, 29359, 29363, 29368, 29372, 29377,
+ 29382, 29386, 29390, 29397, 29401, 29404, 29408, 29412, 29418, 29424,
+ 29428, 29432, 29437, 29444, 29450, 29454, 29463, 29467, 29471, 29474,
+ 29480, 29485, 29491, 1385, 1737, 29496, 29501, 29506, 29511, 29516,
+ 29521, 29526, 2118, 799, 29531, 29534, 29538, 29542, 29547, 29551, 17203,
+ 29555, 29560, 29565, 29569, 29572, 29577, 29581, 29586, 29590, 17207,
+ 29595, 29598, 29601, 29607, 29611, 29616, 29620, 29633, 29637, 29640,
+ 29648, 29657, 29664, 29669, 29675, 29681, 29689, 29696, 29703, 29707,
+ 29711, 29715, 29720, 29725, 29729, 29737, 29742, 29749, 29761, 29772,
+ 29777, 29781, 29788, 29792, 29797, 29803, 29806, 29811, 29816, 29823,
+ 29827, 29831, 29834, 29840, 8659, 2318, 29844, 29849, 29865, 10749,
+ 29885, 29894, 29910, 29914, 29921, 29924, 29930, 29940, 29946, 29955,
+ 29970, 29981, 29993, 30004, 30012, 30021, 30027, 30036, 30046, 30056,
+ 30067, 30078, 30088, 30097, 30104, 30113, 30121, 30128, 30135, 30143,
+ 30150, 30157, 30170, 30177, 30185, 30192, 30198, 30203, 30212, 30219,
+ 30225, 30230, 30238, 30246, 30253, 30260, 27818, 30272, 30284, 30298,
+ 30306, 30314, 30322, 30329, 30341, 30350, 30359, 30367, 30375, 30383,
+ 30390, 30396, 30405, 30413, 30423, 30432, 30442, 30451, 30460, 30468,
+ 30473, 30477, 30480, 30484, 30488, 30492, 30496, 30500, 30506, 30512,
+ 30517, 30525, 17265, 30532, 30537, 30544, 30550, 30556, 30563, 13589,
+ 30570, 30573, 30585, 30593, 30599, 30604, 30608, 30619, 30629, 30639,
+ 11225, 30648, 30657, 30665, 30675, 30684, 30691, 30698, 30706, 30710,
+ 17284, 30713, 30720, 30724, 4386, 30730, 30733, 30740, 30746, 30751,
+ 30758, 30764, 30768, 30773, 30777, 30786, 30793, 30799, 8712, 30806,
+ 30814, 30821, 30827, 30832, 30838, 30844, 30852, 30858, 30862, 30865,
+ 30867, 30485, 11238, 30876, 30881, 30887, 30897, 30902, 30909, 30917,
+ 30923, 30928, 30933, 30938, 30942, 30947, 30954, 30960, 30969, 30977,
+ 30981, 30988, 30994, 31003, 31009, 31016, 4645, 31022, 31028, 31033,
+ 31040, 31052, 31063, 31068, 31076, 31080, 31090, 31096, 31100, 31105,
+ 31115, 31124, 31128, 31135, 31143, 31150, 31156, 31161, 31169, 31176,
+ 31181, 31188, 31200, 31209, 31213, 15195, 31221, 31231, 31235, 31243,
+ 31250, 31257, 29644, 31268, 31273, 31277, 31284, 31291, 26014, 30410,
+ 31296, 31300, 31303, 27146, 31308, 31322, 31338, 31356, 31375, 31392,
+ 31410, 27165, 31427, 31447, 27182, 31459, 31471, 18478, 31483, 27202,
+ 31497, 31509, 12161, 31523, 31528, 31533, 31538, 31544, 31550, 31556,
+ 31560, 31568, 31574, 31581, 31586, 31596, 31602, 11723, 31608, 31610,
+ 31615, 31623, 31627, 30950, 31633, 31640, 13437, 13447, 31647, 31654,
+ 31664, 31669, 31673, 31676, 31682, 31690, 31702, 31712, 31728, 31741,
+ 31755, 18496, 31769, 31776, 31780, 31783, 31788, 31792, 31799, 31806,
+ 31813, 31820, 31830, 31835, 31840, 31845, 31853, 31861, 31866, 31875,
+ 27839, 3466, 31880, 31883, 31886, 31891, 31898, 31903, 31908, 31924,
+ 31932, 31940, 10513, 31948, 31953, 31957, 31963, 31968, 31974, 31977,
+ 31983, 31995, 32003, 32010, 32016, 32023, 32034, 32048, 32061, 32067,
+ 32076, 32082, 32091, 32103, 32114, 32124, 32133, 32142, 32150, 32161,
+ 656, 32168, 32175, 32181, 32186, 32192, 32199, 32205, 32216, 32226,
+ 32236, 32245, 32251, 32258, 32263, 32271, 32278, 32286, 32294, 32306,
+ 6917, 32313, 32316, 32325, 32333, 32339, 32345, 32350, 32354, 32357,
+ 32363, 32370, 32375, 32380, 32385, 32389, 32401, 32412, 32421, 32429,
+ 17466, 32434, 32442, 32447, 32455, 32461, 32467, 13430, 9509, 32472,
+ 32476, 32480, 32483, 32486, 32492, 32500, 32508, 32512, 32516, 32521,
+ 32525, 32528, 32537, 32542, 32546, 32549, 32554, 32562, 32573, 32582,
+ 32586, 32592, 32598, 32602, 32608, 32616, 32638, 32662, 32673, 32682,
+ 32688, 32695, 32702, 32708, 32716, 32722, 32727, 32738, 32756, 32763,
+ 32771, 32775, 32782, 32787, 32796, 32809, 32817, 32829, 32840, 32851,
+ 32861, 32875, 32884, 32892, 32904, 10766, 32915, 32926, 32937, 32949,
+ 32959, 32968, 32978, 32983, 32987, 32995, 33006, 33016, 33022, 33027,
+ 33031, 33034, 33037, 33045, 33053, 33062, 33072, 33081, 33087, 33101,
+ 2743, 33123, 33134, 33143, 33153, 33165, 33174, 33183, 33193, 33201,
+ 33209, 33218, 33223, 33234, 33239, 33248, 33254, 33265, 33269, 33272,
+ 33282, 33291, 33299, 33309, 33319, 33327, 33336, 33343, 33351, 33358,
+ 33367, 33376, 33381, 33386, 33390, 33398, 33405, 33409, 33417, 33424,
+ 33435, 33450, 33457, 33463, 33473, 33482, 33488, 33499, 33503, 33510,
+ 33514, 33521, 33527, 16340, 33533, 33537, 33542, 33548, 33555, 33559,
+ 33563, 33571, 33579, 33585, 33594, 33601, 33608, 33613, 33618, 33628,
+ 27893, 33632, 33635, 33640, 33645, 33650, 33655, 33660, 33665, 33670,
+ 33675, 33681, 33686, 33691, 33697, 1102, 757, 33702, 33709, 33718, 2366,
+ 33725, 33730, 33734, 33740, 1151, 604, 33745, 328, 33749, 33758, 33766,
+ 33775, 33783, 33790, 33801, 33809, 33818, 33826, 33836, 33844, 33849,
+ 11393, 33853, 33861, 33869, 33874, 17220, 4000, 33880, 33886, 33892,
+ 6459, 33897, 33901, 33908, 33914, 33920, 33924, 33930, 33935, 33942,
+ 1344, 33948, 33955, 33959, 1251, 6467, 33964, 33974, 33982, 33988, 33998,
+ 34007, 34015, 34021, 34026, 34034, 34041, 12947, 34047, 34054, 34059,
+ 34066, 34076, 1404, 251, 2117, 34082, 34088, 34095, 34106, 34117, 34125,
+ 34132, 34142, 34151, 34159, 34168, 34175, 34182, 34195, 34202, 34208,
+ 34219, 34238, 34243, 1156, 34247, 34252, 34260, 3883, 34264, 34269,
+ 34273, 34277, 1348, 29251, 34287, 34291, 34296, 34300, 34306, 3745,
+ 34312, 34320, 34327, 34338, 34347, 34355, 34380, 34388, 34393, 3884, 391,
+ 34399, 34407, 34415, 34422, 34428, 34433, 2186, 12363, 34440, 34446,
+ 30769, 31058, 34452, 632, 106, 34456, 34460, 34466, 747, 10386, 34471,
+ 34478, 34484, 34488, 34492, 1549, 34495, 34499, 17734, 34502, 34507,
+ 34514, 34520, 8725, 34525, 34533, 34540, 34546, 26524, 34550, 34554,
+ 34558, 34562, 3954, 19566, 34566, 34571, 34575, 34578, 34586, 34594,
+ 34599, 34608, 34616, 34619, 34626, 34636, 34648, 34656, 34661, 34665,
+ 34673, 34680, 34686, 34693, 34700, 34703, 34707, 34711, 1359, 34721,
+ 34723, 34728, 34734, 34740, 34745, 34750, 34755, 34760, 34765, 34770,
+ 34775, 34780, 34785, 34790, 34795, 34800, 34805, 34810, 34816, 34822,
+ 34828, 34834, 34839, 34844, 34849, 34855, 34860, 34865, 34870, 34876,
+ 34881, 34887, 34892, 34897, 34902, 34907, 34913, 34918, 34924, 34929,
+ 34934, 34939, 34944, 34950, 34955, 34961, 34966, 34971, 34976, 34981,
+ 34986, 34991, 34996, 35001, 35006, 35012, 35018, 35024, 35029, 35034,
+ 35039, 35044, 35050, 35056, 35062, 35068, 35074, 35080, 35085, 35091,
+ 35096, 35101, 35106, 35111, 35117, 2457, 35122, 2464, 2471, 2867, 35127,
+ 2477, 2487, 35133, 2519, 2524, 2529, 35137, 35142, 35147, 35153, 35158,
+ 35163, 35167, 35172, 35178, 35183, 35188, 35193, 35199, 35204, 35208,
+ 35212, 35217, 35222, 35227, 35232, 35237, 35243, 35249, 35254, 35258,
+ 35263, 35269, 35273, 35278, 35283, 35288, 35293, 35297, 35300, 35305,
+ 35310, 35315, 35320, 35325, 35331, 35337, 35342, 35347, 35352, 35356,
+ 35361, 35366, 35371, 35376, 35381, 35386, 35390, 35395, 35400, 35405,
+ 35409, 35413, 35417, 35422, 35430, 35435, 35440, 35446, 35452, 35458,
+ 35463, 35471, 35475, 35478, 35483, 35488, 35492, 35497, 35502, 35506,
+ 35511, 35515, 35518, 35523, 4096, 21057, 35528, 35533, 35538, 35543,
+ 35551, 25222, 33952, 10025, 35556, 35561, 35565, 35570, 35574, 35578,
+ 35583, 35587, 35590, 35593, 35597, 35602, 35606, 35614, 35618, 35621,
+ 35626, 35630, 35634, 35639, 35644, 35648, 35654, 35659, 35664, 35671,
+ 35678, 35682, 35685, 35691, 35700, 35707, 35715, 35722, 35726, 35731,
+ 35735, 35739, 35745, 35750, 35756, 35760, 35766, 35771, 35776, 35780,
+ 35787, 35793, 35799, 35805, 35811, 35818, 35824, 35830, 35836, 35842,
+ 35848, 35854, 35860, 35867, 35873, 35880, 35886, 35892, 35898, 35904,
+ 35910, 35916, 35922, 35928, 35934, 35940, 35945, 35950, 13302, 35955,
+ 35961, 35966, 35971, 35976, 35981, 35984, 35990, 35995, 36003, 36008,
+ 36012, 36017, 36023, 36032, 36038, 36043, 36048, 36053, 36057, 36062,
+ 36066, 36071, 36076, 36081, 36086, 36093, 36100, 36106, 36112, 36117,
+ 19185, 36124, 36130, 36137, 36143, 36149, 36154, 36162, 36167, 10931,
+ 36171, 36176, 36181, 36187, 36192, 36197, 36201, 36206, 36211, 36217,
+ 36222, 36227, 36232, 36236, 36241, 36246, 36250, 36255, 36260, 36264,
+ 36269, 36273, 36278, 36283, 36288, 36292, 36297, 36301, 36306, 36310,
+ 36314, 36318, 17890, 36323, 36330, 36339, 36345, 36351, 36360, 36368,
+ 36377, 36385, 36390, 36394, 36401, 36407, 36415, 36419, 36422, 36427,
+ 36431, 36440, 36448, 36466, 36472, 1403, 36478, 36481, 36485, 26664,
+ 26670, 36491, 36495, 36506, 36517, 36528, 36540, 36544, 36551, 36558,
+ 36565, 36570, 36574, 36582, 36587, 36592, 36597, 36602, 6524, 1076,
+ 25221, 36607, 36612, 36616, 36621, 36625, 36631, 36636, 36642, 36647,
+ 36653, 36658, 36664, 36669, 36675, 36681, 36687, 36692, 36648, 36654,
+ 36696, 36701, 36707, 36712, 36718, 36723, 36729, 36734, 36659, 12014,
+ 36738, 36670, 36676, 36682, 2959, 3659, 36744, 36747, 36752, 36758,
+ 36764, 36770, 36777, 36783, 36789, 36795, 36801, 36807, 36813, 36819,
+ 36825, 36831, 36837, 36843, 36849, 36856, 36862, 36868, 36874, 36880,
+ 36886, 36889, 36894, 36897, 36904, 36909, 36917, 36921, 36926, 36931,
+ 36937, 36942, 36947, 36951, 36956, 36962, 36967, 36973, 36978, 36984,
+ 36989, 36995, 37001, 37005, 37010, 37015, 37020, 37025, 37029, 37034,
+ 37039, 37044, 37050, 37056, 37062, 37068, 37073, 37077, 37080, 37086,
+ 37092, 37101, 37109, 37116, 37121, 37125, 37129, 37134, 17680, 37139,
+ 37147, 37153, 4042, 1261, 37158, 37162, 8775, 37168, 37174, 37181, 8784,
+ 37185, 37191, 37197, 37204, 37210, 37219, 37227, 37239, 37243, 37250,
+ 37256, 37261, 37265, 37269, 37272, 37282, 37291, 37299, 36649, 37304,
+ 37314, 37324, 37334, 37340, 37345, 37355, 37360, 37373, 37387, 37398,
+ 37410, 37422, 37436, 37449, 37461, 37473, 17031, 37487, 37492, 37497,
+ 37501, 37505, 37509, 37513, 37519, 37524, 37529, 37534, 37539, 37544,
+ 37549, 1726, 32112, 37554, 37559, 37564, 36697, 37569, 37572, 37577,
+ 37582, 37587, 37593, 37599, 18802, 11589, 37604, 37610, 37617, 18430,
+ 37623, 37628, 37633, 37637, 37642, 37647, 36702, 37652, 37657, 37662,
+ 37668, 36708, 37673, 37676, 37683, 37691, 37697, 37703, 37709, 37720,
+ 37725, 37732, 37739, 37746, 37754, 37763, 37772, 37778, 37784, 37792,
+ 36713, 37797, 37803, 37809, 36719, 37814, 37819, 37827, 37835, 37841,
+ 37848, 37854, 37861, 37868, 37874, 37882, 37892, 37899, 37905, 37910,
+ 37916, 37921, 37926, 37933, 37942, 37950, 37955, 37961, 37968, 37976,
+ 37982, 37987, 37993, 38002, 38009, 33067, 38015, 38019, 38024, 38033,
+ 38038, 38043, 38048, 14511, 38056, 38061, 38066, 38071, 38075, 38080,
+ 38085, 38092, 38097, 38102, 38107, 36724, 25150, 38113, 2560, 155, 38116,
+ 38119, 38123, 38127, 38137, 38145, 38152, 38156, 38160, 38163, 38171,
+ 38178, 38185, 31012, 38194, 38197, 38204, 38210, 38217, 38221, 38229,
+ 38237, 38244, 38248, 38252, 38255, 38261, 38268, 38272, 38276, 38283,
+ 38291, 38299, 38306, 36660, 38313, 38321, 38326, 38338, 11670, 11677,
+ 11684, 11691, 11698, 11705, 589, 416, 38344, 38349, 38354, 38360, 38365,
+ 38370, 4063, 38375, 38378, 38383, 38388, 38393, 38398, 38403, 38410,
+ 26782, 38415, 38420, 38425, 38430, 38435, 38441, 38446, 38452, 36900,
+ 38458, 38463, 38469, 38475, 38485, 38490, 38495, 38499, 38504, 38509,
+ 38514, 38519, 38532, 38537, 26402, 19648, 1026, 38541, 38547, 38551,
+ 38556, 38561, 38567, 38572, 38577, 38581, 38586, 38591, 38597, 38602,
+ 38607, 1266, 38611, 38616, 38621, 38626, 38630, 38635, 38640, 38645,
+ 38651, 38657, 38662, 38666, 38670, 38675, 38680, 38685, 38689, 38694,
+ 38702, 38706, 38712, 38716, 38723, 38732, 19419, 36671, 38738, 38745,
+ 38753, 38760, 38766, 38779, 38791, 38796, 38802, 38806, 2886, 38810,
+ 38814, 38263, 38823, 38834, 38845, 38850, 33130, 38855, 38860, 38864,
+ 33250, 26675, 38869, 38873, 38878, 36677, 25257, 38882, 38887, 38893,
+ 38898, 38902, 38906, 38909, 38913, 38919, 38928, 38939, 38951, 36683,
+ 38956, 38959, 38963, 38967, 38972, 38977, 38982, 38987, 38992, 38997,
+ 39002, 39007, 359, 39012, 39017, 39022, 39027, 39032, 39037, 39043,
+ 39048, 39053, 39059, 39064, 39070, 39075, 39081, 39086, 39091, 39096,
+ 39101, 39106, 39111, 39116, 39121, 39127, 39132, 39137, 39142, 39147,
+ 39152, 39157, 39162, 39168, 39174, 39179, 39184, 39189, 39194, 39199,
+ 39204, 39209, 39214, 39219, 39224, 39229, 39234, 39239, 39244, 39249,
+ 39254, 39259, 39264, 39274, 39284, 39290, 343, 14, 39295, 39299, 39303,
+ 39311, 39315, 39319, 39322, 16460, 39325, 39330, 39334, 39339, 39343,
+ 39348, 39352, 39357, 39361, 39364, 39366, 39370, 39375, 39379, 39390,
+ 39393, 39395, 39399, 39411, 39423, 39432, 39436, 39446, 39450, 39456,
+ 39461, 39470, 39476, 39481, 39486, 39490, 39494, 39499, 39506, 39511,
+ 39517, 39522, 39526, 39533, 30418, 30428, 39537, 39542, 39547, 39552,
+ 39559, 39563, 39570, 39576, 8930, 39580, 39589, 39597, 39612, 39626,
+ 39635, 39643, 39654, 39663, 39668, 39675, 39685, 7937, 39695, 39700,
+ 39705, 39709, 39712, 39717, 39721, 39726, 39730, 39737, 39742, 39747,
+ 39752, 39762, 39767, 39772, 39777, 9895, 39782, 39784, 39792, 39795,
+ 39798, 39800, 39804, 39810, 39814, 39819, 39824, 39842, 39856, 39875,
+ 39892, 39901, 39909, 39914, 39919, 1396, 39925, 39931, 39936, 39946,
+ 39955, 39963, 39968, 39974, 39979, 39988, 39997, 40008, 40013, 40020,
+ 40026, 40030, 40039, 40046, 40054, 40061, 40074, 40082, 40086, 40096,
+ 40101, 40105, 40113, 40121, 40126, 40130, 40134, 40143, 40149, 40154,
+ 40162, 40172, 40181, 40190, 40199, 40210, 40218, 40229, 40238, 40246,
+ 40253, 40259, 40264, 40275, 40286, 40291, 40295, 40298, 40302, 40310,
+ 40316, 40327, 40338, 40349, 40360, 40371, 40382, 40393, 40404, 40416,
+ 40428, 40440, 40452, 40464, 40476, 40488, 40497, 40501, 40509, 40515,
+ 40521, 40528, 40534, 40539, 40545, 40549, 40554, 40559, 40564, 39269,
+ 39279, 2431, 40569, 40571, 40576, 40581, 40586, 40589, 40591, 40595,
+ 40598, 40605, 40609, 11249, 40613, 40619, 40626, 40636, 40641, 40647,
+ 40651, 40656, 40669, 30892, 40675, 40684, 40693, 21280, 40700, 40709,
+ 37320, 40717, 40722, 40726, 40735, 40743, 40750, 40755, 40759, 40764,
+ 40769, 40777, 40781, 40789, 40795, 40801, 40806, 40811, 40815, 40818,
+ 40823, 40836, 40852, 27272, 40869, 40881, 40898, 40910, 40924, 27289,
+ 27308, 40936, 40948, 2760, 40962, 40967, 40972, 40977, 40981, 40988,
+ 41000, 41007, 41016, 41019, 41030, 41041, 41049, 41054, 41058, 41063,
+ 41068, 41073, 41078, 41083, 41088, 37789, 956, 41093, 41097, 41101,
+ 41104, 41109, 41114, 41120, 41125, 41130, 41136, 41142, 41147, 41151,
+ 41156, 41161, 41166, 41170, 41173, 41179, 41184, 41189, 41194, 41198,
+ 41203, 41209, 41217, 31193, 41222, 41227, 41234, 41240, 41246, 41251,
+ 41259, 26791, 41266, 41271, 41276, 41281, 41285, 41288, 41293, 41297,
+ 41301, 41308, 41314, 41320, 41326, 41333, 41338, 41344, 40116, 41348,
+ 41352, 41357, 41370, 41375, 41381, 41389, 41396, 41404, 41414, 41420,
+ 41426, 41432, 41436, 41445, 41453, 41460, 41465, 41470, 12037, 41475,
+ 41485, 41492, 41498, 41508, 41513, 41519, 41527, 3916, 41534, 41541,
+ 41547, 41554, 3922, 41558, 41563, 41574, 41581, 41587, 41596, 41600,
+ 4494, 41603, 41610, 41616, 41622, 41630, 41640, 34423, 41647, 41655,
+ 41661, 41666, 41672, 41677, 41681, 30736, 41687, 41694, 41700, 41708,
+ 41717, 41724, 41730, 41741, 28091, 41747, 41757, 41762, 41766, 41774,
+ 41782, 41789, 41795, 41800, 10889, 6499, 41805, 41809, 41811, 41815,
+ 41820, 41822, 41827, 41833, 41838, 41843, 41850, 38406, 41856, 41861,
+ 41865, 41870, 41874, 41883, 41887, 41893, 41900, 41906, 41913, 41918,
+ 41927, 41932, 41936, 41941, 41948, 41956, 41964, 41969, 25313, 41973,
+ 41976, 41980, 41984, 12460, 983, 41988, 41993, 42001, 42006, 42010,
+ 42019, 42026, 42030, 42034, 42042, 42049, 15793, 42059, 42063, 42067,
+ 42075, 42083, 42089, 42094, 42098, 42107, 15541, 42113, 42122, 42129,
+ 42134, 42141, 42148, 42156, 42163, 42171, 42179, 42188, 42193, 42200,
+ 42207, 42214, 42221, 42228, 42233, 42240, 42246, 42263, 42271, 42281,
+ 42289, 42296, 459, 42300, 42306, 42310, 42315, 39659, 42321, 42324,
+ 42328, 42334, 42345, 42353, 3927, 42361, 42367, 42373, 42383, 42389,
+ 42398, 42407, 42417, 42424, 42430, 42435, 3933, 3939, 42444, 42452,
+ 42459, 13907, 42467, 42471, 42478, 42486, 42493, 42500, 42506, 42515,
+ 42525, 42531, 42539, 42548, 42555, 42563, 42570, 26077, 42574, 42581,
+ 42587, 42597, 42606, 42614, 42625, 42629, 42639, 42646, 42651, 42656,
+ 42662, 42669, 42677, 42686, 42695, 42705, 42716, 42723, 42728, 42735,
+ 3174, 42743, 42749, 42754, 42761, 42767, 42773, 42778, 42791, 42804,
+ 42817, 42824, 42830, 42838, 42846, 42851, 42855, 42859, 42864, 42869,
+ 42874, 42879, 42884, 42889, 1365, 42894, 42898, 42902, 42906, 42910,
+ 42914, 42918, 42922, 42926, 42930, 42934, 42938, 42942, 42946, 42950,
+ 42954, 42958, 42962, 42966, 42970, 42974, 42978, 42982, 42986, 42990,
+ 42994, 42998, 43002, 43006, 43010, 43014, 43018, 43022, 43026, 43030,
+ 43034, 43038, 43042, 43046, 43050, 43054, 43058, 43062, 43066, 43070,
+ 43074, 43078, 43082, 43086, 43090, 43094, 43098, 43102, 43106, 43110,
+ 43114, 43118, 43122, 43126, 43130, 43134, 43138, 43142, 43146, 43150,
+ 43154, 43158, 43162, 43166, 43170, 43174, 43178, 43182, 43186, 43190,
+ 43194, 43198, 43202, 43206, 43210, 43214, 43218, 43222, 43226, 43230,
+ 43234, 43238, 43242, 43246, 43250, 43254, 43258, 43262, 43266, 43270,
+ 43274, 43278, 43282, 43286, 43290, 43294, 43298, 43302, 43306, 43310,
+ 43314, 43318, 43322, 43326, 43330, 43334, 43338, 43342, 43346, 43350,
+ 43354, 43358, 43362, 43366, 43370, 43374, 43378, 43382, 43386, 43390,
+ 43394, 43398, 43402, 43406, 43410, 43414, 43418, 43422, 43426, 43430,
+ 43434, 43438, 43442, 43446, 43450, 43454, 43458, 43462, 43466, 43470,
+ 43474, 43478, 43482, 43486, 43490, 43494, 43498, 43502, 43506, 43511,
+ 43515, 43520, 43524, 43529, 43533, 43538, 43542, 43548, 43553, 43557,
+ 43562, 43566, 43571, 43575, 43580, 43584, 43589, 43593, 43598, 43602,
+ 43607, 43611, 43617, 43623, 43628, 43632, 43637, 43641, 43647, 43652,
+ 43656, 43661, 43665, 43670, 43674, 43680, 43685, 43689, 43694, 43698,
+ 43703, 43707, 43712, 43716, 43722, 43727, 43731, 43736, 43740, 43746,
+ 43751, 43755, 43760, 43764, 43769, 43773, 43778, 43782, 43787, 43791,
+ 43797, 43802, 43806, 43812, 43817, 43821, 43827, 43832, 43836, 43841,
+ 43845, 43850, 43854, 43860, 43866, 43872, 43878, 43884, 43890, 43896,
+ 43902, 43907, 43911, 43916, 43920, 43926, 43931, 43935, 43940, 43944,
+ 43949, 43953, 43958, 43962, 43967, 43971, 43976, 43980, 43985, 43989,
+ 43995, 44000, 44004, 44009, 44013, 44019, 44025, 44030, 127, 63, 44034,
+ 44036, 44040, 44044, 44048, 44053, 44057, 44061, 44066, 10802, 44071,
+ 44077, 1671, 6956, 44083, 44086, 44091, 44095, 44100, 44104, 44108,
+ 44113, 11821, 44117, 44121, 44125, 593, 44129, 17999, 44134, 44138,
+ 44143, 44148, 44153, 44157, 44164, 44170, 30924, 44176, 44179, 44183,
+ 44188, 44194, 44198, 44201, 44209, 44215, 44220, 44224, 44227, 44231,
+ 44237, 44241, 44245, 3710, 3715, 14623, 44248, 44252, 44256, 44260,
+ 44264, 44272, 44279, 44283, 15491, 44290, 44304, 44311, 44322, 378,
+ 44327, 44331, 44337, 44349, 44355, 44361, 44366, 44372, 44376, 34696,
+ 44385, 44391, 44400, 44404, 44408, 44413, 44419, 44424, 44428, 44433,
+ 44437, 44441, 44448, 44454, 44459, 44470, 44485, 44500, 44515, 44531,
+ 44549, 11735, 44563, 44570, 44574, 44577, 44586, 44591, 44595, 44603,
+ 18633, 44611, 44615, 44625, 44636, 34621, 999, 44649, 44658, 44676,
+ 44695, 44704, 44712, 44720, 11084, 11934, 44724, 26687, 44727, 35610,
+ 44732, 11083, 44737, 44743, 44748, 44754, 44759, 44765, 44770, 44776,
+ 44781, 44787, 44793, 44799, 44804, 44760, 44766, 44808, 44771, 44777,
+ 44782, 44813, 44788, 44794, 8943, 4319, 44819, 44827, 44831, 44834,
+ 44841, 44845, 44850, 44855, 44862, 44868, 44874, 44879, 17312, 44883,
+ 30753, 44887, 44891, 44895, 44901, 44905, 33001, 44914, 10058, 44918,
+ 10484, 44921, 44928, 44934, 44938, 13932, 44945, 44951, 44956, 44963,
+ 44970, 44977, 33770, 8840, 44984, 44991, 44998, 45004, 45009, 45016,
+ 45027, 45033, 45038, 45043, 45048, 45052, 45057, 45064, 44761, 45068,
+ 45078, 45087, 45098, 45104, 45112, 45119, 45124, 45129, 45134, 45139,
+ 45144, 45148, 45152, 45159, 45165, 45173, 2321, 29847, 11837, 11849,
+ 11854, 11860, 45182, 11865, 11870, 11876, 45187, 45197, 45201, 11881,
+ 45206, 19846, 45209, 45214, 45218, 41011, 45229, 45234, 45241, 45248,
+ 45252, 45255, 45263, 11748, 45270, 45273, 45279, 45289, 6557, 45298,
+ 45303, 45309, 45313, 45321, 45325, 45335, 45341, 45346, 45357, 45366,
+ 45375, 45384, 45393, 45402, 45411, 45420, 45426, 45432, 45437, 45443,
+ 45449, 45455, 45460, 45463, 45470, 45476, 45480, 45485, 45492, 45499,
+ 45503, 45506, 45516, 45529, 45538, 45547, 45558, 45571, 45583, 45594,
+ 45603, 45614, 45619, 45628, 45633, 11886, 45639, 45646, 45654, 45661,
+ 45666, 45671, 30970, 45675, 45682, 4259, 25, 45686, 45691, 19695, 45695,
+ 45698, 45701, 33187, 45705, 33779, 45713, 45717, 45721, 45724, 45730,
+ 45736, 45741, 36748, 45750, 45758, 45764, 45771, 33170, 45775, 33401,
+ 45779, 45788, 45792, 45800, 45806, 45812, 45817, 45821, 33805, 45827,
+ 45830, 45838, 45846, 4646, 45852, 45856, 45860, 45865, 45872, 45878,
+ 45883, 45888, 45892, 45898, 45903, 45909, 4547, 788, 45916, 45920, 45923,
+ 45935, 45942, 45947, 17872, 45951, 45959, 45967, 45975, 45983, 45990,
+ 45998, 46006, 46013, 46021, 46029, 46037, 46045, 46053, 46061, 46069,
+ 46077, 46085, 46093, 46101, 46108, 46116, 46124, 46132, 46140, 46148,
+ 46156, 46164, 46172, 46180, 46188, 46196, 46204, 46212, 46220, 46228,
+ 46236, 46244, 46252, 46260, 46267, 46275, 46282, 46290, 46298, 46306,
+ 46314, 46322, 46330, 46338, 46346, 46357, 26113, 46362, 46365, 46372,
+ 46376, 46382, 46386, 46392, 46397, 46403, 46408, 46413, 46417, 46421,
+ 46428, 46436, 46441, 46446, 46456, 46462, 46475, 46481, 46487, 46493,
+ 46496, 46503, 46508, 46514, 46519, 19591, 930, 46524, 46527, 46530,
+ 46533, 36832, 36838, 46536, 36844, 36857, 36863, 36869, 46542, 36875,
+ 36881, 46548, 46554, 10, 46562, 46569, 46573, 46577, 46585, 37678, 46589,
+ 46593, 46600, 46605, 46609, 46614, 46620, 46625, 46631, 46636, 46640,
+ 46644, 46648, 46653, 46657, 46662, 46666, 46670, 46677, 46682, 46686,
+ 46690, 46695, 46699, 46704, 46708, 46712, 46717, 46723, 18156, 18161,
+ 46728, 46732, 46735, 46741, 46745, 46749, 25107, 46754, 46758, 46764,
+ 46771, 46777, 46782, 39688, 46792, 46797, 46805, 46809, 46812, 37693,
+ 46816, 4612, 46821, 46826, 46830, 46835, 46839, 46844, 15559, 46855,
+ 46859, 46862, 46866, 46871, 46875, 46880, 46885, 46889, 46893, 46897,
+ 46900, 46904, 46907, 46912, 46917, 46922, 46927, 46932, 46937, 8430,
+ 15575, 46942, 46945, 46951, 46956, 46962, 46967, 46973, 46978, 46984,
+ 46989, 46995, 47001, 47007, 47012, 47016, 47020, 47027, 47036, 47052,
+ 47068, 47078, 33077, 47085, 47089, 47094, 47099, 47103, 47107, 42690,
+ 47113, 47118, 47122, 47129, 47134, 47139, 47143, 47146, 47150, 47156,
+ 31915, 47160, 25427, 47165, 47172, 47180, 47186, 47193, 47201, 47207,
+ 47211, 47216, 47222, 47230, 47235, 47239, 47248, 10783, 47256, 47260,
+ 47268, 47275, 47280, 47285, 47290, 47294, 47297, 47303, 47307, 47310,
+ 47314, 47321, 47326, 47330, 47336, 47340, 47346, 47351, 47356, 31293,
+ 36895, 47361, 47370, 47378, 47383, 47389, 47401, 47414, 47428, 47435,
+ 47441, 47447, 47452, 47460, 47463, 47465, 47472, 47479, 47485, 47489,
+ 8429, 47492, 47496, 47500, 47505, 47509, 47513, 47516, 47520, 47534,
+ 27338, 47553, 47566, 47579, 47592, 27356, 47607, 2713, 47622, 47628,
+ 47632, 47642, 47646, 47650, 47655, 47659, 47666, 47671, 47675, 47682,
+ 47688, 47693, 47699, 47709, 47721, 47732, 47737, 47744, 47748, 47752,
+ 47755, 47763, 18654, 4031, 47768, 18189, 47781, 47788, 47795, 47801,
+ 47805, 47809, 47814, 47820, 47825, 47831, 47835, 47839, 47842, 47847,
+ 47851, 47856, 47861, 47866, 47871, 47876, 47881, 47886, 47891, 47896,
+ 8484, 18200, 47901, 47905, 47911, 47920, 47925, 47934, 47941, 42521,
+ 47947, 47952, 47956, 47963, 47968, 47975, 47981, 47985, 47988, 47992,
+ 47997, 2791, 48004, 48011, 48015, 48018, 48023, 48028, 48034, 48039,
+ 48044, 48048, 48053, 48063, 48068, 48074, 48079, 45937, 48085, 48091,
+ 48101, 48106, 48111, 48115, 48120, 48125, 7939, 7951, 48130, 48133,
+ 48140, 48146, 48155, 9975, 40256, 48163, 48167, 48171, 37741, 48179,
+ 48190, 48198, 42738, 48205, 48210, 48215, 48226, 48233, 48244, 37765,
+ 25444, 48252, 1054, 48257, 15982, 48263, 33161, 48269, 48274, 48284,
+ 48293, 48300, 48306, 48310, 48313, 48320, 48326, 48333, 48339, 48349,
+ 48357, 48363, 48369, 48374, 48378, 48385, 48390, 48396, 48403, 48409,
+ 47501, 48414, 48418, 16024, 16033, 16042, 16051, 16060, 16089, 646,
+ 16098, 48424, 48429, 48432, 48438, 48446, 1283, 48451, 48455, 48460,
+ 48465, 48470, 48477, 48483, 48487, 48492, 48498, 48502, 36905, 48507,
+ 48512, 48521, 48528, 48538, 48544, 33205, 48561, 48570, 48578, 48584,
+ 48589, 48596, 48602, 48610, 48619, 48627, 48635, 48641, 48645, 48650,
+ 48658, 34302, 37774, 48664, 48683, 18557, 48697, 48713, 48727, 48733,
+ 48738, 48743, 48748, 48754, 37780, 48759, 48762, 48769, 48776, 48785,
+ 48790, 48794, 442, 3081, 48801, 48806, 48811, 32290, 48599, 48815, 48820,
+ 48828, 48832, 48835, 48840, 48846, 48852, 48857, 48861, 33278, 48864,
+ 48869, 48873, 48876, 48881, 48885, 48890, 48895, 48899, 48904, 48908,
+ 48912, 48916, 25103, 25114, 48921, 48926, 48932, 48937, 48943, 48949,
+ 31871, 48954, 48958, 48961, 48967, 48972, 48977, 48982, 48987, 48992,
+ 48997, 49002, 49007, 49013, 49019, 25200, 18864, 49024, 49029, 49034,
+ 49039, 49044, 49049, 49054, 49059, 450, 68, 36922, 36927, 36932, 36938,
+ 36943, 36948, 49064, 36952, 49068, 49072, 49076, 36957, 36963, 49090,
+ 36974, 36979, 49098, 49103, 36985, 49108, 49113, 49122, 49127, 49132,
+ 49141, 49147, 49153, 49159, 37002, 49172, 49181, 49187, 37006, 49191,
+ 37011, 49196, 37016, 37021, 49199, 49204, 49208, 49214, 15800, 49221,
+ 15810, 49228, 49233, 37026, 49237, 49242, 49247, 49252, 49257, 49261,
+ 49266, 49271, 49277, 49282, 49287, 49293, 49299, 49304, 49308, 49313,
+ 49318, 49323, 49327, 49332, 49337, 49342, 49348, 49354, 49360, 49365,
+ 49369, 49374, 49378, 37030, 37035, 37040, 49382, 49386, 49391, 49395,
+ 49407, 37045, 37051, 37057, 37069, 49413, 30790, 49417, 49422, 49426,
+ 49431, 49438, 49443, 49448, 49453, 49457, 49461, 49471, 49476, 49481,
+ 49485, 49489, 49492, 49500, 49505, 37117, 49509, 1375, 49515, 49520,
+ 49526, 49534, 49538, 49547, 49555, 49559, 49563, 49571, 49577, 49585,
+ 49601, 49605, 49609, 49613, 49618, 49624, 49639, 37154, 1679, 14140,
+ 49643, 1262, 1277, 49655, 49663, 49670, 49675, 49682, 49687, 10467, 977,
+ 2546, 11913, 49694, 10365, 49699, 49702, 49711, 1170, 49716, 47672,
+ 49723, 49732, 49737, 49741, 49749, 26737, 2602, 49756, 12413, 49766,
+ 49772, 2339, 2349, 49781, 49790, 49800, 49811, 3489, 40637, 49816, 4226,
+ 4237, 19629, 1175, 49820, 49828, 49835, 49840, 49844, 49848, 49853,
+ 28359, 47999, 12004, 49861, 49870, 49879, 49887, 49900, 49907, 49918,
+ 49923, 49936, 49949, 49961, 49973, 49985, 49996, 50009, 50020, 50031,
+ 50041, 50049, 50057, 50069, 50081, 50092, 50101, 50109, 50116, 50128,
+ 50135, 50141, 50150, 50156, 50163, 50176, 50181, 50191, 50196, 50202,
+ 50207, 44935, 50211, 47299, 50218, 50225, 50233, 50240, 2559, 50247,
+ 50258, 50268, 50277, 50285, 50295, 50303, 50312, 50322, 50331, 50336,
+ 50342, 50348, 4075, 50359, 50369, 50378, 50387, 50395, 50405, 50413,
+ 50422, 50427, 50432, 50437, 1604, 47, 50445, 50453, 50464, 50475, 19250,
+ 50485, 50489, 50496, 50502, 50507, 50511, 50522, 50532, 50541, 50552,
+ 19668, 19673, 50557, 50566, 50571, 50581, 50586, 50594, 50602, 50609,
+ 50615, 1566, 271, 50619, 50625, 50630, 50633, 2087, 2568, 50641, 50645,
+ 50648, 1420, 50654, 16289, 1180, 50659, 50672, 2702, 2723, 50686, 50698,
+ 50710, 2737, 2754, 2769, 2785, 2802, 50724, 50736, 2817, 50750, 1186,
+ 1192, 1198, 12284, 50755, 50760, 50765, 50769, 50784, 50799, 50814,
+ 50829, 50844, 50859, 50874, 50889, 50904, 50919, 50934, 50949, 50964,
+ 50979, 50994, 51009, 51024, 51039, 51054, 51069, 51084, 51099, 51114,
+ 51129, 51144, 51159, 51174, 51189, 51204, 51219, 51234, 51249, 51264,
+ 51279, 51294, 51309, 51324, 51339, 51354, 51369, 51384, 51399, 51414,
+ 51429, 51444, 51459, 51474, 51489, 51504, 51519, 51534, 51549, 51564,
+ 51579, 51594, 51609, 51624, 51639, 51654, 51669, 51684, 51699, 51714,
+ 51729, 51744, 51759, 51774, 51789, 51804, 51819, 51834, 51849, 51864,
+ 51879, 51894, 51909, 51924, 51939, 51954, 51969, 51984, 51999, 52014,
+ 52029, 52044, 52059, 52074, 52089, 52104, 52119, 52134, 52149, 52164,
+ 52179, 52194, 52209, 52224, 52239, 52254, 52269, 52284, 52299, 52314,
+ 52329, 52344, 52359, 52374, 52389, 52404, 52419, 52434, 52449, 52464,
+ 52479, 52494, 52509, 52524, 52539, 52554, 52569, 52584, 52599, 52614,
+ 52629, 52644, 52659, 52674, 52689, 52704, 52719, 52734, 52749, 52764,
+ 52779, 52794, 52809, 52824, 52839, 52854, 52869, 52884, 52899, 52914,
+ 52929, 52944, 52959, 52974, 52989, 53004, 53019, 53034, 53049, 53064,
+ 53079, 53094, 53109, 53124, 53139, 53154, 53169, 53184, 53199, 53214,
+ 53229, 53244, 53259, 53274, 53289, 53304, 53319, 53334, 53349, 53364,
+ 53379, 53394, 53409, 53424, 53439, 53454, 53469, 53484, 53499, 53514,
+ 53529, 53544, 53559, 53574, 53589, 53604, 53619, 53634, 53649, 53664,
+ 53679, 53694, 53709, 53724, 53739, 53754, 53769, 53784, 53799, 53814,
+ 53829, 53844, 53859, 53874, 53889, 53904, 53919, 53934, 53949, 53964,
+ 53979, 53994, 54009, 54024, 54039, 54054, 54069, 54084, 54099, 54114,
+ 54129, 54144, 54159, 54174, 54189, 54204, 54219, 54234, 54249, 54264,
+ 54279, 54294, 54309, 54324, 54339, 54354, 54369, 54384, 54399, 54414,
+ 54429, 54444, 54459, 54474, 54489, 54504, 54519, 54534, 54549, 54564,
+ 54579, 54594, 54609, 54624, 54639, 54654, 54669, 54684, 54699, 54714,
+ 54729, 54744, 54759, 54774, 54789, 54804, 54819, 54834, 54849, 54864,
+ 54879, 54894, 54909, 54924, 54939, 54954, 54969, 54984, 54999, 55014,
+ 55029, 55044, 55059, 55074, 55089, 55104, 55119, 55134, 55149, 55164,
+ 55179, 55194, 55209, 55224, 55239, 55254, 55269, 55284, 55299, 55314,
+ 55329, 55344, 55359, 55374, 55389, 55404, 55419, 55434, 55449, 55464,
+ 55479, 55494, 55509, 55524, 55539, 55554, 55569, 55584, 55599, 55614,
+ 55629, 55644, 55659, 55674, 55689, 55704, 55719, 55734, 55749, 55764,
+ 55779, 55794, 55809, 55824, 55839, 55854, 55869, 55884, 55899, 55914,
+ 55929, 55944, 55959, 55974, 55989, 56004, 56019, 56034, 56049, 56064,
+ 56079, 56094, 56109, 56124, 56139, 56154, 56169, 56184, 56199, 56214,
+ 56229, 56244, 56259, 56274, 56289, 56304, 56319, 56334, 56349, 56364,
+ 56379, 56394, 56409, 56424, 56439, 56454, 56469, 56484, 56499, 56514,
+ 56529, 56544, 56559, 56574, 56589, 56604, 56619, 56634, 56649, 56664,
+ 56679, 56694, 56709, 56724, 56739, 56754, 56769, 56784, 56799, 56814,
+ 56829, 56844, 56859, 56874, 56889, 56904, 56919, 56934, 56949, 56964,
+ 56979, 56994, 57009, 57024, 57039, 57054, 57069, 57084, 57099, 57114,
+ 57129, 57144, 57159, 57174, 57189, 57204, 57219, 57234, 57249, 57264,
+ 57279, 57294, 57309, 57324, 57339, 57354, 57369, 57384, 57399, 57414,
+ 57429, 57444, 57459, 57474, 57489, 57504, 57519, 57534, 57549, 57564,
+ 57579, 57594, 57609, 57624, 57639, 57654, 57669, 57684, 57699, 57714,
+ 57729, 57744, 57759, 57774, 57789, 57804, 57819, 57834, 57849, 57864,
+ 57879, 57894, 57909, 57924, 57939, 57954, 57969, 57984, 57999, 58014,
+ 58029, 58044, 58059, 58074, 58089, 58104, 58119, 58134, 58149, 58164,
+ 58179, 58194, 58209, 58224, 58239, 58254, 58269, 58284, 58299, 58314,
+ 58329, 58344, 58359, 58374, 58389, 58404, 58419, 58434, 58449, 58464,
+ 58479, 58494, 58509, 58524, 58539, 58554, 58569, 58584, 58600, 58616,
+ 58632, 58648, 58664, 58680, 58696, 58712, 58728, 58744, 58760, 58776,
+ 58792, 58808, 58824, 58840, 58856, 58872, 58888, 58904, 58920, 58936,
+ 58952, 58968, 58984, 59000, 59016, 59032, 59048, 59064, 59080, 59096,
+ 59112, 59128, 59144, 59160, 59176, 59192, 59208, 59224, 59240, 59256,
+ 59272, 59288, 59304, 59320, 59336, 59352, 59368, 59384, 59400, 59416,
+ 59432, 59448, 59464, 59480, 59496, 59512, 59528, 59544, 59560, 59576,
+ 59592, 59608, 59624, 59640, 59656, 59672, 59688, 59704, 59720, 59736,
+ 59752, 59768, 59784, 59800, 59816, 59832, 59848, 59864, 59880, 59896,
+ 59912, 59928, 59944, 59960, 59976, 59992, 60008, 60024, 60040, 60056,
+ 60072, 60088, 60104, 60120, 60136, 60152, 60168, 60184, 60200, 60216,
+ 60232, 60248, 60264, 60280, 60296, 60312, 60328, 60344, 60360, 60376,
+ 60392, 60408, 60424, 60440, 60456, 60472, 60488, 60504, 60520, 60536,
+ 60552, 60568, 60584, 60600, 60616, 60632, 60648, 60664, 60680, 60696,
+ 60712, 60728, 60744, 60760, 60776, 60792, 60808, 60824, 60840, 60856,
+ 60872, 60888, 60904, 60920, 60936, 60952, 60968, 60984, 61000, 61016,
+ 61032, 61048, 61064, 61080, 61096, 61112, 61128, 61144, 61160, 61176,
+ 61192, 61208, 61224, 61240, 61256, 61272, 61288, 61304, 61320, 61336,
+ 61352, 61368, 61384, 61400, 61416, 61432, 61448, 61464, 61480, 61496,
+ 61512, 61528, 61544, 61560, 61576, 61592, 61608, 61624, 61640, 61656,
+ 61672, 61688, 61704, 61720, 61736, 61752, 61768, 61784, 61800, 61816,
+ 61832, 61848, 61864, 61880, 61896, 61912, 61928, 61944, 61960, 61976,
+ 61992, 62008, 62024, 62040, 62056, 62072, 62088, 62104, 62120, 62136,
+ 62152, 62168, 62184, 62200, 62216, 62232, 62248, 62264, 62280, 62296,
+ 62312, 62328, 62344, 62360, 62376, 62392, 62408, 62424, 62440, 62456,
+ 62472, 62488, 62504, 62520, 62536, 62552, 62568, 62584, 62600, 62616,
+ 62632, 62648, 62664, 62680, 62696, 62712, 62728, 62744, 62760, 62776,
+ 62792, 62808, 62824, 62840, 62856, 62872, 62888, 62904, 62920, 62936,
+ 62952, 62968, 62984, 63000, 63016, 63032, 63048, 63064, 63080, 63096,
+ 63112, 63128, 63144, 63160, 63176, 63192, 63208, 63224, 63240, 63256,
+ 63272, 63288, 63304, 63320, 63336, 63352, 63368, 63384, 63400, 63416,
+ 63432, 63448, 63464, 63480, 63496, 63512, 63528, 63544, 63560, 63576,
+ 63592, 63608, 63624, 63640, 63656, 63672, 63688, 63704, 63720, 63736,
+ 63752, 63768, 63784, 63800, 63816, 63832, 63848, 63864, 63880, 63896,
+ 63912, 63928, 63944, 63960, 63976, 63992, 64008, 64024, 64040, 64056,
+ 64072, 64088, 64104, 64120, 64136, 64152, 64168, 64184, 64200, 64216,
+ 64232, 64248, 64264, 64280, 64296, 64312, 64328, 64344, 64360, 64376,
+ 64392, 64408, 64424, 64440, 64456, 64472, 64488, 64504, 64520, 64536,
+ 64552, 64568, 64584, 64600, 64616, 64632, 64648, 64664, 64680, 64696,
+ 64712, 64728, 64744, 64760, 64776, 64792, 64808, 64824, 64840, 64856,
+ 64872, 64888, 64904, 64920, 64936, 64952, 64968, 64984, 65000, 65016,
+ 65032, 65048, 65064, 65080, 65096, 65112, 65128, 65144, 65160, 65176,
+ 65192, 65208, 65224, 65240, 65256, 65272, 65288, 65304, 65320, 65336,
+ 65352, 65368, 65384, 65400, 65416, 65432, 65448, 65464, 65480, 65496,
+ 65512, 65528, 65544, 65560, 65576, 65592, 65608, 65624, 65640, 65656,
+ 65672, 65688, 65704, 65720, 65736, 65752, 65768, 65784, 65800, 65816,
+ 65832, 65848, 65864, 65880, 65896, 65912, 65928, 65944, 65960, 65976,
+ 65992, 66008, 66024, 66040, 66056, 66072, 66088, 66104, 66120, 66136,
+ 66152, 66168, 66184, 66200, 66216, 66232, 66248, 66264, 66280, 66296,
+ 66312, 66328, 66344, 66360, 66376, 66392, 66408, 66424, 66440, 66456,
+ 66472, 66488, 66504, 66520, 66536, 66552, 66568, 66584, 66600, 66616,
+ 66632, 66648, 66664, 66680, 66696, 66712, 66728, 66744, 66760, 66776,
+ 66792, 66808, 66824, 66840, 66856, 66872, 66888, 66904, 66920, 66936,
+ 66952, 66968, 66984, 67000, 67016, 67032, 67048, 67064, 67080, 67096,
+ 67112, 67128, 67144, 67160, 67176, 67192, 67208, 67224, 67240, 67256,
+ 67265, 67280, 17155, 67289, 67294, 67300, 67306, 67316, 67324, 17408,
+ 18090, 11318, 67337, 1428, 1432, 67345, 4155, 32408, 7876, 67351, 67356,
+ 67361, 67366, 67371, 67377, 67382, 67388, 67393, 67399, 67404, 67409,
+ 67414, 67419, 67425, 67430, 67435, 67440, 67445, 67450, 67455, 67460,
+ 67466, 67471, 67477, 67484, 2606, 67489, 67495, 9359, 67499, 67504,
+ 67511, 67519, 4166, 4171, 4176, 4181, 65, 67523, 67529, 67534, 67539,
+ 67543, 67548, 67552, 67556, 12356, 67560, 67570, 67583, 67594, 67607,
+ 67614, 67620, 67628, 11838, 67635, 67640, 67646, 67652, 67658, 67663,
+ 67668, 67673, 67678, 67682, 67687, 67692, 67697, 67703, 67709, 67715,
+ 67720, 67724, 67729, 67734, 67738, 67743, 67748, 67753, 67757, 12372,
+ 12383, 12388, 1471, 67761, 67767, 1476, 19095, 67772, 19104, 1486, 67777,
+ 67783, 67788, 1507, 67794, 1513, 1519, 12418, 67799, 67808, 67816, 67824,
+ 67831, 67835, 67839, 67845, 67850, 36561, 67855, 67862, 67870, 67877,
+ 67882, 67886, 67890, 67899, 67904, 67909, 67914, 1524, 276, 67919, 67923,
+ 19230, 995, 67927, 67934, 67939, 67943, 19266, 1528, 45092, 67946, 67951,
+ 67961, 67970, 67975, 67979, 67985, 1533, 47953, 67990, 67999, 68005,
+ 68010, 68015, 12657, 12663, 68021, 68033, 68050, 68067, 68084, 68101,
+ 68118, 68135, 68152, 68169, 68186, 68203, 68220, 68237, 68254, 68271,
+ 68288, 68305, 68322, 68339, 68356, 68373, 68390, 68407, 68424, 68441,
+ 68458, 68475, 68492, 68509, 68526, 68543, 68560, 68577, 68594, 68611,
+ 68628, 68645, 68662, 68679, 68696, 68713, 68730, 68747, 68764, 68781,
+ 68798, 68815, 68832, 68849, 68866, 68877, 68887, 68892, 1538, 68896,
+ 68901, 68907, 68912, 68917, 68924, 10384, 1543, 68930, 68939, 32792,
+ 68944, 68955, 12679, 68965, 68970, 68976, 68981, 68988, 68994, 68999,
+ 1548, 19560, 69004, 69010, 12689, 69016, 69021, 69026, 69031, 69036,
+ 69041, 69046, 69051, 1553, 4635, 69056, 69061, 69067, 69072, 69077,
+ 69082, 69087, 69092, 69097, 69102, 69107, 69113, 69119, 69125, 69130,
+ 69134, 69139, 69144, 69148, 69153, 69158, 69163, 69168, 69172, 69177,
+ 69183, 69188, 69193, 69197, 69202, 69207, 69213, 69218, 69223, 69229,
+ 69235, 69240, 69244, 69249, 69254, 69259, 69263, 69268, 69273, 69278,
+ 69284, 69290, 69295, 69299, 69303, 69308, 69313, 69318, 34496, 69322,
+ 69327, 69332, 69338, 69343, 69348, 69352, 69357, 69362, 69368, 69373,
+ 69378, 69384, 69390, 69395, 69399, 69404, 69409, 69413, 69418, 69423,
+ 69428, 69434, 69440, 69445, 69449, 69454, 69459, 69463, 69468, 69473,
+ 69478, 69483, 69487, 69490, 69493, 69498, 69503, 37287, 69510, 69518,
+ 48553, 69524, 3827, 32735, 69537, 69544, 69550, 69556, 4006, 69561,
+ 12831, 69567, 69577, 69592, 69600, 12836, 69611, 69616, 69627, 69639,
+ 69651, 69663, 2808, 69675, 69680, 69692, 69696, 69702, 69708, 69713,
+ 69722, 69729, 69734, 69739, 69744, 69749, 69754, 69759, 1570, 18729,
+ 69764, 69769, 48019, 69773, 69777, 69782, 69786, 19708, 69791, 69794,
+ 69799, 69807, 69815, 1574, 12872, 12878, 1579, 69823, 69830, 69835,
+ 69844, 69854, 69861, 69866, 69871, 1584, 69878, 69883, 19828, 69887,
+ 69892, 69899, 69905, 69909, 69922, 69928, 69939, 69949, 69956, 19850,
+ 10278, 10285, 4240, 4246, 69963, 1589, 69968, 69977, 69983, 69991, 69998,
+ 70004, 70011, 70023, 70029, 70034, 70041, 70053, 70064, 70074, 70083,
+ 70093, 70103, 4134, 70111, 36355, 36364, 19890, 70124, 70129, 70134,
+ 70139, 70144, 70149, 70154, 1594, 1598, 70159, 70163, 70166, 70177,
+ 70182, 19916, 1608, 70190, 70195, 70200, 19949, 70212, 70215, 70221,
+ 70227, 70232, 70240, 1613, 70245, 70250, 70258, 70266, 70273, 70282,
+ 70290, 70299, 70303, 1618, 70312, 1623, 25288, 70317, 70324, 70330,
+ 20036, 70338, 70348, 70354, 70359, 70367, 70374, 70383, 70391, 70401,
+ 70410, 70420, 70429, 70440, 70450, 70460, 70469, 70479, 70493, 70506,
+ 70515, 70523, 70533, 70542, 70554, 70565, 70576, 70586, 19328, 70591,
+ 13024, 70600, 70606, 70611, 70618, 70625, 70631, 18939, 70641, 70647,
+ 70652, 70663, 70670, 70677, 70682, 70690, 13041, 13046, 70698, 70704,
+ 70708, 4224, 4235, 20112, 48107, 70716, 70722, 70727, 70735, 70742,
+ 14121, 70747, 70753, 70759, 1634, 70764, 70767, 70773, 70778, 70783,
+ 70788, 70793, 70798, 70803, 70808, 70813, 70819, 70825, 1341, 70830,
+ 70835, 70840, 70846, 70851, 70856, 70861, 70866, 70871, 70876, 1643, 18,
+ 70882, 70886, 70891, 70895, 70899, 70903, 37573, 70908, 27557, 70913,
+ 70918, 70922, 70925, 70929, 70933, 70938, 70942, 70947, 70951, 70954,
+ 70960, 41105, 41110, 41115, 70963, 70970, 70976, 70984, 47725, 70994,
+ 41121, 37837, 37588, 37594, 41137, 37600, 70999, 71004, 71008, 37870,
+ 71015, 71018, 71022, 71030, 71037, 71042, 71045, 71050, 71055, 71059,
+ 71063, 71066, 71076, 71088, 71095, 71101, 37605, 71108, 39502, 71111,
+ 9376, 13386, 71114, 71118, 71123, 4049, 71127, 71130, 15843, 71137,
+ 71144, 71157, 71165, 71174, 71183, 71189, 71194, 71204, 71217, 71229,
+ 71236, 71241, 71250, 71263, 42785, 71281, 71286, 71293, 71299, 71304,
+ 872, 71309, 71317, 71324, 71331, 32231, 893, 71337, 71343, 71353, 71361,
+ 71367, 71372, 37624, 6640, 37638, 71376, 71386, 71391, 71399, 71409,
+ 71424, 71430, 71436, 37648, 71441, 36703, 71445, 71450, 71457, 71462,
+ 71466, 71471, 71479, 19893, 71486, 71491, 71495, 6681, 37674, 71499,
+ 71505, 342, 71515, 71522, 71529, 71535, 71542, 71547, 71556, 15474,
+ 67955, 67965, 71562, 71570, 71574, 71578, 71582, 71586, 71591, 71595,
+ 71601, 71609, 71614, 71619, 71626, 71631, 71635, 71640, 71644, 71648,
+ 71654, 71660, 71665, 71669, 71674, 71678, 37798, 71682, 37804, 37810,
+ 71687, 71693, 71700, 71705, 71709, 36720, 19547, 71712, 71716, 71721,
+ 71728, 71734, 71738, 71743, 47316, 71749, 71753, 71760, 71764, 71769,
+ 71775, 71781, 71787, 71799, 71808, 71818, 71824, 71831, 71836, 71841,
+ 71845, 71848, 71854, 71861, 71866, 71871, 71878, 71885, 71892, 71898,
+ 71903, 71908, 71916, 37815, 2436, 71921, 71926, 71932, 71937, 71943,
+ 71948, 71953, 71958, 71964, 37836, 71969, 71975, 71981, 71987, 37906,
+ 71992, 71997, 72002, 37917, 72007, 72012, 72017, 72023, 72029, 37922,
+ 72034, 72039, 72044, 37977, 37983, 72049, 72054, 37988, 38010, 33068,
+ 38016, 38020, 72059, 13815, 72063, 72071, 72077, 72085, 72092, 72098,
+ 72108, 72114, 72121, 12256, 38034, 72127, 72140, 72149, 72155, 72164,
+ 72170, 72176, 72183, 27900, 72191, 72198, 72208, 72216, 72219, 37978,
+ 72224, 72231, 72236, 72240, 72244, 72249, 72253, 4363, 72258, 72263,
+ 72268, 41199, 41204, 72272, 41218, 72277, 41223, 72282, 72288, 41235,
+ 41241, 41247, 72293, 72299, 26792, 72310, 72313, 72325, 72333, 38057,
+ 72337, 72346, 72356, 72365, 38067, 72370, 72377, 72386, 72392, 72400,
+ 72407, 72414, 6732, 4975, 72419, 37989, 72425, 72428, 72434, 72441,
+ 72446, 72451, 27804, 72455, 72461, 72467, 72472, 72477, 72481, 72487,
+ 72493, 39386, 72498, 42392, 44211, 44217, 38098, 38103, 72502, 72506,
+ 72510, 72513, 72526, 72532, 72536, 72539, 72544, 39755, 72548, 36725,
+ 25229, 72554, 6661, 6669, 10084, 72557, 72562, 72567, 72572, 72577,
+ 72582, 72587, 72592, 72597, 72602, 72608, 72613, 72618, 72624, 72629,
+ 72634, 72639, 72644, 72649, 72654, 72660, 72665, 72671, 72676, 72681,
+ 72686, 72691, 72696, 72701, 72706, 72711, 72716, 72721, 72727, 72732,
+ 72737, 72742, 72747, 72752, 72757, 72763, 72768, 72773, 72778, 72783,
+ 72788, 72793, 72798, 72803, 72808, 72814, 72819, 72824, 72829, 72834,
+ 72840, 72846, 72851, 72857, 72862, 72867, 72872, 72877, 72882, 1421, 156,
+ 72887, 72891, 72895, 72899, 29700, 72903, 72907, 72912, 72916, 72921,
+ 72925, 72930, 72935, 72940, 72944, 72948, 72953, 72957, 15553, 72962,
+ 72966, 72973, 72983, 17753, 72992, 73001, 73005, 73010, 73015, 73019,
+ 73023, 29488, 3164, 73027, 73033, 21125, 73037, 73046, 73054, 73060,
+ 73065, 73077, 73089, 73094, 73098, 73103, 73107, 73113, 73119, 73124,
+ 73134, 73144, 73150, 73158, 73163, 73167, 73173, 73178, 73185, 73191,
+ 73196, 73203, 73212, 73221, 73229, 73233, 18269, 73236, 73245, 73253,
+ 73265, 73276, 73287, 73296, 73300, 73309, 73317, 73327, 73335, 73342,
+ 73352, 73358, 73363, 73370, 73379, 73385, 73390, 73397, 73403, 73414, 60,
+ 36498, 73420, 31110, 31120, 73426, 73434, 73441, 73447, 73451, 73461,
+ 73472, 73480, 73489, 73494, 73499, 73504, 73508, 73512, 73520, 21072,
+ 73527, 73531, 73537, 73547, 73554, 73560, 73566, 41298, 73570, 73572,
+ 73575, 73581, 73585, 73596, 73606, 73612, 73619, 73626, 15490, 73634,
+ 73640, 73649, 73658, 73664, 11184, 73670, 73676, 73681, 73686, 73693,
+ 73698, 73705, 73711, 73716, 73724, 73737, 73746, 73755, 70455, 70465,
+ 73765, 73771, 73780, 73786, 73792, 73799, 73806, 73813, 73820, 73827,
+ 73832, 73836, 73840, 73843, 73853, 73857, 73869, 9745, 73878, 73889,
+ 73894, 73898, 70474, 73904, 73911, 73920, 73928, 73936, 73941, 73945,
+ 73950, 73955, 73965, 73973, 73985, 73990, 73994, 73998, 74004, 74012,
+ 74019, 74031, 74039, 74050, 74057, 74063, 74073, 74079, 74083, 74092,
+ 74101, 74108, 74114, 74119, 74123, 74127, 74131, 74140, 74149, 74158,
+ 74165, 74171, 74177, 74183, 74188, 74195, 74201, 74209, 74216, 74222,
+ 14585, 74227, 74233, 74237, 16644, 74241, 74246, 74256, 74261, 74270,
+ 74276, 74282, 74290, 74297, 74301, 74305, 74312, 74318, 74326, 74333,
+ 74339, 74350, 74354, 74358, 74362, 74365, 74371, 74376, 74381, 74385,
+ 74389, 74398, 74406, 74413, 74419, 74426, 28537, 47450, 74431, 74439,
+ 74443, 74447, 74450, 74458, 74465, 74471, 74480, 74488, 74494, 74499,
+ 74503, 74508, 74513, 74517, 74521, 74525, 74530, 74539, 74543, 74550,
+ 44315, 74554, 74560, 74568, 74572, 74578, 74586, 74592, 74597, 74608,
+ 74616, 74622, 74631, 26939, 74639, 74646, 74653, 74660, 74667, 74674,
+ 50944, 15305, 74681, 74688, 74693, 41334, 4595, 74699, 74704, 74709,
+ 74715, 74721, 74727, 74732, 74737, 74742, 74747, 74753, 74758, 74764,
+ 74769, 74775, 74780, 74785, 74790, 74795, 74800, 74805, 74810, 74816,
+ 74821, 74827, 74832, 74837, 74842, 74847, 74852, 74857, 74863, 74868,
+ 74873, 74878, 74883, 74888, 74893, 74898, 74903, 74908, 74913, 74919,
+ 74924, 74929, 74934, 74939, 74944, 74949, 74954, 74959, 74965, 74970,
+ 74975, 74980, 74985, 74990, 74995, 75000, 75005, 75010, 75015, 75020,
+ 75025, 75031, 1798, 305, 75036, 45210, 75040, 75043, 75048, 75052, 75055,
+ 3533, 75060, 75065, 75069, 75078, 75089, 75106, 75124, 75132, 73932,
+ 75139, 75142, 75152, 75159, 75168, 75184, 75193, 75203, 75208, 75221,
+ 75231, 75240, 75248, 75262, 75270, 75279, 75283, 75286, 75293, 75299,
+ 75310, 75317, 75329, 75340, 75351, 75360, 75367, 1181, 811, 75377, 2649,
+ 75381, 75386, 75395, 1015, 8818, 24670, 75403, 75411, 75425, 75438,
+ 75442, 75447, 75452, 75457, 75463, 75469, 75474, 9368, 17796, 75479,
+ 75483, 75491, 9805, 75496, 75502, 75511, 75519, 1651, 12885, 1055, 4278,
+ 75523, 75527, 75536, 75546, 2387, 31949, 75555, 75561, 19800, 31964,
+ 75567, 4443, 13267, 75573, 75580, 70172, 75584, 75588, 75594, 75599,
+ 75604, 3760, 160, 3786, 75609, 75621, 75625, 75629, 75635, 75640, 32812,
+ 75644, 13255, 2843, 4, 75649, 75659, 75670, 75681, 75691, 75697, 75708,
+ 75715, 75721, 75727, 75735, 75742, 75748, 75758, 75768, 75778, 75787,
+ 27887, 1193, 75792, 75796, 75800, 75806, 75810, 2866, 2872, 9365, 2242,
+ 75814, 75818, 75827, 75835, 75846, 75854, 75862, 75868, 75873, 75884,
+ 75895, 75903, 75909, 75914, 10993, 75924, 75932, 75936, 75940, 75945,
+ 75949, 75961, 33261, 17698, 75968, 75978, 75984, 75990, 7752, 11095,
+ 76000, 76011, 76022, 76032, 76041, 76045, 76052, 1017, 2636, 76062,
+ 76067, 76075, 69888, 76083, 76088, 76099, 76106, 76120, 16453, 525,
+ 76130, 76137, 76141, 76145, 76153, 76162, 76170, 76176, 19845, 76181,
+ 76195, 76202, 76208, 76216, 76225, 76234, 76241, 76253, 76263, 76271,
+ 76278, 76286, 76293, 4242, 116, 76301, 76312, 76316, 76328, 76334, 13469,
+ 210, 76339, 10416, 76344, 2911, 76348, 76355, 76361, 76372, 76382, 76390,
+ 76397, 9756, 76404, 76413, 76421, 4323, 76434, 4340, 76438, 76443, 76449,
+ 76454, 76459, 76464, 2916, 561, 76470, 76483, 76487, 76492, 2921, 1797,
+ 919, 76496, 4344, 76504, 76510, 76514, 774, 76524, 76533, 76538, 3777,
+ 76542, 17447, 17454, 54306, 76546, 4375, 4252, 15183, 76554, 76561,
+ 76566, 27951, 76570, 76577, 76583, 76588, 76593, 13582, 204, 76598,
+ 76610, 76616, 76624, 2933, 1688, 76632, 76634, 76639, 76644, 76649,
+ 76655, 76660, 76665, 76670, 76675, 76680, 76685, 76691, 76696, 76701,
+ 76706, 76711, 76716, 76721, 76726, 76731, 76737, 76742, 76747, 76752,
+ 76758, 76763, 76769, 76774, 76779, 76784, 76789, 76794, 76799, 76804,
+ 76810, 76815, 76821, 76826, 76831, 76836, 76841, 76846, 76851, 76856,
+ 76861, 9437, 9450, 4391, 4396, 4401, 4406, 26, 76867, 76873, 76878,
+ 76883, 76888, 76894, 76899, 76903, 76907, 76912, 76918, 76922, 76928,
+ 76933, 76938, 76944, 76949, 76953, 76958, 76963, 76967, 76970, 76972,
+ 76976, 76979, 76986, 76991, 76995, 77000, 77004, 77008, 77012, 77021,
+ 77025, 38345, 77028, 38350, 77035, 77040, 38355, 77049, 77058, 38361,
+ 77063, 38366, 77072, 77077, 13512, 77081, 77086, 77091, 38371, 77095,
+ 77104, 49149, 77108, 77111, 77115, 9036, 77121, 77124, 77129, 77134,
+ 77138, 4064, 38376, 77141, 77145, 77148, 77159, 77164, 77168, 77174,
+ 77182, 77195, 77199, 77207, 77216, 77222, 77227, 77233, 77237, 77243,
+ 77249, 77257, 77262, 77266, 77273, 77279, 77287, 77296, 77304, 38379,
+ 77311, 77321, 77330, 77338, 77349, 77362, 77367, 77372, 77376, 77385,
+ 77391, 77398, 77411, 77423, 77434, 77446, 77453, 77462, 77471, 77480,
+ 77487, 77493, 77500, 77508, 77515, 77523, 77532, 77540, 77547, 77555,
+ 77564, 77572, 77581, 77591, 77600, 77608, 77615, 77623, 77632, 77640,
+ 77649, 77659, 77668, 77676, 77685, 77695, 77704, 77714, 77725, 77735,
+ 77744, 77752, 77759, 77767, 77776, 77784, 77793, 77803, 77812, 77820,
+ 77829, 77839, 77848, 77858, 77869, 77879, 77888, 77896, 77905, 77915,
+ 77924, 77934, 77945, 77955, 77964, 77974, 77985, 77995, 78006, 78018,
+ 78029, 78039, 78048, 78056, 78063, 78071, 78080, 78088, 78097, 78107,
+ 78116, 78124, 78133, 78143, 78152, 78162, 78173, 78183, 78192, 78200,
+ 78209, 78219, 78228, 78238, 78249, 78259, 78268, 78278, 78289, 78299,
+ 78310, 78322, 78333, 78343, 78352, 78360, 78369, 78379, 78388, 78398,
+ 78409, 78419, 78428, 78438, 78449, 78459, 78470, 78482, 78493, 78503,
+ 78512, 78522, 78533, 78543, 78554, 78566, 78577, 78587, 78598, 78610,
+ 78621, 78633, 78646, 78658, 78669, 78679, 78688, 78696, 78703, 78711,
+ 78720, 78728, 78737, 78747, 78756, 78764, 78773, 78783, 78792, 78802,
+ 78813, 78823, 78832, 78840, 78849, 78859, 78868, 78878, 78889, 78899,
+ 78908, 78918, 78929, 78939, 78950, 78962, 78973, 78983, 78992, 79000,
+ 79009, 79019, 79028, 79038, 79049, 79059, 79068, 79078, 79089, 79099,
+ 79110, 79122, 79133, 79143, 79152, 79162, 79173, 79183, 79194, 79206,
+ 79217, 79227, 79238, 79250, 79261, 79273, 79286, 79298, 79309, 79319,
+ 79328, 79336, 79345, 79355, 79364, 79374, 79385, 79395, 79404, 79414,
+ 79425, 79435, 79446, 79458, 79469, 79479, 79488, 79498, 79509, 79519,
+ 79530, 79542, 79553, 79563, 79574, 79586, 79597, 79609, 79622, 79634,
+ 79645, 79655, 79664, 79674, 79685, 79695, 79706, 79718, 79729, 79739,
+ 79750, 79762, 79773, 79785, 79798, 79810, 79821, 79831, 79842, 79854,
+ 79865, 79877, 79890, 79902, 79913, 79925, 79938, 79950, 79963, 79977,
+ 79990, 80002, 80013, 80023, 80032, 80040, 80047, 80052, 80056, 8849,
+ 80063, 80068, 38389, 80074, 80079, 38394, 80085, 24792, 30653, 80090,
+ 80096, 80104, 80110, 80116, 80123, 80130, 80135, 80140, 80144, 80149,
+ 80153, 80156, 80160, 80165, 80174, 80183, 80191, 80197, 80209, 80220,
+ 80224, 3226, 8824, 80229, 80232, 80235, 80237, 80241, 80245, 80249,
+ 80255, 80260, 30716, 80265, 80269, 80272, 80277, 80281, 80288, 80294,
+ 80298, 6835, 80302, 80307, 38416, 80311, 80318, 80327, 80335, 80341,
+ 80352, 80360, 80369, 80377, 80384, 80391, 80397, 80402, 80413, 38421,
+ 80418, 80429, 80441, 80449, 80460, 80469, 80477, 80488, 80493, 80501,
+ 2601, 80506, 80515, 40704, 80528, 80532, 80544, 80552, 80557, 80565,
+ 80576, 21290, 80585, 80591, 80598, 80606, 80612, 38431, 80617, 4369,
+ 67320, 80624, 80627, 80635, 80648, 80661, 80674, 80687, 80694, 80705,
+ 80714, 80719, 50761, 50766, 80723, 80727, 80735, 80742, 80751, 80759,
+ 80765, 80774, 80782, 80789, 80797, 80801, 80810, 80819, 80829, 80842,
+ 80855, 80865, 38436, 80871, 80878, 80884, 80890, 38442, 80895, 80898,
+ 80902, 80910, 80919, 50544, 80927, 80936, 80944, 80951, 80959, 80969,
+ 80978, 80987, 39884, 80996, 81007, 81022, 81032, 10449, 25565, 81041,
+ 81046, 81051, 81055, 18931, 81060, 81065, 81071, 81076, 81081, 81087,
+ 81092, 81097, 25525, 81102, 81109, 81117, 81125, 81133, 81138, 81145,
+ 81152, 81157, 1706, 81161, 81165, 81173, 81181, 38459, 81187, 81193,
+ 81205, 81211, 81218, 81222, 81229, 81234, 81241, 81247, 81254, 81265,
+ 81275, 81285, 81297, 81303, 81311, 81317, 81327, 81337, 38486, 81346,
+ 81355, 81361, 81373, 81384, 81391, 81396, 81400, 81408, 81414, 81419,
+ 81424, 81431, 81439, 81451, 81461, 81470, 81479, 81487, 81494, 40530,
+ 28325, 81500, 81505, 81509, 81513, 81518, 81526, 81532, 81543, 81556,
+ 81561, 81568, 38491, 81573, 81585, 81594, 81602, 81612, 81623, 81636,
+ 81643, 81652, 81661, 81669, 81674, 81680, 81684, 1410, 81689, 81694,
+ 81699, 81704, 81710, 81715, 81720, 81726, 81732, 81737, 81741, 81746,
+ 81751, 81756, 67895, 81761, 81766, 81771, 81776, 81782, 81788, 81793,
+ 81797, 81802, 18930, 81807, 81813, 81818, 81824, 81829, 81834, 81839,
+ 81844, 81848, 81854, 81859, 81868, 81873, 81878, 81883, 81888, 81892,
+ 81899, 81905, 4704, 20162, 3191, 81910, 81914, 81919, 81923, 81927,
+ 81931, 54561, 81935, 81860, 81937, 81947, 38500, 81950, 81955, 81964,
+ 81970, 6794, 38505, 81974, 81980, 81985, 81991, 81996, 82000, 82007,
+ 82012, 82022, 82031, 82035, 82041, 82047, 82053, 82057, 82065, 82072,
+ 82080, 82088, 38510, 82095, 82098, 82109, 82116, 82122, 82127, 82131,
+ 82137, 82145, 82152, 82157, 82161, 82170, 82178, 82184, 82189, 38515,
+ 82196, 27777, 82208, 82214, 82219, 82225, 82232, 82238, 25251, 32431,
+ 82244, 82249, 82255, 82259, 82271, 81893, 81900, 25457, 82281, 82286,
+ 82293, 82299, 82306, 82312, 82323, 82328, 82336, 10154, 82341, 82344,
+ 82350, 82354, 82358, 82361, 82367, 82373, 38225, 4705, 1425, 15602,
+ 82380, 82386, 82392, 82398, 82404, 82410, 82416, 82422, 82428, 82433,
+ 82438, 82443, 82448, 82453, 82458, 82463, 82468, 82473, 82478, 82483,
+ 82488, 82493, 82499, 82504, 82509, 82515, 82520, 82525, 82531, 82537,
+ 82543, 82549, 82555, 82561, 82567, 82573, 82579, 82584, 82589, 82595,
+ 82600, 82605, 82611, 82616, 82621, 82626, 82631, 82636, 82641, 82646,
+ 82651, 82656, 82661, 82666, 82671, 82677, 82682, 82687, 82692, 82698,
+ 82703, 82708, 82713, 82718, 82724, 82729, 82734, 82739, 82744, 82749,
+ 82754, 82759, 82764, 82769, 82774, 82779, 82784, 82789, 82794, 82799,
+ 82804, 82809, 82814, 82819, 82825, 82830, 82835, 82840, 82845, 82850,
+ 82855, 82860, 1027, 169, 82865, 82869, 82873, 82878, 82886, 82890, 82897,
+ 82905, 82909, 82922, 82930, 82935, 82940, 31173, 82944, 82949, 82953,
+ 82958, 82962, 82970, 82974, 24800, 82979, 82983, 70712, 82987, 82990,
+ 82998, 83006, 83014, 83019, 83024, 83031, 83038, 83044, 83050, 83055,
+ 83062, 83067, 83075, 75430, 83082, 83087, 70484, 83094, 83100, 83105,
+ 83109, 83116, 83122, 83129, 70511, 13596, 83137, 83142, 83147, 83151,
+ 83154, 83165, 83174, 83180, 83185, 83189, 83199, 83208, 48940, 83212,
+ 83216, 83223, 83236, 83242, 83250, 83259, 83270, 83281, 83292, 83303,
+ 83312, 83318, 83327, 83335, 83345, 83358, 83366, 83373, 83384, 83393,
+ 83399, 83404, 83409, 83415, 83425, 83431, 83441, 83449, 83456, 83466,
+ 83475, 81575, 83483, 83489, 83497, 83503, 73977, 83510, 83515, 83518,
+ 83522, 83528, 83532, 83535, 83543, 83549, 83555, 83563, 83575, 83587,
+ 83594, 83599, 83603, 83614, 83622, 83629, 83641, 83649, 83656, 83664,
+ 83671, 83677, 83682, 83692, 83701, 83709, 83714, 83724, 83733, 49805,
+ 83740, 83744, 83749, 83757, 83764, 83770, 83774, 83784, 83795, 83803,
+ 83810, 83822, 83834, 83843, 80518, 83850, 83860, 83872, 83883, 83897,
+ 83905, 83915, 83922, 83930, 83943, 83955, 83964, 83972, 83982, 83993,
+ 84005, 84014, 84024, 84034, 84043, 84050, 84059, 84074, 84082, 84092,
+ 84101, 84109, 84122, 67290, 84137, 84147, 84156, 84168, 84178, 84190,
+ 84201, 84215, 84229, 84243, 84257, 84271, 84285, 84299, 84313, 84327,
+ 84341, 84355, 84369, 84383, 84397, 84411, 84425, 84439, 84453, 84467,
+ 84481, 84495, 84509, 84523, 84537, 84551, 84565, 84579, 84593, 84607,
+ 84621, 84635, 84649, 84663, 84677, 84691, 84705, 84719, 84733, 84747,
+ 84761, 84775, 84789, 84803, 84817, 84831, 84845, 84859, 84873, 84887,
+ 84901, 84915, 84929, 84943, 84957, 84971, 84985, 84999, 85013, 85027,
+ 85041, 85055, 85069, 85083, 85097, 85111, 85125, 85139, 85153, 85167,
+ 85181, 85195, 85209, 85223, 85237, 85251, 85265, 85279, 85293, 85307,
+ 85321, 85335, 85349, 85363, 85377, 85391, 85405, 85419, 85433, 85447,
+ 85461, 85475, 85489, 85503, 85517, 85531, 85545, 85559, 85573, 85587,
+ 85601, 85615, 85629, 85643, 85657, 85671, 85685, 85699, 85713, 85727,
+ 85741, 85755, 85769, 85783, 85797, 85811, 85825, 85839, 85853, 85867,
+ 85881, 85895, 85909, 85923, 85937, 85951, 85965, 85979, 85993, 86007,
+ 86021, 86035, 86049, 86063, 86077, 86091, 86105, 86119, 86133, 86147,
+ 86161, 86175, 86189, 86203, 86217, 86231, 86245, 86259, 86273, 86287,
+ 86301, 86315, 86329, 86343, 86357, 86371, 86385, 86399, 86413, 86427,
+ 86441, 86455, 86469, 86483, 86497, 86511, 86525, 86539, 86553, 86567,
+ 86581, 86595, 86609, 86623, 86637, 86651, 86665, 86679, 86693, 86707,
+ 86721, 86735, 86749, 86763, 86777, 86791, 86805, 86819, 86833, 86847,
+ 86861, 86875, 86889, 86903, 86917, 86931, 86945, 86959, 86973, 86987,
+ 87001, 87015, 87029, 87043, 87057, 87071, 87085, 87099, 87113, 87127,
+ 87141, 87155, 87169, 87183, 87197, 87211, 87225, 87239, 87253, 87267,
+ 87281, 87295, 87309, 87323, 87337, 87351, 87365, 87379, 87393, 87407,
+ 87421, 87435, 87449, 87463, 87477, 87491, 87505, 87519, 87533, 87547,
+ 87561, 87575, 87589, 87603, 87617, 87631, 87645, 87659, 87673, 87687,
+ 87701, 87715, 87729, 87743, 87757, 87771, 87785, 87799, 87813, 87827,
+ 87841, 87855, 87869, 87883, 87897, 87911, 87925, 87939, 87953, 87967,
+ 87981, 87995, 88009, 88023, 88037, 88051, 88065, 88079, 88093, 88107,
+ 88121, 88135, 88149, 88163, 88177, 88191, 88205, 88219, 88233, 88247,
+ 88261, 88275, 88289, 88303, 88317, 88331, 88345, 88359, 88373, 88387,
+ 88401, 88415, 88429, 88443, 88457, 88471, 88485, 88499, 88513, 88527,
+ 88541, 88555, 88569, 88583, 88597, 88611, 88625, 88639, 88653, 88667,
+ 88681, 88695, 88709, 88723, 88737, 88751, 88765, 88779, 88793, 88807,
+ 88821, 88835, 88849, 88863, 88877, 88891, 88905, 88919, 88933, 88947,
+ 88961, 88975, 88989, 89003, 89017, 89031, 89045, 89059, 89073, 89087,
+ 89101, 89115, 89129, 89143, 89157, 89171, 89185, 89199, 89213, 89227,
+ 89241, 89255, 89269, 89283, 89297, 89311, 89325, 89339, 89353, 89367,
+ 89381, 89395, 89409, 89423, 89437, 89451, 89465, 89479, 89493, 89507,
+ 89521, 89535, 89549, 89563, 89577, 89591, 89605, 89619, 89633, 89647,
+ 89661, 89675, 89689, 89703, 89717, 89731, 89745, 89759, 89773, 89787,
+ 89801, 89815, 89829, 89843, 89857, 89871, 89885, 89899, 89913, 89927,
+ 89941, 89955, 89969, 89983, 89997, 90011, 90025, 90039, 90053, 90067,
+ 90081, 90095, 90109, 90123, 90137, 90151, 90165, 90179, 90193, 90207,
+ 90221, 90235, 90249, 90263, 90277, 90291, 90305, 90319, 90333, 90347,
+ 90361, 90375, 90389, 90403, 90417, 90431, 90445, 90459, 90473, 90487,
+ 90501, 90515, 90529, 90543, 90557, 90571, 90585, 90599, 90613, 90627,
+ 90641, 90655, 90669, 90683, 90697, 90711, 90725, 90739, 90753, 90767,
+ 90781, 90795, 90809, 90823, 90837, 90851, 90865, 90879, 90893, 90907,
+ 90921, 90935, 90949, 90963, 90977, 90991, 91005, 91019, 91033, 91047,
+ 91061, 91075, 91089, 91103, 91117, 91131, 91145, 91159, 91173, 91187,
+ 91201, 91215, 91229, 91243, 91257, 91271, 91285, 91299, 91313, 91327,
+ 91341, 91355, 91369, 91383, 91397, 91411, 91425, 91439, 91453, 91467,
+ 91481, 91495, 91509, 91523, 91537, 91551, 91565, 91579, 91593, 91607,
+ 91621, 91635, 91649, 91663, 91677, 91691, 91705, 91719, 91733, 91747,
+ 91761, 91775, 91789, 91803, 91817, 91831, 91845, 91859, 91873, 91887,
+ 91901, 91915, 91929, 91943, 91957, 91971, 91985, 91999, 92013, 92027,
+ 92041, 92055, 92069, 92083, 92097, 92111, 92125, 92139, 92153, 92167,
+ 92181, 92195, 92209, 92223, 92237, 92251, 92265, 92279, 92293, 92307,
+ 92321, 92335, 92349, 92363, 92377, 92391, 92405, 92419, 92433, 92447,
+ 92461, 92475, 92489, 92503, 92517, 92531, 92545, 92559, 92573, 92587,
+ 92601, 92615, 92629, 92643, 92657, 92671, 92685, 92699, 92713, 92727,
+ 92741, 92755, 92769, 92783, 92797, 92811, 92825, 92839, 92853, 92867,
+ 92881, 92895, 92909, 92923, 92937, 92951, 92965, 92979, 92993, 93007,
+ 93021, 93035, 93049, 93063, 93077, 93091, 93105, 93119, 93133, 93147,
+ 93161, 93175, 93189, 93203, 93217, 93231, 93245, 93259, 93273, 93287,
+ 93301, 93315, 93329, 93343, 93357, 93371, 93385, 93399, 93413, 93427,
+ 93441, 93455, 93469, 93483, 93497, 93511, 93525, 93539, 93553, 93567,
+ 93581, 93595, 93609, 93623, 93637, 93651, 93665, 93679, 93693, 93707,
+ 93721, 93735, 93749, 93763, 93777, 93791, 93805, 93819, 93833, 93847,
+ 93861, 93875, 93889, 93903, 93917, 93931, 93945, 93959, 93973, 93987,
+ 94001, 94015, 94029, 94043, 94057, 94071, 94085, 94099, 94113, 94127,
+ 94141, 94155, 94169, 94183, 94197, 94211, 94225, 94239, 94253, 94267,
+ 94281, 94295, 94309, 94323, 94337, 94351, 94365, 94379, 94393, 94407,
+ 94421, 94435, 94449, 94463, 94477, 94491, 94505, 94519, 94533, 94547,
+ 94561, 94575, 94589, 94603, 94617, 94631, 94645, 94659, 94673, 94687,
+ 94701, 94715, 94729, 94743, 94757, 94771, 94785, 94799, 94813, 94827,
+ 94841, 94855, 94869, 94883, 94897, 94911, 94925, 94939, 94953, 94962,
+ 94973, 94984, 94994, 95005, 95013, 95021, 95027, 95037, 95045, 95051,
+ 34382, 95056, 95062, 95071, 95083, 95088, 95095, 11007, 21310, 95101,
+ 95110, 95115, 95119, 95124, 95131, 95137, 95142, 95147, 95155, 95163,
+ 95173, 95178, 95186, 14061, 95190, 95193, 95195, 95210, 95223, 95230,
+ 95236, 95247, 95252, 95256, 95261, 95268, 95274, 95279, 95287, 76024,
+ 76034, 95293, 95300, 95310, 12243, 95317, 95322, 34620, 95331, 95336,
+ 95343, 95353, 95361, 95369, 95378, 95387, 95393, 95399, 95406, 95413,
+ 95418, 95422, 95430, 70528, 95435, 95444, 95452, 95459, 95464, 95468,
+ 95477, 95483, 95486, 95490, 95499, 95509, 82917, 95518, 95522, 95530,
+ 95534, 95540, 95551, 95561, 21319, 95572, 95581, 95589, 95597, 95604,
+ 70547, 9602, 95612, 95616, 95625, 95632, 95635, 95639, 32309, 95642,
+ 95646, 95651, 95668, 95680, 12201, 95692, 95697, 95702, 95707, 24902,
+ 95711, 95716, 95721, 95727, 95732, 6433, 95737, 24906, 95742, 95747,
+ 95753, 95760, 95765, 95770, 95776, 95782, 95788, 95793, 95799, 95803,
+ 95817, 95825, 95833, 95839, 95844, 95851, 95861, 95870, 95875, 95880,
+ 95885, 95893, 95903, 95914, 95919, 95925, 95930, 95939, 69012, 4634,
+ 95944, 95962, 95981, 95994, 96008, 96024, 96031, 96038, 96047, 96054,
+ 96060, 96067, 96072, 96078, 96083, 96089, 96097, 96103, 96108, 96113,
+ 96129, 12214, 96143, 96150, 96158, 96164, 96168, 96171, 96177, 96182,
+ 96187, 96195, 96202, 96207, 96216, 96222, 96227, 96233, 96239, 96248,
+ 96257, 42236, 96262, 96270, 96279, 13669, 96288, 96294, 96302, 96308,
+ 96314, 96320, 96325, 96332, 96338, 13680, 96343, 96346, 96351, 38542,
+ 96361, 96370, 96375, 96381, 96386, 96394, 96401, 96412, 96428, 96444,
+ 96460, 96476, 96492, 96508, 96524, 96540, 96556, 96572, 96588, 96604,
+ 96620, 96636, 96652, 96668, 96684, 96700, 96716, 96732, 96748, 96764,
+ 96780, 96796, 96812, 96828, 96844, 96860, 96876, 96892, 96908, 96924,
+ 96940, 96956, 96972, 96988, 97004, 97020, 97036, 97052, 97068, 97084,
+ 97100, 97116, 97132, 97148, 97164, 97180, 97196, 97212, 97228, 97244,
+ 97260, 97276, 97292, 97308, 97324, 97340, 97356, 97372, 97388, 97404,
+ 97420, 97436, 97452, 97468, 97484, 97500, 97516, 97532, 97548, 97564,
+ 97580, 97596, 97612, 97628, 97644, 97660, 97676, 97692, 97708, 97724,
+ 97740, 97756, 97772, 97788, 97804, 97820, 97836, 97852, 97868, 97884,
+ 97900, 97916, 97932, 97948, 97964, 97980, 97996, 98012, 98028, 98044,
+ 98060, 98076, 98092, 98108, 98124, 98140, 98156, 98172, 98188, 98204,
+ 98220, 98236, 98252, 98268, 98284, 98300, 98316, 98332, 98348, 98364,
+ 98380, 98396, 98412, 98428, 98444, 98460, 98476, 98492, 98508, 98524,
+ 98540, 98556, 98572, 98588, 98604, 98620, 98636, 98652, 98668, 98684,
+ 98700, 98716, 98732, 98748, 98764, 98780, 98796, 98812, 98828, 98844,
+ 98860, 98876, 98892, 98908, 98924, 98940, 98956, 98972, 98988, 99004,
+ 99020, 99036, 99052, 99068, 99084, 99100, 99116, 99132, 99148, 99164,
+ 99180, 99196, 99212, 99228, 99244, 99260, 99276, 99292, 99308, 99324,
+ 99340, 99356, 99372, 99388, 99404, 99420, 99436, 99452, 99468, 99484,
+ 99500, 99516, 99532, 99548, 99564, 99580, 99596, 99612, 99628, 99644,
+ 99660, 99676, 99692, 99708, 99724, 99740, 99756, 99772, 99788, 99804,
+ 99820, 99836, 99852, 99868, 99884, 99900, 99916, 99932, 99948, 99964,
+ 99980, 99996, 100012, 100028, 100044, 100060, 100076, 100092, 100108,
+ 100124, 100140, 100156, 100172, 100188, 100204, 100220, 100236, 100252,
+ 100268, 100284, 100300, 100316, 100332, 100348, 100364, 100380, 100396,
+ 100412, 100428, 100444, 100460, 100476, 100492, 100508, 100524, 100540,
+ 100556, 100572, 100588, 100604, 100620, 100636, 100652, 100668, 100684,
+ 100700, 100716, 100732, 100748, 100764, 100780, 100796, 100812, 100828,
+ 100844, 100860, 100876, 100892, 100908, 100924, 100940, 100956, 100972,
+ 100988, 101004, 101020, 101036, 101052, 101068, 101084, 101100, 101116,
+ 101132, 101148, 101164, 101180, 101196, 101212, 101228, 101244, 101260,
+ 101276, 101292, 101308, 101324, 101340, 101356, 101372, 101388, 101404,
+ 101420, 101436, 101452, 101468, 101484, 101500, 101516, 101532, 101548,
+ 101564, 101580, 101596, 101612, 101628, 101644, 101660, 101676, 101692,
+ 101708, 101724, 101740, 101756, 101772, 101788, 101804, 101820, 101836,
+ 101852, 101868, 101884, 101900, 101916, 101932, 101948, 101964, 101980,
+ 101996, 102012, 102028, 102044, 102060, 102076, 102092, 102108, 102124,
+ 102140, 102156, 102172, 102188, 102204, 102220, 102236, 102252, 102268,
+ 102284, 102300, 102316, 102332, 102348, 102364, 102380, 102396, 102412,
+ 102428, 102444, 102460, 102476, 102492, 102508, 102524, 102540, 102556,
+ 102572, 102588, 102604, 102620, 102636, 102652, 102668, 102684, 102700,
+ 102716, 102732, 102748, 102764, 102780, 102796, 102812, 102828, 102844,
+ 102860, 102876, 102892, 102908, 102924, 102940, 102956, 102972, 102988,
+ 103004, 103020, 103036, 103052, 103068, 103084, 103100, 103116, 103132,
+ 103148, 103164, 103180, 103196, 103212, 103228, 103244, 103260, 103276,
+ 103292, 103308, 103324, 103340, 103356, 103372, 103388, 103404, 103420,
+ 103436, 103452, 103468, 103484, 103500, 103516, 103532, 103548, 103564,
+ 103580, 103596, 103612, 103628, 103644, 103660, 103676, 103692, 103708,
+ 103724, 103740, 103756, 103772, 103788, 103804, 103820, 103836, 103852,
+ 103868, 103884, 103900, 103916, 103932, 103948, 103964, 103980, 103996,
+ 104012, 104028, 104044, 104060, 104076, 104092, 104108, 104124, 104140,
+ 104156, 104172, 104188, 104204, 104220, 104236, 104252, 104268, 104284,
+ 104300, 104316, 104332, 104348, 104364, 104380, 104396, 104412, 104428,
+ 104444, 104460, 104476, 104492, 104508, 104524, 104540, 104556, 104572,
+ 104588, 104604, 104620, 104636, 104652, 104668, 104684, 104700, 104716,
+ 104732, 104748, 104764, 104780, 104796, 104812, 104828, 104844, 104860,
+ 104876, 104892, 104908, 104924, 104940, 104956, 104972, 104988, 105004,
+ 105020, 105036, 105052, 105068, 105084, 105100, 105116, 105132, 105148,
+ 105164, 105180, 105196, 105212, 105228, 105244, 105260, 105276, 105292,
+ 105308, 105324, 105340, 105356, 105372, 105388, 105404, 105420, 105436,
+ 105452, 105468, 105484, 105500, 105516, 105532, 105548, 105564, 105580,
+ 105596, 105612, 105628, 105644, 105660, 105676, 105692, 105708, 105724,
+ 105740, 105756, 105772, 105788, 105804, 105820, 105836, 105852, 105868,
+ 105884, 105900, 105916, 105932, 105948, 105964, 105980, 105996, 106012,
+ 106028, 106044, 106060, 106076, 106092, 106108, 106124, 106140, 106156,
+ 106172, 106188, 106204, 106220, 106236, 106252, 106268, 106284, 106300,
+ 106316, 106332, 106348, 106364, 106380, 106396, 106412, 106428, 106444,
+ 106460, 106476, 106492, 106508, 106524, 106540, 106556, 106572, 106588,
+ 106604, 106620, 106636, 106652, 106668, 106684, 106700, 106716, 106732,
+ 106748, 106764, 106780, 106796, 106812, 106828, 106844, 106860, 106876,
+ 106892, 106908, 106924, 106940, 106956, 106972, 106988, 107004, 107020,
+ 107036, 107052, 107068, 107084, 107100, 107116, 107132, 107148, 107164,
+ 107180, 107196, 107212, 107228, 107244, 107260, 107276, 107292, 107308,
+ 107324, 107340, 107356, 107372, 107388, 107404, 107420, 107436, 107452,
+ 107468, 107484, 107500, 107516, 107532, 107548, 107564, 107580, 107596,
+ 107612, 107628, 107644, 107660, 107676, 107692, 107708, 107724, 107740,
+ 107756, 107772, 107788, 107804, 107820, 107836, 107852, 107868, 107884,
+ 107900, 107916, 107932, 107948, 107964, 107980, 107996, 108012, 108028,
+ 108044, 108060, 108076, 108092, 108108, 108124, 108140, 108156, 108172,
+ 108188, 108204, 108220, 108236, 108252, 108268, 108284, 108300, 108316,
+ 108332, 108348, 108364, 108380, 108396, 108412, 108428, 108444, 108460,
+ 108476, 108492, 108508, 108524, 108540, 108556, 108572, 108588, 108604,
+ 108620, 108636, 108652, 108668, 108684, 108700, 108716, 108732, 108748,
+ 108764, 108780, 108796, 108812, 108828, 108844, 108860, 108876, 108892,
+ 108908, 108924, 108940, 108956, 108972, 108988, 109004, 109020, 109036,
+ 109052, 109068, 109084, 109100, 109116, 109132, 109148, 109164, 109180,
+ 109196, 109212, 109228, 109244, 109260, 109276, 109292, 109308, 109324,
+ 109340, 109356, 109372, 109388, 109404, 109420, 109436, 109452, 109468,
+ 109484, 109500, 109516, 109532, 109548, 109564, 109580, 109596, 109612,
+ 109628, 109644, 109660, 109676, 109692, 109708, 109724, 109740, 109756,
+ 109772, 109788, 109804, 109820, 109836, 109852, 109868, 109884, 109900,
+ 109916, 109932, 109948, 109964, 109980, 109996, 110012, 110028, 110044,
+ 110060, 110076, 110092, 110108, 110124, 110140, 110156, 110172, 110188,
+ 110204, 110220, 110236, 110252, 110268, 110278, 110287, 110292, 110300,
+ 75353, 110305, 110311, 110316, 110323, 110332, 110340, 110344, 4223,
+ 110350, 110357, 110363, 110367, 19911, 45306, 3200, 110372, 110376,
+ 110380, 110387, 110393, 110402, 110408, 110415, 110419, 110440, 110462,
+ 110478, 110495, 110514, 110523, 110533, 110541, 110548, 110555, 110561,
+ 32164, 110575, 110579, 110585, 110593, 110605, 110611, 110619, 110626,
+ 110631, 110636, 110640, 110648, 110655, 110659, 110665, 110671, 110676,
+ 3871, 50961, 110682, 110686, 110690, 110694, 110699, 110704, 110709,
+ 110715, 110721, 110727, 110734, 110740, 110747, 110753, 110759, 110764,
+ 110770, 110775, 110779, 102872, 110784, 102936, 50976, 110789, 110794,
+ 110802, 110806, 110811, 110818, 110827, 110833, 110842, 110846, 110853,
+ 110857, 110860, 110867, 110873, 110882, 110892, 110902, 110907, 110911,
+ 110918, 110926, 110935, 110939, 110947, 110953, 110958, 110963, 110969,
+ 110975, 110980, 110984, 31071, 110990, 110994, 110998, 111001, 111006,
+ 111014, 111024, 111030, 111035, 111045, 48136, 111053, 111065, 111071,
+ 111078, 111084, 111088, 111093, 111099, 111111, 111122, 111129, 111135,
+ 111142, 111149, 111161, 111168, 111174, 24986, 111178, 111186, 111192,
+ 111199, 111205, 111211, 111217, 111222, 111227, 111232, 111236, 111245,
+ 111253, 111264, 7709, 111269, 19347, 111275, 111279, 111283, 111287,
+ 111295, 111304, 111308, 111315, 111324, 111332, 111345, 111351, 103448,
+ 35520, 111356, 111358, 111363, 111368, 111373, 111378, 111383, 111388,
+ 111393, 111398, 111403, 111408, 111413, 111418, 111423, 111428, 111434,
+ 111439, 111444, 111449, 111454, 111459, 111464, 111469, 111474, 111480,
+ 111486, 111492, 111497, 111502, 111514, 111519, 1840, 54, 111524, 111529,
+ 38552, 111533, 38557, 38562, 38568, 38573, 111537, 38578, 26134, 111559,
+ 111563, 111567, 111572, 111576, 38582, 111580, 111588, 111595, 111601,
+ 111611, 38587, 111618, 111621, 111626, 111630, 111639, 10817, 111647,
+ 38592, 25978, 111650, 111654, 111662, 1315, 111667, 38603, 111670,
+ 111675, 30437, 30447, 41834, 111680, 111685, 111690, 111695, 111701,
+ 111706, 111715, 111720, 111729, 111737, 111744, 111750, 111755, 111760,
+ 111765, 111775, 111784, 111792, 111797, 111805, 111809, 111817, 111821,
+ 111828, 111835, 111843, 111850, 38407, 45041, 111856, 111862, 111867,
+ 111872, 14096, 11556, 111877, 111882, 111887, 111893, 111900, 111906,
+ 111915, 111920, 111928, 111938, 111945, 111955, 111961, 111966, 111972,
+ 111976, 21341, 111983, 42798, 111996, 112001, 112007, 112022, 36577,
+ 73759, 112035, 112039, 112048, 112057, 112064, 112070, 112078, 112084,
+ 112093, 112100, 45161, 112106, 112109, 112113, 112117, 112121, 11577,
+ 112127, 112134, 112140, 112148, 112153, 112157, 28485, 112163, 112166,
+ 112174, 112181, 112189, 112202, 112216, 112223, 112229, 112236, 112242,
+ 38617, 112246, 112253, 112261, 112269, 112275, 38622, 112283, 112289,
+ 112294, 112304, 112310, 112319, 36372, 41205, 112327, 112332, 112337,
+ 112341, 112346, 112350, 112358, 112363, 17439, 18213, 48158, 112367,
+ 112372, 38627, 17592, 112376, 112388, 112393, 112397, 112404, 112413,
+ 112417, 112425, 112431, 112436, 112444, 112452, 112460, 112468, 112476,
+ 112484, 112495, 112501, 8891, 112506, 112512, 112517, 112522, 112533,
+ 112542, 112554, 112569, 38915, 112575, 19466, 38631, 112579, 112586,
+ 112592, 112596, 28609, 112603, 112609, 112616, 47421, 112625, 112631,
+ 112640, 112646, 112651, 112659, 112665, 112670, 38641, 112675, 112684,
+ 112693, 111117, 112702, 112709, 112715, 112721, 112730, 112740, 112746,
+ 112754, 112761, 112765, 38646, 112768, 38652, 1354, 112773, 112781,
+ 112789, 112799, 112808, 112816, 112823, 112833, 38663, 112837, 112839,
+ 112843, 112848, 112852, 112856, 112862, 112867, 112871, 112882, 112887,
+ 112896, 112901, 3205, 112905, 112912, 112916, 112925, 112933, 112941,
+ 112948, 112953, 112958, 72289, 112962, 112965, 112971, 112979, 112985,
+ 112989, 112994, 113001, 113006, 113011, 113015, 113022, 113028, 113033,
+ 41236, 113037, 113040, 113045, 113049, 113054, 113061, 113066, 113070,
+ 46483, 113078, 30456, 30465, 113084, 113090, 113096, 113101, 113105,
+ 113108, 113118, 113127, 113132, 113138, 113145, 113151, 113155, 113163,
+ 113168, 41242, 83176, 113172, 113180, 113187, 113193, 113200, 113205,
+ 113212, 113217, 113221, 113226, 67506, 113232, 113238, 10093, 113243,
+ 113248, 113252, 113257, 113262, 113267, 113271, 113276, 113281, 113287,
+ 113292, 113297, 113303, 113309, 113314, 113318, 113323, 113328, 113333,
+ 113337, 28608, 113342, 113347, 113353, 113359, 113365, 113370, 113374,
+ 113379, 113384, 107224, 113389, 113394, 113399, 113404, 107288, 51231,
+ 113409, 38671, 113417, 113421, 113429, 113437, 113448, 113453, 113457,
+ 26607, 80621, 113462, 113468, 113473, 4534, 113483, 113490, 113495,
+ 113503, 113512, 113517, 113521, 113526, 113530, 113538, 113546, 113553,
+ 75615, 113559, 113567, 113574, 113585, 113591, 113597, 38681, 113600,
+ 113607, 113615, 113620, 113624, 32668, 70116, 113630, 113635, 113642,
+ 113647, 9982, 113651, 113659, 113666, 113673, 113682, 113689, 113695,
+ 113709, 113717, 6514, 113479, 113723, 113728, 113734, 113738, 113741,
+ 113749, 113756, 113761, 113774, 113781, 113787, 113791, 113799, 113804,
+ 113811, 113817, 113822, 70387, 113827, 113830, 113839, 113846, 107496,
+ 113852, 113855, 113863, 113869, 113878, 113888, 113898, 113907, 113918,
+ 113926, 113937, 113942, 113946, 113951, 113955, 41965, 113963, 25314,
+ 41974, 113968, 99015, 99031, 99047, 99063, 99079, 113973, 99111, 99127,
+ 99143, 99159, 99271, 99287, 113977, 99319, 99335, 113981, 113985, 113989,
+ 113993, 99575, 99607, 113997, 99639, 114001, 114005, 99783, 99799, 99815,
+ 99831, 114009, 99895, 99911, 114013, 100039, 100055, 100071, 100087,
+ 100103, 100119, 100135, 100151, 100167, 100183, 100295, 100311, 100327,
+ 100343, 100359, 100375, 100391, 100407, 100423, 100439, 114017, 102231,
+ 102343, 102407, 102423, 102439, 102455, 102471, 102487, 102599, 102615,
+ 102631, 114021, 102679, 114025, 102711, 102727, 102743, 114029, 114034,
+ 114039, 114044, 114049, 114054, 114059, 114063, 114067, 114072, 114077,
+ 114081, 114086, 114091, 114095, 114100, 114105, 114110, 114115, 114119,
+ 114124, 114129, 114133, 114138, 114142, 114146, 114150, 114154, 114159,
+ 114163, 114167, 114171, 114175, 114179, 114183, 114187, 114191, 114195,
+ 114200, 114205, 114210, 114215, 114220, 114225, 114230, 114235, 114240,
+ 114245, 114249, 114253, 114257, 114261, 114265, 114269, 114274, 114278,
+ 114283, 114287, 114292, 114297, 114301, 114305, 114310, 114314, 114318,
+ 114322, 114326, 114330, 114334, 114338, 114342, 114346, 114350, 114354,
+ 114358, 114362, 114366, 114371, 114376, 114380, 114384, 114388, 114392,
+ 114396, 114400, 114405, 114409, 114413, 114417, 114421, 114425, 114429,
+ 114434, 114438, 114443, 114447, 114451, 114455, 114459, 114463, 114467,
+ 114471, 114475, 114479, 114483, 114487, 114492, 114496, 114500, 114504,
+ 114508, 114512, 114516, 114520, 114524, 114528, 114532, 114536, 114541,
+ 114545, 114549, 114554, 114559, 114563, 114567, 114571, 114575, 114579,
+ 114583, 114587, 114591, 114596, 114600, 114605, 114609, 114614, 114618,
+ 114623, 114627, 114633, 114638, 114642, 114647, 114651, 114656, 114660,
+ 114665, 114669, 114674, 1429, 114678, 2947, 1694, 27772, 1602, 30392,
+ 114682, 2956, 114686, 1284, 114691, 1226, 114695, 114699, 2980, 114703,
+ 114711, 114718, 114725, 114739, 2984, 7816, 114748, 114756, 114763,
+ 114774, 114783, 114787, 114794, 114806, 114819, 114832, 114843, 114848,
+ 114855, 114867, 114871, 2988, 13750, 114881, 114886, 114895, 114905,
+ 114910, 2992, 114918, 114922, 114927, 114934, 114940, 114945, 114954,
+ 114962, 114974, 114984, 1231, 15184, 114997, 115001, 115007, 115021,
+ 115033, 115045, 115053, 115063, 115072, 115081, 115090, 115098, 115109,
+ 115117, 4542, 115127, 115138, 115147, 115153, 115168, 115175, 115181,
+ 115186, 42108, 115191, 3016, 15188, 115195, 115200, 115207, 9913, 115216,
+ 115222, 3021, 38073, 115231, 70006, 115238, 115242, 115248, 115259,
+ 115265, 115270, 115277, 115283, 115291, 115298, 115304, 115315, 115331,
+ 115341, 115350, 115361, 115370, 115377, 115383, 115393, 115401, 115407,
+ 115422, 115428, 115433, 115437, 115444, 115452, 115456, 115459, 115465,
+ 115472, 115478, 115486, 115495, 115503, 115509, 115518, 50546, 115532,
+ 115537, 115543, 17198, 115548, 115561, 115573, 115582, 115590, 115597,
+ 115601, 115605, 115608, 115615, 115622, 115630, 115638, 115647, 115655,
+ 17103, 115663, 115668, 115672, 115684, 115691, 115698, 115707, 936,
+ 115717, 115726, 115737, 3042, 115741, 115745, 115751, 115764, 115776,
+ 115786, 115795, 115807, 31225, 115818, 115826, 115835, 115846, 115857,
+ 115867, 115877, 115885, 115894, 115902, 13175, 115909, 115913, 115916,
+ 115921, 115926, 115930, 115936, 1236, 115943, 115947, 13838, 115951,
+ 115962, 115971, 115979, 115988, 115996, 116012, 116023, 116032, 116040,
+ 116052, 116063, 116079, 116089, 116110, 116124, 116137, 116145, 116152,
+ 7862, 116165, 116170, 116176, 6523, 116182, 116185, 116192, 116202, 8993,
+ 116209, 116214, 116219, 116226, 116231, 116239, 116248, 116256, 116261,
+ 116270, 116277, 11055, 11064, 116283, 116294, 116300, 116305, 116311,
+ 3058, 3063, 116317, 1025, 116323, 116330, 116337, 116350, 116360, 116365,
+ 2229, 87, 116373, 116380, 116385, 116393, 116403, 116412, 116418, 116427,
+ 116435, 116445, 116449, 116453, 116458, 116462, 116474, 3086, 116482,
+ 116490, 116495, 116506, 116517, 116529, 116540, 116550, 116559, 25362,
+ 116564, 116570, 116575, 116585, 116595, 116600, 33382, 116606, 116611,
+ 116620, 25374, 116624, 4651, 8, 116629, 116638, 116645, 116652, 116658,
+ 116663, 116667, 116673, 33406, 116678, 116683, 70678, 116688, 116693,
+ 116699, 116705, 116713, 116718, 116726, 116733, 116739, 116744, 46352,
+ 50440, 116750, 1765, 32, 116760, 116765, 116778, 116783, 116791, 116796,
+ 116802, 3112, 33461, 116807, 116815, 116822, 116827, 116832, 116841,
+ 4225, 4236, 71887, 116849, 116853, 1629, 1777, 116858, 116863, 116870,
+ 33814, 1781, 323, 116877, 116883, 116888, 3134, 116892, 116897, 116904,
+ 1785, 116909, 116915, 116920, 116932, 6760, 116942, 116949, 1792, 116955,
+ 116960, 116967, 116974, 116989, 116996, 117007, 117012, 117020, 2677,
+ 117024, 117036, 117041, 117045, 117051, 33260, 2234, 117055, 117066,
+ 117070, 117074, 117080, 117084, 117093, 117097, 117108, 117112, 2280,
+ 37890, 117116, 117126, 117134, 3225, 117140, 117149, 117157, 10454,
+ 117162, 117170, 117175, 117179, 117188, 117195, 117201, 3195, 17262,
+ 117205, 117218, 42811, 117236, 117241, 117249, 117257, 117267, 11364,
+ 15306, 117279, 117292, 117299, 117309, 117323, 117330, 117346, 117353,
+ 117359, 25412, 14519, 117366, 117373, 117383, 117392, 51230, 117404,
+ 117412, 51365, 117419, 117422, 117428, 117434, 117440, 117446, 117452,
+ 117459, 117466, 117472, 117478, 117484, 117490, 117496, 117502, 117508,
+ 117514, 117520, 117526, 117532, 117538, 117544, 117550, 117556, 117562,
+ 117568, 117574, 117580, 117586, 117592, 117598, 117604, 117610, 117616,
+ 117622, 117628, 117634, 117640, 117646, 117652, 117658, 117664, 117670,
+ 117676, 117682, 117688, 117694, 117700, 117706, 117712, 117718, 117724,
+ 117730, 117736, 117742, 117748, 117754, 117760, 117766, 117772, 117779,
+ 117785, 117792, 117799, 117805, 117812, 117819, 117825, 117831, 117837,
+ 117843, 117849, 117855, 117861, 117867, 117873, 117879, 117885, 117891,
+ 117897, 117903, 117909, 3209, 10427, 117915, 117925, 117931, 117939,
+ 117943, 114930, 3213, 117947, 111346, 25115, 14131, 4150, 117951, 3219,
+ 117955, 117965, 117971, 117977, 117983, 117989, 117995, 118001, 118007,
+ 118013, 118019, 118025, 118031, 118037, 118043, 118049, 118055, 118061,
+ 118067, 118073, 118079, 118085, 118091, 118097, 118103, 118109, 118115,
+ 118122, 118129, 118135, 118141, 118147, 118153, 118159, 118165, 1241,
+ 118171, 118176, 118181, 118186, 118191, 118196, 118201, 118206, 118211,
+ 118215, 118219, 118223, 118227, 118231, 118235, 118239, 118243, 118247,
+ 118253, 118259, 118265, 118271, 118275, 118279, 118283, 118287, 118291,
+ 118295, 118299, 118303, 118307, 118312, 118317, 118322, 118327, 118332,
+ 118337, 118342, 118347, 118352, 118357, 118362, 118367, 118372, 118377,
+ 118382, 118387, 118392, 118397, 118402, 118407, 118412, 118417, 118422,
+ 118427, 118432, 118437, 118442, 118447, 118452, 118457, 118462, 118467,
+ 118472, 118477, 118482, 118487, 118492, 118497, 118502, 118507, 118512,
+ 118517, 118522, 118527, 118532, 118537, 118542, 118547, 118552, 118557,
+ 118562, 118567, 118572, 118577, 118582, 118587, 118592, 118597, 118602,
+ 118607, 118612, 118617, 118622, 118627, 118632, 118637, 118642, 118647,
+ 118652, 118657, 118662, 118667, 118672, 118677, 118682, 118687, 118692,
+ 118697, 118702, 118707, 118712, 118717, 118722, 118727, 118732, 118737,
+ 118742, 118747, 118752, 118757, 118762, 118767, 118772, 118777, 118782,
+ 118787, 118792, 118797, 118802, 118807, 118812, 118817, 118822, 118827,
+ 118832, 118837, 118842, 118847, 118852, 118857, 118862, 118867, 118872,
+ 118877, 118882, 118887, 118892, 118897, 118902, 118907, 118912, 118917,
+ 118922, 118927, 118932, 118937, 118942, 118947, 118952, 118957, 118962,
+ 118967, 118972, 118977, 118982, 118987, 118992, 118997, 119002, 119007,
+ 119012, 119017, 119022, 119027, 119032, 119037, 119042, 119047, 119052,
+ 119057, 119062, 119067, 119072, 119077, 119082, 119087, 119092, 119097,
+ 119102, 119107, 119112, 119117, 119122, 119127, 119132, 119137, 119142,
+ 119147, 119152, 119157, 119162, 119167, 119172, 119177, 119182, 119187,
+ 119192, 119197, 119203, 119208, 119213, 119218, 119223, 119228, 119233,
+ 119238, 119244, 119249, 119254, 119259, 119264, 119269, 119274, 119279,
+ 119284, 119289, 119294, 119299, 119304, 119309, 119314, 119319, 119324,
+ 119329, 119334, 119339, 119344, 119349, 119354, 119359, 119364, 119369,
+ 119374, 119379, 119384, 119389, 119394, 119399, 119404, 119413, 119418,
+ 119427, 119432, 119441, 119446, 119455, 119460, 119469, 119474, 119483,
+ 119488, 119497, 119502, 119511, 119516, 119521, 119530, 119534, 119543,
+ 119548, 119557, 119562, 119571, 119576, 119585, 119590, 119599, 119604,
+ 119613, 119618, 119627, 119632, 119641, 119646, 119655, 119660, 119669,
+ 119674, 119679, 119684, 119689, 119694, 119699, 119704, 119708, 119713,
+ 119718, 119723, 119728, 119733, 119738, 119744, 119749, 119754, 119759,
+ 119765, 119769, 119774, 119780, 119785, 119790, 119795, 119800, 119805,
+ 119810, 119815, 119820, 119825, 119830, 119836, 119841, 119846, 119851,
+ 119857, 119862, 119867, 119872, 119877, 119883, 119888, 119893, 119898,
+ 119903, 119908, 119914, 119919, 119924, 119929, 119934, 119939, 119944,
+ 119949, 119954, 119959, 119964, 119969, 119974, 119979, 119984, 119989,
+ 119994, 119999, 120004, 120009, 120014, 120019, 120024, 120029, 120035,
+ 120041, 120047, 120052, 120057, 120062, 120067, 120073, 120079, 120085,
+ 120090, 120095, 120100, 120106, 120111, 120116, 120121, 120126, 120131,
+ 120136, 120141, 120146, 120151, 120156, 120161, 120166, 120171, 120176,
+ 120181, 120186, 120192, 120198, 120204, 120209, 120214, 120219, 120224,
+ 120230, 120236, 120242, 120247, 120252, 120257, 120262, 120267, 120272,
+ 120277, 120282, 120287, 18854, 120292, 120298, 120303, 120308, 120313,
+ 120318, 120323, 120329, 120334, 120339, 120344, 120349, 120354, 120360,
+ 120365, 120370, 120375, 120380, 120385, 120390, 120395, 120400, 120405,
+ 120410, 120415, 120420, 120425, 120430, 120435, 120440, 120445, 120450,
+ 120455, 120460, 120465, 120470, 120476, 120481, 120486, 120491, 120496,
+ 120501, 120506, 120511, 120516, 120521, 120526, 120531, 120536, 120541,
+ 120546, 120551, 120556, 120561, 120566, 120571, 120576, 120581, 120586,
+ 120591, 120596, 120601, 120606, 120611, 120616, 120621, 120626, 120631,
+ 120636, 120641, 120646, 120651, 120656, 120661, 120666, 120671, 120676,
+ 120682, 120687, 120692, 120697, 120702, 120707, 120712, 120717, 120722,
+ 120727, 120732, 120737, 120743, 120748, 120754, 120759, 120764, 120769,
+ 120774, 120779, 120784, 120790, 120795, 120800, 120806, 120811, 120816,
+ 120821, 120826, 120831, 120837, 120843, 120848, 120853, 14153, 120858,
+ 120863, 120868, 120873, 120878, 120883, 120888, 120893, 120898, 120903,
+ 120908, 120913, 120918, 120923, 120928, 120933, 120938, 120943, 120948,
+ 120953, 120958, 120963, 120968, 120973, 120978, 120983, 120988, 120993,
+ 120998, 121003, 121008, 121013, 121018, 121023, 121028, 121033, 121038,
+ 121043, 121048, 121053, 121058, 121063, 121068, 121073, 121078, 121083,
+ 121088, 121093, 121098, 121103, 121108, 121113, 121118, 121123, 121128,
+ 121133, 121138, 121143, 121148, 121153, 121158, 121163, 121168, 121173,
+ 121178, 121184, 121189, 121194, 121199, 121204, 121210, 121215, 121220,
+ 121225, 121230, 121235, 121240, 121246, 121251, 121256, 121261, 121266,
+ 121271, 121277, 121282, 121287, 121292, 121297, 121302, 121308, 121313,
+ 121318, 121323, 121328, 121333, 121339, 121345, 121350, 121355, 121360,
+ 121366, 121372, 121378, 121383, 121388, 121394, 121400, 121405, 121411,
+ 121417, 121423, 121428, 121433, 121439, 121444, 121450, 121455, 121461,
+ 121470, 121475, 121480, 121486, 121491, 121497, 121502, 121507, 121512,
+ 121517, 121522, 121527, 121532, 121537, 121542, 121547, 121552, 121557,
+ 121562, 121567, 121572, 121577, 121582, 121587, 121592, 121597, 121602,
+ 121607, 121612, 121617, 121622, 121627, 121632, 121637, 121642, 121647,
+ 121652, 121658, 121664, 121670, 121675, 121680, 121685, 121690, 121695,
+ 121700, 121705, 121710, 121715, 121720, 121725, 121730, 121735, 121740,
+ 121745, 121750, 121755, 121760, 121765, 121770, 121776, 121782, 121787,
+ 121793, 121798, 121803, 121809, 121814, 121820, 121825, 121831, 121836,
+ 121842, 121847, 121853, 121858, 121863, 121868, 121873, 121878, 121883,
+ 121888, 117966, 117972, 117978, 117984, 121894, 117990, 117996, 121900,
+ 118002, 118008, 118014, 118020, 118026, 118032, 118038, 118044, 118050,
+ 121906, 118056, 118062, 118068, 121912, 118074, 118080, 118086, 118092,
+ 121918, 118098, 118104, 118110, 118130, 121924, 121930, 118136, 121936,
+ 118142, 118148, 118154, 118160, 118166, 121942, 3236, 3241, 121947, 3256,
+ 3261, 3266, 121952, 121955, 121961, 121967, 121974, 121979, 121984, 2285,
};
/* code->name phrasebook */
-#define phrasebook_shift 8
-#define phrasebook_short 191
-static const unsigned char phrasebook[] = {
- 0, 202, 160, 233, 204, 77, 208, 142, 77, 31, 57, 236, 127, 57, 210, 133,
- 57, 250, 229, 250, 147, 46, 210, 230, 51, 210, 230, 250, 37, 102, 57,
- 242, 38, 228, 110, 232, 71, 201, 238, 202, 189, 17, 192, 76, 17, 101, 17,
- 104, 17, 133, 17, 134, 17, 151, 17, 170, 17, 179, 17, 174, 17, 182, 242,
- 47, 204, 180, 219, 240, 57, 234, 30, 57, 230, 204, 57, 208, 159, 77, 242,
- 36, 250, 26, 8, 6, 1, 64, 8, 6, 1, 249, 226, 8, 6, 1, 247, 52, 8, 6, 1,
- 238, 95, 8, 6, 1, 71, 8, 6, 1, 233, 163, 8, 6, 1, 232, 44, 8, 6, 1, 230,
- 124, 8, 6, 1, 70, 8, 6, 1, 223, 65, 8, 6, 1, 222, 184, 8, 6, 1, 165, 8,
- 6, 1, 218, 236, 8, 6, 1, 215, 151, 8, 6, 1, 74, 8, 6, 1, 211, 93, 8, 6,
- 1, 208, 247, 8, 6, 1, 150, 8, 6, 1, 206, 158, 8, 6, 1, 200, 228, 8, 6, 1,
- 68, 8, 6, 1, 196, 236, 8, 6, 1, 194, 202, 8, 6, 1, 193, 223, 8, 6, 1,
- 193, 148, 8, 6, 1, 192, 155, 46, 50, 186, 207, 169, 202, 189, 51, 50,
- 186, 242, 122, 251, 143, 132, 219, 175, 230, 211, 251, 143, 8, 2, 1, 64,
- 8, 2, 1, 249, 226, 8, 2, 1, 247, 52, 8, 2, 1, 238, 95, 8, 2, 1, 71, 8, 2,
- 1, 233, 163, 8, 2, 1, 232, 44, 8, 2, 1, 230, 124, 8, 2, 1, 70, 8, 2, 1,
- 223, 65, 8, 2, 1, 222, 184, 8, 2, 1, 165, 8, 2, 1, 218, 236, 8, 2, 1,
- 215, 151, 8, 2, 1, 74, 8, 2, 1, 211, 93, 8, 2, 1, 208, 247, 8, 2, 1, 150,
- 8, 2, 1, 206, 158, 8, 2, 1, 200, 228, 8, 2, 1, 68, 8, 2, 1, 196, 236, 8,
- 2, 1, 194, 202, 8, 2, 1, 193, 223, 8, 2, 1, 193, 148, 8, 2, 1, 192, 155,
- 46, 238, 138, 186, 84, 219, 175, 51, 238, 138, 186, 199, 90, 213, 136,
- 202, 160, 223, 121, 233, 204, 77, 246, 140, 57, 209, 143, 57, 238, 137,
- 57, 193, 60, 57, 247, 136, 161, 205, 209, 57, 237, 14, 238, 227, 57, 233,
- 28, 211, 158, 223, 172, 220, 23, 55, 250, 208, 208, 142, 77, 213, 111,
- 57, 202, 198, 228, 111, 207, 228, 57, 217, 214, 237, 95, 57, 209, 205,
- 57, 201, 107, 104, 201, 107, 133, 251, 130, 251, 143, 216, 166, 57, 210,
- 9, 57, 85, 236, 114, 246, 151, 201, 107, 101, 217, 111, 211, 158, 223,
- 172, 207, 96, 55, 250, 208, 208, 142, 77, 194, 220, 232, 109, 90, 208,
- 167, 194, 220, 232, 109, 90, 230, 78, 194, 220, 232, 109, 112, 208, 165,
- 223, 121, 208, 159, 77, 8, 6, 1, 41, 4, 230, 210, 8, 6, 1, 41, 4, 251,
- 129, 8, 6, 1, 41, 4, 242, 121, 8, 6, 1, 41, 4, 199, 90, 8, 6, 1, 41, 4,
- 237, 14, 8, 6, 1, 41, 4, 207, 82, 58, 8, 6, 1, 251, 108, 8, 6, 1, 247,
- 53, 4, 246, 151, 8, 6, 1, 234, 253, 4, 230, 210, 8, 6, 1, 234, 253, 4,
- 251, 129, 8, 6, 1, 234, 253, 4, 242, 121, 8, 6, 1, 234, 253, 4, 237, 14,
- 8, 6, 1, 228, 97, 4, 230, 210, 8, 6, 1, 228, 97, 4, 251, 129, 8, 6, 1,
- 228, 97, 4, 242, 121, 8, 6, 1, 228, 97, 4, 237, 14, 8, 6, 1, 233, 235, 8,
- 6, 1, 215, 152, 4, 199, 90, 8, 6, 1, 185, 4, 230, 210, 8, 6, 1, 185, 4,
- 251, 129, 8, 6, 1, 185, 4, 242, 121, 8, 6, 1, 185, 4, 199, 90, 8, 6, 1,
- 185, 4, 237, 14, 215, 214, 57, 8, 6, 1, 185, 4, 111, 8, 6, 1, 124, 4,
- 230, 210, 8, 6, 1, 124, 4, 251, 129, 8, 6, 1, 124, 4, 242, 121, 8, 6, 1,
- 124, 4, 237, 14, 8, 6, 1, 193, 149, 4, 251, 129, 8, 6, 1, 199, 168, 8, 2,
- 1, 204, 26, 206, 158, 8, 2, 1, 41, 4, 230, 210, 8, 2, 1, 41, 4, 251, 129,
- 8, 2, 1, 41, 4, 242, 121, 8, 2, 1, 41, 4, 199, 90, 8, 2, 1, 41, 4, 237,
- 14, 8, 2, 1, 41, 4, 207, 82, 58, 8, 2, 1, 251, 108, 8, 2, 1, 247, 53, 4,
- 246, 151, 8, 2, 1, 234, 253, 4, 230, 210, 8, 2, 1, 234, 253, 4, 251, 129,
- 8, 2, 1, 234, 253, 4, 242, 121, 8, 2, 1, 234, 253, 4, 237, 14, 8, 2, 1,
- 228, 97, 4, 230, 210, 8, 2, 1, 228, 97, 4, 251, 129, 8, 2, 1, 228, 97, 4,
- 242, 121, 8, 2, 1, 228, 97, 4, 237, 14, 8, 2, 1, 233, 235, 8, 2, 1, 215,
- 152, 4, 199, 90, 8, 2, 1, 185, 4, 230, 210, 8, 2, 1, 185, 4, 251, 129, 8,
- 2, 1, 185, 4, 242, 121, 8, 2, 1, 185, 4, 199, 90, 8, 2, 1, 185, 4, 237,
- 14, 236, 172, 57, 8, 2, 1, 185, 4, 111, 8, 2, 1, 124, 4, 230, 210, 8, 2,
- 1, 124, 4, 251, 129, 8, 2, 1, 124, 4, 242, 121, 8, 2, 1, 124, 4, 237, 14,
- 8, 2, 1, 193, 149, 4, 251, 129, 8, 2, 1, 199, 168, 8, 2, 1, 193, 149, 4,
- 237, 14, 8, 6, 1, 41, 4, 217, 214, 8, 2, 1, 41, 4, 217, 214, 8, 6, 1, 41,
- 4, 247, 150, 8, 2, 1, 41, 4, 247, 150, 8, 6, 1, 41, 4, 211, 243, 8, 2, 1,
- 41, 4, 211, 243, 8, 6, 1, 247, 53, 4, 251, 129, 8, 2, 1, 247, 53, 4, 251,
- 129, 8, 6, 1, 247, 53, 4, 242, 121, 8, 2, 1, 247, 53, 4, 242, 121, 8, 6,
- 1, 247, 53, 4, 78, 58, 8, 2, 1, 247, 53, 4, 78, 58, 8, 6, 1, 247, 53, 4,
- 246, 207, 8, 2, 1, 247, 53, 4, 246, 207, 8, 6, 1, 238, 96, 4, 246, 207,
- 8, 2, 1, 238, 96, 4, 246, 207, 8, 6, 1, 238, 96, 4, 111, 8, 2, 1, 238,
- 96, 4, 111, 8, 6, 1, 234, 253, 4, 217, 214, 8, 2, 1, 234, 253, 4, 217,
- 214, 8, 6, 1, 234, 253, 4, 247, 150, 8, 2, 1, 234, 253, 4, 247, 150, 8,
- 6, 1, 234, 253, 4, 78, 58, 8, 2, 1, 234, 253, 4, 78, 58, 8, 6, 1, 234,
- 253, 4, 211, 243, 8, 2, 1, 234, 253, 4, 211, 243, 8, 6, 1, 234, 253, 4,
- 246, 207, 8, 2, 1, 234, 253, 4, 246, 207, 8, 6, 1, 232, 45, 4, 242, 121,
- 8, 2, 1, 232, 45, 4, 242, 121, 8, 6, 1, 232, 45, 4, 247, 150, 8, 2, 1,
- 232, 45, 4, 247, 150, 8, 6, 1, 232, 45, 4, 78, 58, 8, 2, 1, 232, 45, 4,
- 78, 58, 8, 6, 1, 232, 45, 4, 246, 151, 8, 2, 1, 232, 45, 4, 246, 151, 8,
- 6, 1, 230, 125, 4, 242, 121, 8, 2, 1, 230, 125, 4, 242, 121, 8, 6, 1,
- 230, 125, 4, 111, 8, 2, 1, 230, 125, 4, 111, 8, 6, 1, 228, 97, 4, 199,
- 90, 8, 2, 1, 228, 97, 4, 199, 90, 8, 6, 1, 228, 97, 4, 217, 214, 8, 2, 1,
- 228, 97, 4, 217, 214, 8, 6, 1, 228, 97, 4, 247, 150, 8, 2, 1, 228, 97, 4,
- 247, 150, 8, 6, 1, 228, 97, 4, 211, 243, 8, 2, 1, 228, 97, 4, 211, 243,
- 8, 6, 1, 228, 97, 4, 78, 58, 8, 2, 1, 236, 113, 70, 8, 6, 34, 223, 222,
- 8, 2, 34, 223, 222, 8, 6, 1, 223, 66, 4, 242, 121, 8, 2, 1, 223, 66, 4,
- 242, 121, 8, 6, 1, 222, 185, 4, 246, 151, 8, 2, 1, 222, 185, 4, 246, 151,
- 8, 2, 1, 221, 56, 8, 6, 1, 220, 202, 4, 251, 129, 8, 2, 1, 220, 202, 4,
- 251, 129, 8, 6, 1, 220, 202, 4, 246, 151, 8, 2, 1, 220, 202, 4, 246, 151,
- 8, 6, 1, 220, 202, 4, 246, 207, 8, 2, 1, 220, 202, 4, 246, 207, 8, 6, 1,
- 220, 202, 4, 85, 236, 114, 8, 2, 1, 220, 202, 4, 85, 236, 114, 8, 6, 1,
- 220, 202, 4, 111, 8, 2, 1, 220, 202, 4, 111, 8, 6, 1, 215, 152, 4, 251,
- 129, 8, 2, 1, 215, 152, 4, 251, 129, 8, 6, 1, 215, 152, 4, 246, 151, 8,
- 2, 1, 215, 152, 4, 246, 151, 8, 6, 1, 215, 152, 4, 246, 207, 8, 2, 1,
- 215, 152, 4, 246, 207, 8, 2, 1, 215, 152, 209, 117, 247, 64, 250, 147, 8,
- 6, 1, 234, 73, 8, 2, 1, 234, 73, 8, 6, 1, 185, 4, 217, 214, 8, 2, 1, 185,
- 4, 217, 214, 8, 6, 1, 185, 4, 247, 150, 8, 2, 1, 185, 4, 247, 150, 8, 6,
- 1, 185, 4, 55, 251, 129, 8, 2, 1, 185, 4, 55, 251, 129, 8, 6, 34, 212, 0,
- 8, 2, 34, 212, 0, 8, 6, 1, 208, 112, 4, 251, 129, 8, 2, 1, 208, 112, 4,
- 251, 129, 8, 6, 1, 208, 112, 4, 246, 151, 8, 2, 1, 208, 112, 4, 246, 151,
- 8, 6, 1, 208, 112, 4, 246, 207, 8, 2, 1, 208, 112, 4, 246, 207, 8, 6, 1,
- 206, 159, 4, 251, 129, 8, 2, 1, 206, 159, 4, 251, 129, 8, 6, 1, 206, 159,
- 4, 242, 121, 8, 2, 1, 206, 159, 4, 242, 121, 8, 6, 1, 206, 159, 4, 246,
- 151, 8, 2, 1, 206, 159, 4, 246, 151, 8, 6, 1, 206, 159, 4, 246, 207, 8,
- 2, 1, 206, 159, 4, 246, 207, 8, 6, 1, 200, 229, 4, 246, 151, 8, 2, 1,
- 200, 229, 4, 246, 151, 8, 6, 1, 200, 229, 4, 246, 207, 8, 2, 1, 200, 229,
- 4, 246, 207, 8, 6, 1, 200, 229, 4, 111, 8, 2, 1, 200, 229, 4, 111, 8, 6,
- 1, 124, 4, 199, 90, 8, 2, 1, 124, 4, 199, 90, 8, 6, 1, 124, 4, 217, 214,
- 8, 2, 1, 124, 4, 217, 214, 8, 6, 1, 124, 4, 247, 150, 8, 2, 1, 124, 4,
- 247, 150, 8, 6, 1, 124, 4, 207, 82, 58, 8, 2, 1, 124, 4, 207, 82, 58, 8,
- 6, 1, 124, 4, 55, 251, 129, 8, 2, 1, 124, 4, 55, 251, 129, 8, 6, 1, 124,
- 4, 211, 243, 8, 2, 1, 124, 4, 211, 243, 8, 6, 1, 194, 203, 4, 242, 121,
- 8, 2, 1, 194, 203, 4, 242, 121, 8, 6, 1, 193, 149, 4, 242, 121, 8, 2, 1,
- 193, 149, 4, 242, 121, 8, 6, 1, 193, 149, 4, 237, 14, 8, 6, 1, 192, 156,
- 4, 251, 129, 8, 2, 1, 192, 156, 4, 251, 129, 8, 6, 1, 192, 156, 4, 78,
- 58, 8, 2, 1, 192, 156, 4, 78, 58, 8, 6, 1, 192, 156, 4, 246, 207, 8, 2,
- 1, 192, 156, 4, 246, 207, 8, 2, 1, 184, 206, 158, 8, 2, 1, 76, 4, 111, 8,
- 6, 1, 76, 4, 128, 8, 6, 1, 76, 4, 198, 246, 8, 2, 1, 76, 4, 198, 246, 8,
- 6, 1, 158, 170, 8, 2, 1, 158, 170, 8, 6, 1, 211, 184, 74, 8, 6, 1, 247,
- 53, 4, 128, 8, 2, 1, 247, 53, 4, 128, 8, 6, 1, 251, 83, 238, 95, 8, 6, 1,
- 238, 96, 4, 128, 8, 6, 1, 238, 96, 4, 198, 246, 8, 2, 1, 238, 96, 4, 198,
- 246, 8, 2, 1, 163, 237, 76, 8, 6, 1, 207, 168, 71, 8, 6, 1, 205, 240, 8,
- 6, 1, 211, 184, 71, 8, 6, 1, 233, 164, 4, 128, 8, 2, 1, 233, 164, 4, 128,
- 8, 6, 1, 232, 45, 4, 128, 8, 6, 1, 231, 204, 8, 2, 1, 228, 148, 8, 6, 1,
- 223, 111, 8, 6, 1, 228, 97, 4, 111, 8, 6, 1, 222, 185, 4, 128, 8, 2, 1,
- 222, 185, 4, 128, 8, 2, 1, 220, 202, 4, 161, 8, 2, 1, 220, 92, 4, 111, 8,
- 6, 1, 163, 218, 236, 8, 6, 1, 215, 152, 4, 46, 128, 8, 2, 1, 215, 152, 4,
- 184, 51, 220, 16, 8, 6, 1, 185, 4, 85, 199, 90, 8, 6, 1, 185, 4, 228,
- 208, 8, 2, 1, 185, 4, 228, 208, 8, 6, 1, 211, 238, 8, 2, 1, 211, 238, 8,
- 6, 1, 211, 94, 4, 128, 8, 2, 1, 211, 94, 4, 128, 8, 1, 192, 217, 8, 6, 1,
- 158, 104, 8, 2, 1, 158, 104, 8, 6, 1, 233, 255, 8, 1, 207, 168, 234, 0,
- 219, 69, 8, 2, 1, 200, 229, 4, 211, 49, 128, 8, 6, 1, 200, 229, 4, 128,
- 8, 2, 1, 200, 229, 4, 128, 8, 6, 1, 200, 229, 4, 207, 174, 128, 8, 6, 1,
- 124, 4, 228, 208, 8, 2, 1, 124, 4, 228, 208, 8, 6, 1, 197, 34, 8, 6, 1,
- 196, 237, 4, 128, 8, 6, 1, 193, 149, 4, 128, 8, 2, 1, 193, 149, 4, 128,
- 8, 6, 1, 192, 156, 4, 111, 8, 2, 1, 192, 156, 4, 111, 8, 6, 1, 233, 166,
- 8, 6, 1, 233, 167, 207, 167, 8, 2, 1, 233, 167, 207, 167, 8, 2, 1, 233,
- 167, 4, 200, 147, 8, 1, 103, 4, 111, 8, 6, 1, 158, 151, 8, 2, 1, 158,
- 151, 8, 1, 223, 121, 231, 6, 201, 239, 4, 111, 8, 1, 193, 226, 8, 1, 237,
- 69, 242, 96, 8, 1, 220, 63, 242, 96, 8, 1, 250, 242, 242, 96, 8, 1, 207,
- 174, 242, 96, 8, 6, 1, 235, 19, 4, 246, 207, 8, 6, 1, 238, 96, 4, 2, 1,
- 192, 156, 4, 246, 207, 8, 2, 1, 235, 19, 4, 246, 207, 8, 6, 1, 219, 141,
- 8, 6, 1, 220, 202, 4, 2, 1, 223, 65, 8, 2, 1, 219, 141, 8, 6, 1, 214, 1,
- 8, 6, 1, 215, 152, 4, 2, 1, 223, 65, 8, 2, 1, 214, 1, 8, 6, 1, 41, 4,
- 246, 207, 8, 2, 1, 41, 4, 246, 207, 8, 6, 1, 228, 97, 4, 246, 207, 8, 2,
- 1, 228, 97, 4, 246, 207, 8, 6, 1, 185, 4, 246, 207, 8, 2, 1, 185, 4, 246,
- 207, 8, 6, 1, 124, 4, 246, 207, 8, 2, 1, 124, 4, 246, 207, 8, 6, 1, 124,
- 4, 237, 15, 26, 217, 214, 8, 2, 1, 124, 4, 237, 15, 26, 217, 214, 8, 6,
- 1, 124, 4, 237, 15, 26, 251, 129, 8, 2, 1, 124, 4, 237, 15, 26, 251, 129,
- 8, 6, 1, 124, 4, 237, 15, 26, 246, 207, 8, 2, 1, 124, 4, 237, 15, 26,
- 246, 207, 8, 6, 1, 124, 4, 237, 15, 26, 230, 210, 8, 2, 1, 124, 4, 237,
- 15, 26, 230, 210, 8, 2, 1, 163, 71, 8, 6, 1, 41, 4, 237, 15, 26, 217,
- 214, 8, 2, 1, 41, 4, 237, 15, 26, 217, 214, 8, 6, 1, 41, 4, 78, 95, 26,
- 217, 214, 8, 2, 1, 41, 4, 78, 95, 26, 217, 214, 8, 6, 1, 251, 109, 4,
- 217, 214, 8, 2, 1, 251, 109, 4, 217, 214, 8, 6, 1, 232, 45, 4, 111, 8, 2,
- 1, 232, 45, 4, 111, 8, 6, 1, 232, 45, 4, 246, 207, 8, 2, 1, 232, 45, 4,
- 246, 207, 8, 6, 1, 222, 185, 4, 246, 207, 8, 2, 1, 222, 185, 4, 246, 207,
- 8, 6, 1, 185, 4, 211, 243, 8, 2, 1, 185, 4, 211, 243, 8, 6, 1, 185, 4,
- 211, 244, 26, 217, 214, 8, 2, 1, 185, 4, 211, 244, 26, 217, 214, 8, 6, 1,
- 233, 167, 4, 246, 207, 8, 2, 1, 233, 167, 4, 246, 207, 8, 2, 1, 223, 66,
- 4, 246, 207, 8, 6, 1, 235, 18, 8, 6, 1, 238, 96, 4, 2, 1, 192, 155, 8, 2,
- 1, 235, 18, 8, 6, 1, 232, 45, 4, 251, 129, 8, 2, 1, 232, 45, 4, 251, 129,
- 8, 6, 1, 228, 145, 8, 6, 1, 193, 226, 8, 6, 1, 215, 152, 4, 230, 210, 8,
- 2, 1, 215, 152, 4, 230, 210, 8, 6, 1, 41, 4, 207, 82, 95, 26, 251, 129,
- 8, 2, 1, 41, 4, 207, 82, 95, 26, 251, 129, 8, 6, 1, 251, 109, 4, 251,
- 129, 8, 2, 1, 251, 109, 4, 251, 129, 8, 6, 1, 185, 4, 201, 208, 26, 251,
- 129, 8, 2, 1, 185, 4, 201, 208, 26, 251, 129, 8, 6, 1, 41, 4, 55, 230,
- 210, 8, 2, 1, 41, 4, 55, 230, 210, 8, 6, 1, 41, 4, 223, 121, 247, 150, 8,
- 2, 1, 41, 4, 223, 121, 247, 150, 8, 6, 1, 234, 253, 4, 55, 230, 210, 8,
- 2, 1, 234, 253, 4, 55, 230, 210, 8, 6, 1, 234, 253, 4, 223, 121, 247,
- 150, 8, 2, 1, 234, 253, 4, 223, 121, 247, 150, 8, 6, 1, 228, 97, 4, 55,
- 230, 210, 8, 2, 1, 228, 97, 4, 55, 230, 210, 8, 6, 1, 228, 97, 4, 223,
- 121, 247, 150, 8, 2, 1, 228, 97, 4, 223, 121, 247, 150, 8, 6, 1, 185, 4,
- 55, 230, 210, 8, 2, 1, 185, 4, 55, 230, 210, 8, 6, 1, 185, 4, 223, 121,
- 247, 150, 8, 2, 1, 185, 4, 223, 121, 247, 150, 8, 6, 1, 208, 112, 4, 55,
- 230, 210, 8, 2, 1, 208, 112, 4, 55, 230, 210, 8, 6, 1, 208, 112, 4, 223,
- 121, 247, 150, 8, 2, 1, 208, 112, 4, 223, 121, 247, 150, 8, 6, 1, 124, 4,
- 55, 230, 210, 8, 2, 1, 124, 4, 55, 230, 210, 8, 6, 1, 124, 4, 223, 121,
- 247, 150, 8, 2, 1, 124, 4, 223, 121, 247, 150, 8, 6, 1, 206, 159, 4, 242,
- 39, 63, 8, 2, 1, 206, 159, 4, 242, 39, 63, 8, 6, 1, 200, 229, 4, 242, 39,
- 63, 8, 2, 1, 200, 229, 4, 242, 39, 63, 8, 6, 1, 192, 237, 8, 2, 1, 192,
- 237, 8, 6, 1, 230, 125, 4, 246, 207, 8, 2, 1, 230, 125, 4, 246, 207, 8,
- 6, 1, 215, 152, 4, 184, 51, 220, 16, 8, 2, 1, 238, 96, 4, 238, 142, 8, 6,
- 1, 211, 130, 8, 2, 1, 211, 130, 8, 6, 1, 192, 156, 4, 128, 8, 2, 1, 192,
- 156, 4, 128, 8, 6, 1, 41, 4, 78, 58, 8, 2, 1, 41, 4, 78, 58, 8, 6, 1,
- 234, 253, 4, 246, 151, 8, 2, 1, 234, 253, 4, 246, 151, 8, 6, 1, 185, 4,
- 237, 15, 26, 217, 214, 8, 2, 1, 185, 4, 237, 15, 26, 217, 214, 8, 6, 1,
- 185, 4, 199, 91, 26, 217, 214, 8, 2, 1, 185, 4, 199, 91, 26, 217, 214, 8,
- 6, 1, 185, 4, 78, 58, 8, 2, 1, 185, 4, 78, 58, 8, 6, 1, 185, 4, 78, 95,
- 26, 217, 214, 8, 2, 1, 185, 4, 78, 95, 26, 217, 214, 8, 6, 1, 193, 149,
- 4, 217, 214, 8, 2, 1, 193, 149, 4, 217, 214, 8, 2, 1, 220, 202, 4, 238,
- 142, 8, 2, 1, 215, 152, 4, 238, 142, 8, 2, 1, 200, 229, 4, 238, 142, 8,
- 2, 1, 236, 113, 223, 65, 8, 2, 1, 237, 171, 236, 230, 8, 2, 1, 208, 178,
- 236, 230, 8, 6, 1, 41, 4, 111, 8, 6, 1, 247, 53, 4, 111, 8, 2, 1, 247,
- 53, 4, 111, 8, 6, 1, 220, 202, 4, 161, 8, 6, 1, 200, 229, 4, 237, 11,
- 111, 8, 2, 1, 206, 159, 4, 201, 75, 200, 147, 8, 2, 1, 192, 156, 4, 201,
- 75, 200, 147, 8, 6, 1, 231, 6, 201, 238, 8, 2, 1, 231, 6, 201, 238, 8, 6,
- 1, 76, 4, 111, 8, 6, 1, 124, 161, 8, 6, 1, 163, 196, 236, 8, 6, 1, 234,
- 253, 4, 111, 8, 2, 1, 234, 253, 4, 111, 8, 6, 1, 223, 66, 4, 111, 8, 2,
- 1, 223, 66, 4, 111, 8, 6, 1, 2, 208, 248, 4, 229, 15, 200, 147, 8, 2, 1,
- 208, 248, 4, 229, 15, 200, 147, 8, 6, 1, 208, 112, 4, 111, 8, 2, 1, 208,
- 112, 4, 111, 8, 6, 1, 193, 149, 4, 111, 8, 2, 1, 193, 149, 4, 111, 8, 2,
- 1, 163, 64, 8, 2, 1, 250, 252, 8, 2, 1, 163, 250, 252, 8, 2, 1, 76, 4,
- 128, 8, 2, 1, 211, 184, 74, 8, 2, 1, 247, 53, 4, 238, 142, 8, 2, 1, 238,
- 96, 4, 200, 147, 8, 2, 1, 238, 96, 4, 128, 8, 2, 1, 207, 168, 71, 8, 2,
- 1, 205, 240, 8, 2, 1, 205, 241, 4, 128, 8, 2, 1, 211, 184, 71, 8, 2, 1,
- 207, 168, 211, 184, 71, 8, 2, 1, 207, 168, 211, 184, 234, 253, 4, 128, 8,
- 2, 1, 242, 84, 207, 168, 211, 184, 71, 8, 2, 1, 236, 113, 223, 66, 4,
- 111, 8, 2, 1, 232, 45, 4, 128, 8, 2, 1, 27, 232, 44, 8, 1, 2, 6, 232, 44,
- 8, 2, 1, 231, 204, 8, 2, 1, 208, 32, 228, 208, 8, 2, 1, 163, 230, 124, 8,
- 2, 1, 230, 125, 4, 128, 8, 2, 1, 229, 207, 4, 128, 8, 2, 1, 228, 97, 4,
- 111, 8, 2, 1, 223, 111, 8, 1, 2, 6, 70, 8, 2, 1, 220, 202, 4, 85, 199,
- 90, 8, 2, 1, 220, 202, 4, 248, 82, 8, 2, 1, 220, 202, 4, 207, 174, 128,
- 8, 2, 1, 219, 225, 8, 2, 1, 163, 218, 236, 8, 2, 1, 163, 218, 237, 4,
- 184, 220, 16, 8, 2, 1, 218, 237, 4, 128, 8, 2, 1, 215, 152, 4, 46, 128,
- 8, 2, 1, 215, 152, 4, 207, 174, 128, 8, 1, 2, 6, 215, 151, 8, 2, 1, 248,
- 188, 74, 8, 1, 2, 6, 212, 0, 8, 2, 1, 242, 84, 211, 216, 8, 2, 1, 210,
- 77, 8, 2, 1, 163, 150, 8, 2, 1, 163, 208, 112, 4, 184, 220, 16, 8, 2, 1,
- 163, 208, 112, 4, 128, 8, 2, 1, 208, 112, 4, 184, 220, 16, 8, 2, 1, 208,
- 112, 4, 200, 147, 8, 2, 1, 208, 112, 4, 232, 221, 8, 2, 1, 207, 168, 208,
- 112, 4, 232, 221, 8, 1, 2, 6, 150, 8, 1, 2, 6, 223, 121, 150, 8, 2, 1,
- 206, 159, 4, 128, 8, 2, 1, 233, 255, 8, 2, 1, 236, 113, 223, 66, 4, 201,
- 208, 26, 128, 8, 2, 1, 202, 103, 207, 168, 233, 255, 8, 2, 1, 234, 0, 4,
- 238, 142, 8, 2, 1, 163, 200, 228, 8, 2, 1, 200, 229, 4, 207, 174, 128, 8,
- 2, 1, 124, 161, 8, 2, 1, 197, 34, 8, 2, 1, 196, 237, 4, 128, 8, 2, 1,
- 163, 196, 236, 8, 2, 1, 163, 194, 202, 8, 2, 1, 163, 193, 148, 8, 1, 2,
- 6, 193, 148, 8, 2, 1, 192, 156, 4, 207, 174, 128, 8, 2, 1, 192, 156, 4,
- 238, 142, 8, 2, 1, 233, 166, 8, 2, 1, 233, 167, 4, 238, 142, 8, 1, 231,
- 6, 201, 238, 8, 1, 210, 85, 195, 248, 232, 95, 8, 1, 223, 121, 231, 6,
- 201, 238, 8, 1, 201, 216, 247, 52, 8, 1, 248, 25, 242, 96, 8, 1, 2, 6,
- 249, 226, 8, 2, 1, 242, 84, 211, 184, 71, 8, 1, 2, 6, 232, 45, 4, 128, 8,
- 1, 2, 6, 230, 124, 8, 2, 1, 223, 66, 4, 238, 178, 8, 2, 1, 163, 222, 184,
- 8, 1, 2, 6, 165, 8, 2, 1, 208, 248, 4, 128, 8, 1, 231, 6, 201, 239, 4,
- 111, 8, 1, 207, 168, 231, 6, 201, 239, 4, 111, 8, 2, 1, 235, 19, 236,
- 230, 8, 2, 1, 237, 42, 236, 230, 8, 2, 1, 235, 19, 236, 231, 4, 238, 142,
- 8, 2, 1, 198, 120, 236, 230, 8, 2, 1, 200, 14, 236, 230, 8, 2, 1, 200,
- 86, 236, 231, 4, 238, 142, 8, 2, 1, 233, 25, 236, 230, 8, 2, 1, 219, 38,
- 236, 230, 8, 2, 1, 218, 238, 236, 230, 8, 1, 248, 25, 210, 132, 8, 1,
- 248, 33, 210, 132, 8, 2, 1, 163, 230, 125, 4, 232, 221, 8, 2, 1, 163,
- 230, 125, 4, 232, 222, 26, 200, 147, 73, 1, 2, 230, 124, 73, 1, 2, 230,
- 125, 4, 128, 73, 1, 2, 223, 65, 73, 1, 2, 150, 73, 1, 2, 163, 150, 73, 1,
- 2, 163, 208, 112, 4, 128, 73, 1, 2, 6, 223, 121, 150, 73, 1, 2, 194, 202,
- 73, 1, 2, 193, 148, 73, 1, 209, 99, 73, 1, 55, 209, 99, 73, 1, 163, 242,
- 38, 73, 1, 250, 147, 73, 1, 207, 168, 242, 38, 73, 1, 51, 138, 207, 81,
- 73, 1, 46, 138, 207, 81, 73, 1, 231, 6, 201, 238, 73, 1, 207, 168, 231,
- 6, 201, 238, 73, 1, 46, 250, 77, 73, 1, 51, 250, 77, 73, 1, 130, 250, 77,
- 73, 1, 142, 250, 77, 73, 1, 242, 122, 251, 143, 246, 207, 73, 1, 84, 219,
- 175, 73, 1, 217, 214, 73, 1, 251, 130, 251, 143, 73, 1, 230, 211, 251,
- 143, 73, 1, 132, 84, 219, 175, 73, 1, 132, 217, 214, 73, 1, 132, 230,
- 211, 251, 143, 73, 1, 132, 251, 130, 251, 143, 73, 1, 198, 182, 242, 47,
- 73, 1, 138, 198, 182, 242, 47, 73, 1, 246, 136, 51, 138, 207, 81, 73, 1,
- 246, 136, 46, 138, 207, 81, 73, 1, 130, 200, 159, 73, 1, 142, 200, 159,
- 73, 1, 102, 57, 73, 1, 216, 113, 57, 247, 150, 78, 58, 207, 82, 58, 211,
- 243, 2, 199, 90, 55, 251, 130, 251, 143, 73, 1, 207, 152, 128, 73, 1,
- 238, 184, 251, 143, 73, 1, 2, 231, 204, 73, 1, 2, 165, 73, 1, 2, 206,
- 158, 73, 1, 2, 193, 223, 73, 1, 2, 207, 168, 231, 6, 201, 238, 73, 1,
- 233, 188, 158, 161, 73, 1, 139, 158, 161, 73, 1, 216, 162, 158, 161, 73,
- 1, 132, 158, 161, 73, 1, 233, 187, 158, 161, 73, 1, 193, 11, 237, 66,
- 158, 77, 73, 1, 193, 96, 237, 66, 158, 77, 73, 1, 195, 246, 73, 1, 197,
- 73, 73, 1, 55, 250, 147, 73, 1, 132, 142, 250, 77, 73, 1, 132, 130, 250,
- 77, 73, 1, 132, 46, 250, 77, 73, 1, 132, 51, 250, 77, 73, 1, 132, 207,
- 81, 73, 1, 85, 230, 211, 251, 143, 73, 1, 85, 55, 230, 211, 251, 143, 73,
- 1, 85, 55, 251, 130, 251, 143, 73, 1, 132, 199, 90, 73, 1, 208, 39, 242,
- 47, 73, 1, 248, 100, 139, 199, 18, 73, 1, 234, 80, 139, 199, 18, 73, 1,
- 248, 100, 132, 199, 18, 73, 1, 234, 80, 132, 199, 18, 73, 1, 204, 3, 73,
- 1, 211, 184, 204, 3, 73, 1, 132, 46, 54, 38, 230, 211, 251, 143, 38, 251,
- 130, 251, 143, 38, 242, 122, 251, 143, 38, 199, 90, 38, 217, 214, 38,
- 211, 109, 38, 247, 150, 38, 78, 58, 38, 237, 14, 38, 229, 15, 58, 38,
- 207, 82, 58, 38, 55, 251, 130, 251, 143, 38, 246, 207, 38, 84, 219, 176,
- 58, 38, 55, 84, 219, 176, 58, 38, 55, 230, 211, 251, 143, 38, 246, 234,
- 38, 223, 121, 247, 150, 38, 163, 242, 39, 58, 38, 242, 39, 58, 38, 207,
- 168, 242, 39, 58, 38, 242, 39, 95, 207, 101, 38, 230, 211, 251, 144, 63,
- 38, 251, 130, 251, 144, 63, 38, 46, 200, 160, 63, 38, 51, 200, 160, 63,
- 38, 46, 250, 208, 58, 38, 228, 208, 38, 46, 138, 207, 82, 63, 38, 130,
- 200, 160, 63, 38, 142, 200, 160, 63, 38, 102, 3, 63, 38, 216, 113, 3, 63,
- 38, 211, 47, 229, 15, 63, 38, 207, 174, 229, 15, 63, 38, 78, 63, 38, 237,
- 15, 63, 38, 207, 82, 63, 38, 242, 39, 63, 38, 246, 151, 38, 211, 243, 38,
- 84, 219, 176, 63, 38, 247, 143, 63, 38, 223, 121, 55, 250, 113, 63, 38,
- 246, 208, 63, 38, 242, 122, 251, 144, 63, 38, 247, 151, 63, 38, 223, 121,
- 247, 151, 63, 38, 199, 91, 63, 38, 217, 215, 63, 38, 132, 219, 175, 38,
- 55, 132, 219, 175, 38, 199, 91, 211, 110, 38, 203, 195, 201, 208, 211,
- 110, 38, 184, 201, 208, 211, 110, 38, 203, 195, 202, 190, 211, 110, 38,
- 184, 202, 190, 211, 110, 38, 51, 138, 207, 82, 63, 38, 223, 121, 247,
- 143, 63, 38, 50, 63, 38, 205, 217, 63, 38, 193, 224, 58, 38, 84, 199, 90,
- 38, 55, 211, 109, 38, 230, 211, 158, 77, 38, 251, 130, 158, 77, 38, 33,
- 210, 126, 38, 33, 221, 78, 38, 33, 237, 8, 198, 255, 38, 33, 192, 222,
- 38, 247, 143, 58, 38, 234, 30, 3, 63, 38, 55, 84, 219, 176, 63, 38, 46,
- 250, 208, 63, 38, 213, 111, 199, 91, 58, 38, 229, 21, 58, 38, 251, 1,
- 187, 115, 58, 38, 46, 51, 61, 63, 38, 197, 30, 61, 63, 38, 230, 217, 222,
- 228, 38, 51, 250, 78, 58, 38, 46, 138, 207, 82, 58, 38, 233, 22, 38, 193,
- 224, 63, 38, 46, 250, 78, 63, 38, 51, 250, 78, 63, 38, 51, 250, 78, 26,
- 130, 250, 78, 63, 38, 51, 138, 207, 82, 58, 38, 78, 95, 207, 101, 38,
- 250, 38, 63, 38, 55, 207, 82, 63, 38, 192, 21, 58, 38, 55, 247, 151, 63,
- 38, 55, 247, 150, 38, 55, 217, 214, 38, 55, 217, 215, 63, 38, 55, 199,
- 90, 38, 55, 223, 121, 247, 150, 38, 55, 94, 61, 63, 38, 8, 2, 1, 64, 38,
- 8, 2, 1, 71, 38, 8, 2, 1, 70, 38, 8, 2, 1, 74, 38, 8, 2, 1, 68, 38, 8, 2,
- 1, 247, 52, 38, 8, 2, 1, 238, 95, 38, 8, 2, 1, 230, 124, 38, 8, 2, 1,
- 218, 236, 38, 8, 2, 1, 150, 38, 8, 2, 1, 200, 228, 38, 8, 2, 1, 196, 236,
- 38, 8, 2, 1, 193, 223, 33, 6, 1, 229, 195, 33, 2, 1, 229, 195, 33, 6, 1,
- 250, 112, 206, 43, 33, 2, 1, 250, 112, 206, 43, 33, 212, 234, 57, 33,
- 106, 212, 234, 57, 33, 6, 1, 211, 30, 236, 238, 33, 2, 1, 211, 30, 236,
- 238, 33, 192, 222, 33, 2, 207, 168, 219, 18, 203, 100, 109, 33, 2, 235,
- 111, 219, 18, 203, 100, 109, 33, 2, 207, 168, 235, 111, 219, 18, 203,
- 100, 109, 33, 208, 159, 77, 33, 6, 1, 192, 229, 33, 198, 255, 33, 237, 8,
- 198, 255, 33, 6, 1, 250, 253, 4, 198, 255, 33, 250, 191, 200, 43, 33, 6,
- 1, 234, 33, 4, 198, 255, 33, 6, 1, 233, 241, 4, 198, 255, 33, 6, 1, 223,
- 112, 4, 198, 255, 33, 6, 1, 211, 215, 4, 198, 255, 33, 6, 1, 197, 35, 4,
- 198, 255, 33, 6, 1, 211, 217, 4, 198, 255, 33, 2, 1, 223, 112, 4, 237, 8,
- 26, 198, 255, 33, 6, 1, 250, 252, 33, 6, 1, 248, 63, 33, 6, 1, 231, 204,
- 33, 6, 1, 237, 76, 33, 6, 1, 234, 32, 33, 6, 1, 192, 75, 33, 6, 1, 233,
- 240, 33, 6, 1, 199, 206, 33, 6, 1, 223, 111, 33, 6, 1, 222, 106, 33, 6,
- 1, 220, 90, 33, 6, 1, 215, 241, 33, 6, 1, 213, 22, 33, 6, 1, 193, 196,
- 33, 6, 1, 211, 214, 33, 6, 1, 210, 51, 33, 6, 1, 207, 153, 33, 6, 1, 203,
- 99, 33, 6, 1, 200, 100, 33, 6, 1, 197, 34, 33, 6, 1, 210, 77, 33, 6, 1,
- 242, 215, 33, 6, 1, 209, 62, 33, 6, 1, 211, 216, 33, 6, 1, 223, 112, 4,
- 237, 7, 33, 6, 1, 197, 35, 4, 237, 7, 33, 2, 1, 250, 253, 4, 198, 255,
- 33, 2, 1, 234, 33, 4, 198, 255, 33, 2, 1, 233, 241, 4, 198, 255, 33, 2,
- 1, 223, 112, 4, 198, 255, 33, 2, 1, 197, 35, 4, 237, 8, 26, 198, 255, 33,
- 2, 1, 250, 252, 33, 2, 1, 248, 63, 33, 2, 1, 231, 204, 33, 2, 1, 237, 76,
- 33, 2, 1, 234, 32, 33, 2, 1, 192, 75, 33, 2, 1, 233, 240, 33, 2, 1, 199,
- 206, 33, 2, 1, 223, 111, 33, 2, 1, 222, 106, 33, 2, 1, 220, 90, 33, 2, 1,
- 215, 241, 33, 2, 1, 213, 22, 33, 2, 1, 193, 196, 33, 2, 1, 211, 214, 33,
- 2, 1, 210, 51, 33, 2, 1, 207, 153, 33, 2, 1, 52, 203, 99, 33, 2, 1, 203,
- 99, 33, 2, 1, 200, 100, 33, 2, 1, 197, 34, 33, 2, 1, 210, 77, 33, 2, 1,
- 242, 215, 33, 2, 1, 209, 62, 33, 2, 1, 211, 216, 33, 2, 1, 223, 112, 4,
- 237, 7, 33, 2, 1, 197, 35, 4, 237, 7, 33, 2, 1, 211, 215, 4, 198, 255,
- 33, 2, 1, 197, 35, 4, 198, 255, 33, 2, 1, 211, 217, 4, 198, 255, 33, 6,
- 222, 136, 109, 33, 248, 64, 109, 33, 199, 207, 109, 33, 197, 35, 4, 229,
- 15, 109, 33, 197, 35, 4, 251, 130, 26, 229, 15, 109, 33, 197, 35, 4, 237,
- 15, 26, 229, 15, 109, 33, 210, 78, 109, 33, 210, 52, 109, 33, 222, 136,
- 109, 33, 1, 250, 112, 221, 82, 33, 2, 1, 250, 112, 221, 82, 33, 1, 201,
- 248, 33, 2, 1, 201, 248, 33, 1, 236, 238, 33, 2, 1, 236, 238, 33, 1, 221,
- 82, 33, 2, 1, 221, 82, 33, 1, 206, 43, 33, 2, 1, 206, 43, 92, 6, 1, 204,
- 4, 92, 2, 1, 204, 4, 92, 6, 1, 233, 32, 92, 2, 1, 233, 32, 92, 6, 1, 221,
- 232, 92, 2, 1, 221, 232, 92, 6, 1, 229, 6, 92, 2, 1, 229, 6, 92, 6, 1,
- 231, 199, 92, 2, 1, 231, 199, 92, 6, 1, 203, 226, 92, 2, 1, 203, 226, 92,
- 6, 1, 237, 92, 92, 2, 1, 237, 92, 33, 222, 107, 109, 33, 207, 154, 109,
- 33, 219, 18, 203, 100, 109, 33, 1, 192, 229, 33, 6, 199, 207, 109, 33,
- 219, 18, 234, 33, 109, 33, 207, 168, 219, 18, 234, 33, 109, 33, 6, 1,
- 203, 211, 33, 2, 1, 203, 211, 33, 6, 219, 18, 203, 100, 109, 33, 6, 1,
- 206, 40, 33, 2, 1, 206, 40, 33, 207, 154, 4, 201, 208, 109, 33, 6, 207,
- 168, 219, 18, 203, 100, 109, 33, 6, 235, 111, 219, 18, 203, 100, 109, 33,
- 6, 207, 168, 235, 111, 219, 18, 203, 100, 109, 42, 6, 1, 223, 252, 4,
- 230, 210, 42, 6, 1, 223, 116, 42, 6, 1, 236, 164, 42, 6, 1, 231, 15, 42,
- 6, 1, 197, 89, 223, 251, 42, 6, 1, 235, 14, 42, 6, 1, 247, 62, 70, 42, 6,
- 1, 193, 22, 42, 6, 1, 223, 41, 42, 6, 1, 219, 140, 42, 6, 1, 213, 249,
- 42, 6, 1, 198, 106, 42, 6, 1, 221, 141, 42, 6, 1, 228, 97, 4, 230, 210,
- 42, 6, 1, 203, 195, 68, 42, 6, 1, 235, 10, 42, 6, 1, 64, 42, 6, 1, 248,
- 123, 42, 6, 1, 196, 123, 42, 6, 1, 231, 70, 42, 6, 1, 237, 116, 42, 6, 1,
- 223, 251, 42, 6, 1, 192, 62, 42, 6, 1, 192, 85, 42, 6, 1, 70, 42, 6, 1,
- 203, 195, 70, 42, 6, 1, 160, 42, 6, 1, 234, 124, 42, 6, 1, 234, 99, 42,
- 6, 1, 234, 88, 42, 6, 1, 74, 42, 6, 1, 210, 181, 42, 6, 1, 234, 21, 42,
- 6, 1, 234, 9, 42, 6, 1, 200, 79, 42, 6, 1, 68, 42, 6, 1, 234, 164, 42, 6,
- 1, 144, 42, 6, 1, 198, 112, 42, 6, 1, 242, 245, 42, 6, 1, 204, 64, 42, 6,
- 1, 204, 15, 42, 6, 1, 230, 26, 57, 42, 6, 1, 193, 47, 42, 6, 1, 202, 198,
- 57, 42, 6, 1, 71, 42, 6, 1, 192, 214, 42, 6, 1, 168, 42, 2, 1, 64, 42, 2,
- 1, 248, 123, 42, 2, 1, 196, 123, 42, 2, 1, 231, 70, 42, 2, 1, 237, 116,
- 42, 2, 1, 223, 251, 42, 2, 1, 192, 62, 42, 2, 1, 192, 85, 42, 2, 1, 70,
- 42, 2, 1, 203, 195, 70, 42, 2, 1, 160, 42, 2, 1, 234, 124, 42, 2, 1, 234,
- 99, 42, 2, 1, 234, 88, 42, 2, 1, 74, 42, 2, 1, 210, 181, 42, 2, 1, 234,
- 21, 42, 2, 1, 234, 9, 42, 2, 1, 200, 79, 42, 2, 1, 68, 42, 2, 1, 234,
- 164, 42, 2, 1, 144, 42, 2, 1, 198, 112, 42, 2, 1, 242, 245, 42, 2, 1,
- 204, 64, 42, 2, 1, 204, 15, 42, 2, 1, 230, 26, 57, 42, 2, 1, 193, 47, 42,
- 2, 1, 202, 198, 57, 42, 2, 1, 71, 42, 2, 1, 192, 214, 42, 2, 1, 168, 42,
- 2, 1, 223, 252, 4, 230, 210, 42, 2, 1, 223, 116, 42, 2, 1, 236, 164, 42,
- 2, 1, 231, 15, 42, 2, 1, 197, 89, 223, 251, 42, 2, 1, 235, 14, 42, 2, 1,
- 247, 62, 70, 42, 2, 1, 193, 22, 42, 2, 1, 223, 41, 42, 2, 1, 219, 140,
- 42, 2, 1, 213, 249, 42, 2, 1, 198, 106, 42, 2, 1, 221, 141, 42, 2, 1,
- 228, 97, 4, 230, 210, 42, 2, 1, 203, 195, 68, 42, 2, 1, 235, 10, 42, 6,
- 1, 211, 216, 42, 2, 1, 211, 216, 42, 6, 1, 193, 84, 42, 2, 1, 193, 84,
- 42, 6, 1, 223, 109, 71, 42, 2, 1, 223, 109, 71, 42, 6, 1, 219, 147, 192,
- 179, 42, 2, 1, 219, 147, 192, 179, 42, 6, 1, 223, 109, 219, 147, 192,
- 179, 42, 2, 1, 223, 109, 219, 147, 192, 179, 42, 6, 1, 248, 28, 192, 179,
- 42, 2, 1, 248, 28, 192, 179, 42, 6, 1, 223, 109, 248, 28, 192, 179, 42,
- 2, 1, 223, 109, 248, 28, 192, 179, 42, 6, 1, 221, 49, 42, 2, 1, 221, 49,
- 42, 6, 1, 209, 62, 42, 2, 1, 209, 62, 42, 6, 1, 232, 216, 42, 2, 1, 232,
- 216, 42, 6, 1, 223, 67, 42, 2, 1, 223, 67, 42, 6, 1, 223, 68, 4, 55, 230,
- 211, 251, 143, 42, 2, 1, 223, 68, 4, 55, 230, 211, 251, 143, 42, 6, 1,
- 197, 92, 42, 2, 1, 197, 92, 42, 6, 1, 207, 9, 211, 216, 42, 2, 1, 207, 9,
- 211, 216, 42, 6, 1, 211, 217, 4, 199, 60, 42, 2, 1, 211, 217, 4, 199, 60,
- 42, 6, 1, 211, 140, 42, 2, 1, 211, 140, 42, 6, 1, 221, 82, 42, 2, 1, 221,
- 82, 42, 199, 164, 57, 38, 42, 199, 60, 38, 42, 211, 48, 38, 42, 237, 183,
- 209, 200, 38, 42, 209, 56, 209, 200, 38, 42, 209, 184, 38, 42, 228, 163,
- 199, 164, 57, 38, 42, 216, 124, 57, 42, 6, 1, 203, 195, 228, 97, 4, 200,
- 147, 42, 2, 1, 203, 195, 228, 97, 4, 200, 147, 42, 6, 1, 204, 176, 57,
- 42, 2, 1, 204, 176, 57, 42, 6, 1, 234, 22, 4, 199, 117, 42, 2, 1, 234,
- 22, 4, 199, 117, 42, 6, 1, 231, 71, 4, 197, 33, 42, 2, 1, 231, 71, 4,
- 197, 33, 42, 6, 1, 231, 71, 4, 111, 42, 2, 1, 231, 71, 4, 111, 42, 6, 1,
- 231, 71, 4, 85, 128, 42, 2, 1, 231, 71, 4, 85, 128, 42, 6, 1, 192, 63, 4,
- 237, 59, 42, 2, 1, 192, 63, 4, 237, 59, 42, 6, 1, 192, 86, 4, 237, 59,
- 42, 2, 1, 192, 86, 4, 237, 59, 42, 6, 1, 222, 174, 4, 237, 59, 42, 2, 1,
- 222, 174, 4, 237, 59, 42, 6, 1, 222, 174, 4, 84, 111, 42, 2, 1, 222, 174,
- 4, 84, 111, 42, 6, 1, 222, 174, 4, 111, 42, 2, 1, 222, 174, 4, 111, 42,
- 6, 1, 248, 176, 160, 42, 2, 1, 248, 176, 160, 42, 6, 1, 234, 89, 4, 237,
- 59, 42, 2, 1, 234, 89, 4, 237, 59, 42, 6, 34, 234, 89, 231, 70, 42, 2,
- 34, 234, 89, 231, 70, 42, 6, 1, 210, 182, 4, 85, 128, 42, 2, 1, 210, 182,
- 4, 85, 128, 42, 6, 1, 251, 150, 144, 42, 2, 1, 251, 150, 144, 42, 6, 1,
- 234, 10, 4, 237, 59, 42, 2, 1, 234, 10, 4, 237, 59, 42, 6, 1, 200, 80, 4,
- 237, 59, 42, 2, 1, 200, 80, 4, 237, 59, 42, 6, 1, 201, 230, 68, 42, 2, 1,
- 201, 230, 68, 42, 6, 1, 201, 230, 124, 4, 111, 42, 2, 1, 201, 230, 124,
- 4, 111, 42, 6, 1, 230, 113, 4, 237, 59, 42, 2, 1, 230, 113, 4, 237, 59,
- 42, 6, 34, 200, 80, 198, 112, 42, 2, 34, 200, 80, 198, 112, 42, 6, 1,
- 242, 246, 4, 237, 59, 42, 2, 1, 242, 246, 4, 237, 59, 42, 6, 1, 242, 246,
- 4, 84, 111, 42, 2, 1, 242, 246, 4, 84, 111, 42, 6, 1, 203, 237, 42, 2, 1,
- 203, 237, 42, 6, 1, 251, 150, 242, 245, 42, 2, 1, 251, 150, 242, 245, 42,
- 6, 1, 251, 150, 242, 246, 4, 237, 59, 42, 2, 1, 251, 150, 242, 246, 4,
- 237, 59, 42, 1, 211, 37, 42, 6, 1, 192, 63, 4, 247, 150, 42, 2, 1, 192,
- 63, 4, 247, 150, 42, 6, 1, 222, 174, 4, 128, 42, 2, 1, 222, 174, 4, 128,
- 42, 6, 1, 234, 125, 4, 200, 147, 42, 2, 1, 234, 125, 4, 200, 147, 42, 6,
- 1, 234, 89, 4, 128, 42, 2, 1, 234, 89, 4, 128, 42, 6, 1, 234, 89, 4, 200,
- 147, 42, 2, 1, 234, 89, 4, 200, 147, 42, 6, 1, 221, 243, 242, 245, 42, 2,
- 1, 221, 243, 242, 245, 42, 6, 1, 234, 100, 4, 200, 147, 42, 2, 1, 234,
- 100, 4, 200, 147, 42, 2, 1, 211, 37, 42, 6, 1, 41, 4, 247, 150, 42, 2, 1,
- 41, 4, 247, 150, 42, 6, 1, 41, 4, 237, 14, 42, 2, 1, 41, 4, 237, 14, 42,
- 6, 34, 41, 223, 251, 42, 2, 34, 41, 223, 251, 42, 6, 1, 223, 252, 4, 247,
- 150, 42, 2, 1, 223, 252, 4, 247, 150, 42, 6, 1, 205, 240, 42, 2, 1, 205,
- 240, 42, 6, 1, 205, 241, 4, 237, 14, 42, 2, 1, 205, 241, 4, 237, 14, 42,
- 6, 1, 192, 63, 4, 237, 14, 42, 2, 1, 192, 63, 4, 237, 14, 42, 6, 1, 192,
- 86, 4, 237, 14, 42, 2, 1, 192, 86, 4, 237, 14, 42, 6, 1, 251, 150, 235,
- 14, 42, 2, 1, 251, 150, 235, 14, 42, 6, 1, 228, 97, 4, 217, 214, 42, 2,
- 1, 228, 97, 4, 217, 214, 42, 6, 1, 228, 97, 4, 237, 14, 42, 2, 1, 228,
- 97, 4, 237, 14, 42, 6, 1, 185, 4, 237, 14, 42, 2, 1, 185, 4, 237, 14, 42,
- 6, 1, 248, 188, 74, 42, 2, 1, 248, 188, 74, 42, 6, 1, 248, 188, 185, 4,
- 237, 14, 42, 2, 1, 248, 188, 185, 4, 237, 14, 42, 6, 1, 234, 253, 4, 237,
- 14, 42, 2, 1, 234, 253, 4, 237, 14, 42, 6, 1, 124, 4, 217, 214, 42, 2, 1,
- 124, 4, 217, 214, 42, 6, 1, 124, 4, 237, 14, 42, 2, 1, 124, 4, 237, 14,
- 42, 6, 1, 124, 4, 55, 251, 129, 42, 2, 1, 124, 4, 55, 251, 129, 42, 6, 1,
- 242, 246, 4, 237, 14, 42, 2, 1, 242, 246, 4, 237, 14, 42, 6, 1, 231, 71,
- 4, 237, 59, 42, 2, 1, 231, 71, 4, 237, 59, 42, 6, 1, 193, 48, 4, 237, 14,
- 42, 2, 1, 193, 48, 4, 237, 14, 42, 6, 1, 231, 71, 4, 201, 208, 26, 128,
- 42, 2, 1, 231, 71, 4, 201, 208, 26, 128, 42, 6, 1, 230, 113, 4, 128, 42,
- 2, 1, 230, 113, 4, 128, 42, 6, 1, 230, 113, 4, 111, 42, 2, 1, 230, 113,
- 4, 111, 42, 6, 1, 221, 92, 237, 116, 42, 2, 1, 221, 92, 237, 116, 42, 6,
- 1, 221, 92, 236, 164, 42, 2, 1, 221, 92, 236, 164, 42, 6, 1, 221, 92,
- 192, 12, 42, 2, 1, 221, 92, 192, 12, 42, 6, 1, 221, 92, 235, 6, 42, 2, 1,
- 221, 92, 235, 6, 42, 6, 1, 221, 92, 219, 140, 42, 2, 1, 221, 92, 219,
- 140, 42, 6, 1, 221, 92, 213, 249, 42, 2, 1, 221, 92, 213, 249, 42, 6, 1,
- 221, 92, 203, 20, 42, 2, 1, 221, 92, 203, 20, 42, 6, 1, 221, 92, 199, 54,
- 42, 2, 1, 221, 92, 199, 54, 42, 6, 1, 207, 168, 192, 85, 42, 2, 1, 207,
- 168, 192, 85, 42, 6, 1, 234, 125, 4, 128, 42, 2, 1, 234, 125, 4, 128, 42,
- 6, 1, 219, 222, 42, 2, 1, 219, 222, 42, 6, 1, 207, 156, 42, 2, 1, 207,
- 156, 42, 6, 1, 193, 118, 42, 2, 1, 193, 118, 42, 6, 1, 208, 239, 42, 2,
- 1, 208, 239, 42, 6, 1, 194, 111, 42, 2, 1, 194, 111, 42, 6, 1, 251, 22,
- 160, 42, 2, 1, 251, 22, 160, 42, 6, 1, 234, 125, 4, 85, 128, 42, 2, 1,
- 234, 125, 4, 85, 128, 42, 6, 1, 234, 89, 4, 85, 128, 42, 2, 1, 234, 89,
- 4, 85, 128, 42, 6, 1, 210, 182, 4, 237, 59, 42, 2, 1, 210, 182, 4, 237,
- 59, 42, 6, 1, 203, 238, 4, 237, 59, 42, 2, 1, 203, 238, 4, 237, 59, 42,
- 6, 1, 234, 89, 4, 46, 128, 42, 2, 1, 234, 89, 4, 46, 128, 42, 6, 1, 234,
- 254, 42, 2, 1, 234, 254, 42, 6, 1, 237, 165, 42, 2, 1, 237, 165, 42, 6,
- 1, 234, 125, 4, 237, 59, 42, 2, 1, 234, 125, 4, 237, 59, 250, 91, 6, 1,
- 249, 233, 250, 91, 6, 1, 248, 80, 250, 91, 6, 1, 231, 33, 250, 91, 6, 1,
- 238, 0, 250, 91, 6, 1, 234, 177, 250, 91, 6, 1, 192, 112, 250, 91, 6, 1,
- 234, 157, 250, 91, 6, 1, 233, 242, 250, 91, 6, 1, 155, 250, 91, 6, 1,
- 192, 62, 250, 91, 6, 1, 223, 159, 250, 91, 6, 1, 219, 144, 250, 91, 6, 1,
- 193, 201, 250, 91, 6, 1, 247, 19, 250, 91, 6, 1, 222, 30, 250, 91, 6, 1,
- 229, 43, 250, 91, 6, 1, 223, 62, 250, 91, 6, 1, 231, 81, 250, 91, 6, 1,
- 242, 235, 250, 91, 6, 1, 217, 5, 250, 91, 6, 1, 193, 22, 250, 91, 6, 1,
- 213, 96, 250, 91, 6, 1, 204, 64, 250, 91, 6, 1, 195, 252, 250, 91, 6, 1,
- 246, 117, 250, 91, 6, 1, 210, 161, 250, 91, 6, 1, 223, 23, 250, 91, 6, 1,
- 167, 250, 91, 6, 1, 205, 194, 250, 91, 6, 1, 196, 44, 250, 91, 6, 1, 199,
- 57, 250, 91, 6, 1, 207, 221, 250, 91, 6, 1, 242, 63, 250, 91, 6, 1, 193,
- 6, 250, 91, 6, 1, 209, 238, 250, 91, 6, 1, 222, 41, 250, 91, 6, 1, 211,
- 241, 250, 91, 6, 1, 233, 34, 250, 91, 73, 1, 46, 138, 207, 81, 250, 91,
- 250, 147, 250, 91, 234, 92, 77, 250, 91, 233, 204, 77, 250, 91, 242, 38,
- 250, 91, 208, 159, 77, 250, 91, 251, 151, 77, 250, 91, 2, 1, 163, 249,
- 233, 250, 91, 2, 1, 249, 233, 250, 91, 2, 1, 248, 80, 250, 91, 2, 1, 231,
- 33, 250, 91, 2, 1, 238, 0, 250, 91, 2, 1, 234, 177, 250, 91, 2, 1, 192,
- 112, 250, 91, 2, 1, 234, 157, 250, 91, 2, 1, 233, 242, 250, 91, 2, 1,
- 155, 250, 91, 2, 1, 192, 62, 250, 91, 2, 1, 223, 159, 250, 91, 2, 1, 219,
- 144, 250, 91, 2, 1, 193, 201, 250, 91, 2, 1, 247, 19, 250, 91, 2, 1, 222,
- 30, 250, 91, 2, 1, 229, 43, 250, 91, 2, 1, 223, 62, 250, 91, 2, 1, 231,
- 81, 250, 91, 2, 1, 242, 235, 250, 91, 2, 1, 217, 5, 250, 91, 2, 1, 193,
- 22, 250, 91, 2, 1, 213, 96, 250, 91, 2, 1, 204, 64, 250, 91, 2, 1, 195,
- 252, 250, 91, 2, 1, 246, 117, 250, 91, 2, 1, 210, 161, 250, 91, 2, 1,
- 223, 23, 250, 91, 2, 1, 167, 250, 91, 2, 1, 205, 194, 250, 91, 2, 1, 196,
- 44, 250, 91, 2, 1, 199, 57, 250, 91, 2, 1, 207, 221, 250, 91, 2, 1, 242,
- 63, 250, 91, 2, 1, 193, 6, 250, 91, 2, 1, 209, 238, 250, 91, 2, 1, 222,
- 41, 250, 91, 2, 1, 211, 241, 250, 91, 2, 1, 233, 34, 250, 91, 2, 34, 234,
- 178, 193, 6, 250, 91, 2, 1, 11, 4, 111, 250, 91, 232, 71, 201, 238, 250,
- 91, 228, 111, 207, 100, 250, 91, 233, 238, 57, 220, 27, 250, 91, 233,
- 238, 57, 250, 91, 235, 83, 57, 129, 251, 144, 233, 233, 129, 251, 144,
- 205, 195, 129, 251, 144, 204, 40, 129, 251, 144, 192, 97, 208, 222, 129,
- 251, 144, 192, 97, 231, 223, 129, 251, 144, 199, 72, 129, 251, 144, 207,
- 165, 129, 251, 144, 192, 95, 129, 251, 144, 210, 214, 129, 251, 144, 193,
- 37, 129, 251, 144, 199, 247, 129, 251, 144, 231, 132, 129, 251, 144, 231,
- 133, 215, 198, 129, 251, 144, 231, 130, 129, 251, 144, 208, 223, 210,
- 246, 129, 251, 144, 200, 38, 231, 151, 129, 251, 144, 210, 187, 129, 251,
- 144, 250, 17, 230, 93, 129, 251, 144, 215, 208, 129, 251, 144, 217, 185,
- 129, 251, 144, 216, 250, 129, 251, 144, 216, 251, 222, 42, 129, 251, 144,
- 237, 192, 129, 251, 144, 208, 234, 129, 251, 144, 200, 38, 208, 217, 129,
- 251, 144, 193, 50, 248, 81, 192, 236, 129, 251, 144, 211, 223, 129, 251,
- 144, 223, 210, 129, 251, 144, 237, 93, 129, 251, 144, 192, 19, 129, 122,
- 217, 105, 242, 130, 129, 209, 192, 203, 240, 129, 209, 192, 230, 17, 205,
- 195, 129, 209, 192, 230, 17, 210, 205, 129, 209, 192, 230, 17, 208, 227,
- 129, 209, 192, 229, 139, 129, 209, 192, 198, 109, 129, 209, 192, 205,
- 195, 129, 209, 192, 210, 205, 129, 209, 192, 208, 227, 129, 209, 192,
- 229, 27, 129, 209, 192, 229, 28, 230, 19, 39, 196, 127, 129, 209, 192,
- 208, 163, 129, 209, 192, 237, 241, 211, 164, 217, 140, 129, 209, 192,
- 216, 239, 129, 209, 38, 217, 137, 129, 209, 192, 208, 51, 129, 209, 38,
- 210, 216, 129, 209, 192, 203, 225, 236, 114, 129, 209, 192, 203, 79, 236,
- 114, 129, 209, 38, 202, 199, 210, 207, 129, 122, 113, 236, 114, 129, 122,
- 106, 236, 114, 129, 209, 38, 212, 231, 230, 92, 129, 209, 192, 208, 228,
- 208, 222, 129, 1, 251, 26, 129, 1, 248, 65, 129, 1, 231, 31, 129, 1, 237,
- 221, 129, 1, 229, 255, 129, 1, 196, 127, 129, 1, 192, 89, 129, 1, 229,
- 196, 129, 1, 200, 8, 129, 1, 192, 239, 129, 1, 52, 222, 139, 129, 1, 222,
- 139, 129, 1, 220, 86, 129, 1, 52, 217, 12, 129, 1, 217, 12, 129, 1, 52,
- 212, 230, 129, 1, 212, 230, 129, 1, 206, 46, 129, 1, 249, 231, 129, 1,
- 52, 210, 181, 129, 1, 210, 181, 129, 1, 52, 198, 113, 129, 1, 198, 113,
- 129, 1, 208, 186, 129, 1, 207, 188, 129, 1, 203, 224, 129, 1, 200, 96,
- 129, 192, 240, 198, 185, 129, 34, 193, 20, 55, 196, 127, 129, 34, 193,
- 20, 196, 128, 192, 239, 129, 34, 193, 20, 55, 192, 239, 129, 209, 38,
- 231, 132, 129, 209, 38, 231, 130, 9, 31, 57, 9, 3, 206, 39, 9, 232, 147,
- 217, 122, 9, 3, 206, 81, 9, 3, 206, 42, 9, 31, 122, 58, 250, 126, 238,
- 158, 207, 22, 250, 126, 232, 112, 207, 22, 9, 208, 15, 250, 126, 210,
- 134, 216, 126, 57, 250, 126, 210, 134, 200, 31, 199, 165, 57, 251, 85,
- 57, 9, 242, 38, 9, 237, 179, 204, 165, 9, 209, 194, 196, 107, 57, 9, 3,
- 216, 104, 9, 3, 206, 57, 251, 29, 194, 135, 9, 3, 251, 29, 250, 42, 9, 3,
- 208, 49, 251, 28, 9, 3, 208, 57, 251, 6, 250, 199, 9, 3, 200, 138, 9, 2,
- 139, 200, 151, 9, 2, 139, 34, 157, 4, 220, 95, 4, 193, 64, 9, 2, 139,
- 192, 103, 9, 2, 233, 58, 9, 2, 237, 215, 9, 2, 222, 86, 9, 204, 180, 9,
- 1, 77, 9, 198, 170, 78, 209, 38, 77, 9, 208, 159, 77, 9, 1, 222, 90, 193,
- 64, 9, 1, 230, 66, 9, 1, 157, 4, 217, 210, 58, 9, 1, 157, 4, 230, 67, 58,
- 9, 1, 194, 120, 4, 230, 67, 58, 9, 1, 157, 4, 230, 67, 63, 9, 1, 97, 4,
- 230, 67, 58, 9, 1, 251, 26, 9, 1, 248, 96, 9, 1, 200, 50, 217, 133, 9, 1,
- 200, 49, 9, 1, 199, 220, 9, 1, 223, 37, 9, 1, 230, 89, 9, 1, 221, 245, 9,
- 1, 237, 227, 9, 1, 199, 232, 9, 1, 207, 221, 9, 1, 192, 103, 9, 1, 205,
- 201, 9, 1, 204, 8, 9, 1, 206, 86, 9, 1, 237, 250, 9, 1, 200, 151, 9, 1,
- 192, 106, 9, 1, 251, 57, 9, 1, 231, 79, 9, 1, 222, 40, 4, 103, 236, 112,
- 58, 9, 1, 222, 40, 4, 112, 236, 112, 63, 9, 1, 233, 62, 97, 4, 223, 121,
- 196, 236, 9, 1, 233, 62, 97, 4, 103, 236, 112, 58, 9, 1, 233, 62, 97, 4,
- 112, 236, 112, 58, 9, 200, 102, 9, 1, 233, 34, 9, 1, 208, 232, 9, 1, 222,
- 139, 9, 1, 220, 94, 9, 1, 217, 26, 9, 1, 213, 123, 9, 1, 229, 220, 9, 1,
- 194, 119, 9, 1, 157, 217, 168, 9, 1, 193, 64, 9, 233, 56, 9, 237, 213, 9,
- 222, 84, 9, 233, 58, 9, 237, 215, 9, 222, 86, 9, 204, 54, 9, 201, 131, 9,
- 217, 208, 58, 9, 230, 67, 58, 9, 230, 67, 63, 9, 201, 155, 251, 26, 9,
- 223, 121, 237, 215, 9, 122, 213, 124, 231, 50, 9, 191, 238, 9, 18, 3, 2,
- 196, 237, 58, 9, 18, 3, 223, 121, 2, 196, 237, 58, 9, 18, 3, 78, 63, 9,
- 207, 168, 237, 215, 9, 233, 59, 4, 103, 236, 111, 9, 194, 121, 230, 67,
- 63, 250, 126, 17, 192, 76, 250, 126, 17, 101, 250, 126, 17, 104, 250,
- 126, 17, 133, 250, 126, 17, 134, 250, 126, 17, 151, 250, 126, 17, 170,
- 250, 126, 17, 179, 250, 126, 17, 174, 250, 126, 17, 182, 9, 210, 133, 57,
- 9, 237, 108, 204, 165, 9, 199, 164, 204, 165, 9, 232, 214, 209, 190, 202,
- 19, 9, 1, 236, 113, 248, 96, 9, 1, 236, 113, 208, 232, 9, 1, 201, 107,
- 251, 26, 9, 1, 157, 194, 136, 9, 1, 157, 4, 194, 121, 230, 67, 58, 9, 1,
- 157, 4, 194, 121, 230, 67, 63, 9, 1, 139, 230, 66, 9, 1, 139, 230, 67,
- 251, 26, 9, 1, 139, 230, 67, 194, 119, 9, 1, 124, 4, 230, 67, 58, 9, 1,
- 139, 230, 67, 193, 64, 9, 1, 198, 75, 9, 1, 198, 73, 9, 1, 248, 106, 9,
- 1, 200, 50, 4, 207, 81, 9, 1, 200, 50, 4, 112, 236, 112, 95, 235, 91, 9,
- 1, 210, 161, 9, 1, 200, 47, 9, 1, 248, 94, 9, 1, 176, 4, 230, 67, 58, 9,
- 1, 176, 4, 103, 236, 112, 84, 58, 9, 1, 212, 187, 9, 1, 235, 23, 9, 1,
- 176, 4, 112, 236, 112, 58, 9, 1, 200, 83, 9, 1, 200, 81, 9, 1, 237, 156,
- 9, 1, 237, 228, 4, 207, 81, 9, 1, 237, 228, 4, 78, 63, 9, 1, 237, 228, 4,
- 78, 248, 84, 26, 2, 200, 151, 9, 1, 237, 234, 9, 1, 237, 158, 9, 1, 235,
- 52, 9, 1, 237, 228, 4, 112, 236, 112, 95, 235, 91, 9, 1, 237, 228, 4,
- 232, 119, 236, 112, 58, 9, 1, 206, 251, 9, 1, 207, 222, 4, 2, 196, 236,
- 9, 1, 207, 222, 4, 207, 81, 9, 1, 207, 222, 4, 78, 63, 9, 1, 207, 222, 4,
- 2, 196, 237, 63, 9, 1, 207, 222, 4, 78, 248, 84, 26, 78, 58, 9, 1, 207,
- 222, 4, 103, 236, 112, 58, 9, 1, 223, 34, 9, 1, 207, 222, 4, 232, 119,
- 236, 112, 58, 9, 1, 205, 202, 4, 78, 248, 84, 26, 78, 58, 9, 1, 205, 202,
- 4, 112, 236, 112, 63, 9, 1, 205, 202, 4, 112, 236, 112, 248, 84, 26, 112,
- 236, 112, 58, 9, 1, 206, 87, 4, 103, 236, 112, 63, 9, 1, 206, 87, 4, 112,
- 236, 112, 58, 9, 1, 200, 152, 4, 112, 236, 112, 58, 9, 1, 251, 58, 4,
- 112, 236, 112, 58, 9, 1, 236, 113, 233, 34, 9, 1, 233, 35, 4, 78, 216, 2,
- 63, 9, 1, 233, 35, 4, 78, 63, 9, 1, 196, 116, 9, 1, 233, 35, 4, 112, 236,
- 112, 63, 9, 1, 210, 159, 9, 1, 208, 233, 4, 78, 58, 9, 1, 208, 233, 4,
- 112, 236, 112, 58, 9, 1, 222, 39, 9, 1, 201, 75, 222, 139, 9, 1, 222,
- 140, 4, 207, 81, 9, 1, 222, 140, 4, 78, 58, 9, 1, 214, 167, 9, 1, 222,
- 140, 4, 112, 236, 112, 63, 9, 1, 231, 220, 9, 1, 231, 221, 4, 207, 81, 9,
- 1, 214, 88, 9, 1, 231, 221, 4, 103, 236, 112, 63, 9, 1, 230, 173, 9, 1,
- 231, 221, 4, 112, 236, 112, 58, 9, 1, 220, 95, 4, 2, 196, 236, 9, 1, 220,
- 95, 4, 78, 58, 9, 1, 220, 95, 4, 112, 236, 112, 58, 9, 1, 220, 95, 4,
- 112, 236, 112, 63, 9, 1, 213, 124, 4, 78, 63, 9, 1, 213, 124, 231, 50, 9,
- 1, 207, 58, 9, 1, 213, 124, 4, 207, 81, 9, 1, 213, 124, 4, 112, 236, 112,
- 58, 9, 1, 229, 221, 236, 142, 9, 1, 200, 84, 4, 78, 58, 9, 1, 229, 221,
- 4, 97, 58, 9, 1, 229, 221, 230, 251, 9, 1, 229, 221, 230, 252, 4, 230,
- 67, 58, 9, 1, 200, 50, 217, 134, 230, 251, 9, 1, 194, 120, 4, 207, 81, 9,
- 1, 221, 170, 212, 0, 9, 1, 212, 0, 9, 1, 68, 9, 1, 192, 214, 9, 1, 221,
- 170, 192, 214, 9, 1, 194, 120, 4, 103, 236, 112, 58, 9, 1, 196, 123, 9,
- 1, 233, 62, 193, 64, 9, 1, 97, 4, 200, 147, 9, 1, 97, 4, 2, 196, 236, 9,
- 1, 194, 120, 4, 78, 58, 9, 1, 71, 9, 1, 97, 4, 112, 236, 112, 63, 9, 1,
- 97, 248, 186, 9, 1, 97, 248, 187, 4, 230, 67, 58, 9, 232, 71, 201, 238,
- 9, 1, 251, 108, 9, 2, 139, 34, 206, 87, 4, 220, 95, 4, 157, 217, 168, 9,
- 2, 139, 34, 208, 233, 4, 220, 95, 4, 157, 217, 168, 9, 2, 139, 91, 88,
- 20, 9, 2, 139, 220, 95, 251, 26, 9, 2, 139, 223, 37, 9, 2, 139, 112, 236,
- 111, 9, 2, 139, 205, 201, 9, 234, 80, 80, 249, 235, 9, 202, 15, 80, 206,
- 210, 234, 125, 229, 134, 9, 2, 139, 207, 7, 192, 76, 9, 2, 139, 197, 37,
- 207, 241, 192, 76, 9, 2, 139, 236, 113, 229, 246, 80, 221, 245, 9, 2,
- 139, 91, 72, 20, 9, 2, 132, 205, 201, 9, 2, 139, 217, 209, 9, 2, 194,
- 119, 9, 2, 193, 64, 9, 2, 139, 193, 64, 9, 2, 139, 213, 123, 9, 209, 232,
- 80, 206, 71, 9, 234, 90, 246, 138, 132, 201, 238, 9, 234, 90, 246, 138,
- 139, 201, 238, 9, 207, 7, 139, 201, 239, 4, 232, 248, 246, 137, 9, 2,
- 132, 217, 26, 9, 1, 237, 228, 4, 223, 121, 196, 236, 9, 1, 207, 222, 4,
- 223, 121, 196, 236, 233, 193, 250, 126, 17, 192, 76, 233, 193, 250, 126,
- 17, 101, 233, 193, 250, 126, 17, 104, 233, 193, 250, 126, 17, 133, 233,
- 193, 250, 126, 17, 134, 233, 193, 250, 126, 17, 151, 233, 193, 250, 126,
- 17, 170, 233, 193, 250, 126, 17, 179, 233, 193, 250, 126, 17, 174, 233,
- 193, 250, 126, 17, 182, 9, 1, 204, 9, 4, 78, 63, 9, 1, 237, 251, 4, 78,
- 63, 9, 1, 231, 80, 4, 78, 63, 9, 3, 203, 77, 250, 229, 9, 3, 203, 77,
- 209, 151, 217, 5, 9, 1, 229, 221, 4, 223, 121, 196, 236, 200, 248, 234,
- 80, 80, 210, 243, 200, 248, 201, 102, 232, 71, 201, 238, 200, 248, 201,
- 157, 232, 71, 201, 238, 200, 248, 201, 102, 242, 47, 200, 248, 201, 157,
- 242, 47, 200, 248, 229, 5, 242, 47, 200, 248, 242, 48, 203, 16, 220, 28,
- 200, 248, 242, 48, 203, 16, 207, 101, 200, 248, 201, 102, 242, 48, 203,
- 16, 220, 28, 200, 248, 201, 157, 242, 48, 203, 16, 207, 101, 200, 248,
- 238, 245, 200, 248, 230, 24, 212, 20, 200, 248, 230, 24, 216, 237, 200,
- 248, 230, 24, 250, 39, 200, 248, 251, 151, 77, 200, 248, 1, 251, 31, 200,
- 248, 1, 201, 107, 251, 31, 200, 248, 1, 248, 62, 200, 248, 1, 231, 210,
- 200, 248, 1, 231, 211, 231, 187, 200, 248, 1, 237, 224, 200, 248, 1, 236,
- 113, 237, 225, 207, 74, 200, 248, 1, 229, 255, 200, 248, 1, 194, 119,
- 200, 248, 1, 192, 103, 200, 248, 1, 229, 194, 200, 248, 1, 200, 4, 200,
- 248, 1, 200, 5, 231, 187, 200, 248, 1, 192, 197, 200, 248, 1, 192, 198,
- 229, 255, 200, 248, 1, 222, 109, 200, 248, 1, 220, 93, 200, 248, 1, 216,
- 122, 200, 248, 1, 212, 230, 200, 248, 1, 204, 173, 200, 248, 1, 52, 204,
- 173, 200, 248, 1, 71, 200, 248, 1, 210, 181, 200, 248, 1, 207, 168, 210,
- 181, 200, 248, 1, 206, 83, 200, 248, 1, 208, 226, 200, 248, 1, 207, 74,
- 200, 248, 1, 203, 224, 200, 248, 1, 200, 93, 200, 248, 1, 210, 118, 248,
- 47, 200, 248, 1, 210, 118, 231, 77, 200, 248, 1, 210, 118, 237, 35, 200,
- 248, 209, 52, 58, 200, 248, 209, 52, 63, 200, 248, 209, 52, 235, 110,
- 200, 248, 192, 1, 58, 200, 248, 192, 1, 63, 200, 248, 192, 1, 235, 110,
- 200, 248, 208, 10, 58, 200, 248, 208, 10, 63, 200, 248, 235, 111, 192, 9,
- 229, 4, 200, 248, 235, 111, 192, 9, 250, 200, 200, 248, 230, 4, 58, 200,
- 248, 230, 4, 63, 200, 248, 230, 3, 235, 110, 200, 248, 234, 3, 58, 200,
- 248, 234, 3, 63, 200, 248, 206, 174, 200, 248, 233, 28, 236, 114, 200,
- 248, 208, 136, 200, 248, 206, 204, 200, 248, 103, 84, 236, 112, 58, 200,
- 248, 103, 84, 236, 112, 63, 200, 248, 112, 236, 112, 58, 200, 248, 112,
- 236, 112, 63, 200, 248, 212, 18, 219, 176, 58, 200, 248, 212, 18, 219,
- 176, 63, 200, 248, 215, 184, 200, 248, 248, 185, 200, 248, 1, 202, 194,
- 192, 69, 200, 248, 1, 202, 194, 221, 238, 200, 248, 1, 202, 194, 233, 47,
- 9, 1, 248, 97, 4, 112, 236, 112, 228, 210, 63, 9, 1, 248, 97, 4, 78, 248,
- 84, 26, 112, 236, 112, 58, 9, 1, 248, 97, 4, 112, 236, 112, 209, 188,
- 197, 30, 63, 9, 1, 248, 97, 4, 112, 236, 112, 209, 188, 197, 30, 248, 84,
- 26, 103, 236, 112, 58, 9, 1, 248, 97, 4, 103, 236, 112, 248, 84, 26, 78,
- 58, 9, 1, 248, 97, 4, 223, 121, 2, 196, 237, 63, 9, 1, 248, 97, 4, 2,
- 196, 236, 9, 1, 176, 4, 103, 236, 112, 58, 9, 1, 176, 4, 112, 236, 112,
- 209, 188, 197, 30, 63, 9, 1, 237, 228, 4, 103, 236, 112, 196, 55, 248,
- 84, 26, 2, 200, 151, 9, 1, 237, 228, 4, 223, 121, 2, 196, 237, 63, 9, 1,
- 207, 222, 4, 111, 9, 1, 205, 202, 4, 232, 119, 236, 112, 58, 9, 1, 251,
- 58, 4, 103, 236, 112, 58, 9, 1, 251, 58, 4, 112, 236, 112, 209, 188, 235,
- 92, 58, 9, 1, 251, 58, 4, 103, 236, 112, 196, 55, 58, 9, 1, 233, 35, 4,
- 103, 236, 112, 63, 9, 1, 233, 35, 4, 112, 236, 112, 209, 188, 197, 30,
- 63, 9, 1, 222, 40, 4, 78, 58, 9, 1, 222, 40, 4, 112, 236, 112, 58, 9, 1,
- 222, 40, 4, 112, 236, 112, 209, 188, 197, 30, 63, 9, 1, 91, 4, 78, 58, 9,
- 1, 91, 4, 78, 63, 9, 1, 213, 124, 4, 103, 236, 112, 63, 9, 1, 213, 124,
- 4, 2, 200, 151, 9, 1, 213, 124, 4, 2, 196, 236, 9, 1, 220, 95, 4, 161, 9,
- 1, 207, 222, 4, 103, 236, 112, 196, 55, 58, 9, 1, 207, 222, 4, 230, 67,
- 58, 9, 1, 205, 202, 4, 103, 236, 112, 196, 55, 58, 9, 1, 176, 4, 2, 9, 1,
- 200, 152, 63, 9, 1, 176, 4, 2, 9, 1, 200, 152, 26, 103, 236, 111, 9, 1,
- 205, 202, 4, 2, 9, 1, 200, 152, 26, 103, 236, 111, 9, 1, 207, 222, 4, 2,
- 9, 1, 200, 152, 26, 103, 236, 111, 9, 1, 176, 4, 2, 9, 1, 200, 152, 58,
- 9, 1, 157, 4, 233, 193, 250, 126, 17, 103, 58, 9, 1, 157, 4, 233, 193,
- 250, 126, 17, 112, 58, 9, 1, 233, 62, 97, 4, 233, 193, 250, 126, 17, 103,
- 58, 9, 1, 233, 62, 97, 4, 233, 193, 250, 126, 17, 112, 58, 9, 1, 233, 62,
- 97, 4, 233, 193, 250, 126, 17, 232, 119, 63, 9, 1, 194, 120, 4, 233, 193,
- 250, 126, 17, 103, 58, 9, 1, 194, 120, 4, 233, 193, 250, 126, 17, 112,
- 58, 9, 1, 97, 248, 187, 4, 233, 193, 250, 126, 17, 103, 58, 9, 1, 97,
- 248, 187, 4, 233, 193, 250, 126, 17, 112, 58, 9, 1, 176, 4, 233, 193,
- 250, 126, 17, 232, 119, 63, 9, 1, 205, 202, 4, 233, 193, 250, 126, 17,
- 232, 119, 58, 9, 1, 205, 202, 4, 223, 121, 196, 236, 9, 1, 222, 140, 4,
- 103, 236, 112, 58, 199, 237, 1, 230, 99, 199, 237, 1, 204, 18, 199, 237,
- 1, 213, 122, 199, 237, 1, 208, 68, 199, 237, 1, 249, 1, 199, 237, 1, 219,
- 219, 199, 237, 1, 222, 154, 199, 237, 1, 251, 13, 199, 237, 1, 196, 155,
- 199, 237, 1, 217, 25, 199, 237, 1, 233, 95, 199, 237, 1, 237, 38, 199,
- 237, 1, 199, 239, 199, 237, 1, 220, 181, 199, 237, 1, 231, 229, 199, 237,
- 1, 231, 1, 199, 237, 1, 205, 200, 199, 237, 1, 237, 177, 199, 237, 1,
- 192, 92, 199, 237, 1, 200, 95, 199, 237, 1, 193, 129, 199, 237, 1, 210,
- 195, 199, 237, 1, 223, 46, 199, 237, 1, 242, 248, 199, 237, 1, 198, 82,
- 199, 237, 1, 229, 186, 199, 237, 1, 221, 249, 199, 237, 1, 199, 238, 199,
- 237, 1, 192, 110, 199, 237, 1, 204, 7, 199, 237, 1, 206, 90, 199, 237, 1,
- 237, 254, 199, 237, 1, 155, 199, 237, 1, 192, 8, 199, 237, 1, 251, 54,
- 199, 237, 1, 231, 78, 199, 237, 1, 208, 236, 199, 237, 1, 194, 162, 199,
- 237, 251, 153, 199, 237, 251, 254, 199, 237, 228, 52, 199, 237, 234, 170,
- 199, 237, 197, 112, 199, 237, 211, 193, 199, 237, 234, 180, 199, 237,
- 233, 183, 199, 237, 212, 17, 199, 237, 212, 25, 199, 237, 201, 131, 199,
- 237, 1, 215, 84, 213, 206, 17, 192, 76, 213, 206, 17, 101, 213, 206, 17,
- 104, 213, 206, 17, 133, 213, 206, 17, 134, 213, 206, 17, 151, 213, 206,
- 17, 170, 213, 206, 17, 179, 213, 206, 17, 174, 213, 206, 17, 182, 213,
- 206, 1, 64, 213, 206, 1, 234, 171, 213, 206, 1, 70, 213, 206, 1, 71, 213,
- 206, 1, 68, 213, 206, 1, 211, 194, 213, 206, 1, 74, 213, 206, 1, 237,
- 242, 213, 206, 1, 215, 151, 213, 206, 1, 249, 3, 213, 206, 1, 166, 213,
- 206, 1, 189, 213, 206, 1, 223, 62, 213, 206, 1, 246, 117, 213, 206, 1,
- 238, 0, 213, 206, 1, 167, 213, 206, 1, 207, 3, 213, 206, 1, 188, 213,
- 206, 1, 231, 175, 213, 206, 1, 233, 97, 213, 206, 1, 160, 213, 206, 1,
- 177, 213, 206, 1, 215, 97, 194, 25, 213, 206, 1, 172, 213, 206, 1, 212,
- 201, 213, 206, 1, 181, 213, 206, 1, 144, 213, 206, 1, 194, 169, 213, 206,
- 1, 168, 213, 206, 1, 212, 202, 194, 25, 213, 206, 1, 222, 225, 223, 62,
- 213, 206, 1, 222, 225, 246, 117, 213, 206, 1, 222, 225, 167, 213, 206,
- 38, 203, 195, 139, 199, 18, 213, 206, 38, 203, 195, 132, 199, 18, 213,
- 206, 38, 203, 195, 207, 73, 199, 18, 213, 206, 38, 184, 237, 58, 199, 18,
- 213, 206, 38, 184, 139, 199, 18, 213, 206, 38, 184, 132, 199, 18, 213,
- 206, 38, 184, 207, 73, 199, 18, 213, 206, 38, 215, 48, 77, 213, 206, 38,
- 55, 78, 58, 213, 206, 139, 158, 250, 147, 213, 206, 132, 158, 250, 147,
- 213, 206, 16, 211, 195, 237, 72, 213, 206, 16, 231, 174, 213, 206, 242,
- 38, 213, 206, 233, 204, 77, 213, 206, 220, 153, 213, 206, 237, 203, 213,
- 206, 236, 116, 57, 213, 206, 200, 127, 57, 206, 49, 1, 251, 33, 206, 49,
- 1, 248, 1, 206, 49, 1, 231, 209, 206, 49, 1, 237, 226, 206, 49, 1, 223,
- 73, 206, 49, 1, 249, 1, 206, 49, 1, 192, 79, 206, 49, 1, 223, 82, 206,
- 49, 1, 199, 63, 206, 49, 1, 192, 178, 206, 49, 1, 222, 155, 206, 49, 1,
- 220, 177, 206, 49, 1, 216, 122, 206, 49, 1, 212, 230, 206, 49, 1, 203,
- 75, 206, 49, 1, 223, 190, 206, 49, 1, 233, 11, 206, 49, 1, 198, 116, 206,
- 49, 1, 208, 156, 206, 49, 1, 207, 74, 206, 49, 1, 204, 37, 206, 49, 1,
- 200, 173, 206, 49, 122, 223, 190, 206, 49, 122, 223, 189, 206, 49, 122,
- 212, 12, 206, 49, 122, 237, 240, 206, 49, 73, 1, 234, 37, 192, 178, 206,
- 49, 122, 234, 37, 192, 178, 206, 49, 18, 3, 184, 71, 206, 49, 18, 3, 71,
- 206, 49, 18, 3, 211, 108, 252, 33, 206, 49, 18, 3, 184, 252, 33, 206, 49,
- 18, 3, 252, 33, 206, 49, 18, 3, 211, 108, 64, 206, 49, 18, 3, 184, 64,
- 206, 49, 18, 3, 64, 206, 49, 73, 1, 203, 195, 64, 206, 49, 18, 3, 203,
- 195, 64, 206, 49, 18, 3, 184, 68, 206, 49, 18, 3, 68, 206, 49, 73, 1, 70,
- 206, 49, 18, 3, 184, 70, 206, 49, 18, 3, 70, 206, 49, 18, 3, 74, 206, 49,
- 18, 3, 201, 131, 206, 49, 122, 214, 188, 206, 49, 209, 38, 214, 188, 206,
- 49, 209, 38, 251, 82, 206, 49, 209, 38, 250, 213, 206, 49, 209, 38, 248,
- 163, 206, 49, 209, 38, 250, 18, 206, 49, 209, 38, 203, 212, 206, 49, 251,
- 151, 77, 206, 49, 209, 38, 217, 15, 208, 192, 206, 49, 209, 38, 192, 16,
- 206, 49, 209, 38, 208, 192, 206, 49, 209, 38, 192, 109, 206, 49, 209, 38,
- 198, 5, 206, 49, 209, 38, 250, 97, 206, 49, 209, 38, 202, 199, 217, 108,
- 206, 49, 209, 38, 250, 194, 217, 156, 1, 230, 73, 217, 156, 1, 251, 238,
- 217, 156, 1, 251, 80, 217, 156, 1, 251, 125, 217, 156, 1, 251, 72, 217,
- 156, 1, 197, 1, 217, 156, 1, 249, 228, 217, 156, 1, 223, 82, 217, 156, 1,
- 250, 15, 217, 156, 1, 251, 39, 217, 156, 1, 251, 44, 217, 156, 1, 251,
- 35, 217, 156, 1, 250, 241, 217, 156, 1, 250, 224, 217, 156, 1, 250, 61,
- 217, 156, 1, 223, 190, 217, 156, 1, 250, 163, 217, 156, 1, 250, 28, 217,
- 156, 1, 250, 135, 217, 156, 1, 250, 131, 217, 156, 1, 250, 53, 217, 156,
- 1, 250, 26, 217, 156, 1, 235, 36, 217, 156, 1, 222, 147, 217, 156, 1,
- 251, 57, 217, 156, 251, 86, 77, 217, 156, 195, 250, 77, 217, 156, 231,
- 146, 77, 217, 156, 209, 37, 200, 248, 1, 135, 214, 165, 200, 248, 1, 135,
- 223, 62, 200, 248, 1, 135, 212, 201, 200, 248, 1, 135, 198, 83, 200, 248,
- 1, 135, 213, 178, 200, 248, 1, 135, 213, 160, 200, 248, 1, 135, 248, 54,
- 200, 248, 1, 135, 167, 200, 248, 1, 135, 219, 137, 200, 248, 1, 135, 219,
- 126, 200, 248, 1, 135, 202, 92, 9, 1, 248, 97, 4, 2, 196, 237, 63, 9, 1,
- 248, 97, 4, 230, 67, 58, 9, 1, 223, 38, 4, 103, 236, 112, 58, 9, 1, 200,
- 152, 4, 103, 236, 112, 58, 9, 1, 233, 35, 4, 78, 248, 84, 26, 112, 236,
- 112, 58, 9, 1, 208, 233, 4, 78, 63, 9, 1, 220, 95, 4, 55, 161, 9, 1, 91,
- 4, 112, 236, 112, 58, 9, 1, 97, 4, 103, 236, 112, 248, 84, 26, 230, 67,
- 58, 9, 1, 97, 4, 103, 236, 112, 248, 84, 26, 78, 58, 9, 1, 207, 222, 4,
- 219, 69, 9, 1, 194, 120, 4, 78, 194, 40, 9, 1, 207, 36, 193, 64, 9, 1,
- 132, 251, 26, 9, 1, 237, 228, 4, 112, 236, 112, 63, 9, 1, 206, 87, 4,
- 112, 236, 112, 63, 9, 1, 231, 221, 4, 223, 121, 111, 9, 1, 201, 230, 194,
- 119, 9, 1, 192, 104, 4, 223, 121, 196, 237, 58, 9, 1, 251, 58, 4, 112,
- 236, 112, 63, 9, 1, 222, 140, 4, 78, 63, 9, 1, 248, 97, 4, 2, 91, 58, 9,
- 1, 210, 162, 4, 2, 91, 58, 9, 1, 200, 50, 4, 2, 200, 50, 58, 9, 1, 207,
- 222, 4, 2, 213, 124, 58, 9, 1, 97, 4, 103, 236, 112, 248, 84, 26, 2, 213,
- 124, 58, 9, 1, 251, 83, 233, 34, 9, 1, 251, 83, 208, 232, 9, 1, 251, 83,
- 213, 123, 9, 1, 210, 162, 4, 2, 196, 236, 9, 1, 200, 50, 4, 2, 196, 236,
- 9, 1, 198, 76, 4, 2, 196, 236, 9, 1, 200, 84, 4, 2, 196, 236, 9, 1, 222,
- 40, 4, 2, 196, 236, 9, 1, 231, 80, 4, 112, 236, 112, 58, 9, 1, 251, 83,
- 208, 233, 4, 112, 236, 112, 58, 9, 1, 223, 38, 4, 112, 236, 112, 58, 9,
- 1, 223, 38, 4, 112, 236, 112, 63, 9, 1, 220, 95, 4, 2, 9, 1, 200, 152,
- 58, 9, 2, 132, 194, 119, 9, 2, 139, 194, 11, 250, 128, 9, 2, 139, 206,
- 86, 9, 2, 139, 251, 57, 9, 2, 139, 208, 232, 9, 2, 139, 213, 124, 4, 222,
- 86, 9, 2, 132, 213, 124, 4, 222, 86, 9, 2, 139, 194, 11, 250, 25, 9, 2,
- 139, 194, 11, 250, 60, 9, 2, 139, 194, 11, 250, 223, 9, 2, 139, 194, 11,
- 206, 65, 9, 2, 139, 194, 11, 208, 196, 9, 2, 139, 194, 11, 194, 142, 9,
- 2, 139, 232, 147, 217, 122, 9, 2, 139, 3, 206, 81, 9, 236, 190, 234, 80,
- 80, 249, 235, 9, 163, 237, 216, 63, 9, 238, 138, 233, 58, 9, 238, 138,
- 237, 215, 9, 238, 138, 222, 86, 9, 238, 138, 233, 56, 9, 238, 138, 237,
- 213, 9, 238, 138, 222, 84, 9, 158, 90, 78, 58, 9, 158, 103, 236, 112, 58,
- 9, 158, 219, 70, 58, 9, 158, 90, 78, 63, 9, 158, 103, 236, 112, 63, 9,
- 158, 219, 70, 63, 9, 211, 184, 233, 56, 9, 211, 184, 237, 213, 9, 211,
- 184, 222, 84, 9, 2, 139, 194, 119, 9, 233, 59, 4, 207, 81, 9, 233, 59, 4,
- 78, 58, 9, 222, 87, 4, 78, 63, 9, 46, 250, 78, 58, 9, 51, 250, 78, 58, 9,
- 46, 250, 78, 63, 9, 51, 250, 78, 63, 9, 55, 51, 250, 78, 58, 9, 55, 51,
- 250, 78, 95, 4, 236, 114, 9, 51, 250, 78, 95, 4, 236, 114, 9, 237, 216,
- 4, 236, 114, 9, 122, 203, 109, 213, 124, 231, 50, 107, 3, 223, 121, 246,
- 234, 107, 3, 246, 234, 107, 3, 250, 168, 107, 3, 196, 6, 107, 1, 203,
- 195, 64, 107, 1, 64, 107, 1, 252, 33, 107, 1, 70, 107, 1, 223, 224, 107,
- 1, 68, 107, 1, 196, 251, 107, 1, 118, 150, 107, 1, 118, 165, 107, 1, 246,
- 237, 71, 107, 1, 203, 195, 71, 107, 1, 71, 107, 1, 251, 63, 107, 1, 246,
- 237, 74, 107, 1, 203, 195, 74, 107, 1, 74, 107, 1, 250, 8, 107, 1, 160,
- 107, 1, 221, 250, 107, 1, 231, 233, 107, 1, 231, 84, 107, 1, 214, 165,
- 107, 1, 247, 19, 107, 1, 246, 117, 107, 1, 223, 62, 107, 1, 223, 28, 107,
- 1, 212, 201, 107, 1, 198, 83, 107, 1, 198, 71, 107, 1, 237, 161, 107, 1,
- 237, 145, 107, 1, 213, 178, 107, 1, 189, 107, 1, 199, 240, 107, 1, 238,
- 0, 107, 1, 237, 40, 107, 1, 181, 107, 1, 213, 160, 107, 1, 166, 107, 1,
- 210, 94, 107, 1, 249, 3, 107, 1, 248, 54, 107, 1, 172, 107, 1, 168, 107,
- 1, 167, 107, 1, 207, 3, 107, 1, 177, 107, 1, 219, 137, 107, 1, 219, 126,
- 107, 1, 196, 157, 107, 1, 204, 64, 107, 1, 202, 92, 107, 1, 188, 107, 1,
- 144, 107, 18, 3, 212, 0, 107, 18, 3, 211, 192, 107, 3, 212, 241, 107, 3,
- 249, 246, 107, 18, 3, 252, 33, 107, 18, 3, 70, 107, 18, 3, 223, 224, 107,
- 18, 3, 68, 107, 18, 3, 196, 251, 107, 18, 3, 118, 150, 107, 18, 3, 118,
- 207, 4, 107, 18, 3, 246, 237, 71, 107, 18, 3, 203, 195, 71, 107, 18, 3,
- 71, 107, 18, 3, 251, 63, 107, 18, 3, 246, 237, 74, 107, 18, 3, 203, 195,
- 74, 107, 18, 3, 74, 107, 18, 3, 250, 8, 107, 3, 196, 11, 107, 18, 3, 209,
- 91, 71, 107, 18, 3, 249, 241, 107, 211, 219, 107, 201, 218, 3, 197, 106,
- 107, 201, 218, 3, 250, 170, 107, 230, 211, 251, 143, 107, 251, 130, 251,
- 143, 107, 18, 3, 246, 237, 184, 71, 107, 18, 3, 197, 104, 107, 18, 3,
- 196, 250, 107, 1, 208, 239, 107, 1, 221, 230, 107, 1, 231, 59, 107, 1,
- 192, 112, 107, 1, 237, 150, 107, 1, 207, 156, 107, 1, 233, 97, 107, 1,
- 192, 164, 107, 1, 118, 207, 4, 107, 1, 118, 219, 138, 107, 18, 3, 118,
- 165, 107, 18, 3, 118, 219, 138, 107, 237, 208, 107, 55, 237, 208, 107,
- 17, 192, 76, 107, 17, 101, 107, 17, 104, 107, 17, 133, 107, 17, 134, 107,
- 17, 151, 107, 17, 170, 107, 17, 179, 107, 17, 174, 107, 17, 182, 107,
- 251, 151, 57, 107, 3, 139, 202, 159, 236, 114, 107, 1, 246, 237, 64, 107,
- 1, 212, 0, 107, 1, 211, 192, 107, 1, 249, 241, 107, 1, 197, 104, 107, 1,
- 196, 250, 107, 1, 217, 114, 237, 161, 107, 1, 192, 71, 107, 1, 87, 168,
- 107, 1, 231, 120, 107, 1, 223, 6, 107, 1, 231, 6, 201, 238, 107, 1, 237,
- 151, 107, 1, 248, 159, 248, 76, 250, 197, 248, 76, 3, 246, 234, 248, 76,
- 3, 250, 168, 248, 76, 3, 196, 6, 248, 76, 1, 64, 248, 76, 1, 252, 33,
- 248, 76, 1, 70, 248, 76, 1, 223, 224, 248, 76, 1, 68, 248, 76, 1, 196,
- 251, 248, 76, 1, 118, 150, 248, 76, 1, 118, 165, 248, 76, 1, 71, 248, 76,
- 1, 251, 63, 248, 76, 1, 74, 248, 76, 1, 250, 8, 248, 76, 1, 160, 248, 76,
- 1, 221, 250, 248, 76, 1, 231, 233, 248, 76, 1, 231, 84, 248, 76, 1, 214,
- 165, 248, 76, 1, 247, 19, 248, 76, 1, 246, 117, 248, 76, 1, 223, 62, 248,
- 76, 1, 223, 28, 248, 76, 1, 212, 201, 248, 76, 1, 198, 83, 248, 76, 1,
- 198, 71, 248, 76, 1, 237, 161, 248, 76, 1, 237, 145, 248, 76, 1, 213,
- 178, 248, 76, 1, 189, 248, 76, 1, 199, 240, 248, 76, 1, 238, 0, 248, 76,
- 1, 237, 40, 248, 76, 1, 181, 248, 76, 1, 166, 248, 76, 1, 210, 94, 248,
- 76, 1, 249, 3, 248, 76, 1, 248, 54, 248, 76, 1, 172, 248, 76, 1, 168,
- 248, 76, 1, 167, 248, 76, 1, 177, 248, 76, 1, 204, 64, 248, 76, 1, 202,
- 92, 248, 76, 1, 188, 248, 76, 1, 144, 248, 76, 3, 212, 241, 248, 76, 3,
- 249, 246, 248, 76, 18, 3, 252, 33, 248, 76, 18, 3, 70, 248, 76, 18, 3,
- 223, 224, 248, 76, 18, 3, 68, 248, 76, 18, 3, 196, 251, 248, 76, 18, 3,
- 118, 150, 248, 76, 18, 3, 118, 207, 4, 248, 76, 18, 3, 71, 248, 76, 18,
- 3, 251, 63, 248, 76, 18, 3, 74, 248, 76, 18, 3, 250, 8, 248, 76, 3, 196,
- 11, 248, 76, 1, 221, 240, 189, 248, 76, 250, 9, 220, 2, 77, 248, 76, 1,
- 207, 3, 248, 76, 1, 207, 156, 248, 76, 1, 192, 164, 248, 76, 1, 118, 207,
- 4, 248, 76, 1, 118, 219, 138, 248, 76, 18, 3, 118, 165, 248, 76, 18, 3,
- 118, 219, 138, 248, 76, 17, 192, 76, 248, 76, 17, 101, 248, 76, 17, 104,
- 248, 76, 17, 133, 248, 76, 17, 134, 248, 76, 17, 151, 248, 76, 17, 170,
- 248, 76, 17, 179, 248, 76, 17, 174, 248, 76, 17, 182, 248, 76, 1, 208,
- 76, 4, 85, 237, 10, 248, 76, 1, 208, 76, 4, 106, 237, 10, 248, 76, 206,
- 186, 77, 248, 76, 206, 186, 57, 248, 76, 238, 137, 212, 233, 101, 248,
- 76, 238, 137, 212, 233, 104, 248, 76, 238, 137, 212, 233, 133, 248, 76,
- 238, 137, 212, 233, 134, 248, 76, 238, 137, 212, 233, 90, 219, 241, 199,
- 230, 199, 225, 237, 70, 248, 76, 238, 137, 237, 71, 203, 35, 248, 76,
- 223, 83, 248, 76, 231, 200, 77, 248, 76, 1, 196, 120, 250, 168, 248, 76,
- 251, 151, 57, 248, 76, 206, 36, 77, 230, 152, 3, 251, 124, 248, 20, 230,
- 152, 3, 248, 20, 230, 152, 3, 196, 6, 230, 152, 1, 64, 230, 152, 1, 252,
- 33, 230, 152, 1, 70, 230, 152, 1, 223, 224, 230, 152, 1, 68, 230, 152, 1,
- 196, 251, 230, 152, 1, 234, 171, 230, 152, 1, 251, 63, 230, 152, 1, 211,
- 194, 230, 152, 1, 250, 8, 230, 152, 1, 160, 230, 152, 1, 221, 250, 230,
- 152, 1, 231, 233, 230, 152, 1, 231, 84, 230, 152, 1, 214, 165, 230, 152,
- 1, 247, 19, 230, 152, 1, 246, 117, 230, 152, 1, 223, 62, 230, 152, 1,
- 223, 28, 230, 152, 1, 212, 201, 230, 152, 1, 198, 83, 230, 152, 1, 198,
- 71, 230, 152, 1, 237, 161, 230, 152, 1, 237, 145, 230, 152, 1, 213, 178,
- 230, 152, 1, 189, 230, 152, 1, 199, 240, 230, 152, 1, 238, 0, 230, 152,
- 1, 237, 40, 230, 152, 1, 181, 230, 152, 1, 166, 230, 152, 1, 210, 94,
- 230, 152, 1, 249, 3, 230, 152, 1, 248, 54, 230, 152, 1, 172, 230, 152, 1,
- 168, 230, 152, 1, 167, 230, 152, 1, 177, 230, 152, 1, 219, 137, 230, 152,
- 1, 196, 157, 230, 152, 1, 204, 64, 230, 152, 1, 188, 230, 152, 1, 144,
- 230, 152, 3, 212, 241, 230, 152, 18, 3, 252, 33, 230, 152, 18, 3, 70,
- 230, 152, 18, 3, 223, 224, 230, 152, 18, 3, 68, 230, 152, 18, 3, 196,
- 251, 230, 152, 18, 3, 234, 171, 230, 152, 18, 3, 251, 63, 230, 152, 18,
- 3, 211, 194, 230, 152, 18, 3, 250, 8, 230, 152, 3, 196, 11, 230, 152, 3,
- 197, 108, 230, 152, 1, 221, 230, 230, 152, 1, 231, 59, 230, 152, 1, 192,
- 112, 230, 152, 1, 207, 3, 230, 152, 1, 233, 97, 230, 152, 17, 192, 76,
- 230, 152, 17, 101, 230, 152, 17, 104, 230, 152, 17, 133, 230, 152, 17,
- 134, 230, 152, 17, 151, 230, 152, 17, 170, 230, 152, 17, 179, 230, 152,
- 17, 174, 230, 152, 17, 182, 230, 152, 199, 71, 230, 152, 251, 123, 230,
- 152, 223, 103, 230, 152, 197, 23, 230, 152, 234, 132, 211, 199, 230, 152,
- 3, 193, 104, 230, 152, 251, 151, 57, 230, 168, 3, 246, 234, 230, 168, 3,
- 250, 168, 230, 168, 3, 196, 6, 230, 168, 1, 64, 230, 168, 1, 252, 33,
- 230, 168, 1, 70, 230, 168, 1, 223, 224, 230, 168, 1, 68, 230, 168, 1,
- 196, 251, 230, 168, 1, 118, 150, 230, 168, 1, 118, 165, 230, 168, 18,
- 246, 237, 71, 230, 168, 1, 71, 230, 168, 1, 251, 63, 230, 168, 18, 246,
- 237, 74, 230, 168, 1, 74, 230, 168, 1, 250, 8, 230, 168, 1, 160, 230,
- 168, 1, 221, 250, 230, 168, 1, 231, 233, 230, 168, 1, 231, 84, 230, 168,
- 1, 214, 165, 230, 168, 1, 247, 19, 230, 168, 1, 246, 117, 230, 168, 1,
- 223, 62, 230, 168, 1, 223, 28, 230, 168, 1, 212, 201, 230, 168, 1, 198,
- 83, 230, 168, 1, 198, 71, 230, 168, 1, 237, 161, 230, 168, 1, 237, 145,
- 230, 168, 1, 213, 178, 230, 168, 1, 189, 230, 168, 1, 199, 240, 230, 168,
- 1, 238, 0, 230, 168, 1, 237, 40, 230, 168, 1, 181, 230, 168, 1, 166, 230,
- 168, 1, 210, 94, 230, 168, 1, 249, 3, 230, 168, 1, 248, 54, 230, 168, 1,
- 172, 230, 168, 1, 168, 230, 168, 1, 167, 230, 168, 1, 177, 230, 168, 1,
- 219, 137, 230, 168, 1, 196, 157, 230, 168, 1, 204, 64, 230, 168, 1, 202,
- 92, 230, 168, 1, 188, 230, 168, 1, 144, 230, 168, 3, 212, 241, 230, 168,
- 3, 249, 246, 230, 168, 18, 3, 252, 33, 230, 168, 18, 3, 70, 230, 168, 18,
- 3, 223, 224, 230, 168, 18, 3, 68, 230, 168, 18, 3, 196, 251, 230, 168,
- 18, 3, 118, 150, 230, 168, 18, 3, 118, 207, 4, 230, 168, 18, 3, 246, 237,
- 71, 230, 168, 18, 3, 71, 230, 168, 18, 3, 251, 63, 230, 168, 18, 3, 246,
- 237, 74, 230, 168, 18, 3, 74, 230, 168, 18, 3, 250, 8, 230, 168, 3, 196,
- 11, 230, 168, 211, 219, 230, 168, 1, 118, 207, 4, 230, 168, 1, 118, 219,
- 138, 230, 168, 18, 3, 118, 165, 230, 168, 18, 3, 118, 219, 138, 230, 168,
- 17, 192, 76, 230, 168, 17, 101, 230, 168, 17, 104, 230, 168, 17, 133,
- 230, 168, 17, 134, 230, 168, 17, 151, 230, 168, 17, 170, 230, 168, 17,
- 179, 230, 168, 17, 174, 230, 168, 17, 182, 230, 168, 251, 151, 57, 230,
- 168, 206, 186, 57, 230, 168, 1, 192, 71, 230, 168, 3, 201, 131, 230, 168,
- 3, 204, 54, 230, 168, 3, 217, 207, 230, 168, 3, 199, 159, 212, 242, 58,
- 230, 168, 3, 242, 131, 212, 242, 58, 230, 168, 3, 197, 222, 212, 242, 58,
- 211, 153, 3, 246, 234, 211, 153, 3, 250, 168, 211, 153, 3, 196, 6, 211,
- 153, 1, 64, 211, 153, 1, 252, 33, 211, 153, 1, 70, 211, 153, 1, 223, 224,
- 211, 153, 1, 68, 211, 153, 1, 196, 251, 211, 153, 1, 118, 150, 211, 153,
- 1, 118, 165, 211, 153, 1, 71, 211, 153, 1, 251, 63, 211, 153, 1, 74, 211,
- 153, 1, 250, 8, 211, 153, 1, 160, 211, 153, 1, 221, 250, 211, 153, 1,
- 231, 233, 211, 153, 1, 231, 84, 211, 153, 1, 214, 165, 211, 153, 1, 247,
- 19, 211, 153, 1, 246, 117, 211, 153, 1, 223, 62, 211, 153, 1, 223, 28,
- 211, 153, 1, 212, 201, 211, 153, 1, 198, 83, 211, 153, 1, 198, 71, 211,
- 153, 1, 237, 161, 211, 153, 1, 237, 145, 211, 153, 1, 213, 178, 211, 153,
- 1, 189, 211, 153, 1, 199, 240, 211, 153, 1, 238, 0, 211, 153, 1, 237, 40,
- 211, 153, 1, 181, 211, 153, 1, 166, 211, 153, 1, 210, 94, 211, 153, 1,
- 249, 3, 211, 153, 1, 248, 54, 211, 153, 1, 172, 211, 153, 1, 168, 211,
- 153, 1, 167, 211, 153, 1, 177, 211, 153, 1, 219, 137, 211, 153, 1, 196,
- 157, 211, 153, 1, 204, 64, 211, 153, 1, 202, 92, 211, 153, 1, 188, 211,
- 153, 1, 144, 211, 153, 3, 212, 241, 211, 153, 3, 249, 246, 211, 153, 18,
- 3, 252, 33, 211, 153, 18, 3, 70, 211, 153, 18, 3, 223, 224, 211, 153, 18,
- 3, 68, 211, 153, 18, 3, 196, 251, 211, 153, 18, 3, 118, 150, 211, 153,
- 18, 3, 118, 207, 4, 211, 153, 18, 3, 71, 211, 153, 18, 3, 251, 63, 211,
- 153, 18, 3, 74, 211, 153, 18, 3, 250, 8, 211, 153, 3, 196, 11, 211, 153,
- 3, 211, 109, 211, 153, 251, 64, 220, 2, 77, 211, 153, 250, 9, 220, 2, 77,
- 211, 153, 1, 207, 3, 211, 153, 1, 207, 156, 211, 153, 1, 192, 164, 211,
- 153, 1, 118, 207, 4, 211, 153, 1, 118, 219, 138, 211, 153, 18, 3, 118,
- 165, 211, 153, 18, 3, 118, 219, 138, 211, 153, 17, 192, 76, 211, 153, 17,
- 101, 211, 153, 17, 104, 211, 153, 17, 133, 211, 153, 17, 134, 211, 153,
- 17, 151, 211, 153, 17, 170, 211, 153, 17, 179, 211, 153, 17, 174, 211,
- 153, 17, 182, 211, 153, 223, 83, 211, 153, 1, 194, 169, 211, 153, 232,
- 109, 90, 208, 167, 211, 153, 232, 109, 90, 230, 78, 211, 153, 232, 109,
- 112, 208, 165, 211, 153, 232, 109, 90, 203, 33, 211, 153, 232, 109, 90,
- 234, 143, 211, 153, 232, 109, 112, 203, 30, 44, 3, 250, 168, 44, 3, 196,
- 6, 44, 1, 64, 44, 1, 252, 33, 44, 1, 70, 44, 1, 223, 224, 44, 1, 68, 44,
- 1, 196, 251, 44, 1, 71, 44, 1, 234, 171, 44, 1, 251, 63, 44, 1, 74, 44,
- 1, 211, 194, 44, 1, 250, 8, 44, 1, 160, 44, 1, 214, 165, 44, 1, 247, 19,
- 44, 1, 223, 62, 44, 1, 212, 201, 44, 1, 198, 83, 44, 1, 213, 178, 44, 1,
- 189, 44, 1, 181, 44, 1, 213, 160, 44, 1, 166, 44, 1, 172, 44, 1, 168, 44,
- 1, 167, 44, 1, 207, 3, 44, 1, 177, 44, 1, 219, 137, 44, 1, 219, 126, 44,
- 1, 196, 157, 44, 1, 204, 64, 44, 1, 202, 92, 44, 1, 188, 44, 1, 144, 44,
- 18, 3, 252, 33, 44, 18, 3, 70, 44, 18, 3, 223, 224, 44, 18, 3, 68, 44,
- 18, 3, 196, 251, 44, 18, 3, 71, 44, 18, 3, 234, 171, 44, 18, 3, 251, 63,
- 44, 18, 3, 74, 44, 18, 3, 211, 194, 44, 18, 3, 250, 8, 44, 3, 196, 11,
- 44, 211, 219, 44, 250, 9, 220, 2, 77, 44, 17, 192, 76, 44, 17, 101, 44,
- 17, 104, 44, 17, 133, 44, 17, 134, 44, 17, 151, 44, 17, 170, 44, 17, 179,
- 44, 17, 174, 44, 17, 182, 44, 31, 200, 30, 44, 31, 90, 228, 162, 44, 31,
- 90, 180, 44, 237, 174, 57, 44, 216, 38, 57, 44, 193, 67, 57, 44, 237,
- 112, 57, 44, 238, 196, 57, 44, 250, 62, 95, 57, 44, 206, 186, 57, 44, 31,
- 57, 200, 34, 3, 38, 246, 235, 58, 200, 34, 3, 246, 234, 200, 34, 3, 250,
- 168, 200, 34, 3, 196, 6, 200, 34, 3, 38, 250, 169, 58, 200, 34, 1, 64,
- 200, 34, 1, 252, 33, 200, 34, 1, 70, 200, 34, 1, 223, 224, 200, 34, 1,
- 68, 200, 34, 1, 196, 251, 200, 34, 1, 118, 150, 200, 34, 1, 118, 165,
- 200, 34, 1, 71, 200, 34, 1, 234, 171, 200, 34, 1, 251, 63, 200, 34, 1,
- 74, 200, 34, 1, 211, 194, 200, 34, 1, 250, 8, 200, 34, 1, 160, 200, 34,
- 1, 221, 250, 200, 34, 1, 231, 233, 200, 34, 1, 231, 84, 200, 34, 1, 214,
- 165, 200, 34, 1, 247, 19, 200, 34, 1, 246, 117, 200, 34, 1, 223, 62, 200,
- 34, 1, 223, 28, 200, 34, 1, 212, 201, 200, 34, 1, 198, 83, 200, 34, 1,
- 198, 71, 200, 34, 1, 237, 161, 200, 34, 1, 237, 145, 200, 34, 1, 213,
- 178, 200, 34, 1, 189, 200, 34, 1, 199, 240, 200, 34, 1, 238, 0, 200, 34,
- 1, 237, 40, 200, 34, 1, 181, 200, 34, 1, 166, 200, 34, 1, 210, 94, 200,
- 34, 1, 249, 3, 200, 34, 1, 248, 54, 200, 34, 1, 172, 200, 34, 1, 168,
- 200, 34, 1, 167, 200, 34, 1, 207, 3, 200, 34, 1, 177, 200, 34, 1, 219,
- 137, 200, 34, 1, 219, 126, 200, 34, 1, 196, 157, 200, 34, 1, 204, 64,
- 200, 34, 1, 202, 92, 200, 34, 1, 188, 200, 34, 1, 144, 200, 34, 3, 249,
- 246, 200, 34, 18, 3, 252, 33, 200, 34, 18, 3, 70, 200, 34, 18, 3, 223,
- 224, 200, 34, 18, 3, 68, 200, 34, 18, 3, 196, 251, 200, 34, 18, 3, 118,
- 150, 200, 34, 18, 3, 118, 207, 4, 200, 34, 18, 3, 71, 200, 34, 18, 3,
- 234, 171, 200, 34, 18, 3, 251, 63, 200, 34, 18, 3, 74, 200, 34, 18, 3,
- 211, 194, 200, 34, 18, 3, 250, 8, 200, 34, 3, 196, 11, 200, 34, 220, 2,
- 77, 200, 34, 251, 64, 220, 2, 77, 200, 34, 1, 198, 118, 200, 34, 1, 235,
- 17, 200, 34, 1, 206, 240, 200, 34, 1, 118, 207, 4, 200, 34, 1, 118, 219,
- 138, 200, 34, 18, 3, 118, 165, 200, 34, 18, 3, 118, 219, 138, 200, 34,
- 17, 192, 76, 200, 34, 17, 101, 200, 34, 17, 104, 200, 34, 17, 133, 200,
- 34, 17, 134, 200, 34, 17, 151, 200, 34, 17, 170, 200, 34, 17, 179, 200,
- 34, 17, 174, 200, 34, 17, 182, 200, 34, 3, 203, 113, 200, 34, 232, 109,
- 17, 192, 77, 39, 212, 4, 209, 137, 80, 134, 200, 34, 232, 109, 17, 90,
- 39, 212, 4, 209, 137, 80, 134, 200, 34, 232, 109, 17, 103, 39, 212, 4,
- 209, 137, 80, 134, 200, 34, 232, 109, 17, 112, 39, 212, 4, 209, 137, 80,
- 134, 200, 34, 232, 109, 17, 90, 39, 233, 217, 209, 137, 80, 134, 200, 34,
- 232, 109, 17, 103, 39, 233, 217, 209, 137, 80, 134, 200, 34, 232, 109,
- 17, 112, 39, 233, 217, 209, 137, 80, 134, 200, 34, 3, 197, 255, 222, 115,
- 3, 202, 159, 246, 234, 222, 115, 3, 246, 234, 222, 115, 3, 250, 168, 222,
- 115, 3, 196, 6, 222, 115, 3, 203, 113, 222, 115, 1, 64, 222, 115, 1, 252,
- 33, 222, 115, 1, 70, 222, 115, 1, 223, 224, 222, 115, 1, 68, 222, 115, 1,
- 196, 251, 222, 115, 1, 118, 150, 222, 115, 1, 118, 165, 222, 115, 1, 71,
- 222, 115, 1, 234, 171, 222, 115, 1, 251, 63, 222, 115, 1, 74, 222, 115,
- 1, 211, 194, 222, 115, 1, 250, 8, 222, 115, 1, 160, 222, 115, 1, 221,
- 250, 222, 115, 1, 231, 233, 222, 115, 1, 231, 84, 222, 115, 1, 214, 165,
- 222, 115, 1, 247, 19, 222, 115, 1, 246, 117, 222, 115, 1, 223, 62, 222,
- 115, 1, 223, 28, 222, 115, 1, 212, 201, 222, 115, 1, 198, 83, 222, 115,
- 1, 198, 71, 222, 115, 1, 237, 161, 222, 115, 1, 237, 145, 222, 115, 1,
- 213, 178, 222, 115, 1, 189, 222, 115, 1, 199, 240, 222, 115, 1, 238, 0,
- 222, 115, 1, 237, 40, 222, 115, 1, 181, 222, 115, 1, 166, 222, 115, 1,
- 210, 94, 222, 115, 1, 249, 3, 222, 115, 1, 248, 54, 222, 115, 1, 172,
- 222, 115, 1, 168, 222, 115, 1, 167, 222, 115, 1, 207, 3, 222, 115, 1,
- 177, 222, 115, 1, 219, 137, 222, 115, 1, 196, 157, 222, 115, 1, 204, 64,
- 222, 115, 1, 202, 92, 222, 115, 1, 188, 222, 115, 1, 144, 222, 115, 3,
- 212, 241, 222, 115, 3, 249, 246, 222, 115, 18, 3, 252, 33, 222, 115, 18,
- 3, 70, 222, 115, 18, 3, 223, 224, 222, 115, 18, 3, 68, 222, 115, 18, 3,
- 196, 251, 222, 115, 18, 3, 118, 150, 222, 115, 18, 3, 118, 207, 4, 222,
- 115, 18, 3, 71, 222, 115, 18, 3, 234, 171, 222, 115, 18, 3, 251, 63, 222,
- 115, 18, 3, 74, 222, 115, 18, 3, 211, 194, 222, 115, 18, 3, 250, 8, 222,
- 115, 3, 196, 11, 222, 115, 220, 2, 77, 222, 115, 251, 64, 220, 2, 77,
- 222, 115, 1, 233, 97, 222, 115, 1, 118, 207, 4, 222, 115, 1, 118, 219,
- 138, 222, 115, 18, 3, 118, 165, 222, 115, 18, 3, 118, 219, 138, 222, 115,
- 17, 192, 76, 222, 115, 17, 101, 222, 115, 17, 104, 222, 115, 17, 133,
- 222, 115, 17, 134, 222, 115, 17, 151, 222, 115, 17, 170, 222, 115, 17,
- 179, 222, 115, 17, 174, 222, 115, 17, 182, 222, 115, 3, 223, 13, 222,
- 115, 3, 197, 39, 135, 3, 38, 250, 169, 58, 135, 3, 246, 234, 135, 3, 250,
- 168, 135, 3, 196, 6, 135, 1, 196, 120, 250, 168, 135, 1, 64, 135, 1, 252,
- 33, 135, 1, 70, 135, 1, 223, 224, 135, 1, 68, 135, 1, 196, 251, 135, 1,
- 118, 150, 135, 1, 118, 165, 135, 1, 71, 135, 1, 234, 171, 135, 1, 251,
- 63, 135, 1, 74, 135, 1, 211, 194, 135, 1, 250, 8, 135, 1, 160, 135, 1,
- 221, 250, 135, 1, 231, 233, 135, 1, 231, 84, 135, 1, 214, 165, 135, 1,
- 247, 19, 135, 1, 246, 117, 135, 1, 223, 62, 135, 1, 223, 28, 135, 1, 212,
- 201, 135, 1, 198, 83, 135, 1, 198, 71, 135, 1, 237, 161, 135, 1, 237,
- 145, 135, 1, 213, 178, 135, 1, 189, 135, 1, 199, 240, 135, 1, 238, 0,
- 135, 1, 237, 40, 135, 1, 181, 135, 1, 213, 160, 135, 1, 166, 135, 1, 210,
- 94, 135, 1, 249, 3, 135, 1, 248, 54, 135, 1, 172, 135, 1, 168, 135, 1,
- 167, 135, 1, 207, 3, 135, 1, 177, 135, 1, 219, 137, 135, 1, 219, 126,
- 135, 1, 196, 157, 135, 1, 204, 64, 135, 1, 202, 92, 135, 1, 188, 135, 1,
- 144, 135, 1, 198, 52, 135, 3, 84, 248, 194, 196, 11, 135, 3, 242, 124,
- 196, 11, 135, 3, 249, 246, 135, 18, 3, 252, 33, 135, 18, 3, 70, 135, 18,
- 3, 223, 224, 135, 18, 3, 68, 135, 18, 3, 196, 251, 135, 18, 3, 118, 150,
- 135, 18, 3, 118, 207, 4, 135, 18, 3, 71, 135, 18, 3, 234, 171, 135, 18,
- 3, 251, 63, 135, 18, 3, 74, 135, 18, 3, 211, 194, 135, 18, 3, 250, 8,
- 135, 3, 196, 11, 135, 1, 78, 207, 195, 135, 3, 210, 246, 135, 1, 242,
- 204, 218, 236, 135, 1, 242, 204, 193, 148, 135, 1, 242, 204, 219, 127,
- 135, 250, 9, 220, 2, 77, 135, 232, 109, 90, 211, 207, 135, 232, 109, 90,
- 232, 129, 135, 232, 109, 112, 234, 139, 135, 232, 109, 90, 197, 242, 135,
- 232, 109, 90, 200, 21, 135, 232, 109, 112, 197, 241, 135, 232, 109, 90,
- 233, 6, 135, 1, 250, 112, 223, 224, 135, 1, 118, 207, 4, 135, 1, 118,
- 219, 138, 135, 18, 3, 118, 165, 135, 18, 3, 118, 219, 138, 135, 17, 192,
- 76, 135, 17, 101, 135, 17, 104, 135, 17, 133, 135, 17, 134, 135, 17, 151,
- 135, 17, 170, 135, 17, 179, 135, 17, 174, 135, 17, 182, 135, 31, 200, 30,
- 135, 31, 90, 228, 162, 135, 31, 90, 180, 135, 232, 109, 90, 208, 167,
- 135, 232, 109, 90, 230, 78, 135, 232, 109, 112, 208, 165, 135, 232, 109,
- 90, 203, 33, 135, 232, 109, 90, 234, 143, 135, 232, 109, 112, 203, 30,
- 135, 237, 179, 77, 135, 1, 242, 204, 213, 179, 135, 1, 242, 204, 215,
- 151, 135, 1, 242, 204, 207, 4, 135, 1, 242, 204, 165, 135, 1, 242, 204,
- 219, 138, 135, 1, 242, 204, 222, 184, 159, 3, 246, 234, 159, 3, 250, 167,
- 159, 3, 196, 5, 159, 1, 249, 234, 159, 1, 251, 242, 159, 1, 251, 88, 159,
- 1, 251, 103, 159, 1, 223, 72, 159, 1, 223, 223, 159, 1, 196, 242, 159, 1,
- 196, 245, 159, 1, 223, 98, 159, 1, 223, 99, 159, 1, 223, 209, 159, 1,
- 223, 211, 159, 1, 233, 184, 159, 1, 234, 166, 159, 1, 251, 46, 159, 1,
- 211, 97, 159, 1, 211, 187, 159, 1, 249, 249, 159, 1, 250, 255, 222, 62,
- 159, 1, 217, 187, 222, 62, 159, 1, 250, 255, 231, 178, 159, 1, 217, 187,
- 231, 178, 159, 1, 222, 114, 215, 81, 159, 1, 206, 30, 231, 178, 159, 1,
- 250, 255, 246, 184, 159, 1, 217, 187, 246, 184, 159, 1, 250, 255, 223,
- 44, 159, 1, 217, 187, 223, 44, 159, 1, 200, 171, 215, 81, 159, 1, 200,
- 171, 206, 29, 215, 82, 159, 1, 206, 30, 223, 44, 159, 1, 250, 255, 198,
- 79, 159, 1, 217, 187, 198, 79, 159, 1, 250, 255, 237, 152, 159, 1, 217,
- 187, 237, 152, 159, 1, 215, 180, 215, 34, 159, 1, 206, 30, 237, 152, 159,
- 1, 250, 255, 200, 87, 159, 1, 217, 187, 200, 87, 159, 1, 250, 255, 237,
- 172, 159, 1, 217, 187, 237, 172, 159, 1, 237, 204, 215, 34, 159, 1, 206,
- 30, 237, 172, 159, 1, 250, 255, 210, 189, 159, 1, 217, 187, 210, 189,
- 159, 1, 250, 255, 248, 161, 159, 1, 217, 187, 248, 161, 159, 1, 217, 90,
- 159, 1, 250, 235, 248, 161, 159, 1, 193, 74, 159, 1, 208, 14, 159, 1,
- 237, 204, 220, 51, 159, 1, 196, 125, 159, 1, 200, 171, 206, 0, 159, 1,
- 215, 180, 206, 0, 159, 1, 237, 204, 206, 0, 159, 1, 230, 5, 159, 1, 215,
- 180, 220, 51, 159, 1, 233, 49, 159, 3, 251, 34, 159, 18, 3, 251, 98, 159,
- 18, 3, 222, 19, 251, 105, 159, 18, 3, 236, 239, 251, 105, 159, 18, 3,
- 222, 19, 223, 95, 159, 18, 3, 236, 239, 223, 95, 159, 18, 3, 222, 19,
- 211, 76, 159, 18, 3, 236, 239, 211, 76, 159, 18, 3, 231, 222, 159, 18, 3,
- 221, 93, 159, 18, 3, 236, 239, 221, 93, 159, 18, 3, 221, 95, 237, 90,
- 159, 18, 3, 221, 94, 230, 100, 251, 98, 159, 18, 3, 221, 94, 230, 100,
- 236, 239, 251, 98, 159, 18, 3, 221, 94, 230, 100, 231, 177, 159, 18, 3,
- 231, 177, 159, 219, 150, 17, 192, 76, 159, 219, 150, 17, 101, 159, 219,
- 150, 17, 104, 159, 219, 150, 17, 133, 159, 219, 150, 17, 134, 159, 219,
- 150, 17, 151, 159, 219, 150, 17, 170, 159, 219, 150, 17, 179, 159, 219,
- 150, 17, 174, 159, 219, 150, 17, 182, 159, 18, 3, 236, 239, 231, 222,
- 159, 18, 3, 236, 239, 231, 177, 159, 209, 38, 221, 11, 199, 235, 246,
- 100, 221, 114, 222, 135, 199, 235, 246, 100, 221, 221, 221, 244, 199,
- 235, 246, 100, 221, 221, 221, 212, 199, 235, 246, 100, 221, 221, 221,
- 207, 199, 235, 246, 100, 221, 221, 221, 217, 199, 235, 246, 100, 221,
- 221, 208, 35, 199, 235, 246, 100, 214, 91, 214, 78, 199, 235, 246, 100,
- 242, 189, 246, 106, 199, 235, 246, 100, 242, 189, 242, 199, 199, 235,
- 246, 100, 242, 189, 246, 105, 199, 235, 246, 100, 202, 213, 202, 212,
- 199, 235, 246, 100, 242, 189, 242, 185, 199, 235, 246, 100, 193, 2, 193,
- 9, 199, 235, 246, 100, 236, 147, 246, 114, 199, 235, 246, 100, 115, 210,
- 204, 199, 235, 246, 100, 199, 177, 199, 229, 199, 235, 246, 100, 199,
- 177, 215, 57, 199, 235, 246, 100, 199, 177, 210, 54, 199, 235, 246, 100,
- 213, 143, 214, 196, 199, 235, 246, 100, 236, 147, 237, 91, 199, 235, 246,
- 100, 115, 200, 117, 199, 235, 246, 100, 199, 177, 199, 142, 199, 235,
- 246, 100, 199, 177, 199, 236, 199, 235, 246, 100, 199, 177, 199, 171,
- 199, 235, 246, 100, 213, 143, 213, 22, 199, 235, 246, 100, 247, 221, 248,
- 224, 199, 235, 246, 100, 209, 199, 209, 234, 199, 235, 246, 100, 210, 66,
- 210, 56, 199, 235, 246, 100, 232, 165, 233, 97, 199, 235, 246, 100, 210,
- 66, 210, 87, 199, 235, 246, 100, 232, 165, 233, 68, 199, 235, 246, 100,
- 210, 66, 206, 44, 199, 235, 246, 100, 216, 92, 172, 199, 235, 246, 100,
- 193, 2, 193, 105, 199, 235, 246, 100, 207, 56, 206, 211, 199, 235, 246,
- 100, 206, 218, 199, 235, 246, 100, 219, 108, 219, 168, 199, 235, 246,
- 100, 219, 36, 199, 235, 246, 100, 194, 37, 194, 159, 199, 235, 246, 100,
- 202, 213, 206, 61, 199, 235, 246, 100, 202, 213, 206, 182, 199, 235, 246,
- 100, 202, 213, 201, 175, 199, 235, 246, 100, 229, 44, 229, 142, 199, 235,
- 246, 100, 219, 108, 242, 167, 199, 235, 246, 100, 185, 250, 214, 199,
- 235, 246, 100, 229, 44, 213, 133, 199, 235, 246, 100, 211, 51, 199, 235,
- 246, 100, 206, 24, 64, 199, 235, 246, 100, 217, 181, 230, 64, 199, 235,
- 246, 100, 206, 24, 252, 33, 199, 235, 246, 100, 206, 24, 250, 241, 199,
- 235, 246, 100, 206, 24, 70, 199, 235, 246, 100, 206, 24, 223, 224, 199,
- 235, 246, 100, 206, 24, 197, 104, 199, 235, 246, 100, 206, 24, 197, 102,
- 199, 235, 246, 100, 206, 24, 68, 199, 235, 246, 100, 206, 24, 196, 251,
- 199, 235, 246, 100, 210, 68, 199, 235, 238, 137, 16, 248, 225, 199, 235,
- 246, 100, 206, 24, 71, 199, 235, 246, 100, 206, 24, 251, 108, 199, 235,
- 246, 100, 206, 24, 74, 199, 235, 246, 100, 206, 24, 251, 64, 217, 175,
- 199, 235, 246, 100, 206, 24, 251, 64, 217, 176, 199, 235, 246, 100, 220,
- 98, 199, 235, 246, 100, 217, 172, 199, 235, 246, 100, 217, 173, 199, 235,
- 246, 100, 217, 181, 234, 131, 199, 235, 246, 100, 217, 181, 199, 176,
- 199, 235, 246, 100, 217, 181, 198, 188, 199, 235, 246, 100, 217, 181,
- 242, 250, 199, 235, 246, 100, 199, 227, 199, 235, 246, 100, 214, 24, 199,
- 235, 246, 100, 193, 99, 199, 235, 246, 100, 232, 154, 199, 235, 17, 192,
- 76, 199, 235, 17, 101, 199, 235, 17, 104, 199, 235, 17, 133, 199, 235,
- 17, 134, 199, 235, 17, 151, 199, 235, 17, 170, 199, 235, 17, 179, 199,
- 235, 17, 174, 199, 235, 17, 182, 199, 235, 246, 100, 250, 209, 199, 235,
- 246, 100, 221, 218, 220, 77, 1, 221, 113, 220, 77, 1, 221, 221, 201, 120,
- 220, 77, 1, 221, 221, 200, 129, 220, 77, 1, 211, 44, 231, 84, 220, 77, 1,
- 214, 90, 220, 77, 1, 242, 63, 220, 77, 1, 211, 44, 246, 117, 220, 77, 1,
- 202, 213, 200, 129, 220, 77, 1, 211, 44, 223, 28, 220, 77, 1, 212, 165,
- 220, 77, 1, 211, 44, 212, 201, 220, 77, 1, 211, 44, 198, 83, 220, 77, 1,
- 211, 44, 198, 71, 220, 77, 1, 211, 44, 237, 161, 220, 77, 1, 211, 44,
- 237, 145, 220, 77, 1, 211, 44, 213, 178, 220, 77, 1, 236, 146, 220, 77,
- 1, 155, 220, 77, 1, 199, 177, 201, 120, 220, 77, 1, 199, 177, 200, 129,
- 220, 77, 1, 211, 44, 237, 40, 220, 77, 1, 213, 142, 220, 77, 1, 247, 220,
- 220, 77, 1, 209, 198, 220, 77, 1, 210, 66, 201, 120, 220, 77, 1, 232,
- 165, 200, 129, 220, 77, 1, 210, 66, 200, 129, 220, 77, 1, 232, 165, 201,
- 120, 220, 77, 1, 211, 44, 248, 54, 220, 77, 1, 216, 91, 220, 77, 1, 193,
- 1, 220, 77, 1, 219, 108, 219, 168, 220, 77, 1, 219, 108, 219, 67, 220,
- 77, 1, 194, 36, 220, 77, 1, 206, 32, 204, 64, 220, 77, 1, 206, 32, 202,
- 92, 220, 77, 1, 202, 213, 201, 120, 220, 77, 1, 229, 44, 201, 120, 220,
- 77, 1, 211, 44, 219, 137, 220, 77, 1, 74, 220, 77, 1, 229, 44, 200, 129,
- 220, 77, 234, 105, 220, 77, 18, 3, 64, 220, 77, 18, 3, 217, 181, 222,
- 121, 220, 77, 18, 3, 252, 33, 220, 77, 18, 3, 250, 241, 220, 77, 18, 3,
- 70, 220, 77, 18, 3, 223, 224, 220, 77, 18, 3, 193, 148, 220, 77, 18, 3,
- 192, 165, 220, 77, 18, 3, 68, 220, 77, 18, 3, 196, 251, 220, 77, 3, 211,
- 44, 196, 11, 220, 77, 18, 3, 217, 181, 221, 91, 220, 77, 204, 175, 3,
- 219, 107, 220, 77, 204, 175, 3, 212, 165, 220, 77, 18, 3, 71, 220, 77,
- 18, 3, 234, 150, 220, 77, 18, 3, 74, 220, 77, 18, 3, 249, 236, 220, 77,
- 18, 3, 251, 63, 220, 77, 221, 114, 177, 220, 77, 158, 217, 181, 234, 131,
- 220, 77, 158, 217, 181, 199, 176, 220, 77, 158, 217, 181, 199, 128, 220,
- 77, 158, 217, 181, 246, 192, 220, 77, 246, 240, 77, 220, 77, 214, 33,
- 220, 77, 17, 192, 76, 220, 77, 17, 101, 220, 77, 17, 104, 220, 77, 17,
- 133, 220, 77, 17, 134, 220, 77, 17, 151, 220, 77, 17, 170, 220, 77, 17,
- 179, 220, 77, 17, 174, 220, 77, 17, 182, 220, 77, 229, 44, 213, 142, 220,
- 77, 229, 44, 216, 91, 220, 77, 1, 221, 222, 230, 254, 220, 77, 1, 221,
- 222, 212, 165, 86, 5, 211, 219, 86, 122, 230, 188, 193, 14, 216, 193,
- 198, 124, 64, 86, 122, 230, 188, 193, 14, 216, 193, 255, 34, 207, 60,
- 248, 125, 172, 86, 122, 230, 188, 193, 14, 216, 193, 255, 34, 230, 188,
- 198, 104, 172, 86, 122, 88, 193, 14, 216, 193, 217, 50, 172, 86, 122,
- 242, 80, 193, 14, 216, 193, 204, 71, 172, 86, 122, 246, 212, 193, 14,
- 216, 193, 210, 55, 204, 57, 172, 86, 122, 193, 14, 216, 193, 198, 104,
- 204, 57, 172, 86, 122, 205, 254, 204, 56, 86, 122, 247, 127, 193, 14,
- 216, 192, 86, 122, 247, 250, 203, 205, 193, 14, 216, 192, 86, 122, 223,
- 126, 198, 103, 86, 122, 237, 83, 198, 104, 247, 126, 86, 122, 204, 56,
- 86, 122, 212, 170, 204, 56, 86, 122, 198, 104, 204, 56, 86, 122, 212,
- 170, 198, 104, 204, 56, 86, 122, 207, 84, 242, 231, 202, 109, 204, 56,
- 86, 122, 207, 160, 230, 222, 204, 56, 86, 122, 246, 212, 255, 38, 206,
- 223, 217, 49, 184, 246, 243, 86, 122, 230, 188, 198, 103, 86, 219, 91, 3,
- 246, 115, 206, 222, 86, 219, 91, 3, 219, 220, 206, 222, 86, 250, 32, 3,
- 204, 67, 231, 161, 255, 39, 206, 222, 86, 250, 32, 3, 255, 36, 166, 86,
- 250, 32, 3, 205, 224, 198, 98, 86, 3, 208, 9, 236, 161, 231, 160, 86, 3,
- 208, 9, 236, 161, 231, 0, 86, 3, 208, 9, 236, 161, 230, 189, 86, 3, 208,
- 9, 215, 77, 231, 160, 86, 3, 208, 9, 215, 77, 231, 0, 86, 3, 208, 9, 236,
- 161, 208, 9, 215, 76, 86, 17, 192, 76, 86, 17, 101, 86, 17, 104, 86, 17,
- 133, 86, 17, 134, 86, 17, 151, 86, 17, 170, 86, 17, 179, 86, 17, 174, 86,
- 17, 182, 86, 17, 138, 101, 86, 17, 138, 104, 86, 17, 138, 133, 86, 17,
- 138, 134, 86, 17, 138, 151, 86, 17, 138, 170, 86, 17, 138, 179, 86, 17,
- 138, 174, 86, 17, 138, 182, 86, 17, 138, 192, 76, 86, 122, 247, 129, 206,
- 222, 86, 122, 214, 156, 247, 54, 212, 182, 192, 10, 86, 122, 246, 212,
- 255, 38, 206, 223, 247, 55, 216, 138, 246, 243, 86, 122, 214, 156, 247,
- 54, 204, 68, 206, 222, 86, 122, 242, 246, 216, 192, 86, 122, 198, 119,
- 255, 35, 86, 122, 230, 171, 206, 223, 230, 127, 86, 122, 230, 171, 206,
- 223, 230, 133, 86, 122, 250, 215, 221, 239, 230, 127, 86, 122, 250, 215,
- 221, 239, 230, 133, 86, 3, 193, 91, 198, 102, 86, 3, 217, 136, 198, 102,
- 86, 1, 160, 86, 1, 221, 250, 86, 1, 231, 233, 86, 1, 231, 84, 86, 1, 214,
- 165, 86, 1, 247, 19, 86, 1, 246, 117, 86, 1, 223, 62, 86, 1, 212, 201,
- 86, 1, 198, 83, 86, 1, 198, 71, 86, 1, 237, 161, 86, 1, 237, 145, 86, 1,
- 213, 178, 86, 1, 189, 86, 1, 199, 240, 86, 1, 238, 0, 86, 1, 237, 40, 86,
- 1, 181, 86, 1, 166, 86, 1, 210, 94, 86, 1, 249, 3, 86, 1, 248, 54, 86, 1,
- 172, 86, 1, 198, 118, 86, 1, 198, 108, 86, 1, 235, 17, 86, 1, 235, 11,
- 86, 1, 194, 169, 86, 1, 192, 71, 86, 1, 192, 112, 86, 1, 255, 41, 86, 1,
- 168, 86, 1, 167, 86, 1, 177, 86, 1, 204, 64, 86, 1, 202, 92, 86, 1, 188,
- 86, 1, 144, 86, 1, 64, 86, 1, 221, 47, 86, 1, 232, 210, 167, 86, 1, 221,
- 139, 86, 1, 207, 3, 86, 18, 3, 252, 33, 86, 18, 3, 70, 86, 18, 3, 223,
- 224, 86, 18, 3, 68, 86, 18, 3, 196, 251, 86, 18, 3, 118, 150, 86, 18, 3,
- 118, 207, 4, 86, 18, 3, 118, 165, 86, 18, 3, 118, 219, 138, 86, 18, 3,
- 71, 86, 18, 3, 234, 171, 86, 18, 3, 74, 86, 18, 3, 211, 194, 86, 3, 207,
- 66, 201, 185, 214, 166, 207, 55, 86, 3, 207, 60, 248, 124, 86, 18, 3,
- 207, 168, 70, 86, 18, 3, 207, 168, 223, 224, 86, 3, 212, 182, 192, 11,
- 215, 85, 238, 0, 86, 3, 202, 227, 220, 44, 86, 122, 230, 80, 86, 122,
- 211, 36, 86, 3, 220, 47, 206, 222, 86, 3, 193, 96, 206, 222, 86, 3, 220,
- 48, 198, 119, 246, 243, 86, 3, 217, 52, 246, 243, 86, 3, 230, 192, 246,
- 244, 207, 158, 86, 3, 230, 192, 217, 38, 207, 158, 86, 3, 223, 121, 217,
- 52, 246, 243, 86, 201, 164, 3, 220, 48, 198, 119, 246, 243, 86, 201, 164,
- 3, 217, 52, 246, 243, 86, 201, 164, 3, 223, 121, 217, 52, 246, 243, 86,
- 201, 164, 1, 160, 86, 201, 164, 1, 221, 250, 86, 201, 164, 1, 231, 233,
- 86, 201, 164, 1, 231, 84, 86, 201, 164, 1, 214, 165, 86, 201, 164, 1,
- 247, 19, 86, 201, 164, 1, 246, 117, 86, 201, 164, 1, 223, 62, 86, 201,
- 164, 1, 212, 201, 86, 201, 164, 1, 198, 83, 86, 201, 164, 1, 198, 71, 86,
- 201, 164, 1, 237, 161, 86, 201, 164, 1, 237, 145, 86, 201, 164, 1, 213,
- 178, 86, 201, 164, 1, 189, 86, 201, 164, 1, 199, 240, 86, 201, 164, 1,
- 238, 0, 86, 201, 164, 1, 237, 40, 86, 201, 164, 1, 181, 86, 201, 164, 1,
- 166, 86, 201, 164, 1, 210, 94, 86, 201, 164, 1, 249, 3, 86, 201, 164, 1,
- 248, 54, 86, 201, 164, 1, 172, 86, 201, 164, 1, 198, 118, 86, 201, 164,
- 1, 198, 108, 86, 201, 164, 1, 235, 17, 86, 201, 164, 1, 235, 11, 86, 201,
- 164, 1, 194, 169, 86, 201, 164, 1, 192, 71, 86, 201, 164, 1, 192, 112,
- 86, 201, 164, 1, 255, 41, 86, 201, 164, 1, 168, 86, 201, 164, 1, 167, 86,
- 201, 164, 1, 177, 86, 201, 164, 1, 204, 64, 86, 201, 164, 1, 202, 92, 86,
- 201, 164, 1, 188, 86, 201, 164, 1, 144, 86, 201, 164, 1, 64, 86, 201,
- 164, 1, 221, 47, 86, 201, 164, 1, 232, 210, 194, 169, 86, 201, 164, 1,
- 232, 210, 168, 86, 201, 164, 1, 232, 210, 167, 86, 221, 34, 206, 219,
- 221, 250, 86, 221, 34, 206, 219, 221, 251, 247, 55, 216, 138, 246, 243,
- 86, 246, 227, 3, 87, 248, 114, 86, 246, 227, 3, 152, 248, 114, 86, 246,
- 227, 3, 246, 231, 200, 69, 86, 246, 227, 3, 205, 253, 255, 40, 86, 16,
- 235, 78, 247, 124, 86, 16, 208, 8, 207, 67, 86, 16, 211, 63, 231, 159,
- 86, 16, 208, 8, 207, 68, 207, 160, 230, 221, 86, 16, 210, 55, 166, 86,
- 16, 213, 120, 247, 124, 86, 16, 213, 120, 247, 125, 212, 170, 255, 37,
- 86, 16, 213, 120, 247, 125, 230, 190, 255, 37, 86, 16, 213, 120, 247,
- 125, 247, 55, 255, 37, 86, 3, 208, 9, 215, 77, 208, 9, 236, 160, 86, 3,
- 208, 9, 215, 77, 230, 189, 86, 122, 247, 128, 203, 205, 231, 47, 216,
- 193, 207, 159, 86, 122, 216, 93, 193, 14, 231, 47, 216, 193, 207, 159,
- 86, 122, 212, 170, 198, 103, 86, 122, 88, 247, 157, 207, 57, 193, 14,
- 216, 193, 217, 50, 172, 86, 122, 242, 80, 247, 157, 207, 57, 193, 14,
- 216, 193, 204, 71, 172, 207, 100, 201, 81, 57, 220, 27, 201, 81, 57, 207,
- 100, 201, 81, 3, 4, 236, 111, 220, 27, 201, 81, 3, 4, 236, 111, 86, 122,
- 220, 39, 217, 53, 206, 222, 86, 122, 198, 215, 217, 53, 206, 222, 79, 1,
- 160, 79, 1, 221, 250, 79, 1, 231, 233, 79, 1, 231, 84, 79, 1, 214, 165,
- 79, 1, 247, 19, 79, 1, 246, 117, 79, 1, 223, 62, 79, 1, 223, 28, 79, 1,
- 212, 201, 79, 1, 213, 144, 79, 1, 198, 83, 79, 1, 198, 71, 79, 1, 237,
- 161, 79, 1, 237, 145, 79, 1, 213, 178, 79, 1, 189, 79, 1, 199, 240, 79,
- 1, 238, 0, 79, 1, 237, 40, 79, 1, 181, 79, 1, 166, 79, 1, 210, 94, 79, 1,
- 249, 3, 79, 1, 248, 54, 79, 1, 172, 79, 1, 168, 79, 1, 167, 79, 1, 177,
- 79, 1, 194, 169, 79, 1, 188, 79, 1, 144, 79, 1, 219, 137, 79, 1, 64, 79,
- 1, 204, 38, 64, 79, 1, 70, 79, 1, 223, 224, 79, 1, 68, 79, 1, 196, 251,
- 79, 1, 71, 79, 1, 216, 56, 71, 79, 1, 74, 79, 1, 250, 8, 79, 18, 3, 200,
- 132, 252, 33, 79, 18, 3, 252, 33, 79, 18, 3, 70, 79, 18, 3, 223, 224, 79,
- 18, 3, 68, 79, 18, 3, 196, 251, 79, 18, 3, 71, 79, 18, 3, 251, 63, 79,
- 18, 3, 216, 56, 223, 224, 79, 18, 3, 216, 56, 74, 79, 18, 3, 234, 253,
- 58, 79, 3, 250, 168, 79, 3, 78, 63, 79, 3, 196, 6, 79, 3, 196, 11, 79, 3,
- 250, 58, 79, 116, 3, 217, 35, 168, 79, 116, 3, 217, 35, 167, 79, 116, 3,
- 217, 35, 194, 169, 79, 116, 3, 217, 35, 144, 79, 1, 230, 206, 188, 79,
- 17, 192, 76, 79, 17, 101, 79, 17, 104, 79, 17, 133, 79, 17, 134, 79, 17,
- 151, 79, 17, 170, 79, 17, 179, 79, 17, 174, 79, 17, 182, 79, 3, 219, 147,
- 205, 208, 79, 3, 205, 208, 79, 16, 219, 100, 79, 16, 242, 31, 79, 16,
- 251, 84, 79, 16, 231, 139, 79, 1, 204, 64, 79, 1, 202, 92, 79, 1, 118,
- 150, 79, 1, 118, 207, 4, 79, 1, 118, 165, 79, 1, 118, 219, 138, 79, 18,
- 3, 118, 150, 79, 18, 3, 118, 207, 4, 79, 18, 3, 118, 165, 79, 18, 3, 118,
- 219, 138, 79, 1, 216, 56, 214, 165, 79, 1, 216, 56, 223, 28, 79, 1, 216,
- 56, 248, 159, 79, 1, 216, 56, 248, 154, 79, 116, 3, 216, 56, 217, 35,
- 181, 79, 116, 3, 216, 56, 217, 35, 172, 79, 116, 3, 216, 56, 217, 35,
- 177, 79, 1, 204, 70, 222, 96, 204, 64, 79, 18, 3, 204, 70, 222, 96, 233,
- 230, 79, 158, 122, 204, 70, 222, 96, 230, 14, 79, 158, 122, 204, 70, 222,
- 96, 222, 58, 210, 65, 79, 1, 194, 88, 209, 3, 222, 96, 199, 240, 79, 1,
- 194, 88, 209, 3, 222, 96, 209, 9, 79, 18, 3, 194, 88, 209, 3, 222, 96,
- 233, 230, 79, 18, 3, 194, 88, 209, 3, 222, 96, 197, 104, 79, 3, 194, 88,
- 209, 3, 222, 96, 199, 17, 79, 3, 194, 88, 209, 3, 222, 96, 199, 16, 79,
- 3, 194, 88, 209, 3, 222, 96, 199, 15, 79, 3, 194, 88, 209, 3, 222, 96,
- 199, 14, 79, 3, 194, 88, 209, 3, 222, 96, 199, 13, 79, 1, 234, 184, 209,
- 3, 222, 96, 213, 178, 79, 1, 234, 184, 209, 3, 222, 96, 192, 172, 79, 1,
- 234, 184, 209, 3, 222, 96, 231, 49, 79, 18, 3, 231, 154, 222, 96, 70, 79,
- 18, 3, 222, 63, 212, 0, 79, 18, 3, 222, 63, 68, 79, 18, 3, 222, 63, 234,
- 171, 79, 1, 204, 38, 160, 79, 1, 204, 38, 221, 250, 79, 1, 204, 38, 231,
- 233, 79, 1, 204, 38, 247, 19, 79, 1, 204, 38, 192, 112, 79, 1, 204, 38,
- 212, 201, 79, 1, 204, 38, 238, 0, 79, 1, 204, 38, 181, 79, 1, 204, 38,
- 210, 94, 79, 1, 204, 38, 233, 97, 79, 1, 204, 38, 249, 3, 79, 1, 204, 38,
- 199, 240, 79, 1, 204, 38, 144, 79, 116, 3, 204, 38, 217, 35, 194, 169,
- 79, 18, 3, 204, 38, 252, 33, 79, 18, 3, 204, 38, 71, 79, 18, 3, 204, 38,
- 234, 253, 58, 79, 18, 3, 204, 38, 52, 193, 148, 79, 3, 204, 38, 199, 16,
- 79, 3, 204, 38, 199, 15, 79, 3, 204, 38, 199, 13, 79, 3, 204, 38, 199,
- 12, 79, 3, 204, 38, 238, 213, 199, 16, 79, 3, 204, 38, 238, 213, 199, 15,
- 79, 3, 204, 38, 238, 213, 234, 91, 199, 18, 79, 1, 206, 197, 211, 46,
- 233, 97, 79, 3, 206, 197, 211, 46, 199, 13, 79, 204, 38, 17, 192, 76, 79,
- 204, 38, 17, 101, 79, 204, 38, 17, 104, 79, 204, 38, 17, 133, 79, 204,
- 38, 17, 134, 79, 204, 38, 17, 151, 79, 204, 38, 17, 170, 79, 204, 38, 17,
- 179, 79, 204, 38, 17, 174, 79, 204, 38, 17, 182, 79, 3, 221, 242, 199,
- 17, 79, 3, 221, 242, 199, 15, 79, 18, 3, 251, 49, 64, 79, 18, 3, 251, 49,
- 251, 63, 79, 16, 204, 38, 101, 79, 16, 204, 38, 233, 203, 98, 6, 1, 250,
- 224, 98, 6, 1, 248, 207, 98, 6, 1, 231, 203, 98, 6, 1, 236, 123, 98, 6,
- 1, 234, 88, 98, 6, 1, 196, 20, 98, 6, 1, 192, 79, 98, 6, 1, 200, 125, 98,
- 6, 1, 223, 190, 98, 6, 1, 222, 121, 98, 6, 1, 220, 67, 98, 6, 1, 217,
- 160, 98, 6, 1, 215, 51, 98, 6, 1, 211, 211, 98, 6, 1, 210, 247, 98, 6, 1,
- 192, 67, 98, 6, 1, 208, 53, 98, 6, 1, 206, 40, 98, 6, 1, 200, 112, 98, 6,
- 1, 197, 77, 98, 6, 1, 210, 86, 98, 6, 1, 221, 237, 98, 6, 1, 231, 75, 98,
- 6, 1, 208, 224, 98, 6, 1, 203, 224, 98, 6, 1, 242, 201, 98, 6, 1, 246,
- 243, 98, 6, 1, 223, 10, 98, 6, 1, 242, 138, 98, 6, 1, 246, 101, 98, 6, 1,
- 193, 207, 98, 6, 1, 223, 25, 98, 6, 1, 230, 95, 98, 6, 1, 229, 255, 98,
- 6, 1, 229, 165, 98, 6, 1, 194, 111, 98, 6, 1, 230, 28, 98, 6, 1, 229, 31,
- 98, 6, 1, 193, 3, 98, 6, 1, 251, 97, 98, 1, 250, 224, 98, 1, 248, 207,
- 98, 1, 231, 203, 98, 1, 236, 123, 98, 1, 234, 88, 98, 1, 196, 20, 98, 1,
- 192, 79, 98, 1, 200, 125, 98, 1, 223, 190, 98, 1, 222, 121, 98, 1, 220,
- 67, 98, 1, 217, 160, 98, 1, 215, 51, 98, 1, 211, 211, 98, 1, 210, 247,
- 98, 1, 192, 67, 98, 1, 208, 53, 98, 1, 206, 40, 98, 1, 200, 112, 98, 1,
- 197, 77, 98, 1, 210, 86, 98, 1, 221, 237, 98, 1, 231, 75, 98, 1, 208,
- 224, 98, 1, 203, 224, 98, 1, 242, 201, 98, 1, 246, 243, 98, 1, 223, 10,
- 98, 1, 242, 138, 98, 1, 246, 101, 98, 1, 193, 207, 98, 1, 223, 25, 98, 1,
- 230, 95, 98, 1, 229, 255, 98, 1, 229, 165, 98, 1, 194, 111, 98, 1, 230,
- 28, 98, 1, 229, 31, 98, 1, 233, 11, 98, 1, 193, 3, 98, 1, 234, 107, 98,
- 1, 163, 231, 203, 98, 1, 251, 57, 98, 210, 244, 204, 165, 73, 1, 98, 215,
- 51, 98, 1, 251, 97, 98, 1, 230, 26, 57, 98, 1, 220, 175, 57, 30, 143,
- 221, 151, 30, 143, 202, 84, 30, 143, 214, 45, 30, 143, 199, 103, 30, 143,
- 202, 73, 30, 143, 207, 133, 30, 143, 216, 153, 30, 143, 210, 36, 30, 143,
- 202, 81, 30, 143, 203, 64, 30, 143, 202, 78, 30, 143, 223, 247, 30, 143,
- 242, 144, 30, 143, 202, 88, 30, 143, 242, 211, 30, 143, 221, 225, 30,
- 143, 199, 198, 30, 143, 210, 75, 30, 143, 229, 162, 30, 143, 214, 41, 30,
- 143, 202, 82, 30, 143, 214, 35, 30, 143, 214, 39, 30, 143, 199, 100, 30,
- 143, 207, 121, 30, 143, 202, 80, 30, 143, 207, 131, 30, 143, 222, 102,
- 30, 143, 216, 146, 30, 143, 222, 105, 30, 143, 210, 31, 30, 143, 210, 29,
- 30, 143, 210, 17, 30, 143, 210, 25, 30, 143, 210, 23, 30, 143, 210, 20,
- 30, 143, 210, 22, 30, 143, 210, 19, 30, 143, 210, 24, 30, 143, 210, 34,
- 30, 143, 210, 35, 30, 143, 210, 18, 30, 143, 210, 28, 30, 143, 222, 103,
- 30, 143, 222, 101, 30, 143, 203, 57, 30, 143, 203, 55, 30, 143, 203, 47,
- 30, 143, 203, 50, 30, 143, 203, 56, 30, 143, 203, 52, 30, 143, 203, 51,
- 30, 143, 203, 49, 30, 143, 203, 60, 30, 143, 203, 62, 30, 143, 203, 63,
- 30, 143, 203, 58, 30, 143, 203, 48, 30, 143, 203, 53, 30, 143, 203, 61,
- 30, 143, 242, 192, 30, 143, 242, 190, 30, 143, 246, 130, 30, 143, 246,
- 128, 30, 143, 211, 8, 30, 143, 223, 242, 30, 143, 223, 233, 30, 143, 223,
- 241, 30, 143, 223, 238, 30, 143, 223, 236, 30, 143, 223, 240, 30, 143,
- 202, 85, 30, 143, 223, 245, 30, 143, 223, 246, 30, 143, 223, 234, 30,
- 143, 223, 239, 30, 143, 193, 46, 30, 143, 242, 143, 30, 143, 242, 193,
- 30, 143, 242, 191, 30, 143, 246, 131, 30, 143, 246, 129, 30, 143, 242,
- 209, 30, 143, 242, 210, 30, 143, 242, 194, 30, 143, 246, 132, 30, 143,
- 210, 73, 30, 143, 222, 104, 30, 143, 202, 86, 30, 143, 193, 52, 30, 143,
- 221, 142, 30, 143, 214, 37, 30, 143, 214, 43, 30, 143, 214, 42, 30, 143,
- 199, 97, 30, 143, 232, 247, 30, 222, 206, 232, 247, 30, 222, 206, 64, 30,
- 222, 206, 251, 108, 30, 222, 206, 168, 30, 222, 206, 193, 118, 30, 222,
- 206, 234, 50, 30, 222, 206, 71, 30, 222, 206, 193, 56, 30, 222, 206, 193,
- 69, 30, 222, 206, 74, 30, 222, 206, 194, 169, 30, 222, 206, 194, 160, 30,
- 222, 206, 212, 0, 30, 222, 206, 193, 1, 30, 222, 206, 68, 30, 222, 206,
- 194, 93, 30, 222, 206, 194, 111, 30, 222, 206, 194, 72, 30, 222, 206,
- 192, 214, 30, 222, 206, 233, 230, 30, 222, 206, 193, 22, 30, 222, 206,
- 70, 30, 222, 206, 255, 29, 30, 222, 206, 255, 28, 30, 222, 206, 193, 132,
- 30, 222, 206, 193, 130, 30, 222, 206, 234, 48, 30, 222, 206, 234, 47, 30,
- 222, 206, 234, 49, 30, 222, 206, 193, 55, 30, 222, 206, 193, 54, 30, 222,
- 206, 212, 110, 30, 222, 206, 212, 111, 30, 222, 206, 212, 104, 30, 222,
- 206, 212, 109, 30, 222, 206, 212, 107, 30, 222, 206, 192, 245, 30, 222,
- 206, 192, 244, 30, 222, 206, 192, 243, 30, 222, 206, 192, 246, 30, 222,
- 206, 192, 247, 30, 222, 206, 197, 177, 30, 222, 206, 197, 176, 30, 222,
- 206, 197, 174, 30, 222, 206, 197, 170, 30, 222, 206, 197, 171, 30, 222,
- 206, 192, 209, 30, 222, 206, 192, 206, 30, 222, 206, 192, 207, 30, 222,
- 206, 192, 201, 30, 222, 206, 192, 202, 30, 222, 206, 192, 203, 30, 222,
- 206, 192, 205, 30, 222, 206, 233, 224, 30, 222, 206, 233, 226, 30, 222,
- 206, 193, 21, 30, 222, 206, 228, 92, 30, 222, 206, 228, 84, 30, 222, 206,
- 228, 87, 30, 222, 206, 228, 85, 30, 222, 206, 228, 89, 30, 222, 206, 228,
- 91, 30, 222, 206, 250, 123, 30, 222, 206, 250, 120, 30, 222, 206, 250,
- 118, 30, 222, 206, 250, 119, 30, 222, 206, 202, 89, 30, 222, 206, 255,
- 30, 30, 222, 206, 193, 131, 30, 222, 206, 193, 53, 30, 222, 206, 212,
- 106, 30, 222, 206, 212, 105, 30, 123, 221, 151, 30, 123, 202, 84, 30,
- 123, 221, 144, 30, 123, 214, 45, 30, 123, 214, 43, 30, 123, 214, 42, 30,
- 123, 199, 103, 30, 123, 207, 133, 30, 123, 207, 128, 30, 123, 207, 125,
- 30, 123, 207, 118, 30, 123, 207, 113, 30, 123, 207, 108, 30, 123, 207,
- 119, 30, 123, 207, 131, 30, 123, 216, 153, 30, 123, 210, 36, 30, 123,
- 210, 25, 30, 123, 203, 64, 30, 123, 202, 78, 30, 123, 223, 247, 30, 123,
- 242, 144, 30, 123, 242, 211, 30, 123, 221, 225, 30, 123, 199, 198, 30,
- 123, 210, 75, 30, 123, 229, 162, 30, 123, 221, 145, 30, 123, 221, 143,
- 30, 123, 214, 41, 30, 123, 214, 35, 30, 123, 214, 37, 30, 123, 214, 40,
- 30, 123, 214, 36, 30, 123, 199, 100, 30, 123, 199, 97, 30, 123, 207, 126,
- 30, 123, 207, 121, 30, 123, 207, 107, 30, 123, 207, 106, 30, 123, 202,
- 80, 30, 123, 207, 123, 30, 123, 207, 122, 30, 123, 207, 115, 30, 123,
- 207, 117, 30, 123, 207, 130, 30, 123, 207, 110, 30, 123, 207, 120, 30,
- 123, 207, 129, 30, 123, 207, 105, 30, 123, 216, 149, 30, 123, 216, 144,
- 30, 123, 216, 146, 30, 123, 216, 143, 30, 123, 216, 141, 30, 123, 216,
- 147, 30, 123, 216, 152, 30, 123, 216, 150, 30, 123, 222, 105, 30, 123,
- 210, 27, 30, 123, 210, 28, 30, 123, 210, 33, 30, 123, 222, 103, 30, 123,
- 203, 57, 30, 123, 203, 47, 30, 123, 203, 50, 30, 123, 203, 52, 30, 123,
- 211, 8, 30, 123, 223, 242, 30, 123, 223, 235, 30, 123, 202, 85, 30, 123,
- 223, 243, 30, 123, 193, 46, 30, 123, 193, 40, 30, 123, 193, 41, 30, 123,
- 210, 73, 30, 123, 222, 104, 30, 123, 229, 160, 30, 123, 229, 158, 30,
- 123, 229, 161, 30, 123, 229, 159, 30, 123, 193, 52, 30, 123, 221, 147,
- 30, 123, 221, 146, 30, 123, 221, 150, 30, 123, 221, 148, 30, 123, 221,
- 149, 30, 123, 202, 82, 36, 5, 144, 36, 5, 228, 181, 36, 5, 229, 178, 36,
- 5, 230, 99, 36, 5, 229, 225, 36, 5, 229, 255, 36, 5, 229, 43, 36, 5, 229,
- 34, 36, 5, 177, 36, 5, 219, 36, 36, 5, 219, 209, 36, 5, 220, 184, 36, 5,
- 220, 32, 36, 5, 220, 42, 36, 5, 219, 107, 36, 5, 219, 3, 36, 5, 229, 187,
- 36, 5, 229, 181, 36, 5, 229, 183, 36, 5, 229, 186, 36, 5, 229, 184, 36,
- 5, 229, 185, 36, 5, 229, 182, 36, 5, 229, 180, 36, 5, 172, 36, 5, 215,
- 241, 36, 5, 216, 175, 36, 5, 217, 219, 36, 5, 217, 29, 36, 5, 217, 48,
- 36, 5, 216, 91, 36, 5, 215, 168, 36, 5, 200, 239, 36, 5, 200, 233, 36, 5,
- 200, 235, 36, 5, 200, 238, 36, 5, 200, 236, 36, 5, 200, 237, 36, 5, 200,
- 234, 36, 5, 200, 232, 36, 5, 167, 36, 5, 206, 218, 36, 5, 207, 151, 36,
- 5, 208, 68, 36, 5, 207, 234, 36, 5, 208, 7, 36, 5, 207, 55, 36, 5, 206,
- 176, 36, 5, 188, 36, 5, 201, 184, 36, 5, 203, 125, 36, 5, 206, 91, 36, 5,
- 205, 205, 36, 5, 205, 223, 36, 5, 202, 212, 36, 5, 201, 79, 36, 5, 204,
- 64, 36, 5, 203, 164, 36, 5, 203, 236, 36, 5, 204, 59, 36, 5, 204, 10, 36,
- 5, 204, 12, 36, 5, 203, 211, 36, 5, 203, 143, 36, 5, 208, 239, 36, 5,
- 208, 177, 36, 5, 208, 201, 36, 5, 208, 238, 36, 5, 208, 218, 36, 5, 208,
- 219, 36, 5, 208, 189, 36, 5, 208, 188, 36, 5, 208, 130, 36, 5, 208, 126,
- 36, 5, 208, 129, 36, 5, 208, 127, 36, 5, 208, 128, 36, 5, 208, 215, 36,
- 5, 208, 207, 36, 5, 208, 210, 36, 5, 208, 214, 36, 5, 208, 211, 36, 5,
- 208, 212, 36, 5, 208, 209, 36, 5, 208, 206, 36, 5, 208, 202, 36, 5, 208,
- 205, 36, 5, 208, 203, 36, 5, 208, 204, 36, 5, 249, 3, 36, 5, 247, 124,
- 36, 5, 248, 41, 36, 5, 249, 1, 36, 5, 248, 108, 36, 5, 248, 123, 36, 5,
- 247, 220, 36, 5, 247, 69, 36, 5, 196, 157, 36, 5, 194, 223, 36, 5, 196,
- 39, 36, 5, 196, 156, 36, 5, 196, 118, 36, 5, 196, 123, 36, 5, 195, 252,
- 36, 5, 194, 212, 36, 5, 189, 36, 5, 198, 45, 36, 5, 199, 128, 36, 5, 200,
- 174, 36, 5, 200, 56, 36, 5, 200, 79, 36, 5, 155, 36, 5, 197, 250, 36, 5,
- 247, 19, 36, 5, 238, 162, 36, 5, 242, 149, 36, 5, 247, 18, 36, 5, 246,
- 150, 36, 5, 246, 158, 36, 5, 242, 63, 36, 5, 238, 118, 36, 5, 193, 209,
- 36, 5, 193, 177, 36, 5, 193, 196, 36, 5, 193, 208, 36, 5, 193, 202, 36,
- 5, 193, 203, 36, 5, 193, 185, 36, 5, 193, 184, 36, 5, 193, 170, 36, 5,
- 193, 166, 36, 5, 193, 169, 36, 5, 193, 167, 36, 5, 193, 168, 36, 5, 181,
- 36, 5, 213, 22, 36, 5, 214, 60, 36, 5, 215, 84, 36, 5, 214, 203, 36, 5,
- 214, 214, 36, 5, 213, 142, 36, 5, 212, 210, 36, 5, 212, 201, 36, 5, 212,
- 158, 36, 5, 212, 181, 36, 5, 212, 200, 36, 5, 212, 189, 36, 5, 212, 190,
- 36, 5, 212, 165, 36, 5, 212, 148, 36, 5, 231, 6, 64, 36, 5, 231, 6, 68,
- 36, 5, 231, 6, 70, 36, 5, 231, 6, 252, 33, 36, 5, 231, 6, 234, 171, 36,
- 5, 231, 6, 71, 36, 5, 231, 6, 74, 36, 5, 231, 6, 194, 169, 36, 5, 160,
- 36, 5, 221, 33, 36, 5, 221, 204, 36, 5, 222, 159, 36, 5, 222, 48, 36, 5,
- 222, 57, 36, 5, 221, 113, 36, 5, 221, 108, 36, 5, 220, 238, 36, 5, 220,
- 231, 36, 5, 220, 237, 36, 5, 220, 232, 36, 5, 220, 233, 36, 5, 220, 224,
- 36, 5, 220, 218, 36, 5, 220, 220, 36, 5, 220, 223, 36, 5, 220, 221, 36,
- 5, 220, 222, 36, 5, 220, 219, 36, 5, 220, 217, 36, 5, 220, 213, 36, 5,
- 220, 216, 36, 5, 220, 214, 36, 5, 220, 215, 36, 5, 194, 169, 36, 5, 193,
- 244, 36, 5, 194, 72, 36, 5, 194, 163, 36, 5, 194, 100, 36, 5, 194, 111,
- 36, 5, 194, 36, 36, 5, 194, 28, 36, 5, 210, 85, 64, 36, 5, 210, 85, 68,
- 36, 5, 210, 85, 70, 36, 5, 210, 85, 252, 33, 36, 5, 210, 85, 234, 171,
- 36, 5, 210, 85, 71, 36, 5, 210, 85, 74, 36, 5, 192, 112, 36, 5, 191, 252,
- 36, 5, 192, 30, 36, 5, 192, 110, 36, 5, 192, 82, 36, 5, 192, 85, 36, 5,
- 192, 8, 36, 5, 191, 239, 36, 5, 192, 71, 36, 5, 192, 48, 36, 5, 192, 57,
- 36, 5, 192, 70, 36, 5, 192, 61, 36, 5, 192, 62, 36, 5, 192, 54, 36, 5,
- 192, 39, 36, 5, 168, 36, 5, 192, 214, 36, 5, 193, 22, 36, 5, 193, 129,
- 36, 5, 193, 66, 36, 5, 193, 69, 36, 5, 193, 1, 36, 5, 192, 241, 36, 5,
- 238, 0, 36, 5, 235, 62, 36, 5, 237, 16, 36, 5, 237, 255, 36, 5, 237, 101,
- 36, 5, 237, 116, 36, 5, 236, 146, 36, 5, 235, 28, 36, 5, 237, 161, 36, 5,
- 237, 126, 36, 5, 237, 138, 36, 5, 237, 160, 36, 5, 237, 148, 36, 5, 237,
- 149, 36, 5, 237, 131, 36, 5, 237, 117, 36, 5, 223, 62, 36, 5, 222, 214,
- 36, 5, 223, 20, 36, 5, 223, 61, 36, 5, 223, 39, 36, 5, 223, 41, 36, 5,
- 222, 233, 36, 5, 222, 192, 36, 5, 231, 233, 36, 5, 230, 186, 36, 5, 231,
- 46, 36, 5, 231, 230, 36, 5, 231, 150, 36, 5, 231, 158, 36, 5, 230, 254,
- 36, 5, 230, 253, 36, 5, 230, 143, 36, 5, 230, 139, 36, 5, 230, 142, 36,
- 5, 230, 140, 36, 5, 230, 141, 36, 5, 231, 120, 36, 5, 231, 100, 36, 5,
- 231, 110, 36, 5, 231, 119, 36, 5, 231, 114, 36, 5, 231, 115, 36, 5, 231,
- 104, 36, 5, 231, 89, 36, 5, 199, 240, 36, 5, 199, 148, 36, 5, 199, 202,
- 36, 5, 199, 239, 36, 5, 199, 222, 36, 5, 199, 224, 36, 5, 199, 176, 36,
- 5, 199, 139, 36, 5, 246, 117, 36, 5, 242, 168, 36, 5, 242, 215, 36, 5,
- 246, 116, 36, 5, 242, 241, 36, 5, 242, 245, 36, 5, 242, 188, 36, 5, 242,
- 157, 36, 5, 210, 94, 36, 5, 210, 57, 36, 5, 210, 77, 36, 5, 210, 93, 36,
- 5, 210, 79, 36, 5, 210, 80, 36, 5, 210, 65, 36, 5, 210, 53, 36, 5, 198,
- 118, 36, 5, 198, 91, 36, 5, 198, 97, 36, 5, 198, 117, 36, 5, 198, 111,
- 36, 5, 198, 112, 36, 5, 198, 95, 36, 5, 198, 89, 36, 5, 197, 191, 36, 5,
- 197, 183, 36, 5, 197, 187, 36, 5, 197, 190, 36, 5, 197, 188, 36, 5, 197,
- 189, 36, 5, 197, 185, 36, 5, 197, 184, 36, 5, 233, 97, 36, 5, 232, 77,
- 36, 5, 233, 11, 36, 5, 233, 96, 36, 5, 233, 40, 36, 5, 233, 47, 36, 5,
- 232, 164, 36, 5, 232, 55, 36, 5, 166, 36, 5, 209, 51, 36, 5, 210, 51, 36,
- 5, 211, 77, 36, 5, 210, 168, 36, 5, 210, 181, 36, 5, 209, 198, 36, 5,
- 209, 9, 36, 5, 206, 166, 36, 5, 215, 157, 36, 5, 232, 49, 36, 38, 231,
- 146, 26, 18, 220, 2, 77, 36, 38, 18, 220, 2, 77, 36, 38, 231, 146, 77,
- 36, 205, 209, 77, 36, 194, 10, 36, 232, 71, 201, 238, 36, 242, 38, 36,
- 204, 180, 36, 242, 47, 36, 209, 112, 242, 47, 36, 208, 159, 77, 36, 210,
- 244, 204, 165, 36, 17, 101, 36, 17, 104, 36, 17, 133, 36, 17, 134, 36,
- 17, 151, 36, 17, 170, 36, 17, 179, 36, 17, 174, 36, 17, 182, 36, 31, 200,
- 30, 36, 31, 197, 239, 36, 31, 199, 184, 36, 31, 232, 126, 36, 31, 233, 3,
- 36, 31, 203, 25, 36, 31, 204, 140, 36, 31, 234, 137, 36, 31, 214, 11, 36,
- 31, 228, 162, 36, 31, 200, 31, 180, 36, 5, 205, 214, 215, 168, 36, 5,
- 215, 164, 36, 5, 215, 165, 36, 5, 215, 166, 36, 5, 205, 214, 247, 69, 36,
- 5, 247, 66, 36, 5, 247, 67, 36, 5, 247, 68, 36, 5, 205, 214, 232, 55, 36,
- 5, 232, 51, 36, 5, 232, 52, 36, 5, 232, 53, 36, 5, 205, 214, 209, 9, 36,
- 5, 209, 5, 36, 5, 209, 6, 36, 5, 209, 7, 36, 199, 19, 122, 193, 4, 36,
- 199, 19, 122, 237, 61, 36, 199, 19, 122, 207, 87, 36, 199, 19, 122, 203,
- 195, 207, 87, 36, 199, 19, 122, 236, 246, 36, 199, 19, 122, 222, 29, 36,
- 199, 19, 122, 242, 196, 36, 199, 19, 122, 229, 167, 36, 199, 19, 122,
- 237, 60, 36, 199, 19, 122, 220, 254, 99, 1, 64, 99, 1, 71, 99, 1, 70, 99,
- 1, 74, 99, 1, 68, 99, 1, 196, 236, 99, 1, 231, 233, 99, 1, 160, 99, 1,
- 231, 158, 99, 1, 231, 46, 99, 1, 230, 254, 99, 1, 230, 186, 99, 1, 230,
- 146, 99, 1, 144, 99, 1, 229, 255, 99, 1, 229, 178, 99, 1, 229, 43, 99, 1,
- 228, 181, 99, 1, 228, 148, 99, 1, 177, 99, 1, 220, 42, 99, 1, 219, 209,
- 99, 1, 219, 107, 99, 1, 219, 36, 99, 1, 219, 4, 99, 1, 172, 99, 1, 217,
- 48, 99, 1, 216, 175, 99, 1, 216, 91, 99, 1, 215, 241, 99, 1, 181, 99, 1,
- 229, 67, 99, 1, 215, 71, 99, 1, 214, 214, 99, 1, 214, 60, 99, 1, 213,
- 142, 99, 1, 213, 22, 99, 1, 212, 212, 99, 1, 208, 176, 99, 1, 208, 162,
- 99, 1, 208, 155, 99, 1, 208, 145, 99, 1, 208, 134, 99, 1, 208, 132, 99,
- 1, 188, 99, 1, 206, 158, 99, 1, 205, 223, 99, 1, 203, 125, 99, 1, 202,
- 212, 99, 1, 201, 184, 99, 1, 201, 84, 99, 1, 238, 0, 99, 1, 189, 99, 1,
- 237, 116, 99, 1, 200, 79, 99, 1, 237, 16, 99, 1, 199, 128, 99, 1, 236,
- 146, 99, 1, 235, 62, 99, 1, 235, 31, 99, 1, 236, 158, 99, 1, 199, 53, 99,
- 1, 199, 52, 99, 1, 199, 41, 99, 1, 199, 40, 99, 1, 199, 39, 99, 1, 199,
- 38, 99, 1, 198, 118, 99, 1, 198, 112, 99, 1, 198, 97, 99, 1, 198, 95, 99,
- 1, 198, 91, 99, 1, 198, 90, 99, 1, 194, 169, 99, 1, 194, 111, 99, 1, 194,
- 72, 99, 1, 194, 36, 99, 1, 193, 244, 99, 1, 193, 231, 99, 1, 168, 99, 1,
- 193, 69, 99, 1, 193, 22, 99, 1, 193, 1, 99, 1, 192, 214, 99, 1, 192, 173,
- 99, 1, 215, 175, 99, 2, 1, 193, 69, 99, 2, 1, 193, 22, 99, 2, 1, 193, 1,
- 99, 2, 1, 192, 214, 99, 2, 1, 192, 173, 99, 2, 1, 215, 175, 21, 22, 228,
- 111, 21, 22, 71, 21, 22, 251, 253, 21, 22, 70, 21, 22, 223, 224, 21, 22,
- 74, 21, 22, 211, 194, 21, 22, 193, 147, 211, 194, 21, 22, 96, 234, 171,
- 21, 22, 96, 70, 21, 22, 64, 21, 22, 252, 33, 21, 22, 194, 111, 21, 22,
- 194, 89, 194, 111, 21, 22, 194, 72, 21, 22, 194, 89, 194, 72, 21, 22,
- 194, 56, 21, 22, 194, 89, 194, 56, 21, 22, 194, 36, 21, 22, 194, 89, 194,
- 36, 21, 22, 194, 17, 21, 22, 194, 89, 194, 17, 21, 22, 215, 45, 194, 17,
- 21, 22, 194, 169, 21, 22, 194, 89, 194, 169, 21, 22, 194, 163, 21, 22,
- 194, 89, 194, 163, 21, 22, 215, 45, 194, 163, 21, 22, 251, 63, 21, 22,
- 193, 147, 194, 202, 21, 22, 231, 6, 201, 238, 21, 22, 52, 251, 129, 21,
- 22, 52, 230, 210, 21, 22, 52, 247, 188, 138, 207, 81, 21, 22, 52, 198,
- 249, 138, 207, 81, 21, 22, 52, 51, 138, 207, 81, 21, 22, 52, 207, 81, 21,
- 22, 52, 55, 251, 129, 21, 22, 52, 55, 203, 195, 84, 201, 195, 21, 22, 52,
- 85, 236, 114, 21, 22, 52, 203, 195, 229, 5, 111, 21, 22, 52, 209, 206,
- 21, 22, 52, 142, 200, 159, 21, 22, 234, 88, 21, 22, 223, 190, 21, 22,
- 211, 211, 21, 22, 250, 224, 21, 22, 210, 181, 21, 22, 211, 75, 21, 22,
- 210, 51, 21, 22, 210, 12, 21, 22, 209, 198, 21, 22, 209, 172, 21, 22,
- 193, 147, 209, 172, 21, 22, 96, 229, 225, 21, 22, 96, 229, 178, 21, 22,
- 166, 21, 22, 211, 77, 21, 22, 209, 7, 21, 22, 194, 89, 209, 7, 21, 22,
- 209, 5, 21, 22, 194, 89, 209, 5, 21, 22, 209, 4, 21, 22, 194, 89, 209, 4,
- 21, 22, 209, 2, 21, 22, 194, 89, 209, 2, 21, 22, 209, 1, 21, 22, 194, 89,
- 209, 1, 21, 22, 209, 9, 21, 22, 194, 89, 209, 9, 21, 22, 209, 8, 21, 22,
- 194, 89, 209, 8, 21, 22, 193, 147, 209, 8, 21, 22, 211, 93, 21, 22, 194,
- 89, 211, 93, 21, 22, 96, 230, 124, 21, 22, 200, 79, 21, 22, 200, 172, 21,
- 22, 199, 128, 21, 22, 199, 105, 21, 22, 155, 21, 22, 198, 254, 21, 22,
- 193, 147, 198, 254, 21, 22, 96, 237, 101, 21, 22, 96, 237, 16, 21, 22,
- 189, 21, 22, 200, 174, 21, 22, 197, 248, 21, 22, 194, 89, 197, 248, 21,
- 22, 197, 226, 21, 22, 194, 89, 197, 226, 21, 22, 197, 225, 21, 22, 194,
- 89, 197, 225, 21, 22, 104, 21, 22, 194, 89, 104, 21, 22, 197, 216, 21,
- 22, 194, 89, 197, 216, 21, 22, 197, 250, 21, 22, 194, 89, 197, 250, 21,
- 22, 197, 249, 21, 22, 194, 89, 197, 249, 21, 22, 215, 45, 197, 249, 21,
- 22, 200, 228, 21, 22, 198, 78, 21, 22, 198, 62, 21, 22, 198, 60, 21, 22,
- 198, 83, 21, 22, 222, 57, 21, 22, 222, 153, 21, 22, 221, 204, 21, 22,
- 221, 183, 21, 22, 221, 113, 21, 22, 221, 88, 21, 22, 193, 147, 221, 88,
- 21, 22, 160, 21, 22, 222, 159, 21, 22, 220, 233, 21, 22, 194, 89, 220,
- 233, 21, 22, 220, 231, 21, 22, 194, 89, 220, 231, 21, 22, 220, 230, 21,
- 22, 194, 89, 220, 230, 21, 22, 220, 228, 21, 22, 194, 89, 220, 228, 21,
- 22, 220, 227, 21, 22, 194, 89, 220, 227, 21, 22, 220, 238, 21, 22, 194,
- 89, 220, 238, 21, 22, 220, 237, 21, 22, 194, 89, 220, 237, 21, 22, 215,
- 45, 220, 237, 21, 22, 222, 184, 21, 22, 220, 239, 21, 22, 202, 170, 222,
- 41, 21, 22, 202, 170, 221, 184, 21, 22, 202, 170, 221, 103, 21, 22, 202,
- 170, 222, 137, 21, 22, 246, 158, 21, 22, 247, 17, 21, 22, 242, 149, 21,
- 22, 242, 139, 21, 22, 242, 63, 21, 22, 238, 239, 21, 22, 193, 147, 238,
- 239, 21, 22, 247, 19, 21, 22, 247, 18, 21, 22, 238, 116, 21, 22, 194, 89,
- 238, 116, 21, 22, 238, 114, 21, 22, 194, 89, 238, 114, 21, 22, 238, 113,
- 21, 22, 194, 89, 238, 113, 21, 22, 238, 112, 21, 22, 194, 89, 238, 112,
- 21, 22, 238, 111, 21, 22, 194, 89, 238, 111, 21, 22, 238, 118, 21, 22,
- 194, 89, 238, 118, 21, 22, 238, 117, 21, 22, 194, 89, 238, 117, 21, 22,
- 215, 45, 238, 117, 21, 22, 247, 52, 21, 22, 205, 255, 199, 242, 21, 22,
- 217, 48, 21, 22, 217, 218, 21, 22, 216, 175, 21, 22, 216, 137, 21, 22,
- 216, 91, 21, 22, 216, 35, 21, 22, 193, 147, 216, 35, 21, 22, 172, 21, 22,
- 217, 219, 21, 22, 215, 166, 21, 22, 194, 89, 215, 166, 21, 22, 215, 164,
- 21, 22, 194, 89, 215, 164, 21, 22, 215, 163, 21, 22, 194, 89, 215, 163,
- 21, 22, 215, 162, 21, 22, 194, 89, 215, 162, 21, 22, 215, 161, 21, 22,
- 194, 89, 215, 161, 21, 22, 215, 168, 21, 22, 194, 89, 215, 168, 21, 22,
- 215, 167, 21, 22, 194, 89, 215, 167, 21, 22, 215, 45, 215, 167, 21, 22,
- 218, 236, 21, 22, 194, 89, 218, 236, 21, 22, 216, 179, 21, 22, 250, 24,
- 218, 236, 21, 22, 205, 255, 218, 236, 21, 22, 214, 214, 21, 22, 215, 83,
- 21, 22, 214, 60, 21, 22, 214, 27, 21, 22, 213, 142, 21, 22, 213, 125, 21,
- 22, 193, 147, 213, 125, 21, 22, 181, 21, 22, 215, 84, 21, 22, 212, 208,
- 21, 22, 194, 89, 212, 208, 21, 22, 212, 210, 21, 22, 194, 89, 212, 210,
- 21, 22, 212, 209, 21, 22, 194, 89, 212, 209, 21, 22, 215, 45, 212, 209,
- 21, 22, 215, 151, 21, 22, 96, 214, 167, 21, 22, 214, 66, 21, 22, 220, 42,
- 21, 22, 220, 183, 21, 22, 219, 209, 21, 22, 219, 191, 21, 22, 219, 107,
- 21, 22, 219, 73, 21, 22, 193, 147, 219, 73, 21, 22, 177, 21, 22, 220,
- 184, 21, 22, 219, 1, 21, 22, 194, 89, 219, 1, 21, 22, 219, 0, 21, 22,
- 194, 89, 219, 0, 21, 22, 218, 255, 21, 22, 194, 89, 218, 255, 21, 22,
- 218, 254, 21, 22, 194, 89, 218, 254, 21, 22, 218, 253, 21, 22, 194, 89,
- 218, 253, 21, 22, 219, 3, 21, 22, 194, 89, 219, 3, 21, 22, 219, 2, 21,
- 22, 194, 89, 219, 2, 21, 22, 165, 21, 22, 194, 89, 165, 21, 22, 217, 35,
- 165, 21, 22, 205, 223, 21, 22, 206, 89, 21, 22, 203, 125, 21, 22, 203,
- 97, 21, 22, 202, 212, 21, 22, 202, 183, 21, 22, 193, 147, 202, 183, 21,
- 22, 188, 21, 22, 206, 91, 21, 22, 201, 74, 21, 22, 194, 89, 201, 74, 21,
- 22, 201, 68, 21, 22, 194, 89, 201, 68, 21, 22, 201, 67, 21, 22, 194, 89,
- 201, 67, 21, 22, 201, 62, 21, 22, 194, 89, 201, 62, 21, 22, 201, 61, 21,
- 22, 194, 89, 201, 61, 21, 22, 201, 79, 21, 22, 194, 89, 201, 79, 21, 22,
- 201, 78, 21, 22, 194, 89, 201, 78, 21, 22, 215, 45, 201, 78, 21, 22, 206,
- 158, 21, 22, 250, 24, 206, 158, 21, 22, 201, 80, 21, 22, 247, 245, 206,
- 158, 21, 22, 216, 28, 203, 19, 21, 22, 215, 45, 203, 8, 21, 22, 215, 45,
- 206, 156, 21, 22, 215, 45, 202, 108, 21, 22, 215, 45, 201, 187, 21, 22,
- 215, 45, 203, 7, 21, 22, 215, 45, 205, 226, 21, 22, 204, 12, 21, 22, 203,
- 236, 21, 22, 203, 231, 21, 22, 203, 211, 21, 22, 203, 203, 21, 22, 204,
- 64, 21, 22, 204, 59, 21, 22, 203, 140, 21, 22, 194, 89, 203, 140, 21, 22,
- 203, 139, 21, 22, 194, 89, 203, 139, 21, 22, 203, 138, 21, 22, 194, 89,
- 203, 138, 21, 22, 203, 137, 21, 22, 194, 89, 203, 137, 21, 22, 203, 136,
- 21, 22, 194, 89, 203, 136, 21, 22, 203, 143, 21, 22, 194, 89, 203, 143,
- 21, 22, 203, 142, 21, 22, 194, 89, 203, 142, 21, 22, 204, 66, 21, 22,
- 193, 69, 21, 22, 193, 127, 21, 22, 193, 22, 21, 22, 193, 12, 21, 22, 193,
- 1, 21, 22, 192, 235, 21, 22, 193, 147, 192, 235, 21, 22, 168, 21, 22,
- 193, 129, 21, 22, 192, 170, 21, 22, 194, 89, 192, 170, 21, 22, 192, 169,
- 21, 22, 194, 89, 192, 169, 21, 22, 192, 168, 21, 22, 194, 89, 192, 168,
- 21, 22, 192, 167, 21, 22, 194, 89, 192, 167, 21, 22, 192, 166, 21, 22,
- 194, 89, 192, 166, 21, 22, 192, 172, 21, 22, 194, 89, 192, 172, 21, 22,
- 192, 171, 21, 22, 194, 89, 192, 171, 21, 22, 215, 45, 192, 171, 21, 22,
- 193, 148, 21, 22, 248, 39, 193, 148, 21, 22, 194, 89, 193, 148, 21, 22,
- 205, 255, 193, 22, 21, 22, 208, 7, 21, 22, 208, 111, 208, 7, 21, 22, 194,
- 89, 220, 42, 21, 22, 208, 67, 21, 22, 207, 151, 21, 22, 207, 88, 21, 22,
- 207, 55, 21, 22, 207, 28, 21, 22, 194, 89, 219, 107, 21, 22, 167, 21, 22,
- 208, 68, 21, 22, 194, 89, 177, 21, 22, 206, 175, 21, 22, 194, 89, 206,
- 175, 21, 22, 150, 21, 22, 194, 89, 150, 21, 22, 217, 35, 150, 21, 22,
- 233, 47, 21, 22, 233, 94, 21, 22, 233, 11, 21, 22, 232, 252, 21, 22, 232,
- 164, 21, 22, 232, 152, 21, 22, 233, 97, 21, 22, 233, 96, 21, 22, 232, 54,
- 21, 22, 194, 89, 232, 54, 21, 22, 233, 163, 21, 22, 199, 224, 21, 22,
- 215, 149, 199, 224, 21, 22, 199, 202, 21, 22, 215, 149, 199, 202, 21, 22,
- 199, 196, 21, 22, 215, 149, 199, 196, 21, 22, 199, 176, 21, 22, 199, 170,
- 21, 22, 199, 240, 21, 22, 199, 239, 21, 22, 199, 138, 21, 22, 194, 89,
- 199, 138, 21, 22, 199, 242, 21, 22, 198, 69, 21, 22, 198, 67, 21, 22,
- 198, 66, 21, 22, 198, 71, 21, 22, 198, 72, 21, 22, 197, 209, 21, 22, 197,
- 208, 21, 22, 197, 207, 21, 22, 197, 211, 21, 22, 212, 229, 229, 255, 21,
- 22, 212, 229, 229, 178, 21, 22, 212, 229, 229, 150, 21, 22, 212, 229,
- 229, 43, 21, 22, 212, 229, 229, 16, 21, 22, 212, 229, 144, 21, 22, 212,
- 229, 230, 99, 21, 22, 212, 229, 230, 124, 21, 22, 212, 228, 230, 124, 21,
- 22, 229, 133, 21, 22, 208, 235, 21, 22, 208, 201, 21, 22, 208, 195, 21,
- 22, 208, 189, 21, 22, 208, 184, 21, 22, 208, 239, 21, 22, 208, 238, 21,
- 22, 208, 247, 21, 22, 199, 49, 21, 22, 199, 47, 21, 22, 199, 46, 21, 22,
- 199, 50, 21, 22, 194, 89, 208, 7, 21, 22, 194, 89, 207, 151, 21, 22, 194,
- 89, 207, 55, 21, 22, 194, 89, 167, 21, 22, 214, 163, 21, 22, 214, 113,
- 21, 22, 214, 109, 21, 22, 214, 90, 21, 22, 214, 85, 21, 22, 214, 165, 21,
- 22, 214, 164, 21, 22, 214, 167, 21, 22, 213, 171, 21, 22, 205, 255, 204,
- 12, 21, 22, 205, 255, 203, 236, 21, 22, 205, 255, 203, 211, 21, 22, 205,
- 255, 204, 64, 21, 22, 194, 15, 199, 224, 21, 22, 194, 15, 199, 202, 21,
- 22, 194, 15, 199, 176, 21, 22, 194, 15, 199, 240, 21, 22, 194, 15, 199,
- 242, 21, 22, 219, 216, 21, 22, 219, 215, 21, 22, 219, 214, 21, 22, 219,
- 213, 21, 22, 219, 222, 21, 22, 219, 221, 21, 22, 219, 223, 21, 22, 199,
- 241, 199, 224, 21, 22, 199, 241, 199, 202, 21, 22, 199, 241, 199, 196,
- 21, 22, 199, 241, 199, 176, 21, 22, 199, 241, 199, 170, 21, 22, 199, 241,
- 199, 240, 21, 22, 199, 241, 199, 239, 21, 22, 199, 241, 199, 242, 21, 22,
- 251, 47, 249, 226, 21, 22, 247, 245, 71, 21, 22, 247, 245, 70, 21, 22,
- 247, 245, 74, 21, 22, 247, 245, 64, 21, 22, 247, 245, 194, 111, 21, 22,
- 247, 245, 194, 72, 21, 22, 247, 245, 194, 36, 21, 22, 247, 245, 194, 169,
- 21, 22, 247, 245, 214, 214, 21, 22, 247, 245, 214, 60, 21, 22, 247, 245,
- 213, 142, 21, 22, 247, 245, 181, 21, 22, 247, 245, 222, 57, 21, 22, 247,
- 245, 221, 204, 21, 22, 247, 245, 221, 113, 21, 22, 247, 245, 160, 21, 22,
- 205, 255, 229, 255, 21, 22, 205, 255, 229, 178, 21, 22, 205, 255, 229,
- 43, 21, 22, 205, 255, 144, 21, 22, 96, 231, 52, 21, 22, 96, 231, 56, 21,
- 22, 96, 231, 70, 21, 22, 96, 231, 69, 21, 22, 96, 231, 58, 21, 22, 96,
- 231, 84, 21, 22, 96, 206, 218, 21, 22, 96, 207, 55, 21, 22, 96, 208, 7,
- 21, 22, 96, 207, 234, 21, 22, 96, 207, 151, 21, 22, 96, 167, 21, 22, 96,
- 193, 244, 21, 22, 96, 194, 36, 21, 22, 96, 194, 111, 21, 22, 96, 194,
- 100, 21, 22, 96, 194, 72, 21, 22, 96, 194, 169, 21, 22, 96, 228, 140, 21,
- 22, 96, 228, 141, 21, 22, 96, 228, 144, 21, 22, 96, 228, 143, 21, 22, 96,
- 228, 142, 21, 22, 96, 228, 147, 21, 22, 96, 199, 148, 21, 22, 96, 199,
- 176, 21, 22, 96, 199, 224, 21, 22, 96, 199, 222, 21, 22, 96, 199, 202,
- 21, 22, 96, 199, 240, 21, 22, 96, 198, 50, 21, 22, 96, 198, 60, 21, 22,
- 96, 198, 78, 21, 22, 96, 198, 77, 21, 22, 96, 198, 62, 21, 22, 96, 198,
- 83, 21, 22, 96, 209, 51, 21, 22, 96, 209, 198, 21, 22, 96, 210, 181, 21,
- 22, 96, 210, 168, 21, 22, 96, 210, 51, 21, 22, 96, 166, 21, 22, 96, 211,
- 93, 21, 22, 96, 230, 186, 21, 22, 96, 230, 254, 21, 22, 96, 231, 158, 21,
- 22, 96, 231, 150, 21, 22, 96, 231, 46, 21, 22, 96, 231, 233, 21, 22, 96,
- 221, 213, 21, 22, 96, 221, 220, 21, 22, 96, 221, 234, 21, 22, 96, 221,
- 233, 21, 22, 96, 221, 227, 21, 22, 96, 221, 250, 21, 22, 96, 221, 134,
- 21, 22, 96, 221, 135, 21, 22, 96, 221, 138, 21, 22, 96, 221, 137, 21, 22,
- 96, 221, 136, 21, 22, 96, 221, 139, 21, 22, 96, 221, 140, 21, 22, 96,
- 213, 22, 21, 22, 96, 213, 142, 21, 22, 96, 214, 214, 21, 22, 96, 214,
- 203, 21, 22, 96, 214, 60, 21, 22, 96, 181, 21, 22, 96, 215, 241, 21, 22,
- 96, 216, 91, 21, 22, 96, 217, 48, 21, 22, 96, 217, 29, 21, 22, 96, 216,
- 175, 21, 22, 96, 172, 21, 22, 96, 192, 214, 21, 22, 96, 193, 1, 21, 22,
- 96, 193, 69, 21, 22, 96, 193, 66, 21, 22, 96, 193, 22, 21, 22, 96, 168,
- 21, 22, 96, 222, 214, 21, 22, 205, 255, 222, 214, 21, 22, 96, 222, 233,
- 21, 22, 96, 223, 41, 21, 22, 96, 223, 39, 21, 22, 96, 223, 20, 21, 22,
- 205, 255, 223, 20, 21, 22, 96, 223, 62, 21, 22, 96, 222, 247, 21, 22, 96,
- 222, 251, 21, 22, 96, 223, 5, 21, 22, 96, 223, 4, 21, 22, 96, 223, 3, 21,
- 22, 96, 223, 6, 21, 22, 96, 219, 36, 21, 22, 96, 219, 107, 21, 22, 96,
- 220, 42, 21, 22, 96, 220, 32, 21, 22, 96, 219, 209, 21, 22, 96, 177, 21,
- 22, 96, 236, 151, 21, 22, 96, 236, 152, 21, 22, 96, 236, 157, 21, 22, 96,
- 236, 156, 21, 22, 96, 236, 153, 21, 22, 96, 236, 158, 21, 22, 96, 219,
- 212, 21, 22, 96, 219, 214, 21, 22, 96, 219, 218, 21, 22, 96, 219, 217,
- 21, 22, 96, 219, 216, 21, 22, 96, 219, 222, 21, 22, 96, 199, 44, 21, 22,
- 96, 199, 46, 21, 22, 96, 199, 49, 21, 22, 96, 199, 48, 21, 22, 96, 199,
- 47, 21, 22, 96, 199, 50, 21, 22, 96, 199, 39, 21, 22, 96, 199, 40, 21,
- 22, 96, 199, 52, 21, 22, 96, 199, 51, 21, 22, 96, 199, 41, 21, 22, 96,
- 199, 53, 21, 22, 96, 191, 252, 21, 22, 96, 192, 8, 21, 22, 96, 192, 85,
- 21, 22, 96, 192, 82, 21, 22, 96, 192, 30, 21, 22, 96, 192, 112, 21, 22,
- 96, 192, 155, 21, 22, 96, 88, 192, 155, 21, 22, 96, 235, 4, 21, 22, 96,
- 235, 5, 21, 22, 96, 235, 14, 21, 22, 96, 235, 13, 21, 22, 96, 235, 8, 21,
- 22, 96, 235, 17, 21, 22, 96, 201, 184, 21, 22, 96, 202, 212, 21, 22, 96,
- 205, 223, 21, 22, 96, 205, 205, 21, 22, 96, 203, 125, 21, 22, 96, 188,
- 21, 22, 96, 203, 164, 21, 22, 96, 203, 211, 21, 22, 96, 204, 12, 21, 22,
- 96, 204, 10, 21, 22, 96, 203, 236, 21, 22, 96, 204, 64, 21, 22, 96, 204,
- 66, 21, 22, 96, 198, 91, 21, 22, 96, 198, 95, 21, 22, 96, 198, 112, 21,
- 22, 96, 198, 111, 21, 22, 96, 198, 97, 21, 22, 96, 198, 118, 21, 22, 96,
- 242, 168, 21, 22, 96, 242, 188, 21, 22, 96, 242, 245, 21, 22, 96, 242,
- 241, 21, 22, 96, 242, 215, 21, 22, 96, 246, 117, 21, 22, 96, 198, 53, 21,
- 22, 96, 198, 54, 21, 22, 96, 198, 57, 21, 22, 96, 198, 56, 21, 22, 96,
- 198, 55, 21, 22, 96, 198, 58, 21, 22, 242, 216, 57, 21, 22, 232, 71, 201,
- 238, 21, 22, 208, 231, 21, 22, 214, 161, 21, 22, 213, 168, 21, 22, 213,
- 167, 21, 22, 213, 166, 21, 22, 213, 165, 21, 22, 213, 170, 21, 22, 213,
- 169, 21, 22, 194, 15, 199, 136, 21, 22, 194, 15, 199, 135, 21, 22, 194,
- 15, 199, 134, 21, 22, 194, 15, 199, 133, 21, 22, 194, 15, 199, 132, 21,
- 22, 194, 15, 199, 139, 21, 22, 194, 15, 199, 138, 21, 22, 194, 15, 52,
- 199, 242, 21, 22, 247, 245, 194, 202, 211, 245, 202, 161, 77, 211, 245,
- 1, 248, 90, 211, 245, 1, 219, 22, 211, 245, 1, 233, 44, 211, 245, 1, 206,
- 73, 211, 245, 1, 214, 8, 211, 245, 1, 197, 116, 211, 245, 1, 237, 229,
- 211, 245, 1, 199, 77, 211, 245, 1, 242, 50, 211, 245, 1, 246, 145, 211,
- 245, 1, 215, 224, 211, 245, 1, 230, 233, 211, 245, 1, 214, 151, 211, 245,
- 1, 201, 231, 211, 245, 1, 206, 205, 211, 245, 1, 251, 59, 211, 245, 1,
- 211, 198, 211, 245, 1, 197, 27, 211, 245, 1, 234, 197, 211, 245, 1, 223,
- 115, 211, 245, 1, 234, 198, 211, 245, 1, 211, 163, 211, 245, 1, 197, 93,
- 211, 245, 1, 223, 230, 211, 245, 1, 234, 195, 211, 245, 1, 210, 158, 211,
- 245, 233, 43, 77, 211, 245, 207, 168, 233, 43, 77, 206, 194, 1, 233, 33,
- 233, 24, 233, 48, 233, 163, 206, 194, 1, 196, 236, 206, 194, 1, 197, 12,
- 197, 28, 68, 206, 194, 1, 192, 217, 206, 194, 1, 193, 148, 206, 194, 1,
- 194, 202, 206, 194, 1, 199, 141, 199, 140, 199, 168, 206, 194, 1, 233,
- 235, 206, 194, 1, 250, 187, 64, 206, 194, 1, 211, 145, 74, 206, 194, 1,
- 251, 147, 64, 206, 194, 1, 251, 92, 206, 194, 1, 219, 80, 74, 206, 194,
- 1, 203, 188, 74, 206, 194, 1, 74, 206, 194, 1, 212, 0, 206, 194, 1, 211,
- 211, 206, 194, 1, 208, 46, 208, 59, 207, 219, 150, 206, 194, 1, 222, 73,
- 206, 194, 1, 246, 141, 206, 194, 1, 222, 74, 222, 184, 206, 194, 1, 232,
- 44, 206, 194, 1, 234, 73, 206, 194, 1, 231, 153, 230, 130, 232, 44, 206,
- 194, 1, 231, 193, 206, 194, 1, 193, 236, 193, 227, 194, 202, 206, 194, 1,
- 230, 90, 230, 124, 206, 194, 1, 230, 94, 230, 124, 206, 194, 1, 219, 82,
- 230, 124, 206, 194, 1, 203, 191, 230, 124, 206, 194, 1, 215, 40, 212,
- 191, 215, 41, 215, 151, 206, 194, 1, 203, 189, 215, 151, 206, 194, 1,
- 235, 108, 206, 194, 1, 223, 93, 223, 97, 223, 84, 70, 206, 194, 1, 71,
- 206, 194, 1, 223, 31, 223, 65, 206, 194, 1, 231, 134, 206, 194, 1, 219,
- 83, 251, 108, 206, 194, 1, 203, 193, 64, 206, 194, 1, 223, 76, 234, 46,
- 206, 194, 1, 210, 113, 210, 138, 211, 93, 206, 194, 1, 251, 19, 234, 44,
- 206, 194, 1, 202, 167, 206, 158, 206, 194, 1, 203, 101, 219, 79, 206,
- 158, 206, 194, 1, 203, 187, 206, 158, 206, 194, 1, 247, 52, 206, 194, 1,
- 192, 155, 206, 194, 1, 199, 58, 199, 70, 197, 193, 200, 228, 206, 194, 1,
- 203, 186, 200, 228, 206, 194, 1, 238, 95, 206, 194, 1, 248, 68, 248, 71,
- 247, 251, 249, 226, 206, 194, 1, 203, 192, 249, 226, 206, 194, 1, 235,
- 107, 206, 194, 1, 211, 177, 206, 194, 1, 234, 151, 234, 158, 71, 206,
- 194, 1, 217, 149, 217, 161, 218, 236, 206, 194, 1, 219, 81, 218, 236,
- 206, 194, 1, 203, 190, 218, 236, 206, 194, 1, 220, 57, 220, 160, 219, 90,
- 165, 206, 194, 1, 235, 109, 206, 194, 1, 223, 163, 206, 194, 1, 223, 164,
- 206, 194, 1, 237, 243, 237, 249, 238, 95, 206, 194, 1, 211, 138, 233,
- 234, 74, 206, 194, 1, 234, 193, 206, 194, 1, 223, 113, 206, 194, 1, 238,
- 115, 206, 194, 1, 247, 2, 206, 194, 1, 246, 157, 206, 194, 1, 202, 25,
- 206, 194, 1, 219, 78, 206, 194, 1, 203, 185, 206, 194, 1, 228, 48, 206,
- 194, 1, 208, 247, 206, 194, 1, 193, 223, 206, 194, 203, 74, 209, 37, 206,
- 194, 215, 216, 209, 37, 206, 194, 238, 184, 209, 37, 206, 194, 250, 94,
- 109, 206, 194, 197, 252, 109, 206, 194, 248, 88, 109, 206, 194, 1, 222,
- 184, 206, 194, 1, 204, 66, 206, 194, 1, 211, 194, 206, 194, 1, 232, 101,
- 246, 196, 211, 144, 206, 194, 1, 232, 101, 246, 196, 223, 96, 206, 194,
- 1, 232, 101, 246, 196, 234, 157, 206, 194, 1, 232, 101, 246, 196, 251,
- 146, 206, 194, 1, 232, 101, 246, 196, 251, 92, 200, 154, 1, 64, 200, 154,
- 1, 70, 200, 154, 1, 68, 200, 154, 1, 160, 200, 154, 1, 231, 233, 200,
- 154, 1, 214, 165, 200, 154, 1, 189, 200, 154, 1, 238, 0, 200, 154, 1,
- 181, 200, 154, 1, 166, 200, 154, 1, 249, 3, 200, 154, 1, 172, 200, 154,
- 1, 168, 200, 154, 1, 177, 200, 154, 1, 194, 169, 200, 154, 1, 188, 200,
- 154, 1, 144, 200, 154, 18, 3, 70, 200, 154, 18, 3, 68, 200, 154, 3, 196,
- 11, 230, 32, 1, 64, 230, 32, 1, 70, 230, 32, 1, 68, 230, 32, 1, 160, 230,
- 32, 1, 231, 233, 230, 32, 1, 214, 165, 230, 32, 1, 189, 230, 32, 1, 238,
- 0, 230, 32, 1, 181, 230, 32, 1, 166, 230, 32, 1, 249, 3, 230, 32, 1, 172,
- 230, 32, 1, 168, 230, 32, 1, 167, 230, 32, 1, 177, 230, 32, 1, 194, 169,
- 230, 32, 1, 188, 230, 32, 1, 144, 230, 32, 18, 3, 70, 230, 32, 18, 3, 68,
- 230, 32, 3, 211, 28, 210, 70, 203, 74, 209, 37, 210, 70, 55, 209, 37,
- 247, 114, 1, 64, 247, 114, 1, 70, 247, 114, 1, 68, 247, 114, 1, 160, 247,
- 114, 1, 231, 233, 247, 114, 1, 214, 165, 247, 114, 1, 189, 247, 114, 1,
- 238, 0, 247, 114, 1, 181, 247, 114, 1, 166, 247, 114, 1, 249, 3, 247,
- 114, 1, 172, 247, 114, 1, 168, 247, 114, 1, 167, 247, 114, 1, 177, 247,
- 114, 1, 194, 169, 247, 114, 1, 188, 247, 114, 1, 144, 247, 114, 18, 3,
- 70, 247, 114, 18, 3, 68, 200, 153, 1, 64, 200, 153, 1, 70, 200, 153, 1,
- 68, 200, 153, 1, 160, 200, 153, 1, 231, 233, 200, 153, 1, 214, 165, 200,
- 153, 1, 189, 200, 153, 1, 238, 0, 200, 153, 1, 181, 200, 153, 1, 166,
- 200, 153, 1, 249, 3, 200, 153, 1, 172, 200, 153, 1, 168, 200, 153, 1,
- 177, 200, 153, 1, 194, 169, 200, 153, 1, 188, 200, 153, 18, 3, 70, 200,
- 153, 18, 3, 68, 93, 1, 160, 93, 1, 221, 250, 93, 1, 221, 113, 93, 1, 221,
- 220, 93, 1, 214, 90, 93, 1, 247, 19, 93, 1, 246, 117, 93, 1, 242, 63, 93,
- 1, 242, 188, 93, 1, 212, 165, 93, 1, 238, 0, 93, 1, 198, 71, 93, 1, 236,
- 146, 93, 1, 198, 66, 93, 1, 213, 148, 93, 1, 189, 93, 1, 199, 240, 93, 1,
- 155, 93, 1, 199, 176, 93, 1, 213, 142, 93, 1, 249, 3, 93, 1, 210, 94, 93,
- 1, 209, 198, 93, 1, 210, 65, 93, 1, 216, 91, 93, 1, 193, 1, 93, 1, 207,
- 55, 93, 1, 219, 107, 93, 1, 195, 252, 93, 1, 204, 64, 93, 1, 202, 51, 93,
- 1, 188, 93, 1, 144, 93, 1, 177, 93, 1, 208, 239, 93, 223, 177, 18, 208,
- 225, 93, 223, 177, 18, 208, 238, 93, 223, 177, 18, 208, 201, 93, 223,
- 177, 18, 208, 195, 93, 223, 177, 18, 208, 177, 93, 223, 177, 18, 208,
- 146, 93, 223, 177, 18, 208, 134, 93, 223, 177, 18, 208, 133, 93, 223,
- 177, 18, 206, 167, 93, 223, 177, 18, 206, 160, 93, 223, 177, 18, 218,
- 251, 93, 223, 177, 18, 218, 239, 93, 223, 177, 18, 208, 219, 93, 223,
- 177, 18, 208, 231, 93, 223, 177, 18, 208, 185, 197, 206, 101, 93, 223,
- 177, 18, 208, 185, 197, 206, 104, 93, 223, 177, 18, 208, 221, 93, 18,
- 223, 161, 250, 135, 93, 18, 223, 161, 252, 33, 93, 18, 3, 252, 33, 93,
- 18, 3, 70, 93, 18, 3, 223, 224, 93, 18, 3, 193, 148, 93, 18, 3, 192, 165,
- 93, 18, 3, 68, 93, 18, 3, 196, 251, 93, 18, 3, 197, 119, 93, 18, 3, 212,
- 0, 93, 18, 3, 168, 93, 18, 3, 223, 251, 93, 18, 3, 71, 93, 18, 3, 251,
- 108, 93, 18, 3, 251, 63, 93, 18, 3, 211, 194, 93, 18, 3, 250, 8, 93, 3,
- 214, 25, 93, 3, 208, 0, 93, 3, 192, 176, 93, 3, 215, 179, 93, 3, 198,
- 173, 93, 3, 248, 196, 93, 3, 207, 44, 93, 3, 199, 28, 93, 3, 222, 128,
- 93, 3, 251, 65, 93, 3, 206, 41, 206, 33, 93, 3, 196, 8, 93, 3, 242, 54,
- 93, 3, 248, 166, 93, 3, 221, 241, 93, 3, 248, 191, 93, 3, 246, 246, 210,
- 13, 220, 245, 93, 3, 220, 9, 198, 254, 93, 3, 248, 56, 93, 3, 210, 67,
- 215, 234, 93, 3, 221, 86, 93, 238, 137, 16, 207, 135, 93, 3, 249, 245,
- 93, 3, 250, 11, 93, 17, 192, 76, 93, 17, 101, 93, 17, 104, 93, 17, 133,
- 93, 17, 134, 93, 17, 151, 93, 17, 170, 93, 17, 179, 93, 17, 174, 93, 17,
- 182, 93, 16, 220, 9, 250, 13, 202, 186, 93, 16, 220, 9, 250, 13, 215,
- 200, 93, 16, 220, 9, 250, 13, 210, 12, 93, 16, 220, 9, 250, 13, 248, 91,
- 93, 16, 220, 9, 250, 13, 247, 94, 93, 16, 220, 9, 250, 13, 209, 129, 93,
- 16, 220, 9, 250, 13, 209, 123, 93, 16, 220, 9, 250, 13, 209, 121, 93, 16,
- 220, 9, 250, 13, 209, 127, 93, 16, 220, 9, 250, 13, 209, 125, 100, 248,
- 11, 100, 234, 105, 100, 242, 38, 100, 232, 71, 201, 238, 100, 242, 47,
- 100, 232, 119, 236, 111, 100, 199, 27, 202, 198, 228, 111, 100, 203, 117,
- 5, 247, 184, 217, 122, 100, 217, 157, 242, 38, 100, 217, 157, 232, 71,
- 201, 238, 100, 214, 6, 100, 232, 100, 65, 205, 190, 101, 100, 232, 100,
- 65, 205, 190, 104, 100, 232, 100, 65, 205, 190, 133, 100, 18, 204, 165,
- 100, 17, 192, 76, 100, 17, 101, 100, 17, 104, 100, 17, 133, 100, 17, 134,
- 100, 17, 151, 100, 17, 170, 100, 17, 179, 100, 17, 174, 100, 17, 182,
- 100, 1, 64, 100, 1, 71, 100, 1, 70, 100, 1, 74, 100, 1, 68, 100, 1, 212,
- 0, 100, 1, 197, 104, 100, 1, 234, 171, 100, 1, 181, 100, 1, 250, 214,
- 100, 1, 249, 3, 100, 1, 166, 100, 1, 208, 239, 100, 1, 231, 233, 100, 1,
- 172, 100, 1, 177, 100, 1, 188, 100, 1, 204, 64, 100, 1, 189, 100, 1, 238,
- 0, 100, 1, 246, 117, 100, 1, 223, 62, 100, 1, 168, 100, 1, 167, 100, 1,
- 194, 169, 100, 1, 233, 97, 100, 1, 160, 100, 1, 221, 250, 100, 1, 198,
- 118, 100, 1, 192, 112, 100, 1, 230, 99, 100, 1, 192, 0, 100, 1, 219, 222,
- 100, 1, 192, 57, 100, 1, 242, 215, 100, 1, 199, 27, 184, 18, 57, 100, 1,
- 199, 27, 71, 100, 1, 199, 27, 70, 100, 1, 199, 27, 74, 100, 1, 199, 27,
- 68, 100, 1, 199, 27, 212, 0, 100, 1, 199, 27, 197, 104, 100, 1, 199, 27,
- 250, 214, 100, 1, 199, 27, 249, 3, 100, 1, 199, 27, 166, 100, 1, 199, 27,
- 208, 239, 100, 1, 199, 27, 231, 233, 100, 1, 199, 27, 172, 100, 1, 199,
- 27, 189, 100, 1, 199, 27, 238, 0, 100, 1, 199, 27, 246, 117, 100, 1, 199,
- 27, 223, 62, 100, 1, 199, 27, 198, 118, 100, 1, 199, 27, 168, 100, 1,
- 199, 27, 194, 169, 100, 1, 199, 27, 160, 100, 1, 199, 27, 231, 230, 100,
- 1, 199, 27, 230, 99, 100, 1, 199, 27, 223, 19, 100, 1, 199, 27, 214, 50,
- 100, 1, 199, 27, 235, 17, 100, 1, 203, 117, 71, 100, 1, 203, 117, 70,
- 100, 1, 203, 117, 223, 73, 100, 1, 203, 117, 197, 104, 100, 1, 203, 117,
- 68, 100, 1, 203, 117, 250, 214, 100, 1, 203, 117, 160, 100, 1, 203, 117,
- 231, 233, 100, 1, 203, 117, 144, 100, 1, 203, 117, 166, 100, 1, 203, 117,
- 204, 64, 100, 1, 203, 117, 189, 100, 1, 203, 117, 238, 0, 100, 1, 203,
- 117, 223, 62, 100, 1, 203, 117, 233, 97, 100, 1, 203, 117, 231, 230, 100,
- 1, 203, 117, 230, 99, 100, 1, 203, 117, 198, 118, 100, 1, 203, 117, 192,
- 112, 100, 1, 203, 117, 208, 68, 100, 1, 203, 117, 246, 117, 100, 1, 203,
- 117, 192, 71, 100, 1, 217, 157, 70, 100, 1, 217, 157, 160, 100, 1, 217,
- 157, 167, 100, 1, 217, 157, 233, 97, 100, 1, 217, 157, 192, 71, 100, 1,
- 246, 118, 4, 103, 236, 111, 100, 1, 251, 18, 231, 213, 250, 169, 101,
- 100, 1, 251, 18, 231, 213, 196, 7, 101, 100, 1, 251, 18, 231, 213, 237,
- 217, 100, 1, 251, 18, 231, 213, 197, 114, 100, 1, 251, 18, 231, 213, 223,
- 121, 197, 114, 100, 1, 251, 18, 231, 213, 248, 210, 100, 1, 251, 18, 231,
- 213, 112, 248, 210, 100, 1, 251, 18, 231, 213, 64, 100, 1, 251, 18, 231,
- 213, 70, 100, 1, 251, 18, 231, 213, 160, 100, 1, 251, 18, 231, 213, 214,
- 165, 100, 1, 251, 18, 231, 213, 247, 19, 100, 1, 251, 18, 231, 213, 198,
- 83, 100, 1, 251, 18, 231, 213, 198, 71, 100, 1, 251, 18, 231, 213, 237,
- 161, 100, 1, 251, 18, 231, 213, 213, 178, 100, 1, 251, 18, 231, 213, 189,
- 100, 1, 251, 18, 231, 213, 238, 0, 100, 1, 251, 18, 231, 213, 166, 100,
- 1, 251, 18, 231, 213, 210, 94, 100, 1, 251, 18, 231, 213, 202, 92, 100,
- 1, 251, 18, 231, 213, 192, 71, 100, 1, 251, 18, 231, 213, 192, 112, 100,
- 1, 251, 18, 231, 213, 251, 72, 100, 1, 199, 27, 251, 18, 231, 213, 189,
- 100, 1, 199, 27, 251, 18, 231, 213, 192, 71, 100, 1, 217, 157, 251, 18,
- 231, 213, 231, 84, 100, 1, 217, 157, 251, 18, 231, 213, 214, 165, 100, 1,
- 217, 157, 251, 18, 231, 213, 247, 19, 100, 1, 217, 157, 251, 18, 231,
- 213, 223, 28, 100, 1, 217, 157, 251, 18, 231, 213, 198, 83, 100, 1, 217,
- 157, 251, 18, 231, 213, 237, 145, 100, 1, 217, 157, 251, 18, 231, 213,
- 189, 100, 1, 217, 157, 251, 18, 231, 213, 237, 40, 100, 1, 217, 157, 251,
- 18, 231, 213, 202, 92, 100, 1, 217, 157, 251, 18, 231, 213, 238, 109,
- 100, 1, 217, 157, 251, 18, 231, 213, 192, 71, 100, 1, 217, 157, 251, 18,
- 231, 213, 192, 112, 100, 1, 251, 18, 231, 213, 138, 68, 100, 1, 251, 18,
- 231, 213, 138, 168, 100, 1, 217, 157, 251, 18, 231, 213, 248, 54, 100, 1,
- 251, 18, 231, 213, 237, 244, 100, 1, 217, 157, 251, 18, 231, 213, 219,
- 222, 21, 22, 211, 98, 21, 22, 249, 236, 21, 22, 251, 243, 21, 22, 194,
- 114, 21, 22, 209, 135, 21, 22, 210, 190, 21, 22, 209, 0, 21, 22, 200, 88,
- 21, 22, 222, 64, 21, 22, 220, 235, 21, 22, 217, 92, 21, 22, 213, 93, 21,
- 22, 215, 35, 21, 22, 220, 52, 21, 22, 202, 165, 21, 22, 206, 1, 21, 22,
- 203, 173, 21, 22, 204, 16, 21, 22, 203, 135, 21, 22, 192, 223, 21, 22,
- 193, 75, 21, 22, 208, 15, 21, 22, 212, 207, 21, 22, 211, 233, 212, 207,
- 21, 22, 212, 206, 21, 22, 211, 233, 212, 206, 21, 22, 212, 205, 21, 22,
- 211, 233, 212, 205, 21, 22, 212, 204, 21, 22, 211, 233, 212, 204, 21, 22,
- 206, 172, 21, 22, 206, 171, 21, 22, 206, 170, 21, 22, 206, 169, 21, 22,
- 206, 168, 21, 22, 206, 176, 21, 22, 211, 233, 211, 93, 21, 22, 211, 233,
- 200, 228, 21, 22, 211, 233, 222, 184, 21, 22, 211, 233, 247, 52, 21, 22,
- 211, 233, 218, 236, 21, 22, 211, 233, 215, 151, 21, 22, 211, 233, 206,
- 158, 21, 22, 211, 233, 204, 66, 21, 22, 234, 184, 194, 202, 21, 22, 194,
- 88, 194, 202, 21, 22, 52, 2, 207, 81, 21, 22, 52, 208, 39, 236, 114, 21,
- 22, 208, 111, 206, 173, 21, 22, 194, 89, 219, 73, 21, 22, 194, 89, 220,
- 184, 21, 22, 199, 137, 21, 22, 199, 139, 21, 22, 198, 63, 21, 22, 198,
- 65, 21, 22, 198, 70, 21, 22, 199, 43, 21, 22, 199, 45, 21, 22, 205, 255,
- 203, 140, 21, 22, 205, 255, 203, 203, 21, 22, 205, 255, 229, 16, 21, 22,
- 96, 230, 138, 21, 22, 96, 237, 74, 231, 150, 21, 22, 96, 231, 230, 21,
- 22, 96, 230, 143, 21, 22, 205, 255, 222, 194, 21, 22, 96, 222, 192, 21,
- 22, 248, 112, 237, 74, 165, 21, 22, 248, 112, 237, 74, 150, 21, 22, 96,
- 237, 69, 206, 158, 219, 185, 195, 229, 219, 235, 219, 185, 1, 160, 219,
- 185, 1, 221, 250, 219, 185, 1, 231, 233, 219, 185, 1, 231, 84, 219, 185,
- 1, 214, 165, 219, 185, 1, 247, 19, 219, 185, 1, 246, 117, 219, 185, 1,
- 223, 62, 219, 185, 1, 223, 28, 219, 185, 1, 193, 97, 219, 185, 1, 189,
- 219, 185, 1, 199, 240, 219, 185, 1, 238, 0, 219, 185, 1, 237, 40, 219,
- 185, 1, 181, 219, 185, 1, 166, 219, 185, 1, 210, 94, 219, 185, 1, 249, 3,
- 219, 185, 1, 248, 54, 219, 185, 1, 172, 219, 185, 1, 168, 219, 185, 1,
- 167, 219, 185, 1, 177, 219, 185, 1, 194, 169, 219, 185, 1, 204, 64, 219,
- 185, 1, 202, 92, 219, 185, 1, 188, 219, 185, 1, 144, 219, 185, 1, 230,
- 134, 219, 185, 1, 198, 223, 219, 185, 18, 3, 64, 219, 185, 18, 3, 70,
- 219, 185, 18, 3, 68, 219, 185, 18, 3, 234, 171, 219, 185, 18, 3, 251, 63,
- 219, 185, 18, 3, 211, 194, 219, 185, 18, 3, 250, 8, 219, 185, 18, 3, 71,
- 219, 185, 18, 3, 74, 219, 185, 201, 164, 1, 168, 219, 185, 201, 164, 1,
- 167, 219, 185, 201, 164, 1, 194, 169, 219, 185, 2, 1, 160, 219, 185, 2,
- 1, 214, 165, 219, 185, 2, 1, 250, 168, 219, 185, 2, 1, 189, 219, 185, 2,
- 1, 181, 219, 185, 2, 1, 166, 219, 185, 2, 1, 172, 219, 185, 2, 1, 167,
- 219, 185, 2, 1, 177, 219, 185, 3, 215, 221, 219, 185, 3, 222, 36, 219,
- 185, 3, 206, 92, 219, 185, 3, 219, 73, 219, 185, 233, 204, 77, 219, 185,
- 208, 159, 77, 219, 185, 17, 192, 76, 219, 185, 17, 101, 219, 185, 17,
- 104, 219, 185, 17, 133, 219, 185, 17, 134, 219, 185, 17, 151, 219, 185,
- 17, 170, 219, 185, 17, 179, 219, 185, 17, 174, 219, 185, 17, 182, 53,
- 220, 43, 1, 160, 53, 220, 43, 1, 193, 209, 53, 220, 43, 1, 214, 165, 53,
- 220, 43, 1, 198, 118, 53, 220, 43, 1, 188, 53, 220, 43, 1, 168, 53, 220,
- 43, 1, 189, 53, 220, 43, 1, 199, 240, 53, 220, 43, 1, 177, 53, 220, 43,
- 1, 166, 53, 220, 43, 1, 210, 94, 53, 220, 43, 1, 172, 53, 220, 43, 1,
- 233, 97, 53, 220, 43, 1, 196, 157, 53, 220, 43, 1, 144, 53, 220, 43, 1,
- 208, 239, 53, 220, 43, 1, 221, 250, 53, 220, 43, 1, 198, 108, 53, 220,
- 43, 1, 181, 53, 220, 43, 1, 64, 53, 220, 43, 1, 70, 53, 220, 43, 1, 234,
- 171, 53, 220, 43, 1, 234, 157, 53, 220, 43, 1, 68, 53, 220, 43, 1, 211,
- 194, 53, 220, 43, 1, 74, 53, 220, 43, 1, 197, 104, 53, 220, 43, 1, 71,
- 53, 220, 43, 1, 250, 6, 53, 220, 43, 1, 251, 63, 53, 220, 43, 1, 199, 16,
- 53, 220, 43, 1, 199, 15, 53, 220, 43, 1, 199, 14, 53, 220, 43, 1, 199,
- 13, 53, 220, 43, 1, 199, 12, 214, 177, 53, 219, 30, 1, 139, 208, 239,
- 214, 177, 53, 219, 30, 1, 132, 208, 239, 214, 177, 53, 219, 30, 1, 139,
- 160, 214, 177, 53, 219, 30, 1, 139, 193, 209, 214, 177, 53, 219, 30, 1,
- 139, 214, 165, 214, 177, 53, 219, 30, 1, 132, 160, 214, 177, 53, 219, 30,
- 1, 132, 193, 209, 214, 177, 53, 219, 30, 1, 132, 214, 165, 214, 177, 53,
- 219, 30, 1, 139, 198, 118, 214, 177, 53, 219, 30, 1, 139, 188, 214, 177,
- 53, 219, 30, 1, 139, 168, 214, 177, 53, 219, 30, 1, 132, 198, 118, 214,
- 177, 53, 219, 30, 1, 132, 188, 214, 177, 53, 219, 30, 1, 132, 168, 214,
- 177, 53, 219, 30, 1, 139, 189, 214, 177, 53, 219, 30, 1, 139, 199, 240,
- 214, 177, 53, 219, 30, 1, 139, 181, 214, 177, 53, 219, 30, 1, 132, 189,
- 214, 177, 53, 219, 30, 1, 132, 199, 240, 214, 177, 53, 219, 30, 1, 132,
- 181, 214, 177, 53, 219, 30, 1, 139, 166, 214, 177, 53, 219, 30, 1, 139,
- 210, 94, 214, 177, 53, 219, 30, 1, 139, 172, 214, 177, 53, 219, 30, 1,
- 132, 166, 214, 177, 53, 219, 30, 1, 132, 210, 94, 214, 177, 53, 219, 30,
- 1, 132, 172, 214, 177, 53, 219, 30, 1, 139, 233, 97, 214, 177, 53, 219,
- 30, 1, 139, 196, 157, 214, 177, 53, 219, 30, 1, 139, 177, 214, 177, 53,
- 219, 30, 1, 132, 233, 97, 214, 177, 53, 219, 30, 1, 132, 196, 157, 214,
- 177, 53, 219, 30, 1, 132, 177, 214, 177, 53, 219, 30, 1, 139, 144, 214,
- 177, 53, 219, 30, 1, 139, 238, 0, 214, 177, 53, 219, 30, 1, 139, 249, 3,
- 214, 177, 53, 219, 30, 1, 132, 144, 214, 177, 53, 219, 30, 1, 132, 238,
- 0, 214, 177, 53, 219, 30, 1, 132, 249, 3, 214, 177, 53, 219, 30, 1, 139,
- 220, 240, 214, 177, 53, 219, 30, 1, 139, 193, 174, 214, 177, 53, 219, 30,
- 1, 132, 220, 240, 214, 177, 53, 219, 30, 1, 132, 193, 174, 214, 177, 53,
- 219, 30, 1, 139, 201, 175, 214, 177, 53, 219, 30, 1, 132, 201, 175, 214,
- 177, 53, 219, 30, 18, 3, 18, 203, 183, 214, 177, 53, 219, 30, 18, 3, 252,
- 33, 214, 177, 53, 219, 30, 18, 3, 223, 224, 214, 177, 53, 219, 30, 18, 3,
- 68, 214, 177, 53, 219, 30, 18, 3, 196, 251, 214, 177, 53, 219, 30, 18, 3,
- 71, 214, 177, 53, 219, 30, 18, 3, 251, 108, 214, 177, 53, 219, 30, 18, 3,
- 74, 214, 177, 53, 219, 30, 18, 3, 212, 26, 214, 177, 53, 219, 30, 18, 3,
- 197, 104, 214, 177, 53, 219, 30, 18, 3, 249, 236, 214, 177, 53, 219, 30,
- 18, 3, 251, 243, 214, 177, 53, 219, 30, 18, 3, 196, 243, 214, 177, 53,
- 219, 30, 18, 3, 211, 98, 214, 177, 53, 219, 30, 18, 3, 212, 23, 214, 177,
- 53, 219, 30, 18, 3, 197, 99, 214, 177, 53, 219, 30, 18, 3, 223, 73, 214,
- 177, 53, 219, 30, 1, 52, 196, 236, 214, 177, 53, 219, 30, 1, 52, 214,
- 167, 214, 177, 53, 219, 30, 1, 52, 215, 151, 214, 177, 53, 219, 30, 1,
- 52, 218, 236, 214, 177, 53, 219, 30, 1, 52, 222, 184, 214, 177, 53, 219,
- 30, 1, 52, 238, 95, 214, 177, 53, 219, 30, 1, 52, 249, 226, 214, 177, 53,
- 219, 30, 158, 217, 126, 214, 177, 53, 219, 30, 158, 217, 125, 214, 177,
- 53, 219, 30, 17, 192, 76, 214, 177, 53, 219, 30, 17, 101, 214, 177, 53,
- 219, 30, 17, 104, 214, 177, 53, 219, 30, 17, 133, 214, 177, 53, 219, 30,
- 17, 134, 214, 177, 53, 219, 30, 17, 151, 214, 177, 53, 219, 30, 17, 170,
- 214, 177, 53, 219, 30, 17, 179, 214, 177, 53, 219, 30, 17, 174, 214, 177,
- 53, 219, 30, 17, 182, 214, 177, 53, 219, 30, 126, 17, 101, 214, 177, 53,
- 219, 30, 3, 220, 166, 214, 177, 53, 219, 30, 3, 220, 165, 93, 16, 210,
- 201, 93, 16, 215, 201, 221, 105, 93, 16, 210, 13, 221, 105, 93, 16, 248,
- 92, 221, 105, 93, 16, 247, 95, 221, 105, 93, 16, 209, 130, 221, 105, 93,
- 16, 209, 124, 221, 105, 93, 16, 209, 122, 221, 105, 93, 16, 209, 128,
- 221, 105, 93, 16, 209, 126, 221, 105, 93, 16, 237, 202, 221, 105, 93, 16,
- 237, 198, 221, 105, 93, 16, 237, 197, 221, 105, 93, 16, 237, 200, 221,
- 105, 93, 16, 237, 199, 221, 105, 93, 16, 237, 196, 221, 105, 93, 16, 198,
- 2, 93, 16, 215, 201, 207, 42, 93, 16, 210, 13, 207, 42, 93, 16, 248, 92,
- 207, 42, 93, 16, 247, 95, 207, 42, 93, 16, 209, 130, 207, 42, 93, 16,
- 209, 124, 207, 42, 93, 16, 209, 122, 207, 42, 93, 16, 209, 128, 207, 42,
- 93, 16, 209, 126, 207, 42, 93, 16, 237, 202, 207, 42, 93, 16, 237, 198,
- 207, 42, 93, 16, 237, 197, 207, 42, 93, 16, 237, 200, 207, 42, 93, 16,
- 237, 199, 207, 42, 93, 16, 237, 196, 207, 42, 247, 115, 1, 160, 247, 115,
- 1, 231, 233, 247, 115, 1, 214, 165, 247, 115, 1, 214, 108, 247, 115, 1,
- 166, 247, 115, 1, 249, 3, 247, 115, 1, 172, 247, 115, 1, 215, 247, 247,
- 115, 1, 189, 247, 115, 1, 238, 0, 247, 115, 1, 181, 247, 115, 1, 213, 88,
- 247, 115, 1, 247, 19, 247, 115, 1, 223, 62, 247, 115, 1, 212, 201, 247,
- 115, 1, 212, 192, 247, 115, 1, 168, 247, 115, 1, 167, 247, 115, 1, 177,
- 247, 115, 1, 196, 157, 247, 115, 1, 188, 247, 115, 1, 64, 247, 115, 1,
- 144, 247, 115, 18, 3, 70, 247, 115, 18, 3, 68, 247, 115, 18, 3, 71, 247,
- 115, 18, 3, 74, 247, 115, 18, 3, 251, 108, 247, 115, 211, 42, 247, 115,
- 234, 80, 80, 205, 208, 53, 126, 1, 139, 160, 53, 126, 1, 139, 221, 250,
- 53, 126, 1, 139, 220, 224, 53, 126, 1, 132, 160, 53, 126, 1, 132, 220,
- 224, 53, 126, 1, 132, 221, 250, 53, 126, 1, 214, 165, 53, 126, 1, 139,
- 247, 19, 53, 126, 1, 139, 246, 117, 53, 126, 1, 132, 247, 19, 53, 126, 1,
- 132, 188, 53, 126, 1, 132, 246, 117, 53, 126, 1, 212, 201, 53, 126, 1,
- 208, 21, 53, 126, 1, 139, 208, 19, 53, 126, 1, 238, 0, 53, 126, 1, 132,
- 208, 19, 53, 126, 1, 208, 30, 53, 126, 1, 139, 189, 53, 126, 1, 139, 199,
- 240, 53, 126, 1, 132, 189, 53, 126, 1, 132, 199, 240, 53, 126, 1, 181,
- 53, 126, 1, 249, 3, 53, 126, 1, 139, 166, 53, 126, 1, 139, 210, 94, 53,
- 126, 1, 139, 233, 97, 53, 126, 1, 132, 166, 53, 126, 1, 132, 233, 97, 53,
- 126, 1, 132, 210, 94, 53, 126, 1, 172, 53, 126, 1, 132, 168, 53, 126, 1,
- 139, 168, 53, 126, 1, 167, 53, 126, 1, 206, 207, 53, 126, 1, 177, 53,
- 126, 1, 219, 29, 53, 126, 1, 194, 169, 53, 126, 1, 139, 204, 64, 53, 126,
- 1, 139, 202, 92, 53, 126, 1, 139, 188, 53, 126, 1, 139, 144, 53, 126, 1,
- 219, 137, 53, 126, 1, 64, 53, 126, 1, 132, 144, 53, 126, 1, 70, 53, 126,
- 1, 223, 224, 53, 126, 1, 68, 53, 126, 1, 196, 251, 53, 126, 1, 234, 171,
- 53, 126, 1, 211, 194, 53, 126, 1, 220, 166, 53, 126, 1, 230, 206, 188,
- 53, 126, 116, 3, 217, 35, 167, 53, 126, 116, 3, 217, 35, 177, 53, 126,
- 116, 3, 220, 185, 200, 122, 220, 155, 53, 126, 3, 217, 181, 222, 118,
- 220, 155, 53, 126, 116, 3, 52, 214, 165, 53, 126, 116, 3, 132, 166, 53,
- 126, 116, 3, 139, 208, 20, 211, 164, 132, 166, 53, 126, 116, 3, 172, 53,
- 126, 116, 3, 249, 3, 53, 126, 116, 3, 188, 53, 126, 3, 206, 66, 53, 126,
- 18, 3, 64, 53, 126, 18, 3, 217, 181, 206, 20, 53, 126, 18, 3, 252, 33,
- 53, 126, 18, 3, 200, 132, 252, 33, 53, 126, 18, 3, 70, 53, 126, 18, 3,
- 223, 224, 53, 126, 18, 3, 197, 104, 53, 126, 18, 3, 196, 250, 53, 126,
- 18, 3, 68, 53, 126, 18, 3, 196, 251, 53, 126, 18, 3, 74, 53, 126, 18, 3,
- 212, 27, 63, 53, 126, 18, 3, 211, 98, 53, 126, 18, 3, 71, 53, 126, 18, 3,
- 251, 108, 53, 126, 18, 3, 211, 194, 53, 126, 18, 3, 251, 63, 53, 126, 18,
- 3, 126, 251, 63, 53, 126, 18, 3, 212, 27, 58, 53, 126, 3, 217, 181, 222,
- 117, 53, 126, 3, 199, 17, 53, 126, 3, 199, 16, 53, 126, 3, 221, 209, 199,
- 15, 53, 126, 3, 221, 209, 199, 14, 53, 126, 3, 221, 209, 199, 13, 53,
- 126, 3, 208, 76, 230, 98, 53, 126, 3, 217, 181, 206, 50, 53, 126, 3, 221,
- 208, 222, 98, 53, 126, 38, 238, 165, 236, 114, 53, 126, 229, 7, 17, 192,
- 76, 53, 126, 229, 7, 17, 101, 53, 126, 229, 7, 17, 104, 53, 126, 229, 7,
- 17, 133, 53, 126, 229, 7, 17, 134, 53, 126, 229, 7, 17, 151, 53, 126,
- 229, 7, 17, 170, 53, 126, 229, 7, 17, 179, 53, 126, 229, 7, 17, 174, 53,
- 126, 229, 7, 17, 182, 53, 126, 126, 17, 192, 76, 53, 126, 126, 17, 101,
- 53, 126, 126, 17, 104, 53, 126, 126, 17, 133, 53, 126, 126, 17, 134, 53,
- 126, 126, 17, 151, 53, 126, 126, 17, 170, 53, 126, 126, 17, 179, 53, 126,
- 126, 17, 174, 53, 126, 126, 17, 182, 53, 126, 3, 194, 66, 53, 126, 3,
- 194, 65, 53, 126, 3, 206, 5, 53, 126, 3, 222, 25, 53, 126, 3, 228, 191,
- 53, 126, 3, 236, 129, 53, 126, 3, 207, 168, 207, 16, 208, 30, 53, 126, 3,
- 217, 181, 193, 98, 53, 126, 3, 222, 152, 53, 126, 3, 222, 151, 53, 126,
- 3, 206, 15, 53, 126, 3, 206, 14, 53, 126, 3, 230, 35, 53, 126, 3, 247,
- 16, 38, 235, 101, 242, 122, 251, 143, 38, 237, 13, 38, 223, 167, 38, 235,
- 92, 54, 38, 198, 170, 236, 114, 38, 193, 222, 63, 38, 194, 58, 219, 176,
- 63, 38, 211, 184, 122, 63, 38, 55, 211, 184, 122, 63, 38, 152, 246, 139,
- 201, 208, 63, 38, 201, 194, 246, 139, 201, 208, 63, 38, 210, 232, 58, 38,
- 55, 210, 232, 58, 38, 210, 232, 63, 38, 210, 232, 211, 110, 38, 8, 2, 1,
- 194, 203, 63, 38, 8, 2, 1, 163, 194, 203, 63, 148, 3, 197, 87, 207, 138,
- 148, 3, 197, 87, 246, 236, 148, 3, 246, 154, 148, 3, 201, 98, 148, 3,
- 248, 8, 148, 1, 251, 42, 148, 1, 251, 43, 200, 58, 148, 1, 223, 220, 148,
- 1, 223, 221, 200, 58, 148, 1, 197, 90, 148, 1, 197, 91, 200, 58, 148, 1,
- 208, 76, 207, 201, 148, 1, 208, 76, 207, 202, 200, 58, 148, 1, 220, 185,
- 220, 3, 148, 1, 220, 185, 220, 4, 200, 58, 148, 1, 234, 129, 148, 1, 251,
- 60, 148, 1, 211, 229, 148, 1, 211, 230, 200, 58, 148, 1, 160, 148, 1,
- 222, 174, 217, 184, 148, 1, 231, 233, 148, 1, 231, 234, 230, 239, 148, 1,
- 214, 165, 148, 1, 247, 19, 148, 1, 247, 20, 220, 171, 148, 1, 223, 62,
- 148, 1, 223, 63, 223, 32, 148, 1, 212, 201, 148, 1, 200, 181, 220, 62,
- 148, 1, 200, 181, 215, 196, 217, 184, 148, 1, 238, 1, 215, 196, 250, 254,
- 148, 1, 238, 1, 215, 196, 217, 184, 148, 1, 215, 97, 208, 33, 148, 1,
- 189, 148, 1, 200, 181, 200, 92, 148, 1, 238, 0, 148, 1, 238, 1, 217, 206,
- 148, 1, 181, 148, 1, 166, 148, 1, 211, 78, 222, 110, 148, 1, 249, 3, 148,
- 1, 249, 4, 222, 37, 148, 1, 172, 148, 1, 168, 148, 1, 167, 148, 1, 177,
- 148, 1, 194, 169, 148, 1, 206, 101, 206, 78, 148, 1, 206, 101, 206, 27,
- 148, 1, 188, 148, 1, 144, 148, 3, 207, 191, 148, 18, 3, 200, 58, 148, 18,
- 3, 197, 86, 148, 18, 3, 197, 87, 206, 23, 148, 18, 3, 201, 133, 148, 18,
- 3, 201, 134, 223, 212, 148, 18, 3, 208, 76, 207, 201, 148, 18, 3, 208,
- 76, 207, 202, 200, 58, 148, 18, 3, 220, 185, 220, 3, 148, 18, 3, 220,
- 185, 220, 4, 200, 58, 148, 18, 3, 200, 133, 148, 18, 3, 200, 134, 207,
- 201, 148, 18, 3, 200, 134, 200, 58, 148, 18, 3, 200, 134, 207, 202, 200,
- 58, 148, 18, 3, 210, 136, 148, 18, 3, 210, 137, 200, 58, 148, 251, 120,
- 251, 119, 148, 1, 222, 140, 206, 22, 148, 1, 221, 215, 206, 22, 148, 1,
- 197, 186, 206, 22, 148, 1, 234, 165, 206, 22, 148, 1, 196, 124, 206, 22,
- 148, 1, 192, 102, 206, 22, 148, 1, 250, 29, 206, 22, 148, 17, 192, 76,
- 148, 17, 101, 148, 17, 104, 148, 17, 133, 148, 17, 134, 148, 17, 151,
- 148, 17, 170, 148, 17, 179, 148, 17, 174, 148, 17, 182, 148, 211, 5, 148,
- 211, 34, 148, 194, 50, 148, 246, 209, 211, 27, 148, 246, 209, 203, 94,
- 148, 246, 209, 210, 229, 148, 211, 33, 148, 35, 16, 236, 121, 148, 35,
- 16, 237, 73, 148, 35, 16, 235, 45, 148, 35, 16, 237, 206, 148, 35, 16,
- 237, 207, 201, 98, 148, 35, 16, 236, 214, 148, 35, 16, 237, 248, 148, 35,
- 16, 237, 49, 148, 35, 16, 237, 230, 148, 35, 16, 237, 207, 231, 152, 148,
- 35, 16, 38, 200, 51, 148, 35, 16, 38, 234, 77, 148, 35, 16, 38, 222, 32,
- 148, 35, 16, 38, 222, 34, 148, 35, 16, 38, 223, 36, 148, 35, 16, 38, 222,
- 33, 4, 223, 36, 148, 35, 16, 38, 222, 35, 4, 223, 36, 148, 35, 16, 38,
- 248, 77, 148, 35, 16, 38, 230, 243, 148, 35, 16, 207, 99, 211, 184, 235,
- 56, 148, 35, 16, 207, 99, 211, 184, 237, 246, 148, 35, 16, 207, 99, 242,
- 84, 198, 31, 148, 35, 16, 207, 99, 242, 84, 200, 143, 148, 35, 16, 220,
- 26, 211, 184, 211, 19, 148, 35, 16, 220, 26, 211, 184, 209, 35, 148, 35,
- 16, 220, 26, 242, 84, 209, 228, 148, 35, 16, 220, 26, 242, 84, 209, 211,
- 148, 35, 16, 220, 26, 211, 184, 209, 255, 201, 122, 3, 211, 2, 201, 122,
- 3, 211, 15, 201, 122, 3, 211, 11, 201, 122, 1, 64, 201, 122, 1, 70, 201,
- 122, 1, 68, 201, 122, 1, 251, 108, 201, 122, 1, 74, 201, 122, 1, 71, 201,
- 122, 1, 233, 230, 201, 122, 1, 160, 201, 122, 1, 208, 239, 201, 122, 1,
- 231, 233, 201, 122, 1, 214, 165, 201, 122, 1, 247, 19, 201, 122, 1, 223,
- 62, 201, 122, 1, 192, 112, 201, 122, 1, 212, 201, 201, 122, 1, 189, 201,
- 122, 1, 238, 0, 201, 122, 1, 181, 201, 122, 1, 166, 201, 122, 1, 233, 97,
- 201, 122, 1, 196, 157, 201, 122, 1, 249, 3, 201, 122, 1, 172, 201, 122,
- 1, 168, 201, 122, 1, 167, 201, 122, 1, 177, 201, 122, 1, 194, 169, 201,
- 122, 1, 188, 201, 122, 1, 193, 209, 201, 122, 1, 144, 201, 122, 116, 3,
- 211, 31, 201, 122, 116, 3, 211, 4, 201, 122, 116, 3, 211, 1, 201, 122,
- 18, 3, 211, 18, 201, 122, 18, 3, 211, 0, 201, 122, 18, 3, 211, 24, 201,
- 122, 18, 3, 211, 10, 201, 122, 18, 3, 211, 32, 201, 122, 18, 3, 211, 20,
- 201, 122, 3, 211, 35, 201, 122, 3, 196, 11, 201, 122, 116, 3, 210, 217,
- 172, 201, 122, 116, 3, 210, 217, 194, 169, 201, 122, 1, 221, 250, 201,
- 122, 1, 201, 55, 201, 122, 17, 192, 76, 201, 122, 17, 101, 201, 122, 17,
- 104, 201, 122, 17, 133, 201, 122, 17, 134, 201, 122, 17, 151, 201, 122,
- 17, 170, 201, 122, 17, 179, 201, 122, 17, 174, 201, 122, 17, 182, 201,
- 122, 249, 246, 201, 122, 1, 207, 171, 201, 122, 1, 219, 232, 201, 122, 1,
- 248, 54, 201, 122, 1, 52, 222, 184, 201, 122, 1, 52, 218, 236, 248, 169,
- 1, 64, 248, 169, 1, 203, 86, 64, 248, 169, 1, 144, 248, 169, 1, 203, 86,
- 144, 248, 169, 1, 217, 155, 144, 248, 169, 1, 249, 3, 248, 169, 1, 222,
- 95, 249, 3, 248, 169, 1, 166, 248, 169, 1, 203, 86, 166, 248, 169, 1,
- 181, 248, 169, 1, 217, 155, 181, 248, 169, 1, 194, 169, 248, 169, 1, 203,
- 86, 194, 169, 248, 169, 1, 211, 50, 194, 169, 248, 169, 1, 231, 233, 248,
- 169, 1, 203, 86, 231, 233, 248, 169, 1, 223, 62, 248, 169, 1, 238, 0,
- 248, 169, 1, 167, 248, 169, 1, 203, 86, 167, 248, 169, 1, 172, 248, 169,
- 1, 203, 86, 172, 248, 169, 1, 202, 169, 189, 248, 169, 1, 213, 115, 189,
- 248, 169, 1, 188, 248, 169, 1, 203, 86, 188, 248, 169, 1, 217, 155, 188,
- 248, 169, 1, 168, 248, 169, 1, 203, 86, 168, 248, 169, 1, 214, 165, 248,
- 169, 1, 177, 248, 169, 1, 203, 86, 177, 248, 169, 1, 212, 201, 248, 169,
- 1, 247, 19, 248, 169, 1, 214, 255, 248, 169, 1, 217, 82, 248, 169, 1, 70,
- 248, 169, 1, 68, 248, 169, 3, 199, 21, 248, 169, 18, 3, 71, 248, 169, 18,
- 3, 211, 50, 71, 248, 169, 18, 3, 234, 171, 248, 169, 18, 3, 70, 248, 169,
- 18, 3, 222, 95, 70, 248, 169, 18, 3, 74, 248, 169, 18, 3, 222, 95, 74,
- 248, 169, 18, 3, 68, 248, 169, 18, 3, 124, 39, 203, 86, 188, 248, 169,
- 116, 3, 214, 167, 248, 169, 116, 3, 230, 124, 248, 169, 211, 13, 248,
- 169, 211, 9, 248, 169, 16, 248, 18, 215, 97, 216, 238, 248, 169, 16, 248,
- 18, 210, 5, 248, 169, 16, 248, 18, 222, 211, 248, 169, 16, 248, 18, 211,
- 13, 219, 243, 1, 160, 219, 243, 1, 221, 132, 219, 243, 1, 221, 250, 219,
- 243, 1, 231, 233, 219, 243, 1, 231, 14, 219, 243, 1, 214, 165, 219, 243,
- 1, 247, 19, 219, 243, 1, 246, 117, 219, 243, 1, 223, 62, 219, 243, 1,
- 212, 201, 219, 243, 1, 189, 219, 243, 1, 199, 240, 219, 243, 1, 238, 0,
- 219, 243, 1, 181, 219, 243, 1, 166, 219, 243, 1, 209, 234, 219, 243, 1,
- 210, 94, 219, 243, 1, 233, 97, 219, 243, 1, 232, 208, 219, 243, 1, 249,
- 3, 219, 243, 1, 247, 249, 219, 243, 1, 172, 219, 243, 1, 216, 98, 219,
- 243, 1, 198, 118, 219, 243, 1, 198, 108, 219, 243, 1, 235, 17, 219, 243,
- 1, 168, 219, 243, 1, 167, 219, 243, 1, 177, 219, 243, 1, 144, 219, 243,
- 1, 229, 131, 219, 243, 1, 196, 157, 219, 243, 1, 188, 219, 243, 1, 204,
- 64, 219, 243, 1, 194, 169, 219, 243, 1, 64, 219, 243, 201, 164, 1, 168,
- 219, 243, 201, 164, 1, 167, 219, 243, 18, 3, 252, 33, 219, 243, 18, 3,
- 70, 219, 243, 18, 3, 74, 219, 243, 18, 3, 211, 194, 219, 243, 18, 3, 68,
- 219, 243, 18, 3, 196, 251, 219, 243, 18, 3, 71, 219, 243, 116, 3, 222,
- 184, 219, 243, 116, 3, 218, 236, 219, 243, 116, 3, 165, 219, 243, 116, 3,
- 215, 151, 219, 243, 116, 3, 211, 93, 219, 243, 116, 3, 150, 219, 243,
- 116, 3, 200, 228, 219, 243, 116, 3, 212, 173, 219, 243, 116, 3, 222, 117,
- 219, 243, 3, 208, 31, 219, 243, 3, 212, 241, 219, 243, 209, 38, 200, 176,
- 219, 243, 209, 38, 212, 185, 199, 131, 200, 176, 219, 243, 209, 38, 246,
- 126, 219, 243, 209, 38, 198, 100, 246, 126, 219, 243, 209, 38, 198, 99,
- 219, 243, 17, 192, 76, 219, 243, 17, 101, 219, 243, 17, 104, 219, 243,
- 17, 133, 219, 243, 17, 134, 219, 243, 17, 151, 219, 243, 17, 170, 219,
- 243, 17, 179, 219, 243, 17, 174, 219, 243, 17, 182, 219, 243, 1, 198, 83,
- 219, 243, 1, 198, 71, 219, 243, 1, 237, 161, 211, 227, 242, 208, 17, 192,
- 76, 211, 227, 242, 208, 17, 101, 211, 227, 242, 208, 17, 104, 211, 227,
- 242, 208, 17, 133, 211, 227, 242, 208, 17, 134, 211, 227, 242, 208, 17,
- 151, 211, 227, 242, 208, 17, 170, 211, 227, 242, 208, 17, 179, 211, 227,
- 242, 208, 17, 174, 211, 227, 242, 208, 17, 182, 211, 227, 242, 208, 1,
- 177, 211, 227, 242, 208, 1, 250, 26, 211, 227, 242, 208, 1, 251, 80, 211,
- 227, 242, 208, 1, 250, 214, 211, 227, 242, 208, 1, 251, 35, 211, 227,
- 242, 208, 1, 220, 184, 211, 227, 242, 208, 1, 251, 251, 211, 227, 242,
- 208, 1, 251, 252, 211, 227, 242, 208, 1, 251, 250, 211, 227, 242, 208, 1,
- 251, 244, 211, 227, 242, 208, 1, 219, 209, 211, 227, 242, 208, 1, 223,
- 96, 211, 227, 242, 208, 1, 223, 225, 211, 227, 242, 208, 1, 223, 118,
- 211, 227, 242, 208, 1, 223, 105, 211, 227, 242, 208, 1, 219, 36, 211,
- 227, 242, 208, 1, 197, 111, 211, 227, 242, 208, 1, 197, 109, 211, 227,
- 242, 208, 1, 197, 47, 211, 227, 242, 208, 1, 196, 243, 211, 227, 242,
- 208, 1, 220, 42, 211, 227, 242, 208, 1, 234, 41, 211, 227, 242, 208, 1,
- 234, 174, 211, 227, 242, 208, 1, 234, 88, 211, 227, 242, 208, 1, 234, 13,
- 211, 227, 242, 208, 1, 219, 107, 211, 227, 242, 208, 1, 211, 135, 211,
- 227, 242, 208, 1, 212, 22, 211, 227, 242, 208, 1, 211, 120, 211, 227,
- 242, 208, 1, 211, 241, 211, 227, 242, 208, 215, 242, 198, 48, 211, 227,
- 242, 208, 231, 228, 198, 49, 211, 227, 242, 208, 215, 236, 198, 49, 211,
- 227, 242, 208, 207, 216, 211, 227, 242, 208, 210, 92, 211, 227, 242, 208,
- 251, 71, 211, 227, 242, 208, 209, 38, 215, 232, 211, 227, 242, 208, 209,
- 38, 55, 215, 232, 42, 2, 1, 207, 7, 196, 123, 42, 2, 1, 219, 77, 237,
- 116, 42, 2, 1, 215, 50, 74, 42, 2, 1, 194, 64, 234, 9, 42, 2, 1, 200,
- 132, 200, 79, 42, 2, 1, 199, 156, 200, 79, 42, 2, 1, 200, 132, 230, 26,
- 57, 42, 2, 1, 200, 132, 193, 84, 42, 2, 1, 197, 72, 197, 92, 98, 215,
- 243, 6, 1, 250, 224, 98, 215, 243, 6, 1, 248, 207, 98, 215, 243, 6, 1,
- 231, 203, 98, 215, 243, 6, 1, 236, 123, 98, 215, 243, 6, 1, 234, 88, 98,
- 215, 243, 6, 1, 196, 20, 98, 215, 243, 6, 1, 192, 79, 98, 215, 243, 6, 1,
- 200, 125, 98, 215, 243, 6, 1, 223, 190, 98, 215, 243, 6, 1, 222, 121, 98,
- 215, 243, 6, 1, 220, 67, 98, 215, 243, 6, 1, 217, 160, 98, 215, 243, 6,
- 1, 215, 51, 98, 215, 243, 6, 1, 211, 211, 98, 215, 243, 6, 1, 210, 247,
- 98, 215, 243, 6, 1, 192, 67, 98, 215, 243, 6, 1, 208, 53, 98, 215, 243,
- 6, 1, 206, 40, 98, 215, 243, 6, 1, 200, 112, 98, 215, 243, 6, 1, 197, 77,
- 98, 215, 243, 6, 1, 210, 86, 98, 215, 243, 6, 1, 221, 237, 98, 215, 243,
- 6, 1, 231, 75, 98, 215, 243, 6, 1, 208, 224, 98, 215, 243, 6, 1, 203,
- 224, 98, 215, 243, 6, 1, 242, 201, 98, 215, 243, 6, 1, 246, 243, 98, 215,
- 243, 6, 1, 223, 10, 98, 215, 243, 6, 1, 242, 138, 98, 215, 243, 6, 1,
- 246, 101, 98, 215, 243, 6, 1, 193, 207, 98, 215, 243, 6, 1, 223, 25, 98,
- 215, 243, 6, 1, 230, 95, 98, 215, 243, 6, 1, 229, 255, 98, 215, 243, 6,
- 1, 229, 165, 98, 215, 243, 6, 1, 194, 111, 98, 215, 243, 6, 1, 230, 28,
- 98, 215, 243, 6, 1, 229, 31, 98, 215, 243, 6, 1, 233, 11, 98, 215, 243,
- 6, 1, 193, 3, 98, 215, 243, 6, 1, 234, 107, 98, 215, 243, 6, 1, 163, 231,
- 203, 98, 215, 243, 6, 1, 251, 57, 98, 215, 243, 6, 1, 251, 97, 98, 215,
- 243, 6, 1, 230, 26, 57, 98, 215, 243, 6, 1, 220, 175, 57, 201, 122, 209,
- 38, 248, 18, 201, 91, 201, 122, 209, 38, 248, 18, 211, 14, 201, 122, 209,
- 38, 248, 18, 209, 25, 201, 122, 209, 38, 248, 18, 247, 4, 201, 122, 209,
- 38, 248, 18, 219, 233, 206, 19, 201, 122, 209, 38, 248, 18, 222, 174,
- 206, 19, 201, 122, 209, 38, 248, 18, 238, 1, 206, 19, 201, 122, 209, 38,
- 248, 18, 249, 4, 206, 19, 196, 120, 158, 222, 91, 196, 120, 158, 204, 29,
- 196, 120, 158, 209, 109, 196, 120, 3, 214, 28, 196, 120, 3, 193, 106,
- 216, 158, 201, 82, 196, 120, 158, 193, 106, 251, 76, 223, 177, 201, 82,
- 196, 120, 158, 193, 106, 223, 177, 201, 82, 196, 120, 158, 193, 106, 222,
- 79, 223, 177, 201, 82, 196, 120, 158, 246, 237, 63, 196, 120, 158, 193,
- 106, 222, 79, 223, 177, 201, 83, 205, 242, 196, 120, 158, 55, 201, 82,
- 196, 120, 158, 198, 170, 201, 82, 196, 120, 158, 222, 79, 250, 170, 196,
- 120, 158, 78, 63, 196, 120, 158, 103, 236, 112, 63, 196, 120, 158, 112,
- 236, 112, 63, 196, 120, 158, 207, 89, 222, 90, 223, 177, 201, 82, 196,
- 120, 158, 250, 23, 223, 177, 201, 82, 196, 120, 3, 196, 7, 201, 82, 196,
- 120, 3, 196, 7, 197, 106, 196, 120, 3, 207, 168, 196, 7, 197, 106, 196,
- 120, 3, 196, 7, 250, 170, 196, 120, 3, 207, 168, 196, 7, 250, 170, 196,
- 120, 3, 196, 7, 197, 107, 4, 200, 147, 196, 120, 3, 196, 7, 250, 171, 4,
- 200, 147, 196, 120, 3, 250, 169, 250, 185, 196, 120, 3, 250, 169, 248,
- 226, 196, 120, 3, 250, 169, 196, 147, 196, 120, 3, 250, 169, 196, 148, 4,
- 200, 147, 196, 120, 3, 199, 64, 196, 120, 3, 229, 190, 184, 250, 168,
- 196, 120, 3, 184, 250, 168, 196, 120, 3, 206, 220, 184, 250, 168, 196,
- 120, 3, 250, 169, 197, 113, 215, 223, 196, 120, 3, 250, 108, 196, 120, 3,
- 207, 16, 250, 108, 196, 120, 158, 246, 237, 58, 196, 120, 3, 223, 13,
- 196, 120, 3, 197, 39, 196, 120, 3, 250, 21, 196, 120, 158, 207, 82, 58,
- 196, 120, 158, 55, 207, 82, 58, 196, 120, 3, 55, 250, 169, 250, 185, 8,
- 1, 2, 6, 64, 8, 1, 2, 6, 251, 108, 8, 2, 1, 163, 251, 108, 8, 1, 2, 6,
- 248, 188, 249, 226, 8, 1, 2, 6, 247, 52, 8, 1, 2, 6, 238, 95, 8, 1, 2, 6,
- 233, 235, 8, 1, 2, 6, 71, 8, 2, 1, 163, 211, 184, 71, 8, 2, 1, 163, 70,
- 8, 1, 2, 6, 223, 65, 8, 1, 2, 6, 222, 184, 8, 1, 2, 6, 220, 202, 4, 111,
- 8, 1, 2, 6, 218, 236, 8, 1, 2, 6, 207, 168, 215, 151, 8, 1, 2, 6, 74, 8,
- 1, 2, 6, 211, 184, 74, 8, 2, 1, 203, 109, 74, 8, 2, 1, 203, 109, 211,
- 184, 74, 8, 2, 1, 203, 109, 185, 4, 111, 8, 2, 1, 163, 212, 0, 8, 1, 2,
- 6, 211, 130, 8, 2, 1, 198, 249, 138, 74, 8, 2, 1, 247, 188, 138, 74, 8,
- 1, 2, 6, 211, 93, 8, 1, 2, 6, 207, 168, 150, 8, 1, 2, 6, 163, 150, 8, 1,
- 2, 6, 200, 228, 8, 1, 2, 6, 68, 8, 2, 1, 203, 109, 68, 8, 2, 1, 203, 109,
- 237, 12, 68, 8, 2, 1, 203, 109, 163, 218, 236, 8, 1, 2, 6, 196, 236, 8,
- 1, 2, 6, 194, 202, 8, 1, 2, 6, 192, 155, 8, 1, 2, 6, 233, 166, 8, 1, 195,
- 248, 220, 68, 202, 131, 8, 1, 251, 57, 33, 1, 2, 6, 231, 204, 33, 1, 2,
- 6, 220, 90, 33, 1, 2, 6, 210, 51, 33, 1, 2, 6, 207, 153, 33, 1, 2, 6,
- 209, 62, 42, 1, 2, 6, 234, 124, 73, 1, 6, 64, 73, 1, 6, 251, 108, 73, 1,
- 6, 249, 226, 73, 1, 6, 248, 188, 249, 226, 73, 1, 6, 238, 95, 73, 1, 6,
- 71, 73, 1, 6, 207, 168, 71, 73, 1, 6, 232, 44, 73, 1, 6, 230, 124, 73, 1,
- 6, 70, 73, 1, 6, 223, 65, 73, 1, 6, 222, 184, 73, 1, 6, 165, 73, 1, 6,
- 218, 236, 73, 1, 6, 215, 151, 73, 1, 6, 207, 168, 215, 151, 73, 1, 6, 74,
- 73, 1, 6, 211, 130, 73, 1, 6, 211, 93, 73, 1, 6, 150, 73, 1, 6, 200, 228,
- 73, 1, 6, 68, 73, 1, 6, 194, 202, 73, 1, 2, 64, 73, 1, 2, 163, 64, 73, 1,
- 2, 250, 252, 73, 1, 2, 163, 251, 108, 73, 1, 2, 249, 226, 73, 1, 2, 238,
- 95, 73, 1, 2, 71, 73, 1, 2, 205, 240, 73, 1, 2, 211, 184, 71, 73, 1, 2,
- 163, 211, 184, 71, 73, 1, 2, 232, 44, 73, 1, 2, 163, 70, 73, 1, 2, 222,
- 184, 73, 1, 2, 218, 236, 73, 1, 2, 234, 73, 73, 1, 2, 74, 73, 1, 2, 211,
- 184, 74, 73, 1, 2, 198, 249, 138, 74, 73, 1, 2, 247, 188, 138, 74, 73, 1,
- 2, 211, 93, 73, 1, 2, 200, 228, 73, 1, 2, 68, 73, 1, 2, 203, 109, 68, 73,
- 1, 2, 163, 218, 236, 73, 1, 2, 196, 236, 73, 1, 2, 251, 57, 73, 1, 2,
- 248, 63, 73, 1, 2, 33, 231, 204, 73, 1, 2, 237, 76, 73, 1, 2, 33, 210,
- 77, 73, 1, 2, 242, 215, 8, 201, 155, 2, 1, 70, 8, 201, 155, 2, 1, 150, 8,
- 201, 155, 2, 1, 68, 8, 201, 155, 2, 1, 196, 236, 33, 201, 155, 2, 1, 248,
- 63, 33, 201, 155, 2, 1, 231, 204, 33, 201, 155, 2, 1, 207, 153, 33, 201,
- 155, 2, 1, 210, 77, 33, 201, 155, 2, 1, 242, 215, 8, 2, 1, 197, 104, 8,
- 2, 1, 76, 4, 85, 199, 90, 8, 2, 1, 238, 96, 4, 85, 199, 90, 8, 2, 1, 233,
- 164, 4, 85, 199, 90, 8, 2, 1, 218, 237, 4, 85, 199, 90, 8, 2, 1, 215,
- 152, 4, 85, 199, 90, 8, 2, 1, 211, 94, 4, 85, 199, 90, 8, 2, 1, 208, 112,
- 4, 85, 199, 90, 8, 2, 1, 208, 112, 4, 232, 222, 26, 85, 199, 90, 8, 2, 1,
- 206, 159, 4, 85, 199, 90, 8, 2, 1, 200, 229, 4, 85, 199, 90, 8, 2, 1,
- 192, 156, 4, 85, 199, 90, 8, 2, 1, 163, 232, 44, 73, 1, 42, 234, 88, 8,
- 2, 1, 223, 143, 232, 44, 8, 2, 1, 199, 243, 4, 201, 212, 8, 2, 6, 1, 228,
- 97, 4, 111, 8, 2, 1, 223, 112, 4, 111, 8, 2, 1, 211, 94, 4, 111, 8, 2, 6,
- 1, 124, 4, 111, 8, 2, 1, 197, 35, 4, 111, 8, 2, 1, 76, 4, 211, 49, 128,
- 8, 2, 1, 238, 96, 4, 211, 49, 128, 8, 2, 1, 233, 164, 4, 211, 49, 128, 8,
- 2, 1, 232, 45, 4, 211, 49, 128, 8, 2, 1, 222, 185, 4, 211, 49, 128, 8, 2,
- 1, 220, 202, 4, 211, 49, 128, 8, 2, 1, 218, 237, 4, 211, 49, 128, 8, 2,
- 1, 215, 152, 4, 211, 49, 128, 8, 2, 1, 211, 94, 4, 211, 49, 128, 8, 2, 1,
- 208, 112, 4, 211, 49, 128, 8, 2, 1, 206, 159, 4, 211, 49, 128, 8, 2, 1,
- 234, 0, 4, 211, 49, 128, 8, 2, 1, 196, 237, 4, 211, 49, 128, 8, 2, 1,
- 193, 224, 4, 211, 49, 128, 8, 2, 1, 192, 156, 4, 211, 49, 128, 8, 2, 1,
- 41, 4, 207, 174, 128, 8, 2, 1, 250, 253, 4, 207, 174, 128, 8, 2, 1, 238,
- 96, 4, 229, 15, 26, 200, 147, 8, 2, 1, 234, 253, 4, 207, 174, 128, 8, 2,
- 1, 211, 184, 234, 253, 4, 207, 174, 128, 8, 2, 1, 207, 168, 211, 184,
- 234, 253, 4, 207, 174, 128, 8, 2, 1, 205, 241, 4, 207, 174, 128, 8, 2, 1,
- 228, 97, 4, 207, 174, 128, 8, 2, 1, 211, 184, 185, 4, 207, 174, 128, 8,
- 2, 1, 234, 0, 4, 207, 174, 128, 8, 2, 1, 124, 4, 207, 174, 128, 8, 2, 1,
- 233, 167, 4, 207, 174, 128, 73, 1, 2, 163, 250, 252, 73, 1, 2, 247, 52,
- 73, 1, 2, 247, 53, 4, 238, 142, 73, 1, 2, 233, 235, 73, 1, 2, 207, 168,
- 211, 184, 71, 73, 1, 2, 233, 163, 73, 1, 2, 236, 113, 223, 66, 4, 111,
- 73, 1, 2, 27, 232, 44, 73, 1, 2, 163, 230, 124, 73, 1, 2, 228, 97, 4,
- 111, 73, 1, 2, 223, 111, 73, 1, 2, 6, 70, 73, 1, 2, 6, 228, 97, 4, 111,
- 73, 1, 2, 223, 66, 4, 238, 178, 73, 1, 2, 220, 202, 4, 207, 174, 128, 73,
- 1, 2, 220, 202, 4, 211, 49, 128, 73, 1, 2, 6, 165, 73, 1, 2, 218, 237, 4,
- 128, 73, 1, 2, 163, 218, 237, 4, 184, 220, 16, 73, 1, 2, 215, 152, 4, 46,
- 128, 73, 1, 2, 215, 152, 4, 207, 174, 128, 73, 1, 2, 6, 215, 151, 73, 1,
- 2, 248, 188, 74, 73, 1, 2, 210, 77, 73, 1, 2, 206, 159, 4, 128, 73, 1, 2,
- 233, 255, 73, 1, 2, 200, 229, 4, 211, 49, 128, 73, 1, 2, 124, 161, 73, 1,
- 2, 197, 34, 73, 1, 2, 6, 68, 73, 1, 2, 196, 237, 4, 128, 73, 1, 2, 163,
- 196, 236, 73, 1, 2, 192, 155, 73, 1, 2, 192, 156, 4, 207, 174, 128, 73,
- 1, 2, 192, 156, 4, 238, 142, 73, 1, 2, 233, 166, 73, 1, 2, 199, 206, 38,
- 235, 111, 230, 211, 251, 143, 38, 235, 111, 251, 130, 251, 143, 38, 202,
- 225, 63, 38, 201, 89, 77, 38, 217, 213, 38, 230, 208, 38, 217, 211, 38,
- 251, 127, 38, 230, 209, 38, 251, 128, 38, 8, 2, 1, 208, 112, 63, 38, 247,
- 149, 38, 217, 212, 38, 55, 242, 122, 58, 38, 211, 244, 58, 38, 192, 21,
- 63, 38, 223, 97, 63, 38, 197, 28, 58, 38, 197, 11, 58, 38, 8, 2, 1, 232,
- 192, 211, 184, 41, 58, 38, 8, 2, 1, 251, 108, 38, 8, 2, 1, 250, 166, 38,
- 8, 2, 1, 249, 247, 38, 8, 2, 1, 247, 53, 246, 151, 38, 8, 2, 1, 223, 143,
- 238, 95, 38, 8, 2, 1, 233, 235, 38, 8, 2, 1, 232, 44, 38, 8, 1, 2, 6,
- 232, 44, 38, 8, 2, 1, 222, 184, 38, 8, 2, 1, 165, 38, 8, 1, 2, 6, 165,
- 38, 8, 1, 2, 6, 218, 236, 38, 8, 2, 1, 215, 151, 38, 8, 1, 2, 6, 215,
- 151, 38, 8, 1, 2, 6, 150, 38, 8, 2, 1, 208, 112, 207, 10, 38, 8, 2, 1,
- 206, 158, 38, 8, 2, 1, 184, 206, 158, 38, 8, 2, 1, 192, 155, 38, 8, 2, 1,
- 250, 252, 38, 8, 2, 1, 249, 226, 38, 8, 2, 1, 248, 63, 38, 8, 2, 1, 205,
- 240, 38, 8, 2, 1, 233, 163, 38, 8, 2, 1, 220, 202, 4, 55, 85, 199, 90,
- 38, 8, 2, 1, 185, 4, 152, 246, 139, 111, 38, 8, 2, 1, 211, 93, 38, 8, 2,
- 1, 233, 255, 38, 8, 2, 1, 124, 4, 152, 246, 139, 111, 38, 8, 2, 1, 194,
- 202, 38, 8, 2, 1, 41, 4, 237, 14, 38, 8, 2, 1, 185, 4, 237, 14, 38, 8, 2,
- 1, 124, 4, 237, 14, 38, 130, 200, 160, 58, 38, 222, 70, 95, 207, 101, 38,
- 222, 70, 95, 220, 28, 38, 78, 95, 220, 28, 38, 194, 64, 223, 121, 247,
- 143, 63, 38, 237, 85, 77, 38, 55, 223, 121, 247, 151, 63, 38, 251, 1,
- 187, 115, 63, 38, 46, 250, 78, 58, 38, 51, 250, 78, 26, 142, 250, 78, 63,
- 8, 6, 1, 41, 4, 207, 82, 63, 8, 2, 1, 41, 4, 207, 82, 63, 8, 6, 1, 76, 4,
- 78, 58, 8, 2, 1, 76, 4, 78, 58, 8, 6, 1, 76, 4, 78, 63, 8, 2, 1, 76, 4,
- 78, 63, 8, 6, 1, 76, 4, 219, 176, 63, 8, 2, 1, 76, 4, 219, 176, 63, 8, 6,
- 1, 247, 53, 4, 246, 152, 26, 251, 129, 8, 2, 1, 247, 53, 4, 246, 152, 26,
- 251, 129, 8, 6, 1, 238, 96, 4, 78, 58, 8, 2, 1, 238, 96, 4, 78, 58, 8, 6,
- 1, 238, 96, 4, 78, 63, 8, 2, 1, 238, 96, 4, 78, 63, 8, 6, 1, 238, 96, 4,
- 219, 176, 63, 8, 2, 1, 238, 96, 4, 219, 176, 63, 8, 6, 1, 238, 96, 4,
- 246, 151, 8, 2, 1, 238, 96, 4, 246, 151, 8, 6, 1, 238, 96, 4, 242, 122,
- 63, 8, 2, 1, 238, 96, 4, 242, 122, 63, 8, 6, 1, 234, 253, 4, 217, 215,
- 26, 230, 210, 8, 2, 1, 234, 253, 4, 217, 215, 26, 230, 210, 8, 6, 1, 234,
- 253, 4, 217, 215, 26, 251, 129, 8, 2, 1, 234, 253, 4, 217, 215, 26, 251,
- 129, 8, 6, 1, 234, 253, 4, 242, 122, 63, 8, 2, 1, 234, 253, 4, 242, 122,
- 63, 8, 6, 1, 234, 253, 4, 199, 91, 63, 8, 2, 1, 234, 253, 4, 199, 91, 63,
- 8, 6, 1, 234, 253, 4, 246, 152, 26, 247, 150, 8, 2, 1, 234, 253, 4, 246,
- 152, 26, 247, 150, 8, 6, 1, 233, 164, 4, 78, 58, 8, 2, 1, 233, 164, 4,
- 78, 58, 8, 6, 1, 232, 45, 4, 217, 214, 8, 2, 1, 232, 45, 4, 217, 214, 8,
- 6, 1, 230, 125, 4, 78, 58, 8, 2, 1, 230, 125, 4, 78, 58, 8, 6, 1, 230,
- 125, 4, 78, 63, 8, 2, 1, 230, 125, 4, 78, 63, 8, 6, 1, 230, 125, 4, 237,
- 14, 8, 2, 1, 230, 125, 4, 237, 14, 8, 6, 1, 230, 125, 4, 246, 151, 8, 2,
- 1, 230, 125, 4, 246, 151, 8, 6, 1, 230, 125, 4, 247, 151, 63, 8, 2, 1,
- 230, 125, 4, 247, 151, 63, 8, 6, 1, 228, 97, 4, 199, 91, 63, 8, 2, 1,
- 228, 97, 4, 199, 91, 63, 8, 6, 1, 228, 97, 4, 237, 15, 26, 251, 129, 8,
- 2, 1, 228, 97, 4, 237, 15, 26, 251, 129, 8, 6, 1, 222, 185, 4, 251, 129,
- 8, 2, 1, 222, 185, 4, 251, 129, 8, 6, 1, 222, 185, 4, 78, 63, 8, 2, 1,
- 222, 185, 4, 78, 63, 8, 6, 1, 222, 185, 4, 219, 176, 63, 8, 2, 1, 222,
- 185, 4, 219, 176, 63, 8, 6, 1, 220, 202, 4, 78, 63, 8, 2, 1, 220, 202, 4,
- 78, 63, 8, 6, 1, 220, 202, 4, 78, 248, 84, 26, 217, 214, 8, 2, 1, 220,
- 202, 4, 78, 248, 84, 26, 217, 214, 8, 6, 1, 220, 202, 4, 219, 176, 63, 8,
- 2, 1, 220, 202, 4, 219, 176, 63, 8, 6, 1, 220, 202, 4, 242, 122, 63, 8,
- 2, 1, 220, 202, 4, 242, 122, 63, 8, 6, 1, 218, 237, 4, 251, 129, 8, 2, 1,
- 218, 237, 4, 251, 129, 8, 6, 1, 218, 237, 4, 78, 58, 8, 2, 1, 218, 237,
- 4, 78, 58, 8, 6, 1, 218, 237, 4, 78, 63, 8, 2, 1, 218, 237, 4, 78, 63, 8,
- 6, 1, 215, 152, 4, 78, 58, 8, 2, 1, 215, 152, 4, 78, 58, 8, 6, 1, 215,
- 152, 4, 78, 63, 8, 2, 1, 215, 152, 4, 78, 63, 8, 6, 1, 215, 152, 4, 219,
- 176, 63, 8, 2, 1, 215, 152, 4, 219, 176, 63, 8, 6, 1, 215, 152, 4, 242,
- 122, 63, 8, 2, 1, 215, 152, 4, 242, 122, 63, 8, 6, 1, 185, 4, 199, 91,
- 26, 251, 129, 8, 2, 1, 185, 4, 199, 91, 26, 251, 129, 8, 6, 1, 185, 4,
- 199, 91, 26, 237, 14, 8, 2, 1, 185, 4, 199, 91, 26, 237, 14, 8, 6, 1,
- 185, 4, 217, 215, 26, 230, 210, 8, 2, 1, 185, 4, 217, 215, 26, 230, 210,
- 8, 6, 1, 185, 4, 217, 215, 26, 251, 129, 8, 2, 1, 185, 4, 217, 215, 26,
- 251, 129, 8, 6, 1, 211, 94, 4, 251, 129, 8, 2, 1, 211, 94, 4, 251, 129,
- 8, 6, 1, 211, 94, 4, 78, 58, 8, 2, 1, 211, 94, 4, 78, 58, 8, 6, 1, 208,
- 112, 4, 78, 58, 8, 2, 1, 208, 112, 4, 78, 58, 8, 6, 1, 208, 112, 4, 78,
- 63, 8, 2, 1, 208, 112, 4, 78, 63, 8, 6, 1, 208, 112, 4, 78, 248, 84, 26,
- 217, 214, 8, 2, 1, 208, 112, 4, 78, 248, 84, 26, 217, 214, 8, 6, 1, 208,
- 112, 4, 219, 176, 63, 8, 2, 1, 208, 112, 4, 219, 176, 63, 8, 6, 1, 206,
- 159, 4, 78, 58, 8, 2, 1, 206, 159, 4, 78, 58, 8, 6, 1, 206, 159, 4, 78,
- 63, 8, 2, 1, 206, 159, 4, 78, 63, 8, 6, 1, 206, 159, 4, 251, 130, 26, 78,
- 58, 8, 2, 1, 206, 159, 4, 251, 130, 26, 78, 58, 8, 6, 1, 206, 159, 4,
- 246, 208, 26, 78, 58, 8, 2, 1, 206, 159, 4, 246, 208, 26, 78, 58, 8, 6,
- 1, 206, 159, 4, 78, 248, 84, 26, 78, 58, 8, 2, 1, 206, 159, 4, 78, 248,
- 84, 26, 78, 58, 8, 6, 1, 200, 229, 4, 78, 58, 8, 2, 1, 200, 229, 4, 78,
- 58, 8, 6, 1, 200, 229, 4, 78, 63, 8, 2, 1, 200, 229, 4, 78, 63, 8, 6, 1,
- 200, 229, 4, 219, 176, 63, 8, 2, 1, 200, 229, 4, 219, 176, 63, 8, 6, 1,
- 200, 229, 4, 242, 122, 63, 8, 2, 1, 200, 229, 4, 242, 122, 63, 8, 6, 1,
- 124, 4, 237, 15, 63, 8, 2, 1, 124, 4, 237, 15, 63, 8, 6, 1, 124, 4, 199,
- 91, 63, 8, 2, 1, 124, 4, 199, 91, 63, 8, 6, 1, 124, 4, 242, 122, 63, 8,
- 2, 1, 124, 4, 242, 122, 63, 8, 6, 1, 124, 4, 199, 91, 26, 251, 129, 8, 2,
- 1, 124, 4, 199, 91, 26, 251, 129, 8, 6, 1, 124, 4, 217, 215, 26, 237, 14,
- 8, 2, 1, 124, 4, 217, 215, 26, 237, 14, 8, 6, 1, 196, 237, 4, 199, 90, 8,
- 2, 1, 196, 237, 4, 199, 90, 8, 6, 1, 196, 237, 4, 78, 63, 8, 2, 1, 196,
- 237, 4, 78, 63, 8, 6, 1, 194, 203, 4, 230, 210, 8, 2, 1, 194, 203, 4,
- 230, 210, 8, 6, 1, 194, 203, 4, 251, 129, 8, 2, 1, 194, 203, 4, 251, 129,
- 8, 6, 1, 194, 203, 4, 237, 14, 8, 2, 1, 194, 203, 4, 237, 14, 8, 6, 1,
- 194, 203, 4, 78, 58, 8, 2, 1, 194, 203, 4, 78, 58, 8, 6, 1, 194, 203, 4,
- 78, 63, 8, 2, 1, 194, 203, 4, 78, 63, 8, 6, 1, 193, 224, 4, 78, 58, 8, 2,
- 1, 193, 224, 4, 78, 58, 8, 6, 1, 193, 224, 4, 237, 14, 8, 2, 1, 193, 224,
- 4, 237, 14, 8, 6, 1, 193, 149, 4, 78, 58, 8, 2, 1, 193, 149, 4, 78, 58,
- 8, 6, 1, 192, 156, 4, 242, 121, 8, 2, 1, 192, 156, 4, 242, 121, 8, 6, 1,
- 192, 156, 4, 78, 63, 8, 2, 1, 192, 156, 4, 78, 63, 8, 6, 1, 192, 156, 4,
- 219, 176, 63, 8, 2, 1, 192, 156, 4, 219, 176, 63, 8, 2, 1, 230, 125, 4,
- 219, 176, 63, 8, 2, 1, 200, 229, 4, 237, 14, 8, 2, 1, 194, 203, 4, 207,
- 82, 58, 8, 2, 1, 193, 149, 4, 207, 82, 58, 8, 2, 1, 41, 4, 51, 138, 207,
- 81, 8, 2, 1, 184, 206, 159, 4, 78, 58, 8, 2, 1, 184, 206, 159, 4, 237,
- 11, 111, 8, 2, 1, 184, 206, 159, 4, 139, 111, 8, 6, 1, 204, 26, 206, 158,
- 8, 2, 1, 237, 76, 8, 6, 1, 41, 4, 78, 63, 8, 2, 1, 41, 4, 78, 63, 8, 6,
- 1, 41, 4, 229, 15, 58, 8, 2, 1, 41, 4, 229, 15, 58, 8, 6, 1, 41, 4, 242,
- 122, 26, 251, 129, 8, 2, 1, 41, 4, 242, 122, 26, 251, 129, 8, 6, 1, 41,
- 4, 242, 122, 26, 230, 210, 8, 2, 1, 41, 4, 242, 122, 26, 230, 210, 8, 6,
- 1, 41, 4, 242, 122, 26, 229, 15, 58, 8, 2, 1, 41, 4, 242, 122, 26, 229,
- 15, 58, 8, 6, 1, 41, 4, 242, 122, 26, 199, 90, 8, 2, 1, 41, 4, 242, 122,
- 26, 199, 90, 8, 6, 1, 41, 4, 242, 122, 26, 78, 63, 8, 2, 1, 41, 4, 242,
- 122, 26, 78, 63, 8, 6, 1, 41, 4, 247, 151, 26, 251, 129, 8, 2, 1, 41, 4,
- 247, 151, 26, 251, 129, 8, 6, 1, 41, 4, 247, 151, 26, 230, 210, 8, 2, 1,
- 41, 4, 247, 151, 26, 230, 210, 8, 6, 1, 41, 4, 247, 151, 26, 229, 15, 58,
- 8, 2, 1, 41, 4, 247, 151, 26, 229, 15, 58, 8, 6, 1, 41, 4, 247, 151, 26,
- 199, 90, 8, 2, 1, 41, 4, 247, 151, 26, 199, 90, 8, 6, 1, 41, 4, 247, 151,
- 26, 78, 63, 8, 2, 1, 41, 4, 247, 151, 26, 78, 63, 8, 6, 1, 234, 253, 4,
- 78, 63, 8, 2, 1, 234, 253, 4, 78, 63, 8, 6, 1, 234, 253, 4, 229, 15, 58,
- 8, 2, 1, 234, 253, 4, 229, 15, 58, 8, 6, 1, 234, 253, 4, 199, 90, 8, 2,
- 1, 234, 253, 4, 199, 90, 8, 6, 1, 234, 253, 4, 242, 122, 26, 251, 129, 8,
- 2, 1, 234, 253, 4, 242, 122, 26, 251, 129, 8, 6, 1, 234, 253, 4, 242,
- 122, 26, 230, 210, 8, 2, 1, 234, 253, 4, 242, 122, 26, 230, 210, 8, 6, 1,
- 234, 253, 4, 242, 122, 26, 229, 15, 58, 8, 2, 1, 234, 253, 4, 242, 122,
- 26, 229, 15, 58, 8, 6, 1, 234, 253, 4, 242, 122, 26, 199, 90, 8, 2, 1,
- 234, 253, 4, 242, 122, 26, 199, 90, 8, 6, 1, 234, 253, 4, 242, 122, 26,
- 78, 63, 8, 2, 1, 234, 253, 4, 242, 122, 26, 78, 63, 8, 6, 1, 228, 97, 4,
- 229, 15, 58, 8, 2, 1, 228, 97, 4, 229, 15, 58, 8, 6, 1, 228, 97, 4, 78,
- 63, 8, 2, 1, 228, 97, 4, 78, 63, 8, 6, 1, 185, 4, 78, 63, 8, 2, 1, 185,
- 4, 78, 63, 8, 6, 1, 185, 4, 229, 15, 58, 8, 2, 1, 185, 4, 229, 15, 58, 8,
- 6, 1, 185, 4, 242, 122, 26, 251, 129, 8, 2, 1, 185, 4, 242, 122, 26, 251,
- 129, 8, 6, 1, 185, 4, 242, 122, 26, 230, 210, 8, 2, 1, 185, 4, 242, 122,
- 26, 230, 210, 8, 6, 1, 185, 4, 242, 122, 26, 229, 15, 58, 8, 2, 1, 185,
- 4, 242, 122, 26, 229, 15, 58, 8, 6, 1, 185, 4, 242, 122, 26, 199, 90, 8,
- 2, 1, 185, 4, 242, 122, 26, 199, 90, 8, 6, 1, 185, 4, 242, 122, 26, 78,
- 63, 8, 2, 1, 185, 4, 242, 122, 26, 78, 63, 8, 6, 1, 185, 4, 228, 209, 26,
- 251, 129, 8, 2, 1, 185, 4, 228, 209, 26, 251, 129, 8, 6, 1, 185, 4, 228,
- 209, 26, 230, 210, 8, 2, 1, 185, 4, 228, 209, 26, 230, 210, 8, 6, 1, 185,
- 4, 228, 209, 26, 229, 15, 58, 8, 2, 1, 185, 4, 228, 209, 26, 229, 15, 58,
- 8, 6, 1, 185, 4, 228, 209, 26, 199, 90, 8, 2, 1, 185, 4, 228, 209, 26,
- 199, 90, 8, 6, 1, 185, 4, 228, 209, 26, 78, 63, 8, 2, 1, 185, 4, 228,
- 209, 26, 78, 63, 8, 6, 1, 124, 4, 78, 63, 8, 2, 1, 124, 4, 78, 63, 8, 6,
- 1, 124, 4, 229, 15, 58, 8, 2, 1, 124, 4, 229, 15, 58, 8, 6, 1, 124, 4,
- 228, 209, 26, 251, 129, 8, 2, 1, 124, 4, 228, 209, 26, 251, 129, 8, 6, 1,
- 124, 4, 228, 209, 26, 230, 210, 8, 2, 1, 124, 4, 228, 209, 26, 230, 210,
- 8, 6, 1, 124, 4, 228, 209, 26, 229, 15, 58, 8, 2, 1, 124, 4, 228, 209,
- 26, 229, 15, 58, 8, 6, 1, 124, 4, 228, 209, 26, 199, 90, 8, 2, 1, 124, 4,
- 228, 209, 26, 199, 90, 8, 6, 1, 124, 4, 228, 209, 26, 78, 63, 8, 2, 1,
- 124, 4, 228, 209, 26, 78, 63, 8, 6, 1, 193, 149, 4, 230, 210, 8, 2, 1,
- 193, 149, 4, 230, 210, 8, 6, 1, 193, 149, 4, 78, 63, 8, 2, 1, 193, 149,
- 4, 78, 63, 8, 6, 1, 193, 149, 4, 229, 15, 58, 8, 2, 1, 193, 149, 4, 229,
- 15, 58, 8, 6, 1, 193, 149, 4, 199, 90, 8, 2, 1, 193, 149, 4, 199, 90, 8,
- 6, 1, 216, 159, 219, 138, 8, 2, 1, 216, 159, 219, 138, 8, 6, 1, 216, 159,
- 196, 236, 8, 2, 1, 216, 159, 196, 236, 8, 6, 1, 193, 149, 4, 219, 69, 8,
- 2, 1, 193, 149, 4, 219, 69, 33, 2, 1, 250, 253, 4, 209, 55, 33, 2, 1,
- 250, 253, 4, 237, 182, 33, 2, 1, 250, 253, 4, 209, 56, 26, 196, 138, 33,
- 2, 1, 250, 253, 4, 237, 183, 26, 196, 138, 33, 2, 1, 250, 253, 4, 209,
- 56, 26, 211, 99, 33, 2, 1, 250, 253, 4, 237, 183, 26, 211, 99, 33, 2, 1,
- 250, 253, 4, 209, 56, 26, 210, 126, 33, 2, 1, 250, 253, 4, 237, 183, 26,
- 210, 126, 33, 6, 1, 250, 253, 4, 209, 55, 33, 6, 1, 250, 253, 4, 237,
- 182, 33, 6, 1, 250, 253, 4, 209, 56, 26, 196, 138, 33, 6, 1, 250, 253, 4,
- 237, 183, 26, 196, 138, 33, 6, 1, 250, 253, 4, 209, 56, 26, 211, 99, 33,
- 6, 1, 250, 253, 4, 237, 183, 26, 211, 99, 33, 6, 1, 250, 253, 4, 209, 56,
- 26, 210, 126, 33, 6, 1, 250, 253, 4, 237, 183, 26, 210, 126, 33, 2, 1,
- 234, 33, 4, 209, 55, 33, 2, 1, 234, 33, 4, 237, 182, 33, 2, 1, 234, 33,
- 4, 209, 56, 26, 196, 138, 33, 2, 1, 234, 33, 4, 237, 183, 26, 196, 138,
- 33, 2, 1, 234, 33, 4, 209, 56, 26, 211, 99, 33, 2, 1, 234, 33, 4, 237,
- 183, 26, 211, 99, 33, 6, 1, 234, 33, 4, 209, 55, 33, 6, 1, 234, 33, 4,
- 237, 182, 33, 6, 1, 234, 33, 4, 209, 56, 26, 196, 138, 33, 6, 1, 234, 33,
- 4, 237, 183, 26, 196, 138, 33, 6, 1, 234, 33, 4, 209, 56, 26, 211, 99,
- 33, 6, 1, 234, 33, 4, 237, 183, 26, 211, 99, 33, 2, 1, 233, 241, 4, 209,
- 55, 33, 2, 1, 233, 241, 4, 237, 182, 33, 2, 1, 233, 241, 4, 209, 56, 26,
- 196, 138, 33, 2, 1, 233, 241, 4, 237, 183, 26, 196, 138, 33, 2, 1, 233,
- 241, 4, 209, 56, 26, 211, 99, 33, 2, 1, 233, 241, 4, 237, 183, 26, 211,
- 99, 33, 2, 1, 233, 241, 4, 209, 56, 26, 210, 126, 33, 2, 1, 233, 241, 4,
- 237, 183, 26, 210, 126, 33, 6, 1, 233, 241, 4, 209, 55, 33, 6, 1, 233,
- 241, 4, 237, 182, 33, 6, 1, 233, 241, 4, 209, 56, 26, 196, 138, 33, 6, 1,
- 233, 241, 4, 237, 183, 26, 196, 138, 33, 6, 1, 233, 241, 4, 209, 56, 26,
- 211, 99, 33, 6, 1, 233, 241, 4, 237, 183, 26, 211, 99, 33, 6, 1, 233,
- 241, 4, 209, 56, 26, 210, 126, 33, 6, 1, 233, 241, 4, 237, 183, 26, 210,
- 126, 33, 2, 1, 223, 112, 4, 209, 55, 33, 2, 1, 223, 112, 4, 237, 182, 33,
- 2, 1, 223, 112, 4, 209, 56, 26, 196, 138, 33, 2, 1, 223, 112, 4, 237,
- 183, 26, 196, 138, 33, 2, 1, 223, 112, 4, 209, 56, 26, 211, 99, 33, 2, 1,
- 223, 112, 4, 237, 183, 26, 211, 99, 33, 2, 1, 223, 112, 4, 209, 56, 26,
- 210, 126, 33, 2, 1, 223, 112, 4, 237, 183, 26, 210, 126, 33, 6, 1, 223,
- 112, 4, 209, 55, 33, 6, 1, 223, 112, 4, 237, 182, 33, 6, 1, 223, 112, 4,
- 209, 56, 26, 196, 138, 33, 6, 1, 223, 112, 4, 237, 183, 26, 196, 138, 33,
- 6, 1, 223, 112, 4, 209, 56, 26, 211, 99, 33, 6, 1, 223, 112, 4, 237, 183,
- 26, 211, 99, 33, 6, 1, 223, 112, 4, 209, 56, 26, 210, 126, 33, 6, 1, 223,
- 112, 4, 237, 183, 26, 210, 126, 33, 2, 1, 211, 215, 4, 209, 55, 33, 2, 1,
- 211, 215, 4, 237, 182, 33, 2, 1, 211, 215, 4, 209, 56, 26, 196, 138, 33,
- 2, 1, 211, 215, 4, 237, 183, 26, 196, 138, 33, 2, 1, 211, 215, 4, 209,
- 56, 26, 211, 99, 33, 2, 1, 211, 215, 4, 237, 183, 26, 211, 99, 33, 6, 1,
- 211, 215, 4, 209, 55, 33, 6, 1, 211, 215, 4, 237, 182, 33, 6, 1, 211,
- 215, 4, 209, 56, 26, 196, 138, 33, 6, 1, 211, 215, 4, 237, 183, 26, 196,
- 138, 33, 6, 1, 211, 215, 4, 209, 56, 26, 211, 99, 33, 6, 1, 211, 215, 4,
- 237, 183, 26, 211, 99, 33, 2, 1, 197, 35, 4, 209, 55, 33, 2, 1, 197, 35,
- 4, 237, 182, 33, 2, 1, 197, 35, 4, 209, 56, 26, 196, 138, 33, 2, 1, 197,
- 35, 4, 237, 183, 26, 196, 138, 33, 2, 1, 197, 35, 4, 209, 56, 26, 211,
- 99, 33, 2, 1, 197, 35, 4, 237, 183, 26, 211, 99, 33, 2, 1, 197, 35, 4,
- 209, 56, 26, 210, 126, 33, 2, 1, 197, 35, 4, 237, 183, 26, 210, 126, 33,
- 6, 1, 197, 35, 4, 237, 182, 33, 6, 1, 197, 35, 4, 237, 183, 26, 196, 138,
- 33, 6, 1, 197, 35, 4, 237, 183, 26, 211, 99, 33, 6, 1, 197, 35, 4, 237,
- 183, 26, 210, 126, 33, 2, 1, 211, 217, 4, 209, 55, 33, 2, 1, 211, 217, 4,
- 237, 182, 33, 2, 1, 211, 217, 4, 209, 56, 26, 196, 138, 33, 2, 1, 211,
- 217, 4, 237, 183, 26, 196, 138, 33, 2, 1, 211, 217, 4, 209, 56, 26, 211,
- 99, 33, 2, 1, 211, 217, 4, 237, 183, 26, 211, 99, 33, 2, 1, 211, 217, 4,
- 209, 56, 26, 210, 126, 33, 2, 1, 211, 217, 4, 237, 183, 26, 210, 126, 33,
- 6, 1, 211, 217, 4, 209, 55, 33, 6, 1, 211, 217, 4, 237, 182, 33, 6, 1,
- 211, 217, 4, 209, 56, 26, 196, 138, 33, 6, 1, 211, 217, 4, 237, 183, 26,
- 196, 138, 33, 6, 1, 211, 217, 4, 209, 56, 26, 211, 99, 33, 6, 1, 211,
- 217, 4, 237, 183, 26, 211, 99, 33, 6, 1, 211, 217, 4, 209, 56, 26, 210,
- 126, 33, 6, 1, 211, 217, 4, 237, 183, 26, 210, 126, 33, 2, 1, 250, 253,
- 4, 196, 138, 33, 2, 1, 250, 253, 4, 211, 99, 33, 2, 1, 234, 33, 4, 196,
- 138, 33, 2, 1, 234, 33, 4, 211, 99, 33, 2, 1, 233, 241, 4, 196, 138, 33,
- 2, 1, 233, 241, 4, 211, 99, 33, 2, 1, 223, 112, 4, 196, 138, 33, 2, 1,
- 223, 112, 4, 211, 99, 33, 2, 1, 211, 215, 4, 196, 138, 33, 2, 1, 211,
- 215, 4, 211, 99, 33, 2, 1, 197, 35, 4, 196, 138, 33, 2, 1, 197, 35, 4,
- 211, 99, 33, 2, 1, 211, 217, 4, 196, 138, 33, 2, 1, 211, 217, 4, 211, 99,
- 33, 2, 1, 250, 253, 4, 209, 56, 26, 192, 222, 33, 2, 1, 250, 253, 4, 237,
- 183, 26, 192, 222, 33, 2, 1, 250, 253, 4, 209, 56, 26, 196, 139, 26, 192,
- 222, 33, 2, 1, 250, 253, 4, 237, 183, 26, 196, 139, 26, 192, 222, 33, 2,
- 1, 250, 253, 4, 209, 56, 26, 211, 100, 26, 192, 222, 33, 2, 1, 250, 253,
- 4, 237, 183, 26, 211, 100, 26, 192, 222, 33, 2, 1, 250, 253, 4, 209, 56,
- 26, 210, 127, 26, 192, 222, 33, 2, 1, 250, 253, 4, 237, 183, 26, 210,
- 127, 26, 192, 222, 33, 6, 1, 250, 253, 4, 209, 56, 26, 209, 69, 33, 6, 1,
- 250, 253, 4, 237, 183, 26, 209, 69, 33, 6, 1, 250, 253, 4, 209, 56, 26,
- 196, 139, 26, 209, 69, 33, 6, 1, 250, 253, 4, 237, 183, 26, 196, 139, 26,
- 209, 69, 33, 6, 1, 250, 253, 4, 209, 56, 26, 211, 100, 26, 209, 69, 33,
- 6, 1, 250, 253, 4, 237, 183, 26, 211, 100, 26, 209, 69, 33, 6, 1, 250,
- 253, 4, 209, 56, 26, 210, 127, 26, 209, 69, 33, 6, 1, 250, 253, 4, 237,
- 183, 26, 210, 127, 26, 209, 69, 33, 2, 1, 233, 241, 4, 209, 56, 26, 192,
- 222, 33, 2, 1, 233, 241, 4, 237, 183, 26, 192, 222, 33, 2, 1, 233, 241,
- 4, 209, 56, 26, 196, 139, 26, 192, 222, 33, 2, 1, 233, 241, 4, 237, 183,
- 26, 196, 139, 26, 192, 222, 33, 2, 1, 233, 241, 4, 209, 56, 26, 211, 100,
- 26, 192, 222, 33, 2, 1, 233, 241, 4, 237, 183, 26, 211, 100, 26, 192,
- 222, 33, 2, 1, 233, 241, 4, 209, 56, 26, 210, 127, 26, 192, 222, 33, 2,
- 1, 233, 241, 4, 237, 183, 26, 210, 127, 26, 192, 222, 33, 6, 1, 233, 241,
- 4, 209, 56, 26, 209, 69, 33, 6, 1, 233, 241, 4, 237, 183, 26, 209, 69,
- 33, 6, 1, 233, 241, 4, 209, 56, 26, 196, 139, 26, 209, 69, 33, 6, 1, 233,
- 241, 4, 237, 183, 26, 196, 139, 26, 209, 69, 33, 6, 1, 233, 241, 4, 209,
- 56, 26, 211, 100, 26, 209, 69, 33, 6, 1, 233, 241, 4, 237, 183, 26, 211,
- 100, 26, 209, 69, 33, 6, 1, 233, 241, 4, 209, 56, 26, 210, 127, 26, 209,
- 69, 33, 6, 1, 233, 241, 4, 237, 183, 26, 210, 127, 26, 209, 69, 33, 2, 1,
- 211, 217, 4, 209, 56, 26, 192, 222, 33, 2, 1, 211, 217, 4, 237, 183, 26,
- 192, 222, 33, 2, 1, 211, 217, 4, 209, 56, 26, 196, 139, 26, 192, 222, 33,
- 2, 1, 211, 217, 4, 237, 183, 26, 196, 139, 26, 192, 222, 33, 2, 1, 211,
- 217, 4, 209, 56, 26, 211, 100, 26, 192, 222, 33, 2, 1, 211, 217, 4, 237,
- 183, 26, 211, 100, 26, 192, 222, 33, 2, 1, 211, 217, 4, 209, 56, 26, 210,
- 127, 26, 192, 222, 33, 2, 1, 211, 217, 4, 237, 183, 26, 210, 127, 26,
- 192, 222, 33, 6, 1, 211, 217, 4, 209, 56, 26, 209, 69, 33, 6, 1, 211,
- 217, 4, 237, 183, 26, 209, 69, 33, 6, 1, 211, 217, 4, 209, 56, 26, 196,
- 139, 26, 209, 69, 33, 6, 1, 211, 217, 4, 237, 183, 26, 196, 139, 26, 209,
- 69, 33, 6, 1, 211, 217, 4, 209, 56, 26, 211, 100, 26, 209, 69, 33, 6, 1,
- 211, 217, 4, 237, 183, 26, 211, 100, 26, 209, 69, 33, 6, 1, 211, 217, 4,
- 209, 56, 26, 210, 127, 26, 209, 69, 33, 6, 1, 211, 217, 4, 237, 183, 26,
- 210, 127, 26, 209, 69, 33, 2, 1, 250, 253, 4, 195, 227, 33, 2, 1, 250,
- 253, 4, 217, 214, 33, 2, 1, 250, 253, 4, 196, 139, 26, 192, 222, 33, 2,
- 1, 250, 253, 4, 192, 222, 33, 2, 1, 250, 253, 4, 211, 100, 26, 192, 222,
- 33, 2, 1, 250, 253, 4, 210, 126, 33, 2, 1, 250, 253, 4, 210, 127, 26,
- 192, 222, 33, 6, 1, 250, 253, 4, 195, 227, 33, 6, 1, 250, 253, 4, 217,
- 214, 33, 6, 1, 250, 253, 4, 196, 138, 33, 6, 1, 250, 253, 4, 211, 99, 33,
- 6, 1, 250, 253, 4, 209, 69, 33, 221, 78, 33, 209, 69, 33, 209, 55, 33,
- 210, 126, 33, 237, 8, 26, 210, 126, 33, 2, 1, 233, 241, 4, 196, 139, 26,
- 192, 222, 33, 2, 1, 233, 241, 4, 192, 222, 33, 2, 1, 233, 241, 4, 211,
- 100, 26, 192, 222, 33, 2, 1, 233, 241, 4, 210, 126, 33, 2, 1, 233, 241,
- 4, 210, 127, 26, 192, 222, 33, 6, 1, 234, 33, 4, 196, 138, 33, 6, 1, 234,
- 33, 4, 211, 99, 33, 6, 1, 233, 241, 4, 196, 138, 33, 6, 1, 233, 241, 4,
- 211, 99, 33, 6, 1, 233, 241, 4, 209, 69, 33, 209, 56, 26, 196, 138, 33,
- 209, 56, 26, 211, 99, 33, 209, 56, 26, 210, 126, 33, 2, 1, 223, 112, 4,
- 195, 227, 33, 2, 1, 223, 112, 4, 217, 214, 33, 2, 1, 223, 112, 4, 237, 8,
- 26, 196, 138, 33, 2, 1, 223, 112, 4, 237, 8, 26, 211, 99, 33, 2, 1, 223,
- 112, 4, 210, 126, 33, 2, 1, 223, 112, 4, 237, 8, 26, 210, 126, 33, 6, 1,
- 223, 112, 4, 195, 227, 33, 6, 1, 223, 112, 4, 217, 214, 33, 6, 1, 223,
- 112, 4, 196, 138, 33, 6, 1, 223, 112, 4, 211, 99, 33, 237, 183, 26, 196,
- 138, 33, 237, 183, 26, 211, 99, 33, 237, 183, 26, 210, 126, 33, 2, 1,
- 197, 35, 4, 195, 227, 33, 2, 1, 197, 35, 4, 217, 214, 33, 2, 1, 197, 35,
- 4, 237, 8, 26, 196, 138, 33, 2, 1, 197, 35, 4, 237, 8, 26, 211, 99, 33,
- 2, 1, 207, 154, 4, 209, 55, 33, 2, 1, 207, 154, 4, 237, 182, 33, 2, 1,
- 197, 35, 4, 210, 126, 33, 2, 1, 197, 35, 4, 237, 8, 26, 210, 126, 33, 6,
- 1, 197, 35, 4, 195, 227, 33, 6, 1, 197, 35, 4, 217, 214, 33, 6, 1, 197,
- 35, 4, 196, 138, 33, 6, 1, 197, 35, 4, 211, 99, 33, 6, 1, 207, 154, 4,
- 237, 182, 33, 237, 8, 26, 196, 138, 33, 237, 8, 26, 211, 99, 33, 196,
- 138, 33, 2, 1, 211, 217, 4, 196, 139, 26, 192, 222, 33, 2, 1, 211, 217,
- 4, 192, 222, 33, 2, 1, 211, 217, 4, 211, 100, 26, 192, 222, 33, 2, 1,
- 211, 217, 4, 210, 126, 33, 2, 1, 211, 217, 4, 210, 127, 26, 192, 222, 33,
- 6, 1, 211, 215, 4, 196, 138, 33, 6, 1, 211, 215, 4, 211, 99, 33, 6, 1,
- 211, 217, 4, 196, 138, 33, 6, 1, 211, 217, 4, 211, 99, 33, 6, 1, 211,
- 217, 4, 209, 69, 33, 211, 99, 33, 237, 182, 234, 89, 208, 174, 234, 100,
- 208, 174, 234, 89, 202, 160, 234, 100, 202, 160, 199, 154, 202, 160, 232,
- 117, 202, 160, 203, 39, 202, 160, 233, 1, 202, 160, 209, 38, 202, 160,
- 199, 195, 202, 160, 230, 87, 202, 160, 192, 77, 194, 61, 202, 160, 192,
- 77, 194, 61, 213, 128, 192, 77, 194, 61, 222, 228, 220, 19, 77, 207, 92,
- 77, 228, 111, 213, 129, 228, 111, 233, 1, 237, 185, 234, 89, 237, 185,
- 234, 100, 237, 185, 229, 5, 161, 55, 84, 219, 175, 55, 132, 219, 175, 46,
- 203, 74, 208, 142, 77, 51, 203, 74, 208, 142, 77, 203, 74, 219, 51, 208,
- 142, 77, 203, 74, 229, 152, 208, 142, 77, 46, 55, 208, 142, 77, 51, 55,
- 208, 142, 77, 55, 219, 51, 208, 142, 77, 55, 229, 152, 208, 142, 77, 237,
- 238, 55, 237, 238, 247, 106, 198, 182, 247, 106, 90, 78, 220, 40, 103,
- 78, 220, 40, 229, 5, 234, 105, 228, 109, 209, 191, 219, 176, 204, 165,
- 210, 244, 204, 165, 220, 19, 234, 98, 207, 92, 234, 98, 209, 169, 236,
- 204, 232, 134, 220, 19, 211, 107, 207, 92, 211, 107, 215, 50, 213, 136,
- 202, 160, 210, 134, 216, 126, 57, 210, 134, 200, 31, 199, 165, 57, 209,
- 99, 55, 209, 99, 198, 170, 209, 99, 207, 168, 209, 99, 207, 168, 55, 209,
- 99, 207, 168, 198, 170, 209, 99, 246, 211, 203, 74, 220, 23, 250, 208,
- 208, 142, 77, 203, 74, 207, 96, 250, 208, 208, 142, 77, 207, 233, 77, 55,
- 233, 204, 77, 223, 130, 211, 109, 197, 64, 246, 100, 199, 113, 246, 212,
- 223, 147, 209, 191, 250, 35, 228, 112, 247, 106, 232, 109, 203, 4, 46,
- 50, 247, 165, 4, 208, 153, 51, 50, 247, 165, 4, 208, 153, 55, 208, 159,
- 77, 208, 159, 233, 204, 77, 233, 204, 208, 159, 77, 199, 66, 3, 233, 242,
- 207, 168, 210, 9, 57, 60, 114, 247, 106, 60, 94, 247, 106, 132, 250, 37,
- 207, 168, 204, 180, 242, 85, 197, 41, 103, 250, 36, 251, 12, 196, 54,
- 242, 36, 216, 113, 57, 201, 58, 237, 185, 223, 121, 197, 64, 232, 176,
- 209, 38, 77, 112, 78, 209, 37, 208, 170, 209, 99, 232, 119, 78, 209, 37,
- 232, 214, 78, 209, 37, 103, 78, 209, 37, 232, 119, 78, 77, 235, 111, 238,
- 183, 198, 181, 84, 232, 119, 236, 111, 217, 31, 13, 202, 160, 194, 11,
- 222, 228, 232, 69, 250, 142, 223, 119, 199, 82, 223, 119, 204, 165, 223,
- 119, 209, 206, 220, 19, 223, 88, 207, 92, 223, 88, 232, 226, 201, 194,
- 223, 88, 209, 169, 236, 204, 223, 88, 223, 160, 201, 4, 201, 76, 251,
- 132, 201, 4, 201, 76, 223, 160, 9, 232, 136, 204, 32, 251, 132, 9, 232,
- 136, 204, 32, 215, 44, 17, 204, 33, 213, 132, 17, 204, 33, 201, 107, 192,
- 76, 201, 107, 8, 2, 1, 70, 201, 107, 134, 201, 107, 151, 201, 107, 170,
- 201, 107, 179, 201, 107, 174, 201, 107, 182, 201, 107, 102, 57, 201, 107,
- 216, 112, 201, 107, 234, 30, 57, 201, 107, 46, 210, 230, 201, 107, 51,
- 210, 230, 201, 107, 8, 2, 1, 215, 151, 201, 155, 192, 76, 201, 155, 101,
- 201, 155, 104, 201, 155, 133, 201, 155, 134, 201, 155, 151, 201, 155,
- 170, 201, 155, 179, 201, 155, 174, 201, 155, 182, 201, 155, 102, 57, 201,
- 155, 216, 112, 201, 155, 234, 30, 57, 201, 155, 46, 210, 230, 201, 155,
- 51, 210, 230, 8, 201, 155, 2, 1, 64, 8, 201, 155, 2, 1, 71, 8, 201, 155,
- 2, 1, 74, 8, 201, 155, 2, 1, 193, 223, 8, 201, 155, 2, 1, 205, 240, 8,
- 201, 155, 2, 1, 230, 124, 8, 201, 155, 2, 1, 222, 184, 8, 201, 155, 2, 1,
- 165, 8, 201, 155, 2, 1, 218, 236, 8, 201, 155, 2, 1, 215, 151, 8, 201,
- 155, 2, 1, 211, 93, 8, 201, 155, 2, 1, 206, 158, 8, 201, 155, 2, 1, 200,
- 228, 233, 221, 57, 242, 48, 57, 238, 167, 57, 232, 97, 232, 102, 57, 219,
- 155, 57, 216, 127, 57, 215, 68, 57, 210, 111, 57, 206, 186, 57, 194, 19,
- 57, 214, 177, 203, 254, 57, 236, 122, 57, 233, 222, 57, 221, 173, 57,
- 198, 32, 57, 235, 89, 57, 231, 131, 210, 147, 57, 210, 108, 57, 230, 181,
- 57, 249, 254, 57, 228, 187, 57, 246, 153, 57, 219, 145, 198, 229, 57,
- 202, 140, 57, 200, 28, 57, 223, 175, 206, 186, 57, 198, 11, 219, 155, 57,
- 213, 118, 122, 57, 217, 158, 57, 206, 209, 57, 220, 69, 57, 248, 0, 57,
- 38, 46, 230, 22, 58, 38, 51, 230, 22, 58, 38, 184, 84, 219, 176, 211,
- 110, 38, 203, 195, 84, 219, 176, 211, 110, 38, 250, 182, 61, 58, 38, 242,
- 86, 61, 58, 38, 46, 61, 58, 38, 51, 61, 58, 38, 207, 82, 211, 110, 38,
- 242, 86, 207, 82, 211, 110, 38, 250, 182, 207, 82, 211, 110, 38, 112,
- 236, 112, 58, 38, 232, 119, 236, 112, 58, 38, 234, 84, 242, 130, 38, 234,
- 84, 202, 106, 38, 234, 84, 237, 4, 38, 234, 84, 242, 131, 248, 247, 38,
- 46, 51, 61, 58, 38, 234, 84, 205, 231, 38, 234, 84, 221, 253, 38, 234,
- 84, 197, 32, 209, 188, 198, 185, 38, 207, 169, 202, 190, 211, 110, 38,
- 55, 84, 201, 208, 211, 110, 38, 250, 192, 109, 38, 198, 170, 197, 66, 38,
- 194, 64, 247, 143, 58, 38, 114, 61, 211, 110, 38, 184, 55, 202, 190, 211,
- 110, 38, 94, 230, 22, 4, 173, 235, 91, 38, 114, 230, 22, 4, 173, 235, 91,
- 38, 46, 61, 63, 38, 51, 61, 63, 38, 250, 38, 58, 251, 138, 211, 251, 251,
- 121, 115, 199, 225, 201, 165, 235, 102, 6, 247, 52, 237, 95, 246, 143,
- 246, 138, 219, 176, 109, 246, 213, 211, 251, 247, 11, 197, 76, 233, 223,
- 239, 3, 205, 227, 237, 95, 233, 79, 27, 2, 232, 44, 27, 6, 230, 124, 247,
- 246, 6, 230, 124, 235, 102, 6, 230, 124, 209, 227, 239, 3, 209, 227, 239,
- 4, 136, 103, 210, 51, 27, 6, 70, 247, 246, 6, 70, 27, 6, 165, 27, 2, 165,
- 220, 202, 76, 248, 194, 109, 235, 102, 6, 215, 151, 212, 232, 57, 202,
- 174, 207, 245, 238, 226, 27, 6, 211, 93, 235, 102, 6, 211, 93, 235, 102,
- 6, 208, 247, 27, 6, 150, 247, 246, 6, 150, 235, 102, 6, 150, 209, 107,
- 200, 140, 207, 181, 204, 156, 77, 200, 42, 57, 198, 219, 122, 57, 196,
- 106, 235, 102, 6, 192, 155, 211, 129, 57, 211, 240, 57, 223, 121, 211,
- 240, 57, 247, 246, 6, 192, 155, 163, 33, 2, 1, 223, 111, 222, 38, 57,
- 250, 202, 57, 27, 6, 249, 226, 247, 246, 6, 247, 52, 233, 247, 109, 27,
- 2, 71, 27, 6, 71, 27, 6, 233, 163, 163, 6, 233, 163, 27, 6, 218, 236, 27,
- 2, 74, 157, 109, 248, 66, 109, 231, 32, 109, 237, 222, 109, 223, 165,
- 202, 172, 207, 16, 6, 208, 247, 233, 82, 57, 235, 102, 2, 210, 51, 235,
- 102, 2, 231, 204, 235, 102, 6, 231, 204, 235, 102, 6, 210, 51, 235, 102,
- 215, 150, 201, 126, 163, 49, 6, 232, 44, 163, 49, 6, 165, 207, 168, 49,
- 6, 165, 163, 49, 6, 193, 148, 235, 102, 43, 6, 238, 95, 235, 102, 43, 2,
- 238, 95, 235, 102, 43, 2, 71, 235, 102, 43, 2, 70, 235, 102, 43, 2, 223,
- 65, 209, 73, 219, 175, 163, 250, 229, 210, 134, 57, 251, 38, 163, 2, 233,
- 163, 16, 39, 206, 49, 202, 172, 194, 220, 232, 109, 90, 204, 142, 194,
- 220, 232, 109, 90, 214, 9, 194, 220, 232, 109, 90, 200, 21, 194, 220,
- 232, 109, 90, 199, 191, 194, 220, 232, 109, 103, 199, 188, 194, 220, 232,
- 109, 90, 233, 6, 194, 220, 232, 109, 103, 233, 5, 194, 220, 232, 109,
- 112, 233, 5, 194, 220, 232, 109, 232, 119, 233, 5, 194, 220, 232, 109,
- 90, 203, 29, 194, 220, 232, 109, 232, 214, 203, 27, 194, 220, 232, 109,
- 90, 234, 143, 194, 220, 232, 109, 112, 234, 141, 194, 220, 232, 109, 232,
- 214, 234, 141, 194, 220, 232, 109, 204, 146, 234, 141, 232, 109, 212,
- 233, 101, 207, 30, 212, 234, 101, 207, 30, 212, 234, 104, 207, 30, 212,
- 234, 133, 207, 30, 212, 234, 134, 207, 30, 212, 234, 151, 207, 30, 212,
- 234, 170, 207, 30, 212, 234, 179, 207, 30, 212, 234, 174, 207, 30, 212,
- 234, 182, 207, 30, 212, 234, 200, 30, 207, 30, 212, 234, 234, 111, 207,
- 30, 212, 234, 197, 244, 207, 30, 212, 234, 233, 3, 207, 30, 212, 234, 90,
- 228, 162, 207, 30, 212, 234, 232, 214, 228, 162, 207, 30, 212, 234, 90,
- 180, 2, 207, 30, 212, 234, 101, 2, 207, 30, 212, 234, 104, 2, 207, 30,
- 212, 234, 133, 2, 207, 30, 212, 234, 134, 2, 207, 30, 212, 234, 151, 2,
- 207, 30, 212, 234, 170, 2, 207, 30, 212, 234, 179, 2, 207, 30, 212, 234,
- 174, 2, 207, 30, 212, 234, 182, 2, 207, 30, 212, 234, 200, 30, 2, 207,
- 30, 212, 234, 234, 111, 2, 207, 30, 212, 234, 197, 244, 2, 207, 30, 212,
- 234, 233, 3, 2, 207, 30, 212, 234, 90, 228, 162, 2, 207, 30, 212, 234,
- 232, 214, 228, 162, 2, 207, 30, 212, 234, 90, 180, 207, 30, 212, 234, 90,
- 199, 165, 247, 53, 238, 95, 207, 30, 212, 234, 232, 214, 180, 207, 30,
- 212, 234, 200, 31, 180, 207, 30, 212, 234, 207, 168, 90, 228, 162, 8, 2,
- 1, 207, 168, 247, 52, 207, 30, 212, 234, 203, 41, 220, 64, 20, 207, 30,
- 212, 234, 233, 4, 234, 192, 20, 207, 30, 212, 234, 233, 4, 180, 207, 30,
- 212, 234, 90, 228, 163, 180, 194, 220, 232, 109, 192, 77, 199, 188, 163,
- 17, 104, 163, 17, 133, 114, 54, 197, 30, 54, 94, 54, 235, 92, 54, 46, 51,
- 54, 130, 142, 54, 178, 194, 91, 54, 178, 234, 186, 54, 202, 171, 234,
- 186, 54, 202, 171, 194, 91, 54, 114, 61, 4, 111, 94, 61, 4, 111, 114,
- 194, 125, 54, 94, 194, 125, 54, 114, 103, 229, 243, 54, 197, 30, 103,
- 229, 243, 54, 94, 103, 229, 243, 54, 235, 92, 103, 229, 243, 54, 114, 61,
- 4, 200, 147, 94, 61, 4, 200, 147, 114, 61, 232, 89, 161, 197, 30, 61,
- 232, 89, 161, 94, 61, 232, 89, 161, 235, 92, 61, 232, 89, 161, 130, 142,
- 61, 4, 248, 180, 114, 61, 4, 128, 94, 61, 4, 128, 114, 61, 4, 219, 69,
- 94, 61, 4, 219, 69, 46, 51, 194, 125, 54, 46, 51, 61, 4, 111, 235, 92,
- 192, 21, 54, 197, 30, 61, 4, 199, 74, 220, 18, 197, 30, 61, 4, 199, 74,
- 207, 90, 235, 92, 61, 4, 199, 74, 220, 18, 235, 92, 61, 4, 199, 74, 207,
- 90, 94, 61, 4, 238, 224, 235, 91, 235, 92, 61, 4, 238, 224, 220, 18, 250,
- 182, 198, 249, 204, 183, 54, 242, 86, 198, 249, 204, 183, 54, 178, 194,
- 91, 61, 115, 184, 161, 114, 61, 115, 248, 194, 136, 94, 61, 115, 161,
- 250, 182, 211, 184, 242, 131, 54, 242, 86, 211, 184, 242, 131, 54, 114,
- 230, 22, 4, 173, 197, 29, 114, 230, 22, 4, 173, 235, 91, 197, 30, 230,
- 22, 4, 173, 207, 90, 197, 30, 230, 22, 4, 173, 220, 18, 94, 230, 22, 4,
- 173, 197, 29, 94, 230, 22, 4, 173, 235, 91, 235, 92, 230, 22, 4, 173,
- 207, 90, 235, 92, 230, 22, 4, 173, 220, 18, 94, 61, 136, 114, 54, 197,
- 30, 61, 114, 80, 235, 92, 54, 114, 61, 136, 94, 54, 114, 211, 53, 250,
- 73, 197, 30, 211, 53, 250, 73, 94, 211, 53, 250, 73, 235, 92, 211, 53,
- 250, 73, 114, 230, 22, 136, 94, 230, 21, 94, 230, 22, 136, 114, 230, 21,
- 114, 55, 61, 4, 111, 46, 51, 55, 61, 4, 111, 94, 55, 61, 4, 111, 114, 55,
- 54, 197, 30, 55, 54, 94, 55, 54, 235, 92, 55, 54, 46, 51, 55, 54, 130,
- 142, 55, 54, 178, 194, 91, 55, 54, 178, 234, 186, 55, 54, 202, 171, 234,
- 186, 55, 54, 202, 171, 194, 91, 55, 54, 114, 198, 170, 54, 94, 198, 170,
- 54, 114, 202, 99, 54, 94, 202, 99, 54, 197, 30, 61, 4, 55, 111, 235, 92,
- 61, 4, 55, 111, 114, 237, 184, 54, 197, 30, 237, 184, 54, 94, 237, 184,
- 54, 235, 92, 237, 184, 54, 114, 61, 115, 161, 94, 61, 115, 161, 114, 62,
- 54, 197, 30, 62, 54, 94, 62, 54, 235, 92, 62, 54, 197, 30, 62, 61, 232,
- 89, 161, 197, 30, 62, 61, 211, 212, 210, 171, 197, 30, 62, 61, 211, 212,
- 210, 172, 4, 229, 5, 161, 197, 30, 62, 61, 211, 212, 210, 172, 4, 84,
- 161, 197, 30, 62, 55, 54, 197, 30, 62, 55, 61, 211, 212, 210, 171, 94,
- 62, 61, 232, 89, 194, 151, 178, 194, 91, 61, 115, 238, 223, 202, 171,
- 234, 186, 61, 115, 238, 223, 130, 142, 62, 54, 51, 61, 4, 2, 242, 130,
- 235, 92, 61, 114, 80, 197, 30, 54, 112, 94, 250, 73, 114, 61, 4, 84, 111,
- 94, 61, 4, 84, 111, 46, 51, 61, 4, 84, 111, 114, 61, 4, 55, 84, 111, 94,
- 61, 4, 55, 84, 111, 46, 51, 61, 4, 55, 84, 111, 114, 211, 181, 54, 94,
- 211, 181, 54, 46, 51, 211, 181, 54, 39, 251, 8, 242, 32, 210, 222, 236,
- 244, 199, 215, 233, 199, 199, 215, 236, 136, 213, 111, 233, 200, 234, 90,
- 204, 151, 223, 179, 215, 79, 234, 116, 211, 251, 213, 111, 250, 225, 234,
- 116, 211, 251, 2, 234, 116, 211, 251, 238, 253, 250, 62, 217, 9, 236,
- 136, 213, 111, 238, 255, 250, 62, 217, 9, 2, 238, 253, 250, 62, 217, 9,
- 234, 80, 80, 209, 75, 215, 150, 209, 85, 215, 150, 238, 230, 215, 150,
- 201, 126, 216, 113, 57, 216, 111, 57, 78, 209, 206, 236, 172, 203, 4,
- 204, 152, 216, 112, 250, 38, 211, 173, 207, 82, 211, 173, 247, 107, 211,
- 173, 50, 207, 22, 238, 158, 207, 22, 232, 112, 207, 22, 209, 71, 155,
- 223, 167, 51, 250, 207, 250, 207, 217, 42, 250, 207, 202, 139, 250, 207,
- 236, 175, 236, 136, 213, 111, 236, 179, 210, 236, 155, 213, 111, 210,
- 236, 155, 219, 93, 250, 217, 219, 93, 211, 163, 223, 127, 197, 56, 223,
- 141, 55, 223, 141, 198, 170, 223, 141, 238, 247, 223, 141, 201, 96, 223,
- 141, 195, 239, 223, 141, 242, 86, 223, 141, 242, 86, 238, 247, 223, 141,
- 250, 182, 238, 247, 223, 141, 199, 214, 248, 110, 208, 18, 209, 72, 78,
- 216, 112, 233, 207, 231, 137, 209, 72, 229, 20, 199, 91, 211, 173, 207,
- 168, 199, 90, 223, 121, 220, 49, 206, 158, 203, 76, 194, 124, 193, 254,
- 209, 85, 213, 111, 199, 90, 216, 113, 199, 90, 250, 30, 187, 155, 213,
- 111, 250, 30, 187, 155, 250, 138, 187, 155, 250, 138, 247, 77, 213, 111,
- 251, 131, 187, 155, 214, 198, 250, 138, 213, 120, 251, 131, 187, 155,
- 251, 1, 187, 155, 213, 111, 251, 1, 187, 155, 251, 1, 187, 211, 164, 187,
- 155, 198, 170, 199, 90, 251, 9, 187, 155, 234, 23, 155, 231, 136, 234,
- 23, 155, 236, 245, 248, 60, 250, 140, 199, 225, 219, 183, 231, 136, 187,
- 155, 250, 138, 187, 115, 211, 164, 199, 225, 223, 206, 211, 251, 223,
- 206, 80, 211, 164, 250, 138, 187, 155, 242, 48, 234, 29, 234, 30, 242,
- 47, 207, 82, 223, 191, 187, 155, 207, 82, 187, 155, 238, 216, 155, 233,
- 246, 234, 28, 155, 202, 20, 234, 29, 237, 77, 187, 155, 187, 115, 247,
- 64, 237, 96, 217, 42, 247, 63, 208, 157, 187, 155, 213, 111, 187, 155,
- 228, 41, 155, 213, 111, 228, 41, 155, 201, 215, 234, 23, 155, 219, 240,
- 211, 164, 187, 155, 230, 204, 211, 164, 187, 155, 219, 240, 136, 187,
- 155, 230, 204, 136, 187, 155, 219, 240, 247, 77, 213, 111, 187, 155, 230,
- 204, 247, 77, 213, 111, 187, 155, 215, 231, 219, 239, 215, 231, 230, 203,
- 248, 60, 213, 111, 234, 23, 155, 213, 111, 219, 239, 213, 111, 230, 203,
- 214, 198, 219, 240, 213, 120, 187, 155, 214, 198, 230, 204, 213, 120,
- 187, 155, 219, 240, 211, 164, 234, 23, 155, 230, 204, 211, 164, 234, 23,
- 155, 214, 198, 219, 240, 213, 120, 234, 23, 155, 214, 198, 230, 204, 213,
- 120, 234, 23, 155, 219, 240, 211, 164, 230, 203, 230, 204, 211, 164, 219,
- 239, 214, 198, 219, 240, 213, 120, 230, 203, 214, 198, 230, 204, 213,
- 120, 219, 239, 209, 115, 201, 145, 209, 116, 211, 164, 187, 155, 201,
- 146, 211, 164, 187, 155, 209, 116, 211, 164, 234, 23, 155, 201, 146, 211,
- 164, 234, 23, 155, 236, 136, 213, 111, 209, 118, 236, 136, 213, 111, 201,
- 147, 201, 154, 211, 251, 201, 106, 211, 251, 213, 111, 41, 201, 154, 211,
- 251, 213, 111, 41, 201, 106, 211, 251, 201, 154, 80, 211, 164, 187, 155,
- 201, 106, 80, 211, 164, 187, 155, 214, 198, 41, 201, 154, 80, 213, 120,
- 187, 155, 214, 198, 41, 201, 106, 80, 213, 120, 187, 155, 201, 154, 80,
- 4, 213, 111, 187, 155, 201, 106, 80, 4, 213, 111, 187, 155, 215, 211,
- 215, 212, 215, 213, 215, 212, 197, 56, 50, 223, 206, 211, 251, 50, 211,
- 154, 211, 251, 50, 223, 206, 80, 211, 164, 187, 155, 50, 211, 154, 80,
- 211, 164, 187, 155, 50, 246, 226, 50, 238, 148, 47, 209, 206, 47, 216,
- 112, 47, 199, 82, 47, 236, 172, 203, 4, 47, 78, 211, 173, 47, 207, 82,
- 211, 173, 47, 250, 38, 211, 173, 47, 234, 29, 47, 237, 185, 108, 209,
- 206, 108, 216, 112, 108, 199, 82, 108, 78, 211, 173, 51, 200, 159, 46,
- 200, 159, 142, 200, 159, 130, 200, 159, 250, 41, 216, 80, 198, 147, 232,
- 142, 198, 170, 84, 248, 194, 51, 198, 8, 55, 84, 248, 194, 55, 51, 198,
- 8, 236, 136, 213, 111, 209, 65, 213, 111, 198, 147, 236, 136, 213, 111,
- 232, 143, 214, 201, 55, 84, 248, 194, 55, 51, 198, 8, 209, 116, 197, 69,
- 207, 215, 201, 146, 197, 69, 207, 215, 213, 117, 201, 168, 211, 251, 238,
- 253, 250, 62, 213, 117, 201, 167, 213, 117, 201, 168, 80, 211, 164, 187,
- 155, 238, 253, 250, 62, 213, 117, 201, 168, 211, 164, 187, 155, 211, 154,
- 211, 251, 223, 206, 211, 251, 215, 218, 229, 199, 239, 8, 217, 98, 223,
- 138, 193, 181, 215, 59, 213, 119, 51, 250, 208, 4, 250, 114, 51, 198,
- 185, 215, 150, 219, 93, 250, 217, 215, 150, 219, 93, 211, 163, 215, 150,
- 223, 127, 215, 150, 197, 56, 237, 5, 211, 173, 78, 211, 173, 202, 20,
- 211, 173, 236, 172, 199, 82, 247, 174, 46, 213, 117, 233, 81, 204, 179,
- 209, 85, 51, 213, 117, 233, 81, 204, 179, 209, 85, 46, 204, 179, 209, 85,
- 51, 204, 179, 209, 85, 207, 168, 199, 91, 234, 29, 238, 138, 219, 93,
- 211, 163, 238, 138, 219, 93, 250, 217, 55, 201, 153, 55, 201, 105, 55,
- 223, 127, 55, 197, 56, 209, 239, 187, 26, 210, 236, 155, 219, 240, 4,
- 236, 114, 230, 204, 4, 236, 114, 196, 53, 215, 231, 219, 239, 196, 53,
- 215, 231, 230, 203, 219, 240, 187, 115, 211, 164, 230, 203, 230, 204,
- 187, 115, 211, 164, 219, 239, 187, 115, 211, 164, 219, 239, 187, 115,
- 211, 164, 230, 203, 187, 115, 211, 164, 209, 115, 187, 115, 211, 164,
- 201, 145, 236, 136, 213, 111, 209, 119, 211, 164, 234, 31, 236, 136, 213,
- 111, 201, 148, 211, 164, 234, 31, 213, 111, 50, 223, 206, 80, 211, 164,
- 187, 155, 213, 111, 50, 211, 154, 80, 211, 164, 187, 155, 50, 223, 206,
- 80, 211, 164, 213, 111, 187, 155, 50, 211, 154, 80, 211, 164, 213, 111,
- 187, 155, 219, 240, 247, 77, 213, 111, 234, 23, 155, 230, 204, 247, 77,
- 213, 111, 234, 23, 155, 209, 116, 247, 77, 213, 111, 234, 23, 155, 201,
- 146, 247, 77, 213, 111, 234, 23, 155, 213, 111, 213, 117, 201, 168, 211,
- 251, 236, 136, 213, 111, 238, 255, 250, 62, 213, 117, 201, 167, 213, 111,
- 213, 117, 201, 168, 80, 211, 164, 187, 155, 236, 136, 213, 111, 238, 255,
- 250, 62, 213, 117, 201, 168, 211, 164, 234, 31, 84, 234, 105, 216, 158,
- 229, 5, 234, 105, 130, 51, 237, 11, 234, 105, 142, 51, 237, 11, 234, 105,
- 234, 116, 80, 4, 184, 229, 5, 111, 234, 116, 80, 4, 84, 248, 194, 250,
- 27, 234, 80, 80, 229, 5, 111, 2, 234, 116, 80, 4, 84, 248, 194, 250, 27,
- 234, 80, 80, 229, 5, 111, 234, 116, 80, 4, 78, 58, 234, 116, 80, 4, 211,
- 117, 2, 234, 116, 80, 4, 211, 117, 234, 116, 80, 4, 197, 67, 234, 116,
- 80, 4, 103, 229, 5, 201, 195, 238, 253, 4, 184, 229, 5, 111, 238, 253, 4,
- 84, 248, 194, 250, 27, 234, 80, 80, 229, 5, 111, 2, 238, 253, 4, 84, 248,
- 194, 250, 27, 234, 80, 80, 229, 5, 111, 238, 253, 4, 211, 117, 2, 238,
- 253, 4, 211, 117, 192, 156, 213, 109, 248, 237, 217, 8, 237, 6, 57, 234,
- 119, 54, 228, 193, 130, 250, 77, 142, 250, 77, 209, 79, 210, 114, 194,
- 121, 219, 175, 46, 246, 146, 51, 246, 146, 46, 232, 182, 51, 232, 182,
- 247, 188, 51, 238, 185, 247, 188, 46, 238, 185, 198, 249, 51, 238, 185,
- 198, 249, 46, 238, 185, 207, 168, 213, 111, 57, 50, 219, 43, 250, 114,
- 205, 198, 205, 207, 200, 42, 207, 246, 209, 160, 223, 172, 196, 26, 202,
- 106, 209, 232, 80, 223, 137, 57, 163, 213, 111, 57, 194, 131, 228, 195,
- 198, 249, 46, 238, 223, 198, 249, 51, 238, 223, 247, 188, 46, 238, 223,
- 247, 188, 51, 238, 223, 198, 249, 138, 223, 141, 247, 188, 138, 223, 141,
- 232, 84, 202, 231, 130, 250, 78, 248, 61, 103, 229, 5, 248, 182, 211,
- 166, 222, 1, 234, 19, 115, 199, 225, 207, 101, 193, 224, 223, 191, 41,
- 207, 243, 247, 173, 221, 255, 220, 23, 250, 208, 186, 207, 96, 250, 208,
- 186, 234, 19, 115, 199, 225, 220, 28, 248, 72, 207, 81, 238, 105, 251, 9,
- 250, 86, 201, 3, 198, 234, 206, 191, 236, 224, 211, 155, 239, 12, 200,
- 114, 202, 245, 238, 212, 238, 211, 250, 157, 232, 67, 16, 228, 90, 250,
- 157, 232, 67, 16, 202, 97, 208, 174, 250, 157, 232, 67, 16, 208, 175,
- 234, 31, 250, 157, 232, 67, 16, 208, 175, 236, 179, 250, 157, 232, 67,
- 16, 208, 175, 237, 4, 250, 157, 232, 67, 16, 208, 175, 222, 220, 250,
- 157, 232, 67, 16, 208, 175, 242, 130, 250, 157, 232, 67, 16, 242, 131,
- 201, 246, 250, 157, 232, 67, 16, 242, 131, 222, 220, 250, 157, 232, 67,
- 16, 203, 5, 161, 250, 157, 232, 67, 16, 248, 248, 161, 250, 157, 232, 67,
- 16, 208, 175, 203, 4, 250, 157, 232, 67, 16, 208, 175, 248, 247, 250,
- 157, 232, 67, 16, 208, 175, 219, 239, 250, 157, 232, 67, 16, 208, 175,
- 230, 203, 250, 157, 232, 67, 16, 114, 196, 145, 250, 157, 232, 67, 16,
- 94, 196, 145, 250, 157, 232, 67, 16, 208, 175, 114, 54, 250, 157, 232,
- 67, 16, 208, 175, 94, 54, 250, 157, 232, 67, 16, 242, 131, 248, 247, 250,
- 157, 232, 67, 16, 142, 200, 160, 197, 67, 250, 157, 232, 67, 16, 237, 77,
- 201, 246, 250, 157, 232, 67, 16, 208, 175, 142, 246, 211, 250, 157, 232,
- 67, 16, 208, 175, 237, 76, 250, 157, 232, 67, 16, 142, 200, 160, 222,
- 220, 250, 157, 232, 67, 16, 197, 30, 196, 145, 250, 157, 232, 67, 16,
- 208, 175, 197, 30, 54, 250, 157, 232, 67, 16, 130, 200, 160, 211, 117,
- 250, 157, 232, 67, 16, 237, 89, 201, 246, 250, 157, 232, 67, 16, 208,
- 175, 130, 246, 211, 250, 157, 232, 67, 16, 208, 175, 237, 88, 250, 157,
- 232, 67, 16, 130, 200, 160, 222, 220, 250, 157, 232, 67, 16, 235, 92,
- 196, 145, 250, 157, 232, 67, 16, 208, 175, 235, 92, 54, 250, 157, 232,
- 67, 16, 208, 141, 197, 67, 250, 157, 232, 67, 16, 237, 77, 197, 67, 250,
- 157, 232, 67, 16, 237, 5, 197, 67, 250, 157, 232, 67, 16, 222, 221, 197,
- 67, 250, 157, 232, 67, 16, 242, 131, 197, 67, 250, 157, 232, 67, 16, 130,
- 203, 208, 222, 220, 250, 157, 232, 67, 16, 208, 141, 208, 174, 250, 157,
- 232, 67, 16, 242, 131, 202, 19, 250, 157, 232, 67, 16, 208, 175, 242, 47,
- 250, 157, 232, 67, 16, 130, 200, 160, 237, 14, 250, 157, 232, 67, 16,
- 237, 89, 237, 14, 250, 157, 232, 67, 16, 202, 20, 237, 14, 250, 157, 232,
- 67, 16, 222, 221, 237, 14, 250, 157, 232, 67, 16, 242, 131, 237, 14, 250,
- 157, 232, 67, 16, 142, 203, 208, 201, 246, 250, 157, 232, 67, 16, 46,
- 203, 208, 201, 246, 250, 157, 232, 67, 16, 199, 91, 237, 14, 250, 157,
- 232, 67, 16, 230, 204, 237, 14, 250, 157, 232, 67, 16, 242, 39, 161, 250,
- 157, 232, 67, 16, 237, 89, 199, 90, 250, 157, 232, 67, 16, 192, 20, 250,
- 157, 232, 67, 16, 201, 247, 199, 90, 250, 157, 232, 67, 16, 204, 181,
- 197, 67, 250, 157, 232, 67, 16, 208, 175, 213, 111, 234, 31, 250, 157,
- 232, 67, 16, 208, 175, 208, 158, 250, 157, 232, 67, 16, 142, 246, 212,
- 199, 90, 250, 157, 232, 67, 16, 130, 246, 212, 199, 90, 250, 157, 232,
- 67, 16, 223, 111, 250, 157, 232, 67, 16, 207, 153, 250, 157, 232, 67, 16,
- 211, 216, 250, 157, 232, 67, 16, 250, 253, 197, 67, 250, 157, 232, 67,
- 16, 234, 33, 197, 67, 250, 157, 232, 67, 16, 223, 112, 197, 67, 250, 157,
- 232, 67, 16, 211, 217, 197, 67, 250, 157, 232, 67, 16, 250, 252, 213,
- 111, 242, 244, 77, 51, 250, 208, 4, 235, 92, 192, 21, 54, 203, 176, 211,
- 184, 247, 173, 248, 87, 109, 84, 219, 176, 4, 85, 236, 114, 223, 147,
- 109, 238, 248, 197, 65, 109, 236, 197, 197, 65, 109, 234, 92, 109, 239,
- 27, 109, 62, 50, 4, 246, 138, 84, 219, 175, 234, 63, 109, 250, 244, 222,
- 2, 109, 229, 212, 109, 47, 229, 5, 248, 194, 4, 213, 108, 47, 198, 186,
- 235, 96, 247, 136, 242, 131, 4, 213, 114, 54, 197, 63, 109, 216, 40, 109,
- 228, 107, 109, 211, 182, 230, 123, 109, 211, 182, 220, 200, 109, 210,
- 210, 109, 210, 209, 109, 236, 206, 238, 136, 16, 232, 136, 104, 202, 195,
- 109, 250, 157, 232, 67, 16, 208, 174, 237, 108, 204, 166, 222, 2, 109,
- 209, 101, 211, 61, 214, 170, 211, 61, 209, 96, 205, 232, 109, 242, 102,
- 205, 232, 109, 46, 210, 231, 113, 128, 46, 210, 231, 233, 191, 46, 210,
- 231, 106, 128, 51, 210, 231, 113, 128, 51, 210, 231, 233, 191, 51, 210,
- 231, 106, 128, 46, 50, 247, 165, 113, 238, 223, 46, 50, 247, 165, 233,
- 191, 46, 50, 247, 165, 106, 238, 223, 51, 50, 247, 165, 113, 238, 223,
- 51, 50, 247, 165, 233, 191, 51, 50, 247, 165, 106, 238, 223, 46, 238,
- 138, 247, 165, 113, 128, 46, 238, 138, 247, 165, 85, 210, 42, 46, 238,
- 138, 247, 165, 106, 128, 238, 138, 247, 165, 233, 191, 51, 238, 138, 247,
- 165, 113, 128, 51, 238, 138, 247, 165, 85, 210, 42, 51, 238, 138, 247,
- 165, 106, 128, 223, 142, 233, 191, 229, 5, 219, 176, 233, 191, 113, 46,
- 211, 164, 106, 51, 238, 138, 247, 165, 205, 208, 113, 51, 211, 164, 106,
- 46, 238, 138, 247, 165, 205, 208, 201, 127, 198, 248, 201, 127, 247, 187,
- 198, 249, 50, 186, 247, 188, 50, 186, 247, 188, 50, 247, 165, 136, 198,
- 249, 50, 186, 48, 16, 247, 187, 46, 84, 105, 219, 175, 51, 84, 105, 219,
- 175, 229, 5, 205, 251, 219, 174, 229, 5, 205, 251, 219, 173, 229, 5, 205,
- 251, 219, 172, 229, 5, 205, 251, 219, 171, 237, 68, 16, 152, 84, 26, 198,
- 249, 207, 101, 237, 68, 16, 152, 84, 26, 247, 188, 207, 101, 237, 68, 16,
- 152, 84, 4, 242, 130, 237, 68, 16, 152, 142, 26, 229, 5, 4, 242, 130,
- 237, 68, 16, 152, 130, 26, 229, 5, 4, 242, 130, 237, 68, 16, 152, 84, 4,
- 198, 185, 237, 68, 16, 152, 142, 26, 229, 5, 4, 198, 185, 237, 68, 16,
- 152, 130, 26, 229, 5, 4, 198, 185, 237, 68, 16, 152, 84, 26, 194, 124,
- 237, 68, 16, 152, 142, 26, 229, 5, 4, 194, 124, 237, 68, 16, 152, 130,
- 26, 229, 5, 4, 194, 124, 237, 68, 16, 152, 142, 26, 229, 4, 237, 68, 16,
- 152, 130, 26, 229, 4, 237, 68, 16, 152, 84, 26, 198, 249, 220, 28, 237,
- 68, 16, 152, 84, 26, 247, 188, 220, 28, 50, 232, 149, 207, 173, 109, 234,
- 133, 109, 84, 219, 176, 233, 191, 216, 234, 247, 150, 216, 234, 184, 136,
- 203, 194, 216, 234, 203, 195, 136, 219, 84, 216, 234, 184, 136, 103, 203,
- 180, 216, 234, 103, 203, 181, 136, 219, 84, 216, 234, 103, 203, 181, 222,
- 229, 216, 234, 198, 166, 216, 234, 200, 0, 216, 234, 210, 142, 234, 190,
- 230, 195, 232, 61, 198, 249, 210, 230, 247, 188, 210, 230, 198, 249, 238,
- 138, 186, 247, 188, 238, 138, 186, 198, 249, 198, 237, 204, 2, 186, 247,
- 188, 198, 237, 204, 2, 186, 62, 198, 202, 248, 72, 207, 82, 4, 242, 130,
- 201, 228, 232, 193, 251, 147, 238, 135, 234, 118, 223, 127, 237, 108,
- 233, 195, 109, 60, 207, 96, 55, 198, 185, 60, 220, 23, 55, 198, 185, 60,
- 197, 40, 55, 198, 185, 60, 235, 95, 55, 198, 185, 60, 207, 96, 55, 198,
- 186, 4, 84, 161, 60, 220, 23, 55, 198, 186, 4, 84, 161, 60, 207, 96, 198,
- 186, 4, 55, 84, 161, 251, 30, 242, 87, 201, 235, 199, 83, 242, 87, 228,
- 196, 4, 232, 173, 206, 38, 60, 217, 31, 220, 23, 198, 185, 60, 217, 31,
- 207, 96, 198, 185, 60, 217, 31, 197, 40, 198, 185, 60, 217, 31, 235, 95,
- 198, 185, 55, 84, 161, 60, 50, 39, 201, 238, 60, 242, 131, 39, 207, 247,
- 209, 139, 109, 209, 139, 211, 210, 109, 209, 139, 211, 212, 109, 209,
- 139, 203, 0, 109, 212, 14, 233, 182, 109, 16, 39, 212, 238, 16, 39, 202,
- 15, 80, 229, 242, 16, 39, 202, 15, 80, 199, 244, 16, 39, 234, 80, 80,
- 199, 244, 16, 39, 234, 80, 80, 198, 208, 16, 39, 234, 66, 16, 39, 251,
- 134, 16, 39, 248, 86, 16, 39, 248, 246, 16, 39, 229, 5, 200, 161, 16, 39,
- 219, 176, 233, 38, 16, 39, 84, 200, 161, 16, 39, 232, 136, 233, 38, 16,
- 39, 246, 203, 207, 172, 16, 39, 203, 232, 211, 125, 16, 39, 203, 232,
- 223, 190, 16, 39, 237, 180, 219, 166, 234, 1, 16, 39, 237, 47, 238, 243,
- 101, 16, 39, 237, 47, 238, 243, 104, 16, 39, 237, 47, 238, 243, 133, 16,
- 39, 237, 47, 238, 243, 134, 16, 39, 214, 199, 251, 134, 16, 39, 200, 254,
- 223, 253, 16, 39, 234, 80, 80, 198, 209, 247, 238, 16, 39, 246, 241, 16,
- 39, 234, 80, 80, 217, 30, 16, 39, 201, 151, 16, 39, 234, 1, 16, 39, 232,
- 251, 204, 165, 16, 39, 230, 194, 204, 165, 16, 39, 207, 248, 204, 165,
- 16, 39, 197, 55, 204, 165, 16, 39, 202, 160, 16, 39, 237, 86, 247, 242,
- 109, 211, 184, 247, 173, 16, 39, 214, 173, 16, 39, 237, 87, 232, 136,
- 104, 16, 39, 201, 152, 232, 136, 104, 212, 10, 128, 212, 10, 246, 112,
- 212, 10, 232, 139, 212, 10, 223, 121, 232, 139, 212, 10, 248, 83, 247,
- 119, 212, 10, 247, 181, 199, 113, 212, 10, 247, 161, 248, 199, 228, 40,
- 212, 10, 250, 231, 80, 242, 243, 212, 10, 237, 185, 212, 10, 238, 124,
- 251, 138, 212, 236, 212, 10, 55, 248, 247, 47, 17, 101, 47, 17, 104, 47,
- 17, 133, 47, 17, 134, 47, 17, 151, 47, 17, 170, 47, 17, 179, 47, 17, 174,
- 47, 17, 182, 47, 31, 200, 30, 47, 31, 234, 111, 47, 31, 197, 244, 47, 31,
- 199, 186, 47, 31, 232, 113, 47, 31, 233, 7, 47, 31, 203, 35, 47, 31, 204,
- 143, 47, 31, 234, 145, 47, 31, 214, 13, 47, 31, 197, 239, 125, 17, 101,
- 125, 17, 104, 125, 17, 133, 125, 17, 134, 125, 17, 151, 125, 17, 170,
- 125, 17, 179, 125, 17, 174, 125, 17, 182, 125, 31, 200, 30, 125, 31, 234,
- 111, 125, 31, 197, 244, 125, 31, 199, 186, 125, 31, 232, 113, 125, 31,
- 233, 7, 125, 31, 203, 35, 125, 31, 204, 143, 125, 31, 234, 145, 125, 31,
- 214, 13, 125, 31, 197, 239, 17, 90, 232, 71, 201, 238, 17, 103, 232, 71,
- 201, 238, 17, 112, 232, 71, 201, 238, 17, 232, 119, 232, 71, 201, 238,
- 17, 232, 214, 232, 71, 201, 238, 17, 203, 41, 232, 71, 201, 238, 17, 204,
- 146, 232, 71, 201, 238, 17, 234, 148, 232, 71, 201, 238, 17, 214, 16,
- 232, 71, 201, 238, 31, 200, 31, 232, 71, 201, 238, 31, 234, 112, 232, 71,
- 201, 238, 31, 197, 245, 232, 71, 201, 238, 31, 199, 187, 232, 71, 201,
- 238, 31, 232, 114, 232, 71, 201, 238, 31, 233, 8, 232, 71, 201, 238, 31,
- 203, 36, 232, 71, 201, 238, 31, 204, 144, 232, 71, 201, 238, 31, 234,
- 146, 232, 71, 201, 238, 31, 214, 14, 232, 71, 201, 238, 31, 197, 240,
- 232, 71, 201, 238, 125, 8, 2, 1, 64, 125, 8, 2, 1, 249, 226, 125, 8, 2,
- 1, 247, 52, 125, 8, 2, 1, 238, 95, 125, 8, 2, 1, 71, 125, 8, 2, 1, 233,
- 163, 125, 8, 2, 1, 232, 44, 125, 8, 2, 1, 230, 124, 125, 8, 2, 1, 70,
- 125, 8, 2, 1, 223, 65, 125, 8, 2, 1, 222, 184, 125, 8, 2, 1, 165, 125, 8,
- 2, 1, 218, 236, 125, 8, 2, 1, 215, 151, 125, 8, 2, 1, 74, 125, 8, 2, 1,
- 211, 93, 125, 8, 2, 1, 208, 247, 125, 8, 2, 1, 150, 125, 8, 2, 1, 206,
- 158, 125, 8, 2, 1, 200, 228, 125, 8, 2, 1, 68, 125, 8, 2, 1, 196, 236,
- 125, 8, 2, 1, 194, 202, 125, 8, 2, 1, 193, 223, 125, 8, 2, 1, 193, 148,
- 125, 8, 2, 1, 192, 155, 47, 8, 6, 1, 64, 47, 8, 6, 1, 249, 226, 47, 8, 6,
- 1, 247, 52, 47, 8, 6, 1, 238, 95, 47, 8, 6, 1, 71, 47, 8, 6, 1, 233, 163,
- 47, 8, 6, 1, 232, 44, 47, 8, 6, 1, 230, 124, 47, 8, 6, 1, 70, 47, 8, 6,
- 1, 223, 65, 47, 8, 6, 1, 222, 184, 47, 8, 6, 1, 165, 47, 8, 6, 1, 218,
- 236, 47, 8, 6, 1, 215, 151, 47, 8, 6, 1, 74, 47, 8, 6, 1, 211, 93, 47, 8,
- 6, 1, 208, 247, 47, 8, 6, 1, 150, 47, 8, 6, 1, 206, 158, 47, 8, 6, 1,
- 200, 228, 47, 8, 6, 1, 68, 47, 8, 6, 1, 196, 236, 47, 8, 6, 1, 194, 202,
- 47, 8, 6, 1, 193, 223, 47, 8, 6, 1, 193, 148, 47, 8, 6, 1, 192, 155, 47,
- 8, 2, 1, 64, 47, 8, 2, 1, 249, 226, 47, 8, 2, 1, 247, 52, 47, 8, 2, 1,
- 238, 95, 47, 8, 2, 1, 71, 47, 8, 2, 1, 233, 163, 47, 8, 2, 1, 232, 44,
- 47, 8, 2, 1, 230, 124, 47, 8, 2, 1, 70, 47, 8, 2, 1, 223, 65, 47, 8, 2,
- 1, 222, 184, 47, 8, 2, 1, 165, 47, 8, 2, 1, 218, 236, 47, 8, 2, 1, 215,
- 151, 47, 8, 2, 1, 74, 47, 8, 2, 1, 211, 93, 47, 8, 2, 1, 208, 247, 47, 8,
- 2, 1, 150, 47, 8, 2, 1, 206, 158, 47, 8, 2, 1, 200, 228, 47, 8, 2, 1, 68,
- 47, 8, 2, 1, 196, 236, 47, 8, 2, 1, 194, 202, 47, 8, 2, 1, 193, 223, 47,
- 8, 2, 1, 193, 148, 47, 8, 2, 1, 192, 155, 47, 17, 192, 76, 214, 199, 47,
- 31, 234, 111, 214, 199, 47, 31, 197, 244, 214, 199, 47, 31, 199, 186,
- 214, 199, 47, 31, 232, 113, 214, 199, 47, 31, 233, 7, 214, 199, 47, 31,
- 203, 35, 214, 199, 47, 31, 204, 143, 214, 199, 47, 31, 234, 145, 214,
- 199, 47, 31, 214, 13, 214, 199, 47, 31, 197, 239, 55, 47, 17, 101, 55,
- 47, 17, 104, 55, 47, 17, 133, 55, 47, 17, 134, 55, 47, 17, 151, 55, 47,
- 17, 170, 55, 47, 17, 179, 55, 47, 17, 174, 55, 47, 17, 182, 55, 47, 31,
- 200, 30, 214, 199, 47, 17, 192, 76, 105, 119, 152, 229, 4, 105, 119, 87,
- 229, 4, 105, 119, 152, 196, 105, 105, 119, 87, 196, 105, 105, 119, 152,
- 198, 170, 237, 186, 229, 4, 105, 119, 87, 198, 170, 237, 186, 229, 4,
- 105, 119, 152, 198, 170, 237, 186, 196, 105, 105, 119, 87, 198, 170, 237,
- 186, 196, 105, 105, 119, 152, 208, 170, 237, 186, 229, 4, 105, 119, 87,
- 208, 170, 237, 186, 229, 4, 105, 119, 152, 208, 170, 237, 186, 196, 105,
- 105, 119, 87, 208, 170, 237, 186, 196, 105, 105, 119, 152, 142, 26, 207,
- 101, 105, 119, 142, 152, 26, 51, 229, 227, 105, 119, 142, 87, 26, 51,
- 219, 195, 105, 119, 87, 142, 26, 207, 101, 105, 119, 152, 142, 26, 220,
- 28, 105, 119, 142, 152, 26, 46, 229, 227, 105, 119, 142, 87, 26, 46, 219,
- 195, 105, 119, 87, 142, 26, 220, 28, 105, 119, 152, 130, 26, 207, 101,
- 105, 119, 130, 152, 26, 51, 229, 227, 105, 119, 130, 87, 26, 51, 219,
- 195, 105, 119, 87, 130, 26, 207, 101, 105, 119, 152, 130, 26, 220, 28,
- 105, 119, 130, 152, 26, 46, 229, 227, 105, 119, 130, 87, 26, 46, 219,
- 195, 105, 119, 87, 130, 26, 220, 28, 105, 119, 152, 84, 26, 207, 101,
- 105, 119, 84, 152, 26, 51, 229, 227, 105, 119, 130, 87, 26, 51, 142, 219,
- 195, 105, 119, 142, 87, 26, 51, 130, 219, 195, 105, 119, 84, 87, 26, 51,
- 219, 195, 105, 119, 142, 152, 26, 51, 130, 229, 227, 105, 119, 130, 152,
- 26, 51, 142, 229, 227, 105, 119, 87, 84, 26, 207, 101, 105, 119, 152, 84,
- 26, 220, 28, 105, 119, 84, 152, 26, 46, 229, 227, 105, 119, 130, 87, 26,
- 46, 142, 219, 195, 105, 119, 142, 87, 26, 46, 130, 219, 195, 105, 119,
- 84, 87, 26, 46, 219, 195, 105, 119, 142, 152, 26, 46, 130, 229, 227, 105,
- 119, 130, 152, 26, 46, 142, 229, 227, 105, 119, 87, 84, 26, 220, 28, 105,
- 119, 152, 142, 26, 229, 4, 105, 119, 46, 87, 26, 51, 142, 219, 195, 105,
- 119, 51, 87, 26, 46, 142, 219, 195, 105, 119, 142, 152, 26, 229, 5, 229,
- 227, 105, 119, 142, 87, 26, 229, 5, 219, 195, 105, 119, 51, 152, 26, 46,
- 142, 229, 227, 105, 119, 46, 152, 26, 51, 142, 229, 227, 105, 119, 87,
- 142, 26, 229, 4, 105, 119, 152, 130, 26, 229, 4, 105, 119, 46, 87, 26,
- 51, 130, 219, 195, 105, 119, 51, 87, 26, 46, 130, 219, 195, 105, 119,
- 130, 152, 26, 229, 5, 229, 227, 105, 119, 130, 87, 26, 229, 5, 219, 195,
- 105, 119, 51, 152, 26, 46, 130, 229, 227, 105, 119, 46, 152, 26, 51, 130,
- 229, 227, 105, 119, 87, 130, 26, 229, 4, 105, 119, 152, 84, 26, 229, 4,
- 105, 119, 46, 87, 26, 51, 84, 219, 195, 105, 119, 51, 87, 26, 46, 84,
- 219, 195, 105, 119, 84, 152, 26, 229, 5, 229, 227, 105, 119, 130, 87, 26,
- 142, 229, 5, 219, 195, 105, 119, 142, 87, 26, 130, 229, 5, 219, 195, 105,
- 119, 84, 87, 26, 229, 5, 219, 195, 105, 119, 46, 130, 87, 26, 51, 142,
- 219, 195, 105, 119, 51, 130, 87, 26, 46, 142, 219, 195, 105, 119, 46,
- 142, 87, 26, 51, 130, 219, 195, 105, 119, 51, 142, 87, 26, 46, 130, 219,
- 195, 105, 119, 142, 152, 26, 130, 229, 5, 229, 227, 105, 119, 130, 152,
- 26, 142, 229, 5, 229, 227, 105, 119, 51, 152, 26, 46, 84, 229, 227, 105,
- 119, 46, 152, 26, 51, 84, 229, 227, 105, 119, 87, 84, 26, 229, 4, 105,
- 119, 152, 55, 237, 186, 229, 4, 105, 119, 87, 55, 237, 186, 229, 4, 105,
- 119, 152, 55, 237, 186, 196, 105, 105, 119, 87, 55, 237, 186, 196, 105,
- 105, 119, 55, 229, 4, 105, 119, 55, 196, 105, 105, 119, 142, 203, 74, 26,
- 51, 235, 106, 105, 119, 142, 55, 26, 51, 203, 73, 105, 119, 55, 142, 26,
- 207, 101, 105, 119, 142, 203, 74, 26, 46, 235, 106, 105, 119, 142, 55,
- 26, 46, 203, 73, 105, 119, 55, 142, 26, 220, 28, 105, 119, 130, 203, 74,
- 26, 51, 235, 106, 105, 119, 130, 55, 26, 51, 203, 73, 105, 119, 55, 130,
- 26, 207, 101, 105, 119, 130, 203, 74, 26, 46, 235, 106, 105, 119, 130,
- 55, 26, 46, 203, 73, 105, 119, 55, 130, 26, 220, 28, 105, 119, 84, 203,
- 74, 26, 51, 235, 106, 105, 119, 84, 55, 26, 51, 203, 73, 105, 119, 55,
- 84, 26, 207, 101, 105, 119, 84, 203, 74, 26, 46, 235, 106, 105, 119, 84,
- 55, 26, 46, 203, 73, 105, 119, 55, 84, 26, 220, 28, 105, 119, 142, 203,
- 74, 26, 229, 5, 235, 106, 105, 119, 142, 55, 26, 229, 5, 203, 73, 105,
- 119, 55, 142, 26, 229, 4, 105, 119, 130, 203, 74, 26, 229, 5, 235, 106,
- 105, 119, 130, 55, 26, 229, 5, 203, 73, 105, 119, 55, 130, 26, 229, 4,
- 105, 119, 84, 203, 74, 26, 229, 5, 235, 106, 105, 119, 84, 55, 26, 229,
- 5, 203, 73, 105, 119, 55, 84, 26, 229, 4, 105, 119, 152, 250, 115, 142,
- 26, 207, 101, 105, 119, 152, 250, 115, 142, 26, 220, 28, 105, 119, 152,
- 250, 115, 130, 26, 220, 28, 105, 119, 152, 250, 115, 130, 26, 207, 101,
- 105, 119, 152, 237, 11, 113, 51, 115, 106, 220, 28, 105, 119, 152, 237,
- 11, 113, 46, 115, 106, 207, 101, 105, 119, 152, 237, 11, 238, 183, 105,
- 119, 152, 220, 28, 105, 119, 152, 197, 41, 105, 119, 152, 207, 101, 105,
- 119, 152, 235, 96, 105, 119, 87, 220, 28, 105, 119, 87, 197, 41, 105,
- 119, 87, 207, 101, 105, 119, 87, 235, 96, 105, 119, 152, 46, 26, 87, 207,
- 101, 105, 119, 152, 130, 26, 87, 235, 96, 105, 119, 87, 46, 26, 152, 207,
- 101, 105, 119, 87, 130, 26, 152, 235, 96, 113, 138, 247, 238, 106, 90,
- 234, 144, 247, 238, 106, 90, 208, 168, 247, 238, 106, 112, 234, 142, 247,
- 238, 106, 138, 247, 238, 106, 232, 214, 234, 142, 247, 238, 106, 112,
- 208, 166, 247, 238, 106, 204, 146, 234, 142, 247, 238, 232, 71, 247, 238,
- 46, 204, 146, 234, 142, 247, 238, 46, 112, 208, 166, 247, 238, 46, 232,
- 214, 234, 142, 247, 238, 46, 138, 247, 238, 46, 112, 234, 142, 247, 238,
- 46, 90, 208, 168, 247, 238, 46, 90, 234, 144, 247, 238, 51, 138, 247,
- 238, 152, 204, 52, 217, 31, 204, 52, 237, 191, 204, 52, 113, 90, 234,
- 144, 247, 238, 51, 90, 234, 144, 247, 238, 208, 172, 106, 220, 28, 208,
- 172, 106, 207, 101, 208, 172, 113, 220, 28, 208, 172, 113, 46, 26, 106,
- 46, 26, 106, 207, 101, 208, 172, 113, 46, 26, 106, 207, 101, 208, 172,
- 113, 46, 26, 113, 51, 26, 106, 220, 28, 208, 172, 113, 46, 26, 113, 51,
- 26, 106, 207, 101, 208, 172, 113, 207, 101, 208, 172, 113, 51, 26, 106,
- 220, 28, 208, 172, 113, 51, 26, 106, 46, 26, 106, 207, 101, 60, 202, 106,
- 62, 202, 106, 62, 50, 4, 207, 7, 238, 222, 62, 50, 238, 254, 60, 2, 202,
- 106, 50, 4, 229, 5, 232, 249, 50, 4, 84, 232, 249, 50, 4, 211, 146, 238,
- 177, 232, 249, 50, 4, 113, 46, 115, 106, 51, 232, 249, 50, 4, 113, 51,
- 115, 106, 46, 232, 249, 50, 4, 237, 11, 238, 177, 232, 249, 60, 2, 202,
- 106, 62, 2, 202, 106, 60, 207, 242, 62, 207, 242, 60, 84, 207, 242, 62,
- 84, 207, 242, 60, 210, 234, 62, 210, 234, 60, 197, 40, 198, 185, 62, 197,
- 40, 198, 185, 60, 197, 40, 2, 198, 185, 62, 197, 40, 2, 198, 185, 60,
- 207, 96, 198, 185, 62, 207, 96, 198, 185, 60, 207, 96, 2, 198, 185, 62,
- 207, 96, 2, 198, 185, 60, 207, 96, 209, 189, 62, 207, 96, 209, 189, 60,
- 235, 95, 198, 185, 62, 235, 95, 198, 185, 60, 235, 95, 2, 198, 185, 62,
- 235, 95, 2, 198, 185, 60, 220, 23, 198, 185, 62, 220, 23, 198, 185, 60,
- 220, 23, 2, 198, 185, 62, 220, 23, 2, 198, 185, 60, 220, 23, 209, 189,
- 62, 220, 23, 209, 189, 60, 237, 4, 62, 237, 4, 62, 237, 5, 238, 254, 60,
- 2, 237, 4, 232, 223, 219, 43, 62, 242, 130, 235, 111, 242, 130, 242, 131,
- 4, 84, 232, 249, 247, 102, 60, 242, 130, 242, 131, 4, 46, 138, 247, 248,
- 242, 131, 4, 51, 138, 247, 248, 242, 131, 4, 106, 138, 247, 248, 242,
- 131, 4, 113, 138, 247, 248, 242, 131, 4, 113, 51, 208, 172, 247, 248,
- 242, 131, 4, 251, 9, 247, 77, 113, 46, 208, 172, 247, 248, 46, 138, 60,
- 242, 130, 51, 138, 60, 242, 130, 223, 123, 247, 106, 223, 123, 62, 242,
- 130, 113, 138, 223, 123, 62, 242, 130, 106, 138, 223, 123, 62, 242, 130,
- 113, 46, 208, 172, 242, 124, 250, 114, 113, 51, 208, 172, 242, 124, 250,
- 114, 106, 51, 208, 172, 242, 124, 250, 114, 106, 46, 208, 172, 242, 124,
- 250, 114, 113, 138, 242, 130, 106, 138, 242, 130, 60, 106, 51, 198, 185,
- 60, 106, 46, 198, 185, 60, 113, 46, 198, 185, 60, 113, 51, 198, 185, 62,
- 247, 106, 50, 4, 46, 138, 247, 248, 50, 4, 51, 138, 247, 248, 50, 4, 113,
- 46, 237, 11, 138, 247, 248, 50, 4, 106, 51, 237, 11, 138, 247, 248, 62,
- 50, 4, 84, 248, 7, 219, 175, 62, 197, 40, 198, 186, 4, 236, 114, 197, 40,
- 198, 186, 4, 46, 138, 247, 248, 197, 40, 198, 186, 4, 51, 138, 247, 248,
- 220, 73, 242, 130, 62, 50, 4, 113, 46, 208, 171, 62, 50, 4, 106, 46, 208,
- 171, 62, 50, 4, 106, 51, 208, 171, 62, 50, 4, 113, 51, 208, 171, 62, 242,
- 131, 4, 113, 46, 208, 171, 62, 242, 131, 4, 106, 46, 208, 171, 62, 242,
- 131, 4, 106, 51, 208, 171, 62, 242, 131, 4, 113, 51, 208, 171, 113, 46,
- 198, 185, 113, 51, 198, 185, 106, 46, 198, 185, 62, 217, 31, 202, 106,
- 60, 217, 31, 202, 106, 62, 217, 31, 2, 202, 106, 60, 217, 31, 2, 202,
- 106, 106, 51, 198, 185, 60, 201, 124, 4, 208, 12, 242, 75, 197, 81, 202,
- 214, 242, 41, 60, 202, 19, 62, 202, 19, 219, 192, 199, 143, 201, 123,
- 250, 57, 213, 134, 237, 58, 213, 134, 239, 7, 211, 169, 60, 200, 41, 62,
- 200, 41, 248, 213, 247, 173, 248, 213, 105, 4, 242, 243, 248, 213, 105,
- 4, 193, 223, 206, 51, 197, 82, 4, 208, 42, 235, 69, 228, 202, 248, 58,
- 62, 203, 204, 210, 42, 60, 203, 204, 210, 42, 204, 39, 207, 168, 207, 16,
- 232, 179, 229, 234, 247, 106, 60, 46, 209, 188, 223, 176, 60, 51, 209,
- 188, 223, 176, 62, 46, 209, 188, 223, 176, 62, 130, 209, 188, 223, 176,
- 62, 51, 209, 188, 223, 176, 62, 142, 209, 188, 223, 176, 203, 11, 26,
- 238, 181, 246, 187, 57, 208, 54, 57, 248, 15, 57, 247, 10, 250, 196, 211,
- 147, 238, 183, 242, 216, 207, 153, 238, 184, 80, 219, 64, 238, 184, 80,
- 223, 30, 202, 20, 26, 238, 193, 233, 62, 109, 251, 117, 204, 42, 230, 70,
- 26, 203, 116, 210, 180, 109, 193, 11, 193, 95, 198, 175, 39, 229, 229,
- 198, 175, 39, 220, 102, 198, 175, 39, 232, 231, 198, 175, 39, 199, 144,
- 198, 175, 39, 194, 52, 198, 175, 39, 194, 129, 198, 175, 39, 216, 9, 198,
- 175, 39, 234, 189, 194, 80, 80, 237, 32, 62, 232, 83, 233, 91, 62, 202,
- 230, 233, 91, 60, 202, 230, 233, 91, 62, 201, 124, 4, 208, 12, 232, 226,
- 208, 168, 216, 29, 220, 66, 208, 168, 216, 29, 216, 255, 233, 30, 57,
- 234, 189, 217, 166, 57, 222, 199, 206, 13, 197, 22, 214, 189, 209, 202,
- 250, 100, 200, 98, 231, 145, 246, 239, 219, 246, 196, 9, 219, 206, 205,
- 234, 206, 77, 246, 221, 250, 132, 209, 244, 62, 242, 225, 221, 176, 62,
- 242, 225, 208, 160, 62, 242, 225, 207, 25, 62, 242, 225, 248, 5, 62, 242,
- 225, 221, 122, 62, 242, 225, 210, 192, 60, 242, 225, 221, 176, 60, 242,
- 225, 208, 160, 60, 242, 225, 207, 25, 60, 242, 225, 248, 5, 60, 242, 225,
- 221, 122, 60, 242, 225, 210, 192, 60, 202, 158, 201, 136, 62, 229, 234,
- 201, 136, 62, 237, 5, 201, 136, 60, 242, 72, 201, 136, 62, 202, 158, 201,
- 136, 60, 229, 234, 201, 136, 60, 237, 5, 201, 136, 62, 242, 72, 201, 136,
- 228, 202, 202, 111, 208, 168, 213, 105, 234, 144, 213, 105, 248, 119,
- 234, 144, 213, 100, 248, 119, 203, 34, 213, 100, 215, 185, 232, 196, 57,
- 215, 185, 215, 43, 57, 215, 185, 204, 26, 57, 194, 91, 200, 248, 238,
- 183, 234, 186, 200, 248, 238, 183, 197, 51, 207, 238, 109, 207, 238, 16,
- 39, 197, 205, 209, 222, 207, 238, 16, 39, 197, 203, 209, 222, 207, 238,
- 16, 39, 197, 202, 209, 222, 207, 238, 16, 39, 197, 200, 209, 222, 207,
- 238, 16, 39, 197, 198, 209, 222, 207, 238, 16, 39, 197, 196, 209, 222,
- 207, 238, 16, 39, 197, 194, 209, 222, 207, 238, 16, 39, 231, 142, 217,
- 99, 60, 197, 51, 207, 238, 109, 207, 239, 210, 252, 109, 210, 221, 210,
- 252, 109, 210, 125, 210, 252, 57, 194, 78, 109, 236, 253, 233, 90, 236,
- 253, 233, 89, 236, 253, 233, 88, 236, 253, 233, 87, 236, 253, 233, 86,
- 236, 253, 233, 85, 62, 242, 131, 4, 78, 207, 101, 62, 242, 131, 4, 103,
- 236, 111, 60, 242, 131, 4, 62, 78, 207, 101, 60, 242, 131, 4, 103, 62,
- 236, 111, 216, 45, 39, 193, 95, 216, 45, 39, 193, 10, 236, 234, 39, 230,
- 205, 193, 95, 236, 234, 39, 219, 238, 193, 10, 236, 234, 39, 219, 238,
- 193, 95, 236, 234, 39, 230, 205, 193, 10, 62, 232, 206, 60, 232, 206,
- 230, 70, 26, 210, 47, 250, 219, 238, 180, 201, 59, 202, 29, 80, 251, 91,
- 205, 252, 251, 25, 232, 175, 231, 155, 202, 29, 80, 229, 201, 250, 16,
- 109, 232, 191, 211, 121, 62, 202, 19, 112, 219, 170, 238, 240, 207, 101,
- 112, 219, 170, 238, 240, 220, 28, 194, 140, 57, 139, 195, 240, 57, 235,
- 101, 233, 30, 57, 235, 101, 217, 166, 57, 223, 133, 233, 30, 26, 217,
- 166, 57, 217, 166, 26, 233, 30, 57, 217, 166, 4, 201, 208, 57, 217, 166,
- 4, 201, 208, 26, 217, 166, 26, 233, 30, 57, 84, 217, 166, 4, 201, 208,
- 57, 229, 5, 217, 166, 4, 201, 208, 57, 217, 31, 62, 242, 130, 217, 31,
- 60, 242, 130, 217, 31, 2, 62, 242, 130, 217, 119, 109, 236, 170, 109,
- 197, 48, 210, 220, 109, 242, 53, 232, 66, 197, 18, 214, 180, 246, 123,
- 211, 43, 222, 205, 196, 50, 242, 195, 60, 216, 30, 219, 189, 204, 75,
- 204, 177, 208, 150, 204, 154, 202, 202, 248, 217, 248, 179, 108, 222, 1,
- 62, 235, 81, 217, 160, 62, 235, 81, 221, 176, 60, 235, 81, 217, 160, 60,
- 235, 81, 221, 176, 202, 215, 194, 39, 202, 218, 201, 124, 248, 93, 242,
- 75, 208, 41, 60, 202, 214, 199, 145, 242, 76, 26, 208, 41, 163, 62, 203,
- 204, 210, 42, 163, 60, 203, 204, 210, 42, 62, 237, 5, 223, 191, 202, 106,
- 238, 176, 220, 80, 236, 201, 246, 217, 211, 172, 210, 47, 246, 218, 202,
- 249, 229, 211, 4, 62, 238, 183, 47, 238, 176, 220, 80, 246, 113, 213,
- 143, 234, 57, 250, 249, 211, 203, 46, 194, 115, 198, 216, 60, 197, 217,
- 46, 194, 115, 198, 216, 62, 197, 217, 46, 194, 115, 198, 216, 60, 46,
- 220, 81, 216, 254, 62, 46, 220, 81, 216, 254, 235, 76, 202, 240, 57, 87,
- 62, 235, 95, 198, 185, 46, 242, 84, 234, 57, 108, 206, 51, 233, 71, 237,
- 11, 223, 191, 62, 242, 131, 223, 191, 60, 202, 106, 60, 198, 149, 207,
- 179, 46, 234, 56, 207, 179, 46, 234, 55, 250, 31, 16, 39, 197, 22, 87,
- 242, 131, 4, 201, 208, 26, 103, 236, 112, 58, 210, 143, 207, 98, 223,
- 135, 210, 143, 220, 25, 223, 135, 210, 143, 223, 121, 210, 143, 60, 238,
- 184, 211, 212, 203, 233, 203, 221, 203, 169, 242, 160, 246, 195, 229,
- 138, 203, 42, 231, 156, 194, 39, 228, 175, 231, 156, 4, 230, 39, 217,
- 142, 16, 39, 219, 194, 216, 9, 197, 82, 211, 212, 230, 195, 232, 120,
- 232, 207, 223, 191, 229, 25, 233, 20, 206, 72, 50, 232, 119, 238, 222,
- 203, 14, 228, 50, 203, 18, 210, 117, 4, 248, 217, 200, 22, 223, 50, 248,
- 199, 109, 229, 239, 230, 207, 109, 232, 74, 209, 39, 238, 149, 211, 212,
- 60, 202, 106, 62, 232, 207, 4, 229, 5, 85, 60, 201, 209, 60, 206, 82,
- 205, 238, 113, 247, 243, 205, 238, 60, 205, 238, 106, 247, 243, 205, 238,
- 62, 205, 238, 62, 87, 242, 244, 77, 200, 42, 219, 104, 57, 200, 115, 235,
- 75, 251, 50, 234, 52, 208, 39, 232, 219, 208, 39, 230, 62, 196, 37, 230,
- 62, 193, 247, 230, 62, 106, 51, 210, 153, 210, 153, 113, 51, 210, 153,
- 62, 214, 49, 60, 214, 49, 242, 244, 77, 87, 242, 244, 77, 215, 214, 193,
- 223, 87, 215, 214, 193, 223, 248, 213, 193, 223, 87, 248, 213, 193, 223,
- 211, 121, 33, 238, 183, 87, 33, 238, 183, 211, 184, 246, 138, 238, 183,
- 87, 211, 184, 246, 138, 238, 183, 8, 238, 183, 204, 50, 62, 8, 238, 183,
- 211, 121, 8, 238, 183, 217, 163, 238, 183, 202, 20, 80, 237, 178, 232,
- 119, 200, 61, 250, 37, 232, 119, 248, 214, 250, 37, 87, 232, 119, 248,
- 214, 250, 37, 232, 119, 242, 70, 250, 37, 60, 232, 119, 209, 190, 202,
- 19, 62, 232, 119, 209, 190, 202, 19, 202, 153, 201, 218, 211, 121, 62,
- 202, 19, 47, 62, 202, 19, 211, 184, 246, 138, 60, 202, 19, 60, 246, 138,
- 62, 202, 19, 211, 121, 60, 202, 19, 87, 211, 121, 60, 202, 19, 209, 254,
- 202, 19, 204, 50, 62, 202, 19, 87, 250, 37, 211, 184, 246, 138, 250, 37,
- 234, 148, 202, 122, 250, 37, 234, 148, 209, 190, 60, 202, 19, 234, 148,
- 209, 190, 209, 254, 202, 19, 203, 41, 209, 190, 60, 202, 19, 234, 148,
- 209, 190, 207, 240, 60, 202, 19, 87, 234, 148, 209, 190, 207, 240, 60,
- 202, 19, 197, 245, 209, 190, 60, 202, 19, 203, 36, 209, 190, 250, 37,
- 200, 61, 250, 37, 211, 184, 246, 138, 200, 61, 250, 37, 87, 200, 61, 250,
- 37, 203, 41, 210, 105, 60, 26, 62, 232, 178, 60, 232, 178, 62, 232, 178,
- 234, 148, 210, 105, 211, 121, 60, 232, 178, 47, 211, 184, 246, 138, 234,
- 148, 209, 190, 202, 19, 87, 200, 61, 209, 254, 250, 37, 202, 216, 199,
- 107, 198, 178, 202, 216, 87, 242, 221, 202, 216, 202, 155, 87, 202, 155,
- 248, 214, 250, 37, 234, 148, 200, 61, 209, 74, 250, 37, 87, 234, 148,
- 200, 61, 209, 74, 250, 37, 238, 184, 77, 204, 50, 62, 242, 130, 214, 199,
- 108, 238, 184, 77, 106, 51, 235, 71, 62, 202, 106, 113, 51, 235, 71, 62,
- 202, 106, 106, 51, 204, 50, 62, 202, 106, 113, 51, 204, 50, 62, 202, 106,
- 60, 208, 159, 122, 211, 150, 62, 208, 159, 122, 211, 150, 62, 233, 204,
- 122, 211, 150, 60, 237, 5, 216, 113, 62, 193, 223, 87, 233, 204, 122,
- 109, 152, 84, 161, 217, 31, 84, 161, 87, 84, 161, 87, 203, 74, 163, 242,
- 39, 208, 142, 122, 211, 150, 87, 203, 74, 242, 39, 208, 142, 122, 211,
- 150, 87, 55, 163, 242, 39, 208, 142, 122, 211, 150, 87, 55, 242, 39, 208,
- 142, 122, 211, 150, 87, 132, 203, 74, 242, 39, 208, 142, 122, 211, 150,
- 87, 132, 55, 242, 39, 208, 142, 122, 211, 150, 238, 130, 202, 0, 210,
- 244, 3, 211, 150, 87, 233, 204, 122, 211, 150, 87, 229, 234, 233, 204,
- 122, 211, 150, 87, 60, 229, 233, 207, 16, 87, 60, 229, 234, 247, 106,
- 232, 179, 229, 233, 207, 16, 232, 179, 229, 234, 247, 106, 217, 31, 46,
- 210, 231, 211, 150, 217, 31, 51, 210, 231, 211, 150, 217, 31, 232, 192,
- 46, 210, 231, 211, 150, 217, 31, 232, 192, 51, 210, 231, 211, 150, 217,
- 31, 220, 23, 250, 208, 247, 165, 211, 150, 217, 31, 207, 96, 250, 208,
- 247, 165, 211, 150, 87, 220, 23, 250, 208, 208, 142, 122, 211, 150, 87,
- 207, 96, 250, 208, 208, 142, 122, 211, 150, 87, 220, 23, 250, 208, 247,
- 165, 211, 150, 87, 207, 96, 250, 208, 247, 165, 211, 150, 152, 46, 198,
- 237, 204, 2, 247, 165, 211, 150, 152, 51, 198, 237, 204, 2, 247, 165,
- 211, 150, 217, 31, 46, 238, 138, 247, 165, 211, 150, 217, 31, 51, 238,
- 138, 247, 165, 211, 150, 236, 213, 214, 199, 47, 17, 101, 236, 213, 214,
- 199, 47, 17, 104, 236, 213, 214, 199, 47, 17, 133, 236, 213, 214, 199,
- 47, 17, 134, 236, 213, 214, 199, 47, 17, 151, 236, 213, 214, 199, 47, 17,
- 170, 236, 213, 214, 199, 47, 17, 179, 236, 213, 214, 199, 47, 17, 174,
- 236, 213, 214, 199, 47, 17, 182, 236, 213, 214, 199, 47, 31, 200, 30,
- 236, 213, 47, 49, 17, 101, 236, 213, 47, 49, 17, 104, 236, 213, 47, 49,
- 17, 133, 236, 213, 47, 49, 17, 134, 236, 213, 47, 49, 17, 151, 236, 213,
- 47, 49, 17, 170, 236, 213, 47, 49, 17, 179, 236, 213, 47, 49, 17, 174,
- 236, 213, 47, 49, 17, 182, 236, 213, 47, 49, 31, 200, 30, 236, 213, 214,
- 199, 47, 49, 17, 101, 236, 213, 214, 199, 47, 49, 17, 104, 236, 213, 214,
- 199, 47, 49, 17, 133, 236, 213, 214, 199, 47, 49, 17, 134, 236, 213, 214,
- 199, 47, 49, 17, 151, 236, 213, 214, 199, 47, 49, 17, 170, 236, 213, 214,
- 199, 47, 49, 17, 179, 236, 213, 214, 199, 47, 49, 17, 174, 236, 213, 214,
- 199, 47, 49, 17, 182, 236, 213, 214, 199, 47, 49, 31, 200, 30, 87, 194,
- 63, 94, 54, 87, 102, 57, 87, 216, 113, 57, 87, 236, 172, 57, 87, 202,
- 171, 234, 186, 54, 87, 94, 54, 87, 178, 234, 186, 54, 235, 86, 209, 192,
- 94, 54, 87, 207, 8, 94, 54, 198, 184, 94, 54, 87, 198, 184, 94, 54, 237,
- 184, 198, 184, 94, 54, 87, 237, 184, 198, 184, 94, 54, 60, 94, 54, 199,
- 160, 198, 247, 94, 250, 77, 199, 160, 247, 186, 94, 250, 77, 60, 94, 250,
- 77, 87, 60, 238, 130, 235, 92, 26, 94, 54, 87, 60, 238, 130, 197, 30, 26,
- 94, 54, 202, 103, 60, 94, 54, 87, 239, 20, 60, 94, 54, 207, 95, 62, 94,
- 54, 220, 22, 62, 94, 54, 248, 251, 204, 50, 62, 94, 54, 232, 86, 204, 50,
- 62, 94, 54, 87, 106, 207, 94, 62, 94, 54, 87, 113, 207, 94, 62, 94, 54,
- 213, 107, 106, 207, 94, 62, 94, 54, 238, 138, 219, 69, 213, 107, 113,
- 207, 94, 62, 94, 54, 47, 87, 62, 94, 54, 194, 74, 94, 54, 247, 247, 202,
- 171, 234, 186, 54, 247, 247, 94, 54, 247, 247, 178, 234, 186, 54, 87,
- 247, 247, 202, 171, 234, 186, 54, 87, 247, 247, 94, 54, 87, 247, 247,
- 178, 234, 186, 54, 200, 63, 94, 54, 87, 200, 62, 94, 54, 194, 101, 94,
- 54, 87, 194, 101, 94, 54, 211, 178, 94, 54, 55, 238, 138, 219, 69, 112,
- 236, 223, 250, 207, 62, 198, 186, 238, 254, 2, 62, 198, 185, 210, 120,
- 211, 184, 201, 153, 211, 184, 201, 105, 46, 206, 157, 248, 237, 237, 82,
- 51, 206, 157, 248, 237, 237, 82, 211, 164, 4, 78, 223, 145, 207, 169,
- 202, 190, 209, 114, 201, 153, 201, 106, 209, 114, 202, 189, 84, 248, 194,
- 4, 229, 5, 111, 13, 207, 73, 237, 10, 184, 236, 171, 13, 233, 71, 237,
- 10, 108, 219, 93, 250, 217, 108, 219, 93, 211, 163, 62, 237, 5, 4, 246,
- 136, 236, 114, 26, 4, 236, 114, 234, 116, 80, 211, 176, 197, 29, 106, 51,
- 238, 224, 4, 236, 114, 113, 46, 238, 224, 4, 236, 114, 46, 211, 123, 222,
- 231, 51, 211, 123, 222, 231, 232, 71, 211, 123, 222, 231, 220, 73, 130,
- 200, 159, 220, 73, 142, 200, 159, 46, 26, 51, 55, 198, 8, 46, 26, 51,
- 200, 159, 46, 215, 218, 184, 51, 200, 159, 184, 46, 200, 159, 130, 200,
- 160, 4, 242, 131, 58, 219, 44, 236, 178, 247, 64, 229, 5, 206, 202, 62,
- 239, 19, 237, 4, 62, 239, 19, 237, 5, 4, 114, 199, 117, 62, 239, 19, 237,
- 5, 4, 94, 199, 117, 62, 50, 4, 114, 199, 117, 62, 50, 4, 94, 199, 117,
- 13, 46, 62, 50, 186, 13, 51, 62, 50, 186, 13, 46, 250, 208, 186, 13, 51,
- 250, 208, 186, 13, 46, 55, 250, 208, 186, 13, 51, 55, 250, 208, 186, 13,
- 46, 62, 198, 237, 204, 2, 186, 13, 51, 62, 198, 237, 204, 2, 186, 13, 46,
- 232, 192, 210, 230, 13, 51, 232, 192, 210, 230, 197, 30, 208, 170, 54,
- 235, 92, 208, 170, 54, 250, 182, 231, 195, 242, 131, 54, 242, 86, 231,
- 195, 242, 131, 54, 51, 61, 4, 47, 209, 206, 184, 114, 54, 184, 94, 54,
- 184, 46, 51, 54, 184, 114, 55, 54, 184, 94, 55, 54, 184, 46, 51, 55, 54,
- 184, 114, 61, 232, 89, 161, 184, 94, 61, 232, 89, 161, 184, 114, 55, 61,
- 232, 89, 161, 184, 94, 55, 61, 232, 89, 161, 184, 94, 202, 99, 54, 66,
- 67, 247, 241, 66, 67, 236, 110, 66, 67, 235, 238, 66, 67, 236, 109, 66,
- 67, 235, 174, 66, 67, 236, 45, 66, 67, 235, 237, 66, 67, 236, 108, 66,
- 67, 235, 142, 66, 67, 236, 13, 66, 67, 235, 205, 66, 67, 236, 76, 66, 67,
- 235, 173, 66, 67, 236, 44, 66, 67, 235, 236, 66, 67, 236, 107, 66, 67,
- 235, 126, 66, 67, 235, 253, 66, 67, 235, 189, 66, 67, 236, 60, 66, 67,
- 235, 157, 66, 67, 236, 28, 66, 67, 235, 220, 66, 67, 236, 91, 66, 67,
- 235, 141, 66, 67, 236, 12, 66, 67, 235, 204, 66, 67, 236, 75, 66, 67,
- 235, 172, 66, 67, 236, 43, 66, 67, 235, 235, 66, 67, 236, 106, 66, 67,
- 235, 118, 66, 67, 235, 245, 66, 67, 235, 181, 66, 67, 236, 52, 66, 67,
- 235, 149, 66, 67, 236, 20, 66, 67, 235, 212, 66, 67, 236, 83, 66, 67,
- 235, 133, 66, 67, 236, 4, 66, 67, 235, 196, 66, 67, 236, 67, 66, 67, 235,
- 164, 66, 67, 236, 35, 66, 67, 235, 227, 66, 67, 236, 98, 66, 67, 235,
- 125, 66, 67, 235, 252, 66, 67, 235, 188, 66, 67, 236, 59, 66, 67, 235,
- 156, 66, 67, 236, 27, 66, 67, 235, 219, 66, 67, 236, 90, 66, 67, 235,
- 140, 66, 67, 236, 11, 66, 67, 235, 203, 66, 67, 236, 74, 66, 67, 235,
- 171, 66, 67, 236, 42, 66, 67, 235, 234, 66, 67, 236, 105, 66, 67, 235,
- 114, 66, 67, 235, 241, 66, 67, 235, 177, 66, 67, 236, 48, 66, 67, 235,
- 145, 66, 67, 236, 16, 66, 67, 235, 208, 66, 67, 236, 79, 66, 67, 235,
- 129, 66, 67, 236, 0, 66, 67, 235, 192, 66, 67, 236, 63, 66, 67, 235, 160,
- 66, 67, 236, 31, 66, 67, 235, 223, 66, 67, 236, 94, 66, 67, 235, 121, 66,
- 67, 235, 248, 66, 67, 235, 184, 66, 67, 236, 55, 66, 67, 235, 152, 66,
- 67, 236, 23, 66, 67, 235, 215, 66, 67, 236, 86, 66, 67, 235, 136, 66, 67,
- 236, 7, 66, 67, 235, 199, 66, 67, 236, 70, 66, 67, 235, 167, 66, 67, 236,
- 38, 66, 67, 235, 230, 66, 67, 236, 101, 66, 67, 235, 117, 66, 67, 235,
- 244, 66, 67, 235, 180, 66, 67, 236, 51, 66, 67, 235, 148, 66, 67, 236,
- 19, 66, 67, 235, 211, 66, 67, 236, 82, 66, 67, 235, 132, 66, 67, 236, 3,
- 66, 67, 235, 195, 66, 67, 236, 66, 66, 67, 235, 163, 66, 67, 236, 34, 66,
- 67, 235, 226, 66, 67, 236, 97, 66, 67, 235, 124, 66, 67, 235, 251, 66,
- 67, 235, 187, 66, 67, 236, 58, 66, 67, 235, 155, 66, 67, 236, 26, 66, 67,
- 235, 218, 66, 67, 236, 89, 66, 67, 235, 139, 66, 67, 236, 10, 66, 67,
- 235, 202, 66, 67, 236, 73, 66, 67, 235, 170, 66, 67, 236, 41, 66, 67,
- 235, 233, 66, 67, 236, 104, 66, 67, 235, 112, 66, 67, 235, 239, 66, 67,
- 235, 175, 66, 67, 236, 46, 66, 67, 235, 143, 66, 67, 236, 14, 66, 67,
- 235, 206, 66, 67, 236, 77, 66, 67, 235, 127, 66, 67, 235, 254, 66, 67,
- 235, 190, 66, 67, 236, 61, 66, 67, 235, 158, 66, 67, 236, 29, 66, 67,
- 235, 221, 66, 67, 236, 92, 66, 67, 235, 119, 66, 67, 235, 246, 66, 67,
- 235, 182, 66, 67, 236, 53, 66, 67, 235, 150, 66, 67, 236, 21, 66, 67,
- 235, 213, 66, 67, 236, 84, 66, 67, 235, 134, 66, 67, 236, 5, 66, 67, 235,
- 197, 66, 67, 236, 68, 66, 67, 235, 165, 66, 67, 236, 36, 66, 67, 235,
- 228, 66, 67, 236, 99, 66, 67, 235, 115, 66, 67, 235, 242, 66, 67, 235,
- 178, 66, 67, 236, 49, 66, 67, 235, 146, 66, 67, 236, 17, 66, 67, 235,
- 209, 66, 67, 236, 80, 66, 67, 235, 130, 66, 67, 236, 1, 66, 67, 235, 193,
- 66, 67, 236, 64, 66, 67, 235, 161, 66, 67, 236, 32, 66, 67, 235, 224, 66,
- 67, 236, 95, 66, 67, 235, 122, 66, 67, 235, 249, 66, 67, 235, 185, 66,
- 67, 236, 56, 66, 67, 235, 153, 66, 67, 236, 24, 66, 67, 235, 216, 66, 67,
- 236, 87, 66, 67, 235, 137, 66, 67, 236, 8, 66, 67, 235, 200, 66, 67, 236,
- 71, 66, 67, 235, 168, 66, 67, 236, 39, 66, 67, 235, 231, 66, 67, 236,
- 102, 66, 67, 235, 113, 66, 67, 235, 240, 66, 67, 235, 176, 66, 67, 236,
- 47, 66, 67, 235, 144, 66, 67, 236, 15, 66, 67, 235, 207, 66, 67, 236, 78,
- 66, 67, 235, 128, 66, 67, 235, 255, 66, 67, 235, 191, 66, 67, 236, 62,
- 66, 67, 235, 159, 66, 67, 236, 30, 66, 67, 235, 222, 66, 67, 236, 93, 66,
- 67, 235, 120, 66, 67, 235, 247, 66, 67, 235, 183, 66, 67, 236, 54, 66,
- 67, 235, 151, 66, 67, 236, 22, 66, 67, 235, 214, 66, 67, 236, 85, 66, 67,
- 235, 135, 66, 67, 236, 6, 66, 67, 235, 198, 66, 67, 236, 69, 66, 67, 235,
- 166, 66, 67, 236, 37, 66, 67, 235, 229, 66, 67, 236, 100, 66, 67, 235,
- 116, 66, 67, 235, 243, 66, 67, 235, 179, 66, 67, 236, 50, 66, 67, 235,
- 147, 66, 67, 236, 18, 66, 67, 235, 210, 66, 67, 236, 81, 66, 67, 235,
- 131, 66, 67, 236, 2, 66, 67, 235, 194, 66, 67, 236, 65, 66, 67, 235, 162,
- 66, 67, 236, 33, 66, 67, 235, 225, 66, 67, 236, 96, 66, 67, 235, 123, 66,
- 67, 235, 250, 66, 67, 235, 186, 66, 67, 236, 57, 66, 67, 235, 154, 66,
- 67, 236, 25, 66, 67, 235, 217, 66, 67, 236, 88, 66, 67, 235, 138, 66, 67,
- 236, 9, 66, 67, 235, 201, 66, 67, 236, 72, 66, 67, 235, 169, 66, 67, 236,
- 40, 66, 67, 235, 232, 66, 67, 236, 103, 94, 197, 220, 61, 4, 84, 111, 94,
- 197, 220, 61, 4, 55, 84, 111, 114, 55, 61, 4, 84, 111, 94, 55, 61, 4, 84,
- 111, 46, 51, 55, 61, 4, 84, 111, 94, 197, 220, 61, 232, 89, 161, 114, 55,
- 61, 232, 89, 161, 94, 55, 61, 232, 89, 161, 235, 92, 61, 4, 229, 5, 111,
- 197, 30, 61, 4, 229, 5, 111, 197, 30, 198, 170, 54, 235, 92, 198, 170,
- 54, 114, 55, 237, 186, 54, 94, 55, 237, 186, 54, 114, 198, 170, 237, 186,
- 54, 94, 198, 170, 237, 186, 54, 94, 197, 220, 198, 170, 237, 186, 54, 94,
- 61, 4, 235, 111, 201, 255, 197, 30, 61, 115, 161, 235, 92, 61, 115, 161,
- 94, 61, 4, 200, 148, 4, 84, 111, 94, 61, 4, 200, 148, 4, 55, 84, 111, 94,
- 197, 220, 61, 4, 200, 147, 94, 197, 220, 61, 4, 200, 148, 4, 84, 111, 94,
- 197, 220, 61, 4, 200, 148, 4, 55, 84, 111, 114, 250, 79, 94, 250, 79,
- 114, 55, 250, 79, 94, 55, 250, 79, 114, 61, 115, 60, 237, 4, 94, 61, 115,
- 60, 237, 4, 114, 61, 232, 89, 248, 194, 115, 60, 237, 4, 94, 61, 232, 89,
- 248, 194, 115, 60, 237, 4, 178, 194, 91, 26, 202, 171, 234, 186, 54, 178,
- 234, 186, 26, 202, 171, 194, 91, 54, 178, 194, 91, 61, 4, 128, 178, 234,
- 186, 61, 4, 128, 202, 171, 234, 186, 61, 4, 128, 202, 171, 194, 91, 61,
- 4, 128, 178, 194, 91, 61, 26, 178, 234, 186, 54, 178, 234, 186, 61, 26,
- 202, 171, 234, 186, 54, 202, 171, 234, 186, 61, 26, 202, 171, 194, 91,
- 54, 202, 171, 194, 91, 61, 26, 178, 194, 91, 54, 207, 73, 237, 11, 238,
- 176, 233, 71, 237, 10, 233, 71, 237, 11, 238, 176, 207, 73, 237, 10, 202,
- 171, 234, 186, 61, 238, 176, 178, 234, 186, 54, 178, 234, 186, 61, 238,
- 176, 202, 171, 234, 186, 54, 233, 71, 237, 11, 238, 176, 178, 234, 186,
- 54, 207, 73, 237, 11, 238, 176, 202, 171, 234, 186, 54, 178, 234, 186,
- 61, 238, 176, 178, 194, 91, 54, 178, 194, 91, 61, 238, 176, 178, 234,
- 186, 54, 194, 125, 61, 209, 188, 236, 203, 207, 101, 61, 209, 188, 94,
- 199, 216, 238, 128, 197, 29, 61, 209, 188, 94, 199, 216, 238, 128, 235,
- 91, 61, 209, 188, 235, 92, 199, 216, 238, 128, 220, 18, 61, 209, 188,
- 235, 92, 199, 216, 238, 128, 207, 90, 207, 93, 250, 115, 242, 86, 54,
- 220, 21, 250, 115, 250, 182, 54, 198, 249, 250, 115, 250, 182, 54, 247,
- 188, 250, 115, 250, 182, 54, 198, 249, 250, 115, 242, 86, 61, 4, 216,
- 112, 198, 249, 250, 115, 250, 182, 61, 4, 209, 206, 106, 51, 204, 182,
- 242, 86, 54, 106, 46, 204, 182, 250, 182, 54, 250, 182, 242, 84, 242,
- 131, 54, 242, 86, 242, 84, 242, 131, 54, 94, 61, 95, 203, 195, 114, 54,
- 114, 61, 95, 203, 195, 94, 54, 203, 195, 94, 61, 95, 114, 54, 94, 61, 4,
- 102, 63, 114, 61, 4, 102, 63, 94, 61, 199, 151, 193, 223, 46, 51, 61,
- 199, 151, 2, 242, 130, 197, 30, 197, 220, 61, 232, 89, 2, 242, 130, 46,
- 173, 130, 51, 173, 142, 230, 21, 46, 173, 142, 51, 173, 130, 230, 21,
- 130, 173, 51, 142, 173, 46, 230, 21, 130, 173, 46, 142, 173, 51, 230, 21,
- 46, 173, 130, 51, 173, 130, 230, 21, 130, 173, 51, 142, 173, 51, 230, 21,
- 46, 173, 142, 51, 173, 142, 230, 21, 130, 173, 46, 142, 173, 46, 230, 21,
- 114, 230, 22, 4, 173, 130, 115, 161, 94, 230, 22, 4, 173, 130, 115, 161,
- 197, 30, 230, 22, 4, 173, 51, 115, 161, 235, 92, 230, 22, 4, 173, 51,
- 115, 161, 114, 230, 22, 4, 173, 142, 115, 161, 94, 230, 22, 4, 173, 142,
- 115, 161, 197, 30, 230, 22, 4, 173, 46, 115, 161, 235, 92, 230, 22, 4,
- 173, 46, 115, 161, 114, 230, 22, 4, 173, 130, 232, 89, 161, 94, 230, 22,
- 4, 173, 130, 232, 89, 161, 197, 30, 230, 22, 4, 173, 51, 232, 89, 161,
- 235, 92, 230, 22, 4, 173, 51, 232, 89, 161, 114, 230, 22, 4, 173, 142,
- 232, 89, 161, 94, 230, 22, 4, 173, 142, 232, 89, 161, 197, 30, 230, 22,
- 4, 173, 46, 232, 89, 161, 235, 92, 230, 22, 4, 173, 46, 232, 89, 161,
- 114, 230, 22, 4, 173, 130, 95, 114, 230, 22, 4, 173, 235, 96, 197, 30,
- 230, 22, 4, 173, 46, 248, 67, 197, 30, 230, 22, 4, 173, 207, 101, 94,
- 230, 22, 4, 173, 130, 95, 94, 230, 22, 4, 173, 235, 96, 235, 92, 230, 22,
- 4, 173, 46, 248, 67, 235, 92, 230, 22, 4, 173, 207, 101, 114, 230, 22, 4,
- 173, 130, 95, 94, 230, 22, 4, 173, 197, 41, 114, 230, 22, 4, 173, 142,
- 95, 94, 230, 22, 4, 173, 235, 96, 94, 230, 22, 4, 173, 130, 95, 114, 230,
- 22, 4, 173, 197, 41, 94, 230, 22, 4, 173, 142, 95, 114, 230, 22, 4, 173,
- 235, 96, 114, 230, 22, 4, 173, 130, 95, 184, 237, 185, 114, 230, 22, 4,
- 173, 142, 248, 84, 184, 237, 185, 94, 230, 22, 4, 173, 130, 95, 184, 237,
- 185, 94, 230, 22, 4, 173, 142, 248, 84, 184, 237, 185, 197, 30, 230, 22,
- 4, 173, 46, 248, 67, 235, 92, 230, 22, 4, 173, 207, 101, 235, 92, 230,
- 22, 4, 173, 46, 248, 67, 197, 30, 230, 22, 4, 173, 207, 101, 51, 55, 61,
- 4, 207, 7, 229, 245, 234, 30, 3, 95, 94, 54, 199, 91, 211, 174, 95, 94,
- 54, 114, 61, 95, 199, 91, 211, 173, 94, 61, 95, 199, 91, 211, 173, 94,
- 61, 95, 251, 1, 187, 155, 219, 240, 95, 114, 54, 114, 61, 199, 151, 219,
- 239, 230, 204, 95, 94, 54, 201, 154, 95, 94, 54, 114, 61, 199, 151, 201,
- 153, 201, 106, 95, 114, 54, 46, 232, 225, 200, 147, 51, 232, 225, 200,
- 147, 130, 232, 225, 200, 147, 142, 232, 225, 200, 147, 198, 170, 84, 248,
- 194, 237, 82, 192, 156, 213, 109, 202, 117, 192, 156, 213, 109, 197, 206,
- 242, 47, 46, 62, 238, 138, 186, 51, 62, 238, 138, 186, 46, 62, 210, 230,
- 51, 62, 210, 230, 192, 156, 213, 109, 46, 223, 206, 186, 192, 156, 213,
- 109, 51, 223, 206, 186, 192, 156, 213, 109, 46, 248, 19, 186, 192, 156,
- 213, 109, 51, 248, 19, 186, 46, 50, 247, 165, 4, 197, 67, 51, 50, 247,
- 165, 4, 197, 67, 46, 50, 247, 165, 4, 199, 118, 223, 191, 198, 249, 238,
- 223, 51, 50, 247, 165, 4, 199, 118, 223, 191, 247, 188, 238, 223, 46, 50,
- 247, 165, 4, 199, 118, 223, 191, 247, 188, 238, 223, 51, 50, 247, 165, 4,
- 199, 118, 223, 191, 198, 249, 238, 223, 46, 250, 208, 247, 165, 4, 236,
- 114, 51, 250, 208, 247, 165, 4, 236, 114, 46, 250, 115, 219, 240, 186,
- 51, 250, 115, 230, 204, 186, 55, 46, 250, 115, 230, 204, 186, 55, 51,
- 250, 115, 219, 240, 186, 46, 60, 198, 237, 204, 2, 186, 51, 60, 198, 237,
- 204, 2, 186, 235, 111, 233, 27, 84, 192, 21, 219, 175, 217, 42, 250, 208,
- 211, 176, 220, 28, 51, 250, 208, 196, 137, 4, 202, 106, 217, 42, 51, 250,
- 208, 4, 236, 114, 250, 208, 4, 206, 159, 223, 145, 251, 130, 250, 207,
- 202, 139, 250, 208, 211, 176, 220, 28, 202, 139, 250, 208, 211, 176, 197,
- 41, 163, 250, 207, 207, 168, 250, 207, 250, 208, 4, 197, 67, 207, 168,
- 250, 208, 4, 197, 67, 212, 18, 250, 208, 211, 176, 197, 41, 212, 18, 250,
- 208, 211, 176, 235, 96, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234, 76,
- 223, 191, 61, 209, 188, 130, 26, 207, 101, 217, 42, 250, 208, 4, 211,
- 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 130, 26, 220, 28, 217, 42,
- 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 142, 26,
- 207, 101, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61,
- 209, 188, 142, 26, 220, 28, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234,
- 76, 223, 191, 61, 209, 188, 51, 26, 197, 41, 217, 42, 250, 208, 4, 211,
- 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 46, 26, 197, 41, 217, 42,
- 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 51, 26,
- 235, 96, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61,
- 209, 188, 46, 26, 235, 96, 207, 168, 234, 90, 204, 151, 234, 90, 204,
- 152, 4, 211, 117, 234, 90, 204, 152, 4, 2, 242, 131, 58, 234, 90, 204,
- 152, 4, 51, 61, 58, 234, 90, 204, 152, 4, 46, 61, 58, 242, 131, 4, 229,
- 5, 161, 47, 84, 161, 47, 210, 235, 47, 207, 169, 202, 189, 47, 210, 120,
- 242, 131, 236, 178, 247, 64, 229, 5, 248, 194, 26, 198, 249, 138, 236,
- 178, 247, 64, 84, 161, 242, 131, 4, 201, 108, 193, 223, 47, 250, 180,
- 236, 172, 57, 130, 61, 199, 151, 242, 130, 47, 62, 247, 106, 47, 247,
- 106, 47, 219, 239, 47, 230, 203, 242, 131, 4, 2, 242, 131, 115, 199, 225,
- 207, 101, 242, 131, 4, 103, 229, 5, 201, 196, 115, 199, 225, 207, 101,
- 108, 207, 73, 237, 11, 203, 4, 108, 233, 71, 237, 11, 203, 4, 108, 250,
- 37, 108, 2, 242, 130, 108, 202, 106, 103, 222, 230, 202, 104, 198, 186,
- 4, 78, 58, 198, 186, 4, 197, 67, 206, 159, 223, 191, 198, 185, 198, 186,
- 4, 204, 159, 250, 27, 247, 187, 51, 198, 186, 95, 46, 198, 185, 46, 198,
- 186, 248, 67, 84, 161, 84, 248, 194, 248, 67, 51, 198, 185, 247, 175, 4,
- 46, 138, 247, 248, 247, 175, 4, 51, 138, 247, 248, 60, 247, 174, 24, 4,
- 46, 138, 247, 248, 24, 4, 51, 138, 247, 248, 62, 228, 195, 60, 228, 195,
- 46, 194, 58, 233, 27, 51, 194, 58, 233, 27, 46, 55, 194, 58, 233, 27, 51,
- 55, 194, 58, 233, 27, 223, 183, 223, 167, 199, 114, 136, 223, 167, 223,
- 168, 214, 201, 4, 84, 161, 235, 105, 215, 218, 50, 4, 238, 246, 211, 122,
- 223, 180, 250, 61, 203, 157, 209, 85, 234, 30, 3, 26, 203, 6, 210, 235,
- 234, 30, 3, 26, 203, 6, 210, 236, 4, 199, 91, 58, 228, 41, 115, 26, 203,
- 6, 210, 235, 231, 9, 202, 18, 199, 213, 235, 95, 198, 186, 4, 46, 138,
- 247, 248, 235, 95, 198, 186, 4, 51, 138, 247, 248, 60, 237, 5, 4, 142,
- 54, 60, 219, 43, 62, 242, 131, 4, 142, 54, 60, 242, 131, 4, 142, 54, 234,
- 12, 62, 202, 106, 234, 12, 60, 202, 106, 234, 12, 62, 237, 4, 234, 12,
- 60, 237, 4, 234, 12, 62, 242, 130, 234, 12, 60, 242, 130, 206, 201, 207,
- 169, 202, 190, 211, 173, 202, 190, 4, 211, 117, 207, 169, 202, 190, 4,
- 229, 5, 111, 248, 28, 202, 189, 248, 28, 207, 169, 202, 189, 55, 209,
- 206, 198, 170, 209, 206, 220, 23, 238, 130, 250, 208, 186, 207, 96, 238,
- 130, 250, 208, 186, 199, 75, 216, 110, 215, 150, 47, 78, 211, 173, 215,
- 150, 47, 102, 211, 173, 215, 150, 47, 24, 211, 173, 215, 150, 197, 57,
- 211, 174, 4, 236, 114, 215, 150, 197, 57, 211, 174, 4, 209, 206, 215,
- 150, 50, 223, 128, 211, 173, 215, 150, 50, 197, 57, 211, 173, 103, 219,
- 93, 26, 211, 173, 103, 219, 93, 211, 164, 211, 173, 215, 150, 24, 211,
- 173, 216, 59, 103, 201, 129, 201, 127, 4, 223, 141, 208, 170, 223, 142,
- 211, 173, 232, 234, 210, 224, 223, 141, 223, 142, 4, 55, 111, 223, 142,
- 249, 244, 4, 203, 4, 242, 123, 232, 68, 250, 182, 223, 139, 219, 176,
- 223, 140, 4, 207, 241, 210, 203, 250, 87, 209, 182, 219, 176, 223, 140,
- 4, 204, 182, 210, 203, 250, 87, 209, 182, 219, 176, 223, 140, 213, 111,
- 223, 185, 199, 225, 209, 182, 223, 142, 250, 87, 41, 209, 192, 211, 173,
- 208, 164, 223, 142, 211, 173, 223, 142, 4, 114, 61, 4, 128, 223, 142, 4,
- 24, 57, 223, 142, 4, 223, 127, 223, 142, 4, 197, 56, 223, 142, 4, 211,
- 117, 223, 142, 4, 197, 67, 222, 231, 220, 73, 46, 198, 186, 211, 173,
- 192, 156, 213, 109, 205, 246, 239, 26, 192, 156, 213, 109, 205, 246, 209,
- 250, 192, 156, 213, 109, 205, 246, 209, 80, 102, 3, 4, 2, 242, 131, 58,
- 102, 3, 4, 242, 122, 251, 144, 58, 102, 3, 4, 199, 91, 58, 102, 3, 4, 78,
- 63, 102, 3, 4, 199, 91, 63, 102, 3, 4, 201, 155, 104, 102, 3, 4, 60, 198,
- 185, 216, 113, 3, 4, 242, 39, 58, 216, 113, 3, 4, 78, 63, 216, 113, 3, 4,
- 233, 71, 236, 111, 216, 113, 3, 4, 207, 73, 236, 111, 102, 3, 223, 191,
- 46, 138, 242, 130, 102, 3, 223, 191, 51, 138, 242, 130, 196, 122, 211,
- 164, 238, 184, 209, 85, 215, 214, 3, 4, 78, 58, 215, 214, 3, 4, 197, 67,
- 204, 179, 209, 86, 4, 247, 188, 242, 83, 202, 234, 209, 85, 215, 214, 3,
- 223, 191, 46, 138, 242, 130, 215, 214, 3, 223, 191, 51, 138, 242, 130,
- 47, 215, 214, 3, 4, 242, 122, 251, 143, 215, 214, 3, 223, 191, 55, 242,
- 130, 47, 236, 172, 57, 102, 3, 223, 191, 198, 185, 216, 113, 3, 223, 191,
- 198, 185, 215, 214, 3, 223, 191, 198, 185, 223, 136, 209, 85, 207, 91,
- 223, 136, 209, 85, 192, 156, 213, 109, 207, 214, 239, 26, 250, 239, 211,
- 164, 238, 230, 223, 128, 4, 236, 114, 197, 57, 4, 216, 113, 57, 197, 57,
- 4, 211, 117, 223, 128, 4, 211, 117, 223, 128, 4, 219, 93, 250, 217, 197,
- 57, 4, 219, 93, 211, 163, 197, 57, 95, 223, 127, 223, 128, 95, 197, 56,
- 197, 57, 95, 248, 194, 95, 223, 127, 223, 128, 95, 248, 194, 95, 197, 56,
- 197, 57, 248, 67, 26, 222, 230, 4, 197, 56, 223, 128, 248, 67, 26, 222,
- 230, 4, 223, 127, 242, 84, 197, 57, 4, 204, 158, 242, 84, 223, 128, 4,
- 204, 158, 55, 50, 223, 127, 55, 50, 197, 56, 242, 84, 197, 57, 4, 204,
- 159, 26, 202, 234, 209, 85, 219, 93, 26, 4, 78, 58, 219, 93, 211, 164, 4,
- 78, 58, 55, 219, 93, 250, 217, 55, 219, 93, 211, 163, 103, 223, 129, 219,
- 93, 250, 217, 103, 223, 129, 219, 93, 211, 163, 202, 244, 220, 73, 211,
- 163, 202, 244, 220, 73, 250, 217, 219, 93, 211, 164, 211, 112, 219, 93,
- 250, 217, 219, 93, 26, 4, 85, 201, 255, 219, 93, 211, 164, 4, 85, 201,
- 255, 219, 93, 26, 4, 229, 5, 237, 185, 219, 93, 211, 164, 4, 229, 5, 237,
- 185, 219, 93, 26, 4, 55, 211, 117, 219, 93, 26, 4, 197, 67, 219, 93, 26,
- 4, 55, 197, 67, 2, 196, 119, 4, 197, 67, 219, 93, 211, 164, 4, 55, 211,
- 117, 219, 93, 211, 164, 4, 55, 197, 67, 192, 156, 213, 109, 236, 124,
- 250, 172, 192, 156, 213, 109, 208, 29, 250, 172, 234, 30, 3, 4, 78, 63,
- 228, 41, 4, 78, 58, 198, 170, 229, 5, 248, 194, 4, 55, 84, 111, 198, 170,
- 229, 5, 248, 194, 4, 198, 170, 84, 111, 199, 91, 211, 174, 4, 78, 58,
- 199, 91, 211, 174, 4, 207, 73, 236, 111, 203, 84, 216, 113, 203, 83, 239,
- 13, 4, 78, 58, 234, 30, 4, 250, 37, 251, 1, 187, 115, 4, 242, 122, 251,
- 143, 250, 138, 187, 211, 164, 187, 155, 234, 30, 3, 95, 102, 57, 102, 3,
- 95, 234, 30, 57, 234, 30, 3, 95, 199, 91, 211, 173, 55, 242, 48, 234, 31,
- 103, 239, 6, 234, 30, 203, 98, 112, 239, 6, 234, 30, 203, 98, 234, 30, 3,
- 4, 103, 236, 112, 95, 26, 103, 236, 112, 63, 234, 23, 4, 232, 119, 236,
- 112, 58, 219, 240, 4, 242, 131, 223, 145, 230, 204, 4, 242, 131, 223,
- 145, 219, 240, 4, 208, 159, 122, 58, 230, 204, 4, 208, 159, 122, 58, 219,
- 240, 211, 164, 203, 6, 187, 155, 230, 204, 211, 164, 203, 6, 187, 155,
- 219, 240, 211, 164, 203, 6, 187, 115, 4, 78, 223, 145, 230, 204, 211,
- 164, 203, 6, 187, 115, 4, 78, 223, 145, 219, 240, 211, 164, 203, 6, 187,
- 115, 4, 78, 58, 230, 204, 211, 164, 203, 6, 187, 115, 4, 78, 58, 219,
- 240, 211, 164, 203, 6, 187, 115, 4, 78, 95, 207, 101, 230, 204, 211, 164,
- 203, 6, 187, 115, 4, 78, 95, 220, 28, 219, 240, 211, 164, 250, 139, 230,
- 204, 211, 164, 250, 139, 219, 240, 26, 203, 72, 213, 111, 187, 155, 230,
- 204, 26, 203, 72, 213, 111, 187, 155, 219, 240, 26, 213, 111, 250, 139,
- 230, 204, 26, 213, 111, 250, 139, 219, 240, 95, 235, 104, 187, 95, 230,
- 203, 230, 204, 95, 235, 104, 187, 95, 219, 239, 219, 240, 95, 203, 84,
- 211, 164, 234, 31, 230, 204, 95, 203, 84, 211, 164, 234, 31, 219, 240,
- 95, 203, 84, 95, 230, 203, 230, 204, 95, 203, 84, 95, 219, 239, 219, 240,
- 95, 230, 204, 95, 235, 104, 234, 31, 230, 204, 95, 219, 240, 95, 235,
- 104, 234, 31, 219, 240, 95, 203, 6, 187, 95, 230, 204, 95, 203, 6, 234,
- 31, 230, 204, 95, 203, 6, 187, 95, 219, 240, 95, 203, 6, 234, 31, 203, 6,
- 187, 115, 211, 164, 219, 239, 203, 6, 187, 115, 211, 164, 230, 203, 203,
- 6, 187, 115, 211, 164, 219, 240, 4, 78, 223, 145, 203, 6, 187, 115, 211,
- 164, 230, 204, 4, 78, 223, 145, 235, 104, 187, 115, 211, 164, 219, 239,
- 235, 104, 187, 115, 211, 164, 230, 203, 235, 104, 203, 6, 187, 115, 211,
- 164, 219, 239, 235, 104, 203, 6, 187, 115, 211, 164, 230, 203, 203, 84,
- 211, 164, 219, 239, 203, 84, 211, 164, 230, 203, 203, 84, 95, 219, 240,
- 95, 234, 30, 57, 203, 84, 95, 230, 204, 95, 234, 30, 57, 55, 214, 185,
- 219, 239, 55, 214, 185, 230, 203, 55, 214, 185, 219, 240, 4, 197, 67,
- 230, 204, 211, 112, 219, 239, 230, 204, 248, 67, 219, 239, 219, 240, 242,
- 84, 247, 64, 238, 131, 230, 204, 242, 84, 247, 64, 238, 131, 219, 240,
- 242, 84, 247, 64, 238, 132, 95, 203, 6, 234, 31, 230, 204, 242, 84, 247,
- 64, 238, 132, 95, 203, 6, 234, 31, 202, 235, 199, 229, 220, 71, 199, 229,
- 202, 235, 199, 230, 211, 164, 187, 155, 220, 71, 199, 230, 211, 164, 187,
- 155, 234, 30, 3, 4, 247, 99, 58, 209, 116, 95, 203, 72, 234, 30, 57, 201,
- 146, 95, 203, 72, 234, 30, 57, 209, 116, 95, 203, 72, 213, 111, 187, 155,
- 201, 146, 95, 203, 72, 213, 111, 187, 155, 209, 116, 95, 234, 30, 57,
- 201, 146, 95, 234, 30, 57, 209, 116, 95, 213, 111, 187, 155, 201, 146,
- 95, 213, 111, 187, 155, 209, 116, 95, 251, 1, 187, 155, 201, 146, 95,
- 251, 1, 187, 155, 209, 116, 95, 213, 111, 251, 1, 187, 155, 201, 146, 95,
- 213, 111, 251, 1, 187, 155, 55, 209, 115, 55, 201, 145, 201, 154, 4, 236,
- 114, 201, 106, 4, 236, 114, 201, 154, 4, 102, 3, 63, 201, 106, 4, 102, 3,
- 63, 201, 154, 4, 215, 214, 3, 63, 201, 106, 4, 215, 214, 3, 63, 201, 154,
- 80, 211, 164, 187, 115, 4, 78, 58, 201, 106, 80, 211, 164, 187, 115, 4,
- 78, 58, 201, 154, 80, 95, 234, 30, 57, 201, 106, 80, 95, 234, 30, 57,
- 201, 154, 80, 95, 199, 91, 211, 173, 201, 106, 80, 95, 199, 91, 211, 173,
- 201, 154, 80, 95, 251, 1, 187, 155, 201, 106, 80, 95, 251, 1, 187, 155,
- 201, 154, 80, 95, 213, 111, 187, 155, 201, 106, 80, 95, 213, 111, 187,
- 155, 50, 46, 211, 184, 105, 211, 173, 50, 51, 211, 184, 105, 211, 173,
- 242, 84, 201, 153, 242, 84, 201, 105, 242, 84, 201, 154, 211, 164, 187,
- 155, 242, 84, 201, 106, 211, 164, 187, 155, 201, 154, 95, 201, 105, 201,
- 106, 95, 201, 153, 201, 154, 95, 201, 153, 201, 106, 95, 201, 105, 201,
- 106, 248, 67, 201, 153, 201, 106, 248, 67, 26, 222, 230, 247, 64, 237,
- 186, 4, 201, 153, 234, 116, 80, 211, 176, 235, 91, 209, 240, 4, 200, 57,
- 198, 248, 198, 204, 223, 127, 232, 137, 213, 126, 203, 195, 46, 200, 159,
- 203, 195, 142, 200, 159, 203, 195, 130, 200, 159, 210, 121, 4, 206, 158,
- 84, 248, 194, 198, 170, 51, 198, 8, 55, 84, 248, 194, 46, 198, 8, 84,
- 248, 194, 55, 46, 198, 8, 55, 84, 248, 194, 55, 46, 198, 8, 184, 237,
- 186, 232, 89, 46, 217, 10, 80, 55, 196, 105, 203, 195, 142, 200, 160, 4,
- 211, 117, 203, 195, 130, 200, 160, 4, 197, 67, 203, 195, 130, 200, 160,
- 95, 203, 195, 142, 200, 159, 55, 142, 200, 159, 55, 130, 200, 159, 55,
- 201, 208, 213, 111, 57, 207, 168, 55, 201, 208, 213, 111, 57, 236, 136,
- 213, 111, 236, 180, 4, 207, 168, 214, 200, 203, 4, 84, 219, 176, 4, 242,
- 131, 58, 84, 219, 176, 4, 242, 131, 63, 142, 200, 160, 4, 242, 131, 63,
- 210, 236, 4, 229, 5, 111, 210, 236, 4, 199, 91, 211, 173, 198, 170, 84,
- 248, 194, 248, 21, 207, 215, 198, 170, 84, 248, 194, 4, 229, 5, 111, 198,
- 170, 242, 48, 211, 173, 198, 170, 214, 185, 219, 239, 198, 170, 214, 185,
- 230, 203, 235, 104, 203, 6, 219, 240, 211, 164, 187, 155, 235, 104, 203,
- 6, 230, 204, 211, 164, 187, 155, 198, 170, 202, 190, 248, 21, 207, 215,
- 220, 73, 198, 170, 84, 248, 194, 211, 173, 55, 202, 190, 211, 173, 62,
- 84, 161, 215, 150, 62, 84, 161, 178, 234, 186, 62, 54, 178, 194, 91, 62,
- 54, 202, 171, 234, 186, 62, 54, 202, 171, 194, 91, 62, 54, 46, 51, 62,
- 54, 114, 60, 54, 197, 30, 60, 54, 235, 92, 60, 54, 178, 234, 186, 60, 54,
- 178, 194, 91, 60, 54, 202, 171, 234, 186, 60, 54, 202, 171, 194, 91, 60,
- 54, 46, 51, 60, 54, 130, 142, 60, 54, 94, 61, 4, 199, 74, 235, 91, 94,
- 61, 4, 199, 74, 197, 29, 114, 61, 4, 199, 74, 235, 91, 114, 61, 4, 199,
- 74, 197, 29, 50, 4, 198, 249, 138, 247, 248, 50, 4, 247, 188, 138, 247,
- 248, 50, 4, 113, 51, 237, 11, 138, 247, 248, 50, 4, 106, 46, 237, 11,
- 138, 247, 248, 237, 5, 4, 46, 138, 247, 248, 237, 5, 4, 51, 138, 247,
- 248, 237, 5, 4, 198, 249, 138, 247, 248, 237, 5, 4, 247, 188, 138, 247,
- 248, 235, 111, 202, 106, 60, 220, 73, 202, 106, 62, 220, 73, 202, 106,
- 60, 196, 53, 2, 202, 106, 62, 196, 53, 2, 202, 106, 60, 210, 144, 62,
- 210, 144, 62, 229, 192, 60, 229, 192, 229, 5, 60, 229, 192, 60, 220, 73,
- 242, 130, 60, 217, 31, 237, 4, 62, 217, 31, 237, 4, 60, 217, 31, 219, 43,
- 62, 217, 31, 219, 43, 60, 2, 237, 4, 60, 2, 219, 43, 62, 2, 219, 43, 60,
- 229, 5, 234, 106, 62, 229, 5, 234, 106, 60, 84, 234, 106, 62, 84, 234,
- 106, 46, 61, 4, 2, 242, 130, 112, 114, 250, 73, 46, 61, 4, 47, 209, 206,
- 184, 114, 202, 99, 54, 114, 197, 220, 61, 4, 84, 111, 114, 197, 220, 61,
- 4, 55, 84, 111, 114, 197, 220, 61, 232, 89, 161, 114, 197, 220, 198, 170,
- 237, 186, 54, 114, 61, 4, 235, 111, 201, 255, 114, 61, 4, 200, 148, 4,
- 84, 111, 114, 61, 4, 200, 148, 4, 55, 84, 111, 114, 197, 220, 61, 4, 200,
- 147, 114, 197, 220, 61, 4, 200, 148, 4, 84, 111, 114, 197, 220, 61, 4,
- 200, 148, 4, 55, 84, 111, 114, 61, 199, 151, 193, 223, 194, 125, 61, 209,
- 188, 236, 203, 220, 28, 234, 30, 3, 95, 114, 54, 207, 169, 199, 91, 211,
- 174, 95, 114, 54, 114, 61, 95, 207, 169, 251, 1, 187, 155, 94, 61, 199,
- 151, 230, 203, 94, 61, 199, 151, 201, 105, 114, 208, 170, 54, 94, 208,
- 170, 54, 207, 169, 199, 91, 211, 174, 95, 94, 54, 94, 61, 95, 207, 169,
- 251, 1, 187, 155, 199, 91, 211, 174, 95, 114, 54, 114, 61, 95, 251, 1,
- 187, 155, 114, 61, 95, 207, 169, 199, 91, 211, 173, 94, 61, 95, 207, 169,
- 199, 91, 211, 173, 235, 92, 198, 184, 192, 21, 54, 203, 195, 203, 6, 178,
- 54, 203, 195, 248, 249, 202, 171, 54, 62, 217, 31, 202, 19, 60, 2, 202,
- 19, 62, 2, 202, 19, 60, 207, 96, 210, 144, 62, 207, 96, 210, 144, 87,
- 220, 73, 242, 130, 87, 211, 119, 4, 211, 119, 223, 145, 87, 242, 131, 4,
- 242, 131, 223, 145, 87, 242, 130, 87, 47, 206, 51, 203, 6, 178, 61, 4,
- 229, 14, 229, 245, 248, 249, 202, 171, 61, 4, 229, 14, 200, 147, 203, 6,
- 178, 61, 4, 229, 5, 200, 147, 248, 249, 202, 171, 61, 4, 229, 5, 200,
- 147, 248, 75, 61, 209, 188, 235, 92, 199, 216, 178, 234, 185, 203, 195,
- 248, 75, 61, 209, 188, 235, 92, 199, 216, 178, 234, 185, 114, 198, 184,
- 54, 197, 30, 198, 184, 54, 94, 198, 184, 54, 235, 92, 198, 184, 54, 46,
- 51, 198, 184, 54, 130, 142, 198, 184, 54, 178, 194, 91, 198, 184, 54,
- 178, 234, 186, 198, 184, 54, 202, 171, 234, 186, 198, 184, 54, 202, 171,
- 194, 91, 198, 184, 54, 114, 198, 184, 237, 184, 54, 197, 30, 198, 184,
- 237, 184, 54, 94, 198, 184, 237, 184, 54, 235, 92, 198, 184, 237, 184,
- 54, 242, 86, 198, 184, 211, 184, 242, 131, 54, 250, 182, 198, 184, 211,
- 184, 242, 131, 54, 114, 198, 184, 61, 115, 161, 197, 30, 198, 184, 61,
- 115, 161, 94, 198, 184, 61, 115, 161, 235, 92, 198, 184, 61, 115, 161,
- 178, 194, 91, 198, 184, 61, 115, 161, 178, 234, 186, 198, 184, 61, 115,
- 161, 202, 171, 234, 186, 198, 184, 61, 115, 161, 202, 171, 194, 91, 198,
- 184, 61, 115, 161, 114, 198, 184, 61, 4, 55, 229, 5, 111, 197, 30, 198,
- 184, 61, 4, 55, 229, 5, 111, 94, 198, 184, 61, 4, 55, 229, 5, 111, 235,
- 92, 198, 184, 61, 4, 55, 229, 5, 111, 229, 5, 200, 167, 222, 1, 84, 200,
- 167, 222, 1, 114, 198, 184, 61, 136, 94, 198, 184, 54, 197, 30, 198, 184,
- 61, 114, 80, 235, 92, 198, 184, 54, 94, 198, 184, 61, 136, 114, 198, 184,
- 54, 235, 92, 198, 184, 61, 114, 80, 197, 30, 198, 184, 54, 114, 198, 184,
- 211, 53, 250, 73, 197, 30, 198, 184, 211, 53, 250, 73, 94, 198, 184, 211,
- 53, 250, 73, 235, 92, 198, 184, 211, 53, 250, 73, 114, 60, 47, 62, 54,
- 197, 30, 60, 47, 62, 54, 94, 60, 47, 62, 54, 235, 92, 60, 47, 62, 54,
- 250, 182, 198, 184, 51, 197, 172, 54, 250, 182, 198, 184, 247, 188, 197,
- 172, 54, 250, 182, 198, 184, 46, 197, 172, 54, 250, 182, 198, 184, 198,
- 249, 197, 172, 54, 207, 173, 220, 28, 207, 173, 207, 101, 214, 174, 220,
- 28, 214, 174, 207, 101, 232, 119, 238, 224, 250, 74, 242, 126, 250, 181,
- 94, 60, 54, 16, 39, 197, 206, 41, 234, 117, 199, 160, 198, 247, 114, 234,
- 24, 250, 77, 199, 160, 207, 97, 197, 30, 234, 24, 250, 77, 199, 160, 198,
- 247, 94, 234, 24, 250, 77, 199, 160, 220, 24, 235, 92, 234, 24, 250, 77,
- 60, 114, 234, 24, 250, 77, 60, 197, 30, 234, 24, 250, 77, 60, 94, 234,
- 24, 250, 77, 60, 235, 92, 234, 24, 250, 77, 235, 92, 198, 184, 61, 4,
- 184, 199, 74, 220, 18, 235, 92, 198, 184, 61, 4, 184, 199, 74, 207, 90,
- 197, 30, 198, 184, 61, 4, 184, 199, 74, 220, 18, 197, 30, 198, 184, 61,
- 4, 184, 199, 74, 207, 90, 114, 198, 184, 61, 4, 184, 199, 74, 197, 29,
- 94, 198, 184, 61, 4, 184, 199, 74, 197, 29, 114, 198, 184, 61, 4, 184,
- 199, 74, 235, 91, 94, 198, 184, 61, 4, 184, 199, 74, 235, 91, 60, 238,
- 130, 235, 92, 26, 114, 54, 60, 238, 130, 235, 92, 26, 94, 54, 60, 238,
- 130, 197, 30, 26, 114, 54, 60, 238, 130, 197, 30, 26, 94, 54, 60, 238,
- 130, 114, 26, 197, 30, 54, 60, 238, 130, 94, 26, 197, 30, 54, 60, 238,
- 130, 114, 26, 235, 92, 54, 60, 238, 130, 94, 26, 235, 92, 54, 207, 142,
- 61, 142, 220, 28, 207, 142, 61, 142, 207, 101, 207, 142, 61, 130, 220,
- 28, 207, 142, 61, 130, 207, 101, 207, 142, 61, 46, 197, 41, 207, 142, 61,
- 51, 197, 41, 207, 142, 61, 46, 235, 96, 207, 142, 61, 51, 235, 96, 197,
- 30, 62, 61, 232, 89, 248, 194, 4, 229, 5, 161, 130, 250, 78, 223, 191,
- 41, 207, 243, 247, 173, 211, 112, 62, 202, 104, 211, 112, 62, 26, 60,
- 202, 104, 211, 112, 60, 202, 104, 248, 213, 105, 4, 152, 193, 223, 47,
- 193, 223, 47, 28, 193, 223, 60, 50, 246, 135, 60, 237, 5, 246, 135, 163,
- 60, 210, 144, 229, 5, 60, 212, 9, 60, 212, 9, 60, 217, 31, 197, 40, 198,
- 186, 246, 135, 60, 217, 31, 235, 95, 198, 186, 246, 135, 60, 217, 31,
- 220, 23, 198, 186, 246, 135, 60, 217, 31, 207, 96, 198, 186, 246, 135,
- 214, 190, 232, 136, 104, 198, 249, 138, 60, 242, 130, 247, 188, 138, 60,
- 242, 130, 152, 232, 119, 209, 190, 60, 238, 126, 207, 16, 152, 232, 119,
- 209, 190, 60, 238, 126, 62, 232, 119, 209, 190, 238, 126, 207, 16, 62,
- 232, 119, 209, 190, 238, 126, 50, 209, 160, 223, 172, 197, 71, 57, 230,
- 194, 77, 209, 203, 232, 136, 104, 209, 203, 232, 136, 133, 209, 203, 232,
- 136, 134, 209, 203, 232, 136, 151, 198, 206, 209, 70, 250, 33, 228, 114,
- 210, 62, 214, 186, 62, 216, 30, 204, 188, 60, 237, 5, 211, 212, 238, 183,
- 198, 148, 152, 216, 30, 250, 69, 238, 146, 230, 96, 192, 74, 221, 50,
- 250, 151, 251, 115, 194, 221, 209, 161, 46, 138, 60, 202, 19, 51, 138,
- 60, 202, 19, 202, 20, 4, 46, 138, 247, 248, 202, 20, 4, 51, 138, 247,
- 248, 114, 197, 220, 61, 4, 198, 186, 250, 75, 197, 30, 197, 220, 61, 4,
- 198, 186, 250, 75, 94, 197, 220, 61, 4, 198, 186, 250, 75, 235, 92, 197,
- 220, 61, 4, 198, 186, 250, 75, 234, 14, 232, 136, 101, 234, 14, 232, 136,
- 104, 205, 206, 206, 181, 250, 32, 16, 196, 23, 206, 181, 250, 32, 16,
- 213, 97, 206, 181, 250, 32, 16, 208, 147, 206, 181, 250, 32, 16, 248, 16,
- 206, 181, 250, 32, 16, 204, 171, 206, 181, 250, 32, 16, 198, 197, 234,
- 30, 3, 4, 223, 168, 63, 197, 53, 109, 204, 167, 109, 235, 101, 109, 210,
- 213, 109, 207, 168, 51, 250, 207, 229, 213, 210, 196, 109, 131, 6, 1,
- 249, 227, 131, 6, 1, 247, 110, 131, 6, 1, 196, 121, 131, 6, 1, 231, 13,
- 131, 6, 1, 236, 141, 131, 6, 1, 193, 38, 131, 6, 1, 192, 55, 131, 6, 1,
- 235, 12, 131, 6, 1, 192, 81, 131, 6, 1, 223, 69, 131, 6, 1, 88, 223, 69,
- 131, 6, 1, 70, 131, 6, 1, 236, 162, 131, 6, 1, 222, 127, 131, 6, 1, 219,
- 139, 131, 6, 1, 215, 155, 131, 6, 1, 215, 46, 131, 6, 1, 211, 196, 131,
- 6, 1, 209, 185, 131, 6, 1, 207, 72, 131, 6, 1, 202, 241, 131, 6, 1, 197,
- 251, 131, 6, 1, 197, 88, 131, 6, 1, 232, 92, 131, 6, 1, 229, 198, 131, 6,
- 1, 211, 131, 131, 6, 1, 210, 181, 131, 6, 1, 203, 167, 131, 6, 1, 198,
- 97, 131, 6, 1, 242, 174, 131, 6, 1, 204, 64, 131, 6, 1, 193, 47, 131, 6,
- 1, 193, 49, 131, 6, 1, 193, 82, 131, 6, 1, 202, 135, 144, 131, 6, 1, 192,
- 214, 131, 6, 1, 2, 192, 179, 131, 6, 1, 2, 192, 180, 4, 200, 147, 131, 6,
- 1, 193, 1, 131, 6, 1, 223, 110, 2, 192, 179, 131, 6, 1, 248, 28, 192,
- 179, 131, 6, 1, 223, 110, 248, 28, 192, 179, 131, 6, 1, 232, 216, 131, 6,
- 1, 223, 67, 131, 6, 1, 203, 166, 131, 6, 1, 198, 160, 64, 131, 6, 1, 220,
- 61, 215, 155, 131, 2, 1, 249, 227, 131, 2, 1, 247, 110, 131, 2, 1, 196,
- 121, 131, 2, 1, 231, 13, 131, 2, 1, 236, 141, 131, 2, 1, 193, 38, 131, 2,
- 1, 192, 55, 131, 2, 1, 235, 12, 131, 2, 1, 192, 81, 131, 2, 1, 223, 69,
- 131, 2, 1, 88, 223, 69, 131, 2, 1, 70, 131, 2, 1, 236, 162, 131, 2, 1,
- 222, 127, 131, 2, 1, 219, 139, 131, 2, 1, 215, 155, 131, 2, 1, 215, 46,
- 131, 2, 1, 211, 196, 131, 2, 1, 209, 185, 131, 2, 1, 207, 72, 131, 2, 1,
- 202, 241, 131, 2, 1, 197, 251, 131, 2, 1, 197, 88, 131, 2, 1, 232, 92,
- 131, 2, 1, 229, 198, 131, 2, 1, 211, 131, 131, 2, 1, 210, 181, 131, 2, 1,
- 203, 167, 131, 2, 1, 198, 97, 131, 2, 1, 242, 174, 131, 2, 1, 204, 64,
- 131, 2, 1, 193, 47, 131, 2, 1, 193, 49, 131, 2, 1, 193, 82, 131, 2, 1,
- 202, 135, 144, 131, 2, 1, 192, 214, 131, 2, 1, 2, 192, 179, 131, 2, 1, 2,
- 192, 180, 4, 200, 147, 131, 2, 1, 193, 1, 131, 2, 1, 223, 110, 2, 192,
- 179, 131, 2, 1, 248, 28, 192, 179, 131, 2, 1, 223, 110, 248, 28, 192,
- 179, 131, 2, 1, 232, 216, 131, 2, 1, 223, 67, 131, 2, 1, 203, 166, 131,
- 2, 1, 198, 160, 64, 131, 2, 1, 220, 61, 215, 155, 8, 6, 1, 220, 202, 4,
- 55, 161, 8, 2, 1, 220, 202, 4, 55, 161, 8, 6, 1, 220, 202, 4, 85, 199,
- 90, 8, 6, 1, 211, 94, 4, 111, 8, 6, 1, 208, 112, 4, 200, 147, 8, 2, 1,
- 41, 4, 111, 8, 2, 1, 200, 229, 4, 237, 11, 111, 8, 6, 1, 230, 125, 4,
- 237, 59, 8, 2, 1, 230, 125, 4, 237, 59, 8, 6, 1, 222, 185, 4, 237, 59, 8,
- 2, 1, 222, 185, 4, 237, 59, 8, 6, 1, 192, 156, 4, 237, 59, 8, 2, 1, 192,
- 156, 4, 237, 59, 8, 6, 1, 250, 252, 8, 6, 1, 218, 237, 4, 128, 8, 6, 1,
- 163, 64, 8, 6, 1, 163, 250, 252, 8, 2, 1, 196, 237, 4, 51, 128, 8, 6, 1,
- 194, 203, 4, 128, 8, 2, 1, 194, 203, 4, 128, 8, 2, 1, 196, 237, 4, 238,
- 142, 8, 6, 1, 138, 230, 124, 8, 2, 1, 138, 230, 124, 8, 2, 1, 200, 145,
- 210, 77, 8, 2, 1, 234, 253, 4, 213, 108, 8, 2, 1, 163, 208, 112, 4, 200,
- 147, 8, 2, 1, 185, 4, 132, 207, 82, 223, 145, 8, 1, 2, 6, 163, 71, 8,
- 201, 155, 2, 1, 223, 65, 73, 1, 6, 196, 236, 8, 6, 1, 206, 159, 4, 201,
- 75, 200, 147, 8, 6, 1, 192, 156, 4, 201, 75, 200, 147, 92, 6, 1, 251, 20,
- 92, 2, 1, 251, 20, 92, 6, 1, 196, 36, 92, 2, 1, 196, 36, 92, 6, 1, 231,
- 204, 92, 2, 1, 231, 204, 92, 6, 1, 237, 223, 92, 2, 1, 237, 223, 92, 6,
- 1, 234, 149, 92, 2, 1, 234, 149, 92, 6, 1, 202, 176, 92, 2, 1, 202, 176,
- 92, 6, 1, 192, 93, 92, 2, 1, 192, 93, 92, 6, 1, 230, 15, 92, 2, 1, 230,
- 15, 92, 6, 1, 199, 204, 92, 2, 1, 199, 204, 92, 6, 1, 228, 55, 92, 2, 1,
- 228, 55, 92, 6, 1, 222, 111, 92, 2, 1, 222, 111, 92, 6, 1, 220, 56, 92,
- 2, 1, 220, 56, 92, 6, 1, 216, 175, 92, 2, 1, 216, 175, 92, 6, 1, 214, 60,
- 92, 2, 1, 214, 60, 92, 6, 1, 221, 49, 92, 2, 1, 221, 49, 92, 6, 1, 74,
- 92, 2, 1, 74, 92, 6, 1, 210, 51, 92, 2, 1, 210, 51, 92, 6, 1, 207, 55,
- 92, 2, 1, 207, 55, 92, 6, 1, 203, 87, 92, 2, 1, 203, 87, 92, 6, 1, 200,
- 100, 92, 2, 1, 200, 100, 92, 6, 1, 197, 119, 92, 2, 1, 197, 119, 92, 6,
- 1, 233, 11, 92, 2, 1, 233, 11, 92, 6, 1, 221, 227, 92, 2, 1, 221, 227,
- 92, 6, 1, 209, 62, 92, 2, 1, 209, 62, 92, 6, 1, 211, 188, 92, 2, 1, 211,
- 188, 92, 6, 1, 237, 9, 251, 26, 92, 2, 1, 237, 9, 251, 26, 92, 6, 1, 40,
- 92, 251, 57, 92, 2, 1, 40, 92, 251, 57, 92, 6, 1, 238, 165, 234, 149, 92,
- 2, 1, 238, 165, 234, 149, 92, 6, 1, 237, 9, 222, 111, 92, 2, 1, 237, 9,
- 222, 111, 92, 6, 1, 237, 9, 214, 60, 92, 2, 1, 237, 9, 214, 60, 92, 6, 1,
- 238, 165, 214, 60, 92, 2, 1, 238, 165, 214, 60, 92, 6, 1, 40, 92, 211,
- 188, 92, 2, 1, 40, 92, 211, 188, 92, 6, 1, 206, 43, 92, 2, 1, 206, 43,
- 92, 6, 1, 238, 180, 204, 4, 92, 2, 1, 238, 180, 204, 4, 92, 6, 1, 40, 92,
- 204, 4, 92, 2, 1, 40, 92, 204, 4, 92, 6, 1, 40, 92, 233, 255, 92, 2, 1,
- 40, 92, 233, 255, 92, 6, 1, 251, 40, 221, 232, 92, 2, 1, 251, 40, 221,
- 232, 92, 6, 1, 237, 9, 229, 6, 92, 2, 1, 237, 9, 229, 6, 92, 6, 1, 40,
- 92, 229, 6, 92, 2, 1, 40, 92, 229, 6, 92, 6, 1, 40, 92, 144, 92, 2, 1,
- 40, 92, 144, 92, 6, 1, 220, 201, 144, 92, 2, 1, 220, 201, 144, 92, 6, 1,
- 40, 92, 229, 219, 92, 2, 1, 40, 92, 229, 219, 92, 6, 1, 40, 92, 230, 18,
- 92, 2, 1, 40, 92, 230, 18, 92, 6, 1, 40, 92, 231, 199, 92, 2, 1, 40, 92,
- 231, 199, 92, 6, 1, 40, 92, 236, 165, 92, 2, 1, 40, 92, 236, 165, 92, 6,
- 1, 40, 92, 203, 226, 92, 2, 1, 40, 92, 203, 226, 92, 6, 1, 40, 212, 245,
- 203, 226, 92, 2, 1, 40, 212, 245, 203, 226, 92, 6, 1, 40, 212, 245, 214,
- 113, 92, 2, 1, 40, 212, 245, 214, 113, 92, 6, 1, 40, 212, 245, 212, 181,
- 92, 2, 1, 40, 212, 245, 212, 181, 92, 6, 1, 40, 212, 245, 194, 126, 92,
- 2, 1, 40, 212, 245, 194, 126, 92, 16, 222, 135, 92, 16, 216, 176, 207,
- 55, 92, 16, 210, 52, 207, 55, 92, 16, 202, 8, 92, 16, 200, 101, 207, 55,
- 92, 16, 221, 228, 207, 55, 92, 16, 203, 227, 203, 87, 92, 6, 1, 238, 165,
- 204, 4, 92, 2, 1, 238, 165, 204, 4, 92, 6, 1, 238, 165, 231, 199, 92, 2,
- 1, 238, 165, 231, 199, 92, 38, 214, 61, 58, 92, 38, 202, 128, 250, 45,
- 92, 38, 202, 128, 219, 248, 92, 6, 1, 247, 212, 221, 232, 92, 2, 1, 247,
- 212, 221, 232, 92, 40, 212, 245, 232, 71, 201, 238, 92, 40, 212, 245,
- 236, 206, 208, 159, 77, 92, 40, 212, 245, 223, 170, 208, 159, 77, 92, 40,
- 212, 245, 196, 107, 236, 177, 92, 232, 109, 90, 230, 78, 92, 232, 71,
- 201, 238, 92, 216, 25, 236, 177, 98, 2, 1, 250, 224, 98, 2, 1, 248, 207,
- 98, 2, 1, 231, 203, 98, 2, 1, 236, 123, 98, 2, 1, 234, 88, 98, 2, 1, 196,
- 20, 98, 2, 1, 192, 79, 98, 2, 1, 200, 125, 98, 2, 1, 223, 190, 98, 2, 1,
- 222, 121, 98, 2, 1, 220, 67, 98, 2, 1, 217, 160, 98, 2, 1, 215, 51, 98,
- 2, 1, 211, 211, 98, 2, 1, 210, 247, 98, 2, 1, 192, 67, 98, 2, 1, 208, 53,
- 98, 2, 1, 206, 40, 98, 2, 1, 200, 112, 98, 2, 1, 197, 77, 98, 2, 1, 210,
- 86, 98, 2, 1, 221, 237, 98, 2, 1, 231, 75, 98, 2, 1, 208, 224, 98, 2, 1,
- 203, 224, 98, 2, 1, 242, 201, 98, 2, 1, 246, 243, 98, 2, 1, 223, 10, 98,
- 2, 1, 242, 138, 98, 2, 1, 246, 101, 98, 2, 1, 193, 207, 98, 2, 1, 223,
- 25, 98, 2, 1, 230, 95, 98, 2, 1, 229, 255, 98, 2, 1, 229, 165, 98, 2, 1,
- 194, 111, 98, 2, 1, 230, 28, 98, 2, 1, 229, 31, 98, 2, 1, 193, 3, 98, 2,
- 1, 251, 97, 199, 110, 1, 168, 199, 110, 1, 193, 125, 199, 110, 1, 193,
- 124, 199, 110, 1, 193, 114, 199, 110, 1, 193, 112, 199, 110, 1, 248, 69,
- 251, 145, 193, 107, 199, 110, 1, 193, 107, 199, 110, 1, 193, 122, 199,
- 110, 1, 193, 119, 199, 110, 1, 193, 121, 199, 110, 1, 193, 120, 199, 110,
- 1, 193, 29, 199, 110, 1, 193, 116, 199, 110, 1, 193, 105, 199, 110, 1,
- 198, 37, 193, 105, 199, 110, 1, 193, 102, 199, 110, 1, 193, 110, 199,
- 110, 1, 248, 69, 251, 145, 193, 110, 199, 110, 1, 198, 37, 193, 110, 199,
- 110, 1, 193, 109, 199, 110, 1, 193, 129, 199, 110, 1, 193, 103, 199, 110,
- 1, 198, 37, 193, 103, 199, 110, 1, 193, 92, 199, 110, 1, 198, 37, 193,
- 92, 199, 110, 1, 193, 22, 199, 110, 1, 193, 71, 199, 110, 1, 251, 70,
- 193, 71, 199, 110, 1, 198, 37, 193, 71, 199, 110, 1, 193, 101, 199, 110,
- 1, 193, 100, 199, 110, 1, 193, 97, 199, 110, 1, 198, 37, 193, 111, 199,
- 110, 1, 198, 37, 193, 95, 199, 110, 1, 193, 93, 199, 110, 1, 192, 214,
- 199, 110, 1, 193, 90, 199, 110, 1, 193, 88, 199, 110, 1, 193, 113, 199,
- 110, 1, 198, 37, 193, 113, 199, 110, 1, 249, 232, 193, 113, 199, 110, 1,
- 193, 87, 199, 110, 1, 193, 85, 199, 110, 1, 193, 86, 199, 110, 1, 193,
- 84, 199, 110, 1, 193, 83, 199, 110, 1, 193, 123, 199, 110, 1, 193, 81,
- 199, 110, 1, 193, 79, 199, 110, 1, 193, 78, 199, 110, 1, 193, 75, 199,
- 110, 1, 193, 72, 199, 110, 1, 200, 91, 193, 72, 199, 110, 1, 193, 70,
- 199, 110, 1, 193, 69, 199, 110, 1, 193, 1, 199, 110, 73, 1, 220, 174, 77,
- 199, 110, 204, 166, 77, 199, 110, 116, 222, 228, 36, 5, 219, 106, 36, 5,
- 216, 84, 36, 5, 207, 47, 36, 5, 202, 204, 36, 5, 203, 210, 36, 5, 247,
- 219, 36, 5, 199, 29, 36, 5, 242, 62, 36, 5, 213, 135, 36, 5, 212, 164,
- 36, 5, 231, 6, 212, 26, 36, 5, 192, 7, 36, 5, 236, 144, 36, 5, 237, 130,
- 36, 5, 222, 232, 36, 5, 199, 175, 36, 5, 242, 187, 36, 5, 210, 64, 36, 5,
- 209, 197, 36, 5, 231, 90, 36, 5, 231, 86, 36, 5, 231, 87, 36, 5, 231, 88,
- 36, 5, 202, 92, 36, 5, 202, 46, 36, 5, 202, 59, 36, 5, 202, 91, 36, 5,
- 202, 64, 36, 5, 202, 65, 36, 5, 202, 51, 36, 5, 246, 181, 36, 5, 246,
- 160, 36, 5, 246, 162, 36, 5, 246, 180, 36, 5, 246, 178, 36, 5, 246, 179,
- 36, 5, 246, 161, 36, 5, 191, 225, 36, 5, 191, 203, 36, 5, 191, 216, 36,
- 5, 191, 224, 36, 5, 191, 219, 36, 5, 191, 220, 36, 5, 191, 208, 36, 5,
- 246, 176, 36, 5, 246, 163, 36, 5, 246, 165, 36, 5, 246, 175, 36, 5, 246,
- 173, 36, 5, 246, 174, 36, 5, 246, 164, 36, 5, 208, 124, 36, 5, 208, 114,
- 36, 5, 208, 120, 36, 5, 208, 123, 36, 5, 208, 121, 36, 5, 208, 122, 36,
- 5, 208, 119, 36, 5, 220, 212, 36, 5, 220, 204, 36, 5, 220, 207, 36, 5,
- 220, 211, 36, 5, 220, 208, 36, 5, 220, 209, 36, 5, 220, 205, 36, 5, 193,
- 164, 36, 5, 193, 151, 36, 5, 193, 159, 36, 5, 193, 163, 36, 5, 193, 161,
- 36, 5, 193, 162, 36, 5, 193, 158, 36, 5, 230, 136, 36, 5, 230, 126, 36,
- 5, 230, 129, 36, 5, 230, 135, 36, 5, 230, 131, 36, 5, 230, 132, 36, 5,
- 230, 128, 38, 42, 1, 248, 123, 38, 42, 1, 196, 123, 38, 42, 1, 231, 70,
- 38, 42, 1, 237, 116, 38, 42, 1, 192, 62, 38, 42, 1, 192, 85, 38, 42, 1,
- 160, 38, 42, 1, 234, 124, 38, 42, 1, 234, 99, 38, 42, 1, 234, 88, 38, 42,
- 1, 74, 38, 42, 1, 210, 181, 38, 42, 1, 234, 21, 38, 42, 1, 234, 9, 38,
- 42, 1, 200, 79, 38, 42, 1, 144, 38, 42, 1, 198, 112, 38, 42, 1, 242, 245,
- 38, 42, 1, 204, 64, 38, 42, 1, 204, 15, 38, 42, 1, 232, 216, 38, 42, 1,
- 234, 5, 38, 42, 1, 64, 38, 42, 1, 223, 251, 38, 42, 1, 236, 163, 38, 42,
- 1, 216, 43, 197, 92, 38, 42, 1, 193, 84, 38, 42, 1, 192, 214, 38, 42, 1,
- 223, 109, 64, 38, 42, 1, 219, 147, 192, 179, 38, 42, 1, 248, 28, 192,
- 179, 38, 42, 1, 223, 109, 248, 28, 192, 179, 51, 250, 208, 201, 150, 217,
- 122, 51, 250, 208, 235, 111, 201, 150, 217, 122, 46, 201, 150, 186, 51,
- 201, 150, 186, 46, 235, 111, 201, 150, 186, 51, 235, 111, 201, 150, 186,
- 208, 39, 223, 132, 217, 122, 208, 39, 235, 111, 223, 132, 217, 122, 235,
- 111, 198, 205, 217, 122, 46, 198, 205, 186, 51, 198, 205, 186, 208, 39,
- 202, 106, 46, 208, 39, 211, 213, 186, 51, 208, 39, 211, 213, 186, 234,
- 172, 238, 220, 210, 242, 232, 138, 210, 242, 207, 168, 232, 138, 210,
- 242, 228, 108, 235, 111, 212, 21, 235, 92, 250, 218, 197, 30, 250, 218,
- 235, 111, 207, 96, 250, 207, 55, 212, 18, 228, 111, 223, 121, 223, 130,
- 211, 41, 247, 160, 228, 112, 4, 237, 14, 199, 91, 4, 207, 82, 58, 46,
- 132, 210, 233, 186, 51, 132, 210, 233, 186, 199, 91, 4, 78, 58, 199, 91,
- 4, 78, 63, 46, 84, 248, 194, 4, 208, 153, 51, 84, 248, 194, 4, 208, 153,
- 198, 249, 46, 138, 186, 198, 249, 51, 138, 186, 247, 188, 46, 138, 186,
- 247, 188, 51, 138, 186, 46, 203, 109, 124, 186, 51, 203, 109, 124, 186,
- 46, 55, 210, 230, 51, 55, 210, 230, 103, 236, 112, 136, 90, 78, 209, 37,
- 90, 78, 136, 103, 236, 112, 209, 37, 108, 232, 119, 78, 209, 37, 232,
- 214, 78, 77, 207, 168, 208, 159, 77, 84, 199, 90, 207, 82, 209, 191, 194,
- 11, 204, 166, 85, 236, 114, 163, 242, 38, 208, 39, 236, 114, 208, 39,
- 242, 38, 163, 204, 180, 237, 239, 4, 46, 230, 180, 237, 239, 4, 51, 230,
- 180, 163, 237, 238, 198, 249, 138, 205, 209, 57, 197, 221, 237, 185, 199,
- 158, 237, 185, 201, 254, 232, 71, 201, 238, 84, 203, 41, 236, 111, 194,
- 58, 84, 219, 175, 246, 224, 55, 228, 111, 207, 168, 242, 38, 55, 219, 48,
- 208, 142, 77, 237, 186, 4, 46, 197, 33, 55, 201, 89, 77, 223, 121, 132,
- 222, 69, 223, 121, 132, 222, 70, 4, 222, 70, 58, 132, 222, 69, 132, 222,
- 70, 4, 236, 114, 55, 202, 31, 242, 38, 235, 111, 202, 189, 198, 170, 237,
- 238, 217, 32, 242, 38, 210, 241, 77, 209, 36, 234, 113, 77, 238, 221,
- 196, 107, 236, 177, 238, 184, 210, 199, 4, 51, 238, 182, 238, 184, 210,
- 199, 4, 46, 238, 182, 199, 66, 3, 6, 233, 242, 12, 48, 207, 198, 12, 48,
- 242, 95, 12, 48, 205, 212, 101, 12, 48, 205, 212, 104, 12, 48, 205, 212,
- 133, 12, 48, 210, 116, 12, 48, 247, 173, 12, 48, 200, 164, 12, 48, 221,
- 125, 101, 12, 48, 221, 125, 104, 12, 48, 236, 174, 12, 48, 205, 216, 12,
- 48, 2, 101, 12, 48, 2, 104, 12, 48, 220, 89, 101, 12, 48, 220, 89, 104,
- 12, 48, 220, 89, 133, 12, 48, 220, 89, 134, 12, 48, 202, 224, 12, 48,
- 199, 162, 12, 48, 202, 221, 101, 12, 48, 202, 221, 104, 12, 48, 229, 234,
- 101, 12, 48, 229, 234, 104, 12, 48, 230, 62, 12, 48, 208, 28, 12, 48,
- 242, 184, 12, 48, 201, 123, 12, 48, 216, 29, 12, 48, 237, 113, 12, 48,
- 216, 18, 12, 48, 242, 113, 12, 48, 194, 130, 101, 12, 48, 194, 130, 104,
- 12, 48, 232, 231, 12, 48, 210, 194, 101, 12, 48, 210, 194, 104, 12, 48,
- 203, 82, 138, 198, 196, 198, 123, 12, 48, 238, 205, 12, 48, 236, 134, 12,
- 48, 223, 57, 12, 48, 247, 211, 80, 242, 78, 12, 48, 233, 181, 12, 48,
- 202, 130, 101, 12, 48, 202, 130, 104, 12, 48, 248, 209, 12, 48, 203, 89,
- 12, 48, 247, 49, 203, 89, 12, 48, 214, 183, 101, 12, 48, 214, 183, 104,
- 12, 48, 214, 183, 133, 12, 48, 214, 183, 134, 12, 48, 216, 247, 12, 48,
- 204, 6, 12, 48, 208, 34, 12, 48, 233, 211, 12, 48, 211, 225, 12, 48, 247,
- 132, 101, 12, 48, 247, 132, 104, 12, 48, 217, 40, 12, 48, 216, 24, 12,
- 48, 230, 214, 101, 12, 48, 230, 214, 104, 12, 48, 230, 214, 133, 12, 48,
- 199, 108, 12, 48, 242, 77, 12, 48, 194, 91, 101, 12, 48, 194, 91, 104,
- 12, 48, 247, 49, 205, 205, 12, 48, 203, 82, 228, 208, 12, 48, 228, 208,
- 12, 48, 247, 49, 202, 143, 12, 48, 247, 49, 204, 1, 12, 48, 232, 149, 12,
- 48, 247, 49, 246, 200, 12, 48, 203, 82, 194, 153, 12, 48, 194, 154, 101,
- 12, 48, 194, 154, 104, 12, 48, 242, 116, 12, 48, 247, 49, 230, 245, 12,
- 48, 184, 101, 12, 48, 184, 104, 12, 48, 247, 49, 219, 84, 12, 48, 247,
- 49, 231, 184, 12, 48, 216, 13, 101, 12, 48, 216, 13, 104, 12, 48, 208,
- 41, 12, 48, 247, 223, 12, 48, 247, 49, 200, 118, 220, 34, 12, 48, 247,
- 49, 220, 37, 12, 48, 247, 49, 194, 52, 12, 48, 247, 49, 232, 168, 12, 48,
- 234, 183, 101, 12, 48, 234, 183, 104, 12, 48, 234, 183, 133, 12, 48, 247,
- 49, 234, 182, 12, 48, 229, 245, 12, 48, 247, 49, 228, 204, 12, 48, 247,
- 207, 12, 48, 231, 54, 12, 48, 247, 49, 232, 224, 12, 48, 247, 49, 248,
- 13, 12, 48, 247, 49, 206, 55, 12, 48, 203, 82, 194, 81, 12, 48, 203, 82,
- 193, 61, 12, 48, 247, 49, 232, 90, 12, 48, 223, 64, 233, 216, 12, 48,
- 247, 49, 233, 216, 12, 48, 223, 64, 198, 251, 12, 48, 247, 49, 198, 251,
- 12, 48, 223, 64, 235, 84, 12, 48, 247, 49, 235, 84, 12, 48, 198, 6, 12,
- 48, 223, 64, 198, 6, 12, 48, 247, 49, 198, 6, 81, 48, 101, 81, 48, 219,
- 175, 81, 48, 236, 114, 81, 48, 203, 4, 81, 48, 205, 211, 81, 48, 128, 81,
- 48, 104, 81, 48, 219, 204, 81, 48, 217, 160, 81, 48, 220, 13, 81, 48,
- 234, 62, 81, 48, 174, 81, 48, 142, 247, 173, 81, 48, 238, 208, 81, 48,
- 228, 49, 81, 48, 200, 164, 81, 48, 211, 184, 247, 173, 81, 48, 221, 124,
- 81, 48, 209, 138, 81, 48, 194, 0, 81, 48, 202, 119, 81, 48, 51, 211, 184,
- 247, 173, 81, 48, 229, 166, 234, 83, 81, 48, 200, 30, 81, 48, 236, 174,
- 81, 48, 205, 216, 81, 48, 242, 95, 81, 48, 209, 88, 81, 48, 251, 79, 81,
- 48, 216, 4, 81, 48, 234, 83, 81, 48, 234, 189, 81, 48, 205, 245, 81, 48,
- 230, 254, 81, 48, 230, 255, 202, 238, 81, 48, 233, 215, 81, 48, 248, 27,
- 81, 48, 194, 23, 81, 48, 242, 206, 81, 48, 207, 27, 81, 48, 223, 186, 81,
- 48, 202, 236, 81, 48, 220, 88, 81, 48, 238, 218, 81, 48, 202, 110, 81,
- 48, 216, 9, 81, 48, 207, 69, 81, 48, 194, 8, 81, 48, 211, 202, 81, 48,
- 198, 14, 81, 48, 235, 64, 81, 48, 203, 195, 199, 162, 81, 48, 235, 111,
- 242, 95, 81, 48, 184, 201, 214, 81, 48, 103, 230, 37, 81, 48, 203, 201,
- 81, 48, 247, 180, 81, 48, 202, 220, 81, 48, 247, 139, 81, 48, 201, 253,
- 81, 48, 229, 233, 81, 48, 230, 79, 81, 48, 236, 118, 81, 48, 230, 62, 81,
- 48, 247, 160, 81, 48, 208, 28, 81, 48, 205, 229, 81, 48, 236, 208, 81,
- 48, 249, 237, 81, 48, 202, 106, 81, 48, 213, 110, 81, 48, 201, 123, 81,
- 48, 206, 1, 81, 48, 216, 29, 81, 48, 198, 195, 81, 48, 220, 170, 81, 48,
- 201, 238, 81, 48, 237, 113, 81, 48, 194, 106, 81, 48, 236, 147, 213, 110,
- 81, 48, 242, 34, 81, 48, 232, 64, 81, 48, 242, 107, 81, 48, 202, 3, 81,
- 48, 194, 129, 81, 48, 232, 231, 81, 48, 242, 103, 81, 48, 233, 54, 81,
- 48, 55, 193, 223, 81, 48, 138, 198, 196, 198, 123, 81, 48, 202, 251, 81,
- 48, 233, 66, 81, 48, 238, 205, 81, 48, 236, 134, 81, 48, 209, 84, 81, 48,
- 223, 57, 81, 48, 217, 14, 81, 48, 199, 89, 81, 48, 201, 70, 81, 48, 219,
- 198, 81, 48, 197, 8, 81, 48, 233, 9, 81, 48, 247, 211, 80, 242, 78, 81,
- 48, 203, 115, 81, 48, 235, 111, 200, 22, 81, 48, 194, 75, 81, 48, 203,
- 13, 81, 48, 236, 194, 81, 48, 233, 181, 81, 48, 202, 146, 81, 48, 54, 81,
- 48, 201, 240, 81, 48, 202, 129, 81, 48, 198, 222, 81, 48, 230, 223, 81,
- 48, 246, 186, 81, 48, 202, 24, 81, 48, 248, 209, 81, 48, 207, 139, 81,
- 48, 203, 89, 81, 48, 223, 49, 81, 48, 214, 182, 81, 48, 204, 6, 81, 48,
- 233, 42, 81, 48, 211, 225, 81, 48, 250, 217, 81, 48, 209, 214, 81, 48,
- 234, 193, 81, 48, 247, 131, 81, 48, 217, 40, 81, 48, 216, 114, 81, 48,
- 204, 187, 81, 48, 250, 81, 81, 48, 216, 24, 81, 48, 199, 0, 81, 48, 211,
- 171, 81, 48, 247, 215, 81, 48, 201, 236, 81, 48, 242, 46, 81, 48, 230,
- 213, 81, 48, 199, 108, 81, 48, 223, 149, 81, 48, 247, 229, 81, 48, 194,
- 154, 234, 83, 81, 48, 242, 77, 81, 48, 194, 90, 81, 48, 205, 205, 81, 48,
- 228, 208, 81, 48, 202, 143, 81, 48, 196, 149, 81, 48, 248, 118, 81, 48,
- 210, 14, 81, 48, 248, 239, 81, 48, 204, 1, 81, 48, 207, 236, 81, 48, 206,
- 195, 81, 48, 232, 149, 81, 48, 247, 213, 81, 48, 246, 200, 81, 48, 247,
- 253, 81, 48, 216, 26, 81, 48, 194, 153, 81, 48, 242, 116, 81, 48, 194,
- 48, 81, 48, 236, 186, 81, 48, 196, 21, 81, 48, 230, 245, 81, 48, 219, 84,
- 81, 48, 231, 184, 81, 48, 216, 12, 81, 48, 203, 3, 81, 48, 203, 195, 200,
- 146, 248, 13, 81, 48, 208, 41, 81, 48, 247, 223, 81, 48, 193, 246, 81,
- 48, 233, 91, 81, 48, 220, 34, 81, 48, 200, 118, 220, 34, 81, 48, 220, 30,
- 81, 48, 202, 173, 81, 48, 220, 37, 81, 48, 194, 52, 81, 48, 232, 168, 81,
- 48, 234, 182, 81, 48, 229, 245, 81, 48, 232, 107, 81, 48, 228, 204, 81,
- 48, 247, 207, 81, 48, 200, 131, 81, 48, 230, 86, 81, 48, 233, 2, 81, 48,
- 206, 88, 194, 48, 81, 48, 246, 188, 81, 48, 231, 54, 81, 48, 232, 224,
- 81, 48, 248, 13, 81, 48, 206, 55, 81, 48, 237, 98, 81, 48, 194, 81, 81,
- 48, 229, 209, 81, 48, 193, 61, 81, 48, 216, 125, 81, 48, 247, 248, 81,
- 48, 234, 95, 81, 48, 232, 90, 81, 48, 198, 167, 81, 48, 235, 67, 81, 48,
- 208, 22, 81, 48, 213, 112, 81, 48, 233, 216, 81, 48, 198, 251, 81, 48,
- 235, 84, 81, 48, 198, 6, 81, 48, 232, 171, 149, 237, 57, 246, 100, 46,
- 115, 207, 101, 149, 237, 57, 246, 100, 95, 115, 63, 149, 237, 57, 246,
- 100, 46, 115, 85, 26, 207, 101, 149, 237, 57, 246, 100, 95, 115, 85, 26,
- 63, 149, 237, 57, 246, 100, 232, 71, 201, 93, 149, 237, 57, 246, 100,
- 201, 94, 232, 89, 58, 149, 237, 57, 246, 100, 201, 94, 232, 89, 63, 149,
- 237, 57, 246, 100, 201, 94, 232, 89, 220, 28, 149, 237, 57, 246, 100,
- 201, 94, 232, 89, 113, 220, 28, 149, 237, 57, 246, 100, 201, 94, 232, 89,
- 113, 207, 101, 149, 237, 57, 246, 100, 201, 94, 232, 89, 106, 220, 28,
- 149, 237, 57, 246, 100, 211, 114, 149, 202, 160, 149, 242, 38, 149, 232,
- 71, 201, 238, 236, 183, 77, 223, 50, 223, 169, 202, 23, 109, 149, 223,
- 80, 77, 149, 242, 80, 77, 149, 31, 192, 76, 46, 250, 208, 186, 51, 250,
- 208, 186, 46, 55, 250, 208, 186, 51, 55, 250, 208, 186, 46, 238, 224,
- 186, 51, 238, 224, 186, 46, 62, 238, 224, 186, 51, 62, 238, 224, 186, 46,
- 60, 219, 247, 186, 51, 60, 219, 247, 186, 209, 153, 77, 231, 123, 77, 46,
- 198, 237, 204, 2, 186, 51, 198, 237, 204, 2, 186, 46, 62, 219, 247, 186,
- 51, 62, 219, 247, 186, 46, 62, 198, 237, 204, 2, 186, 51, 62, 198, 237,
- 204, 2, 186, 46, 62, 50, 186, 51, 62, 50, 186, 194, 125, 237, 185, 207,
- 168, 55, 209, 100, 208, 142, 77, 55, 209, 100, 208, 142, 77, 132, 55,
- 209, 100, 208, 142, 77, 209, 153, 122, 233, 91, 230, 34, 212, 234, 101,
- 230, 34, 212, 234, 104, 230, 34, 212, 234, 133, 230, 34, 212, 234, 134,
- 230, 34, 212, 234, 151, 230, 34, 212, 234, 170, 230, 34, 212, 234, 179,
- 230, 34, 212, 234, 174, 230, 34, 212, 234, 182, 149, 219, 228, 158, 77,
- 149, 207, 73, 158, 77, 149, 237, 66, 158, 77, 149, 234, 61, 158, 77, 30,
- 203, 74, 78, 158, 77, 30, 55, 78, 158, 77, 194, 121, 237, 185, 84, 222,
- 120, 207, 199, 77, 84, 222, 120, 207, 199, 4, 195, 248, 202, 174, 77, 84,
- 222, 120, 207, 199, 122, 113, 230, 78, 84, 222, 120, 207, 199, 4, 195,
- 248, 202, 174, 122, 113, 230, 78, 84, 222, 120, 207, 199, 122, 106, 230,
- 78, 47, 209, 153, 77, 149, 200, 44, 219, 176, 233, 39, 204, 166, 109,
- 230, 34, 212, 234, 200, 30, 230, 34, 212, 234, 197, 239, 230, 34, 212,
- 234, 199, 184, 84, 149, 223, 80, 77, 217, 102, 77, 210, 224, 250, 245,
- 77, 149, 65, 223, 172, 149, 138, 232, 250, 202, 160, 229, 140, 1, 2, 64,
- 229, 140, 1, 64, 229, 140, 1, 2, 70, 229, 140, 1, 70, 229, 140, 1, 2, 68,
- 229, 140, 1, 68, 229, 140, 1, 2, 71, 229, 140, 1, 71, 229, 140, 1, 2, 74,
- 229, 140, 1, 74, 229, 140, 1, 160, 229, 140, 1, 231, 233, 229, 140, 1,
- 221, 204, 229, 140, 1, 231, 46, 229, 140, 1, 221, 33, 229, 140, 1, 230,
- 186, 229, 140, 1, 222, 57, 229, 140, 1, 231, 158, 229, 140, 1, 221, 113,
- 229, 140, 1, 230, 254, 229, 140, 1, 188, 229, 140, 1, 192, 112, 229, 140,
- 1, 203, 125, 229, 140, 1, 192, 30, 229, 140, 1, 201, 184, 229, 140, 1,
- 191, 252, 229, 140, 1, 205, 223, 229, 140, 1, 192, 85, 229, 140, 1, 202,
- 212, 229, 140, 1, 192, 8, 229, 140, 1, 189, 229, 140, 1, 238, 0, 229,
- 140, 1, 199, 128, 229, 140, 1, 237, 16, 229, 140, 1, 2, 198, 45, 229,
- 140, 1, 198, 45, 229, 140, 1, 235, 62, 229, 140, 1, 200, 79, 229, 140, 1,
- 237, 116, 229, 140, 1, 155, 229, 140, 1, 236, 146, 229, 140, 1, 181, 229,
- 140, 1, 214, 60, 229, 140, 1, 213, 22, 229, 140, 1, 214, 214, 229, 140,
- 1, 213, 142, 229, 140, 1, 144, 229, 140, 1, 249, 3, 229, 140, 1, 166,
- 229, 140, 1, 229, 178, 229, 140, 1, 248, 41, 229, 140, 1, 210, 51, 229,
- 140, 1, 228, 181, 229, 140, 1, 247, 124, 229, 140, 1, 209, 51, 229, 140,
- 1, 229, 255, 229, 140, 1, 248, 123, 229, 140, 1, 210, 181, 229, 140, 1,
- 229, 43, 229, 140, 1, 247, 220, 229, 140, 1, 209, 198, 229, 140, 1, 172,
- 229, 140, 1, 216, 175, 229, 140, 1, 215, 241, 229, 140, 1, 217, 48, 229,
- 140, 1, 216, 91, 229, 140, 1, 2, 168, 229, 140, 1, 168, 229, 140, 1, 2,
- 192, 214, 229, 140, 1, 192, 214, 229, 140, 1, 2, 193, 1, 229, 140, 1,
- 193, 1, 229, 140, 1, 167, 229, 140, 1, 207, 151, 229, 140, 1, 206, 218,
- 229, 140, 1, 208, 7, 229, 140, 1, 207, 55, 229, 140, 1, 2, 194, 169, 229,
- 140, 1, 194, 169, 229, 140, 1, 194, 72, 229, 140, 1, 194, 111, 229, 140,
- 1, 194, 36, 229, 140, 1, 215, 151, 229, 140, 1, 194, 223, 229, 140, 1, 2,
- 160, 229, 140, 1, 2, 222, 57, 38, 222, 82, 195, 248, 202, 174, 77, 38,
- 222, 82, 204, 185, 202, 174, 77, 222, 82, 195, 248, 202, 174, 77, 222,
- 82, 204, 185, 202, 174, 77, 229, 140, 223, 80, 77, 229, 140, 195, 248,
- 223, 80, 77, 229, 140, 236, 231, 192, 231, 222, 82, 55, 228, 111, 75, 1,
- 2, 64, 75, 1, 64, 75, 1, 2, 70, 75, 1, 70, 75, 1, 2, 68, 75, 1, 68, 75,
- 1, 2, 71, 75, 1, 71, 75, 1, 2, 74, 75, 1, 74, 75, 1, 160, 75, 1, 231,
- 233, 75, 1, 221, 204, 75, 1, 231, 46, 75, 1, 221, 33, 75, 1, 230, 186,
- 75, 1, 222, 57, 75, 1, 231, 158, 75, 1, 221, 113, 75, 1, 230, 254, 75, 1,
- 188, 75, 1, 192, 112, 75, 1, 203, 125, 75, 1, 192, 30, 75, 1, 201, 184,
- 75, 1, 191, 252, 75, 1, 205, 223, 75, 1, 192, 85, 75, 1, 202, 212, 75, 1,
- 192, 8, 75, 1, 189, 75, 1, 238, 0, 75, 1, 199, 128, 75, 1, 237, 16, 75,
- 1, 2, 198, 45, 75, 1, 198, 45, 75, 1, 235, 62, 75, 1, 200, 79, 75, 1,
- 237, 116, 75, 1, 155, 75, 1, 236, 146, 75, 1, 181, 75, 1, 214, 60, 75, 1,
- 213, 22, 75, 1, 214, 214, 75, 1, 213, 142, 75, 1, 144, 75, 1, 249, 3, 75,
- 1, 166, 75, 1, 229, 178, 75, 1, 248, 41, 75, 1, 210, 51, 75, 1, 228, 181,
- 75, 1, 247, 124, 75, 1, 209, 51, 75, 1, 229, 255, 75, 1, 248, 123, 75, 1,
- 210, 181, 75, 1, 229, 43, 75, 1, 247, 220, 75, 1, 209, 198, 75, 1, 172,
- 75, 1, 216, 175, 75, 1, 215, 241, 75, 1, 217, 48, 75, 1, 216, 91, 75, 1,
- 2, 168, 75, 1, 168, 75, 1, 2, 192, 214, 75, 1, 192, 214, 75, 1, 2, 193,
- 1, 75, 1, 193, 1, 75, 1, 167, 75, 1, 207, 151, 75, 1, 206, 218, 75, 1,
- 208, 7, 75, 1, 207, 55, 75, 1, 2, 194, 169, 75, 1, 194, 169, 75, 1, 194,
- 72, 75, 1, 194, 111, 75, 1, 194, 36, 75, 1, 215, 151, 75, 1, 194, 223,
- 75, 1, 2, 160, 75, 1, 2, 222, 57, 75, 1, 196, 157, 75, 1, 196, 39, 75, 1,
- 196, 123, 75, 1, 195, 252, 75, 85, 236, 114, 222, 82, 209, 76, 202, 174,
- 77, 75, 223, 80, 77, 75, 195, 248, 223, 80, 77, 75, 236, 231, 221, 75,
- 247, 197, 1, 249, 226, 247, 197, 1, 211, 93, 247, 197, 1, 218, 236, 247,
- 197, 1, 233, 163, 247, 197, 1, 238, 95, 247, 197, 1, 200, 228, 247, 197,
- 1, 215, 151, 247, 197, 1, 165, 247, 197, 1, 232, 44, 247, 197, 1, 222,
- 184, 247, 197, 1, 230, 124, 247, 197, 1, 223, 65, 247, 197, 1, 208, 247,
- 247, 197, 1, 193, 223, 247, 197, 1, 192, 72, 247, 197, 1, 246, 119, 247,
- 197, 1, 204, 66, 247, 197, 1, 150, 247, 197, 1, 192, 155, 247, 197, 1,
- 247, 52, 247, 197, 1, 206, 158, 247, 197, 1, 64, 247, 197, 1, 74, 247,
- 197, 1, 71, 247, 197, 1, 234, 157, 247, 197, 1, 251, 63, 247, 197, 1,
- 234, 150, 247, 197, 1, 250, 8, 247, 197, 1, 211, 130, 247, 197, 1, 250,
- 224, 247, 197, 1, 234, 88, 247, 197, 1, 250, 214, 247, 197, 1, 234, 73,
- 247, 197, 1, 234, 21, 247, 197, 1, 70, 247, 197, 1, 68, 247, 197, 1, 223,
- 78, 247, 197, 1, 196, 236, 247, 197, 1, 214, 167, 247, 197, 1, 231, 2,
- 247, 197, 1, 223, 225, 247, 197, 1, 185, 4, 78, 58, 247, 197, 1, 213,
- 179, 30, 1, 221, 151, 30, 1, 202, 84, 30, 1, 221, 144, 30, 1, 214, 45,
- 30, 1, 214, 43, 30, 1, 214, 42, 30, 1, 199, 103, 30, 1, 202, 73, 30, 1,
- 207, 133, 30, 1, 207, 128, 30, 1, 207, 125, 30, 1, 207, 118, 30, 1, 207,
- 113, 30, 1, 207, 108, 30, 1, 207, 119, 30, 1, 207, 131, 30, 1, 216, 153,
- 30, 1, 210, 36, 30, 1, 202, 81, 30, 1, 210, 25, 30, 1, 203, 64, 30, 1,
- 202, 78, 30, 1, 223, 247, 30, 1, 242, 144, 30, 1, 202, 88, 30, 1, 242,
- 211, 30, 1, 221, 225, 30, 1, 199, 198, 30, 1, 210, 75, 30, 1, 229, 162,
- 30, 1, 64, 30, 1, 251, 108, 30, 1, 168, 30, 1, 193, 118, 30, 1, 234, 50,
- 30, 1, 71, 30, 1, 193, 56, 30, 1, 193, 69, 30, 1, 74, 30, 1, 194, 169,
- 30, 1, 194, 160, 30, 1, 212, 0, 30, 1, 193, 1, 30, 1, 68, 30, 1, 194, 93,
- 30, 1, 194, 111, 30, 1, 194, 72, 30, 1, 192, 214, 30, 1, 233, 230, 30, 1,
- 193, 22, 30, 1, 70, 30, 232, 247, 30, 1, 202, 82, 30, 1, 214, 35, 30, 1,
- 214, 37, 30, 1, 214, 40, 30, 1, 207, 126, 30, 1, 207, 107, 30, 1, 207,
- 115, 30, 1, 207, 120, 30, 1, 207, 105, 30, 1, 216, 146, 30, 1, 216, 143,
- 30, 1, 216, 147, 30, 1, 222, 105, 30, 1, 210, 31, 30, 1, 210, 17, 30, 1,
- 210, 23, 30, 1, 210, 20, 30, 1, 210, 34, 30, 1, 210, 18, 30, 1, 222, 103,
- 30, 1, 222, 101, 30, 1, 203, 57, 30, 1, 203, 55, 30, 1, 203, 47, 30, 1,
- 203, 52, 30, 1, 203, 62, 30, 1, 211, 8, 30, 1, 202, 85, 30, 1, 193, 46,
- 30, 1, 193, 40, 30, 1, 193, 41, 30, 1, 222, 104, 30, 1, 202, 86, 30, 1,
- 193, 52, 30, 1, 192, 245, 30, 1, 192, 244, 30, 1, 192, 247, 30, 1, 192,
- 201, 30, 1, 192, 202, 30, 1, 192, 205, 30, 1, 250, 123, 30, 1, 250, 117,
- 149, 250, 193, 219, 164, 77, 149, 250, 193, 207, 169, 77, 149, 250, 193,
- 90, 77, 149, 250, 193, 103, 77, 149, 250, 193, 112, 77, 149, 250, 193,
- 232, 119, 77, 149, 250, 193, 198, 249, 77, 149, 250, 193, 85, 77, 149,
- 250, 193, 247, 188, 77, 149, 250, 193, 232, 226, 77, 149, 250, 193, 205,
- 212, 77, 149, 250, 193, 199, 192, 77, 149, 250, 193, 232, 112, 77, 149,
- 250, 193, 229, 230, 77, 149, 250, 193, 234, 190, 77, 149, 250, 193, 217,
- 161, 77, 247, 197, 1, 247, 124, 247, 197, 1, 192, 30, 247, 197, 1, 223,
- 20, 247, 197, 1, 230, 186, 247, 197, 1, 234, 171, 247, 197, 1, 234, 70,
- 247, 197, 1, 211, 194, 247, 197, 1, 211, 198, 247, 197, 1, 223, 105, 247,
- 197, 1, 250, 195, 247, 197, 1, 223, 156, 247, 197, 1, 197, 47, 247, 197,
- 1, 223, 207, 247, 197, 1, 214, 145, 247, 197, 1, 251, 56, 247, 197, 1,
- 250, 3, 247, 197, 1, 250, 241, 247, 197, 1, 211, 219, 247, 197, 1, 211,
- 201, 247, 197, 1, 223, 153, 247, 197, 52, 1, 211, 93, 247, 197, 52, 1,
- 200, 228, 247, 197, 52, 1, 222, 184, 247, 197, 52, 1, 230, 124, 247, 197,
- 1, 231, 85, 247, 197, 1, 219, 223, 247, 197, 1, 191, 232, 247, 197, 52,
- 1, 232, 44, 247, 197, 1, 230, 144, 247, 197, 1, 220, 239, 247, 197, 1,
- 212, 0, 247, 197, 1, 251, 72, 12, 201, 208, 200, 228, 12, 201, 208, 194,
- 84, 12, 201, 208, 193, 198, 12, 201, 208, 247, 65, 12, 201, 208, 201, 80,
- 12, 201, 208, 228, 101, 12, 201, 208, 228, 105, 12, 201, 208, 228, 190,
- 12, 201, 208, 228, 102, 12, 201, 208, 200, 231, 12, 201, 208, 228, 104,
- 12, 201, 208, 228, 100, 12, 201, 208, 228, 188, 12, 201, 208, 228, 103,
- 12, 201, 208, 228, 99, 12, 201, 208, 215, 151, 12, 201, 208, 230, 124,
- 12, 201, 208, 206, 158, 12, 201, 208, 211, 93, 12, 201, 208, 202, 163,
- 12, 201, 208, 238, 95, 12, 201, 208, 228, 106, 12, 201, 208, 229, 188,
- 12, 201, 208, 200, 240, 12, 201, 208, 201, 57, 12, 201, 208, 202, 35, 12,
- 201, 208, 204, 72, 12, 201, 208, 210, 185, 12, 201, 208, 208, 249, 12,
- 201, 208, 199, 37, 12, 201, 208, 200, 230, 12, 201, 208, 201, 69, 12,
- 201, 208, 228, 116, 12, 201, 208, 228, 98, 12, 201, 208, 210, 96, 12,
- 201, 208, 208, 247, 75, 1, 2, 221, 33, 75, 1, 2, 203, 125, 75, 1, 2, 201,
- 184, 75, 1, 2, 155, 75, 1, 2, 213, 22, 75, 1, 2, 144, 75, 1, 2, 229, 178,
- 75, 1, 2, 228, 181, 75, 1, 2, 229, 255, 75, 1, 2, 229, 43, 75, 1, 2, 215,
- 241, 75, 1, 2, 167, 75, 1, 2, 207, 151, 75, 1, 2, 206, 218, 75, 1, 2,
- 208, 7, 75, 1, 2, 207, 55, 125, 30, 221, 151, 125, 30, 214, 45, 125, 30,
- 199, 103, 125, 30, 207, 133, 125, 30, 216, 153, 125, 30, 210, 36, 125,
- 30, 203, 64, 125, 30, 223, 247, 125, 30, 242, 144, 125, 30, 242, 211,
- 125, 30, 221, 225, 125, 30, 199, 198, 125, 30, 210, 75, 125, 30, 229,
- 162, 125, 30, 221, 152, 64, 125, 30, 214, 46, 64, 125, 30, 199, 104, 64,
- 125, 30, 207, 134, 64, 125, 30, 216, 154, 64, 125, 30, 210, 37, 64, 125,
- 30, 203, 65, 64, 125, 30, 223, 248, 64, 125, 30, 242, 145, 64, 125, 30,
- 242, 212, 64, 125, 30, 221, 226, 64, 125, 30, 199, 199, 64, 125, 30, 210,
- 76, 64, 125, 30, 229, 163, 64, 125, 30, 242, 145, 68, 125, 221, 79, 246,
- 100, 211, 234, 125, 221, 79, 246, 100, 185, 228, 181, 125, 228, 39, 101,
- 125, 228, 39, 104, 125, 228, 39, 133, 125, 228, 39, 134, 125, 228, 39,
- 151, 125, 228, 39, 170, 125, 228, 39, 179, 125, 228, 39, 174, 125, 228,
- 39, 182, 125, 228, 39, 200, 30, 125, 228, 39, 216, 29, 125, 228, 39, 232,
- 231, 125, 228, 39, 194, 129, 125, 228, 39, 194, 16, 125, 228, 39, 216,
- 240, 125, 228, 39, 234, 189, 125, 228, 39, 201, 123, 125, 228, 39, 201,
- 241, 125, 228, 39, 230, 9, 125, 228, 39, 202, 201, 125, 228, 39, 215, 62,
- 125, 228, 39, 202, 145, 125, 228, 39, 232, 242, 125, 228, 39, 239, 14,
- 125, 228, 39, 220, 173, 125, 228, 39, 207, 192, 125, 228, 39, 246, 253,
- 125, 228, 39, 201, 190, 125, 228, 39, 201, 103, 125, 228, 39, 234, 60,
- 125, 228, 39, 207, 182, 125, 228, 39, 251, 4, 125, 228, 39, 233, 19, 125,
- 228, 39, 207, 180, 125, 228, 39, 204, 187, 125, 228, 39, 208, 2, 47, 228,
- 39, 208, 158, 47, 228, 39, 221, 178, 47, 228, 39, 205, 243, 47, 228, 39,
- 221, 75, 47, 31, 200, 31, 211, 212, 60, 202, 106, 47, 31, 197, 240, 211,
- 212, 60, 202, 106, 47, 31, 199, 185, 211, 212, 60, 202, 106, 47, 31, 232,
- 127, 211, 212, 60, 202, 106, 47, 31, 233, 4, 211, 212, 60, 202, 106, 47,
- 31, 203, 26, 211, 212, 60, 202, 106, 47, 31, 204, 141, 211, 212, 60, 202,
- 106, 47, 31, 234, 138, 211, 212, 60, 202, 106, 210, 220, 57, 47, 31, 197,
- 240, 101, 47, 31, 197, 240, 104, 47, 31, 197, 240, 133, 47, 31, 197, 240,
- 134, 47, 31, 197, 240, 151, 47, 31, 197, 240, 170, 47, 31, 197, 240, 179,
- 47, 31, 197, 240, 174, 47, 31, 197, 240, 182, 47, 31, 199, 184, 47, 31,
- 199, 185, 101, 47, 31, 199, 185, 104, 47, 31, 199, 185, 133, 47, 31, 199,
- 185, 134, 47, 31, 199, 185, 151, 47, 30, 221, 151, 47, 30, 214, 45, 47,
- 30, 199, 103, 47, 30, 207, 133, 47, 30, 216, 153, 47, 30, 210, 36, 47,
- 30, 203, 64, 47, 30, 223, 247, 47, 30, 242, 144, 47, 30, 242, 211, 47,
- 30, 221, 225, 47, 30, 199, 198, 47, 30, 210, 75, 47, 30, 229, 162, 47,
- 30, 221, 152, 64, 47, 30, 214, 46, 64, 47, 30, 199, 104, 64, 47, 30, 207,
- 134, 64, 47, 30, 216, 154, 64, 47, 30, 210, 37, 64, 47, 30, 203, 65, 64,
- 47, 30, 223, 248, 64, 47, 30, 242, 145, 64, 47, 30, 242, 212, 64, 47, 30,
- 221, 226, 64, 47, 30, 199, 199, 64, 47, 30, 210, 76, 64, 47, 30, 229,
- 163, 64, 47, 221, 79, 246, 100, 246, 107, 47, 221, 79, 246, 100, 222,
- 210, 47, 30, 223, 248, 68, 221, 79, 202, 23, 109, 47, 228, 39, 101, 47,
- 228, 39, 104, 47, 228, 39, 133, 47, 228, 39, 134, 47, 228, 39, 151, 47,
- 228, 39, 170, 47, 228, 39, 179, 47, 228, 39, 174, 47, 228, 39, 182, 47,
- 228, 39, 200, 30, 47, 228, 39, 216, 29, 47, 228, 39, 232, 231, 47, 228,
- 39, 194, 129, 47, 228, 39, 194, 16, 47, 228, 39, 216, 240, 47, 228, 39,
- 234, 189, 47, 228, 39, 201, 123, 47, 228, 39, 201, 241, 47, 228, 39, 230,
- 9, 47, 228, 39, 202, 201, 47, 228, 39, 215, 62, 47, 228, 39, 202, 145,
- 47, 228, 39, 232, 242, 47, 228, 39, 239, 14, 47, 228, 39, 220, 173, 47,
- 228, 39, 205, 210, 47, 228, 39, 217, 165, 47, 228, 39, 233, 29, 47, 228,
- 39, 201, 135, 47, 228, 39, 233, 208, 47, 228, 39, 209, 95, 47, 228, 39,
- 250, 12, 47, 228, 39, 223, 81, 47, 228, 39, 207, 180, 47, 228, 39, 238,
- 229, 47, 228, 39, 238, 217, 47, 228, 39, 229, 155, 47, 228, 39, 246, 137,
- 47, 228, 39, 219, 52, 47, 228, 39, 220, 28, 47, 228, 39, 207, 101, 47,
- 228, 39, 217, 33, 47, 228, 39, 207, 210, 47, 228, 39, 201, 190, 47, 228,
- 39, 201, 103, 47, 228, 39, 234, 60, 47, 228, 39, 207, 182, 47, 228, 39,
- 251, 4, 47, 228, 39, 214, 31, 47, 31, 199, 185, 170, 47, 31, 199, 185,
- 179, 47, 31, 199, 185, 174, 47, 31, 199, 185, 182, 47, 31, 232, 126, 47,
- 31, 232, 127, 101, 47, 31, 232, 127, 104, 47, 31, 232, 127, 133, 47, 31,
- 232, 127, 134, 47, 31, 232, 127, 151, 47, 31, 232, 127, 170, 47, 31, 232,
- 127, 179, 47, 31, 232, 127, 174, 47, 31, 232, 127, 182, 47, 31, 233, 3,
- 149, 200, 44, 16, 39, 223, 52, 149, 200, 44, 16, 39, 233, 41, 149, 200,
- 44, 16, 39, 217, 129, 149, 200, 44, 16, 39, 250, 137, 149, 200, 44, 16,
- 39, 217, 92, 149, 200, 44, 16, 39, 222, 207, 149, 200, 44, 16, 39, 222,
- 208, 149, 200, 44, 16, 39, 250, 4, 149, 200, 44, 16, 39, 204, 164, 149,
- 200, 44, 16, 39, 212, 6, 149, 200, 44, 16, 39, 213, 98, 149, 200, 44, 16,
- 39, 237, 110, 50, 229, 188, 50, 234, 17, 50, 233, 218, 219, 181, 219,
- 208, 57, 47, 75, 64, 47, 75, 70, 47, 75, 68, 47, 75, 71, 47, 75, 74, 47,
- 75, 160, 47, 75, 221, 204, 47, 75, 221, 33, 47, 75, 222, 57, 47, 75, 221,
- 113, 47, 75, 188, 47, 75, 203, 125, 47, 75, 201, 184, 47, 75, 205, 223,
- 47, 75, 202, 212, 47, 75, 189, 47, 75, 199, 128, 47, 75, 198, 45, 47, 75,
- 200, 79, 47, 75, 155, 47, 75, 181, 47, 75, 214, 60, 47, 75, 213, 22, 47,
- 75, 214, 214, 47, 75, 213, 142, 47, 75, 144, 47, 75, 229, 178, 47, 75,
- 228, 181, 47, 75, 229, 255, 47, 75, 229, 43, 47, 75, 172, 47, 75, 216,
- 175, 47, 75, 215, 241, 47, 75, 217, 48, 47, 75, 216, 91, 47, 75, 168, 47,
- 75, 192, 214, 47, 75, 193, 1, 47, 75, 167, 47, 75, 207, 151, 47, 75, 206,
- 218, 47, 75, 208, 7, 47, 75, 207, 55, 47, 75, 194, 169, 47, 75, 194, 72,
- 47, 75, 194, 111, 47, 75, 194, 36, 50, 234, 20, 215, 63, 207, 218, 50,
- 250, 162, 50, 250, 63, 50, 250, 189, 50, 251, 246, 50, 223, 158, 50, 223,
- 125, 50, 197, 44, 50, 233, 245, 50, 234, 168, 50, 211, 197, 50, 211, 190,
- 50, 222, 133, 50, 222, 97, 50, 222, 92, 50, 231, 188, 50, 231, 198, 50,
- 231, 34, 50, 231, 30, 50, 220, 203, 50, 231, 21, 50, 221, 169, 50, 221,
- 168, 50, 221, 167, 50, 221, 166, 50, 230, 154, 50, 230, 153, 50, 220,
- 252, 50, 220, 255, 50, 222, 44, 50, 221, 77, 50, 221, 85, 50, 206, 74,
- 50, 206, 31, 50, 203, 45, 50, 204, 170, 50, 204, 169, 50, 237, 252, 50,
- 237, 53, 50, 236, 115, 50, 199, 20, 50, 215, 56, 50, 213, 99, 50, 230,
- 83, 50, 211, 71, 50, 211, 70, 50, 249, 0, 50, 210, 48, 50, 210, 10, 50,
- 210, 11, 50, 248, 9, 50, 228, 176, 50, 228, 170, 50, 247, 80, 50, 228,
- 154, 50, 229, 216, 50, 210, 107, 50, 210, 149, 50, 229, 197, 50, 210,
- 145, 50, 210, 163, 50, 248, 103, 50, 209, 187, 50, 247, 193, 50, 229, 19,
- 50, 209, 173, 50, 229, 10, 50, 229, 12, 50, 217, 178, 50, 217, 174, 50,
- 217, 183, 50, 217, 115, 50, 217, 146, 50, 216, 132, 50, 216, 107, 50,
- 216, 106, 50, 217, 21, 50, 217, 18, 50, 217, 22, 50, 193, 128, 50, 193,
- 126, 50, 192, 199, 50, 207, 71, 50, 207, 75, 50, 206, 185, 50, 206, 178,
- 50, 207, 207, 50, 207, 204, 50, 194, 127, 149, 200, 44, 16, 39, 228, 198,
- 192, 76, 149, 200, 44, 16, 39, 228, 198, 101, 149, 200, 44, 16, 39, 228,
- 198, 104, 149, 200, 44, 16, 39, 228, 198, 133, 149, 200, 44, 16, 39, 228,
- 198, 134, 149, 200, 44, 16, 39, 228, 198, 151, 149, 200, 44, 16, 39, 228,
- 198, 170, 149, 200, 44, 16, 39, 228, 198, 179, 149, 200, 44, 16, 39, 228,
- 198, 174, 149, 200, 44, 16, 39, 228, 198, 182, 149, 200, 44, 16, 39, 228,
- 198, 200, 30, 149, 200, 44, 16, 39, 228, 198, 234, 111, 149, 200, 44, 16,
- 39, 228, 198, 197, 244, 149, 200, 44, 16, 39, 228, 198, 199, 186, 149,
- 200, 44, 16, 39, 228, 198, 232, 113, 149, 200, 44, 16, 39, 228, 198, 233,
- 7, 149, 200, 44, 16, 39, 228, 198, 203, 35, 149, 200, 44, 16, 39, 228,
- 198, 204, 143, 149, 200, 44, 16, 39, 228, 198, 234, 145, 149, 200, 44,
- 16, 39, 228, 198, 214, 13, 149, 200, 44, 16, 39, 228, 198, 197, 239, 149,
- 200, 44, 16, 39, 228, 198, 197, 232, 149, 200, 44, 16, 39, 228, 198, 197,
- 227, 149, 200, 44, 16, 39, 228, 198, 197, 229, 149, 200, 44, 16, 39, 228,
- 198, 197, 234, 50, 228, 189, 50, 238, 0, 50, 250, 8, 50, 161, 50, 211,
- 120, 50, 210, 186, 50, 236, 149, 50, 236, 150, 202, 105, 50, 236, 150,
- 238, 156, 50, 223, 78, 50, 234, 20, 215, 63, 229, 217, 50, 234, 20, 215,
- 63, 200, 251, 50, 234, 20, 215, 63, 200, 144, 50, 234, 20, 215, 63, 217,
- 17, 50, 238, 219, 50, 211, 78, 250, 227, 50, 181, 50, 215, 242, 64, 50,
- 172, 50, 160, 50, 222, 60, 50, 217, 87, 50, 231, 176, 50, 247, 3, 50,
- 222, 59, 50, 210, 97, 50, 214, 169, 50, 215, 242, 233, 163, 50, 215, 242,
- 232, 44, 50, 216, 216, 50, 221, 252, 50, 228, 106, 50, 221, 206, 50, 216,
- 177, 50, 231, 48, 50, 199, 130, 50, 215, 242, 165, 50, 216, 99, 50, 236,
- 159, 50, 221, 133, 50, 232, 166, 50, 213, 180, 50, 215, 242, 218, 236,
- 50, 216, 96, 50, 242, 64, 50, 221, 127, 50, 216, 97, 202, 105, 50, 242,
- 65, 202, 105, 50, 218, 237, 202, 105, 50, 221, 128, 202, 105, 50, 216,
- 97, 238, 156, 50, 242, 65, 238, 156, 50, 218, 237, 238, 156, 50, 221,
- 128, 238, 156, 50, 218, 237, 136, 206, 158, 50, 218, 237, 136, 206, 159,
- 202, 105, 50, 166, 50, 221, 69, 50, 215, 247, 50, 230, 228, 50, 208, 58,
- 50, 208, 59, 136, 206, 158, 50, 208, 59, 136, 206, 159, 202, 105, 50,
- 209, 64, 50, 213, 63, 50, 215, 242, 206, 158, 50, 215, 244, 50, 209, 11,
- 50, 212, 212, 50, 215, 242, 196, 236, 50, 215, 175, 50, 220, 241, 50,
- 215, 176, 217, 21, 50, 209, 10, 50, 212, 211, 50, 215, 242, 194, 202, 50,
- 215, 169, 50, 220, 239, 50, 215, 170, 217, 21, 50, 222, 185, 211, 239,
- 50, 218, 237, 211, 239, 50, 250, 241, 50, 247, 168, 50, 246, 182, 50,
- 246, 159, 50, 247, 53, 136, 221, 252, 50, 242, 63, 50, 237, 170, 50, 230,
- 137, 50, 144, 50, 228, 190, 50, 223, 190, 50, 221, 140, 50, 221, 128,
- 246, 225, 50, 221, 35, 50, 219, 110, 50, 219, 109, 50, 219, 94, 50, 218,
- 252, 50, 217, 88, 202, 236, 50, 216, 131, 50, 216, 57, 50, 210, 95, 50,
- 209, 201, 50, 209, 133, 50, 209, 131, 50, 202, 96, 50, 201, 84, 50, 194,
- 113, 50, 196, 237, 136, 218, 236, 50, 41, 136, 218, 236, 149, 200, 44,
- 16, 39, 237, 174, 101, 149, 200, 44, 16, 39, 237, 174, 104, 149, 200, 44,
- 16, 39, 237, 174, 133, 149, 200, 44, 16, 39, 237, 174, 134, 149, 200, 44,
- 16, 39, 237, 174, 151, 149, 200, 44, 16, 39, 237, 174, 170, 149, 200, 44,
- 16, 39, 237, 174, 179, 149, 200, 44, 16, 39, 237, 174, 174, 149, 200, 44,
- 16, 39, 237, 174, 182, 149, 200, 44, 16, 39, 237, 174, 200, 30, 149, 200,
- 44, 16, 39, 237, 174, 234, 111, 149, 200, 44, 16, 39, 237, 174, 197, 244,
- 149, 200, 44, 16, 39, 237, 174, 199, 186, 149, 200, 44, 16, 39, 237, 174,
- 232, 113, 149, 200, 44, 16, 39, 237, 174, 233, 7, 149, 200, 44, 16, 39,
- 237, 174, 203, 35, 149, 200, 44, 16, 39, 237, 174, 204, 143, 149, 200,
- 44, 16, 39, 237, 174, 234, 145, 149, 200, 44, 16, 39, 237, 174, 214, 13,
- 149, 200, 44, 16, 39, 237, 174, 197, 239, 149, 200, 44, 16, 39, 237, 174,
- 197, 232, 149, 200, 44, 16, 39, 237, 174, 197, 227, 149, 200, 44, 16, 39,
- 237, 174, 197, 229, 149, 200, 44, 16, 39, 237, 174, 197, 234, 149, 200,
- 44, 16, 39, 237, 174, 197, 235, 149, 200, 44, 16, 39, 237, 174, 197, 230,
- 149, 200, 44, 16, 39, 237, 174, 197, 231, 149, 200, 44, 16, 39, 237, 174,
- 197, 238, 149, 200, 44, 16, 39, 237, 174, 197, 233, 149, 200, 44, 16, 39,
- 237, 174, 199, 184, 149, 200, 44, 16, 39, 237, 174, 199, 182, 50, 231,
- 215, 229, 191, 39, 199, 225, 238, 197, 229, 229, 229, 191, 39, 199, 225,
- 207, 250, 234, 189, 229, 191, 39, 236, 242, 250, 27, 199, 225, 248, 98,
- 229, 191, 39, 192, 227, 232, 158, 229, 191, 39, 194, 155, 229, 191, 39,
- 239, 17, 229, 191, 39, 199, 225, 250, 88, 229, 191, 39, 229, 26, 199, 26,
- 229, 191, 39, 2, 200, 126, 229, 191, 39, 198, 198, 229, 191, 39, 210,
- 179, 229, 191, 39, 202, 21, 229, 191, 39, 233, 31, 229, 191, 39, 230,
- 206, 209, 156, 229, 191, 39, 216, 77, 229, 191, 39, 234, 59, 229, 191,
- 39, 232, 159, 229, 191, 39, 194, 9, 211, 212, 199, 225, 237, 111, 229,
- 191, 39, 250, 141, 229, 191, 39, 238, 252, 229, 191, 39, 247, 254, 199,
- 150, 229, 191, 39, 230, 226, 229, 191, 39, 202, 123, 250, 161, 229, 191,
- 39, 207, 172, 229, 191, 39, 223, 152, 229, 191, 39, 230, 206, 200, 126,
- 229, 191, 39, 216, 5, 238, 222, 229, 191, 39, 230, 206, 209, 108, 229,
- 191, 39, 199, 225, 251, 148, 194, 129, 229, 191, 39, 199, 225, 242, 92,
- 232, 231, 229, 191, 39, 223, 166, 229, 191, 39, 235, 38, 229, 191, 39,
- 207, 175, 229, 191, 39, 230, 206, 209, 138, 229, 191, 39, 209, 82, 229,
- 191, 39, 237, 190, 80, 199, 225, 219, 195, 229, 191, 39, 199, 225, 233,
- 69, 229, 191, 39, 211, 169, 229, 191, 39, 212, 13, 229, 191, 39, 237, 81,
- 229, 191, 39, 237, 103, 229, 191, 39, 223, 181, 229, 191, 39, 247, 154,
- 229, 191, 39, 242, 40, 115, 217, 24, 229, 191, 39, 231, 183, 199, 26,
- 229, 191, 39, 209, 21, 197, 31, 229, 191, 39, 211, 168, 229, 191, 39,
- 199, 225, 194, 95, 229, 191, 39, 207, 163, 229, 191, 39, 199, 225, 246,
- 188, 229, 191, 39, 199, 225, 250, 84, 199, 144, 229, 191, 39, 199, 225,
- 222, 45, 201, 245, 216, 9, 229, 191, 39, 237, 48, 229, 191, 39, 199, 225,
- 217, 118, 217, 179, 229, 191, 39, 251, 149, 229, 191, 39, 199, 225, 194,
- 146, 229, 191, 39, 199, 225, 231, 138, 194, 52, 229, 191, 39, 199, 225,
- 222, 216, 220, 102, 229, 191, 39, 236, 191, 229, 191, 39, 219, 182, 229,
- 191, 39, 223, 155, 198, 122, 229, 191, 39, 2, 209, 108, 229, 191, 39,
- 251, 81, 242, 30, 229, 191, 39, 248, 101, 242, 30, 11, 5, 223, 82, 11, 5,
- 223, 74, 11, 5, 70, 11, 5, 223, 108, 11, 5, 223, 249, 11, 5, 223, 232,
- 11, 5, 223, 251, 11, 5, 223, 250, 11, 5, 250, 26, 11, 5, 249, 238, 11, 5,
- 64, 11, 5, 250, 163, 11, 5, 197, 42, 11, 5, 197, 46, 11, 5, 197, 43, 11,
- 5, 211, 140, 11, 5, 211, 103, 11, 5, 74, 11, 5, 211, 185, 11, 5, 233,
- 209, 11, 5, 71, 11, 5, 193, 244, 11, 5, 248, 1, 11, 5, 247, 252, 11, 5,
- 248, 41, 11, 5, 248, 14, 11, 5, 248, 30, 11, 5, 248, 29, 11, 5, 248, 32,
- 11, 5, 248, 31, 11, 5, 248, 170, 11, 5, 248, 162, 11, 5, 249, 3, 11, 5,
- 248, 195, 11, 5, 247, 92, 11, 5, 247, 96, 11, 5, 247, 93, 11, 5, 247,
- 192, 11, 5, 247, 173, 11, 5, 247, 220, 11, 5, 247, 198, 11, 5, 248, 57,
- 11, 5, 248, 123, 11, 5, 248, 70, 11, 5, 247, 76, 11, 5, 247, 70, 11, 5,
- 247, 124, 11, 5, 247, 91, 11, 5, 247, 84, 11, 5, 247, 89, 11, 5, 247, 58,
- 11, 5, 247, 56, 11, 5, 247, 63, 11, 5, 247, 61, 11, 5, 247, 59, 11, 5,
- 247, 60, 11, 5, 209, 241, 11, 5, 209, 237, 11, 5, 210, 51, 11, 5, 209,
- 253, 11, 5, 210, 16, 11, 5, 210, 43, 11, 5, 210, 39, 11, 5, 210, 206, 11,
- 5, 210, 191, 11, 5, 166, 11, 5, 210, 253, 11, 5, 209, 31, 11, 5, 209, 33,
- 11, 5, 209, 32, 11, 5, 209, 149, 11, 5, 209, 136, 11, 5, 209, 198, 11, 5,
- 209, 168, 11, 5, 209, 17, 11, 5, 209, 13, 11, 5, 209, 51, 11, 5, 209, 30,
- 11, 5, 209, 22, 11, 5, 209, 28, 11, 5, 208, 251, 11, 5, 208, 250, 11, 5,
- 208, 255, 11, 5, 208, 254, 11, 5, 208, 252, 11, 5, 208, 253, 11, 5, 248,
- 144, 11, 5, 248, 143, 11, 5, 248, 150, 11, 5, 248, 145, 11, 5, 248, 147,
- 11, 5, 248, 146, 11, 5, 248, 149, 11, 5, 248, 148, 11, 5, 248, 156, 11,
- 5, 248, 155, 11, 5, 248, 159, 11, 5, 248, 157, 11, 5, 248, 135, 11, 5,
- 248, 137, 11, 5, 248, 136, 11, 5, 248, 140, 11, 5, 248, 139, 11, 5, 248,
- 142, 11, 5, 248, 141, 11, 5, 248, 151, 11, 5, 248, 154, 11, 5, 248, 152,
- 11, 5, 248, 131, 11, 5, 248, 130, 11, 5, 248, 138, 11, 5, 248, 134, 11,
- 5, 248, 132, 11, 5, 248, 133, 11, 5, 248, 127, 11, 5, 248, 126, 11, 5,
- 248, 129, 11, 5, 248, 128, 11, 5, 215, 22, 11, 5, 215, 21, 11, 5, 215,
- 27, 11, 5, 215, 23, 11, 5, 215, 24, 11, 5, 215, 26, 11, 5, 215, 25, 11,
- 5, 215, 30, 11, 5, 215, 29, 11, 5, 215, 32, 11, 5, 215, 31, 11, 5, 215,
- 18, 11, 5, 215, 17, 11, 5, 215, 20, 11, 5, 215, 19, 11, 5, 215, 11, 11,
- 5, 215, 10, 11, 5, 215, 15, 11, 5, 215, 14, 11, 5, 215, 12, 11, 5, 215,
- 13, 11, 5, 215, 5, 11, 5, 215, 4, 11, 5, 215, 9, 11, 5, 215, 8, 11, 5,
- 215, 6, 11, 5, 215, 7, 11, 5, 229, 87, 11, 5, 229, 86, 11, 5, 229, 92,
- 11, 5, 229, 88, 11, 5, 229, 89, 11, 5, 229, 91, 11, 5, 229, 90, 11, 5,
- 229, 95, 11, 5, 229, 94, 11, 5, 229, 97, 11, 5, 229, 96, 11, 5, 229, 78,
- 11, 5, 229, 80, 11, 5, 229, 79, 11, 5, 229, 83, 11, 5, 229, 82, 11, 5,
- 229, 85, 11, 5, 229, 84, 11, 5, 229, 74, 11, 5, 229, 73, 11, 5, 229, 81,
- 11, 5, 229, 77, 11, 5, 229, 75, 11, 5, 229, 76, 11, 5, 229, 68, 11, 5,
- 229, 72, 11, 5, 229, 71, 11, 5, 229, 69, 11, 5, 229, 70, 11, 5, 216, 102,
- 11, 5, 216, 101, 11, 5, 216, 175, 11, 5, 216, 109, 11, 5, 216, 139, 11,
- 5, 216, 157, 11, 5, 216, 155, 11, 5, 217, 101, 11, 5, 217, 95, 11, 5,
- 172, 11, 5, 217, 141, 11, 5, 215, 203, 11, 5, 215, 202, 11, 5, 215, 206,
- 11, 5, 215, 204, 11, 5, 216, 20, 11, 5, 215, 249, 11, 5, 216, 91, 11, 5,
- 216, 27, 11, 5, 216, 227, 11, 5, 217, 48, 11, 5, 215, 183, 11, 5, 215,
- 177, 11, 5, 215, 241, 11, 5, 215, 199, 11, 5, 215, 192, 11, 5, 215, 197,
- 11, 5, 215, 154, 11, 5, 215, 153, 11, 5, 215, 159, 11, 5, 215, 156, 11,
- 5, 232, 217, 11, 5, 232, 211, 11, 5, 233, 11, 11, 5, 232, 233, 11, 5,
- 233, 60, 11, 5, 233, 51, 11, 5, 233, 97, 11, 5, 233, 65, 11, 5, 232, 110,
- 11, 5, 232, 164, 11, 5, 232, 144, 11, 5, 232, 60, 11, 5, 232, 59, 11, 5,
- 232, 77, 11, 5, 232, 65, 11, 5, 232, 63, 11, 5, 232, 64, 11, 5, 232, 47,
- 11, 5, 232, 46, 11, 5, 232, 50, 11, 5, 232, 48, 11, 5, 196, 3, 11, 5,
- 195, 254, 11, 5, 196, 39, 11, 5, 196, 12, 11, 5, 196, 28, 11, 5, 196, 24,
- 11, 5, 196, 31, 11, 5, 196, 30, 11, 5, 196, 131, 11, 5, 196, 126, 11, 5,
- 196, 157, 11, 5, 196, 144, 11, 5, 195, 232, 11, 5, 195, 228, 11, 5, 195,
- 252, 11, 5, 195, 234, 11, 5, 196, 43, 11, 5, 196, 111, 11, 5, 194, 216,
- 11, 5, 194, 214, 11, 5, 194, 223, 11, 5, 194, 219, 11, 5, 194, 217, 11,
- 5, 194, 218, 11, 5, 194, 206, 11, 5, 194, 205, 11, 5, 194, 210, 11, 5,
- 194, 209, 11, 5, 194, 207, 11, 5, 194, 208, 11, 5, 236, 184, 11, 5, 236,
- 169, 11, 5, 237, 16, 11, 5, 236, 212, 11, 5, 236, 247, 11, 5, 236, 252,
- 11, 5, 236, 251, 11, 5, 237, 181, 11, 5, 237, 175, 11, 5, 238, 0, 11, 5,
- 237, 201, 11, 5, 235, 43, 11, 5, 235, 44, 11, 5, 236, 114, 11, 5, 235,
- 90, 11, 5, 236, 146, 11, 5, 236, 117, 11, 5, 237, 46, 11, 5, 237, 116,
- 11, 5, 237, 67, 11, 5, 235, 34, 11, 5, 235, 32, 11, 5, 235, 62, 11, 5,
- 235, 42, 11, 5, 235, 37, 11, 5, 235, 40, 11, 5, 199, 63, 11, 5, 199, 55,
- 11, 5, 199, 128, 11, 5, 199, 73, 11, 5, 199, 111, 11, 5, 199, 113, 11, 5,
- 199, 112, 11, 5, 200, 105, 11, 5, 200, 90, 11, 5, 189, 11, 5, 200, 116,
- 11, 5, 198, 20, 11, 5, 198, 19, 11, 5, 198, 22, 11, 5, 198, 21, 11, 5,
- 198, 235, 11, 5, 198, 225, 11, 5, 155, 11, 5, 198, 248, 11, 5, 199, 246,
- 11, 5, 200, 79, 11, 5, 200, 17, 11, 5, 198, 3, 11, 5, 197, 254, 11, 5,
- 198, 45, 11, 5, 198, 18, 11, 5, 198, 4, 11, 5, 198, 15, 11, 5, 237, 133,
- 11, 5, 237, 132, 11, 5, 237, 138, 11, 5, 237, 134, 11, 5, 237, 135, 11,
- 5, 237, 137, 11, 5, 237, 136, 11, 5, 237, 154, 11, 5, 237, 153, 11, 5,
- 237, 161, 11, 5, 237, 155, 11, 5, 237, 123, 11, 5, 237, 125, 11, 5, 237,
- 124, 11, 5, 237, 128, 11, 5, 237, 127, 11, 5, 237, 131, 11, 5, 237, 129,
- 11, 5, 237, 146, 11, 5, 237, 149, 11, 5, 237, 147, 11, 5, 237, 119, 11,
- 5, 237, 118, 11, 5, 237, 126, 11, 5, 237, 122, 11, 5, 237, 120, 11, 5,
- 237, 121, 11, 5, 214, 233, 11, 5, 214, 232, 11, 5, 214, 240, 11, 5, 214,
- 235, 11, 5, 214, 236, 11, 5, 214, 237, 11, 5, 214, 249, 11, 5, 214, 248,
- 11, 5, 214, 255, 11, 5, 214, 250, 11, 5, 214, 225, 11, 5, 214, 224, 11,
- 5, 214, 231, 11, 5, 214, 226, 11, 5, 214, 241, 11, 5, 214, 247, 11, 5,
- 214, 245, 11, 5, 214, 217, 11, 5, 214, 216, 11, 5, 214, 222, 11, 5, 214,
- 220, 11, 5, 214, 218, 11, 5, 214, 219, 11, 5, 229, 53, 11, 5, 229, 52,
- 11, 5, 229, 59, 11, 5, 229, 54, 11, 5, 229, 56, 11, 5, 229, 55, 11, 5,
- 229, 58, 11, 5, 229, 57, 11, 5, 229, 65, 11, 5, 229, 63, 11, 5, 229, 67,
- 11, 5, 229, 66, 11, 5, 229, 46, 11, 5, 229, 47, 11, 5, 229, 50, 11, 5,
- 229, 49, 11, 5, 229, 51, 11, 5, 229, 60, 11, 5, 229, 62, 11, 5, 229, 61,
- 11, 5, 229, 45, 11, 5, 214, 4, 11, 5, 214, 2, 11, 5, 214, 60, 11, 5, 214,
- 7, 11, 5, 214, 34, 11, 5, 214, 48, 11, 5, 214, 47, 11, 5, 215, 37, 11, 5,
- 181, 11, 5, 215, 53, 11, 5, 212, 222, 11, 5, 212, 224, 11, 5, 212, 223,
- 11, 5, 213, 110, 11, 5, 213, 94, 11, 5, 213, 142, 11, 5, 213, 121, 11, 5,
- 214, 171, 11, 5, 214, 214, 11, 5, 214, 191, 11, 5, 212, 217, 11, 5, 212,
- 213, 11, 5, 213, 22, 11, 5, 212, 221, 11, 5, 212, 219, 11, 5, 212, 220,
- 11, 5, 229, 118, 11, 5, 229, 117, 11, 5, 229, 123, 11, 5, 229, 119, 11,
- 5, 229, 120, 11, 5, 229, 122, 11, 5, 229, 121, 11, 5, 229, 129, 11, 5,
- 229, 127, 11, 5, 229, 131, 11, 5, 229, 130, 11, 5, 229, 110, 11, 5, 229,
- 112, 11, 5, 229, 111, 11, 5, 229, 114, 11, 5, 229, 116, 11, 5, 229, 115,
- 11, 5, 229, 124, 11, 5, 229, 126, 11, 5, 229, 125, 11, 5, 229, 106, 11,
- 5, 229, 105, 11, 5, 229, 113, 11, 5, 229, 109, 11, 5, 229, 107, 11, 5,
- 229, 108, 11, 5, 229, 100, 11, 5, 229, 99, 11, 5, 229, 104, 11, 5, 229,
- 103, 11, 5, 229, 101, 11, 5, 229, 102, 11, 5, 219, 151, 11, 5, 219, 143,
- 11, 5, 219, 209, 11, 5, 219, 161, 11, 5, 219, 200, 11, 5, 219, 199, 11,
- 5, 219, 203, 11, 5, 219, 201, 11, 5, 220, 65, 11, 5, 220, 53, 11, 5, 177,
- 11, 5, 220, 76, 11, 5, 219, 13, 11, 5, 219, 12, 11, 5, 219, 15, 11, 5,
- 219, 14, 11, 5, 219, 60, 11, 5, 219, 45, 11, 5, 219, 107, 11, 5, 219, 66,
- 11, 5, 219, 226, 11, 5, 220, 42, 11, 5, 219, 244, 11, 5, 219, 7, 11, 5,
- 219, 5, 11, 5, 219, 36, 11, 5, 219, 11, 11, 5, 219, 9, 11, 5, 219, 10,
- 11, 5, 218, 241, 11, 5, 218, 240, 11, 5, 218, 251, 11, 5, 218, 244, 11,
- 5, 218, 242, 11, 5, 218, 243, 11, 5, 231, 17, 11, 5, 231, 16, 11, 5, 231,
- 46, 11, 5, 231, 29, 11, 5, 231, 38, 11, 5, 231, 37, 11, 5, 231, 40, 11,
- 5, 231, 39, 11, 5, 231, 185, 11, 5, 231, 180, 11, 5, 231, 233, 11, 5,
- 231, 196, 11, 5, 230, 159, 11, 5, 230, 158, 11, 5, 230, 161, 11, 5, 230,
- 160, 11, 5, 230, 231, 11, 5, 230, 229, 11, 5, 230, 254, 11, 5, 230, 240,
- 11, 5, 231, 124, 11, 5, 231, 122, 11, 5, 231, 158, 11, 5, 231, 135, 11,
- 5, 230, 148, 11, 5, 230, 147, 11, 5, 230, 186, 11, 5, 230, 157, 11, 5,
- 230, 149, 11, 5, 230, 156, 11, 5, 221, 158, 11, 5, 221, 153, 11, 5, 221,
- 204, 11, 5, 221, 172, 11, 5, 221, 185, 11, 5, 221, 189, 11, 5, 221, 187,
- 11, 5, 222, 83, 11, 5, 222, 65, 11, 5, 160, 11, 5, 222, 112, 11, 5, 221,
- 4, 11, 5, 221, 9, 11, 5, 221, 6, 11, 5, 221, 76, 11, 5, 221, 71, 11, 5,
- 221, 113, 11, 5, 221, 83, 11, 5, 222, 20, 11, 5, 222, 3, 11, 5, 222, 57,
- 11, 5, 222, 24, 11, 5, 220, 247, 11, 5, 220, 243, 11, 5, 221, 33, 11, 5,
- 221, 3, 11, 5, 220, 251, 11, 5, 221, 0, 11, 5, 231, 106, 11, 5, 231, 105,
- 11, 5, 231, 110, 11, 5, 231, 107, 11, 5, 231, 109, 11, 5, 231, 108, 11,
- 5, 231, 117, 11, 5, 231, 116, 11, 5, 231, 120, 11, 5, 231, 118, 11, 5,
- 231, 97, 11, 5, 231, 96, 11, 5, 231, 99, 11, 5, 231, 98, 11, 5, 231, 102,
- 11, 5, 231, 101, 11, 5, 231, 104, 11, 5, 231, 103, 11, 5, 231, 112, 11,
- 5, 231, 111, 11, 5, 231, 115, 11, 5, 231, 113, 11, 5, 231, 92, 11, 5,
- 231, 91, 11, 5, 231, 100, 11, 5, 231, 95, 11, 5, 231, 93, 11, 5, 231, 94,
- 11, 5, 216, 194, 11, 5, 216, 195, 11, 5, 216, 213, 11, 5, 216, 212, 11,
- 5, 216, 215, 11, 5, 216, 214, 11, 5, 216, 185, 11, 5, 216, 187, 11, 5,
- 216, 186, 11, 5, 216, 190, 11, 5, 216, 189, 11, 5, 216, 192, 11, 5, 216,
- 191, 11, 5, 216, 196, 11, 5, 216, 198, 11, 5, 216, 197, 11, 5, 216, 181,
- 11, 5, 216, 180, 11, 5, 216, 188, 11, 5, 216, 184, 11, 5, 216, 182, 11,
- 5, 216, 183, 11, 5, 228, 126, 11, 5, 228, 125, 11, 5, 228, 132, 11, 5,
- 228, 127, 11, 5, 228, 129, 11, 5, 228, 128, 11, 5, 228, 131, 11, 5, 228,
- 130, 11, 5, 228, 137, 11, 5, 228, 136, 11, 5, 228, 139, 11, 5, 228, 138,
- 11, 5, 228, 118, 11, 5, 228, 117, 11, 5, 228, 120, 11, 5, 228, 119, 11,
- 5, 228, 122, 11, 5, 228, 121, 11, 5, 228, 124, 11, 5, 228, 123, 11, 5,
- 228, 133, 11, 5, 228, 135, 11, 5, 228, 134, 11, 5, 214, 110, 11, 5, 214,
- 112, 11, 5, 214, 111, 11, 5, 214, 155, 11, 5, 214, 153, 11, 5, 214, 165,
- 11, 5, 214, 158, 11, 5, 214, 71, 11, 5, 214, 70, 11, 5, 214, 72, 11, 5,
- 214, 82, 11, 5, 214, 79, 11, 5, 214, 90, 11, 5, 214, 84, 11, 5, 214, 146,
- 11, 5, 214, 152, 11, 5, 214, 148, 11, 5, 229, 137, 11, 5, 229, 156, 11,
- 5, 229, 165, 11, 5, 230, 18, 11, 5, 230, 7, 11, 5, 144, 11, 5, 230, 30,
- 11, 5, 228, 156, 11, 5, 228, 155, 11, 5, 228, 158, 11, 5, 228, 157, 11,
- 5, 228, 201, 11, 5, 228, 192, 11, 5, 229, 43, 11, 5, 229, 8, 11, 5, 229,
- 193, 11, 5, 229, 255, 11, 5, 229, 205, 11, 5, 194, 132, 11, 5, 194, 117,
- 11, 5, 194, 169, 11, 5, 194, 143, 11, 5, 193, 233, 11, 5, 193, 235, 11,
- 5, 193, 234, 11, 5, 194, 1, 11, 5, 194, 36, 11, 5, 194, 12, 11, 5, 194,
- 85, 11, 5, 194, 111, 11, 5, 194, 92, 11, 5, 192, 15, 11, 5, 192, 14, 11,
- 5, 192, 30, 11, 5, 192, 18, 11, 5, 192, 23, 11, 5, 192, 25, 11, 5, 192,
- 24, 11, 5, 192, 94, 11, 5, 192, 91, 11, 5, 192, 112, 11, 5, 192, 98, 11,
- 5, 191, 245, 11, 5, 191, 247, 11, 5, 191, 246, 11, 5, 192, 3, 11, 5, 192,
- 2, 11, 5, 192, 8, 11, 5, 192, 4, 11, 5, 192, 73, 11, 5, 192, 85, 11, 5,
- 192, 78, 11, 5, 191, 241, 11, 5, 191, 240, 11, 5, 191, 252, 11, 5, 191,
- 244, 11, 5, 191, 242, 11, 5, 191, 243, 11, 5, 191, 227, 11, 5, 191, 226,
- 11, 5, 191, 232, 11, 5, 191, 230, 11, 5, 191, 228, 11, 5, 191, 229, 11,
- 5, 242, 119, 11, 5, 242, 112, 11, 5, 242, 149, 11, 5, 242, 132, 11, 5,
- 242, 146, 11, 5, 242, 140, 11, 5, 242, 148, 11, 5, 242, 147, 11, 5, 246,
- 193, 11, 5, 246, 185, 11, 5, 247, 19, 11, 5, 246, 226, 11, 5, 238, 150,
- 11, 5, 238, 152, 11, 5, 238, 151, 11, 5, 238, 215, 11, 5, 238, 203, 11,
- 5, 242, 63, 11, 5, 238, 234, 11, 5, 246, 121, 11, 5, 246, 158, 11, 5,
- 246, 127, 11, 5, 238, 121, 11, 5, 238, 119, 11, 5, 238, 162, 11, 5, 238,
- 148, 11, 5, 238, 127, 11, 5, 238, 143, 11, 5, 238, 98, 11, 5, 238, 97,
- 11, 5, 238, 110, 11, 5, 238, 104, 11, 5, 238, 99, 11, 5, 238, 101, 11, 5,
- 191, 210, 11, 5, 191, 209, 11, 5, 191, 216, 11, 5, 191, 211, 11, 5, 191,
- 213, 11, 5, 191, 212, 11, 5, 191, 215, 11, 5, 191, 214, 11, 5, 191, 222,
- 11, 5, 191, 221, 11, 5, 191, 225, 11, 5, 191, 223, 11, 5, 191, 206, 11,
- 5, 191, 208, 11, 5, 191, 207, 11, 5, 191, 217, 11, 5, 191, 220, 11, 5,
- 191, 218, 11, 5, 191, 199, 11, 5, 191, 203, 11, 5, 191, 202, 11, 5, 191,
- 200, 11, 5, 191, 201, 11, 5, 191, 193, 11, 5, 191, 192, 11, 5, 191, 198,
- 11, 5, 191, 196, 11, 5, 191, 194, 11, 5, 191, 195, 11, 5, 212, 133, 11,
- 5, 212, 132, 11, 5, 212, 138, 11, 5, 212, 134, 11, 5, 212, 135, 11, 5,
- 212, 137, 11, 5, 212, 136, 11, 5, 212, 143, 11, 5, 212, 142, 11, 5, 212,
- 146, 11, 5, 212, 145, 11, 5, 212, 126, 11, 5, 212, 127, 11, 5, 212, 130,
- 11, 5, 212, 131, 11, 5, 212, 139, 11, 5, 212, 141, 11, 5, 212, 121, 11,
- 5, 212, 129, 11, 5, 212, 125, 11, 5, 212, 122, 11, 5, 212, 123, 11, 5,
- 212, 116, 11, 5, 212, 115, 11, 5, 212, 120, 11, 5, 212, 119, 11, 5, 212,
- 117, 11, 5, 212, 118, 11, 5, 203, 43, 11, 5, 170, 11, 5, 203, 125, 11, 5,
- 203, 46, 11, 5, 203, 105, 11, 5, 203, 108, 11, 5, 203, 106, 11, 5, 206,
- 20, 11, 5, 206, 4, 11, 5, 188, 11, 5, 206, 28, 11, 5, 201, 113, 11, 5,
- 201, 115, 11, 5, 201, 114, 11, 5, 202, 177, 11, 5, 202, 166, 11, 5, 202,
- 212, 11, 5, 202, 181, 11, 5, 204, 137, 11, 5, 205, 223, 11, 5, 204, 168,
- 11, 5, 201, 88, 11, 5, 201, 85, 11, 5, 201, 184, 11, 5, 201, 112, 11, 5,
- 201, 92, 11, 5, 201, 100, 11, 5, 200, 242, 11, 5, 200, 241, 11, 5, 201,
- 56, 11, 5, 200, 250, 11, 5, 200, 244, 11, 5, 200, 249, 11, 5, 202, 53,
- 11, 5, 202, 52, 11, 5, 202, 59, 11, 5, 202, 54, 11, 5, 202, 56, 11, 5,
- 202, 58, 11, 5, 202, 57, 11, 5, 202, 68, 11, 5, 202, 66, 11, 5, 202, 92,
- 11, 5, 202, 69, 11, 5, 202, 48, 11, 5, 202, 47, 11, 5, 202, 51, 11, 5,
- 202, 49, 11, 5, 202, 62, 11, 5, 202, 65, 11, 5, 202, 63, 11, 5, 202, 44,
- 11, 5, 202, 42, 11, 5, 202, 46, 11, 5, 202, 45, 11, 5, 202, 37, 11, 5,
- 202, 36, 11, 5, 202, 41, 11, 5, 202, 40, 11, 5, 202, 38, 11, 5, 202, 39,
- 11, 5, 192, 66, 11, 5, 192, 65, 11, 5, 192, 71, 11, 5, 192, 68, 11, 5,
- 192, 45, 11, 5, 192, 47, 11, 5, 192, 46, 11, 5, 192, 50, 11, 5, 192, 49,
- 11, 5, 192, 54, 11, 5, 192, 51, 11, 5, 192, 59, 11, 5, 192, 58, 11, 5,
- 192, 62, 11, 5, 192, 60, 11, 5, 192, 41, 11, 5, 192, 40, 11, 5, 192, 48,
- 11, 5, 192, 44, 11, 5, 192, 42, 11, 5, 192, 43, 11, 5, 192, 33, 11, 5,
- 192, 32, 11, 5, 192, 37, 11, 5, 192, 36, 11, 5, 192, 34, 11, 5, 192, 35,
- 11, 5, 242, 251, 11, 5, 242, 247, 11, 5, 246, 117, 11, 5, 246, 103, 11,
- 5, 242, 164, 11, 5, 242, 163, 11, 5, 242, 166, 11, 5, 242, 165, 11, 5,
- 242, 179, 11, 5, 242, 178, 11, 5, 242, 188, 11, 5, 242, 183, 11, 5, 242,
- 222, 11, 5, 242, 219, 11, 5, 242, 245, 11, 5, 242, 230, 11, 5, 242, 158,
- 11, 5, 242, 168, 11, 5, 242, 162, 11, 5, 242, 159, 11, 5, 242, 161, 11,
- 5, 242, 151, 11, 5, 242, 150, 11, 5, 242, 155, 11, 5, 242, 154, 11, 5,
- 242, 152, 11, 5, 242, 153, 11, 5, 206, 255, 11, 5, 207, 3, 11, 5, 206,
- 237, 11, 5, 206, 238, 11, 5, 206, 242, 11, 5, 206, 241, 11, 5, 206, 245,
- 11, 5, 206, 243, 11, 5, 206, 249, 11, 5, 206, 248, 11, 5, 206, 254, 11,
- 5, 206, 250, 11, 5, 206, 233, 11, 5, 206, 231, 11, 5, 206, 239, 11, 5,
- 206, 236, 11, 5, 206, 234, 11, 5, 206, 235, 11, 5, 206, 226, 11, 5, 206,
- 225, 11, 5, 206, 230, 11, 5, 206, 229, 11, 5, 206, 227, 11, 5, 206, 228,
- 11, 5, 213, 86, 11, 5, 213, 85, 11, 5, 213, 88, 11, 5, 213, 87, 11, 5,
- 213, 77, 11, 5, 213, 79, 11, 5, 213, 78, 11, 5, 213, 81, 11, 5, 213, 80,
- 11, 5, 213, 84, 11, 5, 213, 83, 11, 5, 213, 71, 11, 5, 213, 70, 11, 5,
- 213, 76, 11, 5, 213, 74, 11, 5, 213, 72, 11, 5, 213, 73, 11, 5, 213, 65,
- 11, 5, 213, 64, 11, 5, 213, 69, 11, 5, 213, 68, 11, 5, 213, 66, 11, 5,
- 213, 67, 11, 5, 204, 22, 11, 5, 204, 17, 11, 5, 204, 64, 11, 5, 204, 35,
- 11, 5, 203, 152, 11, 5, 203, 154, 11, 5, 203, 153, 11, 5, 203, 179, 11,
- 5, 203, 174, 11, 5, 203, 211, 11, 5, 203, 199, 11, 5, 203, 246, 11, 5,
- 203, 239, 11, 5, 204, 12, 11, 5, 203, 255, 11, 5, 203, 148, 11, 5, 203,
- 145, 11, 5, 203, 164, 11, 5, 203, 151, 11, 5, 203, 149, 11, 5, 203, 150,
- 11, 5, 203, 128, 11, 5, 203, 127, 11, 5, 203, 134, 11, 5, 203, 131, 11,
- 5, 203, 129, 11, 5, 203, 130, 11, 5, 208, 22, 11, 5, 208, 16, 11, 5, 167,
- 11, 5, 208, 28, 11, 5, 206, 188, 11, 5, 206, 190, 11, 5, 206, 189, 11, 5,
- 207, 17, 11, 5, 207, 5, 11, 5, 207, 55, 11, 5, 207, 21, 11, 5, 207, 161,
- 11, 5, 208, 7, 11, 5, 207, 203, 11, 5, 206, 180, 11, 5, 206, 177, 11, 5,
- 206, 218, 11, 5, 206, 187, 11, 5, 206, 183, 11, 5, 206, 184, 11, 5, 206,
- 162, 11, 5, 206, 161, 11, 5, 206, 167, 11, 5, 206, 165, 11, 5, 206, 163,
- 11, 5, 206, 164, 11, 5, 223, 8, 11, 5, 223, 7, 11, 5, 223, 20, 11, 5,
- 223, 9, 11, 5, 223, 16, 11, 5, 223, 15, 11, 5, 223, 18, 11, 5, 223, 17,
- 11, 5, 222, 202, 11, 5, 222, 201, 11, 5, 222, 204, 11, 5, 222, 203, 11,
- 5, 222, 220, 11, 5, 222, 218, 11, 5, 222, 233, 11, 5, 222, 222, 11, 5,
- 222, 195, 11, 5, 222, 193, 11, 5, 222, 214, 11, 5, 222, 200, 11, 5, 222,
- 197, 11, 5, 222, 198, 11, 5, 222, 187, 11, 5, 222, 186, 11, 5, 222, 191,
- 11, 5, 222, 190, 11, 5, 222, 188, 11, 5, 222, 189, 11, 5, 208, 193, 11,
- 5, 208, 191, 11, 5, 208, 201, 11, 5, 208, 194, 11, 5, 208, 198, 11, 5,
- 208, 197, 11, 5, 208, 200, 11, 5, 208, 199, 11, 5, 208, 143, 11, 5, 208,
- 140, 11, 5, 208, 145, 11, 5, 208, 144, 11, 5, 208, 180, 11, 5, 208, 179,
- 11, 5, 208, 189, 11, 5, 208, 183, 11, 5, 208, 135, 11, 5, 208, 131, 11,
- 5, 208, 177, 11, 5, 208, 139, 11, 5, 208, 137, 11, 5, 208, 138, 11, 5,
- 208, 115, 11, 5, 208, 113, 11, 5, 208, 125, 11, 5, 208, 118, 11, 5, 208,
- 116, 11, 5, 208, 117, 11, 5, 222, 253, 11, 5, 222, 252, 11, 5, 223, 3,
- 11, 5, 222, 254, 11, 5, 223, 0, 11, 5, 222, 255, 11, 5, 223, 2, 11, 5,
- 223, 1, 11, 5, 222, 244, 11, 5, 222, 246, 11, 5, 222, 245, 11, 5, 222,
- 249, 11, 5, 222, 248, 11, 5, 222, 251, 11, 5, 222, 250, 11, 5, 222, 240,
- 11, 5, 222, 239, 11, 5, 222, 247, 11, 5, 222, 243, 11, 5, 222, 241, 11,
- 5, 222, 242, 11, 5, 222, 236, 11, 5, 222, 235, 11, 5, 222, 238, 11, 5,
- 222, 237, 11, 5, 213, 233, 11, 5, 213, 232, 11, 5, 213, 240, 11, 5, 213,
- 234, 11, 5, 213, 236, 11, 5, 213, 235, 11, 5, 213, 239, 11, 5, 213, 237,
- 11, 5, 213, 222, 11, 5, 213, 223, 11, 5, 213, 228, 11, 5, 213, 227, 11,
- 5, 213, 231, 11, 5, 213, 229, 11, 5, 213, 217, 11, 5, 213, 226, 11, 5,
- 213, 221, 11, 5, 213, 218, 11, 5, 213, 219, 11, 5, 213, 212, 11, 5, 213,
- 211, 11, 5, 213, 216, 11, 5, 213, 215, 11, 5, 213, 213, 11, 5, 213, 214,
- 11, 5, 212, 168, 11, 5, 212, 167, 11, 5, 212, 181, 11, 5, 212, 172, 11,
- 5, 212, 177, 11, 5, 212, 176, 11, 5, 212, 179, 11, 5, 212, 178, 11, 5,
- 212, 153, 11, 5, 212, 155, 11, 5, 212, 154, 11, 5, 212, 160, 11, 5, 212,
- 159, 11, 5, 212, 165, 11, 5, 212, 161, 11, 5, 212, 151, 11, 5, 212, 149,
- 11, 5, 212, 158, 11, 5, 212, 152, 11, 5, 193, 187, 11, 5, 193, 186, 11,
- 5, 193, 196, 11, 5, 193, 189, 11, 5, 193, 191, 11, 5, 193, 190, 11, 5,
- 193, 193, 11, 5, 193, 192, 11, 5, 193, 175, 11, 5, 193, 176, 11, 5, 193,
- 180, 11, 5, 193, 179, 11, 5, 193, 185, 11, 5, 193, 183, 11, 5, 193, 152,
- 11, 5, 193, 150, 11, 5, 193, 165, 11, 5, 193, 155, 11, 5, 193, 153, 11,
- 5, 193, 154, 11, 5, 193, 7, 11, 5, 193, 5, 11, 5, 193, 22, 11, 5, 193, 8,
- 11, 5, 193, 16, 11, 5, 193, 15, 11, 5, 193, 19, 11, 5, 193, 17, 11, 5,
- 192, 187, 11, 5, 192, 186, 11, 5, 192, 190, 11, 5, 192, 188, 11, 5, 192,
- 229, 11, 5, 192, 224, 11, 5, 193, 1, 11, 5, 192, 234, 11, 5, 192, 178,
- 11, 5, 192, 174, 11, 5, 192, 214, 11, 5, 192, 185, 11, 5, 192, 181, 11,
- 5, 192, 182, 11, 5, 192, 158, 11, 5, 192, 157, 11, 5, 192, 165, 11, 5,
- 192, 161, 11, 5, 192, 159, 11, 5, 192, 160, 11, 48, 208, 180, 11, 48,
- 219, 209, 11, 48, 221, 158, 11, 48, 212, 172, 11, 48, 238, 104, 11, 48,
- 202, 59, 11, 48, 231, 103, 11, 48, 231, 135, 11, 48, 216, 175, 11, 48,
- 228, 126, 11, 48, 218, 243, 11, 48, 248, 131, 11, 48, 216, 27, 11, 48,
- 193, 1, 11, 48, 209, 17, 11, 48, 228, 120, 11, 48, 200, 105, 11, 48, 231,
- 233, 11, 48, 191, 244, 11, 48, 238, 98, 11, 48, 237, 121, 11, 48, 247,
- 89, 11, 48, 231, 99, 11, 48, 212, 161, 11, 48, 198, 45, 11, 48, 211, 185,
- 11, 48, 222, 240, 11, 48, 192, 3, 11, 48, 208, 251, 11, 48, 229, 85, 11,
- 48, 193, 7, 11, 48, 194, 218, 11, 48, 203, 134, 11, 48, 196, 111, 11, 48,
- 192, 112, 11, 48, 222, 233, 11, 48, 212, 125, 11, 48, 222, 238, 11, 48,
- 230, 231, 11, 48, 223, 2, 11, 48, 194, 36, 11, 48, 235, 62, 11, 48, 203,
- 150, 11, 48, 219, 203, 11, 48, 238, 110, 11, 48, 238, 151, 11, 48, 242,
- 132, 11, 48, 228, 123, 11, 48, 204, 22, 11, 48, 191, 243, 11, 48, 203,
- 199, 11, 48, 242, 245, 11, 48, 191, 213, 11, 48, 215, 26, 11, 48, 222,
- 57, 219, 152, 1, 249, 3, 219, 152, 1, 166, 219, 152, 1, 210, 94, 219,
- 152, 1, 238, 0, 219, 152, 1, 189, 219, 152, 1, 199, 240, 219, 152, 1,
- 231, 233, 219, 152, 1, 160, 219, 152, 1, 221, 250, 219, 152, 1, 223, 62,
- 219, 152, 1, 247, 19, 219, 152, 1, 246, 117, 219, 152, 1, 235, 17, 219,
- 152, 1, 198, 118, 219, 152, 1, 198, 108, 219, 152, 1, 172, 219, 152, 1,
- 181, 219, 152, 1, 177, 219, 152, 1, 188, 219, 152, 1, 192, 71, 219, 152,
- 1, 192, 112, 219, 152, 1, 214, 165, 219, 152, 1, 144, 219, 152, 1, 193,
- 209, 219, 152, 1, 229, 187, 219, 152, 1, 233, 97, 219, 152, 1, 194, 169,
- 219, 152, 1, 204, 64, 219, 152, 1, 168, 219, 152, 1, 231, 84, 219, 152,
- 1, 64, 219, 152, 1, 251, 108, 219, 152, 1, 71, 219, 152, 1, 233, 230,
- 219, 152, 1, 70, 219, 152, 1, 74, 219, 152, 1, 68, 219, 152, 1, 197, 104,
- 219, 152, 1, 197, 97, 219, 152, 1, 212, 0, 219, 152, 1, 158, 215, 158,
- 199, 128, 219, 152, 1, 158, 215, 97, 209, 198, 219, 152, 1, 158, 215,
- 158, 238, 109, 219, 152, 1, 158, 215, 158, 247, 220, 219, 152, 1, 158,
- 215, 158, 181, 219, 152, 1, 158, 215, 158, 223, 29, 219, 152, 209, 38,
- 242, 38, 219, 152, 209, 38, 232, 71, 201, 238, 56, 5, 234, 171, 56, 5,
- 234, 167, 56, 5, 229, 225, 56, 5, 194, 100, 56, 5, 194, 99, 56, 5, 210,
- 168, 56, 5, 248, 48, 56, 5, 248, 108, 56, 5, 217, 74, 56, 5, 221, 64, 56,
- 5, 216, 207, 56, 5, 231, 171, 56, 5, 233, 40, 56, 5, 196, 118, 56, 5,
- 200, 56, 56, 5, 199, 222, 56, 5, 237, 30, 56, 5, 237, 27, 56, 5, 220, 32,
- 56, 5, 207, 234, 56, 5, 237, 101, 56, 5, 214, 246, 56, 5, 205, 205, 56,
- 5, 204, 10, 56, 5, 192, 82, 56, 5, 192, 61, 56, 5, 246, 150, 56, 5, 223,
- 39, 56, 5, 213, 247, 56, 5, 193, 66, 56, 5, 222, 48, 56, 5, 214, 138, 56,
- 5, 231, 150, 56, 5, 217, 29, 56, 5, 214, 203, 56, 5, 212, 189, 56, 5, 70,
- 56, 5, 223, 190, 56, 5, 229, 178, 56, 5, 229, 148, 56, 5, 194, 72, 56, 5,
- 194, 54, 56, 5, 210, 51, 56, 5, 248, 46, 56, 5, 248, 41, 56, 5, 217, 67,
- 56, 5, 221, 61, 56, 5, 216, 204, 56, 5, 231, 167, 56, 5, 233, 11, 56, 5,
- 196, 39, 56, 5, 199, 128, 56, 5, 199, 202, 56, 5, 237, 22, 56, 5, 237,
- 26, 56, 5, 219, 209, 56, 5, 207, 151, 56, 5, 237, 16, 56, 5, 214, 240,
- 56, 5, 203, 125, 56, 5, 203, 236, 56, 5, 192, 30, 56, 5, 192, 57, 56, 5,
- 242, 149, 56, 5, 223, 20, 56, 5, 213, 240, 56, 5, 193, 22, 56, 5, 221,
- 204, 56, 5, 214, 130, 56, 5, 231, 46, 56, 5, 216, 175, 56, 5, 214, 60,
- 56, 5, 212, 181, 56, 5, 64, 56, 5, 250, 224, 56, 5, 214, 160, 56, 5, 144,
- 56, 5, 230, 65, 56, 5, 194, 169, 56, 5, 194, 149, 56, 5, 166, 56, 5, 248,
- 54, 56, 5, 249, 3, 56, 5, 217, 82, 56, 5, 221, 69, 56, 5, 221, 67, 56, 5,
- 216, 211, 56, 5, 231, 175, 56, 5, 233, 97, 56, 5, 196, 157, 56, 5, 189,
- 56, 5, 199, 240, 56, 5, 237, 40, 56, 5, 237, 29, 56, 5, 177, 56, 5, 167,
- 56, 5, 238, 0, 56, 5, 214, 255, 56, 5, 188, 56, 5, 204, 64, 56, 5, 192,
- 112, 56, 5, 192, 71, 56, 5, 247, 19, 56, 5, 223, 62, 56, 5, 214, 0, 56,
- 5, 168, 56, 5, 160, 56, 5, 222, 121, 56, 5, 214, 144, 56, 5, 231, 233,
- 56, 5, 172, 56, 5, 181, 56, 5, 212, 201, 56, 5, 211, 194, 56, 5, 211,
- 189, 56, 5, 229, 16, 56, 5, 194, 17, 56, 5, 194, 13, 56, 5, 209, 172, 56,
- 5, 248, 44, 56, 5, 247, 206, 56, 5, 217, 62, 56, 5, 221, 59, 56, 5, 216,
- 200, 56, 5, 231, 163, 56, 5, 232, 152, 56, 5, 195, 236, 56, 5, 198, 254,
- 56, 5, 199, 170, 56, 5, 237, 19, 56, 5, 237, 24, 56, 5, 219, 73, 56, 5,
- 207, 28, 56, 5, 236, 120, 56, 5, 214, 227, 56, 5, 202, 183, 56, 5, 203,
- 203, 56, 5, 192, 5, 56, 5, 192, 52, 56, 5, 238, 239, 56, 5, 222, 223, 56,
- 5, 213, 230, 56, 5, 192, 235, 56, 5, 221, 88, 56, 5, 214, 128, 56, 5,
- 230, 242, 56, 5, 216, 35, 56, 5, 213, 125, 56, 5, 212, 162, 56, 5, 68,
- 56, 5, 197, 77, 56, 5, 228, 181, 56, 5, 228, 164, 56, 5, 193, 244, 56, 5,
- 193, 237, 56, 5, 209, 51, 56, 5, 248, 43, 56, 5, 247, 124, 56, 5, 217,
- 61, 56, 5, 221, 57, 56, 5, 216, 199, 56, 5, 231, 162, 56, 5, 232, 77, 56,
- 5, 194, 223, 56, 5, 198, 45, 56, 5, 199, 148, 56, 5, 237, 17, 56, 5, 237,
- 23, 56, 5, 219, 36, 56, 5, 206, 218, 56, 5, 235, 62, 56, 5, 214, 222, 56,
- 5, 201, 184, 56, 5, 203, 164, 56, 5, 191, 252, 56, 5, 192, 48, 56, 5,
- 238, 162, 56, 5, 222, 214, 56, 5, 213, 226, 56, 5, 192, 214, 56, 5, 221,
- 33, 56, 5, 214, 127, 56, 5, 230, 186, 56, 5, 215, 241, 56, 5, 213, 22,
- 56, 5, 212, 158, 56, 5, 74, 56, 5, 211, 211, 56, 5, 214, 86, 56, 5, 229,
- 43, 56, 5, 229, 19, 56, 5, 194, 36, 56, 5, 194, 18, 56, 5, 209, 198, 56,
- 5, 248, 45, 56, 5, 247, 220, 56, 5, 217, 63, 56, 5, 221, 60, 56, 5, 216,
- 202, 56, 5, 231, 165, 56, 5, 231, 164, 56, 5, 232, 164, 56, 5, 195, 252,
- 56, 5, 155, 56, 5, 199, 176, 56, 5, 237, 20, 56, 5, 237, 25, 56, 5, 219,
- 107, 56, 5, 207, 55, 56, 5, 236, 146, 56, 5, 214, 231, 56, 5, 202, 212,
- 56, 5, 203, 211, 56, 5, 192, 8, 56, 5, 192, 54, 56, 5, 242, 63, 56, 5,
- 222, 233, 56, 5, 213, 231, 56, 5, 193, 1, 56, 5, 221, 113, 56, 5, 214,
- 129, 56, 5, 230, 254, 56, 5, 216, 91, 56, 5, 213, 142, 56, 5, 212, 165,
- 56, 5, 71, 56, 5, 234, 88, 56, 5, 214, 149, 56, 5, 229, 255, 56, 5, 229,
- 208, 56, 5, 194, 111, 56, 5, 194, 94, 56, 5, 210, 181, 56, 5, 248, 49,
- 56, 5, 248, 123, 56, 5, 217, 75, 56, 5, 221, 65, 56, 5, 221, 63, 56, 5,
- 216, 208, 56, 5, 231, 172, 56, 5, 231, 170, 56, 5, 233, 47, 56, 5, 196,
- 123, 56, 5, 200, 79, 56, 5, 199, 224, 56, 5, 237, 31, 56, 5, 237, 28, 56,
- 5, 220, 42, 56, 5, 208, 7, 56, 5, 237, 116, 56, 5, 214, 247, 56, 5, 205,
- 223, 56, 5, 204, 12, 56, 5, 192, 85, 56, 5, 192, 62, 56, 5, 246, 158, 56,
- 5, 223, 41, 56, 5, 213, 249, 56, 5, 193, 69, 56, 5, 222, 57, 56, 5, 214,
- 139, 56, 5, 214, 135, 56, 5, 231, 158, 56, 5, 231, 144, 56, 5, 217, 48,
- 56, 5, 214, 214, 56, 5, 212, 190, 56, 5, 214, 167, 56, 5, 219, 250, 56,
- 242, 38, 56, 232, 71, 201, 238, 56, 208, 159, 77, 56, 5, 214, 230, 233,
- 97, 56, 5, 214, 230, 160, 56, 5, 214, 230, 202, 183, 56, 16, 233, 36, 56,
- 16, 222, 46, 56, 16, 199, 78, 56, 16, 214, 27, 56, 16, 248, 201, 56, 16,
- 233, 96, 56, 16, 200, 174, 56, 16, 237, 206, 56, 16, 236, 119, 56, 16,
- 221, 10, 56, 16, 199, 2, 56, 16, 236, 145, 56, 16, 222, 224, 56, 17, 192,
- 76, 56, 17, 101, 56, 17, 104, 56, 17, 133, 56, 17, 134, 56, 17, 151, 56,
- 17, 170, 56, 17, 179, 56, 17, 174, 56, 17, 182, 56, 5, 214, 230, 172, 56,
- 5, 214, 230, 236, 146, 42, 6, 1, 192, 80, 42, 2, 1, 192, 80, 42, 6, 1,
- 235, 12, 42, 2, 1, 235, 12, 42, 6, 1, 207, 168, 235, 14, 42, 2, 1, 207,
- 168, 235, 14, 42, 6, 1, 223, 111, 42, 2, 1, 223, 111, 42, 6, 1, 236, 163,
- 42, 2, 1, 236, 163, 42, 6, 1, 216, 43, 197, 92, 42, 2, 1, 216, 43, 197,
- 92, 42, 6, 1, 247, 138, 211, 216, 42, 2, 1, 247, 138, 211, 216, 42, 6, 1,
- 214, 179, 193, 51, 42, 2, 1, 214, 179, 193, 51, 42, 6, 1, 193, 48, 4,
- 248, 253, 193, 51, 42, 2, 1, 193, 48, 4, 248, 253, 193, 51, 42, 6, 1,
- 223, 109, 193, 84, 42, 2, 1, 223, 109, 193, 84, 42, 6, 1, 207, 168, 192,
- 214, 42, 2, 1, 207, 168, 192, 214, 42, 6, 1, 223, 109, 64, 42, 2, 1, 223,
- 109, 64, 42, 6, 1, 242, 84, 219, 147, 192, 179, 42, 2, 1, 242, 84, 219,
- 147, 192, 179, 42, 6, 1, 247, 240, 192, 179, 42, 2, 1, 247, 240, 192,
- 179, 42, 6, 1, 223, 109, 242, 84, 219, 147, 192, 179, 42, 2, 1, 223, 109,
- 242, 84, 219, 147, 192, 179, 42, 6, 1, 193, 3, 42, 2, 1, 193, 3, 42, 6,
- 1, 207, 168, 198, 112, 42, 2, 1, 207, 168, 198, 112, 42, 6, 1, 202, 198,
- 237, 116, 42, 2, 1, 202, 198, 237, 116, 42, 6, 1, 202, 198, 234, 124, 42,
- 2, 1, 202, 198, 234, 124, 42, 6, 1, 202, 198, 234, 99, 42, 2, 1, 202,
- 198, 234, 99, 42, 6, 1, 216, 47, 74, 42, 2, 1, 216, 47, 74, 42, 6, 1,
- 248, 17, 74, 42, 2, 1, 248, 17, 74, 42, 6, 1, 55, 216, 47, 74, 42, 2, 1,
- 55, 216, 47, 74, 42, 1, 215, 217, 74, 38, 42, 194, 204, 38, 42, 200, 31,
- 216, 124, 57, 38, 42, 228, 163, 216, 124, 57, 38, 42, 199, 165, 216, 124,
- 57, 203, 2, 250, 37, 38, 42, 1, 197, 89, 223, 251, 38, 42, 1, 70, 38, 42,
- 1, 193, 22, 38, 42, 1, 68, 38, 42, 1, 230, 26, 57, 38, 42, 1, 193, 47,
- 38, 42, 1, 202, 198, 57, 38, 42, 1, 211, 216, 38, 42, 222, 69, 38, 42,
- 210, 188, 42, 222, 69, 42, 210, 188, 42, 6, 1, 235, 27, 42, 2, 1, 235,
- 27, 42, 6, 1, 235, 3, 42, 2, 1, 235, 3, 42, 6, 1, 192, 38, 42, 2, 1, 192,
- 38, 42, 6, 1, 246, 174, 42, 2, 1, 246, 174, 42, 6, 1, 234, 255, 42, 2, 1,
- 234, 255, 42, 6, 1, 200, 80, 4, 85, 128, 42, 2, 1, 200, 80, 4, 85, 128,
- 42, 6, 1, 197, 248, 42, 2, 1, 197, 248, 42, 6, 1, 198, 87, 42, 2, 1, 198,
- 87, 42, 6, 1, 198, 92, 42, 2, 1, 198, 92, 42, 6, 1, 200, 85, 42, 2, 1,
- 200, 85, 42, 6, 1, 228, 144, 42, 2, 1, 228, 144, 42, 6, 1, 203, 140, 42,
- 2, 1, 203, 140, 42, 6, 1, 55, 74, 42, 2, 1, 55, 74, 42, 6, 1, 238, 180,
- 74, 42, 2, 1, 238, 180, 74, 73, 1, 42, 230, 26, 57, 73, 1, 42, 202, 198,
- 57, 38, 42, 1, 234, 164, 38, 42, 1, 223, 109, 71, 25, 1, 64, 25, 1, 160,
- 25, 1, 68, 25, 1, 221, 33, 25, 1, 234, 171, 25, 1, 207, 234, 25, 1, 200,
- 157, 25, 1, 74, 25, 1, 212, 181, 25, 1, 70, 25, 1, 177, 25, 1, 166, 25,
- 1, 207, 88, 25, 1, 207, 136, 25, 1, 220, 31, 25, 1, 217, 28, 25, 1, 200,
- 174, 25, 1, 214, 253, 25, 1, 213, 254, 25, 1, 218, 236, 25, 1, 201, 86,
- 25, 1, 215, 241, 25, 1, 203, 231, 25, 1, 203, 125, 25, 1, 203, 241, 25,
- 1, 204, 147, 25, 1, 220, 208, 25, 1, 222, 20, 25, 1, 212, 246, 25, 1,
- 213, 22, 25, 1, 213, 225, 25, 1, 192, 232, 25, 1, 203, 164, 25, 1, 192,
- 183, 25, 1, 168, 25, 1, 213, 59, 25, 1, 222, 6, 25, 1, 210, 98, 25, 1,
- 213, 247, 25, 1, 213, 39, 25, 1, 209, 42, 25, 1, 193, 241, 25, 1, 210,
- 168, 25, 1, 233, 40, 25, 1, 206, 218, 25, 1, 219, 36, 25, 1, 216, 175,
- 25, 1, 214, 60, 25, 1, 207, 170, 25, 1, 208, 53, 25, 1, 222, 30, 25, 1,
- 214, 93, 25, 1, 214, 144, 25, 1, 214, 165, 25, 1, 203, 211, 25, 1, 209,
- 47, 25, 1, 232, 77, 25, 1, 232, 157, 25, 1, 194, 169, 25, 1, 181, 25, 1,
- 219, 209, 25, 1, 210, 51, 25, 1, 219, 65, 25, 1, 221, 113, 25, 1, 217,
- 72, 25, 1, 207, 205, 25, 1, 217, 5, 25, 1, 172, 25, 1, 199, 128, 25, 1,
- 221, 204, 25, 1, 216, 91, 25, 1, 217, 80, 25, 1, 200, 8, 25, 1, 221, 69,
- 25, 1, 200, 30, 25, 1, 213, 25, 25, 1, 206, 48, 25, 1, 233, 93, 25, 1,
- 221, 72, 25, 1, 221, 104, 25, 38, 122, 221, 81, 25, 38, 122, 198, 30, 25,
- 213, 253, 25, 232, 71, 201, 238, 25, 242, 47, 25, 242, 38, 25, 204, 180,
- 25, 208, 159, 77, 73, 1, 242, 200, 158, 193, 11, 209, 255, 73, 1, 242,
- 200, 158, 193, 96, 209, 255, 73, 1, 242, 200, 158, 193, 11, 204, 36, 73,
- 1, 242, 200, 158, 193, 96, 204, 36, 73, 1, 242, 200, 158, 193, 11, 208,
- 177, 73, 1, 242, 200, 158, 193, 96, 208, 177, 73, 1, 242, 200, 158, 193,
- 11, 206, 218, 73, 1, 242, 200, 158, 193, 96, 206, 218, 73, 1, 233, 188,
- 235, 111, 158, 161, 73, 1, 139, 235, 111, 158, 161, 73, 1, 216, 162, 235,
- 111, 158, 161, 73, 1, 132, 235, 111, 158, 161, 73, 1, 233, 187, 235, 111,
- 158, 161, 73, 1, 233, 188, 235, 111, 220, 20, 158, 161, 73, 1, 139, 235,
- 111, 220, 20, 158, 161, 73, 1, 216, 162, 235, 111, 220, 20, 158, 161, 73,
- 1, 132, 235, 111, 220, 20, 158, 161, 73, 1, 233, 187, 235, 111, 220, 20,
- 158, 161, 73, 1, 233, 188, 220, 20, 158, 161, 73, 1, 139, 220, 20, 158,
- 161, 73, 1, 216, 162, 220, 20, 158, 161, 73, 1, 132, 220, 20, 158, 161,
- 73, 1, 233, 187, 220, 20, 158, 161, 73, 1, 78, 84, 161, 73, 1, 78, 203,
- 4, 73, 1, 78, 229, 5, 161, 73, 1, 106, 51, 238, 224, 250, 207, 73, 1,
- 208, 39, 130, 54, 73, 1, 208, 39, 142, 54, 73, 1, 208, 39, 233, 204, 77,
- 73, 1, 208, 39, 223, 121, 233, 204, 77, 73, 1, 132, 223, 121, 233, 204,
- 77, 73, 1, 201, 218, 26, 139, 199, 18, 73, 1, 201, 218, 26, 132, 199, 18,
- 8, 6, 1, 234, 159, 251, 26, 8, 2, 1, 234, 159, 251, 26, 8, 6, 1, 234,
- 159, 251, 57, 8, 2, 1, 234, 159, 251, 57, 8, 6, 1, 229, 206, 8, 2, 1,
- 229, 206, 8, 6, 1, 197, 192, 8, 2, 1, 197, 192, 8, 6, 1, 198, 189, 8, 2,
- 1, 198, 189, 8, 6, 1, 238, 159, 8, 2, 1, 238, 159, 8, 6, 1, 238, 160, 4,
- 242, 38, 8, 2, 1, 238, 160, 4, 242, 38, 8, 1, 2, 6, 233, 163, 8, 1, 2, 6,
- 206, 158, 8, 6, 1, 252, 33, 8, 2, 1, 252, 33, 8, 6, 1, 250, 166, 8, 2, 1,
- 250, 166, 8, 6, 1, 250, 8, 8, 2, 1, 250, 8, 8, 6, 1, 249, 247, 8, 2, 1,
- 249, 247, 8, 6, 1, 249, 248, 4, 229, 5, 161, 8, 2, 1, 249, 248, 4, 229,
- 5, 161, 8, 6, 1, 249, 236, 8, 2, 1, 249, 236, 8, 6, 1, 207, 168, 247, 53,
- 4, 236, 114, 8, 2, 1, 207, 168, 247, 53, 4, 236, 114, 8, 6, 1, 222, 185,
- 4, 111, 8, 2, 1, 222, 185, 4, 111, 8, 6, 1, 222, 185, 4, 237, 11, 111, 8,
- 2, 1, 222, 185, 4, 237, 11, 111, 8, 6, 1, 222, 185, 4, 201, 208, 26, 237,
- 11, 111, 8, 2, 1, 222, 185, 4, 201, 208, 26, 237, 11, 111, 8, 6, 1, 247,
- 136, 165, 8, 2, 1, 247, 136, 165, 8, 6, 1, 220, 202, 4, 139, 111, 8, 2,
- 1, 220, 202, 4, 139, 111, 8, 6, 1, 185, 4, 184, 201, 208, 211, 110, 8, 2,
- 1, 185, 4, 184, 201, 208, 211, 110, 8, 6, 1, 185, 4, 219, 69, 8, 2, 1,
- 185, 4, 219, 69, 8, 6, 1, 211, 194, 8, 2, 1, 211, 194, 8, 6, 1, 211, 94,
- 4, 201, 208, 199, 151, 237, 59, 8, 2, 1, 211, 94, 4, 201, 208, 199, 151,
- 237, 59, 8, 6, 1, 211, 94, 4, 232, 177, 8, 2, 1, 211, 94, 4, 232, 177, 8,
- 6, 1, 211, 94, 4, 202, 98, 200, 147, 8, 2, 1, 211, 94, 4, 202, 98, 200,
- 147, 8, 6, 1, 208, 248, 4, 201, 208, 199, 151, 237, 59, 8, 2, 1, 208,
- 248, 4, 201, 208, 199, 151, 237, 59, 8, 6, 1, 208, 248, 4, 237, 11, 111,
- 8, 2, 1, 208, 248, 4, 237, 11, 111, 8, 6, 1, 208, 112, 207, 10, 8, 2, 1,
- 208, 112, 207, 10, 8, 6, 1, 206, 199, 207, 10, 8, 2, 1, 206, 199, 207,
- 10, 8, 6, 1, 196, 237, 4, 237, 11, 111, 8, 2, 1, 196, 237, 4, 237, 11,
- 111, 8, 6, 1, 194, 210, 8, 2, 1, 194, 210, 8, 6, 1, 196, 4, 192, 155, 8,
- 2, 1, 196, 4, 192, 155, 8, 6, 1, 199, 169, 4, 111, 8, 2, 1, 199, 169, 4,
- 111, 8, 6, 1, 199, 169, 4, 201, 208, 199, 151, 237, 59, 8, 2, 1, 199,
- 169, 4, 201, 208, 199, 151, 237, 59, 8, 6, 1, 196, 112, 8, 2, 1, 196,
- 112, 8, 6, 1, 233, 242, 8, 2, 1, 233, 242, 8, 6, 1, 223, 96, 8, 2, 1,
- 223, 96, 8, 6, 1, 239, 21, 8, 2, 1, 239, 21, 73, 1, 197, 10, 8, 2, 1,
- 235, 51, 8, 2, 1, 219, 19, 8, 2, 1, 215, 210, 8, 2, 1, 212, 237, 8, 2, 1,
- 206, 198, 8, 1, 2, 6, 206, 198, 8, 2, 1, 198, 27, 8, 2, 1, 197, 84, 8, 6,
- 1, 223, 143, 238, 95, 8, 2, 1, 223, 143, 238, 95, 8, 6, 1, 223, 143, 233,
- 163, 8, 2, 1, 223, 143, 233, 163, 8, 6, 1, 223, 143, 232, 44, 8, 6, 1,
- 163, 223, 143, 232, 44, 8, 2, 1, 163, 223, 143, 232, 44, 8, 6, 1, 163,
- 165, 8, 2, 1, 163, 165, 8, 6, 1, 223, 143, 150, 8, 2, 1, 223, 143, 150,
- 8, 6, 1, 223, 143, 206, 158, 8, 2, 1, 223, 143, 206, 158, 8, 6, 1, 223,
- 143, 200, 228, 8, 2, 1, 223, 143, 200, 228, 73, 1, 132, 242, 122, 251,
- 143, 73, 1, 242, 47, 73, 1, 203, 195, 234, 30, 57, 8, 6, 1, 206, 53, 8,
- 2, 1, 206, 53, 8, 6, 1, 163, 230, 124, 8, 2, 1, 220, 202, 4, 207, 174,
- 229, 15, 26, 248, 82, 8, 1, 203, 67, 236, 114, 8, 6, 1, 215, 152, 4, 237,
- 59, 8, 2, 1, 215, 152, 4, 237, 59, 8, 6, 1, 247, 53, 4, 161, 8, 2, 1,
- 247, 53, 4, 161, 8, 2, 1, 247, 53, 4, 211, 49, 128, 8, 2, 1, 230, 125, 4,
- 211, 49, 128, 8, 6, 1, 76, 4, 232, 177, 8, 2, 1, 76, 4, 232, 177, 8, 6,
- 1, 233, 164, 4, 111, 8, 2, 1, 233, 164, 4, 111, 8, 6, 1, 195, 243, 251,
- 108, 8, 2, 1, 195, 243, 251, 108, 8, 6, 1, 195, 243, 212, 0, 8, 2, 1,
- 195, 243, 212, 0, 8, 6, 1, 195, 243, 197, 104, 8, 2, 1, 195, 243, 197,
- 104, 8, 6, 1, 232, 45, 4, 212, 18, 111, 8, 2, 1, 232, 45, 4, 212, 18,
- 111, 8, 6, 1, 222, 185, 4, 212, 18, 111, 8, 2, 1, 222, 185, 4, 212, 18,
- 111, 8, 6, 1, 215, 152, 4, 212, 18, 111, 8, 2, 1, 215, 152, 4, 212, 18,
- 111, 8, 6, 1, 208, 112, 4, 212, 18, 111, 8, 2, 1, 208, 112, 4, 212, 18,
- 111, 8, 6, 1, 206, 159, 4, 212, 18, 111, 8, 2, 1, 206, 159, 4, 212, 18,
- 111, 8, 6, 1, 230, 125, 4, 128, 8, 6, 1, 207, 168, 211, 184, 71, 8, 6, 1,
- 27, 232, 44, 8, 6, 1, 220, 202, 4, 248, 82, 8, 6, 1, 2, 6, 70, 8, 1, 2,
- 6, 208, 247, 8, 6, 1, 163, 222, 184, 8, 6, 1, 163, 200, 228, 8, 6, 1,
- 223, 66, 4, 238, 178, 8, 6, 1, 242, 215, 8, 6, 1, 248, 63, 8, 2, 1, 248,
- 63, 8, 6, 1, 211, 216, 8, 2, 1, 211, 216, 8, 6, 1, 124, 4, 111, 8, 2, 1,
- 124, 4, 111, 8, 6, 1, 231, 6, 64, 8, 2, 1, 231, 6, 64, 8, 6, 1, 231, 6,
- 70, 8, 2, 1, 231, 6, 70, 8, 6, 1, 231, 6, 68, 8, 2, 1, 231, 6, 68, 8, 6,
- 1, 250, 204, 194, 202, 8, 2, 1, 250, 204, 194, 202, 8, 6, 1, 247, 53, 4,
- 211, 49, 128, 8, 6, 1, 206, 159, 4, 128, 8, 6, 1, 192, 156, 4, 211, 49,
- 128, 8, 6, 1, 238, 96, 4, 203, 195, 201, 208, 211, 110, 8, 2, 1, 238, 96,
- 4, 203, 195, 201, 208, 211, 110, 8, 6, 1, 206, 159, 4, 203, 195, 201,
- 208, 211, 110, 8, 2, 1, 206, 159, 4, 203, 195, 201, 208, 211, 110, 8, 6,
- 1, 207, 168, 138, 230, 124, 8, 2, 1, 207, 168, 138, 230, 124, 8, 234, 35,
- 1, 203, 109, 70, 73, 1, 6, 230, 125, 4, 111, 73, 1, 2, 34, 212, 0, 8, 1,
- 2, 6, 163, 218, 236, 8, 234, 35, 1, 207, 168, 233, 163, 8, 234, 35, 1,
- 207, 168, 211, 93, 8, 234, 35, 1, 223, 121, 218, 236, 8, 234, 35, 1, 228,
- 97, 219, 75, 8, 234, 35, 1, 250, 112, 218, 236, 201, 53, 215, 72, 1, 64,
- 201, 53, 215, 72, 1, 70, 201, 53, 215, 72, 3, 235, 29, 201, 53, 215, 72,
- 1, 68, 201, 53, 215, 72, 1, 71, 201, 53, 215, 72, 1, 74, 201, 53, 215,
- 72, 3, 230, 20, 201, 53, 215, 72, 1, 221, 113, 201, 53, 215, 72, 1, 221,
- 220, 201, 53, 215, 72, 1, 230, 254, 201, 53, 215, 72, 1, 231, 56, 201,
- 53, 215, 72, 3, 250, 168, 201, 53, 215, 72, 1, 242, 63, 201, 53, 215, 72,
- 1, 242, 188, 201, 53, 215, 72, 1, 222, 233, 201, 53, 215, 72, 1, 223, 22,
- 201, 53, 215, 72, 1, 198, 60, 201, 53, 215, 72, 1, 198, 66, 201, 53, 215,
- 72, 1, 237, 131, 201, 53, 215, 72, 1, 237, 140, 201, 53, 215, 72, 1, 155,
- 201, 53, 215, 72, 1, 199, 176, 201, 53, 215, 72, 1, 236, 146, 201, 53,
- 215, 72, 1, 237, 20, 201, 53, 215, 72, 1, 213, 142, 201, 53, 215, 72, 1,
- 209, 198, 201, 53, 215, 72, 1, 210, 65, 201, 53, 215, 72, 1, 247, 220,
- 201, 53, 215, 72, 1, 248, 45, 201, 53, 215, 72, 1, 216, 91, 201, 53, 215,
- 72, 1, 207, 55, 201, 53, 215, 72, 1, 219, 107, 201, 53, 215, 72, 1, 206,
- 245, 201, 53, 215, 72, 1, 202, 212, 201, 53, 215, 72, 1, 229, 43, 201,
- 53, 215, 72, 18, 3, 64, 201, 53, 215, 72, 18, 3, 70, 201, 53, 215, 72,
- 18, 3, 68, 201, 53, 215, 72, 18, 3, 71, 201, 53, 215, 72, 18, 3, 211,
- 194, 201, 53, 215, 72, 209, 193, 217, 126, 201, 53, 215, 72, 209, 193,
- 217, 125, 201, 53, 215, 72, 209, 193, 217, 124, 201, 53, 215, 72, 209,
- 193, 217, 123, 201, 53, 215, 72, 3, 250, 249, 230, 20, 178, 223, 174,
- 232, 109, 90, 208, 167, 178, 223, 174, 232, 109, 90, 230, 78, 178, 223,
- 174, 232, 109, 112, 208, 165, 178, 223, 174, 232, 109, 90, 203, 33, 178,
- 223, 174, 232, 109, 90, 234, 143, 178, 223, 174, 232, 109, 112, 203, 30,
- 178, 223, 174, 208, 168, 77, 178, 223, 174, 209, 231, 77, 178, 223, 174,
- 206, 186, 77, 178, 223, 174, 208, 169, 77, 210, 90, 1, 160, 210, 90, 1,
- 221, 250, 210, 90, 1, 231, 233, 210, 90, 1, 214, 165, 210, 90, 1, 247,
- 19, 210, 90, 1, 246, 117, 210, 90, 1, 223, 62, 210, 90, 1, 212, 201, 210,
- 90, 1, 189, 210, 90, 1, 199, 240, 210, 90, 1, 238, 0, 210, 90, 1, 181,
- 210, 90, 1, 166, 210, 90, 1, 210, 94, 210, 90, 1, 249, 3, 210, 90, 1,
- 172, 210, 90, 1, 198, 118, 210, 90, 1, 198, 108, 210, 90, 1, 235, 17,
- 210, 90, 1, 194, 169, 210, 90, 1, 192, 71, 210, 90, 1, 192, 112, 210, 90,
- 1, 2, 64, 210, 90, 1, 168, 210, 90, 1, 167, 210, 90, 1, 177, 210, 90, 1,
- 204, 64, 210, 90, 1, 188, 210, 90, 1, 144, 210, 90, 1, 64, 210, 90, 1,
- 70, 210, 90, 1, 68, 210, 90, 1, 71, 210, 90, 1, 74, 210, 90, 1, 208, 239,
- 210, 90, 1, 193, 209, 210, 90, 1, 233, 97, 210, 90, 1, 231, 120, 210, 90,
- 1, 234, 171, 210, 90, 201, 164, 1, 194, 169, 210, 90, 201, 164, 1, 168,
- 210, 90, 1, 198, 83, 210, 90, 1, 198, 71, 210, 90, 1, 237, 161, 210, 90,
- 1, 213, 178, 210, 90, 1, 250, 249, 168, 210, 90, 1, 195, 247, 204, 64,
- 210, 90, 1, 195, 248, 144, 210, 90, 1, 250, 44, 233, 97, 210, 90, 201,
- 164, 1, 167, 210, 90, 201, 110, 1, 167, 210, 90, 1, 246, 234, 210, 90,
- 203, 74, 229, 246, 77, 210, 90, 55, 229, 246, 77, 210, 90, 122, 204, 56,
- 210, 90, 122, 55, 204, 56, 206, 9, 3, 250, 168, 206, 9, 3, 196, 6, 206,
- 9, 1, 64, 206, 9, 1, 252, 33, 206, 9, 1, 70, 206, 9, 1, 223, 224, 206, 9,
- 1, 68, 206, 9, 1, 196, 251, 206, 9, 1, 118, 150, 206, 9, 1, 118, 207, 4,
- 206, 9, 1, 118, 165, 206, 9, 1, 118, 219, 138, 206, 9, 1, 71, 206, 9, 1,
- 234, 171, 206, 9, 1, 251, 63, 206, 9, 1, 74, 206, 9, 1, 211, 194, 206, 9,
- 1, 250, 8, 206, 9, 1, 160, 206, 9, 1, 221, 250, 206, 9, 1, 231, 233, 206,
- 9, 1, 231, 84, 206, 9, 1, 214, 165, 206, 9, 1, 247, 19, 206, 9, 1, 246,
- 117, 206, 9, 1, 223, 62, 206, 9, 1, 223, 28, 206, 9, 1, 212, 201, 206, 9,
- 1, 198, 83, 206, 9, 1, 198, 71, 206, 9, 1, 237, 161, 206, 9, 1, 237, 145,
- 206, 9, 1, 213, 178, 206, 9, 1, 189, 206, 9, 1, 199, 240, 206, 9, 1, 238,
- 0, 206, 9, 1, 237, 40, 206, 9, 1, 181, 206, 9, 1, 166, 206, 9, 1, 210,
- 94, 206, 9, 1, 249, 3, 206, 9, 1, 248, 54, 206, 9, 1, 172, 206, 9, 1,
- 168, 206, 9, 1, 167, 206, 9, 1, 177, 206, 9, 1, 196, 157, 206, 9, 1, 204,
- 64, 206, 9, 1, 202, 92, 206, 9, 1, 188, 206, 9, 1, 144, 206, 9, 1, 219,
- 137, 206, 9, 116, 3, 230, 97, 206, 9, 18, 3, 252, 33, 206, 9, 18, 3, 70,
- 206, 9, 18, 3, 223, 224, 206, 9, 18, 3, 68, 206, 9, 18, 3, 196, 251, 206,
- 9, 18, 3, 118, 150, 206, 9, 18, 3, 118, 207, 4, 206, 9, 18, 3, 118, 165,
- 206, 9, 18, 3, 118, 219, 138, 206, 9, 18, 3, 71, 206, 9, 18, 3, 234, 171,
- 206, 9, 18, 3, 251, 63, 206, 9, 18, 3, 74, 206, 9, 18, 3, 211, 194, 206,
- 9, 18, 3, 250, 8, 206, 9, 3, 196, 11, 206, 9, 3, 246, 234, 206, 9, 237,
- 208, 206, 9, 55, 237, 208, 206, 9, 17, 192, 76, 206, 9, 17, 101, 206, 9,
- 17, 104, 206, 9, 17, 133, 206, 9, 17, 134, 206, 9, 17, 151, 206, 9, 17,
- 170, 206, 9, 17, 179, 206, 9, 17, 174, 206, 9, 17, 182, 38, 107, 17, 192,
- 76, 38, 107, 17, 101, 38, 107, 17, 104, 38, 107, 17, 133, 38, 107, 17,
- 134, 38, 107, 17, 151, 38, 107, 17, 170, 38, 107, 17, 179, 38, 107, 17,
- 174, 38, 107, 17, 182, 38, 107, 1, 64, 38, 107, 1, 68, 38, 107, 1, 160,
- 38, 107, 1, 181, 38, 107, 1, 166, 38, 107, 1, 167, 38, 107, 1, 196, 39,
- 38, 107, 3, 249, 246, 107, 3, 202, 159, 246, 234, 107, 3, 246, 235, 196,
- 11, 107, 3, 55, 246, 235, 196, 11, 107, 3, 246, 235, 104, 107, 3, 246,
- 235, 133, 107, 3, 246, 235, 249, 246, 107, 3, 209, 20, 107, 231, 197,
- 232, 247, 107, 246, 211, 107, 229, 237, 107, 3, 203, 113, 107, 223, 54,
- 211, 219, 107, 1, 249, 236, 107, 18, 3, 249, 236, 222, 63, 219, 210, 17,
- 192, 76, 222, 63, 219, 210, 17, 101, 222, 63, 219, 210, 17, 104, 222, 63,
- 219, 210, 17, 133, 222, 63, 219, 210, 17, 134, 222, 63, 219, 210, 17,
- 151, 222, 63, 219, 210, 17, 170, 222, 63, 219, 210, 17, 179, 222, 63,
- 219, 210, 17, 174, 222, 63, 219, 210, 17, 182, 222, 63, 219, 210, 1, 160,
- 222, 63, 219, 210, 1, 221, 250, 222, 63, 219, 210, 1, 231, 233, 222, 63,
- 219, 210, 1, 214, 165, 222, 63, 219, 210, 1, 188, 222, 63, 219, 210, 1,
- 204, 64, 222, 63, 219, 210, 1, 192, 112, 222, 63, 219, 210, 1, 212, 201,
- 222, 63, 219, 210, 1, 189, 222, 63, 219, 210, 1, 228, 185, 222, 63, 219,
- 210, 1, 181, 222, 63, 219, 210, 1, 166, 222, 63, 219, 210, 1, 210, 94,
- 222, 63, 219, 210, 1, 172, 222, 63, 219, 210, 1, 238, 0, 222, 63, 219,
- 210, 1, 249, 3, 222, 63, 219, 210, 1, 167, 222, 63, 219, 210, 1, 168,
- 222, 63, 219, 210, 1, 177, 222, 63, 219, 210, 1, 194, 169, 222, 63, 219,
- 210, 1, 199, 240, 222, 63, 219, 210, 1, 144, 222, 63, 219, 210, 1, 196,
- 157, 222, 63, 219, 210, 1, 247, 19, 222, 63, 219, 210, 1, 64, 222, 63,
- 219, 210, 1, 212, 0, 222, 63, 219, 210, 1, 70, 222, 63, 219, 210, 1, 211,
- 194, 222, 63, 219, 210, 18, 197, 104, 222, 63, 219, 210, 18, 71, 222, 63,
- 219, 210, 18, 68, 222, 63, 219, 210, 18, 234, 171, 222, 63, 219, 210, 18,
- 74, 222, 63, 219, 210, 158, 209, 215, 222, 63, 219, 210, 158, 246, 250,
- 222, 63, 219, 210, 158, 246, 251, 209, 215, 222, 63, 219, 210, 3, 238,
- 114, 222, 63, 219, 210, 3, 203, 133, 207, 217, 1, 160, 207, 217, 1, 231,
- 233, 207, 217, 1, 214, 165, 207, 217, 1, 189, 207, 217, 1, 238, 0, 207,
- 217, 1, 181, 207, 217, 1, 166, 207, 217, 1, 249, 3, 207, 217, 1, 172,
- 207, 217, 1, 247, 19, 207, 217, 1, 223, 62, 207, 217, 1, 212, 201, 207,
- 217, 1, 188, 207, 217, 1, 167, 207, 217, 1, 177, 207, 217, 1, 168, 207,
- 217, 1, 194, 169, 207, 217, 1, 144, 207, 217, 1, 217, 82, 207, 217, 1,
- 214, 144, 207, 217, 1, 214, 255, 207, 217, 1, 212, 166, 207, 217, 1, 64,
- 207, 217, 18, 3, 70, 207, 217, 18, 3, 68, 207, 217, 18, 3, 71, 207, 217,
- 18, 3, 251, 63, 207, 217, 18, 3, 74, 207, 217, 18, 3, 250, 8, 207, 217,
- 18, 3, 233, 230, 207, 217, 18, 3, 234, 199, 207, 217, 116, 3, 214, 167,
- 207, 217, 116, 3, 215, 151, 207, 217, 116, 3, 150, 207, 217, 116, 3, 230,
- 124, 207, 217, 196, 11, 207, 217, 205, 209, 77, 30, 143, 199, 99, 30,
- 143, 199, 98, 30, 143, 199, 96, 30, 143, 199, 101, 30, 143, 207, 128, 30,
- 143, 207, 112, 30, 143, 207, 107, 30, 143, 207, 109, 30, 143, 207, 125,
- 30, 143, 207, 118, 30, 143, 207, 111, 30, 143, 207, 130, 30, 143, 207,
- 113, 30, 143, 207, 132, 30, 143, 207, 129, 30, 143, 216, 149, 30, 143,
- 216, 140, 30, 143, 216, 143, 30, 143, 210, 21, 30, 143, 210, 32, 30, 143,
- 210, 33, 30, 143, 202, 76, 30, 143, 223, 237, 30, 143, 223, 244, 30, 143,
- 202, 87, 30, 143, 202, 74, 30, 143, 210, 74, 30, 143, 229, 157, 30, 143,
- 202, 71, 223, 47, 3, 211, 3, 223, 47, 3, 246, 155, 223, 47, 3, 220, 50,
- 223, 47, 3, 194, 57, 223, 47, 1, 64, 223, 47, 1, 228, 97, 222, 67, 223,
- 47, 1, 70, 223, 47, 1, 223, 224, 223, 47, 1, 68, 223, 47, 1, 211, 78,
- 246, 125, 223, 47, 1, 214, 166, 220, 7, 223, 47, 1, 214, 166, 220, 8,
- 208, 23, 223, 47, 1, 71, 223, 47, 1, 251, 63, 223, 47, 1, 74, 223, 47, 1,
- 160, 223, 47, 1, 222, 174, 206, 22, 223, 47, 1, 222, 174, 215, 195, 223,
- 47, 1, 231, 233, 223, 47, 1, 231, 234, 215, 195, 223, 47, 1, 214, 165,
- 223, 47, 1, 247, 19, 223, 47, 1, 247, 20, 215, 195, 223, 47, 1, 223, 62,
- 223, 47, 1, 212, 202, 215, 195, 223, 47, 1, 223, 63, 217, 184, 223, 47,
- 1, 212, 201, 223, 47, 1, 198, 83, 223, 47, 1, 198, 84, 217, 184, 223, 47,
- 1, 237, 161, 223, 47, 1, 237, 162, 217, 184, 223, 47, 1, 215, 97, 215,
- 195, 223, 47, 1, 189, 223, 47, 1, 200, 181, 215, 195, 223, 47, 1, 238, 0,
- 223, 47, 1, 238, 1, 217, 184, 223, 47, 1, 181, 223, 47, 1, 166, 223, 47,
- 1, 211, 78, 215, 195, 223, 47, 1, 249, 3, 223, 47, 1, 249, 4, 215, 195,
- 223, 47, 1, 172, 223, 47, 1, 168, 223, 47, 1, 167, 223, 47, 1, 208, 76,
- 251, 73, 223, 47, 1, 177, 223, 47, 1, 194, 169, 223, 47, 1, 206, 101,
- 215, 195, 223, 47, 1, 206, 101, 217, 184, 223, 47, 1, 188, 223, 47, 1,
- 144, 223, 47, 3, 246, 156, 200, 35, 223, 47, 18, 3, 200, 108, 223, 47,
- 18, 3, 199, 23, 223, 47, 18, 3, 193, 238, 223, 47, 18, 3, 193, 239, 217,
- 16, 223, 47, 18, 3, 201, 133, 223, 47, 18, 3, 201, 134, 217, 4, 223, 47,
- 18, 3, 200, 133, 223, 47, 18, 3, 236, 202, 215, 194, 223, 47, 18, 3, 210,
- 136, 223, 47, 116, 3, 222, 23, 223, 47, 116, 3, 210, 151, 223, 47, 116,
- 3, 247, 4, 223, 47, 211, 16, 223, 47, 46, 207, 190, 223, 47, 51, 207,
- 190, 223, 47, 211, 66, 250, 216, 223, 47, 211, 66, 217, 205, 223, 47,
- 211, 66, 219, 23, 223, 47, 211, 66, 194, 50, 223, 47, 211, 66, 211, 17,
- 223, 47, 211, 66, 219, 167, 223, 47, 211, 66, 219, 16, 223, 47, 211, 66,
- 251, 119, 223, 47, 211, 66, 251, 120, 251, 119, 223, 47, 211, 66, 209,
- 243, 223, 47, 163, 211, 66, 209, 243, 223, 47, 211, 12, 223, 47, 17, 192,
- 76, 223, 47, 17, 101, 223, 47, 17, 104, 223, 47, 17, 133, 223, 47, 17,
- 134, 223, 47, 17, 151, 223, 47, 17, 170, 223, 47, 17, 179, 223, 47, 17,
- 174, 223, 47, 17, 182, 223, 47, 211, 66, 199, 65, 198, 24, 223, 47, 211,
- 66, 223, 92, 79, 1, 204, 38, 231, 84, 79, 1, 204, 38, 246, 117, 79, 1,
- 204, 38, 223, 28, 79, 1, 204, 38, 213, 178, 79, 1, 204, 38, 248, 54, 79,
- 3, 204, 38, 206, 6, 79, 73, 1, 204, 38, 207, 235, 79, 1, 53, 220, 154,
- 212, 201, 79, 1, 53, 220, 154, 233, 97, 79, 1, 53, 220, 154, 231, 233,
- 79, 1, 53, 220, 154, 231, 84, 79, 1, 53, 220, 154, 223, 62, 79, 1, 53,
- 220, 154, 223, 28, 79, 1, 53, 220, 154, 237, 161, 79, 1, 53, 220, 154,
- 237, 145, 79, 1, 53, 220, 154, 213, 178, 79, 53, 220, 154, 17, 192, 76,
- 79, 53, 220, 154, 17, 101, 79, 53, 220, 154, 17, 104, 79, 53, 220, 154,
- 17, 133, 79, 53, 220, 154, 17, 134, 79, 53, 220, 154, 17, 151, 79, 53,
- 220, 154, 17, 170, 79, 53, 220, 154, 17, 179, 79, 53, 220, 154, 17, 174,
- 79, 53, 220, 154, 17, 182, 79, 1, 53, 220, 154, 219, 137, 79, 1, 53, 220,
- 154, 238, 0, 79, 1, 53, 220, 154, 237, 40, 79, 1, 53, 220, 154, 249, 3,
- 79, 1, 53, 220, 154, 248, 54, 246, 110, 1, 64, 246, 110, 1, 70, 246, 110,
- 1, 68, 246, 110, 1, 71, 246, 110, 1, 251, 63, 246, 110, 1, 74, 246, 110,
- 1, 160, 246, 110, 1, 221, 250, 246, 110, 1, 231, 233, 246, 110, 1, 231,
- 84, 246, 110, 1, 214, 74, 246, 110, 1, 214, 165, 246, 110, 1, 246, 117,
- 246, 110, 1, 242, 218, 246, 110, 1, 223, 62, 246, 110, 1, 223, 28, 246,
- 110, 1, 214, 62, 246, 110, 1, 214, 65, 246, 110, 1, 214, 63, 246, 110, 1,
- 189, 246, 110, 1, 199, 240, 246, 110, 1, 238, 0, 246, 110, 1, 237, 40,
- 246, 110, 1, 212, 244, 246, 110, 1, 181, 246, 110, 1, 237, 161, 246, 110,
- 1, 166, 246, 110, 1, 209, 134, 246, 110, 1, 210, 94, 246, 110, 1, 249, 3,
- 246, 110, 1, 248, 54, 246, 110, 1, 215, 229, 246, 110, 1, 172, 246, 110,
- 1, 248, 159, 246, 110, 1, 168, 246, 110, 1, 167, 246, 110, 1, 177, 246,
- 110, 1, 196, 157, 246, 110, 1, 202, 92, 246, 110, 1, 188, 246, 110, 1,
- 144, 246, 110, 18, 3, 252, 33, 246, 110, 18, 3, 70, 246, 110, 18, 3, 223,
- 224, 246, 110, 18, 3, 234, 150, 246, 110, 18, 3, 68, 246, 110, 18, 3,
- 212, 0, 246, 110, 18, 3, 74, 246, 110, 18, 3, 251, 63, 246, 110, 18, 3,
- 250, 8, 246, 110, 18, 3, 197, 104, 246, 110, 116, 3, 168, 246, 110, 116,
- 3, 167, 246, 110, 116, 3, 177, 246, 110, 116, 3, 194, 169, 246, 110, 1,
- 52, 222, 184, 246, 110, 1, 52, 232, 44, 246, 110, 1, 52, 214, 167, 246,
- 110, 116, 3, 52, 214, 167, 246, 110, 1, 52, 246, 119, 246, 110, 1, 52,
- 200, 228, 246, 110, 1, 52, 215, 151, 246, 110, 1, 52, 211, 93, 246, 110,
- 1, 52, 193, 148, 246, 110, 1, 52, 150, 246, 110, 1, 52, 165, 246, 110, 1,
- 52, 202, 95, 246, 110, 116, 3, 52, 218, 236, 246, 110, 116, 3, 52, 230,
- 124, 246, 110, 17, 192, 76, 246, 110, 17, 101, 246, 110, 17, 104, 246,
- 110, 17, 133, 246, 110, 17, 134, 246, 110, 17, 151, 246, 110, 17, 170,
- 246, 110, 17, 179, 246, 110, 17, 174, 246, 110, 17, 182, 246, 110, 209,
- 38, 202, 132, 246, 110, 209, 38, 237, 208, 246, 110, 209, 38, 55, 237,
- 208, 246, 110, 209, 38, 198, 170, 237, 208, 79, 1, 221, 242, 231, 233,
- 79, 1, 221, 242, 247, 19, 79, 1, 221, 242, 246, 117, 79, 1, 221, 242,
- 223, 62, 79, 1, 221, 242, 223, 28, 79, 1, 221, 242, 212, 201, 79, 1, 221,
- 242, 198, 83, 79, 1, 221, 242, 198, 71, 79, 1, 221, 242, 237, 161, 79, 1,
- 221, 242, 237, 145, 79, 1, 221, 242, 237, 40, 79, 1, 221, 242, 181, 79,
- 1, 221, 242, 188, 79, 1, 221, 242, 144, 79, 1, 221, 242, 229, 187, 79, 1,
- 221, 242, 233, 97, 79, 73, 1, 221, 242, 207, 235, 79, 1, 221, 242, 193,
- 209, 79, 1, 221, 242, 192, 112, 79, 1, 221, 242, 167, 79, 219, 92, 221,
- 242, 212, 23, 79, 219, 92, 221, 242, 208, 190, 79, 219, 92, 221, 242,
- 229, 98, 79, 16, 251, 49, 233, 203, 79, 16, 251, 49, 101, 79, 16, 251,
- 49, 104, 79, 1, 251, 49, 167, 79, 3, 210, 255, 222, 96, 199, 18, 79, 3,
- 53, 220, 154, 199, 16, 79, 3, 53, 220, 154, 199, 13, 79, 1, 203, 141,
- 211, 46, 246, 117, 79, 1, 203, 141, 211, 46, 204, 64, 53, 196, 29, 1,
- 132, 221, 113, 53, 196, 29, 1, 139, 221, 113, 53, 196, 29, 1, 132, 221,
- 220, 53, 196, 29, 1, 139, 221, 220, 53, 196, 29, 1, 132, 221, 229, 53,
- 196, 29, 1, 139, 221, 229, 53, 196, 29, 1, 132, 230, 254, 53, 196, 29, 1,
- 139, 230, 254, 53, 196, 29, 1, 132, 214, 90, 53, 196, 29, 1, 139, 214,
- 90, 53, 196, 29, 1, 132, 242, 63, 53, 196, 29, 1, 139, 242, 63, 53, 196,
- 29, 1, 132, 242, 188, 53, 196, 29, 1, 139, 242, 188, 53, 196, 29, 1, 132,
- 202, 212, 53, 196, 29, 1, 139, 202, 212, 53, 196, 29, 1, 132, 212, 165,
- 53, 196, 29, 1, 139, 212, 165, 53, 196, 29, 1, 132, 236, 146, 53, 196,
- 29, 1, 139, 236, 146, 53, 196, 29, 1, 132, 155, 53, 196, 29, 1, 139, 155,
- 53, 196, 29, 1, 132, 199, 176, 53, 196, 29, 1, 139, 199, 176, 53, 196,
- 29, 1, 132, 213, 142, 53, 196, 29, 1, 139, 213, 142, 53, 196, 29, 1, 132,
- 247, 220, 53, 196, 29, 1, 139, 247, 220, 53, 196, 29, 1, 132, 209, 198,
- 53, 196, 29, 1, 139, 209, 198, 53, 196, 29, 1, 132, 210, 65, 53, 196, 29,
- 1, 139, 210, 65, 53, 196, 29, 1, 132, 232, 164, 53, 196, 29, 1, 139, 232,
- 164, 53, 196, 29, 1, 132, 216, 91, 53, 196, 29, 1, 139, 216, 91, 53, 196,
- 29, 1, 132, 193, 1, 53, 196, 29, 1, 139, 193, 1, 53, 196, 29, 1, 132,
- 207, 55, 53, 196, 29, 1, 139, 207, 55, 53, 196, 29, 1, 132, 219, 107, 53,
- 196, 29, 1, 139, 219, 107, 53, 196, 29, 1, 132, 195, 252, 53, 196, 29, 1,
- 139, 195, 252, 53, 196, 29, 1, 132, 229, 43, 53, 196, 29, 1, 139, 229,
- 43, 53, 196, 29, 1, 132, 74, 53, 196, 29, 1, 139, 74, 53, 196, 29, 217,
- 181, 222, 117, 53, 196, 29, 18, 252, 33, 53, 196, 29, 18, 70, 53, 196,
- 29, 18, 197, 104, 53, 196, 29, 18, 68, 53, 196, 29, 18, 71, 53, 196, 29,
- 18, 74, 53, 196, 29, 217, 181, 221, 223, 53, 196, 29, 18, 228, 58, 53,
- 196, 29, 18, 197, 103, 53, 196, 29, 18, 197, 119, 53, 196, 29, 18, 250,
- 6, 53, 196, 29, 18, 249, 236, 53, 196, 29, 18, 250, 224, 53, 196, 29, 18,
- 250, 241, 53, 196, 29, 158, 217, 181, 234, 131, 53, 196, 29, 158, 217,
- 181, 212, 243, 53, 196, 29, 158, 217, 181, 199, 176, 53, 196, 29, 158,
- 217, 181, 202, 185, 53, 196, 29, 16, 221, 91, 53, 196, 29, 16, 212, 243,
- 53, 196, 29, 16, 206, 50, 53, 196, 29, 16, 229, 44, 229, 30, 53, 196, 29,
- 16, 221, 102, 221, 101, 217, 23, 217, 89, 1, 71, 217, 23, 217, 89, 1, 74,
- 217, 23, 217, 89, 1, 246, 117, 217, 23, 217, 89, 1, 212, 201, 217, 23,
- 217, 89, 1, 198, 83, 217, 23, 217, 89, 1, 198, 71, 217, 23, 217, 89, 1,
- 237, 161, 217, 23, 217, 89, 1, 237, 145, 217, 23, 217, 89, 1, 213, 178,
- 217, 23, 217, 89, 1, 204, 64, 217, 23, 217, 89, 1, 202, 92, 217, 23, 217,
- 89, 18, 3, 223, 224, 217, 23, 217, 89, 18, 3, 196, 251, 217, 23, 217, 89,
- 18, 3, 251, 253, 217, 23, 217, 89, 18, 3, 250, 8, 217, 23, 217, 89, 18,
- 3, 251, 245, 217, 23, 217, 89, 242, 234, 217, 23, 217, 89, 251, 69, 221,
- 211, 217, 23, 217, 89, 250, 197, 217, 23, 217, 89, 5, 207, 196, 77, 217,
- 23, 217, 89, 194, 11, 207, 196, 77, 217, 23, 217, 89, 18, 3, 196, 6, 217,
- 23, 217, 89, 196, 11, 36, 5, 198, 64, 36, 5, 198, 67, 36, 5, 198, 70, 36,
- 5, 198, 68, 36, 5, 198, 69, 36, 5, 198, 66, 36, 5, 237, 139, 36, 5, 237,
- 141, 36, 5, 237, 144, 36, 5, 237, 142, 36, 5, 237, 143, 36, 5, 237, 140,
- 36, 5, 235, 4, 36, 5, 235, 8, 36, 5, 235, 16, 36, 5, 235, 13, 36, 5, 235,
- 14, 36, 5, 235, 5, 36, 5, 246, 172, 36, 5, 246, 166, 36, 5, 246, 168, 36,
- 5, 246, 171, 36, 5, 246, 169, 36, 5, 246, 170, 36, 5, 246, 167, 36, 5,
- 248, 159, 36, 5, 248, 138, 36, 5, 248, 150, 36, 5, 248, 158, 36, 5, 248,
- 153, 36, 5, 248, 154, 36, 5, 248, 142, 8, 2, 1, 248, 188, 250, 252, 8, 2,
- 1, 41, 207, 166, 8, 2, 1, 247, 244, 71, 8, 2, 1, 248, 188, 71, 8, 2, 1,
- 234, 253, 4, 232, 177, 8, 2, 1, 219, 249, 233, 163, 8, 2, 1, 27, 232, 45,
- 4, 238, 178, 8, 2, 1, 220, 202, 4, 223, 121, 220, 49, 206, 158, 8, 2, 1,
- 220, 202, 4, 55, 85, 199, 90, 8, 2, 1, 220, 202, 4, 85, 207, 81, 8, 2, 1,
- 218, 237, 4, 238, 178, 8, 2, 1, 215, 152, 4, 238, 178, 8, 2, 1, 234, 74,
- 4, 238, 178, 8, 2, 1, 247, 244, 74, 8, 2, 1, 247, 244, 185, 4, 111, 8, 2,
- 1, 211, 184, 185, 4, 111, 8, 2, 1, 223, 121, 212, 0, 8, 2, 1, 163, 212,
- 1, 4, 111, 8, 2, 1, 163, 212, 1, 4, 229, 5, 111, 8, 2, 1, 163, 185, 211,
- 179, 8, 2, 1, 163, 185, 211, 180, 4, 111, 8, 2, 1, 201, 243, 150, 8, 1,
- 2, 6, 208, 112, 4, 51, 220, 16, 8, 2, 1, 208, 112, 194, 39, 230, 40, 8,
- 2, 1, 55, 150, 8, 2, 1, 208, 112, 4, 238, 178, 8, 2, 1, 55, 208, 112, 4,
- 238, 178, 8, 2, 1, 27, 150, 8, 2, 1, 27, 208, 112, 4, 207, 81, 8, 2, 1,
- 248, 178, 233, 255, 8, 2, 1, 124, 4, 203, 195, 51, 220, 16, 8, 2, 1, 124,
- 248, 194, 4, 203, 195, 51, 220, 16, 8, 2, 1, 197, 95, 8, 2, 1, 163, 197,
- 95, 8, 2, 1, 124, 4, 46, 128, 8, 2, 1, 242, 215, 8, 2, 1, 242, 216, 4,
- 132, 51, 207, 81, 8, 2, 1, 242, 216, 4, 132, 46, 204, 160, 8, 2, 1, 193,
- 224, 4, 132, 51, 207, 81, 8, 2, 1, 193, 224, 4, 184, 46, 220, 16, 8, 2,
- 1, 193, 224, 4, 184, 46, 220, 17, 26, 132, 51, 207, 81, 8, 2, 1, 193,
- 224, 4, 184, 46, 220, 17, 4, 204, 160, 8, 2, 1, 193, 149, 4, 203, 195,
- 51, 220, 16, 73, 247, 151, 4, 223, 121, 247, 150, 73, 1, 2, 229, 206, 73,
- 1, 2, 220, 202, 4, 223, 121, 220, 49, 206, 158, 73, 1, 2, 220, 202, 4,
- 85, 199, 90, 73, 1, 2, 124, 4, 46, 128, 8, 2, 1, 206, 68, 193, 84, 8, 2,
- 1, 223, 109, 71, 8, 2, 1, 211, 184, 212, 0, 8, 2, 1, 197, 46, 8, 2, 1,
- 223, 121, 250, 252, 33, 1, 2, 6, 211, 216, 8, 2, 1, 235, 19, 236, 231, 4,
- 207, 174, 128, 8, 2, 1, 198, 120, 236, 231, 4, 207, 174, 128, 8, 2, 1,
- 163, 208, 112, 4, 85, 199, 90, 73, 1, 2, 163, 194, 202, 73, 1, 46, 200,
- 159, 73, 1, 51, 200, 159, 99, 2, 1, 64, 99, 2, 1, 71, 99, 2, 1, 70, 99,
- 2, 1, 74, 99, 2, 1, 68, 99, 2, 1, 196, 236, 99, 2, 1, 231, 233, 99, 2, 1,
- 160, 99, 2, 1, 231, 158, 99, 2, 1, 231, 46, 99, 2, 1, 230, 254, 99, 2, 1,
- 230, 186, 99, 2, 1, 230, 146, 99, 2, 1, 144, 99, 2, 1, 229, 255, 99, 2,
- 1, 229, 178, 99, 2, 1, 229, 43, 99, 2, 1, 228, 181, 99, 2, 1, 228, 148,
- 99, 2, 1, 177, 99, 2, 1, 220, 42, 99, 2, 1, 219, 209, 99, 2, 1, 219, 107,
- 99, 2, 1, 219, 36, 99, 2, 1, 219, 4, 99, 2, 1, 172, 99, 2, 1, 217, 48,
- 99, 2, 1, 216, 175, 99, 2, 1, 216, 91, 99, 2, 1, 215, 241, 99, 2, 1, 181,
- 99, 2, 1, 229, 67, 99, 2, 1, 215, 71, 99, 2, 1, 214, 214, 99, 2, 1, 214,
- 60, 99, 2, 1, 213, 142, 99, 2, 1, 213, 22, 99, 2, 1, 212, 212, 99, 2, 1,
- 208, 176, 99, 2, 1, 208, 162, 99, 2, 1, 208, 155, 99, 2, 1, 208, 145, 99,
- 2, 1, 208, 134, 99, 2, 1, 208, 132, 99, 2, 1, 188, 99, 2, 1, 206, 158,
- 99, 2, 1, 205, 223, 99, 2, 1, 203, 125, 99, 2, 1, 202, 212, 99, 2, 1,
- 201, 184, 99, 2, 1, 201, 84, 99, 2, 1, 238, 0, 99, 2, 1, 189, 99, 2, 1,
- 237, 116, 99, 2, 1, 200, 79, 99, 2, 1, 237, 16, 99, 2, 1, 199, 128, 99,
- 2, 1, 236, 146, 99, 2, 1, 235, 62, 99, 2, 1, 235, 31, 99, 2, 1, 236, 158,
- 99, 2, 1, 199, 53, 99, 2, 1, 199, 52, 99, 2, 1, 199, 41, 99, 2, 1, 199,
- 40, 99, 2, 1, 199, 39, 99, 2, 1, 199, 38, 99, 2, 1, 198, 118, 99, 2, 1,
- 198, 112, 99, 2, 1, 198, 97, 99, 2, 1, 198, 95, 99, 2, 1, 198, 91, 99, 2,
- 1, 198, 90, 99, 2, 1, 194, 169, 99, 2, 1, 194, 111, 99, 2, 1, 194, 72,
- 99, 2, 1, 194, 36, 99, 2, 1, 193, 244, 99, 2, 1, 193, 231, 99, 2, 1, 168,
- 217, 23, 217, 89, 1, 221, 98, 217, 23, 217, 89, 1, 206, 50, 217, 23, 217,
- 89, 1, 220, 155, 217, 23, 217, 89, 1, 216, 102, 217, 23, 217, 89, 1, 166,
- 217, 23, 217, 89, 1, 181, 217, 23, 217, 89, 1, 242, 207, 217, 23, 217,
- 89, 1, 199, 92, 217, 23, 217, 89, 1, 221, 214, 217, 23, 217, 89, 1, 214,
- 80, 217, 23, 217, 89, 1, 199, 167, 217, 23, 217, 89, 1, 194, 157, 217,
- 23, 217, 89, 1, 193, 95, 217, 23, 217, 89, 1, 228, 169, 217, 23, 217, 89,
- 1, 197, 77, 217, 23, 217, 89, 1, 70, 217, 23, 217, 89, 1, 210, 88, 217,
- 23, 217, 89, 1, 250, 19, 217, 23, 217, 89, 1, 230, 246, 217, 23, 217, 89,
- 1, 223, 26, 217, 23, 217, 89, 1, 208, 48, 217, 23, 217, 89, 1, 249, 3,
- 217, 23, 217, 89, 1, 223, 10, 217, 23, 217, 89, 1, 236, 229, 217, 23,
- 217, 89, 1, 231, 53, 217, 23, 217, 89, 1, 237, 18, 217, 23, 217, 89, 1,
- 248, 51, 217, 23, 217, 89, 1, 221, 99, 219, 74, 217, 23, 217, 89, 1, 220,
- 156, 219, 74, 217, 23, 217, 89, 1, 216, 103, 219, 74, 217, 23, 217, 89,
- 1, 211, 78, 219, 74, 217, 23, 217, 89, 1, 215, 97, 219, 74, 217, 23, 217,
- 89, 1, 199, 93, 219, 74, 217, 23, 217, 89, 1, 214, 81, 219, 74, 217, 23,
- 217, 89, 1, 228, 97, 219, 74, 217, 23, 217, 89, 18, 3, 211, 209, 217, 23,
- 217, 89, 18, 3, 223, 188, 217, 23, 217, 89, 18, 3, 250, 222, 217, 23,
- 217, 89, 18, 3, 193, 58, 217, 23, 217, 89, 18, 3, 202, 175, 217, 23, 217,
- 89, 18, 3, 197, 74, 217, 23, 217, 89, 18, 3, 242, 232, 217, 23, 217, 89,
- 18, 3, 212, 227, 217, 23, 217, 89, 242, 233, 217, 23, 217, 89, 219, 20,
- 223, 71, 217, 23, 217, 89, 250, 136, 223, 71, 217, 23, 217, 89, 17, 192,
- 76, 217, 23, 217, 89, 17, 101, 217, 23, 217, 89, 17, 104, 217, 23, 217,
- 89, 17, 133, 217, 23, 217, 89, 17, 134, 217, 23, 217, 89, 17, 151, 217,
- 23, 217, 89, 17, 170, 217, 23, 217, 89, 17, 179, 217, 23, 217, 89, 17,
- 174, 217, 23, 217, 89, 17, 182, 30, 222, 206, 212, 103, 30, 222, 206,
- 212, 108, 30, 222, 206, 192, 250, 30, 222, 206, 192, 249, 30, 222, 206,
- 192, 248, 30, 222, 206, 197, 169, 30, 222, 206, 197, 173, 30, 222, 206,
- 192, 208, 30, 222, 206, 192, 204, 30, 222, 206, 233, 229, 30, 222, 206,
- 233, 227, 30, 222, 206, 233, 228, 30, 222, 206, 233, 225, 30, 222, 206,
- 228, 83, 30, 222, 206, 228, 82, 30, 222, 206, 228, 80, 30, 222, 206, 228,
- 81, 30, 222, 206, 228, 86, 30, 222, 206, 228, 79, 30, 222, 206, 228, 78,
- 30, 222, 206, 228, 88, 30, 222, 206, 250, 122, 30, 222, 206, 250, 121,
- 30, 123, 214, 38, 30, 123, 214, 44, 30, 123, 202, 73, 30, 123, 202, 72,
- 30, 123, 199, 98, 30, 123, 199, 96, 30, 123, 199, 95, 30, 123, 199, 101,
- 30, 123, 199, 102, 30, 123, 199, 94, 30, 123, 207, 112, 30, 123, 207,
- 127, 30, 123, 202, 79, 30, 123, 207, 124, 30, 123, 207, 114, 30, 123,
- 207, 116, 30, 123, 207, 103, 30, 123, 207, 104, 30, 123, 222, 102, 30,
- 123, 216, 148, 30, 123, 216, 142, 30, 123, 202, 83, 30, 123, 216, 145,
- 30, 123, 216, 151, 30, 123, 210, 17, 30, 123, 210, 26, 30, 123, 210, 30,
- 30, 123, 202, 81, 30, 123, 210, 20, 30, 123, 210, 34, 30, 123, 210, 35,
- 30, 123, 203, 56, 30, 123, 203, 59, 30, 123, 202, 77, 30, 123, 202, 75,
- 30, 123, 203, 54, 30, 123, 203, 62, 30, 123, 203, 63, 30, 123, 203, 48,
- 30, 123, 203, 61, 30, 123, 211, 6, 30, 123, 211, 7, 30, 123, 193, 42, 30,
- 123, 193, 45, 30, 123, 242, 142, 30, 123, 242, 141, 30, 123, 202, 88, 30,
- 123, 210, 72, 30, 123, 210, 71, 12, 15, 225, 215, 12, 15, 225, 214, 12,
- 15, 225, 213, 12, 15, 225, 212, 12, 15, 225, 211, 12, 15, 225, 210, 12,
- 15, 225, 209, 12, 15, 225, 208, 12, 15, 225, 207, 12, 15, 225, 206, 12,
- 15, 225, 205, 12, 15, 225, 204, 12, 15, 225, 203, 12, 15, 225, 202, 12,
- 15, 225, 201, 12, 15, 225, 200, 12, 15, 225, 199, 12, 15, 225, 198, 12,
- 15, 225, 197, 12, 15, 225, 196, 12, 15, 225, 195, 12, 15, 225, 194, 12,
- 15, 225, 193, 12, 15, 225, 192, 12, 15, 225, 191, 12, 15, 225, 190, 12,
- 15, 225, 189, 12, 15, 225, 188, 12, 15, 225, 187, 12, 15, 225, 186, 12,
- 15, 225, 185, 12, 15, 225, 184, 12, 15, 225, 183, 12, 15, 225, 182, 12,
- 15, 225, 181, 12, 15, 225, 180, 12, 15, 225, 179, 12, 15, 225, 178, 12,
- 15, 225, 177, 12, 15, 225, 176, 12, 15, 225, 175, 12, 15, 225, 174, 12,
- 15, 225, 173, 12, 15, 225, 172, 12, 15, 225, 171, 12, 15, 225, 170, 12,
- 15, 225, 169, 12, 15, 225, 168, 12, 15, 225, 167, 12, 15, 225, 166, 12,
- 15, 225, 165, 12, 15, 225, 164, 12, 15, 225, 163, 12, 15, 225, 162, 12,
- 15, 225, 161, 12, 15, 225, 160, 12, 15, 225, 159, 12, 15, 225, 158, 12,
- 15, 225, 157, 12, 15, 225, 156, 12, 15, 225, 155, 12, 15, 225, 154, 12,
- 15, 225, 153, 12, 15, 225, 152, 12, 15, 225, 151, 12, 15, 225, 150, 12,
- 15, 225, 149, 12, 15, 225, 148, 12, 15, 225, 147, 12, 15, 225, 146, 12,
- 15, 225, 145, 12, 15, 225, 144, 12, 15, 225, 143, 12, 15, 225, 142, 12,
- 15, 225, 141, 12, 15, 225, 140, 12, 15, 225, 139, 12, 15, 225, 138, 12,
- 15, 225, 137, 12, 15, 225, 136, 12, 15, 225, 135, 12, 15, 225, 134, 12,
- 15, 225, 133, 12, 15, 225, 132, 12, 15, 225, 131, 12, 15, 225, 130, 12,
- 15, 225, 129, 12, 15, 225, 128, 12, 15, 225, 127, 12, 15, 225, 126, 12,
- 15, 225, 125, 12, 15, 225, 124, 12, 15, 225, 123, 12, 15, 225, 122, 12,
- 15, 225, 121, 12, 15, 225, 120, 12, 15, 225, 119, 12, 15, 225, 118, 12,
- 15, 225, 117, 12, 15, 225, 116, 12, 15, 225, 115, 12, 15, 225, 114, 12,
- 15, 225, 113, 12, 15, 225, 112, 12, 15, 225, 111, 12, 15, 225, 110, 12,
- 15, 225, 109, 12, 15, 225, 108, 12, 15, 225, 107, 12, 15, 225, 106, 12,
- 15, 225, 105, 12, 15, 225, 104, 12, 15, 225, 103, 12, 15, 225, 102, 12,
- 15, 225, 101, 12, 15, 225, 100, 12, 15, 225, 99, 12, 15, 225, 98, 12, 15,
- 225, 97, 12, 15, 225, 96, 12, 15, 225, 95, 12, 15, 225, 94, 12, 15, 225,
- 93, 12, 15, 225, 92, 12, 15, 225, 91, 12, 15, 225, 90, 12, 15, 225, 89,
- 12, 15, 225, 88, 12, 15, 225, 87, 12, 15, 225, 86, 12, 15, 225, 85, 12,
- 15, 225, 84, 12, 15, 225, 83, 12, 15, 225, 82, 12, 15, 225, 81, 12, 15,
- 225, 80, 12, 15, 225, 79, 12, 15, 225, 78, 12, 15, 225, 77, 12, 15, 225,
- 76, 12, 15, 225, 75, 12, 15, 225, 74, 12, 15, 225, 73, 12, 15, 225, 72,
- 12, 15, 225, 71, 12, 15, 225, 70, 12, 15, 225, 69, 12, 15, 225, 68, 12,
- 15, 225, 67, 12, 15, 225, 66, 12, 15, 225, 65, 12, 15, 225, 64, 12, 15,
- 225, 63, 12, 15, 225, 62, 12, 15, 225, 61, 12, 15, 225, 60, 12, 15, 225,
- 59, 12, 15, 225, 58, 12, 15, 225, 57, 12, 15, 225, 56, 12, 15, 225, 55,
- 12, 15, 225, 54, 12, 15, 225, 53, 12, 15, 225, 52, 12, 15, 225, 51, 12,
- 15, 225, 50, 12, 15, 225, 49, 12, 15, 225, 48, 12, 15, 225, 47, 12, 15,
- 225, 46, 12, 15, 225, 45, 12, 15, 225, 44, 12, 15, 225, 43, 12, 15, 225,
- 42, 12, 15, 225, 41, 12, 15, 225, 40, 12, 15, 225, 39, 12, 15, 225, 38,
- 12, 15, 225, 37, 12, 15, 225, 36, 12, 15, 225, 35, 12, 15, 225, 34, 12,
- 15, 225, 33, 12, 15, 225, 32, 12, 15, 225, 31, 12, 15, 225, 30, 12, 15,
- 225, 29, 12, 15, 225, 28, 12, 15, 225, 27, 12, 15, 225, 26, 12, 15, 225,
- 25, 12, 15, 225, 24, 12, 15, 225, 23, 12, 15, 225, 22, 12, 15, 225, 21,
- 12, 15, 225, 20, 12, 15, 225, 19, 12, 15, 225, 18, 12, 15, 225, 17, 12,
- 15, 225, 16, 12, 15, 225, 15, 12, 15, 225, 14, 12, 15, 225, 13, 12, 15,
- 225, 12, 12, 15, 225, 11, 12, 15, 225, 10, 12, 15, 225, 9, 12, 15, 225,
- 8, 12, 15, 225, 7, 12, 15, 225, 6, 12, 15, 225, 5, 12, 15, 225, 4, 12,
- 15, 225, 3, 12, 15, 225, 2, 12, 15, 225, 1, 12, 15, 225, 0, 12, 15, 224,
- 255, 12, 15, 224, 254, 12, 15, 224, 253, 12, 15, 224, 252, 12, 15, 224,
- 251, 12, 15, 224, 250, 12, 15, 224, 249, 12, 15, 224, 248, 12, 15, 224,
- 247, 12, 15, 224, 246, 12, 15, 224, 245, 12, 15, 224, 244, 12, 15, 224,
- 243, 12, 15, 224, 242, 12, 15, 224, 241, 12, 15, 224, 240, 12, 15, 224,
- 239, 12, 15, 224, 238, 12, 15, 224, 237, 12, 15, 224, 236, 12, 15, 224,
- 235, 12, 15, 224, 234, 12, 15, 224, 233, 12, 15, 224, 232, 12, 15, 224,
- 231, 12, 15, 224, 230, 12, 15, 224, 229, 12, 15, 224, 228, 12, 15, 224,
- 227, 12, 15, 224, 226, 12, 15, 224, 225, 12, 15, 224, 224, 12, 15, 224,
- 223, 12, 15, 224, 222, 12, 15, 224, 221, 12, 15, 224, 220, 12, 15, 224,
- 219, 12, 15, 224, 218, 12, 15, 224, 217, 12, 15, 224, 216, 12, 15, 224,
- 215, 12, 15, 224, 214, 12, 15, 224, 213, 12, 15, 224, 212, 12, 15, 224,
- 211, 12, 15, 224, 210, 12, 15, 224, 209, 12, 15, 224, 208, 12, 15, 224,
- 207, 12, 15, 224, 206, 12, 15, 224, 205, 12, 15, 224, 204, 12, 15, 224,
- 203, 12, 15, 224, 202, 12, 15, 224, 201, 12, 15, 224, 200, 12, 15, 224,
- 199, 12, 15, 224, 198, 12, 15, 224, 197, 12, 15, 224, 196, 12, 15, 224,
- 195, 12, 15, 224, 194, 12, 15, 224, 193, 12, 15, 224, 192, 12, 15, 224,
- 191, 12, 15, 224, 190, 12, 15, 224, 189, 12, 15, 224, 188, 12, 15, 224,
- 187, 12, 15, 224, 186, 12, 15, 224, 185, 12, 15, 224, 184, 12, 15, 224,
- 183, 12, 15, 224, 182, 12, 15, 224, 181, 12, 15, 224, 180, 12, 15, 224,
- 179, 12, 15, 224, 178, 12, 15, 224, 177, 12, 15, 224, 176, 12, 15, 224,
- 175, 12, 15, 224, 174, 12, 15, 224, 173, 12, 15, 224, 172, 12, 15, 224,
- 171, 12, 15, 224, 170, 12, 15, 224, 169, 12, 15, 224, 168, 12, 15, 224,
- 167, 12, 15, 224, 166, 12, 15, 224, 165, 12, 15, 224, 164, 12, 15, 224,
- 163, 12, 15, 224, 162, 12, 15, 224, 161, 12, 15, 224, 160, 12, 15, 224,
- 159, 12, 15, 224, 158, 12, 15, 224, 157, 12, 15, 224, 156, 12, 15, 224,
- 155, 12, 15, 224, 154, 12, 15, 224, 153, 12, 15, 224, 152, 12, 15, 224,
- 151, 12, 15, 224, 150, 12, 15, 224, 149, 12, 15, 224, 148, 12, 15, 224,
- 147, 12, 15, 224, 146, 12, 15, 224, 145, 12, 15, 224, 144, 12, 15, 224,
- 143, 12, 15, 224, 142, 12, 15, 224, 141, 12, 15, 224, 140, 12, 15, 224,
- 139, 12, 15, 224, 138, 12, 15, 224, 137, 12, 15, 224, 136, 12, 15, 224,
- 135, 12, 15, 224, 134, 12, 15, 224, 133, 12, 15, 224, 132, 12, 15, 224,
- 131, 12, 15, 224, 130, 12, 15, 224, 129, 12, 15, 224, 128, 12, 15, 224,
- 127, 12, 15, 224, 126, 12, 15, 224, 125, 12, 15, 224, 124, 12, 15, 224,
- 123, 12, 15, 224, 122, 12, 15, 224, 121, 12, 15, 224, 120, 12, 15, 224,
- 119, 12, 15, 224, 118, 12, 15, 224, 117, 12, 15, 224, 116, 12, 15, 224,
- 115, 12, 15, 224, 114, 12, 15, 224, 113, 12, 15, 224, 112, 12, 15, 224,
- 111, 12, 15, 224, 110, 12, 15, 224, 109, 12, 15, 224, 108, 12, 15, 224,
- 107, 12, 15, 224, 106, 12, 15, 224, 105, 12, 15, 224, 104, 12, 15, 224,
- 103, 12, 15, 224, 102, 12, 15, 224, 101, 12, 15, 224, 100, 12, 15, 224,
- 99, 12, 15, 224, 98, 12, 15, 224, 97, 12, 15, 224, 96, 12, 15, 224, 95,
- 12, 15, 224, 94, 12, 15, 224, 93, 12, 15, 224, 92, 12, 15, 224, 91, 12,
- 15, 224, 90, 12, 15, 224, 89, 12, 15, 224, 88, 12, 15, 224, 87, 12, 15,
- 224, 86, 12, 15, 224, 85, 12, 15, 224, 84, 12, 15, 224, 83, 12, 15, 224,
- 82, 12, 15, 224, 81, 12, 15, 224, 80, 12, 15, 224, 79, 12, 15, 224, 78,
- 12, 15, 224, 77, 12, 15, 224, 76, 12, 15, 224, 75, 12, 15, 224, 74, 12,
- 15, 224, 73, 12, 15, 224, 72, 12, 15, 224, 71, 12, 15, 224, 70, 12, 15,
- 224, 69, 12, 15, 224, 68, 12, 15, 224, 67, 12, 15, 224, 66, 12, 15, 224,
- 65, 12, 15, 224, 64, 12, 15, 224, 63, 12, 15, 224, 62, 12, 15, 224, 61,
- 12, 15, 224, 60, 12, 15, 224, 59, 12, 15, 224, 58, 12, 15, 224, 57, 12,
- 15, 224, 56, 12, 15, 224, 55, 12, 15, 224, 54, 12, 15, 224, 53, 12, 15,
- 224, 52, 12, 15, 224, 51, 12, 15, 224, 50, 12, 15, 224, 49, 12, 15, 224,
- 48, 12, 15, 224, 47, 12, 15, 224, 46, 12, 15, 224, 45, 12, 15, 224, 44,
- 12, 15, 224, 43, 12, 15, 224, 42, 12, 15, 224, 41, 12, 15, 224, 40, 12,
- 15, 224, 39, 12, 15, 224, 38, 12, 15, 224, 37, 12, 15, 224, 36, 12, 15,
- 224, 35, 12, 15, 224, 34, 12, 15, 224, 33, 12, 15, 224, 32, 12, 15, 224,
- 31, 12, 15, 224, 30, 12, 15, 224, 29, 12, 15, 224, 28, 12, 15, 224, 27,
- 12, 15, 224, 26, 12, 15, 224, 25, 12, 15, 224, 24, 12, 15, 224, 23, 12,
- 15, 224, 22, 12, 15, 224, 21, 12, 15, 224, 20, 12, 15, 224, 19, 12, 15,
- 224, 18, 12, 15, 224, 17, 12, 15, 224, 16, 12, 15, 224, 15, 12, 15, 224,
- 14, 12, 15, 224, 13, 12, 15, 224, 12, 12, 15, 224, 11, 12, 15, 224, 10,
- 12, 15, 224, 9, 12, 15, 224, 8, 12, 15, 224, 7, 12, 15, 224, 6, 12, 15,
- 224, 5, 12, 15, 224, 4, 12, 15, 224, 3, 12, 15, 224, 2, 12, 15, 224, 1,
- 12, 15, 224, 0, 8, 2, 34, 233, 15, 8, 2, 34, 233, 11, 8, 2, 34, 232, 209,
- 8, 2, 34, 233, 14, 8, 2, 34, 233, 13, 8, 2, 34, 184, 206, 159, 200, 228,
- 8, 2, 34, 202, 35, 250, 91, 2, 34, 217, 6, 213, 96, 250, 91, 2, 34, 217,
- 6, 234, 177, 250, 91, 2, 34, 217, 6, 223, 159, 250, 91, 2, 34, 196, 45,
- 213, 96, 250, 91, 2, 34, 217, 6, 193, 201, 129, 1, 192, 240, 4, 229, 139,
- 129, 209, 192, 222, 213, 196, 135, 129, 34, 193, 20, 192, 240, 192, 240,
- 210, 205, 129, 1, 250, 244, 249, 231, 129, 1, 194, 64, 251, 26, 129, 1,
- 194, 64, 237, 221, 129, 1, 194, 64, 229, 255, 129, 1, 194, 64, 222, 139,
- 129, 1, 194, 64, 220, 86, 129, 1, 194, 64, 52, 217, 12, 129, 1, 194, 64,
- 207, 188, 129, 1, 194, 64, 200, 96, 129, 1, 250, 244, 102, 57, 129, 1,
- 203, 225, 4, 203, 225, 236, 114, 129, 1, 203, 225, 4, 203, 79, 236, 114,
- 129, 1, 203, 225, 4, 237, 241, 26, 203, 225, 236, 114, 129, 1, 203, 225,
- 4, 237, 241, 26, 203, 79, 236, 114, 129, 1, 157, 4, 210, 205, 129, 1,
- 157, 4, 208, 227, 129, 1, 157, 4, 217, 140, 129, 1, 248, 66, 4, 237, 240,
- 129, 1, 231, 32, 4, 237, 240, 129, 1, 237, 222, 4, 237, 240, 129, 1, 230,
- 0, 4, 217, 140, 129, 1, 196, 128, 4, 237, 240, 129, 1, 192, 90, 4, 237,
- 240, 129, 1, 200, 9, 4, 237, 240, 129, 1, 192, 240, 4, 237, 240, 129, 1,
- 52, 222, 140, 4, 237, 240, 129, 1, 222, 140, 4, 237, 240, 129, 1, 220,
- 87, 4, 237, 240, 129, 1, 217, 13, 4, 237, 240, 129, 1, 212, 231, 4, 237,
- 240, 129, 1, 206, 47, 4, 237, 240, 129, 1, 52, 210, 182, 4, 237, 240,
- 129, 1, 210, 182, 4, 237, 240, 129, 1, 198, 114, 4, 237, 240, 129, 1,
- 208, 187, 4, 237, 240, 129, 1, 207, 189, 4, 237, 240, 129, 1, 203, 225,
- 4, 237, 240, 129, 1, 200, 97, 4, 237, 240, 129, 1, 196, 128, 4, 229, 27,
- 129, 1, 248, 66, 4, 208, 51, 129, 1, 222, 140, 4, 208, 51, 129, 1, 210,
- 182, 4, 208, 51, 129, 34, 157, 220, 86, 9, 1, 157, 194, 137, 72, 20, 9,
- 1, 157, 194, 137, 52, 20, 9, 1, 248, 107, 72, 20, 9, 1, 248, 107, 52, 20,
- 9, 1, 248, 107, 88, 20, 9, 1, 248, 107, 217, 35, 20, 9, 1, 210, 162, 72,
- 20, 9, 1, 210, 162, 52, 20, 9, 1, 210, 162, 88, 20, 9, 1, 210, 162, 217,
- 35, 20, 9, 1, 248, 95, 72, 20, 9, 1, 248, 95, 52, 20, 9, 1, 248, 95, 88,
- 20, 9, 1, 248, 95, 217, 35, 20, 9, 1, 198, 74, 72, 20, 9, 1, 198, 74, 52,
- 20, 9, 1, 198, 74, 88, 20, 9, 1, 198, 74, 217, 35, 20, 9, 1, 200, 48, 72,
- 20, 9, 1, 200, 48, 52, 20, 9, 1, 200, 48, 88, 20, 9, 1, 200, 48, 217, 35,
- 20, 9, 1, 198, 76, 72, 20, 9, 1, 198, 76, 52, 20, 9, 1, 198, 76, 88, 20,
- 9, 1, 198, 76, 217, 35, 20, 9, 1, 196, 117, 72, 20, 9, 1, 196, 117, 52,
- 20, 9, 1, 196, 117, 88, 20, 9, 1, 196, 117, 217, 35, 20, 9, 1, 210, 160,
- 72, 20, 9, 1, 210, 160, 52, 20, 9, 1, 210, 160, 88, 20, 9, 1, 210, 160,
- 217, 35, 20, 9, 1, 235, 24, 72, 20, 9, 1, 235, 24, 52, 20, 9, 1, 235, 24,
- 88, 20, 9, 1, 235, 24, 217, 35, 20, 9, 1, 212, 188, 72, 20, 9, 1, 212,
- 188, 52, 20, 9, 1, 212, 188, 88, 20, 9, 1, 212, 188, 217, 35, 20, 9, 1,
- 200, 84, 72, 20, 9, 1, 200, 84, 52, 20, 9, 1, 200, 84, 88, 20, 9, 1, 200,
- 84, 217, 35, 20, 9, 1, 200, 82, 72, 20, 9, 1, 200, 82, 52, 20, 9, 1, 200,
- 82, 88, 20, 9, 1, 200, 82, 217, 35, 20, 9, 1, 237, 159, 72, 20, 9, 1,
- 237, 159, 52, 20, 9, 1, 237, 235, 72, 20, 9, 1, 237, 235, 52, 20, 9, 1,
- 235, 53, 72, 20, 9, 1, 235, 53, 52, 20, 9, 1, 237, 157, 72, 20, 9, 1,
- 237, 157, 52, 20, 9, 1, 223, 35, 72, 20, 9, 1, 223, 35, 52, 20, 9, 1,
- 206, 252, 72, 20, 9, 1, 206, 252, 52, 20, 9, 1, 222, 40, 72, 20, 9, 1,
- 222, 40, 52, 20, 9, 1, 222, 40, 88, 20, 9, 1, 222, 40, 217, 35, 20, 9, 1,
- 231, 221, 72, 20, 9, 1, 231, 221, 52, 20, 9, 1, 231, 221, 88, 20, 9, 1,
- 231, 221, 217, 35, 20, 9, 1, 230, 174, 72, 20, 9, 1, 230, 174, 52, 20, 9,
- 1, 230, 174, 88, 20, 9, 1, 230, 174, 217, 35, 20, 9, 1, 214, 89, 72, 20,
- 9, 1, 214, 89, 52, 20, 9, 1, 214, 89, 88, 20, 9, 1, 214, 89, 217, 35, 20,
- 9, 1, 213, 124, 231, 51, 72, 20, 9, 1, 213, 124, 231, 51, 52, 20, 9, 1,
- 207, 59, 72, 20, 9, 1, 207, 59, 52, 20, 9, 1, 207, 59, 88, 20, 9, 1, 207,
- 59, 217, 35, 20, 9, 1, 229, 221, 4, 97, 95, 72, 20, 9, 1, 229, 221, 4,
- 97, 95, 52, 20, 9, 1, 229, 221, 230, 252, 72, 20, 9, 1, 229, 221, 230,
- 252, 52, 20, 9, 1, 229, 221, 230, 252, 88, 20, 9, 1, 229, 221, 230, 252,
- 217, 35, 20, 9, 1, 229, 221, 236, 143, 72, 20, 9, 1, 229, 221, 236, 143,
- 52, 20, 9, 1, 229, 221, 236, 143, 88, 20, 9, 1, 229, 221, 236, 143, 217,
- 35, 20, 9, 1, 97, 248, 187, 72, 20, 9, 1, 97, 248, 187, 52, 20, 9, 1, 97,
- 248, 187, 4, 230, 67, 95, 72, 20, 9, 1, 97, 248, 187, 4, 230, 67, 95, 52,
- 20, 9, 16, 78, 58, 9, 16, 78, 63, 9, 16, 103, 236, 112, 58, 9, 16, 103,
- 236, 112, 63, 9, 16, 112, 236, 112, 58, 9, 16, 112, 236, 112, 63, 9, 16,
- 112, 236, 112, 209, 188, 235, 92, 58, 9, 16, 112, 236, 112, 209, 188,
- 235, 92, 63, 9, 16, 232, 119, 236, 112, 58, 9, 16, 232, 119, 236, 112,
- 63, 9, 16, 55, 84, 248, 194, 63, 9, 16, 103, 236, 112, 196, 55, 58, 9,
- 16, 103, 236, 112, 196, 55, 63, 9, 16, 207, 81, 9, 16, 2, 200, 152, 58,
- 9, 16, 2, 200, 152, 63, 9, 1, 214, 168, 72, 20, 9, 1, 214, 168, 52, 20,
- 9, 1, 214, 168, 88, 20, 9, 1, 214, 168, 217, 35, 20, 9, 1, 124, 72, 20,
- 9, 1, 124, 52, 20, 9, 1, 212, 1, 72, 20, 9, 1, 212, 1, 52, 20, 9, 1, 192,
- 215, 72, 20, 9, 1, 192, 215, 52, 20, 9, 1, 124, 4, 230, 67, 95, 72, 20,
- 9, 1, 196, 124, 72, 20, 9, 1, 196, 124, 52, 20, 9, 1, 221, 170, 212, 1,
- 72, 20, 9, 1, 221, 170, 212, 1, 52, 20, 9, 1, 221, 170, 192, 215, 72, 20,
- 9, 1, 221, 170, 192, 215, 52, 20, 9, 1, 234, 253, 72, 20, 9, 1, 234, 253,
- 52, 20, 9, 1, 234, 253, 88, 20, 9, 1, 234, 253, 217, 35, 20, 9, 1, 197,
- 94, 222, 61, 221, 170, 157, 217, 169, 88, 20, 9, 1, 197, 94, 222, 61,
- 221, 170, 157, 217, 169, 217, 35, 20, 9, 34, 97, 4, 230, 67, 95, 4, 157,
- 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 157, 52, 20, 9, 34, 97, 4, 230, 67,
- 95, 4, 251, 109, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 251, 109, 52, 20,
- 9, 34, 97, 4, 230, 67, 95, 4, 194, 120, 72, 20, 9, 34, 97, 4, 230, 67,
- 95, 4, 194, 120, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 124, 72, 20, 9,
- 34, 97, 4, 230, 67, 95, 4, 124, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4,
- 212, 1, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 212, 1, 52, 20, 9, 34, 97,
- 4, 230, 67, 95, 4, 192, 215, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 192,
- 215, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 234, 253, 72, 20, 9, 34, 97,
- 4, 230, 67, 95, 4, 234, 253, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 234,
- 253, 88, 20, 9, 34, 197, 94, 221, 170, 97, 4, 230, 67, 95, 4, 157, 217,
- 169, 72, 20, 9, 34, 197, 94, 221, 170, 97, 4, 230, 67, 95, 4, 157, 217,
- 169, 52, 20, 9, 34, 197, 94, 221, 170, 97, 4, 230, 67, 95, 4, 157, 217,
- 169, 88, 20, 9, 1, 233, 62, 97, 72, 20, 9, 1, 233, 62, 97, 52, 20, 9, 1,
- 233, 62, 97, 88, 20, 9, 1, 233, 62, 97, 217, 35, 20, 9, 34, 97, 4, 230,
- 67, 95, 4, 223, 38, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 176, 72, 20, 9,
- 34, 97, 4, 230, 67, 95, 4, 91, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 157,
- 217, 169, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 97, 72, 20, 9, 34, 248,
- 97, 4, 223, 38, 72, 20, 9, 34, 248, 97, 4, 176, 72, 20, 9, 34, 248, 97,
- 4, 221, 246, 72, 20, 9, 34, 248, 97, 4, 91, 72, 20, 9, 34, 248, 97, 4,
- 157, 217, 169, 72, 20, 9, 34, 248, 97, 4, 97, 72, 20, 9, 34, 200, 50, 4,
- 223, 38, 72, 20, 9, 34, 200, 50, 4, 176, 72, 20, 9, 34, 200, 50, 4, 221,
- 246, 72, 20, 9, 34, 200, 50, 4, 91, 72, 20, 9, 34, 200, 50, 4, 157, 217,
- 169, 72, 20, 9, 34, 200, 50, 4, 97, 72, 20, 9, 34, 199, 221, 4, 223, 38,
- 72, 20, 9, 34, 199, 221, 4, 91, 72, 20, 9, 34, 199, 221, 4, 157, 217,
- 169, 72, 20, 9, 34, 199, 221, 4, 97, 72, 20, 9, 34, 223, 38, 4, 176, 72,
- 20, 9, 34, 223, 38, 4, 91, 72, 20, 9, 34, 176, 4, 223, 38, 72, 20, 9, 34,
- 176, 4, 91, 72, 20, 9, 34, 221, 246, 4, 223, 38, 72, 20, 9, 34, 221, 246,
- 4, 176, 72, 20, 9, 34, 221, 246, 4, 91, 72, 20, 9, 34, 205, 202, 4, 223,
- 38, 72, 20, 9, 34, 205, 202, 4, 176, 72, 20, 9, 34, 205, 202, 4, 221,
- 246, 72, 20, 9, 34, 205, 202, 4, 91, 72, 20, 9, 34, 206, 87, 4, 176, 72,
- 20, 9, 34, 206, 87, 4, 91, 72, 20, 9, 34, 237, 251, 4, 223, 38, 72, 20,
- 9, 34, 237, 251, 4, 176, 72, 20, 9, 34, 237, 251, 4, 221, 246, 72, 20, 9,
- 34, 237, 251, 4, 91, 72, 20, 9, 34, 200, 152, 4, 176, 72, 20, 9, 34, 200,
- 152, 4, 91, 72, 20, 9, 34, 192, 107, 4, 91, 72, 20, 9, 34, 251, 58, 4,
- 223, 38, 72, 20, 9, 34, 251, 58, 4, 91, 72, 20, 9, 34, 231, 80, 4, 223,
- 38, 72, 20, 9, 34, 231, 80, 4, 91, 72, 20, 9, 34, 233, 35, 4, 223, 38,
- 72, 20, 9, 34, 233, 35, 4, 176, 72, 20, 9, 34, 233, 35, 4, 221, 246, 72,
- 20, 9, 34, 233, 35, 4, 91, 72, 20, 9, 34, 233, 35, 4, 157, 217, 169, 72,
- 20, 9, 34, 233, 35, 4, 97, 72, 20, 9, 34, 208, 233, 4, 176, 72, 20, 9,
- 34, 208, 233, 4, 91, 72, 20, 9, 34, 208, 233, 4, 157, 217, 169, 72, 20,
- 9, 34, 208, 233, 4, 97, 72, 20, 9, 34, 222, 140, 4, 157, 72, 20, 9, 34,
- 222, 140, 4, 223, 38, 72, 20, 9, 34, 222, 140, 4, 176, 72, 20, 9, 34,
- 222, 140, 4, 221, 246, 72, 20, 9, 34, 222, 140, 4, 220, 95, 72, 20, 9,
- 34, 222, 140, 4, 91, 72, 20, 9, 34, 222, 140, 4, 157, 217, 169, 72, 20,
- 9, 34, 222, 140, 4, 97, 72, 20, 9, 34, 220, 95, 4, 223, 38, 72, 20, 9,
- 34, 220, 95, 4, 176, 72, 20, 9, 34, 220, 95, 4, 221, 246, 72, 20, 9, 34,
- 220, 95, 4, 91, 72, 20, 9, 34, 220, 95, 4, 157, 217, 169, 72, 20, 9, 34,
- 220, 95, 4, 97, 72, 20, 9, 34, 91, 4, 223, 38, 72, 20, 9, 34, 91, 4, 176,
- 72, 20, 9, 34, 91, 4, 221, 246, 72, 20, 9, 34, 91, 4, 91, 72, 20, 9, 34,
- 91, 4, 157, 217, 169, 72, 20, 9, 34, 91, 4, 97, 72, 20, 9, 34, 213, 124,
- 4, 223, 38, 72, 20, 9, 34, 213, 124, 4, 176, 72, 20, 9, 34, 213, 124, 4,
- 221, 246, 72, 20, 9, 34, 213, 124, 4, 91, 72, 20, 9, 34, 213, 124, 4,
- 157, 217, 169, 72, 20, 9, 34, 213, 124, 4, 97, 72, 20, 9, 34, 229, 221,
- 4, 223, 38, 72, 20, 9, 34, 229, 221, 4, 91, 72, 20, 9, 34, 229, 221, 4,
- 157, 217, 169, 72, 20, 9, 34, 229, 221, 4, 97, 72, 20, 9, 34, 97, 4, 223,
- 38, 72, 20, 9, 34, 97, 4, 176, 72, 20, 9, 34, 97, 4, 221, 246, 72, 20, 9,
- 34, 97, 4, 91, 72, 20, 9, 34, 97, 4, 157, 217, 169, 72, 20, 9, 34, 97, 4,
- 97, 72, 20, 9, 34, 199, 233, 4, 201, 107, 157, 72, 20, 9, 34, 207, 222,
- 4, 201, 107, 157, 72, 20, 9, 34, 157, 217, 169, 4, 201, 107, 157, 72, 20,
- 9, 34, 204, 55, 4, 237, 214, 72, 20, 9, 34, 204, 55, 4, 222, 85, 72, 20,
- 9, 34, 204, 55, 4, 233, 59, 72, 20, 9, 34, 204, 55, 4, 237, 216, 72, 20,
- 9, 34, 204, 55, 4, 222, 87, 72, 20, 9, 34, 204, 55, 4, 201, 107, 157, 72,
- 20, 9, 34, 97, 4, 230, 67, 95, 4, 207, 222, 52, 20, 9, 34, 97, 4, 230,
- 67, 95, 4, 192, 104, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 91, 52, 20, 9,
- 34, 97, 4, 230, 67, 95, 4, 213, 124, 52, 20, 9, 34, 97, 4, 230, 67, 95,
- 4, 157, 217, 169, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 97, 52, 20, 9,
- 34, 248, 97, 4, 207, 222, 52, 20, 9, 34, 248, 97, 4, 192, 104, 52, 20, 9,
- 34, 248, 97, 4, 91, 52, 20, 9, 34, 248, 97, 4, 213, 124, 52, 20, 9, 34,
- 248, 97, 4, 157, 217, 169, 52, 20, 9, 34, 248, 97, 4, 97, 52, 20, 9, 34,
- 200, 50, 4, 207, 222, 52, 20, 9, 34, 200, 50, 4, 192, 104, 52, 20, 9, 34,
- 200, 50, 4, 91, 52, 20, 9, 34, 200, 50, 4, 213, 124, 52, 20, 9, 34, 200,
- 50, 4, 157, 217, 169, 52, 20, 9, 34, 200, 50, 4, 97, 52, 20, 9, 34, 199,
- 221, 4, 207, 222, 52, 20, 9, 34, 199, 221, 4, 192, 104, 52, 20, 9, 34,
- 199, 221, 4, 91, 52, 20, 9, 34, 199, 221, 4, 213, 124, 52, 20, 9, 34,
- 199, 221, 4, 157, 217, 169, 52, 20, 9, 34, 199, 221, 4, 97, 52, 20, 9,
- 34, 233, 35, 4, 157, 217, 169, 52, 20, 9, 34, 233, 35, 4, 97, 52, 20, 9,
- 34, 208, 233, 4, 157, 217, 169, 52, 20, 9, 34, 208, 233, 4, 97, 52, 20,
- 9, 34, 222, 140, 4, 157, 52, 20, 9, 34, 222, 140, 4, 220, 95, 52, 20, 9,
- 34, 222, 140, 4, 91, 52, 20, 9, 34, 222, 140, 4, 157, 217, 169, 52, 20,
- 9, 34, 222, 140, 4, 97, 52, 20, 9, 34, 220, 95, 4, 91, 52, 20, 9, 34,
- 220, 95, 4, 157, 217, 169, 52, 20, 9, 34, 220, 95, 4, 97, 52, 20, 9, 34,
- 91, 4, 157, 52, 20, 9, 34, 91, 4, 91, 52, 20, 9, 34, 213, 124, 4, 207,
- 222, 52, 20, 9, 34, 213, 124, 4, 192, 104, 52, 20, 9, 34, 213, 124, 4,
- 91, 52, 20, 9, 34, 213, 124, 4, 213, 124, 52, 20, 9, 34, 213, 124, 4,
- 157, 217, 169, 52, 20, 9, 34, 213, 124, 4, 97, 52, 20, 9, 34, 157, 217,
- 169, 4, 201, 107, 157, 52, 20, 9, 34, 97, 4, 207, 222, 52, 20, 9, 34, 97,
- 4, 192, 104, 52, 20, 9, 34, 97, 4, 91, 52, 20, 9, 34, 97, 4, 213, 124,
- 52, 20, 9, 34, 97, 4, 157, 217, 169, 52, 20, 9, 34, 97, 4, 97, 52, 20, 9,
- 34, 97, 4, 230, 67, 95, 4, 223, 38, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4,
- 176, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4, 221, 246, 88, 20, 9, 34, 97,
- 4, 230, 67, 95, 4, 91, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4, 229, 221,
- 88, 20, 9, 34, 248, 97, 4, 223, 38, 88, 20, 9, 34, 248, 97, 4, 176, 88,
- 20, 9, 34, 248, 97, 4, 221, 246, 88, 20, 9, 34, 248, 97, 4, 91, 88, 20,
- 9, 34, 248, 97, 4, 229, 221, 88, 20, 9, 34, 200, 50, 4, 223, 38, 88, 20,
- 9, 34, 200, 50, 4, 176, 88, 20, 9, 34, 200, 50, 4, 221, 246, 88, 20, 9,
- 34, 200, 50, 4, 91, 88, 20, 9, 34, 200, 50, 4, 229, 221, 88, 20, 9, 34,
- 199, 221, 4, 91, 88, 20, 9, 34, 223, 38, 4, 176, 88, 20, 9, 34, 223, 38,
- 4, 91, 88, 20, 9, 34, 176, 4, 223, 38, 88, 20, 9, 34, 176, 4, 91, 88, 20,
- 9, 34, 221, 246, 4, 223, 38, 88, 20, 9, 34, 221, 246, 4, 91, 88, 20, 9,
- 34, 205, 202, 4, 223, 38, 88, 20, 9, 34, 205, 202, 4, 176, 88, 20, 9, 34,
- 205, 202, 4, 221, 246, 88, 20, 9, 34, 205, 202, 4, 91, 88, 20, 9, 34,
- 206, 87, 4, 176, 88, 20, 9, 34, 206, 87, 4, 221, 246, 88, 20, 9, 34, 206,
- 87, 4, 91, 88, 20, 9, 34, 237, 251, 4, 223, 38, 88, 20, 9, 34, 237, 251,
- 4, 176, 88, 20, 9, 34, 237, 251, 4, 221, 246, 88, 20, 9, 34, 237, 251, 4,
- 91, 88, 20, 9, 34, 200, 152, 4, 176, 88, 20, 9, 34, 192, 107, 4, 91, 88,
- 20, 9, 34, 251, 58, 4, 223, 38, 88, 20, 9, 34, 251, 58, 4, 91, 88, 20, 9,
- 34, 231, 80, 4, 223, 38, 88, 20, 9, 34, 231, 80, 4, 91, 88, 20, 9, 34,
- 233, 35, 4, 223, 38, 88, 20, 9, 34, 233, 35, 4, 176, 88, 20, 9, 34, 233,
- 35, 4, 221, 246, 88, 20, 9, 34, 233, 35, 4, 91, 88, 20, 9, 34, 208, 233,
- 4, 176, 88, 20, 9, 34, 208, 233, 4, 91, 88, 20, 9, 34, 222, 140, 4, 223,
- 38, 88, 20, 9, 34, 222, 140, 4, 176, 88, 20, 9, 34, 222, 140, 4, 221,
- 246, 88, 20, 9, 34, 222, 140, 4, 220, 95, 88, 20, 9, 34, 222, 140, 4, 91,
- 88, 20, 9, 34, 220, 95, 4, 223, 38, 88, 20, 9, 34, 220, 95, 4, 176, 88,
- 20, 9, 34, 220, 95, 4, 221, 246, 88, 20, 9, 34, 220, 95, 4, 91, 88, 20,
- 9, 34, 220, 95, 4, 229, 221, 88, 20, 9, 34, 91, 4, 223, 38, 88, 20, 9,
- 34, 91, 4, 176, 88, 20, 9, 34, 91, 4, 221, 246, 88, 20, 9, 34, 91, 4, 91,
- 88, 20, 9, 34, 213, 124, 4, 223, 38, 88, 20, 9, 34, 213, 124, 4, 176, 88,
- 20, 9, 34, 213, 124, 4, 221, 246, 88, 20, 9, 34, 213, 124, 4, 91, 88, 20,
- 9, 34, 213, 124, 4, 229, 221, 88, 20, 9, 34, 229, 221, 4, 223, 38, 88,
- 20, 9, 34, 229, 221, 4, 91, 88, 20, 9, 34, 229, 221, 4, 201, 107, 157,
- 88, 20, 9, 34, 97, 4, 223, 38, 88, 20, 9, 34, 97, 4, 176, 88, 20, 9, 34,
- 97, 4, 221, 246, 88, 20, 9, 34, 97, 4, 91, 88, 20, 9, 34, 97, 4, 229,
- 221, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4, 91, 217, 35, 20, 9, 34, 97, 4,
- 230, 67, 95, 4, 229, 221, 217, 35, 20, 9, 34, 248, 97, 4, 91, 217, 35,
- 20, 9, 34, 248, 97, 4, 229, 221, 217, 35, 20, 9, 34, 200, 50, 4, 91, 217,
- 35, 20, 9, 34, 200, 50, 4, 229, 221, 217, 35, 20, 9, 34, 199, 221, 4, 91,
- 217, 35, 20, 9, 34, 199, 221, 4, 229, 221, 217, 35, 20, 9, 34, 205, 202,
- 4, 91, 217, 35, 20, 9, 34, 205, 202, 4, 229, 221, 217, 35, 20, 9, 34,
- 204, 9, 4, 91, 217, 35, 20, 9, 34, 204, 9, 4, 229, 221, 217, 35, 20, 9,
- 34, 222, 140, 4, 220, 95, 217, 35, 20, 9, 34, 222, 140, 4, 91, 217, 35,
- 20, 9, 34, 220, 95, 4, 91, 217, 35, 20, 9, 34, 213, 124, 4, 91, 217, 35,
- 20, 9, 34, 213, 124, 4, 229, 221, 217, 35, 20, 9, 34, 97, 4, 91, 217, 35,
- 20, 9, 34, 97, 4, 229, 221, 217, 35, 20, 9, 34, 204, 55, 4, 233, 59, 217,
- 35, 20, 9, 34, 204, 55, 4, 237, 216, 217, 35, 20, 9, 34, 204, 55, 4, 222,
- 87, 217, 35, 20, 9, 34, 200, 152, 4, 157, 217, 169, 72, 20, 9, 34, 200,
- 152, 4, 97, 72, 20, 9, 34, 251, 58, 4, 157, 217, 169, 72, 20, 9, 34, 251,
- 58, 4, 97, 72, 20, 9, 34, 231, 80, 4, 157, 217, 169, 72, 20, 9, 34, 231,
- 80, 4, 97, 72, 20, 9, 34, 205, 202, 4, 157, 217, 169, 72, 20, 9, 34, 205,
- 202, 4, 97, 72, 20, 9, 34, 204, 9, 4, 157, 217, 169, 72, 20, 9, 34, 204,
- 9, 4, 97, 72, 20, 9, 34, 176, 4, 157, 217, 169, 72, 20, 9, 34, 176, 4,
- 97, 72, 20, 9, 34, 223, 38, 4, 157, 217, 169, 72, 20, 9, 34, 223, 38, 4,
- 97, 72, 20, 9, 34, 221, 246, 4, 157, 217, 169, 72, 20, 9, 34, 221, 246,
- 4, 97, 72, 20, 9, 34, 206, 87, 4, 157, 217, 169, 72, 20, 9, 34, 206, 87,
- 4, 97, 72, 20, 9, 34, 237, 251, 4, 157, 217, 169, 72, 20, 9, 34, 237,
- 251, 4, 97, 72, 20, 9, 34, 204, 9, 4, 223, 38, 72, 20, 9, 34, 204, 9, 4,
- 176, 72, 20, 9, 34, 204, 9, 4, 221, 246, 72, 20, 9, 34, 204, 9, 4, 91,
- 72, 20, 9, 34, 204, 9, 4, 207, 222, 72, 20, 9, 34, 205, 202, 4, 207, 222,
- 72, 20, 9, 34, 206, 87, 4, 207, 222, 72, 20, 9, 34, 237, 251, 4, 207,
- 222, 72, 20, 9, 34, 200, 152, 4, 157, 217, 169, 52, 20, 9, 34, 200, 152,
- 4, 97, 52, 20, 9, 34, 251, 58, 4, 157, 217, 169, 52, 20, 9, 34, 251, 58,
- 4, 97, 52, 20, 9, 34, 231, 80, 4, 157, 217, 169, 52, 20, 9, 34, 231, 80,
- 4, 97, 52, 20, 9, 34, 205, 202, 4, 157, 217, 169, 52, 20, 9, 34, 205,
- 202, 4, 97, 52, 20, 9, 34, 204, 9, 4, 157, 217, 169, 52, 20, 9, 34, 204,
- 9, 4, 97, 52, 20, 9, 34, 176, 4, 157, 217, 169, 52, 20, 9, 34, 176, 4,
- 97, 52, 20, 9, 34, 223, 38, 4, 157, 217, 169, 52, 20, 9, 34, 223, 38, 4,
- 97, 52, 20, 9, 34, 221, 246, 4, 157, 217, 169, 52, 20, 9, 34, 221, 246,
- 4, 97, 52, 20, 9, 34, 206, 87, 4, 157, 217, 169, 52, 20, 9, 34, 206, 87,
- 4, 97, 52, 20, 9, 34, 237, 251, 4, 157, 217, 169, 52, 20, 9, 34, 237,
- 251, 4, 97, 52, 20, 9, 34, 204, 9, 4, 223, 38, 52, 20, 9, 34, 204, 9, 4,
- 176, 52, 20, 9, 34, 204, 9, 4, 221, 246, 52, 20, 9, 34, 204, 9, 4, 91,
- 52, 20, 9, 34, 204, 9, 4, 207, 222, 52, 20, 9, 34, 205, 202, 4, 207, 222,
- 52, 20, 9, 34, 206, 87, 4, 207, 222, 52, 20, 9, 34, 237, 251, 4, 207,
- 222, 52, 20, 9, 34, 204, 9, 4, 223, 38, 88, 20, 9, 34, 204, 9, 4, 176,
- 88, 20, 9, 34, 204, 9, 4, 221, 246, 88, 20, 9, 34, 204, 9, 4, 91, 88, 20,
- 9, 34, 205, 202, 4, 229, 221, 88, 20, 9, 34, 204, 9, 4, 229, 221, 88, 20,
- 9, 34, 200, 152, 4, 91, 88, 20, 9, 34, 205, 202, 4, 223, 38, 217, 35, 20,
- 9, 34, 205, 202, 4, 176, 217, 35, 20, 9, 34, 205, 202, 4, 221, 246, 217,
- 35, 20, 9, 34, 204, 9, 4, 223, 38, 217, 35, 20, 9, 34, 204, 9, 4, 176,
- 217, 35, 20, 9, 34, 204, 9, 4, 221, 246, 217, 35, 20, 9, 34, 200, 152, 4,
- 91, 217, 35, 20, 9, 34, 192, 107, 4, 91, 217, 35, 20, 9, 34, 157, 4, 233,
- 57, 52, 20, 9, 34, 157, 4, 233, 57, 72, 20, 211, 148, 46, 210, 230, 211,
- 148, 51, 210, 230, 9, 34, 200, 50, 4, 223, 38, 4, 91, 88, 20, 9, 34, 200,
- 50, 4, 176, 4, 223, 38, 52, 20, 9, 34, 200, 50, 4, 176, 4, 223, 38, 88,
- 20, 9, 34, 200, 50, 4, 176, 4, 91, 88, 20, 9, 34, 200, 50, 4, 221, 246,
- 4, 91, 88, 20, 9, 34, 200, 50, 4, 91, 4, 223, 38, 88, 20, 9, 34, 200, 50,
- 4, 91, 4, 176, 88, 20, 9, 34, 200, 50, 4, 91, 4, 221, 246, 88, 20, 9, 34,
- 223, 38, 4, 91, 4, 176, 52, 20, 9, 34, 223, 38, 4, 91, 4, 176, 88, 20, 9,
- 34, 176, 4, 91, 4, 97, 52, 20, 9, 34, 176, 4, 91, 4, 157, 217, 169, 52,
- 20, 9, 34, 205, 202, 4, 176, 4, 223, 38, 88, 20, 9, 34, 205, 202, 4, 223,
- 38, 4, 176, 88, 20, 9, 34, 205, 202, 4, 223, 38, 4, 157, 217, 169, 52,
- 20, 9, 34, 205, 202, 4, 91, 4, 176, 52, 20, 9, 34, 205, 202, 4, 91, 4,
- 176, 88, 20, 9, 34, 205, 202, 4, 91, 4, 223, 38, 88, 20, 9, 34, 205, 202,
- 4, 91, 4, 91, 52, 20, 9, 34, 205, 202, 4, 91, 4, 91, 88, 20, 9, 34, 206,
- 87, 4, 176, 4, 176, 52, 20, 9, 34, 206, 87, 4, 176, 4, 176, 88, 20, 9,
- 34, 206, 87, 4, 91, 4, 91, 52, 20, 9, 34, 204, 9, 4, 176, 4, 91, 52, 20,
- 9, 34, 204, 9, 4, 176, 4, 91, 88, 20, 9, 34, 204, 9, 4, 223, 38, 4, 97,
- 52, 20, 9, 34, 204, 9, 4, 91, 4, 221, 246, 52, 20, 9, 34, 204, 9, 4, 91,
- 4, 221, 246, 88, 20, 9, 34, 204, 9, 4, 91, 4, 91, 52, 20, 9, 34, 204, 9,
- 4, 91, 4, 91, 88, 20, 9, 34, 237, 251, 4, 176, 4, 157, 217, 169, 52, 20,
- 9, 34, 237, 251, 4, 221, 246, 4, 91, 52, 20, 9, 34, 237, 251, 4, 221,
- 246, 4, 91, 88, 20, 9, 34, 200, 152, 4, 91, 4, 176, 52, 20, 9, 34, 200,
- 152, 4, 91, 4, 176, 88, 20, 9, 34, 200, 152, 4, 91, 4, 91, 88, 20, 9, 34,
- 200, 152, 4, 91, 4, 97, 52, 20, 9, 34, 251, 58, 4, 223, 38, 4, 91, 52,
- 20, 9, 34, 251, 58, 4, 91, 4, 91, 52, 20, 9, 34, 251, 58, 4, 91, 4, 91,
- 88, 20, 9, 34, 251, 58, 4, 91, 4, 157, 217, 169, 52, 20, 9, 34, 231, 80,
- 4, 91, 4, 91, 52, 20, 9, 34, 231, 80, 4, 91, 4, 97, 52, 20, 9, 34, 231,
- 80, 4, 91, 4, 157, 217, 169, 52, 20, 9, 34, 233, 35, 4, 221, 246, 4, 91,
- 52, 20, 9, 34, 233, 35, 4, 221, 246, 4, 91, 88, 20, 9, 34, 208, 233, 4,
- 91, 4, 176, 52, 20, 9, 34, 208, 233, 4, 91, 4, 91, 52, 20, 9, 34, 220,
- 95, 4, 176, 4, 91, 52, 20, 9, 34, 220, 95, 4, 176, 4, 97, 52, 20, 9, 34,
- 220, 95, 4, 176, 4, 157, 217, 169, 52, 20, 9, 34, 220, 95, 4, 223, 38, 4,
- 223, 38, 88, 20, 9, 34, 220, 95, 4, 223, 38, 4, 223, 38, 52, 20, 9, 34,
- 220, 95, 4, 221, 246, 4, 91, 52, 20, 9, 34, 220, 95, 4, 221, 246, 4, 91,
- 88, 20, 9, 34, 220, 95, 4, 91, 4, 176, 52, 20, 9, 34, 220, 95, 4, 91, 4,
- 176, 88, 20, 9, 34, 91, 4, 176, 4, 223, 38, 88, 20, 9, 34, 91, 4, 176, 4,
- 91, 88, 20, 9, 34, 91, 4, 176, 4, 97, 52, 20, 9, 34, 91, 4, 223, 38, 4,
- 176, 88, 20, 9, 34, 91, 4, 223, 38, 4, 91, 88, 20, 9, 34, 91, 4, 221,
- 246, 4, 223, 38, 88, 20, 9, 34, 91, 4, 221, 246, 4, 91, 88, 20, 9, 34,
- 91, 4, 223, 38, 4, 221, 246, 88, 20, 9, 34, 229, 221, 4, 91, 4, 223, 38,
- 88, 20, 9, 34, 229, 221, 4, 91, 4, 91, 88, 20, 9, 34, 213, 124, 4, 176,
- 4, 91, 88, 20, 9, 34, 213, 124, 4, 176, 4, 157, 217, 169, 52, 20, 9, 34,
- 213, 124, 4, 223, 38, 4, 91, 52, 20, 9, 34, 213, 124, 4, 223, 38, 4, 91,
- 88, 20, 9, 34, 213, 124, 4, 223, 38, 4, 157, 217, 169, 52, 20, 9, 34,
- 213, 124, 4, 91, 4, 97, 52, 20, 9, 34, 213, 124, 4, 91, 4, 157, 217, 169,
- 52, 20, 9, 34, 97, 4, 91, 4, 91, 52, 20, 9, 34, 97, 4, 91, 4, 91, 88, 20,
- 9, 34, 248, 97, 4, 221, 246, 4, 97, 52, 20, 9, 34, 200, 50, 4, 223, 38,
- 4, 97, 52, 20, 9, 34, 200, 50, 4, 223, 38, 4, 157, 217, 169, 52, 20, 9,
- 34, 200, 50, 4, 221, 246, 4, 97, 52, 20, 9, 34, 200, 50, 4, 221, 246, 4,
- 157, 217, 169, 52, 20, 9, 34, 200, 50, 4, 91, 4, 97, 52, 20, 9, 34, 200,
- 50, 4, 91, 4, 157, 217, 169, 52, 20, 9, 34, 223, 38, 4, 91, 4, 97, 52,
- 20, 9, 34, 223, 38, 4, 176, 4, 157, 217, 169, 52, 20, 9, 34, 223, 38, 4,
- 91, 4, 157, 217, 169, 52, 20, 9, 34, 205, 202, 4, 221, 246, 4, 157, 217,
- 169, 52, 20, 9, 34, 206, 87, 4, 176, 4, 97, 52, 20, 9, 34, 204, 9, 4,
- 176, 4, 97, 52, 20, 9, 34, 237, 251, 4, 176, 4, 97, 52, 20, 9, 34, 220,
- 95, 4, 223, 38, 4, 97, 52, 20, 9, 34, 220, 95, 4, 91, 4, 97, 52, 20, 9,
- 34, 97, 4, 176, 4, 97, 52, 20, 9, 34, 97, 4, 223, 38, 4, 97, 52, 20, 9,
- 34, 97, 4, 91, 4, 97, 52, 20, 9, 34, 91, 4, 91, 4, 97, 52, 20, 9, 34,
- 208, 233, 4, 91, 4, 97, 52, 20, 9, 34, 213, 124, 4, 176, 4, 97, 52, 20,
- 9, 34, 208, 233, 4, 91, 4, 176, 88, 20, 9, 34, 220, 95, 4, 176, 4, 91,
- 88, 20, 9, 34, 251, 58, 4, 91, 4, 97, 52, 20, 9, 34, 222, 140, 4, 91, 4,
- 97, 52, 20, 9, 34, 213, 124, 4, 223, 38, 4, 176, 88, 20, 9, 34, 91, 4,
- 221, 246, 4, 97, 52, 20, 9, 34, 220, 95, 4, 223, 38, 4, 91, 88, 20, 9,
- 34, 222, 140, 4, 91, 4, 91, 52, 20, 9, 34, 220, 95, 4, 223, 38, 4, 91,
- 52, 20, 9, 34, 213, 124, 4, 223, 38, 4, 176, 52, 20, 9, 34, 223, 38, 4,
- 176, 4, 97, 52, 20, 9, 34, 176, 4, 223, 38, 4, 97, 52, 20, 9, 34, 91, 4,
- 223, 38, 4, 97, 52, 20, 9, 34, 233, 35, 4, 91, 4, 97, 52, 20, 9, 34, 248,
- 97, 4, 176, 4, 97, 52, 20, 9, 34, 222, 140, 4, 91, 4, 91, 88, 20, 9, 34,
- 251, 58, 4, 223, 38, 4, 91, 88, 20, 9, 34, 206, 87, 4, 91, 4, 91, 88, 20,
- 9, 34, 205, 202, 4, 221, 246, 4, 97, 52, 20, 9, 34, 213, 124, 4, 223, 38,
- 4, 97, 52, 20, 9, 34, 206, 58, 197, 5, 250, 62, 221, 80, 201, 239, 3, 72,
- 20, 9, 34, 208, 229, 197, 5, 250, 62, 221, 80, 201, 239, 3, 72, 20, 9,
- 34, 251, 7, 72, 20, 9, 34, 251, 41, 72, 20, 9, 34, 216, 58, 72, 20, 9,
- 34, 206, 59, 72, 20, 9, 34, 208, 24, 72, 20, 9, 34, 251, 29, 72, 20, 9,
- 34, 194, 139, 72, 20, 9, 34, 206, 58, 72, 20, 9, 34, 206, 57, 251, 29,
- 194, 138, 9, 34, 223, 53, 207, 143, 57, 9, 34, 248, 4, 250, 129, 250,
- 130, 65, 205, 188, 65, 205, 77, 65, 205, 9, 65, 204, 254, 65, 204, 243,
- 65, 204, 232, 65, 204, 221, 65, 204, 210, 65, 204, 199, 65, 205, 187, 65,
- 205, 176, 65, 205, 165, 65, 205, 154, 65, 205, 143, 65, 205, 132, 65,
- 205, 121, 209, 105, 232, 136, 39, 84, 242, 38, 209, 105, 232, 136, 39,
- 84, 149, 242, 38, 209, 105, 232, 136, 39, 84, 149, 232, 71, 201, 238,
- 209, 105, 232, 136, 39, 84, 242, 47, 209, 105, 232, 136, 39, 84, 204,
- 180, 209, 105, 232, 136, 39, 84, 233, 204, 77, 209, 105, 232, 136, 39,
- 84, 208, 159, 77, 209, 105, 232, 136, 39, 84, 46, 62, 219, 247, 186, 209,
- 105, 232, 136, 39, 84, 51, 62, 219, 247, 247, 162, 209, 105, 232, 136,
- 39, 84, 229, 5, 234, 105, 38, 34, 46, 230, 78, 38, 34, 51, 230, 78, 38,
- 55, 199, 91, 46, 230, 78, 38, 55, 199, 91, 51, 230, 78, 38, 217, 215, 46,
- 230, 78, 38, 217, 215, 51, 230, 78, 38, 239, 9, 217, 214, 38, 34, 46,
- 138, 63, 38, 34, 51, 138, 63, 38, 199, 91, 46, 138, 63, 38, 199, 91, 51,
- 138, 63, 38, 217, 215, 46, 138, 63, 38, 217, 215, 51, 138, 63, 38, 239,
- 9, 217, 215, 63, 38, 42, 199, 61, 46, 230, 78, 38, 42, 199, 61, 51, 230,
- 78, 209, 105, 232, 136, 39, 84, 103, 78, 220, 40, 209, 105, 232, 136, 39,
- 84, 234, 100, 237, 185, 209, 105, 232, 136, 39, 84, 234, 89, 237, 185,
- 209, 105, 232, 136, 39, 84, 132, 219, 175, 209, 105, 232, 136, 39, 84,
- 194, 121, 132, 219, 175, 209, 105, 232, 136, 39, 84, 46, 210, 230, 209,
- 105, 232, 136, 39, 84, 51, 210, 230, 209, 105, 232, 136, 39, 84, 46, 238,
- 138, 186, 209, 105, 232, 136, 39, 84, 51, 238, 138, 186, 209, 105, 232,
- 136, 39, 84, 46, 198, 237, 204, 2, 186, 209, 105, 232, 136, 39, 84, 51,
- 198, 237, 204, 2, 186, 209, 105, 232, 136, 39, 84, 46, 60, 219, 247, 186,
- 209, 105, 232, 136, 39, 84, 51, 60, 219, 247, 186, 209, 105, 232, 136,
- 39, 84, 46, 55, 250, 208, 186, 209, 105, 232, 136, 39, 84, 51, 55, 250,
- 208, 186, 209, 105, 232, 136, 39, 84, 46, 250, 208, 186, 209, 105, 232,
- 136, 39, 84, 51, 250, 208, 186, 209, 105, 232, 136, 39, 84, 46, 238, 224,
- 186, 209, 105, 232, 136, 39, 84, 51, 238, 224, 186, 209, 105, 232, 136,
- 39, 84, 46, 62, 238, 224, 186, 209, 105, 232, 136, 39, 84, 51, 62, 238,
- 224, 186, 204, 155, 236, 114, 62, 204, 155, 236, 114, 209, 105, 232, 136,
- 39, 84, 46, 50, 186, 209, 105, 232, 136, 39, 84, 51, 50, 186, 237, 184,
- 211, 109, 246, 134, 211, 109, 194, 121, 211, 109, 55, 194, 121, 211, 109,
- 237, 184, 132, 219, 175, 246, 134, 132, 219, 175, 194, 121, 132, 219,
- 175, 2, 242, 38, 2, 149, 242, 38, 2, 232, 71, 201, 238, 2, 204, 180, 2,
- 242, 47, 2, 208, 159, 77, 2, 233, 204, 77, 2, 234, 100, 237, 185, 2, 46,
- 210, 230, 2, 51, 210, 230, 2, 46, 238, 138, 186, 2, 51, 238, 138, 186, 2,
- 46, 198, 237, 204, 2, 186, 2, 51, 198, 237, 204, 2, 186, 2, 31, 57, 2,
- 250, 229, 2, 250, 37, 2, 102, 57, 2, 228, 110, 2, 219, 240, 57, 2, 230,
- 204, 57, 2, 234, 30, 57, 2, 207, 169, 202, 189, 2, 236, 127, 57, 2, 210,
- 133, 57, 2, 242, 36, 250, 26, 9, 233, 57, 72, 20, 9, 200, 103, 4, 233,
- 57, 58, 9, 237, 214, 72, 20, 9, 200, 148, 232, 108, 9, 222, 85, 72, 20,
- 9, 233, 59, 72, 20, 9, 233, 59, 217, 35, 20, 9, 237, 216, 72, 20, 9, 237,
- 216, 217, 35, 20, 9, 222, 87, 72, 20, 9, 222, 87, 217, 35, 20, 9, 204,
- 55, 72, 20, 9, 204, 55, 217, 35, 20, 9, 201, 132, 72, 20, 9, 201, 132,
- 217, 35, 20, 9, 1, 230, 67, 72, 20, 9, 1, 157, 4, 217, 210, 95, 72, 20,
- 9, 1, 157, 4, 217, 210, 95, 52, 20, 9, 1, 157, 4, 230, 67, 95, 72, 20, 9,
- 1, 157, 4, 230, 67, 95, 52, 20, 9, 1, 194, 120, 4, 230, 67, 95, 72, 20,
- 9, 1, 194, 120, 4, 230, 67, 95, 52, 20, 9, 1, 157, 4, 230, 67, 248, 84,
- 72, 20, 9, 1, 157, 4, 230, 67, 248, 84, 52, 20, 9, 1, 97, 4, 230, 67, 95,
- 72, 20, 9, 1, 97, 4, 230, 67, 95, 52, 20, 9, 1, 97, 4, 230, 67, 95, 88,
- 20, 9, 1, 97, 4, 230, 67, 95, 217, 35, 20, 9, 1, 157, 72, 20, 9, 1, 157,
- 52, 20, 9, 1, 248, 97, 72, 20, 9, 1, 248, 97, 52, 20, 9, 1, 248, 97, 88,
- 20, 9, 1, 248, 97, 217, 35, 20, 9, 1, 200, 50, 217, 134, 72, 20, 9, 1,
- 200, 50, 217, 134, 52, 20, 9, 1, 200, 50, 72, 20, 9, 1, 200, 50, 52, 20,
- 9, 1, 200, 50, 88, 20, 9, 1, 200, 50, 217, 35, 20, 9, 1, 199, 221, 72,
- 20, 9, 1, 199, 221, 52, 20, 9, 1, 199, 221, 88, 20, 9, 1, 199, 221, 217,
- 35, 20, 9, 1, 223, 38, 72, 20, 9, 1, 223, 38, 52, 20, 9, 1, 223, 38, 88,
- 20, 9, 1, 223, 38, 217, 35, 20, 9, 1, 176, 72, 20, 9, 1, 176, 52, 20, 9,
- 1, 176, 88, 20, 9, 1, 176, 217, 35, 20, 9, 1, 221, 246, 72, 20, 9, 1,
- 221, 246, 52, 20, 9, 1, 221, 246, 88, 20, 9, 1, 221, 246, 217, 35, 20, 9,
- 1, 237, 228, 72, 20, 9, 1, 237, 228, 52, 20, 9, 1, 199, 233, 72, 20, 9,
- 1, 199, 233, 52, 20, 9, 1, 207, 222, 72, 20, 9, 1, 207, 222, 52, 20, 9,
- 1, 192, 104, 72, 20, 9, 1, 192, 104, 52, 20, 9, 1, 205, 202, 72, 20, 9,
- 1, 205, 202, 52, 20, 9, 1, 205, 202, 88, 20, 9, 1, 205, 202, 217, 35, 20,
- 9, 1, 204, 9, 72, 20, 9, 1, 204, 9, 52, 20, 9, 1, 204, 9, 88, 20, 9, 1,
- 204, 9, 217, 35, 20, 9, 1, 206, 87, 72, 20, 9, 1, 206, 87, 52, 20, 9, 1,
- 206, 87, 88, 20, 9, 1, 206, 87, 217, 35, 20, 9, 1, 237, 251, 72, 20, 9,
- 1, 237, 251, 52, 20, 9, 1, 237, 251, 88, 20, 9, 1, 237, 251, 217, 35, 20,
- 9, 1, 200, 152, 72, 20, 9, 1, 200, 152, 52, 20, 9, 1, 200, 152, 88, 20,
- 9, 1, 200, 152, 217, 35, 20, 9, 1, 192, 107, 72, 20, 9, 1, 192, 107, 52,
- 20, 9, 1, 192, 107, 88, 20, 9, 1, 192, 107, 217, 35, 20, 9, 1, 251, 58,
- 72, 20, 9, 1, 251, 58, 52, 20, 9, 1, 251, 58, 88, 20, 9, 1, 251, 58, 217,
- 35, 20, 9, 1, 231, 80, 72, 20, 9, 1, 231, 80, 52, 20, 9, 1, 231, 80, 88,
- 20, 9, 1, 231, 80, 217, 35, 20, 9, 1, 233, 35, 72, 20, 9, 1, 233, 35, 52,
- 20, 9, 1, 233, 35, 88, 20, 9, 1, 233, 35, 217, 35, 20, 9, 1, 208, 233,
- 72, 20, 9, 1, 208, 233, 52, 20, 9, 1, 208, 233, 88, 20, 9, 1, 208, 233,
- 217, 35, 20, 9, 1, 222, 140, 72, 20, 9, 1, 222, 140, 52, 20, 9, 1, 222,
- 140, 88, 20, 9, 1, 222, 140, 217, 35, 20, 9, 1, 220, 95, 72, 20, 9, 1,
- 220, 95, 52, 20, 9, 1, 220, 95, 88, 20, 9, 1, 220, 95, 217, 35, 20, 9, 1,
- 91, 72, 20, 9, 1, 91, 52, 20, 9, 1, 91, 88, 20, 9, 1, 91, 217, 35, 20, 9,
- 1, 213, 124, 72, 20, 9, 1, 213, 124, 52, 20, 9, 1, 213, 124, 88, 20, 9,
- 1, 213, 124, 217, 35, 20, 9, 1, 229, 221, 72, 20, 9, 1, 229, 221, 52, 20,
- 9, 1, 229, 221, 88, 20, 9, 1, 229, 221, 217, 35, 20, 9, 1, 194, 120, 72,
- 20, 9, 1, 194, 120, 52, 20, 9, 1, 157, 217, 169, 72, 20, 9, 1, 157, 217,
- 169, 52, 20, 9, 1, 97, 72, 20, 9, 1, 97, 52, 20, 9, 1, 97, 88, 20, 9, 1,
- 97, 217, 35, 20, 9, 34, 220, 95, 4, 157, 4, 217, 210, 95, 72, 20, 9, 34,
- 220, 95, 4, 157, 4, 217, 210, 95, 52, 20, 9, 34, 220, 95, 4, 157, 4, 230,
- 67, 95, 72, 20, 9, 34, 220, 95, 4, 157, 4, 230, 67, 95, 52, 20, 9, 34,
- 220, 95, 4, 157, 4, 230, 67, 248, 84, 72, 20, 9, 34, 220, 95, 4, 157, 4,
- 230, 67, 248, 84, 52, 20, 9, 34, 220, 95, 4, 157, 72, 20, 9, 34, 220, 95,
- 4, 157, 52, 20, 192, 77, 194, 61, 213, 136, 202, 160, 183, 233, 204, 77,
- 183, 208, 142, 77, 183, 31, 57, 183, 236, 127, 57, 183, 210, 133, 57,
- 183, 250, 229, 183, 250, 147, 183, 46, 210, 230, 183, 51, 210, 230, 183,
- 250, 37, 183, 102, 57, 183, 242, 38, 183, 228, 110, 183, 232, 71, 201,
- 238, 183, 202, 189, 183, 17, 192, 76, 183, 17, 101, 183, 17, 104, 183,
- 17, 133, 183, 17, 134, 183, 17, 151, 183, 17, 170, 183, 17, 179, 183, 17,
- 174, 183, 17, 182, 183, 242, 47, 183, 204, 180, 183, 219, 240, 57, 183,
- 234, 30, 57, 183, 230, 204, 57, 183, 208, 159, 77, 183, 242, 36, 250, 26,
- 183, 8, 6, 1, 64, 183, 8, 6, 1, 249, 226, 183, 8, 6, 1, 247, 52, 183, 8,
- 6, 1, 238, 95, 183, 8, 6, 1, 71, 183, 8, 6, 1, 233, 163, 183, 8, 6, 1,
- 232, 44, 183, 8, 6, 1, 230, 124, 183, 8, 6, 1, 70, 183, 8, 6, 1, 223, 65,
- 183, 8, 6, 1, 222, 184, 183, 8, 6, 1, 165, 183, 8, 6, 1, 218, 236, 183,
- 8, 6, 1, 215, 151, 183, 8, 6, 1, 74, 183, 8, 6, 1, 211, 93, 183, 8, 6, 1,
- 208, 247, 183, 8, 6, 1, 150, 183, 8, 6, 1, 206, 158, 183, 8, 6, 1, 200,
- 228, 183, 8, 6, 1, 68, 183, 8, 6, 1, 196, 236, 183, 8, 6, 1, 194, 202,
- 183, 8, 6, 1, 193, 223, 183, 8, 6, 1, 193, 148, 183, 8, 6, 1, 192, 155,
- 183, 46, 50, 186, 183, 207, 169, 202, 189, 183, 51, 50, 186, 183, 242,
- 122, 251, 143, 183, 132, 219, 175, 183, 230, 211, 251, 143, 183, 8, 2, 1,
- 64, 183, 8, 2, 1, 249, 226, 183, 8, 2, 1, 247, 52, 183, 8, 2, 1, 238, 95,
- 183, 8, 2, 1, 71, 183, 8, 2, 1, 233, 163, 183, 8, 2, 1, 232, 44, 183, 8,
- 2, 1, 230, 124, 183, 8, 2, 1, 70, 183, 8, 2, 1, 223, 65, 183, 8, 2, 1,
- 222, 184, 183, 8, 2, 1, 165, 183, 8, 2, 1, 218, 236, 183, 8, 2, 1, 215,
- 151, 183, 8, 2, 1, 74, 183, 8, 2, 1, 211, 93, 183, 8, 2, 1, 208, 247,
- 183, 8, 2, 1, 150, 183, 8, 2, 1, 206, 158, 183, 8, 2, 1, 200, 228, 183,
- 8, 2, 1, 68, 183, 8, 2, 1, 196, 236, 183, 8, 2, 1, 194, 202, 183, 8, 2,
- 1, 193, 223, 183, 8, 2, 1, 193, 148, 183, 8, 2, 1, 192, 155, 183, 46,
- 238, 138, 186, 183, 84, 219, 175, 183, 51, 238, 138, 186, 183, 199, 90,
- 183, 46, 62, 210, 230, 183, 51, 62, 210, 230, 145, 149, 232, 71, 201,
- 238, 145, 46, 238, 224, 186, 145, 51, 238, 224, 186, 145, 149, 242, 38,
- 145, 75, 85, 236, 114, 145, 75, 1, 194, 36, 145, 75, 1, 2, 64, 145, 75,
- 1, 2, 70, 145, 75, 1, 2, 68, 145, 75, 1, 2, 71, 145, 75, 1, 2, 74, 145,
- 75, 1, 2, 168, 145, 75, 1, 2, 192, 214, 145, 75, 1, 2, 193, 1, 145, 75,
- 1, 2, 198, 45, 145, 222, 82, 209, 76, 202, 174, 77, 145, 75, 1, 64, 145,
- 75, 1, 70, 145, 75, 1, 68, 145, 75, 1, 71, 145, 75, 1, 74, 145, 75, 1,
- 160, 145, 75, 1, 221, 204, 145, 75, 1, 221, 33, 145, 75, 1, 222, 57, 145,
- 75, 1, 221, 113, 145, 75, 1, 188, 145, 75, 1, 203, 125, 145, 75, 1, 201,
- 184, 145, 75, 1, 205, 223, 145, 75, 1, 202, 212, 145, 75, 1, 189, 145,
- 75, 1, 199, 128, 145, 75, 1, 198, 45, 145, 75, 1, 200, 79, 145, 75, 1,
- 155, 145, 75, 1, 181, 145, 75, 1, 214, 60, 145, 75, 1, 213, 22, 145, 75,
- 1, 214, 214, 145, 75, 1, 213, 142, 145, 75, 1, 144, 145, 75, 1, 229, 178,
- 145, 75, 1, 228, 181, 145, 75, 1, 229, 255, 145, 75, 1, 229, 43, 145, 75,
- 1, 172, 145, 75, 1, 216, 175, 145, 75, 1, 215, 241, 145, 75, 1, 217, 48,
- 145, 75, 1, 216, 91, 145, 75, 1, 168, 145, 75, 1, 192, 214, 145, 75, 1,
- 193, 1, 145, 75, 1, 167, 145, 75, 1, 207, 151, 145, 75, 1, 206, 218, 145,
- 75, 1, 208, 7, 145, 75, 1, 207, 55, 145, 75, 1, 194, 169, 145, 75, 1,
- 215, 151, 145, 75, 195, 248, 202, 174, 77, 145, 75, 204, 185, 202, 174,
- 77, 145, 30, 232, 247, 145, 30, 1, 221, 151, 145, 30, 1, 202, 84, 145,
- 30, 1, 221, 144, 145, 30, 1, 214, 45, 145, 30, 1, 214, 43, 145, 30, 1,
- 214, 42, 145, 30, 1, 199, 103, 145, 30, 1, 202, 73, 145, 30, 1, 207, 133,
- 145, 30, 1, 207, 128, 145, 30, 1, 207, 125, 145, 30, 1, 207, 118, 145,
- 30, 1, 207, 113, 145, 30, 1, 207, 108, 145, 30, 1, 207, 119, 145, 30, 1,
- 207, 131, 145, 30, 1, 216, 153, 145, 30, 1, 210, 36, 145, 30, 1, 202, 81,
- 145, 30, 1, 210, 25, 145, 30, 1, 203, 64, 145, 30, 1, 202, 78, 145, 30,
- 1, 223, 247, 145, 30, 1, 242, 144, 145, 30, 1, 202, 88, 145, 30, 1, 242,
- 211, 145, 30, 1, 221, 225, 145, 30, 1, 199, 198, 145, 30, 1, 210, 75,
- 145, 30, 1, 229, 162, 145, 30, 1, 64, 145, 30, 1, 251, 108, 145, 30, 1,
- 168, 145, 30, 1, 193, 118, 145, 30, 1, 234, 50, 145, 30, 1, 71, 145, 30,
- 1, 193, 56, 145, 30, 1, 193, 69, 145, 30, 1, 74, 145, 30, 1, 194, 169,
- 145, 30, 1, 194, 160, 145, 30, 1, 212, 0, 145, 30, 1, 193, 1, 145, 30, 1,
- 68, 145, 30, 1, 194, 93, 145, 30, 1, 194, 111, 145, 30, 1, 194, 72, 145,
- 30, 1, 192, 214, 145, 30, 1, 233, 230, 145, 30, 1, 193, 22, 145, 30, 1,
- 70, 183, 246, 140, 57, 183, 209, 143, 57, 183, 213, 111, 57, 183, 217,
- 214, 183, 247, 136, 161, 183, 193, 60, 57, 183, 194, 19, 57, 145, 232,
- 131, 152, 196, 105, 145, 114, 54, 145, 197, 30, 54, 145, 94, 54, 145,
- 235, 92, 54, 145, 60, 202, 106, 145, 62, 242, 130, 223, 134, 250, 193,
- 250, 219, 223, 134, 250, 193, 204, 165, 223, 134, 250, 193, 200, 15, 212,
- 19, 207, 193, 246, 99, 207, 193, 246, 99, 32, 76, 5, 249, 210, 64, 32,
- 76, 5, 249, 179, 71, 32, 76, 5, 249, 188, 70, 32, 76, 5, 249, 156, 74,
- 32, 76, 5, 249, 206, 68, 32, 76, 5, 249, 225, 238, 0, 32, 76, 5, 249,
- 172, 237, 116, 32, 76, 5, 249, 212, 237, 16, 32, 76, 5, 249, 202, 236,
- 146, 32, 76, 5, 249, 166, 235, 62, 32, 76, 5, 249, 160, 223, 62, 32, 76,
- 5, 249, 171, 223, 41, 32, 76, 5, 249, 181, 222, 233, 32, 76, 5, 249, 152,
- 222, 214, 32, 76, 5, 249, 140, 160, 32, 76, 5, 249, 173, 222, 57, 32, 76,
- 5, 249, 150, 221, 204, 32, 76, 5, 249, 147, 221, 113, 32, 76, 5, 249,
- 136, 221, 33, 32, 76, 5, 249, 137, 172, 32, 76, 5, 249, 203, 217, 48, 32,
- 76, 5, 249, 144, 216, 175, 32, 76, 5, 249, 201, 216, 91, 32, 76, 5, 249,
- 193, 215, 241, 32, 76, 5, 249, 214, 181, 32, 76, 5, 249, 192, 214, 214,
- 32, 76, 5, 249, 186, 214, 60, 32, 76, 5, 249, 165, 213, 142, 32, 76, 5,
- 249, 162, 213, 22, 32, 76, 5, 249, 221, 166, 32, 76, 5, 249, 145, 210,
- 181, 32, 76, 5, 249, 178, 210, 51, 32, 76, 5, 249, 205, 209, 198, 32, 76,
- 5, 249, 167, 209, 51, 32, 76, 5, 249, 200, 208, 239, 32, 76, 5, 249, 139,
- 208, 219, 32, 76, 5, 249, 195, 208, 201, 32, 76, 5, 249, 184, 208, 189,
- 32, 76, 5, 249, 157, 167, 32, 76, 5, 249, 189, 208, 7, 32, 76, 5, 249,
- 164, 207, 151, 32, 76, 5, 249, 223, 207, 55, 32, 76, 5, 249, 190, 206,
- 218, 32, 76, 5, 249, 185, 188, 32, 76, 5, 249, 208, 205, 223, 32, 76, 5,
- 249, 176, 203, 125, 32, 76, 5, 249, 204, 202, 212, 32, 76, 5, 249, 159,
- 201, 184, 32, 76, 5, 249, 158, 189, 32, 76, 5, 249, 219, 200, 79, 32, 76,
- 5, 249, 180, 199, 128, 32, 76, 5, 249, 217, 155, 32, 76, 5, 249, 148,
- 198, 45, 32, 76, 5, 249, 163, 194, 169, 32, 76, 5, 249, 142, 194, 111,
- 32, 76, 5, 249, 177, 194, 72, 32, 76, 5, 249, 175, 194, 36, 32, 76, 5,
- 249, 199, 192, 112, 32, 76, 5, 249, 143, 192, 85, 32, 76, 5, 249, 196,
- 192, 8, 32, 76, 5, 249, 191, 254, 42, 32, 76, 5, 249, 174, 253, 186, 32,
- 76, 5, 249, 133, 250, 8, 32, 76, 5, 249, 146, 235, 27, 32, 76, 5, 249,
- 129, 235, 26, 32, 76, 5, 249, 169, 212, 210, 32, 76, 5, 249, 187, 209,
- 49, 32, 76, 5, 249, 155, 209, 53, 32, 76, 5, 249, 141, 208, 70, 32, 76,
- 5, 249, 183, 208, 69, 32, 76, 5, 249, 149, 207, 48, 32, 76, 5, 249, 151,
- 200, 175, 32, 76, 5, 249, 131, 197, 248, 32, 76, 5, 249, 128, 104, 32,
- 76, 16, 249, 198, 32, 76, 16, 249, 197, 32, 76, 16, 249, 194, 32, 76, 16,
- 249, 182, 32, 76, 16, 249, 170, 32, 76, 16, 249, 168, 32, 76, 16, 249,
- 161, 32, 76, 16, 249, 154, 32, 76, 16, 249, 153, 32, 76, 16, 249, 138,
- 32, 76, 16, 249, 135, 32, 76, 16, 249, 134, 32, 76, 16, 249, 132, 32, 76,
- 16, 249, 130, 32, 76, 153, 249, 127, 217, 160, 32, 76, 153, 249, 126,
- 194, 23, 32, 76, 153, 249, 125, 237, 98, 32, 76, 153, 249, 124, 234, 27,
- 32, 76, 153, 249, 123, 217, 127, 32, 76, 153, 249, 122, 202, 27, 32, 76,
- 153, 249, 121, 233, 211, 32, 76, 153, 249, 120, 208, 34, 32, 76, 153,
- 249, 119, 204, 11, 32, 76, 153, 249, 118, 229, 247, 32, 76, 153, 249,
- 117, 202, 168, 32, 76, 153, 249, 116, 247, 218, 32, 76, 153, 249, 115,
- 238, 205, 32, 76, 153, 249, 114, 247, 108, 32, 76, 153, 249, 113, 194,
- 81, 32, 76, 153, 249, 112, 248, 190, 32, 76, 153, 249, 111, 211, 221, 32,
- 76, 153, 249, 110, 202, 138, 32, 76, 153, 249, 109, 238, 103, 32, 76,
- 216, 45, 249, 108, 222, 108, 32, 76, 216, 45, 249, 107, 222, 119, 32, 76,
- 153, 249, 106, 211, 236, 32, 76, 153, 249, 105, 194, 48, 32, 76, 153,
- 249, 104, 32, 76, 216, 45, 249, 103, 250, 105, 32, 76, 216, 45, 249, 102,
- 216, 253, 32, 76, 153, 249, 101, 247, 135, 32, 76, 153, 249, 100, 230,
- 245, 32, 76, 153, 249, 99, 32, 76, 153, 249, 98, 194, 14, 32, 76, 153,
- 249, 97, 32, 76, 153, 249, 96, 32, 76, 153, 249, 95, 228, 208, 32, 76,
- 153, 249, 94, 32, 76, 153, 249, 93, 32, 76, 153, 249, 92, 32, 76, 216,
- 45, 249, 90, 198, 7, 32, 76, 153, 249, 89, 32, 76, 153, 249, 88, 32, 76,
- 153, 249, 87, 242, 78, 32, 76, 153, 249, 86, 32, 76, 153, 249, 85, 32,
- 76, 153, 249, 84, 231, 189, 32, 76, 153, 249, 83, 250, 90, 32, 76, 153,
- 249, 82, 32, 76, 153, 249, 81, 32, 76, 153, 249, 80, 32, 76, 153, 249,
- 79, 32, 76, 153, 249, 78, 32, 76, 153, 249, 77, 32, 76, 153, 249, 76, 32,
- 76, 153, 249, 75, 32, 76, 153, 249, 74, 32, 76, 153, 249, 73, 216, 37,
- 32, 76, 153, 249, 72, 32, 76, 153, 249, 71, 198, 195, 32, 76, 153, 249,
- 70, 32, 76, 153, 249, 69, 32, 76, 153, 249, 68, 32, 76, 153, 249, 67, 32,
- 76, 153, 249, 66, 32, 76, 153, 249, 65, 32, 76, 153, 249, 64, 32, 76,
- 153, 249, 63, 32, 76, 153, 249, 62, 32, 76, 153, 249, 61, 32, 76, 153,
- 249, 60, 32, 76, 153, 249, 59, 229, 210, 32, 76, 153, 249, 38, 232, 145,
- 32, 76, 153, 249, 35, 248, 165, 32, 76, 153, 249, 30, 202, 146, 32, 76,
- 153, 249, 29, 54, 32, 76, 153, 249, 28, 32, 76, 153, 249, 27, 201, 60,
- 32, 76, 153, 249, 26, 32, 76, 153, 249, 25, 32, 76, 153, 249, 24, 194,
- 76, 242, 254, 32, 76, 153, 249, 23, 242, 254, 32, 76, 153, 249, 22, 242,
- 255, 232, 104, 32, 76, 153, 249, 21, 194, 79, 32, 76, 153, 249, 20, 32,
- 76, 153, 249, 19, 32, 76, 216, 45, 249, 18, 236, 207, 32, 76, 153, 249,
- 17, 32, 76, 153, 249, 16, 32, 76, 153, 249, 14, 32, 76, 153, 249, 13, 32,
- 76, 153, 249, 12, 32, 76, 153, 249, 11, 237, 188, 32, 76, 153, 249, 10,
- 32, 76, 153, 249, 9, 32, 76, 153, 249, 8, 32, 76, 153, 249, 7, 32, 76,
- 153, 249, 6, 32, 76, 153, 196, 52, 249, 91, 32, 76, 153, 196, 52, 249,
- 58, 32, 76, 153, 196, 52, 249, 57, 32, 76, 153, 196, 52, 249, 56, 32, 76,
- 153, 196, 52, 249, 55, 32, 76, 153, 196, 52, 249, 54, 32, 76, 153, 196,
- 52, 249, 53, 32, 76, 153, 196, 52, 249, 52, 32, 76, 153, 196, 52, 249,
- 51, 32, 76, 153, 196, 52, 249, 50, 32, 76, 153, 196, 52, 249, 49, 32, 76,
- 153, 196, 52, 249, 48, 32, 76, 153, 196, 52, 249, 47, 32, 76, 153, 196,
- 52, 249, 46, 32, 76, 153, 196, 52, 249, 45, 32, 76, 153, 196, 52, 249,
- 44, 32, 76, 153, 196, 52, 249, 43, 32, 76, 153, 196, 52, 249, 42, 32, 76,
- 153, 196, 52, 249, 41, 32, 76, 153, 196, 52, 249, 40, 32, 76, 153, 196,
- 52, 249, 39, 32, 76, 153, 196, 52, 249, 37, 32, 76, 153, 196, 52, 249,
- 36, 32, 76, 153, 196, 52, 249, 34, 32, 76, 153, 196, 52, 249, 33, 32, 76,
- 153, 196, 52, 249, 32, 32, 76, 153, 196, 52, 249, 31, 32, 76, 153, 196,
- 52, 249, 15, 32, 76, 153, 196, 52, 249, 5, 251, 101, 194, 11, 204, 166,
- 219, 175, 251, 101, 194, 11, 204, 166, 236, 114, 251, 101, 242, 244, 77,
- 251, 101, 31, 101, 251, 101, 31, 104, 251, 101, 31, 133, 251, 101, 31,
- 134, 251, 101, 31, 151, 251, 101, 31, 170, 251, 101, 31, 179, 251, 101,
- 31, 174, 251, 101, 31, 182, 251, 101, 31, 200, 30, 251, 101, 31, 197,
- 239, 251, 101, 31, 199, 184, 251, 101, 31, 232, 126, 251, 101, 31, 233,
- 3, 251, 101, 31, 203, 25, 251, 101, 31, 204, 140, 251, 101, 31, 234, 137,
- 251, 101, 31, 214, 11, 251, 101, 31, 90, 228, 162, 251, 101, 31, 103,
- 228, 162, 251, 101, 31, 112, 228, 162, 251, 101, 31, 232, 119, 228, 162,
- 251, 101, 31, 232, 214, 228, 162, 251, 101, 31, 203, 41, 228, 162, 251,
- 101, 31, 204, 146, 228, 162, 251, 101, 31, 234, 148, 228, 162, 251, 101,
- 31, 214, 16, 228, 162, 251, 101, 31, 90, 180, 251, 101, 31, 103, 180,
- 251, 101, 31, 112, 180, 251, 101, 31, 232, 119, 180, 251, 101, 31, 232,
- 214, 180, 251, 101, 31, 203, 41, 180, 251, 101, 31, 204, 146, 180, 251,
- 101, 31, 234, 148, 180, 251, 101, 31, 214, 16, 180, 251, 101, 31, 200,
- 31, 180, 251, 101, 31, 197, 240, 180, 251, 101, 31, 199, 185, 180, 251,
- 101, 31, 232, 127, 180, 251, 101, 31, 233, 4, 180, 251, 101, 31, 203, 26,
- 180, 251, 101, 31, 204, 141, 180, 251, 101, 31, 234, 138, 180, 251, 101,
- 31, 214, 12, 180, 251, 101, 194, 96, 248, 181, 197, 54, 251, 101, 194,
- 96, 232, 226, 201, 149, 251, 101, 194, 96, 205, 212, 201, 149, 251, 101,
- 194, 96, 199, 192, 201, 149, 251, 101, 194, 96, 232, 112, 201, 149, 251,
- 101, 235, 65, 217, 44, 232, 226, 201, 149, 251, 101, 219, 156, 217, 44,
- 232, 226, 201, 149, 251, 101, 217, 44, 205, 212, 201, 149, 251, 101, 217,
- 44, 199, 192, 201, 149, 33, 251, 133, 250, 10, 90, 208, 167, 33, 251,
- 133, 250, 10, 90, 230, 78, 33, 251, 133, 250, 10, 90, 235, 88, 33, 251,
- 133, 250, 10, 151, 33, 251, 133, 250, 10, 233, 3, 33, 251, 133, 250, 10,
- 232, 214, 228, 162, 33, 251, 133, 250, 10, 232, 214, 180, 33, 251, 133,
- 250, 10, 233, 4, 180, 33, 251, 133, 250, 10, 232, 214, 200, 135, 33, 251,
- 133, 250, 10, 200, 31, 200, 135, 33, 251, 133, 250, 10, 233, 4, 200, 135,
- 33, 251, 133, 250, 10, 90, 228, 163, 200, 135, 33, 251, 133, 250, 10,
- 232, 214, 228, 163, 200, 135, 33, 251, 133, 250, 10, 90, 199, 165, 200,
- 135, 33, 251, 133, 250, 10, 232, 214, 199, 165, 200, 135, 33, 251, 133,
- 250, 10, 232, 214, 202, 11, 33, 251, 133, 250, 10, 200, 31, 202, 11, 33,
- 251, 133, 250, 10, 233, 4, 202, 11, 33, 251, 133, 250, 10, 90, 228, 163,
- 202, 11, 33, 251, 133, 250, 10, 232, 214, 228, 163, 202, 11, 33, 251,
- 133, 250, 10, 90, 199, 165, 202, 11, 33, 251, 133, 250, 10, 200, 31, 199,
- 165, 202, 11, 33, 251, 133, 250, 10, 233, 4, 199, 165, 202, 11, 33, 251,
- 133, 250, 10, 200, 31, 216, 94, 33, 251, 133, 229, 204, 90, 209, 217, 33,
- 251, 133, 199, 208, 101, 33, 251, 133, 229, 200, 101, 33, 251, 133, 234,
- 36, 104, 33, 251, 133, 199, 208, 104, 33, 251, 133, 238, 100, 103, 235,
- 87, 33, 251, 133, 234, 36, 103, 235, 87, 33, 251, 133, 198, 161, 151, 33,
- 251, 133, 198, 161, 200, 30, 33, 251, 133, 198, 161, 200, 31, 250, 249,
- 20, 33, 251, 133, 229, 200, 200, 30, 33, 251, 133, 216, 242, 200, 30, 33,
- 251, 133, 199, 208, 200, 30, 33, 251, 133, 199, 208, 199, 184, 33, 251,
- 133, 198, 161, 233, 3, 33, 251, 133, 198, 161, 233, 4, 250, 249, 20, 33,
- 251, 133, 229, 200, 233, 3, 33, 251, 133, 199, 208, 233, 3, 33, 251, 133,
- 199, 208, 90, 228, 162, 33, 251, 133, 199, 208, 112, 228, 162, 33, 251,
- 133, 234, 36, 232, 214, 228, 162, 33, 251, 133, 198, 161, 232, 214, 228,
- 162, 33, 251, 133, 199, 208, 232, 214, 228, 162, 33, 251, 133, 246, 197,
- 232, 214, 228, 162, 33, 251, 133, 215, 36, 232, 214, 228, 162, 33, 251,
- 133, 199, 208, 90, 180, 33, 251, 133, 199, 208, 232, 214, 180, 33, 251,
- 133, 237, 79, 232, 214, 216, 94, 33, 251, 133, 201, 226, 233, 4, 216, 94,
- 33, 90, 138, 57, 33, 90, 138, 3, 250, 249, 20, 33, 103, 199, 189, 57, 33,
- 112, 208, 166, 57, 33, 193, 67, 57, 33, 200, 136, 57, 33, 235, 89, 57,
- 33, 212, 16, 57, 33, 103, 212, 15, 57, 33, 112, 212, 15, 57, 33, 232,
- 119, 212, 15, 57, 33, 232, 214, 212, 15, 57, 33, 216, 236, 57, 33, 220,
- 210, 248, 181, 57, 33, 219, 149, 57, 33, 211, 127, 57, 33, 193, 200, 57,
- 33, 250, 68, 57, 33, 250, 85, 57, 33, 230, 220, 57, 33, 198, 121, 248,
- 181, 57, 33, 192, 77, 57, 33, 90, 208, 168, 57, 33, 203, 66, 57, 33, 223,
- 171, 57, 213, 131, 57, 207, 30, 204, 136, 57, 207, 30, 197, 70, 57, 207,
- 30, 204, 172, 57, 207, 30, 204, 74, 57, 207, 30, 236, 222, 204, 74, 57,
- 207, 30, 203, 90, 57, 207, 30, 237, 75, 57, 207, 30, 208, 151, 57, 207,
- 30, 204, 153, 57, 207, 30, 235, 41, 57, 207, 30, 250, 62, 57, 207, 30,
- 246, 133, 57, 250, 55, 109, 33, 16, 200, 101, 207, 153, 210, 89, 236,
- 199, 3, 210, 170, 210, 89, 236, 199, 3, 209, 209, 229, 245, 210, 89, 236,
- 199, 3, 200, 104, 229, 245, 210, 89, 236, 199, 3, 246, 220, 210, 89, 236,
- 199, 3, 242, 206, 210, 89, 236, 199, 3, 194, 23, 210, 89, 236, 199, 3,
- 229, 210, 210, 89, 236, 199, 3, 231, 181, 210, 89, 236, 199, 3, 199, 119,
- 210, 89, 236, 199, 3, 54, 210, 89, 236, 199, 3, 247, 180, 210, 89, 236,
- 199, 3, 203, 233, 210, 89, 236, 199, 3, 242, 71, 210, 89, 236, 199, 3,
- 217, 159, 210, 89, 236, 199, 3, 217, 97, 210, 89, 236, 199, 3, 206, 6,
- 210, 89, 236, 199, 3, 219, 204, 210, 89, 236, 199, 3, 247, 201, 210, 89,
- 236, 199, 3, 246, 204, 209, 225, 210, 89, 236, 199, 3, 236, 128, 210, 89,
- 236, 199, 3, 242, 44, 210, 89, 236, 199, 3, 202, 247, 210, 89, 236, 199,
- 3, 242, 45, 210, 89, 236, 199, 3, 248, 105, 210, 89, 236, 199, 3, 203,
- 220, 210, 89, 236, 199, 3, 228, 208, 210, 89, 236, 199, 3, 229, 168, 210,
- 89, 236, 199, 3, 247, 103, 220, 16, 210, 89, 236, 199, 3, 246, 193, 210,
- 89, 236, 199, 3, 208, 34, 210, 89, 236, 199, 3, 234, 196, 210, 89, 236,
- 199, 3, 235, 97, 210, 89, 236, 199, 3, 198, 23, 210, 89, 236, 199, 3,
- 248, 108, 210, 89, 236, 199, 3, 209, 226, 198, 195, 210, 89, 236, 199, 3,
- 196, 18, 210, 89, 236, 199, 3, 210, 248, 210, 89, 236, 199, 3, 207, 19,
- 210, 89, 236, 199, 3, 219, 188, 210, 89, 236, 199, 3, 211, 104, 248, 252,
- 210, 89, 236, 199, 3, 232, 171, 210, 89, 236, 199, 3, 230, 212, 210, 89,
- 236, 199, 3, 201, 227, 210, 89, 236, 199, 3, 2, 249, 237, 210, 89, 236,
- 199, 3, 194, 121, 248, 203, 210, 89, 236, 199, 3, 38, 212, 18, 111, 218,
- 249, 1, 64, 218, 249, 1, 71, 218, 249, 1, 249, 226, 218, 249, 1, 248, 55,
- 218, 249, 1, 232, 44, 218, 249, 1, 238, 95, 218, 249, 1, 70, 218, 249, 1,
- 194, 202, 218, 249, 1, 192, 155, 218, 249, 1, 199, 242, 218, 249, 1, 223,
- 65, 218, 249, 1, 222, 184, 218, 249, 1, 208, 247, 218, 249, 1, 165, 218,
- 249, 1, 218, 236, 218, 249, 1, 215, 151, 218, 249, 1, 216, 96, 218, 249,
- 1, 213, 179, 218, 249, 1, 68, 218, 249, 1, 211, 93, 218, 249, 1, 221,
- 140, 218, 249, 1, 150, 218, 249, 1, 206, 158, 218, 249, 1, 200, 228, 218,
- 249, 1, 198, 86, 218, 249, 1, 250, 224, 218, 249, 1, 234, 88, 218, 249,
- 1, 230, 124, 218, 249, 1, 193, 223, 246, 210, 1, 64, 246, 210, 1, 211,
- 79, 246, 210, 1, 238, 95, 246, 210, 1, 165, 246, 210, 1, 196, 249, 246,
- 210, 1, 150, 246, 210, 1, 220, 46, 246, 210, 1, 254, 42, 246, 210, 1,
- 208, 247, 246, 210, 1, 249, 226, 246, 210, 1, 218, 236, 246, 210, 1, 74,
- 246, 210, 1, 238, 2, 246, 210, 1, 200, 228, 246, 210, 1, 204, 66, 246,
- 210, 1, 204, 65, 246, 210, 1, 206, 158, 246, 210, 1, 247, 51, 246, 210,
- 1, 68, 246, 210, 1, 213, 179, 246, 210, 1, 193, 223, 246, 210, 1, 215,
- 151, 246, 210, 1, 198, 85, 246, 210, 1, 211, 93, 246, 210, 1, 202, 95,
- 246, 210, 1, 70, 246, 210, 1, 71, 246, 210, 1, 196, 246, 246, 210, 1,
- 222, 184, 246, 210, 1, 222, 175, 246, 210, 1, 215, 1, 246, 210, 1, 196,
- 251, 246, 210, 1, 232, 44, 246, 210, 1, 231, 235, 246, 210, 1, 202, 35,
- 246, 210, 1, 202, 34, 246, 210, 1, 214, 167, 246, 210, 1, 223, 224, 246,
- 210, 1, 247, 50, 246, 210, 1, 198, 86, 246, 210, 1, 196, 248, 246, 210,
- 1, 207, 4, 246, 210, 1, 217, 87, 246, 210, 1, 217, 86, 246, 210, 1, 217,
- 85, 246, 210, 1, 217, 84, 246, 210, 1, 220, 45, 246, 210, 1, 234, 200,
- 246, 210, 1, 196, 247, 92, 234, 39, 199, 164, 77, 92, 234, 39, 17, 101,
- 92, 234, 39, 17, 104, 92, 234, 39, 17, 133, 92, 234, 39, 17, 134, 92,
- 234, 39, 17, 151, 92, 234, 39, 17, 170, 92, 234, 39, 17, 179, 92, 234,
- 39, 17, 174, 92, 234, 39, 17, 182, 92, 234, 39, 31, 200, 30, 92, 234, 39,
- 31, 197, 239, 92, 234, 39, 31, 199, 184, 92, 234, 39, 31, 232, 126, 92,
- 234, 39, 31, 233, 3, 92, 234, 39, 31, 203, 25, 92, 234, 39, 31, 204, 140,
- 92, 234, 39, 31, 234, 137, 92, 234, 39, 31, 214, 11, 92, 234, 39, 31, 90,
- 228, 162, 92, 234, 39, 31, 103, 228, 162, 92, 234, 39, 31, 112, 228, 162,
- 92, 234, 39, 31, 232, 119, 228, 162, 92, 234, 39, 31, 232, 214, 228, 162,
- 92, 234, 39, 31, 203, 41, 228, 162, 92, 234, 39, 31, 204, 146, 228, 162,
- 92, 234, 39, 31, 234, 148, 228, 162, 92, 234, 39, 31, 214, 16, 228, 162,
- 40, 43, 1, 64, 40, 43, 1, 248, 123, 40, 43, 1, 222, 57, 40, 43, 1, 237,
- 116, 40, 43, 1, 71, 40, 43, 1, 196, 123, 40, 43, 1, 192, 85, 40, 43, 1,
- 229, 255, 40, 43, 1, 199, 224, 40, 43, 1, 70, 40, 43, 1, 160, 40, 43, 1,
- 234, 124, 40, 43, 1, 234, 99, 40, 43, 1, 234, 88, 40, 43, 1, 233, 255,
- 40, 43, 1, 74, 40, 43, 1, 210, 181, 40, 43, 1, 204, 12, 40, 43, 1, 221,
- 33, 40, 43, 1, 234, 21, 40, 43, 1, 234, 9, 40, 43, 1, 200, 79, 40, 43, 1,
- 68, 40, 43, 1, 234, 127, 40, 43, 1, 210, 80, 40, 43, 1, 221, 234, 40, 43,
- 1, 234, 164, 40, 43, 1, 234, 11, 40, 43, 1, 242, 245, 40, 43, 1, 223,
- 224, 40, 43, 1, 196, 251, 40, 43, 1, 233, 248, 40, 43, 212, 234, 101, 40,
- 43, 212, 234, 151, 40, 43, 212, 234, 200, 30, 40, 43, 212, 234, 233, 3,
- 40, 43, 1, 193, 69, 40, 43, 1, 213, 115, 198, 112, 40, 43, 1, 202, 169,
- 198, 112, 230, 230, 1, 251, 66, 230, 230, 1, 248, 223, 230, 230, 1, 231,
- 43, 230, 230, 1, 237, 237, 230, 230, 1, 251, 61, 230, 230, 1, 208, 230,
- 230, 230, 1, 223, 77, 230, 230, 1, 230, 91, 230, 230, 1, 199, 178, 230,
- 230, 1, 234, 135, 230, 230, 1, 220, 248, 230, 230, 1, 220, 159, 230, 230,
- 1, 217, 150, 230, 230, 1, 215, 38, 230, 230, 1, 223, 33, 230, 230, 1,
- 197, 13, 230, 230, 1, 211, 52, 230, 230, 1, 214, 11, 230, 230, 1, 208,
- 47, 230, 230, 1, 206, 10, 230, 230, 1, 200, 46, 230, 230, 1, 194, 46,
- 230, 230, 1, 233, 77, 230, 230, 1, 223, 228, 230, 230, 1, 228, 145, 230,
- 230, 1, 211, 139, 230, 230, 1, 214, 16, 228, 162, 40, 210, 124, 1, 250,
- 224, 40, 210, 124, 1, 247, 89, 40, 210, 124, 1, 231, 217, 40, 210, 124,
- 1, 236, 132, 40, 210, 124, 1, 71, 40, 210, 124, 1, 192, 53, 40, 210, 124,
- 1, 235, 9, 40, 210, 124, 1, 192, 93, 40, 210, 124, 1, 235, 7, 40, 210,
- 124, 1, 70, 40, 210, 124, 1, 221, 97, 40, 210, 124, 1, 220, 12, 40, 210,
- 124, 1, 217, 3, 40, 210, 124, 1, 214, 194, 40, 210, 124, 1, 195, 235, 40,
- 210, 124, 1, 210, 167, 40, 210, 124, 1, 207, 220, 40, 210, 124, 1, 203,
- 97, 40, 210, 124, 1, 200, 149, 40, 210, 124, 1, 68, 40, 210, 124, 1, 242,
- 226, 40, 210, 124, 1, 203, 202, 40, 210, 124, 1, 204, 14, 40, 210, 124,
- 1, 192, 216, 40, 210, 124, 1, 193, 47, 40, 210, 124, 1, 74, 40, 210, 124,
- 1, 211, 194, 40, 210, 124, 1, 234, 164, 40, 210, 124, 1, 144, 40, 210,
- 124, 1, 198, 96, 40, 210, 124, 1, 196, 110, 40, 210, 124, 1, 193, 51, 40,
- 210, 124, 1, 193, 49, 40, 210, 124, 1, 193, 84, 40, 210, 124, 1, 223,
- 251, 40, 210, 124, 1, 192, 214, 40, 210, 124, 1, 168, 40, 210, 124, 1,
- 228, 58, 38, 40, 210, 124, 1, 250, 224, 38, 40, 210, 124, 1, 236, 132,
- 38, 40, 210, 124, 1, 192, 93, 38, 40, 210, 124, 1, 214, 194, 38, 40, 210,
- 124, 1, 203, 97, 197, 98, 1, 251, 0, 197, 98, 1, 248, 63, 197, 98, 1,
- 231, 205, 197, 98, 1, 221, 250, 197, 98, 1, 237, 76, 197, 98, 1, 229, 43,
- 197, 98, 1, 194, 36, 197, 98, 1, 192, 75, 197, 98, 1, 228, 200, 197, 98,
- 1, 200, 8, 197, 98, 1, 192, 239, 197, 98, 1, 222, 139, 197, 98, 1, 203,
- 224, 197, 98, 1, 220, 90, 197, 98, 1, 217, 12, 197, 98, 1, 237, 36, 197,
- 98, 1, 212, 230, 197, 98, 1, 191, 252, 197, 98, 1, 206, 45, 197, 98, 1,
- 251, 57, 197, 98, 1, 209, 51, 197, 98, 1, 206, 85, 197, 98, 1, 208, 182,
- 197, 98, 1, 208, 25, 197, 98, 1, 199, 228, 197, 98, 1, 231, 79, 197, 98,
- 1, 155, 197, 98, 1, 70, 197, 98, 1, 68, 197, 98, 1, 202, 46, 197, 98,
- 194, 11, 236, 177, 40, 210, 118, 3, 64, 40, 210, 118, 3, 70, 40, 210,
- 118, 3, 68, 40, 210, 118, 3, 160, 40, 210, 118, 3, 221, 33, 40, 210, 118,
- 3, 231, 233, 40, 210, 118, 3, 230, 186, 40, 210, 118, 3, 193, 209, 40,
- 210, 118, 3, 247, 19, 40, 210, 118, 3, 223, 62, 40, 210, 118, 3, 223, 20,
- 40, 210, 118, 3, 189, 40, 210, 118, 3, 198, 45, 40, 210, 118, 3, 238, 0,
- 40, 210, 118, 3, 237, 16, 40, 210, 118, 3, 235, 62, 40, 210, 118, 3, 199,
- 240, 40, 210, 118, 3, 166, 40, 210, 118, 3, 249, 3, 40, 210, 118, 3, 233,
- 97, 40, 210, 118, 3, 181, 40, 210, 118, 3, 213, 22, 40, 210, 118, 3, 172,
- 40, 210, 118, 3, 216, 175, 40, 210, 118, 3, 215, 241, 40, 210, 118, 3,
- 168, 40, 210, 118, 3, 196, 157, 40, 210, 118, 3, 196, 39, 40, 210, 118,
- 3, 167, 40, 210, 118, 3, 206, 218, 40, 210, 118, 3, 177, 40, 210, 118, 3,
- 188, 40, 210, 118, 3, 192, 112, 40, 210, 118, 3, 204, 64, 40, 210, 118,
- 3, 202, 92, 40, 210, 118, 3, 144, 40, 210, 118, 3, 250, 2, 40, 210, 118,
- 3, 250, 1, 40, 210, 118, 3, 250, 0, 40, 210, 118, 3, 193, 178, 40, 210,
- 118, 3, 237, 233, 40, 210, 118, 3, 237, 232, 40, 210, 118, 3, 248, 234,
- 40, 210, 118, 3, 247, 71, 40, 210, 118, 194, 11, 236, 177, 40, 210, 118,
- 31, 101, 40, 210, 118, 31, 104, 40, 210, 118, 31, 200, 30, 40, 210, 118,
- 31, 197, 239, 40, 210, 118, 31, 228, 162, 237, 56, 6, 1, 184, 70, 237,
- 56, 6, 1, 184, 71, 237, 56, 6, 1, 184, 64, 237, 56, 6, 1, 184, 251, 72,
- 237, 56, 6, 1, 184, 74, 237, 56, 6, 1, 184, 211, 194, 237, 56, 6, 1, 203,
- 195, 70, 237, 56, 6, 1, 203, 195, 71, 237, 56, 6, 1, 203, 195, 64, 237,
- 56, 6, 1, 203, 195, 251, 72, 237, 56, 6, 1, 203, 195, 74, 237, 56, 6, 1,
- 203, 195, 211, 194, 237, 56, 6, 1, 249, 236, 237, 56, 6, 1, 211, 106,
- 237, 56, 6, 1, 193, 244, 237, 56, 6, 1, 193, 66, 237, 56, 6, 1, 230, 124,
- 237, 56, 6, 1, 210, 168, 237, 56, 6, 1, 248, 108, 237, 56, 6, 1, 200, 56,
- 237, 56, 6, 1, 237, 101, 237, 56, 6, 1, 242, 241, 237, 56, 6, 1, 223, 39,
- 237, 56, 6, 1, 222, 64, 237, 56, 6, 1, 231, 179, 237, 56, 6, 1, 234, 164,
- 237, 56, 6, 1, 196, 118, 237, 56, 6, 1, 233, 235, 237, 56, 6, 1, 199,
- 222, 237, 56, 6, 1, 234, 9, 237, 56, 6, 1, 192, 82, 237, 56, 6, 1, 233,
- 255, 237, 56, 6, 1, 192, 61, 237, 56, 6, 1, 234, 21, 237, 56, 6, 1, 234,
- 124, 237, 56, 6, 1, 234, 99, 237, 56, 6, 1, 234, 88, 237, 56, 6, 1, 234,
- 73, 237, 56, 6, 1, 211, 238, 237, 56, 6, 1, 233, 212, 237, 56, 2, 1, 184,
- 70, 237, 56, 2, 1, 184, 71, 237, 56, 2, 1, 184, 64, 237, 56, 2, 1, 184,
- 251, 72, 237, 56, 2, 1, 184, 74, 237, 56, 2, 1, 184, 211, 194, 237, 56,
- 2, 1, 203, 195, 70, 237, 56, 2, 1, 203, 195, 71, 237, 56, 2, 1, 203, 195,
- 64, 237, 56, 2, 1, 203, 195, 251, 72, 237, 56, 2, 1, 203, 195, 74, 237,
- 56, 2, 1, 203, 195, 211, 194, 237, 56, 2, 1, 249, 236, 237, 56, 2, 1,
- 211, 106, 237, 56, 2, 1, 193, 244, 237, 56, 2, 1, 193, 66, 237, 56, 2, 1,
- 230, 124, 237, 56, 2, 1, 210, 168, 237, 56, 2, 1, 248, 108, 237, 56, 2,
- 1, 200, 56, 237, 56, 2, 1, 237, 101, 237, 56, 2, 1, 242, 241, 237, 56, 2,
- 1, 223, 39, 237, 56, 2, 1, 222, 64, 237, 56, 2, 1, 231, 179, 237, 56, 2,
- 1, 234, 164, 237, 56, 2, 1, 196, 118, 237, 56, 2, 1, 233, 235, 237, 56,
- 2, 1, 199, 222, 237, 56, 2, 1, 234, 9, 237, 56, 2, 1, 192, 82, 237, 56,
- 2, 1, 233, 255, 237, 56, 2, 1, 192, 61, 237, 56, 2, 1, 234, 21, 237, 56,
- 2, 1, 234, 124, 237, 56, 2, 1, 234, 99, 237, 56, 2, 1, 234, 88, 237, 56,
- 2, 1, 234, 73, 237, 56, 2, 1, 211, 238, 237, 56, 2, 1, 233, 212, 204, 19,
- 1, 210, 165, 204, 19, 1, 198, 235, 204, 19, 1, 221, 192, 204, 19, 1, 233,
- 40, 204, 19, 1, 199, 197, 204, 19, 1, 202, 212, 204, 19, 1, 201, 97, 204,
- 19, 1, 242, 160, 204, 19, 1, 193, 68, 204, 19, 1, 228, 159, 204, 19, 1,
- 248, 40, 204, 19, 1, 237, 115, 204, 19, 1, 231, 219, 204, 19, 1, 195,
- 230, 204, 19, 1, 199, 203, 204, 19, 1, 192, 5, 204, 19, 1, 217, 43, 204,
- 19, 1, 222, 212, 204, 19, 1, 194, 27, 204, 19, 1, 230, 101, 204, 19, 1,
- 219, 89, 204, 19, 1, 216, 121, 204, 19, 1, 223, 231, 204, 19, 1, 234,
- 162, 204, 19, 1, 250, 53, 204, 19, 1, 251, 113, 204, 19, 1, 211, 211,
- 204, 19, 1, 194, 14, 204, 19, 1, 211, 125, 204, 19, 1, 251, 72, 204, 19,
- 1, 207, 46, 204, 19, 1, 212, 230, 204, 19, 1, 234, 182, 204, 19, 1, 251,
- 77, 204, 19, 1, 228, 49, 204, 19, 1, 197, 41, 204, 19, 1, 212, 24, 204,
- 19, 1, 211, 186, 204, 19, 1, 211, 236, 204, 19, 1, 249, 239, 204, 19, 1,
- 250, 107, 204, 19, 1, 211, 163, 204, 19, 1, 251, 52, 204, 19, 1, 234, 13,
- 204, 19, 1, 250, 82, 204, 19, 1, 234, 193, 204, 19, 1, 228, 57, 204, 19,
- 1, 193, 30, 211, 141, 1, 251, 26, 211, 141, 1, 249, 3, 211, 141, 1, 189,
- 211, 141, 1, 223, 62, 211, 141, 1, 193, 209, 211, 141, 1, 221, 250, 211,
- 141, 1, 237, 100, 211, 141, 1, 167, 211, 141, 1, 188, 211, 141, 1, 203,
- 230, 211, 141, 1, 237, 40, 211, 141, 1, 246, 183, 211, 141, 1, 231, 233,
- 211, 141, 1, 233, 97, 211, 141, 1, 208, 237, 211, 141, 1, 222, 155, 211,
- 141, 1, 220, 180, 211, 141, 1, 216, 135, 211, 141, 1, 212, 214, 211, 141,
- 1, 194, 119, 211, 141, 1, 144, 211, 141, 1, 168, 211, 141, 1, 64, 211,
- 141, 1, 71, 211, 141, 1, 70, 211, 141, 1, 74, 211, 141, 1, 68, 211, 141,
- 1, 252, 33, 211, 141, 1, 234, 171, 211, 141, 1, 211, 194, 211, 141, 17,
- 192, 76, 211, 141, 17, 101, 211, 141, 17, 104, 211, 141, 17, 133, 211,
- 141, 17, 134, 211, 141, 17, 151, 211, 141, 17, 170, 211, 141, 17, 179,
- 211, 141, 17, 174, 211, 141, 17, 182, 211, 143, 6, 1, 64, 211, 143, 6, 1,
- 251, 63, 211, 143, 6, 1, 251, 57, 211, 143, 6, 1, 251, 72, 211, 143, 6,
- 1, 247, 167, 211, 143, 6, 1, 246, 117, 211, 143, 6, 1, 234, 156, 211,
- 143, 6, 1, 71, 211, 143, 6, 1, 234, 136, 211, 143, 6, 1, 144, 211, 143,
- 6, 1, 228, 115, 211, 143, 6, 1, 70, 211, 143, 6, 1, 160, 211, 143, 6, 1,
- 234, 155, 211, 143, 6, 1, 220, 212, 211, 143, 6, 1, 177, 211, 143, 6, 1,
- 172, 211, 143, 6, 1, 181, 211, 143, 6, 1, 74, 211, 143, 6, 1, 211, 235,
- 211, 143, 6, 1, 166, 211, 143, 6, 1, 234, 154, 211, 143, 6, 1, 188, 211,
- 143, 6, 1, 204, 64, 211, 143, 6, 1, 189, 211, 143, 6, 1, 234, 153, 211,
- 143, 6, 1, 198, 118, 211, 143, 6, 1, 234, 152, 211, 143, 6, 1, 198, 108,
- 211, 143, 6, 1, 237, 40, 211, 143, 6, 1, 68, 211, 143, 6, 1, 194, 169,
- 211, 143, 6, 1, 221, 250, 211, 143, 6, 1, 231, 84, 211, 143, 6, 1, 192,
- 112, 211, 143, 6, 1, 192, 71, 211, 143, 2, 1, 64, 211, 143, 2, 1, 251,
- 63, 211, 143, 2, 1, 251, 57, 211, 143, 2, 1, 251, 72, 211, 143, 2, 1,
- 247, 167, 211, 143, 2, 1, 246, 117, 211, 143, 2, 1, 234, 156, 211, 143,
- 2, 1, 71, 211, 143, 2, 1, 234, 136, 211, 143, 2, 1, 144, 211, 143, 2, 1,
- 228, 115, 211, 143, 2, 1, 70, 211, 143, 2, 1, 160, 211, 143, 2, 1, 234,
- 155, 211, 143, 2, 1, 220, 212, 211, 143, 2, 1, 177, 211, 143, 2, 1, 172,
- 211, 143, 2, 1, 181, 211, 143, 2, 1, 74, 211, 143, 2, 1, 211, 235, 211,
- 143, 2, 1, 166, 211, 143, 2, 1, 234, 154, 211, 143, 2, 1, 188, 211, 143,
- 2, 1, 204, 64, 211, 143, 2, 1, 189, 211, 143, 2, 1, 234, 153, 211, 143,
- 2, 1, 198, 118, 211, 143, 2, 1, 234, 152, 211, 143, 2, 1, 198, 108, 211,
- 143, 2, 1, 237, 40, 211, 143, 2, 1, 68, 211, 143, 2, 1, 194, 169, 211,
- 143, 2, 1, 221, 250, 211, 143, 2, 1, 231, 84, 211, 143, 2, 1, 192, 112,
- 211, 143, 2, 1, 192, 71, 234, 120, 1, 64, 234, 120, 1, 248, 123, 234,
- 120, 1, 246, 158, 234, 120, 1, 242, 245, 234, 120, 1, 237, 116, 234, 120,
- 1, 214, 247, 234, 120, 1, 237, 31, 234, 120, 1, 234, 150, 234, 120, 1,
- 71, 234, 120, 1, 233, 47, 234, 120, 1, 231, 158, 234, 120, 1, 231, 15,
- 234, 120, 1, 229, 255, 234, 120, 1, 70, 234, 120, 1, 223, 41, 234, 120,
- 1, 222, 57, 234, 120, 1, 220, 42, 234, 120, 1, 219, 132, 234, 120, 1,
- 217, 48, 234, 120, 1, 214, 214, 234, 120, 1, 181, 234, 120, 1, 213, 249,
- 234, 120, 1, 74, 234, 120, 1, 210, 181, 234, 120, 1, 208, 219, 234, 120,
- 1, 208, 7, 234, 120, 1, 206, 254, 234, 120, 1, 205, 223, 234, 120, 1,
- 204, 12, 234, 120, 1, 200, 79, 234, 120, 1, 199, 224, 234, 120, 1, 68,
- 234, 120, 1, 196, 123, 234, 120, 1, 193, 203, 234, 120, 1, 193, 148, 234,
- 120, 1, 192, 85, 234, 120, 1, 192, 62, 234, 120, 1, 231, 70, 234, 120, 1,
- 231, 76, 234, 120, 1, 221, 234, 246, 190, 251, 27, 1, 250, 251, 246, 190,
- 251, 27, 1, 248, 65, 246, 190, 251, 27, 1, 231, 33, 246, 190, 251, 27, 1,
- 237, 181, 246, 190, 251, 27, 1, 234, 181, 246, 190, 251, 27, 1, 192, 96,
- 246, 190, 251, 27, 1, 233, 172, 246, 190, 251, 27, 1, 192, 56, 246, 190,
- 251, 27, 1, 200, 107, 246, 190, 251, 27, 1, 246, 117, 246, 190, 251, 27,
- 1, 192, 225, 246, 190, 251, 27, 1, 192, 71, 246, 190, 251, 27, 1, 223,
- 104, 246, 190, 251, 27, 1, 204, 64, 246, 190, 251, 27, 1, 220, 83, 246,
- 190, 251, 27, 1, 223, 117, 246, 190, 251, 27, 1, 193, 199, 246, 190, 251,
- 27, 1, 235, 25, 246, 190, 251, 27, 1, 246, 217, 246, 190, 251, 27, 1,
- 223, 21, 246, 190, 251, 27, 1, 222, 99, 246, 190, 251, 27, 1, 218, 245,
- 246, 190, 251, 27, 1, 229, 189, 246, 190, 251, 27, 1, 208, 220, 246, 190,
- 251, 27, 1, 250, 165, 246, 190, 251, 27, 1, 242, 177, 246, 190, 251, 27,
- 1, 242, 215, 246, 190, 251, 27, 1, 238, 107, 246, 190, 251, 27, 1, 217,
- 138, 246, 190, 251, 27, 1, 208, 224, 246, 190, 251, 27, 1, 213, 95, 246,
- 190, 251, 27, 1, 235, 2, 246, 190, 251, 27, 1, 204, 46, 246, 190, 251,
- 27, 1, 223, 42, 246, 190, 251, 27, 1, 211, 211, 246, 190, 251, 27, 1,
- 197, 210, 246, 190, 251, 27, 1, 233, 70, 246, 190, 251, 27, 1, 235, 15,
- 246, 190, 251, 27, 1, 242, 251, 246, 190, 251, 27, 1, 210, 154, 246, 190,
- 251, 27, 1, 231, 60, 246, 190, 251, 27, 1, 208, 22, 246, 190, 251, 27, 1,
- 204, 73, 246, 190, 251, 27, 1, 196, 42, 246, 190, 251, 27, 1, 199, 56,
- 246, 190, 251, 27, 1, 203, 173, 246, 190, 251, 27, 1, 223, 75, 246, 190,
- 251, 27, 1, 238, 108, 246, 190, 251, 27, 1, 246, 183, 246, 190, 251, 27,
- 1, 193, 73, 246, 190, 251, 27, 1, 209, 238, 246, 190, 251, 27, 1, 221,
- 155, 246, 190, 251, 27, 242, 118, 77, 32, 41, 3, 251, 237, 32, 41, 3,
- 251, 236, 32, 41, 3, 251, 235, 32, 41, 3, 251, 234, 32, 41, 3, 251, 233,
- 32, 41, 3, 251, 232, 32, 41, 3, 251, 231, 32, 41, 3, 251, 230, 32, 41, 3,
- 251, 229, 32, 41, 3, 251, 228, 32, 41, 3, 251, 227, 32, 41, 3, 251, 226,
- 32, 41, 3, 251, 225, 32, 41, 3, 251, 224, 32, 41, 3, 251, 223, 32, 41, 3,
- 251, 222, 32, 41, 3, 251, 221, 32, 41, 3, 251, 220, 32, 41, 3, 251, 219,
- 32, 41, 3, 251, 218, 32, 41, 3, 251, 217, 32, 41, 3, 251, 216, 32, 41, 3,
- 251, 215, 32, 41, 3, 251, 214, 32, 41, 3, 251, 213, 32, 41, 3, 251, 212,
- 32, 41, 3, 251, 211, 32, 41, 3, 254, 247, 32, 41, 3, 251, 210, 32, 41, 3,
- 251, 209, 32, 41, 3, 251, 208, 32, 41, 3, 251, 207, 32, 41, 3, 251, 206,
- 32, 41, 3, 251, 205, 32, 41, 3, 251, 204, 32, 41, 3, 251, 203, 32, 41, 3,
- 251, 202, 32, 41, 3, 251, 201, 32, 41, 3, 251, 200, 32, 41, 3, 251, 199,
- 32, 41, 3, 251, 198, 32, 41, 3, 251, 197, 32, 41, 3, 251, 196, 32, 41, 3,
- 251, 195, 32, 41, 3, 251, 194, 32, 41, 3, 251, 193, 32, 41, 3, 251, 192,
- 32, 41, 3, 251, 191, 32, 41, 3, 251, 190, 32, 41, 3, 251, 189, 32, 41, 3,
- 251, 188, 32, 41, 3, 251, 187, 32, 41, 3, 251, 186, 32, 41, 3, 251, 185,
- 32, 41, 3, 251, 184, 32, 41, 3, 251, 183, 32, 41, 3, 251, 182, 32, 41, 3,
- 251, 181, 32, 41, 3, 251, 180, 32, 41, 3, 251, 179, 32, 41, 3, 251, 178,
- 32, 41, 3, 251, 177, 32, 41, 3, 251, 176, 32, 41, 3, 251, 175, 32, 41, 3,
- 251, 174, 32, 41, 3, 251, 173, 32, 41, 3, 251, 172, 32, 41, 3, 251, 171,
- 32, 41, 3, 251, 170, 32, 41, 3, 251, 169, 32, 41, 3, 251, 168, 32, 41, 3,
- 254, 160, 32, 41, 3, 251, 167, 32, 41, 3, 251, 166, 32, 41, 3, 254, 125,
- 32, 41, 3, 251, 165, 32, 41, 3, 251, 164, 32, 41, 3, 251, 163, 32, 41, 3,
- 251, 162, 32, 41, 3, 254, 112, 32, 41, 3, 251, 161, 32, 41, 3, 251, 160,
- 32, 41, 3, 251, 159, 32, 41, 3, 251, 158, 32, 41, 3, 251, 157, 32, 41, 3,
- 253, 184, 32, 41, 3, 253, 183, 32, 41, 3, 253, 182, 32, 41, 3, 253, 181,
- 32, 41, 3, 253, 180, 32, 41, 3, 253, 179, 32, 41, 3, 253, 178, 32, 41, 3,
- 253, 177, 32, 41, 3, 253, 175, 32, 41, 3, 253, 174, 32, 41, 3, 253, 173,
- 32, 41, 3, 253, 172, 32, 41, 3, 253, 171, 32, 41, 3, 253, 170, 32, 41, 3,
- 253, 168, 32, 41, 3, 253, 167, 32, 41, 3, 253, 166, 32, 41, 3, 253, 165,
- 32, 41, 3, 253, 164, 32, 41, 3, 253, 163, 32, 41, 3, 253, 162, 32, 41, 3,
- 253, 161, 32, 41, 3, 253, 160, 32, 41, 3, 253, 159, 32, 41, 3, 253, 158,
- 32, 41, 3, 253, 157, 32, 41, 3, 253, 156, 32, 41, 3, 253, 155, 32, 41, 3,
- 253, 154, 32, 41, 3, 253, 153, 32, 41, 3, 253, 152, 32, 41, 3, 253, 151,
- 32, 41, 3, 253, 150, 32, 41, 3, 253, 148, 32, 41, 3, 253, 147, 32, 41, 3,
- 253, 146, 32, 41, 3, 253, 142, 32, 41, 3, 253, 141, 32, 41, 3, 253, 140,
- 32, 41, 3, 253, 139, 32, 41, 3, 253, 135, 32, 41, 3, 253, 134, 32, 41, 3,
- 253, 133, 32, 41, 3, 253, 132, 32, 41, 3, 253, 131, 32, 41, 3, 253, 130,
- 32, 41, 3, 253, 129, 32, 41, 3, 253, 128, 32, 41, 3, 253, 127, 32, 41, 3,
- 253, 126, 32, 41, 3, 253, 125, 32, 41, 3, 253, 124, 32, 41, 3, 253, 123,
- 32, 41, 3, 253, 122, 32, 41, 3, 253, 121, 32, 41, 3, 253, 120, 32, 41, 3,
- 253, 119, 32, 41, 3, 253, 118, 32, 41, 3, 253, 117, 32, 41, 3, 253, 116,
- 32, 41, 3, 253, 115, 32, 41, 3, 253, 114, 32, 41, 3, 253, 113, 32, 41, 3,
- 253, 111, 32, 41, 3, 253, 110, 32, 41, 3, 253, 109, 32, 41, 3, 253, 108,
- 32, 41, 3, 253, 107, 32, 41, 3, 253, 105, 32, 41, 3, 253, 104, 32, 41, 3,
- 253, 103, 32, 41, 3, 253, 102, 32, 41, 3, 253, 100, 32, 41, 3, 253, 99,
- 32, 41, 3, 253, 98, 32, 41, 3, 253, 64, 32, 41, 3, 253, 62, 32, 41, 3,
- 253, 60, 32, 41, 3, 253, 58, 32, 41, 3, 253, 56, 32, 41, 3, 253, 54, 32,
- 41, 3, 253, 52, 32, 41, 3, 253, 50, 32, 41, 3, 253, 48, 32, 41, 3, 253,
- 46, 32, 41, 3, 253, 44, 32, 41, 3, 253, 41, 32, 41, 3, 253, 39, 32, 41,
- 3, 253, 37, 32, 41, 3, 253, 35, 32, 41, 3, 253, 33, 32, 41, 3, 253, 31,
- 32, 41, 3, 253, 29, 32, 41, 3, 253, 27, 32, 41, 3, 252, 201, 32, 41, 3,
- 252, 200, 32, 41, 3, 252, 199, 32, 41, 3, 252, 198, 32, 41, 3, 252, 197,
- 32, 41, 3, 252, 196, 32, 41, 3, 252, 194, 32, 41, 3, 252, 193, 32, 41, 3,
- 252, 192, 32, 41, 3, 252, 191, 32, 41, 3, 252, 190, 32, 41, 3, 252, 189,
- 32, 41, 3, 252, 187, 32, 41, 3, 252, 186, 32, 41, 3, 252, 182, 32, 41, 3,
- 252, 181, 32, 41, 3, 252, 179, 32, 41, 3, 252, 178, 32, 41, 3, 252, 177,
- 32, 41, 3, 252, 176, 32, 41, 3, 252, 175, 32, 41, 3, 252, 174, 32, 41, 3,
- 252, 173, 32, 41, 3, 252, 172, 32, 41, 3, 252, 171, 32, 41, 3, 252, 170,
- 32, 41, 3, 252, 169, 32, 41, 3, 252, 168, 32, 41, 3, 252, 167, 32, 41, 3,
- 252, 166, 32, 41, 3, 252, 165, 32, 41, 3, 252, 164, 32, 41, 3, 252, 163,
- 32, 41, 3, 252, 162, 32, 41, 3, 252, 161, 32, 41, 3, 252, 160, 32, 41, 3,
- 252, 159, 32, 41, 3, 252, 158, 32, 41, 3, 252, 157, 32, 41, 3, 252, 156,
- 32, 41, 3, 252, 155, 32, 41, 3, 252, 154, 32, 41, 3, 252, 153, 32, 41, 3,
- 252, 152, 32, 41, 3, 252, 151, 32, 41, 3, 252, 150, 32, 41, 3, 252, 149,
- 32, 41, 3, 252, 148, 32, 41, 3, 252, 147, 32, 41, 3, 252, 146, 32, 41, 3,
- 252, 145, 32, 41, 3, 252, 144, 32, 41, 3, 252, 143, 32, 41, 3, 252, 142,
- 32, 41, 3, 252, 141, 32, 41, 3, 252, 140, 32, 41, 3, 252, 139, 32, 41, 3,
- 252, 138, 32, 41, 3, 252, 137, 32, 41, 3, 252, 136, 32, 41, 3, 252, 135,
- 32, 41, 3, 252, 134, 32, 41, 3, 252, 133, 32, 41, 3, 252, 132, 32, 41, 3,
- 252, 131, 32, 41, 3, 252, 130, 32, 41, 3, 252, 129, 32, 41, 3, 252, 128,
- 32, 41, 3, 252, 127, 32, 41, 3, 252, 126, 32, 41, 3, 252, 125, 32, 41, 3,
- 252, 124, 32, 41, 3, 252, 123, 32, 41, 3, 252, 122, 32, 41, 3, 252, 121,
- 32, 41, 3, 252, 120, 32, 41, 3, 252, 119, 32, 41, 3, 252, 118, 32, 41, 3,
- 252, 117, 32, 41, 3, 252, 116, 32, 41, 3, 252, 115, 32, 41, 3, 252, 114,
- 32, 41, 3, 252, 113, 32, 41, 3, 252, 112, 32, 41, 3, 252, 111, 32, 41, 3,
- 252, 110, 32, 41, 3, 252, 109, 32, 41, 3, 252, 108, 32, 41, 3, 252, 107,
- 32, 41, 3, 252, 106, 32, 41, 3, 252, 105, 32, 41, 3, 252, 104, 32, 41, 3,
- 252, 103, 32, 41, 3, 252, 102, 32, 41, 3, 252, 101, 32, 41, 3, 252, 100,
- 32, 41, 3, 252, 99, 32, 41, 3, 252, 98, 32, 41, 3, 252, 97, 32, 41, 3,
- 252, 96, 32, 41, 3, 252, 95, 32, 41, 3, 252, 94, 32, 41, 3, 252, 93, 32,
- 41, 3, 252, 92, 32, 41, 3, 252, 91, 32, 41, 3, 252, 90, 32, 41, 3, 252,
- 89, 32, 41, 3, 252, 88, 32, 41, 3, 252, 87, 32, 41, 3, 252, 86, 32, 41,
- 3, 252, 85, 32, 41, 3, 252, 84, 32, 41, 3, 252, 83, 32, 41, 3, 252, 82,
- 32, 41, 3, 252, 81, 32, 41, 3, 252, 80, 32, 41, 3, 252, 79, 32, 41, 3,
- 252, 78, 32, 41, 3, 252, 77, 32, 41, 3, 252, 76, 32, 41, 3, 252, 75, 32,
- 41, 3, 252, 74, 32, 41, 3, 252, 73, 32, 41, 3, 252, 72, 32, 41, 3, 252,
- 71, 32, 41, 3, 252, 70, 32, 41, 3, 252, 69, 32, 41, 3, 252, 68, 32, 41,
- 3, 252, 67, 32, 41, 3, 252, 66, 32, 41, 3, 252, 65, 32, 41, 3, 252, 64,
- 32, 41, 3, 252, 63, 64, 32, 41, 3, 252, 62, 249, 226, 32, 41, 3, 252, 61,
- 238, 95, 32, 41, 3, 252, 60, 71, 32, 41, 3, 252, 59, 233, 163, 32, 41, 3,
- 252, 58, 230, 124, 32, 41, 3, 252, 57, 223, 65, 32, 41, 3, 252, 56, 222,
- 184, 32, 41, 3, 252, 55, 165, 32, 41, 3, 252, 54, 220, 189, 32, 41, 3,
- 252, 53, 220, 188, 32, 41, 3, 252, 52, 220, 187, 32, 41, 3, 252, 51, 220,
- 186, 32, 41, 3, 252, 50, 194, 202, 32, 41, 3, 252, 49, 193, 223, 32, 41,
- 3, 252, 48, 193, 148, 32, 41, 3, 252, 47, 211, 216, 32, 41, 3, 252, 46,
- 251, 152, 32, 41, 3, 252, 45, 248, 160, 32, 41, 3, 252, 44, 237, 163, 32,
- 41, 3, 252, 43, 233, 171, 32, 41, 3, 252, 42, 223, 41, 32, 41, 3, 252,
- 41, 32, 41, 3, 252, 40, 32, 41, 3, 252, 39, 32, 41, 3, 252, 38, 32, 41,
- 3, 252, 37, 32, 41, 3, 252, 36, 32, 41, 3, 252, 35, 32, 41, 3, 252, 34,
- 238, 102, 5, 64, 238, 102, 5, 71, 238, 102, 5, 70, 238, 102, 5, 74, 238,
- 102, 5, 68, 238, 102, 5, 223, 62, 238, 102, 5, 222, 233, 238, 102, 5,
- 160, 238, 102, 5, 222, 57, 238, 102, 5, 221, 204, 238, 102, 5, 221, 113,
- 238, 102, 5, 221, 33, 238, 102, 5, 177, 238, 102, 5, 220, 42, 238, 102,
- 5, 219, 209, 238, 102, 5, 219, 107, 238, 102, 5, 219, 36, 238, 102, 5,
- 172, 238, 102, 5, 217, 48, 238, 102, 5, 216, 175, 238, 102, 5, 216, 91,
- 238, 102, 5, 215, 241, 238, 102, 5, 181, 238, 102, 5, 214, 214, 238, 102,
- 5, 214, 60, 238, 102, 5, 213, 142, 238, 102, 5, 213, 22, 238, 102, 5,
- 166, 238, 102, 5, 210, 181, 238, 102, 5, 210, 51, 238, 102, 5, 209, 198,
- 238, 102, 5, 209, 51, 238, 102, 5, 167, 238, 102, 5, 208, 7, 238, 102, 5,
- 207, 151, 238, 102, 5, 207, 55, 238, 102, 5, 206, 218, 238, 102, 5, 188,
- 238, 102, 5, 205, 223, 238, 102, 5, 203, 125, 238, 102, 5, 202, 212, 238,
- 102, 5, 201, 184, 238, 102, 5, 189, 238, 102, 5, 200, 79, 238, 102, 5,
- 199, 128, 238, 102, 5, 155, 238, 102, 5, 198, 45, 238, 102, 5, 194, 169,
- 238, 102, 5, 194, 111, 238, 102, 5, 194, 72, 238, 102, 5, 194, 36, 238,
- 102, 5, 193, 209, 238, 102, 5, 193, 203, 238, 102, 5, 192, 112, 238, 102,
- 5, 192, 8, 223, 192, 250, 116, 1, 251, 24, 223, 192, 250, 116, 1, 248,
- 62, 223, 192, 250, 116, 1, 231, 31, 223, 192, 250, 116, 1, 237, 220, 223,
- 192, 250, 116, 1, 229, 255, 223, 192, 250, 116, 1, 194, 119, 223, 192,
- 250, 116, 1, 192, 89, 223, 192, 250, 116, 1, 229, 194, 223, 192, 250,
- 116, 1, 200, 4, 223, 192, 250, 116, 1, 192, 238, 223, 192, 250, 116, 1,
- 222, 109, 223, 192, 250, 116, 1, 220, 85, 223, 192, 250, 116, 1, 217, 12,
- 223, 192, 250, 116, 1, 212, 230, 223, 192, 250, 116, 1, 206, 46, 223,
- 192, 250, 116, 1, 249, 231, 223, 192, 250, 116, 1, 210, 181, 223, 192,
- 250, 116, 1, 206, 83, 223, 192, 250, 116, 1, 208, 181, 223, 192, 250,
- 116, 1, 207, 188, 223, 192, 250, 116, 1, 203, 224, 223, 192, 250, 116, 1,
- 200, 93, 223, 192, 250, 116, 205, 209, 57, 223, 192, 250, 116, 31, 101,
- 223, 192, 250, 116, 31, 104, 223, 192, 250, 116, 31, 133, 223, 192, 250,
- 116, 31, 200, 30, 223, 192, 250, 116, 31, 197, 239, 223, 192, 250, 116,
- 31, 90, 228, 162, 223, 192, 250, 116, 31, 90, 180, 223, 192, 250, 116,
- 31, 200, 31, 180, 211, 38, 1, 251, 24, 211, 38, 1, 248, 62, 211, 38, 1,
- 231, 31, 211, 38, 1, 237, 220, 211, 38, 1, 229, 255, 211, 38, 1, 194,
- 119, 211, 38, 1, 192, 89, 211, 38, 1, 229, 194, 211, 38, 1, 200, 4, 211,
- 38, 1, 192, 238, 211, 38, 1, 222, 109, 211, 38, 1, 220, 85, 211, 38, 1,
- 217, 12, 211, 38, 1, 52, 212, 230, 211, 38, 1, 212, 230, 211, 38, 1, 206,
- 46, 211, 38, 1, 249, 231, 211, 38, 1, 210, 181, 211, 38, 1, 206, 83, 211,
- 38, 1, 208, 181, 211, 38, 1, 207, 188, 211, 38, 1, 203, 224, 211, 38, 1,
- 200, 93, 211, 38, 220, 23, 232, 190, 211, 38, 207, 96, 232, 190, 211, 38,
- 31, 101, 211, 38, 31, 104, 211, 38, 31, 133, 211, 38, 31, 134, 211, 38,
- 31, 151, 211, 38, 31, 200, 30, 211, 38, 31, 197, 239, 215, 80, 1, 52,
- 251, 24, 215, 80, 1, 251, 24, 215, 80, 1, 52, 248, 62, 215, 80, 1, 248,
- 62, 215, 80, 1, 231, 31, 215, 80, 1, 237, 220, 215, 80, 1, 52, 229, 255,
- 215, 80, 1, 229, 255, 215, 80, 1, 194, 119, 215, 80, 1, 192, 89, 215, 80,
- 1, 229, 194, 215, 80, 1, 200, 4, 215, 80, 1, 52, 192, 238, 215, 80, 1,
- 192, 238, 215, 80, 1, 52, 222, 109, 215, 80, 1, 222, 109, 215, 80, 1, 52,
- 220, 85, 215, 80, 1, 220, 85, 215, 80, 1, 52, 217, 12, 215, 80, 1, 217,
- 12, 215, 80, 1, 52, 212, 230, 215, 80, 1, 212, 230, 215, 80, 1, 206, 46,
- 215, 80, 1, 249, 231, 215, 80, 1, 210, 181, 215, 80, 1, 206, 83, 215, 80,
- 1, 208, 181, 215, 80, 1, 207, 188, 215, 80, 1, 52, 203, 224, 215, 80, 1,
- 203, 224, 215, 80, 1, 200, 93, 215, 80, 31, 101, 215, 80, 31, 104, 215,
- 80, 31, 133, 215, 80, 31, 134, 215, 80, 238, 168, 31, 134, 215, 80, 31,
- 151, 215, 80, 31, 200, 30, 215, 80, 31, 197, 239, 215, 80, 31, 90, 228,
- 162, 230, 13, 1, 251, 24, 230, 13, 1, 248, 62, 230, 13, 1, 231, 31, 230,
- 13, 1, 237, 219, 230, 13, 1, 229, 255, 230, 13, 1, 194, 119, 230, 13, 1,
- 192, 87, 230, 13, 1, 229, 194, 230, 13, 1, 200, 4, 230, 13, 1, 192, 238,
- 230, 13, 1, 222, 109, 230, 13, 1, 220, 85, 230, 13, 1, 217, 12, 230, 13,
- 1, 212, 230, 230, 13, 1, 206, 46, 230, 13, 1, 249, 229, 230, 13, 1, 210,
- 181, 230, 13, 1, 206, 83, 230, 13, 1, 208, 181, 230, 13, 1, 203, 224,
- 230, 13, 1, 200, 93, 230, 13, 31, 101, 230, 13, 31, 151, 230, 13, 31,
- 200, 30, 230, 13, 31, 197, 239, 230, 13, 31, 90, 228, 162, 210, 63, 1,
- 251, 21, 210, 63, 1, 248, 65, 210, 63, 1, 231, 206, 210, 63, 1, 237, 78,
- 210, 63, 1, 229, 255, 210, 63, 1, 194, 126, 210, 63, 1, 192, 105, 210,
- 63, 1, 229, 196, 210, 63, 1, 200, 8, 210, 63, 1, 192, 239, 210, 63, 1,
- 222, 139, 210, 63, 1, 220, 91, 210, 63, 1, 217, 12, 210, 63, 1, 212, 230,
- 210, 63, 1, 204, 174, 210, 63, 1, 251, 57, 210, 63, 1, 210, 181, 210, 63,
- 1, 206, 85, 210, 63, 1, 208, 186, 210, 63, 1, 207, 18, 210, 63, 1, 203,
- 224, 210, 63, 1, 200, 100, 210, 63, 31, 101, 210, 63, 31, 200, 30, 210,
- 63, 31, 197, 239, 210, 63, 31, 90, 228, 162, 210, 63, 31, 104, 210, 63,
- 31, 133, 210, 63, 194, 11, 204, 165, 218, 248, 1, 64, 218, 248, 1, 249,
- 226, 218, 248, 1, 232, 44, 218, 248, 1, 238, 95, 218, 248, 1, 71, 218,
- 248, 1, 196, 236, 218, 248, 1, 70, 218, 248, 1, 193, 148, 218, 248, 1,
- 222, 184, 218, 248, 1, 165, 218, 248, 1, 218, 236, 218, 248, 1, 215, 151,
- 218, 248, 1, 74, 218, 248, 1, 150, 218, 248, 1, 202, 95, 218, 248, 1,
- 200, 228, 218, 248, 1, 68, 218, 248, 1, 233, 163, 218, 248, 1, 208, 247,
- 218, 248, 1, 206, 158, 218, 248, 1, 198, 86, 218, 248, 1, 250, 224, 218,
- 248, 1, 234, 88, 218, 248, 1, 218, 251, 218, 248, 1, 213, 179, 218, 248,
- 1, 247, 52, 218, 248, 198, 182, 77, 147, 229, 164, 1, 64, 147, 229, 164,
- 1, 71, 147, 229, 164, 1, 70, 147, 229, 164, 1, 74, 147, 229, 164, 1, 168,
- 147, 229, 164, 1, 194, 169, 147, 229, 164, 1, 249, 3, 147, 229, 164, 1,
- 249, 2, 147, 229, 164, 1, 166, 147, 229, 164, 1, 172, 147, 229, 164, 1,
- 181, 147, 229, 164, 1, 215, 95, 147, 229, 164, 1, 214, 214, 147, 229,
- 164, 1, 214, 212, 147, 229, 164, 1, 167, 147, 229, 164, 1, 208, 74, 147,
- 229, 164, 1, 177, 147, 229, 164, 1, 221, 250, 147, 229, 164, 1, 229, 187,
- 147, 229, 164, 1, 188, 147, 229, 164, 1, 206, 99, 147, 229, 164, 1, 205,
- 223, 147, 229, 164, 1, 160, 147, 229, 164, 1, 208, 239, 147, 229, 164, 1,
- 189, 147, 229, 164, 1, 200, 179, 147, 229, 164, 1, 200, 79, 147, 229,
- 164, 1, 200, 77, 147, 229, 164, 1, 155, 147, 229, 164, 1, 238, 0, 147,
- 229, 164, 16, 196, 33, 147, 229, 164, 16, 196, 32, 147, 238, 133, 1, 64,
- 147, 238, 133, 1, 71, 147, 238, 133, 1, 70, 147, 238, 133, 1, 74, 147,
- 238, 133, 1, 168, 147, 238, 133, 1, 194, 169, 147, 238, 133, 1, 249, 3,
- 147, 238, 133, 1, 166, 147, 238, 133, 1, 172, 147, 238, 133, 1, 181, 147,
- 238, 133, 1, 214, 214, 147, 238, 133, 1, 167, 147, 238, 133, 1, 177, 147,
- 238, 133, 1, 221, 250, 147, 238, 133, 1, 229, 187, 147, 238, 133, 1, 188,
- 147, 238, 133, 1, 250, 112, 188, 147, 238, 133, 1, 205, 223, 147, 238,
- 133, 1, 160, 147, 238, 133, 1, 208, 239, 147, 238, 133, 1, 189, 147, 238,
- 133, 1, 200, 79, 147, 238, 133, 1, 155, 147, 238, 133, 1, 238, 0, 147,
- 238, 133, 232, 109, 234, 112, 197, 246, 147, 238, 133, 232, 109, 90, 230,
- 78, 147, 238, 133, 219, 92, 207, 61, 147, 238, 133, 219, 92, 223, 197,
- 147, 238, 133, 31, 101, 147, 238, 133, 31, 104, 147, 238, 133, 31, 133,
- 147, 238, 133, 31, 134, 147, 238, 133, 31, 151, 147, 238, 133, 31, 170,
- 147, 238, 133, 31, 179, 147, 238, 133, 31, 174, 147, 238, 133, 31, 182,
- 147, 238, 133, 31, 200, 30, 147, 238, 133, 31, 197, 239, 147, 238, 133,
- 31, 199, 184, 147, 238, 133, 31, 232, 126, 147, 238, 133, 31, 233, 3,
- 147, 238, 133, 31, 203, 25, 147, 238, 133, 31, 204, 140, 147, 238, 133,
- 31, 90, 228, 162, 147, 238, 133, 31, 103, 228, 162, 147, 238, 133, 31,
- 112, 228, 162, 147, 238, 133, 31, 232, 119, 228, 162, 147, 238, 133, 31,
- 232, 214, 228, 162, 147, 238, 133, 31, 203, 41, 228, 162, 147, 238, 133,
- 31, 204, 146, 228, 162, 147, 238, 133, 31, 234, 148, 228, 162, 147, 238,
- 133, 31, 214, 16, 228, 162, 147, 238, 133, 31, 90, 180, 147, 238, 133,
- 31, 103, 180, 147, 238, 133, 31, 112, 180, 147, 238, 133, 31, 232, 119,
- 180, 147, 238, 133, 31, 232, 214, 180, 147, 238, 133, 31, 203, 41, 180,
- 147, 238, 133, 31, 204, 146, 180, 147, 238, 133, 31, 234, 148, 180, 147,
- 238, 133, 31, 214, 16, 180, 147, 238, 133, 31, 200, 31, 180, 147, 238,
- 133, 31, 197, 240, 180, 147, 238, 133, 31, 199, 185, 180, 147, 238, 133,
- 31, 232, 127, 180, 147, 238, 133, 31, 233, 4, 180, 147, 238, 133, 31,
- 203, 26, 180, 147, 238, 133, 31, 204, 141, 180, 147, 238, 133, 31, 234,
- 138, 180, 147, 238, 133, 31, 214, 12, 180, 147, 238, 133, 31, 90, 228,
- 163, 180, 147, 238, 133, 31, 103, 228, 163, 180, 147, 238, 133, 31, 112,
- 228, 163, 180, 147, 238, 133, 31, 232, 119, 228, 163, 180, 147, 238, 133,
- 31, 232, 214, 228, 163, 180, 147, 238, 133, 31, 203, 41, 228, 163, 180,
- 147, 238, 133, 31, 204, 146, 228, 163, 180, 147, 238, 133, 31, 234, 148,
- 228, 163, 180, 147, 238, 133, 31, 214, 16, 228, 163, 180, 147, 238, 133,
- 232, 109, 90, 197, 247, 147, 238, 133, 232, 109, 103, 197, 246, 147, 238,
- 133, 232, 109, 112, 197, 246, 147, 238, 133, 232, 109, 232, 119, 197,
- 246, 147, 238, 133, 232, 109, 232, 214, 197, 246, 147, 238, 133, 232,
- 109, 203, 41, 197, 246, 147, 238, 133, 232, 109, 204, 146, 197, 246, 147,
- 238, 133, 232, 109, 234, 148, 197, 246, 147, 238, 133, 232, 109, 214, 16,
- 197, 246, 147, 238, 133, 232, 109, 200, 31, 197, 246, 221, 236, 1, 64,
- 221, 236, 18, 3, 70, 221, 236, 18, 3, 68, 221, 236, 18, 3, 118, 150, 221,
- 236, 18, 3, 71, 221, 236, 18, 3, 74, 221, 236, 18, 220, 2, 77, 221, 236,
- 3, 55, 207, 82, 63, 221, 236, 3, 250, 168, 221, 236, 3, 196, 6, 221, 236,
- 1, 160, 221, 236, 1, 221, 250, 221, 236, 1, 231, 233, 221, 236, 1, 231,
- 84, 221, 236, 1, 247, 19, 221, 236, 1, 246, 117, 221, 236, 1, 223, 62,
- 221, 236, 1, 212, 201, 221, 236, 1, 198, 83, 221, 236, 1, 198, 71, 221,
- 236, 1, 237, 161, 221, 236, 1, 237, 145, 221, 236, 1, 213, 178, 221, 236,
- 1, 189, 221, 236, 1, 199, 240, 221, 236, 1, 238, 0, 221, 236, 1, 237, 40,
- 221, 236, 1, 181, 221, 236, 1, 166, 221, 236, 1, 210, 94, 221, 236, 1,
- 249, 3, 221, 236, 1, 248, 54, 221, 236, 1, 172, 221, 236, 1, 168, 221,
- 236, 1, 167, 221, 236, 1, 177, 221, 236, 1, 196, 157, 221, 236, 1, 204,
- 64, 221, 236, 1, 202, 92, 221, 236, 1, 188, 221, 236, 1, 192, 112, 221,
- 236, 1, 144, 221, 236, 1, 221, 139, 221, 236, 1, 198, 51, 221, 236, 1,
- 198, 52, 221, 236, 1, 196, 40, 221, 236, 3, 248, 194, 58, 221, 236, 3,
- 246, 189, 221, 236, 3, 78, 63, 221, 236, 196, 11, 221, 236, 17, 101, 221,
- 236, 17, 104, 221, 236, 17, 133, 221, 236, 17, 134, 221, 236, 31, 200,
- 30, 221, 236, 31, 197, 239, 221, 236, 31, 90, 228, 162, 221, 236, 31, 90,
- 180, 221, 236, 232, 109, 90, 230, 78, 221, 236, 209, 38, 236, 114, 221,
- 236, 209, 38, 2, 242, 130, 221, 236, 209, 38, 242, 130, 221, 236, 209,
- 38, 238, 194, 161, 221, 236, 209, 38, 217, 153, 221, 236, 209, 38, 219,
- 57, 221, 236, 209, 38, 237, 208, 221, 236, 209, 38, 55, 237, 208, 221,
- 236, 209, 38, 219, 169, 40, 202, 171, 250, 127, 1, 229, 255, 40, 202,
- 171, 250, 127, 1, 220, 85, 40, 202, 171, 250, 127, 1, 229, 194, 40, 202,
- 171, 250, 127, 1, 217, 12, 40, 202, 171, 250, 127, 1, 208, 181, 40, 202,
- 171, 250, 127, 1, 194, 119, 40, 202, 171, 250, 127, 1, 203, 224, 40, 202,
- 171, 250, 127, 1, 207, 188, 40, 202, 171, 250, 127, 1, 248, 62, 40, 202,
- 171, 250, 127, 1, 200, 93, 40, 202, 171, 250, 127, 1, 206, 20, 40, 202,
- 171, 250, 127, 1, 222, 109, 40, 202, 171, 250, 127, 1, 212, 230, 40, 202,
- 171, 250, 127, 1, 221, 231, 40, 202, 171, 250, 127, 1, 206, 83, 40, 202,
- 171, 250, 127, 1, 206, 46, 40, 202, 171, 250, 127, 1, 233, 47, 40, 202,
- 171, 250, 127, 1, 251, 26, 40, 202, 171, 250, 127, 1, 249, 229, 40, 202,
- 171, 250, 127, 1, 237, 37, 40, 202, 171, 250, 127, 1, 231, 31, 40, 202,
- 171, 250, 127, 1, 237, 220, 40, 202, 171, 250, 127, 1, 231, 72, 40, 202,
- 171, 250, 127, 1, 200, 4, 40, 202, 171, 250, 127, 1, 192, 87, 40, 202,
- 171, 250, 127, 1, 237, 34, 40, 202, 171, 250, 127, 1, 192, 238, 40, 202,
- 171, 250, 127, 1, 199, 226, 40, 202, 171, 250, 127, 1, 199, 205, 40, 202,
- 171, 250, 127, 31, 101, 40, 202, 171, 250, 127, 31, 233, 3, 40, 202, 171,
- 250, 127, 162, 223, 172, 40, 178, 250, 127, 1, 229, 220, 40, 178, 250,
- 127, 1, 220, 94, 40, 178, 250, 127, 1, 230, 89, 40, 178, 250, 127, 1,
- 217, 26, 40, 178, 250, 127, 1, 208, 232, 40, 178, 250, 127, 1, 194, 119,
- 40, 178, 250, 127, 1, 234, 7, 40, 178, 250, 127, 1, 207, 221, 40, 178,
- 250, 127, 1, 248, 96, 40, 178, 250, 127, 1, 200, 49, 40, 178, 250, 127,
- 1, 234, 8, 40, 178, 250, 127, 1, 222, 139, 40, 178, 250, 127, 1, 213,
- 123, 40, 178, 250, 127, 1, 221, 245, 40, 178, 250, 127, 1, 206, 86, 40,
- 178, 250, 127, 1, 234, 6, 40, 178, 250, 127, 1, 233, 34, 40, 178, 250,
- 127, 1, 251, 26, 40, 178, 250, 127, 1, 251, 57, 40, 178, 250, 127, 1,
- 237, 250, 40, 178, 250, 127, 1, 231, 149, 40, 178, 250, 127, 1, 237, 227,
- 40, 178, 250, 127, 1, 231, 79, 40, 178, 250, 127, 1, 200, 151, 40, 178,
- 250, 127, 1, 192, 103, 40, 178, 250, 127, 1, 199, 232, 40, 178, 250, 127,
- 1, 193, 64, 40, 178, 250, 127, 1, 199, 220, 40, 178, 250, 127, 1, 192,
- 106, 40, 178, 250, 127, 31, 101, 40, 178, 250, 127, 31, 200, 30, 40, 178,
- 250, 127, 31, 197, 239, 217, 151, 1, 251, 24, 217, 151, 1, 248, 62, 217,
- 151, 1, 248, 47, 217, 151, 1, 231, 31, 217, 151, 1, 231, 57, 217, 151, 1,
- 237, 220, 217, 151, 1, 229, 255, 217, 151, 1, 194, 119, 217, 151, 3, 197,
- 109, 217, 151, 1, 192, 89, 217, 151, 1, 192, 64, 217, 151, 1, 223, 43,
- 217, 151, 1, 223, 24, 217, 151, 1, 229, 194, 217, 151, 1, 200, 4, 217,
- 151, 1, 192, 238, 217, 151, 1, 222, 109, 217, 151, 1, 193, 206, 217, 151,
- 1, 221, 238, 217, 151, 1, 220, 85, 217, 151, 1, 237, 33, 217, 151, 1,
- 199, 231, 217, 151, 1, 217, 12, 217, 151, 1, 212, 230, 217, 151, 1, 206,
- 46, 217, 151, 1, 249, 231, 217, 151, 1, 251, 241, 217, 151, 1, 210, 181,
- 217, 151, 1, 233, 47, 217, 151, 1, 206, 83, 217, 151, 1, 208, 181, 217,
- 151, 1, 193, 182, 217, 151, 1, 208, 208, 217, 151, 1, 207, 188, 217, 151,
- 1, 203, 224, 217, 151, 1, 202, 60, 217, 151, 1, 200, 93, 217, 151, 251,
- 151, 122, 58, 217, 151, 251, 151, 122, 63, 217, 151, 31, 101, 217, 151,
- 31, 151, 217, 151, 31, 200, 30, 217, 151, 31, 197, 239, 217, 151, 31, 90,
- 228, 162, 217, 151, 209, 38, 202, 19, 217, 151, 209, 38, 232, 190, 217,
- 151, 209, 38, 55, 78, 194, 41, 236, 114, 217, 151, 209, 38, 78, 194, 41,
- 236, 114, 217, 151, 209, 38, 236, 114, 217, 151, 209, 38, 103, 236, 111,
- 217, 151, 209, 38, 219, 176, 232, 247, 249, 243, 1, 64, 249, 243, 1, 252,
- 33, 249, 243, 1, 250, 166, 249, 243, 1, 251, 247, 249, 243, 1, 250, 224,
- 249, 243, 1, 251, 249, 249, 243, 1, 251, 108, 249, 243, 1, 251, 104, 249,
- 243, 1, 71, 249, 243, 1, 234, 171, 249, 243, 1, 74, 249, 243, 1, 211,
- 194, 249, 243, 1, 70, 249, 243, 1, 223, 224, 249, 243, 1, 68, 249, 243,
- 1, 196, 251, 249, 243, 1, 222, 57, 249, 243, 1, 193, 203, 249, 243, 1,
- 193, 162, 249, 243, 1, 193, 173, 249, 243, 1, 231, 158, 249, 243, 1, 231,
- 115, 249, 243, 1, 231, 70, 249, 243, 1, 246, 158, 249, 243, 1, 223, 41,
- 249, 243, 1, 200, 79, 249, 243, 1, 199, 224, 249, 243, 1, 237, 116, 249,
- 243, 1, 237, 31, 249, 243, 1, 198, 78, 249, 243, 1, 210, 181, 249, 243,
- 1, 233, 47, 249, 243, 1, 248, 123, 249, 243, 1, 248, 49, 249, 243, 1,
- 214, 152, 249, 243, 1, 214, 67, 249, 243, 1, 214, 68, 249, 243, 1, 214,
- 214, 249, 243, 1, 212, 190, 249, 243, 1, 213, 173, 249, 243, 1, 217, 48,
- 249, 243, 1, 229, 93, 249, 243, 1, 192, 162, 249, 243, 1, 193, 69, 249,
- 243, 1, 196, 123, 249, 243, 1, 208, 7, 249, 243, 1, 220, 42, 249, 243, 1,
- 205, 223, 249, 243, 1, 192, 85, 249, 243, 1, 204, 12, 249, 243, 1, 192,
- 62, 249, 243, 1, 203, 132, 249, 243, 1, 202, 61, 249, 243, 1, 229, 255,
- 249, 243, 251, 151, 77, 199, 76, 103, 236, 112, 136, 90, 78, 209, 37, 2,
- 103, 236, 112, 136, 90, 78, 209, 37, 220, 73, 103, 236, 112, 136, 90, 78,
- 209, 37, 220, 73, 90, 78, 136, 103, 236, 112, 209, 37, 220, 73, 103, 207,
- 78, 136, 90, 207, 82, 209, 37, 220, 73, 90, 207, 82, 136, 103, 207, 78,
- 209, 37, 223, 150, 210, 223, 1, 251, 24, 223, 150, 210, 223, 1, 248, 62,
- 223, 150, 210, 223, 1, 231, 31, 223, 150, 210, 223, 1, 237, 220, 223,
- 150, 210, 223, 1, 229, 255, 223, 150, 210, 223, 1, 194, 119, 223, 150,
- 210, 223, 1, 192, 89, 223, 150, 210, 223, 1, 229, 194, 223, 150, 210,
- 223, 1, 200, 4, 223, 150, 210, 223, 1, 192, 238, 223, 150, 210, 223, 1,
- 222, 109, 223, 150, 210, 223, 1, 220, 85, 223, 150, 210, 223, 1, 217, 12,
- 223, 150, 210, 223, 1, 212, 230, 223, 150, 210, 223, 1, 206, 46, 223,
- 150, 210, 223, 1, 249, 231, 223, 150, 210, 223, 1, 210, 181, 223, 150,
- 210, 223, 1, 206, 83, 223, 150, 210, 223, 1, 208, 181, 223, 150, 210,
- 223, 1, 207, 188, 223, 150, 210, 223, 1, 203, 224, 223, 150, 210, 223, 1,
- 200, 93, 223, 150, 210, 223, 31, 101, 223, 150, 210, 223, 31, 104, 223,
- 150, 210, 223, 31, 133, 223, 150, 210, 223, 31, 134, 223, 150, 210, 223,
- 31, 200, 30, 223, 150, 210, 223, 31, 197, 239, 223, 150, 210, 223, 31,
- 90, 228, 162, 223, 150, 210, 223, 31, 90, 180, 223, 150, 211, 56, 1, 251,
- 24, 223, 150, 211, 56, 1, 248, 62, 223, 150, 211, 56, 1, 231, 31, 223,
- 150, 211, 56, 1, 237, 220, 223, 150, 211, 56, 1, 229, 255, 223, 150, 211,
- 56, 1, 194, 118, 223, 150, 211, 56, 1, 192, 89, 223, 150, 211, 56, 1,
- 229, 194, 223, 150, 211, 56, 1, 200, 4, 223, 150, 211, 56, 1, 192, 238,
- 223, 150, 211, 56, 1, 222, 109, 223, 150, 211, 56, 1, 220, 85, 223, 150,
- 211, 56, 1, 217, 11, 223, 150, 211, 56, 1, 212, 230, 223, 150, 211, 56,
- 1, 206, 46, 223, 150, 211, 56, 1, 210, 181, 223, 150, 211, 56, 1, 206,
- 83, 223, 150, 211, 56, 1, 203, 224, 223, 150, 211, 56, 1, 200, 93, 223,
- 150, 211, 56, 31, 101, 223, 150, 211, 56, 31, 104, 223, 150, 211, 56, 31,
- 133, 223, 150, 211, 56, 31, 134, 223, 150, 211, 56, 31, 200, 30, 223,
- 150, 211, 56, 31, 197, 239, 223, 150, 211, 56, 31, 90, 228, 162, 223,
- 150, 211, 56, 31, 90, 180, 209, 63, 211, 56, 1, 251, 24, 209, 63, 211,
- 56, 1, 248, 62, 209, 63, 211, 56, 1, 231, 31, 209, 63, 211, 56, 1, 237,
- 220, 209, 63, 211, 56, 1, 229, 255, 209, 63, 211, 56, 1, 194, 118, 209,
- 63, 211, 56, 1, 192, 89, 209, 63, 211, 56, 1, 229, 194, 209, 63, 211, 56,
- 1, 192, 238, 209, 63, 211, 56, 1, 222, 109, 209, 63, 211, 56, 1, 220, 85,
- 209, 63, 211, 56, 1, 217, 11, 209, 63, 211, 56, 1, 212, 230, 209, 63,
- 211, 56, 1, 206, 46, 209, 63, 211, 56, 1, 210, 181, 209, 63, 211, 56, 1,
- 206, 83, 209, 63, 211, 56, 1, 203, 224, 209, 63, 211, 56, 1, 200, 93,
- 209, 63, 211, 56, 205, 209, 77, 209, 63, 211, 56, 163, 205, 209, 77, 209,
- 63, 211, 56, 232, 119, 236, 112, 4, 238, 183, 209, 63, 211, 56, 232, 119,
- 236, 112, 4, 236, 114, 209, 63, 211, 56, 31, 101, 209, 63, 211, 56, 31,
- 104, 209, 63, 211, 56, 31, 133, 209, 63, 211, 56, 31, 134, 209, 63, 211,
- 56, 31, 200, 30, 209, 63, 211, 56, 31, 197, 239, 209, 63, 211, 56, 31,
- 90, 228, 162, 40, 198, 12, 1, 211, 152, 64, 40, 198, 12, 1, 193, 57, 64,
- 40, 198, 12, 1, 193, 57, 251, 108, 40, 198, 12, 1, 211, 152, 70, 40, 198,
- 12, 1, 193, 57, 70, 40, 198, 12, 1, 193, 57, 71, 40, 198, 12, 1, 211,
- 152, 74, 40, 198, 12, 1, 211, 152, 212, 0, 40, 198, 12, 1, 193, 57, 212,
- 0, 40, 198, 12, 1, 211, 152, 251, 238, 40, 198, 12, 1, 193, 57, 251, 238,
- 40, 198, 12, 1, 211, 152, 251, 107, 40, 198, 12, 1, 193, 57, 251, 107,
- 40, 198, 12, 1, 211, 152, 251, 80, 40, 198, 12, 1, 193, 57, 251, 80, 40,
- 198, 12, 1, 211, 152, 251, 102, 40, 198, 12, 1, 193, 57, 251, 102, 40,
- 198, 12, 1, 211, 152, 251, 125, 40, 198, 12, 1, 193, 57, 251, 125, 40,
- 198, 12, 1, 211, 152, 251, 106, 40, 198, 12, 1, 211, 152, 233, 170, 40,
- 198, 12, 1, 193, 57, 233, 170, 40, 198, 12, 1, 211, 152, 249, 236, 40,
- 198, 12, 1, 193, 57, 249, 236, 40, 198, 12, 1, 211, 152, 251, 89, 40,
- 198, 12, 1, 193, 57, 251, 89, 40, 198, 12, 1, 211, 152, 251, 100, 40,
- 198, 12, 1, 193, 57, 251, 100, 40, 198, 12, 1, 211, 152, 211, 254, 40,
- 198, 12, 1, 193, 57, 211, 254, 40, 198, 12, 1, 211, 152, 251, 35, 40,
- 198, 12, 1, 193, 57, 251, 35, 40, 198, 12, 1, 211, 152, 251, 99, 40, 198,
- 12, 1, 211, 152, 234, 103, 40, 198, 12, 1, 211, 152, 234, 99, 40, 198,
- 12, 1, 211, 152, 250, 224, 40, 198, 12, 1, 211, 152, 251, 97, 40, 198,
- 12, 1, 193, 57, 251, 97, 40, 198, 12, 1, 211, 152, 234, 65, 40, 198, 12,
- 1, 193, 57, 234, 65, 40, 198, 12, 1, 211, 152, 234, 85, 40, 198, 12, 1,
- 193, 57, 234, 85, 40, 198, 12, 1, 211, 152, 234, 51, 40, 198, 12, 1, 193,
- 57, 234, 51, 40, 198, 12, 1, 193, 57, 250, 214, 40, 198, 12, 1, 211, 152,
- 234, 73, 40, 198, 12, 1, 193, 57, 251, 96, 40, 198, 12, 1, 211, 152, 234,
- 41, 40, 198, 12, 1, 211, 152, 211, 185, 40, 198, 12, 1, 211, 152, 228,
- 51, 40, 198, 12, 1, 211, 152, 234, 179, 40, 198, 12, 1, 193, 57, 234,
- 179, 40, 198, 12, 1, 211, 152, 250, 135, 40, 198, 12, 1, 193, 57, 250,
- 135, 40, 198, 12, 1, 211, 152, 223, 107, 40, 198, 12, 1, 193, 57, 223,
- 107, 40, 198, 12, 1, 211, 152, 211, 165, 40, 198, 12, 1, 193, 57, 211,
- 165, 40, 198, 12, 1, 211, 152, 250, 131, 40, 198, 12, 1, 193, 57, 250,
- 131, 40, 198, 12, 1, 211, 152, 251, 95, 40, 198, 12, 1, 211, 152, 250,
- 61, 40, 198, 12, 1, 211, 152, 251, 93, 40, 198, 12, 1, 211, 152, 250, 53,
- 40, 198, 12, 1, 193, 57, 250, 53, 40, 198, 12, 1, 211, 152, 233, 255, 40,
- 198, 12, 1, 193, 57, 233, 255, 40, 198, 12, 1, 211, 152, 250, 26, 40,
- 198, 12, 1, 193, 57, 250, 26, 40, 198, 12, 1, 211, 152, 251, 90, 40, 198,
- 12, 1, 193, 57, 251, 90, 40, 198, 12, 1, 211, 152, 211, 140, 40, 198, 12,
- 1, 211, 152, 248, 177, 40, 169, 6, 1, 64, 40, 169, 6, 1, 252, 33, 40,
- 169, 6, 1, 234, 181, 40, 169, 6, 1, 250, 236, 40, 169, 6, 1, 234, 179,
- 40, 169, 6, 1, 234, 85, 40, 169, 6, 1, 234, 176, 40, 169, 6, 1, 234, 175,
- 40, 169, 6, 1, 250, 217, 40, 169, 6, 1, 71, 40, 169, 6, 1, 242, 85, 71,
- 40, 169, 6, 1, 234, 171, 40, 169, 6, 1, 234, 164, 40, 169, 6, 1, 234,
- 163, 40, 169, 6, 1, 234, 160, 40, 169, 6, 1, 234, 157, 40, 169, 6, 1, 70,
- 40, 169, 6, 1, 223, 224, 40, 169, 6, 1, 234, 134, 40, 169, 6, 1, 234,
- 131, 40, 169, 6, 1, 251, 44, 40, 169, 6, 1, 197, 50, 40, 169, 6, 1, 234,
- 124, 40, 169, 6, 1, 234, 102, 40, 169, 6, 1, 234, 99, 40, 169, 6, 1, 234,
- 88, 40, 169, 6, 1, 234, 51, 40, 169, 6, 1, 74, 40, 169, 6, 1, 211, 194,
- 40, 169, 6, 1, 214, 23, 212, 0, 40, 169, 6, 1, 206, 208, 212, 0, 40, 169,
- 6, 1, 211, 255, 40, 169, 6, 1, 234, 41, 40, 169, 6, 1, 234, 93, 40, 169,
- 6, 1, 234, 21, 40, 169, 6, 1, 203, 195, 234, 21, 40, 169, 6, 1, 234, 9,
- 40, 169, 6, 1, 233, 244, 40, 169, 6, 1, 233, 242, 40, 169, 6, 1, 234, 65,
- 40, 169, 6, 1, 233, 231, 40, 169, 6, 1, 234, 177, 40, 169, 6, 1, 68, 40,
- 169, 6, 1, 196, 251, 40, 169, 6, 1, 214, 23, 197, 104, 40, 169, 6, 1,
- 206, 208, 197, 104, 40, 169, 6, 1, 233, 218, 40, 169, 6, 1, 233, 170, 40,
- 169, 6, 1, 233, 165, 40, 169, 6, 1, 234, 64, 57, 40, 169, 6, 1, 197, 10,
- 40, 169, 2, 1, 64, 40, 169, 2, 1, 252, 33, 40, 169, 2, 1, 234, 181, 40,
- 169, 2, 1, 250, 236, 40, 169, 2, 1, 234, 179, 40, 169, 2, 1, 234, 85, 40,
- 169, 2, 1, 234, 176, 40, 169, 2, 1, 234, 175, 40, 169, 2, 1, 250, 217,
- 40, 169, 2, 1, 71, 40, 169, 2, 1, 242, 85, 71, 40, 169, 2, 1, 234, 171,
- 40, 169, 2, 1, 234, 164, 40, 169, 2, 1, 234, 163, 40, 169, 2, 1, 234,
- 160, 40, 169, 2, 1, 234, 157, 40, 169, 2, 1, 70, 40, 169, 2, 1, 223, 224,
- 40, 169, 2, 1, 234, 134, 40, 169, 2, 1, 234, 131, 40, 169, 2, 1, 251, 44,
- 40, 169, 2, 1, 197, 50, 40, 169, 2, 1, 234, 124, 40, 169, 2, 1, 234, 102,
- 40, 169, 2, 1, 234, 99, 40, 169, 2, 1, 234, 88, 40, 169, 2, 1, 234, 51,
- 40, 169, 2, 1, 74, 40, 169, 2, 1, 211, 194, 40, 169, 2, 1, 214, 23, 212,
- 0, 40, 169, 2, 1, 206, 208, 212, 0, 40, 169, 2, 1, 211, 255, 40, 169, 2,
- 1, 234, 41, 40, 169, 2, 1, 234, 93, 40, 169, 2, 1, 234, 21, 40, 169, 2,
- 1, 203, 195, 234, 21, 40, 169, 2, 1, 234, 9, 40, 169, 2, 1, 233, 244, 40,
- 169, 2, 1, 233, 242, 40, 169, 2, 1, 234, 65, 40, 169, 2, 1, 233, 231, 40,
- 169, 2, 1, 234, 177, 40, 169, 2, 1, 68, 40, 169, 2, 1, 196, 251, 40, 169,
- 2, 1, 214, 23, 197, 104, 40, 169, 2, 1, 206, 208, 197, 104, 40, 169, 2,
- 1, 233, 218, 40, 169, 2, 1, 233, 170, 40, 169, 2, 1, 233, 165, 40, 169,
- 2, 1, 234, 64, 57, 40, 169, 2, 1, 197, 10, 40, 169, 31, 101, 40, 169, 31,
- 151, 40, 169, 31, 200, 30, 40, 169, 31, 233, 3, 40, 169, 31, 90, 228,
- 162, 40, 169, 31, 90, 180, 230, 33, 207, 36, 1, 64, 230, 33, 207, 36, 1,
- 249, 3, 230, 33, 207, 36, 1, 166, 230, 33, 207, 36, 1, 189, 230, 33, 207,
- 36, 1, 198, 83, 230, 33, 207, 36, 1, 223, 62, 230, 33, 207, 36, 1, 247,
- 19, 230, 33, 207, 36, 1, 144, 230, 33, 207, 36, 1, 221, 250, 230, 33,
- 207, 36, 1, 233, 97, 230, 33, 207, 36, 1, 238, 0, 230, 33, 207, 36, 1,
- 237, 161, 230, 33, 207, 36, 1, 167, 230, 33, 207, 36, 1, 207, 3, 230, 33,
- 207, 36, 1, 192, 112, 230, 33, 207, 36, 1, 188, 230, 33, 207, 36, 1, 204,
- 64, 230, 33, 207, 36, 1, 160, 230, 33, 207, 36, 1, 231, 233, 230, 33,
- 207, 36, 1, 177, 230, 33, 207, 36, 1, 172, 230, 33, 207, 36, 1, 181, 230,
- 33, 207, 36, 1, 194, 169, 230, 33, 207, 36, 1, 221, 175, 194, 169, 230,
- 33, 207, 36, 1, 168, 230, 33, 207, 36, 1, 221, 175, 168, 230, 33, 207,
- 36, 1, 214, 165, 230, 33, 207, 36, 1, 212, 201, 230, 33, 207, 36, 1, 196,
- 157, 230, 33, 207, 36, 18, 64, 230, 33, 207, 36, 18, 70, 230, 33, 207,
- 36, 18, 68, 230, 33, 207, 36, 18, 71, 230, 33, 207, 36, 18, 74, 230, 33,
- 207, 36, 122, 206, 67, 230, 33, 207, 36, 122, 215, 97, 221, 216, 230, 33,
- 207, 36, 3, 230, 27, 230, 33, 207, 36, 3, 200, 150, 230, 33, 207, 36, 3,
- 200, 124, 230, 33, 207, 36, 3, 200, 106, 230, 33, 207, 36, 17, 192, 76,
- 230, 33, 207, 36, 17, 101, 230, 33, 207, 36, 17, 104, 230, 33, 207, 36,
- 17, 133, 230, 33, 207, 36, 17, 134, 230, 33, 207, 36, 17, 151, 230, 33,
- 207, 36, 17, 170, 230, 33, 207, 36, 17, 179, 230, 33, 207, 36, 17, 174,
- 230, 33, 207, 36, 17, 182, 206, 196, 17, 101, 206, 196, 17, 104, 206,
- 196, 17, 133, 206, 196, 17, 134, 206, 196, 17, 151, 206, 196, 17, 170,
- 206, 196, 17, 179, 206, 196, 17, 174, 206, 196, 17, 182, 206, 196, 31,
- 200, 30, 206, 196, 31, 197, 239, 206, 196, 31, 199, 184, 206, 196, 31,
- 232, 126, 206, 196, 31, 233, 3, 206, 196, 31, 203, 25, 206, 196, 31, 204,
- 140, 206, 196, 31, 234, 137, 206, 196, 31, 214, 11, 206, 196, 31, 90,
- 228, 162, 206, 196, 31, 103, 228, 162, 206, 196, 31, 112, 228, 162, 206,
- 196, 31, 232, 119, 228, 162, 206, 196, 31, 232, 214, 228, 162, 206, 196,
- 31, 203, 41, 228, 162, 206, 196, 31, 204, 146, 228, 162, 206, 196, 31,
- 234, 148, 228, 162, 206, 196, 31, 214, 16, 228, 162, 206, 196, 232, 109,
- 90, 230, 78, 206, 196, 232, 109, 90, 208, 167, 206, 196, 232, 109, 90,
- 199, 191, 206, 196, 232, 109, 103, 199, 188, 193, 28, 1, 234, 108, 193,
- 28, 1, 248, 123, 193, 28, 1, 210, 181, 193, 28, 1, 210, 80, 193, 28, 1,
- 199, 224, 193, 28, 1, 205, 223, 193, 28, 1, 242, 136, 193, 28, 1, 242,
- 203, 193, 28, 1, 242, 217, 193, 28, 1, 229, 187, 193, 28, 1, 193, 209,
- 193, 28, 1, 237, 227, 193, 28, 1, 192, 101, 193, 28, 1, 167, 193, 28, 1,
- 207, 156, 193, 28, 1, 192, 112, 193, 28, 1, 223, 62, 193, 28, 1, 203, 78,
- 193, 28, 1, 203, 224, 193, 28, 1, 206, 86, 193, 28, 1, 237, 250, 193, 28,
- 1, 189, 193, 28, 1, 192, 85, 193, 28, 1, 233, 172, 193, 28, 1, 193, 197,
- 193, 28, 1, 233, 97, 193, 28, 1, 196, 157, 193, 28, 1, 196, 158, 250,
- 249, 20, 193, 28, 1, 208, 232, 193, 28, 1, 222, 139, 193, 28, 1, 221,
- 247, 193, 28, 1, 231, 220, 193, 28, 1, 220, 94, 193, 28, 1, 216, 122,
- 193, 28, 1, 212, 230, 193, 28, 1, 197, 84, 193, 28, 1, 194, 119, 193, 28,
- 1, 211, 106, 193, 28, 1, 233, 212, 193, 28, 1, 230, 6, 193, 28, 1, 192,
- 229, 193, 28, 1, 233, 242, 193, 28, 38, 230, 67, 77, 193, 28, 38, 217,
- 210, 77, 193, 28, 228, 109, 77, 193, 28, 1, 220, 95, 4, 78, 58, 193, 28,
- 1, 192, 230, 4, 242, 122, 58, 40, 202, 194, 1, 251, 24, 40, 202, 194, 1,
- 52, 251, 24, 40, 202, 194, 1, 248, 62, 40, 202, 194, 1, 52, 248, 62, 40,
- 202, 194, 1, 231, 31, 40, 202, 194, 1, 229, 255, 40, 202, 194, 1, 52,
- 229, 255, 40, 202, 194, 1, 194, 119, 40, 202, 194, 1, 192, 89, 40, 202,
- 194, 1, 229, 194, 40, 202, 194, 1, 192, 238, 40, 202, 194, 1, 222, 109,
- 40, 202, 194, 1, 220, 85, 40, 202, 194, 1, 217, 12, 40, 202, 194, 1, 212,
- 230, 40, 202, 194, 1, 52, 212, 230, 40, 202, 194, 1, 52, 212, 231, 4, 84,
- 200, 147, 40, 202, 194, 1, 206, 46, 40, 202, 194, 1, 249, 231, 40, 202,
- 194, 1, 250, 249, 249, 231, 40, 202, 194, 1, 210, 181, 40, 202, 194, 1,
- 206, 83, 40, 202, 194, 1, 52, 206, 83, 40, 202, 194, 1, 52, 206, 84, 4,
- 84, 200, 147, 40, 202, 194, 1, 207, 186, 40, 202, 194, 1, 203, 224, 40,
- 202, 194, 1, 200, 93, 40, 202, 194, 1, 52, 200, 93, 40, 202, 194, 1, 52,
- 200, 94, 4, 84, 200, 147, 40, 202, 194, 31, 101, 40, 202, 194, 31, 104,
- 40, 202, 194, 31, 133, 40, 202, 194, 31, 134, 40, 202, 194, 31, 151, 40,
- 202, 194, 31, 200, 30, 40, 202, 194, 31, 197, 239, 40, 202, 194, 31, 199,
- 184, 40, 202, 194, 31, 90, 228, 162, 40, 202, 194, 232, 109, 90, 230, 78,
- 40, 202, 194, 34, 249, 230, 202, 194, 1, 251, 24, 202, 194, 1, 248, 62,
- 202, 194, 1, 231, 31, 202, 194, 1, 229, 255, 202, 194, 1, 194, 119, 202,
- 194, 1, 192, 89, 202, 194, 1, 229, 194, 202, 194, 1, 192, 238, 202, 194,
- 1, 222, 109, 202, 194, 1, 220, 85, 202, 194, 1, 217, 12, 202, 194, 1,
- 212, 230, 202, 194, 1, 206, 46, 202, 194, 1, 249, 231, 202, 194, 1, 210,
- 181, 202, 194, 1, 206, 83, 202, 194, 1, 207, 187, 202, 194, 1, 203, 224,
- 202, 194, 1, 200, 93, 202, 194, 1, 233, 18, 202, 194, 1, 219, 242, 202,
- 194, 223, 177, 203, 224, 202, 194, 38, 78, 63, 202, 194, 38, 103, 236,
- 112, 63, 202, 194, 38, 78, 58, 202, 194, 38, 103, 236, 112, 58, 202, 194,
- 38, 238, 132, 58, 202, 194, 38, 238, 132, 63, 202, 194, 38, 229, 15, 58,
- 202, 194, 38, 229, 15, 63, 202, 194, 38, 184, 229, 15, 63, 202, 194, 38,
- 207, 189, 63, 202, 194, 38, 201, 208, 63, 202, 194, 31, 101, 202, 194,
- 31, 200, 30, 202, 194, 31, 197, 239, 202, 194, 31, 90, 228, 162, 202,
- 194, 209, 38, 103, 84, 248, 182, 202, 194, 209, 38, 103, 84, 248, 183, 4,
- 236, 111, 202, 194, 209, 38, 242, 131, 4, 236, 114, 202, 194, 209, 38,
- 103, 242, 128, 4, 236, 111, 202, 194, 209, 38, 138, 242, 131, 4, 236,
- 114, 242, 181, 1, 251, 24, 242, 181, 1, 2, 251, 24, 242, 181, 1, 248, 62,
- 242, 181, 1, 231, 31, 242, 181, 1, 237, 220, 242, 181, 1, 229, 255, 242,
- 181, 1, 194, 119, 242, 181, 1, 238, 141, 194, 119, 242, 181, 1, 192, 89,
- 242, 181, 1, 229, 194, 242, 181, 1, 192, 238, 242, 181, 1, 222, 109, 242,
- 181, 1, 220, 85, 242, 181, 1, 217, 12, 242, 181, 1, 212, 230, 242, 181,
- 1, 206, 46, 242, 181, 1, 249, 231, 242, 181, 1, 210, 181, 242, 181, 1,
- 207, 188, 242, 181, 1, 203, 224, 242, 181, 1, 200, 93, 242, 181, 31, 101,
- 242, 181, 31, 104, 242, 181, 31, 133, 242, 181, 31, 134, 242, 181, 31,
- 200, 30, 242, 181, 31, 197, 239, 242, 181, 31, 90, 228, 162, 234, 101, 1,
- 251, 24, 234, 101, 1, 248, 62, 234, 101, 1, 231, 31, 234, 101, 1, 237,
- 220, 234, 101, 1, 229, 255, 234, 101, 1, 194, 119, 234, 101, 1, 192, 89,
- 234, 101, 1, 229, 194, 234, 101, 1, 200, 4, 234, 101, 1, 192, 238, 234,
- 101, 1, 222, 109, 234, 101, 1, 220, 85, 234, 101, 1, 217, 12, 234, 101,
- 1, 212, 230, 234, 101, 1, 206, 46, 234, 101, 1, 249, 231, 234, 101, 1,
- 210, 181, 234, 101, 1, 206, 83, 234, 101, 1, 208, 181, 234, 101, 1, 207,
- 188, 234, 101, 1, 203, 224, 234, 101, 1, 200, 93, 234, 101, 34, 192, 88,
- 164, 3, 246, 234, 164, 3, 250, 168, 164, 3, 196, 6, 164, 3, 223, 13, 164,
- 3, 197, 39, 164, 1, 64, 164, 1, 252, 33, 164, 1, 70, 164, 1, 223, 224,
- 164, 1, 68, 164, 1, 196, 251, 164, 1, 118, 150, 164, 1, 118, 207, 4, 164,
- 1, 118, 165, 164, 1, 118, 219, 138, 164, 1, 71, 164, 1, 251, 63, 164, 1,
- 74, 164, 1, 250, 8, 164, 1, 160, 164, 1, 221, 250, 164, 1, 231, 233, 164,
- 1, 231, 84, 164, 1, 214, 165, 164, 1, 247, 19, 164, 1, 246, 117, 164, 1,
- 223, 62, 164, 1, 223, 28, 164, 1, 212, 201, 164, 1, 198, 83, 164, 1, 198,
- 71, 164, 1, 237, 161, 164, 1, 237, 145, 164, 1, 213, 178, 164, 1, 189,
- 164, 1, 199, 240, 164, 1, 238, 0, 164, 1, 237, 40, 164, 1, 181, 164, 1,
- 166, 164, 1, 210, 94, 164, 1, 249, 3, 164, 1, 248, 54, 164, 1, 172, 164,
- 1, 168, 164, 1, 167, 164, 1, 177, 164, 1, 196, 157, 164, 1, 204, 64, 164,
- 1, 202, 92, 164, 1, 188, 164, 1, 144, 164, 1, 219, 137, 164, 1, 40, 44,
- 219, 126, 164, 1, 40, 44, 207, 3, 164, 1, 40, 44, 213, 160, 164, 18, 3,
- 252, 33, 164, 18, 3, 248, 50, 252, 33, 164, 18, 3, 70, 164, 18, 3, 223,
- 224, 164, 18, 3, 68, 164, 18, 3, 196, 251, 164, 18, 3, 118, 150, 164, 18,
- 3, 118, 207, 4, 164, 18, 3, 118, 165, 164, 18, 3, 118, 219, 138, 164, 18,
- 3, 71, 164, 18, 3, 251, 63, 164, 18, 3, 74, 164, 18, 3, 250, 8, 164, 196,
- 11, 164, 237, 208, 164, 55, 237, 208, 164, 209, 38, 236, 114, 164, 209,
- 38, 55, 236, 114, 164, 209, 38, 219, 175, 164, 209, 38, 238, 194, 161,
- 164, 209, 38, 219, 57, 164, 31, 101, 164, 31, 104, 164, 31, 133, 164, 31,
- 134, 164, 31, 151, 164, 31, 170, 164, 31, 179, 164, 31, 174, 164, 31,
- 182, 164, 31, 200, 30, 164, 31, 197, 239, 164, 31, 199, 184, 164, 31,
- 232, 126, 164, 31, 233, 3, 164, 31, 203, 25, 164, 31, 204, 140, 164, 31,
- 234, 137, 164, 31, 214, 11, 164, 31, 90, 228, 162, 164, 31, 90, 180, 164,
- 17, 192, 76, 164, 17, 101, 164, 17, 104, 164, 17, 133, 164, 17, 134, 164,
- 17, 151, 164, 17, 170, 164, 17, 179, 164, 17, 174, 164, 17, 182, 164, 31,
- 222, 228, 222, 132, 3, 246, 234, 222, 132, 3, 250, 168, 222, 132, 3, 196,
- 6, 222, 132, 1, 64, 222, 132, 1, 252, 33, 222, 132, 1, 70, 222, 132, 1,
- 223, 224, 222, 132, 1, 68, 222, 132, 1, 196, 251, 222, 132, 1, 71, 222,
- 132, 1, 251, 63, 222, 132, 1, 74, 222, 132, 1, 250, 8, 222, 132, 1, 160,
- 222, 132, 1, 221, 250, 222, 132, 1, 231, 233, 222, 132, 1, 231, 84, 222,
- 132, 1, 214, 165, 222, 132, 1, 247, 19, 222, 132, 1, 246, 117, 222, 132,
- 1, 223, 62, 222, 132, 1, 223, 28, 222, 132, 1, 212, 201, 222, 132, 1,
- 198, 83, 222, 132, 1, 198, 71, 222, 132, 1, 237, 161, 222, 132, 1, 237,
- 150, 222, 132, 1, 237, 145, 222, 132, 1, 207, 156, 222, 132, 1, 213, 178,
- 222, 132, 1, 189, 222, 132, 1, 199, 240, 222, 132, 1, 238, 0, 222, 132,
- 1, 237, 40, 222, 132, 1, 181, 222, 132, 1, 166, 222, 132, 1, 210, 94,
- 222, 132, 1, 249, 3, 222, 132, 1, 248, 54, 222, 132, 1, 172, 222, 132, 1,
- 168, 222, 132, 1, 167, 222, 132, 1, 177, 222, 132, 1, 196, 157, 222, 132,
- 1, 204, 64, 222, 132, 1, 202, 92, 222, 132, 1, 188, 222, 132, 1, 144,
- 222, 132, 18, 3, 252, 33, 222, 132, 18, 3, 70, 222, 132, 18, 3, 223, 224,
- 222, 132, 18, 3, 68, 222, 132, 18, 3, 196, 251, 222, 132, 18, 3, 71, 222,
- 132, 18, 3, 251, 63, 222, 132, 18, 3, 74, 222, 132, 18, 3, 250, 8, 222,
- 132, 3, 196, 11, 222, 132, 3, 212, 241, 222, 132, 251, 151, 57, 222, 132,
- 234, 54, 57, 222, 132, 31, 57, 222, 132, 205, 209, 77, 222, 132, 55, 205,
- 209, 77, 222, 132, 237, 208, 222, 132, 55, 237, 208, 222, 132, 31, 3, 58,
- 202, 179, 202, 187, 1, 206, 76, 202, 179, 202, 187, 1, 200, 151, 202,
- 179, 202, 187, 1, 248, 229, 202, 179, 202, 187, 1, 247, 8, 202, 179, 202,
- 187, 1, 237, 236, 202, 179, 202, 187, 1, 231, 218, 202, 179, 202, 187, 1,
- 217, 188, 202, 179, 202, 187, 1, 214, 162, 202, 179, 202, 187, 1, 220,
- 158, 202, 179, 202, 187, 1, 215, 71, 202, 179, 202, 187, 1, 196, 153,
- 202, 179, 202, 187, 1, 211, 57, 202, 179, 202, 187, 1, 193, 110, 202,
- 179, 202, 187, 1, 208, 50, 202, 179, 202, 187, 1, 230, 89, 202, 179, 202,
- 187, 1, 222, 137, 202, 179, 202, 187, 1, 223, 56, 202, 179, 202, 187, 1,
- 212, 198, 202, 179, 202, 187, 1, 251, 72, 202, 179, 202, 187, 1, 234,
- 169, 202, 179, 202, 187, 1, 223, 225, 202, 179, 202, 187, 1, 197, 97,
- 202, 179, 202, 187, 1, 211, 241, 202, 179, 202, 187, 1, 234, 157, 202,
- 179, 202, 187, 1, 217, 204, 202, 179, 202, 187, 17, 192, 76, 202, 179,
- 202, 187, 17, 101, 202, 179, 202, 187, 17, 104, 202, 179, 202, 187, 17,
- 133, 202, 179, 202, 187, 17, 134, 202, 179, 202, 187, 17, 151, 202, 179,
- 202, 187, 17, 170, 202, 179, 202, 187, 17, 179, 202, 179, 202, 187, 17,
- 174, 202, 179, 202, 187, 17, 182, 246, 111, 3, 246, 234, 246, 111, 3,
- 250, 168, 246, 111, 3, 196, 6, 246, 111, 1, 252, 33, 246, 111, 1, 70,
- 246, 111, 1, 68, 246, 111, 1, 71, 246, 111, 1, 222, 159, 246, 111, 1,
- 221, 249, 246, 111, 1, 231, 230, 246, 111, 1, 231, 83, 246, 111, 1, 214,
- 164, 246, 111, 1, 247, 18, 246, 111, 1, 246, 116, 246, 111, 1, 223, 61,
- 246, 111, 1, 223, 27, 246, 111, 1, 212, 200, 246, 111, 1, 198, 82, 246,
- 111, 1, 198, 70, 246, 111, 1, 237, 160, 246, 111, 1, 237, 144, 246, 111,
- 1, 213, 177, 246, 111, 1, 200, 174, 246, 111, 1, 199, 239, 246, 111, 1,
- 237, 255, 246, 111, 1, 237, 39, 246, 111, 1, 215, 84, 246, 111, 1, 211,
- 77, 246, 111, 1, 210, 93, 246, 111, 1, 249, 1, 246, 111, 1, 248, 53, 246,
- 111, 1, 217, 219, 246, 111, 1, 192, 163, 246, 111, 1, 193, 129, 246, 111,
- 1, 208, 68, 246, 111, 1, 220, 184, 246, 111, 1, 194, 163, 246, 111, 1,
- 206, 91, 246, 111, 1, 230, 99, 246, 111, 18, 3, 64, 246, 111, 18, 3, 70,
- 246, 111, 18, 3, 223, 224, 246, 111, 18, 3, 68, 246, 111, 18, 3, 196,
- 251, 246, 111, 18, 3, 71, 246, 111, 18, 3, 251, 63, 246, 111, 18, 3, 74,
- 246, 111, 18, 3, 250, 8, 246, 111, 18, 3, 211, 238, 246, 111, 185, 77,
- 246, 111, 250, 9, 77, 246, 111, 196, 11, 246, 111, 217, 217, 246, 111,
- 17, 192, 76, 246, 111, 17, 101, 246, 111, 17, 104, 246, 111, 17, 133,
- 246, 111, 17, 134, 246, 111, 17, 151, 246, 111, 17, 170, 246, 111, 17,
- 179, 246, 111, 17, 174, 246, 111, 17, 182, 246, 111, 205, 209, 77, 246,
- 111, 237, 208, 246, 111, 55, 237, 208, 246, 111, 208, 159, 77, 246, 111,
- 1, 219, 221, 246, 111, 18, 3, 252, 33, 246, 111, 18, 3, 234, 150, 246,
- 111, 1, 196, 156, 217, 186, 1, 64, 217, 186, 1, 70, 217, 186, 1, 68, 217,
- 186, 1, 71, 217, 186, 1, 74, 217, 186, 1, 160, 217, 186, 1, 221, 250,
- 217, 186, 1, 231, 233, 217, 186, 1, 231, 84, 217, 186, 1, 247, 19, 217,
- 186, 1, 246, 117, 217, 186, 1, 223, 62, 217, 186, 1, 223, 28, 217, 186,
- 1, 212, 201, 217, 186, 1, 198, 83, 217, 186, 1, 198, 71, 217, 186, 1,
- 237, 161, 217, 186, 1, 237, 145, 217, 186, 1, 213, 178, 217, 186, 1, 189,
- 217, 186, 1, 199, 240, 217, 186, 1, 238, 0, 217, 186, 1, 237, 40, 217,
- 186, 1, 181, 217, 186, 1, 166, 217, 186, 1, 210, 94, 217, 186, 1, 249, 3,
- 217, 186, 1, 248, 54, 217, 186, 1, 172, 217, 186, 1, 167, 217, 186, 1,
- 177, 217, 186, 1, 196, 157, 217, 186, 1, 188, 217, 186, 1, 144, 217, 186,
- 1, 207, 3, 217, 186, 3, 212, 241, 217, 186, 251, 151, 57, 217, 186, 205,
- 209, 77, 217, 186, 34, 203, 172, 204, 28, 3, 246, 234, 204, 28, 3, 250,
- 168, 204, 28, 3, 196, 6, 204, 28, 1, 64, 204, 28, 1, 252, 33, 204, 28, 1,
- 70, 204, 28, 1, 223, 224, 204, 28, 1, 68, 204, 28, 1, 196, 251, 204, 28,
- 1, 118, 150, 204, 28, 1, 118, 207, 4, 204, 28, 1, 118, 165, 204, 28, 1,
- 118, 219, 138, 204, 28, 1, 71, 204, 28, 1, 251, 63, 204, 28, 1, 74, 204,
- 28, 1, 250, 8, 204, 28, 1, 160, 204, 28, 1, 221, 250, 204, 28, 1, 231,
- 233, 204, 28, 1, 231, 84, 204, 28, 1, 214, 165, 204, 28, 1, 247, 19, 204,
- 28, 1, 246, 117, 204, 28, 1, 223, 62, 204, 28, 1, 223, 28, 204, 28, 1,
- 212, 201, 204, 28, 1, 198, 83, 204, 28, 1, 198, 71, 204, 28, 1, 237, 161,
- 204, 28, 1, 237, 145, 204, 28, 1, 213, 178, 204, 28, 1, 189, 204, 28, 1,
- 199, 240, 204, 28, 1, 238, 0, 204, 28, 1, 237, 40, 204, 28, 1, 181, 204,
- 28, 1, 166, 204, 28, 1, 210, 94, 204, 28, 1, 249, 3, 204, 28, 1, 248, 54,
- 204, 28, 1, 172, 204, 28, 1, 168, 204, 28, 1, 167, 204, 28, 1, 177, 204,
- 28, 1, 219, 137, 204, 28, 1, 196, 157, 204, 28, 1, 204, 64, 204, 28, 1,
- 202, 92, 204, 28, 1, 188, 204, 28, 1, 144, 204, 28, 18, 3, 252, 33, 204,
- 28, 18, 3, 70, 204, 28, 18, 3, 223, 224, 204, 28, 18, 3, 68, 204, 28, 18,
- 3, 196, 251, 204, 28, 18, 3, 118, 150, 204, 28, 18, 3, 118, 207, 4, 204,
- 28, 18, 3, 118, 165, 204, 28, 18, 3, 118, 219, 138, 204, 28, 18, 3, 71,
- 204, 28, 18, 3, 251, 63, 204, 28, 18, 3, 74, 204, 28, 18, 3, 250, 8, 204,
- 28, 3, 196, 11, 204, 28, 3, 249, 246, 204, 28, 3, 223, 13, 204, 28, 3,
- 197, 39, 204, 28, 211, 219, 204, 28, 237, 208, 204, 28, 55, 237, 208,
- 204, 28, 251, 151, 57, 204, 28, 204, 165, 204, 28, 206, 36, 77, 204, 28,
- 3, 212, 241, 204, 28, 18, 73, 77, 204, 28, 233, 189, 203, 195, 18, 77,
- 204, 28, 201, 87, 77, 204, 28, 18, 3, 209, 91, 71, 204, 28, 3, 223, 121,
- 246, 234, 204, 28, 17, 192, 76, 204, 28, 17, 101, 204, 28, 17, 104, 204,
- 28, 17, 133, 204, 28, 17, 134, 204, 28, 17, 151, 204, 28, 17, 170, 204,
- 28, 17, 179, 204, 28, 17, 174, 204, 28, 17, 182, 204, 28, 234, 130, 204,
- 28, 3, 203, 113, 204, 28, 229, 237, 204, 28, 238, 250, 57, 204, 28, 205,
- 209, 217, 126, 204, 28, 205, 209, 217, 125, 159, 250, 112, 17, 101, 159,
- 250, 112, 17, 104, 159, 250, 112, 17, 133, 159, 250, 112, 17, 134, 159,
- 250, 112, 17, 151, 159, 250, 112, 17, 170, 159, 250, 112, 17, 179, 159,
- 250, 112, 17, 174, 159, 250, 112, 17, 182, 159, 250, 112, 31, 200, 30,
- 159, 250, 112, 31, 197, 239, 159, 250, 112, 31, 199, 184, 159, 250, 112,
- 31, 232, 126, 159, 250, 112, 31, 233, 3, 159, 250, 112, 31, 203, 25, 159,
- 250, 112, 31, 204, 140, 159, 250, 112, 31, 234, 137, 159, 250, 112, 31,
- 214, 11, 159, 250, 112, 31, 90, 228, 162, 159, 250, 112, 31, 90, 180,
- 221, 219, 1, 64, 221, 219, 1, 252, 33, 221, 219, 1, 70, 221, 219, 1, 68,
- 221, 219, 1, 71, 221, 219, 1, 251, 63, 221, 219, 1, 74, 221, 219, 1, 250,
- 8, 221, 219, 1, 160, 221, 219, 1, 221, 250, 221, 219, 1, 231, 233, 221,
- 219, 1, 231, 120, 221, 219, 1, 231, 84, 221, 219, 1, 214, 165, 221, 219,
- 1, 247, 19, 221, 219, 1, 246, 117, 221, 219, 1, 223, 62, 221, 219, 1,
- 223, 6, 221, 219, 1, 212, 201, 221, 219, 1, 198, 83, 221, 219, 1, 198,
- 71, 221, 219, 1, 237, 161, 221, 219, 1, 237, 145, 221, 219, 1, 213, 178,
- 221, 219, 1, 189, 221, 219, 1, 199, 240, 221, 219, 1, 238, 0, 221, 219,
- 1, 237, 151, 221, 219, 1, 237, 40, 221, 219, 1, 181, 221, 219, 1, 166,
- 221, 219, 1, 210, 94, 221, 219, 1, 249, 3, 221, 219, 1, 248, 159, 221,
- 219, 1, 248, 54, 221, 219, 1, 172, 221, 219, 1, 168, 221, 219, 1, 167,
- 221, 219, 1, 177, 221, 219, 1, 196, 157, 221, 219, 1, 188, 221, 219, 1,
- 144, 221, 219, 1, 219, 137, 221, 219, 18, 3, 252, 33, 221, 219, 18, 3,
- 70, 221, 219, 18, 3, 223, 224, 221, 219, 18, 3, 68, 221, 219, 18, 3, 71,
- 221, 219, 18, 3, 251, 63, 221, 219, 18, 3, 74, 221, 219, 18, 3, 250, 8,
- 221, 219, 3, 250, 168, 221, 219, 3, 196, 11, 221, 219, 3, 212, 241, 221,
- 219, 3, 204, 54, 221, 219, 237, 208, 221, 219, 55, 237, 208, 221, 219,
- 194, 11, 204, 165, 221, 219, 205, 209, 77, 221, 219, 55, 205, 209, 77,
- 221, 219, 251, 151, 57, 221, 219, 3, 201, 131, 215, 220, 1, 64, 215, 220,
- 1, 70, 215, 220, 1, 68, 215, 220, 1, 71, 215, 220, 1, 160, 215, 220, 1,
- 221, 250, 215, 220, 1, 231, 233, 215, 220, 1, 231, 84, 215, 220, 1, 247,
- 19, 215, 220, 1, 246, 117, 215, 220, 1, 223, 62, 215, 220, 1, 223, 6,
- 215, 220, 1, 212, 201, 215, 220, 1, 198, 83, 215, 220, 1, 198, 71, 215,
- 220, 1, 237, 161, 215, 220, 1, 237, 151, 215, 220, 1, 237, 145, 215, 220,
- 1, 213, 178, 215, 220, 1, 189, 215, 220, 1, 199, 240, 215, 220, 1, 238,
- 0, 215, 220, 1, 237, 40, 215, 220, 1, 181, 215, 220, 1, 166, 215, 220, 1,
- 210, 94, 215, 220, 1, 249, 3, 215, 220, 1, 248, 54, 215, 220, 1, 172,
- 215, 220, 1, 168, 215, 220, 1, 167, 215, 220, 1, 177, 215, 220, 1, 196,
- 157, 215, 220, 1, 188, 215, 220, 1, 144, 215, 220, 1, 207, 3, 215, 220,
- 1, 207, 156, 215, 220, 205, 209, 77, 221, 210, 1, 64, 221, 210, 1, 252,
- 33, 221, 210, 1, 70, 221, 210, 1, 223, 224, 221, 210, 1, 68, 221, 210, 1,
- 196, 251, 221, 210, 1, 71, 221, 210, 1, 251, 63, 221, 210, 1, 74, 221,
- 210, 1, 250, 8, 221, 210, 1, 160, 221, 210, 1, 221, 250, 221, 210, 1,
- 231, 233, 221, 210, 1, 231, 120, 221, 210, 1, 231, 84, 221, 210, 1, 214,
- 165, 221, 210, 1, 247, 19, 221, 210, 1, 246, 117, 221, 210, 1, 223, 62,
- 221, 210, 1, 223, 6, 221, 210, 1, 223, 28, 221, 210, 1, 212, 201, 221,
- 210, 1, 198, 83, 221, 210, 1, 198, 71, 221, 210, 1, 237, 161, 221, 210,
- 1, 237, 151, 221, 210, 1, 207, 3, 221, 210, 1, 237, 145, 221, 210, 1,
- 213, 178, 221, 210, 1, 189, 221, 210, 1, 199, 240, 221, 210, 1, 238, 0,
- 221, 210, 1, 237, 40, 221, 210, 1, 181, 221, 210, 1, 166, 221, 210, 1,
- 210, 94, 221, 210, 1, 249, 3, 221, 210, 1, 248, 159, 221, 210, 1, 248,
- 54, 221, 210, 1, 172, 221, 210, 1, 168, 221, 210, 1, 167, 221, 210, 1,
- 177, 221, 210, 1, 196, 157, 221, 210, 1, 204, 64, 221, 210, 1, 188, 221,
- 210, 1, 144, 221, 210, 3, 250, 168, 221, 210, 18, 3, 252, 33, 221, 210,
- 18, 3, 70, 221, 210, 18, 3, 223, 224, 221, 210, 18, 3, 68, 221, 210, 18,
- 3, 196, 251, 221, 210, 18, 3, 71, 221, 210, 18, 3, 251, 63, 221, 210, 18,
- 3, 74, 221, 210, 18, 3, 250, 8, 221, 210, 3, 212, 241, 221, 210, 3, 196,
- 11, 221, 210, 17, 192, 76, 221, 210, 17, 101, 221, 210, 17, 104, 221,
- 210, 17, 133, 221, 210, 17, 134, 221, 210, 17, 151, 221, 210, 17, 170,
- 221, 210, 17, 179, 221, 210, 17, 174, 221, 210, 17, 182, 230, 219, 3, 38,
- 250, 169, 58, 230, 219, 3, 246, 234, 230, 219, 3, 250, 168, 230, 219, 3,
- 196, 6, 230, 219, 1, 64, 230, 219, 1, 252, 33, 230, 219, 1, 70, 230, 219,
- 1, 223, 224, 230, 219, 1, 68, 230, 219, 1, 196, 251, 230, 219, 1, 118,
- 150, 230, 219, 1, 118, 165, 230, 219, 1, 234, 171, 230, 219, 1, 251, 63,
- 230, 219, 1, 211, 194, 230, 219, 1, 250, 8, 230, 219, 1, 160, 230, 219,
- 1, 221, 250, 230, 219, 1, 231, 233, 230, 219, 1, 231, 84, 230, 219, 1,
- 214, 165, 230, 219, 1, 247, 19, 230, 219, 1, 246, 117, 230, 219, 1, 223,
- 62, 230, 219, 1, 223, 28, 230, 219, 1, 212, 201, 230, 219, 1, 198, 83,
- 230, 219, 1, 198, 71, 230, 219, 1, 237, 161, 230, 219, 1, 237, 145, 230,
- 219, 1, 213, 178, 230, 219, 1, 189, 230, 219, 1, 199, 240, 230, 219, 1,
- 238, 0, 230, 219, 1, 237, 40, 230, 219, 1, 181, 230, 219, 1, 166, 230,
- 219, 1, 210, 94, 230, 219, 1, 249, 3, 230, 219, 1, 248, 54, 230, 219, 1,
- 172, 230, 219, 1, 168, 230, 219, 1, 167, 230, 219, 1, 177, 230, 219, 1,
- 219, 137, 230, 219, 1, 196, 157, 230, 219, 1, 204, 64, 230, 219, 1, 202,
- 92, 230, 219, 1, 188, 230, 219, 1, 144, 38, 248, 18, 63, 230, 219, 3,
- 212, 241, 230, 219, 3, 249, 246, 230, 219, 18, 3, 252, 33, 230, 219, 18,
- 3, 70, 230, 219, 18, 3, 223, 224, 230, 219, 18, 3, 68, 230, 219, 18, 3,
- 196, 251, 230, 219, 18, 3, 118, 150, 230, 219, 18, 3, 118, 207, 4, 230,
- 219, 18, 3, 234, 171, 230, 219, 18, 3, 251, 63, 230, 219, 18, 3, 211,
- 194, 230, 219, 18, 3, 250, 8, 230, 219, 3, 196, 11, 230, 219, 211, 219,
- 230, 219, 250, 9, 220, 2, 77, 230, 219, 3, 209, 204, 230, 219, 1, 196,
- 120, 250, 168, 230, 219, 1, 196, 120, 55, 250, 168, 230, 219, 1, 118,
- 207, 4, 230, 219, 1, 118, 219, 138, 230, 219, 18, 3, 118, 165, 230, 219,
- 18, 3, 118, 219, 138, 38, 230, 219, 17, 192, 76, 38, 230, 219, 17, 101,
- 38, 230, 219, 17, 104, 38, 230, 219, 17, 133, 38, 230, 219, 17, 134, 38,
- 230, 219, 17, 151, 38, 230, 219, 17, 170, 38, 230, 219, 1, 64, 38, 230,
- 219, 1, 160, 38, 230, 219, 1, 181, 38, 230, 219, 1, 196, 39, 38, 230,
- 219, 1, 166, 214, 175, 1, 64, 214, 175, 1, 252, 33, 214, 175, 1, 70, 214,
- 175, 1, 223, 224, 214, 175, 1, 68, 214, 175, 1, 196, 251, 214, 175, 1,
- 118, 150, 214, 175, 1, 118, 207, 4, 214, 175, 1, 118, 165, 214, 175, 1,
- 118, 219, 138, 214, 175, 1, 71, 214, 175, 1, 251, 63, 214, 175, 1, 74,
- 214, 175, 1, 250, 8, 214, 175, 1, 160, 214, 175, 1, 221, 250, 214, 175,
- 1, 231, 233, 214, 175, 1, 231, 84, 214, 175, 1, 214, 165, 214, 175, 1,
- 214, 114, 214, 175, 1, 247, 19, 214, 175, 1, 246, 117, 214, 175, 1, 223,
- 62, 214, 175, 1, 223, 28, 214, 175, 1, 212, 201, 214, 175, 1, 212, 183,
- 214, 175, 1, 198, 83, 214, 175, 1, 198, 71, 214, 175, 1, 237, 161, 214,
- 175, 1, 237, 145, 214, 175, 1, 213, 178, 214, 175, 1, 189, 214, 175, 1,
- 199, 240, 214, 175, 1, 238, 0, 214, 175, 1, 237, 40, 214, 175, 1, 181,
- 214, 175, 1, 214, 65, 214, 175, 1, 166, 214, 175, 1, 210, 94, 214, 175,
- 1, 249, 3, 214, 175, 1, 248, 54, 214, 175, 1, 172, 214, 175, 1, 216, 178,
- 214, 175, 1, 168, 214, 175, 1, 167, 214, 175, 1, 207, 156, 214, 175, 1,
- 177, 214, 175, 1, 219, 222, 214, 175, 1, 194, 169, 214, 175, 1, 204, 64,
- 214, 175, 1, 202, 92, 214, 175, 1, 188, 214, 175, 1, 144, 214, 175, 18,
- 3, 252, 33, 214, 175, 18, 3, 70, 214, 175, 18, 3, 223, 224, 214, 175, 18,
- 3, 68, 214, 175, 18, 3, 196, 251, 214, 175, 18, 3, 118, 150, 214, 175,
- 18, 3, 118, 207, 4, 214, 175, 18, 3, 118, 165, 214, 175, 18, 3, 118, 219,
- 138, 214, 175, 18, 3, 71, 214, 175, 18, 3, 251, 63, 214, 175, 18, 3, 74,
- 214, 175, 18, 3, 250, 8, 214, 175, 3, 196, 11, 214, 175, 3, 246, 234,
- 214, 175, 3, 250, 168, 214, 175, 3, 196, 6, 214, 175, 3, 212, 241, 214,
- 175, 3, 249, 246, 214, 175, 3, 52, 250, 168, 214, 175, 211, 219, 214,
- 175, 203, 112, 214, 175, 237, 208, 214, 175, 55, 237, 208, 214, 175, 242,
- 38, 214, 175, 231, 197, 232, 247, 214, 175, 251, 151, 57, 214, 175, 17,
- 192, 76, 214, 175, 17, 101, 214, 175, 17, 104, 214, 175, 17, 133, 214,
- 175, 17, 134, 214, 175, 17, 151, 214, 175, 17, 170, 214, 175, 17, 179,
- 214, 175, 17, 174, 214, 175, 17, 182, 214, 175, 55, 242, 38, 214, 175,
- 209, 231, 77, 214, 175, 223, 147, 57, 214, 175, 206, 36, 77, 214, 175, 1,
- 196, 120, 250, 168, 214, 175, 3, 223, 13, 214, 175, 3, 197, 39, 199, 67,
- 250, 197, 199, 67, 1, 64, 199, 67, 1, 252, 33, 199, 67, 1, 70, 199, 67,
- 1, 223, 224, 199, 67, 1, 68, 199, 67, 1, 196, 251, 199, 67, 1, 118, 150,
- 199, 67, 1, 118, 207, 4, 199, 67, 1, 118, 165, 199, 67, 1, 118, 219, 138,
- 199, 67, 1, 71, 199, 67, 1, 251, 63, 199, 67, 1, 74, 199, 67, 1, 250, 8,
- 199, 67, 1, 160, 199, 67, 1, 221, 250, 199, 67, 1, 231, 233, 199, 67, 1,
- 231, 84, 199, 67, 1, 214, 165, 199, 67, 1, 247, 19, 199, 67, 1, 246, 117,
- 199, 67, 1, 223, 62, 199, 67, 1, 223, 28, 199, 67, 1, 212, 201, 199, 67,
- 1, 198, 83, 199, 67, 1, 198, 71, 199, 67, 1, 237, 161, 199, 67, 1, 237,
- 145, 199, 67, 1, 213, 178, 199, 67, 1, 189, 199, 67, 1, 199, 240, 199,
- 67, 1, 238, 0, 199, 67, 1, 237, 40, 199, 67, 1, 181, 199, 67, 1, 166,
- 199, 67, 1, 210, 94, 199, 67, 1, 249, 3, 199, 67, 1, 248, 54, 199, 67, 1,
- 172, 199, 67, 1, 168, 199, 67, 1, 167, 199, 67, 1, 177, 199, 67, 1, 196,
- 157, 199, 67, 1, 204, 64, 199, 67, 1, 202, 92, 199, 67, 1, 188, 199, 67,
- 1, 144, 199, 67, 18, 3, 252, 33, 199, 67, 18, 3, 70, 199, 67, 18, 3, 223,
- 224, 199, 67, 18, 3, 68, 199, 67, 18, 3, 196, 251, 199, 67, 18, 3, 118,
- 150, 199, 67, 18, 3, 118, 207, 4, 199, 67, 18, 3, 118, 165, 199, 67, 18,
- 3, 118, 219, 138, 199, 67, 18, 3, 71, 199, 67, 18, 3, 203, 195, 71, 199,
- 67, 18, 3, 251, 63, 199, 67, 18, 3, 74, 199, 67, 18, 3, 203, 195, 74,
- 199, 67, 18, 3, 250, 8, 199, 67, 3, 246, 234, 199, 67, 3, 250, 168, 199,
- 67, 3, 196, 6, 199, 67, 3, 196, 11, 199, 67, 3, 212, 241, 199, 67, 3,
- 249, 246, 199, 67, 230, 145, 199, 67, 251, 151, 57, 199, 67, 211, 219,
- 199, 67, 17, 192, 76, 199, 67, 17, 101, 199, 67, 17, 104, 199, 67, 17,
- 133, 199, 67, 17, 134, 199, 67, 17, 151, 199, 67, 17, 170, 199, 67, 17,
- 179, 199, 67, 17, 174, 199, 67, 17, 182, 203, 114, 1, 64, 203, 114, 1,
- 252, 33, 203, 114, 1, 70, 203, 114, 1, 223, 224, 203, 114, 1, 68, 203,
- 114, 1, 196, 251, 203, 114, 1, 118, 150, 203, 114, 1, 118, 207, 4, 203,
- 114, 1, 118, 165, 203, 114, 1, 118, 219, 138, 203, 114, 1, 71, 203, 114,
- 1, 251, 63, 203, 114, 1, 74, 203, 114, 1, 250, 8, 203, 114, 1, 160, 203,
- 114, 1, 221, 250, 203, 114, 1, 231, 233, 203, 114, 1, 231, 84, 203, 114,
- 1, 214, 165, 203, 114, 1, 247, 19, 203, 114, 1, 246, 117, 203, 114, 1,
- 223, 62, 203, 114, 1, 223, 28, 203, 114, 1, 212, 201, 203, 114, 1, 198,
- 83, 203, 114, 1, 198, 71, 203, 114, 1, 237, 161, 203, 114, 1, 237, 145,
- 203, 114, 1, 213, 178, 203, 114, 1, 189, 203, 114, 1, 199, 240, 203, 114,
- 1, 238, 0, 203, 114, 1, 237, 40, 203, 114, 1, 181, 203, 114, 1, 166, 203,
- 114, 1, 210, 94, 203, 114, 1, 249, 3, 203, 114, 1, 248, 54, 203, 114, 1,
- 172, 203, 114, 1, 168, 203, 114, 1, 167, 203, 114, 1, 177, 203, 114, 1,
- 196, 157, 203, 114, 1, 204, 64, 203, 114, 1, 202, 92, 203, 114, 1, 188,
- 203, 114, 1, 144, 203, 114, 18, 3, 252, 33, 203, 114, 18, 3, 70, 203,
- 114, 18, 3, 223, 224, 203, 114, 18, 3, 68, 203, 114, 18, 3, 196, 251,
- 203, 114, 18, 3, 118, 150, 203, 114, 18, 3, 118, 207, 4, 203, 114, 18, 3,
- 71, 203, 114, 18, 3, 251, 63, 203, 114, 18, 3, 74, 203, 114, 18, 3, 250,
- 8, 203, 114, 3, 246, 234, 203, 114, 3, 250, 168, 203, 114, 3, 196, 6,
- 203, 114, 3, 196, 11, 203, 114, 3, 212, 241, 203, 114, 3, 203, 113, 203,
- 114, 237, 208, 203, 114, 55, 237, 208, 203, 114, 204, 166, 236, 114, 203,
- 114, 204, 166, 161, 203, 114, 207, 196, 217, 126, 203, 114, 207, 196,
- 217, 125, 203, 114, 207, 196, 217, 124, 203, 114, 234, 80, 80, 199, 245,
- 77, 203, 114, 205, 209, 122, 4, 198, 180, 26, 197, 172, 211, 149, 203,
- 114, 205, 209, 122, 4, 198, 180, 26, 235, 111, 238, 192, 203, 114, 205,
- 209, 122, 4, 208, 13, 26, 235, 111, 238, 192, 203, 114, 205, 209, 122, 4,
- 208, 13, 26, 235, 111, 55, 238, 192, 203, 114, 205, 209, 122, 4, 208, 13,
- 26, 235, 111, 198, 170, 238, 192, 203, 114, 205, 209, 122, 55, 207, 81,
- 203, 114, 205, 209, 122, 55, 207, 82, 4, 208, 12, 203, 114, 205, 209,
- 122, 4, 55, 238, 192, 203, 114, 205, 209, 122, 4, 198, 170, 238, 192,
- 203, 114, 205, 209, 122, 4, 208, 170, 238, 192, 203, 114, 205, 209, 122,
- 4, 204, 163, 238, 192, 203, 114, 205, 209, 122, 4, 242, 128, 26, 208, 12,
- 203, 114, 205, 209, 122, 4, 242, 128, 26, 103, 234, 82, 203, 114, 205,
- 209, 122, 4, 242, 128, 26, 232, 119, 234, 82, 203, 114, 1, 199, 161, 250,
- 249, 70, 203, 114, 1, 197, 222, 250, 249, 70, 203, 114, 1, 197, 222, 250,
- 249, 223, 224, 203, 114, 1, 250, 249, 68, 203, 114, 18, 3, 250, 249, 68,
- 203, 114, 18, 3, 250, 249, 196, 251, 216, 76, 1, 64, 216, 76, 1, 252, 33,
- 216, 76, 1, 70, 216, 76, 1, 223, 224, 216, 76, 1, 68, 216, 76, 1, 196,
- 251, 216, 76, 1, 118, 150, 216, 76, 1, 118, 207, 4, 216, 76, 1, 118, 165,
- 216, 76, 1, 118, 219, 138, 216, 76, 1, 71, 216, 76, 1, 251, 63, 216, 76,
- 1, 74, 216, 76, 1, 250, 8, 216, 76, 1, 160, 216, 76, 1, 221, 250, 216,
- 76, 1, 231, 233, 216, 76, 1, 231, 84, 216, 76, 1, 214, 165, 216, 76, 1,
- 247, 19, 216, 76, 1, 246, 117, 216, 76, 1, 223, 62, 216, 76, 1, 223, 28,
- 216, 76, 1, 212, 201, 216, 76, 1, 198, 83, 216, 76, 1, 198, 71, 216, 76,
- 1, 237, 161, 216, 76, 1, 237, 145, 216, 76, 1, 213, 178, 216, 76, 1, 189,
- 216, 76, 1, 199, 240, 216, 76, 1, 238, 0, 216, 76, 1, 237, 40, 216, 76,
- 1, 181, 216, 76, 1, 166, 216, 76, 1, 210, 94, 216, 76, 1, 249, 3, 216,
- 76, 1, 248, 54, 216, 76, 1, 172, 216, 76, 1, 168, 216, 76, 1, 167, 216,
- 76, 1, 177, 216, 76, 1, 196, 157, 216, 76, 1, 204, 64, 216, 76, 1, 202,
- 92, 216, 76, 1, 188, 216, 76, 1, 144, 216, 76, 1, 219, 137, 216, 76, 18,
- 3, 252, 33, 216, 76, 18, 3, 70, 216, 76, 18, 3, 223, 224, 216, 76, 18, 3,
- 68, 216, 76, 18, 3, 196, 251, 216, 76, 18, 3, 118, 150, 216, 76, 18, 3,
- 118, 207, 4, 216, 76, 18, 3, 118, 165, 216, 76, 18, 3, 118, 219, 138,
- 216, 76, 18, 3, 71, 216, 76, 18, 3, 251, 63, 216, 76, 18, 3, 74, 216, 76,
- 18, 3, 250, 8, 216, 76, 3, 250, 168, 216, 76, 3, 196, 6, 216, 76, 3, 196,
- 11, 216, 76, 3, 250, 109, 216, 76, 237, 208, 216, 76, 55, 237, 208, 216,
- 76, 251, 151, 57, 216, 76, 3, 228, 149, 216, 76, 17, 192, 76, 216, 76,
- 17, 101, 216, 76, 17, 104, 216, 76, 17, 133, 216, 76, 17, 134, 216, 76,
- 17, 151, 216, 76, 17, 170, 216, 76, 17, 179, 216, 76, 17, 174, 216, 76,
- 17, 182, 100, 248, 12, 4, 211, 150, 100, 207, 16, 248, 11, 100, 55, 248,
- 12, 4, 211, 150, 100, 198, 170, 248, 12, 4, 211, 150, 100, 248, 12, 4,
- 55, 211, 150, 100, 207, 16, 248, 12, 4, 211, 150, 100, 207, 16, 248, 12,
- 4, 55, 211, 150, 100, 223, 121, 248, 11, 100, 223, 121, 248, 12, 4, 55,
- 211, 150, 100, 201, 63, 248, 11, 100, 201, 63, 248, 12, 4, 211, 150, 100,
- 201, 63, 248, 12, 4, 55, 211, 150, 100, 163, 201, 63, 248, 12, 4, 55,
- 211, 150, 200, 137, 1, 64, 200, 137, 1, 252, 33, 200, 137, 1, 70, 200,
- 137, 1, 223, 224, 200, 137, 1, 68, 200, 137, 1, 196, 251, 200, 137, 1,
- 71, 200, 137, 1, 251, 63, 200, 137, 1, 74, 200, 137, 1, 250, 8, 200, 137,
- 1, 160, 200, 137, 1, 221, 250, 200, 137, 1, 231, 233, 200, 137, 1, 231,
- 84, 200, 137, 1, 214, 165, 200, 137, 1, 247, 19, 200, 137, 1, 246, 117,
- 200, 137, 1, 223, 62, 200, 137, 1, 223, 28, 200, 137, 1, 212, 201, 200,
- 137, 1, 198, 83, 200, 137, 1, 198, 71, 200, 137, 1, 237, 161, 200, 137,
- 1, 237, 145, 200, 137, 1, 213, 178, 200, 137, 1, 189, 200, 137, 1, 199,
- 240, 200, 137, 1, 238, 0, 200, 137, 1, 237, 40, 200, 137, 1, 181, 200,
- 137, 1, 166, 200, 137, 1, 210, 94, 200, 137, 1, 249, 3, 200, 137, 1, 248,
- 54, 200, 137, 1, 172, 200, 137, 1, 168, 200, 137, 1, 167, 200, 137, 1,
- 177, 200, 137, 1, 196, 157, 200, 137, 1, 204, 64, 200, 137, 1, 188, 200,
- 137, 1, 144, 200, 137, 1, 207, 3, 200, 137, 3, 250, 168, 200, 137, 3,
- 196, 6, 200, 137, 18, 3, 252, 33, 200, 137, 18, 3, 70, 200, 137, 18, 3,
- 223, 224, 200, 137, 18, 3, 68, 200, 137, 18, 3, 196, 251, 200, 137, 18,
- 3, 71, 200, 137, 18, 3, 251, 63, 200, 137, 18, 3, 74, 200, 137, 18, 3,
- 250, 8, 200, 137, 3, 196, 11, 200, 137, 3, 212, 241, 200, 137, 1, 250,
- 112, 221, 250, 200, 137, 17, 192, 76, 200, 137, 17, 101, 200, 137, 17,
- 104, 200, 137, 17, 133, 200, 137, 17, 134, 200, 137, 17, 151, 200, 137,
- 17, 170, 200, 137, 17, 179, 200, 137, 17, 174, 200, 137, 17, 182, 251,
- 67, 1, 160, 251, 67, 1, 221, 250, 251, 67, 1, 214, 165, 251, 67, 1, 181,
- 251, 67, 1, 189, 251, 67, 1, 250, 249, 189, 251, 67, 1, 166, 251, 67, 1,
- 210, 94, 251, 67, 1, 249, 3, 251, 67, 1, 172, 251, 67, 1, 223, 62, 251,
- 67, 1, 246, 117, 251, 67, 1, 199, 240, 251, 67, 1, 167, 251, 67, 1, 177,
- 251, 67, 1, 188, 251, 67, 1, 212, 201, 251, 67, 1, 144, 251, 67, 1, 64,
- 251, 67, 1, 238, 0, 251, 67, 1, 237, 40, 251, 67, 1, 231, 233, 251, 67,
- 1, 250, 249, 231, 233, 251, 67, 1, 231, 84, 251, 67, 1, 248, 54, 251, 67,
- 1, 223, 28, 251, 67, 1, 250, 249, 249, 3, 251, 67, 116, 3, 217, 35, 177,
- 251, 67, 116, 3, 217, 35, 167, 251, 67, 116, 3, 217, 35, 219, 196, 167,
- 251, 67, 18, 3, 64, 251, 67, 18, 3, 252, 33, 251, 67, 18, 3, 70, 251, 67,
- 18, 3, 223, 224, 251, 67, 18, 3, 68, 251, 67, 18, 3, 196, 251, 251, 67,
- 18, 3, 71, 251, 67, 18, 3, 249, 241, 251, 67, 18, 3, 74, 251, 67, 18, 3,
- 251, 63, 251, 67, 18, 3, 250, 241, 251, 67, 3, 221, 181, 251, 67, 17,
- 192, 76, 251, 67, 17, 101, 251, 67, 17, 104, 251, 67, 17, 133, 251, 67,
- 17, 134, 251, 67, 17, 151, 251, 67, 17, 170, 251, 67, 17, 179, 251, 67,
- 17, 174, 251, 67, 17, 182, 251, 67, 31, 200, 30, 251, 67, 31, 197, 239,
- 251, 67, 3, 2, 205, 208, 251, 67, 3, 205, 208, 251, 67, 3, 206, 203, 251,
- 67, 16, 196, 39, 236, 133, 1, 64, 236, 133, 1, 252, 33, 236, 133, 1, 70,
- 236, 133, 1, 223, 224, 236, 133, 1, 68, 236, 133, 1, 196, 251, 236, 133,
- 1, 71, 236, 133, 1, 251, 63, 236, 133, 1, 74, 236, 133, 1, 250, 8, 236,
- 133, 1, 160, 236, 133, 1, 221, 250, 236, 133, 1, 231, 233, 236, 133, 1,
- 231, 84, 236, 133, 1, 214, 165, 236, 133, 1, 247, 19, 236, 133, 1, 246,
- 117, 236, 133, 1, 223, 62, 236, 133, 1, 223, 28, 236, 133, 1, 212, 201,
- 236, 133, 1, 198, 83, 236, 133, 1, 198, 71, 236, 133, 1, 237, 161, 236,
- 133, 1, 237, 145, 236, 133, 1, 213, 178, 236, 133, 1, 189, 236, 133, 1,
- 199, 240, 236, 133, 1, 238, 0, 236, 133, 1, 237, 40, 236, 133, 1, 181,
- 236, 133, 1, 166, 236, 133, 1, 210, 94, 236, 133, 1, 249, 3, 236, 133, 1,
- 248, 54, 236, 133, 1, 172, 236, 133, 1, 168, 236, 133, 1, 167, 236, 133,
- 1, 177, 236, 133, 1, 196, 157, 236, 133, 1, 204, 64, 236, 133, 1, 202,
- 92, 236, 133, 1, 188, 236, 133, 1, 144, 236, 133, 1, 207, 3, 236, 133,
- 18, 3, 252, 33, 236, 133, 18, 3, 70, 236, 133, 18, 3, 223, 224, 236, 133,
- 18, 3, 68, 236, 133, 18, 3, 196, 251, 236, 133, 18, 3, 118, 150, 236,
- 133, 18, 3, 118, 207, 4, 236, 133, 18, 3, 71, 236, 133, 18, 3, 251, 63,
- 236, 133, 18, 3, 74, 236, 133, 18, 3, 250, 8, 236, 133, 3, 250, 168, 236,
- 133, 3, 196, 6, 236, 133, 3, 196, 11, 236, 133, 3, 212, 241, 236, 133,
- 251, 151, 57, 194, 141, 242, 117, 6, 1, 214, 164, 194, 141, 242, 117, 6,
- 1, 64, 194, 141, 242, 117, 6, 1, 194, 72, 194, 141, 242, 117, 6, 1, 192,
- 214, 194, 141, 242, 117, 6, 1, 168, 194, 141, 242, 117, 6, 1, 193, 1,
- 194, 141, 242, 117, 6, 1, 223, 224, 194, 141, 242, 117, 6, 1, 196, 251,
- 194, 141, 242, 117, 6, 1, 71, 194, 141, 242, 117, 6, 1, 74, 194, 141,
- 242, 117, 6, 1, 250, 214, 194, 141, 242, 117, 6, 1, 231, 233, 194, 141,
- 242, 117, 6, 1, 221, 113, 194, 141, 242, 117, 6, 1, 234, 51, 194, 141,
- 242, 117, 6, 1, 192, 193, 194, 141, 242, 117, 6, 1, 197, 111, 194, 141,
- 242, 117, 6, 1, 234, 70, 194, 141, 242, 117, 6, 1, 212, 3, 194, 141, 242,
- 117, 6, 1, 198, 78, 194, 141, 242, 117, 6, 1, 212, 227, 194, 141, 242,
- 117, 6, 1, 238, 0, 194, 141, 242, 117, 6, 1, 250, 26, 194, 141, 242, 117,
- 6, 1, 250, 241, 194, 141, 242, 117, 6, 1, 247, 124, 194, 141, 242, 117,
- 6, 1, 209, 51, 194, 141, 242, 117, 6, 1, 229, 135, 194, 141, 242, 117, 6,
- 1, 229, 23, 194, 141, 242, 117, 6, 1, 228, 206, 194, 141, 242, 117, 6, 1,
- 230, 28, 194, 141, 242, 117, 6, 1, 202, 43, 194, 141, 242, 117, 6, 1,
- 203, 97, 194, 141, 242, 117, 6, 1, 195, 253, 194, 141, 242, 117, 2, 1,
- 214, 164, 194, 141, 242, 117, 2, 1, 64, 194, 141, 242, 117, 2, 1, 194,
- 72, 194, 141, 242, 117, 2, 1, 192, 214, 194, 141, 242, 117, 2, 1, 168,
- 194, 141, 242, 117, 2, 1, 193, 1, 194, 141, 242, 117, 2, 1, 223, 224,
- 194, 141, 242, 117, 2, 1, 196, 251, 194, 141, 242, 117, 2, 1, 71, 194,
- 141, 242, 117, 2, 1, 74, 194, 141, 242, 117, 2, 1, 250, 214, 194, 141,
- 242, 117, 2, 1, 231, 233, 194, 141, 242, 117, 2, 1, 221, 113, 194, 141,
- 242, 117, 2, 1, 234, 51, 194, 141, 242, 117, 2, 1, 192, 193, 194, 141,
- 242, 117, 2, 1, 197, 111, 194, 141, 242, 117, 2, 1, 234, 70, 194, 141,
- 242, 117, 2, 1, 212, 3, 194, 141, 242, 117, 2, 1, 198, 78, 194, 141, 242,
- 117, 2, 1, 212, 227, 194, 141, 242, 117, 2, 1, 238, 0, 194, 141, 242,
- 117, 2, 1, 250, 26, 194, 141, 242, 117, 2, 1, 250, 241, 194, 141, 242,
- 117, 2, 1, 247, 124, 194, 141, 242, 117, 2, 1, 209, 51, 194, 141, 242,
- 117, 2, 1, 229, 135, 194, 141, 242, 117, 2, 1, 229, 23, 194, 141, 242,
- 117, 2, 1, 228, 206, 194, 141, 242, 117, 2, 1, 230, 28, 194, 141, 242,
- 117, 2, 1, 202, 43, 194, 141, 242, 117, 2, 1, 203, 97, 194, 141, 242,
- 117, 2, 1, 195, 253, 194, 141, 242, 117, 17, 192, 76, 194, 141, 242, 117,
- 17, 101, 194, 141, 242, 117, 17, 104, 194, 141, 242, 117, 17, 133, 194,
- 141, 242, 117, 17, 134, 194, 141, 242, 117, 17, 151, 194, 141, 242, 117,
- 17, 170, 194, 141, 242, 117, 17, 179, 194, 141, 242, 117, 17, 174, 194,
- 141, 242, 117, 17, 182, 194, 141, 242, 117, 31, 200, 30, 194, 141, 242,
- 117, 31, 197, 239, 194, 141, 242, 117, 31, 199, 184, 194, 141, 242, 117,
- 31, 232, 126, 194, 141, 242, 117, 31, 233, 3, 194, 141, 242, 117, 31,
- 203, 25, 194, 141, 242, 117, 31, 204, 140, 194, 141, 242, 117, 31, 234,
- 137, 194, 141, 242, 117, 31, 214, 11, 194, 141, 242, 117, 211, 219, 236,
- 181, 251, 37, 1, 64, 236, 181, 251, 37, 1, 252, 33, 236, 181, 251, 37, 1,
- 70, 236, 181, 251, 37, 1, 223, 224, 236, 181, 251, 37, 1, 68, 236, 181,
- 251, 37, 1, 196, 251, 236, 181, 251, 37, 1, 71, 236, 181, 251, 37, 1, 74,
- 236, 181, 251, 37, 1, 160, 236, 181, 251, 37, 1, 221, 250, 236, 181, 251,
- 37, 1, 231, 233, 236, 181, 251, 37, 1, 231, 84, 236, 181, 251, 37, 1,
- 214, 165, 236, 181, 251, 37, 1, 247, 19, 236, 181, 251, 37, 1, 246, 117,
- 236, 181, 251, 37, 1, 223, 62, 236, 181, 251, 37, 1, 212, 201, 236, 181,
- 251, 37, 1, 198, 83, 236, 181, 251, 37, 1, 237, 161, 236, 181, 251, 37,
- 1, 237, 145, 236, 181, 251, 37, 1, 213, 178, 236, 181, 251, 37, 1, 189,
- 236, 181, 251, 37, 1, 199, 240, 236, 181, 251, 37, 1, 238, 0, 236, 181,
- 251, 37, 1, 237, 40, 236, 181, 251, 37, 1, 181, 236, 181, 251, 37, 1,
- 166, 236, 181, 251, 37, 1, 210, 94, 236, 181, 251, 37, 1, 249, 3, 236,
- 181, 251, 37, 1, 248, 54, 236, 181, 251, 37, 1, 172, 236, 181, 251, 37,
- 1, 168, 236, 181, 251, 37, 1, 192, 164, 236, 181, 251, 37, 1, 167, 236,
- 181, 251, 37, 1, 177, 236, 181, 251, 37, 1, 196, 157, 236, 181, 251, 37,
- 1, 204, 64, 236, 181, 251, 37, 1, 202, 92, 236, 181, 251, 37, 1, 188,
- 236, 181, 251, 37, 1, 144, 236, 181, 251, 37, 1, 219, 137, 236, 181, 251,
- 37, 1, 192, 112, 236, 181, 251, 37, 18, 3, 252, 33, 236, 181, 251, 37,
- 18, 3, 70, 236, 181, 251, 37, 18, 3, 223, 224, 236, 181, 251, 37, 18, 3,
- 68, 236, 181, 251, 37, 18, 3, 196, 251, 236, 181, 251, 37, 18, 3, 71,
- 236, 181, 251, 37, 18, 3, 251, 63, 236, 181, 251, 37, 18, 3, 74, 236,
- 181, 251, 37, 3, 250, 168, 236, 181, 251, 37, 3, 246, 234, 236, 181, 251,
- 37, 3, 230, 80, 236, 181, 251, 37, 196, 11, 236, 181, 251, 37, 209, 111,
- 215, 49, 57, 236, 181, 251, 37, 217, 35, 168, 236, 181, 251, 37, 88, 167,
- 236, 181, 251, 37, 217, 35, 167, 236, 181, 251, 37, 3, 212, 241, 236,
- 181, 251, 37, 55, 237, 208, 236, 181, 251, 37, 231, 197, 232, 247, 236,
- 181, 251, 37, 234, 80, 80, 199, 245, 77, 236, 181, 251, 37, 17, 192, 76,
- 236, 181, 251, 37, 17, 101, 236, 181, 251, 37, 17, 104, 236, 181, 251,
- 37, 17, 133, 236, 181, 251, 37, 17, 134, 236, 181, 251, 37, 17, 151, 236,
- 181, 251, 37, 17, 170, 236, 181, 251, 37, 17, 179, 236, 181, 251, 37, 17,
- 174, 236, 181, 251, 37, 17, 182, 215, 58, 1, 64, 215, 58, 1, 252, 33,
- 215, 58, 1, 70, 215, 58, 1, 223, 224, 215, 58, 1, 68, 215, 58, 1, 196,
- 251, 215, 58, 1, 118, 150, 215, 58, 1, 118, 207, 4, 215, 58, 1, 71, 215,
- 58, 1, 251, 63, 215, 58, 1, 74, 215, 58, 1, 250, 8, 215, 58, 1, 160, 215,
- 58, 1, 221, 250, 215, 58, 1, 231, 233, 215, 58, 1, 231, 84, 215, 58, 1,
- 214, 165, 215, 58, 1, 247, 19, 215, 58, 1, 246, 117, 215, 58, 1, 223, 62,
- 215, 58, 1, 223, 28, 215, 58, 1, 212, 201, 215, 58, 1, 198, 83, 215, 58,
- 1, 198, 71, 215, 58, 1, 237, 161, 215, 58, 1, 237, 145, 215, 58, 1, 213,
- 178, 215, 58, 1, 189, 215, 58, 1, 199, 240, 215, 58, 1, 238, 0, 215, 58,
- 1, 237, 40, 215, 58, 1, 181, 215, 58, 1, 166, 215, 58, 1, 210, 94, 215,
- 58, 1, 249, 3, 215, 58, 1, 248, 54, 215, 58, 1, 172, 215, 58, 1, 168,
- 215, 58, 1, 167, 215, 58, 1, 177, 215, 58, 1, 196, 157, 215, 58, 1, 204,
- 64, 215, 58, 1, 202, 92, 215, 58, 1, 188, 215, 58, 1, 144, 215, 58, 1,
- 219, 137, 215, 58, 1, 207, 3, 215, 58, 18, 3, 252, 33, 215, 58, 18, 3,
- 70, 215, 58, 18, 3, 223, 224, 215, 58, 18, 3, 68, 215, 58, 18, 3, 196,
- 251, 215, 58, 18, 3, 118, 150, 215, 58, 18, 3, 118, 207, 4, 215, 58, 18,
- 3, 71, 215, 58, 18, 3, 251, 63, 215, 58, 18, 3, 74, 215, 58, 18, 3, 250,
- 8, 215, 58, 3, 250, 168, 215, 58, 3, 196, 6, 215, 58, 3, 196, 11, 215,
- 58, 3, 249, 246, 215, 58, 3, 203, 113, 215, 58, 229, 237, 215, 58, 18, 3,
- 209, 91, 71, 192, 99, 50, 1, 64, 192, 99, 50, 18, 3, 70, 192, 99, 50, 18,
- 3, 197, 104, 192, 99, 50, 18, 3, 68, 192, 99, 50, 18, 3, 71, 192, 99, 50,
- 18, 3, 212, 0, 192, 99, 50, 18, 3, 74, 192, 99, 50, 18, 3, 251, 63, 192,
- 99, 50, 18, 3, 250, 8, 192, 99, 50, 18, 3, 207, 168, 70, 192, 99, 50, 18,
- 220, 2, 77, 192, 99, 50, 1, 160, 192, 99, 50, 1, 221, 250, 192, 99, 50,
- 1, 231, 233, 192, 99, 50, 1, 231, 84, 192, 99, 50, 1, 214, 165, 192, 99,
- 50, 1, 247, 19, 192, 99, 50, 1, 246, 117, 192, 99, 50, 1, 223, 62, 192,
- 99, 50, 1, 212, 201, 192, 99, 50, 1, 198, 83, 192, 99, 50, 1, 198, 71,
- 192, 99, 50, 1, 237, 161, 192, 99, 50, 1, 237, 145, 192, 99, 50, 1, 213,
- 178, 192, 99, 50, 1, 189, 192, 99, 50, 1, 199, 240, 192, 99, 50, 1, 238,
- 0, 192, 99, 50, 1, 237, 40, 192, 99, 50, 1, 181, 192, 99, 50, 1, 166,
- 192, 99, 50, 1, 210, 94, 192, 99, 50, 1, 249, 3, 192, 99, 50, 1, 248, 54,
- 192, 99, 50, 1, 172, 192, 99, 50, 1, 198, 118, 192, 99, 50, 1, 198, 108,
- 192, 99, 50, 1, 235, 17, 192, 99, 50, 1, 235, 11, 192, 99, 50, 1, 192,
- 71, 192, 99, 50, 1, 192, 112, 192, 99, 50, 1, 255, 41, 192, 99, 50, 1,
- 168, 192, 99, 50, 1, 167, 192, 99, 50, 1, 177, 192, 99, 50, 1, 196, 157,
- 192, 99, 50, 1, 204, 64, 192, 99, 50, 1, 202, 92, 192, 99, 50, 1, 188,
- 192, 99, 50, 1, 144, 192, 99, 50, 1, 221, 47, 192, 99, 50, 52, 116, 77,
- 192, 99, 50, 3, 196, 11, 192, 99, 50, 3, 246, 234, 192, 99, 50, 3, 246,
- 235, 4, 211, 150, 192, 99, 50, 3, 246, 237, 4, 211, 150, 192, 99, 50, 3,
- 250, 168, 192, 99, 50, 3, 196, 6, 192, 99, 50, 242, 66, 1, 167, 192, 99,
- 50, 242, 67, 1, 168, 192, 99, 50, 242, 67, 1, 167, 192, 99, 50, 242, 67,
- 1, 177, 192, 99, 50, 242, 67, 1, 196, 157, 192, 99, 50, 88, 229, 246, 77,
- 192, 99, 50, 242, 80, 229, 246, 77, 192, 99, 50, 122, 198, 103, 192, 99,
- 50, 122, 204, 56, 192, 99, 50, 122, 55, 204, 56, 192, 99, 50, 122, 184,
- 198, 103, 192, 99, 50, 88, 235, 103, 229, 246, 77, 192, 99, 50, 242, 80,
- 235, 103, 229, 246, 77, 192, 99, 50, 201, 163, 202, 164, 1, 64, 202, 164,
- 18, 3, 70, 202, 164, 18, 3, 197, 104, 202, 164, 18, 3, 68, 202, 164, 18,
- 3, 71, 202, 164, 18, 3, 74, 202, 164, 18, 3, 212, 0, 202, 164, 18, 3,
- 251, 63, 202, 164, 18, 3, 250, 8, 202, 164, 18, 3, 118, 150, 202, 164,
- 18, 3, 118, 165, 202, 164, 18, 220, 2, 77, 202, 164, 1, 160, 202, 164, 1,
- 221, 250, 202, 164, 1, 231, 233, 202, 164, 1, 231, 84, 202, 164, 1, 214,
- 165, 202, 164, 1, 247, 19, 202, 164, 1, 246, 117, 202, 164, 1, 223, 62,
- 202, 164, 1, 223, 28, 202, 164, 1, 212, 201, 202, 164, 1, 198, 83, 202,
- 164, 1, 198, 71, 202, 164, 1, 237, 161, 202, 164, 1, 237, 145, 202, 164,
- 1, 213, 178, 202, 164, 1, 189, 202, 164, 1, 199, 240, 202, 164, 1, 238,
- 0, 202, 164, 1, 237, 40, 202, 164, 1, 181, 202, 164, 1, 166, 202, 164, 1,
- 210, 94, 202, 164, 1, 249, 3, 202, 164, 1, 248, 54, 202, 164, 1, 172,
- 202, 164, 1, 198, 118, 202, 164, 1, 198, 108, 202, 164, 1, 235, 17, 202,
- 164, 1, 192, 71, 202, 164, 1, 192, 112, 202, 164, 1, 255, 41, 202, 164,
- 1, 168, 202, 164, 1, 167, 202, 164, 1, 177, 202, 164, 1, 196, 157, 202,
- 164, 1, 204, 64, 202, 164, 1, 202, 92, 202, 164, 1, 188, 202, 164, 1,
- 144, 202, 164, 1, 221, 47, 202, 164, 3, 223, 13, 202, 164, 3, 197, 39,
- 202, 164, 242, 66, 1, 167, 202, 164, 242, 66, 1, 177, 202, 164, 242, 66,
- 1, 204, 64, 202, 164, 242, 66, 1, 188, 202, 164, 52, 116, 3, 232, 44,
- 202, 164, 52, 116, 3, 222, 184, 202, 164, 52, 116, 3, 214, 167, 202, 164,
- 52, 116, 3, 238, 95, 202, 164, 52, 116, 3, 215, 151, 202, 164, 52, 116,
- 3, 249, 226, 202, 164, 52, 116, 3, 218, 236, 202, 164, 52, 116, 3, 150,
- 202, 164, 52, 116, 3, 165, 202, 164, 52, 116, 3, 204, 66, 202, 164, 52,
- 116, 3, 206, 158, 202, 164, 52, 116, 3, 255, 41, 202, 164, 3, 250, 168,
- 202, 164, 3, 196, 6, 202, 164, 231, 146, 77, 202, 164, 201, 163, 202,
- 164, 122, 198, 103, 202, 164, 122, 204, 56, 202, 164, 122, 55, 204, 56,
- 202, 164, 122, 209, 204, 202, 164, 229, 246, 122, 4, 216, 30, 26, 201,
- 124, 26, 198, 170, 232, 199, 202, 164, 229, 246, 122, 4, 216, 30, 26,
- 201, 124, 26, 232, 199, 202, 164, 229, 246, 122, 4, 216, 30, 26, 201,
- 123, 202, 164, 200, 16, 217, 126, 202, 164, 200, 16, 217, 125, 210, 198,
- 242, 135, 230, 12, 1, 166, 210, 198, 242, 135, 230, 12, 1, 160, 210, 198,
- 242, 135, 230, 12, 1, 177, 210, 198, 242, 135, 230, 12, 1, 172, 210, 198,
- 242, 135, 230, 12, 1, 238, 0, 210, 198, 242, 135, 230, 12, 1, 192, 112,
- 210, 198, 242, 135, 230, 12, 1, 196, 157, 210, 198, 242, 135, 230, 12, 1,
- 214, 165, 210, 198, 242, 135, 230, 12, 1, 144, 210, 198, 242, 135, 230,
- 12, 1, 231, 233, 210, 198, 242, 135, 230, 12, 1, 221, 250, 210, 198, 242,
- 135, 230, 12, 1, 188, 210, 198, 242, 135, 230, 12, 1, 249, 3, 210, 198,
- 242, 135, 230, 12, 1, 247, 19, 210, 198, 242, 135, 230, 12, 1, 189, 210,
- 198, 242, 135, 230, 12, 1, 199, 240, 210, 198, 242, 135, 230, 12, 1, 181,
- 210, 198, 242, 135, 230, 12, 1, 210, 94, 210, 198, 242, 135, 230, 12, 1,
- 167, 210, 198, 242, 135, 230, 12, 1, 233, 97, 210, 198, 242, 135, 230,
- 12, 1, 246, 117, 210, 198, 242, 135, 230, 12, 1, 64, 210, 198, 242, 135,
- 230, 12, 1, 71, 210, 198, 242, 135, 230, 12, 1, 70, 210, 198, 242, 135,
- 230, 12, 1, 74, 210, 198, 242, 135, 230, 12, 1, 68, 210, 198, 242, 135,
- 230, 12, 1, 197, 119, 210, 198, 242, 135, 230, 12, 1, 228, 58, 210, 198,
- 242, 135, 230, 12, 1, 52, 211, 93, 210, 198, 242, 135, 230, 12, 1, 52,
- 222, 184, 210, 198, 242, 135, 230, 12, 1, 52, 200, 228, 210, 198, 242,
- 135, 230, 12, 1, 52, 218, 236, 210, 198, 242, 135, 230, 12, 1, 52, 215,
- 151, 210, 198, 242, 135, 230, 12, 1, 52, 165, 210, 198, 242, 135, 230,
- 12, 1, 52, 194, 202, 210, 198, 242, 135, 230, 12, 1, 52, 214, 167, 210,
- 198, 242, 135, 230, 12, 1, 52, 193, 148, 210, 198, 242, 135, 230, 12,
- 207, 73, 158, 219, 84, 210, 198, 242, 135, 230, 12, 207, 73, 199, 18,
- 210, 198, 242, 135, 230, 12, 206, 36, 231, 6, 201, 238, 210, 198, 242,
- 135, 230, 12, 207, 73, 158, 184, 232, 243, 210, 198, 242, 135, 230, 12,
- 207, 73, 158, 232, 243, 210, 198, 242, 135, 230, 12, 206, 36, 231, 6,
- 201, 239, 232, 243, 210, 198, 242, 135, 230, 12, 206, 36, 158, 219, 84,
- 210, 198, 242, 135, 230, 12, 206, 36, 199, 18, 210, 198, 242, 135, 230,
- 12, 206, 36, 158, 184, 232, 243, 210, 198, 242, 135, 230, 12, 206, 36,
- 158, 232, 243, 210, 198, 242, 135, 230, 12, 216, 161, 199, 18, 210, 198,
- 242, 135, 230, 12, 231, 6, 201, 239, 196, 136, 210, 198, 242, 135, 230,
- 12, 216, 161, 158, 184, 232, 243, 210, 198, 242, 135, 230, 12, 216, 161,
- 158, 232, 243, 210, 198, 242, 135, 230, 12, 219, 50, 158, 219, 84, 210,
- 198, 242, 135, 230, 12, 219, 50, 199, 18, 210, 198, 242, 135, 230, 12,
- 231, 6, 201, 238, 210, 198, 242, 135, 230, 12, 219, 50, 158, 184, 232,
- 243, 210, 198, 242, 135, 230, 12, 219, 50, 158, 232, 243, 210, 198, 242,
- 135, 230, 12, 231, 6, 201, 239, 232, 243, 248, 52, 1, 64, 248, 52, 1,
- 252, 33, 248, 52, 1, 70, 248, 52, 1, 223, 224, 248, 52, 1, 68, 248, 52,
- 1, 196, 251, 248, 52, 1, 118, 150, 248, 52, 1, 118, 207, 4, 248, 52, 1,
- 118, 165, 248, 52, 1, 71, 248, 52, 1, 251, 63, 248, 52, 1, 74, 248, 52,
- 1, 250, 8, 248, 52, 1, 160, 248, 52, 1, 221, 250, 248, 52, 1, 231, 233,
- 248, 52, 1, 231, 84, 248, 52, 1, 214, 165, 248, 52, 1, 247, 19, 248, 52,
- 1, 246, 117, 248, 52, 1, 223, 62, 248, 52, 1, 223, 28, 248, 52, 1, 212,
- 201, 248, 52, 1, 198, 83, 248, 52, 1, 198, 71, 248, 52, 1, 237, 161, 248,
- 52, 1, 237, 145, 248, 52, 1, 213, 178, 248, 52, 1, 189, 248, 52, 1, 199,
- 240, 248, 52, 1, 238, 0, 248, 52, 1, 237, 40, 248, 52, 1, 181, 248, 52,
- 1, 166, 248, 52, 1, 210, 94, 248, 52, 1, 249, 3, 248, 52, 1, 248, 54,
- 248, 52, 1, 172, 248, 52, 1, 168, 248, 52, 1, 167, 248, 52, 1, 177, 248,
- 52, 1, 196, 157, 248, 52, 1, 204, 64, 248, 52, 1, 202, 92, 248, 52, 1,
- 188, 248, 52, 1, 144, 248, 52, 18, 3, 252, 33, 248, 52, 18, 3, 70, 248,
- 52, 18, 3, 223, 224, 248, 52, 18, 3, 68, 248, 52, 18, 3, 196, 251, 248,
- 52, 18, 3, 118, 150, 248, 52, 18, 3, 118, 207, 4, 248, 52, 18, 3, 118,
- 165, 248, 52, 18, 3, 71, 248, 52, 18, 3, 251, 63, 248, 52, 18, 3, 74,
- 248, 52, 18, 3, 250, 8, 248, 52, 3, 246, 234, 248, 52, 3, 250, 168, 248,
- 52, 3, 196, 6, 248, 52, 3, 196, 11, 248, 52, 3, 249, 246, 248, 52, 237,
- 208, 248, 52, 55, 237, 208, 248, 52, 194, 11, 204, 165, 248, 52, 231,
- 197, 232, 246, 248, 52, 231, 197, 232, 245, 248, 52, 17, 192, 76, 248,
- 52, 17, 101, 248, 52, 17, 104, 248, 52, 17, 133, 248, 52, 17, 134, 248,
- 52, 17, 151, 248, 52, 17, 170, 248, 52, 17, 179, 248, 52, 17, 174, 248,
- 52, 17, 182, 248, 52, 31, 101, 248, 52, 31, 104, 248, 52, 31, 133, 248,
- 52, 31, 134, 248, 52, 31, 151, 248, 52, 31, 170, 248, 52, 31, 179, 248,
- 52, 31, 174, 248, 52, 31, 182, 248, 52, 31, 200, 30, 248, 52, 31, 197,
- 239, 248, 52, 31, 199, 184, 248, 52, 31, 232, 126, 248, 52, 31, 233, 3,
- 248, 52, 31, 203, 25, 248, 52, 31, 204, 140, 248, 52, 31, 234, 137, 248,
- 52, 31, 214, 11, 248, 52, 228, 161, 197, 55, 77, 217, 128, 229, 246, 77,
- 217, 128, 122, 204, 56, 217, 128, 1, 160, 217, 128, 1, 221, 250, 217,
- 128, 1, 231, 233, 217, 128, 1, 214, 165, 217, 128, 1, 247, 19, 217, 128,
- 1, 246, 117, 217, 128, 1, 223, 62, 217, 128, 1, 212, 201, 217, 128, 1,
- 189, 217, 128, 1, 199, 240, 217, 128, 1, 238, 0, 217, 128, 1, 181, 217,
- 128, 1, 166, 217, 128, 1, 210, 94, 217, 128, 1, 249, 3, 217, 128, 1, 172,
- 217, 128, 1, 198, 118, 217, 128, 1, 198, 108, 217, 128, 1, 235, 17, 217,
- 128, 1, 194, 169, 217, 128, 1, 192, 71, 217, 128, 1, 192, 112, 217, 128,
- 1, 255, 41, 217, 128, 1, 168, 217, 128, 1, 167, 217, 128, 1, 177, 217,
- 128, 1, 204, 64, 217, 128, 1, 188, 217, 128, 1, 144, 217, 128, 1, 64,
- 217, 128, 201, 164, 1, 160, 217, 128, 201, 164, 1, 221, 250, 217, 128,
- 201, 164, 1, 231, 233, 217, 128, 201, 164, 1, 214, 165, 217, 128, 201,
- 164, 1, 247, 19, 217, 128, 201, 164, 1, 246, 117, 217, 128, 201, 164, 1,
- 223, 62, 217, 128, 201, 164, 1, 212, 201, 217, 128, 201, 164, 1, 189,
- 217, 128, 201, 164, 1, 199, 240, 217, 128, 201, 164, 1, 238, 0, 217, 128,
- 201, 164, 1, 181, 217, 128, 201, 164, 1, 166, 217, 128, 201, 164, 1, 210,
- 94, 217, 128, 201, 164, 1, 249, 3, 217, 128, 201, 164, 1, 172, 217, 128,
- 201, 164, 1, 198, 118, 217, 128, 201, 164, 1, 198, 108, 217, 128, 201,
- 164, 1, 235, 17, 217, 128, 201, 164, 1, 194, 169, 217, 128, 201, 164, 1,
- 192, 71, 217, 128, 201, 164, 1, 192, 112, 217, 128, 201, 164, 1, 168,
- 217, 128, 201, 164, 1, 167, 217, 128, 201, 164, 1, 177, 217, 128, 201,
- 164, 1, 204, 64, 217, 128, 201, 164, 1, 188, 217, 128, 201, 164, 1, 144,
- 217, 128, 201, 164, 1, 64, 217, 128, 18, 3, 252, 33, 217, 128, 18, 3, 70,
- 217, 128, 18, 3, 68, 217, 128, 18, 3, 71, 217, 128, 18, 3, 74, 217, 128,
- 3, 250, 168, 217, 128, 3, 246, 234, 217, 112, 127, 1, 64, 217, 112, 127,
- 1, 252, 33, 217, 112, 127, 1, 70, 217, 112, 127, 1, 223, 224, 217, 112,
- 127, 1, 68, 217, 112, 127, 1, 196, 251, 217, 112, 127, 1, 71, 217, 112,
- 127, 1, 251, 63, 217, 112, 127, 1, 74, 217, 112, 127, 1, 250, 8, 217,
- 112, 127, 1, 160, 217, 112, 127, 1, 221, 250, 217, 112, 127, 1, 231, 233,
- 217, 112, 127, 1, 231, 84, 217, 112, 127, 1, 214, 165, 217, 112, 127, 1,
- 247, 19, 217, 112, 127, 1, 246, 117, 217, 112, 127, 1, 223, 62, 217, 112,
- 127, 1, 223, 28, 217, 112, 127, 1, 212, 201, 217, 112, 127, 1, 198, 83,
- 217, 112, 127, 1, 198, 71, 217, 112, 127, 1, 237, 161, 217, 112, 127, 1,
- 237, 145, 217, 112, 127, 1, 213, 178, 217, 112, 127, 1, 189, 217, 112,
- 127, 1, 199, 240, 217, 112, 127, 1, 238, 0, 217, 112, 127, 1, 237, 40,
- 217, 112, 127, 1, 181, 217, 112, 127, 1, 166, 217, 112, 127, 1, 210, 94,
- 217, 112, 127, 1, 249, 3, 217, 112, 127, 1, 248, 54, 217, 112, 127, 1,
- 172, 217, 112, 127, 1, 168, 217, 112, 127, 1, 167, 217, 112, 127, 1, 177,
- 217, 112, 127, 1, 196, 157, 217, 112, 127, 1, 204, 64, 217, 112, 127, 1,
- 202, 92, 217, 112, 127, 1, 188, 217, 112, 127, 1, 144, 217, 112, 127, 1,
- 219, 137, 217, 112, 127, 1, 221, 47, 217, 112, 127, 1, 222, 234, 217,
- 112, 127, 1, 198, 223, 217, 112, 127, 18, 3, 252, 33, 217, 112, 127, 18,
- 3, 70, 217, 112, 127, 18, 3, 223, 224, 217, 112, 127, 18, 3, 68, 217,
- 112, 127, 18, 3, 196, 251, 217, 112, 127, 18, 3, 118, 150, 217, 112, 127,
- 18, 3, 71, 217, 112, 127, 18, 3, 251, 63, 217, 112, 127, 18, 3, 74, 217,
- 112, 127, 18, 3, 250, 8, 217, 112, 127, 3, 250, 168, 217, 112, 127, 3,
- 196, 6, 217, 112, 127, 3, 212, 241, 217, 112, 127, 3, 246, 236, 217, 112,
- 127, 3, 230, 80, 217, 112, 127, 196, 11, 217, 112, 127, 207, 194, 217,
- 112, 127, 208, 71, 217, 112, 127, 17, 192, 76, 217, 112, 127, 17, 101,
- 217, 112, 127, 17, 104, 217, 112, 127, 17, 133, 217, 112, 127, 17, 134,
- 217, 112, 127, 17, 151, 217, 112, 127, 17, 170, 217, 112, 127, 17, 179,
- 217, 112, 127, 17, 174, 217, 112, 127, 17, 182, 230, 164, 127, 1, 64,
- 230, 164, 127, 1, 252, 33, 230, 164, 127, 1, 70, 230, 164, 127, 1, 223,
- 224, 230, 164, 127, 1, 68, 230, 164, 127, 1, 196, 251, 230, 164, 127, 1,
- 234, 171, 230, 164, 127, 1, 251, 63, 230, 164, 127, 1, 211, 194, 230,
- 164, 127, 1, 250, 8, 230, 164, 127, 1, 168, 230, 164, 127, 1, 196, 157,
- 230, 164, 127, 1, 249, 3, 230, 164, 127, 1, 248, 54, 230, 164, 127, 1,
- 172, 230, 164, 127, 1, 160, 230, 164, 127, 1, 221, 250, 230, 164, 127, 1,
- 189, 230, 164, 127, 1, 199, 240, 230, 164, 127, 1, 177, 230, 164, 127, 1,
- 231, 233, 230, 164, 127, 1, 231, 84, 230, 164, 127, 1, 238, 0, 230, 164,
- 127, 1, 237, 40, 230, 164, 127, 1, 181, 230, 164, 127, 1, 247, 19, 230,
- 164, 127, 1, 246, 117, 230, 164, 127, 1, 198, 83, 230, 164, 127, 1, 198,
- 71, 230, 164, 127, 1, 219, 137, 230, 164, 127, 1, 223, 62, 230, 164, 127,
- 1, 223, 28, 230, 164, 127, 1, 237, 161, 230, 164, 127, 1, 237, 145, 230,
- 164, 127, 1, 214, 165, 230, 164, 127, 1, 166, 230, 164, 127, 1, 210, 94,
- 230, 164, 127, 1, 144, 230, 164, 127, 1, 167, 230, 164, 127, 1, 188, 230,
- 164, 127, 18, 3, 252, 33, 230, 164, 127, 18, 3, 70, 230, 164, 127, 18, 3,
- 223, 224, 230, 164, 127, 18, 3, 68, 230, 164, 127, 18, 3, 196, 251, 230,
- 164, 127, 18, 3, 234, 171, 230, 164, 127, 18, 3, 251, 63, 230, 164, 127,
- 18, 3, 211, 194, 230, 164, 127, 18, 3, 250, 8, 230, 164, 127, 3, 250,
- 168, 230, 164, 127, 3, 196, 6, 230, 164, 127, 196, 11, 230, 164, 127,
- 211, 219, 230, 164, 127, 17, 192, 76, 230, 164, 127, 17, 101, 230, 164,
- 127, 17, 104, 230, 164, 127, 17, 133, 230, 164, 127, 17, 134, 230, 164,
- 127, 17, 151, 230, 164, 127, 17, 170, 230, 164, 127, 17, 179, 230, 164,
- 127, 17, 174, 230, 164, 127, 17, 182, 217, 170, 1, 160, 217, 170, 1, 231,
- 233, 217, 170, 1, 214, 165, 217, 170, 1, 166, 217, 170, 1, 249, 3, 217,
- 170, 1, 172, 217, 170, 1, 189, 217, 170, 1, 238, 0, 217, 170, 1, 181,
- 217, 170, 1, 247, 19, 217, 170, 1, 223, 62, 217, 170, 1, 212, 201, 217,
- 170, 1, 168, 217, 170, 1, 167, 217, 170, 1, 177, 217, 170, 1, 196, 157,
- 217, 170, 1, 188, 217, 170, 1, 64, 217, 170, 250, 210, 217, 170, 18, 3,
- 70, 217, 170, 18, 3, 68, 217, 170, 18, 3, 71, 217, 170, 18, 3, 74, 217,
- 170, 210, 211, 217, 170, 234, 80, 80, 205, 208, 219, 152, 1, 193, 24, 44,
- 232, 109, 90, 199, 157, 44, 232, 109, 90, 211, 207, 44, 232, 109, 90,
- 234, 140, 44, 232, 109, 90, 203, 23, 44, 232, 109, 90, 232, 129, 44, 232,
- 109, 90, 199, 180, 44, 232, 109, 112, 234, 139, 44, 232, 109, 112, 203,
- 22, 44, 232, 109, 90, 197, 242, 44, 232, 109, 90, 203, 32, 44, 232, 109,
- 90, 203, 31, 44, 232, 109, 90, 200, 21, 44, 232, 109, 90, 234, 143, 44,
- 232, 109, 112, 197, 241, 44, 232, 109, 112, 203, 30, 44, 232, 109, 90,
- 233, 6, 44, 232, 109, 90, 208, 167, 44, 232, 109, 90, 230, 77, 44, 232,
- 109, 90, 230, 76, 44, 232, 109, 112, 208, 165, 44, 232, 109, 235, 94,
- 233, 81, 221, 182, 44, 3, 214, 197, 44, 3, 246, 122, 44, 3, 251, 240, 44,
- 3, 196, 239, 44, 3, 215, 178, 44, 3, 220, 253, 44, 3, 210, 202, 44, 3,
- 215, 222, 44, 3, 222, 156, 44, 3, 211, 23, 44, 3, 209, 174, 44, 3, 196,
- 142, 44, 3, 211, 72, 44, 3, 220, 242, 44, 3, 196, 113, 44, 194, 87, 238,
- 154, 57, 44, 235, 65, 238, 154, 57, 44, 220, 82, 57, 44, 206, 56, 211,
- 26, 57, 44, 198, 218, 238, 196, 57, 44, 198, 218, 31, 57, 44, 238, 136,
- 57, 44, 26, 212, 4, 57, 44, 202, 141, 57, 44, 198, 234, 57, 44, 223, 191,
- 209, 157, 57, 44, 202, 13, 232, 89, 57, 44, 3, 215, 182, 44, 3, 196, 150,
- 44, 209, 38, 234, 80, 80, 199, 244, 10, 3, 64, 10, 3, 41, 24, 64, 10, 3,
- 41, 24, 248, 241, 10, 3, 41, 24, 231, 202, 200, 19, 10, 3, 41, 24, 144,
- 10, 3, 41, 24, 223, 226, 10, 3, 41, 24, 220, 162, 230, 162, 10, 3, 41,
- 24, 215, 189, 10, 3, 41, 24, 206, 79, 10, 3, 254, 42, 10, 3, 251, 238,
- 10, 3, 251, 239, 24, 250, 51, 10, 3, 251, 239, 24, 235, 48, 230, 162, 10,
- 3, 251, 239, 24, 231, 215, 10, 3, 251, 239, 24, 231, 202, 200, 19, 10, 3,
- 251, 239, 24, 144, 10, 3, 251, 239, 24, 223, 227, 230, 162, 10, 3, 251,
- 239, 24, 223, 200, 10, 3, 251, 239, 24, 220, 163, 10, 3, 251, 239, 24,
- 203, 252, 10, 3, 251, 239, 24, 124, 102, 124, 102, 68, 10, 3, 251, 239,
- 230, 162, 10, 3, 251, 155, 10, 3, 251, 156, 24, 248, 220, 10, 3, 251,
- 156, 24, 231, 202, 200, 19, 10, 3, 251, 156, 24, 217, 49, 102, 234, 88,
- 10, 3, 251, 156, 24, 204, 62, 10, 3, 251, 156, 24, 200, 141, 10, 3, 251,
- 125, 10, 3, 251, 44, 10, 3, 251, 45, 24, 234, 15, 10, 3, 251, 45, 24,
- 203, 214, 102, 231, 18, 10, 3, 251, 35, 10, 3, 251, 36, 24, 251, 35, 10,
- 3, 251, 36, 24, 236, 225, 10, 3, 251, 36, 24, 231, 18, 10, 3, 251, 36,
- 24, 144, 10, 3, 251, 36, 24, 222, 144, 10, 3, 251, 36, 24, 221, 204, 10,
- 3, 251, 36, 24, 204, 12, 10, 3, 251, 36, 24, 197, 3, 10, 3, 251, 32, 10,
- 3, 251, 24, 10, 3, 250, 237, 10, 3, 250, 238, 24, 204, 12, 10, 3, 250,
- 224, 10, 3, 250, 225, 136, 250, 224, 10, 3, 250, 225, 112, 199, 82, 10,
- 3, 250, 225, 102, 215, 75, 211, 170, 250, 225, 102, 215, 74, 10, 3, 250,
- 225, 102, 215, 75, 202, 105, 10, 3, 250, 188, 10, 3, 250, 158, 10, 3,
- 250, 124, 10, 3, 250, 125, 24, 221, 0, 10, 3, 250, 96, 10, 3, 250, 59,
- 10, 3, 250, 53, 10, 3, 250, 54, 192, 26, 200, 19, 10, 3, 250, 54, 222,
- 148, 200, 19, 10, 3, 250, 54, 136, 250, 54, 198, 34, 136, 198, 34, 198,
- 34, 136, 198, 34, 210, 253, 10, 3, 250, 54, 136, 250, 54, 136, 250, 53,
- 10, 3, 250, 54, 136, 250, 54, 136, 250, 54, 238, 176, 250, 54, 136, 250,
- 54, 136, 250, 53, 10, 3, 250, 51, 10, 3, 250, 47, 10, 3, 249, 3, 10, 3,
- 248, 241, 10, 3, 248, 235, 10, 3, 248, 227, 10, 3, 248, 221, 10, 3, 248,
- 222, 136, 248, 221, 10, 3, 248, 220, 10, 3, 161, 10, 3, 248, 193, 10, 3,
- 248, 41, 10, 3, 248, 42, 24, 64, 10, 3, 248, 42, 24, 231, 193, 10, 3,
- 248, 42, 24, 223, 227, 230, 162, 10, 3, 247, 124, 10, 3, 247, 125, 136,
- 247, 125, 251, 238, 10, 3, 247, 125, 136, 247, 125, 197, 77, 10, 3, 247,
- 125, 238, 176, 247, 124, 10, 3, 247, 100, 10, 3, 247, 101, 136, 247, 100,
- 10, 3, 247, 89, 10, 3, 247, 88, 10, 3, 238, 0, 10, 3, 237, 246, 10, 3,
- 237, 247, 221, 163, 24, 41, 102, 217, 110, 10, 3, 237, 247, 221, 163, 24,
- 250, 237, 10, 3, 237, 247, 221, 163, 24, 248, 220, 10, 3, 237, 247, 221,
- 163, 24, 248, 41, 10, 3, 237, 247, 221, 163, 24, 231, 233, 10, 3, 237,
- 247, 221, 163, 24, 231, 234, 102, 217, 110, 10, 3, 237, 247, 221, 163,
- 24, 231, 46, 10, 3, 237, 247, 221, 163, 24, 231, 27, 10, 3, 237, 247,
- 221, 163, 24, 230, 175, 10, 3, 237, 247, 221, 163, 24, 144, 10, 3, 237,
- 247, 221, 163, 24, 223, 105, 10, 3, 237, 247, 221, 163, 24, 223, 106,
- 102, 219, 36, 10, 3, 237, 247, 221, 163, 24, 222, 129, 10, 3, 237, 247,
- 221, 163, 24, 177, 10, 3, 237, 247, 221, 163, 24, 219, 36, 10, 3, 237,
- 247, 221, 163, 24, 219, 37, 102, 217, 109, 10, 3, 237, 247, 221, 163, 24,
- 219, 19, 10, 3, 237, 247, 221, 163, 24, 214, 214, 10, 3, 237, 247, 221,
- 163, 24, 210, 254, 102, 210, 253, 10, 3, 237, 247, 221, 163, 24, 203,
- 125, 10, 3, 237, 247, 221, 163, 24, 200, 141, 10, 3, 237, 247, 221, 163,
- 24, 197, 121, 102, 231, 27, 10, 3, 237, 247, 221, 163, 24, 197, 3, 10, 3,
- 237, 218, 10, 3, 237, 195, 10, 3, 237, 194, 10, 3, 237, 193, 10, 3, 237,
- 16, 10, 3, 236, 254, 10, 3, 236, 227, 10, 3, 236, 228, 24, 204, 12, 10,
- 3, 236, 225, 10, 3, 236, 215, 10, 3, 236, 216, 222, 89, 124, 230, 163,
- 236, 194, 10, 3, 236, 194, 10, 3, 235, 62, 10, 3, 235, 63, 136, 235, 62,
- 10, 3, 235, 63, 230, 162, 10, 3, 235, 63, 203, 249, 10, 3, 235, 60, 10,
- 3, 235, 61, 24, 233, 252, 10, 3, 235, 59, 10, 3, 235, 56, 10, 3, 235, 55,
- 10, 3, 235, 54, 10, 3, 235, 49, 10, 3, 235, 47, 10, 3, 235, 48, 230, 162,
- 10, 3, 235, 48, 230, 163, 230, 162, 10, 3, 235, 46, 10, 3, 235, 39, 10,
- 3, 71, 10, 3, 234, 253, 24, 210, 253, 10, 3, 234, 253, 136, 234, 253,
- 212, 231, 136, 212, 230, 10, 3, 234, 200, 10, 3, 234, 201, 24, 41, 102,
- 230, 113, 102, 238, 0, 10, 3, 234, 201, 24, 231, 193, 10, 3, 234, 201,
- 24, 216, 175, 10, 3, 234, 201, 24, 206, 63, 10, 3, 234, 201, 24, 204, 12,
- 10, 3, 234, 201, 24, 68, 10, 3, 234, 173, 10, 3, 234, 161, 10, 3, 234,
- 124, 10, 3, 234, 88, 10, 3, 234, 89, 24, 231, 201, 10, 3, 234, 89, 24,
- 231, 202, 200, 19, 10, 3, 234, 89, 24, 217, 48, 10, 3, 234, 89, 238, 176,
- 234, 88, 10, 3, 234, 89, 211, 170, 234, 88, 10, 3, 234, 89, 202, 105, 10,
- 3, 234, 18, 10, 3, 234, 15, 10, 3, 233, 252, 10, 3, 233, 168, 10, 3, 233,
- 169, 24, 64, 10, 3, 233, 169, 24, 41, 102, 220, 96, 10, 3, 233, 169, 24,
- 41, 102, 220, 97, 24, 220, 96, 10, 3, 233, 169, 24, 250, 224, 10, 3, 233,
- 169, 24, 248, 241, 10, 3, 233, 169, 24, 235, 48, 230, 162, 10, 3, 233,
- 169, 24, 235, 48, 230, 163, 230, 162, 10, 3, 233, 169, 24, 144, 10, 3,
- 233, 169, 24, 230, 113, 230, 162, 10, 3, 233, 169, 24, 223, 227, 230,
- 162, 10, 3, 233, 169, 24, 222, 88, 10, 3, 233, 169, 24, 222, 89, 202,
- 105, 10, 3, 233, 169, 24, 221, 24, 10, 3, 233, 169, 24, 177, 10, 3, 233,
- 169, 24, 220, 97, 24, 220, 96, 10, 3, 233, 169, 24, 219, 209, 10, 3, 233,
- 169, 24, 219, 36, 10, 3, 233, 169, 24, 197, 120, 10, 3, 233, 169, 24,
- 197, 109, 10, 3, 231, 233, 10, 3, 231, 234, 230, 162, 10, 3, 231, 231,
- 10, 3, 231, 232, 24, 41, 102, 238, 1, 102, 144, 10, 3, 231, 232, 24, 41,
- 102, 144, 10, 3, 231, 232, 24, 41, 102, 223, 226, 10, 3, 231, 232, 24,
- 251, 156, 200, 20, 102, 200, 166, 10, 3, 231, 232, 24, 250, 224, 10, 3,
- 231, 232, 24, 250, 53, 10, 3, 231, 232, 24, 250, 52, 102, 231, 215, 10,
- 3, 231, 232, 24, 248, 241, 10, 3, 231, 232, 24, 248, 194, 102, 167, 10,
- 3, 231, 232, 24, 247, 89, 10, 3, 231, 232, 24, 247, 90, 102, 167, 10, 3,
- 231, 232, 24, 238, 0, 10, 3, 231, 232, 24, 237, 16, 10, 3, 231, 232, 24,
- 236, 228, 24, 204, 12, 10, 3, 231, 232, 24, 235, 60, 10, 3, 231, 232, 24,
- 234, 124, 10, 3, 231, 232, 24, 234, 125, 102, 177, 10, 3, 231, 232, 24,
- 234, 88, 10, 3, 231, 232, 24, 234, 89, 24, 231, 202, 200, 19, 10, 3, 231,
- 232, 24, 231, 202, 200, 19, 10, 3, 231, 232, 24, 231, 193, 10, 3, 231,
- 232, 24, 231, 46, 10, 3, 231, 232, 24, 231, 44, 10, 3, 231, 232, 24, 231,
- 45, 102, 64, 10, 3, 231, 232, 24, 231, 28, 102, 201, 184, 10, 3, 231,
- 232, 24, 230, 113, 102, 219, 37, 102, 233, 252, 10, 3, 231, 232, 24, 230,
- 81, 10, 3, 231, 232, 24, 230, 82, 102, 177, 10, 3, 231, 232, 24, 229,
- 179, 102, 219, 209, 10, 3, 231, 232, 24, 228, 173, 10, 3, 231, 232, 24,
- 223, 227, 230, 162, 10, 3, 231, 232, 24, 223, 91, 102, 228, 182, 102,
- 250, 53, 10, 3, 231, 232, 24, 222, 129, 10, 3, 231, 232, 24, 222, 88, 10,
- 3, 231, 232, 24, 221, 190, 10, 3, 231, 232, 24, 221, 191, 102, 220, 96,
- 10, 3, 231, 232, 24, 221, 25, 102, 250, 224, 10, 3, 231, 232, 24, 177,
- 10, 3, 231, 232, 24, 217, 49, 102, 234, 88, 10, 3, 231, 232, 24, 216,
- 175, 10, 3, 231, 232, 24, 212, 230, 10, 3, 231, 232, 24, 212, 231, 136,
- 212, 230, 10, 3, 231, 232, 24, 166, 10, 3, 231, 232, 24, 206, 63, 10, 3,
- 231, 232, 24, 206, 25, 10, 3, 231, 232, 24, 204, 12, 10, 3, 231, 232, 24,
- 204, 13, 102, 198, 15, 10, 3, 231, 232, 24, 203, 234, 10, 3, 231, 232,
- 24, 201, 129, 10, 3, 231, 232, 24, 200, 141, 10, 3, 231, 232, 24, 68, 10,
- 3, 231, 232, 24, 197, 109, 10, 3, 231, 232, 24, 197, 110, 102, 235, 62,
- 10, 3, 231, 232, 136, 231, 231, 10, 3, 231, 226, 10, 3, 231, 227, 238,
- 176, 231, 226, 10, 3, 231, 224, 10, 3, 231, 225, 136, 231, 225, 231, 194,
- 136, 231, 193, 10, 3, 231, 215, 10, 3, 231, 216, 231, 225, 136, 231, 225,
- 231, 194, 136, 231, 193, 10, 3, 231, 214, 10, 3, 231, 212, 10, 3, 231,
- 203, 10, 3, 231, 201, 10, 3, 231, 202, 200, 19, 10, 3, 231, 202, 136,
- 231, 201, 10, 3, 231, 202, 238, 176, 231, 201, 10, 3, 231, 193, 10, 3,
- 231, 192, 10, 3, 231, 186, 10, 3, 231, 127, 10, 3, 231, 128, 24, 221, 0,
- 10, 3, 231, 46, 10, 3, 231, 47, 24, 71, 10, 3, 231, 47, 24, 68, 10, 3,
- 231, 47, 238, 176, 231, 46, 10, 3, 231, 44, 10, 3, 231, 45, 136, 231, 44,
- 10, 3, 231, 45, 238, 176, 231, 44, 10, 3, 231, 41, 10, 3, 231, 27, 10, 3,
- 231, 28, 230, 162, 10, 3, 231, 25, 10, 3, 231, 26, 24, 41, 102, 223, 226,
- 10, 3, 231, 26, 24, 231, 202, 200, 19, 10, 3, 231, 26, 24, 223, 226, 10,
- 3, 231, 26, 24, 219, 37, 102, 223, 226, 10, 3, 231, 26, 24, 166, 10, 3,
- 231, 20, 10, 3, 231, 18, 10, 3, 231, 19, 238, 176, 231, 18, 10, 3, 231,
- 19, 24, 248, 241, 10, 3, 231, 19, 24, 200, 141, 10, 3, 231, 19, 200, 19,
- 10, 3, 230, 186, 10, 3, 230, 187, 238, 176, 230, 186, 10, 3, 230, 184,
- 10, 3, 230, 185, 24, 222, 129, 10, 3, 230, 185, 24, 222, 130, 24, 223,
- 227, 230, 162, 10, 3, 230, 185, 24, 212, 230, 10, 3, 230, 185, 24, 206,
- 64, 102, 198, 33, 10, 3, 230, 185, 230, 162, 10, 3, 230, 175, 10, 3, 230,
- 176, 24, 41, 102, 221, 0, 10, 3, 230, 176, 24, 221, 0, 10, 3, 230, 176,
- 136, 230, 176, 219, 27, 10, 3, 230, 167, 10, 3, 230, 165, 10, 3, 230,
- 166, 24, 204, 12, 10, 3, 230, 156, 10, 3, 230, 155, 10, 3, 230, 151, 10,
- 3, 230, 150, 10, 3, 144, 10, 3, 230, 113, 200, 19, 10, 3, 230, 113, 230,
- 162, 10, 3, 230, 81, 10, 3, 229, 178, 10, 3, 229, 179, 24, 250, 53, 10,
- 3, 229, 179, 24, 250, 51, 10, 3, 229, 179, 24, 248, 241, 10, 3, 229, 179,
- 24, 236, 194, 10, 3, 229, 179, 24, 231, 224, 10, 3, 229, 179, 24, 221,
- 179, 10, 3, 229, 179, 24, 212, 230, 10, 3, 229, 179, 24, 204, 12, 10, 3,
- 229, 179, 24, 68, 10, 3, 228, 181, 10, 3, 228, 173, 10, 3, 228, 174, 24,
- 250, 224, 10, 3, 228, 174, 24, 230, 81, 10, 3, 228, 174, 24, 222, 88, 10,
- 3, 228, 174, 24, 219, 153, 10, 3, 228, 174, 24, 197, 109, 10, 3, 228,
- 168, 10, 3, 70, 10, 3, 228, 97, 64, 10, 3, 228, 53, 10, 3, 223, 254, 10,
- 3, 223, 255, 136, 223, 255, 247, 89, 10, 3, 223, 255, 136, 223, 255, 202,
- 105, 10, 3, 223, 229, 10, 3, 223, 226, 10, 3, 223, 227, 236, 254, 10, 3,
- 223, 227, 207, 151, 10, 3, 223, 227, 136, 223, 227, 203, 218, 136, 203,
- 218, 197, 110, 136, 197, 109, 10, 3, 223, 227, 230, 162, 10, 3, 223, 218,
- 10, 3, 223, 219, 24, 231, 202, 200, 19, 10, 3, 223, 217, 10, 3, 223, 207,
- 10, 3, 223, 208, 24, 200, 141, 10, 3, 223, 208, 238, 176, 223, 207, 10,
- 3, 223, 208, 211, 170, 223, 207, 10, 3, 223, 208, 202, 105, 10, 3, 223,
- 200, 10, 3, 223, 190, 10, 3, 223, 105, 10, 3, 223, 90, 10, 3, 160, 10, 3,
- 222, 174, 24, 64, 10, 3, 222, 174, 24, 251, 125, 10, 3, 222, 174, 24,
- 251, 126, 102, 221, 24, 10, 3, 222, 174, 24, 250, 51, 10, 3, 222, 174,
- 24, 248, 241, 10, 3, 222, 174, 24, 248, 220, 10, 3, 222, 174, 24, 161,
- 10, 3, 222, 174, 24, 248, 41, 10, 3, 222, 174, 24, 234, 15, 10, 3, 222,
- 174, 24, 233, 252, 10, 3, 222, 174, 24, 231, 233, 10, 3, 222, 174, 24,
- 231, 215, 10, 3, 222, 174, 24, 231, 202, 200, 19, 10, 3, 222, 174, 24,
- 231, 193, 10, 3, 222, 174, 24, 231, 194, 102, 204, 63, 102, 64, 10, 3,
- 222, 174, 24, 231, 46, 10, 3, 222, 174, 24, 231, 27, 10, 3, 222, 174, 24,
- 231, 19, 102, 206, 25, 10, 3, 222, 174, 24, 231, 19, 238, 176, 231, 18,
- 10, 3, 222, 174, 24, 230, 186, 10, 3, 222, 174, 24, 230, 155, 10, 3, 222,
- 174, 24, 223, 226, 10, 3, 222, 174, 24, 223, 207, 10, 3, 222, 174, 24,
- 222, 129, 10, 3, 222, 174, 24, 221, 204, 10, 3, 222, 174, 24, 221, 190,
- 10, 3, 222, 174, 24, 219, 209, 10, 3, 222, 174, 24, 219, 36, 10, 3, 222,
- 174, 24, 217, 48, 10, 3, 222, 174, 24, 217, 49, 102, 235, 62, 10, 3, 222,
- 174, 24, 217, 49, 102, 231, 46, 10, 3, 222, 174, 24, 217, 49, 102, 200,
- 79, 10, 3, 222, 174, 24, 216, 175, 10, 3, 222, 174, 24, 216, 176, 102,
- 212, 225, 10, 3, 222, 174, 24, 214, 214, 10, 3, 222, 174, 24, 212, 230,
- 10, 3, 222, 174, 24, 210, 51, 10, 3, 222, 174, 24, 206, 218, 10, 3, 222,
- 174, 24, 188, 10, 3, 222, 174, 24, 206, 25, 10, 3, 222, 174, 24, 204, 64,
- 10, 3, 222, 174, 24, 204, 12, 10, 3, 222, 174, 24, 203, 234, 10, 3, 222,
- 174, 24, 203, 164, 10, 3, 222, 174, 24, 203, 104, 10, 3, 222, 174, 24,
- 201, 138, 10, 3, 222, 174, 24, 200, 112, 10, 3, 222, 174, 24, 68, 10, 3,
- 222, 174, 24, 197, 120, 10, 3, 222, 174, 24, 197, 109, 10, 3, 222, 174,
- 24, 197, 80, 24, 166, 10, 3, 222, 174, 24, 197, 3, 10, 3, 222, 174, 24,
- 192, 30, 10, 3, 222, 160, 10, 3, 222, 161, 238, 176, 222, 160, 10, 3,
- 222, 149, 10, 3, 222, 146, 10, 3, 222, 144, 10, 3, 222, 143, 10, 3, 222,
- 141, 10, 3, 222, 142, 136, 222, 141, 10, 3, 222, 129, 10, 3, 222, 130,
- 24, 223, 227, 230, 162, 10, 3, 222, 125, 10, 3, 222, 126, 24, 248, 241,
- 10, 3, 222, 126, 238, 176, 222, 125, 10, 3, 222, 123, 10, 3, 222, 122,
- 10, 3, 222, 88, 10, 3, 222, 89, 220, 164, 24, 124, 136, 220, 164, 24, 68,
- 10, 3, 222, 89, 136, 222, 89, 220, 164, 24, 124, 136, 220, 164, 24, 68,
- 10, 3, 222, 21, 10, 3, 221, 204, 10, 3, 221, 205, 24, 248, 241, 10, 3,
- 221, 205, 24, 68, 10, 3, 221, 205, 24, 197, 109, 10, 3, 221, 190, 10, 3,
- 221, 179, 10, 3, 221, 165, 10, 3, 221, 164, 10, 3, 221, 162, 10, 3, 221,
- 163, 136, 221, 162, 10, 3, 221, 33, 10, 3, 221, 34, 136, 229, 179, 24,
- 250, 52, 221, 34, 136, 229, 179, 24, 250, 51, 10, 3, 221, 24, 10, 3, 221,
- 22, 10, 3, 221, 23, 196, 137, 20, 10, 3, 221, 21, 10, 3, 221, 13, 10, 3,
- 221, 14, 230, 162, 10, 3, 221, 12, 10, 3, 221, 0, 10, 3, 221, 1, 211,
- 170, 221, 0, 10, 3, 220, 249, 10, 3, 220, 226, 10, 3, 177, 10, 3, 220,
- 163, 10, 3, 220, 164, 24, 64, 10, 3, 220, 164, 24, 41, 102, 238, 1, 102,
- 144, 10, 3, 220, 164, 24, 41, 102, 231, 193, 10, 3, 220, 164, 24, 41,
- 102, 220, 96, 10, 3, 220, 164, 24, 251, 35, 10, 3, 220, 164, 24, 250,
- 224, 10, 3, 220, 164, 24, 250, 54, 192, 26, 200, 19, 10, 3, 220, 164, 24,
- 248, 241, 10, 3, 220, 164, 24, 248, 41, 10, 3, 220, 164, 24, 237, 195,
- 10, 3, 220, 164, 24, 234, 88, 10, 3, 220, 164, 24, 231, 233, 10, 3, 220,
- 164, 24, 231, 193, 10, 3, 220, 164, 24, 230, 175, 10, 3, 220, 164, 24,
- 230, 176, 102, 230, 175, 10, 3, 220, 164, 24, 144, 10, 3, 220, 164, 24,
- 230, 81, 10, 3, 220, 164, 24, 229, 179, 24, 212, 230, 10, 3, 220, 164,
- 24, 223, 227, 230, 162, 10, 3, 220, 164, 24, 223, 207, 10, 3, 220, 164,
- 24, 223, 208, 102, 144, 10, 3, 220, 164, 24, 223, 208, 102, 219, 36, 10,
- 3, 220, 164, 24, 221, 204, 10, 3, 220, 164, 24, 221, 179, 10, 3, 220,
- 164, 24, 221, 24, 10, 3, 220, 164, 24, 221, 13, 10, 3, 220, 164, 24, 221,
- 14, 102, 229, 179, 102, 64, 10, 3, 220, 164, 24, 220, 163, 10, 3, 220,
- 164, 24, 219, 153, 10, 3, 220, 164, 24, 219, 36, 10, 3, 220, 164, 24,
- 219, 21, 10, 3, 220, 164, 24, 217, 48, 10, 3, 220, 164, 24, 217, 49, 102,
- 234, 88, 10, 3, 220, 164, 24, 215, 189, 10, 3, 220, 164, 24, 214, 214,
- 10, 3, 220, 164, 24, 204, 13, 102, 201, 129, 10, 3, 220, 164, 24, 203,
- 214, 102, 231, 19, 102, 234, 15, 10, 3, 220, 164, 24, 203, 214, 102, 231,
- 19, 200, 19, 10, 3, 220, 164, 24, 203, 162, 10, 3, 220, 164, 24, 203,
- 163, 102, 203, 162, 10, 3, 220, 164, 24, 201, 129, 10, 3, 220, 164, 24,
- 200, 155, 10, 3, 220, 164, 24, 200, 141, 10, 3, 220, 164, 24, 200, 80,
- 102, 41, 102, 201, 185, 102, 181, 10, 3, 220, 164, 24, 68, 10, 3, 220,
- 164, 24, 124, 102, 64, 10, 3, 220, 164, 24, 124, 102, 124, 102, 68, 10,
- 3, 220, 164, 24, 197, 121, 102, 250, 53, 10, 3, 220, 164, 24, 197, 109,
- 10, 3, 220, 164, 24, 197, 3, 10, 3, 220, 164, 202, 105, 10, 3, 220, 161,
- 10, 3, 220, 162, 24, 204, 12, 10, 3, 220, 162, 24, 204, 13, 102, 201,
- 129, 10, 3, 220, 162, 230, 162, 10, 3, 220, 162, 230, 163, 136, 220, 162,
- 230, 163, 204, 12, 10, 3, 220, 157, 10, 3, 220, 96, 10, 3, 220, 97, 24,
- 220, 96, 10, 3, 220, 94, 10, 3, 220, 95, 24, 221, 0, 10, 3, 220, 95, 24,
- 221, 1, 102, 206, 218, 10, 3, 219, 209, 10, 3, 219, 190, 10, 3, 219, 178,
- 10, 3, 219, 153, 10, 3, 219, 36, 10, 3, 219, 37, 24, 248, 241, 10, 3,
- 219, 34, 10, 3, 219, 35, 24, 251, 35, 10, 3, 219, 35, 24, 248, 241, 10,
- 3, 219, 35, 24, 233, 252, 10, 3, 219, 35, 24, 233, 253, 200, 19, 10, 3,
- 219, 35, 24, 231, 202, 200, 19, 10, 3, 219, 35, 24, 229, 179, 24, 248,
- 241, 10, 3, 219, 35, 24, 223, 207, 10, 3, 219, 35, 24, 222, 146, 10, 3,
- 219, 35, 24, 222, 144, 10, 3, 219, 35, 24, 222, 145, 102, 250, 53, 10, 3,
- 219, 35, 24, 221, 204, 10, 3, 219, 35, 24, 220, 185, 102, 250, 53, 10, 3,
- 219, 35, 24, 220, 163, 10, 3, 219, 35, 24, 217, 49, 102, 234, 88, 10, 3,
- 219, 35, 24, 214, 214, 10, 3, 219, 35, 24, 213, 22, 10, 3, 219, 35, 24,
- 203, 126, 102, 250, 53, 10, 3, 219, 35, 24, 203, 96, 102, 247, 124, 10,
- 3, 219, 35, 24, 198, 33, 10, 3, 219, 35, 200, 19, 10, 3, 219, 35, 238,
- 176, 219, 34, 10, 3, 219, 35, 211, 170, 219, 34, 10, 3, 219, 35, 202,
- 105, 10, 3, 219, 35, 203, 249, 10, 3, 219, 33, 10, 3, 219, 27, 10, 3,
- 219, 28, 136, 219, 27, 10, 3, 219, 28, 211, 170, 219, 27, 10, 3, 219, 28,
- 203, 249, 10, 3, 219, 24, 10, 3, 219, 21, 10, 3, 219, 19, 10, 3, 219, 20,
- 136, 219, 19, 10, 3, 219, 20, 136, 219, 20, 231, 194, 136, 231, 193, 10,
- 3, 172, 10, 3, 217, 228, 24, 200, 141, 10, 3, 217, 228, 230, 162, 10, 3,
- 217, 220, 10, 3, 217, 188, 10, 3, 217, 135, 10, 3, 217, 110, 10, 3, 217,
- 109, 10, 3, 217, 48, 10, 3, 216, 248, 10, 3, 216, 175, 10, 3, 216, 120,
- 10, 3, 215, 241, 10, 3, 215, 242, 136, 215, 241, 10, 3, 215, 226, 10, 3,
- 215, 227, 230, 162, 10, 3, 215, 207, 10, 3, 215, 193, 10, 3, 215, 189,
- 10, 3, 215, 190, 24, 64, 10, 3, 215, 190, 24, 221, 0, 10, 3, 215, 190,
- 24, 192, 112, 10, 3, 215, 190, 136, 215, 189, 10, 3, 215, 190, 136, 215,
- 190, 24, 41, 102, 181, 10, 3, 215, 190, 238, 176, 215, 189, 10, 3, 215,
- 187, 10, 3, 215, 188, 24, 64, 10, 3, 215, 188, 24, 41, 102, 237, 16, 10,
- 3, 215, 188, 24, 237, 16, 10, 3, 215, 188, 230, 162, 10, 3, 181, 10, 3,
- 215, 87, 10, 3, 215, 74, 10, 3, 215, 75, 223, 120, 10, 3, 215, 75, 24,
- 203, 165, 200, 19, 10, 3, 215, 75, 211, 170, 215, 74, 10, 3, 215, 73, 10,
- 3, 215, 66, 212, 216, 10, 3, 215, 65, 10, 3, 215, 64, 10, 3, 214, 214,
- 10, 3, 214, 215, 24, 64, 10, 3, 214, 215, 24, 197, 109, 10, 3, 214, 215,
- 203, 249, 10, 3, 214, 60, 10, 3, 214, 61, 24, 71, 10, 3, 214, 51, 10, 3,
- 214, 21, 10, 3, 214, 22, 24, 231, 202, 200, 19, 10, 3, 214, 22, 24, 231,
- 194, 102, 231, 202, 200, 19, 10, 3, 214, 17, 10, 3, 214, 18, 24, 250,
- 224, 10, 3, 214, 18, 24, 250, 53, 10, 3, 214, 18, 24, 250, 54, 102, 250,
- 53, 10, 3, 214, 18, 24, 230, 175, 10, 3, 214, 18, 24, 217, 49, 102, 231,
- 202, 200, 19, 10, 3, 214, 18, 24, 214, 214, 10, 3, 214, 18, 24, 212, 230,
- 10, 3, 214, 18, 24, 204, 12, 10, 3, 214, 18, 24, 204, 13, 102, 41, 250,
- 224, 10, 3, 214, 18, 24, 204, 13, 102, 250, 53, 10, 3, 214, 18, 24, 204,
- 13, 102, 250, 54, 102, 250, 53, 10, 3, 214, 18, 24, 197, 121, 102, 250,
- 53, 10, 3, 214, 18, 24, 197, 3, 10, 3, 214, 5, 10, 3, 213, 22, 10, 3,
- 212, 247, 10, 3, 212, 230, 10, 3, 212, 231, 220, 162, 24, 231, 193, 10,
- 3, 212, 231, 220, 162, 24, 217, 110, 10, 3, 212, 231, 220, 162, 24, 206,
- 63, 10, 3, 212, 231, 220, 162, 24, 206, 64, 136, 212, 231, 220, 162, 24,
- 206, 63, 10, 3, 212, 231, 220, 162, 24, 197, 3, 10, 3, 212, 231, 200, 19,
- 10, 3, 212, 231, 136, 212, 230, 10, 3, 212, 231, 238, 176, 212, 230, 10,
- 3, 212, 231, 238, 176, 212, 231, 220, 162, 136, 220, 161, 10, 3, 212,
- 225, 10, 3, 212, 226, 251, 156, 24, 250, 47, 10, 3, 212, 226, 251, 156,
- 24, 248, 41, 10, 3, 212, 226, 251, 156, 24, 235, 56, 10, 3, 212, 226,
- 251, 156, 24, 230, 175, 10, 3, 212, 226, 251, 156, 24, 223, 227, 230,
- 162, 10, 3, 212, 226, 251, 156, 24, 222, 144, 10, 3, 212, 226, 251, 156,
- 24, 177, 10, 3, 212, 226, 251, 156, 24, 214, 214, 10, 3, 212, 226, 251,
- 156, 24, 203, 93, 10, 3, 212, 226, 251, 156, 24, 197, 120, 10, 3, 212,
- 226, 221, 163, 24, 248, 41, 10, 3, 212, 226, 221, 163, 24, 248, 42, 68,
- 10, 3, 166, 10, 3, 211, 67, 10, 3, 211, 25, 10, 3, 210, 253, 10, 3, 210,
- 109, 10, 3, 210, 51, 10, 3, 210, 52, 24, 64, 10, 3, 210, 52, 24, 251,
- 238, 10, 3, 210, 52, 24, 248, 41, 10, 3, 210, 52, 24, 247, 124, 10, 3,
- 210, 52, 24, 71, 10, 3, 210, 52, 24, 70, 10, 3, 210, 52, 24, 228, 53, 10,
- 3, 210, 52, 24, 68, 10, 3, 210, 52, 24, 197, 120, 10, 3, 210, 52, 238,
- 176, 210, 51, 10, 3, 209, 245, 10, 3, 209, 246, 24, 222, 125, 10, 3, 209,
- 246, 24, 197, 109, 10, 3, 209, 246, 24, 192, 112, 10, 3, 209, 246, 211,
- 170, 209, 245, 10, 3, 167, 10, 3, 208, 66, 10, 3, 207, 151, 10, 3, 206,
- 218, 10, 3, 188, 10, 3, 206, 80, 212, 216, 10, 3, 206, 79, 10, 3, 206,
- 80, 24, 64, 10, 3, 206, 80, 24, 235, 62, 10, 3, 206, 80, 24, 235, 60, 10,
- 3, 206, 80, 24, 144, 10, 3, 206, 80, 24, 222, 129, 10, 3, 206, 80, 24,
- 221, 0, 10, 3, 206, 80, 24, 219, 19, 10, 3, 206, 80, 24, 216, 175, 10, 3,
- 206, 80, 24, 212, 230, 10, 3, 206, 80, 24, 206, 63, 10, 3, 206, 80, 24,
- 203, 234, 10, 3, 206, 80, 24, 200, 166, 10, 3, 206, 80, 24, 197, 120, 10,
- 3, 206, 80, 24, 197, 115, 10, 3, 206, 80, 24, 197, 84, 10, 3, 206, 80,
- 24, 197, 27, 10, 3, 206, 80, 24, 197, 3, 10, 3, 206, 80, 136, 206, 79,
- 10, 3, 206, 80, 230, 162, 10, 3, 206, 63, 10, 3, 206, 64, 220, 164, 24,
- 250, 51, 10, 3, 206, 34, 10, 3, 206, 25, 10, 3, 204, 64, 10, 3, 204, 62,
- 10, 3, 204, 63, 24, 64, 10, 3, 204, 63, 24, 248, 241, 10, 3, 204, 63, 24,
- 231, 18, 10, 3, 204, 63, 24, 214, 214, 10, 3, 204, 63, 24, 203, 162, 10,
- 3, 204, 63, 24, 198, 15, 10, 3, 204, 63, 24, 68, 10, 3, 204, 63, 24, 124,
- 102, 64, 10, 3, 204, 60, 10, 3, 204, 58, 10, 3, 204, 30, 10, 3, 204, 12,
- 10, 3, 204, 13, 228, 181, 10, 3, 204, 13, 136, 204, 13, 231, 225, 136,
- 231, 225, 231, 194, 136, 231, 193, 10, 3, 204, 13, 136, 204, 13, 200,
- 167, 136, 200, 167, 231, 194, 136, 231, 193, 10, 3, 204, 5, 10, 3, 204,
- 0, 10, 3, 203, 252, 10, 3, 203, 251, 10, 3, 203, 248, 10, 3, 203, 234,
- 10, 3, 203, 235, 24, 64, 10, 3, 203, 235, 24, 223, 207, 10, 3, 203, 228,
- 10, 3, 203, 229, 24, 64, 10, 3, 203, 229, 24, 248, 221, 10, 3, 203, 229,
- 24, 247, 100, 10, 3, 203, 229, 24, 236, 215, 10, 3, 203, 229, 24, 231,
- 193, 10, 3, 203, 229, 24, 223, 226, 10, 3, 203, 229, 24, 223, 227, 230,
- 162, 10, 3, 203, 229, 24, 220, 249, 10, 3, 203, 229, 24, 219, 21, 10, 3,
- 203, 229, 24, 215, 226, 10, 3, 203, 229, 24, 206, 63, 10, 3, 203, 222,
- 10, 3, 203, 217, 10, 3, 203, 218, 200, 19, 10, 3, 203, 218, 136, 203,
- 218, 247, 90, 136, 247, 89, 10, 3, 203, 213, 10, 3, 203, 164, 10, 3, 203,
- 165, 136, 223, 121, 203, 164, 10, 3, 203, 162, 10, 3, 203, 160, 10, 3,
- 203, 125, 10, 3, 203, 126, 230, 162, 10, 3, 203, 104, 10, 3, 203, 102,
- 10, 3, 203, 103, 136, 203, 103, 203, 162, 10, 3, 203, 95, 10, 3, 203, 93,
- 10, 3, 201, 184, 10, 3, 201, 185, 136, 201, 184, 10, 3, 201, 141, 10, 3,
- 201, 140, 10, 3, 201, 138, 10, 3, 201, 129, 10, 3, 201, 128, 10, 3, 201,
- 100, 10, 3, 201, 99, 10, 3, 189, 10, 3, 200, 181, 250, 37, 10, 3, 200,
- 181, 24, 229, 178, 10, 3, 200, 181, 24, 216, 175, 10, 3, 200, 181, 230,
- 162, 10, 3, 200, 166, 10, 3, 200, 167, 136, 200, 167, 214, 61, 136, 214,
- 61, 236, 195, 136, 236, 194, 10, 3, 200, 167, 202, 105, 10, 3, 200, 155,
- 10, 3, 190, 24, 248, 41, 10, 3, 190, 24, 230, 175, 10, 3, 190, 24, 204,
- 12, 10, 3, 190, 24, 203, 164, 10, 3, 190, 24, 198, 33, 10, 3, 190, 24,
- 197, 109, 10, 3, 200, 141, 10, 3, 200, 112, 10, 3, 200, 79, 10, 3, 200,
- 80, 230, 162, 10, 3, 199, 128, 10, 3, 199, 129, 200, 19, 10, 3, 199, 92,
- 10, 3, 199, 69, 10, 3, 199, 70, 24, 200, 141, 10, 3, 199, 70, 136, 199,
- 69, 10, 3, 199, 70, 136, 199, 70, 231, 225, 136, 231, 225, 231, 194, 136,
- 231, 193, 10, 3, 198, 45, 10, 3, 198, 33, 10, 3, 198, 31, 10, 3, 198, 27,
- 10, 3, 198, 15, 10, 3, 198, 16, 136, 198, 16, 192, 113, 136, 192, 112,
- 10, 3, 68, 10, 3, 124, 230, 175, 10, 3, 124, 124, 68, 10, 3, 124, 136,
- 124, 211, 78, 136, 211, 78, 231, 194, 136, 231, 193, 10, 3, 124, 136,
- 124, 201, 101, 136, 201, 100, 10, 3, 124, 136, 124, 124, 207, 168, 136,
- 124, 207, 167, 10, 3, 197, 120, 10, 3, 197, 115, 10, 3, 197, 109, 10, 3,
- 197, 110, 220, 249, 10, 3, 197, 110, 24, 248, 241, 10, 3, 197, 110, 24,
- 216, 175, 10, 3, 197, 110, 24, 124, 102, 124, 102, 68, 10, 3, 197, 110,
- 24, 124, 102, 124, 102, 124, 230, 162, 10, 3, 197, 110, 230, 162, 10, 3,
- 197, 110, 203, 249, 10, 3, 197, 110, 203, 250, 24, 248, 241, 10, 3, 197,
- 105, 10, 3, 197, 84, 10, 3, 197, 85, 24, 220, 163, 10, 3, 197, 85, 24,
- 217, 49, 102, 238, 0, 10, 3, 197, 85, 24, 204, 62, 10, 3, 197, 85, 24,
- 68, 10, 3, 197, 83, 10, 3, 197, 79, 10, 3, 197, 80, 24, 222, 88, 10, 3,
- 197, 80, 24, 166, 10, 3, 197, 77, 10, 3, 197, 78, 230, 162, 10, 3, 197,
- 27, 10, 3, 197, 28, 238, 176, 197, 27, 10, 3, 197, 28, 203, 249, 10, 3,
- 197, 25, 10, 3, 197, 26, 24, 41, 102, 144, 10, 3, 197, 26, 24, 41, 102,
- 181, 10, 3, 197, 26, 24, 251, 35, 10, 3, 197, 26, 24, 144, 10, 3, 197,
- 26, 24, 212, 230, 10, 3, 197, 26, 24, 197, 120, 10, 3, 197, 26, 24, 197,
- 121, 102, 250, 53, 10, 3, 197, 26, 24, 197, 121, 102, 248, 41, 10, 3,
- 197, 24, 10, 3, 197, 21, 10, 3, 197, 20, 10, 3, 197, 16, 10, 3, 197, 17,
- 24, 64, 10, 3, 197, 17, 24, 250, 47, 10, 3, 197, 17, 24, 161, 10, 3, 197,
- 17, 24, 235, 49, 10, 3, 197, 17, 24, 231, 233, 10, 3, 197, 17, 24, 231,
- 215, 10, 3, 197, 17, 24, 231, 202, 200, 19, 10, 3, 197, 17, 24, 231, 193,
- 10, 3, 197, 17, 24, 230, 186, 10, 3, 197, 17, 24, 144, 10, 3, 197, 17,
- 24, 223, 226, 10, 3, 197, 17, 24, 223, 207, 10, 3, 197, 17, 24, 223, 90,
- 10, 3, 197, 17, 24, 221, 204, 10, 3, 197, 17, 24, 219, 19, 10, 3, 197,
- 17, 24, 216, 120, 10, 3, 197, 17, 24, 166, 10, 3, 197, 17, 24, 204, 12,
- 10, 3, 197, 17, 24, 203, 102, 10, 3, 197, 17, 24, 198, 45, 10, 3, 197,
- 17, 24, 124, 102, 230, 175, 10, 3, 197, 17, 24, 197, 109, 10, 3, 197, 17,
- 24, 197, 14, 10, 3, 197, 14, 10, 3, 197, 15, 24, 68, 10, 3, 197, 3, 10,
- 3, 197, 4, 24, 64, 10, 3, 197, 4, 24, 221, 33, 10, 3, 197, 4, 24, 221, 0,
- 10, 3, 197, 4, 24, 200, 141, 10, 3, 196, 255, 10, 3, 197, 2, 10, 3, 197,
- 0, 10, 3, 196, 252, 10, 3, 196, 240, 10, 3, 196, 241, 24, 222, 88, 10, 3,
- 196, 238, 10, 3, 192, 112, 10, 3, 192, 113, 200, 19, 10, 3, 192, 113,
- 108, 24, 221, 0, 10, 3, 192, 108, 10, 3, 192, 100, 10, 3, 192, 84, 10, 3,
- 192, 30, 10, 3, 192, 31, 136, 192, 30, 10, 3, 192, 29, 10, 3, 192, 27,
- 10, 3, 192, 28, 222, 148, 200, 19, 10, 3, 192, 22, 10, 3, 192, 13, 10, 3,
- 191, 252, 10, 3, 191, 250, 10, 3, 191, 251, 24, 64, 10, 3, 191, 249, 10,
- 3, 191, 248, 10, 3, 222, 113, 234, 121, 10, 3, 251, 239, 24, 212, 230,
- 10, 3, 251, 156, 24, 64, 10, 3, 250, 238, 24, 221, 15, 10, 3, 237, 247,
- 221, 163, 24, 197, 121, 102, 217, 110, 10, 3, 237, 245, 10, 3, 236, 195,
- 102, 203, 164, 10, 3, 235, 61, 24, 204, 12, 10, 3, 233, 169, 24, 230,
- 175, 10, 3, 233, 169, 24, 204, 12, 10, 3, 231, 232, 24, 250, 225, 102,
- 222, 130, 102, 64, 10, 3, 231, 232, 24, 250, 51, 10, 3, 231, 157, 10, 3,
- 231, 35, 10, 3, 228, 153, 10, 3, 222, 174, 24, 250, 188, 10, 3, 222, 174,
- 24, 250, 50, 10, 3, 222, 174, 24, 231, 18, 10, 3, 222, 174, 24, 230, 175,
- 10, 3, 222, 174, 24, 229, 179, 24, 250, 51, 10, 3, 222, 174, 24, 219, 19,
- 10, 3, 222, 174, 24, 166, 10, 3, 222, 174, 24, 203, 156, 10, 3, 222, 174,
- 24, 198, 45, 10, 3, 222, 174, 24, 197, 25, 10, 3, 220, 164, 24, 231, 46,
- 10, 3, 219, 35, 203, 250, 24, 248, 241, 10, 3, 219, 35, 24, 233, 253,
- 102, 220, 96, 10, 3, 219, 35, 24, 203, 164, 10, 3, 216, 247, 10, 3, 215,
- 188, 24, 192, 112, 10, 3, 215, 86, 10, 3, 214, 20, 10, 3, 214, 19, 10, 3,
- 214, 18, 24, 248, 221, 10, 3, 214, 18, 24, 231, 46, 10, 3, 212, 248, 207,
- 16, 214, 12, 237, 94, 10, 3, 210, 110, 250, 37, 10, 3, 209, 249, 10, 3,
- 206, 80, 24, 223, 227, 230, 162, 10, 3, 199, 120, 10, 3, 197, 85, 24,
- 217, 48, 10, 3, 124, 68, 10, 162, 3, 103, 250, 53, 10, 162, 3, 112, 250,
- 53, 10, 162, 3, 232, 119, 250, 53, 10, 162, 3, 232, 214, 250, 53, 10,
- 162, 3, 203, 41, 250, 53, 10, 162, 3, 204, 146, 250, 53, 10, 162, 3, 234,
- 148, 250, 53, 10, 162, 3, 214, 16, 250, 53, 10, 162, 3, 112, 236, 194,
- 10, 162, 3, 232, 119, 236, 194, 10, 162, 3, 232, 214, 236, 194, 10, 162,
- 3, 203, 41, 236, 194, 10, 162, 3, 204, 146, 236, 194, 10, 162, 3, 234,
- 148, 236, 194, 10, 162, 3, 214, 16, 236, 194, 10, 162, 3, 232, 119, 68,
- 10, 162, 3, 232, 214, 68, 10, 162, 3, 203, 41, 68, 10, 162, 3, 204, 146,
- 68, 10, 162, 3, 234, 148, 68, 10, 162, 3, 214, 16, 68, 10, 162, 3, 90,
- 231, 129, 10, 162, 3, 103, 231, 129, 10, 162, 3, 112, 231, 129, 10, 162,
- 3, 232, 119, 231, 129, 10, 162, 3, 232, 214, 231, 129, 10, 162, 3, 203,
- 41, 231, 129, 10, 162, 3, 204, 146, 231, 129, 10, 162, 3, 234, 148, 231,
- 129, 10, 162, 3, 214, 16, 231, 129, 10, 162, 3, 90, 231, 126, 10, 162, 3,
- 103, 231, 126, 10, 162, 3, 112, 231, 126, 10, 162, 3, 232, 119, 231, 126,
- 10, 162, 3, 232, 214, 231, 126, 10, 162, 3, 103, 204, 30, 10, 162, 3,
- 112, 204, 30, 10, 162, 3, 112, 204, 31, 196, 137, 20, 10, 162, 3, 232,
- 119, 204, 30, 10, 162, 3, 232, 214, 204, 30, 10, 162, 3, 203, 41, 204,
- 30, 10, 162, 3, 204, 146, 204, 30, 10, 162, 3, 234, 148, 204, 30, 10,
- 162, 3, 214, 16, 204, 30, 10, 162, 3, 90, 204, 23, 10, 162, 3, 103, 204,
- 23, 10, 162, 3, 112, 204, 23, 10, 162, 3, 112, 204, 24, 196, 137, 20, 10,
- 162, 3, 232, 119, 204, 23, 10, 162, 3, 232, 214, 204, 23, 10, 162, 3,
- 204, 31, 24, 231, 216, 102, 236, 194, 10, 162, 3, 204, 31, 24, 231, 216,
- 102, 216, 120, 10, 162, 3, 90, 247, 85, 10, 162, 3, 103, 247, 85, 10,
- 162, 3, 112, 247, 85, 10, 162, 3, 112, 247, 86, 196, 137, 20, 10, 162, 3,
- 232, 119, 247, 85, 10, 162, 3, 232, 214, 247, 85, 10, 162, 3, 112, 196,
- 137, 232, 136, 233, 254, 10, 162, 3, 112, 196, 137, 232, 136, 233, 251,
- 10, 162, 3, 232, 119, 196, 137, 232, 136, 219, 179, 10, 162, 3, 232, 119,
- 196, 137, 232, 136, 219, 177, 10, 162, 3, 232, 119, 196, 137, 232, 136,
- 219, 180, 64, 10, 162, 3, 232, 119, 196, 137, 232, 136, 219, 180, 249,
- 226, 10, 162, 3, 203, 41, 196, 137, 232, 136, 250, 49, 10, 162, 3, 204,
- 146, 196, 137, 232, 136, 223, 199, 10, 162, 3, 204, 146, 196, 137, 232,
- 136, 223, 201, 64, 10, 162, 3, 204, 146, 196, 137, 232, 136, 223, 201,
- 249, 226, 10, 162, 3, 234, 148, 196, 137, 232, 136, 196, 254, 10, 162, 3,
- 234, 148, 196, 137, 232, 136, 196, 253, 10, 162, 3, 214, 16, 196, 137,
- 232, 136, 223, 215, 10, 162, 3, 214, 16, 196, 137, 232, 136, 223, 214,
- 10, 162, 3, 214, 16, 196, 137, 232, 136, 223, 213, 10, 162, 3, 214, 16,
- 196, 137, 232, 136, 223, 216, 64, 10, 162, 3, 103, 250, 54, 200, 19, 10,
- 162, 3, 112, 250, 54, 200, 19, 10, 162, 3, 232, 119, 250, 54, 200, 19,
- 10, 162, 3, 232, 214, 250, 54, 200, 19, 10, 162, 3, 203, 41, 250, 54,
- 200, 19, 10, 162, 3, 90, 248, 205, 10, 162, 3, 103, 248, 205, 10, 162, 3,
- 112, 248, 205, 10, 162, 3, 232, 119, 248, 205, 10, 162, 3, 232, 119, 248,
- 206, 196, 137, 20, 10, 162, 3, 232, 214, 248, 205, 10, 162, 3, 232, 214,
- 248, 206, 196, 137, 20, 10, 162, 3, 214, 29, 10, 162, 3, 214, 30, 10,
- 162, 3, 90, 233, 250, 10, 162, 3, 103, 233, 250, 10, 162, 3, 90, 199,
- 192, 236, 194, 10, 162, 3, 103, 199, 189, 236, 194, 10, 162, 3, 232, 214,
- 203, 28, 236, 194, 10, 162, 3, 90, 199, 192, 196, 137, 232, 136, 64, 10,
- 162, 3, 103, 199, 189, 196, 137, 232, 136, 64, 10, 162, 3, 90, 234, 144,
- 250, 53, 10, 162, 3, 90, 208, 168, 250, 53, 10, 162, 3, 40, 250, 40, 90,
- 203, 29, 10, 162, 3, 40, 250, 40, 90, 208, 167, 10, 162, 3, 90, 208, 168,
- 230, 156, 10, 162, 3, 90, 138, 230, 156, 10, 162, 3, 234, 122, 90, 199,
- 191, 10, 162, 3, 234, 122, 103, 199, 188, 10, 162, 3, 234, 122, 232, 126,
- 10, 162, 3, 234, 122, 233, 3, 10, 162, 3, 232, 119, 124, 196, 137, 20,
- 10, 162, 3, 232, 214, 124, 196, 137, 20, 10, 162, 3, 203, 41, 124, 196,
- 137, 20, 10, 162, 3, 204, 146, 124, 196, 137, 20, 10, 162, 3, 234, 148,
- 124, 196, 137, 20, 10, 162, 3, 214, 16, 124, 196, 137, 20, 10, 209, 38,
- 3, 40, 250, 40, 194, 11, 236, 177, 10, 209, 38, 3, 84, 242, 47, 10, 209,
- 38, 3, 237, 11, 242, 47, 10, 209, 38, 3, 237, 11, 198, 181, 10, 209, 38,
- 3, 237, 11, 208, 173, 10, 3, 251, 239, 24, 212, 231, 200, 19, 10, 3, 251,
- 239, 24, 203, 162, 10, 3, 251, 126, 24, 233, 252, 10, 3, 248, 242, 24,
- 236, 195, 200, 19, 10, 3, 248, 228, 24, 251, 155, 10, 3, 248, 228, 24,
- 214, 60, 10, 3, 248, 228, 24, 192, 112, 10, 3, 247, 125, 136, 247, 125,
- 24, 215, 87, 10, 3, 238, 1, 24, 200, 141, 10, 3, 237, 247, 24, 221, 0,
- 10, 3, 236, 228, 24, 223, 226, 10, 3, 236, 228, 24, 124, 124, 68, 10, 3,
- 236, 226, 24, 197, 109, 10, 3, 235, 57, 24, 250, 188, 10, 3, 235, 57, 24,
- 250, 53, 10, 3, 235, 57, 24, 250, 54, 250, 27, 220, 28, 10, 3, 235, 57,
- 24, 236, 215, 10, 3, 235, 57, 24, 235, 49, 10, 3, 235, 57, 24, 234, 15,
- 10, 3, 235, 57, 24, 231, 233, 10, 3, 235, 57, 24, 231, 46, 10, 3, 235,
- 57, 24, 231, 28, 230, 162, 10, 3, 235, 57, 24, 231, 18, 10, 3, 235, 57,
- 24, 144, 10, 3, 235, 57, 24, 229, 178, 10, 3, 235, 57, 24, 223, 227, 230,
- 162, 10, 3, 235, 57, 24, 222, 88, 10, 3, 235, 57, 24, 221, 0, 10, 3, 235,
- 57, 24, 220, 249, 10, 3, 235, 57, 24, 220, 250, 102, 222, 88, 10, 3, 235,
- 57, 24, 220, 151, 10, 3, 235, 57, 24, 220, 94, 10, 3, 235, 57, 24, 220,
- 95, 24, 221, 0, 10, 3, 235, 57, 24, 219, 25, 102, 231, 18, 10, 3, 235,
- 57, 24, 217, 110, 10, 3, 235, 57, 24, 216, 248, 10, 3, 235, 57, 24, 216,
- 175, 10, 3, 235, 57, 24, 214, 60, 10, 3, 235, 57, 24, 210, 51, 10, 3,
- 235, 57, 24, 204, 12, 10, 3, 235, 57, 24, 203, 126, 230, 162, 10, 3, 234,
- 201, 24, 221, 0, 10, 3, 234, 201, 24, 210, 253, 10, 3, 234, 16, 193, 223,
- 10, 3, 233, 253, 238, 176, 233, 252, 10, 3, 233, 169, 203, 250, 24, 250,
- 53, 10, 3, 233, 169, 203, 250, 24, 229, 178, 10, 3, 233, 169, 203, 250,
- 24, 223, 227, 230, 162, 10, 3, 233, 169, 203, 250, 24, 177, 10, 3, 233,
- 169, 203, 250, 24, 220, 96, 10, 3, 233, 169, 203, 250, 24, 217, 48, 10,
- 3, 233, 169, 203, 250, 24, 216, 248, 10, 3, 233, 169, 203, 250, 24, 201,
- 184, 10, 3, 233, 169, 24, 201, 184, 10, 3, 231, 232, 24, 248, 227, 10, 3,
- 231, 232, 24, 236, 228, 230, 162, 10, 3, 231, 232, 24, 235, 57, 24, 223,
- 227, 230, 162, 10, 3, 231, 232, 24, 235, 57, 24, 222, 88, 10, 3, 231,
- 232, 24, 234, 18, 10, 3, 231, 232, 24, 231, 233, 10, 3, 231, 232, 24,
- 231, 194, 102, 237, 16, 10, 3, 231, 232, 24, 231, 194, 102, 214, 214, 10,
- 3, 231, 232, 24, 230, 113, 102, 64, 10, 3, 231, 232, 24, 220, 250, 102,
- 222, 88, 10, 3, 231, 232, 24, 220, 94, 10, 3, 231, 232, 24, 220, 95, 24,
- 221, 0, 10, 3, 231, 232, 24, 219, 24, 10, 3, 231, 232, 24, 215, 189, 10,
- 3, 231, 232, 24, 214, 214, 10, 3, 231, 232, 24, 214, 215, 102, 234, 200,
- 10, 3, 231, 232, 24, 214, 215, 102, 231, 46, 10, 3, 231, 232, 24, 203,
- 228, 10, 3, 231, 232, 24, 192, 13, 10, 3, 231, 227, 207, 16, 214, 12,
- 237, 94, 10, 3, 231, 128, 24, 68, 10, 3, 231, 19, 24, 231, 19, 238, 176,
- 231, 18, 10, 3, 230, 185, 24, 223, 227, 230, 162, 10, 3, 230, 176, 102,
- 231, 19, 24, 200, 141, 10, 3, 230, 113, 200, 20, 230, 162, 10, 3, 229,
- 179, 24, 250, 54, 136, 229, 179, 24, 250, 53, 10, 3, 222, 174, 24, 247,
- 124, 10, 3, 222, 174, 24, 160, 10, 3, 222, 174, 24, 124, 124, 68, 10, 3,
- 222, 174, 24, 197, 27, 10, 3, 220, 164, 24, 191, 253, 136, 191, 252, 10,
- 3, 220, 152, 10, 3, 220, 150, 10, 3, 220, 149, 10, 3, 220, 148, 10, 3,
- 220, 147, 10, 3, 220, 146, 10, 3, 220, 145, 10, 3, 220, 144, 136, 220,
- 144, 230, 162, 10, 3, 220, 143, 10, 3, 220, 142, 136, 220, 141, 10, 3,
- 220, 140, 10, 3, 220, 139, 10, 3, 220, 138, 10, 3, 220, 137, 10, 3, 220,
- 136, 10, 3, 220, 135, 10, 3, 220, 134, 10, 3, 220, 133, 10, 3, 220, 132,
- 10, 3, 220, 131, 10, 3, 220, 130, 10, 3, 220, 129, 10, 3, 220, 128, 10,
- 3, 220, 127, 10, 3, 220, 126, 10, 3, 220, 125, 10, 3, 220, 124, 10, 3,
- 220, 123, 10, 3, 220, 121, 10, 3, 220, 122, 24, 230, 186, 10, 3, 220,
- 122, 24, 223, 226, 10, 3, 220, 122, 24, 210, 254, 102, 219, 33, 10, 3,
- 220, 122, 24, 210, 254, 102, 210, 254, 102, 219, 33, 10, 3, 220, 122, 24,
- 197, 121, 102, 249, 3, 10, 3, 220, 120, 10, 3, 220, 119, 10, 3, 220, 118,
- 10, 3, 220, 117, 10, 3, 220, 116, 10, 3, 220, 115, 10, 3, 220, 114, 10,
- 3, 220, 113, 10, 3, 220, 112, 10, 3, 220, 111, 10, 3, 220, 109, 10, 3,
- 220, 110, 24, 250, 53, 10, 3, 220, 110, 24, 248, 241, 10, 3, 220, 110,
- 24, 235, 48, 230, 163, 230, 162, 10, 3, 220, 110, 24, 221, 24, 10, 3,
- 220, 110, 24, 177, 10, 3, 220, 110, 24, 200, 112, 10, 3, 220, 110, 24,
- 200, 79, 10, 3, 220, 110, 24, 197, 120, 10, 3, 220, 110, 24, 197, 109,
- 10, 3, 220, 110, 24, 197, 14, 10, 3, 220, 108, 10, 3, 220, 106, 10, 3,
- 220, 107, 24, 235, 60, 10, 3, 220, 107, 24, 231, 233, 10, 3, 220, 107,
- 24, 223, 226, 10, 3, 220, 107, 24, 223, 227, 230, 162, 10, 3, 220, 107,
- 24, 214, 60, 10, 3, 220, 107, 24, 210, 254, 102, 210, 254, 102, 219, 33,
- 10, 3, 220, 107, 24, 203, 253, 102, 221, 204, 10, 3, 220, 107, 24, 197,
- 109, 10, 3, 220, 107, 24, 197, 14, 10, 3, 220, 104, 10, 3, 220, 103, 10,
- 3, 219, 35, 230, 163, 24, 250, 53, 10, 3, 219, 35, 24, 236, 194, 10, 3,
- 219, 35, 24, 230, 81, 10, 3, 219, 35, 24, 210, 253, 10, 3, 219, 35, 24,
- 210, 254, 102, 210, 254, 102, 219, 33, 10, 3, 219, 35, 24, 200, 141, 10,
- 3, 216, 176, 102, 192, 111, 10, 3, 215, 190, 136, 215, 190, 24, 231, 233,
- 10, 3, 215, 190, 136, 215, 190, 24, 222, 129, 10, 3, 214, 18, 24, 236,
- 228, 230, 162, 10, 3, 214, 18, 24, 231, 18, 10, 3, 214, 18, 24, 230, 167,
- 10, 3, 214, 18, 24, 229, 178, 10, 3, 214, 18, 24, 222, 21, 10, 3, 214,
- 18, 24, 220, 147, 10, 3, 214, 18, 24, 217, 110, 10, 3, 214, 18, 24, 210,
- 254, 102, 210, 253, 10, 3, 214, 18, 24, 68, 10, 3, 214, 18, 24, 124, 102,
- 68, 10, 3, 214, 18, 24, 197, 14, 10, 3, 206, 80, 230, 163, 24, 144, 10,
- 3, 206, 80, 24, 234, 88, 10, 3, 206, 80, 24, 204, 13, 250, 27, 220, 28,
- 10, 3, 206, 80, 24, 200, 141, 10, 3, 204, 61, 200, 19, 10, 3, 204, 13,
- 136, 204, 12, 10, 3, 204, 13, 102, 228, 173, 10, 3, 204, 13, 102, 215,
- 64, 10, 3, 204, 13, 102, 206, 25, 10, 3, 203, 163, 102, 235, 57, 24, 214,
- 60, 10, 3, 203, 163, 102, 234, 201, 24, 250, 224, 10, 3, 203, 126, 24,
- 200, 141, 10, 3, 200, 142, 102, 206, 79, 10, 3, 198, 28, 24, 231, 202,
- 200, 19, 10, 3, 198, 28, 24, 112, 236, 194, 10, 3, 197, 26, 223, 120, 10,
- 3, 197, 26, 24, 197, 109, 10, 3, 197, 17, 24, 237, 194, 10, 3, 197, 17,
- 24, 220, 105, 10, 3, 197, 17, 24, 219, 33, 10, 3, 192, 111, 10, 3, 191,
- 253, 136, 191, 253, 102, 206, 25, 10, 3, 191, 251, 24, 112, 236, 195,
- 200, 19, 14, 7, 255, 26, 14, 7, 255, 25, 14, 7, 255, 24, 14, 7, 255, 23,
- 14, 7, 255, 22, 14, 7, 255, 21, 14, 7, 255, 20, 14, 7, 255, 19, 14, 7,
- 255, 18, 14, 7, 255, 17, 14, 7, 255, 16, 14, 7, 255, 15, 14, 7, 255, 14,
- 14, 7, 255, 12, 14, 7, 255, 11, 14, 7, 255, 10, 14, 7, 255, 9, 14, 7,
- 255, 8, 14, 7, 255, 7, 14, 7, 255, 6, 14, 7, 255, 5, 14, 7, 255, 4, 14,
- 7, 255, 3, 14, 7, 255, 2, 14, 7, 255, 1, 14, 7, 255, 0, 14, 7, 254, 255,
- 14, 7, 254, 254, 14, 7, 254, 253, 14, 7, 254, 252, 14, 7, 254, 251, 14,
- 7, 254, 249, 14, 7, 254, 248, 14, 7, 254, 246, 14, 7, 254, 245, 14, 7,
- 254, 244, 14, 7, 254, 243, 14, 7, 254, 242, 14, 7, 254, 241, 14, 7, 254,
- 240, 14, 7, 254, 239, 14, 7, 254, 238, 14, 7, 254, 237, 14, 7, 254, 236,
- 14, 7, 254, 235, 14, 7, 254, 233, 14, 7, 254, 232, 14, 7, 254, 231, 14,
- 7, 254, 229, 14, 7, 254, 228, 14, 7, 254, 227, 14, 7, 254, 226, 14, 7,
- 254, 225, 14, 7, 254, 224, 14, 7, 254, 223, 14, 7, 254, 222, 14, 7, 254,
- 219, 14, 7, 254, 218, 14, 7, 254, 217, 14, 7, 254, 216, 14, 7, 254, 215,
- 14, 7, 254, 214, 14, 7, 254, 213, 14, 7, 254, 212, 14, 7, 254, 211, 14,
- 7, 254, 210, 14, 7, 254, 209, 14, 7, 254, 208, 14, 7, 254, 207, 14, 7,
- 254, 206, 14, 7, 254, 205, 14, 7, 254, 204, 14, 7, 254, 203, 14, 7, 254,
- 202, 14, 7, 254, 201, 14, 7, 254, 200, 14, 7, 254, 196, 14, 7, 254, 195,
- 14, 7, 254, 194, 14, 7, 254, 193, 14, 7, 249, 224, 14, 7, 249, 222, 14,
- 7, 249, 220, 14, 7, 249, 218, 14, 7, 249, 216, 14, 7, 249, 215, 14, 7,
- 249, 213, 14, 7, 249, 211, 14, 7, 249, 209, 14, 7, 249, 207, 14, 7, 247,
- 48, 14, 7, 247, 47, 14, 7, 247, 46, 14, 7, 247, 45, 14, 7, 247, 44, 14,
- 7, 247, 43, 14, 7, 247, 42, 14, 7, 247, 41, 14, 7, 247, 40, 14, 7, 247,
- 39, 14, 7, 247, 38, 14, 7, 247, 37, 14, 7, 247, 36, 14, 7, 247, 35, 14,
- 7, 247, 34, 14, 7, 247, 33, 14, 7, 247, 32, 14, 7, 247, 31, 14, 7, 247,
- 30, 14, 7, 247, 29, 14, 7, 247, 28, 14, 7, 247, 27, 14, 7, 247, 26, 14,
- 7, 247, 25, 14, 7, 247, 24, 14, 7, 247, 23, 14, 7, 247, 22, 14, 7, 247,
- 21, 14, 7, 238, 94, 14, 7, 238, 93, 14, 7, 238, 92, 14, 7, 238, 91, 14,
- 7, 238, 90, 14, 7, 238, 89, 14, 7, 238, 88, 14, 7, 238, 87, 14, 7, 238,
- 86, 14, 7, 238, 85, 14, 7, 238, 84, 14, 7, 238, 83, 14, 7, 238, 82, 14,
- 7, 238, 81, 14, 7, 238, 80, 14, 7, 238, 79, 14, 7, 238, 78, 14, 7, 238,
- 77, 14, 7, 238, 76, 14, 7, 238, 75, 14, 7, 238, 74, 14, 7, 238, 73, 14,
- 7, 238, 72, 14, 7, 238, 71, 14, 7, 238, 70, 14, 7, 238, 69, 14, 7, 238,
- 68, 14, 7, 238, 67, 14, 7, 238, 66, 14, 7, 238, 65, 14, 7, 238, 64, 14,
- 7, 238, 63, 14, 7, 238, 62, 14, 7, 238, 61, 14, 7, 238, 60, 14, 7, 238,
- 59, 14, 7, 238, 58, 14, 7, 238, 57, 14, 7, 238, 56, 14, 7, 238, 55, 14,
- 7, 238, 54, 14, 7, 238, 53, 14, 7, 238, 52, 14, 7, 238, 51, 14, 7, 238,
- 50, 14, 7, 238, 49, 14, 7, 238, 48, 14, 7, 238, 47, 14, 7, 238, 46, 14,
- 7, 238, 45, 14, 7, 238, 44, 14, 7, 238, 43, 14, 7, 238, 42, 14, 7, 238,
- 41, 14, 7, 238, 40, 14, 7, 238, 39, 14, 7, 238, 38, 14, 7, 238, 37, 14,
- 7, 238, 36, 14, 7, 238, 35, 14, 7, 238, 34, 14, 7, 238, 33, 14, 7, 238,
- 32, 14, 7, 238, 31, 14, 7, 238, 30, 14, 7, 238, 29, 14, 7, 238, 28, 14,
- 7, 238, 27, 14, 7, 238, 26, 14, 7, 238, 25, 14, 7, 238, 24, 14, 7, 238,
- 23, 14, 7, 238, 22, 14, 7, 238, 21, 14, 7, 238, 20, 14, 7, 238, 19, 14,
- 7, 238, 18, 14, 7, 238, 17, 14, 7, 238, 16, 14, 7, 238, 15, 14, 7, 238,
- 14, 14, 7, 238, 13, 14, 7, 238, 12, 14, 7, 238, 11, 14, 7, 238, 10, 14,
- 7, 238, 9, 14, 7, 238, 8, 14, 7, 238, 7, 14, 7, 238, 6, 14, 7, 238, 5,
- 14, 7, 238, 4, 14, 7, 238, 3, 14, 7, 234, 245, 14, 7, 234, 244, 14, 7,
- 234, 243, 14, 7, 234, 242, 14, 7, 234, 241, 14, 7, 234, 240, 14, 7, 234,
- 239, 14, 7, 234, 238, 14, 7, 234, 237, 14, 7, 234, 236, 14, 7, 234, 235,
- 14, 7, 234, 234, 14, 7, 234, 233, 14, 7, 234, 232, 14, 7, 234, 231, 14,
- 7, 234, 230, 14, 7, 234, 229, 14, 7, 234, 228, 14, 7, 234, 227, 14, 7,
- 234, 226, 14, 7, 234, 225, 14, 7, 234, 224, 14, 7, 234, 223, 14, 7, 234,
- 222, 14, 7, 234, 221, 14, 7, 234, 220, 14, 7, 234, 219, 14, 7, 234, 218,
- 14, 7, 234, 217, 14, 7, 234, 216, 14, 7, 234, 215, 14, 7, 234, 214, 14,
- 7, 234, 213, 14, 7, 234, 212, 14, 7, 234, 211, 14, 7, 234, 210, 14, 7,
- 234, 209, 14, 7, 234, 208, 14, 7, 234, 207, 14, 7, 234, 206, 14, 7, 234,
- 205, 14, 7, 234, 204, 14, 7, 234, 203, 14, 7, 234, 202, 14, 7, 233, 162,
- 14, 7, 233, 161, 14, 7, 233, 160, 14, 7, 233, 159, 14, 7, 233, 158, 14,
- 7, 233, 157, 14, 7, 233, 156, 14, 7, 233, 155, 14, 7, 233, 154, 14, 7,
- 233, 153, 14, 7, 233, 152, 14, 7, 233, 151, 14, 7, 233, 150, 14, 7, 233,
- 149, 14, 7, 233, 148, 14, 7, 233, 147, 14, 7, 233, 146, 14, 7, 233, 145,
- 14, 7, 233, 144, 14, 7, 233, 143, 14, 7, 233, 142, 14, 7, 233, 141, 14,
- 7, 233, 140, 14, 7, 233, 139, 14, 7, 233, 138, 14, 7, 233, 137, 14, 7,
- 233, 136, 14, 7, 233, 135, 14, 7, 233, 134, 14, 7, 233, 133, 14, 7, 233,
- 132, 14, 7, 233, 131, 14, 7, 233, 130, 14, 7, 233, 129, 14, 7, 233, 128,
- 14, 7, 233, 127, 14, 7, 233, 126, 14, 7, 233, 125, 14, 7, 233, 124, 14,
- 7, 233, 123, 14, 7, 233, 122, 14, 7, 233, 121, 14, 7, 233, 120, 14, 7,
- 233, 119, 14, 7, 233, 118, 14, 7, 233, 117, 14, 7, 233, 116, 14, 7, 233,
- 115, 14, 7, 233, 114, 14, 7, 233, 113, 14, 7, 233, 112, 14, 7, 233, 111,
- 14, 7, 233, 110, 14, 7, 233, 109, 14, 7, 233, 108, 14, 7, 233, 107, 14,
- 7, 233, 106, 14, 7, 233, 105, 14, 7, 233, 104, 14, 7, 233, 103, 14, 7,
- 233, 102, 14, 7, 233, 101, 14, 7, 233, 100, 14, 7, 233, 99, 14, 7, 233,
- 98, 14, 7, 232, 43, 14, 7, 232, 42, 14, 7, 232, 41, 14, 7, 232, 40, 14,
- 7, 232, 39, 14, 7, 232, 38, 14, 7, 232, 37, 14, 7, 232, 36, 14, 7, 232,
- 35, 14, 7, 232, 34, 14, 7, 232, 33, 14, 7, 232, 32, 14, 7, 232, 31, 14,
- 7, 232, 30, 14, 7, 232, 29, 14, 7, 232, 28, 14, 7, 232, 27, 14, 7, 232,
- 26, 14, 7, 232, 25, 14, 7, 232, 24, 14, 7, 232, 23, 14, 7, 232, 22, 14,
- 7, 232, 21, 14, 7, 232, 20, 14, 7, 232, 19, 14, 7, 232, 18, 14, 7, 232,
- 17, 14, 7, 232, 16, 14, 7, 232, 15, 14, 7, 232, 14, 14, 7, 232, 13, 14,
- 7, 232, 12, 14, 7, 232, 11, 14, 7, 232, 10, 14, 7, 232, 9, 14, 7, 232, 8,
- 14, 7, 232, 7, 14, 7, 232, 6, 14, 7, 232, 5, 14, 7, 232, 4, 14, 7, 232,
- 3, 14, 7, 232, 2, 14, 7, 232, 1, 14, 7, 232, 0, 14, 7, 231, 255, 14, 7,
- 231, 254, 14, 7, 231, 253, 14, 7, 231, 252, 14, 7, 231, 251, 14, 7, 231,
- 250, 14, 7, 231, 249, 14, 7, 231, 248, 14, 7, 231, 247, 14, 7, 231, 246,
- 14, 7, 231, 245, 14, 7, 231, 244, 14, 7, 231, 243, 14, 7, 231, 242, 14,
- 7, 231, 241, 14, 7, 231, 240, 14, 7, 231, 239, 14, 7, 231, 238, 14, 7,
- 231, 237, 14, 7, 231, 236, 14, 7, 230, 122, 14, 7, 230, 121, 14, 7, 230,
- 120, 14, 7, 230, 119, 14, 7, 230, 118, 14, 7, 230, 117, 14, 7, 230, 116,
- 14, 7, 230, 115, 14, 7, 230, 114, 14, 7, 228, 77, 14, 7, 228, 76, 14, 7,
- 228, 75, 14, 7, 228, 74, 14, 7, 228, 73, 14, 7, 228, 72, 14, 7, 228, 71,
- 14, 7, 228, 70, 14, 7, 228, 69, 14, 7, 228, 68, 14, 7, 228, 67, 14, 7,
- 228, 66, 14, 7, 228, 65, 14, 7, 228, 64, 14, 7, 228, 63, 14, 7, 228, 62,
- 14, 7, 228, 61, 14, 7, 228, 60, 14, 7, 228, 59, 14, 7, 222, 183, 14, 7,
- 222, 182, 14, 7, 222, 181, 14, 7, 222, 180, 14, 7, 222, 179, 14, 7, 222,
- 178, 14, 7, 222, 177, 14, 7, 222, 176, 14, 7, 220, 199, 14, 7, 220, 198,
- 14, 7, 220, 197, 14, 7, 220, 196, 14, 7, 220, 195, 14, 7, 220, 194, 14,
- 7, 220, 193, 14, 7, 220, 192, 14, 7, 220, 191, 14, 7, 220, 190, 14, 7,
- 218, 234, 14, 7, 218, 233, 14, 7, 218, 232, 14, 7, 218, 230, 14, 7, 218,
- 228, 14, 7, 218, 227, 14, 7, 218, 225, 14, 7, 218, 223, 14, 7, 218, 221,
- 14, 7, 218, 219, 14, 7, 218, 217, 14, 7, 218, 215, 14, 7, 218, 213, 14,
- 7, 218, 212, 14, 7, 218, 210, 14, 7, 218, 208, 14, 7, 218, 207, 14, 7,
- 218, 206, 14, 7, 218, 205, 14, 7, 218, 204, 14, 7, 218, 203, 14, 7, 218,
- 202, 14, 7, 218, 201, 14, 7, 218, 200, 14, 7, 218, 198, 14, 7, 218, 196,
- 14, 7, 218, 194, 14, 7, 218, 193, 14, 7, 218, 191, 14, 7, 218, 190, 14,
- 7, 218, 188, 14, 7, 218, 187, 14, 7, 218, 185, 14, 7, 218, 183, 14, 7,
- 218, 181, 14, 7, 218, 179, 14, 7, 218, 177, 14, 7, 218, 176, 14, 7, 218,
- 174, 14, 7, 218, 172, 14, 7, 218, 171, 14, 7, 218, 169, 14, 7, 218, 167,
- 14, 7, 218, 165, 14, 7, 218, 163, 14, 7, 218, 162, 14, 7, 218, 160, 14,
- 7, 218, 158, 14, 7, 218, 156, 14, 7, 218, 155, 14, 7, 218, 153, 14, 7,
- 218, 151, 14, 7, 218, 150, 14, 7, 218, 149, 14, 7, 218, 147, 14, 7, 218,
- 145, 14, 7, 218, 143, 14, 7, 218, 141, 14, 7, 218, 139, 14, 7, 218, 137,
- 14, 7, 218, 135, 14, 7, 218, 134, 14, 7, 218, 132, 14, 7, 218, 130, 14,
- 7, 218, 128, 14, 7, 218, 126, 14, 7, 215, 146, 14, 7, 215, 145, 14, 7,
- 215, 144, 14, 7, 215, 143, 14, 7, 215, 142, 14, 7, 215, 141, 14, 7, 215,
- 140, 14, 7, 215, 139, 14, 7, 215, 138, 14, 7, 215, 137, 14, 7, 215, 136,
- 14, 7, 215, 135, 14, 7, 215, 134, 14, 7, 215, 133, 14, 7, 215, 132, 14,
- 7, 215, 131, 14, 7, 215, 130, 14, 7, 215, 129, 14, 7, 215, 128, 14, 7,
- 215, 127, 14, 7, 215, 126, 14, 7, 215, 125, 14, 7, 215, 124, 14, 7, 215,
- 123, 14, 7, 215, 122, 14, 7, 215, 121, 14, 7, 215, 120, 14, 7, 215, 119,
- 14, 7, 215, 118, 14, 7, 215, 117, 14, 7, 215, 116, 14, 7, 215, 115, 14,
- 7, 215, 114, 14, 7, 215, 113, 14, 7, 215, 112, 14, 7, 215, 111, 14, 7,
- 215, 110, 14, 7, 215, 109, 14, 7, 215, 108, 14, 7, 215, 107, 14, 7, 215,
- 106, 14, 7, 215, 105, 14, 7, 215, 104, 14, 7, 215, 103, 14, 7, 215, 102,
- 14, 7, 215, 101, 14, 7, 215, 100, 14, 7, 215, 99, 14, 7, 215, 98, 14, 7,
- 213, 203, 14, 7, 213, 202, 14, 7, 213, 201, 14, 7, 213, 200, 14, 7, 213,
- 199, 14, 7, 213, 198, 14, 7, 213, 197, 14, 7, 213, 196, 14, 7, 213, 195,
- 14, 7, 213, 194, 14, 7, 213, 193, 14, 7, 213, 192, 14, 7, 213, 191, 14,
- 7, 213, 190, 14, 7, 213, 189, 14, 7, 213, 188, 14, 7, 213, 187, 14, 7,
- 213, 186, 14, 7, 213, 185, 14, 7, 213, 184, 14, 7, 213, 183, 14, 7, 213,
- 182, 14, 7, 213, 18, 14, 7, 213, 17, 14, 7, 213, 16, 14, 7, 213, 15, 14,
- 7, 213, 14, 14, 7, 213, 13, 14, 7, 213, 12, 14, 7, 213, 11, 14, 7, 213,
- 10, 14, 7, 213, 9, 14, 7, 213, 8, 14, 7, 213, 7, 14, 7, 213, 6, 14, 7,
- 213, 5, 14, 7, 213, 4, 14, 7, 213, 3, 14, 7, 213, 2, 14, 7, 213, 1, 14,
- 7, 213, 0, 14, 7, 212, 255, 14, 7, 212, 254, 14, 7, 212, 253, 14, 7, 212,
- 252, 14, 7, 212, 251, 14, 7, 212, 250, 14, 7, 212, 249, 14, 7, 212, 102,
- 14, 7, 212, 101, 14, 7, 212, 100, 14, 7, 212, 99, 14, 7, 212, 98, 14, 7,
- 212, 97, 14, 7, 212, 96, 14, 7, 212, 95, 14, 7, 212, 94, 14, 7, 212, 93,
- 14, 7, 212, 92, 14, 7, 212, 91, 14, 7, 212, 90, 14, 7, 212, 89, 14, 7,
- 212, 88, 14, 7, 212, 87, 14, 7, 212, 86, 14, 7, 212, 85, 14, 7, 212, 84,
- 14, 7, 212, 83, 14, 7, 212, 82, 14, 7, 212, 81, 14, 7, 212, 80, 14, 7,
- 212, 79, 14, 7, 212, 78, 14, 7, 212, 77, 14, 7, 212, 76, 14, 7, 212, 75,
- 14, 7, 212, 74, 14, 7, 212, 73, 14, 7, 212, 72, 14, 7, 212, 71, 14, 7,
- 212, 70, 14, 7, 212, 69, 14, 7, 212, 68, 14, 7, 212, 67, 14, 7, 212, 66,
- 14, 7, 212, 65, 14, 7, 212, 64, 14, 7, 212, 63, 14, 7, 212, 62, 14, 7,
- 212, 61, 14, 7, 212, 60, 14, 7, 212, 59, 14, 7, 212, 58, 14, 7, 212, 57,
- 14, 7, 212, 56, 14, 7, 212, 55, 14, 7, 212, 54, 14, 7, 212, 53, 14, 7,
- 212, 52, 14, 7, 212, 51, 14, 7, 212, 50, 14, 7, 212, 49, 14, 7, 212, 48,
- 14, 7, 212, 47, 14, 7, 212, 46, 14, 7, 212, 45, 14, 7, 212, 44, 14, 7,
- 212, 43, 14, 7, 212, 42, 14, 7, 212, 41, 14, 7, 212, 40, 14, 7, 212, 39,
- 14, 7, 212, 38, 14, 7, 212, 37, 14, 7, 212, 36, 14, 7, 212, 35, 14, 7,
- 212, 34, 14, 7, 212, 33, 14, 7, 212, 32, 14, 7, 212, 31, 14, 7, 212, 30,
- 14, 7, 212, 29, 14, 7, 212, 28, 14, 7, 211, 92, 14, 7, 211, 91, 14, 7,
- 211, 90, 14, 7, 211, 89, 14, 7, 211, 88, 14, 7, 211, 87, 14, 7, 211, 86,
- 14, 7, 211, 85, 14, 7, 211, 84, 14, 7, 211, 83, 14, 7, 211, 82, 14, 7,
- 211, 81, 14, 7, 211, 80, 14, 7, 208, 246, 14, 7, 208, 245, 14, 7, 208,
- 244, 14, 7, 208, 243, 14, 7, 208, 242, 14, 7, 208, 241, 14, 7, 208, 240,
- 14, 7, 208, 110, 14, 7, 208, 109, 14, 7, 208, 108, 14, 7, 208, 107, 14,
- 7, 208, 106, 14, 7, 208, 105, 14, 7, 208, 104, 14, 7, 208, 103, 14, 7,
- 208, 102, 14, 7, 208, 101, 14, 7, 208, 100, 14, 7, 208, 99, 14, 7, 208,
- 98, 14, 7, 208, 97, 14, 7, 208, 96, 14, 7, 208, 95, 14, 7, 208, 94, 14,
- 7, 208, 93, 14, 7, 208, 92, 14, 7, 208, 91, 14, 7, 208, 90, 14, 7, 208,
- 89, 14, 7, 208, 88, 14, 7, 208, 87, 14, 7, 208, 86, 14, 7, 208, 85, 14,
- 7, 208, 84, 14, 7, 208, 83, 14, 7, 208, 82, 14, 7, 208, 81, 14, 7, 208,
- 80, 14, 7, 208, 79, 14, 7, 208, 78, 14, 7, 208, 77, 14, 7, 206, 155, 14,
- 7, 206, 154, 14, 7, 206, 153, 14, 7, 206, 152, 14, 7, 206, 151, 14, 7,
- 206, 150, 14, 7, 206, 149, 14, 7, 206, 148, 14, 7, 206, 147, 14, 7, 206,
- 146, 14, 7, 206, 145, 14, 7, 206, 144, 14, 7, 206, 143, 14, 7, 206, 142,
- 14, 7, 206, 141, 14, 7, 206, 140, 14, 7, 206, 139, 14, 7, 206, 138, 14,
- 7, 206, 137, 14, 7, 206, 136, 14, 7, 206, 135, 14, 7, 206, 134, 14, 7,
- 206, 133, 14, 7, 206, 132, 14, 7, 206, 131, 14, 7, 206, 130, 14, 7, 206,
- 129, 14, 7, 206, 128, 14, 7, 206, 127, 14, 7, 206, 126, 14, 7, 206, 125,
- 14, 7, 206, 124, 14, 7, 206, 123, 14, 7, 206, 122, 14, 7, 206, 121, 14,
- 7, 206, 120, 14, 7, 206, 119, 14, 7, 206, 118, 14, 7, 206, 117, 14, 7,
- 206, 116, 14, 7, 206, 115, 14, 7, 206, 114, 14, 7, 206, 113, 14, 7, 206,
- 112, 14, 7, 206, 111, 14, 7, 206, 110, 14, 7, 206, 109, 14, 7, 206, 108,
- 14, 7, 206, 107, 14, 7, 206, 106, 14, 7, 206, 105, 14, 7, 206, 104, 14,
- 7, 206, 103, 14, 7, 206, 102, 14, 7, 200, 225, 14, 7, 200, 224, 14, 7,
- 200, 223, 14, 7, 200, 222, 14, 7, 200, 221, 14, 7, 200, 220, 14, 7, 200,
- 219, 14, 7, 200, 218, 14, 7, 200, 217, 14, 7, 200, 216, 14, 7, 200, 215,
- 14, 7, 200, 214, 14, 7, 200, 213, 14, 7, 200, 212, 14, 7, 200, 211, 14,
- 7, 200, 210, 14, 7, 200, 209, 14, 7, 200, 208, 14, 7, 200, 207, 14, 7,
- 200, 206, 14, 7, 200, 205, 14, 7, 200, 204, 14, 7, 200, 203, 14, 7, 200,
- 202, 14, 7, 200, 201, 14, 7, 200, 200, 14, 7, 200, 199, 14, 7, 200, 198,
- 14, 7, 200, 197, 14, 7, 200, 196, 14, 7, 200, 195, 14, 7, 200, 194, 14,
- 7, 200, 193, 14, 7, 200, 192, 14, 7, 200, 191, 14, 7, 200, 190, 14, 7,
- 200, 189, 14, 7, 200, 188, 14, 7, 200, 187, 14, 7, 200, 186, 14, 7, 200,
- 185, 14, 7, 200, 184, 14, 7, 200, 183, 14, 7, 200, 182, 14, 7, 197, 168,
- 14, 7, 197, 167, 14, 7, 197, 166, 14, 7, 197, 165, 14, 7, 197, 164, 14,
- 7, 197, 163, 14, 7, 197, 162, 14, 7, 197, 161, 14, 7, 197, 160, 14, 7,
- 197, 159, 14, 7, 197, 158, 14, 7, 197, 157, 14, 7, 197, 156, 14, 7, 197,
- 155, 14, 7, 197, 154, 14, 7, 197, 153, 14, 7, 197, 152, 14, 7, 197, 151,
- 14, 7, 197, 150, 14, 7, 197, 149, 14, 7, 197, 148, 14, 7, 197, 147, 14,
- 7, 197, 146, 14, 7, 197, 145, 14, 7, 197, 144, 14, 7, 197, 143, 14, 7,
- 197, 142, 14, 7, 197, 141, 14, 7, 197, 140, 14, 7, 197, 139, 14, 7, 197,
- 138, 14, 7, 197, 137, 14, 7, 197, 136, 14, 7, 197, 135, 14, 7, 197, 134,
- 14, 7, 197, 133, 14, 7, 197, 132, 14, 7, 197, 131, 14, 7, 197, 130, 14,
- 7, 197, 129, 14, 7, 197, 128, 14, 7, 197, 127, 14, 7, 197, 126, 14, 7,
- 197, 125, 14, 7, 197, 124, 14, 7, 197, 123, 14, 7, 197, 122, 14, 7, 196,
- 235, 14, 7, 196, 234, 14, 7, 196, 233, 14, 7, 196, 232, 14, 7, 196, 231,
- 14, 7, 196, 230, 14, 7, 196, 229, 14, 7, 196, 228, 14, 7, 196, 227, 14,
- 7, 196, 226, 14, 7, 196, 225, 14, 7, 196, 224, 14, 7, 196, 223, 14, 7,
- 196, 222, 14, 7, 196, 221, 14, 7, 196, 220, 14, 7, 196, 219, 14, 7, 196,
- 218, 14, 7, 196, 217, 14, 7, 196, 216, 14, 7, 196, 215, 14, 7, 196, 214,
- 14, 7, 196, 213, 14, 7, 196, 212, 14, 7, 196, 211, 14, 7, 196, 210, 14,
- 7, 196, 209, 14, 7, 196, 208, 14, 7, 196, 207, 14, 7, 196, 206, 14, 7,
- 196, 205, 14, 7, 196, 204, 14, 7, 196, 203, 14, 7, 196, 202, 14, 7, 196,
- 201, 14, 7, 196, 200, 14, 7, 196, 199, 14, 7, 196, 198, 14, 7, 196, 197,
- 14, 7, 196, 196, 14, 7, 196, 195, 14, 7, 196, 194, 14, 7, 196, 193, 14,
- 7, 196, 192, 14, 7, 196, 191, 14, 7, 196, 190, 14, 7, 196, 189, 14, 7,
- 196, 188, 14, 7, 196, 187, 14, 7, 196, 186, 14, 7, 196, 185, 14, 7, 196,
- 184, 14, 7, 196, 183, 14, 7, 196, 182, 14, 7, 196, 181, 14, 7, 196, 180,
- 14, 7, 196, 179, 14, 7, 196, 178, 14, 7, 196, 177, 14, 7, 196, 176, 14,
- 7, 196, 175, 14, 7, 196, 174, 14, 7, 196, 173, 14, 7, 196, 172, 14, 7,
- 196, 171, 14, 7, 196, 170, 14, 7, 196, 169, 14, 7, 196, 168, 14, 7, 196,
- 167, 14, 7, 196, 166, 14, 7, 196, 165, 14, 7, 196, 164, 14, 7, 196, 163,
- 14, 7, 196, 162, 14, 7, 196, 161, 14, 7, 196, 160, 14, 7, 196, 159, 14,
- 7, 194, 201, 14, 7, 194, 200, 14, 7, 194, 199, 14, 7, 194, 198, 14, 7,
- 194, 197, 14, 7, 194, 196, 14, 7, 194, 195, 14, 7, 194, 194, 14, 7, 194,
- 193, 14, 7, 194, 192, 14, 7, 194, 191, 14, 7, 194, 190, 14, 7, 194, 189,
- 14, 7, 194, 188, 14, 7, 194, 187, 14, 7, 194, 186, 14, 7, 194, 185, 14,
- 7, 194, 184, 14, 7, 194, 183, 14, 7, 194, 182, 14, 7, 194, 181, 14, 7,
- 194, 180, 14, 7, 194, 179, 14, 7, 194, 178, 14, 7, 194, 177, 14, 7, 194,
- 176, 14, 7, 194, 175, 14, 7, 194, 174, 14, 7, 194, 173, 14, 7, 194, 172,
- 14, 7, 194, 171, 14, 7, 194, 170, 14, 7, 193, 221, 14, 7, 193, 220, 14,
- 7, 193, 219, 14, 7, 193, 218, 14, 7, 193, 217, 14, 7, 193, 216, 14, 7,
- 193, 215, 14, 7, 193, 214, 14, 7, 193, 213, 14, 7, 193, 212, 14, 7, 193,
- 211, 14, 7, 193, 210, 14, 7, 193, 146, 14, 7, 193, 145, 14, 7, 193, 144,
- 14, 7, 193, 143, 14, 7, 193, 142, 14, 7, 193, 141, 14, 7, 193, 140, 14,
- 7, 193, 139, 14, 7, 193, 138, 14, 7, 192, 154, 14, 7, 192, 153, 14, 7,
- 192, 152, 14, 7, 192, 151, 14, 7, 192, 150, 14, 7, 192, 149, 14, 7, 192,
- 148, 14, 7, 192, 147, 14, 7, 192, 146, 14, 7, 192, 145, 14, 7, 192, 144,
- 14, 7, 192, 143, 14, 7, 192, 142, 14, 7, 192, 141, 14, 7, 192, 140, 14,
- 7, 192, 139, 14, 7, 192, 138, 14, 7, 192, 137, 14, 7, 192, 136, 14, 7,
- 192, 135, 14, 7, 192, 134, 14, 7, 192, 133, 14, 7, 192, 132, 14, 7, 192,
- 131, 14, 7, 192, 130, 14, 7, 192, 129, 14, 7, 192, 128, 14, 7, 192, 127,
- 14, 7, 192, 126, 14, 7, 192, 125, 14, 7, 192, 124, 14, 7, 192, 123, 14,
- 7, 192, 122, 14, 7, 192, 121, 14, 7, 192, 120, 14, 7, 192, 119, 14, 7,
- 192, 118, 14, 7, 192, 117, 14, 7, 192, 116, 14, 7, 192, 115, 14, 7, 192,
- 114, 14, 7, 252, 32, 14, 7, 252, 31, 14, 7, 252, 30, 14, 7, 252, 29, 14,
- 7, 252, 28, 14, 7, 252, 27, 14, 7, 252, 26, 14, 7, 252, 25, 14, 7, 252,
- 24, 14, 7, 252, 23, 14, 7, 252, 22, 14, 7, 252, 21, 14, 7, 252, 20, 14,
- 7, 252, 19, 14, 7, 252, 18, 14, 7, 252, 17, 14, 7, 252, 16, 14, 7, 252,
- 15, 14, 7, 252, 14, 14, 7, 252, 13, 14, 7, 252, 12, 14, 7, 252, 11, 14,
- 7, 252, 10, 14, 7, 252, 9, 14, 7, 252, 8, 14, 7, 252, 7, 14, 7, 252, 6,
- 14, 7, 252, 5, 14, 7, 252, 4, 14, 7, 252, 3, 14, 7, 252, 2, 14, 7, 252,
- 1, 14, 7, 252, 0, 14, 7, 251, 255, 14, 7, 84, 222, 228, 14, 7, 229, 5,
- 222, 228, 14, 7, 223, 148, 250, 27, 198, 249, 202, 14, 14, 7, 223, 148,
- 250, 27, 247, 188, 202, 14, 14, 7, 223, 148, 250, 27, 198, 249, 234, 79,
- 14, 7, 223, 148, 250, 27, 247, 188, 234, 79, 14, 7, 211, 111, 216, 160,
- 14, 7, 248, 100, 205, 198, 14, 7, 234, 80, 205, 198, 29, 7, 255, 26, 29,
- 7, 255, 25, 29, 7, 255, 24, 29, 7, 255, 23, 29, 7, 255, 22, 29, 7, 255,
- 20, 29, 7, 255, 17, 29, 7, 255, 16, 29, 7, 255, 15, 29, 7, 255, 14, 29,
- 7, 255, 13, 29, 7, 255, 12, 29, 7, 255, 11, 29, 7, 255, 10, 29, 7, 255,
- 9, 29, 7, 255, 7, 29, 7, 255, 6, 29, 7, 255, 5, 29, 7, 255, 3, 29, 7,
- 255, 2, 29, 7, 255, 1, 29, 7, 255, 0, 29, 7, 254, 255, 29, 7, 254, 254,
- 29, 7, 254, 253, 29, 7, 254, 252, 29, 7, 254, 251, 29, 7, 254, 250, 29,
- 7, 254, 249, 29, 7, 254, 248, 29, 7, 254, 246, 29, 7, 254, 245, 29, 7,
- 254, 244, 29, 7, 254, 243, 29, 7, 254, 241, 29, 7, 254, 240, 29, 7, 254,
- 239, 29, 7, 254, 238, 29, 7, 254, 237, 29, 7, 254, 236, 29, 7, 254, 235,
- 29, 7, 254, 234, 29, 7, 254, 233, 29, 7, 254, 231, 29, 7, 254, 230, 29,
- 7, 254, 229, 29, 7, 254, 227, 29, 7, 254, 225, 29, 7, 254, 224, 29, 7,
- 254, 223, 29, 7, 254, 222, 29, 7, 254, 221, 29, 7, 254, 220, 29, 7, 254,
- 219, 29, 7, 254, 218, 29, 7, 254, 217, 29, 7, 254, 216, 29, 7, 254, 215,
- 29, 7, 254, 214, 29, 7, 254, 213, 29, 7, 254, 212, 29, 7, 254, 211, 29,
- 7, 254, 210, 29, 7, 254, 209, 29, 7, 254, 208, 29, 7, 254, 207, 29, 7,
- 254, 206, 29, 7, 254, 205, 29, 7, 254, 204, 29, 7, 254, 203, 29, 7, 254,
- 202, 29, 7, 254, 201, 29, 7, 254, 200, 29, 7, 254, 199, 29, 7, 254, 198,
- 29, 7, 254, 197, 29, 7, 254, 196, 29, 7, 254, 195, 29, 7, 254, 194, 29,
- 7, 254, 193, 29, 7, 254, 192, 29, 7, 254, 191, 29, 7, 254, 190, 29, 7,
- 254, 189, 29, 7, 254, 188, 29, 7, 254, 187, 29, 7, 254, 186, 29, 7, 254,
- 185, 29, 7, 254, 184, 29, 7, 254, 183, 29, 7, 254, 182, 29, 7, 254, 181,
- 29, 7, 254, 180, 29, 7, 254, 179, 29, 7, 254, 178, 29, 7, 254, 177, 29,
- 7, 254, 176, 29, 7, 254, 175, 29, 7, 254, 174, 29, 7, 254, 173, 29, 7,
- 254, 172, 29, 7, 254, 171, 29, 7, 254, 170, 29, 7, 254, 169, 29, 7, 254,
- 168, 29, 7, 254, 167, 29, 7, 254, 166, 29, 7, 254, 165, 29, 7, 254, 164,
- 29, 7, 254, 163, 29, 7, 254, 162, 29, 7, 254, 161, 29, 7, 254, 159, 29,
- 7, 254, 158, 29, 7, 254, 157, 29, 7, 254, 156, 29, 7, 254, 155, 29, 7,
- 254, 154, 29, 7, 254, 153, 29, 7, 254, 152, 29, 7, 254, 151, 29, 7, 254,
- 150, 29, 7, 254, 149, 29, 7, 254, 148, 29, 7, 254, 147, 29, 7, 254, 146,
- 29, 7, 254, 145, 29, 7, 254, 144, 29, 7, 254, 143, 29, 7, 254, 142, 29,
- 7, 254, 141, 29, 7, 254, 140, 29, 7, 254, 139, 29, 7, 254, 138, 29, 7,
- 254, 137, 29, 7, 254, 136, 29, 7, 254, 135, 29, 7, 254, 134, 29, 7, 254,
- 133, 29, 7, 254, 132, 29, 7, 254, 131, 29, 7, 254, 130, 29, 7, 254, 129,
- 29, 7, 254, 128, 29, 7, 254, 127, 29, 7, 254, 126, 29, 7, 254, 124, 29,
- 7, 254, 123, 29, 7, 254, 122, 29, 7, 254, 121, 29, 7, 254, 120, 29, 7,
- 254, 119, 29, 7, 254, 118, 29, 7, 254, 117, 29, 7, 254, 116, 29, 7, 254,
- 115, 29, 7, 254, 114, 29, 7, 254, 113, 29, 7, 254, 111, 29, 7, 254, 110,
- 29, 7, 254, 109, 29, 7, 254, 108, 29, 7, 254, 107, 29, 7, 254, 106, 29,
- 7, 254, 105, 29, 7, 254, 104, 29, 7, 254, 103, 29, 7, 254, 102, 29, 7,
- 254, 101, 29, 7, 254, 100, 29, 7, 254, 99, 29, 7, 254, 98, 29, 7, 254,
- 97, 29, 7, 254, 96, 29, 7, 254, 95, 29, 7, 254, 94, 29, 7, 254, 93, 29,
- 7, 254, 92, 29, 7, 254, 91, 29, 7, 254, 90, 29, 7, 254, 89, 29, 7, 254,
- 88, 29, 7, 254, 87, 29, 7, 254, 86, 29, 7, 254, 85, 29, 7, 254, 84, 29,
- 7, 254, 83, 29, 7, 254, 82, 29, 7, 254, 81, 29, 7, 254, 80, 29, 7, 254,
- 79, 29, 7, 254, 78, 29, 7, 254, 77, 29, 7, 254, 76, 29, 7, 254, 75, 29,
- 7, 254, 74, 29, 7, 254, 73, 29, 7, 254, 72, 29, 7, 254, 71, 29, 7, 254,
- 70, 29, 7, 254, 69, 29, 7, 254, 68, 29, 7, 254, 67, 29, 7, 254, 66, 29,
- 7, 254, 65, 29, 7, 254, 64, 29, 7, 254, 63, 29, 7, 254, 62, 29, 7, 254,
- 61, 29, 7, 254, 60, 29, 7, 254, 59, 29, 7, 254, 58, 29, 7, 254, 57, 29,
- 7, 254, 56, 29, 7, 254, 55, 29, 7, 254, 54, 29, 7, 254, 53, 29, 7, 254,
- 52, 29, 7, 254, 51, 29, 7, 254, 50, 29, 7, 254, 49, 29, 7, 254, 48, 29,
- 7, 254, 47, 29, 7, 254, 46, 29, 7, 254, 45, 29, 7, 254, 44, 29, 7, 254,
- 43, 29, 7, 254, 41, 29, 7, 254, 40, 29, 7, 254, 39, 29, 7, 254, 38, 29,
- 7, 254, 37, 29, 7, 254, 36, 29, 7, 254, 35, 29, 7, 254, 34, 29, 7, 254,
- 33, 29, 7, 254, 32, 29, 7, 254, 31, 29, 7, 254, 30, 29, 7, 254, 29, 29,
- 7, 254, 28, 29, 7, 254, 27, 29, 7, 254, 26, 29, 7, 254, 25, 29, 7, 254,
- 24, 29, 7, 254, 23, 29, 7, 254, 22, 29, 7, 254, 21, 29, 7, 254, 20, 29,
- 7, 254, 19, 29, 7, 254, 18, 29, 7, 254, 17, 29, 7, 254, 16, 29, 7, 254,
- 15, 29, 7, 254, 14, 29, 7, 254, 13, 29, 7, 254, 12, 29, 7, 254, 11, 29,
- 7, 254, 10, 29, 7, 254, 9, 29, 7, 254, 8, 29, 7, 254, 7, 29, 7, 254, 6,
- 29, 7, 254, 5, 29, 7, 254, 4, 29, 7, 254, 3, 29, 7, 254, 2, 29, 7, 254,
- 1, 29, 7, 254, 0, 29, 7, 253, 255, 29, 7, 253, 254, 29, 7, 253, 253, 29,
- 7, 253, 252, 29, 7, 253, 251, 29, 7, 253, 250, 29, 7, 253, 249, 29, 7,
- 253, 248, 29, 7, 253, 247, 29, 7, 253, 246, 29, 7, 253, 245, 29, 7, 253,
- 244, 29, 7, 253, 243, 29, 7, 253, 242, 29, 7, 253, 241, 29, 7, 253, 240,
- 29, 7, 253, 239, 29, 7, 253, 238, 29, 7, 253, 237, 29, 7, 253, 236, 29,
- 7, 253, 235, 29, 7, 253, 234, 29, 7, 253, 233, 29, 7, 253, 232, 29, 7,
- 253, 231, 29, 7, 253, 230, 29, 7, 253, 229, 29, 7, 253, 228, 29, 7, 253,
- 227, 29, 7, 253, 226, 29, 7, 253, 225, 29, 7, 253, 224, 29, 7, 253, 223,
- 29, 7, 253, 222, 29, 7, 253, 221, 29, 7, 253, 220, 29, 7, 253, 219, 29,
- 7, 253, 218, 29, 7, 253, 217, 29, 7, 253, 216, 29, 7, 253, 215, 29, 7,
- 253, 214, 29, 7, 253, 213, 29, 7, 253, 212, 29, 7, 253, 211, 29, 7, 253,
- 210, 29, 7, 253, 209, 29, 7, 253, 208, 29, 7, 253, 207, 29, 7, 253, 206,
- 29, 7, 253, 205, 29, 7, 253, 204, 29, 7, 253, 203, 29, 7, 253, 202, 29,
- 7, 253, 201, 29, 7, 253, 200, 29, 7, 253, 199, 29, 7, 253, 198, 29, 7,
- 253, 197, 29, 7, 253, 196, 29, 7, 253, 195, 29, 7, 253, 194, 29, 7, 253,
- 193, 29, 7, 253, 192, 29, 7, 253, 191, 29, 7, 253, 190, 29, 7, 253, 189,
- 29, 7, 253, 188, 29, 7, 253, 187, 29, 7, 253, 185, 29, 7, 253, 184, 29,
- 7, 253, 183, 29, 7, 253, 182, 29, 7, 253, 181, 29, 7, 253, 180, 29, 7,
- 253, 179, 29, 7, 253, 178, 29, 7, 253, 177, 29, 7, 253, 176, 29, 7, 253,
- 175, 29, 7, 253, 172, 29, 7, 253, 171, 29, 7, 253, 170, 29, 7, 253, 169,
- 29, 7, 253, 165, 29, 7, 253, 164, 29, 7, 253, 163, 29, 7, 253, 162, 29,
- 7, 253, 161, 29, 7, 253, 160, 29, 7, 253, 159, 29, 7, 253, 158, 29, 7,
- 253, 157, 29, 7, 253, 156, 29, 7, 253, 155, 29, 7, 253, 154, 29, 7, 253,
- 153, 29, 7, 253, 152, 29, 7, 253, 151, 29, 7, 253, 150, 29, 7, 253, 149,
- 29, 7, 253, 148, 29, 7, 253, 147, 29, 7, 253, 145, 29, 7, 253, 144, 29,
- 7, 253, 143, 29, 7, 253, 142, 29, 7, 253, 141, 29, 7, 253, 140, 29, 7,
- 253, 139, 29, 7, 253, 138, 29, 7, 253, 137, 29, 7, 253, 136, 29, 7, 253,
- 135, 29, 7, 253, 134, 29, 7, 253, 133, 29, 7, 253, 132, 29, 7, 253, 131,
- 29, 7, 253, 130, 29, 7, 253, 129, 29, 7, 253, 128, 29, 7, 253, 127, 29,
- 7, 253, 126, 29, 7, 253, 125, 29, 7, 253, 124, 29, 7, 253, 123, 29, 7,
- 253, 122, 29, 7, 253, 121, 29, 7, 253, 120, 29, 7, 253, 119, 29, 7, 253,
- 118, 29, 7, 253, 117, 29, 7, 253, 116, 29, 7, 253, 115, 29, 7, 253, 114,
- 29, 7, 253, 113, 29, 7, 253, 112, 29, 7, 253, 111, 29, 7, 253, 110, 29,
- 7, 253, 109, 29, 7, 253, 108, 29, 7, 253, 107, 29, 7, 253, 106, 29, 7,
- 253, 105, 29, 7, 253, 104, 29, 7, 253, 103, 29, 7, 253, 102, 29, 7, 253,
- 101, 29, 7, 253, 100, 29, 7, 253, 99, 29, 7, 253, 98, 29, 7, 253, 97, 29,
- 7, 253, 96, 29, 7, 253, 95, 29, 7, 253, 94, 29, 7, 253, 93, 29, 7, 253,
- 92, 29, 7, 253, 91, 29, 7, 253, 90, 29, 7, 253, 89, 29, 7, 253, 88, 29,
- 7, 253, 87, 29, 7, 253, 86, 29, 7, 253, 85, 29, 7, 253, 84, 208, 76, 211,
- 164, 207, 151, 29, 7, 253, 83, 29, 7, 253, 82, 29, 7, 253, 81, 29, 7,
- 253, 80, 29, 7, 253, 79, 29, 7, 253, 78, 29, 7, 253, 77, 29, 7, 253, 76,
- 29, 7, 253, 75, 29, 7, 253, 74, 29, 7, 253, 73, 29, 7, 253, 72, 174, 29,
- 7, 253, 71, 29, 7, 253, 70, 29, 7, 253, 69, 29, 7, 253, 68, 29, 7, 253,
- 67, 29, 7, 253, 66, 29, 7, 253, 65, 29, 7, 253, 63, 29, 7, 253, 61, 29,
- 7, 253, 59, 29, 7, 253, 57, 29, 7, 253, 55, 29, 7, 253, 53, 29, 7, 253,
- 51, 29, 7, 253, 49, 29, 7, 253, 47, 29, 7, 253, 45, 248, 100, 219, 92,
- 77, 29, 7, 253, 43, 234, 80, 219, 92, 77, 29, 7, 253, 42, 29, 7, 253, 40,
- 29, 7, 253, 38, 29, 7, 253, 36, 29, 7, 253, 34, 29, 7, 253, 32, 29, 7,
- 253, 30, 29, 7, 253, 28, 29, 7, 253, 26, 29, 7, 253, 25, 29, 7, 253, 24,
- 29, 7, 253, 23, 29, 7, 253, 22, 29, 7, 253, 21, 29, 7, 253, 20, 29, 7,
- 253, 19, 29, 7, 253, 18, 29, 7, 253, 17, 29, 7, 253, 16, 29, 7, 253, 15,
- 29, 7, 253, 14, 29, 7, 253, 13, 29, 7, 253, 12, 29, 7, 253, 11, 29, 7,
- 253, 10, 29, 7, 253, 9, 29, 7, 253, 8, 29, 7, 253, 7, 29, 7, 253, 6, 29,
- 7, 253, 5, 29, 7, 253, 4, 29, 7, 253, 3, 29, 7, 253, 2, 29, 7, 253, 1,
- 29, 7, 253, 0, 29, 7, 252, 255, 29, 7, 252, 254, 29, 7, 252, 253, 29, 7,
- 252, 252, 29, 7, 252, 251, 29, 7, 252, 250, 29, 7, 252, 249, 29, 7, 252,
- 248, 29, 7, 252, 247, 29, 7, 252, 246, 29, 7, 252, 245, 29, 7, 252, 244,
- 29, 7, 252, 243, 29, 7, 252, 242, 29, 7, 252, 241, 29, 7, 252, 240, 29,
- 7, 252, 239, 29, 7, 252, 238, 29, 7, 252, 237, 29, 7, 252, 236, 29, 7,
- 252, 235, 29, 7, 252, 234, 29, 7, 252, 233, 29, 7, 252, 232, 29, 7, 252,
- 231, 29, 7, 252, 230, 29, 7, 252, 229, 29, 7, 252, 228, 29, 7, 252, 227,
- 29, 7, 252, 226, 29, 7, 252, 225, 29, 7, 252, 224, 29, 7, 252, 223, 29,
- 7, 252, 222, 29, 7, 252, 221, 29, 7, 252, 220, 29, 7, 252, 219, 29, 7,
- 252, 218, 29, 7, 252, 217, 29, 7, 252, 216, 29, 7, 252, 215, 29, 7, 252,
- 214, 29, 7, 252, 213, 29, 7, 252, 212, 29, 7, 252, 211, 29, 7, 252, 210,
- 29, 7, 252, 209, 29, 7, 252, 208, 29, 7, 252, 207, 29, 7, 252, 206, 29,
- 7, 252, 205, 29, 7, 252, 204, 29, 7, 252, 203, 29, 7, 252, 202, 29, 7,
- 252, 201, 29, 7, 252, 200, 29, 7, 252, 199, 29, 7, 252, 198, 29, 7, 252,
- 197, 29, 7, 252, 196, 29, 7, 252, 195, 29, 7, 252, 194, 29, 7, 252, 193,
- 29, 7, 252, 192, 29, 7, 252, 191, 29, 7, 252, 190, 29, 7, 252, 189, 29,
- 7, 252, 188, 29, 7, 252, 187, 29, 7, 252, 186, 29, 7, 252, 185, 29, 7,
- 252, 184, 29, 7, 252, 183, 29, 7, 252, 182, 29, 7, 252, 181, 29, 7, 252,
- 180, 29, 7, 252, 179, 29, 7, 252, 178, 29, 7, 252, 177, 29, 7, 252, 176,
- 29, 7, 252, 175, 29, 7, 252, 174, 29, 7, 252, 173, 29, 7, 252, 172, 25,
- 1, 210, 84, 214, 98, 216, 217, 25, 1, 210, 84, 231, 166, 232, 156, 25, 1,
- 210, 84, 209, 175, 216, 218, 209, 251, 25, 1, 210, 84, 209, 175, 216,
- 218, 209, 252, 25, 1, 210, 84, 215, 85, 216, 217, 25, 1, 210, 84, 203,
- 159, 25, 1, 210, 84, 199, 62, 216, 217, 25, 1, 210, 84, 212, 147, 216,
- 217, 25, 1, 210, 84, 203, 223, 211, 78, 213, 240, 25, 1, 210, 84, 209,
- 175, 211, 78, 213, 241, 209, 251, 25, 1, 210, 84, 209, 175, 211, 78, 213,
- 241, 209, 252, 25, 1, 210, 84, 217, 199, 25, 1, 210, 84, 198, 46, 217,
- 200, 25, 1, 210, 84, 214, 159, 25, 1, 210, 84, 217, 196, 25, 1, 210, 84,
- 217, 147, 25, 1, 210, 84, 215, 174, 25, 1, 210, 84, 204, 148, 25, 1, 210,
- 84, 213, 31, 25, 1, 210, 84, 222, 13, 25, 1, 210, 84, 213, 207, 25, 1,
- 210, 84, 201, 86, 25, 1, 210, 84, 214, 97, 25, 1, 210, 84, 220, 75, 25,
- 1, 210, 84, 219, 237, 220, 247, 25, 1, 210, 84, 213, 41, 216, 225, 25, 1,
- 210, 84, 217, 203, 25, 1, 210, 84, 210, 215, 25, 1, 210, 84, 231, 65, 25,
- 1, 210, 84, 211, 29, 25, 1, 210, 84, 216, 56, 214, 132, 25, 1, 210, 84,
- 212, 128, 216, 228, 25, 1, 210, 84, 124, 192, 184, 215, 78, 25, 1, 210,
- 84, 231, 66, 25, 1, 210, 84, 213, 41, 213, 42, 25, 1, 210, 84, 203, 44,
- 25, 1, 210, 84, 216, 210, 25, 1, 210, 84, 216, 231, 25, 1, 210, 84, 216,
- 31, 25, 1, 210, 84, 222, 138, 25, 1, 210, 84, 211, 78, 220, 29, 25, 1,
- 210, 84, 215, 0, 220, 29, 25, 1, 210, 84, 210, 106, 25, 1, 210, 84, 217,
- 197, 25, 1, 210, 84, 214, 26, 25, 1, 210, 84, 209, 30, 25, 1, 210, 84,
- 198, 38, 25, 1, 210, 84, 219, 32, 25, 1, 210, 84, 202, 184, 25, 1, 210,
- 84, 199, 249, 25, 1, 210, 84, 217, 194, 25, 1, 210, 84, 222, 20, 25, 1,
- 210, 84, 214, 252, 25, 1, 210, 84, 221, 5, 25, 1, 210, 84, 216, 32, 25,
- 1, 210, 84, 203, 155, 25, 1, 210, 84, 219, 85, 25, 1, 210, 84, 232, 227,
- 25, 1, 210, 84, 207, 31, 25, 1, 210, 84, 221, 58, 25, 1, 210, 84, 202,
- 180, 25, 1, 210, 84, 217, 142, 210, 40, 25, 1, 210, 84, 203, 216, 25, 1,
- 210, 84, 213, 40, 25, 1, 210, 84, 203, 197, 213, 52, 192, 192, 25, 1,
- 210, 84, 212, 169, 216, 52, 25, 1, 210, 84, 211, 73, 25, 1, 210, 84, 213,
- 209, 25, 1, 210, 84, 197, 49, 25, 1, 210, 84, 214, 135, 25, 1, 210, 84,
- 217, 193, 25, 1, 210, 84, 213, 252, 25, 1, 210, 84, 217, 77, 25, 1, 210,
- 84, 212, 184, 25, 1, 210, 84, 199, 253, 25, 1, 210, 84, 202, 177, 25, 1,
- 210, 84, 211, 74, 25, 1, 210, 84, 213, 56, 25, 1, 210, 84, 217, 201, 25,
- 1, 210, 84, 212, 181, 25, 1, 210, 84, 222, 100, 25, 1, 210, 84, 213, 59,
- 25, 1, 210, 84, 196, 118, 25, 1, 210, 84, 219, 36, 25, 1, 210, 84, 214,
- 196, 25, 1, 210, 84, 215, 52, 25, 1, 210, 84, 217, 76, 25, 1, 210, 83,
- 213, 54, 25, 1, 210, 83, 198, 46, 217, 198, 25, 1, 210, 83, 203, 107, 25,
- 1, 210, 83, 204, 152, 198, 45, 25, 1, 210, 83, 219, 87, 213, 37, 25, 1,
- 210, 83, 217, 83, 217, 202, 25, 1, 210, 83, 221, 188, 25, 1, 210, 83,
- 193, 32, 25, 1, 210, 83, 217, 78, 25, 1, 210, 83, 222, 124, 25, 1, 210,
- 83, 210, 164, 25, 1, 210, 83, 193, 115, 220, 29, 25, 1, 210, 83, 220, 95,
- 213, 52, 212, 195, 25, 1, 210, 83, 213, 34, 203, 242, 25, 1, 210, 83,
- 214, 223, 213, 255, 25, 1, 210, 83, 231, 63, 25, 1, 210, 83, 209, 241,
- 25, 1, 210, 83, 198, 46, 213, 50, 25, 1, 210, 83, 203, 247, 213, 250, 25,
- 1, 210, 83, 203, 243, 25, 1, 210, 83, 216, 218, 199, 252, 25, 1, 210, 83,
- 217, 65, 217, 79, 25, 1, 210, 83, 212, 182, 213, 37, 25, 1, 210, 83, 222,
- 9, 25, 1, 210, 83, 231, 64, 25, 1, 210, 83, 222, 5, 25, 1, 210, 83, 220,
- 179, 25, 1, 210, 83, 210, 218, 25, 1, 210, 83, 196, 47, 25, 1, 210, 83,
- 214, 99, 215, 172, 25, 1, 210, 83, 214, 134, 217, 61, 25, 1, 210, 83,
- 193, 242, 25, 1, 210, 83, 206, 69, 25, 1, 210, 83, 200, 170, 25, 1, 210,
- 83, 216, 230, 25, 1, 210, 83, 214, 118, 25, 1, 210, 83, 214, 119, 220,
- 72, 25, 1, 210, 83, 216, 220, 25, 1, 210, 83, 201, 139, 25, 1, 210, 83,
- 217, 69, 25, 1, 210, 83, 216, 36, 25, 1, 210, 83, 212, 199, 25, 1, 210,
- 83, 209, 34, 25, 1, 210, 83, 216, 229, 214, 136, 25, 1, 210, 83, 233, 16,
- 25, 1, 210, 83, 217, 56, 25, 1, 210, 83, 233, 40, 25, 1, 210, 83, 222,
- 17, 25, 1, 210, 83, 217, 228, 213, 244, 25, 1, 210, 83, 217, 228, 213,
- 220, 25, 1, 210, 83, 219, 236, 25, 1, 210, 83, 214, 142, 25, 1, 210, 83,
- 213, 61, 25, 1, 210, 83, 172, 25, 1, 210, 83, 221, 171, 25, 1, 210, 83,
- 214, 87, 25, 1, 210, 82, 214, 98, 217, 200, 25, 1, 210, 82, 212, 146, 25,
- 1, 210, 82, 192, 192, 25, 1, 210, 82, 194, 145, 25, 1, 210, 82, 214, 135,
- 25, 1, 210, 82, 214, 244, 25, 1, 210, 82, 214, 105, 25, 1, 210, 82, 231,
- 73, 25, 1, 210, 82, 217, 73, 25, 1, 210, 82, 231, 173, 25, 1, 210, 82,
- 212, 171, 216, 100, 216, 232, 25, 1, 210, 82, 213, 28, 217, 64, 25, 1,
- 210, 82, 217, 70, 25, 1, 210, 82, 209, 247, 25, 1, 210, 82, 214, 229, 25,
- 1, 210, 82, 217, 81, 247, 15, 25, 1, 210, 82, 222, 7, 25, 1, 210, 82,
- 231, 74, 25, 1, 210, 82, 222, 14, 25, 1, 210, 82, 192, 215, 215, 205, 25,
- 1, 210, 82, 212, 140, 25, 1, 210, 82, 217, 58, 25, 1, 210, 82, 213, 60,
- 25, 1, 210, 82, 217, 64, 25, 1, 210, 82, 193, 33, 25, 1, 210, 82, 221,
- 66, 25, 1, 210, 82, 222, 159, 25, 1, 210, 82, 204, 147, 25, 1, 210, 82,
- 214, 238, 25, 1, 210, 82, 200, 168, 25, 1, 210, 82, 213, 224, 25, 1, 210,
- 82, 199, 62, 192, 196, 25, 1, 210, 82, 201, 171, 25, 1, 210, 82, 214,
- 125, 212, 195, 25, 1, 210, 82, 196, 46, 25, 1, 210, 82, 215, 55, 25, 1,
- 210, 82, 217, 228, 222, 16, 25, 1, 210, 82, 213, 42, 25, 1, 210, 82, 214,
- 120, 25, 1, 210, 82, 220, 76, 25, 1, 210, 82, 217, 66, 25, 1, 210, 82,
- 216, 209, 25, 1, 210, 82, 213, 36, 25, 1, 210, 82, 199, 248, 25, 1, 210,
- 82, 214, 122, 25, 1, 210, 82, 232, 75, 25, 1, 210, 82, 214, 243, 25, 1,
- 210, 82, 213, 62, 25, 1, 210, 82, 213, 58, 25, 1, 210, 82, 247, 98, 25,
- 1, 210, 82, 196, 48, 25, 1, 210, 82, 217, 71, 25, 1, 210, 82, 206, 218,
- 25, 1, 210, 82, 213, 254, 25, 1, 210, 82, 220, 94, 25, 1, 210, 82, 199,
- 59, 25, 1, 210, 82, 213, 44, 214, 87, 25, 1, 210, 82, 213, 246, 25, 1,
- 210, 82, 222, 20, 25, 1, 210, 82, 214, 127, 25, 1, 210, 82, 217, 193, 25,
- 1, 210, 82, 217, 59, 25, 1, 210, 82, 219, 36, 25, 1, 210, 82, 220, 247,
- 25, 1, 210, 82, 213, 252, 25, 1, 210, 82, 214, 87, 25, 1, 210, 82, 193,
- 232, 25, 1, 210, 82, 214, 123, 25, 1, 210, 82, 213, 47, 25, 1, 210, 82,
- 213, 38, 25, 1, 210, 82, 221, 7, 213, 209, 25, 1, 210, 82, 213, 45, 25,
- 1, 210, 82, 214, 251, 25, 1, 210, 82, 217, 228, 213, 50, 25, 1, 210, 82,
- 193, 129, 25, 1, 210, 82, 214, 250, 25, 1, 210, 82, 203, 158, 25, 1, 210,
- 82, 204, 150, 25, 1, 210, 82, 217, 67, 25, 1, 210, 82, 217, 200, 25, 1,
- 210, 82, 217, 77, 25, 1, 210, 82, 222, 8, 25, 1, 210, 82, 217, 68, 25, 1,
- 210, 82, 222, 12, 25, 1, 210, 82, 217, 81, 210, 46, 25, 1, 210, 82, 192,
- 175, 25, 1, 210, 82, 213, 242, 25, 1, 210, 82, 216, 156, 25, 1, 210, 82,
- 215, 235, 25, 1, 210, 82, 203, 219, 25, 1, 210, 82, 222, 31, 220, 54, 25,
- 1, 210, 82, 222, 31, 233, 53, 25, 1, 210, 82, 214, 157, 25, 1, 210, 82,
- 215, 52, 25, 1, 210, 82, 219, 157, 25, 1, 210, 82, 210, 6, 25, 1, 210,
- 82, 210, 154, 25, 1, 210, 82, 200, 8, 25, 1, 154, 217, 57, 25, 1, 154,
- 194, 143, 25, 1, 154, 213, 240, 25, 1, 154, 216, 217, 25, 1, 154, 213,
- 238, 25, 1, 154, 219, 202, 25, 1, 154, 213, 243, 25, 1, 154, 213, 57, 25,
- 1, 154, 214, 141, 25, 1, 154, 212, 195, 25, 1, 154, 193, 243, 25, 1, 154,
- 214, 95, 25, 1, 154, 204, 10, 25, 1, 154, 214, 106, 25, 1, 154, 222, 15,
- 25, 1, 154, 199, 250, 25, 1, 154, 203, 245, 25, 1, 154, 213, 251, 25, 1,
- 154, 201, 139, 25, 1, 154, 222, 20, 25, 1, 154, 193, 117, 25, 1, 154,
- 221, 8, 25, 1, 154, 206, 28, 25, 1, 154, 216, 222, 25, 1, 154, 214, 242,
- 25, 1, 154, 217, 164, 25, 1, 154, 216, 228, 25, 1, 154, 204, 149, 25, 1,
- 154, 193, 59, 25, 1, 154, 213, 245, 25, 1, 154, 222, 11, 217, 60, 25, 1,
- 154, 214, 102, 25, 1, 154, 198, 45, 25, 1, 154, 231, 83, 25, 1, 154, 214,
- 92, 25, 1, 154, 233, 17, 25, 1, 154, 214, 246, 25, 1, 154, 216, 201, 25,
- 1, 154, 219, 230, 25, 1, 154, 214, 228, 25, 1, 154, 216, 51, 25, 1, 154,
- 216, 205, 25, 1, 154, 209, 14, 25, 1, 154, 216, 203, 25, 1, 154, 216,
- 219, 25, 1, 154, 219, 19, 25, 1, 154, 213, 49, 25, 1, 154, 217, 80, 25,
- 1, 154, 220, 236, 25, 1, 154, 212, 184, 25, 1, 154, 199, 253, 25, 1, 154,
- 202, 177, 25, 1, 154, 192, 175, 25, 1, 154, 222, 12, 25, 1, 154, 208, 52,
- 25, 1, 154, 200, 55, 25, 1, 154, 214, 103, 25, 1, 154, 216, 224, 25, 1,
- 154, 213, 48, 25, 1, 154, 222, 10, 25, 1, 154, 209, 253, 25, 1, 154, 210,
- 99, 25, 1, 154, 212, 157, 25, 1, 154, 219, 236, 25, 1, 154, 214, 142, 25,
- 1, 154, 216, 221, 25, 1, 154, 214, 115, 25, 1, 154, 192, 189, 25, 1, 154,
- 210, 253, 25, 1, 154, 192, 188, 25, 1, 154, 214, 251, 25, 1, 154, 213,
- 37, 25, 1, 154, 201, 173, 25, 1, 154, 221, 12, 25, 1, 154, 214, 131, 25,
- 1, 154, 214, 100, 25, 1, 154, 198, 20, 25, 1, 154, 216, 232, 25, 1, 154,
- 221, 2, 25, 1, 154, 213, 46, 25, 1, 154, 199, 251, 25, 1, 154, 217, 195,
- 25, 1, 154, 214, 140, 25, 1, 154, 219, 229, 25, 1, 154, 214, 121, 25, 1,
- 154, 213, 51, 25, 1, 154, 213, 224, 25, 1, 154, 231, 67, 25, 1, 154, 221,
- 33, 25, 1, 154, 207, 206, 211, 225, 25, 1, 154, 200, 157, 25, 1, 154,
- 198, 245, 25, 1, 154, 212, 181, 25, 1, 154, 207, 88, 25, 1, 154, 220, 31,
- 25, 1, 154, 217, 28, 25, 1, 154, 218, 236, 25, 1, 154, 201, 86, 25, 1,
- 154, 215, 241, 25, 1, 154, 203, 231, 25, 1, 154, 203, 241, 25, 1, 154,
- 220, 208, 25, 1, 154, 213, 22, 25, 1, 154, 203, 164, 25, 1, 154, 213, 39,
- 25, 1, 154, 210, 168, 25, 1, 154, 214, 60, 25, 1, 154, 203, 196, 25, 1,
- 154, 209, 29, 25, 1, 154, 215, 172, 25, 1, 154, 219, 65, 25, 1, 154, 207,
- 206, 215, 230, 25, 1, 154, 199, 128, 25, 1, 154, 213, 25, 25, 1, 154,
- 217, 81, 179, 25, 1, 154, 206, 26, 25, 1, 154, 233, 96, 25, 1, 110, 214,
- 250, 25, 1, 110, 198, 252, 25, 1, 110, 217, 70, 25, 1, 110, 220, 76, 25,
- 1, 110, 195, 238, 25, 1, 110, 219, 71, 25, 1, 110, 211, 77, 25, 1, 110,
- 202, 188, 25, 1, 110, 208, 26, 25, 1, 110, 213, 53, 25, 1, 110, 214, 221,
- 25, 1, 110, 209, 47, 25, 1, 110, 200, 129, 25, 1, 110, 214, 108, 25, 1,
- 110, 221, 62, 25, 1, 110, 193, 235, 25, 1, 110, 205, 205, 25, 1, 110,
- 214, 132, 25, 1, 110, 211, 74, 25, 1, 110, 198, 254, 25, 1, 110, 221, 6,
- 25, 1, 110, 219, 86, 25, 1, 110, 213, 56, 25, 1, 110, 214, 84, 25, 1,
- 110, 217, 201, 25, 1, 110, 214, 101, 25, 1, 110, 214, 83, 25, 1, 110,
- 213, 55, 25, 1, 110, 207, 85, 25, 1, 110, 213, 242, 25, 1, 110, 210, 166,
- 25, 1, 110, 206, 91, 25, 1, 110, 214, 116, 25, 1, 110, 216, 211, 25, 1,
- 110, 231, 61, 25, 1, 110, 214, 104, 25, 1, 110, 213, 253, 25, 1, 110,
- 217, 141, 25, 1, 110, 219, 67, 25, 1, 110, 214, 137, 25, 1, 110, 214,
- 234, 25, 1, 110, 200, 156, 213, 37, 25, 1, 110, 204, 151, 25, 1, 110,
- 209, 40, 25, 1, 110, 214, 254, 202, 196, 25, 1, 110, 214, 124, 212, 195,
- 25, 1, 110, 193, 18, 25, 1, 110, 231, 62, 25, 1, 110, 198, 39, 25, 1,
- 110, 193, 36, 25, 1, 110, 209, 198, 25, 1, 110, 198, 26, 25, 1, 110, 222,
- 18, 25, 1, 110, 201, 172, 25, 1, 110, 199, 252, 25, 1, 110, 196, 49, 25,
- 1, 110, 194, 86, 25, 1, 110, 220, 182, 25, 1, 110, 209, 51, 25, 1, 110,
- 200, 169, 25, 1, 110, 231, 82, 25, 1, 110, 214, 147, 25, 1, 110, 203,
- 244, 25, 1, 110, 216, 206, 25, 1, 110, 217, 74, 25, 1, 110, 212, 144, 25,
- 1, 110, 213, 205, 25, 1, 110, 231, 169, 25, 1, 110, 198, 27, 25, 1, 110,
- 221, 16, 25, 1, 110, 193, 93, 25, 1, 110, 212, 182, 242, 101, 25, 1, 110,
- 193, 7, 25, 1, 110, 216, 223, 25, 1, 110, 214, 239, 25, 1, 110, 210, 41,
- 25, 1, 110, 192, 195, 25, 1, 110, 219, 231, 25, 1, 110, 232, 75, 25, 1,
- 110, 231, 168, 25, 1, 110, 214, 94, 25, 1, 110, 222, 20, 25, 1, 110, 217,
- 204, 25, 1, 110, 214, 107, 25, 1, 110, 231, 68, 25, 1, 110, 233, 97, 25,
- 1, 110, 213, 26, 25, 1, 110, 210, 100, 25, 1, 110, 193, 34, 25, 1, 110,
- 214, 133, 25, 1, 110, 212, 182, 248, 60, 25, 1, 110, 212, 124, 25, 1,
- 110, 209, 170, 25, 1, 110, 216, 156, 25, 1, 110, 232, 73, 25, 1, 110,
- 215, 78, 25, 1, 110, 215, 235, 25, 1, 110, 231, 67, 25, 1, 110, 232, 78,
- 70, 25, 1, 110, 215, 173, 25, 1, 110, 209, 46, 25, 1, 110, 214, 96, 25,
- 1, 110, 220, 247, 25, 1, 110, 210, 38, 25, 1, 110, 213, 40, 25, 1, 110,
- 193, 35, 25, 1, 110, 214, 117, 25, 1, 110, 211, 78, 210, 139, 25, 1, 110,
- 232, 78, 246, 253, 25, 1, 110, 232, 157, 25, 1, 110, 213, 247, 25, 1,
- 110, 64, 25, 1, 110, 198, 245, 25, 1, 110, 74, 25, 1, 110, 70, 25, 1,
- 110, 220, 74, 25, 1, 110, 211, 78, 209, 207, 25, 1, 110, 200, 174, 25, 1,
- 110, 200, 113, 25, 1, 110, 214, 254, 215, 160, 228, 193, 25, 1, 110, 203,
- 219, 25, 1, 110, 193, 31, 25, 1, 110, 214, 77, 25, 1, 110, 192, 200, 25,
- 1, 110, 192, 233, 201, 65, 25, 1, 110, 192, 233, 238, 208, 25, 1, 110,
- 192, 183, 25, 1, 110, 192, 191, 25, 1, 110, 222, 6, 25, 1, 110, 210, 98,
- 25, 1, 110, 213, 248, 234, 34, 25, 1, 110, 209, 42, 25, 1, 110, 193, 241,
- 25, 1, 110, 233, 40, 25, 1, 110, 196, 118, 25, 1, 110, 219, 36, 25, 1,
- 110, 216, 175, 25, 1, 110, 207, 170, 25, 1, 110, 208, 53, 25, 1, 110,
- 214, 76, 25, 1, 110, 214, 165, 25, 1, 110, 203, 211, 25, 1, 110, 203,
- 196, 25, 1, 110, 232, 78, 207, 209, 25, 1, 110, 181, 25, 1, 110, 210, 51,
- 25, 1, 110, 219, 65, 25, 1, 110, 221, 113, 25, 1, 110, 217, 5, 25, 1,
- 110, 172, 25, 1, 110, 217, 138, 25, 1, 110, 199, 254, 25, 1, 110, 221,
- 204, 25, 1, 110, 216, 55, 25, 1, 110, 200, 30, 25, 1, 110, 233, 64, 25,
- 1, 110, 231, 55, 25, 1, 210, 81, 160, 25, 1, 210, 81, 68, 25, 1, 210, 81,
- 221, 33, 25, 1, 210, 81, 234, 171, 25, 1, 210, 81, 207, 234, 25, 1, 210,
- 81, 200, 157, 25, 1, 210, 81, 212, 181, 25, 1, 210, 81, 177, 25, 1, 210,
- 81, 207, 88, 25, 1, 210, 81, 207, 136, 25, 1, 210, 81, 217, 28, 25, 1,
- 210, 81, 200, 174, 25, 1, 210, 81, 214, 253, 25, 1, 210, 81, 213, 254,
- 25, 1, 210, 81, 218, 236, 25, 1, 210, 81, 201, 86, 25, 1, 210, 81, 203,
- 231, 25, 1, 210, 81, 203, 125, 25, 1, 210, 81, 204, 147, 25, 1, 210, 81,
- 220, 208, 25, 1, 210, 81, 222, 20, 25, 1, 210, 81, 212, 246, 25, 1, 210,
- 81, 213, 22, 25, 1, 210, 81, 213, 225, 25, 1, 210, 81, 192, 232, 25, 1,
- 210, 81, 203, 164, 25, 1, 210, 81, 168, 25, 1, 210, 81, 213, 59, 25, 1,
- 210, 81, 210, 98, 25, 1, 210, 81, 213, 39, 25, 1, 210, 81, 193, 241, 25,
- 1, 210, 81, 210, 168, 25, 1, 210, 81, 206, 218, 25, 1, 210, 81, 214, 60,
- 25, 1, 210, 81, 207, 170, 25, 1, 210, 81, 222, 30, 25, 1, 210, 81, 214,
- 93, 25, 1, 210, 81, 214, 144, 25, 1, 210, 81, 203, 211, 25, 1, 210, 81,
- 209, 47, 25, 1, 210, 81, 232, 157, 25, 1, 210, 81, 194, 169, 25, 1, 210,
- 81, 219, 209, 25, 1, 210, 81, 219, 65, 25, 1, 210, 81, 221, 113, 25, 1,
- 210, 81, 217, 72, 25, 1, 210, 81, 207, 205, 25, 1, 210, 81, 172, 25, 1,
- 210, 81, 216, 91, 25, 1, 210, 81, 217, 80, 25, 1, 210, 81, 200, 8, 25, 1,
- 210, 81, 221, 69, 25, 1, 210, 81, 206, 48, 25, 1, 210, 81, 194, 222, 215,
- 245, 1, 189, 215, 245, 1, 214, 113, 215, 245, 1, 193, 1, 215, 245, 1,
- 216, 122, 215, 245, 1, 249, 3, 215, 245, 1, 238, 0, 215, 245, 1, 64, 215,
- 245, 1, 210, 77, 215, 245, 1, 221, 244, 215, 245, 1, 230, 31, 215, 245,
- 1, 237, 231, 215, 245, 1, 242, 168, 215, 245, 1, 222, 50, 215, 245, 1,
- 211, 226, 215, 245, 1, 217, 201, 215, 245, 1, 214, 20, 215, 245, 1, 166,
- 215, 245, 1, 211, 194, 215, 245, 1, 74, 215, 245, 1, 207, 55, 215, 245,
- 1, 203, 236, 215, 245, 1, 199, 223, 215, 245, 1, 234, 199, 215, 245, 1,
- 194, 169, 215, 245, 1, 71, 215, 245, 1, 221, 113, 215, 245, 1, 220, 83,
- 215, 245, 1, 177, 215, 245, 1, 230, 88, 215, 245, 1, 207, 151, 215, 245,
- 1, 200, 45, 215, 245, 17, 192, 76, 215, 245, 17, 101, 215, 245, 17, 104,
- 215, 245, 17, 133, 215, 245, 17, 134, 215, 245, 17, 151, 215, 245, 17,
- 170, 215, 245, 17, 179, 215, 245, 17, 174, 215, 245, 17, 182, 215, 245,
- 237, 208, 215, 245, 55, 237, 208, 248, 173, 196, 154, 1, 234, 69, 248,
- 173, 196, 154, 1, 160, 248, 173, 196, 154, 1, 205, 223, 248, 173, 196,
- 154, 1, 233, 97, 248, 173, 196, 154, 1, 217, 75, 248, 173, 196, 154, 1,
- 193, 19, 248, 173, 196, 154, 1, 231, 218, 248, 173, 196, 154, 1, 237, 21,
- 248, 173, 196, 154, 1, 221, 68, 248, 173, 196, 154, 1, 222, 233, 248,
- 173, 196, 154, 1, 228, 146, 248, 173, 196, 154, 1, 194, 169, 248, 173,
- 196, 154, 1, 192, 8, 248, 173, 196, 154, 1, 231, 162, 248, 173, 196, 154,
- 1, 236, 146, 248, 173, 196, 154, 1, 246, 158, 248, 173, 196, 154, 1, 196,
- 244, 248, 173, 196, 154, 1, 155, 248, 173, 196, 154, 1, 249, 3, 248, 173,
- 196, 154, 1, 194, 223, 248, 173, 196, 154, 1, 193, 63, 248, 173, 196,
- 154, 1, 166, 248, 173, 196, 154, 1, 194, 161, 248, 173, 196, 154, 1, 64,
- 248, 173, 196, 154, 1, 74, 248, 173, 196, 154, 1, 211, 194, 248, 173,
- 196, 154, 1, 68, 248, 173, 196, 154, 1, 234, 171, 248, 173, 196, 154, 1,
- 71, 248, 173, 196, 154, 1, 70, 248, 173, 196, 154, 38, 139, 199, 18, 248,
- 173, 196, 154, 38, 132, 199, 18, 248, 173, 196, 154, 38, 216, 162, 199,
- 18, 248, 173, 196, 154, 38, 219, 49, 199, 18, 248, 173, 196, 154, 38,
- 229, 153, 199, 18, 248, 173, 196, 154, 232, 71, 201, 238, 141, 89, 18,
- 222, 47, 141, 89, 18, 222, 43, 141, 89, 18, 221, 193, 141, 89, 18, 221,
- 156, 141, 89, 18, 222, 75, 141, 89, 18, 222, 72, 141, 89, 18, 221, 17,
- 141, 89, 18, 220, 244, 141, 89, 18, 222, 49, 141, 89, 18, 222, 4, 141,
- 89, 18, 222, 134, 141, 89, 18, 222, 131, 141, 89, 18, 221, 87, 141, 89,
- 18, 221, 84, 141, 89, 18, 222, 68, 141, 89, 18, 222, 66, 141, 89, 18,
- 221, 19, 141, 89, 18, 221, 18, 141, 89, 18, 221, 106, 141, 89, 18, 221,
- 73, 141, 89, 18, 221, 195, 141, 89, 18, 221, 194, 141, 89, 18, 222, 149,
- 141, 89, 18, 222, 71, 141, 89, 18, 220, 234, 141, 89, 18, 220, 225, 141,
- 89, 18, 222, 158, 141, 89, 18, 222, 150, 141, 89, 116, 196, 129, 141, 89,
- 116, 213, 29, 141, 89, 116, 220, 60, 141, 89, 116, 230, 11, 141, 89, 116,
- 213, 181, 141, 89, 116, 208, 17, 141, 89, 116, 213, 208, 141, 89, 116,
- 208, 213, 141, 89, 116, 193, 80, 141, 89, 116, 229, 128, 141, 89, 116,
- 217, 96, 141, 89, 116, 242, 249, 141, 89, 116, 215, 2, 141, 89, 116, 229,
- 64, 141, 89, 116, 209, 216, 141, 89, 116, 213, 35, 141, 89, 116, 215, 42,
- 141, 89, 116, 250, 8, 141, 89, 116, 193, 205, 141, 89, 116, 246, 191,
- 141, 89, 122, 242, 137, 198, 36, 141, 89, 122, 242, 137, 202, 212, 141,
- 89, 122, 242, 137, 222, 22, 141, 89, 122, 242, 137, 221, 235, 141, 89,
- 122, 242, 137, 201, 170, 141, 89, 122, 242, 137, 229, 22, 141, 89, 122,
- 242, 137, 200, 99, 141, 89, 3, 195, 233, 199, 173, 141, 89, 3, 195, 233,
- 198, 107, 246, 149, 141, 89, 3, 242, 137, 242, 238, 141, 89, 3, 195, 233,
- 199, 201, 141, 89, 3, 195, 233, 233, 37, 141, 89, 3, 193, 160, 213, 23,
- 141, 89, 3, 193, 160, 207, 153, 141, 89, 3, 193, 160, 198, 228, 141, 89,
- 3, 193, 160, 233, 78, 141, 89, 3, 195, 233, 205, 199, 141, 89, 3, 217,
- 27, 201, 174, 141, 89, 3, 195, 233, 213, 75, 141, 89, 3, 228, 54, 193,
- 100, 141, 89, 3, 193, 204, 141, 89, 3, 242, 137, 198, 94, 207, 37, 141,
- 89, 17, 192, 76, 141, 89, 17, 101, 141, 89, 17, 104, 141, 89, 17, 133,
- 141, 89, 17, 134, 141, 89, 17, 151, 141, 89, 17, 170, 141, 89, 17, 179,
- 141, 89, 17, 174, 141, 89, 17, 182, 141, 89, 31, 200, 25, 141, 89, 31,
- 228, 160, 141, 89, 31, 200, 31, 199, 163, 141, 89, 31, 216, 123, 141, 89,
- 31, 228, 163, 216, 123, 141, 89, 31, 200, 31, 248, 22, 141, 89, 31, 198,
- 172, 141, 89, 3, 195, 233, 219, 31, 141, 89, 3, 193, 157, 141, 89, 3,
- 229, 123, 141, 89, 3, 199, 190, 229, 123, 141, 89, 3, 191, 237, 199, 234,
- 141, 89, 3, 229, 48, 141, 89, 3, 213, 89, 141, 89, 3, 193, 195, 141, 89,
- 3, 213, 27, 141, 89, 3, 249, 247, 141, 89, 3, 197, 214, 246, 148, 141,
- 89, 3, 217, 27, 198, 110, 141, 89, 3, 200, 100, 141, 89, 3, 219, 62, 141,
- 89, 3, 215, 191, 141, 89, 3, 242, 137, 230, 84, 219, 8, 213, 33, 213, 32,
- 141, 89, 3, 242, 137, 238, 161, 198, 101, 141, 89, 3, 242, 137, 197, 212,
- 141, 89, 3, 242, 137, 197, 213, 242, 156, 141, 89, 3, 242, 137, 209, 45,
- 237, 176, 141, 89, 3, 242, 137, 213, 82, 198, 236, 141, 89, 242, 108, 3,
- 198, 105, 141, 89, 242, 108, 3, 193, 65, 141, 89, 242, 108, 3, 219, 154,
- 141, 89, 242, 108, 3, 220, 58, 141, 89, 242, 108, 3, 193, 156, 141, 89,
- 242, 108, 3, 221, 88, 141, 89, 242, 108, 3, 230, 8, 141, 89, 242, 108, 3,
- 215, 233, 141, 89, 242, 108, 3, 199, 174, 141, 89, 242, 108, 3, 198, 115,
- 141, 89, 242, 108, 3, 210, 91, 141, 89, 242, 108, 3, 221, 248, 141, 89,
- 242, 108, 3, 230, 72, 141, 89, 242, 108, 3, 196, 151, 141, 89, 242, 108,
- 3, 233, 74, 141, 89, 242, 108, 3, 193, 107, 141, 89, 242, 108, 3, 198,
- 88, 141, 89, 242, 108, 3, 220, 229, 141, 89, 242, 108, 3, 194, 211, 217,
- 36, 6, 1, 218, 236, 217, 36, 6, 1, 206, 158, 217, 36, 6, 1, 196, 236,
- 217, 36, 6, 1, 194, 202, 217, 36, 6, 1, 250, 20, 217, 36, 6, 1, 192, 155,
- 217, 36, 6, 1, 221, 70, 217, 36, 6, 1, 211, 93, 217, 36, 6, 1, 200, 228,
- 217, 36, 6, 1, 232, 44, 217, 36, 6, 1, 233, 163, 217, 36, 6, 1, 70, 217,
- 36, 6, 1, 222, 184, 217, 36, 6, 1, 64, 217, 36, 6, 1, 223, 65, 217, 36,
- 6, 1, 71, 217, 36, 6, 1, 249, 226, 217, 36, 6, 1, 247, 52, 217, 36, 6, 1,
- 68, 217, 36, 6, 1, 192, 214, 217, 36, 6, 1, 165, 217, 36, 6, 1, 208, 247,
- 217, 36, 6, 1, 228, 190, 217, 36, 6, 1, 212, 203, 217, 36, 6, 1, 193,
- 223, 217, 36, 6, 1, 238, 95, 217, 36, 6, 1, 212, 0, 217, 36, 6, 1, 215,
- 151, 217, 36, 6, 1, 150, 217, 36, 6, 1, 74, 217, 36, 6, 1, 251, 63, 217,
- 36, 6, 1, 193, 148, 217, 36, 2, 1, 218, 236, 217, 36, 2, 1, 206, 158,
- 217, 36, 2, 1, 196, 236, 217, 36, 2, 1, 194, 202, 217, 36, 2, 1, 250, 20,
- 217, 36, 2, 1, 192, 155, 217, 36, 2, 1, 221, 70, 217, 36, 2, 1, 211, 93,
- 217, 36, 2, 1, 200, 228, 217, 36, 2, 1, 232, 44, 217, 36, 2, 1, 233, 163,
- 217, 36, 2, 1, 70, 217, 36, 2, 1, 222, 184, 217, 36, 2, 1, 64, 217, 36,
- 2, 1, 223, 65, 217, 36, 2, 1, 71, 217, 36, 2, 1, 249, 226, 217, 36, 2, 1,
- 247, 52, 217, 36, 2, 1, 68, 217, 36, 2, 1, 192, 214, 217, 36, 2, 1, 165,
- 217, 36, 2, 1, 208, 247, 217, 36, 2, 1, 228, 190, 217, 36, 2, 1, 212,
- 203, 217, 36, 2, 1, 193, 223, 217, 36, 2, 1, 238, 95, 217, 36, 2, 1, 212,
- 0, 217, 36, 2, 1, 215, 151, 217, 36, 2, 1, 150, 217, 36, 2, 1, 74, 217,
- 36, 2, 1, 251, 63, 217, 36, 2, 1, 193, 148, 217, 36, 17, 192, 76, 217,
- 36, 17, 101, 217, 36, 17, 104, 217, 36, 17, 133, 217, 36, 17, 134, 217,
- 36, 17, 151, 217, 36, 17, 170, 217, 36, 17, 179, 217, 36, 17, 174, 217,
- 36, 17, 182, 217, 36, 31, 200, 30, 217, 36, 31, 234, 111, 217, 36, 31,
- 197, 244, 217, 36, 31, 199, 186, 217, 36, 31, 232, 113, 217, 36, 31, 233,
- 7, 217, 36, 31, 203, 35, 217, 36, 31, 204, 143, 217, 36, 31, 234, 145,
- 217, 36, 31, 214, 13, 217, 36, 17, 90, 250, 249, 20, 217, 36, 17, 103,
- 250, 249, 20, 217, 36, 17, 112, 250, 249, 20, 217, 36, 242, 38, 217, 36,
- 232, 71, 201, 238, 217, 36, 16, 251, 48, 217, 36, 233, 204, 211, 241,
- 117, 1, 166, 117, 1, 249, 3, 117, 1, 11, 166, 117, 1, 209, 234, 117, 1,
- 172, 117, 1, 216, 178, 117, 1, 250, 112, 172, 117, 1, 233, 97, 117, 1,
- 196, 157, 117, 1, 196, 41, 117, 1, 189, 117, 1, 238, 0, 117, 1, 11, 198,
- 83, 117, 1, 11, 189, 117, 1, 198, 83, 117, 1, 237, 161, 117, 1, 181, 117,
- 1, 214, 65, 117, 1, 11, 213, 178, 117, 1, 250, 112, 181, 117, 1, 213,
- 178, 117, 1, 213, 164, 117, 1, 177, 117, 1, 218, 250, 117, 1, 219, 222,
- 117, 1, 219, 211, 117, 1, 199, 50, 117, 1, 236, 155, 117, 1, 199, 42,
- 117, 1, 236, 154, 117, 1, 160, 117, 1, 231, 233, 117, 1, 11, 160, 117, 1,
- 208, 239, 117, 1, 208, 216, 117, 1, 214, 165, 117, 1, 214, 114, 117, 1,
- 250, 112, 214, 165, 117, 1, 144, 117, 1, 193, 209, 117, 1, 231, 84, 117,
- 1, 231, 59, 117, 1, 198, 93, 117, 1, 235, 0, 117, 1, 212, 201, 117, 1,
- 212, 183, 117, 1, 198, 108, 117, 1, 235, 11, 117, 1, 11, 198, 108, 117,
- 1, 11, 235, 11, 117, 1, 207, 232, 198, 108, 117, 1, 204, 64, 117, 1, 202,
- 92, 117, 1, 192, 71, 117, 1, 191, 254, 117, 1, 198, 118, 117, 1, 235, 17,
- 117, 1, 11, 198, 118, 117, 1, 188, 117, 1, 192, 112, 117, 1, 191, 255,
- 117, 1, 191, 225, 117, 1, 191, 205, 117, 1, 250, 112, 191, 225, 117, 1,
- 191, 197, 117, 1, 191, 204, 117, 1, 194, 169, 117, 1, 251, 72, 117, 1,
- 229, 187, 117, 1, 247, 146, 117, 1, 201, 54, 117, 1, 235, 1, 117, 1, 200,
- 79, 117, 1, 198, 112, 117, 1, 206, 221, 117, 3, 116, 73, 161, 117, 1,
- 215, 47, 117, 3, 250, 43, 117, 3, 207, 232, 195, 246, 117, 3, 207, 232,
- 250, 43, 117, 18, 3, 64, 117, 18, 3, 252, 33, 117, 18, 3, 251, 68, 117,
- 18, 3, 250, 224, 117, 18, 3, 250, 214, 117, 18, 3, 74, 117, 18, 3, 211,
- 194, 117, 18, 3, 194, 36, 117, 18, 3, 194, 202, 117, 18, 3, 71, 117, 18,
- 3, 234, 88, 117, 18, 3, 234, 73, 117, 18, 3, 211, 252, 117, 18, 3, 70,
- 117, 18, 3, 228, 58, 117, 18, 3, 228, 57, 117, 18, 3, 228, 56, 117, 18,
- 3, 223, 116, 117, 18, 3, 223, 251, 117, 18, 3, 223, 224, 117, 18, 3, 223,
- 78, 117, 18, 3, 223, 164, 117, 18, 3, 68, 117, 18, 3, 197, 119, 117, 18,
- 3, 197, 118, 117, 18, 3, 197, 117, 117, 18, 3, 196, 251, 117, 18, 3, 197,
- 101, 117, 18, 3, 197, 61, 117, 18, 3, 193, 148, 117, 18, 3, 193, 22, 117,
- 18, 3, 251, 108, 117, 18, 3, 251, 104, 117, 18, 3, 234, 13, 117, 18, 3,
- 207, 7, 234, 13, 117, 18, 3, 234, 21, 117, 18, 3, 207, 7, 234, 21, 117,
- 18, 3, 251, 63, 117, 18, 3, 234, 150, 117, 18, 3, 250, 8, 117, 18, 3,
- 211, 130, 117, 18, 3, 215, 151, 117, 18, 3, 214, 167, 117, 18, 3, 197,
- 45, 117, 18, 3, 192, 194, 117, 18, 3, 211, 246, 117, 18, 3, 211, 253,
- 117, 18, 3, 194, 213, 117, 18, 3, 223, 229, 117, 18, 3, 234, 199, 117,
- 18, 3, 223, 114, 117, 18, 3, 197, 95, 117, 158, 207, 101, 117, 158, 198,
- 249, 207, 101, 117, 158, 58, 117, 158, 63, 117, 1, 199, 16, 117, 1, 199,
- 15, 117, 1, 199, 14, 117, 1, 199, 13, 117, 1, 199, 12, 117, 1, 199, 11,
- 117, 1, 199, 10, 117, 1, 207, 232, 199, 17, 117, 1, 207, 232, 199, 16,
- 117, 1, 207, 232, 199, 14, 117, 1, 207, 232, 199, 13, 117, 1, 207, 232,
- 199, 12, 117, 1, 207, 232, 199, 10, 19, 223, 80, 77, 45, 223, 80, 77, 40,
- 242, 200, 229, 15, 77, 40, 242, 200, 223, 80, 77, 37, 2, 27, 232, 247,
- 196, 27, 250, 249, 208, 1, 122, 247, 19, 196, 27, 250, 249, 208, 1, 122,
- 214, 64, 19, 242, 27, 19, 242, 26, 19, 242, 25, 19, 242, 24, 19, 242, 23,
- 19, 242, 22, 19, 242, 21, 19, 242, 20, 19, 242, 19, 19, 242, 18, 19, 242,
- 17, 19, 242, 16, 19, 242, 15, 19, 242, 14, 19, 242, 13, 19, 242, 12, 19,
- 242, 11, 19, 242, 10, 19, 242, 9, 19, 242, 8, 19, 242, 7, 19, 242, 6, 19,
- 242, 5, 19, 242, 4, 19, 242, 3, 19, 242, 2, 19, 242, 1, 19, 242, 0, 19,
- 241, 255, 19, 241, 254, 19, 241, 253, 19, 241, 252, 19, 241, 251, 19,
- 241, 250, 19, 241, 249, 19, 241, 248, 19, 241, 247, 19, 241, 246, 19,
- 241, 245, 19, 241, 244, 19, 241, 243, 19, 241, 242, 19, 241, 241, 19,
- 241, 240, 19, 241, 239, 19, 241, 238, 19, 241, 237, 19, 241, 236, 19,
- 241, 235, 19, 241, 234, 19, 241, 233, 19, 241, 232, 19, 241, 231, 19,
- 241, 230, 19, 241, 229, 19, 241, 228, 19, 241, 227, 19, 241, 226, 19,
- 241, 225, 19, 241, 224, 19, 241, 223, 19, 241, 222, 19, 241, 221, 19,
- 241, 220, 19, 241, 219, 19, 241, 218, 19, 241, 217, 19, 241, 216, 19,
- 241, 215, 19, 241, 214, 19, 241, 213, 19, 241, 212, 19, 241, 211, 19,
- 241, 210, 19, 241, 209, 19, 241, 208, 19, 241, 207, 19, 241, 206, 19,
- 241, 205, 19, 241, 204, 19, 241, 203, 19, 241, 202, 19, 241, 201, 19,
- 241, 200, 19, 241, 199, 19, 241, 198, 19, 241, 197, 19, 241, 196, 19,
- 241, 195, 19, 241, 194, 19, 241, 193, 19, 241, 192, 19, 241, 191, 19,
- 241, 190, 19, 241, 189, 19, 241, 188, 19, 241, 187, 19, 241, 186, 19,
- 241, 185, 19, 241, 184, 19, 241, 183, 19, 241, 182, 19, 241, 181, 19,
- 241, 180, 19, 241, 179, 19, 241, 178, 19, 241, 177, 19, 241, 176, 19,
- 241, 175, 19, 241, 174, 19, 241, 173, 19, 241, 172, 19, 241, 171, 19,
- 241, 170, 19, 241, 169, 19, 241, 168, 19, 241, 167, 19, 241, 166, 19,
- 241, 165, 19, 241, 164, 19, 241, 163, 19, 241, 162, 19, 241, 161, 19,
- 241, 160, 19, 241, 159, 19, 241, 158, 19, 241, 157, 19, 241, 156, 19,
- 241, 155, 19, 241, 154, 19, 241, 153, 19, 241, 152, 19, 241, 151, 19,
- 241, 150, 19, 241, 149, 19, 241, 148, 19, 241, 147, 19, 241, 146, 19,
- 241, 145, 19, 241, 144, 19, 241, 143, 19, 241, 142, 19, 241, 141, 19,
- 241, 140, 19, 241, 139, 19, 241, 138, 19, 241, 137, 19, 241, 136, 19,
- 241, 135, 19, 241, 134, 19, 241, 133, 19, 241, 132, 19, 241, 131, 19,
- 241, 130, 19, 241, 129, 19, 241, 128, 19, 241, 127, 19, 241, 126, 19,
- 241, 125, 19, 241, 124, 19, 241, 123, 19, 241, 122, 19, 241, 121, 19,
- 241, 120, 19, 241, 119, 19, 241, 118, 19, 241, 117, 19, 241, 116, 19,
- 241, 115, 19, 241, 114, 19, 241, 113, 19, 241, 112, 19, 241, 111, 19,
- 241, 110, 19, 241, 109, 19, 241, 108, 19, 241, 107, 19, 241, 106, 19,
- 241, 105, 19, 241, 104, 19, 241, 103, 19, 241, 102, 19, 241, 101, 19,
- 241, 100, 19, 241, 99, 19, 241, 98, 19, 241, 97, 19, 241, 96, 19, 241,
- 95, 19, 241, 94, 19, 241, 93, 19, 241, 92, 19, 241, 91, 19, 241, 90, 19,
- 241, 89, 19, 241, 88, 19, 241, 87, 19, 241, 86, 19, 241, 85, 19, 241, 84,
- 19, 241, 83, 19, 241, 82, 19, 241, 81, 19, 241, 80, 19, 241, 79, 19, 241,
- 78, 19, 241, 77, 19, 241, 76, 19, 241, 75, 19, 241, 74, 19, 241, 73, 19,
- 241, 72, 19, 241, 71, 19, 241, 70, 19, 241, 69, 19, 241, 68, 19, 241, 67,
- 19, 241, 66, 19, 241, 65, 19, 241, 64, 19, 241, 63, 19, 241, 62, 19, 241,
- 61, 19, 241, 60, 19, 241, 59, 19, 241, 58, 19, 241, 57, 19, 241, 56, 19,
- 241, 55, 19, 241, 54, 19, 241, 53, 19, 241, 52, 19, 241, 51, 19, 241, 50,
- 19, 241, 49, 19, 241, 48, 19, 241, 47, 19, 241, 46, 19, 241, 45, 19, 241,
- 44, 19, 241, 43, 19, 241, 42, 19, 241, 41, 19, 241, 40, 19, 241, 39, 19,
- 241, 38, 19, 241, 37, 19, 241, 36, 19, 241, 35, 19, 241, 34, 19, 241, 33,
- 19, 241, 32, 19, 241, 31, 19, 241, 30, 19, 241, 29, 19, 241, 28, 19, 241,
- 27, 19, 241, 26, 19, 241, 25, 19, 241, 24, 19, 241, 23, 19, 241, 22, 19,
- 241, 21, 19, 241, 20, 19, 241, 19, 19, 241, 18, 19, 241, 17, 19, 241, 16,
- 19, 241, 15, 19, 241, 14, 19, 241, 13, 19, 241, 12, 19, 241, 11, 19, 241,
- 10, 19, 241, 9, 19, 241, 8, 19, 241, 7, 19, 241, 6, 19, 241, 5, 19, 241,
- 4, 19, 241, 3, 19, 241, 2, 19, 241, 1, 19, 241, 0, 19, 240, 255, 19, 240,
- 254, 19, 240, 253, 19, 240, 252, 19, 240, 251, 19, 240, 250, 19, 240,
- 249, 19, 240, 248, 19, 240, 247, 19, 240, 246, 19, 240, 245, 19, 240,
- 244, 19, 240, 243, 19, 240, 242, 19, 240, 241, 19, 240, 240, 19, 240,
- 239, 19, 240, 238, 19, 240, 237, 19, 240, 236, 19, 240, 235, 19, 240,
- 234, 19, 240, 233, 19, 240, 232, 19, 240, 231, 19, 240, 230, 19, 240,
- 229, 19, 240, 228, 19, 240, 227, 19, 240, 226, 19, 240, 225, 19, 240,
- 224, 19, 240, 223, 19, 240, 222, 19, 240, 221, 19, 240, 220, 19, 240,
- 219, 19, 240, 218, 19, 240, 217, 19, 240, 216, 19, 240, 215, 19, 240,
- 214, 19, 240, 213, 19, 240, 212, 19, 240, 211, 19, 240, 210, 19, 240,
- 209, 19, 240, 208, 19, 240, 207, 19, 240, 206, 19, 240, 205, 19, 240,
- 204, 19, 240, 203, 19, 240, 202, 19, 240, 201, 19, 240, 200, 19, 240,
- 199, 19, 240, 198, 19, 240, 197, 19, 240, 196, 19, 240, 195, 19, 240,
- 194, 19, 240, 193, 19, 240, 192, 19, 240, 191, 19, 240, 190, 19, 240,
- 189, 19, 240, 188, 19, 240, 187, 19, 240, 186, 19, 240, 185, 19, 240,
- 184, 19, 240, 183, 19, 240, 182, 19, 240, 181, 19, 240, 180, 19, 240,
- 179, 19, 240, 178, 19, 240, 177, 19, 240, 176, 19, 240, 175, 19, 240,
- 174, 19, 240, 173, 19, 240, 172, 19, 240, 171, 19, 240, 170, 19, 240,
- 169, 19, 240, 168, 19, 240, 167, 19, 240, 166, 19, 240, 165, 19, 240,
- 164, 19, 240, 163, 19, 240, 162, 19, 240, 161, 19, 240, 160, 19, 240,
- 159, 19, 240, 158, 19, 240, 157, 19, 240, 156, 19, 240, 155, 19, 240,
- 154, 19, 240, 153, 19, 240, 152, 19, 240, 151, 19, 240, 150, 19, 240,
- 149, 19, 240, 148, 19, 240, 147, 19, 240, 146, 19, 240, 145, 19, 240,
- 144, 19, 240, 143, 19, 240, 142, 19, 240, 141, 19, 240, 140, 19, 240,
- 139, 19, 240, 138, 19, 240, 137, 19, 240, 136, 19, 240, 135, 19, 240,
- 134, 19, 240, 133, 19, 240, 132, 19, 240, 131, 19, 240, 130, 19, 240,
- 129, 19, 240, 128, 19, 240, 127, 19, 240, 126, 19, 240, 125, 19, 240,
- 124, 19, 240, 123, 19, 240, 122, 19, 240, 121, 19, 240, 120, 19, 240,
- 119, 19, 240, 118, 19, 240, 117, 19, 240, 116, 19, 240, 115, 19, 240,
- 114, 19, 240, 113, 19, 240, 112, 19, 240, 111, 19, 240, 110, 19, 240,
- 109, 19, 240, 108, 19, 240, 107, 19, 240, 106, 19, 240, 105, 19, 240,
- 104, 19, 240, 103, 19, 240, 102, 19, 240, 101, 19, 240, 100, 19, 240, 99,
- 19, 240, 98, 19, 240, 97, 19, 240, 96, 19, 240, 95, 19, 240, 94, 19, 240,
- 93, 19, 240, 92, 19, 240, 91, 19, 240, 90, 19, 240, 89, 19, 240, 88, 19,
- 240, 87, 19, 240, 86, 19, 240, 85, 19, 240, 84, 19, 240, 83, 19, 240, 82,
- 19, 240, 81, 19, 240, 80, 19, 240, 79, 19, 240, 78, 19, 240, 77, 19, 240,
- 76, 19, 240, 75, 19, 240, 74, 19, 240, 73, 19, 240, 72, 19, 240, 71, 19,
- 240, 70, 19, 240, 69, 19, 240, 68, 19, 240, 67, 19, 240, 66, 19, 240, 65,
- 19, 240, 64, 19, 240, 63, 19, 240, 62, 19, 240, 61, 19, 240, 60, 19, 240,
- 59, 19, 240, 58, 19, 240, 57, 19, 240, 56, 19, 240, 55, 19, 240, 54, 19,
- 240, 53, 19, 240, 52, 19, 240, 51, 19, 240, 50, 19, 240, 49, 19, 240, 48,
- 19, 240, 47, 19, 240, 46, 19, 240, 45, 19, 240, 44, 19, 240, 43, 19, 240,
- 42, 19, 240, 41, 19, 240, 40, 19, 240, 39, 19, 240, 38, 19, 240, 37, 19,
- 240, 36, 19, 240, 35, 19, 240, 34, 19, 240, 33, 19, 240, 32, 19, 240, 31,
- 19, 240, 30, 19, 240, 29, 19, 240, 28, 19, 240, 27, 19, 240, 26, 19, 240,
- 25, 19, 240, 24, 19, 240, 23, 19, 240, 22, 19, 240, 21, 19, 240, 20, 19,
- 240, 19, 19, 240, 18, 19, 240, 17, 19, 240, 16, 19, 240, 15, 19, 240, 14,
- 19, 240, 13, 19, 240, 12, 19, 240, 11, 19, 240, 10, 19, 240, 9, 19, 240,
- 8, 19, 240, 7, 19, 240, 6, 19, 240, 5, 19, 240, 4, 19, 240, 3, 19, 240,
- 2, 19, 240, 1, 19, 240, 0, 19, 239, 255, 19, 239, 254, 19, 239, 253, 19,
- 239, 252, 19, 239, 251, 19, 239, 250, 19, 239, 249, 19, 239, 248, 19,
- 239, 247, 19, 239, 246, 19, 239, 245, 19, 239, 244, 19, 239, 243, 19,
- 239, 242, 19, 239, 241, 19, 239, 240, 19, 239, 239, 19, 239, 238, 19,
- 239, 237, 19, 239, 236, 19, 239, 235, 19, 239, 234, 19, 239, 233, 19,
- 239, 232, 19, 239, 231, 19, 239, 230, 19, 239, 229, 19, 239, 228, 19,
- 239, 227, 19, 239, 226, 19, 239, 225, 19, 239, 224, 19, 239, 223, 19,
- 239, 222, 19, 239, 221, 19, 239, 220, 19, 239, 219, 19, 239, 218, 19,
- 239, 217, 19, 239, 216, 19, 239, 215, 19, 239, 214, 19, 239, 213, 19,
- 239, 212, 19, 239, 211, 19, 239, 210, 19, 239, 209, 19, 239, 208, 19,
- 239, 207, 19, 239, 206, 19, 239, 205, 19, 239, 204, 19, 239, 203, 19,
- 239, 202, 19, 239, 201, 19, 239, 200, 19, 239, 199, 19, 239, 198, 19,
- 239, 197, 19, 239, 196, 19, 239, 195, 19, 239, 194, 19, 239, 193, 19,
- 239, 192, 19, 239, 191, 19, 239, 190, 19, 239, 189, 19, 239, 188, 19,
- 239, 187, 19, 239, 186, 19, 239, 185, 19, 239, 184, 19, 239, 183, 19,
- 239, 182, 19, 239, 181, 19, 239, 180, 19, 239, 179, 19, 239, 178, 19,
- 239, 177, 19, 239, 176, 19, 239, 175, 19, 239, 174, 19, 239, 173, 19,
- 239, 172, 19, 239, 171, 19, 239, 170, 19, 239, 169, 19, 239, 168, 19,
- 239, 167, 19, 239, 166, 19, 239, 165, 19, 239, 164, 19, 239, 163, 19,
- 239, 162, 19, 239, 161, 19, 239, 160, 19, 239, 159, 19, 239, 158, 19,
- 239, 157, 19, 239, 156, 19, 239, 155, 19, 239, 154, 19, 239, 153, 19,
- 239, 152, 19, 239, 151, 19, 239, 150, 19, 239, 149, 19, 239, 148, 19,
- 239, 147, 19, 239, 146, 19, 239, 145, 19, 239, 144, 19, 239, 143, 19,
- 239, 142, 19, 239, 141, 19, 239, 140, 19, 239, 139, 19, 239, 138, 19,
- 239, 137, 19, 239, 136, 19, 239, 135, 19, 239, 134, 19, 239, 133, 19,
- 239, 132, 19, 239, 131, 19, 239, 130, 19, 239, 129, 19, 239, 128, 19,
- 239, 127, 19, 239, 126, 19, 239, 125, 19, 239, 124, 19, 239, 123, 19,
- 239, 122, 19, 239, 121, 19, 239, 120, 19, 239, 119, 19, 239, 118, 19,
- 239, 117, 19, 239, 116, 19, 239, 115, 19, 239, 114, 19, 239, 113, 19,
- 239, 112, 19, 239, 111, 19, 239, 110, 19, 239, 109, 19, 239, 108, 19,
- 239, 107, 19, 239, 106, 19, 239, 105, 19, 239, 104, 19, 239, 103, 19,
- 239, 102, 19, 239, 101, 19, 239, 100, 19, 239, 99, 19, 239, 98, 19, 239,
- 97, 19, 239, 96, 19, 239, 95, 19, 239, 94, 19, 239, 93, 19, 239, 92, 19,
- 239, 91, 19, 239, 90, 19, 239, 89, 19, 239, 88, 19, 239, 87, 19, 239, 86,
- 19, 239, 85, 19, 239, 84, 19, 239, 83, 19, 239, 82, 19, 239, 81, 19, 239,
- 80, 19, 239, 79, 19, 239, 78, 19, 239, 77, 19, 239, 76, 19, 239, 75, 19,
- 239, 74, 19, 239, 73, 19, 239, 72, 19, 239, 71, 19, 239, 70, 19, 239, 69,
- 19, 239, 68, 19, 239, 67, 19, 239, 66, 19, 239, 65, 19, 239, 64, 19, 239,
- 63, 19, 239, 62, 19, 239, 61, 19, 239, 60, 19, 239, 59, 19, 239, 58, 19,
- 239, 57, 19, 239, 56, 19, 239, 55, 19, 239, 54, 19, 239, 53, 19, 239, 52,
- 19, 239, 51, 19, 239, 50, 19, 239, 49, 19, 239, 48, 19, 239, 47, 19, 239,
- 46, 19, 239, 45, 19, 239, 44, 19, 239, 43, 19, 239, 42, 19, 239, 41, 19,
- 239, 40, 19, 239, 39, 19, 239, 38, 19, 239, 37, 19, 239, 36, 19, 239, 35,
- 19, 239, 34, 19, 239, 33, 19, 239, 32, 19, 239, 31, 19, 239, 30, 19, 239,
- 29, 19, 239, 28, 37, 2, 27, 246, 98, 37, 2, 27, 246, 97, 37, 2, 27, 246,
- 96, 37, 2, 27, 246, 95, 37, 2, 27, 246, 94, 37, 2, 27, 246, 93, 37, 2,
- 27, 246, 92, 37, 2, 27, 246, 91, 37, 2, 27, 246, 90, 37, 2, 27, 246, 89,
- 37, 2, 27, 246, 88, 37, 2, 27, 246, 87, 37, 2, 27, 246, 86, 37, 2, 27,
- 246, 85, 37, 2, 27, 246, 84, 37, 2, 27, 246, 83, 37, 2, 27, 246, 82, 37,
- 2, 27, 246, 81, 37, 2, 27, 246, 80, 37, 2, 27, 246, 79, 37, 2, 27, 246,
- 78, 37, 2, 27, 246, 77, 37, 2, 27, 246, 76, 37, 2, 27, 246, 75, 37, 2,
- 27, 246, 74, 37, 2, 27, 246, 73, 37, 2, 27, 246, 72, 37, 2, 27, 246, 71,
- 37, 2, 27, 246, 70, 37, 2, 27, 246, 69, 37, 2, 27, 246, 68, 37, 2, 27,
- 246, 67, 37, 2, 27, 246, 66, 37, 2, 27, 246, 65, 37, 2, 27, 246, 64, 37,
- 2, 27, 246, 63, 37, 2, 27, 246, 62, 37, 2, 27, 246, 61, 37, 2, 27, 246,
- 60, 37, 2, 27, 246, 59, 37, 2, 27, 246, 58, 37, 2, 27, 246, 57, 37, 2,
- 27, 246, 56, 37, 2, 27, 246, 55, 37, 2, 27, 246, 54, 37, 2, 27, 246, 53,
- 37, 2, 27, 246, 52, 37, 2, 27, 246, 51, 37, 2, 27, 246, 50, 37, 2, 27,
- 246, 49, 37, 2, 27, 246, 48, 37, 2, 27, 246, 47, 37, 2, 27, 246, 46, 37,
- 2, 27, 246, 45, 37, 2, 27, 246, 44, 37, 2, 27, 246, 43, 37, 2, 27, 246,
- 42, 37, 2, 27, 246, 41, 37, 2, 27, 246, 40, 37, 2, 27, 246, 39, 37, 2,
- 27, 246, 38, 37, 2, 27, 246, 37, 37, 2, 27, 246, 36, 37, 2, 27, 246, 35,
- 37, 2, 27, 246, 34, 37, 2, 27, 246, 33, 37, 2, 27, 246, 32, 37, 2, 27,
- 246, 31, 37, 2, 27, 246, 30, 37, 2, 27, 246, 29, 37, 2, 27, 246, 28, 37,
- 2, 27, 246, 27, 37, 2, 27, 246, 26, 37, 2, 27, 246, 25, 37, 2, 27, 246,
- 24, 37, 2, 27, 246, 23, 37, 2, 27, 246, 22, 37, 2, 27, 246, 21, 37, 2,
- 27, 246, 20, 37, 2, 27, 246, 19, 37, 2, 27, 246, 18, 37, 2, 27, 246, 17,
- 37, 2, 27, 246, 16, 37, 2, 27, 246, 15, 37, 2, 27, 246, 14, 37, 2, 27,
- 246, 13, 37, 2, 27, 246, 12, 37, 2, 27, 246, 11, 37, 2, 27, 246, 10, 37,
- 2, 27, 246, 9, 37, 2, 27, 246, 8, 37, 2, 27, 246, 7, 37, 2, 27, 246, 6,
- 37, 2, 27, 246, 5, 37, 2, 27, 246, 4, 37, 2, 27, 246, 3, 37, 2, 27, 246,
- 2, 37, 2, 27, 246, 1, 37, 2, 27, 246, 0, 37, 2, 27, 245, 255, 37, 2, 27,
- 245, 254, 37, 2, 27, 245, 253, 37, 2, 27, 245, 252, 37, 2, 27, 245, 251,
- 37, 2, 27, 245, 250, 37, 2, 27, 245, 249, 37, 2, 27, 245, 248, 37, 2, 27,
- 245, 247, 37, 2, 27, 245, 246, 37, 2, 27, 245, 245, 37, 2, 27, 245, 244,
- 37, 2, 27, 245, 243, 37, 2, 27, 245, 242, 37, 2, 27, 245, 241, 37, 2, 27,
- 245, 240, 37, 2, 27, 245, 239, 37, 2, 27, 245, 238, 37, 2, 27, 245, 237,
- 37, 2, 27, 245, 236, 37, 2, 27, 245, 235, 37, 2, 27, 245, 234, 37, 2, 27,
- 245, 233, 37, 2, 27, 245, 232, 37, 2, 27, 245, 231, 37, 2, 27, 245, 230,
- 37, 2, 27, 245, 229, 37, 2, 27, 245, 228, 37, 2, 27, 245, 227, 37, 2, 27,
- 245, 226, 37, 2, 27, 245, 225, 37, 2, 27, 245, 224, 37, 2, 27, 245, 223,
- 37, 2, 27, 245, 222, 37, 2, 27, 245, 221, 37, 2, 27, 245, 220, 37, 2, 27,
- 245, 219, 37, 2, 27, 245, 218, 37, 2, 27, 245, 217, 37, 2, 27, 245, 216,
- 37, 2, 27, 245, 215, 37, 2, 27, 245, 214, 37, 2, 27, 245, 213, 37, 2, 27,
- 245, 212, 37, 2, 27, 245, 211, 37, 2, 27, 245, 210, 37, 2, 27, 245, 209,
- 37, 2, 27, 245, 208, 37, 2, 27, 245, 207, 37, 2, 27, 245, 206, 37, 2, 27,
- 245, 205, 37, 2, 27, 245, 204, 37, 2, 27, 245, 203, 37, 2, 27, 245, 202,
- 37, 2, 27, 245, 201, 37, 2, 27, 245, 200, 37, 2, 27, 245, 199, 37, 2, 27,
- 245, 198, 37, 2, 27, 245, 197, 37, 2, 27, 245, 196, 37, 2, 27, 245, 195,
- 37, 2, 27, 245, 194, 37, 2, 27, 245, 193, 37, 2, 27, 245, 192, 37, 2, 27,
- 245, 191, 37, 2, 27, 245, 190, 37, 2, 27, 245, 189, 37, 2, 27, 245, 188,
- 37, 2, 27, 245, 187, 37, 2, 27, 245, 186, 37, 2, 27, 245, 185, 37, 2, 27,
- 245, 184, 37, 2, 27, 245, 183, 37, 2, 27, 245, 182, 37, 2, 27, 245, 181,
- 37, 2, 27, 245, 180, 37, 2, 27, 245, 179, 37, 2, 27, 245, 178, 37, 2, 27,
- 245, 177, 37, 2, 27, 245, 176, 37, 2, 27, 245, 175, 37, 2, 27, 245, 174,
- 37, 2, 27, 245, 173, 37, 2, 27, 245, 172, 37, 2, 27, 245, 171, 37, 2, 27,
- 245, 170, 37, 2, 27, 245, 169, 37, 2, 27, 245, 168, 37, 2, 27, 245, 167,
- 37, 2, 27, 245, 166, 37, 2, 27, 245, 165, 37, 2, 27, 245, 164, 37, 2, 27,
- 245, 163, 37, 2, 27, 245, 162, 37, 2, 27, 245, 161, 37, 2, 27, 245, 160,
- 37, 2, 27, 245, 159, 37, 2, 27, 245, 158, 37, 2, 27, 245, 157, 37, 2, 27,
- 245, 156, 37, 2, 27, 245, 155, 37, 2, 27, 245, 154, 37, 2, 27, 245, 153,
- 37, 2, 27, 245, 152, 37, 2, 27, 245, 151, 37, 2, 27, 245, 150, 37, 2, 27,
- 245, 149, 37, 2, 27, 245, 148, 37, 2, 27, 245, 147, 37, 2, 27, 245, 146,
- 37, 2, 27, 245, 145, 37, 2, 27, 245, 144, 37, 2, 27, 245, 143, 37, 2, 27,
- 245, 142, 37, 2, 27, 245, 141, 37, 2, 27, 245, 140, 37, 2, 27, 245, 139,
- 37, 2, 27, 245, 138, 37, 2, 27, 245, 137, 37, 2, 27, 245, 136, 37, 2, 27,
- 245, 135, 37, 2, 27, 245, 134, 37, 2, 27, 245, 133, 37, 2, 27, 245, 132,
- 37, 2, 27, 245, 131, 37, 2, 27, 245, 130, 37, 2, 27, 245, 129, 37, 2, 27,
- 245, 128, 37, 2, 27, 245, 127, 37, 2, 27, 245, 126, 37, 2, 27, 245, 125,
- 37, 2, 27, 245, 124, 37, 2, 27, 245, 123, 37, 2, 27, 245, 122, 37, 2, 27,
- 245, 121, 37, 2, 27, 245, 120, 37, 2, 27, 245, 119, 37, 2, 27, 245, 118,
- 37, 2, 27, 245, 117, 37, 2, 27, 245, 116, 37, 2, 27, 245, 115, 37, 2, 27,
- 245, 114, 37, 2, 27, 245, 113, 37, 2, 27, 245, 112, 37, 2, 27, 245, 111,
- 37, 2, 27, 245, 110, 37, 2, 27, 245, 109, 37, 2, 27, 245, 108, 37, 2, 27,
- 245, 107, 37, 2, 27, 245, 106, 37, 2, 27, 245, 105, 37, 2, 27, 245, 104,
- 37, 2, 27, 245, 103, 37, 2, 27, 245, 102, 37, 2, 27, 245, 101, 37, 2, 27,
- 245, 100, 37, 2, 27, 245, 99, 37, 2, 27, 245, 98, 37, 2, 27, 245, 97, 37,
- 2, 27, 245, 96, 37, 2, 27, 245, 95, 37, 2, 27, 245, 94, 37, 2, 27, 245,
- 93, 37, 2, 27, 245, 92, 37, 2, 27, 245, 91, 37, 2, 27, 245, 90, 37, 2,
- 27, 245, 89, 37, 2, 27, 245, 88, 37, 2, 27, 245, 87, 37, 2, 27, 245, 86,
- 37, 2, 27, 245, 85, 37, 2, 27, 245, 84, 37, 2, 27, 245, 83, 37, 2, 27,
- 245, 82, 37, 2, 27, 245, 81, 37, 2, 27, 245, 80, 37, 2, 27, 245, 79, 37,
- 2, 27, 245, 78, 37, 2, 27, 245, 77, 37, 2, 27, 245, 76, 37, 2, 27, 245,
- 75, 37, 2, 27, 245, 74, 37, 2, 27, 245, 73, 37, 2, 27, 245, 72, 37, 2,
- 27, 245, 71, 37, 2, 27, 245, 70, 37, 2, 27, 245, 69, 37, 2, 27, 245, 68,
- 37, 2, 27, 245, 67, 37, 2, 27, 245, 66, 37, 2, 27, 245, 65, 37, 2, 27,
- 245, 64, 37, 2, 27, 245, 63, 37, 2, 27, 245, 62, 37, 2, 27, 245, 61, 37,
- 2, 27, 245, 60, 37, 2, 27, 245, 59, 37, 2, 27, 245, 58, 37, 2, 27, 245,
- 57, 37, 2, 27, 245, 56, 37, 2, 27, 245, 55, 37, 2, 27, 245, 54, 37, 2,
- 27, 245, 53, 37, 2, 27, 245, 52, 37, 2, 27, 245, 51, 37, 2, 27, 245, 50,
- 37, 2, 27, 245, 49, 37, 2, 27, 245, 48, 37, 2, 27, 245, 47, 37, 2, 27,
- 245, 46, 37, 2, 27, 245, 45, 37, 2, 27, 245, 44, 37, 2, 27, 245, 43, 37,
- 2, 27, 245, 42, 37, 2, 27, 245, 41, 37, 2, 27, 245, 40, 37, 2, 27, 245,
- 39, 37, 2, 27, 245, 38, 37, 2, 27, 245, 37, 37, 2, 27, 245, 36, 37, 2,
- 27, 245, 35, 37, 2, 27, 245, 34, 37, 2, 27, 245, 33, 37, 2, 27, 245, 32,
- 37, 2, 27, 245, 31, 37, 2, 27, 245, 30, 37, 2, 27, 245, 29, 37, 2, 27,
- 245, 28, 37, 2, 27, 245, 27, 37, 2, 27, 245, 26, 37, 2, 27, 245, 25, 37,
- 2, 27, 245, 24, 37, 2, 27, 245, 23, 37, 2, 27, 245, 22, 37, 2, 27, 245,
- 21, 37, 2, 27, 245, 20, 37, 2, 27, 245, 19, 37, 2, 27, 245, 18, 37, 2,
- 27, 245, 17, 37, 2, 27, 245, 16, 37, 2, 27, 245, 15, 37, 2, 27, 245, 14,
- 37, 2, 27, 245, 13, 37, 2, 27, 245, 12, 37, 2, 27, 245, 11, 37, 2, 27,
- 245, 10, 37, 2, 27, 245, 9, 37, 2, 27, 245, 8, 37, 2, 27, 245, 7, 37, 2,
- 27, 245, 6, 37, 2, 27, 245, 5, 37, 2, 27, 245, 4, 37, 2, 27, 245, 3, 37,
- 2, 27, 245, 2, 37, 2, 27, 245, 1, 37, 2, 27, 245, 0, 37, 2, 27, 244, 255,
- 37, 2, 27, 244, 254, 37, 2, 27, 244, 253, 37, 2, 27, 244, 252, 37, 2, 27,
- 244, 251, 37, 2, 27, 244, 250, 37, 2, 27, 244, 249, 37, 2, 27, 244, 248,
- 37, 2, 27, 244, 247, 37, 2, 27, 244, 246, 37, 2, 27, 244, 245, 37, 2, 27,
- 244, 244, 37, 2, 27, 244, 243, 37, 2, 27, 244, 242, 37, 2, 27, 244, 241,
- 37, 2, 27, 244, 240, 37, 2, 27, 244, 239, 37, 2, 27, 244, 238, 37, 2, 27,
- 244, 237, 37, 2, 27, 244, 236, 37, 2, 27, 244, 235, 37, 2, 27, 244, 234,
- 37, 2, 27, 244, 233, 37, 2, 27, 244, 232, 37, 2, 27, 244, 231, 37, 2, 27,
- 244, 230, 37, 2, 27, 244, 229, 37, 2, 27, 244, 228, 37, 2, 27, 244, 227,
- 37, 2, 27, 244, 226, 37, 2, 27, 244, 225, 37, 2, 27, 244, 224, 37, 2, 27,
- 244, 223, 37, 2, 27, 244, 222, 37, 2, 27, 244, 221, 37, 2, 27, 244, 220,
- 37, 2, 27, 244, 219, 37, 2, 27, 244, 218, 37, 2, 27, 244, 217, 37, 2, 27,
- 244, 216, 37, 2, 27, 244, 215, 37, 2, 27, 244, 214, 37, 2, 27, 244, 213,
- 37, 2, 27, 244, 212, 37, 2, 27, 244, 211, 37, 2, 27, 244, 210, 37, 2, 27,
- 244, 209, 37, 2, 27, 244, 208, 37, 2, 27, 244, 207, 37, 2, 27, 244, 206,
- 37, 2, 27, 244, 205, 37, 2, 27, 244, 204, 37, 2, 27, 244, 203, 37, 2, 27,
- 244, 202, 37, 2, 27, 244, 201, 37, 2, 27, 244, 200, 37, 2, 27, 244, 199,
- 37, 2, 27, 244, 198, 37, 2, 27, 244, 197, 37, 2, 27, 244, 196, 37, 2, 27,
- 244, 195, 37, 2, 27, 244, 194, 37, 2, 27, 244, 193, 37, 2, 27, 244, 192,
- 37, 2, 27, 244, 191, 37, 2, 27, 244, 190, 37, 2, 27, 244, 189, 37, 2, 27,
- 244, 188, 37, 2, 27, 244, 187, 37, 2, 27, 244, 186, 37, 2, 27, 244, 185,
- 37, 2, 27, 244, 184, 37, 2, 27, 244, 183, 37, 2, 27, 244, 182, 37, 2, 27,
- 244, 181, 37, 2, 27, 244, 180, 37, 2, 27, 244, 179, 37, 2, 27, 244, 178,
- 37, 2, 27, 244, 177, 37, 2, 27, 244, 176, 37, 2, 27, 244, 175, 37, 2, 27,
- 244, 174, 37, 2, 27, 244, 173, 37, 2, 27, 244, 172, 37, 2, 27, 244, 171,
- 37, 2, 27, 244, 170, 37, 2, 27, 244, 169, 37, 2, 27, 244, 168, 37, 2, 27,
- 244, 167, 37, 2, 27, 244, 166, 37, 2, 27, 244, 165, 37, 2, 27, 244, 164,
- 37, 2, 27, 244, 163, 37, 2, 27, 244, 162, 37, 2, 27, 244, 161, 37, 2, 27,
- 244, 160, 37, 2, 27, 244, 159, 37, 2, 27, 244, 158, 37, 2, 27, 244, 157,
- 37, 2, 27, 244, 156, 37, 2, 27, 244, 155, 37, 2, 27, 244, 154, 37, 2, 27,
- 244, 153, 37, 2, 27, 244, 152, 37, 2, 27, 244, 151, 37, 2, 27, 244, 150,
- 37, 2, 27, 244, 149, 37, 2, 27, 244, 148, 37, 2, 27, 244, 147, 37, 2, 27,
- 244, 146, 37, 2, 27, 244, 145, 37, 2, 27, 244, 144, 37, 2, 27, 244, 143,
- 37, 2, 27, 244, 142, 37, 2, 27, 244, 141, 75, 1, 250, 112, 71, 229, 140,
- 1, 250, 112, 193, 69, 59, 1, 255, 33, 59, 1, 255, 32, 59, 1, 255, 31, 59,
- 1, 255, 27, 59, 1, 228, 96, 59, 1, 228, 95, 59, 1, 228, 94, 59, 1, 228,
- 93, 59, 1, 197, 182, 59, 1, 197, 181, 59, 1, 197, 180, 59, 1, 197, 179,
- 59, 1, 197, 178, 59, 1, 234, 251, 59, 1, 234, 250, 59, 1, 234, 249, 59,
- 1, 234, 248, 59, 1, 234, 247, 59, 1, 212, 114, 59, 1, 212, 113, 59, 1,
- 212, 112, 59, 1, 222, 173, 59, 1, 222, 170, 59, 1, 222, 169, 59, 1, 222,
- 168, 59, 1, 222, 167, 59, 1, 222, 166, 59, 1, 222, 165, 59, 1, 222, 164,
- 59, 1, 222, 163, 59, 1, 222, 172, 59, 1, 222, 171, 59, 1, 222, 162, 59,
- 1, 221, 203, 59, 1, 221, 202, 59, 1, 221, 201, 59, 1, 221, 200, 59, 1,
- 221, 199, 59, 1, 221, 198, 59, 1, 221, 197, 59, 1, 221, 196, 59, 1, 221,
- 32, 59, 1, 221, 31, 59, 1, 221, 30, 59, 1, 221, 29, 59, 1, 221, 28, 59,
- 1, 221, 27, 59, 1, 221, 26, 59, 1, 222, 56, 59, 1, 222, 55, 59, 1, 222,
- 54, 59, 1, 222, 53, 59, 1, 222, 52, 59, 1, 222, 51, 59, 1, 221, 112, 59,
- 1, 221, 111, 59, 1, 221, 110, 59, 1, 221, 109, 59, 1, 206, 100, 59, 1,
- 206, 99, 59, 1, 206, 98, 59, 1, 206, 97, 59, 1, 206, 96, 59, 1, 206, 95,
- 59, 1, 206, 94, 59, 1, 206, 93, 59, 1, 203, 124, 59, 1, 203, 123, 59, 1,
- 203, 122, 59, 1, 203, 121, 59, 1, 203, 120, 59, 1, 203, 119, 59, 1, 201,
- 183, 59, 1, 201, 182, 59, 1, 201, 181, 59, 1, 201, 180, 59, 1, 201, 179,
- 59, 1, 201, 178, 59, 1, 201, 177, 59, 1, 201, 176, 59, 1, 205, 222, 59,
- 1, 205, 221, 59, 1, 205, 220, 59, 1, 205, 219, 59, 1, 205, 218, 59, 1,
- 202, 211, 59, 1, 202, 210, 59, 1, 202, 209, 59, 1, 202, 208, 59, 1, 202,
- 207, 59, 1, 202, 206, 59, 1, 202, 205, 59, 1, 200, 180, 59, 1, 200, 179,
- 59, 1, 200, 178, 59, 1, 200, 177, 59, 1, 199, 127, 59, 1, 199, 126, 59,
- 1, 199, 125, 59, 1, 199, 124, 59, 1, 199, 123, 59, 1, 199, 122, 59, 1,
- 199, 121, 59, 1, 198, 44, 59, 1, 198, 43, 59, 1, 198, 42, 59, 1, 198, 41,
- 59, 1, 198, 40, 59, 1, 200, 78, 59, 1, 200, 77, 59, 1, 200, 76, 59, 1,
- 200, 75, 59, 1, 200, 74, 59, 1, 200, 73, 59, 1, 200, 72, 59, 1, 200, 71,
- 59, 1, 200, 70, 59, 1, 199, 36, 59, 1, 199, 35, 59, 1, 199, 34, 59, 1,
- 199, 33, 59, 1, 199, 32, 59, 1, 199, 31, 59, 1, 199, 30, 59, 1, 215, 96,
- 59, 1, 215, 95, 59, 1, 215, 94, 59, 1, 215, 93, 59, 1, 215, 92, 59, 1,
- 215, 91, 59, 1, 215, 90, 59, 1, 215, 89, 59, 1, 215, 88, 59, 1, 214, 59,
- 59, 1, 214, 58, 59, 1, 214, 57, 59, 1, 214, 56, 59, 1, 214, 55, 59, 1,
- 214, 54, 59, 1, 214, 53, 59, 1, 214, 52, 59, 1, 213, 21, 59, 1, 213, 20,
- 59, 1, 213, 19, 59, 1, 214, 213, 59, 1, 214, 212, 59, 1, 214, 211, 59, 1,
- 214, 210, 59, 1, 214, 209, 59, 1, 214, 208, 59, 1, 214, 207, 59, 1, 213,
- 141, 59, 1, 213, 140, 59, 1, 213, 139, 59, 1, 213, 138, 59, 1, 213, 137,
- 59, 1, 230, 112, 59, 1, 230, 109, 59, 1, 230, 108, 59, 1, 230, 107, 59,
- 1, 230, 106, 59, 1, 230, 105, 59, 1, 230, 104, 59, 1, 230, 103, 59, 1,
- 230, 102, 59, 1, 230, 111, 59, 1, 230, 110, 59, 1, 229, 177, 59, 1, 229,
- 176, 59, 1, 229, 175, 59, 1, 229, 174, 59, 1, 229, 173, 59, 1, 229, 172,
- 59, 1, 229, 171, 59, 1, 228, 180, 59, 1, 228, 179, 59, 1, 228, 178, 59,
- 1, 229, 254, 59, 1, 229, 253, 59, 1, 229, 252, 59, 1, 229, 251, 59, 1,
- 229, 250, 59, 1, 229, 249, 59, 1, 229, 248, 59, 1, 229, 42, 59, 1, 229,
- 41, 59, 1, 229, 40, 59, 1, 229, 39, 59, 1, 229, 38, 59, 1, 229, 37, 59,
- 1, 229, 36, 59, 1, 229, 35, 59, 1, 217, 227, 59, 1, 217, 226, 59, 1, 217,
- 225, 59, 1, 217, 224, 59, 1, 217, 223, 59, 1, 217, 222, 59, 1, 217, 221,
- 59, 1, 216, 174, 59, 1, 216, 173, 59, 1, 216, 172, 59, 1, 216, 171, 59,
- 1, 216, 170, 59, 1, 216, 169, 59, 1, 216, 168, 59, 1, 215, 240, 59, 1,
- 215, 239, 59, 1, 215, 238, 59, 1, 215, 237, 59, 1, 217, 47, 59, 1, 217,
- 46, 59, 1, 217, 45, 59, 1, 216, 90, 59, 1, 216, 89, 59, 1, 216, 88, 59,
- 1, 216, 87, 59, 1, 216, 86, 59, 1, 216, 85, 59, 1, 193, 137, 59, 1, 193,
- 136, 59, 1, 193, 135, 59, 1, 193, 134, 59, 1, 193, 133, 59, 1, 193, 130,
- 59, 1, 192, 213, 59, 1, 192, 212, 59, 1, 192, 211, 59, 1, 192, 210, 59,
- 1, 193, 0, 59, 1, 192, 255, 59, 1, 192, 254, 59, 1, 192, 253, 59, 1, 192,
- 252, 59, 1, 192, 251, 59, 1, 208, 75, 59, 1, 208, 74, 59, 1, 208, 73, 59,
- 1, 208, 72, 59, 1, 207, 150, 59, 1, 207, 149, 59, 1, 207, 148, 59, 1,
- 207, 147, 59, 1, 207, 146, 59, 1, 207, 145, 59, 1, 207, 144, 59, 1, 206,
- 217, 59, 1, 206, 216, 59, 1, 206, 215, 59, 1, 206, 214, 59, 1, 206, 213,
- 59, 1, 206, 212, 59, 1, 208, 6, 59, 1, 208, 5, 59, 1, 208, 4, 59, 1, 208,
- 3, 59, 1, 207, 54, 59, 1, 207, 53, 59, 1, 207, 52, 59, 1, 207, 51, 59, 1,
- 207, 50, 59, 1, 207, 49, 59, 1, 194, 168, 59, 1, 194, 167, 59, 1, 194,
- 166, 59, 1, 194, 165, 59, 1, 194, 164, 59, 1, 194, 71, 59, 1, 194, 70,
- 59, 1, 194, 69, 59, 1, 194, 68, 59, 1, 194, 67, 59, 1, 194, 110, 59, 1,
- 194, 109, 59, 1, 194, 108, 59, 1, 194, 107, 59, 1, 194, 35, 59, 1, 194,
- 34, 59, 1, 194, 33, 59, 1, 194, 32, 59, 1, 194, 31, 59, 1, 194, 30, 59,
- 1, 194, 29, 59, 1, 215, 148, 59, 1, 215, 147, 229, 140, 1, 2, 194, 72,
- 229, 140, 1, 2, 194, 111, 229, 140, 1, 2, 194, 36, 75, 1, 2, 194, 72, 75,
- 1, 2, 194, 111, 75, 1, 2, 194, 36, 75, 1, 2, 215, 151, 45, 244, 140, 45,
- 244, 139, 45, 244, 138, 45, 244, 137, 45, 244, 136, 45, 244, 135, 45,
- 244, 134, 45, 244, 133, 45, 244, 132, 45, 244, 131, 45, 244, 130, 45,
- 244, 129, 45, 244, 128, 45, 244, 127, 45, 244, 126, 45, 244, 125, 45,
- 244, 124, 45, 244, 123, 45, 244, 122, 45, 244, 121, 45, 244, 120, 45,
- 244, 119, 45, 244, 118, 45, 244, 117, 45, 244, 116, 45, 244, 115, 45,
- 244, 114, 45, 244, 113, 45, 244, 112, 45, 244, 111, 45, 244, 110, 45,
- 244, 109, 45, 244, 108, 45, 244, 107, 45, 244, 106, 45, 244, 105, 45,
- 244, 104, 45, 244, 103, 45, 244, 102, 45, 244, 101, 45, 244, 100, 45,
- 244, 99, 45, 244, 98, 45, 244, 97, 45, 244, 96, 45, 244, 95, 45, 244, 94,
- 45, 244, 93, 45, 244, 92, 45, 244, 91, 45, 244, 90, 45, 244, 89, 45, 244,
- 88, 45, 244, 87, 45, 244, 86, 45, 244, 85, 45, 244, 84, 45, 244, 83, 45,
- 244, 82, 45, 244, 81, 45, 244, 80, 45, 244, 79, 45, 244, 78, 45, 244, 77,
- 45, 244, 76, 45, 244, 75, 45, 244, 74, 45, 244, 73, 45, 244, 72, 45, 244,
- 71, 45, 244, 70, 45, 244, 69, 45, 244, 68, 45, 244, 67, 45, 244, 66, 45,
- 244, 65, 45, 244, 64, 45, 244, 63, 45, 244, 62, 45, 244, 61, 45, 244, 60,
- 45, 244, 59, 45, 244, 58, 45, 244, 57, 45, 244, 56, 45, 244, 55, 45, 244,
- 54, 45, 244, 53, 45, 244, 52, 45, 244, 51, 45, 244, 50, 45, 244, 49, 45,
- 244, 48, 45, 244, 47, 45, 244, 46, 45, 244, 45, 45, 244, 44, 45, 244, 43,
- 45, 244, 42, 45, 244, 41, 45, 244, 40, 45, 244, 39, 45, 244, 38, 45, 244,
- 37, 45, 244, 36, 45, 244, 35, 45, 244, 34, 45, 244, 33, 45, 244, 32, 45,
- 244, 31, 45, 244, 30, 45, 244, 29, 45, 244, 28, 45, 244, 27, 45, 244, 26,
- 45, 244, 25, 45, 244, 24, 45, 244, 23, 45, 244, 22, 45, 244, 21, 45, 244,
- 20, 45, 244, 19, 45, 244, 18, 45, 244, 17, 45, 244, 16, 45, 244, 15, 45,
- 244, 14, 45, 244, 13, 45, 244, 12, 45, 244, 11, 45, 244, 10, 45, 244, 9,
- 45, 244, 8, 45, 244, 7, 45, 244, 6, 45, 244, 5, 45, 244, 4, 45, 244, 3,
- 45, 244, 2, 45, 244, 1, 45, 244, 0, 45, 243, 255, 45, 243, 254, 45, 243,
- 253, 45, 243, 252, 45, 243, 251, 45, 243, 250, 45, 243, 249, 45, 243,
- 248, 45, 243, 247, 45, 243, 246, 45, 243, 245, 45, 243, 244, 45, 243,
- 243, 45, 243, 242, 45, 243, 241, 45, 243, 240, 45, 243, 239, 45, 243,
- 238, 45, 243, 237, 45, 243, 236, 45, 243, 235, 45, 243, 234, 45, 243,
- 233, 45, 243, 232, 45, 243, 231, 45, 243, 230, 45, 243, 229, 45, 243,
- 228, 45, 243, 227, 45, 243, 226, 45, 243, 225, 45, 243, 224, 45, 243,
- 223, 45, 243, 222, 45, 243, 221, 45, 243, 220, 45, 243, 219, 45, 243,
- 218, 45, 243, 217, 45, 243, 216, 45, 243, 215, 45, 243, 214, 45, 243,
- 213, 45, 243, 212, 45, 243, 211, 45, 243, 210, 45, 243, 209, 45, 243,
- 208, 45, 243, 207, 45, 243, 206, 45, 243, 205, 45, 243, 204, 45, 243,
- 203, 45, 243, 202, 45, 243, 201, 45, 243, 200, 45, 243, 199, 45, 243,
- 198, 45, 243, 197, 45, 243, 196, 45, 243, 195, 45, 243, 194, 45, 243,
- 193, 45, 243, 192, 45, 243, 191, 45, 243, 190, 45, 243, 189, 45, 243,
- 188, 45, 243, 187, 45, 243, 186, 45, 243, 185, 45, 243, 184, 45, 243,
- 183, 45, 243, 182, 45, 243, 181, 45, 243, 180, 45, 243, 179, 45, 243,
- 178, 45, 243, 177, 45, 243, 176, 45, 243, 175, 45, 243, 174, 45, 243,
- 173, 45, 243, 172, 45, 243, 171, 45, 243, 170, 45, 243, 169, 45, 243,
- 168, 45, 243, 167, 45, 243, 166, 45, 243, 165, 45, 243, 164, 45, 243,
- 163, 45, 243, 162, 45, 243, 161, 45, 243, 160, 45, 243, 159, 45, 243,
- 158, 45, 243, 157, 45, 243, 156, 45, 243, 155, 45, 243, 154, 45, 243,
- 153, 45, 243, 152, 45, 243, 151, 45, 243, 150, 45, 243, 149, 45, 243,
- 148, 45, 243, 147, 45, 243, 146, 45, 243, 145, 45, 243, 144, 45, 243,
- 143, 45, 243, 142, 45, 243, 141, 45, 243, 140, 45, 243, 139, 45, 243,
- 138, 45, 243, 137, 45, 243, 136, 45, 243, 135, 45, 243, 134, 45, 243,
- 133, 45, 243, 132, 45, 243, 131, 45, 243, 130, 45, 243, 129, 45, 243,
- 128, 45, 243, 127, 45, 243, 126, 45, 243, 125, 45, 243, 124, 45, 243,
- 123, 45, 243, 122, 45, 243, 121, 45, 243, 120, 45, 243, 119, 45, 243,
- 118, 45, 243, 117, 45, 243, 116, 45, 243, 115, 45, 243, 114, 45, 243,
- 113, 45, 243, 112, 45, 243, 111, 45, 243, 110, 45, 243, 109, 45, 243,
- 108, 45, 243, 107, 45, 243, 106, 45, 243, 105, 45, 243, 104, 45, 243,
- 103, 45, 243, 102, 45, 243, 101, 45, 243, 100, 45, 243, 99, 45, 243, 98,
- 45, 243, 97, 45, 243, 96, 45, 243, 95, 45, 243, 94, 45, 243, 93, 45, 243,
- 92, 45, 243, 91, 45, 243, 90, 45, 243, 89, 45, 243, 88, 45, 243, 87, 45,
- 243, 86, 45, 243, 85, 45, 243, 84, 45, 243, 83, 45, 243, 82, 45, 243, 81,
- 45, 243, 80, 45, 243, 79, 45, 243, 78, 45, 243, 77, 45, 243, 76, 45, 243,
- 75, 45, 243, 74, 45, 243, 73, 45, 243, 72, 45, 243, 71, 45, 243, 70, 45,
- 243, 69, 45, 243, 68, 45, 243, 67, 45, 243, 66, 45, 243, 65, 45, 243, 64,
- 45, 243, 63, 45, 243, 62, 45, 243, 61, 45, 243, 60, 45, 243, 59, 45, 243,
- 58, 45, 243, 57, 45, 243, 56, 45, 243, 55, 45, 243, 54, 45, 243, 53, 45,
- 243, 52, 45, 243, 51, 45, 243, 50, 45, 243, 49, 45, 243, 48, 45, 243, 47,
- 45, 243, 46, 45, 243, 45, 45, 243, 44, 45, 243, 43, 45, 243, 42, 45, 243,
- 41, 45, 243, 40, 45, 243, 39, 45, 243, 38, 45, 243, 37, 45, 243, 36, 45,
- 243, 35, 45, 243, 34, 45, 243, 33, 45, 243, 32, 45, 243, 31, 45, 243, 30,
- 45, 243, 29, 45, 243, 28, 45, 243, 27, 45, 243, 26, 45, 243, 25, 45, 243,
- 24, 45, 243, 23, 45, 243, 22, 45, 243, 21, 45, 243, 20, 45, 243, 19, 45,
- 243, 18, 45, 243, 17, 45, 243, 16, 45, 243, 15, 45, 243, 14, 45, 243, 13,
- 45, 243, 12, 45, 243, 11, 45, 243, 10, 45, 243, 9, 45, 243, 8, 45, 243,
- 7, 45, 243, 6, 45, 243, 5, 45, 243, 4, 45, 243, 3, 45, 243, 2, 45, 243,
- 1, 121, 1, 230, 124, 121, 1, 193, 223, 121, 1, 211, 93, 121, 1, 200, 228,
- 121, 1, 233, 163, 121, 1, 222, 184, 121, 1, 165, 121, 1, 249, 226, 121,
- 1, 238, 95, 121, 1, 196, 236, 121, 1, 232, 44, 121, 1, 150, 121, 1, 211,
- 94, 215, 151, 121, 1, 238, 96, 206, 158, 121, 1, 233, 164, 215, 151, 121,
- 1, 222, 185, 218, 236, 121, 1, 208, 112, 206, 158, 121, 1, 199, 242, 121,
- 1, 202, 246, 237, 41, 121, 1, 237, 41, 121, 1, 221, 140, 121, 1, 202,
- 246, 223, 65, 121, 1, 229, 132, 121, 1, 219, 223, 121, 1, 207, 157, 121,
- 1, 218, 236, 121, 1, 215, 151, 121, 1, 223, 65, 121, 1, 206, 158, 121, 1,
- 218, 237, 215, 151, 121, 1, 215, 152, 218, 236, 121, 1, 223, 66, 218,
- 236, 121, 1, 206, 159, 223, 65, 121, 1, 218, 237, 4, 236, 114, 121, 1,
- 215, 152, 4, 236, 114, 121, 1, 223, 66, 4, 236, 114, 121, 1, 223, 66, 4,
- 236, 112, 223, 146, 26, 58, 121, 1, 206, 159, 4, 236, 114, 121, 1, 206,
- 159, 4, 78, 63, 121, 1, 218, 237, 206, 158, 121, 1, 215, 152, 206, 158,
- 121, 1, 223, 66, 206, 158, 121, 1, 206, 159, 206, 158, 121, 1, 218, 237,
- 215, 152, 206, 158, 121, 1, 215, 152, 218, 237, 206, 158, 121, 1, 223,
- 66, 218, 237, 206, 158, 121, 1, 206, 159, 223, 66, 206, 158, 121, 1, 223,
- 66, 206, 159, 4, 236, 114, 121, 1, 223, 66, 215, 151, 121, 1, 223, 66,
- 215, 152, 206, 158, 121, 1, 206, 159, 200, 228, 121, 1, 206, 159, 200,
- 229, 150, 121, 1, 206, 159, 211, 93, 121, 1, 206, 159, 211, 94, 150, 121,
- 1, 200, 229, 206, 158, 121, 1, 200, 229, 208, 112, 206, 158, 121, 1, 194,
- 202, 121, 1, 194, 83, 121, 1, 194, 203, 150, 121, 1, 206, 159, 215, 151,
- 121, 1, 206, 159, 218, 236, 121, 1, 222, 185, 208, 112, 206, 158, 121, 1,
- 232, 45, 208, 112, 206, 158, 121, 1, 206, 159, 222, 184, 121, 1, 206,
- 159, 222, 185, 150, 121, 1, 64, 121, 1, 202, 246, 211, 106, 121, 1, 212,
- 26, 121, 1, 74, 121, 1, 250, 164, 121, 1, 70, 121, 1, 71, 121, 1, 223,
- 251, 121, 1, 203, 195, 70, 121, 1, 197, 95, 121, 1, 234, 171, 121, 1,
- 202, 246, 234, 157, 121, 1, 207, 29, 70, 121, 1, 202, 246, 234, 171, 121,
- 1, 184, 70, 121, 1, 193, 69, 121, 1, 68, 121, 1, 233, 230, 121, 1, 193,
- 171, 121, 1, 124, 215, 151, 121, 1, 184, 68, 121, 1, 207, 29, 68, 121, 1,
- 197, 97, 121, 1, 202, 246, 68, 121, 1, 211, 191, 121, 1, 211, 106, 121,
- 1, 211, 130, 121, 1, 194, 169, 121, 1, 194, 36, 121, 1, 194, 72, 121, 1,
- 194, 98, 121, 1, 194, 2, 121, 1, 215, 49, 68, 121, 1, 215, 49, 74, 121,
- 1, 215, 49, 70, 121, 1, 215, 49, 64, 121, 1, 210, 122, 250, 224, 121, 1,
- 210, 122, 250, 241, 121, 1, 202, 246, 234, 88, 121, 1, 202, 246, 250,
- 224, 121, 1, 202, 246, 211, 211, 121, 1, 118, 218, 236, 121, 251, 87, 46,
- 229, 5, 205, 213, 121, 251, 87, 216, 162, 229, 5, 205, 213, 121, 251, 87,
- 51, 229, 5, 205, 213, 121, 251, 87, 132, 84, 205, 213, 121, 251, 87, 216,
- 162, 84, 205, 213, 121, 251, 87, 139, 84, 205, 213, 121, 251, 87, 250,
- 14, 205, 213, 121, 251, 87, 250, 14, 220, 19, 205, 213, 121, 251, 87,
- 250, 14, 200, 120, 121, 251, 87, 250, 14, 200, 147, 121, 251, 87, 250,
- 14, 234, 253, 128, 121, 251, 87, 250, 14, 228, 97, 128, 121, 251, 87,
- 250, 14, 200, 121, 128, 121, 251, 87, 139, 251, 129, 121, 251, 87, 139,
- 199, 107, 251, 129, 121, 251, 87, 139, 230, 210, 121, 251, 87, 139, 184,
- 230, 210, 121, 251, 87, 139, 236, 114, 121, 251, 87, 139, 242, 130, 121,
- 251, 87, 139, 219, 175, 121, 251, 87, 139, 194, 124, 121, 251, 87, 139,
- 196, 105, 121, 251, 87, 132, 251, 129, 121, 251, 87, 132, 199, 107, 251,
- 129, 121, 251, 87, 132, 230, 210, 121, 251, 87, 132, 184, 230, 210, 121,
- 251, 87, 132, 236, 114, 121, 251, 87, 132, 242, 130, 121, 251, 87, 132,
- 219, 175, 121, 251, 87, 132, 194, 124, 121, 251, 87, 132, 196, 105, 121,
- 251, 87, 132, 54, 121, 3, 185, 4, 238, 183, 121, 199, 200, 1, 205, 189,
- 121, 55, 77, 121, 209, 38, 242, 198, 232, 71, 201, 238, 203, 182, 232,
- 135, 1, 211, 113, 203, 182, 232, 135, 238, 249, 211, 113, 203, 182, 232,
- 135, 142, 201, 253, 203, 182, 232, 135, 130, 201, 253, 69, 35, 16, 209,
- 55, 69, 35, 16, 237, 187, 69, 35, 16, 210, 126, 69, 35, 16, 211, 102,
- 234, 128, 69, 35, 16, 211, 102, 236, 210, 69, 35, 16, 196, 141, 234, 128,
- 69, 35, 16, 196, 141, 236, 210, 69, 35, 16, 222, 78, 69, 35, 16, 200,
- 245, 69, 35, 16, 210, 237, 69, 35, 16, 192, 220, 69, 35, 16, 192, 221,
- 236, 210, 69, 35, 16, 221, 51, 69, 35, 16, 250, 159, 234, 128, 69, 35,
- 16, 233, 198, 234, 128, 69, 35, 16, 200, 43, 69, 35, 16, 222, 26, 69, 35,
- 16, 250, 148, 69, 35, 16, 250, 149, 236, 210, 69, 35, 16, 200, 252, 69,
- 35, 16, 199, 179, 69, 35, 16, 211, 222, 250, 110, 69, 35, 16, 230, 237,
- 250, 110, 69, 35, 16, 209, 54, 69, 35, 16, 246, 108, 69, 35, 16, 196,
- 130, 69, 35, 16, 223, 87, 250, 110, 69, 35, 16, 222, 28, 250, 110, 69,
- 35, 16, 222, 27, 250, 110, 69, 35, 16, 206, 3, 69, 35, 16, 210, 227, 69,
- 35, 16, 202, 7, 250, 152, 69, 35, 16, 211, 101, 250, 110, 69, 35, 16,
- 196, 140, 250, 110, 69, 35, 16, 250, 153, 250, 110, 69, 35, 16, 250, 146,
- 69, 35, 16, 221, 130, 69, 35, 16, 207, 164, 69, 35, 16, 210, 49, 250,
- 110, 69, 35, 16, 199, 80, 69, 35, 16, 250, 220, 69, 35, 16, 205, 192, 69,
- 35, 16, 201, 0, 250, 110, 69, 35, 16, 201, 0, 216, 241, 202, 5, 69, 35,
- 16, 211, 96, 250, 110, 69, 35, 16, 199, 218, 69, 35, 16, 220, 6, 69, 35,
- 16, 235, 20, 69, 35, 16, 198, 187, 69, 35, 16, 200, 11, 69, 35, 16, 221,
- 54, 69, 35, 16, 250, 159, 233, 198, 214, 192, 69, 35, 16, 232, 79, 250,
- 110, 69, 35, 16, 223, 203, 69, 35, 16, 198, 156, 250, 110, 69, 35, 16,
- 222, 81, 198, 155, 69, 35, 16, 210, 156, 69, 35, 16, 209, 59, 69, 35, 16,
- 221, 89, 69, 35, 16, 242, 180, 250, 110, 69, 35, 16, 208, 27, 69, 35, 16,
- 210, 240, 250, 110, 69, 35, 16, 210, 238, 250, 110, 69, 35, 16, 228, 47,
- 69, 35, 16, 215, 60, 69, 35, 16, 210, 104, 69, 35, 16, 221, 90, 251, 3,
- 69, 35, 16, 198, 156, 251, 3, 69, 35, 16, 201, 232, 69, 35, 16, 230, 196,
- 69, 35, 16, 223, 87, 214, 192, 69, 35, 16, 211, 222, 214, 192, 69, 35,
- 16, 211, 102, 214, 192, 69, 35, 16, 210, 103, 69, 35, 16, 221, 74, 69,
- 35, 16, 210, 102, 69, 35, 16, 221, 53, 69, 35, 16, 210, 157, 214, 192,
- 69, 35, 16, 222, 27, 214, 193, 250, 190, 69, 35, 16, 222, 28, 214, 193,
- 250, 190, 69, 35, 16, 192, 218, 69, 35, 16, 250, 149, 214, 192, 69, 35,
- 16, 250, 150, 200, 253, 214, 192, 69, 35, 16, 192, 219, 69, 35, 16, 221,
- 52, 69, 35, 16, 234, 123, 69, 35, 16, 246, 109, 69, 35, 16, 216, 133,
- 223, 86, 69, 35, 16, 196, 141, 214, 192, 69, 35, 16, 210, 49, 214, 192,
- 69, 35, 16, 209, 60, 214, 192, 69, 35, 16, 211, 218, 69, 35, 16, 250,
- 177, 69, 35, 16, 218, 247, 69, 35, 16, 210, 238, 214, 192, 69, 35, 16,
- 210, 240, 214, 192, 69, 35, 16, 233, 236, 210, 239, 69, 35, 16, 220, 206,
- 69, 35, 16, 250, 178, 69, 35, 16, 198, 156, 214, 192, 69, 35, 16, 234,
- 126, 69, 35, 16, 201, 0, 214, 192, 69, 35, 16, 200, 246, 69, 35, 16, 242,
- 180, 214, 192, 69, 35, 16, 234, 38, 69, 35, 16, 205, 193, 214, 192, 69,
- 35, 16, 193, 188, 221, 130, 69, 35, 16, 198, 153, 69, 35, 16, 209, 61,
- 69, 35, 16, 198, 157, 69, 35, 16, 198, 154, 69, 35, 16, 209, 58, 69, 35,
- 16, 198, 152, 69, 35, 16, 209, 57, 69, 35, 16, 230, 236, 69, 35, 16, 250,
- 102, 69, 35, 16, 233, 236, 250, 102, 69, 35, 16, 211, 96, 214, 192, 69,
- 35, 16, 199, 217, 233, 249, 69, 35, 16, 199, 217, 233, 197, 69, 35, 16,
- 199, 219, 250, 154, 69, 35, 16, 199, 211, 222, 136, 250, 145, 69, 35, 16,
- 222, 80, 69, 35, 16, 234, 75, 69, 35, 16, 193, 27, 222, 77, 69, 35, 16,
- 193, 27, 250, 190, 69, 35, 16, 202, 6, 69, 35, 16, 221, 131, 250, 190,
- 69, 35, 16, 236, 211, 250, 110, 69, 35, 16, 221, 55, 250, 110, 69, 35,
- 16, 221, 55, 251, 3, 69, 35, 16, 221, 55, 214, 192, 69, 35, 16, 250, 153,
- 214, 192, 69, 35, 16, 250, 155, 69, 35, 16, 236, 210, 69, 35, 16, 198,
- 168, 69, 35, 16, 200, 1, 69, 35, 16, 221, 78, 69, 35, 16, 220, 11, 234,
- 68, 242, 170, 69, 35, 16, 220, 11, 235, 21, 242, 171, 69, 35, 16, 220,
- 11, 198, 171, 242, 171, 69, 35, 16, 220, 11, 200, 13, 242, 171, 69, 35,
- 16, 220, 11, 223, 198, 242, 170, 69, 35, 16, 230, 237, 214, 193, 250,
- 190, 69, 35, 16, 230, 237, 210, 228, 250, 98, 69, 35, 16, 230, 237, 210,
- 228, 237, 45, 69, 35, 16, 236, 235, 69, 35, 16, 236, 236, 210, 228, 250,
- 99, 222, 77, 69, 35, 16, 236, 236, 210, 228, 250, 99, 250, 190, 69, 35,
- 16, 236, 236, 210, 228, 237, 45, 69, 35, 16, 198, 176, 69, 35, 16, 250,
- 103, 69, 35, 16, 223, 205, 69, 35, 16, 237, 2, 69, 35, 16, 251, 74, 209,
- 181, 250, 104, 69, 35, 16, 251, 74, 250, 101, 69, 35, 16, 251, 74, 250,
- 104, 69, 35, 16, 251, 74, 216, 235, 69, 35, 16, 251, 74, 216, 246, 69,
- 35, 16, 251, 74, 230, 238, 69, 35, 16, 251, 74, 230, 235, 69, 35, 16,
- 251, 74, 209, 181, 230, 238, 69, 35, 16, 217, 116, 209, 67, 228, 45, 69,
- 35, 16, 217, 116, 251, 5, 209, 67, 228, 45, 69, 35, 16, 217, 116, 237,
- 44, 228, 45, 69, 35, 16, 217, 116, 251, 5, 237, 44, 228, 45, 69, 35, 16,
- 217, 116, 198, 163, 228, 45, 69, 35, 16, 217, 116, 198, 177, 69, 35, 16,
- 217, 116, 200, 6, 228, 45, 69, 35, 16, 217, 116, 200, 6, 220, 15, 228,
- 45, 69, 35, 16, 217, 116, 220, 15, 228, 45, 69, 35, 16, 217, 116, 209,
- 229, 228, 45, 69, 35, 16, 223, 94, 200, 36, 228, 46, 69, 35, 16, 250,
- 150, 200, 36, 228, 46, 69, 35, 16, 233, 67, 200, 3, 69, 35, 16, 233, 67,
- 216, 46, 69, 35, 16, 233, 67, 236, 241, 69, 35, 16, 217, 116, 196, 134,
- 228, 45, 69, 35, 16, 217, 116, 209, 66, 228, 45, 69, 35, 16, 217, 116,
- 209, 229, 200, 6, 228, 45, 69, 35, 16, 230, 232, 215, 152, 250, 154, 69,
- 35, 16, 230, 232, 215, 152, 236, 209, 69, 35, 16, 234, 86, 222, 136, 232,
- 79, 195, 231, 69, 35, 16, 223, 204, 69, 35, 16, 223, 202, 69, 35, 16,
- 232, 79, 250, 111, 237, 43, 228, 44, 69, 35, 16, 232, 79, 237, 0, 166,
- 69, 35, 16, 232, 79, 237, 0, 215, 60, 69, 35, 16, 232, 79, 215, 54, 228,
- 45, 69, 35, 16, 232, 79, 237, 0, 237, 16, 69, 35, 16, 232, 79, 203, 12,
- 236, 255, 237, 16, 69, 35, 16, 232, 79, 237, 0, 222, 57, 69, 35, 16, 232,
- 79, 237, 0, 192, 8, 69, 35, 16, 232, 79, 237, 0, 214, 61, 222, 77, 69,
- 35, 16, 232, 79, 237, 0, 214, 61, 250, 190, 69, 35, 16, 232, 79, 217,
- 167, 242, 172, 236, 241, 69, 35, 16, 232, 79, 217, 167, 242, 172, 216,
- 46, 69, 35, 16, 233, 12, 203, 12, 242, 172, 196, 133, 69, 35, 16, 232,
- 79, 203, 12, 242, 172, 201, 1, 69, 35, 16, 232, 79, 214, 195, 69, 35, 16,
- 242, 173, 191, 231, 69, 35, 16, 242, 173, 221, 129, 69, 35, 16, 242, 173,
- 202, 151, 69, 35, 16, 232, 79, 228, 97, 193, 26, 200, 7, 69, 35, 16, 232,
- 79, 234, 87, 250, 179, 69, 35, 16, 193, 26, 198, 164, 69, 35, 16, 236,
- 249, 198, 164, 69, 35, 16, 236, 249, 200, 7, 69, 35, 16, 236, 249, 250,
- 156, 235, 21, 236, 138, 69, 35, 16, 236, 249, 216, 44, 200, 12, 236, 138,
- 69, 35, 16, 236, 249, 236, 232, 233, 210, 236, 138, 69, 35, 16, 236, 249,
- 198, 174, 211, 228, 236, 138, 69, 35, 16, 193, 26, 250, 156, 235, 21,
- 236, 138, 69, 35, 16, 193, 26, 216, 44, 200, 12, 236, 138, 69, 35, 16,
- 193, 26, 236, 232, 233, 210, 236, 138, 69, 35, 16, 193, 26, 198, 174,
- 211, 228, 236, 138, 69, 35, 16, 231, 140, 236, 248, 69, 35, 16, 231, 140,
- 193, 25, 69, 35, 16, 237, 1, 250, 156, 216, 134, 69, 35, 16, 237, 1, 250,
- 156, 217, 20, 69, 35, 16, 237, 1, 236, 210, 69, 35, 16, 237, 1, 199, 209,
- 69, 35, 16, 203, 85, 199, 209, 69, 35, 16, 203, 85, 199, 210, 236, 193,
- 69, 35, 16, 203, 85, 199, 210, 198, 165, 69, 35, 16, 203, 85, 199, 210,
- 199, 255, 69, 35, 16, 203, 85, 250, 70, 69, 35, 16, 203, 85, 250, 71,
- 236, 193, 69, 35, 16, 203, 85, 250, 71, 198, 165, 69, 35, 16, 203, 85,
- 250, 71, 199, 255, 69, 35, 16, 236, 233, 231, 121, 69, 35, 16, 236, 240,
- 211, 130, 69, 35, 16, 201, 248, 69, 35, 16, 250, 95, 166, 69, 35, 16,
- 250, 95, 195, 231, 69, 35, 16, 250, 95, 231, 233, 69, 35, 16, 250, 95,
- 237, 16, 69, 35, 16, 250, 95, 222, 57, 69, 35, 16, 250, 95, 192, 8, 69,
- 35, 16, 250, 95, 214, 60, 69, 35, 16, 222, 27, 214, 193, 216, 245, 69,
- 35, 16, 222, 28, 214, 193, 216, 245, 69, 35, 16, 222, 27, 214, 193, 222,
- 77, 69, 35, 16, 222, 28, 214, 193, 222, 77, 69, 35, 16, 221, 131, 222,
- 77, 69, 35, 16, 230, 237, 214, 193, 222, 77, 35, 16, 203, 74, 248, 189,
- 35, 16, 55, 248, 189, 35, 16, 52, 248, 189, 35, 16, 207, 169, 52, 248,
- 189, 35, 16, 237, 184, 248, 189, 35, 16, 203, 195, 248, 189, 35, 16, 46,
- 207, 199, 57, 35, 16, 51, 207, 199, 57, 35, 16, 207, 199, 236, 111, 35,
- 16, 237, 228, 205, 196, 35, 16, 238, 1, 246, 223, 35, 16, 205, 196, 35,
- 16, 242, 56, 35, 16, 207, 197, 232, 255, 35, 16, 207, 197, 232, 254, 35,
- 16, 207, 197, 232, 253, 35, 16, 233, 22, 35, 16, 233, 23, 63, 35, 16,
- 247, 152, 77, 35, 16, 247, 9, 35, 16, 247, 166, 35, 16, 186, 35, 16, 211,
- 206, 202, 28, 35, 16, 197, 219, 202, 28, 35, 16, 199, 155, 202, 28, 35,
- 16, 232, 118, 202, 28, 35, 16, 232, 213, 202, 28, 35, 16, 203, 40, 202,
- 28, 35, 16, 203, 38, 232, 96, 35, 16, 232, 116, 232, 96, 35, 16, 232, 45,
- 242, 99, 35, 16, 232, 45, 242, 100, 211, 134, 250, 250, 35, 16, 232, 45,
- 242, 100, 211, 134, 248, 172, 35, 16, 247, 53, 242, 99, 35, 16, 233, 164,
- 242, 99, 35, 16, 233, 164, 242, 100, 211, 134, 250, 250, 35, 16, 233,
- 164, 242, 100, 211, 134, 248, 172, 35, 16, 235, 68, 242, 98, 35, 16, 235,
- 68, 242, 97, 35, 16, 215, 216, 217, 44, 207, 180, 35, 16, 55, 204, 25,
- 35, 16, 55, 232, 195, 35, 16, 232, 196, 197, 41, 35, 16, 232, 196, 235,
- 96, 35, 16, 215, 43, 197, 41, 35, 16, 215, 43, 235, 96, 35, 16, 204, 26,
- 197, 41, 35, 16, 204, 26, 235, 96, 35, 16, 208, 168, 158, 204, 25, 35,
- 16, 208, 168, 158, 232, 195, 35, 16, 242, 35, 199, 84, 35, 16, 238, 122,
- 199, 84, 35, 16, 211, 134, 250, 250, 35, 16, 211, 134, 248, 172, 35, 16,
- 208, 149, 250, 250, 35, 16, 208, 149, 248, 172, 35, 16, 215, 219, 207,
- 180, 35, 16, 194, 73, 207, 180, 35, 16, 138, 207, 180, 35, 16, 208, 168,
- 207, 180, 35, 16, 234, 144, 207, 180, 35, 16, 203, 34, 207, 180, 35, 16,
- 199, 181, 207, 180, 35, 16, 203, 24, 207, 180, 35, 16, 90, 228, 163, 197,
- 237, 207, 180, 35, 16, 193, 224, 213, 101, 35, 16, 102, 213, 101, 35, 16,
- 242, 131, 193, 224, 213, 101, 35, 16, 50, 213, 102, 194, 75, 35, 16, 50,
- 213, 102, 247, 248, 35, 16, 198, 186, 213, 102, 130, 194, 75, 35, 16,
- 198, 186, 213, 102, 130, 247, 248, 35, 16, 198, 186, 213, 102, 46, 194,
- 75, 35, 16, 198, 186, 213, 102, 46, 247, 248, 35, 16, 198, 186, 213, 102,
- 51, 194, 75, 35, 16, 198, 186, 213, 102, 51, 247, 248, 35, 16, 198, 186,
- 213, 102, 142, 194, 75, 35, 16, 198, 186, 213, 102, 142, 247, 248, 35,
- 16, 198, 186, 213, 102, 130, 51, 194, 75, 35, 16, 198, 186, 213, 102,
- 130, 51, 247, 248, 35, 16, 216, 30, 213, 102, 194, 75, 35, 16, 216, 30,
- 213, 102, 247, 248, 35, 16, 198, 183, 213, 102, 142, 194, 75, 35, 16,
- 198, 183, 213, 102, 142, 247, 248, 35, 16, 210, 231, 213, 101, 35, 16,
- 195, 245, 213, 101, 35, 16, 213, 102, 247, 248, 35, 16, 212, 239, 213,
- 101, 35, 16, 242, 68, 213, 102, 194, 75, 35, 16, 242, 68, 213, 102, 247,
- 248, 35, 16, 247, 150, 35, 16, 194, 73, 213, 105, 35, 16, 138, 213, 105,
- 35, 16, 208, 168, 213, 105, 35, 16, 234, 144, 213, 105, 35, 16, 203, 34,
- 213, 105, 35, 16, 199, 181, 213, 105, 35, 16, 203, 24, 213, 105, 35, 16,
- 90, 228, 163, 197, 237, 213, 105, 35, 16, 38, 201, 255, 35, 16, 38, 202,
- 113, 201, 255, 35, 16, 38, 198, 194, 35, 16, 38, 198, 193, 35, 16, 38,
- 198, 192, 35, 16, 232, 238, 198, 194, 35, 16, 232, 238, 198, 193, 35, 16,
- 232, 238, 198, 192, 35, 16, 38, 250, 5, 236, 114, 35, 16, 38, 232, 205,
- 35, 16, 38, 232, 204, 35, 16, 38, 232, 203, 35, 16, 38, 232, 202, 35, 16,
- 38, 232, 201, 35, 16, 248, 100, 248, 120, 35, 16, 234, 80, 248, 120, 35,
- 16, 248, 100, 199, 113, 35, 16, 234, 80, 199, 113, 35, 16, 248, 100, 202,
- 237, 35, 16, 234, 80, 202, 237, 35, 16, 248, 100, 210, 58, 35, 16, 234,
- 80, 210, 58, 35, 16, 38, 251, 143, 35, 16, 38, 202, 32, 35, 16, 38, 200,
- 18, 35, 16, 38, 202, 33, 35, 16, 38, 217, 131, 35, 16, 38, 217, 130, 35,
- 16, 38, 251, 142, 35, 16, 38, 219, 54, 35, 16, 250, 83, 197, 41, 35, 16,
- 250, 83, 235, 96, 35, 16, 38, 236, 130, 35, 16, 38, 207, 77, 35, 16, 38,
- 232, 184, 35, 16, 38, 202, 233, 35, 16, 38, 248, 78, 35, 16, 38, 55, 199,
- 0, 35, 16, 38, 198, 170, 199, 0, 35, 16, 207, 83, 35, 16, 201, 166, 35,
- 16, 192, 155, 35, 16, 210, 50, 35, 16, 216, 226, 35, 16, 232, 130, 35,
- 16, 238, 195, 35, 16, 237, 102, 35, 16, 230, 227, 213, 106, 203, 4, 35,
- 16, 230, 227, 213, 106, 213, 143, 203, 4, 35, 16, 198, 224, 35, 16, 198,
- 9, 35, 16, 223, 121, 198, 9, 35, 16, 198, 10, 203, 4, 35, 16, 198, 10,
- 197, 41, 35, 16, 211, 151, 201, 207, 35, 16, 211, 151, 201, 204, 35, 16,
- 211, 151, 201, 203, 35, 16, 211, 151, 201, 202, 35, 16, 211, 151, 201,
- 201, 35, 16, 211, 151, 201, 200, 35, 16, 211, 151, 201, 199, 35, 16, 211,
- 151, 201, 198, 35, 16, 211, 151, 201, 197, 35, 16, 211, 151, 201, 206,
- 35, 16, 211, 151, 201, 205, 35, 16, 230, 10, 35, 16, 214, 206, 35, 16,
- 234, 80, 80, 201, 244, 35, 16, 237, 95, 203, 4, 35, 16, 38, 142, 247,
- 180, 35, 16, 38, 130, 247, 180, 35, 16, 38, 230, 23, 35, 16, 38, 202,
- 223, 209, 235, 35, 16, 210, 173, 77, 35, 16, 210, 173, 130, 77, 35, 16,
- 138, 210, 173, 77, 35, 16, 231, 8, 197, 41, 35, 16, 231, 8, 235, 96, 35,
- 16, 4, 232, 237, 35, 16, 237, 211, 35, 16, 237, 212, 251, 8, 35, 16, 217,
- 94, 35, 16, 219, 75, 35, 16, 247, 147, 35, 16, 204, 184, 194, 75, 35, 16,
- 204, 184, 247, 248, 35, 16, 216, 116, 35, 16, 216, 117, 247, 248, 35, 16,
- 204, 178, 194, 75, 35, 16, 204, 178, 247, 248, 35, 16, 232, 62, 194, 75,
- 35, 16, 232, 62, 247, 248, 35, 16, 219, 76, 210, 131, 207, 180, 35, 16,
- 219, 76, 223, 195, 207, 180, 35, 16, 247, 148, 207, 180, 35, 16, 204,
- 184, 207, 180, 35, 16, 216, 117, 207, 180, 35, 16, 204, 178, 207, 180,
- 35, 16, 200, 32, 210, 129, 238, 153, 209, 77, 210, 130, 35, 16, 200, 32,
- 210, 129, 238, 153, 209, 77, 223, 194, 35, 16, 200, 32, 210, 129, 238,
- 153, 209, 77, 210, 131, 236, 220, 35, 16, 200, 32, 223, 193, 238, 153,
- 209, 77, 210, 130, 35, 16, 200, 32, 223, 193, 238, 153, 209, 77, 223,
- 194, 35, 16, 200, 32, 223, 193, 238, 153, 209, 77, 223, 195, 236, 220,
- 35, 16, 200, 32, 223, 193, 238, 153, 209, 77, 223, 195, 236, 219, 35, 16,
- 200, 32, 223, 193, 238, 153, 209, 77, 223, 195, 236, 218, 35, 16, 238,
- 186, 35, 16, 230, 199, 247, 53, 242, 99, 35, 16, 230, 199, 233, 164, 242,
- 99, 35, 16, 50, 249, 226, 35, 16, 196, 10, 35, 16, 209, 195, 35, 16, 242,
- 89, 35, 16, 205, 249, 35, 16, 242, 94, 35, 16, 198, 242, 35, 16, 209,
- 163, 35, 16, 209, 164, 232, 187, 35, 16, 205, 250, 232, 187, 35, 16, 198,
- 243, 207, 177, 35, 16, 210, 112, 201, 156, 35, 16, 221, 186, 247, 53,
- 242, 99, 35, 16, 221, 186, 234, 80, 80, 210, 42, 35, 16, 221, 186, 52,
- 213, 105, 35, 16, 221, 186, 207, 249, 77, 35, 16, 221, 186, 194, 73, 213,
- 105, 35, 16, 221, 186, 138, 213, 105, 35, 16, 221, 186, 208, 168, 213,
- 106, 202, 0, 235, 96, 35, 16, 221, 186, 208, 168, 213, 106, 202, 0, 197,
- 41, 35, 16, 221, 186, 234, 144, 213, 106, 202, 0, 235, 96, 35, 16, 221,
- 186, 234, 144, 213, 106, 202, 0, 197, 41, 35, 16, 221, 186, 232, 196, 57,
- 33, 195, 251, 213, 109, 201, 52, 33, 195, 251, 213, 109, 201, 41, 33,
- 195, 251, 213, 109, 201, 31, 33, 195, 251, 213, 109, 201, 24, 33, 195,
- 251, 213, 109, 201, 16, 33, 195, 251, 213, 109, 201, 10, 33, 195, 251,
- 213, 109, 201, 9, 33, 195, 251, 213, 109, 201, 8, 33, 195, 251, 213, 109,
- 201, 7, 33, 195, 251, 213, 109, 201, 51, 33, 195, 251, 213, 109, 201, 50,
- 33, 195, 251, 213, 109, 201, 49, 33, 195, 251, 213, 109, 201, 48, 33,
- 195, 251, 213, 109, 201, 47, 33, 195, 251, 213, 109, 201, 46, 33, 195,
- 251, 213, 109, 201, 45, 33, 195, 251, 213, 109, 201, 44, 33, 195, 251,
- 213, 109, 201, 43, 33, 195, 251, 213, 109, 201, 42, 33, 195, 251, 213,
- 109, 201, 40, 33, 195, 251, 213, 109, 201, 39, 33, 195, 251, 213, 109,
- 201, 38, 33, 195, 251, 213, 109, 201, 37, 33, 195, 251, 213, 109, 201,
- 36, 33, 195, 251, 213, 109, 201, 15, 33, 195, 251, 213, 109, 201, 14, 33,
- 195, 251, 213, 109, 201, 13, 33, 195, 251, 213, 109, 201, 12, 33, 195,
- 251, 213, 109, 201, 11, 33, 223, 144, 213, 109, 201, 52, 33, 223, 144,
- 213, 109, 201, 41, 33, 223, 144, 213, 109, 201, 24, 33, 223, 144, 213,
- 109, 201, 16, 33, 223, 144, 213, 109, 201, 9, 33, 223, 144, 213, 109,
- 201, 8, 33, 223, 144, 213, 109, 201, 50, 33, 223, 144, 213, 109, 201, 49,
- 33, 223, 144, 213, 109, 201, 48, 33, 223, 144, 213, 109, 201, 47, 33,
- 223, 144, 213, 109, 201, 44, 33, 223, 144, 213, 109, 201, 43, 33, 223,
- 144, 213, 109, 201, 42, 33, 223, 144, 213, 109, 201, 37, 33, 223, 144,
- 213, 109, 201, 36, 33, 223, 144, 213, 109, 201, 35, 33, 223, 144, 213,
- 109, 201, 34, 33, 223, 144, 213, 109, 201, 33, 33, 223, 144, 213, 109,
- 201, 32, 33, 223, 144, 213, 109, 201, 30, 33, 223, 144, 213, 109, 201,
- 29, 33, 223, 144, 213, 109, 201, 28, 33, 223, 144, 213, 109, 201, 27, 33,
- 223, 144, 213, 109, 201, 26, 33, 223, 144, 213, 109, 201, 25, 33, 223,
- 144, 213, 109, 201, 23, 33, 223, 144, 213, 109, 201, 22, 33, 223, 144,
- 213, 109, 201, 21, 33, 223, 144, 213, 109, 201, 20, 33, 223, 144, 213,
- 109, 201, 19, 33, 223, 144, 213, 109, 201, 18, 33, 223, 144, 213, 109,
- 201, 17, 33, 223, 144, 213, 109, 201, 15, 33, 223, 144, 213, 109, 201,
- 14, 33, 223, 144, 213, 109, 201, 13, 33, 223, 144, 213, 109, 201, 12, 33,
- 223, 144, 213, 109, 201, 11, 38, 33, 35, 198, 166, 38, 33, 35, 200, 0,
- 38, 33, 35, 210, 142, 33, 35, 220, 10, 217, 91, 212, 234, 192, 76, 217,
- 91, 212, 234, 101, 217, 91, 212, 234, 104, 217, 91, 212, 234, 133, 217,
- 91, 212, 234, 134, 217, 91, 212, 234, 151, 217, 91, 212, 234, 170, 217,
- 91, 212, 234, 179, 217, 91, 212, 234, 174, 217, 91, 212, 234, 182, 217,
- 91, 212, 234, 200, 30, 217, 91, 212, 234, 234, 111, 217, 91, 212, 234,
- 197, 244, 217, 91, 212, 234, 199, 186, 217, 91, 212, 234, 232, 113, 217,
- 91, 212, 234, 233, 7, 217, 91, 212, 234, 203, 35, 217, 91, 212, 234, 204,
- 143, 217, 91, 212, 234, 234, 145, 217, 91, 212, 234, 214, 13, 216, 45,
- 39, 234, 189, 236, 234, 39, 229, 228, 234, 189, 236, 234, 39, 228, 167,
- 234, 189, 236, 234, 39, 234, 188, 229, 229, 236, 234, 39, 234, 188, 228,
- 166, 236, 234, 39, 234, 189, 200, 2, 39, 246, 137, 200, 2, 39, 232, 71,
- 242, 130, 200, 2, 39, 216, 108, 200, 2, 39, 248, 184, 200, 2, 39, 222,
- 45, 202, 236, 200, 2, 39, 238, 244, 200, 2, 39, 250, 56, 200, 2, 39, 211,
- 169, 200, 2, 39, 247, 158, 211, 125, 200, 2, 39, 237, 97, 211, 164, 236,
- 185, 200, 2, 39, 236, 182, 200, 2, 39, 192, 226, 200, 2, 39, 223, 181,
- 200, 2, 39, 210, 152, 200, 2, 39, 208, 2, 200, 2, 39, 239, 0, 200, 2, 39,
- 229, 26, 248, 252, 200, 2, 39, 194, 155, 200, 2, 39, 232, 159, 200, 2,
- 39, 251, 111, 200, 2, 39, 207, 212, 200, 2, 39, 207, 184, 200, 2, 39,
- 234, 187, 200, 2, 39, 222, 217, 200, 2, 39, 238, 251, 200, 2, 39, 234,
- 78, 200, 2, 39, 235, 33, 200, 2, 39, 246, 104, 200, 2, 39, 237, 107, 200,
- 2, 39, 28, 207, 183, 200, 2, 39, 211, 68, 200, 2, 39, 220, 14, 200, 2,
- 39, 242, 82, 200, 2, 39, 221, 174, 200, 2, 39, 231, 182, 200, 2, 39, 201,
- 219, 200, 2, 39, 209, 26, 200, 2, 39, 232, 70, 200, 2, 39, 207, 185, 200,
- 2, 39, 220, 55, 211, 164, 216, 81, 200, 2, 39, 207, 181, 200, 2, 39, 230,
- 247, 115, 217, 24, 200, 2, 39, 234, 81, 200, 2, 39, 201, 233, 200, 2, 39,
- 230, 202, 200, 2, 39, 234, 71, 200, 2, 39, 210, 200, 200, 2, 39, 207, 70,
- 200, 2, 39, 232, 185, 200, 2, 39, 196, 132, 211, 164, 194, 133, 200, 2,
- 39, 239, 5, 200, 2, 39, 217, 43, 200, 2, 39, 233, 237, 200, 2, 39, 197,
- 52, 200, 2, 39, 236, 221, 200, 2, 39, 242, 84, 216, 4, 200, 2, 39, 230,
- 178, 200, 2, 39, 231, 183, 223, 190, 200, 2, 39, 217, 103, 200, 2, 39,
- 251, 137, 200, 2, 39, 234, 97, 200, 2, 39, 235, 100, 200, 2, 39, 194,
- 131, 200, 2, 39, 203, 69, 200, 2, 39, 223, 154, 200, 2, 39, 237, 64, 200,
- 2, 39, 237, 189, 200, 2, 39, 236, 217, 200, 2, 39, 233, 201, 200, 2, 39,
- 204, 139, 200, 2, 39, 201, 237, 200, 2, 39, 230, 25, 200, 2, 39, 242, 30,
- 200, 2, 39, 242, 79, 200, 2, 39, 233, 76, 200, 2, 39, 251, 75, 200, 2,
- 39, 242, 29, 200, 2, 39, 211, 212, 199, 225, 196, 108, 200, 2, 39, 236,
- 243, 200, 2, 39, 220, 172, 200, 2, 39, 232, 122, 238, 210, 207, 38, 197,
- 55, 17, 101, 238, 210, 207, 38, 197, 55, 17, 104, 238, 210, 207, 38, 197,
- 55, 17, 133, 238, 210, 207, 38, 197, 55, 17, 134, 238, 210, 207, 38, 197,
- 55, 17, 151, 238, 210, 207, 38, 197, 55, 17, 170, 238, 210, 207, 38, 197,
- 55, 17, 179, 238, 210, 207, 38, 197, 55, 17, 174, 238, 210, 207, 38, 197,
- 55, 17, 182, 238, 210, 207, 38, 200, 26, 17, 101, 238, 210, 207, 38, 200,
- 26, 17, 104, 238, 210, 207, 38, 200, 26, 17, 133, 238, 210, 207, 38, 200,
- 26, 17, 134, 238, 210, 207, 38, 200, 26, 17, 151, 238, 210, 207, 38, 200,
- 26, 17, 170, 238, 210, 207, 38, 200, 26, 17, 179, 238, 210, 207, 38, 200,
- 26, 17, 174, 238, 210, 207, 38, 200, 26, 17, 182, 149, 200, 130, 122,
- 101, 149, 200, 130, 122, 104, 149, 200, 130, 122, 133, 149, 200, 130,
- 122, 134, 149, 200, 130, 122, 151, 200, 130, 122, 101, 200, 130, 122,
- 151, 13, 28, 6, 64, 13, 28, 6, 249, 226, 13, 28, 6, 247, 52, 13, 28, 6,
- 238, 95, 13, 28, 6, 71, 13, 28, 6, 233, 163, 13, 28, 6, 232, 44, 13, 28,
- 6, 230, 124, 13, 28, 6, 70, 13, 28, 6, 223, 65, 13, 28, 6, 222, 184, 13,
- 28, 6, 165, 13, 28, 6, 218, 236, 13, 28, 6, 215, 151, 13, 28, 6, 74, 13,
- 28, 6, 211, 93, 13, 28, 6, 208, 247, 13, 28, 6, 150, 13, 28, 6, 206, 158,
- 13, 28, 6, 200, 228, 13, 28, 6, 68, 13, 28, 6, 196, 236, 13, 28, 6, 194,
- 202, 13, 28, 6, 193, 223, 13, 28, 6, 193, 148, 13, 28, 6, 192, 155, 13,
- 28, 2, 64, 13, 28, 2, 249, 226, 13, 28, 2, 247, 52, 13, 28, 2, 238, 95,
- 13, 28, 2, 71, 13, 28, 2, 233, 163, 13, 28, 2, 232, 44, 13, 28, 2, 230,
- 124, 13, 28, 2, 70, 13, 28, 2, 223, 65, 13, 28, 2, 222, 184, 13, 28, 2,
- 165, 13, 28, 2, 218, 236, 13, 28, 2, 215, 151, 13, 28, 2, 74, 13, 28, 2,
- 211, 93, 13, 28, 2, 208, 247, 13, 28, 2, 150, 13, 28, 2, 206, 158, 13,
- 28, 2, 200, 228, 13, 28, 2, 68, 13, 28, 2, 196, 236, 13, 28, 2, 194, 202,
- 13, 28, 2, 193, 223, 13, 28, 2, 193, 148, 13, 28, 2, 192, 155, 13, 43, 6,
- 64, 13, 43, 6, 249, 226, 13, 43, 6, 247, 52, 13, 43, 6, 238, 95, 13, 43,
- 6, 71, 13, 43, 6, 233, 163, 13, 43, 6, 232, 44, 13, 43, 6, 230, 124, 13,
- 43, 6, 70, 13, 43, 6, 223, 65, 13, 43, 6, 222, 184, 13, 43, 6, 165, 13,
- 43, 6, 218, 236, 13, 43, 6, 215, 151, 13, 43, 6, 74, 13, 43, 6, 211, 93,
- 13, 43, 6, 208, 247, 13, 43, 6, 150, 13, 43, 6, 206, 158, 13, 43, 6, 200,
- 228, 13, 43, 6, 68, 13, 43, 6, 196, 236, 13, 43, 6, 194, 202, 13, 43, 6,
- 193, 223, 13, 43, 6, 193, 148, 13, 43, 6, 192, 155, 13, 43, 2, 64, 13,
- 43, 2, 249, 226, 13, 43, 2, 247, 52, 13, 43, 2, 238, 95, 13, 43, 2, 71,
- 13, 43, 2, 233, 163, 13, 43, 2, 232, 44, 13, 43, 2, 70, 13, 43, 2, 223,
- 65, 13, 43, 2, 222, 184, 13, 43, 2, 165, 13, 43, 2, 218, 236, 13, 43, 2,
- 215, 151, 13, 43, 2, 74, 13, 43, 2, 211, 93, 13, 43, 2, 208, 247, 13, 43,
- 2, 150, 13, 43, 2, 206, 158, 13, 43, 2, 200, 228, 13, 43, 2, 68, 13, 43,
- 2, 196, 236, 13, 43, 2, 194, 202, 13, 43, 2, 193, 223, 13, 43, 2, 193,
- 148, 13, 43, 2, 192, 155, 13, 28, 43, 6, 64, 13, 28, 43, 6, 249, 226, 13,
- 28, 43, 6, 247, 52, 13, 28, 43, 6, 238, 95, 13, 28, 43, 6, 71, 13, 28,
- 43, 6, 233, 163, 13, 28, 43, 6, 232, 44, 13, 28, 43, 6, 230, 124, 13, 28,
- 43, 6, 70, 13, 28, 43, 6, 223, 65, 13, 28, 43, 6, 222, 184, 13, 28, 43,
- 6, 165, 13, 28, 43, 6, 218, 236, 13, 28, 43, 6, 215, 151, 13, 28, 43, 6,
- 74, 13, 28, 43, 6, 211, 93, 13, 28, 43, 6, 208, 247, 13, 28, 43, 6, 150,
- 13, 28, 43, 6, 206, 158, 13, 28, 43, 6, 200, 228, 13, 28, 43, 6, 68, 13,
- 28, 43, 6, 196, 236, 13, 28, 43, 6, 194, 202, 13, 28, 43, 6, 193, 223,
- 13, 28, 43, 6, 193, 148, 13, 28, 43, 6, 192, 155, 13, 28, 43, 2, 64, 13,
- 28, 43, 2, 249, 226, 13, 28, 43, 2, 247, 52, 13, 28, 43, 2, 238, 95, 13,
- 28, 43, 2, 71, 13, 28, 43, 2, 233, 163, 13, 28, 43, 2, 232, 44, 13, 28,
- 43, 2, 230, 124, 13, 28, 43, 2, 70, 13, 28, 43, 2, 223, 65, 13, 28, 43,
- 2, 222, 184, 13, 28, 43, 2, 165, 13, 28, 43, 2, 218, 236, 13, 28, 43, 2,
- 215, 151, 13, 28, 43, 2, 74, 13, 28, 43, 2, 211, 93, 13, 28, 43, 2, 208,
- 247, 13, 28, 43, 2, 150, 13, 28, 43, 2, 206, 158, 13, 28, 43, 2, 200,
- 228, 13, 28, 43, 2, 68, 13, 28, 43, 2, 196, 236, 13, 28, 43, 2, 194, 202,
- 13, 28, 43, 2, 193, 223, 13, 28, 43, 2, 193, 148, 13, 28, 43, 2, 192,
- 155, 13, 27, 6, 64, 13, 27, 6, 247, 52, 13, 27, 6, 238, 95, 13, 27, 6,
- 232, 44, 13, 27, 6, 223, 65, 13, 27, 6, 222, 184, 13, 27, 6, 215, 151,
- 13, 27, 6, 74, 13, 27, 6, 211, 93, 13, 27, 6, 208, 247, 13, 27, 6, 206,
- 158, 13, 27, 6, 200, 228, 13, 27, 6, 68, 13, 27, 6, 196, 236, 13, 27, 6,
- 194, 202, 13, 27, 6, 193, 223, 13, 27, 6, 193, 148, 13, 27, 6, 192, 155,
- 13, 27, 2, 64, 13, 27, 2, 249, 226, 13, 27, 2, 247, 52, 13, 27, 2, 238,
- 95, 13, 27, 2, 233, 163, 13, 27, 2, 230, 124, 13, 27, 2, 70, 13, 27, 2,
- 223, 65, 13, 27, 2, 222, 184, 13, 27, 2, 165, 13, 27, 2, 218, 236, 13,
- 27, 2, 215, 151, 13, 27, 2, 211, 93, 13, 27, 2, 208, 247, 13, 27, 2, 150,
- 13, 27, 2, 206, 158, 13, 27, 2, 200, 228, 13, 27, 2, 68, 13, 27, 2, 196,
- 236, 13, 27, 2, 194, 202, 13, 27, 2, 193, 223, 13, 27, 2, 193, 148, 13,
- 27, 2, 192, 155, 13, 28, 27, 6, 64, 13, 28, 27, 6, 249, 226, 13, 28, 27,
- 6, 247, 52, 13, 28, 27, 6, 238, 95, 13, 28, 27, 6, 71, 13, 28, 27, 6,
- 233, 163, 13, 28, 27, 6, 232, 44, 13, 28, 27, 6, 230, 124, 13, 28, 27, 6,
- 70, 13, 28, 27, 6, 223, 65, 13, 28, 27, 6, 222, 184, 13, 28, 27, 6, 165,
- 13, 28, 27, 6, 218, 236, 13, 28, 27, 6, 215, 151, 13, 28, 27, 6, 74, 13,
- 28, 27, 6, 211, 93, 13, 28, 27, 6, 208, 247, 13, 28, 27, 6, 150, 13, 28,
- 27, 6, 206, 158, 13, 28, 27, 6, 200, 228, 13, 28, 27, 6, 68, 13, 28, 27,
- 6, 196, 236, 13, 28, 27, 6, 194, 202, 13, 28, 27, 6, 193, 223, 13, 28,
- 27, 6, 193, 148, 13, 28, 27, 6, 192, 155, 13, 28, 27, 2, 64, 13, 28, 27,
- 2, 249, 226, 13, 28, 27, 2, 247, 52, 13, 28, 27, 2, 238, 95, 13, 28, 27,
- 2, 71, 13, 28, 27, 2, 233, 163, 13, 28, 27, 2, 232, 44, 13, 28, 27, 2,
- 230, 124, 13, 28, 27, 2, 70, 13, 28, 27, 2, 223, 65, 13, 28, 27, 2, 222,
- 184, 13, 28, 27, 2, 165, 13, 28, 27, 2, 218, 236, 13, 28, 27, 2, 215,
- 151, 13, 28, 27, 2, 74, 13, 28, 27, 2, 211, 93, 13, 28, 27, 2, 208, 247,
- 13, 28, 27, 2, 150, 13, 28, 27, 2, 206, 158, 13, 28, 27, 2, 200, 228, 13,
- 28, 27, 2, 68, 13, 28, 27, 2, 196, 236, 13, 28, 27, 2, 194, 202, 13, 28,
- 27, 2, 193, 223, 13, 28, 27, 2, 193, 148, 13, 28, 27, 2, 192, 155, 13,
- 232, 106, 6, 64, 13, 232, 106, 6, 249, 226, 13, 232, 106, 6, 238, 95, 13,
- 232, 106, 6, 71, 13, 232, 106, 6, 233, 163, 13, 232, 106, 6, 232, 44, 13,
- 232, 106, 6, 223, 65, 13, 232, 106, 6, 222, 184, 13, 232, 106, 6, 165,
- 13, 232, 106, 6, 218, 236, 13, 232, 106, 6, 215, 151, 13, 232, 106, 6,
- 74, 13, 232, 106, 6, 211, 93, 13, 232, 106, 6, 208, 247, 13, 232, 106, 6,
- 206, 158, 13, 232, 106, 6, 200, 228, 13, 232, 106, 6, 68, 13, 232, 106,
- 6, 196, 236, 13, 232, 106, 6, 194, 202, 13, 232, 106, 6, 193, 223, 13,
- 232, 106, 6, 193, 148, 13, 232, 106, 2, 64, 13, 232, 106, 2, 249, 226,
- 13, 232, 106, 2, 247, 52, 13, 232, 106, 2, 238, 95, 13, 232, 106, 2, 71,
- 13, 232, 106, 2, 233, 163, 13, 232, 106, 2, 232, 44, 13, 232, 106, 2,
- 230, 124, 13, 232, 106, 2, 70, 13, 232, 106, 2, 223, 65, 13, 232, 106, 2,
- 222, 184, 13, 232, 106, 2, 165, 13, 232, 106, 2, 218, 236, 13, 232, 106,
- 2, 215, 151, 13, 232, 106, 2, 74, 13, 232, 106, 2, 211, 93, 13, 232, 106,
- 2, 208, 247, 13, 232, 106, 2, 150, 13, 232, 106, 2, 206, 158, 13, 232,
- 106, 2, 200, 228, 13, 232, 106, 2, 68, 13, 232, 106, 2, 196, 236, 13,
- 232, 106, 2, 194, 202, 13, 232, 106, 2, 193, 223, 13, 232, 106, 2, 193,
- 148, 13, 232, 106, 2, 192, 155, 13, 235, 102, 6, 64, 13, 235, 102, 6,
- 249, 226, 13, 235, 102, 6, 238, 95, 13, 235, 102, 6, 71, 13, 235, 102, 6,
- 233, 163, 13, 235, 102, 6, 232, 44, 13, 235, 102, 6, 70, 13, 235, 102, 6,
- 223, 65, 13, 235, 102, 6, 222, 184, 13, 235, 102, 6, 165, 13, 235, 102,
- 6, 218, 236, 13, 235, 102, 6, 74, 13, 235, 102, 6, 206, 158, 13, 235,
- 102, 6, 200, 228, 13, 235, 102, 6, 68, 13, 235, 102, 6, 196, 236, 13,
- 235, 102, 6, 194, 202, 13, 235, 102, 6, 193, 223, 13, 235, 102, 6, 193,
- 148, 13, 235, 102, 2, 64, 13, 235, 102, 2, 249, 226, 13, 235, 102, 2,
- 247, 52, 13, 235, 102, 2, 238, 95, 13, 235, 102, 2, 71, 13, 235, 102, 2,
- 233, 163, 13, 235, 102, 2, 232, 44, 13, 235, 102, 2, 230, 124, 13, 235,
- 102, 2, 70, 13, 235, 102, 2, 223, 65, 13, 235, 102, 2, 222, 184, 13, 235,
- 102, 2, 165, 13, 235, 102, 2, 218, 236, 13, 235, 102, 2, 215, 151, 13,
- 235, 102, 2, 74, 13, 235, 102, 2, 211, 93, 13, 235, 102, 2, 208, 247, 13,
- 235, 102, 2, 150, 13, 235, 102, 2, 206, 158, 13, 235, 102, 2, 200, 228,
- 13, 235, 102, 2, 68, 13, 235, 102, 2, 196, 236, 13, 235, 102, 2, 194,
- 202, 13, 235, 102, 2, 193, 223, 13, 235, 102, 2, 193, 148, 13, 235, 102,
- 2, 192, 155, 13, 28, 232, 106, 6, 64, 13, 28, 232, 106, 6, 249, 226, 13,
- 28, 232, 106, 6, 247, 52, 13, 28, 232, 106, 6, 238, 95, 13, 28, 232, 106,
- 6, 71, 13, 28, 232, 106, 6, 233, 163, 13, 28, 232, 106, 6, 232, 44, 13,
- 28, 232, 106, 6, 230, 124, 13, 28, 232, 106, 6, 70, 13, 28, 232, 106, 6,
- 223, 65, 13, 28, 232, 106, 6, 222, 184, 13, 28, 232, 106, 6, 165, 13, 28,
- 232, 106, 6, 218, 236, 13, 28, 232, 106, 6, 215, 151, 13, 28, 232, 106,
- 6, 74, 13, 28, 232, 106, 6, 211, 93, 13, 28, 232, 106, 6, 208, 247, 13,
- 28, 232, 106, 6, 150, 13, 28, 232, 106, 6, 206, 158, 13, 28, 232, 106, 6,
- 200, 228, 13, 28, 232, 106, 6, 68, 13, 28, 232, 106, 6, 196, 236, 13, 28,
- 232, 106, 6, 194, 202, 13, 28, 232, 106, 6, 193, 223, 13, 28, 232, 106,
- 6, 193, 148, 13, 28, 232, 106, 6, 192, 155, 13, 28, 232, 106, 2, 64, 13,
- 28, 232, 106, 2, 249, 226, 13, 28, 232, 106, 2, 247, 52, 13, 28, 232,
- 106, 2, 238, 95, 13, 28, 232, 106, 2, 71, 13, 28, 232, 106, 2, 233, 163,
- 13, 28, 232, 106, 2, 232, 44, 13, 28, 232, 106, 2, 230, 124, 13, 28, 232,
- 106, 2, 70, 13, 28, 232, 106, 2, 223, 65, 13, 28, 232, 106, 2, 222, 184,
- 13, 28, 232, 106, 2, 165, 13, 28, 232, 106, 2, 218, 236, 13, 28, 232,
- 106, 2, 215, 151, 13, 28, 232, 106, 2, 74, 13, 28, 232, 106, 2, 211, 93,
- 13, 28, 232, 106, 2, 208, 247, 13, 28, 232, 106, 2, 150, 13, 28, 232,
- 106, 2, 206, 158, 13, 28, 232, 106, 2, 200, 228, 13, 28, 232, 106, 2, 68,
- 13, 28, 232, 106, 2, 196, 236, 13, 28, 232, 106, 2, 194, 202, 13, 28,
- 232, 106, 2, 193, 223, 13, 28, 232, 106, 2, 193, 148, 13, 28, 232, 106,
- 2, 192, 155, 13, 49, 6, 64, 13, 49, 6, 249, 226, 13, 49, 6, 247, 52, 13,
- 49, 6, 238, 95, 13, 49, 6, 71, 13, 49, 6, 233, 163, 13, 49, 6, 232, 44,
- 13, 49, 6, 230, 124, 13, 49, 6, 70, 13, 49, 6, 223, 65, 13, 49, 6, 222,
- 184, 13, 49, 6, 165, 13, 49, 6, 218, 236, 13, 49, 6, 215, 151, 13, 49, 6,
- 74, 13, 49, 6, 211, 93, 13, 49, 6, 208, 247, 13, 49, 6, 150, 13, 49, 6,
- 206, 158, 13, 49, 6, 200, 228, 13, 49, 6, 68, 13, 49, 6, 196, 236, 13,
- 49, 6, 194, 202, 13, 49, 6, 193, 223, 13, 49, 6, 193, 148, 13, 49, 6,
- 192, 155, 13, 49, 2, 64, 13, 49, 2, 249, 226, 13, 49, 2, 247, 52, 13, 49,
- 2, 238, 95, 13, 49, 2, 71, 13, 49, 2, 233, 163, 13, 49, 2, 232, 44, 13,
- 49, 2, 230, 124, 13, 49, 2, 70, 13, 49, 2, 223, 65, 13, 49, 2, 222, 184,
- 13, 49, 2, 165, 13, 49, 2, 218, 236, 13, 49, 2, 215, 151, 13, 49, 2, 74,
- 13, 49, 2, 211, 93, 13, 49, 2, 208, 247, 13, 49, 2, 150, 13, 49, 2, 206,
- 158, 13, 49, 2, 200, 228, 13, 49, 2, 68, 13, 49, 2, 196, 236, 13, 49, 2,
- 194, 202, 13, 49, 2, 193, 223, 13, 49, 2, 193, 148, 13, 49, 2, 192, 155,
- 13, 49, 28, 6, 64, 13, 49, 28, 6, 249, 226, 13, 49, 28, 6, 247, 52, 13,
- 49, 28, 6, 238, 95, 13, 49, 28, 6, 71, 13, 49, 28, 6, 233, 163, 13, 49,
- 28, 6, 232, 44, 13, 49, 28, 6, 230, 124, 13, 49, 28, 6, 70, 13, 49, 28,
- 6, 223, 65, 13, 49, 28, 6, 222, 184, 13, 49, 28, 6, 165, 13, 49, 28, 6,
- 218, 236, 13, 49, 28, 6, 215, 151, 13, 49, 28, 6, 74, 13, 49, 28, 6, 211,
- 93, 13, 49, 28, 6, 208, 247, 13, 49, 28, 6, 150, 13, 49, 28, 6, 206, 158,
- 13, 49, 28, 6, 200, 228, 13, 49, 28, 6, 68, 13, 49, 28, 6, 196, 236, 13,
- 49, 28, 6, 194, 202, 13, 49, 28, 6, 193, 223, 13, 49, 28, 6, 193, 148,
- 13, 49, 28, 6, 192, 155, 13, 49, 28, 2, 64, 13, 49, 28, 2, 249, 226, 13,
- 49, 28, 2, 247, 52, 13, 49, 28, 2, 238, 95, 13, 49, 28, 2, 71, 13, 49,
- 28, 2, 233, 163, 13, 49, 28, 2, 232, 44, 13, 49, 28, 2, 230, 124, 13, 49,
- 28, 2, 70, 13, 49, 28, 2, 223, 65, 13, 49, 28, 2, 222, 184, 13, 49, 28,
- 2, 165, 13, 49, 28, 2, 218, 236, 13, 49, 28, 2, 215, 151, 13, 49, 28, 2,
- 74, 13, 49, 28, 2, 211, 93, 13, 49, 28, 2, 208, 247, 13, 49, 28, 2, 150,
- 13, 49, 28, 2, 206, 158, 13, 49, 28, 2, 200, 228, 13, 49, 28, 2, 68, 13,
- 49, 28, 2, 196, 236, 13, 49, 28, 2, 194, 202, 13, 49, 28, 2, 193, 223,
- 13, 49, 28, 2, 193, 148, 13, 49, 28, 2, 192, 155, 13, 49, 43, 6, 64, 13,
- 49, 43, 6, 249, 226, 13, 49, 43, 6, 247, 52, 13, 49, 43, 6, 238, 95, 13,
- 49, 43, 6, 71, 13, 49, 43, 6, 233, 163, 13, 49, 43, 6, 232, 44, 13, 49,
- 43, 6, 230, 124, 13, 49, 43, 6, 70, 13, 49, 43, 6, 223, 65, 13, 49, 43,
- 6, 222, 184, 13, 49, 43, 6, 165, 13, 49, 43, 6, 218, 236, 13, 49, 43, 6,
- 215, 151, 13, 49, 43, 6, 74, 13, 49, 43, 6, 211, 93, 13, 49, 43, 6, 208,
- 247, 13, 49, 43, 6, 150, 13, 49, 43, 6, 206, 158, 13, 49, 43, 6, 200,
- 228, 13, 49, 43, 6, 68, 13, 49, 43, 6, 196, 236, 13, 49, 43, 6, 194, 202,
- 13, 49, 43, 6, 193, 223, 13, 49, 43, 6, 193, 148, 13, 49, 43, 6, 192,
- 155, 13, 49, 43, 2, 64, 13, 49, 43, 2, 249, 226, 13, 49, 43, 2, 247, 52,
- 13, 49, 43, 2, 238, 95, 13, 49, 43, 2, 71, 13, 49, 43, 2, 233, 163, 13,
- 49, 43, 2, 232, 44, 13, 49, 43, 2, 230, 124, 13, 49, 43, 2, 70, 13, 49,
- 43, 2, 223, 65, 13, 49, 43, 2, 222, 184, 13, 49, 43, 2, 165, 13, 49, 43,
- 2, 218, 236, 13, 49, 43, 2, 215, 151, 13, 49, 43, 2, 74, 13, 49, 43, 2,
- 211, 93, 13, 49, 43, 2, 208, 247, 13, 49, 43, 2, 150, 13, 49, 43, 2, 206,
- 158, 13, 49, 43, 2, 200, 228, 13, 49, 43, 2, 68, 13, 49, 43, 2, 196, 236,
- 13, 49, 43, 2, 194, 202, 13, 49, 43, 2, 193, 223, 13, 49, 43, 2, 193,
- 148, 13, 49, 43, 2, 192, 155, 13, 49, 28, 43, 6, 64, 13, 49, 28, 43, 6,
- 249, 226, 13, 49, 28, 43, 6, 247, 52, 13, 49, 28, 43, 6, 238, 95, 13, 49,
- 28, 43, 6, 71, 13, 49, 28, 43, 6, 233, 163, 13, 49, 28, 43, 6, 232, 44,
- 13, 49, 28, 43, 6, 230, 124, 13, 49, 28, 43, 6, 70, 13, 49, 28, 43, 6,
- 223, 65, 13, 49, 28, 43, 6, 222, 184, 13, 49, 28, 43, 6, 165, 13, 49, 28,
- 43, 6, 218, 236, 13, 49, 28, 43, 6, 215, 151, 13, 49, 28, 43, 6, 74, 13,
- 49, 28, 43, 6, 211, 93, 13, 49, 28, 43, 6, 208, 247, 13, 49, 28, 43, 6,
- 150, 13, 49, 28, 43, 6, 206, 158, 13, 49, 28, 43, 6, 200, 228, 13, 49,
- 28, 43, 6, 68, 13, 49, 28, 43, 6, 196, 236, 13, 49, 28, 43, 6, 194, 202,
- 13, 49, 28, 43, 6, 193, 223, 13, 49, 28, 43, 6, 193, 148, 13, 49, 28, 43,
- 6, 192, 155, 13, 49, 28, 43, 2, 64, 13, 49, 28, 43, 2, 249, 226, 13, 49,
- 28, 43, 2, 247, 52, 13, 49, 28, 43, 2, 238, 95, 13, 49, 28, 43, 2, 71,
- 13, 49, 28, 43, 2, 233, 163, 13, 49, 28, 43, 2, 232, 44, 13, 49, 28, 43,
- 2, 230, 124, 13, 49, 28, 43, 2, 70, 13, 49, 28, 43, 2, 223, 65, 13, 49,
- 28, 43, 2, 222, 184, 13, 49, 28, 43, 2, 165, 13, 49, 28, 43, 2, 218, 236,
- 13, 49, 28, 43, 2, 215, 151, 13, 49, 28, 43, 2, 74, 13, 49, 28, 43, 2,
- 211, 93, 13, 49, 28, 43, 2, 208, 247, 13, 49, 28, 43, 2, 150, 13, 49, 28,
- 43, 2, 206, 158, 13, 49, 28, 43, 2, 200, 228, 13, 49, 28, 43, 2, 68, 13,
- 49, 28, 43, 2, 196, 236, 13, 49, 28, 43, 2, 194, 202, 13, 49, 28, 43, 2,
- 193, 223, 13, 49, 28, 43, 2, 193, 148, 13, 49, 28, 43, 2, 192, 155, 13,
- 216, 41, 6, 64, 13, 216, 41, 6, 249, 226, 13, 216, 41, 6, 247, 52, 13,
- 216, 41, 6, 238, 95, 13, 216, 41, 6, 71, 13, 216, 41, 6, 233, 163, 13,
- 216, 41, 6, 232, 44, 13, 216, 41, 6, 230, 124, 13, 216, 41, 6, 70, 13,
- 216, 41, 6, 223, 65, 13, 216, 41, 6, 222, 184, 13, 216, 41, 6, 165, 13,
- 216, 41, 6, 218, 236, 13, 216, 41, 6, 215, 151, 13, 216, 41, 6, 74, 13,
- 216, 41, 6, 211, 93, 13, 216, 41, 6, 208, 247, 13, 216, 41, 6, 150, 13,
- 216, 41, 6, 206, 158, 13, 216, 41, 6, 200, 228, 13, 216, 41, 6, 68, 13,
- 216, 41, 6, 196, 236, 13, 216, 41, 6, 194, 202, 13, 216, 41, 6, 193, 223,
- 13, 216, 41, 6, 193, 148, 13, 216, 41, 6, 192, 155, 13, 216, 41, 2, 64,
- 13, 216, 41, 2, 249, 226, 13, 216, 41, 2, 247, 52, 13, 216, 41, 2, 238,
- 95, 13, 216, 41, 2, 71, 13, 216, 41, 2, 233, 163, 13, 216, 41, 2, 232,
- 44, 13, 216, 41, 2, 230, 124, 13, 216, 41, 2, 70, 13, 216, 41, 2, 223,
- 65, 13, 216, 41, 2, 222, 184, 13, 216, 41, 2, 165, 13, 216, 41, 2, 218,
- 236, 13, 216, 41, 2, 215, 151, 13, 216, 41, 2, 74, 13, 216, 41, 2, 211,
- 93, 13, 216, 41, 2, 208, 247, 13, 216, 41, 2, 150, 13, 216, 41, 2, 206,
- 158, 13, 216, 41, 2, 200, 228, 13, 216, 41, 2, 68, 13, 216, 41, 2, 196,
- 236, 13, 216, 41, 2, 194, 202, 13, 216, 41, 2, 193, 223, 13, 216, 41, 2,
- 193, 148, 13, 216, 41, 2, 192, 155, 13, 43, 2, 236, 113, 70, 13, 43, 2,
- 236, 113, 223, 65, 13, 28, 6, 250, 252, 13, 28, 6, 248, 63, 13, 28, 6,
- 231, 204, 13, 28, 6, 237, 76, 13, 28, 6, 234, 32, 13, 28, 6, 192, 75, 13,
- 28, 6, 233, 240, 13, 28, 6, 199, 206, 13, 28, 6, 223, 111, 13, 28, 6,
- 222, 106, 13, 28, 6, 220, 90, 13, 28, 6, 215, 241, 13, 28, 6, 213, 22,
- 13, 28, 6, 193, 196, 13, 28, 6, 211, 214, 13, 28, 6, 210, 51, 13, 28, 6,
- 207, 153, 13, 28, 6, 199, 207, 109, 13, 28, 6, 203, 99, 13, 28, 6, 200,
- 100, 13, 28, 6, 197, 34, 13, 28, 6, 210, 77, 13, 28, 6, 242, 215, 13, 28,
- 6, 209, 62, 13, 28, 6, 211, 216, 13, 28, 215, 79, 13, 28, 2, 250, 252,
- 13, 28, 2, 248, 63, 13, 28, 2, 231, 204, 13, 28, 2, 237, 76, 13, 28, 2,
- 234, 32, 13, 28, 2, 192, 75, 13, 28, 2, 233, 240, 13, 28, 2, 199, 206,
- 13, 28, 2, 223, 111, 13, 28, 2, 222, 106, 13, 28, 2, 220, 90, 13, 28, 2,
- 215, 241, 13, 28, 2, 213, 22, 13, 28, 2, 193, 196, 13, 28, 2, 211, 214,
- 13, 28, 2, 210, 51, 13, 28, 2, 207, 153, 13, 28, 2, 52, 203, 99, 13, 28,
- 2, 203, 99, 13, 28, 2, 200, 100, 13, 28, 2, 197, 34, 13, 28, 2, 210, 77,
- 13, 28, 2, 242, 215, 13, 28, 2, 209, 62, 13, 28, 2, 211, 216, 13, 28,
- 210, 222, 236, 244, 13, 28, 234, 33, 109, 13, 28, 199, 207, 109, 13, 28,
- 222, 107, 109, 13, 28, 210, 78, 109, 13, 28, 207, 154, 109, 13, 28, 210,
- 52, 109, 13, 43, 6, 250, 252, 13, 43, 6, 248, 63, 13, 43, 6, 231, 204,
- 13, 43, 6, 237, 76, 13, 43, 6, 234, 32, 13, 43, 6, 192, 75, 13, 43, 6,
- 233, 240, 13, 43, 6, 199, 206, 13, 43, 6, 223, 111, 13, 43, 6, 222, 106,
- 13, 43, 6, 220, 90, 13, 43, 6, 215, 241, 13, 43, 6, 213, 22, 13, 43, 6,
- 193, 196, 13, 43, 6, 211, 214, 13, 43, 6, 210, 51, 13, 43, 6, 207, 153,
- 13, 43, 6, 199, 207, 109, 13, 43, 6, 203, 99, 13, 43, 6, 200, 100, 13,
- 43, 6, 197, 34, 13, 43, 6, 210, 77, 13, 43, 6, 242, 215, 13, 43, 6, 209,
- 62, 13, 43, 6, 211, 216, 13, 43, 215, 79, 13, 43, 2, 250, 252, 13, 43, 2,
- 248, 63, 13, 43, 2, 231, 204, 13, 43, 2, 237, 76, 13, 43, 2, 234, 32, 13,
- 43, 2, 192, 75, 13, 43, 2, 233, 240, 13, 43, 2, 199, 206, 13, 43, 2, 223,
- 111, 13, 43, 2, 222, 106, 13, 43, 2, 220, 90, 13, 43, 2, 215, 241, 13,
- 43, 2, 213, 22, 13, 43, 2, 193, 196, 13, 43, 2, 211, 214, 13, 43, 2, 210,
- 51, 13, 43, 2, 207, 153, 13, 43, 2, 52, 203, 99, 13, 43, 2, 203, 99, 13,
- 43, 2, 200, 100, 13, 43, 2, 197, 34, 13, 43, 2, 210, 77, 13, 43, 2, 242,
- 215, 13, 43, 2, 209, 62, 13, 43, 2, 211, 216, 13, 43, 210, 222, 236, 244,
- 13, 43, 234, 33, 109, 13, 43, 199, 207, 109, 13, 43, 222, 107, 109, 13,
- 43, 210, 78, 109, 13, 43, 207, 154, 109, 13, 43, 210, 52, 109, 13, 28,
- 43, 6, 250, 252, 13, 28, 43, 6, 248, 63, 13, 28, 43, 6, 231, 204, 13, 28,
- 43, 6, 237, 76, 13, 28, 43, 6, 234, 32, 13, 28, 43, 6, 192, 75, 13, 28,
- 43, 6, 233, 240, 13, 28, 43, 6, 199, 206, 13, 28, 43, 6, 223, 111, 13,
- 28, 43, 6, 222, 106, 13, 28, 43, 6, 220, 90, 13, 28, 43, 6, 215, 241, 13,
- 28, 43, 6, 213, 22, 13, 28, 43, 6, 193, 196, 13, 28, 43, 6, 211, 214, 13,
- 28, 43, 6, 210, 51, 13, 28, 43, 6, 207, 153, 13, 28, 43, 6, 199, 207,
- 109, 13, 28, 43, 6, 203, 99, 13, 28, 43, 6, 200, 100, 13, 28, 43, 6, 197,
- 34, 13, 28, 43, 6, 210, 77, 13, 28, 43, 6, 242, 215, 13, 28, 43, 6, 209,
- 62, 13, 28, 43, 6, 211, 216, 13, 28, 43, 215, 79, 13, 28, 43, 2, 250,
- 252, 13, 28, 43, 2, 248, 63, 13, 28, 43, 2, 231, 204, 13, 28, 43, 2, 237,
- 76, 13, 28, 43, 2, 234, 32, 13, 28, 43, 2, 192, 75, 13, 28, 43, 2, 233,
- 240, 13, 28, 43, 2, 199, 206, 13, 28, 43, 2, 223, 111, 13, 28, 43, 2,
- 222, 106, 13, 28, 43, 2, 220, 90, 13, 28, 43, 2, 215, 241, 13, 28, 43, 2,
- 213, 22, 13, 28, 43, 2, 193, 196, 13, 28, 43, 2, 211, 214, 13, 28, 43, 2,
- 210, 51, 13, 28, 43, 2, 207, 153, 13, 28, 43, 2, 52, 203, 99, 13, 28, 43,
- 2, 203, 99, 13, 28, 43, 2, 200, 100, 13, 28, 43, 2, 197, 34, 13, 28, 43,
- 2, 210, 77, 13, 28, 43, 2, 242, 215, 13, 28, 43, 2, 209, 62, 13, 28, 43,
- 2, 211, 216, 13, 28, 43, 210, 222, 236, 244, 13, 28, 43, 234, 33, 109,
- 13, 28, 43, 199, 207, 109, 13, 28, 43, 222, 107, 109, 13, 28, 43, 210,
- 78, 109, 13, 28, 43, 207, 154, 109, 13, 28, 43, 210, 52, 109, 13, 49, 28,
- 6, 250, 252, 13, 49, 28, 6, 248, 63, 13, 49, 28, 6, 231, 204, 13, 49, 28,
- 6, 237, 76, 13, 49, 28, 6, 234, 32, 13, 49, 28, 6, 192, 75, 13, 49, 28,
- 6, 233, 240, 13, 49, 28, 6, 199, 206, 13, 49, 28, 6, 223, 111, 13, 49,
- 28, 6, 222, 106, 13, 49, 28, 6, 220, 90, 13, 49, 28, 6, 215, 241, 13, 49,
- 28, 6, 213, 22, 13, 49, 28, 6, 193, 196, 13, 49, 28, 6, 211, 214, 13, 49,
- 28, 6, 210, 51, 13, 49, 28, 6, 207, 153, 13, 49, 28, 6, 199, 207, 109,
- 13, 49, 28, 6, 203, 99, 13, 49, 28, 6, 200, 100, 13, 49, 28, 6, 197, 34,
- 13, 49, 28, 6, 210, 77, 13, 49, 28, 6, 242, 215, 13, 49, 28, 6, 209, 62,
- 13, 49, 28, 6, 211, 216, 13, 49, 28, 215, 79, 13, 49, 28, 2, 250, 252,
- 13, 49, 28, 2, 248, 63, 13, 49, 28, 2, 231, 204, 13, 49, 28, 2, 237, 76,
- 13, 49, 28, 2, 234, 32, 13, 49, 28, 2, 192, 75, 13, 49, 28, 2, 233, 240,
- 13, 49, 28, 2, 199, 206, 13, 49, 28, 2, 223, 111, 13, 49, 28, 2, 222,
- 106, 13, 49, 28, 2, 220, 90, 13, 49, 28, 2, 215, 241, 13, 49, 28, 2, 213,
- 22, 13, 49, 28, 2, 193, 196, 13, 49, 28, 2, 211, 214, 13, 49, 28, 2, 210,
- 51, 13, 49, 28, 2, 207, 153, 13, 49, 28, 2, 52, 203, 99, 13, 49, 28, 2,
- 203, 99, 13, 49, 28, 2, 200, 100, 13, 49, 28, 2, 197, 34, 13, 49, 28, 2,
- 210, 77, 13, 49, 28, 2, 242, 215, 13, 49, 28, 2, 209, 62, 13, 49, 28, 2,
- 211, 216, 13, 49, 28, 210, 222, 236, 244, 13, 49, 28, 234, 33, 109, 13,
- 49, 28, 199, 207, 109, 13, 49, 28, 222, 107, 109, 13, 49, 28, 210, 78,
- 109, 13, 49, 28, 207, 154, 109, 13, 49, 28, 210, 52, 109, 13, 49, 28, 43,
- 6, 250, 252, 13, 49, 28, 43, 6, 248, 63, 13, 49, 28, 43, 6, 231, 204, 13,
- 49, 28, 43, 6, 237, 76, 13, 49, 28, 43, 6, 234, 32, 13, 49, 28, 43, 6,
- 192, 75, 13, 49, 28, 43, 6, 233, 240, 13, 49, 28, 43, 6, 199, 206, 13,
- 49, 28, 43, 6, 223, 111, 13, 49, 28, 43, 6, 222, 106, 13, 49, 28, 43, 6,
- 220, 90, 13, 49, 28, 43, 6, 215, 241, 13, 49, 28, 43, 6, 213, 22, 13, 49,
- 28, 43, 6, 193, 196, 13, 49, 28, 43, 6, 211, 214, 13, 49, 28, 43, 6, 210,
- 51, 13, 49, 28, 43, 6, 207, 153, 13, 49, 28, 43, 6, 199, 207, 109, 13,
- 49, 28, 43, 6, 203, 99, 13, 49, 28, 43, 6, 200, 100, 13, 49, 28, 43, 6,
- 197, 34, 13, 49, 28, 43, 6, 210, 77, 13, 49, 28, 43, 6, 242, 215, 13, 49,
- 28, 43, 6, 209, 62, 13, 49, 28, 43, 6, 211, 216, 13, 49, 28, 43, 215, 79,
- 13, 49, 28, 43, 2, 250, 252, 13, 49, 28, 43, 2, 248, 63, 13, 49, 28, 43,
- 2, 231, 204, 13, 49, 28, 43, 2, 237, 76, 13, 49, 28, 43, 2, 234, 32, 13,
- 49, 28, 43, 2, 192, 75, 13, 49, 28, 43, 2, 233, 240, 13, 49, 28, 43, 2,
- 199, 206, 13, 49, 28, 43, 2, 223, 111, 13, 49, 28, 43, 2, 222, 106, 13,
- 49, 28, 43, 2, 220, 90, 13, 49, 28, 43, 2, 215, 241, 13, 49, 28, 43, 2,
- 213, 22, 13, 49, 28, 43, 2, 193, 196, 13, 49, 28, 43, 2, 211, 214, 13,
- 49, 28, 43, 2, 210, 51, 13, 49, 28, 43, 2, 207, 153, 13, 49, 28, 43, 2,
- 52, 203, 99, 13, 49, 28, 43, 2, 203, 99, 13, 49, 28, 43, 2, 200, 100, 13,
- 49, 28, 43, 2, 197, 34, 13, 49, 28, 43, 2, 210, 77, 13, 49, 28, 43, 2,
- 242, 215, 13, 49, 28, 43, 2, 209, 62, 13, 49, 28, 43, 2, 211, 216, 13,
- 49, 28, 43, 210, 222, 236, 244, 13, 49, 28, 43, 234, 33, 109, 13, 49, 28,
- 43, 199, 207, 109, 13, 49, 28, 43, 222, 107, 109, 13, 49, 28, 43, 210,
- 78, 109, 13, 49, 28, 43, 207, 154, 109, 13, 49, 28, 43, 210, 52, 109, 13,
- 28, 6, 236, 238, 13, 28, 2, 236, 238, 13, 28, 17, 192, 76, 13, 28, 17,
- 101, 13, 28, 17, 104, 13, 28, 17, 133, 13, 28, 17, 134, 13, 28, 17, 151,
- 13, 28, 17, 170, 13, 28, 17, 179, 13, 28, 17, 174, 13, 28, 17, 182, 13,
- 235, 102, 17, 192, 76, 13, 235, 102, 17, 101, 13, 235, 102, 17, 104, 13,
- 235, 102, 17, 133, 13, 235, 102, 17, 134, 13, 235, 102, 17, 151, 13, 235,
- 102, 17, 170, 13, 235, 102, 17, 179, 13, 235, 102, 17, 174, 13, 235, 102,
- 17, 182, 13, 49, 17, 192, 76, 13, 49, 17, 101, 13, 49, 17, 104, 13, 49,
- 17, 133, 13, 49, 17, 134, 13, 49, 17, 151, 13, 49, 17, 170, 13, 49, 17,
- 179, 13, 49, 17, 174, 13, 49, 17, 182, 13, 49, 28, 17, 192, 76, 13, 49,
- 28, 17, 101, 13, 49, 28, 17, 104, 13, 49, 28, 17, 133, 13, 49, 28, 17,
- 134, 13, 49, 28, 17, 151, 13, 49, 28, 17, 170, 13, 49, 28, 17, 179, 13,
- 49, 28, 17, 174, 13, 49, 28, 17, 182, 13, 216, 41, 17, 192, 76, 13, 216,
- 41, 17, 101, 13, 216, 41, 17, 104, 13, 216, 41, 17, 133, 13, 216, 41, 17,
- 134, 13, 216, 41, 17, 151, 13, 216, 41, 17, 170, 13, 216, 41, 17, 179,
- 13, 216, 41, 17, 174, 13, 216, 41, 17, 182, 23, 146, 223, 176, 23, 230,
- 59, 223, 176, 23, 230, 55, 223, 176, 23, 230, 44, 223, 176, 23, 230, 48,
- 223, 176, 23, 230, 61, 223, 176, 23, 146, 140, 248, 74, 23, 230, 59, 140,
- 248, 74, 23, 146, 171, 197, 69, 140, 248, 74, 23, 146, 140, 208, 39, 221,
- 116, 23, 146, 140, 238, 144, 23, 146, 140, 229, 144, 23, 146, 140, 229,
- 145, 219, 52, 23, 230, 59, 140, 229, 146, 23, 146, 140, 216, 160, 23,
- 230, 59, 140, 216, 160, 23, 146, 140, 85, 248, 74, 23, 146, 140, 85, 208,
- 39, 221, 115, 23, 146, 140, 85, 229, 144, 23, 146, 140, 130, 85, 229,
- 144, 23, 146, 140, 229, 145, 85, 197, 41, 23, 146, 140, 85, 239, 10, 23,
- 146, 140, 85, 239, 11, 140, 248, 74, 23, 146, 140, 85, 239, 11, 85, 248,
- 74, 23, 146, 140, 85, 239, 11, 238, 144, 23, 146, 140, 85, 239, 11, 229,
- 144, 23, 146, 140, 85, 238, 179, 23, 230, 59, 140, 85, 238, 179, 23, 146,
- 85, 248, 75, 136, 223, 176, 23, 146, 140, 248, 75, 136, 216, 160, 23,
- 146, 140, 85, 199, 147, 23, 230, 59, 140, 85, 199, 147, 23, 146, 140, 85,
- 201, 230, 171, 248, 74, 23, 146, 140, 85, 248, 75, 171, 201, 229, 23,
- 146, 140, 85, 171, 248, 74, 23, 146, 140, 85, 229, 145, 202, 115, 171,
- 203, 110, 23, 146, 140, 130, 85, 229, 145, 171, 203, 110, 23, 146, 140,
- 130, 85, 229, 145, 171, 239, 10, 23, 146, 140, 229, 145, 85, 130, 171,
- 203, 110, 23, 146, 140, 85, 130, 202, 115, 171, 232, 123, 23, 146, 140,
- 85, 171, 238, 144, 23, 146, 140, 85, 171, 242, 129, 23, 146, 140, 85,
- 171, 229, 13, 23, 146, 140, 85, 171, 229, 144, 23, 146, 171, 248, 61,
- 140, 85, 201, 229, 23, 146, 140, 85, 239, 11, 171, 203, 110, 23, 146,
- 140, 85, 239, 11, 171, 203, 111, 239, 10, 23, 146, 140, 85, 239, 11, 171,
- 203, 111, 248, 74, 23, 146, 85, 171, 229, 14, 140, 197, 41, 23, 146, 140,
- 171, 229, 14, 85, 197, 41, 23, 146, 140, 85, 239, 11, 229, 145, 171, 203,
- 110, 23, 146, 140, 85, 238, 180, 171, 203, 110, 23, 146, 140, 85, 239,
- 11, 171, 232, 123, 23, 146, 140, 85, 239, 11, 238, 145, 171, 232, 123,
- 23, 146, 85, 171, 238, 145, 140, 197, 41, 23, 146, 140, 171, 238, 145,
- 85, 197, 41, 23, 146, 85, 171, 47, 140, 197, 41, 23, 146, 85, 171, 47,
- 140, 229, 144, 23, 146, 140, 171, 250, 206, 211, 126, 85, 197, 41, 23,
- 146, 140, 171, 250, 206, 223, 191, 85, 197, 41, 23, 146, 140, 171, 47,
- 85, 197, 41, 23, 146, 140, 85, 171, 239, 11, 229, 144, 23, 146, 140, 85,
- 171, 250, 206, 211, 125, 23, 146, 140, 85, 171, 250, 205, 23, 146, 85,
- 171, 250, 206, 211, 126, 140, 197, 41, 23, 146, 85, 171, 250, 206, 211,
- 126, 140, 238, 179, 23, 146, 85, 171, 250, 206, 140, 197, 41, 23, 146,
- 140, 171, 229, 14, 85, 229, 144, 23, 230, 50, 232, 119, 232, 235, 23,
- 230, 50, 232, 119, 232, 236, 248, 74, 23, 230, 50, 232, 119, 232, 236,
- 229, 144, 23, 230, 50, 232, 119, 232, 236, 239, 10, 23, 230, 50, 232,
- 119, 232, 236, 239, 11, 202, 124, 23, 230, 57, 232, 119, 232, 236, 239,
- 10, 23, 146, 232, 119, 232, 236, 239, 11, 248, 74, 23, 230, 48, 232, 119,
- 232, 236, 239, 10, 23, 230, 50, 232, 214, 232, 236, 202, 114, 23, 230,
- 50, 229, 223, 232, 214, 232, 236, 202, 114, 23, 230, 50, 232, 214, 232,
- 236, 202, 115, 232, 119, 248, 74, 23, 230, 50, 229, 223, 232, 214, 232,
- 236, 202, 115, 232, 119, 248, 74, 23, 230, 50, 232, 214, 232, 236, 202,
- 115, 248, 74, 23, 230, 50, 229, 223, 232, 214, 232, 236, 202, 115, 248,
- 74, 23, 230, 50, 232, 214, 232, 236, 202, 115, 171, 232, 123, 23, 230,
- 55, 232, 214, 232, 236, 202, 114, 23, 230, 55, 232, 214, 232, 236, 202,
- 115, 211, 183, 23, 230, 48, 232, 214, 232, 236, 202, 115, 211, 183, 23,
- 230, 44, 232, 214, 232, 236, 202, 114, 23, 230, 50, 232, 214, 232, 236,
- 202, 115, 229, 144, 23, 230, 50, 232, 214, 232, 236, 202, 115, 229, 145,
- 171, 203, 110, 23, 230, 50, 232, 214, 232, 236, 202, 115, 229, 145, 213,
- 143, 199, 147, 23, 230, 49, 23, 230, 50, 248, 61, 211, 41, 233, 83, 23,
- 230, 50, 229, 222, 23, 230, 50, 171, 203, 110, 23, 230, 50, 229, 223,
- 171, 203, 110, 23, 230, 50, 171, 248, 74, 23, 230, 50, 171, 232, 123, 23,
- 230, 50, 202, 125, 140, 171, 203, 110, 23, 230, 50, 202, 125, 246, 137,
- 23, 230, 50, 202, 125, 246, 138, 171, 203, 110, 23, 230, 50, 202, 125,
- 246, 138, 171, 203, 111, 248, 74, 23, 230, 50, 202, 125, 219, 146, 23,
- 230, 56, 23, 230, 57, 171, 203, 110, 23, 230, 57, 213, 143, 199, 147, 23,
- 230, 57, 171, 232, 123, 23, 230, 46, 238, 140, 23, 230, 45, 23, 230, 55,
- 211, 183, 23, 230, 54, 23, 230, 55, 211, 184, 171, 203, 110, 23, 230, 55,
- 171, 203, 110, 23, 230, 55, 211, 184, 213, 143, 199, 147, 23, 230, 55,
- 213, 143, 199, 147, 23, 230, 55, 211, 184, 171, 232, 123, 23, 230, 55,
- 171, 232, 123, 23, 230, 53, 211, 183, 23, 230, 52, 23, 230, 58, 23, 230,
- 43, 23, 230, 44, 171, 203, 110, 23, 230, 44, 213, 143, 199, 147, 23, 230,
- 44, 171, 232, 123, 23, 230, 48, 211, 183, 23, 230, 48, 211, 184, 171,
- 232, 123, 23, 230, 47, 23, 230, 48, 202, 236, 23, 230, 48, 211, 184, 171,
- 203, 110, 23, 230, 48, 171, 203, 110, 23, 230, 48, 211, 184, 213, 143,
- 199, 147, 23, 230, 48, 213, 143, 199, 147, 23, 230, 48, 171, 203, 111,
- 198, 231, 223, 176, 23, 230, 48, 171, 248, 61, 85, 207, 81, 23, 230, 60,
- 23, 146, 140, 85, 207, 81, 23, 230, 59, 140, 85, 207, 81, 23, 230, 48,
- 140, 85, 207, 81, 23, 230, 61, 140, 85, 207, 81, 23, 230, 48, 219, 146,
- 23, 146, 140, 85, 207, 82, 248, 74, 23, 146, 140, 85, 207, 82, 239, 10,
- 23, 230, 48, 140, 85, 207, 82, 239, 10, 23, 146, 219, 147, 235, 96, 23,
- 146, 219, 147, 142, 207, 76, 201, 229, 23, 146, 219, 147, 142, 207, 76,
- 238, 129, 23, 146, 219, 147, 142, 211, 136, 242, 129, 23, 146, 219, 147,
- 197, 41, 23, 146, 171, 197, 69, 219, 147, 197, 41, 23, 230, 59, 219, 147,
- 197, 41, 23, 230, 44, 219, 147, 197, 41, 23, 230, 61, 219, 147, 197, 41,
- 23, 146, 219, 147, 208, 39, 221, 116, 23, 146, 219, 147, 248, 74, 23,
- 146, 219, 147, 198, 232, 199, 147, 23, 146, 219, 147, 199, 147, 23, 230,
- 48, 219, 147, 199, 147, 23, 146, 219, 147, 140, 199, 147, 23, 230, 48,
- 219, 147, 140, 199, 147, 23, 230, 61, 219, 147, 140, 171, 140, 171, 211,
- 125, 23, 230, 61, 219, 147, 140, 171, 140, 199, 147, 23, 146, 219, 147,
- 223, 176, 23, 230, 59, 219, 147, 223, 176, 23, 230, 48, 219, 147, 223,
- 176, 23, 230, 61, 219, 147, 223, 176, 23, 146, 140, 85, 219, 146, 23,
- 230, 59, 140, 85, 219, 146, 23, 230, 48, 140, 85, 219, 146, 23, 230, 48,
- 207, 81, 23, 230, 61, 140, 85, 219, 146, 23, 146, 140, 85, 238, 184, 219,
- 146, 23, 230, 59, 140, 85, 238, 184, 219, 146, 23, 146, 207, 82, 235, 96,
- 23, 230, 48, 207, 82, 142, 140, 171, 229, 15, 216, 160, 23, 230, 61, 207,
- 82, 142, 85, 171, 140, 238, 183, 23, 146, 207, 82, 197, 41, 23, 146, 207,
- 82, 208, 39, 221, 116, 23, 146, 207, 82, 219, 146, 23, 230, 59, 207, 82,
- 219, 146, 23, 230, 44, 207, 82, 219, 146, 23, 230, 61, 207, 82, 219, 146,
- 23, 146, 207, 82, 216, 160, 23, 146, 207, 82, 85, 239, 10, 23, 146, 207,
- 82, 85, 208, 39, 221, 115, 23, 146, 207, 82, 223, 176, 23, 146, 207, 82,
- 199, 147, 23, 230, 46, 207, 82, 199, 147, 23, 146, 140, 207, 82, 219,
- 146, 23, 230, 59, 140, 207, 82, 219, 146, 23, 230, 53, 140, 207, 82, 219,
- 147, 211, 211, 23, 230, 46, 140, 207, 82, 219, 147, 211, 125, 23, 230,
- 46, 140, 207, 82, 219, 147, 223, 190, 23, 230, 46, 140, 207, 82, 219,
- 147, 197, 68, 23, 230, 55, 140, 207, 82, 219, 146, 23, 230, 48, 140, 207,
- 82, 219, 146, 23, 230, 61, 140, 207, 82, 219, 147, 211, 125, 23, 230, 61,
- 140, 207, 82, 219, 146, 23, 146, 85, 235, 96, 23, 230, 48, 216, 160, 23,
- 146, 85, 197, 41, 23, 230, 59, 85, 197, 41, 23, 146, 85, 208, 39, 221,
- 116, 23, 146, 85, 130, 171, 203, 110, 23, 230, 46, 85, 199, 147, 23, 146,
- 85, 171, 219, 146, 23, 146, 85, 219, 146, 23, 146, 85, 207, 82, 219, 146,
- 23, 230, 59, 85, 207, 82, 219, 146, 23, 230, 53, 85, 207, 82, 219, 147,
- 211, 211, 23, 230, 55, 85, 207, 82, 219, 146, 23, 230, 48, 85, 207, 82,
- 219, 146, 23, 230, 61, 85, 207, 82, 219, 147, 211, 125, 23, 230, 61, 85,
- 207, 82, 219, 147, 223, 190, 23, 230, 61, 85, 207, 82, 219, 146, 23, 230,
- 59, 85, 207, 82, 219, 147, 248, 74, 23, 230, 57, 85, 207, 82, 219, 147,
- 239, 10, 23, 230, 57, 85, 207, 82, 219, 147, 239, 11, 203, 110, 23, 230,
- 46, 85, 207, 82, 219, 147, 239, 11, 211, 125, 23, 230, 46, 85, 207, 82,
- 219, 147, 239, 11, 223, 190, 23, 230, 46, 85, 207, 82, 219, 147, 239, 10,
- 23, 230, 48, 140, 229, 144, 23, 146, 140, 171, 203, 110, 23, 230, 48,
- 140, 171, 203, 110, 23, 146, 140, 171, 203, 111, 171, 237, 10, 23, 146,
- 140, 171, 203, 111, 171, 239, 10, 23, 146, 140, 171, 203, 111, 171, 248,
- 74, 23, 146, 140, 171, 203, 111, 140, 248, 74, 23, 146, 140, 171, 203,
- 111, 247, 191, 248, 74, 23, 146, 140, 171, 203, 111, 140, 229, 146, 23,
- 146, 140, 171, 232, 124, 140, 201, 229, 23, 146, 140, 171, 232, 124, 140,
- 248, 74, 23, 146, 140, 171, 128, 23, 146, 140, 171, 238, 140, 23, 146,
- 140, 171, 238, 132, 171, 223, 145, 23, 230, 57, 140, 171, 238, 132, 171,
- 223, 145, 23, 146, 140, 171, 238, 132, 171, 197, 68, 23, 146, 140, 171,
- 242, 130, 23, 230, 55, 140, 199, 147, 23, 230, 55, 140, 171, 211, 183,
- 23, 230, 48, 140, 171, 211, 183, 23, 230, 48, 140, 171, 220, 72, 23, 230,
- 48, 140, 199, 147, 23, 230, 48, 140, 171, 202, 236, 23, 230, 61, 140,
- 171, 211, 125, 23, 230, 61, 140, 171, 223, 190, 23, 230, 61, 140, 199,
- 147, 23, 146, 199, 147, 23, 146, 171, 229, 222, 23, 146, 171, 203, 111,
- 237, 10, 23, 146, 171, 203, 111, 239, 10, 23, 146, 171, 203, 111, 248,
- 74, 23, 146, 171, 232, 123, 23, 146, 171, 248, 61, 140, 216, 160, 23,
- 146, 171, 248, 61, 85, 207, 81, 23, 146, 171, 248, 61, 207, 82, 219, 146,
- 23, 146, 171, 197, 69, 103, 232, 235, 23, 146, 171, 136, 103, 232, 235,
- 23, 146, 171, 197, 69, 112, 232, 235, 23, 146, 171, 197, 69, 232, 119,
- 232, 235, 23, 146, 171, 136, 232, 119, 208, 39, 221, 115, 23, 230, 51,
- 23, 146, 229, 222, 23, 198, 233, 203, 73, 23, 198, 233, 215, 215, 23,
- 198, 233, 248, 60, 23, 230, 215, 203, 73, 23, 230, 215, 215, 215, 23,
- 230, 215, 248, 60, 23, 201, 213, 203, 73, 23, 201, 213, 215, 215, 23,
- 201, 213, 248, 60, 23, 247, 132, 203, 73, 23, 247, 132, 215, 215, 23,
- 247, 132, 248, 60, 23, 206, 210, 203, 73, 23, 206, 210, 215, 215, 23,
- 206, 210, 248, 60, 23, 201, 96, 201, 5, 23, 201, 96, 248, 60, 23, 202,
- 102, 220, 73, 203, 73, 23, 202, 102, 2, 203, 73, 23, 202, 102, 220, 73,
- 215, 215, 23, 202, 102, 2, 215, 215, 23, 202, 102, 204, 161, 23, 232,
- 186, 220, 73, 203, 73, 23, 232, 186, 2, 203, 73, 23, 232, 186, 220, 73,
- 215, 215, 23, 232, 186, 2, 215, 215, 23, 232, 186, 204, 161, 23, 202,
- 102, 232, 186, 250, 246, 23, 215, 253, 130, 142, 220, 72, 23, 215, 253,
- 130, 142, 202, 236, 23, 215, 253, 130, 204, 161, 23, 215, 253, 142, 204,
- 161, 23, 215, 253, 130, 142, 250, 247, 220, 72, 23, 215, 253, 130, 142,
- 250, 247, 202, 236, 23, 215, 253, 203, 111, 115, 203, 111, 205, 238, 23,
- 215, 252, 232, 241, 239, 0, 23, 215, 254, 232, 241, 239, 0, 23, 215, 252,
- 203, 74, 201, 230, 202, 236, 23, 215, 252, 203, 74, 201, 230, 217, 30,
- 23, 215, 252, 203, 74, 201, 230, 220, 72, 23, 215, 252, 203, 74, 201,
- 230, 220, 70, 23, 215, 252, 203, 74, 193, 248, 232, 189, 23, 215, 252,
- 55, 201, 229, 23, 215, 252, 55, 193, 248, 232, 189, 23, 215, 252, 55,
- 250, 246, 23, 215, 252, 55, 250, 247, 193, 248, 232, 189, 23, 215, 252,
- 238, 183, 23, 215, 252, 198, 170, 201, 230, 216, 0, 23, 215, 252, 198,
- 170, 193, 248, 232, 189, 23, 215, 252, 198, 170, 250, 246, 23, 215, 252,
- 198, 170, 250, 247, 193, 248, 232, 189, 23, 215, 252, 248, 79, 202, 236,
- 23, 215, 252, 248, 79, 217, 30, 23, 215, 252, 248, 79, 220, 72, 23, 215,
- 252, 238, 224, 202, 236, 23, 215, 252, 238, 224, 217, 30, 23, 215, 252,
- 238, 224, 220, 72, 23, 215, 252, 238, 224, 207, 14, 23, 215, 252, 242,
- 244, 202, 236, 23, 215, 252, 242, 244, 217, 30, 23, 215, 252, 242, 244,
- 220, 72, 23, 215, 252, 105, 202, 236, 23, 215, 252, 105, 217, 30, 23,
- 215, 252, 105, 220, 72, 23, 215, 252, 192, 21, 202, 236, 23, 215, 252,
- 192, 21, 217, 30, 23, 215, 252, 192, 21, 220, 72, 23, 215, 252, 210, 176,
- 202, 236, 23, 215, 252, 210, 176, 217, 30, 23, 215, 252, 210, 176, 220,
- 72, 23, 198, 200, 207, 12, 203, 73, 23, 198, 200, 207, 12, 235, 106, 23,
- 198, 200, 207, 12, 250, 246, 23, 198, 200, 207, 13, 203, 73, 23, 198,
- 200, 207, 13, 235, 106, 23, 198, 200, 207, 13, 250, 246, 23, 198, 200,
- 204, 43, 23, 198, 200, 250, 93, 202, 133, 203, 73, 23, 198, 200, 250, 93,
- 202, 133, 235, 106, 23, 198, 200, 250, 93, 202, 133, 198, 169, 23, 215,
- 255, 249, 240, 202, 236, 23, 215, 255, 249, 240, 217, 30, 23, 215, 255,
- 249, 240, 220, 72, 23, 215, 255, 249, 240, 220, 70, 23, 215, 255, 198,
- 227, 202, 236, 23, 215, 255, 198, 227, 217, 30, 23, 215, 255, 198, 227,
- 220, 72, 23, 215, 255, 198, 227, 220, 70, 23, 215, 255, 248, 61, 249,
- 240, 202, 236, 23, 215, 255, 248, 61, 249, 240, 217, 30, 23, 215, 255,
- 248, 61, 249, 240, 220, 72, 23, 215, 255, 248, 61, 249, 240, 220, 70, 23,
- 215, 255, 248, 61, 198, 227, 202, 236, 23, 215, 255, 248, 61, 198, 227,
- 217, 30, 23, 215, 255, 248, 61, 198, 227, 220, 72, 23, 215, 255, 248, 61,
- 198, 227, 220, 70, 23, 215, 254, 203, 74, 201, 230, 202, 236, 23, 215,
- 254, 203, 74, 201, 230, 217, 30, 23, 215, 254, 203, 74, 201, 230, 220,
- 72, 23, 215, 254, 203, 74, 201, 230, 220, 70, 23, 215, 254, 203, 74, 193,
- 248, 232, 189, 23, 215, 254, 55, 201, 229, 23, 215, 254, 55, 193, 248,
- 232, 189, 23, 215, 254, 55, 250, 246, 23, 215, 254, 55, 250, 247, 193,
- 248, 232, 189, 23, 215, 254, 238, 183, 23, 215, 254, 198, 170, 201, 230,
- 216, 0, 23, 215, 254, 198, 170, 193, 248, 232, 189, 23, 215, 254, 198,
- 170, 250, 247, 216, 0, 23, 215, 254, 198, 170, 250, 247, 193, 248, 232,
- 189, 23, 215, 254, 248, 78, 23, 215, 254, 238, 224, 202, 236, 23, 215,
- 254, 238, 224, 217, 30, 23, 215, 254, 238, 224, 220, 72, 23, 215, 254,
- 242, 243, 23, 215, 254, 105, 202, 236, 23, 215, 254, 105, 217, 30, 23,
- 215, 254, 105, 220, 72, 23, 215, 254, 192, 21, 202, 236, 23, 215, 254,
- 192, 21, 217, 30, 23, 215, 254, 192, 21, 220, 72, 23, 215, 254, 210, 176,
- 202, 236, 23, 215, 254, 210, 176, 217, 30, 23, 215, 254, 210, 176, 220,
- 72, 23, 198, 201, 207, 13, 203, 73, 23, 198, 201, 207, 13, 235, 106, 23,
- 198, 201, 207, 13, 250, 246, 23, 198, 201, 207, 12, 203, 73, 23, 198,
- 201, 207, 12, 235, 106, 23, 198, 201, 207, 12, 250, 246, 23, 198, 201,
- 204, 43, 23, 215, 252, 238, 132, 208, 168, 202, 236, 23, 215, 252, 238,
- 132, 208, 168, 217, 30, 23, 215, 252, 238, 132, 208, 168, 220, 72, 23,
- 215, 252, 238, 132, 208, 168, 220, 70, 23, 215, 252, 238, 132, 230, 75,
- 202, 236, 23, 215, 252, 238, 132, 230, 75, 217, 30, 23, 215, 252, 238,
- 132, 230, 75, 220, 72, 23, 215, 252, 238, 132, 230, 75, 220, 70, 23, 215,
- 252, 238, 132, 199, 153, 242, 131, 202, 236, 23, 215, 252, 238, 132, 199,
- 153, 242, 131, 217, 30, 23, 215, 252, 228, 165, 202, 236, 23, 215, 252,
- 228, 165, 217, 30, 23, 215, 252, 228, 165, 220, 72, 23, 215, 252, 219,
- 70, 202, 236, 23, 215, 252, 219, 70, 217, 30, 23, 215, 252, 219, 70, 220,
- 72, 23, 215, 252, 219, 70, 2, 235, 106, 23, 215, 252, 194, 125, 238, 132,
- 55, 202, 236, 23, 215, 252, 194, 125, 238, 132, 55, 217, 30, 23, 215,
- 252, 194, 125, 238, 132, 55, 220, 72, 23, 215, 252, 194, 125, 238, 132,
- 198, 170, 202, 236, 23, 215, 252, 194, 125, 238, 132, 198, 170, 217, 30,
- 23, 215, 252, 194, 125, 238, 132, 198, 170, 220, 72, 23, 215, 252, 238,
- 132, 199, 216, 201, 229, 23, 215, 252, 238, 130, 238, 184, 202, 236, 23,
- 215, 252, 238, 130, 238, 184, 217, 30, 23, 207, 12, 203, 73, 23, 207, 12,
- 235, 106, 23, 207, 12, 250, 248, 23, 215, 252, 204, 43, 23, 215, 252,
- 238, 132, 229, 136, 232, 88, 194, 151, 23, 215, 252, 228, 165, 229, 136,
- 232, 88, 194, 151, 23, 215, 252, 219, 70, 229, 136, 232, 88, 194, 151,
- 23, 215, 252, 194, 125, 229, 136, 232, 88, 194, 151, 23, 207, 12, 203,
- 74, 229, 136, 232, 88, 194, 151, 23, 207, 12, 55, 229, 136, 232, 88, 194,
- 151, 23, 207, 12, 250, 247, 229, 136, 232, 88, 194, 151, 23, 215, 252,
- 238, 132, 229, 136, 242, 224, 23, 215, 252, 228, 165, 229, 136, 242, 224,
- 23, 215, 252, 219, 70, 229, 136, 242, 224, 23, 215, 252, 194, 125, 229,
- 136, 242, 224, 23, 207, 12, 203, 74, 229, 136, 242, 224, 23, 207, 12, 55,
- 229, 136, 242, 224, 23, 207, 12, 250, 247, 229, 136, 242, 224, 23, 215,
- 252, 194, 125, 237, 11, 210, 203, 202, 236, 23, 215, 252, 194, 125, 237,
- 11, 210, 203, 217, 30, 23, 215, 252, 194, 125, 237, 11, 210, 203, 220,
- 72, 23, 215, 254, 238, 132, 229, 136, 246, 147, 202, 236, 23, 215, 254,
- 238, 132, 229, 136, 246, 147, 220, 72, 23, 215, 254, 228, 165, 229, 136,
- 246, 147, 2, 235, 106, 23, 215, 254, 228, 165, 229, 136, 246, 147, 220,
- 73, 235, 106, 23, 215, 254, 228, 165, 229, 136, 246, 147, 2, 198, 169,
- 23, 215, 254, 228, 165, 229, 136, 246, 147, 220, 73, 198, 169, 23, 215,
- 254, 219, 70, 229, 136, 246, 147, 2, 203, 73, 23, 215, 254, 219, 70, 229,
- 136, 246, 147, 220, 73, 203, 73, 23, 215, 254, 219, 70, 229, 136, 246,
- 147, 2, 235, 106, 23, 215, 254, 219, 70, 229, 136, 246, 147, 220, 73,
- 235, 106, 23, 215, 254, 194, 125, 229, 136, 246, 147, 202, 236, 23, 215,
- 254, 194, 125, 229, 136, 246, 147, 220, 72, 23, 207, 13, 203, 74, 229,
- 136, 246, 146, 23, 207, 13, 55, 229, 136, 246, 146, 23, 207, 13, 250,
- 247, 229, 136, 246, 146, 23, 215, 254, 238, 132, 229, 136, 232, 183, 202,
- 236, 23, 215, 254, 238, 132, 229, 136, 232, 183, 220, 72, 23, 215, 254,
- 228, 165, 229, 136, 232, 183, 2, 235, 106, 23, 215, 254, 228, 165, 229,
- 136, 232, 183, 220, 73, 235, 106, 23, 215, 254, 228, 165, 229, 136, 232,
- 183, 198, 170, 2, 198, 169, 23, 215, 254, 228, 165, 229, 136, 232, 183,
- 198, 170, 220, 73, 198, 169, 23, 215, 254, 219, 70, 229, 136, 232, 183,
- 2, 203, 73, 23, 215, 254, 219, 70, 229, 136, 232, 183, 220, 73, 203, 73,
- 23, 215, 254, 219, 70, 229, 136, 232, 183, 2, 235, 106, 23, 215, 254,
- 219, 70, 229, 136, 232, 183, 220, 73, 235, 106, 23, 215, 254, 194, 125,
- 229, 136, 232, 183, 202, 236, 23, 215, 254, 194, 125, 229, 136, 232, 183,
- 220, 72, 23, 207, 13, 203, 74, 229, 136, 232, 182, 23, 207, 13, 55, 229,
- 136, 232, 182, 23, 207, 13, 250, 247, 229, 136, 232, 182, 23, 215, 254,
- 238, 132, 202, 236, 23, 215, 254, 238, 132, 217, 30, 23, 215, 254, 238,
- 132, 220, 72, 23, 215, 254, 238, 132, 220, 70, 23, 215, 254, 238, 132,
- 242, 42, 23, 215, 254, 228, 165, 202, 236, 23, 215, 254, 219, 70, 202,
- 236, 23, 215, 254, 194, 125, 202, 224, 23, 215, 254, 194, 125, 202, 236,
- 23, 215, 254, 194, 125, 220, 72, 23, 207, 13, 203, 73, 23, 207, 13, 235,
- 106, 23, 207, 13, 250, 246, 23, 215, 254, 204, 44, 210, 235, 23, 215,
- 252, 250, 93, 242, 131, 2, 203, 73, 23, 215, 252, 250, 93, 242, 131, 217,
- 31, 203, 73, 23, 215, 252, 250, 93, 242, 131, 2, 235, 106, 23, 215, 252,
- 250, 93, 242, 131, 217, 31, 235, 106, 23, 215, 254, 250, 93, 242, 131,
- 229, 136, 194, 152, 2, 203, 73, 23, 215, 254, 250, 93, 242, 131, 229,
- 136, 194, 152, 217, 31, 203, 73, 23, 215, 254, 250, 93, 242, 131, 229,
- 136, 194, 152, 220, 73, 203, 73, 23, 215, 254, 250, 93, 242, 131, 229,
- 136, 194, 152, 2, 235, 106, 23, 215, 254, 250, 93, 242, 131, 229, 136,
- 194, 152, 217, 31, 235, 106, 23, 215, 254, 250, 93, 242, 131, 229, 136,
- 194, 152, 220, 73, 235, 106, 23, 215, 252, 193, 248, 242, 131, 232, 88,
- 203, 73, 23, 215, 252, 193, 248, 242, 131, 232, 88, 235, 106, 23, 215,
- 254, 193, 248, 242, 131, 229, 136, 194, 152, 203, 73, 23, 215, 254, 193,
- 248, 242, 131, 229, 136, 194, 152, 235, 106, 23, 215, 252, 232, 241, 242,
- 128, 203, 73, 23, 215, 252, 232, 241, 242, 128, 235, 106, 23, 215, 254,
- 232, 241, 242, 128, 229, 136, 194, 152, 203, 73, 23, 215, 254, 232, 241,
- 242, 128, 229, 136, 194, 152, 235, 106, 23, 235, 22, 250, 78, 202, 236,
- 23, 235, 22, 250, 78, 220, 72, 23, 235, 22, 233, 61, 23, 235, 22, 202,
- 239, 23, 235, 22, 200, 23, 23, 235, 22, 207, 213, 23, 235, 22, 203, 80,
- 23, 235, 22, 203, 81, 250, 246, 23, 235, 22, 233, 213, 211, 137, 199, 84,
- 23, 235, 22, 230, 225, 23, 229, 245, 23, 229, 246, 207, 86, 23, 229, 246,
- 215, 252, 201, 229, 23, 229, 246, 215, 252, 199, 87, 23, 229, 246, 215,
- 254, 201, 229, 23, 229, 246, 215, 252, 238, 131, 23, 229, 246, 215, 254,
- 238, 131, 23, 229, 246, 216, 1, 242, 130, 23, 233, 92, 236, 205, 209,
- 160, 213, 113, 232, 124, 199, 85, 23, 233, 92, 236, 205, 209, 160, 213,
- 113, 130, 211, 164, 235, 96, 23, 233, 92, 236, 205, 209, 160, 213, 113,
- 130, 211, 164, 142, 199, 85, 23, 233, 179, 201, 230, 197, 41, 23, 233,
- 179, 201, 230, 214, 178, 23, 233, 179, 201, 230, 235, 96, 23, 235, 80,
- 233, 179, 214, 179, 235, 96, 23, 235, 80, 233, 179, 142, 214, 178, 23,
- 235, 80, 233, 179, 130, 214, 178, 23, 235, 80, 233, 179, 214, 179, 197,
- 41, 23, 232, 141, 214, 178, 23, 232, 141, 239, 0, 23, 232, 141, 193, 251,
- 23, 233, 174, 211, 183, 23, 233, 174, 202, 101, 23, 233, 174, 242, 83,
- 23, 233, 182, 247, 239, 203, 73, 23, 233, 182, 247, 239, 215, 215, 23,
- 233, 174, 138, 211, 183, 23, 233, 174, 194, 64, 211, 183, 23, 233, 174,
- 138, 242, 83, 23, 233, 174, 194, 62, 216, 0, 23, 233, 182, 194, 45, 23,
- 233, 175, 197, 41, 23, 233, 175, 235, 96, 23, 233, 175, 232, 169, 23,
- 233, 177, 201, 229, 23, 233, 177, 201, 230, 235, 106, 23, 233, 177, 201,
- 230, 250, 246, 23, 233, 178, 201, 229, 23, 233, 178, 201, 230, 235, 106,
- 23, 233, 178, 201, 230, 250, 246, 23, 233, 177, 238, 129, 23, 233, 178,
- 238, 129, 23, 233, 177, 242, 125, 23, 242, 239, 209, 41, 23, 242, 239,
- 214, 178, 23, 242, 239, 201, 143, 23, 200, 24, 242, 239, 229, 155, 23,
- 200, 24, 242, 239, 216, 160, 23, 200, 24, 242, 239, 219, 52, 23, 234,
- 191, 23, 213, 113, 214, 178, 23, 213, 113, 239, 0, 23, 213, 113, 193,
- 249, 23, 213, 113, 194, 59, 23, 251, 53, 247, 225, 211, 125, 23, 251, 53,
- 201, 142, 223, 190, 23, 251, 53, 247, 227, 2, 207, 11, 23, 251, 53, 201,
- 144, 2, 207, 11, 23, 247, 152, 223, 162, 23, 247, 152, 233, 202, 23, 216,
- 5, 242, 84, 214, 178, 23, 216, 5, 242, 84, 232, 123, 23, 216, 5, 242, 84,
- 239, 0, 23, 216, 5, 202, 231, 23, 216, 5, 202, 232, 193, 251, 23, 216, 5,
- 202, 232, 211, 183, 23, 216, 5, 232, 84, 23, 216, 5, 232, 85, 193, 251,
- 23, 216, 5, 232, 85, 211, 183, 23, 216, 5, 211, 184, 242, 130, 23, 216,
- 5, 211, 184, 232, 123, 23, 216, 5, 211, 184, 193, 251, 23, 216, 5, 211,
- 184, 211, 118, 23, 216, 5, 211, 184, 211, 119, 193, 251, 23, 216, 5, 211,
- 184, 211, 119, 193, 77, 23, 216, 5, 211, 184, 207, 242, 23, 216, 5, 211,
- 184, 207, 243, 193, 251, 23, 216, 5, 211, 184, 207, 243, 193, 77, 23,
- 216, 5, 221, 160, 23, 216, 5, 221, 161, 232, 123, 23, 216, 5, 221, 161,
- 193, 251, 23, 216, 5, 200, 23, 23, 216, 5, 200, 24, 232, 123, 23, 216, 5,
- 200, 24, 201, 143, 23, 219, 160, 209, 103, 199, 26, 23, 219, 162, 106,
- 136, 197, 38, 23, 219, 162, 113, 136, 219, 47, 23, 216, 5, 238, 222, 23,
- 216, 5, 193, 250, 203, 73, 23, 216, 5, 193, 250, 235, 106, 23, 199, 1,
- 201, 249, 211, 126, 233, 63, 23, 199, 1, 219, 205, 219, 159, 23, 199, 1,
- 199, 74, 248, 61, 219, 159, 23, 199, 1, 199, 74, 198, 231, 223, 146, 216,
- 4, 23, 199, 1, 223, 146, 216, 5, 207, 213, 23, 199, 1, 215, 251, 251, 78,
- 242, 240, 23, 199, 1, 246, 138, 201, 249, 211, 125, 23, 199, 1, 246, 138,
- 223, 146, 216, 4, 23, 200, 52, 23, 200, 53, 216, 0, 23, 200, 53, 211,
- 212, 199, 0, 23, 200, 53, 211, 212, 199, 1, 216, 0, 23, 200, 53, 211,
- 212, 219, 159, 23, 200, 53, 211, 212, 219, 160, 216, 0, 23, 200, 53, 247,
- 255, 219, 159, 23, 215, 252, 223, 45, 23, 215, 254, 223, 45, 23, 214,
- 205, 23, 230, 86, 23, 233, 205, 23, 203, 177, 229, 143, 202, 134, 23,
- 203, 177, 229, 143, 209, 158, 23, 194, 150, 203, 177, 229, 143, 216, 3,
- 23, 232, 181, 203, 177, 229, 143, 216, 3, 23, 203, 177, 199, 86, 232, 89,
- 194, 156, 23, 198, 238, 201, 230, 201, 217, 23, 198, 238, 238, 130, 248,
- 78, 23, 198, 239, 197, 223, 23, 113, 247, 214, 199, 86, 232, 89, 229,
- 143, 222, 227, 23, 219, 187, 242, 43, 23, 219, 187, 220, 1, 23, 219, 187,
- 220, 0, 23, 219, 187, 219, 255, 23, 219, 187, 219, 254, 23, 219, 187,
- 219, 253, 23, 219, 187, 219, 252, 23, 219, 187, 219, 251, 23, 232, 240,
- 23, 219, 101, 202, 160, 23, 219, 102, 202, 160, 23, 219, 104, 229, 218,
- 23, 219, 104, 194, 60, 23, 219, 104, 237, 63, 23, 219, 104, 229, 246,
- 214, 205, 23, 219, 104, 198, 240, 23, 219, 104, 219, 186, 236, 237, 23,
- 242, 38, 23, 232, 71, 201, 238, 23, 204, 180, 23, 242, 47, 23, 210, 230,
- 23, 232, 250, 216, 67, 23, 232, 250, 216, 66, 23, 232, 250, 216, 65, 23,
- 232, 250, 216, 64, 23, 232, 250, 216, 63, 23, 207, 15, 216, 67, 23, 207,
- 15, 216, 66, 23, 207, 15, 216, 65, 23, 207, 15, 216, 64, 23, 207, 15,
- 216, 63, 23, 207, 15, 216, 62, 23, 207, 15, 216, 61, 23, 207, 15, 216,
- 60, 23, 207, 15, 216, 74, 23, 207, 15, 216, 73, 23, 207, 15, 216, 72, 23,
- 207, 15, 216, 71, 23, 207, 15, 216, 70, 23, 207, 15, 216, 69, 23, 207,
- 15, 216, 68, 38, 131, 1, 249, 227, 38, 131, 1, 247, 110, 38, 131, 1, 196,
- 121, 38, 131, 1, 231, 13, 38, 131, 1, 236, 141, 38, 131, 1, 193, 38, 38,
- 131, 1, 192, 55, 38, 131, 1, 192, 81, 38, 131, 1, 223, 69, 38, 131, 1,
- 88, 223, 69, 38, 131, 1, 70, 38, 131, 1, 236, 162, 38, 131, 1, 222, 127,
- 38, 131, 1, 219, 139, 38, 131, 1, 215, 155, 38, 131, 1, 215, 46, 38, 131,
- 1, 211, 196, 38, 131, 1, 209, 185, 38, 131, 1, 207, 72, 38, 131, 1, 202,
- 241, 38, 131, 1, 197, 251, 38, 131, 1, 197, 88, 38, 131, 1, 232, 92, 38,
- 131, 1, 229, 198, 38, 131, 1, 203, 167, 38, 131, 1, 198, 97, 38, 131, 1,
- 242, 174, 38, 131, 1, 204, 64, 38, 131, 1, 193, 47, 38, 131, 1, 193, 49,
- 38, 131, 1, 193, 82, 38, 131, 1, 192, 214, 38, 131, 1, 2, 192, 179, 38,
- 131, 1, 193, 1, 38, 131, 1, 223, 110, 2, 192, 179, 38, 131, 1, 248, 28,
- 192, 179, 38, 131, 1, 223, 110, 248, 28, 192, 179, 38, 131, 1, 232, 216,
- 212, 180, 209, 48, 89, 1, 172, 212, 180, 209, 48, 89, 1, 198, 118, 212,
- 180, 209, 48, 89, 1, 213, 43, 212, 180, 209, 48, 89, 1, 189, 212, 180,
- 209, 48, 89, 1, 144, 212, 180, 209, 48, 89, 1, 181, 212, 180, 209, 48,
- 89, 1, 193, 209, 212, 180, 209, 48, 89, 1, 213, 210, 212, 180, 209, 48,
- 89, 1, 247, 19, 212, 180, 209, 48, 89, 1, 177, 212, 180, 209, 48, 89, 1,
- 188, 212, 180, 209, 48, 89, 1, 192, 112, 212, 180, 209, 48, 89, 1, 215,
- 3, 212, 180, 209, 48, 89, 1, 213, 30, 212, 180, 209, 48, 89, 1, 160, 212,
- 180, 209, 48, 89, 1, 238, 0, 212, 180, 209, 48, 89, 1, 212, 201, 212,
- 180, 209, 48, 89, 1, 213, 88, 212, 180, 209, 48, 89, 1, 196, 157, 212,
- 180, 209, 48, 89, 1, 213, 24, 212, 180, 209, 48, 89, 1, 197, 215, 212,
- 180, 209, 48, 89, 1, 233, 97, 212, 180, 209, 48, 89, 1, 167, 212, 180,
- 209, 48, 89, 1, 208, 239, 212, 180, 209, 48, 89, 1, 168, 212, 180, 209,
- 48, 89, 1, 213, 90, 212, 180, 209, 48, 89, 1, 166, 212, 180, 209, 48, 89,
- 1, 193, 164, 212, 180, 209, 48, 89, 1, 213, 92, 212, 180, 209, 48, 89, 1,
- 236, 158, 212, 180, 209, 48, 89, 1, 213, 91, 212, 180, 209, 48, 89, 1,
- 230, 89, 212, 180, 209, 48, 89, 1, 216, 98, 212, 180, 209, 48, 89, 1,
- 209, 234, 212, 180, 209, 48, 89, 1, 231, 233, 212, 180, 209, 48, 89, 1,
- 207, 3, 212, 180, 209, 48, 89, 1, 64, 212, 180, 209, 48, 89, 1, 252, 33,
- 212, 180, 209, 48, 89, 1, 70, 212, 180, 209, 48, 89, 1, 68, 212, 180,
- 209, 48, 89, 1, 74, 212, 180, 209, 48, 89, 1, 211, 194, 212, 180, 209,
- 48, 89, 1, 71, 212, 180, 209, 48, 89, 1, 234, 171, 212, 180, 209, 48, 89,
- 1, 194, 202, 212, 180, 209, 48, 89, 199, 9, 212, 180, 209, 48, 89, 199,
- 5, 212, 180, 209, 48, 89, 199, 6, 212, 180, 209, 48, 89, 199, 3, 212,
- 180, 209, 48, 89, 199, 4, 212, 180, 209, 48, 89, 199, 7, 212, 180, 209,
- 48, 89, 199, 8, 212, 180, 209, 48, 89, 3, 39, 210, 116, 212, 180, 209,
- 48, 89, 3, 39, 199, 194, 212, 180, 209, 48, 89, 3, 39, 219, 103, 212,
- 180, 209, 48, 89, 3, 39, 250, 198, 212, 180, 209, 48, 89, 3, 39, 223,
- 122, 212, 180, 209, 48, 89, 3, 193, 172, 193, 171, 212, 180, 209, 48, 89,
- 5, 219, 250, 212, 180, 209, 48, 89, 17, 192, 76, 212, 180, 209, 48, 89,
- 17, 101, 212, 180, 209, 48, 89, 17, 104, 212, 180, 209, 48, 89, 17, 133,
- 212, 180, 209, 48, 89, 17, 134, 212, 180, 209, 48, 89, 17, 151, 212, 180,
- 209, 48, 89, 17, 170, 212, 180, 209, 48, 89, 17, 179, 212, 180, 209, 48,
- 89, 17, 174, 212, 180, 209, 48, 89, 17, 182, 212, 180, 209, 48, 89, 219,
- 92, 212, 196, 212, 180, 209, 48, 89, 47, 247, 19, 194, 148, 1, 252, 33,
- 194, 148, 1, 64, 194, 148, 1, 249, 3, 194, 148, 1, 247, 19, 194, 148, 1,
- 238, 0, 194, 148, 1, 231, 233, 194, 148, 1, 168, 194, 148, 1, 210, 94,
- 194, 148, 1, 177, 194, 148, 1, 181, 194, 148, 1, 166, 194, 148, 1, 189,
- 194, 148, 1, 199, 240, 194, 148, 1, 233, 97, 194, 148, 1, 188, 194, 148,
- 1, 204, 64, 194, 148, 1, 223, 62, 194, 148, 1, 192, 112, 194, 148, 1,
- 194, 169, 194, 148, 1, 196, 157, 194, 148, 1, 160, 194, 148, 1, 74, 194,
- 148, 1, 250, 8, 194, 148, 1, 167, 194, 148, 1, 172, 194, 148, 1, 221,
- 250, 194, 148, 1, 144, 194, 148, 1, 71, 194, 148, 1, 70, 194, 148, 1,
- 214, 165, 194, 148, 1, 68, 194, 148, 1, 219, 130, 194, 148, 1, 198, 118,
- 194, 148, 1, 198, 223, 194, 148, 1, 211, 201, 194, 148, 1, 251, 248, 194,
- 148, 1, 250, 214, 194, 148, 1, 223, 164, 194, 148, 1, 211, 211, 194, 148,
- 1, 234, 88, 194, 148, 1, 251, 249, 194, 148, 1, 212, 201, 194, 148, 1,
- 197, 100, 194, 148, 1, 193, 13, 194, 148, 158, 198, 18, 194, 148, 158,
- 198, 17, 194, 148, 158, 221, 101, 194, 148, 158, 221, 100, 194, 148, 17,
- 192, 76, 194, 148, 17, 101, 194, 148, 17, 104, 194, 148, 17, 133, 194,
- 148, 17, 134, 194, 148, 17, 151, 194, 148, 17, 170, 194, 148, 17, 179,
- 194, 148, 17, 174, 194, 148, 17, 182, 194, 148, 214, 73, 57, 83, 82, 5,
- 218, 235, 221, 204, 83, 82, 5, 218, 231, 160, 83, 82, 5, 218, 229, 221,
- 33, 83, 82, 5, 218, 105, 222, 48, 83, 82, 5, 218, 75, 222, 57, 83, 82, 5,
- 218, 94, 221, 88, 83, 82, 5, 218, 122, 221, 113, 83, 82, 5, 217, 247,
- 221, 20, 83, 82, 5, 218, 226, 194, 72, 83, 82, 5, 218, 224, 194, 169, 83,
- 82, 5, 218, 222, 193, 244, 83, 82, 5, 218, 44, 194, 100, 83, 82, 5, 218,
- 52, 194, 111, 83, 82, 5, 218, 56, 194, 17, 83, 82, 5, 218, 125, 194, 36,
- 83, 82, 5, 217, 232, 193, 240, 83, 82, 5, 218, 27, 194, 98, 83, 82, 5,
- 218, 109, 193, 228, 83, 82, 5, 218, 121, 193, 230, 83, 82, 5, 218, 31,
- 193, 229, 83, 82, 5, 218, 220, 216, 120, 83, 82, 5, 218, 218, 217, 160,
- 83, 82, 5, 218, 216, 215, 209, 83, 82, 5, 218, 111, 217, 5, 83, 82, 5,
- 218, 76, 216, 55, 83, 82, 5, 218, 16, 215, 234, 83, 82, 5, 217, 237, 215,
- 228, 83, 82, 5, 218, 214, 248, 41, 83, 82, 5, 218, 211, 249, 3, 83, 82,
- 5, 218, 209, 247, 124, 83, 82, 5, 218, 20, 248, 108, 83, 82, 5, 218, 73,
- 248, 123, 83, 82, 5, 218, 67, 247, 206, 83, 82, 5, 218, 32, 247, 220, 83,
- 82, 5, 218, 199, 70, 83, 82, 5, 218, 197, 64, 83, 82, 5, 218, 195, 68,
- 83, 82, 5, 218, 7, 234, 171, 83, 82, 5, 218, 70, 71, 83, 82, 5, 218, 5,
- 211, 194, 83, 82, 5, 218, 23, 74, 83, 82, 5, 218, 33, 234, 150, 83, 82,
- 5, 218, 39, 223, 190, 83, 82, 5, 218, 35, 223, 190, 83, 82, 5, 217, 231,
- 250, 224, 83, 82, 5, 217, 248, 234, 88, 83, 82, 5, 218, 184, 203, 125,
- 83, 82, 5, 218, 182, 188, 83, 82, 5, 218, 180, 201, 184, 83, 82, 5, 218,
- 8, 205, 205, 83, 82, 5, 218, 54, 205, 223, 83, 82, 5, 218, 34, 202, 183,
- 83, 82, 5, 218, 91, 202, 212, 83, 82, 5, 217, 230, 203, 118, 83, 82, 5,
- 218, 170, 219, 209, 83, 82, 5, 218, 168, 177, 83, 82, 5, 218, 166, 219,
- 36, 83, 82, 5, 218, 86, 220, 32, 83, 82, 5, 218, 97, 220, 42, 83, 82, 5,
- 218, 116, 219, 73, 83, 82, 5, 218, 17, 219, 107, 83, 82, 5, 218, 60, 184,
- 220, 42, 83, 82, 5, 218, 192, 237, 16, 83, 82, 5, 218, 189, 238, 0, 83,
- 82, 5, 218, 186, 235, 62, 83, 82, 5, 218, 81, 237, 101, 83, 82, 5, 217,
- 246, 236, 120, 83, 82, 5, 217, 245, 236, 146, 83, 82, 5, 218, 178, 199,
- 128, 83, 82, 5, 218, 175, 189, 83, 82, 5, 218, 173, 198, 45, 83, 82, 5,
- 218, 79, 200, 56, 83, 82, 5, 218, 115, 200, 79, 83, 82, 5, 218, 66, 198,
- 254, 83, 82, 5, 218, 101, 155, 83, 82, 5, 218, 164, 223, 20, 83, 82, 5,
- 218, 161, 223, 62, 83, 82, 5, 218, 159, 222, 214, 83, 82, 5, 218, 13,
- 223, 39, 83, 82, 5, 218, 57, 223, 41, 83, 82, 5, 218, 10, 222, 223, 83,
- 82, 5, 218, 107, 222, 233, 83, 82, 5, 217, 251, 184, 222, 233, 83, 82, 5,
- 218, 157, 193, 22, 83, 82, 5, 218, 154, 168, 83, 82, 5, 218, 152, 192,
- 214, 83, 82, 5, 218, 61, 193, 66, 83, 82, 5, 218, 90, 193, 69, 83, 82, 5,
- 218, 29, 192, 235, 83, 82, 5, 218, 49, 193, 1, 83, 82, 5, 218, 148, 233,
- 11, 83, 82, 5, 218, 146, 233, 97, 83, 82, 5, 218, 144, 232, 77, 83, 82,
- 5, 218, 92, 233, 40, 83, 82, 5, 218, 95, 233, 47, 83, 82, 5, 218, 37,
- 232, 152, 83, 82, 5, 218, 82, 232, 164, 83, 82, 5, 217, 229, 232, 76, 83,
- 82, 5, 218, 69, 233, 68, 83, 82, 5, 218, 142, 214, 20, 83, 82, 5, 218,
- 140, 215, 61, 83, 82, 5, 218, 138, 212, 230, 83, 82, 5, 218, 53, 214,
- 196, 83, 82, 5, 218, 1, 213, 130, 83, 82, 5, 217, 250, 229, 178, 83, 82,
- 5, 218, 133, 144, 83, 82, 5, 217, 240, 228, 181, 83, 82, 5, 218, 136,
- 229, 225, 83, 82, 5, 218, 74, 229, 255, 83, 82, 5, 218, 131, 229, 16, 83,
- 82, 5, 218, 30, 229, 43, 83, 82, 5, 218, 87, 229, 224, 83, 82, 5, 218,
- 42, 229, 9, 83, 82, 5, 218, 117, 229, 148, 83, 82, 5, 218, 40, 230, 65,
- 83, 82, 5, 218, 83, 228, 164, 83, 82, 5, 218, 118, 229, 208, 83, 82, 5,
- 217, 233, 229, 19, 83, 82, 5, 218, 124, 228, 177, 83, 82, 5, 218, 80,
- 214, 130, 83, 82, 5, 218, 129, 214, 144, 83, 82, 5, 218, 88, 214, 127,
- 83, 82, 5, 218, 55, 214, 138, 83, 82, 5, 218, 24, 214, 139, 83, 82, 5,
- 218, 14, 214, 128, 83, 82, 5, 218, 50, 214, 129, 83, 82, 5, 218, 11, 214,
- 143, 83, 82, 5, 218, 43, 214, 126, 83, 82, 5, 218, 84, 184, 214, 139, 83,
- 82, 5, 218, 64, 184, 214, 128, 83, 82, 5, 217, 243, 184, 214, 129, 83,
- 82, 5, 218, 15, 231, 46, 83, 82, 5, 218, 59, 231, 233, 83, 82, 5, 218, 2,
- 230, 186, 83, 82, 5, 217, 236, 231, 150, 83, 82, 5, 218, 4, 230, 172, 83,
- 82, 5, 218, 3, 230, 182, 83, 82, 5, 217, 242, 214, 149, 83, 82, 5, 218,
- 113, 214, 86, 83, 82, 5, 217, 249, 214, 75, 83, 82, 5, 218, 102, 210, 51,
- 83, 82, 5, 218, 71, 166, 83, 82, 5, 218, 120, 209, 51, 83, 82, 5, 218,
- 89, 210, 168, 83, 82, 5, 218, 119, 210, 181, 83, 82, 5, 218, 68, 209,
- 172, 83, 82, 5, 218, 104, 209, 198, 83, 82, 5, 218, 25, 217, 67, 83, 82,
- 5, 218, 108, 217, 82, 83, 82, 5, 218, 48, 217, 61, 83, 82, 5, 218, 123,
- 217, 74, 83, 82, 5, 217, 238, 217, 74, 83, 82, 5, 218, 98, 217, 75, 83,
- 82, 5, 217, 254, 217, 62, 83, 82, 5, 217, 252, 217, 63, 83, 82, 5, 217,
- 239, 217, 55, 83, 82, 5, 218, 9, 184, 217, 75, 83, 82, 5, 218, 65, 184,
- 217, 62, 83, 82, 5, 218, 28, 184, 217, 63, 83, 82, 5, 218, 38, 221, 61,
- 83, 82, 5, 218, 78, 221, 69, 83, 82, 5, 218, 96, 221, 57, 83, 82, 5, 218,
- 127, 221, 64, 83, 82, 5, 218, 62, 221, 65, 83, 82, 5, 218, 58, 221, 59,
- 83, 82, 5, 218, 12, 221, 60, 83, 82, 5, 218, 46, 231, 167, 83, 82, 5,
- 218, 114, 231, 175, 83, 82, 5, 218, 22, 231, 162, 83, 82, 5, 218, 77,
- 231, 171, 83, 82, 5, 218, 63, 231, 172, 83, 82, 5, 218, 99, 231, 163, 83,
- 82, 5, 218, 100, 231, 165, 83, 82, 5, 217, 255, 167, 83, 82, 5, 218, 47,
- 214, 240, 83, 82, 5, 218, 41, 214, 255, 83, 82, 5, 218, 45, 214, 222, 83,
- 82, 5, 217, 235, 214, 246, 83, 82, 5, 218, 51, 214, 247, 83, 82, 5, 218,
- 103, 214, 227, 83, 82, 5, 218, 106, 214, 231, 83, 82, 5, 218, 18, 214, 0,
- 83, 82, 5, 217, 234, 213, 226, 83, 82, 5, 218, 21, 213, 247, 83, 82, 5,
- 218, 36, 213, 230, 83, 82, 5, 217, 244, 196, 39, 83, 82, 5, 217, 241,
- 196, 157, 83, 82, 5, 218, 19, 194, 223, 83, 82, 5, 217, 253, 196, 118,
- 83, 82, 5, 218, 85, 196, 123, 83, 82, 5, 218, 26, 195, 236, 83, 82, 5,
- 218, 93, 195, 252, 83, 82, 5, 218, 6, 212, 174, 83, 82, 5, 218, 112, 212,
- 194, 83, 82, 5, 218, 0, 212, 156, 83, 82, 5, 218, 72, 212, 186, 83, 82,
- 5, 218, 110, 212, 163, 83, 82, 17, 101, 83, 82, 17, 104, 83, 82, 17, 133,
- 83, 82, 17, 134, 83, 82, 17, 151, 83, 82, 17, 170, 83, 82, 17, 179, 83,
- 82, 17, 174, 83, 82, 17, 182, 83, 82, 38, 31, 200, 54, 83, 82, 38, 31,
- 200, 25, 83, 82, 38, 31, 228, 160, 83, 82, 38, 31, 199, 163, 83, 82, 38,
- 31, 200, 31, 199, 163, 83, 82, 38, 31, 228, 163, 199, 163, 83, 82, 38,
- 31, 216, 123, 251, 116, 6, 1, 251, 14, 251, 116, 6, 1, 237, 253, 251,
- 116, 6, 1, 220, 182, 251, 116, 6, 1, 216, 136, 251, 116, 6, 1, 249, 3,
- 251, 116, 6, 1, 203, 68, 251, 116, 6, 1, 210, 181, 251, 116, 6, 1, 248,
- 49, 251, 116, 6, 1, 167, 251, 116, 6, 1, 71, 251, 116, 6, 1, 233, 97,
- 251, 116, 6, 1, 70, 251, 116, 6, 1, 74, 251, 116, 6, 1, 237, 40, 251,
- 116, 6, 1, 193, 23, 251, 116, 6, 1, 194, 119, 251, 116, 6, 1, 212, 230,
- 251, 116, 6, 1, 222, 139, 251, 116, 6, 1, 168, 251, 116, 6, 1, 68, 251,
- 116, 6, 1, 223, 11, 251, 116, 6, 1, 242, 215, 251, 116, 6, 1, 144, 251,
- 116, 6, 1, 208, 237, 251, 116, 6, 1, 231, 233, 251, 116, 6, 1, 212, 201,
- 251, 116, 6, 1, 198, 45, 251, 116, 6, 1, 214, 65, 251, 116, 6, 1, 196,
- 157, 251, 116, 6, 1, 221, 250, 251, 116, 6, 1, 231, 172, 251, 116, 6, 1,
- 192, 101, 251, 116, 6, 1, 221, 60, 251, 116, 6, 1, 204, 64, 251, 116, 2,
- 1, 251, 14, 251, 116, 2, 1, 237, 253, 251, 116, 2, 1, 220, 182, 251, 116,
- 2, 1, 216, 136, 251, 116, 2, 1, 249, 3, 251, 116, 2, 1, 203, 68, 251,
- 116, 2, 1, 210, 181, 251, 116, 2, 1, 248, 49, 251, 116, 2, 1, 167, 251,
- 116, 2, 1, 71, 251, 116, 2, 1, 233, 97, 251, 116, 2, 1, 70, 251, 116, 2,
- 1, 74, 251, 116, 2, 1, 237, 40, 251, 116, 2, 1, 193, 23, 251, 116, 2, 1,
- 194, 119, 251, 116, 2, 1, 212, 230, 251, 116, 2, 1, 222, 139, 251, 116,
- 2, 1, 168, 251, 116, 2, 1, 68, 251, 116, 2, 1, 223, 11, 251, 116, 2, 1,
- 242, 215, 251, 116, 2, 1, 144, 251, 116, 2, 1, 208, 237, 251, 116, 2, 1,
- 231, 233, 251, 116, 2, 1, 212, 201, 251, 116, 2, 1, 198, 45, 251, 116, 2,
- 1, 214, 65, 251, 116, 2, 1, 196, 157, 251, 116, 2, 1, 221, 250, 251, 116,
- 2, 1, 231, 172, 251, 116, 2, 1, 192, 101, 251, 116, 2, 1, 221, 60, 251,
- 116, 2, 1, 204, 64, 251, 116, 251, 15, 219, 250, 251, 116, 18, 219, 250,
- 251, 116, 231, 146, 77, 251, 116, 230, 66, 251, 116, 116, 216, 75, 251,
- 116, 231, 147, 116, 216, 75, 251, 116, 212, 241, 251, 116, 215, 48, 77,
- 251, 116, 17, 192, 76, 251, 116, 17, 101, 251, 116, 17, 104, 251, 116,
- 17, 133, 251, 116, 17, 134, 251, 116, 17, 151, 251, 116, 17, 170, 251,
- 116, 17, 179, 251, 116, 17, 174, 251, 116, 17, 182, 251, 116, 88, 233,
- 204, 77, 251, 116, 88, 208, 159, 77, 223, 174, 137, 31, 101, 223, 174,
- 137, 31, 104, 223, 174, 137, 31, 133, 223, 174, 137, 31, 134, 223, 174,
- 137, 31, 151, 223, 174, 137, 31, 170, 223, 174, 137, 31, 179, 223, 174,
- 137, 31, 174, 223, 174, 137, 31, 182, 223, 174, 137, 31, 200, 30, 223,
- 174, 137, 31, 197, 239, 223, 174, 137, 31, 199, 184, 223, 174, 137, 31,
- 232, 126, 223, 174, 137, 31, 233, 3, 223, 174, 137, 31, 203, 25, 223,
- 174, 137, 31, 204, 140, 223, 174, 137, 31, 234, 137, 223, 174, 137, 31,
- 214, 11, 223, 174, 137, 31, 90, 228, 162, 223, 174, 137, 31, 103, 228,
- 162, 223, 174, 137, 31, 112, 228, 162, 223, 174, 137, 31, 232, 119, 228,
- 162, 223, 174, 137, 31, 232, 214, 228, 162, 223, 174, 137, 31, 203, 41,
- 228, 162, 223, 174, 137, 31, 204, 146, 228, 162, 223, 174, 137, 31, 234,
- 148, 228, 162, 223, 174, 137, 31, 214, 16, 228, 162, 223, 174, 137, 31,
- 90, 180, 223, 174, 137, 31, 103, 180, 223, 174, 137, 31, 112, 180, 223,
- 174, 137, 31, 232, 119, 180, 223, 174, 137, 31, 232, 214, 180, 223, 174,
- 137, 31, 203, 41, 180, 223, 174, 137, 31, 204, 146, 180, 223, 174, 137,
- 31, 234, 148, 180, 223, 174, 137, 31, 214, 16, 180, 223, 174, 137, 31,
- 200, 31, 180, 223, 174, 137, 31, 197, 240, 180, 223, 174, 137, 31, 199,
- 185, 180, 223, 174, 137, 31, 232, 127, 180, 223, 174, 137, 31, 233, 4,
- 180, 223, 174, 137, 31, 203, 26, 180, 223, 174, 137, 31, 204, 141, 180,
- 223, 174, 137, 31, 234, 138, 180, 223, 174, 137, 31, 214, 12, 180, 223,
- 174, 137, 31, 220, 100, 223, 174, 137, 31, 220, 99, 223, 174, 137, 220,
- 101, 77, 223, 174, 137, 31, 222, 94, 223, 174, 137, 31, 222, 93, 223,
- 174, 137, 31, 209, 111, 101, 223, 174, 137, 31, 209, 111, 104, 223, 174,
- 137, 31, 209, 111, 133, 223, 174, 137, 31, 209, 111, 134, 223, 174, 137,
- 31, 209, 111, 151, 223, 174, 137, 31, 209, 111, 170, 223, 174, 137, 31,
- 209, 111, 179, 223, 174, 137, 31, 209, 111, 174, 223, 174, 137, 31, 209,
- 111, 182, 223, 174, 137, 209, 230, 223, 174, 137, 232, 109, 90, 208, 167,
- 223, 174, 137, 232, 109, 90, 230, 78, 223, 174, 137, 232, 109, 112, 208,
- 165, 223, 174, 137, 206, 186, 77, 223, 174, 137, 31, 250, 249, 101, 223,
- 174, 137, 31, 250, 249, 104, 223, 174, 137, 31, 250, 249, 200, 31, 180,
- 223, 174, 137, 250, 249, 220, 101, 77, 211, 132, 137, 31, 101, 211, 132,
- 137, 31, 104, 211, 132, 137, 31, 133, 211, 132, 137, 31, 134, 211, 132,
- 137, 31, 151, 211, 132, 137, 31, 170, 211, 132, 137, 31, 179, 211, 132,
- 137, 31, 174, 211, 132, 137, 31, 182, 211, 132, 137, 31, 200, 30, 211,
- 132, 137, 31, 197, 239, 211, 132, 137, 31, 199, 184, 211, 132, 137, 31,
- 232, 126, 211, 132, 137, 31, 233, 3, 211, 132, 137, 31, 203, 25, 211,
- 132, 137, 31, 204, 140, 211, 132, 137, 31, 234, 137, 211, 132, 137, 31,
- 214, 11, 211, 132, 137, 31, 90, 228, 162, 211, 132, 137, 31, 103, 228,
- 162, 211, 132, 137, 31, 112, 228, 162, 211, 132, 137, 31, 232, 119, 228,
- 162, 211, 132, 137, 31, 232, 214, 228, 162, 211, 132, 137, 31, 203, 41,
- 228, 162, 211, 132, 137, 31, 204, 146, 228, 162, 211, 132, 137, 31, 234,
- 148, 228, 162, 211, 132, 137, 31, 214, 16, 228, 162, 211, 132, 137, 31,
- 90, 180, 211, 132, 137, 31, 103, 180, 211, 132, 137, 31, 112, 180, 211,
- 132, 137, 31, 232, 119, 180, 211, 132, 137, 31, 232, 214, 180, 211, 132,
- 137, 31, 203, 41, 180, 211, 132, 137, 31, 204, 146, 180, 211, 132, 137,
- 31, 234, 148, 180, 211, 132, 137, 31, 214, 16, 180, 211, 132, 137, 31,
- 200, 31, 180, 211, 132, 137, 31, 197, 240, 180, 211, 132, 137, 31, 199,
- 185, 180, 211, 132, 137, 31, 232, 127, 180, 211, 132, 137, 31, 233, 4,
- 180, 211, 132, 137, 31, 203, 26, 180, 211, 132, 137, 31, 204, 141, 180,
- 211, 132, 137, 31, 234, 138, 180, 211, 132, 137, 31, 214, 12, 180, 211,
- 132, 137, 217, 120, 211, 132, 137, 250, 249, 31, 104, 211, 132, 137, 250,
- 249, 31, 133, 211, 132, 137, 250, 249, 31, 134, 211, 132, 137, 250, 249,
- 31, 151, 211, 132, 137, 250, 249, 31, 170, 211, 132, 137, 250, 249, 31,
- 179, 211, 132, 137, 250, 249, 31, 174, 211, 132, 137, 250, 249, 31, 182,
- 211, 132, 137, 250, 249, 31, 200, 30, 211, 132, 137, 250, 249, 31, 232,
- 119, 228, 162, 211, 132, 137, 250, 249, 31, 203, 41, 228, 162, 211, 132,
- 137, 250, 249, 31, 103, 180, 211, 132, 137, 250, 249, 31, 200, 31, 180,
- 211, 132, 137, 232, 109, 90, 230, 78, 211, 132, 137, 232, 109, 90, 203,
- 29, 9, 13, 251, 26, 9, 13, 248, 96, 9, 13, 223, 37, 9, 13, 237, 227, 9,
- 13, 194, 119, 9, 13, 192, 103, 9, 13, 230, 89, 9, 13, 200, 151, 9, 13,
- 193, 64, 9, 13, 222, 139, 9, 13, 220, 94, 9, 13, 217, 26, 9, 13, 213,
- 123, 9, 13, 205, 201, 9, 13, 251, 57, 9, 13, 233, 34, 9, 13, 206, 86, 9,
- 13, 208, 232, 9, 13, 207, 221, 9, 13, 204, 8, 9, 13, 200, 49, 9, 13, 199,
- 220, 9, 13, 221, 245, 9, 13, 199, 232, 9, 13, 237, 250, 9, 13, 192, 106,
- 9, 13, 231, 79, 9, 13, 236, 113, 248, 96, 9, 13, 236, 113, 213, 123, 9,
- 13, 236, 113, 233, 34, 9, 13, 236, 113, 208, 232, 9, 13, 88, 248, 96, 9,
- 13, 88, 223, 37, 9, 13, 88, 229, 220, 9, 13, 88, 230, 89, 9, 13, 88, 193,
- 64, 9, 13, 88, 222, 139, 9, 13, 88, 220, 94, 9, 13, 88, 217, 26, 9, 13,
- 88, 213, 123, 9, 13, 88, 205, 201, 9, 13, 88, 251, 57, 9, 13, 88, 233,
- 34, 9, 13, 88, 206, 86, 9, 13, 88, 208, 232, 9, 13, 88, 204, 8, 9, 13,
- 88, 200, 49, 9, 13, 88, 199, 220, 9, 13, 88, 221, 245, 9, 13, 88, 237,
- 250, 9, 13, 88, 231, 79, 9, 13, 200, 146, 223, 37, 9, 13, 200, 146, 230,
- 89, 9, 13, 200, 146, 193, 64, 9, 13, 200, 146, 220, 94, 9, 13, 200, 146,
- 213, 123, 9, 13, 200, 146, 205, 201, 9, 13, 200, 146, 251, 57, 9, 13,
- 200, 146, 206, 86, 9, 13, 200, 146, 208, 232, 9, 13, 200, 146, 204, 8, 9,
- 13, 200, 146, 221, 245, 9, 13, 200, 146, 237, 250, 9, 13, 200, 146, 231,
- 79, 9, 13, 200, 146, 236, 113, 213, 123, 9, 13, 200, 146, 236, 113, 208,
- 232, 9, 13, 201, 216, 248, 96, 9, 13, 201, 216, 223, 37, 9, 13, 201, 216,
- 229, 220, 9, 13, 201, 216, 230, 89, 9, 13, 201, 216, 200, 151, 9, 13,
- 201, 216, 193, 64, 9, 13, 201, 216, 222, 139, 9, 13, 201, 216, 217, 26,
- 9, 13, 201, 216, 213, 123, 9, 13, 201, 216, 205, 201, 9, 13, 201, 216,
- 251, 57, 9, 13, 201, 216, 233, 34, 9, 13, 201, 216, 206, 86, 9, 13, 201,
- 216, 208, 232, 9, 13, 201, 216, 204, 8, 9, 13, 201, 216, 200, 49, 9, 13,
- 201, 216, 199, 220, 9, 13, 201, 216, 221, 245, 9, 13, 201, 216, 237, 250,
- 9, 13, 201, 216, 192, 106, 9, 13, 201, 216, 231, 79, 9, 13, 201, 216,
- 236, 113, 248, 96, 9, 13, 201, 216, 236, 113, 233, 34, 9, 13, 219, 68,
- 251, 26, 9, 13, 219, 68, 248, 96, 9, 13, 219, 68, 223, 37, 9, 13, 219,
- 68, 237, 227, 9, 13, 219, 68, 229, 220, 9, 13, 219, 68, 194, 119, 9, 13,
- 219, 68, 192, 103, 9, 13, 219, 68, 230, 89, 9, 13, 219, 68, 200, 151, 9,
- 13, 219, 68, 193, 64, 9, 13, 219, 68, 220, 94, 9, 13, 219, 68, 217, 26,
- 9, 13, 219, 68, 213, 123, 9, 13, 219, 68, 205, 201, 9, 13, 219, 68, 251,
- 57, 9, 13, 219, 68, 233, 34, 9, 13, 219, 68, 206, 86, 9, 13, 219, 68,
- 208, 232, 9, 13, 219, 68, 207, 221, 9, 13, 219, 68, 204, 8, 9, 13, 219,
- 68, 200, 49, 9, 13, 219, 68, 199, 220, 9, 13, 219, 68, 221, 245, 9, 13,
- 219, 68, 199, 232, 9, 13, 219, 68, 237, 250, 9, 13, 219, 68, 192, 106, 9,
- 13, 219, 68, 231, 79, 9, 13, 235, 102, 248, 96, 9, 13, 235, 102, 223, 37,
- 9, 13, 235, 102, 237, 227, 9, 13, 235, 102, 194, 119, 9, 13, 235, 102,
- 192, 103, 9, 13, 235, 102, 230, 89, 9, 13, 235, 102, 200, 151, 9, 13,
- 235, 102, 193, 64, 9, 13, 235, 102, 220, 94, 9, 13, 235, 102, 217, 26, 9,
- 13, 235, 102, 213, 123, 9, 13, 235, 102, 205, 201, 9, 13, 235, 102, 251,
- 57, 9, 13, 235, 102, 233, 34, 9, 13, 235, 102, 206, 86, 9, 13, 235, 102,
- 208, 232, 9, 13, 235, 102, 207, 221, 9, 13, 235, 102, 204, 8, 9, 13, 235,
- 102, 200, 49, 9, 13, 235, 102, 199, 220, 9, 13, 235, 102, 221, 245, 9,
- 13, 235, 102, 199, 232, 9, 13, 235, 102, 237, 250, 9, 13, 235, 102, 192,
- 106, 9, 13, 235, 102, 231, 79, 9, 13, 211, 174, 91, 4, 176, 4, 200, 102,
- 9, 13, 211, 174, 176, 4, 237, 227, 217, 182, 120, 234, 186, 194, 52, 217,
- 182, 120, 202, 171, 194, 52, 217, 182, 120, 194, 91, 194, 52, 217, 182,
- 120, 178, 194, 52, 217, 182, 120, 207, 237, 235, 84, 217, 182, 120, 230,
- 201, 235, 84, 217, 182, 120, 62, 235, 84, 217, 182, 120, 90, 80, 243, 0,
- 217, 182, 120, 103, 80, 243, 0, 217, 182, 120, 112, 80, 243, 0, 217, 182,
- 120, 232, 119, 80, 243, 0, 217, 182, 120, 232, 214, 80, 243, 0, 217, 182,
- 120, 203, 41, 80, 243, 0, 217, 182, 120, 204, 146, 80, 243, 0, 217, 182,
- 120, 234, 148, 80, 243, 0, 217, 182, 120, 214, 16, 80, 243, 0, 217, 182,
- 120, 90, 80, 248, 208, 217, 182, 120, 103, 80, 248, 208, 217, 182, 120,
- 112, 80, 248, 208, 217, 182, 120, 232, 119, 80, 248, 208, 217, 182, 120,
- 232, 214, 80, 248, 208, 217, 182, 120, 203, 41, 80, 248, 208, 217, 182,
- 120, 204, 146, 80, 248, 208, 217, 182, 120, 234, 148, 80, 248, 208, 217,
- 182, 120, 214, 16, 80, 248, 208, 217, 182, 120, 90, 80, 242, 127, 217,
- 182, 120, 103, 80, 242, 127, 217, 182, 120, 112, 80, 242, 127, 217, 182,
- 120, 232, 119, 80, 242, 127, 217, 182, 120, 232, 214, 80, 242, 127, 217,
- 182, 120, 203, 41, 80, 242, 127, 217, 182, 120, 204, 146, 80, 242, 127,
- 217, 182, 120, 234, 148, 80, 242, 127, 217, 182, 120, 214, 16, 80, 242,
- 127, 217, 182, 120, 209, 210, 217, 182, 120, 211, 160, 217, 182, 120,
- 248, 209, 217, 182, 120, 242, 169, 217, 182, 120, 202, 112, 217, 182,
- 120, 201, 125, 217, 182, 120, 249, 250, 217, 182, 120, 194, 43, 217, 182,
- 120, 222, 226, 217, 182, 120, 248, 252, 191, 191, 120, 229, 5, 248, 252,
- 191, 191, 120, 229, 3, 191, 191, 120, 229, 2, 191, 191, 120, 229, 1, 191,
- 191, 120, 229, 0, 191, 191, 120, 228, 255, 191, 191, 120, 228, 254, 191,
- 191, 120, 228, 253, 191, 191, 120, 228, 252, 191, 191, 120, 228, 251,
- 191, 191, 120, 228, 250, 191, 191, 120, 228, 249, 191, 191, 120, 228,
- 248, 191, 191, 120, 228, 247, 191, 191, 120, 228, 246, 191, 191, 120,
- 228, 245, 191, 191, 120, 228, 244, 191, 191, 120, 228, 243, 191, 191,
- 120, 228, 242, 191, 191, 120, 228, 241, 191, 191, 120, 228, 240, 191,
- 191, 120, 228, 239, 191, 191, 120, 228, 238, 191, 191, 120, 228, 237,
- 191, 191, 120, 228, 236, 191, 191, 120, 228, 235, 191, 191, 120, 228,
- 234, 191, 191, 120, 228, 233, 191, 191, 120, 228, 232, 191, 191, 120,
- 228, 231, 191, 191, 120, 228, 230, 191, 191, 120, 228, 229, 191, 191,
- 120, 228, 228, 191, 191, 120, 228, 227, 191, 191, 120, 228, 226, 191,
- 191, 120, 228, 225, 191, 191, 120, 228, 224, 191, 191, 120, 228, 223,
- 191, 191, 120, 228, 222, 191, 191, 120, 228, 221, 191, 191, 120, 228,
- 220, 191, 191, 120, 228, 219, 191, 191, 120, 228, 218, 191, 191, 120,
- 228, 217, 191, 191, 120, 228, 216, 191, 191, 120, 228, 215, 191, 191,
- 120, 228, 214, 191, 191, 120, 228, 213, 191, 191, 120, 228, 212, 191,
- 191, 120, 228, 211, 191, 191, 120, 84, 248, 252, 191, 191, 120, 196, 104,
- 191, 191, 120, 196, 103, 191, 191, 120, 196, 102, 191, 191, 120, 196,
- 101, 191, 191, 120, 196, 100, 191, 191, 120, 196, 99, 191, 191, 120, 196,
- 98, 191, 191, 120, 196, 97, 191, 191, 120, 196, 96, 191, 191, 120, 196,
- 95, 191, 191, 120, 196, 94, 191, 191, 120, 196, 93, 191, 191, 120, 196,
- 92, 191, 191, 120, 196, 91, 191, 191, 120, 196, 90, 191, 191, 120, 196,
- 89, 191, 191, 120, 196, 88, 191, 191, 120, 196, 87, 191, 191, 120, 196,
- 86, 191, 191, 120, 196, 85, 191, 191, 120, 196, 84, 191, 191, 120, 196,
- 83, 191, 191, 120, 196, 82, 191, 191, 120, 196, 81, 191, 191, 120, 196,
- 80, 191, 191, 120, 196, 79, 191, 191, 120, 196, 78, 191, 191, 120, 196,
- 77, 191, 191, 120, 196, 76, 191, 191, 120, 196, 75, 191, 191, 120, 196,
- 74, 191, 191, 120, 196, 73, 191, 191, 120, 196, 72, 191, 191, 120, 196,
- 71, 191, 191, 120, 196, 70, 191, 191, 120, 196, 69, 191, 191, 120, 196,
- 68, 191, 191, 120, 196, 67, 191, 191, 120, 196, 66, 191, 191, 120, 196,
- 65, 191, 191, 120, 196, 64, 191, 191, 120, 196, 63, 191, 191, 120, 196,
- 62, 191, 191, 120, 196, 61, 191, 191, 120, 196, 60, 191, 191, 120, 196,
- 59, 191, 191, 120, 196, 58, 191, 191, 120, 196, 57, 191, 191, 120, 196,
- 56, 209, 220, 246, 216, 248, 252, 209, 220, 246, 216, 251, 136, 80, 202,
- 157, 209, 220, 246, 216, 103, 80, 202, 157, 209, 220, 246, 216, 112, 80,
- 202, 157, 209, 220, 246, 216, 232, 119, 80, 202, 157, 209, 220, 246, 216,
- 232, 214, 80, 202, 157, 209, 220, 246, 216, 203, 41, 80, 202, 157, 209,
- 220, 246, 216, 204, 146, 80, 202, 157, 209, 220, 246, 216, 234, 148, 80,
- 202, 157, 209, 220, 246, 216, 214, 16, 80, 202, 157, 209, 220, 246, 216,
- 200, 31, 80, 202, 157, 209, 220, 246, 216, 223, 60, 80, 202, 157, 209,
- 220, 246, 216, 221, 123, 80, 202, 157, 209, 220, 246, 216, 208, 161, 80,
- 202, 157, 209, 220, 246, 216, 221, 177, 80, 202, 157, 209, 220, 246, 216,
- 251, 136, 80, 229, 231, 209, 220, 246, 216, 103, 80, 229, 231, 209, 220,
- 246, 216, 112, 80, 229, 231, 209, 220, 246, 216, 232, 119, 80, 229, 231,
- 209, 220, 246, 216, 232, 214, 80, 229, 231, 209, 220, 246, 216, 203, 41,
- 80, 229, 231, 209, 220, 246, 216, 204, 146, 80, 229, 231, 209, 220, 246,
- 216, 234, 148, 80, 229, 231, 209, 220, 246, 216, 214, 16, 80, 229, 231,
- 209, 220, 246, 216, 200, 31, 80, 229, 231, 209, 220, 246, 216, 223, 60,
- 80, 229, 231, 209, 220, 246, 216, 221, 123, 80, 229, 231, 209, 220, 246,
- 216, 208, 161, 80, 229, 231, 209, 220, 246, 216, 221, 177, 80, 229, 231,
- 209, 220, 246, 216, 207, 237, 222, 226, 209, 220, 246, 216, 251, 136, 80,
- 237, 3, 209, 220, 246, 216, 103, 80, 237, 3, 209, 220, 246, 216, 112, 80,
- 237, 3, 209, 220, 246, 216, 232, 119, 80, 237, 3, 209, 220, 246, 216,
- 232, 214, 80, 237, 3, 209, 220, 246, 216, 203, 41, 80, 237, 3, 209, 220,
- 246, 216, 204, 146, 80, 237, 3, 209, 220, 246, 216, 234, 148, 80, 237, 3,
- 209, 220, 246, 216, 214, 16, 80, 237, 3, 209, 220, 246, 216, 200, 31, 80,
- 237, 3, 209, 220, 246, 216, 223, 60, 80, 237, 3, 209, 220, 246, 216, 221,
- 123, 80, 237, 3, 209, 220, 246, 216, 208, 161, 80, 237, 3, 209, 220, 246,
- 216, 221, 177, 80, 237, 3, 209, 220, 246, 216, 60, 222, 226, 209, 220,
- 246, 216, 251, 136, 80, 242, 69, 209, 220, 246, 216, 103, 80, 242, 69,
- 209, 220, 246, 216, 112, 80, 242, 69, 209, 220, 246, 216, 232, 119, 80,
- 242, 69, 209, 220, 246, 216, 232, 214, 80, 242, 69, 209, 220, 246, 216,
- 203, 41, 80, 242, 69, 209, 220, 246, 216, 204, 146, 80, 242, 69, 209,
- 220, 246, 216, 234, 148, 80, 242, 69, 209, 220, 246, 216, 214, 16, 80,
- 242, 69, 209, 220, 246, 216, 200, 31, 80, 242, 69, 209, 220, 246, 216,
- 223, 60, 80, 242, 69, 209, 220, 246, 216, 221, 123, 80, 242, 69, 209,
- 220, 246, 216, 208, 161, 80, 242, 69, 209, 220, 246, 216, 221, 177, 80,
- 242, 69, 209, 220, 246, 216, 62, 222, 226, 209, 220, 246, 216, 232, 150,
- 209, 220, 246, 216, 198, 146, 209, 220, 246, 216, 198, 135, 209, 220,
- 246, 216, 198, 132, 209, 220, 246, 216, 198, 131, 209, 220, 246, 216,
- 198, 130, 209, 220, 246, 216, 198, 129, 209, 220, 246, 216, 198, 128,
- 209, 220, 246, 216, 198, 127, 209, 220, 246, 216, 198, 126, 209, 220,
- 246, 216, 198, 145, 209, 220, 246, 216, 198, 144, 209, 220, 246, 216,
- 198, 143, 209, 220, 246, 216, 198, 142, 209, 220, 246, 216, 198, 141,
- 209, 220, 246, 216, 198, 140, 209, 220, 246, 216, 198, 139, 209, 220,
- 246, 216, 198, 138, 209, 220, 246, 216, 198, 137, 209, 220, 246, 216,
- 198, 136, 209, 220, 246, 216, 198, 134, 209, 220, 246, 216, 198, 133, 17,
- 192, 77, 232, 71, 201, 238, 17, 192, 77, 242, 38, 17, 90, 242, 38, 17,
- 103, 242, 38, 17, 112, 242, 38, 17, 232, 119, 242, 38, 17, 232, 214, 242,
- 38, 17, 203, 41, 242, 38, 17, 204, 146, 242, 38, 17, 234, 148, 242, 38,
- 17, 214, 16, 242, 38, 236, 213, 47, 49, 17, 192, 76, 236, 213, 214, 199,
- 47, 49, 17, 192, 76, 47, 192, 77, 4, 203, 4, 47, 250, 182, 54, 47, 236,
- 127, 3, 4, 211, 115, 248, 247, 125, 8, 6, 1, 64, 125, 8, 6, 1, 249, 226,
- 125, 8, 6, 1, 247, 52, 125, 8, 6, 1, 238, 95, 125, 8, 6, 1, 71, 125, 8,
- 6, 1, 233, 163, 125, 8, 6, 1, 232, 44, 125, 8, 6, 1, 230, 124, 125, 8, 6,
- 1, 70, 125, 8, 6, 1, 223, 65, 125, 8, 6, 1, 222, 184, 125, 8, 6, 1, 165,
- 125, 8, 6, 1, 218, 236, 125, 8, 6, 1, 215, 151, 125, 8, 6, 1, 74, 125, 8,
- 6, 1, 211, 93, 125, 8, 6, 1, 208, 247, 125, 8, 6, 1, 150, 125, 8, 6, 1,
- 206, 158, 125, 8, 6, 1, 200, 228, 125, 8, 6, 1, 68, 125, 8, 6, 1, 196,
- 236, 125, 8, 6, 1, 194, 202, 125, 8, 6, 1, 193, 223, 125, 8, 6, 1, 193,
- 148, 125, 8, 6, 1, 192, 155, 198, 237, 204, 2, 247, 164, 8, 6, 1, 206,
- 158, 47, 43, 8, 6, 1, 247, 52, 47, 43, 8, 6, 1, 150, 47, 246, 159, 47,
- 193, 225, 238, 228, 109, 108, 8, 6, 1, 64, 108, 8, 6, 1, 249, 226, 108,
- 8, 6, 1, 247, 52, 108, 8, 6, 1, 238, 95, 108, 8, 6, 1, 71, 108, 8, 6, 1,
- 233, 163, 108, 8, 6, 1, 232, 44, 108, 8, 6, 1, 230, 124, 108, 8, 6, 1,
- 70, 108, 8, 6, 1, 223, 65, 108, 8, 6, 1, 222, 184, 108, 8, 6, 1, 165,
- 108, 8, 6, 1, 218, 236, 108, 8, 6, 1, 215, 151, 108, 8, 6, 1, 74, 108, 8,
- 6, 1, 211, 93, 108, 8, 6, 1, 208, 247, 108, 8, 6, 1, 150, 108, 8, 6, 1,
- 206, 158, 108, 8, 6, 1, 200, 228, 108, 8, 6, 1, 68, 108, 8, 6, 1, 196,
- 236, 108, 8, 6, 1, 194, 202, 108, 8, 6, 1, 193, 223, 108, 8, 6, 1, 193,
- 148, 108, 8, 6, 1, 192, 155, 108, 228, 148, 108, 215, 175, 108, 205, 225,
- 108, 202, 95, 108, 209, 132, 108, 194, 112, 214, 199, 47, 8, 6, 1, 64,
- 214, 199, 47, 8, 6, 1, 249, 226, 214, 199, 47, 8, 6, 1, 247, 52, 214,
- 199, 47, 8, 6, 1, 238, 95, 214, 199, 47, 8, 6, 1, 71, 214, 199, 47, 8, 6,
- 1, 233, 163, 214, 199, 47, 8, 6, 1, 232, 44, 214, 199, 47, 8, 6, 1, 230,
- 124, 214, 199, 47, 8, 6, 1, 70, 214, 199, 47, 8, 6, 1, 223, 65, 214, 199,
- 47, 8, 6, 1, 222, 184, 214, 199, 47, 8, 6, 1, 165, 214, 199, 47, 8, 6, 1,
- 218, 236, 214, 199, 47, 8, 6, 1, 215, 151, 214, 199, 47, 8, 6, 1, 74,
- 214, 199, 47, 8, 6, 1, 211, 93, 214, 199, 47, 8, 6, 1, 208, 247, 214,
- 199, 47, 8, 6, 1, 150, 214, 199, 47, 8, 6, 1, 206, 158, 214, 199, 47, 8,
- 6, 1, 200, 228, 214, 199, 47, 8, 6, 1, 68, 214, 199, 47, 8, 6, 1, 196,
- 236, 214, 199, 47, 8, 6, 1, 194, 202, 214, 199, 47, 8, 6, 1, 193, 223,
- 214, 199, 47, 8, 6, 1, 193, 148, 214, 199, 47, 8, 6, 1, 192, 155, 208,
- 39, 217, 54, 57, 208, 39, 217, 51, 57, 208, 39, 215, 246, 57, 47, 246,
- 182, 47, 247, 53, 4, 211, 115, 248, 247, 47, 228, 167, 233, 0, 214, 199,
- 108, 8, 6, 1, 64, 214, 199, 108, 8, 6, 1, 249, 226, 214, 199, 108, 8, 6,
- 1, 247, 52, 214, 199, 108, 8, 6, 1, 238, 95, 214, 199, 108, 8, 6, 1, 71,
- 214, 199, 108, 8, 6, 1, 233, 163, 214, 199, 108, 8, 6, 1, 232, 44, 214,
- 199, 108, 8, 6, 1, 230, 124, 214, 199, 108, 8, 6, 1, 70, 214, 199, 108,
- 8, 6, 1, 223, 65, 214, 199, 108, 8, 6, 1, 222, 184, 214, 199, 108, 8, 6,
- 1, 165, 214, 199, 108, 8, 6, 1, 218, 236, 214, 199, 108, 8, 6, 1, 215,
- 151, 214, 199, 108, 8, 6, 1, 74, 214, 199, 108, 8, 6, 1, 211, 93, 214,
- 199, 108, 8, 6, 1, 208, 247, 214, 199, 108, 8, 6, 1, 150, 214, 199, 108,
- 8, 6, 1, 206, 158, 214, 199, 108, 8, 6, 1, 200, 228, 214, 199, 108, 8, 6,
- 1, 68, 214, 199, 108, 8, 6, 1, 196, 236, 214, 199, 108, 8, 6, 1, 194,
- 202, 214, 199, 108, 8, 6, 1, 193, 223, 214, 199, 108, 8, 6, 1, 193, 148,
- 214, 199, 108, 8, 6, 1, 192, 155, 238, 180, 214, 199, 108, 8, 6, 1, 211,
- 93, 214, 199, 108, 228, 51, 214, 199, 108, 166, 214, 199, 108, 188, 214,
- 199, 108, 251, 238, 214, 199, 108, 194, 112, 50, 236, 166, 108, 242, 111,
- 108, 238, 235, 108, 232, 99, 108, 228, 42, 108, 214, 176, 108, 214, 167,
- 108, 211, 231, 108, 202, 178, 108, 130, 4, 233, 204, 77, 108, 195, 226,
- 108, 112, 238, 95, 108, 205, 212, 205, 231, 108, 103, 222, 184, 108, 232,
- 119, 222, 184, 108, 234, 148, 222, 184, 108, 232, 214, 209, 192, 101,
- 108, 204, 146, 209, 192, 101, 108, 197, 228, 209, 192, 104, 108, 203, 26,
- 211, 93, 108, 90, 228, 163, 197, 240, 211, 93, 108, 8, 2, 1, 238, 95,
- 108, 230, 2, 108, 230, 1, 108, 229, 170, 108, 219, 61, 108, 203, 144,
- 108, 197, 96, 108, 195, 249, 217, 107, 194, 9, 109, 207, 229, 223, 173,
- 16, 1, 64, 207, 229, 223, 173, 16, 1, 249, 226, 207, 229, 223, 173, 16,
- 1, 247, 52, 207, 229, 223, 173, 16, 1, 238, 95, 207, 229, 223, 173, 16,
- 1, 71, 207, 229, 223, 173, 16, 1, 233, 163, 207, 229, 223, 173, 16, 1,
- 232, 44, 207, 229, 223, 173, 16, 1, 230, 124, 207, 229, 223, 173, 16, 1,
- 70, 207, 229, 223, 173, 16, 1, 223, 65, 207, 229, 223, 173, 16, 1, 222,
- 184, 207, 229, 223, 173, 16, 1, 165, 207, 229, 223, 173, 16, 1, 218, 236,
- 207, 229, 223, 173, 16, 1, 215, 151, 207, 229, 223, 173, 16, 1, 74, 207,
- 229, 223, 173, 16, 1, 211, 93, 207, 229, 223, 173, 16, 1, 208, 247, 207,
- 229, 223, 173, 16, 1, 150, 207, 229, 223, 173, 16, 1, 206, 158, 207, 229,
- 223, 173, 16, 1, 200, 228, 207, 229, 223, 173, 16, 1, 68, 207, 229, 223,
- 173, 16, 1, 196, 236, 207, 229, 223, 173, 16, 1, 194, 202, 207, 229, 223,
- 173, 16, 1, 193, 223, 207, 229, 223, 173, 16, 1, 193, 148, 207, 229, 223,
- 173, 16, 1, 192, 155, 50, 229, 140, 229, 29, 108, 75, 221, 96, 108, 75,
- 188, 108, 12, 197, 59, 225, 242, 108, 12, 197, 59, 225, 246, 108, 12,
- 197, 59, 225, 254, 108, 75, 237, 116, 108, 12, 197, 59, 226, 5, 108, 12,
- 197, 59, 225, 248, 108, 12, 197, 59, 225, 220, 108, 12, 197, 59, 225,
- 247, 108, 12, 197, 59, 226, 4, 108, 12, 197, 59, 225, 234, 108, 12, 197,
- 59, 225, 227, 108, 12, 197, 59, 225, 236, 108, 12, 197, 59, 226, 1, 108,
- 12, 197, 59, 225, 243, 108, 12, 197, 59, 226, 3, 108, 12, 197, 59, 225,
- 235, 108, 12, 197, 59, 226, 2, 108, 12, 197, 59, 225, 221, 108, 12, 197,
- 59, 225, 226, 108, 12, 197, 59, 225, 219, 108, 12, 197, 59, 225, 249,
- 108, 12, 197, 59, 225, 251, 108, 12, 197, 59, 225, 229, 108, 12, 197, 59,
- 225, 240, 108, 12, 197, 59, 225, 238, 108, 12, 197, 59, 226, 8, 108, 12,
- 197, 59, 226, 7, 108, 12, 197, 59, 225, 217, 108, 12, 197, 59, 225, 244,
- 108, 12, 197, 59, 226, 6, 108, 12, 197, 59, 225, 253, 108, 12, 197, 59,
- 225, 239, 108, 12, 197, 59, 225, 218, 108, 12, 197, 59, 225, 241, 108,
- 12, 197, 59, 225, 223, 108, 12, 197, 59, 225, 222, 108, 12, 197, 59, 225,
- 252, 108, 12, 197, 59, 225, 230, 108, 12, 197, 59, 225, 232, 108, 12,
- 197, 59, 225, 233, 108, 12, 197, 59, 225, 225, 108, 12, 197, 59, 226, 0,
- 108, 12, 197, 59, 225, 250, 108, 12, 197, 59, 225, 216, 198, 237, 204, 2,
- 247, 164, 12, 197, 59, 225, 231, 198, 237, 204, 2, 247, 164, 12, 197, 59,
- 226, 7, 198, 237, 204, 2, 247, 164, 12, 197, 59, 226, 5, 198, 237, 204,
- 2, 247, 164, 12, 197, 59, 225, 245, 198, 237, 204, 2, 247, 164, 12, 197,
- 59, 225, 228, 198, 237, 204, 2, 247, 164, 12, 197, 59, 225, 241, 198,
- 237, 204, 2, 247, 164, 12, 197, 59, 225, 224, 198, 237, 204, 2, 247, 164,
- 12, 197, 59, 225, 255, 198, 237, 204, 2, 247, 164, 12, 197, 59, 225, 237,
- 47, 228, 39, 251, 110, 47, 228, 39, 251, 141, 207, 7, 16, 39, 232, 77,
- 207, 7, 16, 39, 219, 36, 207, 7, 16, 39, 203, 178, 207, 7, 16, 39, 193,
- 196, 207, 7, 16, 39, 203, 161, 207, 7, 16, 39, 247, 7, 238, 106, 232,
- 162, 242, 84, 197, 81, 214, 32, 4, 202, 16, 201, 118, 136, 216, 8, 201,
- 117, 242, 115, 250, 27, 235, 35, 201, 116, 136, 247, 111, 208, 40, 247,
- 143, 250, 27, 214, 31, 194, 130, 194, 124, 195, 242, 216, 128, 194, 114,
- 234, 190, 231, 7, 233, 220, 234, 190, 231, 7, 250, 232, 234, 190, 231, 7,
- 250, 46, 231, 7, 4, 216, 252, 214, 177, 216, 30, 109, 194, 116, 238, 194,
- 216, 30, 109, 232, 226, 208, 168, 216, 30, 109, 194, 116, 231, 42, 216,
- 30, 109, 232, 71, 216, 30, 109, 194, 144, 231, 42, 216, 30, 109, 220, 66,
- 208, 168, 216, 30, 109, 194, 144, 238, 194, 216, 30, 109, 238, 194, 216,
- 29, 214, 177, 216, 30, 4, 233, 91, 232, 226, 208, 168, 216, 30, 4, 233,
- 91, 220, 66, 208, 168, 216, 30, 4, 233, 91, 232, 71, 216, 30, 4, 233, 91,
- 201, 124, 4, 233, 91, 231, 3, 202, 19, 203, 200, 202, 19, 199, 212, 60,
- 235, 70, 62, 201, 123, 62, 201, 124, 4, 2, 242, 75, 62, 201, 124, 248,
- 93, 242, 75, 62, 201, 124, 248, 93, 242, 76, 4, 208, 41, 242, 76, 4, 208,
- 41, 242, 76, 4, 202, 218, 242, 76, 4, 219, 192, 242, 76, 4, 198, 241,
- 232, 163, 194, 53, 247, 225, 233, 91, 228, 202, 236, 134, 200, 158, 247,
- 87, 242, 223, 205, 203, 233, 214, 198, 195, 237, 109, 198, 195, 211, 41,
- 198, 195, 247, 12, 228, 202, 210, 135, 198, 29, 242, 227, 247, 228, 207,
- 20, 229, 169, 201, 121, 247, 228, 234, 194, 80, 217, 171, 234, 194, 80,
- 207, 139, 229, 203, 232, 119, 220, 38, 242, 74, 217, 139, 220, 37, 233,
- 72, 220, 37, 220, 38, 232, 170, 223, 191, 194, 52, 215, 186, 199, 22,
- 250, 7, 230, 218, 217, 14, 194, 128, 200, 119, 220, 5, 248, 204, 210, 0,
- 207, 237, 250, 144, 230, 201, 250, 144, 210, 174, 210, 178, 242, 228,
- 201, 221, 230, 71, 202, 252, 80, 209, 236, 217, 41, 211, 212, 247, 207,
- 209, 144, 220, 16, 207, 140, 238, 200, 207, 140, 248, 217, 238, 238, 207,
- 139, 238, 134, 26, 207, 139, 202, 2, 247, 177, 202, 156, 247, 156, 232,
- 97, 232, 93, 207, 45, 201, 71, 209, 147, 237, 205, 212, 2, 201, 90, 232,
- 94, 203, 170, 232, 225, 247, 6, 4, 201, 63, 237, 52, 202, 198, 228, 50,
- 238, 198, 204, 20, 228, 49, 228, 50, 238, 198, 235, 99, 238, 237, 242,
- 186, 161, 246, 233, 219, 88, 238, 125, 229, 18, 209, 149, 203, 184, 248,
- 73, 247, 173, 209, 150, 80, 232, 151, 238, 236, 232, 140, 26, 221, 124,
- 200, 67, 194, 39, 230, 40, 206, 70, 247, 190, 26, 238, 148, 194, 49, 231,
- 11, 242, 58, 231, 11, 198, 150, 235, 77, 248, 104, 215, 226, 242, 91,
- 248, 104, 215, 225, 248, 255, 247, 189, 232, 140, 26, 221, 125, 4, 209,
- 221, 247, 190, 4, 209, 165, 238, 225, 209, 167, 207, 141, 193, 255, 209,
- 106, 248, 10, 247, 5, 223, 59, 242, 176, 198, 195, 233, 55, 242, 175,
- 232, 228, 232, 229, 202, 154, 248, 215, 210, 219, 209, 166, 239, 18, 248,
- 217, 200, 123, 198, 195, 238, 180, 232, 200, 210, 1, 237, 106, 223, 50,
- 236, 126, 246, 205, 201, 220, 194, 53, 242, 202, 216, 30, 196, 25, 246,
- 124, 205, 244, 206, 18, 230, 224, 246, 226, 229, 234, 4, 199, 74, 211,
- 212, 199, 225, 220, 28, 247, 183, 80, 232, 174, 216, 130, 217, 37, 207,
- 208, 207, 141, 35, 222, 0, 4, 223, 58, 201, 191, 216, 164, 219, 228, 202,
- 250, 238, 243, 221, 118, 248, 119, 250, 57, 35, 213, 100, 248, 119, 237,
- 58, 35, 213, 100, 232, 244, 232, 103, 251, 114, 199, 115, 246, 206, 228,
- 204, 233, 21, 194, 79, 207, 33, 242, 61, 232, 220, 209, 183, 26, 232,
- 224, 216, 164, 215, 250, 246, 247, 242, 134, 229, 241, 250, 66, 211, 45,
- 198, 249, 230, 18, 242, 120, 200, 22, 199, 116, 242, 106, 247, 216, 210,
- 128, 250, 64, 196, 35, 231, 207, 236, 206, 229, 137, 202, 243, 217, 216,
- 248, 23, 231, 208, 236, 252, 247, 176, 232, 176, 209, 220, 246, 214, 35,
- 213, 105, 215, 216, 35, 213, 100, 206, 2, 230, 169, 35, 221, 255, 198,
- 125, 196, 13, 35, 205, 236, 206, 192, 203, 215, 4, 206, 21, 200, 27, 208,
- 60, 26, 248, 217, 203, 15, 26, 203, 15, 247, 200, 248, 174, 26, 229, 11,
- 242, 229, 232, 206, 202, 217, 206, 193, 201, 95, 202, 118, 217, 37, 198,
- 151, 228, 205, 208, 61, 250, 233, 232, 148, 206, 206, 232, 148, 201, 66,
- 194, 96, 219, 197, 230, 244, 208, 62, 216, 16, 208, 62, 246, 217, 238,
- 191, 248, 171, 26, 248, 217, 195, 241, 233, 10, 229, 32, 201, 250, 26,
- 248, 217, 228, 50, 229, 32, 201, 250, 26, 209, 43, 200, 165, 200, 27,
- 211, 64, 26, 248, 217, 202, 219, 246, 222, 216, 9, 246, 245, 248, 122, 4,
- 197, 81, 247, 113, 239, 1, 228, 194, 247, 111, 242, 114, 237, 62, 228,
- 194, 247, 112, 242, 104, 247, 112, 237, 54, 237, 55, 223, 89, 215, 44,
- 210, 226, 202, 30, 228, 194, 247, 112, 228, 194, 4, 231, 191, 211, 249,
- 247, 112, 223, 50, 209, 155, 211, 248, 233, 219, 209, 155, 211, 248, 228,
- 203, 248, 198, 249, 252, 200, 37, 217, 216, 228, 199, 219, 53, 228, 199,
- 238, 241, 201, 234, 205, 243, 237, 65, 201, 234, 233, 80, 223, 70, 220,
- 78, 223, 50, 246, 195, 233, 219, 246, 195, 62, 210, 148, 60, 210, 148,
- 194, 122, 62, 232, 206, 194, 122, 60, 232, 206, 207, 19, 60, 207, 19,
- 220, 176, 248, 238, 208, 60, 26, 203, 147, 247, 181, 26, 54, 250, 228,
- 234, 94, 73, 232, 215, 197, 204, 234, 94, 73, 232, 215, 197, 201, 234,
- 94, 73, 232, 215, 197, 199, 234, 94, 73, 232, 215, 197, 197, 234, 94, 73,
- 232, 215, 197, 195, 208, 22, 216, 6, 211, 103, 194, 130, 247, 117, 238,
- 205, 199, 108, 219, 245, 208, 64, 246, 193, 235, 84, 238, 189, 194, 82,
- 202, 226, 202, 224, 228, 204, 208, 34, 230, 250, 204, 6, 216, 49, 207,
- 23, 242, 213, 236, 134, 210, 14, 247, 218, 234, 115, 212, 5, 202, 133,
- 204, 1, 247, 116, 250, 186, 229, 17, 220, 167, 248, 102, 232, 224, 198,
- 150, 232, 224, 247, 226, 198, 6, 230, 16, 242, 214, 248, 255, 242, 214,
- 232, 87, 248, 255, 242, 214, 248, 13, 210, 150, 221, 107, 209, 171, 235,
- 74, 246, 249, 248, 243, 246, 249, 236, 125, 216, 7, 233, 91, 238, 206,
- 233, 91, 199, 109, 233, 91, 208, 65, 233, 91, 246, 194, 233, 91, 235, 85,
- 233, 91, 202, 116, 194, 82, 228, 205, 233, 91, 216, 50, 233, 91, 236,
- 135, 233, 91, 210, 15, 233, 91, 232, 91, 233, 91, 230, 68, 233, 91, 194,
- 26, 233, 91, 248, 117, 233, 91, 211, 21, 233, 91, 210, 15, 213, 112, 210,
- 194, 209, 92, 242, 197, 233, 173, 233, 181, 234, 193, 213, 112, 216, 4,
- 199, 0, 62, 130, 209, 188, 248, 250, 223, 176, 62, 142, 209, 188, 248,
- 250, 223, 176, 62, 46, 209, 188, 248, 250, 223, 176, 62, 51, 209, 188,
- 248, 250, 223, 176, 232, 218, 230, 63, 57, 194, 122, 230, 63, 57, 211,
- 232, 230, 63, 57, 199, 146, 130, 57, 199, 146, 142, 57, 242, 105, 230,
- 38, 57, 211, 184, 230, 38, 57, 238, 174, 194, 22, 230, 18, 233, 176, 214,
- 204, 200, 226, 223, 40, 235, 79, 221, 180, 248, 26, 194, 22, 242, 77,
- 209, 23, 230, 42, 209, 145, 217, 148, 203, 207, 250, 22, 203, 207, 229,
- 154, 203, 207, 194, 22, 206, 37, 194, 22, 247, 199, 232, 146, 247, 79,
- 223, 191, 203, 91, 247, 78, 223, 191, 203, 91, 247, 171, 231, 23, 217,
- 160, 194, 23, 233, 69, 217, 161, 26, 194, 24, 229, 26, 230, 37, 103, 217,
- 6, 229, 26, 230, 37, 103, 194, 21, 229, 26, 230, 37, 209, 180, 211, 247,
- 194, 24, 4, 247, 97, 234, 191, 247, 144, 4, 196, 114, 210, 117, 4, 247,
- 230, 230, 86, 217, 161, 4, 230, 183, 210, 52, 217, 143, 217, 161, 4, 198,
- 14, 211, 224, 217, 160, 211, 224, 194, 23, 248, 254, 239, 2, 194, 7, 209,
- 97, 223, 50, 211, 242, 223, 50, 230, 249, 231, 54, 248, 255, 250, 212,
- 233, 186, 251, 16, 251, 17, 216, 39, 223, 196, 203, 10, 223, 165, 237,
- 51, 210, 116, 230, 177, 237, 210, 219, 158, 215, 69, 209, 179, 233, 92,
- 217, 104, 230, 85, 248, 192, 209, 182, 200, 247, 210, 7, 221, 161, 77,
- 219, 53, 219, 235, 207, 81, 231, 148, 201, 240, 221, 160, 247, 182, 238,
- 209, 4, 229, 233, 194, 103, 248, 113, 229, 233, 247, 136, 229, 233, 103,
- 229, 231, 202, 152, 229, 233, 230, 193, 229, 233, 229, 234, 4, 54, 247,
- 224, 229, 233, 230, 201, 229, 233, 193, 62, 229, 233, 209, 24, 229, 233,
- 229, 234, 4, 207, 141, 207, 162, 229, 231, 229, 234, 237, 106, 237, 5,
- 204, 34, 4, 41, 78, 223, 145, 234, 119, 152, 247, 109, 250, 211, 109,
- 247, 208, 202, 255, 109, 242, 49, 109, 202, 127, 201, 73, 109, 235, 70,
- 237, 186, 109, 210, 8, 80, 209, 172, 232, 188, 248, 38, 236, 167, 109,
- 202, 144, 248, 215, 199, 166, 248, 215, 62, 232, 175, 228, 163, 209, 186,
- 109, 216, 54, 248, 236, 238, 137, 233, 206, 87, 236, 127, 57, 238, 196,
- 246, 215, 248, 197, 4, 193, 60, 57, 248, 197, 4, 236, 127, 57, 248, 197,
- 4, 233, 222, 57, 248, 197, 4, 209, 143, 57, 216, 54, 4, 194, 47, 242,
- 253, 4, 197, 30, 198, 191, 26, 193, 60, 57, 205, 215, 210, 115, 239, 23,
- 247, 142, 216, 118, 232, 180, 236, 192, 211, 167, 236, 198, 235, 30, 232,
- 251, 232, 160, 211, 184, 232, 251, 232, 160, 211, 62, 4, 238, 142, 211,
- 62, 233, 84, 197, 41, 246, 255, 200, 64, 246, 255, 246, 216, 223, 176,
- 242, 253, 4, 197, 30, 198, 190, 242, 253, 4, 235, 92, 198, 190, 248, 194,
- 242, 252, 242, 90, 209, 19, 207, 9, 209, 19, 210, 250, 201, 230, 206,
- 200, 198, 182, 206, 200, 247, 204, 200, 163, 220, 33, 213, 103, 213, 104,
- 4, 237, 105, 238, 208, 242, 84, 247, 205, 211, 184, 247, 205, 230, 201,
- 247, 205, 247, 224, 247, 205, 211, 162, 247, 205, 247, 202, 215, 63, 248,
- 240, 205, 228, 217, 7, 200, 42, 207, 251, 211, 60, 233, 52, 217, 216,
- 206, 17, 250, 183, 209, 44, 251, 122, 219, 55, 242, 237, 217, 19, 211,
- 124, 198, 199, 223, 187, 198, 199, 211, 69, 234, 246, 109, 223, 184, 234,
- 52, 234, 53, 4, 235, 92, 61, 58, 242, 84, 217, 177, 4, 219, 46, 232, 206,
- 242, 84, 217, 177, 4, 208, 39, 232, 206, 211, 184, 217, 177, 4, 208, 39,
- 232, 206, 211, 184, 217, 177, 4, 219, 46, 232, 206, 209, 152, 209, 153,
- 228, 208, 214, 172, 216, 83, 210, 60, 216, 83, 210, 61, 4, 94, 61, 250,
- 27, 220, 28, 196, 38, 216, 82, 216, 83, 210, 61, 211, 250, 213, 143, 216,
- 83, 210, 59, 250, 184, 4, 248, 182, 246, 247, 246, 248, 4, 232, 197, 196,
- 35, 246, 247, 200, 39, 208, 55, 196, 34, 232, 244, 209, 78, 209, 162,
- 201, 252, 209, 120, 248, 121, 197, 224, 94, 250, 73, 242, 86, 94, 26,
- 114, 211, 184, 242, 131, 250, 73, 242, 86, 94, 26, 114, 211, 184, 242,
- 131, 250, 74, 4, 47, 90, 211, 110, 242, 86, 235, 92, 26, 197, 30, 211,
- 184, 242, 131, 250, 73, 250, 182, 235, 92, 26, 197, 30, 211, 184, 242,
- 131, 250, 73, 132, 247, 140, 109, 139, 247, 140, 109, 202, 149, 4, 246,
- 240, 111, 202, 148, 202, 149, 4, 90, 202, 174, 194, 124, 202, 149, 4,
- 112, 202, 174, 194, 123, 248, 164, 234, 119, 209, 212, 220, 23, 217, 189,
- 231, 11, 207, 96, 217, 189, 231, 11, 219, 99, 4, 223, 157, 210, 154, 242,
- 84, 219, 99, 4, 222, 1, 222, 1, 219, 98, 211, 184, 219, 98, 248, 86, 248,
- 87, 4, 246, 240, 111, 247, 203, 219, 166, 109, 208, 56, 247, 72, 248,
- 253, 4, 114, 61, 58, 234, 80, 4, 114, 61, 58, 211, 212, 4, 233, 204, 122,
- 4, 46, 51, 61, 58, 202, 182, 4, 94, 61, 58, 198, 249, 4, 197, 30, 61, 58,
- 213, 143, 90, 197, 69, 234, 146, 109, 221, 254, 200, 30, 223, 151, 16,
- 39, 8, 6, 219, 234, 223, 151, 16, 39, 8, 2, 219, 234, 223, 151, 16, 39,
- 212, 235, 223, 151, 16, 39, 201, 5, 223, 151, 16, 39, 8, 219, 234, 232,
- 231, 234, 119, 198, 244, 193, 253, 230, 69, 212, 218, 26, 247, 210, 229,
- 33, 209, 242, 216, 163, 200, 40, 238, 164, 248, 217, 203, 41, 209, 190,
- 202, 20, 4, 85, 236, 114, 223, 50, 16, 39, 248, 99, 198, 180, 234, 96,
- 60, 50, 247, 72, 62, 50, 247, 72, 220, 73, 207, 237, 242, 130, 220, 73,
- 247, 224, 242, 130, 220, 73, 211, 162, 237, 4, 220, 73, 247, 224, 237, 4,
- 2, 211, 162, 237, 4, 2, 247, 224, 237, 4, 197, 40, 207, 237, 198, 185,
- 235, 95, 207, 237, 198, 185, 197, 40, 2, 207, 237, 198, 185, 235, 95, 2,
- 207, 237, 198, 185, 106, 51, 204, 50, 62, 242, 130, 113, 51, 204, 50, 62,
- 242, 130, 47, 238, 184, 209, 176, 238, 184, 209, 177, 4, 230, 75, 63,
- 238, 184, 209, 176, 213, 107, 46, 204, 183, 4, 112, 236, 111, 213, 107,
- 51, 204, 183, 4, 112, 236, 111, 16, 39, 217, 121, 246, 102, 62, 8, 238,
- 183, 87, 8, 238, 183, 246, 142, 238, 183, 211, 220, 109, 235, 98, 80,
- 210, 179, 222, 157, 216, 22, 200, 255, 217, 2, 4, 214, 16, 247, 159, 247,
- 178, 80, 228, 113, 242, 88, 233, 92, 90, 212, 11, 242, 88, 233, 92, 103,
- 212, 11, 242, 88, 233, 92, 112, 212, 11, 242, 88, 233, 92, 232, 119, 212,
- 11, 242, 88, 233, 92, 232, 214, 212, 11, 242, 88, 233, 92, 203, 41, 212,
- 11, 242, 88, 233, 92, 204, 146, 212, 11, 242, 88, 233, 92, 234, 148, 212,
- 11, 242, 88, 233, 92, 214, 16, 212, 11, 242, 88, 233, 92, 200, 31, 212,
- 11, 242, 88, 233, 92, 234, 112, 212, 11, 242, 88, 233, 92, 197, 245, 212,
- 11, 242, 88, 233, 92, 211, 204, 242, 88, 233, 92, 197, 218, 242, 88, 233,
- 92, 199, 152, 242, 88, 233, 92, 232, 115, 242, 88, 233, 92, 232, 212,
- 242, 88, 233, 92, 203, 37, 242, 88, 233, 92, 204, 145, 242, 88, 233, 92,
- 234, 147, 242, 88, 233, 92, 214, 15, 242, 88, 233, 92, 200, 29, 242, 88,
- 233, 92, 234, 110, 242, 88, 233, 92, 197, 243, 51, 202, 148, 51, 202,
- 149, 4, 90, 202, 174, 194, 124, 51, 202, 149, 4, 112, 202, 174, 194, 123,
- 247, 104, 247, 105, 4, 202, 174, 194, 123, 207, 79, 248, 86, 247, 205,
- 246, 238, 217, 145, 242, 87, 60, 203, 11, 26, 238, 181, 213, 143, 209,
- 248, 229, 25, 217, 161, 223, 191, 247, 81, 201, 137, 219, 227, 202, 253,
- 211, 164, 202, 107, 237, 191, 201, 119, 202, 136, 202, 137, 194, 104,
- 222, 215, 217, 161, 237, 209, 46, 230, 63, 200, 42, 207, 251, 200, 42,
- 207, 252, 4, 211, 61, 51, 230, 63, 200, 42, 207, 251, 62, 198, 230, 200,
- 41, 60, 198, 230, 200, 41, 200, 42, 211, 212, 198, 249, 80, 216, 79, 242,
- 109, 216, 83, 210, 60, 248, 253, 80, 234, 52, 202, 26, 234, 52, 234, 53,
- 4, 219, 192, 232, 167, 234, 52, 210, 155, 136, 202, 26, 234, 52, 219,
- 165, 210, 249, 60, 209, 19, 106, 46, 210, 153, 106, 46, 248, 211, 210,
- 154, 106, 46, 232, 121, 210, 154, 106, 46, 211, 54, 106, 46, 238, 199,
- 46, 193, 247, 230, 62, 163, 211, 232, 230, 63, 57, 208, 39, 230, 63, 4,
- 232, 236, 202, 126, 207, 168, 208, 39, 230, 63, 4, 232, 236, 202, 126,
- 207, 168, 199, 146, 130, 57, 207, 168, 199, 146, 142, 57, 207, 168, 196,
- 37, 230, 62, 207, 168, 230, 63, 4, 85, 232, 241, 233, 192, 208, 39, 230,
- 63, 4, 210, 224, 248, 61, 85, 26, 207, 82, 232, 235, 62, 142, 209, 188,
- 46, 230, 63, 223, 176, 203, 109, 62, 46, 209, 188, 223, 176, 203, 109,
- 62, 51, 209, 188, 223, 176, 203, 109, 60, 46, 209, 188, 223, 176, 203,
- 109, 60, 51, 209, 188, 223, 176, 60, 46, 209, 188, 248, 250, 223, 176,
- 60, 51, 209, 188, 248, 250, 223, 176, 203, 109, 62, 130, 209, 188, 223,
- 176, 203, 109, 62, 142, 209, 188, 223, 176, 203, 109, 60, 130, 209, 188,
- 223, 176, 203, 109, 60, 142, 209, 188, 223, 176, 60, 130, 209, 188, 248,
- 250, 223, 176, 60, 142, 209, 188, 248, 250, 223, 176, 60, 229, 233, 237,
- 50, 239, 23, 222, 0, 26, 216, 6, 112, 214, 181, 239, 22, 209, 93, 209,
- 196, 247, 1, 60, 230, 26, 204, 2, 232, 180, 236, 192, 62, 230, 26, 204,
- 2, 232, 180, 236, 192, 202, 198, 204, 2, 232, 180, 236, 192, 200, 115,
- 246, 199, 194, 42, 221, 255, 90, 247, 73, 216, 6, 103, 247, 73, 216, 6,
- 112, 247, 73, 216, 6, 198, 221, 40, 210, 115, 239, 23, 230, 26, 236, 192,
- 205, 231, 209, 94, 228, 43, 233, 52, 228, 43, 211, 167, 236, 199, 228,
- 43, 236, 140, 4, 199, 244, 236, 140, 4, 199, 245, 26, 210, 44, 236, 140,
- 4, 210, 44, 232, 105, 4, 210, 44, 232, 105, 4, 199, 88, 232, 105, 4, 250,
- 225, 193, 223, 60, 232, 160, 232, 160, 211, 184, 232, 160, 246, 216, 140,
- 236, 176, 246, 216, 232, 251, 247, 173, 232, 251, 247, 14, 234, 90, 213,
- 105, 234, 90, 213, 106, 211, 61, 234, 90, 213, 106, 211, 67, 213, 105,
- 213, 106, 211, 61, 213, 106, 211, 67, 234, 90, 236, 139, 234, 90, 211,
- 61, 234, 90, 211, 59, 236, 139, 211, 61, 211, 59, 194, 134, 202, 133,
- 213, 106, 211, 67, 202, 133, 247, 0, 211, 67, 237, 50, 194, 51, 216, 115,
- 217, 93, 211, 113, 242, 86, 51, 26, 46, 204, 183, 250, 73, 246, 240, 193,
- 223, 223, 182, 232, 153, 203, 21, 109, 237, 104, 232, 153, 203, 21, 109,
- 239, 24, 40, 222, 1, 207, 34, 214, 172, 211, 62, 4, 47, 199, 244, 201,
- 242, 242, 252, 237, 239, 221, 124, 219, 159, 202, 147, 229, 246, 223,
- 191, 203, 91, 112, 208, 13, 58, 112, 208, 13, 63, 112, 208, 13, 220, 28,
- 112, 208, 13, 207, 101, 46, 202, 144, 247, 122, 51, 202, 144, 247, 122,
- 103, 202, 144, 247, 121, 112, 202, 144, 247, 121, 46, 199, 166, 247, 122,
- 51, 199, 166, 247, 122, 46, 250, 211, 247, 122, 51, 250, 211, 247, 122,
- 216, 34, 247, 122, 219, 193, 216, 34, 247, 122, 219, 193, 216, 33, 248,
- 213, 105, 4, 248, 212, 248, 213, 27, 193, 223, 248, 213, 105, 4, 27, 193,
- 223, 248, 213, 28, 27, 193, 223, 248, 213, 105, 4, 28, 27, 193, 223, 152,
- 242, 244, 77, 248, 213, 105, 4, 28, 242, 243, 194, 6, 217, 141, 216, 11,
- 232, 72, 199, 24, 198, 226, 202, 9, 80, 219, 207, 203, 92, 80, 223, 51,
- 215, 248, 230, 197, 233, 91, 230, 197, 233, 92, 4, 202, 230, 233, 173,
- 233, 92, 4, 200, 60, 80, 222, 217, 202, 230, 233, 92, 4, 211, 184, 216,
- 4, 202, 230, 233, 92, 4, 211, 184, 216, 5, 26, 202, 230, 233, 173, 202,
- 230, 233, 92, 4, 211, 184, 216, 5, 26, 242, 51, 201, 72, 202, 230, 233,
- 92, 4, 211, 184, 216, 5, 26, 199, 106, 233, 173, 202, 230, 233, 92, 4,
- 230, 74, 202, 230, 233, 92, 4, 228, 207, 194, 44, 233, 91, 202, 230, 233,
- 92, 4, 202, 230, 233, 173, 233, 92, 206, 7, 237, 84, 232, 151, 207, 211,
- 233, 91, 202, 230, 233, 92, 4, 229, 232, 233, 173, 202, 230, 233, 92, 4,
- 201, 119, 202, 229, 233, 91, 214, 179, 233, 91, 233, 194, 233, 91, 197,
- 75, 233, 91, 233, 92, 4, 242, 51, 201, 72, 210, 146, 233, 91, 239, 15,
- 233, 91, 239, 16, 233, 91, 221, 159, 233, 91, 233, 92, 199, 149, 41, 221,
- 160, 221, 159, 233, 92, 4, 202, 230, 233, 173, 221, 159, 233, 92, 4, 242,
- 84, 233, 173, 233, 92, 4, 201, 192, 199, 0, 233, 92, 4, 201, 192, 199, 1,
- 26, 194, 44, 233, 181, 233, 92, 4, 201, 192, 199, 1, 26, 199, 106, 233,
- 173, 236, 200, 233, 91, 194, 4, 233, 91, 250, 203, 233, 91, 209, 142,
- 233, 91, 238, 166, 233, 91, 210, 119, 233, 91, 233, 92, 4, 219, 72, 80,
- 198, 162, 236, 200, 247, 77, 207, 211, 233, 91, 232, 83, 233, 92, 4, 211,
- 184, 216, 4, 250, 201, 233, 91, 233, 45, 233, 91, 194, 105, 233, 91, 202,
- 254, 233, 91, 199, 68, 233, 91, 230, 198, 233, 91, 219, 56, 238, 166,
- 233, 91, 233, 92, 4, 211, 184, 216, 4, 228, 152, 233, 91, 233, 92, 4,
- 211, 184, 216, 5, 26, 242, 51, 201, 72, 233, 92, 205, 233, 223, 191, 233,
- 46, 250, 34, 233, 91, 232, 172, 233, 91, 202, 255, 233, 91, 236, 167,
- 233, 91, 233, 92, 194, 39, 216, 4, 233, 92, 4, 217, 34, 217, 106, 230,
- 197, 246, 194, 233, 92, 4, 202, 230, 233, 173, 246, 194, 233, 92, 4, 200,
- 60, 80, 222, 217, 202, 230, 246, 194, 233, 92, 4, 211, 184, 216, 4, 202,
- 230, 246, 194, 233, 92, 4, 229, 232, 233, 173, 246, 194, 233, 92, 4, 193,
- 245, 202, 231, 221, 159, 246, 194, 233, 92, 4, 242, 84, 233, 173, 209,
- 142, 246, 194, 233, 91, 238, 166, 246, 194, 233, 91, 194, 105, 246, 194,
- 233, 91, 202, 248, 232, 83, 233, 91, 202, 248, 202, 230, 233, 91, 197,
- 36, 233, 91, 233, 92, 4, 207, 32, 233, 173, 233, 92, 4, 213, 143, 230,
- 241, 231, 125, 233, 92, 4, 211, 232, 231, 125, 210, 117, 247, 179, 237,
- 99, 205, 204, 216, 49, 229, 236, 216, 49, 202, 150, 216, 49, 230, 29,
- 210, 117, 208, 37, 90, 230, 62, 210, 117, 208, 37, 247, 191, 230, 38,
- 223, 191, 246, 144, 210, 117, 232, 82, 210, 117, 4, 209, 142, 233, 91,
- 210, 117, 4, 232, 161, 230, 37, 178, 194, 91, 209, 188, 220, 37, 202,
- 171, 194, 91, 209, 188, 220, 37, 178, 234, 186, 209, 188, 220, 37, 202,
- 171, 234, 186, 209, 188, 220, 37, 163, 178, 194, 91, 209, 188, 220, 37,
- 163, 202, 171, 194, 91, 209, 188, 220, 37, 163, 178, 234, 186, 209, 188,
- 220, 37, 163, 202, 171, 234, 186, 209, 188, 220, 37, 178, 194, 91, 209,
- 188, 196, 19, 220, 37, 202, 171, 194, 91, 209, 188, 196, 19, 220, 37,
- 178, 234, 186, 209, 188, 196, 19, 220, 37, 202, 171, 234, 186, 209, 188,
- 196, 19, 220, 37, 87, 178, 194, 91, 209, 188, 196, 19, 220, 37, 87, 202,
- 171, 194, 91, 209, 188, 196, 19, 220, 37, 87, 178, 234, 186, 209, 188,
- 196, 19, 220, 37, 87, 202, 171, 234, 186, 209, 188, 196, 19, 220, 37,
- 178, 194, 91, 209, 188, 247, 118, 202, 171, 194, 91, 209, 188, 247, 118,
- 178, 234, 186, 209, 188, 247, 118, 202, 171, 234, 186, 209, 188, 247,
- 118, 87, 178, 194, 91, 209, 188, 247, 118, 87, 202, 171, 194, 91, 209,
- 188, 247, 118, 87, 178, 234, 186, 209, 188, 247, 118, 87, 202, 171, 234,
- 186, 209, 188, 247, 118, 229, 24, 208, 152, 50, 211, 150, 229, 24, 208,
- 152, 50, 211, 151, 223, 191, 60, 202, 106, 202, 191, 208, 152, 50, 211,
- 150, 202, 191, 208, 152, 50, 211, 151, 223, 191, 60, 202, 106, 114, 207,
- 39, 197, 30, 207, 39, 94, 207, 39, 235, 92, 207, 39, 27, 34, 233, 243,
- 211, 150, 87, 27, 34, 233, 243, 211, 150, 34, 211, 184, 233, 243, 211,
- 150, 87, 34, 211, 184, 233, 243, 211, 150, 87, 250, 230, 211, 150, 201,
- 75, 250, 230, 211, 150, 49, 87, 55, 163, 242, 39, 208, 142, 122, 211,
- 150, 49, 87, 55, 242, 39, 208, 142, 122, 211, 150, 49, 87, 132, 55, 242,
- 39, 208, 142, 122, 211, 150, 87, 223, 131, 211, 150, 49, 223, 131, 211,
- 150, 87, 49, 223, 131, 211, 150, 196, 53, 87, 202, 189, 196, 53, 87, 207,
- 169, 202, 189, 242, 242, 247, 216, 207, 169, 242, 242, 247, 216, 207, 39,
- 229, 215, 202, 4, 219, 96, 208, 44, 246, 217, 229, 151, 198, 213, 229,
- 151, 198, 214, 4, 247, 107, 213, 112, 198, 213, 216, 233, 152, 208, 45,
- 202, 10, 198, 211, 198, 212, 246, 217, 247, 82, 211, 208, 247, 82, 198,
- 158, 247, 83, 201, 238, 216, 119, 250, 234, 232, 232, 234, 72, 209, 180,
- 246, 217, 211, 208, 209, 180, 246, 217, 200, 89, 211, 208, 200, 89, 249,
- 251, 211, 208, 249, 251, 207, 244, 196, 115, 237, 80, 198, 149, 250, 67,
- 219, 63, 198, 220, 216, 42, 216, 10, 208, 43, 201, 89, 208, 43, 216, 10,
- 247, 13, 251, 94, 198, 210, 203, 220, 207, 6, 202, 142, 229, 5, 198, 217,
- 219, 195, 84, 198, 217, 219, 195, 239, 2, 57, 209, 180, 246, 201, 207,
- 162, 219, 195, 198, 182, 232, 207, 211, 212, 209, 154, 236, 118, 213,
- 143, 234, 58, 57, 202, 228, 109, 213, 143, 202, 228, 109, 209, 18, 219,
- 148, 223, 191, 223, 79, 209, 232, 109, 236, 147, 213, 111, 219, 148, 109,
- 209, 148, 194, 130, 109, 213, 127, 194, 130, 109, 248, 37, 213, 143, 248,
- 36, 248, 35, 216, 10, 248, 35, 210, 170, 213, 143, 210, 169, 242, 205,
- 238, 175, 217, 1, 109, 194, 20, 109, 207, 178, 248, 255, 109, 199, 25,
- 194, 130, 242, 81, 203, 175, 248, 167, 248, 165, 210, 208, 238, 242, 238,
- 123, 248, 232, 242, 110, 46, 219, 26, 198, 186, 4, 207, 7, 238, 222, 209,
- 81, 57, 47, 223, 165, 202, 172, 247, 170, 109, 231, 22, 109, 238, 214,
- 26, 220, 84, 202, 255, 251, 140, 203, 198, 248, 231, 248, 85, 248, 86,
- 248, 109, 209, 232, 80, 194, 3, 212, 8, 57, 203, 198, 198, 159, 201, 188,
- 211, 58, 229, 147, 200, 33, 228, 151, 234, 114, 230, 70, 26, 193, 253,
- 203, 233, 211, 237, 235, 67, 216, 14, 208, 44, 198, 222, 216, 17, 247,
- 215, 197, 40, 216, 130, 251, 50, 197, 40, 251, 50, 197, 40, 2, 251, 50,
- 2, 251, 50, 213, 116, 251, 50, 251, 51, 237, 64, 251, 51, 250, 80, 206,
- 16, 211, 208, 232, 232, 234, 72, 236, 250, 219, 96, 210, 212, 203, 220,
- 205, 237, 216, 17, 205, 237, 246, 228, 203, 1, 232, 167, 206, 11, 203,
- 17, 249, 253, 207, 137, 210, 45, 198, 149, 207, 33, 203, 18, 156, 16, 39,
- 208, 148, 156, 16, 39, 251, 52, 156, 16, 39, 232, 231, 156, 16, 39, 234,
- 189, 156, 16, 39, 194, 129, 156, 16, 39, 250, 133, 156, 16, 39, 250, 134,
- 207, 231, 156, 16, 39, 250, 134, 207, 230, 156, 16, 39, 250, 134, 196, 2,
- 156, 16, 39, 250, 134, 196, 1, 156, 16, 39, 196, 16, 156, 16, 39, 196,
- 15, 156, 16, 39, 196, 14, 156, 16, 39, 201, 130, 156, 16, 39, 210, 69,
- 201, 130, 156, 16, 39, 60, 201, 130, 156, 16, 39, 217, 0, 201, 161, 156,
- 16, 39, 217, 0, 201, 160, 156, 16, 39, 217, 0, 201, 159, 156, 16, 39,
- 242, 133, 156, 16, 39, 206, 55, 156, 16, 39, 214, 3, 156, 16, 39, 196, 0,
- 156, 16, 39, 195, 255, 156, 16, 39, 207, 41, 206, 55, 156, 16, 39, 207,
- 41, 206, 54, 156, 16, 39, 230, 245, 156, 16, 39, 203, 88, 156, 16, 39,
- 223, 102, 211, 157, 156, 16, 39, 223, 102, 211, 156, 156, 16, 39, 238,
- 188, 80, 223, 101, 156, 16, 39, 207, 227, 80, 223, 101, 156, 16, 39, 238,
- 233, 211, 157, 156, 16, 39, 223, 100, 211, 157, 156, 16, 39, 201, 162,
- 80, 238, 232, 156, 16, 39, 238, 188, 80, 238, 232, 156, 16, 39, 238, 188,
- 80, 238, 231, 156, 16, 39, 238, 233, 250, 176, 156, 16, 39, 206, 56, 80,
- 238, 233, 250, 176, 156, 16, 39, 201, 162, 80, 206, 56, 80, 238, 232,
- 156, 16, 39, 196, 109, 156, 16, 39, 199, 81, 211, 157, 156, 16, 39, 220,
- 41, 211, 157, 156, 16, 39, 250, 175, 211, 157, 156, 16, 39, 201, 162, 80,
- 250, 174, 156, 16, 39, 206, 56, 80, 250, 174, 156, 16, 39, 201, 162, 80,
- 206, 56, 80, 250, 174, 156, 16, 39, 196, 17, 80, 250, 174, 156, 16, 39,
- 207, 227, 80, 250, 174, 156, 16, 39, 207, 227, 80, 250, 173, 156, 16, 39,
- 207, 226, 156, 16, 39, 207, 225, 156, 16, 39, 207, 224, 156, 16, 39, 207,
- 223, 156, 16, 39, 251, 11, 156, 16, 39, 251, 10, 156, 16, 39, 217, 132,
- 156, 16, 39, 206, 62, 156, 16, 39, 250, 72, 156, 16, 39, 207, 255, 156,
- 16, 39, 207, 254, 156, 16, 39, 249, 255, 156, 16, 39, 248, 3, 211, 157,
- 156, 16, 39, 200, 110, 156, 16, 39, 200, 109, 156, 16, 39, 208, 154, 219,
- 184, 156, 16, 39, 247, 196, 156, 16, 39, 247, 195, 156, 16, 39, 247, 194,
- 156, 16, 39, 250, 243, 156, 16, 39, 211, 236, 156, 16, 39, 202, 129, 156,
- 16, 39, 199, 79, 156, 16, 39, 230, 165, 156, 16, 39, 194, 117, 156, 16,
- 39, 209, 141, 156, 16, 39, 246, 252, 156, 16, 39, 198, 1, 156, 16, 39,
- 246, 219, 216, 23, 156, 16, 39, 205, 247, 80, 222, 219, 156, 16, 39, 247,
- 10, 156, 16, 39, 198, 179, 156, 16, 39, 202, 17, 198, 179, 156, 16, 39,
- 219, 95, 156, 16, 39, 202, 203, 156, 16, 39, 197, 19, 156, 16, 39, 228,
- 205, 235, 45, 156, 16, 39, 250, 48, 156, 16, 39, 209, 150, 250, 48, 156,
- 16, 39, 247, 145, 156, 16, 39, 209, 140, 247, 145, 156, 16, 39, 250, 240,
- 156, 16, 39, 201, 225, 201, 111, 201, 224, 156, 16, 39, 201, 225, 201,
- 111, 201, 223, 156, 16, 39, 201, 158, 156, 16, 39, 209, 113, 156, 16, 39,
- 236, 187, 156, 16, 39, 236, 189, 156, 16, 39, 236, 188, 156, 16, 39, 209,
- 27, 156, 16, 39, 209, 16, 156, 16, 39, 238, 173, 156, 16, 39, 238, 172,
- 156, 16, 39, 238, 171, 156, 16, 39, 238, 170, 156, 16, 39, 238, 169, 156,
- 16, 39, 251, 25, 156, 16, 39, 248, 168, 80, 217, 113, 156, 16, 39, 248,
- 168, 80, 196, 143, 156, 16, 39, 207, 176, 156, 16, 39, 228, 197, 156, 16,
- 39, 214, 31, 156, 16, 39, 237, 173, 156, 16, 39, 216, 37, 156, 16, 39,
- 138, 235, 82, 156, 16, 39, 138, 211, 128, 60, 220, 23, 223, 85, 51, 198,
- 185, 60, 197, 40, 223, 85, 51, 198, 185, 60, 207, 96, 223, 85, 51, 198,
- 185, 60, 235, 95, 223, 85, 51, 198, 185, 60, 202, 248, 2, 242, 130, 217,
- 31, 28, 62, 242, 130, 28, 62, 242, 130, 87, 62, 242, 130, 196, 53, 87,
- 62, 242, 130, 233, 185, 87, 62, 242, 130, 62, 242, 131, 238, 254, 60, 2,
- 242, 130, 207, 9, 200, 111, 60, 199, 76, 202, 106, 60, 202, 248, 2, 202,
- 106, 152, 62, 202, 106, 217, 31, 62, 202, 106, 28, 62, 202, 106, 87, 62,
- 202, 106, 196, 53, 87, 62, 202, 106, 233, 185, 87, 62, 202, 106, 62, 50,
- 238, 254, 60, 196, 53, 2, 202, 106, 62, 50, 238, 254, 60, 217, 31, 202,
- 106, 50, 200, 111, 60, 199, 76, 237, 4, 60, 196, 53, 2, 237, 4, 60, 217,
- 31, 2, 237, 4, 62, 237, 5, 238, 254, 60, 196, 53, 2, 237, 4, 62, 237, 5,
- 238, 254, 60, 217, 31, 237, 4, 237, 5, 200, 111, 60, 199, 76, 219, 43,
- 60, 196, 53, 2, 219, 43, 60, 217, 31, 2, 219, 43, 62, 219, 44, 238, 254,
- 60, 2, 219, 43, 199, 195, 33, 238, 183, 152, 33, 238, 183, 217, 31, 33,
- 238, 183, 28, 33, 238, 183, 196, 53, 28, 33, 238, 183, 196, 53, 87, 33,
- 238, 183, 233, 185, 87, 33, 238, 183, 199, 195, 206, 51, 152, 206, 51,
- 217, 31, 206, 51, 28, 206, 51, 87, 206, 51, 196, 53, 87, 206, 51, 233,
- 185, 87, 206, 51, 152, 232, 214, 202, 122, 250, 37, 217, 31, 232, 214,
- 202, 122, 250, 37, 28, 232, 214, 202, 122, 250, 37, 87, 232, 214, 202,
- 122, 250, 37, 196, 53, 87, 232, 214, 202, 122, 250, 37, 233, 185, 87,
- 232, 214, 202, 122, 250, 37, 152, 203, 41, 202, 122, 250, 37, 217, 31,
- 203, 41, 202, 122, 250, 37, 28, 203, 41, 202, 122, 250, 37, 87, 203, 41,
- 202, 122, 250, 37, 196, 53, 87, 203, 41, 202, 122, 250, 37, 233, 185, 87,
- 203, 41, 202, 122, 250, 37, 152, 234, 148, 202, 122, 250, 37, 217, 31,
- 234, 148, 202, 122, 250, 37, 28, 234, 148, 202, 122, 250, 37, 87, 234,
- 148, 202, 122, 250, 37, 196, 53, 87, 234, 148, 202, 122, 250, 37, 152,
- 112, 209, 190, 60, 202, 19, 217, 31, 112, 209, 190, 60, 202, 19, 112,
- 209, 190, 60, 202, 19, 217, 31, 112, 209, 190, 209, 254, 202, 19, 152,
- 232, 119, 209, 190, 60, 202, 19, 217, 31, 232, 119, 209, 190, 60, 202,
- 19, 232, 119, 209, 190, 60, 202, 19, 217, 31, 232, 119, 209, 190, 209,
- 254, 202, 19, 207, 169, 152, 232, 119, 209, 190, 209, 254, 202, 19, 152,
- 232, 214, 209, 190, 60, 202, 19, 87, 232, 214, 209, 190, 60, 202, 19,
- 217, 31, 203, 41, 209, 190, 60, 202, 19, 87, 203, 41, 209, 190, 60, 202,
- 19, 203, 41, 209, 190, 209, 254, 202, 19, 217, 31, 234, 148, 209, 190,
- 60, 202, 19, 87, 234, 148, 209, 190, 60, 202, 19, 196, 53, 87, 234, 148,
- 209, 190, 60, 202, 19, 87, 234, 148, 209, 190, 209, 254, 202, 19, 152,
- 197, 245, 209, 190, 60, 202, 19, 87, 197, 245, 209, 190, 60, 202, 19, 87,
- 197, 245, 209, 190, 209, 254, 202, 19, 47, 198, 185, 214, 199, 47, 198,
- 185, 47, 202, 106, 214, 199, 47, 202, 106, 220, 73, 211, 162, 242, 130,
- 220, 73, 193, 62, 242, 130, 220, 73, 230, 201, 242, 130, 220, 73, 209,
- 24, 242, 130, 220, 73, 247, 133, 242, 130, 220, 73, 207, 237, 202, 106,
- 220, 73, 247, 224, 202, 106, 220, 73, 211, 162, 202, 106, 220, 73, 193,
- 62, 202, 106, 220, 73, 230, 201, 202, 106, 220, 73, 209, 24, 202, 106,
- 220, 73, 247, 133, 202, 106, 114, 61, 4, 2, 198, 186, 250, 77, 197, 30,
- 61, 4, 2, 198, 186, 250, 77, 94, 61, 4, 2, 198, 186, 250, 77, 235, 92,
- 61, 4, 2, 198, 186, 250, 77, 114, 61, 4, 217, 31, 198, 186, 250, 77, 197,
- 30, 61, 4, 217, 31, 198, 186, 250, 77, 94, 61, 4, 217, 31, 198, 186, 250,
- 77, 235, 92, 61, 4, 217, 31, 198, 186, 250, 77, 114, 61, 4, 220, 73, 198,
- 186, 250, 77, 197, 30, 61, 4, 220, 73, 198, 186, 250, 77, 94, 61, 4, 220,
- 73, 198, 186, 250, 77, 235, 92, 61, 4, 220, 73, 198, 186, 250, 77, 114,
- 61, 4, 2, 234, 24, 250, 77, 197, 30, 61, 4, 2, 234, 24, 250, 77, 94, 61,
- 4, 2, 234, 24, 250, 77, 235, 92, 61, 4, 2, 234, 24, 250, 77, 114, 61, 4,
- 234, 24, 250, 77, 197, 30, 61, 4, 234, 24, 250, 77, 94, 61, 4, 234, 24,
- 250, 77, 235, 92, 61, 4, 234, 24, 250, 77, 87, 114, 61, 4, 234, 24, 250,
- 77, 87, 197, 30, 61, 4, 234, 24, 250, 77, 87, 94, 61, 4, 234, 24, 250,
- 77, 87, 235, 92, 61, 4, 234, 24, 250, 77, 87, 114, 61, 4, 220, 73, 234,
- 24, 250, 77, 87, 197, 30, 61, 4, 220, 73, 234, 24, 250, 77, 87, 94, 61,
- 4, 220, 73, 234, 24, 250, 77, 87, 235, 92, 61, 4, 220, 73, 234, 24, 250,
- 77, 114, 198, 184, 61, 4, 215, 50, 204, 48, 197, 30, 198, 184, 61, 4,
- 215, 50, 204, 48, 94, 198, 184, 61, 4, 215, 50, 204, 48, 235, 92, 198,
- 184, 61, 4, 215, 50, 204, 48, 114, 198, 184, 61, 4, 217, 31, 204, 48,
- 197, 30, 198, 184, 61, 4, 217, 31, 204, 48, 94, 198, 184, 61, 4, 217, 31,
- 204, 48, 235, 92, 198, 184, 61, 4, 217, 31, 204, 48, 114, 198, 184, 61,
- 4, 28, 204, 48, 197, 30, 198, 184, 61, 4, 28, 204, 48, 94, 198, 184, 61,
- 4, 28, 204, 48, 235, 92, 198, 184, 61, 4, 28, 204, 48, 114, 198, 184, 61,
- 4, 87, 204, 48, 197, 30, 198, 184, 61, 4, 87, 204, 48, 94, 198, 184, 61,
- 4, 87, 204, 48, 235, 92, 198, 184, 61, 4, 87, 204, 48, 114, 198, 184, 61,
- 4, 196, 53, 87, 204, 48, 197, 30, 198, 184, 61, 4, 196, 53, 87, 204, 48,
- 94, 198, 184, 61, 4, 196, 53, 87, 204, 48, 235, 92, 198, 184, 61, 4, 196,
- 53, 87, 204, 48, 114, 232, 239, 54, 197, 30, 232, 239, 54, 94, 232, 239,
- 54, 235, 92, 232, 239, 54, 114, 108, 54, 197, 30, 108, 54, 94, 108, 54,
- 235, 92, 108, 54, 114, 239, 25, 54, 197, 30, 239, 25, 54, 94, 239, 25,
- 54, 235, 92, 239, 25, 54, 114, 87, 239, 25, 54, 197, 30, 87, 239, 25, 54,
- 94, 87, 239, 25, 54, 235, 92, 87, 239, 25, 54, 114, 87, 54, 197, 30, 87,
- 54, 94, 87, 54, 235, 92, 87, 54, 114, 49, 54, 197, 30, 49, 54, 94, 49,
- 54, 235, 92, 49, 54, 178, 194, 91, 49, 54, 178, 234, 186, 49, 54, 202,
- 171, 234, 186, 49, 54, 202, 171, 194, 91, 49, 54, 46, 51, 49, 54, 130,
- 142, 49, 54, 194, 63, 114, 152, 173, 54, 194, 63, 197, 30, 152, 173, 54,
- 194, 63, 94, 152, 173, 54, 194, 63, 235, 92, 152, 173, 54, 194, 63, 178,
- 194, 91, 152, 173, 54, 194, 63, 178, 234, 186, 152, 173, 54, 194, 63,
- 202, 171, 234, 186, 152, 173, 54, 194, 63, 202, 171, 194, 91, 152, 173,
- 54, 194, 63, 114, 173, 54, 194, 63, 197, 30, 173, 54, 194, 63, 94, 173,
- 54, 194, 63, 235, 92, 173, 54, 194, 63, 178, 194, 91, 173, 54, 194, 63,
- 178, 234, 186, 173, 54, 194, 63, 202, 171, 234, 186, 173, 54, 194, 63,
- 202, 171, 194, 91, 173, 54, 194, 63, 114, 217, 31, 173, 54, 194, 63, 197,
- 30, 217, 31, 173, 54, 194, 63, 94, 217, 31, 173, 54, 194, 63, 235, 92,
- 217, 31, 173, 54, 194, 63, 178, 194, 91, 217, 31, 173, 54, 194, 63, 178,
- 234, 186, 217, 31, 173, 54, 194, 63, 202, 171, 234, 186, 217, 31, 173,
- 54, 194, 63, 202, 171, 194, 91, 217, 31, 173, 54, 194, 63, 114, 87, 173,
- 54, 194, 63, 197, 30, 87, 173, 54, 194, 63, 94, 87, 173, 54, 194, 63,
- 235, 92, 87, 173, 54, 194, 63, 178, 194, 91, 87, 173, 54, 194, 63, 178,
- 234, 186, 87, 173, 54, 194, 63, 202, 171, 234, 186, 87, 173, 54, 194, 63,
- 202, 171, 194, 91, 87, 173, 54, 194, 63, 114, 196, 53, 87, 173, 54, 194,
- 63, 197, 30, 196, 53, 87, 173, 54, 194, 63, 94, 196, 53, 87, 173, 54,
- 194, 63, 235, 92, 196, 53, 87, 173, 54, 194, 63, 178, 194, 91, 196, 53,
- 87, 173, 54, 194, 63, 178, 234, 186, 196, 53, 87, 173, 54, 194, 63, 202,
- 171, 234, 186, 196, 53, 87, 173, 54, 194, 63, 202, 171, 194, 91, 196, 53,
- 87, 173, 54, 114, 198, 186, 250, 77, 197, 30, 198, 186, 250, 77, 94, 198,
- 186, 250, 77, 235, 92, 198, 186, 250, 77, 114, 62, 61, 194, 41, 198, 186,
- 250, 77, 197, 30, 62, 61, 194, 41, 198, 186, 250, 77, 94, 62, 61, 194,
- 41, 198, 186, 250, 77, 235, 92, 62, 61, 194, 41, 198, 186, 250, 77, 114,
- 61, 4, 213, 107, 200, 147, 197, 30, 61, 4, 213, 107, 200, 147, 94, 61, 4,
- 213, 107, 200, 147, 235, 92, 61, 4, 213, 107, 200, 147, 87, 61, 204, 49,
- 194, 61, 101, 87, 61, 204, 49, 194, 61, 103, 199, 188, 87, 61, 204, 49,
- 194, 61, 90, 230, 78, 87, 61, 204, 49, 194, 61, 90, 199, 191, 114, 247,
- 185, 62, 54, 94, 247, 188, 204, 51, 62, 54, 114, 198, 249, 204, 51, 62,
- 54, 94, 198, 249, 204, 51, 62, 54, 114, 220, 22, 62, 54, 94, 207, 95, 62,
- 54, 114, 207, 95, 62, 54, 94, 220, 22, 62, 54, 114, 248, 251, 204, 50,
- 62, 54, 94, 248, 251, 204, 50, 62, 54, 114, 232, 86, 204, 50, 62, 54, 94,
- 232, 86, 204, 50, 62, 54, 62, 61, 204, 49, 194, 61, 101, 62, 61, 204, 49,
- 194, 61, 103, 199, 188, 61, 209, 188, 197, 30, 199, 216, 178, 194, 90,
- 61, 209, 188, 94, 199, 216, 238, 128, 202, 171, 194, 90, 47, 238, 184,
- 232, 133, 4, 232, 119, 236, 111, 47, 238, 184, 232, 133, 4, 103, 236,
- 111, 47, 238, 184, 232, 132, 46, 138, 242, 131, 4, 232, 119, 236, 111,
- 46, 138, 242, 131, 4, 112, 236, 111, 46, 138, 242, 131, 4, 103, 236, 111,
- 46, 138, 242, 131, 4, 236, 114, 46, 138, 242, 130, 235, 93, 233, 84, 128,
- 235, 93, 233, 84, 213, 107, 128, 235, 93, 233, 84, 229, 15, 4, 236, 114,
- 235, 93, 233, 84, 213, 107, 229, 15, 4, 236, 114, 210, 3, 232, 235, 62,
- 229, 233, 247, 133, 229, 233, 210, 2, 230, 62, 192, 17, 233, 91, 216, 53,
- 233, 91, 233, 92, 4, 199, 212, 214, 187, 233, 91, 199, 193, 233, 91, 233,
- 92, 4, 229, 244, 207, 43, 233, 91, 228, 172, 233, 91, 3, 80, 199, 225,
- 228, 207, 246, 254, 217, 49, 230, 62, 208, 39, 248, 253, 80, 230, 62,
- 220, 27, 232, 219, 207, 100, 232, 219, 230, 36, 230, 63, 4, 140, 26, 85,
- 232, 236, 238, 179, 228, 97, 219, 53, 192, 228, 230, 63, 57, 233, 92, 4,
- 238, 204, 230, 18, 242, 73, 233, 91, 215, 39, 233, 91, 207, 32, 211, 212,
- 199, 225, 232, 183, 220, 59, 235, 73, 233, 91, 218, 246, 233, 91, 233,
- 92, 211, 40, 202, 222, 233, 91, 233, 92, 4, 90, 233, 180, 208, 38, 230,
- 197, 233, 92, 4, 202, 20, 233, 173, 230, 197, 233, 92, 4, 90, 220, 73,
- 26, 90, 2, 233, 181, 233, 92, 4, 232, 241, 238, 207, 242, 84, 219, 159,
- 204, 157, 233, 92, 4, 201, 6, 238, 207, 216, 4, 202, 230, 233, 92, 4,
- 202, 230, 233, 174, 26, 230, 63, 238, 207, 216, 4, 233, 92, 4, 211, 184,
- 216, 5, 195, 237, 203, 209, 233, 92, 4, 233, 196, 229, 245, 209, 110,
- 194, 23, 247, 153, 211, 39, 130, 199, 26, 204, 186, 209, 98, 217, 161,
- 223, 191, 197, 253, 216, 19, 242, 175, 203, 168, 210, 117, 236, 131, 246,
- 198, 222, 209, 233, 26, 216, 78, 210, 141, 193, 252, 194, 130, 209, 178,
- 230, 41, 236, 173, 217, 106, 194, 55, 232, 175, 235, 68, 4, 235, 66, 242,
- 91, 231, 10, 198, 25, 231, 11, 202, 119, 230, 252, 214, 182, 207, 102,
- 232, 226, 209, 232, 217, 37, 205, 212, 209, 232, 217, 37, 199, 192, 209,
- 232, 217, 37, 247, 172, 231, 5, 217, 117, 250, 65, 197, 58, 238, 139,
- 201, 240, 220, 169, 201, 250, 26, 248, 217, 202, 197, 232, 167, 236, 198,
- 238, 187, 249, 242, 238, 155, 248, 244, 209, 147, 246, 202, 248, 230,
- 247, 156, 230, 201, 206, 60, 204, 41, 211, 26, 80, 232, 151, 201, 189,
- 232, 194, 234, 162, 231, 12, 80, 216, 129, 210, 175, 221, 154, 211, 22,
- 235, 50, 232, 128, 238, 237, 200, 139, 247, 173, 242, 182, 247, 178, 4,
- 202, 119, 238, 149, 4, 201, 222, 242, 57, 247, 137, 210, 43, 209, 102,
- 238, 122, 80, 217, 40, 206, 35, 246, 230, 232, 151, 220, 36, 230, 200,
- 217, 152, 216, 30, 247, 5, 248, 233, 202, 230, 233, 92, 4, 202, 230, 233,
- 174, 26, 112, 229, 231, 193, 76, 233, 91, 202, 230, 233, 92, 4, 200, 65,
- 233, 92, 4, 210, 219, 228, 209, 26, 210, 219, 230, 18, 233, 92, 4, 197,
- 62, 233, 174, 26, 194, 121, 216, 4, 211, 116, 233, 91, 232, 98, 233, 91,
- 214, 10, 236, 196, 233, 91, 233, 92, 4, 209, 218, 233, 173, 206, 23, 220,
- 178, 242, 60, 230, 248, 229, 149, 247, 200, 232, 196, 203, 207, 238, 201,
- 219, 163, 233, 91, 205, 235, 198, 13, 197, 60, 233, 91, 234, 196, 235,
- 58, 248, 170, 204, 27, 211, 105, 232, 111, 233, 91, 247, 74, 237, 98,
- 230, 234, 219, 142, 207, 155, 203, 170, 202, 100, 231, 24, 233, 91, 192,
- 83, 233, 91, 229, 226, 206, 8, 200, 227, 238, 190, 222, 116, 219, 134,
- 210, 177, 229, 141, 210, 225, 208, 63, 219, 105, 216, 21, 216, 165, 248,
- 239, 201, 77, 217, 162, 236, 137, 202, 242, 211, 133, 211, 161, 203, 9,
- 232, 198, 211, 95, 248, 111, 248, 2, 205, 216, 230, 170, 236, 134, 209,
- 87, 246, 232, 234, 94, 242, 28, 207, 237, 230, 86, 234, 94, 242, 28, 238,
- 138, 230, 86, 234, 94, 242, 28, 248, 219, 234, 94, 242, 28, 62, 230, 86,
- 247, 207, 220, 16, 232, 149, 198, 251, 201, 109, 201, 104, 206, 82, 196,
- 51, 234, 194, 4, 229, 235, 251, 62, 216, 15, 194, 77, 217, 144, 194, 77,
- 217, 39, 250, 92, 217, 39, 220, 16, 242, 236, 194, 102, 238, 147, 206,
- 56, 204, 45, 248, 59, 247, 173, 231, 190, 211, 200, 233, 73, 194, 158,
- 247, 75, 217, 100, 235, 77, 228, 50, 238, 157, 247, 123, 200, 68, 202,
- 22, 210, 116, 221, 126, 210, 116, 237, 114, 210, 116, 233, 92, 4, 216,
- 48, 251, 112, 242, 206, 211, 224, 251, 112, 248, 115, 210, 116, 210, 117,
- 4, 229, 240, 210, 117, 223, 191, 202, 1, 207, 24, 210, 117, 242, 93, 210,
- 117, 223, 191, 219, 58, 209, 159, 217, 192, 233, 75, 196, 146, 216, 249,
- 234, 109, 231, 141, 192, 6, 247, 163, 211, 162, 229, 233, 248, 24, 246,
- 226, 205, 248, 231, 4, 242, 60, 202, 200, 207, 237, 231, 36, 234, 52,
- 232, 230, 223, 14, 209, 12, 210, 42, 200, 10, 198, 35, 210, 101, 236,
- 194, 236, 148, 55, 229, 214, 242, 33, 251, 154, 232, 232, 233, 190, 198,
- 253, 247, 145, 217, 190, 219, 26, 219, 59, 247, 189, 202, 120, 80, 199,
- 162, 248, 218, 80, 193, 89, 206, 82, 210, 6, 200, 59, 248, 116, 247, 134,
- 248, 175, 207, 35, 80, 210, 251, 248, 194, 80, 202, 203, 202, 121, 207,
- 253, 215, 33, 250, 226, 214, 179, 242, 225, 221, 176, 214, 179, 242, 225,
- 208, 160, 214, 179, 242, 225, 207, 25, 214, 179, 242, 225, 248, 5, 214,
- 179, 242, 225, 221, 122, 214, 179, 242, 225, 210, 192, 62, 242, 225, 221,
- 123, 207, 16, 232, 125, 237, 94, 60, 242, 225, 221, 123, 207, 16, 232,
- 125, 237, 94, 214, 179, 242, 225, 221, 123, 207, 16, 232, 125, 237, 94,
- 62, 242, 225, 221, 177, 207, 16, 214, 12, 237, 94, 62, 242, 225, 208,
- 161, 207, 16, 214, 12, 237, 94, 62, 242, 225, 207, 26, 207, 16, 214, 12,
- 237, 94, 62, 242, 225, 248, 6, 207, 16, 214, 12, 237, 94, 62, 242, 225,
- 221, 123, 207, 16, 214, 12, 237, 94, 62, 242, 225, 210, 193, 207, 16,
- 214, 12, 237, 94, 60, 242, 225, 221, 177, 207, 16, 214, 12, 237, 94, 60,
- 242, 225, 208, 161, 207, 16, 214, 12, 237, 94, 60, 242, 225, 207, 26,
- 207, 16, 214, 12, 237, 94, 60, 242, 225, 248, 6, 207, 16, 214, 12, 237,
- 94, 60, 242, 225, 221, 123, 207, 16, 214, 12, 237, 94, 60, 242, 225, 210,
- 193, 207, 16, 214, 12, 237, 94, 214, 179, 242, 225, 221, 177, 207, 16,
- 214, 12, 237, 94, 214, 179, 242, 225, 208, 161, 207, 16, 214, 12, 237,
- 94, 214, 179, 242, 225, 207, 26, 207, 16, 214, 12, 237, 94, 214, 179,
- 242, 225, 248, 6, 207, 16, 214, 12, 237, 94, 214, 179, 242, 225, 221,
- 123, 207, 16, 214, 12, 237, 94, 214, 179, 242, 225, 210, 193, 207, 16,
- 214, 12, 237, 94, 62, 242, 225, 221, 123, 207, 16, 90, 228, 163, 199,
- 183, 237, 94, 60, 242, 225, 221, 123, 207, 16, 90, 228, 163, 199, 183,
- 237, 94, 214, 179, 242, 225, 221, 123, 207, 16, 90, 228, 163, 199, 183,
- 237, 94, 62, 242, 225, 163, 221, 176, 62, 242, 225, 163, 208, 160, 62,
- 242, 225, 163, 207, 25, 62, 242, 225, 163, 248, 5, 62, 242, 225, 163,
- 221, 122, 62, 242, 225, 163, 210, 192, 60, 242, 225, 163, 221, 176, 60,
- 242, 225, 163, 208, 160, 60, 242, 225, 163, 207, 25, 60, 242, 225, 163,
- 248, 5, 60, 242, 225, 163, 221, 122, 60, 242, 225, 163, 210, 192, 214,
- 179, 242, 225, 163, 221, 176, 214, 179, 242, 225, 163, 208, 160, 214,
- 179, 242, 225, 163, 207, 25, 214, 179, 242, 225, 163, 248, 5, 214, 179,
- 242, 225, 163, 221, 122, 214, 179, 242, 225, 163, 210, 192, 62, 242, 225,
- 221, 123, 207, 16, 103, 228, 163, 197, 236, 237, 94, 60, 242, 225, 221,
- 123, 207, 16, 103, 228, 163, 197, 236, 237, 94, 214, 179, 242, 225, 221,
- 123, 207, 16, 103, 228, 163, 197, 236, 237, 94, 62, 242, 225, 221, 177,
- 207, 16, 103, 228, 163, 204, 141, 237, 94, 62, 242, 225, 208, 161, 207,
- 16, 103, 228, 163, 204, 141, 237, 94, 62, 242, 225, 207, 26, 207, 16,
- 103, 228, 163, 204, 141, 237, 94, 62, 242, 225, 248, 6, 207, 16, 103,
- 228, 163, 204, 141, 237, 94, 62, 242, 225, 221, 123, 207, 16, 103, 228,
- 163, 204, 141, 237, 94, 62, 242, 225, 210, 193, 207, 16, 103, 228, 163,
- 204, 141, 237, 94, 60, 242, 225, 221, 177, 207, 16, 103, 228, 163, 204,
- 141, 237, 94, 60, 242, 225, 208, 161, 207, 16, 103, 228, 163, 204, 141,
- 237, 94, 60, 242, 225, 207, 26, 207, 16, 103, 228, 163, 204, 141, 237,
- 94, 60, 242, 225, 248, 6, 207, 16, 103, 228, 163, 204, 141, 237, 94, 60,
- 242, 225, 221, 123, 207, 16, 103, 228, 163, 204, 141, 237, 94, 60, 242,
- 225, 210, 193, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
- 225, 221, 177, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
- 225, 208, 161, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
- 225, 207, 26, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
- 225, 248, 6, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
- 225, 221, 123, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
- 225, 210, 193, 207, 16, 103, 228, 163, 204, 141, 237, 94, 62, 242, 225,
- 221, 123, 207, 16, 112, 228, 163, 233, 8, 237, 94, 60, 242, 225, 221,
- 123, 207, 16, 112, 228, 163, 233, 8, 237, 94, 214, 179, 242, 225, 221,
- 123, 207, 16, 112, 228, 163, 233, 8, 237, 94, 62, 242, 225, 234, 25, 60,
- 242, 225, 234, 25, 214, 179, 242, 225, 234, 25, 62, 242, 225, 234, 26,
- 207, 16, 214, 12, 237, 94, 60, 242, 225, 234, 26, 207, 16, 214, 12, 237,
- 94, 214, 179, 242, 225, 234, 26, 207, 16, 214, 12, 237, 94, 62, 242, 225,
- 221, 120, 62, 242, 225, 221, 119, 62, 242, 225, 221, 121, 60, 242, 225,
- 221, 120, 60, 242, 225, 221, 119, 60, 242, 225, 221, 121, 193, 194, 207,
- 237, 231, 143, 193, 194, 207, 237, 217, 154, 193, 194, 207, 237, 234,
- 115, 193, 194, 207, 237, 228, 204, 193, 194, 207, 237, 242, 254, 193,
- 194, 207, 237, 246, 229, 193, 194, 207, 237, 202, 192, 193, 194, 60, 231,
- 143, 193, 194, 60, 217, 154, 193, 194, 60, 234, 115, 193, 194, 60, 228,
- 204, 193, 194, 60, 242, 254, 193, 194, 60, 246, 229, 193, 194, 60, 202,
- 192, 248, 216, 203, 206, 211, 205, 201, 64, 247, 141, 203, 180, 199, 172,
- 206, 37, 235, 72, 80, 247, 229, 251, 118, 248, 202, 201, 251, 192, 242,
- 221, 157, 210, 245, 247, 201, 217, 191, 194, 147, 210, 4, 214, 184, 236,
- 126, 207, 80, 209, 224, 246, 112, 208, 11, 249, 237, 236, 168, 220, 84,
- 248, 200, 216, 130, 229, 210, 251, 139, 184, 235, 67, 242, 52, 246, 204,
- 206, 6, 205, 230, 220, 168, 128, 216, 105, 194, 51, 209, 208, 204, 138,
- 214, 202, 221, 117, 247, 120, 216, 7, 198, 203, 198, 250, 229, 238, 209,
- 233, 207, 40, 232, 168, 194, 5, 248, 102, 242, 59, 209, 146, 209, 223,
- 194, 16, 233, 42, 250, 221, 229, 233, 219, 17, 210, 140, 228, 171, 247,
- 222, 248, 87, 210, 135, 211, 221, 232, 194, 200, 128, 232, 155, 200, 66,
- 175, 204, 135, 175, 204, 105, 175, 204, 134, 175, 204, 90, 175, 204, 119,
- 175, 204, 104, 175, 204, 133, 175, 204, 82, 175, 204, 112, 175, 204, 96,
- 175, 204, 126, 175, 204, 89, 175, 204, 118, 175, 204, 103, 175, 204, 132,
- 175, 204, 78, 175, 204, 108, 175, 204, 93, 175, 204, 122, 175, 204, 85,
- 175, 204, 99, 175, 204, 129, 175, 204, 81, 175, 204, 111, 175, 204, 95,
- 175, 204, 125, 175, 204, 88, 175, 204, 117, 175, 204, 102, 175, 204, 131,
- 175, 204, 76, 175, 204, 106, 175, 204, 91, 175, 204, 120, 175, 204, 83,
- 175, 204, 113, 175, 204, 97, 175, 204, 127, 175, 204, 79, 175, 204, 109,
- 175, 204, 123, 175, 204, 86, 175, 204, 115, 175, 204, 100, 175, 204, 130,
- 175, 204, 77, 175, 204, 107, 175, 204, 92, 175, 204, 121, 175, 204, 84,
- 175, 204, 114, 175, 204, 98, 175, 204, 128, 175, 204, 80, 175, 204, 110,
- 175, 204, 94, 175, 204, 124, 175, 204, 87, 175, 204, 116, 175, 204, 101,
- 106, 46, 175, 237, 11, 106, 85, 46, 115, 106, 246, 137, 106, 46, 175,
- 237, 11, 106, 85, 46, 115, 106, 207, 101, 106, 46, 175, 237, 11, 113, 85,
- 46, 115, 106, 246, 137, 106, 46, 175, 237, 11, 113, 85, 46, 115, 106,
- 207, 101, 106, 46, 175, 237, 11, 113, 46, 115, 106, 246, 137, 106, 51,
- 175, 237, 11, 113, 85, 46, 115, 113, 246, 137, 106, 51, 175, 237, 11,
- 113, 85, 46, 115, 113, 207, 101, 106, 51, 175, 237, 11, 106, 85, 46, 115,
- 113, 246, 137, 106, 51, 175, 237, 11, 106, 85, 46, 115, 113, 207, 101,
- 106, 51, 175, 237, 11, 106, 46, 115, 113, 246, 137, 106, 51, 175, 237,
- 11, 106, 85, 46, 115, 113, 85, 207, 101, 106, 51, 175, 237, 11, 106, 246,
- 138, 115, 106, 85, 207, 101, 106, 51, 175, 237, 11, 106, 46, 115, 106,
- 85, 207, 101, 106, 51, 175, 237, 11, 106, 246, 138, 115, 113, 85, 207,
- 101, 106, 51, 175, 237, 11, 106, 46, 115, 113, 85, 207, 101, 106, 51,
- 175, 237, 11, 106, 246, 138, 115, 113, 207, 101, 106, 46, 175, 237, 11,
- 113, 246, 138, 115, 113, 85, 207, 101, 106, 46, 175, 237, 11, 113, 46,
- 115, 113, 85, 207, 101, 106, 46, 175, 237, 11, 113, 246, 138, 115, 106,
- 85, 207, 101, 106, 46, 175, 237, 11, 113, 46, 115, 106, 85, 207, 101,
- 106, 46, 175, 237, 11, 113, 246, 138, 115, 106, 207, 101, 106, 46, 175,
- 237, 11, 113, 85, 46, 115, 106, 85, 207, 101, 113, 51, 175, 237, 11, 106,
- 85, 46, 115, 106, 246, 137, 113, 51, 175, 237, 11, 106, 85, 46, 115, 106,
- 207, 101, 113, 51, 175, 237, 11, 113, 85, 46, 115, 106, 246, 137, 113,
- 51, 175, 237, 11, 113, 85, 46, 115, 106, 207, 101, 113, 51, 175, 237, 11,
- 113, 46, 115, 106, 246, 137, 113, 46, 175, 237, 11, 113, 85, 46, 115,
- 113, 246, 137, 113, 46, 175, 237, 11, 113, 85, 46, 115, 113, 207, 101,
- 113, 46, 175, 237, 11, 106, 85, 46, 115, 113, 246, 137, 113, 46, 175,
- 237, 11, 106, 85, 46, 115, 113, 207, 101, 113, 46, 175, 237, 11, 106, 46,
- 115, 113, 246, 137, 113, 46, 175, 237, 11, 106, 85, 46, 115, 113, 85,
- 207, 101, 113, 46, 175, 237, 11, 106, 246, 138, 115, 106, 85, 207, 101,
- 113, 46, 175, 237, 11, 106, 46, 115, 106, 85, 207, 101, 113, 46, 175,
- 237, 11, 106, 246, 138, 115, 113, 85, 207, 101, 113, 46, 175, 237, 11,
- 106, 46, 115, 113, 85, 207, 101, 113, 46, 175, 237, 11, 106, 246, 138,
- 115, 113, 207, 101, 113, 51, 175, 237, 11, 113, 246, 138, 115, 113, 85,
- 207, 101, 113, 51, 175, 237, 11, 113, 46, 115, 113, 85, 207, 101, 113,
- 51, 175, 237, 11, 113, 246, 138, 115, 106, 85, 207, 101, 113, 51, 175,
- 237, 11, 113, 46, 115, 106, 85, 207, 101, 113, 51, 175, 237, 11, 113,
- 246, 138, 115, 106, 207, 101, 113, 51, 175, 237, 11, 113, 85, 46, 115,
- 106, 85, 207, 101, 113, 26, 51, 26, 106, 198, 182, 112, 208, 166, 247,
- 238, 46, 26, 106, 26, 51, 198, 182, 112, 208, 166, 247, 238, 113, 26, 46,
- 26, 106, 198, 182, 112, 208, 166, 247, 238, 46, 26, 113, 26, 51, 198,
- 182, 112, 208, 166, 247, 238, 46, 198, 182, 90, 208, 168, 247, 238, 113,
- 198, 182, 90, 208, 168, 247, 238, 51, 198, 182, 90, 208, 168, 247, 238,
- 106, 198, 182, 90, 208, 168, 247, 238, 84, 90, 234, 144, 247, 236, 84,
- 90, 234, 144, 247, 235, 84, 90, 234, 144, 247, 234, 84, 90, 234, 144,
- 247, 233, 84, 90, 234, 144, 247, 232, 84, 90, 234, 144, 247, 231, 229, 5,
- 90, 234, 144, 247, 236, 229, 5, 90, 234, 144, 247, 235, 229, 5, 90, 234,
- 144, 247, 234, 229, 5, 90, 234, 144, 247, 233, 229, 5, 90, 234, 144, 247,
- 232, 229, 5, 90, 234, 144, 247, 231, 46, 26, 106, 90, 234, 144, 247, 238,
- 46, 26, 113, 90, 234, 144, 247, 238, 51, 26, 113, 90, 234, 144, 247, 238,
- 51, 26, 106, 90, 234, 144, 247, 238, 113, 26, 106, 90, 234, 144, 247,
- 238, 229, 5, 90, 234, 144, 247, 237, 113, 90, 208, 168, 247, 238, 113,
- 112, 234, 142, 247, 238, 113, 232, 214, 234, 142, 247, 238, 113, 112,
- 208, 166, 247, 238, 113, 204, 146, 234, 142, 247, 238, 51, 90, 208, 168,
- 247, 238, 51, 112, 234, 142, 247, 238, 51, 232, 214, 234, 142, 247, 238,
- 51, 112, 208, 166, 247, 238, 51, 204, 146, 234, 142, 247, 238, 46, 138,
- 217, 31, 204, 52, 51, 138, 217, 31, 204, 52, 113, 138, 217, 31, 204, 52,
- 106, 138, 217, 31, 204, 52, 223, 123, 217, 31, 204, 52, 113, 138, 175,
- 26, 106, 138, 223, 123, 217, 31, 204, 52, 113, 138, 223, 123, 217, 31,
- 204, 53, 26, 106, 138, 247, 238, 46, 138, 223, 123, 217, 31, 204, 53, 26,
- 51, 138, 247, 238, 242, 242, 247, 217, 232, 249, 223, 123, 242, 242, 247,
- 217, 232, 249, 87, 229, 5, 232, 249, 113, 46, 115, 106, 51, 232, 249,
- 113, 51, 115, 106, 46, 232, 249, 113, 26, 106, 198, 182, 138, 247, 238,
- 46, 26, 51, 198, 182, 138, 247, 238, 113, 46, 198, 182, 217, 31, 204, 52,
- 113, 51, 198, 182, 217, 31, 204, 52, 106, 51, 198, 182, 217, 31, 204, 52,
- 106, 46, 198, 182, 217, 31, 204, 52, 105, 119, 152, 237, 11, 113, 246,
- 138, 115, 85, 220, 28, 105, 119, 152, 237, 11, 113, 246, 138, 115, 85,
- 207, 101, 105, 119, 152, 237, 11, 85, 46, 115, 106, 246, 137, 105, 119,
- 152, 237, 11, 85, 51, 115, 106, 246, 137, 105, 119, 152, 237, 11, 113,
- 246, 138, 115, 85, 46, 115, 106, 246, 137, 105, 119, 152, 237, 11, 113,
- 246, 138, 115, 85, 51, 115, 106, 246, 137, 105, 119, 152, 237, 11, 85,
- 46, 115, 106, 246, 138, 115, 85, 207, 101, 105, 119, 152, 237, 11, 85,
- 46, 115, 113, 246, 138, 115, 85, 207, 101, 105, 119, 152, 237, 11, 113,
- 246, 138, 115, 85, 46, 26, 85, 51, 115, 106, 246, 137, 105, 119, 152,
- 237, 11, 113, 246, 138, 115, 85, 51, 26, 85, 46, 115, 106, 246, 137, 105,
- 119, 152, 237, 11, 113, 246, 138, 115, 85, 51, 115, 106, 246, 138, 115,
- 85, 220, 28, 105, 119, 152, 237, 11, 113, 246, 138, 115, 85, 46, 115,
- 106, 246, 138, 115, 85, 207, 101, 105, 119, 152, 237, 11, 85, 46, 115,
- 113, 246, 138, 115, 85, 51, 115, 106, 246, 137, 105, 119, 152, 237, 11,
- 85, 51, 115, 113, 246, 138, 115, 85, 46, 115, 106, 246, 137, 105, 119,
- 152, 237, 11, 237, 4, 105, 119, 152, 229, 5, 4, 84, 111, 250, 76, 209,
- 189, 223, 123, 242, 244, 77, 46, 138, 206, 192, 217, 160, 51, 138, 206,
- 192, 217, 160, 223, 123, 235, 92, 61, 4, 199, 74, 220, 18, 114, 61, 26,
- 113, 26, 106, 90, 234, 144, 247, 238, 94, 61, 26, 113, 26, 106, 90, 234,
- 144, 247, 238, 235, 92, 61, 26, 51, 90, 234, 144, 247, 238, 197, 30, 61,
- 26, 51, 90, 234, 144, 247, 238, 46, 138, 232, 160, 51, 138, 232, 160,
- 195, 244, 33, 238, 183, 51, 211, 184, 108, 236, 114, 214, 199, 237, 11,
- 238, 183, 214, 199, 237, 11, 85, 51, 115, 106, 246, 137, 214, 199, 237,
- 11, 237, 4, 62, 87, 206, 52, 4, 207, 7, 238, 222, 46, 199, 192, 62, 51,
- 209, 188, 223, 176, 85, 199, 192, 62, 51, 209, 188, 223, 176, 51, 199,
- 192, 62, 51, 209, 188, 223, 176, 214, 199, 108, 208, 159, 77, 201, 250,
- 233, 0, 201, 250, 233, 1, 4, 250, 89, 208, 38, 201, 250, 233, 1, 220, 35,
- 220, 28, 201, 250, 233, 1, 220, 35, 207, 101, 201, 250, 233, 1, 4, 235,
- 79, 62, 197, 40, 242, 220, 205, 197, 17, 192, 76, 205, 197, 17, 101, 205,
- 197, 17, 104, 205, 197, 17, 133, 205, 197, 17, 134, 205, 197, 17, 151,
- 205, 197, 17, 170, 205, 197, 17, 179, 205, 197, 17, 174, 205, 197, 17,
- 182, 12, 15, 228, 38, 12, 15, 228, 37, 12, 15, 228, 36, 12, 15, 228, 35,
- 12, 15, 228, 34, 12, 15, 228, 33, 12, 15, 228, 32, 12, 15, 228, 31, 12,
- 15, 228, 30, 12, 15, 228, 29, 12, 15, 228, 28, 12, 15, 228, 27, 12, 15,
- 228, 26, 12, 15, 228, 25, 12, 15, 228, 24, 12, 15, 228, 23, 12, 15, 228,
- 22, 12, 15, 228, 21, 12, 15, 228, 20, 12, 15, 228, 19, 12, 15, 228, 18,
- 12, 15, 228, 17, 12, 15, 228, 16, 12, 15, 228, 15, 12, 15, 228, 14, 12,
- 15, 228, 13, 12, 15, 228, 12, 12, 15, 228, 11, 12, 15, 228, 10, 12, 15,
- 228, 9, 12, 15, 228, 8, 12, 15, 228, 7, 12, 15, 228, 6, 12, 15, 228, 5,
- 12, 15, 228, 4, 12, 15, 228, 3, 12, 15, 228, 2, 12, 15, 228, 1, 12, 15,
- 228, 0, 12, 15, 227, 255, 12, 15, 227, 254, 12, 15, 227, 253, 12, 15,
- 227, 252, 12, 15, 227, 251, 12, 15, 227, 250, 12, 15, 227, 249, 12, 15,
- 227, 248, 12, 15, 227, 247, 12, 15, 227, 246, 12, 15, 227, 245, 12, 15,
- 227, 244, 12, 15, 227, 243, 12, 15, 227, 242, 12, 15, 227, 241, 12, 15,
- 227, 240, 12, 15, 227, 239, 12, 15, 227, 238, 12, 15, 227, 237, 12, 15,
- 227, 236, 12, 15, 227, 235, 12, 15, 227, 234, 12, 15, 227, 233, 12, 15,
- 227, 232, 12, 15, 227, 231, 12, 15, 227, 230, 12, 15, 227, 229, 12, 15,
- 227, 228, 12, 15, 227, 227, 12, 15, 227, 226, 12, 15, 227, 225, 12, 15,
- 227, 224, 12, 15, 227, 223, 12, 15, 227, 222, 12, 15, 227, 221, 12, 15,
- 227, 220, 12, 15, 227, 219, 12, 15, 227, 218, 12, 15, 227, 217, 12, 15,
- 227, 216, 12, 15, 227, 215, 12, 15, 227, 214, 12, 15, 227, 213, 12, 15,
- 227, 212, 12, 15, 227, 211, 12, 15, 227, 210, 12, 15, 227, 209, 12, 15,
- 227, 208, 12, 15, 227, 207, 12, 15, 227, 206, 12, 15, 227, 205, 12, 15,
- 227, 204, 12, 15, 227, 203, 12, 15, 227, 202, 12, 15, 227, 201, 12, 15,
- 227, 200, 12, 15, 227, 199, 12, 15, 227, 198, 12, 15, 227, 197, 12, 15,
- 227, 196, 12, 15, 227, 195, 12, 15, 227, 194, 12, 15, 227, 193, 12, 15,
- 227, 192, 12, 15, 227, 191, 12, 15, 227, 190, 12, 15, 227, 189, 12, 15,
- 227, 188, 12, 15, 227, 187, 12, 15, 227, 186, 12, 15, 227, 185, 12, 15,
- 227, 184, 12, 15, 227, 183, 12, 15, 227, 182, 12, 15, 227, 181, 12, 15,
- 227, 180, 12, 15, 227, 179, 12, 15, 227, 178, 12, 15, 227, 177, 12, 15,
- 227, 176, 12, 15, 227, 175, 12, 15, 227, 174, 12, 15, 227, 173, 12, 15,
- 227, 172, 12, 15, 227, 171, 12, 15, 227, 170, 12, 15, 227, 169, 12, 15,
- 227, 168, 12, 15, 227, 167, 12, 15, 227, 166, 12, 15, 227, 165, 12, 15,
- 227, 164, 12, 15, 227, 163, 12, 15, 227, 162, 12, 15, 227, 161, 12, 15,
- 227, 160, 12, 15, 227, 159, 12, 15, 227, 158, 12, 15, 227, 157, 12, 15,
- 227, 156, 12, 15, 227, 155, 12, 15, 227, 154, 12, 15, 227, 153, 12, 15,
- 227, 152, 12, 15, 227, 151, 12, 15, 227, 150, 12, 15, 227, 149, 12, 15,
- 227, 148, 12, 15, 227, 147, 12, 15, 227, 146, 12, 15, 227, 145, 12, 15,
- 227, 144, 12, 15, 227, 143, 12, 15, 227, 142, 12, 15, 227, 141, 12, 15,
- 227, 140, 12, 15, 227, 139, 12, 15, 227, 138, 12, 15, 227, 137, 12, 15,
- 227, 136, 12, 15, 227, 135, 12, 15, 227, 134, 12, 15, 227, 133, 12, 15,
- 227, 132, 12, 15, 227, 131, 12, 15, 227, 130, 12, 15, 227, 129, 12, 15,
- 227, 128, 12, 15, 227, 127, 12, 15, 227, 126, 12, 15, 227, 125, 12, 15,
- 227, 124, 12, 15, 227, 123, 12, 15, 227, 122, 12, 15, 227, 121, 12, 15,
- 227, 120, 12, 15, 227, 119, 12, 15, 227, 118, 12, 15, 227, 117, 12, 15,
- 227, 116, 12, 15, 227, 115, 12, 15, 227, 114, 12, 15, 227, 113, 12, 15,
- 227, 112, 12, 15, 227, 111, 12, 15, 227, 110, 12, 15, 227, 109, 12, 15,
- 227, 108, 12, 15, 227, 107, 12, 15, 227, 106, 12, 15, 227, 105, 12, 15,
- 227, 104, 12, 15, 227, 103, 12, 15, 227, 102, 12, 15, 227, 101, 12, 15,
- 227, 100, 12, 15, 227, 99, 12, 15, 227, 98, 12, 15, 227, 97, 12, 15, 227,
- 96, 12, 15, 227, 95, 12, 15, 227, 94, 12, 15, 227, 93, 12, 15, 227, 92,
- 12, 15, 227, 91, 12, 15, 227, 90, 12, 15, 227, 89, 12, 15, 227, 88, 12,
- 15, 227, 87, 12, 15, 227, 86, 12, 15, 227, 85, 12, 15, 227, 84, 12, 15,
- 227, 83, 12, 15, 227, 82, 12, 15, 227, 81, 12, 15, 227, 80, 12, 15, 227,
- 79, 12, 15, 227, 78, 12, 15, 227, 77, 12, 15, 227, 76, 12, 15, 227, 75,
- 12, 15, 227, 74, 12, 15, 227, 73, 12, 15, 227, 72, 12, 15, 227, 71, 12,
- 15, 227, 70, 12, 15, 227, 69, 12, 15, 227, 68, 12, 15, 227, 67, 12, 15,
- 227, 66, 12, 15, 227, 65, 12, 15, 227, 64, 12, 15, 227, 63, 12, 15, 227,
- 62, 12, 15, 227, 61, 12, 15, 227, 60, 12, 15, 227, 59, 12, 15, 227, 58,
- 12, 15, 227, 57, 12, 15, 227, 56, 12, 15, 227, 55, 12, 15, 227, 54, 12,
- 15, 227, 53, 12, 15, 227, 52, 12, 15, 227, 51, 12, 15, 227, 50, 12, 15,
- 227, 49, 12, 15, 227, 48, 12, 15, 227, 47, 12, 15, 227, 46, 12, 15, 227,
- 45, 12, 15, 227, 44, 12, 15, 227, 43, 12, 15, 227, 42, 12, 15, 227, 41,
- 12, 15, 227, 40, 12, 15, 227, 39, 12, 15, 227, 38, 12, 15, 227, 37, 12,
- 15, 227, 36, 12, 15, 227, 35, 12, 15, 227, 34, 12, 15, 227, 33, 12, 15,
- 227, 32, 12, 15, 227, 31, 12, 15, 227, 30, 12, 15, 227, 29, 12, 15, 227,
- 28, 12, 15, 227, 27, 12, 15, 227, 26, 12, 15, 227, 25, 12, 15, 227, 24,
- 12, 15, 227, 23, 12, 15, 227, 22, 12, 15, 227, 21, 12, 15, 227, 20, 12,
- 15, 227, 19, 12, 15, 227, 18, 12, 15, 227, 17, 12, 15, 227, 16, 12, 15,
- 227, 15, 12, 15, 227, 14, 12, 15, 227, 13, 12, 15, 227, 12, 12, 15, 227,
- 11, 12, 15, 227, 10, 12, 15, 227, 9, 12, 15, 227, 8, 12, 15, 227, 7, 12,
- 15, 227, 6, 12, 15, 227, 5, 12, 15, 227, 4, 12, 15, 227, 3, 12, 15, 227,
- 2, 12, 15, 227, 1, 12, 15, 227, 0, 12, 15, 226, 255, 12, 15, 226, 254,
- 12, 15, 226, 253, 12, 15, 226, 252, 12, 15, 226, 251, 12, 15, 226, 250,
- 12, 15, 226, 249, 12, 15, 226, 248, 12, 15, 226, 247, 12, 15, 226, 246,
- 12, 15, 226, 245, 12, 15, 226, 244, 12, 15, 226, 243, 12, 15, 226, 242,
- 12, 15, 226, 241, 12, 15, 226, 240, 12, 15, 226, 239, 12, 15, 226, 238,
- 12, 15, 226, 237, 12, 15, 226, 236, 12, 15, 226, 235, 12, 15, 226, 234,
- 12, 15, 226, 233, 12, 15, 226, 232, 12, 15, 226, 231, 12, 15, 226, 230,
- 12, 15, 226, 229, 12, 15, 226, 228, 12, 15, 226, 227, 12, 15, 226, 226,
- 12, 15, 226, 225, 12, 15, 226, 224, 12, 15, 226, 223, 12, 15, 226, 222,
- 12, 15, 226, 221, 12, 15, 226, 220, 12, 15, 226, 219, 12, 15, 226, 218,
- 12, 15, 226, 217, 12, 15, 226, 216, 12, 15, 226, 215, 12, 15, 226, 214,
- 12, 15, 226, 213, 12, 15, 226, 212, 12, 15, 226, 211, 12, 15, 226, 210,
- 12, 15, 226, 209, 12, 15, 226, 208, 12, 15, 226, 207, 12, 15, 226, 206,
- 12, 15, 226, 205, 12, 15, 226, 204, 12, 15, 226, 203, 12, 15, 226, 202,
- 12, 15, 226, 201, 12, 15, 226, 200, 12, 15, 226, 199, 12, 15, 226, 198,
- 12, 15, 226, 197, 12, 15, 226, 196, 12, 15, 226, 195, 12, 15, 226, 194,
- 12, 15, 226, 193, 12, 15, 226, 192, 12, 15, 226, 191, 12, 15, 226, 190,
- 12, 15, 226, 189, 12, 15, 226, 188, 12, 15, 226, 187, 12, 15, 226, 186,
- 12, 15, 226, 185, 12, 15, 226, 184, 12, 15, 226, 183, 12, 15, 226, 182,
- 12, 15, 226, 181, 12, 15, 226, 180, 12, 15, 226, 179, 12, 15, 226, 178,
- 12, 15, 226, 177, 12, 15, 226, 176, 12, 15, 226, 175, 12, 15, 226, 174,
- 12, 15, 226, 173, 12, 15, 226, 172, 12, 15, 226, 171, 12, 15, 226, 170,
- 12, 15, 226, 169, 12, 15, 226, 168, 12, 15, 226, 167, 12, 15, 226, 166,
- 12, 15, 226, 165, 12, 15, 226, 164, 12, 15, 226, 163, 12, 15, 226, 162,
- 12, 15, 226, 161, 12, 15, 226, 160, 12, 15, 226, 159, 12, 15, 226, 158,
- 12, 15, 226, 157, 12, 15, 226, 156, 12, 15, 226, 155, 12, 15, 226, 154,
- 12, 15, 226, 153, 12, 15, 226, 152, 12, 15, 226, 151, 12, 15, 226, 150,
- 12, 15, 226, 149, 12, 15, 226, 148, 12, 15, 226, 147, 12, 15, 226, 146,
- 12, 15, 226, 145, 12, 15, 226, 144, 12, 15, 226, 143, 12, 15, 226, 142,
- 12, 15, 226, 141, 12, 15, 226, 140, 12, 15, 226, 139, 12, 15, 226, 138,
- 12, 15, 226, 137, 12, 15, 226, 136, 12, 15, 226, 135, 12, 15, 226, 134,
- 12, 15, 226, 133, 12, 15, 226, 132, 12, 15, 226, 131, 12, 15, 226, 130,
- 12, 15, 226, 129, 12, 15, 226, 128, 12, 15, 226, 127, 12, 15, 226, 126,
- 12, 15, 226, 125, 12, 15, 226, 124, 12, 15, 226, 123, 12, 15, 226, 122,
- 12, 15, 226, 121, 12, 15, 226, 120, 12, 15, 226, 119, 12, 15, 226, 118,
- 12, 15, 226, 117, 12, 15, 226, 116, 12, 15, 226, 115, 12, 15, 226, 114,
- 12, 15, 226, 113, 12, 15, 226, 112, 12, 15, 226, 111, 12, 15, 226, 110,
- 12, 15, 226, 109, 12, 15, 226, 108, 12, 15, 226, 107, 12, 15, 226, 106,
- 12, 15, 226, 105, 12, 15, 226, 104, 12, 15, 226, 103, 12, 15, 226, 102,
- 12, 15, 226, 101, 12, 15, 226, 100, 12, 15, 226, 99, 12, 15, 226, 98, 12,
- 15, 226, 97, 12, 15, 226, 96, 12, 15, 226, 95, 12, 15, 226, 94, 12, 15,
- 226, 93, 12, 15, 226, 92, 12, 15, 226, 91, 12, 15, 226, 90, 12, 15, 226,
- 89, 12, 15, 226, 88, 12, 15, 226, 87, 12, 15, 226, 86, 12, 15, 226, 85,
- 12, 15, 226, 84, 12, 15, 226, 83, 12, 15, 226, 82, 12, 15, 226, 81, 12,
- 15, 226, 80, 12, 15, 226, 79, 12, 15, 226, 78, 12, 15, 226, 77, 12, 15,
- 226, 76, 12, 15, 226, 75, 12, 15, 226, 74, 12, 15, 226, 73, 12, 15, 226,
- 72, 12, 15, 226, 71, 12, 15, 226, 70, 12, 15, 226, 69, 12, 15, 226, 68,
- 12, 15, 226, 67, 12, 15, 226, 66, 12, 15, 226, 65, 12, 15, 226, 64, 12,
- 15, 226, 63, 12, 15, 226, 62, 12, 15, 226, 61, 12, 15, 226, 60, 12, 15,
- 226, 59, 12, 15, 226, 58, 12, 15, 226, 57, 12, 15, 226, 56, 12, 15, 226,
- 55, 12, 15, 226, 54, 12, 15, 226, 53, 12, 15, 226, 52, 12, 15, 226, 51,
- 12, 15, 226, 50, 12, 15, 226, 49, 12, 15, 226, 48, 12, 15, 226, 47, 12,
- 15, 226, 46, 12, 15, 226, 45, 12, 15, 226, 44, 12, 15, 226, 43, 12, 15,
- 226, 42, 12, 15, 226, 41, 12, 15, 226, 40, 12, 15, 226, 39, 12, 15, 226,
- 38, 12, 15, 226, 37, 12, 15, 226, 36, 12, 15, 226, 35, 12, 15, 226, 34,
- 12, 15, 226, 33, 12, 15, 226, 32, 12, 15, 226, 31, 12, 15, 226, 30, 12,
- 15, 226, 29, 12, 15, 226, 28, 12, 15, 226, 27, 12, 15, 226, 26, 12, 15,
- 226, 25, 12, 15, 226, 24, 12, 15, 226, 23, 12, 15, 226, 22, 12, 15, 226,
- 21, 12, 15, 226, 20, 12, 15, 226, 19, 12, 15, 226, 18, 12, 15, 226, 17,
- 12, 15, 226, 16, 12, 15, 226, 15, 12, 15, 226, 14, 12, 15, 226, 13, 12,
- 15, 226, 12, 12, 15, 226, 11, 12, 15, 226, 10, 12, 15, 226, 9, 220, 79,
- 200, 155, 190, 202, 160, 190, 233, 204, 77, 190, 208, 142, 77, 190, 31,
- 57, 190, 236, 127, 57, 190, 210, 133, 57, 190, 250, 229, 190, 250, 147,
- 190, 46, 210, 230, 190, 51, 210, 230, 190, 250, 37, 190, 102, 57, 190,
- 242, 38, 190, 228, 110, 190, 232, 71, 201, 238, 190, 202, 189, 190, 17,
- 192, 76, 190, 17, 101, 190, 17, 104, 190, 17, 133, 190, 17, 134, 190, 17,
- 151, 190, 17, 170, 190, 17, 179, 190, 17, 174, 190, 17, 182, 190, 242,
- 47, 190, 204, 180, 190, 219, 240, 57, 190, 234, 30, 57, 190, 230, 204,
- 57, 190, 208, 159, 77, 190, 242, 36, 250, 26, 190, 8, 6, 1, 64, 190, 8,
- 6, 1, 249, 226, 190, 8, 6, 1, 247, 52, 190, 8, 6, 1, 238, 95, 190, 8, 6,
- 1, 71, 190, 8, 6, 1, 233, 163, 190, 8, 6, 1, 232, 44, 190, 8, 6, 1, 230,
- 124, 190, 8, 6, 1, 70, 190, 8, 6, 1, 223, 65, 190, 8, 6, 1, 222, 184,
- 190, 8, 6, 1, 165, 190, 8, 6, 1, 218, 236, 190, 8, 6, 1, 215, 151, 190,
- 8, 6, 1, 74, 190, 8, 6, 1, 211, 93, 190, 8, 6, 1, 208, 247, 190, 8, 6, 1,
- 150, 190, 8, 6, 1, 206, 158, 190, 8, 6, 1, 200, 228, 190, 8, 6, 1, 68,
- 190, 8, 6, 1, 196, 236, 190, 8, 6, 1, 194, 202, 190, 8, 6, 1, 193, 223,
- 190, 8, 6, 1, 193, 148, 190, 8, 6, 1, 192, 155, 190, 46, 50, 186, 190,
- 207, 169, 202, 189, 190, 51, 50, 186, 190, 242, 122, 251, 143, 190, 132,
- 219, 175, 190, 230, 211, 251, 143, 190, 8, 2, 1, 64, 190, 8, 2, 1, 249,
- 226, 190, 8, 2, 1, 247, 52, 190, 8, 2, 1, 238, 95, 190, 8, 2, 1, 71, 190,
- 8, 2, 1, 233, 163, 190, 8, 2, 1, 232, 44, 190, 8, 2, 1, 230, 124, 190, 8,
- 2, 1, 70, 190, 8, 2, 1, 223, 65, 190, 8, 2, 1, 222, 184, 190, 8, 2, 1,
- 165, 190, 8, 2, 1, 218, 236, 190, 8, 2, 1, 215, 151, 190, 8, 2, 1, 74,
- 190, 8, 2, 1, 211, 93, 190, 8, 2, 1, 208, 247, 190, 8, 2, 1, 150, 190, 8,
- 2, 1, 206, 158, 190, 8, 2, 1, 200, 228, 190, 8, 2, 1, 68, 190, 8, 2, 1,
- 196, 236, 190, 8, 2, 1, 194, 202, 190, 8, 2, 1, 193, 223, 190, 8, 2, 1,
- 193, 148, 190, 8, 2, 1, 192, 155, 190, 46, 238, 138, 186, 190, 84, 219,
- 175, 190, 51, 238, 138, 186, 190, 199, 90, 246, 242, 200, 155, 65, 205,
- 110, 65, 205, 99, 65, 205, 88, 65, 205, 76, 65, 205, 65, 65, 205, 54, 65,
- 205, 43, 65, 205, 32, 65, 205, 21, 65, 205, 13, 65, 205, 12, 65, 205, 11,
- 65, 205, 10, 65, 205, 8, 65, 205, 7, 65, 205, 6, 65, 205, 5, 65, 205, 4,
- 65, 205, 3, 65, 205, 2, 65, 205, 1, 65, 205, 0, 65, 204, 255, 65, 204,
- 253, 65, 204, 252, 65, 204, 251, 65, 204, 250, 65, 204, 249, 65, 204,
- 248, 65, 204, 247, 65, 204, 246, 65, 204, 245, 65, 204, 244, 65, 204,
- 242, 65, 204, 241, 65, 204, 240, 65, 204, 239, 65, 204, 238, 65, 204,
- 237, 65, 204, 236, 65, 204, 235, 65, 204, 234, 65, 204, 233, 65, 204,
- 231, 65, 204, 230, 65, 204, 229, 65, 204, 228, 65, 204, 227, 65, 204,
- 226, 65, 204, 225, 65, 204, 224, 65, 204, 223, 65, 204, 222, 65, 204,
- 220, 65, 204, 219, 65, 204, 218, 65, 204, 217, 65, 204, 216, 65, 204,
- 215, 65, 204, 214, 65, 204, 213, 65, 204, 212, 65, 204, 211, 65, 204,
- 209, 65, 204, 208, 65, 204, 207, 65, 204, 206, 65, 204, 205, 65, 204,
- 204, 65, 204, 203, 65, 204, 202, 65, 204, 201, 65, 204, 200, 65, 204,
- 198, 65, 204, 197, 65, 204, 196, 65, 204, 195, 65, 204, 194, 65, 204,
- 193, 65, 204, 192, 65, 204, 191, 65, 204, 190, 65, 204, 189, 65, 205,
- 186, 65, 205, 185, 65, 205, 184, 65, 205, 183, 65, 205, 182, 65, 205,
- 181, 65, 205, 180, 65, 205, 179, 65, 205, 178, 65, 205, 177, 65, 205,
- 175, 65, 205, 174, 65, 205, 173, 65, 205, 172, 65, 205, 171, 65, 205,
- 170, 65, 205, 169, 65, 205, 168, 65, 205, 167, 65, 205, 166, 65, 205,
- 164, 65, 205, 163, 65, 205, 162, 65, 205, 161, 65, 205, 160, 65, 205,
- 159, 65, 205, 158, 65, 205, 157, 65, 205, 156, 65, 205, 155, 65, 205,
- 153, 65, 205, 152, 65, 205, 151, 65, 205, 150, 65, 205, 149, 65, 205,
- 148, 65, 205, 147, 65, 205, 146, 65, 205, 145, 65, 205, 144, 65, 205,
- 142, 65, 205, 141, 65, 205, 140, 65, 205, 139, 65, 205, 138, 65, 205,
- 137, 65, 205, 136, 65, 205, 135, 65, 205, 134, 65, 205, 133, 65, 205,
- 131, 65, 205, 130, 65, 205, 129, 65, 205, 128, 65, 205, 127, 65, 205,
- 126, 65, 205, 125, 65, 205, 124, 65, 205, 123, 65, 205, 122, 65, 205,
- 120, 65, 205, 119, 65, 205, 118, 65, 205, 117, 65, 205, 116, 65, 205,
- 115, 65, 205, 114, 65, 205, 113, 65, 205, 112, 65, 205, 111, 65, 205,
- 109, 65, 205, 108, 65, 205, 107, 65, 205, 106, 65, 205, 105, 65, 205,
- 104, 65, 205, 103, 65, 205, 102, 65, 205, 101, 65, 205, 100, 65, 205, 98,
- 65, 205, 97, 65, 205, 96, 65, 205, 95, 65, 205, 94, 65, 205, 93, 65, 205,
- 92, 65, 205, 91, 65, 205, 90, 65, 205, 89, 65, 205, 87, 65, 205, 86, 65,
- 205, 85, 65, 205, 84, 65, 205, 83, 65, 205, 82, 65, 205, 81, 65, 205, 80,
- 65, 205, 79, 65, 205, 78, 65, 205, 75, 65, 205, 74, 65, 205, 73, 65, 205,
- 72, 65, 205, 71, 65, 205, 70, 65, 205, 69, 65, 205, 68, 65, 205, 67, 65,
- 205, 66, 65, 205, 64, 65, 205, 63, 65, 205, 62, 65, 205, 61, 65, 205, 60,
- 65, 205, 59, 65, 205, 58, 65, 205, 57, 65, 205, 56, 65, 205, 55, 65, 205,
- 53, 65, 205, 52, 65, 205, 51, 65, 205, 50, 65, 205, 49, 65, 205, 48, 65,
- 205, 47, 65, 205, 46, 65, 205, 45, 65, 205, 44, 65, 205, 42, 65, 205, 41,
- 65, 205, 40, 65, 205, 39, 65, 205, 38, 65, 205, 37, 65, 205, 36, 65, 205,
- 35, 65, 205, 34, 65, 205, 33, 65, 205, 31, 65, 205, 30, 65, 205, 29, 65,
- 205, 28, 65, 205, 27, 65, 205, 26, 65, 205, 25, 65, 205, 24, 65, 205, 23,
- 65, 205, 22, 65, 205, 20, 65, 205, 19, 65, 205, 18, 65, 205, 17, 65, 205,
- 16, 65, 205, 15, 65, 205, 14, 212, 238, 212, 240, 202, 15, 80, 229, 242,
- 202, 193, 202, 15, 80, 199, 244, 201, 186, 234, 80, 80, 199, 244, 233,
- 232, 234, 80, 80, 198, 208, 234, 42, 234, 66, 234, 67, 251, 134, 251,
- 135, 251, 23, 248, 89, 248, 246, 247, 130, 246, 100, 200, 161, 229, 5,
- 200, 161, 228, 186, 200, 166, 219, 176, 233, 38, 214, 177, 219, 175, 234,
- 80, 80, 219, 175, 219, 224, 213, 204, 234, 45, 219, 176, 200, 161, 84,
- 200, 161, 194, 225, 232, 136, 233, 38, 233, 15, 246, 203, 207, 172, 238,
- 202, 203, 232, 211, 125, 219, 97, 101, 202, 212, 203, 232, 223, 190, 219,
- 97, 192, 76, 203, 125, 237, 180, 219, 166, 234, 1, 236, 157, 237, 47,
- 238, 243, 101, 237, 169, 237, 47, 238, 243, 104, 237, 168, 237, 47, 238,
- 243, 133, 237, 167, 237, 47, 238, 243, 134, 237, 166, 214, 199, 251, 134,
- 215, 67, 200, 254, 223, 253, 201, 2, 234, 80, 80, 198, 209, 247, 238,
- 233, 239, 246, 241, 246, 243, 234, 80, 80, 217, 30, 234, 43, 201, 151,
- 201, 169, 234, 1, 234, 2, 223, 165, 204, 166, 134, 232, 251, 204, 165,
- 232, 81, 223, 165, 204, 166, 133, 230, 194, 204, 165, 230, 191, 223, 165,
- 204, 166, 104, 207, 248, 204, 165, 206, 224, 223, 165, 204, 166, 101,
- 197, 55, 204, 165, 197, 10, 202, 163, 237, 86, 237, 88, 211, 65, 246, 99,
- 211, 67, 139, 212, 7, 209, 104, 229, 8, 247, 155, 210, 123, 229, 202,
- 247, 169, 213, 143, 247, 155, 229, 202, 215, 28, 223, 176, 223, 178, 214,
- 170, 219, 175, 214, 197, 202, 15, 80, 205, 191, 250, 106, 202, 92, 234,
- 80, 80, 205, 191, 250, 106, 234, 4, 246, 100, 200, 162, 204, 151, 229, 5,
- 200, 162, 204, 151, 228, 183, 246, 100, 200, 162, 4, 222, 196, 229, 5,
- 200, 162, 4, 222, 196, 228, 184, 219, 176, 200, 162, 204, 151, 84, 200,
- 162, 204, 151, 194, 224, 210, 222, 219, 176, 232, 123, 210, 222, 219,
- 176, 235, 96, 209, 219, 210, 222, 219, 176, 248, 245, 210, 222, 219, 176,
- 197, 41, 209, 213, 207, 169, 219, 176, 233, 38, 207, 169, 223, 176, 207,
- 151, 203, 74, 203, 232, 104, 203, 71, 202, 94, 203, 74, 203, 232, 133,
- 203, 70, 202, 93, 237, 47, 238, 243, 201, 210, 237, 164, 209, 89, 197, 9,
- 101, 209, 89, 197, 7, 209, 50, 209, 89, 197, 9, 104, 209, 89, 197, 6,
- 209, 49, 204, 152, 198, 207, 202, 12, 201, 193, 246, 242, 246, 99, 246,
- 177, 216, 244, 194, 155, 215, 169, 202, 15, 80, 230, 179, 250, 106, 202,
- 15, 80, 209, 68, 250, 106, 202, 162, 234, 80, 80, 230, 179, 250, 106,
- 234, 80, 80, 209, 68, 250, 106, 234, 40, 202, 15, 80, 201, 210, 202, 178,
- 203, 74, 230, 216, 246, 100, 223, 124, 204, 69, 203, 74, 246, 100, 223,
- 124, 205, 239, 238, 243, 204, 162, 223, 124, 238, 163, 201, 211, 200, 15,
- 202, 35, 211, 175, 200, 243, 242, 37, 211, 142, 209, 90, 216, 243, 209,
- 201, 250, 143, 209, 83, 242, 37, 250, 160, 215, 16, 203, 134, 8, 6, 1,
- 231, 84, 8, 2, 1, 231, 84, 246, 120, 251, 2, 200, 248, 201, 157, 242, 48,
- 203, 16, 220, 28, 222, 115, 1, 219, 126, 220, 77, 1, 232, 165, 232, 156,
- 220, 77, 1, 232, 165, 233, 50, 220, 77, 1, 207, 55, 220, 77, 1, 219, 107,
- 86, 122, 247, 250, 203, 205, 231, 47, 216, 193, 207, 159, 30, 123, 193,
- 43, 30, 123, 193, 39, 30, 123, 202, 70, 30, 123, 193, 44, 232, 58, 232,
- 57, 232, 56, 215, 171, 191, 233, 191, 234, 191, 236, 219, 40, 207, 63,
- 219, 42, 207, 65, 210, 184, 219, 39, 207, 62, 213, 174, 216, 95, 194, 38,
- 219, 41, 207, 64, 232, 80, 210, 183, 194, 97, 234, 104, 232, 68, 216,
- 167, 211, 212, 197, 11, 109, 216, 167, 237, 186, 109, 114, 198, 184, 61,
- 4, 55, 84, 111, 94, 198, 184, 61, 4, 55, 84, 111, 11, 5, 223, 80, 77,
- 195, 225, 195, 114, 195, 46, 195, 35, 195, 24, 195, 13, 195, 2, 194, 247,
- 194, 236, 195, 224, 195, 213, 195, 202, 195, 191, 195, 180, 195, 169,
- 195, 158, 209, 105, 232, 136, 39, 84, 51, 62, 219, 247, 186, 247, 57,
- 211, 159, 77, 247, 209, 191, 235, 10, 3, 212, 248, 200, 19, 10, 3, 212,
- 248, 136, 212, 248, 247, 90, 136, 247, 89, 217, 36, 6, 1, 230, 124, 217,
- 36, 6, 1, 214, 167, 217, 36, 2, 1, 230, 124, 217, 36, 2, 1, 214, 167, 59,
- 1, 234, 252, 69, 35, 16, 232, 79, 203, 12, 242, 172, 196, 133, 195, 147,
- 195, 136, 195, 125, 195, 113, 195, 102, 195, 91, 195, 80, 195, 69, 195,
- 58, 195, 50, 195, 49, 195, 48, 195, 47, 195, 45, 195, 44, 195, 43, 195,
- 42, 195, 41, 195, 40, 195, 39, 195, 38, 195, 37, 195, 36, 195, 34, 195,
- 33, 195, 32, 195, 31, 195, 30, 195, 29, 195, 28, 195, 27, 195, 26, 195,
- 25, 195, 23, 195, 22, 195, 21, 195, 20, 195, 19, 195, 18, 195, 17, 195,
- 16, 195, 15, 195, 14, 195, 12, 195, 11, 195, 10, 195, 9, 195, 8, 195, 7,
- 195, 6, 195, 5, 195, 4, 195, 3, 195, 1, 195, 0, 194, 255, 194, 254, 194,
- 253, 194, 252, 194, 251, 194, 250, 194, 249, 194, 248, 194, 246, 194,
- 245, 194, 244, 194, 243, 194, 242, 194, 241, 194, 240, 194, 239, 194,
- 238, 194, 237, 194, 235, 194, 234, 194, 233, 194, 232, 194, 231, 194,
- 230, 194, 229, 194, 228, 194, 227, 194, 226, 195, 223, 195, 222, 195,
- 221, 195, 220, 195, 219, 195, 218, 195, 217, 195, 216, 195, 215, 195,
- 214, 195, 212, 195, 211, 195, 210, 195, 209, 195, 208, 195, 207, 195,
- 206, 195, 205, 195, 204, 195, 203, 195, 201, 195, 200, 195, 199, 195,
- 198, 195, 197, 195, 196, 195, 195, 195, 194, 195, 193, 195, 192, 195,
- 190, 195, 189, 195, 188, 195, 187, 195, 186, 195, 185, 195, 184, 195,
- 183, 195, 182, 195, 181, 195, 179, 195, 178, 195, 177, 195, 176, 195,
- 175, 195, 174, 195, 173, 195, 172, 195, 171, 195, 170, 195, 168, 195,
- 167, 195, 166, 195, 165, 195, 164, 195, 163, 195, 162, 195, 161, 195,
- 160, 195, 159, 195, 157, 195, 156, 195, 155, 195, 154, 195, 153, 195,
- 152, 195, 151, 195, 150, 195, 149, 195, 148, 195, 146, 195, 145, 195,
- 144, 195, 143, 195, 142, 195, 141, 195, 140, 195, 139, 195, 138, 195,
- 137, 195, 135, 195, 134, 195, 133, 195, 132, 195, 131, 195, 130, 195,
- 129, 195, 128, 195, 127, 195, 126, 195, 124, 195, 123, 195, 122, 195,
- 121, 195, 120, 195, 119, 195, 118, 195, 117, 195, 116, 195, 115, 195,
- 112, 195, 111, 195, 110, 195, 109, 195, 108, 195, 107, 195, 106, 195,
- 105, 195, 104, 195, 103, 195, 101, 195, 100, 195, 99, 195, 98, 195, 97,
- 195, 96, 195, 95, 195, 94, 195, 93, 195, 92, 195, 90, 195, 89, 195, 88,
- 195, 87, 195, 86, 195, 85, 195, 84, 195, 83, 195, 82, 195, 81, 195, 79,
- 195, 78, 195, 77, 195, 76, 195, 75, 195, 74, 195, 73, 195, 72, 195, 71,
- 195, 70, 195, 68, 195, 67, 195, 66, 195, 65, 195, 64, 195, 63, 195, 62,
- 195, 61, 195, 60, 195, 59, 195, 57, 195, 56, 195, 55, 195, 54, 195, 53,
- 195, 52, 195, 51, 221, 254, 31, 57, 221, 254, 250, 37, 221, 254, 17, 192,
- 76, 221, 254, 17, 101, 221, 254, 17, 104, 221, 254, 17, 133, 221, 254,
- 17, 134, 221, 254, 17, 151, 221, 254, 17, 170, 221, 254, 17, 179, 221,
- 254, 17, 174, 221, 254, 17, 182, 8, 6, 1, 41, 4, 217, 215, 26, 230, 210,
- 8, 2, 1, 41, 4, 217, 215, 26, 230, 210, 8, 6, 1, 228, 97, 4, 217, 215,
- 26, 230, 210, 8, 2, 1, 228, 97, 4, 217, 215, 26, 230, 210, 8, 6, 1, 124,
- 4, 217, 215, 26, 230, 210, 8, 2, 1, 124, 4, 217, 215, 26, 230, 210, 8, 6,
- 1, 234, 253, 4, 84, 219, 176, 63, 8, 2, 1, 234, 253, 4, 84, 219, 176, 63,
- 8, 6, 1, 234, 253, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 2, 1, 234,
- 253, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 6, 1, 234, 253, 4, 84,
- 219, 176, 248, 84, 26, 251, 129, 8, 2, 1, 234, 253, 4, 84, 219, 176, 248,
- 84, 26, 251, 129, 8, 6, 1, 185, 4, 84, 219, 176, 63, 8, 2, 1, 185, 4, 84,
- 219, 176, 63, 8, 6, 1, 185, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 2,
- 1, 185, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 6, 1, 185, 4, 84, 219,
- 176, 248, 84, 26, 251, 129, 8, 2, 1, 185, 4, 84, 219, 176, 248, 84, 26,
- 251, 129, 8, 6, 1, 206, 159, 4, 84, 219, 176, 63, 8, 2, 1, 206, 159, 4,
- 84, 219, 176, 63, 8, 6, 1, 234, 253, 4, 242, 122, 26, 217, 214, 8, 2, 1,
- 234, 253, 4, 242, 122, 26, 217, 214, 8, 6, 1, 234, 253, 4, 242, 122, 26,
- 246, 207, 8, 2, 1, 234, 253, 4, 242, 122, 26, 246, 207, 8, 2, 1, 228, 97,
- 4, 78, 95, 26, 251, 129, 8, 2, 1, 214, 168, 4, 199, 91, 58, 8, 6, 1, 41,
- 4, 211, 244, 26, 251, 129, 8, 2, 1, 41, 4, 211, 244, 26, 251, 129, 8, 6,
- 1, 41, 4, 211, 244, 26, 199, 90, 8, 2, 1, 41, 4, 211, 244, 26, 199, 90,
- 8, 6, 1, 234, 253, 4, 211, 244, 26, 251, 129, 8, 2, 1, 234, 253, 4, 211,
- 244, 26, 251, 129, 8, 6, 1, 234, 253, 4, 211, 244, 26, 199, 90, 8, 2, 1,
- 234, 253, 4, 211, 244, 26, 199, 90, 8, 6, 1, 234, 253, 4, 78, 95, 26,
- 251, 129, 8, 2, 1, 234, 253, 4, 78, 95, 26, 251, 129, 8, 6, 1, 234, 253,
- 4, 78, 95, 26, 199, 90, 8, 2, 1, 234, 253, 4, 78, 95, 26, 199, 90, 8, 2,
- 1, 228, 97, 4, 78, 95, 26, 230, 210, 8, 2, 1, 228, 97, 4, 78, 95, 26,
- 199, 90, 8, 6, 1, 228, 97, 4, 211, 244, 26, 251, 129, 8, 2, 1, 228, 97,
- 4, 211, 244, 26, 78, 95, 26, 251, 129, 8, 6, 1, 228, 97, 4, 211, 244, 26,
- 199, 90, 8, 2, 1, 228, 97, 4, 211, 244, 26, 78, 95, 26, 199, 90, 8, 6, 1,
- 223, 66, 4, 199, 90, 8, 2, 1, 223, 66, 4, 78, 95, 26, 199, 90, 8, 6, 1,
- 220, 202, 4, 199, 90, 8, 2, 1, 220, 202, 4, 199, 90, 8, 6, 1, 218, 237,
- 4, 199, 90, 8, 2, 1, 218, 237, 4, 199, 90, 8, 6, 1, 208, 112, 4, 199, 90,
- 8, 2, 1, 208, 112, 4, 199, 90, 8, 6, 1, 124, 4, 211, 244, 26, 251, 129,
- 8, 2, 1, 124, 4, 211, 244, 26, 251, 129, 8, 6, 1, 124, 4, 211, 244, 26,
- 199, 90, 8, 2, 1, 124, 4, 211, 244, 26, 199, 90, 8, 6, 1, 124, 4, 217,
- 215, 26, 251, 129, 8, 2, 1, 124, 4, 217, 215, 26, 251, 129, 8, 6, 1, 124,
- 4, 217, 215, 26, 199, 90, 8, 2, 1, 124, 4, 217, 215, 26, 199, 90, 8, 2,
- 1, 251, 109, 4, 230, 210, 8, 2, 1, 211, 184, 185, 4, 230, 210, 8, 2, 1,
- 211, 184, 185, 4, 251, 129, 8, 2, 1, 163, 196, 237, 4, 230, 210, 8, 2, 1,
- 163, 196, 237, 4, 251, 129, 8, 2, 1, 205, 241, 4, 230, 210, 8, 2, 1, 205,
- 241, 4, 251, 129, 8, 2, 1, 229, 14, 205, 241, 4, 230, 210, 8, 2, 1, 229,
- 14, 205, 241, 4, 251, 129, 9, 204, 162, 97, 4, 230, 67, 95, 4, 251, 26,
- 9, 204, 162, 97, 4, 230, 67, 95, 4, 194, 119, 9, 204, 162, 97, 4, 230,
- 67, 95, 4, 157, 217, 168, 9, 204, 162, 97, 4, 230, 67, 95, 4, 212, 0, 9,
- 204, 162, 97, 4, 230, 67, 95, 4, 68, 9, 204, 162, 97, 4, 230, 67, 95, 4,
- 192, 214, 9, 204, 162, 97, 4, 230, 67, 95, 4, 71, 9, 204, 162, 97, 4,
- 230, 67, 95, 4, 251, 108, 9, 204, 162, 213, 124, 4, 222, 39, 248, 76, 1,
- 221, 224, 44, 116, 222, 184, 44, 116, 214, 167, 44, 116, 247, 52, 44,
- 116, 212, 203, 44, 116, 198, 86, 44, 116, 213, 179, 44, 116, 200, 228,
- 44, 116, 215, 151, 44, 116, 211, 93, 44, 116, 218, 236, 44, 116, 193,
- 148, 44, 116, 150, 44, 116, 165, 44, 116, 196, 236, 44, 116, 219, 127,
- 44, 116, 219, 138, 44, 116, 207, 4, 44, 116, 213, 161, 44, 116, 223, 65,
- 44, 116, 204, 66, 44, 116, 202, 95, 44, 116, 206, 158, 44, 116, 230, 124,
- 44, 116, 221, 48, 44, 5, 222, 159, 44, 5, 221, 204, 44, 5, 221, 183, 44,
- 5, 221, 33, 44, 5, 220, 246, 44, 5, 222, 57, 44, 5, 222, 48, 44, 5, 222,
- 135, 44, 5, 221, 113, 44, 5, 221, 88, 44, 5, 222, 76, 44, 5, 214, 164,
- 44, 5, 214, 113, 44, 5, 214, 109, 44, 5, 214, 78, 44, 5, 214, 69, 44, 5,
- 214, 152, 44, 5, 214, 150, 44, 5, 214, 161, 44, 5, 214, 90, 44, 5, 214,
- 85, 44, 5, 214, 154, 44, 5, 247, 18, 44, 5, 242, 149, 44, 5, 242, 139,
- 44, 5, 238, 162, 44, 5, 238, 120, 44, 5, 246, 158, 44, 5, 246, 150, 44,
- 5, 247, 7, 44, 5, 242, 63, 44, 5, 238, 239, 44, 5, 246, 191, 44, 5, 212,
- 200, 44, 5, 212, 181, 44, 5, 212, 175, 44, 5, 212, 158, 44, 5, 212, 150,
- 44, 5, 212, 190, 44, 5, 212, 189, 44, 5, 212, 197, 44, 5, 212, 165, 44,
- 5, 212, 162, 44, 5, 212, 193, 44, 5, 198, 82, 44, 5, 198, 62, 44, 5, 198,
- 61, 44, 5, 198, 50, 44, 5, 198, 47, 44, 5, 198, 78, 44, 5, 198, 77, 44,
- 5, 198, 81, 44, 5, 198, 60, 44, 5, 198, 59, 44, 5, 198, 80, 44, 5, 213,
- 177, 44, 5, 213, 163, 44, 5, 213, 162, 44, 5, 213, 146, 44, 5, 213, 145,
- 44, 5, 213, 173, 44, 5, 213, 172, 44, 5, 213, 176, 44, 5, 213, 148, 44,
- 5, 213, 147, 44, 5, 213, 175, 44, 5, 200, 174, 44, 5, 199, 128, 44, 5,
- 199, 105, 44, 5, 198, 45, 44, 5, 198, 0, 44, 5, 200, 79, 44, 5, 200, 56,
- 44, 5, 200, 149, 44, 5, 155, 44, 5, 198, 254, 44, 5, 200, 100, 44, 5,
- 215, 84, 44, 5, 214, 60, 44, 5, 214, 27, 44, 5, 213, 22, 44, 5, 212, 215,
- 44, 5, 214, 214, 44, 5, 214, 203, 44, 5, 215, 70, 44, 5, 213, 142, 44, 5,
- 213, 125, 44, 5, 215, 42, 44, 5, 211, 77, 44, 5, 210, 51, 44, 5, 210, 12,
- 44, 5, 209, 51, 44, 5, 209, 15, 44, 5, 210, 181, 44, 5, 210, 168, 44, 5,
- 211, 55, 44, 5, 209, 198, 44, 5, 209, 172, 44, 5, 210, 197, 44, 5, 217,
- 219, 44, 5, 216, 175, 44, 5, 216, 137, 44, 5, 215, 241, 44, 5, 215, 181,
- 44, 5, 217, 48, 44, 5, 217, 29, 44, 5, 217, 180, 44, 5, 216, 91, 44, 5,
- 216, 35, 44, 5, 217, 96, 44, 5, 193, 129, 44, 5, 193, 22, 44, 5, 193, 12,
- 44, 5, 192, 214, 44, 5, 192, 177, 44, 5, 193, 69, 44, 5, 193, 66, 44, 5,
- 193, 108, 44, 5, 193, 1, 44, 5, 192, 235, 44, 5, 193, 80, 44, 5, 208, 68,
- 44, 5, 207, 151, 44, 5, 207, 88, 44, 5, 206, 218, 44, 5, 206, 179, 44, 5,
- 208, 7, 44, 5, 207, 234, 44, 5, 208, 48, 44, 5, 207, 55, 44, 5, 207, 28,
- 44, 5, 208, 17, 44, 5, 220, 184, 44, 5, 219, 209, 44, 5, 219, 191, 44, 5,
- 219, 36, 44, 5, 219, 6, 44, 5, 220, 42, 44, 5, 220, 32, 44, 5, 220, 155,
- 44, 5, 219, 107, 44, 5, 219, 73, 44, 5, 220, 60, 44, 5, 196, 156, 44, 5,
- 196, 39, 44, 5, 196, 22, 44, 5, 194, 223, 44, 5, 194, 215, 44, 5, 196,
- 123, 44, 5, 196, 118, 44, 5, 196, 152, 44, 5, 195, 252, 44, 5, 195, 236,
- 44, 5, 196, 129, 44, 5, 219, 125, 44, 5, 219, 120, 44, 5, 219, 119, 44,
- 5, 219, 116, 44, 5, 219, 115, 44, 5, 219, 122, 44, 5, 219, 121, 44, 5,
- 219, 124, 44, 5, 219, 118, 44, 5, 219, 117, 44, 5, 219, 123, 44, 5, 219,
- 136, 44, 5, 219, 129, 44, 5, 219, 128, 44, 5, 219, 112, 44, 5, 219, 111,
- 44, 5, 219, 132, 44, 5, 219, 131, 44, 5, 219, 135, 44, 5, 219, 114, 44,
- 5, 219, 113, 44, 5, 219, 133, 44, 5, 207, 2, 44, 5, 206, 247, 44, 5, 206,
- 246, 44, 5, 206, 239, 44, 5, 206, 232, 44, 5, 206, 254, 44, 5, 206, 253,
- 44, 5, 207, 1, 44, 5, 206, 245, 44, 5, 206, 244, 44, 5, 207, 0, 44, 5,
- 213, 159, 44, 5, 213, 154, 44, 5, 213, 153, 44, 5, 213, 150, 44, 5, 213,
- 149, 44, 5, 213, 156, 44, 5, 213, 155, 44, 5, 213, 158, 44, 5, 213, 152,
- 44, 5, 213, 151, 44, 5, 213, 157, 44, 5, 223, 61, 44, 5, 223, 20, 44, 5,
- 223, 12, 44, 5, 222, 214, 44, 5, 222, 194, 44, 5, 223, 41, 44, 5, 223,
- 39, 44, 5, 223, 55, 44, 5, 222, 233, 44, 5, 222, 223, 44, 5, 223, 48, 44,
- 5, 204, 59, 44, 5, 203, 236, 44, 5, 203, 231, 44, 5, 203, 164, 44, 5,
- 203, 146, 44, 5, 204, 12, 44, 5, 204, 10, 44, 5, 204, 47, 44, 5, 203,
- 211, 44, 5, 203, 203, 44, 5, 204, 21, 44, 5, 202, 91, 44, 5, 202, 59, 44,
- 5, 202, 55, 44, 5, 202, 46, 44, 5, 202, 43, 44, 5, 202, 65, 44, 5, 202,
- 64, 44, 5, 202, 90, 44, 5, 202, 51, 44, 5, 202, 50, 44, 5, 202, 67, 44,
- 5, 206, 91, 44, 5, 203, 125, 44, 5, 203, 97, 44, 5, 201, 184, 44, 5, 201,
- 86, 44, 5, 205, 223, 44, 5, 205, 205, 44, 5, 206, 75, 44, 5, 202, 212,
- 44, 5, 202, 183, 44, 5, 206, 12, 44, 5, 230, 99, 44, 5, 229, 178, 44, 5,
- 229, 150, 44, 5, 228, 181, 44, 5, 228, 150, 44, 5, 229, 255, 44, 5, 229,
- 225, 44, 5, 230, 88, 44, 5, 229, 43, 44, 5, 229, 16, 44, 5, 230, 11, 44,
- 5, 221, 47, 44, 5, 221, 46, 44, 5, 221, 41, 44, 5, 221, 40, 44, 5, 221,
- 37, 44, 5, 221, 36, 44, 5, 221, 43, 44, 5, 221, 42, 44, 5, 221, 45, 44,
- 5, 221, 39, 44, 5, 221, 38, 44, 5, 221, 44, 44, 5, 203, 171, 159, 116, 3,
- 193, 94, 159, 116, 3, 208, 36, 159, 116, 3, 207, 200, 98, 1, 197, 175,
- 93, 116, 3, 242, 55, 160, 93, 116, 3, 242, 55, 221, 250, 93, 116, 3, 242,
- 55, 221, 113, 93, 116, 3, 242, 55, 221, 220, 93, 116, 3, 242, 55, 214,
- 90, 93, 116, 3, 242, 55, 247, 19, 93, 116, 3, 242, 55, 246, 117, 93, 116,
- 3, 242, 55, 242, 63, 93, 116, 3, 242, 55, 242, 188, 93, 116, 3, 242, 55,
- 212, 165, 93, 116, 3, 242, 55, 238, 0, 93, 116, 3, 242, 55, 198, 71, 93,
- 116, 3, 242, 55, 236, 146, 93, 116, 3, 242, 55, 198, 66, 93, 116, 3, 242,
- 55, 181, 93, 116, 3, 242, 55, 189, 93, 116, 3, 242, 55, 199, 240, 93,
- 116, 3, 242, 55, 155, 93, 116, 3, 242, 55, 199, 176, 93, 116, 3, 242, 55,
- 213, 142, 93, 116, 3, 242, 55, 249, 3, 93, 116, 3, 242, 55, 210, 94, 93,
- 116, 3, 242, 55, 209, 198, 93, 116, 3, 242, 55, 210, 65, 93, 116, 3, 242,
- 55, 216, 91, 93, 116, 3, 242, 55, 193, 1, 93, 116, 3, 242, 55, 207, 55,
- 93, 116, 3, 242, 55, 219, 107, 93, 116, 3, 242, 55, 195, 252, 93, 116, 3,
- 242, 55, 204, 64, 93, 116, 3, 242, 55, 202, 92, 93, 116, 3, 242, 55, 188,
- 93, 116, 3, 242, 55, 144, 93, 116, 3, 242, 55, 177, 93, 18, 3, 242, 55,
- 208, 239, 93, 223, 177, 18, 3, 242, 55, 208, 177, 93, 223, 177, 18, 3,
- 242, 55, 206, 167, 93, 223, 177, 18, 3, 242, 55, 206, 160, 93, 223, 177,
- 18, 3, 242, 55, 208, 219, 93, 18, 3, 211, 219, 93, 18, 3, 251, 250, 229,
- 140, 1, 248, 34, 214, 165, 229, 140, 1, 248, 34, 214, 113, 229, 140, 1,
- 248, 34, 214, 78, 229, 140, 1, 248, 34, 214, 152, 229, 140, 1, 248, 34,
- 214, 90, 75, 1, 248, 34, 214, 165, 75, 1, 248, 34, 214, 113, 75, 1, 248,
- 34, 214, 78, 75, 1, 248, 34, 214, 152, 75, 1, 248, 34, 214, 90, 75, 1,
- 251, 55, 246, 158, 75, 1, 251, 55, 198, 45, 75, 1, 251, 55, 155, 75, 1,
- 251, 55, 211, 93, 73, 1, 233, 188, 233, 187, 238, 247, 158, 161, 73, 1,
- 233, 187, 233, 188, 238, 247, 158, 161,
+#define phrasebook_shift 8
+#define phrasebook_short 191
+static const unsigned char phrasebook[] = {
+ 0, 202, 160, 233, 204, 77, 208, 142, 77, 31, 57, 236, 127, 57, 210, 133,
+ 57, 250, 229, 250, 147, 46, 210, 230, 51, 210, 230, 250, 37, 102, 57,
+ 242, 38, 228, 110, 232, 71, 201, 238, 202, 189, 17, 192, 76, 17, 101, 17,
+ 104, 17, 133, 17, 134, 17, 151, 17, 170, 17, 179, 17, 174, 17, 182, 242,
+ 47, 204, 180, 219, 240, 57, 234, 30, 57, 230, 204, 57, 208, 159, 77, 242,
+ 36, 250, 26, 8, 6, 1, 64, 8, 6, 1, 249, 226, 8, 6, 1, 247, 52, 8, 6, 1,
+ 238, 95, 8, 6, 1, 71, 8, 6, 1, 233, 163, 8, 6, 1, 232, 44, 8, 6, 1, 230,
+ 124, 8, 6, 1, 70, 8, 6, 1, 223, 65, 8, 6, 1, 222, 184, 8, 6, 1, 165, 8,
+ 6, 1, 218, 236, 8, 6, 1, 215, 151, 8, 6, 1, 74, 8, 6, 1, 211, 93, 8, 6,
+ 1, 208, 247, 8, 6, 1, 150, 8, 6, 1, 206, 158, 8, 6, 1, 200, 228, 8, 6, 1,
+ 68, 8, 6, 1, 196, 236, 8, 6, 1, 194, 202, 8, 6, 1, 193, 223, 8, 6, 1,
+ 193, 148, 8, 6, 1, 192, 155, 46, 50, 186, 207, 169, 202, 189, 51, 50,
+ 186, 242, 122, 251, 143, 132, 219, 175, 230, 211, 251, 143, 8, 2, 1, 64,
+ 8, 2, 1, 249, 226, 8, 2, 1, 247, 52, 8, 2, 1, 238, 95, 8, 2, 1, 71, 8, 2,
+ 1, 233, 163, 8, 2, 1, 232, 44, 8, 2, 1, 230, 124, 8, 2, 1, 70, 8, 2, 1,
+ 223, 65, 8, 2, 1, 222, 184, 8, 2, 1, 165, 8, 2, 1, 218, 236, 8, 2, 1,
+ 215, 151, 8, 2, 1, 74, 8, 2, 1, 211, 93, 8, 2, 1, 208, 247, 8, 2, 1, 150,
+ 8, 2, 1, 206, 158, 8, 2, 1, 200, 228, 8, 2, 1, 68, 8, 2, 1, 196, 236, 8,
+ 2, 1, 194, 202, 8, 2, 1, 193, 223, 8, 2, 1, 193, 148, 8, 2, 1, 192, 155,
+ 46, 238, 138, 186, 84, 219, 175, 51, 238, 138, 186, 199, 90, 213, 136,
+ 202, 160, 223, 121, 233, 204, 77, 246, 140, 57, 209, 143, 57, 238, 137,
+ 57, 193, 60, 57, 247, 136, 161, 205, 209, 57, 237, 14, 238, 227, 57, 233,
+ 28, 211, 158, 223, 172, 220, 23, 55, 250, 208, 208, 142, 77, 213, 111,
+ 57, 202, 198, 228, 111, 207, 228, 57, 217, 214, 237, 95, 57, 209, 205,
+ 57, 201, 107, 104, 201, 107, 133, 251, 130, 251, 143, 216, 166, 57, 210,
+ 9, 57, 85, 236, 114, 246, 151, 201, 107, 101, 217, 111, 211, 158, 223,
+ 172, 207, 96, 55, 250, 208, 208, 142, 77, 194, 220, 232, 109, 90, 208,
+ 167, 194, 220, 232, 109, 90, 230, 78, 194, 220, 232, 109, 112, 208, 165,
+ 223, 121, 208, 159, 77, 8, 6, 1, 41, 4, 230, 210, 8, 6, 1, 41, 4, 251,
+ 129, 8, 6, 1, 41, 4, 242, 121, 8, 6, 1, 41, 4, 199, 90, 8, 6, 1, 41, 4,
+ 237, 14, 8, 6, 1, 41, 4, 207, 82, 58, 8, 6, 1, 251, 108, 8, 6, 1, 247,
+ 53, 4, 246, 151, 8, 6, 1, 234, 253, 4, 230, 210, 8, 6, 1, 234, 253, 4,
+ 251, 129, 8, 6, 1, 234, 253, 4, 242, 121, 8, 6, 1, 234, 253, 4, 237, 14,
+ 8, 6, 1, 228, 97, 4, 230, 210, 8, 6, 1, 228, 97, 4, 251, 129, 8, 6, 1,
+ 228, 97, 4, 242, 121, 8, 6, 1, 228, 97, 4, 237, 14, 8, 6, 1, 233, 235, 8,
+ 6, 1, 215, 152, 4, 199, 90, 8, 6, 1, 185, 4, 230, 210, 8, 6, 1, 185, 4,
+ 251, 129, 8, 6, 1, 185, 4, 242, 121, 8, 6, 1, 185, 4, 199, 90, 8, 6, 1,
+ 185, 4, 237, 14, 215, 214, 57, 8, 6, 1, 185, 4, 111, 8, 6, 1, 124, 4,
+ 230, 210, 8, 6, 1, 124, 4, 251, 129, 8, 6, 1, 124, 4, 242, 121, 8, 6, 1,
+ 124, 4, 237, 14, 8, 6, 1, 193, 149, 4, 251, 129, 8, 6, 1, 199, 168, 8, 2,
+ 1, 204, 26, 206, 158, 8, 2, 1, 41, 4, 230, 210, 8, 2, 1, 41, 4, 251, 129,
+ 8, 2, 1, 41, 4, 242, 121, 8, 2, 1, 41, 4, 199, 90, 8, 2, 1, 41, 4, 237,
+ 14, 8, 2, 1, 41, 4, 207, 82, 58, 8, 2, 1, 251, 108, 8, 2, 1, 247, 53, 4,
+ 246, 151, 8, 2, 1, 234, 253, 4, 230, 210, 8, 2, 1, 234, 253, 4, 251, 129,
+ 8, 2, 1, 234, 253, 4, 242, 121, 8, 2, 1, 234, 253, 4, 237, 14, 8, 2, 1,
+ 228, 97, 4, 230, 210, 8, 2, 1, 228, 97, 4, 251, 129, 8, 2, 1, 228, 97, 4,
+ 242, 121, 8, 2, 1, 228, 97, 4, 237, 14, 8, 2, 1, 233, 235, 8, 2, 1, 215,
+ 152, 4, 199, 90, 8, 2, 1, 185, 4, 230, 210, 8, 2, 1, 185, 4, 251, 129, 8,
+ 2, 1, 185, 4, 242, 121, 8, 2, 1, 185, 4, 199, 90, 8, 2, 1, 185, 4, 237,
+ 14, 236, 172, 57, 8, 2, 1, 185, 4, 111, 8, 2, 1, 124, 4, 230, 210, 8, 2,
+ 1, 124, 4, 251, 129, 8, 2, 1, 124, 4, 242, 121, 8, 2, 1, 124, 4, 237, 14,
+ 8, 2, 1, 193, 149, 4, 251, 129, 8, 2, 1, 199, 168, 8, 2, 1, 193, 149, 4,
+ 237, 14, 8, 6, 1, 41, 4, 217, 214, 8, 2, 1, 41, 4, 217, 214, 8, 6, 1, 41,
+ 4, 247, 150, 8, 2, 1, 41, 4, 247, 150, 8, 6, 1, 41, 4, 211, 243, 8, 2, 1,
+ 41, 4, 211, 243, 8, 6, 1, 247, 53, 4, 251, 129, 8, 2, 1, 247, 53, 4, 251,
+ 129, 8, 6, 1, 247, 53, 4, 242, 121, 8, 2, 1, 247, 53, 4, 242, 121, 8, 6,
+ 1, 247, 53, 4, 78, 58, 8, 2, 1, 247, 53, 4, 78, 58, 8, 6, 1, 247, 53, 4,
+ 246, 207, 8, 2, 1, 247, 53, 4, 246, 207, 8, 6, 1, 238, 96, 4, 246, 207,
+ 8, 2, 1, 238, 96, 4, 246, 207, 8, 6, 1, 238, 96, 4, 111, 8, 2, 1, 238,
+ 96, 4, 111, 8, 6, 1, 234, 253, 4, 217, 214, 8, 2, 1, 234, 253, 4, 217,
+ 214, 8, 6, 1, 234, 253, 4, 247, 150, 8, 2, 1, 234, 253, 4, 247, 150, 8,
+ 6, 1, 234, 253, 4, 78, 58, 8, 2, 1, 234, 253, 4, 78, 58, 8, 6, 1, 234,
+ 253, 4, 211, 243, 8, 2, 1, 234, 253, 4, 211, 243, 8, 6, 1, 234, 253, 4,
+ 246, 207, 8, 2, 1, 234, 253, 4, 246, 207, 8, 6, 1, 232, 45, 4, 242, 121,
+ 8, 2, 1, 232, 45, 4, 242, 121, 8, 6, 1, 232, 45, 4, 247, 150, 8, 2, 1,
+ 232, 45, 4, 247, 150, 8, 6, 1, 232, 45, 4, 78, 58, 8, 2, 1, 232, 45, 4,
+ 78, 58, 8, 6, 1, 232, 45, 4, 246, 151, 8, 2, 1, 232, 45, 4, 246, 151, 8,
+ 6, 1, 230, 125, 4, 242, 121, 8, 2, 1, 230, 125, 4, 242, 121, 8, 6, 1,
+ 230, 125, 4, 111, 8, 2, 1, 230, 125, 4, 111, 8, 6, 1, 228, 97, 4, 199,
+ 90, 8, 2, 1, 228, 97, 4, 199, 90, 8, 6, 1, 228, 97, 4, 217, 214, 8, 2, 1,
+ 228, 97, 4, 217, 214, 8, 6, 1, 228, 97, 4, 247, 150, 8, 2, 1, 228, 97, 4,
+ 247, 150, 8, 6, 1, 228, 97, 4, 211, 243, 8, 2, 1, 228, 97, 4, 211, 243,
+ 8, 6, 1, 228, 97, 4, 78, 58, 8, 2, 1, 236, 113, 70, 8, 6, 34, 223, 222,
+ 8, 2, 34, 223, 222, 8, 6, 1, 223, 66, 4, 242, 121, 8, 2, 1, 223, 66, 4,
+ 242, 121, 8, 6, 1, 222, 185, 4, 246, 151, 8, 2, 1, 222, 185, 4, 246, 151,
+ 8, 2, 1, 221, 56, 8, 6, 1, 220, 202, 4, 251, 129, 8, 2, 1, 220, 202, 4,
+ 251, 129, 8, 6, 1, 220, 202, 4, 246, 151, 8, 2, 1, 220, 202, 4, 246, 151,
+ 8, 6, 1, 220, 202, 4, 246, 207, 8, 2, 1, 220, 202, 4, 246, 207, 8, 6, 1,
+ 220, 202, 4, 85, 236, 114, 8, 2, 1, 220, 202, 4, 85, 236, 114, 8, 6, 1,
+ 220, 202, 4, 111, 8, 2, 1, 220, 202, 4, 111, 8, 6, 1, 215, 152, 4, 251,
+ 129, 8, 2, 1, 215, 152, 4, 251, 129, 8, 6, 1, 215, 152, 4, 246, 151, 8,
+ 2, 1, 215, 152, 4, 246, 151, 8, 6, 1, 215, 152, 4, 246, 207, 8, 2, 1,
+ 215, 152, 4, 246, 207, 8, 2, 1, 215, 152, 209, 117, 247, 64, 250, 147, 8,
+ 6, 1, 234, 73, 8, 2, 1, 234, 73, 8, 6, 1, 185, 4, 217, 214, 8, 2, 1, 185,
+ 4, 217, 214, 8, 6, 1, 185, 4, 247, 150, 8, 2, 1, 185, 4, 247, 150, 8, 6,
+ 1, 185, 4, 55, 251, 129, 8, 2, 1, 185, 4, 55, 251, 129, 8, 6, 34, 212, 0,
+ 8, 2, 34, 212, 0, 8, 6, 1, 208, 112, 4, 251, 129, 8, 2, 1, 208, 112, 4,
+ 251, 129, 8, 6, 1, 208, 112, 4, 246, 151, 8, 2, 1, 208, 112, 4, 246, 151,
+ 8, 6, 1, 208, 112, 4, 246, 207, 8, 2, 1, 208, 112, 4, 246, 207, 8, 6, 1,
+ 206, 159, 4, 251, 129, 8, 2, 1, 206, 159, 4, 251, 129, 8, 6, 1, 206, 159,
+ 4, 242, 121, 8, 2, 1, 206, 159, 4, 242, 121, 8, 6, 1, 206, 159, 4, 246,
+ 151, 8, 2, 1, 206, 159, 4, 246, 151, 8, 6, 1, 206, 159, 4, 246, 207, 8,
+ 2, 1, 206, 159, 4, 246, 207, 8, 6, 1, 200, 229, 4, 246, 151, 8, 2, 1,
+ 200, 229, 4, 246, 151, 8, 6, 1, 200, 229, 4, 246, 207, 8, 2, 1, 200, 229,
+ 4, 246, 207, 8, 6, 1, 200, 229, 4, 111, 8, 2, 1, 200, 229, 4, 111, 8, 6,
+ 1, 124, 4, 199, 90, 8, 2, 1, 124, 4, 199, 90, 8, 6, 1, 124, 4, 217, 214,
+ 8, 2, 1, 124, 4, 217, 214, 8, 6, 1, 124, 4, 247, 150, 8, 2, 1, 124, 4,
+ 247, 150, 8, 6, 1, 124, 4, 207, 82, 58, 8, 2, 1, 124, 4, 207, 82, 58, 8,
+ 6, 1, 124, 4, 55, 251, 129, 8, 2, 1, 124, 4, 55, 251, 129, 8, 6, 1, 124,
+ 4, 211, 243, 8, 2, 1, 124, 4, 211, 243, 8, 6, 1, 194, 203, 4, 242, 121,
+ 8, 2, 1, 194, 203, 4, 242, 121, 8, 6, 1, 193, 149, 4, 242, 121, 8, 2, 1,
+ 193, 149, 4, 242, 121, 8, 6, 1, 193, 149, 4, 237, 14, 8, 6, 1, 192, 156,
+ 4, 251, 129, 8, 2, 1, 192, 156, 4, 251, 129, 8, 6, 1, 192, 156, 4, 78,
+ 58, 8, 2, 1, 192, 156, 4, 78, 58, 8, 6, 1, 192, 156, 4, 246, 207, 8, 2,
+ 1, 192, 156, 4, 246, 207, 8, 2, 1, 184, 206, 158, 8, 2, 1, 76, 4, 111, 8,
+ 6, 1, 76, 4, 128, 8, 6, 1, 76, 4, 198, 246, 8, 2, 1, 76, 4, 198, 246, 8,
+ 6, 1, 158, 170, 8, 2, 1, 158, 170, 8, 6, 1, 211, 184, 74, 8, 6, 1, 247,
+ 53, 4, 128, 8, 2, 1, 247, 53, 4, 128, 8, 6, 1, 251, 83, 238, 95, 8, 6, 1,
+ 238, 96, 4, 128, 8, 6, 1, 238, 96, 4, 198, 246, 8, 2, 1, 238, 96, 4, 198,
+ 246, 8, 2, 1, 163, 237, 76, 8, 6, 1, 207, 168, 71, 8, 6, 1, 205, 240, 8,
+ 6, 1, 211, 184, 71, 8, 6, 1, 233, 164, 4, 128, 8, 2, 1, 233, 164, 4, 128,
+ 8, 6, 1, 232, 45, 4, 128, 8, 6, 1, 231, 204, 8, 2, 1, 228, 148, 8, 6, 1,
+ 223, 111, 8, 6, 1, 228, 97, 4, 111, 8, 6, 1, 222, 185, 4, 128, 8, 2, 1,
+ 222, 185, 4, 128, 8, 2, 1, 220, 202, 4, 161, 8, 2, 1, 220, 92, 4, 111, 8,
+ 6, 1, 163, 218, 236, 8, 6, 1, 215, 152, 4, 46, 128, 8, 2, 1, 215, 152, 4,
+ 184, 51, 220, 16, 8, 6, 1, 185, 4, 85, 199, 90, 8, 6, 1, 185, 4, 228,
+ 208, 8, 2, 1, 185, 4, 228, 208, 8, 6, 1, 211, 238, 8, 2, 1, 211, 238, 8,
+ 6, 1, 211, 94, 4, 128, 8, 2, 1, 211, 94, 4, 128, 8, 1, 192, 217, 8, 6, 1,
+ 158, 104, 8, 2, 1, 158, 104, 8, 6, 1, 233, 255, 8, 1, 207, 168, 234, 0,
+ 219, 69, 8, 2, 1, 200, 229, 4, 211, 49, 128, 8, 6, 1, 200, 229, 4, 128,
+ 8, 2, 1, 200, 229, 4, 128, 8, 6, 1, 200, 229, 4, 207, 174, 128, 8, 6, 1,
+ 124, 4, 228, 208, 8, 2, 1, 124, 4, 228, 208, 8, 6, 1, 197, 34, 8, 6, 1,
+ 196, 237, 4, 128, 8, 6, 1, 193, 149, 4, 128, 8, 2, 1, 193, 149, 4, 128,
+ 8, 6, 1, 192, 156, 4, 111, 8, 2, 1, 192, 156, 4, 111, 8, 6, 1, 233, 166,
+ 8, 6, 1, 233, 167, 207, 167, 8, 2, 1, 233, 167, 207, 167, 8, 2, 1, 233,
+ 167, 4, 200, 147, 8, 1, 103, 4, 111, 8, 6, 1, 158, 151, 8, 2, 1, 158,
+ 151, 8, 1, 223, 121, 231, 6, 201, 239, 4, 111, 8, 1, 193, 226, 8, 1, 237,
+ 69, 242, 96, 8, 1, 220, 63, 242, 96, 8, 1, 250, 242, 242, 96, 8, 1, 207,
+ 174, 242, 96, 8, 6, 1, 235, 19, 4, 246, 207, 8, 6, 1, 238, 96, 4, 2, 1,
+ 192, 156, 4, 246, 207, 8, 2, 1, 235, 19, 4, 246, 207, 8, 6, 1, 219, 141,
+ 8, 6, 1, 220, 202, 4, 2, 1, 223, 65, 8, 2, 1, 219, 141, 8, 6, 1, 214, 1,
+ 8, 6, 1, 215, 152, 4, 2, 1, 223, 65, 8, 2, 1, 214, 1, 8, 6, 1, 41, 4,
+ 246, 207, 8, 2, 1, 41, 4, 246, 207, 8, 6, 1, 228, 97, 4, 246, 207, 8, 2,
+ 1, 228, 97, 4, 246, 207, 8, 6, 1, 185, 4, 246, 207, 8, 2, 1, 185, 4, 246,
+ 207, 8, 6, 1, 124, 4, 246, 207, 8, 2, 1, 124, 4, 246, 207, 8, 6, 1, 124,
+ 4, 237, 15, 26, 217, 214, 8, 2, 1, 124, 4, 237, 15, 26, 217, 214, 8, 6,
+ 1, 124, 4, 237, 15, 26, 251, 129, 8, 2, 1, 124, 4, 237, 15, 26, 251, 129,
+ 8, 6, 1, 124, 4, 237, 15, 26, 246, 207, 8, 2, 1, 124, 4, 237, 15, 26,
+ 246, 207, 8, 6, 1, 124, 4, 237, 15, 26, 230, 210, 8, 2, 1, 124, 4, 237,
+ 15, 26, 230, 210, 8, 2, 1, 163, 71, 8, 6, 1, 41, 4, 237, 15, 26, 217,
+ 214, 8, 2, 1, 41, 4, 237, 15, 26, 217, 214, 8, 6, 1, 41, 4, 78, 95, 26,
+ 217, 214, 8, 2, 1, 41, 4, 78, 95, 26, 217, 214, 8, 6, 1, 251, 109, 4,
+ 217, 214, 8, 2, 1, 251, 109, 4, 217, 214, 8, 6, 1, 232, 45, 4, 111, 8, 2,
+ 1, 232, 45, 4, 111, 8, 6, 1, 232, 45, 4, 246, 207, 8, 2, 1, 232, 45, 4,
+ 246, 207, 8, 6, 1, 222, 185, 4, 246, 207, 8, 2, 1, 222, 185, 4, 246, 207,
+ 8, 6, 1, 185, 4, 211, 243, 8, 2, 1, 185, 4, 211, 243, 8, 6, 1, 185, 4,
+ 211, 244, 26, 217, 214, 8, 2, 1, 185, 4, 211, 244, 26, 217, 214, 8, 6, 1,
+ 233, 167, 4, 246, 207, 8, 2, 1, 233, 167, 4, 246, 207, 8, 2, 1, 223, 66,
+ 4, 246, 207, 8, 6, 1, 235, 18, 8, 6, 1, 238, 96, 4, 2, 1, 192, 155, 8, 2,
+ 1, 235, 18, 8, 6, 1, 232, 45, 4, 251, 129, 8, 2, 1, 232, 45, 4, 251, 129,
+ 8, 6, 1, 228, 145, 8, 6, 1, 193, 226, 8, 6, 1, 215, 152, 4, 230, 210, 8,
+ 2, 1, 215, 152, 4, 230, 210, 8, 6, 1, 41, 4, 207, 82, 95, 26, 251, 129,
+ 8, 2, 1, 41, 4, 207, 82, 95, 26, 251, 129, 8, 6, 1, 251, 109, 4, 251,
+ 129, 8, 2, 1, 251, 109, 4, 251, 129, 8, 6, 1, 185, 4, 201, 208, 26, 251,
+ 129, 8, 2, 1, 185, 4, 201, 208, 26, 251, 129, 8, 6, 1, 41, 4, 55, 230,
+ 210, 8, 2, 1, 41, 4, 55, 230, 210, 8, 6, 1, 41, 4, 223, 121, 247, 150, 8,
+ 2, 1, 41, 4, 223, 121, 247, 150, 8, 6, 1, 234, 253, 4, 55, 230, 210, 8,
+ 2, 1, 234, 253, 4, 55, 230, 210, 8, 6, 1, 234, 253, 4, 223, 121, 247,
+ 150, 8, 2, 1, 234, 253, 4, 223, 121, 247, 150, 8, 6, 1, 228, 97, 4, 55,
+ 230, 210, 8, 2, 1, 228, 97, 4, 55, 230, 210, 8, 6, 1, 228, 97, 4, 223,
+ 121, 247, 150, 8, 2, 1, 228, 97, 4, 223, 121, 247, 150, 8, 6, 1, 185, 4,
+ 55, 230, 210, 8, 2, 1, 185, 4, 55, 230, 210, 8, 6, 1, 185, 4, 223, 121,
+ 247, 150, 8, 2, 1, 185, 4, 223, 121, 247, 150, 8, 6, 1, 208, 112, 4, 55,
+ 230, 210, 8, 2, 1, 208, 112, 4, 55, 230, 210, 8, 6, 1, 208, 112, 4, 223,
+ 121, 247, 150, 8, 2, 1, 208, 112, 4, 223, 121, 247, 150, 8, 6, 1, 124, 4,
+ 55, 230, 210, 8, 2, 1, 124, 4, 55, 230, 210, 8, 6, 1, 124, 4, 223, 121,
+ 247, 150, 8, 2, 1, 124, 4, 223, 121, 247, 150, 8, 6, 1, 206, 159, 4, 242,
+ 39, 63, 8, 2, 1, 206, 159, 4, 242, 39, 63, 8, 6, 1, 200, 229, 4, 242, 39,
+ 63, 8, 2, 1, 200, 229, 4, 242, 39, 63, 8, 6, 1, 192, 237, 8, 2, 1, 192,
+ 237, 8, 6, 1, 230, 125, 4, 246, 207, 8, 2, 1, 230, 125, 4, 246, 207, 8,
+ 6, 1, 215, 152, 4, 184, 51, 220, 16, 8, 2, 1, 238, 96, 4, 238, 142, 8, 6,
+ 1, 211, 130, 8, 2, 1, 211, 130, 8, 6, 1, 192, 156, 4, 128, 8, 2, 1, 192,
+ 156, 4, 128, 8, 6, 1, 41, 4, 78, 58, 8, 2, 1, 41, 4, 78, 58, 8, 6, 1,
+ 234, 253, 4, 246, 151, 8, 2, 1, 234, 253, 4, 246, 151, 8, 6, 1, 185, 4,
+ 237, 15, 26, 217, 214, 8, 2, 1, 185, 4, 237, 15, 26, 217, 214, 8, 6, 1,
+ 185, 4, 199, 91, 26, 217, 214, 8, 2, 1, 185, 4, 199, 91, 26, 217, 214, 8,
+ 6, 1, 185, 4, 78, 58, 8, 2, 1, 185, 4, 78, 58, 8, 6, 1, 185, 4, 78, 95,
+ 26, 217, 214, 8, 2, 1, 185, 4, 78, 95, 26, 217, 214, 8, 6, 1, 193, 149,
+ 4, 217, 214, 8, 2, 1, 193, 149, 4, 217, 214, 8, 2, 1, 220, 202, 4, 238,
+ 142, 8, 2, 1, 215, 152, 4, 238, 142, 8, 2, 1, 200, 229, 4, 238, 142, 8,
+ 2, 1, 236, 113, 223, 65, 8, 2, 1, 237, 171, 236, 230, 8, 2, 1, 208, 178,
+ 236, 230, 8, 6, 1, 41, 4, 111, 8, 6, 1, 247, 53, 4, 111, 8, 2, 1, 247,
+ 53, 4, 111, 8, 6, 1, 220, 202, 4, 161, 8, 6, 1, 200, 229, 4, 237, 11,
+ 111, 8, 2, 1, 206, 159, 4, 201, 75, 200, 147, 8, 2, 1, 192, 156, 4, 201,
+ 75, 200, 147, 8, 6, 1, 231, 6, 201, 238, 8, 2, 1, 231, 6, 201, 238, 8, 6,
+ 1, 76, 4, 111, 8, 6, 1, 124, 161, 8, 6, 1, 163, 196, 236, 8, 6, 1, 234,
+ 253, 4, 111, 8, 2, 1, 234, 253, 4, 111, 8, 6, 1, 223, 66, 4, 111, 8, 2,
+ 1, 223, 66, 4, 111, 8, 6, 1, 2, 208, 248, 4, 229, 15, 200, 147, 8, 2, 1,
+ 208, 248, 4, 229, 15, 200, 147, 8, 6, 1, 208, 112, 4, 111, 8, 2, 1, 208,
+ 112, 4, 111, 8, 6, 1, 193, 149, 4, 111, 8, 2, 1, 193, 149, 4, 111, 8, 2,
+ 1, 163, 64, 8, 2, 1, 250, 252, 8, 2, 1, 163, 250, 252, 8, 2, 1, 76, 4,
+ 128, 8, 2, 1, 211, 184, 74, 8, 2, 1, 247, 53, 4, 238, 142, 8, 2, 1, 238,
+ 96, 4, 200, 147, 8, 2, 1, 238, 96, 4, 128, 8, 2, 1, 207, 168, 71, 8, 2,
+ 1, 205, 240, 8, 2, 1, 205, 241, 4, 128, 8, 2, 1, 211, 184, 71, 8, 2, 1,
+ 207, 168, 211, 184, 71, 8, 2, 1, 207, 168, 211, 184, 234, 253, 4, 128, 8,
+ 2, 1, 242, 84, 207, 168, 211, 184, 71, 8, 2, 1, 236, 113, 223, 66, 4,
+ 111, 8, 2, 1, 232, 45, 4, 128, 8, 2, 1, 27, 232, 44, 8, 1, 2, 6, 232, 44,
+ 8, 2, 1, 231, 204, 8, 2, 1, 208, 32, 228, 208, 8, 2, 1, 163, 230, 124, 8,
+ 2, 1, 230, 125, 4, 128, 8, 2, 1, 229, 207, 4, 128, 8, 2, 1, 228, 97, 4,
+ 111, 8, 2, 1, 223, 111, 8, 1, 2, 6, 70, 8, 2, 1, 220, 202, 4, 85, 199,
+ 90, 8, 2, 1, 220, 202, 4, 248, 82, 8, 2, 1, 220, 202, 4, 207, 174, 128,
+ 8, 2, 1, 219, 225, 8, 2, 1, 163, 218, 236, 8, 2, 1, 163, 218, 237, 4,
+ 184, 220, 16, 8, 2, 1, 218, 237, 4, 128, 8, 2, 1, 215, 152, 4, 46, 128,
+ 8, 2, 1, 215, 152, 4, 207, 174, 128, 8, 1, 2, 6, 215, 151, 8, 2, 1, 248,
+ 188, 74, 8, 1, 2, 6, 212, 0, 8, 2, 1, 242, 84, 211, 216, 8, 2, 1, 210,
+ 77, 8, 2, 1, 163, 150, 8, 2, 1, 163, 208, 112, 4, 184, 220, 16, 8, 2, 1,
+ 163, 208, 112, 4, 128, 8, 2, 1, 208, 112, 4, 184, 220, 16, 8, 2, 1, 208,
+ 112, 4, 200, 147, 8, 2, 1, 208, 112, 4, 232, 221, 8, 2, 1, 207, 168, 208,
+ 112, 4, 232, 221, 8, 1, 2, 6, 150, 8, 1, 2, 6, 223, 121, 150, 8, 2, 1,
+ 206, 159, 4, 128, 8, 2, 1, 233, 255, 8, 2, 1, 236, 113, 223, 66, 4, 201,
+ 208, 26, 128, 8, 2, 1, 202, 103, 207, 168, 233, 255, 8, 2, 1, 234, 0, 4,
+ 238, 142, 8, 2, 1, 163, 200, 228, 8, 2, 1, 200, 229, 4, 207, 174, 128, 8,
+ 2, 1, 124, 161, 8, 2, 1, 197, 34, 8, 2, 1, 196, 237, 4, 128, 8, 2, 1,
+ 163, 196, 236, 8, 2, 1, 163, 194, 202, 8, 2, 1, 163, 193, 148, 8, 1, 2,
+ 6, 193, 148, 8, 2, 1, 192, 156, 4, 207, 174, 128, 8, 2, 1, 192, 156, 4,
+ 238, 142, 8, 2, 1, 233, 166, 8, 2, 1, 233, 167, 4, 238, 142, 8, 1, 231,
+ 6, 201, 238, 8, 1, 210, 85, 195, 248, 232, 95, 8, 1, 223, 121, 231, 6,
+ 201, 238, 8, 1, 201, 216, 247, 52, 8, 1, 248, 25, 242, 96, 8, 1, 2, 6,
+ 249, 226, 8, 2, 1, 242, 84, 211, 184, 71, 8, 1, 2, 6, 232, 45, 4, 128, 8,
+ 1, 2, 6, 230, 124, 8, 2, 1, 223, 66, 4, 238, 178, 8, 2, 1, 163, 222, 184,
+ 8, 1, 2, 6, 165, 8, 2, 1, 208, 248, 4, 128, 8, 1, 231, 6, 201, 239, 4,
+ 111, 8, 1, 207, 168, 231, 6, 201, 239, 4, 111, 8, 2, 1, 235, 19, 236,
+ 230, 8, 2, 1, 237, 42, 236, 230, 8, 2, 1, 235, 19, 236, 231, 4, 238, 142,
+ 8, 2, 1, 198, 120, 236, 230, 8, 2, 1, 200, 14, 236, 230, 8, 2, 1, 200,
+ 86, 236, 231, 4, 238, 142, 8, 2, 1, 233, 25, 236, 230, 8, 2, 1, 219, 38,
+ 236, 230, 8, 2, 1, 218, 238, 236, 230, 8, 1, 248, 25, 210, 132, 8, 1,
+ 248, 33, 210, 132, 8, 2, 1, 163, 230, 125, 4, 232, 221, 8, 2, 1, 163,
+ 230, 125, 4, 232, 222, 26, 200, 147, 73, 1, 2, 230, 124, 73, 1, 2, 230,
+ 125, 4, 128, 73, 1, 2, 223, 65, 73, 1, 2, 150, 73, 1, 2, 163, 150, 73, 1,
+ 2, 163, 208, 112, 4, 128, 73, 1, 2, 6, 223, 121, 150, 73, 1, 2, 194, 202,
+ 73, 1, 2, 193, 148, 73, 1, 209, 99, 73, 1, 55, 209, 99, 73, 1, 163, 242,
+ 38, 73, 1, 250, 147, 73, 1, 207, 168, 242, 38, 73, 1, 51, 138, 207, 81,
+ 73, 1, 46, 138, 207, 81, 73, 1, 231, 6, 201, 238, 73, 1, 207, 168, 231,
+ 6, 201, 238, 73, 1, 46, 250, 77, 73, 1, 51, 250, 77, 73, 1, 130, 250, 77,
+ 73, 1, 142, 250, 77, 73, 1, 242, 122, 251, 143, 246, 207, 73, 1, 84, 219,
+ 175, 73, 1, 217, 214, 73, 1, 251, 130, 251, 143, 73, 1, 230, 211, 251,
+ 143, 73, 1, 132, 84, 219, 175, 73, 1, 132, 217, 214, 73, 1, 132, 230,
+ 211, 251, 143, 73, 1, 132, 251, 130, 251, 143, 73, 1, 198, 182, 242, 47,
+ 73, 1, 138, 198, 182, 242, 47, 73, 1, 246, 136, 51, 138, 207, 81, 73, 1,
+ 246, 136, 46, 138, 207, 81, 73, 1, 130, 200, 159, 73, 1, 142, 200, 159,
+ 73, 1, 102, 57, 73, 1, 216, 113, 57, 247, 150, 78, 58, 207, 82, 58, 211,
+ 243, 2, 199, 90, 55, 251, 130, 251, 143, 73, 1, 207, 152, 128, 73, 1,
+ 238, 184, 251, 143, 73, 1, 2, 231, 204, 73, 1, 2, 165, 73, 1, 2, 206,
+ 158, 73, 1, 2, 193, 223, 73, 1, 2, 207, 168, 231, 6, 201, 238, 73, 1,
+ 233, 188, 158, 161, 73, 1, 139, 158, 161, 73, 1, 216, 162, 158, 161, 73,
+ 1, 132, 158, 161, 73, 1, 233, 187, 158, 161, 73, 1, 193, 11, 237, 66,
+ 158, 77, 73, 1, 193, 96, 237, 66, 158, 77, 73, 1, 195, 246, 73, 1, 197,
+ 73, 73, 1, 55, 250, 147, 73, 1, 132, 142, 250, 77, 73, 1, 132, 130, 250,
+ 77, 73, 1, 132, 46, 250, 77, 73, 1, 132, 51, 250, 77, 73, 1, 132, 207,
+ 81, 73, 1, 85, 230, 211, 251, 143, 73, 1, 85, 55, 230, 211, 251, 143, 73,
+ 1, 85, 55, 251, 130, 251, 143, 73, 1, 132, 199, 90, 73, 1, 208, 39, 242,
+ 47, 73, 1, 248, 100, 139, 199, 18, 73, 1, 234, 80, 139, 199, 18, 73, 1,
+ 248, 100, 132, 199, 18, 73, 1, 234, 80, 132, 199, 18, 73, 1, 204, 3, 73,
+ 1, 211, 184, 204, 3, 73, 1, 132, 46, 54, 38, 230, 211, 251, 143, 38, 251,
+ 130, 251, 143, 38, 242, 122, 251, 143, 38, 199, 90, 38, 217, 214, 38,
+ 211, 109, 38, 247, 150, 38, 78, 58, 38, 237, 14, 38, 229, 15, 58, 38,
+ 207, 82, 58, 38, 55, 251, 130, 251, 143, 38, 246, 207, 38, 84, 219, 176,
+ 58, 38, 55, 84, 219, 176, 58, 38, 55, 230, 211, 251, 143, 38, 246, 234,
+ 38, 223, 121, 247, 150, 38, 163, 242, 39, 58, 38, 242, 39, 58, 38, 207,
+ 168, 242, 39, 58, 38, 242, 39, 95, 207, 101, 38, 230, 211, 251, 144, 63,
+ 38, 251, 130, 251, 144, 63, 38, 46, 200, 160, 63, 38, 51, 200, 160, 63,
+ 38, 46, 250, 208, 58, 38, 228, 208, 38, 46, 138, 207, 82, 63, 38, 130,
+ 200, 160, 63, 38, 142, 200, 160, 63, 38, 102, 3, 63, 38, 216, 113, 3, 63,
+ 38, 211, 47, 229, 15, 63, 38, 207, 174, 229, 15, 63, 38, 78, 63, 38, 237,
+ 15, 63, 38, 207, 82, 63, 38, 242, 39, 63, 38, 246, 151, 38, 211, 243, 38,
+ 84, 219, 176, 63, 38, 247, 143, 63, 38, 223, 121, 55, 250, 113, 63, 38,
+ 246, 208, 63, 38, 242, 122, 251, 144, 63, 38, 247, 151, 63, 38, 223, 121,
+ 247, 151, 63, 38, 199, 91, 63, 38, 217, 215, 63, 38, 132, 219, 175, 38,
+ 55, 132, 219, 175, 38, 199, 91, 211, 110, 38, 203, 195, 201, 208, 211,
+ 110, 38, 184, 201, 208, 211, 110, 38, 203, 195, 202, 190, 211, 110, 38,
+ 184, 202, 190, 211, 110, 38, 51, 138, 207, 82, 63, 38, 223, 121, 247,
+ 143, 63, 38, 50, 63, 38, 205, 217, 63, 38, 193, 224, 58, 38, 84, 199, 90,
+ 38, 55, 211, 109, 38, 230, 211, 158, 77, 38, 251, 130, 158, 77, 38, 33,
+ 210, 126, 38, 33, 221, 78, 38, 33, 237, 8, 198, 255, 38, 33, 192, 222,
+ 38, 247, 143, 58, 38, 234, 30, 3, 63, 38, 55, 84, 219, 176, 63, 38, 46,
+ 250, 208, 63, 38, 213, 111, 199, 91, 58, 38, 229, 21, 58, 38, 251, 1,
+ 187, 115, 58, 38, 46, 51, 61, 63, 38, 197, 30, 61, 63, 38, 230, 217, 222,
+ 228, 38, 51, 250, 78, 58, 38, 46, 138, 207, 82, 58, 38, 233, 22, 38, 193,
+ 224, 63, 38, 46, 250, 78, 63, 38, 51, 250, 78, 63, 38, 51, 250, 78, 26,
+ 130, 250, 78, 63, 38, 51, 138, 207, 82, 58, 38, 78, 95, 207, 101, 38,
+ 250, 38, 63, 38, 55, 207, 82, 63, 38, 192, 21, 58, 38, 55, 247, 151, 63,
+ 38, 55, 247, 150, 38, 55, 217, 214, 38, 55, 217, 215, 63, 38, 55, 199,
+ 90, 38, 55, 223, 121, 247, 150, 38, 55, 94, 61, 63, 38, 8, 2, 1, 64, 38,
+ 8, 2, 1, 71, 38, 8, 2, 1, 70, 38, 8, 2, 1, 74, 38, 8, 2, 1, 68, 38, 8, 2,
+ 1, 247, 52, 38, 8, 2, 1, 238, 95, 38, 8, 2, 1, 230, 124, 38, 8, 2, 1,
+ 218, 236, 38, 8, 2, 1, 150, 38, 8, 2, 1, 200, 228, 38, 8, 2, 1, 196, 236,
+ 38, 8, 2, 1, 193, 223, 33, 6, 1, 229, 195, 33, 2, 1, 229, 195, 33, 6, 1,
+ 250, 112, 206, 43, 33, 2, 1, 250, 112, 206, 43, 33, 212, 234, 57, 33,
+ 106, 212, 234, 57, 33, 6, 1, 211, 30, 236, 238, 33, 2, 1, 211, 30, 236,
+ 238, 33, 192, 222, 33, 2, 207, 168, 219, 18, 203, 100, 109, 33, 2, 235,
+ 111, 219, 18, 203, 100, 109, 33, 2, 207, 168, 235, 111, 219, 18, 203,
+ 100, 109, 33, 208, 159, 77, 33, 6, 1, 192, 229, 33, 198, 255, 33, 237, 8,
+ 198, 255, 33, 6, 1, 250, 253, 4, 198, 255, 33, 250, 191, 200, 43, 33, 6,
+ 1, 234, 33, 4, 198, 255, 33, 6, 1, 233, 241, 4, 198, 255, 33, 6, 1, 223,
+ 112, 4, 198, 255, 33, 6, 1, 211, 215, 4, 198, 255, 33, 6, 1, 197, 35, 4,
+ 198, 255, 33, 6, 1, 211, 217, 4, 198, 255, 33, 2, 1, 223, 112, 4, 237, 8,
+ 26, 198, 255, 33, 6, 1, 250, 252, 33, 6, 1, 248, 63, 33, 6, 1, 231, 204,
+ 33, 6, 1, 237, 76, 33, 6, 1, 234, 32, 33, 6, 1, 192, 75, 33, 6, 1, 233,
+ 240, 33, 6, 1, 199, 206, 33, 6, 1, 223, 111, 33, 6, 1, 222, 106, 33, 6,
+ 1, 220, 90, 33, 6, 1, 215, 241, 33, 6, 1, 213, 22, 33, 6, 1, 193, 196,
+ 33, 6, 1, 211, 214, 33, 6, 1, 210, 51, 33, 6, 1, 207, 153, 33, 6, 1, 203,
+ 99, 33, 6, 1, 200, 100, 33, 6, 1, 197, 34, 33, 6, 1, 210, 77, 33, 6, 1,
+ 242, 215, 33, 6, 1, 209, 62, 33, 6, 1, 211, 216, 33, 6, 1, 223, 112, 4,
+ 237, 7, 33, 6, 1, 197, 35, 4, 237, 7, 33, 2, 1, 250, 253, 4, 198, 255,
+ 33, 2, 1, 234, 33, 4, 198, 255, 33, 2, 1, 233, 241, 4, 198, 255, 33, 2,
+ 1, 223, 112, 4, 198, 255, 33, 2, 1, 197, 35, 4, 237, 8, 26, 198, 255, 33,
+ 2, 1, 250, 252, 33, 2, 1, 248, 63, 33, 2, 1, 231, 204, 33, 2, 1, 237, 76,
+ 33, 2, 1, 234, 32, 33, 2, 1, 192, 75, 33, 2, 1, 233, 240, 33, 2, 1, 199,
+ 206, 33, 2, 1, 223, 111, 33, 2, 1, 222, 106, 33, 2, 1, 220, 90, 33, 2, 1,
+ 215, 241, 33, 2, 1, 213, 22, 33, 2, 1, 193, 196, 33, 2, 1, 211, 214, 33,
+ 2, 1, 210, 51, 33, 2, 1, 207, 153, 33, 2, 1, 52, 203, 99, 33, 2, 1, 203,
+ 99, 33, 2, 1, 200, 100, 33, 2, 1, 197, 34, 33, 2, 1, 210, 77, 33, 2, 1,
+ 242, 215, 33, 2, 1, 209, 62, 33, 2, 1, 211, 216, 33, 2, 1, 223, 112, 4,
+ 237, 7, 33, 2, 1, 197, 35, 4, 237, 7, 33, 2, 1, 211, 215, 4, 198, 255,
+ 33, 2, 1, 197, 35, 4, 198, 255, 33, 2, 1, 211, 217, 4, 198, 255, 33, 6,
+ 222, 136, 109, 33, 248, 64, 109, 33, 199, 207, 109, 33, 197, 35, 4, 229,
+ 15, 109, 33, 197, 35, 4, 251, 130, 26, 229, 15, 109, 33, 197, 35, 4, 237,
+ 15, 26, 229, 15, 109, 33, 210, 78, 109, 33, 210, 52, 109, 33, 222, 136,
+ 109, 33, 1, 250, 112, 221, 82, 33, 2, 1, 250, 112, 221, 82, 33, 1, 201,
+ 248, 33, 2, 1, 201, 248, 33, 1, 236, 238, 33, 2, 1, 236, 238, 33, 1, 221,
+ 82, 33, 2, 1, 221, 82, 33, 1, 206, 43, 33, 2, 1, 206, 43, 92, 6, 1, 204,
+ 4, 92, 2, 1, 204, 4, 92, 6, 1, 233, 32, 92, 2, 1, 233, 32, 92, 6, 1, 221,
+ 232, 92, 2, 1, 221, 232, 92, 6, 1, 229, 6, 92, 2, 1, 229, 6, 92, 6, 1,
+ 231, 199, 92, 2, 1, 231, 199, 92, 6, 1, 203, 226, 92, 2, 1, 203, 226, 92,
+ 6, 1, 237, 92, 92, 2, 1, 237, 92, 33, 222, 107, 109, 33, 207, 154, 109,
+ 33, 219, 18, 203, 100, 109, 33, 1, 192, 229, 33, 6, 199, 207, 109, 33,
+ 219, 18, 234, 33, 109, 33, 207, 168, 219, 18, 234, 33, 109, 33, 6, 1,
+ 203, 211, 33, 2, 1, 203, 211, 33, 6, 219, 18, 203, 100, 109, 33, 6, 1,
+ 206, 40, 33, 2, 1, 206, 40, 33, 207, 154, 4, 201, 208, 109, 33, 6, 207,
+ 168, 219, 18, 203, 100, 109, 33, 6, 235, 111, 219, 18, 203, 100, 109, 33,
+ 6, 207, 168, 235, 111, 219, 18, 203, 100, 109, 42, 6, 1, 223, 252, 4,
+ 230, 210, 42, 6, 1, 223, 116, 42, 6, 1, 236, 164, 42, 6, 1, 231, 15, 42,
+ 6, 1, 197, 89, 223, 251, 42, 6, 1, 235, 14, 42, 6, 1, 247, 62, 70, 42, 6,
+ 1, 193, 22, 42, 6, 1, 223, 41, 42, 6, 1, 219, 140, 42, 6, 1, 213, 249,
+ 42, 6, 1, 198, 106, 42, 6, 1, 221, 141, 42, 6, 1, 228, 97, 4, 230, 210,
+ 42, 6, 1, 203, 195, 68, 42, 6, 1, 235, 10, 42, 6, 1, 64, 42, 6, 1, 248,
+ 123, 42, 6, 1, 196, 123, 42, 6, 1, 231, 70, 42, 6, 1, 237, 116, 42, 6, 1,
+ 223, 251, 42, 6, 1, 192, 62, 42, 6, 1, 192, 85, 42, 6, 1, 70, 42, 6, 1,
+ 203, 195, 70, 42, 6, 1, 160, 42, 6, 1, 234, 124, 42, 6, 1, 234, 99, 42,
+ 6, 1, 234, 88, 42, 6, 1, 74, 42, 6, 1, 210, 181, 42, 6, 1, 234, 21, 42,
+ 6, 1, 234, 9, 42, 6, 1, 200, 79, 42, 6, 1, 68, 42, 6, 1, 234, 164, 42, 6,
+ 1, 144, 42, 6, 1, 198, 112, 42, 6, 1, 242, 245, 42, 6, 1, 204, 64, 42, 6,
+ 1, 204, 15, 42, 6, 1, 230, 26, 57, 42, 6, 1, 193, 47, 42, 6, 1, 202, 198,
+ 57, 42, 6, 1, 71, 42, 6, 1, 192, 214, 42, 6, 1, 168, 42, 2, 1, 64, 42, 2,
+ 1, 248, 123, 42, 2, 1, 196, 123, 42, 2, 1, 231, 70, 42, 2, 1, 237, 116,
+ 42, 2, 1, 223, 251, 42, 2, 1, 192, 62, 42, 2, 1, 192, 85, 42, 2, 1, 70,
+ 42, 2, 1, 203, 195, 70, 42, 2, 1, 160, 42, 2, 1, 234, 124, 42, 2, 1, 234,
+ 99, 42, 2, 1, 234, 88, 42, 2, 1, 74, 42, 2, 1, 210, 181, 42, 2, 1, 234,
+ 21, 42, 2, 1, 234, 9, 42, 2, 1, 200, 79, 42, 2, 1, 68, 42, 2, 1, 234,
+ 164, 42, 2, 1, 144, 42, 2, 1, 198, 112, 42, 2, 1, 242, 245, 42, 2, 1,
+ 204, 64, 42, 2, 1, 204, 15, 42, 2, 1, 230, 26, 57, 42, 2, 1, 193, 47, 42,
+ 2, 1, 202, 198, 57, 42, 2, 1, 71, 42, 2, 1, 192, 214, 42, 2, 1, 168, 42,
+ 2, 1, 223, 252, 4, 230, 210, 42, 2, 1, 223, 116, 42, 2, 1, 236, 164, 42,
+ 2, 1, 231, 15, 42, 2, 1, 197, 89, 223, 251, 42, 2, 1, 235, 14, 42, 2, 1,
+ 247, 62, 70, 42, 2, 1, 193, 22, 42, 2, 1, 223, 41, 42, 2, 1, 219, 140,
+ 42, 2, 1, 213, 249, 42, 2, 1, 198, 106, 42, 2, 1, 221, 141, 42, 2, 1,
+ 228, 97, 4, 230, 210, 42, 2, 1, 203, 195, 68, 42, 2, 1, 235, 10, 42, 6,
+ 1, 211, 216, 42, 2, 1, 211, 216, 42, 6, 1, 193, 84, 42, 2, 1, 193, 84,
+ 42, 6, 1, 223, 109, 71, 42, 2, 1, 223, 109, 71, 42, 6, 1, 219, 147, 192,
+ 179, 42, 2, 1, 219, 147, 192, 179, 42, 6, 1, 223, 109, 219, 147, 192,
+ 179, 42, 2, 1, 223, 109, 219, 147, 192, 179, 42, 6, 1, 248, 28, 192, 179,
+ 42, 2, 1, 248, 28, 192, 179, 42, 6, 1, 223, 109, 248, 28, 192, 179, 42,
+ 2, 1, 223, 109, 248, 28, 192, 179, 42, 6, 1, 221, 49, 42, 2, 1, 221, 49,
+ 42, 6, 1, 209, 62, 42, 2, 1, 209, 62, 42, 6, 1, 232, 216, 42, 2, 1, 232,
+ 216, 42, 6, 1, 223, 67, 42, 2, 1, 223, 67, 42, 6, 1, 223, 68, 4, 55, 230,
+ 211, 251, 143, 42, 2, 1, 223, 68, 4, 55, 230, 211, 251, 143, 42, 6, 1,
+ 197, 92, 42, 2, 1, 197, 92, 42, 6, 1, 207, 9, 211, 216, 42, 2, 1, 207, 9,
+ 211, 216, 42, 6, 1, 211, 217, 4, 199, 60, 42, 2, 1, 211, 217, 4, 199, 60,
+ 42, 6, 1, 211, 140, 42, 2, 1, 211, 140, 42, 6, 1, 221, 82, 42, 2, 1, 221,
+ 82, 42, 199, 164, 57, 38, 42, 199, 60, 38, 42, 211, 48, 38, 42, 237, 183,
+ 209, 200, 38, 42, 209, 56, 209, 200, 38, 42, 209, 184, 38, 42, 228, 163,
+ 199, 164, 57, 38, 42, 216, 124, 57, 42, 6, 1, 203, 195, 228, 97, 4, 200,
+ 147, 42, 2, 1, 203, 195, 228, 97, 4, 200, 147, 42, 6, 1, 204, 176, 57,
+ 42, 2, 1, 204, 176, 57, 42, 6, 1, 234, 22, 4, 199, 117, 42, 2, 1, 234,
+ 22, 4, 199, 117, 42, 6, 1, 231, 71, 4, 197, 33, 42, 2, 1, 231, 71, 4,
+ 197, 33, 42, 6, 1, 231, 71, 4, 111, 42, 2, 1, 231, 71, 4, 111, 42, 6, 1,
+ 231, 71, 4, 85, 128, 42, 2, 1, 231, 71, 4, 85, 128, 42, 6, 1, 192, 63, 4,
+ 237, 59, 42, 2, 1, 192, 63, 4, 237, 59, 42, 6, 1, 192, 86, 4, 237, 59,
+ 42, 2, 1, 192, 86, 4, 237, 59, 42, 6, 1, 222, 174, 4, 237, 59, 42, 2, 1,
+ 222, 174, 4, 237, 59, 42, 6, 1, 222, 174, 4, 84, 111, 42, 2, 1, 222, 174,
+ 4, 84, 111, 42, 6, 1, 222, 174, 4, 111, 42, 2, 1, 222, 174, 4, 111, 42,
+ 6, 1, 248, 176, 160, 42, 2, 1, 248, 176, 160, 42, 6, 1, 234, 89, 4, 237,
+ 59, 42, 2, 1, 234, 89, 4, 237, 59, 42, 6, 34, 234, 89, 231, 70, 42, 2,
+ 34, 234, 89, 231, 70, 42, 6, 1, 210, 182, 4, 85, 128, 42, 2, 1, 210, 182,
+ 4, 85, 128, 42, 6, 1, 251, 150, 144, 42, 2, 1, 251, 150, 144, 42, 6, 1,
+ 234, 10, 4, 237, 59, 42, 2, 1, 234, 10, 4, 237, 59, 42, 6, 1, 200, 80, 4,
+ 237, 59, 42, 2, 1, 200, 80, 4, 237, 59, 42, 6, 1, 201, 230, 68, 42, 2, 1,
+ 201, 230, 68, 42, 6, 1, 201, 230, 124, 4, 111, 42, 2, 1, 201, 230, 124,
+ 4, 111, 42, 6, 1, 230, 113, 4, 237, 59, 42, 2, 1, 230, 113, 4, 237, 59,
+ 42, 6, 34, 200, 80, 198, 112, 42, 2, 34, 200, 80, 198, 112, 42, 6, 1,
+ 242, 246, 4, 237, 59, 42, 2, 1, 242, 246, 4, 237, 59, 42, 6, 1, 242, 246,
+ 4, 84, 111, 42, 2, 1, 242, 246, 4, 84, 111, 42, 6, 1, 203, 237, 42, 2, 1,
+ 203, 237, 42, 6, 1, 251, 150, 242, 245, 42, 2, 1, 251, 150, 242, 245, 42,
+ 6, 1, 251, 150, 242, 246, 4, 237, 59, 42, 2, 1, 251, 150, 242, 246, 4,
+ 237, 59, 42, 1, 211, 37, 42, 6, 1, 192, 63, 4, 247, 150, 42, 2, 1, 192,
+ 63, 4, 247, 150, 42, 6, 1, 222, 174, 4, 128, 42, 2, 1, 222, 174, 4, 128,
+ 42, 6, 1, 234, 125, 4, 200, 147, 42, 2, 1, 234, 125, 4, 200, 147, 42, 6,
+ 1, 234, 89, 4, 128, 42, 2, 1, 234, 89, 4, 128, 42, 6, 1, 234, 89, 4, 200,
+ 147, 42, 2, 1, 234, 89, 4, 200, 147, 42, 6, 1, 221, 243, 242, 245, 42, 2,
+ 1, 221, 243, 242, 245, 42, 6, 1, 234, 100, 4, 200, 147, 42, 2, 1, 234,
+ 100, 4, 200, 147, 42, 2, 1, 211, 37, 42, 6, 1, 41, 4, 247, 150, 42, 2, 1,
+ 41, 4, 247, 150, 42, 6, 1, 41, 4, 237, 14, 42, 2, 1, 41, 4, 237, 14, 42,
+ 6, 34, 41, 223, 251, 42, 2, 34, 41, 223, 251, 42, 6, 1, 223, 252, 4, 247,
+ 150, 42, 2, 1, 223, 252, 4, 247, 150, 42, 6, 1, 205, 240, 42, 2, 1, 205,
+ 240, 42, 6, 1, 205, 241, 4, 237, 14, 42, 2, 1, 205, 241, 4, 237, 14, 42,
+ 6, 1, 192, 63, 4, 237, 14, 42, 2, 1, 192, 63, 4, 237, 14, 42, 6, 1, 192,
+ 86, 4, 237, 14, 42, 2, 1, 192, 86, 4, 237, 14, 42, 6, 1, 251, 150, 235,
+ 14, 42, 2, 1, 251, 150, 235, 14, 42, 6, 1, 228, 97, 4, 217, 214, 42, 2,
+ 1, 228, 97, 4, 217, 214, 42, 6, 1, 228, 97, 4, 237, 14, 42, 2, 1, 228,
+ 97, 4, 237, 14, 42, 6, 1, 185, 4, 237, 14, 42, 2, 1, 185, 4, 237, 14, 42,
+ 6, 1, 248, 188, 74, 42, 2, 1, 248, 188, 74, 42, 6, 1, 248, 188, 185, 4,
+ 237, 14, 42, 2, 1, 248, 188, 185, 4, 237, 14, 42, 6, 1, 234, 253, 4, 237,
+ 14, 42, 2, 1, 234, 253, 4, 237, 14, 42, 6, 1, 124, 4, 217, 214, 42, 2, 1,
+ 124, 4, 217, 214, 42, 6, 1, 124, 4, 237, 14, 42, 2, 1, 124, 4, 237, 14,
+ 42, 6, 1, 124, 4, 55, 251, 129, 42, 2, 1, 124, 4, 55, 251, 129, 42, 6, 1,
+ 242, 246, 4, 237, 14, 42, 2, 1, 242, 246, 4, 237, 14, 42, 6, 1, 231, 71,
+ 4, 237, 59, 42, 2, 1, 231, 71, 4, 237, 59, 42, 6, 1, 193, 48, 4, 237, 14,
+ 42, 2, 1, 193, 48, 4, 237, 14, 42, 6, 1, 231, 71, 4, 201, 208, 26, 128,
+ 42, 2, 1, 231, 71, 4, 201, 208, 26, 128, 42, 6, 1, 230, 113, 4, 128, 42,
+ 2, 1, 230, 113, 4, 128, 42, 6, 1, 230, 113, 4, 111, 42, 2, 1, 230, 113,
+ 4, 111, 42, 6, 1, 221, 92, 237, 116, 42, 2, 1, 221, 92, 237, 116, 42, 6,
+ 1, 221, 92, 236, 164, 42, 2, 1, 221, 92, 236, 164, 42, 6, 1, 221, 92,
+ 192, 12, 42, 2, 1, 221, 92, 192, 12, 42, 6, 1, 221, 92, 235, 6, 42, 2, 1,
+ 221, 92, 235, 6, 42, 6, 1, 221, 92, 219, 140, 42, 2, 1, 221, 92, 219,
+ 140, 42, 6, 1, 221, 92, 213, 249, 42, 2, 1, 221, 92, 213, 249, 42, 6, 1,
+ 221, 92, 203, 20, 42, 2, 1, 221, 92, 203, 20, 42, 6, 1, 221, 92, 199, 54,
+ 42, 2, 1, 221, 92, 199, 54, 42, 6, 1, 207, 168, 192, 85, 42, 2, 1, 207,
+ 168, 192, 85, 42, 6, 1, 234, 125, 4, 128, 42, 2, 1, 234, 125, 4, 128, 42,
+ 6, 1, 219, 222, 42, 2, 1, 219, 222, 42, 6, 1, 207, 156, 42, 2, 1, 207,
+ 156, 42, 6, 1, 193, 118, 42, 2, 1, 193, 118, 42, 6, 1, 208, 239, 42, 2,
+ 1, 208, 239, 42, 6, 1, 194, 111, 42, 2, 1, 194, 111, 42, 6, 1, 251, 22,
+ 160, 42, 2, 1, 251, 22, 160, 42, 6, 1, 234, 125, 4, 85, 128, 42, 2, 1,
+ 234, 125, 4, 85, 128, 42, 6, 1, 234, 89, 4, 85, 128, 42, 2, 1, 234, 89,
+ 4, 85, 128, 42, 6, 1, 210, 182, 4, 237, 59, 42, 2, 1, 210, 182, 4, 237,
+ 59, 42, 6, 1, 203, 238, 4, 237, 59, 42, 2, 1, 203, 238, 4, 237, 59, 42,
+ 6, 1, 234, 89, 4, 46, 128, 42, 2, 1, 234, 89, 4, 46, 128, 42, 6, 1, 234,
+ 254, 42, 2, 1, 234, 254, 42, 6, 1, 237, 165, 42, 2, 1, 237, 165, 42, 6,
+ 1, 234, 125, 4, 237, 59, 42, 2, 1, 234, 125, 4, 237, 59, 250, 91, 6, 1,
+ 249, 233, 250, 91, 6, 1, 248, 80, 250, 91, 6, 1, 231, 33, 250, 91, 6, 1,
+ 238, 0, 250, 91, 6, 1, 234, 177, 250, 91, 6, 1, 192, 112, 250, 91, 6, 1,
+ 234, 157, 250, 91, 6, 1, 233, 242, 250, 91, 6, 1, 155, 250, 91, 6, 1,
+ 192, 62, 250, 91, 6, 1, 223, 159, 250, 91, 6, 1, 219, 144, 250, 91, 6, 1,
+ 193, 201, 250, 91, 6, 1, 247, 19, 250, 91, 6, 1, 222, 30, 250, 91, 6, 1,
+ 229, 43, 250, 91, 6, 1, 223, 62, 250, 91, 6, 1, 231, 81, 250, 91, 6, 1,
+ 242, 235, 250, 91, 6, 1, 217, 5, 250, 91, 6, 1, 193, 22, 250, 91, 6, 1,
+ 213, 96, 250, 91, 6, 1, 204, 64, 250, 91, 6, 1, 195, 252, 250, 91, 6, 1,
+ 246, 117, 250, 91, 6, 1, 210, 161, 250, 91, 6, 1, 223, 23, 250, 91, 6, 1,
+ 167, 250, 91, 6, 1, 205, 194, 250, 91, 6, 1, 196, 44, 250, 91, 6, 1, 199,
+ 57, 250, 91, 6, 1, 207, 221, 250, 91, 6, 1, 242, 63, 250, 91, 6, 1, 193,
+ 6, 250, 91, 6, 1, 209, 238, 250, 91, 6, 1, 222, 41, 250, 91, 6, 1, 211,
+ 241, 250, 91, 6, 1, 233, 34, 250, 91, 73, 1, 46, 138, 207, 81, 250, 91,
+ 250, 147, 250, 91, 234, 92, 77, 250, 91, 233, 204, 77, 250, 91, 242, 38,
+ 250, 91, 208, 159, 77, 250, 91, 251, 151, 77, 250, 91, 2, 1, 163, 249,
+ 233, 250, 91, 2, 1, 249, 233, 250, 91, 2, 1, 248, 80, 250, 91, 2, 1, 231,
+ 33, 250, 91, 2, 1, 238, 0, 250, 91, 2, 1, 234, 177, 250, 91, 2, 1, 192,
+ 112, 250, 91, 2, 1, 234, 157, 250, 91, 2, 1, 233, 242, 250, 91, 2, 1,
+ 155, 250, 91, 2, 1, 192, 62, 250, 91, 2, 1, 223, 159, 250, 91, 2, 1, 219,
+ 144, 250, 91, 2, 1, 193, 201, 250, 91, 2, 1, 247, 19, 250, 91, 2, 1, 222,
+ 30, 250, 91, 2, 1, 229, 43, 250, 91, 2, 1, 223, 62, 250, 91, 2, 1, 231,
+ 81, 250, 91, 2, 1, 242, 235, 250, 91, 2, 1, 217, 5, 250, 91, 2, 1, 193,
+ 22, 250, 91, 2, 1, 213, 96, 250, 91, 2, 1, 204, 64, 250, 91, 2, 1, 195,
+ 252, 250, 91, 2, 1, 246, 117, 250, 91, 2, 1, 210, 161, 250, 91, 2, 1,
+ 223, 23, 250, 91, 2, 1, 167, 250, 91, 2, 1, 205, 194, 250, 91, 2, 1, 196,
+ 44, 250, 91, 2, 1, 199, 57, 250, 91, 2, 1, 207, 221, 250, 91, 2, 1, 242,
+ 63, 250, 91, 2, 1, 193, 6, 250, 91, 2, 1, 209, 238, 250, 91, 2, 1, 222,
+ 41, 250, 91, 2, 1, 211, 241, 250, 91, 2, 1, 233, 34, 250, 91, 2, 34, 234,
+ 178, 193, 6, 250, 91, 2, 1, 11, 4, 111, 250, 91, 232, 71, 201, 238, 250,
+ 91, 228, 111, 207, 100, 250, 91, 233, 238, 57, 220, 27, 250, 91, 233,
+ 238, 57, 250, 91, 235, 83, 57, 129, 251, 144, 233, 233, 129, 251, 144,
+ 205, 195, 129, 251, 144, 204, 40, 129, 251, 144, 192, 97, 208, 222, 129,
+ 251, 144, 192, 97, 231, 223, 129, 251, 144, 199, 72, 129, 251, 144, 207,
+ 165, 129, 251, 144, 192, 95, 129, 251, 144, 210, 214, 129, 251, 144, 193,
+ 37, 129, 251, 144, 199, 247, 129, 251, 144, 231, 132, 129, 251, 144, 231,
+ 133, 215, 198, 129, 251, 144, 231, 130, 129, 251, 144, 208, 223, 210,
+ 246, 129, 251, 144, 200, 38, 231, 151, 129, 251, 144, 210, 187, 129, 251,
+ 144, 250, 17, 230, 93, 129, 251, 144, 215, 208, 129, 251, 144, 217, 185,
+ 129, 251, 144, 216, 250, 129, 251, 144, 216, 251, 222, 42, 129, 251, 144,
+ 237, 192, 129, 251, 144, 208, 234, 129, 251, 144, 200, 38, 208, 217, 129,
+ 251, 144, 193, 50, 248, 81, 192, 236, 129, 251, 144, 211, 223, 129, 251,
+ 144, 223, 210, 129, 251, 144, 237, 93, 129, 251, 144, 192, 19, 129, 122,
+ 217, 105, 242, 130, 129, 209, 192, 203, 240, 129, 209, 192, 230, 17, 205,
+ 195, 129, 209, 192, 230, 17, 210, 205, 129, 209, 192, 230, 17, 208, 227,
+ 129, 209, 192, 229, 139, 129, 209, 192, 198, 109, 129, 209, 192, 205,
+ 195, 129, 209, 192, 210, 205, 129, 209, 192, 208, 227, 129, 209, 192,
+ 229, 27, 129, 209, 192, 229, 28, 230, 19, 39, 196, 127, 129, 209, 192,
+ 208, 163, 129, 209, 192, 237, 241, 211, 164, 217, 140, 129, 209, 192,
+ 216, 239, 129, 209, 38, 217, 137, 129, 209, 192, 208, 51, 129, 209, 38,
+ 210, 216, 129, 209, 192, 203, 225, 236, 114, 129, 209, 192, 203, 79, 236,
+ 114, 129, 209, 38, 202, 199, 210, 207, 129, 122, 113, 236, 114, 129, 122,
+ 106, 236, 114, 129, 209, 38, 212, 231, 230, 92, 129, 209, 192, 208, 228,
+ 208, 222, 129, 1, 251, 26, 129, 1, 248, 65, 129, 1, 231, 31, 129, 1, 237,
+ 221, 129, 1, 229, 255, 129, 1, 196, 127, 129, 1, 192, 89, 129, 1, 229,
+ 196, 129, 1, 200, 8, 129, 1, 192, 239, 129, 1, 52, 222, 139, 129, 1, 222,
+ 139, 129, 1, 220, 86, 129, 1, 52, 217, 12, 129, 1, 217, 12, 129, 1, 52,
+ 212, 230, 129, 1, 212, 230, 129, 1, 206, 46, 129, 1, 249, 231, 129, 1,
+ 52, 210, 181, 129, 1, 210, 181, 129, 1, 52, 198, 113, 129, 1, 198, 113,
+ 129, 1, 208, 186, 129, 1, 207, 188, 129, 1, 203, 224, 129, 1, 200, 96,
+ 129, 192, 240, 198, 185, 129, 34, 193, 20, 55, 196, 127, 129, 34, 193,
+ 20, 196, 128, 192, 239, 129, 34, 193, 20, 55, 192, 239, 129, 209, 38,
+ 231, 132, 129, 209, 38, 231, 130, 9, 31, 57, 9, 3, 206, 39, 9, 232, 147,
+ 217, 122, 9, 3, 206, 81, 9, 3, 206, 42, 9, 31, 122, 58, 250, 126, 238,
+ 158, 207, 22, 250, 126, 232, 112, 207, 22, 9, 208, 15, 250, 126, 210,
+ 134, 216, 126, 57, 250, 126, 210, 134, 200, 31, 199, 165, 57, 251, 85,
+ 57, 9, 242, 38, 9, 237, 179, 204, 165, 9, 209, 194, 196, 107, 57, 9, 3,
+ 216, 104, 9, 3, 206, 57, 251, 29, 194, 135, 9, 3, 251, 29, 250, 42, 9, 3,
+ 208, 49, 251, 28, 9, 3, 208, 57, 251, 6, 250, 199, 9, 3, 200, 138, 9, 2,
+ 139, 200, 151, 9, 2, 139, 34, 157, 4, 220, 95, 4, 193, 64, 9, 2, 139,
+ 192, 103, 9, 2, 233, 58, 9, 2, 237, 215, 9, 2, 222, 86, 9, 204, 180, 9,
+ 1, 77, 9, 198, 170, 78, 209, 38, 77, 9, 208, 159, 77, 9, 1, 222, 90, 193,
+ 64, 9, 1, 230, 66, 9, 1, 157, 4, 217, 210, 58, 9, 1, 157, 4, 230, 67, 58,
+ 9, 1, 194, 120, 4, 230, 67, 58, 9, 1, 157, 4, 230, 67, 63, 9, 1, 97, 4,
+ 230, 67, 58, 9, 1, 251, 26, 9, 1, 248, 96, 9, 1, 200, 50, 217, 133, 9, 1,
+ 200, 49, 9, 1, 199, 220, 9, 1, 223, 37, 9, 1, 230, 89, 9, 1, 221, 245, 9,
+ 1, 237, 227, 9, 1, 199, 232, 9, 1, 207, 221, 9, 1, 192, 103, 9, 1, 205,
+ 201, 9, 1, 204, 8, 9, 1, 206, 86, 9, 1, 237, 250, 9, 1, 200, 151, 9, 1,
+ 192, 106, 9, 1, 251, 57, 9, 1, 231, 79, 9, 1, 222, 40, 4, 103, 236, 112,
+ 58, 9, 1, 222, 40, 4, 112, 236, 112, 63, 9, 1, 233, 62, 97, 4, 223, 121,
+ 196, 236, 9, 1, 233, 62, 97, 4, 103, 236, 112, 58, 9, 1, 233, 62, 97, 4,
+ 112, 236, 112, 58, 9, 200, 102, 9, 1, 233, 34, 9, 1, 208, 232, 9, 1, 222,
+ 139, 9, 1, 220, 94, 9, 1, 217, 26, 9, 1, 213, 123, 9, 1, 229, 220, 9, 1,
+ 194, 119, 9, 1, 157, 217, 168, 9, 1, 193, 64, 9, 233, 56, 9, 237, 213, 9,
+ 222, 84, 9, 233, 58, 9, 237, 215, 9, 222, 86, 9, 204, 54, 9, 201, 131, 9,
+ 217, 208, 58, 9, 230, 67, 58, 9, 230, 67, 63, 9, 201, 155, 251, 26, 9,
+ 223, 121, 237, 215, 9, 122, 213, 124, 231, 50, 9, 191, 238, 9, 18, 3, 2,
+ 196, 237, 58, 9, 18, 3, 223, 121, 2, 196, 237, 58, 9, 18, 3, 78, 63, 9,
+ 207, 168, 237, 215, 9, 233, 59, 4, 103, 236, 111, 9, 194, 121, 230, 67,
+ 63, 250, 126, 17, 192, 76, 250, 126, 17, 101, 250, 126, 17, 104, 250,
+ 126, 17, 133, 250, 126, 17, 134, 250, 126, 17, 151, 250, 126, 17, 170,
+ 250, 126, 17, 179, 250, 126, 17, 174, 250, 126, 17, 182, 9, 210, 133, 57,
+ 9, 237, 108, 204, 165, 9, 199, 164, 204, 165, 9, 232, 214, 209, 190, 202,
+ 19, 9, 1, 236, 113, 248, 96, 9, 1, 236, 113, 208, 232, 9, 1, 201, 107,
+ 251, 26, 9, 1, 157, 194, 136, 9, 1, 157, 4, 194, 121, 230, 67, 58, 9, 1,
+ 157, 4, 194, 121, 230, 67, 63, 9, 1, 139, 230, 66, 9, 1, 139, 230, 67,
+ 251, 26, 9, 1, 139, 230, 67, 194, 119, 9, 1, 124, 4, 230, 67, 58, 9, 1,
+ 139, 230, 67, 193, 64, 9, 1, 198, 75, 9, 1, 198, 73, 9, 1, 248, 106, 9,
+ 1, 200, 50, 4, 207, 81, 9, 1, 200, 50, 4, 112, 236, 112, 95, 235, 91, 9,
+ 1, 210, 161, 9, 1, 200, 47, 9, 1, 248, 94, 9, 1, 176, 4, 230, 67, 58, 9,
+ 1, 176, 4, 103, 236, 112, 84, 58, 9, 1, 212, 187, 9, 1, 235, 23, 9, 1,
+ 176, 4, 112, 236, 112, 58, 9, 1, 200, 83, 9, 1, 200, 81, 9, 1, 237, 156,
+ 9, 1, 237, 228, 4, 207, 81, 9, 1, 237, 228, 4, 78, 63, 9, 1, 237, 228, 4,
+ 78, 248, 84, 26, 2, 200, 151, 9, 1, 237, 234, 9, 1, 237, 158, 9, 1, 235,
+ 52, 9, 1, 237, 228, 4, 112, 236, 112, 95, 235, 91, 9, 1, 237, 228, 4,
+ 232, 119, 236, 112, 58, 9, 1, 206, 251, 9, 1, 207, 222, 4, 2, 196, 236,
+ 9, 1, 207, 222, 4, 207, 81, 9, 1, 207, 222, 4, 78, 63, 9, 1, 207, 222, 4,
+ 2, 196, 237, 63, 9, 1, 207, 222, 4, 78, 248, 84, 26, 78, 58, 9, 1, 207,
+ 222, 4, 103, 236, 112, 58, 9, 1, 223, 34, 9, 1, 207, 222, 4, 232, 119,
+ 236, 112, 58, 9, 1, 205, 202, 4, 78, 248, 84, 26, 78, 58, 9, 1, 205, 202,
+ 4, 112, 236, 112, 63, 9, 1, 205, 202, 4, 112, 236, 112, 248, 84, 26, 112,
+ 236, 112, 58, 9, 1, 206, 87, 4, 103, 236, 112, 63, 9, 1, 206, 87, 4, 112,
+ 236, 112, 58, 9, 1, 200, 152, 4, 112, 236, 112, 58, 9, 1, 251, 58, 4,
+ 112, 236, 112, 58, 9, 1, 236, 113, 233, 34, 9, 1, 233, 35, 4, 78, 216, 2,
+ 63, 9, 1, 233, 35, 4, 78, 63, 9, 1, 196, 116, 9, 1, 233, 35, 4, 112, 236,
+ 112, 63, 9, 1, 210, 159, 9, 1, 208, 233, 4, 78, 58, 9, 1, 208, 233, 4,
+ 112, 236, 112, 58, 9, 1, 222, 39, 9, 1, 201, 75, 222, 139, 9, 1, 222,
+ 140, 4, 207, 81, 9, 1, 222, 140, 4, 78, 58, 9, 1, 214, 167, 9, 1, 222,
+ 140, 4, 112, 236, 112, 63, 9, 1, 231, 220, 9, 1, 231, 221, 4, 207, 81, 9,
+ 1, 214, 88, 9, 1, 231, 221, 4, 103, 236, 112, 63, 9, 1, 230, 173, 9, 1,
+ 231, 221, 4, 112, 236, 112, 58, 9, 1, 220, 95, 4, 2, 196, 236, 9, 1, 220,
+ 95, 4, 78, 58, 9, 1, 220, 95, 4, 112, 236, 112, 58, 9, 1, 220, 95, 4,
+ 112, 236, 112, 63, 9, 1, 213, 124, 4, 78, 63, 9, 1, 213, 124, 231, 50, 9,
+ 1, 207, 58, 9, 1, 213, 124, 4, 207, 81, 9, 1, 213, 124, 4, 112, 236, 112,
+ 58, 9, 1, 229, 221, 236, 142, 9, 1, 200, 84, 4, 78, 58, 9, 1, 229, 221,
+ 4, 97, 58, 9, 1, 229, 221, 230, 251, 9, 1, 229, 221, 230, 252, 4, 230,
+ 67, 58, 9, 1, 200, 50, 217, 134, 230, 251, 9, 1, 194, 120, 4, 207, 81, 9,
+ 1, 221, 170, 212, 0, 9, 1, 212, 0, 9, 1, 68, 9, 1, 192, 214, 9, 1, 221,
+ 170, 192, 214, 9, 1, 194, 120, 4, 103, 236, 112, 58, 9, 1, 196, 123, 9,
+ 1, 233, 62, 193, 64, 9, 1, 97, 4, 200, 147, 9, 1, 97, 4, 2, 196, 236, 9,
+ 1, 194, 120, 4, 78, 58, 9, 1, 71, 9, 1, 97, 4, 112, 236, 112, 63, 9, 1,
+ 97, 248, 186, 9, 1, 97, 248, 187, 4, 230, 67, 58, 9, 232, 71, 201, 238,
+ 9, 1, 251, 108, 9, 2, 139, 34, 206, 87, 4, 220, 95, 4, 157, 217, 168, 9,
+ 2, 139, 34, 208, 233, 4, 220, 95, 4, 157, 217, 168, 9, 2, 139, 91, 88,
+ 20, 9, 2, 139, 220, 95, 251, 26, 9, 2, 139, 223, 37, 9, 2, 139, 112, 236,
+ 111, 9, 2, 139, 205, 201, 9, 234, 80, 80, 249, 235, 9, 202, 15, 80, 206,
+ 210, 234, 125, 229, 134, 9, 2, 139, 207, 7, 192, 76, 9, 2, 139, 197, 37,
+ 207, 241, 192, 76, 9, 2, 139, 236, 113, 229, 246, 80, 221, 245, 9, 2,
+ 139, 91, 72, 20, 9, 2, 132, 205, 201, 9, 2, 139, 217, 209, 9, 2, 194,
+ 119, 9, 2, 193, 64, 9, 2, 139, 193, 64, 9, 2, 139, 213, 123, 9, 209, 232,
+ 80, 206, 71, 9, 234, 90, 246, 138, 132, 201, 238, 9, 234, 90, 246, 138,
+ 139, 201, 238, 9, 207, 7, 139, 201, 239, 4, 232, 248, 246, 137, 9, 2,
+ 132, 217, 26, 9, 1, 237, 228, 4, 223, 121, 196, 236, 9, 1, 207, 222, 4,
+ 223, 121, 196, 236, 233, 193, 250, 126, 17, 192, 76, 233, 193, 250, 126,
+ 17, 101, 233, 193, 250, 126, 17, 104, 233, 193, 250, 126, 17, 133, 233,
+ 193, 250, 126, 17, 134, 233, 193, 250, 126, 17, 151, 233, 193, 250, 126,
+ 17, 170, 233, 193, 250, 126, 17, 179, 233, 193, 250, 126, 17, 174, 233,
+ 193, 250, 126, 17, 182, 9, 1, 204, 9, 4, 78, 63, 9, 1, 237, 251, 4, 78,
+ 63, 9, 1, 231, 80, 4, 78, 63, 9, 3, 203, 77, 250, 229, 9, 3, 203, 77,
+ 209, 151, 217, 5, 9, 1, 229, 221, 4, 223, 121, 196, 236, 200, 248, 234,
+ 80, 80, 210, 243, 200, 248, 201, 102, 232, 71, 201, 238, 200, 248, 201,
+ 157, 232, 71, 201, 238, 200, 248, 201, 102, 242, 47, 200, 248, 201, 157,
+ 242, 47, 200, 248, 229, 5, 242, 47, 200, 248, 242, 48, 203, 16, 220, 28,
+ 200, 248, 242, 48, 203, 16, 207, 101, 200, 248, 201, 102, 242, 48, 203,
+ 16, 220, 28, 200, 248, 201, 157, 242, 48, 203, 16, 207, 101, 200, 248,
+ 238, 245, 200, 248, 230, 24, 212, 20, 200, 248, 230, 24, 216, 237, 200,
+ 248, 230, 24, 250, 39, 200, 248, 251, 151, 77, 200, 248, 1, 251, 31, 200,
+ 248, 1, 201, 107, 251, 31, 200, 248, 1, 248, 62, 200, 248, 1, 231, 210,
+ 200, 248, 1, 231, 211, 231, 187, 200, 248, 1, 237, 224, 200, 248, 1, 236,
+ 113, 237, 225, 207, 74, 200, 248, 1, 229, 255, 200, 248, 1, 194, 119,
+ 200, 248, 1, 192, 103, 200, 248, 1, 229, 194, 200, 248, 1, 200, 4, 200,
+ 248, 1, 200, 5, 231, 187, 200, 248, 1, 192, 197, 200, 248, 1, 192, 198,
+ 229, 255, 200, 248, 1, 222, 109, 200, 248, 1, 220, 93, 200, 248, 1, 216,
+ 122, 200, 248, 1, 212, 230, 200, 248, 1, 204, 173, 200, 248, 1, 52, 204,
+ 173, 200, 248, 1, 71, 200, 248, 1, 210, 181, 200, 248, 1, 207, 168, 210,
+ 181, 200, 248, 1, 206, 83, 200, 248, 1, 208, 226, 200, 248, 1, 207, 74,
+ 200, 248, 1, 203, 224, 200, 248, 1, 200, 93, 200, 248, 1, 210, 118, 248,
+ 47, 200, 248, 1, 210, 118, 231, 77, 200, 248, 1, 210, 118, 237, 35, 200,
+ 248, 209, 52, 58, 200, 248, 209, 52, 63, 200, 248, 209, 52, 235, 110,
+ 200, 248, 192, 1, 58, 200, 248, 192, 1, 63, 200, 248, 192, 1, 235, 110,
+ 200, 248, 208, 10, 58, 200, 248, 208, 10, 63, 200, 248, 235, 111, 192, 9,
+ 229, 4, 200, 248, 235, 111, 192, 9, 250, 200, 200, 248, 230, 4, 58, 200,
+ 248, 230, 4, 63, 200, 248, 230, 3, 235, 110, 200, 248, 234, 3, 58, 200,
+ 248, 234, 3, 63, 200, 248, 206, 174, 200, 248, 233, 28, 236, 114, 200,
+ 248, 208, 136, 200, 248, 206, 204, 200, 248, 103, 84, 236, 112, 58, 200,
+ 248, 103, 84, 236, 112, 63, 200, 248, 112, 236, 112, 58, 200, 248, 112,
+ 236, 112, 63, 200, 248, 212, 18, 219, 176, 58, 200, 248, 212, 18, 219,
+ 176, 63, 200, 248, 215, 184, 200, 248, 248, 185, 200, 248, 1, 202, 194,
+ 192, 69, 200, 248, 1, 202, 194, 221, 238, 200, 248, 1, 202, 194, 233, 47,
+ 9, 1, 248, 97, 4, 112, 236, 112, 228, 210, 63, 9, 1, 248, 97, 4, 78, 248,
+ 84, 26, 112, 236, 112, 58, 9, 1, 248, 97, 4, 112, 236, 112, 209, 188,
+ 197, 30, 63, 9, 1, 248, 97, 4, 112, 236, 112, 209, 188, 197, 30, 248, 84,
+ 26, 103, 236, 112, 58, 9, 1, 248, 97, 4, 103, 236, 112, 248, 84, 26, 78,
+ 58, 9, 1, 248, 97, 4, 223, 121, 2, 196, 237, 63, 9, 1, 248, 97, 4, 2,
+ 196, 236, 9, 1, 176, 4, 103, 236, 112, 58, 9, 1, 176, 4, 112, 236, 112,
+ 209, 188, 197, 30, 63, 9, 1, 237, 228, 4, 103, 236, 112, 196, 55, 248,
+ 84, 26, 2, 200, 151, 9, 1, 237, 228, 4, 223, 121, 2, 196, 237, 63, 9, 1,
+ 207, 222, 4, 111, 9, 1, 205, 202, 4, 232, 119, 236, 112, 58, 9, 1, 251,
+ 58, 4, 103, 236, 112, 58, 9, 1, 251, 58, 4, 112, 236, 112, 209, 188, 235,
+ 92, 58, 9, 1, 251, 58, 4, 103, 236, 112, 196, 55, 58, 9, 1, 233, 35, 4,
+ 103, 236, 112, 63, 9, 1, 233, 35, 4, 112, 236, 112, 209, 188, 197, 30,
+ 63, 9, 1, 222, 40, 4, 78, 58, 9, 1, 222, 40, 4, 112, 236, 112, 58, 9, 1,
+ 222, 40, 4, 112, 236, 112, 209, 188, 197, 30, 63, 9, 1, 91, 4, 78, 58, 9,
+ 1, 91, 4, 78, 63, 9, 1, 213, 124, 4, 103, 236, 112, 63, 9, 1, 213, 124,
+ 4, 2, 200, 151, 9, 1, 213, 124, 4, 2, 196, 236, 9, 1, 220, 95, 4, 161, 9,
+ 1, 207, 222, 4, 103, 236, 112, 196, 55, 58, 9, 1, 207, 222, 4, 230, 67,
+ 58, 9, 1, 205, 202, 4, 103, 236, 112, 196, 55, 58, 9, 1, 176, 4, 2, 9, 1,
+ 200, 152, 63, 9, 1, 176, 4, 2, 9, 1, 200, 152, 26, 103, 236, 111, 9, 1,
+ 205, 202, 4, 2, 9, 1, 200, 152, 26, 103, 236, 111, 9, 1, 207, 222, 4, 2,
+ 9, 1, 200, 152, 26, 103, 236, 111, 9, 1, 176, 4, 2, 9, 1, 200, 152, 58,
+ 9, 1, 157, 4, 233, 193, 250, 126, 17, 103, 58, 9, 1, 157, 4, 233, 193,
+ 250, 126, 17, 112, 58, 9, 1, 233, 62, 97, 4, 233, 193, 250, 126, 17, 103,
+ 58, 9, 1, 233, 62, 97, 4, 233, 193, 250, 126, 17, 112, 58, 9, 1, 233, 62,
+ 97, 4, 233, 193, 250, 126, 17, 232, 119, 63, 9, 1, 194, 120, 4, 233, 193,
+ 250, 126, 17, 103, 58, 9, 1, 194, 120, 4, 233, 193, 250, 126, 17, 112,
+ 58, 9, 1, 97, 248, 187, 4, 233, 193, 250, 126, 17, 103, 58, 9, 1, 97,
+ 248, 187, 4, 233, 193, 250, 126, 17, 112, 58, 9, 1, 176, 4, 233, 193,
+ 250, 126, 17, 232, 119, 63, 9, 1, 205, 202, 4, 233, 193, 250, 126, 17,
+ 232, 119, 58, 9, 1, 205, 202, 4, 223, 121, 196, 236, 9, 1, 222, 140, 4,
+ 103, 236, 112, 58, 199, 237, 1, 230, 99, 199, 237, 1, 204, 18, 199, 237,
+ 1, 213, 122, 199, 237, 1, 208, 68, 199, 237, 1, 249, 1, 199, 237, 1, 219,
+ 219, 199, 237, 1, 222, 154, 199, 237, 1, 251, 13, 199, 237, 1, 196, 155,
+ 199, 237, 1, 217, 25, 199, 237, 1, 233, 95, 199, 237, 1, 237, 38, 199,
+ 237, 1, 199, 239, 199, 237, 1, 220, 181, 199, 237, 1, 231, 229, 199, 237,
+ 1, 231, 1, 199, 237, 1, 205, 200, 199, 237, 1, 237, 177, 199, 237, 1,
+ 192, 92, 199, 237, 1, 200, 95, 199, 237, 1, 193, 129, 199, 237, 1, 210,
+ 195, 199, 237, 1, 223, 46, 199, 237, 1, 242, 248, 199, 237, 1, 198, 82,
+ 199, 237, 1, 229, 186, 199, 237, 1, 221, 249, 199, 237, 1, 199, 238, 199,
+ 237, 1, 192, 110, 199, 237, 1, 204, 7, 199, 237, 1, 206, 90, 199, 237, 1,
+ 237, 254, 199, 237, 1, 155, 199, 237, 1, 192, 8, 199, 237, 1, 251, 54,
+ 199, 237, 1, 231, 78, 199, 237, 1, 208, 236, 199, 237, 1, 194, 162, 199,
+ 237, 251, 153, 199, 237, 251, 254, 199, 237, 228, 52, 199, 237, 234, 170,
+ 199, 237, 197, 112, 199, 237, 211, 193, 199, 237, 234, 180, 199, 237,
+ 233, 183, 199, 237, 212, 17, 199, 237, 212, 25, 199, 237, 201, 131, 199,
+ 237, 1, 215, 84, 213, 206, 17, 192, 76, 213, 206, 17, 101, 213, 206, 17,
+ 104, 213, 206, 17, 133, 213, 206, 17, 134, 213, 206, 17, 151, 213, 206,
+ 17, 170, 213, 206, 17, 179, 213, 206, 17, 174, 213, 206, 17, 182, 213,
+ 206, 1, 64, 213, 206, 1, 234, 171, 213, 206, 1, 70, 213, 206, 1, 71, 213,
+ 206, 1, 68, 213, 206, 1, 211, 194, 213, 206, 1, 74, 213, 206, 1, 237,
+ 242, 213, 206, 1, 215, 151, 213, 206, 1, 249, 3, 213, 206, 1, 166, 213,
+ 206, 1, 189, 213, 206, 1, 223, 62, 213, 206, 1, 246, 117, 213, 206, 1,
+ 238, 0, 213, 206, 1, 167, 213, 206, 1, 207, 3, 213, 206, 1, 188, 213,
+ 206, 1, 231, 175, 213, 206, 1, 233, 97, 213, 206, 1, 160, 213, 206, 1,
+ 177, 213, 206, 1, 215, 97, 194, 25, 213, 206, 1, 172, 213, 206, 1, 212,
+ 201, 213, 206, 1, 181, 213, 206, 1, 144, 213, 206, 1, 194, 169, 213, 206,
+ 1, 168, 213, 206, 1, 212, 202, 194, 25, 213, 206, 1, 222, 225, 223, 62,
+ 213, 206, 1, 222, 225, 246, 117, 213, 206, 1, 222, 225, 167, 213, 206,
+ 38, 203, 195, 139, 199, 18, 213, 206, 38, 203, 195, 132, 199, 18, 213,
+ 206, 38, 203, 195, 207, 73, 199, 18, 213, 206, 38, 184, 237, 58, 199, 18,
+ 213, 206, 38, 184, 139, 199, 18, 213, 206, 38, 184, 132, 199, 18, 213,
+ 206, 38, 184, 207, 73, 199, 18, 213, 206, 38, 215, 48, 77, 213, 206, 38,
+ 55, 78, 58, 213, 206, 139, 158, 250, 147, 213, 206, 132, 158, 250, 147,
+ 213, 206, 16, 211, 195, 237, 72, 213, 206, 16, 231, 174, 213, 206, 242,
+ 38, 213, 206, 233, 204, 77, 213, 206, 220, 153, 213, 206, 237, 203, 213,
+ 206, 236, 116, 57, 213, 206, 200, 127, 57, 206, 49, 1, 251, 33, 206, 49,
+ 1, 248, 1, 206, 49, 1, 231, 209, 206, 49, 1, 237, 226, 206, 49, 1, 223,
+ 73, 206, 49, 1, 249, 1, 206, 49, 1, 192, 79, 206, 49, 1, 223, 82, 206,
+ 49, 1, 199, 63, 206, 49, 1, 192, 178, 206, 49, 1, 222, 155, 206, 49, 1,
+ 220, 177, 206, 49, 1, 216, 122, 206, 49, 1, 212, 230, 206, 49, 1, 203,
+ 75, 206, 49, 1, 223, 190, 206, 49, 1, 233, 11, 206, 49, 1, 198, 116, 206,
+ 49, 1, 208, 156, 206, 49, 1, 207, 74, 206, 49, 1, 204, 37, 206, 49, 1,
+ 200, 173, 206, 49, 122, 223, 190, 206, 49, 122, 223, 189, 206, 49, 122,
+ 212, 12, 206, 49, 122, 237, 240, 206, 49, 73, 1, 234, 37, 192, 178, 206,
+ 49, 122, 234, 37, 192, 178, 206, 49, 18, 3, 184, 71, 206, 49, 18, 3, 71,
+ 206, 49, 18, 3, 211, 108, 252, 33, 206, 49, 18, 3, 184, 252, 33, 206, 49,
+ 18, 3, 252, 33, 206, 49, 18, 3, 211, 108, 64, 206, 49, 18, 3, 184, 64,
+ 206, 49, 18, 3, 64, 206, 49, 73, 1, 203, 195, 64, 206, 49, 18, 3, 203,
+ 195, 64, 206, 49, 18, 3, 184, 68, 206, 49, 18, 3, 68, 206, 49, 73, 1, 70,
+ 206, 49, 18, 3, 184, 70, 206, 49, 18, 3, 70, 206, 49, 18, 3, 74, 206, 49,
+ 18, 3, 201, 131, 206, 49, 122, 214, 188, 206, 49, 209, 38, 214, 188, 206,
+ 49, 209, 38, 251, 82, 206, 49, 209, 38, 250, 213, 206, 49, 209, 38, 248,
+ 163, 206, 49, 209, 38, 250, 18, 206, 49, 209, 38, 203, 212, 206, 49, 251,
+ 151, 77, 206, 49, 209, 38, 217, 15, 208, 192, 206, 49, 209, 38, 192, 16,
+ 206, 49, 209, 38, 208, 192, 206, 49, 209, 38, 192, 109, 206, 49, 209, 38,
+ 198, 5, 206, 49, 209, 38, 250, 97, 206, 49, 209, 38, 202, 199, 217, 108,
+ 206, 49, 209, 38, 250, 194, 217, 156, 1, 230, 73, 217, 156, 1, 251, 238,
+ 217, 156, 1, 251, 80, 217, 156, 1, 251, 125, 217, 156, 1, 251, 72, 217,
+ 156, 1, 197, 1, 217, 156, 1, 249, 228, 217, 156, 1, 223, 82, 217, 156, 1,
+ 250, 15, 217, 156, 1, 251, 39, 217, 156, 1, 251, 44, 217, 156, 1, 251,
+ 35, 217, 156, 1, 250, 241, 217, 156, 1, 250, 224, 217, 156, 1, 250, 61,
+ 217, 156, 1, 223, 190, 217, 156, 1, 250, 163, 217, 156, 1, 250, 28, 217,
+ 156, 1, 250, 135, 217, 156, 1, 250, 131, 217, 156, 1, 250, 53, 217, 156,
+ 1, 250, 26, 217, 156, 1, 235, 36, 217, 156, 1, 222, 147, 217, 156, 1,
+ 251, 57, 217, 156, 251, 86, 77, 217, 156, 195, 250, 77, 217, 156, 231,
+ 146, 77, 217, 156, 209, 37, 200, 248, 1, 135, 214, 165, 200, 248, 1, 135,
+ 223, 62, 200, 248, 1, 135, 212, 201, 200, 248, 1, 135, 198, 83, 200, 248,
+ 1, 135, 213, 178, 200, 248, 1, 135, 213, 160, 200, 248, 1, 135, 248, 54,
+ 200, 248, 1, 135, 167, 200, 248, 1, 135, 219, 137, 200, 248, 1, 135, 219,
+ 126, 200, 248, 1, 135, 202, 92, 9, 1, 248, 97, 4, 2, 196, 237, 63, 9, 1,
+ 248, 97, 4, 230, 67, 58, 9, 1, 223, 38, 4, 103, 236, 112, 58, 9, 1, 200,
+ 152, 4, 103, 236, 112, 58, 9, 1, 233, 35, 4, 78, 248, 84, 26, 112, 236,
+ 112, 58, 9, 1, 208, 233, 4, 78, 63, 9, 1, 220, 95, 4, 55, 161, 9, 1, 91,
+ 4, 112, 236, 112, 58, 9, 1, 97, 4, 103, 236, 112, 248, 84, 26, 230, 67,
+ 58, 9, 1, 97, 4, 103, 236, 112, 248, 84, 26, 78, 58, 9, 1, 207, 222, 4,
+ 219, 69, 9, 1, 194, 120, 4, 78, 194, 40, 9, 1, 207, 36, 193, 64, 9, 1,
+ 132, 251, 26, 9, 1, 237, 228, 4, 112, 236, 112, 63, 9, 1, 206, 87, 4,
+ 112, 236, 112, 63, 9, 1, 231, 221, 4, 223, 121, 111, 9, 1, 201, 230, 194,
+ 119, 9, 1, 192, 104, 4, 223, 121, 196, 237, 58, 9, 1, 251, 58, 4, 112,
+ 236, 112, 63, 9, 1, 222, 140, 4, 78, 63, 9, 1, 248, 97, 4, 2, 91, 58, 9,
+ 1, 210, 162, 4, 2, 91, 58, 9, 1, 200, 50, 4, 2, 200, 50, 58, 9, 1, 207,
+ 222, 4, 2, 213, 124, 58, 9, 1, 97, 4, 103, 236, 112, 248, 84, 26, 2, 213,
+ 124, 58, 9, 1, 251, 83, 233, 34, 9, 1, 251, 83, 208, 232, 9, 1, 251, 83,
+ 213, 123, 9, 1, 210, 162, 4, 2, 196, 236, 9, 1, 200, 50, 4, 2, 196, 236,
+ 9, 1, 198, 76, 4, 2, 196, 236, 9, 1, 200, 84, 4, 2, 196, 236, 9, 1, 222,
+ 40, 4, 2, 196, 236, 9, 1, 231, 80, 4, 112, 236, 112, 58, 9, 1, 251, 83,
+ 208, 233, 4, 112, 236, 112, 58, 9, 1, 223, 38, 4, 112, 236, 112, 58, 9,
+ 1, 223, 38, 4, 112, 236, 112, 63, 9, 1, 220, 95, 4, 2, 9, 1, 200, 152,
+ 58, 9, 2, 132, 194, 119, 9, 2, 139, 194, 11, 250, 128, 9, 2, 139, 206,
+ 86, 9, 2, 139, 251, 57, 9, 2, 139, 208, 232, 9, 2, 139, 213, 124, 4, 222,
+ 86, 9, 2, 132, 213, 124, 4, 222, 86, 9, 2, 139, 194, 11, 250, 25, 9, 2,
+ 139, 194, 11, 250, 60, 9, 2, 139, 194, 11, 250, 223, 9, 2, 139, 194, 11,
+ 206, 65, 9, 2, 139, 194, 11, 208, 196, 9, 2, 139, 194, 11, 194, 142, 9,
+ 2, 139, 232, 147, 217, 122, 9, 2, 139, 3, 206, 81, 9, 236, 190, 234, 80,
+ 80, 249, 235, 9, 163, 237, 216, 63, 9, 238, 138, 233, 58, 9, 238, 138,
+ 237, 215, 9, 238, 138, 222, 86, 9, 238, 138, 233, 56, 9, 238, 138, 237,
+ 213, 9, 238, 138, 222, 84, 9, 158, 90, 78, 58, 9, 158, 103, 236, 112, 58,
+ 9, 158, 219, 70, 58, 9, 158, 90, 78, 63, 9, 158, 103, 236, 112, 63, 9,
+ 158, 219, 70, 63, 9, 211, 184, 233, 56, 9, 211, 184, 237, 213, 9, 211,
+ 184, 222, 84, 9, 2, 139, 194, 119, 9, 233, 59, 4, 207, 81, 9, 233, 59, 4,
+ 78, 58, 9, 222, 87, 4, 78, 63, 9, 46, 250, 78, 58, 9, 51, 250, 78, 58, 9,
+ 46, 250, 78, 63, 9, 51, 250, 78, 63, 9, 55, 51, 250, 78, 58, 9, 55, 51,
+ 250, 78, 95, 4, 236, 114, 9, 51, 250, 78, 95, 4, 236, 114, 9, 237, 216,
+ 4, 236, 114, 9, 122, 203, 109, 213, 124, 231, 50, 107, 3, 223, 121, 246,
+ 234, 107, 3, 246, 234, 107, 3, 250, 168, 107, 3, 196, 6, 107, 1, 203,
+ 195, 64, 107, 1, 64, 107, 1, 252, 33, 107, 1, 70, 107, 1, 223, 224, 107,
+ 1, 68, 107, 1, 196, 251, 107, 1, 118, 150, 107, 1, 118, 165, 107, 1, 246,
+ 237, 71, 107, 1, 203, 195, 71, 107, 1, 71, 107, 1, 251, 63, 107, 1, 246,
+ 237, 74, 107, 1, 203, 195, 74, 107, 1, 74, 107, 1, 250, 8, 107, 1, 160,
+ 107, 1, 221, 250, 107, 1, 231, 233, 107, 1, 231, 84, 107, 1, 214, 165,
+ 107, 1, 247, 19, 107, 1, 246, 117, 107, 1, 223, 62, 107, 1, 223, 28, 107,
+ 1, 212, 201, 107, 1, 198, 83, 107, 1, 198, 71, 107, 1, 237, 161, 107, 1,
+ 237, 145, 107, 1, 213, 178, 107, 1, 189, 107, 1, 199, 240, 107, 1, 238,
+ 0, 107, 1, 237, 40, 107, 1, 181, 107, 1, 213, 160, 107, 1, 166, 107, 1,
+ 210, 94, 107, 1, 249, 3, 107, 1, 248, 54, 107, 1, 172, 107, 1, 168, 107,
+ 1, 167, 107, 1, 207, 3, 107, 1, 177, 107, 1, 219, 137, 107, 1, 219, 126,
+ 107, 1, 196, 157, 107, 1, 204, 64, 107, 1, 202, 92, 107, 1, 188, 107, 1,
+ 144, 107, 18, 3, 212, 0, 107, 18, 3, 211, 192, 107, 3, 212, 241, 107, 3,
+ 249, 246, 107, 18, 3, 252, 33, 107, 18, 3, 70, 107, 18, 3, 223, 224, 107,
+ 18, 3, 68, 107, 18, 3, 196, 251, 107, 18, 3, 118, 150, 107, 18, 3, 118,
+ 207, 4, 107, 18, 3, 246, 237, 71, 107, 18, 3, 203, 195, 71, 107, 18, 3,
+ 71, 107, 18, 3, 251, 63, 107, 18, 3, 246, 237, 74, 107, 18, 3, 203, 195,
+ 74, 107, 18, 3, 74, 107, 18, 3, 250, 8, 107, 3, 196, 11, 107, 18, 3, 209,
+ 91, 71, 107, 18, 3, 249, 241, 107, 211, 219, 107, 201, 218, 3, 197, 106,
+ 107, 201, 218, 3, 250, 170, 107, 230, 211, 251, 143, 107, 251, 130, 251,
+ 143, 107, 18, 3, 246, 237, 184, 71, 107, 18, 3, 197, 104, 107, 18, 3,
+ 196, 250, 107, 1, 208, 239, 107, 1, 221, 230, 107, 1, 231, 59, 107, 1,
+ 192, 112, 107, 1, 237, 150, 107, 1, 207, 156, 107, 1, 233, 97, 107, 1,
+ 192, 164, 107, 1, 118, 207, 4, 107, 1, 118, 219, 138, 107, 18, 3, 118,
+ 165, 107, 18, 3, 118, 219, 138, 107, 237, 208, 107, 55, 237, 208, 107,
+ 17, 192, 76, 107, 17, 101, 107, 17, 104, 107, 17, 133, 107, 17, 134, 107,
+ 17, 151, 107, 17, 170, 107, 17, 179, 107, 17, 174, 107, 17, 182, 107,
+ 251, 151, 57, 107, 3, 139, 202, 159, 236, 114, 107, 1, 246, 237, 64, 107,
+ 1, 212, 0, 107, 1, 211, 192, 107, 1, 249, 241, 107, 1, 197, 104, 107, 1,
+ 196, 250, 107, 1, 217, 114, 237, 161, 107, 1, 192, 71, 107, 1, 87, 168,
+ 107, 1, 231, 120, 107, 1, 223, 6, 107, 1, 231, 6, 201, 238, 107, 1, 237,
+ 151, 107, 1, 248, 159, 248, 76, 250, 197, 248, 76, 3, 246, 234, 248, 76,
+ 3, 250, 168, 248, 76, 3, 196, 6, 248, 76, 1, 64, 248, 76, 1, 252, 33,
+ 248, 76, 1, 70, 248, 76, 1, 223, 224, 248, 76, 1, 68, 248, 76, 1, 196,
+ 251, 248, 76, 1, 118, 150, 248, 76, 1, 118, 165, 248, 76, 1, 71, 248, 76,
+ 1, 251, 63, 248, 76, 1, 74, 248, 76, 1, 250, 8, 248, 76, 1, 160, 248, 76,
+ 1, 221, 250, 248, 76, 1, 231, 233, 248, 76, 1, 231, 84, 248, 76, 1, 214,
+ 165, 248, 76, 1, 247, 19, 248, 76, 1, 246, 117, 248, 76, 1, 223, 62, 248,
+ 76, 1, 223, 28, 248, 76, 1, 212, 201, 248, 76, 1, 198, 83, 248, 76, 1,
+ 198, 71, 248, 76, 1, 237, 161, 248, 76, 1, 237, 145, 248, 76, 1, 213,
+ 178, 248, 76, 1, 189, 248, 76, 1, 199, 240, 248, 76, 1, 238, 0, 248, 76,
+ 1, 237, 40, 248, 76, 1, 181, 248, 76, 1, 166, 248, 76, 1, 210, 94, 248,
+ 76, 1, 249, 3, 248, 76, 1, 248, 54, 248, 76, 1, 172, 248, 76, 1, 168,
+ 248, 76, 1, 167, 248, 76, 1, 177, 248, 76, 1, 204, 64, 248, 76, 1, 202,
+ 92, 248, 76, 1, 188, 248, 76, 1, 144, 248, 76, 3, 212, 241, 248, 76, 3,
+ 249, 246, 248, 76, 18, 3, 252, 33, 248, 76, 18, 3, 70, 248, 76, 18, 3,
+ 223, 224, 248, 76, 18, 3, 68, 248, 76, 18, 3, 196, 251, 248, 76, 18, 3,
+ 118, 150, 248, 76, 18, 3, 118, 207, 4, 248, 76, 18, 3, 71, 248, 76, 18,
+ 3, 251, 63, 248, 76, 18, 3, 74, 248, 76, 18, 3, 250, 8, 248, 76, 3, 196,
+ 11, 248, 76, 1, 221, 240, 189, 248, 76, 250, 9, 220, 2, 77, 248, 76, 1,
+ 207, 3, 248, 76, 1, 207, 156, 248, 76, 1, 192, 164, 248, 76, 1, 118, 207,
+ 4, 248, 76, 1, 118, 219, 138, 248, 76, 18, 3, 118, 165, 248, 76, 18, 3,
+ 118, 219, 138, 248, 76, 17, 192, 76, 248, 76, 17, 101, 248, 76, 17, 104,
+ 248, 76, 17, 133, 248, 76, 17, 134, 248, 76, 17, 151, 248, 76, 17, 170,
+ 248, 76, 17, 179, 248, 76, 17, 174, 248, 76, 17, 182, 248, 76, 1, 208,
+ 76, 4, 85, 237, 10, 248, 76, 1, 208, 76, 4, 106, 237, 10, 248, 76, 206,
+ 186, 77, 248, 76, 206, 186, 57, 248, 76, 238, 137, 212, 233, 101, 248,
+ 76, 238, 137, 212, 233, 104, 248, 76, 238, 137, 212, 233, 133, 248, 76,
+ 238, 137, 212, 233, 134, 248, 76, 238, 137, 212, 233, 90, 219, 241, 199,
+ 230, 199, 225, 237, 70, 248, 76, 238, 137, 237, 71, 203, 35, 248, 76,
+ 223, 83, 248, 76, 231, 200, 77, 248, 76, 1, 196, 120, 250, 168, 248, 76,
+ 251, 151, 57, 248, 76, 206, 36, 77, 230, 152, 3, 251, 124, 248, 20, 230,
+ 152, 3, 248, 20, 230, 152, 3, 196, 6, 230, 152, 1, 64, 230, 152, 1, 252,
+ 33, 230, 152, 1, 70, 230, 152, 1, 223, 224, 230, 152, 1, 68, 230, 152, 1,
+ 196, 251, 230, 152, 1, 234, 171, 230, 152, 1, 251, 63, 230, 152, 1, 211,
+ 194, 230, 152, 1, 250, 8, 230, 152, 1, 160, 230, 152, 1, 221, 250, 230,
+ 152, 1, 231, 233, 230, 152, 1, 231, 84, 230, 152, 1, 214, 165, 230, 152,
+ 1, 247, 19, 230, 152, 1, 246, 117, 230, 152, 1, 223, 62, 230, 152, 1,
+ 223, 28, 230, 152, 1, 212, 201, 230, 152, 1, 198, 83, 230, 152, 1, 198,
+ 71, 230, 152, 1, 237, 161, 230, 152, 1, 237, 145, 230, 152, 1, 213, 178,
+ 230, 152, 1, 189, 230, 152, 1, 199, 240, 230, 152, 1, 238, 0, 230, 152,
+ 1, 237, 40, 230, 152, 1, 181, 230, 152, 1, 166, 230, 152, 1, 210, 94,
+ 230, 152, 1, 249, 3, 230, 152, 1, 248, 54, 230, 152, 1, 172, 230, 152, 1,
+ 168, 230, 152, 1, 167, 230, 152, 1, 177, 230, 152, 1, 219, 137, 230, 152,
+ 1, 196, 157, 230, 152, 1, 204, 64, 230, 152, 1, 188, 230, 152, 1, 144,
+ 230, 152, 3, 212, 241, 230, 152, 18, 3, 252, 33, 230, 152, 18, 3, 70,
+ 230, 152, 18, 3, 223, 224, 230, 152, 18, 3, 68, 230, 152, 18, 3, 196,
+ 251, 230, 152, 18, 3, 234, 171, 230, 152, 18, 3, 251, 63, 230, 152, 18,
+ 3, 211, 194, 230, 152, 18, 3, 250, 8, 230, 152, 3, 196, 11, 230, 152, 3,
+ 197, 108, 230, 152, 1, 221, 230, 230, 152, 1, 231, 59, 230, 152, 1, 192,
+ 112, 230, 152, 1, 207, 3, 230, 152, 1, 233, 97, 230, 152, 17, 192, 76,
+ 230, 152, 17, 101, 230, 152, 17, 104, 230, 152, 17, 133, 230, 152, 17,
+ 134, 230, 152, 17, 151, 230, 152, 17, 170, 230, 152, 17, 179, 230, 152,
+ 17, 174, 230, 152, 17, 182, 230, 152, 199, 71, 230, 152, 251, 123, 230,
+ 152, 223, 103, 230, 152, 197, 23, 230, 152, 234, 132, 211, 199, 230, 152,
+ 3, 193, 104, 230, 152, 251, 151, 57, 230, 168, 3, 246, 234, 230, 168, 3,
+ 250, 168, 230, 168, 3, 196, 6, 230, 168, 1, 64, 230, 168, 1, 252, 33,
+ 230, 168, 1, 70, 230, 168, 1, 223, 224, 230, 168, 1, 68, 230, 168, 1,
+ 196, 251, 230, 168, 1, 118, 150, 230, 168, 1, 118, 165, 230, 168, 18,
+ 246, 237, 71, 230, 168, 1, 71, 230, 168, 1, 251, 63, 230, 168, 18, 246,
+ 237, 74, 230, 168, 1, 74, 230, 168, 1, 250, 8, 230, 168, 1, 160, 230,
+ 168, 1, 221, 250, 230, 168, 1, 231, 233, 230, 168, 1, 231, 84, 230, 168,
+ 1, 214, 165, 230, 168, 1, 247, 19, 230, 168, 1, 246, 117, 230, 168, 1,
+ 223, 62, 230, 168, 1, 223, 28, 230, 168, 1, 212, 201, 230, 168, 1, 198,
+ 83, 230, 168, 1, 198, 71, 230, 168, 1, 237, 161, 230, 168, 1, 237, 145,
+ 230, 168, 1, 213, 178, 230, 168, 1, 189, 230, 168, 1, 199, 240, 230, 168,
+ 1, 238, 0, 230, 168, 1, 237, 40, 230, 168, 1, 181, 230, 168, 1, 166, 230,
+ 168, 1, 210, 94, 230, 168, 1, 249, 3, 230, 168, 1, 248, 54, 230, 168, 1,
+ 172, 230, 168, 1, 168, 230, 168, 1, 167, 230, 168, 1, 177, 230, 168, 1,
+ 219, 137, 230, 168, 1, 196, 157, 230, 168, 1, 204, 64, 230, 168, 1, 202,
+ 92, 230, 168, 1, 188, 230, 168, 1, 144, 230, 168, 3, 212, 241, 230, 168,
+ 3, 249, 246, 230, 168, 18, 3, 252, 33, 230, 168, 18, 3, 70, 230, 168, 18,
+ 3, 223, 224, 230, 168, 18, 3, 68, 230, 168, 18, 3, 196, 251, 230, 168,
+ 18, 3, 118, 150, 230, 168, 18, 3, 118, 207, 4, 230, 168, 18, 3, 246, 237,
+ 71, 230, 168, 18, 3, 71, 230, 168, 18, 3, 251, 63, 230, 168, 18, 3, 246,
+ 237, 74, 230, 168, 18, 3, 74, 230, 168, 18, 3, 250, 8, 230, 168, 3, 196,
+ 11, 230, 168, 211, 219, 230, 168, 1, 118, 207, 4, 230, 168, 1, 118, 219,
+ 138, 230, 168, 18, 3, 118, 165, 230, 168, 18, 3, 118, 219, 138, 230, 168,
+ 17, 192, 76, 230, 168, 17, 101, 230, 168, 17, 104, 230, 168, 17, 133,
+ 230, 168, 17, 134, 230, 168, 17, 151, 230, 168, 17, 170, 230, 168, 17,
+ 179, 230, 168, 17, 174, 230, 168, 17, 182, 230, 168, 251, 151, 57, 230,
+ 168, 206, 186, 57, 230, 168, 1, 192, 71, 230, 168, 3, 201, 131, 230, 168,
+ 3, 204, 54, 230, 168, 3, 217, 207, 230, 168, 3, 199, 159, 212, 242, 58,
+ 230, 168, 3, 242, 131, 212, 242, 58, 230, 168, 3, 197, 222, 212, 242, 58,
+ 211, 153, 3, 246, 234, 211, 153, 3, 250, 168, 211, 153, 3, 196, 6, 211,
+ 153, 1, 64, 211, 153, 1, 252, 33, 211, 153, 1, 70, 211, 153, 1, 223, 224,
+ 211, 153, 1, 68, 211, 153, 1, 196, 251, 211, 153, 1, 118, 150, 211, 153,
+ 1, 118, 165, 211, 153, 1, 71, 211, 153, 1, 251, 63, 211, 153, 1, 74, 211,
+ 153, 1, 250, 8, 211, 153, 1, 160, 211, 153, 1, 221, 250, 211, 153, 1,
+ 231, 233, 211, 153, 1, 231, 84, 211, 153, 1, 214, 165, 211, 153, 1, 247,
+ 19, 211, 153, 1, 246, 117, 211, 153, 1, 223, 62, 211, 153, 1, 223, 28,
+ 211, 153, 1, 212, 201, 211, 153, 1, 198, 83, 211, 153, 1, 198, 71, 211,
+ 153, 1, 237, 161, 211, 153, 1, 237, 145, 211, 153, 1, 213, 178, 211, 153,
+ 1, 189, 211, 153, 1, 199, 240, 211, 153, 1, 238, 0, 211, 153, 1, 237, 40,
+ 211, 153, 1, 181, 211, 153, 1, 166, 211, 153, 1, 210, 94, 211, 153, 1,
+ 249, 3, 211, 153, 1, 248, 54, 211, 153, 1, 172, 211, 153, 1, 168, 211,
+ 153, 1, 167, 211, 153, 1, 177, 211, 153, 1, 219, 137, 211, 153, 1, 196,
+ 157, 211, 153, 1, 204, 64, 211, 153, 1, 202, 92, 211, 153, 1, 188, 211,
+ 153, 1, 144, 211, 153, 3, 212, 241, 211, 153, 3, 249, 246, 211, 153, 18,
+ 3, 252, 33, 211, 153, 18, 3, 70, 211, 153, 18, 3, 223, 224, 211, 153, 18,
+ 3, 68, 211, 153, 18, 3, 196, 251, 211, 153, 18, 3, 118, 150, 211, 153,
+ 18, 3, 118, 207, 4, 211, 153, 18, 3, 71, 211, 153, 18, 3, 251, 63, 211,
+ 153, 18, 3, 74, 211, 153, 18, 3, 250, 8, 211, 153, 3, 196, 11, 211, 153,
+ 3, 211, 109, 211, 153, 251, 64, 220, 2, 77, 211, 153, 250, 9, 220, 2, 77,
+ 211, 153, 1, 207, 3, 211, 153, 1, 207, 156, 211, 153, 1, 192, 164, 211,
+ 153, 1, 118, 207, 4, 211, 153, 1, 118, 219, 138, 211, 153, 18, 3, 118,
+ 165, 211, 153, 18, 3, 118, 219, 138, 211, 153, 17, 192, 76, 211, 153, 17,
+ 101, 211, 153, 17, 104, 211, 153, 17, 133, 211, 153, 17, 134, 211, 153,
+ 17, 151, 211, 153, 17, 170, 211, 153, 17, 179, 211, 153, 17, 174, 211,
+ 153, 17, 182, 211, 153, 223, 83, 211, 153, 1, 194, 169, 211, 153, 232,
+ 109, 90, 208, 167, 211, 153, 232, 109, 90, 230, 78, 211, 153, 232, 109,
+ 112, 208, 165, 211, 153, 232, 109, 90, 203, 33, 211, 153, 232, 109, 90,
+ 234, 143, 211, 153, 232, 109, 112, 203, 30, 44, 3, 250, 168, 44, 3, 196,
+ 6, 44, 1, 64, 44, 1, 252, 33, 44, 1, 70, 44, 1, 223, 224, 44, 1, 68, 44,
+ 1, 196, 251, 44, 1, 71, 44, 1, 234, 171, 44, 1, 251, 63, 44, 1, 74, 44,
+ 1, 211, 194, 44, 1, 250, 8, 44, 1, 160, 44, 1, 214, 165, 44, 1, 247, 19,
+ 44, 1, 223, 62, 44, 1, 212, 201, 44, 1, 198, 83, 44, 1, 213, 178, 44, 1,
+ 189, 44, 1, 181, 44, 1, 213, 160, 44, 1, 166, 44, 1, 172, 44, 1, 168, 44,
+ 1, 167, 44, 1, 207, 3, 44, 1, 177, 44, 1, 219, 137, 44, 1, 219, 126, 44,
+ 1, 196, 157, 44, 1, 204, 64, 44, 1, 202, 92, 44, 1, 188, 44, 1, 144, 44,
+ 18, 3, 252, 33, 44, 18, 3, 70, 44, 18, 3, 223, 224, 44, 18, 3, 68, 44,
+ 18, 3, 196, 251, 44, 18, 3, 71, 44, 18, 3, 234, 171, 44, 18, 3, 251, 63,
+ 44, 18, 3, 74, 44, 18, 3, 211, 194, 44, 18, 3, 250, 8, 44, 3, 196, 11,
+ 44, 211, 219, 44, 250, 9, 220, 2, 77, 44, 17, 192, 76, 44, 17, 101, 44,
+ 17, 104, 44, 17, 133, 44, 17, 134, 44, 17, 151, 44, 17, 170, 44, 17, 179,
+ 44, 17, 174, 44, 17, 182, 44, 31, 200, 30, 44, 31, 90, 228, 162, 44, 31,
+ 90, 180, 44, 237, 174, 57, 44, 216, 38, 57, 44, 193, 67, 57, 44, 237,
+ 112, 57, 44, 238, 196, 57, 44, 250, 62, 95, 57, 44, 206, 186, 57, 44, 31,
+ 57, 200, 34, 3, 38, 246, 235, 58, 200, 34, 3, 246, 234, 200, 34, 3, 250,
+ 168, 200, 34, 3, 196, 6, 200, 34, 3, 38, 250, 169, 58, 200, 34, 1, 64,
+ 200, 34, 1, 252, 33, 200, 34, 1, 70, 200, 34, 1, 223, 224, 200, 34, 1,
+ 68, 200, 34, 1, 196, 251, 200, 34, 1, 118, 150, 200, 34, 1, 118, 165,
+ 200, 34, 1, 71, 200, 34, 1, 234, 171, 200, 34, 1, 251, 63, 200, 34, 1,
+ 74, 200, 34, 1, 211, 194, 200, 34, 1, 250, 8, 200, 34, 1, 160, 200, 34,
+ 1, 221, 250, 200, 34, 1, 231, 233, 200, 34, 1, 231, 84, 200, 34, 1, 214,
+ 165, 200, 34, 1, 247, 19, 200, 34, 1, 246, 117, 200, 34, 1, 223, 62, 200,
+ 34, 1, 223, 28, 200, 34, 1, 212, 201, 200, 34, 1, 198, 83, 200, 34, 1,
+ 198, 71, 200, 34, 1, 237, 161, 200, 34, 1, 237, 145, 200, 34, 1, 213,
+ 178, 200, 34, 1, 189, 200, 34, 1, 199, 240, 200, 34, 1, 238, 0, 200, 34,
+ 1, 237, 40, 200, 34, 1, 181, 200, 34, 1, 166, 200, 34, 1, 210, 94, 200,
+ 34, 1, 249, 3, 200, 34, 1, 248, 54, 200, 34, 1, 172, 200, 34, 1, 168,
+ 200, 34, 1, 167, 200, 34, 1, 207, 3, 200, 34, 1, 177, 200, 34, 1, 219,
+ 137, 200, 34, 1, 219, 126, 200, 34, 1, 196, 157, 200, 34, 1, 204, 64,
+ 200, 34, 1, 202, 92, 200, 34, 1, 188, 200, 34, 1, 144, 200, 34, 3, 249,
+ 246, 200, 34, 18, 3, 252, 33, 200, 34, 18, 3, 70, 200, 34, 18, 3, 223,
+ 224, 200, 34, 18, 3, 68, 200, 34, 18, 3, 196, 251, 200, 34, 18, 3, 118,
+ 150, 200, 34, 18, 3, 118, 207, 4, 200, 34, 18, 3, 71, 200, 34, 18, 3,
+ 234, 171, 200, 34, 18, 3, 251, 63, 200, 34, 18, 3, 74, 200, 34, 18, 3,
+ 211, 194, 200, 34, 18, 3, 250, 8, 200, 34, 3, 196, 11, 200, 34, 220, 2,
+ 77, 200, 34, 251, 64, 220, 2, 77, 200, 34, 1, 198, 118, 200, 34, 1, 235,
+ 17, 200, 34, 1, 206, 240, 200, 34, 1, 118, 207, 4, 200, 34, 1, 118, 219,
+ 138, 200, 34, 18, 3, 118, 165, 200, 34, 18, 3, 118, 219, 138, 200, 34,
+ 17, 192, 76, 200, 34, 17, 101, 200, 34, 17, 104, 200, 34, 17, 133, 200,
+ 34, 17, 134, 200, 34, 17, 151, 200, 34, 17, 170, 200, 34, 17, 179, 200,
+ 34, 17, 174, 200, 34, 17, 182, 200, 34, 3, 203, 113, 200, 34, 232, 109,
+ 17, 192, 77, 39, 212, 4, 209, 137, 80, 134, 200, 34, 232, 109, 17, 90,
+ 39, 212, 4, 209, 137, 80, 134, 200, 34, 232, 109, 17, 103, 39, 212, 4,
+ 209, 137, 80, 134, 200, 34, 232, 109, 17, 112, 39, 212, 4, 209, 137, 80,
+ 134, 200, 34, 232, 109, 17, 90, 39, 233, 217, 209, 137, 80, 134, 200, 34,
+ 232, 109, 17, 103, 39, 233, 217, 209, 137, 80, 134, 200, 34, 232, 109,
+ 17, 112, 39, 233, 217, 209, 137, 80, 134, 200, 34, 3, 197, 255, 222, 115,
+ 3, 202, 159, 246, 234, 222, 115, 3, 246, 234, 222, 115, 3, 250, 168, 222,
+ 115, 3, 196, 6, 222, 115, 3, 203, 113, 222, 115, 1, 64, 222, 115, 1, 252,
+ 33, 222, 115, 1, 70, 222, 115, 1, 223, 224, 222, 115, 1, 68, 222, 115, 1,
+ 196, 251, 222, 115, 1, 118, 150, 222, 115, 1, 118, 165, 222, 115, 1, 71,
+ 222, 115, 1, 234, 171, 222, 115, 1, 251, 63, 222, 115, 1, 74, 222, 115,
+ 1, 211, 194, 222, 115, 1, 250, 8, 222, 115, 1, 160, 222, 115, 1, 221,
+ 250, 222, 115, 1, 231, 233, 222, 115, 1, 231, 84, 222, 115, 1, 214, 165,
+ 222, 115, 1, 247, 19, 222, 115, 1, 246, 117, 222, 115, 1, 223, 62, 222,
+ 115, 1, 223, 28, 222, 115, 1, 212, 201, 222, 115, 1, 198, 83, 222, 115,
+ 1, 198, 71, 222, 115, 1, 237, 161, 222, 115, 1, 237, 145, 222, 115, 1,
+ 213, 178, 222, 115, 1, 189, 222, 115, 1, 199, 240, 222, 115, 1, 238, 0,
+ 222, 115, 1, 237, 40, 222, 115, 1, 181, 222, 115, 1, 166, 222, 115, 1,
+ 210, 94, 222, 115, 1, 249, 3, 222, 115, 1, 248, 54, 222, 115, 1, 172,
+ 222, 115, 1, 168, 222, 115, 1, 167, 222, 115, 1, 207, 3, 222, 115, 1,
+ 177, 222, 115, 1, 219, 137, 222, 115, 1, 196, 157, 222, 115, 1, 204, 64,
+ 222, 115, 1, 202, 92, 222, 115, 1, 188, 222, 115, 1, 144, 222, 115, 3,
+ 212, 241, 222, 115, 3, 249, 246, 222, 115, 18, 3, 252, 33, 222, 115, 18,
+ 3, 70, 222, 115, 18, 3, 223, 224, 222, 115, 18, 3, 68, 222, 115, 18, 3,
+ 196, 251, 222, 115, 18, 3, 118, 150, 222, 115, 18, 3, 118, 207, 4, 222,
+ 115, 18, 3, 71, 222, 115, 18, 3, 234, 171, 222, 115, 18, 3, 251, 63, 222,
+ 115, 18, 3, 74, 222, 115, 18, 3, 211, 194, 222, 115, 18, 3, 250, 8, 222,
+ 115, 3, 196, 11, 222, 115, 220, 2, 77, 222, 115, 251, 64, 220, 2, 77,
+ 222, 115, 1, 233, 97, 222, 115, 1, 118, 207, 4, 222, 115, 1, 118, 219,
+ 138, 222, 115, 18, 3, 118, 165, 222, 115, 18, 3, 118, 219, 138, 222, 115,
+ 17, 192, 76, 222, 115, 17, 101, 222, 115, 17, 104, 222, 115, 17, 133,
+ 222, 115, 17, 134, 222, 115, 17, 151, 222, 115, 17, 170, 222, 115, 17,
+ 179, 222, 115, 17, 174, 222, 115, 17, 182, 222, 115, 3, 223, 13, 222,
+ 115, 3, 197, 39, 135, 3, 38, 250, 169, 58, 135, 3, 246, 234, 135, 3, 250,
+ 168, 135, 3, 196, 6, 135, 1, 196, 120, 250, 168, 135, 1, 64, 135, 1, 252,
+ 33, 135, 1, 70, 135, 1, 223, 224, 135, 1, 68, 135, 1, 196, 251, 135, 1,
+ 118, 150, 135, 1, 118, 165, 135, 1, 71, 135, 1, 234, 171, 135, 1, 251,
+ 63, 135, 1, 74, 135, 1, 211, 194, 135, 1, 250, 8, 135, 1, 160, 135, 1,
+ 221, 250, 135, 1, 231, 233, 135, 1, 231, 84, 135, 1, 214, 165, 135, 1,
+ 247, 19, 135, 1, 246, 117, 135, 1, 223, 62, 135, 1, 223, 28, 135, 1, 212,
+ 201, 135, 1, 198, 83, 135, 1, 198, 71, 135, 1, 237, 161, 135, 1, 237,
+ 145, 135, 1, 213, 178, 135, 1, 189, 135, 1, 199, 240, 135, 1, 238, 0,
+ 135, 1, 237, 40, 135, 1, 181, 135, 1, 213, 160, 135, 1, 166, 135, 1, 210,
+ 94, 135, 1, 249, 3, 135, 1, 248, 54, 135, 1, 172, 135, 1, 168, 135, 1,
+ 167, 135, 1, 207, 3, 135, 1, 177, 135, 1, 219, 137, 135, 1, 219, 126,
+ 135, 1, 196, 157, 135, 1, 204, 64, 135, 1, 202, 92, 135, 1, 188, 135, 1,
+ 144, 135, 1, 198, 52, 135, 3, 84, 248, 194, 196, 11, 135, 3, 242, 124,
+ 196, 11, 135, 3, 249, 246, 135, 18, 3, 252, 33, 135, 18, 3, 70, 135, 18,
+ 3, 223, 224, 135, 18, 3, 68, 135, 18, 3, 196, 251, 135, 18, 3, 118, 150,
+ 135, 18, 3, 118, 207, 4, 135, 18, 3, 71, 135, 18, 3, 234, 171, 135, 18,
+ 3, 251, 63, 135, 18, 3, 74, 135, 18, 3, 211, 194, 135, 18, 3, 250, 8,
+ 135, 3, 196, 11, 135, 1, 78, 207, 195, 135, 3, 210, 246, 135, 1, 242,
+ 204, 218, 236, 135, 1, 242, 204, 193, 148, 135, 1, 242, 204, 219, 127,
+ 135, 250, 9, 220, 2, 77, 135, 232, 109, 90, 211, 207, 135, 232, 109, 90,
+ 232, 129, 135, 232, 109, 112, 234, 139, 135, 232, 109, 90, 197, 242, 135,
+ 232, 109, 90, 200, 21, 135, 232, 109, 112, 197, 241, 135, 232, 109, 90,
+ 233, 6, 135, 1, 250, 112, 223, 224, 135, 1, 118, 207, 4, 135, 1, 118,
+ 219, 138, 135, 18, 3, 118, 165, 135, 18, 3, 118, 219, 138, 135, 17, 192,
+ 76, 135, 17, 101, 135, 17, 104, 135, 17, 133, 135, 17, 134, 135, 17, 151,
+ 135, 17, 170, 135, 17, 179, 135, 17, 174, 135, 17, 182, 135, 31, 200, 30,
+ 135, 31, 90, 228, 162, 135, 31, 90, 180, 135, 232, 109, 90, 208, 167,
+ 135, 232, 109, 90, 230, 78, 135, 232, 109, 112, 208, 165, 135, 232, 109,
+ 90, 203, 33, 135, 232, 109, 90, 234, 143, 135, 232, 109, 112, 203, 30,
+ 135, 237, 179, 77, 135, 1, 242, 204, 213, 179, 135, 1, 242, 204, 215,
+ 151, 135, 1, 242, 204, 207, 4, 135, 1, 242, 204, 165, 135, 1, 242, 204,
+ 219, 138, 135, 1, 242, 204, 222, 184, 159, 3, 246, 234, 159, 3, 250, 167,
+ 159, 3, 196, 5, 159, 1, 249, 234, 159, 1, 251, 242, 159, 1, 251, 88, 159,
+ 1, 251, 103, 159, 1, 223, 72, 159, 1, 223, 223, 159, 1, 196, 242, 159, 1,
+ 196, 245, 159, 1, 223, 98, 159, 1, 223, 99, 159, 1, 223, 209, 159, 1,
+ 223, 211, 159, 1, 233, 184, 159, 1, 234, 166, 159, 1, 251, 46, 159, 1,
+ 211, 97, 159, 1, 211, 187, 159, 1, 249, 249, 159, 1, 250, 255, 222, 62,
+ 159, 1, 217, 187, 222, 62, 159, 1, 250, 255, 231, 178, 159, 1, 217, 187,
+ 231, 178, 159, 1, 222, 114, 215, 81, 159, 1, 206, 30, 231, 178, 159, 1,
+ 250, 255, 246, 184, 159, 1, 217, 187, 246, 184, 159, 1, 250, 255, 223,
+ 44, 159, 1, 217, 187, 223, 44, 159, 1, 200, 171, 215, 81, 159, 1, 200,
+ 171, 206, 29, 215, 82, 159, 1, 206, 30, 223, 44, 159, 1, 250, 255, 198,
+ 79, 159, 1, 217, 187, 198, 79, 159, 1, 250, 255, 237, 152, 159, 1, 217,
+ 187, 237, 152, 159, 1, 215, 180, 215, 34, 159, 1, 206, 30, 237, 152, 159,
+ 1, 250, 255, 200, 87, 159, 1, 217, 187, 200, 87, 159, 1, 250, 255, 237,
+ 172, 159, 1, 217, 187, 237, 172, 159, 1, 237, 204, 215, 34, 159, 1, 206,
+ 30, 237, 172, 159, 1, 250, 255, 210, 189, 159, 1, 217, 187, 210, 189,
+ 159, 1, 250, 255, 248, 161, 159, 1, 217, 187, 248, 161, 159, 1, 217, 90,
+ 159, 1, 250, 235, 248, 161, 159, 1, 193, 74, 159, 1, 208, 14, 159, 1,
+ 237, 204, 220, 51, 159, 1, 196, 125, 159, 1, 200, 171, 206, 0, 159, 1,
+ 215, 180, 206, 0, 159, 1, 237, 204, 206, 0, 159, 1, 230, 5, 159, 1, 215,
+ 180, 220, 51, 159, 1, 233, 49, 159, 3, 251, 34, 159, 18, 3, 251, 98, 159,
+ 18, 3, 222, 19, 251, 105, 159, 18, 3, 236, 239, 251, 105, 159, 18, 3,
+ 222, 19, 223, 95, 159, 18, 3, 236, 239, 223, 95, 159, 18, 3, 222, 19,
+ 211, 76, 159, 18, 3, 236, 239, 211, 76, 159, 18, 3, 231, 222, 159, 18, 3,
+ 221, 93, 159, 18, 3, 236, 239, 221, 93, 159, 18, 3, 221, 95, 237, 90,
+ 159, 18, 3, 221, 94, 230, 100, 251, 98, 159, 18, 3, 221, 94, 230, 100,
+ 236, 239, 251, 98, 159, 18, 3, 221, 94, 230, 100, 231, 177, 159, 18, 3,
+ 231, 177, 159, 219, 150, 17, 192, 76, 159, 219, 150, 17, 101, 159, 219,
+ 150, 17, 104, 159, 219, 150, 17, 133, 159, 219, 150, 17, 134, 159, 219,
+ 150, 17, 151, 159, 219, 150, 17, 170, 159, 219, 150, 17, 179, 159, 219,
+ 150, 17, 174, 159, 219, 150, 17, 182, 159, 18, 3, 236, 239, 231, 222,
+ 159, 18, 3, 236, 239, 231, 177, 159, 209, 38, 221, 11, 199, 235, 246,
+ 100, 221, 114, 222, 135, 199, 235, 246, 100, 221, 221, 221, 244, 199,
+ 235, 246, 100, 221, 221, 221, 212, 199, 235, 246, 100, 221, 221, 221,
+ 207, 199, 235, 246, 100, 221, 221, 221, 217, 199, 235, 246, 100, 221,
+ 221, 208, 35, 199, 235, 246, 100, 214, 91, 214, 78, 199, 235, 246, 100,
+ 242, 189, 246, 106, 199, 235, 246, 100, 242, 189, 242, 199, 199, 235,
+ 246, 100, 242, 189, 246, 105, 199, 235, 246, 100, 202, 213, 202, 212,
+ 199, 235, 246, 100, 242, 189, 242, 185, 199, 235, 246, 100, 193, 2, 193,
+ 9, 199, 235, 246, 100, 236, 147, 246, 114, 199, 235, 246, 100, 115, 210,
+ 204, 199, 235, 246, 100, 199, 177, 199, 229, 199, 235, 246, 100, 199,
+ 177, 215, 57, 199, 235, 246, 100, 199, 177, 210, 54, 199, 235, 246, 100,
+ 213, 143, 214, 196, 199, 235, 246, 100, 236, 147, 237, 91, 199, 235, 246,
+ 100, 115, 200, 117, 199, 235, 246, 100, 199, 177, 199, 142, 199, 235,
+ 246, 100, 199, 177, 199, 236, 199, 235, 246, 100, 199, 177, 199, 171,
+ 199, 235, 246, 100, 213, 143, 213, 22, 199, 235, 246, 100, 247, 221, 248,
+ 224, 199, 235, 246, 100, 209, 199, 209, 234, 199, 235, 246, 100, 210, 66,
+ 210, 56, 199, 235, 246, 100, 232, 165, 233, 97, 199, 235, 246, 100, 210,
+ 66, 210, 87, 199, 235, 246, 100, 232, 165, 233, 68, 199, 235, 246, 100,
+ 210, 66, 206, 44, 199, 235, 246, 100, 216, 92, 172, 199, 235, 246, 100,
+ 193, 2, 193, 105, 199, 235, 246, 100, 207, 56, 206, 211, 199, 235, 246,
+ 100, 206, 218, 199, 235, 246, 100, 219, 108, 219, 168, 199, 235, 246,
+ 100, 219, 36, 199, 235, 246, 100, 194, 37, 194, 159, 199, 235, 246, 100,
+ 202, 213, 206, 61, 199, 235, 246, 100, 202, 213, 206, 182, 199, 235, 246,
+ 100, 202, 213, 201, 175, 199, 235, 246, 100, 229, 44, 229, 142, 199, 235,
+ 246, 100, 219, 108, 242, 167, 199, 235, 246, 100, 185, 250, 214, 199,
+ 235, 246, 100, 229, 44, 213, 133, 199, 235, 246, 100, 211, 51, 199, 235,
+ 246, 100, 206, 24, 64, 199, 235, 246, 100, 217, 181, 230, 64, 199, 235,
+ 246, 100, 206, 24, 252, 33, 199, 235, 246, 100, 206, 24, 250, 241, 199,
+ 235, 246, 100, 206, 24, 70, 199, 235, 246, 100, 206, 24, 223, 224, 199,
+ 235, 246, 100, 206, 24, 197, 104, 199, 235, 246, 100, 206, 24, 197, 102,
+ 199, 235, 246, 100, 206, 24, 68, 199, 235, 246, 100, 206, 24, 196, 251,
+ 199, 235, 246, 100, 210, 68, 199, 235, 238, 137, 16, 248, 225, 199, 235,
+ 246, 100, 206, 24, 71, 199, 235, 246, 100, 206, 24, 251, 108, 199, 235,
+ 246, 100, 206, 24, 74, 199, 235, 246, 100, 206, 24, 251, 64, 217, 175,
+ 199, 235, 246, 100, 206, 24, 251, 64, 217, 176, 199, 235, 246, 100, 220,
+ 98, 199, 235, 246, 100, 217, 172, 199, 235, 246, 100, 217, 173, 199, 235,
+ 246, 100, 217, 181, 234, 131, 199, 235, 246, 100, 217, 181, 199, 176,
+ 199, 235, 246, 100, 217, 181, 198, 188, 199, 235, 246, 100, 217, 181,
+ 242, 250, 199, 235, 246, 100, 199, 227, 199, 235, 246, 100, 214, 24, 199,
+ 235, 246, 100, 193, 99, 199, 235, 246, 100, 232, 154, 199, 235, 17, 192,
+ 76, 199, 235, 17, 101, 199, 235, 17, 104, 199, 235, 17, 133, 199, 235,
+ 17, 134, 199, 235, 17, 151, 199, 235, 17, 170, 199, 235, 17, 179, 199,
+ 235, 17, 174, 199, 235, 17, 182, 199, 235, 246, 100, 250, 209, 199, 235,
+ 246, 100, 221, 218, 220, 77, 1, 221, 113, 220, 77, 1, 221, 221, 201, 120,
+ 220, 77, 1, 221, 221, 200, 129, 220, 77, 1, 211, 44, 231, 84, 220, 77, 1,
+ 214, 90, 220, 77, 1, 242, 63, 220, 77, 1, 211, 44, 246, 117, 220, 77, 1,
+ 202, 213, 200, 129, 220, 77, 1, 211, 44, 223, 28, 220, 77, 1, 212, 165,
+ 220, 77, 1, 211, 44, 212, 201, 220, 77, 1, 211, 44, 198, 83, 220, 77, 1,
+ 211, 44, 198, 71, 220, 77, 1, 211, 44, 237, 161, 220, 77, 1, 211, 44,
+ 237, 145, 220, 77, 1, 211, 44, 213, 178, 220, 77, 1, 236, 146, 220, 77,
+ 1, 155, 220, 77, 1, 199, 177, 201, 120, 220, 77, 1, 199, 177, 200, 129,
+ 220, 77, 1, 211, 44, 237, 40, 220, 77, 1, 213, 142, 220, 77, 1, 247, 220,
+ 220, 77, 1, 209, 198, 220, 77, 1, 210, 66, 201, 120, 220, 77, 1, 232,
+ 165, 200, 129, 220, 77, 1, 210, 66, 200, 129, 220, 77, 1, 232, 165, 201,
+ 120, 220, 77, 1, 211, 44, 248, 54, 220, 77, 1, 216, 91, 220, 77, 1, 193,
+ 1, 220, 77, 1, 219, 108, 219, 168, 220, 77, 1, 219, 108, 219, 67, 220,
+ 77, 1, 194, 36, 220, 77, 1, 206, 32, 204, 64, 220, 77, 1, 206, 32, 202,
+ 92, 220, 77, 1, 202, 213, 201, 120, 220, 77, 1, 229, 44, 201, 120, 220,
+ 77, 1, 211, 44, 219, 137, 220, 77, 1, 74, 220, 77, 1, 229, 44, 200, 129,
+ 220, 77, 234, 105, 220, 77, 18, 3, 64, 220, 77, 18, 3, 217, 181, 222,
+ 121, 220, 77, 18, 3, 252, 33, 220, 77, 18, 3, 250, 241, 220, 77, 18, 3,
+ 70, 220, 77, 18, 3, 223, 224, 220, 77, 18, 3, 193, 148, 220, 77, 18, 3,
+ 192, 165, 220, 77, 18, 3, 68, 220, 77, 18, 3, 196, 251, 220, 77, 3, 211,
+ 44, 196, 11, 220, 77, 18, 3, 217, 181, 221, 91, 220, 77, 204, 175, 3,
+ 219, 107, 220, 77, 204, 175, 3, 212, 165, 220, 77, 18, 3, 71, 220, 77,
+ 18, 3, 234, 150, 220, 77, 18, 3, 74, 220, 77, 18, 3, 249, 236, 220, 77,
+ 18, 3, 251, 63, 220, 77, 221, 114, 177, 220, 77, 158, 217, 181, 234, 131,
+ 220, 77, 158, 217, 181, 199, 176, 220, 77, 158, 217, 181, 199, 128, 220,
+ 77, 158, 217, 181, 246, 192, 220, 77, 246, 240, 77, 220, 77, 214, 33,
+ 220, 77, 17, 192, 76, 220, 77, 17, 101, 220, 77, 17, 104, 220, 77, 17,
+ 133, 220, 77, 17, 134, 220, 77, 17, 151, 220, 77, 17, 170, 220, 77, 17,
+ 179, 220, 77, 17, 174, 220, 77, 17, 182, 220, 77, 229, 44, 213, 142, 220,
+ 77, 229, 44, 216, 91, 220, 77, 1, 221, 222, 230, 254, 220, 77, 1, 221,
+ 222, 212, 165, 86, 5, 211, 219, 86, 122, 230, 188, 193, 14, 216, 193,
+ 198, 124, 64, 86, 122, 230, 188, 193, 14, 216, 193, 255, 34, 207, 60,
+ 248, 125, 172, 86, 122, 230, 188, 193, 14, 216, 193, 255, 34, 230, 188,
+ 198, 104, 172, 86, 122, 88, 193, 14, 216, 193, 217, 50, 172, 86, 122,
+ 242, 80, 193, 14, 216, 193, 204, 71, 172, 86, 122, 246, 212, 193, 14,
+ 216, 193, 210, 55, 204, 57, 172, 86, 122, 193, 14, 216, 193, 198, 104,
+ 204, 57, 172, 86, 122, 205, 254, 204, 56, 86, 122, 247, 127, 193, 14,
+ 216, 192, 86, 122, 247, 250, 203, 205, 193, 14, 216, 192, 86, 122, 223,
+ 126, 198, 103, 86, 122, 237, 83, 198, 104, 247, 126, 86, 122, 204, 56,
+ 86, 122, 212, 170, 204, 56, 86, 122, 198, 104, 204, 56, 86, 122, 212,
+ 170, 198, 104, 204, 56, 86, 122, 207, 84, 242, 231, 202, 109, 204, 56,
+ 86, 122, 207, 160, 230, 222, 204, 56, 86, 122, 246, 212, 255, 38, 206,
+ 223, 217, 49, 184, 246, 243, 86, 122, 230, 188, 198, 103, 86, 219, 91, 3,
+ 246, 115, 206, 222, 86, 219, 91, 3, 219, 220, 206, 222, 86, 250, 32, 3,
+ 204, 67, 231, 161, 255, 39, 206, 222, 86, 250, 32, 3, 255, 36, 166, 86,
+ 250, 32, 3, 205, 224, 198, 98, 86, 3, 208, 9, 236, 161, 231, 160, 86, 3,
+ 208, 9, 236, 161, 231, 0, 86, 3, 208, 9, 236, 161, 230, 189, 86, 3, 208,
+ 9, 215, 77, 231, 160, 86, 3, 208, 9, 215, 77, 231, 0, 86, 3, 208, 9, 236,
+ 161, 208, 9, 215, 76, 86, 17, 192, 76, 86, 17, 101, 86, 17, 104, 86, 17,
+ 133, 86, 17, 134, 86, 17, 151, 86, 17, 170, 86, 17, 179, 86, 17, 174, 86,
+ 17, 182, 86, 17, 138, 101, 86, 17, 138, 104, 86, 17, 138, 133, 86, 17,
+ 138, 134, 86, 17, 138, 151, 86, 17, 138, 170, 86, 17, 138, 179, 86, 17,
+ 138, 174, 86, 17, 138, 182, 86, 17, 138, 192, 76, 86, 122, 247, 129, 206,
+ 222, 86, 122, 214, 156, 247, 54, 212, 182, 192, 10, 86, 122, 246, 212,
+ 255, 38, 206, 223, 247, 55, 216, 138, 246, 243, 86, 122, 214, 156, 247,
+ 54, 204, 68, 206, 222, 86, 122, 242, 246, 216, 192, 86, 122, 198, 119,
+ 255, 35, 86, 122, 230, 171, 206, 223, 230, 127, 86, 122, 230, 171, 206,
+ 223, 230, 133, 86, 122, 250, 215, 221, 239, 230, 127, 86, 122, 250, 215,
+ 221, 239, 230, 133, 86, 3, 193, 91, 198, 102, 86, 3, 217, 136, 198, 102,
+ 86, 1, 160, 86, 1, 221, 250, 86, 1, 231, 233, 86, 1, 231, 84, 86, 1, 214,
+ 165, 86, 1, 247, 19, 86, 1, 246, 117, 86, 1, 223, 62, 86, 1, 212, 201,
+ 86, 1, 198, 83, 86, 1, 198, 71, 86, 1, 237, 161, 86, 1, 237, 145, 86, 1,
+ 213, 178, 86, 1, 189, 86, 1, 199, 240, 86, 1, 238, 0, 86, 1, 237, 40, 86,
+ 1, 181, 86, 1, 166, 86, 1, 210, 94, 86, 1, 249, 3, 86, 1, 248, 54, 86, 1,
+ 172, 86, 1, 198, 118, 86, 1, 198, 108, 86, 1, 235, 17, 86, 1, 235, 11,
+ 86, 1, 194, 169, 86, 1, 192, 71, 86, 1, 192, 112, 86, 1, 255, 41, 86, 1,
+ 168, 86, 1, 167, 86, 1, 177, 86, 1, 204, 64, 86, 1, 202, 92, 86, 1, 188,
+ 86, 1, 144, 86, 1, 64, 86, 1, 221, 47, 86, 1, 232, 210, 167, 86, 1, 221,
+ 139, 86, 1, 207, 3, 86, 18, 3, 252, 33, 86, 18, 3, 70, 86, 18, 3, 223,
+ 224, 86, 18, 3, 68, 86, 18, 3, 196, 251, 86, 18, 3, 118, 150, 86, 18, 3,
+ 118, 207, 4, 86, 18, 3, 118, 165, 86, 18, 3, 118, 219, 138, 86, 18, 3,
+ 71, 86, 18, 3, 234, 171, 86, 18, 3, 74, 86, 18, 3, 211, 194, 86, 3, 207,
+ 66, 201, 185, 214, 166, 207, 55, 86, 3, 207, 60, 248, 124, 86, 18, 3,
+ 207, 168, 70, 86, 18, 3, 207, 168, 223, 224, 86, 3, 212, 182, 192, 11,
+ 215, 85, 238, 0, 86, 3, 202, 227, 220, 44, 86, 122, 230, 80, 86, 122,
+ 211, 36, 86, 3, 220, 47, 206, 222, 86, 3, 193, 96, 206, 222, 86, 3, 220,
+ 48, 198, 119, 246, 243, 86, 3, 217, 52, 246, 243, 86, 3, 230, 192, 246,
+ 244, 207, 158, 86, 3, 230, 192, 217, 38, 207, 158, 86, 3, 223, 121, 217,
+ 52, 246, 243, 86, 201, 164, 3, 220, 48, 198, 119, 246, 243, 86, 201, 164,
+ 3, 217, 52, 246, 243, 86, 201, 164, 3, 223, 121, 217, 52, 246, 243, 86,
+ 201, 164, 1, 160, 86, 201, 164, 1, 221, 250, 86, 201, 164, 1, 231, 233,
+ 86, 201, 164, 1, 231, 84, 86, 201, 164, 1, 214, 165, 86, 201, 164, 1,
+ 247, 19, 86, 201, 164, 1, 246, 117, 86, 201, 164, 1, 223, 62, 86, 201,
+ 164, 1, 212, 201, 86, 201, 164, 1, 198, 83, 86, 201, 164, 1, 198, 71, 86,
+ 201, 164, 1, 237, 161, 86, 201, 164, 1, 237, 145, 86, 201, 164, 1, 213,
+ 178, 86, 201, 164, 1, 189, 86, 201, 164, 1, 199, 240, 86, 201, 164, 1,
+ 238, 0, 86, 201, 164, 1, 237, 40, 86, 201, 164, 1, 181, 86, 201, 164, 1,
+ 166, 86, 201, 164, 1, 210, 94, 86, 201, 164, 1, 249, 3, 86, 201, 164, 1,
+ 248, 54, 86, 201, 164, 1, 172, 86, 201, 164, 1, 198, 118, 86, 201, 164,
+ 1, 198, 108, 86, 201, 164, 1, 235, 17, 86, 201, 164, 1, 235, 11, 86, 201,
+ 164, 1, 194, 169, 86, 201, 164, 1, 192, 71, 86, 201, 164, 1, 192, 112,
+ 86, 201, 164, 1, 255, 41, 86, 201, 164, 1, 168, 86, 201, 164, 1, 167, 86,
+ 201, 164, 1, 177, 86, 201, 164, 1, 204, 64, 86, 201, 164, 1, 202, 92, 86,
+ 201, 164, 1, 188, 86, 201, 164, 1, 144, 86, 201, 164, 1, 64, 86, 201,
+ 164, 1, 221, 47, 86, 201, 164, 1, 232, 210, 194, 169, 86, 201, 164, 1,
+ 232, 210, 168, 86, 201, 164, 1, 232, 210, 167, 86, 221, 34, 206, 219,
+ 221, 250, 86, 221, 34, 206, 219, 221, 251, 247, 55, 216, 138, 246, 243,
+ 86, 246, 227, 3, 87, 248, 114, 86, 246, 227, 3, 152, 248, 114, 86, 246,
+ 227, 3, 246, 231, 200, 69, 86, 246, 227, 3, 205, 253, 255, 40, 86, 16,
+ 235, 78, 247, 124, 86, 16, 208, 8, 207, 67, 86, 16, 211, 63, 231, 159,
+ 86, 16, 208, 8, 207, 68, 207, 160, 230, 221, 86, 16, 210, 55, 166, 86,
+ 16, 213, 120, 247, 124, 86, 16, 213, 120, 247, 125, 212, 170, 255, 37,
+ 86, 16, 213, 120, 247, 125, 230, 190, 255, 37, 86, 16, 213, 120, 247,
+ 125, 247, 55, 255, 37, 86, 3, 208, 9, 215, 77, 208, 9, 236, 160, 86, 3,
+ 208, 9, 215, 77, 230, 189, 86, 122, 247, 128, 203, 205, 231, 47, 216,
+ 193, 207, 159, 86, 122, 216, 93, 193, 14, 231, 47, 216, 193, 207, 159,
+ 86, 122, 212, 170, 198, 103, 86, 122, 88, 247, 157, 207, 57, 193, 14,
+ 216, 193, 217, 50, 172, 86, 122, 242, 80, 247, 157, 207, 57, 193, 14,
+ 216, 193, 204, 71, 172, 207, 100, 201, 81, 57, 220, 27, 201, 81, 57, 207,
+ 100, 201, 81, 3, 4, 236, 111, 220, 27, 201, 81, 3, 4, 236, 111, 86, 122,
+ 220, 39, 217, 53, 206, 222, 86, 122, 198, 215, 217, 53, 206, 222, 79, 1,
+ 160, 79, 1, 221, 250, 79, 1, 231, 233, 79, 1, 231, 84, 79, 1, 214, 165,
+ 79, 1, 247, 19, 79, 1, 246, 117, 79, 1, 223, 62, 79, 1, 223, 28, 79, 1,
+ 212, 201, 79, 1, 213, 144, 79, 1, 198, 83, 79, 1, 198, 71, 79, 1, 237,
+ 161, 79, 1, 237, 145, 79, 1, 213, 178, 79, 1, 189, 79, 1, 199, 240, 79,
+ 1, 238, 0, 79, 1, 237, 40, 79, 1, 181, 79, 1, 166, 79, 1, 210, 94, 79, 1,
+ 249, 3, 79, 1, 248, 54, 79, 1, 172, 79, 1, 168, 79, 1, 167, 79, 1, 177,
+ 79, 1, 194, 169, 79, 1, 188, 79, 1, 144, 79, 1, 219, 137, 79, 1, 64, 79,
+ 1, 204, 38, 64, 79, 1, 70, 79, 1, 223, 224, 79, 1, 68, 79, 1, 196, 251,
+ 79, 1, 71, 79, 1, 216, 56, 71, 79, 1, 74, 79, 1, 250, 8, 79, 18, 3, 200,
+ 132, 252, 33, 79, 18, 3, 252, 33, 79, 18, 3, 70, 79, 18, 3, 223, 224, 79,
+ 18, 3, 68, 79, 18, 3, 196, 251, 79, 18, 3, 71, 79, 18, 3, 251, 63, 79,
+ 18, 3, 216, 56, 223, 224, 79, 18, 3, 216, 56, 74, 79, 18, 3, 234, 253,
+ 58, 79, 3, 250, 168, 79, 3, 78, 63, 79, 3, 196, 6, 79, 3, 196, 11, 79, 3,
+ 250, 58, 79, 116, 3, 217, 35, 168, 79, 116, 3, 217, 35, 167, 79, 116, 3,
+ 217, 35, 194, 169, 79, 116, 3, 217, 35, 144, 79, 1, 230, 206, 188, 79,
+ 17, 192, 76, 79, 17, 101, 79, 17, 104, 79, 17, 133, 79, 17, 134, 79, 17,
+ 151, 79, 17, 170, 79, 17, 179, 79, 17, 174, 79, 17, 182, 79, 3, 219, 147,
+ 205, 208, 79, 3, 205, 208, 79, 16, 219, 100, 79, 16, 242, 31, 79, 16,
+ 251, 84, 79, 16, 231, 139, 79, 1, 204, 64, 79, 1, 202, 92, 79, 1, 118,
+ 150, 79, 1, 118, 207, 4, 79, 1, 118, 165, 79, 1, 118, 219, 138, 79, 18,
+ 3, 118, 150, 79, 18, 3, 118, 207, 4, 79, 18, 3, 118, 165, 79, 18, 3, 118,
+ 219, 138, 79, 1, 216, 56, 214, 165, 79, 1, 216, 56, 223, 28, 79, 1, 216,
+ 56, 248, 159, 79, 1, 216, 56, 248, 154, 79, 116, 3, 216, 56, 217, 35,
+ 181, 79, 116, 3, 216, 56, 217, 35, 172, 79, 116, 3, 216, 56, 217, 35,
+ 177, 79, 1, 204, 70, 222, 96, 204, 64, 79, 18, 3, 204, 70, 222, 96, 233,
+ 230, 79, 158, 122, 204, 70, 222, 96, 230, 14, 79, 158, 122, 204, 70, 222,
+ 96, 222, 58, 210, 65, 79, 1, 194, 88, 209, 3, 222, 96, 199, 240, 79, 1,
+ 194, 88, 209, 3, 222, 96, 209, 9, 79, 18, 3, 194, 88, 209, 3, 222, 96,
+ 233, 230, 79, 18, 3, 194, 88, 209, 3, 222, 96, 197, 104, 79, 3, 194, 88,
+ 209, 3, 222, 96, 199, 17, 79, 3, 194, 88, 209, 3, 222, 96, 199, 16, 79,
+ 3, 194, 88, 209, 3, 222, 96, 199, 15, 79, 3, 194, 88, 209, 3, 222, 96,
+ 199, 14, 79, 3, 194, 88, 209, 3, 222, 96, 199, 13, 79, 1, 234, 184, 209,
+ 3, 222, 96, 213, 178, 79, 1, 234, 184, 209, 3, 222, 96, 192, 172, 79, 1,
+ 234, 184, 209, 3, 222, 96, 231, 49, 79, 18, 3, 231, 154, 222, 96, 70, 79,
+ 18, 3, 222, 63, 212, 0, 79, 18, 3, 222, 63, 68, 79, 18, 3, 222, 63, 234,
+ 171, 79, 1, 204, 38, 160, 79, 1, 204, 38, 221, 250, 79, 1, 204, 38, 231,
+ 233, 79, 1, 204, 38, 247, 19, 79, 1, 204, 38, 192, 112, 79, 1, 204, 38,
+ 212, 201, 79, 1, 204, 38, 238, 0, 79, 1, 204, 38, 181, 79, 1, 204, 38,
+ 210, 94, 79, 1, 204, 38, 233, 97, 79, 1, 204, 38, 249, 3, 79, 1, 204, 38,
+ 199, 240, 79, 1, 204, 38, 144, 79, 116, 3, 204, 38, 217, 35, 194, 169,
+ 79, 18, 3, 204, 38, 252, 33, 79, 18, 3, 204, 38, 71, 79, 18, 3, 204, 38,
+ 234, 253, 58, 79, 18, 3, 204, 38, 52, 193, 148, 79, 3, 204, 38, 199, 16,
+ 79, 3, 204, 38, 199, 15, 79, 3, 204, 38, 199, 13, 79, 3, 204, 38, 199,
+ 12, 79, 3, 204, 38, 238, 213, 199, 16, 79, 3, 204, 38, 238, 213, 199, 15,
+ 79, 3, 204, 38, 238, 213, 234, 91, 199, 18, 79, 1, 206, 197, 211, 46,
+ 233, 97, 79, 3, 206, 197, 211, 46, 199, 13, 79, 204, 38, 17, 192, 76, 79,
+ 204, 38, 17, 101, 79, 204, 38, 17, 104, 79, 204, 38, 17, 133, 79, 204,
+ 38, 17, 134, 79, 204, 38, 17, 151, 79, 204, 38, 17, 170, 79, 204, 38, 17,
+ 179, 79, 204, 38, 17, 174, 79, 204, 38, 17, 182, 79, 3, 221, 242, 199,
+ 17, 79, 3, 221, 242, 199, 15, 79, 18, 3, 251, 49, 64, 79, 18, 3, 251, 49,
+ 251, 63, 79, 16, 204, 38, 101, 79, 16, 204, 38, 233, 203, 98, 6, 1, 250,
+ 224, 98, 6, 1, 248, 207, 98, 6, 1, 231, 203, 98, 6, 1, 236, 123, 98, 6,
+ 1, 234, 88, 98, 6, 1, 196, 20, 98, 6, 1, 192, 79, 98, 6, 1, 200, 125, 98,
+ 6, 1, 223, 190, 98, 6, 1, 222, 121, 98, 6, 1, 220, 67, 98, 6, 1, 217,
+ 160, 98, 6, 1, 215, 51, 98, 6, 1, 211, 211, 98, 6, 1, 210, 247, 98, 6, 1,
+ 192, 67, 98, 6, 1, 208, 53, 98, 6, 1, 206, 40, 98, 6, 1, 200, 112, 98, 6,
+ 1, 197, 77, 98, 6, 1, 210, 86, 98, 6, 1, 221, 237, 98, 6, 1, 231, 75, 98,
+ 6, 1, 208, 224, 98, 6, 1, 203, 224, 98, 6, 1, 242, 201, 98, 6, 1, 246,
+ 243, 98, 6, 1, 223, 10, 98, 6, 1, 242, 138, 98, 6, 1, 246, 101, 98, 6, 1,
+ 193, 207, 98, 6, 1, 223, 25, 98, 6, 1, 230, 95, 98, 6, 1, 229, 255, 98,
+ 6, 1, 229, 165, 98, 6, 1, 194, 111, 98, 6, 1, 230, 28, 98, 6, 1, 229, 31,
+ 98, 6, 1, 193, 3, 98, 6, 1, 251, 97, 98, 1, 250, 224, 98, 1, 248, 207,
+ 98, 1, 231, 203, 98, 1, 236, 123, 98, 1, 234, 88, 98, 1, 196, 20, 98, 1,
+ 192, 79, 98, 1, 200, 125, 98, 1, 223, 190, 98, 1, 222, 121, 98, 1, 220,
+ 67, 98, 1, 217, 160, 98, 1, 215, 51, 98, 1, 211, 211, 98, 1, 210, 247,
+ 98, 1, 192, 67, 98, 1, 208, 53, 98, 1, 206, 40, 98, 1, 200, 112, 98, 1,
+ 197, 77, 98, 1, 210, 86, 98, 1, 221, 237, 98, 1, 231, 75, 98, 1, 208,
+ 224, 98, 1, 203, 224, 98, 1, 242, 201, 98, 1, 246, 243, 98, 1, 223, 10,
+ 98, 1, 242, 138, 98, 1, 246, 101, 98, 1, 193, 207, 98, 1, 223, 25, 98, 1,
+ 230, 95, 98, 1, 229, 255, 98, 1, 229, 165, 98, 1, 194, 111, 98, 1, 230,
+ 28, 98, 1, 229, 31, 98, 1, 233, 11, 98, 1, 193, 3, 98, 1, 234, 107, 98,
+ 1, 163, 231, 203, 98, 1, 251, 57, 98, 210, 244, 204, 165, 73, 1, 98, 215,
+ 51, 98, 1, 251, 97, 98, 1, 230, 26, 57, 98, 1, 220, 175, 57, 30, 143,
+ 221, 151, 30, 143, 202, 84, 30, 143, 214, 45, 30, 143, 199, 103, 30, 143,
+ 202, 73, 30, 143, 207, 133, 30, 143, 216, 153, 30, 143, 210, 36, 30, 143,
+ 202, 81, 30, 143, 203, 64, 30, 143, 202, 78, 30, 143, 223, 247, 30, 143,
+ 242, 144, 30, 143, 202, 88, 30, 143, 242, 211, 30, 143, 221, 225, 30,
+ 143, 199, 198, 30, 143, 210, 75, 30, 143, 229, 162, 30, 143, 214, 41, 30,
+ 143, 202, 82, 30, 143, 214, 35, 30, 143, 214, 39, 30, 143, 199, 100, 30,
+ 143, 207, 121, 30, 143, 202, 80, 30, 143, 207, 131, 30, 143, 222, 102,
+ 30, 143, 216, 146, 30, 143, 222, 105, 30, 143, 210, 31, 30, 143, 210, 29,
+ 30, 143, 210, 17, 30, 143, 210, 25, 30, 143, 210, 23, 30, 143, 210, 20,
+ 30, 143, 210, 22, 30, 143, 210, 19, 30, 143, 210, 24, 30, 143, 210, 34,
+ 30, 143, 210, 35, 30, 143, 210, 18, 30, 143, 210, 28, 30, 143, 222, 103,
+ 30, 143, 222, 101, 30, 143, 203, 57, 30, 143, 203, 55, 30, 143, 203, 47,
+ 30, 143, 203, 50, 30, 143, 203, 56, 30, 143, 203, 52, 30, 143, 203, 51,
+ 30, 143, 203, 49, 30, 143, 203, 60, 30, 143, 203, 62, 30, 143, 203, 63,
+ 30, 143, 203, 58, 30, 143, 203, 48, 30, 143, 203, 53, 30, 143, 203, 61,
+ 30, 143, 242, 192, 30, 143, 242, 190, 30, 143, 246, 130, 30, 143, 246,
+ 128, 30, 143, 211, 8, 30, 143, 223, 242, 30, 143, 223, 233, 30, 143, 223,
+ 241, 30, 143, 223, 238, 30, 143, 223, 236, 30, 143, 223, 240, 30, 143,
+ 202, 85, 30, 143, 223, 245, 30, 143, 223, 246, 30, 143, 223, 234, 30,
+ 143, 223, 239, 30, 143, 193, 46, 30, 143, 242, 143, 30, 143, 242, 193,
+ 30, 143, 242, 191, 30, 143, 246, 131, 30, 143, 246, 129, 30, 143, 242,
+ 209, 30, 143, 242, 210, 30, 143, 242, 194, 30, 143, 246, 132, 30, 143,
+ 210, 73, 30, 143, 222, 104, 30, 143, 202, 86, 30, 143, 193, 52, 30, 143,
+ 221, 142, 30, 143, 214, 37, 30, 143, 214, 43, 30, 143, 214, 42, 30, 143,
+ 199, 97, 30, 143, 232, 247, 30, 222, 206, 232, 247, 30, 222, 206, 64, 30,
+ 222, 206, 251, 108, 30, 222, 206, 168, 30, 222, 206, 193, 118, 30, 222,
+ 206, 234, 50, 30, 222, 206, 71, 30, 222, 206, 193, 56, 30, 222, 206, 193,
+ 69, 30, 222, 206, 74, 30, 222, 206, 194, 169, 30, 222, 206, 194, 160, 30,
+ 222, 206, 212, 0, 30, 222, 206, 193, 1, 30, 222, 206, 68, 30, 222, 206,
+ 194, 93, 30, 222, 206, 194, 111, 30, 222, 206, 194, 72, 30, 222, 206,
+ 192, 214, 30, 222, 206, 233, 230, 30, 222, 206, 193, 22, 30, 222, 206,
+ 70, 30, 222, 206, 255, 29, 30, 222, 206, 255, 28, 30, 222, 206, 193, 132,
+ 30, 222, 206, 193, 130, 30, 222, 206, 234, 48, 30, 222, 206, 234, 47, 30,
+ 222, 206, 234, 49, 30, 222, 206, 193, 55, 30, 222, 206, 193, 54, 30, 222,
+ 206, 212, 110, 30, 222, 206, 212, 111, 30, 222, 206, 212, 104, 30, 222,
+ 206, 212, 109, 30, 222, 206, 212, 107, 30, 222, 206, 192, 245, 30, 222,
+ 206, 192, 244, 30, 222, 206, 192, 243, 30, 222, 206, 192, 246, 30, 222,
+ 206, 192, 247, 30, 222, 206, 197, 177, 30, 222, 206, 197, 176, 30, 222,
+ 206, 197, 174, 30, 222, 206, 197, 170, 30, 222, 206, 197, 171, 30, 222,
+ 206, 192, 209, 30, 222, 206, 192, 206, 30, 222, 206, 192, 207, 30, 222,
+ 206, 192, 201, 30, 222, 206, 192, 202, 30, 222, 206, 192, 203, 30, 222,
+ 206, 192, 205, 30, 222, 206, 233, 224, 30, 222, 206, 233, 226, 30, 222,
+ 206, 193, 21, 30, 222, 206, 228, 92, 30, 222, 206, 228, 84, 30, 222, 206,
+ 228, 87, 30, 222, 206, 228, 85, 30, 222, 206, 228, 89, 30, 222, 206, 228,
+ 91, 30, 222, 206, 250, 123, 30, 222, 206, 250, 120, 30, 222, 206, 250,
+ 118, 30, 222, 206, 250, 119, 30, 222, 206, 202, 89, 30, 222, 206, 255,
+ 30, 30, 222, 206, 193, 131, 30, 222, 206, 193, 53, 30, 222, 206, 212,
+ 106, 30, 222, 206, 212, 105, 30, 123, 221, 151, 30, 123, 202, 84, 30,
+ 123, 221, 144, 30, 123, 214, 45, 30, 123, 214, 43, 30, 123, 214, 42, 30,
+ 123, 199, 103, 30, 123, 207, 133, 30, 123, 207, 128, 30, 123, 207, 125,
+ 30, 123, 207, 118, 30, 123, 207, 113, 30, 123, 207, 108, 30, 123, 207,
+ 119, 30, 123, 207, 131, 30, 123, 216, 153, 30, 123, 210, 36, 30, 123,
+ 210, 25, 30, 123, 203, 64, 30, 123, 202, 78, 30, 123, 223, 247, 30, 123,
+ 242, 144, 30, 123, 242, 211, 30, 123, 221, 225, 30, 123, 199, 198, 30,
+ 123, 210, 75, 30, 123, 229, 162, 30, 123, 221, 145, 30, 123, 221, 143,
+ 30, 123, 214, 41, 30, 123, 214, 35, 30, 123, 214, 37, 30, 123, 214, 40,
+ 30, 123, 214, 36, 30, 123, 199, 100, 30, 123, 199, 97, 30, 123, 207, 126,
+ 30, 123, 207, 121, 30, 123, 207, 107, 30, 123, 207, 106, 30, 123, 202,
+ 80, 30, 123, 207, 123, 30, 123, 207, 122, 30, 123, 207, 115, 30, 123,
+ 207, 117, 30, 123, 207, 130, 30, 123, 207, 110, 30, 123, 207, 120, 30,
+ 123, 207, 129, 30, 123, 207, 105, 30, 123, 216, 149, 30, 123, 216, 144,
+ 30, 123, 216, 146, 30, 123, 216, 143, 30, 123, 216, 141, 30, 123, 216,
+ 147, 30, 123, 216, 152, 30, 123, 216, 150, 30, 123, 222, 105, 30, 123,
+ 210, 27, 30, 123, 210, 28, 30, 123, 210, 33, 30, 123, 222, 103, 30, 123,
+ 203, 57, 30, 123, 203, 47, 30, 123, 203, 50, 30, 123, 203, 52, 30, 123,
+ 211, 8, 30, 123, 223, 242, 30, 123, 223, 235, 30, 123, 202, 85, 30, 123,
+ 223, 243, 30, 123, 193, 46, 30, 123, 193, 40, 30, 123, 193, 41, 30, 123,
+ 210, 73, 30, 123, 222, 104, 30, 123, 229, 160, 30, 123, 229, 158, 30,
+ 123, 229, 161, 30, 123, 229, 159, 30, 123, 193, 52, 30, 123, 221, 147,
+ 30, 123, 221, 146, 30, 123, 221, 150, 30, 123, 221, 148, 30, 123, 221,
+ 149, 30, 123, 202, 82, 36, 5, 144, 36, 5, 228, 181, 36, 5, 229, 178, 36,
+ 5, 230, 99, 36, 5, 229, 225, 36, 5, 229, 255, 36, 5, 229, 43, 36, 5, 229,
+ 34, 36, 5, 177, 36, 5, 219, 36, 36, 5, 219, 209, 36, 5, 220, 184, 36, 5,
+ 220, 32, 36, 5, 220, 42, 36, 5, 219, 107, 36, 5, 219, 3, 36, 5, 229, 187,
+ 36, 5, 229, 181, 36, 5, 229, 183, 36, 5, 229, 186, 36, 5, 229, 184, 36,
+ 5, 229, 185, 36, 5, 229, 182, 36, 5, 229, 180, 36, 5, 172, 36, 5, 215,
+ 241, 36, 5, 216, 175, 36, 5, 217, 219, 36, 5, 217, 29, 36, 5, 217, 48,
+ 36, 5, 216, 91, 36, 5, 215, 168, 36, 5, 200, 239, 36, 5, 200, 233, 36, 5,
+ 200, 235, 36, 5, 200, 238, 36, 5, 200, 236, 36, 5, 200, 237, 36, 5, 200,
+ 234, 36, 5, 200, 232, 36, 5, 167, 36, 5, 206, 218, 36, 5, 207, 151, 36,
+ 5, 208, 68, 36, 5, 207, 234, 36, 5, 208, 7, 36, 5, 207, 55, 36, 5, 206,
+ 176, 36, 5, 188, 36, 5, 201, 184, 36, 5, 203, 125, 36, 5, 206, 91, 36, 5,
+ 205, 205, 36, 5, 205, 223, 36, 5, 202, 212, 36, 5, 201, 79, 36, 5, 204,
+ 64, 36, 5, 203, 164, 36, 5, 203, 236, 36, 5, 204, 59, 36, 5, 204, 10, 36,
+ 5, 204, 12, 36, 5, 203, 211, 36, 5, 203, 143, 36, 5, 208, 239, 36, 5,
+ 208, 177, 36, 5, 208, 201, 36, 5, 208, 238, 36, 5, 208, 218, 36, 5, 208,
+ 219, 36, 5, 208, 189, 36, 5, 208, 188, 36, 5, 208, 130, 36, 5, 208, 126,
+ 36, 5, 208, 129, 36, 5, 208, 127, 36, 5, 208, 128, 36, 5, 208, 215, 36,
+ 5, 208, 207, 36, 5, 208, 210, 36, 5, 208, 214, 36, 5, 208, 211, 36, 5,
+ 208, 212, 36, 5, 208, 209, 36, 5, 208, 206, 36, 5, 208, 202, 36, 5, 208,
+ 205, 36, 5, 208, 203, 36, 5, 208, 204, 36, 5, 249, 3, 36, 5, 247, 124,
+ 36, 5, 248, 41, 36, 5, 249, 1, 36, 5, 248, 108, 36, 5, 248, 123, 36, 5,
+ 247, 220, 36, 5, 247, 69, 36, 5, 196, 157, 36, 5, 194, 223, 36, 5, 196,
+ 39, 36, 5, 196, 156, 36, 5, 196, 118, 36, 5, 196, 123, 36, 5, 195, 252,
+ 36, 5, 194, 212, 36, 5, 189, 36, 5, 198, 45, 36, 5, 199, 128, 36, 5, 200,
+ 174, 36, 5, 200, 56, 36, 5, 200, 79, 36, 5, 155, 36, 5, 197, 250, 36, 5,
+ 247, 19, 36, 5, 238, 162, 36, 5, 242, 149, 36, 5, 247, 18, 36, 5, 246,
+ 150, 36, 5, 246, 158, 36, 5, 242, 63, 36, 5, 238, 118, 36, 5, 193, 209,
+ 36, 5, 193, 177, 36, 5, 193, 196, 36, 5, 193, 208, 36, 5, 193, 202, 36,
+ 5, 193, 203, 36, 5, 193, 185, 36, 5, 193, 184, 36, 5, 193, 170, 36, 5,
+ 193, 166, 36, 5, 193, 169, 36, 5, 193, 167, 36, 5, 193, 168, 36, 5, 181,
+ 36, 5, 213, 22, 36, 5, 214, 60, 36, 5, 215, 84, 36, 5, 214, 203, 36, 5,
+ 214, 214, 36, 5, 213, 142, 36, 5, 212, 210, 36, 5, 212, 201, 36, 5, 212,
+ 158, 36, 5, 212, 181, 36, 5, 212, 200, 36, 5, 212, 189, 36, 5, 212, 190,
+ 36, 5, 212, 165, 36, 5, 212, 148, 36, 5, 231, 6, 64, 36, 5, 231, 6, 68,
+ 36, 5, 231, 6, 70, 36, 5, 231, 6, 252, 33, 36, 5, 231, 6, 234, 171, 36,
+ 5, 231, 6, 71, 36, 5, 231, 6, 74, 36, 5, 231, 6, 194, 169, 36, 5, 160,
+ 36, 5, 221, 33, 36, 5, 221, 204, 36, 5, 222, 159, 36, 5, 222, 48, 36, 5,
+ 222, 57, 36, 5, 221, 113, 36, 5, 221, 108, 36, 5, 220, 238, 36, 5, 220,
+ 231, 36, 5, 220, 237, 36, 5, 220, 232, 36, 5, 220, 233, 36, 5, 220, 224,
+ 36, 5, 220, 218, 36, 5, 220, 220, 36, 5, 220, 223, 36, 5, 220, 221, 36,
+ 5, 220, 222, 36, 5, 220, 219, 36, 5, 220, 217, 36, 5, 220, 213, 36, 5,
+ 220, 216, 36, 5, 220, 214, 36, 5, 220, 215, 36, 5, 194, 169, 36, 5, 193,
+ 244, 36, 5, 194, 72, 36, 5, 194, 163, 36, 5, 194, 100, 36, 5, 194, 111,
+ 36, 5, 194, 36, 36, 5, 194, 28, 36, 5, 210, 85, 64, 36, 5, 210, 85, 68,
+ 36, 5, 210, 85, 70, 36, 5, 210, 85, 252, 33, 36, 5, 210, 85, 234, 171,
+ 36, 5, 210, 85, 71, 36, 5, 210, 85, 74, 36, 5, 192, 112, 36, 5, 191, 252,
+ 36, 5, 192, 30, 36, 5, 192, 110, 36, 5, 192, 82, 36, 5, 192, 85, 36, 5,
+ 192, 8, 36, 5, 191, 239, 36, 5, 192, 71, 36, 5, 192, 48, 36, 5, 192, 57,
+ 36, 5, 192, 70, 36, 5, 192, 61, 36, 5, 192, 62, 36, 5, 192, 54, 36, 5,
+ 192, 39, 36, 5, 168, 36, 5, 192, 214, 36, 5, 193, 22, 36, 5, 193, 129,
+ 36, 5, 193, 66, 36, 5, 193, 69, 36, 5, 193, 1, 36, 5, 192, 241, 36, 5,
+ 238, 0, 36, 5, 235, 62, 36, 5, 237, 16, 36, 5, 237, 255, 36, 5, 237, 101,
+ 36, 5, 237, 116, 36, 5, 236, 146, 36, 5, 235, 28, 36, 5, 237, 161, 36, 5,
+ 237, 126, 36, 5, 237, 138, 36, 5, 237, 160, 36, 5, 237, 148, 36, 5, 237,
+ 149, 36, 5, 237, 131, 36, 5, 237, 117, 36, 5, 223, 62, 36, 5, 222, 214,
+ 36, 5, 223, 20, 36, 5, 223, 61, 36, 5, 223, 39, 36, 5, 223, 41, 36, 5,
+ 222, 233, 36, 5, 222, 192, 36, 5, 231, 233, 36, 5, 230, 186, 36, 5, 231,
+ 46, 36, 5, 231, 230, 36, 5, 231, 150, 36, 5, 231, 158, 36, 5, 230, 254,
+ 36, 5, 230, 253, 36, 5, 230, 143, 36, 5, 230, 139, 36, 5, 230, 142, 36,
+ 5, 230, 140, 36, 5, 230, 141, 36, 5, 231, 120, 36, 5, 231, 100, 36, 5,
+ 231, 110, 36, 5, 231, 119, 36, 5, 231, 114, 36, 5, 231, 115, 36, 5, 231,
+ 104, 36, 5, 231, 89, 36, 5, 199, 240, 36, 5, 199, 148, 36, 5, 199, 202,
+ 36, 5, 199, 239, 36, 5, 199, 222, 36, 5, 199, 224, 36, 5, 199, 176, 36,
+ 5, 199, 139, 36, 5, 246, 117, 36, 5, 242, 168, 36, 5, 242, 215, 36, 5,
+ 246, 116, 36, 5, 242, 241, 36, 5, 242, 245, 36, 5, 242, 188, 36, 5, 242,
+ 157, 36, 5, 210, 94, 36, 5, 210, 57, 36, 5, 210, 77, 36, 5, 210, 93, 36,
+ 5, 210, 79, 36, 5, 210, 80, 36, 5, 210, 65, 36, 5, 210, 53, 36, 5, 198,
+ 118, 36, 5, 198, 91, 36, 5, 198, 97, 36, 5, 198, 117, 36, 5, 198, 111,
+ 36, 5, 198, 112, 36, 5, 198, 95, 36, 5, 198, 89, 36, 5, 197, 191, 36, 5,
+ 197, 183, 36, 5, 197, 187, 36, 5, 197, 190, 36, 5, 197, 188, 36, 5, 197,
+ 189, 36, 5, 197, 185, 36, 5, 197, 184, 36, 5, 233, 97, 36, 5, 232, 77,
+ 36, 5, 233, 11, 36, 5, 233, 96, 36, 5, 233, 40, 36, 5, 233, 47, 36, 5,
+ 232, 164, 36, 5, 232, 55, 36, 5, 166, 36, 5, 209, 51, 36, 5, 210, 51, 36,
+ 5, 211, 77, 36, 5, 210, 168, 36, 5, 210, 181, 36, 5, 209, 198, 36, 5,
+ 209, 9, 36, 5, 206, 166, 36, 5, 215, 157, 36, 5, 232, 49, 36, 38, 231,
+ 146, 26, 18, 220, 2, 77, 36, 38, 18, 220, 2, 77, 36, 38, 231, 146, 77,
+ 36, 205, 209, 77, 36, 194, 10, 36, 232, 71, 201, 238, 36, 242, 38, 36,
+ 204, 180, 36, 242, 47, 36, 209, 112, 242, 47, 36, 208, 159, 77, 36, 210,
+ 244, 204, 165, 36, 17, 101, 36, 17, 104, 36, 17, 133, 36, 17, 134, 36,
+ 17, 151, 36, 17, 170, 36, 17, 179, 36, 17, 174, 36, 17, 182, 36, 31, 200,
+ 30, 36, 31, 197, 239, 36, 31, 199, 184, 36, 31, 232, 126, 36, 31, 233, 3,
+ 36, 31, 203, 25, 36, 31, 204, 140, 36, 31, 234, 137, 36, 31, 214, 11, 36,
+ 31, 228, 162, 36, 31, 200, 31, 180, 36, 5, 205, 214, 215, 168, 36, 5,
+ 215, 164, 36, 5, 215, 165, 36, 5, 215, 166, 36, 5, 205, 214, 247, 69, 36,
+ 5, 247, 66, 36, 5, 247, 67, 36, 5, 247, 68, 36, 5, 205, 214, 232, 55, 36,
+ 5, 232, 51, 36, 5, 232, 52, 36, 5, 232, 53, 36, 5, 205, 214, 209, 9, 36,
+ 5, 209, 5, 36, 5, 209, 6, 36, 5, 209, 7, 36, 199, 19, 122, 193, 4, 36,
+ 199, 19, 122, 237, 61, 36, 199, 19, 122, 207, 87, 36, 199, 19, 122, 203,
+ 195, 207, 87, 36, 199, 19, 122, 236, 246, 36, 199, 19, 122, 222, 29, 36,
+ 199, 19, 122, 242, 196, 36, 199, 19, 122, 229, 167, 36, 199, 19, 122,
+ 237, 60, 36, 199, 19, 122, 220, 254, 99, 1, 64, 99, 1, 71, 99, 1, 70, 99,
+ 1, 74, 99, 1, 68, 99, 1, 196, 236, 99, 1, 231, 233, 99, 1, 160, 99, 1,
+ 231, 158, 99, 1, 231, 46, 99, 1, 230, 254, 99, 1, 230, 186, 99, 1, 230,
+ 146, 99, 1, 144, 99, 1, 229, 255, 99, 1, 229, 178, 99, 1, 229, 43, 99, 1,
+ 228, 181, 99, 1, 228, 148, 99, 1, 177, 99, 1, 220, 42, 99, 1, 219, 209,
+ 99, 1, 219, 107, 99, 1, 219, 36, 99, 1, 219, 4, 99, 1, 172, 99, 1, 217,
+ 48, 99, 1, 216, 175, 99, 1, 216, 91, 99, 1, 215, 241, 99, 1, 181, 99, 1,
+ 229, 67, 99, 1, 215, 71, 99, 1, 214, 214, 99, 1, 214, 60, 99, 1, 213,
+ 142, 99, 1, 213, 22, 99, 1, 212, 212, 99, 1, 208, 176, 99, 1, 208, 162,
+ 99, 1, 208, 155, 99, 1, 208, 145, 99, 1, 208, 134, 99, 1, 208, 132, 99,
+ 1, 188, 99, 1, 206, 158, 99, 1, 205, 223, 99, 1, 203, 125, 99, 1, 202,
+ 212, 99, 1, 201, 184, 99, 1, 201, 84, 99, 1, 238, 0, 99, 1, 189, 99, 1,
+ 237, 116, 99, 1, 200, 79, 99, 1, 237, 16, 99, 1, 199, 128, 99, 1, 236,
+ 146, 99, 1, 235, 62, 99, 1, 235, 31, 99, 1, 236, 158, 99, 1, 199, 53, 99,
+ 1, 199, 52, 99, 1, 199, 41, 99, 1, 199, 40, 99, 1, 199, 39, 99, 1, 199,
+ 38, 99, 1, 198, 118, 99, 1, 198, 112, 99, 1, 198, 97, 99, 1, 198, 95, 99,
+ 1, 198, 91, 99, 1, 198, 90, 99, 1, 194, 169, 99, 1, 194, 111, 99, 1, 194,
+ 72, 99, 1, 194, 36, 99, 1, 193, 244, 99, 1, 193, 231, 99, 1, 168, 99, 1,
+ 193, 69, 99, 1, 193, 22, 99, 1, 193, 1, 99, 1, 192, 214, 99, 1, 192, 173,
+ 99, 1, 215, 175, 99, 2, 1, 193, 69, 99, 2, 1, 193, 22, 99, 2, 1, 193, 1,
+ 99, 2, 1, 192, 214, 99, 2, 1, 192, 173, 99, 2, 1, 215, 175, 21, 22, 228,
+ 111, 21, 22, 71, 21, 22, 251, 253, 21, 22, 70, 21, 22, 223, 224, 21, 22,
+ 74, 21, 22, 211, 194, 21, 22, 193, 147, 211, 194, 21, 22, 96, 234, 171,
+ 21, 22, 96, 70, 21, 22, 64, 21, 22, 252, 33, 21, 22, 194, 111, 21, 22,
+ 194, 89, 194, 111, 21, 22, 194, 72, 21, 22, 194, 89, 194, 72, 21, 22,
+ 194, 56, 21, 22, 194, 89, 194, 56, 21, 22, 194, 36, 21, 22, 194, 89, 194,
+ 36, 21, 22, 194, 17, 21, 22, 194, 89, 194, 17, 21, 22, 215, 45, 194, 17,
+ 21, 22, 194, 169, 21, 22, 194, 89, 194, 169, 21, 22, 194, 163, 21, 22,
+ 194, 89, 194, 163, 21, 22, 215, 45, 194, 163, 21, 22, 251, 63, 21, 22,
+ 193, 147, 194, 202, 21, 22, 231, 6, 201, 238, 21, 22, 52, 251, 129, 21,
+ 22, 52, 230, 210, 21, 22, 52, 247, 188, 138, 207, 81, 21, 22, 52, 198,
+ 249, 138, 207, 81, 21, 22, 52, 51, 138, 207, 81, 21, 22, 52, 207, 81, 21,
+ 22, 52, 55, 251, 129, 21, 22, 52, 55, 203, 195, 84, 201, 195, 21, 22, 52,
+ 85, 236, 114, 21, 22, 52, 203, 195, 229, 5, 111, 21, 22, 52, 209, 206,
+ 21, 22, 52, 142, 200, 159, 21, 22, 234, 88, 21, 22, 223, 190, 21, 22,
+ 211, 211, 21, 22, 250, 224, 21, 22, 210, 181, 21, 22, 211, 75, 21, 22,
+ 210, 51, 21, 22, 210, 12, 21, 22, 209, 198, 21, 22, 209, 172, 21, 22,
+ 193, 147, 209, 172, 21, 22, 96, 229, 225, 21, 22, 96, 229, 178, 21, 22,
+ 166, 21, 22, 211, 77, 21, 22, 209, 7, 21, 22, 194, 89, 209, 7, 21, 22,
+ 209, 5, 21, 22, 194, 89, 209, 5, 21, 22, 209, 4, 21, 22, 194, 89, 209, 4,
+ 21, 22, 209, 2, 21, 22, 194, 89, 209, 2, 21, 22, 209, 1, 21, 22, 194, 89,
+ 209, 1, 21, 22, 209, 9, 21, 22, 194, 89, 209, 9, 21, 22, 209, 8, 21, 22,
+ 194, 89, 209, 8, 21, 22, 193, 147, 209, 8, 21, 22, 211, 93, 21, 22, 194,
+ 89, 211, 93, 21, 22, 96, 230, 124, 21, 22, 200, 79, 21, 22, 200, 172, 21,
+ 22, 199, 128, 21, 22, 199, 105, 21, 22, 155, 21, 22, 198, 254, 21, 22,
+ 193, 147, 198, 254, 21, 22, 96, 237, 101, 21, 22, 96, 237, 16, 21, 22,
+ 189, 21, 22, 200, 174, 21, 22, 197, 248, 21, 22, 194, 89, 197, 248, 21,
+ 22, 197, 226, 21, 22, 194, 89, 197, 226, 21, 22, 197, 225, 21, 22, 194,
+ 89, 197, 225, 21, 22, 104, 21, 22, 194, 89, 104, 21, 22, 197, 216, 21,
+ 22, 194, 89, 197, 216, 21, 22, 197, 250, 21, 22, 194, 89, 197, 250, 21,
+ 22, 197, 249, 21, 22, 194, 89, 197, 249, 21, 22, 215, 45, 197, 249, 21,
+ 22, 200, 228, 21, 22, 198, 78, 21, 22, 198, 62, 21, 22, 198, 60, 21, 22,
+ 198, 83, 21, 22, 222, 57, 21, 22, 222, 153, 21, 22, 221, 204, 21, 22,
+ 221, 183, 21, 22, 221, 113, 21, 22, 221, 88, 21, 22, 193, 147, 221, 88,
+ 21, 22, 160, 21, 22, 222, 159, 21, 22, 220, 233, 21, 22, 194, 89, 220,
+ 233, 21, 22, 220, 231, 21, 22, 194, 89, 220, 231, 21, 22, 220, 230, 21,
+ 22, 194, 89, 220, 230, 21, 22, 220, 228, 21, 22, 194, 89, 220, 228, 21,
+ 22, 220, 227, 21, 22, 194, 89, 220, 227, 21, 22, 220, 238, 21, 22, 194,
+ 89, 220, 238, 21, 22, 220, 237, 21, 22, 194, 89, 220, 237, 21, 22, 215,
+ 45, 220, 237, 21, 22, 222, 184, 21, 22, 220, 239, 21, 22, 202, 170, 222,
+ 41, 21, 22, 202, 170, 221, 184, 21, 22, 202, 170, 221, 103, 21, 22, 202,
+ 170, 222, 137, 21, 22, 246, 158, 21, 22, 247, 17, 21, 22, 242, 149, 21,
+ 22, 242, 139, 21, 22, 242, 63, 21, 22, 238, 239, 21, 22, 193, 147, 238,
+ 239, 21, 22, 247, 19, 21, 22, 247, 18, 21, 22, 238, 116, 21, 22, 194, 89,
+ 238, 116, 21, 22, 238, 114, 21, 22, 194, 89, 238, 114, 21, 22, 238, 113,
+ 21, 22, 194, 89, 238, 113, 21, 22, 238, 112, 21, 22, 194, 89, 238, 112,
+ 21, 22, 238, 111, 21, 22, 194, 89, 238, 111, 21, 22, 238, 118, 21, 22,
+ 194, 89, 238, 118, 21, 22, 238, 117, 21, 22, 194, 89, 238, 117, 21, 22,
+ 215, 45, 238, 117, 21, 22, 247, 52, 21, 22, 205, 255, 199, 242, 21, 22,
+ 217, 48, 21, 22, 217, 218, 21, 22, 216, 175, 21, 22, 216, 137, 21, 22,
+ 216, 91, 21, 22, 216, 35, 21, 22, 193, 147, 216, 35, 21, 22, 172, 21, 22,
+ 217, 219, 21, 22, 215, 166, 21, 22, 194, 89, 215, 166, 21, 22, 215, 164,
+ 21, 22, 194, 89, 215, 164, 21, 22, 215, 163, 21, 22, 194, 89, 215, 163,
+ 21, 22, 215, 162, 21, 22, 194, 89, 215, 162, 21, 22, 215, 161, 21, 22,
+ 194, 89, 215, 161, 21, 22, 215, 168, 21, 22, 194, 89, 215, 168, 21, 22,
+ 215, 167, 21, 22, 194, 89, 215, 167, 21, 22, 215, 45, 215, 167, 21, 22,
+ 218, 236, 21, 22, 194, 89, 218, 236, 21, 22, 216, 179, 21, 22, 250, 24,
+ 218, 236, 21, 22, 205, 255, 218, 236, 21, 22, 214, 214, 21, 22, 215, 83,
+ 21, 22, 214, 60, 21, 22, 214, 27, 21, 22, 213, 142, 21, 22, 213, 125, 21,
+ 22, 193, 147, 213, 125, 21, 22, 181, 21, 22, 215, 84, 21, 22, 212, 208,
+ 21, 22, 194, 89, 212, 208, 21, 22, 212, 210, 21, 22, 194, 89, 212, 210,
+ 21, 22, 212, 209, 21, 22, 194, 89, 212, 209, 21, 22, 215, 45, 212, 209,
+ 21, 22, 215, 151, 21, 22, 96, 214, 167, 21, 22, 214, 66, 21, 22, 220, 42,
+ 21, 22, 220, 183, 21, 22, 219, 209, 21, 22, 219, 191, 21, 22, 219, 107,
+ 21, 22, 219, 73, 21, 22, 193, 147, 219, 73, 21, 22, 177, 21, 22, 220,
+ 184, 21, 22, 219, 1, 21, 22, 194, 89, 219, 1, 21, 22, 219, 0, 21, 22,
+ 194, 89, 219, 0, 21, 22, 218, 255, 21, 22, 194, 89, 218, 255, 21, 22,
+ 218, 254, 21, 22, 194, 89, 218, 254, 21, 22, 218, 253, 21, 22, 194, 89,
+ 218, 253, 21, 22, 219, 3, 21, 22, 194, 89, 219, 3, 21, 22, 219, 2, 21,
+ 22, 194, 89, 219, 2, 21, 22, 165, 21, 22, 194, 89, 165, 21, 22, 217, 35,
+ 165, 21, 22, 205, 223, 21, 22, 206, 89, 21, 22, 203, 125, 21, 22, 203,
+ 97, 21, 22, 202, 212, 21, 22, 202, 183, 21, 22, 193, 147, 202, 183, 21,
+ 22, 188, 21, 22, 206, 91, 21, 22, 201, 74, 21, 22, 194, 89, 201, 74, 21,
+ 22, 201, 68, 21, 22, 194, 89, 201, 68, 21, 22, 201, 67, 21, 22, 194, 89,
+ 201, 67, 21, 22, 201, 62, 21, 22, 194, 89, 201, 62, 21, 22, 201, 61, 21,
+ 22, 194, 89, 201, 61, 21, 22, 201, 79, 21, 22, 194, 89, 201, 79, 21, 22,
+ 201, 78, 21, 22, 194, 89, 201, 78, 21, 22, 215, 45, 201, 78, 21, 22, 206,
+ 158, 21, 22, 250, 24, 206, 158, 21, 22, 201, 80, 21, 22, 247, 245, 206,
+ 158, 21, 22, 216, 28, 203, 19, 21, 22, 215, 45, 203, 8, 21, 22, 215, 45,
+ 206, 156, 21, 22, 215, 45, 202, 108, 21, 22, 215, 45, 201, 187, 21, 22,
+ 215, 45, 203, 7, 21, 22, 215, 45, 205, 226, 21, 22, 204, 12, 21, 22, 203,
+ 236, 21, 22, 203, 231, 21, 22, 203, 211, 21, 22, 203, 203, 21, 22, 204,
+ 64, 21, 22, 204, 59, 21, 22, 203, 140, 21, 22, 194, 89, 203, 140, 21, 22,
+ 203, 139, 21, 22, 194, 89, 203, 139, 21, 22, 203, 138, 21, 22, 194, 89,
+ 203, 138, 21, 22, 203, 137, 21, 22, 194, 89, 203, 137, 21, 22, 203, 136,
+ 21, 22, 194, 89, 203, 136, 21, 22, 203, 143, 21, 22, 194, 89, 203, 143,
+ 21, 22, 203, 142, 21, 22, 194, 89, 203, 142, 21, 22, 204, 66, 21, 22,
+ 193, 69, 21, 22, 193, 127, 21, 22, 193, 22, 21, 22, 193, 12, 21, 22, 193,
+ 1, 21, 22, 192, 235, 21, 22, 193, 147, 192, 235, 21, 22, 168, 21, 22,
+ 193, 129, 21, 22, 192, 170, 21, 22, 194, 89, 192, 170, 21, 22, 192, 169,
+ 21, 22, 194, 89, 192, 169, 21, 22, 192, 168, 21, 22, 194, 89, 192, 168,
+ 21, 22, 192, 167, 21, 22, 194, 89, 192, 167, 21, 22, 192, 166, 21, 22,
+ 194, 89, 192, 166, 21, 22, 192, 172, 21, 22, 194, 89, 192, 172, 21, 22,
+ 192, 171, 21, 22, 194, 89, 192, 171, 21, 22, 215, 45, 192, 171, 21, 22,
+ 193, 148, 21, 22, 248, 39, 193, 148, 21, 22, 194, 89, 193, 148, 21, 22,
+ 205, 255, 193, 22, 21, 22, 208, 7, 21, 22, 208, 111, 208, 7, 21, 22, 194,
+ 89, 220, 42, 21, 22, 208, 67, 21, 22, 207, 151, 21, 22, 207, 88, 21, 22,
+ 207, 55, 21, 22, 207, 28, 21, 22, 194, 89, 219, 107, 21, 22, 167, 21, 22,
+ 208, 68, 21, 22, 194, 89, 177, 21, 22, 206, 175, 21, 22, 194, 89, 206,
+ 175, 21, 22, 150, 21, 22, 194, 89, 150, 21, 22, 217, 35, 150, 21, 22,
+ 233, 47, 21, 22, 233, 94, 21, 22, 233, 11, 21, 22, 232, 252, 21, 22, 232,
+ 164, 21, 22, 232, 152, 21, 22, 233, 97, 21, 22, 233, 96, 21, 22, 232, 54,
+ 21, 22, 194, 89, 232, 54, 21, 22, 233, 163, 21, 22, 199, 224, 21, 22,
+ 215, 149, 199, 224, 21, 22, 199, 202, 21, 22, 215, 149, 199, 202, 21, 22,
+ 199, 196, 21, 22, 215, 149, 199, 196, 21, 22, 199, 176, 21, 22, 199, 170,
+ 21, 22, 199, 240, 21, 22, 199, 239, 21, 22, 199, 138, 21, 22, 194, 89,
+ 199, 138, 21, 22, 199, 242, 21, 22, 198, 69, 21, 22, 198, 67, 21, 22,
+ 198, 66, 21, 22, 198, 71, 21, 22, 198, 72, 21, 22, 197, 209, 21, 22, 197,
+ 208, 21, 22, 197, 207, 21, 22, 197, 211, 21, 22, 212, 229, 229, 255, 21,
+ 22, 212, 229, 229, 178, 21, 22, 212, 229, 229, 150, 21, 22, 212, 229,
+ 229, 43, 21, 22, 212, 229, 229, 16, 21, 22, 212, 229, 144, 21, 22, 212,
+ 229, 230, 99, 21, 22, 212, 229, 230, 124, 21, 22, 212, 228, 230, 124, 21,
+ 22, 229, 133, 21, 22, 208, 235, 21, 22, 208, 201, 21, 22, 208, 195, 21,
+ 22, 208, 189, 21, 22, 208, 184, 21, 22, 208, 239, 21, 22, 208, 238, 21,
+ 22, 208, 247, 21, 22, 199, 49, 21, 22, 199, 47, 21, 22, 199, 46, 21, 22,
+ 199, 50, 21, 22, 194, 89, 208, 7, 21, 22, 194, 89, 207, 151, 21, 22, 194,
+ 89, 207, 55, 21, 22, 194, 89, 167, 21, 22, 214, 163, 21, 22, 214, 113,
+ 21, 22, 214, 109, 21, 22, 214, 90, 21, 22, 214, 85, 21, 22, 214, 165, 21,
+ 22, 214, 164, 21, 22, 214, 167, 21, 22, 213, 171, 21, 22, 205, 255, 204,
+ 12, 21, 22, 205, 255, 203, 236, 21, 22, 205, 255, 203, 211, 21, 22, 205,
+ 255, 204, 64, 21, 22, 194, 15, 199, 224, 21, 22, 194, 15, 199, 202, 21,
+ 22, 194, 15, 199, 176, 21, 22, 194, 15, 199, 240, 21, 22, 194, 15, 199,
+ 242, 21, 22, 219, 216, 21, 22, 219, 215, 21, 22, 219, 214, 21, 22, 219,
+ 213, 21, 22, 219, 222, 21, 22, 219, 221, 21, 22, 219, 223, 21, 22, 199,
+ 241, 199, 224, 21, 22, 199, 241, 199, 202, 21, 22, 199, 241, 199, 196,
+ 21, 22, 199, 241, 199, 176, 21, 22, 199, 241, 199, 170, 21, 22, 199, 241,
+ 199, 240, 21, 22, 199, 241, 199, 239, 21, 22, 199, 241, 199, 242, 21, 22,
+ 251, 47, 249, 226, 21, 22, 247, 245, 71, 21, 22, 247, 245, 70, 21, 22,
+ 247, 245, 74, 21, 22, 247, 245, 64, 21, 22, 247, 245, 194, 111, 21, 22,
+ 247, 245, 194, 72, 21, 22, 247, 245, 194, 36, 21, 22, 247, 245, 194, 169,
+ 21, 22, 247, 245, 214, 214, 21, 22, 247, 245, 214, 60, 21, 22, 247, 245,
+ 213, 142, 21, 22, 247, 245, 181, 21, 22, 247, 245, 222, 57, 21, 22, 247,
+ 245, 221, 204, 21, 22, 247, 245, 221, 113, 21, 22, 247, 245, 160, 21, 22,
+ 205, 255, 229, 255, 21, 22, 205, 255, 229, 178, 21, 22, 205, 255, 229,
+ 43, 21, 22, 205, 255, 144, 21, 22, 96, 231, 52, 21, 22, 96, 231, 56, 21,
+ 22, 96, 231, 70, 21, 22, 96, 231, 69, 21, 22, 96, 231, 58, 21, 22, 96,
+ 231, 84, 21, 22, 96, 206, 218, 21, 22, 96, 207, 55, 21, 22, 96, 208, 7,
+ 21, 22, 96, 207, 234, 21, 22, 96, 207, 151, 21, 22, 96, 167, 21, 22, 96,
+ 193, 244, 21, 22, 96, 194, 36, 21, 22, 96, 194, 111, 21, 22, 96, 194,
+ 100, 21, 22, 96, 194, 72, 21, 22, 96, 194, 169, 21, 22, 96, 228, 140, 21,
+ 22, 96, 228, 141, 21, 22, 96, 228, 144, 21, 22, 96, 228, 143, 21, 22, 96,
+ 228, 142, 21, 22, 96, 228, 147, 21, 22, 96, 199, 148, 21, 22, 96, 199,
+ 176, 21, 22, 96, 199, 224, 21, 22, 96, 199, 222, 21, 22, 96, 199, 202,
+ 21, 22, 96, 199, 240, 21, 22, 96, 198, 50, 21, 22, 96, 198, 60, 21, 22,
+ 96, 198, 78, 21, 22, 96, 198, 77, 21, 22, 96, 198, 62, 21, 22, 96, 198,
+ 83, 21, 22, 96, 209, 51, 21, 22, 96, 209, 198, 21, 22, 96, 210, 181, 21,
+ 22, 96, 210, 168, 21, 22, 96, 210, 51, 21, 22, 96, 166, 21, 22, 96, 211,
+ 93, 21, 22, 96, 230, 186, 21, 22, 96, 230, 254, 21, 22, 96, 231, 158, 21,
+ 22, 96, 231, 150, 21, 22, 96, 231, 46, 21, 22, 96, 231, 233, 21, 22, 96,
+ 221, 213, 21, 22, 96, 221, 220, 21, 22, 96, 221, 234, 21, 22, 96, 221,
+ 233, 21, 22, 96, 221, 227, 21, 22, 96, 221, 250, 21, 22, 96, 221, 134,
+ 21, 22, 96, 221, 135, 21, 22, 96, 221, 138, 21, 22, 96, 221, 137, 21, 22,
+ 96, 221, 136, 21, 22, 96, 221, 139, 21, 22, 96, 221, 140, 21, 22, 96,
+ 213, 22, 21, 22, 96, 213, 142, 21, 22, 96, 214, 214, 21, 22, 96, 214,
+ 203, 21, 22, 96, 214, 60, 21, 22, 96, 181, 21, 22, 96, 215, 241, 21, 22,
+ 96, 216, 91, 21, 22, 96, 217, 48, 21, 22, 96, 217, 29, 21, 22, 96, 216,
+ 175, 21, 22, 96, 172, 21, 22, 96, 192, 214, 21, 22, 96, 193, 1, 21, 22,
+ 96, 193, 69, 21, 22, 96, 193, 66, 21, 22, 96, 193, 22, 21, 22, 96, 168,
+ 21, 22, 96, 222, 214, 21, 22, 205, 255, 222, 214, 21, 22, 96, 222, 233,
+ 21, 22, 96, 223, 41, 21, 22, 96, 223, 39, 21, 22, 96, 223, 20, 21, 22,
+ 205, 255, 223, 20, 21, 22, 96, 223, 62, 21, 22, 96, 222, 247, 21, 22, 96,
+ 222, 251, 21, 22, 96, 223, 5, 21, 22, 96, 223, 4, 21, 22, 96, 223, 3, 21,
+ 22, 96, 223, 6, 21, 22, 96, 219, 36, 21, 22, 96, 219, 107, 21, 22, 96,
+ 220, 42, 21, 22, 96, 220, 32, 21, 22, 96, 219, 209, 21, 22, 96, 177, 21,
+ 22, 96, 236, 151, 21, 22, 96, 236, 152, 21, 22, 96, 236, 157, 21, 22, 96,
+ 236, 156, 21, 22, 96, 236, 153, 21, 22, 96, 236, 158, 21, 22, 96, 219,
+ 212, 21, 22, 96, 219, 214, 21, 22, 96, 219, 218, 21, 22, 96, 219, 217,
+ 21, 22, 96, 219, 216, 21, 22, 96, 219, 222, 21, 22, 96, 199, 44, 21, 22,
+ 96, 199, 46, 21, 22, 96, 199, 49, 21, 22, 96, 199, 48, 21, 22, 96, 199,
+ 47, 21, 22, 96, 199, 50, 21, 22, 96, 199, 39, 21, 22, 96, 199, 40, 21,
+ 22, 96, 199, 52, 21, 22, 96, 199, 51, 21, 22, 96, 199, 41, 21, 22, 96,
+ 199, 53, 21, 22, 96, 191, 252, 21, 22, 96, 192, 8, 21, 22, 96, 192, 85,
+ 21, 22, 96, 192, 82, 21, 22, 96, 192, 30, 21, 22, 96, 192, 112, 21, 22,
+ 96, 192, 155, 21, 22, 96, 88, 192, 155, 21, 22, 96, 235, 4, 21, 22, 96,
+ 235, 5, 21, 22, 96, 235, 14, 21, 22, 96, 235, 13, 21, 22, 96, 235, 8, 21,
+ 22, 96, 235, 17, 21, 22, 96, 201, 184, 21, 22, 96, 202, 212, 21, 22, 96,
+ 205, 223, 21, 22, 96, 205, 205, 21, 22, 96, 203, 125, 21, 22, 96, 188,
+ 21, 22, 96, 203, 164, 21, 22, 96, 203, 211, 21, 22, 96, 204, 12, 21, 22,
+ 96, 204, 10, 21, 22, 96, 203, 236, 21, 22, 96, 204, 64, 21, 22, 96, 204,
+ 66, 21, 22, 96, 198, 91, 21, 22, 96, 198, 95, 21, 22, 96, 198, 112, 21,
+ 22, 96, 198, 111, 21, 22, 96, 198, 97, 21, 22, 96, 198, 118, 21, 22, 96,
+ 242, 168, 21, 22, 96, 242, 188, 21, 22, 96, 242, 245, 21, 22, 96, 242,
+ 241, 21, 22, 96, 242, 215, 21, 22, 96, 246, 117, 21, 22, 96, 198, 53, 21,
+ 22, 96, 198, 54, 21, 22, 96, 198, 57, 21, 22, 96, 198, 56, 21, 22, 96,
+ 198, 55, 21, 22, 96, 198, 58, 21, 22, 242, 216, 57, 21, 22, 232, 71, 201,
+ 238, 21, 22, 208, 231, 21, 22, 214, 161, 21, 22, 213, 168, 21, 22, 213,
+ 167, 21, 22, 213, 166, 21, 22, 213, 165, 21, 22, 213, 170, 21, 22, 213,
+ 169, 21, 22, 194, 15, 199, 136, 21, 22, 194, 15, 199, 135, 21, 22, 194,
+ 15, 199, 134, 21, 22, 194, 15, 199, 133, 21, 22, 194, 15, 199, 132, 21,
+ 22, 194, 15, 199, 139, 21, 22, 194, 15, 199, 138, 21, 22, 194, 15, 52,
+ 199, 242, 21, 22, 247, 245, 194, 202, 211, 245, 202, 161, 77, 211, 245,
+ 1, 248, 90, 211, 245, 1, 219, 22, 211, 245, 1, 233, 44, 211, 245, 1, 206,
+ 73, 211, 245, 1, 214, 8, 211, 245, 1, 197, 116, 211, 245, 1, 237, 229,
+ 211, 245, 1, 199, 77, 211, 245, 1, 242, 50, 211, 245, 1, 246, 145, 211,
+ 245, 1, 215, 224, 211, 245, 1, 230, 233, 211, 245, 1, 214, 151, 211, 245,
+ 1, 201, 231, 211, 245, 1, 206, 205, 211, 245, 1, 251, 59, 211, 245, 1,
+ 211, 198, 211, 245, 1, 197, 27, 211, 245, 1, 234, 197, 211, 245, 1, 223,
+ 115, 211, 245, 1, 234, 198, 211, 245, 1, 211, 163, 211, 245, 1, 197, 93,
+ 211, 245, 1, 223, 230, 211, 245, 1, 234, 195, 211, 245, 1, 210, 158, 211,
+ 245, 233, 43, 77, 211, 245, 207, 168, 233, 43, 77, 206, 194, 1, 233, 33,
+ 233, 24, 233, 48, 233, 163, 206, 194, 1, 196, 236, 206, 194, 1, 197, 12,
+ 197, 28, 68, 206, 194, 1, 192, 217, 206, 194, 1, 193, 148, 206, 194, 1,
+ 194, 202, 206, 194, 1, 199, 141, 199, 140, 199, 168, 206, 194, 1, 233,
+ 235, 206, 194, 1, 250, 187, 64, 206, 194, 1, 211, 145, 74, 206, 194, 1,
+ 251, 147, 64, 206, 194, 1, 251, 92, 206, 194, 1, 219, 80, 74, 206, 194,
+ 1, 203, 188, 74, 206, 194, 1, 74, 206, 194, 1, 212, 0, 206, 194, 1, 211,
+ 211, 206, 194, 1, 208, 46, 208, 59, 207, 219, 150, 206, 194, 1, 222, 73,
+ 206, 194, 1, 246, 141, 206, 194, 1, 222, 74, 222, 184, 206, 194, 1, 232,
+ 44, 206, 194, 1, 234, 73, 206, 194, 1, 231, 153, 230, 130, 232, 44, 206,
+ 194, 1, 231, 193, 206, 194, 1, 193, 236, 193, 227, 194, 202, 206, 194, 1,
+ 230, 90, 230, 124, 206, 194, 1, 230, 94, 230, 124, 206, 194, 1, 219, 82,
+ 230, 124, 206, 194, 1, 203, 191, 230, 124, 206, 194, 1, 215, 40, 212,
+ 191, 215, 41, 215, 151, 206, 194, 1, 203, 189, 215, 151, 206, 194, 1,
+ 235, 108, 206, 194, 1, 223, 93, 223, 97, 223, 84, 70, 206, 194, 1, 71,
+ 206, 194, 1, 223, 31, 223, 65, 206, 194, 1, 231, 134, 206, 194, 1, 219,
+ 83, 251, 108, 206, 194, 1, 203, 193, 64, 206, 194, 1, 223, 76, 234, 46,
+ 206, 194, 1, 210, 113, 210, 138, 211, 93, 206, 194, 1, 251, 19, 234, 44,
+ 206, 194, 1, 202, 167, 206, 158, 206, 194, 1, 203, 101, 219, 79, 206,
+ 158, 206, 194, 1, 203, 187, 206, 158, 206, 194, 1, 247, 52, 206, 194, 1,
+ 192, 155, 206, 194, 1, 199, 58, 199, 70, 197, 193, 200, 228, 206, 194, 1,
+ 203, 186, 200, 228, 206, 194, 1, 238, 95, 206, 194, 1, 248, 68, 248, 71,
+ 247, 251, 249, 226, 206, 194, 1, 203, 192, 249, 226, 206, 194, 1, 235,
+ 107, 206, 194, 1, 211, 177, 206, 194, 1, 234, 151, 234, 158, 71, 206,
+ 194, 1, 217, 149, 217, 161, 218, 236, 206, 194, 1, 219, 81, 218, 236,
+ 206, 194, 1, 203, 190, 218, 236, 206, 194, 1, 220, 57, 220, 160, 219, 90,
+ 165, 206, 194, 1, 235, 109, 206, 194, 1, 223, 163, 206, 194, 1, 223, 164,
+ 206, 194, 1, 237, 243, 237, 249, 238, 95, 206, 194, 1, 211, 138, 233,
+ 234, 74, 206, 194, 1, 234, 193, 206, 194, 1, 223, 113, 206, 194, 1, 238,
+ 115, 206, 194, 1, 247, 2, 206, 194, 1, 246, 157, 206, 194, 1, 202, 25,
+ 206, 194, 1, 219, 78, 206, 194, 1, 203, 185, 206, 194, 1, 228, 48, 206,
+ 194, 1, 208, 247, 206, 194, 1, 193, 223, 206, 194, 203, 74, 209, 37, 206,
+ 194, 215, 216, 209, 37, 206, 194, 238, 184, 209, 37, 206, 194, 250, 94,
+ 109, 206, 194, 197, 252, 109, 206, 194, 248, 88, 109, 206, 194, 1, 222,
+ 184, 206, 194, 1, 204, 66, 206, 194, 1, 211, 194, 206, 194, 1, 232, 101,
+ 246, 196, 211, 144, 206, 194, 1, 232, 101, 246, 196, 223, 96, 206, 194,
+ 1, 232, 101, 246, 196, 234, 157, 206, 194, 1, 232, 101, 246, 196, 251,
+ 146, 206, 194, 1, 232, 101, 246, 196, 251, 92, 200, 154, 1, 64, 200, 154,
+ 1, 70, 200, 154, 1, 68, 200, 154, 1, 160, 200, 154, 1, 231, 233, 200,
+ 154, 1, 214, 165, 200, 154, 1, 189, 200, 154, 1, 238, 0, 200, 154, 1,
+ 181, 200, 154, 1, 166, 200, 154, 1, 249, 3, 200, 154, 1, 172, 200, 154,
+ 1, 168, 200, 154, 1, 177, 200, 154, 1, 194, 169, 200, 154, 1, 188, 200,
+ 154, 1, 144, 200, 154, 18, 3, 70, 200, 154, 18, 3, 68, 200, 154, 3, 196,
+ 11, 230, 32, 1, 64, 230, 32, 1, 70, 230, 32, 1, 68, 230, 32, 1, 160, 230,
+ 32, 1, 231, 233, 230, 32, 1, 214, 165, 230, 32, 1, 189, 230, 32, 1, 238,
+ 0, 230, 32, 1, 181, 230, 32, 1, 166, 230, 32, 1, 249, 3, 230, 32, 1, 172,
+ 230, 32, 1, 168, 230, 32, 1, 167, 230, 32, 1, 177, 230, 32, 1, 194, 169,
+ 230, 32, 1, 188, 230, 32, 1, 144, 230, 32, 18, 3, 70, 230, 32, 18, 3, 68,
+ 230, 32, 3, 211, 28, 210, 70, 203, 74, 209, 37, 210, 70, 55, 209, 37,
+ 247, 114, 1, 64, 247, 114, 1, 70, 247, 114, 1, 68, 247, 114, 1, 160, 247,
+ 114, 1, 231, 233, 247, 114, 1, 214, 165, 247, 114, 1, 189, 247, 114, 1,
+ 238, 0, 247, 114, 1, 181, 247, 114, 1, 166, 247, 114, 1, 249, 3, 247,
+ 114, 1, 172, 247, 114, 1, 168, 247, 114, 1, 167, 247, 114, 1, 177, 247,
+ 114, 1, 194, 169, 247, 114, 1, 188, 247, 114, 1, 144, 247, 114, 18, 3,
+ 70, 247, 114, 18, 3, 68, 200, 153, 1, 64, 200, 153, 1, 70, 200, 153, 1,
+ 68, 200, 153, 1, 160, 200, 153, 1, 231, 233, 200, 153, 1, 214, 165, 200,
+ 153, 1, 189, 200, 153, 1, 238, 0, 200, 153, 1, 181, 200, 153, 1, 166,
+ 200, 153, 1, 249, 3, 200, 153, 1, 172, 200, 153, 1, 168, 200, 153, 1,
+ 177, 200, 153, 1, 194, 169, 200, 153, 1, 188, 200, 153, 18, 3, 70, 200,
+ 153, 18, 3, 68, 93, 1, 160, 93, 1, 221, 250, 93, 1, 221, 113, 93, 1, 221,
+ 220, 93, 1, 214, 90, 93, 1, 247, 19, 93, 1, 246, 117, 93, 1, 242, 63, 93,
+ 1, 242, 188, 93, 1, 212, 165, 93, 1, 238, 0, 93, 1, 198, 71, 93, 1, 236,
+ 146, 93, 1, 198, 66, 93, 1, 213, 148, 93, 1, 189, 93, 1, 199, 240, 93, 1,
+ 155, 93, 1, 199, 176, 93, 1, 213, 142, 93, 1, 249, 3, 93, 1, 210, 94, 93,
+ 1, 209, 198, 93, 1, 210, 65, 93, 1, 216, 91, 93, 1, 193, 1, 93, 1, 207,
+ 55, 93, 1, 219, 107, 93, 1, 195, 252, 93, 1, 204, 64, 93, 1, 202, 51, 93,
+ 1, 188, 93, 1, 144, 93, 1, 177, 93, 1, 208, 239, 93, 223, 177, 18, 208,
+ 225, 93, 223, 177, 18, 208, 238, 93, 223, 177, 18, 208, 201, 93, 223,
+ 177, 18, 208, 195, 93, 223, 177, 18, 208, 177, 93, 223, 177, 18, 208,
+ 146, 93, 223, 177, 18, 208, 134, 93, 223, 177, 18, 208, 133, 93, 223,
+ 177, 18, 206, 167, 93, 223, 177, 18, 206, 160, 93, 223, 177, 18, 218,
+ 251, 93, 223, 177, 18, 218, 239, 93, 223, 177, 18, 208, 219, 93, 223,
+ 177, 18, 208, 231, 93, 223, 177, 18, 208, 185, 197, 206, 101, 93, 223,
+ 177, 18, 208, 185, 197, 206, 104, 93, 223, 177, 18, 208, 221, 93, 18,
+ 223, 161, 250, 135, 93, 18, 223, 161, 252, 33, 93, 18, 3, 252, 33, 93,
+ 18, 3, 70, 93, 18, 3, 223, 224, 93, 18, 3, 193, 148, 93, 18, 3, 192, 165,
+ 93, 18, 3, 68, 93, 18, 3, 196, 251, 93, 18, 3, 197, 119, 93, 18, 3, 212,
+ 0, 93, 18, 3, 168, 93, 18, 3, 223, 251, 93, 18, 3, 71, 93, 18, 3, 251,
+ 108, 93, 18, 3, 251, 63, 93, 18, 3, 211, 194, 93, 18, 3, 250, 8, 93, 3,
+ 214, 25, 93, 3, 208, 0, 93, 3, 192, 176, 93, 3, 215, 179, 93, 3, 198,
+ 173, 93, 3, 248, 196, 93, 3, 207, 44, 93, 3, 199, 28, 93, 3, 222, 128,
+ 93, 3, 251, 65, 93, 3, 206, 41, 206, 33, 93, 3, 196, 8, 93, 3, 242, 54,
+ 93, 3, 248, 166, 93, 3, 221, 241, 93, 3, 248, 191, 93, 3, 246, 246, 210,
+ 13, 220, 245, 93, 3, 220, 9, 198, 254, 93, 3, 248, 56, 93, 3, 210, 67,
+ 215, 234, 93, 3, 221, 86, 93, 238, 137, 16, 207, 135, 93, 3, 249, 245,
+ 93, 3, 250, 11, 93, 17, 192, 76, 93, 17, 101, 93, 17, 104, 93, 17, 133,
+ 93, 17, 134, 93, 17, 151, 93, 17, 170, 93, 17, 179, 93, 17, 174, 93, 17,
+ 182, 93, 16, 220, 9, 250, 13, 202, 186, 93, 16, 220, 9, 250, 13, 215,
+ 200, 93, 16, 220, 9, 250, 13, 210, 12, 93, 16, 220, 9, 250, 13, 248, 91,
+ 93, 16, 220, 9, 250, 13, 247, 94, 93, 16, 220, 9, 250, 13, 209, 129, 93,
+ 16, 220, 9, 250, 13, 209, 123, 93, 16, 220, 9, 250, 13, 209, 121, 93, 16,
+ 220, 9, 250, 13, 209, 127, 93, 16, 220, 9, 250, 13, 209, 125, 100, 248,
+ 11, 100, 234, 105, 100, 242, 38, 100, 232, 71, 201, 238, 100, 242, 47,
+ 100, 232, 119, 236, 111, 100, 199, 27, 202, 198, 228, 111, 100, 203, 117,
+ 5, 247, 184, 217, 122, 100, 217, 157, 242, 38, 100, 217, 157, 232, 71,
+ 201, 238, 100, 214, 6, 100, 232, 100, 65, 205, 190, 101, 100, 232, 100,
+ 65, 205, 190, 104, 100, 232, 100, 65, 205, 190, 133, 100, 18, 204, 165,
+ 100, 17, 192, 76, 100, 17, 101, 100, 17, 104, 100, 17, 133, 100, 17, 134,
+ 100, 17, 151, 100, 17, 170, 100, 17, 179, 100, 17, 174, 100, 17, 182,
+ 100, 1, 64, 100, 1, 71, 100, 1, 70, 100, 1, 74, 100, 1, 68, 100, 1, 212,
+ 0, 100, 1, 197, 104, 100, 1, 234, 171, 100, 1, 181, 100, 1, 250, 214,
+ 100, 1, 249, 3, 100, 1, 166, 100, 1, 208, 239, 100, 1, 231, 233, 100, 1,
+ 172, 100, 1, 177, 100, 1, 188, 100, 1, 204, 64, 100, 1, 189, 100, 1, 238,
+ 0, 100, 1, 246, 117, 100, 1, 223, 62, 100, 1, 168, 100, 1, 167, 100, 1,
+ 194, 169, 100, 1, 233, 97, 100, 1, 160, 100, 1, 221, 250, 100, 1, 198,
+ 118, 100, 1, 192, 112, 100, 1, 230, 99, 100, 1, 192, 0, 100, 1, 219, 222,
+ 100, 1, 192, 57, 100, 1, 242, 215, 100, 1, 199, 27, 184, 18, 57, 100, 1,
+ 199, 27, 71, 100, 1, 199, 27, 70, 100, 1, 199, 27, 74, 100, 1, 199, 27,
+ 68, 100, 1, 199, 27, 212, 0, 100, 1, 199, 27, 197, 104, 100, 1, 199, 27,
+ 250, 214, 100, 1, 199, 27, 249, 3, 100, 1, 199, 27, 166, 100, 1, 199, 27,
+ 208, 239, 100, 1, 199, 27, 231, 233, 100, 1, 199, 27, 172, 100, 1, 199,
+ 27, 189, 100, 1, 199, 27, 238, 0, 100, 1, 199, 27, 246, 117, 100, 1, 199,
+ 27, 223, 62, 100, 1, 199, 27, 198, 118, 100, 1, 199, 27, 168, 100, 1,
+ 199, 27, 194, 169, 100, 1, 199, 27, 160, 100, 1, 199, 27, 231, 230, 100,
+ 1, 199, 27, 230, 99, 100, 1, 199, 27, 223, 19, 100, 1, 199, 27, 214, 50,
+ 100, 1, 199, 27, 235, 17, 100, 1, 203, 117, 71, 100, 1, 203, 117, 70,
+ 100, 1, 203, 117, 223, 73, 100, 1, 203, 117, 197, 104, 100, 1, 203, 117,
+ 68, 100, 1, 203, 117, 250, 214, 100, 1, 203, 117, 160, 100, 1, 203, 117,
+ 231, 233, 100, 1, 203, 117, 144, 100, 1, 203, 117, 166, 100, 1, 203, 117,
+ 204, 64, 100, 1, 203, 117, 189, 100, 1, 203, 117, 238, 0, 100, 1, 203,
+ 117, 223, 62, 100, 1, 203, 117, 233, 97, 100, 1, 203, 117, 231, 230, 100,
+ 1, 203, 117, 230, 99, 100, 1, 203, 117, 198, 118, 100, 1, 203, 117, 192,
+ 112, 100, 1, 203, 117, 208, 68, 100, 1, 203, 117, 246, 117, 100, 1, 203,
+ 117, 192, 71, 100, 1, 217, 157, 70, 100, 1, 217, 157, 160, 100, 1, 217,
+ 157, 167, 100, 1, 217, 157, 233, 97, 100, 1, 217, 157, 192, 71, 100, 1,
+ 246, 118, 4, 103, 236, 111, 100, 1, 251, 18, 231, 213, 250, 169, 101,
+ 100, 1, 251, 18, 231, 213, 196, 7, 101, 100, 1, 251, 18, 231, 213, 237,
+ 217, 100, 1, 251, 18, 231, 213, 197, 114, 100, 1, 251, 18, 231, 213, 223,
+ 121, 197, 114, 100, 1, 251, 18, 231, 213, 248, 210, 100, 1, 251, 18, 231,
+ 213, 112, 248, 210, 100, 1, 251, 18, 231, 213, 64, 100, 1, 251, 18, 231,
+ 213, 70, 100, 1, 251, 18, 231, 213, 160, 100, 1, 251, 18, 231, 213, 214,
+ 165, 100, 1, 251, 18, 231, 213, 247, 19, 100, 1, 251, 18, 231, 213, 198,
+ 83, 100, 1, 251, 18, 231, 213, 198, 71, 100, 1, 251, 18, 231, 213, 237,
+ 161, 100, 1, 251, 18, 231, 213, 213, 178, 100, 1, 251, 18, 231, 213, 189,
+ 100, 1, 251, 18, 231, 213, 238, 0, 100, 1, 251, 18, 231, 213, 166, 100,
+ 1, 251, 18, 231, 213, 210, 94, 100, 1, 251, 18, 231, 213, 202, 92, 100,
+ 1, 251, 18, 231, 213, 192, 71, 100, 1, 251, 18, 231, 213, 192, 112, 100,
+ 1, 251, 18, 231, 213, 251, 72, 100, 1, 199, 27, 251, 18, 231, 213, 189,
+ 100, 1, 199, 27, 251, 18, 231, 213, 192, 71, 100, 1, 217, 157, 251, 18,
+ 231, 213, 231, 84, 100, 1, 217, 157, 251, 18, 231, 213, 214, 165, 100, 1,
+ 217, 157, 251, 18, 231, 213, 247, 19, 100, 1, 217, 157, 251, 18, 231,
+ 213, 223, 28, 100, 1, 217, 157, 251, 18, 231, 213, 198, 83, 100, 1, 217,
+ 157, 251, 18, 231, 213, 237, 145, 100, 1, 217, 157, 251, 18, 231, 213,
+ 189, 100, 1, 217, 157, 251, 18, 231, 213, 237, 40, 100, 1, 217, 157, 251,
+ 18, 231, 213, 202, 92, 100, 1, 217, 157, 251, 18, 231, 213, 238, 109,
+ 100, 1, 217, 157, 251, 18, 231, 213, 192, 71, 100, 1, 217, 157, 251, 18,
+ 231, 213, 192, 112, 100, 1, 251, 18, 231, 213, 138, 68, 100, 1, 251, 18,
+ 231, 213, 138, 168, 100, 1, 217, 157, 251, 18, 231, 213, 248, 54, 100, 1,
+ 251, 18, 231, 213, 237, 244, 100, 1, 217, 157, 251, 18, 231, 213, 219,
+ 222, 21, 22, 211, 98, 21, 22, 249, 236, 21, 22, 251, 243, 21, 22, 194,
+ 114, 21, 22, 209, 135, 21, 22, 210, 190, 21, 22, 209, 0, 21, 22, 200, 88,
+ 21, 22, 222, 64, 21, 22, 220, 235, 21, 22, 217, 92, 21, 22, 213, 93, 21,
+ 22, 215, 35, 21, 22, 220, 52, 21, 22, 202, 165, 21, 22, 206, 1, 21, 22,
+ 203, 173, 21, 22, 204, 16, 21, 22, 203, 135, 21, 22, 192, 223, 21, 22,
+ 193, 75, 21, 22, 208, 15, 21, 22, 212, 207, 21, 22, 211, 233, 212, 207,
+ 21, 22, 212, 206, 21, 22, 211, 233, 212, 206, 21, 22, 212, 205, 21, 22,
+ 211, 233, 212, 205, 21, 22, 212, 204, 21, 22, 211, 233, 212, 204, 21, 22,
+ 206, 172, 21, 22, 206, 171, 21, 22, 206, 170, 21, 22, 206, 169, 21, 22,
+ 206, 168, 21, 22, 206, 176, 21, 22, 211, 233, 211, 93, 21, 22, 211, 233,
+ 200, 228, 21, 22, 211, 233, 222, 184, 21, 22, 211, 233, 247, 52, 21, 22,
+ 211, 233, 218, 236, 21, 22, 211, 233, 215, 151, 21, 22, 211, 233, 206,
+ 158, 21, 22, 211, 233, 204, 66, 21, 22, 234, 184, 194, 202, 21, 22, 194,
+ 88, 194, 202, 21, 22, 52, 2, 207, 81, 21, 22, 52, 208, 39, 236, 114, 21,
+ 22, 208, 111, 206, 173, 21, 22, 194, 89, 219, 73, 21, 22, 194, 89, 220,
+ 184, 21, 22, 199, 137, 21, 22, 199, 139, 21, 22, 198, 63, 21, 22, 198,
+ 65, 21, 22, 198, 70, 21, 22, 199, 43, 21, 22, 199, 45, 21, 22, 205, 255,
+ 203, 140, 21, 22, 205, 255, 203, 203, 21, 22, 205, 255, 229, 16, 21, 22,
+ 96, 230, 138, 21, 22, 96, 237, 74, 231, 150, 21, 22, 96, 231, 230, 21,
+ 22, 96, 230, 143, 21, 22, 205, 255, 222, 194, 21, 22, 96, 222, 192, 21,
+ 22, 248, 112, 237, 74, 165, 21, 22, 248, 112, 237, 74, 150, 21, 22, 96,
+ 237, 69, 206, 158, 219, 185, 195, 229, 219, 235, 219, 185, 1, 160, 219,
+ 185, 1, 221, 250, 219, 185, 1, 231, 233, 219, 185, 1, 231, 84, 219, 185,
+ 1, 214, 165, 219, 185, 1, 247, 19, 219, 185, 1, 246, 117, 219, 185, 1,
+ 223, 62, 219, 185, 1, 223, 28, 219, 185, 1, 193, 97, 219, 185, 1, 189,
+ 219, 185, 1, 199, 240, 219, 185, 1, 238, 0, 219, 185, 1, 237, 40, 219,
+ 185, 1, 181, 219, 185, 1, 166, 219, 185, 1, 210, 94, 219, 185, 1, 249, 3,
+ 219, 185, 1, 248, 54, 219, 185, 1, 172, 219, 185, 1, 168, 219, 185, 1,
+ 167, 219, 185, 1, 177, 219, 185, 1, 194, 169, 219, 185, 1, 204, 64, 219,
+ 185, 1, 202, 92, 219, 185, 1, 188, 219, 185, 1, 144, 219, 185, 1, 230,
+ 134, 219, 185, 1, 198, 223, 219, 185, 18, 3, 64, 219, 185, 18, 3, 70,
+ 219, 185, 18, 3, 68, 219, 185, 18, 3, 234, 171, 219, 185, 18, 3, 251, 63,
+ 219, 185, 18, 3, 211, 194, 219, 185, 18, 3, 250, 8, 219, 185, 18, 3, 71,
+ 219, 185, 18, 3, 74, 219, 185, 201, 164, 1, 168, 219, 185, 201, 164, 1,
+ 167, 219, 185, 201, 164, 1, 194, 169, 219, 185, 2, 1, 160, 219, 185, 2,
+ 1, 214, 165, 219, 185, 2, 1, 250, 168, 219, 185, 2, 1, 189, 219, 185, 2,
+ 1, 181, 219, 185, 2, 1, 166, 219, 185, 2, 1, 172, 219, 185, 2, 1, 167,
+ 219, 185, 2, 1, 177, 219, 185, 3, 215, 221, 219, 185, 3, 222, 36, 219,
+ 185, 3, 206, 92, 219, 185, 3, 219, 73, 219, 185, 233, 204, 77, 219, 185,
+ 208, 159, 77, 219, 185, 17, 192, 76, 219, 185, 17, 101, 219, 185, 17,
+ 104, 219, 185, 17, 133, 219, 185, 17, 134, 219, 185, 17, 151, 219, 185,
+ 17, 170, 219, 185, 17, 179, 219, 185, 17, 174, 219, 185, 17, 182, 53,
+ 220, 43, 1, 160, 53, 220, 43, 1, 193, 209, 53, 220, 43, 1, 214, 165, 53,
+ 220, 43, 1, 198, 118, 53, 220, 43, 1, 188, 53, 220, 43, 1, 168, 53, 220,
+ 43, 1, 189, 53, 220, 43, 1, 199, 240, 53, 220, 43, 1, 177, 53, 220, 43,
+ 1, 166, 53, 220, 43, 1, 210, 94, 53, 220, 43, 1, 172, 53, 220, 43, 1,
+ 233, 97, 53, 220, 43, 1, 196, 157, 53, 220, 43, 1, 144, 53, 220, 43, 1,
+ 208, 239, 53, 220, 43, 1, 221, 250, 53, 220, 43, 1, 198, 108, 53, 220,
+ 43, 1, 181, 53, 220, 43, 1, 64, 53, 220, 43, 1, 70, 53, 220, 43, 1, 234,
+ 171, 53, 220, 43, 1, 234, 157, 53, 220, 43, 1, 68, 53, 220, 43, 1, 211,
+ 194, 53, 220, 43, 1, 74, 53, 220, 43, 1, 197, 104, 53, 220, 43, 1, 71,
+ 53, 220, 43, 1, 250, 6, 53, 220, 43, 1, 251, 63, 53, 220, 43, 1, 199, 16,
+ 53, 220, 43, 1, 199, 15, 53, 220, 43, 1, 199, 14, 53, 220, 43, 1, 199,
+ 13, 53, 220, 43, 1, 199, 12, 214, 177, 53, 219, 30, 1, 139, 208, 239,
+ 214, 177, 53, 219, 30, 1, 132, 208, 239, 214, 177, 53, 219, 30, 1, 139,
+ 160, 214, 177, 53, 219, 30, 1, 139, 193, 209, 214, 177, 53, 219, 30, 1,
+ 139, 214, 165, 214, 177, 53, 219, 30, 1, 132, 160, 214, 177, 53, 219, 30,
+ 1, 132, 193, 209, 214, 177, 53, 219, 30, 1, 132, 214, 165, 214, 177, 53,
+ 219, 30, 1, 139, 198, 118, 214, 177, 53, 219, 30, 1, 139, 188, 214, 177,
+ 53, 219, 30, 1, 139, 168, 214, 177, 53, 219, 30, 1, 132, 198, 118, 214,
+ 177, 53, 219, 30, 1, 132, 188, 214, 177, 53, 219, 30, 1, 132, 168, 214,
+ 177, 53, 219, 30, 1, 139, 189, 214, 177, 53, 219, 30, 1, 139, 199, 240,
+ 214, 177, 53, 219, 30, 1, 139, 181, 214, 177, 53, 219, 30, 1, 132, 189,
+ 214, 177, 53, 219, 30, 1, 132, 199, 240, 214, 177, 53, 219, 30, 1, 132,
+ 181, 214, 177, 53, 219, 30, 1, 139, 166, 214, 177, 53, 219, 30, 1, 139,
+ 210, 94, 214, 177, 53, 219, 30, 1, 139, 172, 214, 177, 53, 219, 30, 1,
+ 132, 166, 214, 177, 53, 219, 30, 1, 132, 210, 94, 214, 177, 53, 219, 30,
+ 1, 132, 172, 214, 177, 53, 219, 30, 1, 139, 233, 97, 214, 177, 53, 219,
+ 30, 1, 139, 196, 157, 214, 177, 53, 219, 30, 1, 139, 177, 214, 177, 53,
+ 219, 30, 1, 132, 233, 97, 214, 177, 53, 219, 30, 1, 132, 196, 157, 214,
+ 177, 53, 219, 30, 1, 132, 177, 214, 177, 53, 219, 30, 1, 139, 144, 214,
+ 177, 53, 219, 30, 1, 139, 238, 0, 214, 177, 53, 219, 30, 1, 139, 249, 3,
+ 214, 177, 53, 219, 30, 1, 132, 144, 214, 177, 53, 219, 30, 1, 132, 238,
+ 0, 214, 177, 53, 219, 30, 1, 132, 249, 3, 214, 177, 53, 219, 30, 1, 139,
+ 220, 240, 214, 177, 53, 219, 30, 1, 139, 193, 174, 214, 177, 53, 219, 30,
+ 1, 132, 220, 240, 214, 177, 53, 219, 30, 1, 132, 193, 174, 214, 177, 53,
+ 219, 30, 1, 139, 201, 175, 214, 177, 53, 219, 30, 1, 132, 201, 175, 214,
+ 177, 53, 219, 30, 18, 3, 18, 203, 183, 214, 177, 53, 219, 30, 18, 3, 252,
+ 33, 214, 177, 53, 219, 30, 18, 3, 223, 224, 214, 177, 53, 219, 30, 18, 3,
+ 68, 214, 177, 53, 219, 30, 18, 3, 196, 251, 214, 177, 53, 219, 30, 18, 3,
+ 71, 214, 177, 53, 219, 30, 18, 3, 251, 108, 214, 177, 53, 219, 30, 18, 3,
+ 74, 214, 177, 53, 219, 30, 18, 3, 212, 26, 214, 177, 53, 219, 30, 18, 3,
+ 197, 104, 214, 177, 53, 219, 30, 18, 3, 249, 236, 214, 177, 53, 219, 30,
+ 18, 3, 251, 243, 214, 177, 53, 219, 30, 18, 3, 196, 243, 214, 177, 53,
+ 219, 30, 18, 3, 211, 98, 214, 177, 53, 219, 30, 18, 3, 212, 23, 214, 177,
+ 53, 219, 30, 18, 3, 197, 99, 214, 177, 53, 219, 30, 18, 3, 223, 73, 214,
+ 177, 53, 219, 30, 1, 52, 196, 236, 214, 177, 53, 219, 30, 1, 52, 214,
+ 167, 214, 177, 53, 219, 30, 1, 52, 215, 151, 214, 177, 53, 219, 30, 1,
+ 52, 218, 236, 214, 177, 53, 219, 30, 1, 52, 222, 184, 214, 177, 53, 219,
+ 30, 1, 52, 238, 95, 214, 177, 53, 219, 30, 1, 52, 249, 226, 214, 177, 53,
+ 219, 30, 158, 217, 126, 214, 177, 53, 219, 30, 158, 217, 125, 214, 177,
+ 53, 219, 30, 17, 192, 76, 214, 177, 53, 219, 30, 17, 101, 214, 177, 53,
+ 219, 30, 17, 104, 214, 177, 53, 219, 30, 17, 133, 214, 177, 53, 219, 30,
+ 17, 134, 214, 177, 53, 219, 30, 17, 151, 214, 177, 53, 219, 30, 17, 170,
+ 214, 177, 53, 219, 30, 17, 179, 214, 177, 53, 219, 30, 17, 174, 214, 177,
+ 53, 219, 30, 17, 182, 214, 177, 53, 219, 30, 126, 17, 101, 214, 177, 53,
+ 219, 30, 3, 220, 166, 214, 177, 53, 219, 30, 3, 220, 165, 93, 16, 210,
+ 201, 93, 16, 215, 201, 221, 105, 93, 16, 210, 13, 221, 105, 93, 16, 248,
+ 92, 221, 105, 93, 16, 247, 95, 221, 105, 93, 16, 209, 130, 221, 105, 93,
+ 16, 209, 124, 221, 105, 93, 16, 209, 122, 221, 105, 93, 16, 209, 128,
+ 221, 105, 93, 16, 209, 126, 221, 105, 93, 16, 237, 202, 221, 105, 93, 16,
+ 237, 198, 221, 105, 93, 16, 237, 197, 221, 105, 93, 16, 237, 200, 221,
+ 105, 93, 16, 237, 199, 221, 105, 93, 16, 237, 196, 221, 105, 93, 16, 198,
+ 2, 93, 16, 215, 201, 207, 42, 93, 16, 210, 13, 207, 42, 93, 16, 248, 92,
+ 207, 42, 93, 16, 247, 95, 207, 42, 93, 16, 209, 130, 207, 42, 93, 16,
+ 209, 124, 207, 42, 93, 16, 209, 122, 207, 42, 93, 16, 209, 128, 207, 42,
+ 93, 16, 209, 126, 207, 42, 93, 16, 237, 202, 207, 42, 93, 16, 237, 198,
+ 207, 42, 93, 16, 237, 197, 207, 42, 93, 16, 237, 200, 207, 42, 93, 16,
+ 237, 199, 207, 42, 93, 16, 237, 196, 207, 42, 247, 115, 1, 160, 247, 115,
+ 1, 231, 233, 247, 115, 1, 214, 165, 247, 115, 1, 214, 108, 247, 115, 1,
+ 166, 247, 115, 1, 249, 3, 247, 115, 1, 172, 247, 115, 1, 215, 247, 247,
+ 115, 1, 189, 247, 115, 1, 238, 0, 247, 115, 1, 181, 247, 115, 1, 213, 88,
+ 247, 115, 1, 247, 19, 247, 115, 1, 223, 62, 247, 115, 1, 212, 201, 247,
+ 115, 1, 212, 192, 247, 115, 1, 168, 247, 115, 1, 167, 247, 115, 1, 177,
+ 247, 115, 1, 196, 157, 247, 115, 1, 188, 247, 115, 1, 64, 247, 115, 1,
+ 144, 247, 115, 18, 3, 70, 247, 115, 18, 3, 68, 247, 115, 18, 3, 71, 247,
+ 115, 18, 3, 74, 247, 115, 18, 3, 251, 108, 247, 115, 211, 42, 247, 115,
+ 234, 80, 80, 205, 208, 53, 126, 1, 139, 160, 53, 126, 1, 139, 221, 250,
+ 53, 126, 1, 139, 220, 224, 53, 126, 1, 132, 160, 53, 126, 1, 132, 220,
+ 224, 53, 126, 1, 132, 221, 250, 53, 126, 1, 214, 165, 53, 126, 1, 139,
+ 247, 19, 53, 126, 1, 139, 246, 117, 53, 126, 1, 132, 247, 19, 53, 126, 1,
+ 132, 188, 53, 126, 1, 132, 246, 117, 53, 126, 1, 212, 201, 53, 126, 1,
+ 208, 21, 53, 126, 1, 139, 208, 19, 53, 126, 1, 238, 0, 53, 126, 1, 132,
+ 208, 19, 53, 126, 1, 208, 30, 53, 126, 1, 139, 189, 53, 126, 1, 139, 199,
+ 240, 53, 126, 1, 132, 189, 53, 126, 1, 132, 199, 240, 53, 126, 1, 181,
+ 53, 126, 1, 249, 3, 53, 126, 1, 139, 166, 53, 126, 1, 139, 210, 94, 53,
+ 126, 1, 139, 233, 97, 53, 126, 1, 132, 166, 53, 126, 1, 132, 233, 97, 53,
+ 126, 1, 132, 210, 94, 53, 126, 1, 172, 53, 126, 1, 132, 168, 53, 126, 1,
+ 139, 168, 53, 126, 1, 167, 53, 126, 1, 206, 207, 53, 126, 1, 177, 53,
+ 126, 1, 219, 29, 53, 126, 1, 194, 169, 53, 126, 1, 139, 204, 64, 53, 126,
+ 1, 139, 202, 92, 53, 126, 1, 139, 188, 53, 126, 1, 139, 144, 53, 126, 1,
+ 219, 137, 53, 126, 1, 64, 53, 126, 1, 132, 144, 53, 126, 1, 70, 53, 126,
+ 1, 223, 224, 53, 126, 1, 68, 53, 126, 1, 196, 251, 53, 126, 1, 234, 171,
+ 53, 126, 1, 211, 194, 53, 126, 1, 220, 166, 53, 126, 1, 230, 206, 188,
+ 53, 126, 116, 3, 217, 35, 167, 53, 126, 116, 3, 217, 35, 177, 53, 126,
+ 116, 3, 220, 185, 200, 122, 220, 155, 53, 126, 3, 217, 181, 222, 118,
+ 220, 155, 53, 126, 116, 3, 52, 214, 165, 53, 126, 116, 3, 132, 166, 53,
+ 126, 116, 3, 139, 208, 20, 211, 164, 132, 166, 53, 126, 116, 3, 172, 53,
+ 126, 116, 3, 249, 3, 53, 126, 116, 3, 188, 53, 126, 3, 206, 66, 53, 126,
+ 18, 3, 64, 53, 126, 18, 3, 217, 181, 206, 20, 53, 126, 18, 3, 252, 33,
+ 53, 126, 18, 3, 200, 132, 252, 33, 53, 126, 18, 3, 70, 53, 126, 18, 3,
+ 223, 224, 53, 126, 18, 3, 197, 104, 53, 126, 18, 3, 196, 250, 53, 126,
+ 18, 3, 68, 53, 126, 18, 3, 196, 251, 53, 126, 18, 3, 74, 53, 126, 18, 3,
+ 212, 27, 63, 53, 126, 18, 3, 211, 98, 53, 126, 18, 3, 71, 53, 126, 18, 3,
+ 251, 108, 53, 126, 18, 3, 211, 194, 53, 126, 18, 3, 251, 63, 53, 126, 18,
+ 3, 126, 251, 63, 53, 126, 18, 3, 212, 27, 58, 53, 126, 3, 217, 181, 222,
+ 117, 53, 126, 3, 199, 17, 53, 126, 3, 199, 16, 53, 126, 3, 221, 209, 199,
+ 15, 53, 126, 3, 221, 209, 199, 14, 53, 126, 3, 221, 209, 199, 13, 53,
+ 126, 3, 208, 76, 230, 98, 53, 126, 3, 217, 181, 206, 50, 53, 126, 3, 221,
+ 208, 222, 98, 53, 126, 38, 238, 165, 236, 114, 53, 126, 229, 7, 17, 192,
+ 76, 53, 126, 229, 7, 17, 101, 53, 126, 229, 7, 17, 104, 53, 126, 229, 7,
+ 17, 133, 53, 126, 229, 7, 17, 134, 53, 126, 229, 7, 17, 151, 53, 126,
+ 229, 7, 17, 170, 53, 126, 229, 7, 17, 179, 53, 126, 229, 7, 17, 174, 53,
+ 126, 229, 7, 17, 182, 53, 126, 126, 17, 192, 76, 53, 126, 126, 17, 101,
+ 53, 126, 126, 17, 104, 53, 126, 126, 17, 133, 53, 126, 126, 17, 134, 53,
+ 126, 126, 17, 151, 53, 126, 126, 17, 170, 53, 126, 126, 17, 179, 53, 126,
+ 126, 17, 174, 53, 126, 126, 17, 182, 53, 126, 3, 194, 66, 53, 126, 3,
+ 194, 65, 53, 126, 3, 206, 5, 53, 126, 3, 222, 25, 53, 126, 3, 228, 191,
+ 53, 126, 3, 236, 129, 53, 126, 3, 207, 168, 207, 16, 208, 30, 53, 126, 3,
+ 217, 181, 193, 98, 53, 126, 3, 222, 152, 53, 126, 3, 222, 151, 53, 126,
+ 3, 206, 15, 53, 126, 3, 206, 14, 53, 126, 3, 230, 35, 53, 126, 3, 247,
+ 16, 38, 235, 101, 242, 122, 251, 143, 38, 237, 13, 38, 223, 167, 38, 235,
+ 92, 54, 38, 198, 170, 236, 114, 38, 193, 222, 63, 38, 194, 58, 219, 176,
+ 63, 38, 211, 184, 122, 63, 38, 55, 211, 184, 122, 63, 38, 152, 246, 139,
+ 201, 208, 63, 38, 201, 194, 246, 139, 201, 208, 63, 38, 210, 232, 58, 38,
+ 55, 210, 232, 58, 38, 210, 232, 63, 38, 210, 232, 211, 110, 38, 8, 2, 1,
+ 194, 203, 63, 38, 8, 2, 1, 163, 194, 203, 63, 148, 3, 197, 87, 207, 138,
+ 148, 3, 197, 87, 246, 236, 148, 3, 246, 154, 148, 3, 201, 98, 148, 3,
+ 248, 8, 148, 1, 251, 42, 148, 1, 251, 43, 200, 58, 148, 1, 223, 220, 148,
+ 1, 223, 221, 200, 58, 148, 1, 197, 90, 148, 1, 197, 91, 200, 58, 148, 1,
+ 208, 76, 207, 201, 148, 1, 208, 76, 207, 202, 200, 58, 148, 1, 220, 185,
+ 220, 3, 148, 1, 220, 185, 220, 4, 200, 58, 148, 1, 234, 129, 148, 1, 251,
+ 60, 148, 1, 211, 229, 148, 1, 211, 230, 200, 58, 148, 1, 160, 148, 1,
+ 222, 174, 217, 184, 148, 1, 231, 233, 148, 1, 231, 234, 230, 239, 148, 1,
+ 214, 165, 148, 1, 247, 19, 148, 1, 247, 20, 220, 171, 148, 1, 223, 62,
+ 148, 1, 223, 63, 223, 32, 148, 1, 212, 201, 148, 1, 200, 181, 220, 62,
+ 148, 1, 200, 181, 215, 196, 217, 184, 148, 1, 238, 1, 215, 196, 250, 254,
+ 148, 1, 238, 1, 215, 196, 217, 184, 148, 1, 215, 97, 208, 33, 148, 1,
+ 189, 148, 1, 200, 181, 200, 92, 148, 1, 238, 0, 148, 1, 238, 1, 217, 206,
+ 148, 1, 181, 148, 1, 166, 148, 1, 211, 78, 222, 110, 148, 1, 249, 3, 148,
+ 1, 249, 4, 222, 37, 148, 1, 172, 148, 1, 168, 148, 1, 167, 148, 1, 177,
+ 148, 1, 194, 169, 148, 1, 206, 101, 206, 78, 148, 1, 206, 101, 206, 27,
+ 148, 1, 188, 148, 1, 144, 148, 3, 207, 191, 148, 18, 3, 200, 58, 148, 18,
+ 3, 197, 86, 148, 18, 3, 197, 87, 206, 23, 148, 18, 3, 201, 133, 148, 18,
+ 3, 201, 134, 223, 212, 148, 18, 3, 208, 76, 207, 201, 148, 18, 3, 208,
+ 76, 207, 202, 200, 58, 148, 18, 3, 220, 185, 220, 3, 148, 18, 3, 220,
+ 185, 220, 4, 200, 58, 148, 18, 3, 200, 133, 148, 18, 3, 200, 134, 207,
+ 201, 148, 18, 3, 200, 134, 200, 58, 148, 18, 3, 200, 134, 207, 202, 200,
+ 58, 148, 18, 3, 210, 136, 148, 18, 3, 210, 137, 200, 58, 148, 251, 120,
+ 251, 119, 148, 1, 222, 140, 206, 22, 148, 1, 221, 215, 206, 22, 148, 1,
+ 197, 186, 206, 22, 148, 1, 234, 165, 206, 22, 148, 1, 196, 124, 206, 22,
+ 148, 1, 192, 102, 206, 22, 148, 1, 250, 29, 206, 22, 148, 17, 192, 76,
+ 148, 17, 101, 148, 17, 104, 148, 17, 133, 148, 17, 134, 148, 17, 151,
+ 148, 17, 170, 148, 17, 179, 148, 17, 174, 148, 17, 182, 148, 211, 5, 148,
+ 211, 34, 148, 194, 50, 148, 246, 209, 211, 27, 148, 246, 209, 203, 94,
+ 148, 246, 209, 210, 229, 148, 211, 33, 148, 35, 16, 236, 121, 148, 35,
+ 16, 237, 73, 148, 35, 16, 235, 45, 148, 35, 16, 237, 206, 148, 35, 16,
+ 237, 207, 201, 98, 148, 35, 16, 236, 214, 148, 35, 16, 237, 248, 148, 35,
+ 16, 237, 49, 148, 35, 16, 237, 230, 148, 35, 16, 237, 207, 231, 152, 148,
+ 35, 16, 38, 200, 51, 148, 35, 16, 38, 234, 77, 148, 35, 16, 38, 222, 32,
+ 148, 35, 16, 38, 222, 34, 148, 35, 16, 38, 223, 36, 148, 35, 16, 38, 222,
+ 33, 4, 223, 36, 148, 35, 16, 38, 222, 35, 4, 223, 36, 148, 35, 16, 38,
+ 248, 77, 148, 35, 16, 38, 230, 243, 148, 35, 16, 207, 99, 211, 184, 235,
+ 56, 148, 35, 16, 207, 99, 211, 184, 237, 246, 148, 35, 16, 207, 99, 242,
+ 84, 198, 31, 148, 35, 16, 207, 99, 242, 84, 200, 143, 148, 35, 16, 220,
+ 26, 211, 184, 211, 19, 148, 35, 16, 220, 26, 211, 184, 209, 35, 148, 35,
+ 16, 220, 26, 242, 84, 209, 228, 148, 35, 16, 220, 26, 242, 84, 209, 211,
+ 148, 35, 16, 220, 26, 211, 184, 209, 255, 201, 122, 3, 211, 2, 201, 122,
+ 3, 211, 15, 201, 122, 3, 211, 11, 201, 122, 1, 64, 201, 122, 1, 70, 201,
+ 122, 1, 68, 201, 122, 1, 251, 108, 201, 122, 1, 74, 201, 122, 1, 71, 201,
+ 122, 1, 233, 230, 201, 122, 1, 160, 201, 122, 1, 208, 239, 201, 122, 1,
+ 231, 233, 201, 122, 1, 214, 165, 201, 122, 1, 247, 19, 201, 122, 1, 223,
+ 62, 201, 122, 1, 192, 112, 201, 122, 1, 212, 201, 201, 122, 1, 189, 201,
+ 122, 1, 238, 0, 201, 122, 1, 181, 201, 122, 1, 166, 201, 122, 1, 233, 97,
+ 201, 122, 1, 196, 157, 201, 122, 1, 249, 3, 201, 122, 1, 172, 201, 122,
+ 1, 168, 201, 122, 1, 167, 201, 122, 1, 177, 201, 122, 1, 194, 169, 201,
+ 122, 1, 188, 201, 122, 1, 193, 209, 201, 122, 1, 144, 201, 122, 116, 3,
+ 211, 31, 201, 122, 116, 3, 211, 4, 201, 122, 116, 3, 211, 1, 201, 122,
+ 18, 3, 211, 18, 201, 122, 18, 3, 211, 0, 201, 122, 18, 3, 211, 24, 201,
+ 122, 18, 3, 211, 10, 201, 122, 18, 3, 211, 32, 201, 122, 18, 3, 211, 20,
+ 201, 122, 3, 211, 35, 201, 122, 3, 196, 11, 201, 122, 116, 3, 210, 217,
+ 172, 201, 122, 116, 3, 210, 217, 194, 169, 201, 122, 1, 221, 250, 201,
+ 122, 1, 201, 55, 201, 122, 17, 192, 76, 201, 122, 17, 101, 201, 122, 17,
+ 104, 201, 122, 17, 133, 201, 122, 17, 134, 201, 122, 17, 151, 201, 122,
+ 17, 170, 201, 122, 17, 179, 201, 122, 17, 174, 201, 122, 17, 182, 201,
+ 122, 249, 246, 201, 122, 1, 207, 171, 201, 122, 1, 219, 232, 201, 122, 1,
+ 248, 54, 201, 122, 1, 52, 222, 184, 201, 122, 1, 52, 218, 236, 248, 169,
+ 1, 64, 248, 169, 1, 203, 86, 64, 248, 169, 1, 144, 248, 169, 1, 203, 86,
+ 144, 248, 169, 1, 217, 155, 144, 248, 169, 1, 249, 3, 248, 169, 1, 222,
+ 95, 249, 3, 248, 169, 1, 166, 248, 169, 1, 203, 86, 166, 248, 169, 1,
+ 181, 248, 169, 1, 217, 155, 181, 248, 169, 1, 194, 169, 248, 169, 1, 203,
+ 86, 194, 169, 248, 169, 1, 211, 50, 194, 169, 248, 169, 1, 231, 233, 248,
+ 169, 1, 203, 86, 231, 233, 248, 169, 1, 223, 62, 248, 169, 1, 238, 0,
+ 248, 169, 1, 167, 248, 169, 1, 203, 86, 167, 248, 169, 1, 172, 248, 169,
+ 1, 203, 86, 172, 248, 169, 1, 202, 169, 189, 248, 169, 1, 213, 115, 189,
+ 248, 169, 1, 188, 248, 169, 1, 203, 86, 188, 248, 169, 1, 217, 155, 188,
+ 248, 169, 1, 168, 248, 169, 1, 203, 86, 168, 248, 169, 1, 214, 165, 248,
+ 169, 1, 177, 248, 169, 1, 203, 86, 177, 248, 169, 1, 212, 201, 248, 169,
+ 1, 247, 19, 248, 169, 1, 214, 255, 248, 169, 1, 217, 82, 248, 169, 1, 70,
+ 248, 169, 1, 68, 248, 169, 3, 199, 21, 248, 169, 18, 3, 71, 248, 169, 18,
+ 3, 211, 50, 71, 248, 169, 18, 3, 234, 171, 248, 169, 18, 3, 70, 248, 169,
+ 18, 3, 222, 95, 70, 248, 169, 18, 3, 74, 248, 169, 18, 3, 222, 95, 74,
+ 248, 169, 18, 3, 68, 248, 169, 18, 3, 124, 39, 203, 86, 188, 248, 169,
+ 116, 3, 214, 167, 248, 169, 116, 3, 230, 124, 248, 169, 211, 13, 248,
+ 169, 211, 9, 248, 169, 16, 248, 18, 215, 97, 216, 238, 248, 169, 16, 248,
+ 18, 210, 5, 248, 169, 16, 248, 18, 222, 211, 248, 169, 16, 248, 18, 211,
+ 13, 219, 243, 1, 160, 219, 243, 1, 221, 132, 219, 243, 1, 221, 250, 219,
+ 243, 1, 231, 233, 219, 243, 1, 231, 14, 219, 243, 1, 214, 165, 219, 243,
+ 1, 247, 19, 219, 243, 1, 246, 117, 219, 243, 1, 223, 62, 219, 243, 1,
+ 212, 201, 219, 243, 1, 189, 219, 243, 1, 199, 240, 219, 243, 1, 238, 0,
+ 219, 243, 1, 181, 219, 243, 1, 166, 219, 243, 1, 209, 234, 219, 243, 1,
+ 210, 94, 219, 243, 1, 233, 97, 219, 243, 1, 232, 208, 219, 243, 1, 249,
+ 3, 219, 243, 1, 247, 249, 219, 243, 1, 172, 219, 243, 1, 216, 98, 219,
+ 243, 1, 198, 118, 219, 243, 1, 198, 108, 219, 243, 1, 235, 17, 219, 243,
+ 1, 168, 219, 243, 1, 167, 219, 243, 1, 177, 219, 243, 1, 144, 219, 243,
+ 1, 229, 131, 219, 243, 1, 196, 157, 219, 243, 1, 188, 219, 243, 1, 204,
+ 64, 219, 243, 1, 194, 169, 219, 243, 1, 64, 219, 243, 201, 164, 1, 168,
+ 219, 243, 201, 164, 1, 167, 219, 243, 18, 3, 252, 33, 219, 243, 18, 3,
+ 70, 219, 243, 18, 3, 74, 219, 243, 18, 3, 211, 194, 219, 243, 18, 3, 68,
+ 219, 243, 18, 3, 196, 251, 219, 243, 18, 3, 71, 219, 243, 116, 3, 222,
+ 184, 219, 243, 116, 3, 218, 236, 219, 243, 116, 3, 165, 219, 243, 116, 3,
+ 215, 151, 219, 243, 116, 3, 211, 93, 219, 243, 116, 3, 150, 219, 243,
+ 116, 3, 200, 228, 219, 243, 116, 3, 212, 173, 219, 243, 116, 3, 222, 117,
+ 219, 243, 3, 208, 31, 219, 243, 3, 212, 241, 219, 243, 209, 38, 200, 176,
+ 219, 243, 209, 38, 212, 185, 199, 131, 200, 176, 219, 243, 209, 38, 246,
+ 126, 219, 243, 209, 38, 198, 100, 246, 126, 219, 243, 209, 38, 198, 99,
+ 219, 243, 17, 192, 76, 219, 243, 17, 101, 219, 243, 17, 104, 219, 243,
+ 17, 133, 219, 243, 17, 134, 219, 243, 17, 151, 219, 243, 17, 170, 219,
+ 243, 17, 179, 219, 243, 17, 174, 219, 243, 17, 182, 219, 243, 1, 198, 83,
+ 219, 243, 1, 198, 71, 219, 243, 1, 237, 161, 211, 227, 242, 208, 17, 192,
+ 76, 211, 227, 242, 208, 17, 101, 211, 227, 242, 208, 17, 104, 211, 227,
+ 242, 208, 17, 133, 211, 227, 242, 208, 17, 134, 211, 227, 242, 208, 17,
+ 151, 211, 227, 242, 208, 17, 170, 211, 227, 242, 208, 17, 179, 211, 227,
+ 242, 208, 17, 174, 211, 227, 242, 208, 17, 182, 211, 227, 242, 208, 1,
+ 177, 211, 227, 242, 208, 1, 250, 26, 211, 227, 242, 208, 1, 251, 80, 211,
+ 227, 242, 208, 1, 250, 214, 211, 227, 242, 208, 1, 251, 35, 211, 227,
+ 242, 208, 1, 220, 184, 211, 227, 242, 208, 1, 251, 251, 211, 227, 242,
+ 208, 1, 251, 252, 211, 227, 242, 208, 1, 251, 250, 211, 227, 242, 208, 1,
+ 251, 244, 211, 227, 242, 208, 1, 219, 209, 211, 227, 242, 208, 1, 223,
+ 96, 211, 227, 242, 208, 1, 223, 225, 211, 227, 242, 208, 1, 223, 118,
+ 211, 227, 242, 208, 1, 223, 105, 211, 227, 242, 208, 1, 219, 36, 211,
+ 227, 242, 208, 1, 197, 111, 211, 227, 242, 208, 1, 197, 109, 211, 227,
+ 242, 208, 1, 197, 47, 211, 227, 242, 208, 1, 196, 243, 211, 227, 242,
+ 208, 1, 220, 42, 211, 227, 242, 208, 1, 234, 41, 211, 227, 242, 208, 1,
+ 234, 174, 211, 227, 242, 208, 1, 234, 88, 211, 227, 242, 208, 1, 234, 13,
+ 211, 227, 242, 208, 1, 219, 107, 211, 227, 242, 208, 1, 211, 135, 211,
+ 227, 242, 208, 1, 212, 22, 211, 227, 242, 208, 1, 211, 120, 211, 227,
+ 242, 208, 1, 211, 241, 211, 227, 242, 208, 215, 242, 198, 48, 211, 227,
+ 242, 208, 231, 228, 198, 49, 211, 227, 242, 208, 215, 236, 198, 49, 211,
+ 227, 242, 208, 207, 216, 211, 227, 242, 208, 210, 92, 211, 227, 242, 208,
+ 251, 71, 211, 227, 242, 208, 209, 38, 215, 232, 211, 227, 242, 208, 209,
+ 38, 55, 215, 232, 42, 2, 1, 207, 7, 196, 123, 42, 2, 1, 219, 77, 237,
+ 116, 42, 2, 1, 215, 50, 74, 42, 2, 1, 194, 64, 234, 9, 42, 2, 1, 200,
+ 132, 200, 79, 42, 2, 1, 199, 156, 200, 79, 42, 2, 1, 200, 132, 230, 26,
+ 57, 42, 2, 1, 200, 132, 193, 84, 42, 2, 1, 197, 72, 197, 92, 98, 215,
+ 243, 6, 1, 250, 224, 98, 215, 243, 6, 1, 248, 207, 98, 215, 243, 6, 1,
+ 231, 203, 98, 215, 243, 6, 1, 236, 123, 98, 215, 243, 6, 1, 234, 88, 98,
+ 215, 243, 6, 1, 196, 20, 98, 215, 243, 6, 1, 192, 79, 98, 215, 243, 6, 1,
+ 200, 125, 98, 215, 243, 6, 1, 223, 190, 98, 215, 243, 6, 1, 222, 121, 98,
+ 215, 243, 6, 1, 220, 67, 98, 215, 243, 6, 1, 217, 160, 98, 215, 243, 6,
+ 1, 215, 51, 98, 215, 243, 6, 1, 211, 211, 98, 215, 243, 6, 1, 210, 247,
+ 98, 215, 243, 6, 1, 192, 67, 98, 215, 243, 6, 1, 208, 53, 98, 215, 243,
+ 6, 1, 206, 40, 98, 215, 243, 6, 1, 200, 112, 98, 215, 243, 6, 1, 197, 77,
+ 98, 215, 243, 6, 1, 210, 86, 98, 215, 243, 6, 1, 221, 237, 98, 215, 243,
+ 6, 1, 231, 75, 98, 215, 243, 6, 1, 208, 224, 98, 215, 243, 6, 1, 203,
+ 224, 98, 215, 243, 6, 1, 242, 201, 98, 215, 243, 6, 1, 246, 243, 98, 215,
+ 243, 6, 1, 223, 10, 98, 215, 243, 6, 1, 242, 138, 98, 215, 243, 6, 1,
+ 246, 101, 98, 215, 243, 6, 1, 193, 207, 98, 215, 243, 6, 1, 223, 25, 98,
+ 215, 243, 6, 1, 230, 95, 98, 215, 243, 6, 1, 229, 255, 98, 215, 243, 6,
+ 1, 229, 165, 98, 215, 243, 6, 1, 194, 111, 98, 215, 243, 6, 1, 230, 28,
+ 98, 215, 243, 6, 1, 229, 31, 98, 215, 243, 6, 1, 233, 11, 98, 215, 243,
+ 6, 1, 193, 3, 98, 215, 243, 6, 1, 234, 107, 98, 215, 243, 6, 1, 163, 231,
+ 203, 98, 215, 243, 6, 1, 251, 57, 98, 215, 243, 6, 1, 251, 97, 98, 215,
+ 243, 6, 1, 230, 26, 57, 98, 215, 243, 6, 1, 220, 175, 57, 201, 122, 209,
+ 38, 248, 18, 201, 91, 201, 122, 209, 38, 248, 18, 211, 14, 201, 122, 209,
+ 38, 248, 18, 209, 25, 201, 122, 209, 38, 248, 18, 247, 4, 201, 122, 209,
+ 38, 248, 18, 219, 233, 206, 19, 201, 122, 209, 38, 248, 18, 222, 174,
+ 206, 19, 201, 122, 209, 38, 248, 18, 238, 1, 206, 19, 201, 122, 209, 38,
+ 248, 18, 249, 4, 206, 19, 196, 120, 158, 222, 91, 196, 120, 158, 204, 29,
+ 196, 120, 158, 209, 109, 196, 120, 3, 214, 28, 196, 120, 3, 193, 106,
+ 216, 158, 201, 82, 196, 120, 158, 193, 106, 251, 76, 223, 177, 201, 82,
+ 196, 120, 158, 193, 106, 223, 177, 201, 82, 196, 120, 158, 193, 106, 222,
+ 79, 223, 177, 201, 82, 196, 120, 158, 246, 237, 63, 196, 120, 158, 193,
+ 106, 222, 79, 223, 177, 201, 83, 205, 242, 196, 120, 158, 55, 201, 82,
+ 196, 120, 158, 198, 170, 201, 82, 196, 120, 158, 222, 79, 250, 170, 196,
+ 120, 158, 78, 63, 196, 120, 158, 103, 236, 112, 63, 196, 120, 158, 112,
+ 236, 112, 63, 196, 120, 158, 207, 89, 222, 90, 223, 177, 201, 82, 196,
+ 120, 158, 250, 23, 223, 177, 201, 82, 196, 120, 3, 196, 7, 201, 82, 196,
+ 120, 3, 196, 7, 197, 106, 196, 120, 3, 207, 168, 196, 7, 197, 106, 196,
+ 120, 3, 196, 7, 250, 170, 196, 120, 3, 207, 168, 196, 7, 250, 170, 196,
+ 120, 3, 196, 7, 197, 107, 4, 200, 147, 196, 120, 3, 196, 7, 250, 171, 4,
+ 200, 147, 196, 120, 3, 250, 169, 250, 185, 196, 120, 3, 250, 169, 248,
+ 226, 196, 120, 3, 250, 169, 196, 147, 196, 120, 3, 250, 169, 196, 148, 4,
+ 200, 147, 196, 120, 3, 199, 64, 196, 120, 3, 229, 190, 184, 250, 168,
+ 196, 120, 3, 184, 250, 168, 196, 120, 3, 206, 220, 184, 250, 168, 196,
+ 120, 3, 250, 169, 197, 113, 215, 223, 196, 120, 3, 250, 108, 196, 120, 3,
+ 207, 16, 250, 108, 196, 120, 158, 246, 237, 58, 196, 120, 3, 223, 13,
+ 196, 120, 3, 197, 39, 196, 120, 3, 250, 21, 196, 120, 158, 207, 82, 58,
+ 196, 120, 158, 55, 207, 82, 58, 196, 120, 3, 55, 250, 169, 250, 185, 8,
+ 1, 2, 6, 64, 8, 1, 2, 6, 251, 108, 8, 2, 1, 163, 251, 108, 8, 1, 2, 6,
+ 248, 188, 249, 226, 8, 1, 2, 6, 247, 52, 8, 1, 2, 6, 238, 95, 8, 1, 2, 6,
+ 233, 235, 8, 1, 2, 6, 71, 8, 2, 1, 163, 211, 184, 71, 8, 2, 1, 163, 70,
+ 8, 1, 2, 6, 223, 65, 8, 1, 2, 6, 222, 184, 8, 1, 2, 6, 220, 202, 4, 111,
+ 8, 1, 2, 6, 218, 236, 8, 1, 2, 6, 207, 168, 215, 151, 8, 1, 2, 6, 74, 8,
+ 1, 2, 6, 211, 184, 74, 8, 2, 1, 203, 109, 74, 8, 2, 1, 203, 109, 211,
+ 184, 74, 8, 2, 1, 203, 109, 185, 4, 111, 8, 2, 1, 163, 212, 0, 8, 1, 2,
+ 6, 211, 130, 8, 2, 1, 198, 249, 138, 74, 8, 2, 1, 247, 188, 138, 74, 8,
+ 1, 2, 6, 211, 93, 8, 1, 2, 6, 207, 168, 150, 8, 1, 2, 6, 163, 150, 8, 1,
+ 2, 6, 200, 228, 8, 1, 2, 6, 68, 8, 2, 1, 203, 109, 68, 8, 2, 1, 203, 109,
+ 237, 12, 68, 8, 2, 1, 203, 109, 163, 218, 236, 8, 1, 2, 6, 196, 236, 8,
+ 1, 2, 6, 194, 202, 8, 1, 2, 6, 192, 155, 8, 1, 2, 6, 233, 166, 8, 1, 195,
+ 248, 220, 68, 202, 131, 8, 1, 251, 57, 33, 1, 2, 6, 231, 204, 33, 1, 2,
+ 6, 220, 90, 33, 1, 2, 6, 210, 51, 33, 1, 2, 6, 207, 153, 33, 1, 2, 6,
+ 209, 62, 42, 1, 2, 6, 234, 124, 73, 1, 6, 64, 73, 1, 6, 251, 108, 73, 1,
+ 6, 249, 226, 73, 1, 6, 248, 188, 249, 226, 73, 1, 6, 238, 95, 73, 1, 6,
+ 71, 73, 1, 6, 207, 168, 71, 73, 1, 6, 232, 44, 73, 1, 6, 230, 124, 73, 1,
+ 6, 70, 73, 1, 6, 223, 65, 73, 1, 6, 222, 184, 73, 1, 6, 165, 73, 1, 6,
+ 218, 236, 73, 1, 6, 215, 151, 73, 1, 6, 207, 168, 215, 151, 73, 1, 6, 74,
+ 73, 1, 6, 211, 130, 73, 1, 6, 211, 93, 73, 1, 6, 150, 73, 1, 6, 200, 228,
+ 73, 1, 6, 68, 73, 1, 6, 194, 202, 73, 1, 2, 64, 73, 1, 2, 163, 64, 73, 1,
+ 2, 250, 252, 73, 1, 2, 163, 251, 108, 73, 1, 2, 249, 226, 73, 1, 2, 238,
+ 95, 73, 1, 2, 71, 73, 1, 2, 205, 240, 73, 1, 2, 211, 184, 71, 73, 1, 2,
+ 163, 211, 184, 71, 73, 1, 2, 232, 44, 73, 1, 2, 163, 70, 73, 1, 2, 222,
+ 184, 73, 1, 2, 218, 236, 73, 1, 2, 234, 73, 73, 1, 2, 74, 73, 1, 2, 211,
+ 184, 74, 73, 1, 2, 198, 249, 138, 74, 73, 1, 2, 247, 188, 138, 74, 73, 1,
+ 2, 211, 93, 73, 1, 2, 200, 228, 73, 1, 2, 68, 73, 1, 2, 203, 109, 68, 73,
+ 1, 2, 163, 218, 236, 73, 1, 2, 196, 236, 73, 1, 2, 251, 57, 73, 1, 2,
+ 248, 63, 73, 1, 2, 33, 231, 204, 73, 1, 2, 237, 76, 73, 1, 2, 33, 210,
+ 77, 73, 1, 2, 242, 215, 8, 201, 155, 2, 1, 70, 8, 201, 155, 2, 1, 150, 8,
+ 201, 155, 2, 1, 68, 8, 201, 155, 2, 1, 196, 236, 33, 201, 155, 2, 1, 248,
+ 63, 33, 201, 155, 2, 1, 231, 204, 33, 201, 155, 2, 1, 207, 153, 33, 201,
+ 155, 2, 1, 210, 77, 33, 201, 155, 2, 1, 242, 215, 8, 2, 1, 197, 104, 8,
+ 2, 1, 76, 4, 85, 199, 90, 8, 2, 1, 238, 96, 4, 85, 199, 90, 8, 2, 1, 233,
+ 164, 4, 85, 199, 90, 8, 2, 1, 218, 237, 4, 85, 199, 90, 8, 2, 1, 215,
+ 152, 4, 85, 199, 90, 8, 2, 1, 211, 94, 4, 85, 199, 90, 8, 2, 1, 208, 112,
+ 4, 85, 199, 90, 8, 2, 1, 208, 112, 4, 232, 222, 26, 85, 199, 90, 8, 2, 1,
+ 206, 159, 4, 85, 199, 90, 8, 2, 1, 200, 229, 4, 85, 199, 90, 8, 2, 1,
+ 192, 156, 4, 85, 199, 90, 8, 2, 1, 163, 232, 44, 73, 1, 42, 234, 88, 8,
+ 2, 1, 223, 143, 232, 44, 8, 2, 1, 199, 243, 4, 201, 212, 8, 2, 6, 1, 228,
+ 97, 4, 111, 8, 2, 1, 223, 112, 4, 111, 8, 2, 1, 211, 94, 4, 111, 8, 2, 6,
+ 1, 124, 4, 111, 8, 2, 1, 197, 35, 4, 111, 8, 2, 1, 76, 4, 211, 49, 128,
+ 8, 2, 1, 238, 96, 4, 211, 49, 128, 8, 2, 1, 233, 164, 4, 211, 49, 128, 8,
+ 2, 1, 232, 45, 4, 211, 49, 128, 8, 2, 1, 222, 185, 4, 211, 49, 128, 8, 2,
+ 1, 220, 202, 4, 211, 49, 128, 8, 2, 1, 218, 237, 4, 211, 49, 128, 8, 2,
+ 1, 215, 152, 4, 211, 49, 128, 8, 2, 1, 211, 94, 4, 211, 49, 128, 8, 2, 1,
+ 208, 112, 4, 211, 49, 128, 8, 2, 1, 206, 159, 4, 211, 49, 128, 8, 2, 1,
+ 234, 0, 4, 211, 49, 128, 8, 2, 1, 196, 237, 4, 211, 49, 128, 8, 2, 1,
+ 193, 224, 4, 211, 49, 128, 8, 2, 1, 192, 156, 4, 211, 49, 128, 8, 2, 1,
+ 41, 4, 207, 174, 128, 8, 2, 1, 250, 253, 4, 207, 174, 128, 8, 2, 1, 238,
+ 96, 4, 229, 15, 26, 200, 147, 8, 2, 1, 234, 253, 4, 207, 174, 128, 8, 2,
+ 1, 211, 184, 234, 253, 4, 207, 174, 128, 8, 2, 1, 207, 168, 211, 184,
+ 234, 253, 4, 207, 174, 128, 8, 2, 1, 205, 241, 4, 207, 174, 128, 8, 2, 1,
+ 228, 97, 4, 207, 174, 128, 8, 2, 1, 211, 184, 185, 4, 207, 174, 128, 8,
+ 2, 1, 234, 0, 4, 207, 174, 128, 8, 2, 1, 124, 4, 207, 174, 128, 8, 2, 1,
+ 233, 167, 4, 207, 174, 128, 73, 1, 2, 163, 250, 252, 73, 1, 2, 247, 52,
+ 73, 1, 2, 247, 53, 4, 238, 142, 73, 1, 2, 233, 235, 73, 1, 2, 207, 168,
+ 211, 184, 71, 73, 1, 2, 233, 163, 73, 1, 2, 236, 113, 223, 66, 4, 111,
+ 73, 1, 2, 27, 232, 44, 73, 1, 2, 163, 230, 124, 73, 1, 2, 228, 97, 4,
+ 111, 73, 1, 2, 223, 111, 73, 1, 2, 6, 70, 73, 1, 2, 6, 228, 97, 4, 111,
+ 73, 1, 2, 223, 66, 4, 238, 178, 73, 1, 2, 220, 202, 4, 207, 174, 128, 73,
+ 1, 2, 220, 202, 4, 211, 49, 128, 73, 1, 2, 6, 165, 73, 1, 2, 218, 237, 4,
+ 128, 73, 1, 2, 163, 218, 237, 4, 184, 220, 16, 73, 1, 2, 215, 152, 4, 46,
+ 128, 73, 1, 2, 215, 152, 4, 207, 174, 128, 73, 1, 2, 6, 215, 151, 73, 1,
+ 2, 248, 188, 74, 73, 1, 2, 210, 77, 73, 1, 2, 206, 159, 4, 128, 73, 1, 2,
+ 233, 255, 73, 1, 2, 200, 229, 4, 211, 49, 128, 73, 1, 2, 124, 161, 73, 1,
+ 2, 197, 34, 73, 1, 2, 6, 68, 73, 1, 2, 196, 237, 4, 128, 73, 1, 2, 163,
+ 196, 236, 73, 1, 2, 192, 155, 73, 1, 2, 192, 156, 4, 207, 174, 128, 73,
+ 1, 2, 192, 156, 4, 238, 142, 73, 1, 2, 233, 166, 73, 1, 2, 199, 206, 38,
+ 235, 111, 230, 211, 251, 143, 38, 235, 111, 251, 130, 251, 143, 38, 202,
+ 225, 63, 38, 201, 89, 77, 38, 217, 213, 38, 230, 208, 38, 217, 211, 38,
+ 251, 127, 38, 230, 209, 38, 251, 128, 38, 8, 2, 1, 208, 112, 63, 38, 247,
+ 149, 38, 217, 212, 38, 55, 242, 122, 58, 38, 211, 244, 58, 38, 192, 21,
+ 63, 38, 223, 97, 63, 38, 197, 28, 58, 38, 197, 11, 58, 38, 8, 2, 1, 232,
+ 192, 211, 184, 41, 58, 38, 8, 2, 1, 251, 108, 38, 8, 2, 1, 250, 166, 38,
+ 8, 2, 1, 249, 247, 38, 8, 2, 1, 247, 53, 246, 151, 38, 8, 2, 1, 223, 143,
+ 238, 95, 38, 8, 2, 1, 233, 235, 38, 8, 2, 1, 232, 44, 38, 8, 1, 2, 6,
+ 232, 44, 38, 8, 2, 1, 222, 184, 38, 8, 2, 1, 165, 38, 8, 1, 2, 6, 165,
+ 38, 8, 1, 2, 6, 218, 236, 38, 8, 2, 1, 215, 151, 38, 8, 1, 2, 6, 215,
+ 151, 38, 8, 1, 2, 6, 150, 38, 8, 2, 1, 208, 112, 207, 10, 38, 8, 2, 1,
+ 206, 158, 38, 8, 2, 1, 184, 206, 158, 38, 8, 2, 1, 192, 155, 38, 8, 2, 1,
+ 250, 252, 38, 8, 2, 1, 249, 226, 38, 8, 2, 1, 248, 63, 38, 8, 2, 1, 205,
+ 240, 38, 8, 2, 1, 233, 163, 38, 8, 2, 1, 220, 202, 4, 55, 85, 199, 90,
+ 38, 8, 2, 1, 185, 4, 152, 246, 139, 111, 38, 8, 2, 1, 211, 93, 38, 8, 2,
+ 1, 233, 255, 38, 8, 2, 1, 124, 4, 152, 246, 139, 111, 38, 8, 2, 1, 194,
+ 202, 38, 8, 2, 1, 41, 4, 237, 14, 38, 8, 2, 1, 185, 4, 237, 14, 38, 8, 2,
+ 1, 124, 4, 237, 14, 38, 130, 200, 160, 58, 38, 222, 70, 95, 207, 101, 38,
+ 222, 70, 95, 220, 28, 38, 78, 95, 220, 28, 38, 194, 64, 223, 121, 247,
+ 143, 63, 38, 237, 85, 77, 38, 55, 223, 121, 247, 151, 63, 38, 251, 1,
+ 187, 115, 63, 38, 46, 250, 78, 58, 38, 51, 250, 78, 26, 142, 250, 78, 63,
+ 8, 6, 1, 41, 4, 207, 82, 63, 8, 2, 1, 41, 4, 207, 82, 63, 8, 6, 1, 76, 4,
+ 78, 58, 8, 2, 1, 76, 4, 78, 58, 8, 6, 1, 76, 4, 78, 63, 8, 2, 1, 76, 4,
+ 78, 63, 8, 6, 1, 76, 4, 219, 176, 63, 8, 2, 1, 76, 4, 219, 176, 63, 8, 6,
+ 1, 247, 53, 4, 246, 152, 26, 251, 129, 8, 2, 1, 247, 53, 4, 246, 152, 26,
+ 251, 129, 8, 6, 1, 238, 96, 4, 78, 58, 8, 2, 1, 238, 96, 4, 78, 58, 8, 6,
+ 1, 238, 96, 4, 78, 63, 8, 2, 1, 238, 96, 4, 78, 63, 8, 6, 1, 238, 96, 4,
+ 219, 176, 63, 8, 2, 1, 238, 96, 4, 219, 176, 63, 8, 6, 1, 238, 96, 4,
+ 246, 151, 8, 2, 1, 238, 96, 4, 246, 151, 8, 6, 1, 238, 96, 4, 242, 122,
+ 63, 8, 2, 1, 238, 96, 4, 242, 122, 63, 8, 6, 1, 234, 253, 4, 217, 215,
+ 26, 230, 210, 8, 2, 1, 234, 253, 4, 217, 215, 26, 230, 210, 8, 6, 1, 234,
+ 253, 4, 217, 215, 26, 251, 129, 8, 2, 1, 234, 253, 4, 217, 215, 26, 251,
+ 129, 8, 6, 1, 234, 253, 4, 242, 122, 63, 8, 2, 1, 234, 253, 4, 242, 122,
+ 63, 8, 6, 1, 234, 253, 4, 199, 91, 63, 8, 2, 1, 234, 253, 4, 199, 91, 63,
+ 8, 6, 1, 234, 253, 4, 246, 152, 26, 247, 150, 8, 2, 1, 234, 253, 4, 246,
+ 152, 26, 247, 150, 8, 6, 1, 233, 164, 4, 78, 58, 8, 2, 1, 233, 164, 4,
+ 78, 58, 8, 6, 1, 232, 45, 4, 217, 214, 8, 2, 1, 232, 45, 4, 217, 214, 8,
+ 6, 1, 230, 125, 4, 78, 58, 8, 2, 1, 230, 125, 4, 78, 58, 8, 6, 1, 230,
+ 125, 4, 78, 63, 8, 2, 1, 230, 125, 4, 78, 63, 8, 6, 1, 230, 125, 4, 237,
+ 14, 8, 2, 1, 230, 125, 4, 237, 14, 8, 6, 1, 230, 125, 4, 246, 151, 8, 2,
+ 1, 230, 125, 4, 246, 151, 8, 6, 1, 230, 125, 4, 247, 151, 63, 8, 2, 1,
+ 230, 125, 4, 247, 151, 63, 8, 6, 1, 228, 97, 4, 199, 91, 63, 8, 2, 1,
+ 228, 97, 4, 199, 91, 63, 8, 6, 1, 228, 97, 4, 237, 15, 26, 251, 129, 8,
+ 2, 1, 228, 97, 4, 237, 15, 26, 251, 129, 8, 6, 1, 222, 185, 4, 251, 129,
+ 8, 2, 1, 222, 185, 4, 251, 129, 8, 6, 1, 222, 185, 4, 78, 63, 8, 2, 1,
+ 222, 185, 4, 78, 63, 8, 6, 1, 222, 185, 4, 219, 176, 63, 8, 2, 1, 222,
+ 185, 4, 219, 176, 63, 8, 6, 1, 220, 202, 4, 78, 63, 8, 2, 1, 220, 202, 4,
+ 78, 63, 8, 6, 1, 220, 202, 4, 78, 248, 84, 26, 217, 214, 8, 2, 1, 220,
+ 202, 4, 78, 248, 84, 26, 217, 214, 8, 6, 1, 220, 202, 4, 219, 176, 63, 8,
+ 2, 1, 220, 202, 4, 219, 176, 63, 8, 6, 1, 220, 202, 4, 242, 122, 63, 8,
+ 2, 1, 220, 202, 4, 242, 122, 63, 8, 6, 1, 218, 237, 4, 251, 129, 8, 2, 1,
+ 218, 237, 4, 251, 129, 8, 6, 1, 218, 237, 4, 78, 58, 8, 2, 1, 218, 237,
+ 4, 78, 58, 8, 6, 1, 218, 237, 4, 78, 63, 8, 2, 1, 218, 237, 4, 78, 63, 8,
+ 6, 1, 215, 152, 4, 78, 58, 8, 2, 1, 215, 152, 4, 78, 58, 8, 6, 1, 215,
+ 152, 4, 78, 63, 8, 2, 1, 215, 152, 4, 78, 63, 8, 6, 1, 215, 152, 4, 219,
+ 176, 63, 8, 2, 1, 215, 152, 4, 219, 176, 63, 8, 6, 1, 215, 152, 4, 242,
+ 122, 63, 8, 2, 1, 215, 152, 4, 242, 122, 63, 8, 6, 1, 185, 4, 199, 91,
+ 26, 251, 129, 8, 2, 1, 185, 4, 199, 91, 26, 251, 129, 8, 6, 1, 185, 4,
+ 199, 91, 26, 237, 14, 8, 2, 1, 185, 4, 199, 91, 26, 237, 14, 8, 6, 1,
+ 185, 4, 217, 215, 26, 230, 210, 8, 2, 1, 185, 4, 217, 215, 26, 230, 210,
+ 8, 6, 1, 185, 4, 217, 215, 26, 251, 129, 8, 2, 1, 185, 4, 217, 215, 26,
+ 251, 129, 8, 6, 1, 211, 94, 4, 251, 129, 8, 2, 1, 211, 94, 4, 251, 129,
+ 8, 6, 1, 211, 94, 4, 78, 58, 8, 2, 1, 211, 94, 4, 78, 58, 8, 6, 1, 208,
+ 112, 4, 78, 58, 8, 2, 1, 208, 112, 4, 78, 58, 8, 6, 1, 208, 112, 4, 78,
+ 63, 8, 2, 1, 208, 112, 4, 78, 63, 8, 6, 1, 208, 112, 4, 78, 248, 84, 26,
+ 217, 214, 8, 2, 1, 208, 112, 4, 78, 248, 84, 26, 217, 214, 8, 6, 1, 208,
+ 112, 4, 219, 176, 63, 8, 2, 1, 208, 112, 4, 219, 176, 63, 8, 6, 1, 206,
+ 159, 4, 78, 58, 8, 2, 1, 206, 159, 4, 78, 58, 8, 6, 1, 206, 159, 4, 78,
+ 63, 8, 2, 1, 206, 159, 4, 78, 63, 8, 6, 1, 206, 159, 4, 251, 130, 26, 78,
+ 58, 8, 2, 1, 206, 159, 4, 251, 130, 26, 78, 58, 8, 6, 1, 206, 159, 4,
+ 246, 208, 26, 78, 58, 8, 2, 1, 206, 159, 4, 246, 208, 26, 78, 58, 8, 6,
+ 1, 206, 159, 4, 78, 248, 84, 26, 78, 58, 8, 2, 1, 206, 159, 4, 78, 248,
+ 84, 26, 78, 58, 8, 6, 1, 200, 229, 4, 78, 58, 8, 2, 1, 200, 229, 4, 78,
+ 58, 8, 6, 1, 200, 229, 4, 78, 63, 8, 2, 1, 200, 229, 4, 78, 63, 8, 6, 1,
+ 200, 229, 4, 219, 176, 63, 8, 2, 1, 200, 229, 4, 219, 176, 63, 8, 6, 1,
+ 200, 229, 4, 242, 122, 63, 8, 2, 1, 200, 229, 4, 242, 122, 63, 8, 6, 1,
+ 124, 4, 237, 15, 63, 8, 2, 1, 124, 4, 237, 15, 63, 8, 6, 1, 124, 4, 199,
+ 91, 63, 8, 2, 1, 124, 4, 199, 91, 63, 8, 6, 1, 124, 4, 242, 122, 63, 8,
+ 2, 1, 124, 4, 242, 122, 63, 8, 6, 1, 124, 4, 199, 91, 26, 251, 129, 8, 2,
+ 1, 124, 4, 199, 91, 26, 251, 129, 8, 6, 1, 124, 4, 217, 215, 26, 237, 14,
+ 8, 2, 1, 124, 4, 217, 215, 26, 237, 14, 8, 6, 1, 196, 237, 4, 199, 90, 8,
+ 2, 1, 196, 237, 4, 199, 90, 8, 6, 1, 196, 237, 4, 78, 63, 8, 2, 1, 196,
+ 237, 4, 78, 63, 8, 6, 1, 194, 203, 4, 230, 210, 8, 2, 1, 194, 203, 4,
+ 230, 210, 8, 6, 1, 194, 203, 4, 251, 129, 8, 2, 1, 194, 203, 4, 251, 129,
+ 8, 6, 1, 194, 203, 4, 237, 14, 8, 2, 1, 194, 203, 4, 237, 14, 8, 6, 1,
+ 194, 203, 4, 78, 58, 8, 2, 1, 194, 203, 4, 78, 58, 8, 6, 1, 194, 203, 4,
+ 78, 63, 8, 2, 1, 194, 203, 4, 78, 63, 8, 6, 1, 193, 224, 4, 78, 58, 8, 2,
+ 1, 193, 224, 4, 78, 58, 8, 6, 1, 193, 224, 4, 237, 14, 8, 2, 1, 193, 224,
+ 4, 237, 14, 8, 6, 1, 193, 149, 4, 78, 58, 8, 2, 1, 193, 149, 4, 78, 58,
+ 8, 6, 1, 192, 156, 4, 242, 121, 8, 2, 1, 192, 156, 4, 242, 121, 8, 6, 1,
+ 192, 156, 4, 78, 63, 8, 2, 1, 192, 156, 4, 78, 63, 8, 6, 1, 192, 156, 4,
+ 219, 176, 63, 8, 2, 1, 192, 156, 4, 219, 176, 63, 8, 2, 1, 230, 125, 4,
+ 219, 176, 63, 8, 2, 1, 200, 229, 4, 237, 14, 8, 2, 1, 194, 203, 4, 207,
+ 82, 58, 8, 2, 1, 193, 149, 4, 207, 82, 58, 8, 2, 1, 41, 4, 51, 138, 207,
+ 81, 8, 2, 1, 184, 206, 159, 4, 78, 58, 8, 2, 1, 184, 206, 159, 4, 237,
+ 11, 111, 8, 2, 1, 184, 206, 159, 4, 139, 111, 8, 6, 1, 204, 26, 206, 158,
+ 8, 2, 1, 237, 76, 8, 6, 1, 41, 4, 78, 63, 8, 2, 1, 41, 4, 78, 63, 8, 6,
+ 1, 41, 4, 229, 15, 58, 8, 2, 1, 41, 4, 229, 15, 58, 8, 6, 1, 41, 4, 242,
+ 122, 26, 251, 129, 8, 2, 1, 41, 4, 242, 122, 26, 251, 129, 8, 6, 1, 41,
+ 4, 242, 122, 26, 230, 210, 8, 2, 1, 41, 4, 242, 122, 26, 230, 210, 8, 6,
+ 1, 41, 4, 242, 122, 26, 229, 15, 58, 8, 2, 1, 41, 4, 242, 122, 26, 229,
+ 15, 58, 8, 6, 1, 41, 4, 242, 122, 26, 199, 90, 8, 2, 1, 41, 4, 242, 122,
+ 26, 199, 90, 8, 6, 1, 41, 4, 242, 122, 26, 78, 63, 8, 2, 1, 41, 4, 242,
+ 122, 26, 78, 63, 8, 6, 1, 41, 4, 247, 151, 26, 251, 129, 8, 2, 1, 41, 4,
+ 247, 151, 26, 251, 129, 8, 6, 1, 41, 4, 247, 151, 26, 230, 210, 8, 2, 1,
+ 41, 4, 247, 151, 26, 230, 210, 8, 6, 1, 41, 4, 247, 151, 26, 229, 15, 58,
+ 8, 2, 1, 41, 4, 247, 151, 26, 229, 15, 58, 8, 6, 1, 41, 4, 247, 151, 26,
+ 199, 90, 8, 2, 1, 41, 4, 247, 151, 26, 199, 90, 8, 6, 1, 41, 4, 247, 151,
+ 26, 78, 63, 8, 2, 1, 41, 4, 247, 151, 26, 78, 63, 8, 6, 1, 234, 253, 4,
+ 78, 63, 8, 2, 1, 234, 253, 4, 78, 63, 8, 6, 1, 234, 253, 4, 229, 15, 58,
+ 8, 2, 1, 234, 253, 4, 229, 15, 58, 8, 6, 1, 234, 253, 4, 199, 90, 8, 2,
+ 1, 234, 253, 4, 199, 90, 8, 6, 1, 234, 253, 4, 242, 122, 26, 251, 129, 8,
+ 2, 1, 234, 253, 4, 242, 122, 26, 251, 129, 8, 6, 1, 234, 253, 4, 242,
+ 122, 26, 230, 210, 8, 2, 1, 234, 253, 4, 242, 122, 26, 230, 210, 8, 6, 1,
+ 234, 253, 4, 242, 122, 26, 229, 15, 58, 8, 2, 1, 234, 253, 4, 242, 122,
+ 26, 229, 15, 58, 8, 6, 1, 234, 253, 4, 242, 122, 26, 199, 90, 8, 2, 1,
+ 234, 253, 4, 242, 122, 26, 199, 90, 8, 6, 1, 234, 253, 4, 242, 122, 26,
+ 78, 63, 8, 2, 1, 234, 253, 4, 242, 122, 26, 78, 63, 8, 6, 1, 228, 97, 4,
+ 229, 15, 58, 8, 2, 1, 228, 97, 4, 229, 15, 58, 8, 6, 1, 228, 97, 4, 78,
+ 63, 8, 2, 1, 228, 97, 4, 78, 63, 8, 6, 1, 185, 4, 78, 63, 8, 2, 1, 185,
+ 4, 78, 63, 8, 6, 1, 185, 4, 229, 15, 58, 8, 2, 1, 185, 4, 229, 15, 58, 8,
+ 6, 1, 185, 4, 242, 122, 26, 251, 129, 8, 2, 1, 185, 4, 242, 122, 26, 251,
+ 129, 8, 6, 1, 185, 4, 242, 122, 26, 230, 210, 8, 2, 1, 185, 4, 242, 122,
+ 26, 230, 210, 8, 6, 1, 185, 4, 242, 122, 26, 229, 15, 58, 8, 2, 1, 185,
+ 4, 242, 122, 26, 229, 15, 58, 8, 6, 1, 185, 4, 242, 122, 26, 199, 90, 8,
+ 2, 1, 185, 4, 242, 122, 26, 199, 90, 8, 6, 1, 185, 4, 242, 122, 26, 78,
+ 63, 8, 2, 1, 185, 4, 242, 122, 26, 78, 63, 8, 6, 1, 185, 4, 228, 209, 26,
+ 251, 129, 8, 2, 1, 185, 4, 228, 209, 26, 251, 129, 8, 6, 1, 185, 4, 228,
+ 209, 26, 230, 210, 8, 2, 1, 185, 4, 228, 209, 26, 230, 210, 8, 6, 1, 185,
+ 4, 228, 209, 26, 229, 15, 58, 8, 2, 1, 185, 4, 228, 209, 26, 229, 15, 58,
+ 8, 6, 1, 185, 4, 228, 209, 26, 199, 90, 8, 2, 1, 185, 4, 228, 209, 26,
+ 199, 90, 8, 6, 1, 185, 4, 228, 209, 26, 78, 63, 8, 2, 1, 185, 4, 228,
+ 209, 26, 78, 63, 8, 6, 1, 124, 4, 78, 63, 8, 2, 1, 124, 4, 78, 63, 8, 6,
+ 1, 124, 4, 229, 15, 58, 8, 2, 1, 124, 4, 229, 15, 58, 8, 6, 1, 124, 4,
+ 228, 209, 26, 251, 129, 8, 2, 1, 124, 4, 228, 209, 26, 251, 129, 8, 6, 1,
+ 124, 4, 228, 209, 26, 230, 210, 8, 2, 1, 124, 4, 228, 209, 26, 230, 210,
+ 8, 6, 1, 124, 4, 228, 209, 26, 229, 15, 58, 8, 2, 1, 124, 4, 228, 209,
+ 26, 229, 15, 58, 8, 6, 1, 124, 4, 228, 209, 26, 199, 90, 8, 2, 1, 124, 4,
+ 228, 209, 26, 199, 90, 8, 6, 1, 124, 4, 228, 209, 26, 78, 63, 8, 2, 1,
+ 124, 4, 228, 209, 26, 78, 63, 8, 6, 1, 193, 149, 4, 230, 210, 8, 2, 1,
+ 193, 149, 4, 230, 210, 8, 6, 1, 193, 149, 4, 78, 63, 8, 2, 1, 193, 149,
+ 4, 78, 63, 8, 6, 1, 193, 149, 4, 229, 15, 58, 8, 2, 1, 193, 149, 4, 229,
+ 15, 58, 8, 6, 1, 193, 149, 4, 199, 90, 8, 2, 1, 193, 149, 4, 199, 90, 8,
+ 6, 1, 216, 159, 219, 138, 8, 2, 1, 216, 159, 219, 138, 8, 6, 1, 216, 159,
+ 196, 236, 8, 2, 1, 216, 159, 196, 236, 8, 6, 1, 193, 149, 4, 219, 69, 8,
+ 2, 1, 193, 149, 4, 219, 69, 33, 2, 1, 250, 253, 4, 209, 55, 33, 2, 1,
+ 250, 253, 4, 237, 182, 33, 2, 1, 250, 253, 4, 209, 56, 26, 196, 138, 33,
+ 2, 1, 250, 253, 4, 237, 183, 26, 196, 138, 33, 2, 1, 250, 253, 4, 209,
+ 56, 26, 211, 99, 33, 2, 1, 250, 253, 4, 237, 183, 26, 211, 99, 33, 2, 1,
+ 250, 253, 4, 209, 56, 26, 210, 126, 33, 2, 1, 250, 253, 4, 237, 183, 26,
+ 210, 126, 33, 6, 1, 250, 253, 4, 209, 55, 33, 6, 1, 250, 253, 4, 237,
+ 182, 33, 6, 1, 250, 253, 4, 209, 56, 26, 196, 138, 33, 6, 1, 250, 253, 4,
+ 237, 183, 26, 196, 138, 33, 6, 1, 250, 253, 4, 209, 56, 26, 211, 99, 33,
+ 6, 1, 250, 253, 4, 237, 183, 26, 211, 99, 33, 6, 1, 250, 253, 4, 209, 56,
+ 26, 210, 126, 33, 6, 1, 250, 253, 4, 237, 183, 26, 210, 126, 33, 2, 1,
+ 234, 33, 4, 209, 55, 33, 2, 1, 234, 33, 4, 237, 182, 33, 2, 1, 234, 33,
+ 4, 209, 56, 26, 196, 138, 33, 2, 1, 234, 33, 4, 237, 183, 26, 196, 138,
+ 33, 2, 1, 234, 33, 4, 209, 56, 26, 211, 99, 33, 2, 1, 234, 33, 4, 237,
+ 183, 26, 211, 99, 33, 6, 1, 234, 33, 4, 209, 55, 33, 6, 1, 234, 33, 4,
+ 237, 182, 33, 6, 1, 234, 33, 4, 209, 56, 26, 196, 138, 33, 6, 1, 234, 33,
+ 4, 237, 183, 26, 196, 138, 33, 6, 1, 234, 33, 4, 209, 56, 26, 211, 99,
+ 33, 6, 1, 234, 33, 4, 237, 183, 26, 211, 99, 33, 2, 1, 233, 241, 4, 209,
+ 55, 33, 2, 1, 233, 241, 4, 237, 182, 33, 2, 1, 233, 241, 4, 209, 56, 26,
+ 196, 138, 33, 2, 1, 233, 241, 4, 237, 183, 26, 196, 138, 33, 2, 1, 233,
+ 241, 4, 209, 56, 26, 211, 99, 33, 2, 1, 233, 241, 4, 237, 183, 26, 211,
+ 99, 33, 2, 1, 233, 241, 4, 209, 56, 26, 210, 126, 33, 2, 1, 233, 241, 4,
+ 237, 183, 26, 210, 126, 33, 6, 1, 233, 241, 4, 209, 55, 33, 6, 1, 233,
+ 241, 4, 237, 182, 33, 6, 1, 233, 241, 4, 209, 56, 26, 196, 138, 33, 6, 1,
+ 233, 241, 4, 237, 183, 26, 196, 138, 33, 6, 1, 233, 241, 4, 209, 56, 26,
+ 211, 99, 33, 6, 1, 233, 241, 4, 237, 183, 26, 211, 99, 33, 6, 1, 233,
+ 241, 4, 209, 56, 26, 210, 126, 33, 6, 1, 233, 241, 4, 237, 183, 26, 210,
+ 126, 33, 2, 1, 223, 112, 4, 209, 55, 33, 2, 1, 223, 112, 4, 237, 182, 33,
+ 2, 1, 223, 112, 4, 209, 56, 26, 196, 138, 33, 2, 1, 223, 112, 4, 237,
+ 183, 26, 196, 138, 33, 2, 1, 223, 112, 4, 209, 56, 26, 211, 99, 33, 2, 1,
+ 223, 112, 4, 237, 183, 26, 211, 99, 33, 2, 1, 223, 112, 4, 209, 56, 26,
+ 210, 126, 33, 2, 1, 223, 112, 4, 237, 183, 26, 210, 126, 33, 6, 1, 223,
+ 112, 4, 209, 55, 33, 6, 1, 223, 112, 4, 237, 182, 33, 6, 1, 223, 112, 4,
+ 209, 56, 26, 196, 138, 33, 6, 1, 223, 112, 4, 237, 183, 26, 196, 138, 33,
+ 6, 1, 223, 112, 4, 209, 56, 26, 211, 99, 33, 6, 1, 223, 112, 4, 237, 183,
+ 26, 211, 99, 33, 6, 1, 223, 112, 4, 209, 56, 26, 210, 126, 33, 6, 1, 223,
+ 112, 4, 237, 183, 26, 210, 126, 33, 2, 1, 211, 215, 4, 209, 55, 33, 2, 1,
+ 211, 215, 4, 237, 182, 33, 2, 1, 211, 215, 4, 209, 56, 26, 196, 138, 33,
+ 2, 1, 211, 215, 4, 237, 183, 26, 196, 138, 33, 2, 1, 211, 215, 4, 209,
+ 56, 26, 211, 99, 33, 2, 1, 211, 215, 4, 237, 183, 26, 211, 99, 33, 6, 1,
+ 211, 215, 4, 209, 55, 33, 6, 1, 211, 215, 4, 237, 182, 33, 6, 1, 211,
+ 215, 4, 209, 56, 26, 196, 138, 33, 6, 1, 211, 215, 4, 237, 183, 26, 196,
+ 138, 33, 6, 1, 211, 215, 4, 209, 56, 26, 211, 99, 33, 6, 1, 211, 215, 4,
+ 237, 183, 26, 211, 99, 33, 2, 1, 197, 35, 4, 209, 55, 33, 2, 1, 197, 35,
+ 4, 237, 182, 33, 2, 1, 197, 35, 4, 209, 56, 26, 196, 138, 33, 2, 1, 197,
+ 35, 4, 237, 183, 26, 196, 138, 33, 2, 1, 197, 35, 4, 209, 56, 26, 211,
+ 99, 33, 2, 1, 197, 35, 4, 237, 183, 26, 211, 99, 33, 2, 1, 197, 35, 4,
+ 209, 56, 26, 210, 126, 33, 2, 1, 197, 35, 4, 237, 183, 26, 210, 126, 33,
+ 6, 1, 197, 35, 4, 237, 182, 33, 6, 1, 197, 35, 4, 237, 183, 26, 196, 138,
+ 33, 6, 1, 197, 35, 4, 237, 183, 26, 211, 99, 33, 6, 1, 197, 35, 4, 237,
+ 183, 26, 210, 126, 33, 2, 1, 211, 217, 4, 209, 55, 33, 2, 1, 211, 217, 4,
+ 237, 182, 33, 2, 1, 211, 217, 4, 209, 56, 26, 196, 138, 33, 2, 1, 211,
+ 217, 4, 237, 183, 26, 196, 138, 33, 2, 1, 211, 217, 4, 209, 56, 26, 211,
+ 99, 33, 2, 1, 211, 217, 4, 237, 183, 26, 211, 99, 33, 2, 1, 211, 217, 4,
+ 209, 56, 26, 210, 126, 33, 2, 1, 211, 217, 4, 237, 183, 26, 210, 126, 33,
+ 6, 1, 211, 217, 4, 209, 55, 33, 6, 1, 211, 217, 4, 237, 182, 33, 6, 1,
+ 211, 217, 4, 209, 56, 26, 196, 138, 33, 6, 1, 211, 217, 4, 237, 183, 26,
+ 196, 138, 33, 6, 1, 211, 217, 4, 209, 56, 26, 211, 99, 33, 6, 1, 211,
+ 217, 4, 237, 183, 26, 211, 99, 33, 6, 1, 211, 217, 4, 209, 56, 26, 210,
+ 126, 33, 6, 1, 211, 217, 4, 237, 183, 26, 210, 126, 33, 2, 1, 250, 253,
+ 4, 196, 138, 33, 2, 1, 250, 253, 4, 211, 99, 33, 2, 1, 234, 33, 4, 196,
+ 138, 33, 2, 1, 234, 33, 4, 211, 99, 33, 2, 1, 233, 241, 4, 196, 138, 33,
+ 2, 1, 233, 241, 4, 211, 99, 33, 2, 1, 223, 112, 4, 196, 138, 33, 2, 1,
+ 223, 112, 4, 211, 99, 33, 2, 1, 211, 215, 4, 196, 138, 33, 2, 1, 211,
+ 215, 4, 211, 99, 33, 2, 1, 197, 35, 4, 196, 138, 33, 2, 1, 197, 35, 4,
+ 211, 99, 33, 2, 1, 211, 217, 4, 196, 138, 33, 2, 1, 211, 217, 4, 211, 99,
+ 33, 2, 1, 250, 253, 4, 209, 56, 26, 192, 222, 33, 2, 1, 250, 253, 4, 237,
+ 183, 26, 192, 222, 33, 2, 1, 250, 253, 4, 209, 56, 26, 196, 139, 26, 192,
+ 222, 33, 2, 1, 250, 253, 4, 237, 183, 26, 196, 139, 26, 192, 222, 33, 2,
+ 1, 250, 253, 4, 209, 56, 26, 211, 100, 26, 192, 222, 33, 2, 1, 250, 253,
+ 4, 237, 183, 26, 211, 100, 26, 192, 222, 33, 2, 1, 250, 253, 4, 209, 56,
+ 26, 210, 127, 26, 192, 222, 33, 2, 1, 250, 253, 4, 237, 183, 26, 210,
+ 127, 26, 192, 222, 33, 6, 1, 250, 253, 4, 209, 56, 26, 209, 69, 33, 6, 1,
+ 250, 253, 4, 237, 183, 26, 209, 69, 33, 6, 1, 250, 253, 4, 209, 56, 26,
+ 196, 139, 26, 209, 69, 33, 6, 1, 250, 253, 4, 237, 183, 26, 196, 139, 26,
+ 209, 69, 33, 6, 1, 250, 253, 4, 209, 56, 26, 211, 100, 26, 209, 69, 33,
+ 6, 1, 250, 253, 4, 237, 183, 26, 211, 100, 26, 209, 69, 33, 6, 1, 250,
+ 253, 4, 209, 56, 26, 210, 127, 26, 209, 69, 33, 6, 1, 250, 253, 4, 237,
+ 183, 26, 210, 127, 26, 209, 69, 33, 2, 1, 233, 241, 4, 209, 56, 26, 192,
+ 222, 33, 2, 1, 233, 241, 4, 237, 183, 26, 192, 222, 33, 2, 1, 233, 241,
+ 4, 209, 56, 26, 196, 139, 26, 192, 222, 33, 2, 1, 233, 241, 4, 237, 183,
+ 26, 196, 139, 26, 192, 222, 33, 2, 1, 233, 241, 4, 209, 56, 26, 211, 100,
+ 26, 192, 222, 33, 2, 1, 233, 241, 4, 237, 183, 26, 211, 100, 26, 192,
+ 222, 33, 2, 1, 233, 241, 4, 209, 56, 26, 210, 127, 26, 192, 222, 33, 2,
+ 1, 233, 241, 4, 237, 183, 26, 210, 127, 26, 192, 222, 33, 6, 1, 233, 241,
+ 4, 209, 56, 26, 209, 69, 33, 6, 1, 233, 241, 4, 237, 183, 26, 209, 69,
+ 33, 6, 1, 233, 241, 4, 209, 56, 26, 196, 139, 26, 209, 69, 33, 6, 1, 233,
+ 241, 4, 237, 183, 26, 196, 139, 26, 209, 69, 33, 6, 1, 233, 241, 4, 209,
+ 56, 26, 211, 100, 26, 209, 69, 33, 6, 1, 233, 241, 4, 237, 183, 26, 211,
+ 100, 26, 209, 69, 33, 6, 1, 233, 241, 4, 209, 56, 26, 210, 127, 26, 209,
+ 69, 33, 6, 1, 233, 241, 4, 237, 183, 26, 210, 127, 26, 209, 69, 33, 2, 1,
+ 211, 217, 4, 209, 56, 26, 192, 222, 33, 2, 1, 211, 217, 4, 237, 183, 26,
+ 192, 222, 33, 2, 1, 211, 217, 4, 209, 56, 26, 196, 139, 26, 192, 222, 33,
+ 2, 1, 211, 217, 4, 237, 183, 26, 196, 139, 26, 192, 222, 33, 2, 1, 211,
+ 217, 4, 209, 56, 26, 211, 100, 26, 192, 222, 33, 2, 1, 211, 217, 4, 237,
+ 183, 26, 211, 100, 26, 192, 222, 33, 2, 1, 211, 217, 4, 209, 56, 26, 210,
+ 127, 26, 192, 222, 33, 2, 1, 211, 217, 4, 237, 183, 26, 210, 127, 26,
+ 192, 222, 33, 6, 1, 211, 217, 4, 209, 56, 26, 209, 69, 33, 6, 1, 211,
+ 217, 4, 237, 183, 26, 209, 69, 33, 6, 1, 211, 217, 4, 209, 56, 26, 196,
+ 139, 26, 209, 69, 33, 6, 1, 211, 217, 4, 237, 183, 26, 196, 139, 26, 209,
+ 69, 33, 6, 1, 211, 217, 4, 209, 56, 26, 211, 100, 26, 209, 69, 33, 6, 1,
+ 211, 217, 4, 237, 183, 26, 211, 100, 26, 209, 69, 33, 6, 1, 211, 217, 4,
+ 209, 56, 26, 210, 127, 26, 209, 69, 33, 6, 1, 211, 217, 4, 237, 183, 26,
+ 210, 127, 26, 209, 69, 33, 2, 1, 250, 253, 4, 195, 227, 33, 2, 1, 250,
+ 253, 4, 217, 214, 33, 2, 1, 250, 253, 4, 196, 139, 26, 192, 222, 33, 2,
+ 1, 250, 253, 4, 192, 222, 33, 2, 1, 250, 253, 4, 211, 100, 26, 192, 222,
+ 33, 2, 1, 250, 253, 4, 210, 126, 33, 2, 1, 250, 253, 4, 210, 127, 26,
+ 192, 222, 33, 6, 1, 250, 253, 4, 195, 227, 33, 6, 1, 250, 253, 4, 217,
+ 214, 33, 6, 1, 250, 253, 4, 196, 138, 33, 6, 1, 250, 253, 4, 211, 99, 33,
+ 6, 1, 250, 253, 4, 209, 69, 33, 221, 78, 33, 209, 69, 33, 209, 55, 33,
+ 210, 126, 33, 237, 8, 26, 210, 126, 33, 2, 1, 233, 241, 4, 196, 139, 26,
+ 192, 222, 33, 2, 1, 233, 241, 4, 192, 222, 33, 2, 1, 233, 241, 4, 211,
+ 100, 26, 192, 222, 33, 2, 1, 233, 241, 4, 210, 126, 33, 2, 1, 233, 241,
+ 4, 210, 127, 26, 192, 222, 33, 6, 1, 234, 33, 4, 196, 138, 33, 6, 1, 234,
+ 33, 4, 211, 99, 33, 6, 1, 233, 241, 4, 196, 138, 33, 6, 1, 233, 241, 4,
+ 211, 99, 33, 6, 1, 233, 241, 4, 209, 69, 33, 209, 56, 26, 196, 138, 33,
+ 209, 56, 26, 211, 99, 33, 209, 56, 26, 210, 126, 33, 2, 1, 223, 112, 4,
+ 195, 227, 33, 2, 1, 223, 112, 4, 217, 214, 33, 2, 1, 223, 112, 4, 237, 8,
+ 26, 196, 138, 33, 2, 1, 223, 112, 4, 237, 8, 26, 211, 99, 33, 2, 1, 223,
+ 112, 4, 210, 126, 33, 2, 1, 223, 112, 4, 237, 8, 26, 210, 126, 33, 6, 1,
+ 223, 112, 4, 195, 227, 33, 6, 1, 223, 112, 4, 217, 214, 33, 6, 1, 223,
+ 112, 4, 196, 138, 33, 6, 1, 223, 112, 4, 211, 99, 33, 237, 183, 26, 196,
+ 138, 33, 237, 183, 26, 211, 99, 33, 237, 183, 26, 210, 126, 33, 2, 1,
+ 197, 35, 4, 195, 227, 33, 2, 1, 197, 35, 4, 217, 214, 33, 2, 1, 197, 35,
+ 4, 237, 8, 26, 196, 138, 33, 2, 1, 197, 35, 4, 237, 8, 26, 211, 99, 33,
+ 2, 1, 207, 154, 4, 209, 55, 33, 2, 1, 207, 154, 4, 237, 182, 33, 2, 1,
+ 197, 35, 4, 210, 126, 33, 2, 1, 197, 35, 4, 237, 8, 26, 210, 126, 33, 6,
+ 1, 197, 35, 4, 195, 227, 33, 6, 1, 197, 35, 4, 217, 214, 33, 6, 1, 197,
+ 35, 4, 196, 138, 33, 6, 1, 197, 35, 4, 211, 99, 33, 6, 1, 207, 154, 4,
+ 237, 182, 33, 237, 8, 26, 196, 138, 33, 237, 8, 26, 211, 99, 33, 196,
+ 138, 33, 2, 1, 211, 217, 4, 196, 139, 26, 192, 222, 33, 2, 1, 211, 217,
+ 4, 192, 222, 33, 2, 1, 211, 217, 4, 211, 100, 26, 192, 222, 33, 2, 1,
+ 211, 217, 4, 210, 126, 33, 2, 1, 211, 217, 4, 210, 127, 26, 192, 222, 33,
+ 6, 1, 211, 215, 4, 196, 138, 33, 6, 1, 211, 215, 4, 211, 99, 33, 6, 1,
+ 211, 217, 4, 196, 138, 33, 6, 1, 211, 217, 4, 211, 99, 33, 6, 1, 211,
+ 217, 4, 209, 69, 33, 211, 99, 33, 237, 182, 234, 89, 208, 174, 234, 100,
+ 208, 174, 234, 89, 202, 160, 234, 100, 202, 160, 199, 154, 202, 160, 232,
+ 117, 202, 160, 203, 39, 202, 160, 233, 1, 202, 160, 209, 38, 202, 160,
+ 199, 195, 202, 160, 230, 87, 202, 160, 192, 77, 194, 61, 202, 160, 192,
+ 77, 194, 61, 213, 128, 192, 77, 194, 61, 222, 228, 220, 19, 77, 207, 92,
+ 77, 228, 111, 213, 129, 228, 111, 233, 1, 237, 185, 234, 89, 237, 185,
+ 234, 100, 237, 185, 229, 5, 161, 55, 84, 219, 175, 55, 132, 219, 175, 46,
+ 203, 74, 208, 142, 77, 51, 203, 74, 208, 142, 77, 203, 74, 219, 51, 208,
+ 142, 77, 203, 74, 229, 152, 208, 142, 77, 46, 55, 208, 142, 77, 51, 55,
+ 208, 142, 77, 55, 219, 51, 208, 142, 77, 55, 229, 152, 208, 142, 77, 237,
+ 238, 55, 237, 238, 247, 106, 198, 182, 247, 106, 90, 78, 220, 40, 103,
+ 78, 220, 40, 229, 5, 234, 105, 228, 109, 209, 191, 219, 176, 204, 165,
+ 210, 244, 204, 165, 220, 19, 234, 98, 207, 92, 234, 98, 209, 169, 236,
+ 204, 232, 134, 220, 19, 211, 107, 207, 92, 211, 107, 215, 50, 213, 136,
+ 202, 160, 210, 134, 216, 126, 57, 210, 134, 200, 31, 199, 165, 57, 209,
+ 99, 55, 209, 99, 198, 170, 209, 99, 207, 168, 209, 99, 207, 168, 55, 209,
+ 99, 207, 168, 198, 170, 209, 99, 246, 211, 203, 74, 220, 23, 250, 208,
+ 208, 142, 77, 203, 74, 207, 96, 250, 208, 208, 142, 77, 207, 233, 77, 55,
+ 233, 204, 77, 223, 130, 211, 109, 197, 64, 246, 100, 199, 113, 246, 212,
+ 223, 147, 209, 191, 250, 35, 228, 112, 247, 106, 232, 109, 203, 4, 46,
+ 50, 247, 165, 4, 208, 153, 51, 50, 247, 165, 4, 208, 153, 55, 208, 159,
+ 77, 208, 159, 233, 204, 77, 233, 204, 208, 159, 77, 199, 66, 3, 233, 242,
+ 207, 168, 210, 9, 57, 60, 114, 247, 106, 60, 94, 247, 106, 132, 250, 37,
+ 207, 168, 204, 180, 242, 85, 197, 41, 103, 250, 36, 251, 12, 196, 54,
+ 242, 36, 216, 113, 57, 201, 58, 237, 185, 223, 121, 197, 64, 232, 176,
+ 209, 38, 77, 112, 78, 209, 37, 208, 170, 209, 99, 232, 119, 78, 209, 37,
+ 232, 214, 78, 209, 37, 103, 78, 209, 37, 232, 119, 78, 77, 235, 111, 238,
+ 183, 198, 181, 84, 232, 119, 236, 111, 217, 31, 13, 202, 160, 194, 11,
+ 222, 228, 232, 69, 250, 142, 223, 119, 199, 82, 223, 119, 204, 165, 223,
+ 119, 209, 206, 220, 19, 223, 88, 207, 92, 223, 88, 232, 226, 201, 194,
+ 223, 88, 209, 169, 236, 204, 223, 88, 223, 160, 201, 4, 201, 76, 251,
+ 132, 201, 4, 201, 76, 223, 160, 9, 232, 136, 204, 32, 251, 132, 9, 232,
+ 136, 204, 32, 215, 44, 17, 204, 33, 213, 132, 17, 204, 33, 201, 107, 192,
+ 76, 201, 107, 8, 2, 1, 70, 201, 107, 134, 201, 107, 151, 201, 107, 170,
+ 201, 107, 179, 201, 107, 174, 201, 107, 182, 201, 107, 102, 57, 201, 107,
+ 216, 112, 201, 107, 234, 30, 57, 201, 107, 46, 210, 230, 201, 107, 51,
+ 210, 230, 201, 107, 8, 2, 1, 215, 151, 201, 155, 192, 76, 201, 155, 101,
+ 201, 155, 104, 201, 155, 133, 201, 155, 134, 201, 155, 151, 201, 155,
+ 170, 201, 155, 179, 201, 155, 174, 201, 155, 182, 201, 155, 102, 57, 201,
+ 155, 216, 112, 201, 155, 234, 30, 57, 201, 155, 46, 210, 230, 201, 155,
+ 51, 210, 230, 8, 201, 155, 2, 1, 64, 8, 201, 155, 2, 1, 71, 8, 201, 155,
+ 2, 1, 74, 8, 201, 155, 2, 1, 193, 223, 8, 201, 155, 2, 1, 205, 240, 8,
+ 201, 155, 2, 1, 230, 124, 8, 201, 155, 2, 1, 222, 184, 8, 201, 155, 2, 1,
+ 165, 8, 201, 155, 2, 1, 218, 236, 8, 201, 155, 2, 1, 215, 151, 8, 201,
+ 155, 2, 1, 211, 93, 8, 201, 155, 2, 1, 206, 158, 8, 201, 155, 2, 1, 200,
+ 228, 233, 221, 57, 242, 48, 57, 238, 167, 57, 232, 97, 232, 102, 57, 219,
+ 155, 57, 216, 127, 57, 215, 68, 57, 210, 111, 57, 206, 186, 57, 194, 19,
+ 57, 214, 177, 203, 254, 57, 236, 122, 57, 233, 222, 57, 221, 173, 57,
+ 198, 32, 57, 235, 89, 57, 231, 131, 210, 147, 57, 210, 108, 57, 230, 181,
+ 57, 249, 254, 57, 228, 187, 57, 246, 153, 57, 219, 145, 198, 229, 57,
+ 202, 140, 57, 200, 28, 57, 223, 175, 206, 186, 57, 198, 11, 219, 155, 57,
+ 213, 118, 122, 57, 217, 158, 57, 206, 209, 57, 220, 69, 57, 248, 0, 57,
+ 38, 46, 230, 22, 58, 38, 51, 230, 22, 58, 38, 184, 84, 219, 176, 211,
+ 110, 38, 203, 195, 84, 219, 176, 211, 110, 38, 250, 182, 61, 58, 38, 242,
+ 86, 61, 58, 38, 46, 61, 58, 38, 51, 61, 58, 38, 207, 82, 211, 110, 38,
+ 242, 86, 207, 82, 211, 110, 38, 250, 182, 207, 82, 211, 110, 38, 112,
+ 236, 112, 58, 38, 232, 119, 236, 112, 58, 38, 234, 84, 242, 130, 38, 234,
+ 84, 202, 106, 38, 234, 84, 237, 4, 38, 234, 84, 242, 131, 248, 247, 38,
+ 46, 51, 61, 58, 38, 234, 84, 205, 231, 38, 234, 84, 221, 253, 38, 234,
+ 84, 197, 32, 209, 188, 198, 185, 38, 207, 169, 202, 190, 211, 110, 38,
+ 55, 84, 201, 208, 211, 110, 38, 250, 192, 109, 38, 198, 170, 197, 66, 38,
+ 194, 64, 247, 143, 58, 38, 114, 61, 211, 110, 38, 184, 55, 202, 190, 211,
+ 110, 38, 94, 230, 22, 4, 173, 235, 91, 38, 114, 230, 22, 4, 173, 235, 91,
+ 38, 46, 61, 63, 38, 51, 61, 63, 38, 250, 38, 58, 251, 138, 211, 251, 251,
+ 121, 115, 199, 225, 201, 165, 235, 102, 6, 247, 52, 237, 95, 246, 143,
+ 246, 138, 219, 176, 109, 246, 213, 211, 251, 247, 11, 197, 76, 233, 223,
+ 239, 3, 205, 227, 237, 95, 233, 79, 27, 2, 232, 44, 27, 6, 230, 124, 247,
+ 246, 6, 230, 124, 235, 102, 6, 230, 124, 209, 227, 239, 3, 209, 227, 239,
+ 4, 136, 103, 210, 51, 27, 6, 70, 247, 246, 6, 70, 27, 6, 165, 27, 2, 165,
+ 220, 202, 76, 248, 194, 109, 235, 102, 6, 215, 151, 212, 232, 57, 202,
+ 174, 207, 245, 238, 226, 27, 6, 211, 93, 235, 102, 6, 211, 93, 235, 102,
+ 6, 208, 247, 27, 6, 150, 247, 246, 6, 150, 235, 102, 6, 150, 209, 107,
+ 200, 140, 207, 181, 204, 156, 77, 200, 42, 57, 198, 219, 122, 57, 196,
+ 106, 235, 102, 6, 192, 155, 211, 129, 57, 211, 240, 57, 223, 121, 211,
+ 240, 57, 247, 246, 6, 192, 155, 163, 33, 2, 1, 223, 111, 222, 38, 57,
+ 250, 202, 57, 27, 6, 249, 226, 247, 246, 6, 247, 52, 233, 247, 109, 27,
+ 2, 71, 27, 6, 71, 27, 6, 233, 163, 163, 6, 233, 163, 27, 6, 218, 236, 27,
+ 2, 74, 157, 109, 248, 66, 109, 231, 32, 109, 237, 222, 109, 223, 165,
+ 202, 172, 207, 16, 6, 208, 247, 233, 82, 57, 235, 102, 2, 210, 51, 235,
+ 102, 2, 231, 204, 235, 102, 6, 231, 204, 235, 102, 6, 210, 51, 235, 102,
+ 215, 150, 201, 126, 163, 49, 6, 232, 44, 163, 49, 6, 165, 207, 168, 49,
+ 6, 165, 163, 49, 6, 193, 148, 235, 102, 43, 6, 238, 95, 235, 102, 43, 2,
+ 238, 95, 235, 102, 43, 2, 71, 235, 102, 43, 2, 70, 235, 102, 43, 2, 223,
+ 65, 209, 73, 219, 175, 163, 250, 229, 210, 134, 57, 251, 38, 163, 2, 233,
+ 163, 16, 39, 206, 49, 202, 172, 194, 220, 232, 109, 90, 204, 142, 194,
+ 220, 232, 109, 90, 214, 9, 194, 220, 232, 109, 90, 200, 21, 194, 220,
+ 232, 109, 90, 199, 191, 194, 220, 232, 109, 103, 199, 188, 194, 220, 232,
+ 109, 90, 233, 6, 194, 220, 232, 109, 103, 233, 5, 194, 220, 232, 109,
+ 112, 233, 5, 194, 220, 232, 109, 232, 119, 233, 5, 194, 220, 232, 109,
+ 90, 203, 29, 194, 220, 232, 109, 232, 214, 203, 27, 194, 220, 232, 109,
+ 90, 234, 143, 194, 220, 232, 109, 112, 234, 141, 194, 220, 232, 109, 232,
+ 214, 234, 141, 194, 220, 232, 109, 204, 146, 234, 141, 232, 109, 212,
+ 233, 101, 207, 30, 212, 234, 101, 207, 30, 212, 234, 104, 207, 30, 212,
+ 234, 133, 207, 30, 212, 234, 134, 207, 30, 212, 234, 151, 207, 30, 212,
+ 234, 170, 207, 30, 212, 234, 179, 207, 30, 212, 234, 174, 207, 30, 212,
+ 234, 182, 207, 30, 212, 234, 200, 30, 207, 30, 212, 234, 234, 111, 207,
+ 30, 212, 234, 197, 244, 207, 30, 212, 234, 233, 3, 207, 30, 212, 234, 90,
+ 228, 162, 207, 30, 212, 234, 232, 214, 228, 162, 207, 30, 212, 234, 90,
+ 180, 2, 207, 30, 212, 234, 101, 2, 207, 30, 212, 234, 104, 2, 207, 30,
+ 212, 234, 133, 2, 207, 30, 212, 234, 134, 2, 207, 30, 212, 234, 151, 2,
+ 207, 30, 212, 234, 170, 2, 207, 30, 212, 234, 179, 2, 207, 30, 212, 234,
+ 174, 2, 207, 30, 212, 234, 182, 2, 207, 30, 212, 234, 200, 30, 2, 207,
+ 30, 212, 234, 234, 111, 2, 207, 30, 212, 234, 197, 244, 2, 207, 30, 212,
+ 234, 233, 3, 2, 207, 30, 212, 234, 90, 228, 162, 2, 207, 30, 212, 234,
+ 232, 214, 228, 162, 2, 207, 30, 212, 234, 90, 180, 207, 30, 212, 234, 90,
+ 199, 165, 247, 53, 238, 95, 207, 30, 212, 234, 232, 214, 180, 207, 30,
+ 212, 234, 200, 31, 180, 207, 30, 212, 234, 207, 168, 90, 228, 162, 8, 2,
+ 1, 207, 168, 247, 52, 207, 30, 212, 234, 203, 41, 220, 64, 20, 207, 30,
+ 212, 234, 233, 4, 234, 192, 20, 207, 30, 212, 234, 233, 4, 180, 207, 30,
+ 212, 234, 90, 228, 163, 180, 194, 220, 232, 109, 192, 77, 199, 188, 163,
+ 17, 104, 163, 17, 133, 114, 54, 197, 30, 54, 94, 54, 235, 92, 54, 46, 51,
+ 54, 130, 142, 54, 178, 194, 91, 54, 178, 234, 186, 54, 202, 171, 234,
+ 186, 54, 202, 171, 194, 91, 54, 114, 61, 4, 111, 94, 61, 4, 111, 114,
+ 194, 125, 54, 94, 194, 125, 54, 114, 103, 229, 243, 54, 197, 30, 103,
+ 229, 243, 54, 94, 103, 229, 243, 54, 235, 92, 103, 229, 243, 54, 114, 61,
+ 4, 200, 147, 94, 61, 4, 200, 147, 114, 61, 232, 89, 161, 197, 30, 61,
+ 232, 89, 161, 94, 61, 232, 89, 161, 235, 92, 61, 232, 89, 161, 130, 142,
+ 61, 4, 248, 180, 114, 61, 4, 128, 94, 61, 4, 128, 114, 61, 4, 219, 69,
+ 94, 61, 4, 219, 69, 46, 51, 194, 125, 54, 46, 51, 61, 4, 111, 235, 92,
+ 192, 21, 54, 197, 30, 61, 4, 199, 74, 220, 18, 197, 30, 61, 4, 199, 74,
+ 207, 90, 235, 92, 61, 4, 199, 74, 220, 18, 235, 92, 61, 4, 199, 74, 207,
+ 90, 94, 61, 4, 238, 224, 235, 91, 235, 92, 61, 4, 238, 224, 220, 18, 250,
+ 182, 198, 249, 204, 183, 54, 242, 86, 198, 249, 204, 183, 54, 178, 194,
+ 91, 61, 115, 184, 161, 114, 61, 115, 248, 194, 136, 94, 61, 115, 161,
+ 250, 182, 211, 184, 242, 131, 54, 242, 86, 211, 184, 242, 131, 54, 114,
+ 230, 22, 4, 173, 197, 29, 114, 230, 22, 4, 173, 235, 91, 197, 30, 230,
+ 22, 4, 173, 207, 90, 197, 30, 230, 22, 4, 173, 220, 18, 94, 230, 22, 4,
+ 173, 197, 29, 94, 230, 22, 4, 173, 235, 91, 235, 92, 230, 22, 4, 173,
+ 207, 90, 235, 92, 230, 22, 4, 173, 220, 18, 94, 61, 136, 114, 54, 197,
+ 30, 61, 114, 80, 235, 92, 54, 114, 61, 136, 94, 54, 114, 211, 53, 250,
+ 73, 197, 30, 211, 53, 250, 73, 94, 211, 53, 250, 73, 235, 92, 211, 53,
+ 250, 73, 114, 230, 22, 136, 94, 230, 21, 94, 230, 22, 136, 114, 230, 21,
+ 114, 55, 61, 4, 111, 46, 51, 55, 61, 4, 111, 94, 55, 61, 4, 111, 114, 55,
+ 54, 197, 30, 55, 54, 94, 55, 54, 235, 92, 55, 54, 46, 51, 55, 54, 130,
+ 142, 55, 54, 178, 194, 91, 55, 54, 178, 234, 186, 55, 54, 202, 171, 234,
+ 186, 55, 54, 202, 171, 194, 91, 55, 54, 114, 198, 170, 54, 94, 198, 170,
+ 54, 114, 202, 99, 54, 94, 202, 99, 54, 197, 30, 61, 4, 55, 111, 235, 92,
+ 61, 4, 55, 111, 114, 237, 184, 54, 197, 30, 237, 184, 54, 94, 237, 184,
+ 54, 235, 92, 237, 184, 54, 114, 61, 115, 161, 94, 61, 115, 161, 114, 62,
+ 54, 197, 30, 62, 54, 94, 62, 54, 235, 92, 62, 54, 197, 30, 62, 61, 232,
+ 89, 161, 197, 30, 62, 61, 211, 212, 210, 171, 197, 30, 62, 61, 211, 212,
+ 210, 172, 4, 229, 5, 161, 197, 30, 62, 61, 211, 212, 210, 172, 4, 84,
+ 161, 197, 30, 62, 55, 54, 197, 30, 62, 55, 61, 211, 212, 210, 171, 94,
+ 62, 61, 232, 89, 194, 151, 178, 194, 91, 61, 115, 238, 223, 202, 171,
+ 234, 186, 61, 115, 238, 223, 130, 142, 62, 54, 51, 61, 4, 2, 242, 130,
+ 235, 92, 61, 114, 80, 197, 30, 54, 112, 94, 250, 73, 114, 61, 4, 84, 111,
+ 94, 61, 4, 84, 111, 46, 51, 61, 4, 84, 111, 114, 61, 4, 55, 84, 111, 94,
+ 61, 4, 55, 84, 111, 46, 51, 61, 4, 55, 84, 111, 114, 211, 181, 54, 94,
+ 211, 181, 54, 46, 51, 211, 181, 54, 39, 251, 8, 242, 32, 210, 222, 236,
+ 244, 199, 215, 233, 199, 199, 215, 236, 136, 213, 111, 233, 200, 234, 90,
+ 204, 151, 223, 179, 215, 79, 234, 116, 211, 251, 213, 111, 250, 225, 234,
+ 116, 211, 251, 2, 234, 116, 211, 251, 238, 253, 250, 62, 217, 9, 236,
+ 136, 213, 111, 238, 255, 250, 62, 217, 9, 2, 238, 253, 250, 62, 217, 9,
+ 234, 80, 80, 209, 75, 215, 150, 209, 85, 215, 150, 238, 230, 215, 150,
+ 201, 126, 216, 113, 57, 216, 111, 57, 78, 209, 206, 236, 172, 203, 4,
+ 204, 152, 216, 112, 250, 38, 211, 173, 207, 82, 211, 173, 247, 107, 211,
+ 173, 50, 207, 22, 238, 158, 207, 22, 232, 112, 207, 22, 209, 71, 155,
+ 223, 167, 51, 250, 207, 250, 207, 217, 42, 250, 207, 202, 139, 250, 207,
+ 236, 175, 236, 136, 213, 111, 236, 179, 210, 236, 155, 213, 111, 210,
+ 236, 155, 219, 93, 250, 217, 219, 93, 211, 163, 223, 127, 197, 56, 223,
+ 141, 55, 223, 141, 198, 170, 223, 141, 238, 247, 223, 141, 201, 96, 223,
+ 141, 195, 239, 223, 141, 242, 86, 223, 141, 242, 86, 238, 247, 223, 141,
+ 250, 182, 238, 247, 223, 141, 199, 214, 248, 110, 208, 18, 209, 72, 78,
+ 216, 112, 233, 207, 231, 137, 209, 72, 229, 20, 199, 91, 211, 173, 207,
+ 168, 199, 90, 223, 121, 220, 49, 206, 158, 203, 76, 194, 124, 193, 254,
+ 209, 85, 213, 111, 199, 90, 216, 113, 199, 90, 250, 30, 187, 155, 213,
+ 111, 250, 30, 187, 155, 250, 138, 187, 155, 250, 138, 247, 77, 213, 111,
+ 251, 131, 187, 155, 214, 198, 250, 138, 213, 120, 251, 131, 187, 155,
+ 251, 1, 187, 155, 213, 111, 251, 1, 187, 155, 251, 1, 187, 211, 164, 187,
+ 155, 198, 170, 199, 90, 251, 9, 187, 155, 234, 23, 155, 231, 136, 234,
+ 23, 155, 236, 245, 248, 60, 250, 140, 199, 225, 219, 183, 231, 136, 187,
+ 155, 250, 138, 187, 115, 211, 164, 199, 225, 223, 206, 211, 251, 223,
+ 206, 80, 211, 164, 250, 138, 187, 155, 242, 48, 234, 29, 234, 30, 242,
+ 47, 207, 82, 223, 191, 187, 155, 207, 82, 187, 155, 238, 216, 155, 233,
+ 246, 234, 28, 155, 202, 20, 234, 29, 237, 77, 187, 155, 187, 115, 247,
+ 64, 237, 96, 217, 42, 247, 63, 208, 157, 187, 155, 213, 111, 187, 155,
+ 228, 41, 155, 213, 111, 228, 41, 155, 201, 215, 234, 23, 155, 219, 240,
+ 211, 164, 187, 155, 230, 204, 211, 164, 187, 155, 219, 240, 136, 187,
+ 155, 230, 204, 136, 187, 155, 219, 240, 247, 77, 213, 111, 187, 155, 230,
+ 204, 247, 77, 213, 111, 187, 155, 215, 231, 219, 239, 215, 231, 230, 203,
+ 248, 60, 213, 111, 234, 23, 155, 213, 111, 219, 239, 213, 111, 230, 203,
+ 214, 198, 219, 240, 213, 120, 187, 155, 214, 198, 230, 204, 213, 120,
+ 187, 155, 219, 240, 211, 164, 234, 23, 155, 230, 204, 211, 164, 234, 23,
+ 155, 214, 198, 219, 240, 213, 120, 234, 23, 155, 214, 198, 230, 204, 213,
+ 120, 234, 23, 155, 219, 240, 211, 164, 230, 203, 230, 204, 211, 164, 219,
+ 239, 214, 198, 219, 240, 213, 120, 230, 203, 214, 198, 230, 204, 213,
+ 120, 219, 239, 209, 115, 201, 145, 209, 116, 211, 164, 187, 155, 201,
+ 146, 211, 164, 187, 155, 209, 116, 211, 164, 234, 23, 155, 201, 146, 211,
+ 164, 234, 23, 155, 236, 136, 213, 111, 209, 118, 236, 136, 213, 111, 201,
+ 147, 201, 154, 211, 251, 201, 106, 211, 251, 213, 111, 41, 201, 154, 211,
+ 251, 213, 111, 41, 201, 106, 211, 251, 201, 154, 80, 211, 164, 187, 155,
+ 201, 106, 80, 211, 164, 187, 155, 214, 198, 41, 201, 154, 80, 213, 120,
+ 187, 155, 214, 198, 41, 201, 106, 80, 213, 120, 187, 155, 201, 154, 80,
+ 4, 213, 111, 187, 155, 201, 106, 80, 4, 213, 111, 187, 155, 215, 211,
+ 215, 212, 215, 213, 215, 212, 197, 56, 50, 223, 206, 211, 251, 50, 211,
+ 154, 211, 251, 50, 223, 206, 80, 211, 164, 187, 155, 50, 211, 154, 80,
+ 211, 164, 187, 155, 50, 246, 226, 50, 238, 148, 47, 209, 206, 47, 216,
+ 112, 47, 199, 82, 47, 236, 172, 203, 4, 47, 78, 211, 173, 47, 207, 82,
+ 211, 173, 47, 250, 38, 211, 173, 47, 234, 29, 47, 237, 185, 108, 209,
+ 206, 108, 216, 112, 108, 199, 82, 108, 78, 211, 173, 51, 200, 159, 46,
+ 200, 159, 142, 200, 159, 130, 200, 159, 250, 41, 216, 80, 198, 147, 232,
+ 142, 198, 170, 84, 248, 194, 51, 198, 8, 55, 84, 248, 194, 55, 51, 198,
+ 8, 236, 136, 213, 111, 209, 65, 213, 111, 198, 147, 236, 136, 213, 111,
+ 232, 143, 214, 201, 55, 84, 248, 194, 55, 51, 198, 8, 209, 116, 197, 69,
+ 207, 215, 201, 146, 197, 69, 207, 215, 213, 117, 201, 168, 211, 251, 238,
+ 253, 250, 62, 213, 117, 201, 167, 213, 117, 201, 168, 80, 211, 164, 187,
+ 155, 238, 253, 250, 62, 213, 117, 201, 168, 211, 164, 187, 155, 211, 154,
+ 211, 251, 223, 206, 211, 251, 215, 218, 229, 199, 239, 8, 217, 98, 223,
+ 138, 193, 181, 215, 59, 213, 119, 51, 250, 208, 4, 250, 114, 51, 198,
+ 185, 215, 150, 219, 93, 250, 217, 215, 150, 219, 93, 211, 163, 215, 150,
+ 223, 127, 215, 150, 197, 56, 237, 5, 211, 173, 78, 211, 173, 202, 20,
+ 211, 173, 236, 172, 199, 82, 247, 174, 46, 213, 117, 233, 81, 204, 179,
+ 209, 85, 51, 213, 117, 233, 81, 204, 179, 209, 85, 46, 204, 179, 209, 85,
+ 51, 204, 179, 209, 85, 207, 168, 199, 91, 234, 29, 238, 138, 219, 93,
+ 211, 163, 238, 138, 219, 93, 250, 217, 55, 201, 153, 55, 201, 105, 55,
+ 223, 127, 55, 197, 56, 209, 239, 187, 26, 210, 236, 155, 219, 240, 4,
+ 236, 114, 230, 204, 4, 236, 114, 196, 53, 215, 231, 219, 239, 196, 53,
+ 215, 231, 230, 203, 219, 240, 187, 115, 211, 164, 230, 203, 230, 204,
+ 187, 115, 211, 164, 219, 239, 187, 115, 211, 164, 219, 239, 187, 115,
+ 211, 164, 230, 203, 187, 115, 211, 164, 209, 115, 187, 115, 211, 164,
+ 201, 145, 236, 136, 213, 111, 209, 119, 211, 164, 234, 31, 236, 136, 213,
+ 111, 201, 148, 211, 164, 234, 31, 213, 111, 50, 223, 206, 80, 211, 164,
+ 187, 155, 213, 111, 50, 211, 154, 80, 211, 164, 187, 155, 50, 223, 206,
+ 80, 211, 164, 213, 111, 187, 155, 50, 211, 154, 80, 211, 164, 213, 111,
+ 187, 155, 219, 240, 247, 77, 213, 111, 234, 23, 155, 230, 204, 247, 77,
+ 213, 111, 234, 23, 155, 209, 116, 247, 77, 213, 111, 234, 23, 155, 201,
+ 146, 247, 77, 213, 111, 234, 23, 155, 213, 111, 213, 117, 201, 168, 211,
+ 251, 236, 136, 213, 111, 238, 255, 250, 62, 213, 117, 201, 167, 213, 111,
+ 213, 117, 201, 168, 80, 211, 164, 187, 155, 236, 136, 213, 111, 238, 255,
+ 250, 62, 213, 117, 201, 168, 211, 164, 234, 31, 84, 234, 105, 216, 158,
+ 229, 5, 234, 105, 130, 51, 237, 11, 234, 105, 142, 51, 237, 11, 234, 105,
+ 234, 116, 80, 4, 184, 229, 5, 111, 234, 116, 80, 4, 84, 248, 194, 250,
+ 27, 234, 80, 80, 229, 5, 111, 2, 234, 116, 80, 4, 84, 248, 194, 250, 27,
+ 234, 80, 80, 229, 5, 111, 234, 116, 80, 4, 78, 58, 234, 116, 80, 4, 211,
+ 117, 2, 234, 116, 80, 4, 211, 117, 234, 116, 80, 4, 197, 67, 234, 116,
+ 80, 4, 103, 229, 5, 201, 195, 238, 253, 4, 184, 229, 5, 111, 238, 253, 4,
+ 84, 248, 194, 250, 27, 234, 80, 80, 229, 5, 111, 2, 238, 253, 4, 84, 248,
+ 194, 250, 27, 234, 80, 80, 229, 5, 111, 238, 253, 4, 211, 117, 2, 238,
+ 253, 4, 211, 117, 192, 156, 213, 109, 248, 237, 217, 8, 237, 6, 57, 234,
+ 119, 54, 228, 193, 130, 250, 77, 142, 250, 77, 209, 79, 210, 114, 194,
+ 121, 219, 175, 46, 246, 146, 51, 246, 146, 46, 232, 182, 51, 232, 182,
+ 247, 188, 51, 238, 185, 247, 188, 46, 238, 185, 198, 249, 51, 238, 185,
+ 198, 249, 46, 238, 185, 207, 168, 213, 111, 57, 50, 219, 43, 250, 114,
+ 205, 198, 205, 207, 200, 42, 207, 246, 209, 160, 223, 172, 196, 26, 202,
+ 106, 209, 232, 80, 223, 137, 57, 163, 213, 111, 57, 194, 131, 228, 195,
+ 198, 249, 46, 238, 223, 198, 249, 51, 238, 223, 247, 188, 46, 238, 223,
+ 247, 188, 51, 238, 223, 198, 249, 138, 223, 141, 247, 188, 138, 223, 141,
+ 232, 84, 202, 231, 130, 250, 78, 248, 61, 103, 229, 5, 248, 182, 211,
+ 166, 222, 1, 234, 19, 115, 199, 225, 207, 101, 193, 224, 223, 191, 41,
+ 207, 243, 247, 173, 221, 255, 220, 23, 250, 208, 186, 207, 96, 250, 208,
+ 186, 234, 19, 115, 199, 225, 220, 28, 248, 72, 207, 81, 238, 105, 251, 9,
+ 250, 86, 201, 3, 198, 234, 206, 191, 236, 224, 211, 155, 239, 12, 200,
+ 114, 202, 245, 238, 212, 238, 211, 250, 157, 232, 67, 16, 228, 90, 250,
+ 157, 232, 67, 16, 202, 97, 208, 174, 250, 157, 232, 67, 16, 208, 175,
+ 234, 31, 250, 157, 232, 67, 16, 208, 175, 236, 179, 250, 157, 232, 67,
+ 16, 208, 175, 237, 4, 250, 157, 232, 67, 16, 208, 175, 222, 220, 250,
+ 157, 232, 67, 16, 208, 175, 242, 130, 250, 157, 232, 67, 16, 242, 131,
+ 201, 246, 250, 157, 232, 67, 16, 242, 131, 222, 220, 250, 157, 232, 67,
+ 16, 203, 5, 161, 250, 157, 232, 67, 16, 248, 248, 161, 250, 157, 232, 67,
+ 16, 208, 175, 203, 4, 250, 157, 232, 67, 16, 208, 175, 248, 247, 250,
+ 157, 232, 67, 16, 208, 175, 219, 239, 250, 157, 232, 67, 16, 208, 175,
+ 230, 203, 250, 157, 232, 67, 16, 114, 196, 145, 250, 157, 232, 67, 16,
+ 94, 196, 145, 250, 157, 232, 67, 16, 208, 175, 114, 54, 250, 157, 232,
+ 67, 16, 208, 175, 94, 54, 250, 157, 232, 67, 16, 242, 131, 248, 247, 250,
+ 157, 232, 67, 16, 142, 200, 160, 197, 67, 250, 157, 232, 67, 16, 237, 77,
+ 201, 246, 250, 157, 232, 67, 16, 208, 175, 142, 246, 211, 250, 157, 232,
+ 67, 16, 208, 175, 237, 76, 250, 157, 232, 67, 16, 142, 200, 160, 222,
+ 220, 250, 157, 232, 67, 16, 197, 30, 196, 145, 250, 157, 232, 67, 16,
+ 208, 175, 197, 30, 54, 250, 157, 232, 67, 16, 130, 200, 160, 211, 117,
+ 250, 157, 232, 67, 16, 237, 89, 201, 246, 250, 157, 232, 67, 16, 208,
+ 175, 130, 246, 211, 250, 157, 232, 67, 16, 208, 175, 237, 88, 250, 157,
+ 232, 67, 16, 130, 200, 160, 222, 220, 250, 157, 232, 67, 16, 235, 92,
+ 196, 145, 250, 157, 232, 67, 16, 208, 175, 235, 92, 54, 250, 157, 232,
+ 67, 16, 208, 141, 197, 67, 250, 157, 232, 67, 16, 237, 77, 197, 67, 250,
+ 157, 232, 67, 16, 237, 5, 197, 67, 250, 157, 232, 67, 16, 222, 221, 197,
+ 67, 250, 157, 232, 67, 16, 242, 131, 197, 67, 250, 157, 232, 67, 16, 130,
+ 203, 208, 222, 220, 250, 157, 232, 67, 16, 208, 141, 208, 174, 250, 157,
+ 232, 67, 16, 242, 131, 202, 19, 250, 157, 232, 67, 16, 208, 175, 242, 47,
+ 250, 157, 232, 67, 16, 130, 200, 160, 237, 14, 250, 157, 232, 67, 16,
+ 237, 89, 237, 14, 250, 157, 232, 67, 16, 202, 20, 237, 14, 250, 157, 232,
+ 67, 16, 222, 221, 237, 14, 250, 157, 232, 67, 16, 242, 131, 237, 14, 250,
+ 157, 232, 67, 16, 142, 203, 208, 201, 246, 250, 157, 232, 67, 16, 46,
+ 203, 208, 201, 246, 250, 157, 232, 67, 16, 199, 91, 237, 14, 250, 157,
+ 232, 67, 16, 230, 204, 237, 14, 250, 157, 232, 67, 16, 242, 39, 161, 250,
+ 157, 232, 67, 16, 237, 89, 199, 90, 250, 157, 232, 67, 16, 192, 20, 250,
+ 157, 232, 67, 16, 201, 247, 199, 90, 250, 157, 232, 67, 16, 204, 181,
+ 197, 67, 250, 157, 232, 67, 16, 208, 175, 213, 111, 234, 31, 250, 157,
+ 232, 67, 16, 208, 175, 208, 158, 250, 157, 232, 67, 16, 142, 246, 212,
+ 199, 90, 250, 157, 232, 67, 16, 130, 246, 212, 199, 90, 250, 157, 232,
+ 67, 16, 223, 111, 250, 157, 232, 67, 16, 207, 153, 250, 157, 232, 67, 16,
+ 211, 216, 250, 157, 232, 67, 16, 250, 253, 197, 67, 250, 157, 232, 67,
+ 16, 234, 33, 197, 67, 250, 157, 232, 67, 16, 223, 112, 197, 67, 250, 157,
+ 232, 67, 16, 211, 217, 197, 67, 250, 157, 232, 67, 16, 250, 252, 213,
+ 111, 242, 244, 77, 51, 250, 208, 4, 235, 92, 192, 21, 54, 203, 176, 211,
+ 184, 247, 173, 248, 87, 109, 84, 219, 176, 4, 85, 236, 114, 223, 147,
+ 109, 238, 248, 197, 65, 109, 236, 197, 197, 65, 109, 234, 92, 109, 239,
+ 27, 109, 62, 50, 4, 246, 138, 84, 219, 175, 234, 63, 109, 250, 244, 222,
+ 2, 109, 229, 212, 109, 47, 229, 5, 248, 194, 4, 213, 108, 47, 198, 186,
+ 235, 96, 247, 136, 242, 131, 4, 213, 114, 54, 197, 63, 109, 216, 40, 109,
+ 228, 107, 109, 211, 182, 230, 123, 109, 211, 182, 220, 200, 109, 210,
+ 210, 109, 210, 209, 109, 236, 206, 238, 136, 16, 232, 136, 104, 202, 195,
+ 109, 250, 157, 232, 67, 16, 208, 174, 237, 108, 204, 166, 222, 2, 109,
+ 209, 101, 211, 61, 214, 170, 211, 61, 209, 96, 205, 232, 109, 242, 102,
+ 205, 232, 109, 46, 210, 231, 113, 128, 46, 210, 231, 233, 191, 46, 210,
+ 231, 106, 128, 51, 210, 231, 113, 128, 51, 210, 231, 233, 191, 51, 210,
+ 231, 106, 128, 46, 50, 247, 165, 113, 238, 223, 46, 50, 247, 165, 233,
+ 191, 46, 50, 247, 165, 106, 238, 223, 51, 50, 247, 165, 113, 238, 223,
+ 51, 50, 247, 165, 233, 191, 51, 50, 247, 165, 106, 238, 223, 46, 238,
+ 138, 247, 165, 113, 128, 46, 238, 138, 247, 165, 85, 210, 42, 46, 238,
+ 138, 247, 165, 106, 128, 238, 138, 247, 165, 233, 191, 51, 238, 138, 247,
+ 165, 113, 128, 51, 238, 138, 247, 165, 85, 210, 42, 51, 238, 138, 247,
+ 165, 106, 128, 223, 142, 233, 191, 229, 5, 219, 176, 233, 191, 113, 46,
+ 211, 164, 106, 51, 238, 138, 247, 165, 205, 208, 113, 51, 211, 164, 106,
+ 46, 238, 138, 247, 165, 205, 208, 201, 127, 198, 248, 201, 127, 247, 187,
+ 198, 249, 50, 186, 247, 188, 50, 186, 247, 188, 50, 247, 165, 136, 198,
+ 249, 50, 186, 48, 16, 247, 187, 46, 84, 105, 219, 175, 51, 84, 105, 219,
+ 175, 229, 5, 205, 251, 219, 174, 229, 5, 205, 251, 219, 173, 229, 5, 205,
+ 251, 219, 172, 229, 5, 205, 251, 219, 171, 237, 68, 16, 152, 84, 26, 198,
+ 249, 207, 101, 237, 68, 16, 152, 84, 26, 247, 188, 207, 101, 237, 68, 16,
+ 152, 84, 4, 242, 130, 237, 68, 16, 152, 142, 26, 229, 5, 4, 242, 130,
+ 237, 68, 16, 152, 130, 26, 229, 5, 4, 242, 130, 237, 68, 16, 152, 84, 4,
+ 198, 185, 237, 68, 16, 152, 142, 26, 229, 5, 4, 198, 185, 237, 68, 16,
+ 152, 130, 26, 229, 5, 4, 198, 185, 237, 68, 16, 152, 84, 26, 194, 124,
+ 237, 68, 16, 152, 142, 26, 229, 5, 4, 194, 124, 237, 68, 16, 152, 130,
+ 26, 229, 5, 4, 194, 124, 237, 68, 16, 152, 142, 26, 229, 4, 237, 68, 16,
+ 152, 130, 26, 229, 4, 237, 68, 16, 152, 84, 26, 198, 249, 220, 28, 237,
+ 68, 16, 152, 84, 26, 247, 188, 220, 28, 50, 232, 149, 207, 173, 109, 234,
+ 133, 109, 84, 219, 176, 233, 191, 216, 234, 247, 150, 216, 234, 184, 136,
+ 203, 194, 216, 234, 203, 195, 136, 219, 84, 216, 234, 184, 136, 103, 203,
+ 180, 216, 234, 103, 203, 181, 136, 219, 84, 216, 234, 103, 203, 181, 222,
+ 229, 216, 234, 198, 166, 216, 234, 200, 0, 216, 234, 210, 142, 234, 190,
+ 230, 195, 232, 61, 198, 249, 210, 230, 247, 188, 210, 230, 198, 249, 238,
+ 138, 186, 247, 188, 238, 138, 186, 198, 249, 198, 237, 204, 2, 186, 247,
+ 188, 198, 237, 204, 2, 186, 62, 198, 202, 248, 72, 207, 82, 4, 242, 130,
+ 201, 228, 232, 193, 251, 147, 238, 135, 234, 118, 223, 127, 237, 108,
+ 233, 195, 109, 60, 207, 96, 55, 198, 185, 60, 220, 23, 55, 198, 185, 60,
+ 197, 40, 55, 198, 185, 60, 235, 95, 55, 198, 185, 60, 207, 96, 55, 198,
+ 186, 4, 84, 161, 60, 220, 23, 55, 198, 186, 4, 84, 161, 60, 207, 96, 198,
+ 186, 4, 55, 84, 161, 251, 30, 242, 87, 201, 235, 199, 83, 242, 87, 228,
+ 196, 4, 232, 173, 206, 38, 60, 217, 31, 220, 23, 198, 185, 60, 217, 31,
+ 207, 96, 198, 185, 60, 217, 31, 197, 40, 198, 185, 60, 217, 31, 235, 95,
+ 198, 185, 55, 84, 161, 60, 50, 39, 201, 238, 60, 242, 131, 39, 207, 247,
+ 209, 139, 109, 209, 139, 211, 210, 109, 209, 139, 211, 212, 109, 209,
+ 139, 203, 0, 109, 212, 14, 233, 182, 109, 16, 39, 212, 238, 16, 39, 202,
+ 15, 80, 229, 242, 16, 39, 202, 15, 80, 199, 244, 16, 39, 234, 80, 80,
+ 199, 244, 16, 39, 234, 80, 80, 198, 208, 16, 39, 234, 66, 16, 39, 251,
+ 134, 16, 39, 248, 86, 16, 39, 248, 246, 16, 39, 229, 5, 200, 161, 16, 39,
+ 219, 176, 233, 38, 16, 39, 84, 200, 161, 16, 39, 232, 136, 233, 38, 16,
+ 39, 246, 203, 207, 172, 16, 39, 203, 232, 211, 125, 16, 39, 203, 232,
+ 223, 190, 16, 39, 237, 180, 219, 166, 234, 1, 16, 39, 237, 47, 238, 243,
+ 101, 16, 39, 237, 47, 238, 243, 104, 16, 39, 237, 47, 238, 243, 133, 16,
+ 39, 237, 47, 238, 243, 134, 16, 39, 214, 199, 251, 134, 16, 39, 200, 254,
+ 223, 253, 16, 39, 234, 80, 80, 198, 209, 247, 238, 16, 39, 246, 241, 16,
+ 39, 234, 80, 80, 217, 30, 16, 39, 201, 151, 16, 39, 234, 1, 16, 39, 232,
+ 251, 204, 165, 16, 39, 230, 194, 204, 165, 16, 39, 207, 248, 204, 165,
+ 16, 39, 197, 55, 204, 165, 16, 39, 202, 160, 16, 39, 237, 86, 247, 242,
+ 109, 211, 184, 247, 173, 16, 39, 214, 173, 16, 39, 237, 87, 232, 136,
+ 104, 16, 39, 201, 152, 232, 136, 104, 212, 10, 128, 212, 10, 246, 112,
+ 212, 10, 232, 139, 212, 10, 223, 121, 232, 139, 212, 10, 248, 83, 247,
+ 119, 212, 10, 247, 181, 199, 113, 212, 10, 247, 161, 248, 199, 228, 40,
+ 212, 10, 250, 231, 80, 242, 243, 212, 10, 237, 185, 212, 10, 238, 124,
+ 251, 138, 212, 236, 212, 10, 55, 248, 247, 47, 17, 101, 47, 17, 104, 47,
+ 17, 133, 47, 17, 134, 47, 17, 151, 47, 17, 170, 47, 17, 179, 47, 17, 174,
+ 47, 17, 182, 47, 31, 200, 30, 47, 31, 234, 111, 47, 31, 197, 244, 47, 31,
+ 199, 186, 47, 31, 232, 113, 47, 31, 233, 7, 47, 31, 203, 35, 47, 31, 204,
+ 143, 47, 31, 234, 145, 47, 31, 214, 13, 47, 31, 197, 239, 125, 17, 101,
+ 125, 17, 104, 125, 17, 133, 125, 17, 134, 125, 17, 151, 125, 17, 170,
+ 125, 17, 179, 125, 17, 174, 125, 17, 182, 125, 31, 200, 30, 125, 31, 234,
+ 111, 125, 31, 197, 244, 125, 31, 199, 186, 125, 31, 232, 113, 125, 31,
+ 233, 7, 125, 31, 203, 35, 125, 31, 204, 143, 125, 31, 234, 145, 125, 31,
+ 214, 13, 125, 31, 197, 239, 17, 90, 232, 71, 201, 238, 17, 103, 232, 71,
+ 201, 238, 17, 112, 232, 71, 201, 238, 17, 232, 119, 232, 71, 201, 238,
+ 17, 232, 214, 232, 71, 201, 238, 17, 203, 41, 232, 71, 201, 238, 17, 204,
+ 146, 232, 71, 201, 238, 17, 234, 148, 232, 71, 201, 238, 17, 214, 16,
+ 232, 71, 201, 238, 31, 200, 31, 232, 71, 201, 238, 31, 234, 112, 232, 71,
+ 201, 238, 31, 197, 245, 232, 71, 201, 238, 31, 199, 187, 232, 71, 201,
+ 238, 31, 232, 114, 232, 71, 201, 238, 31, 233, 8, 232, 71, 201, 238, 31,
+ 203, 36, 232, 71, 201, 238, 31, 204, 144, 232, 71, 201, 238, 31, 234,
+ 146, 232, 71, 201, 238, 31, 214, 14, 232, 71, 201, 238, 31, 197, 240,
+ 232, 71, 201, 238, 125, 8, 2, 1, 64, 125, 8, 2, 1, 249, 226, 125, 8, 2,
+ 1, 247, 52, 125, 8, 2, 1, 238, 95, 125, 8, 2, 1, 71, 125, 8, 2, 1, 233,
+ 163, 125, 8, 2, 1, 232, 44, 125, 8, 2, 1, 230, 124, 125, 8, 2, 1, 70,
+ 125, 8, 2, 1, 223, 65, 125, 8, 2, 1, 222, 184, 125, 8, 2, 1, 165, 125, 8,
+ 2, 1, 218, 236, 125, 8, 2, 1, 215, 151, 125, 8, 2, 1, 74, 125, 8, 2, 1,
+ 211, 93, 125, 8, 2, 1, 208, 247, 125, 8, 2, 1, 150, 125, 8, 2, 1, 206,
+ 158, 125, 8, 2, 1, 200, 228, 125, 8, 2, 1, 68, 125, 8, 2, 1, 196, 236,
+ 125, 8, 2, 1, 194, 202, 125, 8, 2, 1, 193, 223, 125, 8, 2, 1, 193, 148,
+ 125, 8, 2, 1, 192, 155, 47, 8, 6, 1, 64, 47, 8, 6, 1, 249, 226, 47, 8, 6,
+ 1, 247, 52, 47, 8, 6, 1, 238, 95, 47, 8, 6, 1, 71, 47, 8, 6, 1, 233, 163,
+ 47, 8, 6, 1, 232, 44, 47, 8, 6, 1, 230, 124, 47, 8, 6, 1, 70, 47, 8, 6,
+ 1, 223, 65, 47, 8, 6, 1, 222, 184, 47, 8, 6, 1, 165, 47, 8, 6, 1, 218,
+ 236, 47, 8, 6, 1, 215, 151, 47, 8, 6, 1, 74, 47, 8, 6, 1, 211, 93, 47, 8,
+ 6, 1, 208, 247, 47, 8, 6, 1, 150, 47, 8, 6, 1, 206, 158, 47, 8, 6, 1,
+ 200, 228, 47, 8, 6, 1, 68, 47, 8, 6, 1, 196, 236, 47, 8, 6, 1, 194, 202,
+ 47, 8, 6, 1, 193, 223, 47, 8, 6, 1, 193, 148, 47, 8, 6, 1, 192, 155, 47,
+ 8, 2, 1, 64, 47, 8, 2, 1, 249, 226, 47, 8, 2, 1, 247, 52, 47, 8, 2, 1,
+ 238, 95, 47, 8, 2, 1, 71, 47, 8, 2, 1, 233, 163, 47, 8, 2, 1, 232, 44,
+ 47, 8, 2, 1, 230, 124, 47, 8, 2, 1, 70, 47, 8, 2, 1, 223, 65, 47, 8, 2,
+ 1, 222, 184, 47, 8, 2, 1, 165, 47, 8, 2, 1, 218, 236, 47, 8, 2, 1, 215,
+ 151, 47, 8, 2, 1, 74, 47, 8, 2, 1, 211, 93, 47, 8, 2, 1, 208, 247, 47, 8,
+ 2, 1, 150, 47, 8, 2, 1, 206, 158, 47, 8, 2, 1, 200, 228, 47, 8, 2, 1, 68,
+ 47, 8, 2, 1, 196, 236, 47, 8, 2, 1, 194, 202, 47, 8, 2, 1, 193, 223, 47,
+ 8, 2, 1, 193, 148, 47, 8, 2, 1, 192, 155, 47, 17, 192, 76, 214, 199, 47,
+ 31, 234, 111, 214, 199, 47, 31, 197, 244, 214, 199, 47, 31, 199, 186,
+ 214, 199, 47, 31, 232, 113, 214, 199, 47, 31, 233, 7, 214, 199, 47, 31,
+ 203, 35, 214, 199, 47, 31, 204, 143, 214, 199, 47, 31, 234, 145, 214,
+ 199, 47, 31, 214, 13, 214, 199, 47, 31, 197, 239, 55, 47, 17, 101, 55,
+ 47, 17, 104, 55, 47, 17, 133, 55, 47, 17, 134, 55, 47, 17, 151, 55, 47,
+ 17, 170, 55, 47, 17, 179, 55, 47, 17, 174, 55, 47, 17, 182, 55, 47, 31,
+ 200, 30, 214, 199, 47, 17, 192, 76, 105, 119, 152, 229, 4, 105, 119, 87,
+ 229, 4, 105, 119, 152, 196, 105, 105, 119, 87, 196, 105, 105, 119, 152,
+ 198, 170, 237, 186, 229, 4, 105, 119, 87, 198, 170, 237, 186, 229, 4,
+ 105, 119, 152, 198, 170, 237, 186, 196, 105, 105, 119, 87, 198, 170, 237,
+ 186, 196, 105, 105, 119, 152, 208, 170, 237, 186, 229, 4, 105, 119, 87,
+ 208, 170, 237, 186, 229, 4, 105, 119, 152, 208, 170, 237, 186, 196, 105,
+ 105, 119, 87, 208, 170, 237, 186, 196, 105, 105, 119, 152, 142, 26, 207,
+ 101, 105, 119, 142, 152, 26, 51, 229, 227, 105, 119, 142, 87, 26, 51,
+ 219, 195, 105, 119, 87, 142, 26, 207, 101, 105, 119, 152, 142, 26, 220,
+ 28, 105, 119, 142, 152, 26, 46, 229, 227, 105, 119, 142, 87, 26, 46, 219,
+ 195, 105, 119, 87, 142, 26, 220, 28, 105, 119, 152, 130, 26, 207, 101,
+ 105, 119, 130, 152, 26, 51, 229, 227, 105, 119, 130, 87, 26, 51, 219,
+ 195, 105, 119, 87, 130, 26, 207, 101, 105, 119, 152, 130, 26, 220, 28,
+ 105, 119, 130, 152, 26, 46, 229, 227, 105, 119, 130, 87, 26, 46, 219,
+ 195, 105, 119, 87, 130, 26, 220, 28, 105, 119, 152, 84, 26, 207, 101,
+ 105, 119, 84, 152, 26, 51, 229, 227, 105, 119, 130, 87, 26, 51, 142, 219,
+ 195, 105, 119, 142, 87, 26, 51, 130, 219, 195, 105, 119, 84, 87, 26, 51,
+ 219, 195, 105, 119, 142, 152, 26, 51, 130, 229, 227, 105, 119, 130, 152,
+ 26, 51, 142, 229, 227, 105, 119, 87, 84, 26, 207, 101, 105, 119, 152, 84,
+ 26, 220, 28, 105, 119, 84, 152, 26, 46, 229, 227, 105, 119, 130, 87, 26,
+ 46, 142, 219, 195, 105, 119, 142, 87, 26, 46, 130, 219, 195, 105, 119,
+ 84, 87, 26, 46, 219, 195, 105, 119, 142, 152, 26, 46, 130, 229, 227, 105,
+ 119, 130, 152, 26, 46, 142, 229, 227, 105, 119, 87, 84, 26, 220, 28, 105,
+ 119, 152, 142, 26, 229, 4, 105, 119, 46, 87, 26, 51, 142, 219, 195, 105,
+ 119, 51, 87, 26, 46, 142, 219, 195, 105, 119, 142, 152, 26, 229, 5, 229,
+ 227, 105, 119, 142, 87, 26, 229, 5, 219, 195, 105, 119, 51, 152, 26, 46,
+ 142, 229, 227, 105, 119, 46, 152, 26, 51, 142, 229, 227, 105, 119, 87,
+ 142, 26, 229, 4, 105, 119, 152, 130, 26, 229, 4, 105, 119, 46, 87, 26,
+ 51, 130, 219, 195, 105, 119, 51, 87, 26, 46, 130, 219, 195, 105, 119,
+ 130, 152, 26, 229, 5, 229, 227, 105, 119, 130, 87, 26, 229, 5, 219, 195,
+ 105, 119, 51, 152, 26, 46, 130, 229, 227, 105, 119, 46, 152, 26, 51, 130,
+ 229, 227, 105, 119, 87, 130, 26, 229, 4, 105, 119, 152, 84, 26, 229, 4,
+ 105, 119, 46, 87, 26, 51, 84, 219, 195, 105, 119, 51, 87, 26, 46, 84,
+ 219, 195, 105, 119, 84, 152, 26, 229, 5, 229, 227, 105, 119, 130, 87, 26,
+ 142, 229, 5, 219, 195, 105, 119, 142, 87, 26, 130, 229, 5, 219, 195, 105,
+ 119, 84, 87, 26, 229, 5, 219, 195, 105, 119, 46, 130, 87, 26, 51, 142,
+ 219, 195, 105, 119, 51, 130, 87, 26, 46, 142, 219, 195, 105, 119, 46,
+ 142, 87, 26, 51, 130, 219, 195, 105, 119, 51, 142, 87, 26, 46, 130, 219,
+ 195, 105, 119, 142, 152, 26, 130, 229, 5, 229, 227, 105, 119, 130, 152,
+ 26, 142, 229, 5, 229, 227, 105, 119, 51, 152, 26, 46, 84, 229, 227, 105,
+ 119, 46, 152, 26, 51, 84, 229, 227, 105, 119, 87, 84, 26, 229, 4, 105,
+ 119, 152, 55, 237, 186, 229, 4, 105, 119, 87, 55, 237, 186, 229, 4, 105,
+ 119, 152, 55, 237, 186, 196, 105, 105, 119, 87, 55, 237, 186, 196, 105,
+ 105, 119, 55, 229, 4, 105, 119, 55, 196, 105, 105, 119, 142, 203, 74, 26,
+ 51, 235, 106, 105, 119, 142, 55, 26, 51, 203, 73, 105, 119, 55, 142, 26,
+ 207, 101, 105, 119, 142, 203, 74, 26, 46, 235, 106, 105, 119, 142, 55,
+ 26, 46, 203, 73, 105, 119, 55, 142, 26, 220, 28, 105, 119, 130, 203, 74,
+ 26, 51, 235, 106, 105, 119, 130, 55, 26, 51, 203, 73, 105, 119, 55, 130,
+ 26, 207, 101, 105, 119, 130, 203, 74, 26, 46, 235, 106, 105, 119, 130,
+ 55, 26, 46, 203, 73, 105, 119, 55, 130, 26, 220, 28, 105, 119, 84, 203,
+ 74, 26, 51, 235, 106, 105, 119, 84, 55, 26, 51, 203, 73, 105, 119, 55,
+ 84, 26, 207, 101, 105, 119, 84, 203, 74, 26, 46, 235, 106, 105, 119, 84,
+ 55, 26, 46, 203, 73, 105, 119, 55, 84, 26, 220, 28, 105, 119, 142, 203,
+ 74, 26, 229, 5, 235, 106, 105, 119, 142, 55, 26, 229, 5, 203, 73, 105,
+ 119, 55, 142, 26, 229, 4, 105, 119, 130, 203, 74, 26, 229, 5, 235, 106,
+ 105, 119, 130, 55, 26, 229, 5, 203, 73, 105, 119, 55, 130, 26, 229, 4,
+ 105, 119, 84, 203, 74, 26, 229, 5, 235, 106, 105, 119, 84, 55, 26, 229,
+ 5, 203, 73, 105, 119, 55, 84, 26, 229, 4, 105, 119, 152, 250, 115, 142,
+ 26, 207, 101, 105, 119, 152, 250, 115, 142, 26, 220, 28, 105, 119, 152,
+ 250, 115, 130, 26, 220, 28, 105, 119, 152, 250, 115, 130, 26, 207, 101,
+ 105, 119, 152, 237, 11, 113, 51, 115, 106, 220, 28, 105, 119, 152, 237,
+ 11, 113, 46, 115, 106, 207, 101, 105, 119, 152, 237, 11, 238, 183, 105,
+ 119, 152, 220, 28, 105, 119, 152, 197, 41, 105, 119, 152, 207, 101, 105,
+ 119, 152, 235, 96, 105, 119, 87, 220, 28, 105, 119, 87, 197, 41, 105,
+ 119, 87, 207, 101, 105, 119, 87, 235, 96, 105, 119, 152, 46, 26, 87, 207,
+ 101, 105, 119, 152, 130, 26, 87, 235, 96, 105, 119, 87, 46, 26, 152, 207,
+ 101, 105, 119, 87, 130, 26, 152, 235, 96, 113, 138, 247, 238, 106, 90,
+ 234, 144, 247, 238, 106, 90, 208, 168, 247, 238, 106, 112, 234, 142, 247,
+ 238, 106, 138, 247, 238, 106, 232, 214, 234, 142, 247, 238, 106, 112,
+ 208, 166, 247, 238, 106, 204, 146, 234, 142, 247, 238, 232, 71, 247, 238,
+ 46, 204, 146, 234, 142, 247, 238, 46, 112, 208, 166, 247, 238, 46, 232,
+ 214, 234, 142, 247, 238, 46, 138, 247, 238, 46, 112, 234, 142, 247, 238,
+ 46, 90, 208, 168, 247, 238, 46, 90, 234, 144, 247, 238, 51, 138, 247,
+ 238, 152, 204, 52, 217, 31, 204, 52, 237, 191, 204, 52, 113, 90, 234,
+ 144, 247, 238, 51, 90, 234, 144, 247, 238, 208, 172, 106, 220, 28, 208,
+ 172, 106, 207, 101, 208, 172, 113, 220, 28, 208, 172, 113, 46, 26, 106,
+ 46, 26, 106, 207, 101, 208, 172, 113, 46, 26, 106, 207, 101, 208, 172,
+ 113, 46, 26, 113, 51, 26, 106, 220, 28, 208, 172, 113, 46, 26, 113, 51,
+ 26, 106, 207, 101, 208, 172, 113, 207, 101, 208, 172, 113, 51, 26, 106,
+ 220, 28, 208, 172, 113, 51, 26, 106, 46, 26, 106, 207, 101, 60, 202, 106,
+ 62, 202, 106, 62, 50, 4, 207, 7, 238, 222, 62, 50, 238, 254, 60, 2, 202,
+ 106, 50, 4, 229, 5, 232, 249, 50, 4, 84, 232, 249, 50, 4, 211, 146, 238,
+ 177, 232, 249, 50, 4, 113, 46, 115, 106, 51, 232, 249, 50, 4, 113, 51,
+ 115, 106, 46, 232, 249, 50, 4, 237, 11, 238, 177, 232, 249, 60, 2, 202,
+ 106, 62, 2, 202, 106, 60, 207, 242, 62, 207, 242, 60, 84, 207, 242, 62,
+ 84, 207, 242, 60, 210, 234, 62, 210, 234, 60, 197, 40, 198, 185, 62, 197,
+ 40, 198, 185, 60, 197, 40, 2, 198, 185, 62, 197, 40, 2, 198, 185, 60,
+ 207, 96, 198, 185, 62, 207, 96, 198, 185, 60, 207, 96, 2, 198, 185, 62,
+ 207, 96, 2, 198, 185, 60, 207, 96, 209, 189, 62, 207, 96, 209, 189, 60,
+ 235, 95, 198, 185, 62, 235, 95, 198, 185, 60, 235, 95, 2, 198, 185, 62,
+ 235, 95, 2, 198, 185, 60, 220, 23, 198, 185, 62, 220, 23, 198, 185, 60,
+ 220, 23, 2, 198, 185, 62, 220, 23, 2, 198, 185, 60, 220, 23, 209, 189,
+ 62, 220, 23, 209, 189, 60, 237, 4, 62, 237, 4, 62, 237, 5, 238, 254, 60,
+ 2, 237, 4, 232, 223, 219, 43, 62, 242, 130, 235, 111, 242, 130, 242, 131,
+ 4, 84, 232, 249, 247, 102, 60, 242, 130, 242, 131, 4, 46, 138, 247, 248,
+ 242, 131, 4, 51, 138, 247, 248, 242, 131, 4, 106, 138, 247, 248, 242,
+ 131, 4, 113, 138, 247, 248, 242, 131, 4, 113, 51, 208, 172, 247, 248,
+ 242, 131, 4, 251, 9, 247, 77, 113, 46, 208, 172, 247, 248, 46, 138, 60,
+ 242, 130, 51, 138, 60, 242, 130, 223, 123, 247, 106, 223, 123, 62, 242,
+ 130, 113, 138, 223, 123, 62, 242, 130, 106, 138, 223, 123, 62, 242, 130,
+ 113, 46, 208, 172, 242, 124, 250, 114, 113, 51, 208, 172, 242, 124, 250,
+ 114, 106, 51, 208, 172, 242, 124, 250, 114, 106, 46, 208, 172, 242, 124,
+ 250, 114, 113, 138, 242, 130, 106, 138, 242, 130, 60, 106, 51, 198, 185,
+ 60, 106, 46, 198, 185, 60, 113, 46, 198, 185, 60, 113, 51, 198, 185, 62,
+ 247, 106, 50, 4, 46, 138, 247, 248, 50, 4, 51, 138, 247, 248, 50, 4, 113,
+ 46, 237, 11, 138, 247, 248, 50, 4, 106, 51, 237, 11, 138, 247, 248, 62,
+ 50, 4, 84, 248, 7, 219, 175, 62, 197, 40, 198, 186, 4, 236, 114, 197, 40,
+ 198, 186, 4, 46, 138, 247, 248, 197, 40, 198, 186, 4, 51, 138, 247, 248,
+ 220, 73, 242, 130, 62, 50, 4, 113, 46, 208, 171, 62, 50, 4, 106, 46, 208,
+ 171, 62, 50, 4, 106, 51, 208, 171, 62, 50, 4, 113, 51, 208, 171, 62, 242,
+ 131, 4, 113, 46, 208, 171, 62, 242, 131, 4, 106, 46, 208, 171, 62, 242,
+ 131, 4, 106, 51, 208, 171, 62, 242, 131, 4, 113, 51, 208, 171, 113, 46,
+ 198, 185, 113, 51, 198, 185, 106, 46, 198, 185, 62, 217, 31, 202, 106,
+ 60, 217, 31, 202, 106, 62, 217, 31, 2, 202, 106, 60, 217, 31, 2, 202,
+ 106, 106, 51, 198, 185, 60, 201, 124, 4, 208, 12, 242, 75, 197, 81, 202,
+ 214, 242, 41, 60, 202, 19, 62, 202, 19, 219, 192, 199, 143, 201, 123,
+ 250, 57, 213, 134, 237, 58, 213, 134, 239, 7, 211, 169, 60, 200, 41, 62,
+ 200, 41, 248, 213, 247, 173, 248, 213, 105, 4, 242, 243, 248, 213, 105,
+ 4, 193, 223, 206, 51, 197, 82, 4, 208, 42, 235, 69, 228, 202, 248, 58,
+ 62, 203, 204, 210, 42, 60, 203, 204, 210, 42, 204, 39, 207, 168, 207, 16,
+ 232, 179, 229, 234, 247, 106, 60, 46, 209, 188, 223, 176, 60, 51, 209,
+ 188, 223, 176, 62, 46, 209, 188, 223, 176, 62, 130, 209, 188, 223, 176,
+ 62, 51, 209, 188, 223, 176, 62, 142, 209, 188, 223, 176, 203, 11, 26,
+ 238, 181, 246, 187, 57, 208, 54, 57, 248, 15, 57, 247, 10, 250, 196, 211,
+ 147, 238, 183, 242, 216, 207, 153, 238, 184, 80, 219, 64, 238, 184, 80,
+ 223, 30, 202, 20, 26, 238, 193, 233, 62, 109, 251, 117, 204, 42, 230, 70,
+ 26, 203, 116, 210, 180, 109, 193, 11, 193, 95, 198, 175, 39, 229, 229,
+ 198, 175, 39, 220, 102, 198, 175, 39, 232, 231, 198, 175, 39, 199, 144,
+ 198, 175, 39, 194, 52, 198, 175, 39, 194, 129, 198, 175, 39, 216, 9, 198,
+ 175, 39, 234, 189, 194, 80, 80, 237, 32, 62, 232, 83, 233, 91, 62, 202,
+ 230, 233, 91, 60, 202, 230, 233, 91, 62, 201, 124, 4, 208, 12, 232, 226,
+ 208, 168, 216, 29, 220, 66, 208, 168, 216, 29, 216, 255, 233, 30, 57,
+ 234, 189, 217, 166, 57, 222, 199, 206, 13, 197, 22, 214, 189, 209, 202,
+ 250, 100, 200, 98, 231, 145, 246, 239, 219, 246, 196, 9, 219, 206, 205,
+ 234, 206, 77, 246, 221, 250, 132, 209, 244, 62, 242, 225, 221, 176, 62,
+ 242, 225, 208, 160, 62, 242, 225, 207, 25, 62, 242, 225, 248, 5, 62, 242,
+ 225, 221, 122, 62, 242, 225, 210, 192, 60, 242, 225, 221, 176, 60, 242,
+ 225, 208, 160, 60, 242, 225, 207, 25, 60, 242, 225, 248, 5, 60, 242, 225,
+ 221, 122, 60, 242, 225, 210, 192, 60, 202, 158, 201, 136, 62, 229, 234,
+ 201, 136, 62, 237, 5, 201, 136, 60, 242, 72, 201, 136, 62, 202, 158, 201,
+ 136, 60, 229, 234, 201, 136, 60, 237, 5, 201, 136, 62, 242, 72, 201, 136,
+ 228, 202, 202, 111, 208, 168, 213, 105, 234, 144, 213, 105, 248, 119,
+ 234, 144, 213, 100, 248, 119, 203, 34, 213, 100, 215, 185, 232, 196, 57,
+ 215, 185, 215, 43, 57, 215, 185, 204, 26, 57, 194, 91, 200, 248, 238,
+ 183, 234, 186, 200, 248, 238, 183, 197, 51, 207, 238, 109, 207, 238, 16,
+ 39, 197, 205, 209, 222, 207, 238, 16, 39, 197, 203, 209, 222, 207, 238,
+ 16, 39, 197, 202, 209, 222, 207, 238, 16, 39, 197, 200, 209, 222, 207,
+ 238, 16, 39, 197, 198, 209, 222, 207, 238, 16, 39, 197, 196, 209, 222,
+ 207, 238, 16, 39, 197, 194, 209, 222, 207, 238, 16, 39, 231, 142, 217,
+ 99, 60, 197, 51, 207, 238, 109, 207, 239, 210, 252, 109, 210, 221, 210,
+ 252, 109, 210, 125, 210, 252, 57, 194, 78, 109, 236, 253, 233, 90, 236,
+ 253, 233, 89, 236, 253, 233, 88, 236, 253, 233, 87, 236, 253, 233, 86,
+ 236, 253, 233, 85, 62, 242, 131, 4, 78, 207, 101, 62, 242, 131, 4, 103,
+ 236, 111, 60, 242, 131, 4, 62, 78, 207, 101, 60, 242, 131, 4, 103, 62,
+ 236, 111, 216, 45, 39, 193, 95, 216, 45, 39, 193, 10, 236, 234, 39, 230,
+ 205, 193, 95, 236, 234, 39, 219, 238, 193, 10, 236, 234, 39, 219, 238,
+ 193, 95, 236, 234, 39, 230, 205, 193, 10, 62, 232, 206, 60, 232, 206,
+ 230, 70, 26, 210, 47, 250, 219, 238, 180, 201, 59, 202, 29, 80, 251, 91,
+ 205, 252, 251, 25, 232, 175, 231, 155, 202, 29, 80, 229, 201, 250, 16,
+ 109, 232, 191, 211, 121, 62, 202, 19, 112, 219, 170, 238, 240, 207, 101,
+ 112, 219, 170, 238, 240, 220, 28, 194, 140, 57, 139, 195, 240, 57, 235,
+ 101, 233, 30, 57, 235, 101, 217, 166, 57, 223, 133, 233, 30, 26, 217,
+ 166, 57, 217, 166, 26, 233, 30, 57, 217, 166, 4, 201, 208, 57, 217, 166,
+ 4, 201, 208, 26, 217, 166, 26, 233, 30, 57, 84, 217, 166, 4, 201, 208,
+ 57, 229, 5, 217, 166, 4, 201, 208, 57, 217, 31, 62, 242, 130, 217, 31,
+ 60, 242, 130, 217, 31, 2, 62, 242, 130, 217, 119, 109, 236, 170, 109,
+ 197, 48, 210, 220, 109, 242, 53, 232, 66, 197, 18, 214, 180, 246, 123,
+ 211, 43, 222, 205, 196, 50, 242, 195, 60, 216, 30, 219, 189, 204, 75,
+ 204, 177, 208, 150, 204, 154, 202, 202, 248, 217, 248, 179, 108, 222, 1,
+ 62, 235, 81, 217, 160, 62, 235, 81, 221, 176, 60, 235, 81, 217, 160, 60,
+ 235, 81, 221, 176, 202, 215, 194, 39, 202, 218, 201, 124, 248, 93, 242,
+ 75, 208, 41, 60, 202, 214, 199, 145, 242, 76, 26, 208, 41, 163, 62, 203,
+ 204, 210, 42, 163, 60, 203, 204, 210, 42, 62, 237, 5, 223, 191, 202, 106,
+ 238, 176, 220, 80, 236, 201, 246, 217, 211, 172, 210, 47, 246, 218, 202,
+ 249, 229, 211, 4, 62, 238, 183, 47, 238, 176, 220, 80, 246, 113, 213,
+ 143, 234, 57, 250, 249, 211, 203, 46, 194, 115, 198, 216, 60, 197, 217,
+ 46, 194, 115, 198, 216, 62, 197, 217, 46, 194, 115, 198, 216, 60, 46,
+ 220, 81, 216, 254, 62, 46, 220, 81, 216, 254, 235, 76, 202, 240, 57, 87,
+ 62, 235, 95, 198, 185, 46, 242, 84, 234, 57, 108, 206, 51, 233, 71, 237,
+ 11, 223, 191, 62, 242, 131, 223, 191, 60, 202, 106, 60, 198, 149, 207,
+ 179, 46, 234, 56, 207, 179, 46, 234, 55, 250, 31, 16, 39, 197, 22, 87,
+ 242, 131, 4, 201, 208, 26, 103, 236, 112, 58, 210, 143, 207, 98, 223,
+ 135, 210, 143, 220, 25, 223, 135, 210, 143, 223, 121, 210, 143, 60, 238,
+ 184, 211, 212, 203, 233, 203, 221, 203, 169, 242, 160, 246, 195, 229,
+ 138, 203, 42, 231, 156, 194, 39, 228, 175, 231, 156, 4, 230, 39, 217,
+ 142, 16, 39, 219, 194, 216, 9, 197, 82, 211, 212, 230, 195, 232, 120,
+ 232, 207, 223, 191, 229, 25, 233, 20, 206, 72, 50, 232, 119, 238, 222,
+ 203, 14, 228, 50, 203, 18, 210, 117, 4, 248, 217, 200, 22, 223, 50, 248,
+ 199, 109, 229, 239, 230, 207, 109, 232, 74, 209, 39, 238, 149, 211, 212,
+ 60, 202, 106, 62, 232, 207, 4, 229, 5, 85, 60, 201, 209, 60, 206, 82,
+ 205, 238, 113, 247, 243, 205, 238, 60, 205, 238, 106, 247, 243, 205, 238,
+ 62, 205, 238, 62, 87, 242, 244, 77, 200, 42, 219, 104, 57, 200, 115, 235,
+ 75, 251, 50, 234, 52, 208, 39, 232, 219, 208, 39, 230, 62, 196, 37, 230,
+ 62, 193, 247, 230, 62, 106, 51, 210, 153, 210, 153, 113, 51, 210, 153,
+ 62, 214, 49, 60, 214, 49, 242, 244, 77, 87, 242, 244, 77, 215, 214, 193,
+ 223, 87, 215, 214, 193, 223, 248, 213, 193, 223, 87, 248, 213, 193, 223,
+ 211, 121, 33, 238, 183, 87, 33, 238, 183, 211, 184, 246, 138, 238, 183,
+ 87, 211, 184, 246, 138, 238, 183, 8, 238, 183, 204, 50, 62, 8, 238, 183,
+ 211, 121, 8, 238, 183, 217, 163, 238, 183, 202, 20, 80, 237, 178, 232,
+ 119, 200, 61, 250, 37, 232, 119, 248, 214, 250, 37, 87, 232, 119, 248,
+ 214, 250, 37, 232, 119, 242, 70, 250, 37, 60, 232, 119, 209, 190, 202,
+ 19, 62, 232, 119, 209, 190, 202, 19, 202, 153, 201, 218, 211, 121, 62,
+ 202, 19, 47, 62, 202, 19, 211, 184, 246, 138, 60, 202, 19, 60, 246, 138,
+ 62, 202, 19, 211, 121, 60, 202, 19, 87, 211, 121, 60, 202, 19, 209, 254,
+ 202, 19, 204, 50, 62, 202, 19, 87, 250, 37, 211, 184, 246, 138, 250, 37,
+ 234, 148, 202, 122, 250, 37, 234, 148, 209, 190, 60, 202, 19, 234, 148,
+ 209, 190, 209, 254, 202, 19, 203, 41, 209, 190, 60, 202, 19, 234, 148,
+ 209, 190, 207, 240, 60, 202, 19, 87, 234, 148, 209, 190, 207, 240, 60,
+ 202, 19, 197, 245, 209, 190, 60, 202, 19, 203, 36, 209, 190, 250, 37,
+ 200, 61, 250, 37, 211, 184, 246, 138, 200, 61, 250, 37, 87, 200, 61, 250,
+ 37, 203, 41, 210, 105, 60, 26, 62, 232, 178, 60, 232, 178, 62, 232, 178,
+ 234, 148, 210, 105, 211, 121, 60, 232, 178, 47, 211, 184, 246, 138, 234,
+ 148, 209, 190, 202, 19, 87, 200, 61, 209, 254, 250, 37, 202, 216, 199,
+ 107, 198, 178, 202, 216, 87, 242, 221, 202, 216, 202, 155, 87, 202, 155,
+ 248, 214, 250, 37, 234, 148, 200, 61, 209, 74, 250, 37, 87, 234, 148,
+ 200, 61, 209, 74, 250, 37, 238, 184, 77, 204, 50, 62, 242, 130, 214, 199,
+ 108, 238, 184, 77, 106, 51, 235, 71, 62, 202, 106, 113, 51, 235, 71, 62,
+ 202, 106, 106, 51, 204, 50, 62, 202, 106, 113, 51, 204, 50, 62, 202, 106,
+ 60, 208, 159, 122, 211, 150, 62, 208, 159, 122, 211, 150, 62, 233, 204,
+ 122, 211, 150, 60, 237, 5, 216, 113, 62, 193, 223, 87, 233, 204, 122,
+ 109, 152, 84, 161, 217, 31, 84, 161, 87, 84, 161, 87, 203, 74, 163, 242,
+ 39, 208, 142, 122, 211, 150, 87, 203, 74, 242, 39, 208, 142, 122, 211,
+ 150, 87, 55, 163, 242, 39, 208, 142, 122, 211, 150, 87, 55, 242, 39, 208,
+ 142, 122, 211, 150, 87, 132, 203, 74, 242, 39, 208, 142, 122, 211, 150,
+ 87, 132, 55, 242, 39, 208, 142, 122, 211, 150, 238, 130, 202, 0, 210,
+ 244, 3, 211, 150, 87, 233, 204, 122, 211, 150, 87, 229, 234, 233, 204,
+ 122, 211, 150, 87, 60, 229, 233, 207, 16, 87, 60, 229, 234, 247, 106,
+ 232, 179, 229, 233, 207, 16, 232, 179, 229, 234, 247, 106, 217, 31, 46,
+ 210, 231, 211, 150, 217, 31, 51, 210, 231, 211, 150, 217, 31, 232, 192,
+ 46, 210, 231, 211, 150, 217, 31, 232, 192, 51, 210, 231, 211, 150, 217,
+ 31, 220, 23, 250, 208, 247, 165, 211, 150, 217, 31, 207, 96, 250, 208,
+ 247, 165, 211, 150, 87, 220, 23, 250, 208, 208, 142, 122, 211, 150, 87,
+ 207, 96, 250, 208, 208, 142, 122, 211, 150, 87, 220, 23, 250, 208, 247,
+ 165, 211, 150, 87, 207, 96, 250, 208, 247, 165, 211, 150, 152, 46, 198,
+ 237, 204, 2, 247, 165, 211, 150, 152, 51, 198, 237, 204, 2, 247, 165,
+ 211, 150, 217, 31, 46, 238, 138, 247, 165, 211, 150, 217, 31, 51, 238,
+ 138, 247, 165, 211, 150, 236, 213, 214, 199, 47, 17, 101, 236, 213, 214,
+ 199, 47, 17, 104, 236, 213, 214, 199, 47, 17, 133, 236, 213, 214, 199,
+ 47, 17, 134, 236, 213, 214, 199, 47, 17, 151, 236, 213, 214, 199, 47, 17,
+ 170, 236, 213, 214, 199, 47, 17, 179, 236, 213, 214, 199, 47, 17, 174,
+ 236, 213, 214, 199, 47, 17, 182, 236, 213, 214, 199, 47, 31, 200, 30,
+ 236, 213, 47, 49, 17, 101, 236, 213, 47, 49, 17, 104, 236, 213, 47, 49,
+ 17, 133, 236, 213, 47, 49, 17, 134, 236, 213, 47, 49, 17, 151, 236, 213,
+ 47, 49, 17, 170, 236, 213, 47, 49, 17, 179, 236, 213, 47, 49, 17, 174,
+ 236, 213, 47, 49, 17, 182, 236, 213, 47, 49, 31, 200, 30, 236, 213, 214,
+ 199, 47, 49, 17, 101, 236, 213, 214, 199, 47, 49, 17, 104, 236, 213, 214,
+ 199, 47, 49, 17, 133, 236, 213, 214, 199, 47, 49, 17, 134, 236, 213, 214,
+ 199, 47, 49, 17, 151, 236, 213, 214, 199, 47, 49, 17, 170, 236, 213, 214,
+ 199, 47, 49, 17, 179, 236, 213, 214, 199, 47, 49, 17, 174, 236, 213, 214,
+ 199, 47, 49, 17, 182, 236, 213, 214, 199, 47, 49, 31, 200, 30, 87, 194,
+ 63, 94, 54, 87, 102, 57, 87, 216, 113, 57, 87, 236, 172, 57, 87, 202,
+ 171, 234, 186, 54, 87, 94, 54, 87, 178, 234, 186, 54, 235, 86, 209, 192,
+ 94, 54, 87, 207, 8, 94, 54, 198, 184, 94, 54, 87, 198, 184, 94, 54, 237,
+ 184, 198, 184, 94, 54, 87, 237, 184, 198, 184, 94, 54, 60, 94, 54, 199,
+ 160, 198, 247, 94, 250, 77, 199, 160, 247, 186, 94, 250, 77, 60, 94, 250,
+ 77, 87, 60, 238, 130, 235, 92, 26, 94, 54, 87, 60, 238, 130, 197, 30, 26,
+ 94, 54, 202, 103, 60, 94, 54, 87, 239, 20, 60, 94, 54, 207, 95, 62, 94,
+ 54, 220, 22, 62, 94, 54, 248, 251, 204, 50, 62, 94, 54, 232, 86, 204, 50,
+ 62, 94, 54, 87, 106, 207, 94, 62, 94, 54, 87, 113, 207, 94, 62, 94, 54,
+ 213, 107, 106, 207, 94, 62, 94, 54, 238, 138, 219, 69, 213, 107, 113,
+ 207, 94, 62, 94, 54, 47, 87, 62, 94, 54, 194, 74, 94, 54, 247, 247, 202,
+ 171, 234, 186, 54, 247, 247, 94, 54, 247, 247, 178, 234, 186, 54, 87,
+ 247, 247, 202, 171, 234, 186, 54, 87, 247, 247, 94, 54, 87, 247, 247,
+ 178, 234, 186, 54, 200, 63, 94, 54, 87, 200, 62, 94, 54, 194, 101, 94,
+ 54, 87, 194, 101, 94, 54, 211, 178, 94, 54, 55, 238, 138, 219, 69, 112,
+ 236, 223, 250, 207, 62, 198, 186, 238, 254, 2, 62, 198, 185, 210, 120,
+ 211, 184, 201, 153, 211, 184, 201, 105, 46, 206, 157, 248, 237, 237, 82,
+ 51, 206, 157, 248, 237, 237, 82, 211, 164, 4, 78, 223, 145, 207, 169,
+ 202, 190, 209, 114, 201, 153, 201, 106, 209, 114, 202, 189, 84, 248, 194,
+ 4, 229, 5, 111, 13, 207, 73, 237, 10, 184, 236, 171, 13, 233, 71, 237,
+ 10, 108, 219, 93, 250, 217, 108, 219, 93, 211, 163, 62, 237, 5, 4, 246,
+ 136, 236, 114, 26, 4, 236, 114, 234, 116, 80, 211, 176, 197, 29, 106, 51,
+ 238, 224, 4, 236, 114, 113, 46, 238, 224, 4, 236, 114, 46, 211, 123, 222,
+ 231, 51, 211, 123, 222, 231, 232, 71, 211, 123, 222, 231, 220, 73, 130,
+ 200, 159, 220, 73, 142, 200, 159, 46, 26, 51, 55, 198, 8, 46, 26, 51,
+ 200, 159, 46, 215, 218, 184, 51, 200, 159, 184, 46, 200, 159, 130, 200,
+ 160, 4, 242, 131, 58, 219, 44, 236, 178, 247, 64, 229, 5, 206, 202, 62,
+ 239, 19, 237, 4, 62, 239, 19, 237, 5, 4, 114, 199, 117, 62, 239, 19, 237,
+ 5, 4, 94, 199, 117, 62, 50, 4, 114, 199, 117, 62, 50, 4, 94, 199, 117,
+ 13, 46, 62, 50, 186, 13, 51, 62, 50, 186, 13, 46, 250, 208, 186, 13, 51,
+ 250, 208, 186, 13, 46, 55, 250, 208, 186, 13, 51, 55, 250, 208, 186, 13,
+ 46, 62, 198, 237, 204, 2, 186, 13, 51, 62, 198, 237, 204, 2, 186, 13, 46,
+ 232, 192, 210, 230, 13, 51, 232, 192, 210, 230, 197, 30, 208, 170, 54,
+ 235, 92, 208, 170, 54, 250, 182, 231, 195, 242, 131, 54, 242, 86, 231,
+ 195, 242, 131, 54, 51, 61, 4, 47, 209, 206, 184, 114, 54, 184, 94, 54,
+ 184, 46, 51, 54, 184, 114, 55, 54, 184, 94, 55, 54, 184, 46, 51, 55, 54,
+ 184, 114, 61, 232, 89, 161, 184, 94, 61, 232, 89, 161, 184, 114, 55, 61,
+ 232, 89, 161, 184, 94, 55, 61, 232, 89, 161, 184, 94, 202, 99, 54, 66,
+ 67, 247, 241, 66, 67, 236, 110, 66, 67, 235, 238, 66, 67, 236, 109, 66,
+ 67, 235, 174, 66, 67, 236, 45, 66, 67, 235, 237, 66, 67, 236, 108, 66,
+ 67, 235, 142, 66, 67, 236, 13, 66, 67, 235, 205, 66, 67, 236, 76, 66, 67,
+ 235, 173, 66, 67, 236, 44, 66, 67, 235, 236, 66, 67, 236, 107, 66, 67,
+ 235, 126, 66, 67, 235, 253, 66, 67, 235, 189, 66, 67, 236, 60, 66, 67,
+ 235, 157, 66, 67, 236, 28, 66, 67, 235, 220, 66, 67, 236, 91, 66, 67,
+ 235, 141, 66, 67, 236, 12, 66, 67, 235, 204, 66, 67, 236, 75, 66, 67,
+ 235, 172, 66, 67, 236, 43, 66, 67, 235, 235, 66, 67, 236, 106, 66, 67,
+ 235, 118, 66, 67, 235, 245, 66, 67, 235, 181, 66, 67, 236, 52, 66, 67,
+ 235, 149, 66, 67, 236, 20, 66, 67, 235, 212, 66, 67, 236, 83, 66, 67,
+ 235, 133, 66, 67, 236, 4, 66, 67, 235, 196, 66, 67, 236, 67, 66, 67, 235,
+ 164, 66, 67, 236, 35, 66, 67, 235, 227, 66, 67, 236, 98, 66, 67, 235,
+ 125, 66, 67, 235, 252, 66, 67, 235, 188, 66, 67, 236, 59, 66, 67, 235,
+ 156, 66, 67, 236, 27, 66, 67, 235, 219, 66, 67, 236, 90, 66, 67, 235,
+ 140, 66, 67, 236, 11, 66, 67, 235, 203, 66, 67, 236, 74, 66, 67, 235,
+ 171, 66, 67, 236, 42, 66, 67, 235, 234, 66, 67, 236, 105, 66, 67, 235,
+ 114, 66, 67, 235, 241, 66, 67, 235, 177, 66, 67, 236, 48, 66, 67, 235,
+ 145, 66, 67, 236, 16, 66, 67, 235, 208, 66, 67, 236, 79, 66, 67, 235,
+ 129, 66, 67, 236, 0, 66, 67, 235, 192, 66, 67, 236, 63, 66, 67, 235, 160,
+ 66, 67, 236, 31, 66, 67, 235, 223, 66, 67, 236, 94, 66, 67, 235, 121, 66,
+ 67, 235, 248, 66, 67, 235, 184, 66, 67, 236, 55, 66, 67, 235, 152, 66,
+ 67, 236, 23, 66, 67, 235, 215, 66, 67, 236, 86, 66, 67, 235, 136, 66, 67,
+ 236, 7, 66, 67, 235, 199, 66, 67, 236, 70, 66, 67, 235, 167, 66, 67, 236,
+ 38, 66, 67, 235, 230, 66, 67, 236, 101, 66, 67, 235, 117, 66, 67, 235,
+ 244, 66, 67, 235, 180, 66, 67, 236, 51, 66, 67, 235, 148, 66, 67, 236,
+ 19, 66, 67, 235, 211, 66, 67, 236, 82, 66, 67, 235, 132, 66, 67, 236, 3,
+ 66, 67, 235, 195, 66, 67, 236, 66, 66, 67, 235, 163, 66, 67, 236, 34, 66,
+ 67, 235, 226, 66, 67, 236, 97, 66, 67, 235, 124, 66, 67, 235, 251, 66,
+ 67, 235, 187, 66, 67, 236, 58, 66, 67, 235, 155, 66, 67, 236, 26, 66, 67,
+ 235, 218, 66, 67, 236, 89, 66, 67, 235, 139, 66, 67, 236, 10, 66, 67,
+ 235, 202, 66, 67, 236, 73, 66, 67, 235, 170, 66, 67, 236, 41, 66, 67,
+ 235, 233, 66, 67, 236, 104, 66, 67, 235, 112, 66, 67, 235, 239, 66, 67,
+ 235, 175, 66, 67, 236, 46, 66, 67, 235, 143, 66, 67, 236, 14, 66, 67,
+ 235, 206, 66, 67, 236, 77, 66, 67, 235, 127, 66, 67, 235, 254, 66, 67,
+ 235, 190, 66, 67, 236, 61, 66, 67, 235, 158, 66, 67, 236, 29, 66, 67,
+ 235, 221, 66, 67, 236, 92, 66, 67, 235, 119, 66, 67, 235, 246, 66, 67,
+ 235, 182, 66, 67, 236, 53, 66, 67, 235, 150, 66, 67, 236, 21, 66, 67,
+ 235, 213, 66, 67, 236, 84, 66, 67, 235, 134, 66, 67, 236, 5, 66, 67, 235,
+ 197, 66, 67, 236, 68, 66, 67, 235, 165, 66, 67, 236, 36, 66, 67, 235,
+ 228, 66, 67, 236, 99, 66, 67, 235, 115, 66, 67, 235, 242, 66, 67, 235,
+ 178, 66, 67, 236, 49, 66, 67, 235, 146, 66, 67, 236, 17, 66, 67, 235,
+ 209, 66, 67, 236, 80, 66, 67, 235, 130, 66, 67, 236, 1, 66, 67, 235, 193,
+ 66, 67, 236, 64, 66, 67, 235, 161, 66, 67, 236, 32, 66, 67, 235, 224, 66,
+ 67, 236, 95, 66, 67, 235, 122, 66, 67, 235, 249, 66, 67, 235, 185, 66,
+ 67, 236, 56, 66, 67, 235, 153, 66, 67, 236, 24, 66, 67, 235, 216, 66, 67,
+ 236, 87, 66, 67, 235, 137, 66, 67, 236, 8, 66, 67, 235, 200, 66, 67, 236,
+ 71, 66, 67, 235, 168, 66, 67, 236, 39, 66, 67, 235, 231, 66, 67, 236,
+ 102, 66, 67, 235, 113, 66, 67, 235, 240, 66, 67, 235, 176, 66, 67, 236,
+ 47, 66, 67, 235, 144, 66, 67, 236, 15, 66, 67, 235, 207, 66, 67, 236, 78,
+ 66, 67, 235, 128, 66, 67, 235, 255, 66, 67, 235, 191, 66, 67, 236, 62,
+ 66, 67, 235, 159, 66, 67, 236, 30, 66, 67, 235, 222, 66, 67, 236, 93, 66,
+ 67, 235, 120, 66, 67, 235, 247, 66, 67, 235, 183, 66, 67, 236, 54, 66,
+ 67, 235, 151, 66, 67, 236, 22, 66, 67, 235, 214, 66, 67, 236, 85, 66, 67,
+ 235, 135, 66, 67, 236, 6, 66, 67, 235, 198, 66, 67, 236, 69, 66, 67, 235,
+ 166, 66, 67, 236, 37, 66, 67, 235, 229, 66, 67, 236, 100, 66, 67, 235,
+ 116, 66, 67, 235, 243, 66, 67, 235, 179, 66, 67, 236, 50, 66, 67, 235,
+ 147, 66, 67, 236, 18, 66, 67, 235, 210, 66, 67, 236, 81, 66, 67, 235,
+ 131, 66, 67, 236, 2, 66, 67, 235, 194, 66, 67, 236, 65, 66, 67, 235, 162,
+ 66, 67, 236, 33, 66, 67, 235, 225, 66, 67, 236, 96, 66, 67, 235, 123, 66,
+ 67, 235, 250, 66, 67, 235, 186, 66, 67, 236, 57, 66, 67, 235, 154, 66,
+ 67, 236, 25, 66, 67, 235, 217, 66, 67, 236, 88, 66, 67, 235, 138, 66, 67,
+ 236, 9, 66, 67, 235, 201, 66, 67, 236, 72, 66, 67, 235, 169, 66, 67, 236,
+ 40, 66, 67, 235, 232, 66, 67, 236, 103, 94, 197, 220, 61, 4, 84, 111, 94,
+ 197, 220, 61, 4, 55, 84, 111, 114, 55, 61, 4, 84, 111, 94, 55, 61, 4, 84,
+ 111, 46, 51, 55, 61, 4, 84, 111, 94, 197, 220, 61, 232, 89, 161, 114, 55,
+ 61, 232, 89, 161, 94, 55, 61, 232, 89, 161, 235, 92, 61, 4, 229, 5, 111,
+ 197, 30, 61, 4, 229, 5, 111, 197, 30, 198, 170, 54, 235, 92, 198, 170,
+ 54, 114, 55, 237, 186, 54, 94, 55, 237, 186, 54, 114, 198, 170, 237, 186,
+ 54, 94, 198, 170, 237, 186, 54, 94, 197, 220, 198, 170, 237, 186, 54, 94,
+ 61, 4, 235, 111, 201, 255, 197, 30, 61, 115, 161, 235, 92, 61, 115, 161,
+ 94, 61, 4, 200, 148, 4, 84, 111, 94, 61, 4, 200, 148, 4, 55, 84, 111, 94,
+ 197, 220, 61, 4, 200, 147, 94, 197, 220, 61, 4, 200, 148, 4, 84, 111, 94,
+ 197, 220, 61, 4, 200, 148, 4, 55, 84, 111, 114, 250, 79, 94, 250, 79,
+ 114, 55, 250, 79, 94, 55, 250, 79, 114, 61, 115, 60, 237, 4, 94, 61, 115,
+ 60, 237, 4, 114, 61, 232, 89, 248, 194, 115, 60, 237, 4, 94, 61, 232, 89,
+ 248, 194, 115, 60, 237, 4, 178, 194, 91, 26, 202, 171, 234, 186, 54, 178,
+ 234, 186, 26, 202, 171, 194, 91, 54, 178, 194, 91, 61, 4, 128, 178, 234,
+ 186, 61, 4, 128, 202, 171, 234, 186, 61, 4, 128, 202, 171, 194, 91, 61,
+ 4, 128, 178, 194, 91, 61, 26, 178, 234, 186, 54, 178, 234, 186, 61, 26,
+ 202, 171, 234, 186, 54, 202, 171, 234, 186, 61, 26, 202, 171, 194, 91,
+ 54, 202, 171, 194, 91, 61, 26, 178, 194, 91, 54, 207, 73, 237, 11, 238,
+ 176, 233, 71, 237, 10, 233, 71, 237, 11, 238, 176, 207, 73, 237, 10, 202,
+ 171, 234, 186, 61, 238, 176, 178, 234, 186, 54, 178, 234, 186, 61, 238,
+ 176, 202, 171, 234, 186, 54, 233, 71, 237, 11, 238, 176, 178, 234, 186,
+ 54, 207, 73, 237, 11, 238, 176, 202, 171, 234, 186, 54, 178, 234, 186,
+ 61, 238, 176, 178, 194, 91, 54, 178, 194, 91, 61, 238, 176, 178, 234,
+ 186, 54, 194, 125, 61, 209, 188, 236, 203, 207, 101, 61, 209, 188, 94,
+ 199, 216, 238, 128, 197, 29, 61, 209, 188, 94, 199, 216, 238, 128, 235,
+ 91, 61, 209, 188, 235, 92, 199, 216, 238, 128, 220, 18, 61, 209, 188,
+ 235, 92, 199, 216, 238, 128, 207, 90, 207, 93, 250, 115, 242, 86, 54,
+ 220, 21, 250, 115, 250, 182, 54, 198, 249, 250, 115, 250, 182, 54, 247,
+ 188, 250, 115, 250, 182, 54, 198, 249, 250, 115, 242, 86, 61, 4, 216,
+ 112, 198, 249, 250, 115, 250, 182, 61, 4, 209, 206, 106, 51, 204, 182,
+ 242, 86, 54, 106, 46, 204, 182, 250, 182, 54, 250, 182, 242, 84, 242,
+ 131, 54, 242, 86, 242, 84, 242, 131, 54, 94, 61, 95, 203, 195, 114, 54,
+ 114, 61, 95, 203, 195, 94, 54, 203, 195, 94, 61, 95, 114, 54, 94, 61, 4,
+ 102, 63, 114, 61, 4, 102, 63, 94, 61, 199, 151, 193, 223, 46, 51, 61,
+ 199, 151, 2, 242, 130, 197, 30, 197, 220, 61, 232, 89, 2, 242, 130, 46,
+ 173, 130, 51, 173, 142, 230, 21, 46, 173, 142, 51, 173, 130, 230, 21,
+ 130, 173, 51, 142, 173, 46, 230, 21, 130, 173, 46, 142, 173, 51, 230, 21,
+ 46, 173, 130, 51, 173, 130, 230, 21, 130, 173, 51, 142, 173, 51, 230, 21,
+ 46, 173, 142, 51, 173, 142, 230, 21, 130, 173, 46, 142, 173, 46, 230, 21,
+ 114, 230, 22, 4, 173, 130, 115, 161, 94, 230, 22, 4, 173, 130, 115, 161,
+ 197, 30, 230, 22, 4, 173, 51, 115, 161, 235, 92, 230, 22, 4, 173, 51,
+ 115, 161, 114, 230, 22, 4, 173, 142, 115, 161, 94, 230, 22, 4, 173, 142,
+ 115, 161, 197, 30, 230, 22, 4, 173, 46, 115, 161, 235, 92, 230, 22, 4,
+ 173, 46, 115, 161, 114, 230, 22, 4, 173, 130, 232, 89, 161, 94, 230, 22,
+ 4, 173, 130, 232, 89, 161, 197, 30, 230, 22, 4, 173, 51, 232, 89, 161,
+ 235, 92, 230, 22, 4, 173, 51, 232, 89, 161, 114, 230, 22, 4, 173, 142,
+ 232, 89, 161, 94, 230, 22, 4, 173, 142, 232, 89, 161, 197, 30, 230, 22,
+ 4, 173, 46, 232, 89, 161, 235, 92, 230, 22, 4, 173, 46, 232, 89, 161,
+ 114, 230, 22, 4, 173, 130, 95, 114, 230, 22, 4, 173, 235, 96, 197, 30,
+ 230, 22, 4, 173, 46, 248, 67, 197, 30, 230, 22, 4, 173, 207, 101, 94,
+ 230, 22, 4, 173, 130, 95, 94, 230, 22, 4, 173, 235, 96, 235, 92, 230, 22,
+ 4, 173, 46, 248, 67, 235, 92, 230, 22, 4, 173, 207, 101, 114, 230, 22, 4,
+ 173, 130, 95, 94, 230, 22, 4, 173, 197, 41, 114, 230, 22, 4, 173, 142,
+ 95, 94, 230, 22, 4, 173, 235, 96, 94, 230, 22, 4, 173, 130, 95, 114, 230,
+ 22, 4, 173, 197, 41, 94, 230, 22, 4, 173, 142, 95, 114, 230, 22, 4, 173,
+ 235, 96, 114, 230, 22, 4, 173, 130, 95, 184, 237, 185, 114, 230, 22, 4,
+ 173, 142, 248, 84, 184, 237, 185, 94, 230, 22, 4, 173, 130, 95, 184, 237,
+ 185, 94, 230, 22, 4, 173, 142, 248, 84, 184, 237, 185, 197, 30, 230, 22,
+ 4, 173, 46, 248, 67, 235, 92, 230, 22, 4, 173, 207, 101, 235, 92, 230,
+ 22, 4, 173, 46, 248, 67, 197, 30, 230, 22, 4, 173, 207, 101, 51, 55, 61,
+ 4, 207, 7, 229, 245, 234, 30, 3, 95, 94, 54, 199, 91, 211, 174, 95, 94,
+ 54, 114, 61, 95, 199, 91, 211, 173, 94, 61, 95, 199, 91, 211, 173, 94,
+ 61, 95, 251, 1, 187, 155, 219, 240, 95, 114, 54, 114, 61, 199, 151, 219,
+ 239, 230, 204, 95, 94, 54, 201, 154, 95, 94, 54, 114, 61, 199, 151, 201,
+ 153, 201, 106, 95, 114, 54, 46, 232, 225, 200, 147, 51, 232, 225, 200,
+ 147, 130, 232, 225, 200, 147, 142, 232, 225, 200, 147, 198, 170, 84, 248,
+ 194, 237, 82, 192, 156, 213, 109, 202, 117, 192, 156, 213, 109, 197, 206,
+ 242, 47, 46, 62, 238, 138, 186, 51, 62, 238, 138, 186, 46, 62, 210, 230,
+ 51, 62, 210, 230, 192, 156, 213, 109, 46, 223, 206, 186, 192, 156, 213,
+ 109, 51, 223, 206, 186, 192, 156, 213, 109, 46, 248, 19, 186, 192, 156,
+ 213, 109, 51, 248, 19, 186, 46, 50, 247, 165, 4, 197, 67, 51, 50, 247,
+ 165, 4, 197, 67, 46, 50, 247, 165, 4, 199, 118, 223, 191, 198, 249, 238,
+ 223, 51, 50, 247, 165, 4, 199, 118, 223, 191, 247, 188, 238, 223, 46, 50,
+ 247, 165, 4, 199, 118, 223, 191, 247, 188, 238, 223, 51, 50, 247, 165, 4,
+ 199, 118, 223, 191, 198, 249, 238, 223, 46, 250, 208, 247, 165, 4, 236,
+ 114, 51, 250, 208, 247, 165, 4, 236, 114, 46, 250, 115, 219, 240, 186,
+ 51, 250, 115, 230, 204, 186, 55, 46, 250, 115, 230, 204, 186, 55, 51,
+ 250, 115, 219, 240, 186, 46, 60, 198, 237, 204, 2, 186, 51, 60, 198, 237,
+ 204, 2, 186, 235, 111, 233, 27, 84, 192, 21, 219, 175, 217, 42, 250, 208,
+ 211, 176, 220, 28, 51, 250, 208, 196, 137, 4, 202, 106, 217, 42, 51, 250,
+ 208, 4, 236, 114, 250, 208, 4, 206, 159, 223, 145, 251, 130, 250, 207,
+ 202, 139, 250, 208, 211, 176, 220, 28, 202, 139, 250, 208, 211, 176, 197,
+ 41, 163, 250, 207, 207, 168, 250, 207, 250, 208, 4, 197, 67, 207, 168,
+ 250, 208, 4, 197, 67, 212, 18, 250, 208, 211, 176, 197, 41, 212, 18, 250,
+ 208, 211, 176, 235, 96, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234, 76,
+ 223, 191, 61, 209, 188, 130, 26, 207, 101, 217, 42, 250, 208, 4, 211,
+ 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 130, 26, 220, 28, 217, 42,
+ 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 142, 26,
+ 207, 101, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61,
+ 209, 188, 142, 26, 220, 28, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234,
+ 76, 223, 191, 61, 209, 188, 51, 26, 197, 41, 217, 42, 250, 208, 4, 211,
+ 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 46, 26, 197, 41, 217, 42,
+ 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61, 209, 188, 51, 26,
+ 235, 96, 217, 42, 250, 208, 4, 211, 184, 250, 93, 234, 76, 223, 191, 61,
+ 209, 188, 46, 26, 235, 96, 207, 168, 234, 90, 204, 151, 234, 90, 204,
+ 152, 4, 211, 117, 234, 90, 204, 152, 4, 2, 242, 131, 58, 234, 90, 204,
+ 152, 4, 51, 61, 58, 234, 90, 204, 152, 4, 46, 61, 58, 242, 131, 4, 229,
+ 5, 161, 47, 84, 161, 47, 210, 235, 47, 207, 169, 202, 189, 47, 210, 120,
+ 242, 131, 236, 178, 247, 64, 229, 5, 248, 194, 26, 198, 249, 138, 236,
+ 178, 247, 64, 84, 161, 242, 131, 4, 201, 108, 193, 223, 47, 250, 180,
+ 236, 172, 57, 130, 61, 199, 151, 242, 130, 47, 62, 247, 106, 47, 247,
+ 106, 47, 219, 239, 47, 230, 203, 242, 131, 4, 2, 242, 131, 115, 199, 225,
+ 207, 101, 242, 131, 4, 103, 229, 5, 201, 196, 115, 199, 225, 207, 101,
+ 108, 207, 73, 237, 11, 203, 4, 108, 233, 71, 237, 11, 203, 4, 108, 250,
+ 37, 108, 2, 242, 130, 108, 202, 106, 103, 222, 230, 202, 104, 198, 186,
+ 4, 78, 58, 198, 186, 4, 197, 67, 206, 159, 223, 191, 198, 185, 198, 186,
+ 4, 204, 159, 250, 27, 247, 187, 51, 198, 186, 95, 46, 198, 185, 46, 198,
+ 186, 248, 67, 84, 161, 84, 248, 194, 248, 67, 51, 198, 185, 247, 175, 4,
+ 46, 138, 247, 248, 247, 175, 4, 51, 138, 247, 248, 60, 247, 174, 24, 4,
+ 46, 138, 247, 248, 24, 4, 51, 138, 247, 248, 62, 228, 195, 60, 228, 195,
+ 46, 194, 58, 233, 27, 51, 194, 58, 233, 27, 46, 55, 194, 58, 233, 27, 51,
+ 55, 194, 58, 233, 27, 223, 183, 223, 167, 199, 114, 136, 223, 167, 223,
+ 168, 214, 201, 4, 84, 161, 235, 105, 215, 218, 50, 4, 238, 246, 211, 122,
+ 223, 180, 250, 61, 203, 157, 209, 85, 234, 30, 3, 26, 203, 6, 210, 235,
+ 234, 30, 3, 26, 203, 6, 210, 236, 4, 199, 91, 58, 228, 41, 115, 26, 203,
+ 6, 210, 235, 231, 9, 202, 18, 199, 213, 235, 95, 198, 186, 4, 46, 138,
+ 247, 248, 235, 95, 198, 186, 4, 51, 138, 247, 248, 60, 237, 5, 4, 142,
+ 54, 60, 219, 43, 62, 242, 131, 4, 142, 54, 60, 242, 131, 4, 142, 54, 234,
+ 12, 62, 202, 106, 234, 12, 60, 202, 106, 234, 12, 62, 237, 4, 234, 12,
+ 60, 237, 4, 234, 12, 62, 242, 130, 234, 12, 60, 242, 130, 206, 201, 207,
+ 169, 202, 190, 211, 173, 202, 190, 4, 211, 117, 207, 169, 202, 190, 4,
+ 229, 5, 111, 248, 28, 202, 189, 248, 28, 207, 169, 202, 189, 55, 209,
+ 206, 198, 170, 209, 206, 220, 23, 238, 130, 250, 208, 186, 207, 96, 238,
+ 130, 250, 208, 186, 199, 75, 216, 110, 215, 150, 47, 78, 211, 173, 215,
+ 150, 47, 102, 211, 173, 215, 150, 47, 24, 211, 173, 215, 150, 197, 57,
+ 211, 174, 4, 236, 114, 215, 150, 197, 57, 211, 174, 4, 209, 206, 215,
+ 150, 50, 223, 128, 211, 173, 215, 150, 50, 197, 57, 211, 173, 103, 219,
+ 93, 26, 211, 173, 103, 219, 93, 211, 164, 211, 173, 215, 150, 24, 211,
+ 173, 216, 59, 103, 201, 129, 201, 127, 4, 223, 141, 208, 170, 223, 142,
+ 211, 173, 232, 234, 210, 224, 223, 141, 223, 142, 4, 55, 111, 223, 142,
+ 249, 244, 4, 203, 4, 242, 123, 232, 68, 250, 182, 223, 139, 219, 176,
+ 223, 140, 4, 207, 241, 210, 203, 250, 87, 209, 182, 219, 176, 223, 140,
+ 4, 204, 182, 210, 203, 250, 87, 209, 182, 219, 176, 223, 140, 213, 111,
+ 223, 185, 199, 225, 209, 182, 223, 142, 250, 87, 41, 209, 192, 211, 173,
+ 208, 164, 223, 142, 211, 173, 223, 142, 4, 114, 61, 4, 128, 223, 142, 4,
+ 24, 57, 223, 142, 4, 223, 127, 223, 142, 4, 197, 56, 223, 142, 4, 211,
+ 117, 223, 142, 4, 197, 67, 222, 231, 220, 73, 46, 198, 186, 211, 173,
+ 192, 156, 213, 109, 205, 246, 239, 26, 192, 156, 213, 109, 205, 246, 209,
+ 250, 192, 156, 213, 109, 205, 246, 209, 80, 102, 3, 4, 2, 242, 131, 58,
+ 102, 3, 4, 242, 122, 251, 144, 58, 102, 3, 4, 199, 91, 58, 102, 3, 4, 78,
+ 63, 102, 3, 4, 199, 91, 63, 102, 3, 4, 201, 155, 104, 102, 3, 4, 60, 198,
+ 185, 216, 113, 3, 4, 242, 39, 58, 216, 113, 3, 4, 78, 63, 216, 113, 3, 4,
+ 233, 71, 236, 111, 216, 113, 3, 4, 207, 73, 236, 111, 102, 3, 223, 191,
+ 46, 138, 242, 130, 102, 3, 223, 191, 51, 138, 242, 130, 196, 122, 211,
+ 164, 238, 184, 209, 85, 215, 214, 3, 4, 78, 58, 215, 214, 3, 4, 197, 67,
+ 204, 179, 209, 86, 4, 247, 188, 242, 83, 202, 234, 209, 85, 215, 214, 3,
+ 223, 191, 46, 138, 242, 130, 215, 214, 3, 223, 191, 51, 138, 242, 130,
+ 47, 215, 214, 3, 4, 242, 122, 251, 143, 215, 214, 3, 223, 191, 55, 242,
+ 130, 47, 236, 172, 57, 102, 3, 223, 191, 198, 185, 216, 113, 3, 223, 191,
+ 198, 185, 215, 214, 3, 223, 191, 198, 185, 223, 136, 209, 85, 207, 91,
+ 223, 136, 209, 85, 192, 156, 213, 109, 207, 214, 239, 26, 250, 239, 211,
+ 164, 238, 230, 223, 128, 4, 236, 114, 197, 57, 4, 216, 113, 57, 197, 57,
+ 4, 211, 117, 223, 128, 4, 211, 117, 223, 128, 4, 219, 93, 250, 217, 197,
+ 57, 4, 219, 93, 211, 163, 197, 57, 95, 223, 127, 223, 128, 95, 197, 56,
+ 197, 57, 95, 248, 194, 95, 223, 127, 223, 128, 95, 248, 194, 95, 197, 56,
+ 197, 57, 248, 67, 26, 222, 230, 4, 197, 56, 223, 128, 248, 67, 26, 222,
+ 230, 4, 223, 127, 242, 84, 197, 57, 4, 204, 158, 242, 84, 223, 128, 4,
+ 204, 158, 55, 50, 223, 127, 55, 50, 197, 56, 242, 84, 197, 57, 4, 204,
+ 159, 26, 202, 234, 209, 85, 219, 93, 26, 4, 78, 58, 219, 93, 211, 164, 4,
+ 78, 58, 55, 219, 93, 250, 217, 55, 219, 93, 211, 163, 103, 223, 129, 219,
+ 93, 250, 217, 103, 223, 129, 219, 93, 211, 163, 202, 244, 220, 73, 211,
+ 163, 202, 244, 220, 73, 250, 217, 219, 93, 211, 164, 211, 112, 219, 93,
+ 250, 217, 219, 93, 26, 4, 85, 201, 255, 219, 93, 211, 164, 4, 85, 201,
+ 255, 219, 93, 26, 4, 229, 5, 237, 185, 219, 93, 211, 164, 4, 229, 5, 237,
+ 185, 219, 93, 26, 4, 55, 211, 117, 219, 93, 26, 4, 197, 67, 219, 93, 26,
+ 4, 55, 197, 67, 2, 196, 119, 4, 197, 67, 219, 93, 211, 164, 4, 55, 211,
+ 117, 219, 93, 211, 164, 4, 55, 197, 67, 192, 156, 213, 109, 236, 124,
+ 250, 172, 192, 156, 213, 109, 208, 29, 250, 172, 234, 30, 3, 4, 78, 63,
+ 228, 41, 4, 78, 58, 198, 170, 229, 5, 248, 194, 4, 55, 84, 111, 198, 170,
+ 229, 5, 248, 194, 4, 198, 170, 84, 111, 199, 91, 211, 174, 4, 78, 58,
+ 199, 91, 211, 174, 4, 207, 73, 236, 111, 203, 84, 216, 113, 203, 83, 239,
+ 13, 4, 78, 58, 234, 30, 4, 250, 37, 251, 1, 187, 115, 4, 242, 122, 251,
+ 143, 250, 138, 187, 211, 164, 187, 155, 234, 30, 3, 95, 102, 57, 102, 3,
+ 95, 234, 30, 57, 234, 30, 3, 95, 199, 91, 211, 173, 55, 242, 48, 234, 31,
+ 103, 239, 6, 234, 30, 203, 98, 112, 239, 6, 234, 30, 203, 98, 234, 30, 3,
+ 4, 103, 236, 112, 95, 26, 103, 236, 112, 63, 234, 23, 4, 232, 119, 236,
+ 112, 58, 219, 240, 4, 242, 131, 223, 145, 230, 204, 4, 242, 131, 223,
+ 145, 219, 240, 4, 208, 159, 122, 58, 230, 204, 4, 208, 159, 122, 58, 219,
+ 240, 211, 164, 203, 6, 187, 155, 230, 204, 211, 164, 203, 6, 187, 155,
+ 219, 240, 211, 164, 203, 6, 187, 115, 4, 78, 223, 145, 230, 204, 211,
+ 164, 203, 6, 187, 115, 4, 78, 223, 145, 219, 240, 211, 164, 203, 6, 187,
+ 115, 4, 78, 58, 230, 204, 211, 164, 203, 6, 187, 115, 4, 78, 58, 219,
+ 240, 211, 164, 203, 6, 187, 115, 4, 78, 95, 207, 101, 230, 204, 211, 164,
+ 203, 6, 187, 115, 4, 78, 95, 220, 28, 219, 240, 211, 164, 250, 139, 230,
+ 204, 211, 164, 250, 139, 219, 240, 26, 203, 72, 213, 111, 187, 155, 230,
+ 204, 26, 203, 72, 213, 111, 187, 155, 219, 240, 26, 213, 111, 250, 139,
+ 230, 204, 26, 213, 111, 250, 139, 219, 240, 95, 235, 104, 187, 95, 230,
+ 203, 230, 204, 95, 235, 104, 187, 95, 219, 239, 219, 240, 95, 203, 84,
+ 211, 164, 234, 31, 230, 204, 95, 203, 84, 211, 164, 234, 31, 219, 240,
+ 95, 203, 84, 95, 230, 203, 230, 204, 95, 203, 84, 95, 219, 239, 219, 240,
+ 95, 230, 204, 95, 235, 104, 234, 31, 230, 204, 95, 219, 240, 95, 235,
+ 104, 234, 31, 219, 240, 95, 203, 6, 187, 95, 230, 204, 95, 203, 6, 234,
+ 31, 230, 204, 95, 203, 6, 187, 95, 219, 240, 95, 203, 6, 234, 31, 203, 6,
+ 187, 115, 211, 164, 219, 239, 203, 6, 187, 115, 211, 164, 230, 203, 203,
+ 6, 187, 115, 211, 164, 219, 240, 4, 78, 223, 145, 203, 6, 187, 115, 211,
+ 164, 230, 204, 4, 78, 223, 145, 235, 104, 187, 115, 211, 164, 219, 239,
+ 235, 104, 187, 115, 211, 164, 230, 203, 235, 104, 203, 6, 187, 115, 211,
+ 164, 219, 239, 235, 104, 203, 6, 187, 115, 211, 164, 230, 203, 203, 84,
+ 211, 164, 219, 239, 203, 84, 211, 164, 230, 203, 203, 84, 95, 219, 240,
+ 95, 234, 30, 57, 203, 84, 95, 230, 204, 95, 234, 30, 57, 55, 214, 185,
+ 219, 239, 55, 214, 185, 230, 203, 55, 214, 185, 219, 240, 4, 197, 67,
+ 230, 204, 211, 112, 219, 239, 230, 204, 248, 67, 219, 239, 219, 240, 242,
+ 84, 247, 64, 238, 131, 230, 204, 242, 84, 247, 64, 238, 131, 219, 240,
+ 242, 84, 247, 64, 238, 132, 95, 203, 6, 234, 31, 230, 204, 242, 84, 247,
+ 64, 238, 132, 95, 203, 6, 234, 31, 202, 235, 199, 229, 220, 71, 199, 229,
+ 202, 235, 199, 230, 211, 164, 187, 155, 220, 71, 199, 230, 211, 164, 187,
+ 155, 234, 30, 3, 4, 247, 99, 58, 209, 116, 95, 203, 72, 234, 30, 57, 201,
+ 146, 95, 203, 72, 234, 30, 57, 209, 116, 95, 203, 72, 213, 111, 187, 155,
+ 201, 146, 95, 203, 72, 213, 111, 187, 155, 209, 116, 95, 234, 30, 57,
+ 201, 146, 95, 234, 30, 57, 209, 116, 95, 213, 111, 187, 155, 201, 146,
+ 95, 213, 111, 187, 155, 209, 116, 95, 251, 1, 187, 155, 201, 146, 95,
+ 251, 1, 187, 155, 209, 116, 95, 213, 111, 251, 1, 187, 155, 201, 146, 95,
+ 213, 111, 251, 1, 187, 155, 55, 209, 115, 55, 201, 145, 201, 154, 4, 236,
+ 114, 201, 106, 4, 236, 114, 201, 154, 4, 102, 3, 63, 201, 106, 4, 102, 3,
+ 63, 201, 154, 4, 215, 214, 3, 63, 201, 106, 4, 215, 214, 3, 63, 201, 154,
+ 80, 211, 164, 187, 115, 4, 78, 58, 201, 106, 80, 211, 164, 187, 115, 4,
+ 78, 58, 201, 154, 80, 95, 234, 30, 57, 201, 106, 80, 95, 234, 30, 57,
+ 201, 154, 80, 95, 199, 91, 211, 173, 201, 106, 80, 95, 199, 91, 211, 173,
+ 201, 154, 80, 95, 251, 1, 187, 155, 201, 106, 80, 95, 251, 1, 187, 155,
+ 201, 154, 80, 95, 213, 111, 187, 155, 201, 106, 80, 95, 213, 111, 187,
+ 155, 50, 46, 211, 184, 105, 211, 173, 50, 51, 211, 184, 105, 211, 173,
+ 242, 84, 201, 153, 242, 84, 201, 105, 242, 84, 201, 154, 211, 164, 187,
+ 155, 242, 84, 201, 106, 211, 164, 187, 155, 201, 154, 95, 201, 105, 201,
+ 106, 95, 201, 153, 201, 154, 95, 201, 153, 201, 106, 95, 201, 105, 201,
+ 106, 248, 67, 201, 153, 201, 106, 248, 67, 26, 222, 230, 247, 64, 237,
+ 186, 4, 201, 153, 234, 116, 80, 211, 176, 235, 91, 209, 240, 4, 200, 57,
+ 198, 248, 198, 204, 223, 127, 232, 137, 213, 126, 203, 195, 46, 200, 159,
+ 203, 195, 142, 200, 159, 203, 195, 130, 200, 159, 210, 121, 4, 206, 158,
+ 84, 248, 194, 198, 170, 51, 198, 8, 55, 84, 248, 194, 46, 198, 8, 84,
+ 248, 194, 55, 46, 198, 8, 55, 84, 248, 194, 55, 46, 198, 8, 184, 237,
+ 186, 232, 89, 46, 217, 10, 80, 55, 196, 105, 203, 195, 142, 200, 160, 4,
+ 211, 117, 203, 195, 130, 200, 160, 4, 197, 67, 203, 195, 130, 200, 160,
+ 95, 203, 195, 142, 200, 159, 55, 142, 200, 159, 55, 130, 200, 159, 55,
+ 201, 208, 213, 111, 57, 207, 168, 55, 201, 208, 213, 111, 57, 236, 136,
+ 213, 111, 236, 180, 4, 207, 168, 214, 200, 203, 4, 84, 219, 176, 4, 242,
+ 131, 58, 84, 219, 176, 4, 242, 131, 63, 142, 200, 160, 4, 242, 131, 63,
+ 210, 236, 4, 229, 5, 111, 210, 236, 4, 199, 91, 211, 173, 198, 170, 84,
+ 248, 194, 248, 21, 207, 215, 198, 170, 84, 248, 194, 4, 229, 5, 111, 198,
+ 170, 242, 48, 211, 173, 198, 170, 214, 185, 219, 239, 198, 170, 214, 185,
+ 230, 203, 235, 104, 203, 6, 219, 240, 211, 164, 187, 155, 235, 104, 203,
+ 6, 230, 204, 211, 164, 187, 155, 198, 170, 202, 190, 248, 21, 207, 215,
+ 220, 73, 198, 170, 84, 248, 194, 211, 173, 55, 202, 190, 211, 173, 62,
+ 84, 161, 215, 150, 62, 84, 161, 178, 234, 186, 62, 54, 178, 194, 91, 62,
+ 54, 202, 171, 234, 186, 62, 54, 202, 171, 194, 91, 62, 54, 46, 51, 62,
+ 54, 114, 60, 54, 197, 30, 60, 54, 235, 92, 60, 54, 178, 234, 186, 60, 54,
+ 178, 194, 91, 60, 54, 202, 171, 234, 186, 60, 54, 202, 171, 194, 91, 60,
+ 54, 46, 51, 60, 54, 130, 142, 60, 54, 94, 61, 4, 199, 74, 235, 91, 94,
+ 61, 4, 199, 74, 197, 29, 114, 61, 4, 199, 74, 235, 91, 114, 61, 4, 199,
+ 74, 197, 29, 50, 4, 198, 249, 138, 247, 248, 50, 4, 247, 188, 138, 247,
+ 248, 50, 4, 113, 51, 237, 11, 138, 247, 248, 50, 4, 106, 46, 237, 11,
+ 138, 247, 248, 237, 5, 4, 46, 138, 247, 248, 237, 5, 4, 51, 138, 247,
+ 248, 237, 5, 4, 198, 249, 138, 247, 248, 237, 5, 4, 247, 188, 138, 247,
+ 248, 235, 111, 202, 106, 60, 220, 73, 202, 106, 62, 220, 73, 202, 106,
+ 60, 196, 53, 2, 202, 106, 62, 196, 53, 2, 202, 106, 60, 210, 144, 62,
+ 210, 144, 62, 229, 192, 60, 229, 192, 229, 5, 60, 229, 192, 60, 220, 73,
+ 242, 130, 60, 217, 31, 237, 4, 62, 217, 31, 237, 4, 60, 217, 31, 219, 43,
+ 62, 217, 31, 219, 43, 60, 2, 237, 4, 60, 2, 219, 43, 62, 2, 219, 43, 60,
+ 229, 5, 234, 106, 62, 229, 5, 234, 106, 60, 84, 234, 106, 62, 84, 234,
+ 106, 46, 61, 4, 2, 242, 130, 112, 114, 250, 73, 46, 61, 4, 47, 209, 206,
+ 184, 114, 202, 99, 54, 114, 197, 220, 61, 4, 84, 111, 114, 197, 220, 61,
+ 4, 55, 84, 111, 114, 197, 220, 61, 232, 89, 161, 114, 197, 220, 198, 170,
+ 237, 186, 54, 114, 61, 4, 235, 111, 201, 255, 114, 61, 4, 200, 148, 4,
+ 84, 111, 114, 61, 4, 200, 148, 4, 55, 84, 111, 114, 197, 220, 61, 4, 200,
+ 147, 114, 197, 220, 61, 4, 200, 148, 4, 84, 111, 114, 197, 220, 61, 4,
+ 200, 148, 4, 55, 84, 111, 114, 61, 199, 151, 193, 223, 194, 125, 61, 209,
+ 188, 236, 203, 220, 28, 234, 30, 3, 95, 114, 54, 207, 169, 199, 91, 211,
+ 174, 95, 114, 54, 114, 61, 95, 207, 169, 251, 1, 187, 155, 94, 61, 199,
+ 151, 230, 203, 94, 61, 199, 151, 201, 105, 114, 208, 170, 54, 94, 208,
+ 170, 54, 207, 169, 199, 91, 211, 174, 95, 94, 54, 94, 61, 95, 207, 169,
+ 251, 1, 187, 155, 199, 91, 211, 174, 95, 114, 54, 114, 61, 95, 251, 1,
+ 187, 155, 114, 61, 95, 207, 169, 199, 91, 211, 173, 94, 61, 95, 207, 169,
+ 199, 91, 211, 173, 235, 92, 198, 184, 192, 21, 54, 203, 195, 203, 6, 178,
+ 54, 203, 195, 248, 249, 202, 171, 54, 62, 217, 31, 202, 19, 60, 2, 202,
+ 19, 62, 2, 202, 19, 60, 207, 96, 210, 144, 62, 207, 96, 210, 144, 87,
+ 220, 73, 242, 130, 87, 211, 119, 4, 211, 119, 223, 145, 87, 242, 131, 4,
+ 242, 131, 223, 145, 87, 242, 130, 87, 47, 206, 51, 203, 6, 178, 61, 4,
+ 229, 14, 229, 245, 248, 249, 202, 171, 61, 4, 229, 14, 200, 147, 203, 6,
+ 178, 61, 4, 229, 5, 200, 147, 248, 249, 202, 171, 61, 4, 229, 5, 200,
+ 147, 248, 75, 61, 209, 188, 235, 92, 199, 216, 178, 234, 185, 203, 195,
+ 248, 75, 61, 209, 188, 235, 92, 199, 216, 178, 234, 185, 114, 198, 184,
+ 54, 197, 30, 198, 184, 54, 94, 198, 184, 54, 235, 92, 198, 184, 54, 46,
+ 51, 198, 184, 54, 130, 142, 198, 184, 54, 178, 194, 91, 198, 184, 54,
+ 178, 234, 186, 198, 184, 54, 202, 171, 234, 186, 198, 184, 54, 202, 171,
+ 194, 91, 198, 184, 54, 114, 198, 184, 237, 184, 54, 197, 30, 198, 184,
+ 237, 184, 54, 94, 198, 184, 237, 184, 54, 235, 92, 198, 184, 237, 184,
+ 54, 242, 86, 198, 184, 211, 184, 242, 131, 54, 250, 182, 198, 184, 211,
+ 184, 242, 131, 54, 114, 198, 184, 61, 115, 161, 197, 30, 198, 184, 61,
+ 115, 161, 94, 198, 184, 61, 115, 161, 235, 92, 198, 184, 61, 115, 161,
+ 178, 194, 91, 198, 184, 61, 115, 161, 178, 234, 186, 198, 184, 61, 115,
+ 161, 202, 171, 234, 186, 198, 184, 61, 115, 161, 202, 171, 194, 91, 198,
+ 184, 61, 115, 161, 114, 198, 184, 61, 4, 55, 229, 5, 111, 197, 30, 198,
+ 184, 61, 4, 55, 229, 5, 111, 94, 198, 184, 61, 4, 55, 229, 5, 111, 235,
+ 92, 198, 184, 61, 4, 55, 229, 5, 111, 229, 5, 200, 167, 222, 1, 84, 200,
+ 167, 222, 1, 114, 198, 184, 61, 136, 94, 198, 184, 54, 197, 30, 198, 184,
+ 61, 114, 80, 235, 92, 198, 184, 54, 94, 198, 184, 61, 136, 114, 198, 184,
+ 54, 235, 92, 198, 184, 61, 114, 80, 197, 30, 198, 184, 54, 114, 198, 184,
+ 211, 53, 250, 73, 197, 30, 198, 184, 211, 53, 250, 73, 94, 198, 184, 211,
+ 53, 250, 73, 235, 92, 198, 184, 211, 53, 250, 73, 114, 60, 47, 62, 54,
+ 197, 30, 60, 47, 62, 54, 94, 60, 47, 62, 54, 235, 92, 60, 47, 62, 54,
+ 250, 182, 198, 184, 51, 197, 172, 54, 250, 182, 198, 184, 247, 188, 197,
+ 172, 54, 250, 182, 198, 184, 46, 197, 172, 54, 250, 182, 198, 184, 198,
+ 249, 197, 172, 54, 207, 173, 220, 28, 207, 173, 207, 101, 214, 174, 220,
+ 28, 214, 174, 207, 101, 232, 119, 238, 224, 250, 74, 242, 126, 250, 181,
+ 94, 60, 54, 16, 39, 197, 206, 41, 234, 117, 199, 160, 198, 247, 114, 234,
+ 24, 250, 77, 199, 160, 207, 97, 197, 30, 234, 24, 250, 77, 199, 160, 198,
+ 247, 94, 234, 24, 250, 77, 199, 160, 220, 24, 235, 92, 234, 24, 250, 77,
+ 60, 114, 234, 24, 250, 77, 60, 197, 30, 234, 24, 250, 77, 60, 94, 234,
+ 24, 250, 77, 60, 235, 92, 234, 24, 250, 77, 235, 92, 198, 184, 61, 4,
+ 184, 199, 74, 220, 18, 235, 92, 198, 184, 61, 4, 184, 199, 74, 207, 90,
+ 197, 30, 198, 184, 61, 4, 184, 199, 74, 220, 18, 197, 30, 198, 184, 61,
+ 4, 184, 199, 74, 207, 90, 114, 198, 184, 61, 4, 184, 199, 74, 197, 29,
+ 94, 198, 184, 61, 4, 184, 199, 74, 197, 29, 114, 198, 184, 61, 4, 184,
+ 199, 74, 235, 91, 94, 198, 184, 61, 4, 184, 199, 74, 235, 91, 60, 238,
+ 130, 235, 92, 26, 114, 54, 60, 238, 130, 235, 92, 26, 94, 54, 60, 238,
+ 130, 197, 30, 26, 114, 54, 60, 238, 130, 197, 30, 26, 94, 54, 60, 238,
+ 130, 114, 26, 197, 30, 54, 60, 238, 130, 94, 26, 197, 30, 54, 60, 238,
+ 130, 114, 26, 235, 92, 54, 60, 238, 130, 94, 26, 235, 92, 54, 207, 142,
+ 61, 142, 220, 28, 207, 142, 61, 142, 207, 101, 207, 142, 61, 130, 220,
+ 28, 207, 142, 61, 130, 207, 101, 207, 142, 61, 46, 197, 41, 207, 142, 61,
+ 51, 197, 41, 207, 142, 61, 46, 235, 96, 207, 142, 61, 51, 235, 96, 197,
+ 30, 62, 61, 232, 89, 248, 194, 4, 229, 5, 161, 130, 250, 78, 223, 191,
+ 41, 207, 243, 247, 173, 211, 112, 62, 202, 104, 211, 112, 62, 26, 60,
+ 202, 104, 211, 112, 60, 202, 104, 248, 213, 105, 4, 152, 193, 223, 47,
+ 193, 223, 47, 28, 193, 223, 60, 50, 246, 135, 60, 237, 5, 246, 135, 163,
+ 60, 210, 144, 229, 5, 60, 212, 9, 60, 212, 9, 60, 217, 31, 197, 40, 198,
+ 186, 246, 135, 60, 217, 31, 235, 95, 198, 186, 246, 135, 60, 217, 31,
+ 220, 23, 198, 186, 246, 135, 60, 217, 31, 207, 96, 198, 186, 246, 135,
+ 214, 190, 232, 136, 104, 198, 249, 138, 60, 242, 130, 247, 188, 138, 60,
+ 242, 130, 152, 232, 119, 209, 190, 60, 238, 126, 207, 16, 152, 232, 119,
+ 209, 190, 60, 238, 126, 62, 232, 119, 209, 190, 238, 126, 207, 16, 62,
+ 232, 119, 209, 190, 238, 126, 50, 209, 160, 223, 172, 197, 71, 57, 230,
+ 194, 77, 209, 203, 232, 136, 104, 209, 203, 232, 136, 133, 209, 203, 232,
+ 136, 134, 209, 203, 232, 136, 151, 198, 206, 209, 70, 250, 33, 228, 114,
+ 210, 62, 214, 186, 62, 216, 30, 204, 188, 60, 237, 5, 211, 212, 238, 183,
+ 198, 148, 152, 216, 30, 250, 69, 238, 146, 230, 96, 192, 74, 221, 50,
+ 250, 151, 251, 115, 194, 221, 209, 161, 46, 138, 60, 202, 19, 51, 138,
+ 60, 202, 19, 202, 20, 4, 46, 138, 247, 248, 202, 20, 4, 51, 138, 247,
+ 248, 114, 197, 220, 61, 4, 198, 186, 250, 75, 197, 30, 197, 220, 61, 4,
+ 198, 186, 250, 75, 94, 197, 220, 61, 4, 198, 186, 250, 75, 235, 92, 197,
+ 220, 61, 4, 198, 186, 250, 75, 234, 14, 232, 136, 101, 234, 14, 232, 136,
+ 104, 205, 206, 206, 181, 250, 32, 16, 196, 23, 206, 181, 250, 32, 16,
+ 213, 97, 206, 181, 250, 32, 16, 208, 147, 206, 181, 250, 32, 16, 248, 16,
+ 206, 181, 250, 32, 16, 204, 171, 206, 181, 250, 32, 16, 198, 197, 234,
+ 30, 3, 4, 223, 168, 63, 197, 53, 109, 204, 167, 109, 235, 101, 109, 210,
+ 213, 109, 207, 168, 51, 250, 207, 229, 213, 210, 196, 109, 131, 6, 1,
+ 249, 227, 131, 6, 1, 247, 110, 131, 6, 1, 196, 121, 131, 6, 1, 231, 13,
+ 131, 6, 1, 236, 141, 131, 6, 1, 193, 38, 131, 6, 1, 192, 55, 131, 6, 1,
+ 235, 12, 131, 6, 1, 192, 81, 131, 6, 1, 223, 69, 131, 6, 1, 88, 223, 69,
+ 131, 6, 1, 70, 131, 6, 1, 236, 162, 131, 6, 1, 222, 127, 131, 6, 1, 219,
+ 139, 131, 6, 1, 215, 155, 131, 6, 1, 215, 46, 131, 6, 1, 211, 196, 131,
+ 6, 1, 209, 185, 131, 6, 1, 207, 72, 131, 6, 1, 202, 241, 131, 6, 1, 197,
+ 251, 131, 6, 1, 197, 88, 131, 6, 1, 232, 92, 131, 6, 1, 229, 198, 131, 6,
+ 1, 211, 131, 131, 6, 1, 210, 181, 131, 6, 1, 203, 167, 131, 6, 1, 198,
+ 97, 131, 6, 1, 242, 174, 131, 6, 1, 204, 64, 131, 6, 1, 193, 47, 131, 6,
+ 1, 193, 49, 131, 6, 1, 193, 82, 131, 6, 1, 202, 135, 144, 131, 6, 1, 192,
+ 214, 131, 6, 1, 2, 192, 179, 131, 6, 1, 2, 192, 180, 4, 200, 147, 131, 6,
+ 1, 193, 1, 131, 6, 1, 223, 110, 2, 192, 179, 131, 6, 1, 248, 28, 192,
+ 179, 131, 6, 1, 223, 110, 248, 28, 192, 179, 131, 6, 1, 232, 216, 131, 6,
+ 1, 223, 67, 131, 6, 1, 203, 166, 131, 6, 1, 198, 160, 64, 131, 6, 1, 220,
+ 61, 215, 155, 131, 2, 1, 249, 227, 131, 2, 1, 247, 110, 131, 2, 1, 196,
+ 121, 131, 2, 1, 231, 13, 131, 2, 1, 236, 141, 131, 2, 1, 193, 38, 131, 2,
+ 1, 192, 55, 131, 2, 1, 235, 12, 131, 2, 1, 192, 81, 131, 2, 1, 223, 69,
+ 131, 2, 1, 88, 223, 69, 131, 2, 1, 70, 131, 2, 1, 236, 162, 131, 2, 1,
+ 222, 127, 131, 2, 1, 219, 139, 131, 2, 1, 215, 155, 131, 2, 1, 215, 46,
+ 131, 2, 1, 211, 196, 131, 2, 1, 209, 185, 131, 2, 1, 207, 72, 131, 2, 1,
+ 202, 241, 131, 2, 1, 197, 251, 131, 2, 1, 197, 88, 131, 2, 1, 232, 92,
+ 131, 2, 1, 229, 198, 131, 2, 1, 211, 131, 131, 2, 1, 210, 181, 131, 2, 1,
+ 203, 167, 131, 2, 1, 198, 97, 131, 2, 1, 242, 174, 131, 2, 1, 204, 64,
+ 131, 2, 1, 193, 47, 131, 2, 1, 193, 49, 131, 2, 1, 193, 82, 131, 2, 1,
+ 202, 135, 144, 131, 2, 1, 192, 214, 131, 2, 1, 2, 192, 179, 131, 2, 1, 2,
+ 192, 180, 4, 200, 147, 131, 2, 1, 193, 1, 131, 2, 1, 223, 110, 2, 192,
+ 179, 131, 2, 1, 248, 28, 192, 179, 131, 2, 1, 223, 110, 248, 28, 192,
+ 179, 131, 2, 1, 232, 216, 131, 2, 1, 223, 67, 131, 2, 1, 203, 166, 131,
+ 2, 1, 198, 160, 64, 131, 2, 1, 220, 61, 215, 155, 8, 6, 1, 220, 202, 4,
+ 55, 161, 8, 2, 1, 220, 202, 4, 55, 161, 8, 6, 1, 220, 202, 4, 85, 199,
+ 90, 8, 6, 1, 211, 94, 4, 111, 8, 6, 1, 208, 112, 4, 200, 147, 8, 2, 1,
+ 41, 4, 111, 8, 2, 1, 200, 229, 4, 237, 11, 111, 8, 6, 1, 230, 125, 4,
+ 237, 59, 8, 2, 1, 230, 125, 4, 237, 59, 8, 6, 1, 222, 185, 4, 237, 59, 8,
+ 2, 1, 222, 185, 4, 237, 59, 8, 6, 1, 192, 156, 4, 237, 59, 8, 2, 1, 192,
+ 156, 4, 237, 59, 8, 6, 1, 250, 252, 8, 6, 1, 218, 237, 4, 128, 8, 6, 1,
+ 163, 64, 8, 6, 1, 163, 250, 252, 8, 2, 1, 196, 237, 4, 51, 128, 8, 6, 1,
+ 194, 203, 4, 128, 8, 2, 1, 194, 203, 4, 128, 8, 2, 1, 196, 237, 4, 238,
+ 142, 8, 6, 1, 138, 230, 124, 8, 2, 1, 138, 230, 124, 8, 2, 1, 200, 145,
+ 210, 77, 8, 2, 1, 234, 253, 4, 213, 108, 8, 2, 1, 163, 208, 112, 4, 200,
+ 147, 8, 2, 1, 185, 4, 132, 207, 82, 223, 145, 8, 1, 2, 6, 163, 71, 8,
+ 201, 155, 2, 1, 223, 65, 73, 1, 6, 196, 236, 8, 6, 1, 206, 159, 4, 201,
+ 75, 200, 147, 8, 6, 1, 192, 156, 4, 201, 75, 200, 147, 92, 6, 1, 251, 20,
+ 92, 2, 1, 251, 20, 92, 6, 1, 196, 36, 92, 2, 1, 196, 36, 92, 6, 1, 231,
+ 204, 92, 2, 1, 231, 204, 92, 6, 1, 237, 223, 92, 2, 1, 237, 223, 92, 6,
+ 1, 234, 149, 92, 2, 1, 234, 149, 92, 6, 1, 202, 176, 92, 2, 1, 202, 176,
+ 92, 6, 1, 192, 93, 92, 2, 1, 192, 93, 92, 6, 1, 230, 15, 92, 2, 1, 230,
+ 15, 92, 6, 1, 199, 204, 92, 2, 1, 199, 204, 92, 6, 1, 228, 55, 92, 2, 1,
+ 228, 55, 92, 6, 1, 222, 111, 92, 2, 1, 222, 111, 92, 6, 1, 220, 56, 92,
+ 2, 1, 220, 56, 92, 6, 1, 216, 175, 92, 2, 1, 216, 175, 92, 6, 1, 214, 60,
+ 92, 2, 1, 214, 60, 92, 6, 1, 221, 49, 92, 2, 1, 221, 49, 92, 6, 1, 74,
+ 92, 2, 1, 74, 92, 6, 1, 210, 51, 92, 2, 1, 210, 51, 92, 6, 1, 207, 55,
+ 92, 2, 1, 207, 55, 92, 6, 1, 203, 87, 92, 2, 1, 203, 87, 92, 6, 1, 200,
+ 100, 92, 2, 1, 200, 100, 92, 6, 1, 197, 119, 92, 2, 1, 197, 119, 92, 6,
+ 1, 233, 11, 92, 2, 1, 233, 11, 92, 6, 1, 221, 227, 92, 2, 1, 221, 227,
+ 92, 6, 1, 209, 62, 92, 2, 1, 209, 62, 92, 6, 1, 211, 188, 92, 2, 1, 211,
+ 188, 92, 6, 1, 237, 9, 251, 26, 92, 2, 1, 237, 9, 251, 26, 92, 6, 1, 40,
+ 92, 251, 57, 92, 2, 1, 40, 92, 251, 57, 92, 6, 1, 238, 165, 234, 149, 92,
+ 2, 1, 238, 165, 234, 149, 92, 6, 1, 237, 9, 222, 111, 92, 2, 1, 237, 9,
+ 222, 111, 92, 6, 1, 237, 9, 214, 60, 92, 2, 1, 237, 9, 214, 60, 92, 6, 1,
+ 238, 165, 214, 60, 92, 2, 1, 238, 165, 214, 60, 92, 6, 1, 40, 92, 211,
+ 188, 92, 2, 1, 40, 92, 211, 188, 92, 6, 1, 206, 43, 92, 2, 1, 206, 43,
+ 92, 6, 1, 238, 180, 204, 4, 92, 2, 1, 238, 180, 204, 4, 92, 6, 1, 40, 92,
+ 204, 4, 92, 2, 1, 40, 92, 204, 4, 92, 6, 1, 40, 92, 233, 255, 92, 2, 1,
+ 40, 92, 233, 255, 92, 6, 1, 251, 40, 221, 232, 92, 2, 1, 251, 40, 221,
+ 232, 92, 6, 1, 237, 9, 229, 6, 92, 2, 1, 237, 9, 229, 6, 92, 6, 1, 40,
+ 92, 229, 6, 92, 2, 1, 40, 92, 229, 6, 92, 6, 1, 40, 92, 144, 92, 2, 1,
+ 40, 92, 144, 92, 6, 1, 220, 201, 144, 92, 2, 1, 220, 201, 144, 92, 6, 1,
+ 40, 92, 229, 219, 92, 2, 1, 40, 92, 229, 219, 92, 6, 1, 40, 92, 230, 18,
+ 92, 2, 1, 40, 92, 230, 18, 92, 6, 1, 40, 92, 231, 199, 92, 2, 1, 40, 92,
+ 231, 199, 92, 6, 1, 40, 92, 236, 165, 92, 2, 1, 40, 92, 236, 165, 92, 6,
+ 1, 40, 92, 203, 226, 92, 2, 1, 40, 92, 203, 226, 92, 6, 1, 40, 212, 245,
+ 203, 226, 92, 2, 1, 40, 212, 245, 203, 226, 92, 6, 1, 40, 212, 245, 214,
+ 113, 92, 2, 1, 40, 212, 245, 214, 113, 92, 6, 1, 40, 212, 245, 212, 181,
+ 92, 2, 1, 40, 212, 245, 212, 181, 92, 6, 1, 40, 212, 245, 194, 126, 92,
+ 2, 1, 40, 212, 245, 194, 126, 92, 16, 222, 135, 92, 16, 216, 176, 207,
+ 55, 92, 16, 210, 52, 207, 55, 92, 16, 202, 8, 92, 16, 200, 101, 207, 55,
+ 92, 16, 221, 228, 207, 55, 92, 16, 203, 227, 203, 87, 92, 6, 1, 238, 165,
+ 204, 4, 92, 2, 1, 238, 165, 204, 4, 92, 6, 1, 238, 165, 231, 199, 92, 2,
+ 1, 238, 165, 231, 199, 92, 38, 214, 61, 58, 92, 38, 202, 128, 250, 45,
+ 92, 38, 202, 128, 219, 248, 92, 6, 1, 247, 212, 221, 232, 92, 2, 1, 247,
+ 212, 221, 232, 92, 40, 212, 245, 232, 71, 201, 238, 92, 40, 212, 245,
+ 236, 206, 208, 159, 77, 92, 40, 212, 245, 223, 170, 208, 159, 77, 92, 40,
+ 212, 245, 196, 107, 236, 177, 92, 232, 109, 90, 230, 78, 92, 232, 71,
+ 201, 238, 92, 216, 25, 236, 177, 98, 2, 1, 250, 224, 98, 2, 1, 248, 207,
+ 98, 2, 1, 231, 203, 98, 2, 1, 236, 123, 98, 2, 1, 234, 88, 98, 2, 1, 196,
+ 20, 98, 2, 1, 192, 79, 98, 2, 1, 200, 125, 98, 2, 1, 223, 190, 98, 2, 1,
+ 222, 121, 98, 2, 1, 220, 67, 98, 2, 1, 217, 160, 98, 2, 1, 215, 51, 98,
+ 2, 1, 211, 211, 98, 2, 1, 210, 247, 98, 2, 1, 192, 67, 98, 2, 1, 208, 53,
+ 98, 2, 1, 206, 40, 98, 2, 1, 200, 112, 98, 2, 1, 197, 77, 98, 2, 1, 210,
+ 86, 98, 2, 1, 221, 237, 98, 2, 1, 231, 75, 98, 2, 1, 208, 224, 98, 2, 1,
+ 203, 224, 98, 2, 1, 242, 201, 98, 2, 1, 246, 243, 98, 2, 1, 223, 10, 98,
+ 2, 1, 242, 138, 98, 2, 1, 246, 101, 98, 2, 1, 193, 207, 98, 2, 1, 223,
+ 25, 98, 2, 1, 230, 95, 98, 2, 1, 229, 255, 98, 2, 1, 229, 165, 98, 2, 1,
+ 194, 111, 98, 2, 1, 230, 28, 98, 2, 1, 229, 31, 98, 2, 1, 193, 3, 98, 2,
+ 1, 251, 97, 199, 110, 1, 168, 199, 110, 1, 193, 125, 199, 110, 1, 193,
+ 124, 199, 110, 1, 193, 114, 199, 110, 1, 193, 112, 199, 110, 1, 248, 69,
+ 251, 145, 193, 107, 199, 110, 1, 193, 107, 199, 110, 1, 193, 122, 199,
+ 110, 1, 193, 119, 199, 110, 1, 193, 121, 199, 110, 1, 193, 120, 199, 110,
+ 1, 193, 29, 199, 110, 1, 193, 116, 199, 110, 1, 193, 105, 199, 110, 1,
+ 198, 37, 193, 105, 199, 110, 1, 193, 102, 199, 110, 1, 193, 110, 199,
+ 110, 1, 248, 69, 251, 145, 193, 110, 199, 110, 1, 198, 37, 193, 110, 199,
+ 110, 1, 193, 109, 199, 110, 1, 193, 129, 199, 110, 1, 193, 103, 199, 110,
+ 1, 198, 37, 193, 103, 199, 110, 1, 193, 92, 199, 110, 1, 198, 37, 193,
+ 92, 199, 110, 1, 193, 22, 199, 110, 1, 193, 71, 199, 110, 1, 251, 70,
+ 193, 71, 199, 110, 1, 198, 37, 193, 71, 199, 110, 1, 193, 101, 199, 110,
+ 1, 193, 100, 199, 110, 1, 193, 97, 199, 110, 1, 198, 37, 193, 111, 199,
+ 110, 1, 198, 37, 193, 95, 199, 110, 1, 193, 93, 199, 110, 1, 192, 214,
+ 199, 110, 1, 193, 90, 199, 110, 1, 193, 88, 199, 110, 1, 193, 113, 199,
+ 110, 1, 198, 37, 193, 113, 199, 110, 1, 249, 232, 193, 113, 199, 110, 1,
+ 193, 87, 199, 110, 1, 193, 85, 199, 110, 1, 193, 86, 199, 110, 1, 193,
+ 84, 199, 110, 1, 193, 83, 199, 110, 1, 193, 123, 199, 110, 1, 193, 81,
+ 199, 110, 1, 193, 79, 199, 110, 1, 193, 78, 199, 110, 1, 193, 75, 199,
+ 110, 1, 193, 72, 199, 110, 1, 200, 91, 193, 72, 199, 110, 1, 193, 70,
+ 199, 110, 1, 193, 69, 199, 110, 1, 193, 1, 199, 110, 73, 1, 220, 174, 77,
+ 199, 110, 204, 166, 77, 199, 110, 116, 222, 228, 36, 5, 219, 106, 36, 5,
+ 216, 84, 36, 5, 207, 47, 36, 5, 202, 204, 36, 5, 203, 210, 36, 5, 247,
+ 219, 36, 5, 199, 29, 36, 5, 242, 62, 36, 5, 213, 135, 36, 5, 212, 164,
+ 36, 5, 231, 6, 212, 26, 36, 5, 192, 7, 36, 5, 236, 144, 36, 5, 237, 130,
+ 36, 5, 222, 232, 36, 5, 199, 175, 36, 5, 242, 187, 36, 5, 210, 64, 36, 5,
+ 209, 197, 36, 5, 231, 90, 36, 5, 231, 86, 36, 5, 231, 87, 36, 5, 231, 88,
+ 36, 5, 202, 92, 36, 5, 202, 46, 36, 5, 202, 59, 36, 5, 202, 91, 36, 5,
+ 202, 64, 36, 5, 202, 65, 36, 5, 202, 51, 36, 5, 246, 181, 36, 5, 246,
+ 160, 36, 5, 246, 162, 36, 5, 246, 180, 36, 5, 246, 178, 36, 5, 246, 179,
+ 36, 5, 246, 161, 36, 5, 191, 225, 36, 5, 191, 203, 36, 5, 191, 216, 36,
+ 5, 191, 224, 36, 5, 191, 219, 36, 5, 191, 220, 36, 5, 191, 208, 36, 5,
+ 246, 176, 36, 5, 246, 163, 36, 5, 246, 165, 36, 5, 246, 175, 36, 5, 246,
+ 173, 36, 5, 246, 174, 36, 5, 246, 164, 36, 5, 208, 124, 36, 5, 208, 114,
+ 36, 5, 208, 120, 36, 5, 208, 123, 36, 5, 208, 121, 36, 5, 208, 122, 36,
+ 5, 208, 119, 36, 5, 220, 212, 36, 5, 220, 204, 36, 5, 220, 207, 36, 5,
+ 220, 211, 36, 5, 220, 208, 36, 5, 220, 209, 36, 5, 220, 205, 36, 5, 193,
+ 164, 36, 5, 193, 151, 36, 5, 193, 159, 36, 5, 193, 163, 36, 5, 193, 161,
+ 36, 5, 193, 162, 36, 5, 193, 158, 36, 5, 230, 136, 36, 5, 230, 126, 36,
+ 5, 230, 129, 36, 5, 230, 135, 36, 5, 230, 131, 36, 5, 230, 132, 36, 5,
+ 230, 128, 38, 42, 1, 248, 123, 38, 42, 1, 196, 123, 38, 42, 1, 231, 70,
+ 38, 42, 1, 237, 116, 38, 42, 1, 192, 62, 38, 42, 1, 192, 85, 38, 42, 1,
+ 160, 38, 42, 1, 234, 124, 38, 42, 1, 234, 99, 38, 42, 1, 234, 88, 38, 42,
+ 1, 74, 38, 42, 1, 210, 181, 38, 42, 1, 234, 21, 38, 42, 1, 234, 9, 38,
+ 42, 1, 200, 79, 38, 42, 1, 144, 38, 42, 1, 198, 112, 38, 42, 1, 242, 245,
+ 38, 42, 1, 204, 64, 38, 42, 1, 204, 15, 38, 42, 1, 232, 216, 38, 42, 1,
+ 234, 5, 38, 42, 1, 64, 38, 42, 1, 223, 251, 38, 42, 1, 236, 163, 38, 42,
+ 1, 216, 43, 197, 92, 38, 42, 1, 193, 84, 38, 42, 1, 192, 214, 38, 42, 1,
+ 223, 109, 64, 38, 42, 1, 219, 147, 192, 179, 38, 42, 1, 248, 28, 192,
+ 179, 38, 42, 1, 223, 109, 248, 28, 192, 179, 51, 250, 208, 201, 150, 217,
+ 122, 51, 250, 208, 235, 111, 201, 150, 217, 122, 46, 201, 150, 186, 51,
+ 201, 150, 186, 46, 235, 111, 201, 150, 186, 51, 235, 111, 201, 150, 186,
+ 208, 39, 223, 132, 217, 122, 208, 39, 235, 111, 223, 132, 217, 122, 235,
+ 111, 198, 205, 217, 122, 46, 198, 205, 186, 51, 198, 205, 186, 208, 39,
+ 202, 106, 46, 208, 39, 211, 213, 186, 51, 208, 39, 211, 213, 186, 234,
+ 172, 238, 220, 210, 242, 232, 138, 210, 242, 207, 168, 232, 138, 210,
+ 242, 228, 108, 235, 111, 212, 21, 235, 92, 250, 218, 197, 30, 250, 218,
+ 235, 111, 207, 96, 250, 207, 55, 212, 18, 228, 111, 223, 121, 223, 130,
+ 211, 41, 247, 160, 228, 112, 4, 237, 14, 199, 91, 4, 207, 82, 58, 46,
+ 132, 210, 233, 186, 51, 132, 210, 233, 186, 199, 91, 4, 78, 58, 199, 91,
+ 4, 78, 63, 46, 84, 248, 194, 4, 208, 153, 51, 84, 248, 194, 4, 208, 153,
+ 198, 249, 46, 138, 186, 198, 249, 51, 138, 186, 247, 188, 46, 138, 186,
+ 247, 188, 51, 138, 186, 46, 203, 109, 124, 186, 51, 203, 109, 124, 186,
+ 46, 55, 210, 230, 51, 55, 210, 230, 103, 236, 112, 136, 90, 78, 209, 37,
+ 90, 78, 136, 103, 236, 112, 209, 37, 108, 232, 119, 78, 209, 37, 232,
+ 214, 78, 77, 207, 168, 208, 159, 77, 84, 199, 90, 207, 82, 209, 191, 194,
+ 11, 204, 166, 85, 236, 114, 163, 242, 38, 208, 39, 236, 114, 208, 39,
+ 242, 38, 163, 204, 180, 237, 239, 4, 46, 230, 180, 237, 239, 4, 51, 230,
+ 180, 163, 237, 238, 198, 249, 138, 205, 209, 57, 197, 221, 237, 185, 199,
+ 158, 237, 185, 201, 254, 232, 71, 201, 238, 84, 203, 41, 236, 111, 194,
+ 58, 84, 219, 175, 246, 224, 55, 228, 111, 207, 168, 242, 38, 55, 219, 48,
+ 208, 142, 77, 237, 186, 4, 46, 197, 33, 55, 201, 89, 77, 223, 121, 132,
+ 222, 69, 223, 121, 132, 222, 70, 4, 222, 70, 58, 132, 222, 69, 132, 222,
+ 70, 4, 236, 114, 55, 202, 31, 242, 38, 235, 111, 202, 189, 198, 170, 237,
+ 238, 217, 32, 242, 38, 210, 241, 77, 209, 36, 234, 113, 77, 238, 221,
+ 196, 107, 236, 177, 238, 184, 210, 199, 4, 51, 238, 182, 238, 184, 210,
+ 199, 4, 46, 238, 182, 199, 66, 3, 6, 233, 242, 12, 48, 207, 198, 12, 48,
+ 242, 95, 12, 48, 205, 212, 101, 12, 48, 205, 212, 104, 12, 48, 205, 212,
+ 133, 12, 48, 210, 116, 12, 48, 247, 173, 12, 48, 200, 164, 12, 48, 221,
+ 125, 101, 12, 48, 221, 125, 104, 12, 48, 236, 174, 12, 48, 205, 216, 12,
+ 48, 2, 101, 12, 48, 2, 104, 12, 48, 220, 89, 101, 12, 48, 220, 89, 104,
+ 12, 48, 220, 89, 133, 12, 48, 220, 89, 134, 12, 48, 202, 224, 12, 48,
+ 199, 162, 12, 48, 202, 221, 101, 12, 48, 202, 221, 104, 12, 48, 229, 234,
+ 101, 12, 48, 229, 234, 104, 12, 48, 230, 62, 12, 48, 208, 28, 12, 48,
+ 242, 184, 12, 48, 201, 123, 12, 48, 216, 29, 12, 48, 237, 113, 12, 48,
+ 216, 18, 12, 48, 242, 113, 12, 48, 194, 130, 101, 12, 48, 194, 130, 104,
+ 12, 48, 232, 231, 12, 48, 210, 194, 101, 12, 48, 210, 194, 104, 12, 48,
+ 203, 82, 138, 198, 196, 198, 123, 12, 48, 238, 205, 12, 48, 236, 134, 12,
+ 48, 223, 57, 12, 48, 247, 211, 80, 242, 78, 12, 48, 233, 181, 12, 48,
+ 202, 130, 101, 12, 48, 202, 130, 104, 12, 48, 248, 209, 12, 48, 203, 89,
+ 12, 48, 247, 49, 203, 89, 12, 48, 214, 183, 101, 12, 48, 214, 183, 104,
+ 12, 48, 214, 183, 133, 12, 48, 214, 183, 134, 12, 48, 216, 247, 12, 48,
+ 204, 6, 12, 48, 208, 34, 12, 48, 233, 211, 12, 48, 211, 225, 12, 48, 247,
+ 132, 101, 12, 48, 247, 132, 104, 12, 48, 217, 40, 12, 48, 216, 24, 12,
+ 48, 230, 214, 101, 12, 48, 230, 214, 104, 12, 48, 230, 214, 133, 12, 48,
+ 199, 108, 12, 48, 242, 77, 12, 48, 194, 91, 101, 12, 48, 194, 91, 104,
+ 12, 48, 247, 49, 205, 205, 12, 48, 203, 82, 228, 208, 12, 48, 228, 208,
+ 12, 48, 247, 49, 202, 143, 12, 48, 247, 49, 204, 1, 12, 48, 232, 149, 12,
+ 48, 247, 49, 246, 200, 12, 48, 203, 82, 194, 153, 12, 48, 194, 154, 101,
+ 12, 48, 194, 154, 104, 12, 48, 242, 116, 12, 48, 247, 49, 230, 245, 12,
+ 48, 184, 101, 12, 48, 184, 104, 12, 48, 247, 49, 219, 84, 12, 48, 247,
+ 49, 231, 184, 12, 48, 216, 13, 101, 12, 48, 216, 13, 104, 12, 48, 208,
+ 41, 12, 48, 247, 223, 12, 48, 247, 49, 200, 118, 220, 34, 12, 48, 247,
+ 49, 220, 37, 12, 48, 247, 49, 194, 52, 12, 48, 247, 49, 232, 168, 12, 48,
+ 234, 183, 101, 12, 48, 234, 183, 104, 12, 48, 234, 183, 133, 12, 48, 247,
+ 49, 234, 182, 12, 48, 229, 245, 12, 48, 247, 49, 228, 204, 12, 48, 247,
+ 207, 12, 48, 231, 54, 12, 48, 247, 49, 232, 224, 12, 48, 247, 49, 248,
+ 13, 12, 48, 247, 49, 206, 55, 12, 48, 203, 82, 194, 81, 12, 48, 203, 82,
+ 193, 61, 12, 48, 247, 49, 232, 90, 12, 48, 223, 64, 233, 216, 12, 48,
+ 247, 49, 233, 216, 12, 48, 223, 64, 198, 251, 12, 48, 247, 49, 198, 251,
+ 12, 48, 223, 64, 235, 84, 12, 48, 247, 49, 235, 84, 12, 48, 198, 6, 12,
+ 48, 223, 64, 198, 6, 12, 48, 247, 49, 198, 6, 81, 48, 101, 81, 48, 219,
+ 175, 81, 48, 236, 114, 81, 48, 203, 4, 81, 48, 205, 211, 81, 48, 128, 81,
+ 48, 104, 81, 48, 219, 204, 81, 48, 217, 160, 81, 48, 220, 13, 81, 48,
+ 234, 62, 81, 48, 174, 81, 48, 142, 247, 173, 81, 48, 238, 208, 81, 48,
+ 228, 49, 81, 48, 200, 164, 81, 48, 211, 184, 247, 173, 81, 48, 221, 124,
+ 81, 48, 209, 138, 81, 48, 194, 0, 81, 48, 202, 119, 81, 48, 51, 211, 184,
+ 247, 173, 81, 48, 229, 166, 234, 83, 81, 48, 200, 30, 81, 48, 236, 174,
+ 81, 48, 205, 216, 81, 48, 242, 95, 81, 48, 209, 88, 81, 48, 251, 79, 81,
+ 48, 216, 4, 81, 48, 234, 83, 81, 48, 234, 189, 81, 48, 205, 245, 81, 48,
+ 230, 254, 81, 48, 230, 255, 202, 238, 81, 48, 233, 215, 81, 48, 248, 27,
+ 81, 48, 194, 23, 81, 48, 242, 206, 81, 48, 207, 27, 81, 48, 223, 186, 81,
+ 48, 202, 236, 81, 48, 220, 88, 81, 48, 238, 218, 81, 48, 202, 110, 81,
+ 48, 216, 9, 81, 48, 207, 69, 81, 48, 194, 8, 81, 48, 211, 202, 81, 48,
+ 198, 14, 81, 48, 235, 64, 81, 48, 203, 195, 199, 162, 81, 48, 235, 111,
+ 242, 95, 81, 48, 184, 201, 214, 81, 48, 103, 230, 37, 81, 48, 203, 201,
+ 81, 48, 247, 180, 81, 48, 202, 220, 81, 48, 247, 139, 81, 48, 201, 253,
+ 81, 48, 229, 233, 81, 48, 230, 79, 81, 48, 236, 118, 81, 48, 230, 62, 81,
+ 48, 247, 160, 81, 48, 208, 28, 81, 48, 205, 229, 81, 48, 236, 208, 81,
+ 48, 249, 237, 81, 48, 202, 106, 81, 48, 213, 110, 81, 48, 201, 123, 81,
+ 48, 206, 1, 81, 48, 216, 29, 81, 48, 198, 195, 81, 48, 220, 170, 81, 48,
+ 201, 238, 81, 48, 237, 113, 81, 48, 194, 106, 81, 48, 236, 147, 213, 110,
+ 81, 48, 242, 34, 81, 48, 232, 64, 81, 48, 242, 107, 81, 48, 202, 3, 81,
+ 48, 194, 129, 81, 48, 232, 231, 81, 48, 242, 103, 81, 48, 233, 54, 81,
+ 48, 55, 193, 223, 81, 48, 138, 198, 196, 198, 123, 81, 48, 202, 251, 81,
+ 48, 233, 66, 81, 48, 238, 205, 81, 48, 236, 134, 81, 48, 209, 84, 81, 48,
+ 223, 57, 81, 48, 217, 14, 81, 48, 199, 89, 81, 48, 201, 70, 81, 48, 219,
+ 198, 81, 48, 197, 8, 81, 48, 233, 9, 81, 48, 247, 211, 80, 242, 78, 81,
+ 48, 203, 115, 81, 48, 235, 111, 200, 22, 81, 48, 194, 75, 81, 48, 203,
+ 13, 81, 48, 236, 194, 81, 48, 233, 181, 81, 48, 202, 146, 81, 48, 54, 81,
+ 48, 201, 240, 81, 48, 202, 129, 81, 48, 198, 222, 81, 48, 230, 223, 81,
+ 48, 246, 186, 81, 48, 202, 24, 81, 48, 248, 209, 81, 48, 207, 139, 81,
+ 48, 203, 89, 81, 48, 223, 49, 81, 48, 214, 182, 81, 48, 204, 6, 81, 48,
+ 233, 42, 81, 48, 211, 225, 81, 48, 250, 217, 81, 48, 209, 214, 81, 48,
+ 234, 193, 81, 48, 247, 131, 81, 48, 217, 40, 81, 48, 216, 114, 81, 48,
+ 204, 187, 81, 48, 250, 81, 81, 48, 216, 24, 81, 48, 199, 0, 81, 48, 211,
+ 171, 81, 48, 247, 215, 81, 48, 201, 236, 81, 48, 242, 46, 81, 48, 230,
+ 213, 81, 48, 199, 108, 81, 48, 223, 149, 81, 48, 247, 229, 81, 48, 194,
+ 154, 234, 83, 81, 48, 242, 77, 81, 48, 194, 90, 81, 48, 205, 205, 81, 48,
+ 228, 208, 81, 48, 202, 143, 81, 48, 196, 149, 81, 48, 248, 118, 81, 48,
+ 210, 14, 81, 48, 248, 239, 81, 48, 204, 1, 81, 48, 207, 236, 81, 48, 206,
+ 195, 81, 48, 232, 149, 81, 48, 247, 213, 81, 48, 246, 200, 81, 48, 247,
+ 253, 81, 48, 216, 26, 81, 48, 194, 153, 81, 48, 242, 116, 81, 48, 194,
+ 48, 81, 48, 236, 186, 81, 48, 196, 21, 81, 48, 230, 245, 81, 48, 219, 84,
+ 81, 48, 231, 184, 81, 48, 216, 12, 81, 48, 203, 3, 81, 48, 203, 195, 200,
+ 146, 248, 13, 81, 48, 208, 41, 81, 48, 247, 223, 81, 48, 193, 246, 81,
+ 48, 233, 91, 81, 48, 220, 34, 81, 48, 200, 118, 220, 34, 81, 48, 220, 30,
+ 81, 48, 202, 173, 81, 48, 220, 37, 81, 48, 194, 52, 81, 48, 232, 168, 81,
+ 48, 234, 182, 81, 48, 229, 245, 81, 48, 232, 107, 81, 48, 228, 204, 81,
+ 48, 247, 207, 81, 48, 200, 131, 81, 48, 230, 86, 81, 48, 233, 2, 81, 48,
+ 206, 88, 194, 48, 81, 48, 246, 188, 81, 48, 231, 54, 81, 48, 232, 224,
+ 81, 48, 248, 13, 81, 48, 206, 55, 81, 48, 237, 98, 81, 48, 194, 81, 81,
+ 48, 229, 209, 81, 48, 193, 61, 81, 48, 216, 125, 81, 48, 247, 248, 81,
+ 48, 234, 95, 81, 48, 232, 90, 81, 48, 198, 167, 81, 48, 235, 67, 81, 48,
+ 208, 22, 81, 48, 213, 112, 81, 48, 233, 216, 81, 48, 198, 251, 81, 48,
+ 235, 84, 81, 48, 198, 6, 81, 48, 232, 171, 149, 237, 57, 246, 100, 46,
+ 115, 207, 101, 149, 237, 57, 246, 100, 95, 115, 63, 149, 237, 57, 246,
+ 100, 46, 115, 85, 26, 207, 101, 149, 237, 57, 246, 100, 95, 115, 85, 26,
+ 63, 149, 237, 57, 246, 100, 232, 71, 201, 93, 149, 237, 57, 246, 100,
+ 201, 94, 232, 89, 58, 149, 237, 57, 246, 100, 201, 94, 232, 89, 63, 149,
+ 237, 57, 246, 100, 201, 94, 232, 89, 220, 28, 149, 237, 57, 246, 100,
+ 201, 94, 232, 89, 113, 220, 28, 149, 237, 57, 246, 100, 201, 94, 232, 89,
+ 113, 207, 101, 149, 237, 57, 246, 100, 201, 94, 232, 89, 106, 220, 28,
+ 149, 237, 57, 246, 100, 211, 114, 149, 202, 160, 149, 242, 38, 149, 232,
+ 71, 201, 238, 236, 183, 77, 223, 50, 223, 169, 202, 23, 109, 149, 223,
+ 80, 77, 149, 242, 80, 77, 149, 31, 192, 76, 46, 250, 208, 186, 51, 250,
+ 208, 186, 46, 55, 250, 208, 186, 51, 55, 250, 208, 186, 46, 238, 224,
+ 186, 51, 238, 224, 186, 46, 62, 238, 224, 186, 51, 62, 238, 224, 186, 46,
+ 60, 219, 247, 186, 51, 60, 219, 247, 186, 209, 153, 77, 231, 123, 77, 46,
+ 198, 237, 204, 2, 186, 51, 198, 237, 204, 2, 186, 46, 62, 219, 247, 186,
+ 51, 62, 219, 247, 186, 46, 62, 198, 237, 204, 2, 186, 51, 62, 198, 237,
+ 204, 2, 186, 46, 62, 50, 186, 51, 62, 50, 186, 194, 125, 237, 185, 207,
+ 168, 55, 209, 100, 208, 142, 77, 55, 209, 100, 208, 142, 77, 132, 55,
+ 209, 100, 208, 142, 77, 209, 153, 122, 233, 91, 230, 34, 212, 234, 101,
+ 230, 34, 212, 234, 104, 230, 34, 212, 234, 133, 230, 34, 212, 234, 134,
+ 230, 34, 212, 234, 151, 230, 34, 212, 234, 170, 230, 34, 212, 234, 179,
+ 230, 34, 212, 234, 174, 230, 34, 212, 234, 182, 149, 219, 228, 158, 77,
+ 149, 207, 73, 158, 77, 149, 237, 66, 158, 77, 149, 234, 61, 158, 77, 30,
+ 203, 74, 78, 158, 77, 30, 55, 78, 158, 77, 194, 121, 237, 185, 84, 222,
+ 120, 207, 199, 77, 84, 222, 120, 207, 199, 4, 195, 248, 202, 174, 77, 84,
+ 222, 120, 207, 199, 122, 113, 230, 78, 84, 222, 120, 207, 199, 4, 195,
+ 248, 202, 174, 122, 113, 230, 78, 84, 222, 120, 207, 199, 122, 106, 230,
+ 78, 47, 209, 153, 77, 149, 200, 44, 219, 176, 233, 39, 204, 166, 109,
+ 230, 34, 212, 234, 200, 30, 230, 34, 212, 234, 197, 239, 230, 34, 212,
+ 234, 199, 184, 84, 149, 223, 80, 77, 217, 102, 77, 210, 224, 250, 245,
+ 77, 149, 65, 223, 172, 149, 138, 232, 250, 202, 160, 229, 140, 1, 2, 64,
+ 229, 140, 1, 64, 229, 140, 1, 2, 70, 229, 140, 1, 70, 229, 140, 1, 2, 68,
+ 229, 140, 1, 68, 229, 140, 1, 2, 71, 229, 140, 1, 71, 229, 140, 1, 2, 74,
+ 229, 140, 1, 74, 229, 140, 1, 160, 229, 140, 1, 231, 233, 229, 140, 1,
+ 221, 204, 229, 140, 1, 231, 46, 229, 140, 1, 221, 33, 229, 140, 1, 230,
+ 186, 229, 140, 1, 222, 57, 229, 140, 1, 231, 158, 229, 140, 1, 221, 113,
+ 229, 140, 1, 230, 254, 229, 140, 1, 188, 229, 140, 1, 192, 112, 229, 140,
+ 1, 203, 125, 229, 140, 1, 192, 30, 229, 140, 1, 201, 184, 229, 140, 1,
+ 191, 252, 229, 140, 1, 205, 223, 229, 140, 1, 192, 85, 229, 140, 1, 202,
+ 212, 229, 140, 1, 192, 8, 229, 140, 1, 189, 229, 140, 1, 238, 0, 229,
+ 140, 1, 199, 128, 229, 140, 1, 237, 16, 229, 140, 1, 2, 198, 45, 229,
+ 140, 1, 198, 45, 229, 140, 1, 235, 62, 229, 140, 1, 200, 79, 229, 140, 1,
+ 237, 116, 229, 140, 1, 155, 229, 140, 1, 236, 146, 229, 140, 1, 181, 229,
+ 140, 1, 214, 60, 229, 140, 1, 213, 22, 229, 140, 1, 214, 214, 229, 140,
+ 1, 213, 142, 229, 140, 1, 144, 229, 140, 1, 249, 3, 229, 140, 1, 166,
+ 229, 140, 1, 229, 178, 229, 140, 1, 248, 41, 229, 140, 1, 210, 51, 229,
+ 140, 1, 228, 181, 229, 140, 1, 247, 124, 229, 140, 1, 209, 51, 229, 140,
+ 1, 229, 255, 229, 140, 1, 248, 123, 229, 140, 1, 210, 181, 229, 140, 1,
+ 229, 43, 229, 140, 1, 247, 220, 229, 140, 1, 209, 198, 229, 140, 1, 172,
+ 229, 140, 1, 216, 175, 229, 140, 1, 215, 241, 229, 140, 1, 217, 48, 229,
+ 140, 1, 216, 91, 229, 140, 1, 2, 168, 229, 140, 1, 168, 229, 140, 1, 2,
+ 192, 214, 229, 140, 1, 192, 214, 229, 140, 1, 2, 193, 1, 229, 140, 1,
+ 193, 1, 229, 140, 1, 167, 229, 140, 1, 207, 151, 229, 140, 1, 206, 218,
+ 229, 140, 1, 208, 7, 229, 140, 1, 207, 55, 229, 140, 1, 2, 194, 169, 229,
+ 140, 1, 194, 169, 229, 140, 1, 194, 72, 229, 140, 1, 194, 111, 229, 140,
+ 1, 194, 36, 229, 140, 1, 215, 151, 229, 140, 1, 194, 223, 229, 140, 1, 2,
+ 160, 229, 140, 1, 2, 222, 57, 38, 222, 82, 195, 248, 202, 174, 77, 38,
+ 222, 82, 204, 185, 202, 174, 77, 222, 82, 195, 248, 202, 174, 77, 222,
+ 82, 204, 185, 202, 174, 77, 229, 140, 223, 80, 77, 229, 140, 195, 248,
+ 223, 80, 77, 229, 140, 236, 231, 192, 231, 222, 82, 55, 228, 111, 75, 1,
+ 2, 64, 75, 1, 64, 75, 1, 2, 70, 75, 1, 70, 75, 1, 2, 68, 75, 1, 68, 75,
+ 1, 2, 71, 75, 1, 71, 75, 1, 2, 74, 75, 1, 74, 75, 1, 160, 75, 1, 231,
+ 233, 75, 1, 221, 204, 75, 1, 231, 46, 75, 1, 221, 33, 75, 1, 230, 186,
+ 75, 1, 222, 57, 75, 1, 231, 158, 75, 1, 221, 113, 75, 1, 230, 254, 75, 1,
+ 188, 75, 1, 192, 112, 75, 1, 203, 125, 75, 1, 192, 30, 75, 1, 201, 184,
+ 75, 1, 191, 252, 75, 1, 205, 223, 75, 1, 192, 85, 75, 1, 202, 212, 75, 1,
+ 192, 8, 75, 1, 189, 75, 1, 238, 0, 75, 1, 199, 128, 75, 1, 237, 16, 75,
+ 1, 2, 198, 45, 75, 1, 198, 45, 75, 1, 235, 62, 75, 1, 200, 79, 75, 1,
+ 237, 116, 75, 1, 155, 75, 1, 236, 146, 75, 1, 181, 75, 1, 214, 60, 75, 1,
+ 213, 22, 75, 1, 214, 214, 75, 1, 213, 142, 75, 1, 144, 75, 1, 249, 3, 75,
+ 1, 166, 75, 1, 229, 178, 75, 1, 248, 41, 75, 1, 210, 51, 75, 1, 228, 181,
+ 75, 1, 247, 124, 75, 1, 209, 51, 75, 1, 229, 255, 75, 1, 248, 123, 75, 1,
+ 210, 181, 75, 1, 229, 43, 75, 1, 247, 220, 75, 1, 209, 198, 75, 1, 172,
+ 75, 1, 216, 175, 75, 1, 215, 241, 75, 1, 217, 48, 75, 1, 216, 91, 75, 1,
+ 2, 168, 75, 1, 168, 75, 1, 2, 192, 214, 75, 1, 192, 214, 75, 1, 2, 193,
+ 1, 75, 1, 193, 1, 75, 1, 167, 75, 1, 207, 151, 75, 1, 206, 218, 75, 1,
+ 208, 7, 75, 1, 207, 55, 75, 1, 2, 194, 169, 75, 1, 194, 169, 75, 1, 194,
+ 72, 75, 1, 194, 111, 75, 1, 194, 36, 75, 1, 215, 151, 75, 1, 194, 223,
+ 75, 1, 2, 160, 75, 1, 2, 222, 57, 75, 1, 196, 157, 75, 1, 196, 39, 75, 1,
+ 196, 123, 75, 1, 195, 252, 75, 85, 236, 114, 222, 82, 209, 76, 202, 174,
+ 77, 75, 223, 80, 77, 75, 195, 248, 223, 80, 77, 75, 236, 231, 221, 75,
+ 247, 197, 1, 249, 226, 247, 197, 1, 211, 93, 247, 197, 1, 218, 236, 247,
+ 197, 1, 233, 163, 247, 197, 1, 238, 95, 247, 197, 1, 200, 228, 247, 197,
+ 1, 215, 151, 247, 197, 1, 165, 247, 197, 1, 232, 44, 247, 197, 1, 222,
+ 184, 247, 197, 1, 230, 124, 247, 197, 1, 223, 65, 247, 197, 1, 208, 247,
+ 247, 197, 1, 193, 223, 247, 197, 1, 192, 72, 247, 197, 1, 246, 119, 247,
+ 197, 1, 204, 66, 247, 197, 1, 150, 247, 197, 1, 192, 155, 247, 197, 1,
+ 247, 52, 247, 197, 1, 206, 158, 247, 197, 1, 64, 247, 197, 1, 74, 247,
+ 197, 1, 71, 247, 197, 1, 234, 157, 247, 197, 1, 251, 63, 247, 197, 1,
+ 234, 150, 247, 197, 1, 250, 8, 247, 197, 1, 211, 130, 247, 197, 1, 250,
+ 224, 247, 197, 1, 234, 88, 247, 197, 1, 250, 214, 247, 197, 1, 234, 73,
+ 247, 197, 1, 234, 21, 247, 197, 1, 70, 247, 197, 1, 68, 247, 197, 1, 223,
+ 78, 247, 197, 1, 196, 236, 247, 197, 1, 214, 167, 247, 197, 1, 231, 2,
+ 247, 197, 1, 223, 225, 247, 197, 1, 185, 4, 78, 58, 247, 197, 1, 213,
+ 179, 30, 1, 221, 151, 30, 1, 202, 84, 30, 1, 221, 144, 30, 1, 214, 45,
+ 30, 1, 214, 43, 30, 1, 214, 42, 30, 1, 199, 103, 30, 1, 202, 73, 30, 1,
+ 207, 133, 30, 1, 207, 128, 30, 1, 207, 125, 30, 1, 207, 118, 30, 1, 207,
+ 113, 30, 1, 207, 108, 30, 1, 207, 119, 30, 1, 207, 131, 30, 1, 216, 153,
+ 30, 1, 210, 36, 30, 1, 202, 81, 30, 1, 210, 25, 30, 1, 203, 64, 30, 1,
+ 202, 78, 30, 1, 223, 247, 30, 1, 242, 144, 30, 1, 202, 88, 30, 1, 242,
+ 211, 30, 1, 221, 225, 30, 1, 199, 198, 30, 1, 210, 75, 30, 1, 229, 162,
+ 30, 1, 64, 30, 1, 251, 108, 30, 1, 168, 30, 1, 193, 118, 30, 1, 234, 50,
+ 30, 1, 71, 30, 1, 193, 56, 30, 1, 193, 69, 30, 1, 74, 30, 1, 194, 169,
+ 30, 1, 194, 160, 30, 1, 212, 0, 30, 1, 193, 1, 30, 1, 68, 30, 1, 194, 93,
+ 30, 1, 194, 111, 30, 1, 194, 72, 30, 1, 192, 214, 30, 1, 233, 230, 30, 1,
+ 193, 22, 30, 1, 70, 30, 232, 247, 30, 1, 202, 82, 30, 1, 214, 35, 30, 1,
+ 214, 37, 30, 1, 214, 40, 30, 1, 207, 126, 30, 1, 207, 107, 30, 1, 207,
+ 115, 30, 1, 207, 120, 30, 1, 207, 105, 30, 1, 216, 146, 30, 1, 216, 143,
+ 30, 1, 216, 147, 30, 1, 222, 105, 30, 1, 210, 31, 30, 1, 210, 17, 30, 1,
+ 210, 23, 30, 1, 210, 20, 30, 1, 210, 34, 30, 1, 210, 18, 30, 1, 222, 103,
+ 30, 1, 222, 101, 30, 1, 203, 57, 30, 1, 203, 55, 30, 1, 203, 47, 30, 1,
+ 203, 52, 30, 1, 203, 62, 30, 1, 211, 8, 30, 1, 202, 85, 30, 1, 193, 46,
+ 30, 1, 193, 40, 30, 1, 193, 41, 30, 1, 222, 104, 30, 1, 202, 86, 30, 1,
+ 193, 52, 30, 1, 192, 245, 30, 1, 192, 244, 30, 1, 192, 247, 30, 1, 192,
+ 201, 30, 1, 192, 202, 30, 1, 192, 205, 30, 1, 250, 123, 30, 1, 250, 117,
+ 149, 250, 193, 219, 164, 77, 149, 250, 193, 207, 169, 77, 149, 250, 193,
+ 90, 77, 149, 250, 193, 103, 77, 149, 250, 193, 112, 77, 149, 250, 193,
+ 232, 119, 77, 149, 250, 193, 198, 249, 77, 149, 250, 193, 85, 77, 149,
+ 250, 193, 247, 188, 77, 149, 250, 193, 232, 226, 77, 149, 250, 193, 205,
+ 212, 77, 149, 250, 193, 199, 192, 77, 149, 250, 193, 232, 112, 77, 149,
+ 250, 193, 229, 230, 77, 149, 250, 193, 234, 190, 77, 149, 250, 193, 217,
+ 161, 77, 247, 197, 1, 247, 124, 247, 197, 1, 192, 30, 247, 197, 1, 223,
+ 20, 247, 197, 1, 230, 186, 247, 197, 1, 234, 171, 247, 197, 1, 234, 70,
+ 247, 197, 1, 211, 194, 247, 197, 1, 211, 198, 247, 197, 1, 223, 105, 247,
+ 197, 1, 250, 195, 247, 197, 1, 223, 156, 247, 197, 1, 197, 47, 247, 197,
+ 1, 223, 207, 247, 197, 1, 214, 145, 247, 197, 1, 251, 56, 247, 197, 1,
+ 250, 3, 247, 197, 1, 250, 241, 247, 197, 1, 211, 219, 247, 197, 1, 211,
+ 201, 247, 197, 1, 223, 153, 247, 197, 52, 1, 211, 93, 247, 197, 52, 1,
+ 200, 228, 247, 197, 52, 1, 222, 184, 247, 197, 52, 1, 230, 124, 247, 197,
+ 1, 231, 85, 247, 197, 1, 219, 223, 247, 197, 1, 191, 232, 247, 197, 52,
+ 1, 232, 44, 247, 197, 1, 230, 144, 247, 197, 1, 220, 239, 247, 197, 1,
+ 212, 0, 247, 197, 1, 251, 72, 12, 201, 208, 200, 228, 12, 201, 208, 194,
+ 84, 12, 201, 208, 193, 198, 12, 201, 208, 247, 65, 12, 201, 208, 201, 80,
+ 12, 201, 208, 228, 101, 12, 201, 208, 228, 105, 12, 201, 208, 228, 190,
+ 12, 201, 208, 228, 102, 12, 201, 208, 200, 231, 12, 201, 208, 228, 104,
+ 12, 201, 208, 228, 100, 12, 201, 208, 228, 188, 12, 201, 208, 228, 103,
+ 12, 201, 208, 228, 99, 12, 201, 208, 215, 151, 12, 201, 208, 230, 124,
+ 12, 201, 208, 206, 158, 12, 201, 208, 211, 93, 12, 201, 208, 202, 163,
+ 12, 201, 208, 238, 95, 12, 201, 208, 228, 106, 12, 201, 208, 229, 188,
+ 12, 201, 208, 200, 240, 12, 201, 208, 201, 57, 12, 201, 208, 202, 35, 12,
+ 201, 208, 204, 72, 12, 201, 208, 210, 185, 12, 201, 208, 208, 249, 12,
+ 201, 208, 199, 37, 12, 201, 208, 200, 230, 12, 201, 208, 201, 69, 12,
+ 201, 208, 228, 116, 12, 201, 208, 228, 98, 12, 201, 208, 210, 96, 12,
+ 201, 208, 208, 247, 75, 1, 2, 221, 33, 75, 1, 2, 203, 125, 75, 1, 2, 201,
+ 184, 75, 1, 2, 155, 75, 1, 2, 213, 22, 75, 1, 2, 144, 75, 1, 2, 229, 178,
+ 75, 1, 2, 228, 181, 75, 1, 2, 229, 255, 75, 1, 2, 229, 43, 75, 1, 2, 215,
+ 241, 75, 1, 2, 167, 75, 1, 2, 207, 151, 75, 1, 2, 206, 218, 75, 1, 2,
+ 208, 7, 75, 1, 2, 207, 55, 125, 30, 221, 151, 125, 30, 214, 45, 125, 30,
+ 199, 103, 125, 30, 207, 133, 125, 30, 216, 153, 125, 30, 210, 36, 125,
+ 30, 203, 64, 125, 30, 223, 247, 125, 30, 242, 144, 125, 30, 242, 211,
+ 125, 30, 221, 225, 125, 30, 199, 198, 125, 30, 210, 75, 125, 30, 229,
+ 162, 125, 30, 221, 152, 64, 125, 30, 214, 46, 64, 125, 30, 199, 104, 64,
+ 125, 30, 207, 134, 64, 125, 30, 216, 154, 64, 125, 30, 210, 37, 64, 125,
+ 30, 203, 65, 64, 125, 30, 223, 248, 64, 125, 30, 242, 145, 64, 125, 30,
+ 242, 212, 64, 125, 30, 221, 226, 64, 125, 30, 199, 199, 64, 125, 30, 210,
+ 76, 64, 125, 30, 229, 163, 64, 125, 30, 242, 145, 68, 125, 221, 79, 246,
+ 100, 211, 234, 125, 221, 79, 246, 100, 185, 228, 181, 125, 228, 39, 101,
+ 125, 228, 39, 104, 125, 228, 39, 133, 125, 228, 39, 134, 125, 228, 39,
+ 151, 125, 228, 39, 170, 125, 228, 39, 179, 125, 228, 39, 174, 125, 228,
+ 39, 182, 125, 228, 39, 200, 30, 125, 228, 39, 216, 29, 125, 228, 39, 232,
+ 231, 125, 228, 39, 194, 129, 125, 228, 39, 194, 16, 125, 228, 39, 216,
+ 240, 125, 228, 39, 234, 189, 125, 228, 39, 201, 123, 125, 228, 39, 201,
+ 241, 125, 228, 39, 230, 9, 125, 228, 39, 202, 201, 125, 228, 39, 215, 62,
+ 125, 228, 39, 202, 145, 125, 228, 39, 232, 242, 125, 228, 39, 239, 14,
+ 125, 228, 39, 220, 173, 125, 228, 39, 207, 192, 125, 228, 39, 246, 253,
+ 125, 228, 39, 201, 190, 125, 228, 39, 201, 103, 125, 228, 39, 234, 60,
+ 125, 228, 39, 207, 182, 125, 228, 39, 251, 4, 125, 228, 39, 233, 19, 125,
+ 228, 39, 207, 180, 125, 228, 39, 204, 187, 125, 228, 39, 208, 2, 47, 228,
+ 39, 208, 158, 47, 228, 39, 221, 178, 47, 228, 39, 205, 243, 47, 228, 39,
+ 221, 75, 47, 31, 200, 31, 211, 212, 60, 202, 106, 47, 31, 197, 240, 211,
+ 212, 60, 202, 106, 47, 31, 199, 185, 211, 212, 60, 202, 106, 47, 31, 232,
+ 127, 211, 212, 60, 202, 106, 47, 31, 233, 4, 211, 212, 60, 202, 106, 47,
+ 31, 203, 26, 211, 212, 60, 202, 106, 47, 31, 204, 141, 211, 212, 60, 202,
+ 106, 47, 31, 234, 138, 211, 212, 60, 202, 106, 210, 220, 57, 47, 31, 197,
+ 240, 101, 47, 31, 197, 240, 104, 47, 31, 197, 240, 133, 47, 31, 197, 240,
+ 134, 47, 31, 197, 240, 151, 47, 31, 197, 240, 170, 47, 31, 197, 240, 179,
+ 47, 31, 197, 240, 174, 47, 31, 197, 240, 182, 47, 31, 199, 184, 47, 31,
+ 199, 185, 101, 47, 31, 199, 185, 104, 47, 31, 199, 185, 133, 47, 31, 199,
+ 185, 134, 47, 31, 199, 185, 151, 47, 30, 221, 151, 47, 30, 214, 45, 47,
+ 30, 199, 103, 47, 30, 207, 133, 47, 30, 216, 153, 47, 30, 210, 36, 47,
+ 30, 203, 64, 47, 30, 223, 247, 47, 30, 242, 144, 47, 30, 242, 211, 47,
+ 30, 221, 225, 47, 30, 199, 198, 47, 30, 210, 75, 47, 30, 229, 162, 47,
+ 30, 221, 152, 64, 47, 30, 214, 46, 64, 47, 30, 199, 104, 64, 47, 30, 207,
+ 134, 64, 47, 30, 216, 154, 64, 47, 30, 210, 37, 64, 47, 30, 203, 65, 64,
+ 47, 30, 223, 248, 64, 47, 30, 242, 145, 64, 47, 30, 242, 212, 64, 47, 30,
+ 221, 226, 64, 47, 30, 199, 199, 64, 47, 30, 210, 76, 64, 47, 30, 229,
+ 163, 64, 47, 221, 79, 246, 100, 246, 107, 47, 221, 79, 246, 100, 222,
+ 210, 47, 30, 223, 248, 68, 221, 79, 202, 23, 109, 47, 228, 39, 101, 47,
+ 228, 39, 104, 47, 228, 39, 133, 47, 228, 39, 134, 47, 228, 39, 151, 47,
+ 228, 39, 170, 47, 228, 39, 179, 47, 228, 39, 174, 47, 228, 39, 182, 47,
+ 228, 39, 200, 30, 47, 228, 39, 216, 29, 47, 228, 39, 232, 231, 47, 228,
+ 39, 194, 129, 47, 228, 39, 194, 16, 47, 228, 39, 216, 240, 47, 228, 39,
+ 234, 189, 47, 228, 39, 201, 123, 47, 228, 39, 201, 241, 47, 228, 39, 230,
+ 9, 47, 228, 39, 202, 201, 47, 228, 39, 215, 62, 47, 228, 39, 202, 145,
+ 47, 228, 39, 232, 242, 47, 228, 39, 239, 14, 47, 228, 39, 220, 173, 47,
+ 228, 39, 205, 210, 47, 228, 39, 217, 165, 47, 228, 39, 233, 29, 47, 228,
+ 39, 201, 135, 47, 228, 39, 233, 208, 47, 228, 39, 209, 95, 47, 228, 39,
+ 250, 12, 47, 228, 39, 223, 81, 47, 228, 39, 207, 180, 47, 228, 39, 238,
+ 229, 47, 228, 39, 238, 217, 47, 228, 39, 229, 155, 47, 228, 39, 246, 137,
+ 47, 228, 39, 219, 52, 47, 228, 39, 220, 28, 47, 228, 39, 207, 101, 47,
+ 228, 39, 217, 33, 47, 228, 39, 207, 210, 47, 228, 39, 201, 190, 47, 228,
+ 39, 201, 103, 47, 228, 39, 234, 60, 47, 228, 39, 207, 182, 47, 228, 39,
+ 251, 4, 47, 228, 39, 214, 31, 47, 31, 199, 185, 170, 47, 31, 199, 185,
+ 179, 47, 31, 199, 185, 174, 47, 31, 199, 185, 182, 47, 31, 232, 126, 47,
+ 31, 232, 127, 101, 47, 31, 232, 127, 104, 47, 31, 232, 127, 133, 47, 31,
+ 232, 127, 134, 47, 31, 232, 127, 151, 47, 31, 232, 127, 170, 47, 31, 232,
+ 127, 179, 47, 31, 232, 127, 174, 47, 31, 232, 127, 182, 47, 31, 233, 3,
+ 149, 200, 44, 16, 39, 223, 52, 149, 200, 44, 16, 39, 233, 41, 149, 200,
+ 44, 16, 39, 217, 129, 149, 200, 44, 16, 39, 250, 137, 149, 200, 44, 16,
+ 39, 217, 92, 149, 200, 44, 16, 39, 222, 207, 149, 200, 44, 16, 39, 222,
+ 208, 149, 200, 44, 16, 39, 250, 4, 149, 200, 44, 16, 39, 204, 164, 149,
+ 200, 44, 16, 39, 212, 6, 149, 200, 44, 16, 39, 213, 98, 149, 200, 44, 16,
+ 39, 237, 110, 50, 229, 188, 50, 234, 17, 50, 233, 218, 219, 181, 219,
+ 208, 57, 47, 75, 64, 47, 75, 70, 47, 75, 68, 47, 75, 71, 47, 75, 74, 47,
+ 75, 160, 47, 75, 221, 204, 47, 75, 221, 33, 47, 75, 222, 57, 47, 75, 221,
+ 113, 47, 75, 188, 47, 75, 203, 125, 47, 75, 201, 184, 47, 75, 205, 223,
+ 47, 75, 202, 212, 47, 75, 189, 47, 75, 199, 128, 47, 75, 198, 45, 47, 75,
+ 200, 79, 47, 75, 155, 47, 75, 181, 47, 75, 214, 60, 47, 75, 213, 22, 47,
+ 75, 214, 214, 47, 75, 213, 142, 47, 75, 144, 47, 75, 229, 178, 47, 75,
+ 228, 181, 47, 75, 229, 255, 47, 75, 229, 43, 47, 75, 172, 47, 75, 216,
+ 175, 47, 75, 215, 241, 47, 75, 217, 48, 47, 75, 216, 91, 47, 75, 168, 47,
+ 75, 192, 214, 47, 75, 193, 1, 47, 75, 167, 47, 75, 207, 151, 47, 75, 206,
+ 218, 47, 75, 208, 7, 47, 75, 207, 55, 47, 75, 194, 169, 47, 75, 194, 72,
+ 47, 75, 194, 111, 47, 75, 194, 36, 50, 234, 20, 215, 63, 207, 218, 50,
+ 250, 162, 50, 250, 63, 50, 250, 189, 50, 251, 246, 50, 223, 158, 50, 223,
+ 125, 50, 197, 44, 50, 233, 245, 50, 234, 168, 50, 211, 197, 50, 211, 190,
+ 50, 222, 133, 50, 222, 97, 50, 222, 92, 50, 231, 188, 50, 231, 198, 50,
+ 231, 34, 50, 231, 30, 50, 220, 203, 50, 231, 21, 50, 221, 169, 50, 221,
+ 168, 50, 221, 167, 50, 221, 166, 50, 230, 154, 50, 230, 153, 50, 220,
+ 252, 50, 220, 255, 50, 222, 44, 50, 221, 77, 50, 221, 85, 50, 206, 74,
+ 50, 206, 31, 50, 203, 45, 50, 204, 170, 50, 204, 169, 50, 237, 252, 50,
+ 237, 53, 50, 236, 115, 50, 199, 20, 50, 215, 56, 50, 213, 99, 50, 230,
+ 83, 50, 211, 71, 50, 211, 70, 50, 249, 0, 50, 210, 48, 50, 210, 10, 50,
+ 210, 11, 50, 248, 9, 50, 228, 176, 50, 228, 170, 50, 247, 80, 50, 228,
+ 154, 50, 229, 216, 50, 210, 107, 50, 210, 149, 50, 229, 197, 50, 210,
+ 145, 50, 210, 163, 50, 248, 103, 50, 209, 187, 50, 247, 193, 50, 229, 19,
+ 50, 209, 173, 50, 229, 10, 50, 229, 12, 50, 217, 178, 50, 217, 174, 50,
+ 217, 183, 50, 217, 115, 50, 217, 146, 50, 216, 132, 50, 216, 107, 50,
+ 216, 106, 50, 217, 21, 50, 217, 18, 50, 217, 22, 50, 193, 128, 50, 193,
+ 126, 50, 192, 199, 50, 207, 71, 50, 207, 75, 50, 206, 185, 50, 206, 178,
+ 50, 207, 207, 50, 207, 204, 50, 194, 127, 149, 200, 44, 16, 39, 228, 198,
+ 192, 76, 149, 200, 44, 16, 39, 228, 198, 101, 149, 200, 44, 16, 39, 228,
+ 198, 104, 149, 200, 44, 16, 39, 228, 198, 133, 149, 200, 44, 16, 39, 228,
+ 198, 134, 149, 200, 44, 16, 39, 228, 198, 151, 149, 200, 44, 16, 39, 228,
+ 198, 170, 149, 200, 44, 16, 39, 228, 198, 179, 149, 200, 44, 16, 39, 228,
+ 198, 174, 149, 200, 44, 16, 39, 228, 198, 182, 149, 200, 44, 16, 39, 228,
+ 198, 200, 30, 149, 200, 44, 16, 39, 228, 198, 234, 111, 149, 200, 44, 16,
+ 39, 228, 198, 197, 244, 149, 200, 44, 16, 39, 228, 198, 199, 186, 149,
+ 200, 44, 16, 39, 228, 198, 232, 113, 149, 200, 44, 16, 39, 228, 198, 233,
+ 7, 149, 200, 44, 16, 39, 228, 198, 203, 35, 149, 200, 44, 16, 39, 228,
+ 198, 204, 143, 149, 200, 44, 16, 39, 228, 198, 234, 145, 149, 200, 44,
+ 16, 39, 228, 198, 214, 13, 149, 200, 44, 16, 39, 228, 198, 197, 239, 149,
+ 200, 44, 16, 39, 228, 198, 197, 232, 149, 200, 44, 16, 39, 228, 198, 197,
+ 227, 149, 200, 44, 16, 39, 228, 198, 197, 229, 149, 200, 44, 16, 39, 228,
+ 198, 197, 234, 50, 228, 189, 50, 238, 0, 50, 250, 8, 50, 161, 50, 211,
+ 120, 50, 210, 186, 50, 236, 149, 50, 236, 150, 202, 105, 50, 236, 150,
+ 238, 156, 50, 223, 78, 50, 234, 20, 215, 63, 229, 217, 50, 234, 20, 215,
+ 63, 200, 251, 50, 234, 20, 215, 63, 200, 144, 50, 234, 20, 215, 63, 217,
+ 17, 50, 238, 219, 50, 211, 78, 250, 227, 50, 181, 50, 215, 242, 64, 50,
+ 172, 50, 160, 50, 222, 60, 50, 217, 87, 50, 231, 176, 50, 247, 3, 50,
+ 222, 59, 50, 210, 97, 50, 214, 169, 50, 215, 242, 233, 163, 50, 215, 242,
+ 232, 44, 50, 216, 216, 50, 221, 252, 50, 228, 106, 50, 221, 206, 50, 216,
+ 177, 50, 231, 48, 50, 199, 130, 50, 215, 242, 165, 50, 216, 99, 50, 236,
+ 159, 50, 221, 133, 50, 232, 166, 50, 213, 180, 50, 215, 242, 218, 236,
+ 50, 216, 96, 50, 242, 64, 50, 221, 127, 50, 216, 97, 202, 105, 50, 242,
+ 65, 202, 105, 50, 218, 237, 202, 105, 50, 221, 128, 202, 105, 50, 216,
+ 97, 238, 156, 50, 242, 65, 238, 156, 50, 218, 237, 238, 156, 50, 221,
+ 128, 238, 156, 50, 218, 237, 136, 206, 158, 50, 218, 237, 136, 206, 159,
+ 202, 105, 50, 166, 50, 221, 69, 50, 215, 247, 50, 230, 228, 50, 208, 58,
+ 50, 208, 59, 136, 206, 158, 50, 208, 59, 136, 206, 159, 202, 105, 50,
+ 209, 64, 50, 213, 63, 50, 215, 242, 206, 158, 50, 215, 244, 50, 209, 11,
+ 50, 212, 212, 50, 215, 242, 196, 236, 50, 215, 175, 50, 220, 241, 50,
+ 215, 176, 217, 21, 50, 209, 10, 50, 212, 211, 50, 215, 242, 194, 202, 50,
+ 215, 169, 50, 220, 239, 50, 215, 170, 217, 21, 50, 222, 185, 211, 239,
+ 50, 218, 237, 211, 239, 50, 250, 241, 50, 247, 168, 50, 246, 182, 50,
+ 246, 159, 50, 247, 53, 136, 221, 252, 50, 242, 63, 50, 237, 170, 50, 230,
+ 137, 50, 144, 50, 228, 190, 50, 223, 190, 50, 221, 140, 50, 221, 128,
+ 246, 225, 50, 221, 35, 50, 219, 110, 50, 219, 109, 50, 219, 94, 50, 218,
+ 252, 50, 217, 88, 202, 236, 50, 216, 131, 50, 216, 57, 50, 210, 95, 50,
+ 209, 201, 50, 209, 133, 50, 209, 131, 50, 202, 96, 50, 201, 84, 50, 194,
+ 113, 50, 196, 237, 136, 218, 236, 50, 41, 136, 218, 236, 149, 200, 44,
+ 16, 39, 237, 174, 101, 149, 200, 44, 16, 39, 237, 174, 104, 149, 200, 44,
+ 16, 39, 237, 174, 133, 149, 200, 44, 16, 39, 237, 174, 134, 149, 200, 44,
+ 16, 39, 237, 174, 151, 149, 200, 44, 16, 39, 237, 174, 170, 149, 200, 44,
+ 16, 39, 237, 174, 179, 149, 200, 44, 16, 39, 237, 174, 174, 149, 200, 44,
+ 16, 39, 237, 174, 182, 149, 200, 44, 16, 39, 237, 174, 200, 30, 149, 200,
+ 44, 16, 39, 237, 174, 234, 111, 149, 200, 44, 16, 39, 237, 174, 197, 244,
+ 149, 200, 44, 16, 39, 237, 174, 199, 186, 149, 200, 44, 16, 39, 237, 174,
+ 232, 113, 149, 200, 44, 16, 39, 237, 174, 233, 7, 149, 200, 44, 16, 39,
+ 237, 174, 203, 35, 149, 200, 44, 16, 39, 237, 174, 204, 143, 149, 200,
+ 44, 16, 39, 237, 174, 234, 145, 149, 200, 44, 16, 39, 237, 174, 214, 13,
+ 149, 200, 44, 16, 39, 237, 174, 197, 239, 149, 200, 44, 16, 39, 237, 174,
+ 197, 232, 149, 200, 44, 16, 39, 237, 174, 197, 227, 149, 200, 44, 16, 39,
+ 237, 174, 197, 229, 149, 200, 44, 16, 39, 237, 174, 197, 234, 149, 200,
+ 44, 16, 39, 237, 174, 197, 235, 149, 200, 44, 16, 39, 237, 174, 197, 230,
+ 149, 200, 44, 16, 39, 237, 174, 197, 231, 149, 200, 44, 16, 39, 237, 174,
+ 197, 238, 149, 200, 44, 16, 39, 237, 174, 197, 233, 149, 200, 44, 16, 39,
+ 237, 174, 199, 184, 149, 200, 44, 16, 39, 237, 174, 199, 182, 50, 231,
+ 215, 229, 191, 39, 199, 225, 238, 197, 229, 229, 229, 191, 39, 199, 225,
+ 207, 250, 234, 189, 229, 191, 39, 236, 242, 250, 27, 199, 225, 248, 98,
+ 229, 191, 39, 192, 227, 232, 158, 229, 191, 39, 194, 155, 229, 191, 39,
+ 239, 17, 229, 191, 39, 199, 225, 250, 88, 229, 191, 39, 229, 26, 199, 26,
+ 229, 191, 39, 2, 200, 126, 229, 191, 39, 198, 198, 229, 191, 39, 210,
+ 179, 229, 191, 39, 202, 21, 229, 191, 39, 233, 31, 229, 191, 39, 230,
+ 206, 209, 156, 229, 191, 39, 216, 77, 229, 191, 39, 234, 59, 229, 191,
+ 39, 232, 159, 229, 191, 39, 194, 9, 211, 212, 199, 225, 237, 111, 229,
+ 191, 39, 250, 141, 229, 191, 39, 238, 252, 229, 191, 39, 247, 254, 199,
+ 150, 229, 191, 39, 230, 226, 229, 191, 39, 202, 123, 250, 161, 229, 191,
+ 39, 207, 172, 229, 191, 39, 223, 152, 229, 191, 39, 230, 206, 200, 126,
+ 229, 191, 39, 216, 5, 238, 222, 229, 191, 39, 230, 206, 209, 108, 229,
+ 191, 39, 199, 225, 251, 148, 194, 129, 229, 191, 39, 199, 225, 242, 92,
+ 232, 231, 229, 191, 39, 223, 166, 229, 191, 39, 235, 38, 229, 191, 39,
+ 207, 175, 229, 191, 39, 230, 206, 209, 138, 229, 191, 39, 209, 82, 229,
+ 191, 39, 237, 190, 80, 199, 225, 219, 195, 229, 191, 39, 199, 225, 233,
+ 69, 229, 191, 39, 211, 169, 229, 191, 39, 212, 13, 229, 191, 39, 237, 81,
+ 229, 191, 39, 237, 103, 229, 191, 39, 223, 181, 229, 191, 39, 247, 154,
+ 229, 191, 39, 242, 40, 115, 217, 24, 229, 191, 39, 231, 183, 199, 26,
+ 229, 191, 39, 209, 21, 197, 31, 229, 191, 39, 211, 168, 229, 191, 39,
+ 199, 225, 194, 95, 229, 191, 39, 207, 163, 229, 191, 39, 199, 225, 246,
+ 188, 229, 191, 39, 199, 225, 250, 84, 199, 144, 229, 191, 39, 199, 225,
+ 222, 45, 201, 245, 216, 9, 229, 191, 39, 237, 48, 229, 191, 39, 199, 225,
+ 217, 118, 217, 179, 229, 191, 39, 251, 149, 229, 191, 39, 199, 225, 194,
+ 146, 229, 191, 39, 199, 225, 231, 138, 194, 52, 229, 191, 39, 199, 225,
+ 222, 216, 220, 102, 229, 191, 39, 236, 191, 229, 191, 39, 219, 182, 229,
+ 191, 39, 223, 155, 198, 122, 229, 191, 39, 2, 209, 108, 229, 191, 39,
+ 251, 81, 242, 30, 229, 191, 39, 248, 101, 242, 30, 11, 5, 223, 82, 11, 5,
+ 223, 74, 11, 5, 70, 11, 5, 223, 108, 11, 5, 223, 249, 11, 5, 223, 232,
+ 11, 5, 223, 251, 11, 5, 223, 250, 11, 5, 250, 26, 11, 5, 249, 238, 11, 5,
+ 64, 11, 5, 250, 163, 11, 5, 197, 42, 11, 5, 197, 46, 11, 5, 197, 43, 11,
+ 5, 211, 140, 11, 5, 211, 103, 11, 5, 74, 11, 5, 211, 185, 11, 5, 233,
+ 209, 11, 5, 71, 11, 5, 193, 244, 11, 5, 248, 1, 11, 5, 247, 252, 11, 5,
+ 248, 41, 11, 5, 248, 14, 11, 5, 248, 30, 11, 5, 248, 29, 11, 5, 248, 32,
+ 11, 5, 248, 31, 11, 5, 248, 170, 11, 5, 248, 162, 11, 5, 249, 3, 11, 5,
+ 248, 195, 11, 5, 247, 92, 11, 5, 247, 96, 11, 5, 247, 93, 11, 5, 247,
+ 192, 11, 5, 247, 173, 11, 5, 247, 220, 11, 5, 247, 198, 11, 5, 248, 57,
+ 11, 5, 248, 123, 11, 5, 248, 70, 11, 5, 247, 76, 11, 5, 247, 70, 11, 5,
+ 247, 124, 11, 5, 247, 91, 11, 5, 247, 84, 11, 5, 247, 89, 11, 5, 247, 58,
+ 11, 5, 247, 56, 11, 5, 247, 63, 11, 5, 247, 61, 11, 5, 247, 59, 11, 5,
+ 247, 60, 11, 5, 209, 241, 11, 5, 209, 237, 11, 5, 210, 51, 11, 5, 209,
+ 253, 11, 5, 210, 16, 11, 5, 210, 43, 11, 5, 210, 39, 11, 5, 210, 206, 11,
+ 5, 210, 191, 11, 5, 166, 11, 5, 210, 253, 11, 5, 209, 31, 11, 5, 209, 33,
+ 11, 5, 209, 32, 11, 5, 209, 149, 11, 5, 209, 136, 11, 5, 209, 198, 11, 5,
+ 209, 168, 11, 5, 209, 17, 11, 5, 209, 13, 11, 5, 209, 51, 11, 5, 209, 30,
+ 11, 5, 209, 22, 11, 5, 209, 28, 11, 5, 208, 251, 11, 5, 208, 250, 11, 5,
+ 208, 255, 11, 5, 208, 254, 11, 5, 208, 252, 11, 5, 208, 253, 11, 5, 248,
+ 144, 11, 5, 248, 143, 11, 5, 248, 150, 11, 5, 248, 145, 11, 5, 248, 147,
+ 11, 5, 248, 146, 11, 5, 248, 149, 11, 5, 248, 148, 11, 5, 248, 156, 11,
+ 5, 248, 155, 11, 5, 248, 159, 11, 5, 248, 157, 11, 5, 248, 135, 11, 5,
+ 248, 137, 11, 5, 248, 136, 11, 5, 248, 140, 11, 5, 248, 139, 11, 5, 248,
+ 142, 11, 5, 248, 141, 11, 5, 248, 151, 11, 5, 248, 154, 11, 5, 248, 152,
+ 11, 5, 248, 131, 11, 5, 248, 130, 11, 5, 248, 138, 11, 5, 248, 134, 11,
+ 5, 248, 132, 11, 5, 248, 133, 11, 5, 248, 127, 11, 5, 248, 126, 11, 5,
+ 248, 129, 11, 5, 248, 128, 11, 5, 215, 22, 11, 5, 215, 21, 11, 5, 215,
+ 27, 11, 5, 215, 23, 11, 5, 215, 24, 11, 5, 215, 26, 11, 5, 215, 25, 11,
+ 5, 215, 30, 11, 5, 215, 29, 11, 5, 215, 32, 11, 5, 215, 31, 11, 5, 215,
+ 18, 11, 5, 215, 17, 11, 5, 215, 20, 11, 5, 215, 19, 11, 5, 215, 11, 11,
+ 5, 215, 10, 11, 5, 215, 15, 11, 5, 215, 14, 11, 5, 215, 12, 11, 5, 215,
+ 13, 11, 5, 215, 5, 11, 5, 215, 4, 11, 5, 215, 9, 11, 5, 215, 8, 11, 5,
+ 215, 6, 11, 5, 215, 7, 11, 5, 229, 87, 11, 5, 229, 86, 11, 5, 229, 92,
+ 11, 5, 229, 88, 11, 5, 229, 89, 11, 5, 229, 91, 11, 5, 229, 90, 11, 5,
+ 229, 95, 11, 5, 229, 94, 11, 5, 229, 97, 11, 5, 229, 96, 11, 5, 229, 78,
+ 11, 5, 229, 80, 11, 5, 229, 79, 11, 5, 229, 83, 11, 5, 229, 82, 11, 5,
+ 229, 85, 11, 5, 229, 84, 11, 5, 229, 74, 11, 5, 229, 73, 11, 5, 229, 81,
+ 11, 5, 229, 77, 11, 5, 229, 75, 11, 5, 229, 76, 11, 5, 229, 68, 11, 5,
+ 229, 72, 11, 5, 229, 71, 11, 5, 229, 69, 11, 5, 229, 70, 11, 5, 216, 102,
+ 11, 5, 216, 101, 11, 5, 216, 175, 11, 5, 216, 109, 11, 5, 216, 139, 11,
+ 5, 216, 157, 11, 5, 216, 155, 11, 5, 217, 101, 11, 5, 217, 95, 11, 5,
+ 172, 11, 5, 217, 141, 11, 5, 215, 203, 11, 5, 215, 202, 11, 5, 215, 206,
+ 11, 5, 215, 204, 11, 5, 216, 20, 11, 5, 215, 249, 11, 5, 216, 91, 11, 5,
+ 216, 27, 11, 5, 216, 227, 11, 5, 217, 48, 11, 5, 215, 183, 11, 5, 215,
+ 177, 11, 5, 215, 241, 11, 5, 215, 199, 11, 5, 215, 192, 11, 5, 215, 197,
+ 11, 5, 215, 154, 11, 5, 215, 153, 11, 5, 215, 159, 11, 5, 215, 156, 11,
+ 5, 232, 217, 11, 5, 232, 211, 11, 5, 233, 11, 11, 5, 232, 233, 11, 5,
+ 233, 60, 11, 5, 233, 51, 11, 5, 233, 97, 11, 5, 233, 65, 11, 5, 232, 110,
+ 11, 5, 232, 164, 11, 5, 232, 144, 11, 5, 232, 60, 11, 5, 232, 59, 11, 5,
+ 232, 77, 11, 5, 232, 65, 11, 5, 232, 63, 11, 5, 232, 64, 11, 5, 232, 47,
+ 11, 5, 232, 46, 11, 5, 232, 50, 11, 5, 232, 48, 11, 5, 196, 3, 11, 5,
+ 195, 254, 11, 5, 196, 39, 11, 5, 196, 12, 11, 5, 196, 28, 11, 5, 196, 24,
+ 11, 5, 196, 31, 11, 5, 196, 30, 11, 5, 196, 131, 11, 5, 196, 126, 11, 5,
+ 196, 157, 11, 5, 196, 144, 11, 5, 195, 232, 11, 5, 195, 228, 11, 5, 195,
+ 252, 11, 5, 195, 234, 11, 5, 196, 43, 11, 5, 196, 111, 11, 5, 194, 216,
+ 11, 5, 194, 214, 11, 5, 194, 223, 11, 5, 194, 219, 11, 5, 194, 217, 11,
+ 5, 194, 218, 11, 5, 194, 206, 11, 5, 194, 205, 11, 5, 194, 210, 11, 5,
+ 194, 209, 11, 5, 194, 207, 11, 5, 194, 208, 11, 5, 236, 184, 11, 5, 236,
+ 169, 11, 5, 237, 16, 11, 5, 236, 212, 11, 5, 236, 247, 11, 5, 236, 252,
+ 11, 5, 236, 251, 11, 5, 237, 181, 11, 5, 237, 175, 11, 5, 238, 0, 11, 5,
+ 237, 201, 11, 5, 235, 43, 11, 5, 235, 44, 11, 5, 236, 114, 11, 5, 235,
+ 90, 11, 5, 236, 146, 11, 5, 236, 117, 11, 5, 237, 46, 11, 5, 237, 116,
+ 11, 5, 237, 67, 11, 5, 235, 34, 11, 5, 235, 32, 11, 5, 235, 62, 11, 5,
+ 235, 42, 11, 5, 235, 37, 11, 5, 235, 40, 11, 5, 199, 63, 11, 5, 199, 55,
+ 11, 5, 199, 128, 11, 5, 199, 73, 11, 5, 199, 111, 11, 5, 199, 113, 11, 5,
+ 199, 112, 11, 5, 200, 105, 11, 5, 200, 90, 11, 5, 189, 11, 5, 200, 116,
+ 11, 5, 198, 20, 11, 5, 198, 19, 11, 5, 198, 22, 11, 5, 198, 21, 11, 5,
+ 198, 235, 11, 5, 198, 225, 11, 5, 155, 11, 5, 198, 248, 11, 5, 199, 246,
+ 11, 5, 200, 79, 11, 5, 200, 17, 11, 5, 198, 3, 11, 5, 197, 254, 11, 5,
+ 198, 45, 11, 5, 198, 18, 11, 5, 198, 4, 11, 5, 198, 15, 11, 5, 237, 133,
+ 11, 5, 237, 132, 11, 5, 237, 138, 11, 5, 237, 134, 11, 5, 237, 135, 11,
+ 5, 237, 137, 11, 5, 237, 136, 11, 5, 237, 154, 11, 5, 237, 153, 11, 5,
+ 237, 161, 11, 5, 237, 155, 11, 5, 237, 123, 11, 5, 237, 125, 11, 5, 237,
+ 124, 11, 5, 237, 128, 11, 5, 237, 127, 11, 5, 237, 131, 11, 5, 237, 129,
+ 11, 5, 237, 146, 11, 5, 237, 149, 11, 5, 237, 147, 11, 5, 237, 119, 11,
+ 5, 237, 118, 11, 5, 237, 126, 11, 5, 237, 122, 11, 5, 237, 120, 11, 5,
+ 237, 121, 11, 5, 214, 233, 11, 5, 214, 232, 11, 5, 214, 240, 11, 5, 214,
+ 235, 11, 5, 214, 236, 11, 5, 214, 237, 11, 5, 214, 249, 11, 5, 214, 248,
+ 11, 5, 214, 255, 11, 5, 214, 250, 11, 5, 214, 225, 11, 5, 214, 224, 11,
+ 5, 214, 231, 11, 5, 214, 226, 11, 5, 214, 241, 11, 5, 214, 247, 11, 5,
+ 214, 245, 11, 5, 214, 217, 11, 5, 214, 216, 11, 5, 214, 222, 11, 5, 214,
+ 220, 11, 5, 214, 218, 11, 5, 214, 219, 11, 5, 229, 53, 11, 5, 229, 52,
+ 11, 5, 229, 59, 11, 5, 229, 54, 11, 5, 229, 56, 11, 5, 229, 55, 11, 5,
+ 229, 58, 11, 5, 229, 57, 11, 5, 229, 65, 11, 5, 229, 63, 11, 5, 229, 67,
+ 11, 5, 229, 66, 11, 5, 229, 46, 11, 5, 229, 47, 11, 5, 229, 50, 11, 5,
+ 229, 49, 11, 5, 229, 51, 11, 5, 229, 60, 11, 5, 229, 62, 11, 5, 229, 61,
+ 11, 5, 229, 45, 11, 5, 214, 4, 11, 5, 214, 2, 11, 5, 214, 60, 11, 5, 214,
+ 7, 11, 5, 214, 34, 11, 5, 214, 48, 11, 5, 214, 47, 11, 5, 215, 37, 11, 5,
+ 181, 11, 5, 215, 53, 11, 5, 212, 222, 11, 5, 212, 224, 11, 5, 212, 223,
+ 11, 5, 213, 110, 11, 5, 213, 94, 11, 5, 213, 142, 11, 5, 213, 121, 11, 5,
+ 214, 171, 11, 5, 214, 214, 11, 5, 214, 191, 11, 5, 212, 217, 11, 5, 212,
+ 213, 11, 5, 213, 22, 11, 5, 212, 221, 11, 5, 212, 219, 11, 5, 212, 220,
+ 11, 5, 229, 118, 11, 5, 229, 117, 11, 5, 229, 123, 11, 5, 229, 119, 11,
+ 5, 229, 120, 11, 5, 229, 122, 11, 5, 229, 121, 11, 5, 229, 129, 11, 5,
+ 229, 127, 11, 5, 229, 131, 11, 5, 229, 130, 11, 5, 229, 110, 11, 5, 229,
+ 112, 11, 5, 229, 111, 11, 5, 229, 114, 11, 5, 229, 116, 11, 5, 229, 115,
+ 11, 5, 229, 124, 11, 5, 229, 126, 11, 5, 229, 125, 11, 5, 229, 106, 11,
+ 5, 229, 105, 11, 5, 229, 113, 11, 5, 229, 109, 11, 5, 229, 107, 11, 5,
+ 229, 108, 11, 5, 229, 100, 11, 5, 229, 99, 11, 5, 229, 104, 11, 5, 229,
+ 103, 11, 5, 229, 101, 11, 5, 229, 102, 11, 5, 219, 151, 11, 5, 219, 143,
+ 11, 5, 219, 209, 11, 5, 219, 161, 11, 5, 219, 200, 11, 5, 219, 199, 11,
+ 5, 219, 203, 11, 5, 219, 201, 11, 5, 220, 65, 11, 5, 220, 53, 11, 5, 177,
+ 11, 5, 220, 76, 11, 5, 219, 13, 11, 5, 219, 12, 11, 5, 219, 15, 11, 5,
+ 219, 14, 11, 5, 219, 60, 11, 5, 219, 45, 11, 5, 219, 107, 11, 5, 219, 66,
+ 11, 5, 219, 226, 11, 5, 220, 42, 11, 5, 219, 244, 11, 5, 219, 7, 11, 5,
+ 219, 5, 11, 5, 219, 36, 11, 5, 219, 11, 11, 5, 219, 9, 11, 5, 219, 10,
+ 11, 5, 218, 241, 11, 5, 218, 240, 11, 5, 218, 251, 11, 5, 218, 244, 11,
+ 5, 218, 242, 11, 5, 218, 243, 11, 5, 231, 17, 11, 5, 231, 16, 11, 5, 231,
+ 46, 11, 5, 231, 29, 11, 5, 231, 38, 11, 5, 231, 37, 11, 5, 231, 40, 11,
+ 5, 231, 39, 11, 5, 231, 185, 11, 5, 231, 180, 11, 5, 231, 233, 11, 5,
+ 231, 196, 11, 5, 230, 159, 11, 5, 230, 158, 11, 5, 230, 161, 11, 5, 230,
+ 160, 11, 5, 230, 231, 11, 5, 230, 229, 11, 5, 230, 254, 11, 5, 230, 240,
+ 11, 5, 231, 124, 11, 5, 231, 122, 11, 5, 231, 158, 11, 5, 231, 135, 11,
+ 5, 230, 148, 11, 5, 230, 147, 11, 5, 230, 186, 11, 5, 230, 157, 11, 5,
+ 230, 149, 11, 5, 230, 156, 11, 5, 221, 158, 11, 5, 221, 153, 11, 5, 221,
+ 204, 11, 5, 221, 172, 11, 5, 221, 185, 11, 5, 221, 189, 11, 5, 221, 187,
+ 11, 5, 222, 83, 11, 5, 222, 65, 11, 5, 160, 11, 5, 222, 112, 11, 5, 221,
+ 4, 11, 5, 221, 9, 11, 5, 221, 6, 11, 5, 221, 76, 11, 5, 221, 71, 11, 5,
+ 221, 113, 11, 5, 221, 83, 11, 5, 222, 20, 11, 5, 222, 3, 11, 5, 222, 57,
+ 11, 5, 222, 24, 11, 5, 220, 247, 11, 5, 220, 243, 11, 5, 221, 33, 11, 5,
+ 221, 3, 11, 5, 220, 251, 11, 5, 221, 0, 11, 5, 231, 106, 11, 5, 231, 105,
+ 11, 5, 231, 110, 11, 5, 231, 107, 11, 5, 231, 109, 11, 5, 231, 108, 11,
+ 5, 231, 117, 11, 5, 231, 116, 11, 5, 231, 120, 11, 5, 231, 118, 11, 5,
+ 231, 97, 11, 5, 231, 96, 11, 5, 231, 99, 11, 5, 231, 98, 11, 5, 231, 102,
+ 11, 5, 231, 101, 11, 5, 231, 104, 11, 5, 231, 103, 11, 5, 231, 112, 11,
+ 5, 231, 111, 11, 5, 231, 115, 11, 5, 231, 113, 11, 5, 231, 92, 11, 5,
+ 231, 91, 11, 5, 231, 100, 11, 5, 231, 95, 11, 5, 231, 93, 11, 5, 231, 94,
+ 11, 5, 216, 194, 11, 5, 216, 195, 11, 5, 216, 213, 11, 5, 216, 212, 11,
+ 5, 216, 215, 11, 5, 216, 214, 11, 5, 216, 185, 11, 5, 216, 187, 11, 5,
+ 216, 186, 11, 5, 216, 190, 11, 5, 216, 189, 11, 5, 216, 192, 11, 5, 216,
+ 191, 11, 5, 216, 196, 11, 5, 216, 198, 11, 5, 216, 197, 11, 5, 216, 181,
+ 11, 5, 216, 180, 11, 5, 216, 188, 11, 5, 216, 184, 11, 5, 216, 182, 11,
+ 5, 216, 183, 11, 5, 228, 126, 11, 5, 228, 125, 11, 5, 228, 132, 11, 5,
+ 228, 127, 11, 5, 228, 129, 11, 5, 228, 128, 11, 5, 228, 131, 11, 5, 228,
+ 130, 11, 5, 228, 137, 11, 5, 228, 136, 11, 5, 228, 139, 11, 5, 228, 138,
+ 11, 5, 228, 118, 11, 5, 228, 117, 11, 5, 228, 120, 11, 5, 228, 119, 11,
+ 5, 228, 122, 11, 5, 228, 121, 11, 5, 228, 124, 11, 5, 228, 123, 11, 5,
+ 228, 133, 11, 5, 228, 135, 11, 5, 228, 134, 11, 5, 214, 110, 11, 5, 214,
+ 112, 11, 5, 214, 111, 11, 5, 214, 155, 11, 5, 214, 153, 11, 5, 214, 165,
+ 11, 5, 214, 158, 11, 5, 214, 71, 11, 5, 214, 70, 11, 5, 214, 72, 11, 5,
+ 214, 82, 11, 5, 214, 79, 11, 5, 214, 90, 11, 5, 214, 84, 11, 5, 214, 146,
+ 11, 5, 214, 152, 11, 5, 214, 148, 11, 5, 229, 137, 11, 5, 229, 156, 11,
+ 5, 229, 165, 11, 5, 230, 18, 11, 5, 230, 7, 11, 5, 144, 11, 5, 230, 30,
+ 11, 5, 228, 156, 11, 5, 228, 155, 11, 5, 228, 158, 11, 5, 228, 157, 11,
+ 5, 228, 201, 11, 5, 228, 192, 11, 5, 229, 43, 11, 5, 229, 8, 11, 5, 229,
+ 193, 11, 5, 229, 255, 11, 5, 229, 205, 11, 5, 194, 132, 11, 5, 194, 117,
+ 11, 5, 194, 169, 11, 5, 194, 143, 11, 5, 193, 233, 11, 5, 193, 235, 11,
+ 5, 193, 234, 11, 5, 194, 1, 11, 5, 194, 36, 11, 5, 194, 12, 11, 5, 194,
+ 85, 11, 5, 194, 111, 11, 5, 194, 92, 11, 5, 192, 15, 11, 5, 192, 14, 11,
+ 5, 192, 30, 11, 5, 192, 18, 11, 5, 192, 23, 11, 5, 192, 25, 11, 5, 192,
+ 24, 11, 5, 192, 94, 11, 5, 192, 91, 11, 5, 192, 112, 11, 5, 192, 98, 11,
+ 5, 191, 245, 11, 5, 191, 247, 11, 5, 191, 246, 11, 5, 192, 3, 11, 5, 192,
+ 2, 11, 5, 192, 8, 11, 5, 192, 4, 11, 5, 192, 73, 11, 5, 192, 85, 11, 5,
+ 192, 78, 11, 5, 191, 241, 11, 5, 191, 240, 11, 5, 191, 252, 11, 5, 191,
+ 244, 11, 5, 191, 242, 11, 5, 191, 243, 11, 5, 191, 227, 11, 5, 191, 226,
+ 11, 5, 191, 232, 11, 5, 191, 230, 11, 5, 191, 228, 11, 5, 191, 229, 11,
+ 5, 242, 119, 11, 5, 242, 112, 11, 5, 242, 149, 11, 5, 242, 132, 11, 5,
+ 242, 146, 11, 5, 242, 140, 11, 5, 242, 148, 11, 5, 242, 147, 11, 5, 246,
+ 193, 11, 5, 246, 185, 11, 5, 247, 19, 11, 5, 246, 226, 11, 5, 238, 150,
+ 11, 5, 238, 152, 11, 5, 238, 151, 11, 5, 238, 215, 11, 5, 238, 203, 11,
+ 5, 242, 63, 11, 5, 238, 234, 11, 5, 246, 121, 11, 5, 246, 158, 11, 5,
+ 246, 127, 11, 5, 238, 121, 11, 5, 238, 119, 11, 5, 238, 162, 11, 5, 238,
+ 148, 11, 5, 238, 127, 11, 5, 238, 143, 11, 5, 238, 98, 11, 5, 238, 97,
+ 11, 5, 238, 110, 11, 5, 238, 104, 11, 5, 238, 99, 11, 5, 238, 101, 11, 5,
+ 191, 210, 11, 5, 191, 209, 11, 5, 191, 216, 11, 5, 191, 211, 11, 5, 191,
+ 213, 11, 5, 191, 212, 11, 5, 191, 215, 11, 5, 191, 214, 11, 5, 191, 222,
+ 11, 5, 191, 221, 11, 5, 191, 225, 11, 5, 191, 223, 11, 5, 191, 206, 11,
+ 5, 191, 208, 11, 5, 191, 207, 11, 5, 191, 217, 11, 5, 191, 220, 11, 5,
+ 191, 218, 11, 5, 191, 199, 11, 5, 191, 203, 11, 5, 191, 202, 11, 5, 191,
+ 200, 11, 5, 191, 201, 11, 5, 191, 193, 11, 5, 191, 192, 11, 5, 191, 198,
+ 11, 5, 191, 196, 11, 5, 191, 194, 11, 5, 191, 195, 11, 5, 212, 133, 11,
+ 5, 212, 132, 11, 5, 212, 138, 11, 5, 212, 134, 11, 5, 212, 135, 11, 5,
+ 212, 137, 11, 5, 212, 136, 11, 5, 212, 143, 11, 5, 212, 142, 11, 5, 212,
+ 146, 11, 5, 212, 145, 11, 5, 212, 126, 11, 5, 212, 127, 11, 5, 212, 130,
+ 11, 5, 212, 131, 11, 5, 212, 139, 11, 5, 212, 141, 11, 5, 212, 121, 11,
+ 5, 212, 129, 11, 5, 212, 125, 11, 5, 212, 122, 11, 5, 212, 123, 11, 5,
+ 212, 116, 11, 5, 212, 115, 11, 5, 212, 120, 11, 5, 212, 119, 11, 5, 212,
+ 117, 11, 5, 212, 118, 11, 5, 203, 43, 11, 5, 170, 11, 5, 203, 125, 11, 5,
+ 203, 46, 11, 5, 203, 105, 11, 5, 203, 108, 11, 5, 203, 106, 11, 5, 206,
+ 20, 11, 5, 206, 4, 11, 5, 188, 11, 5, 206, 28, 11, 5, 201, 113, 11, 5,
+ 201, 115, 11, 5, 201, 114, 11, 5, 202, 177, 11, 5, 202, 166, 11, 5, 202,
+ 212, 11, 5, 202, 181, 11, 5, 204, 137, 11, 5, 205, 223, 11, 5, 204, 168,
+ 11, 5, 201, 88, 11, 5, 201, 85, 11, 5, 201, 184, 11, 5, 201, 112, 11, 5,
+ 201, 92, 11, 5, 201, 100, 11, 5, 200, 242, 11, 5, 200, 241, 11, 5, 201,
+ 56, 11, 5, 200, 250, 11, 5, 200, 244, 11, 5, 200, 249, 11, 5, 202, 53,
+ 11, 5, 202, 52, 11, 5, 202, 59, 11, 5, 202, 54, 11, 5, 202, 56, 11, 5,
+ 202, 58, 11, 5, 202, 57, 11, 5, 202, 68, 11, 5, 202, 66, 11, 5, 202, 92,
+ 11, 5, 202, 69, 11, 5, 202, 48, 11, 5, 202, 47, 11, 5, 202, 51, 11, 5,
+ 202, 49, 11, 5, 202, 62, 11, 5, 202, 65, 11, 5, 202, 63, 11, 5, 202, 44,
+ 11, 5, 202, 42, 11, 5, 202, 46, 11, 5, 202, 45, 11, 5, 202, 37, 11, 5,
+ 202, 36, 11, 5, 202, 41, 11, 5, 202, 40, 11, 5, 202, 38, 11, 5, 202, 39,
+ 11, 5, 192, 66, 11, 5, 192, 65, 11, 5, 192, 71, 11, 5, 192, 68, 11, 5,
+ 192, 45, 11, 5, 192, 47, 11, 5, 192, 46, 11, 5, 192, 50, 11, 5, 192, 49,
+ 11, 5, 192, 54, 11, 5, 192, 51, 11, 5, 192, 59, 11, 5, 192, 58, 11, 5,
+ 192, 62, 11, 5, 192, 60, 11, 5, 192, 41, 11, 5, 192, 40, 11, 5, 192, 48,
+ 11, 5, 192, 44, 11, 5, 192, 42, 11, 5, 192, 43, 11, 5, 192, 33, 11, 5,
+ 192, 32, 11, 5, 192, 37, 11, 5, 192, 36, 11, 5, 192, 34, 11, 5, 192, 35,
+ 11, 5, 242, 251, 11, 5, 242, 247, 11, 5, 246, 117, 11, 5, 246, 103, 11,
+ 5, 242, 164, 11, 5, 242, 163, 11, 5, 242, 166, 11, 5, 242, 165, 11, 5,
+ 242, 179, 11, 5, 242, 178, 11, 5, 242, 188, 11, 5, 242, 183, 11, 5, 242,
+ 222, 11, 5, 242, 219, 11, 5, 242, 245, 11, 5, 242, 230, 11, 5, 242, 158,
+ 11, 5, 242, 168, 11, 5, 242, 162, 11, 5, 242, 159, 11, 5, 242, 161, 11,
+ 5, 242, 151, 11, 5, 242, 150, 11, 5, 242, 155, 11, 5, 242, 154, 11, 5,
+ 242, 152, 11, 5, 242, 153, 11, 5, 206, 255, 11, 5, 207, 3, 11, 5, 206,
+ 237, 11, 5, 206, 238, 11, 5, 206, 242, 11, 5, 206, 241, 11, 5, 206, 245,
+ 11, 5, 206, 243, 11, 5, 206, 249, 11, 5, 206, 248, 11, 5, 206, 254, 11,
+ 5, 206, 250, 11, 5, 206, 233, 11, 5, 206, 231, 11, 5, 206, 239, 11, 5,
+ 206, 236, 11, 5, 206, 234, 11, 5, 206, 235, 11, 5, 206, 226, 11, 5, 206,
+ 225, 11, 5, 206, 230, 11, 5, 206, 229, 11, 5, 206, 227, 11, 5, 206, 228,
+ 11, 5, 213, 86, 11, 5, 213, 85, 11, 5, 213, 88, 11, 5, 213, 87, 11, 5,
+ 213, 77, 11, 5, 213, 79, 11, 5, 213, 78, 11, 5, 213, 81, 11, 5, 213, 80,
+ 11, 5, 213, 84, 11, 5, 213, 83, 11, 5, 213, 71, 11, 5, 213, 70, 11, 5,
+ 213, 76, 11, 5, 213, 74, 11, 5, 213, 72, 11, 5, 213, 73, 11, 5, 213, 65,
+ 11, 5, 213, 64, 11, 5, 213, 69, 11, 5, 213, 68, 11, 5, 213, 66, 11, 5,
+ 213, 67, 11, 5, 204, 22, 11, 5, 204, 17, 11, 5, 204, 64, 11, 5, 204, 35,
+ 11, 5, 203, 152, 11, 5, 203, 154, 11, 5, 203, 153, 11, 5, 203, 179, 11,
+ 5, 203, 174, 11, 5, 203, 211, 11, 5, 203, 199, 11, 5, 203, 246, 11, 5,
+ 203, 239, 11, 5, 204, 12, 11, 5, 203, 255, 11, 5, 203, 148, 11, 5, 203,
+ 145, 11, 5, 203, 164, 11, 5, 203, 151, 11, 5, 203, 149, 11, 5, 203, 150,
+ 11, 5, 203, 128, 11, 5, 203, 127, 11, 5, 203, 134, 11, 5, 203, 131, 11,
+ 5, 203, 129, 11, 5, 203, 130, 11, 5, 208, 22, 11, 5, 208, 16, 11, 5, 167,
+ 11, 5, 208, 28, 11, 5, 206, 188, 11, 5, 206, 190, 11, 5, 206, 189, 11, 5,
+ 207, 17, 11, 5, 207, 5, 11, 5, 207, 55, 11, 5, 207, 21, 11, 5, 207, 161,
+ 11, 5, 208, 7, 11, 5, 207, 203, 11, 5, 206, 180, 11, 5, 206, 177, 11, 5,
+ 206, 218, 11, 5, 206, 187, 11, 5, 206, 183, 11, 5, 206, 184, 11, 5, 206,
+ 162, 11, 5, 206, 161, 11, 5, 206, 167, 11, 5, 206, 165, 11, 5, 206, 163,
+ 11, 5, 206, 164, 11, 5, 223, 8, 11, 5, 223, 7, 11, 5, 223, 20, 11, 5,
+ 223, 9, 11, 5, 223, 16, 11, 5, 223, 15, 11, 5, 223, 18, 11, 5, 223, 17,
+ 11, 5, 222, 202, 11, 5, 222, 201, 11, 5, 222, 204, 11, 5, 222, 203, 11,
+ 5, 222, 220, 11, 5, 222, 218, 11, 5, 222, 233, 11, 5, 222, 222, 11, 5,
+ 222, 195, 11, 5, 222, 193, 11, 5, 222, 214, 11, 5, 222, 200, 11, 5, 222,
+ 197, 11, 5, 222, 198, 11, 5, 222, 187, 11, 5, 222, 186, 11, 5, 222, 191,
+ 11, 5, 222, 190, 11, 5, 222, 188, 11, 5, 222, 189, 11, 5, 208, 193, 11,
+ 5, 208, 191, 11, 5, 208, 201, 11, 5, 208, 194, 11, 5, 208, 198, 11, 5,
+ 208, 197, 11, 5, 208, 200, 11, 5, 208, 199, 11, 5, 208, 143, 11, 5, 208,
+ 140, 11, 5, 208, 145, 11, 5, 208, 144, 11, 5, 208, 180, 11, 5, 208, 179,
+ 11, 5, 208, 189, 11, 5, 208, 183, 11, 5, 208, 135, 11, 5, 208, 131, 11,
+ 5, 208, 177, 11, 5, 208, 139, 11, 5, 208, 137, 11, 5, 208, 138, 11, 5,
+ 208, 115, 11, 5, 208, 113, 11, 5, 208, 125, 11, 5, 208, 118, 11, 5, 208,
+ 116, 11, 5, 208, 117, 11, 5, 222, 253, 11, 5, 222, 252, 11, 5, 223, 3,
+ 11, 5, 222, 254, 11, 5, 223, 0, 11, 5, 222, 255, 11, 5, 223, 2, 11, 5,
+ 223, 1, 11, 5, 222, 244, 11, 5, 222, 246, 11, 5, 222, 245, 11, 5, 222,
+ 249, 11, 5, 222, 248, 11, 5, 222, 251, 11, 5, 222, 250, 11, 5, 222, 240,
+ 11, 5, 222, 239, 11, 5, 222, 247, 11, 5, 222, 243, 11, 5, 222, 241, 11,
+ 5, 222, 242, 11, 5, 222, 236, 11, 5, 222, 235, 11, 5, 222, 238, 11, 5,
+ 222, 237, 11, 5, 213, 233, 11, 5, 213, 232, 11, 5, 213, 240, 11, 5, 213,
+ 234, 11, 5, 213, 236, 11, 5, 213, 235, 11, 5, 213, 239, 11, 5, 213, 237,
+ 11, 5, 213, 222, 11, 5, 213, 223, 11, 5, 213, 228, 11, 5, 213, 227, 11,
+ 5, 213, 231, 11, 5, 213, 229, 11, 5, 213, 217, 11, 5, 213, 226, 11, 5,
+ 213, 221, 11, 5, 213, 218, 11, 5, 213, 219, 11, 5, 213, 212, 11, 5, 213,
+ 211, 11, 5, 213, 216, 11, 5, 213, 215, 11, 5, 213, 213, 11, 5, 213, 214,
+ 11, 5, 212, 168, 11, 5, 212, 167, 11, 5, 212, 181, 11, 5, 212, 172, 11,
+ 5, 212, 177, 11, 5, 212, 176, 11, 5, 212, 179, 11, 5, 212, 178, 11, 5,
+ 212, 153, 11, 5, 212, 155, 11, 5, 212, 154, 11, 5, 212, 160, 11, 5, 212,
+ 159, 11, 5, 212, 165, 11, 5, 212, 161, 11, 5, 212, 151, 11, 5, 212, 149,
+ 11, 5, 212, 158, 11, 5, 212, 152, 11, 5, 193, 187, 11, 5, 193, 186, 11,
+ 5, 193, 196, 11, 5, 193, 189, 11, 5, 193, 191, 11, 5, 193, 190, 11, 5,
+ 193, 193, 11, 5, 193, 192, 11, 5, 193, 175, 11, 5, 193, 176, 11, 5, 193,
+ 180, 11, 5, 193, 179, 11, 5, 193, 185, 11, 5, 193, 183, 11, 5, 193, 152,
+ 11, 5, 193, 150, 11, 5, 193, 165, 11, 5, 193, 155, 11, 5, 193, 153, 11,
+ 5, 193, 154, 11, 5, 193, 7, 11, 5, 193, 5, 11, 5, 193, 22, 11, 5, 193, 8,
+ 11, 5, 193, 16, 11, 5, 193, 15, 11, 5, 193, 19, 11, 5, 193, 17, 11, 5,
+ 192, 187, 11, 5, 192, 186, 11, 5, 192, 190, 11, 5, 192, 188, 11, 5, 192,
+ 229, 11, 5, 192, 224, 11, 5, 193, 1, 11, 5, 192, 234, 11, 5, 192, 178,
+ 11, 5, 192, 174, 11, 5, 192, 214, 11, 5, 192, 185, 11, 5, 192, 181, 11,
+ 5, 192, 182, 11, 5, 192, 158, 11, 5, 192, 157, 11, 5, 192, 165, 11, 5,
+ 192, 161, 11, 5, 192, 159, 11, 5, 192, 160, 11, 48, 208, 180, 11, 48,
+ 219, 209, 11, 48, 221, 158, 11, 48, 212, 172, 11, 48, 238, 104, 11, 48,
+ 202, 59, 11, 48, 231, 103, 11, 48, 231, 135, 11, 48, 216, 175, 11, 48,
+ 228, 126, 11, 48, 218, 243, 11, 48, 248, 131, 11, 48, 216, 27, 11, 48,
+ 193, 1, 11, 48, 209, 17, 11, 48, 228, 120, 11, 48, 200, 105, 11, 48, 231,
+ 233, 11, 48, 191, 244, 11, 48, 238, 98, 11, 48, 237, 121, 11, 48, 247,
+ 89, 11, 48, 231, 99, 11, 48, 212, 161, 11, 48, 198, 45, 11, 48, 211, 185,
+ 11, 48, 222, 240, 11, 48, 192, 3, 11, 48, 208, 251, 11, 48, 229, 85, 11,
+ 48, 193, 7, 11, 48, 194, 218, 11, 48, 203, 134, 11, 48, 196, 111, 11, 48,
+ 192, 112, 11, 48, 222, 233, 11, 48, 212, 125, 11, 48, 222, 238, 11, 48,
+ 230, 231, 11, 48, 223, 2, 11, 48, 194, 36, 11, 48, 235, 62, 11, 48, 203,
+ 150, 11, 48, 219, 203, 11, 48, 238, 110, 11, 48, 238, 151, 11, 48, 242,
+ 132, 11, 48, 228, 123, 11, 48, 204, 22, 11, 48, 191, 243, 11, 48, 203,
+ 199, 11, 48, 242, 245, 11, 48, 191, 213, 11, 48, 215, 26, 11, 48, 222,
+ 57, 219, 152, 1, 249, 3, 219, 152, 1, 166, 219, 152, 1, 210, 94, 219,
+ 152, 1, 238, 0, 219, 152, 1, 189, 219, 152, 1, 199, 240, 219, 152, 1,
+ 231, 233, 219, 152, 1, 160, 219, 152, 1, 221, 250, 219, 152, 1, 223, 62,
+ 219, 152, 1, 247, 19, 219, 152, 1, 246, 117, 219, 152, 1, 235, 17, 219,
+ 152, 1, 198, 118, 219, 152, 1, 198, 108, 219, 152, 1, 172, 219, 152, 1,
+ 181, 219, 152, 1, 177, 219, 152, 1, 188, 219, 152, 1, 192, 71, 219, 152,
+ 1, 192, 112, 219, 152, 1, 214, 165, 219, 152, 1, 144, 219, 152, 1, 193,
+ 209, 219, 152, 1, 229, 187, 219, 152, 1, 233, 97, 219, 152, 1, 194, 169,
+ 219, 152, 1, 204, 64, 219, 152, 1, 168, 219, 152, 1, 231, 84, 219, 152,
+ 1, 64, 219, 152, 1, 251, 108, 219, 152, 1, 71, 219, 152, 1, 233, 230,
+ 219, 152, 1, 70, 219, 152, 1, 74, 219, 152, 1, 68, 219, 152, 1, 197, 104,
+ 219, 152, 1, 197, 97, 219, 152, 1, 212, 0, 219, 152, 1, 158, 215, 158,
+ 199, 128, 219, 152, 1, 158, 215, 97, 209, 198, 219, 152, 1, 158, 215,
+ 158, 238, 109, 219, 152, 1, 158, 215, 158, 247, 220, 219, 152, 1, 158,
+ 215, 158, 181, 219, 152, 1, 158, 215, 158, 223, 29, 219, 152, 209, 38,
+ 242, 38, 219, 152, 209, 38, 232, 71, 201, 238, 56, 5, 234, 171, 56, 5,
+ 234, 167, 56, 5, 229, 225, 56, 5, 194, 100, 56, 5, 194, 99, 56, 5, 210,
+ 168, 56, 5, 248, 48, 56, 5, 248, 108, 56, 5, 217, 74, 56, 5, 221, 64, 56,
+ 5, 216, 207, 56, 5, 231, 171, 56, 5, 233, 40, 56, 5, 196, 118, 56, 5,
+ 200, 56, 56, 5, 199, 222, 56, 5, 237, 30, 56, 5, 237, 27, 56, 5, 220, 32,
+ 56, 5, 207, 234, 56, 5, 237, 101, 56, 5, 214, 246, 56, 5, 205, 205, 56,
+ 5, 204, 10, 56, 5, 192, 82, 56, 5, 192, 61, 56, 5, 246, 150, 56, 5, 223,
+ 39, 56, 5, 213, 247, 56, 5, 193, 66, 56, 5, 222, 48, 56, 5, 214, 138, 56,
+ 5, 231, 150, 56, 5, 217, 29, 56, 5, 214, 203, 56, 5, 212, 189, 56, 5, 70,
+ 56, 5, 223, 190, 56, 5, 229, 178, 56, 5, 229, 148, 56, 5, 194, 72, 56, 5,
+ 194, 54, 56, 5, 210, 51, 56, 5, 248, 46, 56, 5, 248, 41, 56, 5, 217, 67,
+ 56, 5, 221, 61, 56, 5, 216, 204, 56, 5, 231, 167, 56, 5, 233, 11, 56, 5,
+ 196, 39, 56, 5, 199, 128, 56, 5, 199, 202, 56, 5, 237, 22, 56, 5, 237,
+ 26, 56, 5, 219, 209, 56, 5, 207, 151, 56, 5, 237, 16, 56, 5, 214, 240,
+ 56, 5, 203, 125, 56, 5, 203, 236, 56, 5, 192, 30, 56, 5, 192, 57, 56, 5,
+ 242, 149, 56, 5, 223, 20, 56, 5, 213, 240, 56, 5, 193, 22, 56, 5, 221,
+ 204, 56, 5, 214, 130, 56, 5, 231, 46, 56, 5, 216, 175, 56, 5, 214, 60,
+ 56, 5, 212, 181, 56, 5, 64, 56, 5, 250, 224, 56, 5, 214, 160, 56, 5, 144,
+ 56, 5, 230, 65, 56, 5, 194, 169, 56, 5, 194, 149, 56, 5, 166, 56, 5, 248,
+ 54, 56, 5, 249, 3, 56, 5, 217, 82, 56, 5, 221, 69, 56, 5, 221, 67, 56, 5,
+ 216, 211, 56, 5, 231, 175, 56, 5, 233, 97, 56, 5, 196, 157, 56, 5, 189,
+ 56, 5, 199, 240, 56, 5, 237, 40, 56, 5, 237, 29, 56, 5, 177, 56, 5, 167,
+ 56, 5, 238, 0, 56, 5, 214, 255, 56, 5, 188, 56, 5, 204, 64, 56, 5, 192,
+ 112, 56, 5, 192, 71, 56, 5, 247, 19, 56, 5, 223, 62, 56, 5, 214, 0, 56,
+ 5, 168, 56, 5, 160, 56, 5, 222, 121, 56, 5, 214, 144, 56, 5, 231, 233,
+ 56, 5, 172, 56, 5, 181, 56, 5, 212, 201, 56, 5, 211, 194, 56, 5, 211,
+ 189, 56, 5, 229, 16, 56, 5, 194, 17, 56, 5, 194, 13, 56, 5, 209, 172, 56,
+ 5, 248, 44, 56, 5, 247, 206, 56, 5, 217, 62, 56, 5, 221, 59, 56, 5, 216,
+ 200, 56, 5, 231, 163, 56, 5, 232, 152, 56, 5, 195, 236, 56, 5, 198, 254,
+ 56, 5, 199, 170, 56, 5, 237, 19, 56, 5, 237, 24, 56, 5, 219, 73, 56, 5,
+ 207, 28, 56, 5, 236, 120, 56, 5, 214, 227, 56, 5, 202, 183, 56, 5, 203,
+ 203, 56, 5, 192, 5, 56, 5, 192, 52, 56, 5, 238, 239, 56, 5, 222, 223, 56,
+ 5, 213, 230, 56, 5, 192, 235, 56, 5, 221, 88, 56, 5, 214, 128, 56, 5,
+ 230, 242, 56, 5, 216, 35, 56, 5, 213, 125, 56, 5, 212, 162, 56, 5, 68,
+ 56, 5, 197, 77, 56, 5, 228, 181, 56, 5, 228, 164, 56, 5, 193, 244, 56, 5,
+ 193, 237, 56, 5, 209, 51, 56, 5, 248, 43, 56, 5, 247, 124, 56, 5, 217,
+ 61, 56, 5, 221, 57, 56, 5, 216, 199, 56, 5, 231, 162, 56, 5, 232, 77, 56,
+ 5, 194, 223, 56, 5, 198, 45, 56, 5, 199, 148, 56, 5, 237, 17, 56, 5, 237,
+ 23, 56, 5, 219, 36, 56, 5, 206, 218, 56, 5, 235, 62, 56, 5, 214, 222, 56,
+ 5, 201, 184, 56, 5, 203, 164, 56, 5, 191, 252, 56, 5, 192, 48, 56, 5,
+ 238, 162, 56, 5, 222, 214, 56, 5, 213, 226, 56, 5, 192, 214, 56, 5, 221,
+ 33, 56, 5, 214, 127, 56, 5, 230, 186, 56, 5, 215, 241, 56, 5, 213, 22,
+ 56, 5, 212, 158, 56, 5, 74, 56, 5, 211, 211, 56, 5, 214, 86, 56, 5, 229,
+ 43, 56, 5, 229, 19, 56, 5, 194, 36, 56, 5, 194, 18, 56, 5, 209, 198, 56,
+ 5, 248, 45, 56, 5, 247, 220, 56, 5, 217, 63, 56, 5, 221, 60, 56, 5, 216,
+ 202, 56, 5, 231, 165, 56, 5, 231, 164, 56, 5, 232, 164, 56, 5, 195, 252,
+ 56, 5, 155, 56, 5, 199, 176, 56, 5, 237, 20, 56, 5, 237, 25, 56, 5, 219,
+ 107, 56, 5, 207, 55, 56, 5, 236, 146, 56, 5, 214, 231, 56, 5, 202, 212,
+ 56, 5, 203, 211, 56, 5, 192, 8, 56, 5, 192, 54, 56, 5, 242, 63, 56, 5,
+ 222, 233, 56, 5, 213, 231, 56, 5, 193, 1, 56, 5, 221, 113, 56, 5, 214,
+ 129, 56, 5, 230, 254, 56, 5, 216, 91, 56, 5, 213, 142, 56, 5, 212, 165,
+ 56, 5, 71, 56, 5, 234, 88, 56, 5, 214, 149, 56, 5, 229, 255, 56, 5, 229,
+ 208, 56, 5, 194, 111, 56, 5, 194, 94, 56, 5, 210, 181, 56, 5, 248, 49,
+ 56, 5, 248, 123, 56, 5, 217, 75, 56, 5, 221, 65, 56, 5, 221, 63, 56, 5,
+ 216, 208, 56, 5, 231, 172, 56, 5, 231, 170, 56, 5, 233, 47, 56, 5, 196,
+ 123, 56, 5, 200, 79, 56, 5, 199, 224, 56, 5, 237, 31, 56, 5, 237, 28, 56,
+ 5, 220, 42, 56, 5, 208, 7, 56, 5, 237, 116, 56, 5, 214, 247, 56, 5, 205,
+ 223, 56, 5, 204, 12, 56, 5, 192, 85, 56, 5, 192, 62, 56, 5, 246, 158, 56,
+ 5, 223, 41, 56, 5, 213, 249, 56, 5, 193, 69, 56, 5, 222, 57, 56, 5, 214,
+ 139, 56, 5, 214, 135, 56, 5, 231, 158, 56, 5, 231, 144, 56, 5, 217, 48,
+ 56, 5, 214, 214, 56, 5, 212, 190, 56, 5, 214, 167, 56, 5, 219, 250, 56,
+ 242, 38, 56, 232, 71, 201, 238, 56, 208, 159, 77, 56, 5, 214, 230, 233,
+ 97, 56, 5, 214, 230, 160, 56, 5, 214, 230, 202, 183, 56, 16, 233, 36, 56,
+ 16, 222, 46, 56, 16, 199, 78, 56, 16, 214, 27, 56, 16, 248, 201, 56, 16,
+ 233, 96, 56, 16, 200, 174, 56, 16, 237, 206, 56, 16, 236, 119, 56, 16,
+ 221, 10, 56, 16, 199, 2, 56, 16, 236, 145, 56, 16, 222, 224, 56, 17, 192,
+ 76, 56, 17, 101, 56, 17, 104, 56, 17, 133, 56, 17, 134, 56, 17, 151, 56,
+ 17, 170, 56, 17, 179, 56, 17, 174, 56, 17, 182, 56, 5, 214, 230, 172, 56,
+ 5, 214, 230, 236, 146, 42, 6, 1, 192, 80, 42, 2, 1, 192, 80, 42, 6, 1,
+ 235, 12, 42, 2, 1, 235, 12, 42, 6, 1, 207, 168, 235, 14, 42, 2, 1, 207,
+ 168, 235, 14, 42, 6, 1, 223, 111, 42, 2, 1, 223, 111, 42, 6, 1, 236, 163,
+ 42, 2, 1, 236, 163, 42, 6, 1, 216, 43, 197, 92, 42, 2, 1, 216, 43, 197,
+ 92, 42, 6, 1, 247, 138, 211, 216, 42, 2, 1, 247, 138, 211, 216, 42, 6, 1,
+ 214, 179, 193, 51, 42, 2, 1, 214, 179, 193, 51, 42, 6, 1, 193, 48, 4,
+ 248, 253, 193, 51, 42, 2, 1, 193, 48, 4, 248, 253, 193, 51, 42, 6, 1,
+ 223, 109, 193, 84, 42, 2, 1, 223, 109, 193, 84, 42, 6, 1, 207, 168, 192,
+ 214, 42, 2, 1, 207, 168, 192, 214, 42, 6, 1, 223, 109, 64, 42, 2, 1, 223,
+ 109, 64, 42, 6, 1, 242, 84, 219, 147, 192, 179, 42, 2, 1, 242, 84, 219,
+ 147, 192, 179, 42, 6, 1, 247, 240, 192, 179, 42, 2, 1, 247, 240, 192,
+ 179, 42, 6, 1, 223, 109, 242, 84, 219, 147, 192, 179, 42, 2, 1, 223, 109,
+ 242, 84, 219, 147, 192, 179, 42, 6, 1, 193, 3, 42, 2, 1, 193, 3, 42, 6,
+ 1, 207, 168, 198, 112, 42, 2, 1, 207, 168, 198, 112, 42, 6, 1, 202, 198,
+ 237, 116, 42, 2, 1, 202, 198, 237, 116, 42, 6, 1, 202, 198, 234, 124, 42,
+ 2, 1, 202, 198, 234, 124, 42, 6, 1, 202, 198, 234, 99, 42, 2, 1, 202,
+ 198, 234, 99, 42, 6, 1, 216, 47, 74, 42, 2, 1, 216, 47, 74, 42, 6, 1,
+ 248, 17, 74, 42, 2, 1, 248, 17, 74, 42, 6, 1, 55, 216, 47, 74, 42, 2, 1,
+ 55, 216, 47, 74, 42, 1, 215, 217, 74, 38, 42, 194, 204, 38, 42, 200, 31,
+ 216, 124, 57, 38, 42, 228, 163, 216, 124, 57, 38, 42, 199, 165, 216, 124,
+ 57, 203, 2, 250, 37, 38, 42, 1, 197, 89, 223, 251, 38, 42, 1, 70, 38, 42,
+ 1, 193, 22, 38, 42, 1, 68, 38, 42, 1, 230, 26, 57, 38, 42, 1, 193, 47,
+ 38, 42, 1, 202, 198, 57, 38, 42, 1, 211, 216, 38, 42, 222, 69, 38, 42,
+ 210, 188, 42, 222, 69, 42, 210, 188, 42, 6, 1, 235, 27, 42, 2, 1, 235,
+ 27, 42, 6, 1, 235, 3, 42, 2, 1, 235, 3, 42, 6, 1, 192, 38, 42, 2, 1, 192,
+ 38, 42, 6, 1, 246, 174, 42, 2, 1, 246, 174, 42, 6, 1, 234, 255, 42, 2, 1,
+ 234, 255, 42, 6, 1, 200, 80, 4, 85, 128, 42, 2, 1, 200, 80, 4, 85, 128,
+ 42, 6, 1, 197, 248, 42, 2, 1, 197, 248, 42, 6, 1, 198, 87, 42, 2, 1, 198,
+ 87, 42, 6, 1, 198, 92, 42, 2, 1, 198, 92, 42, 6, 1, 200, 85, 42, 2, 1,
+ 200, 85, 42, 6, 1, 228, 144, 42, 2, 1, 228, 144, 42, 6, 1, 203, 140, 42,
+ 2, 1, 203, 140, 42, 6, 1, 55, 74, 42, 2, 1, 55, 74, 42, 6, 1, 238, 180,
+ 74, 42, 2, 1, 238, 180, 74, 73, 1, 42, 230, 26, 57, 73, 1, 42, 202, 198,
+ 57, 38, 42, 1, 234, 164, 38, 42, 1, 223, 109, 71, 25, 1, 64, 25, 1, 160,
+ 25, 1, 68, 25, 1, 221, 33, 25, 1, 234, 171, 25, 1, 207, 234, 25, 1, 200,
+ 157, 25, 1, 74, 25, 1, 212, 181, 25, 1, 70, 25, 1, 177, 25, 1, 166, 25,
+ 1, 207, 88, 25, 1, 207, 136, 25, 1, 220, 31, 25, 1, 217, 28, 25, 1, 200,
+ 174, 25, 1, 214, 253, 25, 1, 213, 254, 25, 1, 218, 236, 25, 1, 201, 86,
+ 25, 1, 215, 241, 25, 1, 203, 231, 25, 1, 203, 125, 25, 1, 203, 241, 25,
+ 1, 204, 147, 25, 1, 220, 208, 25, 1, 222, 20, 25, 1, 212, 246, 25, 1,
+ 213, 22, 25, 1, 213, 225, 25, 1, 192, 232, 25, 1, 203, 164, 25, 1, 192,
+ 183, 25, 1, 168, 25, 1, 213, 59, 25, 1, 222, 6, 25, 1, 210, 98, 25, 1,
+ 213, 247, 25, 1, 213, 39, 25, 1, 209, 42, 25, 1, 193, 241, 25, 1, 210,
+ 168, 25, 1, 233, 40, 25, 1, 206, 218, 25, 1, 219, 36, 25, 1, 216, 175,
+ 25, 1, 214, 60, 25, 1, 207, 170, 25, 1, 208, 53, 25, 1, 222, 30, 25, 1,
+ 214, 93, 25, 1, 214, 144, 25, 1, 214, 165, 25, 1, 203, 211, 25, 1, 209,
+ 47, 25, 1, 232, 77, 25, 1, 232, 157, 25, 1, 194, 169, 25, 1, 181, 25, 1,
+ 219, 209, 25, 1, 210, 51, 25, 1, 219, 65, 25, 1, 221, 113, 25, 1, 217,
+ 72, 25, 1, 207, 205, 25, 1, 217, 5, 25, 1, 172, 25, 1, 199, 128, 25, 1,
+ 221, 204, 25, 1, 216, 91, 25, 1, 217, 80, 25, 1, 200, 8, 25, 1, 221, 69,
+ 25, 1, 200, 30, 25, 1, 213, 25, 25, 1, 206, 48, 25, 1, 233, 93, 25, 1,
+ 221, 72, 25, 1, 221, 104, 25, 38, 122, 221, 81, 25, 38, 122, 198, 30, 25,
+ 213, 253, 25, 232, 71, 201, 238, 25, 242, 47, 25, 242, 38, 25, 204, 180,
+ 25, 208, 159, 77, 73, 1, 242, 200, 158, 193, 11, 209, 255, 73, 1, 242,
+ 200, 158, 193, 96, 209, 255, 73, 1, 242, 200, 158, 193, 11, 204, 36, 73,
+ 1, 242, 200, 158, 193, 96, 204, 36, 73, 1, 242, 200, 158, 193, 11, 208,
+ 177, 73, 1, 242, 200, 158, 193, 96, 208, 177, 73, 1, 242, 200, 158, 193,
+ 11, 206, 218, 73, 1, 242, 200, 158, 193, 96, 206, 218, 73, 1, 233, 188,
+ 235, 111, 158, 161, 73, 1, 139, 235, 111, 158, 161, 73, 1, 216, 162, 235,
+ 111, 158, 161, 73, 1, 132, 235, 111, 158, 161, 73, 1, 233, 187, 235, 111,
+ 158, 161, 73, 1, 233, 188, 235, 111, 220, 20, 158, 161, 73, 1, 139, 235,
+ 111, 220, 20, 158, 161, 73, 1, 216, 162, 235, 111, 220, 20, 158, 161, 73,
+ 1, 132, 235, 111, 220, 20, 158, 161, 73, 1, 233, 187, 235, 111, 220, 20,
+ 158, 161, 73, 1, 233, 188, 220, 20, 158, 161, 73, 1, 139, 220, 20, 158,
+ 161, 73, 1, 216, 162, 220, 20, 158, 161, 73, 1, 132, 220, 20, 158, 161,
+ 73, 1, 233, 187, 220, 20, 158, 161, 73, 1, 78, 84, 161, 73, 1, 78, 203,
+ 4, 73, 1, 78, 229, 5, 161, 73, 1, 106, 51, 238, 224, 250, 207, 73, 1,
+ 208, 39, 130, 54, 73, 1, 208, 39, 142, 54, 73, 1, 208, 39, 233, 204, 77,
+ 73, 1, 208, 39, 223, 121, 233, 204, 77, 73, 1, 132, 223, 121, 233, 204,
+ 77, 73, 1, 201, 218, 26, 139, 199, 18, 73, 1, 201, 218, 26, 132, 199, 18,
+ 8, 6, 1, 234, 159, 251, 26, 8, 2, 1, 234, 159, 251, 26, 8, 6, 1, 234,
+ 159, 251, 57, 8, 2, 1, 234, 159, 251, 57, 8, 6, 1, 229, 206, 8, 2, 1,
+ 229, 206, 8, 6, 1, 197, 192, 8, 2, 1, 197, 192, 8, 6, 1, 198, 189, 8, 2,
+ 1, 198, 189, 8, 6, 1, 238, 159, 8, 2, 1, 238, 159, 8, 6, 1, 238, 160, 4,
+ 242, 38, 8, 2, 1, 238, 160, 4, 242, 38, 8, 1, 2, 6, 233, 163, 8, 1, 2, 6,
+ 206, 158, 8, 6, 1, 252, 33, 8, 2, 1, 252, 33, 8, 6, 1, 250, 166, 8, 2, 1,
+ 250, 166, 8, 6, 1, 250, 8, 8, 2, 1, 250, 8, 8, 6, 1, 249, 247, 8, 2, 1,
+ 249, 247, 8, 6, 1, 249, 248, 4, 229, 5, 161, 8, 2, 1, 249, 248, 4, 229,
+ 5, 161, 8, 6, 1, 249, 236, 8, 2, 1, 249, 236, 8, 6, 1, 207, 168, 247, 53,
+ 4, 236, 114, 8, 2, 1, 207, 168, 247, 53, 4, 236, 114, 8, 6, 1, 222, 185,
+ 4, 111, 8, 2, 1, 222, 185, 4, 111, 8, 6, 1, 222, 185, 4, 237, 11, 111, 8,
+ 2, 1, 222, 185, 4, 237, 11, 111, 8, 6, 1, 222, 185, 4, 201, 208, 26, 237,
+ 11, 111, 8, 2, 1, 222, 185, 4, 201, 208, 26, 237, 11, 111, 8, 6, 1, 247,
+ 136, 165, 8, 2, 1, 247, 136, 165, 8, 6, 1, 220, 202, 4, 139, 111, 8, 2,
+ 1, 220, 202, 4, 139, 111, 8, 6, 1, 185, 4, 184, 201, 208, 211, 110, 8, 2,
+ 1, 185, 4, 184, 201, 208, 211, 110, 8, 6, 1, 185, 4, 219, 69, 8, 2, 1,
+ 185, 4, 219, 69, 8, 6, 1, 211, 194, 8, 2, 1, 211, 194, 8, 6, 1, 211, 94,
+ 4, 201, 208, 199, 151, 237, 59, 8, 2, 1, 211, 94, 4, 201, 208, 199, 151,
+ 237, 59, 8, 6, 1, 211, 94, 4, 232, 177, 8, 2, 1, 211, 94, 4, 232, 177, 8,
+ 6, 1, 211, 94, 4, 202, 98, 200, 147, 8, 2, 1, 211, 94, 4, 202, 98, 200,
+ 147, 8, 6, 1, 208, 248, 4, 201, 208, 199, 151, 237, 59, 8, 2, 1, 208,
+ 248, 4, 201, 208, 199, 151, 237, 59, 8, 6, 1, 208, 248, 4, 237, 11, 111,
+ 8, 2, 1, 208, 248, 4, 237, 11, 111, 8, 6, 1, 208, 112, 207, 10, 8, 2, 1,
+ 208, 112, 207, 10, 8, 6, 1, 206, 199, 207, 10, 8, 2, 1, 206, 199, 207,
+ 10, 8, 6, 1, 196, 237, 4, 237, 11, 111, 8, 2, 1, 196, 237, 4, 237, 11,
+ 111, 8, 6, 1, 194, 210, 8, 2, 1, 194, 210, 8, 6, 1, 196, 4, 192, 155, 8,
+ 2, 1, 196, 4, 192, 155, 8, 6, 1, 199, 169, 4, 111, 8, 2, 1, 199, 169, 4,
+ 111, 8, 6, 1, 199, 169, 4, 201, 208, 199, 151, 237, 59, 8, 2, 1, 199,
+ 169, 4, 201, 208, 199, 151, 237, 59, 8, 6, 1, 196, 112, 8, 2, 1, 196,
+ 112, 8, 6, 1, 233, 242, 8, 2, 1, 233, 242, 8, 6, 1, 223, 96, 8, 2, 1,
+ 223, 96, 8, 6, 1, 239, 21, 8, 2, 1, 239, 21, 73, 1, 197, 10, 8, 2, 1,
+ 235, 51, 8, 2, 1, 219, 19, 8, 2, 1, 215, 210, 8, 2, 1, 212, 237, 8, 2, 1,
+ 206, 198, 8, 1, 2, 6, 206, 198, 8, 2, 1, 198, 27, 8, 2, 1, 197, 84, 8, 6,
+ 1, 223, 143, 238, 95, 8, 2, 1, 223, 143, 238, 95, 8, 6, 1, 223, 143, 233,
+ 163, 8, 2, 1, 223, 143, 233, 163, 8, 6, 1, 223, 143, 232, 44, 8, 6, 1,
+ 163, 223, 143, 232, 44, 8, 2, 1, 163, 223, 143, 232, 44, 8, 6, 1, 163,
+ 165, 8, 2, 1, 163, 165, 8, 6, 1, 223, 143, 150, 8, 2, 1, 223, 143, 150,
+ 8, 6, 1, 223, 143, 206, 158, 8, 2, 1, 223, 143, 206, 158, 8, 6, 1, 223,
+ 143, 200, 228, 8, 2, 1, 223, 143, 200, 228, 73, 1, 132, 242, 122, 251,
+ 143, 73, 1, 242, 47, 73, 1, 203, 195, 234, 30, 57, 8, 6, 1, 206, 53, 8,
+ 2, 1, 206, 53, 8, 6, 1, 163, 230, 124, 8, 2, 1, 220, 202, 4, 207, 174,
+ 229, 15, 26, 248, 82, 8, 1, 203, 67, 236, 114, 8, 6, 1, 215, 152, 4, 237,
+ 59, 8, 2, 1, 215, 152, 4, 237, 59, 8, 6, 1, 247, 53, 4, 161, 8, 2, 1,
+ 247, 53, 4, 161, 8, 2, 1, 247, 53, 4, 211, 49, 128, 8, 2, 1, 230, 125, 4,
+ 211, 49, 128, 8, 6, 1, 76, 4, 232, 177, 8, 2, 1, 76, 4, 232, 177, 8, 6,
+ 1, 233, 164, 4, 111, 8, 2, 1, 233, 164, 4, 111, 8, 6, 1, 195, 243, 251,
+ 108, 8, 2, 1, 195, 243, 251, 108, 8, 6, 1, 195, 243, 212, 0, 8, 2, 1,
+ 195, 243, 212, 0, 8, 6, 1, 195, 243, 197, 104, 8, 2, 1, 195, 243, 197,
+ 104, 8, 6, 1, 232, 45, 4, 212, 18, 111, 8, 2, 1, 232, 45, 4, 212, 18,
+ 111, 8, 6, 1, 222, 185, 4, 212, 18, 111, 8, 2, 1, 222, 185, 4, 212, 18,
+ 111, 8, 6, 1, 215, 152, 4, 212, 18, 111, 8, 2, 1, 215, 152, 4, 212, 18,
+ 111, 8, 6, 1, 208, 112, 4, 212, 18, 111, 8, 2, 1, 208, 112, 4, 212, 18,
+ 111, 8, 6, 1, 206, 159, 4, 212, 18, 111, 8, 2, 1, 206, 159, 4, 212, 18,
+ 111, 8, 6, 1, 230, 125, 4, 128, 8, 6, 1, 207, 168, 211, 184, 71, 8, 6, 1,
+ 27, 232, 44, 8, 6, 1, 220, 202, 4, 248, 82, 8, 6, 1, 2, 6, 70, 8, 1, 2,
+ 6, 208, 247, 8, 6, 1, 163, 222, 184, 8, 6, 1, 163, 200, 228, 8, 6, 1,
+ 223, 66, 4, 238, 178, 8, 6, 1, 242, 215, 8, 6, 1, 248, 63, 8, 2, 1, 248,
+ 63, 8, 6, 1, 211, 216, 8, 2, 1, 211, 216, 8, 6, 1, 124, 4, 111, 8, 2, 1,
+ 124, 4, 111, 8, 6, 1, 231, 6, 64, 8, 2, 1, 231, 6, 64, 8, 6, 1, 231, 6,
+ 70, 8, 2, 1, 231, 6, 70, 8, 6, 1, 231, 6, 68, 8, 2, 1, 231, 6, 68, 8, 6,
+ 1, 250, 204, 194, 202, 8, 2, 1, 250, 204, 194, 202, 8, 6, 1, 247, 53, 4,
+ 211, 49, 128, 8, 6, 1, 206, 159, 4, 128, 8, 6, 1, 192, 156, 4, 211, 49,
+ 128, 8, 6, 1, 238, 96, 4, 203, 195, 201, 208, 211, 110, 8, 2, 1, 238, 96,
+ 4, 203, 195, 201, 208, 211, 110, 8, 6, 1, 206, 159, 4, 203, 195, 201,
+ 208, 211, 110, 8, 2, 1, 206, 159, 4, 203, 195, 201, 208, 211, 110, 8, 6,
+ 1, 207, 168, 138, 230, 124, 8, 2, 1, 207, 168, 138, 230, 124, 8, 234, 35,
+ 1, 203, 109, 70, 73, 1, 6, 230, 125, 4, 111, 73, 1, 2, 34, 212, 0, 8, 1,
+ 2, 6, 163, 218, 236, 8, 234, 35, 1, 207, 168, 233, 163, 8, 234, 35, 1,
+ 207, 168, 211, 93, 8, 234, 35, 1, 223, 121, 218, 236, 8, 234, 35, 1, 228,
+ 97, 219, 75, 8, 234, 35, 1, 250, 112, 218, 236, 201, 53, 215, 72, 1, 64,
+ 201, 53, 215, 72, 1, 70, 201, 53, 215, 72, 3, 235, 29, 201, 53, 215, 72,
+ 1, 68, 201, 53, 215, 72, 1, 71, 201, 53, 215, 72, 1, 74, 201, 53, 215,
+ 72, 3, 230, 20, 201, 53, 215, 72, 1, 221, 113, 201, 53, 215, 72, 1, 221,
+ 220, 201, 53, 215, 72, 1, 230, 254, 201, 53, 215, 72, 1, 231, 56, 201,
+ 53, 215, 72, 3, 250, 168, 201, 53, 215, 72, 1, 242, 63, 201, 53, 215, 72,
+ 1, 242, 188, 201, 53, 215, 72, 1, 222, 233, 201, 53, 215, 72, 1, 223, 22,
+ 201, 53, 215, 72, 1, 198, 60, 201, 53, 215, 72, 1, 198, 66, 201, 53, 215,
+ 72, 1, 237, 131, 201, 53, 215, 72, 1, 237, 140, 201, 53, 215, 72, 1, 155,
+ 201, 53, 215, 72, 1, 199, 176, 201, 53, 215, 72, 1, 236, 146, 201, 53,
+ 215, 72, 1, 237, 20, 201, 53, 215, 72, 1, 213, 142, 201, 53, 215, 72, 1,
+ 209, 198, 201, 53, 215, 72, 1, 210, 65, 201, 53, 215, 72, 1, 247, 220,
+ 201, 53, 215, 72, 1, 248, 45, 201, 53, 215, 72, 1, 216, 91, 201, 53, 215,
+ 72, 1, 207, 55, 201, 53, 215, 72, 1, 219, 107, 201, 53, 215, 72, 1, 206,
+ 245, 201, 53, 215, 72, 1, 202, 212, 201, 53, 215, 72, 1, 229, 43, 201,
+ 53, 215, 72, 18, 3, 64, 201, 53, 215, 72, 18, 3, 70, 201, 53, 215, 72,
+ 18, 3, 68, 201, 53, 215, 72, 18, 3, 71, 201, 53, 215, 72, 18, 3, 211,
+ 194, 201, 53, 215, 72, 209, 193, 217, 126, 201, 53, 215, 72, 209, 193,
+ 217, 125, 201, 53, 215, 72, 209, 193, 217, 124, 201, 53, 215, 72, 209,
+ 193, 217, 123, 201, 53, 215, 72, 3, 250, 249, 230, 20, 178, 223, 174,
+ 232, 109, 90, 208, 167, 178, 223, 174, 232, 109, 90, 230, 78, 178, 223,
+ 174, 232, 109, 112, 208, 165, 178, 223, 174, 232, 109, 90, 203, 33, 178,
+ 223, 174, 232, 109, 90, 234, 143, 178, 223, 174, 232, 109, 112, 203, 30,
+ 178, 223, 174, 208, 168, 77, 178, 223, 174, 209, 231, 77, 178, 223, 174,
+ 206, 186, 77, 178, 223, 174, 208, 169, 77, 210, 90, 1, 160, 210, 90, 1,
+ 221, 250, 210, 90, 1, 231, 233, 210, 90, 1, 214, 165, 210, 90, 1, 247,
+ 19, 210, 90, 1, 246, 117, 210, 90, 1, 223, 62, 210, 90, 1, 212, 201, 210,
+ 90, 1, 189, 210, 90, 1, 199, 240, 210, 90, 1, 238, 0, 210, 90, 1, 181,
+ 210, 90, 1, 166, 210, 90, 1, 210, 94, 210, 90, 1, 249, 3, 210, 90, 1,
+ 172, 210, 90, 1, 198, 118, 210, 90, 1, 198, 108, 210, 90, 1, 235, 17,
+ 210, 90, 1, 194, 169, 210, 90, 1, 192, 71, 210, 90, 1, 192, 112, 210, 90,
+ 1, 2, 64, 210, 90, 1, 168, 210, 90, 1, 167, 210, 90, 1, 177, 210, 90, 1,
+ 204, 64, 210, 90, 1, 188, 210, 90, 1, 144, 210, 90, 1, 64, 210, 90, 1,
+ 70, 210, 90, 1, 68, 210, 90, 1, 71, 210, 90, 1, 74, 210, 90, 1, 208, 239,
+ 210, 90, 1, 193, 209, 210, 90, 1, 233, 97, 210, 90, 1, 231, 120, 210, 90,
+ 1, 234, 171, 210, 90, 201, 164, 1, 194, 169, 210, 90, 201, 164, 1, 168,
+ 210, 90, 1, 198, 83, 210, 90, 1, 198, 71, 210, 90, 1, 237, 161, 210, 90,
+ 1, 213, 178, 210, 90, 1, 250, 249, 168, 210, 90, 1, 195, 247, 204, 64,
+ 210, 90, 1, 195, 248, 144, 210, 90, 1, 250, 44, 233, 97, 210, 90, 201,
+ 164, 1, 167, 210, 90, 201, 110, 1, 167, 210, 90, 1, 246, 234, 210, 90,
+ 203, 74, 229, 246, 77, 210, 90, 55, 229, 246, 77, 210, 90, 122, 204, 56,
+ 210, 90, 122, 55, 204, 56, 206, 9, 3, 250, 168, 206, 9, 3, 196, 6, 206,
+ 9, 1, 64, 206, 9, 1, 252, 33, 206, 9, 1, 70, 206, 9, 1, 223, 224, 206, 9,
+ 1, 68, 206, 9, 1, 196, 251, 206, 9, 1, 118, 150, 206, 9, 1, 118, 207, 4,
+ 206, 9, 1, 118, 165, 206, 9, 1, 118, 219, 138, 206, 9, 1, 71, 206, 9, 1,
+ 234, 171, 206, 9, 1, 251, 63, 206, 9, 1, 74, 206, 9, 1, 211, 194, 206, 9,
+ 1, 250, 8, 206, 9, 1, 160, 206, 9, 1, 221, 250, 206, 9, 1, 231, 233, 206,
+ 9, 1, 231, 84, 206, 9, 1, 214, 165, 206, 9, 1, 247, 19, 206, 9, 1, 246,
+ 117, 206, 9, 1, 223, 62, 206, 9, 1, 223, 28, 206, 9, 1, 212, 201, 206, 9,
+ 1, 198, 83, 206, 9, 1, 198, 71, 206, 9, 1, 237, 161, 206, 9, 1, 237, 145,
+ 206, 9, 1, 213, 178, 206, 9, 1, 189, 206, 9, 1, 199, 240, 206, 9, 1, 238,
+ 0, 206, 9, 1, 237, 40, 206, 9, 1, 181, 206, 9, 1, 166, 206, 9, 1, 210,
+ 94, 206, 9, 1, 249, 3, 206, 9, 1, 248, 54, 206, 9, 1, 172, 206, 9, 1,
+ 168, 206, 9, 1, 167, 206, 9, 1, 177, 206, 9, 1, 196, 157, 206, 9, 1, 204,
+ 64, 206, 9, 1, 202, 92, 206, 9, 1, 188, 206, 9, 1, 144, 206, 9, 1, 219,
+ 137, 206, 9, 116, 3, 230, 97, 206, 9, 18, 3, 252, 33, 206, 9, 18, 3, 70,
+ 206, 9, 18, 3, 223, 224, 206, 9, 18, 3, 68, 206, 9, 18, 3, 196, 251, 206,
+ 9, 18, 3, 118, 150, 206, 9, 18, 3, 118, 207, 4, 206, 9, 18, 3, 118, 165,
+ 206, 9, 18, 3, 118, 219, 138, 206, 9, 18, 3, 71, 206, 9, 18, 3, 234, 171,
+ 206, 9, 18, 3, 251, 63, 206, 9, 18, 3, 74, 206, 9, 18, 3, 211, 194, 206,
+ 9, 18, 3, 250, 8, 206, 9, 3, 196, 11, 206, 9, 3, 246, 234, 206, 9, 237,
+ 208, 206, 9, 55, 237, 208, 206, 9, 17, 192, 76, 206, 9, 17, 101, 206, 9,
+ 17, 104, 206, 9, 17, 133, 206, 9, 17, 134, 206, 9, 17, 151, 206, 9, 17,
+ 170, 206, 9, 17, 179, 206, 9, 17, 174, 206, 9, 17, 182, 38, 107, 17, 192,
+ 76, 38, 107, 17, 101, 38, 107, 17, 104, 38, 107, 17, 133, 38, 107, 17,
+ 134, 38, 107, 17, 151, 38, 107, 17, 170, 38, 107, 17, 179, 38, 107, 17,
+ 174, 38, 107, 17, 182, 38, 107, 1, 64, 38, 107, 1, 68, 38, 107, 1, 160,
+ 38, 107, 1, 181, 38, 107, 1, 166, 38, 107, 1, 167, 38, 107, 1, 196, 39,
+ 38, 107, 3, 249, 246, 107, 3, 202, 159, 246, 234, 107, 3, 246, 235, 196,
+ 11, 107, 3, 55, 246, 235, 196, 11, 107, 3, 246, 235, 104, 107, 3, 246,
+ 235, 133, 107, 3, 246, 235, 249, 246, 107, 3, 209, 20, 107, 231, 197,
+ 232, 247, 107, 246, 211, 107, 229, 237, 107, 3, 203, 113, 107, 223, 54,
+ 211, 219, 107, 1, 249, 236, 107, 18, 3, 249, 236, 222, 63, 219, 210, 17,
+ 192, 76, 222, 63, 219, 210, 17, 101, 222, 63, 219, 210, 17, 104, 222, 63,
+ 219, 210, 17, 133, 222, 63, 219, 210, 17, 134, 222, 63, 219, 210, 17,
+ 151, 222, 63, 219, 210, 17, 170, 222, 63, 219, 210, 17, 179, 222, 63,
+ 219, 210, 17, 174, 222, 63, 219, 210, 17, 182, 222, 63, 219, 210, 1, 160,
+ 222, 63, 219, 210, 1, 221, 250, 222, 63, 219, 210, 1, 231, 233, 222, 63,
+ 219, 210, 1, 214, 165, 222, 63, 219, 210, 1, 188, 222, 63, 219, 210, 1,
+ 204, 64, 222, 63, 219, 210, 1, 192, 112, 222, 63, 219, 210, 1, 212, 201,
+ 222, 63, 219, 210, 1, 189, 222, 63, 219, 210, 1, 228, 185, 222, 63, 219,
+ 210, 1, 181, 222, 63, 219, 210, 1, 166, 222, 63, 219, 210, 1, 210, 94,
+ 222, 63, 219, 210, 1, 172, 222, 63, 219, 210, 1, 238, 0, 222, 63, 219,
+ 210, 1, 249, 3, 222, 63, 219, 210, 1, 167, 222, 63, 219, 210, 1, 168,
+ 222, 63, 219, 210, 1, 177, 222, 63, 219, 210, 1, 194, 169, 222, 63, 219,
+ 210, 1, 199, 240, 222, 63, 219, 210, 1, 144, 222, 63, 219, 210, 1, 196,
+ 157, 222, 63, 219, 210, 1, 247, 19, 222, 63, 219, 210, 1, 64, 222, 63,
+ 219, 210, 1, 212, 0, 222, 63, 219, 210, 1, 70, 222, 63, 219, 210, 1, 211,
+ 194, 222, 63, 219, 210, 18, 197, 104, 222, 63, 219, 210, 18, 71, 222, 63,
+ 219, 210, 18, 68, 222, 63, 219, 210, 18, 234, 171, 222, 63, 219, 210, 18,
+ 74, 222, 63, 219, 210, 158, 209, 215, 222, 63, 219, 210, 158, 246, 250,
+ 222, 63, 219, 210, 158, 246, 251, 209, 215, 222, 63, 219, 210, 3, 238,
+ 114, 222, 63, 219, 210, 3, 203, 133, 207, 217, 1, 160, 207, 217, 1, 231,
+ 233, 207, 217, 1, 214, 165, 207, 217, 1, 189, 207, 217, 1, 238, 0, 207,
+ 217, 1, 181, 207, 217, 1, 166, 207, 217, 1, 249, 3, 207, 217, 1, 172,
+ 207, 217, 1, 247, 19, 207, 217, 1, 223, 62, 207, 217, 1, 212, 201, 207,
+ 217, 1, 188, 207, 217, 1, 167, 207, 217, 1, 177, 207, 217, 1, 168, 207,
+ 217, 1, 194, 169, 207, 217, 1, 144, 207, 217, 1, 217, 82, 207, 217, 1,
+ 214, 144, 207, 217, 1, 214, 255, 207, 217, 1, 212, 166, 207, 217, 1, 64,
+ 207, 217, 18, 3, 70, 207, 217, 18, 3, 68, 207, 217, 18, 3, 71, 207, 217,
+ 18, 3, 251, 63, 207, 217, 18, 3, 74, 207, 217, 18, 3, 250, 8, 207, 217,
+ 18, 3, 233, 230, 207, 217, 18, 3, 234, 199, 207, 217, 116, 3, 214, 167,
+ 207, 217, 116, 3, 215, 151, 207, 217, 116, 3, 150, 207, 217, 116, 3, 230,
+ 124, 207, 217, 196, 11, 207, 217, 205, 209, 77, 30, 143, 199, 99, 30,
+ 143, 199, 98, 30, 143, 199, 96, 30, 143, 199, 101, 30, 143, 207, 128, 30,
+ 143, 207, 112, 30, 143, 207, 107, 30, 143, 207, 109, 30, 143, 207, 125,
+ 30, 143, 207, 118, 30, 143, 207, 111, 30, 143, 207, 130, 30, 143, 207,
+ 113, 30, 143, 207, 132, 30, 143, 207, 129, 30, 143, 216, 149, 30, 143,
+ 216, 140, 30, 143, 216, 143, 30, 143, 210, 21, 30, 143, 210, 32, 30, 143,
+ 210, 33, 30, 143, 202, 76, 30, 143, 223, 237, 30, 143, 223, 244, 30, 143,
+ 202, 87, 30, 143, 202, 74, 30, 143, 210, 74, 30, 143, 229, 157, 30, 143,
+ 202, 71, 223, 47, 3, 211, 3, 223, 47, 3, 246, 155, 223, 47, 3, 220, 50,
+ 223, 47, 3, 194, 57, 223, 47, 1, 64, 223, 47, 1, 228, 97, 222, 67, 223,
+ 47, 1, 70, 223, 47, 1, 223, 224, 223, 47, 1, 68, 223, 47, 1, 211, 78,
+ 246, 125, 223, 47, 1, 214, 166, 220, 7, 223, 47, 1, 214, 166, 220, 8,
+ 208, 23, 223, 47, 1, 71, 223, 47, 1, 251, 63, 223, 47, 1, 74, 223, 47, 1,
+ 160, 223, 47, 1, 222, 174, 206, 22, 223, 47, 1, 222, 174, 215, 195, 223,
+ 47, 1, 231, 233, 223, 47, 1, 231, 234, 215, 195, 223, 47, 1, 214, 165,
+ 223, 47, 1, 247, 19, 223, 47, 1, 247, 20, 215, 195, 223, 47, 1, 223, 62,
+ 223, 47, 1, 212, 202, 215, 195, 223, 47, 1, 223, 63, 217, 184, 223, 47,
+ 1, 212, 201, 223, 47, 1, 198, 83, 223, 47, 1, 198, 84, 217, 184, 223, 47,
+ 1, 237, 161, 223, 47, 1, 237, 162, 217, 184, 223, 47, 1, 215, 97, 215,
+ 195, 223, 47, 1, 189, 223, 47, 1, 200, 181, 215, 195, 223, 47, 1, 238, 0,
+ 223, 47, 1, 238, 1, 217, 184, 223, 47, 1, 181, 223, 47, 1, 166, 223, 47,
+ 1, 211, 78, 215, 195, 223, 47, 1, 249, 3, 223, 47, 1, 249, 4, 215, 195,
+ 223, 47, 1, 172, 223, 47, 1, 168, 223, 47, 1, 167, 223, 47, 1, 208, 76,
+ 251, 73, 223, 47, 1, 177, 223, 47, 1, 194, 169, 223, 47, 1, 206, 101,
+ 215, 195, 223, 47, 1, 206, 101, 217, 184, 223, 47, 1, 188, 223, 47, 1,
+ 144, 223, 47, 3, 246, 156, 200, 35, 223, 47, 18, 3, 200, 108, 223, 47,
+ 18, 3, 199, 23, 223, 47, 18, 3, 193, 238, 223, 47, 18, 3, 193, 239, 217,
+ 16, 223, 47, 18, 3, 201, 133, 223, 47, 18, 3, 201, 134, 217, 4, 223, 47,
+ 18, 3, 200, 133, 223, 47, 18, 3, 236, 202, 215, 194, 223, 47, 18, 3, 210,
+ 136, 223, 47, 116, 3, 222, 23, 223, 47, 116, 3, 210, 151, 223, 47, 116,
+ 3, 247, 4, 223, 47, 211, 16, 223, 47, 46, 207, 190, 223, 47, 51, 207,
+ 190, 223, 47, 211, 66, 250, 216, 223, 47, 211, 66, 217, 205, 223, 47,
+ 211, 66, 219, 23, 223, 47, 211, 66, 194, 50, 223, 47, 211, 66, 211, 17,
+ 223, 47, 211, 66, 219, 167, 223, 47, 211, 66, 219, 16, 223, 47, 211, 66,
+ 251, 119, 223, 47, 211, 66, 251, 120, 251, 119, 223, 47, 211, 66, 209,
+ 243, 223, 47, 163, 211, 66, 209, 243, 223, 47, 211, 12, 223, 47, 17, 192,
+ 76, 223, 47, 17, 101, 223, 47, 17, 104, 223, 47, 17, 133, 223, 47, 17,
+ 134, 223, 47, 17, 151, 223, 47, 17, 170, 223, 47, 17, 179, 223, 47, 17,
+ 174, 223, 47, 17, 182, 223, 47, 211, 66, 199, 65, 198, 24, 223, 47, 211,
+ 66, 223, 92, 79, 1, 204, 38, 231, 84, 79, 1, 204, 38, 246, 117, 79, 1,
+ 204, 38, 223, 28, 79, 1, 204, 38, 213, 178, 79, 1, 204, 38, 248, 54, 79,
+ 3, 204, 38, 206, 6, 79, 73, 1, 204, 38, 207, 235, 79, 1, 53, 220, 154,
+ 212, 201, 79, 1, 53, 220, 154, 233, 97, 79, 1, 53, 220, 154, 231, 233,
+ 79, 1, 53, 220, 154, 231, 84, 79, 1, 53, 220, 154, 223, 62, 79, 1, 53,
+ 220, 154, 223, 28, 79, 1, 53, 220, 154, 237, 161, 79, 1, 53, 220, 154,
+ 237, 145, 79, 1, 53, 220, 154, 213, 178, 79, 53, 220, 154, 17, 192, 76,
+ 79, 53, 220, 154, 17, 101, 79, 53, 220, 154, 17, 104, 79, 53, 220, 154,
+ 17, 133, 79, 53, 220, 154, 17, 134, 79, 53, 220, 154, 17, 151, 79, 53,
+ 220, 154, 17, 170, 79, 53, 220, 154, 17, 179, 79, 53, 220, 154, 17, 174,
+ 79, 53, 220, 154, 17, 182, 79, 1, 53, 220, 154, 219, 137, 79, 1, 53, 220,
+ 154, 238, 0, 79, 1, 53, 220, 154, 237, 40, 79, 1, 53, 220, 154, 249, 3,
+ 79, 1, 53, 220, 154, 248, 54, 246, 110, 1, 64, 246, 110, 1, 70, 246, 110,
+ 1, 68, 246, 110, 1, 71, 246, 110, 1, 251, 63, 246, 110, 1, 74, 246, 110,
+ 1, 160, 246, 110, 1, 221, 250, 246, 110, 1, 231, 233, 246, 110, 1, 231,
+ 84, 246, 110, 1, 214, 74, 246, 110, 1, 214, 165, 246, 110, 1, 246, 117,
+ 246, 110, 1, 242, 218, 246, 110, 1, 223, 62, 246, 110, 1, 223, 28, 246,
+ 110, 1, 214, 62, 246, 110, 1, 214, 65, 246, 110, 1, 214, 63, 246, 110, 1,
+ 189, 246, 110, 1, 199, 240, 246, 110, 1, 238, 0, 246, 110, 1, 237, 40,
+ 246, 110, 1, 212, 244, 246, 110, 1, 181, 246, 110, 1, 237, 161, 246, 110,
+ 1, 166, 246, 110, 1, 209, 134, 246, 110, 1, 210, 94, 246, 110, 1, 249, 3,
+ 246, 110, 1, 248, 54, 246, 110, 1, 215, 229, 246, 110, 1, 172, 246, 110,
+ 1, 248, 159, 246, 110, 1, 168, 246, 110, 1, 167, 246, 110, 1, 177, 246,
+ 110, 1, 196, 157, 246, 110, 1, 202, 92, 246, 110, 1, 188, 246, 110, 1,
+ 144, 246, 110, 18, 3, 252, 33, 246, 110, 18, 3, 70, 246, 110, 18, 3, 223,
+ 224, 246, 110, 18, 3, 234, 150, 246, 110, 18, 3, 68, 246, 110, 18, 3,
+ 212, 0, 246, 110, 18, 3, 74, 246, 110, 18, 3, 251, 63, 246, 110, 18, 3,
+ 250, 8, 246, 110, 18, 3, 197, 104, 246, 110, 116, 3, 168, 246, 110, 116,
+ 3, 167, 246, 110, 116, 3, 177, 246, 110, 116, 3, 194, 169, 246, 110, 1,
+ 52, 222, 184, 246, 110, 1, 52, 232, 44, 246, 110, 1, 52, 214, 167, 246,
+ 110, 116, 3, 52, 214, 167, 246, 110, 1, 52, 246, 119, 246, 110, 1, 52,
+ 200, 228, 246, 110, 1, 52, 215, 151, 246, 110, 1, 52, 211, 93, 246, 110,
+ 1, 52, 193, 148, 246, 110, 1, 52, 150, 246, 110, 1, 52, 165, 246, 110, 1,
+ 52, 202, 95, 246, 110, 116, 3, 52, 218, 236, 246, 110, 116, 3, 52, 230,
+ 124, 246, 110, 17, 192, 76, 246, 110, 17, 101, 246, 110, 17, 104, 246,
+ 110, 17, 133, 246, 110, 17, 134, 246, 110, 17, 151, 246, 110, 17, 170,
+ 246, 110, 17, 179, 246, 110, 17, 174, 246, 110, 17, 182, 246, 110, 209,
+ 38, 202, 132, 246, 110, 209, 38, 237, 208, 246, 110, 209, 38, 55, 237,
+ 208, 246, 110, 209, 38, 198, 170, 237, 208, 79, 1, 221, 242, 231, 233,
+ 79, 1, 221, 242, 247, 19, 79, 1, 221, 242, 246, 117, 79, 1, 221, 242,
+ 223, 62, 79, 1, 221, 242, 223, 28, 79, 1, 221, 242, 212, 201, 79, 1, 221,
+ 242, 198, 83, 79, 1, 221, 242, 198, 71, 79, 1, 221, 242, 237, 161, 79, 1,
+ 221, 242, 237, 145, 79, 1, 221, 242, 237, 40, 79, 1, 221, 242, 181, 79,
+ 1, 221, 242, 188, 79, 1, 221, 242, 144, 79, 1, 221, 242, 229, 187, 79, 1,
+ 221, 242, 233, 97, 79, 73, 1, 221, 242, 207, 235, 79, 1, 221, 242, 193,
+ 209, 79, 1, 221, 242, 192, 112, 79, 1, 221, 242, 167, 79, 219, 92, 221,
+ 242, 212, 23, 79, 219, 92, 221, 242, 208, 190, 79, 219, 92, 221, 242,
+ 229, 98, 79, 16, 251, 49, 233, 203, 79, 16, 251, 49, 101, 79, 16, 251,
+ 49, 104, 79, 1, 251, 49, 167, 79, 3, 210, 255, 222, 96, 199, 18, 79, 3,
+ 53, 220, 154, 199, 16, 79, 3, 53, 220, 154, 199, 13, 79, 1, 203, 141,
+ 211, 46, 246, 117, 79, 1, 203, 141, 211, 46, 204, 64, 53, 196, 29, 1,
+ 132, 221, 113, 53, 196, 29, 1, 139, 221, 113, 53, 196, 29, 1, 132, 221,
+ 220, 53, 196, 29, 1, 139, 221, 220, 53, 196, 29, 1, 132, 221, 229, 53,
+ 196, 29, 1, 139, 221, 229, 53, 196, 29, 1, 132, 230, 254, 53, 196, 29, 1,
+ 139, 230, 254, 53, 196, 29, 1, 132, 214, 90, 53, 196, 29, 1, 139, 214,
+ 90, 53, 196, 29, 1, 132, 242, 63, 53, 196, 29, 1, 139, 242, 63, 53, 196,
+ 29, 1, 132, 242, 188, 53, 196, 29, 1, 139, 242, 188, 53, 196, 29, 1, 132,
+ 202, 212, 53, 196, 29, 1, 139, 202, 212, 53, 196, 29, 1, 132, 212, 165,
+ 53, 196, 29, 1, 139, 212, 165, 53, 196, 29, 1, 132, 236, 146, 53, 196,
+ 29, 1, 139, 236, 146, 53, 196, 29, 1, 132, 155, 53, 196, 29, 1, 139, 155,
+ 53, 196, 29, 1, 132, 199, 176, 53, 196, 29, 1, 139, 199, 176, 53, 196,
+ 29, 1, 132, 213, 142, 53, 196, 29, 1, 139, 213, 142, 53, 196, 29, 1, 132,
+ 247, 220, 53, 196, 29, 1, 139, 247, 220, 53, 196, 29, 1, 132, 209, 198,
+ 53, 196, 29, 1, 139, 209, 198, 53, 196, 29, 1, 132, 210, 65, 53, 196, 29,
+ 1, 139, 210, 65, 53, 196, 29, 1, 132, 232, 164, 53, 196, 29, 1, 139, 232,
+ 164, 53, 196, 29, 1, 132, 216, 91, 53, 196, 29, 1, 139, 216, 91, 53, 196,
+ 29, 1, 132, 193, 1, 53, 196, 29, 1, 139, 193, 1, 53, 196, 29, 1, 132,
+ 207, 55, 53, 196, 29, 1, 139, 207, 55, 53, 196, 29, 1, 132, 219, 107, 53,
+ 196, 29, 1, 139, 219, 107, 53, 196, 29, 1, 132, 195, 252, 53, 196, 29, 1,
+ 139, 195, 252, 53, 196, 29, 1, 132, 229, 43, 53, 196, 29, 1, 139, 229,
+ 43, 53, 196, 29, 1, 132, 74, 53, 196, 29, 1, 139, 74, 53, 196, 29, 217,
+ 181, 222, 117, 53, 196, 29, 18, 252, 33, 53, 196, 29, 18, 70, 53, 196,
+ 29, 18, 197, 104, 53, 196, 29, 18, 68, 53, 196, 29, 18, 71, 53, 196, 29,
+ 18, 74, 53, 196, 29, 217, 181, 221, 223, 53, 196, 29, 18, 228, 58, 53,
+ 196, 29, 18, 197, 103, 53, 196, 29, 18, 197, 119, 53, 196, 29, 18, 250,
+ 6, 53, 196, 29, 18, 249, 236, 53, 196, 29, 18, 250, 224, 53, 196, 29, 18,
+ 250, 241, 53, 196, 29, 158, 217, 181, 234, 131, 53, 196, 29, 158, 217,
+ 181, 212, 243, 53, 196, 29, 158, 217, 181, 199, 176, 53, 196, 29, 158,
+ 217, 181, 202, 185, 53, 196, 29, 16, 221, 91, 53, 196, 29, 16, 212, 243,
+ 53, 196, 29, 16, 206, 50, 53, 196, 29, 16, 229, 44, 229, 30, 53, 196, 29,
+ 16, 221, 102, 221, 101, 217, 23, 217, 89, 1, 71, 217, 23, 217, 89, 1, 74,
+ 217, 23, 217, 89, 1, 246, 117, 217, 23, 217, 89, 1, 212, 201, 217, 23,
+ 217, 89, 1, 198, 83, 217, 23, 217, 89, 1, 198, 71, 217, 23, 217, 89, 1,
+ 237, 161, 217, 23, 217, 89, 1, 237, 145, 217, 23, 217, 89, 1, 213, 178,
+ 217, 23, 217, 89, 1, 204, 64, 217, 23, 217, 89, 1, 202, 92, 217, 23, 217,
+ 89, 18, 3, 223, 224, 217, 23, 217, 89, 18, 3, 196, 251, 217, 23, 217, 89,
+ 18, 3, 251, 253, 217, 23, 217, 89, 18, 3, 250, 8, 217, 23, 217, 89, 18,
+ 3, 251, 245, 217, 23, 217, 89, 242, 234, 217, 23, 217, 89, 251, 69, 221,
+ 211, 217, 23, 217, 89, 250, 197, 217, 23, 217, 89, 5, 207, 196, 77, 217,
+ 23, 217, 89, 194, 11, 207, 196, 77, 217, 23, 217, 89, 18, 3, 196, 6, 217,
+ 23, 217, 89, 196, 11, 36, 5, 198, 64, 36, 5, 198, 67, 36, 5, 198, 70, 36,
+ 5, 198, 68, 36, 5, 198, 69, 36, 5, 198, 66, 36, 5, 237, 139, 36, 5, 237,
+ 141, 36, 5, 237, 144, 36, 5, 237, 142, 36, 5, 237, 143, 36, 5, 237, 140,
+ 36, 5, 235, 4, 36, 5, 235, 8, 36, 5, 235, 16, 36, 5, 235, 13, 36, 5, 235,
+ 14, 36, 5, 235, 5, 36, 5, 246, 172, 36, 5, 246, 166, 36, 5, 246, 168, 36,
+ 5, 246, 171, 36, 5, 246, 169, 36, 5, 246, 170, 36, 5, 246, 167, 36, 5,
+ 248, 159, 36, 5, 248, 138, 36, 5, 248, 150, 36, 5, 248, 158, 36, 5, 248,
+ 153, 36, 5, 248, 154, 36, 5, 248, 142, 8, 2, 1, 248, 188, 250, 252, 8, 2,
+ 1, 41, 207, 166, 8, 2, 1, 247, 244, 71, 8, 2, 1, 248, 188, 71, 8, 2, 1,
+ 234, 253, 4, 232, 177, 8, 2, 1, 219, 249, 233, 163, 8, 2, 1, 27, 232, 45,
+ 4, 238, 178, 8, 2, 1, 220, 202, 4, 223, 121, 220, 49, 206, 158, 8, 2, 1,
+ 220, 202, 4, 55, 85, 199, 90, 8, 2, 1, 220, 202, 4, 85, 207, 81, 8, 2, 1,
+ 218, 237, 4, 238, 178, 8, 2, 1, 215, 152, 4, 238, 178, 8, 2, 1, 234, 74,
+ 4, 238, 178, 8, 2, 1, 247, 244, 74, 8, 2, 1, 247, 244, 185, 4, 111, 8, 2,
+ 1, 211, 184, 185, 4, 111, 8, 2, 1, 223, 121, 212, 0, 8, 2, 1, 163, 212,
+ 1, 4, 111, 8, 2, 1, 163, 212, 1, 4, 229, 5, 111, 8, 2, 1, 163, 185, 211,
+ 179, 8, 2, 1, 163, 185, 211, 180, 4, 111, 8, 2, 1, 201, 243, 150, 8, 1,
+ 2, 6, 208, 112, 4, 51, 220, 16, 8, 2, 1, 208, 112, 194, 39, 230, 40, 8,
+ 2, 1, 55, 150, 8, 2, 1, 208, 112, 4, 238, 178, 8, 2, 1, 55, 208, 112, 4,
+ 238, 178, 8, 2, 1, 27, 150, 8, 2, 1, 27, 208, 112, 4, 207, 81, 8, 2, 1,
+ 248, 178, 233, 255, 8, 2, 1, 124, 4, 203, 195, 51, 220, 16, 8, 2, 1, 124,
+ 248, 194, 4, 203, 195, 51, 220, 16, 8, 2, 1, 197, 95, 8, 2, 1, 163, 197,
+ 95, 8, 2, 1, 124, 4, 46, 128, 8, 2, 1, 242, 215, 8, 2, 1, 242, 216, 4,
+ 132, 51, 207, 81, 8, 2, 1, 242, 216, 4, 132, 46, 204, 160, 8, 2, 1, 193,
+ 224, 4, 132, 51, 207, 81, 8, 2, 1, 193, 224, 4, 184, 46, 220, 16, 8, 2,
+ 1, 193, 224, 4, 184, 46, 220, 17, 26, 132, 51, 207, 81, 8, 2, 1, 193,
+ 224, 4, 184, 46, 220, 17, 4, 204, 160, 8, 2, 1, 193, 149, 4, 203, 195,
+ 51, 220, 16, 73, 247, 151, 4, 223, 121, 247, 150, 73, 1, 2, 229, 206, 73,
+ 1, 2, 220, 202, 4, 223, 121, 220, 49, 206, 158, 73, 1, 2, 220, 202, 4,
+ 85, 199, 90, 73, 1, 2, 124, 4, 46, 128, 8, 2, 1, 206, 68, 193, 84, 8, 2,
+ 1, 223, 109, 71, 8, 2, 1, 211, 184, 212, 0, 8, 2, 1, 197, 46, 8, 2, 1,
+ 223, 121, 250, 252, 33, 1, 2, 6, 211, 216, 8, 2, 1, 235, 19, 236, 231, 4,
+ 207, 174, 128, 8, 2, 1, 198, 120, 236, 231, 4, 207, 174, 128, 8, 2, 1,
+ 163, 208, 112, 4, 85, 199, 90, 73, 1, 2, 163, 194, 202, 73, 1, 46, 200,
+ 159, 73, 1, 51, 200, 159, 99, 2, 1, 64, 99, 2, 1, 71, 99, 2, 1, 70, 99,
+ 2, 1, 74, 99, 2, 1, 68, 99, 2, 1, 196, 236, 99, 2, 1, 231, 233, 99, 2, 1,
+ 160, 99, 2, 1, 231, 158, 99, 2, 1, 231, 46, 99, 2, 1, 230, 254, 99, 2, 1,
+ 230, 186, 99, 2, 1, 230, 146, 99, 2, 1, 144, 99, 2, 1, 229, 255, 99, 2,
+ 1, 229, 178, 99, 2, 1, 229, 43, 99, 2, 1, 228, 181, 99, 2, 1, 228, 148,
+ 99, 2, 1, 177, 99, 2, 1, 220, 42, 99, 2, 1, 219, 209, 99, 2, 1, 219, 107,
+ 99, 2, 1, 219, 36, 99, 2, 1, 219, 4, 99, 2, 1, 172, 99, 2, 1, 217, 48,
+ 99, 2, 1, 216, 175, 99, 2, 1, 216, 91, 99, 2, 1, 215, 241, 99, 2, 1, 181,
+ 99, 2, 1, 229, 67, 99, 2, 1, 215, 71, 99, 2, 1, 214, 214, 99, 2, 1, 214,
+ 60, 99, 2, 1, 213, 142, 99, 2, 1, 213, 22, 99, 2, 1, 212, 212, 99, 2, 1,
+ 208, 176, 99, 2, 1, 208, 162, 99, 2, 1, 208, 155, 99, 2, 1, 208, 145, 99,
+ 2, 1, 208, 134, 99, 2, 1, 208, 132, 99, 2, 1, 188, 99, 2, 1, 206, 158,
+ 99, 2, 1, 205, 223, 99, 2, 1, 203, 125, 99, 2, 1, 202, 212, 99, 2, 1,
+ 201, 184, 99, 2, 1, 201, 84, 99, 2, 1, 238, 0, 99, 2, 1, 189, 99, 2, 1,
+ 237, 116, 99, 2, 1, 200, 79, 99, 2, 1, 237, 16, 99, 2, 1, 199, 128, 99,
+ 2, 1, 236, 146, 99, 2, 1, 235, 62, 99, 2, 1, 235, 31, 99, 2, 1, 236, 158,
+ 99, 2, 1, 199, 53, 99, 2, 1, 199, 52, 99, 2, 1, 199, 41, 99, 2, 1, 199,
+ 40, 99, 2, 1, 199, 39, 99, 2, 1, 199, 38, 99, 2, 1, 198, 118, 99, 2, 1,
+ 198, 112, 99, 2, 1, 198, 97, 99, 2, 1, 198, 95, 99, 2, 1, 198, 91, 99, 2,
+ 1, 198, 90, 99, 2, 1, 194, 169, 99, 2, 1, 194, 111, 99, 2, 1, 194, 72,
+ 99, 2, 1, 194, 36, 99, 2, 1, 193, 244, 99, 2, 1, 193, 231, 99, 2, 1, 168,
+ 217, 23, 217, 89, 1, 221, 98, 217, 23, 217, 89, 1, 206, 50, 217, 23, 217,
+ 89, 1, 220, 155, 217, 23, 217, 89, 1, 216, 102, 217, 23, 217, 89, 1, 166,
+ 217, 23, 217, 89, 1, 181, 217, 23, 217, 89, 1, 242, 207, 217, 23, 217,
+ 89, 1, 199, 92, 217, 23, 217, 89, 1, 221, 214, 217, 23, 217, 89, 1, 214,
+ 80, 217, 23, 217, 89, 1, 199, 167, 217, 23, 217, 89, 1, 194, 157, 217,
+ 23, 217, 89, 1, 193, 95, 217, 23, 217, 89, 1, 228, 169, 217, 23, 217, 89,
+ 1, 197, 77, 217, 23, 217, 89, 1, 70, 217, 23, 217, 89, 1, 210, 88, 217,
+ 23, 217, 89, 1, 250, 19, 217, 23, 217, 89, 1, 230, 246, 217, 23, 217, 89,
+ 1, 223, 26, 217, 23, 217, 89, 1, 208, 48, 217, 23, 217, 89, 1, 249, 3,
+ 217, 23, 217, 89, 1, 223, 10, 217, 23, 217, 89, 1, 236, 229, 217, 23,
+ 217, 89, 1, 231, 53, 217, 23, 217, 89, 1, 237, 18, 217, 23, 217, 89, 1,
+ 248, 51, 217, 23, 217, 89, 1, 221, 99, 219, 74, 217, 23, 217, 89, 1, 220,
+ 156, 219, 74, 217, 23, 217, 89, 1, 216, 103, 219, 74, 217, 23, 217, 89,
+ 1, 211, 78, 219, 74, 217, 23, 217, 89, 1, 215, 97, 219, 74, 217, 23, 217,
+ 89, 1, 199, 93, 219, 74, 217, 23, 217, 89, 1, 214, 81, 219, 74, 217, 23,
+ 217, 89, 1, 228, 97, 219, 74, 217, 23, 217, 89, 18, 3, 211, 209, 217, 23,
+ 217, 89, 18, 3, 223, 188, 217, 23, 217, 89, 18, 3, 250, 222, 217, 23,
+ 217, 89, 18, 3, 193, 58, 217, 23, 217, 89, 18, 3, 202, 175, 217, 23, 217,
+ 89, 18, 3, 197, 74, 217, 23, 217, 89, 18, 3, 242, 232, 217, 23, 217, 89,
+ 18, 3, 212, 227, 217, 23, 217, 89, 242, 233, 217, 23, 217, 89, 219, 20,
+ 223, 71, 217, 23, 217, 89, 250, 136, 223, 71, 217, 23, 217, 89, 17, 192,
+ 76, 217, 23, 217, 89, 17, 101, 217, 23, 217, 89, 17, 104, 217, 23, 217,
+ 89, 17, 133, 217, 23, 217, 89, 17, 134, 217, 23, 217, 89, 17, 151, 217,
+ 23, 217, 89, 17, 170, 217, 23, 217, 89, 17, 179, 217, 23, 217, 89, 17,
+ 174, 217, 23, 217, 89, 17, 182, 30, 222, 206, 212, 103, 30, 222, 206,
+ 212, 108, 30, 222, 206, 192, 250, 30, 222, 206, 192, 249, 30, 222, 206,
+ 192, 248, 30, 222, 206, 197, 169, 30, 222, 206, 197, 173, 30, 222, 206,
+ 192, 208, 30, 222, 206, 192, 204, 30, 222, 206, 233, 229, 30, 222, 206,
+ 233, 227, 30, 222, 206, 233, 228, 30, 222, 206, 233, 225, 30, 222, 206,
+ 228, 83, 30, 222, 206, 228, 82, 30, 222, 206, 228, 80, 30, 222, 206, 228,
+ 81, 30, 222, 206, 228, 86, 30, 222, 206, 228, 79, 30, 222, 206, 228, 78,
+ 30, 222, 206, 228, 88, 30, 222, 206, 250, 122, 30, 222, 206, 250, 121,
+ 30, 123, 214, 38, 30, 123, 214, 44, 30, 123, 202, 73, 30, 123, 202, 72,
+ 30, 123, 199, 98, 30, 123, 199, 96, 30, 123, 199, 95, 30, 123, 199, 101,
+ 30, 123, 199, 102, 30, 123, 199, 94, 30, 123, 207, 112, 30, 123, 207,
+ 127, 30, 123, 202, 79, 30, 123, 207, 124, 30, 123, 207, 114, 30, 123,
+ 207, 116, 30, 123, 207, 103, 30, 123, 207, 104, 30, 123, 222, 102, 30,
+ 123, 216, 148, 30, 123, 216, 142, 30, 123, 202, 83, 30, 123, 216, 145,
+ 30, 123, 216, 151, 30, 123, 210, 17, 30, 123, 210, 26, 30, 123, 210, 30,
+ 30, 123, 202, 81, 30, 123, 210, 20, 30, 123, 210, 34, 30, 123, 210, 35,
+ 30, 123, 203, 56, 30, 123, 203, 59, 30, 123, 202, 77, 30, 123, 202, 75,
+ 30, 123, 203, 54, 30, 123, 203, 62, 30, 123, 203, 63, 30, 123, 203, 48,
+ 30, 123, 203, 61, 30, 123, 211, 6, 30, 123, 211, 7, 30, 123, 193, 42, 30,
+ 123, 193, 45, 30, 123, 242, 142, 30, 123, 242, 141, 30, 123, 202, 88, 30,
+ 123, 210, 72, 30, 123, 210, 71, 12, 15, 225, 215, 12, 15, 225, 214, 12,
+ 15, 225, 213, 12, 15, 225, 212, 12, 15, 225, 211, 12, 15, 225, 210, 12,
+ 15, 225, 209, 12, 15, 225, 208, 12, 15, 225, 207, 12, 15, 225, 206, 12,
+ 15, 225, 205, 12, 15, 225, 204, 12, 15, 225, 203, 12, 15, 225, 202, 12,
+ 15, 225, 201, 12, 15, 225, 200, 12, 15, 225, 199, 12, 15, 225, 198, 12,
+ 15, 225, 197, 12, 15, 225, 196, 12, 15, 225, 195, 12, 15, 225, 194, 12,
+ 15, 225, 193, 12, 15, 225, 192, 12, 15, 225, 191, 12, 15, 225, 190, 12,
+ 15, 225, 189, 12, 15, 225, 188, 12, 15, 225, 187, 12, 15, 225, 186, 12,
+ 15, 225, 185, 12, 15, 225, 184, 12, 15, 225, 183, 12, 15, 225, 182, 12,
+ 15, 225, 181, 12, 15, 225, 180, 12, 15, 225, 179, 12, 15, 225, 178, 12,
+ 15, 225, 177, 12, 15, 225, 176, 12, 15, 225, 175, 12, 15, 225, 174, 12,
+ 15, 225, 173, 12, 15, 225, 172, 12, 15, 225, 171, 12, 15, 225, 170, 12,
+ 15, 225, 169, 12, 15, 225, 168, 12, 15, 225, 167, 12, 15, 225, 166, 12,
+ 15, 225, 165, 12, 15, 225, 164, 12, 15, 225, 163, 12, 15, 225, 162, 12,
+ 15, 225, 161, 12, 15, 225, 160, 12, 15, 225, 159, 12, 15, 225, 158, 12,
+ 15, 225, 157, 12, 15, 225, 156, 12, 15, 225, 155, 12, 15, 225, 154, 12,
+ 15, 225, 153, 12, 15, 225, 152, 12, 15, 225, 151, 12, 15, 225, 150, 12,
+ 15, 225, 149, 12, 15, 225, 148, 12, 15, 225, 147, 12, 15, 225, 146, 12,
+ 15, 225, 145, 12, 15, 225, 144, 12, 15, 225, 143, 12, 15, 225, 142, 12,
+ 15, 225, 141, 12, 15, 225, 140, 12, 15, 225, 139, 12, 15, 225, 138, 12,
+ 15, 225, 137, 12, 15, 225, 136, 12, 15, 225, 135, 12, 15, 225, 134, 12,
+ 15, 225, 133, 12, 15, 225, 132, 12, 15, 225, 131, 12, 15, 225, 130, 12,
+ 15, 225, 129, 12, 15, 225, 128, 12, 15, 225, 127, 12, 15, 225, 126, 12,
+ 15, 225, 125, 12, 15, 225, 124, 12, 15, 225, 123, 12, 15, 225, 122, 12,
+ 15, 225, 121, 12, 15, 225, 120, 12, 15, 225, 119, 12, 15, 225, 118, 12,
+ 15, 225, 117, 12, 15, 225, 116, 12, 15, 225, 115, 12, 15, 225, 114, 12,
+ 15, 225, 113, 12, 15, 225, 112, 12, 15, 225, 111, 12, 15, 225, 110, 12,
+ 15, 225, 109, 12, 15, 225, 108, 12, 15, 225, 107, 12, 15, 225, 106, 12,
+ 15, 225, 105, 12, 15, 225, 104, 12, 15, 225, 103, 12, 15, 225, 102, 12,
+ 15, 225, 101, 12, 15, 225, 100, 12, 15, 225, 99, 12, 15, 225, 98, 12, 15,
+ 225, 97, 12, 15, 225, 96, 12, 15, 225, 95, 12, 15, 225, 94, 12, 15, 225,
+ 93, 12, 15, 225, 92, 12, 15, 225, 91, 12, 15, 225, 90, 12, 15, 225, 89,
+ 12, 15, 225, 88, 12, 15, 225, 87, 12, 15, 225, 86, 12, 15, 225, 85, 12,
+ 15, 225, 84, 12, 15, 225, 83, 12, 15, 225, 82, 12, 15, 225, 81, 12, 15,
+ 225, 80, 12, 15, 225, 79, 12, 15, 225, 78, 12, 15, 225, 77, 12, 15, 225,
+ 76, 12, 15, 225, 75, 12, 15, 225, 74, 12, 15, 225, 73, 12, 15, 225, 72,
+ 12, 15, 225, 71, 12, 15, 225, 70, 12, 15, 225, 69, 12, 15, 225, 68, 12,
+ 15, 225, 67, 12, 15, 225, 66, 12, 15, 225, 65, 12, 15, 225, 64, 12, 15,
+ 225, 63, 12, 15, 225, 62, 12, 15, 225, 61, 12, 15, 225, 60, 12, 15, 225,
+ 59, 12, 15, 225, 58, 12, 15, 225, 57, 12, 15, 225, 56, 12, 15, 225, 55,
+ 12, 15, 225, 54, 12, 15, 225, 53, 12, 15, 225, 52, 12, 15, 225, 51, 12,
+ 15, 225, 50, 12, 15, 225, 49, 12, 15, 225, 48, 12, 15, 225, 47, 12, 15,
+ 225, 46, 12, 15, 225, 45, 12, 15, 225, 44, 12, 15, 225, 43, 12, 15, 225,
+ 42, 12, 15, 225, 41, 12, 15, 225, 40, 12, 15, 225, 39, 12, 15, 225, 38,
+ 12, 15, 225, 37, 12, 15, 225, 36, 12, 15, 225, 35, 12, 15, 225, 34, 12,
+ 15, 225, 33, 12, 15, 225, 32, 12, 15, 225, 31, 12, 15, 225, 30, 12, 15,
+ 225, 29, 12, 15, 225, 28, 12, 15, 225, 27, 12, 15, 225, 26, 12, 15, 225,
+ 25, 12, 15, 225, 24, 12, 15, 225, 23, 12, 15, 225, 22, 12, 15, 225, 21,
+ 12, 15, 225, 20, 12, 15, 225, 19, 12, 15, 225, 18, 12, 15, 225, 17, 12,
+ 15, 225, 16, 12, 15, 225, 15, 12, 15, 225, 14, 12, 15, 225, 13, 12, 15,
+ 225, 12, 12, 15, 225, 11, 12, 15, 225, 10, 12, 15, 225, 9, 12, 15, 225,
+ 8, 12, 15, 225, 7, 12, 15, 225, 6, 12, 15, 225, 5, 12, 15, 225, 4, 12,
+ 15, 225, 3, 12, 15, 225, 2, 12, 15, 225, 1, 12, 15, 225, 0, 12, 15, 224,
+ 255, 12, 15, 224, 254, 12, 15, 224, 253, 12, 15, 224, 252, 12, 15, 224,
+ 251, 12, 15, 224, 250, 12, 15, 224, 249, 12, 15, 224, 248, 12, 15, 224,
+ 247, 12, 15, 224, 246, 12, 15, 224, 245, 12, 15, 224, 244, 12, 15, 224,
+ 243, 12, 15, 224, 242, 12, 15, 224, 241, 12, 15, 224, 240, 12, 15, 224,
+ 239, 12, 15, 224, 238, 12, 15, 224, 237, 12, 15, 224, 236, 12, 15, 224,
+ 235, 12, 15, 224, 234, 12, 15, 224, 233, 12, 15, 224, 232, 12, 15, 224,
+ 231, 12, 15, 224, 230, 12, 15, 224, 229, 12, 15, 224, 228, 12, 15, 224,
+ 227, 12, 15, 224, 226, 12, 15, 224, 225, 12, 15, 224, 224, 12, 15, 224,
+ 223, 12, 15, 224, 222, 12, 15, 224, 221, 12, 15, 224, 220, 12, 15, 224,
+ 219, 12, 15, 224, 218, 12, 15, 224, 217, 12, 15, 224, 216, 12, 15, 224,
+ 215, 12, 15, 224, 214, 12, 15, 224, 213, 12, 15, 224, 212, 12, 15, 224,
+ 211, 12, 15, 224, 210, 12, 15, 224, 209, 12, 15, 224, 208, 12, 15, 224,
+ 207, 12, 15, 224, 206, 12, 15, 224, 205, 12, 15, 224, 204, 12, 15, 224,
+ 203, 12, 15, 224, 202, 12, 15, 224, 201, 12, 15, 224, 200, 12, 15, 224,
+ 199, 12, 15, 224, 198, 12, 15, 224, 197, 12, 15, 224, 196, 12, 15, 224,
+ 195, 12, 15, 224, 194, 12, 15, 224, 193, 12, 15, 224, 192, 12, 15, 224,
+ 191, 12, 15, 224, 190, 12, 15, 224, 189, 12, 15, 224, 188, 12, 15, 224,
+ 187, 12, 15, 224, 186, 12, 15, 224, 185, 12, 15, 224, 184, 12, 15, 224,
+ 183, 12, 15, 224, 182, 12, 15, 224, 181, 12, 15, 224, 180, 12, 15, 224,
+ 179, 12, 15, 224, 178, 12, 15, 224, 177, 12, 15, 224, 176, 12, 15, 224,
+ 175, 12, 15, 224, 174, 12, 15, 224, 173, 12, 15, 224, 172, 12, 15, 224,
+ 171, 12, 15, 224, 170, 12, 15, 224, 169, 12, 15, 224, 168, 12, 15, 224,
+ 167, 12, 15, 224, 166, 12, 15, 224, 165, 12, 15, 224, 164, 12, 15, 224,
+ 163, 12, 15, 224, 162, 12, 15, 224, 161, 12, 15, 224, 160, 12, 15, 224,
+ 159, 12, 15, 224, 158, 12, 15, 224, 157, 12, 15, 224, 156, 12, 15, 224,
+ 155, 12, 15, 224, 154, 12, 15, 224, 153, 12, 15, 224, 152, 12, 15, 224,
+ 151, 12, 15, 224, 150, 12, 15, 224, 149, 12, 15, 224, 148, 12, 15, 224,
+ 147, 12, 15, 224, 146, 12, 15, 224, 145, 12, 15, 224, 144, 12, 15, 224,
+ 143, 12, 15, 224, 142, 12, 15, 224, 141, 12, 15, 224, 140, 12, 15, 224,
+ 139, 12, 15, 224, 138, 12, 15, 224, 137, 12, 15, 224, 136, 12, 15, 224,
+ 135, 12, 15, 224, 134, 12, 15, 224, 133, 12, 15, 224, 132, 12, 15, 224,
+ 131, 12, 15, 224, 130, 12, 15, 224, 129, 12, 15, 224, 128, 12, 15, 224,
+ 127, 12, 15, 224, 126, 12, 15, 224, 125, 12, 15, 224, 124, 12, 15, 224,
+ 123, 12, 15, 224, 122, 12, 15, 224, 121, 12, 15, 224, 120, 12, 15, 224,
+ 119, 12, 15, 224, 118, 12, 15, 224, 117, 12, 15, 224, 116, 12, 15, 224,
+ 115, 12, 15, 224, 114, 12, 15, 224, 113, 12, 15, 224, 112, 12, 15, 224,
+ 111, 12, 15, 224, 110, 12, 15, 224, 109, 12, 15, 224, 108, 12, 15, 224,
+ 107, 12, 15, 224, 106, 12, 15, 224, 105, 12, 15, 224, 104, 12, 15, 224,
+ 103, 12, 15, 224, 102, 12, 15, 224, 101, 12, 15, 224, 100, 12, 15, 224,
+ 99, 12, 15, 224, 98, 12, 15, 224, 97, 12, 15, 224, 96, 12, 15, 224, 95,
+ 12, 15, 224, 94, 12, 15, 224, 93, 12, 15, 224, 92, 12, 15, 224, 91, 12,
+ 15, 224, 90, 12, 15, 224, 89, 12, 15, 224, 88, 12, 15, 224, 87, 12, 15,
+ 224, 86, 12, 15, 224, 85, 12, 15, 224, 84, 12, 15, 224, 83, 12, 15, 224,
+ 82, 12, 15, 224, 81, 12, 15, 224, 80, 12, 15, 224, 79, 12, 15, 224, 78,
+ 12, 15, 224, 77, 12, 15, 224, 76, 12, 15, 224, 75, 12, 15, 224, 74, 12,
+ 15, 224, 73, 12, 15, 224, 72, 12, 15, 224, 71, 12, 15, 224, 70, 12, 15,
+ 224, 69, 12, 15, 224, 68, 12, 15, 224, 67, 12, 15, 224, 66, 12, 15, 224,
+ 65, 12, 15, 224, 64, 12, 15, 224, 63, 12, 15, 224, 62, 12, 15, 224, 61,
+ 12, 15, 224, 60, 12, 15, 224, 59, 12, 15, 224, 58, 12, 15, 224, 57, 12,
+ 15, 224, 56, 12, 15, 224, 55, 12, 15, 224, 54, 12, 15, 224, 53, 12, 15,
+ 224, 52, 12, 15, 224, 51, 12, 15, 224, 50, 12, 15, 224, 49, 12, 15, 224,
+ 48, 12, 15, 224, 47, 12, 15, 224, 46, 12, 15, 224, 45, 12, 15, 224, 44,
+ 12, 15, 224, 43, 12, 15, 224, 42, 12, 15, 224, 41, 12, 15, 224, 40, 12,
+ 15, 224, 39, 12, 15, 224, 38, 12, 15, 224, 37, 12, 15, 224, 36, 12, 15,
+ 224, 35, 12, 15, 224, 34, 12, 15, 224, 33, 12, 15, 224, 32, 12, 15, 224,
+ 31, 12, 15, 224, 30, 12, 15, 224, 29, 12, 15, 224, 28, 12, 15, 224, 27,
+ 12, 15, 224, 26, 12, 15, 224, 25, 12, 15, 224, 24, 12, 15, 224, 23, 12,
+ 15, 224, 22, 12, 15, 224, 21, 12, 15, 224, 20, 12, 15, 224, 19, 12, 15,
+ 224, 18, 12, 15, 224, 17, 12, 15, 224, 16, 12, 15, 224, 15, 12, 15, 224,
+ 14, 12, 15, 224, 13, 12, 15, 224, 12, 12, 15, 224, 11, 12, 15, 224, 10,
+ 12, 15, 224, 9, 12, 15, 224, 8, 12, 15, 224, 7, 12, 15, 224, 6, 12, 15,
+ 224, 5, 12, 15, 224, 4, 12, 15, 224, 3, 12, 15, 224, 2, 12, 15, 224, 1,
+ 12, 15, 224, 0, 8, 2, 34, 233, 15, 8, 2, 34, 233, 11, 8, 2, 34, 232, 209,
+ 8, 2, 34, 233, 14, 8, 2, 34, 233, 13, 8, 2, 34, 184, 206, 159, 200, 228,
+ 8, 2, 34, 202, 35, 250, 91, 2, 34, 217, 6, 213, 96, 250, 91, 2, 34, 217,
+ 6, 234, 177, 250, 91, 2, 34, 217, 6, 223, 159, 250, 91, 2, 34, 196, 45,
+ 213, 96, 250, 91, 2, 34, 217, 6, 193, 201, 129, 1, 192, 240, 4, 229, 139,
+ 129, 209, 192, 222, 213, 196, 135, 129, 34, 193, 20, 192, 240, 192, 240,
+ 210, 205, 129, 1, 250, 244, 249, 231, 129, 1, 194, 64, 251, 26, 129, 1,
+ 194, 64, 237, 221, 129, 1, 194, 64, 229, 255, 129, 1, 194, 64, 222, 139,
+ 129, 1, 194, 64, 220, 86, 129, 1, 194, 64, 52, 217, 12, 129, 1, 194, 64,
+ 207, 188, 129, 1, 194, 64, 200, 96, 129, 1, 250, 244, 102, 57, 129, 1,
+ 203, 225, 4, 203, 225, 236, 114, 129, 1, 203, 225, 4, 203, 79, 236, 114,
+ 129, 1, 203, 225, 4, 237, 241, 26, 203, 225, 236, 114, 129, 1, 203, 225,
+ 4, 237, 241, 26, 203, 79, 236, 114, 129, 1, 157, 4, 210, 205, 129, 1,
+ 157, 4, 208, 227, 129, 1, 157, 4, 217, 140, 129, 1, 248, 66, 4, 237, 240,
+ 129, 1, 231, 32, 4, 237, 240, 129, 1, 237, 222, 4, 237, 240, 129, 1, 230,
+ 0, 4, 217, 140, 129, 1, 196, 128, 4, 237, 240, 129, 1, 192, 90, 4, 237,
+ 240, 129, 1, 200, 9, 4, 237, 240, 129, 1, 192, 240, 4, 237, 240, 129, 1,
+ 52, 222, 140, 4, 237, 240, 129, 1, 222, 140, 4, 237, 240, 129, 1, 220,
+ 87, 4, 237, 240, 129, 1, 217, 13, 4, 237, 240, 129, 1, 212, 231, 4, 237,
+ 240, 129, 1, 206, 47, 4, 237, 240, 129, 1, 52, 210, 182, 4, 237, 240,
+ 129, 1, 210, 182, 4, 237, 240, 129, 1, 198, 114, 4, 237, 240, 129, 1,
+ 208, 187, 4, 237, 240, 129, 1, 207, 189, 4, 237, 240, 129, 1, 203, 225,
+ 4, 237, 240, 129, 1, 200, 97, 4, 237, 240, 129, 1, 196, 128, 4, 229, 27,
+ 129, 1, 248, 66, 4, 208, 51, 129, 1, 222, 140, 4, 208, 51, 129, 1, 210,
+ 182, 4, 208, 51, 129, 34, 157, 220, 86, 9, 1, 157, 194, 137, 72, 20, 9,
+ 1, 157, 194, 137, 52, 20, 9, 1, 248, 107, 72, 20, 9, 1, 248, 107, 52, 20,
+ 9, 1, 248, 107, 88, 20, 9, 1, 248, 107, 217, 35, 20, 9, 1, 210, 162, 72,
+ 20, 9, 1, 210, 162, 52, 20, 9, 1, 210, 162, 88, 20, 9, 1, 210, 162, 217,
+ 35, 20, 9, 1, 248, 95, 72, 20, 9, 1, 248, 95, 52, 20, 9, 1, 248, 95, 88,
+ 20, 9, 1, 248, 95, 217, 35, 20, 9, 1, 198, 74, 72, 20, 9, 1, 198, 74, 52,
+ 20, 9, 1, 198, 74, 88, 20, 9, 1, 198, 74, 217, 35, 20, 9, 1, 200, 48, 72,
+ 20, 9, 1, 200, 48, 52, 20, 9, 1, 200, 48, 88, 20, 9, 1, 200, 48, 217, 35,
+ 20, 9, 1, 198, 76, 72, 20, 9, 1, 198, 76, 52, 20, 9, 1, 198, 76, 88, 20,
+ 9, 1, 198, 76, 217, 35, 20, 9, 1, 196, 117, 72, 20, 9, 1, 196, 117, 52,
+ 20, 9, 1, 196, 117, 88, 20, 9, 1, 196, 117, 217, 35, 20, 9, 1, 210, 160,
+ 72, 20, 9, 1, 210, 160, 52, 20, 9, 1, 210, 160, 88, 20, 9, 1, 210, 160,
+ 217, 35, 20, 9, 1, 235, 24, 72, 20, 9, 1, 235, 24, 52, 20, 9, 1, 235, 24,
+ 88, 20, 9, 1, 235, 24, 217, 35, 20, 9, 1, 212, 188, 72, 20, 9, 1, 212,
+ 188, 52, 20, 9, 1, 212, 188, 88, 20, 9, 1, 212, 188, 217, 35, 20, 9, 1,
+ 200, 84, 72, 20, 9, 1, 200, 84, 52, 20, 9, 1, 200, 84, 88, 20, 9, 1, 200,
+ 84, 217, 35, 20, 9, 1, 200, 82, 72, 20, 9, 1, 200, 82, 52, 20, 9, 1, 200,
+ 82, 88, 20, 9, 1, 200, 82, 217, 35, 20, 9, 1, 237, 159, 72, 20, 9, 1,
+ 237, 159, 52, 20, 9, 1, 237, 235, 72, 20, 9, 1, 237, 235, 52, 20, 9, 1,
+ 235, 53, 72, 20, 9, 1, 235, 53, 52, 20, 9, 1, 237, 157, 72, 20, 9, 1,
+ 237, 157, 52, 20, 9, 1, 223, 35, 72, 20, 9, 1, 223, 35, 52, 20, 9, 1,
+ 206, 252, 72, 20, 9, 1, 206, 252, 52, 20, 9, 1, 222, 40, 72, 20, 9, 1,
+ 222, 40, 52, 20, 9, 1, 222, 40, 88, 20, 9, 1, 222, 40, 217, 35, 20, 9, 1,
+ 231, 221, 72, 20, 9, 1, 231, 221, 52, 20, 9, 1, 231, 221, 88, 20, 9, 1,
+ 231, 221, 217, 35, 20, 9, 1, 230, 174, 72, 20, 9, 1, 230, 174, 52, 20, 9,
+ 1, 230, 174, 88, 20, 9, 1, 230, 174, 217, 35, 20, 9, 1, 214, 89, 72, 20,
+ 9, 1, 214, 89, 52, 20, 9, 1, 214, 89, 88, 20, 9, 1, 214, 89, 217, 35, 20,
+ 9, 1, 213, 124, 231, 51, 72, 20, 9, 1, 213, 124, 231, 51, 52, 20, 9, 1,
+ 207, 59, 72, 20, 9, 1, 207, 59, 52, 20, 9, 1, 207, 59, 88, 20, 9, 1, 207,
+ 59, 217, 35, 20, 9, 1, 229, 221, 4, 97, 95, 72, 20, 9, 1, 229, 221, 4,
+ 97, 95, 52, 20, 9, 1, 229, 221, 230, 252, 72, 20, 9, 1, 229, 221, 230,
+ 252, 52, 20, 9, 1, 229, 221, 230, 252, 88, 20, 9, 1, 229, 221, 230, 252,
+ 217, 35, 20, 9, 1, 229, 221, 236, 143, 72, 20, 9, 1, 229, 221, 236, 143,
+ 52, 20, 9, 1, 229, 221, 236, 143, 88, 20, 9, 1, 229, 221, 236, 143, 217,
+ 35, 20, 9, 1, 97, 248, 187, 72, 20, 9, 1, 97, 248, 187, 52, 20, 9, 1, 97,
+ 248, 187, 4, 230, 67, 95, 72, 20, 9, 1, 97, 248, 187, 4, 230, 67, 95, 52,
+ 20, 9, 16, 78, 58, 9, 16, 78, 63, 9, 16, 103, 236, 112, 58, 9, 16, 103,
+ 236, 112, 63, 9, 16, 112, 236, 112, 58, 9, 16, 112, 236, 112, 63, 9, 16,
+ 112, 236, 112, 209, 188, 235, 92, 58, 9, 16, 112, 236, 112, 209, 188,
+ 235, 92, 63, 9, 16, 232, 119, 236, 112, 58, 9, 16, 232, 119, 236, 112,
+ 63, 9, 16, 55, 84, 248, 194, 63, 9, 16, 103, 236, 112, 196, 55, 58, 9,
+ 16, 103, 236, 112, 196, 55, 63, 9, 16, 207, 81, 9, 16, 2, 200, 152, 58,
+ 9, 16, 2, 200, 152, 63, 9, 1, 214, 168, 72, 20, 9, 1, 214, 168, 52, 20,
+ 9, 1, 214, 168, 88, 20, 9, 1, 214, 168, 217, 35, 20, 9, 1, 124, 72, 20,
+ 9, 1, 124, 52, 20, 9, 1, 212, 1, 72, 20, 9, 1, 212, 1, 52, 20, 9, 1, 192,
+ 215, 72, 20, 9, 1, 192, 215, 52, 20, 9, 1, 124, 4, 230, 67, 95, 72, 20,
+ 9, 1, 196, 124, 72, 20, 9, 1, 196, 124, 52, 20, 9, 1, 221, 170, 212, 1,
+ 72, 20, 9, 1, 221, 170, 212, 1, 52, 20, 9, 1, 221, 170, 192, 215, 72, 20,
+ 9, 1, 221, 170, 192, 215, 52, 20, 9, 1, 234, 253, 72, 20, 9, 1, 234, 253,
+ 52, 20, 9, 1, 234, 253, 88, 20, 9, 1, 234, 253, 217, 35, 20, 9, 1, 197,
+ 94, 222, 61, 221, 170, 157, 217, 169, 88, 20, 9, 1, 197, 94, 222, 61,
+ 221, 170, 157, 217, 169, 217, 35, 20, 9, 34, 97, 4, 230, 67, 95, 4, 157,
+ 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 157, 52, 20, 9, 34, 97, 4, 230, 67,
+ 95, 4, 251, 109, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 251, 109, 52, 20,
+ 9, 34, 97, 4, 230, 67, 95, 4, 194, 120, 72, 20, 9, 34, 97, 4, 230, 67,
+ 95, 4, 194, 120, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 124, 72, 20, 9,
+ 34, 97, 4, 230, 67, 95, 4, 124, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4,
+ 212, 1, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 212, 1, 52, 20, 9, 34, 97,
+ 4, 230, 67, 95, 4, 192, 215, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 192,
+ 215, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 234, 253, 72, 20, 9, 34, 97,
+ 4, 230, 67, 95, 4, 234, 253, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 234,
+ 253, 88, 20, 9, 34, 197, 94, 221, 170, 97, 4, 230, 67, 95, 4, 157, 217,
+ 169, 72, 20, 9, 34, 197, 94, 221, 170, 97, 4, 230, 67, 95, 4, 157, 217,
+ 169, 52, 20, 9, 34, 197, 94, 221, 170, 97, 4, 230, 67, 95, 4, 157, 217,
+ 169, 88, 20, 9, 1, 233, 62, 97, 72, 20, 9, 1, 233, 62, 97, 52, 20, 9, 1,
+ 233, 62, 97, 88, 20, 9, 1, 233, 62, 97, 217, 35, 20, 9, 34, 97, 4, 230,
+ 67, 95, 4, 223, 38, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 176, 72, 20, 9,
+ 34, 97, 4, 230, 67, 95, 4, 91, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 157,
+ 217, 169, 72, 20, 9, 34, 97, 4, 230, 67, 95, 4, 97, 72, 20, 9, 34, 248,
+ 97, 4, 223, 38, 72, 20, 9, 34, 248, 97, 4, 176, 72, 20, 9, 34, 248, 97,
+ 4, 221, 246, 72, 20, 9, 34, 248, 97, 4, 91, 72, 20, 9, 34, 248, 97, 4,
+ 157, 217, 169, 72, 20, 9, 34, 248, 97, 4, 97, 72, 20, 9, 34, 200, 50, 4,
+ 223, 38, 72, 20, 9, 34, 200, 50, 4, 176, 72, 20, 9, 34, 200, 50, 4, 221,
+ 246, 72, 20, 9, 34, 200, 50, 4, 91, 72, 20, 9, 34, 200, 50, 4, 157, 217,
+ 169, 72, 20, 9, 34, 200, 50, 4, 97, 72, 20, 9, 34, 199, 221, 4, 223, 38,
+ 72, 20, 9, 34, 199, 221, 4, 91, 72, 20, 9, 34, 199, 221, 4, 157, 217,
+ 169, 72, 20, 9, 34, 199, 221, 4, 97, 72, 20, 9, 34, 223, 38, 4, 176, 72,
+ 20, 9, 34, 223, 38, 4, 91, 72, 20, 9, 34, 176, 4, 223, 38, 72, 20, 9, 34,
+ 176, 4, 91, 72, 20, 9, 34, 221, 246, 4, 223, 38, 72, 20, 9, 34, 221, 246,
+ 4, 176, 72, 20, 9, 34, 221, 246, 4, 91, 72, 20, 9, 34, 205, 202, 4, 223,
+ 38, 72, 20, 9, 34, 205, 202, 4, 176, 72, 20, 9, 34, 205, 202, 4, 221,
+ 246, 72, 20, 9, 34, 205, 202, 4, 91, 72, 20, 9, 34, 206, 87, 4, 176, 72,
+ 20, 9, 34, 206, 87, 4, 91, 72, 20, 9, 34, 237, 251, 4, 223, 38, 72, 20,
+ 9, 34, 237, 251, 4, 176, 72, 20, 9, 34, 237, 251, 4, 221, 246, 72, 20, 9,
+ 34, 237, 251, 4, 91, 72, 20, 9, 34, 200, 152, 4, 176, 72, 20, 9, 34, 200,
+ 152, 4, 91, 72, 20, 9, 34, 192, 107, 4, 91, 72, 20, 9, 34, 251, 58, 4,
+ 223, 38, 72, 20, 9, 34, 251, 58, 4, 91, 72, 20, 9, 34, 231, 80, 4, 223,
+ 38, 72, 20, 9, 34, 231, 80, 4, 91, 72, 20, 9, 34, 233, 35, 4, 223, 38,
+ 72, 20, 9, 34, 233, 35, 4, 176, 72, 20, 9, 34, 233, 35, 4, 221, 246, 72,
+ 20, 9, 34, 233, 35, 4, 91, 72, 20, 9, 34, 233, 35, 4, 157, 217, 169, 72,
+ 20, 9, 34, 233, 35, 4, 97, 72, 20, 9, 34, 208, 233, 4, 176, 72, 20, 9,
+ 34, 208, 233, 4, 91, 72, 20, 9, 34, 208, 233, 4, 157, 217, 169, 72, 20,
+ 9, 34, 208, 233, 4, 97, 72, 20, 9, 34, 222, 140, 4, 157, 72, 20, 9, 34,
+ 222, 140, 4, 223, 38, 72, 20, 9, 34, 222, 140, 4, 176, 72, 20, 9, 34,
+ 222, 140, 4, 221, 246, 72, 20, 9, 34, 222, 140, 4, 220, 95, 72, 20, 9,
+ 34, 222, 140, 4, 91, 72, 20, 9, 34, 222, 140, 4, 157, 217, 169, 72, 20,
+ 9, 34, 222, 140, 4, 97, 72, 20, 9, 34, 220, 95, 4, 223, 38, 72, 20, 9,
+ 34, 220, 95, 4, 176, 72, 20, 9, 34, 220, 95, 4, 221, 246, 72, 20, 9, 34,
+ 220, 95, 4, 91, 72, 20, 9, 34, 220, 95, 4, 157, 217, 169, 72, 20, 9, 34,
+ 220, 95, 4, 97, 72, 20, 9, 34, 91, 4, 223, 38, 72, 20, 9, 34, 91, 4, 176,
+ 72, 20, 9, 34, 91, 4, 221, 246, 72, 20, 9, 34, 91, 4, 91, 72, 20, 9, 34,
+ 91, 4, 157, 217, 169, 72, 20, 9, 34, 91, 4, 97, 72, 20, 9, 34, 213, 124,
+ 4, 223, 38, 72, 20, 9, 34, 213, 124, 4, 176, 72, 20, 9, 34, 213, 124, 4,
+ 221, 246, 72, 20, 9, 34, 213, 124, 4, 91, 72, 20, 9, 34, 213, 124, 4,
+ 157, 217, 169, 72, 20, 9, 34, 213, 124, 4, 97, 72, 20, 9, 34, 229, 221,
+ 4, 223, 38, 72, 20, 9, 34, 229, 221, 4, 91, 72, 20, 9, 34, 229, 221, 4,
+ 157, 217, 169, 72, 20, 9, 34, 229, 221, 4, 97, 72, 20, 9, 34, 97, 4, 223,
+ 38, 72, 20, 9, 34, 97, 4, 176, 72, 20, 9, 34, 97, 4, 221, 246, 72, 20, 9,
+ 34, 97, 4, 91, 72, 20, 9, 34, 97, 4, 157, 217, 169, 72, 20, 9, 34, 97, 4,
+ 97, 72, 20, 9, 34, 199, 233, 4, 201, 107, 157, 72, 20, 9, 34, 207, 222,
+ 4, 201, 107, 157, 72, 20, 9, 34, 157, 217, 169, 4, 201, 107, 157, 72, 20,
+ 9, 34, 204, 55, 4, 237, 214, 72, 20, 9, 34, 204, 55, 4, 222, 85, 72, 20,
+ 9, 34, 204, 55, 4, 233, 59, 72, 20, 9, 34, 204, 55, 4, 237, 216, 72, 20,
+ 9, 34, 204, 55, 4, 222, 87, 72, 20, 9, 34, 204, 55, 4, 201, 107, 157, 72,
+ 20, 9, 34, 97, 4, 230, 67, 95, 4, 207, 222, 52, 20, 9, 34, 97, 4, 230,
+ 67, 95, 4, 192, 104, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 91, 52, 20, 9,
+ 34, 97, 4, 230, 67, 95, 4, 213, 124, 52, 20, 9, 34, 97, 4, 230, 67, 95,
+ 4, 157, 217, 169, 52, 20, 9, 34, 97, 4, 230, 67, 95, 4, 97, 52, 20, 9,
+ 34, 248, 97, 4, 207, 222, 52, 20, 9, 34, 248, 97, 4, 192, 104, 52, 20, 9,
+ 34, 248, 97, 4, 91, 52, 20, 9, 34, 248, 97, 4, 213, 124, 52, 20, 9, 34,
+ 248, 97, 4, 157, 217, 169, 52, 20, 9, 34, 248, 97, 4, 97, 52, 20, 9, 34,
+ 200, 50, 4, 207, 222, 52, 20, 9, 34, 200, 50, 4, 192, 104, 52, 20, 9, 34,
+ 200, 50, 4, 91, 52, 20, 9, 34, 200, 50, 4, 213, 124, 52, 20, 9, 34, 200,
+ 50, 4, 157, 217, 169, 52, 20, 9, 34, 200, 50, 4, 97, 52, 20, 9, 34, 199,
+ 221, 4, 207, 222, 52, 20, 9, 34, 199, 221, 4, 192, 104, 52, 20, 9, 34,
+ 199, 221, 4, 91, 52, 20, 9, 34, 199, 221, 4, 213, 124, 52, 20, 9, 34,
+ 199, 221, 4, 157, 217, 169, 52, 20, 9, 34, 199, 221, 4, 97, 52, 20, 9,
+ 34, 233, 35, 4, 157, 217, 169, 52, 20, 9, 34, 233, 35, 4, 97, 52, 20, 9,
+ 34, 208, 233, 4, 157, 217, 169, 52, 20, 9, 34, 208, 233, 4, 97, 52, 20,
+ 9, 34, 222, 140, 4, 157, 52, 20, 9, 34, 222, 140, 4, 220, 95, 52, 20, 9,
+ 34, 222, 140, 4, 91, 52, 20, 9, 34, 222, 140, 4, 157, 217, 169, 52, 20,
+ 9, 34, 222, 140, 4, 97, 52, 20, 9, 34, 220, 95, 4, 91, 52, 20, 9, 34,
+ 220, 95, 4, 157, 217, 169, 52, 20, 9, 34, 220, 95, 4, 97, 52, 20, 9, 34,
+ 91, 4, 157, 52, 20, 9, 34, 91, 4, 91, 52, 20, 9, 34, 213, 124, 4, 207,
+ 222, 52, 20, 9, 34, 213, 124, 4, 192, 104, 52, 20, 9, 34, 213, 124, 4,
+ 91, 52, 20, 9, 34, 213, 124, 4, 213, 124, 52, 20, 9, 34, 213, 124, 4,
+ 157, 217, 169, 52, 20, 9, 34, 213, 124, 4, 97, 52, 20, 9, 34, 157, 217,
+ 169, 4, 201, 107, 157, 52, 20, 9, 34, 97, 4, 207, 222, 52, 20, 9, 34, 97,
+ 4, 192, 104, 52, 20, 9, 34, 97, 4, 91, 52, 20, 9, 34, 97, 4, 213, 124,
+ 52, 20, 9, 34, 97, 4, 157, 217, 169, 52, 20, 9, 34, 97, 4, 97, 52, 20, 9,
+ 34, 97, 4, 230, 67, 95, 4, 223, 38, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4,
+ 176, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4, 221, 246, 88, 20, 9, 34, 97,
+ 4, 230, 67, 95, 4, 91, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4, 229, 221,
+ 88, 20, 9, 34, 248, 97, 4, 223, 38, 88, 20, 9, 34, 248, 97, 4, 176, 88,
+ 20, 9, 34, 248, 97, 4, 221, 246, 88, 20, 9, 34, 248, 97, 4, 91, 88, 20,
+ 9, 34, 248, 97, 4, 229, 221, 88, 20, 9, 34, 200, 50, 4, 223, 38, 88, 20,
+ 9, 34, 200, 50, 4, 176, 88, 20, 9, 34, 200, 50, 4, 221, 246, 88, 20, 9,
+ 34, 200, 50, 4, 91, 88, 20, 9, 34, 200, 50, 4, 229, 221, 88, 20, 9, 34,
+ 199, 221, 4, 91, 88, 20, 9, 34, 223, 38, 4, 176, 88, 20, 9, 34, 223, 38,
+ 4, 91, 88, 20, 9, 34, 176, 4, 223, 38, 88, 20, 9, 34, 176, 4, 91, 88, 20,
+ 9, 34, 221, 246, 4, 223, 38, 88, 20, 9, 34, 221, 246, 4, 91, 88, 20, 9,
+ 34, 205, 202, 4, 223, 38, 88, 20, 9, 34, 205, 202, 4, 176, 88, 20, 9, 34,
+ 205, 202, 4, 221, 246, 88, 20, 9, 34, 205, 202, 4, 91, 88, 20, 9, 34,
+ 206, 87, 4, 176, 88, 20, 9, 34, 206, 87, 4, 221, 246, 88, 20, 9, 34, 206,
+ 87, 4, 91, 88, 20, 9, 34, 237, 251, 4, 223, 38, 88, 20, 9, 34, 237, 251,
+ 4, 176, 88, 20, 9, 34, 237, 251, 4, 221, 246, 88, 20, 9, 34, 237, 251, 4,
+ 91, 88, 20, 9, 34, 200, 152, 4, 176, 88, 20, 9, 34, 192, 107, 4, 91, 88,
+ 20, 9, 34, 251, 58, 4, 223, 38, 88, 20, 9, 34, 251, 58, 4, 91, 88, 20, 9,
+ 34, 231, 80, 4, 223, 38, 88, 20, 9, 34, 231, 80, 4, 91, 88, 20, 9, 34,
+ 233, 35, 4, 223, 38, 88, 20, 9, 34, 233, 35, 4, 176, 88, 20, 9, 34, 233,
+ 35, 4, 221, 246, 88, 20, 9, 34, 233, 35, 4, 91, 88, 20, 9, 34, 208, 233,
+ 4, 176, 88, 20, 9, 34, 208, 233, 4, 91, 88, 20, 9, 34, 222, 140, 4, 223,
+ 38, 88, 20, 9, 34, 222, 140, 4, 176, 88, 20, 9, 34, 222, 140, 4, 221,
+ 246, 88, 20, 9, 34, 222, 140, 4, 220, 95, 88, 20, 9, 34, 222, 140, 4, 91,
+ 88, 20, 9, 34, 220, 95, 4, 223, 38, 88, 20, 9, 34, 220, 95, 4, 176, 88,
+ 20, 9, 34, 220, 95, 4, 221, 246, 88, 20, 9, 34, 220, 95, 4, 91, 88, 20,
+ 9, 34, 220, 95, 4, 229, 221, 88, 20, 9, 34, 91, 4, 223, 38, 88, 20, 9,
+ 34, 91, 4, 176, 88, 20, 9, 34, 91, 4, 221, 246, 88, 20, 9, 34, 91, 4, 91,
+ 88, 20, 9, 34, 213, 124, 4, 223, 38, 88, 20, 9, 34, 213, 124, 4, 176, 88,
+ 20, 9, 34, 213, 124, 4, 221, 246, 88, 20, 9, 34, 213, 124, 4, 91, 88, 20,
+ 9, 34, 213, 124, 4, 229, 221, 88, 20, 9, 34, 229, 221, 4, 223, 38, 88,
+ 20, 9, 34, 229, 221, 4, 91, 88, 20, 9, 34, 229, 221, 4, 201, 107, 157,
+ 88, 20, 9, 34, 97, 4, 223, 38, 88, 20, 9, 34, 97, 4, 176, 88, 20, 9, 34,
+ 97, 4, 221, 246, 88, 20, 9, 34, 97, 4, 91, 88, 20, 9, 34, 97, 4, 229,
+ 221, 88, 20, 9, 34, 97, 4, 230, 67, 95, 4, 91, 217, 35, 20, 9, 34, 97, 4,
+ 230, 67, 95, 4, 229, 221, 217, 35, 20, 9, 34, 248, 97, 4, 91, 217, 35,
+ 20, 9, 34, 248, 97, 4, 229, 221, 217, 35, 20, 9, 34, 200, 50, 4, 91, 217,
+ 35, 20, 9, 34, 200, 50, 4, 229, 221, 217, 35, 20, 9, 34, 199, 221, 4, 91,
+ 217, 35, 20, 9, 34, 199, 221, 4, 229, 221, 217, 35, 20, 9, 34, 205, 202,
+ 4, 91, 217, 35, 20, 9, 34, 205, 202, 4, 229, 221, 217, 35, 20, 9, 34,
+ 204, 9, 4, 91, 217, 35, 20, 9, 34, 204, 9, 4, 229, 221, 217, 35, 20, 9,
+ 34, 222, 140, 4, 220, 95, 217, 35, 20, 9, 34, 222, 140, 4, 91, 217, 35,
+ 20, 9, 34, 220, 95, 4, 91, 217, 35, 20, 9, 34, 213, 124, 4, 91, 217, 35,
+ 20, 9, 34, 213, 124, 4, 229, 221, 217, 35, 20, 9, 34, 97, 4, 91, 217, 35,
+ 20, 9, 34, 97, 4, 229, 221, 217, 35, 20, 9, 34, 204, 55, 4, 233, 59, 217,
+ 35, 20, 9, 34, 204, 55, 4, 237, 216, 217, 35, 20, 9, 34, 204, 55, 4, 222,
+ 87, 217, 35, 20, 9, 34, 200, 152, 4, 157, 217, 169, 72, 20, 9, 34, 200,
+ 152, 4, 97, 72, 20, 9, 34, 251, 58, 4, 157, 217, 169, 72, 20, 9, 34, 251,
+ 58, 4, 97, 72, 20, 9, 34, 231, 80, 4, 157, 217, 169, 72, 20, 9, 34, 231,
+ 80, 4, 97, 72, 20, 9, 34, 205, 202, 4, 157, 217, 169, 72, 20, 9, 34, 205,
+ 202, 4, 97, 72, 20, 9, 34, 204, 9, 4, 157, 217, 169, 72, 20, 9, 34, 204,
+ 9, 4, 97, 72, 20, 9, 34, 176, 4, 157, 217, 169, 72, 20, 9, 34, 176, 4,
+ 97, 72, 20, 9, 34, 223, 38, 4, 157, 217, 169, 72, 20, 9, 34, 223, 38, 4,
+ 97, 72, 20, 9, 34, 221, 246, 4, 157, 217, 169, 72, 20, 9, 34, 221, 246,
+ 4, 97, 72, 20, 9, 34, 206, 87, 4, 157, 217, 169, 72, 20, 9, 34, 206, 87,
+ 4, 97, 72, 20, 9, 34, 237, 251, 4, 157, 217, 169, 72, 20, 9, 34, 237,
+ 251, 4, 97, 72, 20, 9, 34, 204, 9, 4, 223, 38, 72, 20, 9, 34, 204, 9, 4,
+ 176, 72, 20, 9, 34, 204, 9, 4, 221, 246, 72, 20, 9, 34, 204, 9, 4, 91,
+ 72, 20, 9, 34, 204, 9, 4, 207, 222, 72, 20, 9, 34, 205, 202, 4, 207, 222,
+ 72, 20, 9, 34, 206, 87, 4, 207, 222, 72, 20, 9, 34, 237, 251, 4, 207,
+ 222, 72, 20, 9, 34, 200, 152, 4, 157, 217, 169, 52, 20, 9, 34, 200, 152,
+ 4, 97, 52, 20, 9, 34, 251, 58, 4, 157, 217, 169, 52, 20, 9, 34, 251, 58,
+ 4, 97, 52, 20, 9, 34, 231, 80, 4, 157, 217, 169, 52, 20, 9, 34, 231, 80,
+ 4, 97, 52, 20, 9, 34, 205, 202, 4, 157, 217, 169, 52, 20, 9, 34, 205,
+ 202, 4, 97, 52, 20, 9, 34, 204, 9, 4, 157, 217, 169, 52, 20, 9, 34, 204,
+ 9, 4, 97, 52, 20, 9, 34, 176, 4, 157, 217, 169, 52, 20, 9, 34, 176, 4,
+ 97, 52, 20, 9, 34, 223, 38, 4, 157, 217, 169, 52, 20, 9, 34, 223, 38, 4,
+ 97, 52, 20, 9, 34, 221, 246, 4, 157, 217, 169, 52, 20, 9, 34, 221, 246,
+ 4, 97, 52, 20, 9, 34, 206, 87, 4, 157, 217, 169, 52, 20, 9, 34, 206, 87,
+ 4, 97, 52, 20, 9, 34, 237, 251, 4, 157, 217, 169, 52, 20, 9, 34, 237,
+ 251, 4, 97, 52, 20, 9, 34, 204, 9, 4, 223, 38, 52, 20, 9, 34, 204, 9, 4,
+ 176, 52, 20, 9, 34, 204, 9, 4, 221, 246, 52, 20, 9, 34, 204, 9, 4, 91,
+ 52, 20, 9, 34, 204, 9, 4, 207, 222, 52, 20, 9, 34, 205, 202, 4, 207, 222,
+ 52, 20, 9, 34, 206, 87, 4, 207, 222, 52, 20, 9, 34, 237, 251, 4, 207,
+ 222, 52, 20, 9, 34, 204, 9, 4, 223, 38, 88, 20, 9, 34, 204, 9, 4, 176,
+ 88, 20, 9, 34, 204, 9, 4, 221, 246, 88, 20, 9, 34, 204, 9, 4, 91, 88, 20,
+ 9, 34, 205, 202, 4, 229, 221, 88, 20, 9, 34, 204, 9, 4, 229, 221, 88, 20,
+ 9, 34, 200, 152, 4, 91, 88, 20, 9, 34, 205, 202, 4, 223, 38, 217, 35, 20,
+ 9, 34, 205, 202, 4, 176, 217, 35, 20, 9, 34, 205, 202, 4, 221, 246, 217,
+ 35, 20, 9, 34, 204, 9, 4, 223, 38, 217, 35, 20, 9, 34, 204, 9, 4, 176,
+ 217, 35, 20, 9, 34, 204, 9, 4, 221, 246, 217, 35, 20, 9, 34, 200, 152, 4,
+ 91, 217, 35, 20, 9, 34, 192, 107, 4, 91, 217, 35, 20, 9, 34, 157, 4, 233,
+ 57, 52, 20, 9, 34, 157, 4, 233, 57, 72, 20, 211, 148, 46, 210, 230, 211,
+ 148, 51, 210, 230, 9, 34, 200, 50, 4, 223, 38, 4, 91, 88, 20, 9, 34, 200,
+ 50, 4, 176, 4, 223, 38, 52, 20, 9, 34, 200, 50, 4, 176, 4, 223, 38, 88,
+ 20, 9, 34, 200, 50, 4, 176, 4, 91, 88, 20, 9, 34, 200, 50, 4, 221, 246,
+ 4, 91, 88, 20, 9, 34, 200, 50, 4, 91, 4, 223, 38, 88, 20, 9, 34, 200, 50,
+ 4, 91, 4, 176, 88, 20, 9, 34, 200, 50, 4, 91, 4, 221, 246, 88, 20, 9, 34,
+ 223, 38, 4, 91, 4, 176, 52, 20, 9, 34, 223, 38, 4, 91, 4, 176, 88, 20, 9,
+ 34, 176, 4, 91, 4, 97, 52, 20, 9, 34, 176, 4, 91, 4, 157, 217, 169, 52,
+ 20, 9, 34, 205, 202, 4, 176, 4, 223, 38, 88, 20, 9, 34, 205, 202, 4, 223,
+ 38, 4, 176, 88, 20, 9, 34, 205, 202, 4, 223, 38, 4, 157, 217, 169, 52,
+ 20, 9, 34, 205, 202, 4, 91, 4, 176, 52, 20, 9, 34, 205, 202, 4, 91, 4,
+ 176, 88, 20, 9, 34, 205, 202, 4, 91, 4, 223, 38, 88, 20, 9, 34, 205, 202,
+ 4, 91, 4, 91, 52, 20, 9, 34, 205, 202, 4, 91, 4, 91, 88, 20, 9, 34, 206,
+ 87, 4, 176, 4, 176, 52, 20, 9, 34, 206, 87, 4, 176, 4, 176, 88, 20, 9,
+ 34, 206, 87, 4, 91, 4, 91, 52, 20, 9, 34, 204, 9, 4, 176, 4, 91, 52, 20,
+ 9, 34, 204, 9, 4, 176, 4, 91, 88, 20, 9, 34, 204, 9, 4, 223, 38, 4, 97,
+ 52, 20, 9, 34, 204, 9, 4, 91, 4, 221, 246, 52, 20, 9, 34, 204, 9, 4, 91,
+ 4, 221, 246, 88, 20, 9, 34, 204, 9, 4, 91, 4, 91, 52, 20, 9, 34, 204, 9,
+ 4, 91, 4, 91, 88, 20, 9, 34, 237, 251, 4, 176, 4, 157, 217, 169, 52, 20,
+ 9, 34, 237, 251, 4, 221, 246, 4, 91, 52, 20, 9, 34, 237, 251, 4, 221,
+ 246, 4, 91, 88, 20, 9, 34, 200, 152, 4, 91, 4, 176, 52, 20, 9, 34, 200,
+ 152, 4, 91, 4, 176, 88, 20, 9, 34, 200, 152, 4, 91, 4, 91, 88, 20, 9, 34,
+ 200, 152, 4, 91, 4, 97, 52, 20, 9, 34, 251, 58, 4, 223, 38, 4, 91, 52,
+ 20, 9, 34, 251, 58, 4, 91, 4, 91, 52, 20, 9, 34, 251, 58, 4, 91, 4, 91,
+ 88, 20, 9, 34, 251, 58, 4, 91, 4, 157, 217, 169, 52, 20, 9, 34, 231, 80,
+ 4, 91, 4, 91, 52, 20, 9, 34, 231, 80, 4, 91, 4, 97, 52, 20, 9, 34, 231,
+ 80, 4, 91, 4, 157, 217, 169, 52, 20, 9, 34, 233, 35, 4, 221, 246, 4, 91,
+ 52, 20, 9, 34, 233, 35, 4, 221, 246, 4, 91, 88, 20, 9, 34, 208, 233, 4,
+ 91, 4, 176, 52, 20, 9, 34, 208, 233, 4, 91, 4, 91, 52, 20, 9, 34, 220,
+ 95, 4, 176, 4, 91, 52, 20, 9, 34, 220, 95, 4, 176, 4, 97, 52, 20, 9, 34,
+ 220, 95, 4, 176, 4, 157, 217, 169, 52, 20, 9, 34, 220, 95, 4, 223, 38, 4,
+ 223, 38, 88, 20, 9, 34, 220, 95, 4, 223, 38, 4, 223, 38, 52, 20, 9, 34,
+ 220, 95, 4, 221, 246, 4, 91, 52, 20, 9, 34, 220, 95, 4, 221, 246, 4, 91,
+ 88, 20, 9, 34, 220, 95, 4, 91, 4, 176, 52, 20, 9, 34, 220, 95, 4, 91, 4,
+ 176, 88, 20, 9, 34, 91, 4, 176, 4, 223, 38, 88, 20, 9, 34, 91, 4, 176, 4,
+ 91, 88, 20, 9, 34, 91, 4, 176, 4, 97, 52, 20, 9, 34, 91, 4, 223, 38, 4,
+ 176, 88, 20, 9, 34, 91, 4, 223, 38, 4, 91, 88, 20, 9, 34, 91, 4, 221,
+ 246, 4, 223, 38, 88, 20, 9, 34, 91, 4, 221, 246, 4, 91, 88, 20, 9, 34,
+ 91, 4, 223, 38, 4, 221, 246, 88, 20, 9, 34, 229, 221, 4, 91, 4, 223, 38,
+ 88, 20, 9, 34, 229, 221, 4, 91, 4, 91, 88, 20, 9, 34, 213, 124, 4, 176,
+ 4, 91, 88, 20, 9, 34, 213, 124, 4, 176, 4, 157, 217, 169, 52, 20, 9, 34,
+ 213, 124, 4, 223, 38, 4, 91, 52, 20, 9, 34, 213, 124, 4, 223, 38, 4, 91,
+ 88, 20, 9, 34, 213, 124, 4, 223, 38, 4, 157, 217, 169, 52, 20, 9, 34,
+ 213, 124, 4, 91, 4, 97, 52, 20, 9, 34, 213, 124, 4, 91, 4, 157, 217, 169,
+ 52, 20, 9, 34, 97, 4, 91, 4, 91, 52, 20, 9, 34, 97, 4, 91, 4, 91, 88, 20,
+ 9, 34, 248, 97, 4, 221, 246, 4, 97, 52, 20, 9, 34, 200, 50, 4, 223, 38,
+ 4, 97, 52, 20, 9, 34, 200, 50, 4, 223, 38, 4, 157, 217, 169, 52, 20, 9,
+ 34, 200, 50, 4, 221, 246, 4, 97, 52, 20, 9, 34, 200, 50, 4, 221, 246, 4,
+ 157, 217, 169, 52, 20, 9, 34, 200, 50, 4, 91, 4, 97, 52, 20, 9, 34, 200,
+ 50, 4, 91, 4, 157, 217, 169, 52, 20, 9, 34, 223, 38, 4, 91, 4, 97, 52,
+ 20, 9, 34, 223, 38, 4, 176, 4, 157, 217, 169, 52, 20, 9, 34, 223, 38, 4,
+ 91, 4, 157, 217, 169, 52, 20, 9, 34, 205, 202, 4, 221, 246, 4, 157, 217,
+ 169, 52, 20, 9, 34, 206, 87, 4, 176, 4, 97, 52, 20, 9, 34, 204, 9, 4,
+ 176, 4, 97, 52, 20, 9, 34, 237, 251, 4, 176, 4, 97, 52, 20, 9, 34, 220,
+ 95, 4, 223, 38, 4, 97, 52, 20, 9, 34, 220, 95, 4, 91, 4, 97, 52, 20, 9,
+ 34, 97, 4, 176, 4, 97, 52, 20, 9, 34, 97, 4, 223, 38, 4, 97, 52, 20, 9,
+ 34, 97, 4, 91, 4, 97, 52, 20, 9, 34, 91, 4, 91, 4, 97, 52, 20, 9, 34,
+ 208, 233, 4, 91, 4, 97, 52, 20, 9, 34, 213, 124, 4, 176, 4, 97, 52, 20,
+ 9, 34, 208, 233, 4, 91, 4, 176, 88, 20, 9, 34, 220, 95, 4, 176, 4, 91,
+ 88, 20, 9, 34, 251, 58, 4, 91, 4, 97, 52, 20, 9, 34, 222, 140, 4, 91, 4,
+ 97, 52, 20, 9, 34, 213, 124, 4, 223, 38, 4, 176, 88, 20, 9, 34, 91, 4,
+ 221, 246, 4, 97, 52, 20, 9, 34, 220, 95, 4, 223, 38, 4, 91, 88, 20, 9,
+ 34, 222, 140, 4, 91, 4, 91, 52, 20, 9, 34, 220, 95, 4, 223, 38, 4, 91,
+ 52, 20, 9, 34, 213, 124, 4, 223, 38, 4, 176, 52, 20, 9, 34, 223, 38, 4,
+ 176, 4, 97, 52, 20, 9, 34, 176, 4, 223, 38, 4, 97, 52, 20, 9, 34, 91, 4,
+ 223, 38, 4, 97, 52, 20, 9, 34, 233, 35, 4, 91, 4, 97, 52, 20, 9, 34, 248,
+ 97, 4, 176, 4, 97, 52, 20, 9, 34, 222, 140, 4, 91, 4, 91, 88, 20, 9, 34,
+ 251, 58, 4, 223, 38, 4, 91, 88, 20, 9, 34, 206, 87, 4, 91, 4, 91, 88, 20,
+ 9, 34, 205, 202, 4, 221, 246, 4, 97, 52, 20, 9, 34, 213, 124, 4, 223, 38,
+ 4, 97, 52, 20, 9, 34, 206, 58, 197, 5, 250, 62, 221, 80, 201, 239, 3, 72,
+ 20, 9, 34, 208, 229, 197, 5, 250, 62, 221, 80, 201, 239, 3, 72, 20, 9,
+ 34, 251, 7, 72, 20, 9, 34, 251, 41, 72, 20, 9, 34, 216, 58, 72, 20, 9,
+ 34, 206, 59, 72, 20, 9, 34, 208, 24, 72, 20, 9, 34, 251, 29, 72, 20, 9,
+ 34, 194, 139, 72, 20, 9, 34, 206, 58, 72, 20, 9, 34, 206, 57, 251, 29,
+ 194, 138, 9, 34, 223, 53, 207, 143, 57, 9, 34, 248, 4, 250, 129, 250,
+ 130, 65, 205, 188, 65, 205, 77, 65, 205, 9, 65, 204, 254, 65, 204, 243,
+ 65, 204, 232, 65, 204, 221, 65, 204, 210, 65, 204, 199, 65, 205, 187, 65,
+ 205, 176, 65, 205, 165, 65, 205, 154, 65, 205, 143, 65, 205, 132, 65,
+ 205, 121, 209, 105, 232, 136, 39, 84, 242, 38, 209, 105, 232, 136, 39,
+ 84, 149, 242, 38, 209, 105, 232, 136, 39, 84, 149, 232, 71, 201, 238,
+ 209, 105, 232, 136, 39, 84, 242, 47, 209, 105, 232, 136, 39, 84, 204,
+ 180, 209, 105, 232, 136, 39, 84, 233, 204, 77, 209, 105, 232, 136, 39,
+ 84, 208, 159, 77, 209, 105, 232, 136, 39, 84, 46, 62, 219, 247, 186, 209,
+ 105, 232, 136, 39, 84, 51, 62, 219, 247, 247, 162, 209, 105, 232, 136,
+ 39, 84, 229, 5, 234, 105, 38, 34, 46, 230, 78, 38, 34, 51, 230, 78, 38,
+ 55, 199, 91, 46, 230, 78, 38, 55, 199, 91, 51, 230, 78, 38, 217, 215, 46,
+ 230, 78, 38, 217, 215, 51, 230, 78, 38, 239, 9, 217, 214, 38, 34, 46,
+ 138, 63, 38, 34, 51, 138, 63, 38, 199, 91, 46, 138, 63, 38, 199, 91, 51,
+ 138, 63, 38, 217, 215, 46, 138, 63, 38, 217, 215, 51, 138, 63, 38, 239,
+ 9, 217, 215, 63, 38, 42, 199, 61, 46, 230, 78, 38, 42, 199, 61, 51, 230,
+ 78, 209, 105, 232, 136, 39, 84, 103, 78, 220, 40, 209, 105, 232, 136, 39,
+ 84, 234, 100, 237, 185, 209, 105, 232, 136, 39, 84, 234, 89, 237, 185,
+ 209, 105, 232, 136, 39, 84, 132, 219, 175, 209, 105, 232, 136, 39, 84,
+ 194, 121, 132, 219, 175, 209, 105, 232, 136, 39, 84, 46, 210, 230, 209,
+ 105, 232, 136, 39, 84, 51, 210, 230, 209, 105, 232, 136, 39, 84, 46, 238,
+ 138, 186, 209, 105, 232, 136, 39, 84, 51, 238, 138, 186, 209, 105, 232,
+ 136, 39, 84, 46, 198, 237, 204, 2, 186, 209, 105, 232, 136, 39, 84, 51,
+ 198, 237, 204, 2, 186, 209, 105, 232, 136, 39, 84, 46, 60, 219, 247, 186,
+ 209, 105, 232, 136, 39, 84, 51, 60, 219, 247, 186, 209, 105, 232, 136,
+ 39, 84, 46, 55, 250, 208, 186, 209, 105, 232, 136, 39, 84, 51, 55, 250,
+ 208, 186, 209, 105, 232, 136, 39, 84, 46, 250, 208, 186, 209, 105, 232,
+ 136, 39, 84, 51, 250, 208, 186, 209, 105, 232, 136, 39, 84, 46, 238, 224,
+ 186, 209, 105, 232, 136, 39, 84, 51, 238, 224, 186, 209, 105, 232, 136,
+ 39, 84, 46, 62, 238, 224, 186, 209, 105, 232, 136, 39, 84, 51, 62, 238,
+ 224, 186, 204, 155, 236, 114, 62, 204, 155, 236, 114, 209, 105, 232, 136,
+ 39, 84, 46, 50, 186, 209, 105, 232, 136, 39, 84, 51, 50, 186, 237, 184,
+ 211, 109, 246, 134, 211, 109, 194, 121, 211, 109, 55, 194, 121, 211, 109,
+ 237, 184, 132, 219, 175, 246, 134, 132, 219, 175, 194, 121, 132, 219,
+ 175, 2, 242, 38, 2, 149, 242, 38, 2, 232, 71, 201, 238, 2, 204, 180, 2,
+ 242, 47, 2, 208, 159, 77, 2, 233, 204, 77, 2, 234, 100, 237, 185, 2, 46,
+ 210, 230, 2, 51, 210, 230, 2, 46, 238, 138, 186, 2, 51, 238, 138, 186, 2,
+ 46, 198, 237, 204, 2, 186, 2, 51, 198, 237, 204, 2, 186, 2, 31, 57, 2,
+ 250, 229, 2, 250, 37, 2, 102, 57, 2, 228, 110, 2, 219, 240, 57, 2, 230,
+ 204, 57, 2, 234, 30, 57, 2, 207, 169, 202, 189, 2, 236, 127, 57, 2, 210,
+ 133, 57, 2, 242, 36, 250, 26, 9, 233, 57, 72, 20, 9, 200, 103, 4, 233,
+ 57, 58, 9, 237, 214, 72, 20, 9, 200, 148, 232, 108, 9, 222, 85, 72, 20,
+ 9, 233, 59, 72, 20, 9, 233, 59, 217, 35, 20, 9, 237, 216, 72, 20, 9, 237,
+ 216, 217, 35, 20, 9, 222, 87, 72, 20, 9, 222, 87, 217, 35, 20, 9, 204,
+ 55, 72, 20, 9, 204, 55, 217, 35, 20, 9, 201, 132, 72, 20, 9, 201, 132,
+ 217, 35, 20, 9, 1, 230, 67, 72, 20, 9, 1, 157, 4, 217, 210, 95, 72, 20,
+ 9, 1, 157, 4, 217, 210, 95, 52, 20, 9, 1, 157, 4, 230, 67, 95, 72, 20, 9,
+ 1, 157, 4, 230, 67, 95, 52, 20, 9, 1, 194, 120, 4, 230, 67, 95, 72, 20,
+ 9, 1, 194, 120, 4, 230, 67, 95, 52, 20, 9, 1, 157, 4, 230, 67, 248, 84,
+ 72, 20, 9, 1, 157, 4, 230, 67, 248, 84, 52, 20, 9, 1, 97, 4, 230, 67, 95,
+ 72, 20, 9, 1, 97, 4, 230, 67, 95, 52, 20, 9, 1, 97, 4, 230, 67, 95, 88,
+ 20, 9, 1, 97, 4, 230, 67, 95, 217, 35, 20, 9, 1, 157, 72, 20, 9, 1, 157,
+ 52, 20, 9, 1, 248, 97, 72, 20, 9, 1, 248, 97, 52, 20, 9, 1, 248, 97, 88,
+ 20, 9, 1, 248, 97, 217, 35, 20, 9, 1, 200, 50, 217, 134, 72, 20, 9, 1,
+ 200, 50, 217, 134, 52, 20, 9, 1, 200, 50, 72, 20, 9, 1, 200, 50, 52, 20,
+ 9, 1, 200, 50, 88, 20, 9, 1, 200, 50, 217, 35, 20, 9, 1, 199, 221, 72,
+ 20, 9, 1, 199, 221, 52, 20, 9, 1, 199, 221, 88, 20, 9, 1, 199, 221, 217,
+ 35, 20, 9, 1, 223, 38, 72, 20, 9, 1, 223, 38, 52, 20, 9, 1, 223, 38, 88,
+ 20, 9, 1, 223, 38, 217, 35, 20, 9, 1, 176, 72, 20, 9, 1, 176, 52, 20, 9,
+ 1, 176, 88, 20, 9, 1, 176, 217, 35, 20, 9, 1, 221, 246, 72, 20, 9, 1,
+ 221, 246, 52, 20, 9, 1, 221, 246, 88, 20, 9, 1, 221, 246, 217, 35, 20, 9,
+ 1, 237, 228, 72, 20, 9, 1, 237, 228, 52, 20, 9, 1, 199, 233, 72, 20, 9,
+ 1, 199, 233, 52, 20, 9, 1, 207, 222, 72, 20, 9, 1, 207, 222, 52, 20, 9,
+ 1, 192, 104, 72, 20, 9, 1, 192, 104, 52, 20, 9, 1, 205, 202, 72, 20, 9,
+ 1, 205, 202, 52, 20, 9, 1, 205, 202, 88, 20, 9, 1, 205, 202, 217, 35, 20,
+ 9, 1, 204, 9, 72, 20, 9, 1, 204, 9, 52, 20, 9, 1, 204, 9, 88, 20, 9, 1,
+ 204, 9, 217, 35, 20, 9, 1, 206, 87, 72, 20, 9, 1, 206, 87, 52, 20, 9, 1,
+ 206, 87, 88, 20, 9, 1, 206, 87, 217, 35, 20, 9, 1, 237, 251, 72, 20, 9,
+ 1, 237, 251, 52, 20, 9, 1, 237, 251, 88, 20, 9, 1, 237, 251, 217, 35, 20,
+ 9, 1, 200, 152, 72, 20, 9, 1, 200, 152, 52, 20, 9, 1, 200, 152, 88, 20,
+ 9, 1, 200, 152, 217, 35, 20, 9, 1, 192, 107, 72, 20, 9, 1, 192, 107, 52,
+ 20, 9, 1, 192, 107, 88, 20, 9, 1, 192, 107, 217, 35, 20, 9, 1, 251, 58,
+ 72, 20, 9, 1, 251, 58, 52, 20, 9, 1, 251, 58, 88, 20, 9, 1, 251, 58, 217,
+ 35, 20, 9, 1, 231, 80, 72, 20, 9, 1, 231, 80, 52, 20, 9, 1, 231, 80, 88,
+ 20, 9, 1, 231, 80, 217, 35, 20, 9, 1, 233, 35, 72, 20, 9, 1, 233, 35, 52,
+ 20, 9, 1, 233, 35, 88, 20, 9, 1, 233, 35, 217, 35, 20, 9, 1, 208, 233,
+ 72, 20, 9, 1, 208, 233, 52, 20, 9, 1, 208, 233, 88, 20, 9, 1, 208, 233,
+ 217, 35, 20, 9, 1, 222, 140, 72, 20, 9, 1, 222, 140, 52, 20, 9, 1, 222,
+ 140, 88, 20, 9, 1, 222, 140, 217, 35, 20, 9, 1, 220, 95, 72, 20, 9, 1,
+ 220, 95, 52, 20, 9, 1, 220, 95, 88, 20, 9, 1, 220, 95, 217, 35, 20, 9, 1,
+ 91, 72, 20, 9, 1, 91, 52, 20, 9, 1, 91, 88, 20, 9, 1, 91, 217, 35, 20, 9,
+ 1, 213, 124, 72, 20, 9, 1, 213, 124, 52, 20, 9, 1, 213, 124, 88, 20, 9,
+ 1, 213, 124, 217, 35, 20, 9, 1, 229, 221, 72, 20, 9, 1, 229, 221, 52, 20,
+ 9, 1, 229, 221, 88, 20, 9, 1, 229, 221, 217, 35, 20, 9, 1, 194, 120, 72,
+ 20, 9, 1, 194, 120, 52, 20, 9, 1, 157, 217, 169, 72, 20, 9, 1, 157, 217,
+ 169, 52, 20, 9, 1, 97, 72, 20, 9, 1, 97, 52, 20, 9, 1, 97, 88, 20, 9, 1,
+ 97, 217, 35, 20, 9, 34, 220, 95, 4, 157, 4, 217, 210, 95, 72, 20, 9, 34,
+ 220, 95, 4, 157, 4, 217, 210, 95, 52, 20, 9, 34, 220, 95, 4, 157, 4, 230,
+ 67, 95, 72, 20, 9, 34, 220, 95, 4, 157, 4, 230, 67, 95, 52, 20, 9, 34,
+ 220, 95, 4, 157, 4, 230, 67, 248, 84, 72, 20, 9, 34, 220, 95, 4, 157, 4,
+ 230, 67, 248, 84, 52, 20, 9, 34, 220, 95, 4, 157, 72, 20, 9, 34, 220, 95,
+ 4, 157, 52, 20, 192, 77, 194, 61, 213, 136, 202, 160, 183, 233, 204, 77,
+ 183, 208, 142, 77, 183, 31, 57, 183, 236, 127, 57, 183, 210, 133, 57,
+ 183, 250, 229, 183, 250, 147, 183, 46, 210, 230, 183, 51, 210, 230, 183,
+ 250, 37, 183, 102, 57, 183, 242, 38, 183, 228, 110, 183, 232, 71, 201,
+ 238, 183, 202, 189, 183, 17, 192, 76, 183, 17, 101, 183, 17, 104, 183,
+ 17, 133, 183, 17, 134, 183, 17, 151, 183, 17, 170, 183, 17, 179, 183, 17,
+ 174, 183, 17, 182, 183, 242, 47, 183, 204, 180, 183, 219, 240, 57, 183,
+ 234, 30, 57, 183, 230, 204, 57, 183, 208, 159, 77, 183, 242, 36, 250, 26,
+ 183, 8, 6, 1, 64, 183, 8, 6, 1, 249, 226, 183, 8, 6, 1, 247, 52, 183, 8,
+ 6, 1, 238, 95, 183, 8, 6, 1, 71, 183, 8, 6, 1, 233, 163, 183, 8, 6, 1,
+ 232, 44, 183, 8, 6, 1, 230, 124, 183, 8, 6, 1, 70, 183, 8, 6, 1, 223, 65,
+ 183, 8, 6, 1, 222, 184, 183, 8, 6, 1, 165, 183, 8, 6, 1, 218, 236, 183,
+ 8, 6, 1, 215, 151, 183, 8, 6, 1, 74, 183, 8, 6, 1, 211, 93, 183, 8, 6, 1,
+ 208, 247, 183, 8, 6, 1, 150, 183, 8, 6, 1, 206, 158, 183, 8, 6, 1, 200,
+ 228, 183, 8, 6, 1, 68, 183, 8, 6, 1, 196, 236, 183, 8, 6, 1, 194, 202,
+ 183, 8, 6, 1, 193, 223, 183, 8, 6, 1, 193, 148, 183, 8, 6, 1, 192, 155,
+ 183, 46, 50, 186, 183, 207, 169, 202, 189, 183, 51, 50, 186, 183, 242,
+ 122, 251, 143, 183, 132, 219, 175, 183, 230, 211, 251, 143, 183, 8, 2, 1,
+ 64, 183, 8, 2, 1, 249, 226, 183, 8, 2, 1, 247, 52, 183, 8, 2, 1, 238, 95,
+ 183, 8, 2, 1, 71, 183, 8, 2, 1, 233, 163, 183, 8, 2, 1, 232, 44, 183, 8,
+ 2, 1, 230, 124, 183, 8, 2, 1, 70, 183, 8, 2, 1, 223, 65, 183, 8, 2, 1,
+ 222, 184, 183, 8, 2, 1, 165, 183, 8, 2, 1, 218, 236, 183, 8, 2, 1, 215,
+ 151, 183, 8, 2, 1, 74, 183, 8, 2, 1, 211, 93, 183, 8, 2, 1, 208, 247,
+ 183, 8, 2, 1, 150, 183, 8, 2, 1, 206, 158, 183, 8, 2, 1, 200, 228, 183,
+ 8, 2, 1, 68, 183, 8, 2, 1, 196, 236, 183, 8, 2, 1, 194, 202, 183, 8, 2,
+ 1, 193, 223, 183, 8, 2, 1, 193, 148, 183, 8, 2, 1, 192, 155, 183, 46,
+ 238, 138, 186, 183, 84, 219, 175, 183, 51, 238, 138, 186, 183, 199, 90,
+ 183, 46, 62, 210, 230, 183, 51, 62, 210, 230, 145, 149, 232, 71, 201,
+ 238, 145, 46, 238, 224, 186, 145, 51, 238, 224, 186, 145, 149, 242, 38,
+ 145, 75, 85, 236, 114, 145, 75, 1, 194, 36, 145, 75, 1, 2, 64, 145, 75,
+ 1, 2, 70, 145, 75, 1, 2, 68, 145, 75, 1, 2, 71, 145, 75, 1, 2, 74, 145,
+ 75, 1, 2, 168, 145, 75, 1, 2, 192, 214, 145, 75, 1, 2, 193, 1, 145, 75,
+ 1, 2, 198, 45, 145, 222, 82, 209, 76, 202, 174, 77, 145, 75, 1, 64, 145,
+ 75, 1, 70, 145, 75, 1, 68, 145, 75, 1, 71, 145, 75, 1, 74, 145, 75, 1,
+ 160, 145, 75, 1, 221, 204, 145, 75, 1, 221, 33, 145, 75, 1, 222, 57, 145,
+ 75, 1, 221, 113, 145, 75, 1, 188, 145, 75, 1, 203, 125, 145, 75, 1, 201,
+ 184, 145, 75, 1, 205, 223, 145, 75, 1, 202, 212, 145, 75, 1, 189, 145,
+ 75, 1, 199, 128, 145, 75, 1, 198, 45, 145, 75, 1, 200, 79, 145, 75, 1,
+ 155, 145, 75, 1, 181, 145, 75, 1, 214, 60, 145, 75, 1, 213, 22, 145, 75,
+ 1, 214, 214, 145, 75, 1, 213, 142, 145, 75, 1, 144, 145, 75, 1, 229, 178,
+ 145, 75, 1, 228, 181, 145, 75, 1, 229, 255, 145, 75, 1, 229, 43, 145, 75,
+ 1, 172, 145, 75, 1, 216, 175, 145, 75, 1, 215, 241, 145, 75, 1, 217, 48,
+ 145, 75, 1, 216, 91, 145, 75, 1, 168, 145, 75, 1, 192, 214, 145, 75, 1,
+ 193, 1, 145, 75, 1, 167, 145, 75, 1, 207, 151, 145, 75, 1, 206, 218, 145,
+ 75, 1, 208, 7, 145, 75, 1, 207, 55, 145, 75, 1, 194, 169, 145, 75, 1,
+ 215, 151, 145, 75, 195, 248, 202, 174, 77, 145, 75, 204, 185, 202, 174,
+ 77, 145, 30, 232, 247, 145, 30, 1, 221, 151, 145, 30, 1, 202, 84, 145,
+ 30, 1, 221, 144, 145, 30, 1, 214, 45, 145, 30, 1, 214, 43, 145, 30, 1,
+ 214, 42, 145, 30, 1, 199, 103, 145, 30, 1, 202, 73, 145, 30, 1, 207, 133,
+ 145, 30, 1, 207, 128, 145, 30, 1, 207, 125, 145, 30, 1, 207, 118, 145,
+ 30, 1, 207, 113, 145, 30, 1, 207, 108, 145, 30, 1, 207, 119, 145, 30, 1,
+ 207, 131, 145, 30, 1, 216, 153, 145, 30, 1, 210, 36, 145, 30, 1, 202, 81,
+ 145, 30, 1, 210, 25, 145, 30, 1, 203, 64, 145, 30, 1, 202, 78, 145, 30,
+ 1, 223, 247, 145, 30, 1, 242, 144, 145, 30, 1, 202, 88, 145, 30, 1, 242,
+ 211, 145, 30, 1, 221, 225, 145, 30, 1, 199, 198, 145, 30, 1, 210, 75,
+ 145, 30, 1, 229, 162, 145, 30, 1, 64, 145, 30, 1, 251, 108, 145, 30, 1,
+ 168, 145, 30, 1, 193, 118, 145, 30, 1, 234, 50, 145, 30, 1, 71, 145, 30,
+ 1, 193, 56, 145, 30, 1, 193, 69, 145, 30, 1, 74, 145, 30, 1, 194, 169,
+ 145, 30, 1, 194, 160, 145, 30, 1, 212, 0, 145, 30, 1, 193, 1, 145, 30, 1,
+ 68, 145, 30, 1, 194, 93, 145, 30, 1, 194, 111, 145, 30, 1, 194, 72, 145,
+ 30, 1, 192, 214, 145, 30, 1, 233, 230, 145, 30, 1, 193, 22, 145, 30, 1,
+ 70, 183, 246, 140, 57, 183, 209, 143, 57, 183, 213, 111, 57, 183, 217,
+ 214, 183, 247, 136, 161, 183, 193, 60, 57, 183, 194, 19, 57, 145, 232,
+ 131, 152, 196, 105, 145, 114, 54, 145, 197, 30, 54, 145, 94, 54, 145,
+ 235, 92, 54, 145, 60, 202, 106, 145, 62, 242, 130, 223, 134, 250, 193,
+ 250, 219, 223, 134, 250, 193, 204, 165, 223, 134, 250, 193, 200, 15, 212,
+ 19, 207, 193, 246, 99, 207, 193, 246, 99, 32, 76, 5, 249, 210, 64, 32,
+ 76, 5, 249, 179, 71, 32, 76, 5, 249, 188, 70, 32, 76, 5, 249, 156, 74,
+ 32, 76, 5, 249, 206, 68, 32, 76, 5, 249, 225, 238, 0, 32, 76, 5, 249,
+ 172, 237, 116, 32, 76, 5, 249, 212, 237, 16, 32, 76, 5, 249, 202, 236,
+ 146, 32, 76, 5, 249, 166, 235, 62, 32, 76, 5, 249, 160, 223, 62, 32, 76,
+ 5, 249, 171, 223, 41, 32, 76, 5, 249, 181, 222, 233, 32, 76, 5, 249, 152,
+ 222, 214, 32, 76, 5, 249, 140, 160, 32, 76, 5, 249, 173, 222, 57, 32, 76,
+ 5, 249, 150, 221, 204, 32, 76, 5, 249, 147, 221, 113, 32, 76, 5, 249,
+ 136, 221, 33, 32, 76, 5, 249, 137, 172, 32, 76, 5, 249, 203, 217, 48, 32,
+ 76, 5, 249, 144, 216, 175, 32, 76, 5, 249, 201, 216, 91, 32, 76, 5, 249,
+ 193, 215, 241, 32, 76, 5, 249, 214, 181, 32, 76, 5, 249, 192, 214, 214,
+ 32, 76, 5, 249, 186, 214, 60, 32, 76, 5, 249, 165, 213, 142, 32, 76, 5,
+ 249, 162, 213, 22, 32, 76, 5, 249, 221, 166, 32, 76, 5, 249, 145, 210,
+ 181, 32, 76, 5, 249, 178, 210, 51, 32, 76, 5, 249, 205, 209, 198, 32, 76,
+ 5, 249, 167, 209, 51, 32, 76, 5, 249, 200, 208, 239, 32, 76, 5, 249, 139,
+ 208, 219, 32, 76, 5, 249, 195, 208, 201, 32, 76, 5, 249, 184, 208, 189,
+ 32, 76, 5, 249, 157, 167, 32, 76, 5, 249, 189, 208, 7, 32, 76, 5, 249,
+ 164, 207, 151, 32, 76, 5, 249, 223, 207, 55, 32, 76, 5, 249, 190, 206,
+ 218, 32, 76, 5, 249, 185, 188, 32, 76, 5, 249, 208, 205, 223, 32, 76, 5,
+ 249, 176, 203, 125, 32, 76, 5, 249, 204, 202, 212, 32, 76, 5, 249, 159,
+ 201, 184, 32, 76, 5, 249, 158, 189, 32, 76, 5, 249, 219, 200, 79, 32, 76,
+ 5, 249, 180, 199, 128, 32, 76, 5, 249, 217, 155, 32, 76, 5, 249, 148,
+ 198, 45, 32, 76, 5, 249, 163, 194, 169, 32, 76, 5, 249, 142, 194, 111,
+ 32, 76, 5, 249, 177, 194, 72, 32, 76, 5, 249, 175, 194, 36, 32, 76, 5,
+ 249, 199, 192, 112, 32, 76, 5, 249, 143, 192, 85, 32, 76, 5, 249, 196,
+ 192, 8, 32, 76, 5, 249, 191, 254, 42, 32, 76, 5, 249, 174, 253, 186, 32,
+ 76, 5, 249, 133, 250, 8, 32, 76, 5, 249, 146, 235, 27, 32, 76, 5, 249,
+ 129, 235, 26, 32, 76, 5, 249, 169, 212, 210, 32, 76, 5, 249, 187, 209,
+ 49, 32, 76, 5, 249, 155, 209, 53, 32, 76, 5, 249, 141, 208, 70, 32, 76,
+ 5, 249, 183, 208, 69, 32, 76, 5, 249, 149, 207, 48, 32, 76, 5, 249, 151,
+ 200, 175, 32, 76, 5, 249, 131, 197, 248, 32, 76, 5, 249, 128, 104, 32,
+ 76, 16, 249, 198, 32, 76, 16, 249, 197, 32, 76, 16, 249, 194, 32, 76, 16,
+ 249, 182, 32, 76, 16, 249, 170, 32, 76, 16, 249, 168, 32, 76, 16, 249,
+ 161, 32, 76, 16, 249, 154, 32, 76, 16, 249, 153, 32, 76, 16, 249, 138,
+ 32, 76, 16, 249, 135, 32, 76, 16, 249, 134, 32, 76, 16, 249, 132, 32, 76,
+ 16, 249, 130, 32, 76, 153, 249, 127, 217, 160, 32, 76, 153, 249, 126,
+ 194, 23, 32, 76, 153, 249, 125, 237, 98, 32, 76, 153, 249, 124, 234, 27,
+ 32, 76, 153, 249, 123, 217, 127, 32, 76, 153, 249, 122, 202, 27, 32, 76,
+ 153, 249, 121, 233, 211, 32, 76, 153, 249, 120, 208, 34, 32, 76, 153,
+ 249, 119, 204, 11, 32, 76, 153, 249, 118, 229, 247, 32, 76, 153, 249,
+ 117, 202, 168, 32, 76, 153, 249, 116, 247, 218, 32, 76, 153, 249, 115,
+ 238, 205, 32, 76, 153, 249, 114, 247, 108, 32, 76, 153, 249, 113, 194,
+ 81, 32, 76, 153, 249, 112, 248, 190, 32, 76, 153, 249, 111, 211, 221, 32,
+ 76, 153, 249, 110, 202, 138, 32, 76, 153, 249, 109, 238, 103, 32, 76,
+ 216, 45, 249, 108, 222, 108, 32, 76, 216, 45, 249, 107, 222, 119, 32, 76,
+ 153, 249, 106, 211, 236, 32, 76, 153, 249, 105, 194, 48, 32, 76, 153,
+ 249, 104, 32, 76, 216, 45, 249, 103, 250, 105, 32, 76, 216, 45, 249, 102,
+ 216, 253, 32, 76, 153, 249, 101, 247, 135, 32, 76, 153, 249, 100, 230,
+ 245, 32, 76, 153, 249, 99, 32, 76, 153, 249, 98, 194, 14, 32, 76, 153,
+ 249, 97, 32, 76, 153, 249, 96, 32, 76, 153, 249, 95, 228, 208, 32, 76,
+ 153, 249, 94, 32, 76, 153, 249, 93, 32, 76, 153, 249, 92, 32, 76, 216,
+ 45, 249, 90, 198, 7, 32, 76, 153, 249, 89, 32, 76, 153, 249, 88, 32, 76,
+ 153, 249, 87, 242, 78, 32, 76, 153, 249, 86, 32, 76, 153, 249, 85, 32,
+ 76, 153, 249, 84, 231, 189, 32, 76, 153, 249, 83, 250, 90, 32, 76, 153,
+ 249, 82, 32, 76, 153, 249, 81, 32, 76, 153, 249, 80, 32, 76, 153, 249,
+ 79, 32, 76, 153, 249, 78, 32, 76, 153, 249, 77, 32, 76, 153, 249, 76, 32,
+ 76, 153, 249, 75, 32, 76, 153, 249, 74, 32, 76, 153, 249, 73, 216, 37,
+ 32, 76, 153, 249, 72, 32, 76, 153, 249, 71, 198, 195, 32, 76, 153, 249,
+ 70, 32, 76, 153, 249, 69, 32, 76, 153, 249, 68, 32, 76, 153, 249, 67, 32,
+ 76, 153, 249, 66, 32, 76, 153, 249, 65, 32, 76, 153, 249, 64, 32, 76,
+ 153, 249, 63, 32, 76, 153, 249, 62, 32, 76, 153, 249, 61, 32, 76, 153,
+ 249, 60, 32, 76, 153, 249, 59, 229, 210, 32, 76, 153, 249, 38, 232, 145,
+ 32, 76, 153, 249, 35, 248, 165, 32, 76, 153, 249, 30, 202, 146, 32, 76,
+ 153, 249, 29, 54, 32, 76, 153, 249, 28, 32, 76, 153, 249, 27, 201, 60,
+ 32, 76, 153, 249, 26, 32, 76, 153, 249, 25, 32, 76, 153, 249, 24, 194,
+ 76, 242, 254, 32, 76, 153, 249, 23, 242, 254, 32, 76, 153, 249, 22, 242,
+ 255, 232, 104, 32, 76, 153, 249, 21, 194, 79, 32, 76, 153, 249, 20, 32,
+ 76, 153, 249, 19, 32, 76, 216, 45, 249, 18, 236, 207, 32, 76, 153, 249,
+ 17, 32, 76, 153, 249, 16, 32, 76, 153, 249, 14, 32, 76, 153, 249, 13, 32,
+ 76, 153, 249, 12, 32, 76, 153, 249, 11, 237, 188, 32, 76, 153, 249, 10,
+ 32, 76, 153, 249, 9, 32, 76, 153, 249, 8, 32, 76, 153, 249, 7, 32, 76,
+ 153, 249, 6, 32, 76, 153, 196, 52, 249, 91, 32, 76, 153, 196, 52, 249,
+ 58, 32, 76, 153, 196, 52, 249, 57, 32, 76, 153, 196, 52, 249, 56, 32, 76,
+ 153, 196, 52, 249, 55, 32, 76, 153, 196, 52, 249, 54, 32, 76, 153, 196,
+ 52, 249, 53, 32, 76, 153, 196, 52, 249, 52, 32, 76, 153, 196, 52, 249,
+ 51, 32, 76, 153, 196, 52, 249, 50, 32, 76, 153, 196, 52, 249, 49, 32, 76,
+ 153, 196, 52, 249, 48, 32, 76, 153, 196, 52, 249, 47, 32, 76, 153, 196,
+ 52, 249, 46, 32, 76, 153, 196, 52, 249, 45, 32, 76, 153, 196, 52, 249,
+ 44, 32, 76, 153, 196, 52, 249, 43, 32, 76, 153, 196, 52, 249, 42, 32, 76,
+ 153, 196, 52, 249, 41, 32, 76, 153, 196, 52, 249, 40, 32, 76, 153, 196,
+ 52, 249, 39, 32, 76, 153, 196, 52, 249, 37, 32, 76, 153, 196, 52, 249,
+ 36, 32, 76, 153, 196, 52, 249, 34, 32, 76, 153, 196, 52, 249, 33, 32, 76,
+ 153, 196, 52, 249, 32, 32, 76, 153, 196, 52, 249, 31, 32, 76, 153, 196,
+ 52, 249, 15, 32, 76, 153, 196, 52, 249, 5, 251, 101, 194, 11, 204, 166,
+ 219, 175, 251, 101, 194, 11, 204, 166, 236, 114, 251, 101, 242, 244, 77,
+ 251, 101, 31, 101, 251, 101, 31, 104, 251, 101, 31, 133, 251, 101, 31,
+ 134, 251, 101, 31, 151, 251, 101, 31, 170, 251, 101, 31, 179, 251, 101,
+ 31, 174, 251, 101, 31, 182, 251, 101, 31, 200, 30, 251, 101, 31, 197,
+ 239, 251, 101, 31, 199, 184, 251, 101, 31, 232, 126, 251, 101, 31, 233,
+ 3, 251, 101, 31, 203, 25, 251, 101, 31, 204, 140, 251, 101, 31, 234, 137,
+ 251, 101, 31, 214, 11, 251, 101, 31, 90, 228, 162, 251, 101, 31, 103,
+ 228, 162, 251, 101, 31, 112, 228, 162, 251, 101, 31, 232, 119, 228, 162,
+ 251, 101, 31, 232, 214, 228, 162, 251, 101, 31, 203, 41, 228, 162, 251,
+ 101, 31, 204, 146, 228, 162, 251, 101, 31, 234, 148, 228, 162, 251, 101,
+ 31, 214, 16, 228, 162, 251, 101, 31, 90, 180, 251, 101, 31, 103, 180,
+ 251, 101, 31, 112, 180, 251, 101, 31, 232, 119, 180, 251, 101, 31, 232,
+ 214, 180, 251, 101, 31, 203, 41, 180, 251, 101, 31, 204, 146, 180, 251,
+ 101, 31, 234, 148, 180, 251, 101, 31, 214, 16, 180, 251, 101, 31, 200,
+ 31, 180, 251, 101, 31, 197, 240, 180, 251, 101, 31, 199, 185, 180, 251,
+ 101, 31, 232, 127, 180, 251, 101, 31, 233, 4, 180, 251, 101, 31, 203, 26,
+ 180, 251, 101, 31, 204, 141, 180, 251, 101, 31, 234, 138, 180, 251, 101,
+ 31, 214, 12, 180, 251, 101, 194, 96, 248, 181, 197, 54, 251, 101, 194,
+ 96, 232, 226, 201, 149, 251, 101, 194, 96, 205, 212, 201, 149, 251, 101,
+ 194, 96, 199, 192, 201, 149, 251, 101, 194, 96, 232, 112, 201, 149, 251,
+ 101, 235, 65, 217, 44, 232, 226, 201, 149, 251, 101, 219, 156, 217, 44,
+ 232, 226, 201, 149, 251, 101, 217, 44, 205, 212, 201, 149, 251, 101, 217,
+ 44, 199, 192, 201, 149, 33, 251, 133, 250, 10, 90, 208, 167, 33, 251,
+ 133, 250, 10, 90, 230, 78, 33, 251, 133, 250, 10, 90, 235, 88, 33, 251,
+ 133, 250, 10, 151, 33, 251, 133, 250, 10, 233, 3, 33, 251, 133, 250, 10,
+ 232, 214, 228, 162, 33, 251, 133, 250, 10, 232, 214, 180, 33, 251, 133,
+ 250, 10, 233, 4, 180, 33, 251, 133, 250, 10, 232, 214, 200, 135, 33, 251,
+ 133, 250, 10, 200, 31, 200, 135, 33, 251, 133, 250, 10, 233, 4, 200, 135,
+ 33, 251, 133, 250, 10, 90, 228, 163, 200, 135, 33, 251, 133, 250, 10,
+ 232, 214, 228, 163, 200, 135, 33, 251, 133, 250, 10, 90, 199, 165, 200,
+ 135, 33, 251, 133, 250, 10, 232, 214, 199, 165, 200, 135, 33, 251, 133,
+ 250, 10, 232, 214, 202, 11, 33, 251, 133, 250, 10, 200, 31, 202, 11, 33,
+ 251, 133, 250, 10, 233, 4, 202, 11, 33, 251, 133, 250, 10, 90, 228, 163,
+ 202, 11, 33, 251, 133, 250, 10, 232, 214, 228, 163, 202, 11, 33, 251,
+ 133, 250, 10, 90, 199, 165, 202, 11, 33, 251, 133, 250, 10, 200, 31, 199,
+ 165, 202, 11, 33, 251, 133, 250, 10, 233, 4, 199, 165, 202, 11, 33, 251,
+ 133, 250, 10, 200, 31, 216, 94, 33, 251, 133, 229, 204, 90, 209, 217, 33,
+ 251, 133, 199, 208, 101, 33, 251, 133, 229, 200, 101, 33, 251, 133, 234,
+ 36, 104, 33, 251, 133, 199, 208, 104, 33, 251, 133, 238, 100, 103, 235,
+ 87, 33, 251, 133, 234, 36, 103, 235, 87, 33, 251, 133, 198, 161, 151, 33,
+ 251, 133, 198, 161, 200, 30, 33, 251, 133, 198, 161, 200, 31, 250, 249,
+ 20, 33, 251, 133, 229, 200, 200, 30, 33, 251, 133, 216, 242, 200, 30, 33,
+ 251, 133, 199, 208, 200, 30, 33, 251, 133, 199, 208, 199, 184, 33, 251,
+ 133, 198, 161, 233, 3, 33, 251, 133, 198, 161, 233, 4, 250, 249, 20, 33,
+ 251, 133, 229, 200, 233, 3, 33, 251, 133, 199, 208, 233, 3, 33, 251, 133,
+ 199, 208, 90, 228, 162, 33, 251, 133, 199, 208, 112, 228, 162, 33, 251,
+ 133, 234, 36, 232, 214, 228, 162, 33, 251, 133, 198, 161, 232, 214, 228,
+ 162, 33, 251, 133, 199, 208, 232, 214, 228, 162, 33, 251, 133, 246, 197,
+ 232, 214, 228, 162, 33, 251, 133, 215, 36, 232, 214, 228, 162, 33, 251,
+ 133, 199, 208, 90, 180, 33, 251, 133, 199, 208, 232, 214, 180, 33, 251,
+ 133, 237, 79, 232, 214, 216, 94, 33, 251, 133, 201, 226, 233, 4, 216, 94,
+ 33, 90, 138, 57, 33, 90, 138, 3, 250, 249, 20, 33, 103, 199, 189, 57, 33,
+ 112, 208, 166, 57, 33, 193, 67, 57, 33, 200, 136, 57, 33, 235, 89, 57,
+ 33, 212, 16, 57, 33, 103, 212, 15, 57, 33, 112, 212, 15, 57, 33, 232,
+ 119, 212, 15, 57, 33, 232, 214, 212, 15, 57, 33, 216, 236, 57, 33, 220,
+ 210, 248, 181, 57, 33, 219, 149, 57, 33, 211, 127, 57, 33, 193, 200, 57,
+ 33, 250, 68, 57, 33, 250, 85, 57, 33, 230, 220, 57, 33, 198, 121, 248,
+ 181, 57, 33, 192, 77, 57, 33, 90, 208, 168, 57, 33, 203, 66, 57, 33, 223,
+ 171, 57, 213, 131, 57, 207, 30, 204, 136, 57, 207, 30, 197, 70, 57, 207,
+ 30, 204, 172, 57, 207, 30, 204, 74, 57, 207, 30, 236, 222, 204, 74, 57,
+ 207, 30, 203, 90, 57, 207, 30, 237, 75, 57, 207, 30, 208, 151, 57, 207,
+ 30, 204, 153, 57, 207, 30, 235, 41, 57, 207, 30, 250, 62, 57, 207, 30,
+ 246, 133, 57, 250, 55, 109, 33, 16, 200, 101, 207, 153, 210, 89, 236,
+ 199, 3, 210, 170, 210, 89, 236, 199, 3, 209, 209, 229, 245, 210, 89, 236,
+ 199, 3, 200, 104, 229, 245, 210, 89, 236, 199, 3, 246, 220, 210, 89, 236,
+ 199, 3, 242, 206, 210, 89, 236, 199, 3, 194, 23, 210, 89, 236, 199, 3,
+ 229, 210, 210, 89, 236, 199, 3, 231, 181, 210, 89, 236, 199, 3, 199, 119,
+ 210, 89, 236, 199, 3, 54, 210, 89, 236, 199, 3, 247, 180, 210, 89, 236,
+ 199, 3, 203, 233, 210, 89, 236, 199, 3, 242, 71, 210, 89, 236, 199, 3,
+ 217, 159, 210, 89, 236, 199, 3, 217, 97, 210, 89, 236, 199, 3, 206, 6,
+ 210, 89, 236, 199, 3, 219, 204, 210, 89, 236, 199, 3, 247, 201, 210, 89,
+ 236, 199, 3, 246, 204, 209, 225, 210, 89, 236, 199, 3, 236, 128, 210, 89,
+ 236, 199, 3, 242, 44, 210, 89, 236, 199, 3, 202, 247, 210, 89, 236, 199,
+ 3, 242, 45, 210, 89, 236, 199, 3, 248, 105, 210, 89, 236, 199, 3, 203,
+ 220, 210, 89, 236, 199, 3, 228, 208, 210, 89, 236, 199, 3, 229, 168, 210,
+ 89, 236, 199, 3, 247, 103, 220, 16, 210, 89, 236, 199, 3, 246, 193, 210,
+ 89, 236, 199, 3, 208, 34, 210, 89, 236, 199, 3, 234, 196, 210, 89, 236,
+ 199, 3, 235, 97, 210, 89, 236, 199, 3, 198, 23, 210, 89, 236, 199, 3,
+ 248, 108, 210, 89, 236, 199, 3, 209, 226, 198, 195, 210, 89, 236, 199, 3,
+ 196, 18, 210, 89, 236, 199, 3, 210, 248, 210, 89, 236, 199, 3, 207, 19,
+ 210, 89, 236, 199, 3, 219, 188, 210, 89, 236, 199, 3, 211, 104, 248, 252,
+ 210, 89, 236, 199, 3, 232, 171, 210, 89, 236, 199, 3, 230, 212, 210, 89,
+ 236, 199, 3, 201, 227, 210, 89, 236, 199, 3, 2, 249, 237, 210, 89, 236,
+ 199, 3, 194, 121, 248, 203, 210, 89, 236, 199, 3, 38, 212, 18, 111, 218,
+ 249, 1, 64, 218, 249, 1, 71, 218, 249, 1, 249, 226, 218, 249, 1, 248, 55,
+ 218, 249, 1, 232, 44, 218, 249, 1, 238, 95, 218, 249, 1, 70, 218, 249, 1,
+ 194, 202, 218, 249, 1, 192, 155, 218, 249, 1, 199, 242, 218, 249, 1, 223,
+ 65, 218, 249, 1, 222, 184, 218, 249, 1, 208, 247, 218, 249, 1, 165, 218,
+ 249, 1, 218, 236, 218, 249, 1, 215, 151, 218, 249, 1, 216, 96, 218, 249,
+ 1, 213, 179, 218, 249, 1, 68, 218, 249, 1, 211, 93, 218, 249, 1, 221,
+ 140, 218, 249, 1, 150, 218, 249, 1, 206, 158, 218, 249, 1, 200, 228, 218,
+ 249, 1, 198, 86, 218, 249, 1, 250, 224, 218, 249, 1, 234, 88, 218, 249,
+ 1, 230, 124, 218, 249, 1, 193, 223, 246, 210, 1, 64, 246, 210, 1, 211,
+ 79, 246, 210, 1, 238, 95, 246, 210, 1, 165, 246, 210, 1, 196, 249, 246,
+ 210, 1, 150, 246, 210, 1, 220, 46, 246, 210, 1, 254, 42, 246, 210, 1,
+ 208, 247, 246, 210, 1, 249, 226, 246, 210, 1, 218, 236, 246, 210, 1, 74,
+ 246, 210, 1, 238, 2, 246, 210, 1, 200, 228, 246, 210, 1, 204, 66, 246,
+ 210, 1, 204, 65, 246, 210, 1, 206, 158, 246, 210, 1, 247, 51, 246, 210,
+ 1, 68, 246, 210, 1, 213, 179, 246, 210, 1, 193, 223, 246, 210, 1, 215,
+ 151, 246, 210, 1, 198, 85, 246, 210, 1, 211, 93, 246, 210, 1, 202, 95,
+ 246, 210, 1, 70, 246, 210, 1, 71, 246, 210, 1, 196, 246, 246, 210, 1,
+ 222, 184, 246, 210, 1, 222, 175, 246, 210, 1, 215, 1, 246, 210, 1, 196,
+ 251, 246, 210, 1, 232, 44, 246, 210, 1, 231, 235, 246, 210, 1, 202, 35,
+ 246, 210, 1, 202, 34, 246, 210, 1, 214, 167, 246, 210, 1, 223, 224, 246,
+ 210, 1, 247, 50, 246, 210, 1, 198, 86, 246, 210, 1, 196, 248, 246, 210,
+ 1, 207, 4, 246, 210, 1, 217, 87, 246, 210, 1, 217, 86, 246, 210, 1, 217,
+ 85, 246, 210, 1, 217, 84, 246, 210, 1, 220, 45, 246, 210, 1, 234, 200,
+ 246, 210, 1, 196, 247, 92, 234, 39, 199, 164, 77, 92, 234, 39, 17, 101,
+ 92, 234, 39, 17, 104, 92, 234, 39, 17, 133, 92, 234, 39, 17, 134, 92,
+ 234, 39, 17, 151, 92, 234, 39, 17, 170, 92, 234, 39, 17, 179, 92, 234,
+ 39, 17, 174, 92, 234, 39, 17, 182, 92, 234, 39, 31, 200, 30, 92, 234, 39,
+ 31, 197, 239, 92, 234, 39, 31, 199, 184, 92, 234, 39, 31, 232, 126, 92,
+ 234, 39, 31, 233, 3, 92, 234, 39, 31, 203, 25, 92, 234, 39, 31, 204, 140,
+ 92, 234, 39, 31, 234, 137, 92, 234, 39, 31, 214, 11, 92, 234, 39, 31, 90,
+ 228, 162, 92, 234, 39, 31, 103, 228, 162, 92, 234, 39, 31, 112, 228, 162,
+ 92, 234, 39, 31, 232, 119, 228, 162, 92, 234, 39, 31, 232, 214, 228, 162,
+ 92, 234, 39, 31, 203, 41, 228, 162, 92, 234, 39, 31, 204, 146, 228, 162,
+ 92, 234, 39, 31, 234, 148, 228, 162, 92, 234, 39, 31, 214, 16, 228, 162,
+ 40, 43, 1, 64, 40, 43, 1, 248, 123, 40, 43, 1, 222, 57, 40, 43, 1, 237,
+ 116, 40, 43, 1, 71, 40, 43, 1, 196, 123, 40, 43, 1, 192, 85, 40, 43, 1,
+ 229, 255, 40, 43, 1, 199, 224, 40, 43, 1, 70, 40, 43, 1, 160, 40, 43, 1,
+ 234, 124, 40, 43, 1, 234, 99, 40, 43, 1, 234, 88, 40, 43, 1, 233, 255,
+ 40, 43, 1, 74, 40, 43, 1, 210, 181, 40, 43, 1, 204, 12, 40, 43, 1, 221,
+ 33, 40, 43, 1, 234, 21, 40, 43, 1, 234, 9, 40, 43, 1, 200, 79, 40, 43, 1,
+ 68, 40, 43, 1, 234, 127, 40, 43, 1, 210, 80, 40, 43, 1, 221, 234, 40, 43,
+ 1, 234, 164, 40, 43, 1, 234, 11, 40, 43, 1, 242, 245, 40, 43, 1, 223,
+ 224, 40, 43, 1, 196, 251, 40, 43, 1, 233, 248, 40, 43, 212, 234, 101, 40,
+ 43, 212, 234, 151, 40, 43, 212, 234, 200, 30, 40, 43, 212, 234, 233, 3,
+ 40, 43, 1, 193, 69, 40, 43, 1, 213, 115, 198, 112, 40, 43, 1, 202, 169,
+ 198, 112, 230, 230, 1, 251, 66, 230, 230, 1, 248, 223, 230, 230, 1, 231,
+ 43, 230, 230, 1, 237, 237, 230, 230, 1, 251, 61, 230, 230, 1, 208, 230,
+ 230, 230, 1, 223, 77, 230, 230, 1, 230, 91, 230, 230, 1, 199, 178, 230,
+ 230, 1, 234, 135, 230, 230, 1, 220, 248, 230, 230, 1, 220, 159, 230, 230,
+ 1, 217, 150, 230, 230, 1, 215, 38, 230, 230, 1, 223, 33, 230, 230, 1,
+ 197, 13, 230, 230, 1, 211, 52, 230, 230, 1, 214, 11, 230, 230, 1, 208,
+ 47, 230, 230, 1, 206, 10, 230, 230, 1, 200, 46, 230, 230, 1, 194, 46,
+ 230, 230, 1, 233, 77, 230, 230, 1, 223, 228, 230, 230, 1, 228, 145, 230,
+ 230, 1, 211, 139, 230, 230, 1, 214, 16, 228, 162, 40, 210, 124, 1, 250,
+ 224, 40, 210, 124, 1, 247, 89, 40, 210, 124, 1, 231, 217, 40, 210, 124,
+ 1, 236, 132, 40, 210, 124, 1, 71, 40, 210, 124, 1, 192, 53, 40, 210, 124,
+ 1, 235, 9, 40, 210, 124, 1, 192, 93, 40, 210, 124, 1, 235, 7, 40, 210,
+ 124, 1, 70, 40, 210, 124, 1, 221, 97, 40, 210, 124, 1, 220, 12, 40, 210,
+ 124, 1, 217, 3, 40, 210, 124, 1, 214, 194, 40, 210, 124, 1, 195, 235, 40,
+ 210, 124, 1, 210, 167, 40, 210, 124, 1, 207, 220, 40, 210, 124, 1, 203,
+ 97, 40, 210, 124, 1, 200, 149, 40, 210, 124, 1, 68, 40, 210, 124, 1, 242,
+ 226, 40, 210, 124, 1, 203, 202, 40, 210, 124, 1, 204, 14, 40, 210, 124,
+ 1, 192, 216, 40, 210, 124, 1, 193, 47, 40, 210, 124, 1, 74, 40, 210, 124,
+ 1, 211, 194, 40, 210, 124, 1, 234, 164, 40, 210, 124, 1, 144, 40, 210,
+ 124, 1, 198, 96, 40, 210, 124, 1, 196, 110, 40, 210, 124, 1, 193, 51, 40,
+ 210, 124, 1, 193, 49, 40, 210, 124, 1, 193, 84, 40, 210, 124, 1, 223,
+ 251, 40, 210, 124, 1, 192, 214, 40, 210, 124, 1, 168, 40, 210, 124, 1,
+ 228, 58, 38, 40, 210, 124, 1, 250, 224, 38, 40, 210, 124, 1, 236, 132,
+ 38, 40, 210, 124, 1, 192, 93, 38, 40, 210, 124, 1, 214, 194, 38, 40, 210,
+ 124, 1, 203, 97, 197, 98, 1, 251, 0, 197, 98, 1, 248, 63, 197, 98, 1,
+ 231, 205, 197, 98, 1, 221, 250, 197, 98, 1, 237, 76, 197, 98, 1, 229, 43,
+ 197, 98, 1, 194, 36, 197, 98, 1, 192, 75, 197, 98, 1, 228, 200, 197, 98,
+ 1, 200, 8, 197, 98, 1, 192, 239, 197, 98, 1, 222, 139, 197, 98, 1, 203,
+ 224, 197, 98, 1, 220, 90, 197, 98, 1, 217, 12, 197, 98, 1, 237, 36, 197,
+ 98, 1, 212, 230, 197, 98, 1, 191, 252, 197, 98, 1, 206, 45, 197, 98, 1,
+ 251, 57, 197, 98, 1, 209, 51, 197, 98, 1, 206, 85, 197, 98, 1, 208, 182,
+ 197, 98, 1, 208, 25, 197, 98, 1, 199, 228, 197, 98, 1, 231, 79, 197, 98,
+ 1, 155, 197, 98, 1, 70, 197, 98, 1, 68, 197, 98, 1, 202, 46, 197, 98,
+ 194, 11, 236, 177, 40, 210, 118, 3, 64, 40, 210, 118, 3, 70, 40, 210,
+ 118, 3, 68, 40, 210, 118, 3, 160, 40, 210, 118, 3, 221, 33, 40, 210, 118,
+ 3, 231, 233, 40, 210, 118, 3, 230, 186, 40, 210, 118, 3, 193, 209, 40,
+ 210, 118, 3, 247, 19, 40, 210, 118, 3, 223, 62, 40, 210, 118, 3, 223, 20,
+ 40, 210, 118, 3, 189, 40, 210, 118, 3, 198, 45, 40, 210, 118, 3, 238, 0,
+ 40, 210, 118, 3, 237, 16, 40, 210, 118, 3, 235, 62, 40, 210, 118, 3, 199,
+ 240, 40, 210, 118, 3, 166, 40, 210, 118, 3, 249, 3, 40, 210, 118, 3, 233,
+ 97, 40, 210, 118, 3, 181, 40, 210, 118, 3, 213, 22, 40, 210, 118, 3, 172,
+ 40, 210, 118, 3, 216, 175, 40, 210, 118, 3, 215, 241, 40, 210, 118, 3,
+ 168, 40, 210, 118, 3, 196, 157, 40, 210, 118, 3, 196, 39, 40, 210, 118,
+ 3, 167, 40, 210, 118, 3, 206, 218, 40, 210, 118, 3, 177, 40, 210, 118, 3,
+ 188, 40, 210, 118, 3, 192, 112, 40, 210, 118, 3, 204, 64, 40, 210, 118,
+ 3, 202, 92, 40, 210, 118, 3, 144, 40, 210, 118, 3, 250, 2, 40, 210, 118,
+ 3, 250, 1, 40, 210, 118, 3, 250, 0, 40, 210, 118, 3, 193, 178, 40, 210,
+ 118, 3, 237, 233, 40, 210, 118, 3, 237, 232, 40, 210, 118, 3, 248, 234,
+ 40, 210, 118, 3, 247, 71, 40, 210, 118, 194, 11, 236, 177, 40, 210, 118,
+ 31, 101, 40, 210, 118, 31, 104, 40, 210, 118, 31, 200, 30, 40, 210, 118,
+ 31, 197, 239, 40, 210, 118, 31, 228, 162, 237, 56, 6, 1, 184, 70, 237,
+ 56, 6, 1, 184, 71, 237, 56, 6, 1, 184, 64, 237, 56, 6, 1, 184, 251, 72,
+ 237, 56, 6, 1, 184, 74, 237, 56, 6, 1, 184, 211, 194, 237, 56, 6, 1, 203,
+ 195, 70, 237, 56, 6, 1, 203, 195, 71, 237, 56, 6, 1, 203, 195, 64, 237,
+ 56, 6, 1, 203, 195, 251, 72, 237, 56, 6, 1, 203, 195, 74, 237, 56, 6, 1,
+ 203, 195, 211, 194, 237, 56, 6, 1, 249, 236, 237, 56, 6, 1, 211, 106,
+ 237, 56, 6, 1, 193, 244, 237, 56, 6, 1, 193, 66, 237, 56, 6, 1, 230, 124,
+ 237, 56, 6, 1, 210, 168, 237, 56, 6, 1, 248, 108, 237, 56, 6, 1, 200, 56,
+ 237, 56, 6, 1, 237, 101, 237, 56, 6, 1, 242, 241, 237, 56, 6, 1, 223, 39,
+ 237, 56, 6, 1, 222, 64, 237, 56, 6, 1, 231, 179, 237, 56, 6, 1, 234, 164,
+ 237, 56, 6, 1, 196, 118, 237, 56, 6, 1, 233, 235, 237, 56, 6, 1, 199,
+ 222, 237, 56, 6, 1, 234, 9, 237, 56, 6, 1, 192, 82, 237, 56, 6, 1, 233,
+ 255, 237, 56, 6, 1, 192, 61, 237, 56, 6, 1, 234, 21, 237, 56, 6, 1, 234,
+ 124, 237, 56, 6, 1, 234, 99, 237, 56, 6, 1, 234, 88, 237, 56, 6, 1, 234,
+ 73, 237, 56, 6, 1, 211, 238, 237, 56, 6, 1, 233, 212, 237, 56, 2, 1, 184,
+ 70, 237, 56, 2, 1, 184, 71, 237, 56, 2, 1, 184, 64, 237, 56, 2, 1, 184,
+ 251, 72, 237, 56, 2, 1, 184, 74, 237, 56, 2, 1, 184, 211, 194, 237, 56,
+ 2, 1, 203, 195, 70, 237, 56, 2, 1, 203, 195, 71, 237, 56, 2, 1, 203, 195,
+ 64, 237, 56, 2, 1, 203, 195, 251, 72, 237, 56, 2, 1, 203, 195, 74, 237,
+ 56, 2, 1, 203, 195, 211, 194, 237, 56, 2, 1, 249, 236, 237, 56, 2, 1,
+ 211, 106, 237, 56, 2, 1, 193, 244, 237, 56, 2, 1, 193, 66, 237, 56, 2, 1,
+ 230, 124, 237, 56, 2, 1, 210, 168, 237, 56, 2, 1, 248, 108, 237, 56, 2,
+ 1, 200, 56, 237, 56, 2, 1, 237, 101, 237, 56, 2, 1, 242, 241, 237, 56, 2,
+ 1, 223, 39, 237, 56, 2, 1, 222, 64, 237, 56, 2, 1, 231, 179, 237, 56, 2,
+ 1, 234, 164, 237, 56, 2, 1, 196, 118, 237, 56, 2, 1, 233, 235, 237, 56,
+ 2, 1, 199, 222, 237, 56, 2, 1, 234, 9, 237, 56, 2, 1, 192, 82, 237, 56,
+ 2, 1, 233, 255, 237, 56, 2, 1, 192, 61, 237, 56, 2, 1, 234, 21, 237, 56,
+ 2, 1, 234, 124, 237, 56, 2, 1, 234, 99, 237, 56, 2, 1, 234, 88, 237, 56,
+ 2, 1, 234, 73, 237, 56, 2, 1, 211, 238, 237, 56, 2, 1, 233, 212, 204, 19,
+ 1, 210, 165, 204, 19, 1, 198, 235, 204, 19, 1, 221, 192, 204, 19, 1, 233,
+ 40, 204, 19, 1, 199, 197, 204, 19, 1, 202, 212, 204, 19, 1, 201, 97, 204,
+ 19, 1, 242, 160, 204, 19, 1, 193, 68, 204, 19, 1, 228, 159, 204, 19, 1,
+ 248, 40, 204, 19, 1, 237, 115, 204, 19, 1, 231, 219, 204, 19, 1, 195,
+ 230, 204, 19, 1, 199, 203, 204, 19, 1, 192, 5, 204, 19, 1, 217, 43, 204,
+ 19, 1, 222, 212, 204, 19, 1, 194, 27, 204, 19, 1, 230, 101, 204, 19, 1,
+ 219, 89, 204, 19, 1, 216, 121, 204, 19, 1, 223, 231, 204, 19, 1, 234,
+ 162, 204, 19, 1, 250, 53, 204, 19, 1, 251, 113, 204, 19, 1, 211, 211,
+ 204, 19, 1, 194, 14, 204, 19, 1, 211, 125, 204, 19, 1, 251, 72, 204, 19,
+ 1, 207, 46, 204, 19, 1, 212, 230, 204, 19, 1, 234, 182, 204, 19, 1, 251,
+ 77, 204, 19, 1, 228, 49, 204, 19, 1, 197, 41, 204, 19, 1, 212, 24, 204,
+ 19, 1, 211, 186, 204, 19, 1, 211, 236, 204, 19, 1, 249, 239, 204, 19, 1,
+ 250, 107, 204, 19, 1, 211, 163, 204, 19, 1, 251, 52, 204, 19, 1, 234, 13,
+ 204, 19, 1, 250, 82, 204, 19, 1, 234, 193, 204, 19, 1, 228, 57, 204, 19,
+ 1, 193, 30, 211, 141, 1, 251, 26, 211, 141, 1, 249, 3, 211, 141, 1, 189,
+ 211, 141, 1, 223, 62, 211, 141, 1, 193, 209, 211, 141, 1, 221, 250, 211,
+ 141, 1, 237, 100, 211, 141, 1, 167, 211, 141, 1, 188, 211, 141, 1, 203,
+ 230, 211, 141, 1, 237, 40, 211, 141, 1, 246, 183, 211, 141, 1, 231, 233,
+ 211, 141, 1, 233, 97, 211, 141, 1, 208, 237, 211, 141, 1, 222, 155, 211,
+ 141, 1, 220, 180, 211, 141, 1, 216, 135, 211, 141, 1, 212, 214, 211, 141,
+ 1, 194, 119, 211, 141, 1, 144, 211, 141, 1, 168, 211, 141, 1, 64, 211,
+ 141, 1, 71, 211, 141, 1, 70, 211, 141, 1, 74, 211, 141, 1, 68, 211, 141,
+ 1, 252, 33, 211, 141, 1, 234, 171, 211, 141, 1, 211, 194, 211, 141, 17,
+ 192, 76, 211, 141, 17, 101, 211, 141, 17, 104, 211, 141, 17, 133, 211,
+ 141, 17, 134, 211, 141, 17, 151, 211, 141, 17, 170, 211, 141, 17, 179,
+ 211, 141, 17, 174, 211, 141, 17, 182, 211, 143, 6, 1, 64, 211, 143, 6, 1,
+ 251, 63, 211, 143, 6, 1, 251, 57, 211, 143, 6, 1, 251, 72, 211, 143, 6,
+ 1, 247, 167, 211, 143, 6, 1, 246, 117, 211, 143, 6, 1, 234, 156, 211,
+ 143, 6, 1, 71, 211, 143, 6, 1, 234, 136, 211, 143, 6, 1, 144, 211, 143,
+ 6, 1, 228, 115, 211, 143, 6, 1, 70, 211, 143, 6, 1, 160, 211, 143, 6, 1,
+ 234, 155, 211, 143, 6, 1, 220, 212, 211, 143, 6, 1, 177, 211, 143, 6, 1,
+ 172, 211, 143, 6, 1, 181, 211, 143, 6, 1, 74, 211, 143, 6, 1, 211, 235,
+ 211, 143, 6, 1, 166, 211, 143, 6, 1, 234, 154, 211, 143, 6, 1, 188, 211,
+ 143, 6, 1, 204, 64, 211, 143, 6, 1, 189, 211, 143, 6, 1, 234, 153, 211,
+ 143, 6, 1, 198, 118, 211, 143, 6, 1, 234, 152, 211, 143, 6, 1, 198, 108,
+ 211, 143, 6, 1, 237, 40, 211, 143, 6, 1, 68, 211, 143, 6, 1, 194, 169,
+ 211, 143, 6, 1, 221, 250, 211, 143, 6, 1, 231, 84, 211, 143, 6, 1, 192,
+ 112, 211, 143, 6, 1, 192, 71, 211, 143, 2, 1, 64, 211, 143, 2, 1, 251,
+ 63, 211, 143, 2, 1, 251, 57, 211, 143, 2, 1, 251, 72, 211, 143, 2, 1,
+ 247, 167, 211, 143, 2, 1, 246, 117, 211, 143, 2, 1, 234, 156, 211, 143,
+ 2, 1, 71, 211, 143, 2, 1, 234, 136, 211, 143, 2, 1, 144, 211, 143, 2, 1,
+ 228, 115, 211, 143, 2, 1, 70, 211, 143, 2, 1, 160, 211, 143, 2, 1, 234,
+ 155, 211, 143, 2, 1, 220, 212, 211, 143, 2, 1, 177, 211, 143, 2, 1, 172,
+ 211, 143, 2, 1, 181, 211, 143, 2, 1, 74, 211, 143, 2, 1, 211, 235, 211,
+ 143, 2, 1, 166, 211, 143, 2, 1, 234, 154, 211, 143, 2, 1, 188, 211, 143,
+ 2, 1, 204, 64, 211, 143, 2, 1, 189, 211, 143, 2, 1, 234, 153, 211, 143,
+ 2, 1, 198, 118, 211, 143, 2, 1, 234, 152, 211, 143, 2, 1, 198, 108, 211,
+ 143, 2, 1, 237, 40, 211, 143, 2, 1, 68, 211, 143, 2, 1, 194, 169, 211,
+ 143, 2, 1, 221, 250, 211, 143, 2, 1, 231, 84, 211, 143, 2, 1, 192, 112,
+ 211, 143, 2, 1, 192, 71, 234, 120, 1, 64, 234, 120, 1, 248, 123, 234,
+ 120, 1, 246, 158, 234, 120, 1, 242, 245, 234, 120, 1, 237, 116, 234, 120,
+ 1, 214, 247, 234, 120, 1, 237, 31, 234, 120, 1, 234, 150, 234, 120, 1,
+ 71, 234, 120, 1, 233, 47, 234, 120, 1, 231, 158, 234, 120, 1, 231, 15,
+ 234, 120, 1, 229, 255, 234, 120, 1, 70, 234, 120, 1, 223, 41, 234, 120,
+ 1, 222, 57, 234, 120, 1, 220, 42, 234, 120, 1, 219, 132, 234, 120, 1,
+ 217, 48, 234, 120, 1, 214, 214, 234, 120, 1, 181, 234, 120, 1, 213, 249,
+ 234, 120, 1, 74, 234, 120, 1, 210, 181, 234, 120, 1, 208, 219, 234, 120,
+ 1, 208, 7, 234, 120, 1, 206, 254, 234, 120, 1, 205, 223, 234, 120, 1,
+ 204, 12, 234, 120, 1, 200, 79, 234, 120, 1, 199, 224, 234, 120, 1, 68,
+ 234, 120, 1, 196, 123, 234, 120, 1, 193, 203, 234, 120, 1, 193, 148, 234,
+ 120, 1, 192, 85, 234, 120, 1, 192, 62, 234, 120, 1, 231, 70, 234, 120, 1,
+ 231, 76, 234, 120, 1, 221, 234, 246, 190, 251, 27, 1, 250, 251, 246, 190,
+ 251, 27, 1, 248, 65, 246, 190, 251, 27, 1, 231, 33, 246, 190, 251, 27, 1,
+ 237, 181, 246, 190, 251, 27, 1, 234, 181, 246, 190, 251, 27, 1, 192, 96,
+ 246, 190, 251, 27, 1, 233, 172, 246, 190, 251, 27, 1, 192, 56, 246, 190,
+ 251, 27, 1, 200, 107, 246, 190, 251, 27, 1, 246, 117, 246, 190, 251, 27,
+ 1, 192, 225, 246, 190, 251, 27, 1, 192, 71, 246, 190, 251, 27, 1, 223,
+ 104, 246, 190, 251, 27, 1, 204, 64, 246, 190, 251, 27, 1, 220, 83, 246,
+ 190, 251, 27, 1, 223, 117, 246, 190, 251, 27, 1, 193, 199, 246, 190, 251,
+ 27, 1, 235, 25, 246, 190, 251, 27, 1, 246, 217, 246, 190, 251, 27, 1,
+ 223, 21, 246, 190, 251, 27, 1, 222, 99, 246, 190, 251, 27, 1, 218, 245,
+ 246, 190, 251, 27, 1, 229, 189, 246, 190, 251, 27, 1, 208, 220, 246, 190,
+ 251, 27, 1, 250, 165, 246, 190, 251, 27, 1, 242, 177, 246, 190, 251, 27,
+ 1, 242, 215, 246, 190, 251, 27, 1, 238, 107, 246, 190, 251, 27, 1, 217,
+ 138, 246, 190, 251, 27, 1, 208, 224, 246, 190, 251, 27, 1, 213, 95, 246,
+ 190, 251, 27, 1, 235, 2, 246, 190, 251, 27, 1, 204, 46, 246, 190, 251,
+ 27, 1, 223, 42, 246, 190, 251, 27, 1, 211, 211, 246, 190, 251, 27, 1,
+ 197, 210, 246, 190, 251, 27, 1, 233, 70, 246, 190, 251, 27, 1, 235, 15,
+ 246, 190, 251, 27, 1, 242, 251, 246, 190, 251, 27, 1, 210, 154, 246, 190,
+ 251, 27, 1, 231, 60, 246, 190, 251, 27, 1, 208, 22, 246, 190, 251, 27, 1,
+ 204, 73, 246, 190, 251, 27, 1, 196, 42, 246, 190, 251, 27, 1, 199, 56,
+ 246, 190, 251, 27, 1, 203, 173, 246, 190, 251, 27, 1, 223, 75, 246, 190,
+ 251, 27, 1, 238, 108, 246, 190, 251, 27, 1, 246, 183, 246, 190, 251, 27,
+ 1, 193, 73, 246, 190, 251, 27, 1, 209, 238, 246, 190, 251, 27, 1, 221,
+ 155, 246, 190, 251, 27, 242, 118, 77, 32, 41, 3, 251, 237, 32, 41, 3,
+ 251, 236, 32, 41, 3, 251, 235, 32, 41, 3, 251, 234, 32, 41, 3, 251, 233,
+ 32, 41, 3, 251, 232, 32, 41, 3, 251, 231, 32, 41, 3, 251, 230, 32, 41, 3,
+ 251, 229, 32, 41, 3, 251, 228, 32, 41, 3, 251, 227, 32, 41, 3, 251, 226,
+ 32, 41, 3, 251, 225, 32, 41, 3, 251, 224, 32, 41, 3, 251, 223, 32, 41, 3,
+ 251, 222, 32, 41, 3, 251, 221, 32, 41, 3, 251, 220, 32, 41, 3, 251, 219,
+ 32, 41, 3, 251, 218, 32, 41, 3, 251, 217, 32, 41, 3, 251, 216, 32, 41, 3,
+ 251, 215, 32, 41, 3, 251, 214, 32, 41, 3, 251, 213, 32, 41, 3, 251, 212,
+ 32, 41, 3, 251, 211, 32, 41, 3, 254, 247, 32, 41, 3, 251, 210, 32, 41, 3,
+ 251, 209, 32, 41, 3, 251, 208, 32, 41, 3, 251, 207, 32, 41, 3, 251, 206,
+ 32, 41, 3, 251, 205, 32, 41, 3, 251, 204, 32, 41, 3, 251, 203, 32, 41, 3,
+ 251, 202, 32, 41, 3, 251, 201, 32, 41, 3, 251, 200, 32, 41, 3, 251, 199,
+ 32, 41, 3, 251, 198, 32, 41, 3, 251, 197, 32, 41, 3, 251, 196, 32, 41, 3,
+ 251, 195, 32, 41, 3, 251, 194, 32, 41, 3, 251, 193, 32, 41, 3, 251, 192,
+ 32, 41, 3, 251, 191, 32, 41, 3, 251, 190, 32, 41, 3, 251, 189, 32, 41, 3,
+ 251, 188, 32, 41, 3, 251, 187, 32, 41, 3, 251, 186, 32, 41, 3, 251, 185,
+ 32, 41, 3, 251, 184, 32, 41, 3, 251, 183, 32, 41, 3, 251, 182, 32, 41, 3,
+ 251, 181, 32, 41, 3, 251, 180, 32, 41, 3, 251, 179, 32, 41, 3, 251, 178,
+ 32, 41, 3, 251, 177, 32, 41, 3, 251, 176, 32, 41, 3, 251, 175, 32, 41, 3,
+ 251, 174, 32, 41, 3, 251, 173, 32, 41, 3, 251, 172, 32, 41, 3, 251, 171,
+ 32, 41, 3, 251, 170, 32, 41, 3, 251, 169, 32, 41, 3, 251, 168, 32, 41, 3,
+ 254, 160, 32, 41, 3, 251, 167, 32, 41, 3, 251, 166, 32, 41, 3, 254, 125,
+ 32, 41, 3, 251, 165, 32, 41, 3, 251, 164, 32, 41, 3, 251, 163, 32, 41, 3,
+ 251, 162, 32, 41, 3, 254, 112, 32, 41, 3, 251, 161, 32, 41, 3, 251, 160,
+ 32, 41, 3, 251, 159, 32, 41, 3, 251, 158, 32, 41, 3, 251, 157, 32, 41, 3,
+ 253, 184, 32, 41, 3, 253, 183, 32, 41, 3, 253, 182, 32, 41, 3, 253, 181,
+ 32, 41, 3, 253, 180, 32, 41, 3, 253, 179, 32, 41, 3, 253, 178, 32, 41, 3,
+ 253, 177, 32, 41, 3, 253, 175, 32, 41, 3, 253, 174, 32, 41, 3, 253, 173,
+ 32, 41, 3, 253, 172, 32, 41, 3, 253, 171, 32, 41, 3, 253, 170, 32, 41, 3,
+ 253, 168, 32, 41, 3, 253, 167, 32, 41, 3, 253, 166, 32, 41, 3, 253, 165,
+ 32, 41, 3, 253, 164, 32, 41, 3, 253, 163, 32, 41, 3, 253, 162, 32, 41, 3,
+ 253, 161, 32, 41, 3, 253, 160, 32, 41, 3, 253, 159, 32, 41, 3, 253, 158,
+ 32, 41, 3, 253, 157, 32, 41, 3, 253, 156, 32, 41, 3, 253, 155, 32, 41, 3,
+ 253, 154, 32, 41, 3, 253, 153, 32, 41, 3, 253, 152, 32, 41, 3, 253, 151,
+ 32, 41, 3, 253, 150, 32, 41, 3, 253, 148, 32, 41, 3, 253, 147, 32, 41, 3,
+ 253, 146, 32, 41, 3, 253, 142, 32, 41, 3, 253, 141, 32, 41, 3, 253, 140,
+ 32, 41, 3, 253, 139, 32, 41, 3, 253, 135, 32, 41, 3, 253, 134, 32, 41, 3,
+ 253, 133, 32, 41, 3, 253, 132, 32, 41, 3, 253, 131, 32, 41, 3, 253, 130,
+ 32, 41, 3, 253, 129, 32, 41, 3, 253, 128, 32, 41, 3, 253, 127, 32, 41, 3,
+ 253, 126, 32, 41, 3, 253, 125, 32, 41, 3, 253, 124, 32, 41, 3, 253, 123,
+ 32, 41, 3, 253, 122, 32, 41, 3, 253, 121, 32, 41, 3, 253, 120, 32, 41, 3,
+ 253, 119, 32, 41, 3, 253, 118, 32, 41, 3, 253, 117, 32, 41, 3, 253, 116,
+ 32, 41, 3, 253, 115, 32, 41, 3, 253, 114, 32, 41, 3, 253, 113, 32, 41, 3,
+ 253, 111, 32, 41, 3, 253, 110, 32, 41, 3, 253, 109, 32, 41, 3, 253, 108,
+ 32, 41, 3, 253, 107, 32, 41, 3, 253, 105, 32, 41, 3, 253, 104, 32, 41, 3,
+ 253, 103, 32, 41, 3, 253, 102, 32, 41, 3, 253, 100, 32, 41, 3, 253, 99,
+ 32, 41, 3, 253, 98, 32, 41, 3, 253, 64, 32, 41, 3, 253, 62, 32, 41, 3,
+ 253, 60, 32, 41, 3, 253, 58, 32, 41, 3, 253, 56, 32, 41, 3, 253, 54, 32,
+ 41, 3, 253, 52, 32, 41, 3, 253, 50, 32, 41, 3, 253, 48, 32, 41, 3, 253,
+ 46, 32, 41, 3, 253, 44, 32, 41, 3, 253, 41, 32, 41, 3, 253, 39, 32, 41,
+ 3, 253, 37, 32, 41, 3, 253, 35, 32, 41, 3, 253, 33, 32, 41, 3, 253, 31,
+ 32, 41, 3, 253, 29, 32, 41, 3, 253, 27, 32, 41, 3, 252, 201, 32, 41, 3,
+ 252, 200, 32, 41, 3, 252, 199, 32, 41, 3, 252, 198, 32, 41, 3, 252, 197,
+ 32, 41, 3, 252, 196, 32, 41, 3, 252, 194, 32, 41, 3, 252, 193, 32, 41, 3,
+ 252, 192, 32, 41, 3, 252, 191, 32, 41, 3, 252, 190, 32, 41, 3, 252, 189,
+ 32, 41, 3, 252, 187, 32, 41, 3, 252, 186, 32, 41, 3, 252, 182, 32, 41, 3,
+ 252, 181, 32, 41, 3, 252, 179, 32, 41, 3, 252, 178, 32, 41, 3, 252, 177,
+ 32, 41, 3, 252, 176, 32, 41, 3, 252, 175, 32, 41, 3, 252, 174, 32, 41, 3,
+ 252, 173, 32, 41, 3, 252, 172, 32, 41, 3, 252, 171, 32, 41, 3, 252, 170,
+ 32, 41, 3, 252, 169, 32, 41, 3, 252, 168, 32, 41, 3, 252, 167, 32, 41, 3,
+ 252, 166, 32, 41, 3, 252, 165, 32, 41, 3, 252, 164, 32, 41, 3, 252, 163,
+ 32, 41, 3, 252, 162, 32, 41, 3, 252, 161, 32, 41, 3, 252, 160, 32, 41, 3,
+ 252, 159, 32, 41, 3, 252, 158, 32, 41, 3, 252, 157, 32, 41, 3, 252, 156,
+ 32, 41, 3, 252, 155, 32, 41, 3, 252, 154, 32, 41, 3, 252, 153, 32, 41, 3,
+ 252, 152, 32, 41, 3, 252, 151, 32, 41, 3, 252, 150, 32, 41, 3, 252, 149,
+ 32, 41, 3, 252, 148, 32, 41, 3, 252, 147, 32, 41, 3, 252, 146, 32, 41, 3,
+ 252, 145, 32, 41, 3, 252, 144, 32, 41, 3, 252, 143, 32, 41, 3, 252, 142,
+ 32, 41, 3, 252, 141, 32, 41, 3, 252, 140, 32, 41, 3, 252, 139, 32, 41, 3,
+ 252, 138, 32, 41, 3, 252, 137, 32, 41, 3, 252, 136, 32, 41, 3, 252, 135,
+ 32, 41, 3, 252, 134, 32, 41, 3, 252, 133, 32, 41, 3, 252, 132, 32, 41, 3,
+ 252, 131, 32, 41, 3, 252, 130, 32, 41, 3, 252, 129, 32, 41, 3, 252, 128,
+ 32, 41, 3, 252, 127, 32, 41, 3, 252, 126, 32, 41, 3, 252, 125, 32, 41, 3,
+ 252, 124, 32, 41, 3, 252, 123, 32, 41, 3, 252, 122, 32, 41, 3, 252, 121,
+ 32, 41, 3, 252, 120, 32, 41, 3, 252, 119, 32, 41, 3, 252, 118, 32, 41, 3,
+ 252, 117, 32, 41, 3, 252, 116, 32, 41, 3, 252, 115, 32, 41, 3, 252, 114,
+ 32, 41, 3, 252, 113, 32, 41, 3, 252, 112, 32, 41, 3, 252, 111, 32, 41, 3,
+ 252, 110, 32, 41, 3, 252, 109, 32, 41, 3, 252, 108, 32, 41, 3, 252, 107,
+ 32, 41, 3, 252, 106, 32, 41, 3, 252, 105, 32, 41, 3, 252, 104, 32, 41, 3,
+ 252, 103, 32, 41, 3, 252, 102, 32, 41, 3, 252, 101, 32, 41, 3, 252, 100,
+ 32, 41, 3, 252, 99, 32, 41, 3, 252, 98, 32, 41, 3, 252, 97, 32, 41, 3,
+ 252, 96, 32, 41, 3, 252, 95, 32, 41, 3, 252, 94, 32, 41, 3, 252, 93, 32,
+ 41, 3, 252, 92, 32, 41, 3, 252, 91, 32, 41, 3, 252, 90, 32, 41, 3, 252,
+ 89, 32, 41, 3, 252, 88, 32, 41, 3, 252, 87, 32, 41, 3, 252, 86, 32, 41,
+ 3, 252, 85, 32, 41, 3, 252, 84, 32, 41, 3, 252, 83, 32, 41, 3, 252, 82,
+ 32, 41, 3, 252, 81, 32, 41, 3, 252, 80, 32, 41, 3, 252, 79, 32, 41, 3,
+ 252, 78, 32, 41, 3, 252, 77, 32, 41, 3, 252, 76, 32, 41, 3, 252, 75, 32,
+ 41, 3, 252, 74, 32, 41, 3, 252, 73, 32, 41, 3, 252, 72, 32, 41, 3, 252,
+ 71, 32, 41, 3, 252, 70, 32, 41, 3, 252, 69, 32, 41, 3, 252, 68, 32, 41,
+ 3, 252, 67, 32, 41, 3, 252, 66, 32, 41, 3, 252, 65, 32, 41, 3, 252, 64,
+ 32, 41, 3, 252, 63, 64, 32, 41, 3, 252, 62, 249, 226, 32, 41, 3, 252, 61,
+ 238, 95, 32, 41, 3, 252, 60, 71, 32, 41, 3, 252, 59, 233, 163, 32, 41, 3,
+ 252, 58, 230, 124, 32, 41, 3, 252, 57, 223, 65, 32, 41, 3, 252, 56, 222,
+ 184, 32, 41, 3, 252, 55, 165, 32, 41, 3, 252, 54, 220, 189, 32, 41, 3,
+ 252, 53, 220, 188, 32, 41, 3, 252, 52, 220, 187, 32, 41, 3, 252, 51, 220,
+ 186, 32, 41, 3, 252, 50, 194, 202, 32, 41, 3, 252, 49, 193, 223, 32, 41,
+ 3, 252, 48, 193, 148, 32, 41, 3, 252, 47, 211, 216, 32, 41, 3, 252, 46,
+ 251, 152, 32, 41, 3, 252, 45, 248, 160, 32, 41, 3, 252, 44, 237, 163, 32,
+ 41, 3, 252, 43, 233, 171, 32, 41, 3, 252, 42, 223, 41, 32, 41, 3, 252,
+ 41, 32, 41, 3, 252, 40, 32, 41, 3, 252, 39, 32, 41, 3, 252, 38, 32, 41,
+ 3, 252, 37, 32, 41, 3, 252, 36, 32, 41, 3, 252, 35, 32, 41, 3, 252, 34,
+ 238, 102, 5, 64, 238, 102, 5, 71, 238, 102, 5, 70, 238, 102, 5, 74, 238,
+ 102, 5, 68, 238, 102, 5, 223, 62, 238, 102, 5, 222, 233, 238, 102, 5,
+ 160, 238, 102, 5, 222, 57, 238, 102, 5, 221, 204, 238, 102, 5, 221, 113,
+ 238, 102, 5, 221, 33, 238, 102, 5, 177, 238, 102, 5, 220, 42, 238, 102,
+ 5, 219, 209, 238, 102, 5, 219, 107, 238, 102, 5, 219, 36, 238, 102, 5,
+ 172, 238, 102, 5, 217, 48, 238, 102, 5, 216, 175, 238, 102, 5, 216, 91,
+ 238, 102, 5, 215, 241, 238, 102, 5, 181, 238, 102, 5, 214, 214, 238, 102,
+ 5, 214, 60, 238, 102, 5, 213, 142, 238, 102, 5, 213, 22, 238, 102, 5,
+ 166, 238, 102, 5, 210, 181, 238, 102, 5, 210, 51, 238, 102, 5, 209, 198,
+ 238, 102, 5, 209, 51, 238, 102, 5, 167, 238, 102, 5, 208, 7, 238, 102, 5,
+ 207, 151, 238, 102, 5, 207, 55, 238, 102, 5, 206, 218, 238, 102, 5, 188,
+ 238, 102, 5, 205, 223, 238, 102, 5, 203, 125, 238, 102, 5, 202, 212, 238,
+ 102, 5, 201, 184, 238, 102, 5, 189, 238, 102, 5, 200, 79, 238, 102, 5,
+ 199, 128, 238, 102, 5, 155, 238, 102, 5, 198, 45, 238, 102, 5, 194, 169,
+ 238, 102, 5, 194, 111, 238, 102, 5, 194, 72, 238, 102, 5, 194, 36, 238,
+ 102, 5, 193, 209, 238, 102, 5, 193, 203, 238, 102, 5, 192, 112, 238, 102,
+ 5, 192, 8, 223, 192, 250, 116, 1, 251, 24, 223, 192, 250, 116, 1, 248,
+ 62, 223, 192, 250, 116, 1, 231, 31, 223, 192, 250, 116, 1, 237, 220, 223,
+ 192, 250, 116, 1, 229, 255, 223, 192, 250, 116, 1, 194, 119, 223, 192,
+ 250, 116, 1, 192, 89, 223, 192, 250, 116, 1, 229, 194, 223, 192, 250,
+ 116, 1, 200, 4, 223, 192, 250, 116, 1, 192, 238, 223, 192, 250, 116, 1,
+ 222, 109, 223, 192, 250, 116, 1, 220, 85, 223, 192, 250, 116, 1, 217, 12,
+ 223, 192, 250, 116, 1, 212, 230, 223, 192, 250, 116, 1, 206, 46, 223,
+ 192, 250, 116, 1, 249, 231, 223, 192, 250, 116, 1, 210, 181, 223, 192,
+ 250, 116, 1, 206, 83, 223, 192, 250, 116, 1, 208, 181, 223, 192, 250,
+ 116, 1, 207, 188, 223, 192, 250, 116, 1, 203, 224, 223, 192, 250, 116, 1,
+ 200, 93, 223, 192, 250, 116, 205, 209, 57, 223, 192, 250, 116, 31, 101,
+ 223, 192, 250, 116, 31, 104, 223, 192, 250, 116, 31, 133, 223, 192, 250,
+ 116, 31, 200, 30, 223, 192, 250, 116, 31, 197, 239, 223, 192, 250, 116,
+ 31, 90, 228, 162, 223, 192, 250, 116, 31, 90, 180, 223, 192, 250, 116,
+ 31, 200, 31, 180, 211, 38, 1, 251, 24, 211, 38, 1, 248, 62, 211, 38, 1,
+ 231, 31, 211, 38, 1, 237, 220, 211, 38, 1, 229, 255, 211, 38, 1, 194,
+ 119, 211, 38, 1, 192, 89, 211, 38, 1, 229, 194, 211, 38, 1, 200, 4, 211,
+ 38, 1, 192, 238, 211, 38, 1, 222, 109, 211, 38, 1, 220, 85, 211, 38, 1,
+ 217, 12, 211, 38, 1, 52, 212, 230, 211, 38, 1, 212, 230, 211, 38, 1, 206,
+ 46, 211, 38, 1, 249, 231, 211, 38, 1, 210, 181, 211, 38, 1, 206, 83, 211,
+ 38, 1, 208, 181, 211, 38, 1, 207, 188, 211, 38, 1, 203, 224, 211, 38, 1,
+ 200, 93, 211, 38, 220, 23, 232, 190, 211, 38, 207, 96, 232, 190, 211, 38,
+ 31, 101, 211, 38, 31, 104, 211, 38, 31, 133, 211, 38, 31, 134, 211, 38,
+ 31, 151, 211, 38, 31, 200, 30, 211, 38, 31, 197, 239, 215, 80, 1, 52,
+ 251, 24, 215, 80, 1, 251, 24, 215, 80, 1, 52, 248, 62, 215, 80, 1, 248,
+ 62, 215, 80, 1, 231, 31, 215, 80, 1, 237, 220, 215, 80, 1, 52, 229, 255,
+ 215, 80, 1, 229, 255, 215, 80, 1, 194, 119, 215, 80, 1, 192, 89, 215, 80,
+ 1, 229, 194, 215, 80, 1, 200, 4, 215, 80, 1, 52, 192, 238, 215, 80, 1,
+ 192, 238, 215, 80, 1, 52, 222, 109, 215, 80, 1, 222, 109, 215, 80, 1, 52,
+ 220, 85, 215, 80, 1, 220, 85, 215, 80, 1, 52, 217, 12, 215, 80, 1, 217,
+ 12, 215, 80, 1, 52, 212, 230, 215, 80, 1, 212, 230, 215, 80, 1, 206, 46,
+ 215, 80, 1, 249, 231, 215, 80, 1, 210, 181, 215, 80, 1, 206, 83, 215, 80,
+ 1, 208, 181, 215, 80, 1, 207, 188, 215, 80, 1, 52, 203, 224, 215, 80, 1,
+ 203, 224, 215, 80, 1, 200, 93, 215, 80, 31, 101, 215, 80, 31, 104, 215,
+ 80, 31, 133, 215, 80, 31, 134, 215, 80, 238, 168, 31, 134, 215, 80, 31,
+ 151, 215, 80, 31, 200, 30, 215, 80, 31, 197, 239, 215, 80, 31, 90, 228,
+ 162, 230, 13, 1, 251, 24, 230, 13, 1, 248, 62, 230, 13, 1, 231, 31, 230,
+ 13, 1, 237, 219, 230, 13, 1, 229, 255, 230, 13, 1, 194, 119, 230, 13, 1,
+ 192, 87, 230, 13, 1, 229, 194, 230, 13, 1, 200, 4, 230, 13, 1, 192, 238,
+ 230, 13, 1, 222, 109, 230, 13, 1, 220, 85, 230, 13, 1, 217, 12, 230, 13,
+ 1, 212, 230, 230, 13, 1, 206, 46, 230, 13, 1, 249, 229, 230, 13, 1, 210,
+ 181, 230, 13, 1, 206, 83, 230, 13, 1, 208, 181, 230, 13, 1, 203, 224,
+ 230, 13, 1, 200, 93, 230, 13, 31, 101, 230, 13, 31, 151, 230, 13, 31,
+ 200, 30, 230, 13, 31, 197, 239, 230, 13, 31, 90, 228, 162, 210, 63, 1,
+ 251, 21, 210, 63, 1, 248, 65, 210, 63, 1, 231, 206, 210, 63, 1, 237, 78,
+ 210, 63, 1, 229, 255, 210, 63, 1, 194, 126, 210, 63, 1, 192, 105, 210,
+ 63, 1, 229, 196, 210, 63, 1, 200, 8, 210, 63, 1, 192, 239, 210, 63, 1,
+ 222, 139, 210, 63, 1, 220, 91, 210, 63, 1, 217, 12, 210, 63, 1, 212, 230,
+ 210, 63, 1, 204, 174, 210, 63, 1, 251, 57, 210, 63, 1, 210, 181, 210, 63,
+ 1, 206, 85, 210, 63, 1, 208, 186, 210, 63, 1, 207, 18, 210, 63, 1, 203,
+ 224, 210, 63, 1, 200, 100, 210, 63, 31, 101, 210, 63, 31, 200, 30, 210,
+ 63, 31, 197, 239, 210, 63, 31, 90, 228, 162, 210, 63, 31, 104, 210, 63,
+ 31, 133, 210, 63, 194, 11, 204, 165, 218, 248, 1, 64, 218, 248, 1, 249,
+ 226, 218, 248, 1, 232, 44, 218, 248, 1, 238, 95, 218, 248, 1, 71, 218,
+ 248, 1, 196, 236, 218, 248, 1, 70, 218, 248, 1, 193, 148, 218, 248, 1,
+ 222, 184, 218, 248, 1, 165, 218, 248, 1, 218, 236, 218, 248, 1, 215, 151,
+ 218, 248, 1, 74, 218, 248, 1, 150, 218, 248, 1, 202, 95, 218, 248, 1,
+ 200, 228, 218, 248, 1, 68, 218, 248, 1, 233, 163, 218, 248, 1, 208, 247,
+ 218, 248, 1, 206, 158, 218, 248, 1, 198, 86, 218, 248, 1, 250, 224, 218,
+ 248, 1, 234, 88, 218, 248, 1, 218, 251, 218, 248, 1, 213, 179, 218, 248,
+ 1, 247, 52, 218, 248, 198, 182, 77, 147, 229, 164, 1, 64, 147, 229, 164,
+ 1, 71, 147, 229, 164, 1, 70, 147, 229, 164, 1, 74, 147, 229, 164, 1, 168,
+ 147, 229, 164, 1, 194, 169, 147, 229, 164, 1, 249, 3, 147, 229, 164, 1,
+ 249, 2, 147, 229, 164, 1, 166, 147, 229, 164, 1, 172, 147, 229, 164, 1,
+ 181, 147, 229, 164, 1, 215, 95, 147, 229, 164, 1, 214, 214, 147, 229,
+ 164, 1, 214, 212, 147, 229, 164, 1, 167, 147, 229, 164, 1, 208, 74, 147,
+ 229, 164, 1, 177, 147, 229, 164, 1, 221, 250, 147, 229, 164, 1, 229, 187,
+ 147, 229, 164, 1, 188, 147, 229, 164, 1, 206, 99, 147, 229, 164, 1, 205,
+ 223, 147, 229, 164, 1, 160, 147, 229, 164, 1, 208, 239, 147, 229, 164, 1,
+ 189, 147, 229, 164, 1, 200, 179, 147, 229, 164, 1, 200, 79, 147, 229,
+ 164, 1, 200, 77, 147, 229, 164, 1, 155, 147, 229, 164, 1, 238, 0, 147,
+ 229, 164, 16, 196, 33, 147, 229, 164, 16, 196, 32, 147, 238, 133, 1, 64,
+ 147, 238, 133, 1, 71, 147, 238, 133, 1, 70, 147, 238, 133, 1, 74, 147,
+ 238, 133, 1, 168, 147, 238, 133, 1, 194, 169, 147, 238, 133, 1, 249, 3,
+ 147, 238, 133, 1, 166, 147, 238, 133, 1, 172, 147, 238, 133, 1, 181, 147,
+ 238, 133, 1, 214, 214, 147, 238, 133, 1, 167, 147, 238, 133, 1, 177, 147,
+ 238, 133, 1, 221, 250, 147, 238, 133, 1, 229, 187, 147, 238, 133, 1, 188,
+ 147, 238, 133, 1, 250, 112, 188, 147, 238, 133, 1, 205, 223, 147, 238,
+ 133, 1, 160, 147, 238, 133, 1, 208, 239, 147, 238, 133, 1, 189, 147, 238,
+ 133, 1, 200, 79, 147, 238, 133, 1, 155, 147, 238, 133, 1, 238, 0, 147,
+ 238, 133, 232, 109, 234, 112, 197, 246, 147, 238, 133, 232, 109, 90, 230,
+ 78, 147, 238, 133, 219, 92, 207, 61, 147, 238, 133, 219, 92, 223, 197,
+ 147, 238, 133, 31, 101, 147, 238, 133, 31, 104, 147, 238, 133, 31, 133,
+ 147, 238, 133, 31, 134, 147, 238, 133, 31, 151, 147, 238, 133, 31, 170,
+ 147, 238, 133, 31, 179, 147, 238, 133, 31, 174, 147, 238, 133, 31, 182,
+ 147, 238, 133, 31, 200, 30, 147, 238, 133, 31, 197, 239, 147, 238, 133,
+ 31, 199, 184, 147, 238, 133, 31, 232, 126, 147, 238, 133, 31, 233, 3,
+ 147, 238, 133, 31, 203, 25, 147, 238, 133, 31, 204, 140, 147, 238, 133,
+ 31, 90, 228, 162, 147, 238, 133, 31, 103, 228, 162, 147, 238, 133, 31,
+ 112, 228, 162, 147, 238, 133, 31, 232, 119, 228, 162, 147, 238, 133, 31,
+ 232, 214, 228, 162, 147, 238, 133, 31, 203, 41, 228, 162, 147, 238, 133,
+ 31, 204, 146, 228, 162, 147, 238, 133, 31, 234, 148, 228, 162, 147, 238,
+ 133, 31, 214, 16, 228, 162, 147, 238, 133, 31, 90, 180, 147, 238, 133,
+ 31, 103, 180, 147, 238, 133, 31, 112, 180, 147, 238, 133, 31, 232, 119,
+ 180, 147, 238, 133, 31, 232, 214, 180, 147, 238, 133, 31, 203, 41, 180,
+ 147, 238, 133, 31, 204, 146, 180, 147, 238, 133, 31, 234, 148, 180, 147,
+ 238, 133, 31, 214, 16, 180, 147, 238, 133, 31, 200, 31, 180, 147, 238,
+ 133, 31, 197, 240, 180, 147, 238, 133, 31, 199, 185, 180, 147, 238, 133,
+ 31, 232, 127, 180, 147, 238, 133, 31, 233, 4, 180, 147, 238, 133, 31,
+ 203, 26, 180, 147, 238, 133, 31, 204, 141, 180, 147, 238, 133, 31, 234,
+ 138, 180, 147, 238, 133, 31, 214, 12, 180, 147, 238, 133, 31, 90, 228,
+ 163, 180, 147, 238, 133, 31, 103, 228, 163, 180, 147, 238, 133, 31, 112,
+ 228, 163, 180, 147, 238, 133, 31, 232, 119, 228, 163, 180, 147, 238, 133,
+ 31, 232, 214, 228, 163, 180, 147, 238, 133, 31, 203, 41, 228, 163, 180,
+ 147, 238, 133, 31, 204, 146, 228, 163, 180, 147, 238, 133, 31, 234, 148,
+ 228, 163, 180, 147, 238, 133, 31, 214, 16, 228, 163, 180, 147, 238, 133,
+ 232, 109, 90, 197, 247, 147, 238, 133, 232, 109, 103, 197, 246, 147, 238,
+ 133, 232, 109, 112, 197, 246, 147, 238, 133, 232, 109, 232, 119, 197,
+ 246, 147, 238, 133, 232, 109, 232, 214, 197, 246, 147, 238, 133, 232,
+ 109, 203, 41, 197, 246, 147, 238, 133, 232, 109, 204, 146, 197, 246, 147,
+ 238, 133, 232, 109, 234, 148, 197, 246, 147, 238, 133, 232, 109, 214, 16,
+ 197, 246, 147, 238, 133, 232, 109, 200, 31, 197, 246, 221, 236, 1, 64,
+ 221, 236, 18, 3, 70, 221, 236, 18, 3, 68, 221, 236, 18, 3, 118, 150, 221,
+ 236, 18, 3, 71, 221, 236, 18, 3, 74, 221, 236, 18, 220, 2, 77, 221, 236,
+ 3, 55, 207, 82, 63, 221, 236, 3, 250, 168, 221, 236, 3, 196, 6, 221, 236,
+ 1, 160, 221, 236, 1, 221, 250, 221, 236, 1, 231, 233, 221, 236, 1, 231,
+ 84, 221, 236, 1, 247, 19, 221, 236, 1, 246, 117, 221, 236, 1, 223, 62,
+ 221, 236, 1, 212, 201, 221, 236, 1, 198, 83, 221, 236, 1, 198, 71, 221,
+ 236, 1, 237, 161, 221, 236, 1, 237, 145, 221, 236, 1, 213, 178, 221, 236,
+ 1, 189, 221, 236, 1, 199, 240, 221, 236, 1, 238, 0, 221, 236, 1, 237, 40,
+ 221, 236, 1, 181, 221, 236, 1, 166, 221, 236, 1, 210, 94, 221, 236, 1,
+ 249, 3, 221, 236, 1, 248, 54, 221, 236, 1, 172, 221, 236, 1, 168, 221,
+ 236, 1, 167, 221, 236, 1, 177, 221, 236, 1, 196, 157, 221, 236, 1, 204,
+ 64, 221, 236, 1, 202, 92, 221, 236, 1, 188, 221, 236, 1, 192, 112, 221,
+ 236, 1, 144, 221, 236, 1, 221, 139, 221, 236, 1, 198, 51, 221, 236, 1,
+ 198, 52, 221, 236, 1, 196, 40, 221, 236, 3, 248, 194, 58, 221, 236, 3,
+ 246, 189, 221, 236, 3, 78, 63, 221, 236, 196, 11, 221, 236, 17, 101, 221,
+ 236, 17, 104, 221, 236, 17, 133, 221, 236, 17, 134, 221, 236, 31, 200,
+ 30, 221, 236, 31, 197, 239, 221, 236, 31, 90, 228, 162, 221, 236, 31, 90,
+ 180, 221, 236, 232, 109, 90, 230, 78, 221, 236, 209, 38, 236, 114, 221,
+ 236, 209, 38, 2, 242, 130, 221, 236, 209, 38, 242, 130, 221, 236, 209,
+ 38, 238, 194, 161, 221, 236, 209, 38, 217, 153, 221, 236, 209, 38, 219,
+ 57, 221, 236, 209, 38, 237, 208, 221, 236, 209, 38, 55, 237, 208, 221,
+ 236, 209, 38, 219, 169, 40, 202, 171, 250, 127, 1, 229, 255, 40, 202,
+ 171, 250, 127, 1, 220, 85, 40, 202, 171, 250, 127, 1, 229, 194, 40, 202,
+ 171, 250, 127, 1, 217, 12, 40, 202, 171, 250, 127, 1, 208, 181, 40, 202,
+ 171, 250, 127, 1, 194, 119, 40, 202, 171, 250, 127, 1, 203, 224, 40, 202,
+ 171, 250, 127, 1, 207, 188, 40, 202, 171, 250, 127, 1, 248, 62, 40, 202,
+ 171, 250, 127, 1, 200, 93, 40, 202, 171, 250, 127, 1, 206, 20, 40, 202,
+ 171, 250, 127, 1, 222, 109, 40, 202, 171, 250, 127, 1, 212, 230, 40, 202,
+ 171, 250, 127, 1, 221, 231, 40, 202, 171, 250, 127, 1, 206, 83, 40, 202,
+ 171, 250, 127, 1, 206, 46, 40, 202, 171, 250, 127, 1, 233, 47, 40, 202,
+ 171, 250, 127, 1, 251, 26, 40, 202, 171, 250, 127, 1, 249, 229, 40, 202,
+ 171, 250, 127, 1, 237, 37, 40, 202, 171, 250, 127, 1, 231, 31, 40, 202,
+ 171, 250, 127, 1, 237, 220, 40, 202, 171, 250, 127, 1, 231, 72, 40, 202,
+ 171, 250, 127, 1, 200, 4, 40, 202, 171, 250, 127, 1, 192, 87, 40, 202,
+ 171, 250, 127, 1, 237, 34, 40, 202, 171, 250, 127, 1, 192, 238, 40, 202,
+ 171, 250, 127, 1, 199, 226, 40, 202, 171, 250, 127, 1, 199, 205, 40, 202,
+ 171, 250, 127, 31, 101, 40, 202, 171, 250, 127, 31, 233, 3, 40, 202, 171,
+ 250, 127, 162, 223, 172, 40, 178, 250, 127, 1, 229, 220, 40, 178, 250,
+ 127, 1, 220, 94, 40, 178, 250, 127, 1, 230, 89, 40, 178, 250, 127, 1,
+ 217, 26, 40, 178, 250, 127, 1, 208, 232, 40, 178, 250, 127, 1, 194, 119,
+ 40, 178, 250, 127, 1, 234, 7, 40, 178, 250, 127, 1, 207, 221, 40, 178,
+ 250, 127, 1, 248, 96, 40, 178, 250, 127, 1, 200, 49, 40, 178, 250, 127,
+ 1, 234, 8, 40, 178, 250, 127, 1, 222, 139, 40, 178, 250, 127, 1, 213,
+ 123, 40, 178, 250, 127, 1, 221, 245, 40, 178, 250, 127, 1, 206, 86, 40,
+ 178, 250, 127, 1, 234, 6, 40, 178, 250, 127, 1, 233, 34, 40, 178, 250,
+ 127, 1, 251, 26, 40, 178, 250, 127, 1, 251, 57, 40, 178, 250, 127, 1,
+ 237, 250, 40, 178, 250, 127, 1, 231, 149, 40, 178, 250, 127, 1, 237, 227,
+ 40, 178, 250, 127, 1, 231, 79, 40, 178, 250, 127, 1, 200, 151, 40, 178,
+ 250, 127, 1, 192, 103, 40, 178, 250, 127, 1, 199, 232, 40, 178, 250, 127,
+ 1, 193, 64, 40, 178, 250, 127, 1, 199, 220, 40, 178, 250, 127, 1, 192,
+ 106, 40, 178, 250, 127, 31, 101, 40, 178, 250, 127, 31, 200, 30, 40, 178,
+ 250, 127, 31, 197, 239, 217, 151, 1, 251, 24, 217, 151, 1, 248, 62, 217,
+ 151, 1, 248, 47, 217, 151, 1, 231, 31, 217, 151, 1, 231, 57, 217, 151, 1,
+ 237, 220, 217, 151, 1, 229, 255, 217, 151, 1, 194, 119, 217, 151, 3, 197,
+ 109, 217, 151, 1, 192, 89, 217, 151, 1, 192, 64, 217, 151, 1, 223, 43,
+ 217, 151, 1, 223, 24, 217, 151, 1, 229, 194, 217, 151, 1, 200, 4, 217,
+ 151, 1, 192, 238, 217, 151, 1, 222, 109, 217, 151, 1, 193, 206, 217, 151,
+ 1, 221, 238, 217, 151, 1, 220, 85, 217, 151, 1, 237, 33, 217, 151, 1,
+ 199, 231, 217, 151, 1, 217, 12, 217, 151, 1, 212, 230, 217, 151, 1, 206,
+ 46, 217, 151, 1, 249, 231, 217, 151, 1, 251, 241, 217, 151, 1, 210, 181,
+ 217, 151, 1, 233, 47, 217, 151, 1, 206, 83, 217, 151, 1, 208, 181, 217,
+ 151, 1, 193, 182, 217, 151, 1, 208, 208, 217, 151, 1, 207, 188, 217, 151,
+ 1, 203, 224, 217, 151, 1, 202, 60, 217, 151, 1, 200, 93, 217, 151, 251,
+ 151, 122, 58, 217, 151, 251, 151, 122, 63, 217, 151, 31, 101, 217, 151,
+ 31, 151, 217, 151, 31, 200, 30, 217, 151, 31, 197, 239, 217, 151, 31, 90,
+ 228, 162, 217, 151, 209, 38, 202, 19, 217, 151, 209, 38, 232, 190, 217,
+ 151, 209, 38, 55, 78, 194, 41, 236, 114, 217, 151, 209, 38, 78, 194, 41,
+ 236, 114, 217, 151, 209, 38, 236, 114, 217, 151, 209, 38, 103, 236, 111,
+ 217, 151, 209, 38, 219, 176, 232, 247, 249, 243, 1, 64, 249, 243, 1, 252,
+ 33, 249, 243, 1, 250, 166, 249, 243, 1, 251, 247, 249, 243, 1, 250, 224,
+ 249, 243, 1, 251, 249, 249, 243, 1, 251, 108, 249, 243, 1, 251, 104, 249,
+ 243, 1, 71, 249, 243, 1, 234, 171, 249, 243, 1, 74, 249, 243, 1, 211,
+ 194, 249, 243, 1, 70, 249, 243, 1, 223, 224, 249, 243, 1, 68, 249, 243,
+ 1, 196, 251, 249, 243, 1, 222, 57, 249, 243, 1, 193, 203, 249, 243, 1,
+ 193, 162, 249, 243, 1, 193, 173, 249, 243, 1, 231, 158, 249, 243, 1, 231,
+ 115, 249, 243, 1, 231, 70, 249, 243, 1, 246, 158, 249, 243, 1, 223, 41,
+ 249, 243, 1, 200, 79, 249, 243, 1, 199, 224, 249, 243, 1, 237, 116, 249,
+ 243, 1, 237, 31, 249, 243, 1, 198, 78, 249, 243, 1, 210, 181, 249, 243,
+ 1, 233, 47, 249, 243, 1, 248, 123, 249, 243, 1, 248, 49, 249, 243, 1,
+ 214, 152, 249, 243, 1, 214, 67, 249, 243, 1, 214, 68, 249, 243, 1, 214,
+ 214, 249, 243, 1, 212, 190, 249, 243, 1, 213, 173, 249, 243, 1, 217, 48,
+ 249, 243, 1, 229, 93, 249, 243, 1, 192, 162, 249, 243, 1, 193, 69, 249,
+ 243, 1, 196, 123, 249, 243, 1, 208, 7, 249, 243, 1, 220, 42, 249, 243, 1,
+ 205, 223, 249, 243, 1, 192, 85, 249, 243, 1, 204, 12, 249, 243, 1, 192,
+ 62, 249, 243, 1, 203, 132, 249, 243, 1, 202, 61, 249, 243, 1, 229, 255,
+ 249, 243, 251, 151, 77, 199, 76, 103, 236, 112, 136, 90, 78, 209, 37, 2,
+ 103, 236, 112, 136, 90, 78, 209, 37, 220, 73, 103, 236, 112, 136, 90, 78,
+ 209, 37, 220, 73, 90, 78, 136, 103, 236, 112, 209, 37, 220, 73, 103, 207,
+ 78, 136, 90, 207, 82, 209, 37, 220, 73, 90, 207, 82, 136, 103, 207, 78,
+ 209, 37, 223, 150, 210, 223, 1, 251, 24, 223, 150, 210, 223, 1, 248, 62,
+ 223, 150, 210, 223, 1, 231, 31, 223, 150, 210, 223, 1, 237, 220, 223,
+ 150, 210, 223, 1, 229, 255, 223, 150, 210, 223, 1, 194, 119, 223, 150,
+ 210, 223, 1, 192, 89, 223, 150, 210, 223, 1, 229, 194, 223, 150, 210,
+ 223, 1, 200, 4, 223, 150, 210, 223, 1, 192, 238, 223, 150, 210, 223, 1,
+ 222, 109, 223, 150, 210, 223, 1, 220, 85, 223, 150, 210, 223, 1, 217, 12,
+ 223, 150, 210, 223, 1, 212, 230, 223, 150, 210, 223, 1, 206, 46, 223,
+ 150, 210, 223, 1, 249, 231, 223, 150, 210, 223, 1, 210, 181, 223, 150,
+ 210, 223, 1, 206, 83, 223, 150, 210, 223, 1, 208, 181, 223, 150, 210,
+ 223, 1, 207, 188, 223, 150, 210, 223, 1, 203, 224, 223, 150, 210, 223, 1,
+ 200, 93, 223, 150, 210, 223, 31, 101, 223, 150, 210, 223, 31, 104, 223,
+ 150, 210, 223, 31, 133, 223, 150, 210, 223, 31, 134, 223, 150, 210, 223,
+ 31, 200, 30, 223, 150, 210, 223, 31, 197, 239, 223, 150, 210, 223, 31,
+ 90, 228, 162, 223, 150, 210, 223, 31, 90, 180, 223, 150, 211, 56, 1, 251,
+ 24, 223, 150, 211, 56, 1, 248, 62, 223, 150, 211, 56, 1, 231, 31, 223,
+ 150, 211, 56, 1, 237, 220, 223, 150, 211, 56, 1, 229, 255, 223, 150, 211,
+ 56, 1, 194, 118, 223, 150, 211, 56, 1, 192, 89, 223, 150, 211, 56, 1,
+ 229, 194, 223, 150, 211, 56, 1, 200, 4, 223, 150, 211, 56, 1, 192, 238,
+ 223, 150, 211, 56, 1, 222, 109, 223, 150, 211, 56, 1, 220, 85, 223, 150,
+ 211, 56, 1, 217, 11, 223, 150, 211, 56, 1, 212, 230, 223, 150, 211, 56,
+ 1, 206, 46, 223, 150, 211, 56, 1, 210, 181, 223, 150, 211, 56, 1, 206,
+ 83, 223, 150, 211, 56, 1, 203, 224, 223, 150, 211, 56, 1, 200, 93, 223,
+ 150, 211, 56, 31, 101, 223, 150, 211, 56, 31, 104, 223, 150, 211, 56, 31,
+ 133, 223, 150, 211, 56, 31, 134, 223, 150, 211, 56, 31, 200, 30, 223,
+ 150, 211, 56, 31, 197, 239, 223, 150, 211, 56, 31, 90, 228, 162, 223,
+ 150, 211, 56, 31, 90, 180, 209, 63, 211, 56, 1, 251, 24, 209, 63, 211,
+ 56, 1, 248, 62, 209, 63, 211, 56, 1, 231, 31, 209, 63, 211, 56, 1, 237,
+ 220, 209, 63, 211, 56, 1, 229, 255, 209, 63, 211, 56, 1, 194, 118, 209,
+ 63, 211, 56, 1, 192, 89, 209, 63, 211, 56, 1, 229, 194, 209, 63, 211, 56,
+ 1, 192, 238, 209, 63, 211, 56, 1, 222, 109, 209, 63, 211, 56, 1, 220, 85,
+ 209, 63, 211, 56, 1, 217, 11, 209, 63, 211, 56, 1, 212, 230, 209, 63,
+ 211, 56, 1, 206, 46, 209, 63, 211, 56, 1, 210, 181, 209, 63, 211, 56, 1,
+ 206, 83, 209, 63, 211, 56, 1, 203, 224, 209, 63, 211, 56, 1, 200, 93,
+ 209, 63, 211, 56, 205, 209, 77, 209, 63, 211, 56, 163, 205, 209, 77, 209,
+ 63, 211, 56, 232, 119, 236, 112, 4, 238, 183, 209, 63, 211, 56, 232, 119,
+ 236, 112, 4, 236, 114, 209, 63, 211, 56, 31, 101, 209, 63, 211, 56, 31,
+ 104, 209, 63, 211, 56, 31, 133, 209, 63, 211, 56, 31, 134, 209, 63, 211,
+ 56, 31, 200, 30, 209, 63, 211, 56, 31, 197, 239, 209, 63, 211, 56, 31,
+ 90, 228, 162, 40, 198, 12, 1, 211, 152, 64, 40, 198, 12, 1, 193, 57, 64,
+ 40, 198, 12, 1, 193, 57, 251, 108, 40, 198, 12, 1, 211, 152, 70, 40, 198,
+ 12, 1, 193, 57, 70, 40, 198, 12, 1, 193, 57, 71, 40, 198, 12, 1, 211,
+ 152, 74, 40, 198, 12, 1, 211, 152, 212, 0, 40, 198, 12, 1, 193, 57, 212,
+ 0, 40, 198, 12, 1, 211, 152, 251, 238, 40, 198, 12, 1, 193, 57, 251, 238,
+ 40, 198, 12, 1, 211, 152, 251, 107, 40, 198, 12, 1, 193, 57, 251, 107,
+ 40, 198, 12, 1, 211, 152, 251, 80, 40, 198, 12, 1, 193, 57, 251, 80, 40,
+ 198, 12, 1, 211, 152, 251, 102, 40, 198, 12, 1, 193, 57, 251, 102, 40,
+ 198, 12, 1, 211, 152, 251, 125, 40, 198, 12, 1, 193, 57, 251, 125, 40,
+ 198, 12, 1, 211, 152, 251, 106, 40, 198, 12, 1, 211, 152, 233, 170, 40,
+ 198, 12, 1, 193, 57, 233, 170, 40, 198, 12, 1, 211, 152, 249, 236, 40,
+ 198, 12, 1, 193, 57, 249, 236, 40, 198, 12, 1, 211, 152, 251, 89, 40,
+ 198, 12, 1, 193, 57, 251, 89, 40, 198, 12, 1, 211, 152, 251, 100, 40,
+ 198, 12, 1, 193, 57, 251, 100, 40, 198, 12, 1, 211, 152, 211, 254, 40,
+ 198, 12, 1, 193, 57, 211, 254, 40, 198, 12, 1, 211, 152, 251, 35, 40,
+ 198, 12, 1, 193, 57, 251, 35, 40, 198, 12, 1, 211, 152, 251, 99, 40, 198,
+ 12, 1, 211, 152, 234, 103, 40, 198, 12, 1, 211, 152, 234, 99, 40, 198,
+ 12, 1, 211, 152, 250, 224, 40, 198, 12, 1, 211, 152, 251, 97, 40, 198,
+ 12, 1, 193, 57, 251, 97, 40, 198, 12, 1, 211, 152, 234, 65, 40, 198, 12,
+ 1, 193, 57, 234, 65, 40, 198, 12, 1, 211, 152, 234, 85, 40, 198, 12, 1,
+ 193, 57, 234, 85, 40, 198, 12, 1, 211, 152, 234, 51, 40, 198, 12, 1, 193,
+ 57, 234, 51, 40, 198, 12, 1, 193, 57, 250, 214, 40, 198, 12, 1, 211, 152,
+ 234, 73, 40, 198, 12, 1, 193, 57, 251, 96, 40, 198, 12, 1, 211, 152, 234,
+ 41, 40, 198, 12, 1, 211, 152, 211, 185, 40, 198, 12, 1, 211, 152, 228,
+ 51, 40, 198, 12, 1, 211, 152, 234, 179, 40, 198, 12, 1, 193, 57, 234,
+ 179, 40, 198, 12, 1, 211, 152, 250, 135, 40, 198, 12, 1, 193, 57, 250,
+ 135, 40, 198, 12, 1, 211, 152, 223, 107, 40, 198, 12, 1, 193, 57, 223,
+ 107, 40, 198, 12, 1, 211, 152, 211, 165, 40, 198, 12, 1, 193, 57, 211,
+ 165, 40, 198, 12, 1, 211, 152, 250, 131, 40, 198, 12, 1, 193, 57, 250,
+ 131, 40, 198, 12, 1, 211, 152, 251, 95, 40, 198, 12, 1, 211, 152, 250,
+ 61, 40, 198, 12, 1, 211, 152, 251, 93, 40, 198, 12, 1, 211, 152, 250, 53,
+ 40, 198, 12, 1, 193, 57, 250, 53, 40, 198, 12, 1, 211, 152, 233, 255, 40,
+ 198, 12, 1, 193, 57, 233, 255, 40, 198, 12, 1, 211, 152, 250, 26, 40,
+ 198, 12, 1, 193, 57, 250, 26, 40, 198, 12, 1, 211, 152, 251, 90, 40, 198,
+ 12, 1, 193, 57, 251, 90, 40, 198, 12, 1, 211, 152, 211, 140, 40, 198, 12,
+ 1, 211, 152, 248, 177, 40, 169, 6, 1, 64, 40, 169, 6, 1, 252, 33, 40,
+ 169, 6, 1, 234, 181, 40, 169, 6, 1, 250, 236, 40, 169, 6, 1, 234, 179,
+ 40, 169, 6, 1, 234, 85, 40, 169, 6, 1, 234, 176, 40, 169, 6, 1, 234, 175,
+ 40, 169, 6, 1, 250, 217, 40, 169, 6, 1, 71, 40, 169, 6, 1, 242, 85, 71,
+ 40, 169, 6, 1, 234, 171, 40, 169, 6, 1, 234, 164, 40, 169, 6, 1, 234,
+ 163, 40, 169, 6, 1, 234, 160, 40, 169, 6, 1, 234, 157, 40, 169, 6, 1, 70,
+ 40, 169, 6, 1, 223, 224, 40, 169, 6, 1, 234, 134, 40, 169, 6, 1, 234,
+ 131, 40, 169, 6, 1, 251, 44, 40, 169, 6, 1, 197, 50, 40, 169, 6, 1, 234,
+ 124, 40, 169, 6, 1, 234, 102, 40, 169, 6, 1, 234, 99, 40, 169, 6, 1, 234,
+ 88, 40, 169, 6, 1, 234, 51, 40, 169, 6, 1, 74, 40, 169, 6, 1, 211, 194,
+ 40, 169, 6, 1, 214, 23, 212, 0, 40, 169, 6, 1, 206, 208, 212, 0, 40, 169,
+ 6, 1, 211, 255, 40, 169, 6, 1, 234, 41, 40, 169, 6, 1, 234, 93, 40, 169,
+ 6, 1, 234, 21, 40, 169, 6, 1, 203, 195, 234, 21, 40, 169, 6, 1, 234, 9,
+ 40, 169, 6, 1, 233, 244, 40, 169, 6, 1, 233, 242, 40, 169, 6, 1, 234, 65,
+ 40, 169, 6, 1, 233, 231, 40, 169, 6, 1, 234, 177, 40, 169, 6, 1, 68, 40,
+ 169, 6, 1, 196, 251, 40, 169, 6, 1, 214, 23, 197, 104, 40, 169, 6, 1,
+ 206, 208, 197, 104, 40, 169, 6, 1, 233, 218, 40, 169, 6, 1, 233, 170, 40,
+ 169, 6, 1, 233, 165, 40, 169, 6, 1, 234, 64, 57, 40, 169, 6, 1, 197, 10,
+ 40, 169, 2, 1, 64, 40, 169, 2, 1, 252, 33, 40, 169, 2, 1, 234, 181, 40,
+ 169, 2, 1, 250, 236, 40, 169, 2, 1, 234, 179, 40, 169, 2, 1, 234, 85, 40,
+ 169, 2, 1, 234, 176, 40, 169, 2, 1, 234, 175, 40, 169, 2, 1, 250, 217,
+ 40, 169, 2, 1, 71, 40, 169, 2, 1, 242, 85, 71, 40, 169, 2, 1, 234, 171,
+ 40, 169, 2, 1, 234, 164, 40, 169, 2, 1, 234, 163, 40, 169, 2, 1, 234,
+ 160, 40, 169, 2, 1, 234, 157, 40, 169, 2, 1, 70, 40, 169, 2, 1, 223, 224,
+ 40, 169, 2, 1, 234, 134, 40, 169, 2, 1, 234, 131, 40, 169, 2, 1, 251, 44,
+ 40, 169, 2, 1, 197, 50, 40, 169, 2, 1, 234, 124, 40, 169, 2, 1, 234, 102,
+ 40, 169, 2, 1, 234, 99, 40, 169, 2, 1, 234, 88, 40, 169, 2, 1, 234, 51,
+ 40, 169, 2, 1, 74, 40, 169, 2, 1, 211, 194, 40, 169, 2, 1, 214, 23, 212,
+ 0, 40, 169, 2, 1, 206, 208, 212, 0, 40, 169, 2, 1, 211, 255, 40, 169, 2,
+ 1, 234, 41, 40, 169, 2, 1, 234, 93, 40, 169, 2, 1, 234, 21, 40, 169, 2,
+ 1, 203, 195, 234, 21, 40, 169, 2, 1, 234, 9, 40, 169, 2, 1, 233, 244, 40,
+ 169, 2, 1, 233, 242, 40, 169, 2, 1, 234, 65, 40, 169, 2, 1, 233, 231, 40,
+ 169, 2, 1, 234, 177, 40, 169, 2, 1, 68, 40, 169, 2, 1, 196, 251, 40, 169,
+ 2, 1, 214, 23, 197, 104, 40, 169, 2, 1, 206, 208, 197, 104, 40, 169, 2,
+ 1, 233, 218, 40, 169, 2, 1, 233, 170, 40, 169, 2, 1, 233, 165, 40, 169,
+ 2, 1, 234, 64, 57, 40, 169, 2, 1, 197, 10, 40, 169, 31, 101, 40, 169, 31,
+ 151, 40, 169, 31, 200, 30, 40, 169, 31, 233, 3, 40, 169, 31, 90, 228,
+ 162, 40, 169, 31, 90, 180, 230, 33, 207, 36, 1, 64, 230, 33, 207, 36, 1,
+ 249, 3, 230, 33, 207, 36, 1, 166, 230, 33, 207, 36, 1, 189, 230, 33, 207,
+ 36, 1, 198, 83, 230, 33, 207, 36, 1, 223, 62, 230, 33, 207, 36, 1, 247,
+ 19, 230, 33, 207, 36, 1, 144, 230, 33, 207, 36, 1, 221, 250, 230, 33,
+ 207, 36, 1, 233, 97, 230, 33, 207, 36, 1, 238, 0, 230, 33, 207, 36, 1,
+ 237, 161, 230, 33, 207, 36, 1, 167, 230, 33, 207, 36, 1, 207, 3, 230, 33,
+ 207, 36, 1, 192, 112, 230, 33, 207, 36, 1, 188, 230, 33, 207, 36, 1, 204,
+ 64, 230, 33, 207, 36, 1, 160, 230, 33, 207, 36, 1, 231, 233, 230, 33,
+ 207, 36, 1, 177, 230, 33, 207, 36, 1, 172, 230, 33, 207, 36, 1, 181, 230,
+ 33, 207, 36, 1, 194, 169, 230, 33, 207, 36, 1, 221, 175, 194, 169, 230,
+ 33, 207, 36, 1, 168, 230, 33, 207, 36, 1, 221, 175, 168, 230, 33, 207,
+ 36, 1, 214, 165, 230, 33, 207, 36, 1, 212, 201, 230, 33, 207, 36, 1, 196,
+ 157, 230, 33, 207, 36, 18, 64, 230, 33, 207, 36, 18, 70, 230, 33, 207,
+ 36, 18, 68, 230, 33, 207, 36, 18, 71, 230, 33, 207, 36, 18, 74, 230, 33,
+ 207, 36, 122, 206, 67, 230, 33, 207, 36, 122, 215, 97, 221, 216, 230, 33,
+ 207, 36, 3, 230, 27, 230, 33, 207, 36, 3, 200, 150, 230, 33, 207, 36, 3,
+ 200, 124, 230, 33, 207, 36, 3, 200, 106, 230, 33, 207, 36, 17, 192, 76,
+ 230, 33, 207, 36, 17, 101, 230, 33, 207, 36, 17, 104, 230, 33, 207, 36,
+ 17, 133, 230, 33, 207, 36, 17, 134, 230, 33, 207, 36, 17, 151, 230, 33,
+ 207, 36, 17, 170, 230, 33, 207, 36, 17, 179, 230, 33, 207, 36, 17, 174,
+ 230, 33, 207, 36, 17, 182, 206, 196, 17, 101, 206, 196, 17, 104, 206,
+ 196, 17, 133, 206, 196, 17, 134, 206, 196, 17, 151, 206, 196, 17, 170,
+ 206, 196, 17, 179, 206, 196, 17, 174, 206, 196, 17, 182, 206, 196, 31,
+ 200, 30, 206, 196, 31, 197, 239, 206, 196, 31, 199, 184, 206, 196, 31,
+ 232, 126, 206, 196, 31, 233, 3, 206, 196, 31, 203, 25, 206, 196, 31, 204,
+ 140, 206, 196, 31, 234, 137, 206, 196, 31, 214, 11, 206, 196, 31, 90,
+ 228, 162, 206, 196, 31, 103, 228, 162, 206, 196, 31, 112, 228, 162, 206,
+ 196, 31, 232, 119, 228, 162, 206, 196, 31, 232, 214, 228, 162, 206, 196,
+ 31, 203, 41, 228, 162, 206, 196, 31, 204, 146, 228, 162, 206, 196, 31,
+ 234, 148, 228, 162, 206, 196, 31, 214, 16, 228, 162, 206, 196, 232, 109,
+ 90, 230, 78, 206, 196, 232, 109, 90, 208, 167, 206, 196, 232, 109, 90,
+ 199, 191, 206, 196, 232, 109, 103, 199, 188, 193, 28, 1, 234, 108, 193,
+ 28, 1, 248, 123, 193, 28, 1, 210, 181, 193, 28, 1, 210, 80, 193, 28, 1,
+ 199, 224, 193, 28, 1, 205, 223, 193, 28, 1, 242, 136, 193, 28, 1, 242,
+ 203, 193, 28, 1, 242, 217, 193, 28, 1, 229, 187, 193, 28, 1, 193, 209,
+ 193, 28, 1, 237, 227, 193, 28, 1, 192, 101, 193, 28, 1, 167, 193, 28, 1,
+ 207, 156, 193, 28, 1, 192, 112, 193, 28, 1, 223, 62, 193, 28, 1, 203, 78,
+ 193, 28, 1, 203, 224, 193, 28, 1, 206, 86, 193, 28, 1, 237, 250, 193, 28,
+ 1, 189, 193, 28, 1, 192, 85, 193, 28, 1, 233, 172, 193, 28, 1, 193, 197,
+ 193, 28, 1, 233, 97, 193, 28, 1, 196, 157, 193, 28, 1, 196, 158, 250,
+ 249, 20, 193, 28, 1, 208, 232, 193, 28, 1, 222, 139, 193, 28, 1, 221,
+ 247, 193, 28, 1, 231, 220, 193, 28, 1, 220, 94, 193, 28, 1, 216, 122,
+ 193, 28, 1, 212, 230, 193, 28, 1, 197, 84, 193, 28, 1, 194, 119, 193, 28,
+ 1, 211, 106, 193, 28, 1, 233, 212, 193, 28, 1, 230, 6, 193, 28, 1, 192,
+ 229, 193, 28, 1, 233, 242, 193, 28, 38, 230, 67, 77, 193, 28, 38, 217,
+ 210, 77, 193, 28, 228, 109, 77, 193, 28, 1, 220, 95, 4, 78, 58, 193, 28,
+ 1, 192, 230, 4, 242, 122, 58, 40, 202, 194, 1, 251, 24, 40, 202, 194, 1,
+ 52, 251, 24, 40, 202, 194, 1, 248, 62, 40, 202, 194, 1, 52, 248, 62, 40,
+ 202, 194, 1, 231, 31, 40, 202, 194, 1, 229, 255, 40, 202, 194, 1, 52,
+ 229, 255, 40, 202, 194, 1, 194, 119, 40, 202, 194, 1, 192, 89, 40, 202,
+ 194, 1, 229, 194, 40, 202, 194, 1, 192, 238, 40, 202, 194, 1, 222, 109,
+ 40, 202, 194, 1, 220, 85, 40, 202, 194, 1, 217, 12, 40, 202, 194, 1, 212,
+ 230, 40, 202, 194, 1, 52, 212, 230, 40, 202, 194, 1, 52, 212, 231, 4, 84,
+ 200, 147, 40, 202, 194, 1, 206, 46, 40, 202, 194, 1, 249, 231, 40, 202,
+ 194, 1, 250, 249, 249, 231, 40, 202, 194, 1, 210, 181, 40, 202, 194, 1,
+ 206, 83, 40, 202, 194, 1, 52, 206, 83, 40, 202, 194, 1, 52, 206, 84, 4,
+ 84, 200, 147, 40, 202, 194, 1, 207, 186, 40, 202, 194, 1, 203, 224, 40,
+ 202, 194, 1, 200, 93, 40, 202, 194, 1, 52, 200, 93, 40, 202, 194, 1, 52,
+ 200, 94, 4, 84, 200, 147, 40, 202, 194, 31, 101, 40, 202, 194, 31, 104,
+ 40, 202, 194, 31, 133, 40, 202, 194, 31, 134, 40, 202, 194, 31, 151, 40,
+ 202, 194, 31, 200, 30, 40, 202, 194, 31, 197, 239, 40, 202, 194, 31, 199,
+ 184, 40, 202, 194, 31, 90, 228, 162, 40, 202, 194, 232, 109, 90, 230, 78,
+ 40, 202, 194, 34, 249, 230, 202, 194, 1, 251, 24, 202, 194, 1, 248, 62,
+ 202, 194, 1, 231, 31, 202, 194, 1, 229, 255, 202, 194, 1, 194, 119, 202,
+ 194, 1, 192, 89, 202, 194, 1, 229, 194, 202, 194, 1, 192, 238, 202, 194,
+ 1, 222, 109, 202, 194, 1, 220, 85, 202, 194, 1, 217, 12, 202, 194, 1,
+ 212, 230, 202, 194, 1, 206, 46, 202, 194, 1, 249, 231, 202, 194, 1, 210,
+ 181, 202, 194, 1, 206, 83, 202, 194, 1, 207, 187, 202, 194, 1, 203, 224,
+ 202, 194, 1, 200, 93, 202, 194, 1, 233, 18, 202, 194, 1, 219, 242, 202,
+ 194, 223, 177, 203, 224, 202, 194, 38, 78, 63, 202, 194, 38, 103, 236,
+ 112, 63, 202, 194, 38, 78, 58, 202, 194, 38, 103, 236, 112, 58, 202, 194,
+ 38, 238, 132, 58, 202, 194, 38, 238, 132, 63, 202, 194, 38, 229, 15, 58,
+ 202, 194, 38, 229, 15, 63, 202, 194, 38, 184, 229, 15, 63, 202, 194, 38,
+ 207, 189, 63, 202, 194, 38, 201, 208, 63, 202, 194, 31, 101, 202, 194,
+ 31, 200, 30, 202, 194, 31, 197, 239, 202, 194, 31, 90, 228, 162, 202,
+ 194, 209, 38, 103, 84, 248, 182, 202, 194, 209, 38, 103, 84, 248, 183, 4,
+ 236, 111, 202, 194, 209, 38, 242, 131, 4, 236, 114, 202, 194, 209, 38,
+ 103, 242, 128, 4, 236, 111, 202, 194, 209, 38, 138, 242, 131, 4, 236,
+ 114, 242, 181, 1, 251, 24, 242, 181, 1, 2, 251, 24, 242, 181, 1, 248, 62,
+ 242, 181, 1, 231, 31, 242, 181, 1, 237, 220, 242, 181, 1, 229, 255, 242,
+ 181, 1, 194, 119, 242, 181, 1, 238, 141, 194, 119, 242, 181, 1, 192, 89,
+ 242, 181, 1, 229, 194, 242, 181, 1, 192, 238, 242, 181, 1, 222, 109, 242,
+ 181, 1, 220, 85, 242, 181, 1, 217, 12, 242, 181, 1, 212, 230, 242, 181,
+ 1, 206, 46, 242, 181, 1, 249, 231, 242, 181, 1, 210, 181, 242, 181, 1,
+ 207, 188, 242, 181, 1, 203, 224, 242, 181, 1, 200, 93, 242, 181, 31, 101,
+ 242, 181, 31, 104, 242, 181, 31, 133, 242, 181, 31, 134, 242, 181, 31,
+ 200, 30, 242, 181, 31, 197, 239, 242, 181, 31, 90, 228, 162, 234, 101, 1,
+ 251, 24, 234, 101, 1, 248, 62, 234, 101, 1, 231, 31, 234, 101, 1, 237,
+ 220, 234, 101, 1, 229, 255, 234, 101, 1, 194, 119, 234, 101, 1, 192, 89,
+ 234, 101, 1, 229, 194, 234, 101, 1, 200, 4, 234, 101, 1, 192, 238, 234,
+ 101, 1, 222, 109, 234, 101, 1, 220, 85, 234, 101, 1, 217, 12, 234, 101,
+ 1, 212, 230, 234, 101, 1, 206, 46, 234, 101, 1, 249, 231, 234, 101, 1,
+ 210, 181, 234, 101, 1, 206, 83, 234, 101, 1, 208, 181, 234, 101, 1, 207,
+ 188, 234, 101, 1, 203, 224, 234, 101, 1, 200, 93, 234, 101, 34, 192, 88,
+ 164, 3, 246, 234, 164, 3, 250, 168, 164, 3, 196, 6, 164, 3, 223, 13, 164,
+ 3, 197, 39, 164, 1, 64, 164, 1, 252, 33, 164, 1, 70, 164, 1, 223, 224,
+ 164, 1, 68, 164, 1, 196, 251, 164, 1, 118, 150, 164, 1, 118, 207, 4, 164,
+ 1, 118, 165, 164, 1, 118, 219, 138, 164, 1, 71, 164, 1, 251, 63, 164, 1,
+ 74, 164, 1, 250, 8, 164, 1, 160, 164, 1, 221, 250, 164, 1, 231, 233, 164,
+ 1, 231, 84, 164, 1, 214, 165, 164, 1, 247, 19, 164, 1, 246, 117, 164, 1,
+ 223, 62, 164, 1, 223, 28, 164, 1, 212, 201, 164, 1, 198, 83, 164, 1, 198,
+ 71, 164, 1, 237, 161, 164, 1, 237, 145, 164, 1, 213, 178, 164, 1, 189,
+ 164, 1, 199, 240, 164, 1, 238, 0, 164, 1, 237, 40, 164, 1, 181, 164, 1,
+ 166, 164, 1, 210, 94, 164, 1, 249, 3, 164, 1, 248, 54, 164, 1, 172, 164,
+ 1, 168, 164, 1, 167, 164, 1, 177, 164, 1, 196, 157, 164, 1, 204, 64, 164,
+ 1, 202, 92, 164, 1, 188, 164, 1, 144, 164, 1, 219, 137, 164, 1, 40, 44,
+ 219, 126, 164, 1, 40, 44, 207, 3, 164, 1, 40, 44, 213, 160, 164, 18, 3,
+ 252, 33, 164, 18, 3, 248, 50, 252, 33, 164, 18, 3, 70, 164, 18, 3, 223,
+ 224, 164, 18, 3, 68, 164, 18, 3, 196, 251, 164, 18, 3, 118, 150, 164, 18,
+ 3, 118, 207, 4, 164, 18, 3, 118, 165, 164, 18, 3, 118, 219, 138, 164, 18,
+ 3, 71, 164, 18, 3, 251, 63, 164, 18, 3, 74, 164, 18, 3, 250, 8, 164, 196,
+ 11, 164, 237, 208, 164, 55, 237, 208, 164, 209, 38, 236, 114, 164, 209,
+ 38, 55, 236, 114, 164, 209, 38, 219, 175, 164, 209, 38, 238, 194, 161,
+ 164, 209, 38, 219, 57, 164, 31, 101, 164, 31, 104, 164, 31, 133, 164, 31,
+ 134, 164, 31, 151, 164, 31, 170, 164, 31, 179, 164, 31, 174, 164, 31,
+ 182, 164, 31, 200, 30, 164, 31, 197, 239, 164, 31, 199, 184, 164, 31,
+ 232, 126, 164, 31, 233, 3, 164, 31, 203, 25, 164, 31, 204, 140, 164, 31,
+ 234, 137, 164, 31, 214, 11, 164, 31, 90, 228, 162, 164, 31, 90, 180, 164,
+ 17, 192, 76, 164, 17, 101, 164, 17, 104, 164, 17, 133, 164, 17, 134, 164,
+ 17, 151, 164, 17, 170, 164, 17, 179, 164, 17, 174, 164, 17, 182, 164, 31,
+ 222, 228, 222, 132, 3, 246, 234, 222, 132, 3, 250, 168, 222, 132, 3, 196,
+ 6, 222, 132, 1, 64, 222, 132, 1, 252, 33, 222, 132, 1, 70, 222, 132, 1,
+ 223, 224, 222, 132, 1, 68, 222, 132, 1, 196, 251, 222, 132, 1, 71, 222,
+ 132, 1, 251, 63, 222, 132, 1, 74, 222, 132, 1, 250, 8, 222, 132, 1, 160,
+ 222, 132, 1, 221, 250, 222, 132, 1, 231, 233, 222, 132, 1, 231, 84, 222,
+ 132, 1, 214, 165, 222, 132, 1, 247, 19, 222, 132, 1, 246, 117, 222, 132,
+ 1, 223, 62, 222, 132, 1, 223, 28, 222, 132, 1, 212, 201, 222, 132, 1,
+ 198, 83, 222, 132, 1, 198, 71, 222, 132, 1, 237, 161, 222, 132, 1, 237,
+ 150, 222, 132, 1, 237, 145, 222, 132, 1, 207, 156, 222, 132, 1, 213, 178,
+ 222, 132, 1, 189, 222, 132, 1, 199, 240, 222, 132, 1, 238, 0, 222, 132,
+ 1, 237, 40, 222, 132, 1, 181, 222, 132, 1, 166, 222, 132, 1, 210, 94,
+ 222, 132, 1, 249, 3, 222, 132, 1, 248, 54, 222, 132, 1, 172, 222, 132, 1,
+ 168, 222, 132, 1, 167, 222, 132, 1, 177, 222, 132, 1, 196, 157, 222, 132,
+ 1, 204, 64, 222, 132, 1, 202, 92, 222, 132, 1, 188, 222, 132, 1, 144,
+ 222, 132, 18, 3, 252, 33, 222, 132, 18, 3, 70, 222, 132, 18, 3, 223, 224,
+ 222, 132, 18, 3, 68, 222, 132, 18, 3, 196, 251, 222, 132, 18, 3, 71, 222,
+ 132, 18, 3, 251, 63, 222, 132, 18, 3, 74, 222, 132, 18, 3, 250, 8, 222,
+ 132, 3, 196, 11, 222, 132, 3, 212, 241, 222, 132, 251, 151, 57, 222, 132,
+ 234, 54, 57, 222, 132, 31, 57, 222, 132, 205, 209, 77, 222, 132, 55, 205,
+ 209, 77, 222, 132, 237, 208, 222, 132, 55, 237, 208, 222, 132, 31, 3, 58,
+ 202, 179, 202, 187, 1, 206, 76, 202, 179, 202, 187, 1, 200, 151, 202,
+ 179, 202, 187, 1, 248, 229, 202, 179, 202, 187, 1, 247, 8, 202, 179, 202,
+ 187, 1, 237, 236, 202, 179, 202, 187, 1, 231, 218, 202, 179, 202, 187, 1,
+ 217, 188, 202, 179, 202, 187, 1, 214, 162, 202, 179, 202, 187, 1, 220,
+ 158, 202, 179, 202, 187, 1, 215, 71, 202, 179, 202, 187, 1, 196, 153,
+ 202, 179, 202, 187, 1, 211, 57, 202, 179, 202, 187, 1, 193, 110, 202,
+ 179, 202, 187, 1, 208, 50, 202, 179, 202, 187, 1, 230, 89, 202, 179, 202,
+ 187, 1, 222, 137, 202, 179, 202, 187, 1, 223, 56, 202, 179, 202, 187, 1,
+ 212, 198, 202, 179, 202, 187, 1, 251, 72, 202, 179, 202, 187, 1, 234,
+ 169, 202, 179, 202, 187, 1, 223, 225, 202, 179, 202, 187, 1, 197, 97,
+ 202, 179, 202, 187, 1, 211, 241, 202, 179, 202, 187, 1, 234, 157, 202,
+ 179, 202, 187, 1, 217, 204, 202, 179, 202, 187, 17, 192, 76, 202, 179,
+ 202, 187, 17, 101, 202, 179, 202, 187, 17, 104, 202, 179, 202, 187, 17,
+ 133, 202, 179, 202, 187, 17, 134, 202, 179, 202, 187, 17, 151, 202, 179,
+ 202, 187, 17, 170, 202, 179, 202, 187, 17, 179, 202, 179, 202, 187, 17,
+ 174, 202, 179, 202, 187, 17, 182, 246, 111, 3, 246, 234, 246, 111, 3,
+ 250, 168, 246, 111, 3, 196, 6, 246, 111, 1, 252, 33, 246, 111, 1, 70,
+ 246, 111, 1, 68, 246, 111, 1, 71, 246, 111, 1, 222, 159, 246, 111, 1,
+ 221, 249, 246, 111, 1, 231, 230, 246, 111, 1, 231, 83, 246, 111, 1, 214,
+ 164, 246, 111, 1, 247, 18, 246, 111, 1, 246, 116, 246, 111, 1, 223, 61,
+ 246, 111, 1, 223, 27, 246, 111, 1, 212, 200, 246, 111, 1, 198, 82, 246,
+ 111, 1, 198, 70, 246, 111, 1, 237, 160, 246, 111, 1, 237, 144, 246, 111,
+ 1, 213, 177, 246, 111, 1, 200, 174, 246, 111, 1, 199, 239, 246, 111, 1,
+ 237, 255, 246, 111, 1, 237, 39, 246, 111, 1, 215, 84, 246, 111, 1, 211,
+ 77, 246, 111, 1, 210, 93, 246, 111, 1, 249, 1, 246, 111, 1, 248, 53, 246,
+ 111, 1, 217, 219, 246, 111, 1, 192, 163, 246, 111, 1, 193, 129, 246, 111,
+ 1, 208, 68, 246, 111, 1, 220, 184, 246, 111, 1, 194, 163, 246, 111, 1,
+ 206, 91, 246, 111, 1, 230, 99, 246, 111, 18, 3, 64, 246, 111, 18, 3, 70,
+ 246, 111, 18, 3, 223, 224, 246, 111, 18, 3, 68, 246, 111, 18, 3, 196,
+ 251, 246, 111, 18, 3, 71, 246, 111, 18, 3, 251, 63, 246, 111, 18, 3, 74,
+ 246, 111, 18, 3, 250, 8, 246, 111, 18, 3, 211, 238, 246, 111, 185, 77,
+ 246, 111, 250, 9, 77, 246, 111, 196, 11, 246, 111, 217, 217, 246, 111,
+ 17, 192, 76, 246, 111, 17, 101, 246, 111, 17, 104, 246, 111, 17, 133,
+ 246, 111, 17, 134, 246, 111, 17, 151, 246, 111, 17, 170, 246, 111, 17,
+ 179, 246, 111, 17, 174, 246, 111, 17, 182, 246, 111, 205, 209, 77, 246,
+ 111, 237, 208, 246, 111, 55, 237, 208, 246, 111, 208, 159, 77, 246, 111,
+ 1, 219, 221, 246, 111, 18, 3, 252, 33, 246, 111, 18, 3, 234, 150, 246,
+ 111, 1, 196, 156, 217, 186, 1, 64, 217, 186, 1, 70, 217, 186, 1, 68, 217,
+ 186, 1, 71, 217, 186, 1, 74, 217, 186, 1, 160, 217, 186, 1, 221, 250,
+ 217, 186, 1, 231, 233, 217, 186, 1, 231, 84, 217, 186, 1, 247, 19, 217,
+ 186, 1, 246, 117, 217, 186, 1, 223, 62, 217, 186, 1, 223, 28, 217, 186,
+ 1, 212, 201, 217, 186, 1, 198, 83, 217, 186, 1, 198, 71, 217, 186, 1,
+ 237, 161, 217, 186, 1, 237, 145, 217, 186, 1, 213, 178, 217, 186, 1, 189,
+ 217, 186, 1, 199, 240, 217, 186, 1, 238, 0, 217, 186, 1, 237, 40, 217,
+ 186, 1, 181, 217, 186, 1, 166, 217, 186, 1, 210, 94, 217, 186, 1, 249, 3,
+ 217, 186, 1, 248, 54, 217, 186, 1, 172, 217, 186, 1, 167, 217, 186, 1,
+ 177, 217, 186, 1, 196, 157, 217, 186, 1, 188, 217, 186, 1, 144, 217, 186,
+ 1, 207, 3, 217, 186, 3, 212, 241, 217, 186, 251, 151, 57, 217, 186, 205,
+ 209, 77, 217, 186, 34, 203, 172, 204, 28, 3, 246, 234, 204, 28, 3, 250,
+ 168, 204, 28, 3, 196, 6, 204, 28, 1, 64, 204, 28, 1, 252, 33, 204, 28, 1,
+ 70, 204, 28, 1, 223, 224, 204, 28, 1, 68, 204, 28, 1, 196, 251, 204, 28,
+ 1, 118, 150, 204, 28, 1, 118, 207, 4, 204, 28, 1, 118, 165, 204, 28, 1,
+ 118, 219, 138, 204, 28, 1, 71, 204, 28, 1, 251, 63, 204, 28, 1, 74, 204,
+ 28, 1, 250, 8, 204, 28, 1, 160, 204, 28, 1, 221, 250, 204, 28, 1, 231,
+ 233, 204, 28, 1, 231, 84, 204, 28, 1, 214, 165, 204, 28, 1, 247, 19, 204,
+ 28, 1, 246, 117, 204, 28, 1, 223, 62, 204, 28, 1, 223, 28, 204, 28, 1,
+ 212, 201, 204, 28, 1, 198, 83, 204, 28, 1, 198, 71, 204, 28, 1, 237, 161,
+ 204, 28, 1, 237, 145, 204, 28, 1, 213, 178, 204, 28, 1, 189, 204, 28, 1,
+ 199, 240, 204, 28, 1, 238, 0, 204, 28, 1, 237, 40, 204, 28, 1, 181, 204,
+ 28, 1, 166, 204, 28, 1, 210, 94, 204, 28, 1, 249, 3, 204, 28, 1, 248, 54,
+ 204, 28, 1, 172, 204, 28, 1, 168, 204, 28, 1, 167, 204, 28, 1, 177, 204,
+ 28, 1, 219, 137, 204, 28, 1, 196, 157, 204, 28, 1, 204, 64, 204, 28, 1,
+ 202, 92, 204, 28, 1, 188, 204, 28, 1, 144, 204, 28, 18, 3, 252, 33, 204,
+ 28, 18, 3, 70, 204, 28, 18, 3, 223, 224, 204, 28, 18, 3, 68, 204, 28, 18,
+ 3, 196, 251, 204, 28, 18, 3, 118, 150, 204, 28, 18, 3, 118, 207, 4, 204,
+ 28, 18, 3, 118, 165, 204, 28, 18, 3, 118, 219, 138, 204, 28, 18, 3, 71,
+ 204, 28, 18, 3, 251, 63, 204, 28, 18, 3, 74, 204, 28, 18, 3, 250, 8, 204,
+ 28, 3, 196, 11, 204, 28, 3, 249, 246, 204, 28, 3, 223, 13, 204, 28, 3,
+ 197, 39, 204, 28, 211, 219, 204, 28, 237, 208, 204, 28, 55, 237, 208,
+ 204, 28, 251, 151, 57, 204, 28, 204, 165, 204, 28, 206, 36, 77, 204, 28,
+ 3, 212, 241, 204, 28, 18, 73, 77, 204, 28, 233, 189, 203, 195, 18, 77,
+ 204, 28, 201, 87, 77, 204, 28, 18, 3, 209, 91, 71, 204, 28, 3, 223, 121,
+ 246, 234, 204, 28, 17, 192, 76, 204, 28, 17, 101, 204, 28, 17, 104, 204,
+ 28, 17, 133, 204, 28, 17, 134, 204, 28, 17, 151, 204, 28, 17, 170, 204,
+ 28, 17, 179, 204, 28, 17, 174, 204, 28, 17, 182, 204, 28, 234, 130, 204,
+ 28, 3, 203, 113, 204, 28, 229, 237, 204, 28, 238, 250, 57, 204, 28, 205,
+ 209, 217, 126, 204, 28, 205, 209, 217, 125, 159, 250, 112, 17, 101, 159,
+ 250, 112, 17, 104, 159, 250, 112, 17, 133, 159, 250, 112, 17, 134, 159,
+ 250, 112, 17, 151, 159, 250, 112, 17, 170, 159, 250, 112, 17, 179, 159,
+ 250, 112, 17, 174, 159, 250, 112, 17, 182, 159, 250, 112, 31, 200, 30,
+ 159, 250, 112, 31, 197, 239, 159, 250, 112, 31, 199, 184, 159, 250, 112,
+ 31, 232, 126, 159, 250, 112, 31, 233, 3, 159, 250, 112, 31, 203, 25, 159,
+ 250, 112, 31, 204, 140, 159, 250, 112, 31, 234, 137, 159, 250, 112, 31,
+ 214, 11, 159, 250, 112, 31, 90, 228, 162, 159, 250, 112, 31, 90, 180,
+ 221, 219, 1, 64, 221, 219, 1, 252, 33, 221, 219, 1, 70, 221, 219, 1, 68,
+ 221, 219, 1, 71, 221, 219, 1, 251, 63, 221, 219, 1, 74, 221, 219, 1, 250,
+ 8, 221, 219, 1, 160, 221, 219, 1, 221, 250, 221, 219, 1, 231, 233, 221,
+ 219, 1, 231, 120, 221, 219, 1, 231, 84, 221, 219, 1, 214, 165, 221, 219,
+ 1, 247, 19, 221, 219, 1, 246, 117, 221, 219, 1, 223, 62, 221, 219, 1,
+ 223, 6, 221, 219, 1, 212, 201, 221, 219, 1, 198, 83, 221, 219, 1, 198,
+ 71, 221, 219, 1, 237, 161, 221, 219, 1, 237, 145, 221, 219, 1, 213, 178,
+ 221, 219, 1, 189, 221, 219, 1, 199, 240, 221, 219, 1, 238, 0, 221, 219,
+ 1, 237, 151, 221, 219, 1, 237, 40, 221, 219, 1, 181, 221, 219, 1, 166,
+ 221, 219, 1, 210, 94, 221, 219, 1, 249, 3, 221, 219, 1, 248, 159, 221,
+ 219, 1, 248, 54, 221, 219, 1, 172, 221, 219, 1, 168, 221, 219, 1, 167,
+ 221, 219, 1, 177, 221, 219, 1, 196, 157, 221, 219, 1, 188, 221, 219, 1,
+ 144, 221, 219, 1, 219, 137, 221, 219, 18, 3, 252, 33, 221, 219, 18, 3,
+ 70, 221, 219, 18, 3, 223, 224, 221, 219, 18, 3, 68, 221, 219, 18, 3, 71,
+ 221, 219, 18, 3, 251, 63, 221, 219, 18, 3, 74, 221, 219, 18, 3, 250, 8,
+ 221, 219, 3, 250, 168, 221, 219, 3, 196, 11, 221, 219, 3, 212, 241, 221,
+ 219, 3, 204, 54, 221, 219, 237, 208, 221, 219, 55, 237, 208, 221, 219,
+ 194, 11, 204, 165, 221, 219, 205, 209, 77, 221, 219, 55, 205, 209, 77,
+ 221, 219, 251, 151, 57, 221, 219, 3, 201, 131, 215, 220, 1, 64, 215, 220,
+ 1, 70, 215, 220, 1, 68, 215, 220, 1, 71, 215, 220, 1, 160, 215, 220, 1,
+ 221, 250, 215, 220, 1, 231, 233, 215, 220, 1, 231, 84, 215, 220, 1, 247,
+ 19, 215, 220, 1, 246, 117, 215, 220, 1, 223, 62, 215, 220, 1, 223, 6,
+ 215, 220, 1, 212, 201, 215, 220, 1, 198, 83, 215, 220, 1, 198, 71, 215,
+ 220, 1, 237, 161, 215, 220, 1, 237, 151, 215, 220, 1, 237, 145, 215, 220,
+ 1, 213, 178, 215, 220, 1, 189, 215, 220, 1, 199, 240, 215, 220, 1, 238,
+ 0, 215, 220, 1, 237, 40, 215, 220, 1, 181, 215, 220, 1, 166, 215, 220, 1,
+ 210, 94, 215, 220, 1, 249, 3, 215, 220, 1, 248, 54, 215, 220, 1, 172,
+ 215, 220, 1, 168, 215, 220, 1, 167, 215, 220, 1, 177, 215, 220, 1, 196,
+ 157, 215, 220, 1, 188, 215, 220, 1, 144, 215, 220, 1, 207, 3, 215, 220,
+ 1, 207, 156, 215, 220, 205, 209, 77, 221, 210, 1, 64, 221, 210, 1, 252,
+ 33, 221, 210, 1, 70, 221, 210, 1, 223, 224, 221, 210, 1, 68, 221, 210, 1,
+ 196, 251, 221, 210, 1, 71, 221, 210, 1, 251, 63, 221, 210, 1, 74, 221,
+ 210, 1, 250, 8, 221, 210, 1, 160, 221, 210, 1, 221, 250, 221, 210, 1,
+ 231, 233, 221, 210, 1, 231, 120, 221, 210, 1, 231, 84, 221, 210, 1, 214,
+ 165, 221, 210, 1, 247, 19, 221, 210, 1, 246, 117, 221, 210, 1, 223, 62,
+ 221, 210, 1, 223, 6, 221, 210, 1, 223, 28, 221, 210, 1, 212, 201, 221,
+ 210, 1, 198, 83, 221, 210, 1, 198, 71, 221, 210, 1, 237, 161, 221, 210,
+ 1, 237, 151, 221, 210, 1, 207, 3, 221, 210, 1, 237, 145, 221, 210, 1,
+ 213, 178, 221, 210, 1, 189, 221, 210, 1, 199, 240, 221, 210, 1, 238, 0,
+ 221, 210, 1, 237, 40, 221, 210, 1, 181, 221, 210, 1, 166, 221, 210, 1,
+ 210, 94, 221, 210, 1, 249, 3, 221, 210, 1, 248, 159, 221, 210, 1, 248,
+ 54, 221, 210, 1, 172, 221, 210, 1, 168, 221, 210, 1, 167, 221, 210, 1,
+ 177, 221, 210, 1, 196, 157, 221, 210, 1, 204, 64, 221, 210, 1, 188, 221,
+ 210, 1, 144, 221, 210, 3, 250, 168, 221, 210, 18, 3, 252, 33, 221, 210,
+ 18, 3, 70, 221, 210, 18, 3, 223, 224, 221, 210, 18, 3, 68, 221, 210, 18,
+ 3, 196, 251, 221, 210, 18, 3, 71, 221, 210, 18, 3, 251, 63, 221, 210, 18,
+ 3, 74, 221, 210, 18, 3, 250, 8, 221, 210, 3, 212, 241, 221, 210, 3, 196,
+ 11, 221, 210, 17, 192, 76, 221, 210, 17, 101, 221, 210, 17, 104, 221,
+ 210, 17, 133, 221, 210, 17, 134, 221, 210, 17, 151, 221, 210, 17, 170,
+ 221, 210, 17, 179, 221, 210, 17, 174, 221, 210, 17, 182, 230, 219, 3, 38,
+ 250, 169, 58, 230, 219, 3, 246, 234, 230, 219, 3, 250, 168, 230, 219, 3,
+ 196, 6, 230, 219, 1, 64, 230, 219, 1, 252, 33, 230, 219, 1, 70, 230, 219,
+ 1, 223, 224, 230, 219, 1, 68, 230, 219, 1, 196, 251, 230, 219, 1, 118,
+ 150, 230, 219, 1, 118, 165, 230, 219, 1, 234, 171, 230, 219, 1, 251, 63,
+ 230, 219, 1, 211, 194, 230, 219, 1, 250, 8, 230, 219, 1, 160, 230, 219,
+ 1, 221, 250, 230, 219, 1, 231, 233, 230, 219, 1, 231, 84, 230, 219, 1,
+ 214, 165, 230, 219, 1, 247, 19, 230, 219, 1, 246, 117, 230, 219, 1, 223,
+ 62, 230, 219, 1, 223, 28, 230, 219, 1, 212, 201, 230, 219, 1, 198, 83,
+ 230, 219, 1, 198, 71, 230, 219, 1, 237, 161, 230, 219, 1, 237, 145, 230,
+ 219, 1, 213, 178, 230, 219, 1, 189, 230, 219, 1, 199, 240, 230, 219, 1,
+ 238, 0, 230, 219, 1, 237, 40, 230, 219, 1, 181, 230, 219, 1, 166, 230,
+ 219, 1, 210, 94, 230, 219, 1, 249, 3, 230, 219, 1, 248, 54, 230, 219, 1,
+ 172, 230, 219, 1, 168, 230, 219, 1, 167, 230, 219, 1, 177, 230, 219, 1,
+ 219, 137, 230, 219, 1, 196, 157, 230, 219, 1, 204, 64, 230, 219, 1, 202,
+ 92, 230, 219, 1, 188, 230, 219, 1, 144, 38, 248, 18, 63, 230, 219, 3,
+ 212, 241, 230, 219, 3, 249, 246, 230, 219, 18, 3, 252, 33, 230, 219, 18,
+ 3, 70, 230, 219, 18, 3, 223, 224, 230, 219, 18, 3, 68, 230, 219, 18, 3,
+ 196, 251, 230, 219, 18, 3, 118, 150, 230, 219, 18, 3, 118, 207, 4, 230,
+ 219, 18, 3, 234, 171, 230, 219, 18, 3, 251, 63, 230, 219, 18, 3, 211,
+ 194, 230, 219, 18, 3, 250, 8, 230, 219, 3, 196, 11, 230, 219, 211, 219,
+ 230, 219, 250, 9, 220, 2, 77, 230, 219, 3, 209, 204, 230, 219, 1, 196,
+ 120, 250, 168, 230, 219, 1, 196, 120, 55, 250, 168, 230, 219, 1, 118,
+ 207, 4, 230, 219, 1, 118, 219, 138, 230, 219, 18, 3, 118, 165, 230, 219,
+ 18, 3, 118, 219, 138, 38, 230, 219, 17, 192, 76, 38, 230, 219, 17, 101,
+ 38, 230, 219, 17, 104, 38, 230, 219, 17, 133, 38, 230, 219, 17, 134, 38,
+ 230, 219, 17, 151, 38, 230, 219, 17, 170, 38, 230, 219, 1, 64, 38, 230,
+ 219, 1, 160, 38, 230, 219, 1, 181, 38, 230, 219, 1, 196, 39, 38, 230,
+ 219, 1, 166, 214, 175, 1, 64, 214, 175, 1, 252, 33, 214, 175, 1, 70, 214,
+ 175, 1, 223, 224, 214, 175, 1, 68, 214, 175, 1, 196, 251, 214, 175, 1,
+ 118, 150, 214, 175, 1, 118, 207, 4, 214, 175, 1, 118, 165, 214, 175, 1,
+ 118, 219, 138, 214, 175, 1, 71, 214, 175, 1, 251, 63, 214, 175, 1, 74,
+ 214, 175, 1, 250, 8, 214, 175, 1, 160, 214, 175, 1, 221, 250, 214, 175,
+ 1, 231, 233, 214, 175, 1, 231, 84, 214, 175, 1, 214, 165, 214, 175, 1,
+ 214, 114, 214, 175, 1, 247, 19, 214, 175, 1, 246, 117, 214, 175, 1, 223,
+ 62, 214, 175, 1, 223, 28, 214, 175, 1, 212, 201, 214, 175, 1, 212, 183,
+ 214, 175, 1, 198, 83, 214, 175, 1, 198, 71, 214, 175, 1, 237, 161, 214,
+ 175, 1, 237, 145, 214, 175, 1, 213, 178, 214, 175, 1, 189, 214, 175, 1,
+ 199, 240, 214, 175, 1, 238, 0, 214, 175, 1, 237, 40, 214, 175, 1, 181,
+ 214, 175, 1, 214, 65, 214, 175, 1, 166, 214, 175, 1, 210, 94, 214, 175,
+ 1, 249, 3, 214, 175, 1, 248, 54, 214, 175, 1, 172, 214, 175, 1, 216, 178,
+ 214, 175, 1, 168, 214, 175, 1, 167, 214, 175, 1, 207, 156, 214, 175, 1,
+ 177, 214, 175, 1, 219, 222, 214, 175, 1, 194, 169, 214, 175, 1, 204, 64,
+ 214, 175, 1, 202, 92, 214, 175, 1, 188, 214, 175, 1, 144, 214, 175, 18,
+ 3, 252, 33, 214, 175, 18, 3, 70, 214, 175, 18, 3, 223, 224, 214, 175, 18,
+ 3, 68, 214, 175, 18, 3, 196, 251, 214, 175, 18, 3, 118, 150, 214, 175,
+ 18, 3, 118, 207, 4, 214, 175, 18, 3, 118, 165, 214, 175, 18, 3, 118, 219,
+ 138, 214, 175, 18, 3, 71, 214, 175, 18, 3, 251, 63, 214, 175, 18, 3, 74,
+ 214, 175, 18, 3, 250, 8, 214, 175, 3, 196, 11, 214, 175, 3, 246, 234,
+ 214, 175, 3, 250, 168, 214, 175, 3, 196, 6, 214, 175, 3, 212, 241, 214,
+ 175, 3, 249, 246, 214, 175, 3, 52, 250, 168, 214, 175, 211, 219, 214,
+ 175, 203, 112, 214, 175, 237, 208, 214, 175, 55, 237, 208, 214, 175, 242,
+ 38, 214, 175, 231, 197, 232, 247, 214, 175, 251, 151, 57, 214, 175, 17,
+ 192, 76, 214, 175, 17, 101, 214, 175, 17, 104, 214, 175, 17, 133, 214,
+ 175, 17, 134, 214, 175, 17, 151, 214, 175, 17, 170, 214, 175, 17, 179,
+ 214, 175, 17, 174, 214, 175, 17, 182, 214, 175, 55, 242, 38, 214, 175,
+ 209, 231, 77, 214, 175, 223, 147, 57, 214, 175, 206, 36, 77, 214, 175, 1,
+ 196, 120, 250, 168, 214, 175, 3, 223, 13, 214, 175, 3, 197, 39, 199, 67,
+ 250, 197, 199, 67, 1, 64, 199, 67, 1, 252, 33, 199, 67, 1, 70, 199, 67,
+ 1, 223, 224, 199, 67, 1, 68, 199, 67, 1, 196, 251, 199, 67, 1, 118, 150,
+ 199, 67, 1, 118, 207, 4, 199, 67, 1, 118, 165, 199, 67, 1, 118, 219, 138,
+ 199, 67, 1, 71, 199, 67, 1, 251, 63, 199, 67, 1, 74, 199, 67, 1, 250, 8,
+ 199, 67, 1, 160, 199, 67, 1, 221, 250, 199, 67, 1, 231, 233, 199, 67, 1,
+ 231, 84, 199, 67, 1, 214, 165, 199, 67, 1, 247, 19, 199, 67, 1, 246, 117,
+ 199, 67, 1, 223, 62, 199, 67, 1, 223, 28, 199, 67, 1, 212, 201, 199, 67,
+ 1, 198, 83, 199, 67, 1, 198, 71, 199, 67, 1, 237, 161, 199, 67, 1, 237,
+ 145, 199, 67, 1, 213, 178, 199, 67, 1, 189, 199, 67, 1, 199, 240, 199,
+ 67, 1, 238, 0, 199, 67, 1, 237, 40, 199, 67, 1, 181, 199, 67, 1, 166,
+ 199, 67, 1, 210, 94, 199, 67, 1, 249, 3, 199, 67, 1, 248, 54, 199, 67, 1,
+ 172, 199, 67, 1, 168, 199, 67, 1, 167, 199, 67, 1, 177, 199, 67, 1, 196,
+ 157, 199, 67, 1, 204, 64, 199, 67, 1, 202, 92, 199, 67, 1, 188, 199, 67,
+ 1, 144, 199, 67, 18, 3, 252, 33, 199, 67, 18, 3, 70, 199, 67, 18, 3, 223,
+ 224, 199, 67, 18, 3, 68, 199, 67, 18, 3, 196, 251, 199, 67, 18, 3, 118,
+ 150, 199, 67, 18, 3, 118, 207, 4, 199, 67, 18, 3, 118, 165, 199, 67, 18,
+ 3, 118, 219, 138, 199, 67, 18, 3, 71, 199, 67, 18, 3, 203, 195, 71, 199,
+ 67, 18, 3, 251, 63, 199, 67, 18, 3, 74, 199, 67, 18, 3, 203, 195, 74,
+ 199, 67, 18, 3, 250, 8, 199, 67, 3, 246, 234, 199, 67, 3, 250, 168, 199,
+ 67, 3, 196, 6, 199, 67, 3, 196, 11, 199, 67, 3, 212, 241, 199, 67, 3,
+ 249, 246, 199, 67, 230, 145, 199, 67, 251, 151, 57, 199, 67, 211, 219,
+ 199, 67, 17, 192, 76, 199, 67, 17, 101, 199, 67, 17, 104, 199, 67, 17,
+ 133, 199, 67, 17, 134, 199, 67, 17, 151, 199, 67, 17, 170, 199, 67, 17,
+ 179, 199, 67, 17, 174, 199, 67, 17, 182, 203, 114, 1, 64, 203, 114, 1,
+ 252, 33, 203, 114, 1, 70, 203, 114, 1, 223, 224, 203, 114, 1, 68, 203,
+ 114, 1, 196, 251, 203, 114, 1, 118, 150, 203, 114, 1, 118, 207, 4, 203,
+ 114, 1, 118, 165, 203, 114, 1, 118, 219, 138, 203, 114, 1, 71, 203, 114,
+ 1, 251, 63, 203, 114, 1, 74, 203, 114, 1, 250, 8, 203, 114, 1, 160, 203,
+ 114, 1, 221, 250, 203, 114, 1, 231, 233, 203, 114, 1, 231, 84, 203, 114,
+ 1, 214, 165, 203, 114, 1, 247, 19, 203, 114, 1, 246, 117, 203, 114, 1,
+ 223, 62, 203, 114, 1, 223, 28, 203, 114, 1, 212, 201, 203, 114, 1, 198,
+ 83, 203, 114, 1, 198, 71, 203, 114, 1, 237, 161, 203, 114, 1, 237, 145,
+ 203, 114, 1, 213, 178, 203, 114, 1, 189, 203, 114, 1, 199, 240, 203, 114,
+ 1, 238, 0, 203, 114, 1, 237, 40, 203, 114, 1, 181, 203, 114, 1, 166, 203,
+ 114, 1, 210, 94, 203, 114, 1, 249, 3, 203, 114, 1, 248, 54, 203, 114, 1,
+ 172, 203, 114, 1, 168, 203, 114, 1, 167, 203, 114, 1, 177, 203, 114, 1,
+ 196, 157, 203, 114, 1, 204, 64, 203, 114, 1, 202, 92, 203, 114, 1, 188,
+ 203, 114, 1, 144, 203, 114, 18, 3, 252, 33, 203, 114, 18, 3, 70, 203,
+ 114, 18, 3, 223, 224, 203, 114, 18, 3, 68, 203, 114, 18, 3, 196, 251,
+ 203, 114, 18, 3, 118, 150, 203, 114, 18, 3, 118, 207, 4, 203, 114, 18, 3,
+ 71, 203, 114, 18, 3, 251, 63, 203, 114, 18, 3, 74, 203, 114, 18, 3, 250,
+ 8, 203, 114, 3, 246, 234, 203, 114, 3, 250, 168, 203, 114, 3, 196, 6,
+ 203, 114, 3, 196, 11, 203, 114, 3, 212, 241, 203, 114, 3, 203, 113, 203,
+ 114, 237, 208, 203, 114, 55, 237, 208, 203, 114, 204, 166, 236, 114, 203,
+ 114, 204, 166, 161, 203, 114, 207, 196, 217, 126, 203, 114, 207, 196,
+ 217, 125, 203, 114, 207, 196, 217, 124, 203, 114, 234, 80, 80, 199, 245,
+ 77, 203, 114, 205, 209, 122, 4, 198, 180, 26, 197, 172, 211, 149, 203,
+ 114, 205, 209, 122, 4, 198, 180, 26, 235, 111, 238, 192, 203, 114, 205,
+ 209, 122, 4, 208, 13, 26, 235, 111, 238, 192, 203, 114, 205, 209, 122, 4,
+ 208, 13, 26, 235, 111, 55, 238, 192, 203, 114, 205, 209, 122, 4, 208, 13,
+ 26, 235, 111, 198, 170, 238, 192, 203, 114, 205, 209, 122, 55, 207, 81,
+ 203, 114, 205, 209, 122, 55, 207, 82, 4, 208, 12, 203, 114, 205, 209,
+ 122, 4, 55, 238, 192, 203, 114, 205, 209, 122, 4, 198, 170, 238, 192,
+ 203, 114, 205, 209, 122, 4, 208, 170, 238, 192, 203, 114, 205, 209, 122,
+ 4, 204, 163, 238, 192, 203, 114, 205, 209, 122, 4, 242, 128, 26, 208, 12,
+ 203, 114, 205, 209, 122, 4, 242, 128, 26, 103, 234, 82, 203, 114, 205,
+ 209, 122, 4, 242, 128, 26, 232, 119, 234, 82, 203, 114, 1, 199, 161, 250,
+ 249, 70, 203, 114, 1, 197, 222, 250, 249, 70, 203, 114, 1, 197, 222, 250,
+ 249, 223, 224, 203, 114, 1, 250, 249, 68, 203, 114, 18, 3, 250, 249, 68,
+ 203, 114, 18, 3, 250, 249, 196, 251, 216, 76, 1, 64, 216, 76, 1, 252, 33,
+ 216, 76, 1, 70, 216, 76, 1, 223, 224, 216, 76, 1, 68, 216, 76, 1, 196,
+ 251, 216, 76, 1, 118, 150, 216, 76, 1, 118, 207, 4, 216, 76, 1, 118, 165,
+ 216, 76, 1, 118, 219, 138, 216, 76, 1, 71, 216, 76, 1, 251, 63, 216, 76,
+ 1, 74, 216, 76, 1, 250, 8, 216, 76, 1, 160, 216, 76, 1, 221, 250, 216,
+ 76, 1, 231, 233, 216, 76, 1, 231, 84, 216, 76, 1, 214, 165, 216, 76, 1,
+ 247, 19, 216, 76, 1, 246, 117, 216, 76, 1, 223, 62, 216, 76, 1, 223, 28,
+ 216, 76, 1, 212, 201, 216, 76, 1, 198, 83, 216, 76, 1, 198, 71, 216, 76,
+ 1, 237, 161, 216, 76, 1, 237, 145, 216, 76, 1, 213, 178, 216, 76, 1, 189,
+ 216, 76, 1, 199, 240, 216, 76, 1, 238, 0, 216, 76, 1, 237, 40, 216, 76,
+ 1, 181, 216, 76, 1, 166, 216, 76, 1, 210, 94, 216, 76, 1, 249, 3, 216,
+ 76, 1, 248, 54, 216, 76, 1, 172, 216, 76, 1, 168, 216, 76, 1, 167, 216,
+ 76, 1, 177, 216, 76, 1, 196, 157, 216, 76, 1, 204, 64, 216, 76, 1, 202,
+ 92, 216, 76, 1, 188, 216, 76, 1, 144, 216, 76, 1, 219, 137, 216, 76, 18,
+ 3, 252, 33, 216, 76, 18, 3, 70, 216, 76, 18, 3, 223, 224, 216, 76, 18, 3,
+ 68, 216, 76, 18, 3, 196, 251, 216, 76, 18, 3, 118, 150, 216, 76, 18, 3,
+ 118, 207, 4, 216, 76, 18, 3, 118, 165, 216, 76, 18, 3, 118, 219, 138,
+ 216, 76, 18, 3, 71, 216, 76, 18, 3, 251, 63, 216, 76, 18, 3, 74, 216, 76,
+ 18, 3, 250, 8, 216, 76, 3, 250, 168, 216, 76, 3, 196, 6, 216, 76, 3, 196,
+ 11, 216, 76, 3, 250, 109, 216, 76, 237, 208, 216, 76, 55, 237, 208, 216,
+ 76, 251, 151, 57, 216, 76, 3, 228, 149, 216, 76, 17, 192, 76, 216, 76,
+ 17, 101, 216, 76, 17, 104, 216, 76, 17, 133, 216, 76, 17, 134, 216, 76,
+ 17, 151, 216, 76, 17, 170, 216, 76, 17, 179, 216, 76, 17, 174, 216, 76,
+ 17, 182, 100, 248, 12, 4, 211, 150, 100, 207, 16, 248, 11, 100, 55, 248,
+ 12, 4, 211, 150, 100, 198, 170, 248, 12, 4, 211, 150, 100, 248, 12, 4,
+ 55, 211, 150, 100, 207, 16, 248, 12, 4, 211, 150, 100, 207, 16, 248, 12,
+ 4, 55, 211, 150, 100, 223, 121, 248, 11, 100, 223, 121, 248, 12, 4, 55,
+ 211, 150, 100, 201, 63, 248, 11, 100, 201, 63, 248, 12, 4, 211, 150, 100,
+ 201, 63, 248, 12, 4, 55, 211, 150, 100, 163, 201, 63, 248, 12, 4, 55,
+ 211, 150, 200, 137, 1, 64, 200, 137, 1, 252, 33, 200, 137, 1, 70, 200,
+ 137, 1, 223, 224, 200, 137, 1, 68, 200, 137, 1, 196, 251, 200, 137, 1,
+ 71, 200, 137, 1, 251, 63, 200, 137, 1, 74, 200, 137, 1, 250, 8, 200, 137,
+ 1, 160, 200, 137, 1, 221, 250, 200, 137, 1, 231, 233, 200, 137, 1, 231,
+ 84, 200, 137, 1, 214, 165, 200, 137, 1, 247, 19, 200, 137, 1, 246, 117,
+ 200, 137, 1, 223, 62, 200, 137, 1, 223, 28, 200, 137, 1, 212, 201, 200,
+ 137, 1, 198, 83, 200, 137, 1, 198, 71, 200, 137, 1, 237, 161, 200, 137,
+ 1, 237, 145, 200, 137, 1, 213, 178, 200, 137, 1, 189, 200, 137, 1, 199,
+ 240, 200, 137, 1, 238, 0, 200, 137, 1, 237, 40, 200, 137, 1, 181, 200,
+ 137, 1, 166, 200, 137, 1, 210, 94, 200, 137, 1, 249, 3, 200, 137, 1, 248,
+ 54, 200, 137, 1, 172, 200, 137, 1, 168, 200, 137, 1, 167, 200, 137, 1,
+ 177, 200, 137, 1, 196, 157, 200, 137, 1, 204, 64, 200, 137, 1, 188, 200,
+ 137, 1, 144, 200, 137, 1, 207, 3, 200, 137, 3, 250, 168, 200, 137, 3,
+ 196, 6, 200, 137, 18, 3, 252, 33, 200, 137, 18, 3, 70, 200, 137, 18, 3,
+ 223, 224, 200, 137, 18, 3, 68, 200, 137, 18, 3, 196, 251, 200, 137, 18,
+ 3, 71, 200, 137, 18, 3, 251, 63, 200, 137, 18, 3, 74, 200, 137, 18, 3,
+ 250, 8, 200, 137, 3, 196, 11, 200, 137, 3, 212, 241, 200, 137, 1, 250,
+ 112, 221, 250, 200, 137, 17, 192, 76, 200, 137, 17, 101, 200, 137, 17,
+ 104, 200, 137, 17, 133, 200, 137, 17, 134, 200, 137, 17, 151, 200, 137,
+ 17, 170, 200, 137, 17, 179, 200, 137, 17, 174, 200, 137, 17, 182, 251,
+ 67, 1, 160, 251, 67, 1, 221, 250, 251, 67, 1, 214, 165, 251, 67, 1, 181,
+ 251, 67, 1, 189, 251, 67, 1, 250, 249, 189, 251, 67, 1, 166, 251, 67, 1,
+ 210, 94, 251, 67, 1, 249, 3, 251, 67, 1, 172, 251, 67, 1, 223, 62, 251,
+ 67, 1, 246, 117, 251, 67, 1, 199, 240, 251, 67, 1, 167, 251, 67, 1, 177,
+ 251, 67, 1, 188, 251, 67, 1, 212, 201, 251, 67, 1, 144, 251, 67, 1, 64,
+ 251, 67, 1, 238, 0, 251, 67, 1, 237, 40, 251, 67, 1, 231, 233, 251, 67,
+ 1, 250, 249, 231, 233, 251, 67, 1, 231, 84, 251, 67, 1, 248, 54, 251, 67,
+ 1, 223, 28, 251, 67, 1, 250, 249, 249, 3, 251, 67, 116, 3, 217, 35, 177,
+ 251, 67, 116, 3, 217, 35, 167, 251, 67, 116, 3, 217, 35, 219, 196, 167,
+ 251, 67, 18, 3, 64, 251, 67, 18, 3, 252, 33, 251, 67, 18, 3, 70, 251, 67,
+ 18, 3, 223, 224, 251, 67, 18, 3, 68, 251, 67, 18, 3, 196, 251, 251, 67,
+ 18, 3, 71, 251, 67, 18, 3, 249, 241, 251, 67, 18, 3, 74, 251, 67, 18, 3,
+ 251, 63, 251, 67, 18, 3, 250, 241, 251, 67, 3, 221, 181, 251, 67, 17,
+ 192, 76, 251, 67, 17, 101, 251, 67, 17, 104, 251, 67, 17, 133, 251, 67,
+ 17, 134, 251, 67, 17, 151, 251, 67, 17, 170, 251, 67, 17, 179, 251, 67,
+ 17, 174, 251, 67, 17, 182, 251, 67, 31, 200, 30, 251, 67, 31, 197, 239,
+ 251, 67, 3, 2, 205, 208, 251, 67, 3, 205, 208, 251, 67, 3, 206, 203, 251,
+ 67, 16, 196, 39, 236, 133, 1, 64, 236, 133, 1, 252, 33, 236, 133, 1, 70,
+ 236, 133, 1, 223, 224, 236, 133, 1, 68, 236, 133, 1, 196, 251, 236, 133,
+ 1, 71, 236, 133, 1, 251, 63, 236, 133, 1, 74, 236, 133, 1, 250, 8, 236,
+ 133, 1, 160, 236, 133, 1, 221, 250, 236, 133, 1, 231, 233, 236, 133, 1,
+ 231, 84, 236, 133, 1, 214, 165, 236, 133, 1, 247, 19, 236, 133, 1, 246,
+ 117, 236, 133, 1, 223, 62, 236, 133, 1, 223, 28, 236, 133, 1, 212, 201,
+ 236, 133, 1, 198, 83, 236, 133, 1, 198, 71, 236, 133, 1, 237, 161, 236,
+ 133, 1, 237, 145, 236, 133, 1, 213, 178, 236, 133, 1, 189, 236, 133, 1,
+ 199, 240, 236, 133, 1, 238, 0, 236, 133, 1, 237, 40, 236, 133, 1, 181,
+ 236, 133, 1, 166, 236, 133, 1, 210, 94, 236, 133, 1, 249, 3, 236, 133, 1,
+ 248, 54, 236, 133, 1, 172, 236, 133, 1, 168, 236, 133, 1, 167, 236, 133,
+ 1, 177, 236, 133, 1, 196, 157, 236, 133, 1, 204, 64, 236, 133, 1, 202,
+ 92, 236, 133, 1, 188, 236, 133, 1, 144, 236, 133, 1, 207, 3, 236, 133,
+ 18, 3, 252, 33, 236, 133, 18, 3, 70, 236, 133, 18, 3, 223, 224, 236, 133,
+ 18, 3, 68, 236, 133, 18, 3, 196, 251, 236, 133, 18, 3, 118, 150, 236,
+ 133, 18, 3, 118, 207, 4, 236, 133, 18, 3, 71, 236, 133, 18, 3, 251, 63,
+ 236, 133, 18, 3, 74, 236, 133, 18, 3, 250, 8, 236, 133, 3, 250, 168, 236,
+ 133, 3, 196, 6, 236, 133, 3, 196, 11, 236, 133, 3, 212, 241, 236, 133,
+ 251, 151, 57, 194, 141, 242, 117, 6, 1, 214, 164, 194, 141, 242, 117, 6,
+ 1, 64, 194, 141, 242, 117, 6, 1, 194, 72, 194, 141, 242, 117, 6, 1, 192,
+ 214, 194, 141, 242, 117, 6, 1, 168, 194, 141, 242, 117, 6, 1, 193, 1,
+ 194, 141, 242, 117, 6, 1, 223, 224, 194, 141, 242, 117, 6, 1, 196, 251,
+ 194, 141, 242, 117, 6, 1, 71, 194, 141, 242, 117, 6, 1, 74, 194, 141,
+ 242, 117, 6, 1, 250, 214, 194, 141, 242, 117, 6, 1, 231, 233, 194, 141,
+ 242, 117, 6, 1, 221, 113, 194, 141, 242, 117, 6, 1, 234, 51, 194, 141,
+ 242, 117, 6, 1, 192, 193, 194, 141, 242, 117, 6, 1, 197, 111, 194, 141,
+ 242, 117, 6, 1, 234, 70, 194, 141, 242, 117, 6, 1, 212, 3, 194, 141, 242,
+ 117, 6, 1, 198, 78, 194, 141, 242, 117, 6, 1, 212, 227, 194, 141, 242,
+ 117, 6, 1, 238, 0, 194, 141, 242, 117, 6, 1, 250, 26, 194, 141, 242, 117,
+ 6, 1, 250, 241, 194, 141, 242, 117, 6, 1, 247, 124, 194, 141, 242, 117,
+ 6, 1, 209, 51, 194, 141, 242, 117, 6, 1, 229, 135, 194, 141, 242, 117, 6,
+ 1, 229, 23, 194, 141, 242, 117, 6, 1, 228, 206, 194, 141, 242, 117, 6, 1,
+ 230, 28, 194, 141, 242, 117, 6, 1, 202, 43, 194, 141, 242, 117, 6, 1,
+ 203, 97, 194, 141, 242, 117, 6, 1, 195, 253, 194, 141, 242, 117, 2, 1,
+ 214, 164, 194, 141, 242, 117, 2, 1, 64, 194, 141, 242, 117, 2, 1, 194,
+ 72, 194, 141, 242, 117, 2, 1, 192, 214, 194, 141, 242, 117, 2, 1, 168,
+ 194, 141, 242, 117, 2, 1, 193, 1, 194, 141, 242, 117, 2, 1, 223, 224,
+ 194, 141, 242, 117, 2, 1, 196, 251, 194, 141, 242, 117, 2, 1, 71, 194,
+ 141, 242, 117, 2, 1, 74, 194, 141, 242, 117, 2, 1, 250, 214, 194, 141,
+ 242, 117, 2, 1, 231, 233, 194, 141, 242, 117, 2, 1, 221, 113, 194, 141,
+ 242, 117, 2, 1, 234, 51, 194, 141, 242, 117, 2, 1, 192, 193, 194, 141,
+ 242, 117, 2, 1, 197, 111, 194, 141, 242, 117, 2, 1, 234, 70, 194, 141,
+ 242, 117, 2, 1, 212, 3, 194, 141, 242, 117, 2, 1, 198, 78, 194, 141, 242,
+ 117, 2, 1, 212, 227, 194, 141, 242, 117, 2, 1, 238, 0, 194, 141, 242,
+ 117, 2, 1, 250, 26, 194, 141, 242, 117, 2, 1, 250, 241, 194, 141, 242,
+ 117, 2, 1, 247, 124, 194, 141, 242, 117, 2, 1, 209, 51, 194, 141, 242,
+ 117, 2, 1, 229, 135, 194, 141, 242, 117, 2, 1, 229, 23, 194, 141, 242,
+ 117, 2, 1, 228, 206, 194, 141, 242, 117, 2, 1, 230, 28, 194, 141, 242,
+ 117, 2, 1, 202, 43, 194, 141, 242, 117, 2, 1, 203, 97, 194, 141, 242,
+ 117, 2, 1, 195, 253, 194, 141, 242, 117, 17, 192, 76, 194, 141, 242, 117,
+ 17, 101, 194, 141, 242, 117, 17, 104, 194, 141, 242, 117, 17, 133, 194,
+ 141, 242, 117, 17, 134, 194, 141, 242, 117, 17, 151, 194, 141, 242, 117,
+ 17, 170, 194, 141, 242, 117, 17, 179, 194, 141, 242, 117, 17, 174, 194,
+ 141, 242, 117, 17, 182, 194, 141, 242, 117, 31, 200, 30, 194, 141, 242,
+ 117, 31, 197, 239, 194, 141, 242, 117, 31, 199, 184, 194, 141, 242, 117,
+ 31, 232, 126, 194, 141, 242, 117, 31, 233, 3, 194, 141, 242, 117, 31,
+ 203, 25, 194, 141, 242, 117, 31, 204, 140, 194, 141, 242, 117, 31, 234,
+ 137, 194, 141, 242, 117, 31, 214, 11, 194, 141, 242, 117, 211, 219, 236,
+ 181, 251, 37, 1, 64, 236, 181, 251, 37, 1, 252, 33, 236, 181, 251, 37, 1,
+ 70, 236, 181, 251, 37, 1, 223, 224, 236, 181, 251, 37, 1, 68, 236, 181,
+ 251, 37, 1, 196, 251, 236, 181, 251, 37, 1, 71, 236, 181, 251, 37, 1, 74,
+ 236, 181, 251, 37, 1, 160, 236, 181, 251, 37, 1, 221, 250, 236, 181, 251,
+ 37, 1, 231, 233, 236, 181, 251, 37, 1, 231, 84, 236, 181, 251, 37, 1,
+ 214, 165, 236, 181, 251, 37, 1, 247, 19, 236, 181, 251, 37, 1, 246, 117,
+ 236, 181, 251, 37, 1, 223, 62, 236, 181, 251, 37, 1, 212, 201, 236, 181,
+ 251, 37, 1, 198, 83, 236, 181, 251, 37, 1, 237, 161, 236, 181, 251, 37,
+ 1, 237, 145, 236, 181, 251, 37, 1, 213, 178, 236, 181, 251, 37, 1, 189,
+ 236, 181, 251, 37, 1, 199, 240, 236, 181, 251, 37, 1, 238, 0, 236, 181,
+ 251, 37, 1, 237, 40, 236, 181, 251, 37, 1, 181, 236, 181, 251, 37, 1,
+ 166, 236, 181, 251, 37, 1, 210, 94, 236, 181, 251, 37, 1, 249, 3, 236,
+ 181, 251, 37, 1, 248, 54, 236, 181, 251, 37, 1, 172, 236, 181, 251, 37,
+ 1, 168, 236, 181, 251, 37, 1, 192, 164, 236, 181, 251, 37, 1, 167, 236,
+ 181, 251, 37, 1, 177, 236, 181, 251, 37, 1, 196, 157, 236, 181, 251, 37,
+ 1, 204, 64, 236, 181, 251, 37, 1, 202, 92, 236, 181, 251, 37, 1, 188,
+ 236, 181, 251, 37, 1, 144, 236, 181, 251, 37, 1, 219, 137, 236, 181, 251,
+ 37, 1, 192, 112, 236, 181, 251, 37, 18, 3, 252, 33, 236, 181, 251, 37,
+ 18, 3, 70, 236, 181, 251, 37, 18, 3, 223, 224, 236, 181, 251, 37, 18, 3,
+ 68, 236, 181, 251, 37, 18, 3, 196, 251, 236, 181, 251, 37, 18, 3, 71,
+ 236, 181, 251, 37, 18, 3, 251, 63, 236, 181, 251, 37, 18, 3, 74, 236,
+ 181, 251, 37, 3, 250, 168, 236, 181, 251, 37, 3, 246, 234, 236, 181, 251,
+ 37, 3, 230, 80, 236, 181, 251, 37, 196, 11, 236, 181, 251, 37, 209, 111,
+ 215, 49, 57, 236, 181, 251, 37, 217, 35, 168, 236, 181, 251, 37, 88, 167,
+ 236, 181, 251, 37, 217, 35, 167, 236, 181, 251, 37, 3, 212, 241, 236,
+ 181, 251, 37, 55, 237, 208, 236, 181, 251, 37, 231, 197, 232, 247, 236,
+ 181, 251, 37, 234, 80, 80, 199, 245, 77, 236, 181, 251, 37, 17, 192, 76,
+ 236, 181, 251, 37, 17, 101, 236, 181, 251, 37, 17, 104, 236, 181, 251,
+ 37, 17, 133, 236, 181, 251, 37, 17, 134, 236, 181, 251, 37, 17, 151, 236,
+ 181, 251, 37, 17, 170, 236, 181, 251, 37, 17, 179, 236, 181, 251, 37, 17,
+ 174, 236, 181, 251, 37, 17, 182, 215, 58, 1, 64, 215, 58, 1, 252, 33,
+ 215, 58, 1, 70, 215, 58, 1, 223, 224, 215, 58, 1, 68, 215, 58, 1, 196,
+ 251, 215, 58, 1, 118, 150, 215, 58, 1, 118, 207, 4, 215, 58, 1, 71, 215,
+ 58, 1, 251, 63, 215, 58, 1, 74, 215, 58, 1, 250, 8, 215, 58, 1, 160, 215,
+ 58, 1, 221, 250, 215, 58, 1, 231, 233, 215, 58, 1, 231, 84, 215, 58, 1,
+ 214, 165, 215, 58, 1, 247, 19, 215, 58, 1, 246, 117, 215, 58, 1, 223, 62,
+ 215, 58, 1, 223, 28, 215, 58, 1, 212, 201, 215, 58, 1, 198, 83, 215, 58,
+ 1, 198, 71, 215, 58, 1, 237, 161, 215, 58, 1, 237, 145, 215, 58, 1, 213,
+ 178, 215, 58, 1, 189, 215, 58, 1, 199, 240, 215, 58, 1, 238, 0, 215, 58,
+ 1, 237, 40, 215, 58, 1, 181, 215, 58, 1, 166, 215, 58, 1, 210, 94, 215,
+ 58, 1, 249, 3, 215, 58, 1, 248, 54, 215, 58, 1, 172, 215, 58, 1, 168,
+ 215, 58, 1, 167, 215, 58, 1, 177, 215, 58, 1, 196, 157, 215, 58, 1, 204,
+ 64, 215, 58, 1, 202, 92, 215, 58, 1, 188, 215, 58, 1, 144, 215, 58, 1,
+ 219, 137, 215, 58, 1, 207, 3, 215, 58, 18, 3, 252, 33, 215, 58, 18, 3,
+ 70, 215, 58, 18, 3, 223, 224, 215, 58, 18, 3, 68, 215, 58, 18, 3, 196,
+ 251, 215, 58, 18, 3, 118, 150, 215, 58, 18, 3, 118, 207, 4, 215, 58, 18,
+ 3, 71, 215, 58, 18, 3, 251, 63, 215, 58, 18, 3, 74, 215, 58, 18, 3, 250,
+ 8, 215, 58, 3, 250, 168, 215, 58, 3, 196, 6, 215, 58, 3, 196, 11, 215,
+ 58, 3, 249, 246, 215, 58, 3, 203, 113, 215, 58, 229, 237, 215, 58, 18, 3,
+ 209, 91, 71, 192, 99, 50, 1, 64, 192, 99, 50, 18, 3, 70, 192, 99, 50, 18,
+ 3, 197, 104, 192, 99, 50, 18, 3, 68, 192, 99, 50, 18, 3, 71, 192, 99, 50,
+ 18, 3, 212, 0, 192, 99, 50, 18, 3, 74, 192, 99, 50, 18, 3, 251, 63, 192,
+ 99, 50, 18, 3, 250, 8, 192, 99, 50, 18, 3, 207, 168, 70, 192, 99, 50, 18,
+ 220, 2, 77, 192, 99, 50, 1, 160, 192, 99, 50, 1, 221, 250, 192, 99, 50,
+ 1, 231, 233, 192, 99, 50, 1, 231, 84, 192, 99, 50, 1, 214, 165, 192, 99,
+ 50, 1, 247, 19, 192, 99, 50, 1, 246, 117, 192, 99, 50, 1, 223, 62, 192,
+ 99, 50, 1, 212, 201, 192, 99, 50, 1, 198, 83, 192, 99, 50, 1, 198, 71,
+ 192, 99, 50, 1, 237, 161, 192, 99, 50, 1, 237, 145, 192, 99, 50, 1, 213,
+ 178, 192, 99, 50, 1, 189, 192, 99, 50, 1, 199, 240, 192, 99, 50, 1, 238,
+ 0, 192, 99, 50, 1, 237, 40, 192, 99, 50, 1, 181, 192, 99, 50, 1, 166,
+ 192, 99, 50, 1, 210, 94, 192, 99, 50, 1, 249, 3, 192, 99, 50, 1, 248, 54,
+ 192, 99, 50, 1, 172, 192, 99, 50, 1, 198, 118, 192, 99, 50, 1, 198, 108,
+ 192, 99, 50, 1, 235, 17, 192, 99, 50, 1, 235, 11, 192, 99, 50, 1, 192,
+ 71, 192, 99, 50, 1, 192, 112, 192, 99, 50, 1, 255, 41, 192, 99, 50, 1,
+ 168, 192, 99, 50, 1, 167, 192, 99, 50, 1, 177, 192, 99, 50, 1, 196, 157,
+ 192, 99, 50, 1, 204, 64, 192, 99, 50, 1, 202, 92, 192, 99, 50, 1, 188,
+ 192, 99, 50, 1, 144, 192, 99, 50, 1, 221, 47, 192, 99, 50, 52, 116, 77,
+ 192, 99, 50, 3, 196, 11, 192, 99, 50, 3, 246, 234, 192, 99, 50, 3, 246,
+ 235, 4, 211, 150, 192, 99, 50, 3, 246, 237, 4, 211, 150, 192, 99, 50, 3,
+ 250, 168, 192, 99, 50, 3, 196, 6, 192, 99, 50, 242, 66, 1, 167, 192, 99,
+ 50, 242, 67, 1, 168, 192, 99, 50, 242, 67, 1, 167, 192, 99, 50, 242, 67,
+ 1, 177, 192, 99, 50, 242, 67, 1, 196, 157, 192, 99, 50, 88, 229, 246, 77,
+ 192, 99, 50, 242, 80, 229, 246, 77, 192, 99, 50, 122, 198, 103, 192, 99,
+ 50, 122, 204, 56, 192, 99, 50, 122, 55, 204, 56, 192, 99, 50, 122, 184,
+ 198, 103, 192, 99, 50, 88, 235, 103, 229, 246, 77, 192, 99, 50, 242, 80,
+ 235, 103, 229, 246, 77, 192, 99, 50, 201, 163, 202, 164, 1, 64, 202, 164,
+ 18, 3, 70, 202, 164, 18, 3, 197, 104, 202, 164, 18, 3, 68, 202, 164, 18,
+ 3, 71, 202, 164, 18, 3, 74, 202, 164, 18, 3, 212, 0, 202, 164, 18, 3,
+ 251, 63, 202, 164, 18, 3, 250, 8, 202, 164, 18, 3, 118, 150, 202, 164,
+ 18, 3, 118, 165, 202, 164, 18, 220, 2, 77, 202, 164, 1, 160, 202, 164, 1,
+ 221, 250, 202, 164, 1, 231, 233, 202, 164, 1, 231, 84, 202, 164, 1, 214,
+ 165, 202, 164, 1, 247, 19, 202, 164, 1, 246, 117, 202, 164, 1, 223, 62,
+ 202, 164, 1, 223, 28, 202, 164, 1, 212, 201, 202, 164, 1, 198, 83, 202,
+ 164, 1, 198, 71, 202, 164, 1, 237, 161, 202, 164, 1, 237, 145, 202, 164,
+ 1, 213, 178, 202, 164, 1, 189, 202, 164, 1, 199, 240, 202, 164, 1, 238,
+ 0, 202, 164, 1, 237, 40, 202, 164, 1, 181, 202, 164, 1, 166, 202, 164, 1,
+ 210, 94, 202, 164, 1, 249, 3, 202, 164, 1, 248, 54, 202, 164, 1, 172,
+ 202, 164, 1, 198, 118, 202, 164, 1, 198, 108, 202, 164, 1, 235, 17, 202,
+ 164, 1, 192, 71, 202, 164, 1, 192, 112, 202, 164, 1, 255, 41, 202, 164,
+ 1, 168, 202, 164, 1, 167, 202, 164, 1, 177, 202, 164, 1, 196, 157, 202,
+ 164, 1, 204, 64, 202, 164, 1, 202, 92, 202, 164, 1, 188, 202, 164, 1,
+ 144, 202, 164, 1, 221, 47, 202, 164, 3, 223, 13, 202, 164, 3, 197, 39,
+ 202, 164, 242, 66, 1, 167, 202, 164, 242, 66, 1, 177, 202, 164, 242, 66,
+ 1, 204, 64, 202, 164, 242, 66, 1, 188, 202, 164, 52, 116, 3, 232, 44,
+ 202, 164, 52, 116, 3, 222, 184, 202, 164, 52, 116, 3, 214, 167, 202, 164,
+ 52, 116, 3, 238, 95, 202, 164, 52, 116, 3, 215, 151, 202, 164, 52, 116,
+ 3, 249, 226, 202, 164, 52, 116, 3, 218, 236, 202, 164, 52, 116, 3, 150,
+ 202, 164, 52, 116, 3, 165, 202, 164, 52, 116, 3, 204, 66, 202, 164, 52,
+ 116, 3, 206, 158, 202, 164, 52, 116, 3, 255, 41, 202, 164, 3, 250, 168,
+ 202, 164, 3, 196, 6, 202, 164, 231, 146, 77, 202, 164, 201, 163, 202,
+ 164, 122, 198, 103, 202, 164, 122, 204, 56, 202, 164, 122, 55, 204, 56,
+ 202, 164, 122, 209, 204, 202, 164, 229, 246, 122, 4, 216, 30, 26, 201,
+ 124, 26, 198, 170, 232, 199, 202, 164, 229, 246, 122, 4, 216, 30, 26,
+ 201, 124, 26, 232, 199, 202, 164, 229, 246, 122, 4, 216, 30, 26, 201,
+ 123, 202, 164, 200, 16, 217, 126, 202, 164, 200, 16, 217, 125, 210, 198,
+ 242, 135, 230, 12, 1, 166, 210, 198, 242, 135, 230, 12, 1, 160, 210, 198,
+ 242, 135, 230, 12, 1, 177, 210, 198, 242, 135, 230, 12, 1, 172, 210, 198,
+ 242, 135, 230, 12, 1, 238, 0, 210, 198, 242, 135, 230, 12, 1, 192, 112,
+ 210, 198, 242, 135, 230, 12, 1, 196, 157, 210, 198, 242, 135, 230, 12, 1,
+ 214, 165, 210, 198, 242, 135, 230, 12, 1, 144, 210, 198, 242, 135, 230,
+ 12, 1, 231, 233, 210, 198, 242, 135, 230, 12, 1, 221, 250, 210, 198, 242,
+ 135, 230, 12, 1, 188, 210, 198, 242, 135, 230, 12, 1, 249, 3, 210, 198,
+ 242, 135, 230, 12, 1, 247, 19, 210, 198, 242, 135, 230, 12, 1, 189, 210,
+ 198, 242, 135, 230, 12, 1, 199, 240, 210, 198, 242, 135, 230, 12, 1, 181,
+ 210, 198, 242, 135, 230, 12, 1, 210, 94, 210, 198, 242, 135, 230, 12, 1,
+ 167, 210, 198, 242, 135, 230, 12, 1, 233, 97, 210, 198, 242, 135, 230,
+ 12, 1, 246, 117, 210, 198, 242, 135, 230, 12, 1, 64, 210, 198, 242, 135,
+ 230, 12, 1, 71, 210, 198, 242, 135, 230, 12, 1, 70, 210, 198, 242, 135,
+ 230, 12, 1, 74, 210, 198, 242, 135, 230, 12, 1, 68, 210, 198, 242, 135,
+ 230, 12, 1, 197, 119, 210, 198, 242, 135, 230, 12, 1, 228, 58, 210, 198,
+ 242, 135, 230, 12, 1, 52, 211, 93, 210, 198, 242, 135, 230, 12, 1, 52,
+ 222, 184, 210, 198, 242, 135, 230, 12, 1, 52, 200, 228, 210, 198, 242,
+ 135, 230, 12, 1, 52, 218, 236, 210, 198, 242, 135, 230, 12, 1, 52, 215,
+ 151, 210, 198, 242, 135, 230, 12, 1, 52, 165, 210, 198, 242, 135, 230,
+ 12, 1, 52, 194, 202, 210, 198, 242, 135, 230, 12, 1, 52, 214, 167, 210,
+ 198, 242, 135, 230, 12, 1, 52, 193, 148, 210, 198, 242, 135, 230, 12,
+ 207, 73, 158, 219, 84, 210, 198, 242, 135, 230, 12, 207, 73, 199, 18,
+ 210, 198, 242, 135, 230, 12, 206, 36, 231, 6, 201, 238, 210, 198, 242,
+ 135, 230, 12, 207, 73, 158, 184, 232, 243, 210, 198, 242, 135, 230, 12,
+ 207, 73, 158, 232, 243, 210, 198, 242, 135, 230, 12, 206, 36, 231, 6,
+ 201, 239, 232, 243, 210, 198, 242, 135, 230, 12, 206, 36, 158, 219, 84,
+ 210, 198, 242, 135, 230, 12, 206, 36, 199, 18, 210, 198, 242, 135, 230,
+ 12, 206, 36, 158, 184, 232, 243, 210, 198, 242, 135, 230, 12, 206, 36,
+ 158, 232, 243, 210, 198, 242, 135, 230, 12, 216, 161, 199, 18, 210, 198,
+ 242, 135, 230, 12, 231, 6, 201, 239, 196, 136, 210, 198, 242, 135, 230,
+ 12, 216, 161, 158, 184, 232, 243, 210, 198, 242, 135, 230, 12, 216, 161,
+ 158, 232, 243, 210, 198, 242, 135, 230, 12, 219, 50, 158, 219, 84, 210,
+ 198, 242, 135, 230, 12, 219, 50, 199, 18, 210, 198, 242, 135, 230, 12,
+ 231, 6, 201, 238, 210, 198, 242, 135, 230, 12, 219, 50, 158, 184, 232,
+ 243, 210, 198, 242, 135, 230, 12, 219, 50, 158, 232, 243, 210, 198, 242,
+ 135, 230, 12, 231, 6, 201, 239, 232, 243, 248, 52, 1, 64, 248, 52, 1,
+ 252, 33, 248, 52, 1, 70, 248, 52, 1, 223, 224, 248, 52, 1, 68, 248, 52,
+ 1, 196, 251, 248, 52, 1, 118, 150, 248, 52, 1, 118, 207, 4, 248, 52, 1,
+ 118, 165, 248, 52, 1, 71, 248, 52, 1, 251, 63, 248, 52, 1, 74, 248, 52,
+ 1, 250, 8, 248, 52, 1, 160, 248, 52, 1, 221, 250, 248, 52, 1, 231, 233,
+ 248, 52, 1, 231, 84, 248, 52, 1, 214, 165, 248, 52, 1, 247, 19, 248, 52,
+ 1, 246, 117, 248, 52, 1, 223, 62, 248, 52, 1, 223, 28, 248, 52, 1, 212,
+ 201, 248, 52, 1, 198, 83, 248, 52, 1, 198, 71, 248, 52, 1, 237, 161, 248,
+ 52, 1, 237, 145, 248, 52, 1, 213, 178, 248, 52, 1, 189, 248, 52, 1, 199,
+ 240, 248, 52, 1, 238, 0, 248, 52, 1, 237, 40, 248, 52, 1, 181, 248, 52,
+ 1, 166, 248, 52, 1, 210, 94, 248, 52, 1, 249, 3, 248, 52, 1, 248, 54,
+ 248, 52, 1, 172, 248, 52, 1, 168, 248, 52, 1, 167, 248, 52, 1, 177, 248,
+ 52, 1, 196, 157, 248, 52, 1, 204, 64, 248, 52, 1, 202, 92, 248, 52, 1,
+ 188, 248, 52, 1, 144, 248, 52, 18, 3, 252, 33, 248, 52, 18, 3, 70, 248,
+ 52, 18, 3, 223, 224, 248, 52, 18, 3, 68, 248, 52, 18, 3, 196, 251, 248,
+ 52, 18, 3, 118, 150, 248, 52, 18, 3, 118, 207, 4, 248, 52, 18, 3, 118,
+ 165, 248, 52, 18, 3, 71, 248, 52, 18, 3, 251, 63, 248, 52, 18, 3, 74,
+ 248, 52, 18, 3, 250, 8, 248, 52, 3, 246, 234, 248, 52, 3, 250, 168, 248,
+ 52, 3, 196, 6, 248, 52, 3, 196, 11, 248, 52, 3, 249, 246, 248, 52, 237,
+ 208, 248, 52, 55, 237, 208, 248, 52, 194, 11, 204, 165, 248, 52, 231,
+ 197, 232, 246, 248, 52, 231, 197, 232, 245, 248, 52, 17, 192, 76, 248,
+ 52, 17, 101, 248, 52, 17, 104, 248, 52, 17, 133, 248, 52, 17, 134, 248,
+ 52, 17, 151, 248, 52, 17, 170, 248, 52, 17, 179, 248, 52, 17, 174, 248,
+ 52, 17, 182, 248, 52, 31, 101, 248, 52, 31, 104, 248, 52, 31, 133, 248,
+ 52, 31, 134, 248, 52, 31, 151, 248, 52, 31, 170, 248, 52, 31, 179, 248,
+ 52, 31, 174, 248, 52, 31, 182, 248, 52, 31, 200, 30, 248, 52, 31, 197,
+ 239, 248, 52, 31, 199, 184, 248, 52, 31, 232, 126, 248, 52, 31, 233, 3,
+ 248, 52, 31, 203, 25, 248, 52, 31, 204, 140, 248, 52, 31, 234, 137, 248,
+ 52, 31, 214, 11, 248, 52, 228, 161, 197, 55, 77, 217, 128, 229, 246, 77,
+ 217, 128, 122, 204, 56, 217, 128, 1, 160, 217, 128, 1, 221, 250, 217,
+ 128, 1, 231, 233, 217, 128, 1, 214, 165, 217, 128, 1, 247, 19, 217, 128,
+ 1, 246, 117, 217, 128, 1, 223, 62, 217, 128, 1, 212, 201, 217, 128, 1,
+ 189, 217, 128, 1, 199, 240, 217, 128, 1, 238, 0, 217, 128, 1, 181, 217,
+ 128, 1, 166, 217, 128, 1, 210, 94, 217, 128, 1, 249, 3, 217, 128, 1, 172,
+ 217, 128, 1, 198, 118, 217, 128, 1, 198, 108, 217, 128, 1, 235, 17, 217,
+ 128, 1, 194, 169, 217, 128, 1, 192, 71, 217, 128, 1, 192, 112, 217, 128,
+ 1, 255, 41, 217, 128, 1, 168, 217, 128, 1, 167, 217, 128, 1, 177, 217,
+ 128, 1, 204, 64, 217, 128, 1, 188, 217, 128, 1, 144, 217, 128, 1, 64,
+ 217, 128, 201, 164, 1, 160, 217, 128, 201, 164, 1, 221, 250, 217, 128,
+ 201, 164, 1, 231, 233, 217, 128, 201, 164, 1, 214, 165, 217, 128, 201,
+ 164, 1, 247, 19, 217, 128, 201, 164, 1, 246, 117, 217, 128, 201, 164, 1,
+ 223, 62, 217, 128, 201, 164, 1, 212, 201, 217, 128, 201, 164, 1, 189,
+ 217, 128, 201, 164, 1, 199, 240, 217, 128, 201, 164, 1, 238, 0, 217, 128,
+ 201, 164, 1, 181, 217, 128, 201, 164, 1, 166, 217, 128, 201, 164, 1, 210,
+ 94, 217, 128, 201, 164, 1, 249, 3, 217, 128, 201, 164, 1, 172, 217, 128,
+ 201, 164, 1, 198, 118, 217, 128, 201, 164, 1, 198, 108, 217, 128, 201,
+ 164, 1, 235, 17, 217, 128, 201, 164, 1, 194, 169, 217, 128, 201, 164, 1,
+ 192, 71, 217, 128, 201, 164, 1, 192, 112, 217, 128, 201, 164, 1, 168,
+ 217, 128, 201, 164, 1, 167, 217, 128, 201, 164, 1, 177, 217, 128, 201,
+ 164, 1, 204, 64, 217, 128, 201, 164, 1, 188, 217, 128, 201, 164, 1, 144,
+ 217, 128, 201, 164, 1, 64, 217, 128, 18, 3, 252, 33, 217, 128, 18, 3, 70,
+ 217, 128, 18, 3, 68, 217, 128, 18, 3, 71, 217, 128, 18, 3, 74, 217, 128,
+ 3, 250, 168, 217, 128, 3, 246, 234, 217, 112, 127, 1, 64, 217, 112, 127,
+ 1, 252, 33, 217, 112, 127, 1, 70, 217, 112, 127, 1, 223, 224, 217, 112,
+ 127, 1, 68, 217, 112, 127, 1, 196, 251, 217, 112, 127, 1, 71, 217, 112,
+ 127, 1, 251, 63, 217, 112, 127, 1, 74, 217, 112, 127, 1, 250, 8, 217,
+ 112, 127, 1, 160, 217, 112, 127, 1, 221, 250, 217, 112, 127, 1, 231, 233,
+ 217, 112, 127, 1, 231, 84, 217, 112, 127, 1, 214, 165, 217, 112, 127, 1,
+ 247, 19, 217, 112, 127, 1, 246, 117, 217, 112, 127, 1, 223, 62, 217, 112,
+ 127, 1, 223, 28, 217, 112, 127, 1, 212, 201, 217, 112, 127, 1, 198, 83,
+ 217, 112, 127, 1, 198, 71, 217, 112, 127, 1, 237, 161, 217, 112, 127, 1,
+ 237, 145, 217, 112, 127, 1, 213, 178, 217, 112, 127, 1, 189, 217, 112,
+ 127, 1, 199, 240, 217, 112, 127, 1, 238, 0, 217, 112, 127, 1, 237, 40,
+ 217, 112, 127, 1, 181, 217, 112, 127, 1, 166, 217, 112, 127, 1, 210, 94,
+ 217, 112, 127, 1, 249, 3, 217, 112, 127, 1, 248, 54, 217, 112, 127, 1,
+ 172, 217, 112, 127, 1, 168, 217, 112, 127, 1, 167, 217, 112, 127, 1, 177,
+ 217, 112, 127, 1, 196, 157, 217, 112, 127, 1, 204, 64, 217, 112, 127, 1,
+ 202, 92, 217, 112, 127, 1, 188, 217, 112, 127, 1, 144, 217, 112, 127, 1,
+ 219, 137, 217, 112, 127, 1, 221, 47, 217, 112, 127, 1, 222, 234, 217,
+ 112, 127, 1, 198, 223, 217, 112, 127, 18, 3, 252, 33, 217, 112, 127, 18,
+ 3, 70, 217, 112, 127, 18, 3, 223, 224, 217, 112, 127, 18, 3, 68, 217,
+ 112, 127, 18, 3, 196, 251, 217, 112, 127, 18, 3, 118, 150, 217, 112, 127,
+ 18, 3, 71, 217, 112, 127, 18, 3, 251, 63, 217, 112, 127, 18, 3, 74, 217,
+ 112, 127, 18, 3, 250, 8, 217, 112, 127, 3, 250, 168, 217, 112, 127, 3,
+ 196, 6, 217, 112, 127, 3, 212, 241, 217, 112, 127, 3, 246, 236, 217, 112,
+ 127, 3, 230, 80, 217, 112, 127, 196, 11, 217, 112, 127, 207, 194, 217,
+ 112, 127, 208, 71, 217, 112, 127, 17, 192, 76, 217, 112, 127, 17, 101,
+ 217, 112, 127, 17, 104, 217, 112, 127, 17, 133, 217, 112, 127, 17, 134,
+ 217, 112, 127, 17, 151, 217, 112, 127, 17, 170, 217, 112, 127, 17, 179,
+ 217, 112, 127, 17, 174, 217, 112, 127, 17, 182, 230, 164, 127, 1, 64,
+ 230, 164, 127, 1, 252, 33, 230, 164, 127, 1, 70, 230, 164, 127, 1, 223,
+ 224, 230, 164, 127, 1, 68, 230, 164, 127, 1, 196, 251, 230, 164, 127, 1,
+ 234, 171, 230, 164, 127, 1, 251, 63, 230, 164, 127, 1, 211, 194, 230,
+ 164, 127, 1, 250, 8, 230, 164, 127, 1, 168, 230, 164, 127, 1, 196, 157,
+ 230, 164, 127, 1, 249, 3, 230, 164, 127, 1, 248, 54, 230, 164, 127, 1,
+ 172, 230, 164, 127, 1, 160, 230, 164, 127, 1, 221, 250, 230, 164, 127, 1,
+ 189, 230, 164, 127, 1, 199, 240, 230, 164, 127, 1, 177, 230, 164, 127, 1,
+ 231, 233, 230, 164, 127, 1, 231, 84, 230, 164, 127, 1, 238, 0, 230, 164,
+ 127, 1, 237, 40, 230, 164, 127, 1, 181, 230, 164, 127, 1, 247, 19, 230,
+ 164, 127, 1, 246, 117, 230, 164, 127, 1, 198, 83, 230, 164, 127, 1, 198,
+ 71, 230, 164, 127, 1, 219, 137, 230, 164, 127, 1, 223, 62, 230, 164, 127,
+ 1, 223, 28, 230, 164, 127, 1, 237, 161, 230, 164, 127, 1, 237, 145, 230,
+ 164, 127, 1, 214, 165, 230, 164, 127, 1, 166, 230, 164, 127, 1, 210, 94,
+ 230, 164, 127, 1, 144, 230, 164, 127, 1, 167, 230, 164, 127, 1, 188, 230,
+ 164, 127, 18, 3, 252, 33, 230, 164, 127, 18, 3, 70, 230, 164, 127, 18, 3,
+ 223, 224, 230, 164, 127, 18, 3, 68, 230, 164, 127, 18, 3, 196, 251, 230,
+ 164, 127, 18, 3, 234, 171, 230, 164, 127, 18, 3, 251, 63, 230, 164, 127,
+ 18, 3, 211, 194, 230, 164, 127, 18, 3, 250, 8, 230, 164, 127, 3, 250,
+ 168, 230, 164, 127, 3, 196, 6, 230, 164, 127, 196, 11, 230, 164, 127,
+ 211, 219, 230, 164, 127, 17, 192, 76, 230, 164, 127, 17, 101, 230, 164,
+ 127, 17, 104, 230, 164, 127, 17, 133, 230, 164, 127, 17, 134, 230, 164,
+ 127, 17, 151, 230, 164, 127, 17, 170, 230, 164, 127, 17, 179, 230, 164,
+ 127, 17, 174, 230, 164, 127, 17, 182, 217, 170, 1, 160, 217, 170, 1, 231,
+ 233, 217, 170, 1, 214, 165, 217, 170, 1, 166, 217, 170, 1, 249, 3, 217,
+ 170, 1, 172, 217, 170, 1, 189, 217, 170, 1, 238, 0, 217, 170, 1, 181,
+ 217, 170, 1, 247, 19, 217, 170, 1, 223, 62, 217, 170, 1, 212, 201, 217,
+ 170, 1, 168, 217, 170, 1, 167, 217, 170, 1, 177, 217, 170, 1, 196, 157,
+ 217, 170, 1, 188, 217, 170, 1, 64, 217, 170, 250, 210, 217, 170, 18, 3,
+ 70, 217, 170, 18, 3, 68, 217, 170, 18, 3, 71, 217, 170, 18, 3, 74, 217,
+ 170, 210, 211, 217, 170, 234, 80, 80, 205, 208, 219, 152, 1, 193, 24, 44,
+ 232, 109, 90, 199, 157, 44, 232, 109, 90, 211, 207, 44, 232, 109, 90,
+ 234, 140, 44, 232, 109, 90, 203, 23, 44, 232, 109, 90, 232, 129, 44, 232,
+ 109, 90, 199, 180, 44, 232, 109, 112, 234, 139, 44, 232, 109, 112, 203,
+ 22, 44, 232, 109, 90, 197, 242, 44, 232, 109, 90, 203, 32, 44, 232, 109,
+ 90, 203, 31, 44, 232, 109, 90, 200, 21, 44, 232, 109, 90, 234, 143, 44,
+ 232, 109, 112, 197, 241, 44, 232, 109, 112, 203, 30, 44, 232, 109, 90,
+ 233, 6, 44, 232, 109, 90, 208, 167, 44, 232, 109, 90, 230, 77, 44, 232,
+ 109, 90, 230, 76, 44, 232, 109, 112, 208, 165, 44, 232, 109, 235, 94,
+ 233, 81, 221, 182, 44, 3, 214, 197, 44, 3, 246, 122, 44, 3, 251, 240, 44,
+ 3, 196, 239, 44, 3, 215, 178, 44, 3, 220, 253, 44, 3, 210, 202, 44, 3,
+ 215, 222, 44, 3, 222, 156, 44, 3, 211, 23, 44, 3, 209, 174, 44, 3, 196,
+ 142, 44, 3, 211, 72, 44, 3, 220, 242, 44, 3, 196, 113, 44, 194, 87, 238,
+ 154, 57, 44, 235, 65, 238, 154, 57, 44, 220, 82, 57, 44, 206, 56, 211,
+ 26, 57, 44, 198, 218, 238, 196, 57, 44, 198, 218, 31, 57, 44, 238, 136,
+ 57, 44, 26, 212, 4, 57, 44, 202, 141, 57, 44, 198, 234, 57, 44, 223, 191,
+ 209, 157, 57, 44, 202, 13, 232, 89, 57, 44, 3, 215, 182, 44, 3, 196, 150,
+ 44, 209, 38, 234, 80, 80, 199, 244, 10, 3, 64, 10, 3, 41, 24, 64, 10, 3,
+ 41, 24, 248, 241, 10, 3, 41, 24, 231, 202, 200, 19, 10, 3, 41, 24, 144,
+ 10, 3, 41, 24, 223, 226, 10, 3, 41, 24, 220, 162, 230, 162, 10, 3, 41,
+ 24, 215, 189, 10, 3, 41, 24, 206, 79, 10, 3, 254, 42, 10, 3, 251, 238,
+ 10, 3, 251, 239, 24, 250, 51, 10, 3, 251, 239, 24, 235, 48, 230, 162, 10,
+ 3, 251, 239, 24, 231, 215, 10, 3, 251, 239, 24, 231, 202, 200, 19, 10, 3,
+ 251, 239, 24, 144, 10, 3, 251, 239, 24, 223, 227, 230, 162, 10, 3, 251,
+ 239, 24, 223, 200, 10, 3, 251, 239, 24, 220, 163, 10, 3, 251, 239, 24,
+ 203, 252, 10, 3, 251, 239, 24, 124, 102, 124, 102, 68, 10, 3, 251, 239,
+ 230, 162, 10, 3, 251, 155, 10, 3, 251, 156, 24, 248, 220, 10, 3, 251,
+ 156, 24, 231, 202, 200, 19, 10, 3, 251, 156, 24, 217, 49, 102, 234, 88,
+ 10, 3, 251, 156, 24, 204, 62, 10, 3, 251, 156, 24, 200, 141, 10, 3, 251,
+ 125, 10, 3, 251, 44, 10, 3, 251, 45, 24, 234, 15, 10, 3, 251, 45, 24,
+ 203, 214, 102, 231, 18, 10, 3, 251, 35, 10, 3, 251, 36, 24, 251, 35, 10,
+ 3, 251, 36, 24, 236, 225, 10, 3, 251, 36, 24, 231, 18, 10, 3, 251, 36,
+ 24, 144, 10, 3, 251, 36, 24, 222, 144, 10, 3, 251, 36, 24, 221, 204, 10,
+ 3, 251, 36, 24, 204, 12, 10, 3, 251, 36, 24, 197, 3, 10, 3, 251, 32, 10,
+ 3, 251, 24, 10, 3, 250, 237, 10, 3, 250, 238, 24, 204, 12, 10, 3, 250,
+ 224, 10, 3, 250, 225, 136, 250, 224, 10, 3, 250, 225, 112, 199, 82, 10,
+ 3, 250, 225, 102, 215, 75, 211, 170, 250, 225, 102, 215, 74, 10, 3, 250,
+ 225, 102, 215, 75, 202, 105, 10, 3, 250, 188, 10, 3, 250, 158, 10, 3,
+ 250, 124, 10, 3, 250, 125, 24, 221, 0, 10, 3, 250, 96, 10, 3, 250, 59,
+ 10, 3, 250, 53, 10, 3, 250, 54, 192, 26, 200, 19, 10, 3, 250, 54, 222,
+ 148, 200, 19, 10, 3, 250, 54, 136, 250, 54, 198, 34, 136, 198, 34, 198,
+ 34, 136, 198, 34, 210, 253, 10, 3, 250, 54, 136, 250, 54, 136, 250, 53,
+ 10, 3, 250, 54, 136, 250, 54, 136, 250, 54, 238, 176, 250, 54, 136, 250,
+ 54, 136, 250, 53, 10, 3, 250, 51, 10, 3, 250, 47, 10, 3, 249, 3, 10, 3,
+ 248, 241, 10, 3, 248, 235, 10, 3, 248, 227, 10, 3, 248, 221, 10, 3, 248,
+ 222, 136, 248, 221, 10, 3, 248, 220, 10, 3, 161, 10, 3, 248, 193, 10, 3,
+ 248, 41, 10, 3, 248, 42, 24, 64, 10, 3, 248, 42, 24, 231, 193, 10, 3,
+ 248, 42, 24, 223, 227, 230, 162, 10, 3, 247, 124, 10, 3, 247, 125, 136,
+ 247, 125, 251, 238, 10, 3, 247, 125, 136, 247, 125, 197, 77, 10, 3, 247,
+ 125, 238, 176, 247, 124, 10, 3, 247, 100, 10, 3, 247, 101, 136, 247, 100,
+ 10, 3, 247, 89, 10, 3, 247, 88, 10, 3, 238, 0, 10, 3, 237, 246, 10, 3,
+ 237, 247, 221, 163, 24, 41, 102, 217, 110, 10, 3, 237, 247, 221, 163, 24,
+ 250, 237, 10, 3, 237, 247, 221, 163, 24, 248, 220, 10, 3, 237, 247, 221,
+ 163, 24, 248, 41, 10, 3, 237, 247, 221, 163, 24, 231, 233, 10, 3, 237,
+ 247, 221, 163, 24, 231, 234, 102, 217, 110, 10, 3, 237, 247, 221, 163,
+ 24, 231, 46, 10, 3, 237, 247, 221, 163, 24, 231, 27, 10, 3, 237, 247,
+ 221, 163, 24, 230, 175, 10, 3, 237, 247, 221, 163, 24, 144, 10, 3, 237,
+ 247, 221, 163, 24, 223, 105, 10, 3, 237, 247, 221, 163, 24, 223, 106,
+ 102, 219, 36, 10, 3, 237, 247, 221, 163, 24, 222, 129, 10, 3, 237, 247,
+ 221, 163, 24, 177, 10, 3, 237, 247, 221, 163, 24, 219, 36, 10, 3, 237,
+ 247, 221, 163, 24, 219, 37, 102, 217, 109, 10, 3, 237, 247, 221, 163, 24,
+ 219, 19, 10, 3, 237, 247, 221, 163, 24, 214, 214, 10, 3, 237, 247, 221,
+ 163, 24, 210, 254, 102, 210, 253, 10, 3, 237, 247, 221, 163, 24, 203,
+ 125, 10, 3, 237, 247, 221, 163, 24, 200, 141, 10, 3, 237, 247, 221, 163,
+ 24, 197, 121, 102, 231, 27, 10, 3, 237, 247, 221, 163, 24, 197, 3, 10, 3,
+ 237, 218, 10, 3, 237, 195, 10, 3, 237, 194, 10, 3, 237, 193, 10, 3, 237,
+ 16, 10, 3, 236, 254, 10, 3, 236, 227, 10, 3, 236, 228, 24, 204, 12, 10,
+ 3, 236, 225, 10, 3, 236, 215, 10, 3, 236, 216, 222, 89, 124, 230, 163,
+ 236, 194, 10, 3, 236, 194, 10, 3, 235, 62, 10, 3, 235, 63, 136, 235, 62,
+ 10, 3, 235, 63, 230, 162, 10, 3, 235, 63, 203, 249, 10, 3, 235, 60, 10,
+ 3, 235, 61, 24, 233, 252, 10, 3, 235, 59, 10, 3, 235, 56, 10, 3, 235, 55,
+ 10, 3, 235, 54, 10, 3, 235, 49, 10, 3, 235, 47, 10, 3, 235, 48, 230, 162,
+ 10, 3, 235, 48, 230, 163, 230, 162, 10, 3, 235, 46, 10, 3, 235, 39, 10,
+ 3, 71, 10, 3, 234, 253, 24, 210, 253, 10, 3, 234, 253, 136, 234, 253,
+ 212, 231, 136, 212, 230, 10, 3, 234, 200, 10, 3, 234, 201, 24, 41, 102,
+ 230, 113, 102, 238, 0, 10, 3, 234, 201, 24, 231, 193, 10, 3, 234, 201,
+ 24, 216, 175, 10, 3, 234, 201, 24, 206, 63, 10, 3, 234, 201, 24, 204, 12,
+ 10, 3, 234, 201, 24, 68, 10, 3, 234, 173, 10, 3, 234, 161, 10, 3, 234,
+ 124, 10, 3, 234, 88, 10, 3, 234, 89, 24, 231, 201, 10, 3, 234, 89, 24,
+ 231, 202, 200, 19, 10, 3, 234, 89, 24, 217, 48, 10, 3, 234, 89, 238, 176,
+ 234, 88, 10, 3, 234, 89, 211, 170, 234, 88, 10, 3, 234, 89, 202, 105, 10,
+ 3, 234, 18, 10, 3, 234, 15, 10, 3, 233, 252, 10, 3, 233, 168, 10, 3, 233,
+ 169, 24, 64, 10, 3, 233, 169, 24, 41, 102, 220, 96, 10, 3, 233, 169, 24,
+ 41, 102, 220, 97, 24, 220, 96, 10, 3, 233, 169, 24, 250, 224, 10, 3, 233,
+ 169, 24, 248, 241, 10, 3, 233, 169, 24, 235, 48, 230, 162, 10, 3, 233,
+ 169, 24, 235, 48, 230, 163, 230, 162, 10, 3, 233, 169, 24, 144, 10, 3,
+ 233, 169, 24, 230, 113, 230, 162, 10, 3, 233, 169, 24, 223, 227, 230,
+ 162, 10, 3, 233, 169, 24, 222, 88, 10, 3, 233, 169, 24, 222, 89, 202,
+ 105, 10, 3, 233, 169, 24, 221, 24, 10, 3, 233, 169, 24, 177, 10, 3, 233,
+ 169, 24, 220, 97, 24, 220, 96, 10, 3, 233, 169, 24, 219, 209, 10, 3, 233,
+ 169, 24, 219, 36, 10, 3, 233, 169, 24, 197, 120, 10, 3, 233, 169, 24,
+ 197, 109, 10, 3, 231, 233, 10, 3, 231, 234, 230, 162, 10, 3, 231, 231,
+ 10, 3, 231, 232, 24, 41, 102, 238, 1, 102, 144, 10, 3, 231, 232, 24, 41,
+ 102, 144, 10, 3, 231, 232, 24, 41, 102, 223, 226, 10, 3, 231, 232, 24,
+ 251, 156, 200, 20, 102, 200, 166, 10, 3, 231, 232, 24, 250, 224, 10, 3,
+ 231, 232, 24, 250, 53, 10, 3, 231, 232, 24, 250, 52, 102, 231, 215, 10,
+ 3, 231, 232, 24, 248, 241, 10, 3, 231, 232, 24, 248, 194, 102, 167, 10,
+ 3, 231, 232, 24, 247, 89, 10, 3, 231, 232, 24, 247, 90, 102, 167, 10, 3,
+ 231, 232, 24, 238, 0, 10, 3, 231, 232, 24, 237, 16, 10, 3, 231, 232, 24,
+ 236, 228, 24, 204, 12, 10, 3, 231, 232, 24, 235, 60, 10, 3, 231, 232, 24,
+ 234, 124, 10, 3, 231, 232, 24, 234, 125, 102, 177, 10, 3, 231, 232, 24,
+ 234, 88, 10, 3, 231, 232, 24, 234, 89, 24, 231, 202, 200, 19, 10, 3, 231,
+ 232, 24, 231, 202, 200, 19, 10, 3, 231, 232, 24, 231, 193, 10, 3, 231,
+ 232, 24, 231, 46, 10, 3, 231, 232, 24, 231, 44, 10, 3, 231, 232, 24, 231,
+ 45, 102, 64, 10, 3, 231, 232, 24, 231, 28, 102, 201, 184, 10, 3, 231,
+ 232, 24, 230, 113, 102, 219, 37, 102, 233, 252, 10, 3, 231, 232, 24, 230,
+ 81, 10, 3, 231, 232, 24, 230, 82, 102, 177, 10, 3, 231, 232, 24, 229,
+ 179, 102, 219, 209, 10, 3, 231, 232, 24, 228, 173, 10, 3, 231, 232, 24,
+ 223, 227, 230, 162, 10, 3, 231, 232, 24, 223, 91, 102, 228, 182, 102,
+ 250, 53, 10, 3, 231, 232, 24, 222, 129, 10, 3, 231, 232, 24, 222, 88, 10,
+ 3, 231, 232, 24, 221, 190, 10, 3, 231, 232, 24, 221, 191, 102, 220, 96,
+ 10, 3, 231, 232, 24, 221, 25, 102, 250, 224, 10, 3, 231, 232, 24, 177,
+ 10, 3, 231, 232, 24, 217, 49, 102, 234, 88, 10, 3, 231, 232, 24, 216,
+ 175, 10, 3, 231, 232, 24, 212, 230, 10, 3, 231, 232, 24, 212, 231, 136,
+ 212, 230, 10, 3, 231, 232, 24, 166, 10, 3, 231, 232, 24, 206, 63, 10, 3,
+ 231, 232, 24, 206, 25, 10, 3, 231, 232, 24, 204, 12, 10, 3, 231, 232, 24,
+ 204, 13, 102, 198, 15, 10, 3, 231, 232, 24, 203, 234, 10, 3, 231, 232,
+ 24, 201, 129, 10, 3, 231, 232, 24, 200, 141, 10, 3, 231, 232, 24, 68, 10,
+ 3, 231, 232, 24, 197, 109, 10, 3, 231, 232, 24, 197, 110, 102, 235, 62,
+ 10, 3, 231, 232, 136, 231, 231, 10, 3, 231, 226, 10, 3, 231, 227, 238,
+ 176, 231, 226, 10, 3, 231, 224, 10, 3, 231, 225, 136, 231, 225, 231, 194,
+ 136, 231, 193, 10, 3, 231, 215, 10, 3, 231, 216, 231, 225, 136, 231, 225,
+ 231, 194, 136, 231, 193, 10, 3, 231, 214, 10, 3, 231, 212, 10, 3, 231,
+ 203, 10, 3, 231, 201, 10, 3, 231, 202, 200, 19, 10, 3, 231, 202, 136,
+ 231, 201, 10, 3, 231, 202, 238, 176, 231, 201, 10, 3, 231, 193, 10, 3,
+ 231, 192, 10, 3, 231, 186, 10, 3, 231, 127, 10, 3, 231, 128, 24, 221, 0,
+ 10, 3, 231, 46, 10, 3, 231, 47, 24, 71, 10, 3, 231, 47, 24, 68, 10, 3,
+ 231, 47, 238, 176, 231, 46, 10, 3, 231, 44, 10, 3, 231, 45, 136, 231, 44,
+ 10, 3, 231, 45, 238, 176, 231, 44, 10, 3, 231, 41, 10, 3, 231, 27, 10, 3,
+ 231, 28, 230, 162, 10, 3, 231, 25, 10, 3, 231, 26, 24, 41, 102, 223, 226,
+ 10, 3, 231, 26, 24, 231, 202, 200, 19, 10, 3, 231, 26, 24, 223, 226, 10,
+ 3, 231, 26, 24, 219, 37, 102, 223, 226, 10, 3, 231, 26, 24, 166, 10, 3,
+ 231, 20, 10, 3, 231, 18, 10, 3, 231, 19, 238, 176, 231, 18, 10, 3, 231,
+ 19, 24, 248, 241, 10, 3, 231, 19, 24, 200, 141, 10, 3, 231, 19, 200, 19,
+ 10, 3, 230, 186, 10, 3, 230, 187, 238, 176, 230, 186, 10, 3, 230, 184,
+ 10, 3, 230, 185, 24, 222, 129, 10, 3, 230, 185, 24, 222, 130, 24, 223,
+ 227, 230, 162, 10, 3, 230, 185, 24, 212, 230, 10, 3, 230, 185, 24, 206,
+ 64, 102, 198, 33, 10, 3, 230, 185, 230, 162, 10, 3, 230, 175, 10, 3, 230,
+ 176, 24, 41, 102, 221, 0, 10, 3, 230, 176, 24, 221, 0, 10, 3, 230, 176,
+ 136, 230, 176, 219, 27, 10, 3, 230, 167, 10, 3, 230, 165, 10, 3, 230,
+ 166, 24, 204, 12, 10, 3, 230, 156, 10, 3, 230, 155, 10, 3, 230, 151, 10,
+ 3, 230, 150, 10, 3, 144, 10, 3, 230, 113, 200, 19, 10, 3, 230, 113, 230,
+ 162, 10, 3, 230, 81, 10, 3, 229, 178, 10, 3, 229, 179, 24, 250, 53, 10,
+ 3, 229, 179, 24, 250, 51, 10, 3, 229, 179, 24, 248, 241, 10, 3, 229, 179,
+ 24, 236, 194, 10, 3, 229, 179, 24, 231, 224, 10, 3, 229, 179, 24, 221,
+ 179, 10, 3, 229, 179, 24, 212, 230, 10, 3, 229, 179, 24, 204, 12, 10, 3,
+ 229, 179, 24, 68, 10, 3, 228, 181, 10, 3, 228, 173, 10, 3, 228, 174, 24,
+ 250, 224, 10, 3, 228, 174, 24, 230, 81, 10, 3, 228, 174, 24, 222, 88, 10,
+ 3, 228, 174, 24, 219, 153, 10, 3, 228, 174, 24, 197, 109, 10, 3, 228,
+ 168, 10, 3, 70, 10, 3, 228, 97, 64, 10, 3, 228, 53, 10, 3, 223, 254, 10,
+ 3, 223, 255, 136, 223, 255, 247, 89, 10, 3, 223, 255, 136, 223, 255, 202,
+ 105, 10, 3, 223, 229, 10, 3, 223, 226, 10, 3, 223, 227, 236, 254, 10, 3,
+ 223, 227, 207, 151, 10, 3, 223, 227, 136, 223, 227, 203, 218, 136, 203,
+ 218, 197, 110, 136, 197, 109, 10, 3, 223, 227, 230, 162, 10, 3, 223, 218,
+ 10, 3, 223, 219, 24, 231, 202, 200, 19, 10, 3, 223, 217, 10, 3, 223, 207,
+ 10, 3, 223, 208, 24, 200, 141, 10, 3, 223, 208, 238, 176, 223, 207, 10,
+ 3, 223, 208, 211, 170, 223, 207, 10, 3, 223, 208, 202, 105, 10, 3, 223,
+ 200, 10, 3, 223, 190, 10, 3, 223, 105, 10, 3, 223, 90, 10, 3, 160, 10, 3,
+ 222, 174, 24, 64, 10, 3, 222, 174, 24, 251, 125, 10, 3, 222, 174, 24,
+ 251, 126, 102, 221, 24, 10, 3, 222, 174, 24, 250, 51, 10, 3, 222, 174,
+ 24, 248, 241, 10, 3, 222, 174, 24, 248, 220, 10, 3, 222, 174, 24, 161,
+ 10, 3, 222, 174, 24, 248, 41, 10, 3, 222, 174, 24, 234, 15, 10, 3, 222,
+ 174, 24, 233, 252, 10, 3, 222, 174, 24, 231, 233, 10, 3, 222, 174, 24,
+ 231, 215, 10, 3, 222, 174, 24, 231, 202, 200, 19, 10, 3, 222, 174, 24,
+ 231, 193, 10, 3, 222, 174, 24, 231, 194, 102, 204, 63, 102, 64, 10, 3,
+ 222, 174, 24, 231, 46, 10, 3, 222, 174, 24, 231, 27, 10, 3, 222, 174, 24,
+ 231, 19, 102, 206, 25, 10, 3, 222, 174, 24, 231, 19, 238, 176, 231, 18,
+ 10, 3, 222, 174, 24, 230, 186, 10, 3, 222, 174, 24, 230, 155, 10, 3, 222,
+ 174, 24, 223, 226, 10, 3, 222, 174, 24, 223, 207, 10, 3, 222, 174, 24,
+ 222, 129, 10, 3, 222, 174, 24, 221, 204, 10, 3, 222, 174, 24, 221, 190,
+ 10, 3, 222, 174, 24, 219, 209, 10, 3, 222, 174, 24, 219, 36, 10, 3, 222,
+ 174, 24, 217, 48, 10, 3, 222, 174, 24, 217, 49, 102, 235, 62, 10, 3, 222,
+ 174, 24, 217, 49, 102, 231, 46, 10, 3, 222, 174, 24, 217, 49, 102, 200,
+ 79, 10, 3, 222, 174, 24, 216, 175, 10, 3, 222, 174, 24, 216, 176, 102,
+ 212, 225, 10, 3, 222, 174, 24, 214, 214, 10, 3, 222, 174, 24, 212, 230,
+ 10, 3, 222, 174, 24, 210, 51, 10, 3, 222, 174, 24, 206, 218, 10, 3, 222,
+ 174, 24, 188, 10, 3, 222, 174, 24, 206, 25, 10, 3, 222, 174, 24, 204, 64,
+ 10, 3, 222, 174, 24, 204, 12, 10, 3, 222, 174, 24, 203, 234, 10, 3, 222,
+ 174, 24, 203, 164, 10, 3, 222, 174, 24, 203, 104, 10, 3, 222, 174, 24,
+ 201, 138, 10, 3, 222, 174, 24, 200, 112, 10, 3, 222, 174, 24, 68, 10, 3,
+ 222, 174, 24, 197, 120, 10, 3, 222, 174, 24, 197, 109, 10, 3, 222, 174,
+ 24, 197, 80, 24, 166, 10, 3, 222, 174, 24, 197, 3, 10, 3, 222, 174, 24,
+ 192, 30, 10, 3, 222, 160, 10, 3, 222, 161, 238, 176, 222, 160, 10, 3,
+ 222, 149, 10, 3, 222, 146, 10, 3, 222, 144, 10, 3, 222, 143, 10, 3, 222,
+ 141, 10, 3, 222, 142, 136, 222, 141, 10, 3, 222, 129, 10, 3, 222, 130,
+ 24, 223, 227, 230, 162, 10, 3, 222, 125, 10, 3, 222, 126, 24, 248, 241,
+ 10, 3, 222, 126, 238, 176, 222, 125, 10, 3, 222, 123, 10, 3, 222, 122,
+ 10, 3, 222, 88, 10, 3, 222, 89, 220, 164, 24, 124, 136, 220, 164, 24, 68,
+ 10, 3, 222, 89, 136, 222, 89, 220, 164, 24, 124, 136, 220, 164, 24, 68,
+ 10, 3, 222, 21, 10, 3, 221, 204, 10, 3, 221, 205, 24, 248, 241, 10, 3,
+ 221, 205, 24, 68, 10, 3, 221, 205, 24, 197, 109, 10, 3, 221, 190, 10, 3,
+ 221, 179, 10, 3, 221, 165, 10, 3, 221, 164, 10, 3, 221, 162, 10, 3, 221,
+ 163, 136, 221, 162, 10, 3, 221, 33, 10, 3, 221, 34, 136, 229, 179, 24,
+ 250, 52, 221, 34, 136, 229, 179, 24, 250, 51, 10, 3, 221, 24, 10, 3, 221,
+ 22, 10, 3, 221, 23, 196, 137, 20, 10, 3, 221, 21, 10, 3, 221, 13, 10, 3,
+ 221, 14, 230, 162, 10, 3, 221, 12, 10, 3, 221, 0, 10, 3, 221, 1, 211,
+ 170, 221, 0, 10, 3, 220, 249, 10, 3, 220, 226, 10, 3, 177, 10, 3, 220,
+ 163, 10, 3, 220, 164, 24, 64, 10, 3, 220, 164, 24, 41, 102, 238, 1, 102,
+ 144, 10, 3, 220, 164, 24, 41, 102, 231, 193, 10, 3, 220, 164, 24, 41,
+ 102, 220, 96, 10, 3, 220, 164, 24, 251, 35, 10, 3, 220, 164, 24, 250,
+ 224, 10, 3, 220, 164, 24, 250, 54, 192, 26, 200, 19, 10, 3, 220, 164, 24,
+ 248, 241, 10, 3, 220, 164, 24, 248, 41, 10, 3, 220, 164, 24, 237, 195,
+ 10, 3, 220, 164, 24, 234, 88, 10, 3, 220, 164, 24, 231, 233, 10, 3, 220,
+ 164, 24, 231, 193, 10, 3, 220, 164, 24, 230, 175, 10, 3, 220, 164, 24,
+ 230, 176, 102, 230, 175, 10, 3, 220, 164, 24, 144, 10, 3, 220, 164, 24,
+ 230, 81, 10, 3, 220, 164, 24, 229, 179, 24, 212, 230, 10, 3, 220, 164,
+ 24, 223, 227, 230, 162, 10, 3, 220, 164, 24, 223, 207, 10, 3, 220, 164,
+ 24, 223, 208, 102, 144, 10, 3, 220, 164, 24, 223, 208, 102, 219, 36, 10,
+ 3, 220, 164, 24, 221, 204, 10, 3, 220, 164, 24, 221, 179, 10, 3, 220,
+ 164, 24, 221, 24, 10, 3, 220, 164, 24, 221, 13, 10, 3, 220, 164, 24, 221,
+ 14, 102, 229, 179, 102, 64, 10, 3, 220, 164, 24, 220, 163, 10, 3, 220,
+ 164, 24, 219, 153, 10, 3, 220, 164, 24, 219, 36, 10, 3, 220, 164, 24,
+ 219, 21, 10, 3, 220, 164, 24, 217, 48, 10, 3, 220, 164, 24, 217, 49, 102,
+ 234, 88, 10, 3, 220, 164, 24, 215, 189, 10, 3, 220, 164, 24, 214, 214,
+ 10, 3, 220, 164, 24, 204, 13, 102, 201, 129, 10, 3, 220, 164, 24, 203,
+ 214, 102, 231, 19, 102, 234, 15, 10, 3, 220, 164, 24, 203, 214, 102, 231,
+ 19, 200, 19, 10, 3, 220, 164, 24, 203, 162, 10, 3, 220, 164, 24, 203,
+ 163, 102, 203, 162, 10, 3, 220, 164, 24, 201, 129, 10, 3, 220, 164, 24,
+ 200, 155, 10, 3, 220, 164, 24, 200, 141, 10, 3, 220, 164, 24, 200, 80,
+ 102, 41, 102, 201, 185, 102, 181, 10, 3, 220, 164, 24, 68, 10, 3, 220,
+ 164, 24, 124, 102, 64, 10, 3, 220, 164, 24, 124, 102, 124, 102, 68, 10,
+ 3, 220, 164, 24, 197, 121, 102, 250, 53, 10, 3, 220, 164, 24, 197, 109,
+ 10, 3, 220, 164, 24, 197, 3, 10, 3, 220, 164, 202, 105, 10, 3, 220, 161,
+ 10, 3, 220, 162, 24, 204, 12, 10, 3, 220, 162, 24, 204, 13, 102, 201,
+ 129, 10, 3, 220, 162, 230, 162, 10, 3, 220, 162, 230, 163, 136, 220, 162,
+ 230, 163, 204, 12, 10, 3, 220, 157, 10, 3, 220, 96, 10, 3, 220, 97, 24,
+ 220, 96, 10, 3, 220, 94, 10, 3, 220, 95, 24, 221, 0, 10, 3, 220, 95, 24,
+ 221, 1, 102, 206, 218, 10, 3, 219, 209, 10, 3, 219, 190, 10, 3, 219, 178,
+ 10, 3, 219, 153, 10, 3, 219, 36, 10, 3, 219, 37, 24, 248, 241, 10, 3,
+ 219, 34, 10, 3, 219, 35, 24, 251, 35, 10, 3, 219, 35, 24, 248, 241, 10,
+ 3, 219, 35, 24, 233, 252, 10, 3, 219, 35, 24, 233, 253, 200, 19, 10, 3,
+ 219, 35, 24, 231, 202, 200, 19, 10, 3, 219, 35, 24, 229, 179, 24, 248,
+ 241, 10, 3, 219, 35, 24, 223, 207, 10, 3, 219, 35, 24, 222, 146, 10, 3,
+ 219, 35, 24, 222, 144, 10, 3, 219, 35, 24, 222, 145, 102, 250, 53, 10, 3,
+ 219, 35, 24, 221, 204, 10, 3, 219, 35, 24, 220, 185, 102, 250, 53, 10, 3,
+ 219, 35, 24, 220, 163, 10, 3, 219, 35, 24, 217, 49, 102, 234, 88, 10, 3,
+ 219, 35, 24, 214, 214, 10, 3, 219, 35, 24, 213, 22, 10, 3, 219, 35, 24,
+ 203, 126, 102, 250, 53, 10, 3, 219, 35, 24, 203, 96, 102, 247, 124, 10,
+ 3, 219, 35, 24, 198, 33, 10, 3, 219, 35, 200, 19, 10, 3, 219, 35, 238,
+ 176, 219, 34, 10, 3, 219, 35, 211, 170, 219, 34, 10, 3, 219, 35, 202,
+ 105, 10, 3, 219, 35, 203, 249, 10, 3, 219, 33, 10, 3, 219, 27, 10, 3,
+ 219, 28, 136, 219, 27, 10, 3, 219, 28, 211, 170, 219, 27, 10, 3, 219, 28,
+ 203, 249, 10, 3, 219, 24, 10, 3, 219, 21, 10, 3, 219, 19, 10, 3, 219, 20,
+ 136, 219, 19, 10, 3, 219, 20, 136, 219, 20, 231, 194, 136, 231, 193, 10,
+ 3, 172, 10, 3, 217, 228, 24, 200, 141, 10, 3, 217, 228, 230, 162, 10, 3,
+ 217, 220, 10, 3, 217, 188, 10, 3, 217, 135, 10, 3, 217, 110, 10, 3, 217,
+ 109, 10, 3, 217, 48, 10, 3, 216, 248, 10, 3, 216, 175, 10, 3, 216, 120,
+ 10, 3, 215, 241, 10, 3, 215, 242, 136, 215, 241, 10, 3, 215, 226, 10, 3,
+ 215, 227, 230, 162, 10, 3, 215, 207, 10, 3, 215, 193, 10, 3, 215, 189,
+ 10, 3, 215, 190, 24, 64, 10, 3, 215, 190, 24, 221, 0, 10, 3, 215, 190,
+ 24, 192, 112, 10, 3, 215, 190, 136, 215, 189, 10, 3, 215, 190, 136, 215,
+ 190, 24, 41, 102, 181, 10, 3, 215, 190, 238, 176, 215, 189, 10, 3, 215,
+ 187, 10, 3, 215, 188, 24, 64, 10, 3, 215, 188, 24, 41, 102, 237, 16, 10,
+ 3, 215, 188, 24, 237, 16, 10, 3, 215, 188, 230, 162, 10, 3, 181, 10, 3,
+ 215, 87, 10, 3, 215, 74, 10, 3, 215, 75, 223, 120, 10, 3, 215, 75, 24,
+ 203, 165, 200, 19, 10, 3, 215, 75, 211, 170, 215, 74, 10, 3, 215, 73, 10,
+ 3, 215, 66, 212, 216, 10, 3, 215, 65, 10, 3, 215, 64, 10, 3, 214, 214,
+ 10, 3, 214, 215, 24, 64, 10, 3, 214, 215, 24, 197, 109, 10, 3, 214, 215,
+ 203, 249, 10, 3, 214, 60, 10, 3, 214, 61, 24, 71, 10, 3, 214, 51, 10, 3,
+ 214, 21, 10, 3, 214, 22, 24, 231, 202, 200, 19, 10, 3, 214, 22, 24, 231,
+ 194, 102, 231, 202, 200, 19, 10, 3, 214, 17, 10, 3, 214, 18, 24, 250,
+ 224, 10, 3, 214, 18, 24, 250, 53, 10, 3, 214, 18, 24, 250, 54, 102, 250,
+ 53, 10, 3, 214, 18, 24, 230, 175, 10, 3, 214, 18, 24, 217, 49, 102, 231,
+ 202, 200, 19, 10, 3, 214, 18, 24, 214, 214, 10, 3, 214, 18, 24, 212, 230,
+ 10, 3, 214, 18, 24, 204, 12, 10, 3, 214, 18, 24, 204, 13, 102, 41, 250,
+ 224, 10, 3, 214, 18, 24, 204, 13, 102, 250, 53, 10, 3, 214, 18, 24, 204,
+ 13, 102, 250, 54, 102, 250, 53, 10, 3, 214, 18, 24, 197, 121, 102, 250,
+ 53, 10, 3, 214, 18, 24, 197, 3, 10, 3, 214, 5, 10, 3, 213, 22, 10, 3,
+ 212, 247, 10, 3, 212, 230, 10, 3, 212, 231, 220, 162, 24, 231, 193, 10,
+ 3, 212, 231, 220, 162, 24, 217, 110, 10, 3, 212, 231, 220, 162, 24, 206,
+ 63, 10, 3, 212, 231, 220, 162, 24, 206, 64, 136, 212, 231, 220, 162, 24,
+ 206, 63, 10, 3, 212, 231, 220, 162, 24, 197, 3, 10, 3, 212, 231, 200, 19,
+ 10, 3, 212, 231, 136, 212, 230, 10, 3, 212, 231, 238, 176, 212, 230, 10,
+ 3, 212, 231, 238, 176, 212, 231, 220, 162, 136, 220, 161, 10, 3, 212,
+ 225, 10, 3, 212, 226, 251, 156, 24, 250, 47, 10, 3, 212, 226, 251, 156,
+ 24, 248, 41, 10, 3, 212, 226, 251, 156, 24, 235, 56, 10, 3, 212, 226,
+ 251, 156, 24, 230, 175, 10, 3, 212, 226, 251, 156, 24, 223, 227, 230,
+ 162, 10, 3, 212, 226, 251, 156, 24, 222, 144, 10, 3, 212, 226, 251, 156,
+ 24, 177, 10, 3, 212, 226, 251, 156, 24, 214, 214, 10, 3, 212, 226, 251,
+ 156, 24, 203, 93, 10, 3, 212, 226, 251, 156, 24, 197, 120, 10, 3, 212,
+ 226, 221, 163, 24, 248, 41, 10, 3, 212, 226, 221, 163, 24, 248, 42, 68,
+ 10, 3, 166, 10, 3, 211, 67, 10, 3, 211, 25, 10, 3, 210, 253, 10, 3, 210,
+ 109, 10, 3, 210, 51, 10, 3, 210, 52, 24, 64, 10, 3, 210, 52, 24, 251,
+ 238, 10, 3, 210, 52, 24, 248, 41, 10, 3, 210, 52, 24, 247, 124, 10, 3,
+ 210, 52, 24, 71, 10, 3, 210, 52, 24, 70, 10, 3, 210, 52, 24, 228, 53, 10,
+ 3, 210, 52, 24, 68, 10, 3, 210, 52, 24, 197, 120, 10, 3, 210, 52, 238,
+ 176, 210, 51, 10, 3, 209, 245, 10, 3, 209, 246, 24, 222, 125, 10, 3, 209,
+ 246, 24, 197, 109, 10, 3, 209, 246, 24, 192, 112, 10, 3, 209, 246, 211,
+ 170, 209, 245, 10, 3, 167, 10, 3, 208, 66, 10, 3, 207, 151, 10, 3, 206,
+ 218, 10, 3, 188, 10, 3, 206, 80, 212, 216, 10, 3, 206, 79, 10, 3, 206,
+ 80, 24, 64, 10, 3, 206, 80, 24, 235, 62, 10, 3, 206, 80, 24, 235, 60, 10,
+ 3, 206, 80, 24, 144, 10, 3, 206, 80, 24, 222, 129, 10, 3, 206, 80, 24,
+ 221, 0, 10, 3, 206, 80, 24, 219, 19, 10, 3, 206, 80, 24, 216, 175, 10, 3,
+ 206, 80, 24, 212, 230, 10, 3, 206, 80, 24, 206, 63, 10, 3, 206, 80, 24,
+ 203, 234, 10, 3, 206, 80, 24, 200, 166, 10, 3, 206, 80, 24, 197, 120, 10,
+ 3, 206, 80, 24, 197, 115, 10, 3, 206, 80, 24, 197, 84, 10, 3, 206, 80,
+ 24, 197, 27, 10, 3, 206, 80, 24, 197, 3, 10, 3, 206, 80, 136, 206, 79,
+ 10, 3, 206, 80, 230, 162, 10, 3, 206, 63, 10, 3, 206, 64, 220, 164, 24,
+ 250, 51, 10, 3, 206, 34, 10, 3, 206, 25, 10, 3, 204, 64, 10, 3, 204, 62,
+ 10, 3, 204, 63, 24, 64, 10, 3, 204, 63, 24, 248, 241, 10, 3, 204, 63, 24,
+ 231, 18, 10, 3, 204, 63, 24, 214, 214, 10, 3, 204, 63, 24, 203, 162, 10,
+ 3, 204, 63, 24, 198, 15, 10, 3, 204, 63, 24, 68, 10, 3, 204, 63, 24, 124,
+ 102, 64, 10, 3, 204, 60, 10, 3, 204, 58, 10, 3, 204, 30, 10, 3, 204, 12,
+ 10, 3, 204, 13, 228, 181, 10, 3, 204, 13, 136, 204, 13, 231, 225, 136,
+ 231, 225, 231, 194, 136, 231, 193, 10, 3, 204, 13, 136, 204, 13, 200,
+ 167, 136, 200, 167, 231, 194, 136, 231, 193, 10, 3, 204, 5, 10, 3, 204,
+ 0, 10, 3, 203, 252, 10, 3, 203, 251, 10, 3, 203, 248, 10, 3, 203, 234,
+ 10, 3, 203, 235, 24, 64, 10, 3, 203, 235, 24, 223, 207, 10, 3, 203, 228,
+ 10, 3, 203, 229, 24, 64, 10, 3, 203, 229, 24, 248, 221, 10, 3, 203, 229,
+ 24, 247, 100, 10, 3, 203, 229, 24, 236, 215, 10, 3, 203, 229, 24, 231,
+ 193, 10, 3, 203, 229, 24, 223, 226, 10, 3, 203, 229, 24, 223, 227, 230,
+ 162, 10, 3, 203, 229, 24, 220, 249, 10, 3, 203, 229, 24, 219, 21, 10, 3,
+ 203, 229, 24, 215, 226, 10, 3, 203, 229, 24, 206, 63, 10, 3, 203, 222,
+ 10, 3, 203, 217, 10, 3, 203, 218, 200, 19, 10, 3, 203, 218, 136, 203,
+ 218, 247, 90, 136, 247, 89, 10, 3, 203, 213, 10, 3, 203, 164, 10, 3, 203,
+ 165, 136, 223, 121, 203, 164, 10, 3, 203, 162, 10, 3, 203, 160, 10, 3,
+ 203, 125, 10, 3, 203, 126, 230, 162, 10, 3, 203, 104, 10, 3, 203, 102,
+ 10, 3, 203, 103, 136, 203, 103, 203, 162, 10, 3, 203, 95, 10, 3, 203, 93,
+ 10, 3, 201, 184, 10, 3, 201, 185, 136, 201, 184, 10, 3, 201, 141, 10, 3,
+ 201, 140, 10, 3, 201, 138, 10, 3, 201, 129, 10, 3, 201, 128, 10, 3, 201,
+ 100, 10, 3, 201, 99, 10, 3, 189, 10, 3, 200, 181, 250, 37, 10, 3, 200,
+ 181, 24, 229, 178, 10, 3, 200, 181, 24, 216, 175, 10, 3, 200, 181, 230,
+ 162, 10, 3, 200, 166, 10, 3, 200, 167, 136, 200, 167, 214, 61, 136, 214,
+ 61, 236, 195, 136, 236, 194, 10, 3, 200, 167, 202, 105, 10, 3, 200, 155,
+ 10, 3, 190, 24, 248, 41, 10, 3, 190, 24, 230, 175, 10, 3, 190, 24, 204,
+ 12, 10, 3, 190, 24, 203, 164, 10, 3, 190, 24, 198, 33, 10, 3, 190, 24,
+ 197, 109, 10, 3, 200, 141, 10, 3, 200, 112, 10, 3, 200, 79, 10, 3, 200,
+ 80, 230, 162, 10, 3, 199, 128, 10, 3, 199, 129, 200, 19, 10, 3, 199, 92,
+ 10, 3, 199, 69, 10, 3, 199, 70, 24, 200, 141, 10, 3, 199, 70, 136, 199,
+ 69, 10, 3, 199, 70, 136, 199, 70, 231, 225, 136, 231, 225, 231, 194, 136,
+ 231, 193, 10, 3, 198, 45, 10, 3, 198, 33, 10, 3, 198, 31, 10, 3, 198, 27,
+ 10, 3, 198, 15, 10, 3, 198, 16, 136, 198, 16, 192, 113, 136, 192, 112,
+ 10, 3, 68, 10, 3, 124, 230, 175, 10, 3, 124, 124, 68, 10, 3, 124, 136,
+ 124, 211, 78, 136, 211, 78, 231, 194, 136, 231, 193, 10, 3, 124, 136,
+ 124, 201, 101, 136, 201, 100, 10, 3, 124, 136, 124, 124, 207, 168, 136,
+ 124, 207, 167, 10, 3, 197, 120, 10, 3, 197, 115, 10, 3, 197, 109, 10, 3,
+ 197, 110, 220, 249, 10, 3, 197, 110, 24, 248, 241, 10, 3, 197, 110, 24,
+ 216, 175, 10, 3, 197, 110, 24, 124, 102, 124, 102, 68, 10, 3, 197, 110,
+ 24, 124, 102, 124, 102, 124, 230, 162, 10, 3, 197, 110, 230, 162, 10, 3,
+ 197, 110, 203, 249, 10, 3, 197, 110, 203, 250, 24, 248, 241, 10, 3, 197,
+ 105, 10, 3, 197, 84, 10, 3, 197, 85, 24, 220, 163, 10, 3, 197, 85, 24,
+ 217, 49, 102, 238, 0, 10, 3, 197, 85, 24, 204, 62, 10, 3, 197, 85, 24,
+ 68, 10, 3, 197, 83, 10, 3, 197, 79, 10, 3, 197, 80, 24, 222, 88, 10, 3,
+ 197, 80, 24, 166, 10, 3, 197, 77, 10, 3, 197, 78, 230, 162, 10, 3, 197,
+ 27, 10, 3, 197, 28, 238, 176, 197, 27, 10, 3, 197, 28, 203, 249, 10, 3,
+ 197, 25, 10, 3, 197, 26, 24, 41, 102, 144, 10, 3, 197, 26, 24, 41, 102,
+ 181, 10, 3, 197, 26, 24, 251, 35, 10, 3, 197, 26, 24, 144, 10, 3, 197,
+ 26, 24, 212, 230, 10, 3, 197, 26, 24, 197, 120, 10, 3, 197, 26, 24, 197,
+ 121, 102, 250, 53, 10, 3, 197, 26, 24, 197, 121, 102, 248, 41, 10, 3,
+ 197, 24, 10, 3, 197, 21, 10, 3, 197, 20, 10, 3, 197, 16, 10, 3, 197, 17,
+ 24, 64, 10, 3, 197, 17, 24, 250, 47, 10, 3, 197, 17, 24, 161, 10, 3, 197,
+ 17, 24, 235, 49, 10, 3, 197, 17, 24, 231, 233, 10, 3, 197, 17, 24, 231,
+ 215, 10, 3, 197, 17, 24, 231, 202, 200, 19, 10, 3, 197, 17, 24, 231, 193,
+ 10, 3, 197, 17, 24, 230, 186, 10, 3, 197, 17, 24, 144, 10, 3, 197, 17,
+ 24, 223, 226, 10, 3, 197, 17, 24, 223, 207, 10, 3, 197, 17, 24, 223, 90,
+ 10, 3, 197, 17, 24, 221, 204, 10, 3, 197, 17, 24, 219, 19, 10, 3, 197,
+ 17, 24, 216, 120, 10, 3, 197, 17, 24, 166, 10, 3, 197, 17, 24, 204, 12,
+ 10, 3, 197, 17, 24, 203, 102, 10, 3, 197, 17, 24, 198, 45, 10, 3, 197,
+ 17, 24, 124, 102, 230, 175, 10, 3, 197, 17, 24, 197, 109, 10, 3, 197, 17,
+ 24, 197, 14, 10, 3, 197, 14, 10, 3, 197, 15, 24, 68, 10, 3, 197, 3, 10,
+ 3, 197, 4, 24, 64, 10, 3, 197, 4, 24, 221, 33, 10, 3, 197, 4, 24, 221, 0,
+ 10, 3, 197, 4, 24, 200, 141, 10, 3, 196, 255, 10, 3, 197, 2, 10, 3, 197,
+ 0, 10, 3, 196, 252, 10, 3, 196, 240, 10, 3, 196, 241, 24, 222, 88, 10, 3,
+ 196, 238, 10, 3, 192, 112, 10, 3, 192, 113, 200, 19, 10, 3, 192, 113,
+ 108, 24, 221, 0, 10, 3, 192, 108, 10, 3, 192, 100, 10, 3, 192, 84, 10, 3,
+ 192, 30, 10, 3, 192, 31, 136, 192, 30, 10, 3, 192, 29, 10, 3, 192, 27,
+ 10, 3, 192, 28, 222, 148, 200, 19, 10, 3, 192, 22, 10, 3, 192, 13, 10, 3,
+ 191, 252, 10, 3, 191, 250, 10, 3, 191, 251, 24, 64, 10, 3, 191, 249, 10,
+ 3, 191, 248, 10, 3, 222, 113, 234, 121, 10, 3, 251, 239, 24, 212, 230,
+ 10, 3, 251, 156, 24, 64, 10, 3, 250, 238, 24, 221, 15, 10, 3, 237, 247,
+ 221, 163, 24, 197, 121, 102, 217, 110, 10, 3, 237, 245, 10, 3, 236, 195,
+ 102, 203, 164, 10, 3, 235, 61, 24, 204, 12, 10, 3, 233, 169, 24, 230,
+ 175, 10, 3, 233, 169, 24, 204, 12, 10, 3, 231, 232, 24, 250, 225, 102,
+ 222, 130, 102, 64, 10, 3, 231, 232, 24, 250, 51, 10, 3, 231, 157, 10, 3,
+ 231, 35, 10, 3, 228, 153, 10, 3, 222, 174, 24, 250, 188, 10, 3, 222, 174,
+ 24, 250, 50, 10, 3, 222, 174, 24, 231, 18, 10, 3, 222, 174, 24, 230, 175,
+ 10, 3, 222, 174, 24, 229, 179, 24, 250, 51, 10, 3, 222, 174, 24, 219, 19,
+ 10, 3, 222, 174, 24, 166, 10, 3, 222, 174, 24, 203, 156, 10, 3, 222, 174,
+ 24, 198, 45, 10, 3, 222, 174, 24, 197, 25, 10, 3, 220, 164, 24, 231, 46,
+ 10, 3, 219, 35, 203, 250, 24, 248, 241, 10, 3, 219, 35, 24, 233, 253,
+ 102, 220, 96, 10, 3, 219, 35, 24, 203, 164, 10, 3, 216, 247, 10, 3, 215,
+ 188, 24, 192, 112, 10, 3, 215, 86, 10, 3, 214, 20, 10, 3, 214, 19, 10, 3,
+ 214, 18, 24, 248, 221, 10, 3, 214, 18, 24, 231, 46, 10, 3, 212, 248, 207,
+ 16, 214, 12, 237, 94, 10, 3, 210, 110, 250, 37, 10, 3, 209, 249, 10, 3,
+ 206, 80, 24, 223, 227, 230, 162, 10, 3, 199, 120, 10, 3, 197, 85, 24,
+ 217, 48, 10, 3, 124, 68, 10, 162, 3, 103, 250, 53, 10, 162, 3, 112, 250,
+ 53, 10, 162, 3, 232, 119, 250, 53, 10, 162, 3, 232, 214, 250, 53, 10,
+ 162, 3, 203, 41, 250, 53, 10, 162, 3, 204, 146, 250, 53, 10, 162, 3, 234,
+ 148, 250, 53, 10, 162, 3, 214, 16, 250, 53, 10, 162, 3, 112, 236, 194,
+ 10, 162, 3, 232, 119, 236, 194, 10, 162, 3, 232, 214, 236, 194, 10, 162,
+ 3, 203, 41, 236, 194, 10, 162, 3, 204, 146, 236, 194, 10, 162, 3, 234,
+ 148, 236, 194, 10, 162, 3, 214, 16, 236, 194, 10, 162, 3, 232, 119, 68,
+ 10, 162, 3, 232, 214, 68, 10, 162, 3, 203, 41, 68, 10, 162, 3, 204, 146,
+ 68, 10, 162, 3, 234, 148, 68, 10, 162, 3, 214, 16, 68, 10, 162, 3, 90,
+ 231, 129, 10, 162, 3, 103, 231, 129, 10, 162, 3, 112, 231, 129, 10, 162,
+ 3, 232, 119, 231, 129, 10, 162, 3, 232, 214, 231, 129, 10, 162, 3, 203,
+ 41, 231, 129, 10, 162, 3, 204, 146, 231, 129, 10, 162, 3, 234, 148, 231,
+ 129, 10, 162, 3, 214, 16, 231, 129, 10, 162, 3, 90, 231, 126, 10, 162, 3,
+ 103, 231, 126, 10, 162, 3, 112, 231, 126, 10, 162, 3, 232, 119, 231, 126,
+ 10, 162, 3, 232, 214, 231, 126, 10, 162, 3, 103, 204, 30, 10, 162, 3,
+ 112, 204, 30, 10, 162, 3, 112, 204, 31, 196, 137, 20, 10, 162, 3, 232,
+ 119, 204, 30, 10, 162, 3, 232, 214, 204, 30, 10, 162, 3, 203, 41, 204,
+ 30, 10, 162, 3, 204, 146, 204, 30, 10, 162, 3, 234, 148, 204, 30, 10,
+ 162, 3, 214, 16, 204, 30, 10, 162, 3, 90, 204, 23, 10, 162, 3, 103, 204,
+ 23, 10, 162, 3, 112, 204, 23, 10, 162, 3, 112, 204, 24, 196, 137, 20, 10,
+ 162, 3, 232, 119, 204, 23, 10, 162, 3, 232, 214, 204, 23, 10, 162, 3,
+ 204, 31, 24, 231, 216, 102, 236, 194, 10, 162, 3, 204, 31, 24, 231, 216,
+ 102, 216, 120, 10, 162, 3, 90, 247, 85, 10, 162, 3, 103, 247, 85, 10,
+ 162, 3, 112, 247, 85, 10, 162, 3, 112, 247, 86, 196, 137, 20, 10, 162, 3,
+ 232, 119, 247, 85, 10, 162, 3, 232, 214, 247, 85, 10, 162, 3, 112, 196,
+ 137, 232, 136, 233, 254, 10, 162, 3, 112, 196, 137, 232, 136, 233, 251,
+ 10, 162, 3, 232, 119, 196, 137, 232, 136, 219, 179, 10, 162, 3, 232, 119,
+ 196, 137, 232, 136, 219, 177, 10, 162, 3, 232, 119, 196, 137, 232, 136,
+ 219, 180, 64, 10, 162, 3, 232, 119, 196, 137, 232, 136, 219, 180, 249,
+ 226, 10, 162, 3, 203, 41, 196, 137, 232, 136, 250, 49, 10, 162, 3, 204,
+ 146, 196, 137, 232, 136, 223, 199, 10, 162, 3, 204, 146, 196, 137, 232,
+ 136, 223, 201, 64, 10, 162, 3, 204, 146, 196, 137, 232, 136, 223, 201,
+ 249, 226, 10, 162, 3, 234, 148, 196, 137, 232, 136, 196, 254, 10, 162, 3,
+ 234, 148, 196, 137, 232, 136, 196, 253, 10, 162, 3, 214, 16, 196, 137,
+ 232, 136, 223, 215, 10, 162, 3, 214, 16, 196, 137, 232, 136, 223, 214,
+ 10, 162, 3, 214, 16, 196, 137, 232, 136, 223, 213, 10, 162, 3, 214, 16,
+ 196, 137, 232, 136, 223, 216, 64, 10, 162, 3, 103, 250, 54, 200, 19, 10,
+ 162, 3, 112, 250, 54, 200, 19, 10, 162, 3, 232, 119, 250, 54, 200, 19,
+ 10, 162, 3, 232, 214, 250, 54, 200, 19, 10, 162, 3, 203, 41, 250, 54,
+ 200, 19, 10, 162, 3, 90, 248, 205, 10, 162, 3, 103, 248, 205, 10, 162, 3,
+ 112, 248, 205, 10, 162, 3, 232, 119, 248, 205, 10, 162, 3, 232, 119, 248,
+ 206, 196, 137, 20, 10, 162, 3, 232, 214, 248, 205, 10, 162, 3, 232, 214,
+ 248, 206, 196, 137, 20, 10, 162, 3, 214, 29, 10, 162, 3, 214, 30, 10,
+ 162, 3, 90, 233, 250, 10, 162, 3, 103, 233, 250, 10, 162, 3, 90, 199,
+ 192, 236, 194, 10, 162, 3, 103, 199, 189, 236, 194, 10, 162, 3, 232, 214,
+ 203, 28, 236, 194, 10, 162, 3, 90, 199, 192, 196, 137, 232, 136, 64, 10,
+ 162, 3, 103, 199, 189, 196, 137, 232, 136, 64, 10, 162, 3, 90, 234, 144,
+ 250, 53, 10, 162, 3, 90, 208, 168, 250, 53, 10, 162, 3, 40, 250, 40, 90,
+ 203, 29, 10, 162, 3, 40, 250, 40, 90, 208, 167, 10, 162, 3, 90, 208, 168,
+ 230, 156, 10, 162, 3, 90, 138, 230, 156, 10, 162, 3, 234, 122, 90, 199,
+ 191, 10, 162, 3, 234, 122, 103, 199, 188, 10, 162, 3, 234, 122, 232, 126,
+ 10, 162, 3, 234, 122, 233, 3, 10, 162, 3, 232, 119, 124, 196, 137, 20,
+ 10, 162, 3, 232, 214, 124, 196, 137, 20, 10, 162, 3, 203, 41, 124, 196,
+ 137, 20, 10, 162, 3, 204, 146, 124, 196, 137, 20, 10, 162, 3, 234, 148,
+ 124, 196, 137, 20, 10, 162, 3, 214, 16, 124, 196, 137, 20, 10, 209, 38,
+ 3, 40, 250, 40, 194, 11, 236, 177, 10, 209, 38, 3, 84, 242, 47, 10, 209,
+ 38, 3, 237, 11, 242, 47, 10, 209, 38, 3, 237, 11, 198, 181, 10, 209, 38,
+ 3, 237, 11, 208, 173, 10, 3, 251, 239, 24, 212, 231, 200, 19, 10, 3, 251,
+ 239, 24, 203, 162, 10, 3, 251, 126, 24, 233, 252, 10, 3, 248, 242, 24,
+ 236, 195, 200, 19, 10, 3, 248, 228, 24, 251, 155, 10, 3, 248, 228, 24,
+ 214, 60, 10, 3, 248, 228, 24, 192, 112, 10, 3, 247, 125, 136, 247, 125,
+ 24, 215, 87, 10, 3, 238, 1, 24, 200, 141, 10, 3, 237, 247, 24, 221, 0,
+ 10, 3, 236, 228, 24, 223, 226, 10, 3, 236, 228, 24, 124, 124, 68, 10, 3,
+ 236, 226, 24, 197, 109, 10, 3, 235, 57, 24, 250, 188, 10, 3, 235, 57, 24,
+ 250, 53, 10, 3, 235, 57, 24, 250, 54, 250, 27, 220, 28, 10, 3, 235, 57,
+ 24, 236, 215, 10, 3, 235, 57, 24, 235, 49, 10, 3, 235, 57, 24, 234, 15,
+ 10, 3, 235, 57, 24, 231, 233, 10, 3, 235, 57, 24, 231, 46, 10, 3, 235,
+ 57, 24, 231, 28, 230, 162, 10, 3, 235, 57, 24, 231, 18, 10, 3, 235, 57,
+ 24, 144, 10, 3, 235, 57, 24, 229, 178, 10, 3, 235, 57, 24, 223, 227, 230,
+ 162, 10, 3, 235, 57, 24, 222, 88, 10, 3, 235, 57, 24, 221, 0, 10, 3, 235,
+ 57, 24, 220, 249, 10, 3, 235, 57, 24, 220, 250, 102, 222, 88, 10, 3, 235,
+ 57, 24, 220, 151, 10, 3, 235, 57, 24, 220, 94, 10, 3, 235, 57, 24, 220,
+ 95, 24, 221, 0, 10, 3, 235, 57, 24, 219, 25, 102, 231, 18, 10, 3, 235,
+ 57, 24, 217, 110, 10, 3, 235, 57, 24, 216, 248, 10, 3, 235, 57, 24, 216,
+ 175, 10, 3, 235, 57, 24, 214, 60, 10, 3, 235, 57, 24, 210, 51, 10, 3,
+ 235, 57, 24, 204, 12, 10, 3, 235, 57, 24, 203, 126, 230, 162, 10, 3, 234,
+ 201, 24, 221, 0, 10, 3, 234, 201, 24, 210, 253, 10, 3, 234, 16, 193, 223,
+ 10, 3, 233, 253, 238, 176, 233, 252, 10, 3, 233, 169, 203, 250, 24, 250,
+ 53, 10, 3, 233, 169, 203, 250, 24, 229, 178, 10, 3, 233, 169, 203, 250,
+ 24, 223, 227, 230, 162, 10, 3, 233, 169, 203, 250, 24, 177, 10, 3, 233,
+ 169, 203, 250, 24, 220, 96, 10, 3, 233, 169, 203, 250, 24, 217, 48, 10,
+ 3, 233, 169, 203, 250, 24, 216, 248, 10, 3, 233, 169, 203, 250, 24, 201,
+ 184, 10, 3, 233, 169, 24, 201, 184, 10, 3, 231, 232, 24, 248, 227, 10, 3,
+ 231, 232, 24, 236, 228, 230, 162, 10, 3, 231, 232, 24, 235, 57, 24, 223,
+ 227, 230, 162, 10, 3, 231, 232, 24, 235, 57, 24, 222, 88, 10, 3, 231,
+ 232, 24, 234, 18, 10, 3, 231, 232, 24, 231, 233, 10, 3, 231, 232, 24,
+ 231, 194, 102, 237, 16, 10, 3, 231, 232, 24, 231, 194, 102, 214, 214, 10,
+ 3, 231, 232, 24, 230, 113, 102, 64, 10, 3, 231, 232, 24, 220, 250, 102,
+ 222, 88, 10, 3, 231, 232, 24, 220, 94, 10, 3, 231, 232, 24, 220, 95, 24,
+ 221, 0, 10, 3, 231, 232, 24, 219, 24, 10, 3, 231, 232, 24, 215, 189, 10,
+ 3, 231, 232, 24, 214, 214, 10, 3, 231, 232, 24, 214, 215, 102, 234, 200,
+ 10, 3, 231, 232, 24, 214, 215, 102, 231, 46, 10, 3, 231, 232, 24, 203,
+ 228, 10, 3, 231, 232, 24, 192, 13, 10, 3, 231, 227, 207, 16, 214, 12,
+ 237, 94, 10, 3, 231, 128, 24, 68, 10, 3, 231, 19, 24, 231, 19, 238, 176,
+ 231, 18, 10, 3, 230, 185, 24, 223, 227, 230, 162, 10, 3, 230, 176, 102,
+ 231, 19, 24, 200, 141, 10, 3, 230, 113, 200, 20, 230, 162, 10, 3, 229,
+ 179, 24, 250, 54, 136, 229, 179, 24, 250, 53, 10, 3, 222, 174, 24, 247,
+ 124, 10, 3, 222, 174, 24, 160, 10, 3, 222, 174, 24, 124, 124, 68, 10, 3,
+ 222, 174, 24, 197, 27, 10, 3, 220, 164, 24, 191, 253, 136, 191, 252, 10,
+ 3, 220, 152, 10, 3, 220, 150, 10, 3, 220, 149, 10, 3, 220, 148, 10, 3,
+ 220, 147, 10, 3, 220, 146, 10, 3, 220, 145, 10, 3, 220, 144, 136, 220,
+ 144, 230, 162, 10, 3, 220, 143, 10, 3, 220, 142, 136, 220, 141, 10, 3,
+ 220, 140, 10, 3, 220, 139, 10, 3, 220, 138, 10, 3, 220, 137, 10, 3, 220,
+ 136, 10, 3, 220, 135, 10, 3, 220, 134, 10, 3, 220, 133, 10, 3, 220, 132,
+ 10, 3, 220, 131, 10, 3, 220, 130, 10, 3, 220, 129, 10, 3, 220, 128, 10,
+ 3, 220, 127, 10, 3, 220, 126, 10, 3, 220, 125, 10, 3, 220, 124, 10, 3,
+ 220, 123, 10, 3, 220, 121, 10, 3, 220, 122, 24, 230, 186, 10, 3, 220,
+ 122, 24, 223, 226, 10, 3, 220, 122, 24, 210, 254, 102, 219, 33, 10, 3,
+ 220, 122, 24, 210, 254, 102, 210, 254, 102, 219, 33, 10, 3, 220, 122, 24,
+ 197, 121, 102, 249, 3, 10, 3, 220, 120, 10, 3, 220, 119, 10, 3, 220, 118,
+ 10, 3, 220, 117, 10, 3, 220, 116, 10, 3, 220, 115, 10, 3, 220, 114, 10,
+ 3, 220, 113, 10, 3, 220, 112, 10, 3, 220, 111, 10, 3, 220, 109, 10, 3,
+ 220, 110, 24, 250, 53, 10, 3, 220, 110, 24, 248, 241, 10, 3, 220, 110,
+ 24, 235, 48, 230, 163, 230, 162, 10, 3, 220, 110, 24, 221, 24, 10, 3,
+ 220, 110, 24, 177, 10, 3, 220, 110, 24, 200, 112, 10, 3, 220, 110, 24,
+ 200, 79, 10, 3, 220, 110, 24, 197, 120, 10, 3, 220, 110, 24, 197, 109,
+ 10, 3, 220, 110, 24, 197, 14, 10, 3, 220, 108, 10, 3, 220, 106, 10, 3,
+ 220, 107, 24, 235, 60, 10, 3, 220, 107, 24, 231, 233, 10, 3, 220, 107,
+ 24, 223, 226, 10, 3, 220, 107, 24, 223, 227, 230, 162, 10, 3, 220, 107,
+ 24, 214, 60, 10, 3, 220, 107, 24, 210, 254, 102, 210, 254, 102, 219, 33,
+ 10, 3, 220, 107, 24, 203, 253, 102, 221, 204, 10, 3, 220, 107, 24, 197,
+ 109, 10, 3, 220, 107, 24, 197, 14, 10, 3, 220, 104, 10, 3, 220, 103, 10,
+ 3, 219, 35, 230, 163, 24, 250, 53, 10, 3, 219, 35, 24, 236, 194, 10, 3,
+ 219, 35, 24, 230, 81, 10, 3, 219, 35, 24, 210, 253, 10, 3, 219, 35, 24,
+ 210, 254, 102, 210, 254, 102, 219, 33, 10, 3, 219, 35, 24, 200, 141, 10,
+ 3, 216, 176, 102, 192, 111, 10, 3, 215, 190, 136, 215, 190, 24, 231, 233,
+ 10, 3, 215, 190, 136, 215, 190, 24, 222, 129, 10, 3, 214, 18, 24, 236,
+ 228, 230, 162, 10, 3, 214, 18, 24, 231, 18, 10, 3, 214, 18, 24, 230, 167,
+ 10, 3, 214, 18, 24, 229, 178, 10, 3, 214, 18, 24, 222, 21, 10, 3, 214,
+ 18, 24, 220, 147, 10, 3, 214, 18, 24, 217, 110, 10, 3, 214, 18, 24, 210,
+ 254, 102, 210, 253, 10, 3, 214, 18, 24, 68, 10, 3, 214, 18, 24, 124, 102,
+ 68, 10, 3, 214, 18, 24, 197, 14, 10, 3, 206, 80, 230, 163, 24, 144, 10,
+ 3, 206, 80, 24, 234, 88, 10, 3, 206, 80, 24, 204, 13, 250, 27, 220, 28,
+ 10, 3, 206, 80, 24, 200, 141, 10, 3, 204, 61, 200, 19, 10, 3, 204, 13,
+ 136, 204, 12, 10, 3, 204, 13, 102, 228, 173, 10, 3, 204, 13, 102, 215,
+ 64, 10, 3, 204, 13, 102, 206, 25, 10, 3, 203, 163, 102, 235, 57, 24, 214,
+ 60, 10, 3, 203, 163, 102, 234, 201, 24, 250, 224, 10, 3, 203, 126, 24,
+ 200, 141, 10, 3, 200, 142, 102, 206, 79, 10, 3, 198, 28, 24, 231, 202,
+ 200, 19, 10, 3, 198, 28, 24, 112, 236, 194, 10, 3, 197, 26, 223, 120, 10,
+ 3, 197, 26, 24, 197, 109, 10, 3, 197, 17, 24, 237, 194, 10, 3, 197, 17,
+ 24, 220, 105, 10, 3, 197, 17, 24, 219, 33, 10, 3, 192, 111, 10, 3, 191,
+ 253, 136, 191, 253, 102, 206, 25, 10, 3, 191, 251, 24, 112, 236, 195,
+ 200, 19, 14, 7, 255, 26, 14, 7, 255, 25, 14, 7, 255, 24, 14, 7, 255, 23,
+ 14, 7, 255, 22, 14, 7, 255, 21, 14, 7, 255, 20, 14, 7, 255, 19, 14, 7,
+ 255, 18, 14, 7, 255, 17, 14, 7, 255, 16, 14, 7, 255, 15, 14, 7, 255, 14,
+ 14, 7, 255, 12, 14, 7, 255, 11, 14, 7, 255, 10, 14, 7, 255, 9, 14, 7,
+ 255, 8, 14, 7, 255, 7, 14, 7, 255, 6, 14, 7, 255, 5, 14, 7, 255, 4, 14,
+ 7, 255, 3, 14, 7, 255, 2, 14, 7, 255, 1, 14, 7, 255, 0, 14, 7, 254, 255,
+ 14, 7, 254, 254, 14, 7, 254, 253, 14, 7, 254, 252, 14, 7, 254, 251, 14,
+ 7, 254, 249, 14, 7, 254, 248, 14, 7, 254, 246, 14, 7, 254, 245, 14, 7,
+ 254, 244, 14, 7, 254, 243, 14, 7, 254, 242, 14, 7, 254, 241, 14, 7, 254,
+ 240, 14, 7, 254, 239, 14, 7, 254, 238, 14, 7, 254, 237, 14, 7, 254, 236,
+ 14, 7, 254, 235, 14, 7, 254, 233, 14, 7, 254, 232, 14, 7, 254, 231, 14,
+ 7, 254, 229, 14, 7, 254, 228, 14, 7, 254, 227, 14, 7, 254, 226, 14, 7,
+ 254, 225, 14, 7, 254, 224, 14, 7, 254, 223, 14, 7, 254, 222, 14, 7, 254,
+ 219, 14, 7, 254, 218, 14, 7, 254, 217, 14, 7, 254, 216, 14, 7, 254, 215,
+ 14, 7, 254, 214, 14, 7, 254, 213, 14, 7, 254, 212, 14, 7, 254, 211, 14,
+ 7, 254, 210, 14, 7, 254, 209, 14, 7, 254, 208, 14, 7, 254, 207, 14, 7,
+ 254, 206, 14, 7, 254, 205, 14, 7, 254, 204, 14, 7, 254, 203, 14, 7, 254,
+ 202, 14, 7, 254, 201, 14, 7, 254, 200, 14, 7, 254, 196, 14, 7, 254, 195,
+ 14, 7, 254, 194, 14, 7, 254, 193, 14, 7, 249, 224, 14, 7, 249, 222, 14,
+ 7, 249, 220, 14, 7, 249, 218, 14, 7, 249, 216, 14, 7, 249, 215, 14, 7,
+ 249, 213, 14, 7, 249, 211, 14, 7, 249, 209, 14, 7, 249, 207, 14, 7, 247,
+ 48, 14, 7, 247, 47, 14, 7, 247, 46, 14, 7, 247, 45, 14, 7, 247, 44, 14,
+ 7, 247, 43, 14, 7, 247, 42, 14, 7, 247, 41, 14, 7, 247, 40, 14, 7, 247,
+ 39, 14, 7, 247, 38, 14, 7, 247, 37, 14, 7, 247, 36, 14, 7, 247, 35, 14,
+ 7, 247, 34, 14, 7, 247, 33, 14, 7, 247, 32, 14, 7, 247, 31, 14, 7, 247,
+ 30, 14, 7, 247, 29, 14, 7, 247, 28, 14, 7, 247, 27, 14, 7, 247, 26, 14,
+ 7, 247, 25, 14, 7, 247, 24, 14, 7, 247, 23, 14, 7, 247, 22, 14, 7, 247,
+ 21, 14, 7, 238, 94, 14, 7, 238, 93, 14, 7, 238, 92, 14, 7, 238, 91, 14,
+ 7, 238, 90, 14, 7, 238, 89, 14, 7, 238, 88, 14, 7, 238, 87, 14, 7, 238,
+ 86, 14, 7, 238, 85, 14, 7, 238, 84, 14, 7, 238, 83, 14, 7, 238, 82, 14,
+ 7, 238, 81, 14, 7, 238, 80, 14, 7, 238, 79, 14, 7, 238, 78, 14, 7, 238,
+ 77, 14, 7, 238, 76, 14, 7, 238, 75, 14, 7, 238, 74, 14, 7, 238, 73, 14,
+ 7, 238, 72, 14, 7, 238, 71, 14, 7, 238, 70, 14, 7, 238, 69, 14, 7, 238,
+ 68, 14, 7, 238, 67, 14, 7, 238, 66, 14, 7, 238, 65, 14, 7, 238, 64, 14,
+ 7, 238, 63, 14, 7, 238, 62, 14, 7, 238, 61, 14, 7, 238, 60, 14, 7, 238,
+ 59, 14, 7, 238, 58, 14, 7, 238, 57, 14, 7, 238, 56, 14, 7, 238, 55, 14,
+ 7, 238, 54, 14, 7, 238, 53, 14, 7, 238, 52, 14, 7, 238, 51, 14, 7, 238,
+ 50, 14, 7, 238, 49, 14, 7, 238, 48, 14, 7, 238, 47, 14, 7, 238, 46, 14,
+ 7, 238, 45, 14, 7, 238, 44, 14, 7, 238, 43, 14, 7, 238, 42, 14, 7, 238,
+ 41, 14, 7, 238, 40, 14, 7, 238, 39, 14, 7, 238, 38, 14, 7, 238, 37, 14,
+ 7, 238, 36, 14, 7, 238, 35, 14, 7, 238, 34, 14, 7, 238, 33, 14, 7, 238,
+ 32, 14, 7, 238, 31, 14, 7, 238, 30, 14, 7, 238, 29, 14, 7, 238, 28, 14,
+ 7, 238, 27, 14, 7, 238, 26, 14, 7, 238, 25, 14, 7, 238, 24, 14, 7, 238,
+ 23, 14, 7, 238, 22, 14, 7, 238, 21, 14, 7, 238, 20, 14, 7, 238, 19, 14,
+ 7, 238, 18, 14, 7, 238, 17, 14, 7, 238, 16, 14, 7, 238, 15, 14, 7, 238,
+ 14, 14, 7, 238, 13, 14, 7, 238, 12, 14, 7, 238, 11, 14, 7, 238, 10, 14,
+ 7, 238, 9, 14, 7, 238, 8, 14, 7, 238, 7, 14, 7, 238, 6, 14, 7, 238, 5,
+ 14, 7, 238, 4, 14, 7, 238, 3, 14, 7, 234, 245, 14, 7, 234, 244, 14, 7,
+ 234, 243, 14, 7, 234, 242, 14, 7, 234, 241, 14, 7, 234, 240, 14, 7, 234,
+ 239, 14, 7, 234, 238, 14, 7, 234, 237, 14, 7, 234, 236, 14, 7, 234, 235,
+ 14, 7, 234, 234, 14, 7, 234, 233, 14, 7, 234, 232, 14, 7, 234, 231, 14,
+ 7, 234, 230, 14, 7, 234, 229, 14, 7, 234, 228, 14, 7, 234, 227, 14, 7,
+ 234, 226, 14, 7, 234, 225, 14, 7, 234, 224, 14, 7, 234, 223, 14, 7, 234,
+ 222, 14, 7, 234, 221, 14, 7, 234, 220, 14, 7, 234, 219, 14, 7, 234, 218,
+ 14, 7, 234, 217, 14, 7, 234, 216, 14, 7, 234, 215, 14, 7, 234, 214, 14,
+ 7, 234, 213, 14, 7, 234, 212, 14, 7, 234, 211, 14, 7, 234, 210, 14, 7,
+ 234, 209, 14, 7, 234, 208, 14, 7, 234, 207, 14, 7, 234, 206, 14, 7, 234,
+ 205, 14, 7, 234, 204, 14, 7, 234, 203, 14, 7, 234, 202, 14, 7, 233, 162,
+ 14, 7, 233, 161, 14, 7, 233, 160, 14, 7, 233, 159, 14, 7, 233, 158, 14,
+ 7, 233, 157, 14, 7, 233, 156, 14, 7, 233, 155, 14, 7, 233, 154, 14, 7,
+ 233, 153, 14, 7, 233, 152, 14, 7, 233, 151, 14, 7, 233, 150, 14, 7, 233,
+ 149, 14, 7, 233, 148, 14, 7, 233, 147, 14, 7, 233, 146, 14, 7, 233, 145,
+ 14, 7, 233, 144, 14, 7, 233, 143, 14, 7, 233, 142, 14, 7, 233, 141, 14,
+ 7, 233, 140, 14, 7, 233, 139, 14, 7, 233, 138, 14, 7, 233, 137, 14, 7,
+ 233, 136, 14, 7, 233, 135, 14, 7, 233, 134, 14, 7, 233, 133, 14, 7, 233,
+ 132, 14, 7, 233, 131, 14, 7, 233, 130, 14, 7, 233, 129, 14, 7, 233, 128,
+ 14, 7, 233, 127, 14, 7, 233, 126, 14, 7, 233, 125, 14, 7, 233, 124, 14,
+ 7, 233, 123, 14, 7, 233, 122, 14, 7, 233, 121, 14, 7, 233, 120, 14, 7,
+ 233, 119, 14, 7, 233, 118, 14, 7, 233, 117, 14, 7, 233, 116, 14, 7, 233,
+ 115, 14, 7, 233, 114, 14, 7, 233, 113, 14, 7, 233, 112, 14, 7, 233, 111,
+ 14, 7, 233, 110, 14, 7, 233, 109, 14, 7, 233, 108, 14, 7, 233, 107, 14,
+ 7, 233, 106, 14, 7, 233, 105, 14, 7, 233, 104, 14, 7, 233, 103, 14, 7,
+ 233, 102, 14, 7, 233, 101, 14, 7, 233, 100, 14, 7, 233, 99, 14, 7, 233,
+ 98, 14, 7, 232, 43, 14, 7, 232, 42, 14, 7, 232, 41, 14, 7, 232, 40, 14,
+ 7, 232, 39, 14, 7, 232, 38, 14, 7, 232, 37, 14, 7, 232, 36, 14, 7, 232,
+ 35, 14, 7, 232, 34, 14, 7, 232, 33, 14, 7, 232, 32, 14, 7, 232, 31, 14,
+ 7, 232, 30, 14, 7, 232, 29, 14, 7, 232, 28, 14, 7, 232, 27, 14, 7, 232,
+ 26, 14, 7, 232, 25, 14, 7, 232, 24, 14, 7, 232, 23, 14, 7, 232, 22, 14,
+ 7, 232, 21, 14, 7, 232, 20, 14, 7, 232, 19, 14, 7, 232, 18, 14, 7, 232,
+ 17, 14, 7, 232, 16, 14, 7, 232, 15, 14, 7, 232, 14, 14, 7, 232, 13, 14,
+ 7, 232, 12, 14, 7, 232, 11, 14, 7, 232, 10, 14, 7, 232, 9, 14, 7, 232, 8,
+ 14, 7, 232, 7, 14, 7, 232, 6, 14, 7, 232, 5, 14, 7, 232, 4, 14, 7, 232,
+ 3, 14, 7, 232, 2, 14, 7, 232, 1, 14, 7, 232, 0, 14, 7, 231, 255, 14, 7,
+ 231, 254, 14, 7, 231, 253, 14, 7, 231, 252, 14, 7, 231, 251, 14, 7, 231,
+ 250, 14, 7, 231, 249, 14, 7, 231, 248, 14, 7, 231, 247, 14, 7, 231, 246,
+ 14, 7, 231, 245, 14, 7, 231, 244, 14, 7, 231, 243, 14, 7, 231, 242, 14,
+ 7, 231, 241, 14, 7, 231, 240, 14, 7, 231, 239, 14, 7, 231, 238, 14, 7,
+ 231, 237, 14, 7, 231, 236, 14, 7, 230, 122, 14, 7, 230, 121, 14, 7, 230,
+ 120, 14, 7, 230, 119, 14, 7, 230, 118, 14, 7, 230, 117, 14, 7, 230, 116,
+ 14, 7, 230, 115, 14, 7, 230, 114, 14, 7, 228, 77, 14, 7, 228, 76, 14, 7,
+ 228, 75, 14, 7, 228, 74, 14, 7, 228, 73, 14, 7, 228, 72, 14, 7, 228, 71,
+ 14, 7, 228, 70, 14, 7, 228, 69, 14, 7, 228, 68, 14, 7, 228, 67, 14, 7,
+ 228, 66, 14, 7, 228, 65, 14, 7, 228, 64, 14, 7, 228, 63, 14, 7, 228, 62,
+ 14, 7, 228, 61, 14, 7, 228, 60, 14, 7, 228, 59, 14, 7, 222, 183, 14, 7,
+ 222, 182, 14, 7, 222, 181, 14, 7, 222, 180, 14, 7, 222, 179, 14, 7, 222,
+ 178, 14, 7, 222, 177, 14, 7, 222, 176, 14, 7, 220, 199, 14, 7, 220, 198,
+ 14, 7, 220, 197, 14, 7, 220, 196, 14, 7, 220, 195, 14, 7, 220, 194, 14,
+ 7, 220, 193, 14, 7, 220, 192, 14, 7, 220, 191, 14, 7, 220, 190, 14, 7,
+ 218, 234, 14, 7, 218, 233, 14, 7, 218, 232, 14, 7, 218, 230, 14, 7, 218,
+ 228, 14, 7, 218, 227, 14, 7, 218, 225, 14, 7, 218, 223, 14, 7, 218, 221,
+ 14, 7, 218, 219, 14, 7, 218, 217, 14, 7, 218, 215, 14, 7, 218, 213, 14,
+ 7, 218, 212, 14, 7, 218, 210, 14, 7, 218, 208, 14, 7, 218, 207, 14, 7,
+ 218, 206, 14, 7, 218, 205, 14, 7, 218, 204, 14, 7, 218, 203, 14, 7, 218,
+ 202, 14, 7, 218, 201, 14, 7, 218, 200, 14, 7, 218, 198, 14, 7, 218, 196,
+ 14, 7, 218, 194, 14, 7, 218, 193, 14, 7, 218, 191, 14, 7, 218, 190, 14,
+ 7, 218, 188, 14, 7, 218, 187, 14, 7, 218, 185, 14, 7, 218, 183, 14, 7,
+ 218, 181, 14, 7, 218, 179, 14, 7, 218, 177, 14, 7, 218, 176, 14, 7, 218,
+ 174, 14, 7, 218, 172, 14, 7, 218, 171, 14, 7, 218, 169, 14, 7, 218, 167,
+ 14, 7, 218, 165, 14, 7, 218, 163, 14, 7, 218, 162, 14, 7, 218, 160, 14,
+ 7, 218, 158, 14, 7, 218, 156, 14, 7, 218, 155, 14, 7, 218, 153, 14, 7,
+ 218, 151, 14, 7, 218, 150, 14, 7, 218, 149, 14, 7, 218, 147, 14, 7, 218,
+ 145, 14, 7, 218, 143, 14, 7, 218, 141, 14, 7, 218, 139, 14, 7, 218, 137,
+ 14, 7, 218, 135, 14, 7, 218, 134, 14, 7, 218, 132, 14, 7, 218, 130, 14,
+ 7, 218, 128, 14, 7, 218, 126, 14, 7, 215, 146, 14, 7, 215, 145, 14, 7,
+ 215, 144, 14, 7, 215, 143, 14, 7, 215, 142, 14, 7, 215, 141, 14, 7, 215,
+ 140, 14, 7, 215, 139, 14, 7, 215, 138, 14, 7, 215, 137, 14, 7, 215, 136,
+ 14, 7, 215, 135, 14, 7, 215, 134, 14, 7, 215, 133, 14, 7, 215, 132, 14,
+ 7, 215, 131, 14, 7, 215, 130, 14, 7, 215, 129, 14, 7, 215, 128, 14, 7,
+ 215, 127, 14, 7, 215, 126, 14, 7, 215, 125, 14, 7, 215, 124, 14, 7, 215,
+ 123, 14, 7, 215, 122, 14, 7, 215, 121, 14, 7, 215, 120, 14, 7, 215, 119,
+ 14, 7, 215, 118, 14, 7, 215, 117, 14, 7, 215, 116, 14, 7, 215, 115, 14,
+ 7, 215, 114, 14, 7, 215, 113, 14, 7, 215, 112, 14, 7, 215, 111, 14, 7,
+ 215, 110, 14, 7, 215, 109, 14, 7, 215, 108, 14, 7, 215, 107, 14, 7, 215,
+ 106, 14, 7, 215, 105, 14, 7, 215, 104, 14, 7, 215, 103, 14, 7, 215, 102,
+ 14, 7, 215, 101, 14, 7, 215, 100, 14, 7, 215, 99, 14, 7, 215, 98, 14, 7,
+ 213, 203, 14, 7, 213, 202, 14, 7, 213, 201, 14, 7, 213, 200, 14, 7, 213,
+ 199, 14, 7, 213, 198, 14, 7, 213, 197, 14, 7, 213, 196, 14, 7, 213, 195,
+ 14, 7, 213, 194, 14, 7, 213, 193, 14, 7, 213, 192, 14, 7, 213, 191, 14,
+ 7, 213, 190, 14, 7, 213, 189, 14, 7, 213, 188, 14, 7, 213, 187, 14, 7,
+ 213, 186, 14, 7, 213, 185, 14, 7, 213, 184, 14, 7, 213, 183, 14, 7, 213,
+ 182, 14, 7, 213, 18, 14, 7, 213, 17, 14, 7, 213, 16, 14, 7, 213, 15, 14,
+ 7, 213, 14, 14, 7, 213, 13, 14, 7, 213, 12, 14, 7, 213, 11, 14, 7, 213,
+ 10, 14, 7, 213, 9, 14, 7, 213, 8, 14, 7, 213, 7, 14, 7, 213, 6, 14, 7,
+ 213, 5, 14, 7, 213, 4, 14, 7, 213, 3, 14, 7, 213, 2, 14, 7, 213, 1, 14,
+ 7, 213, 0, 14, 7, 212, 255, 14, 7, 212, 254, 14, 7, 212, 253, 14, 7, 212,
+ 252, 14, 7, 212, 251, 14, 7, 212, 250, 14, 7, 212, 249, 14, 7, 212, 102,
+ 14, 7, 212, 101, 14, 7, 212, 100, 14, 7, 212, 99, 14, 7, 212, 98, 14, 7,
+ 212, 97, 14, 7, 212, 96, 14, 7, 212, 95, 14, 7, 212, 94, 14, 7, 212, 93,
+ 14, 7, 212, 92, 14, 7, 212, 91, 14, 7, 212, 90, 14, 7, 212, 89, 14, 7,
+ 212, 88, 14, 7, 212, 87, 14, 7, 212, 86, 14, 7, 212, 85, 14, 7, 212, 84,
+ 14, 7, 212, 83, 14, 7, 212, 82, 14, 7, 212, 81, 14, 7, 212, 80, 14, 7,
+ 212, 79, 14, 7, 212, 78, 14, 7, 212, 77, 14, 7, 212, 76, 14, 7, 212, 75,
+ 14, 7, 212, 74, 14, 7, 212, 73, 14, 7, 212, 72, 14, 7, 212, 71, 14, 7,
+ 212, 70, 14, 7, 212, 69, 14, 7, 212, 68, 14, 7, 212, 67, 14, 7, 212, 66,
+ 14, 7, 212, 65, 14, 7, 212, 64, 14, 7, 212, 63, 14, 7, 212, 62, 14, 7,
+ 212, 61, 14, 7, 212, 60, 14, 7, 212, 59, 14, 7, 212, 58, 14, 7, 212, 57,
+ 14, 7, 212, 56, 14, 7, 212, 55, 14, 7, 212, 54, 14, 7, 212, 53, 14, 7,
+ 212, 52, 14, 7, 212, 51, 14, 7, 212, 50, 14, 7, 212, 49, 14, 7, 212, 48,
+ 14, 7, 212, 47, 14, 7, 212, 46, 14, 7, 212, 45, 14, 7, 212, 44, 14, 7,
+ 212, 43, 14, 7, 212, 42, 14, 7, 212, 41, 14, 7, 212, 40, 14, 7, 212, 39,
+ 14, 7, 212, 38, 14, 7, 212, 37, 14, 7, 212, 36, 14, 7, 212, 35, 14, 7,
+ 212, 34, 14, 7, 212, 33, 14, 7, 212, 32, 14, 7, 212, 31, 14, 7, 212, 30,
+ 14, 7, 212, 29, 14, 7, 212, 28, 14, 7, 211, 92, 14, 7, 211, 91, 14, 7,
+ 211, 90, 14, 7, 211, 89, 14, 7, 211, 88, 14, 7, 211, 87, 14, 7, 211, 86,
+ 14, 7, 211, 85, 14, 7, 211, 84, 14, 7, 211, 83, 14, 7, 211, 82, 14, 7,
+ 211, 81, 14, 7, 211, 80, 14, 7, 208, 246, 14, 7, 208, 245, 14, 7, 208,
+ 244, 14, 7, 208, 243, 14, 7, 208, 242, 14, 7, 208, 241, 14, 7, 208, 240,
+ 14, 7, 208, 110, 14, 7, 208, 109, 14, 7, 208, 108, 14, 7, 208, 107, 14,
+ 7, 208, 106, 14, 7, 208, 105, 14, 7, 208, 104, 14, 7, 208, 103, 14, 7,
+ 208, 102, 14, 7, 208, 101, 14, 7, 208, 100, 14, 7, 208, 99, 14, 7, 208,
+ 98, 14, 7, 208, 97, 14, 7, 208, 96, 14, 7, 208, 95, 14, 7, 208, 94, 14,
+ 7, 208, 93, 14, 7, 208, 92, 14, 7, 208, 91, 14, 7, 208, 90, 14, 7, 208,
+ 89, 14, 7, 208, 88, 14, 7, 208, 87, 14, 7, 208, 86, 14, 7, 208, 85, 14,
+ 7, 208, 84, 14, 7, 208, 83, 14, 7, 208, 82, 14, 7, 208, 81, 14, 7, 208,
+ 80, 14, 7, 208, 79, 14, 7, 208, 78, 14, 7, 208, 77, 14, 7, 206, 155, 14,
+ 7, 206, 154, 14, 7, 206, 153, 14, 7, 206, 152, 14, 7, 206, 151, 14, 7,
+ 206, 150, 14, 7, 206, 149, 14, 7, 206, 148, 14, 7, 206, 147, 14, 7, 206,
+ 146, 14, 7, 206, 145, 14, 7, 206, 144, 14, 7, 206, 143, 14, 7, 206, 142,
+ 14, 7, 206, 141, 14, 7, 206, 140, 14, 7, 206, 139, 14, 7, 206, 138, 14,
+ 7, 206, 137, 14, 7, 206, 136, 14, 7, 206, 135, 14, 7, 206, 134, 14, 7,
+ 206, 133, 14, 7, 206, 132, 14, 7, 206, 131, 14, 7, 206, 130, 14, 7, 206,
+ 129, 14, 7, 206, 128, 14, 7, 206, 127, 14, 7, 206, 126, 14, 7, 206, 125,
+ 14, 7, 206, 124, 14, 7, 206, 123, 14, 7, 206, 122, 14, 7, 206, 121, 14,
+ 7, 206, 120, 14, 7, 206, 119, 14, 7, 206, 118, 14, 7, 206, 117, 14, 7,
+ 206, 116, 14, 7, 206, 115, 14, 7, 206, 114, 14, 7, 206, 113, 14, 7, 206,
+ 112, 14, 7, 206, 111, 14, 7, 206, 110, 14, 7, 206, 109, 14, 7, 206, 108,
+ 14, 7, 206, 107, 14, 7, 206, 106, 14, 7, 206, 105, 14, 7, 206, 104, 14,
+ 7, 206, 103, 14, 7, 206, 102, 14, 7, 200, 225, 14, 7, 200, 224, 14, 7,
+ 200, 223, 14, 7, 200, 222, 14, 7, 200, 221, 14, 7, 200, 220, 14, 7, 200,
+ 219, 14, 7, 200, 218, 14, 7, 200, 217, 14, 7, 200, 216, 14, 7, 200, 215,
+ 14, 7, 200, 214, 14, 7, 200, 213, 14, 7, 200, 212, 14, 7, 200, 211, 14,
+ 7, 200, 210, 14, 7, 200, 209, 14, 7, 200, 208, 14, 7, 200, 207, 14, 7,
+ 200, 206, 14, 7, 200, 205, 14, 7, 200, 204, 14, 7, 200, 203, 14, 7, 200,
+ 202, 14, 7, 200, 201, 14, 7, 200, 200, 14, 7, 200, 199, 14, 7, 200, 198,
+ 14, 7, 200, 197, 14, 7, 200, 196, 14, 7, 200, 195, 14, 7, 200, 194, 14,
+ 7, 200, 193, 14, 7, 200, 192, 14, 7, 200, 191, 14, 7, 200, 190, 14, 7,
+ 200, 189, 14, 7, 200, 188, 14, 7, 200, 187, 14, 7, 200, 186, 14, 7, 200,
+ 185, 14, 7, 200, 184, 14, 7, 200, 183, 14, 7, 200, 182, 14, 7, 197, 168,
+ 14, 7, 197, 167, 14, 7, 197, 166, 14, 7, 197, 165, 14, 7, 197, 164, 14,
+ 7, 197, 163, 14, 7, 197, 162, 14, 7, 197, 161, 14, 7, 197, 160, 14, 7,
+ 197, 159, 14, 7, 197, 158, 14, 7, 197, 157, 14, 7, 197, 156, 14, 7, 197,
+ 155, 14, 7, 197, 154, 14, 7, 197, 153, 14, 7, 197, 152, 14, 7, 197, 151,
+ 14, 7, 197, 150, 14, 7, 197, 149, 14, 7, 197, 148, 14, 7, 197, 147, 14,
+ 7, 197, 146, 14, 7, 197, 145, 14, 7, 197, 144, 14, 7, 197, 143, 14, 7,
+ 197, 142, 14, 7, 197, 141, 14, 7, 197, 140, 14, 7, 197, 139, 14, 7, 197,
+ 138, 14, 7, 197, 137, 14, 7, 197, 136, 14, 7, 197, 135, 14, 7, 197, 134,
+ 14, 7, 197, 133, 14, 7, 197, 132, 14, 7, 197, 131, 14, 7, 197, 130, 14,
+ 7, 197, 129, 14, 7, 197, 128, 14, 7, 197, 127, 14, 7, 197, 126, 14, 7,
+ 197, 125, 14, 7, 197, 124, 14, 7, 197, 123, 14, 7, 197, 122, 14, 7, 196,
+ 235, 14, 7, 196, 234, 14, 7, 196, 233, 14, 7, 196, 232, 14, 7, 196, 231,
+ 14, 7, 196, 230, 14, 7, 196, 229, 14, 7, 196, 228, 14, 7, 196, 227, 14,
+ 7, 196, 226, 14, 7, 196, 225, 14, 7, 196, 224, 14, 7, 196, 223, 14, 7,
+ 196, 222, 14, 7, 196, 221, 14, 7, 196, 220, 14, 7, 196, 219, 14, 7, 196,
+ 218, 14, 7, 196, 217, 14, 7, 196, 216, 14, 7, 196, 215, 14, 7, 196, 214,
+ 14, 7, 196, 213, 14, 7, 196, 212, 14, 7, 196, 211, 14, 7, 196, 210, 14,
+ 7, 196, 209, 14, 7, 196, 208, 14, 7, 196, 207, 14, 7, 196, 206, 14, 7,
+ 196, 205, 14, 7, 196, 204, 14, 7, 196, 203, 14, 7, 196, 202, 14, 7, 196,
+ 201, 14, 7, 196, 200, 14, 7, 196, 199, 14, 7, 196, 198, 14, 7, 196, 197,
+ 14, 7, 196, 196, 14, 7, 196, 195, 14, 7, 196, 194, 14, 7, 196, 193, 14,
+ 7, 196, 192, 14, 7, 196, 191, 14, 7, 196, 190, 14, 7, 196, 189, 14, 7,
+ 196, 188, 14, 7, 196, 187, 14, 7, 196, 186, 14, 7, 196, 185, 14, 7, 196,
+ 184, 14, 7, 196, 183, 14, 7, 196, 182, 14, 7, 196, 181, 14, 7, 196, 180,
+ 14, 7, 196, 179, 14, 7, 196, 178, 14, 7, 196, 177, 14, 7, 196, 176, 14,
+ 7, 196, 175, 14, 7, 196, 174, 14, 7, 196, 173, 14, 7, 196, 172, 14, 7,
+ 196, 171, 14, 7, 196, 170, 14, 7, 196, 169, 14, 7, 196, 168, 14, 7, 196,
+ 167, 14, 7, 196, 166, 14, 7, 196, 165, 14, 7, 196, 164, 14, 7, 196, 163,
+ 14, 7, 196, 162, 14, 7, 196, 161, 14, 7, 196, 160, 14, 7, 196, 159, 14,
+ 7, 194, 201, 14, 7, 194, 200, 14, 7, 194, 199, 14, 7, 194, 198, 14, 7,
+ 194, 197, 14, 7, 194, 196, 14, 7, 194, 195, 14, 7, 194, 194, 14, 7, 194,
+ 193, 14, 7, 194, 192, 14, 7, 194, 191, 14, 7, 194, 190, 14, 7, 194, 189,
+ 14, 7, 194, 188, 14, 7, 194, 187, 14, 7, 194, 186, 14, 7, 194, 185, 14,
+ 7, 194, 184, 14, 7, 194, 183, 14, 7, 194, 182, 14, 7, 194, 181, 14, 7,
+ 194, 180, 14, 7, 194, 179, 14, 7, 194, 178, 14, 7, 194, 177, 14, 7, 194,
+ 176, 14, 7, 194, 175, 14, 7, 194, 174, 14, 7, 194, 173, 14, 7, 194, 172,
+ 14, 7, 194, 171, 14, 7, 194, 170, 14, 7, 193, 221, 14, 7, 193, 220, 14,
+ 7, 193, 219, 14, 7, 193, 218, 14, 7, 193, 217, 14, 7, 193, 216, 14, 7,
+ 193, 215, 14, 7, 193, 214, 14, 7, 193, 213, 14, 7, 193, 212, 14, 7, 193,
+ 211, 14, 7, 193, 210, 14, 7, 193, 146, 14, 7, 193, 145, 14, 7, 193, 144,
+ 14, 7, 193, 143, 14, 7, 193, 142, 14, 7, 193, 141, 14, 7, 193, 140, 14,
+ 7, 193, 139, 14, 7, 193, 138, 14, 7, 192, 154, 14, 7, 192, 153, 14, 7,
+ 192, 152, 14, 7, 192, 151, 14, 7, 192, 150, 14, 7, 192, 149, 14, 7, 192,
+ 148, 14, 7, 192, 147, 14, 7, 192, 146, 14, 7, 192, 145, 14, 7, 192, 144,
+ 14, 7, 192, 143, 14, 7, 192, 142, 14, 7, 192, 141, 14, 7, 192, 140, 14,
+ 7, 192, 139, 14, 7, 192, 138, 14, 7, 192, 137, 14, 7, 192, 136, 14, 7,
+ 192, 135, 14, 7, 192, 134, 14, 7, 192, 133, 14, 7, 192, 132, 14, 7, 192,
+ 131, 14, 7, 192, 130, 14, 7, 192, 129, 14, 7, 192, 128, 14, 7, 192, 127,
+ 14, 7, 192, 126, 14, 7, 192, 125, 14, 7, 192, 124, 14, 7, 192, 123, 14,
+ 7, 192, 122, 14, 7, 192, 121, 14, 7, 192, 120, 14, 7, 192, 119, 14, 7,
+ 192, 118, 14, 7, 192, 117, 14, 7, 192, 116, 14, 7, 192, 115, 14, 7, 192,
+ 114, 14, 7, 252, 32, 14, 7, 252, 31, 14, 7, 252, 30, 14, 7, 252, 29, 14,
+ 7, 252, 28, 14, 7, 252, 27, 14, 7, 252, 26, 14, 7, 252, 25, 14, 7, 252,
+ 24, 14, 7, 252, 23, 14, 7, 252, 22, 14, 7, 252, 21, 14, 7, 252, 20, 14,
+ 7, 252, 19, 14, 7, 252, 18, 14, 7, 252, 17, 14, 7, 252, 16, 14, 7, 252,
+ 15, 14, 7, 252, 14, 14, 7, 252, 13, 14, 7, 252, 12, 14, 7, 252, 11, 14,
+ 7, 252, 10, 14, 7, 252, 9, 14, 7, 252, 8, 14, 7, 252, 7, 14, 7, 252, 6,
+ 14, 7, 252, 5, 14, 7, 252, 4, 14, 7, 252, 3, 14, 7, 252, 2, 14, 7, 252,
+ 1, 14, 7, 252, 0, 14, 7, 251, 255, 14, 7, 84, 222, 228, 14, 7, 229, 5,
+ 222, 228, 14, 7, 223, 148, 250, 27, 198, 249, 202, 14, 14, 7, 223, 148,
+ 250, 27, 247, 188, 202, 14, 14, 7, 223, 148, 250, 27, 198, 249, 234, 79,
+ 14, 7, 223, 148, 250, 27, 247, 188, 234, 79, 14, 7, 211, 111, 216, 160,
+ 14, 7, 248, 100, 205, 198, 14, 7, 234, 80, 205, 198, 29, 7, 255, 26, 29,
+ 7, 255, 25, 29, 7, 255, 24, 29, 7, 255, 23, 29, 7, 255, 22, 29, 7, 255,
+ 20, 29, 7, 255, 17, 29, 7, 255, 16, 29, 7, 255, 15, 29, 7, 255, 14, 29,
+ 7, 255, 13, 29, 7, 255, 12, 29, 7, 255, 11, 29, 7, 255, 10, 29, 7, 255,
+ 9, 29, 7, 255, 7, 29, 7, 255, 6, 29, 7, 255, 5, 29, 7, 255, 3, 29, 7,
+ 255, 2, 29, 7, 255, 1, 29, 7, 255, 0, 29, 7, 254, 255, 29, 7, 254, 254,
+ 29, 7, 254, 253, 29, 7, 254, 252, 29, 7, 254, 251, 29, 7, 254, 250, 29,
+ 7, 254, 249, 29, 7, 254, 248, 29, 7, 254, 246, 29, 7, 254, 245, 29, 7,
+ 254, 244, 29, 7, 254, 243, 29, 7, 254, 241, 29, 7, 254, 240, 29, 7, 254,
+ 239, 29, 7, 254, 238, 29, 7, 254, 237, 29, 7, 254, 236, 29, 7, 254, 235,
+ 29, 7, 254, 234, 29, 7, 254, 233, 29, 7, 254, 231, 29, 7, 254, 230, 29,
+ 7, 254, 229, 29, 7, 254, 227, 29, 7, 254, 225, 29, 7, 254, 224, 29, 7,
+ 254, 223, 29, 7, 254, 222, 29, 7, 254, 221, 29, 7, 254, 220, 29, 7, 254,
+ 219, 29, 7, 254, 218, 29, 7, 254, 217, 29, 7, 254, 216, 29, 7, 254, 215,
+ 29, 7, 254, 214, 29, 7, 254, 213, 29, 7, 254, 212, 29, 7, 254, 211, 29,
+ 7, 254, 210, 29, 7, 254, 209, 29, 7, 254, 208, 29, 7, 254, 207, 29, 7,
+ 254, 206, 29, 7, 254, 205, 29, 7, 254, 204, 29, 7, 254, 203, 29, 7, 254,
+ 202, 29, 7, 254, 201, 29, 7, 254, 200, 29, 7, 254, 199, 29, 7, 254, 198,
+ 29, 7, 254, 197, 29, 7, 254, 196, 29, 7, 254, 195, 29, 7, 254, 194, 29,
+ 7, 254, 193, 29, 7, 254, 192, 29, 7, 254, 191, 29, 7, 254, 190, 29, 7,
+ 254, 189, 29, 7, 254, 188, 29, 7, 254, 187, 29, 7, 254, 186, 29, 7, 254,
+ 185, 29, 7, 254, 184, 29, 7, 254, 183, 29, 7, 254, 182, 29, 7, 254, 181,
+ 29, 7, 254, 180, 29, 7, 254, 179, 29, 7, 254, 178, 29, 7, 254, 177, 29,
+ 7, 254, 176, 29, 7, 254, 175, 29, 7, 254, 174, 29, 7, 254, 173, 29, 7,
+ 254, 172, 29, 7, 254, 171, 29, 7, 254, 170, 29, 7, 254, 169, 29, 7, 254,
+ 168, 29, 7, 254, 167, 29, 7, 254, 166, 29, 7, 254, 165, 29, 7, 254, 164,
+ 29, 7, 254, 163, 29, 7, 254, 162, 29, 7, 254, 161, 29, 7, 254, 159, 29,
+ 7, 254, 158, 29, 7, 254, 157, 29, 7, 254, 156, 29, 7, 254, 155, 29, 7,
+ 254, 154, 29, 7, 254, 153, 29, 7, 254, 152, 29, 7, 254, 151, 29, 7, 254,
+ 150, 29, 7, 254, 149, 29, 7, 254, 148, 29, 7, 254, 147, 29, 7, 254, 146,
+ 29, 7, 254, 145, 29, 7, 254, 144, 29, 7, 254, 143, 29, 7, 254, 142, 29,
+ 7, 254, 141, 29, 7, 254, 140, 29, 7, 254, 139, 29, 7, 254, 138, 29, 7,
+ 254, 137, 29, 7, 254, 136, 29, 7, 254, 135, 29, 7, 254, 134, 29, 7, 254,
+ 133, 29, 7, 254, 132, 29, 7, 254, 131, 29, 7, 254, 130, 29, 7, 254, 129,
+ 29, 7, 254, 128, 29, 7, 254, 127, 29, 7, 254, 126, 29, 7, 254, 124, 29,
+ 7, 254, 123, 29, 7, 254, 122, 29, 7, 254, 121, 29, 7, 254, 120, 29, 7,
+ 254, 119, 29, 7, 254, 118, 29, 7, 254, 117, 29, 7, 254, 116, 29, 7, 254,
+ 115, 29, 7, 254, 114, 29, 7, 254, 113, 29, 7, 254, 111, 29, 7, 254, 110,
+ 29, 7, 254, 109, 29, 7, 254, 108, 29, 7, 254, 107, 29, 7, 254, 106, 29,
+ 7, 254, 105, 29, 7, 254, 104, 29, 7, 254, 103, 29, 7, 254, 102, 29, 7,
+ 254, 101, 29, 7, 254, 100, 29, 7, 254, 99, 29, 7, 254, 98, 29, 7, 254,
+ 97, 29, 7, 254, 96, 29, 7, 254, 95, 29, 7, 254, 94, 29, 7, 254, 93, 29,
+ 7, 254, 92, 29, 7, 254, 91, 29, 7, 254, 90, 29, 7, 254, 89, 29, 7, 254,
+ 88, 29, 7, 254, 87, 29, 7, 254, 86, 29, 7, 254, 85, 29, 7, 254, 84, 29,
+ 7, 254, 83, 29, 7, 254, 82, 29, 7, 254, 81, 29, 7, 254, 80, 29, 7, 254,
+ 79, 29, 7, 254, 78, 29, 7, 254, 77, 29, 7, 254, 76, 29, 7, 254, 75, 29,
+ 7, 254, 74, 29, 7, 254, 73, 29, 7, 254, 72, 29, 7, 254, 71, 29, 7, 254,
+ 70, 29, 7, 254, 69, 29, 7, 254, 68, 29, 7, 254, 67, 29, 7, 254, 66, 29,
+ 7, 254, 65, 29, 7, 254, 64, 29, 7, 254, 63, 29, 7, 254, 62, 29, 7, 254,
+ 61, 29, 7, 254, 60, 29, 7, 254, 59, 29, 7, 254, 58, 29, 7, 254, 57, 29,
+ 7, 254, 56, 29, 7, 254, 55, 29, 7, 254, 54, 29, 7, 254, 53, 29, 7, 254,
+ 52, 29, 7, 254, 51, 29, 7, 254, 50, 29, 7, 254, 49, 29, 7, 254, 48, 29,
+ 7, 254, 47, 29, 7, 254, 46, 29, 7, 254, 45, 29, 7, 254, 44, 29, 7, 254,
+ 43, 29, 7, 254, 41, 29, 7, 254, 40, 29, 7, 254, 39, 29, 7, 254, 38, 29,
+ 7, 254, 37, 29, 7, 254, 36, 29, 7, 254, 35, 29, 7, 254, 34, 29, 7, 254,
+ 33, 29, 7, 254, 32, 29, 7, 254, 31, 29, 7, 254, 30, 29, 7, 254, 29, 29,
+ 7, 254, 28, 29, 7, 254, 27, 29, 7, 254, 26, 29, 7, 254, 25, 29, 7, 254,
+ 24, 29, 7, 254, 23, 29, 7, 254, 22, 29, 7, 254, 21, 29, 7, 254, 20, 29,
+ 7, 254, 19, 29, 7, 254, 18, 29, 7, 254, 17, 29, 7, 254, 16, 29, 7, 254,
+ 15, 29, 7, 254, 14, 29, 7, 254, 13, 29, 7, 254, 12, 29, 7, 254, 11, 29,
+ 7, 254, 10, 29, 7, 254, 9, 29, 7, 254, 8, 29, 7, 254, 7, 29, 7, 254, 6,
+ 29, 7, 254, 5, 29, 7, 254, 4, 29, 7, 254, 3, 29, 7, 254, 2, 29, 7, 254,
+ 1, 29, 7, 254, 0, 29, 7, 253, 255, 29, 7, 253, 254, 29, 7, 253, 253, 29,
+ 7, 253, 252, 29, 7, 253, 251, 29, 7, 253, 250, 29, 7, 253, 249, 29, 7,
+ 253, 248, 29, 7, 253, 247, 29, 7, 253, 246, 29, 7, 253, 245, 29, 7, 253,
+ 244, 29, 7, 253, 243, 29, 7, 253, 242, 29, 7, 253, 241, 29, 7, 253, 240,
+ 29, 7, 253, 239, 29, 7, 253, 238, 29, 7, 253, 237, 29, 7, 253, 236, 29,
+ 7, 253, 235, 29, 7, 253, 234, 29, 7, 253, 233, 29, 7, 253, 232, 29, 7,
+ 253, 231, 29, 7, 253, 230, 29, 7, 253, 229, 29, 7, 253, 228, 29, 7, 253,
+ 227, 29, 7, 253, 226, 29, 7, 253, 225, 29, 7, 253, 224, 29, 7, 253, 223,
+ 29, 7, 253, 222, 29, 7, 253, 221, 29, 7, 253, 220, 29, 7, 253, 219, 29,
+ 7, 253, 218, 29, 7, 253, 217, 29, 7, 253, 216, 29, 7, 253, 215, 29, 7,
+ 253, 214, 29, 7, 253, 213, 29, 7, 253, 212, 29, 7, 253, 211, 29, 7, 253,
+ 210, 29, 7, 253, 209, 29, 7, 253, 208, 29, 7, 253, 207, 29, 7, 253, 206,
+ 29, 7, 253, 205, 29, 7, 253, 204, 29, 7, 253, 203, 29, 7, 253, 202, 29,
+ 7, 253, 201, 29, 7, 253, 200, 29, 7, 253, 199, 29, 7, 253, 198, 29, 7,
+ 253, 197, 29, 7, 253, 196, 29, 7, 253, 195, 29, 7, 253, 194, 29, 7, 253,
+ 193, 29, 7, 253, 192, 29, 7, 253, 191, 29, 7, 253, 190, 29, 7, 253, 189,
+ 29, 7, 253, 188, 29, 7, 253, 187, 29, 7, 253, 185, 29, 7, 253, 184, 29,
+ 7, 253, 183, 29, 7, 253, 182, 29, 7, 253, 181, 29, 7, 253, 180, 29, 7,
+ 253, 179, 29, 7, 253, 178, 29, 7, 253, 177, 29, 7, 253, 176, 29, 7, 253,
+ 175, 29, 7, 253, 172, 29, 7, 253, 171, 29, 7, 253, 170, 29, 7, 253, 169,
+ 29, 7, 253, 165, 29, 7, 253, 164, 29, 7, 253, 163, 29, 7, 253, 162, 29,
+ 7, 253, 161, 29, 7, 253, 160, 29, 7, 253, 159, 29, 7, 253, 158, 29, 7,
+ 253, 157, 29, 7, 253, 156, 29, 7, 253, 155, 29, 7, 253, 154, 29, 7, 253,
+ 153, 29, 7, 253, 152, 29, 7, 253, 151, 29, 7, 253, 150, 29, 7, 253, 149,
+ 29, 7, 253, 148, 29, 7, 253, 147, 29, 7, 253, 145, 29, 7, 253, 144, 29,
+ 7, 253, 143, 29, 7, 253, 142, 29, 7, 253, 141, 29, 7, 253, 140, 29, 7,
+ 253, 139, 29, 7, 253, 138, 29, 7, 253, 137, 29, 7, 253, 136, 29, 7, 253,
+ 135, 29, 7, 253, 134, 29, 7, 253, 133, 29, 7, 253, 132, 29, 7, 253, 131,
+ 29, 7, 253, 130, 29, 7, 253, 129, 29, 7, 253, 128, 29, 7, 253, 127, 29,
+ 7, 253, 126, 29, 7, 253, 125, 29, 7, 253, 124, 29, 7, 253, 123, 29, 7,
+ 253, 122, 29, 7, 253, 121, 29, 7, 253, 120, 29, 7, 253, 119, 29, 7, 253,
+ 118, 29, 7, 253, 117, 29, 7, 253, 116, 29, 7, 253, 115, 29, 7, 253, 114,
+ 29, 7, 253, 113, 29, 7, 253, 112, 29, 7, 253, 111, 29, 7, 253, 110, 29,
+ 7, 253, 109, 29, 7, 253, 108, 29, 7, 253, 107, 29, 7, 253, 106, 29, 7,
+ 253, 105, 29, 7, 253, 104, 29, 7, 253, 103, 29, 7, 253, 102, 29, 7, 253,
+ 101, 29, 7, 253, 100, 29, 7, 253, 99, 29, 7, 253, 98, 29, 7, 253, 97, 29,
+ 7, 253, 96, 29, 7, 253, 95, 29, 7, 253, 94, 29, 7, 253, 93, 29, 7, 253,
+ 92, 29, 7, 253, 91, 29, 7, 253, 90, 29, 7, 253, 89, 29, 7, 253, 88, 29,
+ 7, 253, 87, 29, 7, 253, 86, 29, 7, 253, 85, 29, 7, 253, 84, 208, 76, 211,
+ 164, 207, 151, 29, 7, 253, 83, 29, 7, 253, 82, 29, 7, 253, 81, 29, 7,
+ 253, 80, 29, 7, 253, 79, 29, 7, 253, 78, 29, 7, 253, 77, 29, 7, 253, 76,
+ 29, 7, 253, 75, 29, 7, 253, 74, 29, 7, 253, 73, 29, 7, 253, 72, 174, 29,
+ 7, 253, 71, 29, 7, 253, 70, 29, 7, 253, 69, 29, 7, 253, 68, 29, 7, 253,
+ 67, 29, 7, 253, 66, 29, 7, 253, 65, 29, 7, 253, 63, 29, 7, 253, 61, 29,
+ 7, 253, 59, 29, 7, 253, 57, 29, 7, 253, 55, 29, 7, 253, 53, 29, 7, 253,
+ 51, 29, 7, 253, 49, 29, 7, 253, 47, 29, 7, 253, 45, 248, 100, 219, 92,
+ 77, 29, 7, 253, 43, 234, 80, 219, 92, 77, 29, 7, 253, 42, 29, 7, 253, 40,
+ 29, 7, 253, 38, 29, 7, 253, 36, 29, 7, 253, 34, 29, 7, 253, 32, 29, 7,
+ 253, 30, 29, 7, 253, 28, 29, 7, 253, 26, 29, 7, 253, 25, 29, 7, 253, 24,
+ 29, 7, 253, 23, 29, 7, 253, 22, 29, 7, 253, 21, 29, 7, 253, 20, 29, 7,
+ 253, 19, 29, 7, 253, 18, 29, 7, 253, 17, 29, 7, 253, 16, 29, 7, 253, 15,
+ 29, 7, 253, 14, 29, 7, 253, 13, 29, 7, 253, 12, 29, 7, 253, 11, 29, 7,
+ 253, 10, 29, 7, 253, 9, 29, 7, 253, 8, 29, 7, 253, 7, 29, 7, 253, 6, 29,
+ 7, 253, 5, 29, 7, 253, 4, 29, 7, 253, 3, 29, 7, 253, 2, 29, 7, 253, 1,
+ 29, 7, 253, 0, 29, 7, 252, 255, 29, 7, 252, 254, 29, 7, 252, 253, 29, 7,
+ 252, 252, 29, 7, 252, 251, 29, 7, 252, 250, 29, 7, 252, 249, 29, 7, 252,
+ 248, 29, 7, 252, 247, 29, 7, 252, 246, 29, 7, 252, 245, 29, 7, 252, 244,
+ 29, 7, 252, 243, 29, 7, 252, 242, 29, 7, 252, 241, 29, 7, 252, 240, 29,
+ 7, 252, 239, 29, 7, 252, 238, 29, 7, 252, 237, 29, 7, 252, 236, 29, 7,
+ 252, 235, 29, 7, 252, 234, 29, 7, 252, 233, 29, 7, 252, 232, 29, 7, 252,
+ 231, 29, 7, 252, 230, 29, 7, 252, 229, 29, 7, 252, 228, 29, 7, 252, 227,
+ 29, 7, 252, 226, 29, 7, 252, 225, 29, 7, 252, 224, 29, 7, 252, 223, 29,
+ 7, 252, 222, 29, 7, 252, 221, 29, 7, 252, 220, 29, 7, 252, 219, 29, 7,
+ 252, 218, 29, 7, 252, 217, 29, 7, 252, 216, 29, 7, 252, 215, 29, 7, 252,
+ 214, 29, 7, 252, 213, 29, 7, 252, 212, 29, 7, 252, 211, 29, 7, 252, 210,
+ 29, 7, 252, 209, 29, 7, 252, 208, 29, 7, 252, 207, 29, 7, 252, 206, 29,
+ 7, 252, 205, 29, 7, 252, 204, 29, 7, 252, 203, 29, 7, 252, 202, 29, 7,
+ 252, 201, 29, 7, 252, 200, 29, 7, 252, 199, 29, 7, 252, 198, 29, 7, 252,
+ 197, 29, 7, 252, 196, 29, 7, 252, 195, 29, 7, 252, 194, 29, 7, 252, 193,
+ 29, 7, 252, 192, 29, 7, 252, 191, 29, 7, 252, 190, 29, 7, 252, 189, 29,
+ 7, 252, 188, 29, 7, 252, 187, 29, 7, 252, 186, 29, 7, 252, 185, 29, 7,
+ 252, 184, 29, 7, 252, 183, 29, 7, 252, 182, 29, 7, 252, 181, 29, 7, 252,
+ 180, 29, 7, 252, 179, 29, 7, 252, 178, 29, 7, 252, 177, 29, 7, 252, 176,
+ 29, 7, 252, 175, 29, 7, 252, 174, 29, 7, 252, 173, 29, 7, 252, 172, 25,
+ 1, 210, 84, 214, 98, 216, 217, 25, 1, 210, 84, 231, 166, 232, 156, 25, 1,
+ 210, 84, 209, 175, 216, 218, 209, 251, 25, 1, 210, 84, 209, 175, 216,
+ 218, 209, 252, 25, 1, 210, 84, 215, 85, 216, 217, 25, 1, 210, 84, 203,
+ 159, 25, 1, 210, 84, 199, 62, 216, 217, 25, 1, 210, 84, 212, 147, 216,
+ 217, 25, 1, 210, 84, 203, 223, 211, 78, 213, 240, 25, 1, 210, 84, 209,
+ 175, 211, 78, 213, 241, 209, 251, 25, 1, 210, 84, 209, 175, 211, 78, 213,
+ 241, 209, 252, 25, 1, 210, 84, 217, 199, 25, 1, 210, 84, 198, 46, 217,
+ 200, 25, 1, 210, 84, 214, 159, 25, 1, 210, 84, 217, 196, 25, 1, 210, 84,
+ 217, 147, 25, 1, 210, 84, 215, 174, 25, 1, 210, 84, 204, 148, 25, 1, 210,
+ 84, 213, 31, 25, 1, 210, 84, 222, 13, 25, 1, 210, 84, 213, 207, 25, 1,
+ 210, 84, 201, 86, 25, 1, 210, 84, 214, 97, 25, 1, 210, 84, 220, 75, 25,
+ 1, 210, 84, 219, 237, 220, 247, 25, 1, 210, 84, 213, 41, 216, 225, 25, 1,
+ 210, 84, 217, 203, 25, 1, 210, 84, 210, 215, 25, 1, 210, 84, 231, 65, 25,
+ 1, 210, 84, 211, 29, 25, 1, 210, 84, 216, 56, 214, 132, 25, 1, 210, 84,
+ 212, 128, 216, 228, 25, 1, 210, 84, 124, 192, 184, 215, 78, 25, 1, 210,
+ 84, 231, 66, 25, 1, 210, 84, 213, 41, 213, 42, 25, 1, 210, 84, 203, 44,
+ 25, 1, 210, 84, 216, 210, 25, 1, 210, 84, 216, 231, 25, 1, 210, 84, 216,
+ 31, 25, 1, 210, 84, 222, 138, 25, 1, 210, 84, 211, 78, 220, 29, 25, 1,
+ 210, 84, 215, 0, 220, 29, 25, 1, 210, 84, 210, 106, 25, 1, 210, 84, 217,
+ 197, 25, 1, 210, 84, 214, 26, 25, 1, 210, 84, 209, 30, 25, 1, 210, 84,
+ 198, 38, 25, 1, 210, 84, 219, 32, 25, 1, 210, 84, 202, 184, 25, 1, 210,
+ 84, 199, 249, 25, 1, 210, 84, 217, 194, 25, 1, 210, 84, 222, 20, 25, 1,
+ 210, 84, 214, 252, 25, 1, 210, 84, 221, 5, 25, 1, 210, 84, 216, 32, 25,
+ 1, 210, 84, 203, 155, 25, 1, 210, 84, 219, 85, 25, 1, 210, 84, 232, 227,
+ 25, 1, 210, 84, 207, 31, 25, 1, 210, 84, 221, 58, 25, 1, 210, 84, 202,
+ 180, 25, 1, 210, 84, 217, 142, 210, 40, 25, 1, 210, 84, 203, 216, 25, 1,
+ 210, 84, 213, 40, 25, 1, 210, 84, 203, 197, 213, 52, 192, 192, 25, 1,
+ 210, 84, 212, 169, 216, 52, 25, 1, 210, 84, 211, 73, 25, 1, 210, 84, 213,
+ 209, 25, 1, 210, 84, 197, 49, 25, 1, 210, 84, 214, 135, 25, 1, 210, 84,
+ 217, 193, 25, 1, 210, 84, 213, 252, 25, 1, 210, 84, 217, 77, 25, 1, 210,
+ 84, 212, 184, 25, 1, 210, 84, 199, 253, 25, 1, 210, 84, 202, 177, 25, 1,
+ 210, 84, 211, 74, 25, 1, 210, 84, 213, 56, 25, 1, 210, 84, 217, 201, 25,
+ 1, 210, 84, 212, 181, 25, 1, 210, 84, 222, 100, 25, 1, 210, 84, 213, 59,
+ 25, 1, 210, 84, 196, 118, 25, 1, 210, 84, 219, 36, 25, 1, 210, 84, 214,
+ 196, 25, 1, 210, 84, 215, 52, 25, 1, 210, 84, 217, 76, 25, 1, 210, 83,
+ 213, 54, 25, 1, 210, 83, 198, 46, 217, 198, 25, 1, 210, 83, 203, 107, 25,
+ 1, 210, 83, 204, 152, 198, 45, 25, 1, 210, 83, 219, 87, 213, 37, 25, 1,
+ 210, 83, 217, 83, 217, 202, 25, 1, 210, 83, 221, 188, 25, 1, 210, 83,
+ 193, 32, 25, 1, 210, 83, 217, 78, 25, 1, 210, 83, 222, 124, 25, 1, 210,
+ 83, 210, 164, 25, 1, 210, 83, 193, 115, 220, 29, 25, 1, 210, 83, 220, 95,
+ 213, 52, 212, 195, 25, 1, 210, 83, 213, 34, 203, 242, 25, 1, 210, 83,
+ 214, 223, 213, 255, 25, 1, 210, 83, 231, 63, 25, 1, 210, 83, 209, 241,
+ 25, 1, 210, 83, 198, 46, 213, 50, 25, 1, 210, 83, 203, 247, 213, 250, 25,
+ 1, 210, 83, 203, 243, 25, 1, 210, 83, 216, 218, 199, 252, 25, 1, 210, 83,
+ 217, 65, 217, 79, 25, 1, 210, 83, 212, 182, 213, 37, 25, 1, 210, 83, 222,
+ 9, 25, 1, 210, 83, 231, 64, 25, 1, 210, 83, 222, 5, 25, 1, 210, 83, 220,
+ 179, 25, 1, 210, 83, 210, 218, 25, 1, 210, 83, 196, 47, 25, 1, 210, 83,
+ 214, 99, 215, 172, 25, 1, 210, 83, 214, 134, 217, 61, 25, 1, 210, 83,
+ 193, 242, 25, 1, 210, 83, 206, 69, 25, 1, 210, 83, 200, 170, 25, 1, 210,
+ 83, 216, 230, 25, 1, 210, 83, 214, 118, 25, 1, 210, 83, 214, 119, 220,
+ 72, 25, 1, 210, 83, 216, 220, 25, 1, 210, 83, 201, 139, 25, 1, 210, 83,
+ 217, 69, 25, 1, 210, 83, 216, 36, 25, 1, 210, 83, 212, 199, 25, 1, 210,
+ 83, 209, 34, 25, 1, 210, 83, 216, 229, 214, 136, 25, 1, 210, 83, 233, 16,
+ 25, 1, 210, 83, 217, 56, 25, 1, 210, 83, 233, 40, 25, 1, 210, 83, 222,
+ 17, 25, 1, 210, 83, 217, 228, 213, 244, 25, 1, 210, 83, 217, 228, 213,
+ 220, 25, 1, 210, 83, 219, 236, 25, 1, 210, 83, 214, 142, 25, 1, 210, 83,
+ 213, 61, 25, 1, 210, 83, 172, 25, 1, 210, 83, 221, 171, 25, 1, 210, 83,
+ 214, 87, 25, 1, 210, 82, 214, 98, 217, 200, 25, 1, 210, 82, 212, 146, 25,
+ 1, 210, 82, 192, 192, 25, 1, 210, 82, 194, 145, 25, 1, 210, 82, 214, 135,
+ 25, 1, 210, 82, 214, 244, 25, 1, 210, 82, 214, 105, 25, 1, 210, 82, 231,
+ 73, 25, 1, 210, 82, 217, 73, 25, 1, 210, 82, 231, 173, 25, 1, 210, 82,
+ 212, 171, 216, 100, 216, 232, 25, 1, 210, 82, 213, 28, 217, 64, 25, 1,
+ 210, 82, 217, 70, 25, 1, 210, 82, 209, 247, 25, 1, 210, 82, 214, 229, 25,
+ 1, 210, 82, 217, 81, 247, 15, 25, 1, 210, 82, 222, 7, 25, 1, 210, 82,
+ 231, 74, 25, 1, 210, 82, 222, 14, 25, 1, 210, 82, 192, 215, 215, 205, 25,
+ 1, 210, 82, 212, 140, 25, 1, 210, 82, 217, 58, 25, 1, 210, 82, 213, 60,
+ 25, 1, 210, 82, 217, 64, 25, 1, 210, 82, 193, 33, 25, 1, 210, 82, 221,
+ 66, 25, 1, 210, 82, 222, 159, 25, 1, 210, 82, 204, 147, 25, 1, 210, 82,
+ 214, 238, 25, 1, 210, 82, 200, 168, 25, 1, 210, 82, 213, 224, 25, 1, 210,
+ 82, 199, 62, 192, 196, 25, 1, 210, 82, 201, 171, 25, 1, 210, 82, 214,
+ 125, 212, 195, 25, 1, 210, 82, 196, 46, 25, 1, 210, 82, 215, 55, 25, 1,
+ 210, 82, 217, 228, 222, 16, 25, 1, 210, 82, 213, 42, 25, 1, 210, 82, 214,
+ 120, 25, 1, 210, 82, 220, 76, 25, 1, 210, 82, 217, 66, 25, 1, 210, 82,
+ 216, 209, 25, 1, 210, 82, 213, 36, 25, 1, 210, 82, 199, 248, 25, 1, 210,
+ 82, 214, 122, 25, 1, 210, 82, 232, 75, 25, 1, 210, 82, 214, 243, 25, 1,
+ 210, 82, 213, 62, 25, 1, 210, 82, 213, 58, 25, 1, 210, 82, 247, 98, 25,
+ 1, 210, 82, 196, 48, 25, 1, 210, 82, 217, 71, 25, 1, 210, 82, 206, 218,
+ 25, 1, 210, 82, 213, 254, 25, 1, 210, 82, 220, 94, 25, 1, 210, 82, 199,
+ 59, 25, 1, 210, 82, 213, 44, 214, 87, 25, 1, 210, 82, 213, 246, 25, 1,
+ 210, 82, 222, 20, 25, 1, 210, 82, 214, 127, 25, 1, 210, 82, 217, 193, 25,
+ 1, 210, 82, 217, 59, 25, 1, 210, 82, 219, 36, 25, 1, 210, 82, 220, 247,
+ 25, 1, 210, 82, 213, 252, 25, 1, 210, 82, 214, 87, 25, 1, 210, 82, 193,
+ 232, 25, 1, 210, 82, 214, 123, 25, 1, 210, 82, 213, 47, 25, 1, 210, 82,
+ 213, 38, 25, 1, 210, 82, 221, 7, 213, 209, 25, 1, 210, 82, 213, 45, 25,
+ 1, 210, 82, 214, 251, 25, 1, 210, 82, 217, 228, 213, 50, 25, 1, 210, 82,
+ 193, 129, 25, 1, 210, 82, 214, 250, 25, 1, 210, 82, 203, 158, 25, 1, 210,
+ 82, 204, 150, 25, 1, 210, 82, 217, 67, 25, 1, 210, 82, 217, 200, 25, 1,
+ 210, 82, 217, 77, 25, 1, 210, 82, 222, 8, 25, 1, 210, 82, 217, 68, 25, 1,
+ 210, 82, 222, 12, 25, 1, 210, 82, 217, 81, 210, 46, 25, 1, 210, 82, 192,
+ 175, 25, 1, 210, 82, 213, 242, 25, 1, 210, 82, 216, 156, 25, 1, 210, 82,
+ 215, 235, 25, 1, 210, 82, 203, 219, 25, 1, 210, 82, 222, 31, 220, 54, 25,
+ 1, 210, 82, 222, 31, 233, 53, 25, 1, 210, 82, 214, 157, 25, 1, 210, 82,
+ 215, 52, 25, 1, 210, 82, 219, 157, 25, 1, 210, 82, 210, 6, 25, 1, 210,
+ 82, 210, 154, 25, 1, 210, 82, 200, 8, 25, 1, 154, 217, 57, 25, 1, 154,
+ 194, 143, 25, 1, 154, 213, 240, 25, 1, 154, 216, 217, 25, 1, 154, 213,
+ 238, 25, 1, 154, 219, 202, 25, 1, 154, 213, 243, 25, 1, 154, 213, 57, 25,
+ 1, 154, 214, 141, 25, 1, 154, 212, 195, 25, 1, 154, 193, 243, 25, 1, 154,
+ 214, 95, 25, 1, 154, 204, 10, 25, 1, 154, 214, 106, 25, 1, 154, 222, 15,
+ 25, 1, 154, 199, 250, 25, 1, 154, 203, 245, 25, 1, 154, 213, 251, 25, 1,
+ 154, 201, 139, 25, 1, 154, 222, 20, 25, 1, 154, 193, 117, 25, 1, 154,
+ 221, 8, 25, 1, 154, 206, 28, 25, 1, 154, 216, 222, 25, 1, 154, 214, 242,
+ 25, 1, 154, 217, 164, 25, 1, 154, 216, 228, 25, 1, 154, 204, 149, 25, 1,
+ 154, 193, 59, 25, 1, 154, 213, 245, 25, 1, 154, 222, 11, 217, 60, 25, 1,
+ 154, 214, 102, 25, 1, 154, 198, 45, 25, 1, 154, 231, 83, 25, 1, 154, 214,
+ 92, 25, 1, 154, 233, 17, 25, 1, 154, 214, 246, 25, 1, 154, 216, 201, 25,
+ 1, 154, 219, 230, 25, 1, 154, 214, 228, 25, 1, 154, 216, 51, 25, 1, 154,
+ 216, 205, 25, 1, 154, 209, 14, 25, 1, 154, 216, 203, 25, 1, 154, 216,
+ 219, 25, 1, 154, 219, 19, 25, 1, 154, 213, 49, 25, 1, 154, 217, 80, 25,
+ 1, 154, 220, 236, 25, 1, 154, 212, 184, 25, 1, 154, 199, 253, 25, 1, 154,
+ 202, 177, 25, 1, 154, 192, 175, 25, 1, 154, 222, 12, 25, 1, 154, 208, 52,
+ 25, 1, 154, 200, 55, 25, 1, 154, 214, 103, 25, 1, 154, 216, 224, 25, 1,
+ 154, 213, 48, 25, 1, 154, 222, 10, 25, 1, 154, 209, 253, 25, 1, 154, 210,
+ 99, 25, 1, 154, 212, 157, 25, 1, 154, 219, 236, 25, 1, 154, 214, 142, 25,
+ 1, 154, 216, 221, 25, 1, 154, 214, 115, 25, 1, 154, 192, 189, 25, 1, 154,
+ 210, 253, 25, 1, 154, 192, 188, 25, 1, 154, 214, 251, 25, 1, 154, 213,
+ 37, 25, 1, 154, 201, 173, 25, 1, 154, 221, 12, 25, 1, 154, 214, 131, 25,
+ 1, 154, 214, 100, 25, 1, 154, 198, 20, 25, 1, 154, 216, 232, 25, 1, 154,
+ 221, 2, 25, 1, 154, 213, 46, 25, 1, 154, 199, 251, 25, 1, 154, 217, 195,
+ 25, 1, 154, 214, 140, 25, 1, 154, 219, 229, 25, 1, 154, 214, 121, 25, 1,
+ 154, 213, 51, 25, 1, 154, 213, 224, 25, 1, 154, 231, 67, 25, 1, 154, 221,
+ 33, 25, 1, 154, 207, 206, 211, 225, 25, 1, 154, 200, 157, 25, 1, 154,
+ 198, 245, 25, 1, 154, 212, 181, 25, 1, 154, 207, 88, 25, 1, 154, 220, 31,
+ 25, 1, 154, 217, 28, 25, 1, 154, 218, 236, 25, 1, 154, 201, 86, 25, 1,
+ 154, 215, 241, 25, 1, 154, 203, 231, 25, 1, 154, 203, 241, 25, 1, 154,
+ 220, 208, 25, 1, 154, 213, 22, 25, 1, 154, 203, 164, 25, 1, 154, 213, 39,
+ 25, 1, 154, 210, 168, 25, 1, 154, 214, 60, 25, 1, 154, 203, 196, 25, 1,
+ 154, 209, 29, 25, 1, 154, 215, 172, 25, 1, 154, 219, 65, 25, 1, 154, 207,
+ 206, 215, 230, 25, 1, 154, 199, 128, 25, 1, 154, 213, 25, 25, 1, 154,
+ 217, 81, 179, 25, 1, 154, 206, 26, 25, 1, 154, 233, 96, 25, 1, 110, 214,
+ 250, 25, 1, 110, 198, 252, 25, 1, 110, 217, 70, 25, 1, 110, 220, 76, 25,
+ 1, 110, 195, 238, 25, 1, 110, 219, 71, 25, 1, 110, 211, 77, 25, 1, 110,
+ 202, 188, 25, 1, 110, 208, 26, 25, 1, 110, 213, 53, 25, 1, 110, 214, 221,
+ 25, 1, 110, 209, 47, 25, 1, 110, 200, 129, 25, 1, 110, 214, 108, 25, 1,
+ 110, 221, 62, 25, 1, 110, 193, 235, 25, 1, 110, 205, 205, 25, 1, 110,
+ 214, 132, 25, 1, 110, 211, 74, 25, 1, 110, 198, 254, 25, 1, 110, 221, 6,
+ 25, 1, 110, 219, 86, 25, 1, 110, 213, 56, 25, 1, 110, 214, 84, 25, 1,
+ 110, 217, 201, 25, 1, 110, 214, 101, 25, 1, 110, 214, 83, 25, 1, 110,
+ 213, 55, 25, 1, 110, 207, 85, 25, 1, 110, 213, 242, 25, 1, 110, 210, 166,
+ 25, 1, 110, 206, 91, 25, 1, 110, 214, 116, 25, 1, 110, 216, 211, 25, 1,
+ 110, 231, 61, 25, 1, 110, 214, 104, 25, 1, 110, 213, 253, 25, 1, 110,
+ 217, 141, 25, 1, 110, 219, 67, 25, 1, 110, 214, 137, 25, 1, 110, 214,
+ 234, 25, 1, 110, 200, 156, 213, 37, 25, 1, 110, 204, 151, 25, 1, 110,
+ 209, 40, 25, 1, 110, 214, 254, 202, 196, 25, 1, 110, 214, 124, 212, 195,
+ 25, 1, 110, 193, 18, 25, 1, 110, 231, 62, 25, 1, 110, 198, 39, 25, 1,
+ 110, 193, 36, 25, 1, 110, 209, 198, 25, 1, 110, 198, 26, 25, 1, 110, 222,
+ 18, 25, 1, 110, 201, 172, 25, 1, 110, 199, 252, 25, 1, 110, 196, 49, 25,
+ 1, 110, 194, 86, 25, 1, 110, 220, 182, 25, 1, 110, 209, 51, 25, 1, 110,
+ 200, 169, 25, 1, 110, 231, 82, 25, 1, 110, 214, 147, 25, 1, 110, 203,
+ 244, 25, 1, 110, 216, 206, 25, 1, 110, 217, 74, 25, 1, 110, 212, 144, 25,
+ 1, 110, 213, 205, 25, 1, 110, 231, 169, 25, 1, 110, 198, 27, 25, 1, 110,
+ 221, 16, 25, 1, 110, 193, 93, 25, 1, 110, 212, 182, 242, 101, 25, 1, 110,
+ 193, 7, 25, 1, 110, 216, 223, 25, 1, 110, 214, 239, 25, 1, 110, 210, 41,
+ 25, 1, 110, 192, 195, 25, 1, 110, 219, 231, 25, 1, 110, 232, 75, 25, 1,
+ 110, 231, 168, 25, 1, 110, 214, 94, 25, 1, 110, 222, 20, 25, 1, 110, 217,
+ 204, 25, 1, 110, 214, 107, 25, 1, 110, 231, 68, 25, 1, 110, 233, 97, 25,
+ 1, 110, 213, 26, 25, 1, 110, 210, 100, 25, 1, 110, 193, 34, 25, 1, 110,
+ 214, 133, 25, 1, 110, 212, 182, 248, 60, 25, 1, 110, 212, 124, 25, 1,
+ 110, 209, 170, 25, 1, 110, 216, 156, 25, 1, 110, 232, 73, 25, 1, 110,
+ 215, 78, 25, 1, 110, 215, 235, 25, 1, 110, 231, 67, 25, 1, 110, 232, 78,
+ 70, 25, 1, 110, 215, 173, 25, 1, 110, 209, 46, 25, 1, 110, 214, 96, 25,
+ 1, 110, 220, 247, 25, 1, 110, 210, 38, 25, 1, 110, 213, 40, 25, 1, 110,
+ 193, 35, 25, 1, 110, 214, 117, 25, 1, 110, 211, 78, 210, 139, 25, 1, 110,
+ 232, 78, 246, 253, 25, 1, 110, 232, 157, 25, 1, 110, 213, 247, 25, 1,
+ 110, 64, 25, 1, 110, 198, 245, 25, 1, 110, 74, 25, 1, 110, 70, 25, 1,
+ 110, 220, 74, 25, 1, 110, 211, 78, 209, 207, 25, 1, 110, 200, 174, 25, 1,
+ 110, 200, 113, 25, 1, 110, 214, 254, 215, 160, 228, 193, 25, 1, 110, 203,
+ 219, 25, 1, 110, 193, 31, 25, 1, 110, 214, 77, 25, 1, 110, 192, 200, 25,
+ 1, 110, 192, 233, 201, 65, 25, 1, 110, 192, 233, 238, 208, 25, 1, 110,
+ 192, 183, 25, 1, 110, 192, 191, 25, 1, 110, 222, 6, 25, 1, 110, 210, 98,
+ 25, 1, 110, 213, 248, 234, 34, 25, 1, 110, 209, 42, 25, 1, 110, 193, 241,
+ 25, 1, 110, 233, 40, 25, 1, 110, 196, 118, 25, 1, 110, 219, 36, 25, 1,
+ 110, 216, 175, 25, 1, 110, 207, 170, 25, 1, 110, 208, 53, 25, 1, 110,
+ 214, 76, 25, 1, 110, 214, 165, 25, 1, 110, 203, 211, 25, 1, 110, 203,
+ 196, 25, 1, 110, 232, 78, 207, 209, 25, 1, 110, 181, 25, 1, 110, 210, 51,
+ 25, 1, 110, 219, 65, 25, 1, 110, 221, 113, 25, 1, 110, 217, 5, 25, 1,
+ 110, 172, 25, 1, 110, 217, 138, 25, 1, 110, 199, 254, 25, 1, 110, 221,
+ 204, 25, 1, 110, 216, 55, 25, 1, 110, 200, 30, 25, 1, 110, 233, 64, 25,
+ 1, 110, 231, 55, 25, 1, 210, 81, 160, 25, 1, 210, 81, 68, 25, 1, 210, 81,
+ 221, 33, 25, 1, 210, 81, 234, 171, 25, 1, 210, 81, 207, 234, 25, 1, 210,
+ 81, 200, 157, 25, 1, 210, 81, 212, 181, 25, 1, 210, 81, 177, 25, 1, 210,
+ 81, 207, 88, 25, 1, 210, 81, 207, 136, 25, 1, 210, 81, 217, 28, 25, 1,
+ 210, 81, 200, 174, 25, 1, 210, 81, 214, 253, 25, 1, 210, 81, 213, 254,
+ 25, 1, 210, 81, 218, 236, 25, 1, 210, 81, 201, 86, 25, 1, 210, 81, 203,
+ 231, 25, 1, 210, 81, 203, 125, 25, 1, 210, 81, 204, 147, 25, 1, 210, 81,
+ 220, 208, 25, 1, 210, 81, 222, 20, 25, 1, 210, 81, 212, 246, 25, 1, 210,
+ 81, 213, 22, 25, 1, 210, 81, 213, 225, 25, 1, 210, 81, 192, 232, 25, 1,
+ 210, 81, 203, 164, 25, 1, 210, 81, 168, 25, 1, 210, 81, 213, 59, 25, 1,
+ 210, 81, 210, 98, 25, 1, 210, 81, 213, 39, 25, 1, 210, 81, 193, 241, 25,
+ 1, 210, 81, 210, 168, 25, 1, 210, 81, 206, 218, 25, 1, 210, 81, 214, 60,
+ 25, 1, 210, 81, 207, 170, 25, 1, 210, 81, 222, 30, 25, 1, 210, 81, 214,
+ 93, 25, 1, 210, 81, 214, 144, 25, 1, 210, 81, 203, 211, 25, 1, 210, 81,
+ 209, 47, 25, 1, 210, 81, 232, 157, 25, 1, 210, 81, 194, 169, 25, 1, 210,
+ 81, 219, 209, 25, 1, 210, 81, 219, 65, 25, 1, 210, 81, 221, 113, 25, 1,
+ 210, 81, 217, 72, 25, 1, 210, 81, 207, 205, 25, 1, 210, 81, 172, 25, 1,
+ 210, 81, 216, 91, 25, 1, 210, 81, 217, 80, 25, 1, 210, 81, 200, 8, 25, 1,
+ 210, 81, 221, 69, 25, 1, 210, 81, 206, 48, 25, 1, 210, 81, 194, 222, 215,
+ 245, 1, 189, 215, 245, 1, 214, 113, 215, 245, 1, 193, 1, 215, 245, 1,
+ 216, 122, 215, 245, 1, 249, 3, 215, 245, 1, 238, 0, 215, 245, 1, 64, 215,
+ 245, 1, 210, 77, 215, 245, 1, 221, 244, 215, 245, 1, 230, 31, 215, 245,
+ 1, 237, 231, 215, 245, 1, 242, 168, 215, 245, 1, 222, 50, 215, 245, 1,
+ 211, 226, 215, 245, 1, 217, 201, 215, 245, 1, 214, 20, 215, 245, 1, 166,
+ 215, 245, 1, 211, 194, 215, 245, 1, 74, 215, 245, 1, 207, 55, 215, 245,
+ 1, 203, 236, 215, 245, 1, 199, 223, 215, 245, 1, 234, 199, 215, 245, 1,
+ 194, 169, 215, 245, 1, 71, 215, 245, 1, 221, 113, 215, 245, 1, 220, 83,
+ 215, 245, 1, 177, 215, 245, 1, 230, 88, 215, 245, 1, 207, 151, 215, 245,
+ 1, 200, 45, 215, 245, 17, 192, 76, 215, 245, 17, 101, 215, 245, 17, 104,
+ 215, 245, 17, 133, 215, 245, 17, 134, 215, 245, 17, 151, 215, 245, 17,
+ 170, 215, 245, 17, 179, 215, 245, 17, 174, 215, 245, 17, 182, 215, 245,
+ 237, 208, 215, 245, 55, 237, 208, 248, 173, 196, 154, 1, 234, 69, 248,
+ 173, 196, 154, 1, 160, 248, 173, 196, 154, 1, 205, 223, 248, 173, 196,
+ 154, 1, 233, 97, 248, 173, 196, 154, 1, 217, 75, 248, 173, 196, 154, 1,
+ 193, 19, 248, 173, 196, 154, 1, 231, 218, 248, 173, 196, 154, 1, 237, 21,
+ 248, 173, 196, 154, 1, 221, 68, 248, 173, 196, 154, 1, 222, 233, 248,
+ 173, 196, 154, 1, 228, 146, 248, 173, 196, 154, 1, 194, 169, 248, 173,
+ 196, 154, 1, 192, 8, 248, 173, 196, 154, 1, 231, 162, 248, 173, 196, 154,
+ 1, 236, 146, 248, 173, 196, 154, 1, 246, 158, 248, 173, 196, 154, 1, 196,
+ 244, 248, 173, 196, 154, 1, 155, 248, 173, 196, 154, 1, 249, 3, 248, 173,
+ 196, 154, 1, 194, 223, 248, 173, 196, 154, 1, 193, 63, 248, 173, 196,
+ 154, 1, 166, 248, 173, 196, 154, 1, 194, 161, 248, 173, 196, 154, 1, 64,
+ 248, 173, 196, 154, 1, 74, 248, 173, 196, 154, 1, 211, 194, 248, 173,
+ 196, 154, 1, 68, 248, 173, 196, 154, 1, 234, 171, 248, 173, 196, 154, 1,
+ 71, 248, 173, 196, 154, 1, 70, 248, 173, 196, 154, 38, 139, 199, 18, 248,
+ 173, 196, 154, 38, 132, 199, 18, 248, 173, 196, 154, 38, 216, 162, 199,
+ 18, 248, 173, 196, 154, 38, 219, 49, 199, 18, 248, 173, 196, 154, 38,
+ 229, 153, 199, 18, 248, 173, 196, 154, 232, 71, 201, 238, 141, 89, 18,
+ 222, 47, 141, 89, 18, 222, 43, 141, 89, 18, 221, 193, 141, 89, 18, 221,
+ 156, 141, 89, 18, 222, 75, 141, 89, 18, 222, 72, 141, 89, 18, 221, 17,
+ 141, 89, 18, 220, 244, 141, 89, 18, 222, 49, 141, 89, 18, 222, 4, 141,
+ 89, 18, 222, 134, 141, 89, 18, 222, 131, 141, 89, 18, 221, 87, 141, 89,
+ 18, 221, 84, 141, 89, 18, 222, 68, 141, 89, 18, 222, 66, 141, 89, 18,
+ 221, 19, 141, 89, 18, 221, 18, 141, 89, 18, 221, 106, 141, 89, 18, 221,
+ 73, 141, 89, 18, 221, 195, 141, 89, 18, 221, 194, 141, 89, 18, 222, 149,
+ 141, 89, 18, 222, 71, 141, 89, 18, 220, 234, 141, 89, 18, 220, 225, 141,
+ 89, 18, 222, 158, 141, 89, 18, 222, 150, 141, 89, 116, 196, 129, 141, 89,
+ 116, 213, 29, 141, 89, 116, 220, 60, 141, 89, 116, 230, 11, 141, 89, 116,
+ 213, 181, 141, 89, 116, 208, 17, 141, 89, 116, 213, 208, 141, 89, 116,
+ 208, 213, 141, 89, 116, 193, 80, 141, 89, 116, 229, 128, 141, 89, 116,
+ 217, 96, 141, 89, 116, 242, 249, 141, 89, 116, 215, 2, 141, 89, 116, 229,
+ 64, 141, 89, 116, 209, 216, 141, 89, 116, 213, 35, 141, 89, 116, 215, 42,
+ 141, 89, 116, 250, 8, 141, 89, 116, 193, 205, 141, 89, 116, 246, 191,
+ 141, 89, 122, 242, 137, 198, 36, 141, 89, 122, 242, 137, 202, 212, 141,
+ 89, 122, 242, 137, 222, 22, 141, 89, 122, 242, 137, 221, 235, 141, 89,
+ 122, 242, 137, 201, 170, 141, 89, 122, 242, 137, 229, 22, 141, 89, 122,
+ 242, 137, 200, 99, 141, 89, 3, 195, 233, 199, 173, 141, 89, 3, 195, 233,
+ 198, 107, 246, 149, 141, 89, 3, 242, 137, 242, 238, 141, 89, 3, 195, 233,
+ 199, 201, 141, 89, 3, 195, 233, 233, 37, 141, 89, 3, 193, 160, 213, 23,
+ 141, 89, 3, 193, 160, 207, 153, 141, 89, 3, 193, 160, 198, 228, 141, 89,
+ 3, 193, 160, 233, 78, 141, 89, 3, 195, 233, 205, 199, 141, 89, 3, 217,
+ 27, 201, 174, 141, 89, 3, 195, 233, 213, 75, 141, 89, 3, 228, 54, 193,
+ 100, 141, 89, 3, 193, 204, 141, 89, 3, 242, 137, 198, 94, 207, 37, 141,
+ 89, 17, 192, 76, 141, 89, 17, 101, 141, 89, 17, 104, 141, 89, 17, 133,
+ 141, 89, 17, 134, 141, 89, 17, 151, 141, 89, 17, 170, 141, 89, 17, 179,
+ 141, 89, 17, 174, 141, 89, 17, 182, 141, 89, 31, 200, 25, 141, 89, 31,
+ 228, 160, 141, 89, 31, 200, 31, 199, 163, 141, 89, 31, 216, 123, 141, 89,
+ 31, 228, 163, 216, 123, 141, 89, 31, 200, 31, 248, 22, 141, 89, 31, 198,
+ 172, 141, 89, 3, 195, 233, 219, 31, 141, 89, 3, 193, 157, 141, 89, 3,
+ 229, 123, 141, 89, 3, 199, 190, 229, 123, 141, 89, 3, 191, 237, 199, 234,
+ 141, 89, 3, 229, 48, 141, 89, 3, 213, 89, 141, 89, 3, 193, 195, 141, 89,
+ 3, 213, 27, 141, 89, 3, 249, 247, 141, 89, 3, 197, 214, 246, 148, 141,
+ 89, 3, 217, 27, 198, 110, 141, 89, 3, 200, 100, 141, 89, 3, 219, 62, 141,
+ 89, 3, 215, 191, 141, 89, 3, 242, 137, 230, 84, 219, 8, 213, 33, 213, 32,
+ 141, 89, 3, 242, 137, 238, 161, 198, 101, 141, 89, 3, 242, 137, 197, 212,
+ 141, 89, 3, 242, 137, 197, 213, 242, 156, 141, 89, 3, 242, 137, 209, 45,
+ 237, 176, 141, 89, 3, 242, 137, 213, 82, 198, 236, 141, 89, 242, 108, 3,
+ 198, 105, 141, 89, 242, 108, 3, 193, 65, 141, 89, 242, 108, 3, 219, 154,
+ 141, 89, 242, 108, 3, 220, 58, 141, 89, 242, 108, 3, 193, 156, 141, 89,
+ 242, 108, 3, 221, 88, 141, 89, 242, 108, 3, 230, 8, 141, 89, 242, 108, 3,
+ 215, 233, 141, 89, 242, 108, 3, 199, 174, 141, 89, 242, 108, 3, 198, 115,
+ 141, 89, 242, 108, 3, 210, 91, 141, 89, 242, 108, 3, 221, 248, 141, 89,
+ 242, 108, 3, 230, 72, 141, 89, 242, 108, 3, 196, 151, 141, 89, 242, 108,
+ 3, 233, 74, 141, 89, 242, 108, 3, 193, 107, 141, 89, 242, 108, 3, 198,
+ 88, 141, 89, 242, 108, 3, 220, 229, 141, 89, 242, 108, 3, 194, 211, 217,
+ 36, 6, 1, 218, 236, 217, 36, 6, 1, 206, 158, 217, 36, 6, 1, 196, 236,
+ 217, 36, 6, 1, 194, 202, 217, 36, 6, 1, 250, 20, 217, 36, 6, 1, 192, 155,
+ 217, 36, 6, 1, 221, 70, 217, 36, 6, 1, 211, 93, 217, 36, 6, 1, 200, 228,
+ 217, 36, 6, 1, 232, 44, 217, 36, 6, 1, 233, 163, 217, 36, 6, 1, 70, 217,
+ 36, 6, 1, 222, 184, 217, 36, 6, 1, 64, 217, 36, 6, 1, 223, 65, 217, 36,
+ 6, 1, 71, 217, 36, 6, 1, 249, 226, 217, 36, 6, 1, 247, 52, 217, 36, 6, 1,
+ 68, 217, 36, 6, 1, 192, 214, 217, 36, 6, 1, 165, 217, 36, 6, 1, 208, 247,
+ 217, 36, 6, 1, 228, 190, 217, 36, 6, 1, 212, 203, 217, 36, 6, 1, 193,
+ 223, 217, 36, 6, 1, 238, 95, 217, 36, 6, 1, 212, 0, 217, 36, 6, 1, 215,
+ 151, 217, 36, 6, 1, 150, 217, 36, 6, 1, 74, 217, 36, 6, 1, 251, 63, 217,
+ 36, 6, 1, 193, 148, 217, 36, 2, 1, 218, 236, 217, 36, 2, 1, 206, 158,
+ 217, 36, 2, 1, 196, 236, 217, 36, 2, 1, 194, 202, 217, 36, 2, 1, 250, 20,
+ 217, 36, 2, 1, 192, 155, 217, 36, 2, 1, 221, 70, 217, 36, 2, 1, 211, 93,
+ 217, 36, 2, 1, 200, 228, 217, 36, 2, 1, 232, 44, 217, 36, 2, 1, 233, 163,
+ 217, 36, 2, 1, 70, 217, 36, 2, 1, 222, 184, 217, 36, 2, 1, 64, 217, 36,
+ 2, 1, 223, 65, 217, 36, 2, 1, 71, 217, 36, 2, 1, 249, 226, 217, 36, 2, 1,
+ 247, 52, 217, 36, 2, 1, 68, 217, 36, 2, 1, 192, 214, 217, 36, 2, 1, 165,
+ 217, 36, 2, 1, 208, 247, 217, 36, 2, 1, 228, 190, 217, 36, 2, 1, 212,
+ 203, 217, 36, 2, 1, 193, 223, 217, 36, 2, 1, 238, 95, 217, 36, 2, 1, 212,
+ 0, 217, 36, 2, 1, 215, 151, 217, 36, 2, 1, 150, 217, 36, 2, 1, 74, 217,
+ 36, 2, 1, 251, 63, 217, 36, 2, 1, 193, 148, 217, 36, 17, 192, 76, 217,
+ 36, 17, 101, 217, 36, 17, 104, 217, 36, 17, 133, 217, 36, 17, 134, 217,
+ 36, 17, 151, 217, 36, 17, 170, 217, 36, 17, 179, 217, 36, 17, 174, 217,
+ 36, 17, 182, 217, 36, 31, 200, 30, 217, 36, 31, 234, 111, 217, 36, 31,
+ 197, 244, 217, 36, 31, 199, 186, 217, 36, 31, 232, 113, 217, 36, 31, 233,
+ 7, 217, 36, 31, 203, 35, 217, 36, 31, 204, 143, 217, 36, 31, 234, 145,
+ 217, 36, 31, 214, 13, 217, 36, 17, 90, 250, 249, 20, 217, 36, 17, 103,
+ 250, 249, 20, 217, 36, 17, 112, 250, 249, 20, 217, 36, 242, 38, 217, 36,
+ 232, 71, 201, 238, 217, 36, 16, 251, 48, 217, 36, 233, 204, 211, 241,
+ 117, 1, 166, 117, 1, 249, 3, 117, 1, 11, 166, 117, 1, 209, 234, 117, 1,
+ 172, 117, 1, 216, 178, 117, 1, 250, 112, 172, 117, 1, 233, 97, 117, 1,
+ 196, 157, 117, 1, 196, 41, 117, 1, 189, 117, 1, 238, 0, 117, 1, 11, 198,
+ 83, 117, 1, 11, 189, 117, 1, 198, 83, 117, 1, 237, 161, 117, 1, 181, 117,
+ 1, 214, 65, 117, 1, 11, 213, 178, 117, 1, 250, 112, 181, 117, 1, 213,
+ 178, 117, 1, 213, 164, 117, 1, 177, 117, 1, 218, 250, 117, 1, 219, 222,
+ 117, 1, 219, 211, 117, 1, 199, 50, 117, 1, 236, 155, 117, 1, 199, 42,
+ 117, 1, 236, 154, 117, 1, 160, 117, 1, 231, 233, 117, 1, 11, 160, 117, 1,
+ 208, 239, 117, 1, 208, 216, 117, 1, 214, 165, 117, 1, 214, 114, 117, 1,
+ 250, 112, 214, 165, 117, 1, 144, 117, 1, 193, 209, 117, 1, 231, 84, 117,
+ 1, 231, 59, 117, 1, 198, 93, 117, 1, 235, 0, 117, 1, 212, 201, 117, 1,
+ 212, 183, 117, 1, 198, 108, 117, 1, 235, 11, 117, 1, 11, 198, 108, 117,
+ 1, 11, 235, 11, 117, 1, 207, 232, 198, 108, 117, 1, 204, 64, 117, 1, 202,
+ 92, 117, 1, 192, 71, 117, 1, 191, 254, 117, 1, 198, 118, 117, 1, 235, 17,
+ 117, 1, 11, 198, 118, 117, 1, 188, 117, 1, 192, 112, 117, 1, 191, 255,
+ 117, 1, 191, 225, 117, 1, 191, 205, 117, 1, 250, 112, 191, 225, 117, 1,
+ 191, 197, 117, 1, 191, 204, 117, 1, 194, 169, 117, 1, 251, 72, 117, 1,
+ 229, 187, 117, 1, 247, 146, 117, 1, 201, 54, 117, 1, 235, 1, 117, 1, 200,
+ 79, 117, 1, 198, 112, 117, 1, 206, 221, 117, 3, 116, 73, 161, 117, 1,
+ 215, 47, 117, 3, 250, 43, 117, 3, 207, 232, 195, 246, 117, 3, 207, 232,
+ 250, 43, 117, 18, 3, 64, 117, 18, 3, 252, 33, 117, 18, 3, 251, 68, 117,
+ 18, 3, 250, 224, 117, 18, 3, 250, 214, 117, 18, 3, 74, 117, 18, 3, 211,
+ 194, 117, 18, 3, 194, 36, 117, 18, 3, 194, 202, 117, 18, 3, 71, 117, 18,
+ 3, 234, 88, 117, 18, 3, 234, 73, 117, 18, 3, 211, 252, 117, 18, 3, 70,
+ 117, 18, 3, 228, 58, 117, 18, 3, 228, 57, 117, 18, 3, 228, 56, 117, 18,
+ 3, 223, 116, 117, 18, 3, 223, 251, 117, 18, 3, 223, 224, 117, 18, 3, 223,
+ 78, 117, 18, 3, 223, 164, 117, 18, 3, 68, 117, 18, 3, 197, 119, 117, 18,
+ 3, 197, 118, 117, 18, 3, 197, 117, 117, 18, 3, 196, 251, 117, 18, 3, 197,
+ 101, 117, 18, 3, 197, 61, 117, 18, 3, 193, 148, 117, 18, 3, 193, 22, 117,
+ 18, 3, 251, 108, 117, 18, 3, 251, 104, 117, 18, 3, 234, 13, 117, 18, 3,
+ 207, 7, 234, 13, 117, 18, 3, 234, 21, 117, 18, 3, 207, 7, 234, 21, 117,
+ 18, 3, 251, 63, 117, 18, 3, 234, 150, 117, 18, 3, 250, 8, 117, 18, 3,
+ 211, 130, 117, 18, 3, 215, 151, 117, 18, 3, 214, 167, 117, 18, 3, 197,
+ 45, 117, 18, 3, 192, 194, 117, 18, 3, 211, 246, 117, 18, 3, 211, 253,
+ 117, 18, 3, 194, 213, 117, 18, 3, 223, 229, 117, 18, 3, 234, 199, 117,
+ 18, 3, 223, 114, 117, 18, 3, 197, 95, 117, 158, 207, 101, 117, 158, 198,
+ 249, 207, 101, 117, 158, 58, 117, 158, 63, 117, 1, 199, 16, 117, 1, 199,
+ 15, 117, 1, 199, 14, 117, 1, 199, 13, 117, 1, 199, 12, 117, 1, 199, 11,
+ 117, 1, 199, 10, 117, 1, 207, 232, 199, 17, 117, 1, 207, 232, 199, 16,
+ 117, 1, 207, 232, 199, 14, 117, 1, 207, 232, 199, 13, 117, 1, 207, 232,
+ 199, 12, 117, 1, 207, 232, 199, 10, 19, 223, 80, 77, 45, 223, 80, 77, 40,
+ 242, 200, 229, 15, 77, 40, 242, 200, 223, 80, 77, 37, 2, 27, 232, 247,
+ 196, 27, 250, 249, 208, 1, 122, 247, 19, 196, 27, 250, 249, 208, 1, 122,
+ 214, 64, 19, 242, 27, 19, 242, 26, 19, 242, 25, 19, 242, 24, 19, 242, 23,
+ 19, 242, 22, 19, 242, 21, 19, 242, 20, 19, 242, 19, 19, 242, 18, 19, 242,
+ 17, 19, 242, 16, 19, 242, 15, 19, 242, 14, 19, 242, 13, 19, 242, 12, 19,
+ 242, 11, 19, 242, 10, 19, 242, 9, 19, 242, 8, 19, 242, 7, 19, 242, 6, 19,
+ 242, 5, 19, 242, 4, 19, 242, 3, 19, 242, 2, 19, 242, 1, 19, 242, 0, 19,
+ 241, 255, 19, 241, 254, 19, 241, 253, 19, 241, 252, 19, 241, 251, 19,
+ 241, 250, 19, 241, 249, 19, 241, 248, 19, 241, 247, 19, 241, 246, 19,
+ 241, 245, 19, 241, 244, 19, 241, 243, 19, 241, 242, 19, 241, 241, 19,
+ 241, 240, 19, 241, 239, 19, 241, 238, 19, 241, 237, 19, 241, 236, 19,
+ 241, 235, 19, 241, 234, 19, 241, 233, 19, 241, 232, 19, 241, 231, 19,
+ 241, 230, 19, 241, 229, 19, 241, 228, 19, 241, 227, 19, 241, 226, 19,
+ 241, 225, 19, 241, 224, 19, 241, 223, 19, 241, 222, 19, 241, 221, 19,
+ 241, 220, 19, 241, 219, 19, 241, 218, 19, 241, 217, 19, 241, 216, 19,
+ 241, 215, 19, 241, 214, 19, 241, 213, 19, 241, 212, 19, 241, 211, 19,
+ 241, 210, 19, 241, 209, 19, 241, 208, 19, 241, 207, 19, 241, 206, 19,
+ 241, 205, 19, 241, 204, 19, 241, 203, 19, 241, 202, 19, 241, 201, 19,
+ 241, 200, 19, 241, 199, 19, 241, 198, 19, 241, 197, 19, 241, 196, 19,
+ 241, 195, 19, 241, 194, 19, 241, 193, 19, 241, 192, 19, 241, 191, 19,
+ 241, 190, 19, 241, 189, 19, 241, 188, 19, 241, 187, 19, 241, 186, 19,
+ 241, 185, 19, 241, 184, 19, 241, 183, 19, 241, 182, 19, 241, 181, 19,
+ 241, 180, 19, 241, 179, 19, 241, 178, 19, 241, 177, 19, 241, 176, 19,
+ 241, 175, 19, 241, 174, 19, 241, 173, 19, 241, 172, 19, 241, 171, 19,
+ 241, 170, 19, 241, 169, 19, 241, 168, 19, 241, 167, 19, 241, 166, 19,
+ 241, 165, 19, 241, 164, 19, 241, 163, 19, 241, 162, 19, 241, 161, 19,
+ 241, 160, 19, 241, 159, 19, 241, 158, 19, 241, 157, 19, 241, 156, 19,
+ 241, 155, 19, 241, 154, 19, 241, 153, 19, 241, 152, 19, 241, 151, 19,
+ 241, 150, 19, 241, 149, 19, 241, 148, 19, 241, 147, 19, 241, 146, 19,
+ 241, 145, 19, 241, 144, 19, 241, 143, 19, 241, 142, 19, 241, 141, 19,
+ 241, 140, 19, 241, 139, 19, 241, 138, 19, 241, 137, 19, 241, 136, 19,
+ 241, 135, 19, 241, 134, 19, 241, 133, 19, 241, 132, 19, 241, 131, 19,
+ 241, 130, 19, 241, 129, 19, 241, 128, 19, 241, 127, 19, 241, 126, 19,
+ 241, 125, 19, 241, 124, 19, 241, 123, 19, 241, 122, 19, 241, 121, 19,
+ 241, 120, 19, 241, 119, 19, 241, 118, 19, 241, 117, 19, 241, 116, 19,
+ 241, 115, 19, 241, 114, 19, 241, 113, 19, 241, 112, 19, 241, 111, 19,
+ 241, 110, 19, 241, 109, 19, 241, 108, 19, 241, 107, 19, 241, 106, 19,
+ 241, 105, 19, 241, 104, 19, 241, 103, 19, 241, 102, 19, 241, 101, 19,
+ 241, 100, 19, 241, 99, 19, 241, 98, 19, 241, 97, 19, 241, 96, 19, 241,
+ 95, 19, 241, 94, 19, 241, 93, 19, 241, 92, 19, 241, 91, 19, 241, 90, 19,
+ 241, 89, 19, 241, 88, 19, 241, 87, 19, 241, 86, 19, 241, 85, 19, 241, 84,
+ 19, 241, 83, 19, 241, 82, 19, 241, 81, 19, 241, 80, 19, 241, 79, 19, 241,
+ 78, 19, 241, 77, 19, 241, 76, 19, 241, 75, 19, 241, 74, 19, 241, 73, 19,
+ 241, 72, 19, 241, 71, 19, 241, 70, 19, 241, 69, 19, 241, 68, 19, 241, 67,
+ 19, 241, 66, 19, 241, 65, 19, 241, 64, 19, 241, 63, 19, 241, 62, 19, 241,
+ 61, 19, 241, 60, 19, 241, 59, 19, 241, 58, 19, 241, 57, 19, 241, 56, 19,
+ 241, 55, 19, 241, 54, 19, 241, 53, 19, 241, 52, 19, 241, 51, 19, 241, 50,
+ 19, 241, 49, 19, 241, 48, 19, 241, 47, 19, 241, 46, 19, 241, 45, 19, 241,
+ 44, 19, 241, 43, 19, 241, 42, 19, 241, 41, 19, 241, 40, 19, 241, 39, 19,
+ 241, 38, 19, 241, 37, 19, 241, 36, 19, 241, 35, 19, 241, 34, 19, 241, 33,
+ 19, 241, 32, 19, 241, 31, 19, 241, 30, 19, 241, 29, 19, 241, 28, 19, 241,
+ 27, 19, 241, 26, 19, 241, 25, 19, 241, 24, 19, 241, 23, 19, 241, 22, 19,
+ 241, 21, 19, 241, 20, 19, 241, 19, 19, 241, 18, 19, 241, 17, 19, 241, 16,
+ 19, 241, 15, 19, 241, 14, 19, 241, 13, 19, 241, 12, 19, 241, 11, 19, 241,
+ 10, 19, 241, 9, 19, 241, 8, 19, 241, 7, 19, 241, 6, 19, 241, 5, 19, 241,
+ 4, 19, 241, 3, 19, 241, 2, 19, 241, 1, 19, 241, 0, 19, 240, 255, 19, 240,
+ 254, 19, 240, 253, 19, 240, 252, 19, 240, 251, 19, 240, 250, 19, 240,
+ 249, 19, 240, 248, 19, 240, 247, 19, 240, 246, 19, 240, 245, 19, 240,
+ 244, 19, 240, 243, 19, 240, 242, 19, 240, 241, 19, 240, 240, 19, 240,
+ 239, 19, 240, 238, 19, 240, 237, 19, 240, 236, 19, 240, 235, 19, 240,
+ 234, 19, 240, 233, 19, 240, 232, 19, 240, 231, 19, 240, 230, 19, 240,
+ 229, 19, 240, 228, 19, 240, 227, 19, 240, 226, 19, 240, 225, 19, 240,
+ 224, 19, 240, 223, 19, 240, 222, 19, 240, 221, 19, 240, 220, 19, 240,
+ 219, 19, 240, 218, 19, 240, 217, 19, 240, 216, 19, 240, 215, 19, 240,
+ 214, 19, 240, 213, 19, 240, 212, 19, 240, 211, 19, 240, 210, 19, 240,
+ 209, 19, 240, 208, 19, 240, 207, 19, 240, 206, 19, 240, 205, 19, 240,
+ 204, 19, 240, 203, 19, 240, 202, 19, 240, 201, 19, 240, 200, 19, 240,
+ 199, 19, 240, 198, 19, 240, 197, 19, 240, 196, 19, 240, 195, 19, 240,
+ 194, 19, 240, 193, 19, 240, 192, 19, 240, 191, 19, 240, 190, 19, 240,
+ 189, 19, 240, 188, 19, 240, 187, 19, 240, 186, 19, 240, 185, 19, 240,
+ 184, 19, 240, 183, 19, 240, 182, 19, 240, 181, 19, 240, 180, 19, 240,
+ 179, 19, 240, 178, 19, 240, 177, 19, 240, 176, 19, 240, 175, 19, 240,
+ 174, 19, 240, 173, 19, 240, 172, 19, 240, 171, 19, 240, 170, 19, 240,
+ 169, 19, 240, 168, 19, 240, 167, 19, 240, 166, 19, 240, 165, 19, 240,
+ 164, 19, 240, 163, 19, 240, 162, 19, 240, 161, 19, 240, 160, 19, 240,
+ 159, 19, 240, 158, 19, 240, 157, 19, 240, 156, 19, 240, 155, 19, 240,
+ 154, 19, 240, 153, 19, 240, 152, 19, 240, 151, 19, 240, 150, 19, 240,
+ 149, 19, 240, 148, 19, 240, 147, 19, 240, 146, 19, 240, 145, 19, 240,
+ 144, 19, 240, 143, 19, 240, 142, 19, 240, 141, 19, 240, 140, 19, 240,
+ 139, 19, 240, 138, 19, 240, 137, 19, 240, 136, 19, 240, 135, 19, 240,
+ 134, 19, 240, 133, 19, 240, 132, 19, 240, 131, 19, 240, 130, 19, 240,
+ 129, 19, 240, 128, 19, 240, 127, 19, 240, 126, 19, 240, 125, 19, 240,
+ 124, 19, 240, 123, 19, 240, 122, 19, 240, 121, 19, 240, 120, 19, 240,
+ 119, 19, 240, 118, 19, 240, 117, 19, 240, 116, 19, 240, 115, 19, 240,
+ 114, 19, 240, 113, 19, 240, 112, 19, 240, 111, 19, 240, 110, 19, 240,
+ 109, 19, 240, 108, 19, 240, 107, 19, 240, 106, 19, 240, 105, 19, 240,
+ 104, 19, 240, 103, 19, 240, 102, 19, 240, 101, 19, 240, 100, 19, 240, 99,
+ 19, 240, 98, 19, 240, 97, 19, 240, 96, 19, 240, 95, 19, 240, 94, 19, 240,
+ 93, 19, 240, 92, 19, 240, 91, 19, 240, 90, 19, 240, 89, 19, 240, 88, 19,
+ 240, 87, 19, 240, 86, 19, 240, 85, 19, 240, 84, 19, 240, 83, 19, 240, 82,
+ 19, 240, 81, 19, 240, 80, 19, 240, 79, 19, 240, 78, 19, 240, 77, 19, 240,
+ 76, 19, 240, 75, 19, 240, 74, 19, 240, 73, 19, 240, 72, 19, 240, 71, 19,
+ 240, 70, 19, 240, 69, 19, 240, 68, 19, 240, 67, 19, 240, 66, 19, 240, 65,
+ 19, 240, 64, 19, 240, 63, 19, 240, 62, 19, 240, 61, 19, 240, 60, 19, 240,
+ 59, 19, 240, 58, 19, 240, 57, 19, 240, 56, 19, 240, 55, 19, 240, 54, 19,
+ 240, 53, 19, 240, 52, 19, 240, 51, 19, 240, 50, 19, 240, 49, 19, 240, 48,
+ 19, 240, 47, 19, 240, 46, 19, 240, 45, 19, 240, 44, 19, 240, 43, 19, 240,
+ 42, 19, 240, 41, 19, 240, 40, 19, 240, 39, 19, 240, 38, 19, 240, 37, 19,
+ 240, 36, 19, 240, 35, 19, 240, 34, 19, 240, 33, 19, 240, 32, 19, 240, 31,
+ 19, 240, 30, 19, 240, 29, 19, 240, 28, 19, 240, 27, 19, 240, 26, 19, 240,
+ 25, 19, 240, 24, 19, 240, 23, 19, 240, 22, 19, 240, 21, 19, 240, 20, 19,
+ 240, 19, 19, 240, 18, 19, 240, 17, 19, 240, 16, 19, 240, 15, 19, 240, 14,
+ 19, 240, 13, 19, 240, 12, 19, 240, 11, 19, 240, 10, 19, 240, 9, 19, 240,
+ 8, 19, 240, 7, 19, 240, 6, 19, 240, 5, 19, 240, 4, 19, 240, 3, 19, 240,
+ 2, 19, 240, 1, 19, 240, 0, 19, 239, 255, 19, 239, 254, 19, 239, 253, 19,
+ 239, 252, 19, 239, 251, 19, 239, 250, 19, 239, 249, 19, 239, 248, 19,
+ 239, 247, 19, 239, 246, 19, 239, 245, 19, 239, 244, 19, 239, 243, 19,
+ 239, 242, 19, 239, 241, 19, 239, 240, 19, 239, 239, 19, 239, 238, 19,
+ 239, 237, 19, 239, 236, 19, 239, 235, 19, 239, 234, 19, 239, 233, 19,
+ 239, 232, 19, 239, 231, 19, 239, 230, 19, 239, 229, 19, 239, 228, 19,
+ 239, 227, 19, 239, 226, 19, 239, 225, 19, 239, 224, 19, 239, 223, 19,
+ 239, 222, 19, 239, 221, 19, 239, 220, 19, 239, 219, 19, 239, 218, 19,
+ 239, 217, 19, 239, 216, 19, 239, 215, 19, 239, 214, 19, 239, 213, 19,
+ 239, 212, 19, 239, 211, 19, 239, 210, 19, 239, 209, 19, 239, 208, 19,
+ 239, 207, 19, 239, 206, 19, 239, 205, 19, 239, 204, 19, 239, 203, 19,
+ 239, 202, 19, 239, 201, 19, 239, 200, 19, 239, 199, 19, 239, 198, 19,
+ 239, 197, 19, 239, 196, 19, 239, 195, 19, 239, 194, 19, 239, 193, 19,
+ 239, 192, 19, 239, 191, 19, 239, 190, 19, 239, 189, 19, 239, 188, 19,
+ 239, 187, 19, 239, 186, 19, 239, 185, 19, 239, 184, 19, 239, 183, 19,
+ 239, 182, 19, 239, 181, 19, 239, 180, 19, 239, 179, 19, 239, 178, 19,
+ 239, 177, 19, 239, 176, 19, 239, 175, 19, 239, 174, 19, 239, 173, 19,
+ 239, 172, 19, 239, 171, 19, 239, 170, 19, 239, 169, 19, 239, 168, 19,
+ 239, 167, 19, 239, 166, 19, 239, 165, 19, 239, 164, 19, 239, 163, 19,
+ 239, 162, 19, 239, 161, 19, 239, 160, 19, 239, 159, 19, 239, 158, 19,
+ 239, 157, 19, 239, 156, 19, 239, 155, 19, 239, 154, 19, 239, 153, 19,
+ 239, 152, 19, 239, 151, 19, 239, 150, 19, 239, 149, 19, 239, 148, 19,
+ 239, 147, 19, 239, 146, 19, 239, 145, 19, 239, 144, 19, 239, 143, 19,
+ 239, 142, 19, 239, 141, 19, 239, 140, 19, 239, 139, 19, 239, 138, 19,
+ 239, 137, 19, 239, 136, 19, 239, 135, 19, 239, 134, 19, 239, 133, 19,
+ 239, 132, 19, 239, 131, 19, 239, 130, 19, 239, 129, 19, 239, 128, 19,
+ 239, 127, 19, 239, 126, 19, 239, 125, 19, 239, 124, 19, 239, 123, 19,
+ 239, 122, 19, 239, 121, 19, 239, 120, 19, 239, 119, 19, 239, 118, 19,
+ 239, 117, 19, 239, 116, 19, 239, 115, 19, 239, 114, 19, 239, 113, 19,
+ 239, 112, 19, 239, 111, 19, 239, 110, 19, 239, 109, 19, 239, 108, 19,
+ 239, 107, 19, 239, 106, 19, 239, 105, 19, 239, 104, 19, 239, 103, 19,
+ 239, 102, 19, 239, 101, 19, 239, 100, 19, 239, 99, 19, 239, 98, 19, 239,
+ 97, 19, 239, 96, 19, 239, 95, 19, 239, 94, 19, 239, 93, 19, 239, 92, 19,
+ 239, 91, 19, 239, 90, 19, 239, 89, 19, 239, 88, 19, 239, 87, 19, 239, 86,
+ 19, 239, 85, 19, 239, 84, 19, 239, 83, 19, 239, 82, 19, 239, 81, 19, 239,
+ 80, 19, 239, 79, 19, 239, 78, 19, 239, 77, 19, 239, 76, 19, 239, 75, 19,
+ 239, 74, 19, 239, 73, 19, 239, 72, 19, 239, 71, 19, 239, 70, 19, 239, 69,
+ 19, 239, 68, 19, 239, 67, 19, 239, 66, 19, 239, 65, 19, 239, 64, 19, 239,
+ 63, 19, 239, 62, 19, 239, 61, 19, 239, 60, 19, 239, 59, 19, 239, 58, 19,
+ 239, 57, 19, 239, 56, 19, 239, 55, 19, 239, 54, 19, 239, 53, 19, 239, 52,
+ 19, 239, 51, 19, 239, 50, 19, 239, 49, 19, 239, 48, 19, 239, 47, 19, 239,
+ 46, 19, 239, 45, 19, 239, 44, 19, 239, 43, 19, 239, 42, 19, 239, 41, 19,
+ 239, 40, 19, 239, 39, 19, 239, 38, 19, 239, 37, 19, 239, 36, 19, 239, 35,
+ 19, 239, 34, 19, 239, 33, 19, 239, 32, 19, 239, 31, 19, 239, 30, 19, 239,
+ 29, 19, 239, 28, 37, 2, 27, 246, 98, 37, 2, 27, 246, 97, 37, 2, 27, 246,
+ 96, 37, 2, 27, 246, 95, 37, 2, 27, 246, 94, 37, 2, 27, 246, 93, 37, 2,
+ 27, 246, 92, 37, 2, 27, 246, 91, 37, 2, 27, 246, 90, 37, 2, 27, 246, 89,
+ 37, 2, 27, 246, 88, 37, 2, 27, 246, 87, 37, 2, 27, 246, 86, 37, 2, 27,
+ 246, 85, 37, 2, 27, 246, 84, 37, 2, 27, 246, 83, 37, 2, 27, 246, 82, 37,
+ 2, 27, 246, 81, 37, 2, 27, 246, 80, 37, 2, 27, 246, 79, 37, 2, 27, 246,
+ 78, 37, 2, 27, 246, 77, 37, 2, 27, 246, 76, 37, 2, 27, 246, 75, 37, 2,
+ 27, 246, 74, 37, 2, 27, 246, 73, 37, 2, 27, 246, 72, 37, 2, 27, 246, 71,
+ 37, 2, 27, 246, 70, 37, 2, 27, 246, 69, 37, 2, 27, 246, 68, 37, 2, 27,
+ 246, 67, 37, 2, 27, 246, 66, 37, 2, 27, 246, 65, 37, 2, 27, 246, 64, 37,
+ 2, 27, 246, 63, 37, 2, 27, 246, 62, 37, 2, 27, 246, 61, 37, 2, 27, 246,
+ 60, 37, 2, 27, 246, 59, 37, 2, 27, 246, 58, 37, 2, 27, 246, 57, 37, 2,
+ 27, 246, 56, 37, 2, 27, 246, 55, 37, 2, 27, 246, 54, 37, 2, 27, 246, 53,
+ 37, 2, 27, 246, 52, 37, 2, 27, 246, 51, 37, 2, 27, 246, 50, 37, 2, 27,
+ 246, 49, 37, 2, 27, 246, 48, 37, 2, 27, 246, 47, 37, 2, 27, 246, 46, 37,
+ 2, 27, 246, 45, 37, 2, 27, 246, 44, 37, 2, 27, 246, 43, 37, 2, 27, 246,
+ 42, 37, 2, 27, 246, 41, 37, 2, 27, 246, 40, 37, 2, 27, 246, 39, 37, 2,
+ 27, 246, 38, 37, 2, 27, 246, 37, 37, 2, 27, 246, 36, 37, 2, 27, 246, 35,
+ 37, 2, 27, 246, 34, 37, 2, 27, 246, 33, 37, 2, 27, 246, 32, 37, 2, 27,
+ 246, 31, 37, 2, 27, 246, 30, 37, 2, 27, 246, 29, 37, 2, 27, 246, 28, 37,
+ 2, 27, 246, 27, 37, 2, 27, 246, 26, 37, 2, 27, 246, 25, 37, 2, 27, 246,
+ 24, 37, 2, 27, 246, 23, 37, 2, 27, 246, 22, 37, 2, 27, 246, 21, 37, 2,
+ 27, 246, 20, 37, 2, 27, 246, 19, 37, 2, 27, 246, 18, 37, 2, 27, 246, 17,
+ 37, 2, 27, 246, 16, 37, 2, 27, 246, 15, 37, 2, 27, 246, 14, 37, 2, 27,
+ 246, 13, 37, 2, 27, 246, 12, 37, 2, 27, 246, 11, 37, 2, 27, 246, 10, 37,
+ 2, 27, 246, 9, 37, 2, 27, 246, 8, 37, 2, 27, 246, 7, 37, 2, 27, 246, 6,
+ 37, 2, 27, 246, 5, 37, 2, 27, 246, 4, 37, 2, 27, 246, 3, 37, 2, 27, 246,
+ 2, 37, 2, 27, 246, 1, 37, 2, 27, 246, 0, 37, 2, 27, 245, 255, 37, 2, 27,
+ 245, 254, 37, 2, 27, 245, 253, 37, 2, 27, 245, 252, 37, 2, 27, 245, 251,
+ 37, 2, 27, 245, 250, 37, 2, 27, 245, 249, 37, 2, 27, 245, 248, 37, 2, 27,
+ 245, 247, 37, 2, 27, 245, 246, 37, 2, 27, 245, 245, 37, 2, 27, 245, 244,
+ 37, 2, 27, 245, 243, 37, 2, 27, 245, 242, 37, 2, 27, 245, 241, 37, 2, 27,
+ 245, 240, 37, 2, 27, 245, 239, 37, 2, 27, 245, 238, 37, 2, 27, 245, 237,
+ 37, 2, 27, 245, 236, 37, 2, 27, 245, 235, 37, 2, 27, 245, 234, 37, 2, 27,
+ 245, 233, 37, 2, 27, 245, 232, 37, 2, 27, 245, 231, 37, 2, 27, 245, 230,
+ 37, 2, 27, 245, 229, 37, 2, 27, 245, 228, 37, 2, 27, 245, 227, 37, 2, 27,
+ 245, 226, 37, 2, 27, 245, 225, 37, 2, 27, 245, 224, 37, 2, 27, 245, 223,
+ 37, 2, 27, 245, 222, 37, 2, 27, 245, 221, 37, 2, 27, 245, 220, 37, 2, 27,
+ 245, 219, 37, 2, 27, 245, 218, 37, 2, 27, 245, 217, 37, 2, 27, 245, 216,
+ 37, 2, 27, 245, 215, 37, 2, 27, 245, 214, 37, 2, 27, 245, 213, 37, 2, 27,
+ 245, 212, 37, 2, 27, 245, 211, 37, 2, 27, 245, 210, 37, 2, 27, 245, 209,
+ 37, 2, 27, 245, 208, 37, 2, 27, 245, 207, 37, 2, 27, 245, 206, 37, 2, 27,
+ 245, 205, 37, 2, 27, 245, 204, 37, 2, 27, 245, 203, 37, 2, 27, 245, 202,
+ 37, 2, 27, 245, 201, 37, 2, 27, 245, 200, 37, 2, 27, 245, 199, 37, 2, 27,
+ 245, 198, 37, 2, 27, 245, 197, 37, 2, 27, 245, 196, 37, 2, 27, 245, 195,
+ 37, 2, 27, 245, 194, 37, 2, 27, 245, 193, 37, 2, 27, 245, 192, 37, 2, 27,
+ 245, 191, 37, 2, 27, 245, 190, 37, 2, 27, 245, 189, 37, 2, 27, 245, 188,
+ 37, 2, 27, 245, 187, 37, 2, 27, 245, 186, 37, 2, 27, 245, 185, 37, 2, 27,
+ 245, 184, 37, 2, 27, 245, 183, 37, 2, 27, 245, 182, 37, 2, 27, 245, 181,
+ 37, 2, 27, 245, 180, 37, 2, 27, 245, 179, 37, 2, 27, 245, 178, 37, 2, 27,
+ 245, 177, 37, 2, 27, 245, 176, 37, 2, 27, 245, 175, 37, 2, 27, 245, 174,
+ 37, 2, 27, 245, 173, 37, 2, 27, 245, 172, 37, 2, 27, 245, 171, 37, 2, 27,
+ 245, 170, 37, 2, 27, 245, 169, 37, 2, 27, 245, 168, 37, 2, 27, 245, 167,
+ 37, 2, 27, 245, 166, 37, 2, 27, 245, 165, 37, 2, 27, 245, 164, 37, 2, 27,
+ 245, 163, 37, 2, 27, 245, 162, 37, 2, 27, 245, 161, 37, 2, 27, 245, 160,
+ 37, 2, 27, 245, 159, 37, 2, 27, 245, 158, 37, 2, 27, 245, 157, 37, 2, 27,
+ 245, 156, 37, 2, 27, 245, 155, 37, 2, 27, 245, 154, 37, 2, 27, 245, 153,
+ 37, 2, 27, 245, 152, 37, 2, 27, 245, 151, 37, 2, 27, 245, 150, 37, 2, 27,
+ 245, 149, 37, 2, 27, 245, 148, 37, 2, 27, 245, 147, 37, 2, 27, 245, 146,
+ 37, 2, 27, 245, 145, 37, 2, 27, 245, 144, 37, 2, 27, 245, 143, 37, 2, 27,
+ 245, 142, 37, 2, 27, 245, 141, 37, 2, 27, 245, 140, 37, 2, 27, 245, 139,
+ 37, 2, 27, 245, 138, 37, 2, 27, 245, 137, 37, 2, 27, 245, 136, 37, 2, 27,
+ 245, 135, 37, 2, 27, 245, 134, 37, 2, 27, 245, 133, 37, 2, 27, 245, 132,
+ 37, 2, 27, 245, 131, 37, 2, 27, 245, 130, 37, 2, 27, 245, 129, 37, 2, 27,
+ 245, 128, 37, 2, 27, 245, 127, 37, 2, 27, 245, 126, 37, 2, 27, 245, 125,
+ 37, 2, 27, 245, 124, 37, 2, 27, 245, 123, 37, 2, 27, 245, 122, 37, 2, 27,
+ 245, 121, 37, 2, 27, 245, 120, 37, 2, 27, 245, 119, 37, 2, 27, 245, 118,
+ 37, 2, 27, 245, 117, 37, 2, 27, 245, 116, 37, 2, 27, 245, 115, 37, 2, 27,
+ 245, 114, 37, 2, 27, 245, 113, 37, 2, 27, 245, 112, 37, 2, 27, 245, 111,
+ 37, 2, 27, 245, 110, 37, 2, 27, 245, 109, 37, 2, 27, 245, 108, 37, 2, 27,
+ 245, 107, 37, 2, 27, 245, 106, 37, 2, 27, 245, 105, 37, 2, 27, 245, 104,
+ 37, 2, 27, 245, 103, 37, 2, 27, 245, 102, 37, 2, 27, 245, 101, 37, 2, 27,
+ 245, 100, 37, 2, 27, 245, 99, 37, 2, 27, 245, 98, 37, 2, 27, 245, 97, 37,
+ 2, 27, 245, 96, 37, 2, 27, 245, 95, 37, 2, 27, 245, 94, 37, 2, 27, 245,
+ 93, 37, 2, 27, 245, 92, 37, 2, 27, 245, 91, 37, 2, 27, 245, 90, 37, 2,
+ 27, 245, 89, 37, 2, 27, 245, 88, 37, 2, 27, 245, 87, 37, 2, 27, 245, 86,
+ 37, 2, 27, 245, 85, 37, 2, 27, 245, 84, 37, 2, 27, 245, 83, 37, 2, 27,
+ 245, 82, 37, 2, 27, 245, 81, 37, 2, 27, 245, 80, 37, 2, 27, 245, 79, 37,
+ 2, 27, 245, 78, 37, 2, 27, 245, 77, 37, 2, 27, 245, 76, 37, 2, 27, 245,
+ 75, 37, 2, 27, 245, 74, 37, 2, 27, 245, 73, 37, 2, 27, 245, 72, 37, 2,
+ 27, 245, 71, 37, 2, 27, 245, 70, 37, 2, 27, 245, 69, 37, 2, 27, 245, 68,
+ 37, 2, 27, 245, 67, 37, 2, 27, 245, 66, 37, 2, 27, 245, 65, 37, 2, 27,
+ 245, 64, 37, 2, 27, 245, 63, 37, 2, 27, 245, 62, 37, 2, 27, 245, 61, 37,
+ 2, 27, 245, 60, 37, 2, 27, 245, 59, 37, 2, 27, 245, 58, 37, 2, 27, 245,
+ 57, 37, 2, 27, 245, 56, 37, 2, 27, 245, 55, 37, 2, 27, 245, 54, 37, 2,
+ 27, 245, 53, 37, 2, 27, 245, 52, 37, 2, 27, 245, 51, 37, 2, 27, 245, 50,
+ 37, 2, 27, 245, 49, 37, 2, 27, 245, 48, 37, 2, 27, 245, 47, 37, 2, 27,
+ 245, 46, 37, 2, 27, 245, 45, 37, 2, 27, 245, 44, 37, 2, 27, 245, 43, 37,
+ 2, 27, 245, 42, 37, 2, 27, 245, 41, 37, 2, 27, 245, 40, 37, 2, 27, 245,
+ 39, 37, 2, 27, 245, 38, 37, 2, 27, 245, 37, 37, 2, 27, 245, 36, 37, 2,
+ 27, 245, 35, 37, 2, 27, 245, 34, 37, 2, 27, 245, 33, 37, 2, 27, 245, 32,
+ 37, 2, 27, 245, 31, 37, 2, 27, 245, 30, 37, 2, 27, 245, 29, 37, 2, 27,
+ 245, 28, 37, 2, 27, 245, 27, 37, 2, 27, 245, 26, 37, 2, 27, 245, 25, 37,
+ 2, 27, 245, 24, 37, 2, 27, 245, 23, 37, 2, 27, 245, 22, 37, 2, 27, 245,
+ 21, 37, 2, 27, 245, 20, 37, 2, 27, 245, 19, 37, 2, 27, 245, 18, 37, 2,
+ 27, 245, 17, 37, 2, 27, 245, 16, 37, 2, 27, 245, 15, 37, 2, 27, 245, 14,
+ 37, 2, 27, 245, 13, 37, 2, 27, 245, 12, 37, 2, 27, 245, 11, 37, 2, 27,
+ 245, 10, 37, 2, 27, 245, 9, 37, 2, 27, 245, 8, 37, 2, 27, 245, 7, 37, 2,
+ 27, 245, 6, 37, 2, 27, 245, 5, 37, 2, 27, 245, 4, 37, 2, 27, 245, 3, 37,
+ 2, 27, 245, 2, 37, 2, 27, 245, 1, 37, 2, 27, 245, 0, 37, 2, 27, 244, 255,
+ 37, 2, 27, 244, 254, 37, 2, 27, 244, 253, 37, 2, 27, 244, 252, 37, 2, 27,
+ 244, 251, 37, 2, 27, 244, 250, 37, 2, 27, 244, 249, 37, 2, 27, 244, 248,
+ 37, 2, 27, 244, 247, 37, 2, 27, 244, 246, 37, 2, 27, 244, 245, 37, 2, 27,
+ 244, 244, 37, 2, 27, 244, 243, 37, 2, 27, 244, 242, 37, 2, 27, 244, 241,
+ 37, 2, 27, 244, 240, 37, 2, 27, 244, 239, 37, 2, 27, 244, 238, 37, 2, 27,
+ 244, 237, 37, 2, 27, 244, 236, 37, 2, 27, 244, 235, 37, 2, 27, 244, 234,
+ 37, 2, 27, 244, 233, 37, 2, 27, 244, 232, 37, 2, 27, 244, 231, 37, 2, 27,
+ 244, 230, 37, 2, 27, 244, 229, 37, 2, 27, 244, 228, 37, 2, 27, 244, 227,
+ 37, 2, 27, 244, 226, 37, 2, 27, 244, 225, 37, 2, 27, 244, 224, 37, 2, 27,
+ 244, 223, 37, 2, 27, 244, 222, 37, 2, 27, 244, 221, 37, 2, 27, 244, 220,
+ 37, 2, 27, 244, 219, 37, 2, 27, 244, 218, 37, 2, 27, 244, 217, 37, 2, 27,
+ 244, 216, 37, 2, 27, 244, 215, 37, 2, 27, 244, 214, 37, 2, 27, 244, 213,
+ 37, 2, 27, 244, 212, 37, 2, 27, 244, 211, 37, 2, 27, 244, 210, 37, 2, 27,
+ 244, 209, 37, 2, 27, 244, 208, 37, 2, 27, 244, 207, 37, 2, 27, 244, 206,
+ 37, 2, 27, 244, 205, 37, 2, 27, 244, 204, 37, 2, 27, 244, 203, 37, 2, 27,
+ 244, 202, 37, 2, 27, 244, 201, 37, 2, 27, 244, 200, 37, 2, 27, 244, 199,
+ 37, 2, 27, 244, 198, 37, 2, 27, 244, 197, 37, 2, 27, 244, 196, 37, 2, 27,
+ 244, 195, 37, 2, 27, 244, 194, 37, 2, 27, 244, 193, 37, 2, 27, 244, 192,
+ 37, 2, 27, 244, 191, 37, 2, 27, 244, 190, 37, 2, 27, 244, 189, 37, 2, 27,
+ 244, 188, 37, 2, 27, 244, 187, 37, 2, 27, 244, 186, 37, 2, 27, 244, 185,
+ 37, 2, 27, 244, 184, 37, 2, 27, 244, 183, 37, 2, 27, 244, 182, 37, 2, 27,
+ 244, 181, 37, 2, 27, 244, 180, 37, 2, 27, 244, 179, 37, 2, 27, 244, 178,
+ 37, 2, 27, 244, 177, 37, 2, 27, 244, 176, 37, 2, 27, 244, 175, 37, 2, 27,
+ 244, 174, 37, 2, 27, 244, 173, 37, 2, 27, 244, 172, 37, 2, 27, 244, 171,
+ 37, 2, 27, 244, 170, 37, 2, 27, 244, 169, 37, 2, 27, 244, 168, 37, 2, 27,
+ 244, 167, 37, 2, 27, 244, 166, 37, 2, 27, 244, 165, 37, 2, 27, 244, 164,
+ 37, 2, 27, 244, 163, 37, 2, 27, 244, 162, 37, 2, 27, 244, 161, 37, 2, 27,
+ 244, 160, 37, 2, 27, 244, 159, 37, 2, 27, 244, 158, 37, 2, 27, 244, 157,
+ 37, 2, 27, 244, 156, 37, 2, 27, 244, 155, 37, 2, 27, 244, 154, 37, 2, 27,
+ 244, 153, 37, 2, 27, 244, 152, 37, 2, 27, 244, 151, 37, 2, 27, 244, 150,
+ 37, 2, 27, 244, 149, 37, 2, 27, 244, 148, 37, 2, 27, 244, 147, 37, 2, 27,
+ 244, 146, 37, 2, 27, 244, 145, 37, 2, 27, 244, 144, 37, 2, 27, 244, 143,
+ 37, 2, 27, 244, 142, 37, 2, 27, 244, 141, 75, 1, 250, 112, 71, 229, 140,
+ 1, 250, 112, 193, 69, 59, 1, 255, 33, 59, 1, 255, 32, 59, 1, 255, 31, 59,
+ 1, 255, 27, 59, 1, 228, 96, 59, 1, 228, 95, 59, 1, 228, 94, 59, 1, 228,
+ 93, 59, 1, 197, 182, 59, 1, 197, 181, 59, 1, 197, 180, 59, 1, 197, 179,
+ 59, 1, 197, 178, 59, 1, 234, 251, 59, 1, 234, 250, 59, 1, 234, 249, 59,
+ 1, 234, 248, 59, 1, 234, 247, 59, 1, 212, 114, 59, 1, 212, 113, 59, 1,
+ 212, 112, 59, 1, 222, 173, 59, 1, 222, 170, 59, 1, 222, 169, 59, 1, 222,
+ 168, 59, 1, 222, 167, 59, 1, 222, 166, 59, 1, 222, 165, 59, 1, 222, 164,
+ 59, 1, 222, 163, 59, 1, 222, 172, 59, 1, 222, 171, 59, 1, 222, 162, 59,
+ 1, 221, 203, 59, 1, 221, 202, 59, 1, 221, 201, 59, 1, 221, 200, 59, 1,
+ 221, 199, 59, 1, 221, 198, 59, 1, 221, 197, 59, 1, 221, 196, 59, 1, 221,
+ 32, 59, 1, 221, 31, 59, 1, 221, 30, 59, 1, 221, 29, 59, 1, 221, 28, 59,
+ 1, 221, 27, 59, 1, 221, 26, 59, 1, 222, 56, 59, 1, 222, 55, 59, 1, 222,
+ 54, 59, 1, 222, 53, 59, 1, 222, 52, 59, 1, 222, 51, 59, 1, 221, 112, 59,
+ 1, 221, 111, 59, 1, 221, 110, 59, 1, 221, 109, 59, 1, 206, 100, 59, 1,
+ 206, 99, 59, 1, 206, 98, 59, 1, 206, 97, 59, 1, 206, 96, 59, 1, 206, 95,
+ 59, 1, 206, 94, 59, 1, 206, 93, 59, 1, 203, 124, 59, 1, 203, 123, 59, 1,
+ 203, 122, 59, 1, 203, 121, 59, 1, 203, 120, 59, 1, 203, 119, 59, 1, 201,
+ 183, 59, 1, 201, 182, 59, 1, 201, 181, 59, 1, 201, 180, 59, 1, 201, 179,
+ 59, 1, 201, 178, 59, 1, 201, 177, 59, 1, 201, 176, 59, 1, 205, 222, 59,
+ 1, 205, 221, 59, 1, 205, 220, 59, 1, 205, 219, 59, 1, 205, 218, 59, 1,
+ 202, 211, 59, 1, 202, 210, 59, 1, 202, 209, 59, 1, 202, 208, 59, 1, 202,
+ 207, 59, 1, 202, 206, 59, 1, 202, 205, 59, 1, 200, 180, 59, 1, 200, 179,
+ 59, 1, 200, 178, 59, 1, 200, 177, 59, 1, 199, 127, 59, 1, 199, 126, 59,
+ 1, 199, 125, 59, 1, 199, 124, 59, 1, 199, 123, 59, 1, 199, 122, 59, 1,
+ 199, 121, 59, 1, 198, 44, 59, 1, 198, 43, 59, 1, 198, 42, 59, 1, 198, 41,
+ 59, 1, 198, 40, 59, 1, 200, 78, 59, 1, 200, 77, 59, 1, 200, 76, 59, 1,
+ 200, 75, 59, 1, 200, 74, 59, 1, 200, 73, 59, 1, 200, 72, 59, 1, 200, 71,
+ 59, 1, 200, 70, 59, 1, 199, 36, 59, 1, 199, 35, 59, 1, 199, 34, 59, 1,
+ 199, 33, 59, 1, 199, 32, 59, 1, 199, 31, 59, 1, 199, 30, 59, 1, 215, 96,
+ 59, 1, 215, 95, 59, 1, 215, 94, 59, 1, 215, 93, 59, 1, 215, 92, 59, 1,
+ 215, 91, 59, 1, 215, 90, 59, 1, 215, 89, 59, 1, 215, 88, 59, 1, 214, 59,
+ 59, 1, 214, 58, 59, 1, 214, 57, 59, 1, 214, 56, 59, 1, 214, 55, 59, 1,
+ 214, 54, 59, 1, 214, 53, 59, 1, 214, 52, 59, 1, 213, 21, 59, 1, 213, 20,
+ 59, 1, 213, 19, 59, 1, 214, 213, 59, 1, 214, 212, 59, 1, 214, 211, 59, 1,
+ 214, 210, 59, 1, 214, 209, 59, 1, 214, 208, 59, 1, 214, 207, 59, 1, 213,
+ 141, 59, 1, 213, 140, 59, 1, 213, 139, 59, 1, 213, 138, 59, 1, 213, 137,
+ 59, 1, 230, 112, 59, 1, 230, 109, 59, 1, 230, 108, 59, 1, 230, 107, 59,
+ 1, 230, 106, 59, 1, 230, 105, 59, 1, 230, 104, 59, 1, 230, 103, 59, 1,
+ 230, 102, 59, 1, 230, 111, 59, 1, 230, 110, 59, 1, 229, 177, 59, 1, 229,
+ 176, 59, 1, 229, 175, 59, 1, 229, 174, 59, 1, 229, 173, 59, 1, 229, 172,
+ 59, 1, 229, 171, 59, 1, 228, 180, 59, 1, 228, 179, 59, 1, 228, 178, 59,
+ 1, 229, 254, 59, 1, 229, 253, 59, 1, 229, 252, 59, 1, 229, 251, 59, 1,
+ 229, 250, 59, 1, 229, 249, 59, 1, 229, 248, 59, 1, 229, 42, 59, 1, 229,
+ 41, 59, 1, 229, 40, 59, 1, 229, 39, 59, 1, 229, 38, 59, 1, 229, 37, 59,
+ 1, 229, 36, 59, 1, 229, 35, 59, 1, 217, 227, 59, 1, 217, 226, 59, 1, 217,
+ 225, 59, 1, 217, 224, 59, 1, 217, 223, 59, 1, 217, 222, 59, 1, 217, 221,
+ 59, 1, 216, 174, 59, 1, 216, 173, 59, 1, 216, 172, 59, 1, 216, 171, 59,
+ 1, 216, 170, 59, 1, 216, 169, 59, 1, 216, 168, 59, 1, 215, 240, 59, 1,
+ 215, 239, 59, 1, 215, 238, 59, 1, 215, 237, 59, 1, 217, 47, 59, 1, 217,
+ 46, 59, 1, 217, 45, 59, 1, 216, 90, 59, 1, 216, 89, 59, 1, 216, 88, 59,
+ 1, 216, 87, 59, 1, 216, 86, 59, 1, 216, 85, 59, 1, 193, 137, 59, 1, 193,
+ 136, 59, 1, 193, 135, 59, 1, 193, 134, 59, 1, 193, 133, 59, 1, 193, 130,
+ 59, 1, 192, 213, 59, 1, 192, 212, 59, 1, 192, 211, 59, 1, 192, 210, 59,
+ 1, 193, 0, 59, 1, 192, 255, 59, 1, 192, 254, 59, 1, 192, 253, 59, 1, 192,
+ 252, 59, 1, 192, 251, 59, 1, 208, 75, 59, 1, 208, 74, 59, 1, 208, 73, 59,
+ 1, 208, 72, 59, 1, 207, 150, 59, 1, 207, 149, 59, 1, 207, 148, 59, 1,
+ 207, 147, 59, 1, 207, 146, 59, 1, 207, 145, 59, 1, 207, 144, 59, 1, 206,
+ 217, 59, 1, 206, 216, 59, 1, 206, 215, 59, 1, 206, 214, 59, 1, 206, 213,
+ 59, 1, 206, 212, 59, 1, 208, 6, 59, 1, 208, 5, 59, 1, 208, 4, 59, 1, 208,
+ 3, 59, 1, 207, 54, 59, 1, 207, 53, 59, 1, 207, 52, 59, 1, 207, 51, 59, 1,
+ 207, 50, 59, 1, 207, 49, 59, 1, 194, 168, 59, 1, 194, 167, 59, 1, 194,
+ 166, 59, 1, 194, 165, 59, 1, 194, 164, 59, 1, 194, 71, 59, 1, 194, 70,
+ 59, 1, 194, 69, 59, 1, 194, 68, 59, 1, 194, 67, 59, 1, 194, 110, 59, 1,
+ 194, 109, 59, 1, 194, 108, 59, 1, 194, 107, 59, 1, 194, 35, 59, 1, 194,
+ 34, 59, 1, 194, 33, 59, 1, 194, 32, 59, 1, 194, 31, 59, 1, 194, 30, 59,
+ 1, 194, 29, 59, 1, 215, 148, 59, 1, 215, 147, 229, 140, 1, 2, 194, 72,
+ 229, 140, 1, 2, 194, 111, 229, 140, 1, 2, 194, 36, 75, 1, 2, 194, 72, 75,
+ 1, 2, 194, 111, 75, 1, 2, 194, 36, 75, 1, 2, 215, 151, 45, 244, 140, 45,
+ 244, 139, 45, 244, 138, 45, 244, 137, 45, 244, 136, 45, 244, 135, 45,
+ 244, 134, 45, 244, 133, 45, 244, 132, 45, 244, 131, 45, 244, 130, 45,
+ 244, 129, 45, 244, 128, 45, 244, 127, 45, 244, 126, 45, 244, 125, 45,
+ 244, 124, 45, 244, 123, 45, 244, 122, 45, 244, 121, 45, 244, 120, 45,
+ 244, 119, 45, 244, 118, 45, 244, 117, 45, 244, 116, 45, 244, 115, 45,
+ 244, 114, 45, 244, 113, 45, 244, 112, 45, 244, 111, 45, 244, 110, 45,
+ 244, 109, 45, 244, 108, 45, 244, 107, 45, 244, 106, 45, 244, 105, 45,
+ 244, 104, 45, 244, 103, 45, 244, 102, 45, 244, 101, 45, 244, 100, 45,
+ 244, 99, 45, 244, 98, 45, 244, 97, 45, 244, 96, 45, 244, 95, 45, 244, 94,
+ 45, 244, 93, 45, 244, 92, 45, 244, 91, 45, 244, 90, 45, 244, 89, 45, 244,
+ 88, 45, 244, 87, 45, 244, 86, 45, 244, 85, 45, 244, 84, 45, 244, 83, 45,
+ 244, 82, 45, 244, 81, 45, 244, 80, 45, 244, 79, 45, 244, 78, 45, 244, 77,
+ 45, 244, 76, 45, 244, 75, 45, 244, 74, 45, 244, 73, 45, 244, 72, 45, 244,
+ 71, 45, 244, 70, 45, 244, 69, 45, 244, 68, 45, 244, 67, 45, 244, 66, 45,
+ 244, 65, 45, 244, 64, 45, 244, 63, 45, 244, 62, 45, 244, 61, 45, 244, 60,
+ 45, 244, 59, 45, 244, 58, 45, 244, 57, 45, 244, 56, 45, 244, 55, 45, 244,
+ 54, 45, 244, 53, 45, 244, 52, 45, 244, 51, 45, 244, 50, 45, 244, 49, 45,
+ 244, 48, 45, 244, 47, 45, 244, 46, 45, 244, 45, 45, 244, 44, 45, 244, 43,
+ 45, 244, 42, 45, 244, 41, 45, 244, 40, 45, 244, 39, 45, 244, 38, 45, 244,
+ 37, 45, 244, 36, 45, 244, 35, 45, 244, 34, 45, 244, 33, 45, 244, 32, 45,
+ 244, 31, 45, 244, 30, 45, 244, 29, 45, 244, 28, 45, 244, 27, 45, 244, 26,
+ 45, 244, 25, 45, 244, 24, 45, 244, 23, 45, 244, 22, 45, 244, 21, 45, 244,
+ 20, 45, 244, 19, 45, 244, 18, 45, 244, 17, 45, 244, 16, 45, 244, 15, 45,
+ 244, 14, 45, 244, 13, 45, 244, 12, 45, 244, 11, 45, 244, 10, 45, 244, 9,
+ 45, 244, 8, 45, 244, 7, 45, 244, 6, 45, 244, 5, 45, 244, 4, 45, 244, 3,
+ 45, 244, 2, 45, 244, 1, 45, 244, 0, 45, 243, 255, 45, 243, 254, 45, 243,
+ 253, 45, 243, 252, 45, 243, 251, 45, 243, 250, 45, 243, 249, 45, 243,
+ 248, 45, 243, 247, 45, 243, 246, 45, 243, 245, 45, 243, 244, 45, 243,
+ 243, 45, 243, 242, 45, 243, 241, 45, 243, 240, 45, 243, 239, 45, 243,
+ 238, 45, 243, 237, 45, 243, 236, 45, 243, 235, 45, 243, 234, 45, 243,
+ 233, 45, 243, 232, 45, 243, 231, 45, 243, 230, 45, 243, 229, 45, 243,
+ 228, 45, 243, 227, 45, 243, 226, 45, 243, 225, 45, 243, 224, 45, 243,
+ 223, 45, 243, 222, 45, 243, 221, 45, 243, 220, 45, 243, 219, 45, 243,
+ 218, 45, 243, 217, 45, 243, 216, 45, 243, 215, 45, 243, 214, 45, 243,
+ 213, 45, 243, 212, 45, 243, 211, 45, 243, 210, 45, 243, 209, 45, 243,
+ 208, 45, 243, 207, 45, 243, 206, 45, 243, 205, 45, 243, 204, 45, 243,
+ 203, 45, 243, 202, 45, 243, 201, 45, 243, 200, 45, 243, 199, 45, 243,
+ 198, 45, 243, 197, 45, 243, 196, 45, 243, 195, 45, 243, 194, 45, 243,
+ 193, 45, 243, 192, 45, 243, 191, 45, 243, 190, 45, 243, 189, 45, 243,
+ 188, 45, 243, 187, 45, 243, 186, 45, 243, 185, 45, 243, 184, 45, 243,
+ 183, 45, 243, 182, 45, 243, 181, 45, 243, 180, 45, 243, 179, 45, 243,
+ 178, 45, 243, 177, 45, 243, 176, 45, 243, 175, 45, 243, 174, 45, 243,
+ 173, 45, 243, 172, 45, 243, 171, 45, 243, 170, 45, 243, 169, 45, 243,
+ 168, 45, 243, 167, 45, 243, 166, 45, 243, 165, 45, 243, 164, 45, 243,
+ 163, 45, 243, 162, 45, 243, 161, 45, 243, 160, 45, 243, 159, 45, 243,
+ 158, 45, 243, 157, 45, 243, 156, 45, 243, 155, 45, 243, 154, 45, 243,
+ 153, 45, 243, 152, 45, 243, 151, 45, 243, 150, 45, 243, 149, 45, 243,
+ 148, 45, 243, 147, 45, 243, 146, 45, 243, 145, 45, 243, 144, 45, 243,
+ 143, 45, 243, 142, 45, 243, 141, 45, 243, 140, 45, 243, 139, 45, 243,
+ 138, 45, 243, 137, 45, 243, 136, 45, 243, 135, 45, 243, 134, 45, 243,
+ 133, 45, 243, 132, 45, 243, 131, 45, 243, 130, 45, 243, 129, 45, 243,
+ 128, 45, 243, 127, 45, 243, 126, 45, 243, 125, 45, 243, 124, 45, 243,
+ 123, 45, 243, 122, 45, 243, 121, 45, 243, 120, 45, 243, 119, 45, 243,
+ 118, 45, 243, 117, 45, 243, 116, 45, 243, 115, 45, 243, 114, 45, 243,
+ 113, 45, 243, 112, 45, 243, 111, 45, 243, 110, 45, 243, 109, 45, 243,
+ 108, 45, 243, 107, 45, 243, 106, 45, 243, 105, 45, 243, 104, 45, 243,
+ 103, 45, 243, 102, 45, 243, 101, 45, 243, 100, 45, 243, 99, 45, 243, 98,
+ 45, 243, 97, 45, 243, 96, 45, 243, 95, 45, 243, 94, 45, 243, 93, 45, 243,
+ 92, 45, 243, 91, 45, 243, 90, 45, 243, 89, 45, 243, 88, 45, 243, 87, 45,
+ 243, 86, 45, 243, 85, 45, 243, 84, 45, 243, 83, 45, 243, 82, 45, 243, 81,
+ 45, 243, 80, 45, 243, 79, 45, 243, 78, 45, 243, 77, 45, 243, 76, 45, 243,
+ 75, 45, 243, 74, 45, 243, 73, 45, 243, 72, 45, 243, 71, 45, 243, 70, 45,
+ 243, 69, 45, 243, 68, 45, 243, 67, 45, 243, 66, 45, 243, 65, 45, 243, 64,
+ 45, 243, 63, 45, 243, 62, 45, 243, 61, 45, 243, 60, 45, 243, 59, 45, 243,
+ 58, 45, 243, 57, 45, 243, 56, 45, 243, 55, 45, 243, 54, 45, 243, 53, 45,
+ 243, 52, 45, 243, 51, 45, 243, 50, 45, 243, 49, 45, 243, 48, 45, 243, 47,
+ 45, 243, 46, 45, 243, 45, 45, 243, 44, 45, 243, 43, 45, 243, 42, 45, 243,
+ 41, 45, 243, 40, 45, 243, 39, 45, 243, 38, 45, 243, 37, 45, 243, 36, 45,
+ 243, 35, 45, 243, 34, 45, 243, 33, 45, 243, 32, 45, 243, 31, 45, 243, 30,
+ 45, 243, 29, 45, 243, 28, 45, 243, 27, 45, 243, 26, 45, 243, 25, 45, 243,
+ 24, 45, 243, 23, 45, 243, 22, 45, 243, 21, 45, 243, 20, 45, 243, 19, 45,
+ 243, 18, 45, 243, 17, 45, 243, 16, 45, 243, 15, 45, 243, 14, 45, 243, 13,
+ 45, 243, 12, 45, 243, 11, 45, 243, 10, 45, 243, 9, 45, 243, 8, 45, 243,
+ 7, 45, 243, 6, 45, 243, 5, 45, 243, 4, 45, 243, 3, 45, 243, 2, 45, 243,
+ 1, 121, 1, 230, 124, 121, 1, 193, 223, 121, 1, 211, 93, 121, 1, 200, 228,
+ 121, 1, 233, 163, 121, 1, 222, 184, 121, 1, 165, 121, 1, 249, 226, 121,
+ 1, 238, 95, 121, 1, 196, 236, 121, 1, 232, 44, 121, 1, 150, 121, 1, 211,
+ 94, 215, 151, 121, 1, 238, 96, 206, 158, 121, 1, 233, 164, 215, 151, 121,
+ 1, 222, 185, 218, 236, 121, 1, 208, 112, 206, 158, 121, 1, 199, 242, 121,
+ 1, 202, 246, 237, 41, 121, 1, 237, 41, 121, 1, 221, 140, 121, 1, 202,
+ 246, 223, 65, 121, 1, 229, 132, 121, 1, 219, 223, 121, 1, 207, 157, 121,
+ 1, 218, 236, 121, 1, 215, 151, 121, 1, 223, 65, 121, 1, 206, 158, 121, 1,
+ 218, 237, 215, 151, 121, 1, 215, 152, 218, 236, 121, 1, 223, 66, 218,
+ 236, 121, 1, 206, 159, 223, 65, 121, 1, 218, 237, 4, 236, 114, 121, 1,
+ 215, 152, 4, 236, 114, 121, 1, 223, 66, 4, 236, 114, 121, 1, 223, 66, 4,
+ 236, 112, 223, 146, 26, 58, 121, 1, 206, 159, 4, 236, 114, 121, 1, 206,
+ 159, 4, 78, 63, 121, 1, 218, 237, 206, 158, 121, 1, 215, 152, 206, 158,
+ 121, 1, 223, 66, 206, 158, 121, 1, 206, 159, 206, 158, 121, 1, 218, 237,
+ 215, 152, 206, 158, 121, 1, 215, 152, 218, 237, 206, 158, 121, 1, 223,
+ 66, 218, 237, 206, 158, 121, 1, 206, 159, 223, 66, 206, 158, 121, 1, 223,
+ 66, 206, 159, 4, 236, 114, 121, 1, 223, 66, 215, 151, 121, 1, 223, 66,
+ 215, 152, 206, 158, 121, 1, 206, 159, 200, 228, 121, 1, 206, 159, 200,
+ 229, 150, 121, 1, 206, 159, 211, 93, 121, 1, 206, 159, 211, 94, 150, 121,
+ 1, 200, 229, 206, 158, 121, 1, 200, 229, 208, 112, 206, 158, 121, 1, 194,
+ 202, 121, 1, 194, 83, 121, 1, 194, 203, 150, 121, 1, 206, 159, 215, 151,
+ 121, 1, 206, 159, 218, 236, 121, 1, 222, 185, 208, 112, 206, 158, 121, 1,
+ 232, 45, 208, 112, 206, 158, 121, 1, 206, 159, 222, 184, 121, 1, 206,
+ 159, 222, 185, 150, 121, 1, 64, 121, 1, 202, 246, 211, 106, 121, 1, 212,
+ 26, 121, 1, 74, 121, 1, 250, 164, 121, 1, 70, 121, 1, 71, 121, 1, 223,
+ 251, 121, 1, 203, 195, 70, 121, 1, 197, 95, 121, 1, 234, 171, 121, 1,
+ 202, 246, 234, 157, 121, 1, 207, 29, 70, 121, 1, 202, 246, 234, 171, 121,
+ 1, 184, 70, 121, 1, 193, 69, 121, 1, 68, 121, 1, 233, 230, 121, 1, 193,
+ 171, 121, 1, 124, 215, 151, 121, 1, 184, 68, 121, 1, 207, 29, 68, 121, 1,
+ 197, 97, 121, 1, 202, 246, 68, 121, 1, 211, 191, 121, 1, 211, 106, 121,
+ 1, 211, 130, 121, 1, 194, 169, 121, 1, 194, 36, 121, 1, 194, 72, 121, 1,
+ 194, 98, 121, 1, 194, 2, 121, 1, 215, 49, 68, 121, 1, 215, 49, 74, 121,
+ 1, 215, 49, 70, 121, 1, 215, 49, 64, 121, 1, 210, 122, 250, 224, 121, 1,
+ 210, 122, 250, 241, 121, 1, 202, 246, 234, 88, 121, 1, 202, 246, 250,
+ 224, 121, 1, 202, 246, 211, 211, 121, 1, 118, 218, 236, 121, 251, 87, 46,
+ 229, 5, 205, 213, 121, 251, 87, 216, 162, 229, 5, 205, 213, 121, 251, 87,
+ 51, 229, 5, 205, 213, 121, 251, 87, 132, 84, 205, 213, 121, 251, 87, 216,
+ 162, 84, 205, 213, 121, 251, 87, 139, 84, 205, 213, 121, 251, 87, 250,
+ 14, 205, 213, 121, 251, 87, 250, 14, 220, 19, 205, 213, 121, 251, 87,
+ 250, 14, 200, 120, 121, 251, 87, 250, 14, 200, 147, 121, 251, 87, 250,
+ 14, 234, 253, 128, 121, 251, 87, 250, 14, 228, 97, 128, 121, 251, 87,
+ 250, 14, 200, 121, 128, 121, 251, 87, 139, 251, 129, 121, 251, 87, 139,
+ 199, 107, 251, 129, 121, 251, 87, 139, 230, 210, 121, 251, 87, 139, 184,
+ 230, 210, 121, 251, 87, 139, 236, 114, 121, 251, 87, 139, 242, 130, 121,
+ 251, 87, 139, 219, 175, 121, 251, 87, 139, 194, 124, 121, 251, 87, 139,
+ 196, 105, 121, 251, 87, 132, 251, 129, 121, 251, 87, 132, 199, 107, 251,
+ 129, 121, 251, 87, 132, 230, 210, 121, 251, 87, 132, 184, 230, 210, 121,
+ 251, 87, 132, 236, 114, 121, 251, 87, 132, 242, 130, 121, 251, 87, 132,
+ 219, 175, 121, 251, 87, 132, 194, 124, 121, 251, 87, 132, 196, 105, 121,
+ 251, 87, 132, 54, 121, 3, 185, 4, 238, 183, 121, 199, 200, 1, 205, 189,
+ 121, 55, 77, 121, 209, 38, 242, 198, 232, 71, 201, 238, 203, 182, 232,
+ 135, 1, 211, 113, 203, 182, 232, 135, 238, 249, 211, 113, 203, 182, 232,
+ 135, 142, 201, 253, 203, 182, 232, 135, 130, 201, 253, 69, 35, 16, 209,
+ 55, 69, 35, 16, 237, 187, 69, 35, 16, 210, 126, 69, 35, 16, 211, 102,
+ 234, 128, 69, 35, 16, 211, 102, 236, 210, 69, 35, 16, 196, 141, 234, 128,
+ 69, 35, 16, 196, 141, 236, 210, 69, 35, 16, 222, 78, 69, 35, 16, 200,
+ 245, 69, 35, 16, 210, 237, 69, 35, 16, 192, 220, 69, 35, 16, 192, 221,
+ 236, 210, 69, 35, 16, 221, 51, 69, 35, 16, 250, 159, 234, 128, 69, 35,
+ 16, 233, 198, 234, 128, 69, 35, 16, 200, 43, 69, 35, 16, 222, 26, 69, 35,
+ 16, 250, 148, 69, 35, 16, 250, 149, 236, 210, 69, 35, 16, 200, 252, 69,
+ 35, 16, 199, 179, 69, 35, 16, 211, 222, 250, 110, 69, 35, 16, 230, 237,
+ 250, 110, 69, 35, 16, 209, 54, 69, 35, 16, 246, 108, 69, 35, 16, 196,
+ 130, 69, 35, 16, 223, 87, 250, 110, 69, 35, 16, 222, 28, 250, 110, 69,
+ 35, 16, 222, 27, 250, 110, 69, 35, 16, 206, 3, 69, 35, 16, 210, 227, 69,
+ 35, 16, 202, 7, 250, 152, 69, 35, 16, 211, 101, 250, 110, 69, 35, 16,
+ 196, 140, 250, 110, 69, 35, 16, 250, 153, 250, 110, 69, 35, 16, 250, 146,
+ 69, 35, 16, 221, 130, 69, 35, 16, 207, 164, 69, 35, 16, 210, 49, 250,
+ 110, 69, 35, 16, 199, 80, 69, 35, 16, 250, 220, 69, 35, 16, 205, 192, 69,
+ 35, 16, 201, 0, 250, 110, 69, 35, 16, 201, 0, 216, 241, 202, 5, 69, 35,
+ 16, 211, 96, 250, 110, 69, 35, 16, 199, 218, 69, 35, 16, 220, 6, 69, 35,
+ 16, 235, 20, 69, 35, 16, 198, 187, 69, 35, 16, 200, 11, 69, 35, 16, 221,
+ 54, 69, 35, 16, 250, 159, 233, 198, 214, 192, 69, 35, 16, 232, 79, 250,
+ 110, 69, 35, 16, 223, 203, 69, 35, 16, 198, 156, 250, 110, 69, 35, 16,
+ 222, 81, 198, 155, 69, 35, 16, 210, 156, 69, 35, 16, 209, 59, 69, 35, 16,
+ 221, 89, 69, 35, 16, 242, 180, 250, 110, 69, 35, 16, 208, 27, 69, 35, 16,
+ 210, 240, 250, 110, 69, 35, 16, 210, 238, 250, 110, 69, 35, 16, 228, 47,
+ 69, 35, 16, 215, 60, 69, 35, 16, 210, 104, 69, 35, 16, 221, 90, 251, 3,
+ 69, 35, 16, 198, 156, 251, 3, 69, 35, 16, 201, 232, 69, 35, 16, 230, 196,
+ 69, 35, 16, 223, 87, 214, 192, 69, 35, 16, 211, 222, 214, 192, 69, 35,
+ 16, 211, 102, 214, 192, 69, 35, 16, 210, 103, 69, 35, 16, 221, 74, 69,
+ 35, 16, 210, 102, 69, 35, 16, 221, 53, 69, 35, 16, 210, 157, 214, 192,
+ 69, 35, 16, 222, 27, 214, 193, 250, 190, 69, 35, 16, 222, 28, 214, 193,
+ 250, 190, 69, 35, 16, 192, 218, 69, 35, 16, 250, 149, 214, 192, 69, 35,
+ 16, 250, 150, 200, 253, 214, 192, 69, 35, 16, 192, 219, 69, 35, 16, 221,
+ 52, 69, 35, 16, 234, 123, 69, 35, 16, 246, 109, 69, 35, 16, 216, 133,
+ 223, 86, 69, 35, 16, 196, 141, 214, 192, 69, 35, 16, 210, 49, 214, 192,
+ 69, 35, 16, 209, 60, 214, 192, 69, 35, 16, 211, 218, 69, 35, 16, 250,
+ 177, 69, 35, 16, 218, 247, 69, 35, 16, 210, 238, 214, 192, 69, 35, 16,
+ 210, 240, 214, 192, 69, 35, 16, 233, 236, 210, 239, 69, 35, 16, 220, 206,
+ 69, 35, 16, 250, 178, 69, 35, 16, 198, 156, 214, 192, 69, 35, 16, 234,
+ 126, 69, 35, 16, 201, 0, 214, 192, 69, 35, 16, 200, 246, 69, 35, 16, 242,
+ 180, 214, 192, 69, 35, 16, 234, 38, 69, 35, 16, 205, 193, 214, 192, 69,
+ 35, 16, 193, 188, 221, 130, 69, 35, 16, 198, 153, 69, 35, 16, 209, 61,
+ 69, 35, 16, 198, 157, 69, 35, 16, 198, 154, 69, 35, 16, 209, 58, 69, 35,
+ 16, 198, 152, 69, 35, 16, 209, 57, 69, 35, 16, 230, 236, 69, 35, 16, 250,
+ 102, 69, 35, 16, 233, 236, 250, 102, 69, 35, 16, 211, 96, 214, 192, 69,
+ 35, 16, 199, 217, 233, 249, 69, 35, 16, 199, 217, 233, 197, 69, 35, 16,
+ 199, 219, 250, 154, 69, 35, 16, 199, 211, 222, 136, 250, 145, 69, 35, 16,
+ 222, 80, 69, 35, 16, 234, 75, 69, 35, 16, 193, 27, 222, 77, 69, 35, 16,
+ 193, 27, 250, 190, 69, 35, 16, 202, 6, 69, 35, 16, 221, 131, 250, 190,
+ 69, 35, 16, 236, 211, 250, 110, 69, 35, 16, 221, 55, 250, 110, 69, 35,
+ 16, 221, 55, 251, 3, 69, 35, 16, 221, 55, 214, 192, 69, 35, 16, 250, 153,
+ 214, 192, 69, 35, 16, 250, 155, 69, 35, 16, 236, 210, 69, 35, 16, 198,
+ 168, 69, 35, 16, 200, 1, 69, 35, 16, 221, 78, 69, 35, 16, 220, 11, 234,
+ 68, 242, 170, 69, 35, 16, 220, 11, 235, 21, 242, 171, 69, 35, 16, 220,
+ 11, 198, 171, 242, 171, 69, 35, 16, 220, 11, 200, 13, 242, 171, 69, 35,
+ 16, 220, 11, 223, 198, 242, 170, 69, 35, 16, 230, 237, 214, 193, 250,
+ 190, 69, 35, 16, 230, 237, 210, 228, 250, 98, 69, 35, 16, 230, 237, 210,
+ 228, 237, 45, 69, 35, 16, 236, 235, 69, 35, 16, 236, 236, 210, 228, 250,
+ 99, 222, 77, 69, 35, 16, 236, 236, 210, 228, 250, 99, 250, 190, 69, 35,
+ 16, 236, 236, 210, 228, 237, 45, 69, 35, 16, 198, 176, 69, 35, 16, 250,
+ 103, 69, 35, 16, 223, 205, 69, 35, 16, 237, 2, 69, 35, 16, 251, 74, 209,
+ 181, 250, 104, 69, 35, 16, 251, 74, 250, 101, 69, 35, 16, 251, 74, 250,
+ 104, 69, 35, 16, 251, 74, 216, 235, 69, 35, 16, 251, 74, 216, 246, 69,
+ 35, 16, 251, 74, 230, 238, 69, 35, 16, 251, 74, 230, 235, 69, 35, 16,
+ 251, 74, 209, 181, 230, 238, 69, 35, 16, 217, 116, 209, 67, 228, 45, 69,
+ 35, 16, 217, 116, 251, 5, 209, 67, 228, 45, 69, 35, 16, 217, 116, 237,
+ 44, 228, 45, 69, 35, 16, 217, 116, 251, 5, 237, 44, 228, 45, 69, 35, 16,
+ 217, 116, 198, 163, 228, 45, 69, 35, 16, 217, 116, 198, 177, 69, 35, 16,
+ 217, 116, 200, 6, 228, 45, 69, 35, 16, 217, 116, 200, 6, 220, 15, 228,
+ 45, 69, 35, 16, 217, 116, 220, 15, 228, 45, 69, 35, 16, 217, 116, 209,
+ 229, 228, 45, 69, 35, 16, 223, 94, 200, 36, 228, 46, 69, 35, 16, 250,
+ 150, 200, 36, 228, 46, 69, 35, 16, 233, 67, 200, 3, 69, 35, 16, 233, 67,
+ 216, 46, 69, 35, 16, 233, 67, 236, 241, 69, 35, 16, 217, 116, 196, 134,
+ 228, 45, 69, 35, 16, 217, 116, 209, 66, 228, 45, 69, 35, 16, 217, 116,
+ 209, 229, 200, 6, 228, 45, 69, 35, 16, 230, 232, 215, 152, 250, 154, 69,
+ 35, 16, 230, 232, 215, 152, 236, 209, 69, 35, 16, 234, 86, 222, 136, 232,
+ 79, 195, 231, 69, 35, 16, 223, 204, 69, 35, 16, 223, 202, 69, 35, 16,
+ 232, 79, 250, 111, 237, 43, 228, 44, 69, 35, 16, 232, 79, 237, 0, 166,
+ 69, 35, 16, 232, 79, 237, 0, 215, 60, 69, 35, 16, 232, 79, 215, 54, 228,
+ 45, 69, 35, 16, 232, 79, 237, 0, 237, 16, 69, 35, 16, 232, 79, 203, 12,
+ 236, 255, 237, 16, 69, 35, 16, 232, 79, 237, 0, 222, 57, 69, 35, 16, 232,
+ 79, 237, 0, 192, 8, 69, 35, 16, 232, 79, 237, 0, 214, 61, 222, 77, 69,
+ 35, 16, 232, 79, 237, 0, 214, 61, 250, 190, 69, 35, 16, 232, 79, 217,
+ 167, 242, 172, 236, 241, 69, 35, 16, 232, 79, 217, 167, 242, 172, 216,
+ 46, 69, 35, 16, 233, 12, 203, 12, 242, 172, 196, 133, 69, 35, 16, 232,
+ 79, 203, 12, 242, 172, 201, 1, 69, 35, 16, 232, 79, 214, 195, 69, 35, 16,
+ 242, 173, 191, 231, 69, 35, 16, 242, 173, 221, 129, 69, 35, 16, 242, 173,
+ 202, 151, 69, 35, 16, 232, 79, 228, 97, 193, 26, 200, 7, 69, 35, 16, 232,
+ 79, 234, 87, 250, 179, 69, 35, 16, 193, 26, 198, 164, 69, 35, 16, 236,
+ 249, 198, 164, 69, 35, 16, 236, 249, 200, 7, 69, 35, 16, 236, 249, 250,
+ 156, 235, 21, 236, 138, 69, 35, 16, 236, 249, 216, 44, 200, 12, 236, 138,
+ 69, 35, 16, 236, 249, 236, 232, 233, 210, 236, 138, 69, 35, 16, 236, 249,
+ 198, 174, 211, 228, 236, 138, 69, 35, 16, 193, 26, 250, 156, 235, 21,
+ 236, 138, 69, 35, 16, 193, 26, 216, 44, 200, 12, 236, 138, 69, 35, 16,
+ 193, 26, 236, 232, 233, 210, 236, 138, 69, 35, 16, 193, 26, 198, 174,
+ 211, 228, 236, 138, 69, 35, 16, 231, 140, 236, 248, 69, 35, 16, 231, 140,
+ 193, 25, 69, 35, 16, 237, 1, 250, 156, 216, 134, 69, 35, 16, 237, 1, 250,
+ 156, 217, 20, 69, 35, 16, 237, 1, 236, 210, 69, 35, 16, 237, 1, 199, 209,
+ 69, 35, 16, 203, 85, 199, 209, 69, 35, 16, 203, 85, 199, 210, 236, 193,
+ 69, 35, 16, 203, 85, 199, 210, 198, 165, 69, 35, 16, 203, 85, 199, 210,
+ 199, 255, 69, 35, 16, 203, 85, 250, 70, 69, 35, 16, 203, 85, 250, 71,
+ 236, 193, 69, 35, 16, 203, 85, 250, 71, 198, 165, 69, 35, 16, 203, 85,
+ 250, 71, 199, 255, 69, 35, 16, 236, 233, 231, 121, 69, 35, 16, 236, 240,
+ 211, 130, 69, 35, 16, 201, 248, 69, 35, 16, 250, 95, 166, 69, 35, 16,
+ 250, 95, 195, 231, 69, 35, 16, 250, 95, 231, 233, 69, 35, 16, 250, 95,
+ 237, 16, 69, 35, 16, 250, 95, 222, 57, 69, 35, 16, 250, 95, 192, 8, 69,
+ 35, 16, 250, 95, 214, 60, 69, 35, 16, 222, 27, 214, 193, 216, 245, 69,
+ 35, 16, 222, 28, 214, 193, 216, 245, 69, 35, 16, 222, 27, 214, 193, 222,
+ 77, 69, 35, 16, 222, 28, 214, 193, 222, 77, 69, 35, 16, 221, 131, 222,
+ 77, 69, 35, 16, 230, 237, 214, 193, 222, 77, 35, 16, 203, 74, 248, 189,
+ 35, 16, 55, 248, 189, 35, 16, 52, 248, 189, 35, 16, 207, 169, 52, 248,
+ 189, 35, 16, 237, 184, 248, 189, 35, 16, 203, 195, 248, 189, 35, 16, 46,
+ 207, 199, 57, 35, 16, 51, 207, 199, 57, 35, 16, 207, 199, 236, 111, 35,
+ 16, 237, 228, 205, 196, 35, 16, 238, 1, 246, 223, 35, 16, 205, 196, 35,
+ 16, 242, 56, 35, 16, 207, 197, 232, 255, 35, 16, 207, 197, 232, 254, 35,
+ 16, 207, 197, 232, 253, 35, 16, 233, 22, 35, 16, 233, 23, 63, 35, 16,
+ 247, 152, 77, 35, 16, 247, 9, 35, 16, 247, 166, 35, 16, 186, 35, 16, 211,
+ 206, 202, 28, 35, 16, 197, 219, 202, 28, 35, 16, 199, 155, 202, 28, 35,
+ 16, 232, 118, 202, 28, 35, 16, 232, 213, 202, 28, 35, 16, 203, 40, 202,
+ 28, 35, 16, 203, 38, 232, 96, 35, 16, 232, 116, 232, 96, 35, 16, 232, 45,
+ 242, 99, 35, 16, 232, 45, 242, 100, 211, 134, 250, 250, 35, 16, 232, 45,
+ 242, 100, 211, 134, 248, 172, 35, 16, 247, 53, 242, 99, 35, 16, 233, 164,
+ 242, 99, 35, 16, 233, 164, 242, 100, 211, 134, 250, 250, 35, 16, 233,
+ 164, 242, 100, 211, 134, 248, 172, 35, 16, 235, 68, 242, 98, 35, 16, 235,
+ 68, 242, 97, 35, 16, 215, 216, 217, 44, 207, 180, 35, 16, 55, 204, 25,
+ 35, 16, 55, 232, 195, 35, 16, 232, 196, 197, 41, 35, 16, 232, 196, 235,
+ 96, 35, 16, 215, 43, 197, 41, 35, 16, 215, 43, 235, 96, 35, 16, 204, 26,
+ 197, 41, 35, 16, 204, 26, 235, 96, 35, 16, 208, 168, 158, 204, 25, 35,
+ 16, 208, 168, 158, 232, 195, 35, 16, 242, 35, 199, 84, 35, 16, 238, 122,
+ 199, 84, 35, 16, 211, 134, 250, 250, 35, 16, 211, 134, 248, 172, 35, 16,
+ 208, 149, 250, 250, 35, 16, 208, 149, 248, 172, 35, 16, 215, 219, 207,
+ 180, 35, 16, 194, 73, 207, 180, 35, 16, 138, 207, 180, 35, 16, 208, 168,
+ 207, 180, 35, 16, 234, 144, 207, 180, 35, 16, 203, 34, 207, 180, 35, 16,
+ 199, 181, 207, 180, 35, 16, 203, 24, 207, 180, 35, 16, 90, 228, 163, 197,
+ 237, 207, 180, 35, 16, 193, 224, 213, 101, 35, 16, 102, 213, 101, 35, 16,
+ 242, 131, 193, 224, 213, 101, 35, 16, 50, 213, 102, 194, 75, 35, 16, 50,
+ 213, 102, 247, 248, 35, 16, 198, 186, 213, 102, 130, 194, 75, 35, 16,
+ 198, 186, 213, 102, 130, 247, 248, 35, 16, 198, 186, 213, 102, 46, 194,
+ 75, 35, 16, 198, 186, 213, 102, 46, 247, 248, 35, 16, 198, 186, 213, 102,
+ 51, 194, 75, 35, 16, 198, 186, 213, 102, 51, 247, 248, 35, 16, 198, 186,
+ 213, 102, 142, 194, 75, 35, 16, 198, 186, 213, 102, 142, 247, 248, 35,
+ 16, 198, 186, 213, 102, 130, 51, 194, 75, 35, 16, 198, 186, 213, 102,
+ 130, 51, 247, 248, 35, 16, 216, 30, 213, 102, 194, 75, 35, 16, 216, 30,
+ 213, 102, 247, 248, 35, 16, 198, 183, 213, 102, 142, 194, 75, 35, 16,
+ 198, 183, 213, 102, 142, 247, 248, 35, 16, 210, 231, 213, 101, 35, 16,
+ 195, 245, 213, 101, 35, 16, 213, 102, 247, 248, 35, 16, 212, 239, 213,
+ 101, 35, 16, 242, 68, 213, 102, 194, 75, 35, 16, 242, 68, 213, 102, 247,
+ 248, 35, 16, 247, 150, 35, 16, 194, 73, 213, 105, 35, 16, 138, 213, 105,
+ 35, 16, 208, 168, 213, 105, 35, 16, 234, 144, 213, 105, 35, 16, 203, 34,
+ 213, 105, 35, 16, 199, 181, 213, 105, 35, 16, 203, 24, 213, 105, 35, 16,
+ 90, 228, 163, 197, 237, 213, 105, 35, 16, 38, 201, 255, 35, 16, 38, 202,
+ 113, 201, 255, 35, 16, 38, 198, 194, 35, 16, 38, 198, 193, 35, 16, 38,
+ 198, 192, 35, 16, 232, 238, 198, 194, 35, 16, 232, 238, 198, 193, 35, 16,
+ 232, 238, 198, 192, 35, 16, 38, 250, 5, 236, 114, 35, 16, 38, 232, 205,
+ 35, 16, 38, 232, 204, 35, 16, 38, 232, 203, 35, 16, 38, 232, 202, 35, 16,
+ 38, 232, 201, 35, 16, 248, 100, 248, 120, 35, 16, 234, 80, 248, 120, 35,
+ 16, 248, 100, 199, 113, 35, 16, 234, 80, 199, 113, 35, 16, 248, 100, 202,
+ 237, 35, 16, 234, 80, 202, 237, 35, 16, 248, 100, 210, 58, 35, 16, 234,
+ 80, 210, 58, 35, 16, 38, 251, 143, 35, 16, 38, 202, 32, 35, 16, 38, 200,
+ 18, 35, 16, 38, 202, 33, 35, 16, 38, 217, 131, 35, 16, 38, 217, 130, 35,
+ 16, 38, 251, 142, 35, 16, 38, 219, 54, 35, 16, 250, 83, 197, 41, 35, 16,
+ 250, 83, 235, 96, 35, 16, 38, 236, 130, 35, 16, 38, 207, 77, 35, 16, 38,
+ 232, 184, 35, 16, 38, 202, 233, 35, 16, 38, 248, 78, 35, 16, 38, 55, 199,
+ 0, 35, 16, 38, 198, 170, 199, 0, 35, 16, 207, 83, 35, 16, 201, 166, 35,
+ 16, 192, 155, 35, 16, 210, 50, 35, 16, 216, 226, 35, 16, 232, 130, 35,
+ 16, 238, 195, 35, 16, 237, 102, 35, 16, 230, 227, 213, 106, 203, 4, 35,
+ 16, 230, 227, 213, 106, 213, 143, 203, 4, 35, 16, 198, 224, 35, 16, 198,
+ 9, 35, 16, 223, 121, 198, 9, 35, 16, 198, 10, 203, 4, 35, 16, 198, 10,
+ 197, 41, 35, 16, 211, 151, 201, 207, 35, 16, 211, 151, 201, 204, 35, 16,
+ 211, 151, 201, 203, 35, 16, 211, 151, 201, 202, 35, 16, 211, 151, 201,
+ 201, 35, 16, 211, 151, 201, 200, 35, 16, 211, 151, 201, 199, 35, 16, 211,
+ 151, 201, 198, 35, 16, 211, 151, 201, 197, 35, 16, 211, 151, 201, 206,
+ 35, 16, 211, 151, 201, 205, 35, 16, 230, 10, 35, 16, 214, 206, 35, 16,
+ 234, 80, 80, 201, 244, 35, 16, 237, 95, 203, 4, 35, 16, 38, 142, 247,
+ 180, 35, 16, 38, 130, 247, 180, 35, 16, 38, 230, 23, 35, 16, 38, 202,
+ 223, 209, 235, 35, 16, 210, 173, 77, 35, 16, 210, 173, 130, 77, 35, 16,
+ 138, 210, 173, 77, 35, 16, 231, 8, 197, 41, 35, 16, 231, 8, 235, 96, 35,
+ 16, 4, 232, 237, 35, 16, 237, 211, 35, 16, 237, 212, 251, 8, 35, 16, 217,
+ 94, 35, 16, 219, 75, 35, 16, 247, 147, 35, 16, 204, 184, 194, 75, 35, 16,
+ 204, 184, 247, 248, 35, 16, 216, 116, 35, 16, 216, 117, 247, 248, 35, 16,
+ 204, 178, 194, 75, 35, 16, 204, 178, 247, 248, 35, 16, 232, 62, 194, 75,
+ 35, 16, 232, 62, 247, 248, 35, 16, 219, 76, 210, 131, 207, 180, 35, 16,
+ 219, 76, 223, 195, 207, 180, 35, 16, 247, 148, 207, 180, 35, 16, 204,
+ 184, 207, 180, 35, 16, 216, 117, 207, 180, 35, 16, 204, 178, 207, 180,
+ 35, 16, 200, 32, 210, 129, 238, 153, 209, 77, 210, 130, 35, 16, 200, 32,
+ 210, 129, 238, 153, 209, 77, 223, 194, 35, 16, 200, 32, 210, 129, 238,
+ 153, 209, 77, 210, 131, 236, 220, 35, 16, 200, 32, 223, 193, 238, 153,
+ 209, 77, 210, 130, 35, 16, 200, 32, 223, 193, 238, 153, 209, 77, 223,
+ 194, 35, 16, 200, 32, 223, 193, 238, 153, 209, 77, 223, 195, 236, 220,
+ 35, 16, 200, 32, 223, 193, 238, 153, 209, 77, 223, 195, 236, 219, 35, 16,
+ 200, 32, 223, 193, 238, 153, 209, 77, 223, 195, 236, 218, 35, 16, 238,
+ 186, 35, 16, 230, 199, 247, 53, 242, 99, 35, 16, 230, 199, 233, 164, 242,
+ 99, 35, 16, 50, 249, 226, 35, 16, 196, 10, 35, 16, 209, 195, 35, 16, 242,
+ 89, 35, 16, 205, 249, 35, 16, 242, 94, 35, 16, 198, 242, 35, 16, 209,
+ 163, 35, 16, 209, 164, 232, 187, 35, 16, 205, 250, 232, 187, 35, 16, 198,
+ 243, 207, 177, 35, 16, 210, 112, 201, 156, 35, 16, 221, 186, 247, 53,
+ 242, 99, 35, 16, 221, 186, 234, 80, 80, 210, 42, 35, 16, 221, 186, 52,
+ 213, 105, 35, 16, 221, 186, 207, 249, 77, 35, 16, 221, 186, 194, 73, 213,
+ 105, 35, 16, 221, 186, 138, 213, 105, 35, 16, 221, 186, 208, 168, 213,
+ 106, 202, 0, 235, 96, 35, 16, 221, 186, 208, 168, 213, 106, 202, 0, 197,
+ 41, 35, 16, 221, 186, 234, 144, 213, 106, 202, 0, 235, 96, 35, 16, 221,
+ 186, 234, 144, 213, 106, 202, 0, 197, 41, 35, 16, 221, 186, 232, 196, 57,
+ 33, 195, 251, 213, 109, 201, 52, 33, 195, 251, 213, 109, 201, 41, 33,
+ 195, 251, 213, 109, 201, 31, 33, 195, 251, 213, 109, 201, 24, 33, 195,
+ 251, 213, 109, 201, 16, 33, 195, 251, 213, 109, 201, 10, 33, 195, 251,
+ 213, 109, 201, 9, 33, 195, 251, 213, 109, 201, 8, 33, 195, 251, 213, 109,
+ 201, 7, 33, 195, 251, 213, 109, 201, 51, 33, 195, 251, 213, 109, 201, 50,
+ 33, 195, 251, 213, 109, 201, 49, 33, 195, 251, 213, 109, 201, 48, 33,
+ 195, 251, 213, 109, 201, 47, 33, 195, 251, 213, 109, 201, 46, 33, 195,
+ 251, 213, 109, 201, 45, 33, 195, 251, 213, 109, 201, 44, 33, 195, 251,
+ 213, 109, 201, 43, 33, 195, 251, 213, 109, 201, 42, 33, 195, 251, 213,
+ 109, 201, 40, 33, 195, 251, 213, 109, 201, 39, 33, 195, 251, 213, 109,
+ 201, 38, 33, 195, 251, 213, 109, 201, 37, 33, 195, 251, 213, 109, 201,
+ 36, 33, 195, 251, 213, 109, 201, 15, 33, 195, 251, 213, 109, 201, 14, 33,
+ 195, 251, 213, 109, 201, 13, 33, 195, 251, 213, 109, 201, 12, 33, 195,
+ 251, 213, 109, 201, 11, 33, 223, 144, 213, 109, 201, 52, 33, 223, 144,
+ 213, 109, 201, 41, 33, 223, 144, 213, 109, 201, 24, 33, 223, 144, 213,
+ 109, 201, 16, 33, 223, 144, 213, 109, 201, 9, 33, 223, 144, 213, 109,
+ 201, 8, 33, 223, 144, 213, 109, 201, 50, 33, 223, 144, 213, 109, 201, 49,
+ 33, 223, 144, 213, 109, 201, 48, 33, 223, 144, 213, 109, 201, 47, 33,
+ 223, 144, 213, 109, 201, 44, 33, 223, 144, 213, 109, 201, 43, 33, 223,
+ 144, 213, 109, 201, 42, 33, 223, 144, 213, 109, 201, 37, 33, 223, 144,
+ 213, 109, 201, 36, 33, 223, 144, 213, 109, 201, 35, 33, 223, 144, 213,
+ 109, 201, 34, 33, 223, 144, 213, 109, 201, 33, 33, 223, 144, 213, 109,
+ 201, 32, 33, 223, 144, 213, 109, 201, 30, 33, 223, 144, 213, 109, 201,
+ 29, 33, 223, 144, 213, 109, 201, 28, 33, 223, 144, 213, 109, 201, 27, 33,
+ 223, 144, 213, 109, 201, 26, 33, 223, 144, 213, 109, 201, 25, 33, 223,
+ 144, 213, 109, 201, 23, 33, 223, 144, 213, 109, 201, 22, 33, 223, 144,
+ 213, 109, 201, 21, 33, 223, 144, 213, 109, 201, 20, 33, 223, 144, 213,
+ 109, 201, 19, 33, 223, 144, 213, 109, 201, 18, 33, 223, 144, 213, 109,
+ 201, 17, 33, 223, 144, 213, 109, 201, 15, 33, 223, 144, 213, 109, 201,
+ 14, 33, 223, 144, 213, 109, 201, 13, 33, 223, 144, 213, 109, 201, 12, 33,
+ 223, 144, 213, 109, 201, 11, 38, 33, 35, 198, 166, 38, 33, 35, 200, 0,
+ 38, 33, 35, 210, 142, 33, 35, 220, 10, 217, 91, 212, 234, 192, 76, 217,
+ 91, 212, 234, 101, 217, 91, 212, 234, 104, 217, 91, 212, 234, 133, 217,
+ 91, 212, 234, 134, 217, 91, 212, 234, 151, 217, 91, 212, 234, 170, 217,
+ 91, 212, 234, 179, 217, 91, 212, 234, 174, 217, 91, 212, 234, 182, 217,
+ 91, 212, 234, 200, 30, 217, 91, 212, 234, 234, 111, 217, 91, 212, 234,
+ 197, 244, 217, 91, 212, 234, 199, 186, 217, 91, 212, 234, 232, 113, 217,
+ 91, 212, 234, 233, 7, 217, 91, 212, 234, 203, 35, 217, 91, 212, 234, 204,
+ 143, 217, 91, 212, 234, 234, 145, 217, 91, 212, 234, 214, 13, 216, 45,
+ 39, 234, 189, 236, 234, 39, 229, 228, 234, 189, 236, 234, 39, 228, 167,
+ 234, 189, 236, 234, 39, 234, 188, 229, 229, 236, 234, 39, 234, 188, 228,
+ 166, 236, 234, 39, 234, 189, 200, 2, 39, 246, 137, 200, 2, 39, 232, 71,
+ 242, 130, 200, 2, 39, 216, 108, 200, 2, 39, 248, 184, 200, 2, 39, 222,
+ 45, 202, 236, 200, 2, 39, 238, 244, 200, 2, 39, 250, 56, 200, 2, 39, 211,
+ 169, 200, 2, 39, 247, 158, 211, 125, 200, 2, 39, 237, 97, 211, 164, 236,
+ 185, 200, 2, 39, 236, 182, 200, 2, 39, 192, 226, 200, 2, 39, 223, 181,
+ 200, 2, 39, 210, 152, 200, 2, 39, 208, 2, 200, 2, 39, 239, 0, 200, 2, 39,
+ 229, 26, 248, 252, 200, 2, 39, 194, 155, 200, 2, 39, 232, 159, 200, 2,
+ 39, 251, 111, 200, 2, 39, 207, 212, 200, 2, 39, 207, 184, 200, 2, 39,
+ 234, 187, 200, 2, 39, 222, 217, 200, 2, 39, 238, 251, 200, 2, 39, 234,
+ 78, 200, 2, 39, 235, 33, 200, 2, 39, 246, 104, 200, 2, 39, 237, 107, 200,
+ 2, 39, 28, 207, 183, 200, 2, 39, 211, 68, 200, 2, 39, 220, 14, 200, 2,
+ 39, 242, 82, 200, 2, 39, 221, 174, 200, 2, 39, 231, 182, 200, 2, 39, 201,
+ 219, 200, 2, 39, 209, 26, 200, 2, 39, 232, 70, 200, 2, 39, 207, 185, 200,
+ 2, 39, 220, 55, 211, 164, 216, 81, 200, 2, 39, 207, 181, 200, 2, 39, 230,
+ 247, 115, 217, 24, 200, 2, 39, 234, 81, 200, 2, 39, 201, 233, 200, 2, 39,
+ 230, 202, 200, 2, 39, 234, 71, 200, 2, 39, 210, 200, 200, 2, 39, 207, 70,
+ 200, 2, 39, 232, 185, 200, 2, 39, 196, 132, 211, 164, 194, 133, 200, 2,
+ 39, 239, 5, 200, 2, 39, 217, 43, 200, 2, 39, 233, 237, 200, 2, 39, 197,
+ 52, 200, 2, 39, 236, 221, 200, 2, 39, 242, 84, 216, 4, 200, 2, 39, 230,
+ 178, 200, 2, 39, 231, 183, 223, 190, 200, 2, 39, 217, 103, 200, 2, 39,
+ 251, 137, 200, 2, 39, 234, 97, 200, 2, 39, 235, 100, 200, 2, 39, 194,
+ 131, 200, 2, 39, 203, 69, 200, 2, 39, 223, 154, 200, 2, 39, 237, 64, 200,
+ 2, 39, 237, 189, 200, 2, 39, 236, 217, 200, 2, 39, 233, 201, 200, 2, 39,
+ 204, 139, 200, 2, 39, 201, 237, 200, 2, 39, 230, 25, 200, 2, 39, 242, 30,
+ 200, 2, 39, 242, 79, 200, 2, 39, 233, 76, 200, 2, 39, 251, 75, 200, 2,
+ 39, 242, 29, 200, 2, 39, 211, 212, 199, 225, 196, 108, 200, 2, 39, 236,
+ 243, 200, 2, 39, 220, 172, 200, 2, 39, 232, 122, 238, 210, 207, 38, 197,
+ 55, 17, 101, 238, 210, 207, 38, 197, 55, 17, 104, 238, 210, 207, 38, 197,
+ 55, 17, 133, 238, 210, 207, 38, 197, 55, 17, 134, 238, 210, 207, 38, 197,
+ 55, 17, 151, 238, 210, 207, 38, 197, 55, 17, 170, 238, 210, 207, 38, 197,
+ 55, 17, 179, 238, 210, 207, 38, 197, 55, 17, 174, 238, 210, 207, 38, 197,
+ 55, 17, 182, 238, 210, 207, 38, 200, 26, 17, 101, 238, 210, 207, 38, 200,
+ 26, 17, 104, 238, 210, 207, 38, 200, 26, 17, 133, 238, 210, 207, 38, 200,
+ 26, 17, 134, 238, 210, 207, 38, 200, 26, 17, 151, 238, 210, 207, 38, 200,
+ 26, 17, 170, 238, 210, 207, 38, 200, 26, 17, 179, 238, 210, 207, 38, 200,
+ 26, 17, 174, 238, 210, 207, 38, 200, 26, 17, 182, 149, 200, 130, 122,
+ 101, 149, 200, 130, 122, 104, 149, 200, 130, 122, 133, 149, 200, 130,
+ 122, 134, 149, 200, 130, 122, 151, 200, 130, 122, 101, 200, 130, 122,
+ 151, 13, 28, 6, 64, 13, 28, 6, 249, 226, 13, 28, 6, 247, 52, 13, 28, 6,
+ 238, 95, 13, 28, 6, 71, 13, 28, 6, 233, 163, 13, 28, 6, 232, 44, 13, 28,
+ 6, 230, 124, 13, 28, 6, 70, 13, 28, 6, 223, 65, 13, 28, 6, 222, 184, 13,
+ 28, 6, 165, 13, 28, 6, 218, 236, 13, 28, 6, 215, 151, 13, 28, 6, 74, 13,
+ 28, 6, 211, 93, 13, 28, 6, 208, 247, 13, 28, 6, 150, 13, 28, 6, 206, 158,
+ 13, 28, 6, 200, 228, 13, 28, 6, 68, 13, 28, 6, 196, 236, 13, 28, 6, 194,
+ 202, 13, 28, 6, 193, 223, 13, 28, 6, 193, 148, 13, 28, 6, 192, 155, 13,
+ 28, 2, 64, 13, 28, 2, 249, 226, 13, 28, 2, 247, 52, 13, 28, 2, 238, 95,
+ 13, 28, 2, 71, 13, 28, 2, 233, 163, 13, 28, 2, 232, 44, 13, 28, 2, 230,
+ 124, 13, 28, 2, 70, 13, 28, 2, 223, 65, 13, 28, 2, 222, 184, 13, 28, 2,
+ 165, 13, 28, 2, 218, 236, 13, 28, 2, 215, 151, 13, 28, 2, 74, 13, 28, 2,
+ 211, 93, 13, 28, 2, 208, 247, 13, 28, 2, 150, 13, 28, 2, 206, 158, 13,
+ 28, 2, 200, 228, 13, 28, 2, 68, 13, 28, 2, 196, 236, 13, 28, 2, 194, 202,
+ 13, 28, 2, 193, 223, 13, 28, 2, 193, 148, 13, 28, 2, 192, 155, 13, 43, 6,
+ 64, 13, 43, 6, 249, 226, 13, 43, 6, 247, 52, 13, 43, 6, 238, 95, 13, 43,
+ 6, 71, 13, 43, 6, 233, 163, 13, 43, 6, 232, 44, 13, 43, 6, 230, 124, 13,
+ 43, 6, 70, 13, 43, 6, 223, 65, 13, 43, 6, 222, 184, 13, 43, 6, 165, 13,
+ 43, 6, 218, 236, 13, 43, 6, 215, 151, 13, 43, 6, 74, 13, 43, 6, 211, 93,
+ 13, 43, 6, 208, 247, 13, 43, 6, 150, 13, 43, 6, 206, 158, 13, 43, 6, 200,
+ 228, 13, 43, 6, 68, 13, 43, 6, 196, 236, 13, 43, 6, 194, 202, 13, 43, 6,
+ 193, 223, 13, 43, 6, 193, 148, 13, 43, 6, 192, 155, 13, 43, 2, 64, 13,
+ 43, 2, 249, 226, 13, 43, 2, 247, 52, 13, 43, 2, 238, 95, 13, 43, 2, 71,
+ 13, 43, 2, 233, 163, 13, 43, 2, 232, 44, 13, 43, 2, 70, 13, 43, 2, 223,
+ 65, 13, 43, 2, 222, 184, 13, 43, 2, 165, 13, 43, 2, 218, 236, 13, 43, 2,
+ 215, 151, 13, 43, 2, 74, 13, 43, 2, 211, 93, 13, 43, 2, 208, 247, 13, 43,
+ 2, 150, 13, 43, 2, 206, 158, 13, 43, 2, 200, 228, 13, 43, 2, 68, 13, 43,
+ 2, 196, 236, 13, 43, 2, 194, 202, 13, 43, 2, 193, 223, 13, 43, 2, 193,
+ 148, 13, 43, 2, 192, 155, 13, 28, 43, 6, 64, 13, 28, 43, 6, 249, 226, 13,
+ 28, 43, 6, 247, 52, 13, 28, 43, 6, 238, 95, 13, 28, 43, 6, 71, 13, 28,
+ 43, 6, 233, 163, 13, 28, 43, 6, 232, 44, 13, 28, 43, 6, 230, 124, 13, 28,
+ 43, 6, 70, 13, 28, 43, 6, 223, 65, 13, 28, 43, 6, 222, 184, 13, 28, 43,
+ 6, 165, 13, 28, 43, 6, 218, 236, 13, 28, 43, 6, 215, 151, 13, 28, 43, 6,
+ 74, 13, 28, 43, 6, 211, 93, 13, 28, 43, 6, 208, 247, 13, 28, 43, 6, 150,
+ 13, 28, 43, 6, 206, 158, 13, 28, 43, 6, 200, 228, 13, 28, 43, 6, 68, 13,
+ 28, 43, 6, 196, 236, 13, 28, 43, 6, 194, 202, 13, 28, 43, 6, 193, 223,
+ 13, 28, 43, 6, 193, 148, 13, 28, 43, 6, 192, 155, 13, 28, 43, 2, 64, 13,
+ 28, 43, 2, 249, 226, 13, 28, 43, 2, 247, 52, 13, 28, 43, 2, 238, 95, 13,
+ 28, 43, 2, 71, 13, 28, 43, 2, 233, 163, 13, 28, 43, 2, 232, 44, 13, 28,
+ 43, 2, 230, 124, 13, 28, 43, 2, 70, 13, 28, 43, 2, 223, 65, 13, 28, 43,
+ 2, 222, 184, 13, 28, 43, 2, 165, 13, 28, 43, 2, 218, 236, 13, 28, 43, 2,
+ 215, 151, 13, 28, 43, 2, 74, 13, 28, 43, 2, 211, 93, 13, 28, 43, 2, 208,
+ 247, 13, 28, 43, 2, 150, 13, 28, 43, 2, 206, 158, 13, 28, 43, 2, 200,
+ 228, 13, 28, 43, 2, 68, 13, 28, 43, 2, 196, 236, 13, 28, 43, 2, 194, 202,
+ 13, 28, 43, 2, 193, 223, 13, 28, 43, 2, 193, 148, 13, 28, 43, 2, 192,
+ 155, 13, 27, 6, 64, 13, 27, 6, 247, 52, 13, 27, 6, 238, 95, 13, 27, 6,
+ 232, 44, 13, 27, 6, 223, 65, 13, 27, 6, 222, 184, 13, 27, 6, 215, 151,
+ 13, 27, 6, 74, 13, 27, 6, 211, 93, 13, 27, 6, 208, 247, 13, 27, 6, 206,
+ 158, 13, 27, 6, 200, 228, 13, 27, 6, 68, 13, 27, 6, 196, 236, 13, 27, 6,
+ 194, 202, 13, 27, 6, 193, 223, 13, 27, 6, 193, 148, 13, 27, 6, 192, 155,
+ 13, 27, 2, 64, 13, 27, 2, 249, 226, 13, 27, 2, 247, 52, 13, 27, 2, 238,
+ 95, 13, 27, 2, 233, 163, 13, 27, 2, 230, 124, 13, 27, 2, 70, 13, 27, 2,
+ 223, 65, 13, 27, 2, 222, 184, 13, 27, 2, 165, 13, 27, 2, 218, 236, 13,
+ 27, 2, 215, 151, 13, 27, 2, 211, 93, 13, 27, 2, 208, 247, 13, 27, 2, 150,
+ 13, 27, 2, 206, 158, 13, 27, 2, 200, 228, 13, 27, 2, 68, 13, 27, 2, 196,
+ 236, 13, 27, 2, 194, 202, 13, 27, 2, 193, 223, 13, 27, 2, 193, 148, 13,
+ 27, 2, 192, 155, 13, 28, 27, 6, 64, 13, 28, 27, 6, 249, 226, 13, 28, 27,
+ 6, 247, 52, 13, 28, 27, 6, 238, 95, 13, 28, 27, 6, 71, 13, 28, 27, 6,
+ 233, 163, 13, 28, 27, 6, 232, 44, 13, 28, 27, 6, 230, 124, 13, 28, 27, 6,
+ 70, 13, 28, 27, 6, 223, 65, 13, 28, 27, 6, 222, 184, 13, 28, 27, 6, 165,
+ 13, 28, 27, 6, 218, 236, 13, 28, 27, 6, 215, 151, 13, 28, 27, 6, 74, 13,
+ 28, 27, 6, 211, 93, 13, 28, 27, 6, 208, 247, 13, 28, 27, 6, 150, 13, 28,
+ 27, 6, 206, 158, 13, 28, 27, 6, 200, 228, 13, 28, 27, 6, 68, 13, 28, 27,
+ 6, 196, 236, 13, 28, 27, 6, 194, 202, 13, 28, 27, 6, 193, 223, 13, 28,
+ 27, 6, 193, 148, 13, 28, 27, 6, 192, 155, 13, 28, 27, 2, 64, 13, 28, 27,
+ 2, 249, 226, 13, 28, 27, 2, 247, 52, 13, 28, 27, 2, 238, 95, 13, 28, 27,
+ 2, 71, 13, 28, 27, 2, 233, 163, 13, 28, 27, 2, 232, 44, 13, 28, 27, 2,
+ 230, 124, 13, 28, 27, 2, 70, 13, 28, 27, 2, 223, 65, 13, 28, 27, 2, 222,
+ 184, 13, 28, 27, 2, 165, 13, 28, 27, 2, 218, 236, 13, 28, 27, 2, 215,
+ 151, 13, 28, 27, 2, 74, 13, 28, 27, 2, 211, 93, 13, 28, 27, 2, 208, 247,
+ 13, 28, 27, 2, 150, 13, 28, 27, 2, 206, 158, 13, 28, 27, 2, 200, 228, 13,
+ 28, 27, 2, 68, 13, 28, 27, 2, 196, 236, 13, 28, 27, 2, 194, 202, 13, 28,
+ 27, 2, 193, 223, 13, 28, 27, 2, 193, 148, 13, 28, 27, 2, 192, 155, 13,
+ 232, 106, 6, 64, 13, 232, 106, 6, 249, 226, 13, 232, 106, 6, 238, 95, 13,
+ 232, 106, 6, 71, 13, 232, 106, 6, 233, 163, 13, 232, 106, 6, 232, 44, 13,
+ 232, 106, 6, 223, 65, 13, 232, 106, 6, 222, 184, 13, 232, 106, 6, 165,
+ 13, 232, 106, 6, 218, 236, 13, 232, 106, 6, 215, 151, 13, 232, 106, 6,
+ 74, 13, 232, 106, 6, 211, 93, 13, 232, 106, 6, 208, 247, 13, 232, 106, 6,
+ 206, 158, 13, 232, 106, 6, 200, 228, 13, 232, 106, 6, 68, 13, 232, 106,
+ 6, 196, 236, 13, 232, 106, 6, 194, 202, 13, 232, 106, 6, 193, 223, 13,
+ 232, 106, 6, 193, 148, 13, 232, 106, 2, 64, 13, 232, 106, 2, 249, 226,
+ 13, 232, 106, 2, 247, 52, 13, 232, 106, 2, 238, 95, 13, 232, 106, 2, 71,
+ 13, 232, 106, 2, 233, 163, 13, 232, 106, 2, 232, 44, 13, 232, 106, 2,
+ 230, 124, 13, 232, 106, 2, 70, 13, 232, 106, 2, 223, 65, 13, 232, 106, 2,
+ 222, 184, 13, 232, 106, 2, 165, 13, 232, 106, 2, 218, 236, 13, 232, 106,
+ 2, 215, 151, 13, 232, 106, 2, 74, 13, 232, 106, 2, 211, 93, 13, 232, 106,
+ 2, 208, 247, 13, 232, 106, 2, 150, 13, 232, 106, 2, 206, 158, 13, 232,
+ 106, 2, 200, 228, 13, 232, 106, 2, 68, 13, 232, 106, 2, 196, 236, 13,
+ 232, 106, 2, 194, 202, 13, 232, 106, 2, 193, 223, 13, 232, 106, 2, 193,
+ 148, 13, 232, 106, 2, 192, 155, 13, 235, 102, 6, 64, 13, 235, 102, 6,
+ 249, 226, 13, 235, 102, 6, 238, 95, 13, 235, 102, 6, 71, 13, 235, 102, 6,
+ 233, 163, 13, 235, 102, 6, 232, 44, 13, 235, 102, 6, 70, 13, 235, 102, 6,
+ 223, 65, 13, 235, 102, 6, 222, 184, 13, 235, 102, 6, 165, 13, 235, 102,
+ 6, 218, 236, 13, 235, 102, 6, 74, 13, 235, 102, 6, 206, 158, 13, 235,
+ 102, 6, 200, 228, 13, 235, 102, 6, 68, 13, 235, 102, 6, 196, 236, 13,
+ 235, 102, 6, 194, 202, 13, 235, 102, 6, 193, 223, 13, 235, 102, 6, 193,
+ 148, 13, 235, 102, 2, 64, 13, 235, 102, 2, 249, 226, 13, 235, 102, 2,
+ 247, 52, 13, 235, 102, 2, 238, 95, 13, 235, 102, 2, 71, 13, 235, 102, 2,
+ 233, 163, 13, 235, 102, 2, 232, 44, 13, 235, 102, 2, 230, 124, 13, 235,
+ 102, 2, 70, 13, 235, 102, 2, 223, 65, 13, 235, 102, 2, 222, 184, 13, 235,
+ 102, 2, 165, 13, 235, 102, 2, 218, 236, 13, 235, 102, 2, 215, 151, 13,
+ 235, 102, 2, 74, 13, 235, 102, 2, 211, 93, 13, 235, 102, 2, 208, 247, 13,
+ 235, 102, 2, 150, 13, 235, 102, 2, 206, 158, 13, 235, 102, 2, 200, 228,
+ 13, 235, 102, 2, 68, 13, 235, 102, 2, 196, 236, 13, 235, 102, 2, 194,
+ 202, 13, 235, 102, 2, 193, 223, 13, 235, 102, 2, 193, 148, 13, 235, 102,
+ 2, 192, 155, 13, 28, 232, 106, 6, 64, 13, 28, 232, 106, 6, 249, 226, 13,
+ 28, 232, 106, 6, 247, 52, 13, 28, 232, 106, 6, 238, 95, 13, 28, 232, 106,
+ 6, 71, 13, 28, 232, 106, 6, 233, 163, 13, 28, 232, 106, 6, 232, 44, 13,
+ 28, 232, 106, 6, 230, 124, 13, 28, 232, 106, 6, 70, 13, 28, 232, 106, 6,
+ 223, 65, 13, 28, 232, 106, 6, 222, 184, 13, 28, 232, 106, 6, 165, 13, 28,
+ 232, 106, 6, 218, 236, 13, 28, 232, 106, 6, 215, 151, 13, 28, 232, 106,
+ 6, 74, 13, 28, 232, 106, 6, 211, 93, 13, 28, 232, 106, 6, 208, 247, 13,
+ 28, 232, 106, 6, 150, 13, 28, 232, 106, 6, 206, 158, 13, 28, 232, 106, 6,
+ 200, 228, 13, 28, 232, 106, 6, 68, 13, 28, 232, 106, 6, 196, 236, 13, 28,
+ 232, 106, 6, 194, 202, 13, 28, 232, 106, 6, 193, 223, 13, 28, 232, 106,
+ 6, 193, 148, 13, 28, 232, 106, 6, 192, 155, 13, 28, 232, 106, 2, 64, 13,
+ 28, 232, 106, 2, 249, 226, 13, 28, 232, 106, 2, 247, 52, 13, 28, 232,
+ 106, 2, 238, 95, 13, 28, 232, 106, 2, 71, 13, 28, 232, 106, 2, 233, 163,
+ 13, 28, 232, 106, 2, 232, 44, 13, 28, 232, 106, 2, 230, 124, 13, 28, 232,
+ 106, 2, 70, 13, 28, 232, 106, 2, 223, 65, 13, 28, 232, 106, 2, 222, 184,
+ 13, 28, 232, 106, 2, 165, 13, 28, 232, 106, 2, 218, 236, 13, 28, 232,
+ 106, 2, 215, 151, 13, 28, 232, 106, 2, 74, 13, 28, 232, 106, 2, 211, 93,
+ 13, 28, 232, 106, 2, 208, 247, 13, 28, 232, 106, 2, 150, 13, 28, 232,
+ 106, 2, 206, 158, 13, 28, 232, 106, 2, 200, 228, 13, 28, 232, 106, 2, 68,
+ 13, 28, 232, 106, 2, 196, 236, 13, 28, 232, 106, 2, 194, 202, 13, 28,
+ 232, 106, 2, 193, 223, 13, 28, 232, 106, 2, 193, 148, 13, 28, 232, 106,
+ 2, 192, 155, 13, 49, 6, 64, 13, 49, 6, 249, 226, 13, 49, 6, 247, 52, 13,
+ 49, 6, 238, 95, 13, 49, 6, 71, 13, 49, 6, 233, 163, 13, 49, 6, 232, 44,
+ 13, 49, 6, 230, 124, 13, 49, 6, 70, 13, 49, 6, 223, 65, 13, 49, 6, 222,
+ 184, 13, 49, 6, 165, 13, 49, 6, 218, 236, 13, 49, 6, 215, 151, 13, 49, 6,
+ 74, 13, 49, 6, 211, 93, 13, 49, 6, 208, 247, 13, 49, 6, 150, 13, 49, 6,
+ 206, 158, 13, 49, 6, 200, 228, 13, 49, 6, 68, 13, 49, 6, 196, 236, 13,
+ 49, 6, 194, 202, 13, 49, 6, 193, 223, 13, 49, 6, 193, 148, 13, 49, 6,
+ 192, 155, 13, 49, 2, 64, 13, 49, 2, 249, 226, 13, 49, 2, 247, 52, 13, 49,
+ 2, 238, 95, 13, 49, 2, 71, 13, 49, 2, 233, 163, 13, 49, 2, 232, 44, 13,
+ 49, 2, 230, 124, 13, 49, 2, 70, 13, 49, 2, 223, 65, 13, 49, 2, 222, 184,
+ 13, 49, 2, 165, 13, 49, 2, 218, 236, 13, 49, 2, 215, 151, 13, 49, 2, 74,
+ 13, 49, 2, 211, 93, 13, 49, 2, 208, 247, 13, 49, 2, 150, 13, 49, 2, 206,
+ 158, 13, 49, 2, 200, 228, 13, 49, 2, 68, 13, 49, 2, 196, 236, 13, 49, 2,
+ 194, 202, 13, 49, 2, 193, 223, 13, 49, 2, 193, 148, 13, 49, 2, 192, 155,
+ 13, 49, 28, 6, 64, 13, 49, 28, 6, 249, 226, 13, 49, 28, 6, 247, 52, 13,
+ 49, 28, 6, 238, 95, 13, 49, 28, 6, 71, 13, 49, 28, 6, 233, 163, 13, 49,
+ 28, 6, 232, 44, 13, 49, 28, 6, 230, 124, 13, 49, 28, 6, 70, 13, 49, 28,
+ 6, 223, 65, 13, 49, 28, 6, 222, 184, 13, 49, 28, 6, 165, 13, 49, 28, 6,
+ 218, 236, 13, 49, 28, 6, 215, 151, 13, 49, 28, 6, 74, 13, 49, 28, 6, 211,
+ 93, 13, 49, 28, 6, 208, 247, 13, 49, 28, 6, 150, 13, 49, 28, 6, 206, 158,
+ 13, 49, 28, 6, 200, 228, 13, 49, 28, 6, 68, 13, 49, 28, 6, 196, 236, 13,
+ 49, 28, 6, 194, 202, 13, 49, 28, 6, 193, 223, 13, 49, 28, 6, 193, 148,
+ 13, 49, 28, 6, 192, 155, 13, 49, 28, 2, 64, 13, 49, 28, 2, 249, 226, 13,
+ 49, 28, 2, 247, 52, 13, 49, 28, 2, 238, 95, 13, 49, 28, 2, 71, 13, 49,
+ 28, 2, 233, 163, 13, 49, 28, 2, 232, 44, 13, 49, 28, 2, 230, 124, 13, 49,
+ 28, 2, 70, 13, 49, 28, 2, 223, 65, 13, 49, 28, 2, 222, 184, 13, 49, 28,
+ 2, 165, 13, 49, 28, 2, 218, 236, 13, 49, 28, 2, 215, 151, 13, 49, 28, 2,
+ 74, 13, 49, 28, 2, 211, 93, 13, 49, 28, 2, 208, 247, 13, 49, 28, 2, 150,
+ 13, 49, 28, 2, 206, 158, 13, 49, 28, 2, 200, 228, 13, 49, 28, 2, 68, 13,
+ 49, 28, 2, 196, 236, 13, 49, 28, 2, 194, 202, 13, 49, 28, 2, 193, 223,
+ 13, 49, 28, 2, 193, 148, 13, 49, 28, 2, 192, 155, 13, 49, 43, 6, 64, 13,
+ 49, 43, 6, 249, 226, 13, 49, 43, 6, 247, 52, 13, 49, 43, 6, 238, 95, 13,
+ 49, 43, 6, 71, 13, 49, 43, 6, 233, 163, 13, 49, 43, 6, 232, 44, 13, 49,
+ 43, 6, 230, 124, 13, 49, 43, 6, 70, 13, 49, 43, 6, 223, 65, 13, 49, 43,
+ 6, 222, 184, 13, 49, 43, 6, 165, 13, 49, 43, 6, 218, 236, 13, 49, 43, 6,
+ 215, 151, 13, 49, 43, 6, 74, 13, 49, 43, 6, 211, 93, 13, 49, 43, 6, 208,
+ 247, 13, 49, 43, 6, 150, 13, 49, 43, 6, 206, 158, 13, 49, 43, 6, 200,
+ 228, 13, 49, 43, 6, 68, 13, 49, 43, 6, 196, 236, 13, 49, 43, 6, 194, 202,
+ 13, 49, 43, 6, 193, 223, 13, 49, 43, 6, 193, 148, 13, 49, 43, 6, 192,
+ 155, 13, 49, 43, 2, 64, 13, 49, 43, 2, 249, 226, 13, 49, 43, 2, 247, 52,
+ 13, 49, 43, 2, 238, 95, 13, 49, 43, 2, 71, 13, 49, 43, 2, 233, 163, 13,
+ 49, 43, 2, 232, 44, 13, 49, 43, 2, 230, 124, 13, 49, 43, 2, 70, 13, 49,
+ 43, 2, 223, 65, 13, 49, 43, 2, 222, 184, 13, 49, 43, 2, 165, 13, 49, 43,
+ 2, 218, 236, 13, 49, 43, 2, 215, 151, 13, 49, 43, 2, 74, 13, 49, 43, 2,
+ 211, 93, 13, 49, 43, 2, 208, 247, 13, 49, 43, 2, 150, 13, 49, 43, 2, 206,
+ 158, 13, 49, 43, 2, 200, 228, 13, 49, 43, 2, 68, 13, 49, 43, 2, 196, 236,
+ 13, 49, 43, 2, 194, 202, 13, 49, 43, 2, 193, 223, 13, 49, 43, 2, 193,
+ 148, 13, 49, 43, 2, 192, 155, 13, 49, 28, 43, 6, 64, 13, 49, 28, 43, 6,
+ 249, 226, 13, 49, 28, 43, 6, 247, 52, 13, 49, 28, 43, 6, 238, 95, 13, 49,
+ 28, 43, 6, 71, 13, 49, 28, 43, 6, 233, 163, 13, 49, 28, 43, 6, 232, 44,
+ 13, 49, 28, 43, 6, 230, 124, 13, 49, 28, 43, 6, 70, 13, 49, 28, 43, 6,
+ 223, 65, 13, 49, 28, 43, 6, 222, 184, 13, 49, 28, 43, 6, 165, 13, 49, 28,
+ 43, 6, 218, 236, 13, 49, 28, 43, 6, 215, 151, 13, 49, 28, 43, 6, 74, 13,
+ 49, 28, 43, 6, 211, 93, 13, 49, 28, 43, 6, 208, 247, 13, 49, 28, 43, 6,
+ 150, 13, 49, 28, 43, 6, 206, 158, 13, 49, 28, 43, 6, 200, 228, 13, 49,
+ 28, 43, 6, 68, 13, 49, 28, 43, 6, 196, 236, 13, 49, 28, 43, 6, 194, 202,
+ 13, 49, 28, 43, 6, 193, 223, 13, 49, 28, 43, 6, 193, 148, 13, 49, 28, 43,
+ 6, 192, 155, 13, 49, 28, 43, 2, 64, 13, 49, 28, 43, 2, 249, 226, 13, 49,
+ 28, 43, 2, 247, 52, 13, 49, 28, 43, 2, 238, 95, 13, 49, 28, 43, 2, 71,
+ 13, 49, 28, 43, 2, 233, 163, 13, 49, 28, 43, 2, 232, 44, 13, 49, 28, 43,
+ 2, 230, 124, 13, 49, 28, 43, 2, 70, 13, 49, 28, 43, 2, 223, 65, 13, 49,
+ 28, 43, 2, 222, 184, 13, 49, 28, 43, 2, 165, 13, 49, 28, 43, 2, 218, 236,
+ 13, 49, 28, 43, 2, 215, 151, 13, 49, 28, 43, 2, 74, 13, 49, 28, 43, 2,
+ 211, 93, 13, 49, 28, 43, 2, 208, 247, 13, 49, 28, 43, 2, 150, 13, 49, 28,
+ 43, 2, 206, 158, 13, 49, 28, 43, 2, 200, 228, 13, 49, 28, 43, 2, 68, 13,
+ 49, 28, 43, 2, 196, 236, 13, 49, 28, 43, 2, 194, 202, 13, 49, 28, 43, 2,
+ 193, 223, 13, 49, 28, 43, 2, 193, 148, 13, 49, 28, 43, 2, 192, 155, 13,
+ 216, 41, 6, 64, 13, 216, 41, 6, 249, 226, 13, 216, 41, 6, 247, 52, 13,
+ 216, 41, 6, 238, 95, 13, 216, 41, 6, 71, 13, 216, 41, 6, 233, 163, 13,
+ 216, 41, 6, 232, 44, 13, 216, 41, 6, 230, 124, 13, 216, 41, 6, 70, 13,
+ 216, 41, 6, 223, 65, 13, 216, 41, 6, 222, 184, 13, 216, 41, 6, 165, 13,
+ 216, 41, 6, 218, 236, 13, 216, 41, 6, 215, 151, 13, 216, 41, 6, 74, 13,
+ 216, 41, 6, 211, 93, 13, 216, 41, 6, 208, 247, 13, 216, 41, 6, 150, 13,
+ 216, 41, 6, 206, 158, 13, 216, 41, 6, 200, 228, 13, 216, 41, 6, 68, 13,
+ 216, 41, 6, 196, 236, 13, 216, 41, 6, 194, 202, 13, 216, 41, 6, 193, 223,
+ 13, 216, 41, 6, 193, 148, 13, 216, 41, 6, 192, 155, 13, 216, 41, 2, 64,
+ 13, 216, 41, 2, 249, 226, 13, 216, 41, 2, 247, 52, 13, 216, 41, 2, 238,
+ 95, 13, 216, 41, 2, 71, 13, 216, 41, 2, 233, 163, 13, 216, 41, 2, 232,
+ 44, 13, 216, 41, 2, 230, 124, 13, 216, 41, 2, 70, 13, 216, 41, 2, 223,
+ 65, 13, 216, 41, 2, 222, 184, 13, 216, 41, 2, 165, 13, 216, 41, 2, 218,
+ 236, 13, 216, 41, 2, 215, 151, 13, 216, 41, 2, 74, 13, 216, 41, 2, 211,
+ 93, 13, 216, 41, 2, 208, 247, 13, 216, 41, 2, 150, 13, 216, 41, 2, 206,
+ 158, 13, 216, 41, 2, 200, 228, 13, 216, 41, 2, 68, 13, 216, 41, 2, 196,
+ 236, 13, 216, 41, 2, 194, 202, 13, 216, 41, 2, 193, 223, 13, 216, 41, 2,
+ 193, 148, 13, 216, 41, 2, 192, 155, 13, 43, 2, 236, 113, 70, 13, 43, 2,
+ 236, 113, 223, 65, 13, 28, 6, 250, 252, 13, 28, 6, 248, 63, 13, 28, 6,
+ 231, 204, 13, 28, 6, 237, 76, 13, 28, 6, 234, 32, 13, 28, 6, 192, 75, 13,
+ 28, 6, 233, 240, 13, 28, 6, 199, 206, 13, 28, 6, 223, 111, 13, 28, 6,
+ 222, 106, 13, 28, 6, 220, 90, 13, 28, 6, 215, 241, 13, 28, 6, 213, 22,
+ 13, 28, 6, 193, 196, 13, 28, 6, 211, 214, 13, 28, 6, 210, 51, 13, 28, 6,
+ 207, 153, 13, 28, 6, 199, 207, 109, 13, 28, 6, 203, 99, 13, 28, 6, 200,
+ 100, 13, 28, 6, 197, 34, 13, 28, 6, 210, 77, 13, 28, 6, 242, 215, 13, 28,
+ 6, 209, 62, 13, 28, 6, 211, 216, 13, 28, 215, 79, 13, 28, 2, 250, 252,
+ 13, 28, 2, 248, 63, 13, 28, 2, 231, 204, 13, 28, 2, 237, 76, 13, 28, 2,
+ 234, 32, 13, 28, 2, 192, 75, 13, 28, 2, 233, 240, 13, 28, 2, 199, 206,
+ 13, 28, 2, 223, 111, 13, 28, 2, 222, 106, 13, 28, 2, 220, 90, 13, 28, 2,
+ 215, 241, 13, 28, 2, 213, 22, 13, 28, 2, 193, 196, 13, 28, 2, 211, 214,
+ 13, 28, 2, 210, 51, 13, 28, 2, 207, 153, 13, 28, 2, 52, 203, 99, 13, 28,
+ 2, 203, 99, 13, 28, 2, 200, 100, 13, 28, 2, 197, 34, 13, 28, 2, 210, 77,
+ 13, 28, 2, 242, 215, 13, 28, 2, 209, 62, 13, 28, 2, 211, 216, 13, 28,
+ 210, 222, 236, 244, 13, 28, 234, 33, 109, 13, 28, 199, 207, 109, 13, 28,
+ 222, 107, 109, 13, 28, 210, 78, 109, 13, 28, 207, 154, 109, 13, 28, 210,
+ 52, 109, 13, 43, 6, 250, 252, 13, 43, 6, 248, 63, 13, 43, 6, 231, 204,
+ 13, 43, 6, 237, 76, 13, 43, 6, 234, 32, 13, 43, 6, 192, 75, 13, 43, 6,
+ 233, 240, 13, 43, 6, 199, 206, 13, 43, 6, 223, 111, 13, 43, 6, 222, 106,
+ 13, 43, 6, 220, 90, 13, 43, 6, 215, 241, 13, 43, 6, 213, 22, 13, 43, 6,
+ 193, 196, 13, 43, 6, 211, 214, 13, 43, 6, 210, 51, 13, 43, 6, 207, 153,
+ 13, 43, 6, 199, 207, 109, 13, 43, 6, 203, 99, 13, 43, 6, 200, 100, 13,
+ 43, 6, 197, 34, 13, 43, 6, 210, 77, 13, 43, 6, 242, 215, 13, 43, 6, 209,
+ 62, 13, 43, 6, 211, 216, 13, 43, 215, 79, 13, 43, 2, 250, 252, 13, 43, 2,
+ 248, 63, 13, 43, 2, 231, 204, 13, 43, 2, 237, 76, 13, 43, 2, 234, 32, 13,
+ 43, 2, 192, 75, 13, 43, 2, 233, 240, 13, 43, 2, 199, 206, 13, 43, 2, 223,
+ 111, 13, 43, 2, 222, 106, 13, 43, 2, 220, 90, 13, 43, 2, 215, 241, 13,
+ 43, 2, 213, 22, 13, 43, 2, 193, 196, 13, 43, 2, 211, 214, 13, 43, 2, 210,
+ 51, 13, 43, 2, 207, 153, 13, 43, 2, 52, 203, 99, 13, 43, 2, 203, 99, 13,
+ 43, 2, 200, 100, 13, 43, 2, 197, 34, 13, 43, 2, 210, 77, 13, 43, 2, 242,
+ 215, 13, 43, 2, 209, 62, 13, 43, 2, 211, 216, 13, 43, 210, 222, 236, 244,
+ 13, 43, 234, 33, 109, 13, 43, 199, 207, 109, 13, 43, 222, 107, 109, 13,
+ 43, 210, 78, 109, 13, 43, 207, 154, 109, 13, 43, 210, 52, 109, 13, 28,
+ 43, 6, 250, 252, 13, 28, 43, 6, 248, 63, 13, 28, 43, 6, 231, 204, 13, 28,
+ 43, 6, 237, 76, 13, 28, 43, 6, 234, 32, 13, 28, 43, 6, 192, 75, 13, 28,
+ 43, 6, 233, 240, 13, 28, 43, 6, 199, 206, 13, 28, 43, 6, 223, 111, 13,
+ 28, 43, 6, 222, 106, 13, 28, 43, 6, 220, 90, 13, 28, 43, 6, 215, 241, 13,
+ 28, 43, 6, 213, 22, 13, 28, 43, 6, 193, 196, 13, 28, 43, 6, 211, 214, 13,
+ 28, 43, 6, 210, 51, 13, 28, 43, 6, 207, 153, 13, 28, 43, 6, 199, 207,
+ 109, 13, 28, 43, 6, 203, 99, 13, 28, 43, 6, 200, 100, 13, 28, 43, 6, 197,
+ 34, 13, 28, 43, 6, 210, 77, 13, 28, 43, 6, 242, 215, 13, 28, 43, 6, 209,
+ 62, 13, 28, 43, 6, 211, 216, 13, 28, 43, 215, 79, 13, 28, 43, 2, 250,
+ 252, 13, 28, 43, 2, 248, 63, 13, 28, 43, 2, 231, 204, 13, 28, 43, 2, 237,
+ 76, 13, 28, 43, 2, 234, 32, 13, 28, 43, 2, 192, 75, 13, 28, 43, 2, 233,
+ 240, 13, 28, 43, 2, 199, 206, 13, 28, 43, 2, 223, 111, 13, 28, 43, 2,
+ 222, 106, 13, 28, 43, 2, 220, 90, 13, 28, 43, 2, 215, 241, 13, 28, 43, 2,
+ 213, 22, 13, 28, 43, 2, 193, 196, 13, 28, 43, 2, 211, 214, 13, 28, 43, 2,
+ 210, 51, 13, 28, 43, 2, 207, 153, 13, 28, 43, 2, 52, 203, 99, 13, 28, 43,
+ 2, 203, 99, 13, 28, 43, 2, 200, 100, 13, 28, 43, 2, 197, 34, 13, 28, 43,
+ 2, 210, 77, 13, 28, 43, 2, 242, 215, 13, 28, 43, 2, 209, 62, 13, 28, 43,
+ 2, 211, 216, 13, 28, 43, 210, 222, 236, 244, 13, 28, 43, 234, 33, 109,
+ 13, 28, 43, 199, 207, 109, 13, 28, 43, 222, 107, 109, 13, 28, 43, 210,
+ 78, 109, 13, 28, 43, 207, 154, 109, 13, 28, 43, 210, 52, 109, 13, 49, 28,
+ 6, 250, 252, 13, 49, 28, 6, 248, 63, 13, 49, 28, 6, 231, 204, 13, 49, 28,
+ 6, 237, 76, 13, 49, 28, 6, 234, 32, 13, 49, 28, 6, 192, 75, 13, 49, 28,
+ 6, 233, 240, 13, 49, 28, 6, 199, 206, 13, 49, 28, 6, 223, 111, 13, 49,
+ 28, 6, 222, 106, 13, 49, 28, 6, 220, 90, 13, 49, 28, 6, 215, 241, 13, 49,
+ 28, 6, 213, 22, 13, 49, 28, 6, 193, 196, 13, 49, 28, 6, 211, 214, 13, 49,
+ 28, 6, 210, 51, 13, 49, 28, 6, 207, 153, 13, 49, 28, 6, 199, 207, 109,
+ 13, 49, 28, 6, 203, 99, 13, 49, 28, 6, 200, 100, 13, 49, 28, 6, 197, 34,
+ 13, 49, 28, 6, 210, 77, 13, 49, 28, 6, 242, 215, 13, 49, 28, 6, 209, 62,
+ 13, 49, 28, 6, 211, 216, 13, 49, 28, 215, 79, 13, 49, 28, 2, 250, 252,
+ 13, 49, 28, 2, 248, 63, 13, 49, 28, 2, 231, 204, 13, 49, 28, 2, 237, 76,
+ 13, 49, 28, 2, 234, 32, 13, 49, 28, 2, 192, 75, 13, 49, 28, 2, 233, 240,
+ 13, 49, 28, 2, 199, 206, 13, 49, 28, 2, 223, 111, 13, 49, 28, 2, 222,
+ 106, 13, 49, 28, 2, 220, 90, 13, 49, 28, 2, 215, 241, 13, 49, 28, 2, 213,
+ 22, 13, 49, 28, 2, 193, 196, 13, 49, 28, 2, 211, 214, 13, 49, 28, 2, 210,
+ 51, 13, 49, 28, 2, 207, 153, 13, 49, 28, 2, 52, 203, 99, 13, 49, 28, 2,
+ 203, 99, 13, 49, 28, 2, 200, 100, 13, 49, 28, 2, 197, 34, 13, 49, 28, 2,
+ 210, 77, 13, 49, 28, 2, 242, 215, 13, 49, 28, 2, 209, 62, 13, 49, 28, 2,
+ 211, 216, 13, 49, 28, 210, 222, 236, 244, 13, 49, 28, 234, 33, 109, 13,
+ 49, 28, 199, 207, 109, 13, 49, 28, 222, 107, 109, 13, 49, 28, 210, 78,
+ 109, 13, 49, 28, 207, 154, 109, 13, 49, 28, 210, 52, 109, 13, 49, 28, 43,
+ 6, 250, 252, 13, 49, 28, 43, 6, 248, 63, 13, 49, 28, 43, 6, 231, 204, 13,
+ 49, 28, 43, 6, 237, 76, 13, 49, 28, 43, 6, 234, 32, 13, 49, 28, 43, 6,
+ 192, 75, 13, 49, 28, 43, 6, 233, 240, 13, 49, 28, 43, 6, 199, 206, 13,
+ 49, 28, 43, 6, 223, 111, 13, 49, 28, 43, 6, 222, 106, 13, 49, 28, 43, 6,
+ 220, 90, 13, 49, 28, 43, 6, 215, 241, 13, 49, 28, 43, 6, 213, 22, 13, 49,
+ 28, 43, 6, 193, 196, 13, 49, 28, 43, 6, 211, 214, 13, 49, 28, 43, 6, 210,
+ 51, 13, 49, 28, 43, 6, 207, 153, 13, 49, 28, 43, 6, 199, 207, 109, 13,
+ 49, 28, 43, 6, 203, 99, 13, 49, 28, 43, 6, 200, 100, 13, 49, 28, 43, 6,
+ 197, 34, 13, 49, 28, 43, 6, 210, 77, 13, 49, 28, 43, 6, 242, 215, 13, 49,
+ 28, 43, 6, 209, 62, 13, 49, 28, 43, 6, 211, 216, 13, 49, 28, 43, 215, 79,
+ 13, 49, 28, 43, 2, 250, 252, 13, 49, 28, 43, 2, 248, 63, 13, 49, 28, 43,
+ 2, 231, 204, 13, 49, 28, 43, 2, 237, 76, 13, 49, 28, 43, 2, 234, 32, 13,
+ 49, 28, 43, 2, 192, 75, 13, 49, 28, 43, 2, 233, 240, 13, 49, 28, 43, 2,
+ 199, 206, 13, 49, 28, 43, 2, 223, 111, 13, 49, 28, 43, 2, 222, 106, 13,
+ 49, 28, 43, 2, 220, 90, 13, 49, 28, 43, 2, 215, 241, 13, 49, 28, 43, 2,
+ 213, 22, 13, 49, 28, 43, 2, 193, 196, 13, 49, 28, 43, 2, 211, 214, 13,
+ 49, 28, 43, 2, 210, 51, 13, 49, 28, 43, 2, 207, 153, 13, 49, 28, 43, 2,
+ 52, 203, 99, 13, 49, 28, 43, 2, 203, 99, 13, 49, 28, 43, 2, 200, 100, 13,
+ 49, 28, 43, 2, 197, 34, 13, 49, 28, 43, 2, 210, 77, 13, 49, 28, 43, 2,
+ 242, 215, 13, 49, 28, 43, 2, 209, 62, 13, 49, 28, 43, 2, 211, 216, 13,
+ 49, 28, 43, 210, 222, 236, 244, 13, 49, 28, 43, 234, 33, 109, 13, 49, 28,
+ 43, 199, 207, 109, 13, 49, 28, 43, 222, 107, 109, 13, 49, 28, 43, 210,
+ 78, 109, 13, 49, 28, 43, 207, 154, 109, 13, 49, 28, 43, 210, 52, 109, 13,
+ 28, 6, 236, 238, 13, 28, 2, 236, 238, 13, 28, 17, 192, 76, 13, 28, 17,
+ 101, 13, 28, 17, 104, 13, 28, 17, 133, 13, 28, 17, 134, 13, 28, 17, 151,
+ 13, 28, 17, 170, 13, 28, 17, 179, 13, 28, 17, 174, 13, 28, 17, 182, 13,
+ 235, 102, 17, 192, 76, 13, 235, 102, 17, 101, 13, 235, 102, 17, 104, 13,
+ 235, 102, 17, 133, 13, 235, 102, 17, 134, 13, 235, 102, 17, 151, 13, 235,
+ 102, 17, 170, 13, 235, 102, 17, 179, 13, 235, 102, 17, 174, 13, 235, 102,
+ 17, 182, 13, 49, 17, 192, 76, 13, 49, 17, 101, 13, 49, 17, 104, 13, 49,
+ 17, 133, 13, 49, 17, 134, 13, 49, 17, 151, 13, 49, 17, 170, 13, 49, 17,
+ 179, 13, 49, 17, 174, 13, 49, 17, 182, 13, 49, 28, 17, 192, 76, 13, 49,
+ 28, 17, 101, 13, 49, 28, 17, 104, 13, 49, 28, 17, 133, 13, 49, 28, 17,
+ 134, 13, 49, 28, 17, 151, 13, 49, 28, 17, 170, 13, 49, 28, 17, 179, 13,
+ 49, 28, 17, 174, 13, 49, 28, 17, 182, 13, 216, 41, 17, 192, 76, 13, 216,
+ 41, 17, 101, 13, 216, 41, 17, 104, 13, 216, 41, 17, 133, 13, 216, 41, 17,
+ 134, 13, 216, 41, 17, 151, 13, 216, 41, 17, 170, 13, 216, 41, 17, 179,
+ 13, 216, 41, 17, 174, 13, 216, 41, 17, 182, 23, 146, 223, 176, 23, 230,
+ 59, 223, 176, 23, 230, 55, 223, 176, 23, 230, 44, 223, 176, 23, 230, 48,
+ 223, 176, 23, 230, 61, 223, 176, 23, 146, 140, 248, 74, 23, 230, 59, 140,
+ 248, 74, 23, 146, 171, 197, 69, 140, 248, 74, 23, 146, 140, 208, 39, 221,
+ 116, 23, 146, 140, 238, 144, 23, 146, 140, 229, 144, 23, 146, 140, 229,
+ 145, 219, 52, 23, 230, 59, 140, 229, 146, 23, 146, 140, 216, 160, 23,
+ 230, 59, 140, 216, 160, 23, 146, 140, 85, 248, 74, 23, 146, 140, 85, 208,
+ 39, 221, 115, 23, 146, 140, 85, 229, 144, 23, 146, 140, 130, 85, 229,
+ 144, 23, 146, 140, 229, 145, 85, 197, 41, 23, 146, 140, 85, 239, 10, 23,
+ 146, 140, 85, 239, 11, 140, 248, 74, 23, 146, 140, 85, 239, 11, 85, 248,
+ 74, 23, 146, 140, 85, 239, 11, 238, 144, 23, 146, 140, 85, 239, 11, 229,
+ 144, 23, 146, 140, 85, 238, 179, 23, 230, 59, 140, 85, 238, 179, 23, 146,
+ 85, 248, 75, 136, 223, 176, 23, 146, 140, 248, 75, 136, 216, 160, 23,
+ 146, 140, 85, 199, 147, 23, 230, 59, 140, 85, 199, 147, 23, 146, 140, 85,
+ 201, 230, 171, 248, 74, 23, 146, 140, 85, 248, 75, 171, 201, 229, 23,
+ 146, 140, 85, 171, 248, 74, 23, 146, 140, 85, 229, 145, 202, 115, 171,
+ 203, 110, 23, 146, 140, 130, 85, 229, 145, 171, 203, 110, 23, 146, 140,
+ 130, 85, 229, 145, 171, 239, 10, 23, 146, 140, 229, 145, 85, 130, 171,
+ 203, 110, 23, 146, 140, 85, 130, 202, 115, 171, 232, 123, 23, 146, 140,
+ 85, 171, 238, 144, 23, 146, 140, 85, 171, 242, 129, 23, 146, 140, 85,
+ 171, 229, 13, 23, 146, 140, 85, 171, 229, 144, 23, 146, 171, 248, 61,
+ 140, 85, 201, 229, 23, 146, 140, 85, 239, 11, 171, 203, 110, 23, 146,
+ 140, 85, 239, 11, 171, 203, 111, 239, 10, 23, 146, 140, 85, 239, 11, 171,
+ 203, 111, 248, 74, 23, 146, 85, 171, 229, 14, 140, 197, 41, 23, 146, 140,
+ 171, 229, 14, 85, 197, 41, 23, 146, 140, 85, 239, 11, 229, 145, 171, 203,
+ 110, 23, 146, 140, 85, 238, 180, 171, 203, 110, 23, 146, 140, 85, 239,
+ 11, 171, 232, 123, 23, 146, 140, 85, 239, 11, 238, 145, 171, 232, 123,
+ 23, 146, 85, 171, 238, 145, 140, 197, 41, 23, 146, 140, 171, 238, 145,
+ 85, 197, 41, 23, 146, 85, 171, 47, 140, 197, 41, 23, 146, 85, 171, 47,
+ 140, 229, 144, 23, 146, 140, 171, 250, 206, 211, 126, 85, 197, 41, 23,
+ 146, 140, 171, 250, 206, 223, 191, 85, 197, 41, 23, 146, 140, 171, 47,
+ 85, 197, 41, 23, 146, 140, 85, 171, 239, 11, 229, 144, 23, 146, 140, 85,
+ 171, 250, 206, 211, 125, 23, 146, 140, 85, 171, 250, 205, 23, 146, 85,
+ 171, 250, 206, 211, 126, 140, 197, 41, 23, 146, 85, 171, 250, 206, 211,
+ 126, 140, 238, 179, 23, 146, 85, 171, 250, 206, 140, 197, 41, 23, 146,
+ 140, 171, 229, 14, 85, 229, 144, 23, 230, 50, 232, 119, 232, 235, 23,
+ 230, 50, 232, 119, 232, 236, 248, 74, 23, 230, 50, 232, 119, 232, 236,
+ 229, 144, 23, 230, 50, 232, 119, 232, 236, 239, 10, 23, 230, 50, 232,
+ 119, 232, 236, 239, 11, 202, 124, 23, 230, 57, 232, 119, 232, 236, 239,
+ 10, 23, 146, 232, 119, 232, 236, 239, 11, 248, 74, 23, 230, 48, 232, 119,
+ 232, 236, 239, 10, 23, 230, 50, 232, 214, 232, 236, 202, 114, 23, 230,
+ 50, 229, 223, 232, 214, 232, 236, 202, 114, 23, 230, 50, 232, 214, 232,
+ 236, 202, 115, 232, 119, 248, 74, 23, 230, 50, 229, 223, 232, 214, 232,
+ 236, 202, 115, 232, 119, 248, 74, 23, 230, 50, 232, 214, 232, 236, 202,
+ 115, 248, 74, 23, 230, 50, 229, 223, 232, 214, 232, 236, 202, 115, 248,
+ 74, 23, 230, 50, 232, 214, 232, 236, 202, 115, 171, 232, 123, 23, 230,
+ 55, 232, 214, 232, 236, 202, 114, 23, 230, 55, 232, 214, 232, 236, 202,
+ 115, 211, 183, 23, 230, 48, 232, 214, 232, 236, 202, 115, 211, 183, 23,
+ 230, 44, 232, 214, 232, 236, 202, 114, 23, 230, 50, 232, 214, 232, 236,
+ 202, 115, 229, 144, 23, 230, 50, 232, 214, 232, 236, 202, 115, 229, 145,
+ 171, 203, 110, 23, 230, 50, 232, 214, 232, 236, 202, 115, 229, 145, 213,
+ 143, 199, 147, 23, 230, 49, 23, 230, 50, 248, 61, 211, 41, 233, 83, 23,
+ 230, 50, 229, 222, 23, 230, 50, 171, 203, 110, 23, 230, 50, 229, 223,
+ 171, 203, 110, 23, 230, 50, 171, 248, 74, 23, 230, 50, 171, 232, 123, 23,
+ 230, 50, 202, 125, 140, 171, 203, 110, 23, 230, 50, 202, 125, 246, 137,
+ 23, 230, 50, 202, 125, 246, 138, 171, 203, 110, 23, 230, 50, 202, 125,
+ 246, 138, 171, 203, 111, 248, 74, 23, 230, 50, 202, 125, 219, 146, 23,
+ 230, 56, 23, 230, 57, 171, 203, 110, 23, 230, 57, 213, 143, 199, 147, 23,
+ 230, 57, 171, 232, 123, 23, 230, 46, 238, 140, 23, 230, 45, 23, 230, 55,
+ 211, 183, 23, 230, 54, 23, 230, 55, 211, 184, 171, 203, 110, 23, 230, 55,
+ 171, 203, 110, 23, 230, 55, 211, 184, 213, 143, 199, 147, 23, 230, 55,
+ 213, 143, 199, 147, 23, 230, 55, 211, 184, 171, 232, 123, 23, 230, 55,
+ 171, 232, 123, 23, 230, 53, 211, 183, 23, 230, 52, 23, 230, 58, 23, 230,
+ 43, 23, 230, 44, 171, 203, 110, 23, 230, 44, 213, 143, 199, 147, 23, 230,
+ 44, 171, 232, 123, 23, 230, 48, 211, 183, 23, 230, 48, 211, 184, 171,
+ 232, 123, 23, 230, 47, 23, 230, 48, 202, 236, 23, 230, 48, 211, 184, 171,
+ 203, 110, 23, 230, 48, 171, 203, 110, 23, 230, 48, 211, 184, 213, 143,
+ 199, 147, 23, 230, 48, 213, 143, 199, 147, 23, 230, 48, 171, 203, 111,
+ 198, 231, 223, 176, 23, 230, 48, 171, 248, 61, 85, 207, 81, 23, 230, 60,
+ 23, 146, 140, 85, 207, 81, 23, 230, 59, 140, 85, 207, 81, 23, 230, 48,
+ 140, 85, 207, 81, 23, 230, 61, 140, 85, 207, 81, 23, 230, 48, 219, 146,
+ 23, 146, 140, 85, 207, 82, 248, 74, 23, 146, 140, 85, 207, 82, 239, 10,
+ 23, 230, 48, 140, 85, 207, 82, 239, 10, 23, 146, 219, 147, 235, 96, 23,
+ 146, 219, 147, 142, 207, 76, 201, 229, 23, 146, 219, 147, 142, 207, 76,
+ 238, 129, 23, 146, 219, 147, 142, 211, 136, 242, 129, 23, 146, 219, 147,
+ 197, 41, 23, 146, 171, 197, 69, 219, 147, 197, 41, 23, 230, 59, 219, 147,
+ 197, 41, 23, 230, 44, 219, 147, 197, 41, 23, 230, 61, 219, 147, 197, 41,
+ 23, 146, 219, 147, 208, 39, 221, 116, 23, 146, 219, 147, 248, 74, 23,
+ 146, 219, 147, 198, 232, 199, 147, 23, 146, 219, 147, 199, 147, 23, 230,
+ 48, 219, 147, 199, 147, 23, 146, 219, 147, 140, 199, 147, 23, 230, 48,
+ 219, 147, 140, 199, 147, 23, 230, 61, 219, 147, 140, 171, 140, 171, 211,
+ 125, 23, 230, 61, 219, 147, 140, 171, 140, 199, 147, 23, 146, 219, 147,
+ 223, 176, 23, 230, 59, 219, 147, 223, 176, 23, 230, 48, 219, 147, 223,
+ 176, 23, 230, 61, 219, 147, 223, 176, 23, 146, 140, 85, 219, 146, 23,
+ 230, 59, 140, 85, 219, 146, 23, 230, 48, 140, 85, 219, 146, 23, 230, 48,
+ 207, 81, 23, 230, 61, 140, 85, 219, 146, 23, 146, 140, 85, 238, 184, 219,
+ 146, 23, 230, 59, 140, 85, 238, 184, 219, 146, 23, 146, 207, 82, 235, 96,
+ 23, 230, 48, 207, 82, 142, 140, 171, 229, 15, 216, 160, 23, 230, 61, 207,
+ 82, 142, 85, 171, 140, 238, 183, 23, 146, 207, 82, 197, 41, 23, 146, 207,
+ 82, 208, 39, 221, 116, 23, 146, 207, 82, 219, 146, 23, 230, 59, 207, 82,
+ 219, 146, 23, 230, 44, 207, 82, 219, 146, 23, 230, 61, 207, 82, 219, 146,
+ 23, 146, 207, 82, 216, 160, 23, 146, 207, 82, 85, 239, 10, 23, 146, 207,
+ 82, 85, 208, 39, 221, 115, 23, 146, 207, 82, 223, 176, 23, 146, 207, 82,
+ 199, 147, 23, 230, 46, 207, 82, 199, 147, 23, 146, 140, 207, 82, 219,
+ 146, 23, 230, 59, 140, 207, 82, 219, 146, 23, 230, 53, 140, 207, 82, 219,
+ 147, 211, 211, 23, 230, 46, 140, 207, 82, 219, 147, 211, 125, 23, 230,
+ 46, 140, 207, 82, 219, 147, 223, 190, 23, 230, 46, 140, 207, 82, 219,
+ 147, 197, 68, 23, 230, 55, 140, 207, 82, 219, 146, 23, 230, 48, 140, 207,
+ 82, 219, 146, 23, 230, 61, 140, 207, 82, 219, 147, 211, 125, 23, 230, 61,
+ 140, 207, 82, 219, 146, 23, 146, 85, 235, 96, 23, 230, 48, 216, 160, 23,
+ 146, 85, 197, 41, 23, 230, 59, 85, 197, 41, 23, 146, 85, 208, 39, 221,
+ 116, 23, 146, 85, 130, 171, 203, 110, 23, 230, 46, 85, 199, 147, 23, 146,
+ 85, 171, 219, 146, 23, 146, 85, 219, 146, 23, 146, 85, 207, 82, 219, 146,
+ 23, 230, 59, 85, 207, 82, 219, 146, 23, 230, 53, 85, 207, 82, 219, 147,
+ 211, 211, 23, 230, 55, 85, 207, 82, 219, 146, 23, 230, 48, 85, 207, 82,
+ 219, 146, 23, 230, 61, 85, 207, 82, 219, 147, 211, 125, 23, 230, 61, 85,
+ 207, 82, 219, 147, 223, 190, 23, 230, 61, 85, 207, 82, 219, 146, 23, 230,
+ 59, 85, 207, 82, 219, 147, 248, 74, 23, 230, 57, 85, 207, 82, 219, 147,
+ 239, 10, 23, 230, 57, 85, 207, 82, 219, 147, 239, 11, 203, 110, 23, 230,
+ 46, 85, 207, 82, 219, 147, 239, 11, 211, 125, 23, 230, 46, 85, 207, 82,
+ 219, 147, 239, 11, 223, 190, 23, 230, 46, 85, 207, 82, 219, 147, 239, 10,
+ 23, 230, 48, 140, 229, 144, 23, 146, 140, 171, 203, 110, 23, 230, 48,
+ 140, 171, 203, 110, 23, 146, 140, 171, 203, 111, 171, 237, 10, 23, 146,
+ 140, 171, 203, 111, 171, 239, 10, 23, 146, 140, 171, 203, 111, 171, 248,
+ 74, 23, 146, 140, 171, 203, 111, 140, 248, 74, 23, 146, 140, 171, 203,
+ 111, 247, 191, 248, 74, 23, 146, 140, 171, 203, 111, 140, 229, 146, 23,
+ 146, 140, 171, 232, 124, 140, 201, 229, 23, 146, 140, 171, 232, 124, 140,
+ 248, 74, 23, 146, 140, 171, 128, 23, 146, 140, 171, 238, 140, 23, 146,
+ 140, 171, 238, 132, 171, 223, 145, 23, 230, 57, 140, 171, 238, 132, 171,
+ 223, 145, 23, 146, 140, 171, 238, 132, 171, 197, 68, 23, 146, 140, 171,
+ 242, 130, 23, 230, 55, 140, 199, 147, 23, 230, 55, 140, 171, 211, 183,
+ 23, 230, 48, 140, 171, 211, 183, 23, 230, 48, 140, 171, 220, 72, 23, 230,
+ 48, 140, 199, 147, 23, 230, 48, 140, 171, 202, 236, 23, 230, 61, 140,
+ 171, 211, 125, 23, 230, 61, 140, 171, 223, 190, 23, 230, 61, 140, 199,
+ 147, 23, 146, 199, 147, 23, 146, 171, 229, 222, 23, 146, 171, 203, 111,
+ 237, 10, 23, 146, 171, 203, 111, 239, 10, 23, 146, 171, 203, 111, 248,
+ 74, 23, 146, 171, 232, 123, 23, 146, 171, 248, 61, 140, 216, 160, 23,
+ 146, 171, 248, 61, 85, 207, 81, 23, 146, 171, 248, 61, 207, 82, 219, 146,
+ 23, 146, 171, 197, 69, 103, 232, 235, 23, 146, 171, 136, 103, 232, 235,
+ 23, 146, 171, 197, 69, 112, 232, 235, 23, 146, 171, 197, 69, 232, 119,
+ 232, 235, 23, 146, 171, 136, 232, 119, 208, 39, 221, 115, 23, 230, 51,
+ 23, 146, 229, 222, 23, 198, 233, 203, 73, 23, 198, 233, 215, 215, 23,
+ 198, 233, 248, 60, 23, 230, 215, 203, 73, 23, 230, 215, 215, 215, 23,
+ 230, 215, 248, 60, 23, 201, 213, 203, 73, 23, 201, 213, 215, 215, 23,
+ 201, 213, 248, 60, 23, 247, 132, 203, 73, 23, 247, 132, 215, 215, 23,
+ 247, 132, 248, 60, 23, 206, 210, 203, 73, 23, 206, 210, 215, 215, 23,
+ 206, 210, 248, 60, 23, 201, 96, 201, 5, 23, 201, 96, 248, 60, 23, 202,
+ 102, 220, 73, 203, 73, 23, 202, 102, 2, 203, 73, 23, 202, 102, 220, 73,
+ 215, 215, 23, 202, 102, 2, 215, 215, 23, 202, 102, 204, 161, 23, 232,
+ 186, 220, 73, 203, 73, 23, 232, 186, 2, 203, 73, 23, 232, 186, 220, 73,
+ 215, 215, 23, 232, 186, 2, 215, 215, 23, 232, 186, 204, 161, 23, 202,
+ 102, 232, 186, 250, 246, 23, 215, 253, 130, 142, 220, 72, 23, 215, 253,
+ 130, 142, 202, 236, 23, 215, 253, 130, 204, 161, 23, 215, 253, 142, 204,
+ 161, 23, 215, 253, 130, 142, 250, 247, 220, 72, 23, 215, 253, 130, 142,
+ 250, 247, 202, 236, 23, 215, 253, 203, 111, 115, 203, 111, 205, 238, 23,
+ 215, 252, 232, 241, 239, 0, 23, 215, 254, 232, 241, 239, 0, 23, 215, 252,
+ 203, 74, 201, 230, 202, 236, 23, 215, 252, 203, 74, 201, 230, 217, 30,
+ 23, 215, 252, 203, 74, 201, 230, 220, 72, 23, 215, 252, 203, 74, 201,
+ 230, 220, 70, 23, 215, 252, 203, 74, 193, 248, 232, 189, 23, 215, 252,
+ 55, 201, 229, 23, 215, 252, 55, 193, 248, 232, 189, 23, 215, 252, 55,
+ 250, 246, 23, 215, 252, 55, 250, 247, 193, 248, 232, 189, 23, 215, 252,
+ 238, 183, 23, 215, 252, 198, 170, 201, 230, 216, 0, 23, 215, 252, 198,
+ 170, 193, 248, 232, 189, 23, 215, 252, 198, 170, 250, 246, 23, 215, 252,
+ 198, 170, 250, 247, 193, 248, 232, 189, 23, 215, 252, 248, 79, 202, 236,
+ 23, 215, 252, 248, 79, 217, 30, 23, 215, 252, 248, 79, 220, 72, 23, 215,
+ 252, 238, 224, 202, 236, 23, 215, 252, 238, 224, 217, 30, 23, 215, 252,
+ 238, 224, 220, 72, 23, 215, 252, 238, 224, 207, 14, 23, 215, 252, 242,
+ 244, 202, 236, 23, 215, 252, 242, 244, 217, 30, 23, 215, 252, 242, 244,
+ 220, 72, 23, 215, 252, 105, 202, 236, 23, 215, 252, 105, 217, 30, 23,
+ 215, 252, 105, 220, 72, 23, 215, 252, 192, 21, 202, 236, 23, 215, 252,
+ 192, 21, 217, 30, 23, 215, 252, 192, 21, 220, 72, 23, 215, 252, 210, 176,
+ 202, 236, 23, 215, 252, 210, 176, 217, 30, 23, 215, 252, 210, 176, 220,
+ 72, 23, 198, 200, 207, 12, 203, 73, 23, 198, 200, 207, 12, 235, 106, 23,
+ 198, 200, 207, 12, 250, 246, 23, 198, 200, 207, 13, 203, 73, 23, 198,
+ 200, 207, 13, 235, 106, 23, 198, 200, 207, 13, 250, 246, 23, 198, 200,
+ 204, 43, 23, 198, 200, 250, 93, 202, 133, 203, 73, 23, 198, 200, 250, 93,
+ 202, 133, 235, 106, 23, 198, 200, 250, 93, 202, 133, 198, 169, 23, 215,
+ 255, 249, 240, 202, 236, 23, 215, 255, 249, 240, 217, 30, 23, 215, 255,
+ 249, 240, 220, 72, 23, 215, 255, 249, 240, 220, 70, 23, 215, 255, 198,
+ 227, 202, 236, 23, 215, 255, 198, 227, 217, 30, 23, 215, 255, 198, 227,
+ 220, 72, 23, 215, 255, 198, 227, 220, 70, 23, 215, 255, 248, 61, 249,
+ 240, 202, 236, 23, 215, 255, 248, 61, 249, 240, 217, 30, 23, 215, 255,
+ 248, 61, 249, 240, 220, 72, 23, 215, 255, 248, 61, 249, 240, 220, 70, 23,
+ 215, 255, 248, 61, 198, 227, 202, 236, 23, 215, 255, 248, 61, 198, 227,
+ 217, 30, 23, 215, 255, 248, 61, 198, 227, 220, 72, 23, 215, 255, 248, 61,
+ 198, 227, 220, 70, 23, 215, 254, 203, 74, 201, 230, 202, 236, 23, 215,
+ 254, 203, 74, 201, 230, 217, 30, 23, 215, 254, 203, 74, 201, 230, 220,
+ 72, 23, 215, 254, 203, 74, 201, 230, 220, 70, 23, 215, 254, 203, 74, 193,
+ 248, 232, 189, 23, 215, 254, 55, 201, 229, 23, 215, 254, 55, 193, 248,
+ 232, 189, 23, 215, 254, 55, 250, 246, 23, 215, 254, 55, 250, 247, 193,
+ 248, 232, 189, 23, 215, 254, 238, 183, 23, 215, 254, 198, 170, 201, 230,
+ 216, 0, 23, 215, 254, 198, 170, 193, 248, 232, 189, 23, 215, 254, 198,
+ 170, 250, 247, 216, 0, 23, 215, 254, 198, 170, 250, 247, 193, 248, 232,
+ 189, 23, 215, 254, 248, 78, 23, 215, 254, 238, 224, 202, 236, 23, 215,
+ 254, 238, 224, 217, 30, 23, 215, 254, 238, 224, 220, 72, 23, 215, 254,
+ 242, 243, 23, 215, 254, 105, 202, 236, 23, 215, 254, 105, 217, 30, 23,
+ 215, 254, 105, 220, 72, 23, 215, 254, 192, 21, 202, 236, 23, 215, 254,
+ 192, 21, 217, 30, 23, 215, 254, 192, 21, 220, 72, 23, 215, 254, 210, 176,
+ 202, 236, 23, 215, 254, 210, 176, 217, 30, 23, 215, 254, 210, 176, 220,
+ 72, 23, 198, 201, 207, 13, 203, 73, 23, 198, 201, 207, 13, 235, 106, 23,
+ 198, 201, 207, 13, 250, 246, 23, 198, 201, 207, 12, 203, 73, 23, 198,
+ 201, 207, 12, 235, 106, 23, 198, 201, 207, 12, 250, 246, 23, 198, 201,
+ 204, 43, 23, 215, 252, 238, 132, 208, 168, 202, 236, 23, 215, 252, 238,
+ 132, 208, 168, 217, 30, 23, 215, 252, 238, 132, 208, 168, 220, 72, 23,
+ 215, 252, 238, 132, 208, 168, 220, 70, 23, 215, 252, 238, 132, 230, 75,
+ 202, 236, 23, 215, 252, 238, 132, 230, 75, 217, 30, 23, 215, 252, 238,
+ 132, 230, 75, 220, 72, 23, 215, 252, 238, 132, 230, 75, 220, 70, 23, 215,
+ 252, 238, 132, 199, 153, 242, 131, 202, 236, 23, 215, 252, 238, 132, 199,
+ 153, 242, 131, 217, 30, 23, 215, 252, 228, 165, 202, 236, 23, 215, 252,
+ 228, 165, 217, 30, 23, 215, 252, 228, 165, 220, 72, 23, 215, 252, 219,
+ 70, 202, 236, 23, 215, 252, 219, 70, 217, 30, 23, 215, 252, 219, 70, 220,
+ 72, 23, 215, 252, 219, 70, 2, 235, 106, 23, 215, 252, 194, 125, 238, 132,
+ 55, 202, 236, 23, 215, 252, 194, 125, 238, 132, 55, 217, 30, 23, 215,
+ 252, 194, 125, 238, 132, 55, 220, 72, 23, 215, 252, 194, 125, 238, 132,
+ 198, 170, 202, 236, 23, 215, 252, 194, 125, 238, 132, 198, 170, 217, 30,
+ 23, 215, 252, 194, 125, 238, 132, 198, 170, 220, 72, 23, 215, 252, 238,
+ 132, 199, 216, 201, 229, 23, 215, 252, 238, 130, 238, 184, 202, 236, 23,
+ 215, 252, 238, 130, 238, 184, 217, 30, 23, 207, 12, 203, 73, 23, 207, 12,
+ 235, 106, 23, 207, 12, 250, 248, 23, 215, 252, 204, 43, 23, 215, 252,
+ 238, 132, 229, 136, 232, 88, 194, 151, 23, 215, 252, 228, 165, 229, 136,
+ 232, 88, 194, 151, 23, 215, 252, 219, 70, 229, 136, 232, 88, 194, 151,
+ 23, 215, 252, 194, 125, 229, 136, 232, 88, 194, 151, 23, 207, 12, 203,
+ 74, 229, 136, 232, 88, 194, 151, 23, 207, 12, 55, 229, 136, 232, 88, 194,
+ 151, 23, 207, 12, 250, 247, 229, 136, 232, 88, 194, 151, 23, 215, 252,
+ 238, 132, 229, 136, 242, 224, 23, 215, 252, 228, 165, 229, 136, 242, 224,
+ 23, 215, 252, 219, 70, 229, 136, 242, 224, 23, 215, 252, 194, 125, 229,
+ 136, 242, 224, 23, 207, 12, 203, 74, 229, 136, 242, 224, 23, 207, 12, 55,
+ 229, 136, 242, 224, 23, 207, 12, 250, 247, 229, 136, 242, 224, 23, 215,
+ 252, 194, 125, 237, 11, 210, 203, 202, 236, 23, 215, 252, 194, 125, 237,
+ 11, 210, 203, 217, 30, 23, 215, 252, 194, 125, 237, 11, 210, 203, 220,
+ 72, 23, 215, 254, 238, 132, 229, 136, 246, 147, 202, 236, 23, 215, 254,
+ 238, 132, 229, 136, 246, 147, 220, 72, 23, 215, 254, 228, 165, 229, 136,
+ 246, 147, 2, 235, 106, 23, 215, 254, 228, 165, 229, 136, 246, 147, 220,
+ 73, 235, 106, 23, 215, 254, 228, 165, 229, 136, 246, 147, 2, 198, 169,
+ 23, 215, 254, 228, 165, 229, 136, 246, 147, 220, 73, 198, 169, 23, 215,
+ 254, 219, 70, 229, 136, 246, 147, 2, 203, 73, 23, 215, 254, 219, 70, 229,
+ 136, 246, 147, 220, 73, 203, 73, 23, 215, 254, 219, 70, 229, 136, 246,
+ 147, 2, 235, 106, 23, 215, 254, 219, 70, 229, 136, 246, 147, 220, 73,
+ 235, 106, 23, 215, 254, 194, 125, 229, 136, 246, 147, 202, 236, 23, 215,
+ 254, 194, 125, 229, 136, 246, 147, 220, 72, 23, 207, 13, 203, 74, 229,
+ 136, 246, 146, 23, 207, 13, 55, 229, 136, 246, 146, 23, 207, 13, 250,
+ 247, 229, 136, 246, 146, 23, 215, 254, 238, 132, 229, 136, 232, 183, 202,
+ 236, 23, 215, 254, 238, 132, 229, 136, 232, 183, 220, 72, 23, 215, 254,
+ 228, 165, 229, 136, 232, 183, 2, 235, 106, 23, 215, 254, 228, 165, 229,
+ 136, 232, 183, 220, 73, 235, 106, 23, 215, 254, 228, 165, 229, 136, 232,
+ 183, 198, 170, 2, 198, 169, 23, 215, 254, 228, 165, 229, 136, 232, 183,
+ 198, 170, 220, 73, 198, 169, 23, 215, 254, 219, 70, 229, 136, 232, 183,
+ 2, 203, 73, 23, 215, 254, 219, 70, 229, 136, 232, 183, 220, 73, 203, 73,
+ 23, 215, 254, 219, 70, 229, 136, 232, 183, 2, 235, 106, 23, 215, 254,
+ 219, 70, 229, 136, 232, 183, 220, 73, 235, 106, 23, 215, 254, 194, 125,
+ 229, 136, 232, 183, 202, 236, 23, 215, 254, 194, 125, 229, 136, 232, 183,
+ 220, 72, 23, 207, 13, 203, 74, 229, 136, 232, 182, 23, 207, 13, 55, 229,
+ 136, 232, 182, 23, 207, 13, 250, 247, 229, 136, 232, 182, 23, 215, 254,
+ 238, 132, 202, 236, 23, 215, 254, 238, 132, 217, 30, 23, 215, 254, 238,
+ 132, 220, 72, 23, 215, 254, 238, 132, 220, 70, 23, 215, 254, 238, 132,
+ 242, 42, 23, 215, 254, 228, 165, 202, 236, 23, 215, 254, 219, 70, 202,
+ 236, 23, 215, 254, 194, 125, 202, 224, 23, 215, 254, 194, 125, 202, 236,
+ 23, 215, 254, 194, 125, 220, 72, 23, 207, 13, 203, 73, 23, 207, 13, 235,
+ 106, 23, 207, 13, 250, 246, 23, 215, 254, 204, 44, 210, 235, 23, 215,
+ 252, 250, 93, 242, 131, 2, 203, 73, 23, 215, 252, 250, 93, 242, 131, 217,
+ 31, 203, 73, 23, 215, 252, 250, 93, 242, 131, 2, 235, 106, 23, 215, 252,
+ 250, 93, 242, 131, 217, 31, 235, 106, 23, 215, 254, 250, 93, 242, 131,
+ 229, 136, 194, 152, 2, 203, 73, 23, 215, 254, 250, 93, 242, 131, 229,
+ 136, 194, 152, 217, 31, 203, 73, 23, 215, 254, 250, 93, 242, 131, 229,
+ 136, 194, 152, 220, 73, 203, 73, 23, 215, 254, 250, 93, 242, 131, 229,
+ 136, 194, 152, 2, 235, 106, 23, 215, 254, 250, 93, 242, 131, 229, 136,
+ 194, 152, 217, 31, 235, 106, 23, 215, 254, 250, 93, 242, 131, 229, 136,
+ 194, 152, 220, 73, 235, 106, 23, 215, 252, 193, 248, 242, 131, 232, 88,
+ 203, 73, 23, 215, 252, 193, 248, 242, 131, 232, 88, 235, 106, 23, 215,
+ 254, 193, 248, 242, 131, 229, 136, 194, 152, 203, 73, 23, 215, 254, 193,
+ 248, 242, 131, 229, 136, 194, 152, 235, 106, 23, 215, 252, 232, 241, 242,
+ 128, 203, 73, 23, 215, 252, 232, 241, 242, 128, 235, 106, 23, 215, 254,
+ 232, 241, 242, 128, 229, 136, 194, 152, 203, 73, 23, 215, 254, 232, 241,
+ 242, 128, 229, 136, 194, 152, 235, 106, 23, 235, 22, 250, 78, 202, 236,
+ 23, 235, 22, 250, 78, 220, 72, 23, 235, 22, 233, 61, 23, 235, 22, 202,
+ 239, 23, 235, 22, 200, 23, 23, 235, 22, 207, 213, 23, 235, 22, 203, 80,
+ 23, 235, 22, 203, 81, 250, 246, 23, 235, 22, 233, 213, 211, 137, 199, 84,
+ 23, 235, 22, 230, 225, 23, 229, 245, 23, 229, 246, 207, 86, 23, 229, 246,
+ 215, 252, 201, 229, 23, 229, 246, 215, 252, 199, 87, 23, 229, 246, 215,
+ 254, 201, 229, 23, 229, 246, 215, 252, 238, 131, 23, 229, 246, 215, 254,
+ 238, 131, 23, 229, 246, 216, 1, 242, 130, 23, 233, 92, 236, 205, 209,
+ 160, 213, 113, 232, 124, 199, 85, 23, 233, 92, 236, 205, 209, 160, 213,
+ 113, 130, 211, 164, 235, 96, 23, 233, 92, 236, 205, 209, 160, 213, 113,
+ 130, 211, 164, 142, 199, 85, 23, 233, 179, 201, 230, 197, 41, 23, 233,
+ 179, 201, 230, 214, 178, 23, 233, 179, 201, 230, 235, 96, 23, 235, 80,
+ 233, 179, 214, 179, 235, 96, 23, 235, 80, 233, 179, 142, 214, 178, 23,
+ 235, 80, 233, 179, 130, 214, 178, 23, 235, 80, 233, 179, 214, 179, 197,
+ 41, 23, 232, 141, 214, 178, 23, 232, 141, 239, 0, 23, 232, 141, 193, 251,
+ 23, 233, 174, 211, 183, 23, 233, 174, 202, 101, 23, 233, 174, 242, 83,
+ 23, 233, 182, 247, 239, 203, 73, 23, 233, 182, 247, 239, 215, 215, 23,
+ 233, 174, 138, 211, 183, 23, 233, 174, 194, 64, 211, 183, 23, 233, 174,
+ 138, 242, 83, 23, 233, 174, 194, 62, 216, 0, 23, 233, 182, 194, 45, 23,
+ 233, 175, 197, 41, 23, 233, 175, 235, 96, 23, 233, 175, 232, 169, 23,
+ 233, 177, 201, 229, 23, 233, 177, 201, 230, 235, 106, 23, 233, 177, 201,
+ 230, 250, 246, 23, 233, 178, 201, 229, 23, 233, 178, 201, 230, 235, 106,
+ 23, 233, 178, 201, 230, 250, 246, 23, 233, 177, 238, 129, 23, 233, 178,
+ 238, 129, 23, 233, 177, 242, 125, 23, 242, 239, 209, 41, 23, 242, 239,
+ 214, 178, 23, 242, 239, 201, 143, 23, 200, 24, 242, 239, 229, 155, 23,
+ 200, 24, 242, 239, 216, 160, 23, 200, 24, 242, 239, 219, 52, 23, 234,
+ 191, 23, 213, 113, 214, 178, 23, 213, 113, 239, 0, 23, 213, 113, 193,
+ 249, 23, 213, 113, 194, 59, 23, 251, 53, 247, 225, 211, 125, 23, 251, 53,
+ 201, 142, 223, 190, 23, 251, 53, 247, 227, 2, 207, 11, 23, 251, 53, 201,
+ 144, 2, 207, 11, 23, 247, 152, 223, 162, 23, 247, 152, 233, 202, 23, 216,
+ 5, 242, 84, 214, 178, 23, 216, 5, 242, 84, 232, 123, 23, 216, 5, 242, 84,
+ 239, 0, 23, 216, 5, 202, 231, 23, 216, 5, 202, 232, 193, 251, 23, 216, 5,
+ 202, 232, 211, 183, 23, 216, 5, 232, 84, 23, 216, 5, 232, 85, 193, 251,
+ 23, 216, 5, 232, 85, 211, 183, 23, 216, 5, 211, 184, 242, 130, 23, 216,
+ 5, 211, 184, 232, 123, 23, 216, 5, 211, 184, 193, 251, 23, 216, 5, 211,
+ 184, 211, 118, 23, 216, 5, 211, 184, 211, 119, 193, 251, 23, 216, 5, 211,
+ 184, 211, 119, 193, 77, 23, 216, 5, 211, 184, 207, 242, 23, 216, 5, 211,
+ 184, 207, 243, 193, 251, 23, 216, 5, 211, 184, 207, 243, 193, 77, 23,
+ 216, 5, 221, 160, 23, 216, 5, 221, 161, 232, 123, 23, 216, 5, 221, 161,
+ 193, 251, 23, 216, 5, 200, 23, 23, 216, 5, 200, 24, 232, 123, 23, 216, 5,
+ 200, 24, 201, 143, 23, 219, 160, 209, 103, 199, 26, 23, 219, 162, 106,
+ 136, 197, 38, 23, 219, 162, 113, 136, 219, 47, 23, 216, 5, 238, 222, 23,
+ 216, 5, 193, 250, 203, 73, 23, 216, 5, 193, 250, 235, 106, 23, 199, 1,
+ 201, 249, 211, 126, 233, 63, 23, 199, 1, 219, 205, 219, 159, 23, 199, 1,
+ 199, 74, 248, 61, 219, 159, 23, 199, 1, 199, 74, 198, 231, 223, 146, 216,
+ 4, 23, 199, 1, 223, 146, 216, 5, 207, 213, 23, 199, 1, 215, 251, 251, 78,
+ 242, 240, 23, 199, 1, 246, 138, 201, 249, 211, 125, 23, 199, 1, 246, 138,
+ 223, 146, 216, 4, 23, 200, 52, 23, 200, 53, 216, 0, 23, 200, 53, 211,
+ 212, 199, 0, 23, 200, 53, 211, 212, 199, 1, 216, 0, 23, 200, 53, 211,
+ 212, 219, 159, 23, 200, 53, 211, 212, 219, 160, 216, 0, 23, 200, 53, 247,
+ 255, 219, 159, 23, 215, 252, 223, 45, 23, 215, 254, 223, 45, 23, 214,
+ 205, 23, 230, 86, 23, 233, 205, 23, 203, 177, 229, 143, 202, 134, 23,
+ 203, 177, 229, 143, 209, 158, 23, 194, 150, 203, 177, 229, 143, 216, 3,
+ 23, 232, 181, 203, 177, 229, 143, 216, 3, 23, 203, 177, 199, 86, 232, 89,
+ 194, 156, 23, 198, 238, 201, 230, 201, 217, 23, 198, 238, 238, 130, 248,
+ 78, 23, 198, 239, 197, 223, 23, 113, 247, 214, 199, 86, 232, 89, 229,
+ 143, 222, 227, 23, 219, 187, 242, 43, 23, 219, 187, 220, 1, 23, 219, 187,
+ 220, 0, 23, 219, 187, 219, 255, 23, 219, 187, 219, 254, 23, 219, 187,
+ 219, 253, 23, 219, 187, 219, 252, 23, 219, 187, 219, 251, 23, 232, 240,
+ 23, 219, 101, 202, 160, 23, 219, 102, 202, 160, 23, 219, 104, 229, 218,
+ 23, 219, 104, 194, 60, 23, 219, 104, 237, 63, 23, 219, 104, 229, 246,
+ 214, 205, 23, 219, 104, 198, 240, 23, 219, 104, 219, 186, 236, 237, 23,
+ 242, 38, 23, 232, 71, 201, 238, 23, 204, 180, 23, 242, 47, 23, 210, 230,
+ 23, 232, 250, 216, 67, 23, 232, 250, 216, 66, 23, 232, 250, 216, 65, 23,
+ 232, 250, 216, 64, 23, 232, 250, 216, 63, 23, 207, 15, 216, 67, 23, 207,
+ 15, 216, 66, 23, 207, 15, 216, 65, 23, 207, 15, 216, 64, 23, 207, 15,
+ 216, 63, 23, 207, 15, 216, 62, 23, 207, 15, 216, 61, 23, 207, 15, 216,
+ 60, 23, 207, 15, 216, 74, 23, 207, 15, 216, 73, 23, 207, 15, 216, 72, 23,
+ 207, 15, 216, 71, 23, 207, 15, 216, 70, 23, 207, 15, 216, 69, 23, 207,
+ 15, 216, 68, 38, 131, 1, 249, 227, 38, 131, 1, 247, 110, 38, 131, 1, 196,
+ 121, 38, 131, 1, 231, 13, 38, 131, 1, 236, 141, 38, 131, 1, 193, 38, 38,
+ 131, 1, 192, 55, 38, 131, 1, 192, 81, 38, 131, 1, 223, 69, 38, 131, 1,
+ 88, 223, 69, 38, 131, 1, 70, 38, 131, 1, 236, 162, 38, 131, 1, 222, 127,
+ 38, 131, 1, 219, 139, 38, 131, 1, 215, 155, 38, 131, 1, 215, 46, 38, 131,
+ 1, 211, 196, 38, 131, 1, 209, 185, 38, 131, 1, 207, 72, 38, 131, 1, 202,
+ 241, 38, 131, 1, 197, 251, 38, 131, 1, 197, 88, 38, 131, 1, 232, 92, 38,
+ 131, 1, 229, 198, 38, 131, 1, 203, 167, 38, 131, 1, 198, 97, 38, 131, 1,
+ 242, 174, 38, 131, 1, 204, 64, 38, 131, 1, 193, 47, 38, 131, 1, 193, 49,
+ 38, 131, 1, 193, 82, 38, 131, 1, 192, 214, 38, 131, 1, 2, 192, 179, 38,
+ 131, 1, 193, 1, 38, 131, 1, 223, 110, 2, 192, 179, 38, 131, 1, 248, 28,
+ 192, 179, 38, 131, 1, 223, 110, 248, 28, 192, 179, 38, 131, 1, 232, 216,
+ 212, 180, 209, 48, 89, 1, 172, 212, 180, 209, 48, 89, 1, 198, 118, 212,
+ 180, 209, 48, 89, 1, 213, 43, 212, 180, 209, 48, 89, 1, 189, 212, 180,
+ 209, 48, 89, 1, 144, 212, 180, 209, 48, 89, 1, 181, 212, 180, 209, 48,
+ 89, 1, 193, 209, 212, 180, 209, 48, 89, 1, 213, 210, 212, 180, 209, 48,
+ 89, 1, 247, 19, 212, 180, 209, 48, 89, 1, 177, 212, 180, 209, 48, 89, 1,
+ 188, 212, 180, 209, 48, 89, 1, 192, 112, 212, 180, 209, 48, 89, 1, 215,
+ 3, 212, 180, 209, 48, 89, 1, 213, 30, 212, 180, 209, 48, 89, 1, 160, 212,
+ 180, 209, 48, 89, 1, 238, 0, 212, 180, 209, 48, 89, 1, 212, 201, 212,
+ 180, 209, 48, 89, 1, 213, 88, 212, 180, 209, 48, 89, 1, 196, 157, 212,
+ 180, 209, 48, 89, 1, 213, 24, 212, 180, 209, 48, 89, 1, 197, 215, 212,
+ 180, 209, 48, 89, 1, 233, 97, 212, 180, 209, 48, 89, 1, 167, 212, 180,
+ 209, 48, 89, 1, 208, 239, 212, 180, 209, 48, 89, 1, 168, 212, 180, 209,
+ 48, 89, 1, 213, 90, 212, 180, 209, 48, 89, 1, 166, 212, 180, 209, 48, 89,
+ 1, 193, 164, 212, 180, 209, 48, 89, 1, 213, 92, 212, 180, 209, 48, 89, 1,
+ 236, 158, 212, 180, 209, 48, 89, 1, 213, 91, 212, 180, 209, 48, 89, 1,
+ 230, 89, 212, 180, 209, 48, 89, 1, 216, 98, 212, 180, 209, 48, 89, 1,
+ 209, 234, 212, 180, 209, 48, 89, 1, 231, 233, 212, 180, 209, 48, 89, 1,
+ 207, 3, 212, 180, 209, 48, 89, 1, 64, 212, 180, 209, 48, 89, 1, 252, 33,
+ 212, 180, 209, 48, 89, 1, 70, 212, 180, 209, 48, 89, 1, 68, 212, 180,
+ 209, 48, 89, 1, 74, 212, 180, 209, 48, 89, 1, 211, 194, 212, 180, 209,
+ 48, 89, 1, 71, 212, 180, 209, 48, 89, 1, 234, 171, 212, 180, 209, 48, 89,
+ 1, 194, 202, 212, 180, 209, 48, 89, 199, 9, 212, 180, 209, 48, 89, 199,
+ 5, 212, 180, 209, 48, 89, 199, 6, 212, 180, 209, 48, 89, 199, 3, 212,
+ 180, 209, 48, 89, 199, 4, 212, 180, 209, 48, 89, 199, 7, 212, 180, 209,
+ 48, 89, 199, 8, 212, 180, 209, 48, 89, 3, 39, 210, 116, 212, 180, 209,
+ 48, 89, 3, 39, 199, 194, 212, 180, 209, 48, 89, 3, 39, 219, 103, 212,
+ 180, 209, 48, 89, 3, 39, 250, 198, 212, 180, 209, 48, 89, 3, 39, 223,
+ 122, 212, 180, 209, 48, 89, 3, 193, 172, 193, 171, 212, 180, 209, 48, 89,
+ 5, 219, 250, 212, 180, 209, 48, 89, 17, 192, 76, 212, 180, 209, 48, 89,
+ 17, 101, 212, 180, 209, 48, 89, 17, 104, 212, 180, 209, 48, 89, 17, 133,
+ 212, 180, 209, 48, 89, 17, 134, 212, 180, 209, 48, 89, 17, 151, 212, 180,
+ 209, 48, 89, 17, 170, 212, 180, 209, 48, 89, 17, 179, 212, 180, 209, 48,
+ 89, 17, 174, 212, 180, 209, 48, 89, 17, 182, 212, 180, 209, 48, 89, 219,
+ 92, 212, 196, 212, 180, 209, 48, 89, 47, 247, 19, 194, 148, 1, 252, 33,
+ 194, 148, 1, 64, 194, 148, 1, 249, 3, 194, 148, 1, 247, 19, 194, 148, 1,
+ 238, 0, 194, 148, 1, 231, 233, 194, 148, 1, 168, 194, 148, 1, 210, 94,
+ 194, 148, 1, 177, 194, 148, 1, 181, 194, 148, 1, 166, 194, 148, 1, 189,
+ 194, 148, 1, 199, 240, 194, 148, 1, 233, 97, 194, 148, 1, 188, 194, 148,
+ 1, 204, 64, 194, 148, 1, 223, 62, 194, 148, 1, 192, 112, 194, 148, 1,
+ 194, 169, 194, 148, 1, 196, 157, 194, 148, 1, 160, 194, 148, 1, 74, 194,
+ 148, 1, 250, 8, 194, 148, 1, 167, 194, 148, 1, 172, 194, 148, 1, 221,
+ 250, 194, 148, 1, 144, 194, 148, 1, 71, 194, 148, 1, 70, 194, 148, 1,
+ 214, 165, 194, 148, 1, 68, 194, 148, 1, 219, 130, 194, 148, 1, 198, 118,
+ 194, 148, 1, 198, 223, 194, 148, 1, 211, 201, 194, 148, 1, 251, 248, 194,
+ 148, 1, 250, 214, 194, 148, 1, 223, 164, 194, 148, 1, 211, 211, 194, 148,
+ 1, 234, 88, 194, 148, 1, 251, 249, 194, 148, 1, 212, 201, 194, 148, 1,
+ 197, 100, 194, 148, 1, 193, 13, 194, 148, 158, 198, 18, 194, 148, 158,
+ 198, 17, 194, 148, 158, 221, 101, 194, 148, 158, 221, 100, 194, 148, 17,
+ 192, 76, 194, 148, 17, 101, 194, 148, 17, 104, 194, 148, 17, 133, 194,
+ 148, 17, 134, 194, 148, 17, 151, 194, 148, 17, 170, 194, 148, 17, 179,
+ 194, 148, 17, 174, 194, 148, 17, 182, 194, 148, 214, 73, 57, 83, 82, 5,
+ 218, 235, 221, 204, 83, 82, 5, 218, 231, 160, 83, 82, 5, 218, 229, 221,
+ 33, 83, 82, 5, 218, 105, 222, 48, 83, 82, 5, 218, 75, 222, 57, 83, 82, 5,
+ 218, 94, 221, 88, 83, 82, 5, 218, 122, 221, 113, 83, 82, 5, 217, 247,
+ 221, 20, 83, 82, 5, 218, 226, 194, 72, 83, 82, 5, 218, 224, 194, 169, 83,
+ 82, 5, 218, 222, 193, 244, 83, 82, 5, 218, 44, 194, 100, 83, 82, 5, 218,
+ 52, 194, 111, 83, 82, 5, 218, 56, 194, 17, 83, 82, 5, 218, 125, 194, 36,
+ 83, 82, 5, 217, 232, 193, 240, 83, 82, 5, 218, 27, 194, 98, 83, 82, 5,
+ 218, 109, 193, 228, 83, 82, 5, 218, 121, 193, 230, 83, 82, 5, 218, 31,
+ 193, 229, 83, 82, 5, 218, 220, 216, 120, 83, 82, 5, 218, 218, 217, 160,
+ 83, 82, 5, 218, 216, 215, 209, 83, 82, 5, 218, 111, 217, 5, 83, 82, 5,
+ 218, 76, 216, 55, 83, 82, 5, 218, 16, 215, 234, 83, 82, 5, 217, 237, 215,
+ 228, 83, 82, 5, 218, 214, 248, 41, 83, 82, 5, 218, 211, 249, 3, 83, 82,
+ 5, 218, 209, 247, 124, 83, 82, 5, 218, 20, 248, 108, 83, 82, 5, 218, 73,
+ 248, 123, 83, 82, 5, 218, 67, 247, 206, 83, 82, 5, 218, 32, 247, 220, 83,
+ 82, 5, 218, 199, 70, 83, 82, 5, 218, 197, 64, 83, 82, 5, 218, 195, 68,
+ 83, 82, 5, 218, 7, 234, 171, 83, 82, 5, 218, 70, 71, 83, 82, 5, 218, 5,
+ 211, 194, 83, 82, 5, 218, 23, 74, 83, 82, 5, 218, 33, 234, 150, 83, 82,
+ 5, 218, 39, 223, 190, 83, 82, 5, 218, 35, 223, 190, 83, 82, 5, 217, 231,
+ 250, 224, 83, 82, 5, 217, 248, 234, 88, 83, 82, 5, 218, 184, 203, 125,
+ 83, 82, 5, 218, 182, 188, 83, 82, 5, 218, 180, 201, 184, 83, 82, 5, 218,
+ 8, 205, 205, 83, 82, 5, 218, 54, 205, 223, 83, 82, 5, 218, 34, 202, 183,
+ 83, 82, 5, 218, 91, 202, 212, 83, 82, 5, 217, 230, 203, 118, 83, 82, 5,
+ 218, 170, 219, 209, 83, 82, 5, 218, 168, 177, 83, 82, 5, 218, 166, 219,
+ 36, 83, 82, 5, 218, 86, 220, 32, 83, 82, 5, 218, 97, 220, 42, 83, 82, 5,
+ 218, 116, 219, 73, 83, 82, 5, 218, 17, 219, 107, 83, 82, 5, 218, 60, 184,
+ 220, 42, 83, 82, 5, 218, 192, 237, 16, 83, 82, 5, 218, 189, 238, 0, 83,
+ 82, 5, 218, 186, 235, 62, 83, 82, 5, 218, 81, 237, 101, 83, 82, 5, 217,
+ 246, 236, 120, 83, 82, 5, 217, 245, 236, 146, 83, 82, 5, 218, 178, 199,
+ 128, 83, 82, 5, 218, 175, 189, 83, 82, 5, 218, 173, 198, 45, 83, 82, 5,
+ 218, 79, 200, 56, 83, 82, 5, 218, 115, 200, 79, 83, 82, 5, 218, 66, 198,
+ 254, 83, 82, 5, 218, 101, 155, 83, 82, 5, 218, 164, 223, 20, 83, 82, 5,
+ 218, 161, 223, 62, 83, 82, 5, 218, 159, 222, 214, 83, 82, 5, 218, 13,
+ 223, 39, 83, 82, 5, 218, 57, 223, 41, 83, 82, 5, 218, 10, 222, 223, 83,
+ 82, 5, 218, 107, 222, 233, 83, 82, 5, 217, 251, 184, 222, 233, 83, 82, 5,
+ 218, 157, 193, 22, 83, 82, 5, 218, 154, 168, 83, 82, 5, 218, 152, 192,
+ 214, 83, 82, 5, 218, 61, 193, 66, 83, 82, 5, 218, 90, 193, 69, 83, 82, 5,
+ 218, 29, 192, 235, 83, 82, 5, 218, 49, 193, 1, 83, 82, 5, 218, 148, 233,
+ 11, 83, 82, 5, 218, 146, 233, 97, 83, 82, 5, 218, 144, 232, 77, 83, 82,
+ 5, 218, 92, 233, 40, 83, 82, 5, 218, 95, 233, 47, 83, 82, 5, 218, 37,
+ 232, 152, 83, 82, 5, 218, 82, 232, 164, 83, 82, 5, 217, 229, 232, 76, 83,
+ 82, 5, 218, 69, 233, 68, 83, 82, 5, 218, 142, 214, 20, 83, 82, 5, 218,
+ 140, 215, 61, 83, 82, 5, 218, 138, 212, 230, 83, 82, 5, 218, 53, 214,
+ 196, 83, 82, 5, 218, 1, 213, 130, 83, 82, 5, 217, 250, 229, 178, 83, 82,
+ 5, 218, 133, 144, 83, 82, 5, 217, 240, 228, 181, 83, 82, 5, 218, 136,
+ 229, 225, 83, 82, 5, 218, 74, 229, 255, 83, 82, 5, 218, 131, 229, 16, 83,
+ 82, 5, 218, 30, 229, 43, 83, 82, 5, 218, 87, 229, 224, 83, 82, 5, 218,
+ 42, 229, 9, 83, 82, 5, 218, 117, 229, 148, 83, 82, 5, 218, 40, 230, 65,
+ 83, 82, 5, 218, 83, 228, 164, 83, 82, 5, 218, 118, 229, 208, 83, 82, 5,
+ 217, 233, 229, 19, 83, 82, 5, 218, 124, 228, 177, 83, 82, 5, 218, 80,
+ 214, 130, 83, 82, 5, 218, 129, 214, 144, 83, 82, 5, 218, 88, 214, 127,
+ 83, 82, 5, 218, 55, 214, 138, 83, 82, 5, 218, 24, 214, 139, 83, 82, 5,
+ 218, 14, 214, 128, 83, 82, 5, 218, 50, 214, 129, 83, 82, 5, 218, 11, 214,
+ 143, 83, 82, 5, 218, 43, 214, 126, 83, 82, 5, 218, 84, 184, 214, 139, 83,
+ 82, 5, 218, 64, 184, 214, 128, 83, 82, 5, 217, 243, 184, 214, 129, 83,
+ 82, 5, 218, 15, 231, 46, 83, 82, 5, 218, 59, 231, 233, 83, 82, 5, 218, 2,
+ 230, 186, 83, 82, 5, 217, 236, 231, 150, 83, 82, 5, 218, 4, 230, 172, 83,
+ 82, 5, 218, 3, 230, 182, 83, 82, 5, 217, 242, 214, 149, 83, 82, 5, 218,
+ 113, 214, 86, 83, 82, 5, 217, 249, 214, 75, 83, 82, 5, 218, 102, 210, 51,
+ 83, 82, 5, 218, 71, 166, 83, 82, 5, 218, 120, 209, 51, 83, 82, 5, 218,
+ 89, 210, 168, 83, 82, 5, 218, 119, 210, 181, 83, 82, 5, 218, 68, 209,
+ 172, 83, 82, 5, 218, 104, 209, 198, 83, 82, 5, 218, 25, 217, 67, 83, 82,
+ 5, 218, 108, 217, 82, 83, 82, 5, 218, 48, 217, 61, 83, 82, 5, 218, 123,
+ 217, 74, 83, 82, 5, 217, 238, 217, 74, 83, 82, 5, 218, 98, 217, 75, 83,
+ 82, 5, 217, 254, 217, 62, 83, 82, 5, 217, 252, 217, 63, 83, 82, 5, 217,
+ 239, 217, 55, 83, 82, 5, 218, 9, 184, 217, 75, 83, 82, 5, 218, 65, 184,
+ 217, 62, 83, 82, 5, 218, 28, 184, 217, 63, 83, 82, 5, 218, 38, 221, 61,
+ 83, 82, 5, 218, 78, 221, 69, 83, 82, 5, 218, 96, 221, 57, 83, 82, 5, 218,
+ 127, 221, 64, 83, 82, 5, 218, 62, 221, 65, 83, 82, 5, 218, 58, 221, 59,
+ 83, 82, 5, 218, 12, 221, 60, 83, 82, 5, 218, 46, 231, 167, 83, 82, 5,
+ 218, 114, 231, 175, 83, 82, 5, 218, 22, 231, 162, 83, 82, 5, 218, 77,
+ 231, 171, 83, 82, 5, 218, 63, 231, 172, 83, 82, 5, 218, 99, 231, 163, 83,
+ 82, 5, 218, 100, 231, 165, 83, 82, 5, 217, 255, 167, 83, 82, 5, 218, 47,
+ 214, 240, 83, 82, 5, 218, 41, 214, 255, 83, 82, 5, 218, 45, 214, 222, 83,
+ 82, 5, 217, 235, 214, 246, 83, 82, 5, 218, 51, 214, 247, 83, 82, 5, 218,
+ 103, 214, 227, 83, 82, 5, 218, 106, 214, 231, 83, 82, 5, 218, 18, 214, 0,
+ 83, 82, 5, 217, 234, 213, 226, 83, 82, 5, 218, 21, 213, 247, 83, 82, 5,
+ 218, 36, 213, 230, 83, 82, 5, 217, 244, 196, 39, 83, 82, 5, 217, 241,
+ 196, 157, 83, 82, 5, 218, 19, 194, 223, 83, 82, 5, 217, 253, 196, 118,
+ 83, 82, 5, 218, 85, 196, 123, 83, 82, 5, 218, 26, 195, 236, 83, 82, 5,
+ 218, 93, 195, 252, 83, 82, 5, 218, 6, 212, 174, 83, 82, 5, 218, 112, 212,
+ 194, 83, 82, 5, 218, 0, 212, 156, 83, 82, 5, 218, 72, 212, 186, 83, 82,
+ 5, 218, 110, 212, 163, 83, 82, 17, 101, 83, 82, 17, 104, 83, 82, 17, 133,
+ 83, 82, 17, 134, 83, 82, 17, 151, 83, 82, 17, 170, 83, 82, 17, 179, 83,
+ 82, 17, 174, 83, 82, 17, 182, 83, 82, 38, 31, 200, 54, 83, 82, 38, 31,
+ 200, 25, 83, 82, 38, 31, 228, 160, 83, 82, 38, 31, 199, 163, 83, 82, 38,
+ 31, 200, 31, 199, 163, 83, 82, 38, 31, 228, 163, 199, 163, 83, 82, 38,
+ 31, 216, 123, 251, 116, 6, 1, 251, 14, 251, 116, 6, 1, 237, 253, 251,
+ 116, 6, 1, 220, 182, 251, 116, 6, 1, 216, 136, 251, 116, 6, 1, 249, 3,
+ 251, 116, 6, 1, 203, 68, 251, 116, 6, 1, 210, 181, 251, 116, 6, 1, 248,
+ 49, 251, 116, 6, 1, 167, 251, 116, 6, 1, 71, 251, 116, 6, 1, 233, 97,
+ 251, 116, 6, 1, 70, 251, 116, 6, 1, 74, 251, 116, 6, 1, 237, 40, 251,
+ 116, 6, 1, 193, 23, 251, 116, 6, 1, 194, 119, 251, 116, 6, 1, 212, 230,
+ 251, 116, 6, 1, 222, 139, 251, 116, 6, 1, 168, 251, 116, 6, 1, 68, 251,
+ 116, 6, 1, 223, 11, 251, 116, 6, 1, 242, 215, 251, 116, 6, 1, 144, 251,
+ 116, 6, 1, 208, 237, 251, 116, 6, 1, 231, 233, 251, 116, 6, 1, 212, 201,
+ 251, 116, 6, 1, 198, 45, 251, 116, 6, 1, 214, 65, 251, 116, 6, 1, 196,
+ 157, 251, 116, 6, 1, 221, 250, 251, 116, 6, 1, 231, 172, 251, 116, 6, 1,
+ 192, 101, 251, 116, 6, 1, 221, 60, 251, 116, 6, 1, 204, 64, 251, 116, 2,
+ 1, 251, 14, 251, 116, 2, 1, 237, 253, 251, 116, 2, 1, 220, 182, 251, 116,
+ 2, 1, 216, 136, 251, 116, 2, 1, 249, 3, 251, 116, 2, 1, 203, 68, 251,
+ 116, 2, 1, 210, 181, 251, 116, 2, 1, 248, 49, 251, 116, 2, 1, 167, 251,
+ 116, 2, 1, 71, 251, 116, 2, 1, 233, 97, 251, 116, 2, 1, 70, 251, 116, 2,
+ 1, 74, 251, 116, 2, 1, 237, 40, 251, 116, 2, 1, 193, 23, 251, 116, 2, 1,
+ 194, 119, 251, 116, 2, 1, 212, 230, 251, 116, 2, 1, 222, 139, 251, 116,
+ 2, 1, 168, 251, 116, 2, 1, 68, 251, 116, 2, 1, 223, 11, 251, 116, 2, 1,
+ 242, 215, 251, 116, 2, 1, 144, 251, 116, 2, 1, 208, 237, 251, 116, 2, 1,
+ 231, 233, 251, 116, 2, 1, 212, 201, 251, 116, 2, 1, 198, 45, 251, 116, 2,
+ 1, 214, 65, 251, 116, 2, 1, 196, 157, 251, 116, 2, 1, 221, 250, 251, 116,
+ 2, 1, 231, 172, 251, 116, 2, 1, 192, 101, 251, 116, 2, 1, 221, 60, 251,
+ 116, 2, 1, 204, 64, 251, 116, 251, 15, 219, 250, 251, 116, 18, 219, 250,
+ 251, 116, 231, 146, 77, 251, 116, 230, 66, 251, 116, 116, 216, 75, 251,
+ 116, 231, 147, 116, 216, 75, 251, 116, 212, 241, 251, 116, 215, 48, 77,
+ 251, 116, 17, 192, 76, 251, 116, 17, 101, 251, 116, 17, 104, 251, 116,
+ 17, 133, 251, 116, 17, 134, 251, 116, 17, 151, 251, 116, 17, 170, 251,
+ 116, 17, 179, 251, 116, 17, 174, 251, 116, 17, 182, 251, 116, 88, 233,
+ 204, 77, 251, 116, 88, 208, 159, 77, 223, 174, 137, 31, 101, 223, 174,
+ 137, 31, 104, 223, 174, 137, 31, 133, 223, 174, 137, 31, 134, 223, 174,
+ 137, 31, 151, 223, 174, 137, 31, 170, 223, 174, 137, 31, 179, 223, 174,
+ 137, 31, 174, 223, 174, 137, 31, 182, 223, 174, 137, 31, 200, 30, 223,
+ 174, 137, 31, 197, 239, 223, 174, 137, 31, 199, 184, 223, 174, 137, 31,
+ 232, 126, 223, 174, 137, 31, 233, 3, 223, 174, 137, 31, 203, 25, 223,
+ 174, 137, 31, 204, 140, 223, 174, 137, 31, 234, 137, 223, 174, 137, 31,
+ 214, 11, 223, 174, 137, 31, 90, 228, 162, 223, 174, 137, 31, 103, 228,
+ 162, 223, 174, 137, 31, 112, 228, 162, 223, 174, 137, 31, 232, 119, 228,
+ 162, 223, 174, 137, 31, 232, 214, 228, 162, 223, 174, 137, 31, 203, 41,
+ 228, 162, 223, 174, 137, 31, 204, 146, 228, 162, 223, 174, 137, 31, 234,
+ 148, 228, 162, 223, 174, 137, 31, 214, 16, 228, 162, 223, 174, 137, 31,
+ 90, 180, 223, 174, 137, 31, 103, 180, 223, 174, 137, 31, 112, 180, 223,
+ 174, 137, 31, 232, 119, 180, 223, 174, 137, 31, 232, 214, 180, 223, 174,
+ 137, 31, 203, 41, 180, 223, 174, 137, 31, 204, 146, 180, 223, 174, 137,
+ 31, 234, 148, 180, 223, 174, 137, 31, 214, 16, 180, 223, 174, 137, 31,
+ 200, 31, 180, 223, 174, 137, 31, 197, 240, 180, 223, 174, 137, 31, 199,
+ 185, 180, 223, 174, 137, 31, 232, 127, 180, 223, 174, 137, 31, 233, 4,
+ 180, 223, 174, 137, 31, 203, 26, 180, 223, 174, 137, 31, 204, 141, 180,
+ 223, 174, 137, 31, 234, 138, 180, 223, 174, 137, 31, 214, 12, 180, 223,
+ 174, 137, 31, 220, 100, 223, 174, 137, 31, 220, 99, 223, 174, 137, 220,
+ 101, 77, 223, 174, 137, 31, 222, 94, 223, 174, 137, 31, 222, 93, 223,
+ 174, 137, 31, 209, 111, 101, 223, 174, 137, 31, 209, 111, 104, 223, 174,
+ 137, 31, 209, 111, 133, 223, 174, 137, 31, 209, 111, 134, 223, 174, 137,
+ 31, 209, 111, 151, 223, 174, 137, 31, 209, 111, 170, 223, 174, 137, 31,
+ 209, 111, 179, 223, 174, 137, 31, 209, 111, 174, 223, 174, 137, 31, 209,
+ 111, 182, 223, 174, 137, 209, 230, 223, 174, 137, 232, 109, 90, 208, 167,
+ 223, 174, 137, 232, 109, 90, 230, 78, 223, 174, 137, 232, 109, 112, 208,
+ 165, 223, 174, 137, 206, 186, 77, 223, 174, 137, 31, 250, 249, 101, 223,
+ 174, 137, 31, 250, 249, 104, 223, 174, 137, 31, 250, 249, 200, 31, 180,
+ 223, 174, 137, 250, 249, 220, 101, 77, 211, 132, 137, 31, 101, 211, 132,
+ 137, 31, 104, 211, 132, 137, 31, 133, 211, 132, 137, 31, 134, 211, 132,
+ 137, 31, 151, 211, 132, 137, 31, 170, 211, 132, 137, 31, 179, 211, 132,
+ 137, 31, 174, 211, 132, 137, 31, 182, 211, 132, 137, 31, 200, 30, 211,
+ 132, 137, 31, 197, 239, 211, 132, 137, 31, 199, 184, 211, 132, 137, 31,
+ 232, 126, 211, 132, 137, 31, 233, 3, 211, 132, 137, 31, 203, 25, 211,
+ 132, 137, 31, 204, 140, 211, 132, 137, 31, 234, 137, 211, 132, 137, 31,
+ 214, 11, 211, 132, 137, 31, 90, 228, 162, 211, 132, 137, 31, 103, 228,
+ 162, 211, 132, 137, 31, 112, 228, 162, 211, 132, 137, 31, 232, 119, 228,
+ 162, 211, 132, 137, 31, 232, 214, 228, 162, 211, 132, 137, 31, 203, 41,
+ 228, 162, 211, 132, 137, 31, 204, 146, 228, 162, 211, 132, 137, 31, 234,
+ 148, 228, 162, 211, 132, 137, 31, 214, 16, 228, 162, 211, 132, 137, 31,
+ 90, 180, 211, 132, 137, 31, 103, 180, 211, 132, 137, 31, 112, 180, 211,
+ 132, 137, 31, 232, 119, 180, 211, 132, 137, 31, 232, 214, 180, 211, 132,
+ 137, 31, 203, 41, 180, 211, 132, 137, 31, 204, 146, 180, 211, 132, 137,
+ 31, 234, 148, 180, 211, 132, 137, 31, 214, 16, 180, 211, 132, 137, 31,
+ 200, 31, 180, 211, 132, 137, 31, 197, 240, 180, 211, 132, 137, 31, 199,
+ 185, 180, 211, 132, 137, 31, 232, 127, 180, 211, 132, 137, 31, 233, 4,
+ 180, 211, 132, 137, 31, 203, 26, 180, 211, 132, 137, 31, 204, 141, 180,
+ 211, 132, 137, 31, 234, 138, 180, 211, 132, 137, 31, 214, 12, 180, 211,
+ 132, 137, 217, 120, 211, 132, 137, 250, 249, 31, 104, 211, 132, 137, 250,
+ 249, 31, 133, 211, 132, 137, 250, 249, 31, 134, 211, 132, 137, 250, 249,
+ 31, 151, 211, 132, 137, 250, 249, 31, 170, 211, 132, 137, 250, 249, 31,
+ 179, 211, 132, 137, 250, 249, 31, 174, 211, 132, 137, 250, 249, 31, 182,
+ 211, 132, 137, 250, 249, 31, 200, 30, 211, 132, 137, 250, 249, 31, 232,
+ 119, 228, 162, 211, 132, 137, 250, 249, 31, 203, 41, 228, 162, 211, 132,
+ 137, 250, 249, 31, 103, 180, 211, 132, 137, 250, 249, 31, 200, 31, 180,
+ 211, 132, 137, 232, 109, 90, 230, 78, 211, 132, 137, 232, 109, 90, 203,
+ 29, 9, 13, 251, 26, 9, 13, 248, 96, 9, 13, 223, 37, 9, 13, 237, 227, 9,
+ 13, 194, 119, 9, 13, 192, 103, 9, 13, 230, 89, 9, 13, 200, 151, 9, 13,
+ 193, 64, 9, 13, 222, 139, 9, 13, 220, 94, 9, 13, 217, 26, 9, 13, 213,
+ 123, 9, 13, 205, 201, 9, 13, 251, 57, 9, 13, 233, 34, 9, 13, 206, 86, 9,
+ 13, 208, 232, 9, 13, 207, 221, 9, 13, 204, 8, 9, 13, 200, 49, 9, 13, 199,
+ 220, 9, 13, 221, 245, 9, 13, 199, 232, 9, 13, 237, 250, 9, 13, 192, 106,
+ 9, 13, 231, 79, 9, 13, 236, 113, 248, 96, 9, 13, 236, 113, 213, 123, 9,
+ 13, 236, 113, 233, 34, 9, 13, 236, 113, 208, 232, 9, 13, 88, 248, 96, 9,
+ 13, 88, 223, 37, 9, 13, 88, 229, 220, 9, 13, 88, 230, 89, 9, 13, 88, 193,
+ 64, 9, 13, 88, 222, 139, 9, 13, 88, 220, 94, 9, 13, 88, 217, 26, 9, 13,
+ 88, 213, 123, 9, 13, 88, 205, 201, 9, 13, 88, 251, 57, 9, 13, 88, 233,
+ 34, 9, 13, 88, 206, 86, 9, 13, 88, 208, 232, 9, 13, 88, 204, 8, 9, 13,
+ 88, 200, 49, 9, 13, 88, 199, 220, 9, 13, 88, 221, 245, 9, 13, 88, 237,
+ 250, 9, 13, 88, 231, 79, 9, 13, 200, 146, 223, 37, 9, 13, 200, 146, 230,
+ 89, 9, 13, 200, 146, 193, 64, 9, 13, 200, 146, 220, 94, 9, 13, 200, 146,
+ 213, 123, 9, 13, 200, 146, 205, 201, 9, 13, 200, 146, 251, 57, 9, 13,
+ 200, 146, 206, 86, 9, 13, 200, 146, 208, 232, 9, 13, 200, 146, 204, 8, 9,
+ 13, 200, 146, 221, 245, 9, 13, 200, 146, 237, 250, 9, 13, 200, 146, 231,
+ 79, 9, 13, 200, 146, 236, 113, 213, 123, 9, 13, 200, 146, 236, 113, 208,
+ 232, 9, 13, 201, 216, 248, 96, 9, 13, 201, 216, 223, 37, 9, 13, 201, 216,
+ 229, 220, 9, 13, 201, 216, 230, 89, 9, 13, 201, 216, 200, 151, 9, 13,
+ 201, 216, 193, 64, 9, 13, 201, 216, 222, 139, 9, 13, 201, 216, 217, 26,
+ 9, 13, 201, 216, 213, 123, 9, 13, 201, 216, 205, 201, 9, 13, 201, 216,
+ 251, 57, 9, 13, 201, 216, 233, 34, 9, 13, 201, 216, 206, 86, 9, 13, 201,
+ 216, 208, 232, 9, 13, 201, 216, 204, 8, 9, 13, 201, 216, 200, 49, 9, 13,
+ 201, 216, 199, 220, 9, 13, 201, 216, 221, 245, 9, 13, 201, 216, 237, 250,
+ 9, 13, 201, 216, 192, 106, 9, 13, 201, 216, 231, 79, 9, 13, 201, 216,
+ 236, 113, 248, 96, 9, 13, 201, 216, 236, 113, 233, 34, 9, 13, 219, 68,
+ 251, 26, 9, 13, 219, 68, 248, 96, 9, 13, 219, 68, 223, 37, 9, 13, 219,
+ 68, 237, 227, 9, 13, 219, 68, 229, 220, 9, 13, 219, 68, 194, 119, 9, 13,
+ 219, 68, 192, 103, 9, 13, 219, 68, 230, 89, 9, 13, 219, 68, 200, 151, 9,
+ 13, 219, 68, 193, 64, 9, 13, 219, 68, 220, 94, 9, 13, 219, 68, 217, 26,
+ 9, 13, 219, 68, 213, 123, 9, 13, 219, 68, 205, 201, 9, 13, 219, 68, 251,
+ 57, 9, 13, 219, 68, 233, 34, 9, 13, 219, 68, 206, 86, 9, 13, 219, 68,
+ 208, 232, 9, 13, 219, 68, 207, 221, 9, 13, 219, 68, 204, 8, 9, 13, 219,
+ 68, 200, 49, 9, 13, 219, 68, 199, 220, 9, 13, 219, 68, 221, 245, 9, 13,
+ 219, 68, 199, 232, 9, 13, 219, 68, 237, 250, 9, 13, 219, 68, 192, 106, 9,
+ 13, 219, 68, 231, 79, 9, 13, 235, 102, 248, 96, 9, 13, 235, 102, 223, 37,
+ 9, 13, 235, 102, 237, 227, 9, 13, 235, 102, 194, 119, 9, 13, 235, 102,
+ 192, 103, 9, 13, 235, 102, 230, 89, 9, 13, 235, 102, 200, 151, 9, 13,
+ 235, 102, 193, 64, 9, 13, 235, 102, 220, 94, 9, 13, 235, 102, 217, 26, 9,
+ 13, 235, 102, 213, 123, 9, 13, 235, 102, 205, 201, 9, 13, 235, 102, 251,
+ 57, 9, 13, 235, 102, 233, 34, 9, 13, 235, 102, 206, 86, 9, 13, 235, 102,
+ 208, 232, 9, 13, 235, 102, 207, 221, 9, 13, 235, 102, 204, 8, 9, 13, 235,
+ 102, 200, 49, 9, 13, 235, 102, 199, 220, 9, 13, 235, 102, 221, 245, 9,
+ 13, 235, 102, 199, 232, 9, 13, 235, 102, 237, 250, 9, 13, 235, 102, 192,
+ 106, 9, 13, 235, 102, 231, 79, 9, 13, 211, 174, 91, 4, 176, 4, 200, 102,
+ 9, 13, 211, 174, 176, 4, 237, 227, 217, 182, 120, 234, 186, 194, 52, 217,
+ 182, 120, 202, 171, 194, 52, 217, 182, 120, 194, 91, 194, 52, 217, 182,
+ 120, 178, 194, 52, 217, 182, 120, 207, 237, 235, 84, 217, 182, 120, 230,
+ 201, 235, 84, 217, 182, 120, 62, 235, 84, 217, 182, 120, 90, 80, 243, 0,
+ 217, 182, 120, 103, 80, 243, 0, 217, 182, 120, 112, 80, 243, 0, 217, 182,
+ 120, 232, 119, 80, 243, 0, 217, 182, 120, 232, 214, 80, 243, 0, 217, 182,
+ 120, 203, 41, 80, 243, 0, 217, 182, 120, 204, 146, 80, 243, 0, 217, 182,
+ 120, 234, 148, 80, 243, 0, 217, 182, 120, 214, 16, 80, 243, 0, 217, 182,
+ 120, 90, 80, 248, 208, 217, 182, 120, 103, 80, 248, 208, 217, 182, 120,
+ 112, 80, 248, 208, 217, 182, 120, 232, 119, 80, 248, 208, 217, 182, 120,
+ 232, 214, 80, 248, 208, 217, 182, 120, 203, 41, 80, 248, 208, 217, 182,
+ 120, 204, 146, 80, 248, 208, 217, 182, 120, 234, 148, 80, 248, 208, 217,
+ 182, 120, 214, 16, 80, 248, 208, 217, 182, 120, 90, 80, 242, 127, 217,
+ 182, 120, 103, 80, 242, 127, 217, 182, 120, 112, 80, 242, 127, 217, 182,
+ 120, 232, 119, 80, 242, 127, 217, 182, 120, 232, 214, 80, 242, 127, 217,
+ 182, 120, 203, 41, 80, 242, 127, 217, 182, 120, 204, 146, 80, 242, 127,
+ 217, 182, 120, 234, 148, 80, 242, 127, 217, 182, 120, 214, 16, 80, 242,
+ 127, 217, 182, 120, 209, 210, 217, 182, 120, 211, 160, 217, 182, 120,
+ 248, 209, 217, 182, 120, 242, 169, 217, 182, 120, 202, 112, 217, 182,
+ 120, 201, 125, 217, 182, 120, 249, 250, 217, 182, 120, 194, 43, 217, 182,
+ 120, 222, 226, 217, 182, 120, 248, 252, 191, 191, 120, 229, 5, 248, 252,
+ 191, 191, 120, 229, 3, 191, 191, 120, 229, 2, 191, 191, 120, 229, 1, 191,
+ 191, 120, 229, 0, 191, 191, 120, 228, 255, 191, 191, 120, 228, 254, 191,
+ 191, 120, 228, 253, 191, 191, 120, 228, 252, 191, 191, 120, 228, 251,
+ 191, 191, 120, 228, 250, 191, 191, 120, 228, 249, 191, 191, 120, 228,
+ 248, 191, 191, 120, 228, 247, 191, 191, 120, 228, 246, 191, 191, 120,
+ 228, 245, 191, 191, 120, 228, 244, 191, 191, 120, 228, 243, 191, 191,
+ 120, 228, 242, 191, 191, 120, 228, 241, 191, 191, 120, 228, 240, 191,
+ 191, 120, 228, 239, 191, 191, 120, 228, 238, 191, 191, 120, 228, 237,
+ 191, 191, 120, 228, 236, 191, 191, 120, 228, 235, 191, 191, 120, 228,
+ 234, 191, 191, 120, 228, 233, 191, 191, 120, 228, 232, 191, 191, 120,
+ 228, 231, 191, 191, 120, 228, 230, 191, 191, 120, 228, 229, 191, 191,
+ 120, 228, 228, 191, 191, 120, 228, 227, 191, 191, 120, 228, 226, 191,
+ 191, 120, 228, 225, 191, 191, 120, 228, 224, 191, 191, 120, 228, 223,
+ 191, 191, 120, 228, 222, 191, 191, 120, 228, 221, 191, 191, 120, 228,
+ 220, 191, 191, 120, 228, 219, 191, 191, 120, 228, 218, 191, 191, 120,
+ 228, 217, 191, 191, 120, 228, 216, 191, 191, 120, 228, 215, 191, 191,
+ 120, 228, 214, 191, 191, 120, 228, 213, 191, 191, 120, 228, 212, 191,
+ 191, 120, 228, 211, 191, 191, 120, 84, 248, 252, 191, 191, 120, 196, 104,
+ 191, 191, 120, 196, 103, 191, 191, 120, 196, 102, 191, 191, 120, 196,
+ 101, 191, 191, 120, 196, 100, 191, 191, 120, 196, 99, 191, 191, 120, 196,
+ 98, 191, 191, 120, 196, 97, 191, 191, 120, 196, 96, 191, 191, 120, 196,
+ 95, 191, 191, 120, 196, 94, 191, 191, 120, 196, 93, 191, 191, 120, 196,
+ 92, 191, 191, 120, 196, 91, 191, 191, 120, 196, 90, 191, 191, 120, 196,
+ 89, 191, 191, 120, 196, 88, 191, 191, 120, 196, 87, 191, 191, 120, 196,
+ 86, 191, 191, 120, 196, 85, 191, 191, 120, 196, 84, 191, 191, 120, 196,
+ 83, 191, 191, 120, 196, 82, 191, 191, 120, 196, 81, 191, 191, 120, 196,
+ 80, 191, 191, 120, 196, 79, 191, 191, 120, 196, 78, 191, 191, 120, 196,
+ 77, 191, 191, 120, 196, 76, 191, 191, 120, 196, 75, 191, 191, 120, 196,
+ 74, 191, 191, 120, 196, 73, 191, 191, 120, 196, 72, 191, 191, 120, 196,
+ 71, 191, 191, 120, 196, 70, 191, 191, 120, 196, 69, 191, 191, 120, 196,
+ 68, 191, 191, 120, 196, 67, 191, 191, 120, 196, 66, 191, 191, 120, 196,
+ 65, 191, 191, 120, 196, 64, 191, 191, 120, 196, 63, 191, 191, 120, 196,
+ 62, 191, 191, 120, 196, 61, 191, 191, 120, 196, 60, 191, 191, 120, 196,
+ 59, 191, 191, 120, 196, 58, 191, 191, 120, 196, 57, 191, 191, 120, 196,
+ 56, 209, 220, 246, 216, 248, 252, 209, 220, 246, 216, 251, 136, 80, 202,
+ 157, 209, 220, 246, 216, 103, 80, 202, 157, 209, 220, 246, 216, 112, 80,
+ 202, 157, 209, 220, 246, 216, 232, 119, 80, 202, 157, 209, 220, 246, 216,
+ 232, 214, 80, 202, 157, 209, 220, 246, 216, 203, 41, 80, 202, 157, 209,
+ 220, 246, 216, 204, 146, 80, 202, 157, 209, 220, 246, 216, 234, 148, 80,
+ 202, 157, 209, 220, 246, 216, 214, 16, 80, 202, 157, 209, 220, 246, 216,
+ 200, 31, 80, 202, 157, 209, 220, 246, 216, 223, 60, 80, 202, 157, 209,
+ 220, 246, 216, 221, 123, 80, 202, 157, 209, 220, 246, 216, 208, 161, 80,
+ 202, 157, 209, 220, 246, 216, 221, 177, 80, 202, 157, 209, 220, 246, 216,
+ 251, 136, 80, 229, 231, 209, 220, 246, 216, 103, 80, 229, 231, 209, 220,
+ 246, 216, 112, 80, 229, 231, 209, 220, 246, 216, 232, 119, 80, 229, 231,
+ 209, 220, 246, 216, 232, 214, 80, 229, 231, 209, 220, 246, 216, 203, 41,
+ 80, 229, 231, 209, 220, 246, 216, 204, 146, 80, 229, 231, 209, 220, 246,
+ 216, 234, 148, 80, 229, 231, 209, 220, 246, 216, 214, 16, 80, 229, 231,
+ 209, 220, 246, 216, 200, 31, 80, 229, 231, 209, 220, 246, 216, 223, 60,
+ 80, 229, 231, 209, 220, 246, 216, 221, 123, 80, 229, 231, 209, 220, 246,
+ 216, 208, 161, 80, 229, 231, 209, 220, 246, 216, 221, 177, 80, 229, 231,
+ 209, 220, 246, 216, 207, 237, 222, 226, 209, 220, 246, 216, 251, 136, 80,
+ 237, 3, 209, 220, 246, 216, 103, 80, 237, 3, 209, 220, 246, 216, 112, 80,
+ 237, 3, 209, 220, 246, 216, 232, 119, 80, 237, 3, 209, 220, 246, 216,
+ 232, 214, 80, 237, 3, 209, 220, 246, 216, 203, 41, 80, 237, 3, 209, 220,
+ 246, 216, 204, 146, 80, 237, 3, 209, 220, 246, 216, 234, 148, 80, 237, 3,
+ 209, 220, 246, 216, 214, 16, 80, 237, 3, 209, 220, 246, 216, 200, 31, 80,
+ 237, 3, 209, 220, 246, 216, 223, 60, 80, 237, 3, 209, 220, 246, 216, 221,
+ 123, 80, 237, 3, 209, 220, 246, 216, 208, 161, 80, 237, 3, 209, 220, 246,
+ 216, 221, 177, 80, 237, 3, 209, 220, 246, 216, 60, 222, 226, 209, 220,
+ 246, 216, 251, 136, 80, 242, 69, 209, 220, 246, 216, 103, 80, 242, 69,
+ 209, 220, 246, 216, 112, 80, 242, 69, 209, 220, 246, 216, 232, 119, 80,
+ 242, 69, 209, 220, 246, 216, 232, 214, 80, 242, 69, 209, 220, 246, 216,
+ 203, 41, 80, 242, 69, 209, 220, 246, 216, 204, 146, 80, 242, 69, 209,
+ 220, 246, 216, 234, 148, 80, 242, 69, 209, 220, 246, 216, 214, 16, 80,
+ 242, 69, 209, 220, 246, 216, 200, 31, 80, 242, 69, 209, 220, 246, 216,
+ 223, 60, 80, 242, 69, 209, 220, 246, 216, 221, 123, 80, 242, 69, 209,
+ 220, 246, 216, 208, 161, 80, 242, 69, 209, 220, 246, 216, 221, 177, 80,
+ 242, 69, 209, 220, 246, 216, 62, 222, 226, 209, 220, 246, 216, 232, 150,
+ 209, 220, 246, 216, 198, 146, 209, 220, 246, 216, 198, 135, 209, 220,
+ 246, 216, 198, 132, 209, 220, 246, 216, 198, 131, 209, 220, 246, 216,
+ 198, 130, 209, 220, 246, 216, 198, 129, 209, 220, 246, 216, 198, 128,
+ 209, 220, 246, 216, 198, 127, 209, 220, 246, 216, 198, 126, 209, 220,
+ 246, 216, 198, 145, 209, 220, 246, 216, 198, 144, 209, 220, 246, 216,
+ 198, 143, 209, 220, 246, 216, 198, 142, 209, 220, 246, 216, 198, 141,
+ 209, 220, 246, 216, 198, 140, 209, 220, 246, 216, 198, 139, 209, 220,
+ 246, 216, 198, 138, 209, 220, 246, 216, 198, 137, 209, 220, 246, 216,
+ 198, 136, 209, 220, 246, 216, 198, 134, 209, 220, 246, 216, 198, 133, 17,
+ 192, 77, 232, 71, 201, 238, 17, 192, 77, 242, 38, 17, 90, 242, 38, 17,
+ 103, 242, 38, 17, 112, 242, 38, 17, 232, 119, 242, 38, 17, 232, 214, 242,
+ 38, 17, 203, 41, 242, 38, 17, 204, 146, 242, 38, 17, 234, 148, 242, 38,
+ 17, 214, 16, 242, 38, 236, 213, 47, 49, 17, 192, 76, 236, 213, 214, 199,
+ 47, 49, 17, 192, 76, 47, 192, 77, 4, 203, 4, 47, 250, 182, 54, 47, 236,
+ 127, 3, 4, 211, 115, 248, 247, 125, 8, 6, 1, 64, 125, 8, 6, 1, 249, 226,
+ 125, 8, 6, 1, 247, 52, 125, 8, 6, 1, 238, 95, 125, 8, 6, 1, 71, 125, 8,
+ 6, 1, 233, 163, 125, 8, 6, 1, 232, 44, 125, 8, 6, 1, 230, 124, 125, 8, 6,
+ 1, 70, 125, 8, 6, 1, 223, 65, 125, 8, 6, 1, 222, 184, 125, 8, 6, 1, 165,
+ 125, 8, 6, 1, 218, 236, 125, 8, 6, 1, 215, 151, 125, 8, 6, 1, 74, 125, 8,
+ 6, 1, 211, 93, 125, 8, 6, 1, 208, 247, 125, 8, 6, 1, 150, 125, 8, 6, 1,
+ 206, 158, 125, 8, 6, 1, 200, 228, 125, 8, 6, 1, 68, 125, 8, 6, 1, 196,
+ 236, 125, 8, 6, 1, 194, 202, 125, 8, 6, 1, 193, 223, 125, 8, 6, 1, 193,
+ 148, 125, 8, 6, 1, 192, 155, 198, 237, 204, 2, 247, 164, 8, 6, 1, 206,
+ 158, 47, 43, 8, 6, 1, 247, 52, 47, 43, 8, 6, 1, 150, 47, 246, 159, 47,
+ 193, 225, 238, 228, 109, 108, 8, 6, 1, 64, 108, 8, 6, 1, 249, 226, 108,
+ 8, 6, 1, 247, 52, 108, 8, 6, 1, 238, 95, 108, 8, 6, 1, 71, 108, 8, 6, 1,
+ 233, 163, 108, 8, 6, 1, 232, 44, 108, 8, 6, 1, 230, 124, 108, 8, 6, 1,
+ 70, 108, 8, 6, 1, 223, 65, 108, 8, 6, 1, 222, 184, 108, 8, 6, 1, 165,
+ 108, 8, 6, 1, 218, 236, 108, 8, 6, 1, 215, 151, 108, 8, 6, 1, 74, 108, 8,
+ 6, 1, 211, 93, 108, 8, 6, 1, 208, 247, 108, 8, 6, 1, 150, 108, 8, 6, 1,
+ 206, 158, 108, 8, 6, 1, 200, 228, 108, 8, 6, 1, 68, 108, 8, 6, 1, 196,
+ 236, 108, 8, 6, 1, 194, 202, 108, 8, 6, 1, 193, 223, 108, 8, 6, 1, 193,
+ 148, 108, 8, 6, 1, 192, 155, 108, 228, 148, 108, 215, 175, 108, 205, 225,
+ 108, 202, 95, 108, 209, 132, 108, 194, 112, 214, 199, 47, 8, 6, 1, 64,
+ 214, 199, 47, 8, 6, 1, 249, 226, 214, 199, 47, 8, 6, 1, 247, 52, 214,
+ 199, 47, 8, 6, 1, 238, 95, 214, 199, 47, 8, 6, 1, 71, 214, 199, 47, 8, 6,
+ 1, 233, 163, 214, 199, 47, 8, 6, 1, 232, 44, 214, 199, 47, 8, 6, 1, 230,
+ 124, 214, 199, 47, 8, 6, 1, 70, 214, 199, 47, 8, 6, 1, 223, 65, 214, 199,
+ 47, 8, 6, 1, 222, 184, 214, 199, 47, 8, 6, 1, 165, 214, 199, 47, 8, 6, 1,
+ 218, 236, 214, 199, 47, 8, 6, 1, 215, 151, 214, 199, 47, 8, 6, 1, 74,
+ 214, 199, 47, 8, 6, 1, 211, 93, 214, 199, 47, 8, 6, 1, 208, 247, 214,
+ 199, 47, 8, 6, 1, 150, 214, 199, 47, 8, 6, 1, 206, 158, 214, 199, 47, 8,
+ 6, 1, 200, 228, 214, 199, 47, 8, 6, 1, 68, 214, 199, 47, 8, 6, 1, 196,
+ 236, 214, 199, 47, 8, 6, 1, 194, 202, 214, 199, 47, 8, 6, 1, 193, 223,
+ 214, 199, 47, 8, 6, 1, 193, 148, 214, 199, 47, 8, 6, 1, 192, 155, 208,
+ 39, 217, 54, 57, 208, 39, 217, 51, 57, 208, 39, 215, 246, 57, 47, 246,
+ 182, 47, 247, 53, 4, 211, 115, 248, 247, 47, 228, 167, 233, 0, 214, 199,
+ 108, 8, 6, 1, 64, 214, 199, 108, 8, 6, 1, 249, 226, 214, 199, 108, 8, 6,
+ 1, 247, 52, 214, 199, 108, 8, 6, 1, 238, 95, 214, 199, 108, 8, 6, 1, 71,
+ 214, 199, 108, 8, 6, 1, 233, 163, 214, 199, 108, 8, 6, 1, 232, 44, 214,
+ 199, 108, 8, 6, 1, 230, 124, 214, 199, 108, 8, 6, 1, 70, 214, 199, 108,
+ 8, 6, 1, 223, 65, 214, 199, 108, 8, 6, 1, 222, 184, 214, 199, 108, 8, 6,
+ 1, 165, 214, 199, 108, 8, 6, 1, 218, 236, 214, 199, 108, 8, 6, 1, 215,
+ 151, 214, 199, 108, 8, 6, 1, 74, 214, 199, 108, 8, 6, 1, 211, 93, 214,
+ 199, 108, 8, 6, 1, 208, 247, 214, 199, 108, 8, 6, 1, 150, 214, 199, 108,
+ 8, 6, 1, 206, 158, 214, 199, 108, 8, 6, 1, 200, 228, 214, 199, 108, 8, 6,
+ 1, 68, 214, 199, 108, 8, 6, 1, 196, 236, 214, 199, 108, 8, 6, 1, 194,
+ 202, 214, 199, 108, 8, 6, 1, 193, 223, 214, 199, 108, 8, 6, 1, 193, 148,
+ 214, 199, 108, 8, 6, 1, 192, 155, 238, 180, 214, 199, 108, 8, 6, 1, 211,
+ 93, 214, 199, 108, 228, 51, 214, 199, 108, 166, 214, 199, 108, 188, 214,
+ 199, 108, 251, 238, 214, 199, 108, 194, 112, 50, 236, 166, 108, 242, 111,
+ 108, 238, 235, 108, 232, 99, 108, 228, 42, 108, 214, 176, 108, 214, 167,
+ 108, 211, 231, 108, 202, 178, 108, 130, 4, 233, 204, 77, 108, 195, 226,
+ 108, 112, 238, 95, 108, 205, 212, 205, 231, 108, 103, 222, 184, 108, 232,
+ 119, 222, 184, 108, 234, 148, 222, 184, 108, 232, 214, 209, 192, 101,
+ 108, 204, 146, 209, 192, 101, 108, 197, 228, 209, 192, 104, 108, 203, 26,
+ 211, 93, 108, 90, 228, 163, 197, 240, 211, 93, 108, 8, 2, 1, 238, 95,
+ 108, 230, 2, 108, 230, 1, 108, 229, 170, 108, 219, 61, 108, 203, 144,
+ 108, 197, 96, 108, 195, 249, 217, 107, 194, 9, 109, 207, 229, 223, 173,
+ 16, 1, 64, 207, 229, 223, 173, 16, 1, 249, 226, 207, 229, 223, 173, 16,
+ 1, 247, 52, 207, 229, 223, 173, 16, 1, 238, 95, 207, 229, 223, 173, 16,
+ 1, 71, 207, 229, 223, 173, 16, 1, 233, 163, 207, 229, 223, 173, 16, 1,
+ 232, 44, 207, 229, 223, 173, 16, 1, 230, 124, 207, 229, 223, 173, 16, 1,
+ 70, 207, 229, 223, 173, 16, 1, 223, 65, 207, 229, 223, 173, 16, 1, 222,
+ 184, 207, 229, 223, 173, 16, 1, 165, 207, 229, 223, 173, 16, 1, 218, 236,
+ 207, 229, 223, 173, 16, 1, 215, 151, 207, 229, 223, 173, 16, 1, 74, 207,
+ 229, 223, 173, 16, 1, 211, 93, 207, 229, 223, 173, 16, 1, 208, 247, 207,
+ 229, 223, 173, 16, 1, 150, 207, 229, 223, 173, 16, 1, 206, 158, 207, 229,
+ 223, 173, 16, 1, 200, 228, 207, 229, 223, 173, 16, 1, 68, 207, 229, 223,
+ 173, 16, 1, 196, 236, 207, 229, 223, 173, 16, 1, 194, 202, 207, 229, 223,
+ 173, 16, 1, 193, 223, 207, 229, 223, 173, 16, 1, 193, 148, 207, 229, 223,
+ 173, 16, 1, 192, 155, 50, 229, 140, 229, 29, 108, 75, 221, 96, 108, 75,
+ 188, 108, 12, 197, 59, 225, 242, 108, 12, 197, 59, 225, 246, 108, 12,
+ 197, 59, 225, 254, 108, 75, 237, 116, 108, 12, 197, 59, 226, 5, 108, 12,
+ 197, 59, 225, 248, 108, 12, 197, 59, 225, 220, 108, 12, 197, 59, 225,
+ 247, 108, 12, 197, 59, 226, 4, 108, 12, 197, 59, 225, 234, 108, 12, 197,
+ 59, 225, 227, 108, 12, 197, 59, 225, 236, 108, 12, 197, 59, 226, 1, 108,
+ 12, 197, 59, 225, 243, 108, 12, 197, 59, 226, 3, 108, 12, 197, 59, 225,
+ 235, 108, 12, 197, 59, 226, 2, 108, 12, 197, 59, 225, 221, 108, 12, 197,
+ 59, 225, 226, 108, 12, 197, 59, 225, 219, 108, 12, 197, 59, 225, 249,
+ 108, 12, 197, 59, 225, 251, 108, 12, 197, 59, 225, 229, 108, 12, 197, 59,
+ 225, 240, 108, 12, 197, 59, 225, 238, 108, 12, 197, 59, 226, 8, 108, 12,
+ 197, 59, 226, 7, 108, 12, 197, 59, 225, 217, 108, 12, 197, 59, 225, 244,
+ 108, 12, 197, 59, 226, 6, 108, 12, 197, 59, 225, 253, 108, 12, 197, 59,
+ 225, 239, 108, 12, 197, 59, 225, 218, 108, 12, 197, 59, 225, 241, 108,
+ 12, 197, 59, 225, 223, 108, 12, 197, 59, 225, 222, 108, 12, 197, 59, 225,
+ 252, 108, 12, 197, 59, 225, 230, 108, 12, 197, 59, 225, 232, 108, 12,
+ 197, 59, 225, 233, 108, 12, 197, 59, 225, 225, 108, 12, 197, 59, 226, 0,
+ 108, 12, 197, 59, 225, 250, 108, 12, 197, 59, 225, 216, 198, 237, 204, 2,
+ 247, 164, 12, 197, 59, 225, 231, 198, 237, 204, 2, 247, 164, 12, 197, 59,
+ 226, 7, 198, 237, 204, 2, 247, 164, 12, 197, 59, 226, 5, 198, 237, 204,
+ 2, 247, 164, 12, 197, 59, 225, 245, 198, 237, 204, 2, 247, 164, 12, 197,
+ 59, 225, 228, 198, 237, 204, 2, 247, 164, 12, 197, 59, 225, 241, 198,
+ 237, 204, 2, 247, 164, 12, 197, 59, 225, 224, 198, 237, 204, 2, 247, 164,
+ 12, 197, 59, 225, 255, 198, 237, 204, 2, 247, 164, 12, 197, 59, 225, 237,
+ 47, 228, 39, 251, 110, 47, 228, 39, 251, 141, 207, 7, 16, 39, 232, 77,
+ 207, 7, 16, 39, 219, 36, 207, 7, 16, 39, 203, 178, 207, 7, 16, 39, 193,
+ 196, 207, 7, 16, 39, 203, 161, 207, 7, 16, 39, 247, 7, 238, 106, 232,
+ 162, 242, 84, 197, 81, 214, 32, 4, 202, 16, 201, 118, 136, 216, 8, 201,
+ 117, 242, 115, 250, 27, 235, 35, 201, 116, 136, 247, 111, 208, 40, 247,
+ 143, 250, 27, 214, 31, 194, 130, 194, 124, 195, 242, 216, 128, 194, 114,
+ 234, 190, 231, 7, 233, 220, 234, 190, 231, 7, 250, 232, 234, 190, 231, 7,
+ 250, 46, 231, 7, 4, 216, 252, 214, 177, 216, 30, 109, 194, 116, 238, 194,
+ 216, 30, 109, 232, 226, 208, 168, 216, 30, 109, 194, 116, 231, 42, 216,
+ 30, 109, 232, 71, 216, 30, 109, 194, 144, 231, 42, 216, 30, 109, 220, 66,
+ 208, 168, 216, 30, 109, 194, 144, 238, 194, 216, 30, 109, 238, 194, 216,
+ 29, 214, 177, 216, 30, 4, 233, 91, 232, 226, 208, 168, 216, 30, 4, 233,
+ 91, 220, 66, 208, 168, 216, 30, 4, 233, 91, 232, 71, 216, 30, 4, 233, 91,
+ 201, 124, 4, 233, 91, 231, 3, 202, 19, 203, 200, 202, 19, 199, 212, 60,
+ 235, 70, 62, 201, 123, 62, 201, 124, 4, 2, 242, 75, 62, 201, 124, 248,
+ 93, 242, 75, 62, 201, 124, 248, 93, 242, 76, 4, 208, 41, 242, 76, 4, 208,
+ 41, 242, 76, 4, 202, 218, 242, 76, 4, 219, 192, 242, 76, 4, 198, 241,
+ 232, 163, 194, 53, 247, 225, 233, 91, 228, 202, 236, 134, 200, 158, 247,
+ 87, 242, 223, 205, 203, 233, 214, 198, 195, 237, 109, 198, 195, 211, 41,
+ 198, 195, 247, 12, 228, 202, 210, 135, 198, 29, 242, 227, 247, 228, 207,
+ 20, 229, 169, 201, 121, 247, 228, 234, 194, 80, 217, 171, 234, 194, 80,
+ 207, 139, 229, 203, 232, 119, 220, 38, 242, 74, 217, 139, 220, 37, 233,
+ 72, 220, 37, 220, 38, 232, 170, 223, 191, 194, 52, 215, 186, 199, 22,
+ 250, 7, 230, 218, 217, 14, 194, 128, 200, 119, 220, 5, 248, 204, 210, 0,
+ 207, 237, 250, 144, 230, 201, 250, 144, 210, 174, 210, 178, 242, 228,
+ 201, 221, 230, 71, 202, 252, 80, 209, 236, 217, 41, 211, 212, 247, 207,
+ 209, 144, 220, 16, 207, 140, 238, 200, 207, 140, 248, 217, 238, 238, 207,
+ 139, 238, 134, 26, 207, 139, 202, 2, 247, 177, 202, 156, 247, 156, 232,
+ 97, 232, 93, 207, 45, 201, 71, 209, 147, 237, 205, 212, 2, 201, 90, 232,
+ 94, 203, 170, 232, 225, 247, 6, 4, 201, 63, 237, 52, 202, 198, 228, 50,
+ 238, 198, 204, 20, 228, 49, 228, 50, 238, 198, 235, 99, 238, 237, 242,
+ 186, 161, 246, 233, 219, 88, 238, 125, 229, 18, 209, 149, 203, 184, 248,
+ 73, 247, 173, 209, 150, 80, 232, 151, 238, 236, 232, 140, 26, 221, 124,
+ 200, 67, 194, 39, 230, 40, 206, 70, 247, 190, 26, 238, 148, 194, 49, 231,
+ 11, 242, 58, 231, 11, 198, 150, 235, 77, 248, 104, 215, 226, 242, 91,
+ 248, 104, 215, 225, 248, 255, 247, 189, 232, 140, 26, 221, 125, 4, 209,
+ 221, 247, 190, 4, 209, 165, 238, 225, 209, 167, 207, 141, 193, 255, 209,
+ 106, 248, 10, 247, 5, 223, 59, 242, 176, 198, 195, 233, 55, 242, 175,
+ 232, 228, 232, 229, 202, 154, 248, 215, 210, 219, 209, 166, 239, 18, 248,
+ 217, 200, 123, 198, 195, 238, 180, 232, 200, 210, 1, 237, 106, 223, 50,
+ 236, 126, 246, 205, 201, 220, 194, 53, 242, 202, 216, 30, 196, 25, 246,
+ 124, 205, 244, 206, 18, 230, 224, 246, 226, 229, 234, 4, 199, 74, 211,
+ 212, 199, 225, 220, 28, 247, 183, 80, 232, 174, 216, 130, 217, 37, 207,
+ 208, 207, 141, 35, 222, 0, 4, 223, 58, 201, 191, 216, 164, 219, 228, 202,
+ 250, 238, 243, 221, 118, 248, 119, 250, 57, 35, 213, 100, 248, 119, 237,
+ 58, 35, 213, 100, 232, 244, 232, 103, 251, 114, 199, 115, 246, 206, 228,
+ 204, 233, 21, 194, 79, 207, 33, 242, 61, 232, 220, 209, 183, 26, 232,
+ 224, 216, 164, 215, 250, 246, 247, 242, 134, 229, 241, 250, 66, 211, 45,
+ 198, 249, 230, 18, 242, 120, 200, 22, 199, 116, 242, 106, 247, 216, 210,
+ 128, 250, 64, 196, 35, 231, 207, 236, 206, 229, 137, 202, 243, 217, 216,
+ 248, 23, 231, 208, 236, 252, 247, 176, 232, 176, 209, 220, 246, 214, 35,
+ 213, 105, 215, 216, 35, 213, 100, 206, 2, 230, 169, 35, 221, 255, 198,
+ 125, 196, 13, 35, 205, 236, 206, 192, 203, 215, 4, 206, 21, 200, 27, 208,
+ 60, 26, 248, 217, 203, 15, 26, 203, 15, 247, 200, 248, 174, 26, 229, 11,
+ 242, 229, 232, 206, 202, 217, 206, 193, 201, 95, 202, 118, 217, 37, 198,
+ 151, 228, 205, 208, 61, 250, 233, 232, 148, 206, 206, 232, 148, 201, 66,
+ 194, 96, 219, 197, 230, 244, 208, 62, 216, 16, 208, 62, 246, 217, 238,
+ 191, 248, 171, 26, 248, 217, 195, 241, 233, 10, 229, 32, 201, 250, 26,
+ 248, 217, 228, 50, 229, 32, 201, 250, 26, 209, 43, 200, 165, 200, 27,
+ 211, 64, 26, 248, 217, 202, 219, 246, 222, 216, 9, 246, 245, 248, 122, 4,
+ 197, 81, 247, 113, 239, 1, 228, 194, 247, 111, 242, 114, 237, 62, 228,
+ 194, 247, 112, 242, 104, 247, 112, 237, 54, 237, 55, 223, 89, 215, 44,
+ 210, 226, 202, 30, 228, 194, 247, 112, 228, 194, 4, 231, 191, 211, 249,
+ 247, 112, 223, 50, 209, 155, 211, 248, 233, 219, 209, 155, 211, 248, 228,
+ 203, 248, 198, 249, 252, 200, 37, 217, 216, 228, 199, 219, 53, 228, 199,
+ 238, 241, 201, 234, 205, 243, 237, 65, 201, 234, 233, 80, 223, 70, 220,
+ 78, 223, 50, 246, 195, 233, 219, 246, 195, 62, 210, 148, 60, 210, 148,
+ 194, 122, 62, 232, 206, 194, 122, 60, 232, 206, 207, 19, 60, 207, 19,
+ 220, 176, 248, 238, 208, 60, 26, 203, 147, 247, 181, 26, 54, 250, 228,
+ 234, 94, 73, 232, 215, 197, 204, 234, 94, 73, 232, 215, 197, 201, 234,
+ 94, 73, 232, 215, 197, 199, 234, 94, 73, 232, 215, 197, 197, 234, 94, 73,
+ 232, 215, 197, 195, 208, 22, 216, 6, 211, 103, 194, 130, 247, 117, 238,
+ 205, 199, 108, 219, 245, 208, 64, 246, 193, 235, 84, 238, 189, 194, 82,
+ 202, 226, 202, 224, 228, 204, 208, 34, 230, 250, 204, 6, 216, 49, 207,
+ 23, 242, 213, 236, 134, 210, 14, 247, 218, 234, 115, 212, 5, 202, 133,
+ 204, 1, 247, 116, 250, 186, 229, 17, 220, 167, 248, 102, 232, 224, 198,
+ 150, 232, 224, 247, 226, 198, 6, 230, 16, 242, 214, 248, 255, 242, 214,
+ 232, 87, 248, 255, 242, 214, 248, 13, 210, 150, 221, 107, 209, 171, 235,
+ 74, 246, 249, 248, 243, 246, 249, 236, 125, 216, 7, 233, 91, 238, 206,
+ 233, 91, 199, 109, 233, 91, 208, 65, 233, 91, 246, 194, 233, 91, 235, 85,
+ 233, 91, 202, 116, 194, 82, 228, 205, 233, 91, 216, 50, 233, 91, 236,
+ 135, 233, 91, 210, 15, 233, 91, 232, 91, 233, 91, 230, 68, 233, 91, 194,
+ 26, 233, 91, 248, 117, 233, 91, 211, 21, 233, 91, 210, 15, 213, 112, 210,
+ 194, 209, 92, 242, 197, 233, 173, 233, 181, 234, 193, 213, 112, 216, 4,
+ 199, 0, 62, 130, 209, 188, 248, 250, 223, 176, 62, 142, 209, 188, 248,
+ 250, 223, 176, 62, 46, 209, 188, 248, 250, 223, 176, 62, 51, 209, 188,
+ 248, 250, 223, 176, 232, 218, 230, 63, 57, 194, 122, 230, 63, 57, 211,
+ 232, 230, 63, 57, 199, 146, 130, 57, 199, 146, 142, 57, 242, 105, 230,
+ 38, 57, 211, 184, 230, 38, 57, 238, 174, 194, 22, 230, 18, 233, 176, 214,
+ 204, 200, 226, 223, 40, 235, 79, 221, 180, 248, 26, 194, 22, 242, 77,
+ 209, 23, 230, 42, 209, 145, 217, 148, 203, 207, 250, 22, 203, 207, 229,
+ 154, 203, 207, 194, 22, 206, 37, 194, 22, 247, 199, 232, 146, 247, 79,
+ 223, 191, 203, 91, 247, 78, 223, 191, 203, 91, 247, 171, 231, 23, 217,
+ 160, 194, 23, 233, 69, 217, 161, 26, 194, 24, 229, 26, 230, 37, 103, 217,
+ 6, 229, 26, 230, 37, 103, 194, 21, 229, 26, 230, 37, 209, 180, 211, 247,
+ 194, 24, 4, 247, 97, 234, 191, 247, 144, 4, 196, 114, 210, 117, 4, 247,
+ 230, 230, 86, 217, 161, 4, 230, 183, 210, 52, 217, 143, 217, 161, 4, 198,
+ 14, 211, 224, 217, 160, 211, 224, 194, 23, 248, 254, 239, 2, 194, 7, 209,
+ 97, 223, 50, 211, 242, 223, 50, 230, 249, 231, 54, 248, 255, 250, 212,
+ 233, 186, 251, 16, 251, 17, 216, 39, 223, 196, 203, 10, 223, 165, 237,
+ 51, 210, 116, 230, 177, 237, 210, 219, 158, 215, 69, 209, 179, 233, 92,
+ 217, 104, 230, 85, 248, 192, 209, 182, 200, 247, 210, 7, 221, 161, 77,
+ 219, 53, 219, 235, 207, 81, 231, 148, 201, 240, 221, 160, 247, 182, 238,
+ 209, 4, 229, 233, 194, 103, 248, 113, 229, 233, 247, 136, 229, 233, 103,
+ 229, 231, 202, 152, 229, 233, 230, 193, 229, 233, 229, 234, 4, 54, 247,
+ 224, 229, 233, 230, 201, 229, 233, 193, 62, 229, 233, 209, 24, 229, 233,
+ 229, 234, 4, 207, 141, 207, 162, 229, 231, 229, 234, 237, 106, 237, 5,
+ 204, 34, 4, 41, 78, 223, 145, 234, 119, 152, 247, 109, 250, 211, 109,
+ 247, 208, 202, 255, 109, 242, 49, 109, 202, 127, 201, 73, 109, 235, 70,
+ 237, 186, 109, 210, 8, 80, 209, 172, 232, 188, 248, 38, 236, 167, 109,
+ 202, 144, 248, 215, 199, 166, 248, 215, 62, 232, 175, 228, 163, 209, 186,
+ 109, 216, 54, 248, 236, 238, 137, 233, 206, 87, 236, 127, 57, 238, 196,
+ 246, 215, 248, 197, 4, 193, 60, 57, 248, 197, 4, 236, 127, 57, 248, 197,
+ 4, 233, 222, 57, 248, 197, 4, 209, 143, 57, 216, 54, 4, 194, 47, 242,
+ 253, 4, 197, 30, 198, 191, 26, 193, 60, 57, 205, 215, 210, 115, 239, 23,
+ 247, 142, 216, 118, 232, 180, 236, 192, 211, 167, 236, 198, 235, 30, 232,
+ 251, 232, 160, 211, 184, 232, 251, 232, 160, 211, 62, 4, 238, 142, 211,
+ 62, 233, 84, 197, 41, 246, 255, 200, 64, 246, 255, 246, 216, 223, 176,
+ 242, 253, 4, 197, 30, 198, 190, 242, 253, 4, 235, 92, 198, 190, 248, 194,
+ 242, 252, 242, 90, 209, 19, 207, 9, 209, 19, 210, 250, 201, 230, 206,
+ 200, 198, 182, 206, 200, 247, 204, 200, 163, 220, 33, 213, 103, 213, 104,
+ 4, 237, 105, 238, 208, 242, 84, 247, 205, 211, 184, 247, 205, 230, 201,
+ 247, 205, 247, 224, 247, 205, 211, 162, 247, 205, 247, 202, 215, 63, 248,
+ 240, 205, 228, 217, 7, 200, 42, 207, 251, 211, 60, 233, 52, 217, 216,
+ 206, 17, 250, 183, 209, 44, 251, 122, 219, 55, 242, 237, 217, 19, 211,
+ 124, 198, 199, 223, 187, 198, 199, 211, 69, 234, 246, 109, 223, 184, 234,
+ 52, 234, 53, 4, 235, 92, 61, 58, 242, 84, 217, 177, 4, 219, 46, 232, 206,
+ 242, 84, 217, 177, 4, 208, 39, 232, 206, 211, 184, 217, 177, 4, 208, 39,
+ 232, 206, 211, 184, 217, 177, 4, 219, 46, 232, 206, 209, 152, 209, 153,
+ 228, 208, 214, 172, 216, 83, 210, 60, 216, 83, 210, 61, 4, 94, 61, 250,
+ 27, 220, 28, 196, 38, 216, 82, 216, 83, 210, 61, 211, 250, 213, 143, 216,
+ 83, 210, 59, 250, 184, 4, 248, 182, 246, 247, 246, 248, 4, 232, 197, 196,
+ 35, 246, 247, 200, 39, 208, 55, 196, 34, 232, 244, 209, 78, 209, 162,
+ 201, 252, 209, 120, 248, 121, 197, 224, 94, 250, 73, 242, 86, 94, 26,
+ 114, 211, 184, 242, 131, 250, 73, 242, 86, 94, 26, 114, 211, 184, 242,
+ 131, 250, 74, 4, 47, 90, 211, 110, 242, 86, 235, 92, 26, 197, 30, 211,
+ 184, 242, 131, 250, 73, 250, 182, 235, 92, 26, 197, 30, 211, 184, 242,
+ 131, 250, 73, 132, 247, 140, 109, 139, 247, 140, 109, 202, 149, 4, 246,
+ 240, 111, 202, 148, 202, 149, 4, 90, 202, 174, 194, 124, 202, 149, 4,
+ 112, 202, 174, 194, 123, 248, 164, 234, 119, 209, 212, 220, 23, 217, 189,
+ 231, 11, 207, 96, 217, 189, 231, 11, 219, 99, 4, 223, 157, 210, 154, 242,
+ 84, 219, 99, 4, 222, 1, 222, 1, 219, 98, 211, 184, 219, 98, 248, 86, 248,
+ 87, 4, 246, 240, 111, 247, 203, 219, 166, 109, 208, 56, 247, 72, 248,
+ 253, 4, 114, 61, 58, 234, 80, 4, 114, 61, 58, 211, 212, 4, 233, 204, 122,
+ 4, 46, 51, 61, 58, 202, 182, 4, 94, 61, 58, 198, 249, 4, 197, 30, 61, 58,
+ 213, 143, 90, 197, 69, 234, 146, 109, 221, 254, 200, 30, 223, 151, 16,
+ 39, 8, 6, 219, 234, 223, 151, 16, 39, 8, 2, 219, 234, 223, 151, 16, 39,
+ 212, 235, 223, 151, 16, 39, 201, 5, 223, 151, 16, 39, 8, 219, 234, 232,
+ 231, 234, 119, 198, 244, 193, 253, 230, 69, 212, 218, 26, 247, 210, 229,
+ 33, 209, 242, 216, 163, 200, 40, 238, 164, 248, 217, 203, 41, 209, 190,
+ 202, 20, 4, 85, 236, 114, 223, 50, 16, 39, 248, 99, 198, 180, 234, 96,
+ 60, 50, 247, 72, 62, 50, 247, 72, 220, 73, 207, 237, 242, 130, 220, 73,
+ 247, 224, 242, 130, 220, 73, 211, 162, 237, 4, 220, 73, 247, 224, 237, 4,
+ 2, 211, 162, 237, 4, 2, 247, 224, 237, 4, 197, 40, 207, 237, 198, 185,
+ 235, 95, 207, 237, 198, 185, 197, 40, 2, 207, 237, 198, 185, 235, 95, 2,
+ 207, 237, 198, 185, 106, 51, 204, 50, 62, 242, 130, 113, 51, 204, 50, 62,
+ 242, 130, 47, 238, 184, 209, 176, 238, 184, 209, 177, 4, 230, 75, 63,
+ 238, 184, 209, 176, 213, 107, 46, 204, 183, 4, 112, 236, 111, 213, 107,
+ 51, 204, 183, 4, 112, 236, 111, 16, 39, 217, 121, 246, 102, 62, 8, 238,
+ 183, 87, 8, 238, 183, 246, 142, 238, 183, 211, 220, 109, 235, 98, 80,
+ 210, 179, 222, 157, 216, 22, 200, 255, 217, 2, 4, 214, 16, 247, 159, 247,
+ 178, 80, 228, 113, 242, 88, 233, 92, 90, 212, 11, 242, 88, 233, 92, 103,
+ 212, 11, 242, 88, 233, 92, 112, 212, 11, 242, 88, 233, 92, 232, 119, 212,
+ 11, 242, 88, 233, 92, 232, 214, 212, 11, 242, 88, 233, 92, 203, 41, 212,
+ 11, 242, 88, 233, 92, 204, 146, 212, 11, 242, 88, 233, 92, 234, 148, 212,
+ 11, 242, 88, 233, 92, 214, 16, 212, 11, 242, 88, 233, 92, 200, 31, 212,
+ 11, 242, 88, 233, 92, 234, 112, 212, 11, 242, 88, 233, 92, 197, 245, 212,
+ 11, 242, 88, 233, 92, 211, 204, 242, 88, 233, 92, 197, 218, 242, 88, 233,
+ 92, 199, 152, 242, 88, 233, 92, 232, 115, 242, 88, 233, 92, 232, 212,
+ 242, 88, 233, 92, 203, 37, 242, 88, 233, 92, 204, 145, 242, 88, 233, 92,
+ 234, 147, 242, 88, 233, 92, 214, 15, 242, 88, 233, 92, 200, 29, 242, 88,
+ 233, 92, 234, 110, 242, 88, 233, 92, 197, 243, 51, 202, 148, 51, 202,
+ 149, 4, 90, 202, 174, 194, 124, 51, 202, 149, 4, 112, 202, 174, 194, 123,
+ 247, 104, 247, 105, 4, 202, 174, 194, 123, 207, 79, 248, 86, 247, 205,
+ 246, 238, 217, 145, 242, 87, 60, 203, 11, 26, 238, 181, 213, 143, 209,
+ 248, 229, 25, 217, 161, 223, 191, 247, 81, 201, 137, 219, 227, 202, 253,
+ 211, 164, 202, 107, 237, 191, 201, 119, 202, 136, 202, 137, 194, 104,
+ 222, 215, 217, 161, 237, 209, 46, 230, 63, 200, 42, 207, 251, 200, 42,
+ 207, 252, 4, 211, 61, 51, 230, 63, 200, 42, 207, 251, 62, 198, 230, 200,
+ 41, 60, 198, 230, 200, 41, 200, 42, 211, 212, 198, 249, 80, 216, 79, 242,
+ 109, 216, 83, 210, 60, 248, 253, 80, 234, 52, 202, 26, 234, 52, 234, 53,
+ 4, 219, 192, 232, 167, 234, 52, 210, 155, 136, 202, 26, 234, 52, 219,
+ 165, 210, 249, 60, 209, 19, 106, 46, 210, 153, 106, 46, 248, 211, 210,
+ 154, 106, 46, 232, 121, 210, 154, 106, 46, 211, 54, 106, 46, 238, 199,
+ 46, 193, 247, 230, 62, 163, 211, 232, 230, 63, 57, 208, 39, 230, 63, 4,
+ 232, 236, 202, 126, 207, 168, 208, 39, 230, 63, 4, 232, 236, 202, 126,
+ 207, 168, 199, 146, 130, 57, 207, 168, 199, 146, 142, 57, 207, 168, 196,
+ 37, 230, 62, 207, 168, 230, 63, 4, 85, 232, 241, 233, 192, 208, 39, 230,
+ 63, 4, 210, 224, 248, 61, 85, 26, 207, 82, 232, 235, 62, 142, 209, 188,
+ 46, 230, 63, 223, 176, 203, 109, 62, 46, 209, 188, 223, 176, 203, 109,
+ 62, 51, 209, 188, 223, 176, 203, 109, 60, 46, 209, 188, 223, 176, 203,
+ 109, 60, 51, 209, 188, 223, 176, 60, 46, 209, 188, 248, 250, 223, 176,
+ 60, 51, 209, 188, 248, 250, 223, 176, 203, 109, 62, 130, 209, 188, 223,
+ 176, 203, 109, 62, 142, 209, 188, 223, 176, 203, 109, 60, 130, 209, 188,
+ 223, 176, 203, 109, 60, 142, 209, 188, 223, 176, 60, 130, 209, 188, 248,
+ 250, 223, 176, 60, 142, 209, 188, 248, 250, 223, 176, 60, 229, 233, 237,
+ 50, 239, 23, 222, 0, 26, 216, 6, 112, 214, 181, 239, 22, 209, 93, 209,
+ 196, 247, 1, 60, 230, 26, 204, 2, 232, 180, 236, 192, 62, 230, 26, 204,
+ 2, 232, 180, 236, 192, 202, 198, 204, 2, 232, 180, 236, 192, 200, 115,
+ 246, 199, 194, 42, 221, 255, 90, 247, 73, 216, 6, 103, 247, 73, 216, 6,
+ 112, 247, 73, 216, 6, 198, 221, 40, 210, 115, 239, 23, 230, 26, 236, 192,
+ 205, 231, 209, 94, 228, 43, 233, 52, 228, 43, 211, 167, 236, 199, 228,
+ 43, 236, 140, 4, 199, 244, 236, 140, 4, 199, 245, 26, 210, 44, 236, 140,
+ 4, 210, 44, 232, 105, 4, 210, 44, 232, 105, 4, 199, 88, 232, 105, 4, 250,
+ 225, 193, 223, 60, 232, 160, 232, 160, 211, 184, 232, 160, 246, 216, 140,
+ 236, 176, 246, 216, 232, 251, 247, 173, 232, 251, 247, 14, 234, 90, 213,
+ 105, 234, 90, 213, 106, 211, 61, 234, 90, 213, 106, 211, 67, 213, 105,
+ 213, 106, 211, 61, 213, 106, 211, 67, 234, 90, 236, 139, 234, 90, 211,
+ 61, 234, 90, 211, 59, 236, 139, 211, 61, 211, 59, 194, 134, 202, 133,
+ 213, 106, 211, 67, 202, 133, 247, 0, 211, 67, 237, 50, 194, 51, 216, 115,
+ 217, 93, 211, 113, 242, 86, 51, 26, 46, 204, 183, 250, 73, 246, 240, 193,
+ 223, 223, 182, 232, 153, 203, 21, 109, 237, 104, 232, 153, 203, 21, 109,
+ 239, 24, 40, 222, 1, 207, 34, 214, 172, 211, 62, 4, 47, 199, 244, 201,
+ 242, 242, 252, 237, 239, 221, 124, 219, 159, 202, 147, 229, 246, 223,
+ 191, 203, 91, 112, 208, 13, 58, 112, 208, 13, 63, 112, 208, 13, 220, 28,
+ 112, 208, 13, 207, 101, 46, 202, 144, 247, 122, 51, 202, 144, 247, 122,
+ 103, 202, 144, 247, 121, 112, 202, 144, 247, 121, 46, 199, 166, 247, 122,
+ 51, 199, 166, 247, 122, 46, 250, 211, 247, 122, 51, 250, 211, 247, 122,
+ 216, 34, 247, 122, 219, 193, 216, 34, 247, 122, 219, 193, 216, 33, 248,
+ 213, 105, 4, 248, 212, 248, 213, 27, 193, 223, 248, 213, 105, 4, 27, 193,
+ 223, 248, 213, 28, 27, 193, 223, 248, 213, 105, 4, 28, 27, 193, 223, 152,
+ 242, 244, 77, 248, 213, 105, 4, 28, 242, 243, 194, 6, 217, 141, 216, 11,
+ 232, 72, 199, 24, 198, 226, 202, 9, 80, 219, 207, 203, 92, 80, 223, 51,
+ 215, 248, 230, 197, 233, 91, 230, 197, 233, 92, 4, 202, 230, 233, 173,
+ 233, 92, 4, 200, 60, 80, 222, 217, 202, 230, 233, 92, 4, 211, 184, 216,
+ 4, 202, 230, 233, 92, 4, 211, 184, 216, 5, 26, 202, 230, 233, 173, 202,
+ 230, 233, 92, 4, 211, 184, 216, 5, 26, 242, 51, 201, 72, 202, 230, 233,
+ 92, 4, 211, 184, 216, 5, 26, 199, 106, 233, 173, 202, 230, 233, 92, 4,
+ 230, 74, 202, 230, 233, 92, 4, 228, 207, 194, 44, 233, 91, 202, 230, 233,
+ 92, 4, 202, 230, 233, 173, 233, 92, 206, 7, 237, 84, 232, 151, 207, 211,
+ 233, 91, 202, 230, 233, 92, 4, 229, 232, 233, 173, 202, 230, 233, 92, 4,
+ 201, 119, 202, 229, 233, 91, 214, 179, 233, 91, 233, 194, 233, 91, 197,
+ 75, 233, 91, 233, 92, 4, 242, 51, 201, 72, 210, 146, 233, 91, 239, 15,
+ 233, 91, 239, 16, 233, 91, 221, 159, 233, 91, 233, 92, 199, 149, 41, 221,
+ 160, 221, 159, 233, 92, 4, 202, 230, 233, 173, 221, 159, 233, 92, 4, 242,
+ 84, 233, 173, 233, 92, 4, 201, 192, 199, 0, 233, 92, 4, 201, 192, 199, 1,
+ 26, 194, 44, 233, 181, 233, 92, 4, 201, 192, 199, 1, 26, 199, 106, 233,
+ 173, 236, 200, 233, 91, 194, 4, 233, 91, 250, 203, 233, 91, 209, 142,
+ 233, 91, 238, 166, 233, 91, 210, 119, 233, 91, 233, 92, 4, 219, 72, 80,
+ 198, 162, 236, 200, 247, 77, 207, 211, 233, 91, 232, 83, 233, 92, 4, 211,
+ 184, 216, 4, 250, 201, 233, 91, 233, 45, 233, 91, 194, 105, 233, 91, 202,
+ 254, 233, 91, 199, 68, 233, 91, 230, 198, 233, 91, 219, 56, 238, 166,
+ 233, 91, 233, 92, 4, 211, 184, 216, 4, 228, 152, 233, 91, 233, 92, 4,
+ 211, 184, 216, 5, 26, 242, 51, 201, 72, 233, 92, 205, 233, 223, 191, 233,
+ 46, 250, 34, 233, 91, 232, 172, 233, 91, 202, 255, 233, 91, 236, 167,
+ 233, 91, 233, 92, 194, 39, 216, 4, 233, 92, 4, 217, 34, 217, 106, 230,
+ 197, 246, 194, 233, 92, 4, 202, 230, 233, 173, 246, 194, 233, 92, 4, 200,
+ 60, 80, 222, 217, 202, 230, 246, 194, 233, 92, 4, 211, 184, 216, 4, 202,
+ 230, 246, 194, 233, 92, 4, 229, 232, 233, 173, 246, 194, 233, 92, 4, 193,
+ 245, 202, 231, 221, 159, 246, 194, 233, 92, 4, 242, 84, 233, 173, 209,
+ 142, 246, 194, 233, 91, 238, 166, 246, 194, 233, 91, 194, 105, 246, 194,
+ 233, 91, 202, 248, 232, 83, 233, 91, 202, 248, 202, 230, 233, 91, 197,
+ 36, 233, 91, 233, 92, 4, 207, 32, 233, 173, 233, 92, 4, 213, 143, 230,
+ 241, 231, 125, 233, 92, 4, 211, 232, 231, 125, 210, 117, 247, 179, 237,
+ 99, 205, 204, 216, 49, 229, 236, 216, 49, 202, 150, 216, 49, 230, 29,
+ 210, 117, 208, 37, 90, 230, 62, 210, 117, 208, 37, 247, 191, 230, 38,
+ 223, 191, 246, 144, 210, 117, 232, 82, 210, 117, 4, 209, 142, 233, 91,
+ 210, 117, 4, 232, 161, 230, 37, 178, 194, 91, 209, 188, 220, 37, 202,
+ 171, 194, 91, 209, 188, 220, 37, 178, 234, 186, 209, 188, 220, 37, 202,
+ 171, 234, 186, 209, 188, 220, 37, 163, 178, 194, 91, 209, 188, 220, 37,
+ 163, 202, 171, 194, 91, 209, 188, 220, 37, 163, 178, 234, 186, 209, 188,
+ 220, 37, 163, 202, 171, 234, 186, 209, 188, 220, 37, 178, 194, 91, 209,
+ 188, 196, 19, 220, 37, 202, 171, 194, 91, 209, 188, 196, 19, 220, 37,
+ 178, 234, 186, 209, 188, 196, 19, 220, 37, 202, 171, 234, 186, 209, 188,
+ 196, 19, 220, 37, 87, 178, 194, 91, 209, 188, 196, 19, 220, 37, 87, 202,
+ 171, 194, 91, 209, 188, 196, 19, 220, 37, 87, 178, 234, 186, 209, 188,
+ 196, 19, 220, 37, 87, 202, 171, 234, 186, 209, 188, 196, 19, 220, 37,
+ 178, 194, 91, 209, 188, 247, 118, 202, 171, 194, 91, 209, 188, 247, 118,
+ 178, 234, 186, 209, 188, 247, 118, 202, 171, 234, 186, 209, 188, 247,
+ 118, 87, 178, 194, 91, 209, 188, 247, 118, 87, 202, 171, 194, 91, 209,
+ 188, 247, 118, 87, 178, 234, 186, 209, 188, 247, 118, 87, 202, 171, 234,
+ 186, 209, 188, 247, 118, 229, 24, 208, 152, 50, 211, 150, 229, 24, 208,
+ 152, 50, 211, 151, 223, 191, 60, 202, 106, 202, 191, 208, 152, 50, 211,
+ 150, 202, 191, 208, 152, 50, 211, 151, 223, 191, 60, 202, 106, 114, 207,
+ 39, 197, 30, 207, 39, 94, 207, 39, 235, 92, 207, 39, 27, 34, 233, 243,
+ 211, 150, 87, 27, 34, 233, 243, 211, 150, 34, 211, 184, 233, 243, 211,
+ 150, 87, 34, 211, 184, 233, 243, 211, 150, 87, 250, 230, 211, 150, 201,
+ 75, 250, 230, 211, 150, 49, 87, 55, 163, 242, 39, 208, 142, 122, 211,
+ 150, 49, 87, 55, 242, 39, 208, 142, 122, 211, 150, 49, 87, 132, 55, 242,
+ 39, 208, 142, 122, 211, 150, 87, 223, 131, 211, 150, 49, 223, 131, 211,
+ 150, 87, 49, 223, 131, 211, 150, 196, 53, 87, 202, 189, 196, 53, 87, 207,
+ 169, 202, 189, 242, 242, 247, 216, 207, 169, 242, 242, 247, 216, 207, 39,
+ 229, 215, 202, 4, 219, 96, 208, 44, 246, 217, 229, 151, 198, 213, 229,
+ 151, 198, 214, 4, 247, 107, 213, 112, 198, 213, 216, 233, 152, 208, 45,
+ 202, 10, 198, 211, 198, 212, 246, 217, 247, 82, 211, 208, 247, 82, 198,
+ 158, 247, 83, 201, 238, 216, 119, 250, 234, 232, 232, 234, 72, 209, 180,
+ 246, 217, 211, 208, 209, 180, 246, 217, 200, 89, 211, 208, 200, 89, 249,
+ 251, 211, 208, 249, 251, 207, 244, 196, 115, 237, 80, 198, 149, 250, 67,
+ 219, 63, 198, 220, 216, 42, 216, 10, 208, 43, 201, 89, 208, 43, 216, 10,
+ 247, 13, 251, 94, 198, 210, 203, 220, 207, 6, 202, 142, 229, 5, 198, 217,
+ 219, 195, 84, 198, 217, 219, 195, 239, 2, 57, 209, 180, 246, 201, 207,
+ 162, 219, 195, 198, 182, 232, 207, 211, 212, 209, 154, 236, 118, 213,
+ 143, 234, 58, 57, 202, 228, 109, 213, 143, 202, 228, 109, 209, 18, 219,
+ 148, 223, 191, 223, 79, 209, 232, 109, 236, 147, 213, 111, 219, 148, 109,
+ 209, 148, 194, 130, 109, 213, 127, 194, 130, 109, 248, 37, 213, 143, 248,
+ 36, 248, 35, 216, 10, 248, 35, 210, 170, 213, 143, 210, 169, 242, 205,
+ 238, 175, 217, 1, 109, 194, 20, 109, 207, 178, 248, 255, 109, 199, 25,
+ 194, 130, 242, 81, 203, 175, 248, 167, 248, 165, 210, 208, 238, 242, 238,
+ 123, 248, 232, 242, 110, 46, 219, 26, 198, 186, 4, 207, 7, 238, 222, 209,
+ 81, 57, 47, 223, 165, 202, 172, 247, 170, 109, 231, 22, 109, 238, 214,
+ 26, 220, 84, 202, 255, 251, 140, 203, 198, 248, 231, 248, 85, 248, 86,
+ 248, 109, 209, 232, 80, 194, 3, 212, 8, 57, 203, 198, 198, 159, 201, 188,
+ 211, 58, 229, 147, 200, 33, 228, 151, 234, 114, 230, 70, 26, 193, 253,
+ 203, 233, 211, 237, 235, 67, 216, 14, 208, 44, 198, 222, 216, 17, 247,
+ 215, 197, 40, 216, 130, 251, 50, 197, 40, 251, 50, 197, 40, 2, 251, 50,
+ 2, 251, 50, 213, 116, 251, 50, 251, 51, 237, 64, 251, 51, 250, 80, 206,
+ 16, 211, 208, 232, 232, 234, 72, 236, 250, 219, 96, 210, 212, 203, 220,
+ 205, 237, 216, 17, 205, 237, 246, 228, 203, 1, 232, 167, 206, 11, 203,
+ 17, 249, 253, 207, 137, 210, 45, 198, 149, 207, 33, 203, 18, 156, 16, 39,
+ 208, 148, 156, 16, 39, 251, 52, 156, 16, 39, 232, 231, 156, 16, 39, 234,
+ 189, 156, 16, 39, 194, 129, 156, 16, 39, 250, 133, 156, 16, 39, 250, 134,
+ 207, 231, 156, 16, 39, 250, 134, 207, 230, 156, 16, 39, 250, 134, 196, 2,
+ 156, 16, 39, 250, 134, 196, 1, 156, 16, 39, 196, 16, 156, 16, 39, 196,
+ 15, 156, 16, 39, 196, 14, 156, 16, 39, 201, 130, 156, 16, 39, 210, 69,
+ 201, 130, 156, 16, 39, 60, 201, 130, 156, 16, 39, 217, 0, 201, 161, 156,
+ 16, 39, 217, 0, 201, 160, 156, 16, 39, 217, 0, 201, 159, 156, 16, 39,
+ 242, 133, 156, 16, 39, 206, 55, 156, 16, 39, 214, 3, 156, 16, 39, 196, 0,
+ 156, 16, 39, 195, 255, 156, 16, 39, 207, 41, 206, 55, 156, 16, 39, 207,
+ 41, 206, 54, 156, 16, 39, 230, 245, 156, 16, 39, 203, 88, 156, 16, 39,
+ 223, 102, 211, 157, 156, 16, 39, 223, 102, 211, 156, 156, 16, 39, 238,
+ 188, 80, 223, 101, 156, 16, 39, 207, 227, 80, 223, 101, 156, 16, 39, 238,
+ 233, 211, 157, 156, 16, 39, 223, 100, 211, 157, 156, 16, 39, 201, 162,
+ 80, 238, 232, 156, 16, 39, 238, 188, 80, 238, 232, 156, 16, 39, 238, 188,
+ 80, 238, 231, 156, 16, 39, 238, 233, 250, 176, 156, 16, 39, 206, 56, 80,
+ 238, 233, 250, 176, 156, 16, 39, 201, 162, 80, 206, 56, 80, 238, 232,
+ 156, 16, 39, 196, 109, 156, 16, 39, 199, 81, 211, 157, 156, 16, 39, 220,
+ 41, 211, 157, 156, 16, 39, 250, 175, 211, 157, 156, 16, 39, 201, 162, 80,
+ 250, 174, 156, 16, 39, 206, 56, 80, 250, 174, 156, 16, 39, 201, 162, 80,
+ 206, 56, 80, 250, 174, 156, 16, 39, 196, 17, 80, 250, 174, 156, 16, 39,
+ 207, 227, 80, 250, 174, 156, 16, 39, 207, 227, 80, 250, 173, 156, 16, 39,
+ 207, 226, 156, 16, 39, 207, 225, 156, 16, 39, 207, 224, 156, 16, 39, 207,
+ 223, 156, 16, 39, 251, 11, 156, 16, 39, 251, 10, 156, 16, 39, 217, 132,
+ 156, 16, 39, 206, 62, 156, 16, 39, 250, 72, 156, 16, 39, 207, 255, 156,
+ 16, 39, 207, 254, 156, 16, 39, 249, 255, 156, 16, 39, 248, 3, 211, 157,
+ 156, 16, 39, 200, 110, 156, 16, 39, 200, 109, 156, 16, 39, 208, 154, 219,
+ 184, 156, 16, 39, 247, 196, 156, 16, 39, 247, 195, 156, 16, 39, 247, 194,
+ 156, 16, 39, 250, 243, 156, 16, 39, 211, 236, 156, 16, 39, 202, 129, 156,
+ 16, 39, 199, 79, 156, 16, 39, 230, 165, 156, 16, 39, 194, 117, 156, 16,
+ 39, 209, 141, 156, 16, 39, 246, 252, 156, 16, 39, 198, 1, 156, 16, 39,
+ 246, 219, 216, 23, 156, 16, 39, 205, 247, 80, 222, 219, 156, 16, 39, 247,
+ 10, 156, 16, 39, 198, 179, 156, 16, 39, 202, 17, 198, 179, 156, 16, 39,
+ 219, 95, 156, 16, 39, 202, 203, 156, 16, 39, 197, 19, 156, 16, 39, 228,
+ 205, 235, 45, 156, 16, 39, 250, 48, 156, 16, 39, 209, 150, 250, 48, 156,
+ 16, 39, 247, 145, 156, 16, 39, 209, 140, 247, 145, 156, 16, 39, 250, 240,
+ 156, 16, 39, 201, 225, 201, 111, 201, 224, 156, 16, 39, 201, 225, 201,
+ 111, 201, 223, 156, 16, 39, 201, 158, 156, 16, 39, 209, 113, 156, 16, 39,
+ 236, 187, 156, 16, 39, 236, 189, 156, 16, 39, 236, 188, 156, 16, 39, 209,
+ 27, 156, 16, 39, 209, 16, 156, 16, 39, 238, 173, 156, 16, 39, 238, 172,
+ 156, 16, 39, 238, 171, 156, 16, 39, 238, 170, 156, 16, 39, 238, 169, 156,
+ 16, 39, 251, 25, 156, 16, 39, 248, 168, 80, 217, 113, 156, 16, 39, 248,
+ 168, 80, 196, 143, 156, 16, 39, 207, 176, 156, 16, 39, 228, 197, 156, 16,
+ 39, 214, 31, 156, 16, 39, 237, 173, 156, 16, 39, 216, 37, 156, 16, 39,
+ 138, 235, 82, 156, 16, 39, 138, 211, 128, 60, 220, 23, 223, 85, 51, 198,
+ 185, 60, 197, 40, 223, 85, 51, 198, 185, 60, 207, 96, 223, 85, 51, 198,
+ 185, 60, 235, 95, 223, 85, 51, 198, 185, 60, 202, 248, 2, 242, 130, 217,
+ 31, 28, 62, 242, 130, 28, 62, 242, 130, 87, 62, 242, 130, 196, 53, 87,
+ 62, 242, 130, 233, 185, 87, 62, 242, 130, 62, 242, 131, 238, 254, 60, 2,
+ 242, 130, 207, 9, 200, 111, 60, 199, 76, 202, 106, 60, 202, 248, 2, 202,
+ 106, 152, 62, 202, 106, 217, 31, 62, 202, 106, 28, 62, 202, 106, 87, 62,
+ 202, 106, 196, 53, 87, 62, 202, 106, 233, 185, 87, 62, 202, 106, 62, 50,
+ 238, 254, 60, 196, 53, 2, 202, 106, 62, 50, 238, 254, 60, 217, 31, 202,
+ 106, 50, 200, 111, 60, 199, 76, 237, 4, 60, 196, 53, 2, 237, 4, 60, 217,
+ 31, 2, 237, 4, 62, 237, 5, 238, 254, 60, 196, 53, 2, 237, 4, 62, 237, 5,
+ 238, 254, 60, 217, 31, 237, 4, 237, 5, 200, 111, 60, 199, 76, 219, 43,
+ 60, 196, 53, 2, 219, 43, 60, 217, 31, 2, 219, 43, 62, 219, 44, 238, 254,
+ 60, 2, 219, 43, 199, 195, 33, 238, 183, 152, 33, 238, 183, 217, 31, 33,
+ 238, 183, 28, 33, 238, 183, 196, 53, 28, 33, 238, 183, 196, 53, 87, 33,
+ 238, 183, 233, 185, 87, 33, 238, 183, 199, 195, 206, 51, 152, 206, 51,
+ 217, 31, 206, 51, 28, 206, 51, 87, 206, 51, 196, 53, 87, 206, 51, 233,
+ 185, 87, 206, 51, 152, 232, 214, 202, 122, 250, 37, 217, 31, 232, 214,
+ 202, 122, 250, 37, 28, 232, 214, 202, 122, 250, 37, 87, 232, 214, 202,
+ 122, 250, 37, 196, 53, 87, 232, 214, 202, 122, 250, 37, 233, 185, 87,
+ 232, 214, 202, 122, 250, 37, 152, 203, 41, 202, 122, 250, 37, 217, 31,
+ 203, 41, 202, 122, 250, 37, 28, 203, 41, 202, 122, 250, 37, 87, 203, 41,
+ 202, 122, 250, 37, 196, 53, 87, 203, 41, 202, 122, 250, 37, 233, 185, 87,
+ 203, 41, 202, 122, 250, 37, 152, 234, 148, 202, 122, 250, 37, 217, 31,
+ 234, 148, 202, 122, 250, 37, 28, 234, 148, 202, 122, 250, 37, 87, 234,
+ 148, 202, 122, 250, 37, 196, 53, 87, 234, 148, 202, 122, 250, 37, 152,
+ 112, 209, 190, 60, 202, 19, 217, 31, 112, 209, 190, 60, 202, 19, 112,
+ 209, 190, 60, 202, 19, 217, 31, 112, 209, 190, 209, 254, 202, 19, 152,
+ 232, 119, 209, 190, 60, 202, 19, 217, 31, 232, 119, 209, 190, 60, 202,
+ 19, 232, 119, 209, 190, 60, 202, 19, 217, 31, 232, 119, 209, 190, 209,
+ 254, 202, 19, 207, 169, 152, 232, 119, 209, 190, 209, 254, 202, 19, 152,
+ 232, 214, 209, 190, 60, 202, 19, 87, 232, 214, 209, 190, 60, 202, 19,
+ 217, 31, 203, 41, 209, 190, 60, 202, 19, 87, 203, 41, 209, 190, 60, 202,
+ 19, 203, 41, 209, 190, 209, 254, 202, 19, 217, 31, 234, 148, 209, 190,
+ 60, 202, 19, 87, 234, 148, 209, 190, 60, 202, 19, 196, 53, 87, 234, 148,
+ 209, 190, 60, 202, 19, 87, 234, 148, 209, 190, 209, 254, 202, 19, 152,
+ 197, 245, 209, 190, 60, 202, 19, 87, 197, 245, 209, 190, 60, 202, 19, 87,
+ 197, 245, 209, 190, 209, 254, 202, 19, 47, 198, 185, 214, 199, 47, 198,
+ 185, 47, 202, 106, 214, 199, 47, 202, 106, 220, 73, 211, 162, 242, 130,
+ 220, 73, 193, 62, 242, 130, 220, 73, 230, 201, 242, 130, 220, 73, 209,
+ 24, 242, 130, 220, 73, 247, 133, 242, 130, 220, 73, 207, 237, 202, 106,
+ 220, 73, 247, 224, 202, 106, 220, 73, 211, 162, 202, 106, 220, 73, 193,
+ 62, 202, 106, 220, 73, 230, 201, 202, 106, 220, 73, 209, 24, 202, 106,
+ 220, 73, 247, 133, 202, 106, 114, 61, 4, 2, 198, 186, 250, 77, 197, 30,
+ 61, 4, 2, 198, 186, 250, 77, 94, 61, 4, 2, 198, 186, 250, 77, 235, 92,
+ 61, 4, 2, 198, 186, 250, 77, 114, 61, 4, 217, 31, 198, 186, 250, 77, 197,
+ 30, 61, 4, 217, 31, 198, 186, 250, 77, 94, 61, 4, 217, 31, 198, 186, 250,
+ 77, 235, 92, 61, 4, 217, 31, 198, 186, 250, 77, 114, 61, 4, 220, 73, 198,
+ 186, 250, 77, 197, 30, 61, 4, 220, 73, 198, 186, 250, 77, 94, 61, 4, 220,
+ 73, 198, 186, 250, 77, 235, 92, 61, 4, 220, 73, 198, 186, 250, 77, 114,
+ 61, 4, 2, 234, 24, 250, 77, 197, 30, 61, 4, 2, 234, 24, 250, 77, 94, 61,
+ 4, 2, 234, 24, 250, 77, 235, 92, 61, 4, 2, 234, 24, 250, 77, 114, 61, 4,
+ 234, 24, 250, 77, 197, 30, 61, 4, 234, 24, 250, 77, 94, 61, 4, 234, 24,
+ 250, 77, 235, 92, 61, 4, 234, 24, 250, 77, 87, 114, 61, 4, 234, 24, 250,
+ 77, 87, 197, 30, 61, 4, 234, 24, 250, 77, 87, 94, 61, 4, 234, 24, 250,
+ 77, 87, 235, 92, 61, 4, 234, 24, 250, 77, 87, 114, 61, 4, 220, 73, 234,
+ 24, 250, 77, 87, 197, 30, 61, 4, 220, 73, 234, 24, 250, 77, 87, 94, 61,
+ 4, 220, 73, 234, 24, 250, 77, 87, 235, 92, 61, 4, 220, 73, 234, 24, 250,
+ 77, 114, 198, 184, 61, 4, 215, 50, 204, 48, 197, 30, 198, 184, 61, 4,
+ 215, 50, 204, 48, 94, 198, 184, 61, 4, 215, 50, 204, 48, 235, 92, 198,
+ 184, 61, 4, 215, 50, 204, 48, 114, 198, 184, 61, 4, 217, 31, 204, 48,
+ 197, 30, 198, 184, 61, 4, 217, 31, 204, 48, 94, 198, 184, 61, 4, 217, 31,
+ 204, 48, 235, 92, 198, 184, 61, 4, 217, 31, 204, 48, 114, 198, 184, 61,
+ 4, 28, 204, 48, 197, 30, 198, 184, 61, 4, 28, 204, 48, 94, 198, 184, 61,
+ 4, 28, 204, 48, 235, 92, 198, 184, 61, 4, 28, 204, 48, 114, 198, 184, 61,
+ 4, 87, 204, 48, 197, 30, 198, 184, 61, 4, 87, 204, 48, 94, 198, 184, 61,
+ 4, 87, 204, 48, 235, 92, 198, 184, 61, 4, 87, 204, 48, 114, 198, 184, 61,
+ 4, 196, 53, 87, 204, 48, 197, 30, 198, 184, 61, 4, 196, 53, 87, 204, 48,
+ 94, 198, 184, 61, 4, 196, 53, 87, 204, 48, 235, 92, 198, 184, 61, 4, 196,
+ 53, 87, 204, 48, 114, 232, 239, 54, 197, 30, 232, 239, 54, 94, 232, 239,
+ 54, 235, 92, 232, 239, 54, 114, 108, 54, 197, 30, 108, 54, 94, 108, 54,
+ 235, 92, 108, 54, 114, 239, 25, 54, 197, 30, 239, 25, 54, 94, 239, 25,
+ 54, 235, 92, 239, 25, 54, 114, 87, 239, 25, 54, 197, 30, 87, 239, 25, 54,
+ 94, 87, 239, 25, 54, 235, 92, 87, 239, 25, 54, 114, 87, 54, 197, 30, 87,
+ 54, 94, 87, 54, 235, 92, 87, 54, 114, 49, 54, 197, 30, 49, 54, 94, 49,
+ 54, 235, 92, 49, 54, 178, 194, 91, 49, 54, 178, 234, 186, 49, 54, 202,
+ 171, 234, 186, 49, 54, 202, 171, 194, 91, 49, 54, 46, 51, 49, 54, 130,
+ 142, 49, 54, 194, 63, 114, 152, 173, 54, 194, 63, 197, 30, 152, 173, 54,
+ 194, 63, 94, 152, 173, 54, 194, 63, 235, 92, 152, 173, 54, 194, 63, 178,
+ 194, 91, 152, 173, 54, 194, 63, 178, 234, 186, 152, 173, 54, 194, 63,
+ 202, 171, 234, 186, 152, 173, 54, 194, 63, 202, 171, 194, 91, 152, 173,
+ 54, 194, 63, 114, 173, 54, 194, 63, 197, 30, 173, 54, 194, 63, 94, 173,
+ 54, 194, 63, 235, 92, 173, 54, 194, 63, 178, 194, 91, 173, 54, 194, 63,
+ 178, 234, 186, 173, 54, 194, 63, 202, 171, 234, 186, 173, 54, 194, 63,
+ 202, 171, 194, 91, 173, 54, 194, 63, 114, 217, 31, 173, 54, 194, 63, 197,
+ 30, 217, 31, 173, 54, 194, 63, 94, 217, 31, 173, 54, 194, 63, 235, 92,
+ 217, 31, 173, 54, 194, 63, 178, 194, 91, 217, 31, 173, 54, 194, 63, 178,
+ 234, 186, 217, 31, 173, 54, 194, 63, 202, 171, 234, 186, 217, 31, 173,
+ 54, 194, 63, 202, 171, 194, 91, 217, 31, 173, 54, 194, 63, 114, 87, 173,
+ 54, 194, 63, 197, 30, 87, 173, 54, 194, 63, 94, 87, 173, 54, 194, 63,
+ 235, 92, 87, 173, 54, 194, 63, 178, 194, 91, 87, 173, 54, 194, 63, 178,
+ 234, 186, 87, 173, 54, 194, 63, 202, 171, 234, 186, 87, 173, 54, 194, 63,
+ 202, 171, 194, 91, 87, 173, 54, 194, 63, 114, 196, 53, 87, 173, 54, 194,
+ 63, 197, 30, 196, 53, 87, 173, 54, 194, 63, 94, 196, 53, 87, 173, 54,
+ 194, 63, 235, 92, 196, 53, 87, 173, 54, 194, 63, 178, 194, 91, 196, 53,
+ 87, 173, 54, 194, 63, 178, 234, 186, 196, 53, 87, 173, 54, 194, 63, 202,
+ 171, 234, 186, 196, 53, 87, 173, 54, 194, 63, 202, 171, 194, 91, 196, 53,
+ 87, 173, 54, 114, 198, 186, 250, 77, 197, 30, 198, 186, 250, 77, 94, 198,
+ 186, 250, 77, 235, 92, 198, 186, 250, 77, 114, 62, 61, 194, 41, 198, 186,
+ 250, 77, 197, 30, 62, 61, 194, 41, 198, 186, 250, 77, 94, 62, 61, 194,
+ 41, 198, 186, 250, 77, 235, 92, 62, 61, 194, 41, 198, 186, 250, 77, 114,
+ 61, 4, 213, 107, 200, 147, 197, 30, 61, 4, 213, 107, 200, 147, 94, 61, 4,
+ 213, 107, 200, 147, 235, 92, 61, 4, 213, 107, 200, 147, 87, 61, 204, 49,
+ 194, 61, 101, 87, 61, 204, 49, 194, 61, 103, 199, 188, 87, 61, 204, 49,
+ 194, 61, 90, 230, 78, 87, 61, 204, 49, 194, 61, 90, 199, 191, 114, 247,
+ 185, 62, 54, 94, 247, 188, 204, 51, 62, 54, 114, 198, 249, 204, 51, 62,
+ 54, 94, 198, 249, 204, 51, 62, 54, 114, 220, 22, 62, 54, 94, 207, 95, 62,
+ 54, 114, 207, 95, 62, 54, 94, 220, 22, 62, 54, 114, 248, 251, 204, 50,
+ 62, 54, 94, 248, 251, 204, 50, 62, 54, 114, 232, 86, 204, 50, 62, 54, 94,
+ 232, 86, 204, 50, 62, 54, 62, 61, 204, 49, 194, 61, 101, 62, 61, 204, 49,
+ 194, 61, 103, 199, 188, 61, 209, 188, 197, 30, 199, 216, 178, 194, 90,
+ 61, 209, 188, 94, 199, 216, 238, 128, 202, 171, 194, 90, 47, 238, 184,
+ 232, 133, 4, 232, 119, 236, 111, 47, 238, 184, 232, 133, 4, 103, 236,
+ 111, 47, 238, 184, 232, 132, 46, 138, 242, 131, 4, 232, 119, 236, 111,
+ 46, 138, 242, 131, 4, 112, 236, 111, 46, 138, 242, 131, 4, 103, 236, 111,
+ 46, 138, 242, 131, 4, 236, 114, 46, 138, 242, 130, 235, 93, 233, 84, 128,
+ 235, 93, 233, 84, 213, 107, 128, 235, 93, 233, 84, 229, 15, 4, 236, 114,
+ 235, 93, 233, 84, 213, 107, 229, 15, 4, 236, 114, 210, 3, 232, 235, 62,
+ 229, 233, 247, 133, 229, 233, 210, 2, 230, 62, 192, 17, 233, 91, 216, 53,
+ 233, 91, 233, 92, 4, 199, 212, 214, 187, 233, 91, 199, 193, 233, 91, 233,
+ 92, 4, 229, 244, 207, 43, 233, 91, 228, 172, 233, 91, 3, 80, 199, 225,
+ 228, 207, 246, 254, 217, 49, 230, 62, 208, 39, 248, 253, 80, 230, 62,
+ 220, 27, 232, 219, 207, 100, 232, 219, 230, 36, 230, 63, 4, 140, 26, 85,
+ 232, 236, 238, 179, 228, 97, 219, 53, 192, 228, 230, 63, 57, 233, 92, 4,
+ 238, 204, 230, 18, 242, 73, 233, 91, 215, 39, 233, 91, 207, 32, 211, 212,
+ 199, 225, 232, 183, 220, 59, 235, 73, 233, 91, 218, 246, 233, 91, 233,
+ 92, 211, 40, 202, 222, 233, 91, 233, 92, 4, 90, 233, 180, 208, 38, 230,
+ 197, 233, 92, 4, 202, 20, 233, 173, 230, 197, 233, 92, 4, 90, 220, 73,
+ 26, 90, 2, 233, 181, 233, 92, 4, 232, 241, 238, 207, 242, 84, 219, 159,
+ 204, 157, 233, 92, 4, 201, 6, 238, 207, 216, 4, 202, 230, 233, 92, 4,
+ 202, 230, 233, 174, 26, 230, 63, 238, 207, 216, 4, 233, 92, 4, 211, 184,
+ 216, 5, 195, 237, 203, 209, 233, 92, 4, 233, 196, 229, 245, 209, 110,
+ 194, 23, 247, 153, 211, 39, 130, 199, 26, 204, 186, 209, 98, 217, 161,
+ 223, 191, 197, 253, 216, 19, 242, 175, 203, 168, 210, 117, 236, 131, 246,
+ 198, 222, 209, 233, 26, 216, 78, 210, 141, 193, 252, 194, 130, 209, 178,
+ 230, 41, 236, 173, 217, 106, 194, 55, 232, 175, 235, 68, 4, 235, 66, 242,
+ 91, 231, 10, 198, 25, 231, 11, 202, 119, 230, 252, 214, 182, 207, 102,
+ 232, 226, 209, 232, 217, 37, 205, 212, 209, 232, 217, 37, 199, 192, 209,
+ 232, 217, 37, 247, 172, 231, 5, 217, 117, 250, 65, 197, 58, 238, 139,
+ 201, 240, 220, 169, 201, 250, 26, 248, 217, 202, 197, 232, 167, 236, 198,
+ 238, 187, 249, 242, 238, 155, 248, 244, 209, 147, 246, 202, 248, 230,
+ 247, 156, 230, 201, 206, 60, 204, 41, 211, 26, 80, 232, 151, 201, 189,
+ 232, 194, 234, 162, 231, 12, 80, 216, 129, 210, 175, 221, 154, 211, 22,
+ 235, 50, 232, 128, 238, 237, 200, 139, 247, 173, 242, 182, 247, 178, 4,
+ 202, 119, 238, 149, 4, 201, 222, 242, 57, 247, 137, 210, 43, 209, 102,
+ 238, 122, 80, 217, 40, 206, 35, 246, 230, 232, 151, 220, 36, 230, 200,
+ 217, 152, 216, 30, 247, 5, 248, 233, 202, 230, 233, 92, 4, 202, 230, 233,
+ 174, 26, 112, 229, 231, 193, 76, 233, 91, 202, 230, 233, 92, 4, 200, 65,
+ 233, 92, 4, 210, 219, 228, 209, 26, 210, 219, 230, 18, 233, 92, 4, 197,
+ 62, 233, 174, 26, 194, 121, 216, 4, 211, 116, 233, 91, 232, 98, 233, 91,
+ 214, 10, 236, 196, 233, 91, 233, 92, 4, 209, 218, 233, 173, 206, 23, 220,
+ 178, 242, 60, 230, 248, 229, 149, 247, 200, 232, 196, 203, 207, 238, 201,
+ 219, 163, 233, 91, 205, 235, 198, 13, 197, 60, 233, 91, 234, 196, 235,
+ 58, 248, 170, 204, 27, 211, 105, 232, 111, 233, 91, 247, 74, 237, 98,
+ 230, 234, 219, 142, 207, 155, 203, 170, 202, 100, 231, 24, 233, 91, 192,
+ 83, 233, 91, 229, 226, 206, 8, 200, 227, 238, 190, 222, 116, 219, 134,
+ 210, 177, 229, 141, 210, 225, 208, 63, 219, 105, 216, 21, 216, 165, 248,
+ 239, 201, 77, 217, 162, 236, 137, 202, 242, 211, 133, 211, 161, 203, 9,
+ 232, 198, 211, 95, 248, 111, 248, 2, 205, 216, 230, 170, 236, 134, 209,
+ 87, 246, 232, 234, 94, 242, 28, 207, 237, 230, 86, 234, 94, 242, 28, 238,
+ 138, 230, 86, 234, 94, 242, 28, 248, 219, 234, 94, 242, 28, 62, 230, 86,
+ 247, 207, 220, 16, 232, 149, 198, 251, 201, 109, 201, 104, 206, 82, 196,
+ 51, 234, 194, 4, 229, 235, 251, 62, 216, 15, 194, 77, 217, 144, 194, 77,
+ 217, 39, 250, 92, 217, 39, 220, 16, 242, 236, 194, 102, 238, 147, 206,
+ 56, 204, 45, 248, 59, 247, 173, 231, 190, 211, 200, 233, 73, 194, 158,
+ 247, 75, 217, 100, 235, 77, 228, 50, 238, 157, 247, 123, 200, 68, 202,
+ 22, 210, 116, 221, 126, 210, 116, 237, 114, 210, 116, 233, 92, 4, 216,
+ 48, 251, 112, 242, 206, 211, 224, 251, 112, 248, 115, 210, 116, 210, 117,
+ 4, 229, 240, 210, 117, 223, 191, 202, 1, 207, 24, 210, 117, 242, 93, 210,
+ 117, 223, 191, 219, 58, 209, 159, 217, 192, 233, 75, 196, 146, 216, 249,
+ 234, 109, 231, 141, 192, 6, 247, 163, 211, 162, 229, 233, 248, 24, 246,
+ 226, 205, 248, 231, 4, 242, 60, 202, 200, 207, 237, 231, 36, 234, 52,
+ 232, 230, 223, 14, 209, 12, 210, 42, 200, 10, 198, 35, 210, 101, 236,
+ 194, 236, 148, 55, 229, 214, 242, 33, 251, 154, 232, 232, 233, 190, 198,
+ 253, 247, 145, 217, 190, 219, 26, 219, 59, 247, 189, 202, 120, 80, 199,
+ 162, 248, 218, 80, 193, 89, 206, 82, 210, 6, 200, 59, 248, 116, 247, 134,
+ 248, 175, 207, 35, 80, 210, 251, 248, 194, 80, 202, 203, 202, 121, 207,
+ 253, 215, 33, 250, 226, 214, 179, 242, 225, 221, 176, 214, 179, 242, 225,
+ 208, 160, 214, 179, 242, 225, 207, 25, 214, 179, 242, 225, 248, 5, 214,
+ 179, 242, 225, 221, 122, 214, 179, 242, 225, 210, 192, 62, 242, 225, 221,
+ 123, 207, 16, 232, 125, 237, 94, 60, 242, 225, 221, 123, 207, 16, 232,
+ 125, 237, 94, 214, 179, 242, 225, 221, 123, 207, 16, 232, 125, 237, 94,
+ 62, 242, 225, 221, 177, 207, 16, 214, 12, 237, 94, 62, 242, 225, 208,
+ 161, 207, 16, 214, 12, 237, 94, 62, 242, 225, 207, 26, 207, 16, 214, 12,
+ 237, 94, 62, 242, 225, 248, 6, 207, 16, 214, 12, 237, 94, 62, 242, 225,
+ 221, 123, 207, 16, 214, 12, 237, 94, 62, 242, 225, 210, 193, 207, 16,
+ 214, 12, 237, 94, 60, 242, 225, 221, 177, 207, 16, 214, 12, 237, 94, 60,
+ 242, 225, 208, 161, 207, 16, 214, 12, 237, 94, 60, 242, 225, 207, 26,
+ 207, 16, 214, 12, 237, 94, 60, 242, 225, 248, 6, 207, 16, 214, 12, 237,
+ 94, 60, 242, 225, 221, 123, 207, 16, 214, 12, 237, 94, 60, 242, 225, 210,
+ 193, 207, 16, 214, 12, 237, 94, 214, 179, 242, 225, 221, 177, 207, 16,
+ 214, 12, 237, 94, 214, 179, 242, 225, 208, 161, 207, 16, 214, 12, 237,
+ 94, 214, 179, 242, 225, 207, 26, 207, 16, 214, 12, 237, 94, 214, 179,
+ 242, 225, 248, 6, 207, 16, 214, 12, 237, 94, 214, 179, 242, 225, 221,
+ 123, 207, 16, 214, 12, 237, 94, 214, 179, 242, 225, 210, 193, 207, 16,
+ 214, 12, 237, 94, 62, 242, 225, 221, 123, 207, 16, 90, 228, 163, 199,
+ 183, 237, 94, 60, 242, 225, 221, 123, 207, 16, 90, 228, 163, 199, 183,
+ 237, 94, 214, 179, 242, 225, 221, 123, 207, 16, 90, 228, 163, 199, 183,
+ 237, 94, 62, 242, 225, 163, 221, 176, 62, 242, 225, 163, 208, 160, 62,
+ 242, 225, 163, 207, 25, 62, 242, 225, 163, 248, 5, 62, 242, 225, 163,
+ 221, 122, 62, 242, 225, 163, 210, 192, 60, 242, 225, 163, 221, 176, 60,
+ 242, 225, 163, 208, 160, 60, 242, 225, 163, 207, 25, 60, 242, 225, 163,
+ 248, 5, 60, 242, 225, 163, 221, 122, 60, 242, 225, 163, 210, 192, 214,
+ 179, 242, 225, 163, 221, 176, 214, 179, 242, 225, 163, 208, 160, 214,
+ 179, 242, 225, 163, 207, 25, 214, 179, 242, 225, 163, 248, 5, 214, 179,
+ 242, 225, 163, 221, 122, 214, 179, 242, 225, 163, 210, 192, 62, 242, 225,
+ 221, 123, 207, 16, 103, 228, 163, 197, 236, 237, 94, 60, 242, 225, 221,
+ 123, 207, 16, 103, 228, 163, 197, 236, 237, 94, 214, 179, 242, 225, 221,
+ 123, 207, 16, 103, 228, 163, 197, 236, 237, 94, 62, 242, 225, 221, 177,
+ 207, 16, 103, 228, 163, 204, 141, 237, 94, 62, 242, 225, 208, 161, 207,
+ 16, 103, 228, 163, 204, 141, 237, 94, 62, 242, 225, 207, 26, 207, 16,
+ 103, 228, 163, 204, 141, 237, 94, 62, 242, 225, 248, 6, 207, 16, 103,
+ 228, 163, 204, 141, 237, 94, 62, 242, 225, 221, 123, 207, 16, 103, 228,
+ 163, 204, 141, 237, 94, 62, 242, 225, 210, 193, 207, 16, 103, 228, 163,
+ 204, 141, 237, 94, 60, 242, 225, 221, 177, 207, 16, 103, 228, 163, 204,
+ 141, 237, 94, 60, 242, 225, 208, 161, 207, 16, 103, 228, 163, 204, 141,
+ 237, 94, 60, 242, 225, 207, 26, 207, 16, 103, 228, 163, 204, 141, 237,
+ 94, 60, 242, 225, 248, 6, 207, 16, 103, 228, 163, 204, 141, 237, 94, 60,
+ 242, 225, 221, 123, 207, 16, 103, 228, 163, 204, 141, 237, 94, 60, 242,
+ 225, 210, 193, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
+ 225, 221, 177, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
+ 225, 208, 161, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
+ 225, 207, 26, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
+ 225, 248, 6, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
+ 225, 221, 123, 207, 16, 103, 228, 163, 204, 141, 237, 94, 214, 179, 242,
+ 225, 210, 193, 207, 16, 103, 228, 163, 204, 141, 237, 94, 62, 242, 225,
+ 221, 123, 207, 16, 112, 228, 163, 233, 8, 237, 94, 60, 242, 225, 221,
+ 123, 207, 16, 112, 228, 163, 233, 8, 237, 94, 214, 179, 242, 225, 221,
+ 123, 207, 16, 112, 228, 163, 233, 8, 237, 94, 62, 242, 225, 234, 25, 60,
+ 242, 225, 234, 25, 214, 179, 242, 225, 234, 25, 62, 242, 225, 234, 26,
+ 207, 16, 214, 12, 237, 94, 60, 242, 225, 234, 26, 207, 16, 214, 12, 237,
+ 94, 214, 179, 242, 225, 234, 26, 207, 16, 214, 12, 237, 94, 62, 242, 225,
+ 221, 120, 62, 242, 225, 221, 119, 62, 242, 225, 221, 121, 60, 242, 225,
+ 221, 120, 60, 242, 225, 221, 119, 60, 242, 225, 221, 121, 193, 194, 207,
+ 237, 231, 143, 193, 194, 207, 237, 217, 154, 193, 194, 207, 237, 234,
+ 115, 193, 194, 207, 237, 228, 204, 193, 194, 207, 237, 242, 254, 193,
+ 194, 207, 237, 246, 229, 193, 194, 207, 237, 202, 192, 193, 194, 60, 231,
+ 143, 193, 194, 60, 217, 154, 193, 194, 60, 234, 115, 193, 194, 60, 228,
+ 204, 193, 194, 60, 242, 254, 193, 194, 60, 246, 229, 193, 194, 60, 202,
+ 192, 248, 216, 203, 206, 211, 205, 201, 64, 247, 141, 203, 180, 199, 172,
+ 206, 37, 235, 72, 80, 247, 229, 251, 118, 248, 202, 201, 251, 192, 242,
+ 221, 157, 210, 245, 247, 201, 217, 191, 194, 147, 210, 4, 214, 184, 236,
+ 126, 207, 80, 209, 224, 246, 112, 208, 11, 249, 237, 236, 168, 220, 84,
+ 248, 200, 216, 130, 229, 210, 251, 139, 184, 235, 67, 242, 52, 246, 204,
+ 206, 6, 205, 230, 220, 168, 128, 216, 105, 194, 51, 209, 208, 204, 138,
+ 214, 202, 221, 117, 247, 120, 216, 7, 198, 203, 198, 250, 229, 238, 209,
+ 233, 207, 40, 232, 168, 194, 5, 248, 102, 242, 59, 209, 146, 209, 223,
+ 194, 16, 233, 42, 250, 221, 229, 233, 219, 17, 210, 140, 228, 171, 247,
+ 222, 248, 87, 210, 135, 211, 221, 232, 194, 200, 128, 232, 155, 200, 66,
+ 175, 204, 135, 175, 204, 105, 175, 204, 134, 175, 204, 90, 175, 204, 119,
+ 175, 204, 104, 175, 204, 133, 175, 204, 82, 175, 204, 112, 175, 204, 96,
+ 175, 204, 126, 175, 204, 89, 175, 204, 118, 175, 204, 103, 175, 204, 132,
+ 175, 204, 78, 175, 204, 108, 175, 204, 93, 175, 204, 122, 175, 204, 85,
+ 175, 204, 99, 175, 204, 129, 175, 204, 81, 175, 204, 111, 175, 204, 95,
+ 175, 204, 125, 175, 204, 88, 175, 204, 117, 175, 204, 102, 175, 204, 131,
+ 175, 204, 76, 175, 204, 106, 175, 204, 91, 175, 204, 120, 175, 204, 83,
+ 175, 204, 113, 175, 204, 97, 175, 204, 127, 175, 204, 79, 175, 204, 109,
+ 175, 204, 123, 175, 204, 86, 175, 204, 115, 175, 204, 100, 175, 204, 130,
+ 175, 204, 77, 175, 204, 107, 175, 204, 92, 175, 204, 121, 175, 204, 84,
+ 175, 204, 114, 175, 204, 98, 175, 204, 128, 175, 204, 80, 175, 204, 110,
+ 175, 204, 94, 175, 204, 124, 175, 204, 87, 175, 204, 116, 175, 204, 101,
+ 106, 46, 175, 237, 11, 106, 85, 46, 115, 106, 246, 137, 106, 46, 175,
+ 237, 11, 106, 85, 46, 115, 106, 207, 101, 106, 46, 175, 237, 11, 113, 85,
+ 46, 115, 106, 246, 137, 106, 46, 175, 237, 11, 113, 85, 46, 115, 106,
+ 207, 101, 106, 46, 175, 237, 11, 113, 46, 115, 106, 246, 137, 106, 51,
+ 175, 237, 11, 113, 85, 46, 115, 113, 246, 137, 106, 51, 175, 237, 11,
+ 113, 85, 46, 115, 113, 207, 101, 106, 51, 175, 237, 11, 106, 85, 46, 115,
+ 113, 246, 137, 106, 51, 175, 237, 11, 106, 85, 46, 115, 113, 207, 101,
+ 106, 51, 175, 237, 11, 106, 46, 115, 113, 246, 137, 106, 51, 175, 237,
+ 11, 106, 85, 46, 115, 113, 85, 207, 101, 106, 51, 175, 237, 11, 106, 246,
+ 138, 115, 106, 85, 207, 101, 106, 51, 175, 237, 11, 106, 46, 115, 106,
+ 85, 207, 101, 106, 51, 175, 237, 11, 106, 246, 138, 115, 113, 85, 207,
+ 101, 106, 51, 175, 237, 11, 106, 46, 115, 113, 85, 207, 101, 106, 51,
+ 175, 237, 11, 106, 246, 138, 115, 113, 207, 101, 106, 46, 175, 237, 11,
+ 113, 246, 138, 115, 113, 85, 207, 101, 106, 46, 175, 237, 11, 113, 46,
+ 115, 113, 85, 207, 101, 106, 46, 175, 237, 11, 113, 246, 138, 115, 106,
+ 85, 207, 101, 106, 46, 175, 237, 11, 113, 46, 115, 106, 85, 207, 101,
+ 106, 46, 175, 237, 11, 113, 246, 138, 115, 106, 207, 101, 106, 46, 175,
+ 237, 11, 113, 85, 46, 115, 106, 85, 207, 101, 113, 51, 175, 237, 11, 106,
+ 85, 46, 115, 106, 246, 137, 113, 51, 175, 237, 11, 106, 85, 46, 115, 106,
+ 207, 101, 113, 51, 175, 237, 11, 113, 85, 46, 115, 106, 246, 137, 113,
+ 51, 175, 237, 11, 113, 85, 46, 115, 106, 207, 101, 113, 51, 175, 237, 11,
+ 113, 46, 115, 106, 246, 137, 113, 46, 175, 237, 11, 113, 85, 46, 115,
+ 113, 246, 137, 113, 46, 175, 237, 11, 113, 85, 46, 115, 113, 207, 101,
+ 113, 46, 175, 237, 11, 106, 85, 46, 115, 113, 246, 137, 113, 46, 175,
+ 237, 11, 106, 85, 46, 115, 113, 207, 101, 113, 46, 175, 237, 11, 106, 46,
+ 115, 113, 246, 137, 113, 46, 175, 237, 11, 106, 85, 46, 115, 113, 85,
+ 207, 101, 113, 46, 175, 237, 11, 106, 246, 138, 115, 106, 85, 207, 101,
+ 113, 46, 175, 237, 11, 106, 46, 115, 106, 85, 207, 101, 113, 46, 175,
+ 237, 11, 106, 246, 138, 115, 113, 85, 207, 101, 113, 46, 175, 237, 11,
+ 106, 46, 115, 113, 85, 207, 101, 113, 46, 175, 237, 11, 106, 246, 138,
+ 115, 113, 207, 101, 113, 51, 175, 237, 11, 113, 246, 138, 115, 113, 85,
+ 207, 101, 113, 51, 175, 237, 11, 113, 46, 115, 113, 85, 207, 101, 113,
+ 51, 175, 237, 11, 113, 246, 138, 115, 106, 85, 207, 101, 113, 51, 175,
+ 237, 11, 113, 46, 115, 106, 85, 207, 101, 113, 51, 175, 237, 11, 113,
+ 246, 138, 115, 106, 207, 101, 113, 51, 175, 237, 11, 113, 85, 46, 115,
+ 106, 85, 207, 101, 113, 26, 51, 26, 106, 198, 182, 112, 208, 166, 247,
+ 238, 46, 26, 106, 26, 51, 198, 182, 112, 208, 166, 247, 238, 113, 26, 46,
+ 26, 106, 198, 182, 112, 208, 166, 247, 238, 46, 26, 113, 26, 51, 198,
+ 182, 112, 208, 166, 247, 238, 46, 198, 182, 90, 208, 168, 247, 238, 113,
+ 198, 182, 90, 208, 168, 247, 238, 51, 198, 182, 90, 208, 168, 247, 238,
+ 106, 198, 182, 90, 208, 168, 247, 238, 84, 90, 234, 144, 247, 236, 84,
+ 90, 234, 144, 247, 235, 84, 90, 234, 144, 247, 234, 84, 90, 234, 144,
+ 247, 233, 84, 90, 234, 144, 247, 232, 84, 90, 234, 144, 247, 231, 229, 5,
+ 90, 234, 144, 247, 236, 229, 5, 90, 234, 144, 247, 235, 229, 5, 90, 234,
+ 144, 247, 234, 229, 5, 90, 234, 144, 247, 233, 229, 5, 90, 234, 144, 247,
+ 232, 229, 5, 90, 234, 144, 247, 231, 46, 26, 106, 90, 234, 144, 247, 238,
+ 46, 26, 113, 90, 234, 144, 247, 238, 51, 26, 113, 90, 234, 144, 247, 238,
+ 51, 26, 106, 90, 234, 144, 247, 238, 113, 26, 106, 90, 234, 144, 247,
+ 238, 229, 5, 90, 234, 144, 247, 237, 113, 90, 208, 168, 247, 238, 113,
+ 112, 234, 142, 247, 238, 113, 232, 214, 234, 142, 247, 238, 113, 112,
+ 208, 166, 247, 238, 113, 204, 146, 234, 142, 247, 238, 51, 90, 208, 168,
+ 247, 238, 51, 112, 234, 142, 247, 238, 51, 232, 214, 234, 142, 247, 238,
+ 51, 112, 208, 166, 247, 238, 51, 204, 146, 234, 142, 247, 238, 46, 138,
+ 217, 31, 204, 52, 51, 138, 217, 31, 204, 52, 113, 138, 217, 31, 204, 52,
+ 106, 138, 217, 31, 204, 52, 223, 123, 217, 31, 204, 52, 113, 138, 175,
+ 26, 106, 138, 223, 123, 217, 31, 204, 52, 113, 138, 223, 123, 217, 31,
+ 204, 53, 26, 106, 138, 247, 238, 46, 138, 223, 123, 217, 31, 204, 53, 26,
+ 51, 138, 247, 238, 242, 242, 247, 217, 232, 249, 223, 123, 242, 242, 247,
+ 217, 232, 249, 87, 229, 5, 232, 249, 113, 46, 115, 106, 51, 232, 249,
+ 113, 51, 115, 106, 46, 232, 249, 113, 26, 106, 198, 182, 138, 247, 238,
+ 46, 26, 51, 198, 182, 138, 247, 238, 113, 46, 198, 182, 217, 31, 204, 52,
+ 113, 51, 198, 182, 217, 31, 204, 52, 106, 51, 198, 182, 217, 31, 204, 52,
+ 106, 46, 198, 182, 217, 31, 204, 52, 105, 119, 152, 237, 11, 113, 246,
+ 138, 115, 85, 220, 28, 105, 119, 152, 237, 11, 113, 246, 138, 115, 85,
+ 207, 101, 105, 119, 152, 237, 11, 85, 46, 115, 106, 246, 137, 105, 119,
+ 152, 237, 11, 85, 51, 115, 106, 246, 137, 105, 119, 152, 237, 11, 113,
+ 246, 138, 115, 85, 46, 115, 106, 246, 137, 105, 119, 152, 237, 11, 113,
+ 246, 138, 115, 85, 51, 115, 106, 246, 137, 105, 119, 152, 237, 11, 85,
+ 46, 115, 106, 246, 138, 115, 85, 207, 101, 105, 119, 152, 237, 11, 85,
+ 46, 115, 113, 246, 138, 115, 85, 207, 101, 105, 119, 152, 237, 11, 113,
+ 246, 138, 115, 85, 46, 26, 85, 51, 115, 106, 246, 137, 105, 119, 152,
+ 237, 11, 113, 246, 138, 115, 85, 51, 26, 85, 46, 115, 106, 246, 137, 105,
+ 119, 152, 237, 11, 113, 246, 138, 115, 85, 51, 115, 106, 246, 138, 115,
+ 85, 220, 28, 105, 119, 152, 237, 11, 113, 246, 138, 115, 85, 46, 115,
+ 106, 246, 138, 115, 85, 207, 101, 105, 119, 152, 237, 11, 85, 46, 115,
+ 113, 246, 138, 115, 85, 51, 115, 106, 246, 137, 105, 119, 152, 237, 11,
+ 85, 51, 115, 113, 246, 138, 115, 85, 46, 115, 106, 246, 137, 105, 119,
+ 152, 237, 11, 237, 4, 105, 119, 152, 229, 5, 4, 84, 111, 250, 76, 209,
+ 189, 223, 123, 242, 244, 77, 46, 138, 206, 192, 217, 160, 51, 138, 206,
+ 192, 217, 160, 223, 123, 235, 92, 61, 4, 199, 74, 220, 18, 114, 61, 26,
+ 113, 26, 106, 90, 234, 144, 247, 238, 94, 61, 26, 113, 26, 106, 90, 234,
+ 144, 247, 238, 235, 92, 61, 26, 51, 90, 234, 144, 247, 238, 197, 30, 61,
+ 26, 51, 90, 234, 144, 247, 238, 46, 138, 232, 160, 51, 138, 232, 160,
+ 195, 244, 33, 238, 183, 51, 211, 184, 108, 236, 114, 214, 199, 237, 11,
+ 238, 183, 214, 199, 237, 11, 85, 51, 115, 106, 246, 137, 214, 199, 237,
+ 11, 237, 4, 62, 87, 206, 52, 4, 207, 7, 238, 222, 46, 199, 192, 62, 51,
+ 209, 188, 223, 176, 85, 199, 192, 62, 51, 209, 188, 223, 176, 51, 199,
+ 192, 62, 51, 209, 188, 223, 176, 214, 199, 108, 208, 159, 77, 201, 250,
+ 233, 0, 201, 250, 233, 1, 4, 250, 89, 208, 38, 201, 250, 233, 1, 220, 35,
+ 220, 28, 201, 250, 233, 1, 220, 35, 207, 101, 201, 250, 233, 1, 4, 235,
+ 79, 62, 197, 40, 242, 220, 205, 197, 17, 192, 76, 205, 197, 17, 101, 205,
+ 197, 17, 104, 205, 197, 17, 133, 205, 197, 17, 134, 205, 197, 17, 151,
+ 205, 197, 17, 170, 205, 197, 17, 179, 205, 197, 17, 174, 205, 197, 17,
+ 182, 12, 15, 228, 38, 12, 15, 228, 37, 12, 15, 228, 36, 12, 15, 228, 35,
+ 12, 15, 228, 34, 12, 15, 228, 33, 12, 15, 228, 32, 12, 15, 228, 31, 12,
+ 15, 228, 30, 12, 15, 228, 29, 12, 15, 228, 28, 12, 15, 228, 27, 12, 15,
+ 228, 26, 12, 15, 228, 25, 12, 15, 228, 24, 12, 15, 228, 23, 12, 15, 228,
+ 22, 12, 15, 228, 21, 12, 15, 228, 20, 12, 15, 228, 19, 12, 15, 228, 18,
+ 12, 15, 228, 17, 12, 15, 228, 16, 12, 15, 228, 15, 12, 15, 228, 14, 12,
+ 15, 228, 13, 12, 15, 228, 12, 12, 15, 228, 11, 12, 15, 228, 10, 12, 15,
+ 228, 9, 12, 15, 228, 8, 12, 15, 228, 7, 12, 15, 228, 6, 12, 15, 228, 5,
+ 12, 15, 228, 4, 12, 15, 228, 3, 12, 15, 228, 2, 12, 15, 228, 1, 12, 15,
+ 228, 0, 12, 15, 227, 255, 12, 15, 227, 254, 12, 15, 227, 253, 12, 15,
+ 227, 252, 12, 15, 227, 251, 12, 15, 227, 250, 12, 15, 227, 249, 12, 15,
+ 227, 248, 12, 15, 227, 247, 12, 15, 227, 246, 12, 15, 227, 245, 12, 15,
+ 227, 244, 12, 15, 227, 243, 12, 15, 227, 242, 12, 15, 227, 241, 12, 15,
+ 227, 240, 12, 15, 227, 239, 12, 15, 227, 238, 12, 15, 227, 237, 12, 15,
+ 227, 236, 12, 15, 227, 235, 12, 15, 227, 234, 12, 15, 227, 233, 12, 15,
+ 227, 232, 12, 15, 227, 231, 12, 15, 227, 230, 12, 15, 227, 229, 12, 15,
+ 227, 228, 12, 15, 227, 227, 12, 15, 227, 226, 12, 15, 227, 225, 12, 15,
+ 227, 224, 12, 15, 227, 223, 12, 15, 227, 222, 12, 15, 227, 221, 12, 15,
+ 227, 220, 12, 15, 227, 219, 12, 15, 227, 218, 12, 15, 227, 217, 12, 15,
+ 227, 216, 12, 15, 227, 215, 12, 15, 227, 214, 12, 15, 227, 213, 12, 15,
+ 227, 212, 12, 15, 227, 211, 12, 15, 227, 210, 12, 15, 227, 209, 12, 15,
+ 227, 208, 12, 15, 227, 207, 12, 15, 227, 206, 12, 15, 227, 205, 12, 15,
+ 227, 204, 12, 15, 227, 203, 12, 15, 227, 202, 12, 15, 227, 201, 12, 15,
+ 227, 200, 12, 15, 227, 199, 12, 15, 227, 198, 12, 15, 227, 197, 12, 15,
+ 227, 196, 12, 15, 227, 195, 12, 15, 227, 194, 12, 15, 227, 193, 12, 15,
+ 227, 192, 12, 15, 227, 191, 12, 15, 227, 190, 12, 15, 227, 189, 12, 15,
+ 227, 188, 12, 15, 227, 187, 12, 15, 227, 186, 12, 15, 227, 185, 12, 15,
+ 227, 184, 12, 15, 227, 183, 12, 15, 227, 182, 12, 15, 227, 181, 12, 15,
+ 227, 180, 12, 15, 227, 179, 12, 15, 227, 178, 12, 15, 227, 177, 12, 15,
+ 227, 176, 12, 15, 227, 175, 12, 15, 227, 174, 12, 15, 227, 173, 12, 15,
+ 227, 172, 12, 15, 227, 171, 12, 15, 227, 170, 12, 15, 227, 169, 12, 15,
+ 227, 168, 12, 15, 227, 167, 12, 15, 227, 166, 12, 15, 227, 165, 12, 15,
+ 227, 164, 12, 15, 227, 163, 12, 15, 227, 162, 12, 15, 227, 161, 12, 15,
+ 227, 160, 12, 15, 227, 159, 12, 15, 227, 158, 12, 15, 227, 157, 12, 15,
+ 227, 156, 12, 15, 227, 155, 12, 15, 227, 154, 12, 15, 227, 153, 12, 15,
+ 227, 152, 12, 15, 227, 151, 12, 15, 227, 150, 12, 15, 227, 149, 12, 15,
+ 227, 148, 12, 15, 227, 147, 12, 15, 227, 146, 12, 15, 227, 145, 12, 15,
+ 227, 144, 12, 15, 227, 143, 12, 15, 227, 142, 12, 15, 227, 141, 12, 15,
+ 227, 140, 12, 15, 227, 139, 12, 15, 227, 138, 12, 15, 227, 137, 12, 15,
+ 227, 136, 12, 15, 227, 135, 12, 15, 227, 134, 12, 15, 227, 133, 12, 15,
+ 227, 132, 12, 15, 227, 131, 12, 15, 227, 130, 12, 15, 227, 129, 12, 15,
+ 227, 128, 12, 15, 227, 127, 12, 15, 227, 126, 12, 15, 227, 125, 12, 15,
+ 227, 124, 12, 15, 227, 123, 12, 15, 227, 122, 12, 15, 227, 121, 12, 15,
+ 227, 120, 12, 15, 227, 119, 12, 15, 227, 118, 12, 15, 227, 117, 12, 15,
+ 227, 116, 12, 15, 227, 115, 12, 15, 227, 114, 12, 15, 227, 113, 12, 15,
+ 227, 112, 12, 15, 227, 111, 12, 15, 227, 110, 12, 15, 227, 109, 12, 15,
+ 227, 108, 12, 15, 227, 107, 12, 15, 227, 106, 12, 15, 227, 105, 12, 15,
+ 227, 104, 12, 15, 227, 103, 12, 15, 227, 102, 12, 15, 227, 101, 12, 15,
+ 227, 100, 12, 15, 227, 99, 12, 15, 227, 98, 12, 15, 227, 97, 12, 15, 227,
+ 96, 12, 15, 227, 95, 12, 15, 227, 94, 12, 15, 227, 93, 12, 15, 227, 92,
+ 12, 15, 227, 91, 12, 15, 227, 90, 12, 15, 227, 89, 12, 15, 227, 88, 12,
+ 15, 227, 87, 12, 15, 227, 86, 12, 15, 227, 85, 12, 15, 227, 84, 12, 15,
+ 227, 83, 12, 15, 227, 82, 12, 15, 227, 81, 12, 15, 227, 80, 12, 15, 227,
+ 79, 12, 15, 227, 78, 12, 15, 227, 77, 12, 15, 227, 76, 12, 15, 227, 75,
+ 12, 15, 227, 74, 12, 15, 227, 73, 12, 15, 227, 72, 12, 15, 227, 71, 12,
+ 15, 227, 70, 12, 15, 227, 69, 12, 15, 227, 68, 12, 15, 227, 67, 12, 15,
+ 227, 66, 12, 15, 227, 65, 12, 15, 227, 64, 12, 15, 227, 63, 12, 15, 227,
+ 62, 12, 15, 227, 61, 12, 15, 227, 60, 12, 15, 227, 59, 12, 15, 227, 58,
+ 12, 15, 227, 57, 12, 15, 227, 56, 12, 15, 227, 55, 12, 15, 227, 54, 12,
+ 15, 227, 53, 12, 15, 227, 52, 12, 15, 227, 51, 12, 15, 227, 50, 12, 15,
+ 227, 49, 12, 15, 227, 48, 12, 15, 227, 47, 12, 15, 227, 46, 12, 15, 227,
+ 45, 12, 15, 227, 44, 12, 15, 227, 43, 12, 15, 227, 42, 12, 15, 227, 41,
+ 12, 15, 227, 40, 12, 15, 227, 39, 12, 15, 227, 38, 12, 15, 227, 37, 12,
+ 15, 227, 36, 12, 15, 227, 35, 12, 15, 227, 34, 12, 15, 227, 33, 12, 15,
+ 227, 32, 12, 15, 227, 31, 12, 15, 227, 30, 12, 15, 227, 29, 12, 15, 227,
+ 28, 12, 15, 227, 27, 12, 15, 227, 26, 12, 15, 227, 25, 12, 15, 227, 24,
+ 12, 15, 227, 23, 12, 15, 227, 22, 12, 15, 227, 21, 12, 15, 227, 20, 12,
+ 15, 227, 19, 12, 15, 227, 18, 12, 15, 227, 17, 12, 15, 227, 16, 12, 15,
+ 227, 15, 12, 15, 227, 14, 12, 15, 227, 13, 12, 15, 227, 12, 12, 15, 227,
+ 11, 12, 15, 227, 10, 12, 15, 227, 9, 12, 15, 227, 8, 12, 15, 227, 7, 12,
+ 15, 227, 6, 12, 15, 227, 5, 12, 15, 227, 4, 12, 15, 227, 3, 12, 15, 227,
+ 2, 12, 15, 227, 1, 12, 15, 227, 0, 12, 15, 226, 255, 12, 15, 226, 254,
+ 12, 15, 226, 253, 12, 15, 226, 252, 12, 15, 226, 251, 12, 15, 226, 250,
+ 12, 15, 226, 249, 12, 15, 226, 248, 12, 15, 226, 247, 12, 15, 226, 246,
+ 12, 15, 226, 245, 12, 15, 226, 244, 12, 15, 226, 243, 12, 15, 226, 242,
+ 12, 15, 226, 241, 12, 15, 226, 240, 12, 15, 226, 239, 12, 15, 226, 238,
+ 12, 15, 226, 237, 12, 15, 226, 236, 12, 15, 226, 235, 12, 15, 226, 234,
+ 12, 15, 226, 233, 12, 15, 226, 232, 12, 15, 226, 231, 12, 15, 226, 230,
+ 12, 15, 226, 229, 12, 15, 226, 228, 12, 15, 226, 227, 12, 15, 226, 226,
+ 12, 15, 226, 225, 12, 15, 226, 224, 12, 15, 226, 223, 12, 15, 226, 222,
+ 12, 15, 226, 221, 12, 15, 226, 220, 12, 15, 226, 219, 12, 15, 226, 218,
+ 12, 15, 226, 217, 12, 15, 226, 216, 12, 15, 226, 215, 12, 15, 226, 214,
+ 12, 15, 226, 213, 12, 15, 226, 212, 12, 15, 226, 211, 12, 15, 226, 210,
+ 12, 15, 226, 209, 12, 15, 226, 208, 12, 15, 226, 207, 12, 15, 226, 206,
+ 12, 15, 226, 205, 12, 15, 226, 204, 12, 15, 226, 203, 12, 15, 226, 202,
+ 12, 15, 226, 201, 12, 15, 226, 200, 12, 15, 226, 199, 12, 15, 226, 198,
+ 12, 15, 226, 197, 12, 15, 226, 196, 12, 15, 226, 195, 12, 15, 226, 194,
+ 12, 15, 226, 193, 12, 15, 226, 192, 12, 15, 226, 191, 12, 15, 226, 190,
+ 12, 15, 226, 189, 12, 15, 226, 188, 12, 15, 226, 187, 12, 15, 226, 186,
+ 12, 15, 226, 185, 12, 15, 226, 184, 12, 15, 226, 183, 12, 15, 226, 182,
+ 12, 15, 226, 181, 12, 15, 226, 180, 12, 15, 226, 179, 12, 15, 226, 178,
+ 12, 15, 226, 177, 12, 15, 226, 176, 12, 15, 226, 175, 12, 15, 226, 174,
+ 12, 15, 226, 173, 12, 15, 226, 172, 12, 15, 226, 171, 12, 15, 226, 170,
+ 12, 15, 226, 169, 12, 15, 226, 168, 12, 15, 226, 167, 12, 15, 226, 166,
+ 12, 15, 226, 165, 12, 15, 226, 164, 12, 15, 226, 163, 12, 15, 226, 162,
+ 12, 15, 226, 161, 12, 15, 226, 160, 12, 15, 226, 159, 12, 15, 226, 158,
+ 12, 15, 226, 157, 12, 15, 226, 156, 12, 15, 226, 155, 12, 15, 226, 154,
+ 12, 15, 226, 153, 12, 15, 226, 152, 12, 15, 226, 151, 12, 15, 226, 150,
+ 12, 15, 226, 149, 12, 15, 226, 148, 12, 15, 226, 147, 12, 15, 226, 146,
+ 12, 15, 226, 145, 12, 15, 226, 144, 12, 15, 226, 143, 12, 15, 226, 142,
+ 12, 15, 226, 141, 12, 15, 226, 140, 12, 15, 226, 139, 12, 15, 226, 138,
+ 12, 15, 226, 137, 12, 15, 226, 136, 12, 15, 226, 135, 12, 15, 226, 134,
+ 12, 15, 226, 133, 12, 15, 226, 132, 12, 15, 226, 131, 12, 15, 226, 130,
+ 12, 15, 226, 129, 12, 15, 226, 128, 12, 15, 226, 127, 12, 15, 226, 126,
+ 12, 15, 226, 125, 12, 15, 226, 124, 12, 15, 226, 123, 12, 15, 226, 122,
+ 12, 15, 226, 121, 12, 15, 226, 120, 12, 15, 226, 119, 12, 15, 226, 118,
+ 12, 15, 226, 117, 12, 15, 226, 116, 12, 15, 226, 115, 12, 15, 226, 114,
+ 12, 15, 226, 113, 12, 15, 226, 112, 12, 15, 226, 111, 12, 15, 226, 110,
+ 12, 15, 226, 109, 12, 15, 226, 108, 12, 15, 226, 107, 12, 15, 226, 106,
+ 12, 15, 226, 105, 12, 15, 226, 104, 12, 15, 226, 103, 12, 15, 226, 102,
+ 12, 15, 226, 101, 12, 15, 226, 100, 12, 15, 226, 99, 12, 15, 226, 98, 12,
+ 15, 226, 97, 12, 15, 226, 96, 12, 15, 226, 95, 12, 15, 226, 94, 12, 15,
+ 226, 93, 12, 15, 226, 92, 12, 15, 226, 91, 12, 15, 226, 90, 12, 15, 226,
+ 89, 12, 15, 226, 88, 12, 15, 226, 87, 12, 15, 226, 86, 12, 15, 226, 85,
+ 12, 15, 226, 84, 12, 15, 226, 83, 12, 15, 226, 82, 12, 15, 226, 81, 12,
+ 15, 226, 80, 12, 15, 226, 79, 12, 15, 226, 78, 12, 15, 226, 77, 12, 15,
+ 226, 76, 12, 15, 226, 75, 12, 15, 226, 74, 12, 15, 226, 73, 12, 15, 226,
+ 72, 12, 15, 226, 71, 12, 15, 226, 70, 12, 15, 226, 69, 12, 15, 226, 68,
+ 12, 15, 226, 67, 12, 15, 226, 66, 12, 15, 226, 65, 12, 15, 226, 64, 12,
+ 15, 226, 63, 12, 15, 226, 62, 12, 15, 226, 61, 12, 15, 226, 60, 12, 15,
+ 226, 59, 12, 15, 226, 58, 12, 15, 226, 57, 12, 15, 226, 56, 12, 15, 226,
+ 55, 12, 15, 226, 54, 12, 15, 226, 53, 12, 15, 226, 52, 12, 15, 226, 51,
+ 12, 15, 226, 50, 12, 15, 226, 49, 12, 15, 226, 48, 12, 15, 226, 47, 12,
+ 15, 226, 46, 12, 15, 226, 45, 12, 15, 226, 44, 12, 15, 226, 43, 12, 15,
+ 226, 42, 12, 15, 226, 41, 12, 15, 226, 40, 12, 15, 226, 39, 12, 15, 226,
+ 38, 12, 15, 226, 37, 12, 15, 226, 36, 12, 15, 226, 35, 12, 15, 226, 34,
+ 12, 15, 226, 33, 12, 15, 226, 32, 12, 15, 226, 31, 12, 15, 226, 30, 12,
+ 15, 226, 29, 12, 15, 226, 28, 12, 15, 226, 27, 12, 15, 226, 26, 12, 15,
+ 226, 25, 12, 15, 226, 24, 12, 15, 226, 23, 12, 15, 226, 22, 12, 15, 226,
+ 21, 12, 15, 226, 20, 12, 15, 226, 19, 12, 15, 226, 18, 12, 15, 226, 17,
+ 12, 15, 226, 16, 12, 15, 226, 15, 12, 15, 226, 14, 12, 15, 226, 13, 12,
+ 15, 226, 12, 12, 15, 226, 11, 12, 15, 226, 10, 12, 15, 226, 9, 220, 79,
+ 200, 155, 190, 202, 160, 190, 233, 204, 77, 190, 208, 142, 77, 190, 31,
+ 57, 190, 236, 127, 57, 190, 210, 133, 57, 190, 250, 229, 190, 250, 147,
+ 190, 46, 210, 230, 190, 51, 210, 230, 190, 250, 37, 190, 102, 57, 190,
+ 242, 38, 190, 228, 110, 190, 232, 71, 201, 238, 190, 202, 189, 190, 17,
+ 192, 76, 190, 17, 101, 190, 17, 104, 190, 17, 133, 190, 17, 134, 190, 17,
+ 151, 190, 17, 170, 190, 17, 179, 190, 17, 174, 190, 17, 182, 190, 242,
+ 47, 190, 204, 180, 190, 219, 240, 57, 190, 234, 30, 57, 190, 230, 204,
+ 57, 190, 208, 159, 77, 190, 242, 36, 250, 26, 190, 8, 6, 1, 64, 190, 8,
+ 6, 1, 249, 226, 190, 8, 6, 1, 247, 52, 190, 8, 6, 1, 238, 95, 190, 8, 6,
+ 1, 71, 190, 8, 6, 1, 233, 163, 190, 8, 6, 1, 232, 44, 190, 8, 6, 1, 230,
+ 124, 190, 8, 6, 1, 70, 190, 8, 6, 1, 223, 65, 190, 8, 6, 1, 222, 184,
+ 190, 8, 6, 1, 165, 190, 8, 6, 1, 218, 236, 190, 8, 6, 1, 215, 151, 190,
+ 8, 6, 1, 74, 190, 8, 6, 1, 211, 93, 190, 8, 6, 1, 208, 247, 190, 8, 6, 1,
+ 150, 190, 8, 6, 1, 206, 158, 190, 8, 6, 1, 200, 228, 190, 8, 6, 1, 68,
+ 190, 8, 6, 1, 196, 236, 190, 8, 6, 1, 194, 202, 190, 8, 6, 1, 193, 223,
+ 190, 8, 6, 1, 193, 148, 190, 8, 6, 1, 192, 155, 190, 46, 50, 186, 190,
+ 207, 169, 202, 189, 190, 51, 50, 186, 190, 242, 122, 251, 143, 190, 132,
+ 219, 175, 190, 230, 211, 251, 143, 190, 8, 2, 1, 64, 190, 8, 2, 1, 249,
+ 226, 190, 8, 2, 1, 247, 52, 190, 8, 2, 1, 238, 95, 190, 8, 2, 1, 71, 190,
+ 8, 2, 1, 233, 163, 190, 8, 2, 1, 232, 44, 190, 8, 2, 1, 230, 124, 190, 8,
+ 2, 1, 70, 190, 8, 2, 1, 223, 65, 190, 8, 2, 1, 222, 184, 190, 8, 2, 1,
+ 165, 190, 8, 2, 1, 218, 236, 190, 8, 2, 1, 215, 151, 190, 8, 2, 1, 74,
+ 190, 8, 2, 1, 211, 93, 190, 8, 2, 1, 208, 247, 190, 8, 2, 1, 150, 190, 8,
+ 2, 1, 206, 158, 190, 8, 2, 1, 200, 228, 190, 8, 2, 1, 68, 190, 8, 2, 1,
+ 196, 236, 190, 8, 2, 1, 194, 202, 190, 8, 2, 1, 193, 223, 190, 8, 2, 1,
+ 193, 148, 190, 8, 2, 1, 192, 155, 190, 46, 238, 138, 186, 190, 84, 219,
+ 175, 190, 51, 238, 138, 186, 190, 199, 90, 246, 242, 200, 155, 65, 205,
+ 110, 65, 205, 99, 65, 205, 88, 65, 205, 76, 65, 205, 65, 65, 205, 54, 65,
+ 205, 43, 65, 205, 32, 65, 205, 21, 65, 205, 13, 65, 205, 12, 65, 205, 11,
+ 65, 205, 10, 65, 205, 8, 65, 205, 7, 65, 205, 6, 65, 205, 5, 65, 205, 4,
+ 65, 205, 3, 65, 205, 2, 65, 205, 1, 65, 205, 0, 65, 204, 255, 65, 204,
+ 253, 65, 204, 252, 65, 204, 251, 65, 204, 250, 65, 204, 249, 65, 204,
+ 248, 65, 204, 247, 65, 204, 246, 65, 204, 245, 65, 204, 244, 65, 204,
+ 242, 65, 204, 241, 65, 204, 240, 65, 204, 239, 65, 204, 238, 65, 204,
+ 237, 65, 204, 236, 65, 204, 235, 65, 204, 234, 65, 204, 233, 65, 204,
+ 231, 65, 204, 230, 65, 204, 229, 65, 204, 228, 65, 204, 227, 65, 204,
+ 226, 65, 204, 225, 65, 204, 224, 65, 204, 223, 65, 204, 222, 65, 204,
+ 220, 65, 204, 219, 65, 204, 218, 65, 204, 217, 65, 204, 216, 65, 204,
+ 215, 65, 204, 214, 65, 204, 213, 65, 204, 212, 65, 204, 211, 65, 204,
+ 209, 65, 204, 208, 65, 204, 207, 65, 204, 206, 65, 204, 205, 65, 204,
+ 204, 65, 204, 203, 65, 204, 202, 65, 204, 201, 65, 204, 200, 65, 204,
+ 198, 65, 204, 197, 65, 204, 196, 65, 204, 195, 65, 204, 194, 65, 204,
+ 193, 65, 204, 192, 65, 204, 191, 65, 204, 190, 65, 204, 189, 65, 205,
+ 186, 65, 205, 185, 65, 205, 184, 65, 205, 183, 65, 205, 182, 65, 205,
+ 181, 65, 205, 180, 65, 205, 179, 65, 205, 178, 65, 205, 177, 65, 205,
+ 175, 65, 205, 174, 65, 205, 173, 65, 205, 172, 65, 205, 171, 65, 205,
+ 170, 65, 205, 169, 65, 205, 168, 65, 205, 167, 65, 205, 166, 65, 205,
+ 164, 65, 205, 163, 65, 205, 162, 65, 205, 161, 65, 205, 160, 65, 205,
+ 159, 65, 205, 158, 65, 205, 157, 65, 205, 156, 65, 205, 155, 65, 205,
+ 153, 65, 205, 152, 65, 205, 151, 65, 205, 150, 65, 205, 149, 65, 205,
+ 148, 65, 205, 147, 65, 205, 146, 65, 205, 145, 65, 205, 144, 65, 205,
+ 142, 65, 205, 141, 65, 205, 140, 65, 205, 139, 65, 205, 138, 65, 205,
+ 137, 65, 205, 136, 65, 205, 135, 65, 205, 134, 65, 205, 133, 65, 205,
+ 131, 65, 205, 130, 65, 205, 129, 65, 205, 128, 65, 205, 127, 65, 205,
+ 126, 65, 205, 125, 65, 205, 124, 65, 205, 123, 65, 205, 122, 65, 205,
+ 120, 65, 205, 119, 65, 205, 118, 65, 205, 117, 65, 205, 116, 65, 205,
+ 115, 65, 205, 114, 65, 205, 113, 65, 205, 112, 65, 205, 111, 65, 205,
+ 109, 65, 205, 108, 65, 205, 107, 65, 205, 106, 65, 205, 105, 65, 205,
+ 104, 65, 205, 103, 65, 205, 102, 65, 205, 101, 65, 205, 100, 65, 205, 98,
+ 65, 205, 97, 65, 205, 96, 65, 205, 95, 65, 205, 94, 65, 205, 93, 65, 205,
+ 92, 65, 205, 91, 65, 205, 90, 65, 205, 89, 65, 205, 87, 65, 205, 86, 65,
+ 205, 85, 65, 205, 84, 65, 205, 83, 65, 205, 82, 65, 205, 81, 65, 205, 80,
+ 65, 205, 79, 65, 205, 78, 65, 205, 75, 65, 205, 74, 65, 205, 73, 65, 205,
+ 72, 65, 205, 71, 65, 205, 70, 65, 205, 69, 65, 205, 68, 65, 205, 67, 65,
+ 205, 66, 65, 205, 64, 65, 205, 63, 65, 205, 62, 65, 205, 61, 65, 205, 60,
+ 65, 205, 59, 65, 205, 58, 65, 205, 57, 65, 205, 56, 65, 205, 55, 65, 205,
+ 53, 65, 205, 52, 65, 205, 51, 65, 205, 50, 65, 205, 49, 65, 205, 48, 65,
+ 205, 47, 65, 205, 46, 65, 205, 45, 65, 205, 44, 65, 205, 42, 65, 205, 41,
+ 65, 205, 40, 65, 205, 39, 65, 205, 38, 65, 205, 37, 65, 205, 36, 65, 205,
+ 35, 65, 205, 34, 65, 205, 33, 65, 205, 31, 65, 205, 30, 65, 205, 29, 65,
+ 205, 28, 65, 205, 27, 65, 205, 26, 65, 205, 25, 65, 205, 24, 65, 205, 23,
+ 65, 205, 22, 65, 205, 20, 65, 205, 19, 65, 205, 18, 65, 205, 17, 65, 205,
+ 16, 65, 205, 15, 65, 205, 14, 212, 238, 212, 240, 202, 15, 80, 229, 242,
+ 202, 193, 202, 15, 80, 199, 244, 201, 186, 234, 80, 80, 199, 244, 233,
+ 232, 234, 80, 80, 198, 208, 234, 42, 234, 66, 234, 67, 251, 134, 251,
+ 135, 251, 23, 248, 89, 248, 246, 247, 130, 246, 100, 200, 161, 229, 5,
+ 200, 161, 228, 186, 200, 166, 219, 176, 233, 38, 214, 177, 219, 175, 234,
+ 80, 80, 219, 175, 219, 224, 213, 204, 234, 45, 219, 176, 200, 161, 84,
+ 200, 161, 194, 225, 232, 136, 233, 38, 233, 15, 246, 203, 207, 172, 238,
+ 202, 203, 232, 211, 125, 219, 97, 101, 202, 212, 203, 232, 223, 190, 219,
+ 97, 192, 76, 203, 125, 237, 180, 219, 166, 234, 1, 236, 157, 237, 47,
+ 238, 243, 101, 237, 169, 237, 47, 238, 243, 104, 237, 168, 237, 47, 238,
+ 243, 133, 237, 167, 237, 47, 238, 243, 134, 237, 166, 214, 199, 251, 134,
+ 215, 67, 200, 254, 223, 253, 201, 2, 234, 80, 80, 198, 209, 247, 238,
+ 233, 239, 246, 241, 246, 243, 234, 80, 80, 217, 30, 234, 43, 201, 151,
+ 201, 169, 234, 1, 234, 2, 223, 165, 204, 166, 134, 232, 251, 204, 165,
+ 232, 81, 223, 165, 204, 166, 133, 230, 194, 204, 165, 230, 191, 223, 165,
+ 204, 166, 104, 207, 248, 204, 165, 206, 224, 223, 165, 204, 166, 101,
+ 197, 55, 204, 165, 197, 10, 202, 163, 237, 86, 237, 88, 211, 65, 246, 99,
+ 211, 67, 139, 212, 7, 209, 104, 229, 8, 247, 155, 210, 123, 229, 202,
+ 247, 169, 213, 143, 247, 155, 229, 202, 215, 28, 223, 176, 223, 178, 214,
+ 170, 219, 175, 214, 197, 202, 15, 80, 205, 191, 250, 106, 202, 92, 234,
+ 80, 80, 205, 191, 250, 106, 234, 4, 246, 100, 200, 162, 204, 151, 229, 5,
+ 200, 162, 204, 151, 228, 183, 246, 100, 200, 162, 4, 222, 196, 229, 5,
+ 200, 162, 4, 222, 196, 228, 184, 219, 176, 200, 162, 204, 151, 84, 200,
+ 162, 204, 151, 194, 224, 210, 222, 219, 176, 232, 123, 210, 222, 219,
+ 176, 235, 96, 209, 219, 210, 222, 219, 176, 248, 245, 210, 222, 219, 176,
+ 197, 41, 209, 213, 207, 169, 219, 176, 233, 38, 207, 169, 223, 176, 207,
+ 151, 203, 74, 203, 232, 104, 203, 71, 202, 94, 203, 74, 203, 232, 133,
+ 203, 70, 202, 93, 237, 47, 238, 243, 201, 210, 237, 164, 209, 89, 197, 9,
+ 101, 209, 89, 197, 7, 209, 50, 209, 89, 197, 9, 104, 209, 89, 197, 6,
+ 209, 49, 204, 152, 198, 207, 202, 12, 201, 193, 246, 242, 246, 99, 246,
+ 177, 216, 244, 194, 155, 215, 169, 202, 15, 80, 230, 179, 250, 106, 202,
+ 15, 80, 209, 68, 250, 106, 202, 162, 234, 80, 80, 230, 179, 250, 106,
+ 234, 80, 80, 209, 68, 250, 106, 234, 40, 202, 15, 80, 201, 210, 202, 178,
+ 203, 74, 230, 216, 246, 100, 223, 124, 204, 69, 203, 74, 246, 100, 223,
+ 124, 205, 239, 238, 243, 204, 162, 223, 124, 238, 163, 201, 211, 200, 15,
+ 202, 35, 211, 175, 200, 243, 242, 37, 211, 142, 209, 90, 216, 243, 209,
+ 201, 250, 143, 209, 83, 242, 37, 250, 160, 215, 16, 203, 134, 8, 6, 1,
+ 231, 84, 8, 2, 1, 231, 84, 246, 120, 251, 2, 200, 248, 201, 157, 242, 48,
+ 203, 16, 220, 28, 222, 115, 1, 219, 126, 220, 77, 1, 232, 165, 232, 156,
+ 220, 77, 1, 232, 165, 233, 50, 220, 77, 1, 207, 55, 220, 77, 1, 219, 107,
+ 86, 122, 247, 250, 203, 205, 231, 47, 216, 193, 207, 159, 30, 123, 193,
+ 43, 30, 123, 193, 39, 30, 123, 202, 70, 30, 123, 193, 44, 232, 58, 232,
+ 57, 232, 56, 215, 171, 191, 233, 191, 234, 191, 236, 219, 40, 207, 63,
+ 219, 42, 207, 65, 210, 184, 219, 39, 207, 62, 213, 174, 216, 95, 194, 38,
+ 219, 41, 207, 64, 232, 80, 210, 183, 194, 97, 234, 104, 232, 68, 216,
+ 167, 211, 212, 197, 11, 109, 216, 167, 237, 186, 109, 114, 198, 184, 61,
+ 4, 55, 84, 111, 94, 198, 184, 61, 4, 55, 84, 111, 11, 5, 223, 80, 77,
+ 195, 225, 195, 114, 195, 46, 195, 35, 195, 24, 195, 13, 195, 2, 194, 247,
+ 194, 236, 195, 224, 195, 213, 195, 202, 195, 191, 195, 180, 195, 169,
+ 195, 158, 209, 105, 232, 136, 39, 84, 51, 62, 219, 247, 186, 247, 57,
+ 211, 159, 77, 247, 209, 191, 235, 10, 3, 212, 248, 200, 19, 10, 3, 212,
+ 248, 136, 212, 248, 247, 90, 136, 247, 89, 217, 36, 6, 1, 230, 124, 217,
+ 36, 6, 1, 214, 167, 217, 36, 2, 1, 230, 124, 217, 36, 2, 1, 214, 167, 59,
+ 1, 234, 252, 69, 35, 16, 232, 79, 203, 12, 242, 172, 196, 133, 195, 147,
+ 195, 136, 195, 125, 195, 113, 195, 102, 195, 91, 195, 80, 195, 69, 195,
+ 58, 195, 50, 195, 49, 195, 48, 195, 47, 195, 45, 195, 44, 195, 43, 195,
+ 42, 195, 41, 195, 40, 195, 39, 195, 38, 195, 37, 195, 36, 195, 34, 195,
+ 33, 195, 32, 195, 31, 195, 30, 195, 29, 195, 28, 195, 27, 195, 26, 195,
+ 25, 195, 23, 195, 22, 195, 21, 195, 20, 195, 19, 195, 18, 195, 17, 195,
+ 16, 195, 15, 195, 14, 195, 12, 195, 11, 195, 10, 195, 9, 195, 8, 195, 7,
+ 195, 6, 195, 5, 195, 4, 195, 3, 195, 1, 195, 0, 194, 255, 194, 254, 194,
+ 253, 194, 252, 194, 251, 194, 250, 194, 249, 194, 248, 194, 246, 194,
+ 245, 194, 244, 194, 243, 194, 242, 194, 241, 194, 240, 194, 239, 194,
+ 238, 194, 237, 194, 235, 194, 234, 194, 233, 194, 232, 194, 231, 194,
+ 230, 194, 229, 194, 228, 194, 227, 194, 226, 195, 223, 195, 222, 195,
+ 221, 195, 220, 195, 219, 195, 218, 195, 217, 195, 216, 195, 215, 195,
+ 214, 195, 212, 195, 211, 195, 210, 195, 209, 195, 208, 195, 207, 195,
+ 206, 195, 205, 195, 204, 195, 203, 195, 201, 195, 200, 195, 199, 195,
+ 198, 195, 197, 195, 196, 195, 195, 195, 194, 195, 193, 195, 192, 195,
+ 190, 195, 189, 195, 188, 195, 187, 195, 186, 195, 185, 195, 184, 195,
+ 183, 195, 182, 195, 181, 195, 179, 195, 178, 195, 177, 195, 176, 195,
+ 175, 195, 174, 195, 173, 195, 172, 195, 171, 195, 170, 195, 168, 195,
+ 167, 195, 166, 195, 165, 195, 164, 195, 163, 195, 162, 195, 161, 195,
+ 160, 195, 159, 195, 157, 195, 156, 195, 155, 195, 154, 195, 153, 195,
+ 152, 195, 151, 195, 150, 195, 149, 195, 148, 195, 146, 195, 145, 195,
+ 144, 195, 143, 195, 142, 195, 141, 195, 140, 195, 139, 195, 138, 195,
+ 137, 195, 135, 195, 134, 195, 133, 195, 132, 195, 131, 195, 130, 195,
+ 129, 195, 128, 195, 127, 195, 126, 195, 124, 195, 123, 195, 122, 195,
+ 121, 195, 120, 195, 119, 195, 118, 195, 117, 195, 116, 195, 115, 195,
+ 112, 195, 111, 195, 110, 195, 109, 195, 108, 195, 107, 195, 106, 195,
+ 105, 195, 104, 195, 103, 195, 101, 195, 100, 195, 99, 195, 98, 195, 97,
+ 195, 96, 195, 95, 195, 94, 195, 93, 195, 92, 195, 90, 195, 89, 195, 88,
+ 195, 87, 195, 86, 195, 85, 195, 84, 195, 83, 195, 82, 195, 81, 195, 79,
+ 195, 78, 195, 77, 195, 76, 195, 75, 195, 74, 195, 73, 195, 72, 195, 71,
+ 195, 70, 195, 68, 195, 67, 195, 66, 195, 65, 195, 64, 195, 63, 195, 62,
+ 195, 61, 195, 60, 195, 59, 195, 57, 195, 56, 195, 55, 195, 54, 195, 53,
+ 195, 52, 195, 51, 221, 254, 31, 57, 221, 254, 250, 37, 221, 254, 17, 192,
+ 76, 221, 254, 17, 101, 221, 254, 17, 104, 221, 254, 17, 133, 221, 254,
+ 17, 134, 221, 254, 17, 151, 221, 254, 17, 170, 221, 254, 17, 179, 221,
+ 254, 17, 174, 221, 254, 17, 182, 8, 6, 1, 41, 4, 217, 215, 26, 230, 210,
+ 8, 2, 1, 41, 4, 217, 215, 26, 230, 210, 8, 6, 1, 228, 97, 4, 217, 215,
+ 26, 230, 210, 8, 2, 1, 228, 97, 4, 217, 215, 26, 230, 210, 8, 6, 1, 124,
+ 4, 217, 215, 26, 230, 210, 8, 2, 1, 124, 4, 217, 215, 26, 230, 210, 8, 6,
+ 1, 234, 253, 4, 84, 219, 176, 63, 8, 2, 1, 234, 253, 4, 84, 219, 176, 63,
+ 8, 6, 1, 234, 253, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 2, 1, 234,
+ 253, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 6, 1, 234, 253, 4, 84,
+ 219, 176, 248, 84, 26, 251, 129, 8, 2, 1, 234, 253, 4, 84, 219, 176, 248,
+ 84, 26, 251, 129, 8, 6, 1, 185, 4, 84, 219, 176, 63, 8, 2, 1, 185, 4, 84,
+ 219, 176, 63, 8, 6, 1, 185, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 2,
+ 1, 185, 4, 84, 219, 176, 248, 84, 26, 230, 210, 8, 6, 1, 185, 4, 84, 219,
+ 176, 248, 84, 26, 251, 129, 8, 2, 1, 185, 4, 84, 219, 176, 248, 84, 26,
+ 251, 129, 8, 6, 1, 206, 159, 4, 84, 219, 176, 63, 8, 2, 1, 206, 159, 4,
+ 84, 219, 176, 63, 8, 6, 1, 234, 253, 4, 242, 122, 26, 217, 214, 8, 2, 1,
+ 234, 253, 4, 242, 122, 26, 217, 214, 8, 6, 1, 234, 253, 4, 242, 122, 26,
+ 246, 207, 8, 2, 1, 234, 253, 4, 242, 122, 26, 246, 207, 8, 2, 1, 228, 97,
+ 4, 78, 95, 26, 251, 129, 8, 2, 1, 214, 168, 4, 199, 91, 58, 8, 6, 1, 41,
+ 4, 211, 244, 26, 251, 129, 8, 2, 1, 41, 4, 211, 244, 26, 251, 129, 8, 6,
+ 1, 41, 4, 211, 244, 26, 199, 90, 8, 2, 1, 41, 4, 211, 244, 26, 199, 90,
+ 8, 6, 1, 234, 253, 4, 211, 244, 26, 251, 129, 8, 2, 1, 234, 253, 4, 211,
+ 244, 26, 251, 129, 8, 6, 1, 234, 253, 4, 211, 244, 26, 199, 90, 8, 2, 1,
+ 234, 253, 4, 211, 244, 26, 199, 90, 8, 6, 1, 234, 253, 4, 78, 95, 26,
+ 251, 129, 8, 2, 1, 234, 253, 4, 78, 95, 26, 251, 129, 8, 6, 1, 234, 253,
+ 4, 78, 95, 26, 199, 90, 8, 2, 1, 234, 253, 4, 78, 95, 26, 199, 90, 8, 2,
+ 1, 228, 97, 4, 78, 95, 26, 230, 210, 8, 2, 1, 228, 97, 4, 78, 95, 26,
+ 199, 90, 8, 6, 1, 228, 97, 4, 211, 244, 26, 251, 129, 8, 2, 1, 228, 97,
+ 4, 211, 244, 26, 78, 95, 26, 251, 129, 8, 6, 1, 228, 97, 4, 211, 244, 26,
+ 199, 90, 8, 2, 1, 228, 97, 4, 211, 244, 26, 78, 95, 26, 199, 90, 8, 6, 1,
+ 223, 66, 4, 199, 90, 8, 2, 1, 223, 66, 4, 78, 95, 26, 199, 90, 8, 6, 1,
+ 220, 202, 4, 199, 90, 8, 2, 1, 220, 202, 4, 199, 90, 8, 6, 1, 218, 237,
+ 4, 199, 90, 8, 2, 1, 218, 237, 4, 199, 90, 8, 6, 1, 208, 112, 4, 199, 90,
+ 8, 2, 1, 208, 112, 4, 199, 90, 8, 6, 1, 124, 4, 211, 244, 26, 251, 129,
+ 8, 2, 1, 124, 4, 211, 244, 26, 251, 129, 8, 6, 1, 124, 4, 211, 244, 26,
+ 199, 90, 8, 2, 1, 124, 4, 211, 244, 26, 199, 90, 8, 6, 1, 124, 4, 217,
+ 215, 26, 251, 129, 8, 2, 1, 124, 4, 217, 215, 26, 251, 129, 8, 6, 1, 124,
+ 4, 217, 215, 26, 199, 90, 8, 2, 1, 124, 4, 217, 215, 26, 199, 90, 8, 2,
+ 1, 251, 109, 4, 230, 210, 8, 2, 1, 211, 184, 185, 4, 230, 210, 8, 2, 1,
+ 211, 184, 185, 4, 251, 129, 8, 2, 1, 163, 196, 237, 4, 230, 210, 8, 2, 1,
+ 163, 196, 237, 4, 251, 129, 8, 2, 1, 205, 241, 4, 230, 210, 8, 2, 1, 205,
+ 241, 4, 251, 129, 8, 2, 1, 229, 14, 205, 241, 4, 230, 210, 8, 2, 1, 229,
+ 14, 205, 241, 4, 251, 129, 9, 204, 162, 97, 4, 230, 67, 95, 4, 251, 26,
+ 9, 204, 162, 97, 4, 230, 67, 95, 4, 194, 119, 9, 204, 162, 97, 4, 230,
+ 67, 95, 4, 157, 217, 168, 9, 204, 162, 97, 4, 230, 67, 95, 4, 212, 0, 9,
+ 204, 162, 97, 4, 230, 67, 95, 4, 68, 9, 204, 162, 97, 4, 230, 67, 95, 4,
+ 192, 214, 9, 204, 162, 97, 4, 230, 67, 95, 4, 71, 9, 204, 162, 97, 4,
+ 230, 67, 95, 4, 251, 108, 9, 204, 162, 213, 124, 4, 222, 39, 248, 76, 1,
+ 221, 224, 44, 116, 222, 184, 44, 116, 214, 167, 44, 116, 247, 52, 44,
+ 116, 212, 203, 44, 116, 198, 86, 44, 116, 213, 179, 44, 116, 200, 228,
+ 44, 116, 215, 151, 44, 116, 211, 93, 44, 116, 218, 236, 44, 116, 193,
+ 148, 44, 116, 150, 44, 116, 165, 44, 116, 196, 236, 44, 116, 219, 127,
+ 44, 116, 219, 138, 44, 116, 207, 4, 44, 116, 213, 161, 44, 116, 223, 65,
+ 44, 116, 204, 66, 44, 116, 202, 95, 44, 116, 206, 158, 44, 116, 230, 124,
+ 44, 116, 221, 48, 44, 5, 222, 159, 44, 5, 221, 204, 44, 5, 221, 183, 44,
+ 5, 221, 33, 44, 5, 220, 246, 44, 5, 222, 57, 44, 5, 222, 48, 44, 5, 222,
+ 135, 44, 5, 221, 113, 44, 5, 221, 88, 44, 5, 222, 76, 44, 5, 214, 164,
+ 44, 5, 214, 113, 44, 5, 214, 109, 44, 5, 214, 78, 44, 5, 214, 69, 44, 5,
+ 214, 152, 44, 5, 214, 150, 44, 5, 214, 161, 44, 5, 214, 90, 44, 5, 214,
+ 85, 44, 5, 214, 154, 44, 5, 247, 18, 44, 5, 242, 149, 44, 5, 242, 139,
+ 44, 5, 238, 162, 44, 5, 238, 120, 44, 5, 246, 158, 44, 5, 246, 150, 44,
+ 5, 247, 7, 44, 5, 242, 63, 44, 5, 238, 239, 44, 5, 246, 191, 44, 5, 212,
+ 200, 44, 5, 212, 181, 44, 5, 212, 175, 44, 5, 212, 158, 44, 5, 212, 150,
+ 44, 5, 212, 190, 44, 5, 212, 189, 44, 5, 212, 197, 44, 5, 212, 165, 44,
+ 5, 212, 162, 44, 5, 212, 193, 44, 5, 198, 82, 44, 5, 198, 62, 44, 5, 198,
+ 61, 44, 5, 198, 50, 44, 5, 198, 47, 44, 5, 198, 78, 44, 5, 198, 77, 44,
+ 5, 198, 81, 44, 5, 198, 60, 44, 5, 198, 59, 44, 5, 198, 80, 44, 5, 213,
+ 177, 44, 5, 213, 163, 44, 5, 213, 162, 44, 5, 213, 146, 44, 5, 213, 145,
+ 44, 5, 213, 173, 44, 5, 213, 172, 44, 5, 213, 176, 44, 5, 213, 148, 44,
+ 5, 213, 147, 44, 5, 213, 175, 44, 5, 200, 174, 44, 5, 199, 128, 44, 5,
+ 199, 105, 44, 5, 198, 45, 44, 5, 198, 0, 44, 5, 200, 79, 44, 5, 200, 56,
+ 44, 5, 200, 149, 44, 5, 155, 44, 5, 198, 254, 44, 5, 200, 100, 44, 5,
+ 215, 84, 44, 5, 214, 60, 44, 5, 214, 27, 44, 5, 213, 22, 44, 5, 212, 215,
+ 44, 5, 214, 214, 44, 5, 214, 203, 44, 5, 215, 70, 44, 5, 213, 142, 44, 5,
+ 213, 125, 44, 5, 215, 42, 44, 5, 211, 77, 44, 5, 210, 51, 44, 5, 210, 12,
+ 44, 5, 209, 51, 44, 5, 209, 15, 44, 5, 210, 181, 44, 5, 210, 168, 44, 5,
+ 211, 55, 44, 5, 209, 198, 44, 5, 209, 172, 44, 5, 210, 197, 44, 5, 217,
+ 219, 44, 5, 216, 175, 44, 5, 216, 137, 44, 5, 215, 241, 44, 5, 215, 181,
+ 44, 5, 217, 48, 44, 5, 217, 29, 44, 5, 217, 180, 44, 5, 216, 91, 44, 5,
+ 216, 35, 44, 5, 217, 96, 44, 5, 193, 129, 44, 5, 193, 22, 44, 5, 193, 12,
+ 44, 5, 192, 214, 44, 5, 192, 177, 44, 5, 193, 69, 44, 5, 193, 66, 44, 5,
+ 193, 108, 44, 5, 193, 1, 44, 5, 192, 235, 44, 5, 193, 80, 44, 5, 208, 68,
+ 44, 5, 207, 151, 44, 5, 207, 88, 44, 5, 206, 218, 44, 5, 206, 179, 44, 5,
+ 208, 7, 44, 5, 207, 234, 44, 5, 208, 48, 44, 5, 207, 55, 44, 5, 207, 28,
+ 44, 5, 208, 17, 44, 5, 220, 184, 44, 5, 219, 209, 44, 5, 219, 191, 44, 5,
+ 219, 36, 44, 5, 219, 6, 44, 5, 220, 42, 44, 5, 220, 32, 44, 5, 220, 155,
+ 44, 5, 219, 107, 44, 5, 219, 73, 44, 5, 220, 60, 44, 5, 196, 156, 44, 5,
+ 196, 39, 44, 5, 196, 22, 44, 5, 194, 223, 44, 5, 194, 215, 44, 5, 196,
+ 123, 44, 5, 196, 118, 44, 5, 196, 152, 44, 5, 195, 252, 44, 5, 195, 236,
+ 44, 5, 196, 129, 44, 5, 219, 125, 44, 5, 219, 120, 44, 5, 219, 119, 44,
+ 5, 219, 116, 44, 5, 219, 115, 44, 5, 219, 122, 44, 5, 219, 121, 44, 5,
+ 219, 124, 44, 5, 219, 118, 44, 5, 219, 117, 44, 5, 219, 123, 44, 5, 219,
+ 136, 44, 5, 219, 129, 44, 5, 219, 128, 44, 5, 219, 112, 44, 5, 219, 111,
+ 44, 5, 219, 132, 44, 5, 219, 131, 44, 5, 219, 135, 44, 5, 219, 114, 44,
+ 5, 219, 113, 44, 5, 219, 133, 44, 5, 207, 2, 44, 5, 206, 247, 44, 5, 206,
+ 246, 44, 5, 206, 239, 44, 5, 206, 232, 44, 5, 206, 254, 44, 5, 206, 253,
+ 44, 5, 207, 1, 44, 5, 206, 245, 44, 5, 206, 244, 44, 5, 207, 0, 44, 5,
+ 213, 159, 44, 5, 213, 154, 44, 5, 213, 153, 44, 5, 213, 150, 44, 5, 213,
+ 149, 44, 5, 213, 156, 44, 5, 213, 155, 44, 5, 213, 158, 44, 5, 213, 152,
+ 44, 5, 213, 151, 44, 5, 213, 157, 44, 5, 223, 61, 44, 5, 223, 20, 44, 5,
+ 223, 12, 44, 5, 222, 214, 44, 5, 222, 194, 44, 5, 223, 41, 44, 5, 223,
+ 39, 44, 5, 223, 55, 44, 5, 222, 233, 44, 5, 222, 223, 44, 5, 223, 48, 44,
+ 5, 204, 59, 44, 5, 203, 236, 44, 5, 203, 231, 44, 5, 203, 164, 44, 5,
+ 203, 146, 44, 5, 204, 12, 44, 5, 204, 10, 44, 5, 204, 47, 44, 5, 203,
+ 211, 44, 5, 203, 203, 44, 5, 204, 21, 44, 5, 202, 91, 44, 5, 202, 59, 44,
+ 5, 202, 55, 44, 5, 202, 46, 44, 5, 202, 43, 44, 5, 202, 65, 44, 5, 202,
+ 64, 44, 5, 202, 90, 44, 5, 202, 51, 44, 5, 202, 50, 44, 5, 202, 67, 44,
+ 5, 206, 91, 44, 5, 203, 125, 44, 5, 203, 97, 44, 5, 201, 184, 44, 5, 201,
+ 86, 44, 5, 205, 223, 44, 5, 205, 205, 44, 5, 206, 75, 44, 5, 202, 212,
+ 44, 5, 202, 183, 44, 5, 206, 12, 44, 5, 230, 99, 44, 5, 229, 178, 44, 5,
+ 229, 150, 44, 5, 228, 181, 44, 5, 228, 150, 44, 5, 229, 255, 44, 5, 229,
+ 225, 44, 5, 230, 88, 44, 5, 229, 43, 44, 5, 229, 16, 44, 5, 230, 11, 44,
+ 5, 221, 47, 44, 5, 221, 46, 44, 5, 221, 41, 44, 5, 221, 40, 44, 5, 221,
+ 37, 44, 5, 221, 36, 44, 5, 221, 43, 44, 5, 221, 42, 44, 5, 221, 45, 44,
+ 5, 221, 39, 44, 5, 221, 38, 44, 5, 221, 44, 44, 5, 203, 171, 159, 116, 3,
+ 193, 94, 159, 116, 3, 208, 36, 159, 116, 3, 207, 200, 98, 1, 197, 175,
+ 93, 116, 3, 242, 55, 160, 93, 116, 3, 242, 55, 221, 250, 93, 116, 3, 242,
+ 55, 221, 113, 93, 116, 3, 242, 55, 221, 220, 93, 116, 3, 242, 55, 214,
+ 90, 93, 116, 3, 242, 55, 247, 19, 93, 116, 3, 242, 55, 246, 117, 93, 116,
+ 3, 242, 55, 242, 63, 93, 116, 3, 242, 55, 242, 188, 93, 116, 3, 242, 55,
+ 212, 165, 93, 116, 3, 242, 55, 238, 0, 93, 116, 3, 242, 55, 198, 71, 93,
+ 116, 3, 242, 55, 236, 146, 93, 116, 3, 242, 55, 198, 66, 93, 116, 3, 242,
+ 55, 181, 93, 116, 3, 242, 55, 189, 93, 116, 3, 242, 55, 199, 240, 93,
+ 116, 3, 242, 55, 155, 93, 116, 3, 242, 55, 199, 176, 93, 116, 3, 242, 55,
+ 213, 142, 93, 116, 3, 242, 55, 249, 3, 93, 116, 3, 242, 55, 210, 94, 93,
+ 116, 3, 242, 55, 209, 198, 93, 116, 3, 242, 55, 210, 65, 93, 116, 3, 242,
+ 55, 216, 91, 93, 116, 3, 242, 55, 193, 1, 93, 116, 3, 242, 55, 207, 55,
+ 93, 116, 3, 242, 55, 219, 107, 93, 116, 3, 242, 55, 195, 252, 93, 116, 3,
+ 242, 55, 204, 64, 93, 116, 3, 242, 55, 202, 92, 93, 116, 3, 242, 55, 188,
+ 93, 116, 3, 242, 55, 144, 93, 116, 3, 242, 55, 177, 93, 18, 3, 242, 55,
+ 208, 239, 93, 223, 177, 18, 3, 242, 55, 208, 177, 93, 223, 177, 18, 3,
+ 242, 55, 206, 167, 93, 223, 177, 18, 3, 242, 55, 206, 160, 93, 223, 177,
+ 18, 3, 242, 55, 208, 219, 93, 18, 3, 211, 219, 93, 18, 3, 251, 250, 229,
+ 140, 1, 248, 34, 214, 165, 229, 140, 1, 248, 34, 214, 113, 229, 140, 1,
+ 248, 34, 214, 78, 229, 140, 1, 248, 34, 214, 152, 229, 140, 1, 248, 34,
+ 214, 90, 75, 1, 248, 34, 214, 165, 75, 1, 248, 34, 214, 113, 75, 1, 248,
+ 34, 214, 78, 75, 1, 248, 34, 214, 152, 75, 1, 248, 34, 214, 90, 75, 1,
+ 251, 55, 246, 158, 75, 1, 251, 55, 198, 45, 75, 1, 251, 55, 155, 75, 1,
+ 251, 55, 211, 93, 73, 1, 233, 188, 233, 187, 238, 247, 158, 161, 73, 1,
+ 233, 187, 233, 188, 238, 247, 158, 161,
};
-static const unsigned char phrasebook_offset1[] = {
+static const unsigned char phrasebook_offset1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 53, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 66, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 52, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 111,
- 112, 113, 114, 115, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 116, 117, 118, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 119, 120, 121, 122, 52, 52, 123, 124, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 125, 126, 127, 128, 129, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 130, 131, 132, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 133, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 52, 52,
- 52, 52, 52, 145, 146, 147, 52, 52, 52, 52, 52, 148, 149, 52, 52, 150,
- 151, 152, 52, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 165, 166, 167, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 168,
- 169, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 170, 171, 172, 173, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 53, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 66, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
+ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 52, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 111,
+ 112, 113, 114, 115, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 116, 117, 118, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 119, 120, 121, 122, 52, 52, 123, 124, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 125, 126, 127, 128, 129, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 130, 131, 132, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 133, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 52, 52,
+ 52, 52, 52, 145, 146, 147, 52, 52, 52, 52, 52, 148, 149, 52, 52, 150,
+ 151, 152, 52, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 165, 166, 167, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 168,
+ 169, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 170, 171, 172, 173, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
};
-static const unsigned int phrasebook_offset2[] = {
+static const unsigned int phrasebook_offset2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 6, 9, 11, 14, 17, 19, 21, 24, 27, 29, 31,
33, 35, 39, 41, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 69, 72,
@@ -20273,1222 +20273,1222 @@ static const unsigned int phrasebook_offset2[] = {
339, 344, 349, 353, 356, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 366, 371,
374, 377, 380, 383, 386, 389, 391, 394, 400, 408, 411, 415, 418, 420,
- 423, 426, 429, 432, 436, 439, 442, 445, 447, 450, 456, 464, 471, 478,
- 485, 490, 497, 504, 511, 518, 525, 533, 538, 546, 554, 562, 570, 578,
- 586, 594, 602, 610, 615, 623, 630, 637, 644, 651, 658, 661, 667, 674,
- 681, 688, 695, 703, 708, 715, 722, 729, 736, 743, 750, 758, 763, 771,
- 779, 787, 795, 803, 811, 819, 827, 835, 840, 848, 855, 862, 869, 876,
- 883, 886, 892, 899, 906, 913, 920, 928, 933, 941, 948, 955, 962, 969,
- 976, 983, 991, 999, 1007, 1015, 1023, 1031, 1039, 1047, 1055, 1063, 1070,
- 1077, 1085, 1093, 1101, 1109, 1117, 1125, 1133, 1141, 1149, 1157, 1165,
- 1173, 1181, 1189, 1197, 1205, 1213, 1221, 1229, 1237, 1244, 1251, 1259,
- 1267, 1275, 1283, 1291, 1299, 1307, 1315, 1323, 1329, 1334, 1339, 1347,
- 1355, 1363, 1371, 1376, 1384, 1392, 1400, 1408, 1416, 1424, 1433, 1442,
- 1449, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1515, 1520, 1525, 1532,
- 1539, 1546, 1553, 1561, 1569, 1574, 1579, 1587, 1595, 1603, 1611, 1619,
- 1627, 1635, 1643, 1651, 1659, 1667, 1675, 1683, 1691, 1699, 1707, 1715,
- 1723, 1730, 1737, 1744, 1751, 1758, 1765, 1772, 1779, 1787, 1795, 1803,
- 1811, 1818, 1825, 1833, 1841, 1849, 1857, 1865, 1873, 1881, 1889, 1897,
- 1905, 1913, 1919, 1925, 1931, 1938, 1945, 1950, 1955, 1961, 1968, 1975,
- 1982, 1989, 1997, 2005, 2011, 2017, 2022, 2028, 2035, 2042, 2049, 2054,
- 2059, 2064, 2071, 2078, 2085, 2092, 2099, 2105, 2113, 2123, 2131, 2138,
- 2145, 2150, 2155, 2162, 2169, 2173, 2178, 2183, 2188, 2196, 2205, 2212,
- 2219, 2228, 2235, 2242, 2247, 2254, 2261, 2268, 2275, 2282, 2287, 2294,
- 2301, 2309, 2314, 2319, 2324, 2334, 2338, 2344, 2350, 2356, 2362, 2370,
- 2383, 2391, 2396, 2406, 2411, 2416, 2426, 2431, 2438, 2445, 2453, 2461,
- 2468, 2475, 2482, 2489, 2499, 2509, 2519, 2529, 2539, 2549, 2559, 2569,
- 2574, 2584, 2594, 2604, 2614, 2622, 2630, 2637, 2644, 2652, 2660, 2668,
- 2676, 2683, 2690, 2700, 2710, 2718, 2726, 2734, 2739, 2749, 2754, 2762,
- 2770, 2775, 2780, 2788, 2796, 2807, 2818, 2826, 2834, 2844, 2854, 2862,
- 2870, 2879, 2888, 2897, 2906, 2916, 2926, 2935, 2944, 2954, 2964, 2972,
- 2980, 2989, 2998, 3007, 3016, 3026, 3036, 3044, 3052, 3061, 3070, 3079,
- 3088, 3097, 3106, 3111, 3116, 3124, 3132, 3142, 3150, 3155, 3160, 3167,
- 3174, 3181, 3188, 3196, 3204, 3214, 3224, 3234, 3244, 3251, 3258, 3268,
- 3278, 3286, 3294, 3302, 3310, 3318, 3325, 3332, 3339, 3345, 3352, 3359,
- 3366, 3375, 3385, 3395, 3402, 3409, 3415, 3420, 3426, 3433, 3440, 3447,
- 3454, 3465, 3475, 3482, 3489, 3496, 3503, 3508, 3513, 3519, 3525, 3531,
- 3539, 3547, 3554, 3560, 3565, 3572, 3578, 3586, 3597, 3607, 3616, 3623,
- 3629, 3635, 3640, 3647, 3653, 3660, 3667, 3674, 3679, 3684, 3693, 3701,
- 3710, 3715, 3721, 3731, 3738, 3746, 3755, 3761, 3767, 3773, 3780, 3785,
- 3790, 3800, 3808, 3817, 3825, 3833, 3843, 3848, 3855, 3862, 3867, 3879,
- 3888, 3896, 3902, 3911, 3916, 3921, 3928, 3934, 3940, 3946, 3952, 3961,
- 3969, 3974, 3982, 3988, 3996, 4004, 4010, 4016, 4022, 4030, 4038, 4044,
- 4052, 4058, 4063, 4070, 4078, 4088, 4095, 4102, 4112, 4119, 4126, 4136,
- 4143, 4150, 4157, 4163, 4169, 4178, 4190, 4195, 4202, 4207, 4211, 4216,
- 4224, 4231, 4236, 4241, 4245, 4250, 4255, 4259, 4265, 4271, 4277, 4283,
- 4291, 4296, 4301, 4306, 4311, 4317, 4319, 4324, 4328, 4334, 4340, 4346,
- 4351, 4358, 4365, 4371, 4378, 4386, 4394, 4399, 4404, 4408, 4413, 4415,
- 4417, 4420, 4422, 4425, 4430, 4435, 4441, 4446, 4450, 4455, 4460, 4469,
- 4475, 4480, 4486, 4491, 4497, 4505, 4513, 4517, 4521, 4526, 4532, 4538,
- 4544, 4550, 4555, 4562, 4570, 4578, 4583, 4589, 4596, 4603, 4610, 4617,
- 4621, 4627, 4632, 4637, 4642, 4647, 4650, 4653, 4656, 4659, 4662, 4665,
- 4669, 4673, 4679, 4682, 4687, 4693, 4699, 4702, 4707, 4712, 4716, 4722,
- 4728, 4734, 4740, 4745, 4750, 4755, 4758, 4764, 4769, 4774, 4778, 4783,
- 4789, 4795, 4798, 4802, 4806, 4810, 4813, 4816, 4821, 4825, 4832, 4836,
- 4842, 4846, 4852, 4856, 4860, 4864, 4869, 4874, 4881, 4887, 4894, 4900,
- 4906, 4912, 4915, 4919, 4923, 4927, 4931, 4936, 4941, 4945, 4949, 4955,
- 4959, 4963, 4968, 4974, 4979, 4985, 4989, 4995, 5000, 5005, 5010, 5015,
- 5021, 5024, 5028, 5033, 5038, 5047, 5053, 5058, 5062, 5067, 5071, 5076,
- 5080, 5084, 5089, 5093, 5099, 5104, 5109, 5114, 5119, 5124, 5129, 5135,
- 5141, 5147, 5153, 5158, 5164, 5170, 5176, 5181, 5186, 5193, 5200, 5204,
- 5209, 5216, 0, 0, 5223, 5226, 5235, 5244, 5255, 5259, 0, 0, 0, 0, 5264,
- 5267, 5272, 5280, 5285, 5293, 5301, 0, 5309, 0, 5317, 5325, 5333, 5344,
- 5349, 5354, 5359, 5364, 5369, 5374, 5379, 5384, 5389, 5394, 5399, 5404,
- 5409, 5414, 5419, 5424, 0, 5429, 5434, 5439, 5444, 5449, 5454, 5459,
- 5464, 5472, 5480, 5488, 5496, 5504, 5512, 5523, 5528, 5533, 5538, 5543,
- 5548, 5553, 5558, 5563, 5568, 5573, 5578, 5583, 5588, 5593, 5598, 5603,
- 5608, 5614, 5619, 5624, 5629, 5634, 5639, 5644, 5649, 5657, 5665, 5673,
- 5681, 5689, 5694, 5698, 5702, 5709, 5719, 5729, 5733, 5737, 5741, 5747,
- 5754, 5758, 5763, 5767, 5772, 5776, 5781, 5785, 5790, 5795, 5800, 5805,
- 5810, 5815, 5820, 5825, 5830, 5835, 5840, 5845, 5850, 5855, 5860, 5864,
- 5868, 5874, 5878, 5883, 5889, 5897, 5902, 5907, 5914, 5919, 5924, 5931,
- 5940, 5949, 5960, 5968, 5973, 5978, 5983, 5990, 5995, 6001, 6006, 6011,
- 6016, 6021, 6026, 6031, 6039, 6045, 6050, 6054, 6059, 6064, 6069, 6074,
- 6079, 6084, 6089, 6093, 6099, 6103, 6108, 6113, 6118, 6122, 6127, 6132,
- 6137, 6142, 6146, 6151, 6155, 6160, 6165, 6170, 6175, 6181, 6186, 6192,
- 6196, 6201, 6205, 6209, 6214, 6219, 6224, 6229, 6234, 6239, 6244, 6248,
- 6254, 6258, 6263, 6268, 6273, 6277, 6282, 6287, 6292, 6297, 6301, 6306,
- 6310, 6315, 6320, 6325, 6330, 6336, 6341, 6347, 6351, 6356, 6360, 6368,
- 6373, 6378, 6383, 6390, 6395, 6401, 6406, 6411, 6416, 6421, 6426, 6431,
- 6439, 6445, 6450, 6455, 6460, 6465, 6470, 6476, 6482, 6489, 6496, 6505,
- 6514, 6521, 6528, 6537, 6546, 6551, 6556, 6561, 6566, 6571, 6576, 6581,
- 6586, 6597, 6608, 6613, 6618, 6625, 6632, 6640, 6648, 6653, 6658, 6663,
- 6668, 6672, 6676, 6680, 6686, 6692, 6696, 6703, 6708, 6718, 6728, 6734,
- 6740, 6748, 6756, 6764, 6772, 6779, 6786, 6794, 6802, 6810, 6818, 6826,
- 6834, 6842, 6850, 6858, 6866, 6873, 6880, 6886, 6892, 6900, 6908, 6915,
- 6922, 6930, 6938, 6944, 6950, 6958, 6966, 6974, 6982, 6988, 6994, 7002,
- 7010, 7018, 7026, 7033, 7040, 7048, 7056, 7064, 7072, 7077, 7082, 7089,
- 7096, 7106, 7116, 7120, 7128, 7136, 7143, 7150, 7158, 7166, 7173, 7180,
- 7188, 7196, 7203, 7210, 7218, 7226, 7231, 7238, 7245, 7252, 7259, 7265,
- 7271, 7279, 7287, 7292, 7297, 7305, 7313, 7321, 7329, 7337, 7345, 7352,
- 7359, 7367, 7375, 7383, 7391, 7398, 7405, 7411, 7417, 7426, 7435, 7443,
- 7451, 7458, 7465, 7472, 7479, 7487, 7495, 7503, 7511, 7519, 7527, 7535,
- 7543, 7553, 7563, 7570, 7577, 7584, 7591, 7598, 7605, 7612, 7619, 7626,
- 7633, 7640, 7647, 7654, 7661, 7668, 7675, 7682, 7689, 7696, 7703, 7710,
- 7717, 7724, 7731, 7736, 7741, 7746, 7751, 7756, 7761, 7766, 7771, 7776,
- 7781, 7787, 7793, 7801, 7809, 7817, 7825, 7833, 7841, 7849, 7857, 7865,
- 7873, 7878, 7883, 7888, 7893, 7901, 0, 7909, 7915, 7921, 7927, 7933,
- 7939, 7945, 7951, 7957, 7962, 7968, 7974, 7980, 7986, 7992, 7998, 8004,
- 8010, 8016, 8022, 8028, 8034, 8040, 8046, 8052, 8058, 8064, 8070, 8075,
- 8081, 8087, 8093, 8099, 8105, 8111, 8117, 8123, 8129, 0, 0, 8135, 8143,
- 8147, 8152, 8157, 8161, 8166, 8171, 8178, 8184, 8190, 8196, 8202, 8208,
- 8214, 8220, 8226, 8231, 8237, 8243, 8249, 8255, 8261, 8267, 8273, 8279,
- 8285, 8291, 8297, 8303, 8309, 8315, 8321, 8327, 8333, 8339, 8344, 8350,
- 8356, 8362, 8368, 8374, 8380, 8386, 8392, 8398, 8404, 8412, 8419, 8425,
- 0, 0, 8429, 8436, 8443, 0, 8448, 8453, 8458, 8463, 8470, 8477, 8482,
- 8487, 8492, 8497, 8502, 8507, 8512, 8519, 8524, 8531, 8538, 8543, 8550,
- 8555, 8560, 8565, 8572, 8577, 8582, 8589, 8598, 8603, 8608, 8613, 8618,
- 8624, 8629, 8636, 8643, 8650, 8655, 8660, 8665, 8670, 8675, 8680, 8690,
- 8695, 8704, 8709, 8714, 8719, 8724, 8731, 8738, 8745, 8750, 8755, 8762,
- 0, 0, 0, 0, 0, 0, 0, 0, 8769, 8773, 8777, 8781, 8785, 8789, 8793, 8797,
- 8801, 8805, 8809, 8814, 8818, 8822, 8827, 8831, 8836, 8840, 8844, 8848,
- 8853, 8857, 8862, 8866, 8870, 8874, 8878, 0, 0, 0, 0, 8882, 8887, 8894,
- 8902, 8909, 8914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8919, 8922, 8926,
- 8931, 8935, 8939, 8943, 8949, 8955, 8958, 8965, 8974, 8977, 8980, 8985,
- 8991, 8995, 9003, 9009, 9015, 9023, 9027, 9032, 9043, 9048, 9052, 9056,
- 9060, 9063, 0, 9066, 9073, 9077, 9083, 9087, 9094, 9101, 9109, 9116,
- 9123, 9127, 9131, 9137, 9141, 9145, 9149, 9153, 9157, 9161, 9165, 9169,
- 9173, 9177, 9181, 9185, 9189, 9193, 9197, 9201, 9205, 9214, 9223, 9233,
- 9243, 9253, 9256, 9260, 9264, 9268, 9272, 9276, 9280, 9284, 9288, 9293,
- 9297, 9300, 9303, 9306, 9309, 9312, 9315, 9318, 9321, 9325, 9329, 9333,
- 9338, 9343, 9349, 9352, 9359, 9368, 9373, 9378, 9385, 9391, 9396, 9400,
- 9404, 9408, 9412, 9416, 9420, 9424, 9428, 9432, 9436, 9441, 9446, 9453,
- 9459, 9465, 9471, 9476, 9485, 9494, 9499, 9506, 9513, 9520, 9527, 9531,
- 9535, 9539, 9546, 9557, 9561, 9565, 9569, 9576, 9585, 9589, 9593, 9601,
- 9605, 9609, 9613, 9620, 9627, 9639, 9643, 9647, 9651, 9662, 9672, 9676,
- 9684, 9691, 9698, 9707, 9718, 9727, 9731, 9741, 9752, 9761, 9776, 9785,
- 9794, 9803, 9812, 9818, 9827, 9834, 9838, 9847, 9851, 9858, 9867, 9871,
- 9877, 9884, 9891, 9895, 9904, 9908, 9915, 9919, 9928, 9932, 9941, 9949,
- 9956, 9965, 9974, 9981, 9987, 9991, 9998, 10007, 10013, 10020, 10027,
- 10033, 10043, 10051, 10058, 10064, 10068, 10071, 10075, 10081, 10090,
- 10094, 10100, 10106, 10113, 10120, 10123, 10131, 10136, 10145, 10150,
- 10154, 10167, 10180, 10186, 10193, 10198, 10204, 10209, 10215, 10225,
- 10232, 10241, 10251, 10257, 10262, 10267, 10271, 10275, 10280, 10285,
- 10291, 10299, 10307, 10318, 10323, 10332, 10341, 10348, 10354, 10360,
- 10366, 10372, 10378, 10384, 10390, 10396, 10402, 10409, 10416, 10423,
- 10429, 10437, 10446, 10453, 10461, 10469, 10475, 10481, 10487, 10495,
- 10503, 10513, 10523, 10527, 10533, 10539, 0, 10545, 10550, 10555, 10562,
- 10567, 10572, 10579, 10584, 10593, 10598, 10603, 10608, 10613, 10618,
- 10625, 10630, 10637, 10642, 10647, 10652, 10657, 10662, 10668, 10672,
- 10677, 10684, 10689, 10694, 10699, 10704, 10709, 10716, 10723, 10730,
- 10735, 10740, 10746, 10751, 10756, 10762, 10767, 10772, 10780, 10788,
- 10793, 10798, 10804, 10809, 10814, 10818, 10824, 10828, 10832, 10839,
- 10846, 10852, 10858, 10865, 10872, 10876, 0, 0, 10880, 10887, 10894,
- 10901, 10912, 10925, 10938, 10957, 10970, 10981, 10989, 10997, 11009,
- 11025, 11036, 11042, 11052, 11061, 11074, 11085, 11094, 11107, 11114,
- 11123, 11136, 11142, 11148, 11157, 11165, 11173, 11179, 11190, 11198,
- 11209, 11219, 11232, 11246, 11260, 11270, 11281, 11292, 11305, 11318,
- 11332, 11344, 11356, 11369, 11382, 11394, 11407, 11416, 11425, 11430,
- 11435, 11440, 11445, 11450, 11455, 11460, 11465, 11470, 11475, 11480,
- 11485, 11490, 11495, 11500, 11505, 11510, 11515, 11520, 11525, 11530,
- 11535, 11540, 11545, 11550, 11555, 11560, 11565, 11570, 11575, 11580,
- 11585, 11589, 11594, 11599, 11604, 11609, 11614, 11618, 11622, 11626,
- 11630, 11634, 11638, 11642, 11646, 11650, 11654, 11658, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11663, 11668, 11672, 11676, 11680, 11684, 11688,
- 11692, 11696, 11700, 11704, 11708, 11713, 11717, 11721, 11725, 11730,
- 11734, 11739, 11744, 11749, 11753, 11757, 11762, 11767, 11772, 11776,
- 11781, 11785, 11790, 11795, 11799, 11803, 11810, 11814, 11819, 11823,
- 11827, 11832, 11836, 11843, 11850, 11857, 11863, 11871, 11879, 11888,
- 11896, 11903, 11910, 11918, 11924, 11930, 11936, 11942, 11949, 11954,
- 11958, 11963, 0, 0, 11967, 11971, 11976, 11981, 11986, 11991, 11996,
- 12001, 12006, 12011, 12016, 12021, 12026, 12031, 12036, 12041, 12046,
- 12051, 12056, 12061, 12066, 12071, 12076, 12081, 12086, 12091, 12096,
- 12101, 12106, 12111, 12119, 12126, 12132, 12137, 12145, 12152, 12158,
- 12165, 12171, 12176, 12183, 12190, 12196, 12201, 12206, 12212, 12217,
- 12222, 12228, 0, 0, 12233, 12239, 12245, 12251, 12257, 12263, 12269,
- 12274, 12282, 12288, 12294, 12300, 12306, 12312, 12320, 0, 12326, 12331,
- 12336, 12341, 12346, 12351, 12356, 12361, 12366, 12371, 12376, 12381,
- 12386, 12391, 12396, 12401, 12406, 12411, 12416, 12421, 12426, 12431,
- 12436, 12441, 12446, 12451, 12456, 12461, 0, 0, 12466, 0, 12470, 12476,
- 12482, 12488, 12494, 12500, 12506, 12512, 12517, 12523, 12529, 0, 0, 0,
+ 423, 426, 429, 432, 436, 439, 442, 445, 447, 450, 456, 464, 471, 478,
+ 485, 490, 497, 504, 511, 518, 525, 533, 538, 546, 554, 562, 570, 578,
+ 586, 594, 602, 610, 615, 623, 630, 637, 644, 651, 658, 661, 667, 674,
+ 681, 688, 695, 703, 708, 715, 722, 729, 736, 743, 750, 758, 763, 771,
+ 779, 787, 795, 803, 811, 819, 827, 835, 840, 848, 855, 862, 869, 876,
+ 883, 886, 892, 899, 906, 913, 920, 928, 933, 941, 948, 955, 962, 969,
+ 976, 983, 991, 999, 1007, 1015, 1023, 1031, 1039, 1047, 1055, 1063, 1070,
+ 1077, 1085, 1093, 1101, 1109, 1117, 1125, 1133, 1141, 1149, 1157, 1165,
+ 1173, 1181, 1189, 1197, 1205, 1213, 1221, 1229, 1237, 1244, 1251, 1259,
+ 1267, 1275, 1283, 1291, 1299, 1307, 1315, 1323, 1329, 1334, 1339, 1347,
+ 1355, 1363, 1371, 1376, 1384, 1392, 1400, 1408, 1416, 1424, 1433, 1442,
+ 1449, 1456, 1464, 1472, 1480, 1488, 1496, 1504, 1515, 1520, 1525, 1532,
+ 1539, 1546, 1553, 1561, 1569, 1574, 1579, 1587, 1595, 1603, 1611, 1619,
+ 1627, 1635, 1643, 1651, 1659, 1667, 1675, 1683, 1691, 1699, 1707, 1715,
+ 1723, 1730, 1737, 1744, 1751, 1758, 1765, 1772, 1779, 1787, 1795, 1803,
+ 1811, 1818, 1825, 1833, 1841, 1849, 1857, 1865, 1873, 1881, 1889, 1897,
+ 1905, 1913, 1919, 1925, 1931, 1938, 1945, 1950, 1955, 1961, 1968, 1975,
+ 1982, 1989, 1997, 2005, 2011, 2017, 2022, 2028, 2035, 2042, 2049, 2054,
+ 2059, 2064, 2071, 2078, 2085, 2092, 2099, 2105, 2113, 2123, 2131, 2138,
+ 2145, 2150, 2155, 2162, 2169, 2173, 2178, 2183, 2188, 2196, 2205, 2212,
+ 2219, 2228, 2235, 2242, 2247, 2254, 2261, 2268, 2275, 2282, 2287, 2294,
+ 2301, 2309, 2314, 2319, 2324, 2334, 2338, 2344, 2350, 2356, 2362, 2370,
+ 2383, 2391, 2396, 2406, 2411, 2416, 2426, 2431, 2438, 2445, 2453, 2461,
+ 2468, 2475, 2482, 2489, 2499, 2509, 2519, 2529, 2539, 2549, 2559, 2569,
+ 2574, 2584, 2594, 2604, 2614, 2622, 2630, 2637, 2644, 2652, 2660, 2668,
+ 2676, 2683, 2690, 2700, 2710, 2718, 2726, 2734, 2739, 2749, 2754, 2762,
+ 2770, 2775, 2780, 2788, 2796, 2807, 2818, 2826, 2834, 2844, 2854, 2862,
+ 2870, 2879, 2888, 2897, 2906, 2916, 2926, 2935, 2944, 2954, 2964, 2972,
+ 2980, 2989, 2998, 3007, 3016, 3026, 3036, 3044, 3052, 3061, 3070, 3079,
+ 3088, 3097, 3106, 3111, 3116, 3124, 3132, 3142, 3150, 3155, 3160, 3167,
+ 3174, 3181, 3188, 3196, 3204, 3214, 3224, 3234, 3244, 3251, 3258, 3268,
+ 3278, 3286, 3294, 3302, 3310, 3318, 3325, 3332, 3339, 3345, 3352, 3359,
+ 3366, 3375, 3385, 3395, 3402, 3409, 3415, 3420, 3426, 3433, 3440, 3447,
+ 3454, 3465, 3475, 3482, 3489, 3496, 3503, 3508, 3513, 3519, 3525, 3531,
+ 3539, 3547, 3554, 3560, 3565, 3572, 3578, 3586, 3597, 3607, 3616, 3623,
+ 3629, 3635, 3640, 3647, 3653, 3660, 3667, 3674, 3679, 3684, 3693, 3701,
+ 3710, 3715, 3721, 3731, 3738, 3746, 3755, 3761, 3767, 3773, 3780, 3785,
+ 3790, 3800, 3808, 3817, 3825, 3833, 3843, 3848, 3855, 3862, 3867, 3879,
+ 3888, 3896, 3902, 3911, 3916, 3921, 3928, 3934, 3940, 3946, 3952, 3961,
+ 3969, 3974, 3982, 3988, 3996, 4004, 4010, 4016, 4022, 4030, 4038, 4044,
+ 4052, 4058, 4063, 4070, 4078, 4088, 4095, 4102, 4112, 4119, 4126, 4136,
+ 4143, 4150, 4157, 4163, 4169, 4178, 4190, 4195, 4202, 4207, 4211, 4216,
+ 4224, 4231, 4236, 4241, 4245, 4250, 4255, 4259, 4265, 4271, 4277, 4283,
+ 4291, 4296, 4301, 4306, 4311, 4317, 4319, 4324, 4328, 4334, 4340, 4346,
+ 4351, 4358, 4365, 4371, 4378, 4386, 4394, 4399, 4404, 4408, 4413, 4415,
+ 4417, 4420, 4422, 4425, 4430, 4435, 4441, 4446, 4450, 4455, 4460, 4469,
+ 4475, 4480, 4486, 4491, 4497, 4505, 4513, 4517, 4521, 4526, 4532, 4538,
+ 4544, 4550, 4555, 4562, 4570, 4578, 4583, 4589, 4596, 4603, 4610, 4617,
+ 4621, 4627, 4632, 4637, 4642, 4647, 4650, 4653, 4656, 4659, 4662, 4665,
+ 4669, 4673, 4679, 4682, 4687, 4693, 4699, 4702, 4707, 4712, 4716, 4722,
+ 4728, 4734, 4740, 4745, 4750, 4755, 4758, 4764, 4769, 4774, 4778, 4783,
+ 4789, 4795, 4798, 4802, 4806, 4810, 4813, 4816, 4821, 4825, 4832, 4836,
+ 4842, 4846, 4852, 4856, 4860, 4864, 4869, 4874, 4881, 4887, 4894, 4900,
+ 4906, 4912, 4915, 4919, 4923, 4927, 4931, 4936, 4941, 4945, 4949, 4955,
+ 4959, 4963, 4968, 4974, 4979, 4985, 4989, 4995, 5000, 5005, 5010, 5015,
+ 5021, 5024, 5028, 5033, 5038, 5047, 5053, 5058, 5062, 5067, 5071, 5076,
+ 5080, 5084, 5089, 5093, 5099, 5104, 5109, 5114, 5119, 5124, 5129, 5135,
+ 5141, 5147, 5153, 5158, 5164, 5170, 5176, 5181, 5186, 5193, 5200, 5204,
+ 5209, 5216, 0, 0, 5223, 5226, 5235, 5244, 5255, 5259, 0, 0, 0, 0, 5264,
+ 5267, 5272, 5280, 5285, 5293, 5301, 0, 5309, 0, 5317, 5325, 5333, 5344,
+ 5349, 5354, 5359, 5364, 5369, 5374, 5379, 5384, 5389, 5394, 5399, 5404,
+ 5409, 5414, 5419, 5424, 0, 5429, 5434, 5439, 5444, 5449, 5454, 5459,
+ 5464, 5472, 5480, 5488, 5496, 5504, 5512, 5523, 5528, 5533, 5538, 5543,
+ 5548, 5553, 5558, 5563, 5568, 5573, 5578, 5583, 5588, 5593, 5598, 5603,
+ 5608, 5614, 5619, 5624, 5629, 5634, 5639, 5644, 5649, 5657, 5665, 5673,
+ 5681, 5689, 5694, 5698, 5702, 5709, 5719, 5729, 5733, 5737, 5741, 5747,
+ 5754, 5758, 5763, 5767, 5772, 5776, 5781, 5785, 5790, 5795, 5800, 5805,
+ 5810, 5815, 5820, 5825, 5830, 5835, 5840, 5845, 5850, 5855, 5860, 5864,
+ 5868, 5874, 5878, 5883, 5889, 5897, 5902, 5907, 5914, 5919, 5924, 5931,
+ 5940, 5949, 5960, 5968, 5973, 5978, 5983, 5990, 5995, 6001, 6006, 6011,
+ 6016, 6021, 6026, 6031, 6039, 6045, 6050, 6054, 6059, 6064, 6069, 6074,
+ 6079, 6084, 6089, 6093, 6099, 6103, 6108, 6113, 6118, 6122, 6127, 6132,
+ 6137, 6142, 6146, 6151, 6155, 6160, 6165, 6170, 6175, 6181, 6186, 6192,
+ 6196, 6201, 6205, 6209, 6214, 6219, 6224, 6229, 6234, 6239, 6244, 6248,
+ 6254, 6258, 6263, 6268, 6273, 6277, 6282, 6287, 6292, 6297, 6301, 6306,
+ 6310, 6315, 6320, 6325, 6330, 6336, 6341, 6347, 6351, 6356, 6360, 6368,
+ 6373, 6378, 6383, 6390, 6395, 6401, 6406, 6411, 6416, 6421, 6426, 6431,
+ 6439, 6445, 6450, 6455, 6460, 6465, 6470, 6476, 6482, 6489, 6496, 6505,
+ 6514, 6521, 6528, 6537, 6546, 6551, 6556, 6561, 6566, 6571, 6576, 6581,
+ 6586, 6597, 6608, 6613, 6618, 6625, 6632, 6640, 6648, 6653, 6658, 6663,
+ 6668, 6672, 6676, 6680, 6686, 6692, 6696, 6703, 6708, 6718, 6728, 6734,
+ 6740, 6748, 6756, 6764, 6772, 6779, 6786, 6794, 6802, 6810, 6818, 6826,
+ 6834, 6842, 6850, 6858, 6866, 6873, 6880, 6886, 6892, 6900, 6908, 6915,
+ 6922, 6930, 6938, 6944, 6950, 6958, 6966, 6974, 6982, 6988, 6994, 7002,
+ 7010, 7018, 7026, 7033, 7040, 7048, 7056, 7064, 7072, 7077, 7082, 7089,
+ 7096, 7106, 7116, 7120, 7128, 7136, 7143, 7150, 7158, 7166, 7173, 7180,
+ 7188, 7196, 7203, 7210, 7218, 7226, 7231, 7238, 7245, 7252, 7259, 7265,
+ 7271, 7279, 7287, 7292, 7297, 7305, 7313, 7321, 7329, 7337, 7345, 7352,
+ 7359, 7367, 7375, 7383, 7391, 7398, 7405, 7411, 7417, 7426, 7435, 7443,
+ 7451, 7458, 7465, 7472, 7479, 7487, 7495, 7503, 7511, 7519, 7527, 7535,
+ 7543, 7553, 7563, 7570, 7577, 7584, 7591, 7598, 7605, 7612, 7619, 7626,
+ 7633, 7640, 7647, 7654, 7661, 7668, 7675, 7682, 7689, 7696, 7703, 7710,
+ 7717, 7724, 7731, 7736, 7741, 7746, 7751, 7756, 7761, 7766, 7771, 7776,
+ 7781, 7787, 7793, 7801, 7809, 7817, 7825, 7833, 7841, 7849, 7857, 7865,
+ 7873, 7878, 7883, 7888, 7893, 7901, 0, 7909, 7915, 7921, 7927, 7933,
+ 7939, 7945, 7951, 7957, 7962, 7968, 7974, 7980, 7986, 7992, 7998, 8004,
+ 8010, 8016, 8022, 8028, 8034, 8040, 8046, 8052, 8058, 8064, 8070, 8075,
+ 8081, 8087, 8093, 8099, 8105, 8111, 8117, 8123, 8129, 0, 0, 8135, 8143,
+ 8147, 8152, 8157, 8161, 8166, 8171, 8178, 8184, 8190, 8196, 8202, 8208,
+ 8214, 8220, 8226, 8231, 8237, 8243, 8249, 8255, 8261, 8267, 8273, 8279,
+ 8285, 8291, 8297, 8303, 8309, 8315, 8321, 8327, 8333, 8339, 8344, 8350,
+ 8356, 8362, 8368, 8374, 8380, 8386, 8392, 8398, 8404, 8412, 8419, 8425,
+ 0, 0, 8429, 8436, 8443, 0, 8448, 8453, 8458, 8463, 8470, 8477, 8482,
+ 8487, 8492, 8497, 8502, 8507, 8512, 8519, 8524, 8531, 8538, 8543, 8550,
+ 8555, 8560, 8565, 8572, 8577, 8582, 8589, 8598, 8603, 8608, 8613, 8618,
+ 8624, 8629, 8636, 8643, 8650, 8655, 8660, 8665, 8670, 8675, 8680, 8690,
+ 8695, 8704, 8709, 8714, 8719, 8724, 8731, 8738, 8745, 8750, 8755, 8762,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8769, 8773, 8777, 8781, 8785, 8789, 8793, 8797,
+ 8801, 8805, 8809, 8814, 8818, 8822, 8827, 8831, 8836, 8840, 8844, 8848,
+ 8853, 8857, 8862, 8866, 8870, 8874, 8878, 0, 0, 0, 0, 8882, 8887, 8894,
+ 8902, 8909, 8914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8919, 8922, 8926,
+ 8931, 8935, 8939, 8943, 8949, 8955, 8958, 8965, 8974, 8977, 8980, 8985,
+ 8991, 8995, 9003, 9009, 9015, 9023, 9027, 9032, 9043, 9048, 9052, 9056,
+ 9060, 9063, 0, 9066, 9073, 9077, 9083, 9087, 9094, 9101, 9109, 9116,
+ 9123, 9127, 9131, 9137, 9141, 9145, 9149, 9153, 9157, 9161, 9165, 9169,
+ 9173, 9177, 9181, 9185, 9189, 9193, 9197, 9201, 9205, 9214, 9223, 9233,
+ 9243, 9253, 9256, 9260, 9264, 9268, 9272, 9276, 9280, 9284, 9288, 9293,
+ 9297, 9300, 9303, 9306, 9309, 9312, 9315, 9318, 9321, 9325, 9329, 9333,
+ 9338, 9343, 9349, 9352, 9359, 9368, 9373, 9378, 9385, 9391, 9396, 9400,
+ 9404, 9408, 9412, 9416, 9420, 9424, 9428, 9432, 9436, 9441, 9446, 9453,
+ 9459, 9465, 9471, 9476, 9485, 9494, 9499, 9506, 9513, 9520, 9527, 9531,
+ 9535, 9539, 9546, 9557, 9561, 9565, 9569, 9576, 9585, 9589, 9593, 9601,
+ 9605, 9609, 9613, 9620, 9627, 9639, 9643, 9647, 9651, 9662, 9672, 9676,
+ 9684, 9691, 9698, 9707, 9718, 9727, 9731, 9741, 9752, 9761, 9776, 9785,
+ 9794, 9803, 9812, 9818, 9827, 9834, 9838, 9847, 9851, 9858, 9867, 9871,
+ 9877, 9884, 9891, 9895, 9904, 9908, 9915, 9919, 9928, 9932, 9941, 9949,
+ 9956, 9965, 9974, 9981, 9987, 9991, 9998, 10007, 10013, 10020, 10027,
+ 10033, 10043, 10051, 10058, 10064, 10068, 10071, 10075, 10081, 10090,
+ 10094, 10100, 10106, 10113, 10120, 10123, 10131, 10136, 10145, 10150,
+ 10154, 10167, 10180, 10186, 10193, 10198, 10204, 10209, 10215, 10225,
+ 10232, 10241, 10251, 10257, 10262, 10267, 10271, 10275, 10280, 10285,
+ 10291, 10299, 10307, 10318, 10323, 10332, 10341, 10348, 10354, 10360,
+ 10366, 10372, 10378, 10384, 10390, 10396, 10402, 10409, 10416, 10423,
+ 10429, 10437, 10446, 10453, 10461, 10469, 10475, 10481, 10487, 10495,
+ 10503, 10513, 10523, 10527, 10533, 10539, 0, 10545, 10550, 10555, 10562,
+ 10567, 10572, 10579, 10584, 10593, 10598, 10603, 10608, 10613, 10618,
+ 10625, 10630, 10637, 10642, 10647, 10652, 10657, 10662, 10668, 10672,
+ 10677, 10684, 10689, 10694, 10699, 10704, 10709, 10716, 10723, 10730,
+ 10735, 10740, 10746, 10751, 10756, 10762, 10767, 10772, 10780, 10788,
+ 10793, 10798, 10804, 10809, 10814, 10818, 10824, 10828, 10832, 10839,
+ 10846, 10852, 10858, 10865, 10872, 10876, 0, 0, 10880, 10887, 10894,
+ 10901, 10912, 10925, 10938, 10957, 10970, 10981, 10989, 10997, 11009,
+ 11025, 11036, 11042, 11052, 11061, 11074, 11085, 11094, 11107, 11114,
+ 11123, 11136, 11142, 11148, 11157, 11165, 11173, 11179, 11190, 11198,
+ 11209, 11219, 11232, 11246, 11260, 11270, 11281, 11292, 11305, 11318,
+ 11332, 11344, 11356, 11369, 11382, 11394, 11407, 11416, 11425, 11430,
+ 11435, 11440, 11445, 11450, 11455, 11460, 11465, 11470, 11475, 11480,
+ 11485, 11490, 11495, 11500, 11505, 11510, 11515, 11520, 11525, 11530,
+ 11535, 11540, 11545, 11550, 11555, 11560, 11565, 11570, 11575, 11580,
+ 11585, 11589, 11594, 11599, 11604, 11609, 11614, 11618, 11622, 11626,
+ 11630, 11634, 11638, 11642, 11646, 11650, 11654, 11658, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11663, 11668, 11672, 11676, 11680, 11684, 11688,
+ 11692, 11696, 11700, 11704, 11708, 11713, 11717, 11721, 11725, 11730,
+ 11734, 11739, 11744, 11749, 11753, 11757, 11762, 11767, 11772, 11776,
+ 11781, 11785, 11790, 11795, 11799, 11803, 11810, 11814, 11819, 11823,
+ 11827, 11832, 11836, 11843, 11850, 11857, 11863, 11871, 11879, 11888,
+ 11896, 11903, 11910, 11918, 11924, 11930, 11936, 11942, 11949, 11954,
+ 11958, 11963, 0, 0, 11967, 11971, 11976, 11981, 11986, 11991, 11996,
+ 12001, 12006, 12011, 12016, 12021, 12026, 12031, 12036, 12041, 12046,
+ 12051, 12056, 12061, 12066, 12071, 12076, 12081, 12086, 12091, 12096,
+ 12101, 12106, 12111, 12119, 12126, 12132, 12137, 12145, 12152, 12158,
+ 12165, 12171, 12176, 12183, 12190, 12196, 12201, 12206, 12212, 12217,
+ 12222, 12228, 0, 0, 12233, 12239, 12245, 12251, 12257, 12263, 12269,
+ 12274, 12282, 12288, 12294, 12300, 12306, 12312, 12320, 0, 12326, 12331,
+ 12336, 12341, 12346, 12351, 12356, 12361, 12366, 12371, 12376, 12381,
+ 12386, 12391, 12396, 12401, 12406, 12411, 12416, 12421, 12426, 12431,
+ 12436, 12441, 12446, 12451, 12456, 12461, 0, 0, 12466, 0, 12470, 12476,
+ 12482, 12488, 12494, 12500, 12506, 12512, 12517, 12523, 12529, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 12535, 12544, 12552, 12561, 12570, 12583, 12590, 12597, 12605,
- 12618, 12630, 12637, 12645, 12651, 12656, 12665, 12674, 12682, 12688,
- 12698, 12707, 0, 12714, 12722, 12730, 12739, 12748, 12762, 12768, 12774,
- 12780, 12788, 12796, 12804, 12812, 12820, 12829, 12840, 12849, 12858, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12869, 12874, 12881, 12886, 12891, 12896,
- 12904, 12912, 12919, 12926, 12933, 12940, 12947, 12954, 12961, 12967,
- 12975, 12980, 12985, 12990, 12995, 13000, 13005, 13010, 13015, 13021,
- 13026, 13031, 13037, 13042, 13047, 13052, 13057, 13062, 13068, 13074,
- 13080, 13085, 13090, 13095, 13100, 13106, 13115, 13123, 13129, 13137,
- 13143, 13147, 13151, 13155, 13160, 13163, 13167, 13170, 13174, 13177,
- 13181, 13185, 13189, 13194, 13199, 13202, 13206, 13211, 13216, 13219,
- 13223, 13226, 13230, 13234, 13238, 13242, 13246, 13250, 13254, 13258,
- 13262, 13266, 13270, 13274, 13278, 13282, 13285, 13289, 13293, 13297,
- 13300, 13304, 13307, 13311, 13315, 13319, 13322, 13325, 13328, 13332,
- 13335, 13339, 13343, 13347, 13351, 13355, 13358, 13361, 13366, 13371,
- 13375, 13379, 13384, 13388, 13393, 13397, 13402, 13407, 13413, 13419,
- 13425, 13429, 13434, 13440, 13446, 13450, 13455, 13459, 13465, 13470,
- 13473, 13479, 13485, 13490, 13495, 13502, 13507, 13512, 13516, 13520,
- 13524, 13528, 13532, 13536, 13540, 13544, 13549, 13554, 13559, 13565,
- 13568, 13572, 13576, 13579, 13582, 13585, 13588, 13591, 13594, 13597,
- 13600, 13603, 13607, 13614, 13619, 13623, 13627, 13631, 13635, 13639,
- 13645, 13649, 13653, 13657, 13661, 13667, 13671, 13675, 13679, 13684,
- 13689, 0, 13694, 13698, 13703, 13707, 13712, 13716, 13721, 13726, 0, 0,
- 13731, 13735, 0, 0, 13740, 13744, 13749, 13753, 13758, 13763, 13768,
- 13773, 13778, 13783, 13788, 13793, 13798, 13803, 13808, 13813, 13818,
- 13823, 13827, 13832, 13837, 13842, 0, 13846, 13850, 13855, 13860, 13865,
- 13869, 13873, 0, 13877, 0, 0, 0, 13881, 13886, 13891, 13895, 0, 0, 13899,
- 13904, 13909, 13915, 13920, 13926, 13931, 13937, 13943, 0, 0, 13950,
- 13955, 0, 0, 13961, 13966, 13972, 13977, 0, 0, 0, 0, 0, 0, 0, 0, 13983,
- 0, 0, 0, 0, 13990, 13995, 0, 14000, 14005, 14011, 14017, 14023, 0, 0,
- 14030, 14035, 14039, 14043, 14047, 14051, 14055, 14059, 14063, 14067,
- 14071, 14080, 14089, 14094, 14099, 14106, 14113, 14120, 14127, 14142,
- 14150, 14154, 14159, 14166, 14171, 0, 0, 14176, 14183, 14188, 0, 14193,
- 14197, 14202, 14206, 14211, 14215, 0, 0, 0, 0, 14220, 14225, 0, 0, 14230,
- 14235, 14240, 14244, 14249, 14254, 14259, 14264, 14269, 14274, 14279,
- 14284, 14289, 14294, 14299, 14304, 14309, 14314, 14318, 14323, 14328,
- 14333, 0, 14337, 14341, 14346, 14351, 14356, 14360, 14364, 0, 14368,
- 14372, 0, 14377, 14382, 0, 14387, 14391, 0, 0, 14395, 0, 14400, 14406,
- 14411, 14417, 14422, 0, 0, 0, 0, 14428, 14434, 0, 0, 14440, 14446, 14452,
- 0, 0, 0, 14457, 0, 0, 0, 0, 0, 0, 0, 14462, 14467, 14472, 14477, 0,
- 14482, 0, 0, 0, 0, 0, 0, 0, 14487, 14492, 14496, 14500, 14504, 14508,
- 14512, 14516, 14520, 14524, 14528, 14532, 14536, 14540, 14544, 14550,
- 14555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14560, 14565, 14570, 0, 14575,
- 14579, 14584, 14588, 14593, 14597, 14602, 14607, 14612, 0, 14618, 14622,
- 14627, 0, 14633, 14637, 14642, 14646, 14651, 14656, 14661, 14666, 14671,
- 14676, 14681, 14686, 14691, 14696, 14701, 14706, 14711, 14716, 14720,
- 14725, 14730, 14735, 0, 14739, 14743, 14748, 14753, 14758, 14762, 14766,
- 0, 14770, 14774, 0, 14779, 14784, 14789, 14794, 14798, 0, 0, 14802,
- 14807, 14812, 14818, 14823, 14829, 14834, 14840, 14846, 14853, 0, 14860,
- 14865, 14871, 0, 14878, 14883, 14889, 0, 0, 14894, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14898, 14904, 14910, 14916, 0, 0, 14923, 14928,
- 14932, 14936, 14940, 14944, 14948, 14952, 14956, 14960, 14964, 14969, 0,
- 0, 0, 0, 0, 0, 0, 14974, 14979, 14984, 14989, 14994, 15002, 15010, 0,
- 15018, 15023, 15028, 0, 15033, 15037, 15042, 15046, 15051, 15055, 15060,
- 15065, 0, 0, 15070, 15074, 0, 0, 15079, 15083, 15088, 15092, 15097,
- 15102, 15107, 15112, 15117, 15122, 15127, 15132, 15137, 15142, 15147,
- 15152, 15157, 15162, 15166, 15171, 15176, 15181, 0, 15185, 15189, 15194,
- 15199, 15204, 15208, 15212, 0, 15216, 15220, 0, 15225, 15230, 15235,
- 15240, 15244, 0, 0, 15248, 15253, 15258, 15264, 15269, 15275, 15280,
- 15286, 15292, 0, 0, 15299, 15304, 0, 0, 15310, 15315, 15321, 0, 0, 0, 0,
- 0, 0, 0, 15326, 15331, 15338, 0, 0, 0, 0, 15345, 15350, 0, 15355, 15360,
- 15366, 15372, 15378, 0, 0, 15385, 15390, 15394, 15398, 15402, 15406,
- 15410, 15414, 15418, 15422, 15426, 15430, 15435, 15442, 15449, 15456,
- 15463, 15470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15477, 15481, 0, 15485,
- 15488, 15492, 15495, 15499, 15502, 0, 0, 0, 15506, 15509, 15513, 0,
- 15517, 15520, 15524, 15528, 0, 0, 0, 15531, 15535, 0, 15539, 0, 15543,
- 15547, 0, 0, 0, 15551, 15555, 0, 0, 0, 15558, 15561, 15565, 0, 0, 0,
- 15568, 15571, 15574, 15577, 15581, 15584, 15588, 15592, 15596, 15600,
- 15604, 15607, 0, 0, 0, 0, 15610, 15615, 15619, 15624, 15628, 0, 0, 0,
- 15633, 15637, 15642, 0, 15647, 15651, 15656, 15661, 0, 0, 15665, 0, 0, 0,
- 0, 0, 0, 15668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15674, 15678,
- 15681, 15684, 15687, 15690, 15693, 15696, 15699, 15702, 15705, 15709,
- 15714, 15718, 15722, 15726, 15730, 15734, 15738, 15743, 15747, 0, 0, 0,
- 0, 0, 15750, 15757, 15762, 15767, 15772, 15779, 15783, 15788, 15792,
- 15797, 15801, 15806, 15811, 0, 15816, 15820, 15825, 0, 15830, 15834,
- 15839, 15844, 15848, 15853, 15858, 15863, 15868, 15873, 15878, 15883,
- 15888, 15893, 15898, 15903, 15908, 15913, 15918, 15922, 15927, 15932,
- 15937, 0, 15941, 15945, 15950, 15955, 15960, 15964, 15968, 15972, 15977,
- 15981, 15986, 15991, 15996, 16001, 16006, 16010, 0, 0, 0, 16014, 16019,
- 16025, 16030, 16036, 16041, 16047, 16053, 0, 16060, 16065, 16071, 0,
- 16077, 16082, 16088, 16094, 0, 0, 0, 0, 0, 0, 0, 16099, 16104, 0, 16111,
- 16116, 16121, 0, 0, 0, 0, 0, 16126, 16132, 16138, 16144, 0, 0, 16151,
- 16156, 16160, 16164, 16168, 16172, 16176, 16180, 16184, 16188, 0, 0, 0,
- 0, 0, 0, 0, 16192, 16197, 16211, 16224, 16237, 16250, 16263, 16276,
- 16289, 16294, 16301, 16306, 16311, 16316, 16321, 16325, 16330, 16334,
- 16339, 16343, 16348, 16353, 0, 16358, 16362, 16367, 0, 16372, 16376,
- 16381, 16386, 16390, 16395, 16400, 16405, 16410, 16415, 16420, 16425,
- 16430, 16435, 16440, 16445, 16450, 16455, 16460, 16464, 16469, 16474,
- 16479, 0, 16483, 16487, 16492, 16497, 16502, 16506, 16510, 16514, 16519,
- 16523, 0, 16528, 16533, 16538, 16543, 16547, 0, 0, 16551, 16556, 16561,
- 16567, 16572, 16578, 16583, 16589, 16595, 0, 16602, 16607, 16613, 0,
- 16619, 16624, 16630, 16636, 0, 0, 0, 0, 0, 0, 0, 16641, 16646, 0, 0, 0,
- 0, 0, 0, 0, 16653, 0, 16658, 16664, 16670, 16676, 0, 0, 16683, 16688,
- 16692, 16696, 16700, 16704, 16708, 16712, 16716, 16720, 0, 16724, 16729,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16734, 16740, 16744, 16748, 16752,
- 16758, 16761, 16765, 16768, 16772, 16775, 16779, 16783, 0, 16787, 16790,
- 16794, 0, 16798, 16801, 16805, 16809, 16812, 16816, 16820, 16824, 16828,
- 16832, 16836, 16840, 16844, 16848, 16852, 16856, 16860, 16864, 16868,
- 16871, 16875, 16879, 16883, 16886, 16890, 16893, 16897, 16901, 16905,
- 16908, 16911, 16914, 16918, 16921, 16925, 16929, 16933, 16937, 16941,
- 16944, 16947, 16951, 16958, 16964, 16968, 16973, 16977, 16982, 16986,
- 16991, 16996, 0, 17002, 17006, 17011, 0, 17016, 17020, 17025, 17030,
- 17034, 17039, 0, 0, 0, 0, 17043, 17049, 17055, 17061, 17067, 17073,
- 17079, 17085, 17091, 17097, 17103, 17109, 17115, 17120, 17125, 17130, 0,
- 0, 17136, 17140, 17143, 17146, 17149, 17152, 17155, 17158, 17161, 17164,
- 17167, 17171, 17176, 17180, 17186, 17192, 17198, 17204, 17210, 17216,
- 17220, 17226, 17232, 17238, 17243, 17249, 0, 17255, 17259, 17263, 0,
- 17267, 17271, 17275, 17279, 17283, 17287, 17291, 17295, 17299, 17303,
- 17307, 17311, 17315, 17319, 17323, 17327, 17331, 17335, 0, 0, 0, 17339,
- 17345, 17351, 17357, 17363, 17369, 17375, 17381, 17387, 17393, 17399,
- 17405, 17413, 17419, 17425, 17431, 17437, 17443, 17449, 17455, 17461,
- 17467, 17473, 17479, 0, 17485, 17491, 17497, 17503, 17509, 17515, 17519,
- 17525, 17529, 0, 17533, 0, 0, 17539, 17543, 17549, 17555, 17561, 17565,
- 17571, 0, 0, 0, 17575, 0, 0, 0, 0, 17579, 17584, 17591, 17598, 17605,
- 17612, 0, 17619, 0, 17626, 17631, 17636, 17643, 17650, 17659, 17670,
- 17679, 0, 0, 0, 0, 0, 0, 17684, 17690, 17695, 17700, 17705, 17710, 17715,
- 17720, 17725, 17730, 0, 0, 17735, 17742, 17749, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 17754, 17762, 17770, 17778, 17786, 17794, 17802, 17810,
- 17818, 17826, 17834, 17842, 17850, 17858, 17866, 17873, 17881, 17889,
- 17897, 17905, 17913, 17920, 17928, 17936, 17944, 17952, 17960, 17968,
- 17976, 17984, 17992, 18000, 18008, 18015, 18023, 18031, 18037, 18045,
- 18051, 18059, 18067, 18075, 18083, 18091, 18099, 18106, 18114, 18120,
- 18127, 18135, 18143, 18151, 18158, 18166, 18174, 18182, 18189, 18197, 0,
- 0, 0, 0, 18203, 18210, 18217, 18225, 18232, 18242, 18252, 18258, 18264,
- 18270, 18278, 18286, 18294, 18302, 18308, 18314, 18320, 18326, 18331,
- 18335, 18339, 18343, 18347, 18351, 18355, 18359, 18363, 18367, 18373, 0,
+ 0, 0, 12535, 12544, 12552, 12561, 12570, 12583, 12590, 12597, 12605,
+ 12618, 12630, 12637, 12645, 12651, 12656, 12665, 12674, 12682, 12688,
+ 12698, 12707, 0, 12714, 12722, 12730, 12739, 12748, 12762, 12768, 12774,
+ 12780, 12788, 12796, 12804, 12812, 12820, 12829, 12840, 12849, 12858, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12869, 12874, 12881, 12886, 12891, 12896,
+ 12904, 12912, 12919, 12926, 12933, 12940, 12947, 12954, 12961, 12967,
+ 12975, 12980, 12985, 12990, 12995, 13000, 13005, 13010, 13015, 13021,
+ 13026, 13031, 13037, 13042, 13047, 13052, 13057, 13062, 13068, 13074,
+ 13080, 13085, 13090, 13095, 13100, 13106, 13115, 13123, 13129, 13137,
+ 13143, 13147, 13151, 13155, 13160, 13163, 13167, 13170, 13174, 13177,
+ 13181, 13185, 13189, 13194, 13199, 13202, 13206, 13211, 13216, 13219,
+ 13223, 13226, 13230, 13234, 13238, 13242, 13246, 13250, 13254, 13258,
+ 13262, 13266, 13270, 13274, 13278, 13282, 13285, 13289, 13293, 13297,
+ 13300, 13304, 13307, 13311, 13315, 13319, 13322, 13325, 13328, 13332,
+ 13335, 13339, 13343, 13347, 13351, 13355, 13358, 13361, 13366, 13371,
+ 13375, 13379, 13384, 13388, 13393, 13397, 13402, 13407, 13413, 13419,
+ 13425, 13429, 13434, 13440, 13446, 13450, 13455, 13459, 13465, 13470,
+ 13473, 13479, 13485, 13490, 13495, 13502, 13507, 13512, 13516, 13520,
+ 13524, 13528, 13532, 13536, 13540, 13544, 13549, 13554, 13559, 13565,
+ 13568, 13572, 13576, 13579, 13582, 13585, 13588, 13591, 13594, 13597,
+ 13600, 13603, 13607, 13614, 13619, 13623, 13627, 13631, 13635, 13639,
+ 13645, 13649, 13653, 13657, 13661, 13667, 13671, 13675, 13679, 13684,
+ 13689, 0, 13694, 13698, 13703, 13707, 13712, 13716, 13721, 13726, 0, 0,
+ 13731, 13735, 0, 0, 13740, 13744, 13749, 13753, 13758, 13763, 13768,
+ 13773, 13778, 13783, 13788, 13793, 13798, 13803, 13808, 13813, 13818,
+ 13823, 13827, 13832, 13837, 13842, 0, 13846, 13850, 13855, 13860, 13865,
+ 13869, 13873, 0, 13877, 0, 0, 0, 13881, 13886, 13891, 13895, 0, 0, 13899,
+ 13904, 13909, 13915, 13920, 13926, 13931, 13937, 13943, 0, 0, 13950,
+ 13955, 0, 0, 13961, 13966, 13972, 13977, 0, 0, 0, 0, 0, 0, 0, 0, 13983,
+ 0, 0, 0, 0, 13990, 13995, 0, 14000, 14005, 14011, 14017, 14023, 0, 0,
+ 14030, 14035, 14039, 14043, 14047, 14051, 14055, 14059, 14063, 14067,
+ 14071, 14080, 14089, 14094, 14099, 14106, 14113, 14120, 14127, 14142,
+ 14150, 14154, 14159, 14166, 14171, 0, 0, 14176, 14183, 14188, 0, 14193,
+ 14197, 14202, 14206, 14211, 14215, 0, 0, 0, 0, 14220, 14225, 0, 0, 14230,
+ 14235, 14240, 14244, 14249, 14254, 14259, 14264, 14269, 14274, 14279,
+ 14284, 14289, 14294, 14299, 14304, 14309, 14314, 14318, 14323, 14328,
+ 14333, 0, 14337, 14341, 14346, 14351, 14356, 14360, 14364, 0, 14368,
+ 14372, 0, 14377, 14382, 0, 14387, 14391, 0, 0, 14395, 0, 14400, 14406,
+ 14411, 14417, 14422, 0, 0, 0, 0, 14428, 14434, 0, 0, 14440, 14446, 14452,
+ 0, 0, 0, 14457, 0, 0, 0, 0, 0, 0, 0, 14462, 14467, 14472, 14477, 0,
+ 14482, 0, 0, 0, 0, 0, 0, 0, 14487, 14492, 14496, 14500, 14504, 14508,
+ 14512, 14516, 14520, 14524, 14528, 14532, 14536, 14540, 14544, 14550,
+ 14555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14560, 14565, 14570, 0, 14575,
+ 14579, 14584, 14588, 14593, 14597, 14602, 14607, 14612, 0, 14618, 14622,
+ 14627, 0, 14633, 14637, 14642, 14646, 14651, 14656, 14661, 14666, 14671,
+ 14676, 14681, 14686, 14691, 14696, 14701, 14706, 14711, 14716, 14720,
+ 14725, 14730, 14735, 0, 14739, 14743, 14748, 14753, 14758, 14762, 14766,
+ 0, 14770, 14774, 0, 14779, 14784, 14789, 14794, 14798, 0, 0, 14802,
+ 14807, 14812, 14818, 14823, 14829, 14834, 14840, 14846, 14853, 0, 14860,
+ 14865, 14871, 0, 14878, 14883, 14889, 0, 0, 14894, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14898, 14904, 14910, 14916, 0, 0, 14923, 14928,
+ 14932, 14936, 14940, 14944, 14948, 14952, 14956, 14960, 14964, 14969, 0,
+ 0, 0, 0, 0, 0, 0, 14974, 14979, 14984, 14989, 14994, 15002, 15010, 0,
+ 15018, 15023, 15028, 0, 15033, 15037, 15042, 15046, 15051, 15055, 15060,
+ 15065, 0, 0, 15070, 15074, 0, 0, 15079, 15083, 15088, 15092, 15097,
+ 15102, 15107, 15112, 15117, 15122, 15127, 15132, 15137, 15142, 15147,
+ 15152, 15157, 15162, 15166, 15171, 15176, 15181, 0, 15185, 15189, 15194,
+ 15199, 15204, 15208, 15212, 0, 15216, 15220, 0, 15225, 15230, 15235,
+ 15240, 15244, 0, 0, 15248, 15253, 15258, 15264, 15269, 15275, 15280,
+ 15286, 15292, 0, 0, 15299, 15304, 0, 0, 15310, 15315, 15321, 0, 0, 0, 0,
+ 0, 0, 0, 15326, 15331, 15338, 0, 0, 0, 0, 15345, 15350, 0, 15355, 15360,
+ 15366, 15372, 15378, 0, 0, 15385, 15390, 15394, 15398, 15402, 15406,
+ 15410, 15414, 15418, 15422, 15426, 15430, 15435, 15442, 15449, 15456,
+ 15463, 15470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15477, 15481, 0, 15485,
+ 15488, 15492, 15495, 15499, 15502, 0, 0, 0, 15506, 15509, 15513, 0,
+ 15517, 15520, 15524, 15528, 0, 0, 0, 15531, 15535, 0, 15539, 0, 15543,
+ 15547, 0, 0, 0, 15551, 15555, 0, 0, 0, 15558, 15561, 15565, 0, 0, 0,
+ 15568, 15571, 15574, 15577, 15581, 15584, 15588, 15592, 15596, 15600,
+ 15604, 15607, 0, 0, 0, 0, 15610, 15615, 15619, 15624, 15628, 0, 0, 0,
+ 15633, 15637, 15642, 0, 15647, 15651, 15656, 15661, 0, 0, 15665, 0, 0, 0,
+ 0, 0, 0, 15668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15674, 15678,
+ 15681, 15684, 15687, 15690, 15693, 15696, 15699, 15702, 15705, 15709,
+ 15714, 15718, 15722, 15726, 15730, 15734, 15738, 15743, 15747, 0, 0, 0,
+ 0, 0, 15750, 15757, 15762, 15767, 15772, 15779, 15783, 15788, 15792,
+ 15797, 15801, 15806, 15811, 0, 15816, 15820, 15825, 0, 15830, 15834,
+ 15839, 15844, 15848, 15853, 15858, 15863, 15868, 15873, 15878, 15883,
+ 15888, 15893, 15898, 15903, 15908, 15913, 15918, 15922, 15927, 15932,
+ 15937, 0, 15941, 15945, 15950, 15955, 15960, 15964, 15968, 15972, 15977,
+ 15981, 15986, 15991, 15996, 16001, 16006, 16010, 0, 0, 0, 16014, 16019,
+ 16025, 16030, 16036, 16041, 16047, 16053, 0, 16060, 16065, 16071, 0,
+ 16077, 16082, 16088, 16094, 0, 0, 0, 0, 0, 0, 0, 16099, 16104, 0, 16111,
+ 16116, 16121, 0, 0, 0, 0, 0, 16126, 16132, 16138, 16144, 0, 0, 16151,
+ 16156, 16160, 16164, 16168, 16172, 16176, 16180, 16184, 16188, 0, 0, 0,
+ 0, 0, 0, 0, 16192, 16197, 16211, 16224, 16237, 16250, 16263, 16276,
+ 16289, 16294, 16301, 16306, 16311, 16316, 16321, 16325, 16330, 16334,
+ 16339, 16343, 16348, 16353, 0, 16358, 16362, 16367, 0, 16372, 16376,
+ 16381, 16386, 16390, 16395, 16400, 16405, 16410, 16415, 16420, 16425,
+ 16430, 16435, 16440, 16445, 16450, 16455, 16460, 16464, 16469, 16474,
+ 16479, 0, 16483, 16487, 16492, 16497, 16502, 16506, 16510, 16514, 16519,
+ 16523, 0, 16528, 16533, 16538, 16543, 16547, 0, 0, 16551, 16556, 16561,
+ 16567, 16572, 16578, 16583, 16589, 16595, 0, 16602, 16607, 16613, 0,
+ 16619, 16624, 16630, 16636, 0, 0, 0, 0, 0, 0, 0, 16641, 16646, 0, 0, 0,
+ 0, 0, 0, 0, 16653, 0, 16658, 16664, 16670, 16676, 0, 0, 16683, 16688,
+ 16692, 16696, 16700, 16704, 16708, 16712, 16716, 16720, 0, 16724, 16729,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16734, 16740, 16744, 16748, 16752,
+ 16758, 16761, 16765, 16768, 16772, 16775, 16779, 16783, 0, 16787, 16790,
+ 16794, 0, 16798, 16801, 16805, 16809, 16812, 16816, 16820, 16824, 16828,
+ 16832, 16836, 16840, 16844, 16848, 16852, 16856, 16860, 16864, 16868,
+ 16871, 16875, 16879, 16883, 16886, 16890, 16893, 16897, 16901, 16905,
+ 16908, 16911, 16914, 16918, 16921, 16925, 16929, 16933, 16937, 16941,
+ 16944, 16947, 16951, 16958, 16964, 16968, 16973, 16977, 16982, 16986,
+ 16991, 16996, 0, 17002, 17006, 17011, 0, 17016, 17020, 17025, 17030,
+ 17034, 17039, 0, 0, 0, 0, 17043, 17049, 17055, 17061, 17067, 17073,
+ 17079, 17085, 17091, 17097, 17103, 17109, 17115, 17120, 17125, 17130, 0,
+ 0, 17136, 17140, 17143, 17146, 17149, 17152, 17155, 17158, 17161, 17164,
+ 17167, 17171, 17176, 17180, 17186, 17192, 17198, 17204, 17210, 17216,
+ 17220, 17226, 17232, 17238, 17243, 17249, 0, 17255, 17259, 17263, 0,
+ 17267, 17271, 17275, 17279, 17283, 17287, 17291, 17295, 17299, 17303,
+ 17307, 17311, 17315, 17319, 17323, 17327, 17331, 17335, 0, 0, 0, 17339,
+ 17345, 17351, 17357, 17363, 17369, 17375, 17381, 17387, 17393, 17399,
+ 17405, 17413, 17419, 17425, 17431, 17437, 17443, 17449, 17455, 17461,
+ 17467, 17473, 17479, 0, 17485, 17491, 17497, 17503, 17509, 17515, 17519,
+ 17525, 17529, 0, 17533, 0, 0, 17539, 17543, 17549, 17555, 17561, 17565,
+ 17571, 0, 0, 0, 17575, 0, 0, 0, 0, 17579, 17584, 17591, 17598, 17605,
+ 17612, 0, 17619, 0, 17626, 17631, 17636, 17643, 17650, 17659, 17670,
+ 17679, 0, 0, 0, 0, 0, 0, 17684, 17690, 17695, 17700, 17705, 17710, 17715,
+ 17720, 17725, 17730, 0, 0, 17735, 17742, 17749, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 17754, 17762, 17770, 17778, 17786, 17794, 17802, 17810,
+ 17818, 17826, 17834, 17842, 17850, 17858, 17866, 17873, 17881, 17889,
+ 17897, 17905, 17913, 17920, 17928, 17936, 17944, 17952, 17960, 17968,
+ 17976, 17984, 17992, 18000, 18008, 18015, 18023, 18031, 18037, 18045,
+ 18051, 18059, 18067, 18075, 18083, 18091, 18099, 18106, 18114, 18120,
+ 18127, 18135, 18143, 18151, 18158, 18166, 18174, 18182, 18189, 18197, 0,
+ 0, 0, 0, 18203, 18210, 18217, 18225, 18232, 18242, 18252, 18258, 18264,
+ 18270, 18278, 18286, 18294, 18302, 18308, 18314, 18320, 18326, 18331,
+ 18335, 18339, 18343, 18347, 18351, 18355, 18359, 18363, 18367, 18373, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18379, 18384, 0, 18391, 0, 18398,
- 18405, 18410, 18415, 18422, 0, 18429, 18436, 18441, 18448, 18455, 18462,
- 18469, 18476, 18483, 18488, 18492, 18499, 18506, 18513, 18518, 18523,
- 18528, 18535, 18542, 18549, 18556, 18563, 18568, 18573, 0, 18580, 0,
- 18587, 18592, 18599, 18606, 18613, 18620, 18627, 18631, 18638, 18642,
- 18647, 18655, 18661, 18667, 18672, 18678, 18684, 18690, 18695, 18701,
- 18708, 18716, 18723, 0, 0, 18730, 18735, 18741, 18746, 18752, 0, 18758,
- 0, 18763, 18770, 18777, 18784, 18791, 18796, 0, 0, 18800, 18805, 18809,
- 18813, 18817, 18821, 18825, 18829, 18833, 18837, 0, 0, 18841, 18847,
- 18853, 18860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18867, 18871, 18882, 18897, 18912,
- 18922, 18933, 18946, 18957, 18963, 18971, 18981, 18987, 18995, 18999,
- 19005, 19011, 19019, 19029, 19037, 19050, 19056, 19064, 19072, 19084,
- 19091, 19099, 19107, 19115, 19123, 19131, 19139, 19149, 19153, 19156,
- 19159, 19162, 19165, 19168, 19171, 19174, 19177, 19180, 19184, 19188,
- 19192, 19196, 19200, 19204, 19208, 19212, 19216, 19221, 19227, 19237,
- 19251, 19261, 19267, 19273, 19281, 19289, 19297, 19305, 19311, 19317,
- 19320, 19324, 19328, 19332, 19336, 19340, 19344, 0, 19348, 19352, 19356,
- 19360, 19364, 19368, 19372, 19375, 19379, 19383, 19387, 19390, 19393,
- 19397, 19401, 19405, 19408, 19412, 19416, 19420, 19424, 19428, 19432,
- 19436, 19440, 19443, 19446, 19449, 19453, 19457, 19460, 19463, 19466,
- 19470, 19475, 19479, 0, 0, 0, 0, 19483, 19488, 19492, 19497, 19501,
- 19506, 19511, 19517, 19522, 19528, 19532, 19537, 19541, 19546, 19556,
- 19562, 19568, 19575, 19585, 19591, 19595, 19599, 19605, 19611, 19619,
- 19625, 19633, 19641, 19649, 19659, 19667, 19677, 19682, 19688, 19694,
- 19700, 19706, 19712, 19718, 0, 19724, 19730, 19736, 19742, 19748, 19754,
- 19760, 19765, 19771, 19777, 19783, 19788, 19793, 19799, 19805, 19811,
- 19816, 19822, 19828, 19834, 19840, 19846, 19852, 19858, 19864, 19869,
- 19874, 19879, 19885, 19891, 19896, 19901, 19906, 19912, 19920, 19927, 0,
- 19934, 19941, 19954, 19961, 19968, 19976, 19984, 19990, 19996, 20002,
- 20012, 20017, 20023, 20033, 20043, 0, 20053, 20063, 20071, 20083, 20095,
- 20101, 20115, 20130, 20135, 20140, 20148, 20156, 20164, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18379, 18384, 0, 18391, 0, 18398,
+ 18405, 18410, 18415, 18422, 0, 18429, 18436, 18441, 18448, 18455, 18462,
+ 18469, 18476, 18483, 18488, 18492, 18499, 18506, 18513, 18518, 18523,
+ 18528, 18535, 18542, 18549, 18556, 18563, 18568, 18573, 0, 18580, 0,
+ 18587, 18592, 18599, 18606, 18613, 18620, 18627, 18631, 18638, 18642,
+ 18647, 18655, 18661, 18667, 18672, 18678, 18684, 18690, 18695, 18701,
+ 18708, 18716, 18723, 0, 0, 18730, 18735, 18741, 18746, 18752, 0, 18758,
+ 0, 18763, 18770, 18777, 18784, 18791, 18796, 0, 0, 18800, 18805, 18809,
+ 18813, 18817, 18821, 18825, 18829, 18833, 18837, 0, 0, 18841, 18847,
+ 18853, 18860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18867, 18871, 18882, 18897, 18912,
+ 18922, 18933, 18946, 18957, 18963, 18971, 18981, 18987, 18995, 18999,
+ 19005, 19011, 19019, 19029, 19037, 19050, 19056, 19064, 19072, 19084,
+ 19091, 19099, 19107, 19115, 19123, 19131, 19139, 19149, 19153, 19156,
+ 19159, 19162, 19165, 19168, 19171, 19174, 19177, 19180, 19184, 19188,
+ 19192, 19196, 19200, 19204, 19208, 19212, 19216, 19221, 19227, 19237,
+ 19251, 19261, 19267, 19273, 19281, 19289, 19297, 19305, 19311, 19317,
+ 19320, 19324, 19328, 19332, 19336, 19340, 19344, 0, 19348, 19352, 19356,
+ 19360, 19364, 19368, 19372, 19375, 19379, 19383, 19387, 19390, 19393,
+ 19397, 19401, 19405, 19408, 19412, 19416, 19420, 19424, 19428, 19432,
+ 19436, 19440, 19443, 19446, 19449, 19453, 19457, 19460, 19463, 19466,
+ 19470, 19475, 19479, 0, 0, 0, 0, 19483, 19488, 19492, 19497, 19501,
+ 19506, 19511, 19517, 19522, 19528, 19532, 19537, 19541, 19546, 19556,
+ 19562, 19568, 19575, 19585, 19591, 19595, 19599, 19605, 19611, 19619,
+ 19625, 19633, 19641, 19649, 19659, 19667, 19677, 19682, 19688, 19694,
+ 19700, 19706, 19712, 19718, 0, 19724, 19730, 19736, 19742, 19748, 19754,
+ 19760, 19765, 19771, 19777, 19783, 19788, 19793, 19799, 19805, 19811,
+ 19816, 19822, 19828, 19834, 19840, 19846, 19852, 19858, 19864, 19869,
+ 19874, 19879, 19885, 19891, 19896, 19901, 19906, 19912, 19920, 19927, 0,
+ 19934, 19941, 19954, 19961, 19968, 19976, 19984, 19990, 19996, 20002,
+ 20012, 20017, 20023, 20033, 20043, 0, 20053, 20063, 20071, 20083, 20095,
+ 20101, 20115, 20130, 20135, 20140, 20148, 20156, 20164, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 20172, 20175, 20179, 20183, 20187, 20191, 20195,
- 20199, 20203, 20207, 20211, 20215, 20219, 20223, 20227, 20231, 20235,
- 20238, 20242, 20246, 20250, 20253, 20256, 20260, 20264, 20268, 20271,
- 20274, 20277, 20280, 20284, 20287, 20290, 20294, 20297, 20302, 20305,
- 20309, 20312, 20316, 20319, 20324, 20327, 20331, 20338, 20343, 20347,
- 20352, 20356, 20361, 20365, 20370, 20377, 20383, 20389, 20393, 20397,
- 20401, 20405, 20409, 20415, 20421, 20428, 20434, 20439, 20443, 20446,
- 20449, 20452, 20455, 20458, 20461, 20464, 20467, 20470, 20476, 20480,
- 20484, 20488, 20492, 20496, 20500, 20504, 20508, 20513, 20517, 20522,
- 20527, 20533, 20538, 20544, 20550, 20556, 20562, 20568, 20576, 20584,
- 20592, 20600, 20609, 20618, 20629, 20639, 20649, 20660, 20671, 20681,
- 20691, 20701, 20711, 20721, 20731, 20741, 20751, 20759, 20766, 20772,
- 20779, 20784, 20790, 20796, 20802, 20808, 20814, 20820, 20825, 20831,
- 20837, 20843, 20849, 20854, 20863, 20870, 20876, 20884, 20892, 20898,
- 20904, 20910, 20916, 20924, 20932, 20942, 20950, 20958, 20964, 20969,
- 20974, 20979, 20984, 20989, 20994, 20999, 21004, 21009, 21015, 21021,
- 21027, 21034, 21039, 21045, 21050, 21055, 21060, 21065, 21070, 21075,
- 21080, 21085, 21090, 21095, 21100, 21105, 21110, 21115, 21120, 21125,
- 21130, 21135, 21140, 21145, 21150, 21155, 21160, 21165, 21170, 21175,
- 21180, 21185, 21190, 21195, 21200, 21205, 21210, 21215, 21220, 21225,
- 21230, 0, 21235, 0, 0, 0, 0, 0, 21240, 0, 0, 21245, 21249, 21253, 21257,
- 21261, 21265, 21269, 21273, 21277, 21281, 21285, 21289, 21293, 21297,
- 21301, 21305, 21309, 21313, 21317, 21321, 21325, 21329, 21333, 21337,
- 21341, 21345, 21349, 21353, 21357, 21361, 21365, 21369, 21373, 21377,
- 21381, 21385, 21389, 21393, 21397, 21401, 21405, 21409, 21414, 21418,
- 21423, 21428, 21432, 21437, 21442, 21446, 21450, 21454, 21458, 21462,
- 21466, 21470, 21474, 21478, 21482, 21486, 21490, 21494, 21498, 21502,
- 21506, 21510, 21514, 21518, 21522, 21526, 21530, 21534, 21538, 21542,
- 21546, 21550, 21554, 21558, 21562, 21566, 21570, 21574, 21578, 21582,
- 21586, 21590, 21594, 21598, 21602, 21606, 21610, 21614, 21618, 21622,
- 21626, 21630, 21634, 21638, 21642, 21646, 21650, 21654, 21658, 21662,
- 21666, 21670, 21674, 21678, 21682, 21686, 21690, 21694, 21698, 21702,
- 21706, 21710, 21714, 21718, 21722, 21726, 21730, 21734, 21738, 21742,
- 21746, 21750, 21754, 21758, 21762, 21766, 21770, 21774, 21778, 21782,
- 21786, 21790, 21794, 21798, 21802, 21806, 21810, 21814, 21818, 21822,
- 21826, 21831, 21835, 21840, 21844, 21849, 21854, 21858, 21863, 21868,
- 21872, 21877, 21882, 21887, 21892, 21896, 21901, 21906, 21911, 21916,
- 21921, 21926, 21930, 21935, 21940, 21945, 21950, 21955, 21960, 21965,
- 21970, 21975, 21980, 21985, 21990, 21995, 22000, 22005, 22010, 22015,
- 22020, 22025, 22030, 22035, 22040, 22045, 22050, 22055, 22060, 22065,
- 22070, 22075, 22080, 22085, 22090, 22095, 22100, 22105, 22110, 22115,
- 22120, 22125, 22130, 22135, 22140, 22145, 22150, 22155, 22160, 22165,
- 22170, 22175, 22180, 22184, 22188, 22192, 22196, 22200, 22204, 22208,
- 22212, 22216, 22220, 22224, 22228, 22232, 22236, 22240, 22244, 22248,
- 22252, 22256, 22260, 22264, 22268, 22272, 22276, 22280, 22284, 22288,
- 22292, 22296, 22300, 22304, 22308, 22312, 22316, 22320, 22324, 22328,
- 22332, 22336, 22340, 22344, 22348, 22352, 22356, 22360, 22364, 22368,
- 22372, 22376, 22380, 22384, 22388, 22392, 22396, 22400, 22404, 22408,
- 22412, 22416, 22420, 22424, 22428, 22432, 22436, 22440, 22444, 22448,
- 22452, 22456, 22460, 22464, 22468, 22472, 22476, 22480, 22484, 22488,
- 22492, 22496, 22500, 22504, 22508, 22512, 22516, 22520, 22524, 22528,
- 22532, 22535, 22539, 22543, 22547, 22551, 22555, 22559, 22563, 22566,
- 22570, 22574, 22578, 22582, 22586, 22590, 22594, 22598, 22602, 22606,
- 22610, 22614, 22618, 22622, 22626, 22629, 22633, 22637, 22641, 22645,
- 22649, 22653, 22657, 22661, 22665, 22669, 22673, 22677, 22681, 22685,
- 22689, 22692, 22696, 22700, 22704, 22708, 22712, 22716, 22720, 22723,
- 22727, 22731, 22735, 22739, 22743, 22747, 22751, 22755, 22759, 22763,
- 22767, 22771, 22775, 22779, 22783, 22787, 22791, 22795, 22799, 22803,
- 22807, 22811, 22815, 0, 22819, 22823, 22827, 22831, 0, 0, 22835, 22839,
- 22843, 22847, 22851, 22855, 22859, 0, 22863, 0, 22867, 22871, 22875,
- 22879, 0, 0, 22883, 22887, 22891, 22895, 22899, 22903, 22907, 22911,
- 22915, 22919, 22923, 22927, 22931, 22935, 22939, 22943, 22947, 22950,
- 22954, 22958, 22962, 22966, 22970, 22973, 22977, 22981, 22985, 22989,
- 22993, 22997, 23001, 23005, 23009, 23013, 23017, 23021, 23025, 23029,
- 23033, 23037, 23041, 0, 23045, 23049, 23053, 23057, 0, 0, 23061, 23064,
- 23068, 23072, 23076, 23080, 23084, 23088, 23092, 23096, 23100, 23104,
- 23108, 23112, 23116, 23120, 23124, 23129, 23134, 23139, 23145, 23151,
- 23156, 23161, 23167, 23170, 23174, 23178, 23182, 23186, 23190, 23194,
- 23198, 0, 23202, 23206, 23210, 23214, 0, 0, 23218, 23222, 23226, 23230,
- 23234, 23238, 23242, 0, 23246, 0, 23250, 23254, 23258, 23262, 0, 0,
- 23266, 23270, 23274, 23278, 23282, 23286, 23290, 23294, 23298, 23303,
- 23308, 23313, 23319, 23325, 23330, 0, 23335, 23339, 23343, 23347, 23351,
- 23355, 23359, 23363, 23367, 23371, 23375, 23379, 23383, 23387, 23391,
- 23395, 23399, 23402, 23406, 23410, 23414, 23418, 23422, 23426, 23430,
- 23434, 23438, 23442, 23446, 23450, 23454, 23458, 23462, 23466, 23470,
- 23474, 23478, 23482, 23486, 23490, 23494, 23498, 23502, 23506, 23510,
- 23514, 23518, 23522, 23526, 23530, 23534, 23538, 23542, 23546, 23550,
- 23554, 23558, 0, 23562, 23566, 23570, 23574, 0, 0, 23578, 23582, 23586,
- 23590, 23594, 23598, 23602, 23606, 23610, 23614, 23618, 23622, 23626,
- 23630, 23634, 23638, 23642, 23646, 23650, 23654, 23658, 23662, 23666,
- 23670, 23674, 23678, 23682, 23686, 23690, 23694, 23698, 23702, 23706,
- 23710, 23714, 23718, 23722, 23726, 23730, 23734, 23738, 23742, 23746,
- 23750, 23754, 23758, 23762, 23766, 23770, 23774, 23778, 23782, 23786,
- 23790, 23794, 23798, 23802, 23805, 23809, 23813, 23817, 23821, 23825,
- 23829, 23833, 23837, 23841, 0, 0, 23845, 23854, 23860, 23865, 23869,
- 23872, 23877, 23880, 23883, 23886, 23891, 23895, 23900, 23903, 23906,
- 23909, 23912, 23915, 23918, 23921, 23924, 23927, 23931, 23935, 23939,
- 23943, 23947, 23951, 23955, 23959, 23963, 23967, 0, 0, 0, 23972, 23978,
- 23982, 23986, 23990, 23996, 24000, 24004, 24008, 24014, 24018, 24022,
- 24026, 24032, 24036, 24040, 24044, 24050, 24056, 24062, 24070, 24076,
- 24082, 24088, 24094, 24100, 0, 0, 0, 0, 0, 0, 24106, 24109, 24112, 24115,
- 24118, 24121, 24125, 24129, 24132, 24136, 24140, 24144, 24148, 24152,
- 24155, 24159, 24163, 24167, 24171, 24175, 24178, 24182, 24186, 24190,
- 24194, 24198, 24201, 24205, 24209, 24213, 24217, 24220, 24224, 24228,
- 24232, 24236, 24240, 24244, 24248, 24252, 24256, 24260, 24264, 24268,
- 24272, 24275, 24279, 24283, 24287, 24291, 24295, 24299, 24303, 24306,
- 24310, 24314, 24318, 24322, 24326, 24330, 24334, 24338, 24342, 24346,
- 24350, 24354, 24358, 24362, 24366, 24370, 24374, 24378, 24382, 24386,
- 24390, 24394, 24398, 24402, 24406, 24410, 24413, 24417, 24421, 24425,
- 24429, 24433, 0, 0, 24437, 24442, 24447, 24452, 24457, 24462, 0, 0,
- 24467, 24471, 24474, 24478, 24481, 24485, 24488, 24492, 24498, 24503,
- 24507, 24510, 24514, 24518, 24524, 24528, 24534, 24538, 24544, 24548,
- 24554, 24558, 24564, 24570, 24574, 24580, 24584, 24590, 24596, 24600,
- 24606, 24612, 24617, 24622, 24630, 24638, 24645, 24650, 24656, 24665,
- 24671, 24679, 24684, 24690, 24694, 24698, 24702, 24706, 24710, 24714,
- 24718, 24722, 24726, 24730, 24736, 24741, 24746, 24749, 24753, 24757,
- 24763, 24767, 24773, 24777, 24783, 24787, 24793, 24797, 24803, 24807,
- 24813, 24817, 24823, 24829, 24833, 24839, 24844, 24848, 24852, 24856,
- 24860, 24863, 24867, 24873, 24878, 24883, 24886, 24890, 24894, 24900,
- 24904, 24910, 24914, 24920, 24923, 24928, 24932, 24938, 24942, 24948,
- 24952, 24958, 24964, 24968, 24972, 24976, 24980, 24984, 24988, 24992,
- 24996, 25000, 25004, 25008, 25014, 25017, 25021, 25025, 25031, 25035,
- 25041, 25045, 25051, 25055, 25061, 25065, 25071, 25075, 25081, 25085,
- 25091, 25097, 25101, 25105, 25111, 25117, 25123, 25129, 25133, 25137,
- 25141, 25145, 25149, 25153, 25159, 25163, 25167, 25171, 25177, 25181,
- 25187, 25191, 25197, 25201, 25207, 25211, 25217, 25221, 25227, 25231,
- 25237, 25243, 25247, 25253, 25257, 25261, 25265, 25269, 25273, 25277,
- 25283, 25286, 25290, 25294, 25300, 25304, 25310, 25314, 25320, 25324,
- 25330, 25334, 25340, 25344, 25350, 25354, 25360, 25366, 25370, 25376,
- 25380, 25386, 25392, 25396, 25400, 25404, 25408, 25412, 25416, 25422,
- 25425, 25429, 25433, 25439, 25443, 25449, 25453, 25459, 25465, 25469,
- 25474, 25478, 25482, 25486, 25490, 25494, 25498, 25502, 25508, 25511,
- 25515, 25519, 25525, 25529, 25535, 25539, 25545, 25549, 25555, 25559,
- 25565, 25569, 25575, 25579, 25585, 25588, 25593, 25598, 25602, 25606,
- 25610, 25614, 25618, 25622, 25628, 25631, 25635, 25639, 25645, 25649,
- 25655, 25659, 25665, 25669, 25675, 25679, 25685, 25689, 25695, 25699,
- 25705, 25711, 25715, 25721, 25725, 25731, 25737, 25743, 25749, 25755,
- 25761, 25767, 25773, 25777, 25781, 25785, 25789, 25793, 25797, 25801,
- 25805, 25811, 25815, 25821, 25825, 25831, 25835, 25841, 25845, 25851,
- 25855, 25861, 25865, 25871, 25875, 25879, 25883, 25887, 25891, 25895,
- 25899, 25905, 25908, 25912, 25916, 25922, 25926, 25932, 25936, 25942,
- 25946, 25952, 25956, 25962, 25966, 25972, 25976, 25982, 25988, 25992,
- 25998, 26004, 26010, 26014, 26020, 26026, 26030, 26034, 26038, 26042,
- 26046, 26052, 26055, 26059, 26064, 26068, 26074, 26077, 26082, 26087,
- 26091, 26095, 26099, 26103, 26107, 26111, 26115, 26119, 26123, 26129,
- 26133, 26137, 26143, 26147, 26153, 26157, 26163, 26167, 26171, 26175,
- 26179, 26183, 26189, 26193, 26197, 26201, 26205, 26209, 26213, 26217,
- 26221, 26225, 26229, 26235, 26241, 26247, 26253, 26259, 26264, 26270,
- 26276, 26282, 26286, 26290, 26294, 26298, 26302, 26306, 26310, 26314,
- 26318, 26322, 26326, 26330, 26334, 26340, 26346, 26352, 26357, 26361,
- 26365, 26369, 26373, 26377, 26381, 26385, 26389, 26393, 26399, 26405,
- 26411, 26417, 26423, 26429, 26435, 26441, 26447, 26451, 26455, 26459,
- 26463, 26467, 26471, 26475, 26481, 26487, 26493, 26499, 26505, 26511,
- 26517, 26523, 26529, 26534, 26539, 26544, 26549, 26555, 26561, 26567,
- 26573, 26579, 26585, 26591, 26596, 26602, 26608, 26614, 26619, 26625,
- 26631, 26637, 26642, 26647, 26652, 26657, 26662, 26667, 26672, 26677,
- 26682, 26687, 26692, 26697, 26701, 26706, 26711, 26716, 26721, 26726,
- 26731, 26736, 26741, 26746, 26751, 26756, 26761, 26766, 26771, 26776,
- 26781, 26786, 26791, 26796, 26801, 26806, 26811, 26816, 26821, 26826,
- 26831, 26836, 26841, 26846, 26850, 26855, 26860, 26865, 26870, 26875,
- 26880, 26885, 26890, 26895, 26900, 26905, 26910, 26915, 26920, 26925,
- 26930, 26935, 26940, 26945, 26950, 26955, 26960, 26965, 26970, 26975,
- 26979, 26984, 26989, 26994, 26999, 27004, 27008, 27013, 27018, 27023,
- 27028, 27033, 27037, 27042, 27048, 27053, 27058, 27063, 27068, 27074,
- 27079, 27084, 27089, 27094, 27099, 27104, 27109, 27114, 27119, 27124,
- 27129, 27134, 27138, 27143, 27148, 27153, 27158, 27163, 27168, 27173,
- 27178, 27183, 27188, 27193, 27198, 27203, 27208, 27213, 27218, 27223,
- 27228, 27233, 27238, 27243, 27248, 27253, 27258, 27263, 27268, 27273,
- 27278, 27283, 27288, 27293, 27299, 27304, 27309, 27314, 27319, 27324,
- 27329, 27334, 27339, 27344, 27349, 27354, 27358, 27363, 27368, 27373,
- 27378, 27383, 27388, 27393, 27398, 27403, 27408, 27413, 27418, 27423,
- 27428, 27433, 27438, 27443, 27448, 27453, 27458, 27463, 27468, 27473,
- 27478, 27483, 27488, 27494, 27498, 27502, 27506, 27510, 27514, 27518,
- 27522, 27526, 27532, 27538, 27544, 27550, 27556, 27562, 27568, 27575,
- 27581, 27586, 27591, 27596, 27601, 27606, 27611, 27616, 27621, 27626,
- 27631, 27636, 27641, 27646, 27651, 27656, 27661, 27666, 27671, 27676,
- 27681, 27686, 27691, 27696, 27701, 27706, 27711, 27716, 27721, 0, 0, 0,
- 27728, 27739, 27744, 27752, 27757, 27762, 27767, 27776, 27781, 27787,
- 27793, 27799, 27804, 27810, 27816, 27820, 27825, 27830, 27840, 27845,
- 27850, 27857, 27862, 27867, 27876, 27881, 27890, 27897, 27904, 27911,
- 27918, 27929, 27936, 27941, 27951, 27955, 27962, 27967, 27974, 27980,
- 27987, 27996, 28003, 28010, 28019, 28026, 28031, 28036, 28047, 28054,
- 28059, 28070, 28077, 28082, 28087, 28095, 28104, 28111, 28118, 28128,
- 28133, 28138, 28143, 28152, 28160, 28165, 28170, 28175, 28180, 28185,
- 28190, 28195, 28200, 28205, 28210, 28215, 28221, 28227, 28233, 28238,
- 28243, 28248, 28253, 28258, 28263, 28272, 28281, 28290, 28299, 0, 0, 0,
- 0, 0, 0, 0, 28308, 28312, 28316, 28320, 28324, 28329, 28334, 28338,
- 28343, 28347, 28351, 28356, 28360, 0, 28364, 28368, 28373, 28377, 28381,
- 28386, 28391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28396, 28400, 28404,
- 28408, 28412, 28417, 28422, 28426, 28431, 28435, 28439, 28444, 28448,
- 28452, 28456, 28460, 28465, 28469, 28473, 28478, 28483, 28488, 28494, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 28499, 28503, 28507, 28511, 28515, 28520, 28525,
- 28529, 28534, 28538, 28542, 28547, 28551, 28555, 28559, 28563, 28568,
- 28572, 28576, 28581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28586, 28590,
- 28594, 28598, 28602, 28607, 28612, 28616, 28621, 28625, 28629, 28634,
- 28638, 0, 28642, 28646, 28651, 0, 28655, 28660, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 28665, 28668, 28672, 28676, 28680, 28684, 28688, 28692,
- 28696, 28700, 28704, 28708, 28712, 28716, 28720, 28724, 28727, 28731,
- 28734, 28738, 28742, 28746, 28750, 28754, 28758, 28762, 28766, 28770,
- 28774, 28778, 28782, 28786, 28789, 28792, 28795, 28799, 28805, 28811,
- 28817, 28823, 28829, 28835, 28841, 28847, 28853, 28859, 28865, 28871,
- 28877, 28883, 28892, 28901, 28907, 28913, 28919, 28924, 28928, 28933,
- 28938, 28943, 28947, 28952, 28957, 28962, 28966, 28971, 28975, 28980,
- 28985, 28990, 28995, 28999, 29003, 29007, 29011, 29015, 29019, 29023,
- 29027, 29031, 29035, 29041, 29045, 29049, 29053, 29057, 29061, 29069,
- 29075, 29079, 29085, 29089, 29095, 29099, 0, 0, 29103, 29107, 29110,
- 29113, 29116, 29119, 29122, 29125, 29128, 29131, 0, 0, 0, 0, 0, 0, 29134,
- 29142, 29150, 29158, 29166, 29174, 29182, 29190, 29198, 29206, 0, 0, 0,
- 0, 0, 0, 29214, 29217, 29220, 29223, 29228, 29231, 29236, 29243, 29251,
- 29256, 29263, 29266, 29273, 29280, 29287, 0, 29291, 29295, 29298, 29301,
- 29304, 29307, 29310, 29313, 29316, 29319, 0, 0, 0, 0, 0, 0, 29322, 29325,
- 29328, 29331, 29334, 29337, 29341, 29345, 29349, 29352, 29356, 29360,
- 29363, 29367, 29371, 29374, 29377, 29380, 29384, 29387, 29391, 29395,
- 29399, 29402, 29405, 29409, 29413, 29416, 29420, 29424, 29428, 29432,
- 29436, 29440, 29444, 29448, 29455, 29460, 29465, 29470, 29475, 29481,
- 29487, 29493, 29499, 29504, 29510, 29516, 29521, 29526, 29532, 29538,
- 29544, 29550, 29555, 29561, 29566, 29572, 29578, 29584, 29590, 29596,
- 29601, 29606, 29612, 29618, 29623, 29629, 29634, 29640, 29645, 29650,
- 29656, 29661, 29667, 29673, 29679, 29685, 29691, 29697, 29703, 29709,
- 29715, 29721, 29726, 29731, 29736, 29742, 29748, 0, 0, 0, 0, 0, 0, 0,
- 29756, 29765, 29774, 29782, 29790, 29800, 29808, 29817, 29824, 29831,
- 29838, 29846, 29854, 29862, 29870, 29878, 29886, 29893, 29901, 29908,
- 29916, 29924, 29932, 29940, 29948, 29957, 29967, 29977, 29987, 29997,
- 30007, 30017, 30027, 30036, 30046, 30056, 30066, 30076, 30086, 30094,
- 30102, 30112, 30120, 0, 0, 0, 0, 0, 30130, 30134, 30138, 30142, 30146,
- 30150, 30154, 30158, 30162, 30166, 30170, 30174, 30178, 30182, 30186,
- 30190, 30194, 30198, 30202, 30206, 30210, 30214, 30218, 30222, 30228,
- 30232, 30238, 30242, 30248, 30252, 30258, 30262, 30266, 30270, 30274,
- 30278, 30282, 30288, 30294, 30300, 30306, 30312, 30318, 30324, 30330,
- 30336, 30342, 30348, 30355, 30361, 30367, 30373, 30377, 30381, 30385,
- 30389, 30393, 30397, 30401, 30407, 30413, 30419, 30424, 30431, 30436,
- 30441, 30447, 30452, 30459, 30466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30473,
- 30479, 30483, 30488, 30493, 30498, 30503, 30508, 30513, 30518, 30523,
- 30528, 30532, 30537, 30542, 30547, 30551, 30555, 30560, 30565, 30570,
- 30574, 30578, 30582, 30586, 30591, 30596, 30601, 30605, 30609, 30614, 0,
- 30619, 30624, 30629, 30634, 30640, 30646, 30652, 30658, 30663, 30668,
- 30674, 30680, 0, 0, 0, 0, 30687, 30692, 30698, 30704, 30709, 30714,
- 30719, 30724, 30729, 30734, 30739, 30744, 0, 0, 0, 0, 30749, 0, 0, 0,
- 30754, 30759, 30764, 30769, 30773, 30777, 30781, 30785, 30789, 30793,
- 30797, 30801, 30805, 30810, 30816, 30822, 30828, 30833, 30838, 30843,
- 30849, 30854, 30859, 30865, 30870, 30876, 30882, 30887, 30893, 30899,
- 30905, 30910, 30915, 30920, 30926, 30932, 30937, 30943, 30948, 30954,
- 30959, 30965, 0, 0, 30971, 30977, 30983, 30989, 30995, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 31001, 31010, 31019, 31027, 31036, 31045, 31053, 31062,
- 31071, 31080, 31088, 31096, 31105, 31113, 31121, 31129, 31138, 31146,
- 31154, 31163, 31171, 31179, 31188, 31196, 31204, 31213, 31221, 31230,
- 31239, 31247, 31256, 31265, 31273, 31281, 31290, 31299, 31307, 31316,
- 31325, 31334, 31343, 31352, 31361, 31370, 0, 0, 0, 0, 31379, 31389,
- 31398, 31407, 31415, 31424, 31432, 31441, 31449, 31458, 31467, 31476,
- 31485, 31494, 31503, 31512, 31521, 31530, 31539, 31548, 31557, 31566,
- 31575, 31584, 31593, 31601, 0, 0, 0, 0, 0, 0, 31609, 31617, 31624, 31631,
- 31638, 31645, 31652, 31659, 31666, 31673, 31680, 0, 0, 0, 31688, 31696,
- 31704, 31708, 31714, 31720, 31726, 31732, 31738, 31744, 31750, 31756,
- 31762, 31768, 31774, 31780, 31786, 31792, 31798, 31802, 31808, 31814,
- 31820, 31826, 31832, 31838, 31844, 31850, 31856, 31862, 31868, 31874,
- 31880, 31886, 31892, 31896, 31901, 31906, 31911, 31915, 31920, 31924,
- 31929, 31933, 31938, 31942, 31947, 31952, 31957, 31962, 31967, 31971,
- 31975, 31979, 31984, 31988, 31992, 31996, 32001, 32006, 32011, 32016, 0,
- 0, 32022, 32026, 32033, 32038, 32044, 32050, 32055, 32061, 32067, 32072,
- 32078, 32084, 32090, 32095, 32101, 32106, 32111, 32117, 32122, 32128,
- 32133, 32138, 32144, 32149, 32155, 32159, 32164, 32169, 32175, 32181,
- 32186, 32192, 32198, 32202, 32207, 32212, 32216, 32221, 32225, 32230,
- 32235, 32241, 32247, 32252, 32257, 32262, 32266, 32271, 32275, 32280,
- 32284, 32289, 32294, 32299, 32304, 32310, 32317, 32324, 32334, 32343,
- 32350, 32356, 32367, 32372, 32378, 0, 32383, 32388, 32393, 32401, 32407,
- 32415, 32420, 32426, 32432, 32438, 32443, 32449, 32454, 32461, 32467,
- 32472, 32478, 32484, 32490, 32497, 32504, 32511, 32516, 32521, 32528,
- 32535, 32542, 32549, 32556, 0, 0, 32563, 32570, 32577, 32583, 32589,
- 32595, 32601, 32607, 32613, 32619, 32625, 0, 0, 0, 0, 0, 0, 32631, 32637,
- 32642, 32647, 32652, 32657, 32662, 32667, 32672, 32677, 0, 0, 0, 0, 0, 0,
- 32682, 32687, 32692, 32697, 32702, 32707, 32712, 32721, 32728, 32733,
- 32738, 32743, 32748, 32753, 0, 0, 32758, 32765, 32768, 32771, 32775,
- 32780, 32784, 32790, 32795, 32801, 32808, 32816, 32820, 32825, 32829,
- 32834, 32841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 20172, 20175, 20179, 20183, 20187, 20191, 20195,
+ 20199, 20203, 20207, 20211, 20215, 20219, 20223, 20227, 20231, 20235,
+ 20238, 20242, 20246, 20250, 20253, 20256, 20260, 20264, 20268, 20271,
+ 20274, 20277, 20280, 20284, 20287, 20290, 20294, 20297, 20302, 20305,
+ 20309, 20312, 20316, 20319, 20324, 20327, 20331, 20338, 20343, 20347,
+ 20352, 20356, 20361, 20365, 20370, 20377, 20383, 20389, 20393, 20397,
+ 20401, 20405, 20409, 20415, 20421, 20428, 20434, 20439, 20443, 20446,
+ 20449, 20452, 20455, 20458, 20461, 20464, 20467, 20470, 20476, 20480,
+ 20484, 20488, 20492, 20496, 20500, 20504, 20508, 20513, 20517, 20522,
+ 20527, 20533, 20538, 20544, 20550, 20556, 20562, 20568, 20576, 20584,
+ 20592, 20600, 20609, 20618, 20629, 20639, 20649, 20660, 20671, 20681,
+ 20691, 20701, 20711, 20721, 20731, 20741, 20751, 20759, 20766, 20772,
+ 20779, 20784, 20790, 20796, 20802, 20808, 20814, 20820, 20825, 20831,
+ 20837, 20843, 20849, 20854, 20863, 20870, 20876, 20884, 20892, 20898,
+ 20904, 20910, 20916, 20924, 20932, 20942, 20950, 20958, 20964, 20969,
+ 20974, 20979, 20984, 20989, 20994, 20999, 21004, 21009, 21015, 21021,
+ 21027, 21034, 21039, 21045, 21050, 21055, 21060, 21065, 21070, 21075,
+ 21080, 21085, 21090, 21095, 21100, 21105, 21110, 21115, 21120, 21125,
+ 21130, 21135, 21140, 21145, 21150, 21155, 21160, 21165, 21170, 21175,
+ 21180, 21185, 21190, 21195, 21200, 21205, 21210, 21215, 21220, 21225,
+ 21230, 0, 21235, 0, 0, 0, 0, 0, 21240, 0, 0, 21245, 21249, 21253, 21257,
+ 21261, 21265, 21269, 21273, 21277, 21281, 21285, 21289, 21293, 21297,
+ 21301, 21305, 21309, 21313, 21317, 21321, 21325, 21329, 21333, 21337,
+ 21341, 21345, 21349, 21353, 21357, 21361, 21365, 21369, 21373, 21377,
+ 21381, 21385, 21389, 21393, 21397, 21401, 21405, 21409, 21414, 21418,
+ 21423, 21428, 21432, 21437, 21442, 21446, 21450, 21454, 21458, 21462,
+ 21466, 21470, 21474, 21478, 21482, 21486, 21490, 21494, 21498, 21502,
+ 21506, 21510, 21514, 21518, 21522, 21526, 21530, 21534, 21538, 21542,
+ 21546, 21550, 21554, 21558, 21562, 21566, 21570, 21574, 21578, 21582,
+ 21586, 21590, 21594, 21598, 21602, 21606, 21610, 21614, 21618, 21622,
+ 21626, 21630, 21634, 21638, 21642, 21646, 21650, 21654, 21658, 21662,
+ 21666, 21670, 21674, 21678, 21682, 21686, 21690, 21694, 21698, 21702,
+ 21706, 21710, 21714, 21718, 21722, 21726, 21730, 21734, 21738, 21742,
+ 21746, 21750, 21754, 21758, 21762, 21766, 21770, 21774, 21778, 21782,
+ 21786, 21790, 21794, 21798, 21802, 21806, 21810, 21814, 21818, 21822,
+ 21826, 21831, 21835, 21840, 21844, 21849, 21854, 21858, 21863, 21868,
+ 21872, 21877, 21882, 21887, 21892, 21896, 21901, 21906, 21911, 21916,
+ 21921, 21926, 21930, 21935, 21940, 21945, 21950, 21955, 21960, 21965,
+ 21970, 21975, 21980, 21985, 21990, 21995, 22000, 22005, 22010, 22015,
+ 22020, 22025, 22030, 22035, 22040, 22045, 22050, 22055, 22060, 22065,
+ 22070, 22075, 22080, 22085, 22090, 22095, 22100, 22105, 22110, 22115,
+ 22120, 22125, 22130, 22135, 22140, 22145, 22150, 22155, 22160, 22165,
+ 22170, 22175, 22180, 22184, 22188, 22192, 22196, 22200, 22204, 22208,
+ 22212, 22216, 22220, 22224, 22228, 22232, 22236, 22240, 22244, 22248,
+ 22252, 22256, 22260, 22264, 22268, 22272, 22276, 22280, 22284, 22288,
+ 22292, 22296, 22300, 22304, 22308, 22312, 22316, 22320, 22324, 22328,
+ 22332, 22336, 22340, 22344, 22348, 22352, 22356, 22360, 22364, 22368,
+ 22372, 22376, 22380, 22384, 22388, 22392, 22396, 22400, 22404, 22408,
+ 22412, 22416, 22420, 22424, 22428, 22432, 22436, 22440, 22444, 22448,
+ 22452, 22456, 22460, 22464, 22468, 22472, 22476, 22480, 22484, 22488,
+ 22492, 22496, 22500, 22504, 22508, 22512, 22516, 22520, 22524, 22528,
+ 22532, 22535, 22539, 22543, 22547, 22551, 22555, 22559, 22563, 22566,
+ 22570, 22574, 22578, 22582, 22586, 22590, 22594, 22598, 22602, 22606,
+ 22610, 22614, 22618, 22622, 22626, 22629, 22633, 22637, 22641, 22645,
+ 22649, 22653, 22657, 22661, 22665, 22669, 22673, 22677, 22681, 22685,
+ 22689, 22692, 22696, 22700, 22704, 22708, 22712, 22716, 22720, 22723,
+ 22727, 22731, 22735, 22739, 22743, 22747, 22751, 22755, 22759, 22763,
+ 22767, 22771, 22775, 22779, 22783, 22787, 22791, 22795, 22799, 22803,
+ 22807, 22811, 22815, 0, 22819, 22823, 22827, 22831, 0, 0, 22835, 22839,
+ 22843, 22847, 22851, 22855, 22859, 0, 22863, 0, 22867, 22871, 22875,
+ 22879, 0, 0, 22883, 22887, 22891, 22895, 22899, 22903, 22907, 22911,
+ 22915, 22919, 22923, 22927, 22931, 22935, 22939, 22943, 22947, 22950,
+ 22954, 22958, 22962, 22966, 22970, 22973, 22977, 22981, 22985, 22989,
+ 22993, 22997, 23001, 23005, 23009, 23013, 23017, 23021, 23025, 23029,
+ 23033, 23037, 23041, 0, 23045, 23049, 23053, 23057, 0, 0, 23061, 23064,
+ 23068, 23072, 23076, 23080, 23084, 23088, 23092, 23096, 23100, 23104,
+ 23108, 23112, 23116, 23120, 23124, 23129, 23134, 23139, 23145, 23151,
+ 23156, 23161, 23167, 23170, 23174, 23178, 23182, 23186, 23190, 23194,
+ 23198, 0, 23202, 23206, 23210, 23214, 0, 0, 23218, 23222, 23226, 23230,
+ 23234, 23238, 23242, 0, 23246, 0, 23250, 23254, 23258, 23262, 0, 0,
+ 23266, 23270, 23274, 23278, 23282, 23286, 23290, 23294, 23298, 23303,
+ 23308, 23313, 23319, 23325, 23330, 0, 23335, 23339, 23343, 23347, 23351,
+ 23355, 23359, 23363, 23367, 23371, 23375, 23379, 23383, 23387, 23391,
+ 23395, 23399, 23402, 23406, 23410, 23414, 23418, 23422, 23426, 23430,
+ 23434, 23438, 23442, 23446, 23450, 23454, 23458, 23462, 23466, 23470,
+ 23474, 23478, 23482, 23486, 23490, 23494, 23498, 23502, 23506, 23510,
+ 23514, 23518, 23522, 23526, 23530, 23534, 23538, 23542, 23546, 23550,
+ 23554, 23558, 0, 23562, 23566, 23570, 23574, 0, 0, 23578, 23582, 23586,
+ 23590, 23594, 23598, 23602, 23606, 23610, 23614, 23618, 23622, 23626,
+ 23630, 23634, 23638, 23642, 23646, 23650, 23654, 23658, 23662, 23666,
+ 23670, 23674, 23678, 23682, 23686, 23690, 23694, 23698, 23702, 23706,
+ 23710, 23714, 23718, 23722, 23726, 23730, 23734, 23738, 23742, 23746,
+ 23750, 23754, 23758, 23762, 23766, 23770, 23774, 23778, 23782, 23786,
+ 23790, 23794, 23798, 23802, 23805, 23809, 23813, 23817, 23821, 23825,
+ 23829, 23833, 23837, 23841, 0, 0, 23845, 23854, 23860, 23865, 23869,
+ 23872, 23877, 23880, 23883, 23886, 23891, 23895, 23900, 23903, 23906,
+ 23909, 23912, 23915, 23918, 23921, 23924, 23927, 23931, 23935, 23939,
+ 23943, 23947, 23951, 23955, 23959, 23963, 23967, 0, 0, 0, 23972, 23978,
+ 23982, 23986, 23990, 23996, 24000, 24004, 24008, 24014, 24018, 24022,
+ 24026, 24032, 24036, 24040, 24044, 24050, 24056, 24062, 24070, 24076,
+ 24082, 24088, 24094, 24100, 0, 0, 0, 0, 0, 0, 24106, 24109, 24112, 24115,
+ 24118, 24121, 24125, 24129, 24132, 24136, 24140, 24144, 24148, 24152,
+ 24155, 24159, 24163, 24167, 24171, 24175, 24178, 24182, 24186, 24190,
+ 24194, 24198, 24201, 24205, 24209, 24213, 24217, 24220, 24224, 24228,
+ 24232, 24236, 24240, 24244, 24248, 24252, 24256, 24260, 24264, 24268,
+ 24272, 24275, 24279, 24283, 24287, 24291, 24295, 24299, 24303, 24306,
+ 24310, 24314, 24318, 24322, 24326, 24330, 24334, 24338, 24342, 24346,
+ 24350, 24354, 24358, 24362, 24366, 24370, 24374, 24378, 24382, 24386,
+ 24390, 24394, 24398, 24402, 24406, 24410, 24413, 24417, 24421, 24425,
+ 24429, 24433, 0, 0, 24437, 24442, 24447, 24452, 24457, 24462, 0, 0,
+ 24467, 24471, 24474, 24478, 24481, 24485, 24488, 24492, 24498, 24503,
+ 24507, 24510, 24514, 24518, 24524, 24528, 24534, 24538, 24544, 24548,
+ 24554, 24558, 24564, 24570, 24574, 24580, 24584, 24590, 24596, 24600,
+ 24606, 24612, 24617, 24622, 24630, 24638, 24645, 24650, 24656, 24665,
+ 24671, 24679, 24684, 24690, 24694, 24698, 24702, 24706, 24710, 24714,
+ 24718, 24722, 24726, 24730, 24736, 24741, 24746, 24749, 24753, 24757,
+ 24763, 24767, 24773, 24777, 24783, 24787, 24793, 24797, 24803, 24807,
+ 24813, 24817, 24823, 24829, 24833, 24839, 24844, 24848, 24852, 24856,
+ 24860, 24863, 24867, 24873, 24878, 24883, 24886, 24890, 24894, 24900,
+ 24904, 24910, 24914, 24920, 24923, 24928, 24932, 24938, 24942, 24948,
+ 24952, 24958, 24964, 24968, 24972, 24976, 24980, 24984, 24988, 24992,
+ 24996, 25000, 25004, 25008, 25014, 25017, 25021, 25025, 25031, 25035,
+ 25041, 25045, 25051, 25055, 25061, 25065, 25071, 25075, 25081, 25085,
+ 25091, 25097, 25101, 25105, 25111, 25117, 25123, 25129, 25133, 25137,
+ 25141, 25145, 25149, 25153, 25159, 25163, 25167, 25171, 25177, 25181,
+ 25187, 25191, 25197, 25201, 25207, 25211, 25217, 25221, 25227, 25231,
+ 25237, 25243, 25247, 25253, 25257, 25261, 25265, 25269, 25273, 25277,
+ 25283, 25286, 25290, 25294, 25300, 25304, 25310, 25314, 25320, 25324,
+ 25330, 25334, 25340, 25344, 25350, 25354, 25360, 25366, 25370, 25376,
+ 25380, 25386, 25392, 25396, 25400, 25404, 25408, 25412, 25416, 25422,
+ 25425, 25429, 25433, 25439, 25443, 25449, 25453, 25459, 25465, 25469,
+ 25474, 25478, 25482, 25486, 25490, 25494, 25498, 25502, 25508, 25511,
+ 25515, 25519, 25525, 25529, 25535, 25539, 25545, 25549, 25555, 25559,
+ 25565, 25569, 25575, 25579, 25585, 25588, 25593, 25598, 25602, 25606,
+ 25610, 25614, 25618, 25622, 25628, 25631, 25635, 25639, 25645, 25649,
+ 25655, 25659, 25665, 25669, 25675, 25679, 25685, 25689, 25695, 25699,
+ 25705, 25711, 25715, 25721, 25725, 25731, 25737, 25743, 25749, 25755,
+ 25761, 25767, 25773, 25777, 25781, 25785, 25789, 25793, 25797, 25801,
+ 25805, 25811, 25815, 25821, 25825, 25831, 25835, 25841, 25845, 25851,
+ 25855, 25861, 25865, 25871, 25875, 25879, 25883, 25887, 25891, 25895,
+ 25899, 25905, 25908, 25912, 25916, 25922, 25926, 25932, 25936, 25942,
+ 25946, 25952, 25956, 25962, 25966, 25972, 25976, 25982, 25988, 25992,
+ 25998, 26004, 26010, 26014, 26020, 26026, 26030, 26034, 26038, 26042,
+ 26046, 26052, 26055, 26059, 26064, 26068, 26074, 26077, 26082, 26087,
+ 26091, 26095, 26099, 26103, 26107, 26111, 26115, 26119, 26123, 26129,
+ 26133, 26137, 26143, 26147, 26153, 26157, 26163, 26167, 26171, 26175,
+ 26179, 26183, 26189, 26193, 26197, 26201, 26205, 26209, 26213, 26217,
+ 26221, 26225, 26229, 26235, 26241, 26247, 26253, 26259, 26264, 26270,
+ 26276, 26282, 26286, 26290, 26294, 26298, 26302, 26306, 26310, 26314,
+ 26318, 26322, 26326, 26330, 26334, 26340, 26346, 26352, 26357, 26361,
+ 26365, 26369, 26373, 26377, 26381, 26385, 26389, 26393, 26399, 26405,
+ 26411, 26417, 26423, 26429, 26435, 26441, 26447, 26451, 26455, 26459,
+ 26463, 26467, 26471, 26475, 26481, 26487, 26493, 26499, 26505, 26511,
+ 26517, 26523, 26529, 26534, 26539, 26544, 26549, 26555, 26561, 26567,
+ 26573, 26579, 26585, 26591, 26596, 26602, 26608, 26614, 26619, 26625,
+ 26631, 26637, 26642, 26647, 26652, 26657, 26662, 26667, 26672, 26677,
+ 26682, 26687, 26692, 26697, 26701, 26706, 26711, 26716, 26721, 26726,
+ 26731, 26736, 26741, 26746, 26751, 26756, 26761, 26766, 26771, 26776,
+ 26781, 26786, 26791, 26796, 26801, 26806, 26811, 26816, 26821, 26826,
+ 26831, 26836, 26841, 26846, 26850, 26855, 26860, 26865, 26870, 26875,
+ 26880, 26885, 26890, 26895, 26900, 26905, 26910, 26915, 26920, 26925,
+ 26930, 26935, 26940, 26945, 26950, 26955, 26960, 26965, 26970, 26975,
+ 26979, 26984, 26989, 26994, 26999, 27004, 27008, 27013, 27018, 27023,
+ 27028, 27033, 27037, 27042, 27048, 27053, 27058, 27063, 27068, 27074,
+ 27079, 27084, 27089, 27094, 27099, 27104, 27109, 27114, 27119, 27124,
+ 27129, 27134, 27138, 27143, 27148, 27153, 27158, 27163, 27168, 27173,
+ 27178, 27183, 27188, 27193, 27198, 27203, 27208, 27213, 27218, 27223,
+ 27228, 27233, 27238, 27243, 27248, 27253, 27258, 27263, 27268, 27273,
+ 27278, 27283, 27288, 27293, 27299, 27304, 27309, 27314, 27319, 27324,
+ 27329, 27334, 27339, 27344, 27349, 27354, 27358, 27363, 27368, 27373,
+ 27378, 27383, 27388, 27393, 27398, 27403, 27408, 27413, 27418, 27423,
+ 27428, 27433, 27438, 27443, 27448, 27453, 27458, 27463, 27468, 27473,
+ 27478, 27483, 27488, 27494, 27498, 27502, 27506, 27510, 27514, 27518,
+ 27522, 27526, 27532, 27538, 27544, 27550, 27556, 27562, 27568, 27575,
+ 27581, 27586, 27591, 27596, 27601, 27606, 27611, 27616, 27621, 27626,
+ 27631, 27636, 27641, 27646, 27651, 27656, 27661, 27666, 27671, 27676,
+ 27681, 27686, 27691, 27696, 27701, 27706, 27711, 27716, 27721, 0, 0, 0,
+ 27728, 27739, 27744, 27752, 27757, 27762, 27767, 27776, 27781, 27787,
+ 27793, 27799, 27804, 27810, 27816, 27820, 27825, 27830, 27840, 27845,
+ 27850, 27857, 27862, 27867, 27876, 27881, 27890, 27897, 27904, 27911,
+ 27918, 27929, 27936, 27941, 27951, 27955, 27962, 27967, 27974, 27980,
+ 27987, 27996, 28003, 28010, 28019, 28026, 28031, 28036, 28047, 28054,
+ 28059, 28070, 28077, 28082, 28087, 28095, 28104, 28111, 28118, 28128,
+ 28133, 28138, 28143, 28152, 28160, 28165, 28170, 28175, 28180, 28185,
+ 28190, 28195, 28200, 28205, 28210, 28215, 28221, 28227, 28233, 28238,
+ 28243, 28248, 28253, 28258, 28263, 28272, 28281, 28290, 28299, 0, 0, 0,
+ 0, 0, 0, 0, 28308, 28312, 28316, 28320, 28324, 28329, 28334, 28338,
+ 28343, 28347, 28351, 28356, 28360, 0, 28364, 28368, 28373, 28377, 28381,
+ 28386, 28391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28396, 28400, 28404,
+ 28408, 28412, 28417, 28422, 28426, 28431, 28435, 28439, 28444, 28448,
+ 28452, 28456, 28460, 28465, 28469, 28473, 28478, 28483, 28488, 28494, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 28499, 28503, 28507, 28511, 28515, 28520, 28525,
+ 28529, 28534, 28538, 28542, 28547, 28551, 28555, 28559, 28563, 28568,
+ 28572, 28576, 28581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28586, 28590,
+ 28594, 28598, 28602, 28607, 28612, 28616, 28621, 28625, 28629, 28634,
+ 28638, 0, 28642, 28646, 28651, 0, 28655, 28660, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 28665, 28668, 28672, 28676, 28680, 28684, 28688, 28692,
+ 28696, 28700, 28704, 28708, 28712, 28716, 28720, 28724, 28727, 28731,
+ 28734, 28738, 28742, 28746, 28750, 28754, 28758, 28762, 28766, 28770,
+ 28774, 28778, 28782, 28786, 28789, 28792, 28795, 28799, 28805, 28811,
+ 28817, 28823, 28829, 28835, 28841, 28847, 28853, 28859, 28865, 28871,
+ 28877, 28883, 28892, 28901, 28907, 28913, 28919, 28924, 28928, 28933,
+ 28938, 28943, 28947, 28952, 28957, 28962, 28966, 28971, 28975, 28980,
+ 28985, 28990, 28995, 28999, 29003, 29007, 29011, 29015, 29019, 29023,
+ 29027, 29031, 29035, 29041, 29045, 29049, 29053, 29057, 29061, 29069,
+ 29075, 29079, 29085, 29089, 29095, 29099, 0, 0, 29103, 29107, 29110,
+ 29113, 29116, 29119, 29122, 29125, 29128, 29131, 0, 0, 0, 0, 0, 0, 29134,
+ 29142, 29150, 29158, 29166, 29174, 29182, 29190, 29198, 29206, 0, 0, 0,
+ 0, 0, 0, 29214, 29217, 29220, 29223, 29228, 29231, 29236, 29243, 29251,
+ 29256, 29263, 29266, 29273, 29280, 29287, 0, 29291, 29295, 29298, 29301,
+ 29304, 29307, 29310, 29313, 29316, 29319, 0, 0, 0, 0, 0, 0, 29322, 29325,
+ 29328, 29331, 29334, 29337, 29341, 29345, 29349, 29352, 29356, 29360,
+ 29363, 29367, 29371, 29374, 29377, 29380, 29384, 29387, 29391, 29395,
+ 29399, 29402, 29405, 29409, 29413, 29416, 29420, 29424, 29428, 29432,
+ 29436, 29440, 29444, 29448, 29455, 29460, 29465, 29470, 29475, 29481,
+ 29487, 29493, 29499, 29504, 29510, 29516, 29521, 29526, 29532, 29538,
+ 29544, 29550, 29555, 29561, 29566, 29572, 29578, 29584, 29590, 29596,
+ 29601, 29606, 29612, 29618, 29623, 29629, 29634, 29640, 29645, 29650,
+ 29656, 29661, 29667, 29673, 29679, 29685, 29691, 29697, 29703, 29709,
+ 29715, 29721, 29726, 29731, 29736, 29742, 29748, 0, 0, 0, 0, 0, 0, 0,
+ 29756, 29765, 29774, 29782, 29790, 29800, 29808, 29817, 29824, 29831,
+ 29838, 29846, 29854, 29862, 29870, 29878, 29886, 29893, 29901, 29908,
+ 29916, 29924, 29932, 29940, 29948, 29957, 29967, 29977, 29987, 29997,
+ 30007, 30017, 30027, 30036, 30046, 30056, 30066, 30076, 30086, 30094,
+ 30102, 30112, 30120, 0, 0, 0, 0, 0, 30130, 30134, 30138, 30142, 30146,
+ 30150, 30154, 30158, 30162, 30166, 30170, 30174, 30178, 30182, 30186,
+ 30190, 30194, 30198, 30202, 30206, 30210, 30214, 30218, 30222, 30228,
+ 30232, 30238, 30242, 30248, 30252, 30258, 30262, 30266, 30270, 30274,
+ 30278, 30282, 30288, 30294, 30300, 30306, 30312, 30318, 30324, 30330,
+ 30336, 30342, 30348, 30355, 30361, 30367, 30373, 30377, 30381, 30385,
+ 30389, 30393, 30397, 30401, 30407, 30413, 30419, 30424, 30431, 30436,
+ 30441, 30447, 30452, 30459, 30466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30473,
+ 30479, 30483, 30488, 30493, 30498, 30503, 30508, 30513, 30518, 30523,
+ 30528, 30532, 30537, 30542, 30547, 30551, 30555, 30560, 30565, 30570,
+ 30574, 30578, 30582, 30586, 30591, 30596, 30601, 30605, 30609, 30614, 0,
+ 30619, 30624, 30629, 30634, 30640, 30646, 30652, 30658, 30663, 30668,
+ 30674, 30680, 0, 0, 0, 0, 30687, 30692, 30698, 30704, 30709, 30714,
+ 30719, 30724, 30729, 30734, 30739, 30744, 0, 0, 0, 0, 30749, 0, 0, 0,
+ 30754, 30759, 30764, 30769, 30773, 30777, 30781, 30785, 30789, 30793,
+ 30797, 30801, 30805, 30810, 30816, 30822, 30828, 30833, 30838, 30843,
+ 30849, 30854, 30859, 30865, 30870, 30876, 30882, 30887, 30893, 30899,
+ 30905, 30910, 30915, 30920, 30926, 30932, 30937, 30943, 30948, 30954,
+ 30959, 30965, 0, 0, 30971, 30977, 30983, 30989, 30995, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31001, 31010, 31019, 31027, 31036, 31045, 31053, 31062,
+ 31071, 31080, 31088, 31096, 31105, 31113, 31121, 31129, 31138, 31146,
+ 31154, 31163, 31171, 31179, 31188, 31196, 31204, 31213, 31221, 31230,
+ 31239, 31247, 31256, 31265, 31273, 31281, 31290, 31299, 31307, 31316,
+ 31325, 31334, 31343, 31352, 31361, 31370, 0, 0, 0, 0, 31379, 31389,
+ 31398, 31407, 31415, 31424, 31432, 31441, 31449, 31458, 31467, 31476,
+ 31485, 31494, 31503, 31512, 31521, 31530, 31539, 31548, 31557, 31566,
+ 31575, 31584, 31593, 31601, 0, 0, 0, 0, 0, 0, 31609, 31617, 31624, 31631,
+ 31638, 31645, 31652, 31659, 31666, 31673, 31680, 0, 0, 0, 31688, 31696,
+ 31704, 31708, 31714, 31720, 31726, 31732, 31738, 31744, 31750, 31756,
+ 31762, 31768, 31774, 31780, 31786, 31792, 31798, 31802, 31808, 31814,
+ 31820, 31826, 31832, 31838, 31844, 31850, 31856, 31862, 31868, 31874,
+ 31880, 31886, 31892, 31896, 31901, 31906, 31911, 31915, 31920, 31924,
+ 31929, 31933, 31938, 31942, 31947, 31952, 31957, 31962, 31967, 31971,
+ 31975, 31979, 31984, 31988, 31992, 31996, 32001, 32006, 32011, 32016, 0,
+ 0, 32022, 32026, 32033, 32038, 32044, 32050, 32055, 32061, 32067, 32072,
+ 32078, 32084, 32090, 32095, 32101, 32106, 32111, 32117, 32122, 32128,
+ 32133, 32138, 32144, 32149, 32155, 32159, 32164, 32169, 32175, 32181,
+ 32186, 32192, 32198, 32202, 32207, 32212, 32216, 32221, 32225, 32230,
+ 32235, 32241, 32247, 32252, 32257, 32262, 32266, 32271, 32275, 32280,
+ 32284, 32289, 32294, 32299, 32304, 32310, 32317, 32324, 32334, 32343,
+ 32350, 32356, 32367, 32372, 32378, 0, 32383, 32388, 32393, 32401, 32407,
+ 32415, 32420, 32426, 32432, 32438, 32443, 32449, 32454, 32461, 32467,
+ 32472, 32478, 32484, 32490, 32497, 32504, 32511, 32516, 32521, 32528,
+ 32535, 32542, 32549, 32556, 0, 0, 32563, 32570, 32577, 32583, 32589,
+ 32595, 32601, 32607, 32613, 32619, 32625, 0, 0, 0, 0, 0, 0, 32631, 32637,
+ 32642, 32647, 32652, 32657, 32662, 32667, 32672, 32677, 0, 0, 0, 0, 0, 0,
+ 32682, 32687, 32692, 32697, 32702, 32707, 32712, 32721, 32728, 32733,
+ 32738, 32743, 32748, 32753, 0, 0, 32758, 32765, 32768, 32771, 32775,
+ 32780, 32784, 32790, 32795, 32801, 32808, 32816, 32820, 32825, 32829,
+ 32834, 32841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32849, 32855,
- 32861, 32865, 32869, 32873, 32877, 32883, 32887, 32893, 32897, 32903,
- 32909, 32917, 32923, 32931, 32935, 32939, 32943, 32949, 32952, 32958,
- 32962, 32968, 32972, 32976, 32982, 32986, 32992, 32996, 33002, 33010,
- 33018, 33026, 33032, 33035, 33041, 33045, 33051, 33054, 33057, 33063,
- 33067, 33073, 33076, 33079, 33082, 33085, 33089, 33095, 33101, 33104,
- 33107, 33111, 33116, 33121, 33128, 33133, 33140, 33147, 33156, 33163,
- 33172, 33177, 33184, 33191, 33200, 33205, 33212, 33217, 33223, 33229,
- 33235, 33241, 33247, 33253, 0, 0, 0, 0, 33259, 33263, 33266, 33269,
- 33272, 33275, 33278, 33281, 33284, 33287, 33290, 33293, 33296, 33299,
- 33304, 33309, 33314, 33317, 33322, 33327, 33332, 33337, 33344, 33349,
- 33354, 33359, 33364, 33371, 33377, 33383, 33389, 33395, 33401, 33410,
- 33419, 33425, 33431, 33440, 33449, 33458, 33467, 33476, 33485, 33494,
- 33503, 0, 0, 0, 33512, 33517, 33522, 33527, 33531, 33535, 33539, 33544,
- 33548, 33552, 33557, 33561, 33566, 33571, 33576, 33581, 33586, 33591,
- 33596, 33600, 33605, 33609, 33613, 33618, 33623, 33628, 33632, 33636,
- 33640, 33644, 33649, 33653, 33658, 33662, 33668, 33674, 33680, 33686,
- 33692, 33698, 33704, 33710, 33716, 33721, 33726, 33733, 33741, 33746,
- 33751, 33756, 33760, 33764, 33768, 33772, 33776, 33780, 33784, 33788,
- 33792, 33796, 33801, 33806, 33811, 33817, 33823, 33827, 33833, 33837,
- 33843, 33849, 33854, 33861, 33865, 33871, 33875, 33881, 33886, 33893,
- 33900, 33905, 33912, 33917, 33922, 33926, 33932, 33936, 33942, 33948,
- 33954, 33958, 33964, 33970, 33974, 33980, 33985, 33989, 33995, 34000,
- 34005, 34010, 34015, 34019, 34023, 34028, 34033, 34040, 34046, 34051,
- 34058, 34063, 34070, 34075, 34084, 34090, 34096, 34100, 0, 0, 0, 0, 0, 0,
- 0, 0, 34104, 34113, 34120, 34127, 34134, 34138, 34143, 34148, 34153,
- 34158, 34163, 34168, 34173, 34178, 34183, 34187, 34192, 34197, 34201,
- 34205, 34210, 34215, 34220, 34225, 34230, 34235, 34239, 34244, 34249,
- 34254, 34259, 34263, 34267, 34271, 34275, 34280, 34285, 34289, 34294,
- 34299, 34303, 34309, 34315, 34321, 34326, 34331, 34337, 34342, 34348,
- 34353, 34359, 34365, 34370, 34376, 34382, 34387, 34393, 34399, 34405,
- 34410, 0, 0, 0, 34415, 34421, 34431, 34437, 34445, 34451, 34456, 34460,
- 34464, 34468, 34472, 34476, 34480, 34484, 34488, 0, 0, 0, 34492, 34497,
- 34502, 34507, 34514, 34520, 34526, 34532, 34538, 34544, 34550, 34556,
- 34562, 34568, 34574, 34581, 34588, 34595, 34602, 34609, 34616, 34623,
- 34630, 34637, 34644, 34651, 34658, 34665, 34672, 34679, 34686, 34693,
- 34700, 34707, 34714, 34721, 34728, 34735, 34742, 34749, 34756, 34763,
- 34770, 34777, 34785, 34793, 34801, 34807, 34813, 34819, 34827, 34836,
- 34843, 34850, 34856, 34863, 34870, 34877, 34885, 34892, 0, 0, 0, 0, 0, 0,
- 0, 34899, 34906, 34913, 34920, 34927, 34934, 34941, 34948, 34955, 34962,
- 34969, 34976, 34983, 34990, 34997, 35004, 35011, 35018, 35025, 35032,
- 35039, 35046, 35053, 35060, 35067, 35074, 35081, 35088, 35095, 35102,
- 35109, 35116, 35123, 35130, 35137, 35144, 35151, 35158, 35165, 35172,
- 35179, 35186, 35194, 0, 0, 35201, 35208, 35216, 35224, 35232, 35240,
- 35248, 35256, 35266, 35276, 35286, 0, 0, 0, 0, 0, 0, 0, 0, 35296, 35301,
- 35306, 35311, 35316, 35325, 35336, 35345, 35356, 35362, 35375, 35381,
- 35388, 35395, 35400, 35407, 35414, 35425, 35434, 35441, 35448, 35457,
- 35464, 35473, 35483, 35493, 35500, 35507, 35514, 35524, 35529, 35537,
- 35543, 35551, 35560, 35565, 35572, 35578, 35583, 35588, 35593, 35599,
- 35606, 0, 0, 0, 0, 0, 35614, 35619, 35625, 35631, 35639, 35645, 35651,
- 35657, 35662, 35669, 35674, 35680, 35686, 35694, 35700, 35708, 35713,
- 35720, 35726, 35734, 35742, 35748, 35754, 35761, 35768, 35774, 35781,
- 35787, 35793, 35798, 35804, 35812, 35820, 35826, 35832, 35838, 35844,
- 35852, 35856, 35862, 35868, 35874, 35880, 35886, 35892, 35896, 35901,
- 35906, 35913, 35918, 35922, 35928, 35933, 35938, 35942, 35947, 35952,
- 35956, 35961, 35966, 35973, 35977, 35982, 35987, 35991, 35996, 36000,
- 36005, 36009, 36014, 36019, 36025, 36030, 36035, 36039, 36044, 36050,
- 36057, 36062, 36067, 36072, 36077, 36082, 36086, 36092, 36099, 36106,
- 36111, 36116, 36120, 36126, 36132, 36137, 36142, 36147, 36153, 36158,
- 36164, 36169, 36175, 36181, 36187, 36194, 36201, 36208, 36215, 36222,
- 36229, 36234, 36242, 36251, 36260, 36269, 36278, 36287, 36296, 36308,
- 36317, 36326, 36335, 36341, 36346, 36353, 36361, 36369, 36376, 36383,
- 36390, 36397, 36405, 36414, 36423, 36432, 36441, 36450, 36459, 36468,
- 36477, 36486, 36495, 36504, 36513, 36522, 36531, 36539, 36548, 36559,
- 36568, 36579, 36592, 36601, 36610, 36620, 36629, 36637, 36646, 36652,
- 36657, 36665, 36670, 36678, 36683, 36692, 36698, 36704, 36711, 36716,
- 36721, 36729, 36737, 36746, 36755, 36760, 36767, 36777, 36785, 36794,
- 36800, 36806, 36811, 36818, 36823, 36832, 36837, 36842, 36847, 36854,
- 36860, 36865, 36874, 36882, 36887, 36892, 36899, 36906, 36910, 36914,
- 36917, 36920, 36923, 36926, 36929, 36932, 36939, 36942, 36945, 36950,
- 36954, 36958, 36962, 36966, 36970, 36980, 36986, 36992, 36998, 37006,
- 37014, 37020, 37026, 37033, 37039, 37044, 37050, 37057, 37063, 37070,
- 37076, 37084, 37090, 37097, 37103, 37109, 37115, 37121, 37127, 37133,
- 37144, 37154, 37160, 37166, 37176, 37182, 37190, 37198, 37206, 37211,
- 37217, 37223, 37228, 0, 37236, 37240, 37247, 37253, 37258, 37267, 37275,
- 37283, 37290, 37297, 37304, 37311, 37319, 37327, 37338, 37349, 37357,
- 37365, 37373, 37381, 37390, 37399, 37407, 37415, 37424, 37433, 37444,
- 37455, 37466, 37477, 37486, 37495, 37504, 37513, 37524, 37535, 37543,
- 37551, 37559, 37567, 37575, 37583, 37591, 37599, 37607, 37615, 37623,
- 37631, 37640, 37649, 37658, 37667, 37678, 37689, 37697, 37705, 37713,
- 37721, 37730, 37739, 37747, 37755, 37767, 37779, 37788, 37797, 37806,
- 37815, 37823, 37831, 37839, 37847, 37855, 37863, 37871, 37879, 37887,
- 37895, 37904, 37913, 37922, 37931, 37941, 37951, 37961, 37971, 37981,
- 37991, 38001, 38011, 38019, 38027, 38035, 38043, 38051, 38059, 38067,
- 38075, 38087, 38099, 38108, 38117, 38125, 38133, 38141, 38149, 38160,
- 38171, 38182, 38193, 38205, 38217, 38225, 38233, 38241, 38249, 38258,
- 38267, 38276, 38285, 38293, 38301, 38309, 38317, 38325, 38333, 38343,
- 38353, 38363, 38373, 38381, 38389, 38397, 38405, 38413, 38421, 38429,
- 38437, 38445, 38453, 38461, 38469, 38477, 38485, 38493, 38501, 38509,
- 38517, 38525, 38533, 38541, 38549, 38557, 38565, 38574, 38583, 38592,
- 38600, 38609, 38618, 38627, 38636, 38646, 38655, 38662, 38667, 38674,
- 38681, 38689, 38697, 38707, 38717, 38727, 38737, 38748, 38759, 38769,
- 38779, 38789, 38799, 38809, 38819, 38829, 38839, 38850, 38861, 38871,
- 38881, 38891, 38901, 38909, 38917, 38926, 38935, 38943, 38951, 38962,
- 38973, 38984, 38995, 39007, 39019, 39030, 39041, 39052, 39063, 39072,
- 39081, 39089, 39097, 39104, 39111, 39119, 39127, 39137, 39147, 39157,
- 39167, 39178, 39189, 39199, 39209, 39219, 39229, 39239, 39249, 39259,
- 39269, 39280, 39291, 39301, 39311, 39321, 39331, 39338, 39345, 39353,
- 39361, 39371, 39381, 39391, 39401, 39412, 39423, 39433, 39443, 39453,
- 39463, 39471, 39479, 39487, 39495, 39504, 39513, 39521, 39529, 39536,
- 39543, 39550, 39557, 39565, 39573, 39581, 39589, 39600, 39611, 39622,
- 39633, 39644, 39655, 39663, 39671, 39682, 39693, 39704, 39715, 39726,
- 39737, 39745, 39753, 39764, 39775, 39786, 0, 0, 39797, 39805, 39813,
- 39824, 39835, 39846, 0, 0, 39857, 39865, 39873, 39884, 39895, 39906,
- 39917, 39928, 39939, 39947, 39955, 39966, 39977, 39988, 39999, 40010,
- 40021, 40029, 40037, 40048, 40059, 40070, 40081, 40092, 40103, 40111,
- 40119, 40130, 40141, 40152, 40163, 40174, 40185, 40193, 40201, 40212,
- 40223, 40234, 0, 0, 40245, 40253, 40261, 40272, 40283, 40294, 0, 0,
- 40305, 40313, 40321, 40332, 40343, 40354, 40365, 40376, 0, 40387, 0,
- 40395, 0, 40406, 0, 40417, 40428, 40436, 40444, 40455, 40466, 40477,
- 40488, 40499, 40510, 40518, 40526, 40537, 40548, 40559, 40570, 40581,
- 40592, 40600, 40608, 40616, 40624, 40632, 40640, 40648, 40656, 40664,
- 40672, 40680, 40688, 40696, 0, 0, 40704, 40715, 40726, 40740, 40754,
- 40768, 40782, 40796, 40810, 40821, 40832, 40846, 40860, 40874, 40888,
- 40902, 40916, 40927, 40938, 40952, 40966, 40980, 40994, 41008, 41022,
- 41033, 41044, 41058, 41072, 41086, 41100, 41114, 41128, 41139, 41150,
- 41164, 41178, 41192, 41206, 41220, 41234, 41245, 41256, 41270, 41284,
- 41298, 41312, 41326, 41340, 41348, 41356, 41367, 41375, 0, 41386, 41394,
- 41405, 41413, 41421, 41429, 41437, 41445, 41448, 41451, 41454, 41457,
- 41463, 41474, 41482, 0, 41493, 41501, 41512, 41520, 41528, 41536, 41544,
- 41552, 41558, 41564, 41570, 41578, 41586, 41597, 0, 0, 41608, 41616,
- 41627, 41635, 41643, 41651, 0, 41659, 41665, 41671, 41677, 41685, 41693,
- 41704, 41715, 41723, 41731, 41739, 41750, 41758, 41766, 41774, 41782,
- 41790, 41796, 41802, 0, 0, 41805, 41816, 41824, 0, 41835, 41843, 41854,
- 41862, 41870, 41878, 41886, 41894, 41897, 0, 41900, 41904, 41908, 41912,
- 41916, 41920, 41924, 41928, 41932, 41936, 41940, 41944, 41950, 41956,
- 41962, 41965, 41968, 41970, 41974, 41978, 41982, 41986, 41989, 41993,
- 41997, 42003, 42009, 42016, 42023, 42028, 42033, 42039, 42045, 42047,
- 42050, 42052, 42056, 42060, 42064, 42068, 42072, 42076, 42080, 42084,
- 42088, 42094, 42098, 42102, 42108, 42113, 42120, 42122, 42125, 42129,
- 42133, 42138, 42144, 42146, 42155, 42164, 42167, 42171, 42173, 42175,
- 42177, 42181, 42187, 42189, 42193, 42197, 42204, 42211, 42215, 42220,
- 42225, 42230, 42235, 42239, 42243, 42246, 42250, 42254, 42261, 42266,
- 42270, 42274, 42279, 42283, 42287, 42292, 42297, 42301, 42305, 42309,
- 42311, 42316, 42321, 42325, 42329, 42333, 42337, 0, 42341, 42345, 42349,
- 42355, 42361, 42367, 42373, 42380, 42387, 42392, 42397, 42401, 0, 0,
- 42407, 42410, 42413, 42416, 42419, 42422, 42425, 42429, 42433, 42438,
- 42443, 42448, 42455, 42459, 42462, 42465, 42468, 42471, 42474, 42477,
- 42480, 42483, 42486, 42490, 42494, 42499, 42504, 0, 42509, 42515, 42521,
- 42527, 42534, 42541, 42548, 42555, 42561, 42568, 42575, 42582, 42589, 0,
- 0, 0, 42596, 42599, 42602, 42605, 42610, 42613, 42616, 42619, 42622,
- 42625, 42628, 42633, 42636, 42639, 42642, 42645, 42648, 42653, 42656,
- 42659, 42662, 42665, 42668, 42673, 42676, 42679, 42684, 42689, 42693,
- 42696, 42699, 42702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 42705, 42710, 42715, 42722, 42730, 42735, 42740, 42744, 42748, 42753,
- 42760, 42767, 42772, 42778, 42783, 42788, 42793, 42800, 42805, 42810,
- 42815, 42824, 42831, 42838, 42842, 42847, 42853, 42858, 42865, 42873,
- 42881, 42885, 42889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42893,
- 42897, 42904, 42909, 42913, 42918, 42922, 42926, 42930, 42932, 42936,
- 42940, 42944, 42949, 42954, 42958, 42966, 42969, 42973, 42976, 42979,
- 42985, 42990, 42993, 42999, 43003, 43008, 43013, 43016, 43020, 43024,
- 43028, 43030, 43033, 43036, 43040, 43042, 43047, 43050, 43053, 43058,
- 43063, 43069, 43072, 43075, 43079, 43084, 43087, 43090, 43093, 43097,
- 43101, 43105, 43108, 43110, 43113, 43116, 43119, 43123, 43128, 43131,
- 43136, 43141, 43146, 43151, 43157, 43162, 43166, 43171, 43176, 43182,
- 43188, 43193, 43198, 43204, 43208, 43211, 43214, 43216, 43220, 43226,
- 43233, 43240, 43247, 43254, 43261, 43268, 43275, 43282, 43290, 43297,
- 43305, 43312, 43319, 43327, 43335, 43340, 43345, 43350, 43355, 43360,
- 43365, 43370, 43375, 43380, 43385, 43391, 43397, 43403, 43409, 43416,
- 43424, 43430, 43436, 43442, 43448, 43454, 43460, 43466, 43472, 43478,
- 43484, 43491, 43498, 43505, 43512, 43520, 43529, 43536, 43547, 43554,
- 43561, 43570, 43577, 43586, 43595, 43602, 43610, 43618, 43621, 0, 0, 0,
- 0, 43624, 43626, 43629, 43631, 43634, 43637, 43640, 43644, 43648, 43653,
- 43658, 43662, 43666, 43670, 43674, 43679, 43685, 43690, 43696, 43701,
- 43706, 43711, 43717, 43722, 43728, 43734, 43738, 43742, 43747, 43752,
- 43757, 43762, 43767, 43775, 43783, 43791, 43799, 43806, 43814, 43821,
- 43828, 43835, 43845, 43852, 43859, 43866, 43873, 43881, 43889, 43896,
- 43903, 43911, 43919, 43924, 43932, 43937, 43942, 43948, 43953, 43959,
- 43966, 43973, 43978, 43984, 43989, 43992, 43996, 43999, 44003, 44007,
- 44011, 44016, 44021, 44027, 44033, 44037, 44041, 44045, 44049, 44055,
- 44061, 44065, 44070, 44074, 44079, 44083, 44087, 44090, 44094, 44097,
- 44101, 44108, 44116, 44128, 44139, 44144, 44153, 44160, 44167, 44175,
- 44179, 44185, 44193, 44197, 44202, 44207, 44213, 44219, 44225, 44232,
- 44236, 44240, 44245, 44248, 44250, 44254, 44258, 44266, 44270, 44272,
- 44274, 44278, 44286, 44291, 44297, 44307, 44314, 44319, 44323, 44327,
- 44331, 44334, 44337, 44340, 44344, 44348, 44352, 44356, 44360, 44363,
- 44367, 44371, 44374, 44376, 44379, 44381, 44385, 44389, 44391, 44397,
- 44400, 44405, 44409, 44413, 44415, 44417, 44419, 44422, 44426, 44430,
- 44434, 44438, 44442, 44448, 44454, 44456, 44458, 44460, 44462, 44465,
- 44467, 44471, 44473, 44477, 44481, 44487, 44491, 44495, 44499, 44503,
- 44507, 44513, 44517, 44527, 44537, 44541, 44547, 44554, 44558, 44562,
- 44565, 44570, 44574, 44580, 44584, 44596, 44605, 44609, 44613, 44619,
- 44623, 44626, 44628, 44631, 44635, 44639, 44645, 44649, 44653, 44657,
- 44660, 44665, 44670, 44676, 44682, 44687, 44692, 44700, 44708, 44712,
- 44716, 44718, 44723, 44727, 44731, 44739, 44747, 44754, 44761, 44770,
- 44779, 44785, 44791, 44799, 44807, 44809, 44811, 44817, 44823, 44830,
- 44837, 44843, 44849, 44853, 44857, 44864, 44871, 44878, 44885, 44895,
- 44905, 44913, 44921, 44923, 44927, 44931, 44936, 44941, 44949, 44957,
- 44960, 44963, 44966, 44969, 44972, 44977, 44981, 44986, 44991, 44994,
- 44997, 45000, 45003, 45006, 45010, 45013, 45016, 45019, 45022, 45024,
- 45026, 45028, 45030, 45038, 45046, 45052, 45056, 45062, 45072, 45078,
- 45084, 45090, 45098, 45107, 45119, 45123, 45127, 45129, 45135, 45137,
- 45139, 45141, 45143, 45149, 45152, 45158, 45164, 45168, 45172, 45176,
- 45179, 45183, 45187, 45189, 45198, 45207, 45212, 45217, 45223, 45229,
- 45235, 45238, 45241, 45244, 45247, 45249, 45254, 45259, 45264, 45270,
- 45276, 45284, 45292, 45298, 45304, 45310, 45316, 45326, 45336, 45346,
- 45356, 45366, 45376, 45385, 45394, 45403, 45412, 45420, 45432, 45443,
- 45459, 45462, 45468, 45474, 45480, 45488, 45503, 45519, 45525, 45531,
- 45538, 45544, 45553, 45560, 45574, 45589, 45594, 45600, 45608, 45611,
- 45614, 45616, 45619, 45622, 45624, 45626, 45630, 45633, 45636, 45639,
- 45642, 45647, 45652, 45657, 45662, 45667, 45670, 45672, 45674, 45676,
- 45680, 45684, 45688, 45694, 45698, 45700, 45702, 45707, 45712, 45717,
- 45722, 45727, 45732, 45734, 45736, 45746, 45750, 45757, 45766, 45768,
- 45773, 45778, 45785, 45789, 45791, 45795, 45797, 45801, 45805, 45809,
- 45811, 45813, 45815, 45822, 45831, 45840, 45849, 45858, 45867, 45876,
- 45885, 45894, 45902, 45910, 45919, 45928, 45937, 45946, 45954, 45962,
- 45971, 45980, 45989, 45999, 46008, 46018, 46027, 46037, 46046, 46056,
- 46066, 46075, 46085, 46094, 46104, 46113, 46123, 46132, 46141, 46150,
- 46159, 46168, 46178, 46187, 46196, 46205, 46215, 46224, 46233, 46242,
- 46251, 46261, 46271, 46280, 46289, 46297, 46306, 46313, 46322, 46331,
- 46342, 46351, 46361, 46371, 46378, 46385, 46392, 46401, 46410, 46419,
- 46428, 46435, 46440, 46449, 46455, 46458, 46465, 46468, 46473, 46478,
- 46481, 46484, 46492, 46495, 46500, 46503, 46511, 46516, 46524, 46527,
- 46530, 46533, 46538, 46543, 46546, 46549, 46557, 46560, 46567, 46574,
- 46578, 46582, 46587, 46592, 46597, 46602, 46607, 46612, 46617, 46622,
- 46629, 46635, 46642, 46649, 46655, 46662, 46669, 46677, 46684, 46690,
- 46697, 46705, 46712, 46716, 46722, 46734, 46746, 46750, 46754, 46758,
- 46762, 46772, 46776, 46781, 46786, 46792, 46798, 46804, 46810, 46820,
- 46830, 46838, 46849, 46860, 46868, 46879, 46890, 46898, 46909, 46920,
- 46928, 46936, 46946, 46956, 46959, 46962, 46965, 46970, 46974, 46980,
- 46987, 46994, 47002, 47009, 47013, 47017, 47021, 47025, 47027, 47031,
- 47035, 47040, 47045, 47052, 47059, 47062, 47069, 47071, 47073, 47077,
- 47081, 47086, 47092, 47098, 47104, 47110, 47119, 47128, 47137, 47141,
- 47143, 47147, 47154, 47161, 47168, 47175, 47182, 47185, 47190, 47196,
- 47199, 47204, 47209, 47214, 47219, 47223, 47230, 47237, 47244, 47251,
- 47255, 47259, 47263, 47267, 47273, 47279, 47284, 47290, 47296, 47302,
- 47308, 47316, 47323, 47330, 47337, 47344, 47350, 47356, 47365, 47369,
- 47376, 47380, 47384, 47390, 47396, 47402, 47408, 47412, 47416, 47419,
- 47423, 47427, 47434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47441, 47444, 47448, 47452, 47458, 47464, 47470,
- 47478, 47485, 47489, 47497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 47502, 47505, 47508, 47511, 47514, 47517, 47520, 47523,
- 47526, 47529, 47533, 47537, 47541, 47545, 47549, 47553, 47557, 47561,
- 47565, 47569, 47573, 47576, 47579, 47582, 47585, 47588, 47591, 47594,
- 47597, 47600, 47604, 47608, 47612, 47616, 47620, 47624, 47628, 47632,
- 47636, 47640, 47644, 47650, 47656, 47662, 47669, 47676, 47683, 47690,
- 47697, 47704, 47711, 47718, 47725, 47732, 47739, 47746, 47753, 47760,
- 47767, 47774, 47781, 47786, 47792, 47798, 47804, 47809, 47815, 47821,
- 47827, 47832, 47838, 47844, 47849, 47855, 47861, 47866, 47872, 47878,
- 47883, 47889, 47895, 47900, 47906, 47912, 47918, 47924, 47930, 47935,
- 47941, 47947, 47953, 47958, 47964, 47970, 47976, 47981, 47987, 47993,
- 47998, 48004, 48010, 48015, 48021, 48027, 48032, 48038, 48044, 48049,
- 48055, 48061, 48067, 48073, 48079, 48084, 48090, 48096, 48102, 48107,
- 48113, 48119, 48125, 48130, 48136, 48142, 48147, 48153, 48159, 48164,
- 48170, 48176, 48181, 48187, 48193, 48198, 48204, 48210, 48216, 48222,
- 48228, 48232, 48238, 48244, 48250, 48256, 48262, 48268, 48274, 48280,
- 48286, 48292, 48296, 48300, 48304, 48308, 48312, 48316, 48320, 48324,
- 48328, 48333, 48339, 48344, 48349, 48354, 48359, 48368, 48377, 48386,
- 48395, 48404, 48413, 48422, 48431, 48438, 48446, 48454, 48461, 48468,
- 48476, 48484, 48491, 48498, 48506, 48514, 48521, 48528, 48536, 48544,
- 48551, 48558, 48566, 48575, 48584, 48592, 48601, 48610, 48617, 48624,
- 48632, 48641, 48650, 48658, 48667, 48676, 48683, 48690, 48699, 48708,
- 48717, 48726, 48735, 48744, 48751, 48758, 48767, 48776, 48785, 48794,
- 48803, 48812, 48819, 48826, 48835, 48844, 48853, 48863, 48873, 48882,
- 48892, 48902, 48912, 48922, 48932, 48942, 48951, 48960, 48967, 48975,
- 48983, 48991, 48999, 49004, 49009, 49018, 49026, 49033, 49042, 49050,
- 49057, 49066, 49074, 49081, 49090, 49098, 49105, 49114, 49122, 49129,
- 49138, 49146, 49153, 49163, 49172, 49179, 49189, 49198, 49205, 49215,
- 49224, 49231, 49240, 49249, 49258, 49267, 49278, 49289, 49296, 49301,
- 49306, 49311, 49316, 49321, 49326, 49331, 49336, 49344, 49352, 49360,
- 49368, 49372, 49378, 49384, 49390, 49394, 49401, 49407, 49414, 49418,
- 49425, 49431, 49438, 49442, 49448, 49454, 49460, 49464, 49467, 49471,
- 49475, 49481, 49487, 49492, 49497, 49502, 49513, 49521, 49532, 49543,
- 49548, 49556, 49567, 49570, 49573, 49580, 49588, 49594, 49599, 49607,
- 49616, 49625, 49633, 49637, 49641, 49644, 49647, 49651, 49655, 49658,
- 49661, 49666, 49671, 49677, 49683, 49688, 49693, 49699, 49705, 49710,
- 49715, 49720, 49725, 49731, 49737, 49742, 49747, 49753, 49759, 49764,
- 49769, 49772, 49775, 49784, 49786, 49788, 49791, 49795, 49801, 49803,
- 49806, 49813, 49820, 49827, 49834, 49843, 49856, 49861, 49866, 49870,
- 49875, 49882, 49889, 49897, 49905, 49913, 49921, 49925, 49929, 49934,
- 49939, 49944, 49949, 49952, 49958, 49964, 49973, 49982, 49990, 49998,
- 50007, 50016, 50020, 50027, 50034, 50041, 50048, 50056, 50064, 50072,
- 50080, 50084, 50088, 50092, 50097, 50102, 50108, 50114, 50118, 50124,
- 50126, 50128, 50130, 50132, 50135, 50138, 50140, 50142, 50144, 50148,
- 50152, 50154, 50156, 50159, 50162, 50166, 50172, 50178, 50180, 50187,
- 50191, 50196, 50201, 50203, 50213, 50219, 50225, 50231, 50237, 50243,
- 50249, 50254, 50257, 50260, 50263, 50265, 50267, 50271, 50275, 50280,
- 50285, 50290, 50293, 50297, 50302, 50305, 50309, 50314, 50319, 50324,
- 50329, 50334, 50339, 50344, 50349, 50354, 50359, 50364, 50369, 50375,
- 50381, 50387, 50389, 50392, 50394, 50397, 50399, 50401, 50403, 50405,
- 50407, 50409, 50411, 50413, 50415, 50417, 50419, 50421, 50423, 50425,
- 50427, 50429, 50431, 50436, 50441, 50446, 50451, 50456, 50461, 50466,
- 50471, 50476, 50481, 50486, 50491, 50496, 50501, 50506, 50511, 50516,
- 50521, 50526, 50531, 50535, 50539, 50543, 50549, 50555, 50560, 50565,
- 50570, 50576, 50582, 50587, 50595, 50603, 50611, 50619, 50627, 50635,
- 50643, 50651, 50657, 50662, 50667, 50672, 50675, 50679, 50683, 50687,
- 50691, 50695, 50699, 50706, 50713, 50721, 50729, 50734, 50739, 50746,
- 50753, 50760, 50767, 50770, 50773, 50778, 50780, 50784, 50789, 50791,
- 50793, 50795, 50797, 50802, 50805, 50807, 50812, 50819, 50826, 50829,
- 50833, 50838, 50843, 50851, 50857, 50863, 50875, 50882, 50890, 50895,
- 50900, 50906, 50909, 50912, 50917, 50919, 50923, 50925, 50927, 50929,
- 50931, 50933, 50935, 50940, 50942, 50944, 50946, 50948, 50952, 50954,
- 50957, 50962, 50967, 50972, 50977, 50983, 50989, 50991, 50994, 51001,
- 51007, 51013, 51020, 51024, 51028, 51030, 51032, 51036, 51042, 51047,
- 51049, 51053, 51062, 51070, 51078, 51084, 51090, 51095, 51101, 51106,
- 51109, 51123, 51126, 51131, 51136, 51142, 51153, 51155, 51161, 51167,
- 51171, 51178, 51182, 51184, 51186, 51190, 51196, 51201, 51207, 51209,
- 51215, 51217, 51223, 51225, 51227, 51232, 51234, 51238, 51243, 51245,
- 51250, 51255, 51259, 51266, 51276, 51281, 51286, 51289, 51294, 51297,
- 51302, 51307, 51311, 51313, 51315, 51319, 51323, 51327, 51331, 51335,
- 51337, 51341, 51344, 51347, 51350, 51354, 51358, 51363, 51367, 51372,
- 51377, 51381, 51387, 51394, 51397, 51403, 51408, 51412, 51417, 51423,
- 51429, 51436, 51442, 51449, 51456, 51458, 51465, 51469, 51476, 51482,
- 51487, 51493, 51497, 51502, 51505, 51511, 51517, 51524, 51532, 51539,
- 51548, 51558, 51565, 51571, 51575, 51583, 51588, 51597, 51600, 51603,
- 51612, 51623, 51630, 51632, 51638, 51643, 51645, 51648, 51652, 51660,
- 51669, 51672, 51677, 51683, 51690, 51697, 51704, 51711, 51717, 51723,
- 51729, 51737, 51742, 51745, 51749, 51752, 51763, 51773, 51783, 51792,
- 51803, 51813, 51822, 51828, 51836, 51840, 51848, 51852, 51860, 51867,
- 51874, 51883, 51892, 51902, 51912, 51922, 51932, 51941, 51950, 51960,
- 51970, 51979, 51988, 51995, 52002, 52009, 52016, 52023, 52030, 52037,
- 52044, 52051, 52059, 52065, 52071, 52077, 52083, 52089, 52095, 52101,
- 52107, 52113, 52120, 52128, 52136, 52144, 52152, 52160, 52168, 52176,
- 52184, 52192, 52201, 52206, 52209, 52213, 52217, 52223, 52226, 52231,
- 52237, 52242, 52246, 52251, 52257, 52264, 52267, 52274, 52281, 52285,
- 52294, 52303, 52308, 52314, 52319, 52324, 52331, 52338, 52345, 52352,
- 52360, 52364, 52372, 52377, 52381, 52388, 52392, 52398, 52406, 52411,
- 52418, 52422, 52427, 52431, 52436, 52440, 52445, 52450, 52459, 52461,
- 52465, 52469, 52476, 52483, 52489, 52497, 52503, 52510, 52515, 52518,
- 52523, 52528, 52533, 52541, 52545, 52552, 52559, 52566, 52571, 52576,
- 52582, 52587, 52592, 52598, 52603, 52606, 52610, 52614, 52621, 52631,
- 52636, 52645, 52654, 52660, 52666, 52671, 52676, 52681, 52686, 52692,
- 52698, 52706, 52714, 52720, 52726, 52731, 52736, 52743, 52750, 52756,
- 52759, 52762, 52766, 52770, 52774, 52779, 52785, 52791, 52798, 52805,
- 52810, 52814, 52818, 52822, 52826, 52830, 52834, 52838, 52842, 52846,
- 52850, 52854, 52858, 52862, 52866, 52870, 52874, 52878, 52882, 52886,
- 52890, 52894, 52898, 52902, 52906, 52910, 52914, 52918, 52922, 52926,
- 52930, 52934, 52938, 52942, 52946, 52950, 52954, 52958, 52962, 52966,
- 52970, 52974, 52978, 52982, 52986, 52990, 52994, 52998, 53002, 53006,
- 53010, 53014, 53018, 53022, 53026, 53030, 53034, 53038, 53042, 53046,
- 53050, 53054, 53058, 53062, 53066, 53070, 53074, 53078, 53082, 53086,
- 53090, 53094, 53098, 53102, 53106, 53110, 53114, 53118, 53122, 53126,
- 53130, 53134, 53138, 53142, 53146, 53150, 53154, 53158, 53162, 53166,
- 53170, 53174, 53178, 53182, 53186, 53190, 53194, 53198, 53202, 53206,
- 53210, 53214, 53218, 53222, 53226, 53230, 53234, 53238, 53242, 53246,
- 53250, 53254, 53258, 53262, 53266, 53270, 53274, 53278, 53282, 53286,
- 53290, 53294, 53298, 53302, 53306, 53310, 53314, 53318, 53322, 53326,
- 53330, 53334, 53338, 53342, 53346, 53350, 53354, 53358, 53362, 53366,
- 53370, 53374, 53378, 53382, 53386, 53390, 53394, 53398, 53402, 53406,
- 53410, 53414, 53418, 53422, 53426, 53430, 53434, 53438, 53442, 53446,
- 53450, 53454, 53458, 53462, 53466, 53470, 53474, 53478, 53482, 53486,
- 53490, 53494, 53498, 53502, 53506, 53510, 53514, 53518, 53522, 53526,
- 53530, 53534, 53538, 53542, 53546, 53550, 53554, 53558, 53562, 53566,
- 53570, 53574, 53578, 53582, 53586, 53590, 53594, 53598, 53602, 53606,
- 53610, 53614, 53618, 53622, 53626, 53630, 53634, 53638, 53642, 53646,
- 53650, 53654, 53658, 53662, 53666, 53670, 53674, 53678, 53682, 53686,
- 53690, 53694, 53698, 53702, 53706, 53710, 53714, 53718, 53722, 53726,
- 53730, 53734, 53738, 53742, 53746, 53750, 53754, 53758, 53762, 53766,
- 53770, 53774, 53778, 53782, 53786, 53790, 53794, 53798, 53802, 53806,
- 53810, 53814, 53818, 53822, 53826, 53830, 53834, 53841, 53849, 53855,
- 53861, 53868, 53875, 53881, 53887, 53894, 53901, 53906, 53911, 53916,
- 53921, 53927, 53933, 53941, 53948, 53953, 53958, 53966, 53975, 53982,
- 53992, 54003, 54006, 54009, 54013, 54017, 54023, 54029, 54039, 54049,
- 54058, 54067, 54073, 54079, 54086, 54093, 54102, 54112, 54123, 54133,
- 54143, 54153, 54164, 54175, 54185, 54196, 54206, 54216, 54225, 54235,
- 54245, 54256, 54267, 54274, 54281, 54288, 54295, 54305, 54315, 54322,
- 54329, 54336, 54343, 54350, 54357, 54364, 54369, 54374, 54380, 54388,
- 54398, 54406, 54414, 54422, 54430, 54438, 54446, 54454, 54462, 54470,
- 54478, 54487, 54496, 54504, 54512, 54521, 54530, 54539, 54548, 54558,
- 54568, 54577, 54586, 54596, 54606, 54620, 54637, 54651, 54668, 54682,
- 54696, 54710, 54724, 54734, 54745, 54755, 54766, 54783, 54800, 54808,
- 54814, 54821, 54828, 54835, 54842, 54847, 54853, 54858, 54863, 54869,
- 54874, 54879, 54884, 54889, 54894, 54901, 54907, 54915, 54920, 54925,
- 54929, 54933, 54941, 54949, 54957, 54965, 54972, 54979, 54992, 55005,
- 55018, 55031, 55039, 55047, 55053, 55059, 55066, 55073, 55080, 55087,
- 55091, 55096, 55104, 55112, 55120, 55127, 55131, 55139, 55147, 55150,
- 55154, 55159, 55166, 55174, 55182, 55202, 55222, 55242, 55262, 55282,
- 55302, 55322, 55342, 55348, 55355, 55364, 55372, 55380, 55386, 55389,
- 55392, 55397, 55400, 55420, 55427, 55433, 55439, 55443, 55446, 55449,
- 55452, 55463, 55476, 55483, 55490, 55493, 55497, 55500, 55505, 55510,
- 55515, 55521, 55530, 55537, 55544, 55552, 55559, 55566, 55569, 55575,
- 55581, 55584, 55587, 55592, 55597, 55603, 55609, 55613, 55618, 55625,
- 55629, 55635, 55639, 55643, 55651, 55663, 55671, 55675, 55677, 55686,
- 55695, 55701, 55704, 55710, 55716, 55721, 55726, 55731, 55736, 55741,
- 55746, 55748, 55754, 55759, 55767, 55771, 55777, 55780, 55784, 55791,
- 55798, 55800, 55802, 55808, 55814, 55820, 55829, 55838, 55845, 55852,
- 55858, 55865, 55870, 55875, 55880, 55886, 55892, 55897, 55904, 55908,
- 55912, 55925, 55938, 55950, 55959, 55965, 55972, 55977, 55982, 55987,
- 55992, 55997, 55999, 56006, 56014, 56022, 56030, 56037, 56045, 56051,
- 56056, 56062, 56068, 56074, 56081, 56087, 56095, 56103, 56111, 56119,
- 56127, 56133, 56139, 56148, 56152, 56161, 56170, 56179, 56187, 56191,
- 56197, 56204, 56211, 56215, 56221, 56229, 56235, 56240, 56246, 56251,
- 56256, 56263, 56270, 56275, 56280, 56288, 56296, 56306, 56316, 56323,
- 56330, 56334, 56338, 56350, 56356, 56363, 56368, 56373, 56380, 56387,
- 56393, 56399, 56409, 56416, 56424, 56432, 56441, 56448, 56454, 56461,
- 56467, 56475, 56483, 56491, 56499, 56505, 56510, 56520, 56531, 56538,
- 56547, 56553, 56558, 56563, 56572, 56579, 56585, 56591, 56599, 56604,
- 56611, 56618, 56631, 56639, 56646, 56653, 56660, 56667, 56675, 56683,
- 56695, 56707, 56718, 56729, 56742, 56755, 56761, 56767, 56776, 56785,
- 56792, 56799, 56808, 56817, 56826, 56835, 56843, 56851, 56861, 56871,
- 56885, 56899, 56907, 56915, 56927, 56939, 56947, 56955, 56965, 56975,
- 56981, 56987, 56996, 57005, 57010, 57015, 57023, 57029, 57035, 57043,
- 57051, 57064, 57077, 57081, 57085, 57093, 57101, 57108, 57116, 57124,
- 57133, 57142, 57148, 57154, 57161, 57168, 57175, 57182, 57191, 57200,
- 57203, 57206, 57211, 57216, 57222, 57228, 57235, 57242, 57252, 57262,
- 57269, 57276, 57284, 57292, 57300, 57308, 57316, 57324, 57331, 57338,
- 57342, 57346, 57354, 57362, 57367, 57372, 57377, 57382, 57388, 57402,
- 57409, 57416, 57420, 57422, 57424, 57429, 57434, 57439, 57444, 57452,
- 57459, 57466, 57474, 57486, 57494, 57502, 57513, 57517, 57521, 57527,
- 57535, 57548, 57555, 57562, 57569, 57575, 57582, 57591, 57600, 57606,
- 57612, 57618, 57628, 57638, 57646, 57655, 57660, 57663, 57668, 57673,
- 57678, 57684, 57690, 57694, 57697, 57701, 57705, 57710, 57715, 57721,
- 57727, 57731, 57735, 57742, 57749, 57756, 57763, 57770, 57777, 57786,
- 57795, 57802, 57809, 57817, 57825, 57829, 57834, 57839, 57845, 57851,
- 57854, 57857, 57860, 57863, 57868, 57873, 57878, 57883, 57888, 57893,
- 57897, 57901, 57905, 57910, 57915, 57919, 57923, 57929, 57933, 57939,
- 57944, 57951, 57959, 57966, 57974, 57981, 57989, 57998, 58005, 58015,
- 58026, 58032, 58041, 58047, 58056, 58065, 58071, 58077, 58081, 58085,
- 58094, 58103, 58110, 58117, 58126, 58135, 58142, 58148, 58155, 58160,
- 58164, 58168, 58173, 58178, 58183, 58191, 58199, 58202, 58206, 58215,
- 58225, 58234, 58244, 58256, 58270, 58274, 58279, 58283, 58288, 58293,
- 58298, 58304, 58310, 58317, 58324, 58330, 58337, 58343, 58350, 58359,
- 58368, 58374, 58381, 58387, 0, 0, 58394, 58402, 58410, 58419, 58428,
- 58437, 58447, 58456, 58466, 58472, 58477, 58486, 58498, 58507, 58519,
- 58526, 58534, 58541, 58549, 58554, 58560, 58565, 58571, 58579, 58588,
- 58596, 58605, 58609, 58613, 58617, 58621, 58631, 0, 58634, 58641, 58650,
- 58660, 58669, 58679, 58685, 58692, 58698, 58705, 58716, 58727, 58738,
- 58749, 58759, 58769, 58779, 58789, 58797, 58805, 58813, 58821, 58829,
- 58837, 58845, 58853, 58859, 58865, 58871, 58877, 58883, 58889, 58895,
- 58901, 58913, 58923, 58928, 58935, 58940, 58947, 58950, 58954, 58958,
- 58963, 58967, 58972, 58975, 58984, 58993, 59002, 59011, 59016, 59022,
- 59028, 59036, 59046, 59053, 59062, 59067, 59070, 59073, 59078, 59083,
- 59088, 59093, 59095, 59097, 59099, 59101, 59103, 59105, 59110, 59117,
- 59124, 59126, 59128, 59130, 59132, 59134, 59136, 59138, 59140, 59145,
- 59150, 59157, 59164, 59173, 59183, 59192, 59202, 59207, 59212, 59214,
- 59221, 59228, 59235, 59242, 59249, 59256, 59263, 59266, 59269, 59272,
- 59275, 59280, 59285, 59290, 59295, 59300, 59305, 59310, 59315, 59320,
- 59325, 59330, 59335, 59341, 59345, 59350, 59355, 59360, 59365, 59370,
- 59375, 59380, 59385, 59390, 59395, 59400, 59405, 59410, 59415, 59420,
- 59425, 59430, 59435, 59440, 59445, 59450, 59455, 59461, 59466, 59472,
- 59481, 59486, 59494, 59501, 59510, 59515, 59520, 59525, 59531, 0, 59538,
- 59543, 59548, 59553, 59558, 59563, 59568, 59573, 59578, 59583, 59588,
- 59594, 59598, 59603, 59608, 59613, 59618, 59623, 59628, 59633, 59638,
- 59643, 59648, 59653, 59658, 59663, 59668, 59673, 59678, 59683, 59688,
- 59693, 59698, 59703, 59708, 59714, 59719, 59725, 59734, 59739, 59747,
- 59754, 59763, 59768, 59773, 59778, 59784, 0, 59791, 59799, 59807, 59816,
- 59823, 59831, 59837, 59846, 59854, 59862, 59870, 59878, 59886, 59894,
- 59899, 59906, 59911, 59917, 59925, 59932, 59939, 59947, 59953, 59959,
- 59966, 59974, 59983, 59993, 59999, 60006, 60011, 60021, 60031, 60036,
- 60041, 60046, 60051, 60056, 60061, 60066, 60071, 60076, 60081, 60086,
- 60091, 60096, 60101, 60106, 60111, 60116, 60121, 60126, 60131, 60136,
- 60141, 60146, 60151, 60156, 60161, 60166, 60171, 60176, 60181, 60185,
- 60189, 60194, 60199, 60204, 60209, 60214, 60219, 60224, 60229, 60234,
- 60239, 60244, 60249, 60254, 60259, 60264, 60269, 60274, 60279, 60286,
- 60293, 60300, 60307, 60314, 60321, 60328, 60335, 60342, 60349, 60356,
- 60363, 60370, 60377, 60382, 60387, 60394, 60401, 60408, 60415, 60422,
- 60429, 60436, 60443, 60450, 60457, 60464, 60471, 60477, 60483, 60489,
- 60495, 60502, 60509, 60516, 60523, 60530, 60537, 60544, 60551, 60558,
- 60565, 60573, 60581, 60589, 60597, 60605, 60613, 60621, 60629, 60633,
- 60639, 60645, 60649, 60655, 60661, 60667, 60674, 60681, 60688, 60695,
- 60700, 60706, 60712, 60719, 0, 0, 0, 0, 0, 60726, 60734, 60743, 60752,
- 60760, 60766, 60771, 60776, 60781, 60786, 60791, 60796, 60801, 60806,
- 60811, 60816, 60821, 60826, 60831, 60836, 60841, 60846, 60851, 60856,
- 60861, 60866, 60871, 60876, 60881, 60886, 60891, 60896, 60901, 60906,
- 60911, 60916, 60921, 60926, 60931, 60936, 60941, 60946, 60951, 60956,
- 60961, 0, 60966, 0, 0, 0, 0, 0, 60971, 0, 0, 60976, 60980, 60985, 60990,
- 60995, 61000, 61009, 61014, 61019, 61024, 61029, 61034, 61039, 61044,
- 61049, 61056, 61061, 61066, 61075, 61082, 61087, 61092, 61097, 61104,
- 61109, 61116, 61121, 61126, 61133, 61140, 61145, 61150, 61155, 61162,
- 61169, 61174, 61179, 61184, 61189, 61194, 61201, 61208, 61213, 61218,
- 61223, 61228, 61233, 61238, 61243, 61248, 61253, 61258, 61263, 61270,
- 61275, 61280, 0, 0, 0, 0, 0, 0, 0, 61285, 61292, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 61297, 61302, 61306, 61310, 61314, 61318, 61322, 61326,
- 61330, 61334, 61338, 61342, 61348, 61352, 61356, 61360, 61364, 61368,
- 61372, 61376, 61380, 61384, 61388, 61392, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61396, 61400, 61404, 61408, 61412, 61416, 61420, 0, 61424, 61428, 61432,
- 61436, 61440, 61444, 61448, 0, 61452, 61456, 61460, 61464, 61468, 61472,
- 61476, 0, 61480, 61484, 61488, 61492, 61496, 61500, 61504, 0, 61508,
- 61512, 61516, 61520, 61524, 61528, 61532, 0, 61536, 61540, 61544, 61548,
- 61552, 61556, 61560, 0, 61564, 61568, 61572, 61576, 61580, 61584, 61588,
- 0, 61592, 61596, 61600, 61604, 61608, 61612, 61616, 0, 61620, 61625,
- 61630, 61635, 61640, 61645, 61650, 61654, 61659, 61664, 61669, 61673,
- 61678, 61683, 61688, 61693, 61697, 61702, 61707, 61712, 61717, 61722,
- 61727, 61731, 61736, 61741, 61748, 61753, 61758, 61764, 61771, 61778,
- 61787, 61794, 61803, 61807, 61811, 61817, 61823, 61829, 61837, 61843,
- 61847, 61851, 61855, 61861, 61867, 61871, 61873, 61877, 61883, 61885,
- 61889, 61893, 61897, 61903, 61908, 61912, 61916, 61921, 61927, 61932,
- 61937, 61942, 61947, 61954, 61961, 61966, 61971, 61976, 61981, 61986,
- 61991, 61995, 61999, 62007, 62015, 62021, 62025, 62030, 62033, 62037,
- 62044, 62047, 62051, 62055, 62058, 62064, 62070, 62073, 62079, 62083,
- 62087, 62093, 62098, 62103, 62105, 62108, 62112, 62118, 62124, 62128,
- 62133, 62142, 62145, 62151, 62156, 62160, 62164, 62168, 62171, 62176,
- 62182, 62190, 62198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32849, 32855,
+ 32861, 32865, 32869, 32873, 32877, 32883, 32887, 32893, 32897, 32903,
+ 32909, 32917, 32923, 32931, 32935, 32939, 32943, 32949, 32952, 32958,
+ 32962, 32968, 32972, 32976, 32982, 32986, 32992, 32996, 33002, 33010,
+ 33018, 33026, 33032, 33035, 33041, 33045, 33051, 33054, 33057, 33063,
+ 33067, 33073, 33076, 33079, 33082, 33085, 33089, 33095, 33101, 33104,
+ 33107, 33111, 33116, 33121, 33128, 33133, 33140, 33147, 33156, 33163,
+ 33172, 33177, 33184, 33191, 33200, 33205, 33212, 33217, 33223, 33229,
+ 33235, 33241, 33247, 33253, 0, 0, 0, 0, 33259, 33263, 33266, 33269,
+ 33272, 33275, 33278, 33281, 33284, 33287, 33290, 33293, 33296, 33299,
+ 33304, 33309, 33314, 33317, 33322, 33327, 33332, 33337, 33344, 33349,
+ 33354, 33359, 33364, 33371, 33377, 33383, 33389, 33395, 33401, 33410,
+ 33419, 33425, 33431, 33440, 33449, 33458, 33467, 33476, 33485, 33494,
+ 33503, 0, 0, 0, 33512, 33517, 33522, 33527, 33531, 33535, 33539, 33544,
+ 33548, 33552, 33557, 33561, 33566, 33571, 33576, 33581, 33586, 33591,
+ 33596, 33600, 33605, 33609, 33613, 33618, 33623, 33628, 33632, 33636,
+ 33640, 33644, 33649, 33653, 33658, 33662, 33668, 33674, 33680, 33686,
+ 33692, 33698, 33704, 33710, 33716, 33721, 33726, 33733, 33741, 33746,
+ 33751, 33756, 33760, 33764, 33768, 33772, 33776, 33780, 33784, 33788,
+ 33792, 33796, 33801, 33806, 33811, 33817, 33823, 33827, 33833, 33837,
+ 33843, 33849, 33854, 33861, 33865, 33871, 33875, 33881, 33886, 33893,
+ 33900, 33905, 33912, 33917, 33922, 33926, 33932, 33936, 33942, 33948,
+ 33954, 33958, 33964, 33970, 33974, 33980, 33985, 33989, 33995, 34000,
+ 34005, 34010, 34015, 34019, 34023, 34028, 34033, 34040, 34046, 34051,
+ 34058, 34063, 34070, 34075, 34084, 34090, 34096, 34100, 0, 0, 0, 0, 0, 0,
+ 0, 0, 34104, 34113, 34120, 34127, 34134, 34138, 34143, 34148, 34153,
+ 34158, 34163, 34168, 34173, 34178, 34183, 34187, 34192, 34197, 34201,
+ 34205, 34210, 34215, 34220, 34225, 34230, 34235, 34239, 34244, 34249,
+ 34254, 34259, 34263, 34267, 34271, 34275, 34280, 34285, 34289, 34294,
+ 34299, 34303, 34309, 34315, 34321, 34326, 34331, 34337, 34342, 34348,
+ 34353, 34359, 34365, 34370, 34376, 34382, 34387, 34393, 34399, 34405,
+ 34410, 0, 0, 0, 34415, 34421, 34431, 34437, 34445, 34451, 34456, 34460,
+ 34464, 34468, 34472, 34476, 34480, 34484, 34488, 0, 0, 0, 34492, 34497,
+ 34502, 34507, 34514, 34520, 34526, 34532, 34538, 34544, 34550, 34556,
+ 34562, 34568, 34574, 34581, 34588, 34595, 34602, 34609, 34616, 34623,
+ 34630, 34637, 34644, 34651, 34658, 34665, 34672, 34679, 34686, 34693,
+ 34700, 34707, 34714, 34721, 34728, 34735, 34742, 34749, 34756, 34763,
+ 34770, 34777, 34785, 34793, 34801, 34807, 34813, 34819, 34827, 34836,
+ 34843, 34850, 34856, 34863, 34870, 34877, 34885, 34892, 0, 0, 0, 0, 0, 0,
+ 0, 34899, 34906, 34913, 34920, 34927, 34934, 34941, 34948, 34955, 34962,
+ 34969, 34976, 34983, 34990, 34997, 35004, 35011, 35018, 35025, 35032,
+ 35039, 35046, 35053, 35060, 35067, 35074, 35081, 35088, 35095, 35102,
+ 35109, 35116, 35123, 35130, 35137, 35144, 35151, 35158, 35165, 35172,
+ 35179, 35186, 35194, 0, 0, 35201, 35208, 35216, 35224, 35232, 35240,
+ 35248, 35256, 35266, 35276, 35286, 0, 0, 0, 0, 0, 0, 0, 0, 35296, 35301,
+ 35306, 35311, 35316, 35325, 35336, 35345, 35356, 35362, 35375, 35381,
+ 35388, 35395, 35400, 35407, 35414, 35425, 35434, 35441, 35448, 35457,
+ 35464, 35473, 35483, 35493, 35500, 35507, 35514, 35524, 35529, 35537,
+ 35543, 35551, 35560, 35565, 35572, 35578, 35583, 35588, 35593, 35599,
+ 35606, 0, 0, 0, 0, 0, 35614, 35619, 35625, 35631, 35639, 35645, 35651,
+ 35657, 35662, 35669, 35674, 35680, 35686, 35694, 35700, 35708, 35713,
+ 35720, 35726, 35734, 35742, 35748, 35754, 35761, 35768, 35774, 35781,
+ 35787, 35793, 35798, 35804, 35812, 35820, 35826, 35832, 35838, 35844,
+ 35852, 35856, 35862, 35868, 35874, 35880, 35886, 35892, 35896, 35901,
+ 35906, 35913, 35918, 35922, 35928, 35933, 35938, 35942, 35947, 35952,
+ 35956, 35961, 35966, 35973, 35977, 35982, 35987, 35991, 35996, 36000,
+ 36005, 36009, 36014, 36019, 36025, 36030, 36035, 36039, 36044, 36050,
+ 36057, 36062, 36067, 36072, 36077, 36082, 36086, 36092, 36099, 36106,
+ 36111, 36116, 36120, 36126, 36132, 36137, 36142, 36147, 36153, 36158,
+ 36164, 36169, 36175, 36181, 36187, 36194, 36201, 36208, 36215, 36222,
+ 36229, 36234, 36242, 36251, 36260, 36269, 36278, 36287, 36296, 36308,
+ 36317, 36326, 36335, 36341, 36346, 36353, 36361, 36369, 36376, 36383,
+ 36390, 36397, 36405, 36414, 36423, 36432, 36441, 36450, 36459, 36468,
+ 36477, 36486, 36495, 36504, 36513, 36522, 36531, 36539, 36548, 36559,
+ 36568, 36579, 36592, 36601, 36610, 36620, 36629, 36637, 36646, 36652,
+ 36657, 36665, 36670, 36678, 36683, 36692, 36698, 36704, 36711, 36716,
+ 36721, 36729, 36737, 36746, 36755, 36760, 36767, 36777, 36785, 36794,
+ 36800, 36806, 36811, 36818, 36823, 36832, 36837, 36842, 36847, 36854,
+ 36860, 36865, 36874, 36882, 36887, 36892, 36899, 36906, 36910, 36914,
+ 36917, 36920, 36923, 36926, 36929, 36932, 36939, 36942, 36945, 36950,
+ 36954, 36958, 36962, 36966, 36970, 36980, 36986, 36992, 36998, 37006,
+ 37014, 37020, 37026, 37033, 37039, 37044, 37050, 37057, 37063, 37070,
+ 37076, 37084, 37090, 37097, 37103, 37109, 37115, 37121, 37127, 37133,
+ 37144, 37154, 37160, 37166, 37176, 37182, 37190, 37198, 37206, 37211,
+ 37217, 37223, 37228, 0, 37236, 37240, 37247, 37253, 37258, 37267, 37275,
+ 37283, 37290, 37297, 37304, 37311, 37319, 37327, 37338, 37349, 37357,
+ 37365, 37373, 37381, 37390, 37399, 37407, 37415, 37424, 37433, 37444,
+ 37455, 37466, 37477, 37486, 37495, 37504, 37513, 37524, 37535, 37543,
+ 37551, 37559, 37567, 37575, 37583, 37591, 37599, 37607, 37615, 37623,
+ 37631, 37640, 37649, 37658, 37667, 37678, 37689, 37697, 37705, 37713,
+ 37721, 37730, 37739, 37747, 37755, 37767, 37779, 37788, 37797, 37806,
+ 37815, 37823, 37831, 37839, 37847, 37855, 37863, 37871, 37879, 37887,
+ 37895, 37904, 37913, 37922, 37931, 37941, 37951, 37961, 37971, 37981,
+ 37991, 38001, 38011, 38019, 38027, 38035, 38043, 38051, 38059, 38067,
+ 38075, 38087, 38099, 38108, 38117, 38125, 38133, 38141, 38149, 38160,
+ 38171, 38182, 38193, 38205, 38217, 38225, 38233, 38241, 38249, 38258,
+ 38267, 38276, 38285, 38293, 38301, 38309, 38317, 38325, 38333, 38343,
+ 38353, 38363, 38373, 38381, 38389, 38397, 38405, 38413, 38421, 38429,
+ 38437, 38445, 38453, 38461, 38469, 38477, 38485, 38493, 38501, 38509,
+ 38517, 38525, 38533, 38541, 38549, 38557, 38565, 38574, 38583, 38592,
+ 38600, 38609, 38618, 38627, 38636, 38646, 38655, 38662, 38667, 38674,
+ 38681, 38689, 38697, 38707, 38717, 38727, 38737, 38748, 38759, 38769,
+ 38779, 38789, 38799, 38809, 38819, 38829, 38839, 38850, 38861, 38871,
+ 38881, 38891, 38901, 38909, 38917, 38926, 38935, 38943, 38951, 38962,
+ 38973, 38984, 38995, 39007, 39019, 39030, 39041, 39052, 39063, 39072,
+ 39081, 39089, 39097, 39104, 39111, 39119, 39127, 39137, 39147, 39157,
+ 39167, 39178, 39189, 39199, 39209, 39219, 39229, 39239, 39249, 39259,
+ 39269, 39280, 39291, 39301, 39311, 39321, 39331, 39338, 39345, 39353,
+ 39361, 39371, 39381, 39391, 39401, 39412, 39423, 39433, 39443, 39453,
+ 39463, 39471, 39479, 39487, 39495, 39504, 39513, 39521, 39529, 39536,
+ 39543, 39550, 39557, 39565, 39573, 39581, 39589, 39600, 39611, 39622,
+ 39633, 39644, 39655, 39663, 39671, 39682, 39693, 39704, 39715, 39726,
+ 39737, 39745, 39753, 39764, 39775, 39786, 0, 0, 39797, 39805, 39813,
+ 39824, 39835, 39846, 0, 0, 39857, 39865, 39873, 39884, 39895, 39906,
+ 39917, 39928, 39939, 39947, 39955, 39966, 39977, 39988, 39999, 40010,
+ 40021, 40029, 40037, 40048, 40059, 40070, 40081, 40092, 40103, 40111,
+ 40119, 40130, 40141, 40152, 40163, 40174, 40185, 40193, 40201, 40212,
+ 40223, 40234, 0, 0, 40245, 40253, 40261, 40272, 40283, 40294, 0, 0,
+ 40305, 40313, 40321, 40332, 40343, 40354, 40365, 40376, 0, 40387, 0,
+ 40395, 0, 40406, 0, 40417, 40428, 40436, 40444, 40455, 40466, 40477,
+ 40488, 40499, 40510, 40518, 40526, 40537, 40548, 40559, 40570, 40581,
+ 40592, 40600, 40608, 40616, 40624, 40632, 40640, 40648, 40656, 40664,
+ 40672, 40680, 40688, 40696, 0, 0, 40704, 40715, 40726, 40740, 40754,
+ 40768, 40782, 40796, 40810, 40821, 40832, 40846, 40860, 40874, 40888,
+ 40902, 40916, 40927, 40938, 40952, 40966, 40980, 40994, 41008, 41022,
+ 41033, 41044, 41058, 41072, 41086, 41100, 41114, 41128, 41139, 41150,
+ 41164, 41178, 41192, 41206, 41220, 41234, 41245, 41256, 41270, 41284,
+ 41298, 41312, 41326, 41340, 41348, 41356, 41367, 41375, 0, 41386, 41394,
+ 41405, 41413, 41421, 41429, 41437, 41445, 41448, 41451, 41454, 41457,
+ 41463, 41474, 41482, 0, 41493, 41501, 41512, 41520, 41528, 41536, 41544,
+ 41552, 41558, 41564, 41570, 41578, 41586, 41597, 0, 0, 41608, 41616,
+ 41627, 41635, 41643, 41651, 0, 41659, 41665, 41671, 41677, 41685, 41693,
+ 41704, 41715, 41723, 41731, 41739, 41750, 41758, 41766, 41774, 41782,
+ 41790, 41796, 41802, 0, 0, 41805, 41816, 41824, 0, 41835, 41843, 41854,
+ 41862, 41870, 41878, 41886, 41894, 41897, 0, 41900, 41904, 41908, 41912,
+ 41916, 41920, 41924, 41928, 41932, 41936, 41940, 41944, 41950, 41956,
+ 41962, 41965, 41968, 41970, 41974, 41978, 41982, 41986, 41989, 41993,
+ 41997, 42003, 42009, 42016, 42023, 42028, 42033, 42039, 42045, 42047,
+ 42050, 42052, 42056, 42060, 42064, 42068, 42072, 42076, 42080, 42084,
+ 42088, 42094, 42098, 42102, 42108, 42113, 42120, 42122, 42125, 42129,
+ 42133, 42138, 42144, 42146, 42155, 42164, 42167, 42171, 42173, 42175,
+ 42177, 42181, 42187, 42189, 42193, 42197, 42204, 42211, 42215, 42220,
+ 42225, 42230, 42235, 42239, 42243, 42246, 42250, 42254, 42261, 42266,
+ 42270, 42274, 42279, 42283, 42287, 42292, 42297, 42301, 42305, 42309,
+ 42311, 42316, 42321, 42325, 42329, 42333, 42337, 0, 42341, 42345, 42349,
+ 42355, 42361, 42367, 42373, 42380, 42387, 42392, 42397, 42401, 0, 0,
+ 42407, 42410, 42413, 42416, 42419, 42422, 42425, 42429, 42433, 42438,
+ 42443, 42448, 42455, 42459, 42462, 42465, 42468, 42471, 42474, 42477,
+ 42480, 42483, 42486, 42490, 42494, 42499, 42504, 0, 42509, 42515, 42521,
+ 42527, 42534, 42541, 42548, 42555, 42561, 42568, 42575, 42582, 42589, 0,
+ 0, 0, 42596, 42599, 42602, 42605, 42610, 42613, 42616, 42619, 42622,
+ 42625, 42628, 42633, 42636, 42639, 42642, 42645, 42648, 42653, 42656,
+ 42659, 42662, 42665, 42668, 42673, 42676, 42679, 42684, 42689, 42693,
+ 42696, 42699, 42702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 42705, 42710, 42715, 42722, 42730, 42735, 42740, 42744, 42748, 42753,
+ 42760, 42767, 42772, 42778, 42783, 42788, 42793, 42800, 42805, 42810,
+ 42815, 42824, 42831, 42838, 42842, 42847, 42853, 42858, 42865, 42873,
+ 42881, 42885, 42889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42893,
+ 42897, 42904, 42909, 42913, 42918, 42922, 42926, 42930, 42932, 42936,
+ 42940, 42944, 42949, 42954, 42958, 42966, 42969, 42973, 42976, 42979,
+ 42985, 42990, 42993, 42999, 43003, 43008, 43013, 43016, 43020, 43024,
+ 43028, 43030, 43033, 43036, 43040, 43042, 43047, 43050, 43053, 43058,
+ 43063, 43069, 43072, 43075, 43079, 43084, 43087, 43090, 43093, 43097,
+ 43101, 43105, 43108, 43110, 43113, 43116, 43119, 43123, 43128, 43131,
+ 43136, 43141, 43146, 43151, 43157, 43162, 43166, 43171, 43176, 43182,
+ 43188, 43193, 43198, 43204, 43208, 43211, 43214, 43216, 43220, 43226,
+ 43233, 43240, 43247, 43254, 43261, 43268, 43275, 43282, 43290, 43297,
+ 43305, 43312, 43319, 43327, 43335, 43340, 43345, 43350, 43355, 43360,
+ 43365, 43370, 43375, 43380, 43385, 43391, 43397, 43403, 43409, 43416,
+ 43424, 43430, 43436, 43442, 43448, 43454, 43460, 43466, 43472, 43478,
+ 43484, 43491, 43498, 43505, 43512, 43520, 43529, 43536, 43547, 43554,
+ 43561, 43570, 43577, 43586, 43595, 43602, 43610, 43618, 43621, 0, 0, 0,
+ 0, 43624, 43626, 43629, 43631, 43634, 43637, 43640, 43644, 43648, 43653,
+ 43658, 43662, 43666, 43670, 43674, 43679, 43685, 43690, 43696, 43701,
+ 43706, 43711, 43717, 43722, 43728, 43734, 43738, 43742, 43747, 43752,
+ 43757, 43762, 43767, 43775, 43783, 43791, 43799, 43806, 43814, 43821,
+ 43828, 43835, 43845, 43852, 43859, 43866, 43873, 43881, 43889, 43896,
+ 43903, 43911, 43919, 43924, 43932, 43937, 43942, 43948, 43953, 43959,
+ 43966, 43973, 43978, 43984, 43989, 43992, 43996, 43999, 44003, 44007,
+ 44011, 44016, 44021, 44027, 44033, 44037, 44041, 44045, 44049, 44055,
+ 44061, 44065, 44070, 44074, 44079, 44083, 44087, 44090, 44094, 44097,
+ 44101, 44108, 44116, 44128, 44139, 44144, 44153, 44160, 44167, 44175,
+ 44179, 44185, 44193, 44197, 44202, 44207, 44213, 44219, 44225, 44232,
+ 44236, 44240, 44245, 44248, 44250, 44254, 44258, 44266, 44270, 44272,
+ 44274, 44278, 44286, 44291, 44297, 44307, 44314, 44319, 44323, 44327,
+ 44331, 44334, 44337, 44340, 44344, 44348, 44352, 44356, 44360, 44363,
+ 44367, 44371, 44374, 44376, 44379, 44381, 44385, 44389, 44391, 44397,
+ 44400, 44405, 44409, 44413, 44415, 44417, 44419, 44422, 44426, 44430,
+ 44434, 44438, 44442, 44448, 44454, 44456, 44458, 44460, 44462, 44465,
+ 44467, 44471, 44473, 44477, 44481, 44487, 44491, 44495, 44499, 44503,
+ 44507, 44513, 44517, 44527, 44537, 44541, 44547, 44554, 44558, 44562,
+ 44565, 44570, 44574, 44580, 44584, 44596, 44605, 44609, 44613, 44619,
+ 44623, 44626, 44628, 44631, 44635, 44639, 44645, 44649, 44653, 44657,
+ 44660, 44665, 44670, 44676, 44682, 44687, 44692, 44700, 44708, 44712,
+ 44716, 44718, 44723, 44727, 44731, 44739, 44747, 44754, 44761, 44770,
+ 44779, 44785, 44791, 44799, 44807, 44809, 44811, 44817, 44823, 44830,
+ 44837, 44843, 44849, 44853, 44857, 44864, 44871, 44878, 44885, 44895,
+ 44905, 44913, 44921, 44923, 44927, 44931, 44936, 44941, 44949, 44957,
+ 44960, 44963, 44966, 44969, 44972, 44977, 44981, 44986, 44991, 44994,
+ 44997, 45000, 45003, 45006, 45010, 45013, 45016, 45019, 45022, 45024,
+ 45026, 45028, 45030, 45038, 45046, 45052, 45056, 45062, 45072, 45078,
+ 45084, 45090, 45098, 45107, 45119, 45123, 45127, 45129, 45135, 45137,
+ 45139, 45141, 45143, 45149, 45152, 45158, 45164, 45168, 45172, 45176,
+ 45179, 45183, 45187, 45189, 45198, 45207, 45212, 45217, 45223, 45229,
+ 45235, 45238, 45241, 45244, 45247, 45249, 45254, 45259, 45264, 45270,
+ 45276, 45284, 45292, 45298, 45304, 45310, 45316, 45326, 45336, 45346,
+ 45356, 45366, 45376, 45385, 45394, 45403, 45412, 45420, 45432, 45443,
+ 45459, 45462, 45468, 45474, 45480, 45488, 45503, 45519, 45525, 45531,
+ 45538, 45544, 45553, 45560, 45574, 45589, 45594, 45600, 45608, 45611,
+ 45614, 45616, 45619, 45622, 45624, 45626, 45630, 45633, 45636, 45639,
+ 45642, 45647, 45652, 45657, 45662, 45667, 45670, 45672, 45674, 45676,
+ 45680, 45684, 45688, 45694, 45698, 45700, 45702, 45707, 45712, 45717,
+ 45722, 45727, 45732, 45734, 45736, 45746, 45750, 45757, 45766, 45768,
+ 45773, 45778, 45785, 45789, 45791, 45795, 45797, 45801, 45805, 45809,
+ 45811, 45813, 45815, 45822, 45831, 45840, 45849, 45858, 45867, 45876,
+ 45885, 45894, 45902, 45910, 45919, 45928, 45937, 45946, 45954, 45962,
+ 45971, 45980, 45989, 45999, 46008, 46018, 46027, 46037, 46046, 46056,
+ 46066, 46075, 46085, 46094, 46104, 46113, 46123, 46132, 46141, 46150,
+ 46159, 46168, 46178, 46187, 46196, 46205, 46215, 46224, 46233, 46242,
+ 46251, 46261, 46271, 46280, 46289, 46297, 46306, 46313, 46322, 46331,
+ 46342, 46351, 46361, 46371, 46378, 46385, 46392, 46401, 46410, 46419,
+ 46428, 46435, 46440, 46449, 46455, 46458, 46465, 46468, 46473, 46478,
+ 46481, 46484, 46492, 46495, 46500, 46503, 46511, 46516, 46524, 46527,
+ 46530, 46533, 46538, 46543, 46546, 46549, 46557, 46560, 46567, 46574,
+ 46578, 46582, 46587, 46592, 46597, 46602, 46607, 46612, 46617, 46622,
+ 46629, 46635, 46642, 46649, 46655, 46662, 46669, 46677, 46684, 46690,
+ 46697, 46705, 46712, 46716, 46722, 46734, 46746, 46750, 46754, 46758,
+ 46762, 46772, 46776, 46781, 46786, 46792, 46798, 46804, 46810, 46820,
+ 46830, 46838, 46849, 46860, 46868, 46879, 46890, 46898, 46909, 46920,
+ 46928, 46936, 46946, 46956, 46959, 46962, 46965, 46970, 46974, 46980,
+ 46987, 46994, 47002, 47009, 47013, 47017, 47021, 47025, 47027, 47031,
+ 47035, 47040, 47045, 47052, 47059, 47062, 47069, 47071, 47073, 47077,
+ 47081, 47086, 47092, 47098, 47104, 47110, 47119, 47128, 47137, 47141,
+ 47143, 47147, 47154, 47161, 47168, 47175, 47182, 47185, 47190, 47196,
+ 47199, 47204, 47209, 47214, 47219, 47223, 47230, 47237, 47244, 47251,
+ 47255, 47259, 47263, 47267, 47273, 47279, 47284, 47290, 47296, 47302,
+ 47308, 47316, 47323, 47330, 47337, 47344, 47350, 47356, 47365, 47369,
+ 47376, 47380, 47384, 47390, 47396, 47402, 47408, 47412, 47416, 47419,
+ 47423, 47427, 47434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47441, 47444, 47448, 47452, 47458, 47464, 47470,
+ 47478, 47485, 47489, 47497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 47502, 47505, 47508, 47511, 47514, 47517, 47520, 47523,
+ 47526, 47529, 47533, 47537, 47541, 47545, 47549, 47553, 47557, 47561,
+ 47565, 47569, 47573, 47576, 47579, 47582, 47585, 47588, 47591, 47594,
+ 47597, 47600, 47604, 47608, 47612, 47616, 47620, 47624, 47628, 47632,
+ 47636, 47640, 47644, 47650, 47656, 47662, 47669, 47676, 47683, 47690,
+ 47697, 47704, 47711, 47718, 47725, 47732, 47739, 47746, 47753, 47760,
+ 47767, 47774, 47781, 47786, 47792, 47798, 47804, 47809, 47815, 47821,
+ 47827, 47832, 47838, 47844, 47849, 47855, 47861, 47866, 47872, 47878,
+ 47883, 47889, 47895, 47900, 47906, 47912, 47918, 47924, 47930, 47935,
+ 47941, 47947, 47953, 47958, 47964, 47970, 47976, 47981, 47987, 47993,
+ 47998, 48004, 48010, 48015, 48021, 48027, 48032, 48038, 48044, 48049,
+ 48055, 48061, 48067, 48073, 48079, 48084, 48090, 48096, 48102, 48107,
+ 48113, 48119, 48125, 48130, 48136, 48142, 48147, 48153, 48159, 48164,
+ 48170, 48176, 48181, 48187, 48193, 48198, 48204, 48210, 48216, 48222,
+ 48228, 48232, 48238, 48244, 48250, 48256, 48262, 48268, 48274, 48280,
+ 48286, 48292, 48296, 48300, 48304, 48308, 48312, 48316, 48320, 48324,
+ 48328, 48333, 48339, 48344, 48349, 48354, 48359, 48368, 48377, 48386,
+ 48395, 48404, 48413, 48422, 48431, 48438, 48446, 48454, 48461, 48468,
+ 48476, 48484, 48491, 48498, 48506, 48514, 48521, 48528, 48536, 48544,
+ 48551, 48558, 48566, 48575, 48584, 48592, 48601, 48610, 48617, 48624,
+ 48632, 48641, 48650, 48658, 48667, 48676, 48683, 48690, 48699, 48708,
+ 48717, 48726, 48735, 48744, 48751, 48758, 48767, 48776, 48785, 48794,
+ 48803, 48812, 48819, 48826, 48835, 48844, 48853, 48863, 48873, 48882,
+ 48892, 48902, 48912, 48922, 48932, 48942, 48951, 48960, 48967, 48975,
+ 48983, 48991, 48999, 49004, 49009, 49018, 49026, 49033, 49042, 49050,
+ 49057, 49066, 49074, 49081, 49090, 49098, 49105, 49114, 49122, 49129,
+ 49138, 49146, 49153, 49163, 49172, 49179, 49189, 49198, 49205, 49215,
+ 49224, 49231, 49240, 49249, 49258, 49267, 49278, 49289, 49296, 49301,
+ 49306, 49311, 49316, 49321, 49326, 49331, 49336, 49344, 49352, 49360,
+ 49368, 49372, 49378, 49384, 49390, 49394, 49401, 49407, 49414, 49418,
+ 49425, 49431, 49438, 49442, 49448, 49454, 49460, 49464, 49467, 49471,
+ 49475, 49481, 49487, 49492, 49497, 49502, 49513, 49521, 49532, 49543,
+ 49548, 49556, 49567, 49570, 49573, 49580, 49588, 49594, 49599, 49607,
+ 49616, 49625, 49633, 49637, 49641, 49644, 49647, 49651, 49655, 49658,
+ 49661, 49666, 49671, 49677, 49683, 49688, 49693, 49699, 49705, 49710,
+ 49715, 49720, 49725, 49731, 49737, 49742, 49747, 49753, 49759, 49764,
+ 49769, 49772, 49775, 49784, 49786, 49788, 49791, 49795, 49801, 49803,
+ 49806, 49813, 49820, 49827, 49834, 49843, 49856, 49861, 49866, 49870,
+ 49875, 49882, 49889, 49897, 49905, 49913, 49921, 49925, 49929, 49934,
+ 49939, 49944, 49949, 49952, 49958, 49964, 49973, 49982, 49990, 49998,
+ 50007, 50016, 50020, 50027, 50034, 50041, 50048, 50056, 50064, 50072,
+ 50080, 50084, 50088, 50092, 50097, 50102, 50108, 50114, 50118, 50124,
+ 50126, 50128, 50130, 50132, 50135, 50138, 50140, 50142, 50144, 50148,
+ 50152, 50154, 50156, 50159, 50162, 50166, 50172, 50178, 50180, 50187,
+ 50191, 50196, 50201, 50203, 50213, 50219, 50225, 50231, 50237, 50243,
+ 50249, 50254, 50257, 50260, 50263, 50265, 50267, 50271, 50275, 50280,
+ 50285, 50290, 50293, 50297, 50302, 50305, 50309, 50314, 50319, 50324,
+ 50329, 50334, 50339, 50344, 50349, 50354, 50359, 50364, 50369, 50375,
+ 50381, 50387, 50389, 50392, 50394, 50397, 50399, 50401, 50403, 50405,
+ 50407, 50409, 50411, 50413, 50415, 50417, 50419, 50421, 50423, 50425,
+ 50427, 50429, 50431, 50436, 50441, 50446, 50451, 50456, 50461, 50466,
+ 50471, 50476, 50481, 50486, 50491, 50496, 50501, 50506, 50511, 50516,
+ 50521, 50526, 50531, 50535, 50539, 50543, 50549, 50555, 50560, 50565,
+ 50570, 50576, 50582, 50587, 50595, 50603, 50611, 50619, 50627, 50635,
+ 50643, 50651, 50657, 50662, 50667, 50672, 50675, 50679, 50683, 50687,
+ 50691, 50695, 50699, 50706, 50713, 50721, 50729, 50734, 50739, 50746,
+ 50753, 50760, 50767, 50770, 50773, 50778, 50780, 50784, 50789, 50791,
+ 50793, 50795, 50797, 50802, 50805, 50807, 50812, 50819, 50826, 50829,
+ 50833, 50838, 50843, 50851, 50857, 50863, 50875, 50882, 50890, 50895,
+ 50900, 50906, 50909, 50912, 50917, 50919, 50923, 50925, 50927, 50929,
+ 50931, 50933, 50935, 50940, 50942, 50944, 50946, 50948, 50952, 50954,
+ 50957, 50962, 50967, 50972, 50977, 50983, 50989, 50991, 50994, 51001,
+ 51007, 51013, 51020, 51024, 51028, 51030, 51032, 51036, 51042, 51047,
+ 51049, 51053, 51062, 51070, 51078, 51084, 51090, 51095, 51101, 51106,
+ 51109, 51123, 51126, 51131, 51136, 51142, 51153, 51155, 51161, 51167,
+ 51171, 51178, 51182, 51184, 51186, 51190, 51196, 51201, 51207, 51209,
+ 51215, 51217, 51223, 51225, 51227, 51232, 51234, 51238, 51243, 51245,
+ 51250, 51255, 51259, 51266, 51276, 51281, 51286, 51289, 51294, 51297,
+ 51302, 51307, 51311, 51313, 51315, 51319, 51323, 51327, 51331, 51335,
+ 51337, 51341, 51344, 51347, 51350, 51354, 51358, 51363, 51367, 51372,
+ 51377, 51381, 51387, 51394, 51397, 51403, 51408, 51412, 51417, 51423,
+ 51429, 51436, 51442, 51449, 51456, 51458, 51465, 51469, 51476, 51482,
+ 51487, 51493, 51497, 51502, 51505, 51511, 51517, 51524, 51532, 51539,
+ 51548, 51558, 51565, 51571, 51575, 51583, 51588, 51597, 51600, 51603,
+ 51612, 51623, 51630, 51632, 51638, 51643, 51645, 51648, 51652, 51660,
+ 51669, 51672, 51677, 51683, 51690, 51697, 51704, 51711, 51717, 51723,
+ 51729, 51737, 51742, 51745, 51749, 51752, 51763, 51773, 51783, 51792,
+ 51803, 51813, 51822, 51828, 51836, 51840, 51848, 51852, 51860, 51867,
+ 51874, 51883, 51892, 51902, 51912, 51922, 51932, 51941, 51950, 51960,
+ 51970, 51979, 51988, 51995, 52002, 52009, 52016, 52023, 52030, 52037,
+ 52044, 52051, 52059, 52065, 52071, 52077, 52083, 52089, 52095, 52101,
+ 52107, 52113, 52120, 52128, 52136, 52144, 52152, 52160, 52168, 52176,
+ 52184, 52192, 52201, 52206, 52209, 52213, 52217, 52223, 52226, 52231,
+ 52237, 52242, 52246, 52251, 52257, 52264, 52267, 52274, 52281, 52285,
+ 52294, 52303, 52308, 52314, 52319, 52324, 52331, 52338, 52345, 52352,
+ 52360, 52364, 52372, 52377, 52381, 52388, 52392, 52398, 52406, 52411,
+ 52418, 52422, 52427, 52431, 52436, 52440, 52445, 52450, 52459, 52461,
+ 52465, 52469, 52476, 52483, 52489, 52497, 52503, 52510, 52515, 52518,
+ 52523, 52528, 52533, 52541, 52545, 52552, 52559, 52566, 52571, 52576,
+ 52582, 52587, 52592, 52598, 52603, 52606, 52610, 52614, 52621, 52631,
+ 52636, 52645, 52654, 52660, 52666, 52671, 52676, 52681, 52686, 52692,
+ 52698, 52706, 52714, 52720, 52726, 52731, 52736, 52743, 52750, 52756,
+ 52759, 52762, 52766, 52770, 52774, 52779, 52785, 52791, 52798, 52805,
+ 52810, 52814, 52818, 52822, 52826, 52830, 52834, 52838, 52842, 52846,
+ 52850, 52854, 52858, 52862, 52866, 52870, 52874, 52878, 52882, 52886,
+ 52890, 52894, 52898, 52902, 52906, 52910, 52914, 52918, 52922, 52926,
+ 52930, 52934, 52938, 52942, 52946, 52950, 52954, 52958, 52962, 52966,
+ 52970, 52974, 52978, 52982, 52986, 52990, 52994, 52998, 53002, 53006,
+ 53010, 53014, 53018, 53022, 53026, 53030, 53034, 53038, 53042, 53046,
+ 53050, 53054, 53058, 53062, 53066, 53070, 53074, 53078, 53082, 53086,
+ 53090, 53094, 53098, 53102, 53106, 53110, 53114, 53118, 53122, 53126,
+ 53130, 53134, 53138, 53142, 53146, 53150, 53154, 53158, 53162, 53166,
+ 53170, 53174, 53178, 53182, 53186, 53190, 53194, 53198, 53202, 53206,
+ 53210, 53214, 53218, 53222, 53226, 53230, 53234, 53238, 53242, 53246,
+ 53250, 53254, 53258, 53262, 53266, 53270, 53274, 53278, 53282, 53286,
+ 53290, 53294, 53298, 53302, 53306, 53310, 53314, 53318, 53322, 53326,
+ 53330, 53334, 53338, 53342, 53346, 53350, 53354, 53358, 53362, 53366,
+ 53370, 53374, 53378, 53382, 53386, 53390, 53394, 53398, 53402, 53406,
+ 53410, 53414, 53418, 53422, 53426, 53430, 53434, 53438, 53442, 53446,
+ 53450, 53454, 53458, 53462, 53466, 53470, 53474, 53478, 53482, 53486,
+ 53490, 53494, 53498, 53502, 53506, 53510, 53514, 53518, 53522, 53526,
+ 53530, 53534, 53538, 53542, 53546, 53550, 53554, 53558, 53562, 53566,
+ 53570, 53574, 53578, 53582, 53586, 53590, 53594, 53598, 53602, 53606,
+ 53610, 53614, 53618, 53622, 53626, 53630, 53634, 53638, 53642, 53646,
+ 53650, 53654, 53658, 53662, 53666, 53670, 53674, 53678, 53682, 53686,
+ 53690, 53694, 53698, 53702, 53706, 53710, 53714, 53718, 53722, 53726,
+ 53730, 53734, 53738, 53742, 53746, 53750, 53754, 53758, 53762, 53766,
+ 53770, 53774, 53778, 53782, 53786, 53790, 53794, 53798, 53802, 53806,
+ 53810, 53814, 53818, 53822, 53826, 53830, 53834, 53841, 53849, 53855,
+ 53861, 53868, 53875, 53881, 53887, 53894, 53901, 53906, 53911, 53916,
+ 53921, 53927, 53933, 53941, 53948, 53953, 53958, 53966, 53975, 53982,
+ 53992, 54003, 54006, 54009, 54013, 54017, 54023, 54029, 54039, 54049,
+ 54058, 54067, 54073, 54079, 54086, 54093, 54102, 54112, 54123, 54133,
+ 54143, 54153, 54164, 54175, 54185, 54196, 54206, 54216, 54225, 54235,
+ 54245, 54256, 54267, 54274, 54281, 54288, 54295, 54305, 54315, 54322,
+ 54329, 54336, 54343, 54350, 54357, 54364, 54369, 54374, 54380, 54388,
+ 54398, 54406, 54414, 54422, 54430, 54438, 54446, 54454, 54462, 54470,
+ 54478, 54487, 54496, 54504, 54512, 54521, 54530, 54539, 54548, 54558,
+ 54568, 54577, 54586, 54596, 54606, 54620, 54637, 54651, 54668, 54682,
+ 54696, 54710, 54724, 54734, 54745, 54755, 54766, 54783, 54800, 54808,
+ 54814, 54821, 54828, 54835, 54842, 54847, 54853, 54858, 54863, 54869,
+ 54874, 54879, 54884, 54889, 54894, 54901, 54907, 54915, 54920, 54925,
+ 54929, 54933, 54941, 54949, 54957, 54965, 54972, 54979, 54992, 55005,
+ 55018, 55031, 55039, 55047, 55053, 55059, 55066, 55073, 55080, 55087,
+ 55091, 55096, 55104, 55112, 55120, 55127, 55131, 55139, 55147, 55150,
+ 55154, 55159, 55166, 55174, 55182, 55202, 55222, 55242, 55262, 55282,
+ 55302, 55322, 55342, 55348, 55355, 55364, 55372, 55380, 55386, 55389,
+ 55392, 55397, 55400, 55420, 55427, 55433, 55439, 55443, 55446, 55449,
+ 55452, 55463, 55476, 55483, 55490, 55493, 55497, 55500, 55505, 55510,
+ 55515, 55521, 55530, 55537, 55544, 55552, 55559, 55566, 55569, 55575,
+ 55581, 55584, 55587, 55592, 55597, 55603, 55609, 55613, 55618, 55625,
+ 55629, 55635, 55639, 55643, 55651, 55663, 55671, 55675, 55677, 55686,
+ 55695, 55701, 55704, 55710, 55716, 55721, 55726, 55731, 55736, 55741,
+ 55746, 55748, 55754, 55759, 55767, 55771, 55777, 55780, 55784, 55791,
+ 55798, 55800, 55802, 55808, 55814, 55820, 55829, 55838, 55845, 55852,
+ 55858, 55865, 55870, 55875, 55880, 55886, 55892, 55897, 55904, 55908,
+ 55912, 55925, 55938, 55950, 55959, 55965, 55972, 55977, 55982, 55987,
+ 55992, 55997, 55999, 56006, 56014, 56022, 56030, 56037, 56045, 56051,
+ 56056, 56062, 56068, 56074, 56081, 56087, 56095, 56103, 56111, 56119,
+ 56127, 56133, 56139, 56148, 56152, 56161, 56170, 56179, 56187, 56191,
+ 56197, 56204, 56211, 56215, 56221, 56229, 56235, 56240, 56246, 56251,
+ 56256, 56263, 56270, 56275, 56280, 56288, 56296, 56306, 56316, 56323,
+ 56330, 56334, 56338, 56350, 56356, 56363, 56368, 56373, 56380, 56387,
+ 56393, 56399, 56409, 56416, 56424, 56432, 56441, 56448, 56454, 56461,
+ 56467, 56475, 56483, 56491, 56499, 56505, 56510, 56520, 56531, 56538,
+ 56547, 56553, 56558, 56563, 56572, 56579, 56585, 56591, 56599, 56604,
+ 56611, 56618, 56631, 56639, 56646, 56653, 56660, 56667, 56675, 56683,
+ 56695, 56707, 56718, 56729, 56742, 56755, 56761, 56767, 56776, 56785,
+ 56792, 56799, 56808, 56817, 56826, 56835, 56843, 56851, 56861, 56871,
+ 56885, 56899, 56907, 56915, 56927, 56939, 56947, 56955, 56965, 56975,
+ 56981, 56987, 56996, 57005, 57010, 57015, 57023, 57029, 57035, 57043,
+ 57051, 57064, 57077, 57081, 57085, 57093, 57101, 57108, 57116, 57124,
+ 57133, 57142, 57148, 57154, 57161, 57168, 57175, 57182, 57191, 57200,
+ 57203, 57206, 57211, 57216, 57222, 57228, 57235, 57242, 57252, 57262,
+ 57269, 57276, 57284, 57292, 57300, 57308, 57316, 57324, 57331, 57338,
+ 57342, 57346, 57354, 57362, 57367, 57372, 57377, 57382, 57388, 57402,
+ 57409, 57416, 57420, 57422, 57424, 57429, 57434, 57439, 57444, 57452,
+ 57459, 57466, 57474, 57486, 57494, 57502, 57513, 57517, 57521, 57527,
+ 57535, 57548, 57555, 57562, 57569, 57575, 57582, 57591, 57600, 57606,
+ 57612, 57618, 57628, 57638, 57646, 57655, 57660, 57663, 57668, 57673,
+ 57678, 57684, 57690, 57694, 57697, 57701, 57705, 57710, 57715, 57721,
+ 57727, 57731, 57735, 57742, 57749, 57756, 57763, 57770, 57777, 57786,
+ 57795, 57802, 57809, 57817, 57825, 57829, 57834, 57839, 57845, 57851,
+ 57854, 57857, 57860, 57863, 57868, 57873, 57878, 57883, 57888, 57893,
+ 57897, 57901, 57905, 57910, 57915, 57919, 57923, 57929, 57933, 57939,
+ 57944, 57951, 57959, 57966, 57974, 57981, 57989, 57998, 58005, 58015,
+ 58026, 58032, 58041, 58047, 58056, 58065, 58071, 58077, 58081, 58085,
+ 58094, 58103, 58110, 58117, 58126, 58135, 58142, 58148, 58155, 58160,
+ 58164, 58168, 58173, 58178, 58183, 58191, 58199, 58202, 58206, 58215,
+ 58225, 58234, 58244, 58256, 58270, 58274, 58279, 58283, 58288, 58293,
+ 58298, 58304, 58310, 58317, 58324, 58330, 58337, 58343, 58350, 58359,
+ 58368, 58374, 58381, 58387, 0, 0, 58394, 58402, 58410, 58419, 58428,
+ 58437, 58447, 58456, 58466, 58472, 58477, 58486, 58498, 58507, 58519,
+ 58526, 58534, 58541, 58549, 58554, 58560, 58565, 58571, 58579, 58588,
+ 58596, 58605, 58609, 58613, 58617, 58621, 58631, 0, 58634, 58641, 58650,
+ 58660, 58669, 58679, 58685, 58692, 58698, 58705, 58716, 58727, 58738,
+ 58749, 58759, 58769, 58779, 58789, 58797, 58805, 58813, 58821, 58829,
+ 58837, 58845, 58853, 58859, 58865, 58871, 58877, 58883, 58889, 58895,
+ 58901, 58913, 58923, 58928, 58935, 58940, 58947, 58950, 58954, 58958,
+ 58963, 58967, 58972, 58975, 58984, 58993, 59002, 59011, 59016, 59022,
+ 59028, 59036, 59046, 59053, 59062, 59067, 59070, 59073, 59078, 59083,
+ 59088, 59093, 59095, 59097, 59099, 59101, 59103, 59105, 59110, 59117,
+ 59124, 59126, 59128, 59130, 59132, 59134, 59136, 59138, 59140, 59145,
+ 59150, 59157, 59164, 59173, 59183, 59192, 59202, 59207, 59212, 59214,
+ 59221, 59228, 59235, 59242, 59249, 59256, 59263, 59266, 59269, 59272,
+ 59275, 59280, 59285, 59290, 59295, 59300, 59305, 59310, 59315, 59320,
+ 59325, 59330, 59335, 59341, 59345, 59350, 59355, 59360, 59365, 59370,
+ 59375, 59380, 59385, 59390, 59395, 59400, 59405, 59410, 59415, 59420,
+ 59425, 59430, 59435, 59440, 59445, 59450, 59455, 59461, 59466, 59472,
+ 59481, 59486, 59494, 59501, 59510, 59515, 59520, 59525, 59531, 0, 59538,
+ 59543, 59548, 59553, 59558, 59563, 59568, 59573, 59578, 59583, 59588,
+ 59594, 59598, 59603, 59608, 59613, 59618, 59623, 59628, 59633, 59638,
+ 59643, 59648, 59653, 59658, 59663, 59668, 59673, 59678, 59683, 59688,
+ 59693, 59698, 59703, 59708, 59714, 59719, 59725, 59734, 59739, 59747,
+ 59754, 59763, 59768, 59773, 59778, 59784, 0, 59791, 59799, 59807, 59816,
+ 59823, 59831, 59837, 59846, 59854, 59862, 59870, 59878, 59886, 59894,
+ 59899, 59906, 59911, 59917, 59925, 59932, 59939, 59947, 59953, 59959,
+ 59966, 59974, 59983, 59993, 59999, 60006, 60011, 60021, 60031, 60036,
+ 60041, 60046, 60051, 60056, 60061, 60066, 60071, 60076, 60081, 60086,
+ 60091, 60096, 60101, 60106, 60111, 60116, 60121, 60126, 60131, 60136,
+ 60141, 60146, 60151, 60156, 60161, 60166, 60171, 60176, 60181, 60185,
+ 60189, 60194, 60199, 60204, 60209, 60214, 60219, 60224, 60229, 60234,
+ 60239, 60244, 60249, 60254, 60259, 60264, 60269, 60274, 60279, 60286,
+ 60293, 60300, 60307, 60314, 60321, 60328, 60335, 60342, 60349, 60356,
+ 60363, 60370, 60377, 60382, 60387, 60394, 60401, 60408, 60415, 60422,
+ 60429, 60436, 60443, 60450, 60457, 60464, 60471, 60477, 60483, 60489,
+ 60495, 60502, 60509, 60516, 60523, 60530, 60537, 60544, 60551, 60558,
+ 60565, 60573, 60581, 60589, 60597, 60605, 60613, 60621, 60629, 60633,
+ 60639, 60645, 60649, 60655, 60661, 60667, 60674, 60681, 60688, 60695,
+ 60700, 60706, 60712, 60719, 0, 0, 0, 0, 0, 60726, 60734, 60743, 60752,
+ 60760, 60766, 60771, 60776, 60781, 60786, 60791, 60796, 60801, 60806,
+ 60811, 60816, 60821, 60826, 60831, 60836, 60841, 60846, 60851, 60856,
+ 60861, 60866, 60871, 60876, 60881, 60886, 60891, 60896, 60901, 60906,
+ 60911, 60916, 60921, 60926, 60931, 60936, 60941, 60946, 60951, 60956,
+ 60961, 0, 60966, 0, 0, 0, 0, 0, 60971, 0, 0, 60976, 60980, 60985, 60990,
+ 60995, 61000, 61009, 61014, 61019, 61024, 61029, 61034, 61039, 61044,
+ 61049, 61056, 61061, 61066, 61075, 61082, 61087, 61092, 61097, 61104,
+ 61109, 61116, 61121, 61126, 61133, 61140, 61145, 61150, 61155, 61162,
+ 61169, 61174, 61179, 61184, 61189, 61194, 61201, 61208, 61213, 61218,
+ 61223, 61228, 61233, 61238, 61243, 61248, 61253, 61258, 61263, 61270,
+ 61275, 61280, 0, 0, 0, 0, 0, 0, 0, 61285, 61292, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 61297, 61302, 61306, 61310, 61314, 61318, 61322, 61326,
+ 61330, 61334, 61338, 61342, 61348, 61352, 61356, 61360, 61364, 61368,
+ 61372, 61376, 61380, 61384, 61388, 61392, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 61396, 61400, 61404, 61408, 61412, 61416, 61420, 0, 61424, 61428, 61432,
+ 61436, 61440, 61444, 61448, 0, 61452, 61456, 61460, 61464, 61468, 61472,
+ 61476, 0, 61480, 61484, 61488, 61492, 61496, 61500, 61504, 0, 61508,
+ 61512, 61516, 61520, 61524, 61528, 61532, 0, 61536, 61540, 61544, 61548,
+ 61552, 61556, 61560, 0, 61564, 61568, 61572, 61576, 61580, 61584, 61588,
+ 0, 61592, 61596, 61600, 61604, 61608, 61612, 61616, 0, 61620, 61625,
+ 61630, 61635, 61640, 61645, 61650, 61654, 61659, 61664, 61669, 61673,
+ 61678, 61683, 61688, 61693, 61697, 61702, 61707, 61712, 61717, 61722,
+ 61727, 61731, 61736, 61741, 61748, 61753, 61758, 61764, 61771, 61778,
+ 61787, 61794, 61803, 61807, 61811, 61817, 61823, 61829, 61837, 61843,
+ 61847, 61851, 61855, 61861, 61867, 61871, 61873, 61877, 61883, 61885,
+ 61889, 61893, 61897, 61903, 61908, 61912, 61916, 61921, 61927, 61932,
+ 61937, 61942, 61947, 61954, 61961, 61966, 61971, 61976, 61981, 61986,
+ 61991, 61995, 61999, 62007, 62015, 62021, 62025, 62030, 62033, 62037,
+ 62044, 62047, 62051, 62055, 62058, 62064, 62070, 62073, 62079, 62083,
+ 62087, 62093, 62098, 62103, 62105, 62108, 62112, 62118, 62124, 62128,
+ 62133, 62142, 62145, 62151, 62156, 62160, 62164, 62168, 62171, 62176,
+ 62182, 62190, 62198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62204, 62208, 62212, 62217, 62222, 62227, 62231, 62235,
- 62239, 62244, 62249, 62253, 62257, 62261, 62265, 62270, 62275, 62280,
- 62285, 62289, 62293, 62298, 62303, 62308, 62313, 62317, 0, 62321, 62325,
- 62329, 62333, 62337, 62341, 62345, 62350, 62355, 62359, 62364, 62369,
- 62378, 62382, 62386, 62390, 62397, 62401, 62406, 62411, 62415, 62419,
- 62425, 62430, 62435, 62440, 62445, 62449, 62453, 62457, 62461, 62465,
- 62470, 62475, 62479, 62483, 62488, 62493, 62498, 62502, 62506, 62511,
- 62516, 62522, 62528, 62532, 62538, 62544, 62548, 62554, 62560, 62565,
- 62570, 62574, 62580, 62584, 62588, 62594, 62600, 62605, 62610, 62614,
- 62618, 62626, 62632, 62638, 62644, 62649, 62654, 62659, 62665, 62669,
- 62675, 62679, 62683, 62689, 62695, 62701, 62707, 62713, 62719, 62725,
- 62731, 62737, 62743, 62749, 62755, 62759, 62765, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62771, 62774, 62778, 62782, 62786, 62790, 62793, 62796,
- 62800, 62804, 62808, 62812, 62815, 62820, 62824, 62828, 62832, 62838,
- 62842, 62846, 62850, 62854, 62861, 62867, 62871, 62875, 62879, 62883,
- 62887, 62891, 62895, 62899, 62903, 62907, 62911, 62917, 62921, 62925,
- 62929, 62933, 62937, 62941, 62945, 62949, 62953, 62957, 62961, 62965,
- 62969, 62973, 62977, 62981, 62987, 62993, 62998, 63003, 63007, 63011,
- 63015, 63019, 63023, 63027, 63031, 63035, 63039, 63043, 63047, 63051,
- 63055, 63059, 63063, 63067, 63071, 63075, 63079, 63083, 63087, 63091,
- 63095, 63099, 63105, 63109, 63113, 63117, 63121, 63125, 63129, 63133,
- 63137, 63142, 63149, 63153, 63157, 63161, 63165, 63169, 63173, 63177,
- 63181, 63185, 63189, 63193, 63197, 63204, 63208, 63214, 63218, 63222,
- 63226, 63230, 63234, 63237, 63241, 63245, 63249, 63253, 63257, 63261,
- 63265, 63269, 63273, 63277, 63281, 63285, 63289, 63293, 63297, 63301,
- 63305, 63309, 63313, 63317, 63321, 63325, 63329, 63333, 63337, 63341,
- 63345, 63349, 63353, 63357, 63361, 63365, 63371, 63375, 63379, 63383,
- 63387, 63391, 63395, 63399, 63403, 63407, 63411, 63415, 63419, 63423,
- 63427, 63431, 63435, 63439, 63443, 63447, 63451, 63455, 63459, 63463,
- 63467, 63471, 63475, 63479, 63487, 63491, 63495, 63499, 63503, 63507,
- 63513, 63517, 63521, 63525, 63529, 63533, 63537, 63541, 63545, 63549,
- 63553, 63557, 63561, 63565, 63571, 63575, 63579, 63583, 63587, 63591,
- 63595, 63599, 63603, 63607, 63611, 63615, 63619, 63623, 63627, 63631,
- 63635, 63639, 63643, 63647, 63651, 63655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63659, 63668, 63676,
- 63687, 63697, 63706, 63716, 63726, 63737, 63749, 63761, 63773, 0, 0, 0,
- 0, 63780, 63783, 63786, 63791, 63794, 63801, 63805, 63809, 63813, 63817,
- 63821, 63826, 63831, 63835, 63839, 63844, 63849, 63854, 63859, 63862,
- 63865, 63871, 63877, 63882, 63887, 63894, 63901, 63905, 63909, 63913,
- 63921, 63927, 63934, 63939, 63944, 63949, 63954, 63959, 63964, 63969,
- 63974, 63979, 63984, 63989, 63994, 63999, 64004, 64010, 64015, 64019,
- 64025, 64036, 64045, 64059, 64068, 64072, 64082, 64088, 64094, 64100,
- 64105, 64108, 64113, 64117, 0, 64123, 64128, 64132, 64137, 64141, 64146,
- 64150, 64155, 64159, 64164, 64168, 64172, 64177, 64182, 64187, 64192,
- 64197, 64202, 64207, 64212, 64217, 64221, 64226, 64231, 64236, 64241,
- 64246, 64251, 64256, 64261, 64266, 64270, 64275, 64280, 64285, 64291,
- 64296, 64301, 64306, 64311, 64315, 64320, 64324, 64329, 64334, 64339,
- 64344, 64348, 64353, 64357, 64362, 64367, 64372, 64377, 64382, 64387,
- 64392, 64397, 64402, 64407, 64412, 64417, 64421, 64426, 64431, 64436,
- 64441, 64446, 64450, 64456, 64461, 64467, 64472, 64476, 64481, 64486,
- 64491, 64496, 64502, 64507, 64512, 64517, 64522, 64527, 64532, 64537, 0,
- 0, 64543, 64551, 64559, 64566, 64573, 64578, 64585, 64591, 64596, 64600,
- 64603, 64607, 64610, 64614, 64617, 64621, 64624, 64628, 64631, 64634,
- 64638, 64642, 64646, 64650, 64654, 64658, 64662, 64666, 64670, 64673,
- 64677, 64681, 64685, 64689, 64693, 64697, 64701, 64705, 64709, 64712,
- 64716, 64720, 64724, 64729, 64733, 64737, 64741, 64745, 64748, 64752,
- 64755, 64759, 64763, 64767, 64771, 64774, 64778, 64781, 64785, 64789,
- 64793, 64797, 64801, 64805, 64809, 64813, 64817, 64821, 64825, 64829,
- 64832, 64836, 64840, 64844, 64848, 64852, 64855, 64860, 64864, 64869,
- 64873, 64876, 64880, 64884, 64888, 64892, 64897, 64901, 64905, 64909,
- 64913, 64917, 64921, 64925, 64930, 64934, 64938, 64942, 64946, 64950,
- 64957, 64961, 64967, 0, 0, 0, 0, 0, 64972, 64977, 64982, 64987, 64992,
- 64997, 65002, 65007, 65011, 65016, 65021, 65026, 65031, 65036, 65041,
- 65046, 65051, 65056, 65060, 65065, 65070, 65075, 65079, 65083, 65087,
- 65092, 65097, 65102, 65107, 65112, 65117, 65122, 65127, 65132, 65137,
- 65141, 65145, 65150, 65155, 65160, 65165, 65170, 65177, 0, 65182, 65186,
- 65190, 65194, 65198, 65202, 65206, 65210, 65214, 65218, 65222, 65226,
- 65230, 65234, 65238, 65242, 65246, 65250, 65254, 65258, 65262, 65266,
- 65270, 65274, 65278, 65282, 65286, 65290, 65294, 65298, 65302, 65305,
- 65309, 65312, 65316, 65320, 65323, 65327, 65331, 65334, 65338, 65342,
- 65346, 65350, 65353, 65357, 65361, 65365, 65369, 65373, 65377, 65380,
- 65383, 65387, 65391, 65395, 65399, 65403, 65407, 65411, 65415, 65419,
- 65423, 65427, 65431, 65435, 65439, 65443, 65447, 65451, 65455, 65459,
- 65463, 65467, 65471, 65475, 65479, 65483, 65487, 65491, 65495, 65499,
- 65503, 65507, 65511, 65515, 65519, 65523, 65527, 65531, 65535, 65539,
- 65543, 65547, 0, 65551, 65557, 65563, 65568, 65573, 65578, 65584, 65590,
- 65595, 65601, 65607, 65613, 65619, 65625, 65631, 65637, 65643, 65648,
- 65653, 65658, 65663, 65668, 65673, 65678, 65683, 65688, 65693, 65698,
- 65703, 65708, 65713, 65718, 65723, 65728, 65733, 65738, 65743, 65749,
- 65755, 65761, 65767, 65772, 65777, 65782, 65788, 65793, 65798, 65803,
- 65808, 65813, 65818, 65823, 65828, 65833, 65838, 65843, 65848, 65853,
- 65858, 65863, 65868, 65873, 65878, 65883, 65888, 65893, 65898, 65903,
- 65908, 65913, 65918, 65923, 65928, 65933, 65938, 65943, 65948, 65953,
- 65958, 65963, 65968, 65973, 65978, 65983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 65988, 65993, 65998, 66003, 66007, 66012, 66016, 66021, 66026,
- 66031, 66036, 66041, 66045, 66050, 66055, 66060, 66065, 66069, 66073,
- 66077, 66081, 66085, 66089, 66093, 66097, 66101, 66105, 66109, 66113,
- 66117, 66121, 66126, 66131, 66136, 66141, 66146, 66151, 66156, 66161,
- 66166, 66171, 66176, 66181, 66186, 66191, 66196, 66203, 0, 66211, 66215,
- 66219, 66223, 66227, 66231, 66235, 66239, 66243, 66247, 66252, 66257,
- 66262, 66267, 66272, 66277, 66282, 66287, 66292, 66297, 66302, 66307,
- 66312, 66317, 66322, 66327, 66332, 66337, 66342, 66347, 66352, 66357,
- 66362, 66367, 66372, 66377, 66382, 66387, 66392, 66397, 66402, 66411,
- 66420, 66429, 66438, 66447, 66456, 66465, 66474, 66477, 66482, 66487,
- 66492, 66497, 66502, 66507, 66512, 66517, 66522, 66526, 66531, 66536,
- 66541, 66546, 66551, 66555, 66559, 66563, 66567, 66571, 66575, 66579,
- 66583, 66587, 66591, 66595, 66599, 66603, 66607, 66612, 66617, 66622,
- 66627, 66632, 66637, 66642, 66647, 66652, 66657, 66662, 66667, 66672,
- 66677, 66684, 66691, 66696, 66701, 66705, 66709, 66713, 66717, 66721,
- 66725, 66729, 66733, 66737, 66742, 66747, 66752, 66757, 66762, 66767,
- 66772, 66777, 66782, 66787, 66792, 66797, 66802, 66807, 66812, 66817,
- 66822, 66827, 66832, 66837, 66842, 66847, 66852, 66857, 66862, 66867,
- 66872, 66877, 66882, 66887, 66892, 66897, 66902, 66907, 66912, 66917,
- 66922, 66927, 66932, 66937, 66942, 66947, 66952, 66957, 66961, 66966,
- 66971, 66976, 66981, 66986, 66991, 66996, 67001, 67006, 67010, 67017,
- 67024, 67031, 67038, 67045, 67052, 67059, 67066, 67073, 67080, 67087,
- 67094, 67097, 67100, 67103, 67108, 67111, 67114, 67117, 67120, 67123,
- 67126, 67130, 67134, 67138, 67142, 67145, 67149, 67153, 67157, 67161,
- 67164, 67168, 67172, 67176, 67179, 67182, 67186, 67190, 67194, 67198,
- 67201, 67205, 67209, 67213, 67217, 67220, 67224, 67228, 67232, 67236,
- 67239, 67243, 67247, 67250, 67254, 67258, 67262, 67266, 67270, 67274,
- 67278, 67282, 67289, 67292, 67295, 67298, 67301, 67304, 67307, 67310,
- 67313, 67316, 67319, 67322, 67325, 67328, 67331, 67334, 67337, 67340,
- 67343, 67346, 67349, 67352, 67355, 67358, 67361, 67364, 67367, 67370,
- 67373, 67376, 67379, 67382, 67385, 67388, 67391, 67394, 67397, 67400,
- 67403, 67406, 67409, 67412, 67415, 67418, 67421, 67424, 67427, 67430,
- 67433, 67436, 67439, 67442, 67445, 67448, 67451, 67454, 67457, 67460,
- 67463, 67466, 67469, 67472, 67475, 67478, 67481, 67484, 67487, 67490,
- 67493, 67496, 67499, 67502, 67505, 67508, 67511, 67514, 67517, 67520,
- 67523, 67526, 67529, 67532, 67535, 67538, 67541, 67544, 67547, 67550,
- 67553, 67562, 67570, 67578, 67586, 67594, 67602, 67610, 67618, 67626,
- 67634, 67643, 67652, 67661, 67670, 67679, 67688, 67697, 67706, 67715,
- 67724, 67733, 67742, 67751, 67760, 67769, 67772, 67775, 67778, 67780,
- 67783, 67786, 67789, 67794, 67799, 67802, 67809, 67816, 67823, 67830,
- 67833, 67838, 67840, 67844, 67846, 67848, 67851, 67854, 67857, 67860,
- 67863, 67866, 67869, 67874, 67879, 67882, 67885, 67888, 67891, 67894,
- 67897, 67900, 67904, 67907, 67910, 67913, 67916, 67919, 67924, 67927,
- 67930, 67933, 67938, 67943, 67948, 67953, 67958, 67963, 67968, 67973,
- 67979, 67987, 67989, 67992, 67995, 67998, 68001, 68007, 68015, 68018,
- 68021, 68026, 68029, 68032, 68035, 68040, 68043, 68046, 68051, 68054,
- 68057, 68062, 68065, 68068, 68073, 68078, 68083, 68086, 68089, 68092,
- 68095, 68101, 68104, 68107, 68110, 68112, 68115, 68118, 68121, 68126,
- 68129, 68132, 68135, 68138, 68141, 68146, 68149, 68152, 68155, 68158,
- 68161, 68164, 68167, 68170, 68173, 68179, 68184, 68192, 68200, 68208,
- 68216, 68224, 68232, 68240, 68248, 68256, 68265, 68274, 68283, 68292,
- 68301, 68310, 68319, 68328, 68337, 68346, 68355, 68364, 68373, 68382,
- 68391, 68400, 68409, 68418, 68427, 68436, 68445, 68454, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62204, 62208, 62212, 62217, 62222, 62227, 62231, 62235,
+ 62239, 62244, 62249, 62253, 62257, 62261, 62265, 62270, 62275, 62280,
+ 62285, 62289, 62293, 62298, 62303, 62308, 62313, 62317, 0, 62321, 62325,
+ 62329, 62333, 62337, 62341, 62345, 62350, 62355, 62359, 62364, 62369,
+ 62378, 62382, 62386, 62390, 62397, 62401, 62406, 62411, 62415, 62419,
+ 62425, 62430, 62435, 62440, 62445, 62449, 62453, 62457, 62461, 62465,
+ 62470, 62475, 62479, 62483, 62488, 62493, 62498, 62502, 62506, 62511,
+ 62516, 62522, 62528, 62532, 62538, 62544, 62548, 62554, 62560, 62565,
+ 62570, 62574, 62580, 62584, 62588, 62594, 62600, 62605, 62610, 62614,
+ 62618, 62626, 62632, 62638, 62644, 62649, 62654, 62659, 62665, 62669,
+ 62675, 62679, 62683, 62689, 62695, 62701, 62707, 62713, 62719, 62725,
+ 62731, 62737, 62743, 62749, 62755, 62759, 62765, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 62771, 62774, 62778, 62782, 62786, 62790, 62793, 62796,
+ 62800, 62804, 62808, 62812, 62815, 62820, 62824, 62828, 62832, 62838,
+ 62842, 62846, 62850, 62854, 62861, 62867, 62871, 62875, 62879, 62883,
+ 62887, 62891, 62895, 62899, 62903, 62907, 62911, 62917, 62921, 62925,
+ 62929, 62933, 62937, 62941, 62945, 62949, 62953, 62957, 62961, 62965,
+ 62969, 62973, 62977, 62981, 62987, 62993, 62998, 63003, 63007, 63011,
+ 63015, 63019, 63023, 63027, 63031, 63035, 63039, 63043, 63047, 63051,
+ 63055, 63059, 63063, 63067, 63071, 63075, 63079, 63083, 63087, 63091,
+ 63095, 63099, 63105, 63109, 63113, 63117, 63121, 63125, 63129, 63133,
+ 63137, 63142, 63149, 63153, 63157, 63161, 63165, 63169, 63173, 63177,
+ 63181, 63185, 63189, 63193, 63197, 63204, 63208, 63214, 63218, 63222,
+ 63226, 63230, 63234, 63237, 63241, 63245, 63249, 63253, 63257, 63261,
+ 63265, 63269, 63273, 63277, 63281, 63285, 63289, 63293, 63297, 63301,
+ 63305, 63309, 63313, 63317, 63321, 63325, 63329, 63333, 63337, 63341,
+ 63345, 63349, 63353, 63357, 63361, 63365, 63371, 63375, 63379, 63383,
+ 63387, 63391, 63395, 63399, 63403, 63407, 63411, 63415, 63419, 63423,
+ 63427, 63431, 63435, 63439, 63443, 63447, 63451, 63455, 63459, 63463,
+ 63467, 63471, 63475, 63479, 63487, 63491, 63495, 63499, 63503, 63507,
+ 63513, 63517, 63521, 63525, 63529, 63533, 63537, 63541, 63545, 63549,
+ 63553, 63557, 63561, 63565, 63571, 63575, 63579, 63583, 63587, 63591,
+ 63595, 63599, 63603, 63607, 63611, 63615, 63619, 63623, 63627, 63631,
+ 63635, 63639, 63643, 63647, 63651, 63655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63659, 63668, 63676,
+ 63687, 63697, 63706, 63716, 63726, 63737, 63749, 63761, 63773, 0, 0, 0,
+ 0, 63780, 63783, 63786, 63791, 63794, 63801, 63805, 63809, 63813, 63817,
+ 63821, 63826, 63831, 63835, 63839, 63844, 63849, 63854, 63859, 63862,
+ 63865, 63871, 63877, 63882, 63887, 63894, 63901, 63905, 63909, 63913,
+ 63921, 63927, 63934, 63939, 63944, 63949, 63954, 63959, 63964, 63969,
+ 63974, 63979, 63984, 63989, 63994, 63999, 64004, 64010, 64015, 64019,
+ 64025, 64036, 64045, 64059, 64068, 64072, 64082, 64088, 64094, 64100,
+ 64105, 64108, 64113, 64117, 0, 64123, 64128, 64132, 64137, 64141, 64146,
+ 64150, 64155, 64159, 64164, 64168, 64172, 64177, 64182, 64187, 64192,
+ 64197, 64202, 64207, 64212, 64217, 64221, 64226, 64231, 64236, 64241,
+ 64246, 64251, 64256, 64261, 64266, 64270, 64275, 64280, 64285, 64291,
+ 64296, 64301, 64306, 64311, 64315, 64320, 64324, 64329, 64334, 64339,
+ 64344, 64348, 64353, 64357, 64362, 64367, 64372, 64377, 64382, 64387,
+ 64392, 64397, 64402, 64407, 64412, 64417, 64421, 64426, 64431, 64436,
+ 64441, 64446, 64450, 64456, 64461, 64467, 64472, 64476, 64481, 64486,
+ 64491, 64496, 64502, 64507, 64512, 64517, 64522, 64527, 64532, 64537, 0,
+ 0, 64543, 64551, 64559, 64566, 64573, 64578, 64585, 64591, 64596, 64600,
+ 64603, 64607, 64610, 64614, 64617, 64621, 64624, 64628, 64631, 64634,
+ 64638, 64642, 64646, 64650, 64654, 64658, 64662, 64666, 64670, 64673,
+ 64677, 64681, 64685, 64689, 64693, 64697, 64701, 64705, 64709, 64712,
+ 64716, 64720, 64724, 64729, 64733, 64737, 64741, 64745, 64748, 64752,
+ 64755, 64759, 64763, 64767, 64771, 64774, 64778, 64781, 64785, 64789,
+ 64793, 64797, 64801, 64805, 64809, 64813, 64817, 64821, 64825, 64829,
+ 64832, 64836, 64840, 64844, 64848, 64852, 64855, 64860, 64864, 64869,
+ 64873, 64876, 64880, 64884, 64888, 64892, 64897, 64901, 64905, 64909,
+ 64913, 64917, 64921, 64925, 64930, 64934, 64938, 64942, 64946, 64950,
+ 64957, 64961, 64967, 0, 0, 0, 0, 0, 64972, 64977, 64982, 64987, 64992,
+ 64997, 65002, 65007, 65011, 65016, 65021, 65026, 65031, 65036, 65041,
+ 65046, 65051, 65056, 65060, 65065, 65070, 65075, 65079, 65083, 65087,
+ 65092, 65097, 65102, 65107, 65112, 65117, 65122, 65127, 65132, 65137,
+ 65141, 65145, 65150, 65155, 65160, 65165, 65170, 65177, 0, 65182, 65186,
+ 65190, 65194, 65198, 65202, 65206, 65210, 65214, 65218, 65222, 65226,
+ 65230, 65234, 65238, 65242, 65246, 65250, 65254, 65258, 65262, 65266,
+ 65270, 65274, 65278, 65282, 65286, 65290, 65294, 65298, 65302, 65305,
+ 65309, 65312, 65316, 65320, 65323, 65327, 65331, 65334, 65338, 65342,
+ 65346, 65350, 65353, 65357, 65361, 65365, 65369, 65373, 65377, 65380,
+ 65383, 65387, 65391, 65395, 65399, 65403, 65407, 65411, 65415, 65419,
+ 65423, 65427, 65431, 65435, 65439, 65443, 65447, 65451, 65455, 65459,
+ 65463, 65467, 65471, 65475, 65479, 65483, 65487, 65491, 65495, 65499,
+ 65503, 65507, 65511, 65515, 65519, 65523, 65527, 65531, 65535, 65539,
+ 65543, 65547, 0, 65551, 65557, 65563, 65568, 65573, 65578, 65584, 65590,
+ 65595, 65601, 65607, 65613, 65619, 65625, 65631, 65637, 65643, 65648,
+ 65653, 65658, 65663, 65668, 65673, 65678, 65683, 65688, 65693, 65698,
+ 65703, 65708, 65713, 65718, 65723, 65728, 65733, 65738, 65743, 65749,
+ 65755, 65761, 65767, 65772, 65777, 65782, 65788, 65793, 65798, 65803,
+ 65808, 65813, 65818, 65823, 65828, 65833, 65838, 65843, 65848, 65853,
+ 65858, 65863, 65868, 65873, 65878, 65883, 65888, 65893, 65898, 65903,
+ 65908, 65913, 65918, 65923, 65928, 65933, 65938, 65943, 65948, 65953,
+ 65958, 65963, 65968, 65973, 65978, 65983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 65988, 65993, 65998, 66003, 66007, 66012, 66016, 66021, 66026,
+ 66031, 66036, 66041, 66045, 66050, 66055, 66060, 66065, 66069, 66073,
+ 66077, 66081, 66085, 66089, 66093, 66097, 66101, 66105, 66109, 66113,
+ 66117, 66121, 66126, 66131, 66136, 66141, 66146, 66151, 66156, 66161,
+ 66166, 66171, 66176, 66181, 66186, 66191, 66196, 66203, 0, 66211, 66215,
+ 66219, 66223, 66227, 66231, 66235, 66239, 66243, 66247, 66252, 66257,
+ 66262, 66267, 66272, 66277, 66282, 66287, 66292, 66297, 66302, 66307,
+ 66312, 66317, 66322, 66327, 66332, 66337, 66342, 66347, 66352, 66357,
+ 66362, 66367, 66372, 66377, 66382, 66387, 66392, 66397, 66402, 66411,
+ 66420, 66429, 66438, 66447, 66456, 66465, 66474, 66477, 66482, 66487,
+ 66492, 66497, 66502, 66507, 66512, 66517, 66522, 66526, 66531, 66536,
+ 66541, 66546, 66551, 66555, 66559, 66563, 66567, 66571, 66575, 66579,
+ 66583, 66587, 66591, 66595, 66599, 66603, 66607, 66612, 66617, 66622,
+ 66627, 66632, 66637, 66642, 66647, 66652, 66657, 66662, 66667, 66672,
+ 66677, 66684, 66691, 66696, 66701, 66705, 66709, 66713, 66717, 66721,
+ 66725, 66729, 66733, 66737, 66742, 66747, 66752, 66757, 66762, 66767,
+ 66772, 66777, 66782, 66787, 66792, 66797, 66802, 66807, 66812, 66817,
+ 66822, 66827, 66832, 66837, 66842, 66847, 66852, 66857, 66862, 66867,
+ 66872, 66877, 66882, 66887, 66892, 66897, 66902, 66907, 66912, 66917,
+ 66922, 66927, 66932, 66937, 66942, 66947, 66952, 66957, 66961, 66966,
+ 66971, 66976, 66981, 66986, 66991, 66996, 67001, 67006, 67010, 67017,
+ 67024, 67031, 67038, 67045, 67052, 67059, 67066, 67073, 67080, 67087,
+ 67094, 67097, 67100, 67103, 67108, 67111, 67114, 67117, 67120, 67123,
+ 67126, 67130, 67134, 67138, 67142, 67145, 67149, 67153, 67157, 67161,
+ 67164, 67168, 67172, 67176, 67179, 67182, 67186, 67190, 67194, 67198,
+ 67201, 67205, 67209, 67213, 67217, 67220, 67224, 67228, 67232, 67236,
+ 67239, 67243, 67247, 67250, 67254, 67258, 67262, 67266, 67270, 67274,
+ 67278, 67282, 67289, 67292, 67295, 67298, 67301, 67304, 67307, 67310,
+ 67313, 67316, 67319, 67322, 67325, 67328, 67331, 67334, 67337, 67340,
+ 67343, 67346, 67349, 67352, 67355, 67358, 67361, 67364, 67367, 67370,
+ 67373, 67376, 67379, 67382, 67385, 67388, 67391, 67394, 67397, 67400,
+ 67403, 67406, 67409, 67412, 67415, 67418, 67421, 67424, 67427, 67430,
+ 67433, 67436, 67439, 67442, 67445, 67448, 67451, 67454, 67457, 67460,
+ 67463, 67466, 67469, 67472, 67475, 67478, 67481, 67484, 67487, 67490,
+ 67493, 67496, 67499, 67502, 67505, 67508, 67511, 67514, 67517, 67520,
+ 67523, 67526, 67529, 67532, 67535, 67538, 67541, 67544, 67547, 67550,
+ 67553, 67562, 67570, 67578, 67586, 67594, 67602, 67610, 67618, 67626,
+ 67634, 67643, 67652, 67661, 67670, 67679, 67688, 67697, 67706, 67715,
+ 67724, 67733, 67742, 67751, 67760, 67769, 67772, 67775, 67778, 67780,
+ 67783, 67786, 67789, 67794, 67799, 67802, 67809, 67816, 67823, 67830,
+ 67833, 67838, 67840, 67844, 67846, 67848, 67851, 67854, 67857, 67860,
+ 67863, 67866, 67869, 67874, 67879, 67882, 67885, 67888, 67891, 67894,
+ 67897, 67900, 67904, 67907, 67910, 67913, 67916, 67919, 67924, 67927,
+ 67930, 67933, 67938, 67943, 67948, 67953, 67958, 67963, 67968, 67973,
+ 67979, 67987, 67989, 67992, 67995, 67998, 68001, 68007, 68015, 68018,
+ 68021, 68026, 68029, 68032, 68035, 68040, 68043, 68046, 68051, 68054,
+ 68057, 68062, 68065, 68068, 68073, 68078, 68083, 68086, 68089, 68092,
+ 68095, 68101, 68104, 68107, 68110, 68112, 68115, 68118, 68121, 68126,
+ 68129, 68132, 68135, 68138, 68141, 68146, 68149, 68152, 68155, 68158,
+ 68161, 68164, 68167, 68170, 68173, 68179, 68184, 68192, 68200, 68208,
+ 68216, 68224, 68232, 68240, 68248, 68256, 68265, 68274, 68283, 68292,
+ 68301, 68310, 68319, 68328, 68337, 68346, 68355, 68364, 68373, 68382,
+ 68391, 68400, 68409, 68418, 68427, 68436, 68445, 68454, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21507,307 +21507,307 @@ static const unsigned int phrasebook_offset2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68457, 68466, 68475, 68486, 68493, 68498,
- 68503, 68510, 68517, 68523, 68528, 68533, 68538, 68543, 68550, 68555,
- 68560, 68565, 68576, 68581, 68586, 68593, 68598, 68605, 68610, 68615,
- 68622, 68629, 68636, 68645, 68654, 68659, 68664, 68669, 68676, 68681,
- 68691, 68698, 68703, 68708, 68713, 68718, 68723, 68728, 68736, 68743,
- 68750, 68755, 68762, 68767, 68774, 68783, 68794, 68799, 68808, 68813,
- 68820, 68829, 68838, 68843, 68848, 68855, 68861, 68868, 68875, 68879,
- 68883, 68886, 68890, 68894, 68898, 68902, 68906, 68910, 68914, 68917,
- 68921, 68925, 68929, 68933, 68937, 68941, 68944, 68948, 68952, 68955,
- 68959, 68963, 68967, 68971, 68975, 68979, 68983, 68987, 68991, 68995,
- 68999, 69003, 69007, 69011, 69015, 69019, 69023, 69027, 69031, 69035,
- 69039, 69043, 69047, 69051, 69055, 69059, 69063, 69067, 69071, 69075,
- 69079, 69083, 69087, 69091, 69095, 69099, 69103, 69107, 69111, 69115,
- 69119, 69123, 69127, 69131, 69134, 69138, 69142, 69146, 69150, 69154,
- 69158, 69162, 69166, 69170, 69174, 69178, 69182, 69186, 69190, 69194,
- 69198, 69202, 69206, 69210, 69214, 69218, 69222, 69226, 69230, 69234,
- 69238, 69242, 69246, 69250, 69254, 69258, 69262, 69266, 69270, 69274,
- 69278, 69282, 69286, 69290, 69294, 69298, 69302, 69306, 69310, 69314,
- 69318, 69322, 69326, 69330, 69334, 69338, 69342, 69346, 69350, 69354,
- 69358, 69362, 69366, 69370, 69374, 69378, 69382, 69386, 69390, 69394,
- 69398, 69402, 69406, 69410, 69414, 69418, 69422, 69426, 69430, 69434,
- 69438, 69442, 69446, 69450, 69454, 69458, 69462, 69466, 69470, 69474,
- 69478, 69482, 69486, 69490, 69494, 69498, 69502, 69506, 69510, 69514,
- 69518, 69522, 69526, 69530, 69534, 69538, 69542, 69546, 69550, 69554,
- 69558, 69562, 69566, 69570, 69574, 69578, 69582, 69586, 69590, 69594,
- 69598, 69602, 69605, 69609, 69613, 69617, 69621, 69625, 69629, 69633,
- 69637, 69641, 69645, 69649, 69653, 69657, 69661, 69665, 69669, 69673,
- 69677, 69681, 69685, 69689, 69693, 69697, 69701, 69705, 69709, 69713,
- 69717, 69721, 69725, 69729, 69733, 69737, 69741, 69745, 69749, 69753,
- 69757, 69761, 69765, 69769, 69773, 69777, 69781, 69785, 69789, 69793,
- 69797, 69801, 69805, 69809, 69813, 69817, 69821, 69825, 69829, 69833,
- 69837, 69841, 69845, 69849, 69853, 69857, 69861, 69865, 69869, 69873,
- 69877, 69881, 69885, 69889, 69893, 69897, 69901, 69905, 69909, 69913,
- 69917, 69921, 69925, 69929, 69933, 69937, 69941, 69945, 69949, 69953,
- 69957, 69961, 69965, 69969, 69973, 69977, 69981, 69985, 69989, 69993,
- 69997, 70001, 70005, 70009, 70013, 70017, 70021, 70025, 70029, 70033,
- 70036, 70040, 70044, 70048, 70052, 70056, 70060, 70064, 70067, 70071,
- 70075, 70079, 70083, 70087, 70091, 70095, 70099, 70103, 70107, 70111,
- 70115, 70119, 70123, 70127, 70131, 70135, 70139, 70143, 70147, 70151,
- 70155, 70159, 70163, 70167, 70171, 70175, 70179, 70183, 70187, 70191,
- 70195, 70199, 70203, 70207, 70211, 70215, 70219, 70223, 70227, 70231,
- 70235, 70239, 70243, 70247, 70251, 70255, 70259, 70263, 70267, 70271,
- 70275, 70279, 70283, 70287, 70291, 70295, 70299, 70303, 70307, 70311,
- 70315, 70319, 70323, 70327, 70331, 70335, 70339, 70343, 70347, 70351,
- 70355, 70359, 70363, 70367, 70371, 70375, 70379, 70383, 70387, 70391,
- 70395, 70399, 70403, 70407, 70411, 70415, 70419, 70423, 70426, 70430,
- 70434, 70438, 70442, 70446, 70450, 70454, 70458, 70462, 70466, 70470,
- 70474, 70478, 70482, 70486, 70490, 70494, 70498, 70502, 70506, 70510,
- 70514, 70518, 70522, 70526, 70530, 70534, 70538, 70542, 70546, 70550,
- 70554, 70558, 70562, 70566, 70570, 70574, 70578, 70582, 70586, 70590,
- 70594, 70598, 70602, 70606, 70610, 70614, 70618, 70622, 70626, 70630,
- 70634, 70638, 70642, 70646, 70650, 70654, 70658, 70662, 70665, 70669,
- 70673, 70677, 70681, 70685, 70689, 70693, 70697, 70701, 70705, 70709,
- 70713, 70717, 70721, 70725, 70729, 70733, 70737, 70741, 70745, 70749,
- 70753, 70757, 70761, 70765, 70769, 70773, 70777, 70781, 70785, 70789,
- 70793, 70797, 70801, 70805, 70809, 70813, 70817, 70821, 70825, 70829,
- 70833, 70837, 70841, 70845, 70849, 70853, 70857, 70861, 70865, 70869,
- 70873, 70877, 70881, 70885, 70889, 70893, 70897, 70901, 70905, 70909,
- 70913, 70917, 70920, 70924, 70928, 70932, 70936, 70940, 70944, 70948,
- 70952, 70956, 70960, 70964, 70968, 70972, 70976, 70980, 70984, 70988,
- 70992, 70996, 71000, 71004, 71008, 71012, 71016, 71020, 71024, 71028,
- 71032, 71036, 71040, 71044, 71048, 71052, 71056, 71060, 71064, 71068,
- 71072, 71076, 71080, 71084, 71088, 71092, 71096, 71100, 71104, 71108,
- 71112, 71116, 71120, 71124, 71128, 71132, 71136, 71140, 71144, 71148,
- 71152, 71156, 71160, 71164, 71168, 71172, 71176, 71180, 71184, 71188,
- 71192, 71196, 71200, 71204, 71208, 71212, 71216, 71220, 71224, 71228,
- 71232, 71236, 71240, 71244, 71248, 71252, 71256, 71260, 71264, 71268,
- 71272, 71276, 71280, 71284, 71288, 71292, 71296, 71300, 71304, 71308,
- 71312, 71316, 71320, 71324, 71328, 71332, 71336, 71340, 71344, 71348,
- 71352, 71356, 71360, 71364, 71368, 71372, 71375, 71379, 71383, 71387,
- 71391, 71395, 71399, 71403, 71407, 71411, 71415, 71419, 71423, 71427,
- 71431, 71435, 71439, 71443, 71447, 71451, 71455, 71459, 71463, 71467,
- 71471, 71475, 71479, 71483, 71487, 71491, 71495, 71499, 71503, 71507,
- 71511, 71515, 71519, 71523, 71527, 71531, 71535, 71539, 71543, 71547,
- 71551, 71555, 71559, 71563, 71567, 71571, 71575, 71579, 71583, 71587,
- 71591, 71595, 71599, 71603, 71607, 71611, 71615, 71619, 71623, 71627,
- 71631, 71635, 71639, 71643, 71647, 71651, 71655, 71659, 71663, 71667,
- 71671, 71675, 71679, 71683, 71687, 71691, 71695, 71699, 71703, 71707,
- 71711, 71715, 71719, 71723, 71727, 71731, 71735, 71739, 71743, 71747,
- 71751, 71755, 71759, 71763, 71767, 71771, 71775, 71779, 71783, 71787,
- 71791, 71795, 71799, 71803, 71807, 71811, 71815, 71819, 71823, 71827,
- 71831, 71835, 71839, 71843, 71847, 71851, 71855, 71859, 71863, 71867,
- 71871, 71875, 71879, 71883, 71887, 71891, 71895, 71899, 71903, 71907,
- 71911, 71915, 71919, 71923, 71927, 71931, 71935, 71939, 71943, 71947,
- 71951, 71955, 71959, 71963, 71967, 71971, 71975, 71978, 71982, 71986,
- 71990, 71994, 71998, 72002, 72006, 72009, 72013, 72017, 72021, 72025,
- 72029, 72033, 72037, 72041, 72045, 72049, 72053, 72057, 72061, 72065,
- 72069, 72073, 72077, 72081, 72085, 72089, 72093, 72097, 72101, 72105,
- 72109, 72113, 72117, 72121, 72125, 72129, 72133, 72137, 72141, 72145,
- 72149, 72153, 72157, 72161, 72165, 72169, 72173, 72177, 72181, 72185,
- 72189, 72193, 72197, 72201, 72205, 72209, 72213, 72217, 72221, 72225,
- 72229, 72233, 72237, 72241, 72245, 72249, 72253, 72257, 72261, 72265,
- 72269, 72273, 72277, 72281, 72285, 72289, 72293, 72297, 72301, 72305,
- 72309, 72313, 72317, 72321, 72325, 72329, 72333, 72337, 72341, 72345,
- 72349, 72353, 72357, 72361, 72365, 72369, 72373, 72377, 72381, 72385,
- 72389, 72393, 72397, 72401, 72405, 72409, 72413, 72417, 72421, 72425,
- 72429, 72433, 72437, 72441, 72445, 72449, 72453, 72457, 72461, 72465,
- 72469, 72473, 72477, 72481, 72485, 72489, 72493, 72497, 72501, 72505,
- 72509, 72513, 72517, 72521, 72525, 72529, 72533, 72537, 72541, 72545,
- 72549, 72553, 72557, 72561, 72565, 72569, 72573, 72577, 72581, 72585,
- 72589, 72593, 72597, 72601, 72605, 72609, 72613, 72617, 72621, 72625,
- 72629, 72633, 72637, 72641, 72645, 72649, 72653, 72657, 72661, 72665,
- 72669, 72673, 72677, 72681, 72685, 72689, 72693, 72697, 72701, 72705,
- 72709, 72713, 72717, 72721, 72725, 72729, 72733, 72736, 72740, 72744,
- 72748, 72752, 72756, 72760, 72764, 72768, 72772, 72776, 72780, 72784,
- 72788, 72792, 72796, 72800, 72804, 72808, 72812, 72816, 72820, 72824,
- 72828, 72832, 72836, 72840, 72844, 72848, 72852, 72856, 72860, 72864,
- 72868, 72872, 72876, 72880, 72884, 72888, 72892, 72896, 72900, 72904,
- 72908, 72912, 72916, 72920, 72924, 72928, 72932, 72936, 72940, 72944,
- 72948, 72952, 72956, 72960, 72964, 72968, 72972, 72976, 72980, 72984,
- 72988, 72992, 72996, 73000, 73004, 73008, 73012, 73016, 73020, 73024,
- 73028, 73032, 73036, 73040, 73044, 73048, 73052, 73056, 73060, 73064,
- 73068, 73072, 73076, 73080, 73084, 73088, 73092, 73096, 73100, 73104,
- 73108, 73112, 73116, 73120, 73124, 73128, 73132, 73136, 73140, 73144,
- 73148, 73152, 73156, 73160, 73164, 73168, 73172, 73176, 73180, 73184,
- 73188, 73192, 73196, 73200, 73204, 73208, 73212, 73216, 73220, 73224,
- 73228, 73232, 73236, 73240, 73244, 73248, 73252, 73256, 73260, 73264,
- 73268, 73272, 73276, 73280, 73284, 73288, 73292, 73296, 73300, 73304,
- 73308, 73312, 73316, 73320, 73324, 73328, 73332, 73336, 73340, 73344,
- 73348, 73352, 73356, 73360, 73364, 73368, 73372, 73376, 73380, 73384,
- 73388, 73392, 73396, 73400, 73404, 73408, 73412, 73416, 73420, 73424,
- 73428, 73432, 73436, 73440, 73444, 73448, 73452, 73456, 73460, 73464,
- 73468, 73472, 73476, 73480, 73484, 73488, 73492, 73496, 73500, 73504,
- 73508, 73512, 73516, 0, 0, 0, 73520, 73524, 73528, 73532, 73536, 73540,
- 73544, 73548, 73552, 73556, 73560, 73564, 73568, 73572, 73576, 73580,
- 73584, 73588, 73592, 73596, 73600, 73604, 73608, 73612, 73616, 73620,
- 73624, 73628, 73632, 73636, 73640, 73644, 73648, 73652, 73656, 73660,
- 73664, 73668, 73672, 73676, 73680, 73684, 73688, 73692, 73696, 73700,
- 73704, 73708, 73712, 73716, 73720, 73724, 73728, 73732, 73736, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 73740, 73745, 73749, 73754, 73759, 73763, 73768, 73773,
- 73777, 73782, 73787, 73792, 73797, 73802, 73807, 73812, 73816, 73820,
- 73824, 73828, 73833, 73838, 73843, 73847, 73852, 73857, 73862, 73867,
- 73872, 73876, 73881, 73885, 73890, 73894, 73899, 73903, 73907, 73911,
- 73916, 73921, 73926, 73934, 73942, 73950, 73958, 73965, 73973, 73979,
- 73987, 73991, 73995, 73999, 74003, 74007, 74011, 74015, 74019, 74023,
- 74027, 74031, 74035, 74039, 74043, 74047, 74051, 74055, 74059, 74063,
- 74067, 74071, 74075, 74079, 74083, 74087, 74091, 74095, 74099, 74103,
- 74107, 74111, 74115, 74119, 74123, 74127, 74131, 74134, 74138, 74142,
- 74146, 74150, 74154, 74158, 74162, 74166, 74170, 74174, 74178, 74182,
- 74186, 74190, 74194, 74198, 74202, 74206, 74210, 74214, 74218, 74222,
- 74226, 74230, 74234, 74238, 74242, 74246, 74250, 74254, 74258, 74262,
- 74266, 74270, 74274, 74278, 74281, 74285, 74289, 74292, 74296, 74300,
- 74304, 74307, 74311, 74315, 74319, 74323, 74327, 74331, 74335, 74339,
- 74343, 74346, 74350, 74354, 74358, 74361, 74364, 74368, 74372, 74375,
- 74379, 74383, 74387, 74391, 74395, 74399, 74402, 74405, 74409, 74413,
- 74417, 74420, 74423, 74427, 74431, 74435, 74439, 74443, 74447, 74451,
- 74455, 74459, 74463, 74467, 74471, 74475, 74479, 74483, 74487, 74491,
- 74495, 74499, 74503, 74507, 74511, 74515, 74519, 74523, 74527, 74531,
- 74535, 74539, 74543, 74547, 74551, 74555, 74559, 74563, 74567, 74571,
- 74574, 74578, 74582, 74586, 74590, 74594, 74598, 74602, 74606, 74610,
- 74614, 74618, 74622, 74626, 74630, 74634, 74638, 74642, 74646, 74650,
- 74654, 74658, 74662, 74666, 74670, 74674, 74678, 74682, 74686, 74690,
- 74694, 74698, 74702, 74706, 74710, 74714, 74718, 74721, 74725, 74729,
- 74733, 74737, 74741, 74745, 74749, 74753, 74757, 74761, 74765, 74769,
- 74773, 74777, 74781, 74785, 74788, 74792, 74796, 74800, 74804, 74808,
- 74812, 74816, 74820, 74824, 74828, 74832, 74836, 74840, 74844, 74848,
- 74852, 74856, 74860, 74864, 74868, 74872, 74875, 74879, 74883, 74887,
- 74891, 74895, 74899, 74903, 74907, 74911, 74915, 74919, 74923, 74927,
- 74931, 74935, 74939, 74943, 74947, 74951, 74955, 74959, 74963, 74967,
- 74971, 74975, 74979, 74983, 74987, 74991, 74995, 74999, 75003, 75007,
- 75011, 75015, 75019, 75023, 75027, 75031, 75035, 75039, 75043, 75047,
- 75050, 75055, 75059, 75065, 75070, 75076, 75080, 75084, 75088, 75092,
- 75096, 75100, 75104, 75108, 75112, 75116, 75120, 75124, 75128, 75132,
- 75135, 75138, 75141, 75144, 75147, 75150, 75153, 75156, 75159, 75164, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75170, 75175,
- 75180, 75185, 75190, 75197, 75204, 75209, 75214, 75219, 75224, 75231,
- 75238, 75245, 75252, 75259, 75266, 75276, 75286, 75293, 75300, 75307,
- 75314, 75320, 75326, 75335, 75344, 75351, 75358, 75369, 75380, 75385,
- 75390, 75397, 75404, 75411, 75418, 75425, 75432, 75439, 75446, 75452,
- 75458, 75464, 75470, 75477, 75484, 75489, 75493, 75500, 75507, 75514,
- 75518, 75525, 75529, 75534, 75538, 75544, 75549, 75555, 75560, 75564,
- 75568, 75571, 75574, 75579, 75584, 75589, 75594, 75599, 75604, 75609,
- 75614, 75619, 75624, 75632, 75640, 75645, 75650, 75655, 75660, 75665,
- 75670, 75675, 75680, 75685, 75690, 75695, 75700, 75705, 75710, 75716,
- 75722, 75728, 75734, 75739, 75745, 75748, 75751, 75754, 75758, 75762,
- 75766, 75770, 75773, 75777, 75780, 75783, 75786, 75790, 75794, 75798,
- 75802, 75806, 75810, 75814, 75818, 75822, 75826, 75830, 75834, 75838,
- 75842, 75846, 75850, 75854, 75858, 75862, 75866, 75870, 75874, 75877,
- 75881, 75885, 75889, 75893, 75897, 75901, 75905, 75909, 75913, 75917,
- 75921, 75925, 75929, 75933, 75937, 75941, 75945, 75949, 75953, 75957,
- 75961, 75965, 75969, 75973, 75976, 75980, 75984, 75988, 75992, 75996,
- 76000, 76004, 76007, 76011, 76015, 76019, 76023, 76027, 76031, 76035,
- 76039, 76043, 76047, 76051, 76055, 76060, 76065, 76068, 76073, 76076,
- 76079, 76082, 0, 0, 0, 0, 0, 0, 0, 0, 76086, 76095, 76104, 76113, 76122,
- 76131, 76140, 76149, 76158, 76166, 76173, 76181, 76188, 76196, 76206,
- 76215, 76225, 76234, 76244, 76252, 76259, 76267, 76274, 76282, 76287,
- 76292, 76298, 76306, 76312, 76318, 76325, 76334, 76342, 76350, 76358,
- 76365, 76372, 76379, 76386, 76391, 76396, 76401, 76406, 76411, 76416,
- 76421, 76426, 76434, 76442, 76448, 76454, 76459, 76464, 76469, 76474,
- 76479, 76484, 76489, 76494, 76503, 76512, 76517, 76522, 76532, 76542,
- 76549, 76556, 76565, 76574, 76586, 76598, 76604, 76610, 76618, 76626,
- 76636, 76646, 76653, 76660, 76665, 76670, 76682, 76694, 76702, 76710,
- 76720, 76730, 76742, 76754, 76763, 76772, 76779, 76786, 76793, 76800,
- 76809, 76818, 76823, 76828, 76835, 76842, 76849, 76856, 76868, 76880,
- 76885, 76890, 76895, 76900, 76905, 76910, 76915, 76920, 76924, 76929,
- 76934, 76939, 76944, 76949, 76955, 76960, 76965, 76972, 76979, 76986,
- 76993, 77000, 77008, 77016, 77021, 77026, 77032, 77038, 77045, 77052,
- 77059, 77066, 77073, 77077, 77084, 77089, 77094, 77100, 77113, 77119,
- 77127, 77135, 77142, 77149, 77158, 77167, 77174, 77181, 77188, 77195,
- 77202, 77209, 77216, 77223, 77230, 77237, 77246, 77255, 77264, 77273,
- 77282, 77291, 77300, 77309, 77318, 77327, 77334, 77342, 77348, 77356,
- 77362, 77368, 77374, 77380, 77388, 77393, 77398, 77403, 77408, 77413,
- 77419, 77425, 77431, 77437, 77443, 77449, 77455, 0, 0, 77461, 77468,
- 77475, 77484, 77491, 77500, 77512, 77524, 77536, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68457, 68466, 68475, 68486, 68493, 68498,
+ 68503, 68510, 68517, 68523, 68528, 68533, 68538, 68543, 68550, 68555,
+ 68560, 68565, 68576, 68581, 68586, 68593, 68598, 68605, 68610, 68615,
+ 68622, 68629, 68636, 68645, 68654, 68659, 68664, 68669, 68676, 68681,
+ 68691, 68698, 68703, 68708, 68713, 68718, 68723, 68728, 68736, 68743,
+ 68750, 68755, 68762, 68767, 68774, 68783, 68794, 68799, 68808, 68813,
+ 68820, 68829, 68838, 68843, 68848, 68855, 68861, 68868, 68875, 68879,
+ 68883, 68886, 68890, 68894, 68898, 68902, 68906, 68910, 68914, 68917,
+ 68921, 68925, 68929, 68933, 68937, 68941, 68944, 68948, 68952, 68955,
+ 68959, 68963, 68967, 68971, 68975, 68979, 68983, 68987, 68991, 68995,
+ 68999, 69003, 69007, 69011, 69015, 69019, 69023, 69027, 69031, 69035,
+ 69039, 69043, 69047, 69051, 69055, 69059, 69063, 69067, 69071, 69075,
+ 69079, 69083, 69087, 69091, 69095, 69099, 69103, 69107, 69111, 69115,
+ 69119, 69123, 69127, 69131, 69134, 69138, 69142, 69146, 69150, 69154,
+ 69158, 69162, 69166, 69170, 69174, 69178, 69182, 69186, 69190, 69194,
+ 69198, 69202, 69206, 69210, 69214, 69218, 69222, 69226, 69230, 69234,
+ 69238, 69242, 69246, 69250, 69254, 69258, 69262, 69266, 69270, 69274,
+ 69278, 69282, 69286, 69290, 69294, 69298, 69302, 69306, 69310, 69314,
+ 69318, 69322, 69326, 69330, 69334, 69338, 69342, 69346, 69350, 69354,
+ 69358, 69362, 69366, 69370, 69374, 69378, 69382, 69386, 69390, 69394,
+ 69398, 69402, 69406, 69410, 69414, 69418, 69422, 69426, 69430, 69434,
+ 69438, 69442, 69446, 69450, 69454, 69458, 69462, 69466, 69470, 69474,
+ 69478, 69482, 69486, 69490, 69494, 69498, 69502, 69506, 69510, 69514,
+ 69518, 69522, 69526, 69530, 69534, 69538, 69542, 69546, 69550, 69554,
+ 69558, 69562, 69566, 69570, 69574, 69578, 69582, 69586, 69590, 69594,
+ 69598, 69602, 69605, 69609, 69613, 69617, 69621, 69625, 69629, 69633,
+ 69637, 69641, 69645, 69649, 69653, 69657, 69661, 69665, 69669, 69673,
+ 69677, 69681, 69685, 69689, 69693, 69697, 69701, 69705, 69709, 69713,
+ 69717, 69721, 69725, 69729, 69733, 69737, 69741, 69745, 69749, 69753,
+ 69757, 69761, 69765, 69769, 69773, 69777, 69781, 69785, 69789, 69793,
+ 69797, 69801, 69805, 69809, 69813, 69817, 69821, 69825, 69829, 69833,
+ 69837, 69841, 69845, 69849, 69853, 69857, 69861, 69865, 69869, 69873,
+ 69877, 69881, 69885, 69889, 69893, 69897, 69901, 69905, 69909, 69913,
+ 69917, 69921, 69925, 69929, 69933, 69937, 69941, 69945, 69949, 69953,
+ 69957, 69961, 69965, 69969, 69973, 69977, 69981, 69985, 69989, 69993,
+ 69997, 70001, 70005, 70009, 70013, 70017, 70021, 70025, 70029, 70033,
+ 70036, 70040, 70044, 70048, 70052, 70056, 70060, 70064, 70067, 70071,
+ 70075, 70079, 70083, 70087, 70091, 70095, 70099, 70103, 70107, 70111,
+ 70115, 70119, 70123, 70127, 70131, 70135, 70139, 70143, 70147, 70151,
+ 70155, 70159, 70163, 70167, 70171, 70175, 70179, 70183, 70187, 70191,
+ 70195, 70199, 70203, 70207, 70211, 70215, 70219, 70223, 70227, 70231,
+ 70235, 70239, 70243, 70247, 70251, 70255, 70259, 70263, 70267, 70271,
+ 70275, 70279, 70283, 70287, 70291, 70295, 70299, 70303, 70307, 70311,
+ 70315, 70319, 70323, 70327, 70331, 70335, 70339, 70343, 70347, 70351,
+ 70355, 70359, 70363, 70367, 70371, 70375, 70379, 70383, 70387, 70391,
+ 70395, 70399, 70403, 70407, 70411, 70415, 70419, 70423, 70426, 70430,
+ 70434, 70438, 70442, 70446, 70450, 70454, 70458, 70462, 70466, 70470,
+ 70474, 70478, 70482, 70486, 70490, 70494, 70498, 70502, 70506, 70510,
+ 70514, 70518, 70522, 70526, 70530, 70534, 70538, 70542, 70546, 70550,
+ 70554, 70558, 70562, 70566, 70570, 70574, 70578, 70582, 70586, 70590,
+ 70594, 70598, 70602, 70606, 70610, 70614, 70618, 70622, 70626, 70630,
+ 70634, 70638, 70642, 70646, 70650, 70654, 70658, 70662, 70665, 70669,
+ 70673, 70677, 70681, 70685, 70689, 70693, 70697, 70701, 70705, 70709,
+ 70713, 70717, 70721, 70725, 70729, 70733, 70737, 70741, 70745, 70749,
+ 70753, 70757, 70761, 70765, 70769, 70773, 70777, 70781, 70785, 70789,
+ 70793, 70797, 70801, 70805, 70809, 70813, 70817, 70821, 70825, 70829,
+ 70833, 70837, 70841, 70845, 70849, 70853, 70857, 70861, 70865, 70869,
+ 70873, 70877, 70881, 70885, 70889, 70893, 70897, 70901, 70905, 70909,
+ 70913, 70917, 70920, 70924, 70928, 70932, 70936, 70940, 70944, 70948,
+ 70952, 70956, 70960, 70964, 70968, 70972, 70976, 70980, 70984, 70988,
+ 70992, 70996, 71000, 71004, 71008, 71012, 71016, 71020, 71024, 71028,
+ 71032, 71036, 71040, 71044, 71048, 71052, 71056, 71060, 71064, 71068,
+ 71072, 71076, 71080, 71084, 71088, 71092, 71096, 71100, 71104, 71108,
+ 71112, 71116, 71120, 71124, 71128, 71132, 71136, 71140, 71144, 71148,
+ 71152, 71156, 71160, 71164, 71168, 71172, 71176, 71180, 71184, 71188,
+ 71192, 71196, 71200, 71204, 71208, 71212, 71216, 71220, 71224, 71228,
+ 71232, 71236, 71240, 71244, 71248, 71252, 71256, 71260, 71264, 71268,
+ 71272, 71276, 71280, 71284, 71288, 71292, 71296, 71300, 71304, 71308,
+ 71312, 71316, 71320, 71324, 71328, 71332, 71336, 71340, 71344, 71348,
+ 71352, 71356, 71360, 71364, 71368, 71372, 71375, 71379, 71383, 71387,
+ 71391, 71395, 71399, 71403, 71407, 71411, 71415, 71419, 71423, 71427,
+ 71431, 71435, 71439, 71443, 71447, 71451, 71455, 71459, 71463, 71467,
+ 71471, 71475, 71479, 71483, 71487, 71491, 71495, 71499, 71503, 71507,
+ 71511, 71515, 71519, 71523, 71527, 71531, 71535, 71539, 71543, 71547,
+ 71551, 71555, 71559, 71563, 71567, 71571, 71575, 71579, 71583, 71587,
+ 71591, 71595, 71599, 71603, 71607, 71611, 71615, 71619, 71623, 71627,
+ 71631, 71635, 71639, 71643, 71647, 71651, 71655, 71659, 71663, 71667,
+ 71671, 71675, 71679, 71683, 71687, 71691, 71695, 71699, 71703, 71707,
+ 71711, 71715, 71719, 71723, 71727, 71731, 71735, 71739, 71743, 71747,
+ 71751, 71755, 71759, 71763, 71767, 71771, 71775, 71779, 71783, 71787,
+ 71791, 71795, 71799, 71803, 71807, 71811, 71815, 71819, 71823, 71827,
+ 71831, 71835, 71839, 71843, 71847, 71851, 71855, 71859, 71863, 71867,
+ 71871, 71875, 71879, 71883, 71887, 71891, 71895, 71899, 71903, 71907,
+ 71911, 71915, 71919, 71923, 71927, 71931, 71935, 71939, 71943, 71947,
+ 71951, 71955, 71959, 71963, 71967, 71971, 71975, 71978, 71982, 71986,
+ 71990, 71994, 71998, 72002, 72006, 72009, 72013, 72017, 72021, 72025,
+ 72029, 72033, 72037, 72041, 72045, 72049, 72053, 72057, 72061, 72065,
+ 72069, 72073, 72077, 72081, 72085, 72089, 72093, 72097, 72101, 72105,
+ 72109, 72113, 72117, 72121, 72125, 72129, 72133, 72137, 72141, 72145,
+ 72149, 72153, 72157, 72161, 72165, 72169, 72173, 72177, 72181, 72185,
+ 72189, 72193, 72197, 72201, 72205, 72209, 72213, 72217, 72221, 72225,
+ 72229, 72233, 72237, 72241, 72245, 72249, 72253, 72257, 72261, 72265,
+ 72269, 72273, 72277, 72281, 72285, 72289, 72293, 72297, 72301, 72305,
+ 72309, 72313, 72317, 72321, 72325, 72329, 72333, 72337, 72341, 72345,
+ 72349, 72353, 72357, 72361, 72365, 72369, 72373, 72377, 72381, 72385,
+ 72389, 72393, 72397, 72401, 72405, 72409, 72413, 72417, 72421, 72425,
+ 72429, 72433, 72437, 72441, 72445, 72449, 72453, 72457, 72461, 72465,
+ 72469, 72473, 72477, 72481, 72485, 72489, 72493, 72497, 72501, 72505,
+ 72509, 72513, 72517, 72521, 72525, 72529, 72533, 72537, 72541, 72545,
+ 72549, 72553, 72557, 72561, 72565, 72569, 72573, 72577, 72581, 72585,
+ 72589, 72593, 72597, 72601, 72605, 72609, 72613, 72617, 72621, 72625,
+ 72629, 72633, 72637, 72641, 72645, 72649, 72653, 72657, 72661, 72665,
+ 72669, 72673, 72677, 72681, 72685, 72689, 72693, 72697, 72701, 72705,
+ 72709, 72713, 72717, 72721, 72725, 72729, 72733, 72736, 72740, 72744,
+ 72748, 72752, 72756, 72760, 72764, 72768, 72772, 72776, 72780, 72784,
+ 72788, 72792, 72796, 72800, 72804, 72808, 72812, 72816, 72820, 72824,
+ 72828, 72832, 72836, 72840, 72844, 72848, 72852, 72856, 72860, 72864,
+ 72868, 72872, 72876, 72880, 72884, 72888, 72892, 72896, 72900, 72904,
+ 72908, 72912, 72916, 72920, 72924, 72928, 72932, 72936, 72940, 72944,
+ 72948, 72952, 72956, 72960, 72964, 72968, 72972, 72976, 72980, 72984,
+ 72988, 72992, 72996, 73000, 73004, 73008, 73012, 73016, 73020, 73024,
+ 73028, 73032, 73036, 73040, 73044, 73048, 73052, 73056, 73060, 73064,
+ 73068, 73072, 73076, 73080, 73084, 73088, 73092, 73096, 73100, 73104,
+ 73108, 73112, 73116, 73120, 73124, 73128, 73132, 73136, 73140, 73144,
+ 73148, 73152, 73156, 73160, 73164, 73168, 73172, 73176, 73180, 73184,
+ 73188, 73192, 73196, 73200, 73204, 73208, 73212, 73216, 73220, 73224,
+ 73228, 73232, 73236, 73240, 73244, 73248, 73252, 73256, 73260, 73264,
+ 73268, 73272, 73276, 73280, 73284, 73288, 73292, 73296, 73300, 73304,
+ 73308, 73312, 73316, 73320, 73324, 73328, 73332, 73336, 73340, 73344,
+ 73348, 73352, 73356, 73360, 73364, 73368, 73372, 73376, 73380, 73384,
+ 73388, 73392, 73396, 73400, 73404, 73408, 73412, 73416, 73420, 73424,
+ 73428, 73432, 73436, 73440, 73444, 73448, 73452, 73456, 73460, 73464,
+ 73468, 73472, 73476, 73480, 73484, 73488, 73492, 73496, 73500, 73504,
+ 73508, 73512, 73516, 0, 0, 0, 73520, 73524, 73528, 73532, 73536, 73540,
+ 73544, 73548, 73552, 73556, 73560, 73564, 73568, 73572, 73576, 73580,
+ 73584, 73588, 73592, 73596, 73600, 73604, 73608, 73612, 73616, 73620,
+ 73624, 73628, 73632, 73636, 73640, 73644, 73648, 73652, 73656, 73660,
+ 73664, 73668, 73672, 73676, 73680, 73684, 73688, 73692, 73696, 73700,
+ 73704, 73708, 73712, 73716, 73720, 73724, 73728, 73732, 73736, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 73740, 73745, 73749, 73754, 73759, 73763, 73768, 73773,
+ 73777, 73782, 73787, 73792, 73797, 73802, 73807, 73812, 73816, 73820,
+ 73824, 73828, 73833, 73838, 73843, 73847, 73852, 73857, 73862, 73867,
+ 73872, 73876, 73881, 73885, 73890, 73894, 73899, 73903, 73907, 73911,
+ 73916, 73921, 73926, 73934, 73942, 73950, 73958, 73965, 73973, 73979,
+ 73987, 73991, 73995, 73999, 74003, 74007, 74011, 74015, 74019, 74023,
+ 74027, 74031, 74035, 74039, 74043, 74047, 74051, 74055, 74059, 74063,
+ 74067, 74071, 74075, 74079, 74083, 74087, 74091, 74095, 74099, 74103,
+ 74107, 74111, 74115, 74119, 74123, 74127, 74131, 74134, 74138, 74142,
+ 74146, 74150, 74154, 74158, 74162, 74166, 74170, 74174, 74178, 74182,
+ 74186, 74190, 74194, 74198, 74202, 74206, 74210, 74214, 74218, 74222,
+ 74226, 74230, 74234, 74238, 74242, 74246, 74250, 74254, 74258, 74262,
+ 74266, 74270, 74274, 74278, 74281, 74285, 74289, 74292, 74296, 74300,
+ 74304, 74307, 74311, 74315, 74319, 74323, 74327, 74331, 74335, 74339,
+ 74343, 74346, 74350, 74354, 74358, 74361, 74364, 74368, 74372, 74375,
+ 74379, 74383, 74387, 74391, 74395, 74399, 74402, 74405, 74409, 74413,
+ 74417, 74420, 74423, 74427, 74431, 74435, 74439, 74443, 74447, 74451,
+ 74455, 74459, 74463, 74467, 74471, 74475, 74479, 74483, 74487, 74491,
+ 74495, 74499, 74503, 74507, 74511, 74515, 74519, 74523, 74527, 74531,
+ 74535, 74539, 74543, 74547, 74551, 74555, 74559, 74563, 74567, 74571,
+ 74574, 74578, 74582, 74586, 74590, 74594, 74598, 74602, 74606, 74610,
+ 74614, 74618, 74622, 74626, 74630, 74634, 74638, 74642, 74646, 74650,
+ 74654, 74658, 74662, 74666, 74670, 74674, 74678, 74682, 74686, 74690,
+ 74694, 74698, 74702, 74706, 74710, 74714, 74718, 74721, 74725, 74729,
+ 74733, 74737, 74741, 74745, 74749, 74753, 74757, 74761, 74765, 74769,
+ 74773, 74777, 74781, 74785, 74788, 74792, 74796, 74800, 74804, 74808,
+ 74812, 74816, 74820, 74824, 74828, 74832, 74836, 74840, 74844, 74848,
+ 74852, 74856, 74860, 74864, 74868, 74872, 74875, 74879, 74883, 74887,
+ 74891, 74895, 74899, 74903, 74907, 74911, 74915, 74919, 74923, 74927,
+ 74931, 74935, 74939, 74943, 74947, 74951, 74955, 74959, 74963, 74967,
+ 74971, 74975, 74979, 74983, 74987, 74991, 74995, 74999, 75003, 75007,
+ 75011, 75015, 75019, 75023, 75027, 75031, 75035, 75039, 75043, 75047,
+ 75050, 75055, 75059, 75065, 75070, 75076, 75080, 75084, 75088, 75092,
+ 75096, 75100, 75104, 75108, 75112, 75116, 75120, 75124, 75128, 75132,
+ 75135, 75138, 75141, 75144, 75147, 75150, 75153, 75156, 75159, 75164, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75170, 75175,
+ 75180, 75185, 75190, 75197, 75204, 75209, 75214, 75219, 75224, 75231,
+ 75238, 75245, 75252, 75259, 75266, 75276, 75286, 75293, 75300, 75307,
+ 75314, 75320, 75326, 75335, 75344, 75351, 75358, 75369, 75380, 75385,
+ 75390, 75397, 75404, 75411, 75418, 75425, 75432, 75439, 75446, 75452,
+ 75458, 75464, 75470, 75477, 75484, 75489, 75493, 75500, 75507, 75514,
+ 75518, 75525, 75529, 75534, 75538, 75544, 75549, 75555, 75560, 75564,
+ 75568, 75571, 75574, 75579, 75584, 75589, 75594, 75599, 75604, 75609,
+ 75614, 75619, 75624, 75632, 75640, 75645, 75650, 75655, 75660, 75665,
+ 75670, 75675, 75680, 75685, 75690, 75695, 75700, 75705, 75710, 75716,
+ 75722, 75728, 75734, 75739, 75745, 75748, 75751, 75754, 75758, 75762,
+ 75766, 75770, 75773, 75777, 75780, 75783, 75786, 75790, 75794, 75798,
+ 75802, 75806, 75810, 75814, 75818, 75822, 75826, 75830, 75834, 75838,
+ 75842, 75846, 75850, 75854, 75858, 75862, 75866, 75870, 75874, 75877,
+ 75881, 75885, 75889, 75893, 75897, 75901, 75905, 75909, 75913, 75917,
+ 75921, 75925, 75929, 75933, 75937, 75941, 75945, 75949, 75953, 75957,
+ 75961, 75965, 75969, 75973, 75976, 75980, 75984, 75988, 75992, 75996,
+ 76000, 76004, 76007, 76011, 76015, 76019, 76023, 76027, 76031, 76035,
+ 76039, 76043, 76047, 76051, 76055, 76060, 76065, 76068, 76073, 76076,
+ 76079, 76082, 0, 0, 0, 0, 0, 0, 0, 0, 76086, 76095, 76104, 76113, 76122,
+ 76131, 76140, 76149, 76158, 76166, 76173, 76181, 76188, 76196, 76206,
+ 76215, 76225, 76234, 76244, 76252, 76259, 76267, 76274, 76282, 76287,
+ 76292, 76298, 76306, 76312, 76318, 76325, 76334, 76342, 76350, 76358,
+ 76365, 76372, 76379, 76386, 76391, 76396, 76401, 76406, 76411, 76416,
+ 76421, 76426, 76434, 76442, 76448, 76454, 76459, 76464, 76469, 76474,
+ 76479, 76484, 76489, 76494, 76503, 76512, 76517, 76522, 76532, 76542,
+ 76549, 76556, 76565, 76574, 76586, 76598, 76604, 76610, 76618, 76626,
+ 76636, 76646, 76653, 76660, 76665, 76670, 76682, 76694, 76702, 76710,
+ 76720, 76730, 76742, 76754, 76763, 76772, 76779, 76786, 76793, 76800,
+ 76809, 76818, 76823, 76828, 76835, 76842, 76849, 76856, 76868, 76880,
+ 76885, 76890, 76895, 76900, 76905, 76910, 76915, 76920, 76924, 76929,
+ 76934, 76939, 76944, 76949, 76955, 76960, 76965, 76972, 76979, 76986,
+ 76993, 77000, 77008, 77016, 77021, 77026, 77032, 77038, 77045, 77052,
+ 77059, 77066, 77073, 77077, 77084, 77089, 77094, 77100, 77113, 77119,
+ 77127, 77135, 77142, 77149, 77158, 77167, 77174, 77181, 77188, 77195,
+ 77202, 77209, 77216, 77223, 77230, 77237, 77246, 77255, 77264, 77273,
+ 77282, 77291, 77300, 77309, 77318, 77327, 77334, 77342, 77348, 77356,
+ 77362, 77368, 77374, 77380, 77388, 77393, 77398, 77403, 77408, 77413,
+ 77419, 77425, 77431, 77437, 77443, 77449, 77455, 0, 0, 77461, 77468,
+ 77475, 77484, 77491, 77500, 77512, 77524, 77536, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77548, 77556, 77564, 77571, 77578, 77584,
- 77591, 77599, 77607, 77615, 77623, 77631, 77637, 77643, 77650, 77656,
- 77662, 77668, 77675, 77682, 77689, 77696, 77703, 77710, 77717, 77724,
- 77731, 77738, 77745, 77752, 77759, 77766, 77772, 77779, 77786, 77793,
- 77800, 77807, 77814, 77821, 77828, 77835, 77842, 77849, 77856, 77863,
- 77870, 77877, 77884, 77891, 77898, 77906, 77914, 77922, 77930, 77938, 0,
- 0, 0, 77947, 77955, 77963, 77971, 77979, 77987, 77995, 78001, 78007,
- 78013, 0, 0, 0, 0, 0, 0, 78019, 78023, 78028, 78033, 78038, 78043, 78048,
- 78053, 78058, 78062, 78067, 78072, 78076, 78080, 78085, 78090, 78094,
- 78099, 78104, 78109, 78114, 78119, 78124, 78129, 78133, 78137, 78141,
- 78146, 78150, 78154, 78158, 78162, 78166, 78170, 78174, 78179, 78184,
- 78189, 78194, 78199, 78206, 78212, 78217, 78222, 78227, 78232, 78238,
- 78245, 78251, 78258, 78264, 78270, 78275, 78282, 78288, 78293, 0, 0, 0,
- 0, 0, 0, 0, 0, 78299, 78304, 78309, 78313, 78318, 78322, 78327, 78331,
- 78336, 78341, 78347, 78352, 78358, 78362, 78367, 78372, 78376, 78381,
- 78386, 78390, 78395, 78400, 78405, 78410, 78415, 78420, 78425, 78430,
- 78435, 78440, 78445, 78450, 78455, 78460, 78464, 78469, 78474, 78479,
- 78483, 78487, 78492, 78497, 78502, 78506, 78510, 78514, 78518, 78523,
- 78528, 78533, 78537, 78541, 78546, 78552, 78558, 78563, 78569, 78574,
- 78580, 78586, 78593, 78599, 78606, 78611, 78617, 78623, 78628, 78634,
- 78640, 78645, 0, 0, 0, 0, 0, 0, 0, 0, 78650, 78654, 78659, 78664, 78668,
- 78672, 78676, 78680, 78684, 78688, 78692, 78696, 0, 0, 0, 0, 0, 0, 78700,
- 78705, 78709, 78713, 78717, 78721, 78725, 78729, 78733, 78737, 78741,
- 78745, 78749, 78753, 78757, 78761, 78765, 78770, 78775, 78781, 78787,
- 78794, 78799, 78804, 78810, 78814, 78819, 78822, 78825, 78829, 78834,
- 78838, 78843, 78850, 78856, 78862, 78868, 78874, 78880, 78886, 78892,
- 78898, 78904, 78910, 78917, 78924, 78931, 78937, 78944, 78951, 78958,
- 78964, 78971, 78977, 78983, 78990, 78996, 79003, 79010, 79016, 79022,
- 79028, 79035, 79042, 79048, 79055, 79062, 79068, 79075, 79081, 79088,
- 79095, 79101, 79107, 79114, 79120, 79127, 79134, 79143, 79150, 79157,
- 79161, 79166, 79171, 79175, 79180, 79184, 79188, 79193, 79197, 79202,
- 79207, 79212, 79216, 79220, 79224, 79228, 79233, 79237, 79242, 79247,
- 79252, 79257, 79261, 79266, 79271, 79276, 79282, 79287, 79293, 79299,
- 79305, 79311, 79317, 79322, 79328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79332, 79337, 79341, 79345, 79349, 79353, 79357, 79361, 79365, 79369,
- 79373, 79377, 79381, 79385, 79389, 79393, 79397, 79401, 79405, 79409,
- 79413, 79417, 79421, 79425, 79429, 79433, 79437, 79441, 79445, 79449, 0,
- 0, 0, 79453, 79458, 79463, 79468, 79473, 79477, 79484, 79488, 79493,
- 79497, 79504, 79511, 79520, 79524, 79529, 79533, 79537, 79544, 79551,
- 79556, 79563, 79568, 79573, 79580, 79585, 79592, 79599, 79604, 79609,
- 79616, 79621, 79628, 79635, 79639, 79646, 79651, 79658, 79662, 79666,
- 79673, 79678, 79685, 79689, 79693, 79697, 79704, 79708, 79713, 79720,
- 79727, 79731, 79735, 79742, 79748, 79754, 79760, 79768, 79774, 79782,
- 79788, 79796, 79802, 79808, 79814, 79820, 79824, 79829, 79834, 79840,
- 79846, 79852, 79858, 79864, 79870, 79876, 79882, 79890, 79896, 0, 79903,
- 79907, 79912, 79916, 79920, 79924, 79928, 79932, 79936, 79940, 79944, 0,
- 0, 0, 0, 79948, 79956, 79962, 79968, 79974, 79980, 79986, 79992, 79998,
- 80005, 80012, 80019, 80026, 80033, 80040, 80047, 80054, 80061, 80068,
- 80075, 80081, 80087, 80093, 80099, 80105, 80111, 80117, 80123, 80129,
- 80136, 80143, 80150, 80157, 0, 80164, 80168, 80172, 80176, 80180, 80185,
- 80189, 80193, 80198, 80203, 80208, 80213, 80218, 80223, 80228, 80233,
- 80238, 80243, 80248, 80253, 80257, 80262, 80267, 80272, 80277, 80281,
- 80286, 80290, 80295, 80300, 80305, 80310, 80315, 80319, 80324, 80328,
- 80332, 80336, 80341, 80346, 80350, 80354, 80360, 80365, 80371, 80377,
- 80382, 80388, 80393, 80399, 80405, 80411, 80416, 80421, 80426, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 80432, 80438, 80444, 80450, 80457, 80463, 80469, 80475,
- 80481, 80487, 80492, 80497, 80503, 80510, 0, 0, 80517, 80522, 80526,
- 80530, 80534, 80538, 80542, 80546, 80550, 80554, 0, 0, 80558, 80564,
- 80570, 80577, 80585, 80591, 80597, 80603, 80609, 80615, 80621, 80627,
- 80633, 80639, 80645, 80651, 80656, 80661, 80666, 80672, 80678, 80685,
- 80691, 80697, 80702, 80709, 80716, 80723, 80729, 80734, 80739, 80744,
- 80752, 80759, 80766, 80774, 80782, 80789, 80796, 80803, 80810, 80817,
- 80824, 80831, 80838, 80845, 80852, 80859, 80866, 80873, 80880, 80887,
- 80894, 80901, 80908, 80915, 80922, 80928, 80934, 80941, 80948, 80955,
- 80962, 80969, 80976, 80983, 80990, 80997, 81004, 81011, 81018, 81025,
- 81032, 81039, 81046, 81053, 81060, 81067, 81074, 81081, 81088, 81095,
- 81102, 81108, 81114, 81121, 81127, 81132, 81138, 81143, 81148, 81153,
- 81160, 81166, 81172, 81178, 81184, 81190, 81196, 81202, 81210, 81218,
- 81226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 81234, 81240, 81246, 81252, 81260, 81268, 81274, 81280, 81287,
- 81294, 81301, 81308, 81315, 81322, 81329, 81336, 81343, 81351, 81359,
- 81367, 81375, 81383, 81389, 81397, 81403, 81411, 81420, 81428, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 81434, 81438, 81442, 81446, 81450, 81454, 0, 0,
- 81458, 81462, 81466, 81470, 81474, 81478, 0, 0, 81482, 81486, 81490,
- 81494, 81498, 81502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81506, 81510, 81514,
- 81518, 81522, 81526, 81530, 0, 81534, 81538, 81542, 81546, 81550, 81554,
- 81558, 0, 81562, 81569, 81575, 81581, 81587, 81595, 81602, 81611, 81623,
- 81633, 81642, 81650, 81658, 81666, 81672, 81680, 81688, 81695, 81703,
- 81713, 81720, 81729, 81735, 81745, 81754, 81759, 81767, 81776, 81781,
- 81790, 81797, 81807, 81819, 81824, 81830, 81837, 81842, 81852, 81862,
- 81872, 81882, 81897, 81910, 81921, 81929, 81934, 81946, 81955, 81962,
- 81969, 81975, 81982, 81987, 81994, 82000, 82011, 82022, 82032, 82038,
- 82043, 0, 0, 0, 0, 82048, 82052, 82056, 82060, 82064, 82068, 82073,
- 82078, 82082, 82087, 82092, 82097, 82102, 82107, 82111, 82116, 82121,
- 82126, 82131, 82136, 82140, 82145, 82150, 82155, 82160, 82165, 82169,
- 82174, 82179, 82184, 82189, 82193, 82198, 82203, 82208, 82213, 82218,
- 82223, 82228, 82233, 82238, 82243, 82248, 82253, 82258, 82262, 82267,
- 82272, 82277, 82282, 82287, 82292, 82297, 82301, 82306, 82311, 82316,
- 82321, 82326, 82331, 82336, 82341, 82346, 82351, 82356, 82361, 82366,
- 82371, 82376, 82381, 82386, 82391, 82396, 82401, 82406, 82411, 82416,
- 82421, 82426, 82431, 82435, 82442, 82449, 82456, 82463, 82469, 82475,
- 82482, 82489, 82496, 82503, 82510, 82517, 82524, 82531, 82538, 82544,
- 82551, 82558, 82565, 82572, 82579, 82586, 82593, 82600, 82607, 82614,
- 82621, 82630, 82639, 82648, 82657, 82666, 82675, 82684, 82693, 82701,
- 82709, 82717, 82725, 82733, 82741, 82749, 82757, 82763, 82771, 0, 0,
- 82779, 82786, 82792, 82798, 82804, 82810, 82816, 82822, 82828, 82834, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77548, 77556, 77564, 77571, 77578, 77584,
+ 77591, 77599, 77607, 77615, 77623, 77631, 77637, 77643, 77650, 77656,
+ 77662, 77668, 77675, 77682, 77689, 77696, 77703, 77710, 77717, 77724,
+ 77731, 77738, 77745, 77752, 77759, 77766, 77772, 77779, 77786, 77793,
+ 77800, 77807, 77814, 77821, 77828, 77835, 77842, 77849, 77856, 77863,
+ 77870, 77877, 77884, 77891, 77898, 77906, 77914, 77922, 77930, 77938, 0,
+ 0, 0, 77947, 77955, 77963, 77971, 77979, 77987, 77995, 78001, 78007,
+ 78013, 0, 0, 0, 0, 0, 0, 78019, 78023, 78028, 78033, 78038, 78043, 78048,
+ 78053, 78058, 78062, 78067, 78072, 78076, 78080, 78085, 78090, 78094,
+ 78099, 78104, 78109, 78114, 78119, 78124, 78129, 78133, 78137, 78141,
+ 78146, 78150, 78154, 78158, 78162, 78166, 78170, 78174, 78179, 78184,
+ 78189, 78194, 78199, 78206, 78212, 78217, 78222, 78227, 78232, 78238,
+ 78245, 78251, 78258, 78264, 78270, 78275, 78282, 78288, 78293, 0, 0, 0,
+ 0, 0, 0, 0, 0, 78299, 78304, 78309, 78313, 78318, 78322, 78327, 78331,
+ 78336, 78341, 78347, 78352, 78358, 78362, 78367, 78372, 78376, 78381,
+ 78386, 78390, 78395, 78400, 78405, 78410, 78415, 78420, 78425, 78430,
+ 78435, 78440, 78445, 78450, 78455, 78460, 78464, 78469, 78474, 78479,
+ 78483, 78487, 78492, 78497, 78502, 78506, 78510, 78514, 78518, 78523,
+ 78528, 78533, 78537, 78541, 78546, 78552, 78558, 78563, 78569, 78574,
+ 78580, 78586, 78593, 78599, 78606, 78611, 78617, 78623, 78628, 78634,
+ 78640, 78645, 0, 0, 0, 0, 0, 0, 0, 0, 78650, 78654, 78659, 78664, 78668,
+ 78672, 78676, 78680, 78684, 78688, 78692, 78696, 0, 0, 0, 0, 0, 0, 78700,
+ 78705, 78709, 78713, 78717, 78721, 78725, 78729, 78733, 78737, 78741,
+ 78745, 78749, 78753, 78757, 78761, 78765, 78770, 78775, 78781, 78787,
+ 78794, 78799, 78804, 78810, 78814, 78819, 78822, 78825, 78829, 78834,
+ 78838, 78843, 78850, 78856, 78862, 78868, 78874, 78880, 78886, 78892,
+ 78898, 78904, 78910, 78917, 78924, 78931, 78937, 78944, 78951, 78958,
+ 78964, 78971, 78977, 78983, 78990, 78996, 79003, 79010, 79016, 79022,
+ 79028, 79035, 79042, 79048, 79055, 79062, 79068, 79075, 79081, 79088,
+ 79095, 79101, 79107, 79114, 79120, 79127, 79134, 79143, 79150, 79157,
+ 79161, 79166, 79171, 79175, 79180, 79184, 79188, 79193, 79197, 79202,
+ 79207, 79212, 79216, 79220, 79224, 79228, 79233, 79237, 79242, 79247,
+ 79252, 79257, 79261, 79266, 79271, 79276, 79282, 79287, 79293, 79299,
+ 79305, 79311, 79317, 79322, 79328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 79332, 79337, 79341, 79345, 79349, 79353, 79357, 79361, 79365, 79369,
+ 79373, 79377, 79381, 79385, 79389, 79393, 79397, 79401, 79405, 79409,
+ 79413, 79417, 79421, 79425, 79429, 79433, 79437, 79441, 79445, 79449, 0,
+ 0, 0, 79453, 79458, 79463, 79468, 79473, 79477, 79484, 79488, 79493,
+ 79497, 79504, 79511, 79520, 79524, 79529, 79533, 79537, 79544, 79551,
+ 79556, 79563, 79568, 79573, 79580, 79585, 79592, 79599, 79604, 79609,
+ 79616, 79621, 79628, 79635, 79639, 79646, 79651, 79658, 79662, 79666,
+ 79673, 79678, 79685, 79689, 79693, 79697, 79704, 79708, 79713, 79720,
+ 79727, 79731, 79735, 79742, 79748, 79754, 79760, 79768, 79774, 79782,
+ 79788, 79796, 79802, 79808, 79814, 79820, 79824, 79829, 79834, 79840,
+ 79846, 79852, 79858, 79864, 79870, 79876, 79882, 79890, 79896, 0, 79903,
+ 79907, 79912, 79916, 79920, 79924, 79928, 79932, 79936, 79940, 79944, 0,
+ 0, 0, 0, 79948, 79956, 79962, 79968, 79974, 79980, 79986, 79992, 79998,
+ 80005, 80012, 80019, 80026, 80033, 80040, 80047, 80054, 80061, 80068,
+ 80075, 80081, 80087, 80093, 80099, 80105, 80111, 80117, 80123, 80129,
+ 80136, 80143, 80150, 80157, 0, 80164, 80168, 80172, 80176, 80180, 80185,
+ 80189, 80193, 80198, 80203, 80208, 80213, 80218, 80223, 80228, 80233,
+ 80238, 80243, 80248, 80253, 80257, 80262, 80267, 80272, 80277, 80281,
+ 80286, 80290, 80295, 80300, 80305, 80310, 80315, 80319, 80324, 80328,
+ 80332, 80336, 80341, 80346, 80350, 80354, 80360, 80365, 80371, 80377,
+ 80382, 80388, 80393, 80399, 80405, 80411, 80416, 80421, 80426, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 80432, 80438, 80444, 80450, 80457, 80463, 80469, 80475,
+ 80481, 80487, 80492, 80497, 80503, 80510, 0, 0, 80517, 80522, 80526,
+ 80530, 80534, 80538, 80542, 80546, 80550, 80554, 0, 0, 80558, 80564,
+ 80570, 80577, 80585, 80591, 80597, 80603, 80609, 80615, 80621, 80627,
+ 80633, 80639, 80645, 80651, 80656, 80661, 80666, 80672, 80678, 80685,
+ 80691, 80697, 80702, 80709, 80716, 80723, 80729, 80734, 80739, 80744,
+ 80752, 80759, 80766, 80774, 80782, 80789, 80796, 80803, 80810, 80817,
+ 80824, 80831, 80838, 80845, 80852, 80859, 80866, 80873, 80880, 80887,
+ 80894, 80901, 80908, 80915, 80922, 80928, 80934, 80941, 80948, 80955,
+ 80962, 80969, 80976, 80983, 80990, 80997, 81004, 81011, 81018, 81025,
+ 81032, 81039, 81046, 81053, 81060, 81067, 81074, 81081, 81088, 81095,
+ 81102, 81108, 81114, 81121, 81127, 81132, 81138, 81143, 81148, 81153,
+ 81160, 81166, 81172, 81178, 81184, 81190, 81196, 81202, 81210, 81218,
+ 81226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 81234, 81240, 81246, 81252, 81260, 81268, 81274, 81280, 81287,
+ 81294, 81301, 81308, 81315, 81322, 81329, 81336, 81343, 81351, 81359,
+ 81367, 81375, 81383, 81389, 81397, 81403, 81411, 81420, 81428, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 81434, 81438, 81442, 81446, 81450, 81454, 0, 0,
+ 81458, 81462, 81466, 81470, 81474, 81478, 0, 0, 81482, 81486, 81490,
+ 81494, 81498, 81502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81506, 81510, 81514,
+ 81518, 81522, 81526, 81530, 0, 81534, 81538, 81542, 81546, 81550, 81554,
+ 81558, 0, 81562, 81569, 81575, 81581, 81587, 81595, 81602, 81611, 81623,
+ 81633, 81642, 81650, 81658, 81666, 81672, 81680, 81688, 81695, 81703,
+ 81713, 81720, 81729, 81735, 81745, 81754, 81759, 81767, 81776, 81781,
+ 81790, 81797, 81807, 81819, 81824, 81830, 81837, 81842, 81852, 81862,
+ 81872, 81882, 81897, 81910, 81921, 81929, 81934, 81946, 81955, 81962,
+ 81969, 81975, 81982, 81987, 81994, 82000, 82011, 82022, 82032, 82038,
+ 82043, 0, 0, 0, 0, 82048, 82052, 82056, 82060, 82064, 82068, 82073,
+ 82078, 82082, 82087, 82092, 82097, 82102, 82107, 82111, 82116, 82121,
+ 82126, 82131, 82136, 82140, 82145, 82150, 82155, 82160, 82165, 82169,
+ 82174, 82179, 82184, 82189, 82193, 82198, 82203, 82208, 82213, 82218,
+ 82223, 82228, 82233, 82238, 82243, 82248, 82253, 82258, 82262, 82267,
+ 82272, 82277, 82282, 82287, 82292, 82297, 82301, 82306, 82311, 82316,
+ 82321, 82326, 82331, 82336, 82341, 82346, 82351, 82356, 82361, 82366,
+ 82371, 82376, 82381, 82386, 82391, 82396, 82401, 82406, 82411, 82416,
+ 82421, 82426, 82431, 82435, 82442, 82449, 82456, 82463, 82469, 82475,
+ 82482, 82489, 82496, 82503, 82510, 82517, 82524, 82531, 82538, 82544,
+ 82551, 82558, 82565, 82572, 82579, 82586, 82593, 82600, 82607, 82614,
+ 82621, 82630, 82639, 82648, 82657, 82666, 82675, 82684, 82693, 82701,
+ 82709, 82717, 82725, 82733, 82741, 82749, 82757, 82763, 82771, 0, 0,
+ 82779, 82786, 82792, 82798, 82804, 82810, 82816, 82822, 82828, 82834, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21815,472 +21815,472 @@ static const unsigned int phrasebook_offset2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82840, 82845, 82850, 82855, 82860,
- 82865, 82870, 82875, 82880, 82885, 82890, 82895, 82900, 82905, 82910,
- 82915, 82920, 82925, 82930, 82935, 82940, 82945, 82950, 0, 0, 0, 0,
- 82955, 82959, 82963, 82967, 82971, 82975, 82979, 82983, 82987, 82991,
- 82995, 82999, 83003, 83007, 83011, 83015, 83019, 83023, 83027, 83031,
- 83035, 83039, 83043, 83047, 83051, 83055, 83059, 83063, 83067, 83071,
- 83075, 83079, 83083, 83087, 83091, 83095, 83099, 83103, 83107, 83111,
- 83115, 83119, 83123, 83127, 83131, 83135, 83139, 83143, 83147, 0, 0, 0,
- 0, 83151, 83155, 83159, 83163, 83167, 83171, 83175, 83179, 83183, 83187,
- 83191, 83195, 83199, 83203, 83207, 83211, 83215, 83219, 83223, 83227,
- 83231, 83235, 83239, 83243, 83247, 83251, 83255, 83259, 83263, 83267,
- 83271, 83275, 83279, 83283, 83287, 83291, 83295, 83299, 83303, 83307,
- 83311, 83315, 83319, 83323, 83327, 83331, 83335, 83339, 83343, 83347,
- 83351, 83355, 83359, 83363, 83367, 83371, 83375, 83379, 83383, 83387,
- 83391, 83395, 83399, 83403, 83407, 83411, 83415, 83419, 83423, 83427,
- 83431, 83435, 83439, 83443, 83447, 83451, 83455, 83459, 83463, 83467,
- 83471, 83475, 83479, 83483, 83487, 83491, 83495, 83499, 83503, 83507,
- 83511, 83515, 83519, 83523, 83527, 83531, 83535, 83539, 83543, 83547,
- 83551, 83555, 83559, 83563, 83567, 83571, 83575, 83579, 83583, 83587,
- 83591, 83595, 83599, 83603, 83607, 83611, 83615, 83619, 83623, 83627,
- 83631, 83635, 83639, 83643, 83647, 83651, 83655, 83659, 83663, 83667,
- 83671, 83675, 83679, 83683, 83687, 83691, 83695, 83699, 83703, 83707,
- 83711, 83715, 83719, 83723, 83727, 83731, 83735, 83739, 83743, 83747,
- 83751, 83755, 83759, 83763, 83767, 83771, 83775, 83779, 83783, 83787,
- 83791, 83795, 83799, 83803, 83807, 83811, 83815, 83819, 83823, 83827,
- 83831, 83835, 83839, 83843, 83847, 83851, 83855, 83859, 83863, 83867,
- 83871, 83875, 83879, 83883, 83887, 83891, 83895, 83899, 83903, 83907,
- 83911, 83915, 83919, 83923, 83927, 83931, 83935, 83939, 83943, 83947,
- 83951, 83955, 83959, 83963, 83967, 83971, 83975, 83979, 83983, 83987,
- 83991, 83995, 83999, 84003, 84007, 84011, 84015, 84019, 84023, 84027,
- 84031, 84035, 84039, 84043, 84047, 84051, 84055, 84059, 84063, 84067,
- 84071, 84075, 84079, 84083, 84087, 84091, 84095, 84099, 84103, 84107,
- 84111, 84115, 84119, 84123, 84127, 84131, 84135, 84139, 84143, 84147,
- 84151, 84155, 84159, 84163, 84167, 84171, 84175, 84179, 84183, 84187,
- 84191, 84195, 84199, 84203, 84207, 84211, 84215, 84219, 84223, 84227,
- 84231, 84235, 84239, 84243, 84247, 84251, 84255, 84259, 84263, 84267,
- 84271, 84275, 84279, 84283, 84287, 84291, 84295, 84299, 84303, 84307,
- 84311, 84315, 84319, 84323, 84327, 84331, 84335, 84339, 84343, 84347,
- 84351, 84355, 84359, 84363, 84367, 84371, 84375, 84379, 84383, 84387,
- 84391, 84395, 84399, 84403, 84407, 84411, 84415, 84419, 84423, 84427,
- 84431, 84435, 84439, 84443, 84447, 84451, 84455, 84459, 84463, 84467,
- 84471, 84475, 84479, 84483, 84487, 84491, 84495, 84499, 84503, 84507,
- 84511, 84515, 84519, 84523, 84527, 84531, 84535, 84539, 84543, 84547,
- 84551, 84555, 84559, 84563, 84567, 84571, 84575, 84579, 84583, 84587,
- 84591, 84595, 84599, 84603, 84607, 84611, 0, 0, 84615, 84619, 84623,
- 84627, 84631, 84635, 84639, 84643, 84647, 84651, 84655, 84659, 84663,
- 84667, 84671, 84675, 84679, 84683, 84687, 84691, 84695, 84699, 84703,
- 84707, 84711, 84715, 84719, 84723, 84727, 84731, 84735, 84739, 84743,
- 84747, 84751, 84755, 84759, 84763, 84767, 84771, 84775, 84779, 84783,
- 84787, 84791, 84795, 84799, 84803, 84807, 84811, 84815, 84819, 84823,
- 84827, 84831, 84835, 84839, 84843, 84847, 84851, 84855, 84859, 84863,
- 84867, 84871, 84875, 84879, 84883, 84887, 84891, 84895, 84899, 84903,
- 84907, 84911, 84915, 84919, 84923, 84927, 84931, 84935, 84939, 84943,
- 84947, 84951, 84955, 84959, 84963, 84967, 84971, 84975, 84979, 84983,
- 84987, 84991, 84995, 84999, 85003, 85007, 85011, 85015, 85019, 85023,
- 85027, 85031, 85035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85039,
- 85044, 85049, 85054, 85059, 85064, 85072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 85077, 85085, 85093, 85101, 85109, 0, 0, 0, 0, 0, 85117, 85124,
- 85131, 85141, 85147, 85153, 85159, 85165, 85171, 85177, 85184, 85190,
- 85196, 85202, 85211, 85220, 85232, 85244, 85250, 85256, 85262, 85269,
- 85276, 85283, 85290, 85297, 0, 85304, 85311, 85318, 85326, 85333, 0,
- 85340, 0, 85347, 85354, 0, 85361, 85369, 0, 85376, 85383, 85390, 85397,
- 85404, 85411, 85418, 85425, 85432, 85439, 85444, 85451, 85458, 85464,
- 85470, 85476, 85483, 85489, 85495, 85501, 85508, 85514, 85520, 85526,
- 85533, 85539, 85545, 85551, 85558, 85564, 85570, 85576, 85583, 85589,
- 85595, 85601, 85608, 85614, 85620, 85626, 85633, 85639, 85645, 85651,
- 85658, 85664, 85670, 85676, 85683, 85689, 85695, 85701, 85708, 85714,
- 85720, 85726, 85733, 85739, 85745, 85751, 85758, 85764, 85770, 85776,
- 85782, 85788, 85794, 85800, 85806, 85812, 85818, 85824, 85830, 85836,
- 85842, 85848, 85855, 85861, 85867, 85873, 85880, 85886, 85892, 85898,
- 85905, 85911, 85917, 85923, 85930, 85938, 85946, 85952, 85958, 85964,
- 85971, 85980, 85989, 85997, 86005, 86013, 86022, 86030, 86038, 86046,
- 86055, 86062, 86069, 86080, 86091, 86095, 86099, 86105, 86111, 86117,
- 86123, 86133, 86143, 86150, 86157, 86164, 86172, 86180, 86184, 86190, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86196, 86202, 86208,
- 86214, 86221, 86226, 86231, 86237, 86243, 86249, 86255, 86264, 86270,
- 86276, 86284, 86292, 86300, 86308, 86314, 86320, 86326, 86333, 86346,
- 86360, 86371, 86382, 86394, 86406, 86418, 86430, 86441, 86452, 86464,
- 86476, 86488, 86500, 86512, 86524, 86536, 86553, 86570, 86587, 86594,
- 86601, 86608, 86616, 86628, 86639, 86650, 86663, 86674, 86683, 86691,
- 86700, 86708, 86718, 86726, 86735, 86743, 86752, 86760, 86770, 86778,
- 86787, 86795, 86805, 86813, 86821, 86829, 86837, 86844, 86853, 86861,
- 86869, 86878, 86886, 86895, 86903, 86911, 86919, 86928, 86936, 86945,
- 86953, 86961, 86969, 86977, 86986, 86994, 87003, 87011, 87020, 87028,
- 87037, 87045, 87055, 87063, 87071, 87079, 87089, 87097, 87105, 87114,
- 87122, 87131, 87140, 87148, 87158, 87166, 87175, 87183, 87192, 87200,
- 87210, 87218, 87226, 87233, 87241, 87248, 87257, 87264, 87273, 87281,
- 87290, 87298, 87308, 87316, 87325, 87333, 87343, 87351, 87359, 87366,
- 87374, 87381, 87390, 87397, 87407, 87417, 87428, 87437, 87446, 87455,
- 87464, 87473, 87483, 87495, 87507, 87518, 87530, 87543, 87554, 87563,
- 87572, 87580, 87589, 87599, 87607, 87616, 87625, 87633, 87642, 87652,
- 87660, 87669, 87678, 87686, 87695, 87705, 87713, 87723, 87731, 87741,
- 87749, 87757, 87766, 87774, 87784, 87792, 87800, 87810, 87818, 87825,
- 87832, 87841, 87850, 87858, 87867, 87877, 87885, 87896, 87904, 87912,
- 87919, 87927, 87936, 87943, 87955, 87966, 87978, 87989, 88001, 88010,
- 88018, 88027, 88035, 88044, 88053, 88061, 88070, 88078, 88087, 88095,
- 88103, 88111, 88119, 88126, 88135, 88143, 88152, 88160, 88169, 88177,
- 88185, 88194, 88202, 88211, 88219, 88228, 88236, 88244, 88252, 88261,
- 88269, 88278, 88286, 88295, 88303, 88312, 88320, 88328, 88336, 88345,
- 88353, 88362, 88371, 88379, 88388, 88396, 88405, 88413, 88422, 88430,
- 88437, 88445, 88452, 88461, 88469, 88478, 88486, 88495, 88504, 88512,
- 88522, 88530, 88537, 88545, 88552, 88560, 88572, 88585, 88594, 88604,
- 88613, 88623, 88632, 88642, 88651, 88661, 88670, 88680, 88690, 88699,
- 88708, 88717, 88727, 88735, 88744, 88754, 88764, 88774, 88784, 88792,
- 88802, 88810, 88820, 88828, 88838, 88846, 88856, 88864, 88873, 88880,
- 88890, 88898, 88908, 88916, 88926, 88934, 88944, 88952, 88961, 88969,
- 88978, 88986, 88995, 89004, 89013, 89022, 89032, 89040, 89050, 89058,
- 89068, 89076, 89086, 89094, 89104, 89112, 89121, 89128, 89138, 89146,
- 89156, 89164, 89174, 89182, 89192, 89200, 89209, 89217, 89226, 89234,
- 89243, 89252, 89261, 89270, 89279, 89287, 89296, 89304, 89313, 89322,
- 89330, 89340, 89349, 89359, 89369, 89378, 89388, 89397, 89406, 89414,
- 89422, 89427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89432,
- 89443, 89454, 89465, 89475, 89486, 89497, 89507, 89518, 89528, 89538,
- 89547, 89558, 89569, 89580, 89593, 89603, 89613, 89624, 89634, 89644,
- 89654, 89664, 89674, 89684, 89694, 89705, 89716, 89727, 89737, 89747,
- 89759, 89770, 89781, 89791, 89801, 89811, 89821, 89832, 89842, 89852,
- 89864, 89874, 89884, 89896, 89907, 89918, 89928, 89938, 89948, 89958,
- 89970, 89982, 89994, 90005, 90016, 90026, 90036, 90046, 90055, 90064,
- 90074, 90084, 90095, 0, 0, 90105, 90116, 90127, 90137, 90147, 90159,
- 90170, 90181, 90194, 90204, 90216, 90225, 90234, 90245, 90256, 90269,
- 90280, 90293, 90303, 90315, 90325, 90337, 90349, 90362, 90372, 90382,
- 90392, 90403, 90413, 90422, 90432, 90441, 90450, 90460, 90470, 90480,
- 90490, 90500, 90510, 90521, 90531, 90542, 90552, 90563, 90574, 90584,
- 90594, 90604, 90614, 90624, 90634, 90645, 90655, 90666, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82840, 82845, 82850, 82855, 82860,
+ 82865, 82870, 82875, 82880, 82885, 82890, 82895, 82900, 82905, 82910,
+ 82915, 82920, 82925, 82930, 82935, 82940, 82945, 82950, 0, 0, 0, 0,
+ 82955, 82959, 82963, 82967, 82971, 82975, 82979, 82983, 82987, 82991,
+ 82995, 82999, 83003, 83007, 83011, 83015, 83019, 83023, 83027, 83031,
+ 83035, 83039, 83043, 83047, 83051, 83055, 83059, 83063, 83067, 83071,
+ 83075, 83079, 83083, 83087, 83091, 83095, 83099, 83103, 83107, 83111,
+ 83115, 83119, 83123, 83127, 83131, 83135, 83139, 83143, 83147, 0, 0, 0,
+ 0, 83151, 83155, 83159, 83163, 83167, 83171, 83175, 83179, 83183, 83187,
+ 83191, 83195, 83199, 83203, 83207, 83211, 83215, 83219, 83223, 83227,
+ 83231, 83235, 83239, 83243, 83247, 83251, 83255, 83259, 83263, 83267,
+ 83271, 83275, 83279, 83283, 83287, 83291, 83295, 83299, 83303, 83307,
+ 83311, 83315, 83319, 83323, 83327, 83331, 83335, 83339, 83343, 83347,
+ 83351, 83355, 83359, 83363, 83367, 83371, 83375, 83379, 83383, 83387,
+ 83391, 83395, 83399, 83403, 83407, 83411, 83415, 83419, 83423, 83427,
+ 83431, 83435, 83439, 83443, 83447, 83451, 83455, 83459, 83463, 83467,
+ 83471, 83475, 83479, 83483, 83487, 83491, 83495, 83499, 83503, 83507,
+ 83511, 83515, 83519, 83523, 83527, 83531, 83535, 83539, 83543, 83547,
+ 83551, 83555, 83559, 83563, 83567, 83571, 83575, 83579, 83583, 83587,
+ 83591, 83595, 83599, 83603, 83607, 83611, 83615, 83619, 83623, 83627,
+ 83631, 83635, 83639, 83643, 83647, 83651, 83655, 83659, 83663, 83667,
+ 83671, 83675, 83679, 83683, 83687, 83691, 83695, 83699, 83703, 83707,
+ 83711, 83715, 83719, 83723, 83727, 83731, 83735, 83739, 83743, 83747,
+ 83751, 83755, 83759, 83763, 83767, 83771, 83775, 83779, 83783, 83787,
+ 83791, 83795, 83799, 83803, 83807, 83811, 83815, 83819, 83823, 83827,
+ 83831, 83835, 83839, 83843, 83847, 83851, 83855, 83859, 83863, 83867,
+ 83871, 83875, 83879, 83883, 83887, 83891, 83895, 83899, 83903, 83907,
+ 83911, 83915, 83919, 83923, 83927, 83931, 83935, 83939, 83943, 83947,
+ 83951, 83955, 83959, 83963, 83967, 83971, 83975, 83979, 83983, 83987,
+ 83991, 83995, 83999, 84003, 84007, 84011, 84015, 84019, 84023, 84027,
+ 84031, 84035, 84039, 84043, 84047, 84051, 84055, 84059, 84063, 84067,
+ 84071, 84075, 84079, 84083, 84087, 84091, 84095, 84099, 84103, 84107,
+ 84111, 84115, 84119, 84123, 84127, 84131, 84135, 84139, 84143, 84147,
+ 84151, 84155, 84159, 84163, 84167, 84171, 84175, 84179, 84183, 84187,
+ 84191, 84195, 84199, 84203, 84207, 84211, 84215, 84219, 84223, 84227,
+ 84231, 84235, 84239, 84243, 84247, 84251, 84255, 84259, 84263, 84267,
+ 84271, 84275, 84279, 84283, 84287, 84291, 84295, 84299, 84303, 84307,
+ 84311, 84315, 84319, 84323, 84327, 84331, 84335, 84339, 84343, 84347,
+ 84351, 84355, 84359, 84363, 84367, 84371, 84375, 84379, 84383, 84387,
+ 84391, 84395, 84399, 84403, 84407, 84411, 84415, 84419, 84423, 84427,
+ 84431, 84435, 84439, 84443, 84447, 84451, 84455, 84459, 84463, 84467,
+ 84471, 84475, 84479, 84483, 84487, 84491, 84495, 84499, 84503, 84507,
+ 84511, 84515, 84519, 84523, 84527, 84531, 84535, 84539, 84543, 84547,
+ 84551, 84555, 84559, 84563, 84567, 84571, 84575, 84579, 84583, 84587,
+ 84591, 84595, 84599, 84603, 84607, 84611, 0, 0, 84615, 84619, 84623,
+ 84627, 84631, 84635, 84639, 84643, 84647, 84651, 84655, 84659, 84663,
+ 84667, 84671, 84675, 84679, 84683, 84687, 84691, 84695, 84699, 84703,
+ 84707, 84711, 84715, 84719, 84723, 84727, 84731, 84735, 84739, 84743,
+ 84747, 84751, 84755, 84759, 84763, 84767, 84771, 84775, 84779, 84783,
+ 84787, 84791, 84795, 84799, 84803, 84807, 84811, 84815, 84819, 84823,
+ 84827, 84831, 84835, 84839, 84843, 84847, 84851, 84855, 84859, 84863,
+ 84867, 84871, 84875, 84879, 84883, 84887, 84891, 84895, 84899, 84903,
+ 84907, 84911, 84915, 84919, 84923, 84927, 84931, 84935, 84939, 84943,
+ 84947, 84951, 84955, 84959, 84963, 84967, 84971, 84975, 84979, 84983,
+ 84987, 84991, 84995, 84999, 85003, 85007, 85011, 85015, 85019, 85023,
+ 85027, 85031, 85035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85039,
+ 85044, 85049, 85054, 85059, 85064, 85072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 85077, 85085, 85093, 85101, 85109, 0, 0, 0, 0, 0, 85117, 85124,
+ 85131, 85141, 85147, 85153, 85159, 85165, 85171, 85177, 85184, 85190,
+ 85196, 85202, 85211, 85220, 85232, 85244, 85250, 85256, 85262, 85269,
+ 85276, 85283, 85290, 85297, 0, 85304, 85311, 85318, 85326, 85333, 0,
+ 85340, 0, 85347, 85354, 0, 85361, 85369, 0, 85376, 85383, 85390, 85397,
+ 85404, 85411, 85418, 85425, 85432, 85439, 85444, 85451, 85458, 85464,
+ 85470, 85476, 85483, 85489, 85495, 85501, 85508, 85514, 85520, 85526,
+ 85533, 85539, 85545, 85551, 85558, 85564, 85570, 85576, 85583, 85589,
+ 85595, 85601, 85608, 85614, 85620, 85626, 85633, 85639, 85645, 85651,
+ 85658, 85664, 85670, 85676, 85683, 85689, 85695, 85701, 85708, 85714,
+ 85720, 85726, 85733, 85739, 85745, 85751, 85758, 85764, 85770, 85776,
+ 85782, 85788, 85794, 85800, 85806, 85812, 85818, 85824, 85830, 85836,
+ 85842, 85848, 85855, 85861, 85867, 85873, 85880, 85886, 85892, 85898,
+ 85905, 85911, 85917, 85923, 85930, 85938, 85946, 85952, 85958, 85964,
+ 85971, 85980, 85989, 85997, 86005, 86013, 86022, 86030, 86038, 86046,
+ 86055, 86062, 86069, 86080, 86091, 86095, 86099, 86105, 86111, 86117,
+ 86123, 86133, 86143, 86150, 86157, 86164, 86172, 86180, 86184, 86190, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86196, 86202, 86208,
+ 86214, 86221, 86226, 86231, 86237, 86243, 86249, 86255, 86264, 86270,
+ 86276, 86284, 86292, 86300, 86308, 86314, 86320, 86326, 86333, 86346,
+ 86360, 86371, 86382, 86394, 86406, 86418, 86430, 86441, 86452, 86464,
+ 86476, 86488, 86500, 86512, 86524, 86536, 86553, 86570, 86587, 86594,
+ 86601, 86608, 86616, 86628, 86639, 86650, 86663, 86674, 86683, 86691,
+ 86700, 86708, 86718, 86726, 86735, 86743, 86752, 86760, 86770, 86778,
+ 86787, 86795, 86805, 86813, 86821, 86829, 86837, 86844, 86853, 86861,
+ 86869, 86878, 86886, 86895, 86903, 86911, 86919, 86928, 86936, 86945,
+ 86953, 86961, 86969, 86977, 86986, 86994, 87003, 87011, 87020, 87028,
+ 87037, 87045, 87055, 87063, 87071, 87079, 87089, 87097, 87105, 87114,
+ 87122, 87131, 87140, 87148, 87158, 87166, 87175, 87183, 87192, 87200,
+ 87210, 87218, 87226, 87233, 87241, 87248, 87257, 87264, 87273, 87281,
+ 87290, 87298, 87308, 87316, 87325, 87333, 87343, 87351, 87359, 87366,
+ 87374, 87381, 87390, 87397, 87407, 87417, 87428, 87437, 87446, 87455,
+ 87464, 87473, 87483, 87495, 87507, 87518, 87530, 87543, 87554, 87563,
+ 87572, 87580, 87589, 87599, 87607, 87616, 87625, 87633, 87642, 87652,
+ 87660, 87669, 87678, 87686, 87695, 87705, 87713, 87723, 87731, 87741,
+ 87749, 87757, 87766, 87774, 87784, 87792, 87800, 87810, 87818, 87825,
+ 87832, 87841, 87850, 87858, 87867, 87877, 87885, 87896, 87904, 87912,
+ 87919, 87927, 87936, 87943, 87955, 87966, 87978, 87989, 88001, 88010,
+ 88018, 88027, 88035, 88044, 88053, 88061, 88070, 88078, 88087, 88095,
+ 88103, 88111, 88119, 88126, 88135, 88143, 88152, 88160, 88169, 88177,
+ 88185, 88194, 88202, 88211, 88219, 88228, 88236, 88244, 88252, 88261,
+ 88269, 88278, 88286, 88295, 88303, 88312, 88320, 88328, 88336, 88345,
+ 88353, 88362, 88371, 88379, 88388, 88396, 88405, 88413, 88422, 88430,
+ 88437, 88445, 88452, 88461, 88469, 88478, 88486, 88495, 88504, 88512,
+ 88522, 88530, 88537, 88545, 88552, 88560, 88572, 88585, 88594, 88604,
+ 88613, 88623, 88632, 88642, 88651, 88661, 88670, 88680, 88690, 88699,
+ 88708, 88717, 88727, 88735, 88744, 88754, 88764, 88774, 88784, 88792,
+ 88802, 88810, 88820, 88828, 88838, 88846, 88856, 88864, 88873, 88880,
+ 88890, 88898, 88908, 88916, 88926, 88934, 88944, 88952, 88961, 88969,
+ 88978, 88986, 88995, 89004, 89013, 89022, 89032, 89040, 89050, 89058,
+ 89068, 89076, 89086, 89094, 89104, 89112, 89121, 89128, 89138, 89146,
+ 89156, 89164, 89174, 89182, 89192, 89200, 89209, 89217, 89226, 89234,
+ 89243, 89252, 89261, 89270, 89279, 89287, 89296, 89304, 89313, 89322,
+ 89330, 89340, 89349, 89359, 89369, 89378, 89388, 89397, 89406, 89414,
+ 89422, 89427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89432,
+ 89443, 89454, 89465, 89475, 89486, 89497, 89507, 89518, 89528, 89538,
+ 89547, 89558, 89569, 89580, 89593, 89603, 89613, 89624, 89634, 89644,
+ 89654, 89664, 89674, 89684, 89694, 89705, 89716, 89727, 89737, 89747,
+ 89759, 89770, 89781, 89791, 89801, 89811, 89821, 89832, 89842, 89852,
+ 89864, 89874, 89884, 89896, 89907, 89918, 89928, 89938, 89948, 89958,
+ 89970, 89982, 89994, 90005, 90016, 90026, 90036, 90046, 90055, 90064,
+ 90074, 90084, 90095, 0, 0, 90105, 90116, 90127, 90137, 90147, 90159,
+ 90170, 90181, 90194, 90204, 90216, 90225, 90234, 90245, 90256, 90269,
+ 90280, 90293, 90303, 90315, 90325, 90337, 90349, 90362, 90372, 90382,
+ 90392, 90403, 90413, 90422, 90432, 90441, 90450, 90460, 90470, 90480,
+ 90490, 90500, 90510, 90521, 90531, 90542, 90552, 90563, 90574, 90584,
+ 90594, 90604, 90614, 90624, 90634, 90645, 90655, 90666, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90677, 90692, 90707, 90713, 90719, 90725,
- 90731, 90737, 90743, 90749, 90755, 90763, 90767, 90770, 0, 0, 90778,
- 90781, 90784, 90787, 90790, 90793, 90796, 90799, 90802, 90805, 90808,
- 90811, 90814, 90817, 90820, 90823, 90826, 90834, 90843, 90854, 90862,
- 90870, 90879, 90888, 90899, 90911, 0, 0, 0, 0, 0, 0, 90921, 90926, 90931,
- 90938, 90945, 90951, 90957, 90962, 90967, 90972, 90978, 90984, 90990,
- 90996, 91002, 91009, 91016, 91026, 91036, 91046, 91055, 91066, 91075,
- 91084, 91094, 91104, 91116, 91128, 91139, 91150, 91161, 91172, 91182,
- 91192, 91202, 91212, 91223, 91234, 91238, 91243, 91252, 91261, 91265,
- 91269, 91273, 91278, 91283, 91288, 91293, 91296, 91300, 0, 91305, 91308,
- 91311, 91315, 91319, 91324, 91328, 91332, 91337, 91342, 91349, 91356,
- 91359, 91362, 91365, 91368, 91371, 91375, 91379, 0, 91383, 91388, 91392,
- 91396, 0, 0, 0, 0, 91401, 91406, 91413, 91418, 91423, 0, 91428, 91433,
- 91439, 91444, 91450, 91455, 91461, 91466, 91472, 91477, 91483, 91489,
- 91498, 91507, 91516, 91525, 91535, 91545, 91555, 91565, 91574, 91583,
- 91592, 91602, 91607, 91612, 91618, 91624, 91630, 91637, 91645, 91653,
- 91659, 91665, 91671, 91678, 91684, 91690, 91696, 91703, 91709, 91715,
- 91721, 91728, 91733, 91738, 91743, 91749, 91755, 91761, 91767, 91774,
- 91780, 91786, 91792, 91798, 91804, 91810, 91816, 91822, 91828, 91834,
- 91840, 91847, 91853, 91859, 91865, 91872, 91878, 91884, 91890, 91897,
- 91903, 91909, 91915, 91922, 91928, 91934, 91940, 91947, 91953, 91959,
- 91965, 91972, 91978, 91984, 91990, 91997, 92003, 92009, 92015, 92022,
- 92028, 92034, 92040, 92047, 92053, 92059, 92065, 92072, 92078, 92084,
- 92090, 92097, 92103, 92109, 92115, 92122, 92127, 92132, 92137, 92143,
- 92149, 92155, 92161, 92168, 92174, 92180, 92186, 92193, 92199, 92205,
- 92212, 92219, 92224, 92229, 92234, 92240, 92252, 92264, 92276, 92288,
- 92301, 92314, 92322, 0, 0, 92330, 0, 92338, 92342, 92346, 92349, 92353,
- 92357, 92360, 92363, 92367, 92371, 92374, 92377, 92380, 92383, 92388,
- 92391, 92395, 92398, 92401, 92404, 92407, 92410, 92413, 92416, 92419,
- 92422, 92425, 92428, 92432, 92436, 92440, 92444, 92449, 92454, 92460,
- 92466, 92472, 92477, 92483, 92489, 92495, 92500, 92506, 92512, 92517,
- 92523, 92529, 92534, 92540, 92546, 92551, 92557, 92563, 92568, 92574,
- 92580, 92586, 92592, 92598, 92602, 92607, 92611, 92616, 92620, 92625,
- 92630, 92636, 92642, 92648, 92653, 92659, 92665, 92671, 92676, 92682,
- 92688, 92693, 92699, 92705, 92710, 92716, 92722, 92727, 92733, 92739,
- 92744, 92750, 92756, 92762, 92768, 92774, 92779, 92783, 92788, 92791,
- 92796, 92801, 92807, 92812, 92817, 92821, 92826, 92831, 92836, 92841,
- 92846, 92851, 92856, 92861, 92867, 92873, 92879, 92887, 92891, 92895,
- 92899, 92903, 92907, 92911, 92916, 92921, 92926, 92931, 92935, 92940,
- 92945, 92950, 92955, 92959, 92964, 92969, 92974, 92978, 92982, 92987,
- 92992, 92997, 93002, 93006, 93011, 93016, 93021, 93026, 93030, 93035,
- 93040, 93045, 93050, 93054, 93059, 93064, 93068, 93073, 93078, 93083,
- 93088, 93093, 93098, 93105, 93112, 93116, 93121, 93126, 93131, 93136,
- 93141, 93146, 93151, 93156, 93161, 93166, 93171, 93176, 93181, 93186,
- 93191, 93196, 93201, 93206, 93211, 93216, 93221, 93226, 93231, 93236,
- 93241, 93246, 93251, 93256, 93261, 0, 0, 0, 93266, 93270, 93275, 93279,
- 93284, 93289, 0, 0, 93293, 93298, 93303, 93307, 93312, 93317, 0, 0,
- 93322, 93327, 93331, 93336, 93341, 93346, 0, 0, 93351, 93356, 93361, 0,
- 0, 0, 93365, 93369, 93373, 93377, 93380, 93384, 93388, 0, 93392, 93398,
- 93401, 93405, 93408, 93412, 93416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93420,
- 93426, 93432, 93438, 93444, 0, 0, 93448, 93454, 93460, 93466, 93472,
- 93478, 93485, 93492, 93499, 93506, 93513, 93520, 0, 93527, 93534, 93541,
- 93547, 93554, 93561, 93568, 93575, 93581, 93588, 93595, 93602, 93609,
- 93615, 93622, 93629, 93636, 93643, 93649, 93656, 93663, 93670, 93677,
- 93684, 93691, 93698, 0, 93705, 93711, 93718, 93725, 93732, 93739, 93745,
- 93752, 93759, 93766, 93773, 93779, 93786, 93793, 93799, 93806, 93813,
- 93820, 93827, 0, 93834, 93841, 0, 93848, 93855, 93862, 93869, 93876,
- 93883, 93890, 93897, 93904, 93911, 93918, 93925, 93932, 93939, 93946, 0,
- 0, 93952, 93957, 93962, 93967, 93972, 93977, 93982, 93987, 93992, 93997,
- 94002, 94007, 94012, 94017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94022, 94029,
- 94036, 94043, 94050, 94057, 94064, 94071, 94078, 94085, 94092, 94099,
- 94106, 94113, 94120, 94127, 94134, 94141, 94148, 94155, 94163, 94171,
- 94178, 94185, 94190, 94198, 94206, 94213, 94220, 94225, 94232, 94237,
- 94242, 94249, 94254, 94259, 94264, 94272, 94277, 94282, 94289, 94294,
- 94299, 94306, 94313, 94318, 94323, 94328, 94333, 94338, 94343, 94348,
- 94353, 94358, 94365, 94370, 94377, 94382, 94387, 94392, 94397, 94402,
- 94407, 94412, 94417, 94422, 94427, 94432, 94439, 94446, 94453, 94460,
- 94466, 94471, 94478, 94483, 94488, 94497, 94504, 94513, 94520, 94525,
- 94530, 94538, 94543, 94548, 94553, 94558, 94563, 94570, 94575, 94580,
- 94585, 94590, 94595, 94602, 94609, 94616, 94623, 94630, 94637, 94644,
- 94651, 94658, 94665, 94672, 94679, 94686, 94693, 94700, 94707, 94714,
- 94721, 94728, 94735, 94742, 94749, 94756, 94763, 94770, 94777, 94784,
- 94791, 0, 0, 0, 0, 0, 94798, 94806, 94814, 0, 0, 0, 0, 94819, 94823,
- 94827, 94831, 94835, 94839, 94843, 94847, 94851, 94855, 94860, 94865,
- 94870, 94875, 94880, 94885, 94890, 94895, 94900, 94906, 94912, 94918,
- 94925, 94932, 94939, 94946, 94953, 94960, 94965, 94970, 94975, 94981,
- 94987, 94993, 94999, 95005, 95011, 95017, 95023, 95029, 95035, 95041,
- 95047, 95053, 95059, 0, 0, 0, 95065, 95073, 95081, 95089, 95097, 95105,
- 95115, 95125, 95133, 95141, 95149, 95157, 95165, 95171, 95178, 95187,
- 95195, 95203, 95212, 95221, 95230, 95240, 95251, 95261, 95272, 95281,
- 95290, 95299, 95309, 95320, 95330, 95341, 95352, 95361, 95369, 95375,
- 95381, 95387, 95393, 95401, 95409, 95415, 95422, 95432, 95439, 95446,
- 95453, 95460, 95467, 95477, 95484, 95491, 95499, 95507, 95516, 95525,
- 95534, 95543, 95552, 95559, 95567, 95576, 95585, 95589, 95596, 95601,
- 95606, 95610, 95614, 95618, 95622, 95627, 95632, 95638, 95644, 95648,
- 95654, 95658, 95662, 95666, 95670, 95674, 95678, 95684, 95688, 95693,
- 95697, 95701, 0, 95704, 95709, 95714, 95719, 95724, 95731, 95736, 95741,
- 95746, 95751, 95756, 95761, 95766, 0, 0, 0, 95769, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90677, 90692, 90707, 90713, 90719, 90725,
+ 90731, 90737, 90743, 90749, 90755, 90763, 90767, 90770, 0, 0, 90778,
+ 90781, 90784, 90787, 90790, 90793, 90796, 90799, 90802, 90805, 90808,
+ 90811, 90814, 90817, 90820, 90823, 90826, 90834, 90843, 90854, 90862,
+ 90870, 90879, 90888, 90899, 90911, 0, 0, 0, 0, 0, 0, 90921, 90926, 90931,
+ 90938, 90945, 90951, 90957, 90962, 90967, 90972, 90978, 90984, 90990,
+ 90996, 91002, 91009, 91016, 91026, 91036, 91046, 91055, 91066, 91075,
+ 91084, 91094, 91104, 91116, 91128, 91139, 91150, 91161, 91172, 91182,
+ 91192, 91202, 91212, 91223, 91234, 91238, 91243, 91252, 91261, 91265,
+ 91269, 91273, 91278, 91283, 91288, 91293, 91296, 91300, 0, 91305, 91308,
+ 91311, 91315, 91319, 91324, 91328, 91332, 91337, 91342, 91349, 91356,
+ 91359, 91362, 91365, 91368, 91371, 91375, 91379, 0, 91383, 91388, 91392,
+ 91396, 0, 0, 0, 0, 91401, 91406, 91413, 91418, 91423, 0, 91428, 91433,
+ 91439, 91444, 91450, 91455, 91461, 91466, 91472, 91477, 91483, 91489,
+ 91498, 91507, 91516, 91525, 91535, 91545, 91555, 91565, 91574, 91583,
+ 91592, 91602, 91607, 91612, 91618, 91624, 91630, 91637, 91645, 91653,
+ 91659, 91665, 91671, 91678, 91684, 91690, 91696, 91703, 91709, 91715,
+ 91721, 91728, 91733, 91738, 91743, 91749, 91755, 91761, 91767, 91774,
+ 91780, 91786, 91792, 91798, 91804, 91810, 91816, 91822, 91828, 91834,
+ 91840, 91847, 91853, 91859, 91865, 91872, 91878, 91884, 91890, 91897,
+ 91903, 91909, 91915, 91922, 91928, 91934, 91940, 91947, 91953, 91959,
+ 91965, 91972, 91978, 91984, 91990, 91997, 92003, 92009, 92015, 92022,
+ 92028, 92034, 92040, 92047, 92053, 92059, 92065, 92072, 92078, 92084,
+ 92090, 92097, 92103, 92109, 92115, 92122, 92127, 92132, 92137, 92143,
+ 92149, 92155, 92161, 92168, 92174, 92180, 92186, 92193, 92199, 92205,
+ 92212, 92219, 92224, 92229, 92234, 92240, 92252, 92264, 92276, 92288,
+ 92301, 92314, 92322, 0, 0, 92330, 0, 92338, 92342, 92346, 92349, 92353,
+ 92357, 92360, 92363, 92367, 92371, 92374, 92377, 92380, 92383, 92388,
+ 92391, 92395, 92398, 92401, 92404, 92407, 92410, 92413, 92416, 92419,
+ 92422, 92425, 92428, 92432, 92436, 92440, 92444, 92449, 92454, 92460,
+ 92466, 92472, 92477, 92483, 92489, 92495, 92500, 92506, 92512, 92517,
+ 92523, 92529, 92534, 92540, 92546, 92551, 92557, 92563, 92568, 92574,
+ 92580, 92586, 92592, 92598, 92602, 92607, 92611, 92616, 92620, 92625,
+ 92630, 92636, 92642, 92648, 92653, 92659, 92665, 92671, 92676, 92682,
+ 92688, 92693, 92699, 92705, 92710, 92716, 92722, 92727, 92733, 92739,
+ 92744, 92750, 92756, 92762, 92768, 92774, 92779, 92783, 92788, 92791,
+ 92796, 92801, 92807, 92812, 92817, 92821, 92826, 92831, 92836, 92841,
+ 92846, 92851, 92856, 92861, 92867, 92873, 92879, 92887, 92891, 92895,
+ 92899, 92903, 92907, 92911, 92916, 92921, 92926, 92931, 92935, 92940,
+ 92945, 92950, 92955, 92959, 92964, 92969, 92974, 92978, 92982, 92987,
+ 92992, 92997, 93002, 93006, 93011, 93016, 93021, 93026, 93030, 93035,
+ 93040, 93045, 93050, 93054, 93059, 93064, 93068, 93073, 93078, 93083,
+ 93088, 93093, 93098, 93105, 93112, 93116, 93121, 93126, 93131, 93136,
+ 93141, 93146, 93151, 93156, 93161, 93166, 93171, 93176, 93181, 93186,
+ 93191, 93196, 93201, 93206, 93211, 93216, 93221, 93226, 93231, 93236,
+ 93241, 93246, 93251, 93256, 93261, 0, 0, 0, 93266, 93270, 93275, 93279,
+ 93284, 93289, 0, 0, 93293, 93298, 93303, 93307, 93312, 93317, 0, 0,
+ 93322, 93327, 93331, 93336, 93341, 93346, 0, 0, 93351, 93356, 93361, 0,
+ 0, 0, 93365, 93369, 93373, 93377, 93380, 93384, 93388, 0, 93392, 93398,
+ 93401, 93405, 93408, 93412, 93416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93420,
+ 93426, 93432, 93438, 93444, 0, 0, 93448, 93454, 93460, 93466, 93472,
+ 93478, 93485, 93492, 93499, 93506, 93513, 93520, 0, 93527, 93534, 93541,
+ 93547, 93554, 93561, 93568, 93575, 93581, 93588, 93595, 93602, 93609,
+ 93615, 93622, 93629, 93636, 93643, 93649, 93656, 93663, 93670, 93677,
+ 93684, 93691, 93698, 0, 93705, 93711, 93718, 93725, 93732, 93739, 93745,
+ 93752, 93759, 93766, 93773, 93779, 93786, 93793, 93799, 93806, 93813,
+ 93820, 93827, 0, 93834, 93841, 0, 93848, 93855, 93862, 93869, 93876,
+ 93883, 93890, 93897, 93904, 93911, 93918, 93925, 93932, 93939, 93946, 0,
+ 0, 93952, 93957, 93962, 93967, 93972, 93977, 93982, 93987, 93992, 93997,
+ 94002, 94007, 94012, 94017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94022, 94029,
+ 94036, 94043, 94050, 94057, 94064, 94071, 94078, 94085, 94092, 94099,
+ 94106, 94113, 94120, 94127, 94134, 94141, 94148, 94155, 94163, 94171,
+ 94178, 94185, 94190, 94198, 94206, 94213, 94220, 94225, 94232, 94237,
+ 94242, 94249, 94254, 94259, 94264, 94272, 94277, 94282, 94289, 94294,
+ 94299, 94306, 94313, 94318, 94323, 94328, 94333, 94338, 94343, 94348,
+ 94353, 94358, 94365, 94370, 94377, 94382, 94387, 94392, 94397, 94402,
+ 94407, 94412, 94417, 94422, 94427, 94432, 94439, 94446, 94453, 94460,
+ 94466, 94471, 94478, 94483, 94488, 94497, 94504, 94513, 94520, 94525,
+ 94530, 94538, 94543, 94548, 94553, 94558, 94563, 94570, 94575, 94580,
+ 94585, 94590, 94595, 94602, 94609, 94616, 94623, 94630, 94637, 94644,
+ 94651, 94658, 94665, 94672, 94679, 94686, 94693, 94700, 94707, 94714,
+ 94721, 94728, 94735, 94742, 94749, 94756, 94763, 94770, 94777, 94784,
+ 94791, 0, 0, 0, 0, 0, 94798, 94806, 94814, 0, 0, 0, 0, 94819, 94823,
+ 94827, 94831, 94835, 94839, 94843, 94847, 94851, 94855, 94860, 94865,
+ 94870, 94875, 94880, 94885, 94890, 94895, 94900, 94906, 94912, 94918,
+ 94925, 94932, 94939, 94946, 94953, 94960, 94965, 94970, 94975, 94981,
+ 94987, 94993, 94999, 95005, 95011, 95017, 95023, 95029, 95035, 95041,
+ 95047, 95053, 95059, 0, 0, 0, 95065, 95073, 95081, 95089, 95097, 95105,
+ 95115, 95125, 95133, 95141, 95149, 95157, 95165, 95171, 95178, 95187,
+ 95195, 95203, 95212, 95221, 95230, 95240, 95251, 95261, 95272, 95281,
+ 95290, 95299, 95309, 95320, 95330, 95341, 95352, 95361, 95369, 95375,
+ 95381, 95387, 95393, 95401, 95409, 95415, 95422, 95432, 95439, 95446,
+ 95453, 95460, 95467, 95477, 95484, 95491, 95499, 95507, 95516, 95525,
+ 95534, 95543, 95552, 95559, 95567, 95576, 95585, 95589, 95596, 95601,
+ 95606, 95610, 95614, 95618, 95622, 95627, 95632, 95638, 95644, 95648,
+ 95654, 95658, 95662, 95666, 95670, 95674, 95678, 95684, 95688, 95693,
+ 95697, 95701, 0, 95704, 95709, 95714, 95719, 95724, 95731, 95736, 95741,
+ 95746, 95751, 95756, 95761, 95766, 0, 0, 0, 95769, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95775, 95782, 95791,
- 95800, 95807, 95814, 95821, 95828, 95835, 95842, 95848, 95855, 95862,
- 95869, 95876, 95883, 95890, 95897, 95904, 95913, 95920, 95927, 95934,
- 95941, 95948, 95955, 95962, 95969, 95978, 95985, 95992, 95999, 96006,
- 96013, 96020, 96029, 96036, 96043, 96050, 96057, 96066, 96073, 96080,
- 96087, 96095, 96104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95775, 95782, 95791,
+ 95800, 95807, 95814, 95821, 95828, 95835, 95842, 95848, 95855, 95862,
+ 95869, 95876, 95883, 95890, 95897, 95904, 95913, 95920, 95927, 95934,
+ 95941, 95948, 95955, 95962, 95969, 95978, 95985, 95992, 95999, 96006,
+ 96013, 96020, 96029, 96036, 96043, 96050, 96057, 96066, 96073, 96080,
+ 96087, 96095, 96104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96113, 96117, 96121,
- 96126, 96131, 96136, 96141, 96145, 96150, 96155, 96160, 96165, 96170,
- 96175, 96179, 96184, 96189, 96194, 96199, 96203, 96208, 96213, 96217,
- 96222, 96227, 96232, 96237, 96242, 96247, 0, 0, 0, 96252, 96256, 96261,
- 96266, 96270, 96275, 96279, 96284, 96289, 96294, 96299, 96304, 96308,
- 96313, 96318, 96323, 96328, 96333, 96338, 96342, 96347, 96352, 96357,
- 96362, 96367, 96372, 96376, 96380, 96385, 96390, 96395, 96400, 96405,
- 96410, 96415, 96420, 96425, 96430, 96435, 96440, 96445, 96450, 96455,
- 96460, 96465, 96470, 96475, 96480, 96485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 96490, 96496, 96501, 96506, 96511, 96516, 96521, 96526,
- 96531, 96536, 96541, 96547, 96553, 96559, 96565, 96571, 96577, 96583,
- 96589, 96595, 96602, 96609, 96616, 96624, 96632, 96640, 96648, 96656, 0,
- 0, 0, 0, 96664, 96668, 96673, 96678, 96683, 96687, 96692, 96697, 96702,
- 96707, 96711, 96715, 96720, 96725, 96730, 96735, 96739, 96744, 96749,
- 96754, 96759, 96764, 96769, 96773, 96778, 96783, 96788, 96793, 96798,
- 96803, 96808, 96813, 96818, 96823, 96828, 96834, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 96840, 96845, 96852, 96859, 96864, 96869, 96874, 96879, 96884, 96889,
- 96894, 96899, 96904, 96909, 96914, 96919, 96924, 96929, 96934, 96939,
- 96944, 96949, 96954, 96959, 96964, 96969, 96974, 96979, 96984, 96989, 0,
- 0, 0, 0, 0, 96996, 97002, 97008, 97014, 97020, 97025, 97031, 97037,
- 97043, 97049, 97054, 97060, 97066, 97072, 97078, 97084, 97090, 97096,
- 97102, 97108, 97113, 97119, 97125, 97131, 97137, 97143, 97148, 97154,
- 97160, 97165, 97171, 97177, 97183, 97189, 97195, 97201, 97207, 97212,
- 97218, 97225, 97232, 97239, 97246, 0, 0, 0, 0, 0, 97253, 97258, 97263,
- 97268, 97273, 97278, 97283, 97288, 97293, 97298, 97303, 97308, 97313,
- 97318, 97323, 97328, 97333, 97338, 97343, 97348, 97353, 97358, 97363,
- 97368, 97373, 97378, 97383, 97387, 97391, 97395, 0, 97400, 97406, 97411,
- 97416, 97421, 97426, 97432, 97438, 97444, 97450, 97456, 97462, 97468,
- 97473, 97479, 97485, 97491, 97497, 97503, 97508, 97514, 97520, 97525,
- 97531, 97536, 97542, 97548, 97553, 97559, 97565, 97570, 97576, 97581,
- 97586, 97592, 97598, 97604, 0, 0, 0, 0, 97609, 97615, 97621, 97627,
- 97633, 97639, 97645, 97651, 97657, 97664, 97669, 97674, 97680, 97686, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96113, 96117, 96121,
+ 96126, 96131, 96136, 96141, 96145, 96150, 96155, 96160, 96165, 96170,
+ 96175, 96179, 96184, 96189, 96194, 96199, 96203, 96208, 96213, 96217,
+ 96222, 96227, 96232, 96237, 96242, 96247, 0, 0, 0, 96252, 96256, 96261,
+ 96266, 96270, 96275, 96279, 96284, 96289, 96294, 96299, 96304, 96308,
+ 96313, 96318, 96323, 96328, 96333, 96338, 96342, 96347, 96352, 96357,
+ 96362, 96367, 96372, 96376, 96380, 96385, 96390, 96395, 96400, 96405,
+ 96410, 96415, 96420, 96425, 96430, 96435, 96440, 96445, 96450, 96455,
+ 96460, 96465, 96470, 96475, 96480, 96485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 96490, 96496, 96501, 96506, 96511, 96516, 96521, 96526,
+ 96531, 96536, 96541, 96547, 96553, 96559, 96565, 96571, 96577, 96583,
+ 96589, 96595, 96602, 96609, 96616, 96624, 96632, 96640, 96648, 96656, 0,
+ 0, 0, 0, 96664, 96668, 96673, 96678, 96683, 96687, 96692, 96697, 96702,
+ 96707, 96711, 96715, 96720, 96725, 96730, 96735, 96739, 96744, 96749,
+ 96754, 96759, 96764, 96769, 96773, 96778, 96783, 96788, 96793, 96798,
+ 96803, 96808, 96813, 96818, 96823, 96828, 96834, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 96840, 96845, 96852, 96859, 96864, 96869, 96874, 96879, 96884, 96889,
+ 96894, 96899, 96904, 96909, 96914, 96919, 96924, 96929, 96934, 96939,
+ 96944, 96949, 96954, 96959, 96964, 96969, 96974, 96979, 96984, 96989, 0,
+ 0, 0, 0, 0, 96996, 97002, 97008, 97014, 97020, 97025, 97031, 97037,
+ 97043, 97049, 97054, 97060, 97066, 97072, 97078, 97084, 97090, 97096,
+ 97102, 97108, 97113, 97119, 97125, 97131, 97137, 97143, 97148, 97154,
+ 97160, 97165, 97171, 97177, 97183, 97189, 97195, 97201, 97207, 97212,
+ 97218, 97225, 97232, 97239, 97246, 0, 0, 0, 0, 0, 97253, 97258, 97263,
+ 97268, 97273, 97278, 97283, 97288, 97293, 97298, 97303, 97308, 97313,
+ 97318, 97323, 97328, 97333, 97338, 97343, 97348, 97353, 97358, 97363,
+ 97368, 97373, 97378, 97383, 97387, 97391, 97395, 0, 97400, 97406, 97411,
+ 97416, 97421, 97426, 97432, 97438, 97444, 97450, 97456, 97462, 97468,
+ 97473, 97479, 97485, 97491, 97497, 97503, 97508, 97514, 97520, 97525,
+ 97531, 97536, 97542, 97548, 97553, 97559, 97565, 97570, 97576, 97581,
+ 97586, 97592, 97598, 97604, 0, 0, 0, 0, 97609, 97615, 97621, 97627,
+ 97633, 97639, 97645, 97651, 97657, 97664, 97669, 97674, 97680, 97686, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97692, 97698, 97704,
- 97710, 97717, 97723, 97730, 97737, 97744, 97751, 97759, 97766, 97774,
- 97780, 97786, 97792, 97798, 97804, 97810, 97816, 97822, 97828, 97834,
- 97840, 97846, 97852, 97858, 97864, 97870, 97876, 97882, 97888, 97894,
- 97900, 97906, 97912, 97918, 97924, 97930, 97936, 97942, 97948, 97954,
- 97960, 97967, 97973, 97980, 97987, 97994, 98001, 98009, 98016, 98024,
- 98030, 98036, 98042, 98048, 98054, 98060, 98066, 98072, 98078, 98084,
- 98090, 98096, 98102, 98108, 98114, 98120, 98126, 98132, 98138, 98144,
- 98150, 98156, 98162, 98168, 98174, 98180, 98186, 98192, 98197, 98202,
- 98207, 98212, 98217, 98222, 98227, 98232, 98237, 98242, 98247, 98252,
- 98257, 98262, 98267, 98272, 98277, 98282, 98287, 98292, 98297, 98302,
- 98307, 98312, 98317, 98322, 98327, 98332, 98337, 98342, 98347, 98352,
- 98357, 98362, 98367, 98372, 98377, 98382, 98387, 98392, 98397, 98402,
- 98407, 98412, 98417, 98422, 98427, 98432, 98437, 98442, 98446, 98451,
- 98456, 98461, 98466, 98470, 98474, 98479, 98484, 98489, 98494, 98499,
- 98504, 98509, 98514, 98519, 98524, 98529, 98533, 98537, 98541, 98545,
- 98549, 98553, 98557, 98562, 98567, 0, 0, 98572, 98577, 98581, 98585,
- 98589, 98593, 98597, 98601, 98605, 98609, 0, 0, 0, 0, 0, 0, 98613, 98618,
- 98624, 98630, 98636, 98642, 98648, 98654, 98659, 98665, 98670, 98676,
- 98681, 98686, 98692, 98698, 98703, 98708, 98713, 98718, 98724, 98729,
- 98735, 98740, 98746, 98751, 98757, 98763, 98769, 98775, 98781, 98786,
- 98792, 98798, 98804, 98810, 0, 0, 0, 0, 98816, 98821, 98827, 98833,
- 98839, 98845, 98851, 98857, 98862, 98868, 98873, 98879, 98884, 98889,
- 98895, 98901, 98906, 98911, 98916, 98921, 98927, 98932, 98938, 98943,
- 98949, 98954, 98960, 98966, 98972, 98978, 98984, 98989, 98995, 99001,
- 99007, 99013, 0, 0, 0, 0, 99019, 99023, 99028, 99033, 99038, 99043,
- 99048, 99053, 99058, 99062, 99067, 99072, 99077, 99082, 99086, 99091,
- 99096, 99101, 99106, 99111, 99116, 99120, 99125, 99129, 99134, 99139,
- 99144, 99149, 99154, 99159, 99164, 99169, 99173, 99178, 99183, 99188,
- 99193, 99198, 99203, 99208, 0, 0, 0, 0, 0, 0, 0, 0, 99213, 99220, 99227,
- 99234, 99241, 99248, 99255, 99262, 99269, 99276, 99283, 99290, 99297,
- 99304, 99311, 99318, 99325, 99332, 99339, 99346, 99353, 99360, 99367,
- 99374, 99381, 99388, 99395, 99402, 99409, 99416, 99423, 99430, 99437,
- 99444, 99451, 99458, 99465, 99472, 99479, 99486, 99493, 99500, 99507,
- 99514, 99521, 99528, 99535, 99542, 99549, 99556, 99563, 99570, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 99577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97692, 97698, 97704,
+ 97710, 97717, 97723, 97730, 97737, 97744, 97751, 97759, 97766, 97774,
+ 97780, 97786, 97792, 97798, 97804, 97810, 97816, 97822, 97828, 97834,
+ 97840, 97846, 97852, 97858, 97864, 97870, 97876, 97882, 97888, 97894,
+ 97900, 97906, 97912, 97918, 97924, 97930, 97936, 97942, 97948, 97954,
+ 97960, 97967, 97973, 97980, 97987, 97994, 98001, 98009, 98016, 98024,
+ 98030, 98036, 98042, 98048, 98054, 98060, 98066, 98072, 98078, 98084,
+ 98090, 98096, 98102, 98108, 98114, 98120, 98126, 98132, 98138, 98144,
+ 98150, 98156, 98162, 98168, 98174, 98180, 98186, 98192, 98197, 98202,
+ 98207, 98212, 98217, 98222, 98227, 98232, 98237, 98242, 98247, 98252,
+ 98257, 98262, 98267, 98272, 98277, 98282, 98287, 98292, 98297, 98302,
+ 98307, 98312, 98317, 98322, 98327, 98332, 98337, 98342, 98347, 98352,
+ 98357, 98362, 98367, 98372, 98377, 98382, 98387, 98392, 98397, 98402,
+ 98407, 98412, 98417, 98422, 98427, 98432, 98437, 98442, 98446, 98451,
+ 98456, 98461, 98466, 98470, 98474, 98479, 98484, 98489, 98494, 98499,
+ 98504, 98509, 98514, 98519, 98524, 98529, 98533, 98537, 98541, 98545,
+ 98549, 98553, 98557, 98562, 98567, 0, 0, 98572, 98577, 98581, 98585,
+ 98589, 98593, 98597, 98601, 98605, 98609, 0, 0, 0, 0, 0, 0, 98613, 98618,
+ 98624, 98630, 98636, 98642, 98648, 98654, 98659, 98665, 98670, 98676,
+ 98681, 98686, 98692, 98698, 98703, 98708, 98713, 98718, 98724, 98729,
+ 98735, 98740, 98746, 98751, 98757, 98763, 98769, 98775, 98781, 98786,
+ 98792, 98798, 98804, 98810, 0, 0, 0, 0, 98816, 98821, 98827, 98833,
+ 98839, 98845, 98851, 98857, 98862, 98868, 98873, 98879, 98884, 98889,
+ 98895, 98901, 98906, 98911, 98916, 98921, 98927, 98932, 98938, 98943,
+ 98949, 98954, 98960, 98966, 98972, 98978, 98984, 98989, 98995, 99001,
+ 99007, 99013, 0, 0, 0, 0, 99019, 99023, 99028, 99033, 99038, 99043,
+ 99048, 99053, 99058, 99062, 99067, 99072, 99077, 99082, 99086, 99091,
+ 99096, 99101, 99106, 99111, 99116, 99120, 99125, 99129, 99134, 99139,
+ 99144, 99149, 99154, 99159, 99164, 99169, 99173, 99178, 99183, 99188,
+ 99193, 99198, 99203, 99208, 0, 0, 0, 0, 0, 0, 0, 0, 99213, 99220, 99227,
+ 99234, 99241, 99248, 99255, 99262, 99269, 99276, 99283, 99290, 99297,
+ 99304, 99311, 99318, 99325, 99332, 99339, 99346, 99353, 99360, 99367,
+ 99374, 99381, 99388, 99395, 99402, 99409, 99416, 99423, 99430, 99437,
+ 99444, 99451, 99458, 99465, 99472, 99479, 99486, 99493, 99500, 99507,
+ 99514, 99521, 99528, 99535, 99542, 99549, 99556, 99563, 99570, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 99577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99584, 99589, 99594, 99599, 99604, 99609,
- 99614, 99619, 99624, 99629, 99634, 99639, 99644, 99649, 99654, 99659,
- 99664, 99669, 99674, 99679, 99684, 99689, 99694, 99699, 99704, 99709,
- 99714, 99719, 99724, 99729, 99734, 99739, 99744, 99749, 99754, 99759,
- 99764, 99769, 99774, 99779, 99784, 99789, 99794, 99799, 99804, 99809,
- 99814, 99819, 99824, 99829, 99834, 99839, 99844, 99849, 99854, 99859,
- 99864, 99869, 99874, 99879, 99884, 99889, 99894, 99899, 99904, 99909,
- 99914, 99919, 99924, 99929, 99934, 99939, 99944, 99949, 99954, 99959,
- 99964, 99969, 99974, 99979, 99984, 99989, 99994, 99999, 100004, 100009,
- 100014, 100019, 100024, 100029, 100034, 100039, 100044, 100049, 100054,
- 100059, 100064, 100069, 100074, 100079, 100084, 100089, 100094, 100099,
- 100104, 100109, 100114, 100119, 100124, 100129, 100134, 100139, 100144,
- 100149, 100154, 100159, 100164, 100169, 100174, 100179, 100184, 100189,
- 100194, 100199, 100204, 100209, 100214, 100219, 100224, 100229, 100234,
- 100239, 100244, 100249, 100254, 100259, 100264, 100269, 100274, 100279,
- 100284, 100289, 100294, 100299, 100304, 100309, 100314, 100319, 100324,
- 100329, 100334, 100339, 100344, 100349, 100354, 100359, 100364, 100369,
- 100374, 100379, 100384, 100389, 100394, 100399, 100404, 100409, 100414,
- 100419, 100424, 100429, 100434, 100439, 100444, 100449, 100454, 100459,
- 100464, 100469, 100474, 100479, 100484, 100489, 100494, 100499, 100504,
- 100509, 100514, 100519, 100524, 100529, 100534, 100539, 100544, 100549,
- 100554, 100559, 100564, 100569, 100574, 100579, 100584, 100589, 100594,
- 100599, 100604, 100609, 100614, 100619, 100624, 100629, 100634, 100639,
- 100644, 100649, 100654, 100659, 100664, 100669, 100674, 100679, 100684,
- 100689, 100694, 100699, 100704, 100709, 100714, 100719, 100724, 100729,
- 100734, 100739, 100744, 100749, 100754, 100759, 100764, 100769, 100774,
- 100779, 100784, 100789, 100794, 100799, 100804, 100809, 100814, 100819,
- 100824, 100829, 100834, 100839, 100844, 100849, 100854, 100859, 100864,
- 100869, 100874, 100879, 100884, 100889, 100894, 100899, 100904, 100909,
- 100914, 100919, 100924, 100929, 100934, 100939, 100944, 100949, 100954,
- 100959, 100964, 100969, 100974, 100979, 100984, 100989, 100994, 100999,
- 101004, 101009, 101014, 101019, 101024, 101029, 101034, 101039, 101044,
- 101049, 101054, 101059, 101064, 101069, 101074, 101079, 101084, 101089,
- 101094, 101099, 101104, 101109, 101114, 101119, 101124, 101129, 101134,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 101139, 101145, 101152, 101159, 101165,
- 101172, 101179, 101186, 101193, 101199, 101206, 101213, 101220, 101227,
- 101234, 101241, 101248, 101255, 101262, 101269, 101276, 101283, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 101290, 101295, 101300, 101305, 101310, 101315,
- 101320, 101325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99584, 99589, 99594, 99599, 99604, 99609,
+ 99614, 99619, 99624, 99629, 99634, 99639, 99644, 99649, 99654, 99659,
+ 99664, 99669, 99674, 99679, 99684, 99689, 99694, 99699, 99704, 99709,
+ 99714, 99719, 99724, 99729, 99734, 99739, 99744, 99749, 99754, 99759,
+ 99764, 99769, 99774, 99779, 99784, 99789, 99794, 99799, 99804, 99809,
+ 99814, 99819, 99824, 99829, 99834, 99839, 99844, 99849, 99854, 99859,
+ 99864, 99869, 99874, 99879, 99884, 99889, 99894, 99899, 99904, 99909,
+ 99914, 99919, 99924, 99929, 99934, 99939, 99944, 99949, 99954, 99959,
+ 99964, 99969, 99974, 99979, 99984, 99989, 99994, 99999, 100004, 100009,
+ 100014, 100019, 100024, 100029, 100034, 100039, 100044, 100049, 100054,
+ 100059, 100064, 100069, 100074, 100079, 100084, 100089, 100094, 100099,
+ 100104, 100109, 100114, 100119, 100124, 100129, 100134, 100139, 100144,
+ 100149, 100154, 100159, 100164, 100169, 100174, 100179, 100184, 100189,
+ 100194, 100199, 100204, 100209, 100214, 100219, 100224, 100229, 100234,
+ 100239, 100244, 100249, 100254, 100259, 100264, 100269, 100274, 100279,
+ 100284, 100289, 100294, 100299, 100304, 100309, 100314, 100319, 100324,
+ 100329, 100334, 100339, 100344, 100349, 100354, 100359, 100364, 100369,
+ 100374, 100379, 100384, 100389, 100394, 100399, 100404, 100409, 100414,
+ 100419, 100424, 100429, 100434, 100439, 100444, 100449, 100454, 100459,
+ 100464, 100469, 100474, 100479, 100484, 100489, 100494, 100499, 100504,
+ 100509, 100514, 100519, 100524, 100529, 100534, 100539, 100544, 100549,
+ 100554, 100559, 100564, 100569, 100574, 100579, 100584, 100589, 100594,
+ 100599, 100604, 100609, 100614, 100619, 100624, 100629, 100634, 100639,
+ 100644, 100649, 100654, 100659, 100664, 100669, 100674, 100679, 100684,
+ 100689, 100694, 100699, 100704, 100709, 100714, 100719, 100724, 100729,
+ 100734, 100739, 100744, 100749, 100754, 100759, 100764, 100769, 100774,
+ 100779, 100784, 100789, 100794, 100799, 100804, 100809, 100814, 100819,
+ 100824, 100829, 100834, 100839, 100844, 100849, 100854, 100859, 100864,
+ 100869, 100874, 100879, 100884, 100889, 100894, 100899, 100904, 100909,
+ 100914, 100919, 100924, 100929, 100934, 100939, 100944, 100949, 100954,
+ 100959, 100964, 100969, 100974, 100979, 100984, 100989, 100994, 100999,
+ 101004, 101009, 101014, 101019, 101024, 101029, 101034, 101039, 101044,
+ 101049, 101054, 101059, 101064, 101069, 101074, 101079, 101084, 101089,
+ 101094, 101099, 101104, 101109, 101114, 101119, 101124, 101129, 101134,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 101139, 101145, 101152, 101159, 101165,
+ 101172, 101179, 101186, 101193, 101199, 101206, 101213, 101220, 101227,
+ 101234, 101241, 101248, 101255, 101262, 101269, 101276, 101283, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 101290, 101295, 101300, 101305, 101310, 101315,
+ 101320, 101325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101330, 101334, 101338, 101342,
- 101346, 101350, 0, 0, 101355, 0, 101360, 101364, 101369, 101374, 101379,
- 101384, 101388, 101393, 101398, 101403, 101408, 101412, 101417, 101422,
- 101427, 101432, 101436, 101441, 101446, 101451, 101456, 101460, 101465,
- 101470, 101475, 101480, 101484, 101489, 101494, 101499, 101504, 101508,
- 101513, 101518, 101523, 101528, 101532, 101537, 101542, 101546, 101551,
- 101556, 101561, 101566, 0, 101571, 101576, 0, 0, 0, 101581, 0, 0, 101586,
- 101591, 101598, 101605, 101612, 101619, 101626, 101633, 101640, 101647,
- 101654, 101661, 101668, 101675, 101682, 101689, 101696, 101703, 101710,
- 101717, 101724, 101731, 101738, 0, 101745, 101752, 101758, 101764,
- 101770, 101777, 101784, 101792, 101799, 101807, 101812, 101817, 101822,
- 101827, 101832, 101837, 101842, 101847, 101852, 101857, 101862, 101867,
- 101872, 101878, 101883, 101888, 101893, 101898, 101903, 101908, 101913,
- 101918, 101923, 101929, 101935, 101939, 101943, 101947, 101951, 101955,
- 101960, 101965, 101971, 101976, 101982, 101987, 101992, 101997, 102003,
- 102008, 102013, 102018, 102023, 102028, 102034, 102039, 102045, 102050,
- 102056, 102061, 102067, 102072, 102078, 102083, 102088, 102093, 102098,
- 102103, 102108, 102113, 102119, 102124, 0, 0, 0, 0, 0, 0, 0, 0, 102129,
- 102133, 102137, 102141, 102145, 102151, 102155, 102160, 102165, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101330, 101334, 101338, 101342,
+ 101346, 101350, 0, 0, 101355, 0, 101360, 101364, 101369, 101374, 101379,
+ 101384, 101388, 101393, 101398, 101403, 101408, 101412, 101417, 101422,
+ 101427, 101432, 101436, 101441, 101446, 101451, 101456, 101460, 101465,
+ 101470, 101475, 101480, 101484, 101489, 101494, 101499, 101504, 101508,
+ 101513, 101518, 101523, 101528, 101532, 101537, 101542, 101546, 101551,
+ 101556, 101561, 101566, 0, 101571, 101576, 0, 0, 0, 101581, 0, 0, 101586,
+ 101591, 101598, 101605, 101612, 101619, 101626, 101633, 101640, 101647,
+ 101654, 101661, 101668, 101675, 101682, 101689, 101696, 101703, 101710,
+ 101717, 101724, 101731, 101738, 0, 101745, 101752, 101758, 101764,
+ 101770, 101777, 101784, 101792, 101799, 101807, 101812, 101817, 101822,
+ 101827, 101832, 101837, 101842, 101847, 101852, 101857, 101862, 101867,
+ 101872, 101878, 101883, 101888, 101893, 101898, 101903, 101908, 101913,
+ 101918, 101923, 101929, 101935, 101939, 101943, 101947, 101951, 101955,
+ 101960, 101965, 101971, 101976, 101982, 101987, 101992, 101997, 102003,
+ 102008, 102013, 102018, 102023, 102028, 102034, 102039, 102045, 102050,
+ 102056, 102061, 102067, 102072, 102078, 102083, 102088, 102093, 102098,
+ 102103, 102108, 102113, 102119, 102124, 0, 0, 0, 0, 0, 0, 0, 0, 102129,
+ 102133, 102137, 102141, 102145, 102151, 102155, 102160, 102165, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102171,
- 102176, 102181, 102186, 102191, 102196, 102201, 102206, 102211, 102216,
- 102221, 102226, 102231, 102236, 102241, 102246, 102251, 102256, 102261,
- 0, 102266, 102271, 0, 0, 0, 0, 0, 102276, 102280, 102284, 102289, 102294,
- 102300, 102305, 102310, 102315, 102320, 102325, 102330, 102335, 102340,
- 102345, 102350, 102355, 102360, 102365, 102370, 102375, 102380, 102385,
- 102390, 102395, 102400, 102405, 102410, 102414, 102419, 102424, 102430,
- 102434, 0, 0, 0, 102438, 102444, 102448, 102453, 102458, 102463, 102467,
- 102472, 102476, 102481, 102486, 102490, 102495, 102500, 102504, 102508,
- 102513, 102518, 102522, 102527, 102532, 102537, 102542, 102547, 102552,
- 102557, 102562, 0, 0, 0, 0, 0, 102567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102171,
+ 102176, 102181, 102186, 102191, 102196, 102201, 102206, 102211, 102216,
+ 102221, 102226, 102231, 102236, 102241, 102246, 102251, 102256, 102261,
+ 0, 102266, 102271, 0, 0, 0, 0, 0, 102276, 102280, 102284, 102289, 102294,
+ 102300, 102305, 102310, 102315, 102320, 102325, 102330, 102335, 102340,
+ 102345, 102350, 102355, 102360, 102365, 102370, 102375, 102380, 102385,
+ 102390, 102395, 102400, 102405, 102410, 102414, 102419, 102424, 102430,
+ 102434, 0, 0, 0, 102438, 102444, 102448, 102453, 102458, 102463, 102467,
+ 102472, 102476, 102481, 102486, 102490, 102495, 102500, 102504, 102508,
+ 102513, 102518, 102522, 102527, 102532, 102537, 102542, 102547, 102552,
+ 102557, 102562, 0, 0, 0, 0, 0, 102567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 102572, 102577, 102582, 102587, 102592, 102597, 102603,
- 102609, 102615, 102620, 102625, 102630, 102636, 102642, 102648, 102653,
- 102659, 102664, 102670, 102676, 102681, 102687, 102693, 102698, 102704,
- 102709, 102715, 102721, 102727, 102732, 102738, 102744, 102750, 102755,
- 102760, 102765, 102770, 102775, 102781, 102787, 102792, 102797, 102802,
- 102808, 102813, 102818, 102824, 102830, 102835, 102842, 102848, 102853,
- 102859, 102864, 102870, 102875, 0, 0, 0, 0, 102881, 102890, 102898,
- 102905, 102912, 102917, 102922, 102927, 102932, 102937, 102942, 102947,
- 102952, 102957, 102963, 102969, 102975, 102981, 102987, 102993, 0, 0,
- 102999, 103006, 103013, 103020, 103028, 103036, 103044, 103052, 103060,
- 103068, 103074, 103080, 103086, 103093, 103100, 103107, 103114, 103121,
- 103128, 103135, 103142, 103149, 103156, 103163, 103170, 103177, 103184,
- 103191, 103199, 103207, 103215, 103224, 103233, 103242, 103251, 103260,
- 103269, 103277, 103285, 103293, 103302, 103311, 103320, 103329, 103338,
- 103347, 103356, 103360, 103365, 103370, 0, 103376, 103381, 0, 0, 0, 0, 0,
- 103386, 103392, 103399, 103404, 103409, 103413, 103418, 103423, 0,
- 103428, 103433, 103438, 0, 103443, 103448, 103453, 103458, 103463,
- 103468, 103473, 103477, 103482, 103487, 103492, 103496, 103500, 103505,
- 103510, 103515, 103519, 103523, 103527, 103531, 103536, 103541, 103546,
- 103550, 103555, 103559, 103564, 103569, 103574, 0, 0, 103579, 103585,
- 103590, 0, 0, 0, 0, 103595, 103599, 103603, 103607, 103611, 103615,
- 103620, 103625, 103631, 103636, 0, 0, 0, 0, 0, 0, 0, 103643, 103649,
- 103656, 103662, 103669, 103675, 103681, 103687, 103694, 0, 0, 0, 0, 0, 0,
- 0, 103700, 103708, 103716, 103724, 103732, 103740, 103748, 103756,
- 103764, 103772, 103780, 103788, 103796, 103804, 103812, 103820, 103828,
- 103836, 103844, 103852, 103860, 103868, 103876, 103884, 103892, 103900,
- 103908, 103916, 103924, 103932, 103939, 103947, 103955, 103962, 103969,
- 103976, 103983, 103990, 103997, 104004, 104011, 104018, 104025, 104032,
- 104039, 104046, 104053, 104060, 104067, 104074, 104081, 104088, 104095,
- 104102, 104109, 104116, 104123, 104130, 104137, 104144, 104151, 104158,
- 104164, 104171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104178, 104183, 104188, 104193,
- 104198, 104203, 104208, 104213, 104218, 104223, 104228, 104233, 104238,
- 104243, 104248, 104253, 104258, 104263, 104268, 104273, 104278, 104283,
- 104288, 104293, 104298, 104303, 104308, 104313, 104318, 104323, 104328,
- 104333, 104338, 104343, 104348, 104353, 104358, 104363, 104369, 0, 0, 0,
- 0, 104375, 104379, 104383, 104388, 104393, 104399, 104405, 104411,
- 104421, 104430, 104436, 104443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104451,
- 104455, 104460, 104465, 104470, 104475, 104480, 104485, 104490, 104494,
- 104499, 104503, 104508, 104512, 104517, 104521, 104526, 104531, 104536,
- 104541, 104546, 104551, 104556, 104561, 104566, 104571, 104576, 104581,
- 104586, 104591, 104596, 104601, 104606, 104611, 104616, 104621, 104626,
- 104631, 104636, 104641, 104646, 104651, 104656, 104661, 104666, 104671,
- 104676, 104681, 104686, 104691, 104696, 104701, 104706, 104711, 0, 0, 0,
- 104716, 104721, 104731, 104740, 104750, 104760, 104771, 104782, 104789,
- 104796, 104803, 104810, 104817, 104824, 104831, 104838, 104845, 104852,
- 104859, 104866, 104873, 104880, 104887, 104894, 104901, 104908, 104915,
- 104922, 104929, 0, 0, 104936, 104942, 104948, 104954, 104960, 104967,
- 104974, 104982, 104989, 104996, 105003, 105010, 105017, 105024, 105031,
- 105038, 105045, 105052, 105059, 105066, 105073, 105080, 105087, 105094,
- 105101, 105108, 105115, 0, 0, 0, 0, 0, 105122, 105128, 105134, 105140,
- 105146, 105153, 105160, 105168, 105175, 105182, 105189, 105196, 105203,
- 105210, 105217, 105224, 105231, 105238, 105245, 105252, 105259, 105266,
- 105273, 105280, 105287, 105294, 0, 0, 0, 0, 0, 0, 0, 105301, 105308,
- 105316, 105327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105338, 105344,
- 105350, 105356, 105362, 105369, 105376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 102572, 102577, 102582, 102587, 102592, 102597, 102603,
+ 102609, 102615, 102620, 102625, 102630, 102636, 102642, 102648, 102653,
+ 102659, 102664, 102670, 102676, 102681, 102687, 102693, 102698, 102704,
+ 102709, 102715, 102721, 102727, 102732, 102738, 102744, 102750, 102755,
+ 102760, 102765, 102770, 102775, 102781, 102787, 102792, 102797, 102802,
+ 102808, 102813, 102818, 102824, 102830, 102835, 102842, 102848, 102853,
+ 102859, 102864, 102870, 102875, 0, 0, 0, 0, 102881, 102890, 102898,
+ 102905, 102912, 102917, 102922, 102927, 102932, 102937, 102942, 102947,
+ 102952, 102957, 102963, 102969, 102975, 102981, 102987, 102993, 0, 0,
+ 102999, 103006, 103013, 103020, 103028, 103036, 103044, 103052, 103060,
+ 103068, 103074, 103080, 103086, 103093, 103100, 103107, 103114, 103121,
+ 103128, 103135, 103142, 103149, 103156, 103163, 103170, 103177, 103184,
+ 103191, 103199, 103207, 103215, 103224, 103233, 103242, 103251, 103260,
+ 103269, 103277, 103285, 103293, 103302, 103311, 103320, 103329, 103338,
+ 103347, 103356, 103360, 103365, 103370, 0, 103376, 103381, 0, 0, 0, 0, 0,
+ 103386, 103392, 103399, 103404, 103409, 103413, 103418, 103423, 0,
+ 103428, 103433, 103438, 0, 103443, 103448, 103453, 103458, 103463,
+ 103468, 103473, 103477, 103482, 103487, 103492, 103496, 103500, 103505,
+ 103510, 103515, 103519, 103523, 103527, 103531, 103536, 103541, 103546,
+ 103550, 103555, 103559, 103564, 103569, 103574, 0, 0, 103579, 103585,
+ 103590, 0, 0, 0, 0, 103595, 103599, 103603, 103607, 103611, 103615,
+ 103620, 103625, 103631, 103636, 0, 0, 0, 0, 0, 0, 0, 103643, 103649,
+ 103656, 103662, 103669, 103675, 103681, 103687, 103694, 0, 0, 0, 0, 0, 0,
+ 0, 103700, 103708, 103716, 103724, 103732, 103740, 103748, 103756,
+ 103764, 103772, 103780, 103788, 103796, 103804, 103812, 103820, 103828,
+ 103836, 103844, 103852, 103860, 103868, 103876, 103884, 103892, 103900,
+ 103908, 103916, 103924, 103932, 103939, 103947, 103955, 103962, 103969,
+ 103976, 103983, 103990, 103997, 104004, 104011, 104018, 104025, 104032,
+ 104039, 104046, 104053, 104060, 104067, 104074, 104081, 104088, 104095,
+ 104102, 104109, 104116, 104123, 104130, 104137, 104144, 104151, 104158,
+ 104164, 104171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104178, 104183, 104188, 104193,
+ 104198, 104203, 104208, 104213, 104218, 104223, 104228, 104233, 104238,
+ 104243, 104248, 104253, 104258, 104263, 104268, 104273, 104278, 104283,
+ 104288, 104293, 104298, 104303, 104308, 104313, 104318, 104323, 104328,
+ 104333, 104338, 104343, 104348, 104353, 104358, 104363, 104369, 0, 0, 0,
+ 0, 104375, 104379, 104383, 104388, 104393, 104399, 104405, 104411,
+ 104421, 104430, 104436, 104443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104451,
+ 104455, 104460, 104465, 104470, 104475, 104480, 104485, 104490, 104494,
+ 104499, 104503, 104508, 104512, 104517, 104521, 104526, 104531, 104536,
+ 104541, 104546, 104551, 104556, 104561, 104566, 104571, 104576, 104581,
+ 104586, 104591, 104596, 104601, 104606, 104611, 104616, 104621, 104626,
+ 104631, 104636, 104641, 104646, 104651, 104656, 104661, 104666, 104671,
+ 104676, 104681, 104686, 104691, 104696, 104701, 104706, 104711, 0, 0, 0,
+ 104716, 104721, 104731, 104740, 104750, 104760, 104771, 104782, 104789,
+ 104796, 104803, 104810, 104817, 104824, 104831, 104838, 104845, 104852,
+ 104859, 104866, 104873, 104880, 104887, 104894, 104901, 104908, 104915,
+ 104922, 104929, 0, 0, 104936, 104942, 104948, 104954, 104960, 104967,
+ 104974, 104982, 104989, 104996, 105003, 105010, 105017, 105024, 105031,
+ 105038, 105045, 105052, 105059, 105066, 105073, 105080, 105087, 105094,
+ 105101, 105108, 105115, 0, 0, 0, 0, 0, 105122, 105128, 105134, 105140,
+ 105146, 105153, 105160, 105168, 105175, 105182, 105189, 105196, 105203,
+ 105210, 105217, 105224, 105231, 105238, 105245, 105252, 105259, 105266,
+ 105273, 105280, 105287, 105294, 0, 0, 0, 0, 0, 0, 0, 105301, 105308,
+ 105316, 105327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105338, 105344,
+ 105350, 105356, 105362, 105369, 105376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105384,
- 105391, 105398, 105406, 105413, 105420, 105427, 105434, 105442, 105450,
- 105458, 105466, 105474, 105482, 105490, 105498, 105506, 105514, 105522,
- 105530, 105538, 105546, 105554, 105562, 105570, 105578, 105586, 105594,
- 105602, 105610, 105618, 105626, 105634, 105642, 105650, 105658, 105666,
- 105674, 105682, 105690, 105698, 105706, 105714, 105722, 105730, 105738,
- 105746, 105754, 105762, 105770, 105778, 105786, 105794, 105802, 105810,
- 105818, 105826, 105834, 105842, 105850, 105858, 105866, 105874, 105882,
- 105890, 105898, 105906, 105914, 105922, 105930, 105938, 105946, 105954,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105384,
+ 105391, 105398, 105406, 105413, 105420, 105427, 105434, 105442, 105450,
+ 105458, 105466, 105474, 105482, 105490, 105498, 105506, 105514, 105522,
+ 105530, 105538, 105546, 105554, 105562, 105570, 105578, 105586, 105594,
+ 105602, 105610, 105618, 105626, 105634, 105642, 105650, 105658, 105666,
+ 105674, 105682, 105690, 105698, 105706, 105714, 105722, 105730, 105738,
+ 105746, 105754, 105762, 105770, 105778, 105786, 105794, 105802, 105810,
+ 105818, 105826, 105834, 105842, 105850, 105858, 105866, 105874, 105882,
+ 105890, 105898, 105906, 105914, 105922, 105930, 105938, 105946, 105954,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 105962, 105967, 105973, 105979, 105985, 105991,
- 105997, 106003, 106009, 106015, 106020, 106027, 106033, 106039, 106045,
- 106051, 106057, 106062, 106068, 106074, 106080, 106086, 106092, 106098,
- 106104, 106110, 106116, 106122, 106127, 106133, 106141, 106149, 106155,
- 106161, 106167, 106173, 106181, 106187, 106193, 106199, 106205, 106211,
- 106217, 106222, 106228, 106236, 106244, 106250, 106256, 106262, 106269,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106275, 106280, 106286, 106292,
- 106298, 106304, 106310, 106316, 106322, 106328, 106333, 106340, 106346,
- 106352, 106358, 106364, 106370, 106375, 106381, 106387, 106393, 106399,
- 106405, 106411, 106417, 106423, 106429, 106435, 106440, 106446, 106454,
- 106462, 106468, 106474, 106480, 106486, 106494, 106500, 106506, 106512,
- 106518, 106524, 106530, 106535, 106541, 106549, 106557, 106563, 106569,
- 106575, 106582, 0, 0, 0, 0, 0, 0, 0, 106588, 106592, 106596, 106601,
- 106606, 106612, 106617, 106623, 106630, 106636, 106642, 106649, 106656,
- 106663, 106669, 106676, 106683, 106690, 106697, 106703, 106710, 106717,
- 106723, 106730, 106736, 106743, 106749, 106755, 106761, 106768, 106777,
- 106783, 106791, 106798, 106805, 106812, 106818, 106824, 106830, 106836,
- 106842, 106849, 106858, 106865, 106872, 106879, 0, 0, 0, 0, 0, 0, 0, 0,
- 106886, 106893, 106899, 106905, 106911, 106917, 106923, 106929, 106935,
- 106941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 105962, 105967, 105973, 105979, 105985, 105991,
+ 105997, 106003, 106009, 106015, 106020, 106027, 106033, 106039, 106045,
+ 106051, 106057, 106062, 106068, 106074, 106080, 106086, 106092, 106098,
+ 106104, 106110, 106116, 106122, 106127, 106133, 106141, 106149, 106155,
+ 106161, 106167, 106173, 106181, 106187, 106193, 106199, 106205, 106211,
+ 106217, 106222, 106228, 106236, 106244, 106250, 106256, 106262, 106269,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106275, 106280, 106286, 106292,
+ 106298, 106304, 106310, 106316, 106322, 106328, 106333, 106340, 106346,
+ 106352, 106358, 106364, 106370, 106375, 106381, 106387, 106393, 106399,
+ 106405, 106411, 106417, 106423, 106429, 106435, 106440, 106446, 106454,
+ 106462, 106468, 106474, 106480, 106486, 106494, 106500, 106506, 106512,
+ 106518, 106524, 106530, 106535, 106541, 106549, 106557, 106563, 106569,
+ 106575, 106582, 0, 0, 0, 0, 0, 0, 0, 106588, 106592, 106596, 106601,
+ 106606, 106612, 106617, 106623, 106630, 106636, 106642, 106649, 106656,
+ 106663, 106669, 106676, 106683, 106690, 106697, 106703, 106710, 106717,
+ 106723, 106730, 106736, 106743, 106749, 106755, 106761, 106768, 106777,
+ 106783, 106791, 106798, 106805, 106812, 106818, 106824, 106830, 106836,
+ 106842, 106849, 106858, 106865, 106872, 106879, 0, 0, 0, 0, 0, 0, 0, 0,
+ 106886, 106893, 106899, 106905, 106911, 106917, 106923, 106929, 106935,
+ 106941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22292,1355 +22292,316 @@ static const unsigned int phrasebook_offset2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 106947, 106951, 106955, 106959, 106963, 106967,
- 106971, 106975, 106979, 106983, 106988, 106993, 106998, 107003, 107008,
- 107013, 107018, 107023, 107028, 107034, 107040, 107046, 107053, 107060,
- 107067, 107074, 107081, 107088, 107095, 107102, 107109, 0, 107116,
- 107121, 107126, 107131, 107136, 107141, 107146, 107151, 107156, 107161,
- 107166, 107171, 107176, 107181, 107185, 107190, 107195, 107200, 107205,
- 107210, 107215, 107220, 107224, 107229, 107234, 107239, 107244, 107249,
- 107257, 107262, 107267, 107272, 107277, 107282, 107287, 107292, 107297,
- 107302, 107307, 107312, 107317, 107322, 0, 107327, 107333, 107339, 0, 0,
- 107344, 107352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107361, 107367, 107374, 107380, 107387,
- 107393, 107399, 107406, 107412, 107418, 107424, 107430, 107436, 107442,
- 107448, 107454, 107461, 107472, 107478, 107484, 107492, 107498, 107504,
- 107511, 107522, 107528, 107534, 107540, 107547, 107558, 107563, 107568,
- 107573, 107578, 107583, 107589, 107595, 107601, 107608, 107616, 0, 0, 0,
- 0, 0, 0, 0, 0, 107622, 107627, 107632, 107637, 107642, 107647, 107652,
- 107657, 107662, 107667, 107672, 107677, 107682, 107687, 107692, 107697,
- 107702, 107707, 107712, 107717, 107722, 107727, 107733, 107738, 107745,
- 107750, 107757, 107763, 107769, 107775, 107781, 107788, 107794, 107800,
- 107804, 107809, 107814, 107820, 107828, 107839, 107848, 107858, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107868, 107873, 107879, 107884, 107889,
- 107894, 107899, 107904, 107911, 107916, 107921, 107926, 107931, 107936,
- 107941, 107946, 107951, 107956, 107961, 107966, 107971, 107976, 107980,
- 107984, 107988, 107992, 107997, 108002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 108008, 108013, 108018, 108023, 108028,
- 108033, 108038, 108043, 108048, 108053, 108058, 108063, 108068, 108073,
- 108078, 108083, 108088, 108093, 108098, 108103, 108108, 108113, 108118,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 108123, 108127, 108131, 108135, 108139,
- 108143, 108146, 108150, 108153, 108157, 108160, 108164, 108168, 108173,
- 108177, 108182, 108185, 108189, 108192, 108196, 108199, 108203, 108207,
- 108211, 108215, 108219, 108223, 108227, 108231, 108235, 108239, 108243,
- 108247, 108251, 108255, 108258, 108262, 108266, 108270, 108273, 108276,
- 108280, 108284, 108288, 108291, 108294, 108297, 108300, 108304, 108308,
- 108312, 108315, 108318, 108322, 108328, 108334, 108340, 108345, 108352,
- 108356, 108361, 108365, 108370, 108375, 108381, 108386, 108392, 108396,
- 108401, 108405, 108410, 108413, 108416, 108420, 108425, 108431, 108436,
- 108442, 0, 0, 0, 0, 108447, 108450, 108453, 108456, 108459, 108462,
- 108465, 108468, 108471, 108474, 108478, 108482, 108486, 108490, 108494,
- 108498, 108502, 108506, 108510, 108515, 108519, 108523, 108526, 108529,
- 108532, 108535, 108538, 108541, 108544, 108547, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 108550, 108554, 108559, 108564, 108569, 108573,
- 108578, 108582, 108587, 108591, 108596, 108600, 108605, 108609, 108614,
- 108618, 108623, 108628, 108633, 108638, 108643, 108648, 108653, 108658,
- 108663, 108668, 108673, 108678, 108683, 108688, 108693, 108698, 108702,
- 108707, 108712, 108717, 108721, 108725, 108730, 108735, 108740, 108744,
- 108748, 108752, 108756, 108761, 108766, 108771, 108775, 108779, 108785,
- 108790, 108796, 108801, 108807, 108812, 108818, 108823, 108829, 108834,
- 108839, 108844, 108849, 108853, 108858, 108864, 108868, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 108873, 0, 0, 108878, 108885, 108892, 108899, 108906,
- 108913, 108920, 108927, 108934, 108941, 108948, 108955, 108962, 108969,
- 108976, 108983, 108990, 108997, 109004, 109011, 109018, 109025, 109032,
- 109039, 109046, 0, 0, 0, 0, 0, 0, 0, 109053, 109060, 109066, 109072,
- 109078, 109084, 109090, 109096, 109102, 109108, 0, 0, 0, 0, 0, 0, 109114,
- 109119, 109124, 109129, 109134, 109138, 109142, 109146, 109151, 109156,
- 109161, 109166, 109171, 109176, 109181, 109186, 109191, 109196, 109201,
- 109206, 109211, 109216, 109221, 109226, 109231, 109236, 109241, 109246,
- 109251, 109256, 109261, 109266, 109271, 109276, 109281, 109286, 109291,
- 109296, 109301, 109306, 109311, 109316, 109322, 109327, 109333, 109338,
- 109344, 109349, 109355, 109361, 109365, 109370, 109374, 0, 109378,
- 109383, 109387, 109391, 109395, 109399, 109403, 109407, 109411, 109415,
- 109419, 109424, 109428, 109433, 109438, 109443, 109449, 109455, 0, 0, 0,
- 0, 0, 0, 0, 0, 109460, 109464, 109468, 109472, 109476, 109480, 109484,
- 109489, 109494, 109499, 109504, 109509, 109514, 109519, 109524, 109529,
- 109534, 109539, 109544, 109549, 109553, 109558, 109563, 109568, 109572,
- 109576, 109581, 109586, 109591, 109595, 109599, 109603, 109608, 109612,
- 109616, 109621, 109626, 109631, 109636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 109641, 109646, 109651, 109656, 109660, 109665, 109669, 109674, 109678,
- 109683, 109688, 109694, 109699, 109705, 109709, 109714, 109718, 109723,
- 109727, 109732, 109737, 109742, 109747, 109752, 109757, 109762, 109767,
- 109772, 109777, 109782, 109787, 109792, 109797, 109801, 109806, 109811,
- 109816, 109820, 109824, 109829, 109834, 109839, 109843, 109847, 109851,
- 109855, 109860, 109865, 109870, 109875, 109879, 109883, 109889, 109894,
- 109900, 109905, 109911, 109917, 109924, 109930, 109937, 109942, 109948,
- 109953, 109959, 109964, 109969, 109974, 109979, 109983, 109987, 109992,
- 109997, 110001, 110006, 110011, 110016, 110024, 110029, 110036, 110043,
- 110048, 110052, 110056, 110060, 110064, 110068, 110072, 110076, 110080,
- 110084, 110088, 110093, 110097, 110102, 110108, 0, 110114, 110119,
- 110124, 110129, 110134, 110139, 110144, 110149, 110154, 110159, 110165,
- 110171, 110177, 110183, 110189, 110195, 110201, 110207, 110213, 110220,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110226, 110230, 110235, 110239, 110243,
- 110247, 110252, 110256, 110261, 110265, 110270, 110275, 110280, 110285,
- 110290, 110295, 110300, 110305, 0, 110310, 110315, 110320, 110325,
- 110330, 110335, 110340, 110344, 110349, 110354, 110359, 110364, 110368,
- 110372, 110377, 110382, 110387, 110392, 110396, 110400, 110404, 110408,
- 110413, 110417, 110421, 110426, 110432, 110437, 110443, 110448, 110453,
- 110459, 110464, 110470, 110475, 110480, 110485, 110490, 110494, 110499,
- 110505, 110510, 110516, 110521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 110526, 110530, 110534, 110538, 110542, 110546, 110551, 0,
- 110556, 0, 110561, 110566, 110571, 110576, 0, 110581, 110586, 110591,
- 110596, 110601, 110606, 110611, 110616, 110620, 110625, 110630, 110635,
- 110639, 110643, 110648, 0, 110653, 110658, 110662, 110666, 110670,
- 110674, 110679, 110683, 110687, 110692, 110697, 0, 0, 0, 0, 0, 0, 110702,
- 110706, 110711, 110715, 110720, 110724, 110729, 110733, 110738, 110742,
- 110747, 110751, 110756, 110761, 110766, 110771, 110776, 110781, 110786,
- 110791, 110796, 110801, 110806, 110811, 110816, 110821, 110826, 110831,
- 110836, 110841, 110845, 110850, 110855, 110860, 110864, 110868, 110873,
- 110878, 110883, 110888, 110892, 110896, 110900, 110904, 110909, 110914,
- 110918, 110922, 110927, 110933, 110938, 110944, 110949, 110955, 110960,
- 110966, 110971, 110977, 110982, 0, 0, 0, 0, 0, 110987, 110992, 110996,
- 111000, 111004, 111008, 111012, 111016, 111020, 111024, 0, 0, 0, 0, 0, 0,
- 111028, 111035, 111040, 111045, 0, 111050, 111054, 111059, 111063,
- 111068, 111072, 111077, 111082, 0, 0, 111087, 111092, 0, 0, 111097,
- 111102, 111107, 111111, 111116, 111121, 111126, 111131, 111136, 111141,
- 111146, 111151, 111156, 111161, 111166, 111171, 111176, 111181, 111185,
- 111190, 111195, 111200, 0, 111204, 111208, 111213, 111218, 111223,
- 111227, 111231, 0, 111235, 111239, 0, 111244, 111249, 111254, 111259,
- 111263, 0, 111267, 111271, 111276, 111281, 111287, 111292, 111298,
- 111303, 111309, 111315, 0, 0, 111322, 111328, 0, 0, 111334, 111340,
- 111346, 0, 0, 111351, 0, 0, 0, 0, 0, 0, 111355, 0, 0, 0, 0, 0, 111362,
- 111367, 111374, 111382, 111388, 111394, 111400, 0, 0, 111407, 111413,
- 111418, 111423, 111428, 111433, 111438, 0, 0, 0, 111443, 111448, 111453,
- 111458, 111464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 111469, 111473, 111478, 111482, 111487, 111491, 111496, 111501, 111507,
- 111512, 111518, 111522, 111527, 111531, 111536, 111540, 111545, 111550,
- 111555, 111560, 111565, 111570, 111575, 111580, 111585, 111590, 111595,
- 111600, 111605, 111610, 111615, 111620, 111624, 111629, 111634, 111639,
- 111643, 111648, 111652, 111657, 111662, 111667, 111671, 111676, 111680,
- 111684, 111689, 111693, 111698, 111703, 111708, 111713, 111717, 111721,
- 111727, 111732, 111738, 111743, 111749, 111755, 111762, 111768, 111775,
- 111780, 111786, 111791, 111797, 111802, 111807, 111812, 111817, 111822,
- 111827, 111833, 111837, 111841, 111845, 111850, 111854, 111860, 111865,
- 111870, 111874, 111878, 111882, 111886, 111890, 111894, 111898, 111902,
- 111906, 111911, 0, 111916, 111921, 111926, 111933, 111938, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 111943, 111947, 111951, 111956, 111960, 111965, 111969, 111974,
- 111979, 111985, 111990, 111996, 112000, 112005, 112009, 112014, 112018,
- 112023, 112028, 112033, 112038, 112043, 112048, 112053, 112058, 112063,
- 112068, 112073, 112078, 112083, 112088, 112092, 112097, 112102, 112107,
- 112111, 112115, 112120, 112125, 112130, 112134, 112138, 112142, 112146,
- 112151, 112156, 112161, 112165, 112169, 112175, 112180, 112186, 112191,
- 112197, 112203, 112210, 112216, 112223, 112228, 112235, 112241, 112246,
- 112253, 112259, 112264, 112269, 112274, 112279, 112284, 112289, 112293,
- 112298, 0, 0, 0, 0, 0, 0, 0, 0, 112302, 112307, 112311, 112315, 112319,
- 112323, 112327, 112331, 112335, 112339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112343, 112347, 112352, 112356, 112361,
- 112365, 112370, 112375, 112381, 112386, 112392, 112396, 112401, 112405,
- 112410, 112414, 112419, 112424, 112429, 112434, 112439, 112444, 112449,
- 112454, 112459, 112464, 112469, 112474, 112479, 112484, 112488, 112493,
- 112498, 112503, 112507, 112511, 112516, 112521, 112526, 112530, 112534,
- 112538, 112542, 112547, 112552, 112557, 112561, 112565, 112571, 112576,
- 112582, 112587, 112593, 112599, 0, 0, 112606, 112611, 112617, 112622,
- 112628, 112633, 112638, 112643, 112648, 112653, 112658, 112662, 112667,
- 112673, 112678, 112684, 112690, 112696, 112704, 112717, 112730, 112743,
- 112757, 112772, 112780, 112791, 112800, 112810, 112820, 112830, 112841,
- 112853, 112866, 112874, 112882, 112891, 112897, 112904, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 112912, 112916, 112921, 112925, 112930, 112934, 112939,
- 112944, 112950, 112955, 112961, 112965, 112970, 112974, 112979, 112983,
- 112988, 112993, 112998, 113003, 113008, 113013, 113018, 113023, 113028,
- 113033, 113038, 113043, 113048, 113053, 113057, 113062, 113067, 113072,
- 113076, 113080, 113085, 113090, 113095, 113099, 113103, 113107, 113111,
- 113116, 113121, 113126, 113130, 113134, 113139, 113145, 113150, 113156,
- 113161, 113167, 113173, 113180, 113186, 113193, 113198, 113204, 113209,
- 113215, 113220, 113225, 113230, 113235, 113239, 113244, 113249, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 113254, 113259, 113263, 113267, 113271, 113275,
- 113279, 113283, 113287, 113291, 0, 0, 0, 0, 0, 0, 113295, 113301, 113306,
- 113313, 113321, 113328, 113336, 113345, 113350, 113359, 113364, 113372,
- 113381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113391,
- 113395, 113400, 113404, 113409, 113413, 113418, 113422, 113427, 113431,
- 113436, 113440, 113445, 113450, 113455, 113460, 113465, 113470, 113475,
- 113480, 113485, 113490, 113495, 113500, 113505, 113510, 113514, 113519,
- 113524, 113529, 113533, 113537, 113542, 113547, 113552, 113556, 113560,
- 113564, 113568, 113573, 113578, 113582, 113586, 113591, 113596, 113601,
- 113607, 113612, 113618, 113623, 113629, 113634, 113640, 113645, 113651,
- 113656, 113661, 0, 0, 0, 0, 0, 0, 0, 113668, 113673, 113677, 113681,
- 113685, 113689, 113693, 113697, 113701, 113705, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113709,
- 113713, 113718, 113723, 113727, 113731, 113737, 113741, 113746, 113751,
- 113755, 113760, 113765, 113770, 113774, 113778, 113782, 113787, 113791,
- 113795, 113800, 113805, 113810, 113817, 113822, 113827, 113832, 0, 0,
- 113839, 113846, 113853, 113862, 113867, 113873, 113878, 113884, 113889,
- 113895, 113900, 113906, 113911, 113917, 113923, 0, 0, 0, 0, 113928,
- 113933, 113937, 113941, 113945, 113949, 113953, 113957, 113961, 113965,
- 113969, 113974, 113979, 113985, 113990, 113995, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114000, 114004, 114009,
- 114013, 114018, 114022, 114027, 114031, 114036, 114040, 114045, 114049,
- 114054, 114059, 114064, 114069, 114074, 114079, 114084, 114089, 114094,
- 114099, 114104, 114109, 114114, 114119, 114123, 114128, 114133, 114138,
- 114142, 114146, 114151, 114156, 114161, 114165, 114169, 114173, 114177,
- 114182, 114187, 114192, 114196, 114200, 114205, 114211, 114216, 114222,
- 114227, 114233, 114239, 114246, 114251, 114257, 114262, 114268, 114273,
- 114278, 114283, 114288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114293, 114301, 114308, 114316,
- 114324, 114331, 114339, 114347, 114355, 114362, 114369, 114377, 114385,
- 114393, 114401, 114409, 114417, 114425, 114433, 114441, 114449, 114457,
- 114465, 114473, 114481, 114489, 114497, 114505, 114513, 114521, 114529,
- 114537, 114545, 114553, 114560, 114568, 114576, 114583, 114591, 114599,
- 114607, 114614, 114621, 114629, 114637, 114645, 114653, 114661, 114669,
- 114677, 114685, 114693, 114701, 114709, 114717, 114725, 114733, 114741,
- 114749, 114757, 114765, 114773, 114781, 114789, 114797, 114804, 114810,
- 114816, 114822, 114828, 114834, 114840, 114846, 114852, 114858, 114865,
- 114872, 114879, 114886, 114893, 114900, 114907, 114914, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 114921, 114927, 114933, 114940, 114946, 114953, 114959,
- 114966, 0, 0, 114972, 0, 0, 114978, 114984, 114991, 114998, 115005,
- 115012, 115019, 115026, 0, 115033, 115040, 0, 115047, 115054, 115061,
- 115068, 115074, 115081, 115088, 115095, 115101, 115107, 115114, 115121,
- 115128, 115134, 115140, 115147, 115153, 115159, 115166, 115173, 115180,
- 115186, 115192, 115199, 115206, 115214, 115221, 115229, 115236, 115244,
- 0, 115251, 115259, 0, 0, 115266, 115273, 115280, 115287, 115293, 115302,
- 115309, 115315, 115322, 115329, 115336, 115344, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 115354, 115361, 115367, 115373, 115379, 115385, 115391, 115397,
- 115403, 115409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 115415, 115419, 115424, 115428, 115433, 115437, 115442, 115447,
- 0, 0, 115453, 115457, 115462, 115466, 115471, 115475, 115480, 115485,
- 115490, 115495, 115500, 115505, 115510, 115515, 115520, 115525, 115530,
- 115535, 115540, 115545, 115549, 115554, 115559, 115564, 115568, 115572,
- 115577, 115582, 115587, 115591, 115595, 115599, 115603, 115608, 115613,
- 115618, 115622, 115626, 115631, 115636, 115642, 115647, 115653, 115658,
- 115664, 115670, 0, 0, 115677, 115682, 115688, 115693, 115699, 115704,
- 115709, 115714, 115719, 115724, 115728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115735, 115740, 115746,
- 115753, 115759, 115765, 115772, 115778, 115785, 115792, 115800, 115807,
- 115812, 115818, 115824, 115830, 115836, 115842, 115848, 115854, 115860,
- 115866, 115872, 115878, 115884, 115890, 115895, 115901, 115907, 115913,
- 115918, 115923, 115929, 115935, 115941, 115946, 115952, 115958, 115964,
- 115970, 115976, 115982, 115988, 115993, 115998, 116003, 116009, 116015,
- 116021, 116026, 116031, 116037, 116043, 116049, 116055, 116064, 116073,
- 116079, 116085, 116092, 116099, 116106, 116113, 116121, 116128, 116136,
- 116142, 116148, 116155, 116162, 116171, 116181, 0, 0, 0, 0, 0, 0, 0, 0,
- 116186, 116190, 116195, 116201, 116206, 116211, 116216, 116222, 116228,
- 116234, 116240, 116246, 116252, 116256, 116261, 116266, 116271, 116276,
- 116281, 116286, 116291, 116296, 116301, 116306, 116311, 116316, 116321,
- 116326, 116330, 116335, 116340, 116345, 116349, 116353, 116358, 116363,
- 116368, 116372, 116377, 116382, 116387, 116392, 116397, 116402, 116406,
- 116410, 116414, 116419, 116424, 116429, 116433, 116437, 116442, 116447,
- 116452, 116458, 116464, 116471, 116477, 116484, 116491, 116498, 116505,
- 116512, 116519, 116526, 116532, 116538, 116545, 116552, 116559, 116564,
- 116569, 116574, 116578, 116583, 116588, 116594, 116599, 116615, 116629,
- 116640, 116646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116652, 116660, 116668, 116676, 116684,
- 116693, 116702, 116711, 116720, 116728, 116737, 116746, 116754, 116763,
- 116772, 116780, 116789, 116797, 116806, 116814, 116823, 116832, 116840,
- 116848, 116856, 116864, 116872, 116881, 116890, 116900, 116910, 116920,
- 116930, 116940, 116949, 116959, 116969, 116979, 116990, 117000, 117012,
- 117024, 117035, 117049, 117060, 117070, 117082, 117093, 117103, 117115,
- 117127, 117138, 117149, 117159, 117169, 117181, 117192, 0, 0, 0, 0, 0, 0,
- 0, 117204, 117208, 117213, 117217, 117222, 117226, 117231, 117236,
- 117242, 0, 117247, 117251, 117256, 117260, 117265, 117269, 117274,
- 117279, 117284, 117289, 117294, 117299, 117304, 117309, 117314, 117319,
- 117324, 117329, 117334, 117339, 117343, 117348, 117353, 117358, 117362,
- 117366, 117371, 117376, 117381, 117385, 117389, 117393, 117397, 117402,
- 117407, 117412, 117416, 117420, 117426, 117431, 117437, 117442, 117448,
- 117454, 117461, 0, 117467, 117472, 117478, 117483, 117489, 117494,
- 117499, 117504, 117509, 117514, 117518, 117523, 117529, 117535, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 117541, 117546, 117550, 117554, 117558, 117562,
- 117566, 117570, 117574, 117578, 117582, 117586, 117590, 117594, 117598,
- 117602, 117606, 117610, 117614, 117618, 117623, 117628, 117633, 117638,
- 117643, 117648, 117653, 117658, 117663, 0, 0, 0, 117670, 117675, 117680,
- 117684, 117689, 117694, 117699, 117704, 117709, 117714, 117719, 117723,
- 117728, 117733, 117737, 117741, 117746, 117751, 117755, 117760, 117765,
- 117770, 117775, 117780, 117785, 117790, 117794, 117798, 117802, 117807,
- 117811, 117815, 0, 0, 117819, 117825, 117832, 117839, 117846, 117853,
- 117860, 117867, 117874, 117880, 117887, 117894, 117900, 117906, 117913,
- 117920, 117926, 117933, 117940, 117947, 117954, 117961, 0, 117968,
- 117974, 117980, 117986, 117993, 117999, 118005, 118011, 118017, 118022,
- 118027, 118032, 118037, 118042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118047, 118052, 118058, 118063, 118069,
- 118074, 118080, 0, 118085, 118091, 0, 118096, 118102, 118107, 118113,
- 118119, 118125, 118131, 118137, 118143, 118149, 118155, 118161, 118167,
- 118173, 118179, 118185, 118191, 118196, 118202, 118208, 118214, 118219,
- 118224, 118230, 118236, 118242, 118247, 118252, 118257, 118262, 118268,
- 118274, 118280, 118285, 118290, 118296, 118302, 118308, 118314, 118321,
- 118327, 118334, 118340, 118347, 0, 0, 0, 118354, 0, 118360, 118367, 0,
- 118373, 118380, 118386, 118392, 118398, 118404, 118410, 118415, 118420,
- 0, 0, 0, 0, 0, 0, 0, 0, 118425, 118431, 118436, 118441, 118446, 118451,
- 118456, 118461, 118466, 118471, 0, 0, 0, 0, 0, 0, 118476, 118481, 118487,
- 118492, 118498, 118503, 0, 118509, 118515, 0, 118521, 118527, 118533,
- 118538, 118544, 118550, 118556, 118561, 118566, 118572, 118577, 118583,
- 118588, 118594, 118600, 118606, 118612, 118617, 118623, 118629, 118635,
- 118641, 118647, 118653, 118659, 118665, 118671, 118677, 118682, 118688,
- 118693, 118698, 118703, 118710, 118716, 118723, 118729, 0, 118736,
- 118743, 0, 118750, 118757, 118764, 118770, 118776, 118781, 0, 0, 0, 0, 0,
- 0, 0, 118786, 118792, 118797, 118802, 118807, 118812, 118817, 118822,
- 118827, 118832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 118837, 118841, 118846, 118851, 118855, 118860, 118864, 118868,
- 118873, 118877, 118882, 118887, 118892, 118896, 118900, 118904, 118909,
- 118913, 118917, 118921, 118926, 118931, 118936, 118941, 118945, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 118957, 118963, 118969, 118975, 118981, 118987, 118993,
- 118999, 119005, 119011, 119017, 119023, 119029, 119035, 119041, 119047,
- 119053, 119059, 119065, 119071, 119077, 119086, 119090, 119094, 119098,
- 119102, 119106, 119110, 119114, 119118, 119122, 119126, 119130, 119134,
- 119138, 119142, 119146, 119152, 119158, 119162, 119168, 119174, 119179,
- 119183, 119188, 119192, 119196, 119202, 119208, 119212, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 119216, 119224, 119227, 119232, 119238, 119246,
- 119251, 119257, 119265, 119271, 119277, 119281, 119285, 119292, 119301,
- 119308, 119317, 119323, 119332, 119339, 119346, 119353, 119363, 119369,
- 119373, 119380, 119389, 119399, 119406, 119413, 119417, 119421, 119428,
- 119438, 119442, 119449, 119456, 119463, 119469, 119476, 119483, 119490,
- 119497, 119501, 119505, 119509, 119516, 119520, 119527, 119534, 119548,
- 119557, 119561, 119565, 119569, 119576, 119580, 119584, 119588, 119596,
- 119604, 119623, 119633, 119653, 119657, 119661, 119665, 119669, 119673,
- 119677, 119681, 119688, 119692, 119695, 119699, 119703, 119709, 119716,
- 119725, 119729, 119738, 119747, 119755, 119759, 119766, 119770, 119774,
- 119778, 119782, 119793, 119802, 119811, 119820, 119829, 119841, 119850,
- 119859, 119868, 119876, 119885, 119897, 119906, 119914, 119923, 119935,
- 119944, 119953, 119965, 119974, 119983, 119995, 120004, 120008, 120012,
- 120016, 120020, 120024, 120028, 120032, 120039, 120043, 120047, 120058,
- 120062, 120066, 120073, 120079, 120085, 120089, 120096, 120100, 120104,
- 120108, 120112, 120116, 120120, 120126, 120134, 120138, 120142, 120145,
- 120152, 120164, 120168, 120180, 120187, 120194, 120201, 120208, 120214,
- 120218, 120222, 120226, 120230, 120237, 120246, 120253, 120261, 120269,
- 120275, 120279, 120283, 120287, 120291, 120297, 120306, 120318, 120325,
- 120332, 120341, 120352, 120358, 120367, 120376, 120383, 120392, 120399,
- 120405, 120415, 120422, 120429, 120436, 120443, 120447, 120453, 120457,
- 120468, 120476, 120485, 120497, 120504, 120511, 120521, 120528, 120537,
- 120544, 120553, 120560, 120567, 120577, 120584, 120591, 120600, 120607,
- 120619, 120628, 120635, 120642, 120649, 120658, 120668, 120681, 120688,
- 120697, 120707, 120714, 120723, 120736, 120743, 120750, 120757, 120767,
- 120777, 120783, 120793, 120800, 120807, 120817, 120823, 120830, 120837,
- 120844, 120854, 120861, 120868, 120875, 120881, 120888, 120898, 120905,
- 120909, 120917, 120921, 120933, 120937, 120951, 120955, 120959, 120963,
- 120967, 120973, 120980, 120988, 120992, 120996, 121000, 121004, 121011,
- 121015, 121021, 121027, 121035, 121039, 121046, 121054, 121058, 121062,
- 121068, 121072, 121081, 121090, 121097, 121107, 121113, 121117, 121121,
- 121129, 121136, 121143, 121149, 121153, 121161, 121165, 121172, 121184,
- 121191, 121201, 121207, 121211, 121220, 121227, 121236, 121240, 121244,
- 121251, 121255, 121259, 121263, 121267, 121270, 121276, 121282, 121286,
- 121290, 121297, 121304, 121311, 121318, 121325, 121332, 121339, 121346,
- 121352, 121356, 121360, 121367, 121374, 121381, 121388, 121395, 121399,
- 121402, 121407, 121411, 121415, 121424, 121433, 121437, 121441, 121447,
- 121453, 121470, 121476, 121480, 121489, 121493, 121497, 121504, 121512,
- 121520, 121526, 121530, 121534, 121538, 121542, 121545, 121551, 121558,
- 121568, 121575, 121582, 121589, 121595, 121602, 121609, 121616, 121623,
- 121630, 121639, 121646, 121658, 121665, 121672, 121682, 121693, 121700,
- 121707, 121714, 121721, 121728, 121735, 121742, 121749, 121756, 121763,
- 121773, 121783, 121793, 121800, 121810, 121817, 121824, 121831, 121838,
- 121844, 121851, 121858, 121865, 121872, 121879, 121886, 121893, 121900,
- 121906, 121913, 121920, 121929, 121936, 121943, 121947, 121955, 121959,
- 121963, 121967, 121971, 121975, 121982, 121986, 121995, 121999, 122006,
- 122014, 122018, 122022, 122026, 122039, 122055, 122059, 122063, 122070,
- 122076, 122083, 122087, 122091, 122095, 122099, 122103, 122110, 122114,
- 122132, 122136, 122140, 122147, 122151, 122155, 122161, 122165, 122169,
- 122177, 122181, 122185, 122188, 122192, 122198, 122209, 122218, 122227,
- 122234, 122241, 122252, 122259, 122266, 122273, 122280, 122287, 122294,
- 122301, 122311, 122317, 122324, 122334, 122343, 122350, 122359, 122369,
- 122376, 122383, 122390, 122397, 122409, 122416, 122423, 122430, 122437,
- 122444, 122454, 122461, 122468, 122478, 122491, 122503, 122510, 122520,
- 122527, 122534, 122541, 122555, 122561, 122569, 122579, 122589, 122596,
- 122603, 122609, 122613, 122620, 122630, 122636, 122649, 122653, 122657,
- 122664, 122668, 122675, 122685, 122689, 122693, 122697, 122701, 122705,
- 122712, 122716, 122723, 122730, 122737, 122746, 122755, 122765, 122772,
- 122779, 122786, 122796, 122803, 122813, 122820, 122830, 122837, 122844,
- 122854, 122864, 122871, 122877, 122885, 122893, 122899, 122905, 122909,
- 122913, 122920, 122928, 122934, 122938, 122942, 122946, 122953, 122965,
- 122968, 122975, 122981, 122985, 122989, 122993, 122997, 123001, 123005,
- 123009, 123013, 123017, 123021, 123028, 123032, 123038, 123042, 123046,
- 123050, 123056, 123063, 123070, 123077, 123088, 123096, 123100, 123106,
- 123115, 123122, 123128, 123131, 123135, 123139, 123145, 123154, 123162,
- 123166, 123172, 123176, 123180, 123184, 123190, 123197, 123203, 123207,
- 123213, 123217, 123221, 123230, 123242, 123246, 123253, 123260, 123270,
- 123277, 123289, 123296, 123303, 123310, 123321, 123331, 123344, 123354,
- 123361, 123365, 123369, 123373, 123377, 123386, 123395, 123404, 123421,
- 123430, 123436, 123443, 123451, 123464, 123468, 123477, 123486, 123495,
- 123504, 123515, 123524, 123532, 123541, 123550, 123559, 123568, 123578,
- 123581, 123585, 123589, 123593, 123597, 123601, 123607, 123614, 123621,
- 123628, 123634, 123640, 123647, 123653, 123660, 123668, 123672, 123679,
- 123686, 123693, 123701, 123704, 123708, 123712, 123716, 123719, 123725,
- 123729, 123735, 123742, 123749, 123755, 123762, 123769, 123776, 123783,
- 123790, 123797, 123804, 123811, 123818, 123825, 123832, 123839, 123846,
- 123853, 123859, 123863, 123872, 123876, 123880, 123884, 123888, 123894,
- 123901, 123908, 123915, 123922, 123929, 123935, 123943, 123947, 123951,
- 123955, 123959, 123965, 123982, 123999, 124003, 124007, 124011, 124015,
- 124019, 124023, 124029, 124036, 124040, 124046, 124053, 124060, 124067,
- 124074, 124081, 124090, 124097, 124104, 124111, 124118, 124122, 124126,
- 124132, 124144, 124148, 124152, 124161, 124165, 124169, 124173, 124179,
- 124183, 124187, 124196, 124200, 124204, 124208, 124215, 124219, 124223,
- 124227, 124231, 124235, 124239, 124243, 124246, 124252, 124259, 124266,
- 124272, 124276, 124293, 124299, 124303, 124309, 124315, 124321, 124327,
- 124333, 124339, 124343, 124347, 124351, 124357, 124361, 124367, 124371,
- 124375, 124382, 124389, 124406, 124410, 124414, 124418, 124422, 124426,
- 124438, 124441, 124446, 124451, 124466, 124476, 124488, 124492, 124496,
- 124500, 124506, 124513, 124520, 124530, 124542, 124548, 124554, 124563,
- 124567, 124571, 124578, 124588, 124595, 124601, 124605, 124609, 124616,
- 124622, 124626, 124632, 124636, 124644, 124650, 124654, 124662, 124670,
- 124677, 124683, 124690, 124697, 124707, 124717, 124721, 124725, 124729,
- 124733, 124739, 124746, 124752, 124759, 124766, 124773, 124782, 124789,
- 124796, 124802, 124809, 124816, 124823, 124830, 124837, 124844, 124850,
- 124857, 124864, 124871, 124880, 124887, 124894, 124898, 124904, 124908,
- 124914, 124921, 124928, 124935, 124939, 124943, 124947, 124951, 124955,
- 124962, 124966, 124970, 124976, 124984, 124988, 124992, 124996, 125000,
- 125007, 125011, 125015, 125023, 125027, 125031, 125035, 125039, 125045,
- 125049, 125053, 125059, 125066, 125072, 125079, 125091, 125095, 125102,
- 125109, 125116, 125123, 125135, 125142, 125146, 125150, 125154, 125161,
- 125168, 125175, 125182, 125192, 125199, 125205, 125212, 125219, 125226,
- 125233, 125242, 125252, 125259, 125263, 125270, 125274, 125278, 125282,
- 125289, 125296, 125306, 125312, 125316, 125325, 125329, 125336, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 125340, 125346, 125352, 125359, 125366, 125373, 125380, 125387,
- 125394, 125400, 125407, 125414, 125421, 125428, 125435, 125442, 125448,
- 125454, 125460, 125466, 125472, 125478, 125484, 125490, 125496, 125503,
- 125510, 125517, 125524, 125531, 125538, 125544, 125550, 125556, 125563,
- 125570, 125576, 125582, 125591, 125598, 125605, 125612, 125619, 125626,
- 125633, 125639, 125645, 125651, 125660, 125667, 125674, 125685, 125696,
- 125702, 125708, 125714, 125723, 125730, 125737, 125747, 125757, 125768,
- 125779, 125791, 125804, 125815, 125826, 125838, 125851, 125862, 125873,
- 125884, 125895, 125906, 125918, 125926, 125934, 125943, 125952, 125961,
- 125967, 125973, 125979, 125986, 125996, 126003, 126013, 126018, 126023,
- 126029, 126035, 126043, 126051, 126060, 126071, 126082, 126090, 126098,
- 126107, 126116, 126124, 126131, 126139, 126147, 126154, 126161, 126170,
- 126179, 126188, 126197, 126206, 0, 126215, 126226, 126233, 126241,
- 126249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126257, 126266, 126273, 126280,
- 126289, 126296, 126303, 126310, 126320, 126327, 126334, 126341, 126349,
- 126356, 126363, 126370, 126381, 126388, 126395, 126402, 126409, 126416,
- 126425, 126432, 126438, 126445, 126454, 126461, 126468, 126475, 126485,
- 126492, 126499, 126509, 126519, 126526, 126533, 126540, 126547, 126554,
- 126561, 126570, 126577, 126584, 126590, 126598, 126607, 126616, 126627,
- 126635, 126644, 126653, 126662, 126671, 126678, 126685, 126694, 126706,
- 126716, 126723, 126730, 126740, 126750, 126759, 126769, 126776, 126786,
- 126793, 126800, 126807, 126817, 126827, 126834, 126841, 126851, 126857,
- 126868, 126877, 126887, 126895, 126908, 126915, 126921, 126929, 126936,
- 126946, 126950, 126954, 126958, 126962, 126966, 126970, 126974, 126983,
- 126987, 126994, 126998, 127002, 127006, 127010, 127014, 127018, 127022,
- 127026, 127030, 127034, 127038, 127042, 127046, 127050, 127054, 127058,
- 127062, 127066, 127070, 127077, 127084, 127094, 127107, 127117, 127121,
- 127125, 127129, 127133, 127137, 127141, 127145, 127149, 127153, 127157,
- 127161, 127168, 127175, 127186, 127193, 127199, 127206, 127213, 127220,
- 127227, 127234, 127238, 127242, 127249, 127256, 127263, 127272, 127279,
- 127292, 127302, 127309, 127316, 127320, 127324, 127333, 127340, 127347,
- 127354, 127367, 127374, 127381, 127391, 127401, 127410, 127417, 127424,
- 127431, 127438, 127445, 127452, 127462, 127468, 127476, 127483, 127491,
- 127498, 127509, 127516, 127522, 127529, 127536, 127543, 127550, 127560,
- 127570, 127577, 127584, 127593, 127601, 127607, 127614, 127621, 127628,
- 127635, 127639, 127649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 127659, 127663, 127667, 127671, 127675, 127679, 127683,
- 127687, 127691, 127695, 127699, 127703, 127707, 127711, 127715, 127719,
- 127723, 127727, 127731, 127735, 127739, 127743, 127747, 127751, 127755,
- 127759, 127763, 127767, 127771, 127775, 127779, 127783, 127787, 127791,
- 127795, 127799, 127803, 127807, 127811, 127815, 127819, 127823, 127827,
- 127831, 127835, 127839, 127843, 127847, 127851, 127855, 127859, 127863,
- 127867, 127871, 127875, 127879, 127883, 127887, 127891, 127895, 127899,
- 127903, 127907, 127911, 127915, 127919, 127923, 127927, 127931, 127935,
- 127939, 127943, 127947, 127951, 127955, 127959, 127963, 127967, 127971,
- 127975, 127979, 127983, 127987, 127991, 127995, 127999, 128003, 128007,
- 128011, 128015, 128019, 128023, 128027, 128031, 128035, 128039, 128043,
- 128047, 128051, 128055, 128059, 128063, 128067, 128071, 128075, 128079,
- 128083, 128087, 128091, 128095, 128099, 128103, 128107, 128111, 128115,
- 128119, 128123, 128127, 128131, 128135, 128139, 128143, 128147, 128151,
- 128155, 128159, 128163, 128167, 128171, 128175, 128179, 128183, 128187,
- 128191, 128195, 128199, 128203, 128207, 128211, 128215, 128219, 128223,
- 128227, 128231, 128235, 128239, 128243, 128247, 128251, 128255, 128259,
- 128263, 128267, 128271, 128275, 128279, 128283, 128287, 128291, 128295,
- 128299, 128303, 128307, 128311, 128315, 128319, 128323, 128327, 128331,
- 128335, 128339, 128343, 128347, 128351, 128355, 128359, 128363, 128367,
- 128371, 128375, 128379, 128383, 128387, 128391, 128395, 128399, 128403,
- 128407, 128411, 128415, 128419, 128423, 128427, 128431, 128435, 128439,
- 128443, 128447, 128451, 128455, 128459, 128463, 128467, 128471, 128475,
- 128479, 128483, 128487, 128491, 128495, 128499, 128503, 128507, 128511,
- 128515, 128519, 128523, 128527, 128531, 128535, 128539, 128543, 128547,
- 128551, 128555, 128559, 128563, 128567, 128571, 128575, 128579, 128583,
- 128587, 128591, 128595, 128599, 128603, 128607, 128611, 128615, 128619,
- 128623, 128627, 128631, 128635, 128639, 128643, 128647, 128651, 128655,
- 128659, 128663, 128667, 128671, 128675, 128679, 128683, 128687, 128691,
- 128695, 128699, 128703, 128707, 128711, 128715, 128719, 128723, 128727,
- 128731, 128735, 128739, 128743, 128747, 128751, 128755, 128759, 128763,
- 128767, 128771, 128775, 128779, 128783, 128787, 128791, 128795, 128799,
- 128803, 128807, 128811, 128815, 128819, 128823, 128827, 128831, 128835,
- 128839, 128843, 128847, 128851, 128855, 128859, 128863, 128867, 128871,
- 128875, 128879, 128883, 128887, 128891, 128895, 128899, 128903, 128907,
- 128911, 128915, 128919, 128923, 128927, 128931, 128935, 128939, 128943,
- 128947, 128951, 128955, 128959, 128963, 128967, 128971, 128975, 128979,
- 128983, 128987, 128991, 128995, 128999, 129003, 129007, 129011, 129015,
- 129019, 129023, 129027, 129031, 129035, 129039, 129043, 129047, 129051,
- 129055, 129059, 129063, 129067, 129071, 129075, 129079, 129083, 129087,
- 129091, 129095, 129099, 129103, 129107, 129111, 129115, 129119, 129123,
- 129127, 129131, 129135, 129139, 129143, 129147, 129151, 129155, 129159,
- 129163, 129167, 129171, 129175, 129179, 129183, 129187, 129191, 129195,
- 129199, 129203, 129207, 129211, 129215, 129219, 129223, 129227, 129231,
- 129235, 129239, 129243, 129247, 129251, 129255, 129259, 129263, 129267,
- 129271, 129275, 129279, 129283, 129287, 129291, 129295, 129299, 129303,
- 129307, 129311, 129315, 129319, 129323, 129327, 129331, 129335, 129339,
- 129343, 129347, 129351, 129355, 129359, 129363, 129367, 129371, 129375,
- 129379, 129383, 129387, 129391, 129395, 129399, 129403, 129407, 129411,
- 129415, 129419, 129423, 129427, 129431, 129435, 129439, 129443, 129447,
- 129451, 129455, 129459, 129463, 129467, 129471, 129475, 129479, 129483,
- 129487, 129491, 129495, 129499, 129503, 129507, 129511, 129515, 129519,
- 129523, 129527, 129531, 129535, 129539, 129543, 129547, 129551, 129555,
- 129559, 129563, 129567, 129571, 129575, 129579, 129583, 129587, 129591,
- 129595, 129599, 129603, 129607, 129611, 129615, 129619, 129623, 129627,
- 129631, 129635, 129639, 129643, 129647, 129651, 129655, 129659, 129663,
- 129667, 129671, 129675, 129679, 129683, 129687, 129691, 129695, 129699,
- 129703, 129707, 129711, 129715, 129719, 129723, 129727, 129731, 129735,
- 129739, 129743, 129747, 129751, 129755, 129759, 129763, 129767, 129771,
- 129775, 129779, 129783, 129787, 129791, 129795, 129799, 129803, 129807,
- 129811, 129815, 129819, 129823, 129827, 129831, 129835, 129839, 129843,
- 129847, 129851, 129855, 129859, 129863, 129867, 129871, 129875, 129879,
- 129883, 129887, 129891, 129895, 129899, 129903, 129907, 129911, 129915,
- 129919, 129923, 129927, 129931, 129935, 129939, 129943, 129947, 129951,
- 129955, 129959, 129963, 129967, 129971, 129975, 129979, 129983, 129987,
- 129991, 129995, 129999, 130003, 130007, 130011, 130015, 130019, 130023,
- 130027, 130031, 130035, 130039, 130043, 130047, 130051, 130055, 130059,
- 130063, 130067, 130071, 130075, 130079, 130083, 130087, 130091, 130095,
- 130099, 130103, 130107, 130111, 130115, 130119, 130123, 130127, 130131,
- 130135, 130139, 130143, 130147, 130151, 130155, 130159, 130163, 130167,
- 130171, 130175, 130179, 130183, 130187, 130191, 130195, 130199, 130203,
- 130207, 130211, 130215, 130219, 130223, 130227, 130231, 130235, 130239,
- 130243, 130247, 130251, 130255, 130259, 130263, 130267, 130271, 130275,
- 130279, 130283, 130287, 130291, 130295, 130299, 130303, 130307, 130311,
- 130315, 130319, 130323, 130327, 130331, 130335, 130339, 130343, 130347,
- 130351, 130355, 130359, 130363, 130367, 130371, 130375, 130379, 130383,
- 130387, 130391, 130395, 130399, 130403, 130407, 130411, 130415, 130419,
- 130423, 130427, 130431, 130435, 130439, 130443, 130447, 130451, 130455,
- 130459, 130463, 130467, 130471, 130475, 130479, 130483, 130487, 130491,
- 130495, 130499, 130503, 130507, 130511, 130515, 130519, 130523, 130527,
- 130531, 130535, 130539, 130543, 130547, 130551, 130555, 130559, 130563,
- 130567, 130571, 130575, 130579, 130583, 130587, 130591, 130595, 130599,
- 130603, 130607, 130611, 130615, 130619, 130623, 130627, 130631, 130635,
- 130639, 130643, 130647, 130651, 130655, 130659, 130663, 130667, 130671,
- 130675, 130679, 130683, 130687, 130691, 130695, 130699, 130703, 130707,
- 130711, 130715, 130719, 130723, 130727, 130731, 130735, 130739, 130743,
- 130747, 130751, 130755, 130759, 130763, 130767, 130771, 130775, 130779,
- 130783, 130787, 130791, 130795, 130799, 130803, 130807, 130811, 130815,
- 130819, 130823, 130827, 130831, 130835, 130839, 130843, 130847, 130851,
- 130855, 130859, 130863, 130867, 130871, 130875, 130879, 130883, 130887,
- 130891, 130895, 130899, 130903, 130907, 130911, 130915, 130919, 130923,
- 130927, 130931, 130935, 130939, 130943, 130947, 130951, 130955, 130959,
- 130963, 130967, 130971, 130975, 130979, 130983, 130987, 130991, 130995,
- 130999, 131003, 131007, 131011, 131015, 131019, 131023, 131027, 131031,
- 131035, 131039, 131043, 131047, 131051, 131055, 131059, 131063, 131067,
- 131071, 131075, 131079, 131083, 131087, 131091, 131095, 131099, 131103,
- 131107, 131111, 131115, 131119, 131123, 131127, 131131, 131135, 131139,
- 131143, 131147, 131151, 131155, 131159, 131163, 131167, 131171, 131175,
- 131179, 131183, 131187, 131191, 131195, 131199, 131203, 131207, 131211,
- 131215, 131219, 131223, 131227, 131231, 131235, 131239, 131243, 131247,
- 131251, 131255, 131259, 131263, 131267, 131271, 131275, 131279, 131283,
- 131287, 131291, 131295, 131299, 131303, 131307, 131311, 131315, 131319,
- 131323, 131327, 131331, 131335, 131339, 131343, 131347, 131351, 131355,
- 131359, 131363, 131367, 131371, 131375, 131379, 131383, 131387, 131391,
- 131395, 131399, 131403, 131407, 131411, 131415, 131419, 131423, 131427,
- 131431, 131435, 131439, 131443, 131447, 131451, 131455, 131459, 131463,
- 131467, 131471, 131475, 131479, 131483, 131487, 131491, 131495, 131499,
- 131503, 131507, 131511, 131515, 131519, 131523, 131527, 131531, 131535,
- 131539, 131543, 131547, 131551, 131555, 131559, 131563, 131567, 131571,
- 131575, 131579, 131583, 131587, 131591, 131595, 131599, 131603, 131607,
- 131611, 131615, 131619, 131623, 131627, 131631, 131635, 131639, 131643,
- 131647, 131651, 131655, 131659, 131663, 131667, 131671, 131675, 131679,
- 131683, 131687, 131691, 131695, 131699, 131703, 131707, 131711, 131715,
- 131719, 131723, 131727, 131731, 131735, 131739, 131743, 131747, 131751,
- 131755, 131759, 131763, 131767, 131771, 131775, 131779, 131783, 131787,
- 131791, 131795, 131799, 131803, 131807, 131811, 131815, 131819, 131823,
- 131827, 131831, 131835, 131839, 131843, 131847, 131851, 131855, 131859,
- 131863, 131867, 131871, 131875, 131879, 131883, 131887, 131891, 131895,
- 131899, 131903, 131907, 131911, 131915, 131919, 131923, 131927, 131931,
- 131935, 131939, 0, 131943, 131948, 131954, 131964, 131974, 131984,
- 131994, 132000, 132006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132012, 132016, 132020,
- 132024, 132028, 132032, 132036, 132040, 132044, 132048, 132052, 132056,
- 132060, 132064, 132068, 132072, 132076, 132080, 132084, 132088, 132092,
- 132096, 132100, 132104, 132108, 132112, 132116, 132120, 132124, 132128,
- 132132, 132136, 132140, 132144, 132148, 132152, 132156, 132160, 132164,
- 132168, 132172, 132176, 132180, 132184, 132188, 132192, 132196, 132200,
- 132204, 132208, 132212, 132216, 132220, 132224, 132228, 132232, 132236,
- 132240, 132244, 132248, 132252, 132256, 132260, 132264, 132268, 132272,
- 132276, 132280, 132284, 132288, 132292, 132296, 132300, 132304, 132308,
- 132312, 132316, 132320, 132324, 132328, 132332, 132336, 132340, 132344,
- 132348, 132352, 132356, 132360, 132364, 132368, 132372, 132376, 132380,
- 132384, 132388, 132392, 132396, 132400, 132404, 132408, 132412, 132416,
- 132420, 132424, 132428, 132432, 132436, 132440, 132444, 132448, 132452,
- 132456, 132460, 132464, 132468, 132472, 132476, 132480, 132484, 132488,
- 132492, 132496, 132500, 132504, 132508, 132512, 132516, 132520, 132524,
- 132528, 132532, 132536, 132540, 132544, 132548, 132552, 132556, 132560,
- 132564, 132568, 132572, 132576, 132580, 132584, 132588, 132592, 132596,
- 132600, 132604, 132608, 132612, 132616, 132620, 132624, 132628, 132632,
- 132636, 132640, 132644, 132648, 132652, 132656, 132660, 132664, 132668,
- 132672, 132676, 132680, 132684, 132688, 132692, 132696, 132700, 132704,
- 132708, 132712, 132716, 132720, 132724, 132728, 132732, 132736, 132740,
- 132744, 132748, 132752, 132756, 132760, 132764, 132768, 132772, 132776,
- 132780, 132784, 132788, 132792, 132796, 132800, 132804, 132808, 132812,
- 132816, 132820, 132824, 132828, 132832, 132836, 132840, 132844, 132848,
- 132852, 132856, 132860, 132864, 132868, 132872, 132876, 132880, 132884,
- 132888, 132892, 132896, 132900, 132904, 132908, 132912, 132916, 132920,
- 132924, 132928, 132932, 132936, 132940, 132944, 132948, 132952, 132956,
- 132960, 132964, 132968, 132972, 132976, 132980, 132984, 132988, 132992,
- 132996, 133000, 133004, 133008, 133012, 133016, 133020, 133024, 133028,
- 133032, 133036, 133040, 133044, 133048, 133052, 133056, 133060, 133064,
- 133068, 133072, 133076, 133080, 133084, 133088, 133092, 133096, 133100,
- 133104, 133108, 133112, 133116, 133120, 133124, 133128, 133132, 133136,
- 133140, 133144, 133148, 133152, 133156, 133160, 133164, 133168, 133172,
- 133176, 133180, 133184, 133188, 133192, 133196, 133200, 133204, 133208,
- 133212, 133216, 133220, 133224, 133228, 133232, 133236, 133240, 133244,
- 133248, 133252, 133256, 133260, 133264, 133268, 133272, 133276, 133280,
- 133284, 133288, 133292, 133296, 133300, 133304, 133308, 133312, 133316,
- 133320, 133324, 133328, 133332, 133336, 133340, 133344, 133348, 133352,
- 133356, 133360, 133364, 133368, 133372, 133376, 133380, 133384, 133388,
- 133392, 133396, 133400, 133404, 133408, 133412, 133416, 133420, 133424,
- 133428, 133432, 133436, 133440, 133444, 133448, 133452, 133456, 133460,
- 133464, 133468, 133472, 133476, 133480, 133484, 133488, 133492, 133496,
- 133500, 133504, 133508, 133512, 133516, 133520, 133524, 133528, 133532,
- 133536, 133540, 133544, 133548, 133552, 133556, 133560, 133564, 133568,
- 133572, 133576, 133580, 133584, 133588, 133592, 133596, 133600, 133604,
- 133608, 133612, 133616, 133620, 133624, 133628, 133632, 133636, 133640,
- 133644, 133648, 133652, 133656, 133660, 133664, 133668, 133672, 133676,
- 133680, 133684, 133688, 133692, 133696, 133700, 133704, 133708, 133712,
- 133716, 133720, 133724, 133728, 133732, 133736, 133740, 133744, 133754,
- 133758, 133762, 133766, 133770, 133774, 133778, 133782, 133786, 133790,
- 133794, 133798, 133803, 133807, 133811, 133815, 133819, 133823, 133827,
- 133831, 133835, 133839, 133843, 133847, 133851, 133855, 133859, 133863,
- 133867, 133876, 133885, 133889, 133893, 133897, 133901, 133905, 133909,
- 133913, 133917, 133921, 133925, 133929, 133933, 133937, 133941, 133945,
- 133949, 133953, 133957, 133961, 133965, 133969, 133973, 133977, 133981,
- 133985, 133989, 133993, 133997, 134001, 134005, 134009, 134013, 134017,
- 134021, 134025, 134029, 134033, 134037, 134041, 134045, 134049, 134053,
- 134057, 134061, 134065, 134069, 134073, 134077, 134081, 134085, 134089,
- 134093, 134097, 134101, 134105, 134109, 134113, 134117, 134121, 134125,
- 134129, 134133, 134137, 134141, 134145, 134149, 134153, 134157, 134161,
- 134165, 134169, 134173, 134177, 134181, 134185, 134189, 134193, 134197,
- 134201, 134205, 134209, 134213, 134217, 134221, 134225, 134229, 134233,
- 134237, 134241, 134245, 134249, 134253, 134257, 134261, 134265, 134269,
- 134273, 134277, 134281, 134285, 134289, 134293, 134297, 134301, 134305,
- 134309, 134313, 134317, 134321, 134325, 134329, 134333, 134337, 134341,
- 134345, 134349, 134353, 134357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 106947, 106951, 106955, 106959, 106963, 106967,
+ 106971, 106975, 106979, 106983, 106988, 106993, 106998, 107003, 107008,
+ 107013, 107018, 107023, 107028, 107034, 107040, 107046, 107053, 107060,
+ 107067, 107074, 107081, 107088, 107095, 107102, 107109, 0, 107116,
+ 107121, 107126, 107131, 107136, 107141, 107146, 107151, 107156, 107161,
+ 107166, 107171, 107176, 107181, 107185, 107190, 107195, 107200, 107205,
+ 107210, 107215, 107220, 107224, 107229, 107234, 107239, 107244, 107249,
+ 107257, 107262, 107267, 107272, 107277, 107282, 107287, 107292, 107297,
+ 107302, 107307, 107312, 107317, 107322, 0, 107327, 107333, 107339, 0, 0,
+ 107344, 107352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107361, 107367, 107374, 107380, 107387,
+ 107393, 107399, 107406, 107412, 107418, 107424, 107430, 107436, 107442,
+ 107448, 107454, 107461, 107472, 107478, 107484, 107492, 107498, 107504,
+ 107511, 107522, 107528, 107534, 107540, 107547, 107558, 107563, 107568,
+ 107573, 107578, 107583, 107589, 107595, 107601, 107608, 107616, 0, 0, 0,
+ 0, 0, 0, 0, 0, 107622, 107627, 107632, 107637, 107642, 107647, 107652,
+ 107657, 107662, 107667, 107672, 107677, 107682, 107687, 107692, 107697,
+ 107702, 107707, 107712, 107717, 107722, 107727, 107733, 107738, 107745,
+ 107750, 107757, 107763, 107769, 107775, 107781, 107788, 107794, 107800,
+ 107804, 107809, 107814, 107820, 107828, 107839, 107848, 107858, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107868, 107873, 107879, 107884, 107889,
+ 107894, 107899, 107904, 107911, 107916, 107921, 107926, 107931, 107936,
+ 107941, 107946, 107951, 107956, 107961, 107966, 107971, 107976, 107980,
+ 107984, 107988, 107992, 107997, 108002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 108008, 108013, 108018, 108023, 108028,
+ 108033, 108038, 108043, 108048, 108053, 108058, 108063, 108068, 108073,
+ 108078, 108083, 108088, 108093, 108098, 108103, 108108, 108113, 108118,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 108123, 108127, 108131, 108135, 108139,
+ 108143, 108146, 108150, 108153, 108157, 108160, 108164, 108168, 108173,
+ 108177, 108182, 108185, 108189, 108192, 108196, 108199, 108203, 108207,
+ 108211, 108215, 108219, 108223, 108227, 108231, 108235, 108239, 108243,
+ 108247, 108251, 108255, 108258, 108262, 108266, 108270, 108273, 108276,
+ 108280, 108284, 108288, 108291, 108294, 108297, 108300, 108304, 108308,
+ 108312, 108315, 108318, 108322, 108328, 108334, 108340, 108345, 108352,
+ 108356, 108361, 108365, 108370, 108375, 108381, 108386, 108392, 108396,
+ 108401, 108405, 108410, 108413, 108416, 108420, 108425, 108431, 108436,
+ 108442, 0, 0, 0, 0, 108447, 108450, 108453, 108456, 108459, 108462,
+ 108465, 108468, 108471, 108474, 108478, 108482, 108486, 108490, 108494,
+ 108498, 108502, 108506, 108510, 108515, 108519, 108523, 108526, 108529,
+ 108532, 108535, 108538, 108541, 108544, 108547, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 108550, 108554, 108559, 108564, 108569, 108573,
+ 108578, 108582, 108587, 108591, 108596, 108600, 108605, 108609, 108614,
+ 108618, 108623, 108628, 108633, 108638, 108643, 108648, 108653, 108658,
+ 108663, 108668, 108673, 108678, 108683, 108688, 108693, 108698, 108702,
+ 108707, 108712, 108717, 108721, 108725, 108730, 108735, 108740, 108744,
+ 108748, 108752, 108756, 108761, 108766, 108771, 108775, 108779, 108785,
+ 108790, 108796, 108801, 108807, 108812, 108818, 108823, 108829, 108834,
+ 108839, 108844, 108849, 108853, 108858, 108864, 108868, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 108873, 0, 0, 108878, 108885, 108892, 108899, 108906,
+ 108913, 108920, 108927, 108934, 108941, 108948, 108955, 108962, 108969,
+ 108976, 108983, 108990, 108997, 109004, 109011, 109018, 109025, 109032,
+ 109039, 109046, 0, 0, 0, 0, 0, 0, 0, 109053, 109060, 109066, 109072,
+ 109078, 109084, 109090, 109096, 109102, 109108, 0, 0, 0, 0, 0, 0, 109114,
+ 109119, 109124, 109129, 109134, 109138, 109142, 109146, 109151, 109156,
+ 109161, 109166, 109171, 109176, 109181, 109186, 109191, 109196, 109201,
+ 109206, 109211, 109216, 109221, 109226, 109231, 109236, 109241, 109246,
+ 109251, 109256, 109261, 109266, 109271, 109276, 109281, 109286, 109291,
+ 109296, 109301, 109306, 109311, 109316, 109322, 109327, 109333, 109338,
+ 109344, 109349, 109355, 109361, 109365, 109370, 109374, 0, 109378,
+ 109383, 109387, 109391, 109395, 109399, 109403, 109407, 109411, 109415,
+ 109419, 109424, 109428, 109433, 109438, 109443, 109449, 109455, 0, 0, 0,
+ 0, 0, 0, 0, 0, 109460, 109464, 109468, 109472, 109476, 109480, 109484,
+ 109489, 109494, 109499, 109504, 109509, 109514, 109519, 109524, 109529,
+ 109534, 109539, 109544, 109549, 109553, 109558, 109563, 109568, 109572,
+ 109576, 109581, 109586, 109591, 109595, 109599, 109603, 109608, 109612,
+ 109616, 109621, 109626, 109631, 109636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 109641, 109646, 109651, 109656, 109660, 109665, 109669, 109674, 109678,
+ 109683, 109688, 109694, 109699, 109705, 109709, 109714, 109718, 109723,
+ 109727, 109732, 109737, 109742, 109747, 109752, 109757, 109762, 109767,
+ 109772, 109777, 109782, 109787, 109792, 109797, 109801, 109806, 109811,
+ 109816, 109820, 109824, 109829, 109834, 109839, 109843, 109847, 109851,
+ 109855, 109860, 109865, 109870, 109875, 109879, 109883, 109889, 109894,
+ 109900, 109905, 109911, 109917, 109924, 109930, 109937, 109942, 109948,
+ 109953, 109959, 109964, 109969, 109974, 109979, 109983, 109987, 109992,
+ 109997, 110001, 110006, 110011, 110016, 110024, 110029, 110036, 110043,
+ 110048, 110052, 110056, 110060, 110064, 110068, 110072, 110076, 110080,
+ 110084, 110088, 110093, 110097, 110102, 110108, 0, 110114, 110119,
+ 110124, 110129, 110134, 110139, 110144, 110149, 110154, 110159, 110165,
+ 110171, 110177, 110183, 110189, 110195, 110201, 110207, 110213, 110220,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110226, 110230, 110235, 110239, 110243,
+ 110247, 110252, 110256, 110261, 110265, 110270, 110275, 110280, 110285,
+ 110290, 110295, 110300, 110305, 0, 110310, 110315, 110320, 110325,
+ 110330, 110335, 110340, 110344, 110349, 110354, 110359, 110364, 110368,
+ 110372, 110377, 110382, 110387, 110392, 110396, 110400, 110404, 110408,
+ 110413, 110417, 110421, 110426, 110432, 110437, 110443, 110448, 110453,
+ 110459, 110464, 110470, 110475, 110480, 110485, 110490, 110494, 110499,
+ 110505, 110510, 110516, 110521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 134361, 134369, 134377, 134387, 134397, 134405, 134411, 134419,
- 134427, 134437, 134449, 134461, 134467, 134475, 134481, 134487, 134493,
- 134499, 134505, 134511, 134517, 134523, 134529, 134535, 134541, 134549,
- 134557, 134563, 134569, 134575, 134581, 134589, 134597, 134606, 134612,
- 134620, 134626, 134632, 134638, 134644, 134650, 134658, 134666, 134672,
- 134678, 134684, 134690, 134696, 134702, 134708, 134714, 134720, 134726,
- 134732, 134738, 134744, 134750, 134756, 134762, 134768, 134774, 134780,
- 134788, 134794, 134800, 134810, 134818, 134824, 134830, 134836, 134842,
- 134848, 134854, 134860, 134866, 134872, 134878, 134884, 134890, 134896,
- 134902, 134908, 134914, 134920, 134926, 134932, 134938, 134944, 134950,
- 134958, 134964, 134972, 134980, 134988, 134994, 135000, 135006, 135012,
- 135018, 135026, 135036, 135044, 135052, 135058, 135064, 135072, 135080,
- 135086, 135094, 135102, 135110, 135116, 135122, 135128, 135134, 135140,
- 135146, 135154, 135162, 135168, 135174, 135180, 135186, 135192, 135200,
- 135206, 135212, 135218, 135224, 135230, 135236, 135244, 135250, 135256,
- 135262, 135268, 135276, 135284, 135290, 135296, 135302, 135307, 135313,
- 135319, 135327, 135333, 135339, 135345, 135351, 135357, 135363, 135369,
- 135375, 135381, 135391, 135399, 135405, 135411, 135417, 135425, 135431,
- 135437, 135443, 135451, 135457, 135463, 135469, 135475, 135481, 135487,
- 135493, 135499, 135505, 135511, 135517, 135525, 135531, 135539, 135545,
- 135551, 135559, 135565, 135571, 135577, 135583, 135589, 135595, 135601,
- 135607, 135613, 135619, 135625, 135631, 135637, 135643, 135649, 135655,
- 135661, 135667, 135673, 135681, 135687, 135693, 135699, 135705, 135711,
- 135717, 135723, 135729, 135735, 135741, 135747, 135753, 135759, 135767,
- 135773, 135779, 135787, 135793, 135799, 135805, 135811, 135817, 135823,
- 135829, 135835, 135841, 135847, 135855, 135861, 135867, 135873, 135879,
- 135885, 135893, 135901, 135907, 135913, 135919, 135925, 135931, 135937,
- 135942, 135947, 135952, 135957, 135962, 135967, 135972, 135977, 135982,
- 135987, 135992, 135997, 136002, 136007, 136012, 136017, 136022, 136027,
- 136032, 136037, 136042, 136047, 136052, 136057, 136062, 136067, 136072,
- 136077, 136082, 136087, 136094, 136099, 136104, 136109, 136114, 136119,
- 136124, 136129, 136134, 136139, 136144, 136149, 136154, 136159, 136164,
- 136169, 136174, 136179, 136184, 136189, 136194, 136199, 136204, 136209,
- 136214, 136219, 136224, 136229, 136234, 136239, 136244, 136249, 136254,
- 136259, 136264, 136269, 136274, 136279, 136284, 136289, 136294, 136299,
- 136304, 136309, 136314, 136319, 136324, 136329, 136334, 136339, 136344,
- 136349, 136354, 136359, 136364, 136369, 136374, 136379, 136384, 136391,
- 136396, 136401, 136406, 136411, 136416, 136421, 136426, 136431, 136436,
- 136441, 136446, 136451, 136456, 136461, 136466, 136471, 136476, 136481,
- 136486, 136491, 136496, 136503, 136508, 136513, 136519, 136524, 136529,
- 136534, 136539, 136544, 136549, 136554, 136559, 136564, 136569, 136574,
- 136579, 136584, 136589, 136594, 136599, 136604, 136609, 136614, 136619,
- 136624, 136629, 136634, 136639, 136644, 136649, 136654, 136659, 136664,
- 136669, 136674, 136679, 136684, 136689, 136694, 136699, 136704, 136709,
- 136714, 136719, 136724, 136729, 136734, 136741, 136746, 136751, 136758,
- 136765, 136770, 136775, 136780, 136785, 136790, 136795, 136800, 136805,
- 136810, 136815, 136820, 136825, 136830, 136835, 136840, 136845, 136850,
- 136855, 136860, 136865, 136870, 136875, 136880, 136885, 136890, 136897,
- 136902, 136907, 136912, 136917, 136922, 136927, 136932, 136937, 136942,
- 136947, 136952, 136957, 136962, 136967, 136972, 136977, 136982, 136987,
- 136994, 136999, 137004, 137009, 137014, 137019, 137024, 137029, 137035,
- 137040, 137045, 137050, 137055, 137060, 137065, 137070, 137075, 137082,
- 137089, 137094, 137099, 137103, 137108, 137112, 137116, 137121, 137128,
- 137133, 137138, 137147, 137152, 137157, 137162, 137167, 137174, 137181,
- 137186, 137191, 137196, 137201, 137208, 137213, 137218, 137223, 137228,
- 137233, 137238, 137243, 137248, 137253, 137258, 137263, 137268, 137275,
- 137279, 137284, 137289, 137294, 137299, 137303, 137308, 137313, 137318,
- 137323, 137328, 137333, 137338, 137343, 137348, 137354, 137360, 137366,
- 137372, 137378, 137383, 137389, 137395, 137401, 137407, 137413, 137419,
- 137425, 137431, 137437, 137443, 137449, 137455, 137461, 137467, 137473,
- 137479, 137485, 137491, 137496, 137502, 137508, 137514, 137520, 137526,
- 137532, 137538, 137544, 137550, 137556, 137562, 137568, 137574, 137580,
- 137586, 137592, 137598, 137604, 137610, 137616, 137621, 137627, 137633,
- 137639, 137645, 137651, 0, 0, 0, 0, 0, 0, 0, 137657, 137661, 137666,
- 137671, 137676, 137681, 137686, 137690, 137695, 137700, 137705, 137710,
- 137715, 137720, 137725, 137730, 137735, 137739, 137744, 137748, 137753,
- 137758, 137763, 137768, 137773, 137777, 137782, 137787, 137791, 137796,
- 137801, 0, 137806, 137811, 137815, 137819, 137823, 137827, 137831,
- 137835, 137839, 137843, 0, 0, 0, 0, 137847, 137851, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 110526, 110530, 110534, 110538, 110542, 110546, 110551, 0,
+ 110556, 0, 110561, 110566, 110571, 110576, 0, 110581, 110586, 110591,
+ 110596, 110601, 110606, 110611, 110616, 110620, 110625, 110630, 110635,
+ 110639, 110643, 110648, 0, 110653, 110658, 110662, 110666, 110670,
+ 110674, 110679, 110683, 110687, 110692, 110697, 0, 0, 0, 0, 0, 0, 110702,
+ 110706, 110711, 110715, 110720, 110724, 110729, 110733, 110738, 110742,
+ 110747, 110751, 110756, 110761, 110766, 110771, 110776, 110781, 110786,
+ 110791, 110796, 110801, 110806, 110811, 110816, 110821, 110826, 110831,
+ 110836, 110841, 110845, 110850, 110855, 110860, 110864, 110868, 110873,
+ 110878, 110883, 110888, 110892, 110896, 110900, 110904, 110909, 110914,
+ 110918, 110922, 110927, 110933, 110938, 110944, 110949, 110955, 110960,
+ 110966, 110971, 110977, 110982, 0, 0, 0, 0, 0, 110987, 110992, 110996,
+ 111000, 111004, 111008, 111012, 111016, 111020, 111024, 0, 0, 0, 0, 0, 0,
+ 111028, 111035, 111040, 111045, 0, 111050, 111054, 111059, 111063,
+ 111068, 111072, 111077, 111082, 0, 0, 111087, 111092, 0, 0, 111097,
+ 111102, 111107, 111111, 111116, 111121, 111126, 111131, 111136, 111141,
+ 111146, 111151, 111156, 111161, 111166, 111171, 111176, 111181, 111185,
+ 111190, 111195, 111200, 0, 111204, 111208, 111213, 111218, 111223,
+ 111227, 111231, 0, 111235, 111239, 0, 111244, 111249, 111254, 111259,
+ 111263, 0, 111267, 111271, 111276, 111281, 111287, 111292, 111298,
+ 111303, 111309, 111315, 0, 0, 111322, 111328, 0, 0, 111334, 111340,
+ 111346, 0, 0, 111351, 0, 0, 0, 0, 0, 0, 111355, 0, 0, 0, 0, 0, 111362,
+ 111367, 111374, 111382, 111388, 111394, 111400, 0, 0, 111407, 111413,
+ 111418, 111423, 111428, 111433, 111438, 0, 0, 0, 111443, 111448, 111453,
+ 111458, 111464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137856, 137863,
- 137869, 137876, 137883, 137890, 137897, 137904, 137911, 137918, 137925,
- 137932, 137939, 137946, 137953, 137960, 137967, 137974, 137980, 137987,
- 137994, 138001, 138007, 138014, 138020, 138026, 138033, 138039, 138046,
- 138052, 0, 0, 138058, 138066, 138074, 138083, 138092, 138101, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 138109, 138114, 138119, 138124, 138129, 138134, 138139,
- 138144, 138149, 138154, 138159, 138164, 138169, 138174, 138179, 138184,
- 138189, 138194, 138199, 138204, 138209, 138214, 138219, 138224, 138229,
- 138234, 138239, 138244, 138249, 138254, 138259, 138264, 138269, 138274,
- 138279, 138284, 138289, 138294, 138299, 138304, 138309, 138314, 138319,
- 138324, 138329, 138334, 138339, 138344, 138349, 138356, 138363, 138370,
- 138377, 138384, 138391, 138398, 138405, 138414, 138421, 138428, 138435,
- 138442, 138449, 138456, 138463, 138470, 138477, 138484, 138491, 138496,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138505, 138510, 138514, 138518, 138522,
- 138526, 138530, 138534, 138538, 138542, 0, 138546, 138551, 138556,
- 138563, 138568, 138575, 138582, 0, 138587, 138594, 138599, 138604,
- 138611, 138618, 138623, 138628, 138633, 138638, 138643, 138650, 138657,
- 138662, 138667, 138672, 138685, 138694, 138701, 138710, 138719, 0, 0, 0,
- 0, 0, 138728, 138735, 138742, 138749, 138756, 138763, 138770, 138777,
- 138784, 138791, 138798, 138805, 138812, 138819, 138826, 138833, 138840,
- 138847, 138854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 111469, 111473, 111478, 111482, 111487, 111491, 111496, 111501, 111507,
+ 111512, 111518, 111522, 111527, 111531, 111536, 111540, 111545, 111550,
+ 111555, 111560, 111565, 111570, 111575, 111580, 111585, 111590, 111595,
+ 111600, 111605, 111610, 111615, 111620, 111624, 111629, 111634, 111639,
+ 111643, 111648, 111652, 111657, 111662, 111667, 111671, 111676, 111680,
+ 111684, 111689, 111693, 111698, 111703, 111708, 111713, 111717, 111721,
+ 111727, 111732, 111738, 111743, 111749, 111755, 111762, 111768, 111775,
+ 111780, 111786, 111791, 111797, 111802, 111807, 111812, 111817, 111822,
+ 111827, 111833, 111837, 111841, 111845, 111850, 111854, 111860, 111865,
+ 111870, 111874, 111878, 111882, 111886, 111890, 111894, 111898, 111902,
+ 111906, 111911, 0, 111916, 111921, 111926, 111933, 111938, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 111943, 111947, 111951, 111956, 111960, 111965, 111969, 111974,
+ 111979, 111985, 111990, 111996, 112000, 112005, 112009, 112014, 112018,
+ 112023, 112028, 112033, 112038, 112043, 112048, 112053, 112058, 112063,
+ 112068, 112073, 112078, 112083, 112088, 112092, 112097, 112102, 112107,
+ 112111, 112115, 112120, 112125, 112130, 112134, 112138, 112142, 112146,
+ 112151, 112156, 112161, 112165, 112169, 112175, 112180, 112186, 112191,
+ 112197, 112203, 112210, 112216, 112223, 112228, 112235, 112241, 112246,
+ 112253, 112259, 112264, 112269, 112274, 112279, 112284, 112289, 112293,
+ 112298, 0, 0, 0, 0, 0, 0, 0, 0, 112302, 112307, 112311, 112315, 112319,
+ 112323, 112327, 112331, 112335, 112339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138861, 138867, 138873, 138879,
- 138885, 138891, 138897, 138903, 138909, 138915, 138921, 138927, 138932,
- 138938, 138943, 138949, 138954, 138960, 138966, 138971, 138977, 138982,
- 138988, 138994, 139000, 139006, 139012, 139018, 139024, 139029, 139034,
- 139040, 139046, 139052, 139058, 139064, 139070, 139076, 139082, 139088,
- 139094, 139100, 139106, 139112, 139117, 139123, 139128, 139134, 139139,
- 139145, 139151, 139156, 139162, 139167, 139173, 139179, 139185, 139191,
- 139197, 139203, 139209, 139214, 139219, 139225, 139231, 139236, 139240,
- 139244, 139248, 139252, 139256, 139260, 139264, 139268, 139272, 139277,
- 139282, 139287, 139292, 139297, 139302, 139307, 139312, 139317, 139322,
- 139329, 139336, 139343, 139347, 139353, 139358, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139364,
- 139367, 139371, 139375, 139379, 139382, 139386, 139391, 139395, 139399,
- 139403, 139406, 139410, 139415, 139419, 139423, 139427, 139430, 139434,
- 139439, 139444, 139448, 139452, 139455, 139459, 139463, 139467, 139471,
- 139475, 139479, 139483, 139486, 139490, 139494, 139498, 139502, 139506,
- 139510, 139516, 139519, 139523, 139527, 139531, 139535, 139539, 139543,
- 139547, 139551, 139555, 139560, 139565, 139571, 139575, 139579, 139583,
- 139587, 139591, 139595, 139600, 139603, 139607, 139611, 139615, 139619,
- 139625, 139629, 139633, 139637, 139641, 139645, 139649, 139653, 139657,
- 139661, 139665, 0, 0, 0, 0, 139669, 139674, 139678, 139682, 139688,
- 139694, 139698, 139703, 139708, 139713, 139718, 139722, 139727, 139732,
- 139737, 139741, 139746, 139751, 139756, 139760, 139765, 139770, 139775,
- 139780, 139785, 139790, 139795, 139800, 139804, 139809, 139814, 139819,
- 139824, 139829, 139834, 139839, 139844, 139849, 139854, 139859, 139866,
- 139871, 139878, 139883, 139888, 139893, 139898, 139903, 139908, 139913,
- 139918, 139923, 139928, 139933, 139938, 139943, 139948, 0, 0, 0, 0, 0, 0,
- 0, 139953, 139957, 139963, 139966, 139969, 139973, 139977, 139981,
- 139985, 139989, 139993, 139997, 140003, 140009, 140015, 140021, 140027,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112343, 112347, 112352, 112356, 112361,
+ 112365, 112370, 112375, 112381, 112386, 112392, 112396, 112401, 112405,
+ 112410, 112414, 112419, 112424, 112429, 112434, 112439, 112444, 112449,
+ 112454, 112459, 112464, 112469, 112474, 112479, 112484, 112488, 112493,
+ 112498, 112503, 112507, 112511, 112516, 112521, 112526, 112530, 112534,
+ 112538, 112542, 112547, 112552, 112557, 112561, 112565, 112571, 112576,
+ 112582, 112587, 112593, 112599, 0, 0, 112606, 112611, 112617, 112622,
+ 112628, 112633, 112638, 112643, 112648, 112653, 112658, 112662, 112667,
+ 112673, 112678, 112684, 112690, 112696, 112704, 112717, 112730, 112743,
+ 112757, 112772, 112780, 112791, 112800, 112810, 112820, 112830, 112841,
+ 112853, 112866, 112874, 112882, 112891, 112897, 112904, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 112912, 112916, 112921, 112925, 112930, 112934, 112939,
+ 112944, 112950, 112955, 112961, 112965, 112970, 112974, 112979, 112983,
+ 112988, 112993, 112998, 113003, 113008, 113013, 113018, 113023, 113028,
+ 113033, 113038, 113043, 113048, 113053, 113057, 113062, 113067, 113072,
+ 113076, 113080, 113085, 113090, 113095, 113099, 113103, 113107, 113111,
+ 113116, 113121, 113126, 113130, 113134, 113139, 113145, 113150, 113156,
+ 113161, 113167, 113173, 113180, 113186, 113193, 113198, 113204, 113209,
+ 113215, 113220, 113225, 113230, 113235, 113239, 113244, 113249, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 113254, 113259, 113263, 113267, 113271, 113275,
+ 113279, 113283, 113287, 113291, 0, 0, 0, 0, 0, 0, 113295, 113301, 113306,
+ 113313, 113321, 113328, 113336, 113345, 113350, 113359, 113364, 113372,
+ 113381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113391,
+ 113395, 113400, 113404, 113409, 113413, 113418, 113422, 113427, 113431,
+ 113436, 113440, 113445, 113450, 113455, 113460, 113465, 113470, 113475,
+ 113480, 113485, 113490, 113495, 113500, 113505, 113510, 113514, 113519,
+ 113524, 113529, 113533, 113537, 113542, 113547, 113552, 113556, 113560,
+ 113564, 113568, 113573, 113578, 113582, 113586, 113591, 113596, 113601,
+ 113607, 113612, 113618, 113623, 113629, 113634, 113640, 113645, 113651,
+ 113656, 113661, 0, 0, 0, 0, 0, 0, 0, 113668, 113673, 113677, 113681,
+ 113685, 113689, 113693, 113697, 113701, 113705, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140033, 140037, 140041,
- 140047, 140053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140058, 140067, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140076, 140079, 140082, 140085, 140088,
- 140091, 140094, 140097, 140100, 140103, 140106, 140109, 140112, 140115,
- 140118, 140121, 140124, 140127, 140130, 140133, 140136, 140139, 140142,
- 140145, 140148, 140151, 140154, 140157, 140160, 140163, 140166, 140169,
- 140172, 140175, 140178, 140181, 140184, 140187, 140190, 140193, 140196,
- 140199, 140202, 140205, 140208, 140211, 140214, 140217, 140220, 140223,
- 140226, 140229, 140232, 140235, 140238, 140241, 140244, 140247, 140250,
- 140253, 140256, 140259, 140262, 140265, 140268, 140271, 140274, 140277,
- 140280, 140283, 140286, 140289, 140292, 140295, 140298, 140301, 140304,
- 140307, 140310, 140313, 140316, 140319, 140322, 140325, 140328, 140331,
- 140334, 140337, 140340, 140343, 140346, 140349, 140352, 140355, 140358,
- 140361, 140364, 140367, 140370, 140373, 140376, 140379, 140382, 140385,
- 140388, 140391, 140394, 140397, 140400, 140403, 140406, 140409, 140412,
- 140415, 140418, 140421, 140424, 140427, 140430, 140433, 140436, 140439,
- 140442, 140445, 140448, 140451, 140454, 140457, 140460, 140463, 140466,
- 140469, 140472, 140475, 140478, 140481, 140484, 140487, 140490, 140493,
- 140496, 140499, 140502, 140505, 140508, 140511, 140514, 140517, 140520,
- 140523, 140526, 140529, 140532, 140535, 140538, 140541, 140544, 140547,
- 140550, 140553, 140556, 140559, 140562, 140565, 140568, 140571, 140574,
- 140577, 140580, 140583, 140586, 140589, 140592, 140595, 140598, 140601,
- 140604, 140607, 140610, 140613, 140616, 140619, 140622, 140625, 140628,
- 140631, 140634, 140637, 140640, 140643, 140646, 140649, 140652, 140655,
- 140658, 140661, 140664, 140667, 140670, 140673, 140676, 140679, 140682,
- 140685, 140688, 140691, 140694, 140697, 140700, 140703, 140706, 140709,
- 140712, 140715, 140718, 140721, 140724, 140727, 140730, 140733, 140736,
- 140739, 140742, 140745, 140748, 140751, 140754, 140757, 140760, 140763,
- 140766, 140769, 140772, 140775, 140778, 140781, 140784, 140787, 140790,
- 140793, 140796, 140799, 140802, 140805, 140808, 140811, 140814, 140817,
- 140820, 140823, 140826, 140829, 140832, 140835, 140838, 140841, 140844,
- 140847, 140850, 140853, 140856, 140859, 140862, 140865, 140868, 140871,
- 140874, 140877, 140880, 140883, 140886, 140889, 140892, 140895, 140898,
- 140901, 140904, 140907, 140910, 140913, 140916, 140919, 140922, 140925,
- 140928, 140931, 140934, 140937, 140940, 140943, 140946, 140949, 140952,
- 140955, 140958, 140961, 140964, 140967, 140970, 140973, 140976, 140979,
- 140982, 140985, 140988, 140991, 140994, 140997, 141000, 141003, 141006,
- 141009, 141012, 141015, 141018, 141021, 141024, 141027, 141030, 141033,
- 141036, 141039, 141042, 141045, 141048, 141051, 141054, 141057, 141060,
- 141063, 141066, 141069, 141072, 141075, 141078, 141081, 141084, 141087,
- 141090, 141093, 141096, 141099, 141102, 141105, 141108, 141111, 141114,
- 141117, 141120, 141123, 141126, 141129, 141132, 141135, 141138, 141141,
- 141144, 141147, 141150, 141153, 141156, 141159, 141162, 141165, 141168,
- 141171, 141174, 141177, 141180, 141183, 141186, 141189, 141192, 141195,
- 141198, 141201, 141204, 141207, 141210, 141213, 141216, 141219, 141222,
- 141225, 141228, 141231, 141234, 141237, 141240, 141243, 141246, 141249,
- 141252, 141255, 141258, 141261, 141264, 141267, 141270, 141273, 141276,
- 141279, 141282, 141285, 141288, 141291, 141294, 141297, 141300, 141303,
- 141306, 141309, 141312, 141315, 141318, 141321, 141324, 141327, 141330,
- 141333, 141336, 141339, 141342, 141345, 141348, 141351, 141354, 141357,
- 141360, 141363, 141366, 141369, 141372, 141375, 141378, 141381, 141384,
- 141387, 141390, 141393, 141396, 141399, 141402, 141405, 141408, 141411,
- 141414, 141417, 141420, 141423, 141426, 141429, 141432, 141435, 141438,
- 141441, 141444, 141447, 141450, 141453, 141456, 141459, 141462, 141465,
- 141468, 141471, 141474, 141477, 141480, 141483, 141486, 141489, 141492,
- 141495, 141498, 141501, 141504, 141507, 141510, 141513, 141516, 141519,
- 141522, 141525, 141528, 141531, 141534, 141537, 141540, 141543, 141546,
- 141549, 141552, 141555, 141558, 141561, 141564, 141567, 141570, 141573,
- 141576, 141579, 141582, 141585, 141588, 141591, 141594, 141597, 141600,
- 141603, 141606, 141609, 141612, 141615, 141618, 141621, 141624, 141627,
- 141630, 141633, 141636, 141639, 141642, 141645, 141648, 141651, 141654,
- 141657, 141660, 141663, 141666, 141669, 141672, 141675, 141678, 141681,
- 141684, 141687, 141690, 141693, 141696, 141699, 141702, 141705, 141708,
- 141711, 141714, 141717, 141720, 141723, 141726, 141729, 141732, 141735,
- 141738, 141741, 141744, 141747, 141750, 141753, 141756, 141759, 141762,
- 141765, 141768, 141771, 141774, 141777, 141780, 141783, 141786, 141789,
- 141792, 141795, 141798, 141801, 141804, 141807, 141810, 141813, 141816,
- 141819, 141822, 141825, 141828, 141831, 141834, 141837, 141840, 141843,
- 141846, 141849, 141852, 141855, 141858, 141861, 141864, 141867, 141870,
- 141873, 141876, 141879, 141882, 141885, 141888, 141891, 141894, 141897,
- 141900, 141903, 141906, 141909, 141912, 141915, 141918, 141921, 141924,
- 141927, 141930, 141933, 141936, 141939, 141942, 141945, 141948, 141951,
- 141954, 141957, 141960, 141963, 141966, 141969, 141972, 141975, 141978,
- 141981, 141984, 141987, 141990, 141993, 141996, 141999, 142002, 142005,
- 142008, 142011, 142014, 142017, 142020, 142023, 142026, 142029, 142032,
- 142035, 142038, 142041, 142044, 142047, 142050, 142053, 142056, 142059,
- 142062, 142065, 142068, 142071, 142074, 142077, 142080, 142083, 142086,
- 142089, 142092, 142095, 142098, 142101, 142104, 142107, 142110, 142113,
- 142116, 142119, 142122, 142125, 142128, 142131, 142134, 142137, 142140,
- 142143, 142146, 142149, 142152, 142155, 142158, 142161, 142164, 142167,
- 142170, 142173, 142176, 142179, 142182, 142185, 142188, 142191, 142194,
- 142197, 142200, 142203, 142206, 142209, 142212, 142215, 142218, 142221,
- 142224, 142227, 142230, 142233, 142236, 142239, 142242, 142245, 142248,
- 142251, 142254, 142257, 142260, 142263, 142266, 142269, 142272, 142275,
- 142278, 142281, 142284, 142287, 142290, 142293, 142296, 142299, 142302,
- 142305, 142308, 142311, 142314, 142317, 142320, 142323, 142326, 142329,
- 142332, 142335, 142338, 142341, 142344, 142347, 142350, 142353, 142356,
- 142359, 142362, 142365, 142368, 142371, 142374, 142377, 142380, 142385,
- 142390, 142395, 142400, 142405, 142410, 142415, 142420, 142425, 142430,
- 142435, 142440, 142445, 142450, 142455, 142460, 142465, 142470, 142475,
- 142480, 142485, 142490, 142495, 142500, 142505, 142510, 142515, 142520,
- 142525, 142530, 142535, 142540, 142545, 142550, 142555, 142560, 142565,
- 142570, 142575, 142580, 142585, 142590, 142595, 142600, 142605, 142610,
- 142615, 142620, 142625, 142630, 142635, 142640, 142645, 142650, 142655,
- 142660, 142665, 142670, 142675, 142680, 142685, 142690, 142695, 142700,
- 142705, 142710, 142715, 142720, 142725, 142730, 142735, 142740, 142745,
- 142750, 142755, 142760, 142765, 142770, 142775, 142780, 142785, 142790,
- 142795, 142800, 142805, 142810, 142815, 142820, 142825, 142830, 142835,
- 142840, 142845, 142850, 142855, 142860, 142865, 142870, 142875, 142880,
- 142885, 142890, 142895, 142900, 142905, 142910, 142915, 142920, 142925,
- 142930, 142935, 142940, 142945, 142950, 142955, 142960, 142965, 142970,
- 142975, 142980, 142985, 142990, 142995, 143000, 143005, 143010, 143015,
- 143020, 143025, 143030, 143035, 143040, 143045, 143050, 143055, 143060,
- 143065, 143070, 143075, 143080, 143085, 143090, 143095, 143100, 143105,
- 143110, 143115, 143120, 143125, 143130, 143135, 143140, 143145, 143150,
- 143155, 143160, 143165, 143170, 143175, 143180, 143185, 143190, 143195,
- 143200, 143205, 143210, 143215, 143220, 143225, 143230, 143235, 143240,
- 143245, 143250, 143255, 143260, 143265, 143270, 143275, 143280, 143285,
- 143290, 143295, 143300, 143305, 143310, 143315, 143320, 143325, 143330,
- 143335, 143340, 143345, 143350, 143355, 143360, 143365, 143370, 143375,
- 143380, 143385, 143390, 143395, 143400, 143405, 143410, 143415, 143420,
- 143425, 143430, 143435, 143440, 143445, 143450, 143455, 143460, 143465,
- 143470, 143475, 143480, 143485, 143490, 143495, 143500, 143505, 143510,
- 143515, 143520, 143525, 143530, 143535, 143540, 143545, 143550, 143555,
- 143560, 143565, 143570, 143575, 143580, 143585, 143590, 143595, 143600,
- 143605, 143610, 143615, 143620, 143625, 143630, 143635, 143640, 143645,
- 143650, 143655, 143660, 143665, 143670, 143675, 143680, 143685, 143690,
- 143695, 143700, 143705, 143710, 143715, 143720, 143725, 143730, 143735,
- 143740, 143745, 143750, 143755, 143760, 143765, 143770, 143775, 143780,
- 143785, 143790, 143795, 143800, 143805, 143810, 143815, 143820, 143825,
- 143830, 143835, 143840, 143845, 143850, 143855, 143860, 143865, 143870,
- 143875, 143880, 143885, 143890, 143895, 143900, 143905, 143910, 143915,
- 143920, 143925, 143930, 143935, 143940, 143945, 143950, 143955, 143960,
- 143965, 143970, 143975, 143980, 143985, 143990, 143995, 144000, 144005,
- 144010, 144015, 144020, 144025, 144030, 144035, 144040, 144045, 144050,
- 144055, 144060, 144065, 144070, 144075, 144080, 144085, 144090, 144095,
- 144100, 144105, 144110, 144115, 144120, 144125, 144130, 144135, 144140,
- 144145, 144150, 144155, 144160, 144165, 144170, 144175, 144180, 144185,
- 144190, 144195, 144200, 144205, 144210, 144215, 144220, 144225, 144230,
- 144235, 144240, 144245, 144250, 144255, 144260, 144265, 144270, 144275,
- 144280, 144285, 144290, 144295, 144300, 144305, 144310, 144315, 144320,
- 144325, 144330, 144335, 144340, 144345, 144350, 144355, 144360, 144365,
- 144370, 144375, 144380, 144385, 144390, 144395, 144400, 144405, 144410,
- 144415, 144420, 144425, 144430, 144435, 144440, 144445, 144450, 144455,
- 144460, 144465, 144470, 144475, 144480, 144485, 144490, 144495, 144500,
- 144505, 144510, 144515, 144520, 144525, 144530, 144535, 144540, 144545,
- 144550, 144555, 144560, 144565, 144570, 144575, 144580, 144585, 144590,
- 144595, 144600, 144605, 144610, 144615, 144620, 144625, 144630, 144635,
- 144640, 144645, 144650, 144655, 144660, 144665, 144670, 144675, 144680,
- 144685, 144690, 144695, 144700, 144705, 144710, 144715, 144720, 144725,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113709,
+ 113713, 113718, 113723, 113727, 113731, 113737, 113741, 113746, 113751,
+ 113755, 113760, 113765, 113770, 113774, 113778, 113782, 113787, 113791,
+ 113795, 113800, 113805, 113810, 113817, 113822, 113827, 113832, 0, 0,
+ 113839, 113846, 113853, 113862, 113867, 113873, 113878, 113884, 113889,
+ 113895, 113900, 113906, 113911, 113917, 113923, 0, 0, 0, 0, 113928,
+ 113933, 113937, 113941, 113945, 113949, 113953, 113957, 113961, 113965,
+ 113969, 113974, 113979, 113985, 113990, 113995, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144730, 144735,
- 144742, 144746, 144750, 144754, 144758, 144762, 144766, 144770, 144774,
- 144778, 144782, 144786, 144790, 144794, 144798, 144802, 144806, 144810,
- 144814, 144818, 144822, 144826, 144830, 144834, 144838, 144842, 144846,
- 144850, 144854, 144858, 144862, 144866, 144870, 144874, 144878, 144882,
- 144886, 144890, 144894, 144898, 144902, 144906, 144910, 144914, 144918,
- 144922, 144926, 144930, 144934, 144938, 144942, 144946, 144950, 144954,
- 144958, 144962, 144966, 144970, 144974, 144978, 144982, 144986, 144990,
- 144994, 144998, 145002, 145006, 145010, 145014, 145018, 145022, 145026,
- 145030, 145034, 145038, 145042, 145046, 145050, 145054, 145058, 145062,
- 145066, 145070, 145074, 145078, 145082, 145086, 145090, 145094, 145098,
- 145102, 145106, 145110, 145114, 145118, 145122, 145126, 145130, 145134,
- 145138, 145142, 145146, 145150, 145154, 145158, 145162, 145166, 145170,
- 145174, 145178, 145182, 145186, 145190, 145194, 145198, 145202, 145206,
- 145210, 145214, 145218, 145222, 145226, 145230, 145234, 145238, 145242,
- 145246, 145250, 145254, 145258, 145262, 145266, 145270, 145274, 145278,
- 145282, 145286, 145290, 145294, 145298, 145302, 145306, 145310, 145314,
- 145318, 145322, 145326, 145330, 145334, 145338, 145342, 145346, 145350,
- 145354, 145358, 145362, 145366, 145370, 145374, 145378, 145382, 145386,
- 145390, 145394, 145398, 145402, 145406, 145410, 145414, 145418, 145422,
- 145426, 145430, 145434, 145438, 145442, 145446, 145450, 145454, 145458,
- 145462, 145466, 145470, 145474, 145478, 145482, 145486, 145490, 145494,
- 145498, 145502, 145506, 145510, 145514, 145518, 145522, 145526, 145530,
- 145534, 145538, 145542, 145546, 145550, 145554, 145558, 145562, 145566,
- 145570, 145574, 145578, 145582, 145586, 145590, 145594, 145598, 145602,
- 145606, 145610, 145614, 145618, 145622, 145626, 145630, 145634, 145638,
- 145642, 145646, 145650, 145654, 145658, 145662, 145666, 145670, 145674,
- 145678, 145682, 145686, 145690, 145694, 145698, 145702, 145706, 145710,
- 145714, 145718, 145722, 145726, 145730, 145734, 145738, 145742, 145746,
- 145750, 145754, 145758, 145762, 145766, 145770, 145774, 145778, 145782,
- 145786, 145790, 145794, 145798, 145802, 145806, 145810, 145814, 145818,
- 145822, 145826, 145830, 145834, 145838, 145842, 145846, 145850, 145854,
- 145858, 145862, 145866, 145870, 145874, 145878, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145882, 145888,
- 145894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145900,
- 145905, 145910, 145915, 0, 0, 0, 0, 0, 0, 0, 0, 145920, 145923, 145926,
- 145929, 145932, 145935, 145938, 145941, 145944, 145947, 145950, 145953,
- 145956, 145959, 145962, 145965, 145968, 145971, 145974, 145977, 145980,
- 145983, 145986, 145989, 145992, 145995, 145998, 146001, 146004, 146007,
- 146010, 146013, 146016, 146019, 146022, 146025, 146028, 146031, 146034,
- 146037, 146040, 146043, 146046, 146049, 146052, 146055, 146058, 146061,
- 146064, 146067, 146070, 146073, 146076, 146079, 146082, 146085, 146088,
- 146091, 146094, 146097, 146100, 146103, 146106, 146109, 146112, 146115,
- 146118, 146121, 146124, 146127, 146130, 146133, 146136, 146139, 146142,
- 146145, 146148, 146151, 146154, 146157, 146160, 146163, 146166, 146169,
- 146172, 146175, 146178, 146181, 146184, 146187, 146190, 146193, 146196,
- 146199, 146202, 146205, 146208, 146211, 146214, 146217, 146220, 146223,
- 146226, 146229, 146232, 146235, 146238, 146241, 146244, 146247, 146250,
- 146253, 146256, 146259, 146262, 146265, 146268, 146271, 146274, 146277,
- 146280, 146283, 146286, 146289, 146292, 146295, 146298, 146301, 146304,
- 146307, 146310, 146313, 146316, 146319, 146322, 146325, 146328, 146331,
- 146334, 146337, 146340, 146343, 146346, 146349, 146352, 146355, 146358,
- 146361, 146364, 146367, 146370, 146373, 146376, 146379, 146382, 146385,
- 146388, 146391, 146394, 146397, 146400, 146403, 146406, 146409, 146412,
- 146415, 146418, 146421, 146424, 146427, 146430, 146433, 146436, 146439,
- 146442, 146445, 146448, 146451, 146454, 146457, 146460, 146463, 146466,
- 146469, 146472, 146475, 146478, 146481, 146484, 146487, 146490, 146493,
- 146496, 146499, 146502, 146505, 146508, 146511, 146514, 146517, 146520,
- 146523, 146526, 146529, 146532, 146535, 146538, 146541, 146544, 146547,
- 146550, 146553, 146556, 146559, 146562, 146565, 146568, 146571, 146574,
- 146577, 146580, 146583, 146586, 146589, 146592, 146595, 146598, 146601,
- 146604, 146607, 146610, 146613, 146616, 146619, 146622, 146625, 146628,
- 146631, 146634, 146637, 146640, 146643, 146646, 146649, 146652, 146655,
- 146658, 146661, 146664, 146667, 146670, 146673, 146676, 146679, 146682,
- 146685, 146688, 146691, 146694, 146697, 146700, 146703, 146706, 146709,
- 146712, 146715, 146718, 146721, 146724, 146727, 146730, 146733, 146736,
- 146739, 146742, 146745, 146748, 146751, 146754, 146757, 146760, 146763,
- 146766, 146769, 146772, 146775, 146778, 146781, 146784, 146787, 146790,
- 146793, 146796, 146799, 146802, 146805, 146808, 146811, 146814, 146817,
- 146820, 146823, 146826, 146829, 146832, 146835, 146838, 146841, 146844,
- 146847, 146850, 146853, 146856, 146859, 146862, 146865, 146868, 146871,
- 146874, 146877, 146880, 146883, 146886, 146889, 146892, 146895, 146898,
- 146901, 146904, 146907, 146910, 146913, 146916, 146919, 146922, 146925,
- 146928, 146931, 146934, 146937, 146940, 146943, 146946, 146949, 146952,
- 146955, 146958, 146961, 146964, 146967, 146970, 146973, 146976, 146979,
- 146982, 146985, 146988, 146991, 146994, 146997, 147000, 147003, 147006,
- 147009, 147012, 147015, 147018, 147021, 147024, 147027, 147030, 147033,
- 147036, 147039, 147042, 147045, 147048, 147051, 147054, 147057, 147060,
- 147063, 147066, 147069, 147072, 147075, 147078, 147081, 147084, 147087,
- 147090, 147093, 147096, 147099, 147102, 147105, 0, 0, 0, 0, 147108,
- 147112, 147116, 147120, 147124, 147128, 147132, 147135, 147139, 147143,
- 147147, 147151, 147154, 147160, 147166, 147172, 147178, 147184, 147188,
- 147194, 147198, 147202, 147208, 147212, 147216, 147220, 147224, 147228,
- 147232, 147236, 147242, 147248, 147254, 147260, 147267, 147274, 147281,
- 147292, 147299, 147306, 147312, 147318, 147324, 147330, 147338, 147346,
- 147354, 147362, 147371, 147377, 147385, 147391, 147398, 147404, 147411,
- 147417, 147425, 147429, 147433, 147438, 147444, 147450, 147458, 147466,
- 147472, 147479, 147482, 147488, 147492, 147495, 147499, 147502, 147505,
- 147509, 147514, 147518, 147522, 147528, 147533, 147539, 147543, 147547,
- 147550, 147554, 147558, 147563, 147567, 147572, 147576, 147581, 147585,
- 147589, 147593, 147597, 147601, 147605, 147609, 147613, 147618, 147623,
- 147628, 147633, 147639, 147645, 147651, 147657, 147663, 0, 0, 0, 0, 0,
- 147668, 147676, 147685, 147693, 147700, 147708, 147715, 147722, 147731,
- 147738, 147745, 147753, 147761, 0, 0, 0, 147769, 147775, 147783, 147789,
- 147796, 147802, 147808, 147814, 147820, 0, 0, 0, 0, 0, 0, 0, 147826,
- 147832, 147840, 147846, 147853, 147859, 147865, 147871, 147877, 147883,
- 0, 0, 147888, 147894, 147900, 147903, 147912, 147919, 147927, 147934, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147941, 147946,
- 147951, 147956, 147963, 147970, 147977, 147984, 147989, 147994, 147999,
- 148004, 148011, 148016, 148023, 148030, 148035, 148040, 148045, 148052,
- 148057, 148062, 148069, 148076, 148081, 148086, 148091, 148098, 148105,
- 148112, 148117, 148122, 148129, 148136, 148143, 148150, 148155, 148160,
- 148165, 148172, 148177, 148182, 148187, 148194, 148203, 148210, 148215,
- 148220, 148225, 148230, 148235, 148240, 148249, 148256, 148261, 148268,
- 148275, 148280, 148285, 148290, 148297, 148302, 148309, 148316, 148321,
- 148326, 148331, 148338, 148345, 148350, 148355, 148362, 148369, 148376,
- 148381, 148386, 148391, 148396, 148403, 148412, 148421, 148426, 148433,
- 148442, 148447, 148452, 148457, 148462, 148469, 148476, 148483, 148490,
- 148495, 148500, 148505, 148512, 148519, 148526, 148531, 148536, 148543,
- 148548, 148555, 148560, 148567, 148572, 148579, 148586, 148591, 148596,
- 148601, 148606, 148611, 148616, 148621, 148626, 148631, 148638, 148645,
- 148652, 148659, 148666, 148675, 148680, 148685, 148692, 148699, 148704,
- 148711, 148718, 148725, 148732, 148739, 148746, 148751, 148756, 148761,
- 148766, 148771, 148780, 148789, 148798, 148807, 148816, 148825, 148834,
- 148843, 148848, 148859, 148870, 148879, 148884, 148889, 148894, 148899,
- 148908, 148915, 148922, 148929, 148936, 148943, 148950, 148959, 148968,
- 148979, 148988, 148999, 149008, 149015, 149024, 149035, 149044, 149053,
- 149062, 149071, 149078, 149085, 149092, 149101, 149110, 149121, 149130,
- 149139, 149150, 149155, 149160, 149171, 149179, 149188, 149197, 149206,
- 149217, 149226, 149235, 149246, 149257, 149268, 149279, 149290, 149301,
- 149308, 149315, 149322, 149329, 149340, 149349, 149356, 149363, 149370,
- 149381, 149392, 149403, 149414, 149425, 149436, 149447, 149458, 149465,
- 149472, 149481, 149490, 149497, 149504, 149511, 149520, 149529, 149538,
- 149545, 149554, 149563, 149572, 149579, 149586, 149591, 149597, 149604,
- 149611, 149618, 149625, 149632, 149639, 149648, 149657, 149666, 149675,
- 149682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149691, 149697, 149702, 149707,
- 149714, 149720, 149726, 149732, 149738, 149744, 149750, 149756, 149760,
- 149764, 149770, 149776, 149782, 149786, 149791, 149796, 149800, 149804,
- 149807, 149813, 149819, 149825, 149831, 149837, 149843, 149849, 149855,
- 149861, 149871, 149881, 149887, 149893, 149903, 149913, 149919, 0, 0,
- 149925, 149933, 149938, 149943, 149949, 149955, 149961, 149967, 149973,
- 149979, 149986, 149993, 149999, 150005, 150011, 150017, 150023, 150029,
- 150035, 150041, 150046, 150052, 150058, 150064, 150070, 150076, 150085,
- 150091, 150096, 150104, 150111, 150118, 150127, 150136, 150145, 150154,
- 150163, 150172, 150181, 150190, 150200, 150210, 150218, 150226, 150235,
- 150244, 150250, 150256, 150262, 150268, 150276, 150284, 150288, 150294,
- 150299, 150305, 150311, 150317, 150323, 150329, 150338, 150343, 150350,
- 150355, 150360, 150365, 150371, 150377, 150383, 150390, 150395, 150400,
- 150405, 150410, 150415, 150421, 150427, 150433, 150439, 150445, 150451,
- 150457, 150463, 150468, 150473, 150478, 150483, 150488, 150493, 150498,
- 150503, 150509, 150515, 150520, 150525, 150530, 150535, 150540, 150546,
- 150553, 150557, 150561, 150565, 150569, 150573, 150577, 150581, 150585,
- 150593, 150603, 150607, 150611, 150617, 150623, 150629, 150635, 150641,
- 150647, 150653, 150659, 150665, 150671, 150677, 150683, 150689, 150695,
- 150699, 150703, 150710, 150716, 150722, 150728, 150733, 150740, 150745,
- 150751, 150757, 150763, 150769, 150774, 150778, 150784, 150788, 150792,
- 150796, 150802, 150808, 150812, 150818, 150824, 150830, 150836, 150842,
- 150850, 150858, 150864, 150870, 150876, 150882, 150894, 150906, 150920,
- 150932, 150944, 150958, 150972, 150986, 150990, 150998, 151006, 151011,
- 151015, 151019, 151023, 151027, 151031, 151035, 151039, 151045, 151051,
- 151057, 151063, 151071, 151080, 151087, 151094, 151102, 151109, 151121,
- 151133, 151145, 151157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 151164, 151171, 151178, 151185, 151192, 151199,
- 151206, 151213, 151220, 151227, 151234, 151241, 151248, 151255, 151262,
- 151269, 151276, 151283, 151290, 151297, 151304, 151311, 151318, 151325,
- 151332, 151339, 151346, 151353, 151360, 151367, 151374, 151381, 151388,
- 151395, 151402, 151409, 151416, 151423, 151430, 151437, 151444, 151451,
- 151458, 151465, 151472, 151479, 151486, 151493, 151500, 151507, 151514,
- 151521, 151528, 151535, 151542, 151549, 151556, 151563, 151570, 151577,
- 151584, 151591, 151598, 151605, 151612, 151619, 151626, 151631, 151636,
- 151641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114000, 114004, 114009,
+ 114013, 114018, 114022, 114027, 114031, 114036, 114040, 114045, 114049,
+ 114054, 114059, 114064, 114069, 114074, 114079, 114084, 114089, 114094,
+ 114099, 114104, 114109, 114114, 114119, 114123, 114128, 114133, 114138,
+ 114142, 114146, 114151, 114156, 114161, 114165, 114169, 114173, 114177,
+ 114182, 114187, 114192, 114196, 114200, 114205, 114211, 114216, 114222,
+ 114227, 114233, 114239, 114246, 114251, 114257, 114262, 114268, 114273,
+ 114278, 114283, 114288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151645, 151651, 151656, 151661,
- 151666, 151671, 151676, 151681, 151686, 151691, 151696, 151702, 151708,
- 151714, 151720, 151726, 151732, 151738, 151744, 151750, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 151756, 151761, 151768, 151775, 151782, 151789, 151794,
- 151799, 151806, 151811, 151816, 151823, 151828, 151833, 151838, 151845,
- 151854, 151859, 151864, 151869, 151874, 151879, 151884, 151891, 151896,
- 151901, 151906, 151911, 151916, 151921, 151926, 151931, 151936, 151941,
- 151946, 151951, 151957, 151962, 151967, 151972, 151977, 151982, 151987,
- 151992, 151997, 152002, 152011, 152016, 152024, 152029, 152034, 152039,
- 152044, 152049, 152054, 152059, 152068, 152073, 152078, 152083, 152088,
- 152093, 152100, 152105, 152112, 152117, 152122, 152127, 152132, 152137,
- 152142, 152147, 152152, 152157, 152162, 152167, 152172, 152177, 152182,
- 152187, 152192, 152197, 152202, 152207, 152216, 152221, 152226, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 152231, 152239, 152247, 152255, 152263, 152271, 152279,
- 152287, 152295, 152303, 152311, 152319, 152327, 152335, 152343, 152351,
- 152359, 152367, 152375, 152380, 152385, 152390, 152395, 152400, 152404,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114293, 114301, 114308, 114316,
+ 114324, 114331, 114339, 114347, 114355, 114362, 114369, 114377, 114385,
+ 114393, 114401, 114409, 114417, 114425, 114433, 114441, 114449, 114457,
+ 114465, 114473, 114481, 114489, 114497, 114505, 114513, 114521, 114529,
+ 114537, 114545, 114553, 114560, 114568, 114576, 114583, 114591, 114599,
+ 114607, 114614, 114621, 114629, 114637, 114645, 114653, 114661, 114669,
+ 114677, 114685, 114693, 114701, 114709, 114717, 114725, 114733, 114741,
+ 114749, 114757, 114765, 114773, 114781, 114789, 114797, 114804, 114810,
+ 114816, 114822, 114828, 114834, 114840, 114846, 114852, 114858, 114865,
+ 114872, 114879, 114886, 114893, 114900, 114907, 114914, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 114921, 114927, 114933, 114940, 114946, 114953, 114959,
+ 114966, 0, 0, 114972, 0, 0, 114978, 114984, 114991, 114998, 115005,
+ 115012, 115019, 115026, 0, 115033, 115040, 0, 115047, 115054, 115061,
+ 115068, 115074, 115081, 115088, 115095, 115101, 115107, 115114, 115121,
+ 115128, 115134, 115140, 115147, 115153, 115159, 115166, 115173, 115180,
+ 115186, 115192, 115199, 115206, 115214, 115221, 115229, 115236, 115244,
+ 0, 115251, 115259, 0, 0, 115266, 115273, 115280, 115287, 115293, 115302,
+ 115309, 115315, 115322, 115329, 115336, 115344, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 115354, 115361, 115367, 115373, 115379, 115385, 115391, 115397,
+ 115403, 115409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 115415, 115419, 115424, 115428, 115433, 115437, 115442, 115447,
+ 0, 0, 115453, 115457, 115462, 115466, 115471, 115475, 115480, 115485,
+ 115490, 115495, 115500, 115505, 115510, 115515, 115520, 115525, 115530,
+ 115535, 115540, 115545, 115549, 115554, 115559, 115564, 115568, 115572,
+ 115577, 115582, 115587, 115591, 115595, 115599, 115603, 115608, 115613,
+ 115618, 115622, 115626, 115631, 115636, 115642, 115647, 115653, 115658,
+ 115664, 115670, 0, 0, 115677, 115682, 115688, 115693, 115699, 115704,
+ 115709, 115714, 115719, 115724, 115728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115735, 115740, 115746,
+ 115753, 115759, 115765, 115772, 115778, 115785, 115792, 115800, 115807,
+ 115812, 115818, 115824, 115830, 115836, 115842, 115848, 115854, 115860,
+ 115866, 115872, 115878, 115884, 115890, 115895, 115901, 115907, 115913,
+ 115918, 115923, 115929, 115935, 115941, 115946, 115952, 115958, 115964,
+ 115970, 115976, 115982, 115988, 115993, 115998, 116003, 116009, 116015,
+ 116021, 116026, 116031, 116037, 116043, 116049, 116055, 116064, 116073,
+ 116079, 116085, 116092, 116099, 116106, 116113, 116121, 116128, 116136,
+ 116142, 116148, 116155, 116162, 116171, 116181, 0, 0, 0, 0, 0, 0, 0, 0,
+ 116186, 116190, 116195, 116201, 116206, 116211, 116216, 116222, 116228,
+ 116234, 116240, 116246, 116252, 116256, 116261, 116266, 116271, 116276,
+ 116281, 116286, 116291, 116296, 116301, 116306, 116311, 116316, 116321,
+ 116326, 116330, 116335, 116340, 116345, 116349, 116353, 116358, 116363,
+ 116368, 116372, 116377, 116382, 116387, 116392, 116397, 116402, 116406,
+ 116410, 116414, 116419, 116424, 116429, 116433, 116437, 116442, 116447,
+ 116452, 116458, 116464, 116471, 116477, 116484, 116491, 116498, 116505,
+ 116512, 116519, 116526, 116532, 116538, 116545, 116552, 116559, 116564,
+ 116569, 116574, 116578, 116583, 116588, 116594, 116599, 116615, 116629,
+ 116640, 116646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116652, 116660, 116668, 116676, 116684,
+ 116693, 116702, 116711, 116720, 116728, 116737, 116746, 116754, 116763,
+ 116772, 116780, 116789, 116797, 116806, 116814, 116823, 116832, 116840,
+ 116848, 116856, 116864, 116872, 116881, 116890, 116900, 116910, 116920,
+ 116930, 116940, 116949, 116959, 116969, 116979, 116990, 117000, 117012,
+ 117024, 117035, 117049, 117060, 117070, 117082, 117093, 117103, 117115,
+ 117127, 117138, 117149, 117159, 117169, 117181, 117192, 0, 0, 0, 0, 0, 0,
+ 0, 117204, 117208, 117213, 117217, 117222, 117226, 117231, 117236,
+ 117242, 0, 117247, 117251, 117256, 117260, 117265, 117269, 117274,
+ 117279, 117284, 117289, 117294, 117299, 117304, 117309, 117314, 117319,
+ 117324, 117329, 117334, 117339, 117343, 117348, 117353, 117358, 117362,
+ 117366, 117371, 117376, 117381, 117385, 117389, 117393, 117397, 117402,
+ 117407, 117412, 117416, 117420, 117426, 117431, 117437, 117442, 117448,
+ 117454, 117461, 0, 117467, 117472, 117478, 117483, 117489, 117494,
+ 117499, 117504, 117509, 117514, 117518, 117523, 117529, 117535, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 117541, 117546, 117550, 117554, 117558, 117562,
+ 117566, 117570, 117574, 117578, 117582, 117586, 117590, 117594, 117598,
+ 117602, 117606, 117610, 117614, 117618, 117623, 117628, 117633, 117638,
+ 117643, 117648, 117653, 117658, 117663, 0, 0, 0, 117670, 117675, 117680,
+ 117684, 117689, 117694, 117699, 117704, 117709, 117714, 117719, 117723,
+ 117728, 117733, 117737, 117741, 117746, 117751, 117755, 117760, 117765,
+ 117770, 117775, 117780, 117785, 117790, 117794, 117798, 117802, 117807,
+ 117811, 117815, 0, 0, 117819, 117825, 117832, 117839, 117846, 117853,
+ 117860, 117867, 117874, 117880, 117887, 117894, 117900, 117906, 117913,
+ 117920, 117926, 117933, 117940, 117947, 117954, 117961, 0, 117968,
+ 117974, 117980, 117986, 117993, 117999, 118005, 118011, 118017, 118022,
+ 118027, 118032, 118037, 118042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118047, 118052, 118058, 118063, 118069,
+ 118074, 118080, 0, 118085, 118091, 0, 118096, 118102, 118107, 118113,
+ 118119, 118125, 118131, 118137, 118143, 118149, 118155, 118161, 118167,
+ 118173, 118179, 118185, 118191, 118196, 118202, 118208, 118214, 118219,
+ 118224, 118230, 118236, 118242, 118247, 118252, 118257, 118262, 118268,
+ 118274, 118280, 118285, 118290, 118296, 118302, 118308, 118314, 118321,
+ 118327, 118334, 118340, 118347, 0, 0, 0, 118354, 0, 118360, 118367, 0,
+ 118373, 118380, 118386, 118392, 118398, 118404, 118410, 118415, 118420,
+ 0, 0, 0, 0, 0, 0, 0, 0, 118425, 118431, 118436, 118441, 118446, 118451,
+ 118456, 118461, 118466, 118471, 0, 0, 0, 0, 0, 0, 118476, 118481, 118487,
+ 118492, 118498, 118503, 0, 118509, 118515, 0, 118521, 118527, 118533,
+ 118538, 118544, 118550, 118556, 118561, 118566, 118572, 118577, 118583,
+ 118588, 118594, 118600, 118606, 118612, 118617, 118623, 118629, 118635,
+ 118641, 118647, 118653, 118659, 118665, 118671, 118677, 118682, 118688,
+ 118693, 118698, 118703, 118710, 118716, 118723, 118729, 0, 118736,
+ 118743, 0, 118750, 118757, 118764, 118770, 118776, 118781, 0, 0, 0, 0, 0,
+ 0, 0, 118786, 118792, 118797, 118802, 118807, 118812, 118817, 118822,
+ 118827, 118832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152408, 152412, 152417,
- 152422, 152427, 152431, 152436, 152441, 152446, 152450, 152455, 152460,
- 152464, 152469, 152474, 152478, 152483, 152488, 152492, 152497, 152502,
- 152506, 152511, 152516, 152521, 152526, 152531, 152535, 152540, 152545,
- 152550, 152554, 152559, 152564, 152569, 152573, 152578, 152583, 152587,
- 152592, 152597, 152601, 152606, 152611, 152615, 152620, 152625, 152629,
- 152634, 152639, 152644, 152649, 152654, 152658, 152663, 152668, 152673,
- 152677, 152682, 152687, 152692, 152696, 152701, 152706, 152710, 152715,
- 152720, 152724, 152729, 152734, 152738, 152743, 152748, 152752, 152757,
- 152762, 152767, 152772, 152777, 152781, 152786, 152791, 152796, 152800,
- 152805, 0, 152810, 152814, 152819, 152824, 152828, 152833, 152838,
- 152842, 152847, 152852, 152856, 152861, 152866, 152870, 152875, 152880,
- 152885, 152890, 152895, 152900, 152906, 152912, 152918, 152923, 152929,
- 152935, 152941, 152946, 152952, 152958, 152963, 152969, 152975, 152980,
- 152986, 152992, 152997, 153003, 153009, 153014, 153020, 153026, 153032,
- 153038, 153044, 153049, 153055, 153061, 153067, 153072, 153078, 153084,
- 153090, 153095, 153101, 153107, 153112, 153118, 153124, 153129, 153135,
- 153141, 153146, 153152, 153158, 153163, 153169, 153175, 153181, 153187,
- 153193, 0, 153197, 153202, 0, 0, 153207, 0, 0, 153212, 153217, 0, 0,
- 153222, 153227, 153231, 153236, 0, 153241, 153246, 153251, 153255,
- 153260, 153265, 153270, 153275, 153280, 153284, 153289, 153294, 0,
- 153299, 0, 153304, 153309, 153313, 153318, 153323, 153327, 153332, 0,
- 153337, 153342, 153347, 153351, 153356, 153361, 153365, 153370, 153375,
- 153380, 153385, 153390, 153395, 153401, 153407, 153413, 153418, 153424,
- 153430, 153436, 153441, 153447, 153453, 153458, 153464, 153470, 153475,
- 153481, 153487, 153492, 153498, 153504, 153509, 153515, 153521, 153527,
- 153533, 153539, 153544, 153550, 153556, 153562, 153567, 153573, 153579,
- 153585, 153590, 153596, 153602, 153607, 153613, 153619, 153624, 153630,
- 153636, 153641, 153647, 153653, 153658, 153664, 153670, 153676, 153682,
- 153688, 153693, 0, 153699, 153705, 153710, 153716, 0, 0, 153722, 153728,
- 153734, 153739, 153745, 153751, 153756, 153762, 0, 153768, 153774,
- 153780, 153785, 153791, 153797, 153803, 0, 153809, 153814, 153820,
- 153826, 153832, 153837, 153843, 153849, 153855, 153860, 153866, 153872,
- 153877, 153883, 153889, 153894, 153900, 153906, 153911, 153917, 153923,
- 153928, 153934, 153940, 153946, 153952, 153958, 153963, 0, 153969,
- 153975, 153980, 153986, 0, 153992, 153997, 154003, 154009, 154014, 0,
- 154020, 0, 0, 0, 154025, 154031, 154037, 154042, 154048, 154054, 154060,
- 0, 154066, 154071, 154077, 154083, 154089, 154094, 154100, 154106,
- 154112, 154117, 154123, 154129, 154134, 154140, 154146, 154151, 154157,
- 154163, 154168, 154174, 154180, 154185, 154191, 154197, 154203, 154209,
- 154215, 154221, 154228, 154235, 154242, 154248, 154255, 154262, 154269,
- 154275, 154282, 154289, 154295, 154302, 154309, 154315, 154322, 154329,
- 154335, 154342, 154349, 154355, 154362, 154369, 154376, 154383, 154390,
- 154396, 154403, 154410, 154417, 154423, 154430, 154437, 154444, 154450,
- 154457, 154464, 154470, 154477, 154484, 154490, 154497, 154504, 154510,
- 154517, 154524, 154530, 154537, 154544, 154551, 154558, 154565, 154569,
- 154574, 154579, 154584, 154588, 154593, 154598, 154603, 154607, 154612,
- 154617, 154621, 154626, 154631, 154635, 154640, 154645, 154649, 154654,
- 154659, 154663, 154668, 154673, 154678, 154683, 154688, 154692, 154697,
- 154702, 154707, 154711, 154716, 154721, 154726, 154730, 154735, 154740,
- 154744, 154749, 154754, 154758, 154763, 154768, 154772, 154777, 154782,
- 154786, 154791, 154796, 154801, 154806, 154811, 154816, 154822, 154828,
- 154834, 154839, 154845, 154851, 154857, 154862, 154868, 154874, 154879,
- 154885, 154891, 154896, 154902, 154908, 154913, 154919, 154925, 154930,
- 154936, 154942, 154948, 154954, 154960, 154965, 154971, 154977, 154983,
- 154988, 154994, 155000, 155006, 155011, 155017, 155023, 155028, 155034,
- 155040, 155045, 155051, 155057, 155062, 155068, 155074, 155079, 155085,
- 155091, 155097, 155103, 155109, 155114, 155120, 155126, 155132, 155137,
- 155143, 155149, 155155, 155160, 155166, 155172, 155177, 155183, 155189,
- 155194, 155200, 155206, 155211, 155217, 155223, 155228, 155234, 155240,
- 155246, 155252, 155258, 155263, 155269, 155275, 155281, 155286, 155292,
- 155298, 155304, 155309, 155315, 155321, 155326, 155332, 155338, 155343,
- 155349, 155355, 155360, 155366, 155372, 155377, 155383, 155389, 155395,
- 155401, 155407, 155413, 155420, 155427, 155434, 155440, 155447, 155454,
- 155461, 155467, 155474, 155481, 155487, 155494, 155501, 155507, 155514,
- 155521, 155527, 155534, 155541, 155547, 155554, 155561, 155568, 155575,
- 155582, 155588, 155595, 155602, 155609, 155615, 155622, 155629, 155636,
- 155642, 155649, 155656, 155662, 155669, 155676, 155682, 155689, 155696,
- 155702, 155709, 155716, 155722, 155729, 155736, 155743, 155750, 155757,
- 155762, 155768, 155774, 155780, 155785, 155791, 155797, 155803, 155808,
- 155814, 155820, 155825, 155831, 155837, 155842, 155848, 155854, 155859,
- 155865, 155871, 155876, 155882, 155888, 155894, 155900, 155906, 155911,
- 155917, 155923, 155929, 155934, 155940, 155946, 155952, 155957, 155963,
- 155969, 155974, 155980, 155986, 155991, 155997, 156003, 156008, 156014,
- 156020, 156025, 156031, 156037, 156043, 156049, 156055, 156061, 0, 0,
- 156068, 156073, 156078, 156083, 156088, 156093, 156098, 156103, 156108,
- 156113, 156118, 156123, 156128, 156133, 156138, 156143, 156148, 156153,
- 156159, 156164, 156169, 156174, 156179, 156184, 156189, 156194, 156198,
- 156203, 156208, 156213, 156218, 156223, 156228, 156233, 156238, 156243,
- 156248, 156253, 156258, 156263, 156268, 156273, 156278, 156283, 156289,
- 156294, 156299, 156304, 156309, 156314, 156319, 156324, 156330, 156335,
- 156340, 156345, 156350, 156355, 156360, 156365, 156370, 156375, 156380,
- 156385, 156390, 156395, 156400, 156405, 156410, 156415, 156420, 156425,
- 156430, 156435, 156440, 156445, 156451, 156456, 156461, 156466, 156471,
- 156476, 156481, 156486, 156490, 156495, 156500, 156505, 156510, 156515,
- 156520, 156525, 156530, 156535, 156540, 156545, 156550, 156555, 156560,
- 156565, 156570, 156575, 156581, 156586, 156591, 156596, 156601, 156606,
- 156611, 156616, 156622, 156627, 156632, 156637, 156642, 156647, 156652,
- 156658, 156664, 156670, 156676, 156682, 156688, 156694, 156700, 156706,
- 156712, 156718, 156724, 156730, 156736, 156742, 156748, 156754, 156761,
- 156767, 156773, 156779, 156785, 156791, 156797, 156803, 156808, 156814,
- 156820, 156826, 156832, 156838, 156844, 156850, 156856, 156862, 156868,
- 156874, 156880, 156886, 156892, 156898, 156904, 156910, 156917, 156923,
- 156929, 156935, 156941, 156947, 156953, 156959, 156966, 156972, 156978,
- 156984, 156990, 156996, 157002, 157008, 157014, 157020, 157026, 157032,
- 157038, 157044, 157050, 157056, 157062, 157068, 157074, 157080, 157086,
- 157092, 157098, 157104, 157111, 157117, 157123, 157129, 157135, 157141,
- 157147, 157153, 157158, 157164, 157170, 157176, 157182, 157188, 157194,
- 157200, 157206, 157212, 157218, 157224, 157230, 157236, 157242, 157248,
- 157254, 157260, 157267, 157273, 157279, 157285, 157291, 157297, 157303,
- 157309, 157316, 157322, 157328, 157334, 157340, 157346, 157352, 157359,
- 157366, 157373, 157380, 157387, 157394, 157401, 157408, 157415, 157422,
- 157429, 157436, 157443, 157450, 157457, 157464, 157471, 157479, 157486,
- 157493, 157500, 157507, 157514, 157521, 157528, 157534, 157541, 157548,
- 157555, 157562, 157569, 157576, 157583, 157590, 157597, 157604, 157611,
- 157618, 157625, 157632, 157639, 157646, 157653, 157661, 157668, 157675,
- 157682, 157689, 157696, 157703, 157710, 157718, 157725, 157732, 157739,
- 157746, 157753, 157760, 157765, 0, 0, 157770, 157775, 157779, 157783,
- 157787, 157791, 157795, 157799, 157803, 157807, 157811, 157817, 157822,
- 157827, 157832, 157837, 157842, 157847, 157852, 157857, 157862, 157867,
- 157871, 157875, 157879, 157883, 157887, 157891, 157895, 157899, 157903,
- 157909, 157914, 157919, 157924, 157929, 157934, 157939, 157944, 157949,
- 157954, 157960, 157965, 157970, 157975, 157980, 157985, 157990, 157995,
- 158000, 158005, 158009, 158014, 158019, 158024, 158029, 158034, 158039,
- 158045, 158053, 158060, 158065, 158070, 158077, 158083, 158088, 158094,
- 158100, 158108, 158114, 158121, 158129, 158135, 158144, 158153, 158161,
- 158169, 158175, 158182, 158190, 158198, 158204, 158211, 158220, 158229,
- 158236, 158247, 158257, 158267, 158277, 158287, 158294, 158301, 158308,
- 158315, 158324, 158333, 158344, 158355, 158364, 158373, 158384, 158393,
- 158402, 158413, 158422, 158431, 158439, 158447, 158458, 158469, 158477,
- 158486, 158495, 158502, 158513, 158524, 158533, 158542, 158549, 158558,
- 158567, 158576, 158587, 158596, 158606, 158615, 158624, 158635, 158648,
- 158663, 158674, 158687, 158699, 158708, 158719, 158730, 158739, 158750,
- 158764, 158779, 158782, 158791, 158796, 158802, 158810, 158816, 158822,
- 158831, 158838, 158848, 158860, 158867, 158870, 158876, 158883, 158889,
- 158894, 158897, 158902, 158905, 158913, 158919, 158928, 158935, 158943,
- 158949, 158954, 158957, 158960, 158963, 158969, 158976, 158982, 158987,
- 158995, 158998, 159003, 159011, 159017, 159026, 159033, 159043, 159052,
- 159055, 159061, 159068, 159075, 159082, 159087, 159095, 159103, 159112,
- 159118, 159127, 159136, 159145, 159151, 159160, 159167, 159174, 159181,
- 159189, 159195, 159203, 159209, 159216, 159223, 159231, 159242, 159252,
- 159258, 159265, 159272, 159279, 159285, 159292, 159299, 159304, 159311,
- 159319, 159328, 159334, 159346, 159357, 159363, 159371, 159377, 159384,
- 159391, 159398, 159404, 159411, 159420, 159426, 159432, 159439, 159446,
- 159454, 159464, 159474, 159484, 159494, 159502, 159510, 159520, 159528,
- 159533, 159538, 159543, 159549, 159556, 159563, 159569, 159575, 159580,
- 159587, 159595, 159605, 159613, 159621, 159631, 159641, 159649, 159659,
- 159669, 159681, 159693, 159705, 159715, 159721, 159727, 159734, 159743,
- 159752, 159761, 159770, 159780, 159789, 159798, 159807, 159812, 159818,
- 159827, 159837, 159846, 159852, 159858, 159865, 159872, 159879, 159885,
- 159892, 159899, 159906, 159912, 159916, 159921, 159928, 159935, 159942,
- 159947, 159955, 159963, 159972, 159980, 159987, 159995, 160004, 160014,
- 160017, 160021, 160026, 160031, 160036, 160041, 160046, 160051, 160056,
- 160061, 160066, 160071, 160076, 160081, 160086, 160091, 160096, 160101,
- 160106, 160113, 160119, 160126, 160132, 160137, 160144, 160150, 160157,
- 160163, 160168, 160175, 160182, 160189, 160195, 160201, 160210, 160219,
- 160229, 160236, 160243, 160252, 160261, 160270, 160279, 160288, 160294,
- 160302, 160308, 160318, 160323, 160332, 160341, 160348, 160359, 160366,
- 160373, 160380, 160387, 160394, 160401, 160408, 160415, 160422, 160429,
- 160435, 160441, 160447, 160454, 160461, 160468, 160475, 160482, 160489,
- 160496, 160503, 160510, 160517, 160524, 160531, 160536, 160545, 160554,
- 160563, 160570, 160577, 160584, 160591, 160598, 160605, 160612, 160619,
- 160628, 160637, 160646, 160655, 160664, 160673, 160682, 160691, 160700,
- 160709, 160718, 160727, 160736, 160742, 160750, 160756, 160766, 160771,
- 160780, 160789, 160798, 160809, 160814, 160821, 160828, 160835, 160840,
- 160846, 160852, 160858, 160865, 160872, 160879, 160886, 160893, 160900,
- 160907, 160914, 160921, 160928, 160935, 160942, 160947, 160956, 160965,
- 160974, 160983, 160992, 161001, 161010, 161019, 161030, 161041, 161048,
- 161055, 161062, 161069, 161076, 161083, 161091, 161101, 161111, 161121,
- 161132, 161143, 161154, 161163, 161172, 161181, 161186, 161191, 161196,
- 161201, 161212, 161223, 161234, 161245, 161256, 161266, 161277, 161286,
- 161295, 161304, 161313, 161322, 161330, 161339, 161350, 161361, 161372,
- 161383, 161394, 161406, 161419, 161431, 161444, 161456, 161469, 161481,
- 161494, 161505, 161516, 161525, 161533, 161542, 161553, 161564, 161576,
- 161589, 161603, 161618, 161630, 161643, 161655, 161668, 161679, 161690,
- 161699, 161707, 161716, 161723, 161730, 161737, 161744, 161751, 161758,
- 161765, 161772, 161779, 161786, 161791, 161796, 161801, 161808, 161818,
- 161829, 161839, 161850, 161864, 161879, 161894, 161908, 161923, 161938,
- 161949, 161960, 161973, 161986, 161995, 162004, 162017, 162030, 162037,
- 162044, 162049, 162054, 162059, 162064, 162069, 162076, 162085, 162090,
- 162093, 162098, 162105, 162112, 162119, 162126, 162133, 162140, 162153,
- 162167, 162182, 162189, 162196, 162203, 162212, 162220, 162228, 162237,
- 162242, 162247, 162252, 162257, 162262, 162267, 162274, 162281, 162287,
- 162294, 162300, 162307, 162312, 162317, 162322, 162327, 162332, 162339,
- 162346, 162351, 162358, 162365, 162370, 162375, 162380, 162385, 162390,
- 162395, 162402, 162409, 162416, 162419, 162424, 162429, 162434, 162439,
- 162446, 162453, 162461, 162469, 162474, 162479, 162486, 162493, 162500,
- 162505, 162512, 162519, 162524, 162531, 162538, 162545, 162552, 162559,
- 162566, 162575, 162584, 162591, 162600, 162609, 162614, 162621, 162628,
- 162633, 162640, 162647, 162654, 162661, 162668, 162673, 162680, 162687,
- 162696, 162703, 162712, 162723, 162732, 162741, 162750, 162759, 162762,
- 162767, 162774, 162783, 162790, 162799, 162806, 162811, 162816, 162819,
- 162822, 162825, 162832, 162839, 162848, 162857, 162866, 162873, 162880,
- 162885, 162897, 162902, 162907, 162912, 162917, 162922, 162927, 162932,
- 162937, 162940, 162945, 162950, 162955, 162960, 162965, 162972, 162977,
- 162984, 162987, 162992, 162995, 162998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 163001, 163006, 163011, 163016, 163021, 0, 163026, 163031,
- 163036, 163041, 163046, 163051, 163056, 163061, 163066, 163071, 163076,
- 163081, 163086, 163091, 163096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163101, 163106,
- 163111, 163116, 163121, 163126, 163131, 0, 163136, 163141, 163146,
- 163152, 163156, 163161, 163166, 163171, 163176, 163181, 163186, 163191,
- 163196, 163201, 163206, 163211, 163216, 0, 0, 163221, 163226, 163231,
- 163236, 163241, 163246, 163251, 0, 163256, 163261, 0, 163267, 163272,
- 163280, 163287, 163296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23649,16 +22610,10 @@ static const unsigned int phrasebook_offset2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 163301, 163308, 163316, 163324, 163331, 163338, 163345,
- 163353, 163361, 163369, 163376, 163383, 163391, 163399, 163407, 163414,
- 163422, 163430, 163438, 163446, 163454, 163462, 163470, 163477, 163485,
- 163492, 163500, 163507, 163515, 163523, 163531, 163539, 163547, 163555,
- 163563, 163571, 163579, 163586, 163594, 163601, 163608, 163615, 163623,
- 163630, 163638, 0, 0, 0, 163646, 163653, 163660, 163667, 163674, 163681,
- 163688, 163695, 163704, 163713, 163722, 163731, 163740, 163750, 0, 0,
- 163758, 163766, 163773, 163780, 163787, 163794, 163801, 163808, 163815,
- 163822, 0, 0, 0, 0, 163829, 163838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 118837, 118841, 118846, 118851, 118855, 118860, 118864, 118868,
+ 118873, 118877, 118882, 118887, 118892, 118896, 118900, 118904, 118909,
+ 118913, 118917, 118921, 118926, 118931, 118936, 118941, 118945, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23666,1075 +22621,2120 @@ static const unsigned int phrasebook_offset2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 118957, 118963, 118969, 118975, 118981, 118987, 118993,
+ 118999, 119005, 119011, 119017, 119023, 119029, 119035, 119041, 119047,
+ 119053, 119059, 119065, 119071, 119077, 119086, 119090, 119094, 119098,
+ 119102, 119106, 119110, 119114, 119118, 119122, 119126, 119130, 119134,
+ 119138, 119142, 119146, 119152, 119158, 119162, 119168, 119174, 119179,
+ 119183, 119188, 119192, 119196, 119202, 119208, 119212, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 119216, 119224, 119227, 119232, 119238, 119246,
+ 119251, 119257, 119265, 119271, 119277, 119281, 119285, 119292, 119301,
+ 119308, 119317, 119323, 119332, 119339, 119346, 119353, 119363, 119369,
+ 119373, 119380, 119389, 119399, 119406, 119413, 119417, 119421, 119428,
+ 119438, 119442, 119449, 119456, 119463, 119469, 119476, 119483, 119490,
+ 119497, 119501, 119505, 119509, 119516, 119520, 119527, 119534, 119548,
+ 119557, 119561, 119565, 119569, 119576, 119580, 119584, 119588, 119596,
+ 119604, 119623, 119633, 119653, 119657, 119661, 119665, 119669, 119673,
+ 119677, 119681, 119688, 119692, 119695, 119699, 119703, 119709, 119716,
+ 119725, 119729, 119738, 119747, 119755, 119759, 119766, 119770, 119774,
+ 119778, 119782, 119793, 119802, 119811, 119820, 119829, 119841, 119850,
+ 119859, 119868, 119876, 119885, 119897, 119906, 119914, 119923, 119935,
+ 119944, 119953, 119965, 119974, 119983, 119995, 120004, 120008, 120012,
+ 120016, 120020, 120024, 120028, 120032, 120039, 120043, 120047, 120058,
+ 120062, 120066, 120073, 120079, 120085, 120089, 120096, 120100, 120104,
+ 120108, 120112, 120116, 120120, 120126, 120134, 120138, 120142, 120145,
+ 120152, 120164, 120168, 120180, 120187, 120194, 120201, 120208, 120214,
+ 120218, 120222, 120226, 120230, 120237, 120246, 120253, 120261, 120269,
+ 120275, 120279, 120283, 120287, 120291, 120297, 120306, 120318, 120325,
+ 120332, 120341, 120352, 120358, 120367, 120376, 120383, 120392, 120399,
+ 120405, 120415, 120422, 120429, 120436, 120443, 120447, 120453, 120457,
+ 120468, 120476, 120485, 120497, 120504, 120511, 120521, 120528, 120537,
+ 120544, 120553, 120560, 120567, 120577, 120584, 120591, 120600, 120607,
+ 120619, 120628, 120635, 120642, 120649, 120658, 120668, 120681, 120688,
+ 120697, 120707, 120714, 120723, 120736, 120743, 120750, 120757, 120767,
+ 120777, 120783, 120793, 120800, 120807, 120817, 120823, 120830, 120837,
+ 120844, 120854, 120861, 120868, 120875, 120881, 120888, 120898, 120905,
+ 120909, 120917, 120921, 120933, 120937, 120951, 120955, 120959, 120963,
+ 120967, 120973, 120980, 120988, 120992, 120996, 121000, 121004, 121011,
+ 121015, 121021, 121027, 121035, 121039, 121046, 121054, 121058, 121062,
+ 121068, 121072, 121081, 121090, 121097, 121107, 121113, 121117, 121121,
+ 121129, 121136, 121143, 121149, 121153, 121161, 121165, 121172, 121184,
+ 121191, 121201, 121207, 121211, 121220, 121227, 121236, 121240, 121244,
+ 121251, 121255, 121259, 121263, 121267, 121270, 121276, 121282, 121286,
+ 121290, 121297, 121304, 121311, 121318, 121325, 121332, 121339, 121346,
+ 121352, 121356, 121360, 121367, 121374, 121381, 121388, 121395, 121399,
+ 121402, 121407, 121411, 121415, 121424, 121433, 121437, 121441, 121447,
+ 121453, 121470, 121476, 121480, 121489, 121493, 121497, 121504, 121512,
+ 121520, 121526, 121530, 121534, 121538, 121542, 121545, 121551, 121558,
+ 121568, 121575, 121582, 121589, 121595, 121602, 121609, 121616, 121623,
+ 121630, 121639, 121646, 121658, 121665, 121672, 121682, 121693, 121700,
+ 121707, 121714, 121721, 121728, 121735, 121742, 121749, 121756, 121763,
+ 121773, 121783, 121793, 121800, 121810, 121817, 121824, 121831, 121838,
+ 121844, 121851, 121858, 121865, 121872, 121879, 121886, 121893, 121900,
+ 121906, 121913, 121920, 121929, 121936, 121943, 121947, 121955, 121959,
+ 121963, 121967, 121971, 121975, 121982, 121986, 121995, 121999, 122006,
+ 122014, 122018, 122022, 122026, 122039, 122055, 122059, 122063, 122070,
+ 122076, 122083, 122087, 122091, 122095, 122099, 122103, 122110, 122114,
+ 122132, 122136, 122140, 122147, 122151, 122155, 122161, 122165, 122169,
+ 122177, 122181, 122185, 122188, 122192, 122198, 122209, 122218, 122227,
+ 122234, 122241, 122252, 122259, 122266, 122273, 122280, 122287, 122294,
+ 122301, 122311, 122317, 122324, 122334, 122343, 122350, 122359, 122369,
+ 122376, 122383, 122390, 122397, 122409, 122416, 122423, 122430, 122437,
+ 122444, 122454, 122461, 122468, 122478, 122491, 122503, 122510, 122520,
+ 122527, 122534, 122541, 122555, 122561, 122569, 122579, 122589, 122596,
+ 122603, 122609, 122613, 122620, 122630, 122636, 122649, 122653, 122657,
+ 122664, 122668, 122675, 122685, 122689, 122693, 122697, 122701, 122705,
+ 122712, 122716, 122723, 122730, 122737, 122746, 122755, 122765, 122772,
+ 122779, 122786, 122796, 122803, 122813, 122820, 122830, 122837, 122844,
+ 122854, 122864, 122871, 122877, 122885, 122893, 122899, 122905, 122909,
+ 122913, 122920, 122928, 122934, 122938, 122942, 122946, 122953, 122965,
+ 122968, 122975, 122981, 122985, 122989, 122993, 122997, 123001, 123005,
+ 123009, 123013, 123017, 123021, 123028, 123032, 123038, 123042, 123046,
+ 123050, 123056, 123063, 123070, 123077, 123088, 123096, 123100, 123106,
+ 123115, 123122, 123128, 123131, 123135, 123139, 123145, 123154, 123162,
+ 123166, 123172, 123176, 123180, 123184, 123190, 123197, 123203, 123207,
+ 123213, 123217, 123221, 123230, 123242, 123246, 123253, 123260, 123270,
+ 123277, 123289, 123296, 123303, 123310, 123321, 123331, 123344, 123354,
+ 123361, 123365, 123369, 123373, 123377, 123386, 123395, 123404, 123421,
+ 123430, 123436, 123443, 123451, 123464, 123468, 123477, 123486, 123495,
+ 123504, 123515, 123524, 123532, 123541, 123550, 123559, 123568, 123578,
+ 123581, 123585, 123589, 123593, 123597, 123601, 123607, 123614, 123621,
+ 123628, 123634, 123640, 123647, 123653, 123660, 123668, 123672, 123679,
+ 123686, 123693, 123701, 123704, 123708, 123712, 123716, 123719, 123725,
+ 123729, 123735, 123742, 123749, 123755, 123762, 123769, 123776, 123783,
+ 123790, 123797, 123804, 123811, 123818, 123825, 123832, 123839, 123846,
+ 123853, 123859, 123863, 123872, 123876, 123880, 123884, 123888, 123894,
+ 123901, 123908, 123915, 123922, 123929, 123935, 123943, 123947, 123951,
+ 123955, 123959, 123965, 123982, 123999, 124003, 124007, 124011, 124015,
+ 124019, 124023, 124029, 124036, 124040, 124046, 124053, 124060, 124067,
+ 124074, 124081, 124090, 124097, 124104, 124111, 124118, 124122, 124126,
+ 124132, 124144, 124148, 124152, 124161, 124165, 124169, 124173, 124179,
+ 124183, 124187, 124196, 124200, 124204, 124208, 124215, 124219, 124223,
+ 124227, 124231, 124235, 124239, 124243, 124246, 124252, 124259, 124266,
+ 124272, 124276, 124293, 124299, 124303, 124309, 124315, 124321, 124327,
+ 124333, 124339, 124343, 124347, 124351, 124357, 124361, 124367, 124371,
+ 124375, 124382, 124389, 124406, 124410, 124414, 124418, 124422, 124426,
+ 124438, 124441, 124446, 124451, 124466, 124476, 124488, 124492, 124496,
+ 124500, 124506, 124513, 124520, 124530, 124542, 124548, 124554, 124563,
+ 124567, 124571, 124578, 124588, 124595, 124601, 124605, 124609, 124616,
+ 124622, 124626, 124632, 124636, 124644, 124650, 124654, 124662, 124670,
+ 124677, 124683, 124690, 124697, 124707, 124717, 124721, 124725, 124729,
+ 124733, 124739, 124746, 124752, 124759, 124766, 124773, 124782, 124789,
+ 124796, 124802, 124809, 124816, 124823, 124830, 124837, 124844, 124850,
+ 124857, 124864, 124871, 124880, 124887, 124894, 124898, 124904, 124908,
+ 124914, 124921, 124928, 124935, 124939, 124943, 124947, 124951, 124955,
+ 124962, 124966, 124970, 124976, 124984, 124988, 124992, 124996, 125000,
+ 125007, 125011, 125015, 125023, 125027, 125031, 125035, 125039, 125045,
+ 125049, 125053, 125059, 125066, 125072, 125079, 125091, 125095, 125102,
+ 125109, 125116, 125123, 125135, 125142, 125146, 125150, 125154, 125161,
+ 125168, 125175, 125182, 125192, 125199, 125205, 125212, 125219, 125226,
+ 125233, 125242, 125252, 125259, 125263, 125270, 125274, 125278, 125282,
+ 125289, 125296, 125306, 125312, 125316, 125325, 125329, 125336, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 125340, 125346, 125352, 125359, 125366, 125373, 125380, 125387,
+ 125394, 125400, 125407, 125414, 125421, 125428, 125435, 125442, 125448,
+ 125454, 125460, 125466, 125472, 125478, 125484, 125490, 125496, 125503,
+ 125510, 125517, 125524, 125531, 125538, 125544, 125550, 125556, 125563,
+ 125570, 125576, 125582, 125591, 125598, 125605, 125612, 125619, 125626,
+ 125633, 125639, 125645, 125651, 125660, 125667, 125674, 125685, 125696,
+ 125702, 125708, 125714, 125723, 125730, 125737, 125747, 125757, 125768,
+ 125779, 125791, 125804, 125815, 125826, 125838, 125851, 125862, 125873,
+ 125884, 125895, 125906, 125918, 125926, 125934, 125943, 125952, 125961,
+ 125967, 125973, 125979, 125986, 125996, 126003, 126013, 126018, 126023,
+ 126029, 126035, 126043, 126051, 126060, 126071, 126082, 126090, 126098,
+ 126107, 126116, 126124, 126131, 126139, 126147, 126154, 126161, 126170,
+ 126179, 126188, 126197, 126206, 0, 126215, 126226, 126233, 126241,
+ 126249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126257, 126266, 126273, 126280,
+ 126289, 126296, 126303, 126310, 126320, 126327, 126334, 126341, 126349,
+ 126356, 126363, 126370, 126381, 126388, 126395, 126402, 126409, 126416,
+ 126425, 126432, 126438, 126445, 126454, 126461, 126468, 126475, 126485,
+ 126492, 126499, 126509, 126519, 126526, 126533, 126540, 126547, 126554,
+ 126561, 126570, 126577, 126584, 126590, 126598, 126607, 126616, 126627,
+ 126635, 126644, 126653, 126662, 126671, 126678, 126685, 126694, 126706,
+ 126716, 126723, 126730, 126740, 126750, 126759, 126769, 126776, 126786,
+ 126793, 126800, 126807, 126817, 126827, 126834, 126841, 126851, 126857,
+ 126868, 126877, 126887, 126895, 126908, 126915, 126921, 126929, 126936,
+ 126946, 126950, 126954, 126958, 126962, 126966, 126970, 126974, 126983,
+ 126987, 126994, 126998, 127002, 127006, 127010, 127014, 127018, 127022,
+ 127026, 127030, 127034, 127038, 127042, 127046, 127050, 127054, 127058,
+ 127062, 127066, 127070, 127077, 127084, 127094, 127107, 127117, 127121,
+ 127125, 127129, 127133, 127137, 127141, 127145, 127149, 127153, 127157,
+ 127161, 127168, 127175, 127186, 127193, 127199, 127206, 127213, 127220,
+ 127227, 127234, 127238, 127242, 127249, 127256, 127263, 127272, 127279,
+ 127292, 127302, 127309, 127316, 127320, 127324, 127333, 127340, 127347,
+ 127354, 127367, 127374, 127381, 127391, 127401, 127410, 127417, 127424,
+ 127431, 127438, 127445, 127452, 127462, 127468, 127476, 127483, 127491,
+ 127498, 127509, 127516, 127522, 127529, 127536, 127543, 127550, 127560,
+ 127570, 127577, 127584, 127593, 127601, 127607, 127614, 127621, 127628,
+ 127635, 127639, 127649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163846,
- 163851, 163855, 163860, 163865, 163870, 163875, 163879, 163884, 163888,
- 163892, 163896, 163900, 163905, 163910, 163914, 163919, 163924, 163929,
- 163934, 163939, 163943, 163947, 163952, 163956, 163960, 163965, 163969,
- 163973, 163977, 163982, 163986, 163991, 163996, 164001, 164006, 164011,
- 164016, 164021, 164026, 164031, 164036, 164041, 164046, 164051, 164056,
- 164061, 164066, 164071, 164076, 164080, 164084, 164088, 164092, 164096,
- 164100, 164104, 164108, 0, 0, 0, 0, 0, 164112, 164117, 164124, 164130,
- 164137, 164144, 164151, 164158, 164165, 164172, 164179, 164186, 164193,
- 164200, 164207, 164214, 164221, 164228, 164235, 164242, 164249, 164256,
- 164263, 164270, 164277, 164284, 164291, 164298, 164305, 164312, 164319,
- 164326, 164333, 164340, 164347, 164354, 164360, 164366, 164372, 164379,
- 164385, 164392, 164398, 164405, 164412, 164419, 164426, 164433, 164440,
- 164446, 164453, 164460, 164467, 164474, 164481, 164488, 164495, 164501,
- 164508, 164515, 164522, 164529, 164536, 164544, 164551, 164558, 164565,
- 164572, 164579, 164586, 164593, 164599, 164606, 164613, 164620, 164627,
- 164633, 164640, 164647, 164654, 164661, 164668, 164675, 164682, 164690,
- 164697, 164703, 164710, 164717, 164724, 164731, 164738, 164745, 164752,
- 164759, 164766, 164773, 164780, 164787, 164794, 164801, 164808, 164815,
- 164822, 164829, 164836, 164843, 164849, 164856, 164863, 164870, 164877,
- 164884, 164891, 164898, 164905, 164912, 164919, 164926, 164933, 164940,
- 164947, 164954, 164961, 164968, 164975, 164982, 164989, 164996, 165003,
- 165011, 165019, 165027, 165034, 165041, 165048, 165055, 165062, 165069,
- 165076, 165083, 165090, 165097, 165103, 165110, 165117, 165124, 165131,
- 165138, 165145, 165152, 165159, 165166, 165173, 165180, 165187, 165194,
- 165201, 165209, 165217, 165225, 165232, 165239, 165246, 165253, 165260,
- 165267, 165274, 165281, 165288, 165295, 165302, 165309, 165316, 165323,
- 165329, 165336, 165343, 165350, 165357, 165364, 165371, 165378, 165385,
- 165392, 165399, 165406, 165413, 165420, 165427, 165434, 165441, 165448,
- 165455, 165462, 165469, 165476, 165483, 0, 0, 165490, 165494, 165498,
- 165502, 165506, 165510, 165514, 165518, 165522, 165526, 165532, 165538,
- 165544, 165550, 165558, 165566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 165572, 165578, 165584, 165590, 165596, 165602, 165608, 165614,
- 165620, 165625, 165630, 165636, 165641, 165646, 165652, 165658, 165664,
- 165670, 165676, 165681, 165686, 165692, 165698, 165703, 165709, 165715,
- 165721, 165727, 165733, 165739, 165745, 165751, 165757, 165763, 165769,
- 165775, 165781, 165787, 165793, 165799, 165805, 165811, 165817, 165822,
- 165827, 165833, 165838, 165843, 165849, 165855, 165861, 165867, 165873,
- 165878, 165883, 165889, 165895, 165900, 165906, 165912, 165918, 165924,
- 165930, 165936, 165942, 165948, 165954, 165960, 165966, 165972, 165977,
- 165982, 165986, 165991, 165998, 166002, 0, 0, 0, 0, 166007, 166012,
- 166016, 166020, 166024, 166028, 166032, 166036, 166040, 166044, 0, 0, 0,
- 0, 166048, 166054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166060, 166065, 166070,
- 166075, 166080, 166085, 166090, 166095, 166100, 166105, 166111, 166117,
- 166123, 166129, 166135, 166141, 166147, 166153, 166159, 166166, 166173,
- 166180, 166188, 166196, 166204, 166212, 166220, 166228, 166234, 166240,
- 166246, 166253, 166260, 166267, 166274, 166281, 166288, 166295, 166302,
- 166309, 166316, 166323, 166330, 166337, 166344, 166351, 166357, 166363,
- 166369, 166375, 166381, 166388, 166395, 166402, 166409, 166416, 166423,
- 166430, 166437, 166444, 166449, 166457, 166465, 166473, 166479, 166486,
- 166493, 166502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 166510, 166515, 166520, 166525, 166530,
- 166535, 166540, 166545, 166550, 166555, 166561, 166567, 166573, 166579,
- 166585, 166591, 166597, 166603, 166609, 166616, 166623, 166630, 166638,
- 166646, 166654, 166662, 166670, 166678, 166684, 166690, 166696, 166703,
- 166710, 166717, 166724, 166731, 166738, 166745, 166752, 166759, 166766,
- 166773, 166780, 166787, 166794, 166801, 166806, 166813, 166820, 166827,
- 166834, 166841, 166848, 166855, 166862, 166870, 166880, 166890, 166898,
- 166907, 166915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 166923, 166927, 166931, 166935, 0, 166939, 166943,
- 166947, 166951, 166955, 166959, 166963, 166967, 166971, 166975, 166979,
- 166983, 166987, 166991, 166995, 166999, 167003, 167007, 167011, 167015,
- 167019, 167023, 167027, 167031, 167037, 167043, 167049, 0, 167055,
- 167060, 0, 167065, 0, 0, 167070, 0, 167075, 167080, 167085, 167090,
- 167095, 167100, 167105, 167110, 167115, 167120, 0, 167125, 167130,
- 167135, 167140, 0, 167145, 0, 167150, 0, 0, 0, 0, 0, 0, 167155, 0, 0, 0,
- 0, 167161, 0, 167167, 0, 167173, 0, 167179, 167185, 167191, 0, 167197,
- 167203, 0, 167209, 0, 0, 167215, 0, 167221, 0, 167227, 0, 167233, 0,
- 167241, 0, 167249, 167255, 0, 167261, 0, 0, 167267, 167273, 167279,
- 167285, 0, 167291, 167297, 167303, 167309, 167315, 167321, 167327, 0,
- 167333, 167339, 167345, 167351, 0, 167357, 167363, 167369, 167375, 0,
- 167383, 0, 167391, 167397, 167403, 167409, 167415, 167421, 167427,
- 167433, 167439, 167445, 0, 167451, 167457, 167463, 167469, 167475,
- 167481, 167487, 167493, 167499, 167505, 167511, 167517, 167523, 167529,
- 167535, 167541, 167547, 0, 0, 0, 0, 0, 167553, 167559, 167565, 0, 167571,
- 167577, 167583, 167589, 167595, 0, 167601, 167607, 167613, 167619,
- 167625, 167631, 167637, 167643, 167649, 167655, 167661, 167667, 167673,
- 167679, 167685, 167691, 167697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167703, 167713, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 167721, 167728, 167735, 167742, 167748,
- 167755, 167762, 167768, 167775, 167782, 167789, 167797, 167805, 167813,
- 167821, 167829, 167837, 167844, 167851, 167858, 167866, 167874, 167882,
- 167890, 167898, 167906, 167913, 167920, 167927, 167935, 167943, 167951,
- 167959, 167967, 167975, 167980, 167985, 167990, 167995, 168000, 168005,
- 168010, 168015, 168020, 0, 0, 0, 0, 168025, 168032, 168037, 168042,
- 168047, 168052, 168057, 168062, 168067, 168072, 168077, 168082, 168087,
- 168092, 168097, 168102, 168107, 168112, 168117, 168122, 168127, 168132,
- 168137, 168142, 168147, 168152, 168157, 168162, 168167, 168172, 168177,
- 168182, 168187, 168192, 168197, 168202, 168207, 168212, 168217, 168222,
- 168227, 168232, 168237, 168242, 168247, 168252, 168257, 168262, 168267,
- 168272, 168277, 168283, 168288, 168293, 168298, 168303, 168308, 168313,
- 168318, 168323, 168328, 168333, 168338, 168343, 168348, 168353, 168358,
- 168363, 168368, 168373, 168378, 168383, 168388, 168393, 168398, 168403,
- 168408, 168413, 168418, 168423, 168428, 168433, 168438, 168443, 168448,
- 168453, 168458, 168463, 168468, 168473, 168478, 168483, 168488, 168493,
- 168498, 168503, 168508, 168513, 168518, 168523, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 168528, 168534, 168543, 168551, 168559, 168568, 168577,
- 168586, 168595, 168604, 168613, 168622, 168631, 168640, 168649, 0, 0,
- 168658, 168667, 168675, 168683, 168692, 168701, 168710, 168719, 168728,
- 168737, 168746, 168755, 168764, 168773, 168782, 0, 168790, 168799,
- 168807, 168815, 168824, 168833, 168842, 168851, 168860, 168869, 168878,
- 168887, 168896, 168905, 168914, 0, 168921, 168930, 168938, 168946,
- 168955, 168964, 168973, 168982, 168991, 169000, 169009, 169018, 169027,
- 169036, 169045, 169052, 169058, 169064, 169070, 169076, 169082, 169088,
- 169094, 169100, 169106, 169112, 169118, 169124, 169130, 169136, 169142,
- 169148, 169154, 169160, 169166, 169172, 169178, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 169184, 169191, 169196, 169200, 169204, 169208, 169213, 169218,
- 169223, 169228, 169233, 169238, 169245, 169254, 169260, 169264, 169273,
- 169278, 169284, 169290, 169296, 169301, 169307, 169313, 169319, 169324,
- 169330, 169336, 169341, 169347, 169353, 169358, 169364, 169370, 169375,
- 169381, 169387, 169392, 169398, 169404, 169410, 169416, 169422, 169433,
- 169440, 169446, 169449, 169452, 169455, 169460, 169466, 169472, 169478,
- 169483, 169489, 169495, 169501, 169506, 169512, 169518, 169523, 169529,
- 169535, 169540, 169546, 169552, 169557, 169563, 169569, 169574, 169580,
- 169586, 169592, 169598, 169604, 169607, 169610, 169613, 169616, 169619,
- 169622, 169629, 169637, 169645, 169653, 169660, 169668, 169676, 169684,
- 169691, 169699, 169707, 169714, 169722, 169730, 169737, 169745, 169753,
- 169760, 169768, 169776, 169783, 169791, 169799, 169807, 169815, 169823,
- 169828, 169833, 169838, 169841, 169849, 169854, 169861, 169869, 169877,
- 169885, 169892, 169900, 169908, 169916, 169923, 169931, 169939, 169946,
- 169954, 169962, 169969, 169977, 169985, 169992, 170000, 170008, 170015,
- 170023, 170031, 170039, 170047, 170055, 170065, 170070, 170074, 170078,
- 170083, 170088, 170091, 170094, 170097, 170100, 170103, 170106, 170109,
- 170112, 170115, 170121, 170124, 170128, 170133, 170137, 170142, 170147,
- 170153, 170159, 170165, 170170, 170178, 170184, 170187, 170190, 170193,
- 170196, 170199, 170202, 170205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170210, 170217,
- 170225, 170233, 170241, 170248, 170256, 170264, 170272, 170279, 170287,
- 170295, 170302, 170310, 170318, 170325, 170333, 170341, 170348, 170356,
- 170364, 170371, 170379, 170387, 170395, 170403, 170411, 170416, 170420,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170423, 170429, 170435, 170441,
- 170445, 170451, 170457, 170463, 170469, 170475, 170481, 170487, 170493,
- 170499, 170505, 170511, 170517, 170523, 170529, 170535, 170541, 170547,
- 170553, 170559, 170565, 170571, 170577, 170583, 170589, 170595, 170601,
- 170607, 170613, 170619, 170625, 170631, 170637, 170643, 170649, 170655,
- 170661, 170667, 170673, 170679, 0, 0, 0, 0, 170685, 170696, 170707,
- 170718, 170729, 170740, 170751, 170762, 170773, 0, 0, 0, 0, 0, 0, 0,
- 170784, 170789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170794, 170800,
- 170806, 170812, 170818, 170824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170830,
- 170832, 170834, 170838, 170843, 170848, 170850, 170856, 170861, 170863,
- 170869, 170873, 170875, 170879, 170885, 170891, 170897, 170902, 170907,
- 170914, 170921, 170928, 170933, 170940, 170947, 170954, 170958, 170965,
- 170974, 170983, 170990, 170995, 170999, 171003, 171005, 171008, 171011,
- 171018, 171025, 171035, 171040, 171045, 171050, 171055, 171057, 171063,
- 171067, 171069, 171071, 171073, 171075, 171079, 171083, 171087, 171089,
- 171093, 171095, 171099, 171101, 171103, 171105, 171107, 171112, 171117,
- 171119, 171125, 171129, 171133, 171141, 171143, 171145, 171147, 171149,
- 171151, 171153, 171155, 171157, 171159, 171161, 171165, 171169, 171171,
- 171173, 171175, 171177, 171179, 171184, 171190, 171194, 171198, 171202,
- 171206, 171211, 171215, 171217, 171219, 171223, 171229, 171231, 171233,
- 171235, 171239, 171248, 171254, 171258, 171262, 171264, 171266, 171269,
- 171271, 171273, 171275, 171279, 171281, 171285, 171290, 171292, 171297,
- 171303, 171310, 171314, 171318, 171322, 171326, 171332, 171336, 171344,
- 171351, 171353, 171355, 171359, 171363, 171365, 171369, 171373, 171375,
- 171379, 171381, 171385, 171389, 171393, 171397, 171401, 171405, 171409,
- 171413, 171419, 171423, 171427, 171438, 171443, 171447, 171451, 171457,
- 171461, 171465, 171469, 171476, 171483, 171487, 171491, 171495, 171499,
- 171503, 171510, 171512, 171516, 171518, 171520, 171524, 171528, 171532,
- 171534, 171538, 171542, 171546, 171550, 171554, 171556, 171560, 171562,
- 171568, 171571, 171576, 171578, 171580, 171583, 171585, 171587, 171590,
- 171597, 171604, 171611, 171616, 171620, 171622, 171624, 171626, 171630,
- 171632, 171636, 171640, 171644, 171646, 171650, 171652, 171656, 171660,
- 171667, 171669, 171678, 171687, 171696, 171702, 171704, 171709, 171713,
- 171717, 171719, 171725, 171729, 171731, 171735, 171739, 171741, 171745,
- 171750, 171754, 171760, 171766, 171768, 171770, 171776, 171778, 171782,
- 171786, 171788, 171792, 171794, 171798, 171802, 171806, 171809, 171812,
- 171817, 171822, 171824, 171827, 171829, 171836, 171840, 171842, 171849,
- 171856, 171863, 171870, 171877, 171879, 171881, 171883, 171887, 171889,
- 171891, 171893, 171895, 171897, 171899, 171901, 171903, 171905, 171907,
- 171909, 171911, 171913, 171915, 171917, 171919, 171921, 171923, 171925,
- 171927, 171929, 171931, 171935, 171937, 171939, 171941, 171945, 171947,
- 171951, 171953, 171955, 171959, 171963, 171969, 171971, 171973, 171975,
- 171977, 171981, 171985, 171987, 171991, 171995, 171999, 172003, 172007,
- 172011, 172015, 172019, 172023, 172027, 172031, 172035, 172039, 172043,
- 172047, 172051, 172055, 172059, 172061, 172063, 172065, 172067, 172069,
- 172071, 172073, 172081, 172089, 172097, 172105, 172110, 172115, 172120,
- 172124, 172128, 172133, 172138, 172140, 172144, 172146, 172148, 172150,
- 172152, 172154, 172156, 172158, 172162, 172164, 172166, 172168, 172172,
- 172176, 172180, 172184, 172188, 172190, 172196, 172202, 172204, 172206,
- 172208, 172210, 172212, 172221, 172228, 172235, 172239, 172246, 172251,
- 172258, 172267, 172272, 172276, 172280, 172282, 172286, 172288, 172292,
- 172296, 172298, 172302, 172306, 172310, 172312, 172314, 172320, 172322,
- 172324, 172326, 172330, 172334, 172336, 172340, 172342, 172344, 172347,
- 172351, 172353, 172357, 172359, 172361, 172366, 172368, 172372, 172376,
- 172379, 172383, 172387, 172391, 172395, 172399, 172403, 172407, 172412,
- 172416, 172420, 172429, 172434, 172437, 172439, 172442, 172445, 172450,
- 172452, 172455, 172460, 172464, 172467, 172471, 172475, 172478, 172483,
- 172487, 172491, 172495, 172499, 172505, 172511, 172517, 172523, 172528,
- 172539, 172541, 172545, 172547, 172549, 172553, 172557, 172559, 172563,
- 172569, 172574, 172580, 172582, 172586, 172590, 172597, 172604, 172608,
- 172610, 172612, 172616, 172618, 172622, 172626, 172630, 172632, 172634,
- 172641, 172645, 172649, 172653, 172657, 172661, 172663, 172667, 172669,
- 172671, 172675, 172677, 172681, 172685, 172691, 172695, 172699, 172703,
- 172705, 172708, 172712, 172719, 172728, 172737, 172746, 172755, 172757,
- 172761, 172763, 172767, 172778, 172782, 172788, 172794, 172799, 172801,
- 172806, 172810, 172812, 172814, 172816, 172820, 172824, 172828, 172833,
- 172844, 172860, 172873, 172886, 172890, 172894, 172900, 172902, 172910,
- 172918, 172920, 172924, 172930, 172936, 172943, 172950, 172952, 172954,
- 172958, 172960, 172966, 172968, 172971, 172975, 172981, 172987, 172998,
- 173004, 173011, 173019, 173023, 173031, 173039, 173045, 173051, 173058,
- 173060, 173064, 173066, 173068, 173073, 173075, 173077, 173079, 173081,
- 173085, 173095, 173101, 173105, 173109, 173113, 173119, 173125, 173131,
- 173137, 173142, 173147, 173153, 173159, 173166, 173173, 173180, 173187,
- 173192, 173200, 173204, 173213, 173222, 173228, 173232, 173236, 173240,
- 173243, 173248, 173250, 173252, 173254, 173261, 173266, 173273, 173280,
- 173287, 173295, 173303, 173311, 173319, 173327, 173335, 173343, 173351,
- 173359, 173365, 173371, 173377, 173383, 173389, 173395, 173401, 173407,
- 173413, 173419, 173425, 173431, 173434, 173443, 173452, 173454, 173461,
- 173465, 173467, 173469, 173473, 173479, 173483, 173485, 173495, 173501,
- 173505, 173507, 173511, 173513, 173517, 173524, 173531, 173538, 173543,
- 173548, 173557, 173563, 173568, 173572, 173577, 173581, 173588, 173592,
- 173595, 173599, 173605, 173611, 173615, 173619, 173624, 173630, 173639,
- 173650, 173656, 173662, 173668, 173678, 173693, 173702, 173710, 173718,
- 173726, 173734, 173742, 173750, 173758, 173766, 173774, 173782, 173790,
- 173798, 173801, 173805, 173810, 173815, 173817, 173821, 173830, 173839,
- 173847, 173851, 173855, 173860, 173865, 173870, 173872, 173877, 173881,
- 173883, 173887, 173891, 173897, 173902, 173910, 173915, 173920, 173925,
- 173932, 173935, 173937, 173941, 173946, 173952, 173956, 173960, 173966,
- 173972, 173974, 173978, 173982, 173986, 173990, 173994, 173996, 173998,
- 174000, 174002, 174008, 174014, 174018, 174020, 174022, 174024, 174033,
- 174037, 174044, 174051, 174053, 174056, 174060, 174066, 174070, 174074,
- 174076, 174084, 174088, 174092, 174097, 174102, 174107, 174112, 174117,
- 174122, 174127, 174132, 174137, 174142, 174146, 174152, 174156, 174162,
- 174167, 174174, 174180, 174188, 174192, 174199, 174203, 174207, 174211,
- 174216, 174221, 174223, 174227, 174236, 174244, 174253, 174267, 174281,
- 174295, 174302, 174309, 174313, 174322, 174330, 174334, 174343, 174350,
- 174354, 174358, 174362, 174366, 174373, 174377, 174381, 174385, 174389,
- 174396, 174405, 174414, 174421, 174433, 174445, 174449, 174453, 174457,
- 174461, 174465, 174469, 174477, 174485, 174494, 174498, 174502, 174506,
- 174510, 174514, 174518, 174524, 174531, 174535, 174547, 174555, 174559,
- 174563, 174567, 174571, 174577, 174584, 174595, 174605, 174616, 174627,
- 174636, 174647, 174653, 174659, 174665, 174671, 174677, 174681, 174688,
- 174697, 174704, 174710, 174714, 174718, 174722, 174731, 174743, 174747,
- 174754, 174761, 174768, 174776, 174783, 174791, 174799, 174808, 174816,
- 174825, 174834, 174844, 174853, 174863, 174873, 174884, 174894, 174905,
- 174912, 174920, 174927, 174935, 174943, 174952, 174960, 174969, 174976,
- 174988, 174995, 175007, 175010, 175014, 175017, 175021, 175027, 175034,
- 175041, 175049, 175054, 175060, 175071, 175081, 175092, 175097, 175102,
- 175108, 175113, 175120, 175124, 175130, 175132, 175134, 175138, 175142,
- 175146, 175155, 175157, 175159, 175162, 175164, 175166, 175170, 175172,
- 175176, 175178, 175182, 175184, 175186, 175190, 175194, 175200, 175202,
- 175206, 175208, 175212, 175216, 175220, 175224, 175226, 175228, 175232,
- 175236, 175240, 175244, 175246, 175248, 175250, 175256, 175261, 175264,
- 175272, 175280, 175282, 175287, 175290, 175295, 175306, 175313, 175318,
- 175323, 175325, 175329, 175331, 175335, 175337, 175341, 175345, 175348,
- 175351, 175353, 175356, 175358, 175362, 175364, 175366, 175368, 175372,
- 175374, 175378, 175381, 175388, 175391, 175396, 175399, 175402, 175407,
- 175411, 175415, 175419, 175421, 175426, 175429, 175433, 175435, 175437,
- 175441, 175443, 0, 0, 0, 0, 0, 0, 0, 0, 175445, 175450, 175452, 175456,
- 175458, 175462, 175466, 175472, 175476, 175481, 175484, 175488, 175492,
- 0, 0, 0, 175496, 175498, 175504, 175508, 175512, 175514, 175518, 175520,
- 175522, 175526, 175528, 175532, 175536, 0, 0, 0, 175540, 175545, 175550,
- 175555, 175560, 175565, 175570, 175577, 175584, 175591, 175598, 175603,
- 175608, 175613, 175618, 175625, 175631, 175638, 175645, 175652, 175657,
- 175662, 175667, 175672, 175677, 175684, 175691, 175696, 175701, 175708,
- 175715, 175723, 175731, 175738, 175745, 175753, 175761, 175769, 175776,
- 175786, 175797, 175802, 175809, 175816, 175823, 175831, 175839, 175850,
- 175858, 175866, 175874, 175879, 175884, 175889, 175894, 175899, 175904,
- 175909, 175914, 175919, 175924, 175929, 175934, 175941, 175946, 175951,
- 175958, 175963, 175968, 175973, 175978, 175983, 175988, 175993, 175998,
- 176003, 176008, 176013, 176018, 176025, 176033, 176038, 176043, 176050,
- 176055, 176060, 176065, 176072, 176077, 176084, 176089, 176096, 176101,
- 176110, 176119, 176124, 176129, 176134, 176139, 176144, 176149, 176154,
- 176159, 176164, 176169, 176174, 176179, 176184, 176192, 176200, 176205,
- 176210, 176215, 176220, 176225, 176231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 176237, 176245, 176253, 176261, 176269, 176275, 176281, 176285,
- 176289, 176295, 176301, 176310, 176314, 176319, 176325, 176329, 176334,
- 176338, 176342, 176348, 176354, 176364, 176373, 176376, 176381, 176387,
- 176393, 176404, 176414, 176418, 176423, 176429, 176435, 176444, 176449,
- 176453, 176458, 176462, 176468, 176474, 176480, 176484, 176487, 176491,
- 176494, 176497, 176502, 176507, 176514, 176522, 176529, 176536, 176545,
- 176554, 176561, 176569, 176576, 176583, 176592, 176601, 176608, 176616,
- 176623, 176630, 176639, 176646, 176654, 176660, 176669, 176677, 176686,
- 176693, 176703, 176714, 176722, 176730, 176739, 176747, 176755, 176764,
- 176772, 176782, 176791, 176799, 176807, 176816, 176819, 176824, 176827,
- 0, 0, 0, 0, 0, 0, 0, 176832, 176838, 176844, 176850, 176856, 176862,
- 176868, 176874, 176880, 176886, 176892, 176898, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176904, 176912, 176921, 176929,
- 176938, 176947, 176957, 176966, 176976, 176985, 176995, 177004, 0, 0, 0,
- 0, 177014, 177022, 177031, 177039, 177048, 177055, 177063, 177070,
- 177078, 177086, 177095, 177103, 177112, 177122, 177133, 177143, 177154,
- 177163, 177173, 177182, 177192, 177201, 177211, 177220, 177230, 177238,
- 177247, 177255, 177264, 177272, 177281, 177289, 177298, 177308, 177319,
- 177329, 177340, 177344, 177349, 177353, 177358, 177361, 177365, 177368,
- 177372, 177376, 177381, 177385, 177390, 177395, 177401, 177406, 177412,
- 177415, 177419, 177422, 0, 0, 0, 0, 0, 0, 0, 0, 177426, 177429, 177433,
- 177436, 177440, 177445, 177450, 177456, 177462, 177466, 0, 0, 0, 0, 0, 0,
- 177470, 177476, 177483, 177489, 177496, 177504, 177512, 177521, 177530,
- 177535, 177541, 177546, 177552, 177559, 177566, 177574, 177582, 177589,
- 177597, 177604, 177612, 177621, 177630, 177640, 177650, 177656, 177663,
- 177669, 177676, 177684, 177692, 177701, 177710, 177718, 177727, 177735,
- 177744, 177754, 177764, 177775, 0, 0, 0, 0, 0, 0, 0, 0, 177786, 177791,
- 177797, 177802, 177808, 177817, 177827, 177836, 177846, 177853, 177861,
- 177868, 177876, 177883, 177892, 177901, 177910, 177915, 177922, 177929,
- 177936, 177941, 177946, 177951, 177956, 177963, 177970, 177977, 177984,
- 177991, 0, 0, 178000, 178010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178022, 178032, 178041,
- 178046, 178055, 178063, 178071, 178078, 178082, 178087, 178094, 178103,
- 178114, 178118, 178121, 178125, 178129, 178133, 178137, 178142, 178146,
- 178150, 178155, 178159, 178163, 178169, 178175, 178182, 178186, 178190,
- 178192, 178202, 178211, 178218, 178222, 178226, 178236, 178240, 178244,
- 178248, 178252, 178260, 178269, 178282, 178293, 178304, 178320, 178329,
- 178338, 178342, 178344, 178349, 178351, 178353, 178359, 178363, 178365,
- 178371, 178373, 178375, 178379, 178381, 178385, 178387, 178391, 178395,
- 178400, 178404, 178408, 178410, 178414, 178416, 178422, 178428, 178434,
- 178438, 178444, 178448, 178455, 178457, 178461, 178463, 178465, 178467,
- 178469, 178471, 178473, 178477, 178481, 178488, 178492, 178494, 178499,
- 178501, 178503, 178505, 178507, 178511, 178515, 178517, 178522, 178527,
- 178529, 178531, 178533, 178535, 178540, 178542, 178546, 178550, 178552,
- 178556, 178558, 178571, 178575, 178582, 178594, 178606, 178610, 178614,
- 178616, 0, 178620, 178627, 178629, 178633, 178635, 178639, 178643,
- 178645, 178649, 178651, 178653, 178657, 178659, 178661, 178663, 178665,
- 178667, 178671, 178673, 178675, 178677, 178679, 178681, 178683, 178685,
- 178689, 178693, 178695, 178697, 178699, 178701, 178703, 178705, 178707,
- 178709, 178711, 178713, 178715, 178717, 178719, 178721, 178723, 178725,
- 178727, 178729, 178731, 178733, 178735, 178737, 178739, 178741, 178743,
- 178745, 178749, 178753, 178761, 178769, 178775, 178782, 178784, 178786,
- 178788, 178790, 178792, 178794, 178798, 178805, 178809, 178813, 178817,
- 178821, 178825, 178827, 178831, 178835, 178837, 178839, 178841, 178843,
- 178845, 178849, 178853, 0, 178857, 178861, 178865, 178869, 178874,
- 178876, 178878, 178882, 178886, 178891, 178899, 178903, 178911, 178913,
- 178915, 178917, 178919, 178921, 178923, 178925, 178927, 178931, 178935,
- 178937, 178939, 178941, 178943, 178949, 178951, 178957, 178961, 178965,
- 178970, 178972, 178974, 178978, 178980, 178982, 178984, 178986, 178990,
- 178995, 179000, 179004, 179008, 179010, 179012, 179017, 179022, 179024,
- 179026, 179030, 179036, 179042, 179048, 179054, 179060, 179066, 179077,
- 179088, 179100, 179111, 179122, 179133, 179144, 179155, 179166, 179177,
- 179188, 179199, 179210, 179221, 179232, 179244, 179256, 179268, 179280,
- 179292, 179304, 179318, 179332, 179347, 179353, 179359, 179365, 179371,
- 179377, 179383, 179389, 179395, 179401, 179407, 179413, 179419, 179426,
- 179433, 179440, 179447, 179454, 179461, 179475, 179489, 179504, 179518,
- 179532, 179546, 179560, 179574, 179588, 179602, 179616, 179630, 179644,
- 179658, 179672, 179687, 179702, 179717, 179732, 179747, 179762, 179776,
- 179790, 179805, 179810, 179815, 179821, 179832, 179843, 179855, 179860,
- 179865, 179870, 179875, 179880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 179885, 179891, 179897, 179903, 179909, 179915, 179921, 179927, 179932,
- 179937, 179942, 179947, 179952, 179957, 0, 0, 179962, 179966, 179970,
- 179972, 179974, 0, 0, 0, 179978, 179983, 179987, 0, 0, 0, 0, 0, 179989,
- 179991, 179993, 179995, 179997, 180001, 180003, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 180007, 180011, 180013, 180015, 180017, 180021, 180023, 180027,
- 180029, 180032, 180034, 180038, 180040, 180042, 180043, 180045, 180047,
- 180049, 180053, 180055, 180057, 180061, 180063, 180065, 180067, 0, 0, 0,
- 0, 0, 0, 0, 180069, 180071, 180073, 180075, 180077, 180081, 180083, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 180085, 180089, 180091, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 180095, 180097, 180101, 180103, 180105, 180107, 180109, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180111, 180114, 180117,
- 180120, 180123, 180126, 180129, 180132, 180135, 180138, 180141, 180144,
- 180147, 180150, 180153, 180156, 180159, 180162, 180165, 180168, 180171,
- 180174, 180177, 180180, 180183, 180186, 180189, 180192, 180195, 180198,
- 180201, 180204, 180207, 180210, 180213, 180216, 180219, 180222, 180225,
- 180228, 180231, 180234, 180237, 180240, 180243, 180246, 180249, 180252,
- 180255, 180258, 180261, 180264, 180267, 180270, 180273, 180276, 180279,
- 180282, 180285, 180288, 180291, 180303, 180315, 180327, 180339, 180350,
- 180362, 180374, 180386, 180398, 180409, 180422, 180435, 180447, 180460,
- 180472, 180484, 180497, 180509, 180522, 180534, 180546, 180559, 180571,
- 180583, 180595, 180607, 180618, 180630, 180642, 180654, 180666, 180677,
- 180690, 180703, 180715, 180728, 180740, 180752, 180765, 180777, 180790,
- 180802, 180814, 180827, 180839, 180851, 180863, 180875, 180883, 180891,
- 180899, 180907, 180913, 180919, 180925, 180931, 180937, 180943, 180950,
- 180957, 180964, 180971, 180978, 180985, 180993, 181001, 181009, 181017,
- 181025, 181032, 181038, 181044, 181051, 181057, 181064, 181070, 181076,
- 181083, 181089, 181096, 181102, 181108, 181114, 181120, 181126, 181138,
- 0, 181151, 181164, 181170, 181178, 181183, 181190, 181197, 181205,
- 181213, 181221, 181229, 181237, 181245, 181257, 181269, 181280, 181291,
- 181306, 181321, 181336, 181351, 181369, 181387, 181406, 181425, 181443,
- 181461, 181468, 181476, 181480, 181485, 181491, 181497, 181507, 181518,
- 181529, 181539, 181549, 181553, 181557, 181562, 181568, 181574, 181584,
- 181590, 181599, 181608, 181617, 181626, 181632, 181636, 181645, 181653,
- 181661, 181668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181673, 181678,
- 181682, 181686, 181690, 181694, 181698, 181702, 181706, 181710, 0, 0, 0,
- 0, 0, 0, 181714, 181718, 181722, 181726, 181730, 181734, 181738, 181742,
- 181746, 181750, 181754, 181758, 181762, 181766, 181770, 181774, 181778,
- 181782, 181786, 181790, 181794, 181798, 181802, 181806, 181810, 181814,
- 181818, 181822, 181826, 181830, 181834, 181838, 181842, 181846, 181850,
- 181854, 181858, 181862, 181866, 181870, 181874, 181878, 181882, 181886,
- 181890, 181894, 181898, 181902, 181906, 181910, 181914, 181918, 181922,
- 181926, 181930, 181934, 181938, 181942, 181946, 181950, 181954, 181958,
- 181962, 181966, 181970, 181974, 181978, 181982, 181986, 181990, 181994,
- 181998, 182002, 182006, 182010, 182014, 182018, 182022, 182026, 182030,
- 182034, 182038, 182042, 182046, 182050, 182054, 182058, 182062, 182066,
- 182070, 182074, 182078, 182082, 182086, 182090, 182094, 182098, 182102,
- 182106, 182110, 182114, 182118, 182122, 182126, 182130, 182134, 182138,
- 182142, 182146, 182150, 182154, 182158, 182162, 182166, 182170, 182174,
- 182178, 182182, 182186, 182190, 182194, 182198, 182202, 182206, 182210,
- 182214, 182218, 182222, 182226, 182230, 182234, 182238, 182242, 182246,
- 182250, 182254, 182258, 182262, 182266, 182270, 182274, 182278, 182282,
- 182286, 182290, 182294, 182298, 182302, 182306, 182310, 182314, 182318,
- 182322, 182326, 182330, 182334, 182338, 182342, 182346, 182350, 182354,
- 182358, 182362, 182366, 182370, 182374, 182378, 182382, 182386, 182390,
- 182394, 182398, 182402, 182406, 182410, 182414, 182418, 182422, 182426,
- 182430, 182434, 182438, 182442, 182446, 182450, 182454, 182458, 182462,
- 182466, 182470, 182474, 182478, 182482, 182486, 182490, 182494, 182498,
- 182502, 182506, 182510, 182514, 182518, 182522, 182526, 182530, 182534,
- 182538, 182542, 182546, 182550, 182554, 182558, 182562, 182566, 182570,
- 182574, 182578, 182582, 182586, 182590, 182594, 182598, 182602, 182606,
- 182610, 182614, 182618, 182622, 182626, 182630, 182634, 182638, 182642,
- 182646, 182650, 182654, 182658, 182662, 182666, 182670, 182674, 182678,
- 182682, 182686, 182690, 182694, 182698, 182702, 182706, 182710, 182714,
- 182718, 182722, 182726, 182730, 182734, 182738, 182742, 182746, 182750,
- 182754, 182758, 182762, 182766, 182770, 182774, 182778, 182782, 182786,
- 182790, 182794, 182798, 182802, 182806, 182810, 182814, 182818, 182822,
- 182826, 182830, 182834, 182838, 182842, 182846, 182850, 182854, 182858,
- 182862, 182866, 182870, 182874, 182878, 182882, 182886, 182890, 182894,
- 182898, 182902, 182906, 182910, 182914, 182918, 182922, 182926, 182930,
- 182934, 182938, 182942, 182946, 182950, 182954, 182958, 182962, 182966,
- 182970, 182974, 182978, 182982, 182986, 182990, 182994, 182998, 183002,
- 183006, 183010, 183014, 183018, 183022, 183026, 183030, 183034, 183038,
- 183042, 183046, 183050, 183054, 183058, 183062, 183066, 183070, 183074,
- 183078, 183082, 183086, 183090, 183094, 183098, 183102, 183106, 183110,
- 183114, 183118, 183122, 183126, 183130, 183134, 183138, 183142, 183146,
- 183150, 183154, 183158, 183162, 183166, 183170, 183174, 183178, 183182,
- 183186, 183190, 183194, 183198, 183202, 183206, 183210, 183214, 183218,
- 183222, 183226, 183230, 183234, 183238, 183242, 183246, 183250, 183254,
- 183258, 183262, 183266, 183270, 183274, 183278, 183282, 183286, 183290,
- 183294, 183298, 183302, 183306, 183310, 183314, 183318, 183322, 183326,
- 183330, 183334, 183338, 183342, 183346, 183350, 183354, 183358, 183362,
- 183366, 183370, 183374, 183378, 183382, 183386, 183390, 183394, 183398,
- 183402, 183406, 183410, 183414, 183418, 183422, 183426, 183430, 183434,
- 183438, 183442, 183446, 183450, 183454, 183458, 183462, 183466, 183470,
- 183474, 183478, 183482, 183486, 183490, 183494, 183498, 183502, 183506,
- 183510, 183514, 183518, 183522, 183526, 183530, 183534, 183538, 183542,
- 183546, 183550, 183554, 183558, 183562, 183566, 183570, 183574, 183578,
- 183582, 183586, 183590, 183594, 183598, 183602, 183606, 183610, 183614,
- 183618, 183622, 183626, 183630, 183634, 183638, 183642, 183646, 183650,
- 183654, 183658, 183662, 183666, 183670, 183674, 183678, 183682, 183686,
- 183690, 183694, 183698, 183702, 183706, 183710, 183714, 183718, 183722,
- 183726, 183730, 183734, 183738, 183742, 183746, 183750, 183754, 183758,
- 183762, 183766, 183770, 183774, 183778, 183782, 183786, 183790, 183794,
- 183798, 183802, 183806, 183810, 183814, 183818, 183822, 183826, 183830,
- 183834, 183838, 183842, 183846, 183850, 183854, 183858, 183862, 183866,
- 183870, 183874, 183878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183882, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 183886, 183889, 183893, 183897, 183900, 183904, 183908, 183911,
- 183914, 183918, 183922, 183925, 183928, 183931, 183934, 183939, 183942,
- 183946, 183949, 183952, 183955, 183958, 183961, 183964, 183967, 183970,
- 183973, 183976, 183979, 183983, 183987, 183991, 183995, 184000, 184005,
- 184011, 184017, 184023, 184028, 184034, 184040, 184046, 184051, 184057,
- 184063, 184068, 184074, 184080, 184085, 184091, 184097, 184102, 184108,
- 184114, 184119, 184125, 184131, 184137, 184143, 184149, 184153, 184158,
- 184162, 184167, 184171, 184176, 184181, 184187, 184193, 184199, 184204,
- 184210, 184216, 184222, 184227, 184233, 184239, 184244, 184250, 184256,
- 184261, 184267, 184273, 184278, 184284, 184290, 184295, 184301, 184307,
- 184313, 184319, 184325, 184330, 184334, 184339, 184342, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 184346, 184349, 184352, 184355, 184358, 184361, 184364, 184367,
- 184370, 184373, 184376, 184379, 184382, 184385, 184388, 184391, 184394,
- 184397, 184400, 184403, 184406, 184409, 184412, 184415, 184418, 184421,
- 184424, 184427, 184430, 184433, 184436, 184439, 184442, 184445, 184448,
- 184451, 184454, 184457, 184460, 184463, 184466, 184469, 184472, 184475,
- 184478, 184481, 184484, 184487, 184490, 184493, 184496, 184499, 184502,
- 184505, 184508, 184511, 184514, 184517, 184520, 184523, 184526, 184529,
- 184532, 184535, 184538, 184541, 184544, 184547, 184550, 184553, 184556,
- 184559, 184562, 184565, 184568, 184571, 184574, 184577, 184580, 184583,
- 184586, 184589, 184592, 184595, 184598, 184601, 184604, 184607, 184610,
- 184613, 184616, 184619, 184622, 184625, 184628, 184631, 184634, 184637,
- 184640, 184643, 184646, 184649, 184652, 184655, 184658, 184661, 184664,
- 184667, 184670, 184673, 184676, 184679, 184682, 184685, 184688, 184691,
- 184694, 184697, 184700, 184703, 184706, 184709, 184712, 184715, 184718,
- 184721, 184724, 184727, 184730, 184733, 184736, 184739, 184742, 184745,
- 184748, 184751, 184754, 184757, 184760, 184763, 184766, 184769, 184772,
- 184775, 184778, 184781, 184784, 184787, 184790, 184793, 184796, 184799,
- 184802, 184805, 184808, 184811, 184814, 184817, 184820, 184823, 184826,
- 184829, 184832, 184835, 184838, 184841, 184844, 184847, 184850, 184853,
- 184856, 184859, 184862, 184865, 184868, 184871, 184874, 184877, 184880,
- 184883, 184886, 184889, 184892, 184895, 184898, 184901, 184904, 184907,
- 184910, 184913, 184916, 184919, 184922, 184925, 184928, 184931, 184934,
- 184937, 184940, 184943, 184946, 184949, 184952, 184955, 184958, 184961,
- 184964, 184967, 184970, 184973, 184976, 184979, 184982, 184985, 184988,
- 184991, 184994, 184997, 185000, 185003, 185006, 185009, 185012, 185015,
- 185018, 185021, 185024, 185027, 185030, 185033, 185036, 185039, 185042,
- 185045, 185048, 185051, 185054, 185057, 185060, 185063, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185066, 185068, 185070, 185075, 185077,
- 185082, 185084, 185089, 185091, 185096, 185098, 185100, 185102, 185104,
- 185106, 185108, 185110, 185112, 185114, 185118, 185122, 185124, 185126,
- 185130, 185134, 185139, 185141, 185143, 185145, 185149, 185152, 185154,
- 185158, 185160, 185164, 185166, 185170, 185173, 185175, 185179, 185183,
- 185185, 185191, 185193, 185198, 185200, 185205, 185207, 185212, 185214,
- 185219, 185221, 185225, 185227, 185231, 185233, 185240, 185242, 185244,
- 185246, 185251, 185253, 185255, 185257, 185259, 185261, 185266, 185270,
- 185272, 185277, 185281, 185283, 185288, 185292, 185294, 185299, 185303,
- 185305, 185307, 185309, 185311, 185315, 185317, 185322, 185324, 185330,
- 185332, 185338, 185340, 185342, 185344, 185348, 185350, 185357, 185359,
- 185366, 185368, 185374, 185380, 185382, 185389, 185396, 185398, 185404,
- 185409, 185411, 185417, 185423, 185425, 185431, 185437, 185439, 185445,
- 185449, 185451, 185456, 185458, 185460, 185465, 185467, 185469, 185475,
- 185477, 185482, 185486, 185488, 185493, 185497, 185499, 185505, 185507,
- 185511, 185513, 185517, 185519, 185526, 185533, 185535, 185542, 185549,
- 185551, 185556, 185558, 185566, 185568, 185574, 185576, 185582, 185584,
- 185588, 185590, 185596, 185598, 185602, 185604, 185610, 185612, 185614,
- 185616, 185621, 185626, 185628, 185630, 185640, 185645, 185652, 185659,
- 185664, 185669, 185681, 185685, 185689, 185693, 185697, 185699, 185701,
- 185703, 185705, 185707, 185709, 185711, 185713, 185715, 185717, 185719,
- 185721, 185723, 185725, 185727, 185729, 185731, 185733, 185735, 185737,
- 185739, 185745, 185752, 185757, 185765, 185773, 185778, 185780, 185782,
- 185784, 185786, 185788, 185790, 185792, 185794, 185796, 185798, 185800,
- 185802, 185804, 185806, 185808, 185810, 185821, 185826, 185828, 185830,
- 185836, 185848, 185854, 185860, 185866, 185872, 185876, 185887, 185889,
- 185891, 185893, 185895, 185897, 185899, 185901, 185903, 185905, 185907,
- 185909, 185911, 185913, 185915, 185917, 185919, 185921, 185923, 185925,
- 185927, 185929, 185931, 185933, 185935, 185937, 185939, 185941, 185943,
- 185945, 185947, 185949, 185951, 185953, 185955, 185957, 185959, 185961,
- 185963, 185965, 185967, 185969, 185971, 185973, 185975, 185977, 185979,
- 185981, 185983, 185985, 185987, 185989, 185991, 185993, 185995, 185997,
- 185999, 186001, 186003, 186005, 186007, 186009, 186011, 186013, 186015,
- 186017, 186019, 186021, 186023, 186025, 186027, 186029, 186031, 186033,
- 186035, 186037, 186039, 186041, 186043, 186045, 186047, 186049, 186051,
- 186053, 186055, 186057, 186059, 186061, 186063, 186065, 186067, 186069,
- 186071, 186073, 186075, 186077, 186079, 186081, 186083, 186085, 186087,
- 186089, 186091, 186093, 186095, 186097, 186099, 186101, 186103, 186105,
- 186107, 186109, 186111, 186113, 186115, 186117, 186119, 186121, 186123,
- 186125, 186127, 186129, 186131, 186133, 186135, 186137, 186139, 186141,
- 186143, 186145, 186147, 186149, 186151, 186153, 186155, 186157, 186159,
- 186161, 186163, 186165, 186167, 186169, 186171, 186173, 186175, 186177,
- 186179, 186181, 186183, 186185, 186187, 186189, 186191, 186193, 186195,
- 186197, 186199, 186201, 186203, 186205, 186207, 186209, 186211, 186213,
- 186215, 186217, 186219, 186221, 186223, 186225, 186227, 186229, 186231,
- 186233, 186235, 186237, 186239, 186241, 186243, 186245, 186247, 186249,
- 186251, 186253, 186255, 186257, 186259, 186261, 186263, 186265, 186267,
- 186269, 186271, 186273, 186275, 186277, 186279, 186281, 186283, 186285,
- 186287, 186289, 186291, 186293, 186295, 186297, 186299, 186301, 186303,
- 186305, 186307, 186309, 186311, 186313, 186315, 186317, 186319, 186321,
- 186323, 186325, 186327, 186329, 186331, 186333, 186335, 186337, 186339,
- 186341, 186343, 186345, 186347, 186349, 186351, 186353, 186355, 186357,
- 186359, 186361, 186363, 186365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 186367, 186371, 186375, 186380, 186384, 186388, 186392,
- 186396, 186400, 186404, 186408, 186412, 186416, 186426, 186436, 186447,
- 186458, 186468, 186478, 186488, 186498, 186512, 186526, 186540, 186554,
- 186563, 186572, 186585, 186598, 186611, 186624, 186634, 186644, 186655,
- 186666, 186677, 186688, 186699, 186708, 186718, 186728, 186738, 186748,
- 186759, 186770, 186781, 186792, 186803, 186814, 186825, 186836, 186847,
- 186858, 186869, 186883, 186894, 186908, 186916, 186927, 186935, 186943,
- 186951, 186959, 186967, 186975, 186985, 186995, 187005, 187015, 187025,
- 187035, 187045, 187055, 187063, 187072, 187081, 187090, 187099, 187107,
- 187115, 187125, 187135, 187146, 187157, 187169, 187180, 187190, 187201,
- 187211, 187222, 187230, 187235, 187239, 187243, 187247, 187251, 187255,
- 187259, 187263, 187267, 187271, 187275, 187279, 187282, 187285, 187289,
- 187293, 187297, 187301, 187305, 187309, 187313, 187317, 187321, 187325,
- 187329, 187333, 187337, 187341, 187345, 187349, 187353, 187357, 187361,
- 187365, 187369, 187373, 187377, 187381, 187385, 187389, 187393, 187397,
- 187401, 187405, 187409, 187413, 187417, 187421, 187425, 187429, 187433,
- 187437, 187441, 187445, 187449, 187453, 187457, 187461, 187465, 187469,
- 187473, 187477, 187481, 187485, 187489, 187493, 187497, 187501, 187505,
- 187509, 187513, 187517, 187521, 187525, 187529, 187533, 187537, 187541,
- 187545, 187549, 187553, 187557, 187561, 187565, 187569, 187573, 187577,
- 187581, 187585, 187589, 187593, 187597, 187601, 187605, 187609, 187613,
- 187617, 187621, 187625, 187628, 187632, 187636, 187640, 187644, 187648,
- 187652, 187656, 187660, 187664, 187668, 187672, 187676, 187680, 187684,
- 187688, 187692, 187696, 187700, 187704, 187708, 187712, 187716, 187720,
- 187724, 187728, 187732, 187736, 187740, 187744, 187748, 187752, 187756,
- 187760, 187764, 187768, 187772, 187776, 187780, 187784, 187788, 187792,
- 187796, 187800, 187804, 187808, 187812, 187816, 187820, 187824, 187828,
- 187832, 187836, 187840, 187844, 187848, 187852, 187856, 187860, 187864,
- 187868, 187872, 187876, 187880, 187884, 187888, 187892, 187896, 187900,
- 187904, 187908, 187912, 187916, 187920, 187924, 187928, 187932, 187936,
- 187940, 187944, 187948, 187952, 187956, 187960, 187964, 187968, 187972,
- 187976, 187980, 187984, 187988, 187992, 187996, 188000, 188004, 188008,
- 188012, 188016, 188020, 188024, 188028, 188032, 188036, 188040, 188044,
- 188048, 188052, 188056, 188060, 188064, 188068, 188072, 188076, 188080,
- 188084, 188088, 188092, 188096, 188100, 188104, 188108, 188112, 188116,
- 188120, 188124, 188128, 188132, 188136, 188140, 188144, 188148, 188152,
- 188156, 188160, 188164, 188168, 188172, 188176, 188180, 188184, 188188,
- 188192, 188196, 188200, 188204, 188208, 188212, 188216, 188220, 188224,
- 188228, 188232, 188236, 188240, 188244, 188248, 188252, 188256, 188260,
- 188264, 188268, 188272, 188276, 188280, 188284, 188288, 188292, 188296,
- 188300, 188304, 188308, 188312, 188316, 188320, 188324, 188328, 188332,
- 188336, 188340, 188344, 188348, 188352, 188356, 188360, 188364, 188368,
- 188372, 188376, 188380, 188384, 188388, 188392, 188397, 188402, 188407,
- 188411, 188417, 188424, 188431, 188438, 188445, 188452, 188459, 188466,
- 188473, 188480, 188487, 188494, 188501, 188508, 188514, 188520, 188527,
- 188533, 188540, 188547, 188554, 188561, 188568, 188575, 188582, 188589,
- 188596, 188603, 188610, 188617, 188624, 188630, 188636, 188642, 188649,
- 188658, 188667, 188676, 188685, 188690, 188695, 188702, 188709, 188716,
- 188723, 188730, 188736, 188742, 188748, 188754, 188760, 188766, 188772,
- 188777, 188783, 188793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 127659, 127663, 127667, 127671, 127675, 127679, 127683,
+ 127687, 127691, 127695, 127699, 127703, 127707, 127711, 127715, 127719,
+ 127723, 127727, 127731, 127735, 127739, 127743, 127747, 127751, 127755,
+ 127759, 127763, 127767, 127771, 127775, 127779, 127783, 127787, 127791,
+ 127795, 127799, 127803, 127807, 127811, 127815, 127819, 127823, 127827,
+ 127831, 127835, 127839, 127843, 127847, 127851, 127855, 127859, 127863,
+ 127867, 127871, 127875, 127879, 127883, 127887, 127891, 127895, 127899,
+ 127903, 127907, 127911, 127915, 127919, 127923, 127927, 127931, 127935,
+ 127939, 127943, 127947, 127951, 127955, 127959, 127963, 127967, 127971,
+ 127975, 127979, 127983, 127987, 127991, 127995, 127999, 128003, 128007,
+ 128011, 128015, 128019, 128023, 128027, 128031, 128035, 128039, 128043,
+ 128047, 128051, 128055, 128059, 128063, 128067, 128071, 128075, 128079,
+ 128083, 128087, 128091, 128095, 128099, 128103, 128107, 128111, 128115,
+ 128119, 128123, 128127, 128131, 128135, 128139, 128143, 128147, 128151,
+ 128155, 128159, 128163, 128167, 128171, 128175, 128179, 128183, 128187,
+ 128191, 128195, 128199, 128203, 128207, 128211, 128215, 128219, 128223,
+ 128227, 128231, 128235, 128239, 128243, 128247, 128251, 128255, 128259,
+ 128263, 128267, 128271, 128275, 128279, 128283, 128287, 128291, 128295,
+ 128299, 128303, 128307, 128311, 128315, 128319, 128323, 128327, 128331,
+ 128335, 128339, 128343, 128347, 128351, 128355, 128359, 128363, 128367,
+ 128371, 128375, 128379, 128383, 128387, 128391, 128395, 128399, 128403,
+ 128407, 128411, 128415, 128419, 128423, 128427, 128431, 128435, 128439,
+ 128443, 128447, 128451, 128455, 128459, 128463, 128467, 128471, 128475,
+ 128479, 128483, 128487, 128491, 128495, 128499, 128503, 128507, 128511,
+ 128515, 128519, 128523, 128527, 128531, 128535, 128539, 128543, 128547,
+ 128551, 128555, 128559, 128563, 128567, 128571, 128575, 128579, 128583,
+ 128587, 128591, 128595, 128599, 128603, 128607, 128611, 128615, 128619,
+ 128623, 128627, 128631, 128635, 128639, 128643, 128647, 128651, 128655,
+ 128659, 128663, 128667, 128671, 128675, 128679, 128683, 128687, 128691,
+ 128695, 128699, 128703, 128707, 128711, 128715, 128719, 128723, 128727,
+ 128731, 128735, 128739, 128743, 128747, 128751, 128755, 128759, 128763,
+ 128767, 128771, 128775, 128779, 128783, 128787, 128791, 128795, 128799,
+ 128803, 128807, 128811, 128815, 128819, 128823, 128827, 128831, 128835,
+ 128839, 128843, 128847, 128851, 128855, 128859, 128863, 128867, 128871,
+ 128875, 128879, 128883, 128887, 128891, 128895, 128899, 128903, 128907,
+ 128911, 128915, 128919, 128923, 128927, 128931, 128935, 128939, 128943,
+ 128947, 128951, 128955, 128959, 128963, 128967, 128971, 128975, 128979,
+ 128983, 128987, 128991, 128995, 128999, 129003, 129007, 129011, 129015,
+ 129019, 129023, 129027, 129031, 129035, 129039, 129043, 129047, 129051,
+ 129055, 129059, 129063, 129067, 129071, 129075, 129079, 129083, 129087,
+ 129091, 129095, 129099, 129103, 129107, 129111, 129115, 129119, 129123,
+ 129127, 129131, 129135, 129139, 129143, 129147, 129151, 129155, 129159,
+ 129163, 129167, 129171, 129175, 129179, 129183, 129187, 129191, 129195,
+ 129199, 129203, 129207, 129211, 129215, 129219, 129223, 129227, 129231,
+ 129235, 129239, 129243, 129247, 129251, 129255, 129259, 129263, 129267,
+ 129271, 129275, 129279, 129283, 129287, 129291, 129295, 129299, 129303,
+ 129307, 129311, 129315, 129319, 129323, 129327, 129331, 129335, 129339,
+ 129343, 129347, 129351, 129355, 129359, 129363, 129367, 129371, 129375,
+ 129379, 129383, 129387, 129391, 129395, 129399, 129403, 129407, 129411,
+ 129415, 129419, 129423, 129427, 129431, 129435, 129439, 129443, 129447,
+ 129451, 129455, 129459, 129463, 129467, 129471, 129475, 129479, 129483,
+ 129487, 129491, 129495, 129499, 129503, 129507, 129511, 129515, 129519,
+ 129523, 129527, 129531, 129535, 129539, 129543, 129547, 129551, 129555,
+ 129559, 129563, 129567, 129571, 129575, 129579, 129583, 129587, 129591,
+ 129595, 129599, 129603, 129607, 129611, 129615, 129619, 129623, 129627,
+ 129631, 129635, 129639, 129643, 129647, 129651, 129655, 129659, 129663,
+ 129667, 129671, 129675, 129679, 129683, 129687, 129691, 129695, 129699,
+ 129703, 129707, 129711, 129715, 129719, 129723, 129727, 129731, 129735,
+ 129739, 129743, 129747, 129751, 129755, 129759, 129763, 129767, 129771,
+ 129775, 129779, 129783, 129787, 129791, 129795, 129799, 129803, 129807,
+ 129811, 129815, 129819, 129823, 129827, 129831, 129835, 129839, 129843,
+ 129847, 129851, 129855, 129859, 129863, 129867, 129871, 129875, 129879,
+ 129883, 129887, 129891, 129895, 129899, 129903, 129907, 129911, 129915,
+ 129919, 129923, 129927, 129931, 129935, 129939, 129943, 129947, 129951,
+ 129955, 129959, 129963, 129967, 129971, 129975, 129979, 129983, 129987,
+ 129991, 129995, 129999, 130003, 130007, 130011, 130015, 130019, 130023,
+ 130027, 130031, 130035, 130039, 130043, 130047, 130051, 130055, 130059,
+ 130063, 130067, 130071, 130075, 130079, 130083, 130087, 130091, 130095,
+ 130099, 130103, 130107, 130111, 130115, 130119, 130123, 130127, 130131,
+ 130135, 130139, 130143, 130147, 130151, 130155, 130159, 130163, 130167,
+ 130171, 130175, 130179, 130183, 130187, 130191, 130195, 130199, 130203,
+ 130207, 130211, 130215, 130219, 130223, 130227, 130231, 130235, 130239,
+ 130243, 130247, 130251, 130255, 130259, 130263, 130267, 130271, 130275,
+ 130279, 130283, 130287, 130291, 130295, 130299, 130303, 130307, 130311,
+ 130315, 130319, 130323, 130327, 130331, 130335, 130339, 130343, 130347,
+ 130351, 130355, 130359, 130363, 130367, 130371, 130375, 130379, 130383,
+ 130387, 130391, 130395, 130399, 130403, 130407, 130411, 130415, 130419,
+ 130423, 130427, 130431, 130435, 130439, 130443, 130447, 130451, 130455,
+ 130459, 130463, 130467, 130471, 130475, 130479, 130483, 130487, 130491,
+ 130495, 130499, 130503, 130507, 130511, 130515, 130519, 130523, 130527,
+ 130531, 130535, 130539, 130543, 130547, 130551, 130555, 130559, 130563,
+ 130567, 130571, 130575, 130579, 130583, 130587, 130591, 130595, 130599,
+ 130603, 130607, 130611, 130615, 130619, 130623, 130627, 130631, 130635,
+ 130639, 130643, 130647, 130651, 130655, 130659, 130663, 130667, 130671,
+ 130675, 130679, 130683, 130687, 130691, 130695, 130699, 130703, 130707,
+ 130711, 130715, 130719, 130723, 130727, 130731, 130735, 130739, 130743,
+ 130747, 130751, 130755, 130759, 130763, 130767, 130771, 130775, 130779,
+ 130783, 130787, 130791, 130795, 130799, 130803, 130807, 130811, 130815,
+ 130819, 130823, 130827, 130831, 130835, 130839, 130843, 130847, 130851,
+ 130855, 130859, 130863, 130867, 130871, 130875, 130879, 130883, 130887,
+ 130891, 130895, 130899, 130903, 130907, 130911, 130915, 130919, 130923,
+ 130927, 130931, 130935, 130939, 130943, 130947, 130951, 130955, 130959,
+ 130963, 130967, 130971, 130975, 130979, 130983, 130987, 130991, 130995,
+ 130999, 131003, 131007, 131011, 131015, 131019, 131023, 131027, 131031,
+ 131035, 131039, 131043, 131047, 131051, 131055, 131059, 131063, 131067,
+ 131071, 131075, 131079, 131083, 131087, 131091, 131095, 131099, 131103,
+ 131107, 131111, 131115, 131119, 131123, 131127, 131131, 131135, 131139,
+ 131143, 131147, 131151, 131155, 131159, 131163, 131167, 131171, 131175,
+ 131179, 131183, 131187, 131191, 131195, 131199, 131203, 131207, 131211,
+ 131215, 131219, 131223, 131227, 131231, 131235, 131239, 131243, 131247,
+ 131251, 131255, 131259, 131263, 131267, 131271, 131275, 131279, 131283,
+ 131287, 131291, 131295, 131299, 131303, 131307, 131311, 131315, 131319,
+ 131323, 131327, 131331, 131335, 131339, 131343, 131347, 131351, 131355,
+ 131359, 131363, 131367, 131371, 131375, 131379, 131383, 131387, 131391,
+ 131395, 131399, 131403, 131407, 131411, 131415, 131419, 131423, 131427,
+ 131431, 131435, 131439, 131443, 131447, 131451, 131455, 131459, 131463,
+ 131467, 131471, 131475, 131479, 131483, 131487, 131491, 131495, 131499,
+ 131503, 131507, 131511, 131515, 131519, 131523, 131527, 131531, 131535,
+ 131539, 131543, 131547, 131551, 131555, 131559, 131563, 131567, 131571,
+ 131575, 131579, 131583, 131587, 131591, 131595, 131599, 131603, 131607,
+ 131611, 131615, 131619, 131623, 131627, 131631, 131635, 131639, 131643,
+ 131647, 131651, 131655, 131659, 131663, 131667, 131671, 131675, 131679,
+ 131683, 131687, 131691, 131695, 131699, 131703, 131707, 131711, 131715,
+ 131719, 131723, 131727, 131731, 131735, 131739, 131743, 131747, 131751,
+ 131755, 131759, 131763, 131767, 131771, 131775, 131779, 131783, 131787,
+ 131791, 131795, 131799, 131803, 131807, 131811, 131815, 131819, 131823,
+ 131827, 131831, 131835, 131839, 131843, 131847, 131851, 131855, 131859,
+ 131863, 131867, 131871, 131875, 131879, 131883, 131887, 131891, 131895,
+ 131899, 131903, 131907, 131911, 131915, 131919, 131923, 131927, 131931,
+ 131935, 131939, 0, 131943, 131948, 131954, 131964, 131974, 131984,
+ 131994, 132000, 132006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132012, 132016, 132020,
+ 132024, 132028, 132032, 132036, 132040, 132044, 132048, 132052, 132056,
+ 132060, 132064, 132068, 132072, 132076, 132080, 132084, 132088, 132092,
+ 132096, 132100, 132104, 132108, 132112, 132116, 132120, 132124, 132128,
+ 132132, 132136, 132140, 132144, 132148, 132152, 132156, 132160, 132164,
+ 132168, 132172, 132176, 132180, 132184, 132188, 132192, 132196, 132200,
+ 132204, 132208, 132212, 132216, 132220, 132224, 132228, 132232, 132236,
+ 132240, 132244, 132248, 132252, 132256, 132260, 132264, 132268, 132272,
+ 132276, 132280, 132284, 132288, 132292, 132296, 132300, 132304, 132308,
+ 132312, 132316, 132320, 132324, 132328, 132332, 132336, 132340, 132344,
+ 132348, 132352, 132356, 132360, 132364, 132368, 132372, 132376, 132380,
+ 132384, 132388, 132392, 132396, 132400, 132404, 132408, 132412, 132416,
+ 132420, 132424, 132428, 132432, 132436, 132440, 132444, 132448, 132452,
+ 132456, 132460, 132464, 132468, 132472, 132476, 132480, 132484, 132488,
+ 132492, 132496, 132500, 132504, 132508, 132512, 132516, 132520, 132524,
+ 132528, 132532, 132536, 132540, 132544, 132548, 132552, 132556, 132560,
+ 132564, 132568, 132572, 132576, 132580, 132584, 132588, 132592, 132596,
+ 132600, 132604, 132608, 132612, 132616, 132620, 132624, 132628, 132632,
+ 132636, 132640, 132644, 132648, 132652, 132656, 132660, 132664, 132668,
+ 132672, 132676, 132680, 132684, 132688, 132692, 132696, 132700, 132704,
+ 132708, 132712, 132716, 132720, 132724, 132728, 132732, 132736, 132740,
+ 132744, 132748, 132752, 132756, 132760, 132764, 132768, 132772, 132776,
+ 132780, 132784, 132788, 132792, 132796, 132800, 132804, 132808, 132812,
+ 132816, 132820, 132824, 132828, 132832, 132836, 132840, 132844, 132848,
+ 132852, 132856, 132860, 132864, 132868, 132872, 132876, 132880, 132884,
+ 132888, 132892, 132896, 132900, 132904, 132908, 132912, 132916, 132920,
+ 132924, 132928, 132932, 132936, 132940, 132944, 132948, 132952, 132956,
+ 132960, 132964, 132968, 132972, 132976, 132980, 132984, 132988, 132992,
+ 132996, 133000, 133004, 133008, 133012, 133016, 133020, 133024, 133028,
+ 133032, 133036, 133040, 133044, 133048, 133052, 133056, 133060, 133064,
+ 133068, 133072, 133076, 133080, 133084, 133088, 133092, 133096, 133100,
+ 133104, 133108, 133112, 133116, 133120, 133124, 133128, 133132, 133136,
+ 133140, 133144, 133148, 133152, 133156, 133160, 133164, 133168, 133172,
+ 133176, 133180, 133184, 133188, 133192, 133196, 133200, 133204, 133208,
+ 133212, 133216, 133220, 133224, 133228, 133232, 133236, 133240, 133244,
+ 133248, 133252, 133256, 133260, 133264, 133268, 133272, 133276, 133280,
+ 133284, 133288, 133292, 133296, 133300, 133304, 133308, 133312, 133316,
+ 133320, 133324, 133328, 133332, 133336, 133340, 133344, 133348, 133352,
+ 133356, 133360, 133364, 133368, 133372, 133376, 133380, 133384, 133388,
+ 133392, 133396, 133400, 133404, 133408, 133412, 133416, 133420, 133424,
+ 133428, 133432, 133436, 133440, 133444, 133448, 133452, 133456, 133460,
+ 133464, 133468, 133472, 133476, 133480, 133484, 133488, 133492, 133496,
+ 133500, 133504, 133508, 133512, 133516, 133520, 133524, 133528, 133532,
+ 133536, 133540, 133544, 133548, 133552, 133556, 133560, 133564, 133568,
+ 133572, 133576, 133580, 133584, 133588, 133592, 133596, 133600, 133604,
+ 133608, 133612, 133616, 133620, 133624, 133628, 133632, 133636, 133640,
+ 133644, 133648, 133652, 133656, 133660, 133664, 133668, 133672, 133676,
+ 133680, 133684, 133688, 133692, 133696, 133700, 133704, 133708, 133712,
+ 133716, 133720, 133724, 133728, 133732, 133736, 133740, 133744, 133754,
+ 133758, 133762, 133766, 133770, 133774, 133778, 133782, 133786, 133790,
+ 133794, 133798, 133803, 133807, 133811, 133815, 133819, 133823, 133827,
+ 133831, 133835, 133839, 133843, 133847, 133851, 133855, 133859, 133863,
+ 133867, 133876, 133885, 133889, 133893, 133897, 133901, 133905, 133909,
+ 133913, 133917, 133921, 133925, 133929, 133933, 133937, 133941, 133945,
+ 133949, 133953, 133957, 133961, 133965, 133969, 133973, 133977, 133981,
+ 133985, 133989, 133993, 133997, 134001, 134005, 134009, 134013, 134017,
+ 134021, 134025, 134029, 134033, 134037, 134041, 134045, 134049, 134053,
+ 134057, 134061, 134065, 134069, 134073, 134077, 134081, 134085, 134089,
+ 134093, 134097, 134101, 134105, 134109, 134113, 134117, 134121, 134125,
+ 134129, 134133, 134137, 134141, 134145, 134149, 134153, 134157, 134161,
+ 134165, 134169, 134173, 134177, 134181, 134185, 134189, 134193, 134197,
+ 134201, 134205, 134209, 134213, 134217, 134221, 134225, 134229, 134233,
+ 134237, 134241, 134245, 134249, 134253, 134257, 134261, 134265, 134269,
+ 134273, 134277, 134281, 134285, 134289, 134293, 134297, 134301, 134305,
+ 134309, 134313, 134317, 134321, 134325, 134329, 134333, 134337, 134341,
+ 134345, 134349, 134353, 134357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 134361, 134369, 134377, 134387, 134397, 134405, 134411, 134419,
+ 134427, 134437, 134449, 134461, 134467, 134475, 134481, 134487, 134493,
+ 134499, 134505, 134511, 134517, 134523, 134529, 134535, 134541, 134549,
+ 134557, 134563, 134569, 134575, 134581, 134589, 134597, 134606, 134612,
+ 134620, 134626, 134632, 134638, 134644, 134650, 134658, 134666, 134672,
+ 134678, 134684, 134690, 134696, 134702, 134708, 134714, 134720, 134726,
+ 134732, 134738, 134744, 134750, 134756, 134762, 134768, 134774, 134780,
+ 134788, 134794, 134800, 134810, 134818, 134824, 134830, 134836, 134842,
+ 134848, 134854, 134860, 134866, 134872, 134878, 134884, 134890, 134896,
+ 134902, 134908, 134914, 134920, 134926, 134932, 134938, 134944, 134950,
+ 134958, 134964, 134972, 134980, 134988, 134994, 135000, 135006, 135012,
+ 135018, 135026, 135036, 135044, 135052, 135058, 135064, 135072, 135080,
+ 135086, 135094, 135102, 135110, 135116, 135122, 135128, 135134, 135140,
+ 135146, 135154, 135162, 135168, 135174, 135180, 135186, 135192, 135200,
+ 135206, 135212, 135218, 135224, 135230, 135236, 135244, 135250, 135256,
+ 135262, 135268, 135276, 135284, 135290, 135296, 135302, 135307, 135313,
+ 135319, 135327, 135333, 135339, 135345, 135351, 135357, 135363, 135369,
+ 135375, 135381, 135391, 135399, 135405, 135411, 135417, 135425, 135431,
+ 135437, 135443, 135451, 135457, 135463, 135469, 135475, 135481, 135487,
+ 135493, 135499, 135505, 135511, 135517, 135525, 135531, 135539, 135545,
+ 135551, 135559, 135565, 135571, 135577, 135583, 135589, 135595, 135601,
+ 135607, 135613, 135619, 135625, 135631, 135637, 135643, 135649, 135655,
+ 135661, 135667, 135673, 135681, 135687, 135693, 135699, 135705, 135711,
+ 135717, 135723, 135729, 135735, 135741, 135747, 135753, 135759, 135767,
+ 135773, 135779, 135787, 135793, 135799, 135805, 135811, 135817, 135823,
+ 135829, 135835, 135841, 135847, 135855, 135861, 135867, 135873, 135879,
+ 135885, 135893, 135901, 135907, 135913, 135919, 135925, 135931, 135937,
+ 135942, 135947, 135952, 135957, 135962, 135967, 135972, 135977, 135982,
+ 135987, 135992, 135997, 136002, 136007, 136012, 136017, 136022, 136027,
+ 136032, 136037, 136042, 136047, 136052, 136057, 136062, 136067, 136072,
+ 136077, 136082, 136087, 136094, 136099, 136104, 136109, 136114, 136119,
+ 136124, 136129, 136134, 136139, 136144, 136149, 136154, 136159, 136164,
+ 136169, 136174, 136179, 136184, 136189, 136194, 136199, 136204, 136209,
+ 136214, 136219, 136224, 136229, 136234, 136239, 136244, 136249, 136254,
+ 136259, 136264, 136269, 136274, 136279, 136284, 136289, 136294, 136299,
+ 136304, 136309, 136314, 136319, 136324, 136329, 136334, 136339, 136344,
+ 136349, 136354, 136359, 136364, 136369, 136374, 136379, 136384, 136391,
+ 136396, 136401, 136406, 136411, 136416, 136421, 136426, 136431, 136436,
+ 136441, 136446, 136451, 136456, 136461, 136466, 136471, 136476, 136481,
+ 136486, 136491, 136496, 136503, 136508, 136513, 136519, 136524, 136529,
+ 136534, 136539, 136544, 136549, 136554, 136559, 136564, 136569, 136574,
+ 136579, 136584, 136589, 136594, 136599, 136604, 136609, 136614, 136619,
+ 136624, 136629, 136634, 136639, 136644, 136649, 136654, 136659, 136664,
+ 136669, 136674, 136679, 136684, 136689, 136694, 136699, 136704, 136709,
+ 136714, 136719, 136724, 136729, 136734, 136741, 136746, 136751, 136758,
+ 136765, 136770, 136775, 136780, 136785, 136790, 136795, 136800, 136805,
+ 136810, 136815, 136820, 136825, 136830, 136835, 136840, 136845, 136850,
+ 136855, 136860, 136865, 136870, 136875, 136880, 136885, 136890, 136897,
+ 136902, 136907, 136912, 136917, 136922, 136927, 136932, 136937, 136942,
+ 136947, 136952, 136957, 136962, 136967, 136972, 136977, 136982, 136987,
+ 136994, 136999, 137004, 137009, 137014, 137019, 137024, 137029, 137035,
+ 137040, 137045, 137050, 137055, 137060, 137065, 137070, 137075, 137082,
+ 137089, 137094, 137099, 137103, 137108, 137112, 137116, 137121, 137128,
+ 137133, 137138, 137147, 137152, 137157, 137162, 137167, 137174, 137181,
+ 137186, 137191, 137196, 137201, 137208, 137213, 137218, 137223, 137228,
+ 137233, 137238, 137243, 137248, 137253, 137258, 137263, 137268, 137275,
+ 137279, 137284, 137289, 137294, 137299, 137303, 137308, 137313, 137318,
+ 137323, 137328, 137333, 137338, 137343, 137348, 137354, 137360, 137366,
+ 137372, 137378, 137383, 137389, 137395, 137401, 137407, 137413, 137419,
+ 137425, 137431, 137437, 137443, 137449, 137455, 137461, 137467, 137473,
+ 137479, 137485, 137491, 137496, 137502, 137508, 137514, 137520, 137526,
+ 137532, 137538, 137544, 137550, 137556, 137562, 137568, 137574, 137580,
+ 137586, 137592, 137598, 137604, 137610, 137616, 137621, 137627, 137633,
+ 137639, 137645, 137651, 0, 0, 0, 0, 0, 0, 0, 137657, 137661, 137666,
+ 137671, 137676, 137681, 137686, 137690, 137695, 137700, 137705, 137710,
+ 137715, 137720, 137725, 137730, 137735, 137739, 137744, 137748, 137753,
+ 137758, 137763, 137768, 137773, 137777, 137782, 137787, 137791, 137796,
+ 137801, 0, 137806, 137811, 137815, 137819, 137823, 137827, 137831,
+ 137835, 137839, 137843, 0, 0, 0, 0, 137847, 137851, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137856, 137863,
+ 137869, 137876, 137883, 137890, 137897, 137904, 137911, 137918, 137925,
+ 137932, 137939, 137946, 137953, 137960, 137967, 137974, 137980, 137987,
+ 137994, 138001, 138007, 138014, 138020, 138026, 138033, 138039, 138046,
+ 138052, 0, 0, 138058, 138066, 138074, 138083, 138092, 138101, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 138109, 138114, 138119, 138124, 138129, 138134, 138139,
+ 138144, 138149, 138154, 138159, 138164, 138169, 138174, 138179, 138184,
+ 138189, 138194, 138199, 138204, 138209, 138214, 138219, 138224, 138229,
+ 138234, 138239, 138244, 138249, 138254, 138259, 138264, 138269, 138274,
+ 138279, 138284, 138289, 138294, 138299, 138304, 138309, 138314, 138319,
+ 138324, 138329, 138334, 138339, 138344, 138349, 138356, 138363, 138370,
+ 138377, 138384, 138391, 138398, 138405, 138414, 138421, 138428, 138435,
+ 138442, 138449, 138456, 138463, 138470, 138477, 138484, 138491, 138496,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138505, 138510, 138514, 138518, 138522,
+ 138526, 138530, 138534, 138538, 138542, 0, 138546, 138551, 138556,
+ 138563, 138568, 138575, 138582, 0, 138587, 138594, 138599, 138604,
+ 138611, 138618, 138623, 138628, 138633, 138638, 138643, 138650, 138657,
+ 138662, 138667, 138672, 138685, 138694, 138701, 138710, 138719, 0, 0, 0,
+ 0, 0, 138728, 138735, 138742, 138749, 138756, 138763, 138770, 138777,
+ 138784, 138791, 138798, 138805, 138812, 138819, 138826, 138833, 138840,
+ 138847, 138854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138861, 138867, 138873, 138879,
+ 138885, 138891, 138897, 138903, 138909, 138915, 138921, 138927, 138932,
+ 138938, 138943, 138949, 138954, 138960, 138966, 138971, 138977, 138982,
+ 138988, 138994, 139000, 139006, 139012, 139018, 139024, 139029, 139034,
+ 139040, 139046, 139052, 139058, 139064, 139070, 139076, 139082, 139088,
+ 139094, 139100, 139106, 139112, 139117, 139123, 139128, 139134, 139139,
+ 139145, 139151, 139156, 139162, 139167, 139173, 139179, 139185, 139191,
+ 139197, 139203, 139209, 139214, 139219, 139225, 139231, 139236, 139240,
+ 139244, 139248, 139252, 139256, 139260, 139264, 139268, 139272, 139277,
+ 139282, 139287, 139292, 139297, 139302, 139307, 139312, 139317, 139322,
+ 139329, 139336, 139343, 139347, 139353, 139358, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139364,
+ 139367, 139371, 139375, 139379, 139382, 139386, 139391, 139395, 139399,
+ 139403, 139406, 139410, 139415, 139419, 139423, 139427, 139430, 139434,
+ 139439, 139444, 139448, 139452, 139455, 139459, 139463, 139467, 139471,
+ 139475, 139479, 139483, 139486, 139490, 139494, 139498, 139502, 139506,
+ 139510, 139516, 139519, 139523, 139527, 139531, 139535, 139539, 139543,
+ 139547, 139551, 139555, 139560, 139565, 139571, 139575, 139579, 139583,
+ 139587, 139591, 139595, 139600, 139603, 139607, 139611, 139615, 139619,
+ 139625, 139629, 139633, 139637, 139641, 139645, 139649, 139653, 139657,
+ 139661, 139665, 0, 0, 0, 0, 139669, 139674, 139678, 139682, 139688,
+ 139694, 139698, 139703, 139708, 139713, 139718, 139722, 139727, 139732,
+ 139737, 139741, 139746, 139751, 139756, 139760, 139765, 139770, 139775,
+ 139780, 139785, 139790, 139795, 139800, 139804, 139809, 139814, 139819,
+ 139824, 139829, 139834, 139839, 139844, 139849, 139854, 139859, 139866,
+ 139871, 139878, 139883, 139888, 139893, 139898, 139903, 139908, 139913,
+ 139918, 139923, 139928, 139933, 139938, 139943, 139948, 0, 0, 0, 0, 0, 0,
+ 0, 139953, 139957, 139963, 139966, 139969, 139973, 139977, 139981,
+ 139985, 139989, 139993, 139997, 140003, 140009, 140015, 140021, 140027,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140033, 140037, 140041,
+ 140047, 140053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140058, 140067, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140076, 140079, 140082, 140085, 140088,
+ 140091, 140094, 140097, 140100, 140103, 140106, 140109, 140112, 140115,
+ 140118, 140121, 140124, 140127, 140130, 140133, 140136, 140139, 140142,
+ 140145, 140148, 140151, 140154, 140157, 140160, 140163, 140166, 140169,
+ 140172, 140175, 140178, 140181, 140184, 140187, 140190, 140193, 140196,
+ 140199, 140202, 140205, 140208, 140211, 140214, 140217, 140220, 140223,
+ 140226, 140229, 140232, 140235, 140238, 140241, 140244, 140247, 140250,
+ 140253, 140256, 140259, 140262, 140265, 140268, 140271, 140274, 140277,
+ 140280, 140283, 140286, 140289, 140292, 140295, 140298, 140301, 140304,
+ 140307, 140310, 140313, 140316, 140319, 140322, 140325, 140328, 140331,
+ 140334, 140337, 140340, 140343, 140346, 140349, 140352, 140355, 140358,
+ 140361, 140364, 140367, 140370, 140373, 140376, 140379, 140382, 140385,
+ 140388, 140391, 140394, 140397, 140400, 140403, 140406, 140409, 140412,
+ 140415, 140418, 140421, 140424, 140427, 140430, 140433, 140436, 140439,
+ 140442, 140445, 140448, 140451, 140454, 140457, 140460, 140463, 140466,
+ 140469, 140472, 140475, 140478, 140481, 140484, 140487, 140490, 140493,
+ 140496, 140499, 140502, 140505, 140508, 140511, 140514, 140517, 140520,
+ 140523, 140526, 140529, 140532, 140535, 140538, 140541, 140544, 140547,
+ 140550, 140553, 140556, 140559, 140562, 140565, 140568, 140571, 140574,
+ 140577, 140580, 140583, 140586, 140589, 140592, 140595, 140598, 140601,
+ 140604, 140607, 140610, 140613, 140616, 140619, 140622, 140625, 140628,
+ 140631, 140634, 140637, 140640, 140643, 140646, 140649, 140652, 140655,
+ 140658, 140661, 140664, 140667, 140670, 140673, 140676, 140679, 140682,
+ 140685, 140688, 140691, 140694, 140697, 140700, 140703, 140706, 140709,
+ 140712, 140715, 140718, 140721, 140724, 140727, 140730, 140733, 140736,
+ 140739, 140742, 140745, 140748, 140751, 140754, 140757, 140760, 140763,
+ 140766, 140769, 140772, 140775, 140778, 140781, 140784, 140787, 140790,
+ 140793, 140796, 140799, 140802, 140805, 140808, 140811, 140814, 140817,
+ 140820, 140823, 140826, 140829, 140832, 140835, 140838, 140841, 140844,
+ 140847, 140850, 140853, 140856, 140859, 140862, 140865, 140868, 140871,
+ 140874, 140877, 140880, 140883, 140886, 140889, 140892, 140895, 140898,
+ 140901, 140904, 140907, 140910, 140913, 140916, 140919, 140922, 140925,
+ 140928, 140931, 140934, 140937, 140940, 140943, 140946, 140949, 140952,
+ 140955, 140958, 140961, 140964, 140967, 140970, 140973, 140976, 140979,
+ 140982, 140985, 140988, 140991, 140994, 140997, 141000, 141003, 141006,
+ 141009, 141012, 141015, 141018, 141021, 141024, 141027, 141030, 141033,
+ 141036, 141039, 141042, 141045, 141048, 141051, 141054, 141057, 141060,
+ 141063, 141066, 141069, 141072, 141075, 141078, 141081, 141084, 141087,
+ 141090, 141093, 141096, 141099, 141102, 141105, 141108, 141111, 141114,
+ 141117, 141120, 141123, 141126, 141129, 141132, 141135, 141138, 141141,
+ 141144, 141147, 141150, 141153, 141156, 141159, 141162, 141165, 141168,
+ 141171, 141174, 141177, 141180, 141183, 141186, 141189, 141192, 141195,
+ 141198, 141201, 141204, 141207, 141210, 141213, 141216, 141219, 141222,
+ 141225, 141228, 141231, 141234, 141237, 141240, 141243, 141246, 141249,
+ 141252, 141255, 141258, 141261, 141264, 141267, 141270, 141273, 141276,
+ 141279, 141282, 141285, 141288, 141291, 141294, 141297, 141300, 141303,
+ 141306, 141309, 141312, 141315, 141318, 141321, 141324, 141327, 141330,
+ 141333, 141336, 141339, 141342, 141345, 141348, 141351, 141354, 141357,
+ 141360, 141363, 141366, 141369, 141372, 141375, 141378, 141381, 141384,
+ 141387, 141390, 141393, 141396, 141399, 141402, 141405, 141408, 141411,
+ 141414, 141417, 141420, 141423, 141426, 141429, 141432, 141435, 141438,
+ 141441, 141444, 141447, 141450, 141453, 141456, 141459, 141462, 141465,
+ 141468, 141471, 141474, 141477, 141480, 141483, 141486, 141489, 141492,
+ 141495, 141498, 141501, 141504, 141507, 141510, 141513, 141516, 141519,
+ 141522, 141525, 141528, 141531, 141534, 141537, 141540, 141543, 141546,
+ 141549, 141552, 141555, 141558, 141561, 141564, 141567, 141570, 141573,
+ 141576, 141579, 141582, 141585, 141588, 141591, 141594, 141597, 141600,
+ 141603, 141606, 141609, 141612, 141615, 141618, 141621, 141624, 141627,
+ 141630, 141633, 141636, 141639, 141642, 141645, 141648, 141651, 141654,
+ 141657, 141660, 141663, 141666, 141669, 141672, 141675, 141678, 141681,
+ 141684, 141687, 141690, 141693, 141696, 141699, 141702, 141705, 141708,
+ 141711, 141714, 141717, 141720, 141723, 141726, 141729, 141732, 141735,
+ 141738, 141741, 141744, 141747, 141750, 141753, 141756, 141759, 141762,
+ 141765, 141768, 141771, 141774, 141777, 141780, 141783, 141786, 141789,
+ 141792, 141795, 141798, 141801, 141804, 141807, 141810, 141813, 141816,
+ 141819, 141822, 141825, 141828, 141831, 141834, 141837, 141840, 141843,
+ 141846, 141849, 141852, 141855, 141858, 141861, 141864, 141867, 141870,
+ 141873, 141876, 141879, 141882, 141885, 141888, 141891, 141894, 141897,
+ 141900, 141903, 141906, 141909, 141912, 141915, 141918, 141921, 141924,
+ 141927, 141930, 141933, 141936, 141939, 141942, 141945, 141948, 141951,
+ 141954, 141957, 141960, 141963, 141966, 141969, 141972, 141975, 141978,
+ 141981, 141984, 141987, 141990, 141993, 141996, 141999, 142002, 142005,
+ 142008, 142011, 142014, 142017, 142020, 142023, 142026, 142029, 142032,
+ 142035, 142038, 142041, 142044, 142047, 142050, 142053, 142056, 142059,
+ 142062, 142065, 142068, 142071, 142074, 142077, 142080, 142083, 142086,
+ 142089, 142092, 142095, 142098, 142101, 142104, 142107, 142110, 142113,
+ 142116, 142119, 142122, 142125, 142128, 142131, 142134, 142137, 142140,
+ 142143, 142146, 142149, 142152, 142155, 142158, 142161, 142164, 142167,
+ 142170, 142173, 142176, 142179, 142182, 142185, 142188, 142191, 142194,
+ 142197, 142200, 142203, 142206, 142209, 142212, 142215, 142218, 142221,
+ 142224, 142227, 142230, 142233, 142236, 142239, 142242, 142245, 142248,
+ 142251, 142254, 142257, 142260, 142263, 142266, 142269, 142272, 142275,
+ 142278, 142281, 142284, 142287, 142290, 142293, 142296, 142299, 142302,
+ 142305, 142308, 142311, 142314, 142317, 142320, 142323, 142326, 142329,
+ 142332, 142335, 142338, 142341, 142344, 142347, 142350, 142353, 142356,
+ 142359, 142362, 142365, 142368, 142371, 142374, 142377, 142380, 142385,
+ 142390, 142395, 142400, 142405, 142410, 142415, 142420, 142425, 142430,
+ 142435, 142440, 142445, 142450, 142455, 142460, 142465, 142470, 142475,
+ 142480, 142485, 142490, 142495, 142500, 142505, 142510, 142515, 142520,
+ 142525, 142530, 142535, 142540, 142545, 142550, 142555, 142560, 142565,
+ 142570, 142575, 142580, 142585, 142590, 142595, 142600, 142605, 142610,
+ 142615, 142620, 142625, 142630, 142635, 142640, 142645, 142650, 142655,
+ 142660, 142665, 142670, 142675, 142680, 142685, 142690, 142695, 142700,
+ 142705, 142710, 142715, 142720, 142725, 142730, 142735, 142740, 142745,
+ 142750, 142755, 142760, 142765, 142770, 142775, 142780, 142785, 142790,
+ 142795, 142800, 142805, 142810, 142815, 142820, 142825, 142830, 142835,
+ 142840, 142845, 142850, 142855, 142860, 142865, 142870, 142875, 142880,
+ 142885, 142890, 142895, 142900, 142905, 142910, 142915, 142920, 142925,
+ 142930, 142935, 142940, 142945, 142950, 142955, 142960, 142965, 142970,
+ 142975, 142980, 142985, 142990, 142995, 143000, 143005, 143010, 143015,
+ 143020, 143025, 143030, 143035, 143040, 143045, 143050, 143055, 143060,
+ 143065, 143070, 143075, 143080, 143085, 143090, 143095, 143100, 143105,
+ 143110, 143115, 143120, 143125, 143130, 143135, 143140, 143145, 143150,
+ 143155, 143160, 143165, 143170, 143175, 143180, 143185, 143190, 143195,
+ 143200, 143205, 143210, 143215, 143220, 143225, 143230, 143235, 143240,
+ 143245, 143250, 143255, 143260, 143265, 143270, 143275, 143280, 143285,
+ 143290, 143295, 143300, 143305, 143310, 143315, 143320, 143325, 143330,
+ 143335, 143340, 143345, 143350, 143355, 143360, 143365, 143370, 143375,
+ 143380, 143385, 143390, 143395, 143400, 143405, 143410, 143415, 143420,
+ 143425, 143430, 143435, 143440, 143445, 143450, 143455, 143460, 143465,
+ 143470, 143475, 143480, 143485, 143490, 143495, 143500, 143505, 143510,
+ 143515, 143520, 143525, 143530, 143535, 143540, 143545, 143550, 143555,
+ 143560, 143565, 143570, 143575, 143580, 143585, 143590, 143595, 143600,
+ 143605, 143610, 143615, 143620, 143625, 143630, 143635, 143640, 143645,
+ 143650, 143655, 143660, 143665, 143670, 143675, 143680, 143685, 143690,
+ 143695, 143700, 143705, 143710, 143715, 143720, 143725, 143730, 143735,
+ 143740, 143745, 143750, 143755, 143760, 143765, 143770, 143775, 143780,
+ 143785, 143790, 143795, 143800, 143805, 143810, 143815, 143820, 143825,
+ 143830, 143835, 143840, 143845, 143850, 143855, 143860, 143865, 143870,
+ 143875, 143880, 143885, 143890, 143895, 143900, 143905, 143910, 143915,
+ 143920, 143925, 143930, 143935, 143940, 143945, 143950, 143955, 143960,
+ 143965, 143970, 143975, 143980, 143985, 143990, 143995, 144000, 144005,
+ 144010, 144015, 144020, 144025, 144030, 144035, 144040, 144045, 144050,
+ 144055, 144060, 144065, 144070, 144075, 144080, 144085, 144090, 144095,
+ 144100, 144105, 144110, 144115, 144120, 144125, 144130, 144135, 144140,
+ 144145, 144150, 144155, 144160, 144165, 144170, 144175, 144180, 144185,
+ 144190, 144195, 144200, 144205, 144210, 144215, 144220, 144225, 144230,
+ 144235, 144240, 144245, 144250, 144255, 144260, 144265, 144270, 144275,
+ 144280, 144285, 144290, 144295, 144300, 144305, 144310, 144315, 144320,
+ 144325, 144330, 144335, 144340, 144345, 144350, 144355, 144360, 144365,
+ 144370, 144375, 144380, 144385, 144390, 144395, 144400, 144405, 144410,
+ 144415, 144420, 144425, 144430, 144435, 144440, 144445, 144450, 144455,
+ 144460, 144465, 144470, 144475, 144480, 144485, 144490, 144495, 144500,
+ 144505, 144510, 144515, 144520, 144525, 144530, 144535, 144540, 144545,
+ 144550, 144555, 144560, 144565, 144570, 144575, 144580, 144585, 144590,
+ 144595, 144600, 144605, 144610, 144615, 144620, 144625, 144630, 144635,
+ 144640, 144645, 144650, 144655, 144660, 144665, 144670, 144675, 144680,
+ 144685, 144690, 144695, 144700, 144705, 144710, 144715, 144720, 144725,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144730, 144735,
+ 144742, 144746, 144750, 144754, 144758, 144762, 144766, 144770, 144774,
+ 144778, 144782, 144786, 144790, 144794, 144798, 144802, 144806, 144810,
+ 144814, 144818, 144822, 144826, 144830, 144834, 144838, 144842, 144846,
+ 144850, 144854, 144858, 144862, 144866, 144870, 144874, 144878, 144882,
+ 144886, 144890, 144894, 144898, 144902, 144906, 144910, 144914, 144918,
+ 144922, 144926, 144930, 144934, 144938, 144942, 144946, 144950, 144954,
+ 144958, 144962, 144966, 144970, 144974, 144978, 144982, 144986, 144990,
+ 144994, 144998, 145002, 145006, 145010, 145014, 145018, 145022, 145026,
+ 145030, 145034, 145038, 145042, 145046, 145050, 145054, 145058, 145062,
+ 145066, 145070, 145074, 145078, 145082, 145086, 145090, 145094, 145098,
+ 145102, 145106, 145110, 145114, 145118, 145122, 145126, 145130, 145134,
+ 145138, 145142, 145146, 145150, 145154, 145158, 145162, 145166, 145170,
+ 145174, 145178, 145182, 145186, 145190, 145194, 145198, 145202, 145206,
+ 145210, 145214, 145218, 145222, 145226, 145230, 145234, 145238, 145242,
+ 145246, 145250, 145254, 145258, 145262, 145266, 145270, 145274, 145278,
+ 145282, 145286, 145290, 145294, 145298, 145302, 145306, 145310, 145314,
+ 145318, 145322, 145326, 145330, 145334, 145338, 145342, 145346, 145350,
+ 145354, 145358, 145362, 145366, 145370, 145374, 145378, 145382, 145386,
+ 145390, 145394, 145398, 145402, 145406, 145410, 145414, 145418, 145422,
+ 145426, 145430, 145434, 145438, 145442, 145446, 145450, 145454, 145458,
+ 145462, 145466, 145470, 145474, 145478, 145482, 145486, 145490, 145494,
+ 145498, 145502, 145506, 145510, 145514, 145518, 145522, 145526, 145530,
+ 145534, 145538, 145542, 145546, 145550, 145554, 145558, 145562, 145566,
+ 145570, 145574, 145578, 145582, 145586, 145590, 145594, 145598, 145602,
+ 145606, 145610, 145614, 145618, 145622, 145626, 145630, 145634, 145638,
+ 145642, 145646, 145650, 145654, 145658, 145662, 145666, 145670, 145674,
+ 145678, 145682, 145686, 145690, 145694, 145698, 145702, 145706, 145710,
+ 145714, 145718, 145722, 145726, 145730, 145734, 145738, 145742, 145746,
+ 145750, 145754, 145758, 145762, 145766, 145770, 145774, 145778, 145782,
+ 145786, 145790, 145794, 145798, 145802, 145806, 145810, 145814, 145818,
+ 145822, 145826, 145830, 145834, 145838, 145842, 145846, 145850, 145854,
+ 145858, 145862, 145866, 145870, 145874, 145878, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145882, 145888,
+ 145894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145900,
+ 145905, 145910, 145915, 0, 0, 0, 0, 0, 0, 0, 0, 145920, 145923, 145926,
+ 145929, 145932, 145935, 145938, 145941, 145944, 145947, 145950, 145953,
+ 145956, 145959, 145962, 145965, 145968, 145971, 145974, 145977, 145980,
+ 145983, 145986, 145989, 145992, 145995, 145998, 146001, 146004, 146007,
+ 146010, 146013, 146016, 146019, 146022, 146025, 146028, 146031, 146034,
+ 146037, 146040, 146043, 146046, 146049, 146052, 146055, 146058, 146061,
+ 146064, 146067, 146070, 146073, 146076, 146079, 146082, 146085, 146088,
+ 146091, 146094, 146097, 146100, 146103, 146106, 146109, 146112, 146115,
+ 146118, 146121, 146124, 146127, 146130, 146133, 146136, 146139, 146142,
+ 146145, 146148, 146151, 146154, 146157, 146160, 146163, 146166, 146169,
+ 146172, 146175, 146178, 146181, 146184, 146187, 146190, 146193, 146196,
+ 146199, 146202, 146205, 146208, 146211, 146214, 146217, 146220, 146223,
+ 146226, 146229, 146232, 146235, 146238, 146241, 146244, 146247, 146250,
+ 146253, 146256, 146259, 146262, 146265, 146268, 146271, 146274, 146277,
+ 146280, 146283, 146286, 146289, 146292, 146295, 146298, 146301, 146304,
+ 146307, 146310, 146313, 146316, 146319, 146322, 146325, 146328, 146331,
+ 146334, 146337, 146340, 146343, 146346, 146349, 146352, 146355, 146358,
+ 146361, 146364, 146367, 146370, 146373, 146376, 146379, 146382, 146385,
+ 146388, 146391, 146394, 146397, 146400, 146403, 146406, 146409, 146412,
+ 146415, 146418, 146421, 146424, 146427, 146430, 146433, 146436, 146439,
+ 146442, 146445, 146448, 146451, 146454, 146457, 146460, 146463, 146466,
+ 146469, 146472, 146475, 146478, 146481, 146484, 146487, 146490, 146493,
+ 146496, 146499, 146502, 146505, 146508, 146511, 146514, 146517, 146520,
+ 146523, 146526, 146529, 146532, 146535, 146538, 146541, 146544, 146547,
+ 146550, 146553, 146556, 146559, 146562, 146565, 146568, 146571, 146574,
+ 146577, 146580, 146583, 146586, 146589, 146592, 146595, 146598, 146601,
+ 146604, 146607, 146610, 146613, 146616, 146619, 146622, 146625, 146628,
+ 146631, 146634, 146637, 146640, 146643, 146646, 146649, 146652, 146655,
+ 146658, 146661, 146664, 146667, 146670, 146673, 146676, 146679, 146682,
+ 146685, 146688, 146691, 146694, 146697, 146700, 146703, 146706, 146709,
+ 146712, 146715, 146718, 146721, 146724, 146727, 146730, 146733, 146736,
+ 146739, 146742, 146745, 146748, 146751, 146754, 146757, 146760, 146763,
+ 146766, 146769, 146772, 146775, 146778, 146781, 146784, 146787, 146790,
+ 146793, 146796, 146799, 146802, 146805, 146808, 146811, 146814, 146817,
+ 146820, 146823, 146826, 146829, 146832, 146835, 146838, 146841, 146844,
+ 146847, 146850, 146853, 146856, 146859, 146862, 146865, 146868, 146871,
+ 146874, 146877, 146880, 146883, 146886, 146889, 146892, 146895, 146898,
+ 146901, 146904, 146907, 146910, 146913, 146916, 146919, 146922, 146925,
+ 146928, 146931, 146934, 146937, 146940, 146943, 146946, 146949, 146952,
+ 146955, 146958, 146961, 146964, 146967, 146970, 146973, 146976, 146979,
+ 146982, 146985, 146988, 146991, 146994, 146997, 147000, 147003, 147006,
+ 147009, 147012, 147015, 147018, 147021, 147024, 147027, 147030, 147033,
+ 147036, 147039, 147042, 147045, 147048, 147051, 147054, 147057, 147060,
+ 147063, 147066, 147069, 147072, 147075, 147078, 147081, 147084, 147087,
+ 147090, 147093, 147096, 147099, 147102, 147105, 0, 0, 0, 0, 147108,
+ 147112, 147116, 147120, 147124, 147128, 147132, 147135, 147139, 147143,
+ 147147, 147151, 147154, 147160, 147166, 147172, 147178, 147184, 147188,
+ 147194, 147198, 147202, 147208, 147212, 147216, 147220, 147224, 147228,
+ 147232, 147236, 147242, 147248, 147254, 147260, 147267, 147274, 147281,
+ 147292, 147299, 147306, 147312, 147318, 147324, 147330, 147338, 147346,
+ 147354, 147362, 147371, 147377, 147385, 147391, 147398, 147404, 147411,
+ 147417, 147425, 147429, 147433, 147438, 147444, 147450, 147458, 147466,
+ 147472, 147479, 147482, 147488, 147492, 147495, 147499, 147502, 147505,
+ 147509, 147514, 147518, 147522, 147528, 147533, 147539, 147543, 147547,
+ 147550, 147554, 147558, 147563, 147567, 147572, 147576, 147581, 147585,
+ 147589, 147593, 147597, 147601, 147605, 147609, 147613, 147618, 147623,
+ 147628, 147633, 147639, 147645, 147651, 147657, 147663, 0, 0, 0, 0, 0,
+ 147668, 147676, 147685, 147693, 147700, 147708, 147715, 147722, 147731,
+ 147738, 147745, 147753, 147761, 0, 0, 0, 147769, 147775, 147783, 147789,
+ 147796, 147802, 147808, 147814, 147820, 0, 0, 0, 0, 0, 0, 0, 147826,
+ 147832, 147840, 147846, 147853, 147859, 147865, 147871, 147877, 147883,
+ 0, 0, 147888, 147894, 147900, 147903, 147912, 147919, 147927, 147934, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147941, 147946,
+ 147951, 147956, 147963, 147970, 147977, 147984, 147989, 147994, 147999,
+ 148004, 148011, 148016, 148023, 148030, 148035, 148040, 148045, 148052,
+ 148057, 148062, 148069, 148076, 148081, 148086, 148091, 148098, 148105,
+ 148112, 148117, 148122, 148129, 148136, 148143, 148150, 148155, 148160,
+ 148165, 148172, 148177, 148182, 148187, 148194, 148203, 148210, 148215,
+ 148220, 148225, 148230, 148235, 148240, 148249, 148256, 148261, 148268,
+ 148275, 148280, 148285, 148290, 148297, 148302, 148309, 148316, 148321,
+ 148326, 148331, 148338, 148345, 148350, 148355, 148362, 148369, 148376,
+ 148381, 148386, 148391, 148396, 148403, 148412, 148421, 148426, 148433,
+ 148442, 148447, 148452, 148457, 148462, 148469, 148476, 148483, 148490,
+ 148495, 148500, 148505, 148512, 148519, 148526, 148531, 148536, 148543,
+ 148548, 148555, 148560, 148567, 148572, 148579, 148586, 148591, 148596,
+ 148601, 148606, 148611, 148616, 148621, 148626, 148631, 148638, 148645,
+ 148652, 148659, 148666, 148675, 148680, 148685, 148692, 148699, 148704,
+ 148711, 148718, 148725, 148732, 148739, 148746, 148751, 148756, 148761,
+ 148766, 148771, 148780, 148789, 148798, 148807, 148816, 148825, 148834,
+ 148843, 148848, 148859, 148870, 148879, 148884, 148889, 148894, 148899,
+ 148908, 148915, 148922, 148929, 148936, 148943, 148950, 148959, 148968,
+ 148979, 148988, 148999, 149008, 149015, 149024, 149035, 149044, 149053,
+ 149062, 149071, 149078, 149085, 149092, 149101, 149110, 149121, 149130,
+ 149139, 149150, 149155, 149160, 149171, 149179, 149188, 149197, 149206,
+ 149217, 149226, 149235, 149246, 149257, 149268, 149279, 149290, 149301,
+ 149308, 149315, 149322, 149329, 149340, 149349, 149356, 149363, 149370,
+ 149381, 149392, 149403, 149414, 149425, 149436, 149447, 149458, 149465,
+ 149472, 149481, 149490, 149497, 149504, 149511, 149520, 149529, 149538,
+ 149545, 149554, 149563, 149572, 149579, 149586, 149591, 149597, 149604,
+ 149611, 149618, 149625, 149632, 149639, 149648, 149657, 149666, 149675,
+ 149682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149691, 149697, 149702, 149707,
+ 149714, 149720, 149726, 149732, 149738, 149744, 149750, 149756, 149760,
+ 149764, 149770, 149776, 149782, 149786, 149791, 149796, 149800, 149804,
+ 149807, 149813, 149819, 149825, 149831, 149837, 149843, 149849, 149855,
+ 149861, 149871, 149881, 149887, 149893, 149903, 149913, 149919, 0, 0,
+ 149925, 149933, 149938, 149943, 149949, 149955, 149961, 149967, 149973,
+ 149979, 149986, 149993, 149999, 150005, 150011, 150017, 150023, 150029,
+ 150035, 150041, 150046, 150052, 150058, 150064, 150070, 150076, 150085,
+ 150091, 150096, 150104, 150111, 150118, 150127, 150136, 150145, 150154,
+ 150163, 150172, 150181, 150190, 150200, 150210, 150218, 150226, 150235,
+ 150244, 150250, 150256, 150262, 150268, 150276, 150284, 150288, 150294,
+ 150299, 150305, 150311, 150317, 150323, 150329, 150338, 150343, 150350,
+ 150355, 150360, 150365, 150371, 150377, 150383, 150390, 150395, 150400,
+ 150405, 150410, 150415, 150421, 150427, 150433, 150439, 150445, 150451,
+ 150457, 150463, 150468, 150473, 150478, 150483, 150488, 150493, 150498,
+ 150503, 150509, 150515, 150520, 150525, 150530, 150535, 150540, 150546,
+ 150553, 150557, 150561, 150565, 150569, 150573, 150577, 150581, 150585,
+ 150593, 150603, 150607, 150611, 150617, 150623, 150629, 150635, 150641,
+ 150647, 150653, 150659, 150665, 150671, 150677, 150683, 150689, 150695,
+ 150699, 150703, 150710, 150716, 150722, 150728, 150733, 150740, 150745,
+ 150751, 150757, 150763, 150769, 150774, 150778, 150784, 150788, 150792,
+ 150796, 150802, 150808, 150812, 150818, 150824, 150830, 150836, 150842,
+ 150850, 150858, 150864, 150870, 150876, 150882, 150894, 150906, 150920,
+ 150932, 150944, 150958, 150972, 150986, 150990, 150998, 151006, 151011,
+ 151015, 151019, 151023, 151027, 151031, 151035, 151039, 151045, 151051,
+ 151057, 151063, 151071, 151080, 151087, 151094, 151102, 151109, 151121,
+ 151133, 151145, 151157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 151164, 151171, 151178, 151185, 151192, 151199,
+ 151206, 151213, 151220, 151227, 151234, 151241, 151248, 151255, 151262,
+ 151269, 151276, 151283, 151290, 151297, 151304, 151311, 151318, 151325,
+ 151332, 151339, 151346, 151353, 151360, 151367, 151374, 151381, 151388,
+ 151395, 151402, 151409, 151416, 151423, 151430, 151437, 151444, 151451,
+ 151458, 151465, 151472, 151479, 151486, 151493, 151500, 151507, 151514,
+ 151521, 151528, 151535, 151542, 151549, 151556, 151563, 151570, 151577,
+ 151584, 151591, 151598, 151605, 151612, 151619, 151626, 151631, 151636,
+ 151641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151645, 151651, 151656, 151661,
+ 151666, 151671, 151676, 151681, 151686, 151691, 151696, 151702, 151708,
+ 151714, 151720, 151726, 151732, 151738, 151744, 151750, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 151756, 151761, 151768, 151775, 151782, 151789, 151794,
+ 151799, 151806, 151811, 151816, 151823, 151828, 151833, 151838, 151845,
+ 151854, 151859, 151864, 151869, 151874, 151879, 151884, 151891, 151896,
+ 151901, 151906, 151911, 151916, 151921, 151926, 151931, 151936, 151941,
+ 151946, 151951, 151957, 151962, 151967, 151972, 151977, 151982, 151987,
+ 151992, 151997, 152002, 152011, 152016, 152024, 152029, 152034, 152039,
+ 152044, 152049, 152054, 152059, 152068, 152073, 152078, 152083, 152088,
+ 152093, 152100, 152105, 152112, 152117, 152122, 152127, 152132, 152137,
+ 152142, 152147, 152152, 152157, 152162, 152167, 152172, 152177, 152182,
+ 152187, 152192, 152197, 152202, 152207, 152216, 152221, 152226, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 152231, 152239, 152247, 152255, 152263, 152271, 152279,
+ 152287, 152295, 152303, 152311, 152319, 152327, 152335, 152343, 152351,
+ 152359, 152367, 152375, 152380, 152385, 152390, 152395, 152400, 152404,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152408, 152412, 152417,
+ 152422, 152427, 152431, 152436, 152441, 152446, 152450, 152455, 152460,
+ 152464, 152469, 152474, 152478, 152483, 152488, 152492, 152497, 152502,
+ 152506, 152511, 152516, 152521, 152526, 152531, 152535, 152540, 152545,
+ 152550, 152554, 152559, 152564, 152569, 152573, 152578, 152583, 152587,
+ 152592, 152597, 152601, 152606, 152611, 152615, 152620, 152625, 152629,
+ 152634, 152639, 152644, 152649, 152654, 152658, 152663, 152668, 152673,
+ 152677, 152682, 152687, 152692, 152696, 152701, 152706, 152710, 152715,
+ 152720, 152724, 152729, 152734, 152738, 152743, 152748, 152752, 152757,
+ 152762, 152767, 152772, 152777, 152781, 152786, 152791, 152796, 152800,
+ 152805, 0, 152810, 152814, 152819, 152824, 152828, 152833, 152838,
+ 152842, 152847, 152852, 152856, 152861, 152866, 152870, 152875, 152880,
+ 152885, 152890, 152895, 152900, 152906, 152912, 152918, 152923, 152929,
+ 152935, 152941, 152946, 152952, 152958, 152963, 152969, 152975, 152980,
+ 152986, 152992, 152997, 153003, 153009, 153014, 153020, 153026, 153032,
+ 153038, 153044, 153049, 153055, 153061, 153067, 153072, 153078, 153084,
+ 153090, 153095, 153101, 153107, 153112, 153118, 153124, 153129, 153135,
+ 153141, 153146, 153152, 153158, 153163, 153169, 153175, 153181, 153187,
+ 153193, 0, 153197, 153202, 0, 0, 153207, 0, 0, 153212, 153217, 0, 0,
+ 153222, 153227, 153231, 153236, 0, 153241, 153246, 153251, 153255,
+ 153260, 153265, 153270, 153275, 153280, 153284, 153289, 153294, 0,
+ 153299, 0, 153304, 153309, 153313, 153318, 153323, 153327, 153332, 0,
+ 153337, 153342, 153347, 153351, 153356, 153361, 153365, 153370, 153375,
+ 153380, 153385, 153390, 153395, 153401, 153407, 153413, 153418, 153424,
+ 153430, 153436, 153441, 153447, 153453, 153458, 153464, 153470, 153475,
+ 153481, 153487, 153492, 153498, 153504, 153509, 153515, 153521, 153527,
+ 153533, 153539, 153544, 153550, 153556, 153562, 153567, 153573, 153579,
+ 153585, 153590, 153596, 153602, 153607, 153613, 153619, 153624, 153630,
+ 153636, 153641, 153647, 153653, 153658, 153664, 153670, 153676, 153682,
+ 153688, 153693, 0, 153699, 153705, 153710, 153716, 0, 0, 153722, 153728,
+ 153734, 153739, 153745, 153751, 153756, 153762, 0, 153768, 153774,
+ 153780, 153785, 153791, 153797, 153803, 0, 153809, 153814, 153820,
+ 153826, 153832, 153837, 153843, 153849, 153855, 153860, 153866, 153872,
+ 153877, 153883, 153889, 153894, 153900, 153906, 153911, 153917, 153923,
+ 153928, 153934, 153940, 153946, 153952, 153958, 153963, 0, 153969,
+ 153975, 153980, 153986, 0, 153992, 153997, 154003, 154009, 154014, 0,
+ 154020, 0, 0, 0, 154025, 154031, 154037, 154042, 154048, 154054, 154060,
+ 0, 154066, 154071, 154077, 154083, 154089, 154094, 154100, 154106,
+ 154112, 154117, 154123, 154129, 154134, 154140, 154146, 154151, 154157,
+ 154163, 154168, 154174, 154180, 154185, 154191, 154197, 154203, 154209,
+ 154215, 154221, 154228, 154235, 154242, 154248, 154255, 154262, 154269,
+ 154275, 154282, 154289, 154295, 154302, 154309, 154315, 154322, 154329,
+ 154335, 154342, 154349, 154355, 154362, 154369, 154376, 154383, 154390,
+ 154396, 154403, 154410, 154417, 154423, 154430, 154437, 154444, 154450,
+ 154457, 154464, 154470, 154477, 154484, 154490, 154497, 154504, 154510,
+ 154517, 154524, 154530, 154537, 154544, 154551, 154558, 154565, 154569,
+ 154574, 154579, 154584, 154588, 154593, 154598, 154603, 154607, 154612,
+ 154617, 154621, 154626, 154631, 154635, 154640, 154645, 154649, 154654,
+ 154659, 154663, 154668, 154673, 154678, 154683, 154688, 154692, 154697,
+ 154702, 154707, 154711, 154716, 154721, 154726, 154730, 154735, 154740,
+ 154744, 154749, 154754, 154758, 154763, 154768, 154772, 154777, 154782,
+ 154786, 154791, 154796, 154801, 154806, 154811, 154816, 154822, 154828,
+ 154834, 154839, 154845, 154851, 154857, 154862, 154868, 154874, 154879,
+ 154885, 154891, 154896, 154902, 154908, 154913, 154919, 154925, 154930,
+ 154936, 154942, 154948, 154954, 154960, 154965, 154971, 154977, 154983,
+ 154988, 154994, 155000, 155006, 155011, 155017, 155023, 155028, 155034,
+ 155040, 155045, 155051, 155057, 155062, 155068, 155074, 155079, 155085,
+ 155091, 155097, 155103, 155109, 155114, 155120, 155126, 155132, 155137,
+ 155143, 155149, 155155, 155160, 155166, 155172, 155177, 155183, 155189,
+ 155194, 155200, 155206, 155211, 155217, 155223, 155228, 155234, 155240,
+ 155246, 155252, 155258, 155263, 155269, 155275, 155281, 155286, 155292,
+ 155298, 155304, 155309, 155315, 155321, 155326, 155332, 155338, 155343,
+ 155349, 155355, 155360, 155366, 155372, 155377, 155383, 155389, 155395,
+ 155401, 155407, 155413, 155420, 155427, 155434, 155440, 155447, 155454,
+ 155461, 155467, 155474, 155481, 155487, 155494, 155501, 155507, 155514,
+ 155521, 155527, 155534, 155541, 155547, 155554, 155561, 155568, 155575,
+ 155582, 155588, 155595, 155602, 155609, 155615, 155622, 155629, 155636,
+ 155642, 155649, 155656, 155662, 155669, 155676, 155682, 155689, 155696,
+ 155702, 155709, 155716, 155722, 155729, 155736, 155743, 155750, 155757,
+ 155762, 155768, 155774, 155780, 155785, 155791, 155797, 155803, 155808,
+ 155814, 155820, 155825, 155831, 155837, 155842, 155848, 155854, 155859,
+ 155865, 155871, 155876, 155882, 155888, 155894, 155900, 155906, 155911,
+ 155917, 155923, 155929, 155934, 155940, 155946, 155952, 155957, 155963,
+ 155969, 155974, 155980, 155986, 155991, 155997, 156003, 156008, 156014,
+ 156020, 156025, 156031, 156037, 156043, 156049, 156055, 156061, 0, 0,
+ 156068, 156073, 156078, 156083, 156088, 156093, 156098, 156103, 156108,
+ 156113, 156118, 156123, 156128, 156133, 156138, 156143, 156148, 156153,
+ 156159, 156164, 156169, 156174, 156179, 156184, 156189, 156194, 156198,
+ 156203, 156208, 156213, 156218, 156223, 156228, 156233, 156238, 156243,
+ 156248, 156253, 156258, 156263, 156268, 156273, 156278, 156283, 156289,
+ 156294, 156299, 156304, 156309, 156314, 156319, 156324, 156330, 156335,
+ 156340, 156345, 156350, 156355, 156360, 156365, 156370, 156375, 156380,
+ 156385, 156390, 156395, 156400, 156405, 156410, 156415, 156420, 156425,
+ 156430, 156435, 156440, 156445, 156451, 156456, 156461, 156466, 156471,
+ 156476, 156481, 156486, 156490, 156495, 156500, 156505, 156510, 156515,
+ 156520, 156525, 156530, 156535, 156540, 156545, 156550, 156555, 156560,
+ 156565, 156570, 156575, 156581, 156586, 156591, 156596, 156601, 156606,
+ 156611, 156616, 156622, 156627, 156632, 156637, 156642, 156647, 156652,
+ 156658, 156664, 156670, 156676, 156682, 156688, 156694, 156700, 156706,
+ 156712, 156718, 156724, 156730, 156736, 156742, 156748, 156754, 156761,
+ 156767, 156773, 156779, 156785, 156791, 156797, 156803, 156808, 156814,
+ 156820, 156826, 156832, 156838, 156844, 156850, 156856, 156862, 156868,
+ 156874, 156880, 156886, 156892, 156898, 156904, 156910, 156917, 156923,
+ 156929, 156935, 156941, 156947, 156953, 156959, 156966, 156972, 156978,
+ 156984, 156990, 156996, 157002, 157008, 157014, 157020, 157026, 157032,
+ 157038, 157044, 157050, 157056, 157062, 157068, 157074, 157080, 157086,
+ 157092, 157098, 157104, 157111, 157117, 157123, 157129, 157135, 157141,
+ 157147, 157153, 157158, 157164, 157170, 157176, 157182, 157188, 157194,
+ 157200, 157206, 157212, 157218, 157224, 157230, 157236, 157242, 157248,
+ 157254, 157260, 157267, 157273, 157279, 157285, 157291, 157297, 157303,
+ 157309, 157316, 157322, 157328, 157334, 157340, 157346, 157352, 157359,
+ 157366, 157373, 157380, 157387, 157394, 157401, 157408, 157415, 157422,
+ 157429, 157436, 157443, 157450, 157457, 157464, 157471, 157479, 157486,
+ 157493, 157500, 157507, 157514, 157521, 157528, 157534, 157541, 157548,
+ 157555, 157562, 157569, 157576, 157583, 157590, 157597, 157604, 157611,
+ 157618, 157625, 157632, 157639, 157646, 157653, 157661, 157668, 157675,
+ 157682, 157689, 157696, 157703, 157710, 157718, 157725, 157732, 157739,
+ 157746, 157753, 157760, 157765, 0, 0, 157770, 157775, 157779, 157783,
+ 157787, 157791, 157795, 157799, 157803, 157807, 157811, 157817, 157822,
+ 157827, 157832, 157837, 157842, 157847, 157852, 157857, 157862, 157867,
+ 157871, 157875, 157879, 157883, 157887, 157891, 157895, 157899, 157903,
+ 157909, 157914, 157919, 157924, 157929, 157934, 157939, 157944, 157949,
+ 157954, 157960, 157965, 157970, 157975, 157980, 157985, 157990, 157995,
+ 158000, 158005, 158009, 158014, 158019, 158024, 158029, 158034, 158039,
+ 158045, 158053, 158060, 158065, 158070, 158077, 158083, 158088, 158094,
+ 158100, 158108, 158114, 158121, 158129, 158135, 158144, 158153, 158161,
+ 158169, 158175, 158182, 158190, 158198, 158204, 158211, 158220, 158229,
+ 158236, 158247, 158257, 158267, 158277, 158287, 158294, 158301, 158308,
+ 158315, 158324, 158333, 158344, 158355, 158364, 158373, 158384, 158393,
+ 158402, 158413, 158422, 158431, 158439, 158447, 158458, 158469, 158477,
+ 158486, 158495, 158502, 158513, 158524, 158533, 158542, 158549, 158558,
+ 158567, 158576, 158587, 158596, 158606, 158615, 158624, 158635, 158648,
+ 158663, 158674, 158687, 158699, 158708, 158719, 158730, 158739, 158750,
+ 158764, 158779, 158782, 158791, 158796, 158802, 158810, 158816, 158822,
+ 158831, 158838, 158848, 158860, 158867, 158870, 158876, 158883, 158889,
+ 158894, 158897, 158902, 158905, 158913, 158919, 158928, 158935, 158943,
+ 158949, 158954, 158957, 158960, 158963, 158969, 158976, 158982, 158987,
+ 158995, 158998, 159003, 159011, 159017, 159026, 159033, 159043, 159052,
+ 159055, 159061, 159068, 159075, 159082, 159087, 159095, 159103, 159112,
+ 159118, 159127, 159136, 159145, 159151, 159160, 159167, 159174, 159181,
+ 159189, 159195, 159203, 159209, 159216, 159223, 159231, 159242, 159252,
+ 159258, 159265, 159272, 159279, 159285, 159292, 159299, 159304, 159311,
+ 159319, 159328, 159334, 159346, 159357, 159363, 159371, 159377, 159384,
+ 159391, 159398, 159404, 159411, 159420, 159426, 159432, 159439, 159446,
+ 159454, 159464, 159474, 159484, 159494, 159502, 159510, 159520, 159528,
+ 159533, 159538, 159543, 159549, 159556, 159563, 159569, 159575, 159580,
+ 159587, 159595, 159605, 159613, 159621, 159631, 159641, 159649, 159659,
+ 159669, 159681, 159693, 159705, 159715, 159721, 159727, 159734, 159743,
+ 159752, 159761, 159770, 159780, 159789, 159798, 159807, 159812, 159818,
+ 159827, 159837, 159846, 159852, 159858, 159865, 159872, 159879, 159885,
+ 159892, 159899, 159906, 159912, 159916, 159921, 159928, 159935, 159942,
+ 159947, 159955, 159963, 159972, 159980, 159987, 159995, 160004, 160014,
+ 160017, 160021, 160026, 160031, 160036, 160041, 160046, 160051, 160056,
+ 160061, 160066, 160071, 160076, 160081, 160086, 160091, 160096, 160101,
+ 160106, 160113, 160119, 160126, 160132, 160137, 160144, 160150, 160157,
+ 160163, 160168, 160175, 160182, 160189, 160195, 160201, 160210, 160219,
+ 160229, 160236, 160243, 160252, 160261, 160270, 160279, 160288, 160294,
+ 160302, 160308, 160318, 160323, 160332, 160341, 160348, 160359, 160366,
+ 160373, 160380, 160387, 160394, 160401, 160408, 160415, 160422, 160429,
+ 160435, 160441, 160447, 160454, 160461, 160468, 160475, 160482, 160489,
+ 160496, 160503, 160510, 160517, 160524, 160531, 160536, 160545, 160554,
+ 160563, 160570, 160577, 160584, 160591, 160598, 160605, 160612, 160619,
+ 160628, 160637, 160646, 160655, 160664, 160673, 160682, 160691, 160700,
+ 160709, 160718, 160727, 160736, 160742, 160750, 160756, 160766, 160771,
+ 160780, 160789, 160798, 160809, 160814, 160821, 160828, 160835, 160840,
+ 160846, 160852, 160858, 160865, 160872, 160879, 160886, 160893, 160900,
+ 160907, 160914, 160921, 160928, 160935, 160942, 160947, 160956, 160965,
+ 160974, 160983, 160992, 161001, 161010, 161019, 161030, 161041, 161048,
+ 161055, 161062, 161069, 161076, 161083, 161091, 161101, 161111, 161121,
+ 161132, 161143, 161154, 161163, 161172, 161181, 161186, 161191, 161196,
+ 161201, 161212, 161223, 161234, 161245, 161256, 161266, 161277, 161286,
+ 161295, 161304, 161313, 161322, 161330, 161339, 161350, 161361, 161372,
+ 161383, 161394, 161406, 161419, 161431, 161444, 161456, 161469, 161481,
+ 161494, 161505, 161516, 161525, 161533, 161542, 161553, 161564, 161576,
+ 161589, 161603, 161618, 161630, 161643, 161655, 161668, 161679, 161690,
+ 161699, 161707, 161716, 161723, 161730, 161737, 161744, 161751, 161758,
+ 161765, 161772, 161779, 161786, 161791, 161796, 161801, 161808, 161818,
+ 161829, 161839, 161850, 161864, 161879, 161894, 161908, 161923, 161938,
+ 161949, 161960, 161973, 161986, 161995, 162004, 162017, 162030, 162037,
+ 162044, 162049, 162054, 162059, 162064, 162069, 162076, 162085, 162090,
+ 162093, 162098, 162105, 162112, 162119, 162126, 162133, 162140, 162153,
+ 162167, 162182, 162189, 162196, 162203, 162212, 162220, 162228, 162237,
+ 162242, 162247, 162252, 162257, 162262, 162267, 162274, 162281, 162287,
+ 162294, 162300, 162307, 162312, 162317, 162322, 162327, 162332, 162339,
+ 162346, 162351, 162358, 162365, 162370, 162375, 162380, 162385, 162390,
+ 162395, 162402, 162409, 162416, 162419, 162424, 162429, 162434, 162439,
+ 162446, 162453, 162461, 162469, 162474, 162479, 162486, 162493, 162500,
+ 162505, 162512, 162519, 162524, 162531, 162538, 162545, 162552, 162559,
+ 162566, 162575, 162584, 162591, 162600, 162609, 162614, 162621, 162628,
+ 162633, 162640, 162647, 162654, 162661, 162668, 162673, 162680, 162687,
+ 162696, 162703, 162712, 162723, 162732, 162741, 162750, 162759, 162762,
+ 162767, 162774, 162783, 162790, 162799, 162806, 162811, 162816, 162819,
+ 162822, 162825, 162832, 162839, 162848, 162857, 162866, 162873, 162880,
+ 162885, 162897, 162902, 162907, 162912, 162917, 162922, 162927, 162932,
+ 162937, 162940, 162945, 162950, 162955, 162960, 162965, 162972, 162977,
+ 162984, 162987, 162992, 162995, 162998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 163001, 163006, 163011, 163016, 163021, 0, 163026, 163031,
+ 163036, 163041, 163046, 163051, 163056, 163061, 163066, 163071, 163076,
+ 163081, 163086, 163091, 163096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163101, 163106,
+ 163111, 163116, 163121, 163126, 163131, 0, 163136, 163141, 163146,
+ 163152, 163156, 163161, 163166, 163171, 163176, 163181, 163186, 163191,
+ 163196, 163201, 163206, 163211, 163216, 0, 0, 163221, 163226, 163231,
+ 163236, 163241, 163246, 163251, 0, 163256, 163261, 0, 163267, 163272,
+ 163280, 163287, 163296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 163301, 163308, 163316, 163324, 163331, 163338, 163345,
+ 163353, 163361, 163369, 163376, 163383, 163391, 163399, 163407, 163414,
+ 163422, 163430, 163438, 163446, 163454, 163462, 163470, 163477, 163485,
+ 163492, 163500, 163507, 163515, 163523, 163531, 163539, 163547, 163555,
+ 163563, 163571, 163579, 163586, 163594, 163601, 163608, 163615, 163623,
+ 163630, 163638, 0, 0, 0, 163646, 163653, 163660, 163667, 163674, 163681,
+ 163688, 163695, 163704, 163713, 163722, 163731, 163740, 163750, 0, 0,
+ 163758, 163766, 163773, 163780, 163787, 163794, 163801, 163808, 163815,
+ 163822, 0, 0, 0, 0, 163829, 163838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163846,
+ 163851, 163855, 163860, 163865, 163870, 163875, 163879, 163884, 163888,
+ 163892, 163896, 163900, 163905, 163910, 163914, 163919, 163924, 163929,
+ 163934, 163939, 163943, 163947, 163952, 163956, 163960, 163965, 163969,
+ 163973, 163977, 163982, 163986, 163991, 163996, 164001, 164006, 164011,
+ 164016, 164021, 164026, 164031, 164036, 164041, 164046, 164051, 164056,
+ 164061, 164066, 164071, 164076, 164080, 164084, 164088, 164092, 164096,
+ 164100, 164104, 164108, 0, 0, 0, 0, 0, 164112, 164117, 164124, 164130,
+ 164137, 164144, 164151, 164158, 164165, 164172, 164179, 164186, 164193,
+ 164200, 164207, 164214, 164221, 164228, 164235, 164242, 164249, 164256,
+ 164263, 164270, 164277, 164284, 164291, 164298, 164305, 164312, 164319,
+ 164326, 164333, 164340, 164347, 164354, 164360, 164366, 164372, 164379,
+ 164385, 164392, 164398, 164405, 164412, 164419, 164426, 164433, 164440,
+ 164446, 164453, 164460, 164467, 164474, 164481, 164488, 164495, 164501,
+ 164508, 164515, 164522, 164529, 164536, 164544, 164551, 164558, 164565,
+ 164572, 164579, 164586, 164593, 164599, 164606, 164613, 164620, 164627,
+ 164633, 164640, 164647, 164654, 164661, 164668, 164675, 164682, 164690,
+ 164697, 164703, 164710, 164717, 164724, 164731, 164738, 164745, 164752,
+ 164759, 164766, 164773, 164780, 164787, 164794, 164801, 164808, 164815,
+ 164822, 164829, 164836, 164843, 164849, 164856, 164863, 164870, 164877,
+ 164884, 164891, 164898, 164905, 164912, 164919, 164926, 164933, 164940,
+ 164947, 164954, 164961, 164968, 164975, 164982, 164989, 164996, 165003,
+ 165011, 165019, 165027, 165034, 165041, 165048, 165055, 165062, 165069,
+ 165076, 165083, 165090, 165097, 165103, 165110, 165117, 165124, 165131,
+ 165138, 165145, 165152, 165159, 165166, 165173, 165180, 165187, 165194,
+ 165201, 165209, 165217, 165225, 165232, 165239, 165246, 165253, 165260,
+ 165267, 165274, 165281, 165288, 165295, 165302, 165309, 165316, 165323,
+ 165329, 165336, 165343, 165350, 165357, 165364, 165371, 165378, 165385,
+ 165392, 165399, 165406, 165413, 165420, 165427, 165434, 165441, 165448,
+ 165455, 165462, 165469, 165476, 165483, 0, 0, 165490, 165494, 165498,
+ 165502, 165506, 165510, 165514, 165518, 165522, 165526, 165532, 165538,
+ 165544, 165550, 165558, 165566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 165572, 165578, 165584, 165590, 165596, 165602, 165608, 165614,
+ 165620, 165625, 165630, 165636, 165641, 165646, 165652, 165658, 165664,
+ 165670, 165676, 165681, 165686, 165692, 165698, 165703, 165709, 165715,
+ 165721, 165727, 165733, 165739, 165745, 165751, 165757, 165763, 165769,
+ 165775, 165781, 165787, 165793, 165799, 165805, 165811, 165817, 165822,
+ 165827, 165833, 165838, 165843, 165849, 165855, 165861, 165867, 165873,
+ 165878, 165883, 165889, 165895, 165900, 165906, 165912, 165918, 165924,
+ 165930, 165936, 165942, 165948, 165954, 165960, 165966, 165972, 165977,
+ 165982, 165986, 165991, 165998, 166002, 0, 0, 0, 0, 166007, 166012,
+ 166016, 166020, 166024, 166028, 166032, 166036, 166040, 166044, 0, 0, 0,
+ 0, 166048, 166054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166060, 166065, 166070,
+ 166075, 166080, 166085, 166090, 166095, 166100, 166105, 166111, 166117,
+ 166123, 166129, 166135, 166141, 166147, 166153, 166159, 166166, 166173,
+ 166180, 166188, 166196, 166204, 166212, 166220, 166228, 166234, 166240,
+ 166246, 166253, 166260, 166267, 166274, 166281, 166288, 166295, 166302,
+ 166309, 166316, 166323, 166330, 166337, 166344, 166351, 166357, 166363,
+ 166369, 166375, 166381, 166388, 166395, 166402, 166409, 166416, 166423,
+ 166430, 166437, 166444, 166449, 166457, 166465, 166473, 166479, 166486,
+ 166493, 166502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 166510, 166515, 166520, 166525, 166530,
+ 166535, 166540, 166545, 166550, 166555, 166561, 166567, 166573, 166579,
+ 166585, 166591, 166597, 166603, 166609, 166616, 166623, 166630, 166638,
+ 166646, 166654, 166662, 166670, 166678, 166684, 166690, 166696, 166703,
+ 166710, 166717, 166724, 166731, 166738, 166745, 166752, 166759, 166766,
+ 166773, 166780, 166787, 166794, 166801, 166806, 166813, 166820, 166827,
+ 166834, 166841, 166848, 166855, 166862, 166870, 166880, 166890, 166898,
+ 166907, 166915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 166923, 166927, 166931, 166935, 0, 166939, 166943,
+ 166947, 166951, 166955, 166959, 166963, 166967, 166971, 166975, 166979,
+ 166983, 166987, 166991, 166995, 166999, 167003, 167007, 167011, 167015,
+ 167019, 167023, 167027, 167031, 167037, 167043, 167049, 0, 167055,
+ 167060, 0, 167065, 0, 0, 167070, 0, 167075, 167080, 167085, 167090,
+ 167095, 167100, 167105, 167110, 167115, 167120, 0, 167125, 167130,
+ 167135, 167140, 0, 167145, 0, 167150, 0, 0, 0, 0, 0, 0, 167155, 0, 0, 0,
+ 0, 167161, 0, 167167, 0, 167173, 0, 167179, 167185, 167191, 0, 167197,
+ 167203, 0, 167209, 0, 0, 167215, 0, 167221, 0, 167227, 0, 167233, 0,
+ 167241, 0, 167249, 167255, 0, 167261, 0, 0, 167267, 167273, 167279,
+ 167285, 0, 167291, 167297, 167303, 167309, 167315, 167321, 167327, 0,
+ 167333, 167339, 167345, 167351, 0, 167357, 167363, 167369, 167375, 0,
+ 167383, 0, 167391, 167397, 167403, 167409, 167415, 167421, 167427,
+ 167433, 167439, 167445, 0, 167451, 167457, 167463, 167469, 167475,
+ 167481, 167487, 167493, 167499, 167505, 167511, 167517, 167523, 167529,
+ 167535, 167541, 167547, 0, 0, 0, 0, 0, 167553, 167559, 167565, 0, 167571,
+ 167577, 167583, 167589, 167595, 0, 167601, 167607, 167613, 167619,
+ 167625, 167631, 167637, 167643, 167649, 167655, 167661, 167667, 167673,
+ 167679, 167685, 167691, 167697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167703, 167713, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 167721, 167728, 167735, 167742, 167748,
+ 167755, 167762, 167768, 167775, 167782, 167789, 167797, 167805, 167813,
+ 167821, 167829, 167837, 167844, 167851, 167858, 167866, 167874, 167882,
+ 167890, 167898, 167906, 167913, 167920, 167927, 167935, 167943, 167951,
+ 167959, 167967, 167975, 167980, 167985, 167990, 167995, 168000, 168005,
+ 168010, 168015, 168020, 0, 0, 0, 0, 168025, 168032, 168037, 168042,
+ 168047, 168052, 168057, 168062, 168067, 168072, 168077, 168082, 168087,
+ 168092, 168097, 168102, 168107, 168112, 168117, 168122, 168127, 168132,
+ 168137, 168142, 168147, 168152, 168157, 168162, 168167, 168172, 168177,
+ 168182, 168187, 168192, 168197, 168202, 168207, 168212, 168217, 168222,
+ 168227, 168232, 168237, 168242, 168247, 168252, 168257, 168262, 168267,
+ 168272, 168277, 168283, 168288, 168293, 168298, 168303, 168308, 168313,
+ 168318, 168323, 168328, 168333, 168338, 168343, 168348, 168353, 168358,
+ 168363, 168368, 168373, 168378, 168383, 168388, 168393, 168398, 168403,
+ 168408, 168413, 168418, 168423, 168428, 168433, 168438, 168443, 168448,
+ 168453, 168458, 168463, 168468, 168473, 168478, 168483, 168488, 168493,
+ 168498, 168503, 168508, 168513, 168518, 168523, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 168528, 168534, 168543, 168551, 168559, 168568, 168577,
+ 168586, 168595, 168604, 168613, 168622, 168631, 168640, 168649, 0, 0,
+ 168658, 168667, 168675, 168683, 168692, 168701, 168710, 168719, 168728,
+ 168737, 168746, 168755, 168764, 168773, 168782, 0, 168790, 168799,
+ 168807, 168815, 168824, 168833, 168842, 168851, 168860, 168869, 168878,
+ 168887, 168896, 168905, 168914, 0, 168921, 168930, 168938, 168946,
+ 168955, 168964, 168973, 168982, 168991, 169000, 169009, 169018, 169027,
+ 169036, 169045, 169052, 169058, 169064, 169070, 169076, 169082, 169088,
+ 169094, 169100, 169106, 169112, 169118, 169124, 169130, 169136, 169142,
+ 169148, 169154, 169160, 169166, 169172, 169178, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 169184, 169191, 169196, 169200, 169204, 169208, 169213, 169218,
+ 169223, 169228, 169233, 169238, 169245, 169254, 169260, 169264, 169273,
+ 169278, 169284, 169290, 169296, 169301, 169307, 169313, 169319, 169324,
+ 169330, 169336, 169341, 169347, 169353, 169358, 169364, 169370, 169375,
+ 169381, 169387, 169392, 169398, 169404, 169410, 169416, 169422, 169433,
+ 169440, 169446, 169449, 169452, 169455, 169460, 169466, 169472, 169478,
+ 169483, 169489, 169495, 169501, 169506, 169512, 169518, 169523, 169529,
+ 169535, 169540, 169546, 169552, 169557, 169563, 169569, 169574, 169580,
+ 169586, 169592, 169598, 169604, 169607, 169610, 169613, 169616, 169619,
+ 169622, 169629, 169637, 169645, 169653, 169660, 169668, 169676, 169684,
+ 169691, 169699, 169707, 169714, 169722, 169730, 169737, 169745, 169753,
+ 169760, 169768, 169776, 169783, 169791, 169799, 169807, 169815, 169823,
+ 169828, 169833, 169838, 169841, 169849, 169854, 169861, 169869, 169877,
+ 169885, 169892, 169900, 169908, 169916, 169923, 169931, 169939, 169946,
+ 169954, 169962, 169969, 169977, 169985, 169992, 170000, 170008, 170015,
+ 170023, 170031, 170039, 170047, 170055, 170065, 170070, 170074, 170078,
+ 170083, 170088, 170091, 170094, 170097, 170100, 170103, 170106, 170109,
+ 170112, 170115, 170121, 170124, 170128, 170133, 170137, 170142, 170147,
+ 170153, 170159, 170165, 170170, 170178, 170184, 170187, 170190, 170193,
+ 170196, 170199, 170202, 170205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170210, 170217,
+ 170225, 170233, 170241, 170248, 170256, 170264, 170272, 170279, 170287,
+ 170295, 170302, 170310, 170318, 170325, 170333, 170341, 170348, 170356,
+ 170364, 170371, 170379, 170387, 170395, 170403, 170411, 170416, 170420,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170423, 170429, 170435, 170441,
+ 170445, 170451, 170457, 170463, 170469, 170475, 170481, 170487, 170493,
+ 170499, 170505, 170511, 170517, 170523, 170529, 170535, 170541, 170547,
+ 170553, 170559, 170565, 170571, 170577, 170583, 170589, 170595, 170601,
+ 170607, 170613, 170619, 170625, 170631, 170637, 170643, 170649, 170655,
+ 170661, 170667, 170673, 170679, 0, 0, 0, 0, 170685, 170696, 170707,
+ 170718, 170729, 170740, 170751, 170762, 170773, 0, 0, 0, 0, 0, 0, 0,
+ 170784, 170789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170794, 170800,
+ 170806, 170812, 170818, 170824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170830,
+ 170832, 170834, 170838, 170843, 170848, 170850, 170856, 170861, 170863,
+ 170869, 170873, 170875, 170879, 170885, 170891, 170897, 170902, 170907,
+ 170914, 170921, 170928, 170933, 170940, 170947, 170954, 170958, 170965,
+ 170974, 170983, 170990, 170995, 170999, 171003, 171005, 171008, 171011,
+ 171018, 171025, 171035, 171040, 171045, 171050, 171055, 171057, 171063,
+ 171067, 171069, 171071, 171073, 171075, 171079, 171083, 171087, 171089,
+ 171093, 171095, 171099, 171101, 171103, 171105, 171107, 171112, 171117,
+ 171119, 171125, 171129, 171133, 171141, 171143, 171145, 171147, 171149,
+ 171151, 171153, 171155, 171157, 171159, 171161, 171165, 171169, 171171,
+ 171173, 171175, 171177, 171179, 171184, 171190, 171194, 171198, 171202,
+ 171206, 171211, 171215, 171217, 171219, 171223, 171229, 171231, 171233,
+ 171235, 171239, 171248, 171254, 171258, 171262, 171264, 171266, 171269,
+ 171271, 171273, 171275, 171279, 171281, 171285, 171290, 171292, 171297,
+ 171303, 171310, 171314, 171318, 171322, 171326, 171332, 171336, 171344,
+ 171351, 171353, 171355, 171359, 171363, 171365, 171369, 171373, 171375,
+ 171379, 171381, 171385, 171389, 171393, 171397, 171401, 171405, 171409,
+ 171413, 171419, 171423, 171427, 171438, 171443, 171447, 171451, 171457,
+ 171461, 171465, 171469, 171476, 171483, 171487, 171491, 171495, 171499,
+ 171503, 171510, 171512, 171516, 171518, 171520, 171524, 171528, 171532,
+ 171534, 171538, 171542, 171546, 171550, 171554, 171556, 171560, 171562,
+ 171568, 171571, 171576, 171578, 171580, 171583, 171585, 171587, 171590,
+ 171597, 171604, 171611, 171616, 171620, 171622, 171624, 171626, 171630,
+ 171632, 171636, 171640, 171644, 171646, 171650, 171652, 171656, 171660,
+ 171667, 171669, 171678, 171687, 171696, 171702, 171704, 171709, 171713,
+ 171717, 171719, 171725, 171729, 171731, 171735, 171739, 171741, 171745,
+ 171750, 171754, 171760, 171766, 171768, 171770, 171776, 171778, 171782,
+ 171786, 171788, 171792, 171794, 171798, 171802, 171806, 171809, 171812,
+ 171817, 171822, 171824, 171827, 171829, 171836, 171840, 171842, 171849,
+ 171856, 171863, 171870, 171877, 171879, 171881, 171883, 171887, 171889,
+ 171891, 171893, 171895, 171897, 171899, 171901, 171903, 171905, 171907,
+ 171909, 171911, 171913, 171915, 171917, 171919, 171921, 171923, 171925,
+ 171927, 171929, 171931, 171935, 171937, 171939, 171941, 171945, 171947,
+ 171951, 171953, 171955, 171959, 171963, 171969, 171971, 171973, 171975,
+ 171977, 171981, 171985, 171987, 171991, 171995, 171999, 172003, 172007,
+ 172011, 172015, 172019, 172023, 172027, 172031, 172035, 172039, 172043,
+ 172047, 172051, 172055, 172059, 172061, 172063, 172065, 172067, 172069,
+ 172071, 172073, 172081, 172089, 172097, 172105, 172110, 172115, 172120,
+ 172124, 172128, 172133, 172138, 172140, 172144, 172146, 172148, 172150,
+ 172152, 172154, 172156, 172158, 172162, 172164, 172166, 172168, 172172,
+ 172176, 172180, 172184, 172188, 172190, 172196, 172202, 172204, 172206,
+ 172208, 172210, 172212, 172221, 172228, 172235, 172239, 172246, 172251,
+ 172258, 172267, 172272, 172276, 172280, 172282, 172286, 172288, 172292,
+ 172296, 172298, 172302, 172306, 172310, 172312, 172314, 172320, 172322,
+ 172324, 172326, 172330, 172334, 172336, 172340, 172342, 172344, 172347,
+ 172351, 172353, 172357, 172359, 172361, 172366, 172368, 172372, 172376,
+ 172379, 172383, 172387, 172391, 172395, 172399, 172403, 172407, 172412,
+ 172416, 172420, 172429, 172434, 172437, 172439, 172442, 172445, 172450,
+ 172452, 172455, 172460, 172464, 172467, 172471, 172475, 172478, 172483,
+ 172487, 172491, 172495, 172499, 172505, 172511, 172517, 172523, 172528,
+ 172539, 172541, 172545, 172547, 172549, 172553, 172557, 172559, 172563,
+ 172569, 172574, 172580, 172582, 172586, 172590, 172597, 172604, 172608,
+ 172610, 172612, 172616, 172618, 172622, 172626, 172630, 172632, 172634,
+ 172641, 172645, 172649, 172653, 172657, 172661, 172663, 172667, 172669,
+ 172671, 172675, 172677, 172681, 172685, 172691, 172695, 172699, 172703,
+ 172705, 172708, 172712, 172719, 172728, 172737, 172746, 172755, 172757,
+ 172761, 172763, 172767, 172778, 172782, 172788, 172794, 172799, 172801,
+ 172806, 172810, 172812, 172814, 172816, 172820, 172824, 172828, 172833,
+ 172844, 172860, 172873, 172886, 172890, 172894, 172900, 172902, 172910,
+ 172918, 172920, 172924, 172930, 172936, 172943, 172950, 172952, 172954,
+ 172958, 172960, 172966, 172968, 172971, 172975, 172981, 172987, 172998,
+ 173004, 173011, 173019, 173023, 173031, 173039, 173045, 173051, 173058,
+ 173060, 173064, 173066, 173068, 173073, 173075, 173077, 173079, 173081,
+ 173085, 173095, 173101, 173105, 173109, 173113, 173119, 173125, 173131,
+ 173137, 173142, 173147, 173153, 173159, 173166, 173173, 173180, 173187,
+ 173192, 173200, 173204, 173213, 173222, 173228, 173232, 173236, 173240,
+ 173243, 173248, 173250, 173252, 173254, 173261, 173266, 173273, 173280,
+ 173287, 173295, 173303, 173311, 173319, 173327, 173335, 173343, 173351,
+ 173359, 173365, 173371, 173377, 173383, 173389, 173395, 173401, 173407,
+ 173413, 173419, 173425, 173431, 173434, 173443, 173452, 173454, 173461,
+ 173465, 173467, 173469, 173473, 173479, 173483, 173485, 173495, 173501,
+ 173505, 173507, 173511, 173513, 173517, 173524, 173531, 173538, 173543,
+ 173548, 173557, 173563, 173568, 173572, 173577, 173581, 173588, 173592,
+ 173595, 173599, 173605, 173611, 173615, 173619, 173624, 173630, 173639,
+ 173650, 173656, 173662, 173668, 173678, 173693, 173702, 173710, 173718,
+ 173726, 173734, 173742, 173750, 173758, 173766, 173774, 173782, 173790,
+ 173798, 173801, 173805, 173810, 173815, 173817, 173821, 173830, 173839,
+ 173847, 173851, 173855, 173860, 173865, 173870, 173872, 173877, 173881,
+ 173883, 173887, 173891, 173897, 173902, 173910, 173915, 173920, 173925,
+ 173932, 173935, 173937, 173941, 173946, 173952, 173956, 173960, 173966,
+ 173972, 173974, 173978, 173982, 173986, 173990, 173994, 173996, 173998,
+ 174000, 174002, 174008, 174014, 174018, 174020, 174022, 174024, 174033,
+ 174037, 174044, 174051, 174053, 174056, 174060, 174066, 174070, 174074,
+ 174076, 174084, 174088, 174092, 174097, 174102, 174107, 174112, 174117,
+ 174122, 174127, 174132, 174137, 174142, 174146, 174152, 174156, 174162,
+ 174167, 174174, 174180, 174188, 174192, 174199, 174203, 174207, 174211,
+ 174216, 174221, 174223, 174227, 174236, 174244, 174253, 174267, 174281,
+ 174295, 174302, 174309, 174313, 174322, 174330, 174334, 174343, 174350,
+ 174354, 174358, 174362, 174366, 174373, 174377, 174381, 174385, 174389,
+ 174396, 174405, 174414, 174421, 174433, 174445, 174449, 174453, 174457,
+ 174461, 174465, 174469, 174477, 174485, 174494, 174498, 174502, 174506,
+ 174510, 174514, 174518, 174524, 174531, 174535, 174547, 174555, 174559,
+ 174563, 174567, 174571, 174577, 174584, 174595, 174605, 174616, 174627,
+ 174636, 174647, 174653, 174659, 174665, 174671, 174677, 174681, 174688,
+ 174697, 174704, 174710, 174714, 174718, 174722, 174731, 174743, 174747,
+ 174754, 174761, 174768, 174776, 174783, 174791, 174799, 174808, 174816,
+ 174825, 174834, 174844, 174853, 174863, 174873, 174884, 174894, 174905,
+ 174912, 174920, 174927, 174935, 174943, 174952, 174960, 174969, 174976,
+ 174988, 174995, 175007, 175010, 175014, 175017, 175021, 175027, 175034,
+ 175041, 175049, 175054, 175060, 175071, 175081, 175092, 175097, 175102,
+ 175108, 175113, 175120, 175124, 175130, 175132, 175134, 175138, 175142,
+ 175146, 175155, 175157, 175159, 175162, 175164, 175166, 175170, 175172,
+ 175176, 175178, 175182, 175184, 175186, 175190, 175194, 175200, 175202,
+ 175206, 175208, 175212, 175216, 175220, 175224, 175226, 175228, 175232,
+ 175236, 175240, 175244, 175246, 175248, 175250, 175256, 175261, 175264,
+ 175272, 175280, 175282, 175287, 175290, 175295, 175306, 175313, 175318,
+ 175323, 175325, 175329, 175331, 175335, 175337, 175341, 175345, 175348,
+ 175351, 175353, 175356, 175358, 175362, 175364, 175366, 175368, 175372,
+ 175374, 175378, 175381, 175388, 175391, 175396, 175399, 175402, 175407,
+ 175411, 175415, 175419, 175421, 175426, 175429, 175433, 175435, 175437,
+ 175441, 175443, 0, 0, 0, 0, 0, 0, 0, 0, 175445, 175450, 175452, 175456,
+ 175458, 175462, 175466, 175472, 175476, 175481, 175484, 175488, 175492,
+ 0, 0, 0, 175496, 175498, 175504, 175508, 175512, 175514, 175518, 175520,
+ 175522, 175526, 175528, 175532, 175536, 0, 0, 0, 175540, 175545, 175550,
+ 175555, 175560, 175565, 175570, 175577, 175584, 175591, 175598, 175603,
+ 175608, 175613, 175618, 175625, 175631, 175638, 175645, 175652, 175657,
+ 175662, 175667, 175672, 175677, 175684, 175691, 175696, 175701, 175708,
+ 175715, 175723, 175731, 175738, 175745, 175753, 175761, 175769, 175776,
+ 175786, 175797, 175802, 175809, 175816, 175823, 175831, 175839, 175850,
+ 175858, 175866, 175874, 175879, 175884, 175889, 175894, 175899, 175904,
+ 175909, 175914, 175919, 175924, 175929, 175934, 175941, 175946, 175951,
+ 175958, 175963, 175968, 175973, 175978, 175983, 175988, 175993, 175998,
+ 176003, 176008, 176013, 176018, 176025, 176033, 176038, 176043, 176050,
+ 176055, 176060, 176065, 176072, 176077, 176084, 176089, 176096, 176101,
+ 176110, 176119, 176124, 176129, 176134, 176139, 176144, 176149, 176154,
+ 176159, 176164, 176169, 176174, 176179, 176184, 176192, 176200, 176205,
+ 176210, 176215, 176220, 176225, 176231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 176237, 176245, 176253, 176261, 176269, 176275, 176281, 176285,
+ 176289, 176295, 176301, 176310, 176314, 176319, 176325, 176329, 176334,
+ 176338, 176342, 176348, 176354, 176364, 176373, 176376, 176381, 176387,
+ 176393, 176404, 176414, 176418, 176423, 176429, 176435, 176444, 176449,
+ 176453, 176458, 176462, 176468, 176474, 176480, 176484, 176487, 176491,
+ 176494, 176497, 176502, 176507, 176514, 176522, 176529, 176536, 176545,
+ 176554, 176561, 176569, 176576, 176583, 176592, 176601, 176608, 176616,
+ 176623, 176630, 176639, 176646, 176654, 176660, 176669, 176677, 176686,
+ 176693, 176703, 176714, 176722, 176730, 176739, 176747, 176755, 176764,
+ 176772, 176782, 176791, 176799, 176807, 176816, 176819, 176824, 176827,
+ 0, 0, 0, 0, 0, 0, 0, 176832, 176838, 176844, 176850, 176856, 176862,
+ 176868, 176874, 176880, 176886, 176892, 176898, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176904, 176912, 176921, 176929,
+ 176938, 176947, 176957, 176966, 176976, 176985, 176995, 177004, 0, 0, 0,
+ 0, 177014, 177022, 177031, 177039, 177048, 177055, 177063, 177070,
+ 177078, 177086, 177095, 177103, 177112, 177122, 177133, 177143, 177154,
+ 177163, 177173, 177182, 177192, 177201, 177211, 177220, 177230, 177238,
+ 177247, 177255, 177264, 177272, 177281, 177289, 177298, 177308, 177319,
+ 177329, 177340, 177344, 177349, 177353, 177358, 177361, 177365, 177368,
+ 177372, 177376, 177381, 177385, 177390, 177395, 177401, 177406, 177412,
+ 177415, 177419, 177422, 0, 0, 0, 0, 0, 0, 0, 0, 177426, 177429, 177433,
+ 177436, 177440, 177445, 177450, 177456, 177462, 177466, 0, 0, 0, 0, 0, 0,
+ 177470, 177476, 177483, 177489, 177496, 177504, 177512, 177521, 177530,
+ 177535, 177541, 177546, 177552, 177559, 177566, 177574, 177582, 177589,
+ 177597, 177604, 177612, 177621, 177630, 177640, 177650, 177656, 177663,
+ 177669, 177676, 177684, 177692, 177701, 177710, 177718, 177727, 177735,
+ 177744, 177754, 177764, 177775, 0, 0, 0, 0, 0, 0, 0, 0, 177786, 177791,
+ 177797, 177802, 177808, 177817, 177827, 177836, 177846, 177853, 177861,
+ 177868, 177876, 177883, 177892, 177901, 177910, 177915, 177922, 177929,
+ 177936, 177941, 177946, 177951, 177956, 177963, 177970, 177977, 177984,
+ 177991, 0, 0, 178000, 178010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178022, 178032, 178041,
+ 178046, 178055, 178063, 178071, 178078, 178082, 178087, 178094, 178103,
+ 178114, 178118, 178121, 178125, 178129, 178133, 178137, 178142, 178146,
+ 178150, 178155, 178159, 178163, 178169, 178175, 178182, 178186, 178190,
+ 178192, 178202, 178211, 178218, 178222, 178226, 178236, 178240, 178244,
+ 178248, 178252, 178260, 178269, 178282, 178293, 178304, 178320, 178329,
+ 178338, 178342, 178344, 178349, 178351, 178353, 178359, 178363, 178365,
+ 178371, 178373, 178375, 178379, 178381, 178385, 178387, 178391, 178395,
+ 178400, 178404, 178408, 178410, 178414, 178416, 178422, 178428, 178434,
+ 178438, 178444, 178448, 178455, 178457, 178461, 178463, 178465, 178467,
+ 178469, 178471, 178473, 178477, 178481, 178488, 178492, 178494, 178499,
+ 178501, 178503, 178505, 178507, 178511, 178515, 178517, 178522, 178527,
+ 178529, 178531, 178533, 178535, 178540, 178542, 178546, 178550, 178552,
+ 178556, 178558, 178571, 178575, 178582, 178594, 178606, 178610, 178614,
+ 178616, 0, 178620, 178627, 178629, 178633, 178635, 178639, 178643,
+ 178645, 178649, 178651, 178653, 178657, 178659, 178661, 178663, 178665,
+ 178667, 178671, 178673, 178675, 178677, 178679, 178681, 178683, 178685,
+ 178689, 178693, 178695, 178697, 178699, 178701, 178703, 178705, 178707,
+ 178709, 178711, 178713, 178715, 178717, 178719, 178721, 178723, 178725,
+ 178727, 178729, 178731, 178733, 178735, 178737, 178739, 178741, 178743,
+ 178745, 178749, 178753, 178761, 178769, 178775, 178782, 178784, 178786,
+ 178788, 178790, 178792, 178794, 178798, 178805, 178809, 178813, 178817,
+ 178821, 178825, 178827, 178831, 178835, 178837, 178839, 178841, 178843,
+ 178845, 178849, 178853, 0, 178857, 178861, 178865, 178869, 178874,
+ 178876, 178878, 178882, 178886, 178891, 178899, 178903, 178911, 178913,
+ 178915, 178917, 178919, 178921, 178923, 178925, 178927, 178931, 178935,
+ 178937, 178939, 178941, 178943, 178949, 178951, 178957, 178961, 178965,
+ 178970, 178972, 178974, 178978, 178980, 178982, 178984, 178986, 178990,
+ 178995, 179000, 179004, 179008, 179010, 179012, 179017, 179022, 179024,
+ 179026, 179030, 179036, 179042, 179048, 179054, 179060, 179066, 179077,
+ 179088, 179100, 179111, 179122, 179133, 179144, 179155, 179166, 179177,
+ 179188, 179199, 179210, 179221, 179232, 179244, 179256, 179268, 179280,
+ 179292, 179304, 179318, 179332, 179347, 179353, 179359, 179365, 179371,
+ 179377, 179383, 179389, 179395, 179401, 179407, 179413, 179419, 179426,
+ 179433, 179440, 179447, 179454, 179461, 179475, 179489, 179504, 179518,
+ 179532, 179546, 179560, 179574, 179588, 179602, 179616, 179630, 179644,
+ 179658, 179672, 179687, 179702, 179717, 179732, 179747, 179762, 179776,
+ 179790, 179805, 179810, 179815, 179821, 179832, 179843, 179855, 179860,
+ 179865, 179870, 179875, 179880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 179885, 179891, 179897, 179903, 179909, 179915, 179921, 179927, 179932,
+ 179937, 179942, 179947, 179952, 179957, 0, 0, 179962, 179966, 179970,
+ 179972, 179974, 0, 0, 0, 179978, 179983, 179987, 0, 0, 0, 0, 0, 179989,
+ 179991, 179993, 179995, 179997, 180001, 180003, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 180007, 180011, 180013, 180015, 180017, 180021, 180023, 180027,
+ 180029, 180032, 180034, 180038, 180040, 180042, 180043, 180045, 180047,
+ 180049, 180053, 180055, 180057, 180061, 180063, 180065, 180067, 0, 0, 0,
+ 0, 0, 0, 0, 180069, 180071, 180073, 180075, 180077, 180081, 180083, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 180085, 180089, 180091, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 180095, 180097, 180101, 180103, 180105, 180107, 180109, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180111, 180114, 180117,
+ 180120, 180123, 180126, 180129, 180132, 180135, 180138, 180141, 180144,
+ 180147, 180150, 180153, 180156, 180159, 180162, 180165, 180168, 180171,
+ 180174, 180177, 180180, 180183, 180186, 180189, 180192, 180195, 180198,
+ 180201, 180204, 180207, 180210, 180213, 180216, 180219, 180222, 180225,
+ 180228, 180231, 180234, 180237, 180240, 180243, 180246, 180249, 180252,
+ 180255, 180258, 180261, 180264, 180267, 180270, 180273, 180276, 180279,
+ 180282, 180285, 180288, 180291, 180303, 180315, 180327, 180339, 180350,
+ 180362, 180374, 180386, 180398, 180409, 180422, 180435, 180447, 180460,
+ 180472, 180484, 180497, 180509, 180522, 180534, 180546, 180559, 180571,
+ 180583, 180595, 180607, 180618, 180630, 180642, 180654, 180666, 180677,
+ 180690, 180703, 180715, 180728, 180740, 180752, 180765, 180777, 180790,
+ 180802, 180814, 180827, 180839, 180851, 180863, 180875, 180883, 180891,
+ 180899, 180907, 180913, 180919, 180925, 180931, 180937, 180943, 180950,
+ 180957, 180964, 180971, 180978, 180985, 180993, 181001, 181009, 181017,
+ 181025, 181032, 181038, 181044, 181051, 181057, 181064, 181070, 181076,
+ 181083, 181089, 181096, 181102, 181108, 181114, 181120, 181126, 181138,
+ 0, 181151, 181164, 181170, 181178, 181183, 181190, 181197, 181205,
+ 181213, 181221, 181229, 181237, 181245, 181257, 181269, 181280, 181291,
+ 181306, 181321, 181336, 181351, 181369, 181387, 181406, 181425, 181443,
+ 181461, 181468, 181476, 181480, 181485, 181491, 181497, 181507, 181518,
+ 181529, 181539, 181549, 181553, 181557, 181562, 181568, 181574, 181584,
+ 181590, 181599, 181608, 181617, 181626, 181632, 181636, 181645, 181653,
+ 181661, 181668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181673, 181678,
+ 181682, 181686, 181690, 181694, 181698, 181702, 181706, 181710, 0, 0, 0,
+ 0, 0, 0, 181714, 181718, 181722, 181726, 181730, 181734, 181738, 181742,
+ 181746, 181750, 181754, 181758, 181762, 181766, 181770, 181774, 181778,
+ 181782, 181786, 181790, 181794, 181798, 181802, 181806, 181810, 181814,
+ 181818, 181822, 181826, 181830, 181834, 181838, 181842, 181846, 181850,
+ 181854, 181858, 181862, 181866, 181870, 181874, 181878, 181882, 181886,
+ 181890, 181894, 181898, 181902, 181906, 181910, 181914, 181918, 181922,
+ 181926, 181930, 181934, 181938, 181942, 181946, 181950, 181954, 181958,
+ 181962, 181966, 181970, 181974, 181978, 181982, 181986, 181990, 181994,
+ 181998, 182002, 182006, 182010, 182014, 182018, 182022, 182026, 182030,
+ 182034, 182038, 182042, 182046, 182050, 182054, 182058, 182062, 182066,
+ 182070, 182074, 182078, 182082, 182086, 182090, 182094, 182098, 182102,
+ 182106, 182110, 182114, 182118, 182122, 182126, 182130, 182134, 182138,
+ 182142, 182146, 182150, 182154, 182158, 182162, 182166, 182170, 182174,
+ 182178, 182182, 182186, 182190, 182194, 182198, 182202, 182206, 182210,
+ 182214, 182218, 182222, 182226, 182230, 182234, 182238, 182242, 182246,
+ 182250, 182254, 182258, 182262, 182266, 182270, 182274, 182278, 182282,
+ 182286, 182290, 182294, 182298, 182302, 182306, 182310, 182314, 182318,
+ 182322, 182326, 182330, 182334, 182338, 182342, 182346, 182350, 182354,
+ 182358, 182362, 182366, 182370, 182374, 182378, 182382, 182386, 182390,
+ 182394, 182398, 182402, 182406, 182410, 182414, 182418, 182422, 182426,
+ 182430, 182434, 182438, 182442, 182446, 182450, 182454, 182458, 182462,
+ 182466, 182470, 182474, 182478, 182482, 182486, 182490, 182494, 182498,
+ 182502, 182506, 182510, 182514, 182518, 182522, 182526, 182530, 182534,
+ 182538, 182542, 182546, 182550, 182554, 182558, 182562, 182566, 182570,
+ 182574, 182578, 182582, 182586, 182590, 182594, 182598, 182602, 182606,
+ 182610, 182614, 182618, 182622, 182626, 182630, 182634, 182638, 182642,
+ 182646, 182650, 182654, 182658, 182662, 182666, 182670, 182674, 182678,
+ 182682, 182686, 182690, 182694, 182698, 182702, 182706, 182710, 182714,
+ 182718, 182722, 182726, 182730, 182734, 182738, 182742, 182746, 182750,
+ 182754, 182758, 182762, 182766, 182770, 182774, 182778, 182782, 182786,
+ 182790, 182794, 182798, 182802, 182806, 182810, 182814, 182818, 182822,
+ 182826, 182830, 182834, 182838, 182842, 182846, 182850, 182854, 182858,
+ 182862, 182866, 182870, 182874, 182878, 182882, 182886, 182890, 182894,
+ 182898, 182902, 182906, 182910, 182914, 182918, 182922, 182926, 182930,
+ 182934, 182938, 182942, 182946, 182950, 182954, 182958, 182962, 182966,
+ 182970, 182974, 182978, 182982, 182986, 182990, 182994, 182998, 183002,
+ 183006, 183010, 183014, 183018, 183022, 183026, 183030, 183034, 183038,
+ 183042, 183046, 183050, 183054, 183058, 183062, 183066, 183070, 183074,
+ 183078, 183082, 183086, 183090, 183094, 183098, 183102, 183106, 183110,
+ 183114, 183118, 183122, 183126, 183130, 183134, 183138, 183142, 183146,
+ 183150, 183154, 183158, 183162, 183166, 183170, 183174, 183178, 183182,
+ 183186, 183190, 183194, 183198, 183202, 183206, 183210, 183214, 183218,
+ 183222, 183226, 183230, 183234, 183238, 183242, 183246, 183250, 183254,
+ 183258, 183262, 183266, 183270, 183274, 183278, 183282, 183286, 183290,
+ 183294, 183298, 183302, 183306, 183310, 183314, 183318, 183322, 183326,
+ 183330, 183334, 183338, 183342, 183346, 183350, 183354, 183358, 183362,
+ 183366, 183370, 183374, 183378, 183382, 183386, 183390, 183394, 183398,
+ 183402, 183406, 183410, 183414, 183418, 183422, 183426, 183430, 183434,
+ 183438, 183442, 183446, 183450, 183454, 183458, 183462, 183466, 183470,
+ 183474, 183478, 183482, 183486, 183490, 183494, 183498, 183502, 183506,
+ 183510, 183514, 183518, 183522, 183526, 183530, 183534, 183538, 183542,
+ 183546, 183550, 183554, 183558, 183562, 183566, 183570, 183574, 183578,
+ 183582, 183586, 183590, 183594, 183598, 183602, 183606, 183610, 183614,
+ 183618, 183622, 183626, 183630, 183634, 183638, 183642, 183646, 183650,
+ 183654, 183658, 183662, 183666, 183670, 183674, 183678, 183682, 183686,
+ 183690, 183694, 183698, 183702, 183706, 183710, 183714, 183718, 183722,
+ 183726, 183730, 183734, 183738, 183742, 183746, 183750, 183754, 183758,
+ 183762, 183766, 183770, 183774, 183778, 183782, 183786, 183790, 183794,
+ 183798, 183802, 183806, 183810, 183814, 183818, 183822, 183826, 183830,
+ 183834, 183838, 183842, 183846, 183850, 183854, 183858, 183862, 183866,
+ 183870, 183874, 183878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183882, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 183886, 183889, 183893, 183897, 183900, 183904, 183908, 183911,
+ 183914, 183918, 183922, 183925, 183928, 183931, 183934, 183939, 183942,
+ 183946, 183949, 183952, 183955, 183958, 183961, 183964, 183967, 183970,
+ 183973, 183976, 183979, 183983, 183987, 183991, 183995, 184000, 184005,
+ 184011, 184017, 184023, 184028, 184034, 184040, 184046, 184051, 184057,
+ 184063, 184068, 184074, 184080, 184085, 184091, 184097, 184102, 184108,
+ 184114, 184119, 184125, 184131, 184137, 184143, 184149, 184153, 184158,
+ 184162, 184167, 184171, 184176, 184181, 184187, 184193, 184199, 184204,
+ 184210, 184216, 184222, 184227, 184233, 184239, 184244, 184250, 184256,
+ 184261, 184267, 184273, 184278, 184284, 184290, 184295, 184301, 184307,
+ 184313, 184319, 184325, 184330, 184334, 184339, 184342, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 184346, 184349, 184352, 184355, 184358, 184361, 184364, 184367,
+ 184370, 184373, 184376, 184379, 184382, 184385, 184388, 184391, 184394,
+ 184397, 184400, 184403, 184406, 184409, 184412, 184415, 184418, 184421,
+ 184424, 184427, 184430, 184433, 184436, 184439, 184442, 184445, 184448,
+ 184451, 184454, 184457, 184460, 184463, 184466, 184469, 184472, 184475,
+ 184478, 184481, 184484, 184487, 184490, 184493, 184496, 184499, 184502,
+ 184505, 184508, 184511, 184514, 184517, 184520, 184523, 184526, 184529,
+ 184532, 184535, 184538, 184541, 184544, 184547, 184550, 184553, 184556,
+ 184559, 184562, 184565, 184568, 184571, 184574, 184577, 184580, 184583,
+ 184586, 184589, 184592, 184595, 184598, 184601, 184604, 184607, 184610,
+ 184613, 184616, 184619, 184622, 184625, 184628, 184631, 184634, 184637,
+ 184640, 184643, 184646, 184649, 184652, 184655, 184658, 184661, 184664,
+ 184667, 184670, 184673, 184676, 184679, 184682, 184685, 184688, 184691,
+ 184694, 184697, 184700, 184703, 184706, 184709, 184712, 184715, 184718,
+ 184721, 184724, 184727, 184730, 184733, 184736, 184739, 184742, 184745,
+ 184748, 184751, 184754, 184757, 184760, 184763, 184766, 184769, 184772,
+ 184775, 184778, 184781, 184784, 184787, 184790, 184793, 184796, 184799,
+ 184802, 184805, 184808, 184811, 184814, 184817, 184820, 184823, 184826,
+ 184829, 184832, 184835, 184838, 184841, 184844, 184847, 184850, 184853,
+ 184856, 184859, 184862, 184865, 184868, 184871, 184874, 184877, 184880,
+ 184883, 184886, 184889, 184892, 184895, 184898, 184901, 184904, 184907,
+ 184910, 184913, 184916, 184919, 184922, 184925, 184928, 184931, 184934,
+ 184937, 184940, 184943, 184946, 184949, 184952, 184955, 184958, 184961,
+ 184964, 184967, 184970, 184973, 184976, 184979, 184982, 184985, 184988,
+ 184991, 184994, 184997, 185000, 185003, 185006, 185009, 185012, 185015,
+ 185018, 185021, 185024, 185027, 185030, 185033, 185036, 185039, 185042,
+ 185045, 185048, 185051, 185054, 185057, 185060, 185063, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185066, 185068, 185070, 185075, 185077,
+ 185082, 185084, 185089, 185091, 185096, 185098, 185100, 185102, 185104,
+ 185106, 185108, 185110, 185112, 185114, 185118, 185122, 185124, 185126,
+ 185130, 185134, 185139, 185141, 185143, 185145, 185149, 185152, 185154,
+ 185158, 185160, 185164, 185166, 185170, 185173, 185175, 185179, 185183,
+ 185185, 185191, 185193, 185198, 185200, 185205, 185207, 185212, 185214,
+ 185219, 185221, 185225, 185227, 185231, 185233, 185240, 185242, 185244,
+ 185246, 185251, 185253, 185255, 185257, 185259, 185261, 185266, 185270,
+ 185272, 185277, 185281, 185283, 185288, 185292, 185294, 185299, 185303,
+ 185305, 185307, 185309, 185311, 185315, 185317, 185322, 185324, 185330,
+ 185332, 185338, 185340, 185342, 185344, 185348, 185350, 185357, 185359,
+ 185366, 185368, 185374, 185380, 185382, 185389, 185396, 185398, 185404,
+ 185409, 185411, 185417, 185423, 185425, 185431, 185437, 185439, 185445,
+ 185449, 185451, 185456, 185458, 185460, 185465, 185467, 185469, 185475,
+ 185477, 185482, 185486, 185488, 185493, 185497, 185499, 185505, 185507,
+ 185511, 185513, 185517, 185519, 185526, 185533, 185535, 185542, 185549,
+ 185551, 185556, 185558, 185566, 185568, 185574, 185576, 185582, 185584,
+ 185588, 185590, 185596, 185598, 185602, 185604, 185610, 185612, 185614,
+ 185616, 185621, 185626, 185628, 185630, 185640, 185645, 185652, 185659,
+ 185664, 185669, 185681, 185685, 185689, 185693, 185697, 185699, 185701,
+ 185703, 185705, 185707, 185709, 185711, 185713, 185715, 185717, 185719,
+ 185721, 185723, 185725, 185727, 185729, 185731, 185733, 185735, 185737,
+ 185739, 185745, 185752, 185757, 185765, 185773, 185778, 185780, 185782,
+ 185784, 185786, 185788, 185790, 185792, 185794, 185796, 185798, 185800,
+ 185802, 185804, 185806, 185808, 185810, 185821, 185826, 185828, 185830,
+ 185836, 185848, 185854, 185860, 185866, 185872, 185876, 185887, 185889,
+ 185891, 185893, 185895, 185897, 185899, 185901, 185903, 185905, 185907,
+ 185909, 185911, 185913, 185915, 185917, 185919, 185921, 185923, 185925,
+ 185927, 185929, 185931, 185933, 185935, 185937, 185939, 185941, 185943,
+ 185945, 185947, 185949, 185951, 185953, 185955, 185957, 185959, 185961,
+ 185963, 185965, 185967, 185969, 185971, 185973, 185975, 185977, 185979,
+ 185981, 185983, 185985, 185987, 185989, 185991, 185993, 185995, 185997,
+ 185999, 186001, 186003, 186005, 186007, 186009, 186011, 186013, 186015,
+ 186017, 186019, 186021, 186023, 186025, 186027, 186029, 186031, 186033,
+ 186035, 186037, 186039, 186041, 186043, 186045, 186047, 186049, 186051,
+ 186053, 186055, 186057, 186059, 186061, 186063, 186065, 186067, 186069,
+ 186071, 186073, 186075, 186077, 186079, 186081, 186083, 186085, 186087,
+ 186089, 186091, 186093, 186095, 186097, 186099, 186101, 186103, 186105,
+ 186107, 186109, 186111, 186113, 186115, 186117, 186119, 186121, 186123,
+ 186125, 186127, 186129, 186131, 186133, 186135, 186137, 186139, 186141,
+ 186143, 186145, 186147, 186149, 186151, 186153, 186155, 186157, 186159,
+ 186161, 186163, 186165, 186167, 186169, 186171, 186173, 186175, 186177,
+ 186179, 186181, 186183, 186185, 186187, 186189, 186191, 186193, 186195,
+ 186197, 186199, 186201, 186203, 186205, 186207, 186209, 186211, 186213,
+ 186215, 186217, 186219, 186221, 186223, 186225, 186227, 186229, 186231,
+ 186233, 186235, 186237, 186239, 186241, 186243, 186245, 186247, 186249,
+ 186251, 186253, 186255, 186257, 186259, 186261, 186263, 186265, 186267,
+ 186269, 186271, 186273, 186275, 186277, 186279, 186281, 186283, 186285,
+ 186287, 186289, 186291, 186293, 186295, 186297, 186299, 186301, 186303,
+ 186305, 186307, 186309, 186311, 186313, 186315, 186317, 186319, 186321,
+ 186323, 186325, 186327, 186329, 186331, 186333, 186335, 186337, 186339,
+ 186341, 186343, 186345, 186347, 186349, 186351, 186353, 186355, 186357,
+ 186359, 186361, 186363, 186365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 186367, 186371, 186375, 186380, 186384, 186388, 186392,
+ 186396, 186400, 186404, 186408, 186412, 186416, 186426, 186436, 186447,
+ 186458, 186468, 186478, 186488, 186498, 186512, 186526, 186540, 186554,
+ 186563, 186572, 186585, 186598, 186611, 186624, 186634, 186644, 186655,
+ 186666, 186677, 186688, 186699, 186708, 186718, 186728, 186738, 186748,
+ 186759, 186770, 186781, 186792, 186803, 186814, 186825, 186836, 186847,
+ 186858, 186869, 186883, 186894, 186908, 186916, 186927, 186935, 186943,
+ 186951, 186959, 186967, 186975, 186985, 186995, 187005, 187015, 187025,
+ 187035, 187045, 187055, 187063, 187072, 187081, 187090, 187099, 187107,
+ 187115, 187125, 187135, 187146, 187157, 187169, 187180, 187190, 187201,
+ 187211, 187222, 187230, 187235, 187239, 187243, 187247, 187251, 187255,
+ 187259, 187263, 187267, 187271, 187275, 187279, 187282, 187285, 187289,
+ 187293, 187297, 187301, 187305, 187309, 187313, 187317, 187321, 187325,
+ 187329, 187333, 187337, 187341, 187345, 187349, 187353, 187357, 187361,
+ 187365, 187369, 187373, 187377, 187381, 187385, 187389, 187393, 187397,
+ 187401, 187405, 187409, 187413, 187417, 187421, 187425, 187429, 187433,
+ 187437, 187441, 187445, 187449, 187453, 187457, 187461, 187465, 187469,
+ 187473, 187477, 187481, 187485, 187489, 187493, 187497, 187501, 187505,
+ 187509, 187513, 187517, 187521, 187525, 187529, 187533, 187537, 187541,
+ 187545, 187549, 187553, 187557, 187561, 187565, 187569, 187573, 187577,
+ 187581, 187585, 187589, 187593, 187597, 187601, 187605, 187609, 187613,
+ 187617, 187621, 187625, 187628, 187632, 187636, 187640, 187644, 187648,
+ 187652, 187656, 187660, 187664, 187668, 187672, 187676, 187680, 187684,
+ 187688, 187692, 187696, 187700, 187704, 187708, 187712, 187716, 187720,
+ 187724, 187728, 187732, 187736, 187740, 187744, 187748, 187752, 187756,
+ 187760, 187764, 187768, 187772, 187776, 187780, 187784, 187788, 187792,
+ 187796, 187800, 187804, 187808, 187812, 187816, 187820, 187824, 187828,
+ 187832, 187836, 187840, 187844, 187848, 187852, 187856, 187860, 187864,
+ 187868, 187872, 187876, 187880, 187884, 187888, 187892, 187896, 187900,
+ 187904, 187908, 187912, 187916, 187920, 187924, 187928, 187932, 187936,
+ 187940, 187944, 187948, 187952, 187956, 187960, 187964, 187968, 187972,
+ 187976, 187980, 187984, 187988, 187992, 187996, 188000, 188004, 188008,
+ 188012, 188016, 188020, 188024, 188028, 188032, 188036, 188040, 188044,
+ 188048, 188052, 188056, 188060, 188064, 188068, 188072, 188076, 188080,
+ 188084, 188088, 188092, 188096, 188100, 188104, 188108, 188112, 188116,
+ 188120, 188124, 188128, 188132, 188136, 188140, 188144, 188148, 188152,
+ 188156, 188160, 188164, 188168, 188172, 188176, 188180, 188184, 188188,
+ 188192, 188196, 188200, 188204, 188208, 188212, 188216, 188220, 188224,
+ 188228, 188232, 188236, 188240, 188244, 188248, 188252, 188256, 188260,
+ 188264, 188268, 188272, 188276, 188280, 188284, 188288, 188292, 188296,
+ 188300, 188304, 188308, 188312, 188316, 188320, 188324, 188328, 188332,
+ 188336, 188340, 188344, 188348, 188352, 188356, 188360, 188364, 188368,
+ 188372, 188376, 188380, 188384, 188388, 188392, 188397, 188402, 188407,
+ 188411, 188417, 188424, 188431, 188438, 188445, 188452, 188459, 188466,
+ 188473, 188480, 188487, 188494, 188501, 188508, 188514, 188520, 188527,
+ 188533, 188540, 188547, 188554, 188561, 188568, 188575, 188582, 188589,
+ 188596, 188603, 188610, 188617, 188624, 188630, 188636, 188642, 188649,
+ 188658, 188667, 188676, 188685, 188690, 188695, 188702, 188709, 188716,
+ 188723, 188730, 188736, 188742, 188748, 188754, 188760, 188766, 188772,
+ 188777, 188783, 188793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
};
/* name->code dictionary */
-static const unsigned int code_hash[] = {
+static const unsigned int code_hash[] = {
74224, 4851, 0, 0, 0, 0, 7929, 0, 0, 0, 0, 127931, 0, 42833, 983091,
- 12064, 110752, 129548, 194597, 69850, 65842, 0, 0, 0, 78159, 68476,
- 72392, 1373, 0, 0, 5816, 0, 0, 4231, 0, 0, 4233, 4234, 4232, 68885,
- 70351, 0, 7404, 72393, 0, 0, 0, 0, 0, 41601, 8874, 0, 0, 0, 0, 0, 0,
- 41603, 9784, 0, 9188, 41600, 0, 0, 0, 0, 3535, 0, 0, 0, 66797, 0, 74491,
- 0, 3404, 100419, 0, 72411, 1759, 100417, 0, 100418, 69972, 11240, 121038,
- 100416, 127764, 0, 0, 0, 0, 0, 69970, 0, 0, 9834, 43249, 2234, 983872, 0,
- 0, 0, 0, 92417, 0, 74398, 12035, 0, 983074, 43548, 0, 0, 0, 0, 0, 64318,
- 917549, 0, 3390, 74483, 43265, 0, 983865, 0, 0, 0, 3400, 0, 0, 11647, 0,
- 0, 0, 0, 2121, 128741, 4043, 8712, 0, 983795, 0, 121172, 0, 129456, 0, 0,
- 93042, 0, 0, 983856, 0, 0, 0, 11851, 0, 3181, 66002, 0, 69601, 0, 66021,
- 0, 194588, 5457, 5440, 0, 93981, 65282, 2843, 5355, 0, 129333, 69971,
- 5194, 11657, 128353, 0, 0, 0, 0, 0, 0, 100525, 0, 0, 74350, 0, 10682,
- 110820, 10602, 800, 70044, 118883, 0, 0, 64930, 118940, 67853, 72001, 0,
- 762, 120485, 0, 0, 0, 10906, 1353, 6960, 0, 0, 5828, 8724, 0, 0, 0, 0, 0,
- 7080, 0, 0, 0, 0, 72388, 0, 0, 0, 0, 68878, 0, 0, 0, 7240, 0, 556, 0, 0,
- 0, 0, 0, 72397, 0, 0, 0, 0, 0, 0, 0, 0, 72986, 0, 0, 43931, 0, 11093, 0,
- 0, 125016, 7341, 66801, 68527, 0, 1874, 0, 0, 129314, 0, 0, 0, 0, 0, 0,
- 7688, 0, 0, 9036, 0, 0, 66389, 0, 121347, 0, 0, 10100, 0, 2725, 0, 0,
- 43981, 42128, 0, 0, 68146, 0, 0, 0, 0, 71349, 7859, 1945, 0, 0, 0, 65918,
- 7188, 9992, 0, 7389, 127008, 71341, 0, 0, 0, 528, 129681, 44017, 11429,
- 71347, 0, 0, 120864, 0, 0, 0, 11530, 73102, 6188, 0, 0, 68208, 1823, 0,
- 0, 92928, 0, 0, 7233, 92929, 0, 0, 6639, 0, 0, 123149, 0, 1176, 0, 0,
- 8276, 128667, 0, 0, 68892, 42931, 0, 0, 0, 0, 0, 0, 0, 5388, 0, 0, 0,
- 11310, 0, 123607, 0, 68888, 4199, 119264, 0, 119020, 0, 0, 9560, 0, 0,
- 43869, 0, 0, 0, 83172, 0, 0, 0, 83173, 101559, 128875, 0, 0, 74327, 0, 0,
- 0, 0, 0, 123623, 68886, 0, 0, 0, 8408, 64704, 0, 0, 0, 0, 0, 67999, 0, 0,
- 0, 0, 43049, 0, 43050, 73028, 0, 0, 0, 0, 0, 127396, 0, 69847, 9322, 0,
- 0, 129321, 68192, 120507, 983634, 0, 0, 0, 6199, 67249, 0, 0, 0, 0,
- 11329, 66285, 0, 983086, 0, 0, 0, 0, 41335, 118866, 43401, 0, 41334, 0,
- 0, 0, 983479, 71997, 983478, 128114, 0, 42627, 0, 32, 6187, 0, 123619,
- 983475, 3665, 121083, 42871, 983118, 41336, 0, 0, 983471, 0, 0, 0, 4412,
- 0, 0, 0, 0, 119533, 0, 4181, 0, 0, 127589, 0, 0, 71453, 6181, 74755,
- 917895, 0, 0, 0, 0, 121107, 0, 0, 10073, 0, 100738, 127186, 0, 42844,
- 7498, 1098, 92565, 119530, 0, 0, 10207, 0, 983229, 0, 983555, 0, 9234, 0,
- 6182, 0, 92552, 0, 0, 0, 0, 5471, 9461, 6697, 0, 5473, 0, 0, 0, 0, 0, 0,
- 70073, 0, 0, 7767, 8304, 41339, 0, 983489, 69450, 0, 0, 983487, 43855,
- 41337, 0, 0, 0, 0, 0, 0, 0, 72396, 0, 0, 0, 42633, 0, 0, 0, 0, 0, 0, 0,
- 70005, 129506, 0, 0, 0, 129580, 69817, 128299, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1437, 41617, 0, 0, 0, 128853, 0, 0, 0, 0, 0, 128529, 12113, 0, 42772, 0,
- 0, 7693, 10749, 0, 65210, 5773, 978, 128134, 0, 41619, 10239, 0, 0, 0,
- 74328, 0, 9748, 0, 0, 0, 0, 0, 0, 0, 70681, 0, 72811, 0, 0, 0, 92776, 0,
- 0, 2379, 11325, 0, 0, 67854, 0, 78547, 42209, 0, 120392, 2369, 0, 983984,
- 983985, 0, 0, 73936, 7008, 69415, 122919, 0, 43841, 2367, 127827, 983869,
- 0, 2375, 8060, 6194, 0, 0, 119084, 0, 0, 0, 0, 6961, 0, 0, 0, 68426, 0,
- 42862, 0, 0, 6192, 127900, 42771, 0, 0, 11435, 128445, 118797, 120800, 0,
- 12892, 0, 128621, 67149, 0, 0, 0, 0, 120707, 0, 0, 19954, 0, 121164,
- 8983, 0, 0, 0, 0, 0, 6198, 121344, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 983507, 41323, 0, 0, 92289, 0, 0, 0, 983503, 41321, 12907,
- 3048, 7752, 41320, 0, 0, 12819, 111247, 72127, 0, 0, 0, 0, 0, 72971, 0,
- 0, 0, 0, 78650, 78649, 0, 41326, 0, 11806, 43167, 0, 1245, 0, 66463, 0,
- 0, 0, 0, 0, 194619, 0, 194618, 0, 0, 194620, 0, 70403, 325, 12874, 0,
- 74178, 0, 0, 119110, 0, 0, 0, 0, 0, 0, 983563, 92175, 0, 0, 0, 121049, 0,
- 0, 0, 0, 0, 0, 110844, 11776, 0, 19908, 0, 0, 0, 8753, 69278, 0, 0, 9511,
- 43493, 0, 93032, 6205, 0, 0, 0, 0, 0, 0, 0, 0, 126577, 0, 41607, 0, 0,
- 120617, 0, 0, 0, 7005, 41609, 9580, 0, 401, 0, 43779, 0, 127962, 0,
- 65486, 0, 12857, 0, 11983, 0, 0, 0, 121371, 0, 194971, 74258, 0, 0, 0, 0,
- 0, 0, 8295, 6200, 0, 127864, 0, 0, 71435, 0, 92523, 0, 128631, 0, 0,
- 125197, 0, 0, 0, 127556, 0, 0, 0, 64775, 0, 68862, 120590, 0, 0, 129959,
- 8074, 8199, 126641, 1907, 127269, 4432, 127271, 10808, 120668, 127272,
- 127259, 3888, 127261, 72724, 127263, 127262, 127265, 123169, 121195,
- 127250, 66879, 127252, 100422, 66023, 67363, 7663, 0, 0, 0, 0, 66321, 0,
- 12814, 127248, 127169, 0, 0, 194603, 7641, 92694, 0, 0, 0, 0, 74320,
- 120818, 120268, 0, 128475, 0, 110627, 0, 9622, 128972, 120264, 0, 0, 0,
- 0, 68319, 0, 0, 71484, 0, 0, 0, 69906, 0, 0, 947, 0, 194586, 129059,
- 10969, 119935, 7613, 119937, 119936, 4795, 119930, 119933, 7376, 0, 0, 0,
- 0, 0, 0, 0, 0, 119919, 7216, 119921, 7217, 119915, 7218, 119917, 7219,
- 119927, 119926, 119929, 119928, 7213, 119922, 7214, 7215, 128622, 0,
- 8880, 7685, 128849, 0, 0, 119618, 119853, 8187, 119913, 12815, 7236,
- 7915, 71906, 0, 121284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 0,
- 0, 0, 0, 0, 0, 0, 0, 917909, 0, 110633, 1616, 3795, 67732, 11529, 0,
- 126225, 0, 0, 1138, 194577, 12677, 0, 0, 3239, 0, 0, 194809, 194583, 0,
- 42164, 0, 11778, 0, 43259, 0, 119073, 0, 0, 0, 67094, 129638, 0, 78421,
- 128123, 78418, 0, 0, 0, 0, 43959, 43960, 0, 72257, 0, 9359, 78416, 0, 0,
- 0, 6662, 0, 0, 3863, 0, 41329, 55266, 0, 127822, 41328, 75026, 194569,
- 129516, 0, 0, 0, 119595, 569, 0, 0, 0, 119085, 110669, 0, 0, 11610,
- 11368, 0, 194570, 41331, 1006, 127747, 120883, 1550, 8201, 0, 194811,
- 5499, 43956, 77908, 77910, 77906, 43957, 77904, 77905, 128410, 0, 0,
- 129581, 100447, 43955, 77913, 0, 0, 5511, 0, 983702, 0, 69241, 8255,
- 5512, 128560, 119560, 127858, 64313, 127928, 5906, 1119, 128180, 67088,
- 983362, 0, 113798, 0, 66423, 0, 0, 0, 67089, 0, 0, 0, 0, 128177, 983709,
- 0, 0, 0, 5821, 6186, 129960, 128034, 19961, 0, 983700, 0, 65138, 302,
- 41113, 41115, 0, 6637, 5907, 128789, 0, 43642, 0, 128625, 0, 70345, 5513,
- 6666, 100567, 78442, 5510, 0, 0, 0, 983706, 78437, 0, 0, 0, 110838, 0, 0,
- 0, 92710, 0, 0, 0, 0, 0, 74497, 92395, 120511, 6929, 69412, 0, 110835,
- 64442, 0, 0, 74496, 0, 6674, 43397, 0, 1476, 0, 0, 72276, 3233, 0, 0,
- 10164, 0, 0, 3530, 67243, 0, 111219, 6656, 0, 0, 74647, 8512, 72275,
- 74261, 8967, 0, 0, 0, 72277, 7986, 73782, 120556, 9006, 983562, 72273, 0,
- 7853, 0, 983355, 0, 0, 0, 0, 983952, 0, 0, 0, 0, 0, 0, 0, 0, 127971,
- 67983, 13296, 517, 0, 0, 0, 41528, 19923, 65454, 0, 0, 0, 10531, 7784,
- 41526, 71727, 0, 8057, 1126, 73895, 0, 0, 130040, 119186, 4251, 8235,
- 43142, 0, 489, 71733, 4250, 71731, 110721, 43151, 94177, 71725, 0,
- 121238, 0, 0, 0, 110726, 0, 8711, 6183, 110722, 110723, 0, 0, 7623, 0, 0,
- 9235, 12760, 74176, 0, 0, 0, 0, 3743, 11514, 11078, 74582, 0, 0, 126597,
- 0, 0, 0, 0, 983888, 267, 3393, 127504, 2364, 0, 69233, 6958, 0, 6201, 0,
- 42360, 0, 10652, 41612, 917802, 3402, 917801, 3398, 0, 0, 0, 3391, 70683,
- 0, 92541, 128017, 126087, 126590, 0, 12767, 0, 983375, 64261, 0, 127537,
- 70852, 70347, 0, 6673, 0, 0, 129346, 12438, 0, 0, 0, 71128, 0, 9053,
- 43954, 74523, 0, 0, 0, 6195, 0, 6660, 0, 917760, 917793, 0, 12629, 0, 0,
- 0, 0, 0, 127940, 0, 0, 0, 65448, 0, 0, 121084, 129688, 43949, 0, 78099,
- 0, 983380, 0, 0, 0, 5741, 1131, 0, 0, 74862, 0, 43952, 42533, 119598,
- 78107, 0, 0, 43950, 121297, 118990, 7691, 43951, 578, 0, 0, 0, 42514,
- 74547, 74196, 120608, 74561, 0, 983957, 0, 0, 0, 0, 0, 0, 0, 0, 7241, 0,
- 93846, 119167, 0, 12811, 78082, 3946, 0, 10998, 66807, 673, 0, 0, 0, 0,
- 119301, 0, 68890, 0, 0, 78085, 10267, 0, 74560, 78083, 0, 8729, 0, 0, 0,
- 0, 0, 0, 0, 119296, 0, 0, 0, 120853, 983458, 731, 0, 71904, 128316, 0, 0,
- 0, 1175, 0, 68167, 0, 0, 10793, 0, 67644, 7723, 983453, 0, 0, 0, 0, 5273,
- 0, 5269, 0, 69607, 2404, 5267, 124967, 0, 0, 5277, 0, 0, 6189, 65469,
- 1314, 0, 0, 118873, 8785, 0, 0, 127527, 68414, 43535, 9204, 0, 3879, 0,
- 71696, 6197, 9497, 0, 7567, 64484, 78128, 41390, 41379, 41882, 67647,
- 67279, 70085, 0, 121413, 41388, 64446, 41392, 64288, 41387, 0, 8706,
- 10675, 0, 700, 0, 5775, 0, 7088, 74756, 7499, 0, 78120, 78111, 67251,
- 126557, 0, 0, 128945, 10311, 78115, 6665, 11115, 0, 7618, 10821, 11455,
- 0, 64632, 64447, 0, 0, 78093, 78091, 0, 0, 65033, 0, 6668, 0, 0, 0, 656,
- 69686, 65037, 0, 0, 0, 0, 0, 0, 0, 73014, 0, 0, 917774, 9702, 0, 92273,
- 66580, 118895, 66683, 43640, 3417, 0, 6832, 0, 917768, 0, 917767, 0,
- 4935, 11906, 0, 0, 67296, 92896, 3651, 0, 67294, 70848, 0, 67292, 0,
- 12983, 0, 55272, 0, 0, 1439, 0, 74897, 0, 0, 0, 78373, 0, 42087, 3063, 0,
- 0, 7838, 0, 129282, 0, 0, 67968, 0, 128582, 9078, 92446, 0, 0, 0, 0, 0,
- 0, 119586, 0, 7750, 128422, 68237, 6190, 0, 0, 0, 72340, 9857, 7014,
- 9856, 0, 92620, 120547, 0, 8481, 0, 6202, 0, 10920, 67970, 0, 0, 983292,
- 0, 7843, 65818, 66824, 0, 0, 0, 0, 0, 0, 0, 6657, 207, 0, 69728, 74819,
- 0, 0, 0, 0, 0, 0, 0, 0, 41368, 43974, 488, 0, 0, 71339, 10157, 0, 43034,
- 11982, 0, 0, 0, 0, 0, 41372, 6669, 8504, 72103, 0, 41367, 129328, 119272,
- 0, 11726, 8261, 129793, 304, 129799, 129795, 129822, 129807, 113683,
- 983235, 238, 74522, 0, 0, 19905, 120577, 983469, 129200, 41044, 67640,
- 67302, 64814, 9912, 65939, 983465, 0, 0, 0, 0, 0, 0, 309, 6622, 0, 10858,
- 0, 67636, 0, 72749, 0, 0, 0, 67637, 123138, 9712, 68680, 43970, 0, 65165,
- 93047, 0, 0, 0, 0, 0, 0, 6191, 12944, 0, 0, 67634, 43763, 0, 0, 67635,
- 9370, 41381, 0, 0, 123148, 118817, 0, 3222, 121439, 0, 0, 66663, 0, 0, 0,
- 0, 0, 65732, 121144, 0, 0, 0, 0, 67309, 72192, 41383, 64568, 0, 0, 0, 0,
- 983990, 66725, 0, 0, 0, 0, 0, 67306, 3632, 128246, 0, 8376, 3648, 0,
- 74844, 67639, 3636, 0, 3650, 8837, 0, 0, 0, 43250, 41562, 0, 0, 68839,
- 3640, 127190, 0, 11781, 0, 0, 0, 0, 0, 0, 126649, 0, 42080, 2529, 0,
- 78004, 0, 42083, 0, 0, 120531, 67619, 0, 0, 9634, 0, 0, 0, 0, 0, 0, 0,
- 68841, 0, 92545, 68874, 127399, 0, 0, 41987, 119667, 67623, 983760, 0,
- 925, 127156, 0, 41985, 64441, 9586, 120988, 41984, 9217, 128372, 0, 0,
- 9186, 67620, 4016, 983815, 0, 381, 983681, 0, 42077, 0, 128777, 67622,
- 42078, 0, 10810, 0, 4585, 19943, 5860, 67633, 0, 0, 812, 0, 0, 0, 92518,
- 0, 0, 0, 0, 67629, 0, 10692, 0, 67630, 0, 924, 0, 67631, 42616, 0, 0, 0,
- 67317, 67632, 0, 12771, 12736, 12753, 0, 983734, 67626, 67722, 0, 0, 0,
- 0, 12751, 74906, 8542, 0, 0, 3626, 66706, 0, 0, 3883, 64388, 0, 0, 0, 0,
- 0, 0, 126268, 67624, 0, 10932, 0, 65585, 64338, 806, 0, 41884, 110845,
- 1318, 128828, 0, 0, 0, 983789, 3465, 2405, 983390, 0, 12756, 65259,
- 69381, 983793, 12752, 5833, 1432, 110843, 41883, 110841, 9799, 0, 41886,
- 0, 0, 2062, 0, 0, 0, 0, 129376, 0, 124969, 983387, 0, 120971, 0, 118832,
- 0, 983281, 0, 68005, 10622, 0, 0, 0, 6566, 71195, 0, 73780, 0, 68865, 0,
- 0, 0, 8284, 0, 0, 0, 0, 0, 43023, 0, 983285, 6642, 3977, 72743, 64729,
- 836, 983381, 92947, 0, 0, 0, 0, 0, 0, 125239, 917923, 0, 0, 0, 0, 0, 0,
- 1374, 65149, 119014, 67720, 0, 2273, 0, 0, 0, 11234, 0, 0, 9630, 12597,
- 0, 0, 0, 6661, 0, 113751, 120551, 125015, 0, 0, 72151, 0, 73674, 7718,
- 113755, 0, 69570, 0, 0, 983758, 0, 0, 0, 127841, 6365, 1887, 983409, 0,
- 8080, 113681, 0, 0, 0, 129855, 1544, 0, 0, 64677, 0, 0, 0, 0, 119019, 0,
- 0, 12812, 7342, 0, 73784, 0, 7904, 0, 0, 120910, 0, 0, 0, 0, 9724, 0,
- 983785, 9524, 0, 0, 0, 0, 0, 129344, 0, 471, 0, 0, 128302, 0, 0, 0,
- 983750, 0, 0, 6918, 0, 0, 5156, 0, 128683, 10232, 10615, 10213, 0, 0,
- 42528, 0, 0, 0, 0, 65311, 74935, 0, 13306, 10533, 7870, 0, 7625, 0,
- 120544, 0, 0, 128816, 126098, 0, 0, 0, 0, 0, 92341, 0, 12978, 128533, 0,
- 0, 43836, 42675, 0, 12845, 0, 19942, 0, 0, 0, 0, 0, 120000, 120008,
- 120001, 0, 194894, 0, 0, 0, 0, 7186, 73107, 0, 70093, 445, 119028, 0, 0,
- 0, 73047, 0, 0, 128442, 0, 0, 0, 3902, 68913, 129916, 0, 0, 1560, 43958,
- 0, 4584, 0, 67862, 0, 10866, 92905, 1118, 92209, 74888, 0, 1081, 7436,
- 11147, 7252, 0, 121188, 0, 0, 0, 41386, 5162, 129823, 1330, 0, 121270, 0,
- 12047, 7675, 0, 0, 1848, 74528, 983147, 64708, 0, 0, 194880, 0, 0, 0,
- 983753, 12715, 128349, 0, 0, 0, 66672, 73710, 66685, 0, 0, 92464, 0,
- 68884, 0, 72835, 0, 70800, 70101, 120725, 0, 194893, 9214, 43494, 0, 0,
- 120841, 0, 0, 6313, 65513, 0, 0, 0, 0, 2345, 72975, 0, 0, 129937, 0,
- 3117, 0, 71882, 0, 73100, 0, 0, 0, 0, 78415, 983232, 100907, 0, 13248, 0,
- 120241, 129416, 128415, 0, 94193, 12382, 71120, 0, 0, 0, 0, 1471, 0,
- 113747, 0, 12378, 0, 69664, 0, 12374, 121357, 0, 0, 0, 0, 0, 0, 12376, 0,
- 0, 0, 12380, 10557, 0, 12520, 11122, 2024, 127180, 0, 0, 74588, 0, 0,
- 70120, 3853, 0, 0, 0, 983744, 0, 0, 12090, 0, 12474, 92579, 9503, 0, 0,
- 983271, 68318, 0, 110834, 0, 0, 0, 12470, 0, 74189, 2742, 12476, 66370,
- 10946, 0, 12472, 0, 0, 0, 0, 8213, 43824, 7771, 6161, 983275, 68010, 0,
- 0, 0, 68235, 0, 0, 0, 120985, 0, 0, 0, 129814, 73791, 129830, 68871, 0,
- 0, 0, 0, 0, 73704, 12015, 128561, 8275, 0, 43459, 120927, 127555, 0, 0,
- 0, 68881, 71215, 0, 118841, 0, 12516, 4444, 0, 119017, 120506, 10892,
- 118828, 0, 6473, 0, 0, 71735, 3591, 0, 0, 0, 0, 72345, 0, 0, 0, 127547,
- 0, 0, 0, 0, 128253, 0, 0, 0, 0, 94060, 687, 0, 0, 983399, 0, 0, 43882, 0,
- 128526, 285, 0, 0, 0, 4459, 0, 0, 74917, 0, 0, 126255, 0, 119248, 0,
- 9743, 0, 0, 126535, 0, 0, 73104, 0, 69659, 0, 0, 3081, 74577, 42921, 0,
- 0, 0, 0, 0, 0, 0, 9125, 119023, 0, 120820, 0, 65221, 0, 0, 64852, 0, 0,
- 0, 0, 66578, 5001, 41879, 0, 0, 5003, 884, 0, 0, 4943, 5150, 73889,
- 74182, 0, 41876, 0, 0, 42448, 42299, 72804, 0, 0, 0, 0, 8491, 0, 0,
- 983635, 4530, 42409, 7126, 119526, 66200, 0, 0, 19929, 0, 0, 0, 4242, 0,
- 0, 0, 0, 66034, 65941, 124929, 64522, 10740, 8958, 128257, 9754, 119102,
- 983246, 74222, 983244, 983243, 119064, 983241, 983240, 0, 0, 0, 74518,
- 66026, 4306, 41468, 68432, 0, 0, 66667, 0, 0, 983494, 42200, 0, 0, 0,
- 120236, 6948, 0, 8524, 0, 0, 12385, 0, 74926, 0, 1386, 73996, 0, 0, 0,
- 121184, 12392, 0, 8064, 0, 0, 78216, 119004, 2080, 710, 128491, 12390,
- 1666, 42091, 0, 12383, 92968, 42092, 68418, 0, 128106, 0, 0, 42096, 0,
- 3362, 12377, 127878, 0, 0, 0, 0, 1244, 4401, 73786, 12683, 10662, 0,
- 8112, 129837, 119021, 121017, 12379, 73108, 120534, 0, 42208, 0, 12381,
- 0, 0, 0, 4327, 0, 0, 128350, 0, 78232, 0, 584, 12933, 0, 12373, 73105,
- 13000, 0, 2935, 129113, 12665, 0, 43081, 73098, 120505, 12427, 0, 983625,
- 78227, 0, 0, 0, 0, 128760, 74551, 0, 0, 12426, 0, 0, 0, 12428, 0, 0, 0,
- 0, 0, 12429, 6727, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 0, 74427, 0, 3536,
- 120589, 9752, 92397, 6162, 0, 0, 10113, 0, 0, 0, 12422, 0, 439, 3072, 0,
- 42207, 74549, 120830, 0, 0, 0, 0, 8308, 0, 70807, 0, 0, 0, 13218, 0, 0,
- 8082, 12424, 0, 6819, 3539, 93838, 0, 0, 74539, 0, 68181, 0, 72964, 0,
- 72969, 12420, 11371, 0, 4600, 0, 127810, 0, 0, 0, 72962, 128552, 6704,
- 4591, 72966, 0, 0, 0, 72960, 120623, 561, 12159, 78223, 0, 78224, 0,
- 71068, 11932, 7172, 42687, 8368, 0, 0, 93068, 0, 0, 75010, 0, 0, 0, 0,
- 42463, 0, 2924, 67183, 0, 129947, 0, 128958, 0, 0, 42330, 73079, 3969, 0,
- 129973, 7169, 1992, 9652, 0, 0, 42086, 0, 100865, 0, 0, 0, 0, 0, 327, 0,
- 0, 0, 0, 0, 12433, 0, 0, 0, 12431, 0, 12434, 983434, 0, 0, 0, 7712,
- 12432, 0, 69377, 129147, 100867, 0, 8212, 0, 128014, 0, 119066, 7333, 0,
- 0, 0, 67407, 70006, 128461, 0, 12436, 0, 43160, 0, 74896, 92757, 71360,
- 42350, 0, 0, 0, 100566, 0, 11348, 0, 0, 9194, 983184, 0, 55250, 0,
- 100569, 0, 0, 0, 0, 0, 64746, 66012, 100565, 3444, 75029, 64651, 0,
- 41503, 0, 0, 0, 0, 0, 0, 0, 120876, 0, 0, 129408, 65309, 12416, 0, 0, 0,
- 0, 93024, 12418, 74111, 121046, 0, 0, 0, 119361, 0, 4596, 66339, 12417,
- 66001, 0, 126491, 12414, 8287, 0, 0, 0, 1143, 0, 0, 12415, 0, 0, 983242,
- 0, 9021, 120783, 0, 11724, 0, 0, 0, 194794, 0, 0, 8027, 194796, 74257,
- 127375, 11400, 74197, 194799, 66833, 194798, 0, 0, 983247, 0, 0, 1324, 0,
- 0, 0, 194878, 7715, 0, 0, 194777, 194780, 0, 0, 0, 194787, 0, 0, 0, 0, 0,
- 66289, 127109, 3889, 129561, 194800, 0, 0, 0, 0, 121226, 12999, 0,
- 120902, 0, 0, 0, 0, 0, 64802, 42210, 4597, 0, 0, 0, 12371, 67164, 0,
+ 12064, 110752, 129548, 194597, 69850, 65842, 0, 0, 0, 78159, 68476,
+ 72392, 1373, 0, 0, 5816, 0, 0, 4231, 0, 0, 4233, 4234, 4232, 68885,
+ 70351, 0, 7404, 72393, 0, 0, 0, 0, 0, 41601, 8874, 0, 0, 0, 0, 0, 0,
+ 41603, 9784, 0, 9188, 41600, 0, 0, 0, 0, 3535, 0, 0, 0, 66797, 0, 74491,
+ 0, 3404, 100419, 0, 72411, 1759, 100417, 0, 100418, 69972, 11240, 121038,
+ 100416, 127764, 0, 0, 0, 0, 0, 69970, 0, 0, 9834, 43249, 2234, 983872, 0,
+ 0, 0, 0, 92417, 0, 74398, 12035, 0, 983074, 43548, 0, 0, 0, 0, 0, 64318,
+ 917549, 0, 3390, 74483, 43265, 0, 983865, 0, 0, 0, 3400, 0, 0, 11647, 0,
+ 0, 0, 0, 2121, 128741, 4043, 8712, 0, 983795, 0, 121172, 0, 129456, 0, 0,
+ 93042, 0, 0, 983856, 0, 0, 0, 11851, 0, 3181, 66002, 0, 69601, 0, 66021,
+ 0, 194588, 5457, 5440, 0, 93981, 65282, 2843, 5355, 0, 129333, 69971,
+ 5194, 11657, 128353, 0, 0, 0, 0, 0, 0, 100525, 0, 0, 74350, 0, 10682,
+ 110820, 10602, 800, 70044, 118883, 0, 0, 64930, 118940, 67853, 72001, 0,
+ 762, 120485, 0, 0, 0, 10906, 1353, 6960, 0, 0, 5828, 8724, 0, 0, 0, 0, 0,
+ 7080, 0, 0, 0, 0, 72388, 0, 0, 0, 0, 68878, 0, 0, 0, 7240, 0, 556, 0, 0,
+ 0, 0, 0, 72397, 0, 0, 0, 0, 0, 0, 0, 0, 72986, 0, 0, 43931, 0, 11093, 0,
+ 0, 125016, 7341, 66801, 68527, 0, 1874, 0, 0, 129314, 0, 0, 0, 0, 0, 0,
+ 7688, 0, 0, 9036, 0, 0, 66389, 0, 121347, 0, 0, 10100, 0, 2725, 0, 0,
+ 43981, 42128, 0, 0, 68146, 0, 0, 0, 0, 71349, 7859, 1945, 0, 0, 0, 65918,
+ 7188, 9992, 0, 7389, 127008, 71341, 0, 0, 0, 528, 129681, 44017, 11429,
+ 71347, 0, 0, 120864, 0, 0, 0, 11530, 73102, 6188, 0, 0, 68208, 1823, 0,
+ 0, 92928, 0, 0, 7233, 92929, 0, 0, 6639, 0, 0, 123149, 0, 1176, 0, 0,
+ 8276, 128667, 0, 0, 68892, 42931, 0, 0, 0, 0, 0, 0, 0, 5388, 0, 0, 0,
+ 11310, 0, 123607, 0, 68888, 4199, 119264, 0, 119020, 0, 0, 9560, 0, 0,
+ 43869, 0, 0, 0, 83172, 0, 0, 0, 83173, 101559, 128875, 0, 0, 74327, 0, 0,
+ 0, 0, 0, 123623, 68886, 0, 0, 0, 8408, 64704, 0, 0, 0, 0, 0, 67999, 0, 0,
+ 0, 0, 43049, 0, 43050, 73028, 0, 0, 0, 0, 0, 127396, 0, 69847, 9322, 0,
+ 0, 129321, 68192, 120507, 983634, 0, 0, 0, 6199, 67249, 0, 0, 0, 0,
+ 11329, 66285, 0, 983086, 0, 0, 0, 0, 41335, 118866, 43401, 0, 41334, 0,
+ 0, 0, 983479, 71997, 983478, 128114, 0, 42627, 0, 32, 6187, 0, 123619,
+ 983475, 3665, 121083, 42871, 983118, 41336, 0, 0, 983471, 0, 0, 0, 4412,
+ 0, 0, 0, 0, 119533, 0, 4181, 0, 0, 127589, 0, 0, 71453, 6181, 74755,
+ 917895, 0, 0, 0, 0, 121107, 0, 0, 10073, 0, 100738, 127186, 0, 42844,
+ 7498, 1098, 92565, 119530, 0, 0, 10207, 0, 983229, 0, 983555, 0, 9234, 0,
+ 6182, 0, 92552, 0, 0, 0, 0, 5471, 9461, 6697, 0, 5473, 0, 0, 0, 0, 0, 0,
+ 70073, 0, 0, 7767, 8304, 41339, 0, 983489, 69450, 0, 0, 983487, 43855,
+ 41337, 0, 0, 0, 0, 0, 0, 0, 72396, 0, 0, 0, 42633, 0, 0, 0, 0, 0, 0, 0,
+ 70005, 129506, 0, 0, 0, 129580, 69817, 128299, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1437, 41617, 0, 0, 0, 128853, 0, 0, 0, 0, 0, 128529, 12113, 0, 42772, 0,
+ 0, 7693, 10749, 0, 65210, 5773, 978, 128134, 0, 41619, 10239, 0, 0, 0,
+ 74328, 0, 9748, 0, 0, 0, 0, 0, 0, 0, 70681, 0, 72811, 0, 0, 0, 92776, 0,
+ 0, 2379, 11325, 0, 0, 67854, 0, 78547, 42209, 0, 120392, 2369, 0, 983984,
+ 983985, 0, 0, 73936, 7008, 69415, 122919, 0, 43841, 2367, 127827, 983869,
+ 0, 2375, 8060, 6194, 0, 0, 119084, 0, 0, 0, 0, 6961, 0, 0, 0, 68426, 0,
+ 42862, 0, 0, 6192, 127900, 42771, 0, 0, 11435, 128445, 118797, 120800, 0,
+ 12892, 0, 128621, 67149, 0, 0, 0, 0, 120707, 0, 0, 19954, 0, 121164,
+ 8983, 0, 0, 0, 0, 0, 6198, 121344, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 983507, 41323, 0, 0, 92289, 0, 0, 0, 983503, 41321, 12907,
+ 3048, 7752, 41320, 0, 0, 12819, 111247, 72127, 0, 0, 0, 0, 0, 72971, 0,
+ 0, 0, 0, 78650, 78649, 0, 41326, 0, 11806, 43167, 0, 1245, 0, 66463, 0,
+ 0, 0, 0, 0, 194619, 0, 194618, 0, 0, 194620, 0, 70403, 325, 12874, 0,
+ 74178, 0, 0, 119110, 0, 0, 0, 0, 0, 0, 983563, 92175, 0, 0, 0, 121049, 0,
+ 0, 0, 0, 0, 0, 110844, 11776, 0, 19908, 0, 0, 0, 8753, 69278, 0, 0, 9511,
+ 43493, 0, 93032, 6205, 0, 0, 0, 0, 0, 0, 0, 0, 126577, 0, 41607, 0, 0,
+ 120617, 0, 0, 0, 7005, 41609, 9580, 0, 401, 0, 43779, 0, 127962, 0,
+ 65486, 0, 12857, 0, 11983, 0, 0, 0, 121371, 0, 194971, 74258, 0, 0, 0, 0,
+ 0, 0, 8295, 6200, 0, 127864, 0, 0, 71435, 0, 92523, 0, 128631, 0, 0,
+ 125197, 0, 0, 0, 127556, 0, 0, 0, 64775, 0, 68862, 120590, 0, 0, 129959,
+ 8074, 8199, 126641, 1907, 127269, 4432, 127271, 10808, 120668, 127272,
+ 127259, 3888, 127261, 72724, 127263, 127262, 127265, 123169, 121195,
+ 127250, 66879, 127252, 100422, 66023, 67363, 7663, 0, 0, 0, 0, 66321, 0,
+ 12814, 127248, 127169, 0, 0, 194603, 7641, 92694, 0, 0, 0, 0, 74320,
+ 120818, 120268, 0, 128475, 0, 110627, 0, 9622, 128972, 120264, 0, 0, 0,
+ 0, 68319, 0, 0, 71484, 0, 0, 0, 69906, 0, 0, 947, 0, 194586, 129059,
+ 10969, 119935, 7613, 119937, 119936, 4795, 119930, 119933, 7376, 0, 0, 0,
+ 0, 0, 0, 0, 0, 119919, 7216, 119921, 7217, 119915, 7218, 119917, 7219,
+ 119927, 119926, 119929, 119928, 7213, 119922, 7214, 7215, 128622, 0,
+ 8880, 7685, 128849, 0, 0, 119618, 119853, 8187, 119913, 12815, 7236,
+ 7915, 71906, 0, 121284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10468, 0,
+ 0, 0, 0, 0, 0, 0, 0, 917909, 0, 110633, 1616, 3795, 67732, 11529, 0,
+ 126225, 0, 0, 1138, 194577, 12677, 0, 0, 3239, 0, 0, 194809, 194583, 0,
+ 42164, 0, 11778, 0, 43259, 0, 119073, 0, 0, 0, 67094, 129638, 0, 78421,
+ 128123, 78418, 0, 0, 0, 0, 43959, 43960, 0, 72257, 0, 9359, 78416, 0, 0,
+ 0, 6662, 0, 0, 3863, 0, 41329, 55266, 0, 127822, 41328, 75026, 194569,
+ 129516, 0, 0, 0, 119595, 569, 0, 0, 0, 119085, 110669, 0, 0, 11610,
+ 11368, 0, 194570, 41331, 1006, 127747, 120883, 1550, 8201, 0, 194811,
+ 5499, 43956, 77908, 77910, 77906, 43957, 77904, 77905, 128410, 0, 0,
+ 129581, 100447, 43955, 77913, 0, 0, 5511, 0, 983702, 0, 69241, 8255,
+ 5512, 128560, 119560, 127858, 64313, 127928, 5906, 1119, 128180, 67088,
+ 983362, 0, 113798, 0, 66423, 0, 0, 0, 67089, 0, 0, 0, 0, 128177, 983709,
+ 0, 0, 0, 5821, 6186, 129960, 128034, 19961, 0, 983700, 0, 65138, 302,
+ 41113, 41115, 0, 6637, 5907, 128789, 0, 43642, 0, 128625, 0, 70345, 5513,
+ 6666, 100567, 78442, 5510, 0, 0, 0, 983706, 78437, 0, 0, 0, 110838, 0, 0,
+ 0, 92710, 0, 0, 0, 0, 0, 74497, 92395, 120511, 6929, 69412, 0, 110835,
+ 64442, 0, 0, 74496, 0, 6674, 43397, 0, 1476, 0, 0, 72276, 3233, 0, 0,
+ 10164, 0, 0, 3530, 67243, 0, 111219, 6656, 0, 0, 74647, 8512, 72275,
+ 74261, 8967, 0, 0, 0, 72277, 7986, 73782, 120556, 9006, 983562, 72273, 0,
+ 7853, 0, 983355, 0, 0, 0, 0, 983952, 0, 0, 0, 0, 0, 0, 0, 0, 127971,
+ 67983, 13296, 517, 0, 0, 0, 41528, 19923, 65454, 0, 0, 0, 10531, 7784,
+ 41526, 71727, 0, 8057, 1126, 73895, 0, 0, 130040, 119186, 4251, 8235,
+ 43142, 0, 489, 71733, 4250, 71731, 110721, 43151, 94177, 71725, 0,
+ 121238, 0, 0, 0, 110726, 0, 8711, 6183, 110722, 110723, 0, 0, 7623, 0, 0,
+ 9235, 12760, 74176, 0, 0, 0, 0, 3743, 11514, 11078, 74582, 0, 0, 126597,
+ 0, 0, 0, 0, 983888, 267, 3393, 127504, 2364, 0, 69233, 6958, 0, 6201, 0,
+ 42360, 0, 10652, 41612, 917802, 3402, 917801, 3398, 0, 0, 0, 3391, 70683,
+ 0, 92541, 128017, 126087, 126590, 0, 12767, 0, 983375, 64261, 0, 127537,
+ 70852, 70347, 0, 6673, 0, 0, 129346, 12438, 0, 0, 0, 71128, 0, 9053,
+ 43954, 74523, 0, 0, 0, 6195, 0, 6660, 0, 917760, 917793, 0, 12629, 0, 0,
+ 0, 0, 0, 127940, 0, 0, 0, 65448, 0, 0, 121084, 129688, 43949, 0, 78099,
+ 0, 983380, 0, 0, 0, 5741, 1131, 0, 0, 74862, 0, 43952, 42533, 119598,
+ 78107, 0, 0, 43950, 121297, 118990, 7691, 43951, 578, 0, 0, 0, 42514,
+ 74547, 74196, 120608, 74561, 0, 983957, 0, 0, 0, 0, 0, 0, 0, 0, 7241, 0,
+ 93846, 119167, 0, 12811, 78082, 3946, 0, 10998, 66807, 673, 0, 0, 0, 0,
+ 119301, 0, 68890, 0, 0, 78085, 10267, 0, 74560, 78083, 0, 8729, 0, 0, 0,
+ 0, 0, 0, 0, 119296, 0, 0, 0, 120853, 983458, 731, 0, 71904, 128316, 0, 0,
+ 0, 1175, 0, 68167, 0, 0, 10793, 0, 67644, 7723, 983453, 0, 0, 0, 0, 5273,
+ 0, 5269, 0, 69607, 2404, 5267, 124967, 0, 0, 5277, 0, 0, 6189, 65469,
+ 1314, 0, 0, 118873, 8785, 0, 0, 127527, 68414, 43535, 9204, 0, 3879, 0,
+ 71696, 6197, 9497, 0, 7567, 64484, 78128, 41390, 41379, 41882, 67647,
+ 67279, 70085, 0, 121413, 41388, 64446, 41392, 64288, 41387, 0, 8706,
+ 10675, 0, 700, 0, 5775, 0, 7088, 74756, 7499, 0, 78120, 78111, 67251,
+ 126557, 0, 0, 128945, 10311, 78115, 6665, 11115, 0, 7618, 10821, 11455,
+ 0, 64632, 64447, 0, 0, 78093, 78091, 0, 0, 65033, 0, 6668, 0, 0, 0, 656,
+ 69686, 65037, 0, 0, 0, 0, 0, 0, 0, 73014, 0, 0, 917774, 9702, 0, 92273,
+ 66580, 118895, 66683, 43640, 3417, 0, 6832, 0, 917768, 0, 917767, 0,
+ 4935, 11906, 0, 0, 67296, 92896, 3651, 0, 67294, 70848, 0, 67292, 0,
+ 12983, 0, 55272, 0, 0, 1439, 0, 74897, 0, 0, 0, 78373, 0, 42087, 3063, 0,
+ 0, 7838, 0, 129282, 0, 0, 67968, 0, 128582, 9078, 92446, 0, 0, 0, 0, 0,
+ 0, 119586, 0, 7750, 128422, 68237, 6190, 0, 0, 0, 72340, 9857, 7014,
+ 9856, 0, 92620, 120547, 0, 8481, 0, 6202, 0, 10920, 67970, 0, 0, 983292,
+ 0, 7843, 65818, 66824, 0, 0, 0, 0, 0, 0, 0, 6657, 207, 0, 69728, 74819,
+ 0, 0, 0, 0, 0, 0, 0, 0, 41368, 43974, 488, 0, 0, 71339, 10157, 0, 43034,
+ 11982, 0, 0, 0, 0, 0, 41372, 6669, 8504, 72103, 0, 41367, 129328, 119272,
+ 0, 11726, 8261, 129793, 304, 129799, 129795, 129822, 129807, 113683,
+ 983235, 238, 74522, 0, 0, 19905, 120577, 983469, 129200, 41044, 67640,
+ 67302, 64814, 9912, 65939, 983465, 0, 0, 0, 0, 0, 0, 309, 6622, 0, 10858,
+ 0, 67636, 0, 72749, 0, 0, 0, 67637, 123138, 9712, 68680, 43970, 0, 65165,
+ 93047, 0, 0, 0, 0, 0, 0, 6191, 12944, 0, 0, 67634, 43763, 0, 0, 67635,
+ 9370, 41381, 0, 0, 123148, 118817, 0, 3222, 121439, 0, 0, 66663, 0, 0, 0,
+ 0, 0, 65732, 121144, 0, 0, 0, 0, 67309, 72192, 41383, 64568, 0, 0, 0, 0,
+ 983990, 66725, 0, 0, 0, 0, 0, 67306, 3632, 128246, 0, 8376, 3648, 0,
+ 74844, 67639, 3636, 0, 3650, 8837, 0, 0, 0, 43250, 41562, 0, 0, 68839,
+ 3640, 127190, 0, 11781, 0, 0, 0, 0, 0, 0, 126649, 0, 42080, 2529, 0,
+ 78004, 0, 42083, 0, 0, 120531, 67619, 0, 0, 9634, 0, 0, 0, 0, 0, 0, 0,
+ 68841, 0, 92545, 68874, 127399, 0, 0, 41987, 119667, 67623, 983760, 0,
+ 925, 127156, 0, 41985, 64441, 9586, 120988, 41984, 9217, 128372, 0, 0,
+ 9186, 67620, 4016, 983815, 0, 381, 983681, 0, 42077, 0, 128777, 67622,
+ 42078, 0, 10810, 0, 4585, 19943, 5860, 67633, 0, 0, 812, 0, 0, 0, 92518,
+ 0, 0, 0, 0, 67629, 0, 10692, 0, 67630, 0, 924, 0, 67631, 42616, 0, 0, 0,
+ 67317, 67632, 0, 12771, 12736, 12753, 0, 983734, 67626, 67722, 0, 0, 0,
+ 0, 12751, 74906, 8542, 0, 0, 3626, 66706, 0, 0, 3883, 64388, 0, 0, 0, 0,
+ 0, 0, 126268, 67624, 0, 10932, 0, 65585, 64338, 806, 0, 41884, 110845,
+ 1318, 128828, 0, 0, 0, 983789, 3465, 2405, 983390, 0, 12756, 65259,
+ 69381, 983793, 12752, 5833, 1432, 110843, 41883, 110841, 9799, 0, 41886,
+ 0, 0, 2062, 0, 0, 0, 0, 129376, 0, 124969, 983387, 0, 120971, 0, 118832,
+ 0, 983281, 0, 68005, 10622, 0, 0, 0, 6566, 71195, 0, 73780, 0, 68865, 0,
+ 0, 0, 8284, 0, 0, 0, 0, 0, 43023, 0, 983285, 6642, 3977, 72743, 64729,
+ 836, 983381, 92947, 0, 0, 0, 0, 0, 0, 125239, 917923, 0, 0, 0, 0, 0, 0,
+ 1374, 65149, 119014, 67720, 0, 2273, 0, 0, 0, 11234, 0, 0, 9630, 12597,
+ 0, 0, 0, 6661, 0, 113751, 120551, 125015, 0, 0, 72151, 0, 73674, 7718,
+ 113755, 0, 69570, 0, 0, 983758, 0, 0, 0, 127841, 6365, 1887, 983409, 0,
+ 8080, 113681, 0, 0, 0, 129855, 1544, 0, 0, 64677, 0, 0, 0, 0, 119019, 0,
+ 0, 12812, 7342, 0, 73784, 0, 7904, 0, 0, 120910, 0, 0, 0, 0, 9724, 0,
+ 983785, 9524, 0, 0, 0, 0, 0, 129344, 0, 471, 0, 0, 128302, 0, 0, 0,
+ 983750, 0, 0, 6918, 0, 0, 5156, 0, 128683, 10232, 10615, 10213, 0, 0,
+ 42528, 0, 0, 0, 0, 65311, 74935, 0, 13306, 10533, 7870, 0, 7625, 0,
+ 120544, 0, 0, 128816, 126098, 0, 0, 0, 0, 0, 92341, 0, 12978, 128533, 0,
+ 0, 43836, 42675, 0, 12845, 0, 19942, 0, 0, 0, 0, 0, 120000, 120008,
+ 120001, 0, 194894, 0, 0, 0, 0, 7186, 73107, 0, 70093, 445, 119028, 0, 0,
+ 0, 73047, 0, 0, 128442, 0, 0, 0, 3902, 68913, 129916, 0, 0, 1560, 43958,
+ 0, 4584, 0, 67862, 0, 10866, 92905, 1118, 92209, 74888, 0, 1081, 7436,
+ 11147, 7252, 0, 121188, 0, 0, 0, 41386, 5162, 129823, 1330, 0, 121270, 0,
+ 12047, 7675, 0, 0, 1848, 74528, 983147, 64708, 0, 0, 194880, 0, 0, 0,
+ 983753, 12715, 128349, 0, 0, 0, 66672, 73710, 66685, 0, 0, 92464, 0,
+ 68884, 0, 72835, 0, 70800, 70101, 120725, 0, 194893, 9214, 43494, 0, 0,
+ 120841, 0, 0, 6313, 65513, 0, 0, 0, 0, 2345, 72975, 0, 0, 129937, 0,
+ 3117, 0, 71882, 0, 73100, 0, 0, 0, 0, 78415, 983232, 100907, 0, 13248, 0,
+ 120241, 129416, 128415, 0, 94193, 12382, 71120, 0, 0, 0, 0, 1471, 0,
+ 113747, 0, 12378, 0, 69664, 0, 12374, 121357, 0, 0, 0, 0, 0, 0, 12376, 0,
+ 0, 0, 12380, 10557, 0, 12520, 11122, 2024, 127180, 0, 0, 74588, 0, 0,
+ 70120, 3853, 0, 0, 0, 983744, 0, 0, 12090, 0, 12474, 92579, 9503, 0, 0,
+ 983271, 68318, 0, 110834, 0, 0, 0, 12470, 0, 74189, 2742, 12476, 66370,
+ 10946, 0, 12472, 0, 0, 0, 0, 8213, 43824, 7771, 6161, 983275, 68010, 0,
+ 0, 0, 68235, 0, 0, 0, 120985, 0, 0, 0, 129814, 73791, 129830, 68871, 0,
+ 0, 0, 0, 0, 73704, 12015, 128561, 8275, 0, 43459, 120927, 127555, 0, 0,
+ 0, 68881, 71215, 0, 118841, 0, 12516, 4444, 0, 119017, 120506, 10892,
+ 118828, 0, 6473, 0, 0, 71735, 3591, 0, 0, 0, 0, 72345, 0, 0, 0, 127547,
+ 0, 0, 0, 0, 128253, 0, 0, 0, 0, 94060, 687, 0, 0, 983399, 0, 0, 43882, 0,
+ 128526, 285, 0, 0, 0, 4459, 0, 0, 74917, 0, 0, 126255, 0, 119248, 0,
+ 9743, 0, 0, 126535, 0, 0, 73104, 0, 69659, 0, 0, 3081, 74577, 42921, 0,
+ 0, 0, 0, 0, 0, 0, 9125, 119023, 0, 120820, 0, 65221, 0, 0, 64852, 0, 0,
+ 0, 0, 66578, 5001, 41879, 0, 0, 5003, 884, 0, 0, 4943, 5150, 73889,
+ 74182, 0, 41876, 0, 0, 42448, 42299, 72804, 0, 0, 0, 0, 8491, 0, 0,
+ 983635, 4530, 42409, 7126, 119526, 66200, 0, 0, 19929, 0, 0, 0, 4242, 0,
+ 0, 0, 0, 66034, 65941, 124929, 64522, 10740, 8958, 128257, 9754, 119102,
+ 983246, 74222, 983244, 983243, 119064, 983241, 983240, 0, 0, 0, 74518,
+ 66026, 4306, 41468, 68432, 0, 0, 66667, 0, 0, 983494, 42200, 0, 0, 0,
+ 120236, 6948, 0, 8524, 0, 0, 12385, 0, 74926, 0, 1386, 73996, 0, 0, 0,
+ 121184, 12392, 0, 8064, 0, 0, 78216, 119004, 2080, 710, 128491, 12390,
+ 1666, 42091, 0, 12383, 92968, 42092, 68418, 0, 128106, 0, 0, 42096, 0,
+ 3362, 12377, 127878, 0, 0, 0, 0, 1244, 4401, 73786, 12683, 10662, 0,
+ 8112, 129837, 119021, 121017, 12379, 73108, 120534, 0, 42208, 0, 12381,
+ 0, 0, 0, 4327, 0, 0, 128350, 0, 78232, 0, 584, 12933, 0, 12373, 73105,
+ 13000, 0, 2935, 129113, 12665, 0, 43081, 73098, 120505, 12427, 0, 983625,
+ 78227, 0, 0, 0, 0, 128760, 74551, 0, 0, 12426, 0, 0, 0, 12428, 0, 0, 0,
+ 0, 0, 12429, 6727, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 0, 74427, 0, 3536,
+ 120589, 9752, 92397, 6162, 0, 0, 10113, 0, 0, 0, 12422, 0, 439, 3072, 0,
+ 42207, 74549, 120830, 0, 0, 0, 0, 8308, 0, 70807, 0, 0, 0, 13218, 0, 0,
+ 8082, 12424, 0, 6819, 3539, 93838, 0, 0, 74539, 0, 68181, 0, 72964, 0,
+ 72969, 12420, 11371, 0, 4600, 0, 127810, 0, 0, 0, 72962, 128552, 6704,
+ 4591, 72966, 0, 0, 0, 72960, 120623, 561, 12159, 78223, 0, 78224, 0,
+ 71068, 11932, 7172, 42687, 8368, 0, 0, 93068, 0, 0, 75010, 0, 0, 0, 0,
+ 42463, 0, 2924, 67183, 0, 129947, 0, 128958, 0, 0, 42330, 73079, 3969, 0,
+ 129973, 7169, 1992, 9652, 0, 0, 42086, 0, 100865, 0, 0, 0, 0, 0, 327, 0,
+ 0, 0, 0, 0, 12433, 0, 0, 0, 12431, 0, 12434, 983434, 0, 0, 0, 7712,
+ 12432, 0, 69377, 129147, 100867, 0, 8212, 0, 128014, 0, 119066, 7333, 0,
+ 0, 0, 67407, 70006, 128461, 0, 12436, 0, 43160, 0, 74896, 92757, 71360,
+ 42350, 0, 0, 0, 100566, 0, 11348, 0, 0, 9194, 983184, 0, 55250, 0,
+ 100569, 0, 0, 0, 0, 0, 64746, 66012, 100565, 3444, 75029, 64651, 0,
+ 41503, 0, 0, 0, 0, 0, 0, 0, 120876, 0, 0, 129408, 65309, 12416, 0, 0, 0,
+ 0, 93024, 12418, 74111, 121046, 0, 0, 0, 119361, 0, 4596, 66339, 12417,
+ 66001, 0, 126491, 12414, 8287, 0, 0, 0, 1143, 0, 0, 12415, 0, 0, 983242,
+ 0, 9021, 120783, 0, 11724, 0, 0, 0, 194794, 0, 0, 8027, 194796, 74257,
+ 127375, 11400, 74197, 194799, 66833, 194798, 0, 0, 983247, 0, 0, 1324, 0,
+ 0, 0, 194878, 7715, 0, 0, 194777, 194780, 0, 0, 0, 194787, 0, 0, 0, 0, 0,
+ 66289, 127109, 3889, 129561, 194800, 0, 0, 0, 0, 121226, 12999, 0,
+ 120902, 0, 0, 0, 0, 0, 64802, 42210, 4597, 0, 0, 0, 12371, 67164, 0,
67163, 10805, 0, 0, 0, 0, 0, 12367, 0, 0, 92557, 12363, 0, 0, 128611, 0,
- 0, 0, 8005, 12365, 0, 0, 3756, 12369, 10649, 0, 70095, 0, 0, 0, 42923, 0,
- 0, 0, 0, 0, 0, 66659, 0, 0, 0, 0, 5268, 4954, 0, 0, 5266, 126980, 5272,
+ 0, 0, 8005, 12365, 0, 0, 3756, 12369, 10649, 0, 70095, 0, 0, 0, 42923, 0,
+ 0, 0, 0, 0, 0, 66659, 0, 0, 0, 0, 5268, 4954, 0, 0, 5266, 126980, 5272,
92294, 0, 42230, 983961, 0, 9128, 0, 0, 0, 0, 6928, 9803, 42282, 9110,
1505, 0, 0, 5276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8722, 120805, 0, 0, 66695,
0, 0, 4383, 8900, 0, 0, 74930, 64297, 0, 0, 0, 0, 3419, 42229, 0, 0,
8911, 0, 42353, 0, 0, 0, 0, 0, 0, 0, 100629, 41576, 42215, 122888, 0, 0,
8578, 68178, 7573, 41575, 74789, 92310, 0, 73863, 0, 2670, 0, 0, 11723,
- 0, 0, 0, 0, 0, 43414, 0, 0, 65675, 0, 67179, 67168, 12413, 129746, 67177,
- 0, 0, 0, 0, 12302, 0, 5250, 12407, 12245, 4404, 9189, 12401, 42007, 0,
+ 0, 0, 0, 0, 0, 43414, 0, 0, 65675, 0, 67179, 67168, 12413, 129746, 67177,
+ 0, 0, 0, 0, 12302, 0, 5250, 12407, 12245, 4404, 9189, 12401, 42007, 0,
42005, 65806, 43997, 122922, 42002, 12404, 0, 74928, 4940, 12410, 0,
128761, 0, 64567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11956, 0, 0, 122882, 0,
- 6631, 128923, 0, 74583, 42218, 0, 0, 70094, 0, 0, 0, 71058, 0, 0, 0,
- 127341, 0, 0, 0, 0, 0, 43370, 0, 5016, 121052, 0, 0, 9491, 0, 0, 0, 0,
- 64922, 0, 0, 0, 0, 92198, 0, 0, 0, 74619, 0, 0, 70422, 983669, 10565, 0,
- 12177, 0, 0, 0, 0, 0, 12395, 127874, 12878, 92630, 12396, 0, 0, 92537, 0,
- 43113, 0, 0, 0, 9781, 0, 4927, 0, 0, 0, 0, 12397, 129089, 128910, 0,
- 12394, 0, 0, 0, 0, 0, 72789, 10781, 1546, 0, 5010, 0, 10507, 127891,
- 128291, 0, 0, 0, 0, 7267, 0, 0, 0, 0, 2819, 0, 0, 71063, 0, 7266, 128553,
- 7264, 7265, 0, 1363, 0, 119581, 65080, 0, 0, 0, 0, 43336, 0, 0, 126263,
- 73776, 0, 43339, 0, 9836, 0, 0, 0, 43335, 41276, 0, 73795, 43337, 817,
- 11211, 2241, 128841, 41274, 11340, 42408, 42447, 74932, 0, 0, 12386, 0,
- 0, 0, 12389, 128398, 0, 41996, 41686, 0, 8269, 1147, 43849, 120896, 1987,
- 128540, 43195, 42001, 41990, 41999, 12391, 0, 0, 4939, 12384, 0, 0,
- 43243, 0, 0, 70746, 0, 0, 0, 0, 0, 8247, 0, 0, 7545, 0, 43643, 121445, 0,
- 10036, 0, 119813, 10178, 119816, 0, 119815, 11762, 119818, 0, 92282,
- 120597, 0, 0, 119819, 0, 0, 7719, 0, 2486, 0, 119808, 1507, 0, 129185,
- 70301, 9687, 119825, 0, 119811, 66196, 0, 5262, 0, 74642, 12681, 0, 0,
- 12406, 12219, 0, 127528, 42810, 110991, 0, 983673, 128144, 121027,
- 126096, 120753, 12403, 2500, 0, 0, 12409, 0, 0, 0, 74113, 2343, 12412,
- 19946, 74112, 125042, 13112, 0, 120603, 67866, 110634, 0, 66369, 5861,
- 110632, 11999, 12400, 0, 0, 12645, 0, 11320, 68410, 6748, 65040, 0,
- 64184, 12974, 66927, 67613, 120645, 0, 0, 0, 0, 0, 1928, 0, 67649, 0, 0,
- 67609, 11235, 0, 0, 67610, 8241, 0, 0, 4206, 0, 0, 0, 128298, 110980, 0,
- 67238, 0, 0, 0, 1422, 8357, 0, 7187, 0, 120641, 0, 0, 0, 0, 125022,
- 111064, 92539, 10120, 12405, 0, 72997, 0, 13278, 0, 6366, 0, 7945, 0,
- 4402, 0, 12402, 129372, 0, 74754, 12408, 0, 44007, 0, 0, 0, 12411, 0,
- 120824, 128306, 121092, 0, 1575, 0, 0, 0, 73003, 119622, 0, 0, 12399, 0,
- 6833, 0, 0, 0, 71878, 9692, 0, 0, 100615, 6750, 66855, 0, 0, 0, 0, 43527,
- 0, 727, 0, 0, 0, 0, 6726, 127387, 0, 12370, 44023, 0, 126592, 2280, 0,
- 12372, 120642, 0, 0, 0, 0, 12366, 10963, 6066, 1329, 0, 3052, 72987, 0,
- 66029, 0, 10803, 0, 0, 0, 92473, 0, 0, 0, 0, 1499, 0, 0, 42740, 0, 0, 0,
- 0, 12056, 126484, 0, 3660, 69404, 42192, 74253, 0, 42223, 67617, 125254,
- 0, 0, 0, 0, 9941, 0, 0, 1933, 0, 0, 0, 0, 73866, 0, 0, 2487, 67614, 7361,
- 1804, 0, 67615, 0, 0, 12220, 67616, 0, 0, 0, 68200, 6675, 0, 0, 67592,
- 126582, 0, 64771, 0, 9132, 0, 111004, 510, 0, 0, 0, 4561, 7711, 92769,
- 92944, 111007, 0, 41569, 121282, 0, 8167, 66885, 123197, 0, 0, 69992,
- 66403, 6967, 0, 0, 0, 0, 333, 0, 0, 10566, 66409, 0, 121373, 0, 72965,
- 110999, 66388, 6678, 0, 0, 12621, 0, 128775, 10227, 4764, 0, 9981, 0,
- 70278, 11589, 0, 0, 42202, 12754, 0, 0, 69576, 0, 67594, 2048, 0, 4050,
- 67595, 0, 0, 43221, 11184, 72709, 0, 0, 64175, 0, 72746, 0, 0, 129966,
- 65461, 9798, 0, 71210, 0, 69841, 0, 952, 128235, 125107, 0, 70296, 6449,
- 72102, 0, 0, 43098, 64171, 8142, 64160, 0, 0, 0, 0, 0, 0, 0, 0, 67597,
- 6676, 3930, 42615, 73124, 69991, 67598, 0, 0, 0, 65591, 41581, 128056,
- 1453, 0, 0, 0, 8500, 42222, 0, 119270, 72992, 69996, 0, 0, 64676, 0, 0,
- 67606, 66385, 0, 42217, 13102, 0, 67607, 6672, 0, 0, 0, 0, 67608, 0,
- 9001, 0, 11274, 67601, 0, 64210, 6664, 0, 42056, 67602, 0, 0, 0, 0, 1469,
- 67603, 65381, 69921, 4988, 42372, 0, 9598, 904, 352, 42225, 0, 8061,
- 10673, 0, 0, 128276, 67600, 0, 0, 127293, 8575, 127295, 127296, 127289,
- 127290, 127291, 127292, 127285, 127286, 127287, 118877, 127281, 127282,
- 9460, 823, 11587, 0, 0, 0, 127305, 12387, 0, 0, 127301, 126979, 42783,
- 69998, 64208, 127298, 127299, 66031, 0, 11606, 64784, 0, 69973, 0, 0, 0,
- 5152, 11048, 0, 120121, 67605, 0, 69604, 0, 70276, 194847, 0, 127052,
- 42587, 42214, 41394, 0, 4763, 0, 118935, 0, 5260, 0, 94038, 326, 120131,
- 74119, 0, 10771, 42198, 194920, 194837, 194925, 41398, 127079, 41393,
- 127077, 127076, 453, 41396, 0, 13159, 11227, 9572, 0, 0, 194576, 128835,
- 127081, 0, 126617, 43144, 0, 72972, 194887, 0, 0, 0, 0, 0, 64061, 0, 0,
- 64056, 70310, 0, 0, 0, 194864, 0, 111084, 64301, 72998, 10464, 0, 128393,
- 72847, 0, 11528, 64024, 128072, 679, 0, 0, 5850, 758, 7536, 0, 0, 43712,
- 0, 64006, 983589, 64005, 70298, 0, 126487, 0, 0, 0, 0, 0, 72999, 0,
- 64027, 64029, 0, 0, 64000, 0, 194874, 0, 42201, 12421, 194875, 0, 1852,
- 0, 0, 73744, 0, 64041, 129127, 0, 0, 0, 92322, 12423, 12854, 0, 3496, 0,
- 110966, 0, 194823, 0, 0, 6158, 8327, 74553, 0, 12419, 0, 11570, 0, 0,
- 123618, 0, 7844, 983801, 194909, 0, 1682, 93039, 194911, 42756, 6765,
- 128178, 0, 0, 0, 11412, 6768, 0, 194830, 71316, 0, 0, 0, 11577, 0,
- 194829, 1833, 11576, 74334, 0, 0, 42854, 69438, 0, 70307, 0, 194856,
- 8085, 0, 194850, 0, 72996, 128778, 1949, 11614, 7847, 120489, 120997,
- 64483, 0, 0, 0, 0, 0, 0, 0, 126651, 42864, 0, 64667, 74624, 0, 0, 43261,
- 11484, 127535, 67840, 0, 0, 128965, 0, 72974, 0, 110928, 128454, 3455, 0,
- 0, 9879, 0, 0, 4158, 128050, 0, 0, 110929, 0, 0, 0, 332, 118808, 0, 0,
- 2407, 0, 42199, 92386, 110865, 0, 77921, 55217, 123161, 125199, 70043, 0,
- 0, 0, 121093, 1834, 0, 0, 71315, 0, 65249, 0, 8662, 0, 0, 123153, 0,
- 11539, 10784, 0, 67674, 0, 92233, 0, 0, 118858, 0, 0, 0, 0, 0, 0, 12499,
- 6280, 0, 0, 0, 0, 0, 0, 43851, 6279, 12508, 0, 12502, 9161, 0, 1620, 0,
- 3601, 0, 0, 67246, 609, 11555, 0, 12496, 0, 74181, 120492, 12505, 0,
- 194902, 0, 43567, 239, 0, 127085, 0, 0, 42671, 0, 0, 83095, 43565,
- 127082, 983936, 12696, 127753, 0, 94062, 12929, 0, 712, 0, 4197, 0,
- 42818, 0, 70306, 0, 0, 983805, 0, 43562, 0, 129034, 68076, 0, 111074,
- 64628, 0, 0, 0, 0, 7494, 0, 4924, 0, 0, 0, 0, 127088, 0, 127087, 69987,
- 64796, 0, 0, 12033, 0, 0, 0, 0, 0, 0, 0, 70299, 0, 0, 68324, 72420, 0, 0,
- 0, 0, 70309, 127000, 0, 0, 0, 72418, 72963, 0, 5699, 0, 983879, 9488,
- 74410, 119112, 70477, 11170, 0, 0, 72312, 0, 5265, 0, 0, 0, 0, 12464, 0,
- 43264, 72977, 0, 43345, 0, 0, 120592, 6807, 0, 9829, 69997, 0, 0, 43346,
- 11393, 795, 0, 72412, 12462, 72416, 72415, 0, 0, 64362, 0, 0, 120811, 0,
- 12468, 8607, 1008, 0, 120670, 0, 0, 67855, 125018, 127177, 6758, 0, 0,
- 1820, 41112, 0, 11202, 129451, 0, 13223, 0, 64595, 0, 0, 0, 0, 12616, 0,
- 0, 0, 74467, 0, 0, 0, 0, 0, 0, 67233, 119060, 0, 83448, 19920, 69897, 0,
- 129057, 0, 1130, 0, 0, 0, 11823, 0, 0, 118896, 0, 0, 13280, 0, 10747,
- 118925, 0, 43509, 0, 0, 8959, 0, 6747, 0, 0, 8568, 0, 120870, 0, 120803,
- 83060, 42670, 0, 11621, 12460, 0, 0, 0, 0, 111190, 0, 66570, 72989,
- 121305, 126476, 120582, 0, 0, 0, 111191, 70308, 11594, 0, 68333, 69427,
- 10491, 0, 0, 0, 0, 0, 127506, 0, 194910, 4923, 65086, 8981, 0, 42133, 0,
- 72244, 0, 70294, 0, 0, 12485, 0, 8642, 0, 42766, 0, 2210, 11109, 0, 0, 0,
- 0, 0, 7398, 0, 0, 0, 8041, 1461, 0, 119133, 0, 6749, 0, 0, 0, 71705, 0,
- 0, 68071, 0, 67668, 0, 0, 9193, 0, 0, 0, 0, 73810, 0, 0, 64305, 0, 0,
- 623, 781, 670, 10660, 5769, 613, 7543, 0, 477, 92633, 92521, 0, 592, 0,
- 12459, 0, 0, 0, 12465, 119578, 654, 11345, 653, 652, 111250, 647, 0, 633,
- 120744, 0, 111262, 12480, 74354, 0, 39, 12487, 0, 0, 74803, 12482, 0,
- 12489, 0, 128962, 5550, 129175, 0, 0, 0, 0, 1813, 0, 41311, 111205, 0,
- 11229, 0, 70496, 1675, 69840, 129435, 0, 119078, 10070, 10595, 111207,
- 119077, 111206, 121162, 0, 0, 0, 11222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 71716, 917841, 0, 0, 270, 0, 0, 0, 0, 0, 120899, 0, 69741, 0, 0, 68251,
- 0, 71721, 364, 9595, 0, 0, 0, 707, 110603, 0, 9282, 0, 224, 0, 68670,
- 9332, 65581, 68677, 0, 68644, 0, 11764, 68634, 0, 10732, 68640, 850, 0,
- 0, 71123, 0, 68619, 44008, 68627, 0, 0, 0, 0, 0, 0, 0, 0, 12507, 0, 0,
- 128311, 0, 120529, 4375, 0, 0, 0, 12198, 0, 67339, 0, 0, 72994, 74293,
- 128434, 0, 0, 64546, 0, 71208, 0, 0, 0, 42334, 42502, 0, 120887, 72961,
- 0, 0, 5767, 0, 0, 71710, 8353, 0, 0, 0, 121233, 0, 0, 0, 0, 119920, 0, 0,
- 121186, 0, 0, 0, 72719, 64604, 0, 6096, 0, 10063, 0, 0, 119630, 3485,
- 12987, 0, 127522, 0, 0, 0, 0, 0, 0, 0, 0, 127173, 0, 0, 68249, 0, 0,
- 118923, 0, 64574, 128794, 0, 1640, 12495, 66691, 0, 3138, 12504, 11171,
- 1922, 0, 12498, 0, 0, 69939, 0, 65543, 0, 0, 0, 66643, 0, 120734, 0,
- 4228, 0, 10303, 0, 0, 0, 10335, 3520, 0, 12490, 0, 0, 0, 12493, 121452,
- 64636, 1002, 12491, 0, 0, 92615, 2096, 0, 0, 0, 0, 11611, 66228, 0,
- 11241, 66224, 66221, 66226, 66229, 66219, 66231, 66216, 0, 66236, 66211,
- 66218, 0, 66240, 78041, 66233, 66217, 0, 7909, 66234, 11605, 0, 0, 66208,
- 0, 0, 128282, 73875, 0, 12898, 12494, 120939, 12492, 0, 0, 0, 74153, 0,
- 127391, 127489, 4882, 13040, 0, 120762, 4885, 194732, 0, 13042, 4880,
- 128834, 2429, 0, 8647, 0, 0, 0, 0, 0, 0, 68896, 0, 119101, 66693, 0,
- 1870, 78040, 470, 68893, 78035, 78036, 983577, 78034, 110607, 110608, 0,
- 12511, 74453, 12514, 0, 128609, 7239, 7001, 11974, 121214, 0, 0, 7378,
- 12512, 11615, 13041, 0, 0, 128057, 13038, 0, 0, 71717, 70195, 120836,
- 12510, 127070, 13039, 75019, 12513, 71969, 12471, 110761, 0, 121385,
- 70193, 0, 0, 0, 71714, 0, 12477, 0, 12473, 7666, 67362, 237, 6281, 0, 0,
- 0, 0, 1312, 0, 0, 12469, 0, 0, 64335, 12475, 0, 69382, 0, 11524, 10367,
- 10431, 74368, 13017, 3388, 129547, 69573, 0, 0, 128725, 4932, 0, 0,
- 13015, 0, 0, 65451, 8185, 0, 0, 43024, 129362, 74375, 10129, 0, 7948,
- 9236, 0, 0, 0, 92726, 43473, 6289, 10484, 0, 0, 0, 12082, 12521, 3147,
- 110643, 110644, 12524, 110642, 2310, 0, 0, 0, 0, 13013, 0, 8596, 983852,
- 10804, 70497, 0, 0, 13014, 12444, 0, 43088, 13016, 0, 0, 0, 0, 12331, 0,
- 0, 8744, 726, 121090, 983849, 4155, 0, 0, 0, 71690, 12522, 73128, 0, 0,
- 127805, 0, 110647, 0, 0, 983853, 12525, 0, 12523, 2152, 11969, 120596,
- 403, 0, 11021, 0, 0, 11030, 8610, 92567, 0, 0, 63998, 0, 0, 0, 0, 0, 0,
- 0, 12506, 0, 11146, 71477, 12500, 0, 12509, 0, 0, 0, 0, 6608, 0, 0, 0, 0,
- 69288, 77995, 0, 3608, 0, 0, 1107, 0, 129658, 0, 0, 0, 0, 983937, 43217,
- 66571, 13222, 118963, 0, 126514, 10463, 11553, 0, 63995, 9043, 128634,
- 71722, 0, 0, 127751, 92974, 12529, 8042, 0, 2344, 12528, 0, 0, 0, 69719,
- 120956, 0, 0, 66512, 0, 12530, 0, 0, 68917, 12658, 0, 71683, 0, 983237,
- 0, 127526, 469, 0, 4363, 3313, 0, 0, 2023, 0, 72251, 78225, 65706, 10051,
- 78219, 78220, 0, 9920, 12215, 0, 4931, 1951, 12497, 119363, 0, 0, 119336,
- 0, 0, 0, 0, 0, 1491, 128578, 129169, 0, 0, 0, 0, 78898, 94086, 41993, 0,
- 67379, 0, 0, 0, 0, 9738, 41995, 1075, 0, 12535, 41992, 0, 0, 0, 0,
- 128117, 0, 9940, 0, 7692, 0, 9727, 41131, 330, 8566, 0, 41133, 41117,
- 128482, 12532, 78550, 78546, 43177, 0, 43235, 0, 917542, 78229, 78231,
- 13031, 12910, 67710, 78555, 13028, 78553, 12537, 0, 0, 71692, 12536,
- 2350, 13029, 78233, 0, 0, 13030, 0, 4527, 71250, 12538, 0, 0, 0, 0, 0, 0,
- 0, 12484, 4032, 71459, 194728, 0, 64344, 0, 66700, 66000, 8412, 0, 43466,
- 1296, 2325, 0, 121020, 10149, 74118, 0, 0, 12481, 121280, 12488, 0, 0, 0,
- 67972, 0, 2354, 42619, 0, 73027, 6295, 901, 0, 0, 0, 0, 0, 128653, 11927,
- 66584, 78559, 78560, 78557, 78558, 0, 74649, 0, 126241, 67220, 194726,
- 78568, 67226, 78565, 70190, 78563, 78564, 2352, 67219, 78569, 71945,
- 11289, 1407, 67973, 0, 13026, 6762, 10399, 70192, 13023, 78578, 9777,
- 67208, 1871, 0, 0, 0, 13024, 71936, 0, 9325, 6818, 6283, 11738, 0, 0,
- 71938, 11741, 0, 0, 9216, 8263, 11279, 0, 983837, 0, 13021, 71922, 3136,
- 0, 983840, 0, 13022, 129143, 9956, 0, 0, 0, 42580, 0, 0, 0, 13020, 10024,
- 0, 94013, 0, 0, 0, 43001, 8029, 0, 0, 0, 3335, 127924, 9209, 13048,
- 73126, 0, 0, 0, 3333, 119100, 0, 0, 3342, 78582, 78583, 73056, 78581,
- 4156, 0, 0, 0, 78591, 1611, 73058, 13018, 78586, 78588, 78584, 3337,
- 4537, 78593, 11736, 0, 0, 0, 4214, 73790, 0, 0, 13046, 194844, 425,
- 74763, 42066, 78595, 0, 2392, 13047, 0, 0, 12425, 13049, 0, 92243, 0,
- 72715, 73944, 13050, 0, 0, 0, 0, 983501, 0, 0, 8929, 0, 0, 0, 0, 983971,
- 0, 13045, 0, 0, 7751, 0, 9726, 0, 3997, 0, 8768, 13044, 0, 0, 4024, 0, 0,
- 2419, 9757, 69736, 0, 0, 0, 129500, 0, 0, 0, 72735, 0, 0, 0, 0, 0, 11911,
- 124990, 0, 2346, 194691, 69931, 0, 9646, 3773, 43557, 68154, 42536, 0,
- 70108, 13043, 92686, 92494, 0, 208, 0, 43766, 0, 0, 0, 10699, 0, 0, 7825,
- 7110, 111275, 0, 111274, 41109, 2398, 111271, 0, 0, 0, 0, 0, 0, 72723,
- 8294, 42912, 129343, 0, 0, 4876, 111316, 0, 111326, 111282, 0, 0, 0,
- 73950, 13053, 9944, 0, 2811, 13051, 111313, 3143, 111246, 66374, 110759,
- 0, 0, 13052, 0, 0, 63972, 119071, 7025, 0, 0, 100464, 74161, 4154, 9863,
- 129686, 0, 0, 63970, 1564, 0, 0, 0, 0, 0, 9942, 0, 0, 111227, 0, 128471,
- 0, 63957, 0, 1626, 0, 63983, 0, 111232, 0, 0, 121275, 111292, 6254, 4910,
- 69453, 0, 64753, 100458, 111303, 111298, 127404, 111297, 3229, 0, 42774,
- 0, 0, 111218, 111286, 2331, 0, 7085, 6137, 0, 70411, 0, 126070, 0,
- 128438, 0, 0, 65043, 0, 127588, 70412, 128921, 64721, 0, 0, 0, 0, 0,
- 983770, 0, 0, 5311, 0, 965, 0, 11993, 78055, 11278, 128787, 0, 0, 0,
- 121076, 120705, 0, 6294, 3144, 0, 0, 65019, 0, 0, 0, 0, 0, 63966, 2330,
- 535, 3148, 12375, 110774, 0, 10556, 2475, 12388, 4889, 0, 67863, 0, 0,
- 72750, 2342, 0, 0, 0, 4894, 0, 4890, 0, 0, 0, 4893, 128426, 6571, 0,
- 4888, 4157, 78048, 78049, 78046, 11263, 0, 78045, 64895, 121437, 0, 0, 0,
- 0, 0, 119041, 2332, 78063, 78060, 78061, 64932, 78059, 65125, 121098, 0,
- 0, 129991, 73941, 78066, 12203, 78064, 78065, 8913, 120390, 4875, 73678,
- 120396, 120389, 71854, 0, 120394, 120386, 120395, 13104, 78076, 78077,
- 120393, 78075, 0, 3134, 83096, 65696, 72432, 0, 0, 0, 8334, 0, 83207,
- 3449, 0, 0, 83215, 0, 0, 0, 83204, 0, 0, 0, 69707, 0, 0, 10734, 0, 83198,
- 83108, 7804, 121401, 83166, 8457, 83212, 0, 11367, 0, 78054, 0, 72762, 0,
- 64285, 0, 5464, 0, 83100, 2361, 7971, 78072, 78073, 78070, 78071, 0,
- 8086, 0, 6707, 0, 2312, 40977, 0, 40962, 0, 0, 74962, 40980, 0, 0, 0,
- 40970, 92895, 110823, 0, 42438, 72752, 6288, 0, 127946, 5653, 42400,
- 10891, 73946, 5658, 70401, 0, 0, 0, 0, 71060, 0, 0, 42326, 100482, 92191,
- 92685, 42478, 2327, 0, 12959, 42287, 92883, 0, 83081, 917550, 0, 0, 2867,
- 128562, 66312, 698, 0, 0, 0, 70017, 0, 8000, 12641, 83140, 0, 0, 129064,
- 0, 72979, 83133, 0, 83134, 0, 0, 111011, 92960, 74356, 0, 74562, 0,
- 72745, 0, 0, 120568, 0, 0, 0, 0, 0, 8703, 5462, 83195, 0, 10101, 0,
- 70049, 0, 0, 128793, 0, 0, 66254, 120821, 0, 0, 123621, 0, 119194, 0,
- 42651, 0, 0, 917847, 83227, 83218, 0, 75011, 0, 917846, 0, 64399, 0,
- 12899, 74564, 0, 42206, 0, 72718, 71715, 83149, 983775, 83146, 12192,
- 917826, 0, 0, 0, 0, 68056, 0, 67426, 128687, 0, 0, 0, 0, 0, 0, 67431,
- 71718, 74357, 0, 121176, 43596, 6090, 0, 7812, 10534, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 43306, 0, 0, 0, 7930, 0, 2292, 0, 0, 72737, 0, 6130, 0, 0,
- 0, 0, 0, 70463, 968, 0, 0, 0, 43304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11838,
- 0, 0, 0, 42682, 0, 0, 0, 41227, 0, 71475, 0, 64848, 0, 78574, 0, 113792,
- 0, 0, 129133, 0, 66015, 74614, 959, 8885, 0, 0, 0, 9469, 9632, 128211,
- 74761, 64323, 100478, 0, 2266, 78575, 310, 0, 0, 68403, 100480, 72738,
- 125279, 0, 0, 6497, 127320, 0, 0, 19958, 0, 0, 74953, 0, 118998, 67332,
- 374, 0, 41933, 120975, 0, 0, 41934, 7465, 0, 128168, 70666, 11151, 6101,
- 0, 41936, 100476, 4879, 0, 65446, 0, 0, 0, 0, 5374, 0, 128059, 127390, 0,
- 126618, 983575, 129146, 0, 0, 1929, 0, 12142, 0, 0, 0, 121472, 0, 12982,
+ 6631, 128923, 0, 74583, 42218, 0, 0, 70094, 0, 0, 0, 71058, 0, 0, 0,
+ 127341, 0, 0, 0, 0, 0, 43370, 0, 5016, 121052, 0, 0, 9491, 0, 0, 0, 0,
+ 64922, 0, 0, 0, 0, 92198, 0, 0, 0, 74619, 0, 0, 70422, 983669, 10565, 0,
+ 12177, 0, 0, 0, 0, 0, 12395, 127874, 12878, 92630, 12396, 0, 0, 92537, 0,
+ 43113, 0, 0, 0, 9781, 0, 4927, 0, 0, 0, 0, 12397, 129089, 128910, 0,
+ 12394, 0, 0, 0, 0, 0, 72789, 10781, 1546, 0, 5010, 0, 10507, 127891,
+ 128291, 0, 0, 0, 0, 7267, 0, 0, 0, 0, 2819, 0, 0, 71063, 0, 7266, 128553,
+ 7264, 7265, 0, 1363, 0, 119581, 65080, 0, 0, 0, 0, 43336, 0, 0, 126263,
+ 73776, 0, 43339, 0, 9836, 0, 0, 0, 43335, 41276, 0, 73795, 43337, 817,
+ 11211, 2241, 128841, 41274, 11340, 42408, 42447, 74932, 0, 0, 12386, 0,
+ 0, 0, 12389, 128398, 0, 41996, 41686, 0, 8269, 1147, 43849, 120896, 1987,
+ 128540, 43195, 42001, 41990, 41999, 12391, 0, 0, 4939, 12384, 0, 0,
+ 43243, 0, 0, 70746, 0, 0, 0, 0, 0, 8247, 0, 0, 7545, 0, 43643, 121445, 0,
+ 10036, 0, 119813, 10178, 119816, 0, 119815, 11762, 119818, 0, 92282,
+ 120597, 0, 0, 119819, 0, 0, 7719, 0, 2486, 0, 119808, 1507, 0, 129185,
+ 70301, 9687, 119825, 0, 119811, 66196, 0, 5262, 0, 74642, 12681, 0, 0,
+ 12406, 12219, 0, 127528, 42810, 110991, 0, 983673, 128144, 121027,
+ 126096, 120753, 12403, 2500, 0, 0, 12409, 0, 0, 0, 74113, 2343, 12412,
+ 19946, 74112, 125042, 13112, 0, 120603, 67866, 110634, 0, 66369, 5861,
+ 110632, 11999, 12400, 0, 0, 12645, 0, 11320, 68410, 6748, 65040, 0,
+ 64184, 12974, 66927, 67613, 120645, 0, 0, 0, 0, 0, 1928, 0, 67649, 0, 0,
+ 67609, 11235, 0, 0, 67610, 8241, 0, 0, 4206, 0, 0, 0, 128298, 110980, 0,
+ 67238, 0, 0, 0, 1422, 8357, 0, 7187, 0, 120641, 0, 0, 0, 0, 125022,
+ 111064, 92539, 10120, 12405, 0, 72997, 0, 13278, 0, 6366, 0, 7945, 0,
+ 4402, 0, 12402, 129372, 0, 74754, 12408, 0, 44007, 0, 0, 0, 12411, 0,
+ 120824, 128306, 121092, 0, 1575, 0, 0, 0, 73003, 119622, 0, 0, 12399, 0,
+ 6833, 0, 0, 0, 71878, 9692, 0, 0, 100615, 6750, 66855, 0, 0, 0, 0, 43527,
+ 0, 727, 0, 0, 0, 0, 6726, 127387, 0, 12370, 44023, 0, 126592, 2280, 0,
+ 12372, 120642, 0, 0, 0, 0, 12366, 10963, 6066, 1329, 0, 3052, 72987, 0,
+ 66029, 0, 10803, 0, 0, 0, 92473, 0, 0, 0, 0, 1499, 0, 0, 42740, 0, 0, 0,
+ 0, 12056, 126484, 0, 3660, 69404, 42192, 74253, 0, 42223, 67617, 125254,
+ 0, 0, 0, 0, 9941, 0, 0, 1933, 0, 0, 0, 0, 73866, 0, 0, 2487, 67614, 7361,
+ 1804, 0, 67615, 0, 0, 12220, 67616, 0, 0, 0, 68200, 6675, 0, 0, 67592,
+ 126582, 0, 64771, 0, 9132, 0, 111004, 510, 0, 0, 0, 4561, 7711, 92769,
+ 92944, 111007, 0, 41569, 121282, 0, 8167, 66885, 123197, 0, 0, 69992,
+ 66403, 6967, 0, 0, 0, 0, 333, 0, 0, 10566, 66409, 0, 121373, 0, 72965,
+ 110999, 66388, 6678, 0, 0, 12621, 0, 128775, 10227, 4764, 0, 9981, 0,
+ 70278, 11589, 0, 0, 42202, 12754, 0, 0, 69576, 0, 67594, 2048, 0, 4050,
+ 67595, 0, 0, 43221, 11184, 72709, 0, 0, 64175, 0, 72746, 0, 0, 129966,
+ 65461, 9798, 0, 71210, 0, 69841, 0, 952, 128235, 125107, 0, 70296, 6449,
+ 72102, 0, 0, 43098, 64171, 8142, 64160, 0, 0, 0, 0, 0, 0, 0, 0, 67597,
+ 6676, 3930, 42615, 73124, 69991, 67598, 0, 0, 0, 65591, 41581, 128056,
+ 1453, 0, 0, 0, 8500, 42222, 0, 119270, 72992, 69996, 0, 0, 64676, 0, 0,
+ 67606, 66385, 0, 42217, 13102, 0, 67607, 6672, 0, 0, 0, 0, 67608, 0,
+ 9001, 0, 11274, 67601, 0, 64210, 6664, 0, 42056, 67602, 0, 0, 0, 0, 1469,
+ 67603, 65381, 69921, 4988, 42372, 0, 9598, 904, 352, 42225, 0, 8061,
+ 10673, 0, 0, 128276, 67600, 0, 0, 127293, 8575, 127295, 127296, 127289,
+ 127290, 127291, 127292, 127285, 127286, 127287, 118877, 127281, 127282,
+ 9460, 823, 11587, 0, 0, 0, 127305, 12387, 0, 0, 127301, 126979, 42783,
+ 69998, 64208, 127298, 127299, 66031, 0, 11606, 64784, 0, 69973, 0, 0, 0,
+ 5152, 11048, 0, 120121, 67605, 0, 69604, 0, 70276, 194847, 0, 127052,
+ 42587, 42214, 41394, 0, 4763, 0, 118935, 0, 5260, 0, 94038, 326, 120131,
+ 74119, 0, 10771, 42198, 194920, 194837, 194925, 41398, 127079, 41393,
+ 127077, 127076, 453, 41396, 0, 13159, 11227, 9572, 0, 0, 194576, 128835,
+ 127081, 0, 126617, 43144, 0, 72972, 194887, 0, 0, 0, 0, 0, 64061, 0, 0,
+ 64056, 70310, 0, 0, 0, 194864, 0, 111084, 64301, 72998, 10464, 0, 128393,
+ 72847, 0, 11528, 64024, 128072, 679, 0, 0, 5850, 758, 7536, 0, 0, 43712,
+ 0, 64006, 983589, 64005, 70298, 0, 126487, 0, 0, 0, 0, 0, 72999, 0,
+ 64027, 64029, 0, 0, 64000, 0, 194874, 0, 42201, 12421, 194875, 0, 1852,
+ 0, 0, 73744, 0, 64041, 129127, 0, 0, 0, 92322, 12423, 12854, 0, 3496, 0,
+ 110966, 0, 194823, 0, 0, 6158, 8327, 74553, 0, 12419, 0, 11570, 0, 0,
+ 123618, 0, 7844, 983801, 194909, 0, 1682, 93039, 194911, 42756, 6765,
+ 128178, 0, 0, 0, 11412, 6768, 0, 194830, 71316, 0, 0, 0, 11577, 0,
+ 194829, 1833, 11576, 74334, 0, 0, 42854, 69438, 0, 70307, 0, 194856,
+ 8085, 0, 194850, 0, 72996, 128778, 1949, 11614, 7847, 120489, 120997,
+ 64483, 0, 0, 0, 0, 0, 0, 0, 126651, 42864, 0, 64667, 74624, 0, 0, 43261,
+ 11484, 127535, 67840, 0, 0, 128965, 0, 72974, 0, 110928, 128454, 3455, 0,
+ 0, 9879, 0, 0, 4158, 128050, 0, 0, 110929, 0, 0, 0, 332, 118808, 0, 0,
+ 2407, 0, 42199, 92386, 110865, 0, 77921, 55217, 123161, 125199, 70043, 0,
+ 0, 0, 121093, 1834, 0, 0, 71315, 0, 65249, 0, 8662, 0, 0, 123153, 0,
+ 11539, 10784, 0, 67674, 0, 92233, 0, 0, 118858, 0, 0, 0, 0, 0, 0, 12499,
+ 6280, 0, 0, 0, 0, 0, 0, 43851, 6279, 12508, 0, 12502, 9161, 0, 1620, 0,
+ 3601, 0, 0, 67246, 609, 11555, 0, 12496, 0, 74181, 120492, 12505, 0,
+ 194902, 0, 43567, 239, 0, 127085, 0, 0, 42671, 0, 0, 83095, 43565,
+ 127082, 983936, 12696, 127753, 0, 94062, 12929, 0, 712, 0, 4197, 0,
+ 42818, 0, 70306, 0, 0, 983805, 0, 43562, 0, 129034, 68076, 0, 111074,
+ 64628, 0, 0, 0, 0, 7494, 0, 4924, 0, 0, 0, 0, 127088, 0, 127087, 69987,
+ 64796, 0, 0, 12033, 0, 0, 0, 0, 0, 0, 0, 70299, 0, 0, 68324, 72420, 0, 0,
+ 0, 0, 70309, 127000, 0, 0, 0, 72418, 72963, 0, 5699, 0, 983879, 9488,
+ 74410, 119112, 70477, 11170, 0, 0, 72312, 0, 5265, 0, 0, 0, 0, 12464, 0,
+ 43264, 72977, 0, 43345, 0, 0, 120592, 6807, 0, 9829, 69997, 0, 0, 43346,
+ 11393, 795, 0, 72412, 12462, 72416, 72415, 0, 0, 64362, 0, 0, 120811, 0,
+ 12468, 8607, 1008, 0, 120670, 0, 0, 67855, 125018, 127177, 6758, 0, 0,
+ 1820, 41112, 0, 11202, 129451, 0, 13223, 0, 64595, 0, 0, 0, 0, 12616, 0,
+ 0, 0, 74467, 0, 0, 0, 0, 0, 0, 67233, 119060, 0, 83448, 19920, 69897, 0,
+ 129057, 0, 1130, 0, 0, 0, 11823, 0, 0, 118896, 0, 0, 13280, 0, 10747,
+ 118925, 0, 43509, 0, 0, 8959, 0, 6747, 0, 0, 8568, 0, 120870, 0, 120803,
+ 83060, 42670, 0, 11621, 12460, 0, 0, 0, 0, 111190, 0, 66570, 72989,
+ 121305, 126476, 120582, 0, 0, 0, 111191, 70308, 11594, 0, 68333, 69427,
+ 10491, 0, 0, 0, 0, 0, 127506, 0, 194910, 4923, 65086, 8981, 0, 42133, 0,
+ 72244, 0, 70294, 0, 0, 12485, 0, 8642, 0, 42766, 0, 2210, 11109, 0, 0, 0,
+ 0, 0, 7398, 0, 0, 0, 8041, 1461, 0, 119133, 0, 6749, 0, 0, 0, 71705, 0,
+ 0, 68071, 0, 67668, 0, 0, 9193, 0, 0, 0, 0, 73810, 0, 0, 64305, 0, 0,
+ 623, 781, 670, 10660, 5769, 613, 7543, 0, 477, 92633, 92521, 0, 592, 0,
+ 12459, 0, 0, 0, 12465, 119578, 654, 11345, 653, 652, 111250, 647, 0, 633,
+ 120744, 0, 111262, 12480, 74354, 0, 39, 12487, 0, 0, 74803, 12482, 0,
+ 12489, 0, 128962, 5550, 129175, 0, 0, 0, 0, 1813, 0, 41311, 111205, 0,
+ 11229, 0, 70496, 1675, 69840, 129435, 0, 119078, 10070, 10595, 111207,
+ 119077, 111206, 121162, 0, 0, 0, 11222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 71716, 917841, 0, 0, 270, 0, 0, 0, 0, 0, 120899, 0, 69741, 0, 0, 68251,
+ 0, 71721, 364, 9595, 0, 0, 0, 707, 110603, 0, 9282, 0, 224, 0, 68670,
+ 9332, 65581, 68677, 0, 68644, 0, 11764, 68634, 0, 10732, 68640, 850, 0,
+ 0, 71123, 0, 68619, 44008, 68627, 0, 0, 0, 0, 0, 0, 0, 0, 12507, 0, 0,
+ 128311, 0, 120529, 4375, 0, 0, 0, 12198, 0, 67339, 0, 0, 72994, 74293,
+ 128434, 0, 0, 64546, 0, 71208, 0, 0, 0, 42334, 42502, 0, 120887, 72961,
+ 0, 0, 5767, 0, 0, 71710, 8353, 0, 0, 0, 121233, 0, 0, 0, 0, 119920, 0, 0,
+ 121186, 0, 0, 0, 72719, 64604, 0, 6096, 0, 10063, 0, 0, 119630, 3485,
+ 12987, 0, 127522, 0, 0, 0, 0, 0, 0, 0, 0, 127173, 0, 0, 68249, 0, 0,
+ 118923, 0, 64574, 128794, 0, 1640, 12495, 66691, 0, 3138, 12504, 11171,
+ 1922, 0, 12498, 0, 0, 69939, 0, 65543, 0, 0, 0, 66643, 0, 120734, 0,
+ 4228, 0, 10303, 0, 0, 0, 10335, 3520, 0, 12490, 0, 0, 0, 12493, 121452,
+ 64636, 1002, 12491, 0, 0, 92615, 2096, 0, 0, 0, 0, 11611, 66228, 0,
+ 11241, 66224, 66221, 66226, 66229, 66219, 66231, 66216, 0, 66236, 66211,
+ 66218, 0, 66240, 78041, 66233, 66217, 0, 7909, 66234, 11605, 0, 0, 66208,
+ 0, 0, 128282, 73875, 0, 12898, 12494, 120939, 12492, 0, 0, 0, 74153, 0,
+ 127391, 127489, 4882, 13040, 0, 120762, 4885, 194732, 0, 13042, 4880,
+ 128834, 2429, 0, 8647, 0, 0, 0, 0, 0, 0, 68896, 0, 119101, 66693, 0,
+ 1870, 78040, 470, 68893, 78035, 78036, 983577, 78034, 110607, 110608, 0,
+ 12511, 74453, 12514, 0, 128609, 7239, 7001, 11974, 121214, 0, 0, 7378,
+ 12512, 11615, 13041, 0, 0, 128057, 13038, 0, 0, 71717, 70195, 120836,
+ 12510, 127070, 13039, 75019, 12513, 71969, 12471, 110761, 0, 121385,
+ 70193, 0, 0, 0, 71714, 0, 12477, 0, 12473, 7666, 67362, 237, 6281, 0, 0,
+ 0, 0, 1312, 0, 0, 12469, 0, 0, 64335, 12475, 0, 69382, 0, 11524, 10367,
+ 10431, 74368, 13017, 3388, 129547, 69573, 0, 0, 128725, 4932, 0, 0,
+ 13015, 0, 0, 65451, 8185, 0, 0, 43024, 129362, 74375, 10129, 0, 7948,
+ 9236, 0, 0, 0, 92726, 43473, 6289, 10484, 0, 0, 0, 12082, 12521, 3147,
+ 110643, 110644, 12524, 110642, 2310, 0, 0, 0, 0, 13013, 0, 8596, 983852,
+ 10804, 70497, 0, 0, 13014, 12444, 0, 43088, 13016, 0, 0, 0, 0, 12331, 0,
+ 0, 8744, 726, 121090, 983849, 4155, 0, 0, 0, 71690, 12522, 73128, 0, 0,
+ 127805, 0, 110647, 0, 0, 983853, 12525, 0, 12523, 2152, 11969, 120596,
+ 403, 0, 11021, 0, 0, 11030, 8610, 92567, 0, 0, 63998, 0, 0, 0, 0, 0, 0,
+ 0, 12506, 0, 11146, 71477, 12500, 0, 12509, 0, 0, 0, 0, 6608, 0, 0, 0, 0,
+ 69288, 77995, 0, 3608, 0, 0, 1107, 0, 129658, 0, 0, 0, 0, 983937, 43217,
+ 66571, 13222, 118963, 0, 126514, 10463, 11553, 0, 63995, 9043, 128634,
+ 71722, 0, 0, 127751, 92974, 12529, 8042, 0, 2344, 12528, 0, 0, 0, 69719,
+ 120956, 0, 0, 66512, 0, 12530, 0, 0, 68917, 12658, 0, 71683, 0, 983237,
+ 0, 127526, 469, 0, 4363, 3313, 0, 0, 2023, 0, 72251, 78225, 65706, 10051,
+ 78219, 78220, 0, 9920, 12215, 0, 4931, 1951, 12497, 119363, 0, 0, 119336,
+ 0, 0, 0, 0, 0, 1491, 128578, 129169, 0, 0, 0, 0, 78898, 94086, 41993, 0,
+ 67379, 0, 0, 0, 0, 9738, 41995, 1075, 0, 12535, 41992, 0, 0, 0, 0,
+ 128117, 0, 9940, 0, 7692, 0, 9727, 41131, 330, 8566, 0, 41133, 41117,
+ 128482, 12532, 78550, 78546, 43177, 0, 43235, 0, 917542, 78229, 78231,
+ 13031, 12910, 67710, 78555, 13028, 78553, 12537, 0, 0, 71692, 12536,
+ 2350, 13029, 78233, 0, 0, 13030, 0, 4527, 71250, 12538, 0, 0, 0, 0, 0, 0,
+ 0, 12484, 4032, 71459, 194728, 0, 64344, 0, 66700, 66000, 8412, 0, 43466,
+ 1296, 2325, 0, 121020, 10149, 74118, 0, 0, 12481, 121280, 12488, 0, 0, 0,
+ 67972, 0, 2354, 42619, 0, 73027, 6295, 901, 0, 0, 0, 0, 0, 128653, 11927,
+ 66584, 78559, 78560, 78557, 78558, 0, 74649, 0, 126241, 67220, 194726,
+ 78568, 67226, 78565, 70190, 78563, 78564, 2352, 67219, 78569, 71945,
+ 11289, 1407, 67973, 0, 13026, 6762, 10399, 70192, 13023, 78578, 9777,
+ 67208, 1871, 0, 0, 0, 13024, 71936, 0, 9325, 6818, 6283, 11738, 0, 0,
+ 71938, 11741, 0, 0, 9216, 8263, 11279, 0, 983837, 0, 13021, 71922, 3136,
+ 0, 983840, 0, 13022, 129143, 9956, 0, 0, 0, 42580, 0, 0, 0, 13020, 10024,
+ 0, 94013, 0, 0, 0, 43001, 8029, 0, 0, 0, 3335, 127924, 9209, 13048,
+ 73126, 0, 0, 0, 3333, 119100, 0, 0, 3342, 78582, 78583, 73056, 78581,
+ 4156, 0, 0, 0, 78591, 1611, 73058, 13018, 78586, 78588, 78584, 3337,
+ 4537, 78593, 11736, 0, 0, 0, 4214, 73790, 0, 0, 13046, 194844, 425,
+ 74763, 42066, 78595, 0, 2392, 13047, 0, 0, 12425, 13049, 0, 92243, 0,
+ 72715, 73944, 13050, 0, 0, 0, 0, 983501, 0, 0, 8929, 0, 0, 0, 0, 983971,
+ 0, 13045, 0, 0, 7751, 0, 9726, 0, 3997, 0, 8768, 13044, 0, 0, 4024, 0, 0,
+ 2419, 9757, 69736, 0, 0, 0, 129500, 0, 0, 0, 72735, 0, 0, 0, 0, 0, 11911,
+ 124990, 0, 2346, 194691, 69931, 0, 9646, 3773, 43557, 68154, 42536, 0,
+ 70108, 13043, 92686, 92494, 0, 208, 0, 43766, 0, 0, 0, 10699, 0, 0, 7825,
+ 7110, 111275, 0, 111274, 41109, 2398, 111271, 0, 0, 0, 0, 0, 0, 72723,
+ 8294, 42912, 129343, 0, 0, 4876, 111316, 0, 111326, 111282, 0, 0, 0,
+ 73950, 13053, 9944, 0, 2811, 13051, 111313, 3143, 111246, 66374, 110759,
+ 0, 0, 13052, 0, 0, 63972, 119071, 7025, 0, 0, 100464, 74161, 4154, 9863,
+ 129686, 0, 0, 63970, 1564, 0, 0, 0, 0, 0, 9942, 0, 0, 111227, 0, 128471,
+ 0, 63957, 0, 1626, 0, 63983, 0, 111232, 0, 0, 121275, 111292, 6254, 4910,
+ 69453, 0, 64753, 100458, 111303, 111298, 127404, 111297, 3229, 0, 42774,
+ 0, 0, 111218, 111286, 2331, 0, 7085, 6137, 0, 70411, 0, 126070, 0,
+ 128438, 0, 0, 65043, 0, 127588, 70412, 128921, 64721, 0, 0, 0, 0, 0,
+ 983770, 0, 0, 5311, 0, 965, 0, 11993, 78055, 11278, 128787, 0, 0, 0,
+ 121076, 120705, 0, 6294, 3144, 0, 0, 65019, 0, 0, 0, 0, 0, 63966, 2330,
+ 535, 3148, 12375, 110774, 0, 10556, 2475, 12388, 4889, 0, 67863, 0, 0,
+ 72750, 2342, 0, 0, 0, 4894, 0, 4890, 0, 0, 0, 4893, 128426, 6571, 0,
+ 4888, 4157, 78048, 78049, 78046, 11263, 0, 78045, 64895, 121437, 0, 0, 0,
+ 0, 0, 119041, 2332, 78063, 78060, 78061, 64932, 78059, 65125, 121098, 0,
+ 0, 129991, 73941, 78066, 12203, 78064, 78065, 8913, 120390, 4875, 73678,
+ 120396, 120389, 71854, 0, 120394, 120386, 120395, 13104, 78076, 78077,
+ 120393, 78075, 0, 3134, 83096, 65696, 72432, 0, 0, 0, 8334, 0, 83207,
+ 3449, 0, 0, 83215, 0, 0, 0, 83204, 0, 0, 0, 69707, 0, 0, 10734, 0, 83198,
+ 83108, 7804, 121401, 83166, 8457, 83212, 0, 11367, 0, 78054, 0, 72762, 0,
+ 64285, 0, 5464, 0, 83100, 2361, 7971, 78072, 78073, 78070, 78071, 0,
+ 8086, 0, 6707, 0, 2312, 40977, 0, 40962, 0, 0, 74962, 40980, 0, 0, 0,
+ 40970, 92895, 110823, 0, 42438, 72752, 6288, 0, 127946, 5653, 42400,
+ 10891, 73946, 5658, 70401, 0, 0, 0, 0, 71060, 0, 0, 42326, 100482, 92191,
+ 92685, 42478, 2327, 0, 12959, 42287, 92883, 0, 83081, 917550, 0, 0, 2867,
+ 128562, 66312, 698, 0, 0, 0, 70017, 0, 8000, 12641, 83140, 0, 0, 129064,
+ 0, 72979, 83133, 0, 83134, 0, 0, 111011, 92960, 74356, 0, 74562, 0,
+ 72745, 0, 0, 120568, 0, 0, 0, 0, 0, 8703, 5462, 83195, 0, 10101, 0,
+ 70049, 0, 0, 128793, 0, 0, 66254, 120821, 0, 0, 123621, 0, 119194, 0,
+ 42651, 0, 0, 917847, 83227, 83218, 0, 75011, 0, 917846, 0, 64399, 0,
+ 12899, 74564, 0, 42206, 0, 72718, 71715, 83149, 983775, 83146, 12192,
+ 917826, 0, 0, 0, 0, 68056, 0, 67426, 128687, 0, 0, 0, 0, 0, 0, 67431,
+ 71718, 74357, 0, 121176, 43596, 6090, 0, 7812, 10534, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 43306, 0, 0, 0, 7930, 0, 2292, 0, 0, 72737, 0, 6130, 0, 0,
+ 0, 0, 0, 70463, 968, 0, 0, 0, 43304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11838,
+ 0, 0, 0, 42682, 0, 0, 0, 41227, 0, 71475, 0, 64848, 0, 78574, 0, 113792,
+ 0, 0, 129133, 0, 66015, 74614, 959, 8885, 0, 0, 0, 9469, 9632, 128211,
+ 74761, 64323, 100478, 0, 2266, 78575, 310, 0, 0, 68403, 100480, 72738,
+ 125279, 0, 0, 6497, 127320, 0, 0, 19958, 0, 0, 74953, 0, 118998, 67332,
+ 374, 0, 41933, 120975, 0, 0, 41934, 7465, 0, 128168, 70666, 11151, 6101,
+ 0, 41936, 100476, 4879, 0, 65446, 0, 0, 0, 0, 5374, 0, 128059, 127390, 0,
+ 126618, 983575, 129146, 0, 0, 1929, 0, 12142, 0, 0, 0, 121472, 0, 12982,
0, 5378, 0, 128679, 0, 0, 127869, 0, 0, 0, 0, 0, 78832, 74481, 0, 43262,
100511, 2421, 0, 2324, 828, 3611, 121055, 0, 64314, 0, 0, 0, 0, 0, 0,
7999, 0, 11217, 983261, 10634, 10942, 0, 2348, 0, 0, 0, 0, 119044, 9982,
@@ -24742,236 +24742,236 @@ static const unsigned int code_hash[] = {
100515, 0, 0, 0, 43912, 128385, 0, 0, 0, 917850, 0, 7485, 0, 129382,
74576, 44019, 128171, 917851, 3967, 129335, 0, 0, 0, 0, 119096, 0, 0,
8699, 723, 83084, 966, 0, 0, 0, 128428, 78778, 2320, 0, 65740, 4968, 0,
- 0, 8075, 55276, 123589, 8047, 0, 78827, 12634, 0, 78782, 71322, 0, 12174,
+ 0, 8075, 55276, 123589, 8047, 0, 78827, 12634, 0, 78782, 71322, 0, 12174,
42610, 0, 0, 0, 1584, 0, 6045, 0, 0, 65218, 11559, 0, 0, 0, 124991, 0, 0,
64418, 0, 0, 0, 0, 0, 0, 67821, 0, 13092, 0, 128365, 0, 0, 0, 0, 0,
- 11414, 0, 2531, 13034, 0, 0, 0, 13036, 0, 70866, 70198, 10394, 129979,
- 13037, 0, 129956, 0, 0, 100496, 120640, 41129, 0, 42850, 13035, 0, 0,
- 5466, 0, 0, 0, 129439, 4535, 0, 4271, 0, 0, 6769, 0, 0, 67350, 6767, 0,
- 66273, 0, 6755, 73827, 9046, 67355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83235,
- 2563, 13033, 247, 83229, 0, 12338, 0, 83231, 11270, 0, 0, 0, 0, 70107, 0,
- 0, 0, 0, 3752, 83243, 68895, 0, 68897, 0, 0, 0, 0, 5009, 0, 0, 0, 0,
- 119521, 78823, 78824, 70353, 68399, 3877, 0, 78825, 10145, 43566, 0, 0,
- 10236, 0, 43782, 0, 127329, 0, 69652, 2247, 120612, 128058, 0, 43200,
- 43777, 71253, 0, 69558, 0, 71866, 43203, 0, 68894, 0, 127326, 0, 43778,
- 119538, 0, 0, 43781, 11303, 65547, 0, 7031, 0, 0, 67343, 83237, 83267, 0,
- 67341, 0, 8535, 0, 0, 0, 66032, 0, 0, 120786, 42233, 0, 9946, 7667, 0,
- 11822, 0, 43189, 120673, 100507, 2979, 1579, 0, 0, 0, 0, 0, 12635, 0, 0,
- 94055, 0, 1285, 64882, 0, 0, 83113, 12640, 83112, 7401, 0, 12625, 0,
- 71296, 72744, 0, 74286, 55260, 3396, 12642, 0, 110719, 0, 12630, 0, 0,
- 10153, 0, 6166, 120516, 0, 110680, 0, 0, 0, 9285, 913, 42259, 83017, 0,
- 2142, 0, 0, 94012, 7878, 0, 72733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128918,
- 5263, 74782, 0, 41939, 43702, 0, 917856, 0, 10139, 980, 43698, 0, 2208,
- 0, 43701, 0, 125132, 0, 100528, 0, 10085, 0, 0, 119989, 100529, 0, 71699,
- 0, 8072, 0, 43700, 0, 7304, 7783, 66894, 12398, 0, 0, 0, 0, 0, 0, 120565,
- 0, 2217, 0, 94015, 6367, 0, 66688, 0, 0, 0, 0, 0, 92199, 7808, 1829, 0,
- 41937, 0, 43272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92467, 6627, 0, 6258,
- 10683, 0, 0, 0, 5649, 0, 0, 0, 1643, 127898, 0, 127846, 67244, 0, 42452,
- 0, 0, 0, 0, 64291, 0, 0, 0, 6576, 74773, 0, 0, 66309, 0, 9886, 55225,
- 11292, 0, 72867, 55227, 0, 12632, 0, 194817, 0, 7680, 0, 92745, 120714,
- 12639, 3380, 8123, 0, 12638, 42262, 4501, 0, 0, 0, 0, 125131, 1494,
- 983146, 0, 0, 0, 0, 10494, 0, 65872, 0, 0, 0, 0, 0, 0, 983587, 0, 0, 0,
- 0, 0, 0, 0, 71077, 0, 127335, 121128, 0, 5570, 1881, 7210, 0, 1012,
- 66630, 0, 128982, 7208, 66442, 5569, 113723, 42339, 92655, 0, 0, 0, 0,
- 92378, 65602, 0, 92375, 64727, 9160, 0, 0, 0, 124928, 10503, 0, 3423,
- 3870, 8483, 10162, 0, 4319, 0, 0, 0, 0, 0, 983116, 0, 69562, 0, 0, 0, 0,
- 0, 0, 5571, 7630, 9740, 9121, 5568, 0, 0, 42085, 0, 0, 65056, 0, 589, 0,
- 0, 0, 10233, 66252, 66251, 78734, 66253, 0, 0, 42645, 0, 128424, 8583, 0,
- 0, 0, 129932, 0, 0, 0, 0, 0, 12204, 92436, 0, 0, 0, 0, 0, 0, 0, 70311, 0,
- 0, 128012, 41063, 0, 10664, 0, 0, 0, 4551, 129090, 74759, 0, 0, 0, 0,
- 72806, 0, 0, 12517, 7806, 0, 12034, 0, 6355, 12519, 41004, 0, 0, 93849,
- 0, 71707, 0, 121231, 7332, 129075, 12111, 3927, 0, 12515, 1474, 68768, 0,
- 6923, 0, 0, 127802, 0, 43990, 74639, 126229, 121007, 0, 92706, 0, 0, 0,
- 0, 0, 9645, 0, 121026, 5853, 0, 10363, 120729, 12956, 0, 0, 0, 0, 127888,
- 0, 0, 0, 0, 0, 10514, 65517, 0, 0, 71101, 0, 0, 0, 43570, 2969, 43420,
- 129944, 0, 0, 92366, 70809, 0, 0, 0, 0, 0, 0, 12125, 41124, 0, 1164,
- 128817, 0, 120466, 0, 0, 65014, 66009, 74451, 125075, 983128, 7469, 0, 0,
- 0, 69988, 120671, 83171, 41123, 11176, 0, 0, 41126, 9991, 41128, 0, 0,
- 110949, 0, 0, 42877, 7994, 0, 6104, 983612, 0, 129869, 0, 0, 0, 0, 74438,
- 128272, 121409, 41981, 0, 69296, 42904, 0, 0, 74435, 126640, 0, 0, 0,
- 127968, 92442, 12703, 9661, 67360, 67359, 7455, 70732, 11473, 119217,
- 128512, 0, 92323, 0, 0, 129632, 67358, 0, 0, 0, 0, 174, 121131, 883,
- 4161, 128033, 42603, 0, 0, 72256, 0, 0, 128356, 0, 0, 0, 0, 3846, 8070,
- 6150, 128109, 4370, 0, 0, 0, 74587, 0, 0, 0, 0, 4986, 12189, 917553,
- 67648, 120499, 0, 4257, 71695, 123620, 6220, 0, 65561, 0, 0, 0, 0, 0, 0,
- 0, 0, 69684, 0, 0, 128452, 120873, 0, 0, 74922, 0, 71897, 0, 0, 67368,
- 67367, 8871, 67366, 0, 0, 0, 0, 0, 67361, 0, 0, 67365, 67364, 3427, 4240,
- 67376, 67375, 67374, 67373, 0, 0, 0, 67377, 0, 71689, 0, 0, 67372, 67371,
- 67370, 67369, 0, 0, 0, 124962, 0, 0, 0, 0, 65898, 0, 65312, 0, 0, 0, 0,
- 4010, 121208, 41106, 0, 0, 0, 41105, 0, 64803, 83456, 0, 0, 0, 0, 0, 0,
- 0, 11008, 0, 0, 71351, 41110, 71681, 64892, 9113, 1954, 41108, 0, 42878,
- 0, 67405, 0, 0, 0, 0, 0, 119539, 69435, 73463, 0, 4586, 129342, 0, 0, 0,
- 0, 0, 125233, 92307, 0, 0, 0, 67382, 0, 9500, 0, 4957, 0, 2422, 2212, 0,
- 67381, 67380, 11045, 67378, 0, 0, 3890, 12168, 121328, 0, 0, 0, 41947, 0,
- 120828, 74946, 917901, 0, 1571, 66461, 41949, 42805, 8270, 943, 41946, 0,
- 2073, 0, 41980, 0, 0, 0, 0, 4429, 6272, 0, 1460, 6954, 128572, 41120, 0,
- 65733, 0, 41119, 0, 127006, 0, 0, 0, 129168, 12895, 0, 0, 0, 69440, 0,
- 1985, 6296, 0, 0, 0, 0, 0, 41122, 0, 2457, 0, 0, 0, 0, 0, 0, 8840, 8035,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8681, 0, 121505, 128747, 0, 0, 70102, 0,
- 124976, 9605, 0, 13220, 0, 67354, 11312, 0, 9246, 67349, 0, 0, 0, 0,
- 10012, 12123, 0, 0, 0, 0, 0, 0, 0, 0, 67817, 0, 1272, 0, 0, 0, 983578, 0,
- 1467, 0, 917806, 0, 0, 0, 70312, 0, 124955, 0, 70400, 0, 0, 72817, 0,
- 19935, 0, 92162, 0, 0, 0, 128406, 5275, 0, 0, 44006, 129082, 0, 3789,
- 128205, 0, 0, 0, 11474, 0, 0, 0, 129050, 0, 92194, 129503, 9537, 4496, 0,
- 120443, 2605, 4500, 0, 55224, 8600, 0, 0, 41646, 11667, 69569, 0, 0,
- 917905, 4499, 41649, 0, 0, 0, 69254, 0, 0, 0, 65804, 0, 70034, 41866, 0,
- 0, 0, 11174, 0, 0, 0, 9559, 128773, 41940, 8299, 41945, 0, 41941, 5455,
- 7190, 0, 0, 917810, 65266, 0, 41943, 10762, 0, 41931, 0, 0, 8106, 4128,
- 0, 0, 4494, 0, 0, 72405, 0, 119567, 42068, 917808, 0, 11004, 12794,
- 65072, 5271, 7317, 0, 0, 0, 0, 0, 0, 92281, 0, 0, 0, 0, 71880, 3868,
- 71881, 983573, 128431, 7703, 0, 64390, 0, 7406, 0, 93850, 0, 3985, 66425,
- 0, 66615, 10177, 0, 41853, 71873, 12809, 0, 12193, 0, 10879, 0, 0, 9055,
- 0, 3851, 8132, 0, 0, 119263, 917908, 0, 0, 0, 0, 0, 42657, 0, 7643, 0, 0,
- 0, 43568, 0, 11949, 7650, 43569, 64951, 7647, 7649, 0, 7646, 0, 0, 9651,
- 125005, 3891, 0, 0, 2337, 77831, 77832, 67860, 129288, 0, 0, 43561,
- 67706, 119669, 0, 1860, 0, 68835, 5812, 12784, 0, 0, 0, 0, 69260, 7727,
- 0, 69292, 69818, 66444, 128665, 42719, 0, 1569, 0, 12534, 12124, 7690,
- 194871, 12533, 0, 68383, 67997, 0, 6969, 0, 0, 0, 67974, 63895, 128650,
- 0, 0, 0, 42144, 0, 0, 0, 0, 92211, 119043, 0, 0, 917545, 0, 0, 12791, 0,
- 0, 0, 4447, 71065, 12793, 0, 0, 43385, 0, 0, 12790, 120256, 0, 983821,
- 12792, 120254, 0, 0, 12789, 128489, 12317, 74934, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 127840, 41652, 2974, 78689, 11476, 0, 0, 0, 0, 43871, 0, 10894,
- 119176, 74557, 65686, 0, 0, 3724, 67335, 67334, 67333, 67338, 67337, 0,
- 67336, 0, 65306, 0, 128421, 0, 8646, 129593, 77829, 0, 0, 74852, 0, 0, 0,
- 0, 0, 220, 120252, 43551, 0, 10044, 0, 0, 983828, 68659, 110825, 5707,
- 71362, 0, 0, 0, 0, 0, 0, 10297, 0, 41308, 67331, 0, 0, 0, 0, 2467, 0,
- 6003, 0, 0, 8040, 0, 0, 4182, 0, 11135, 120501, 0, 0, 2510, 0, 10208, 0,
- 78302, 70829, 0, 0, 6837, 0, 0, 67348, 0, 0, 0, 0, 1559, 67342, 11104,
- 67340, 67347, 67346, 67345, 67344, 0, 0, 67357, 67356, 0, 0, 0, 0, 67352,
- 67351, 5516, 2845, 7717, 8036, 65161, 67353, 5514, 12045, 6278, 0, 5515,
- 0, 0, 0, 0, 0, 65194, 100387, 5517, 70116, 92774, 0, 67884, 0, 67890,
- 42094, 67880, 67881, 67882, 67883, 0, 0, 67879, 120411, 1902, 67887,
- 67888, 12976, 126546, 12483, 12368, 41769, 42726, 41765, 69557, 12787,
- 67874, 7556, 67878, 74351, 67897, 989, 42677, 67889, 0, 6060, 0, 4326,
- 11000, 64601, 68478, 0, 0, 6917, 0, 120837, 0, 0, 0, 6148, 8605, 74205,
- 0, 0, 0, 42715, 0, 101047, 0, 68663, 0, 41796, 1269, 42703, 64754,
- 101049, 101042, 5144, 12221, 42716, 71048, 5133, 4331, 0, 128675, 0,
- 5279, 121362, 71046, 0, 0, 42701, 0, 0, 0, 121470, 0, 0, 0, 0, 0, 983608,
- 121259, 42666, 12207, 1067, 255, 12131, 0, 0, 0, 0, 0, 0, 0, 70728,
- 43460, 0, 42723, 125216, 0, 70427, 0, 12797, 0, 0, 983703, 0, 67977,
- 12799, 0, 92504, 9746, 5135, 0, 12796, 0, 0, 0, 5139, 346, 74303, 121134,
- 12795, 125109, 5168, 0, 43845, 983708, 0, 8253, 8817, 1136, 983716,
- 43563, 127774, 129542, 0, 0, 0, 0, 0, 0, 983619, 0, 0, 4041, 0, 2357,
- 43240, 12786, 0, 0, 0, 44004, 7142, 0, 67984, 0, 0, 0, 0, 12785, 0, 0,
- 7770, 10712, 64853, 42679, 118916, 42375, 0, 983123, 94074, 12119, 0,
- 11059, 10791, 0, 450, 0, 0, 0, 0, 5450, 64691, 0, 0, 44009, 0, 0, 111097,
- 94085, 1839, 94004, 0, 10927, 1701, 0, 129610, 41749, 41761, 5453, 8361,
- 66045, 41758, 5444, 41763, 0, 0, 0, 66349, 983137, 121274, 0, 0, 8801, 0,
- 4340, 0, 0, 0, 0, 70001, 41824, 0, 0, 0, 0, 42700, 0, 127980, 0, 0, 0, 0,
- 0, 0, 4493, 4336, 129171, 2314, 983061, 41808, 0, 0, 0, 64638, 0, 65937,
- 4489, 71331, 0, 0, 5358, 42717, 0, 71236, 0, 0, 0, 127042, 41813, 2712,
- 0, 127044, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 128587, 0, 0, 0, 4892, 0, 0, 0,
- 0, 0, 5777, 0, 759, 0, 2079, 65248, 12788, 0, 64552, 0, 41803, 68043, 0,
- 0, 0, 0, 128785, 0, 68492, 67991, 75071, 2340, 0, 120638, 0, 983883, 0,
- 0, 0, 64749, 0, 2321, 3587, 0, 67236, 9953, 9952, 0, 0, 42714, 9951, 0,
- 0, 127902, 74150, 0, 0, 74757, 127554, 0, 983807, 2395, 0, 9976, 0,
- 125128, 0, 0, 0, 42809, 42807, 0, 66290, 70854, 4150, 64424, 8318, 41790,
- 67976, 65559, 2360, 41794, 0, 0, 120987, 0, 0, 2418, 0, 2411, 0, 41783,
- 0, 41786, 65108, 0, 0, 41772, 42813, 2317, 0, 118980, 0, 0, 0, 0, 0, 0,
- 78682, 7753, 2351, 6655, 64489, 0, 0, 0, 4443, 41697, 230, 65793, 0,
- 65943, 42803, 0, 0, 5441, 0, 0, 127053, 0, 855, 0, 6109, 101021, 0,
- 119116, 69989, 0, 0, 72146, 0, 101023, 0, 72148, 0, 19915, 41892, 0, 0,
- 128901, 41887, 0, 67980, 9735, 0, 0, 120591, 13082, 101026, 0, 0, 0, 0,
- 0, 0, 0, 289, 0, 0, 64504, 0, 126130, 120514, 0, 92962, 0, 42724, 69977,
- 0, 0, 0, 0, 67994, 0, 0, 0, 3565, 0, 0, 127553, 43035, 69898, 0, 0, 0, 0,
- 4891, 0, 0, 4602, 0, 121065, 0, 0, 121157, 0, 43978, 8988, 0, 0, 0, 0, 0,
- 119184, 121436, 73902, 69740, 0, 0, 72976, 0, 0, 8771, 0, 0, 0, 119209,
- 74974, 71737, 0, 0, 67987, 0, 0, 0, 67989, 0, 10065, 8207, 0, 983588, 0,
- 0, 662, 0, 41927, 0, 0, 0, 0, 0, 0, 0, 41929, 0, 0, 0, 41926, 69994, 0,
- 0, 0, 126230, 68013, 1433, 64648, 6475, 0, 120983, 0, 73876, 0, 0, 0,
- 67992, 78052, 0, 3978, 0, 0, 0, 0, 120761, 12281, 0, 0, 13241, 0, 0, 0,
- 0, 11765, 42577, 0, 0, 2641, 7192, 0, 0, 118809, 101015, 0, 101016,
- 128948, 101013, 6479, 64294, 121194, 0, 0, 0, 64334, 0, 0, 0, 92266, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9478, 127339, 124964, 0, 202, 0, 0, 1242, 0,
- 121170, 0, 63940, 0, 0, 0, 63939, 11990, 92430, 67982, 0, 65440, 70068,
- 0, 0, 64829, 0, 0, 0, 0, 0, 2858, 0, 63989, 0, 69239, 0, 121152, 0,
- 77841, 0, 70078, 92574, 129519, 0, 0, 0, 128974, 0, 12922, 92498, 0,
- 66424, 71124, 0, 0, 0, 2856, 0, 47, 0, 126986, 65858, 0, 0, 0, 0, 0,
- 8417, 65903, 0, 0, 0, 4033, 128164, 0, 0, 0, 129961, 64600, 1903, 12320,
- 0, 120894, 0, 0, 8915, 0, 945, 0, 0, 0, 0, 111068, 0, 74828, 0, 69560,
- 9531, 0, 8505, 0, 119238, 0, 0, 65538, 0, 0, 0, 0, 0, 0, 63935, 0, 0, 0,
- 0, 0, 64787, 111060, 0, 0, 110828, 0, 2230, 0, 0, 71886, 9843, 0, 92419,
- 111062, 129337, 92715, 0, 1320, 0, 1673, 0, 92383, 129902, 9338, 128355,
- 0, 0, 0, 0, 11997, 0, 0, 0, 0, 0, 0, 43308, 0, 0, 0, 0, 0, 0, 0, 63920,
- 0, 0, 0, 0, 0, 0, 3514, 78723, 0, 7492, 0, 0, 0, 7514, 0, 63924, 0, 7502,
- 7587, 0, 0, 0, 0, 43881, 7610, 0, 0, 120759, 692, 43588, 0, 0, 75056,
- 9688, 0, 9535, 0, 0, 0, 64530, 0, 125251, 194861, 0, 72209, 7453, 0,
- 8013, 66396, 0, 0, 8895, 5356, 0, 5458, 0, 2866, 0, 127860, 71732, 71724,
- 6700, 0, 111081, 120583, 0, 110614, 0, 9641, 63830, 65294, 0, 0, 67969,
- 0, 7441, 0, 63826, 0, 0, 0, 0, 2844, 983953, 0, 63824, 12139, 67971, 0,
- 0, 3358, 65295, 0, 3104, 0, 0, 0, 0, 65772, 0, 0, 0, 0, 2862, 11326, 0,
- 0, 94001, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0, 1814, 195092,
- 10240, 195093, 0, 0, 0, 0, 0, 71454, 0, 0, 2837, 4341, 0, 0, 129982,
- 125064, 0, 0, 0, 0, 0, 72721, 863, 129125, 0, 0, 43323, 0, 0, 0, 68054,
- 0, 3654, 0, 0, 0, 0, 0, 7653, 0, 0, 66587, 0, 0, 92401, 0, 0, 12927, 0,
- 0, 129697, 13056, 0, 0, 3056, 0, 0, 195101, 0, 0, 74506, 73770, 0, 0, 0,
- 0, 0, 0, 0, 0, 72233, 0, 5811, 0, 0, 0, 66817, 983836, 0, 0, 128636,
- 129311, 0, 128041, 0, 67739, 120965, 0, 0, 0, 0, 68375, 0, 0, 70300, 0,
- 0, 0, 983679, 111078, 0, 11991, 128079, 0, 92943, 1502, 74117, 127988, 0,
- 129478, 121253, 0, 67661, 0, 0, 125084, 120758, 0, 74057, 68639, 0,
- 42898, 120742, 0, 74388, 74838, 120822, 0, 0, 0, 0, 69452, 43214, 5893,
- 0, 0, 92496, 0, 0, 119907, 119900, 0, 0, 0, 0, 41950, 0, 0, 68610, 0,
- 68626, 894, 0, 0, 12306, 73846, 0, 0, 0, 8636, 0, 121028, 42503, 0,
- 92942, 0, 121468, 119241, 0, 126569, 5096, 5095, 2863, 127505, 0, 10454,
- 42530, 5094, 0, 0, 13156, 0, 111035, 5093, 127178, 983414, 0, 5092,
- 10708, 11327, 0, 5091, 0, 0, 9153, 4104, 78599, 78601, 2929, 42712,
- 75067, 12272, 9832, 0, 0, 111105, 0, 0, 0, 0, 0, 0, 13106, 0, 0, 129111,
- 0, 0, 0, 0, 9074, 111111, 0, 111110, 0, 8113, 11168, 92563, 1786, 111109,
- 0, 111108, 0, 74423, 0, 586, 74414, 64359, 1267, 0, 127531, 0, 65731, 0,
- 0, 0, 92932, 0, 0, 0, 0, 0, 0, 1228, 0, 42846, 0, 0, 70343, 1714, 74406,
- 0, 0, 0, 127389, 66225, 0, 0, 42660, 0, 0, 3804, 0, 0, 129859, 0, 2826,
- 0, 0, 0, 128396, 0, 0, 0, 0, 0, 0, 12206, 5839, 0, 68524, 74065, 0, 0, 0,
- 126240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67241, 917821, 7030, 0, 10479,
- 64959, 2852, 0, 121225, 0, 0, 128586, 0, 6963, 0, 0, 0, 74786, 0, 0, 0,
- 0, 121281, 0, 0, 0, 0, 113815, 121360, 0, 9994, 0, 2864, 64719, 1148, 0,
- 41677, 0, 0, 2765, 0, 128181, 0, 0, 0, 92516, 74777, 0, 0, 65206, 0, 0,
- 0, 0, 69391, 0, 0, 983751, 0, 41839, 129616, 983754, 0, 0, 6931, 0, 0,
- 7177, 125137, 0, 0, 0, 93020, 0, 10722, 0, 0, 128186, 121050, 0, 0,
- 127207, 0, 750, 0, 129453, 63912, 0, 0, 7032, 0, 0, 4314, 128600, 0,
- 128409, 730, 0, 127866, 0, 0, 41380, 0, 0, 0, 69697, 8240, 92939, 0,
- 41378, 0, 6938, 70026, 0, 0, 66246, 0, 0, 0, 0, 0, 0, 983094, 0, 92754,
- 41470, 64805, 0, 0, 0, 0, 0, 0, 0, 0, 92938, 68370, 0, 0, 73831, 0, 0, 0,
- 2872, 0, 0, 0, 0, 604, 41097, 0, 0, 0, 0, 0, 127488, 0, 2836, 0, 0, 9707,
- 0, 43202, 0, 0, 0, 0, 0, 120916, 2832, 92702, 9670, 12937, 0, 0, 0, 0,
- 2822, 0, 0, 92519, 0, 73752, 0, 0, 0, 1331, 92603, 0, 11856, 0, 129432,
- 5090, 5089, 0, 3200, 0, 0, 0, 5088, 0, 0, 9477, 0, 0, 5087, 92325, 0, 96,
- 5086, 0, 0, 0, 5085, 64286, 0, 0, 43820, 0, 983722, 0, 0, 119042, 0, 0,
- 0, 0, 0, 0, 0, 127241, 120891, 7601, 0, 591, 0, 118953, 0, 0, 0, 0, 0,
- 10939, 7246, 6933, 67142, 67141, 0, 74600, 120695, 0, 67138, 65574, 0,
- 78058, 67140, 73851, 74598, 67139, 128094, 0, 6372, 0, 0, 7963, 6371, 0,
- 0, 125040, 0, 0, 0, 0, 0, 0, 0, 8258, 123591, 0, 0, 65148, 118919, 42, 0,
- 0, 0, 0, 0, 0, 0, 0, 67135, 67134, 67133, 0, 0, 0, 0, 67136, 67130,
- 74597, 11550, 0, 67132, 65868, 0, 12826, 127872, 0, 126235, 9737, 92448,
- 0, 0, 0, 8878, 0, 0, 0, 0, 0, 72220, 9086, 0, 0, 0, 7437, 7454, 0, 0, 0,
- 0, 9042, 0, 0, 0, 0, 3805, 0, 67128, 44001, 67126, 0, 44022, 19949,
- 12200, 43522, 983045, 43525, 0, 0, 0, 64422, 67125, 67124, 7602, 0, 0,
- 43521, 0, 0, 43711, 43523, 41447, 8424, 68483, 8704, 2397, 0, 0, 0, 0, 0,
- 10916, 0, 129290, 93998, 0, 0, 0, 127800, 67686, 9961, 123203, 0, 68842,
- 10792, 8889, 121402, 6951, 0, 68827, 917835, 74342, 0, 0, 0, 68816,
- 129152, 0, 42909, 66597, 70092, 0, 0, 10481, 4559, 0, 1956, 43138, 0, 0,
- 43490, 43148, 0, 0, 0, 43140, 0, 0, 0, 0, 69268, 8533, 0, 0, 0, 0, 0,
- 4357, 0, 70289, 983156, 0, 42911, 0, 0, 0, 10941, 0, 6962, 0, 0, 113808,
- 0, 11014, 0, 8942, 12000, 0, 0, 0, 0, 0, 0, 42650, 0, 75016, 63975, 0,
- 66210, 0, 0, 129150, 0, 11193, 0, 0, 0, 0, 0, 0, 0, 43476, 0, 11024,
- 74811, 72787, 10563, 92954, 0, 0, 2462, 92955, 0, 0, 66213, 6957, 0,
- 120559, 0, 0, 0, 74594, 983419, 92347, 0, 110702, 110708, 110707, 127119,
- 3109, 127117, 119909, 0, 121434, 0, 0, 4042, 0, 0, 0, 127123, 127122,
- 127121, 0, 127999, 0, 3503, 74444, 68300, 6694, 127997, 0, 0, 74306, 0,
- 983738, 7736, 0, 0, 0, 10521, 0, 42173, 9705, 0, 0, 6955, 71467, 0, 6149,
- 3887, 19956, 1411, 2824, 0, 0, 0, 1403, 0, 1347, 66282, 127996, 0, 0, 0,
- 0, 8640, 0, 1178, 1654, 0, 0, 129529, 43314, 0, 0, 0, 0, 2873, 0, 0, 0,
- 67085, 10861, 0, 0, 70377, 0, 67082, 11159, 41391, 67084, 0, 376, 6987,
- 983181, 119904, 0, 8823, 0, 12943, 65185, 100988, 42099, 0, 0, 100990, 0,
- 8301, 0, 0, 1684, 0, 0, 0, 120620, 0, 0, 0, 42121, 0, 66781, 78067,
- 42115, 0, 127998, 0, 67080, 1493, 42111, 67077, 4097, 0, 983748, 0,
- 65808, 41642, 0, 0, 67076, 41636, 67074, 65095, 110660, 72254, 121240,
- 41629, 12154, 75073, 0, 128179, 74084, 64380, 0, 0, 0, 0, 0, 71193,
- 65371, 7078, 0, 0, 0, 74592, 0, 0, 43275, 0, 41434, 6062, 0, 0, 19916, 0,
- 6950, 9606, 9842, 0, 65744, 0, 0, 128659, 0, 41615, 10105, 0, 0, 41632,
- 7493, 0, 0, 41622, 0, 0, 0, 0, 7632, 983215, 983214, 9805, 5990, 900, 0,
- 983386, 0, 120869, 3612, 0, 64376, 0, 5389, 129469, 0, 0, 2839, 9621,
- 582, 0, 0, 3749, 0, 7569, 0, 0, 129472, 6956, 4403, 0, 0, 3299, 0, 0,
- 119127, 65676, 0, 74372, 0, 983492, 7598, 69819, 42469, 42242, 1918,
+ 11414, 0, 2531, 13034, 0, 0, 0, 13036, 0, 70866, 70198, 10394, 129979,
+ 13037, 0, 129956, 0, 0, 100496, 120640, 41129, 0, 42850, 13035, 0, 0,
+ 5466, 0, 0, 0, 129439, 4535, 0, 4271, 0, 0, 6769, 0, 0, 67350, 6767, 0,
+ 66273, 0, 6755, 73827, 9046, 67355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83235,
+ 2563, 13033, 247, 83229, 0, 12338, 0, 83231, 11270, 0, 0, 0, 0, 70107, 0,
+ 0, 0, 0, 3752, 83243, 68895, 0, 68897, 0, 0, 0, 0, 5009, 0, 0, 0, 0,
+ 119521, 78823, 78824, 70353, 68399, 3877, 0, 78825, 10145, 43566, 0, 0,
+ 10236, 0, 43782, 0, 127329, 0, 69652, 2247, 120612, 128058, 0, 43200,
+ 43777, 71253, 0, 69558, 0, 71866, 43203, 0, 68894, 0, 127326, 0, 43778,
+ 119538, 0, 0, 43781, 11303, 65547, 0, 7031, 0, 0, 67343, 83237, 83267, 0,
+ 67341, 0, 8535, 0, 0, 0, 66032, 0, 0, 120786, 42233, 0, 9946, 7667, 0,
+ 11822, 0, 43189, 120673, 100507, 2979, 1579, 0, 0, 0, 0, 0, 12635, 0, 0,
+ 94055, 0, 1285, 64882, 0, 0, 83113, 12640, 83112, 7401, 0, 12625, 0,
+ 71296, 72744, 0, 74286, 55260, 3396, 12642, 0, 110719, 0, 12630, 0, 0,
+ 10153, 0, 6166, 120516, 0, 110680, 0, 0, 0, 9285, 913, 42259, 83017, 0,
+ 2142, 0, 0, 94012, 7878, 0, 72733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128918,
+ 5263, 74782, 0, 41939, 43702, 0, 917856, 0, 10139, 980, 43698, 0, 2208,
+ 0, 43701, 0, 125132, 0, 100528, 0, 10085, 0, 0, 119989, 100529, 0, 71699,
+ 0, 8072, 0, 43700, 0, 7304, 7783, 66894, 12398, 0, 0, 0, 0, 0, 0, 120565,
+ 0, 2217, 0, 94015, 6367, 0, 66688, 0, 0, 0, 0, 0, 92199, 7808, 1829, 0,
+ 41937, 0, 43272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92467, 6627, 0, 6258,
+ 10683, 0, 0, 0, 5649, 0, 0, 0, 1643, 127898, 0, 127846, 67244, 0, 42452,
+ 0, 0, 0, 0, 64291, 0, 0, 0, 6576, 74773, 0, 0, 66309, 0, 9886, 55225,
+ 11292, 0, 72867, 55227, 0, 12632, 0, 194817, 0, 7680, 0, 92745, 120714,
+ 12639, 3380, 8123, 0, 12638, 42262, 4501, 0, 0, 0, 0, 125131, 1494,
+ 983146, 0, 0, 0, 0, 10494, 0, 65872, 0, 0, 0, 0, 0, 0, 983587, 0, 0, 0,
+ 0, 0, 0, 0, 71077, 0, 127335, 121128, 0, 5570, 1881, 7210, 0, 1012,
+ 66630, 0, 128982, 7208, 66442, 5569, 113723, 42339, 92655, 0, 0, 0, 0,
+ 92378, 65602, 0, 92375, 64727, 9160, 0, 0, 0, 124928, 10503, 0, 3423,
+ 3870, 8483, 10162, 0, 4319, 0, 0, 0, 0, 0, 983116, 0, 69562, 0, 0, 0, 0,
+ 0, 0, 5571, 7630, 9740, 9121, 5568, 0, 0, 42085, 0, 0, 65056, 0, 589, 0,
+ 0, 0, 10233, 66252, 66251, 78734, 66253, 0, 0, 42645, 0, 128424, 8583, 0,
+ 0, 0, 129932, 0, 0, 0, 0, 0, 12204, 92436, 0, 0, 0, 0, 0, 0, 0, 70311, 0,
+ 0, 128012, 41063, 0, 10664, 0, 0, 0, 4551, 129090, 74759, 0, 0, 0, 0,
+ 72806, 0, 0, 12517, 7806, 0, 12034, 0, 6355, 12519, 41004, 0, 0, 93849,
+ 0, 71707, 0, 121231, 7332, 129075, 12111, 3927, 0, 12515, 1474, 68768, 0,
+ 6923, 0, 0, 127802, 0, 43990, 74639, 126229, 121007, 0, 92706, 0, 0, 0,
+ 0, 0, 9645, 0, 121026, 5853, 0, 10363, 120729, 12956, 0, 0, 0, 0, 127888,
+ 0, 0, 0, 0, 0, 10514, 65517, 0, 0, 71101, 0, 0, 0, 43570, 2969, 43420,
+ 129944, 0, 0, 92366, 70809, 0, 0, 0, 0, 0, 0, 12125, 41124, 0, 1164,
+ 128817, 0, 120466, 0, 0, 65014, 66009, 74451, 125075, 983128, 7469, 0, 0,
+ 0, 69988, 120671, 83171, 41123, 11176, 0, 0, 41126, 9991, 41128, 0, 0,
+ 110949, 0, 0, 42877, 7994, 0, 6104, 983612, 0, 129869, 0, 0, 0, 0, 74438,
+ 128272, 121409, 41981, 0, 69296, 42904, 0, 0, 74435, 126640, 0, 0, 0,
+ 127968, 92442, 12703, 9661, 67360, 67359, 7455, 70732, 11473, 119217,
+ 128512, 0, 92323, 0, 0, 129632, 67358, 0, 0, 0, 0, 174, 121131, 883,
+ 4161, 128033, 42603, 0, 0, 72256, 0, 0, 128356, 0, 0, 0, 0, 3846, 8070,
+ 6150, 128109, 4370, 0, 0, 0, 74587, 0, 0, 0, 0, 4986, 12189, 917553,
+ 67648, 120499, 0, 4257, 71695, 123620, 6220, 0, 65561, 0, 0, 0, 0, 0, 0,
+ 0, 0, 69684, 0, 0, 128452, 120873, 0, 0, 74922, 0, 71897, 0, 0, 67368,
+ 67367, 8871, 67366, 0, 0, 0, 0, 0, 67361, 0, 0, 67365, 67364, 3427, 4240,
+ 67376, 67375, 67374, 67373, 0, 0, 0, 67377, 0, 71689, 0, 0, 67372, 67371,
+ 67370, 67369, 0, 0, 0, 124962, 0, 0, 0, 0, 65898, 0, 65312, 0, 0, 0, 0,
+ 4010, 121208, 41106, 0, 0, 0, 41105, 0, 64803, 83456, 0, 0, 0, 0, 0, 0,
+ 0, 11008, 0, 0, 71351, 41110, 71681, 64892, 9113, 1954, 41108, 0, 42878,
+ 0, 67405, 0, 0, 0, 0, 0, 119539, 69435, 73463, 0, 4586, 129342, 0, 0, 0,
+ 0, 0, 125233, 92307, 0, 0, 0, 67382, 0, 9500, 0, 4957, 0, 2422, 2212, 0,
+ 67381, 67380, 11045, 67378, 0, 0, 3890, 12168, 121328, 0, 0, 0, 41947, 0,
+ 120828, 74946, 917901, 0, 1571, 66461, 41949, 42805, 8270, 943, 41946, 0,
+ 2073, 0, 41980, 0, 0, 0, 0, 4429, 6272, 0, 1460, 6954, 128572, 41120, 0,
+ 65733, 0, 41119, 0, 127006, 0, 0, 0, 129168, 12895, 0, 0, 0, 69440, 0,
+ 1985, 6296, 0, 0, 0, 0, 0, 41122, 0, 2457, 0, 0, 0, 0, 0, 0, 8840, 8035,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8681, 0, 121505, 128747, 0, 0, 70102, 0,
+ 124976, 9605, 0, 13220, 0, 67354, 11312, 0, 9246, 67349, 0, 0, 0, 0,
+ 10012, 12123, 0, 0, 0, 0, 0, 0, 0, 0, 67817, 0, 1272, 0, 0, 0, 983578, 0,
+ 1467, 0, 917806, 0, 0, 0, 70312, 0, 124955, 0, 70400, 0, 0, 72817, 0,
+ 19935, 0, 92162, 0, 0, 0, 128406, 5275, 0, 0, 44006, 129082, 0, 3789,
+ 128205, 0, 0, 0, 11474, 0, 0, 0, 129050, 0, 92194, 129503, 9537, 4496, 0,
+ 120443, 2605, 4500, 0, 55224, 8600, 0, 0, 41646, 11667, 69569, 0, 0,
+ 917905, 4499, 41649, 0, 0, 0, 69254, 0, 0, 0, 65804, 0, 70034, 41866, 0,
+ 0, 0, 11174, 0, 0, 0, 9559, 128773, 41940, 8299, 41945, 0, 41941, 5455,
+ 7190, 0, 0, 917810, 65266, 0, 41943, 10762, 0, 41931, 0, 0, 8106, 4128,
+ 0, 0, 4494, 0, 0, 72405, 0, 119567, 42068, 917808, 0, 11004, 12794,
+ 65072, 5271, 7317, 0, 0, 0, 0, 0, 0, 92281, 0, 0, 0, 0, 71880, 3868,
+ 71881, 983573, 128431, 7703, 0, 64390, 0, 7406, 0, 93850, 0, 3985, 66425,
+ 0, 66615, 10177, 0, 41853, 71873, 12809, 0, 12193, 0, 10879, 0, 0, 9055,
+ 0, 3851, 8132, 0, 0, 119263, 917908, 0, 0, 0, 0, 0, 42657, 0, 7643, 0, 0,
+ 0, 43568, 0, 11949, 7650, 43569, 64951, 7647, 7649, 0, 7646, 0, 0, 9651,
+ 125005, 3891, 0, 0, 2337, 77831, 77832, 67860, 129288, 0, 0, 43561,
+ 67706, 119669, 0, 1860, 0, 68835, 5812, 12784, 0, 0, 0, 0, 69260, 7727,
+ 0, 69292, 69818, 66444, 128665, 42719, 0, 1569, 0, 12534, 12124, 7690,
+ 194871, 12533, 0, 68383, 67997, 0, 6969, 0, 0, 0, 67974, 63895, 128650,
+ 0, 0, 0, 42144, 0, 0, 0, 0, 92211, 119043, 0, 0, 917545, 0, 0, 12791, 0,
+ 0, 0, 4447, 71065, 12793, 0, 0, 43385, 0, 0, 12790, 120256, 0, 983821,
+ 12792, 120254, 0, 0, 12789, 128489, 12317, 74934, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 127840, 41652, 2974, 78689, 11476, 0, 0, 0, 0, 43871, 0, 10894,
+ 119176, 74557, 65686, 0, 0, 3724, 67335, 67334, 67333, 67338, 67337, 0,
+ 67336, 0, 65306, 0, 128421, 0, 8646, 129593, 77829, 0, 0, 74852, 0, 0, 0,
+ 0, 0, 220, 120252, 43551, 0, 10044, 0, 0, 983828, 68659, 110825, 5707,
+ 71362, 0, 0, 0, 0, 0, 0, 10297, 0, 41308, 67331, 0, 0, 0, 0, 2467, 0,
+ 6003, 0, 0, 8040, 0, 0, 4182, 0, 11135, 120501, 0, 0, 2510, 0, 10208, 0,
+ 78302, 70829, 0, 0, 6837, 0, 0, 67348, 0, 0, 0, 0, 1559, 67342, 11104,
+ 67340, 67347, 67346, 67345, 67344, 0, 0, 67357, 67356, 0, 0, 0, 0, 67352,
+ 67351, 5516, 2845, 7717, 8036, 65161, 67353, 5514, 12045, 6278, 0, 5515,
+ 0, 0, 0, 0, 0, 65194, 100387, 5517, 70116, 92774, 0, 67884, 0, 67890,
+ 42094, 67880, 67881, 67882, 67883, 0, 0, 67879, 120411, 1902, 67887,
+ 67888, 12976, 126546, 12483, 12368, 41769, 42726, 41765, 69557, 12787,
+ 67874, 7556, 67878, 74351, 67897, 989, 42677, 67889, 0, 6060, 0, 4326,
+ 11000, 64601, 68478, 0, 0, 6917, 0, 120837, 0, 0, 0, 6148, 8605, 74205,
+ 0, 0, 0, 42715, 0, 101047, 0, 68663, 0, 41796, 1269, 42703, 64754,
+ 101049, 101042, 5144, 12221, 42716, 71048, 5133, 4331, 0, 128675, 0,
+ 5279, 121362, 71046, 0, 0, 42701, 0, 0, 0, 121470, 0, 0, 0, 0, 0, 983608,
+ 121259, 42666, 12207, 1067, 255, 12131, 0, 0, 0, 0, 0, 0, 0, 70728,
+ 43460, 0, 42723, 125216, 0, 70427, 0, 12797, 0, 0, 983703, 0, 67977,
+ 12799, 0, 92504, 9746, 5135, 0, 12796, 0, 0, 0, 5139, 346, 74303, 121134,
+ 12795, 125109, 5168, 0, 43845, 983708, 0, 8253, 8817, 1136, 983716,
+ 43563, 127774, 129542, 0, 0, 0, 0, 0, 0, 983619, 0, 0, 4041, 0, 2357,
+ 43240, 12786, 0, 0, 0, 44004, 7142, 0, 67984, 0, 0, 0, 0, 12785, 0, 0,
+ 7770, 10712, 64853, 42679, 118916, 42375, 0, 983123, 94074, 12119, 0,
+ 11059, 10791, 0, 450, 0, 0, 0, 0, 5450, 64691, 0, 0, 44009, 0, 0, 111097,
+ 94085, 1839, 94004, 0, 10927, 1701, 0, 129610, 41749, 41761, 5453, 8361,
+ 66045, 41758, 5444, 41763, 0, 0, 0, 66349, 983137, 121274, 0, 0, 8801, 0,
+ 4340, 0, 0, 0, 0, 70001, 41824, 0, 0, 0, 0, 42700, 0, 127980, 0, 0, 0, 0,
+ 0, 0, 4493, 4336, 129171, 2314, 983061, 41808, 0, 0, 0, 64638, 0, 65937,
+ 4489, 71331, 0, 0, 5358, 42717, 0, 71236, 0, 0, 0, 127042, 41813, 2712,
+ 0, 127044, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 128587, 0, 0, 0, 4892, 0, 0, 0,
+ 0, 0, 5777, 0, 759, 0, 2079, 65248, 12788, 0, 64552, 0, 41803, 68043, 0,
+ 0, 0, 0, 128785, 0, 68492, 67991, 75071, 2340, 0, 120638, 0, 983883, 0,
+ 0, 0, 64749, 0, 2321, 3587, 0, 67236, 9953, 9952, 0, 0, 42714, 9951, 0,
+ 0, 127902, 74150, 0, 0, 74757, 127554, 0, 983807, 2395, 0, 9976, 0,
+ 125128, 0, 0, 0, 42809, 42807, 0, 66290, 70854, 4150, 64424, 8318, 41790,
+ 67976, 65559, 2360, 41794, 0, 0, 120987, 0, 0, 2418, 0, 2411, 0, 41783,
+ 0, 41786, 65108, 0, 0, 41772, 42813, 2317, 0, 118980, 0, 0, 0, 0, 0, 0,
+ 78682, 7753, 2351, 6655, 64489, 0, 0, 0, 4443, 41697, 230, 65793, 0,
+ 65943, 42803, 0, 0, 5441, 0, 0, 127053, 0, 855, 0, 6109, 101021, 0,
+ 119116, 69989, 0, 0, 72146, 0, 101023, 0, 72148, 0, 19915, 41892, 0, 0,
+ 128901, 41887, 0, 67980, 9735, 0, 0, 120591, 13082, 101026, 0, 0, 0, 0,
+ 0, 0, 0, 289, 0, 0, 64504, 0, 126130, 120514, 0, 92962, 0, 42724, 69977,
+ 0, 0, 0, 0, 67994, 0, 0, 0, 3565, 0, 0, 127553, 43035, 69898, 0, 0, 0, 0,
+ 4891, 0, 0, 4602, 0, 121065, 0, 0, 121157, 0, 43978, 8988, 0, 0, 0, 0, 0,
+ 119184, 121436, 73902, 69740, 0, 0, 72976, 0, 0, 8771, 0, 0, 0, 119209,
+ 74974, 71737, 0, 0, 67987, 0, 0, 0, 67989, 0, 10065, 8207, 0, 983588, 0,
+ 0, 662, 0, 41927, 0, 0, 0, 0, 0, 0, 0, 41929, 0, 0, 0, 41926, 69994, 0,
+ 0, 0, 126230, 68013, 1433, 64648, 6475, 0, 120983, 0, 73876, 0, 0, 0,
+ 67992, 78052, 0, 3978, 0, 0, 0, 0, 120761, 12281, 0, 0, 13241, 0, 0, 0,
+ 0, 11765, 42577, 0, 0, 2641, 7192, 0, 0, 118809, 101015, 0, 101016,
+ 128948, 101013, 6479, 64294, 121194, 0, 0, 0, 64334, 0, 0, 0, 92266, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 9478, 127339, 124964, 0, 202, 0, 0, 1242, 0,
+ 121170, 0, 63940, 0, 0, 0, 63939, 11990, 92430, 67982, 0, 65440, 70068,
+ 0, 0, 64829, 0, 0, 0, 0, 0, 2858, 0, 63989, 0, 69239, 0, 121152, 0,
+ 77841, 0, 70078, 92574, 129519, 0, 0, 0, 128974, 0, 12922, 92498, 0,
+ 66424, 71124, 0, 0, 0, 2856, 0, 47, 0, 126986, 65858, 0, 0, 0, 0, 0,
+ 8417, 65903, 0, 0, 0, 4033, 128164, 0, 0, 0, 129961, 64600, 1903, 12320,
+ 0, 120894, 0, 0, 8915, 0, 945, 0, 0, 0, 0, 111068, 0, 74828, 0, 69560,
+ 9531, 0, 8505, 0, 119238, 0, 0, 65538, 0, 0, 0, 0, 0, 0, 63935, 0, 0, 0,
+ 0, 0, 64787, 111060, 0, 0, 110828, 0, 2230, 0, 0, 71886, 9843, 0, 92419,
+ 111062, 129337, 92715, 0, 1320, 0, 1673, 0, 92383, 129902, 9338, 128355,
+ 0, 0, 0, 0, 11997, 0, 0, 0, 0, 0, 0, 43308, 0, 0, 0, 0, 0, 0, 0, 63920,
+ 0, 0, 0, 0, 0, 0, 3514, 78723, 0, 7492, 0, 0, 0, 7514, 0, 63924, 0, 7502,
+ 7587, 0, 0, 0, 0, 43881, 7610, 0, 0, 120759, 692, 43588, 0, 0, 75056,
+ 9688, 0, 9535, 0, 0, 0, 64530, 0, 125251, 194861, 0, 72209, 7453, 0,
+ 8013, 66396, 0, 0, 8895, 5356, 0, 5458, 0, 2866, 0, 127860, 71732, 71724,
+ 6700, 0, 111081, 120583, 0, 110614, 0, 9641, 63830, 65294, 0, 0, 67969,
+ 0, 7441, 0, 63826, 0, 0, 0, 0, 2844, 983953, 0, 63824, 12139, 67971, 0,
+ 0, 3358, 65295, 0, 3104, 0, 0, 0, 0, 65772, 0, 0, 0, 0, 2862, 11326, 0,
+ 0, 94001, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0, 1814, 195092,
+ 10240, 195093, 0, 0, 0, 0, 0, 71454, 0, 0, 2837, 4341, 0, 0, 129982,
+ 125064, 0, 0, 0, 0, 0, 72721, 863, 129125, 0, 0, 43323, 0, 0, 0, 68054,
+ 0, 3654, 0, 0, 0, 0, 0, 7653, 0, 0, 66587, 0, 0, 92401, 0, 0, 12927, 0,
+ 0, 129697, 13056, 0, 0, 3056, 0, 0, 195101, 0, 0, 74506, 73770, 0, 0, 0,
+ 0, 0, 0, 0, 0, 72233, 0, 5811, 0, 0, 0, 66817, 983836, 0, 0, 128636,
+ 129311, 0, 128041, 0, 67739, 120965, 0, 0, 0, 0, 68375, 0, 0, 70300, 0,
+ 0, 0, 983679, 111078, 0, 11991, 128079, 0, 92943, 1502, 74117, 127988, 0,
+ 129478, 121253, 0, 67661, 0, 0, 125084, 120758, 0, 74057, 68639, 0,
+ 42898, 120742, 0, 74388, 74838, 120822, 0, 0, 0, 0, 69452, 43214, 5893,
+ 0, 0, 92496, 0, 0, 119907, 119900, 0, 0, 0, 0, 41950, 0, 0, 68610, 0,
+ 68626, 894, 0, 0, 12306, 73846, 0, 0, 0, 8636, 0, 121028, 42503, 0,
+ 92942, 0, 121468, 119241, 0, 126569, 5096, 5095, 2863, 127505, 0, 10454,
+ 42530, 5094, 0, 0, 13156, 0, 111035, 5093, 127178, 983414, 0, 5092,
+ 10708, 11327, 0, 5091, 0, 0, 9153, 4104, 78599, 78601, 2929, 42712,
+ 75067, 12272, 9832, 0, 0, 111105, 0, 0, 0, 0, 0, 0, 13106, 0, 0, 129111,
+ 0, 0, 0, 0, 9074, 111111, 0, 111110, 0, 8113, 11168, 92563, 1786, 111109,
+ 0, 111108, 0, 74423, 0, 586, 74414, 64359, 1267, 0, 127531, 0, 65731, 0,
+ 0, 0, 92932, 0, 0, 0, 0, 0, 0, 1228, 0, 42846, 0, 0, 70343, 1714, 74406,
+ 0, 0, 0, 127389, 66225, 0, 0, 42660, 0, 0, 3804, 0, 0, 129859, 0, 2826,
+ 0, 0, 0, 128396, 0, 0, 0, 0, 0, 0, 12206, 5839, 0, 68524, 74065, 0, 0, 0,
+ 126240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67241, 917821, 7030, 0, 10479,
+ 64959, 2852, 0, 121225, 0, 0, 128586, 0, 6963, 0, 0, 0, 74786, 0, 0, 0,
+ 0, 121281, 0, 0, 0, 0, 113815, 121360, 0, 9994, 0, 2864, 64719, 1148, 0,
+ 41677, 0, 0, 2765, 0, 128181, 0, 0, 0, 92516, 74777, 0, 0, 65206, 0, 0,
+ 0, 0, 69391, 0, 0, 983751, 0, 41839, 129616, 983754, 0, 0, 6931, 0, 0,
+ 7177, 125137, 0, 0, 0, 93020, 0, 10722, 0, 0, 128186, 121050, 0, 0,
+ 127207, 0, 750, 0, 129453, 63912, 0, 0, 7032, 0, 0, 4314, 128600, 0,
+ 128409, 730, 0, 127866, 0, 0, 41380, 0, 0, 0, 69697, 8240, 92939, 0,
+ 41378, 0, 6938, 70026, 0, 0, 66246, 0, 0, 0, 0, 0, 0, 983094, 0, 92754,
+ 41470, 64805, 0, 0, 0, 0, 0, 0, 0, 0, 92938, 68370, 0, 0, 73831, 0, 0, 0,
+ 2872, 0, 0, 0, 0, 604, 41097, 0, 0, 0, 0, 0, 127488, 0, 2836, 0, 0, 9707,
+ 0, 43202, 0, 0, 0, 0, 0, 120916, 2832, 92702, 9670, 12937, 0, 0, 0, 0,
+ 2822, 0, 0, 92519, 0, 73752, 0, 0, 0, 1331, 92603, 0, 11856, 0, 129432,
+ 5090, 5089, 0, 3200, 0, 0, 0, 5088, 0, 0, 9477, 0, 0, 5087, 92325, 0, 96,
+ 5086, 0, 0, 0, 5085, 64286, 0, 0, 43820, 0, 983722, 0, 0, 119042, 0, 0,
+ 0, 0, 0, 0, 0, 127241, 120891, 7601, 0, 591, 0, 118953, 0, 0, 0, 0, 0,
+ 10939, 7246, 6933, 67142, 67141, 0, 74600, 120695, 0, 67138, 65574, 0,
+ 78058, 67140, 73851, 74598, 67139, 128094, 0, 6372, 0, 0, 7963, 6371, 0,
+ 0, 125040, 0, 0, 0, 0, 0, 0, 0, 8258, 123591, 0, 0, 65148, 118919, 42, 0,
+ 0, 0, 0, 0, 0, 0, 0, 67135, 67134, 67133, 0, 0, 0, 0, 67136, 67130,
+ 74597, 11550, 0, 67132, 65868, 0, 12826, 127872, 0, 126235, 9737, 92448,
+ 0, 0, 0, 8878, 0, 0, 0, 0, 0, 72220, 9086, 0, 0, 0, 7437, 7454, 0, 0, 0,
+ 0, 9042, 0, 0, 0, 0, 3805, 0, 67128, 44001, 67126, 0, 44022, 19949,
+ 12200, 43522, 983045, 43525, 0, 0, 0, 64422, 67125, 67124, 7602, 0, 0,
+ 43521, 0, 0, 43711, 43523, 41447, 8424, 68483, 8704, 2397, 0, 0, 0, 0, 0,
+ 10916, 0, 129290, 93998, 0, 0, 0, 127800, 67686, 9961, 123203, 0, 68842,
+ 10792, 8889, 121402, 6951, 0, 68827, 917835, 74342, 0, 0, 0, 68816,
+ 129152, 0, 42909, 66597, 70092, 0, 0, 10481, 4559, 0, 1956, 43138, 0, 0,
+ 43490, 43148, 0, 0, 0, 43140, 0, 0, 0, 0, 69268, 8533, 0, 0, 0, 0, 0,
+ 4357, 0, 70289, 983156, 0, 42911, 0, 0, 0, 10941, 0, 6962, 0, 0, 113808,
+ 0, 11014, 0, 8942, 12000, 0, 0, 0, 0, 0, 0, 42650, 0, 75016, 63975, 0,
+ 66210, 0, 0, 129150, 0, 11193, 0, 0, 0, 0, 0, 0, 0, 43476, 0, 11024,
+ 74811, 72787, 10563, 92954, 0, 0, 2462, 92955, 0, 0, 66213, 6957, 0,
+ 120559, 0, 0, 0, 74594, 983419, 92347, 0, 110702, 110708, 110707, 127119,
+ 3109, 127117, 119909, 0, 121434, 0, 0, 4042, 0, 0, 0, 127123, 127122,
+ 127121, 0, 127999, 0, 3503, 74444, 68300, 6694, 127997, 0, 0, 74306, 0,
+ 983738, 7736, 0, 0, 0, 10521, 0, 42173, 9705, 0, 0, 6955, 71467, 0, 6149,
+ 3887, 19956, 1411, 2824, 0, 0, 0, 1403, 0, 1347, 66282, 127996, 0, 0, 0,
+ 0, 8640, 0, 1178, 1654, 0, 0, 129529, 43314, 0, 0, 0, 0, 2873, 0, 0, 0,
+ 67085, 10861, 0, 0, 70377, 0, 67082, 11159, 41391, 67084, 0, 376, 6987,
+ 983181, 119904, 0, 8823, 0, 12943, 65185, 100988, 42099, 0, 0, 100990, 0,
+ 8301, 0, 0, 1684, 0, 0, 0, 120620, 0, 0, 0, 42121, 0, 66781, 78067,
+ 42115, 0, 127998, 0, 67080, 1493, 42111, 67077, 4097, 0, 983748, 0,
+ 65808, 41642, 0, 0, 67076, 41636, 67074, 65095, 110660, 72254, 121240,
+ 41629, 12154, 75073, 0, 128179, 74084, 64380, 0, 0, 0, 0, 0, 71193,
+ 65371, 7078, 0, 0, 0, 74592, 0, 0, 43275, 0, 41434, 6062, 0, 0, 19916, 0,
+ 6950, 9606, 9842, 0, 65744, 0, 0, 128659, 0, 41615, 10105, 0, 0, 41632,
+ 7493, 0, 0, 41622, 0, 0, 0, 0, 7632, 983215, 983214, 9805, 5990, 900, 0,
+ 983386, 0, 120869, 3612, 0, 64376, 0, 5389, 129469, 0, 0, 2839, 9621,
+ 582, 0, 0, 3749, 0, 7569, 0, 0, 129472, 6956, 4403, 0, 0, 3299, 0, 0,
+ 119127, 65676, 0, 74372, 0, 983492, 7598, 69819, 42469, 42242, 1918,
9542, 480, 7716, 0, 0, 0, 0, 0, 69918, 0, 8328, 0, 118894, 0, 0, 0, 0,
11132, 0, 66743, 74185, 100531, 2854, 66747, 0, 65755, 0, 67120, 67119,
65835, 67117, 66736, 67123, 67122, 67121, 9881, 100481, 65757, 100538,
@@ -24990,2410 +24990,2410 @@ static const unsigned int code_hash[] = {
42512, 0, 78857, 42089, 74613, 78856, 0, 101029, 100468, 42079, 100467,
0, 0, 100474, 0, 0, 0, 68338, 69958, 0, 0, 0, 0, 0, 78859, 42093, 128951,
100504, 0, 0, 0, 4580, 0, 0, 0, 92167, 0, 3021, 42004, 0, 0, 42317,
- 41998, 0, 6946, 77920, 0, 123610, 0, 0, 0, 121442, 42690, 9880, 0, 0,
- 64589, 0, 0, 127880, 68035, 0, 11360, 0, 0, 72242, 0, 0, 0, 0, 0, 64941,
- 0, 0, 0, 0, 65671, 11244, 73706, 6959, 41994, 42907, 0, 0, 122902, 8617,
- 41982, 8860, 0, 0, 121256, 0, 0, 9597, 0, 43172, 0, 10117, 0, 92297,
- 65865, 0, 0, 128077, 0, 126065, 0, 187, 0, 65669, 0, 4963, 0, 0, 0, 8964,
- 0, 7775, 0, 41948, 0, 0, 101010, 41942, 65449, 3160, 65922, 13226, 42665,
- 0, 42663, 128210, 41766, 0, 78848, 78849, 41760, 1189, 905, 110620,
- 42658, 78851, 67859, 9629, 6742, 0, 43625, 12952, 7888, 0, 3980, 0,
- 42656, 0, 42055, 0, 0, 0, 64540, 0, 7867, 69218, 6236, 0, 0, 10505, 0,
- 12851, 118948, 0, 5474, 128843, 3103, 0, 41753, 41733, 78051, 983472,
- 78844, 78845, 41739, 78843, 70744, 10931, 41756, 43347, 68098, 122909,
- 41746, 119147, 92591, 41259, 917848, 69930, 2691, 121338, 11231, 41244,
- 0, 69800, 66364, 41262, 0, 0, 0, 41251, 0, 0, 11805, 0, 0, 68331, 94045,
- 0, 0, 0, 74633, 41266, 126642, 0, 0, 0, 65741, 41737, 2275, 2666, 121232,
- 41738, 4967, 419, 13126, 0, 0, 42822, 0, 6434, 74913, 0, 0, 6432, 0,
- 69932, 128862, 769, 41742, 69927, 74805, 6433, 0, 547, 1943, 6439, 0,
- 4994, 487, 0, 0, 3754, 0, 0, 0, 0, 74780, 0, 0, 1595, 92777, 74431, 0, 0,
- 74860, 43267, 0, 0, 129083, 12185, 69406, 0, 0, 100984, 0, 42856, 0, 0,
- 983746, 128319, 75057, 0, 0, 0, 65612, 0, 669, 0, 0, 0, 0, 0, 70445,
- 100404, 69929, 0, 0, 460, 121513, 0, 0, 0, 120747, 0, 121519, 121518, 0,
- 0, 121515, 121514, 65187, 9044, 78497, 11760, 78494, 7577, 78491, 41912,
- 100412, 0, 100411, 0, 0, 100394, 78501, 0, 2933, 78500, 0, 66441, 100392,
- 100397, 100391, 1549, 0, 100415, 0, 41755, 6206, 8670, 120587, 0, 69935,
- 0, 0, 69768, 100952, 0, 0, 0, 0, 10552, 64342, 41922, 0, 917858, 0,
- 917857, 2717, 0, 0, 0, 73664, 41908, 100722, 41916, 0, 0, 0, 92506,
- 100723, 66664, 69803, 0, 100725, 0, 0, 43373, 0, 0, 8468, 100729, 121173,
- 128297, 119210, 118952, 0, 0, 0, 100686, 0, 0, 0, 128703, 100670, 457,
- 78502, 78503, 123180, 43006, 0, 8802, 113777, 0, 0, 0, 0, 126632, 0,
- 41757, 0, 100657, 44000, 0, 0, 43534, 0, 0, 11961, 121316, 0, 0, 0,
- 128736, 0, 0, 9499, 100695, 128330, 0, 0, 92260, 68184, 0, 0, 7256,
- 983401, 983179, 0, 42161, 0, 119126, 128022, 65880, 0, 10802, 64861, 0,
- 0, 0, 0, 0, 0, 73109, 0, 955, 0, 0, 5350, 64339, 0, 100705, 10875, 0,
- 5477, 73121, 0, 0, 0, 67693, 69790, 0, 0, 3874, 0, 0, 0, 0, 83272,
- 100674, 127397, 0, 100989, 0, 41038, 0, 9207, 42239, 0, 0, 0, 0, 74432,
- 0, 0, 1455, 129680, 0, 11753, 119233, 0, 0, 127854, 100716, 69801, 0, 0,
- 43520, 0, 119556, 0, 0, 0, 0, 100733, 10788, 6088, 0, 129587, 190,
- 983341, 12593, 100737, 129308, 64408, 0, 4417, 128615, 74359, 41744, 0,
- 0, 100435, 6965, 0, 0, 13201, 100430, 69896, 78868, 74382, 11841, 7918,
- 92721, 0, 0, 0, 1728, 0, 0, 0, 0, 92679, 0, 0, 92711, 0, 0, 119536, 0,
- 66679, 8382, 0, 0, 100381, 0, 917889, 42254, 68371, 100383, 0, 0, 0,
- 9923, 0, 0, 11763, 100386, 120688, 0, 78187, 0, 0, 0, 0, 8333, 0, 0, 0,
- 917805, 74464, 0, 92320, 74080, 0, 69911, 11910, 0, 74141, 8963, 0, 0, 0,
- 121396, 0, 41747, 0, 0, 8968, 0, 0, 129110, 0, 0, 8836, 12315, 0, 8300,
- 0, 0, 0, 8856, 0, 0, 69891, 0, 120404, 120405, 120402, 120403, 120400,
- 120401, 12853, 43269, 7263, 120244, 6536, 120238, 120239, 65516, 12321,
- 120391, 120388, 55287, 2237, 120246, 9588, 120248, 120382, 120383,
+ 41998, 0, 6946, 77920, 0, 123610, 0, 0, 0, 121442, 42690, 9880, 0, 0,
+ 64589, 0, 0, 127880, 68035, 0, 11360, 0, 0, 72242, 0, 0, 0, 0, 0, 64941,
+ 0, 0, 0, 0, 65671, 11244, 73706, 6959, 41994, 42907, 0, 0, 122902, 8617,
+ 41982, 8860, 0, 0, 121256, 0, 0, 9597, 0, 43172, 0, 10117, 0, 92297,
+ 65865, 0, 0, 128077, 0, 126065, 0, 187, 0, 65669, 0, 4963, 0, 0, 0, 8964,
+ 0, 7775, 0, 41948, 0, 0, 101010, 41942, 65449, 3160, 65922, 13226, 42665,
+ 0, 42663, 128210, 41766, 0, 78848, 78849, 41760, 1189, 905, 110620,
+ 42658, 78851, 67859, 9629, 6742, 0, 43625, 12952, 7888, 0, 3980, 0,
+ 42656, 0, 42055, 0, 0, 0, 64540, 0, 7867, 69218, 6236, 0, 0, 10505, 0,
+ 12851, 118948, 0, 5474, 128843, 3103, 0, 41753, 41733, 78051, 983472,
+ 78844, 78845, 41739, 78843, 70744, 10931, 41756, 43347, 68098, 122909,
+ 41746, 119147, 92591, 41259, 917848, 69930, 2691, 121338, 11231, 41244,
+ 0, 69800, 66364, 41262, 0, 0, 0, 41251, 0, 0, 11805, 0, 0, 68331, 94045,
+ 0, 0, 0, 74633, 41266, 126642, 0, 0, 0, 65741, 41737, 2275, 2666, 121232,
+ 41738, 4967, 419, 13126, 0, 0, 42822, 0, 6434, 74913, 0, 0, 6432, 0,
+ 69932, 128862, 769, 41742, 69927, 74805, 6433, 0, 547, 1943, 6439, 0,
+ 4994, 487, 0, 0, 3754, 0, 0, 0, 0, 74780, 0, 0, 1595, 92777, 74431, 0, 0,
+ 74860, 43267, 0, 0, 129083, 12185, 69406, 0, 0, 100984, 0, 42856, 0, 0,
+ 983746, 128319, 75057, 0, 0, 0, 65612, 0, 669, 0, 0, 0, 0, 0, 70445,
+ 100404, 69929, 0, 0, 460, 121513, 0, 0, 0, 120747, 0, 121519, 121518, 0,
+ 0, 121515, 121514, 65187, 9044, 78497, 11760, 78494, 7577, 78491, 41912,
+ 100412, 0, 100411, 0, 0, 100394, 78501, 0, 2933, 78500, 0, 66441, 100392,
+ 100397, 100391, 1549, 0, 100415, 0, 41755, 6206, 8670, 120587, 0, 69935,
+ 0, 0, 69768, 100952, 0, 0, 0, 0, 10552, 64342, 41922, 0, 917858, 0,
+ 917857, 2717, 0, 0, 0, 73664, 41908, 100722, 41916, 0, 0, 0, 92506,
+ 100723, 66664, 69803, 0, 100725, 0, 0, 43373, 0, 0, 8468, 100729, 121173,
+ 128297, 119210, 118952, 0, 0, 0, 100686, 0, 0, 0, 128703, 100670, 457,
+ 78502, 78503, 123180, 43006, 0, 8802, 113777, 0, 0, 0, 0, 126632, 0,
+ 41757, 0, 100657, 44000, 0, 0, 43534, 0, 0, 11961, 121316, 0, 0, 0,
+ 128736, 0, 0, 9499, 100695, 128330, 0, 0, 92260, 68184, 0, 0, 7256,
+ 983401, 983179, 0, 42161, 0, 119126, 128022, 65880, 0, 10802, 64861, 0,
+ 0, 0, 0, 0, 0, 73109, 0, 955, 0, 0, 5350, 64339, 0, 100705, 10875, 0,
+ 5477, 73121, 0, 0, 0, 67693, 69790, 0, 0, 3874, 0, 0, 0, 0, 83272,
+ 100674, 127397, 0, 100989, 0, 41038, 0, 9207, 42239, 0, 0, 0, 0, 74432,
+ 0, 0, 1455, 129680, 0, 11753, 119233, 0, 0, 127854, 100716, 69801, 0, 0,
+ 43520, 0, 119556, 0, 0, 0, 0, 100733, 10788, 6088, 0, 129587, 190,
+ 983341, 12593, 100737, 129308, 64408, 0, 4417, 128615, 74359, 41744, 0,
+ 0, 100435, 6965, 0, 0, 13201, 100430, 69896, 78868, 74382, 11841, 7918,
+ 92721, 0, 0, 0, 1728, 0, 0, 0, 0, 92679, 0, 0, 92711, 0, 0, 119536, 0,
+ 66679, 8382, 0, 0, 100381, 0, 917889, 42254, 68371, 100383, 0, 0, 0,
+ 9923, 0, 0, 11763, 100386, 120688, 0, 78187, 0, 0, 0, 0, 8333, 0, 0, 0,
+ 917805, 74464, 0, 92320, 74080, 0, 69911, 11910, 0, 74141, 8963, 0, 0, 0,
+ 121396, 0, 41747, 0, 0, 8968, 0, 0, 129110, 0, 0, 8836, 12315, 0, 8300,
+ 0, 0, 0, 8856, 0, 0, 69891, 0, 120404, 120405, 120402, 120403, 120400,
+ 120401, 12853, 43269, 7263, 120244, 6536, 120238, 120239, 65516, 12321,
+ 120391, 120388, 55287, 2237, 120246, 9588, 120248, 120382, 120383,
120380, 120381, 0, 0, 3561, 0, 0, 10613, 0, 0, 0, 0, 0, 128689, 5006,
- 64328, 68219, 917894, 0, 8825, 129880, 0, 0, 0, 128616, 0, 119177, 0, 0,
+ 64328, 68219, 917894, 0, 8825, 129880, 0, 0, 0, 128616, 0, 119177, 0, 0,
128641, 120225, 71366, 120227, 120228, 438, 4510, 41707, 8721, 120233,
120234, 120235, 12840, 120229, 10845, 120231, 8096, 0, 120935, 0, 0,
65589, 8733, 0, 0, 0, 0, 0, 0, 93984, 11262, 73747, 128522, 0, 64591,
- 42405, 0, 0, 1632, 127982, 128326, 0, 0, 121327, 121477, 42444, 0, 0,
- 215, 41258, 128494, 64494, 1953, 10185, 0, 1256, 3910, 41260, 917903, 0,
- 0, 41257, 0, 8675, 10700, 0, 124951, 0, 9333, 0, 121471, 0, 0, 0, 0, 0,
- 499, 0, 70729, 42915, 0, 101000, 0, 100999, 0, 0, 73111, 0, 122897, 0,
- 125006, 0, 11118, 0, 128009, 0, 0, 128980, 9180, 0, 0, 0, 100986, 43438,
- 0, 0, 0, 0, 0, 120669, 64782, 0, 0, 73969, 565, 42484, 118913, 201, 0,
- 42292, 69610, 0, 0, 119625, 43518, 0, 0, 1022, 113788, 3880, 74247, 0, 0,
- 0, 0, 0, 0, 0, 0, 72272, 100997, 0, 0, 0, 74255, 0, 0, 92598, 0, 9903,
- 118993, 0, 68226, 0, 0, 0, 127788, 100955, 83280, 7892, 0, 10777, 0, 0,
- 65562, 0, 101002, 0, 8039, 3363, 101009, 0, 0, 0, 12596, 70812, 0, 0, 0,
- 0, 71962, 92425, 74992, 64541, 0, 0, 10520, 12802, 0, 12998, 0, 83270,
- 42861, 83273, 11415, 0, 7541, 125068, 65878, 822, 0, 0, 5774, 194746,
- 43252, 0, 92619, 7672, 129281, 0, 0, 7463, 0, 0, 0, 0, 0, 0, 121411, 0,
- 0, 0, 0, 0, 475, 0, 120586, 7329, 0, 0, 195088, 66291, 10645, 0, 6543, 0,
- 0, 0, 119065, 0, 0, 0, 983233, 195095, 0, 8923, 1645, 0, 0, 0, 3196,
- 72404, 0, 0, 43595, 0, 0, 0, 0, 0, 195076, 0, 0, 5258, 4328, 0, 0, 0,
- 405, 11454, 0, 0, 0, 0, 75052, 41245, 0, 195078, 4523, 11369, 0, 0, 0,
- 195079, 0, 0, 983505, 0, 100961, 10480, 74610, 0, 0, 0, 12610, 0, 41247,
- 0, 7609, 118837, 0, 0, 92253, 0, 984, 0, 92621, 0, 0, 129885, 73982, 0,
- 0, 0, 43369, 0, 0, 0, 983502, 6634, 0, 71952, 0, 0, 74214, 0, 67709, 0,
- 0, 0, 71114, 9552, 0, 0, 0, 12997, 0, 0, 0, 0, 129109, 12883, 10994,
- 10529, 55283, 0, 74618, 0, 67736, 10661, 19951, 9614, 2428, 0, 121023, 0,
- 126224, 100966, 71127, 0, 124996, 119162, 1952, 92181, 8455, 100958, 0,
- 93033, 119566, 100960, 0, 12183, 100951, 0, 64929, 0, 0, 0, 128290,
- 42509, 73087, 3922, 9187, 983626, 0, 0, 119057, 0, 3353, 9358, 0, 0,
- 66680, 0, 73975, 12879, 0, 9795, 68380, 0, 0, 0, 0, 0, 41027, 0, 0, 0,
- 983631, 0, 70378, 0, 11751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129356, 0, 0,
- 0, 0, 41029, 0, 126513, 0, 0, 0, 11294, 0, 66665, 0, 0, 127750, 0, 0,
- 70105, 0, 0, 0, 67843, 0, 0, 121167, 983876, 0, 8088, 129412, 0, 0, 0,
- 983973, 6926, 72423, 0, 129569, 42369, 4350, 0, 65145, 9041, 43559, 0, 0,
- 0, 41263, 0, 0, 0, 65825, 9577, 68199, 0, 0, 983121, 0, 6793, 0, 70409,
- 0, 0, 0, 0, 64669, 0, 0, 0, 11200, 72725, 2995, 0, 0, 0, 7868, 72720,
- 72020, 11386, 1009, 70405, 66871, 2333, 0, 0, 0, 0, 0, 70407, 128121, 0,
- 0, 0, 0, 0, 0, 0, 74968, 0, 0, 110601, 0, 0, 41261, 0, 0, 0, 0, 118989,
- 6736, 917883, 0, 43010, 127889, 0, 69635, 73011, 983697, 0, 0, 7293, 0,
- 0, 0, 0, 111332, 0, 128245, 69928, 0, 0, 127072, 64445, 111336, 6635, 0,
- 0, 72707, 74936, 0, 0, 917876, 0, 93025, 0, 0, 111329, 0, 129887, 128045,
- 65219, 11925, 0, 92434, 0, 0, 9845, 101317, 7546, 0, 0, 11230, 4985,
- 13288, 672, 8098, 0, 0, 0, 128126, 42655, 0, 0, 1577, 11772, 78327, 0,
- 66673, 0, 65911, 122908, 0, 0, 101303, 92180, 0, 0, 120566, 125140, 0, 0,
- 0, 119593, 1539, 0, 74969, 42731, 0, 74970, 71066, 0, 3051, 0, 73783, 0,
- 0, 0, 0, 78777, 0, 983160, 0, 0, 101310, 0, 0, 0, 0, 0, 0, 3505, 8707, 0,
- 6725, 128013, 0, 92314, 0, 66391, 5479, 0, 6686, 0, 0, 983313, 42754, 0,
- 0, 0, 0, 0, 0, 128523, 0, 0, 4433, 41156, 0, 74971, 1443, 9339, 0, 0,
- 10926, 0, 43511, 0, 0, 983319, 0, 126086, 72236, 10021, 0, 101329, 0,
- 65914, 0, 66749, 0, 6721, 217, 12466, 0, 0, 10443, 0, 68654, 0, 0, 0,
- 78334, 0, 41250, 0, 129532, 128375, 0, 0, 69232, 0, 41252, 66682, 0,
- 119637, 41249, 1366, 0, 0, 101326, 0, 0, 4397, 101324, 0, 0, 9545,
- 101323, 0, 0, 0, 3511, 0, 92190, 0, 0, 126244, 760, 0, 12088, 0, 0,
- 42256, 0, 0, 417, 0, 111347, 41565, 74965, 0, 111355, 0, 0, 0, 2284, 0,
- 0, 983257, 0, 0, 0, 0, 0, 0, 42273, 0, 69430, 121041, 0, 126643, 0,
- 65910, 0, 10246, 0, 68224, 12169, 128858, 4552, 0, 0, 0, 1375, 66705,
+ 42405, 0, 0, 1632, 127982, 128326, 0, 0, 121327, 121477, 42444, 0, 0,
+ 215, 41258, 128494, 64494, 1953, 10185, 0, 1256, 3910, 41260, 917903, 0,
+ 0, 41257, 0, 8675, 10700, 0, 124951, 0, 9333, 0, 121471, 0, 0, 0, 0, 0,
+ 499, 0, 70729, 42915, 0, 101000, 0, 100999, 0, 0, 73111, 0, 122897, 0,
+ 125006, 0, 11118, 0, 128009, 0, 0, 128980, 9180, 0, 0, 0, 100986, 43438,
+ 0, 0, 0, 0, 0, 120669, 64782, 0, 0, 73969, 565, 42484, 118913, 201, 0,
+ 42292, 69610, 0, 0, 119625, 43518, 0, 0, 1022, 113788, 3880, 74247, 0, 0,
+ 0, 0, 0, 0, 0, 0, 72272, 100997, 0, 0, 0, 74255, 0, 0, 92598, 0, 9903,
+ 118993, 0, 68226, 0, 0, 0, 127788, 100955, 83280, 7892, 0, 10777, 0, 0,
+ 65562, 0, 101002, 0, 8039, 3363, 101009, 0, 0, 0, 12596, 70812, 0, 0, 0,
+ 0, 71962, 92425, 74992, 64541, 0, 0, 10520, 12802, 0, 12998, 0, 83270,
+ 42861, 83273, 11415, 0, 7541, 125068, 65878, 822, 0, 0, 5774, 194746,
+ 43252, 0, 92619, 7672, 129281, 0, 0, 7463, 0, 0, 0, 0, 0, 0, 121411, 0,
+ 0, 0, 0, 0, 475, 0, 120586, 7329, 0, 0, 195088, 66291, 10645, 0, 6543, 0,
+ 0, 0, 119065, 0, 0, 0, 983233, 195095, 0, 8923, 1645, 0, 0, 0, 3196,
+ 72404, 0, 0, 43595, 0, 0, 0, 0, 0, 195076, 0, 0, 5258, 4328, 0, 0, 0,
+ 405, 11454, 0, 0, 0, 0, 75052, 41245, 0, 195078, 4523, 11369, 0, 0, 0,
+ 195079, 0, 0, 983505, 0, 100961, 10480, 74610, 0, 0, 0, 12610, 0, 41247,
+ 0, 7609, 118837, 0, 0, 92253, 0, 984, 0, 92621, 0, 0, 129885, 73982, 0,
+ 0, 0, 43369, 0, 0, 0, 983502, 6634, 0, 71952, 0, 0, 74214, 0, 67709, 0,
+ 0, 0, 71114, 9552, 0, 0, 0, 12997, 0, 0, 0, 0, 129109, 12883, 10994,
+ 10529, 55283, 0, 74618, 0, 67736, 10661, 19951, 9614, 2428, 0, 121023, 0,
+ 126224, 100966, 71127, 0, 124996, 119162, 1952, 92181, 8455, 100958, 0,
+ 93033, 119566, 100960, 0, 12183, 100951, 0, 64929, 0, 0, 0, 128290,
+ 42509, 73087, 3922, 9187, 983626, 0, 0, 119057, 0, 3353, 9358, 0, 0,
+ 66680, 0, 73975, 12879, 0, 9795, 68380, 0, 0, 0, 0, 0, 41027, 0, 0, 0,
+ 983631, 0, 70378, 0, 11751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129356, 0, 0,
+ 0, 0, 41029, 0, 126513, 0, 0, 0, 11294, 0, 66665, 0, 0, 127750, 0, 0,
+ 70105, 0, 0, 0, 67843, 0, 0, 121167, 983876, 0, 8088, 129412, 0, 0, 0,
+ 983973, 6926, 72423, 0, 129569, 42369, 4350, 0, 65145, 9041, 43559, 0, 0,
+ 0, 41263, 0, 0, 0, 65825, 9577, 68199, 0, 0, 983121, 0, 6793, 0, 70409,
+ 0, 0, 0, 0, 64669, 0, 0, 0, 11200, 72725, 2995, 0, 0, 0, 7868, 72720,
+ 72020, 11386, 1009, 70405, 66871, 2333, 0, 0, 0, 0, 0, 70407, 128121, 0,
+ 0, 0, 0, 0, 0, 0, 74968, 0, 0, 110601, 0, 0, 41261, 0, 0, 0, 0, 118989,
+ 6736, 917883, 0, 43010, 127889, 0, 69635, 73011, 983697, 0, 0, 7293, 0,
+ 0, 0, 0, 111332, 0, 128245, 69928, 0, 0, 127072, 64445, 111336, 6635, 0,
+ 0, 72707, 74936, 0, 0, 917876, 0, 93025, 0, 0, 111329, 0, 129887, 128045,
+ 65219, 11925, 0, 92434, 0, 0, 9845, 101317, 7546, 0, 0, 11230, 4985,
+ 13288, 672, 8098, 0, 0, 0, 128126, 42655, 0, 0, 1577, 11772, 78327, 0,
+ 66673, 0, 65911, 122908, 0, 0, 101303, 92180, 0, 0, 120566, 125140, 0, 0,
+ 0, 119593, 1539, 0, 74969, 42731, 0, 74970, 71066, 0, 3051, 0, 73783, 0,
+ 0, 0, 0, 78777, 0, 983160, 0, 0, 101310, 0, 0, 0, 0, 0, 0, 3505, 8707, 0,
+ 6725, 128013, 0, 92314, 0, 66391, 5479, 0, 6686, 0, 0, 983313, 42754, 0,
+ 0, 0, 0, 0, 0, 128523, 0, 0, 4433, 41156, 0, 74971, 1443, 9339, 0, 0,
+ 10926, 0, 43511, 0, 0, 983319, 0, 126086, 72236, 10021, 0, 101329, 0,
+ 65914, 0, 66749, 0, 6721, 217, 12466, 0, 0, 10443, 0, 68654, 0, 0, 0,
+ 78334, 0, 41250, 0, 129532, 128375, 0, 0, 69232, 0, 41252, 66682, 0,
+ 119637, 41249, 1366, 0, 0, 101326, 0, 0, 4397, 101324, 0, 0, 9545,
+ 101323, 0, 0, 0, 3511, 0, 92190, 0, 0, 126244, 760, 0, 12088, 0, 0,
+ 42256, 0, 0, 417, 0, 111347, 41565, 74965, 0, 111355, 0, 0, 0, 2284, 0,
+ 0, 983257, 0, 0, 0, 0, 0, 0, 42273, 0, 69430, 121041, 0, 126643, 0,
+ 65910, 0, 10246, 0, 68224, 12169, 128858, 4552, 0, 0, 0, 1375, 66705,
128412, 0, 3329, 0, 42811, 74251, 74192, 120794, 7840, 0, 0, 65374, 0, 0,
71072, 0, 4396, 0, 126608, 0, 10331, 125224, 0, 11543, 0, 8944, 0, 0, 0,
0, 0, 19965, 43025, 10299, 128436, 68845, 0, 69724, 67412, 92952, 0,
- 43811, 0, 128924, 0, 11062, 128748, 0, 0, 0, 69276, 2901, 7865, 0, 78354,
- 0, 78347, 0, 126123, 0, 66363, 0, 0, 0, 74967, 7414, 0, 0, 92691, 0,
- 128507, 885, 64772, 65180, 0, 71267, 852, 0, 0, 0, 78614, 121174, 129092,
- 67809, 9609, 12156, 0, 0, 43586, 11035, 10411, 0, 13268, 6710, 0, 0, 0,
- 43853, 77949, 4315, 0, 111104, 0, 43639, 43343, 0, 0, 0, 73074, 0, 65812,
- 43431, 0, 0, 0, 0, 0, 129890, 0, 0, 0, 0, 994, 125222, 127104, 127103,
- 73966, 66890, 0, 65291, 70753, 0, 0, 0, 0, 66873, 4186, 92531, 127106,
- 127105, 6718, 7330, 4406, 0, 8480, 7319, 64373, 128699, 4413, 0, 0, 3198,
- 0, 0, 92469, 111126, 0, 128591, 128681, 0, 0, 0, 101321, 73023, 742, 0,
- 2893, 78738, 0, 0, 0, 2553, 42294, 6756, 0, 73020, 8363, 0, 2993, 128381,
- 3916, 4301, 0, 1141, 42407, 0, 0, 7572, 973, 0, 125077, 0, 2415, 0, 0,
- 9640, 42333, 0, 0, 129546, 42486, 43381, 65390, 0, 69434, 1202, 0, 0, 0,
- 0, 68484, 0, 0, 64542, 3260, 0, 65388, 43502, 69904, 0, 6738, 0, 0,
- 74193, 0, 0, 0, 74641, 6312, 0, 74556, 12446, 0, 0, 128076, 8229, 1235,
- 0, 11472, 83064, 0, 0, 101366, 0, 0, 1740, 12872, 0, 985, 0, 0, 0, 12068,
- 0, 0, 101363, 0, 0, 0, 13133, 65071, 110780, 12655, 12134, 0, 92934, 0,
- 66915, 120349, 119572, 0, 93030, 41572, 0, 0, 0, 41573, 0, 3931, 0,
- 74143, 0, 127034, 0, 0, 0, 0, 83067, 0, 129303, 0, 0, 0, 0, 0, 0, 83068,
- 0, 72740, 128637, 72717, 92935, 120291, 0, 1780, 6936, 0, 0, 819, 0,
- 9694, 125228, 0, 0, 0, 0, 8343, 8342, 8345, 8344, 8346, 8338, 7523, 6922,
- 8348, 8347, 7525, 3346, 8339, 125004, 72705, 69462, 268, 0, 0, 5754, 0,
- 0, 110684, 8336, 0, 0, 0, 8337, 8341, 0, 11388, 7522, 0, 0, 0, 11090,
- 6953, 125240, 0, 74973, 120708, 0, 0, 0, 0, 0, 110782, 0, 9038, 7887, 0,
- 0, 42534, 64347, 0, 0, 67660, 120341, 0, 0, 0, 120878, 0, 0, 73999, 0,
- 64580, 0, 0, 64643, 0, 0, 74975, 0, 92227, 129052, 0, 83071, 83072,
- 83073, 119154, 0, 119153, 0, 0, 5349, 72440, 0, 917554, 7411, 0, 983220,
- 0, 0, 0, 42736, 70747, 5756, 983225, 92946, 0, 42764, 0, 0, 119529, 5752,
- 120600, 0, 0, 0, 0, 0, 78893, 0, 0, 0, 125242, 0, 0, 120331, 0, 0, 0,
- 72826, 0, 10080, 83056, 12647, 0, 0, 69252, 66882, 0, 0, 0, 0, 0, 72005,
- 72845, 0, 0, 0, 0, 0, 74213, 0, 0, 0, 0, 0, 6302, 0, 0, 0, 0, 1417,
- 983222, 0, 9452, 0, 74393, 0, 0, 110850, 0, 65391, 63789, 69251, 78659,
- 78660, 41264, 78658, 6426, 42398, 9179, 78654, 64906, 41255, 42036, 0,
- 41269, 0, 41267, 42436, 67759, 42323, 42034, 0, 0, 42475, 42033, 0, 0,
- 68916, 43948, 0, 78673, 78674, 1659, 919, 42784, 1671, 0, 6069, 9219, 0,
- 1661, 119144, 0, 92690, 10140, 9713, 78400, 0, 125236, 0, 2306, 0, 0,
- 6068, 10612, 0, 0, 121314, 92561, 41462, 0, 0, 0, 0, 0, 0, 0, 128204,
- 10635, 0, 983221, 0, 0, 0, 983231, 92251, 0, 121029, 983223, 0, 8100, 0,
- 78669, 78670, 13301, 78667, 9667, 78665, 0, 0, 11003, 9904, 0, 0, 0, 0,
- 0, 0, 78680, 78681, 78677, 78678, 0, 10313, 0, 0, 64320, 10265, 78686,
- 129404, 78684, 78685, 8945, 78683, 70750, 41, 0, 0, 0, 0, 8655, 0, 0, 0,
- 0, 0, 0, 0, 2585, 0, 65254, 3126, 0, 74136, 10957, 0, 11160, 0, 0, 0, 0,
- 0, 11408, 0, 7443, 0, 0, 6997, 68004, 0, 0, 8739, 11075, 0, 65216, 0,
- 69795, 2593, 0, 0, 0, 0, 125062, 0, 0, 0, 4411, 0, 72837, 0, 43442,
- 78799, 0, 0, 0, 66351, 0, 0, 13061, 0, 78687, 78688, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 119925, 0, 983637, 0, 0, 0, 0, 83399, 127541, 83398, 8022,
- 78808, 0, 73794, 0, 0, 83414, 119918, 0, 0, 0, 0, 0, 0, 63799, 78427,
- 12063, 78425, 78424, 0, 0, 0, 75025, 0, 297, 0, 0, 68326, 0, 78429,
- 78428, 7077, 2497, 128651, 0, 983111, 0, 0, 0, 4292, 0, 74815, 10512, 0,
- 74814, 119931, 0, 72841, 2503, 65070, 1762, 69794, 2495, 0, 71230, 94069,
- 77984, 0, 12654, 0, 1899, 0, 2507, 0, 8726, 0, 65594, 0, 71272, 8892, 0,
- 0, 0, 0, 0, 420, 0, 0, 125130, 10797, 74637, 0, 0, 0, 0, 63796, 0, 66581,
- 0, 119205, 0, 0, 194840, 0, 120788, 0, 0, 92956, 0, 0, 0, 0, 119230, 0,
- 0, 83496, 7399, 0, 66434, 42779, 0, 92220, 42197, 92543, 5380, 0, 0,
- 1155, 11365, 43126, 0, 77971, 65684, 0, 5601, 0, 42765, 78258, 0, 7987,
- 72843, 0, 69799, 0, 0, 78735, 119165, 0, 0, 4473, 0, 72426, 0, 65347,
- 65346, 65345, 0, 127384, 0, 69802, 0, 73868, 0, 64826, 0, 0, 0, 0, 6218,
- 78422, 69676, 4555, 0, 83459, 70071, 128670, 65190, 0, 0, 65244, 0, 0,
- 42519, 74472, 0, 0, 83466, 0, 0, 0, 83468, 92581, 0, 0, 65370, 65369,
- 65368, 65367, 65366, 65365, 41086, 65363, 65362, 65361, 65360, 43410,
- 11323, 65357, 65356, 65355, 5345, 65353, 65352, 65351, 761, 65349, 19959,
- 69718, 0, 0, 0, 0, 64647, 0, 0, 4699, 126077, 0, 129940, 0, 0, 0, 68074,
- 0, 0, 0, 128347, 0, 72829, 0, 69773, 121438, 0, 0, 0, 73980, 78255,
- 78254, 83453, 43157, 0, 0, 0, 7946, 12541, 0, 74615, 69780, 0, 0, 0, 0,
- 9005, 1225, 0, 0, 0, 0, 68011, 8847, 0, 0, 0, 8329, 74590, 43878, 0, 0,
- 0, 3127, 2595, 71040, 69766, 129188, 0, 41089, 0, 0, 70292, 983613,
- 12112, 0, 74200, 0, 8764, 0, 0, 0, 67273, 67272, 67271, 71044, 0, 0, 0,
- 71042, 67266, 67265, 0, 67270, 67269, 67268, 67267, 67282, 67281, 67280,
- 3572, 10023, 4959, 0, 0, 67275, 9729, 125110, 0, 67278, 67277, 0, 67276,
- 0, 7996, 9907, 0, 13304, 83392, 0, 72830, 0, 11095, 11100, 0, 83358,
- 83387, 10142, 0, 0, 0, 0, 68022, 0, 83363, 128292, 19955, 0, 83366,
- 69807, 125246, 70124, 0, 72230, 83373, 83385, 0, 0, 0, 0, 68020, 0, 2239,
- 261, 8406, 7791, 0, 7362, 0, 10696, 0, 0, 9838, 118920, 0, 83477, 0, 0,
- 0, 6437, 68830, 83476, 0, 0, 74177, 0, 0, 67288, 67287, 0, 67286, 0,
- 83470, 0, 67289, 67283, 83471, 70002, 0, 0, 0, 67285, 11499, 67297, 7816,
- 67295, 55247, 68015, 10929, 67298, 0, 68017, 9642, 10912, 0, 67293,
- 11387, 67291, 67290, 70792, 0, 67715, 0, 0, 68099, 13287, 74430, 10836,
- 0, 75053, 69775, 0, 128746, 7450, 0, 0, 119648, 9697, 3606, 0, 0, 0, 0,
- 125029, 0, 0, 121262, 0, 128873, 1389, 128871, 0, 0, 0, 12941, 0, 83438,
- 121062, 0, 12301, 83440, 0, 41102, 66604, 72025, 0, 0, 0, 66600, 523,
- 92642, 71100, 74436, 0, 0, 0, 8608, 83435, 72828, 128704, 0, 127402,
- 11307, 66707, 67301, 67300, 67299, 0, 67304, 67303, 0, 0, 0, 0, 127212,
- 5908, 0, 0, 6744, 67310, 1699, 67308, 67307, 67314, 67313, 6306, 67311,
- 983207, 72150, 69862, 3766, 2389, 67305, 74569, 6611, 65700, 0, 0, 0,
- 42386, 0, 0, 2599, 917972, 119131, 119049, 65717, 0, 0, 119654, 0, 0, 0,
- 74203, 3760, 1718, 68160, 0, 3776, 7335, 0, 0, 67324, 69861, 0, 69792, 0,
- 0, 3778, 0, 9462, 7824, 0, 78896, 3768, 68142, 765, 72822, 3764, 0, 0,
- 113822, 129667, 12947, 0, 0, 0, 118806, 73753, 0, 0, 0, 6829, 5225,
- 66901, 0, 0, 0, 0, 67319, 67318, 3162, 67316, 67323, 67322, 67321, 67320,
- 0, 5353, 0, 74179, 67315, 0, 1010, 0, 0, 67326, 67325, 127870, 6952,
- 67329, 67328, 67327, 2590, 120036, 65552, 120034, 120039, 7183, 120037,
- 120038, 120027, 120028, 120025, 120026, 120031, 970, 120029, 74611,
- 120019, 120020, 120017, 67330, 120023, 120024, 120021, 10961, 113693,
- 11148, 0, 0, 0, 128448, 0, 113703, 64378, 0, 0, 0, 68821, 119649, 11358,
- 71172, 69797, 0, 11065, 126464, 0, 68864, 0, 5694, 120839, 66784, 0,
- 4325, 3047, 0, 43652, 120962, 93029, 69764, 0, 0, 0, 0, 5431, 6652, 0,
- 67753, 71460, 0, 0, 0, 1129, 65016, 0, 65900, 1986, 7846, 0, 8661, 75058,
- 0, 0, 3845, 0, 0, 0, 74400, 1456, 7530, 121382, 0, 0, 0, 0, 120016, 0, 0,
- 0, 917863, 127772, 119966, 0, 11002, 7026, 8145, 68216, 0, 12138, 71464,
- 0, 0, 0, 12323, 130033, 917869, 0, 0, 0, 92316, 68494, 0, 0, 129384, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 42205, 0, 236, 0, 78867, 0, 0, 113784, 0, 0,
- 983982, 0, 0, 917865, 8097, 0, 0, 68012, 72820, 11194, 0, 72824, 0,
- 127974, 0, 0, 110602, 129948, 10416, 68070, 3872, 127508, 0, 0, 0, 0,
- 2838, 917867, 0, 917866, 119589, 0, 0, 0, 0, 11096, 83019, 10553, 83421,
- 0, 0, 0, 0, 0, 0, 73742, 6436, 10096, 0, 0, 0, 113687, 0, 4463, 68018, 0,
- 78074, 0, 983591, 7184, 0, 0, 0, 0, 0, 0, 93825, 12818, 12032, 0, 0, 0,
- 0, 10357, 121418, 8170, 0, 8556, 0, 9659, 0, 0, 0, 9556, 0, 4503, 92700,
- 9647, 64004, 78185, 0, 0, 64002, 78889, 0, 0, 118910, 0, 6438, 0, 9109,
- 78884, 0, 64599, 0, 68009, 0, 0, 2447, 129863, 0, 0, 126545, 0, 119002,
- 0, 0, 0, 19937, 0, 1322, 0, 119204, 254, 0, 0, 69392, 42425, 0, 0, 65204,
- 42312, 0, 128519, 0, 42826, 0, 42464, 120567, 0, 67155, 74796, 64400,
- 64693, 126212, 77861, 0, 0, 67154, 0, 0, 0, 68008, 11785, 0, 119142,
- 41978, 0, 0, 43244, 10536, 0, 9901, 7103, 0, 7102, 71428, 120748, 3140,
- 0, 0, 68007, 0, 67258, 10909, 0, 1428, 0, 67254, 67253, 7699, 12393,
- 67257, 0, 67256, 67255, 0, 0, 69389, 0, 0, 0, 0, 0, 67153, 0, 0, 127383,
- 69376, 64554, 0, 3878, 0, 42352, 1752, 0, 0, 42506, 0, 10199, 0, 983463,
- 125231, 0, 0, 0, 720, 0, 0, 0, 68831, 0, 1464, 128339, 0, 7974, 0,
- 125017, 68082, 0, 0, 0, 0, 74787, 0, 78864, 92258, 0, 0, 78863, 0, 1302,
- 66288, 0, 0, 0, 67152, 0, 983611, 983618, 0, 0, 3995, 0, 65608, 3714, 0,
- 0, 67262, 67261, 67260, 67259, 43251, 67264, 67263, 0, 120557, 92346,
- 8672, 68006, 11964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92610, 0, 468, 0, 0,
- 0, 983470, 0, 0, 128544, 129397, 65907, 983163, 0, 0, 0, 0, 0, 983468,
- 41743, 0, 0, 0, 74880, 0, 121001, 820, 41741, 0, 120667, 0, 64684,
- 126992, 128604, 126082, 69934, 65177, 6226, 353, 43645, 0, 119612,
- 120738, 67700, 0, 0, 0, 0, 42457, 120276, 0, 120277, 1884, 129637, 42418,
- 113678, 41157, 0, 42305, 120279, 0, 0, 41151, 0, 71430, 0, 42344, 0, 0,
- 0, 42497, 0, 194870, 72754, 69933, 73703, 0, 42521, 8539, 128606, 0,
- 123609, 69957, 4788, 0, 68023, 0, 0, 983053, 0, 0, 0, 0, 41590, 0,
- 113754, 0, 0, 118901, 68637, 41136, 64351, 0, 128453, 41154, 113731,
- 127038, 4038, 41143, 68232, 64859, 0, 129910, 0, 5435, 129911, 6734,
- 41343, 127035, 0, 0, 41359, 66761, 0, 119835, 41349, 0, 129915, 10374,
- 10310, 0, 0, 10254, 119836, 10278, 10262, 69858, 41363, 0, 0, 0, 119840,
- 0, 41356, 10314, 10282, 0, 10378, 0, 40976, 10266, 0, 119848, 40975, 0,
- 129554, 0, 40978, 0, 92945, 0, 0, 0, 119098, 119083, 0, 71437, 119854,
- 69936, 0, 0, 3525, 6824, 0, 0, 119858, 128451, 0, 72239, 113738, 0,
- 71424, 0, 0, 0, 0, 0, 10727, 7212, 129071, 71957, 0, 0, 0, 67156, 808,
- 7207, 42387, 0, 0, 0, 0, 0, 0, 0, 0, 9225, 121149, 0, 9145, 128060,
- 41018, 67841, 983158, 42300, 0, 3084, 983155, 125014, 41025, 6037, 0,
- 194885, 0, 10290, 0, 3083, 10322, 111017, 129030, 0, 41036, 0, 0, 43321,
- 65606, 0, 41032, 42388, 0, 64700, 0, 1445, 40961, 0, 0, 0, 40960, 0,
- 67727, 0, 2223, 64952, 10402, 0, 0, 0, 10603, 0, 0, 71438, 0, 0, 0,
- 128469, 0, 0, 0, 0, 0, 0, 42585, 65032, 10704, 65030, 4787, 0, 917556, 0,
- 127015, 0, 128118, 0, 0, 9525, 0, 0, 68773, 0, 0, 0, 0, 40966, 0, 0,
- 3998, 0, 0, 65919, 71433, 11792, 2690, 0, 42836, 127150, 41954, 194921,
- 194923, 6737, 0, 64933, 126260, 3487, 194873, 71427, 72758, 65426, 72756,
- 66757, 0, 0, 41976, 9720, 74964, 11179, 41970, 0, 12116, 65024, 0,
- 127912, 9048, 65028, 65027, 65026, 65025, 64757, 0, 41488, 0, 8527, 0,
- 126480, 0, 41480, 41053, 3266, 0, 194876, 12093, 41466, 122881, 78642,
- 1519, 983906, 3638, 65887, 65429, 0, 0, 0, 0, 8633, 0, 0, 0, 125118, 0,
- 70375, 0, 0, 6368, 128124, 0, 70369, 8078, 0, 0, 70373, 72876, 0, 7002,
- 121003, 41430, 0, 41051, 41484, 0, 0, 41050, 8872, 0, 13099, 71445,
- 70371, 0, 6435, 72154, 11362, 0, 0, 0, 0, 41420, 0, 3625, 74915, 41409,
- 71441, 0, 0, 0, 9672, 0, 0, 43317, 0, 0, 0, 41424, 917598, 0, 0, 0, 0,
- 41417, 1261, 0, 0, 12102, 119662, 41401, 0, 127538, 129518, 0, 124943,
- 72765, 3275, 92472, 0, 0, 0, 0, 0, 0, 0, 0, 125129, 983140, 10598, 0,
- 128633, 6711, 0, 2920, 0, 0, 0, 0, 19928, 0, 0, 3917, 0, 113756, 0, 0,
- 66588, 128078, 0, 0, 113721, 113758, 983081, 0, 0, 41184, 0, 232, 0, 0,
- 74170, 0, 0, 0, 0, 9094, 0, 0, 92585, 0, 1064, 0, 0, 10115, 0, 0, 0,
- 7862, 0, 13224, 0, 0, 66650, 0, 0, 72877, 1878, 0, 71434, 2911, 0, 41178,
- 5427, 0, 0, 0, 12617, 41174, 0, 67148, 67147, 0, 42413, 41167, 2406, 0,
- 0, 0, 0, 0, 9618, 128668, 0, 0, 0, 0, 41436, 9337, 126067, 0, 41456, 0,
- 119086, 11333, 0, 6703, 0, 125071, 1613, 0, 0, 0, 983191, 0, 0, 74500,
- 41460, 78197, 0, 0, 194899, 67144, 65841, 0, 121109, 74064, 111146,
- 111144, 120375, 0, 111122, 0, 111121, 64687, 111120, 42592, 3871, 0,
- 128305, 9111, 111163, 0, 111156, 120366, 121462, 11150, 111154, 111175,
- 111179, 0, 111168, 0, 120362, 41587, 70391, 0, 74322, 0, 194908, 111166,
- 111133, 0, 71443, 194842, 0, 111151, 0, 0, 7928, 111127, 111140, 41595,
- 0, 0, 65801, 983600, 0, 0, 0, 73712, 0, 41598, 3993, 121269, 1545, 40971,
- 121286, 72874, 0, 0, 0, 120767, 65286, 0, 0, 0, 0, 0, 0, 0, 5402, 0, 0,
- 74462, 73457, 0, 0, 78194, 64326, 40969, 0, 128110, 983684, 40968, 0,
- 121139, 0, 0, 0, 0, 128513, 8020, 0, 41012, 0, 0, 65805, 41006, 0, 0,
- 74605, 0, 118942, 43432, 0, 0, 92900, 0, 0, 68671, 120687, 0, 92958, 0,
- 0, 68332, 0, 40992, 0, 0, 0, 0, 0, 42235, 0, 1741, 42370, 0, 0, 0, 11413,
- 126583, 0, 0, 128769, 6470, 0, 74517, 0, 0, 120651, 40984, 0, 42742, 0,
- 12916, 6284, 0, 41663, 0, 0, 68313, 72840, 70164, 41648, 0, 0, 2299,
- 41666, 0, 0, 2056, 41656, 0, 0, 71917, 42219, 0, 0, 78112, 41676, 0, 0,
- 0, 41670, 0, 92590, 2796, 0, 0, 9902, 0, 67988, 64785, 82995, 128822,
- 42631, 983040, 71890, 0, 74164, 41238, 10049, 11405, 0, 64368, 0, 120925,
- 0, 397, 12299, 42139, 0, 9590, 0, 0, 43661, 43819, 0, 6651, 3544, 0, 0,
- 9620, 0, 0, 0, 92229, 1333, 7104, 0, 6425, 0, 0, 0, 0, 0, 0, 11976, 8554,
- 13055, 0, 110733, 0, 110731, 41218, 0, 0, 128673, 1883, 0, 0, 70443,
- 41225, 70788, 42419, 983688, 129450, 0, 127896, 0, 65809, 11837, 0,
- 129104, 7141, 0, 0, 0, 0, 0, 42363, 0, 0, 0, 0, 69949, 119157, 64732, 0,
- 0, 126983, 0, 0, 983678, 7140, 42051, 0, 4164, 118799, 0, 120569, 42049,
- 42042, 0, 0, 0, 120637, 69938, 0, 42047, 0, 0, 8470, 11807, 128935, 0, 0,
- 194825, 74300, 126267, 0, 120517, 0, 0, 0, 0, 8736, 0, 42643, 72753,
- 129925, 0, 0, 71432, 0, 93023, 110730, 72869, 110728, 0, 0, 0, 0, 68445,
- 0, 0, 2106, 0, 11273, 120986, 43004, 0, 82988, 0, 961, 64307, 0, 0, 0,
- 67711, 110615, 0, 1696, 0, 9762, 12105, 0, 110622, 110623, 3264, 110621,
- 110618, 43003, 110616, 110617, 0, 120359, 0, 128660, 0, 2322, 0, 70831,
- 11449, 128187, 42868, 0, 0, 0, 0, 113746, 983234, 0, 129583, 66398, 0, 0,
- 0, 0, 0, 111135, 119224, 0, 0, 64421, 0, 113739, 0, 65823, 0, 11182, 0,
- 0, 0, 7766, 55268, 0, 4598, 0, 65839, 0, 0, 0, 10851, 0, 6179, 92602,
- 6180, 129524, 11952, 0, 78648, 78651, 78646, 78647, 78644, 78645, 3801,
- 78643, 6176, 120580, 0, 0, 6177, 0, 78652, 78653, 6178, 0, 0, 0, 0, 2214,
- 8754, 0, 0, 2137, 0, 0, 0, 0, 66889, 0, 0, 0, 8974, 2308, 0, 74579, 0,
- 2318, 122920, 0, 8198, 0, 0, 0, 74307, 0, 119524, 0, 0, 6970, 0, 0, 0,
- 41159, 0, 120363, 6385, 0, 128403, 0, 0, 126258, 0, 72785, 42053, 2075,
- 42057, 0, 42052, 0, 0, 67651, 0, 9665, 0, 0, 13181, 0, 0, 69379, 0, 0, 0,
- 0, 73010, 0, 0, 0, 41145, 0, 0, 0, 41148, 0, 7594, 113686, 75033, 119090,
- 10869, 43458, 41146, 0, 0, 121456, 917630, 0, 0, 0, 0, 0, 65184, 11780,
- 0, 42796, 0, 69742, 0, 65146, 66803, 0, 0, 0, 7358, 78241, 0, 7988,
- 101371, 101370, 3271, 101372, 0, 69281, 0, 0, 0, 101369, 13070, 113736,
- 42044, 101365, 1095, 101367, 3599, 101361, 101364, 101157, 129087, 66390,
- 101360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42043, 43232, 67656, 121014, 42046,
- 64355, 4036, 123601, 0, 0, 983062, 0, 11954, 0, 41191, 12986, 0, 194854,
- 65441, 0, 72202, 0, 129338, 0, 101353, 101352, 12834, 0, 101349, 101348,
- 101351, 101350, 101345, 101344, 41190, 101346, 129693, 4575, 41193, 0,
- 429, 119174, 124931, 194859, 0, 65792, 128754, 78509, 0, 128866, 0, 0, 0,
- 66786, 0, 194862, 10590, 0, 0, 0, 0, 0, 0, 6247, 10214, 65126, 68253, 0,
- 0, 0, 983680, 1617, 8050, 0, 0, 0, 101358, 101357, 0, 101359, 101354, 0,
- 101356, 6352, 0, 0, 0, 0, 0, 0, 0, 0, 92335, 0, 0, 42926, 0, 0, 0, 8689,
- 78750, 70067, 42896, 74147, 3559, 101327, 0, 74526, 65850, 12327, 72763,
- 101325, 0, 0, 72761, 0, 78903, 0, 0, 0, 0, 70079, 72751, 0, 12153,
- 101340, 101343, 101342, 71940, 0, 101339, 101338, 0, 0, 681, 129406, 703,
- 101335, 3272, 101337, 101332, 70077, 101334, 101333, 70514, 78902, 92532,
- 71436, 42238, 124930, 3276, 0, 101311, 65928, 0, 0, 101307, 101306,
- 101309, 101308, 78813, 78814, 3262, 78811, 42711, 101305, 0, 0, 101302,
- 92746, 9995, 1655, 70131, 78818, 78815, 12479, 0, 0, 101296, 70513,
- 42797, 0, 0, 128371, 43112, 101318, 43488, 101320, 101315, 101314, 42684,
- 101316, 0, 0, 101313, 101312, 128308, 0, 0, 0, 0, 0, 0, 11031, 0, 0, 0,
- 70386, 10348, 10412, 0, 0, 74329, 0, 0, 0, 101285, 101284, 101287,
- 101286, 8810, 101280, 686, 101282, 0, 0, 0, 0, 110709, 0, 0, 12040, 0, 0,
- 65118, 110704, 0, 118891, 110599, 0, 110598, 0, 120543, 983660, 0, 65455,
- 74413, 94097, 0, 119129, 0, 0, 0, 78776, 0, 64467, 10300, 10161, 10396,
- 0, 0, 0, 0, 78773, 101294, 101293, 0, 1458, 101290, 0, 72429, 65120,
- 11479, 0, 0, 6350, 101289, 101288, 71473, 1061, 69787, 9115, 43111, 0, 0,
- 0, 0, 983960, 0, 120907, 1045, 0, 73913, 983564, 0, 0, 0, 0, 0, 0, 8486,
- 0, 0, 0, 4362, 0, 0, 93054, 1025, 0, 0, 0, 0, 0, 92328, 128206, 0, 1774,
- 0, 122913, 0, 0, 0, 11207, 0, 0, 3988, 0, 0, 983048, 0, 0, 8564, 983958,
- 0, 0, 0, 0, 0, 0, 66513, 6256, 0, 579, 55218, 0, 0, 0, 127337, 0, 11814,
- 0, 4488, 128716, 127336, 0, 10444, 118846, 78238, 0, 0, 127331, 4487,
- 127849, 42832, 1032, 0, 43450, 0, 70155, 0, 614, 0, 127325, 0, 0, 128466,
- 0, 127323, 0, 127322, 0, 0, 0, 1050, 7549, 127319, 0, 9314, 0, 0, 0, 0,
- 0, 70434, 127314, 12527, 66504, 0, 0, 0, 0, 64333, 127312, 128547, 92594,
- 0, 0, 0, 129316, 0, 124960, 10360, 6746, 0, 0, 0, 0, 13085, 9233, 0, 0,
- 0, 0, 0, 0, 92766, 0, 121114, 983925, 74212, 42819, 10910, 0, 68044,
- 9896, 0, 0, 120915, 0, 0, 7970, 0, 0, 0, 0, 113699, 9849, 0, 122910, 0,
- 0, 10487, 69714, 0, 10103, 0, 4769, 0, 129967, 0, 2283, 0, 0, 74785, 0,
- 0, 0, 110595, 110596, 0, 110594, 64565, 4773, 0, 0, 0, 4770, 0, 0, 0,
- 65457, 69441, 0, 0, 127338, 983593, 4774, 0, 68497, 2259, 0, 0, 10215, 0,
- 0, 0, 0, 0, 74776, 92160, 4768, 0, 0, 4099, 0, 110699, 110700, 110697,
- 2225, 0, 0, 0, 0, 125217, 11255, 42814, 880, 0, 0, 0, 0, 0, 67756, 65246,
- 0, 0, 129463, 7095, 0, 0, 0, 0, 0, 0, 2427, 0, 7093, 0, 11585, 0, 9962,
- 0, 12223, 0, 78211, 1434, 42939, 0, 11573, 0, 0, 0, 121257, 0, 0, 0, 0,
- 74437, 0, 113711, 917596, 0, 8740, 0, 3782, 64331, 0, 65167, 1014, 0, 0,
- 0, 10835, 129987, 0, 0, 0, 0, 0, 118824, 7302, 0, 67707, 0, 1150, 10547,
- 0, 0, 68427, 0, 0, 0, 0, 118788, 0, 0, 0, 42257, 8010, 0, 0, 0, 9643, 0,
- 0, 12864, 0, 0, 0, 0, 0, 0, 0, 0, 1426, 68217, 0, 68447, 129971, 0, 0, 0,
- 73701, 0, 0, 0, 65383, 0, 0, 0, 0, 0, 0, 43196, 43194, 92549, 10744, 0,
- 990, 93772, 0, 0, 0, 0, 0, 66470, 0, 0, 0, 3945, 0, 0, 0, 130039, 0,
- 127546, 127746, 1020, 73763, 92257, 0, 0, 64748, 0, 0, 10205, 0, 0,
- 10016, 0, 74051, 0, 43242, 125096, 2667, 0, 125037, 0, 9911, 0, 0, 10097,
- 0, 0, 0, 118836, 0, 0, 0, 0, 68889, 10159, 113759, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 983338, 92291, 0, 127973, 72882, 0, 1041, 127182, 6354, 0, 65364,
- 0, 0, 0, 72884, 0, 128477, 0, 65906, 127819, 72883, 0, 128470, 5375,
- 72881, 0, 8215, 0, 10074, 0, 0, 0, 69899, 0, 0, 121426, 41382, 0, 0,
- 5173, 65348, 527, 0, 0, 0, 128250, 0, 0, 0, 0, 0, 0, 42695, 0, 42250, 0,
- 11187, 113695, 0, 1568, 66806, 0, 0, 113705, 0, 0, 129487, 0, 0, 128839,
- 9069, 6144, 0, 0, 0, 0, 66783, 0, 74027, 118934, 66787, 74580, 0, 110790,
- 6364, 0, 66794, 43508, 0, 92612, 0, 0, 0, 0, 128405, 66449, 0, 0, 0, 0,
- 70714, 0, 70716, 0, 1044, 42411, 0, 0, 0, 0, 43239, 0, 0, 0, 0, 42450, 0,
- 0, 68479, 119237, 0, 0, 0, 0, 0, 69956, 11537, 0, 121206, 0, 0, 0, 0,
- 1057, 566, 0, 0, 10907, 42274, 43464, 0, 0, 0, 78472, 71207, 42636, 0,
- 123603, 0, 0, 121171, 64659, 0, 127749, 0, 6357, 6362, 0, 0, 2216, 9090,
- 0, 0, 0, 0, 68227, 0, 0, 0, 0, 1053, 12830, 0, 0, 0, 1052, 1051, 459,
- 1060, 0, 66479, 0, 0, 0, 128061, 42490, 689, 6508, 4163, 42298, 8639,
- 983333, 4246, 0, 43514, 42362, 0, 42337, 64596, 0, 0, 0, 0, 0, 6359, 0,
- 43471, 0, 0, 0, 127274, 0, 6358, 6361, 1926, 6356, 0, 7898, 0, 10935, 0,
- 127972, 121285, 0, 43685, 0, 0, 42910, 0, 8693, 0, 0, 44010, 0, 120991,
- 121454, 0, 0, 0, 0, 129514, 0, 0, 0, 0, 73947, 0, 129361, 92412, 0,
- 66477, 0, 0, 0, 43854, 71913, 0, 0, 0, 0, 72227, 65899, 92275, 0, 0, 0,
- 68887, 0, 71057, 0, 0, 0, 0, 119183, 2923, 10853, 0, 0, 0, 0, 72864, 0,
- 72773, 72772, 0, 120801, 65251, 0, 68228, 0, 128548, 0, 0, 5370, 70465,
- 2931, 73848, 0, 10188, 0, 118848, 0, 983923, 0, 0, 0, 72212, 0, 10844,
- 121016, 128195, 92424, 0, 0, 0, 286, 0, 1062, 0, 0, 0, 7395, 0, 1070,
- 128993, 0, 6095, 0, 0, 0, 127796, 126465, 64497, 0, 0, 0, 0, 70054, 8189,
- 78272, 0, 0, 0, 0, 0, 113783, 42102, 78276, 0, 0, 42101, 0, 78402, 67427,
- 33, 67425, 67424, 10824, 67430, 67429, 67428, 427, 64723, 0, 0, 0, 0,
- 1031, 0, 0, 42104, 0, 0, 2328, 0, 1071, 42899, 128486, 0, 7673, 0, 0,
- 1047, 0, 0, 42908, 0, 0, 10651, 0, 0, 0, 72433, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 13216, 0, 69716, 0, 0, 0, 0, 0, 92411, 69654, 0, 0, 129904,
- 2761, 129909, 0, 0, 0, 0, 8643, 0, 0, 94021, 2757, 11067, 0, 74498, 8910,
- 10689, 0, 0, 0, 71173, 0, 9196, 71214, 0, 0, 0, 0, 118911, 0, 0, 0, 0, 0,
- 0, 0, 0, 68130, 119616, 0, 0, 42477, 0, 0, 4495, 0, 0, 0, 0, 70080,
- 10992, 0, 0, 0, 0, 9318, 0, 6002, 0, 73808, 0, 92601, 42249, 7639, 43995,
- 0, 0, 5454, 0, 0, 0, 0, 0, 0, 0, 121189, 0, 119173, 0, 9704, 120686, 0,
- 78436, 78435, 11204, 0, 0, 1731, 0, 92937, 0, 67990, 0, 0, 0, 126576,
- 127018, 71951, 55265, 0, 0, 0, 0, 127257, 73826, 0, 3840, 0, 41432, 0, 0,
- 68430, 0, 43253, 128284, 0, 3371, 92936, 0, 0, 1479, 69282, 0, 1109,
- 77997, 0, 129154, 0, 92782, 0, 0, 8868, 399, 67978, 74842, 0, 0, 194839,
- 0, 551, 0, 10156, 0, 92572, 0, 2544, 65074, 0, 0, 0, 0, 0, 0, 0, 128713,
- 0, 0, 74268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68045, 0, 0, 0, 3447, 0, 0,
- 121414, 2549, 110818, 0, 0, 43564, 8946, 0, 74411, 66864, 0, 70480, 7980,
- 0, 113698, 0, 119653, 66489, 0, 64695, 128063, 0, 0, 0, 0, 0, 0, 43452,
- 0, 92993, 0, 10919, 0, 67810, 0, 0, 0, 0, 6450, 10055, 0, 0, 0, 0, 42720,
- 0, 9626, 0, 128055, 74447, 0, 125127, 92573, 0, 0, 0, 119075, 0, 0,
- 66486, 0, 0, 0, 0, 0, 0, 75028, 983864, 74839, 0, 0, 0, 0, 0, 55286, 0,
- 1055, 917628, 0, 0, 0, 70516, 12146, 0, 73956, 66488, 0, 0, 0, 0, 0, 0,
- 42518, 0, 0, 0, 7407, 74978, 0, 0, 0, 0, 0, 0, 0, 10231, 0, 66626, 0, 0,
- 92951, 0, 65927, 0, 0, 69696, 0, 92389, 0, 0, 0, 68095, 92950, 0, 10555,
- 0, 0, 9091, 10798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43222, 0, 74982, 0, 0,
- 120952, 0, 0, 2992, 7826, 74321, 0, 125103, 74981, 92628, 0, 129903,
- 128289, 128203, 4361, 129597, 1306, 78770, 1497, 983628, 0, 0, 0, 8248,
- 0, 127253, 7973, 128706, 0, 0, 73122, 983930, 0, 0, 2963, 120653, 0,
- 128554, 0, 0, 64258, 0, 0, 69677, 74983, 65103, 0, 125008, 42625, 0,
- 72022, 0, 0, 64905, 0, 9512, 0, 119076, 6443, 983262, 0, 9135, 0, 0,
- 123202, 0, 0, 983863, 93788, 0, 0, 0, 93767, 64256, 0, 11669, 0, 0, 4524,
+ 43811, 0, 128924, 0, 11062, 128748, 0, 0, 0, 69276, 2901, 7865, 0, 78354,
+ 0, 78347, 0, 126123, 0, 66363, 0, 0, 0, 74967, 7414, 0, 0, 92691, 0,
+ 128507, 885, 64772, 65180, 0, 71267, 852, 0, 0, 0, 78614, 121174, 129092,
+ 67809, 9609, 12156, 0, 0, 43586, 11035, 10411, 0, 13268, 6710, 0, 0, 0,
+ 43853, 77949, 4315, 0, 111104, 0, 43639, 43343, 0, 0, 0, 73074, 0, 65812,
+ 43431, 0, 0, 0, 0, 0, 129890, 0, 0, 0, 0, 994, 125222, 127104, 127103,
+ 73966, 66890, 0, 65291, 70753, 0, 0, 0, 0, 66873, 4186, 92531, 127106,
+ 127105, 6718, 7330, 4406, 0, 8480, 7319, 64373, 128699, 4413, 0, 0, 3198,
+ 0, 0, 92469, 111126, 0, 128591, 128681, 0, 0, 0, 101321, 73023, 742, 0,
+ 2893, 78738, 0, 0, 0, 2553, 42294, 6756, 0, 73020, 8363, 0, 2993, 128381,
+ 3916, 4301, 0, 1141, 42407, 0, 0, 7572, 973, 0, 125077, 0, 2415, 0, 0,
+ 9640, 42333, 0, 0, 129546, 42486, 43381, 65390, 0, 69434, 1202, 0, 0, 0,
+ 0, 68484, 0, 0, 64542, 3260, 0, 65388, 43502, 69904, 0, 6738, 0, 0,
+ 74193, 0, 0, 0, 74641, 6312, 0, 74556, 12446, 0, 0, 128076, 8229, 1235,
+ 0, 11472, 83064, 0, 0, 101366, 0, 0, 1740, 12872, 0, 985, 0, 0, 0, 12068,
+ 0, 0, 101363, 0, 0, 0, 13133, 65071, 110780, 12655, 12134, 0, 92934, 0,
+ 66915, 120349, 119572, 0, 93030, 41572, 0, 0, 0, 41573, 0, 3931, 0,
+ 74143, 0, 127034, 0, 0, 0, 0, 83067, 0, 129303, 0, 0, 0, 0, 0, 0, 83068,
+ 0, 72740, 128637, 72717, 92935, 120291, 0, 1780, 6936, 0, 0, 819, 0,
+ 9694, 125228, 0, 0, 0, 0, 8343, 8342, 8345, 8344, 8346, 8338, 7523, 6922,
+ 8348, 8347, 7525, 3346, 8339, 125004, 72705, 69462, 268, 0, 0, 5754, 0,
+ 0, 110684, 8336, 0, 0, 0, 8337, 8341, 0, 11388, 7522, 0, 0, 0, 11090,
+ 6953, 125240, 0, 74973, 120708, 0, 0, 0, 0, 0, 110782, 0, 9038, 7887, 0,
+ 0, 42534, 64347, 0, 0, 67660, 120341, 0, 0, 0, 120878, 0, 0, 73999, 0,
+ 64580, 0, 0, 64643, 0, 0, 74975, 0, 92227, 129052, 0, 83071, 83072,
+ 83073, 119154, 0, 119153, 0, 0, 5349, 72440, 0, 917554, 7411, 0, 983220,
+ 0, 0, 0, 42736, 70747, 5756, 983225, 92946, 0, 42764, 0, 0, 119529, 5752,
+ 120600, 0, 0, 0, 0, 0, 78893, 0, 0, 0, 125242, 0, 0, 120331, 0, 0, 0,
+ 72826, 0, 10080, 83056, 12647, 0, 0, 69252, 66882, 0, 0, 0, 0, 0, 72005,
+ 72845, 0, 0, 0, 0, 0, 74213, 0, 0, 0, 0, 0, 6302, 0, 0, 0, 0, 1417,
+ 983222, 0, 9452, 0, 74393, 0, 0, 110850, 0, 65391, 63789, 69251, 78659,
+ 78660, 41264, 78658, 6426, 42398, 9179, 78654, 64906, 41255, 42036, 0,
+ 41269, 0, 41267, 42436, 67759, 42323, 42034, 0, 0, 42475, 42033, 0, 0,
+ 68916, 43948, 0, 78673, 78674, 1659, 919, 42784, 1671, 0, 6069, 9219, 0,
+ 1661, 119144, 0, 92690, 10140, 9713, 78400, 0, 125236, 0, 2306, 0, 0,
+ 6068, 10612, 0, 0, 121314, 92561, 41462, 0, 0, 0, 0, 0, 0, 0, 128204,
+ 10635, 0, 983221, 0, 0, 0, 983231, 92251, 0, 121029, 983223, 0, 8100, 0,
+ 78669, 78670, 13301, 78667, 9667, 78665, 0, 0, 11003, 9904, 0, 0, 0, 0,
+ 0, 0, 78680, 78681, 78677, 78678, 0, 10313, 0, 0, 64320, 10265, 78686,
+ 129404, 78684, 78685, 8945, 78683, 70750, 41, 0, 0, 0, 0, 8655, 0, 0, 0,
+ 0, 0, 0, 0, 2585, 0, 65254, 3126, 0, 74136, 10957, 0, 11160, 0, 0, 0, 0,
+ 0, 11408, 0, 7443, 0, 0, 6997, 68004, 0, 0, 8739, 11075, 0, 65216, 0,
+ 69795, 2593, 0, 0, 0, 0, 125062, 0, 0, 0, 4411, 0, 72837, 0, 43442,
+ 78799, 0, 0, 0, 66351, 0, 0, 13061, 0, 78687, 78688, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 119925, 0, 983637, 0, 0, 0, 0, 83399, 127541, 83398, 8022,
+ 78808, 0, 73794, 0, 0, 83414, 119918, 0, 0, 0, 0, 0, 0, 63799, 78427,
+ 12063, 78425, 78424, 0, 0, 0, 75025, 0, 297, 0, 0, 68326, 0, 78429,
+ 78428, 7077, 2497, 128651, 0, 983111, 0, 0, 0, 4292, 0, 74815, 10512, 0,
+ 74814, 119931, 0, 72841, 2503, 65070, 1762, 69794, 2495, 0, 71230, 94069,
+ 77984, 0, 12654, 0, 1899, 0, 2507, 0, 8726, 0, 65594, 0, 71272, 8892, 0,
+ 0, 0, 0, 0, 420, 0, 0, 125130, 10797, 74637, 0, 0, 0, 0, 63796, 0, 66581,
+ 0, 119205, 0, 0, 194840, 0, 120788, 0, 0, 92956, 0, 0, 0, 0, 119230, 0,
+ 0, 83496, 7399, 0, 66434, 42779, 0, 92220, 42197, 92543, 5380, 0, 0,
+ 1155, 11365, 43126, 0, 77971, 65684, 0, 5601, 0, 42765, 78258, 0, 7987,
+ 72843, 0, 69799, 0, 0, 78735, 119165, 0, 0, 4473, 0, 72426, 0, 65347,
+ 65346, 65345, 0, 127384, 0, 69802, 0, 73868, 0, 64826, 0, 0, 0, 0, 6218,
+ 78422, 69676, 4555, 0, 83459, 70071, 128670, 65190, 0, 0, 65244, 0, 0,
+ 42519, 74472, 0, 0, 83466, 0, 0, 0, 83468, 92581, 0, 0, 65370, 65369,
+ 65368, 65367, 65366, 65365, 41086, 65363, 65362, 65361, 65360, 43410,
+ 11323, 65357, 65356, 65355, 5345, 65353, 65352, 65351, 761, 65349, 19959,
+ 69718, 0, 0, 0, 0, 64647, 0, 0, 4699, 126077, 0, 129940, 0, 0, 0, 68074,
+ 0, 0, 0, 128347, 0, 72829, 0, 69773, 121438, 0, 0, 0, 73980, 78255,
+ 78254, 83453, 43157, 0, 0, 0, 7946, 12541, 0, 74615, 69780, 0, 0, 0, 0,
+ 9005, 1225, 0, 0, 0, 0, 68011, 8847, 0, 0, 0, 8329, 74590, 43878, 0, 0,
+ 0, 3127, 2595, 71040, 69766, 129188, 0, 41089, 0, 0, 70292, 983613,
+ 12112, 0, 74200, 0, 8764, 0, 0, 0, 67273, 67272, 67271, 71044, 0, 0, 0,
+ 71042, 67266, 67265, 0, 67270, 67269, 67268, 67267, 67282, 67281, 67280,
+ 3572, 10023, 4959, 0, 0, 67275, 9729, 125110, 0, 67278, 67277, 0, 67276,
+ 0, 7996, 9907, 0, 13304, 83392, 0, 72830, 0, 11095, 11100, 0, 83358,
+ 83387, 10142, 0, 0, 0, 0, 68022, 0, 83363, 128292, 19955, 0, 83366,
+ 69807, 125246, 70124, 0, 72230, 83373, 83385, 0, 0, 0, 0, 68020, 0, 2239,
+ 261, 8406, 7791, 0, 7362, 0, 10696, 0, 0, 9838, 118920, 0, 83477, 0, 0,
+ 0, 6437, 68830, 83476, 0, 0, 74177, 0, 0, 67288, 67287, 0, 67286, 0,
+ 83470, 0, 67289, 67283, 83471, 70002, 0, 0, 0, 67285, 11499, 67297, 7816,
+ 67295, 55247, 68015, 10929, 67298, 0, 68017, 9642, 10912, 0, 67293,
+ 11387, 67291, 67290, 70792, 0, 67715, 0, 0, 68099, 13287, 74430, 10836,
+ 0, 75053, 69775, 0, 128746, 7450, 0, 0, 119648, 9697, 3606, 0, 0, 0, 0,
+ 125029, 0, 0, 121262, 0, 128873, 1389, 128871, 0, 0, 0, 12941, 0, 83438,
+ 121062, 0, 12301, 83440, 0, 41102, 66604, 72025, 0, 0, 0, 66600, 523,
+ 92642, 71100, 74436, 0, 0, 0, 8608, 83435, 72828, 128704, 0, 127402,
+ 11307, 66707, 67301, 67300, 67299, 0, 67304, 67303, 0, 0, 0, 0, 127212,
+ 5908, 0, 0, 6744, 67310, 1699, 67308, 67307, 67314, 67313, 6306, 67311,
+ 983207, 72150, 69862, 3766, 2389, 67305, 74569, 6611, 65700, 0, 0, 0,
+ 42386, 0, 0, 2599, 917972, 119131, 119049, 65717, 0, 0, 119654, 0, 0, 0,
+ 74203, 3760, 1718, 68160, 0, 3776, 7335, 0, 0, 67324, 69861, 0, 69792, 0,
+ 0, 3778, 0, 9462, 7824, 0, 78896, 3768, 68142, 765, 72822, 3764, 0, 0,
+ 113822, 129667, 12947, 0, 0, 0, 118806, 73753, 0, 0, 0, 6829, 5225,
+ 66901, 0, 0, 0, 0, 67319, 67318, 3162, 67316, 67323, 67322, 67321, 67320,
+ 0, 5353, 0, 74179, 67315, 0, 1010, 0, 0, 67326, 67325, 127870, 6952,
+ 67329, 67328, 67327, 2590, 120036, 65552, 120034, 120039, 7183, 120037,
+ 120038, 120027, 120028, 120025, 120026, 120031, 970, 120029, 74611,
+ 120019, 120020, 120017, 67330, 120023, 120024, 120021, 10961, 113693,
+ 11148, 0, 0, 0, 128448, 0, 113703, 64378, 0, 0, 0, 68821, 119649, 11358,
+ 71172, 69797, 0, 11065, 126464, 0, 68864, 0, 5694, 120839, 66784, 0,
+ 4325, 3047, 0, 43652, 120962, 93029, 69764, 0, 0, 0, 0, 5431, 6652, 0,
+ 67753, 71460, 0, 0, 0, 1129, 65016, 0, 65900, 1986, 7846, 0, 8661, 75058,
+ 0, 0, 3845, 0, 0, 0, 74400, 1456, 7530, 121382, 0, 0, 0, 0, 120016, 0, 0,
+ 0, 917863, 127772, 119966, 0, 11002, 7026, 8145, 68216, 0, 12138, 71464,
+ 0, 0, 0, 12323, 130033, 917869, 0, 0, 0, 92316, 68494, 0, 0, 129384, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 42205, 0, 236, 0, 78867, 0, 0, 113784, 0, 0,
+ 983982, 0, 0, 917865, 8097, 0, 0, 68012, 72820, 11194, 0, 72824, 0,
+ 127974, 0, 0, 110602, 129948, 10416, 68070, 3872, 127508, 0, 0, 0, 0,
+ 2838, 917867, 0, 917866, 119589, 0, 0, 0, 0, 11096, 83019, 10553, 83421,
+ 0, 0, 0, 0, 0, 0, 73742, 6436, 10096, 0, 0, 0, 113687, 0, 4463, 68018, 0,
+ 78074, 0, 983591, 7184, 0, 0, 0, 0, 0, 0, 93825, 12818, 12032, 0, 0, 0,
+ 0, 10357, 121418, 8170, 0, 8556, 0, 9659, 0, 0, 0, 9556, 0, 4503, 92700,
+ 9647, 64004, 78185, 0, 0, 64002, 78889, 0, 0, 118910, 0, 6438, 0, 9109,
+ 78884, 0, 64599, 0, 68009, 0, 0, 2447, 129863, 0, 0, 126545, 0, 119002,
+ 0, 0, 0, 19937, 0, 1322, 0, 119204, 254, 0, 0, 69392, 42425, 0, 0, 65204,
+ 42312, 0, 128519, 0, 42826, 0, 42464, 120567, 0, 67155, 74796, 64400,
+ 64693, 126212, 77861, 0, 0, 67154, 0, 0, 0, 68008, 11785, 0, 119142,
+ 41978, 0, 0, 43244, 10536, 0, 9901, 7103, 0, 7102, 71428, 120748, 3140,
+ 0, 0, 68007, 0, 67258, 10909, 0, 1428, 0, 67254, 67253, 7699, 12393,
+ 67257, 0, 67256, 67255, 0, 0, 69389, 0, 0, 0, 0, 0, 67153, 0, 0, 127383,
+ 69376, 64554, 0, 3878, 0, 42352, 1752, 0, 0, 42506, 0, 10199, 0, 983463,
+ 125231, 0, 0, 0, 720, 0, 0, 0, 68831, 0, 1464, 128339, 0, 7974, 0,
+ 125017, 68082, 0, 0, 0, 0, 74787, 0, 78864, 92258, 0, 0, 78863, 0, 1302,
+ 66288, 0, 0, 0, 67152, 0, 983611, 983618, 0, 0, 3995, 0, 65608, 3714, 0,
+ 0, 67262, 67261, 67260, 67259, 43251, 67264, 67263, 0, 120557, 92346,
+ 8672, 68006, 11964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92610, 0, 468, 0, 0,
+ 0, 983470, 0, 0, 128544, 129397, 65907, 983163, 0, 0, 0, 0, 0, 983468,
+ 41743, 0, 0, 0, 74880, 0, 121001, 820, 41741, 0, 120667, 0, 64684,
+ 126992, 128604, 126082, 69934, 65177, 6226, 353, 43645, 0, 119612,
+ 120738, 67700, 0, 0, 0, 0, 42457, 120276, 0, 120277, 1884, 129637, 42418,
+ 113678, 41157, 0, 42305, 120279, 0, 0, 41151, 0, 71430, 0, 42344, 0, 0,
+ 0, 42497, 0, 194870, 72754, 69933, 73703, 0, 42521, 8539, 128606, 0,
+ 123609, 69957, 4788, 0, 68023, 0, 0, 983053, 0, 0, 0, 0, 41590, 0,
+ 113754, 0, 0, 118901, 68637, 41136, 64351, 0, 128453, 41154, 113731,
+ 127038, 4038, 41143, 68232, 64859, 0, 129910, 0, 5435, 129911, 6734,
+ 41343, 127035, 0, 0, 41359, 66761, 0, 119835, 41349, 0, 129915, 10374,
+ 10310, 0, 0, 10254, 119836, 10278, 10262, 69858, 41363, 0, 0, 0, 119840,
+ 0, 41356, 10314, 10282, 0, 10378, 0, 40976, 10266, 0, 119848, 40975, 0,
+ 129554, 0, 40978, 0, 92945, 0, 0, 0, 119098, 119083, 0, 71437, 119854,
+ 69936, 0, 0, 3525, 6824, 0, 0, 119858, 128451, 0, 72239, 113738, 0,
+ 71424, 0, 0, 0, 0, 0, 10727, 7212, 129071, 71957, 0, 0, 0, 67156, 808,
+ 7207, 42387, 0, 0, 0, 0, 0, 0, 0, 0, 9225, 121149, 0, 9145, 128060,
+ 41018, 67841, 983158, 42300, 0, 3084, 983155, 125014, 41025, 6037, 0,
+ 194885, 0, 10290, 0, 3083, 10322, 111017, 129030, 0, 41036, 0, 0, 43321,
+ 65606, 0, 41032, 42388, 0, 64700, 0, 1445, 40961, 0, 0, 0, 40960, 0,
+ 67727, 0, 2223, 64952, 10402, 0, 0, 0, 10603, 0, 0, 71438, 0, 0, 0,
+ 128469, 0, 0, 0, 0, 0, 0, 42585, 65032, 10704, 65030, 4787, 0, 917556, 0,
+ 127015, 0, 128118, 0, 0, 9525, 0, 0, 68773, 0, 0, 0, 0, 40966, 0, 0,
+ 3998, 0, 0, 65919, 71433, 11792, 2690, 0, 42836, 127150, 41954, 194921,
+ 194923, 6737, 0, 64933, 126260, 3487, 194873, 71427, 72758, 65426, 72756,
+ 66757, 0, 0, 41976, 9720, 74964, 11179, 41970, 0, 12116, 65024, 0,
+ 127912, 9048, 65028, 65027, 65026, 65025, 64757, 0, 41488, 0, 8527, 0,
+ 126480, 0, 41480, 41053, 3266, 0, 194876, 12093, 41466, 122881, 78642,
+ 1519, 983906, 3638, 65887, 65429, 0, 0, 0, 0, 8633, 0, 0, 0, 125118, 0,
+ 70375, 0, 0, 6368, 128124, 0, 70369, 8078, 0, 0, 70373, 72876, 0, 7002,
+ 121003, 41430, 0, 41051, 41484, 0, 0, 41050, 8872, 0, 13099, 71445,
+ 70371, 0, 6435, 72154, 11362, 0, 0, 0, 0, 41420, 0, 3625, 74915, 41409,
+ 71441, 0, 0, 0, 9672, 0, 0, 43317, 0, 0, 0, 41424, 917598, 0, 0, 0, 0,
+ 41417, 1261, 0, 0, 12102, 119662, 41401, 0, 127538, 129518, 0, 124943,
+ 72765, 3275, 92472, 0, 0, 0, 0, 0, 0, 0, 0, 125129, 983140, 10598, 0,
+ 128633, 6711, 0, 2920, 0, 0, 0, 0, 19928, 0, 0, 3917, 0, 113756, 0, 0,
+ 66588, 128078, 0, 0, 113721, 113758, 983081, 0, 0, 41184, 0, 232, 0, 0,
+ 74170, 0, 0, 0, 0, 9094, 0, 0, 92585, 0, 1064, 0, 0, 10115, 0, 0, 0,
+ 7862, 0, 13224, 0, 0, 66650, 0, 0, 72877, 1878, 0, 71434, 2911, 0, 41178,
+ 5427, 0, 0, 0, 12617, 41174, 0, 67148, 67147, 0, 42413, 41167, 2406, 0,
+ 0, 0, 0, 0, 9618, 128668, 0, 0, 0, 0, 41436, 9337, 126067, 0, 41456, 0,
+ 119086, 11333, 0, 6703, 0, 125071, 1613, 0, 0, 0, 983191, 0, 0, 74500,
+ 41460, 78197, 0, 0, 194899, 67144, 65841, 0, 121109, 74064, 111146,
+ 111144, 120375, 0, 111122, 0, 111121, 64687, 111120, 42592, 3871, 0,
+ 128305, 9111, 111163, 0, 111156, 120366, 121462, 11150, 111154, 111175,
+ 111179, 0, 111168, 0, 120362, 41587, 70391, 0, 74322, 0, 194908, 111166,
+ 111133, 0, 71443, 194842, 0, 111151, 0, 0, 7928, 111127, 111140, 41595,
+ 0, 0, 65801, 983600, 0, 0, 0, 73712, 0, 41598, 3993, 121269, 1545, 40971,
+ 121286, 72874, 0, 0, 0, 120767, 65286, 0, 0, 0, 0, 0, 0, 0, 5402, 0, 0,
+ 74462, 73457, 0, 0, 78194, 64326, 40969, 0, 128110, 983684, 40968, 0,
+ 121139, 0, 0, 0, 0, 128513, 8020, 0, 41012, 0, 0, 65805, 41006, 0, 0,
+ 74605, 0, 118942, 43432, 0, 0, 92900, 0, 0, 68671, 120687, 0, 92958, 0,
+ 0, 68332, 0, 40992, 0, 0, 0, 0, 0, 42235, 0, 1741, 42370, 0, 0, 0, 11413,
+ 126583, 0, 0, 128769, 6470, 0, 74517, 0, 0, 120651, 40984, 0, 42742, 0,
+ 12916, 6284, 0, 41663, 0, 0, 68313, 72840, 70164, 41648, 0, 0, 2299,
+ 41666, 0, 0, 2056, 41656, 0, 0, 71917, 42219, 0, 0, 78112, 41676, 0, 0,
+ 0, 41670, 0, 92590, 2796, 0, 0, 9902, 0, 67988, 64785, 82995, 128822,
+ 42631, 983040, 71890, 0, 74164, 41238, 10049, 11405, 0, 64368, 0, 120925,
+ 0, 397, 12299, 42139, 0, 9590, 0, 0, 43661, 43819, 0, 6651, 3544, 0, 0,
+ 9620, 0, 0, 0, 92229, 1333, 7104, 0, 6425, 0, 0, 0, 0, 0, 0, 11976, 8554,
+ 13055, 0, 110733, 0, 110731, 41218, 0, 0, 128673, 1883, 0, 0, 70443,
+ 41225, 70788, 42419, 983688, 129450, 0, 127896, 0, 65809, 11837, 0,
+ 129104, 7141, 0, 0, 0, 0, 0, 42363, 0, 0, 0, 0, 69949, 119157, 64732, 0,
+ 0, 126983, 0, 0, 983678, 7140, 42051, 0, 4164, 118799, 0, 120569, 42049,
+ 42042, 0, 0, 0, 120637, 69938, 0, 42047, 0, 0, 8470, 11807, 128935, 0, 0,
+ 194825, 74300, 126267, 0, 120517, 0, 0, 0, 0, 8736, 0, 42643, 72753,
+ 129925, 0, 0, 71432, 0, 93023, 110730, 72869, 110728, 0, 0, 0, 0, 68445,
+ 0, 0, 2106, 0, 11273, 120986, 43004, 0, 82988, 0, 961, 64307, 0, 0, 0,
+ 67711, 110615, 0, 1696, 0, 9762, 12105, 0, 110622, 110623, 3264, 110621,
+ 110618, 43003, 110616, 110617, 0, 120359, 0, 128660, 0, 2322, 0, 70831,
+ 11449, 128187, 42868, 0, 0, 0, 0, 113746, 983234, 0, 129583, 66398, 0, 0,
+ 0, 0, 0, 111135, 119224, 0, 0, 64421, 0, 113739, 0, 65823, 0, 11182, 0,
+ 0, 0, 7766, 55268, 0, 4598, 0, 65839, 0, 0, 0, 10851, 0, 6179, 92602,
+ 6180, 129524, 11952, 0, 78648, 78651, 78646, 78647, 78644, 78645, 3801,
+ 78643, 6176, 120580, 0, 0, 6177, 0, 78652, 78653, 6178, 0, 0, 0, 0, 2214,
+ 8754, 0, 0, 2137, 0, 0, 0, 0, 66889, 0, 0, 0, 8974, 2308, 0, 74579, 0,
+ 2318, 122920, 0, 8198, 0, 0, 0, 74307, 0, 119524, 0, 0, 6970, 0, 0, 0,
+ 41159, 0, 120363, 6385, 0, 128403, 0, 0, 126258, 0, 72785, 42053, 2075,
+ 42057, 0, 42052, 0, 0, 67651, 0, 9665, 0, 0, 13181, 0, 0, 69379, 0, 0, 0,
+ 0, 73010, 0, 0, 0, 41145, 0, 0, 0, 41148, 0, 7594, 113686, 75033, 119090,
+ 10869, 43458, 41146, 0, 0, 121456, 917630, 0, 0, 0, 0, 0, 65184, 11780,
+ 0, 42796, 0, 69742, 0, 65146, 66803, 0, 0, 0, 7358, 78241, 0, 7988,
+ 101371, 101370, 3271, 101372, 0, 69281, 0, 0, 0, 101369, 13070, 113736,
+ 42044, 101365, 1095, 101367, 3599, 101361, 101364, 101157, 129087, 66390,
+ 101360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42043, 43232, 67656, 121014, 42046,
+ 64355, 4036, 123601, 0, 0, 983062, 0, 11954, 0, 41191, 12986, 0, 194854,
+ 65441, 0, 72202, 0, 129338, 0, 101353, 101352, 12834, 0, 101349, 101348,
+ 101351, 101350, 101345, 101344, 41190, 101346, 129693, 4575, 41193, 0,
+ 429, 119174, 124931, 194859, 0, 65792, 128754, 78509, 0, 128866, 0, 0, 0,
+ 66786, 0, 194862, 10590, 0, 0, 0, 0, 0, 0, 6247, 10214, 65126, 68253, 0,
+ 0, 0, 983680, 1617, 8050, 0, 0, 0, 101358, 101357, 0, 101359, 101354, 0,
+ 101356, 6352, 0, 0, 0, 0, 0, 0, 0, 0, 92335, 0, 0, 42926, 0, 0, 0, 8689,
+ 78750, 70067, 42896, 74147, 3559, 101327, 0, 74526, 65850, 12327, 72763,
+ 101325, 0, 0, 72761, 0, 78903, 0, 0, 0, 0, 70079, 72751, 0, 12153,
+ 101340, 101343, 101342, 71940, 0, 101339, 101338, 0, 0, 681, 129406, 703,
+ 101335, 3272, 101337, 101332, 70077, 101334, 101333, 70514, 78902, 92532,
+ 71436, 42238, 124930, 3276, 0, 101311, 65928, 0, 0, 101307, 101306,
+ 101309, 101308, 78813, 78814, 3262, 78811, 42711, 101305, 0, 0, 101302,
+ 92746, 9995, 1655, 70131, 78818, 78815, 12479, 0, 0, 101296, 70513,
+ 42797, 0, 0, 128371, 43112, 101318, 43488, 101320, 101315, 101314, 42684,
+ 101316, 0, 0, 101313, 101312, 128308, 0, 0, 0, 0, 0, 0, 11031, 0, 0, 0,
+ 70386, 10348, 10412, 0, 0, 74329, 0, 0, 0, 101285, 101284, 101287,
+ 101286, 8810, 101280, 686, 101282, 0, 0, 0, 0, 110709, 0, 0, 12040, 0, 0,
+ 65118, 110704, 0, 118891, 110599, 0, 110598, 0, 120543, 983660, 0, 65455,
+ 74413, 94097, 0, 119129, 0, 0, 0, 78776, 0, 64467, 10300, 10161, 10396,
+ 0, 0, 0, 0, 78773, 101294, 101293, 0, 1458, 101290, 0, 72429, 65120,
+ 11479, 0, 0, 6350, 101289, 101288, 71473, 1061, 69787, 9115, 43111, 0, 0,
+ 0, 0, 983960, 0, 120907, 1045, 0, 73913, 983564, 0, 0, 0, 0, 0, 0, 8486,
+ 0, 0, 0, 4362, 0, 0, 93054, 1025, 0, 0, 0, 0, 0, 92328, 128206, 0, 1774,
+ 0, 122913, 0, 0, 0, 11207, 0, 0, 3988, 0, 0, 983048, 0, 0, 8564, 983958,
+ 0, 0, 0, 0, 0, 0, 66513, 6256, 0, 579, 55218, 0, 0, 0, 127337, 0, 11814,
+ 0, 4488, 128716, 127336, 0, 10444, 118846, 78238, 0, 0, 127331, 4487,
+ 127849, 42832, 1032, 0, 43450, 0, 70155, 0, 614, 0, 127325, 0, 0, 128466,
+ 0, 127323, 0, 127322, 0, 0, 0, 1050, 7549, 127319, 0, 9314, 0, 0, 0, 0,
+ 0, 70434, 127314, 12527, 66504, 0, 0, 0, 0, 64333, 127312, 128547, 92594,
+ 0, 0, 0, 129316, 0, 124960, 10360, 6746, 0, 0, 0, 0, 13085, 9233, 0, 0,
+ 0, 0, 0, 0, 92766, 0, 121114, 983925, 74212, 42819, 10910, 0, 68044,
+ 9896, 0, 0, 120915, 0, 0, 7970, 0, 0, 0, 0, 113699, 9849, 0, 122910, 0,
+ 0, 10487, 69714, 0, 10103, 0, 4769, 0, 129967, 0, 2283, 0, 0, 74785, 0,
+ 0, 0, 110595, 110596, 0, 110594, 64565, 4773, 0, 0, 0, 4770, 0, 0, 0,
+ 65457, 69441, 0, 0, 127338, 983593, 4774, 0, 68497, 2259, 0, 0, 10215, 0,
+ 0, 0, 0, 0, 74776, 92160, 4768, 0, 0, 4099, 0, 110699, 110700, 110697,
+ 2225, 0, 0, 0, 0, 125217, 11255, 42814, 880, 0, 0, 0, 0, 0, 67756, 65246,
+ 0, 0, 129463, 7095, 0, 0, 0, 0, 0, 0, 2427, 0, 7093, 0, 11585, 0, 9962,
+ 0, 12223, 0, 78211, 1434, 42939, 0, 11573, 0, 0, 0, 121257, 0, 0, 0, 0,
+ 74437, 0, 113711, 917596, 0, 8740, 0, 3782, 64331, 0, 65167, 1014, 0, 0,
+ 0, 10835, 129987, 0, 0, 0, 0, 0, 118824, 7302, 0, 67707, 0, 1150, 10547,
+ 0, 0, 68427, 0, 0, 0, 0, 118788, 0, 0, 0, 42257, 8010, 0, 0, 0, 9643, 0,
+ 0, 12864, 0, 0, 0, 0, 0, 0, 0, 0, 1426, 68217, 0, 68447, 129971, 0, 0, 0,
+ 73701, 0, 0, 0, 65383, 0, 0, 0, 0, 0, 0, 43196, 43194, 92549, 10744, 0,
+ 990, 93772, 0, 0, 0, 0, 0, 66470, 0, 0, 0, 3945, 0, 0, 0, 130039, 0,
+ 127546, 127746, 1020, 73763, 92257, 0, 0, 64748, 0, 0, 10205, 0, 0,
+ 10016, 0, 74051, 0, 43242, 125096, 2667, 0, 125037, 0, 9911, 0, 0, 10097,
+ 0, 0, 0, 118836, 0, 0, 0, 0, 68889, 10159, 113759, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 983338, 92291, 0, 127973, 72882, 0, 1041, 127182, 6354, 0, 65364,
+ 0, 0, 0, 72884, 0, 128477, 0, 65906, 127819, 72883, 0, 128470, 5375,
+ 72881, 0, 8215, 0, 10074, 0, 0, 0, 69899, 0, 0, 121426, 41382, 0, 0,
+ 5173, 65348, 527, 0, 0, 0, 128250, 0, 0, 0, 0, 0, 0, 42695, 0, 42250, 0,
+ 11187, 113695, 0, 1568, 66806, 0, 0, 113705, 0, 0, 129487, 0, 0, 128839,
+ 9069, 6144, 0, 0, 0, 0, 66783, 0, 74027, 118934, 66787, 74580, 0, 110790,
+ 6364, 0, 66794, 43508, 0, 92612, 0, 0, 0, 0, 128405, 66449, 0, 0, 0, 0,
+ 70714, 0, 70716, 0, 1044, 42411, 0, 0, 0, 0, 43239, 0, 0, 0, 0, 42450, 0,
+ 0, 68479, 119237, 0, 0, 0, 0, 0, 69956, 11537, 0, 121206, 0, 0, 0, 0,
+ 1057, 566, 0, 0, 10907, 42274, 43464, 0, 0, 0, 78472, 71207, 42636, 0,
+ 123603, 0, 0, 121171, 64659, 0, 127749, 0, 6357, 6362, 0, 0, 2216, 9090,
+ 0, 0, 0, 0, 68227, 0, 0, 0, 0, 1053, 12830, 0, 0, 0, 1052, 1051, 459,
+ 1060, 0, 66479, 0, 0, 0, 128061, 42490, 689, 6508, 4163, 42298, 8639,
+ 983333, 4246, 0, 43514, 42362, 0, 42337, 64596, 0, 0, 0, 0, 0, 6359, 0,
+ 43471, 0, 0, 0, 127274, 0, 6358, 6361, 1926, 6356, 0, 7898, 0, 10935, 0,
+ 127972, 121285, 0, 43685, 0, 0, 42910, 0, 8693, 0, 0, 44010, 0, 120991,
+ 121454, 0, 0, 0, 0, 129514, 0, 0, 0, 0, 73947, 0, 129361, 92412, 0,
+ 66477, 0, 0, 0, 43854, 71913, 0, 0, 0, 0, 72227, 65899, 92275, 0, 0, 0,
+ 68887, 0, 71057, 0, 0, 0, 0, 119183, 2923, 10853, 0, 0, 0, 0, 72864, 0,
+ 72773, 72772, 0, 120801, 65251, 0, 68228, 0, 128548, 0, 0, 5370, 70465,
+ 2931, 73848, 0, 10188, 0, 118848, 0, 983923, 0, 0, 0, 72212, 0, 10844,
+ 121016, 128195, 92424, 0, 0, 0, 286, 0, 1062, 0, 0, 0, 7395, 0, 1070,
+ 128993, 0, 6095, 0, 0, 0, 127796, 126465, 64497, 0, 0, 0, 0, 70054, 8189,
+ 78272, 0, 0, 0, 0, 0, 113783, 42102, 78276, 0, 0, 42101, 0, 78402, 67427,
+ 33, 67425, 67424, 10824, 67430, 67429, 67428, 427, 64723, 0, 0, 0, 0,
+ 1031, 0, 0, 42104, 0, 0, 2328, 0, 1071, 42899, 128486, 0, 7673, 0, 0,
+ 1047, 0, 0, 42908, 0, 0, 10651, 0, 0, 0, 72433, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 13216, 0, 69716, 0, 0, 0, 0, 0, 92411, 69654, 0, 0, 129904,
+ 2761, 129909, 0, 0, 0, 0, 8643, 0, 0, 94021, 2757, 11067, 0, 74498, 8910,
+ 10689, 0, 0, 0, 71173, 0, 9196, 71214, 0, 0, 0, 0, 118911, 0, 0, 0, 0, 0,
+ 0, 0, 0, 68130, 119616, 0, 0, 42477, 0, 0, 4495, 0, 0, 0, 0, 70080,
+ 10992, 0, 0, 0, 0, 9318, 0, 6002, 0, 73808, 0, 92601, 42249, 7639, 43995,
+ 0, 0, 5454, 0, 0, 0, 0, 0, 0, 0, 121189, 0, 119173, 0, 9704, 120686, 0,
+ 78436, 78435, 11204, 0, 0, 1731, 0, 92937, 0, 67990, 0, 0, 0, 126576,
+ 127018, 71951, 55265, 0, 0, 0, 0, 127257, 73826, 0, 3840, 0, 41432, 0, 0,
+ 68430, 0, 43253, 128284, 0, 3371, 92936, 0, 0, 1479, 69282, 0, 1109,
+ 77997, 0, 129154, 0, 92782, 0, 0, 8868, 399, 67978, 74842, 0, 0, 194839,
+ 0, 551, 0, 10156, 0, 92572, 0, 2544, 65074, 0, 0, 0, 0, 0, 0, 0, 128713,
+ 0, 0, 74268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68045, 0, 0, 0, 3447, 0, 0,
+ 121414, 2549, 110818, 0, 0, 43564, 8946, 0, 74411, 66864, 0, 70480, 7980,
+ 0, 113698, 0, 119653, 66489, 0, 64695, 128063, 0, 0, 0, 0, 0, 0, 43452,
+ 0, 92993, 0, 10919, 0, 67810, 0, 0, 0, 0, 6450, 10055, 0, 0, 0, 0, 42720,
+ 0, 9626, 0, 128055, 74447, 0, 125127, 92573, 0, 0, 0, 119075, 0, 0,
+ 66486, 0, 0, 0, 0, 0, 0, 75028, 983864, 74839, 0, 0, 0, 0, 0, 55286, 0,
+ 1055, 917628, 0, 0, 0, 70516, 12146, 0, 73956, 66488, 0, 0, 0, 0, 0, 0,
+ 42518, 0, 0, 0, 7407, 74978, 0, 0, 0, 0, 0, 0, 0, 10231, 0, 66626, 0, 0,
+ 92951, 0, 65927, 0, 0, 69696, 0, 92389, 0, 0, 0, 68095, 92950, 0, 10555,
+ 0, 0, 9091, 10798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43222, 0, 74982, 0, 0,
+ 120952, 0, 0, 2992, 7826, 74321, 0, 125103, 74981, 92628, 0, 129903,
+ 128289, 128203, 4361, 129597, 1306, 78770, 1497, 983628, 0, 0, 0, 8248,
+ 0, 127253, 7973, 128706, 0, 0, 73122, 983930, 0, 0, 2963, 120653, 0,
+ 128554, 0, 0, 64258, 0, 0, 69677, 74983, 65103, 0, 125008, 42625, 0,
+ 72022, 0, 0, 64905, 0, 9512, 0, 119076, 6443, 983262, 0, 9135, 0, 0,
+ 123202, 0, 0, 983863, 93788, 0, 0, 0, 93767, 64256, 0, 11669, 0, 0, 4524,
0, 129182, 128390, 0, 74266, 0, 0, 0, 70119, 78410, 69809, 121031, 55219,
69815, 93765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2986, 0, 93763, 3437, 0,
- 6203, 4247, 0, 11920, 8274, 68240, 129694, 1657, 0, 121276, 0, 0, 2954,
- 43506, 42837, 0, 0, 71179, 0, 0, 0, 66476, 68450, 0, 0, 0, 43362, 983134,
- 129596, 11705, 0, 0, 0, 127354, 0, 11710, 0, 0, 0, 0, 74429, 0, 0, 1058,
- 129555, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 118972, 0, 65322, 0, 6441, 0, 0,
- 2547, 66484, 43634, 0, 5871, 0, 0, 0, 0, 0, 0, 71204, 0, 0, 1865, 0, 0,
- 69950, 0, 93021, 73713, 0, 71199, 65826, 2069, 0, 119092, 43999, 2997, 0,
- 126588, 0, 65319, 0, 12316, 0, 0, 123630, 8776, 0, 0, 66294, 13130, 0,
- 71191, 126625, 0, 10030, 11709, 12364, 983834, 0, 11704, 0, 0, 68672, 0,
- 0, 0, 0, 11706, 9710, 0, 82985, 0, 413, 65623, 0, 0, 0, 74446, 0, 1042,
- 0, 128378, 12171, 119240, 0, 69384, 4984, 0, 708, 11391, 0, 0, 0, 983911,
- 1308, 0, 3673, 810, 0, 120933, 0, 0, 0, 1917, 3000, 0, 0, 0, 65628,
- 66387, 74470, 0, 0, 0, 10027, 0, 0, 0, 0, 128831, 983167, 2980, 755, 0,
- 0, 65622, 0, 121012, 7277, 121022, 0, 0, 0, 0, 8730, 0, 0, 0, 7274,
- 119250, 0, 7275, 0, 935, 0, 0, 377, 42325, 121103, 0, 101133, 101132,
- 101135, 101134, 0, 74911, 2417, 101130, 0, 19912, 0, 0, 101128, 101127,
- 0, 101129, 101124, 7248, 101126, 101125, 1781, 5496, 3627, 62, 1649, 0,
- 964, 0, 0, 0, 0, 92897, 0, 0, 127364, 0, 43689, 127911, 66287, 78812,
- 64389, 66575, 0, 73041, 0, 129687, 0, 7677, 2991, 0, 0, 0, 0, 72201, 0,
- 11341, 127049, 0, 65625, 9714, 11692, 0, 0, 120850, 6478, 10195, 43673,
- 65237, 6241, 0, 0, 0, 6238, 0, 129889, 0, 4409, 0, 0, 67170, 0, 0, 0,
- 94047, 6237, 5461, 66851, 9176, 92882, 121341, 65231, 0, 0, 121182,
- 128468, 0, 44018, 0, 64765, 0, 0, 0, 5685, 0, 2461, 0, 7091, 0, 0, 0,
- 68163, 0, 73030, 0, 0, 73928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68506, 0, 0, 0,
- 0, 0, 2542, 0, 0, 0, 128176, 5776, 0, 0, 0, 0, 0, 11987, 0, 0, 75036,
- 68744, 0, 0, 10039, 42828, 0, 0, 0, 0, 0, 10721, 67664, 43433, 0, 0,
- 41875, 0, 41870, 266, 129066, 0, 41873, 71271, 0, 0, 0, 0, 0, 0, 41871,
- 66186, 3734, 7734, 43683, 8750, 110600, 66011, 92899, 0, 127937, 0, 0,
- 10572, 0, 42906, 0, 64349, 7287, 0, 0, 0, 0, 11167, 69220, 0, 43429, 0,
- 1697, 0, 0, 68633, 7286, 0, 128738, 10031, 78754, 0, 68645, 8620, 0,
- 42162, 0, 0, 7285, 0, 119577, 0, 66842, 43677, 41583, 0, 65799, 129332,
- 0, 0, 0, 0, 110806, 0, 3609, 0, 129448, 119074, 125116, 126254, 128108,
- 73948, 0, 0, 0, 0, 129189, 42732, 92699, 74984, 68620, 11691, 74985, 0,
- 0, 0, 0, 0, 6348, 243, 74075, 0, 0, 92309, 123585, 0, 0, 10648, 8538,
- 43687, 0, 0, 0, 70515, 0, 118954, 92886, 13307, 129573, 92891, 0, 120770,
- 983831, 0, 0, 0, 0, 214, 0, 0, 0, 65893, 0, 120488, 128386, 0, 92893, 0,
- 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 1016, 0, 0, 0, 3885, 92,
- 65456, 64608, 0, 0, 0, 70656, 113742, 0, 0, 0, 128128, 983838, 0, 0,
- 6791, 983842, 127960, 0, 0, 0, 118976, 0, 7328, 92358, 0, 7995, 8759,
- 43421, 0, 68029, 0, 0, 125272, 0, 3197, 0, 0, 0, 983150, 0, 11595, 0, 0,
- 43435, 0, 0, 0, 0, 0, 70660, 0, 741, 83291, 5494, 0, 70668, 1990, 11107,
- 4498, 0, 0, 70658, 0, 0, 2960, 73779, 0, 8969, 101256, 43424, 0, 101257,
- 2950, 101251, 101254, 101253, 370, 0, 101250, 101249, 0, 0, 0, 0, 0, 0,
- 0, 122900, 0, 0, 983251, 0, 2964, 43663, 0, 6344, 0, 0, 10144, 0, 8252,
- 729, 66016, 78446, 0, 0, 0, 78740, 43669, 9032, 0, 0, 0, 0, 0, 0, 0, 0,
- 74612, 3761, 101261, 101260, 101263, 101262, 0, 0, 3850, 101258, 0,
- 128389, 0, 0, 0, 0, 8611, 0, 0, 0, 43691, 125032, 0, 41802, 120540, 0, 0,
- 0, 0, 0, 3848, 101230, 113800, 127536, 101227, 101226, 101229, 101228,
- 663, 0, 0, 0, 0, 0, 0, 0, 0, 13221, 0, 0, 101244, 101243, 101246, 101245,
- 0, 65579, 12980, 68046, 12143, 0, 128067, 0, 43441, 41804, 101241,
- 101240, 101235, 101234, 101237, 101236, 66329, 0, 72324, 101232, 0,
- 125038, 0, 129383, 101214, 101213, 0, 101215, 101210, 0, 101212, 101211,
- 0, 1097, 129033, 0, 101209, 101208, 93828, 0, 101205, 101204, 101207,
- 101206, 101201, 101200, 101203, 101202, 0, 13110, 0, 983867, 68229, 1000,
- 0, 0, 101222, 1209, 101224, 101223, 92354, 1073, 6321, 77878, 0, 0,
- 68213, 0, 12167, 0, 0, 0, 0, 73673, 121500, 0, 121501, 0, 6587, 0, 0, 0,
- 9231, 0, 2959, 101191, 0, 101193, 101188, 101187, 101190, 101189, 101184,
- 0, 101186, 42941, 0, 0, 68434, 0, 70742, 0, 0, 12290, 0, 0, 110801, 0,
- 77873, 8205, 110803, 5131, 0, 0, 0, 0, 0, 0, 1944, 78453, 0, 0, 119990,
- 119991, 12701, 78492, 11308, 119995, 0, 113702, 66836, 119999, 74263,
- 92382, 120002, 120003, 7075, 101196, 101199, 101198, 41817, 75063, 42275,
- 101194, 120012, 120013, 120014, 42943, 6041, 0, 41899, 0, 8002, 0, 41902,
- 0, 0, 64332, 0, 7813, 119117, 0, 41900, 120633, 101167, 7281, 78455,
- 7279, 12041, 93027, 101165, 12673, 0, 129123, 9660, 0, 72984, 101161, 0,
- 0, 0, 92901, 2970, 0, 101180, 101179, 77870, 101181, 0, 0, 101178, 0, 0,
- 0, 0, 0, 3486, 101174, 101177, 101176, 101171, 101170, 101173, 101172, 0,
- 69920, 101169, 66834, 0, 983987, 0, 68312, 101150, 65673, 1019, 78495,
- 4148, 0, 12289, 101147, 4316, 0, 13119, 983913, 101145, 101144, 0, 0,
- 101141, 101140, 43434, 41865, 101137, 9163, 8659, 9072, 5867, 13302,
- 7622, 7120, 0, 0, 0, 0, 7400, 5416, 101160, 101159, 10817, 101153,
- 101156, 101155, 0, 68162, 41855, 41867, 0, 983224, 0, 11536, 71988, 0,
- 7115, 0, 0, 5498, 7337, 41536, 0, 0, 92587, 7221, 8997, 0, 0, 0, 71949,
- 0, 0, 127814, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 121292, 0, 43454, 63903,
- 63902, 63901, 0, 3971, 0, 0, 2952, 0, 11038, 10901, 63900, 63899, 63898,
- 5198, 667, 43273, 63887, 63886, 128458, 78521, 66830, 0, 92714, 4159, 0,
- 0, 63885, 63884, 63883, 63882, 63880, 8555, 63878, 63877, 93057, 0, 0,
- 63881, 10746, 0, 118983, 0, 63876, 63875, 63874, 63873, 7432, 1913,
- 41913, 63852, 0, 128971, 0, 983875, 0, 446, 41911, 0, 63851, 63850,
- 41910, 0, 63846, 2972, 63844, 7262, 0, 63849, 63848, 63847, 72990, 6570,
- 0, 7259, 63842, 4178, 63840, 121321, 41521, 63894, 63893, 63892, 0, 0,
- 1105, 4180, 0, 7418, 0, 129714, 63891, 63890, 63889, 63888, 0, 0, 0, 0,
- 1678, 0, 66909, 0, 0, 0, 0, 11192, 128360, 128404, 9159, 70089, 63861,
- 63860, 63859, 63858, 63865, 1615, 63863, 63862, 0, 0, 0, 0, 63857, 63856,
- 71902, 0, 1077, 0, 65099, 0, 0, 0, 0, 0, 0, 42773, 121331, 0, 0, 119220,
- 120912, 129564, 0, 1112, 119122, 8686, 120654, 0, 65081, 0, 0, 0, 11077,
- 0, 7260, 0, 5327, 0, 63870, 63869, 3847, 63867, 0, 2903, 0, 3001, 66762,
- 0, 43746, 0, 63866, 0, 0, 0, 0, 0, 127785, 68420, 2990, 0, 128254, 0, 0,
- 0, 0, 1117, 118987, 12212, 129003, 129151, 63836, 63835, 63834, 0, 0,
- 63839, 63838, 63837, 0, 125095, 63833, 6042, 66360, 0, 74808, 0, 63821,
- 63820, 63819, 63818, 0, 0, 9047, 63822, 128328, 6091, 0, 10691, 0, 74344,
- 8226, 0, 63812, 63811, 63810, 63809, 2289, 63815, 63814, 63813, 6047, 0,
- 0, 780, 63808, 77925, 77922, 65147, 63931, 63930, 2076, 1093, 9882,
- 63934, 2082, 63932, 75050, 63929, 63928, 63927, 77934, 9806, 65566,
- 77933, 63922, 63921, 2086, 0, 63926, 2984, 5968, 63923, 0, 0, 129458,
- 11137, 13169, 5290, 2089, 0, 63827, 1088, 63825, 7268, 1084, 1085, 63829,
- 1083, 10131, 7283, 0, 0, 0, 1092, 0, 7273, 983272, 44016, 43627, 0, 0, 0,
- 11809, 0, 0, 0, 2965, 7258, 8808, 0, 1089, 7278, 63937, 63936, 43405,
- 11106, 940, 5787, 10099, 63938, 101269, 63897, 101271, 2994, 101265,
- 101264, 101267, 101266, 77939, 77940, 77937, 77938, 74343, 93043, 72704,
- 660, 10127, 666, 0, 5532, 43667, 5533, 77941, 0, 0, 0, 979, 0, 0, 72706,
- 92652, 9108, 0, 128374, 129403, 63951, 71685, 0, 0, 128782, 63946, 1707,
- 983824, 128612, 63950, 63949, 63948, 63947, 63945, 6038, 63943, 63942,
- 101274, 0, 101276, 101275, 0, 0, 0, 0, 0, 0, 73884, 0, 1690, 63919,
- 63918, 63917, 70865, 43659, 0, 983829, 0, 2054, 0, 78515, 63916, 9184,
- 63914, 69737, 63911, 63910, 63909, 63908, 0, 0, 63913, 6044, 0, 0, 9061,
- 5534, 10672, 11653, 124932, 5531, 101501, 101500, 101503, 101502, 0, 0,
- 11957, 101498, 68668, 0, 0, 0, 10474, 43426, 0, 42354, 101492, 101491,
- 101494, 101493, 101488, 8413, 66841, 101489, 7269, 7272, 0, 0, 101471,
- 101470, 78460, 0, 101467, 101466, 101469, 101468, 0, 0, 0, 66840, 0,
- 101465, 128441, 0, 101462, 101461, 92187, 7270, 101458, 101457, 6628,
- 1076, 128700, 0, 101456, 0, 0, 0, 0, 12807, 43413, 63906, 4548, 63904,
- 71187, 70393, 41729, 44005, 1307, 0, 101473, 101472, 0, 0, 128268, 0,
- 8180, 0, 127778, 0, 0, 5413, 43681, 123205, 3493, 0, 0, 0, 92544, 73937,
- 10517, 0, 4518, 10990, 101447, 5167, 4481, 3771, 101443, 2710, 0, 66277,
- 0, 0, 43073, 0, 0, 0, 0, 0, 0, 119659, 1628, 0, 0, 0, 65262, 66809,
- 10783, 11172, 0, 0, 70840, 113679, 0, 119029, 0, 0, 41530, 66843, 4457,
- 0, 0, 0, 0, 0, 41529, 0, 0, 6031, 65807, 70814, 0, 101455, 71984, 69705,
- 101452, 101451, 11926, 6033, 9656, 0, 0, 0, 68869, 0, 128930, 0, 128100,
- 0, 42612, 43655, 0, 0, 0, 66468, 0, 0, 68623, 101423, 0, 0, 101420,
- 101419, 101422, 101421, 0, 1151, 101418, 73709, 127544, 0, 71106, 0, 0,
- 0, 0, 0, 101437, 101436, 11527, 101438, 0, 0, 11538, 101434, 0, 11020, 0,
- 66467, 101432, 8087, 71700, 101433, 9894, 101427, 101430, 70824, 101424,
- 0, 78513, 8053, 0, 0, 0, 0, 101407, 101406, 0, 63845, 101403, 101402,
- 78602, 101404, 13084, 70170, 8741, 0, 0, 101401, 0, 64605, 83051, 101397,
- 473, 43415, 101394, 101393, 101396, 1087, 124966, 71275, 101392, 0,
- 66439, 43218, 0, 0, 7237, 101414, 101417, 101416, 71996, 101410, 92261,
- 101412, 121036, 4384, 74220, 101408, 2058, 917561, 0, 129462, 0, 0, 0,
- 3857, 0, 0, 0, 64630, 0, 0, 74168, 0, 125088, 4421, 0, 0, 101381, 66400,
- 101383, 68431, 101377, 101376, 101379, 83053, 0, 0, 69640, 127861, 0,
- 437, 0, 0, 0, 0, 65236, 13290, 119180, 4997, 64306, 0, 0, 4999, 0, 0, 0,
- 4711, 120769, 0, 2739, 0, 92915, 74834, 0, 127175, 0, 0, 0, 0, 0, 1779,
- 6600, 6601, 0, 5325, 101390, 101389, 13058, 101391, 101386, 0, 92186,
- 101387, 71845, 10575, 43399, 0, 101385, 101384, 1104, 0, 0, 10655, 0, 0,
- 0, 0, 1082, 110878, 0, 67401, 0, 0, 0, 0, 6783, 0, 0, 42867, 69655,
- 44021, 6458, 0, 0, 0, 0, 0, 0, 1273, 43407, 0, 0, 0, 0, 1313, 6322,
- 41720, 128627, 66433, 0, 0, 0, 11216, 0, 0, 0, 43437, 93833, 0, 0, 0,
- 5122, 0, 72728, 129520, 70161, 0, 0, 0, 0, 0, 8303, 0, 128926, 0, 10003,
- 0, 0, 0, 1686, 0, 0, 42834, 3664, 0, 126088, 121346, 0, 0, 4324, 126, 0,
- 0, 0, 0, 0, 65166, 0, 0, 0, 0, 43817, 0, 43822, 0, 0, 65600, 13002, 0, 0,
- 0, 1103, 0, 119575, 129452, 0, 13078, 0, 8116, 0, 2050, 0, 0, 1102, 0,
- 6555, 0, 0, 74003, 74794, 0, 0, 42591, 127278, 0, 1111, 0, 75047, 4707,
- 0, 0, 0, 0, 43468, 4522, 8645, 0, 74857, 0, 11352, 0, 0, 0, 2293, 0, 0,
- 0, 128265, 71709, 0, 0, 0, 93827, 0, 0, 0, 128488, 0, 160, 2677, 0, 0,
- 120141, 0, 0, 70790, 0, 42770, 0, 71986, 0, 43821, 113769, 0, 0, 43816,
- 0, 0, 1079, 3867, 64817, 0, 0, 0, 0, 64768, 0, 0, 4005, 983211, 0, 10991,
- 0, 92957, 917578, 917581, 917580, 917575, 128314, 917577, 917576, 917571,
- 78534, 917573, 917572, 0, 0, 128359, 73458, 0, 3339, 11448, 1106, 917591,
- 917590, 917593, 3340, 917587, 917586, 917589, 917588, 917583, 10605,
- 1309, 74996, 120743, 92650, 0, 0, 9485, 0, 0, 0, 0, 0, 125002, 92533,
- 128487, 0, 129285, 4338, 11238, 0, 66825, 0, 0, 0, 0, 0, 0, 74128, 0, 0,
- 73680, 0, 129438, 9553, 1590, 63777, 63776, 128677, 63782, 63781, 63780,
- 63779, 1583, 101525, 101528, 101527, 101522, 101521, 101524, 101523,
- 41522, 0, 92168, 983784, 66759, 0, 983580, 0, 0, 0, 0, 11394, 0, 983071,
- 0, 66823, 1334, 0, 4479, 0, 0, 120663, 0, 122883, 10497, 0, 0, 983777,
- 66828, 0, 0, 0, 6809, 63786, 0, 0, 63791, 63790, 1145, 63788, 101535,
- 63785, 63784, 63783, 10192, 65267, 101533, 101532, 8928, 0, 0, 0, 0, 0,
- 74216, 66805, 0, 0, 63759, 63758, 3523, 1074, 0, 121340, 74077, 0, 0, 0,
- 63757, 43145, 63755, 63754, 63752, 1349, 63750, 63749, 0, 0, 0, 63753,
- 63802, 41084, 72784, 0, 41930, 63805, 63804, 11140, 63801, 41082, 43843,
- 42787, 101514, 0, 101516, 101515, 63793, 63792, 0, 128241, 10201, 12238,
- 63795, 42358, 92394, 43862, 101511, 101510, 41932, 66826, 101507, 101506,
- 0, 121136, 0, 7950, 63772, 63771, 63770, 0, 63767, 63766, 2793, 63764, 0,
- 128501, 63769, 9530, 0, 92398, 0, 128642, 63763, 63762, 4595, 63760, 792,
- 0, 0, 0, 8742, 0, 0, 0, 63744, 0, 0, 120815, 63748, 63747, 63746, 63745,
- 5055, 0, 0, 1090, 0, 125268, 11665, 127809, 4558, 0, 72211, 0, 0, 0,
- 11513, 0, 6157, 63775, 63774, 63773, 0, 12170, 9067, 0, 0, 10872, 129643,
- 43891, 43893, 43892, 129747, 43933, 0, 128231, 0, 0, 0, 0, 0, 11063, 0,
- 43888, 0, 0, 128368, 43889, 0, 73807, 983104, 7386, 0, 0, 70295, 0, 0, 0,
- 71201, 128460, 0, 0, 0, 0, 69915, 2918, 66820, 65300, 0, 127859, 64726,
- 2790, 0, 3793, 42065, 127829, 0, 129560, 0, 0, 0, 0, 0, 92712, 0, 12923,
- 5270, 0, 0, 0, 65813, 0, 128499, 0, 75012, 0, 10888, 0, 93997, 94180,
- 3330, 129417, 0, 0, 0, 0, 0, 8220, 0, 0, 101581, 101580, 1627, 101582, 0,
- 0, 5371, 101578, 0, 1826, 118794, 0, 0, 70023, 0, 0, 0, 71108, 0, 0, 0,
- 0, 92207, 68125, 74898, 101069, 0, 72006, 71098, 70029, 0, 43116, 101589,
- 70019, 64346, 0, 101585, 66818, 101587, 70031, 0, 12666, 120413, 120420,
- 120414, 101567, 120428, 0, 101564, 101563, 65509, 101565, 7449, 0,
- 101562, 0, 7438, 0, 0, 9054, 971, 101558, 101561, 101560, 65195, 64767,
- 101557, 101556, 0, 0, 101553, 101552, 0, 0, 0, 64303, 101576, 2303, 0,
- 101577, 101572, 101571, 65833, 101573, 7271, 0, 101570, 101569, 0, 12229,
- 0, 0, 43411, 73751, 0, 64813, 0, 0, 10476, 0, 0, 3932, 64958, 0, 0,
- 73989, 0, 0, 101542, 101541, 101544, 101543, 101538, 101537, 101540,
- 101539, 92645, 65474, 4796, 118892, 129357, 65479, 0, 42895, 11858,
- 65500, 0, 9899, 92608, 0, 404, 65484, 120639, 0, 5788, 127852, 0, 65491,
- 1831, 66020, 0, 983993, 92588, 0, 1343, 120784, 0, 0, 12018, 0, 0, 0, 0,
- 0, 4422, 4708, 3799, 101550, 119357, 0, 101547, 101546, 101549, 101548,
- 983095, 0, 1364, 0, 8038, 101545, 0, 12868, 0, 70425, 55223, 0, 64414,
- 110689, 0, 0, 0, 0, 0, 0, 118802, 0, 42855, 118856, 42866, 0, 0, 0, 0,
- 66438, 0, 983977, 119356, 119355, 119354, 0, 983576, 0, 73013, 67685,
- 128062, 119350, 0, 64512, 10404, 10340, 119352, 1556, 5274, 0, 127821,
- 10017, 9733, 0, 129476, 0, 41373, 0, 0, 0, 0, 0, 349, 4863, 41371, 0, 0,
- 0, 0, 72295, 4398, 8543, 65618, 128018, 0, 0, 0, 0, 12441, 0, 119348,
- 119347, 4318, 10452, 0, 8032, 0, 119349, 119344, 0, 127844, 121156, 0,
- 110729, 119345, 8597, 0, 110727, 9864, 0, 0, 0, 0, 0, 0, 0, 7722, 0, 0,
- 0, 0, 0, 66590, 0, 0, 129850, 0, 0, 0, 4965, 0, 917536, 0, 123196, 0, 0,
- 0, 10436, 119342, 43147, 119340, 10356, 10420, 982, 2756, 0, 983978, 0,
- 0, 11162, 119338, 0, 92914, 0, 65110, 0, 0, 983781, 78543, 0, 118793, 0,
- 128112, 119179, 64476, 1694, 8216, 0, 0, 78539, 0, 65620, 0, 78537, 0, 0,
- 42158, 65621, 69955, 120324, 120327, 120326, 120321, 120320, 120323,
- 120322, 12314, 65616, 55221, 43825, 983553, 119337, 68060, 119335, 0,
- 71874, 123628, 128537, 119332, 73089, 0, 41347, 0, 0, 8842, 0, 0, 4379,
- 127393, 12692, 0, 0, 66353, 71875, 0, 0, 92907, 0, 0, 71877, 120303,
- 65619, 9872, 0, 0, 1846, 120309, 120308, 119256, 71192, 120305, 120304,
- 120307, 6442, 120317, 120316, 5379, 120318, 110717, 120312, 120315,
- 71876, 0, 65934, 66497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72002, 0, 6151,
- 12110, 0, 0, 0, 0, 0, 0, 0, 0, 68335, 0, 0, 0, 0, 0, 0, 66041, 9676,
- 10202, 0, 0, 0, 64575, 126637, 11965, 0, 124936, 0, 0, 0, 0, 0, 9698,
- 66293, 0, 119651, 0, 0, 41921, 0, 0, 0, 119258, 0, 0, 0, 0, 0, 8012,
- 12355, 12353, 0, 0, 74107, 0, 0, 41925, 0, 41920, 65444, 0, 0, 41923,
- 12694, 0, 10112, 1294, 0, 120091, 0, 120092, 0, 0, 128474, 121400, 0, 0,
- 0, 8718, 0, 10284, 10268, 10380, 10316, 92593, 0, 71850, 0, 0, 92889, 0,
- 0, 0, 0, 9342, 12829, 0, 0, 101239, 127978, 0, 0, 69428, 0, 73767, 72347,
- 0, 7956, 598, 0, 72329, 93837, 0, 0, 128860, 0, 120041, 0, 0, 101242, 0,
- 0, 847, 0, 9529, 0, 0, 0, 101247, 120035, 0, 0, 0, 67411, 0, 0, 0,
- 120040, 0, 128580, 0, 9624, 0, 0, 0, 65463, 1554, 0, 0, 0, 0, 71879, 0,
- 0, 0, 121161, 19963, 123625, 0, 72326, 92933, 71887, 10324, 10292, 65546,
- 0, 68141, 8372, 0, 0, 83018, 120022, 10175, 10388, 42799, 0, 983180,
- 10568, 0, 127400, 0, 0, 0, 983743, 0, 4366, 0, 983786, 0, 0, 42608, 0,
- 9884, 0, 0, 0, 0, 129180, 0, 0, 0, 0, 1609, 0, 92773, 73448, 0, 11661, 0,
- 5818, 0, 0, 0, 9540, 0, 2554, 5158, 0, 2213, 0, 0, 78522, 43079, 0, 0,
- 8264, 11175, 64553, 120863, 42155, 0, 0, 0, 0, 0, 69552, 8676, 0, 129927,
- 0, 451, 0, 0, 0, 0, 0, 0, 123167, 43609, 0, 0, 1440, 0, 0, 0, 127061,
- 11005, 0, 66656, 127063, 0, 129936, 0, 127065, 43393, 0, 120643, 0, 0, 0,
- 0, 120798, 0, 0, 0, 0, 0, 0, 70435, 64356, 0, 0, 0, 383, 7154, 127815,
- 43495, 128809, 121448, 0, 0, 0, 11286, 0, 0, 0, 0, 0, 0, 0, 42644,
- 129824, 129797, 129801, 8292, 0, 4980, 113726, 92674, 70130, 0, 0, 0, 0,
- 74912, 0, 10631, 83330, 100488, 68042, 0, 0, 7900, 101252, 0, 78779,
- 4198, 128555, 0, 0, 0, 123159, 0, 0, 12931, 0, 0, 0, 2088, 0, 72164,
- 129284, 0, 0, 69265, 0, 0, 0, 69694, 129808, 129794, 8593, 0, 0, 0, 0, 0,
- 0, 11798, 0, 100483, 0, 0, 0, 64211, 128865, 120494, 0, 0, 0, 121228,
- 68901, 128788, 0, 0, 65162, 0, 0, 0, 0, 0, 128130, 0, 92264, 127153, 0,
- 128818, 0, 0, 61, 0, 74373, 92182, 119554, 0, 0, 12089, 0, 65834, 83281,
- 119671, 128701, 0, 0, 42566, 42743, 0, 69824, 0, 92653, 0, 0, 42621, 0,
- 0, 0, 0, 0, 43266, 0, 0, 0, 74843, 0, 0, 119103, 64417, 0, 0, 64737, 0,
- 0, 8930, 0, 0, 66900, 10056, 1800, 0, 0, 0, 0, 121175, 7743, 0, 0,
- 119528, 92640, 92453, 9034, 6039, 129139, 10075, 0, 0, 0, 10748, 0, 0, 0,
- 0, 0, 92984, 0, 0, 128183, 129421, 0, 43064, 127558, 0, 7539, 0, 0, 0, 0,
- 0, 0, 0, 92898, 42567, 0, 0, 73886, 0, 129988, 12326, 0, 0, 0, 0, 11355,
- 0, 0, 0, 0, 69437, 0, 129803, 129811, 119537, 72327, 43005, 65342,
- 118902, 0, 0, 8644, 0, 0, 11186, 74296, 41909, 0, 128682, 2791, 0, 1891,
- 0, 0, 41907, 66647, 0, 0, 41906, 0, 0, 10773, 70206, 0, 0, 0, 6412, 2061,
- 8520, 13146, 0, 0, 83275, 65902, 2882, 0, 126232, 65852, 0, 983306, 0,
- 123627, 0, 0, 0, 0, 0, 128098, 0, 0, 0, 70871, 0, 0, 0, 120087, 0, 0, 0,
- 93971, 0, 3844, 6842, 0, 0, 6612, 0, 0, 0, 0, 0, 783, 0, 0, 0, 983064,
- 68032, 119225, 0, 0, 68378, 4556, 67839, 68480, 78663, 120069, 120074,
- 67657, 10510, 4382, 74218, 42194, 0, 0, 9177, 8902, 93958, 9839, 0,
- 120700, 0, 0, 63999, 41904, 41917, 9788, 120973, 0, 1862, 0, 0, 0, 41915,
- 0, 41919, 63994, 41914, 7981, 0, 0, 0, 0, 0, 0, 0, 120834, 0, 0, 0, 6784,
- 78788, 0, 0, 0, 0, 127534, 127484, 127476, 0, 0, 983941, 64289, 65289, 0,
- 129539, 129575, 64509, 0, 0, 126505, 11051, 0, 66635, 55259, 65885, 0,
- 128310, 0, 0, 0, 0, 7500, 4506, 0, 0, 0, 0, 0, 126609, 4040, 128680,
- 6167, 0, 0, 0, 0, 0, 0, 7830, 43036, 0, 0, 63990, 19947, 63988, 63987, 0,
- 63993, 10440, 9611, 2244, 71883, 0, 65260, 63986, 11446, 63984, 92641,
- 3435, 119652, 0, 119108, 0, 128632, 0, 0, 12748, 0, 0, 92705, 0, 78790,
- 0, 0, 63956, 42458, 63954, 63953, 63960, 63959, 63958, 11596, 0, 11469,
- 69267, 42306, 2723, 0, 0, 70027, 0, 0, 0, 128093, 2880, 0, 0, 0, 0,
- 128506, 3498, 4378, 0, 129825, 0, 65551, 118928, 0, 43387, 0, 64415,
- 128898, 0, 0, 0, 0, 8161, 393, 12013, 0, 92216, 126479, 63965, 63964,
- 63963, 42345, 0, 0, 63967, 42498, 0, 2927, 0, 63961, 0, 0, 983927, 0,
- 69699, 0, 42340, 0, 0, 0, 10730, 0, 69688, 0, 64187, 0, 0, 12437, 9813,
- 0, 42453, 1604, 9565, 0, 69701, 69235, 42414, 110724, 129196, 0, 42301,
- 11372, 0, 917973, 0, 0, 63980, 63979, 63978, 0, 128207, 12017, 63982,
- 63981, 73687, 0, 63977, 63976, 72794, 0, 0, 0, 63971, 4347, 4416, 63968,
- 11009, 63974, 63973, 402, 69390, 13147, 0, 0, 64646, 13228, 0, 0, 3515,
- 74252, 65261, 0, 0, 6259, 0, 0, 0, 0, 0, 0, 74813, 74425, 0, 126998,
- 126114, 0, 0, 0, 129933, 983698, 0, 0, 74301, 0, 0, 0, 0, 74060, 0, 0,
- 66235, 5145, 0, 0, 128394, 0, 73120, 0, 7402, 0, 0, 0, 7952, 7832, 43382,
- 66616, 0, 983931, 120852, 0, 127875, 64866, 0, 0, 0, 78784, 74248, 0, 0,
- 983196, 0, 0, 0, 78656, 42390, 0, 0, 983921, 0, 0, 0, 0, 9508, 0, 9544,
- 11520, 0, 0, 3377, 0, 129562, 0, 0, 0, 0, 0, 66280, 0, 127198, 0, 0, 0,
- 1955, 119565, 0, 0, 3076, 0, 42168, 73049, 66304, 0, 0, 8917, 42403, 301,
- 0, 0, 0, 0, 0, 0, 0, 0, 67819, 92987, 0, 0, 0, 983204, 0, 69403, 3182, 0,
- 0, 0, 0, 0, 42169, 123162, 74244, 0, 42329, 0, 66326, 6841, 0, 128913, 0,
- 1219, 3934, 71276, 11483, 74510, 101122, 0, 42442, 65470, 69565, 0,
- 64622, 7759, 42482, 485, 0, 0, 42290, 0, 0, 42280, 0, 0, 11655, 64379,
- 127913, 42431, 10126, 42318, 0, 119631, 74397, 42470, 0, 68315, 0,
- 110829, 74041, 0, 0, 0, 5411, 0, 0, 0, 64205, 0, 64206, 42393, 64478,
- 1310, 125007, 0, 12052, 10643, 55271, 72727, 0, 121045, 0, 0, 118852, 0,
- 0, 0, 0, 113826, 0, 0, 64385, 0, 0, 0, 0, 0, 0, 93848, 92560, 2713, 0,
- 9650, 0, 0, 120602, 1406, 0, 78174, 92659, 0, 68223, 0, 0, 0, 0, 43475,
- 0, 65287, 1508, 127938, 8779, 10569, 75034, 0, 0, 0, 0, 0, 0, 0, 70786,
- 0, 0, 128344, 9185, 0, 42932, 43403, 0, 0, 0, 0, 0, 0, 0, 0, 12955, 0,
- 2888, 0, 0, 0, 0, 0, 0, 0, 2878, 0, 0, 0, 0, 0, 0, 129028, 13203, 0,
- 10429, 10365, 0, 0, 127165, 7503, 0, 113676, 68381, 119658, 0, 8986, 0,
- 10632, 11934, 11452, 1332, 0, 0, 0, 0, 73741, 1791, 8850, 9288, 0, 2892,
- 0, 43394, 555, 0, 0, 0, 0, 64172, 118899, 0, 0, 0, 0, 8854, 0, 5858,
- 73101, 10582, 0, 0, 1361, 0, 0, 7905, 0, 65256, 0, 41210, 0, 0, 71884, 0,
- 0, 0, 6828, 0, 92302, 0, 1342, 68440, 0, 64161, 10903, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, 126467, 41972, 0, 0, 0, 9127, 0,
- 66619, 126489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11620, 0, 1149, 68316, 0, 0, 0,
- 0, 0, 92492, 0, 118784, 0, 0, 0, 12838, 0, 118819, 0, 0, 0, 0, 41087, 0,
- 0, 0, 0, 12036, 0, 0, 0, 0, 0, 64428, 12227, 0, 0, 0, 0, 125248, 120964,
- 0, 0, 0, 0, 0, 69566, 0, 0, 0, 0, 0, 1743, 0, 0, 0, 65186, 0, 0, 0, 0, 0,
- 64439, 0, 68062, 0, 111259, 111258, 43866, 0, 111263, 3395, 9362, 111260,
- 0, 111257, 111256, 111255, 0, 0, 41091, 3426, 1344, 111249, 111248,
- 126215, 4735, 11111, 6119, 111251, 42699, 0, 0, 74818, 1423, 0, 0, 0, 0,
- 12039, 10559, 0, 0, 0, 9472, 67734, 11929, 0, 0, 0, 0, 128826, 0, 11579,
- 0, 0, 128364, 0, 92185, 0, 0, 1004, 92584, 0, 0, 0, 0, 0, 2556, 0, 0,
- 72790, 0, 0, 9686, 0, 0, 0, 70109, 111102, 0, 10718, 13154, 111100, 9139,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 130035, 41708, 12860, 41703, 0, 42090, 5403,
- 10352, 73917, 129144, 111096, 0, 5140, 3753, 118785, 41704, 0, 43078,
- 127789, 111092, 129360, 0, 983205, 92362, 0, 0, 2410, 92525, 0, 0, 0, 0,
- 0, 0, 0, 0, 119253, 0, 126601, 0, 2066, 74199, 0, 43463, 10659, 119623,
- 68863, 0, 1336, 0, 0, 69463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126639, 0, 272,
- 0, 0, 0, 0, 983946, 128133, 0, 0, 124940, 0, 1190, 42146, 1335, 42177,
- 43867, 0, 0, 10448, 0, 125041, 0, 0, 2099, 5120, 2409, 7799, 0, 74424, 0,
- 126581, 4731, 0, 111199, 111198, 111197, 111196, 11689, 0, 74977, 9913,
- 129430, 0, 0, 0, 111195, 111194, 11694, 0, 11690, 111189, 111188, 111187,
- 11693, 111193, 111192, 43097, 11688, 0, 78797, 194, 111186, 111185,
- 111184, 0, 0, 0, 11226, 4519, 70337, 10898, 43072, 70205, 0, 0, 0, 73094,
- 10695, 0, 7540, 0, 110984, 41859, 6067, 0, 110982, 0, 110981, 13311, 0,
- 41857, 0, 8359, 121224, 12689, 0, 983131, 64577, 111204, 111203, 68183,
- 111209, 111208, 6064, 110988, 0, 110979, 74142, 0, 111201, 111200, 6051,
- 123613, 0, 0, 983369, 0, 0, 0, 0, 0, 110864, 10537, 110862, 1276, 0,
- 6549, 6052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1960, 0, 71232, 66297, 0, 129313,
- 0, 0, 1345, 111213, 111212, 111211, 8956, 43083, 0, 111215, 64682, 0,
- 6430, 69563, 111210, 119814, 0, 0, 0, 119817, 0, 492, 43087, 0, 0, 0, 0,
- 0, 2582, 0, 0, 7444, 72863, 0, 2297, 111243, 73837, 0, 0, 65096, 197,
- 74183, 0, 69571, 111241, 111240, 0, 66515, 43550, 119829, 111229, 111228,
- 93764, 111226, 0, 0, 111231, 111230, 71686, 1799, 0, 42148, 74336, 0, 0,
- 65340, 111220, 110974, 2262, 111217, 111224, 74931, 111222, 10896, 0, 0,
- 0, 0, 6338, 111003, 110997, 110994, 111006, 111002, 111005, 0, 111279,
- 111278, 111277, 72133, 0, 111273, 111272, 110961, 3171, 6623, 4961, 0,
- 886, 55216, 8654, 110965, 111270, 74390, 64603, 111267, 129283, 68122, 0,
- 43084, 0, 0, 0, 0, 69693, 8994, 10944, 65938, 111239, 111238, 111237,
- 111236, 66279, 92890, 42510, 0, 0, 6804, 0, 1947, 0, 0, 0, 42759, 0,
- 1705, 983345, 0, 0, 0, 0, 72722, 74036, 0, 0, 66720, 111281, 111280, 0,
- 4909, 111285, 111284, 111283, 4904, 0, 43503, 1365, 9253, 42757, 0, 7462,
- 0, 0, 0, 0, 119587, 0, 917579, 92526, 0, 125035, 0, 111311, 111310, 0, 0,
- 0, 0, 93977, 0, 0, 0, 0, 3629, 0, 13005, 0, 3628, 0, 111295, 0, 0, 0, 0,
- 111290, 64809, 2928, 4905, 111083, 851, 55233, 111291, 111059, 43086,
- 9114, 43870, 42583, 9315, 4822, 4906, 121097, 2847, 111028, 10330, 0,
- 1251, 7777, 41852, 125059, 111327, 111032, 111325, 12646, 0, 10259, 0,
- 65821, 75046, 6018, 0, 111324, 111323, 111322, 68372, 111319, 111318,
- 71893, 2558, 0, 64584, 111321, 111320, 0, 0, 0, 0, 111309, 111308,
- 111307, 111306, 73987, 74599, 71895, 93012, 0, 128715, 0, 12867, 111296,
- 0, 0, 11044, 111300, 111299, 8904, 11824, 65857, 0, 128674, 129027, 4387,
- 0, 0, 0, 0, 0, 0, 0, 11842, 0, 0, 0, 5136, 1968, 983041, 126627, 1337, 0,
- 0, 0, 0, 66506, 0, 0, 0, 0, 42314, 121384, 0, 0, 6120, 0, 65670, 68128,
- 0, 43082, 6016, 0, 42284, 71894, 4276, 111314, 3619, 41638, 69691, 0,
- 42322, 8853, 111043, 0, 490, 0, 13231, 68384, 72310, 65350, 0, 0, 0,
- 68245, 42435, 6154, 0, 65354, 0, 0, 42397, 334, 72732, 42416, 65359,
- 65273, 74634, 128227, 4442, 10364, 0, 778, 41626, 42455, 7989, 0, 3227,
- 69907, 111053, 0, 2915, 11502, 983212, 41702, 10309, 0, 0, 0, 0, 0, 0, 0,
- 127268, 127258, 127267, 65215, 64410, 127260, 71175, 0, 0, 0, 0, 0, 0,
- 41700, 110651, 69266, 126488, 0, 0, 42495, 0, 0, 0, 10460, 43364, 0,
- 1356, 3728, 42713, 0, 0, 42342, 10914, 0, 42489, 64310, 66896, 41861,
- 42297, 0, 0, 41860, 64862, 0, 0, 5289, 42336, 128658, 0, 92529, 42410,
- 71129, 120624, 0, 2649, 74493, 0, 126635, 0, 3382, 42449, 9081, 1658,
- 11936, 93019, 113814, 11269, 0, 0, 43100, 69888, 65508, 0, 0, 121451, 0,
- 0, 0, 0, 69272, 4732, 128283, 0, 0, 0, 121113, 2236, 126551, 0, 6048, 0,
- 0, 73965, 0, 0, 0, 0, 10151, 9681, 4475, 0, 64735, 2100, 0, 0, 6035, 0,
- 123599, 10296, 0, 0, 0, 0, 0, 0, 0, 983307, 68488, 10392, 10328, 0,
- 43462, 0, 0, 0, 8979, 0, 0, 983304, 0, 0, 0, 10977, 0, 10344, 0, 65299,
- 10408, 0, 0, 121187, 66505, 0, 0, 0, 0, 0, 0, 43074, 73799, 0, 0, 0, 0,
- 3446, 0, 129891, 128692, 0, 0, 119582, 4474, 0, 43093, 6282, 0, 0,
- 127372, 0, 0, 0, 129881, 0, 0, 0, 0, 66910, 67811, 92277, 0, 64948, 0,
- 74347, 0, 0, 0, 983962, 8194, 0, 121165, 11010, 0, 8893, 0, 983969, 0, 0,
- 0, 983317, 7925, 0, 0, 113825, 0, 1352, 11069, 7707, 0, 126486, 0, 0, 0,
- 0, 65605, 6040, 0, 10071, 0, 128156, 43750, 0, 8899, 69873, 0, 0, 983311,
- 128208, 7820, 69615, 0, 0, 7746, 1492, 0, 0, 0, 66866, 0, 11788, 65913,
- 0, 0, 43095, 0, 0, 92265, 2999, 0, 120720, 0, 371, 0, 6023, 0, 0, 11708,
- 0, 0, 6323, 0, 0, 0, 8938, 6043, 65866, 0, 0, 0, 72419, 0, 129480, 2589,
- 74332, 1689, 7802, 0, 0, 0, 0, 66704, 0, 129992, 0, 0, 128127, 6049, 0,
- 4027, 0, 0, 111334, 111333, 1503, 111331, 0, 111337, 11951, 111335, 2387,
- 0, 0, 8289, 111330, 7326, 66514, 65514, 0, 64865, 0, 9668, 0, 0, 0, 0,
- 93060, 6036, 92768, 4026, 74089, 127091, 0, 0, 75044, 110821, 0, 110819,
- 0, 0, 0, 0, 6021, 0, 128288, 0, 43155, 0, 110822, 0, 111343, 42691,
- 111341, 111340, 2246, 166, 0, 0, 0, 10623, 408, 0, 111339, 13298, 0,
- 7426, 43694, 0, 0, 8811, 0, 0, 0, 0, 0, 74134, 983054, 0, 127811, 0, 0,
- 0, 6645, 646, 128813, 0, 42129, 0, 120880, 0, 8697, 0, 120936, 0, 0, 0,
- 0, 5809, 1950, 0, 92432, 68339, 0, 42136, 0, 0, 0, 0, 0, 0, 111354,
- 983965, 0, 0, 111349, 111348, 43330, 111346, 111353, 111352, 41567,
- 111350, 0, 0, 0, 0, 111345, 111344, 8285, 0, 4509, 0, 128361, 0, 0,
- 129851, 0, 0, 41727, 0, 0, 0, 0, 0, 0, 0, 74512, 7027, 3886, 0, 74023,
- 92888, 0, 0, 126092, 94058, 119855, 0, 121455, 11707, 119852, 0, 7939,
- 10342, 92460, 72747, 121408, 917569, 0, 71198, 94077, 119847, 0, 0, 7201,
- 0, 0, 120866, 983968, 1540, 0, 0, 0, 0, 0, 41718, 71177, 0, 0, 128001, 0,
- 0, 119040, 0, 9619, 120840, 0, 0, 0, 0, 3560, 0, 6070, 129000, 0, 2922,
- 6082, 70147, 65009, 983954, 0, 0, 0, 0, 0, 0, 3607, 65863, 0, 92487,
- 42153, 121042, 0, 983843, 2032, 0, 0, 0, 0, 129985, 0, 43085, 6057, 0, 0,
- 0, 0, 0, 0, 0, 0, 638, 6083, 126976, 0, 0, 2305, 0, 0, 0, 6056, 10878, 0,
- 0, 6085, 0, 0, 3915, 0, 0, 0, 0, 0, 0, 4028, 1787, 0, 43096, 0, 0, 1768,
- 0, 0, 0, 128125, 0, 0, 583, 129137, 0, 0, 66004, 0, 0, 0, 0, 0, 55267,
- 120810, 128995, 43075, 65049, 0, 74531, 0, 93009, 70694, 0, 0, 129375,
- 9869, 128815, 1771, 0, 0, 0, 0, 0, 0, 119115, 113708, 0, 0, 74101, 0, 0,
- 0, 0, 0, 0, 0, 0, 12539, 123631, 0, 0, 129846, 73862, 69842, 9897, 0,
- 100561, 0, 0, 0, 0, 0, 8931, 0, 1415, 8866, 74552, 0, 128312, 0, 983566,
- 43106, 127275, 71089, 1580, 92278, 68424, 0, 0, 7658, 3440, 78215, 1562,
- 0, 0, 129031, 0, 0, 0, 0, 0, 0, 6028, 68900, 42892, 0, 111016, 0, 0, 0,
- 0, 0, 128269, 0, 66776, 42946, 127276, 129124, 0, 0, 120510, 11599, 0,
- 11602, 11591, 11574, 11581, 11597, 11598, 6253, 11571, 11584, 70273,
- 11569, 0, 8906, 0, 5755, 2636, 0, 10815, 11619, 129094, 0, 7815, 11616,
- 11617, 70064, 11618, 11604, 7869, 11612, 0, 42152, 0, 0, 0, 92586,
- 126247, 0, 92173, 0, 0, 6616, 0, 0, 120875, 391, 0, 0, 0, 42296, 11588,
- 0, 0, 0, 68397, 0, 0, 42335, 983188, 0, 0, 7538, 94040, 0, 42491, 0, 0,
- 128088, 4576, 0, 0, 43809, 4277, 0, 3563, 0, 42338, 368, 0, 0, 42412, 0,
- 78209, 0, 0, 43814, 983616, 1849, 0, 9921, 42451, 4253, 0, 0, 0, 42404,
- 64657, 73919, 3618, 78338, 0, 0, 0, 0, 0, 929, 6827, 42035, 0, 0, 0,
- 67847, 0, 0, 0, 0, 0, 0, 0, 0, 4578, 64513, 0, 0, 0, 71049, 68090,
- 127086, 43305, 0, 73462, 0, 0, 42048, 10166, 0, 127095, 113810, 983127,
- 0, 983972, 0, 0, 42483, 0, 0, 0, 42291, 0, 71047, 0, 6641, 525, 66404, 0,
- 8763, 125091, 0, 0, 0, 0, 0, 42504, 42581, 74280, 6915, 42310, 0, 8559,
- 0, 983975, 125100, 0, 0, 11666, 8679, 0, 1576, 42423, 0, 0, 73840,
- 983092, 11374, 0, 10889, 129076, 0, 42462, 0, 77982, 0, 2718, 42424, 0,
- 0, 127166, 0, 1179, 0, 0, 0, 363, 11015, 72229, 0, 43857, 0, 66692, 0, 0,
- 0, 11041, 72018, 0, 0, 0, 0, 125184, 0, 92520, 0, 9492, 66709, 9212,
- 12833, 0, 0, 1297, 0, 0, 0, 0, 0, 0, 12924, 0, 0, 10090, 125249, 0,
- 42505, 0, 42507, 0, 42311, 92940, 120919, 68401, 10759, 0, 0, 120924,
- 42351, 42919, 9398, 66292, 0, 9422, 0, 0, 0, 0, 0, 129440, 92575, 1603,
- 0, 0, 0, 0, 0, 69703, 11250, 0, 0, 10546, 0, 0, 11600, 0, 2797, 73821,
- 42427, 306, 714, 3058, 120154, 0, 0, 0, 42395, 0, 11607, 0, 11198,
- 127512, 0, 72232, 129067, 0, 42433, 0, 7603, 74063, 0, 42141, 0, 0, 0,
- 129085, 8244, 362, 125069, 0, 8037, 0, 0, 0, 0, 41606, 66696, 77912, 0,
- 2093, 0, 120676, 0, 41604, 0, 0, 0, 0, 10523, 1446, 42320, 0, 0, 64773,
- 42472, 0, 0, 1722, 5581, 0, 64496, 0, 0, 64914, 0, 42620, 128603, 124988,
- 0, 0, 10549, 0, 71190, 0, 0, 0, 0, 0, 71712, 0, 0, 0, 0, 0, 0, 0, 7684,
- 66338, 0, 1174, 0, 0, 983621, 0, 0, 0, 42277, 0, 42456, 65667, 0, 0, 0,
- 0, 42417, 0, 0, 120812, 42304, 0, 0, 0, 74443, 127894, 0, 8313, 0, 0,
- 1316, 66690, 0, 0, 0, 0, 0, 0, 66844, 983696, 0, 0, 0, 65200, 3383, 0, 0,
- 70063, 0, 0, 0, 42420, 119185, 0, 0, 983898, 0, 121079, 0, 0, 42343,
- 124980, 42706, 1751, 42496, 65742, 13166, 0, 0, 0, 0, 0, 42683, 12697, 0,
- 0, 0, 125047, 0, 42346, 0, 0, 3757, 0, 0, 121075, 65869, 0, 9247, 74976,
- 3193, 0, 0, 42459, 7596, 7921, 0, 74095, 0, 42499, 11590, 66006, 0,
- 42307, 0, 43953, 0, 0, 1023, 474, 0, 0, 0, 0, 42487, 0, 0, 0, 42295, 0,
- 121474, 72237, 0, 9835, 0, 127782, 0, 12275, 0, 0, 8595, 0, 0, 0, 0, 0,
- 10118, 0, 129156, 0, 0, 0, 0, 0, 0, 699, 0, 120923, 11601, 0, 92941, 0,
- 7581, 0, 92530, 0, 0, 0, 7765, 65583, 0, 0, 64597, 43444, 0, 92197, 0,
- 64279, 7036, 5823, 1937, 0, 917854, 65415, 13308, 65417, 0, 65217, 0, 0,
- 11017, 0, 0, 7294, 0, 0, 0, 0, 42466, 65416, 68858, 0, 71350, 65413,
- 92381, 126498, 12964, 42240, 1941, 0, 0, 1713, 0, 0, 0, 11407, 42441,
- 128262, 6297, 0, 0, 0, 42481, 0, 0, 7179, 42289, 0, 120921, 969, 0, 0, 0,
- 6165, 0, 0, 0, 0, 42402, 0, 0, 0, 129511, 0, 72234, 0, 0, 64876, 92635,
- 6046, 0, 6208, 128870, 129309, 73749, 0, 0, 42422, 0, 0, 128155, 73775,
- 338, 0, 121369, 0, 42328, 10767, 0, 8115, 0, 0, 0, 0, 92687, 0, 0, 0, 0,
- 73029, 0, 0, 0, 71687, 4486, 128082, 0, 0, 10925, 0, 0, 0, 0, 42309,
- 10257, 0, 10273, 7668, 10305, 42461, 74882, 42349, 8832, 0, 0, 10644, 0,
- 129531, 42278, 0, 0, 69874, 0, 129949, 42429, 0, 42316, 11223, 0, 0,
- 42468, 0, 0, 0, 65402, 0, 0, 72235, 0, 0, 41963, 120990, 0, 0, 125013,
- 6823, 42391, 1588, 65400, 0, 0, 0, 65398, 787, 0, 0, 0, 0, 2078, 127239,
- 65399, 0, 0, 0, 65401, 0, 121196, 0, 113816, 644, 0, 71335, 0, 3659, 0,
- 0, 0, 13107, 92669, 0, 10502, 74457, 0, 11221, 41554, 0, 0, 0, 41557,
- 11209, 0, 11070, 119221, 0, 0, 73858, 41555, 9514, 0, 66771, 64641,
- 92447, 0, 7520, 73888, 77955, 0, 0, 0, 0, 0, 64527, 0, 0, 12723, 0,
- 68776, 0, 0, 0, 78835, 4055, 78826, 77960, 65212, 0, 127353, 12319, 0, 0,
- 983216, 7964, 65427, 0, 65424, 72217, 120966, 0, 65425, 74890, 128251, 0,
- 0, 0, 3448, 10827, 0, 9866, 74527, 0, 0, 8625, 69783, 92304, 10477, 0, 0,
- 0, 65423, 0, 0, 0, 0, 6152, 0, 0, 6629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11046, 11490, 0, 4485, 71126, 0, 0, 0, 0, 0, 5869, 0, 119633, 0, 7040,
- 3588, 0, 12825, 0, 0, 128569, 0, 0, 0, 0, 0, 0, 0, 0, 128449, 64499,
- 65245, 127367, 1171, 127368, 69717, 127365, 1805, 8772, 0, 127363, 9930,
- 65247, 0, 0, 2338, 127362, 92695, 0, 0, 0, 69219, 0, 120104, 0, 120103,
- 72221, 120106, 129924, 118814, 8734, 4212, 0, 0, 66701, 0, 65862, 0,
- 120095, 42903, 0, 0, 0, 126117, 426, 0, 120098, 8251, 0, 65436, 0, 2120,
- 43302, 1224, 0, 65576, 0, 66876, 1764, 6074, 0, 12858, 0, 0, 65439, 6378,
- 74566, 0, 41960, 0, 41644, 0, 2129, 0, 9222, 0, 0, 4259, 9092, 0, 41961,
- 0, 0, 66357, 42331, 64935, 0, 0, 1293, 0, 2132, 0, 983569, 0, 2454, 0,
- 3613, 128837, 71117, 0, 0, 69681, 10978, 10840, 0, 10668, 0, 127197,
- 9118, 120164, 0, 0, 0, 1157, 64903, 8638, 0, 101295, 0, 0, 0, 0, 0,
- 128981, 10086, 0, 11128, 0, 0, 65430, 74013, 6079, 0, 10764, 127910,
- 64435, 128051, 1339, 0, 65428, 1317, 8822, 0, 0, 0, 127143, 0, 0, 0,
- 43110, 0, 10428, 129848, 0, 0, 5742, 43076, 4692, 0, 0, 4007, 5004,
- 128781, 0, 751, 6595, 6596, 0, 66373, 0, 0, 64908, 0, 6593, 72349, 12004,
- 119192, 74097, 43108, 0, 0, 119333, 92188, 6598, 0, 6599, 0, 93031,
- 74194, 0, 121483, 66674, 6597, 0, 73921, 0, 64745, 2281, 0, 0, 128996,
- 43790, 0, 2430, 41678, 0, 0, 43785, 113716, 0, 121263, 0, 0, 1921, 0,
- 19927, 70390, 65406, 0, 43786, 4284, 128346, 72210, 43789, 12841, 9229,
- 0, 42285, 0, 0, 0, 0, 3521, 0, 120888, 8325, 0, 65403, 0, 1854, 0, 0, 0,
- 0, 0, 0, 0, 0, 4344, 0, 65433, 6076, 0, 0, 74764, 12074, 0, 0, 0, 0,
- 12934, 119555, 65432, 128877, 0, 6071, 65434, 0, 65435, 4053, 128623, 0,
- 0, 0, 917934, 69823, 127463, 0, 121403, 127473, 8421, 127472, 0, 43705,
- 502, 0, 65431, 0, 0, 0, 1303, 316, 7364, 0, 2136, 0, 120796, 64365,
- 43480, 92639, 4860, 0, 127877, 0, 129728, 9583, 0, 5546, 0, 0, 0, 0, 0,
- 5544, 127475, 0, 70352, 5543, 128917, 72821, 12137, 5548, 0, 0, 10007, 0,
- 127523, 6077, 0, 65452, 0, 119341, 11214, 65952, 0, 72226, 0, 0, 1319,
- 74210, 65410, 67399, 92606, 0, 0, 119343, 0, 66716, 83513, 4691, 128619,
- 9345, 621, 0, 0, 122889, 65411, 0, 74575, 121246, 65408, 73899, 0, 9474,
- 2812, 119118, 65412, 3786, 65409, 8894, 83246, 119611, 7923, 3716, 0, 0,
- 0, 0, 7012, 0, 128439, 9566, 0, 94176, 0, 65012, 126242, 545, 9575, 0,
- 10050, 12718, 0, 8859, 6820, 0, 129941, 120740, 0, 0, 9119, 2787, 0,
- 983981, 8507, 2012, 7985, 0, 0, 0, 0, 194634, 0, 410, 0, 0, 120789,
- 120609, 0, 120378, 120379, 0, 0, 120374, 72742, 120376, 120377, 120370,
- 120371, 120372, 120373, 3860, 120367, 72205, 74031, 111131, 73685, 11748,
- 120365, 7941, 111134, 8749, 111132, 12698, 111129, 361, 110793, 845, 0,
- 0, 0, 4562, 72241, 2926, 0, 4569, 0, 110797, 43487, 0, 0, 0, 74287,
- 122885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6291, 0, 0, 0, 9734, 0, 0, 0, 0,
- 127754, 7359, 83523, 43863, 0, 111150, 8769, 111148, 111147, 111145,
- 4859, 111143, 111142, 0, 0, 0, 0, 12172, 111136, 0, 127899, 111141,
- 64764, 4210, 111138, 0, 804, 0, 83520, 0, 70344, 0, 0, 67202, 10091,
- 67200, 119257, 67206, 67205, 67204, 67203, 72302, 0, 0, 0, 128959, 0,
- 1425, 92259, 119229, 11049, 0, 71480, 42649, 8482, 0, 0, 66715, 67209,
- 11940, 67207, 664, 0, 0, 0, 70200, 127525, 0, 70194, 93061, 111155,
- 68474, 111153, 6032, 67218, 67217, 7430, 194670, 70191, 0, 0, 0, 0, 0,
- 41161, 0, 9765, 10993, 41162, 0, 70189, 1169, 111181, 0, 1905, 6034,
- 41164, 64744, 43236, 0, 128800, 73110, 0, 0, 788, 0, 0, 111167, 111128,
- 1663, 128976, 42901, 127237, 67211, 67210, 0, 0, 67215, 67214, 67213,
- 67212, 111160, 111159, 111158, 111157, 0, 0, 0, 111161, 43612, 0, 0, 0,
- 10855, 67223, 9355, 67221, 65198, 120355, 0, 221, 0, 0, 0, 121141, 7191,
- 118930, 72208, 125212, 0, 0, 0, 0, 67228, 67227, 43333, 67225, 0, 0, 0,
- 67229, 0, 7245, 0, 74405, 69922, 72219, 111178, 3873, 8367, 111174,
- 111173, 111172, 43649, 0, 111177, 111176, 0, 11164, 0, 74403, 111171,
- 111170, 111169, 7682, 74404, 1462, 10235, 0, 0, 0, 0, 0, 111130, 0, 0,
- 74402, 0, 92299, 0, 0, 74052, 0, 126127, 120549, 0, 64295, 0, 0, 0, 0, 0,
- 120662, 0, 0, 67231, 67230, 10755, 55257, 11155, 128568, 983136, 9470, 0,
- 127540, 0, 69680, 64384, 0, 128607, 0, 0, 0, 0, 73764, 8204, 0, 0, 0, 0,
- 0, 8728, 0, 10904, 73446, 19936, 7833, 0, 0, 0, 0, 92546, 0, 0, 0, 8537,
- 0, 0, 0, 121244, 0, 0, 0, 128193, 0, 0, 0, 0, 3062, 0, 0, 0, 0, 0, 41160,
- 41147, 41158, 0, 120777, 0, 41155, 111116, 111115, 111114, 0, 121332,
- 111119, 111118, 111117, 129878, 0, 129091, 0, 0, 0, 64594, 2456, 66867,
- 0, 0, 0, 0, 3721, 0, 0, 1230, 2678, 0, 3597, 917795, 0, 0, 92215, 0,
- 67737, 8352, 0, 0, 0, 64515, 121378, 0, 129128, 67846, 0, 0, 92466, 0, 0,
- 71338, 0, 8660, 0, 0, 0, 0, 0, 4483, 0, 0, 0, 6080, 0, 0, 1746, 1315, 0,
- 70201, 0, 13140, 74508, 0, 0, 4480, 0, 111113, 111112, 0, 67979, 0, 6360,
- 10897, 111106, 605, 68302, 110737, 69875, 110735, 110736, 66681, 0, 0, 0,
- 0, 0, 0, 0, 10877, 118868, 64885, 0, 0, 0, 0, 0, 0, 345, 0, 0, 64606,
- 9917, 0, 0, 92196, 0, 1776, 8422, 43992, 0, 0, 0, 126543, 43328, 0, 0,
- 1295, 0, 42869, 0, 0, 0, 0, 128772, 65123, 125210, 11293, 11288, 0, 0,
- 65666, 0, 92369, 65420, 0, 0, 4252, 0, 0, 0, 706, 72800, 0, 0, 129931,
- 65419, 92177, 0, 8419, 65421, 0, 66702, 0, 12670, 0, 0, 0, 0, 72825,
- 65422, 83008, 0, 0, 0, 0, 0, 0, 9736, 4184, 65418, 0, 0, 74035, 0,
- 129955, 0, 0, 0, 0, 129447, 0, 7962, 12211, 9837, 83505, 0, 0, 5719, 0,
- 0, 119068, 73777, 1857, 0, 9927, 0, 983940, 0, 10037, 0, 73695, 78322,
- 78319, 7818, 0, 0, 127769, 0, 0, 0, 65077, 0, 78325, 78326, 78323, 43327,
- 43989, 0, 65828, 0, 0, 83499, 0, 68390, 0, 110687, 78336, 78339, 9543,
- 78335, 78332, 78333, 0, 127964, 0, 129552, 983895, 0, 69448, 0, 71429, 0,
- 0, 0, 11914, 69431, 0, 0, 0, 9949, 0, 0, 119215, 0, 12073, 0, 0, 0, 0,
- 101218, 2260, 0, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 69903, 0, 0, 0, 0, 6643,
- 92477, 0, 0, 78330, 78331, 78328, 78329, 0, 92551, 0, 0, 0, 0, 0, 72417,
- 0, 0, 0, 0, 78341, 78342, 120944, 78340, 129513, 127529, 92350, 3784,
- 78350, 0, 78348, 78349, 78345, 43324, 78343, 78344, 2231, 0, 0, 0, 42467,
- 0, 0, 42894, 78363, 13281, 78360, 78361, 78356, 78358, 78353, 64899, 0,
- 41149, 0, 43162, 68096, 41150, 0, 10571, 67162, 67161, 67160, 67159,
- 6947, 41152, 887, 9249, 6565, 64806, 74366, 0, 67158, 67157, 0, 10831,
- 67175, 67174, 120232, 65827, 43325, 67178, 10168, 67176, 0, 0, 9190,
- 128497, 9666, 41997, 0, 0, 0, 0, 0, 0, 129411, 0, 78508, 0, 78351, 78352,
- 0, 0, 72839, 983730, 0, 126604, 0, 0, 0, 983417, 0, 2270, 0, 129957, 0,
- 78365, 0, 67189, 72818, 0, 0, 0, 0, 0, 0, 0, 72833, 101119, 78366, 78367,
- 0, 0, 0, 0, 10137, 6121, 10995, 0, 71050, 8119, 0, 71052, 0, 0, 0, 0, 0,
- 0, 0, 1394, 0, 0, 128960, 0, 67184, 2998, 67182, 67181, 67188, 67187,
- 67186, 67185, 0, 101185, 0, 0, 67180, 42003, 0, 0, 67193, 67192, 67191,
- 67190, 67197, 67196, 67195, 67194, 0, 72770, 43315, 71051, 0, 1593, 0,
- 125120, 619, 4635, 0, 72875, 0, 128859, 0, 0, 0, 0, 67199, 67198, 0,
- 42790, 42006, 0, 0, 0, 128998, 10757, 9347, 127767, 0, 0, 74227, 78904,
- 0, 74116, 128423, 121073, 120860, 0, 92427, 0, 0, 0, 0, 64590, 0, 4371,
- 0, 0, 92478, 0, 0, 73977, 0, 0, 127847, 0, 120862, 0, 64550, 73745,
- 70451, 0, 121013, 0, 0, 0, 129286, 0, 0, 0, 0, 9131, 0, 125214, 0, 0, 0,
- 64260, 0, 12606, 0, 0, 0, 0, 562, 0, 0, 129648, 66455, 127533, 3219, 0,
- 0, 0, 1037, 0, 64491, 0, 983676, 78572, 78580, 4568, 549, 0, 0, 0, 0, 0,
- 128095, 70851, 0, 0, 0, 0, 0, 129716, 0, 10825, 8079, 118962, 0, 0, 0,
- 128855, 0, 13071, 0, 0, 41049, 42840, 43614, 129341, 74881, 74596,
- 127191, 5212, 0, 66402, 119191, 0, 9747, 0, 0, 0, 983989, 41047, 1668, 0,
- 0, 0, 1187, 0, 74416, 0, 0, 0, 0, 3240, 128518, 9213, 0, 0, 0, 127174,
- 69822, 0, 0, 0, 0, 1623, 0, 0, 0, 0, 0, 0, 11272, 0, 73914, 65048, 1909,
- 42172, 0, 0, 10736, 11580, 72228, 7615, 0, 0, 4237, 66576, 0, 65815,
- 68083, 0, 0, 0, 3489, 0, 0, 0, 0, 0, 0, 127146, 3796, 6800, 0, 65582, 0,
- 129521, 0, 0, 68036, 0, 0, 64857, 121213, 126493, 0, 66308, 0, 0, 64634,
- 127817, 0, 0, 0, 0, 3246, 0, 43972, 128643, 0, 0, 0, 0, 120751, 0, 0, 0,
- 0, 1496, 42827, 0, 942, 2378, 119213, 0, 0, 0, 0, 9510, 1232, 8139, 0, 0,
- 0, 11409, 0, 6382, 0, 66319, 121237, 0, 0, 0, 127887, 2374, 0, 8475,
- 120844, 66313, 0, 0, 64879, 119298, 0, 0, 70869, 0, 0, 129025, 0, 7705,
- 11942, 0, 0, 3309, 0, 0, 0, 83345, 983847, 0, 0, 1280, 6998, 128104, 0,
- 0, 0, 129945, 0, 0, 0, 0, 0, 0, 0, 74239, 983073, 0, 0, 0, 6078, 121354,
- 0, 1475, 0, 9938, 6084, 0, 983976, 0, 0, 0, 3256, 0, 43973, 0, 0, 0,
- 8727, 0, 0, 0, 110831, 110832, 10562, 110830, 0, 0, 0, 3248, 0, 0, 9015,
- 0, 0, 3635, 64337, 0, 0, 43852, 7195, 0, 2007, 64431, 0, 0, 0, 0, 0, 0,
- 0, 65613, 77909, 0, 0, 0, 0, 119218, 7984, 11670, 74434, 127770, 4176,
- 69248, 2034, 69442, 11154, 65891, 0, 0, 318, 2038, 0, 0, 0, 3649, 13149,
- 42145, 42798, 3634, 0, 0, 128483, 0, 0, 0, 11402, 120954, 94032, 74238,
- 0, 43313, 0, 0, 7938, 0, 1761, 0, 65379, 68386, 128185, 1159, 71183, 0,
- 0, 0, 66687, 120851, 0, 41680, 0, 0, 0, 1514, 11668, 67891, 9313, 0,
- 128490, 67877, 0, 41681, 0, 0, 12848, 69982, 67873, 0, 74278, 0, 0,
- 12649, 0, 0, 1194, 3242, 9761, 9555, 8598, 0, 120524, 0, 1551, 65447,
- 129414, 126211, 0, 0, 0, 67875, 0, 3495, 66648, 125079, 0, 73024, 983228,
- 0, 0, 10641, 0, 0, 0, 77845, 0, 0, 0, 0, 0, 11131, 0, 0, 0, 0, 0, 42685,
- 72017, 193, 0, 0, 0, 42667, 0, 0, 92318, 71958, 0, 1362, 9558, 0, 0, 0,
- 7351, 73789, 0, 0, 4426, 0, 0, 0, 0, 7276, 42163, 5220, 0, 0, 67822, 0,
- 0, 0, 0, 41692, 0, 72283, 0, 0, 3223, 65492, 0, 0, 4549, 983687, 0, 0,
- 101162, 10807, 0, 0, 0, 42182, 8688, 12866, 0, 3294, 0, 0, 128101, 0,
- 64514, 0, 43329, 129989, 0, 0, 0, 119061, 0, 43422, 0, 0, 128618, 0,
- 42729, 0, 3215, 120982, 68880, 917564, 0, 0, 0, 65682, 0, 0, 65924, 0,
- 983804, 0, 1501, 0, 118807, 0, 0, 9607, 0, 65794, 72243, 983046, 10989,
- 0, 74399, 0, 0, 7152, 0, 0, 129530, 7483, 125083, 0, 8104, 70128, 7474,
- 0, 5189, 0, 0, 0, 8141, 0, 42537, 69612, 0, 0, 0, 0, 0, 127307, 42934, 0,
- 0, 0, 0, 0, 0, 64517, 0, 0, 1650, 0, 0, 128502, 7901, 3238, 0, 65556, 0,
- 0, 65158, 43416, 74959, 0, 7527, 0, 43319, 0, 0, 45, 0, 0, 0, 0, 0, 7347,
- 0, 0, 0, 13129, 0, 9084, 0, 8737, 0, 0, 0, 66808, 9639, 7912, 2620, 0,
- 3564, 0, 0, 0, 0, 75049, 0, 2853, 0, 0, 0, 0, 0, 2850, 8084, 0, 0, 71446,
- 92284, 43122, 0, 0, 0, 0, 72214, 0, 74767, 0, 7331, 110646, 0, 8245, 0,
- 3158, 92396, 3983, 0, 923, 0, 69397, 292, 0, 126548, 0, 3221, 1763, 0, 0,
- 0, 0, 7253, 0, 68391, 75002, 0, 3637, 12996, 0, 70461, 0, 0, 3228, 0, 0,
- 0, 0, 0, 0, 120833, 118939, 0, 7696, 0, 0, 0, 0, 43316, 4177, 0, 9089, 0,
- 128805, 72116, 64500, 68133, 0, 0, 1856, 100572, 0, 6379, 0, 118999, 0,
- 3208, 0, 0, 0, 0, 0, 0, 129402, 0, 0, 0, 2033, 0, 0, 0, 55254, 7740, 0,
- 0, 0, 128197, 0, 93988, 0, 67612, 0, 0, 41689, 129380, 0, 0, 6646, 0, 0,
- 0, 983945, 0, 0, 4573, 0, 0, 0, 0, 0, 92961, 0, 128222, 41688, 0, 0, 0,
+ 6203, 4247, 0, 11920, 8274, 68240, 129694, 1657, 0, 121276, 0, 0, 2954,
+ 43506, 42837, 0, 0, 71179, 0, 0, 0, 66476, 68450, 0, 0, 0, 43362, 983134,
+ 129596, 11705, 0, 0, 0, 127354, 0, 11710, 0, 0, 0, 0, 74429, 0, 0, 1058,
+ 129555, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 118972, 0, 65322, 0, 6441, 0, 0,
+ 2547, 66484, 43634, 0, 5871, 0, 0, 0, 0, 0, 0, 71204, 0, 0, 1865, 0, 0,
+ 69950, 0, 93021, 73713, 0, 71199, 65826, 2069, 0, 119092, 43999, 2997, 0,
+ 126588, 0, 65319, 0, 12316, 0, 0, 123630, 8776, 0, 0, 66294, 13130, 0,
+ 71191, 126625, 0, 10030, 11709, 12364, 983834, 0, 11704, 0, 0, 68672, 0,
+ 0, 0, 0, 11706, 9710, 0, 82985, 0, 413, 65623, 0, 0, 0, 74446, 0, 1042,
+ 0, 128378, 12171, 119240, 0, 69384, 4984, 0, 708, 11391, 0, 0, 0, 983911,
+ 1308, 0, 3673, 810, 0, 120933, 0, 0, 0, 1917, 3000, 0, 0, 0, 65628,
+ 66387, 74470, 0, 0, 0, 10027, 0, 0, 0, 0, 128831, 983167, 2980, 755, 0,
+ 0, 65622, 0, 121012, 7277, 121022, 0, 0, 0, 0, 8730, 0, 0, 0, 7274,
+ 119250, 0, 7275, 0, 935, 0, 0, 377, 42325, 121103, 0, 101133, 101132,
+ 101135, 101134, 0, 74911, 2417, 101130, 0, 19912, 0, 0, 101128, 101127,
+ 0, 101129, 101124, 7248, 101126, 101125, 1781, 5496, 3627, 62, 1649, 0,
+ 964, 0, 0, 0, 0, 92897, 0, 0, 127364, 0, 43689, 127911, 66287, 78812,
+ 64389, 66575, 0, 73041, 0, 129687, 0, 7677, 2991, 0, 0, 0, 0, 72201, 0,
+ 11341, 127049, 0, 65625, 9714, 11692, 0, 0, 120850, 6478, 10195, 43673,
+ 65237, 6241, 0, 0, 0, 6238, 0, 129889, 0, 4409, 0, 0, 67170, 0, 0, 0,
+ 94047, 6237, 5461, 66851, 9176, 92882, 121341, 65231, 0, 0, 121182,
+ 128468, 0, 44018, 0, 64765, 0, 0, 0, 5685, 0, 2461, 0, 7091, 0, 0, 0,
+ 68163, 0, 73030, 0, 0, 73928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68506, 0, 0, 0,
+ 0, 0, 2542, 0, 0, 0, 128176, 5776, 0, 0, 0, 0, 0, 11987, 0, 0, 75036,
+ 68744, 0, 0, 10039, 42828, 0, 0, 0, 0, 0, 10721, 67664, 43433, 0, 0,
+ 41875, 0, 41870, 266, 129066, 0, 41873, 71271, 0, 0, 0, 0, 0, 0, 41871,
+ 66186, 3734, 7734, 43683, 8750, 110600, 66011, 92899, 0, 127937, 0, 0,
+ 10572, 0, 42906, 0, 64349, 7287, 0, 0, 0, 0, 11167, 69220, 0, 43429, 0,
+ 1697, 0, 0, 68633, 7286, 0, 128738, 10031, 78754, 0, 68645, 8620, 0,
+ 42162, 0, 0, 7285, 0, 119577, 0, 66842, 43677, 41583, 0, 65799, 129332,
+ 0, 0, 0, 0, 110806, 0, 3609, 0, 129448, 119074, 125116, 126254, 128108,
+ 73948, 0, 0, 0, 0, 129189, 42732, 92699, 74984, 68620, 11691, 74985, 0,
+ 0, 0, 0, 0, 6348, 243, 74075, 0, 0, 92309, 123585, 0, 0, 10648, 8538,
+ 43687, 0, 0, 0, 70515, 0, 118954, 92886, 13307, 129573, 92891, 0, 120770,
+ 983831, 0, 0, 0, 0, 214, 0, 0, 0, 65893, 0, 120488, 128386, 0, 92893, 0,
+ 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 1016, 0, 0, 0, 3885, 92,
+ 65456, 64608, 0, 0, 0, 70656, 113742, 0, 0, 0, 128128, 983838, 0, 0,
+ 6791, 983842, 127960, 0, 0, 0, 118976, 0, 7328, 92358, 0, 7995, 8759,
+ 43421, 0, 68029, 0, 0, 125272, 0, 3197, 0, 0, 0, 983150, 0, 11595, 0, 0,
+ 43435, 0, 0, 0, 0, 0, 70660, 0, 741, 83291, 5494, 0, 70668, 1990, 11107,
+ 4498, 0, 0, 70658, 0, 0, 2960, 73779, 0, 8969, 101256, 43424, 0, 101257,
+ 2950, 101251, 101254, 101253, 370, 0, 101250, 101249, 0, 0, 0, 0, 0, 0,
+ 0, 122900, 0, 0, 983251, 0, 2964, 43663, 0, 6344, 0, 0, 10144, 0, 8252,
+ 729, 66016, 78446, 0, 0, 0, 78740, 43669, 9032, 0, 0, 0, 0, 0, 0, 0, 0,
+ 74612, 3761, 101261, 101260, 101263, 101262, 0, 0, 3850, 101258, 0,
+ 128389, 0, 0, 0, 0, 8611, 0, 0, 0, 43691, 125032, 0, 41802, 120540, 0, 0,
+ 0, 0, 0, 3848, 101230, 113800, 127536, 101227, 101226, 101229, 101228,
+ 663, 0, 0, 0, 0, 0, 0, 0, 0, 13221, 0, 0, 101244, 101243, 101246, 101245,
+ 0, 65579, 12980, 68046, 12143, 0, 128067, 0, 43441, 41804, 101241,
+ 101240, 101235, 101234, 101237, 101236, 66329, 0, 72324, 101232, 0,
+ 125038, 0, 129383, 101214, 101213, 0, 101215, 101210, 0, 101212, 101211,
+ 0, 1097, 129033, 0, 101209, 101208, 93828, 0, 101205, 101204, 101207,
+ 101206, 101201, 101200, 101203, 101202, 0, 13110, 0, 983867, 68229, 1000,
+ 0, 0, 101222, 1209, 101224, 101223, 92354, 1073, 6321, 77878, 0, 0,
+ 68213, 0, 12167, 0, 0, 0, 0, 73673, 121500, 0, 121501, 0, 6587, 0, 0, 0,
+ 9231, 0, 2959, 101191, 0, 101193, 101188, 101187, 101190, 101189, 101184,
+ 0, 101186, 42941, 0, 0, 68434, 0, 70742, 0, 0, 12290, 0, 0, 110801, 0,
+ 77873, 8205, 110803, 5131, 0, 0, 0, 0, 0, 0, 1944, 78453, 0, 0, 119990,
+ 119991, 12701, 78492, 11308, 119995, 0, 113702, 66836, 119999, 74263,
+ 92382, 120002, 120003, 7075, 101196, 101199, 101198, 41817, 75063, 42275,
+ 101194, 120012, 120013, 120014, 42943, 6041, 0, 41899, 0, 8002, 0, 41902,
+ 0, 0, 64332, 0, 7813, 119117, 0, 41900, 120633, 101167, 7281, 78455,
+ 7279, 12041, 93027, 101165, 12673, 0, 129123, 9660, 0, 72984, 101161, 0,
+ 0, 0, 92901, 2970, 0, 101180, 101179, 77870, 101181, 0, 0, 101178, 0, 0,
+ 0, 0, 0, 3486, 101174, 101177, 101176, 101171, 101170, 101173, 101172, 0,
+ 69920, 101169, 66834, 0, 983987, 0, 68312, 101150, 65673, 1019, 78495,
+ 4148, 0, 12289, 101147, 4316, 0, 13119, 983913, 101145, 101144, 0, 0,
+ 101141, 101140, 43434, 41865, 101137, 9163, 8659, 9072, 5867, 13302,
+ 7622, 7120, 0, 0, 0, 0, 7400, 5416, 101160, 101159, 10817, 101153,
+ 101156, 101155, 0, 68162, 41855, 41867, 0, 983224, 0, 11536, 71988, 0,
+ 7115, 0, 0, 5498, 7337, 41536, 0, 0, 92587, 7221, 8997, 0, 0, 0, 71949,
+ 0, 0, 127814, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 121292, 0, 43454, 63903,
+ 63902, 63901, 0, 3971, 0, 0, 2952, 0, 11038, 10901, 63900, 63899, 63898,
+ 5198, 667, 43273, 63887, 63886, 128458, 78521, 66830, 0, 92714, 4159, 0,
+ 0, 63885, 63884, 63883, 63882, 63880, 8555, 63878, 63877, 93057, 0, 0,
+ 63881, 10746, 0, 118983, 0, 63876, 63875, 63874, 63873, 7432, 1913,
+ 41913, 63852, 0, 128971, 0, 983875, 0, 446, 41911, 0, 63851, 63850,
+ 41910, 0, 63846, 2972, 63844, 7262, 0, 63849, 63848, 63847, 72990, 6570,
+ 0, 7259, 63842, 4178, 63840, 121321, 41521, 63894, 63893, 63892, 0, 0,
+ 1105, 4180, 0, 7418, 0, 129714, 63891, 63890, 63889, 63888, 0, 0, 0, 0,
+ 1678, 0, 66909, 0, 0, 0, 0, 11192, 128360, 128404, 9159, 70089, 63861,
+ 63860, 63859, 63858, 63865, 1615, 63863, 63862, 0, 0, 0, 0, 63857, 63856,
+ 71902, 0, 1077, 0, 65099, 0, 0, 0, 0, 0, 0, 42773, 121331, 0, 0, 119220,
+ 120912, 129564, 0, 1112, 119122, 8686, 120654, 0, 65081, 0, 0, 0, 11077,
+ 0, 7260, 0, 5327, 0, 63870, 63869, 3847, 63867, 0, 2903, 0, 3001, 66762,
+ 0, 43746, 0, 63866, 0, 0, 0, 0, 0, 127785, 68420, 2990, 0, 128254, 0, 0,
+ 0, 0, 1117, 118987, 12212, 129003, 129151, 63836, 63835, 63834, 0, 0,
+ 63839, 63838, 63837, 0, 125095, 63833, 6042, 66360, 0, 74808, 0, 63821,
+ 63820, 63819, 63818, 0, 0, 9047, 63822, 128328, 6091, 0, 10691, 0, 74344,
+ 8226, 0, 63812, 63811, 63810, 63809, 2289, 63815, 63814, 63813, 6047, 0,
+ 0, 780, 63808, 77925, 77922, 65147, 63931, 63930, 2076, 1093, 9882,
+ 63934, 2082, 63932, 75050, 63929, 63928, 63927, 77934, 9806, 65566,
+ 77933, 63922, 63921, 2086, 0, 63926, 2984, 5968, 63923, 0, 0, 129458,
+ 11137, 13169, 5290, 2089, 0, 63827, 1088, 63825, 7268, 1084, 1085, 63829,
+ 1083, 10131, 7283, 0, 0, 0, 1092, 0, 7273, 983272, 44016, 43627, 0, 0, 0,
+ 11809, 0, 0, 0, 2965, 7258, 8808, 0, 1089, 7278, 63937, 63936, 43405,
+ 11106, 940, 5787, 10099, 63938, 101269, 63897, 101271, 2994, 101265,
+ 101264, 101267, 101266, 77939, 77940, 77937, 77938, 74343, 93043, 72704,
+ 660, 10127, 666, 0, 5532, 43667, 5533, 77941, 0, 0, 0, 979, 0, 0, 72706,
+ 92652, 9108, 0, 128374, 129403, 63951, 71685, 0, 0, 128782, 63946, 1707,
+ 983824, 128612, 63950, 63949, 63948, 63947, 63945, 6038, 63943, 63942,
+ 101274, 0, 101276, 101275, 0, 0, 0, 0, 0, 0, 73884, 0, 1690, 63919,
+ 63918, 63917, 70865, 43659, 0, 983829, 0, 2054, 0, 78515, 63916, 9184,
+ 63914, 69737, 63911, 63910, 63909, 63908, 0, 0, 63913, 6044, 0, 0, 9061,
+ 5534, 10672, 11653, 124932, 5531, 101501, 101500, 101503, 101502, 0, 0,
+ 11957, 101498, 68668, 0, 0, 0, 10474, 43426, 0, 42354, 101492, 101491,
+ 101494, 101493, 101488, 8413, 66841, 101489, 7269, 7272, 0, 0, 101471,
+ 101470, 78460, 0, 101467, 101466, 101469, 101468, 0, 0, 0, 66840, 0,
+ 101465, 128441, 0, 101462, 101461, 92187, 7270, 101458, 101457, 6628,
+ 1076, 128700, 0, 101456, 0, 0, 0, 0, 12807, 43413, 63906, 4548, 63904,
+ 71187, 70393, 41729, 44005, 1307, 0, 101473, 101472, 0, 0, 128268, 0,
+ 8180, 0, 127778, 0, 0, 5413, 43681, 123205, 3493, 0, 0, 0, 92544, 73937,
+ 10517, 0, 4518, 10990, 101447, 5167, 4481, 3771, 101443, 2710, 0, 66277,
+ 0, 0, 43073, 0, 0, 0, 0, 0, 0, 119659, 1628, 0, 0, 0, 65262, 66809,
+ 10783, 11172, 0, 0, 70840, 113679, 0, 119029, 0, 0, 41530, 66843, 4457,
+ 0, 0, 0, 0, 0, 41529, 0, 0, 6031, 65807, 70814, 0, 101455, 71984, 69705,
+ 101452, 101451, 11926, 6033, 9656, 0, 0, 0, 68869, 0, 128930, 0, 128100,
+ 0, 42612, 43655, 0, 0, 0, 66468, 0, 0, 68623, 101423, 0, 0, 101420,
+ 101419, 101422, 101421, 0, 1151, 101418, 73709, 127544, 0, 71106, 0, 0,
+ 0, 0, 0, 101437, 101436, 11527, 101438, 0, 0, 11538, 101434, 0, 11020, 0,
+ 66467, 101432, 8087, 71700, 101433, 9894, 101427, 101430, 70824, 101424,
+ 0, 78513, 8053, 0, 0, 0, 0, 101407, 101406, 0, 63845, 101403, 101402,
+ 78602, 101404, 13084, 70170, 8741, 0, 0, 101401, 0, 64605, 83051, 101397,
+ 473, 43415, 101394, 101393, 101396, 1087, 124966, 71275, 101392, 0,
+ 66439, 43218, 0, 0, 7237, 101414, 101417, 101416, 71996, 101410, 92261,
+ 101412, 121036, 4384, 74220, 101408, 2058, 917561, 0, 129462, 0, 0, 0,
+ 3857, 0, 0, 0, 64630, 0, 0, 74168, 0, 125088, 4421, 0, 0, 101381, 66400,
+ 101383, 68431, 101377, 101376, 101379, 83053, 0, 0, 69640, 127861, 0,
+ 437, 0, 0, 0, 0, 65236, 13290, 119180, 4997, 64306, 0, 0, 4999, 0, 0, 0,
+ 4711, 120769, 0, 2739, 0, 92915, 74834, 0, 127175, 0, 0, 0, 0, 0, 1779,
+ 6600, 6601, 0, 5325, 101390, 101389, 13058, 101391, 101386, 0, 92186,
+ 101387, 71845, 10575, 43399, 0, 101385, 101384, 1104, 0, 0, 10655, 0, 0,
+ 0, 0, 1082, 110878, 0, 67401, 0, 0, 0, 0, 6783, 0, 0, 42867, 69655,
+ 44021, 6458, 0, 0, 0, 0, 0, 0, 1273, 43407, 0, 0, 0, 0, 1313, 6322,
+ 41720, 128627, 66433, 0, 0, 0, 11216, 0, 0, 0, 43437, 93833, 0, 0, 0,
+ 5122, 0, 72728, 129520, 70161, 0, 0, 0, 0, 0, 8303, 0, 128926, 0, 10003,
+ 0, 0, 0, 1686, 0, 0, 42834, 3664, 0, 126088, 121346, 0, 0, 4324, 126, 0,
+ 0, 0, 0, 0, 65166, 0, 0, 0, 0, 43817, 0, 43822, 0, 0, 65600, 13002, 0, 0,
+ 0, 1103, 0, 119575, 129452, 0, 13078, 0, 8116, 0, 2050, 0, 0, 1102, 0,
+ 6555, 0, 0, 74003, 74794, 0, 0, 42591, 127278, 0, 1111, 0, 75047, 4707,
+ 0, 0, 0, 0, 43468, 4522, 8645, 0, 74857, 0, 11352, 0, 0, 0, 2293, 0, 0,
+ 0, 128265, 71709, 0, 0, 0, 93827, 0, 0, 0, 128488, 0, 160, 2677, 0, 0,
+ 120141, 0, 0, 70790, 0, 42770, 0, 71986, 0, 43821, 113769, 0, 0, 43816,
+ 0, 0, 1079, 3867, 64817, 0, 0, 0, 0, 64768, 0, 0, 4005, 983211, 0, 10991,
+ 0, 92957, 917578, 917581, 917580, 917575, 128314, 917577, 917576, 917571,
+ 78534, 917573, 917572, 0, 0, 128359, 73458, 0, 3339, 11448, 1106, 917591,
+ 917590, 917593, 3340, 917587, 917586, 917589, 917588, 917583, 10605,
+ 1309, 74996, 120743, 92650, 0, 0, 9485, 0, 0, 0, 0, 0, 125002, 92533,
+ 128487, 0, 129285, 4338, 11238, 0, 66825, 0, 0, 0, 0, 0, 0, 74128, 0, 0,
+ 73680, 0, 129438, 9553, 1590, 63777, 63776, 128677, 63782, 63781, 63780,
+ 63779, 1583, 101525, 101528, 101527, 101522, 101521, 101524, 101523,
+ 41522, 0, 92168, 983784, 66759, 0, 983580, 0, 0, 0, 0, 11394, 0, 983071,
+ 0, 66823, 1334, 0, 4479, 0, 0, 120663, 0, 122883, 10497, 0, 0, 983777,
+ 66828, 0, 0, 0, 6809, 63786, 0, 0, 63791, 63790, 1145, 63788, 101535,
+ 63785, 63784, 63783, 10192, 65267, 101533, 101532, 8928, 0, 0, 0, 0, 0,
+ 74216, 66805, 0, 0, 63759, 63758, 3523, 1074, 0, 121340, 74077, 0, 0, 0,
+ 63757, 43145, 63755, 63754, 63752, 1349, 63750, 63749, 0, 0, 0, 63753,
+ 63802, 41084, 72784, 0, 41930, 63805, 63804, 11140, 63801, 41082, 43843,
+ 42787, 101514, 0, 101516, 101515, 63793, 63792, 0, 128241, 10201, 12238,
+ 63795, 42358, 92394, 43862, 101511, 101510, 41932, 66826, 101507, 101506,
+ 0, 121136, 0, 7950, 63772, 63771, 63770, 0, 63767, 63766, 2793, 63764, 0,
+ 128501, 63769, 9530, 0, 92398, 0, 128642, 63763, 63762, 4595, 63760, 792,
+ 0, 0, 0, 8742, 0, 0, 0, 63744, 0, 0, 120815, 63748, 63747, 63746, 63745,
+ 5055, 0, 0, 1090, 0, 125268, 11665, 127809, 4558, 0, 72211, 0, 0, 0,
+ 11513, 0, 6157, 63775, 63774, 63773, 0, 12170, 9067, 0, 0, 10872, 129643,
+ 43891, 43893, 43892, 129747, 43933, 0, 128231, 0, 0, 0, 0, 0, 11063, 0,
+ 43888, 0, 0, 128368, 43889, 0, 73807, 983104, 7386, 0, 0, 70295, 0, 0, 0,
+ 71201, 128460, 0, 0, 0, 0, 69915, 2918, 66820, 65300, 0, 127859, 64726,
+ 2790, 0, 3793, 42065, 127829, 0, 129560, 0, 0, 0, 0, 0, 92712, 0, 12923,
+ 5270, 0, 0, 0, 65813, 0, 128499, 0, 75012, 0, 10888, 0, 93997, 94180,
+ 3330, 129417, 0, 0, 0, 0, 0, 8220, 0, 0, 101581, 101580, 1627, 101582, 0,
+ 0, 5371, 101578, 0, 1826, 118794, 0, 0, 70023, 0, 0, 0, 71108, 0, 0, 0,
+ 0, 92207, 68125, 74898, 101069, 0, 72006, 71098, 70029, 0, 43116, 101589,
+ 70019, 64346, 0, 101585, 66818, 101587, 70031, 0, 12666, 120413, 120420,
+ 120414, 101567, 120428, 0, 101564, 101563, 65509, 101565, 7449, 0,
+ 101562, 0, 7438, 0, 0, 9054, 971, 101558, 101561, 101560, 65195, 64767,
+ 101557, 101556, 0, 0, 101553, 101552, 0, 0, 0, 64303, 101576, 2303, 0,
+ 101577, 101572, 101571, 65833, 101573, 7271, 0, 101570, 101569, 0, 12229,
+ 0, 0, 43411, 73751, 0, 64813, 0, 0, 10476, 0, 0, 3932, 64958, 0, 0,
+ 73989, 0, 0, 101542, 101541, 101544, 101543, 101538, 101537, 101540,
+ 101539, 92645, 65474, 4796, 118892, 129357, 65479, 0, 42895, 11858,
+ 65500, 0, 9899, 92608, 0, 404, 65484, 120639, 0, 5788, 127852, 0, 65491,
+ 1831, 66020, 0, 983993, 92588, 0, 1343, 120784, 0, 0, 12018, 0, 0, 0, 0,
+ 0, 4422, 4708, 3799, 101550, 119357, 0, 101547, 101546, 101549, 101548,
+ 983095, 0, 1364, 0, 8038, 101545, 0, 12868, 0, 70425, 55223, 0, 64414,
+ 110689, 0, 0, 0, 0, 0, 0, 118802, 0, 42855, 118856, 42866, 0, 0, 0, 0,
+ 66438, 0, 983977, 119356, 119355, 119354, 0, 983576, 0, 73013, 67685,
+ 128062, 119350, 0, 64512, 10404, 10340, 119352, 1556, 5274, 0, 127821,
+ 10017, 9733, 0, 129476, 0, 41373, 0, 0, 0, 0, 0, 349, 4863, 41371, 0, 0,
+ 0, 0, 72295, 4398, 8543, 65618, 128018, 0, 0, 0, 0, 12441, 0, 119348,
+ 119347, 4318, 10452, 0, 8032, 0, 119349, 119344, 0, 127844, 121156, 0,
+ 110729, 119345, 8597, 0, 110727, 9864, 0, 0, 0, 0, 0, 0, 0, 7722, 0, 0,
+ 0, 0, 0, 66590, 0, 0, 129850, 0, 0, 0, 4965, 0, 917536, 0, 123196, 0, 0,
+ 0, 10436, 119342, 43147, 119340, 10356, 10420, 982, 2756, 0, 983978, 0,
+ 0, 11162, 119338, 0, 92914, 0, 65110, 0, 0, 983781, 78543, 0, 118793, 0,
+ 128112, 119179, 64476, 1694, 8216, 0, 0, 78539, 0, 65620, 0, 78537, 0, 0,
+ 42158, 65621, 69955, 120324, 120327, 120326, 120321, 120320, 120323,
+ 120322, 12314, 65616, 55221, 43825, 983553, 119337, 68060, 119335, 0,
+ 71874, 123628, 128537, 119332, 73089, 0, 41347, 0, 0, 8842, 0, 0, 4379,
+ 127393, 12692, 0, 0, 66353, 71875, 0, 0, 92907, 0, 0, 71877, 120303,
+ 65619, 9872, 0, 0, 1846, 120309, 120308, 119256, 71192, 120305, 120304,
+ 120307, 6442, 120317, 120316, 5379, 120318, 110717, 120312, 120315,
+ 71876, 0, 65934, 66497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72002, 0, 6151,
+ 12110, 0, 0, 0, 0, 0, 0, 0, 0, 68335, 0, 0, 0, 0, 0, 0, 66041, 9676,
+ 10202, 0, 0, 0, 64575, 126637, 11965, 0, 124936, 0, 0, 0, 0, 0, 9698,
+ 66293, 0, 119651, 0, 0, 41921, 0, 0, 0, 119258, 0, 0, 0, 0, 0, 8012,
+ 12355, 12353, 0, 0, 74107, 0, 0, 41925, 0, 41920, 65444, 0, 0, 41923,
+ 12694, 0, 10112, 1294, 0, 120091, 0, 120092, 0, 0, 128474, 121400, 0, 0,
+ 0, 8718, 0, 10284, 10268, 10380, 10316, 92593, 0, 71850, 0, 0, 92889, 0,
+ 0, 0, 0, 9342, 12829, 0, 0, 101239, 127978, 0, 0, 69428, 0, 73767, 72347,
+ 0, 7956, 598, 0, 72329, 93837, 0, 0, 128860, 0, 120041, 0, 0, 101242, 0,
+ 0, 847, 0, 9529, 0, 0, 0, 101247, 120035, 0, 0, 0, 67411, 0, 0, 0,
+ 120040, 0, 128580, 0, 9624, 0, 0, 0, 65463, 1554, 0, 0, 0, 0, 71879, 0,
+ 0, 0, 121161, 19963, 123625, 0, 72326, 92933, 71887, 10324, 10292, 65546,
+ 0, 68141, 8372, 0, 0, 83018, 120022, 10175, 10388, 42799, 0, 983180,
+ 10568, 0, 127400, 0, 0, 0, 983743, 0, 4366, 0, 983786, 0, 0, 42608, 0,
+ 9884, 0, 0, 0, 0, 129180, 0, 0, 0, 0, 1609, 0, 92773, 73448, 0, 11661, 0,
+ 5818, 0, 0, 0, 9540, 0, 2554, 5158, 0, 2213, 0, 0, 78522, 43079, 0, 0,
+ 8264, 11175, 64553, 120863, 42155, 0, 0, 0, 0, 0, 69552, 8676, 0, 129927,
+ 0, 451, 0, 0, 0, 0, 0, 0, 123167, 43609, 0, 0, 1440, 0, 0, 0, 127061,
+ 11005, 0, 66656, 127063, 0, 129936, 0, 127065, 43393, 0, 120643, 0, 0, 0,
+ 0, 120798, 0, 0, 0, 0, 0, 0, 70435, 64356, 0, 0, 0, 383, 7154, 127815,
+ 43495, 128809, 121448, 0, 0, 0, 11286, 0, 0, 0, 0, 0, 0, 0, 42644,
+ 129824, 129797, 129801, 8292, 0, 4980, 113726, 92674, 70130, 0, 0, 0, 0,
+ 74912, 0, 10631, 83330, 100488, 68042, 0, 0, 7900, 101252, 0, 78779,
+ 4198, 128555, 0, 0, 0, 123159, 0, 0, 12931, 0, 0, 0, 2088, 0, 72164,
+ 129284, 0, 0, 69265, 0, 0, 0, 69694, 129808, 129794, 8593, 0, 0, 0, 0, 0,
+ 0, 11798, 0, 100483, 0, 0, 0, 64211, 128865, 120494, 0, 0, 0, 121228,
+ 68901, 128788, 0, 0, 65162, 0, 0, 0, 0, 0, 128130, 0, 92264, 127153, 0,
+ 128818, 0, 0, 61, 0, 74373, 92182, 119554, 0, 0, 12089, 0, 65834, 83281,
+ 119671, 128701, 0, 0, 42566, 42743, 0, 69824, 0, 92653, 0, 0, 42621, 0,
+ 0, 0, 0, 0, 43266, 0, 0, 0, 74843, 0, 0, 119103, 64417, 0, 0, 64737, 0,
+ 0, 8930, 0, 0, 66900, 10056, 1800, 0, 0, 0, 0, 121175, 7743, 0, 0,
+ 119528, 92640, 92453, 9034, 6039, 129139, 10075, 0, 0, 0, 10748, 0, 0, 0,
+ 0, 0, 92984, 0, 0, 128183, 129421, 0, 43064, 127558, 0, 7539, 0, 0, 0, 0,
+ 0, 0, 0, 92898, 42567, 0, 0, 73886, 0, 129988, 12326, 0, 0, 0, 0, 11355,
+ 0, 0, 0, 0, 69437, 0, 129803, 129811, 119537, 72327, 43005, 65342,
+ 118902, 0, 0, 8644, 0, 0, 11186, 74296, 41909, 0, 128682, 2791, 0, 1891,
+ 0, 0, 41907, 66647, 0, 0, 41906, 0, 0, 10773, 70206, 0, 0, 0, 6412, 2061,
+ 8520, 13146, 0, 0, 83275, 65902, 2882, 0, 126232, 65852, 0, 983306, 0,
+ 123627, 0, 0, 0, 0, 0, 128098, 0, 0, 0, 70871, 0, 0, 0, 120087, 0, 0, 0,
+ 93971, 0, 3844, 6842, 0, 0, 6612, 0, 0, 0, 0, 0, 783, 0, 0, 0, 983064,
+ 68032, 119225, 0, 0, 68378, 4556, 67839, 68480, 78663, 120069, 120074,
+ 67657, 10510, 4382, 74218, 42194, 0, 0, 9177, 8902, 93958, 9839, 0,
+ 120700, 0, 0, 63999, 41904, 41917, 9788, 120973, 0, 1862, 0, 0, 0, 41915,
+ 0, 41919, 63994, 41914, 7981, 0, 0, 0, 0, 0, 0, 0, 120834, 0, 0, 0, 6784,
+ 78788, 0, 0, 0, 0, 127534, 127484, 127476, 0, 0, 983941, 64289, 65289, 0,
+ 129539, 129575, 64509, 0, 0, 126505, 11051, 0, 66635, 55259, 65885, 0,
+ 128310, 0, 0, 0, 0, 7500, 4506, 0, 0, 0, 0, 0, 126609, 4040, 128680,
+ 6167, 0, 0, 0, 0, 0, 0, 7830, 43036, 0, 0, 63990, 19947, 63988, 63987, 0,
+ 63993, 10440, 9611, 2244, 71883, 0, 65260, 63986, 11446, 63984, 92641,
+ 3435, 119652, 0, 119108, 0, 128632, 0, 0, 12748, 0, 0, 92705, 0, 78790,
+ 0, 0, 63956, 42458, 63954, 63953, 63960, 63959, 63958, 11596, 0, 11469,
+ 69267, 42306, 2723, 0, 0, 70027, 0, 0, 0, 128093, 2880, 0, 0, 0, 0,
+ 128506, 3498, 4378, 0, 129825, 0, 65551, 118928, 0, 43387, 0, 64415,
+ 128898, 0, 0, 0, 0, 8161, 393, 12013, 0, 92216, 126479, 63965, 63964,
+ 63963, 42345, 0, 0, 63967, 42498, 0, 2927, 0, 63961, 0, 0, 983927, 0,
+ 69699, 0, 42340, 0, 0, 0, 10730, 0, 69688, 0, 64187, 0, 0, 12437, 9813,
+ 0, 42453, 1604, 9565, 0, 69701, 69235, 42414, 110724, 129196, 0, 42301,
+ 11372, 0, 917973, 0, 0, 63980, 63979, 63978, 0, 128207, 12017, 63982,
+ 63981, 73687, 0, 63977, 63976, 72794, 0, 0, 0, 63971, 4347, 4416, 63968,
+ 11009, 63974, 63973, 402, 69390, 13147, 0, 0, 64646, 13228, 0, 0, 3515,
+ 74252, 65261, 0, 0, 6259, 0, 0, 0, 0, 0, 0, 74813, 74425, 0, 126998,
+ 126114, 0, 0, 0, 129933, 983698, 0, 0, 74301, 0, 0, 0, 0, 74060, 0, 0,
+ 66235, 5145, 0, 0, 128394, 0, 73120, 0, 7402, 0, 0, 0, 7952, 7832, 43382,
+ 66616, 0, 983931, 120852, 0, 127875, 64866, 0, 0, 0, 78784, 74248, 0, 0,
+ 983196, 0, 0, 0, 78656, 42390, 0, 0, 983921, 0, 0, 0, 0, 9508, 0, 9544,
+ 11520, 0, 0, 3377, 0, 129562, 0, 0, 0, 0, 0, 66280, 0, 127198, 0, 0, 0,
+ 1955, 119565, 0, 0, 3076, 0, 42168, 73049, 66304, 0, 0, 8917, 42403, 301,
+ 0, 0, 0, 0, 0, 0, 0, 0, 67819, 92987, 0, 0, 0, 983204, 0, 69403, 3182, 0,
+ 0, 0, 0, 0, 42169, 123162, 74244, 0, 42329, 0, 66326, 6841, 0, 128913, 0,
+ 1219, 3934, 71276, 11483, 74510, 101122, 0, 42442, 65470, 69565, 0,
+ 64622, 7759, 42482, 485, 0, 0, 42290, 0, 0, 42280, 0, 0, 11655, 64379,
+ 127913, 42431, 10126, 42318, 0, 119631, 74397, 42470, 0, 68315, 0,
+ 110829, 74041, 0, 0, 0, 5411, 0, 0, 0, 64205, 0, 64206, 42393, 64478,
+ 1310, 125007, 0, 12052, 10643, 55271, 72727, 0, 121045, 0, 0, 118852, 0,
+ 0, 0, 0, 113826, 0, 0, 64385, 0, 0, 0, 0, 0, 0, 93848, 92560, 2713, 0,
+ 9650, 0, 0, 120602, 1406, 0, 78174, 92659, 0, 68223, 0, 0, 0, 0, 43475,
+ 0, 65287, 1508, 127938, 8779, 10569, 75034, 0, 0, 0, 0, 0, 0, 0, 70786,
+ 0, 0, 128344, 9185, 0, 42932, 43403, 0, 0, 0, 0, 0, 0, 0, 0, 12955, 0,
+ 2888, 0, 0, 0, 0, 0, 0, 0, 2878, 0, 0, 0, 0, 0, 0, 129028, 13203, 0,
+ 10429, 10365, 0, 0, 127165, 7503, 0, 113676, 68381, 119658, 0, 8986, 0,
+ 10632, 11934, 11452, 1332, 0, 0, 0, 0, 73741, 1791, 8850, 9288, 0, 2892,
+ 0, 43394, 555, 0, 0, 0, 0, 64172, 118899, 0, 0, 0, 0, 8854, 0, 5858,
+ 73101, 10582, 0, 0, 1361, 0, 0, 7905, 0, 65256, 0, 41210, 0, 0, 71884, 0,
+ 0, 0, 6828, 0, 92302, 0, 1342, 68440, 0, 64161, 10903, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, 126467, 41972, 0, 0, 0, 9127, 0,
+ 66619, 126489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11620, 0, 1149, 68316, 0, 0, 0,
+ 0, 0, 92492, 0, 118784, 0, 0, 0, 12838, 0, 118819, 0, 0, 0, 0, 41087, 0,
+ 0, 0, 0, 12036, 0, 0, 0, 0, 0, 64428, 12227, 0, 0, 0, 0, 125248, 120964,
+ 0, 0, 0, 0, 0, 69566, 0, 0, 0, 0, 0, 1743, 0, 0, 0, 65186, 0, 0, 0, 0, 0,
+ 64439, 0, 68062, 0, 111259, 111258, 43866, 0, 111263, 3395, 9362, 111260,
+ 0, 111257, 111256, 111255, 0, 0, 41091, 3426, 1344, 111249, 111248,
+ 126215, 4735, 11111, 6119, 111251, 42699, 0, 0, 74818, 1423, 0, 0, 0, 0,
+ 12039, 10559, 0, 0, 0, 9472, 67734, 11929, 0, 0, 0, 0, 128826, 0, 11579,
+ 0, 0, 128364, 0, 92185, 0, 0, 1004, 92584, 0, 0, 0, 0, 0, 2556, 0, 0,
+ 72790, 0, 0, 9686, 0, 0, 0, 70109, 111102, 0, 10718, 13154, 111100, 9139,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 130035, 41708, 12860, 41703, 0, 42090, 5403,
+ 10352, 73917, 129144, 111096, 0, 5140, 3753, 118785, 41704, 0, 43078,
+ 127789, 111092, 129360, 0, 983205, 92362, 0, 0, 2410, 92525, 0, 0, 0, 0,
+ 0, 0, 0, 0, 119253, 0, 126601, 0, 2066, 74199, 0, 43463, 10659, 119623,
+ 68863, 0, 1336, 0, 0, 69463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126639, 0, 272,
+ 0, 0, 0, 0, 983946, 128133, 0, 0, 124940, 0, 1190, 42146, 1335, 42177,
+ 43867, 0, 0, 10448, 0, 125041, 0, 0, 2099, 5120, 2409, 7799, 0, 74424, 0,
+ 126581, 4731, 0, 111199, 111198, 111197, 111196, 11689, 0, 74977, 9913,
+ 129430, 0, 0, 0, 111195, 111194, 11694, 0, 11690, 111189, 111188, 111187,
+ 11693, 111193, 111192, 43097, 11688, 0, 78797, 194, 111186, 111185,
+ 111184, 0, 0, 0, 11226, 4519, 70337, 10898, 43072, 70205, 0, 0, 0, 73094,
+ 10695, 0, 7540, 0, 110984, 41859, 6067, 0, 110982, 0, 110981, 13311, 0,
+ 41857, 0, 8359, 121224, 12689, 0, 983131, 64577, 111204, 111203, 68183,
+ 111209, 111208, 6064, 110988, 0, 110979, 74142, 0, 111201, 111200, 6051,
+ 123613, 0, 0, 983369, 0, 0, 0, 0, 0, 110864, 10537, 110862, 1276, 0,
+ 6549, 6052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1960, 0, 71232, 66297, 0, 129313,
+ 0, 0, 1345, 111213, 111212, 111211, 8956, 43083, 0, 111215, 64682, 0,
+ 6430, 69563, 111210, 119814, 0, 0, 0, 119817, 0, 492, 43087, 0, 0, 0, 0,
+ 0, 2582, 0, 0, 7444, 72863, 0, 2297, 111243, 73837, 0, 0, 65096, 197,
+ 74183, 0, 69571, 111241, 111240, 0, 66515, 43550, 119829, 111229, 111228,
+ 93764, 111226, 0, 0, 111231, 111230, 71686, 1799, 0, 42148, 74336, 0, 0,
+ 65340, 111220, 110974, 2262, 111217, 111224, 74931, 111222, 10896, 0, 0,
+ 0, 0, 6338, 111003, 110997, 110994, 111006, 111002, 111005, 0, 111279,
+ 111278, 111277, 72133, 0, 111273, 111272, 110961, 3171, 6623, 4961, 0,
+ 886, 55216, 8654, 110965, 111270, 74390, 64603, 111267, 129283, 68122, 0,
+ 43084, 0, 0, 0, 0, 69693, 8994, 10944, 65938, 111239, 111238, 111237,
+ 111236, 66279, 92890, 42510, 0, 0, 6804, 0, 1947, 0, 0, 0, 42759, 0,
+ 1705, 983345, 0, 0, 0, 0, 72722, 74036, 0, 0, 66720, 111281, 111280, 0,
+ 4909, 111285, 111284, 111283, 4904, 0, 43503, 1365, 9253, 42757, 0, 7462,
+ 0, 0, 0, 0, 119587, 0, 917579, 92526, 0, 125035, 0, 111311, 111310, 0, 0,
+ 0, 0, 93977, 0, 0, 0, 0, 3629, 0, 13005, 0, 3628, 0, 111295, 0, 0, 0, 0,
+ 111290, 64809, 2928, 4905, 111083, 851, 55233, 111291, 111059, 43086,
+ 9114, 43870, 42583, 9315, 4822, 4906, 121097, 2847, 111028, 10330, 0,
+ 1251, 7777, 41852, 125059, 111327, 111032, 111325, 12646, 0, 10259, 0,
+ 65821, 75046, 6018, 0, 111324, 111323, 111322, 68372, 111319, 111318,
+ 71893, 2558, 0, 64584, 111321, 111320, 0, 0, 0, 0, 111309, 111308,
+ 111307, 111306, 73987, 74599, 71895, 93012, 0, 128715, 0, 12867, 111296,
+ 0, 0, 11044, 111300, 111299, 8904, 11824, 65857, 0, 128674, 129027, 4387,
+ 0, 0, 0, 0, 0, 0, 0, 11842, 0, 0, 0, 5136, 1968, 983041, 126627, 1337, 0,
+ 0, 0, 0, 66506, 0, 0, 0, 0, 42314, 121384, 0, 0, 6120, 0, 65670, 68128,
+ 0, 43082, 6016, 0, 42284, 71894, 4276, 111314, 3619, 41638, 69691, 0,
+ 42322, 8853, 111043, 0, 490, 0, 13231, 68384, 72310, 65350, 0, 0, 0,
+ 68245, 42435, 6154, 0, 65354, 0, 0, 42397, 334, 72732, 42416, 65359,
+ 65273, 74634, 128227, 4442, 10364, 0, 778, 41626, 42455, 7989, 0, 3227,
+ 69907, 111053, 0, 2915, 11502, 983212, 41702, 10309, 0, 0, 0, 0, 0, 0, 0,
+ 127268, 127258, 127267, 65215, 64410, 127260, 71175, 0, 0, 0, 0, 0, 0,
+ 41700, 110651, 69266, 126488, 0, 0, 42495, 0, 0, 0, 10460, 43364, 0,
+ 1356, 3728, 42713, 0, 0, 42342, 10914, 0, 42489, 64310, 66896, 41861,
+ 42297, 0, 0, 41860, 64862, 0, 0, 5289, 42336, 128658, 0, 92529, 42410,
+ 71129, 120624, 0, 2649, 74493, 0, 126635, 0, 3382, 42449, 9081, 1658,
+ 11936, 93019, 113814, 11269, 0, 0, 43100, 69888, 65508, 0, 0, 121451, 0,
+ 0, 0, 0, 69272, 4732, 128283, 0, 0, 0, 121113, 2236, 126551, 0, 6048, 0,
+ 0, 73965, 0, 0, 0, 0, 10151, 9681, 4475, 0, 64735, 2100, 0, 0, 6035, 0,
+ 123599, 10296, 0, 0, 0, 0, 0, 0, 0, 983307, 68488, 10392, 10328, 0,
+ 43462, 0, 0, 0, 8979, 0, 0, 983304, 0, 0, 0, 10977, 0, 10344, 0, 65299,
+ 10408, 0, 0, 121187, 66505, 0, 0, 0, 0, 0, 0, 43074, 73799, 0, 0, 0, 0,
+ 3446, 0, 129891, 128692, 0, 0, 119582, 4474, 0, 43093, 6282, 0, 0,
+ 127372, 0, 0, 0, 129881, 0, 0, 0, 0, 66910, 67811, 92277, 0, 64948, 0,
+ 74347, 0, 0, 0, 983962, 8194, 0, 121165, 11010, 0, 8893, 0, 983969, 0, 0,
+ 0, 983317, 7925, 0, 0, 113825, 0, 1352, 11069, 7707, 0, 126486, 0, 0, 0,
+ 0, 65605, 6040, 0, 10071, 0, 128156, 43750, 0, 8899, 69873, 0, 0, 983311,
+ 128208, 7820, 69615, 0, 0, 7746, 1492, 0, 0, 0, 66866, 0, 11788, 65913,
+ 0, 0, 43095, 0, 0, 92265, 2999, 0, 120720, 0, 371, 0, 6023, 0, 0, 11708,
+ 0, 0, 6323, 0, 0, 0, 8938, 6043, 65866, 0, 0, 0, 72419, 0, 129480, 2589,
+ 74332, 1689, 7802, 0, 0, 0, 0, 66704, 0, 129992, 0, 0, 128127, 6049, 0,
+ 4027, 0, 0, 111334, 111333, 1503, 111331, 0, 111337, 11951, 111335, 2387,
+ 0, 0, 8289, 111330, 7326, 66514, 65514, 0, 64865, 0, 9668, 0, 0, 0, 0,
+ 93060, 6036, 92768, 4026, 74089, 127091, 0, 0, 75044, 110821, 0, 110819,
+ 0, 0, 0, 0, 6021, 0, 128288, 0, 43155, 0, 110822, 0, 111343, 42691,
+ 111341, 111340, 2246, 166, 0, 0, 0, 10623, 408, 0, 111339, 13298, 0,
+ 7426, 43694, 0, 0, 8811, 0, 0, 0, 0, 0, 74134, 983054, 0, 127811, 0, 0,
+ 0, 6645, 646, 128813, 0, 42129, 0, 120880, 0, 8697, 0, 120936, 0, 0, 0,
+ 0, 5809, 1950, 0, 92432, 68339, 0, 42136, 0, 0, 0, 0, 0, 0, 111354,
+ 983965, 0, 0, 111349, 111348, 43330, 111346, 111353, 111352, 41567,
+ 111350, 0, 0, 0, 0, 111345, 111344, 8285, 0, 4509, 0, 128361, 0, 0,
+ 129851, 0, 0, 41727, 0, 0, 0, 0, 0, 0, 0, 74512, 7027, 3886, 0, 74023,
+ 92888, 0, 0, 126092, 94058, 119855, 0, 121455, 11707, 119852, 0, 7939,
+ 10342, 92460, 72747, 121408, 917569, 0, 71198, 94077, 119847, 0, 0, 7201,
+ 0, 0, 120866, 983968, 1540, 0, 0, 0, 0, 0, 41718, 71177, 0, 0, 128001, 0,
+ 0, 119040, 0, 9619, 120840, 0, 0, 0, 0, 3560, 0, 6070, 129000, 0, 2922,
+ 6082, 70147, 65009, 983954, 0, 0, 0, 0, 0, 0, 3607, 65863, 0, 92487,
+ 42153, 121042, 0, 983843, 2032, 0, 0, 0, 0, 129985, 0, 43085, 6057, 0, 0,
+ 0, 0, 0, 0, 0, 0, 638, 6083, 126976, 0, 0, 2305, 0, 0, 0, 6056, 10878, 0,
+ 0, 6085, 0, 0, 3915, 0, 0, 0, 0, 0, 0, 4028, 1787, 0, 43096, 0, 0, 1768,
+ 0, 0, 0, 128125, 0, 0, 583, 129137, 0, 0, 66004, 0, 0, 0, 0, 0, 55267,
+ 120810, 128995, 43075, 65049, 0, 74531, 0, 93009, 70694, 0, 0, 129375,
+ 9869, 128815, 1771, 0, 0, 0, 0, 0, 0, 119115, 113708, 0, 0, 74101, 0, 0,
+ 0, 0, 0, 0, 0, 0, 12539, 123631, 0, 0, 129846, 73862, 69842, 9897, 0,
+ 100561, 0, 0, 0, 0, 0, 8931, 0, 1415, 8866, 74552, 0, 128312, 0, 983566,
+ 43106, 127275, 71089, 1580, 92278, 68424, 0, 0, 7658, 3440, 78215, 1562,
+ 0, 0, 129031, 0, 0, 0, 0, 0, 0, 6028, 68900, 42892, 0, 111016, 0, 0, 0,
+ 0, 0, 128269, 0, 66776, 42946, 127276, 129124, 0, 0, 120510, 11599, 0,
+ 11602, 11591, 11574, 11581, 11597, 11598, 6253, 11571, 11584, 70273,
+ 11569, 0, 8906, 0, 5755, 2636, 0, 10815, 11619, 129094, 0, 7815, 11616,
+ 11617, 70064, 11618, 11604, 7869, 11612, 0, 42152, 0, 0, 0, 92586,
+ 126247, 0, 92173, 0, 0, 6616, 0, 0, 120875, 391, 0, 0, 0, 42296, 11588,
+ 0, 0, 0, 68397, 0, 0, 42335, 983188, 0, 0, 7538, 94040, 0, 42491, 0, 0,
+ 128088, 4576, 0, 0, 43809, 4277, 0, 3563, 0, 42338, 368, 0, 0, 42412, 0,
+ 78209, 0, 0, 43814, 983616, 1849, 0, 9921, 42451, 4253, 0, 0, 0, 42404,
+ 64657, 73919, 3618, 78338, 0, 0, 0, 0, 0, 929, 6827, 42035, 0, 0, 0,
+ 67847, 0, 0, 0, 0, 0, 0, 0, 0, 4578, 64513, 0, 0, 0, 71049, 68090,
+ 127086, 43305, 0, 73462, 0, 0, 42048, 10166, 0, 127095, 113810, 983127,
+ 0, 983972, 0, 0, 42483, 0, 0, 0, 42291, 0, 71047, 0, 6641, 525, 66404, 0,
+ 8763, 125091, 0, 0, 0, 0, 0, 42504, 42581, 74280, 6915, 42310, 0, 8559,
+ 0, 983975, 125100, 0, 0, 11666, 8679, 0, 1576, 42423, 0, 0, 73840,
+ 983092, 11374, 0, 10889, 129076, 0, 42462, 0, 77982, 0, 2718, 42424, 0,
+ 0, 127166, 0, 1179, 0, 0, 0, 363, 11015, 72229, 0, 43857, 0, 66692, 0, 0,
+ 0, 11041, 72018, 0, 0, 0, 0, 125184, 0, 92520, 0, 9492, 66709, 9212,
+ 12833, 0, 0, 1297, 0, 0, 0, 0, 0, 0, 12924, 0, 0, 10090, 125249, 0,
+ 42505, 0, 42507, 0, 42311, 92940, 120919, 68401, 10759, 0, 0, 120924,
+ 42351, 42919, 9398, 66292, 0, 9422, 0, 0, 0, 0, 0, 129440, 92575, 1603,
+ 0, 0, 0, 0, 0, 69703, 11250, 0, 0, 10546, 0, 0, 11600, 0, 2797, 73821,
+ 42427, 306, 714, 3058, 120154, 0, 0, 0, 42395, 0, 11607, 0, 11198,
+ 127512, 0, 72232, 129067, 0, 42433, 0, 7603, 74063, 0, 42141, 0, 0, 0,
+ 129085, 8244, 362, 125069, 0, 8037, 0, 0, 0, 0, 41606, 66696, 77912, 0,
+ 2093, 0, 120676, 0, 41604, 0, 0, 0, 0, 10523, 1446, 42320, 0, 0, 64773,
+ 42472, 0, 0, 1722, 5581, 0, 64496, 0, 0, 64914, 0, 42620, 128603, 124988,
+ 0, 0, 10549, 0, 71190, 0, 0, 0, 0, 0, 71712, 0, 0, 0, 0, 0, 0, 0, 7684,
+ 66338, 0, 1174, 0, 0, 983621, 0, 0, 0, 42277, 0, 42456, 65667, 0, 0, 0,
+ 0, 42417, 0, 0, 120812, 42304, 0, 0, 0, 74443, 127894, 0, 8313, 0, 0,
+ 1316, 66690, 0, 0, 0, 0, 0, 0, 66844, 983696, 0, 0, 0, 65200, 3383, 0, 0,
+ 70063, 0, 0, 0, 42420, 119185, 0, 0, 983898, 0, 121079, 0, 0, 42343,
+ 124980, 42706, 1751, 42496, 65742, 13166, 0, 0, 0, 0, 0, 42683, 12697, 0,
+ 0, 0, 125047, 0, 42346, 0, 0, 3757, 0, 0, 121075, 65869, 0, 9247, 74976,
+ 3193, 0, 0, 42459, 7596, 7921, 0, 74095, 0, 42499, 11590, 66006, 0,
+ 42307, 0, 43953, 0, 0, 1023, 474, 0, 0, 0, 0, 42487, 0, 0, 0, 42295, 0,
+ 121474, 72237, 0, 9835, 0, 127782, 0, 12275, 0, 0, 8595, 0, 0, 0, 0, 0,
+ 10118, 0, 129156, 0, 0, 0, 0, 0, 0, 699, 0, 120923, 11601, 0, 92941, 0,
+ 7581, 0, 92530, 0, 0, 0, 7765, 65583, 0, 0, 64597, 43444, 0, 92197, 0,
+ 64279, 7036, 5823, 1937, 0, 917854, 65415, 13308, 65417, 0, 65217, 0, 0,
+ 11017, 0, 0, 7294, 0, 0, 0, 0, 42466, 65416, 68858, 0, 71350, 65413,
+ 92381, 126498, 12964, 42240, 1941, 0, 0, 1713, 0, 0, 0, 11407, 42441,
+ 128262, 6297, 0, 0, 0, 42481, 0, 0, 7179, 42289, 0, 120921, 969, 0, 0, 0,
+ 6165, 0, 0, 0, 0, 42402, 0, 0, 0, 129511, 0, 72234, 0, 0, 64876, 92635,
+ 6046, 0, 6208, 128870, 129309, 73749, 0, 0, 42422, 0, 0, 128155, 73775,
+ 338, 0, 121369, 0, 42328, 10767, 0, 8115, 0, 0, 0, 0, 92687, 0, 0, 0, 0,
+ 73029, 0, 0, 0, 71687, 4486, 128082, 0, 0, 10925, 0, 0, 0, 0, 42309,
+ 10257, 0, 10273, 7668, 10305, 42461, 74882, 42349, 8832, 0, 0, 10644, 0,
+ 129531, 42278, 0, 0, 69874, 0, 129949, 42429, 0, 42316, 11223, 0, 0,
+ 42468, 0, 0, 0, 65402, 0, 0, 72235, 0, 0, 41963, 120990, 0, 0, 125013,
+ 6823, 42391, 1588, 65400, 0, 0, 0, 65398, 787, 0, 0, 0, 0, 2078, 127239,
+ 65399, 0, 0, 0, 65401, 0, 121196, 0, 113816, 644, 0, 71335, 0, 3659, 0,
+ 0, 0, 13107, 92669, 0, 10502, 74457, 0, 11221, 41554, 0, 0, 0, 41557,
+ 11209, 0, 11070, 119221, 0, 0, 73858, 41555, 9514, 0, 66771, 64641,
+ 92447, 0, 7520, 73888, 77955, 0, 0, 0, 0, 0, 64527, 0, 0, 12723, 0,
+ 68776, 0, 0, 0, 78835, 4055, 78826, 77960, 65212, 0, 127353, 12319, 0, 0,
+ 983216, 7964, 65427, 0, 65424, 72217, 120966, 0, 65425, 74890, 128251, 0,
+ 0, 0, 3448, 10827, 0, 9866, 74527, 0, 0, 8625, 69783, 92304, 10477, 0, 0,
+ 0, 65423, 0, 0, 0, 0, 6152, 0, 0, 6629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 11046, 11490, 0, 4485, 71126, 0, 0, 0, 0, 0, 5869, 0, 119633, 0, 7040,
+ 3588, 0, 12825, 0, 0, 128569, 0, 0, 0, 0, 0, 0, 0, 0, 128449, 64499,
+ 65245, 127367, 1171, 127368, 69717, 127365, 1805, 8772, 0, 127363, 9930,
+ 65247, 0, 0, 2338, 127362, 92695, 0, 0, 0, 69219, 0, 120104, 0, 120103,
+ 72221, 120106, 129924, 118814, 8734, 4212, 0, 0, 66701, 0, 65862, 0,
+ 120095, 42903, 0, 0, 0, 126117, 426, 0, 120098, 8251, 0, 65436, 0, 2120,
+ 43302, 1224, 0, 65576, 0, 66876, 1764, 6074, 0, 12858, 0, 0, 65439, 6378,
+ 74566, 0, 41960, 0, 41644, 0, 2129, 0, 9222, 0, 0, 4259, 9092, 0, 41961,
+ 0, 0, 66357, 42331, 64935, 0, 0, 1293, 0, 2132, 0, 983569, 0, 2454, 0,
+ 3613, 128837, 71117, 0, 0, 69681, 10978, 10840, 0, 10668, 0, 127197,
+ 9118, 120164, 0, 0, 0, 1157, 64903, 8638, 0, 101295, 0, 0, 0, 0, 0,
+ 128981, 10086, 0, 11128, 0, 0, 65430, 74013, 6079, 0, 10764, 127910,
+ 64435, 128051, 1339, 0, 65428, 1317, 8822, 0, 0, 0, 127143, 0, 0, 0,
+ 43110, 0, 10428, 129848, 0, 0, 5742, 43076, 4692, 0, 0, 4007, 5004,
+ 128781, 0, 751, 6595, 6596, 0, 66373, 0, 0, 64908, 0, 6593, 72349, 12004,
+ 119192, 74097, 43108, 0, 0, 119333, 92188, 6598, 0, 6599, 0, 93031,
+ 74194, 0, 121483, 66674, 6597, 0, 73921, 0, 64745, 2281, 0, 0, 128996,
+ 43790, 0, 2430, 41678, 0, 0, 43785, 113716, 0, 121263, 0, 0, 1921, 0,
+ 19927, 70390, 65406, 0, 43786, 4284, 128346, 72210, 43789, 12841, 9229,
+ 0, 42285, 0, 0, 0, 0, 3521, 0, 120888, 8325, 0, 65403, 0, 1854, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4344, 0, 65433, 6076, 0, 0, 74764, 12074, 0, 0, 0, 0,
+ 12934, 119555, 65432, 128877, 0, 6071, 65434, 0, 65435, 4053, 128623, 0,
+ 0, 0, 917934, 69823, 127463, 0, 121403, 127473, 8421, 127472, 0, 43705,
+ 502, 0, 65431, 0, 0, 0, 1303, 316, 7364, 0, 2136, 0, 120796, 64365,
+ 43480, 92639, 4860, 0, 127877, 0, 129728, 9583, 0, 5546, 0, 0, 0, 0, 0,
+ 5544, 127475, 0, 70352, 5543, 128917, 72821, 12137, 5548, 0, 0, 10007, 0,
+ 127523, 6077, 0, 65452, 0, 119341, 11214, 65952, 0, 72226, 0, 0, 1319,
+ 74210, 65410, 67399, 92606, 0, 0, 119343, 0, 66716, 83513, 4691, 128619,
+ 9345, 621, 0, 0, 122889, 65411, 0, 74575, 121246, 65408, 73899, 0, 9474,
+ 2812, 119118, 65412, 3786, 65409, 8894, 83246, 119611, 7923, 3716, 0, 0,
+ 0, 0, 7012, 0, 128439, 9566, 0, 94176, 0, 65012, 126242, 545, 9575, 0,
+ 10050, 12718, 0, 8859, 6820, 0, 129941, 120740, 0, 0, 9119, 2787, 0,
+ 983981, 8507, 2012, 7985, 0, 0, 0, 0, 194634, 0, 410, 0, 0, 120789,
+ 120609, 0, 120378, 120379, 0, 0, 120374, 72742, 120376, 120377, 120370,
+ 120371, 120372, 120373, 3860, 120367, 72205, 74031, 111131, 73685, 11748,
+ 120365, 7941, 111134, 8749, 111132, 12698, 111129, 361, 110793, 845, 0,
+ 0, 0, 4562, 72241, 2926, 0, 4569, 0, 110797, 43487, 0, 0, 0, 74287,
+ 122885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6291, 0, 0, 0, 9734, 0, 0, 0, 0,
+ 127754, 7359, 83523, 43863, 0, 111150, 8769, 111148, 111147, 111145,
+ 4859, 111143, 111142, 0, 0, 0, 0, 12172, 111136, 0, 127899, 111141,
+ 64764, 4210, 111138, 0, 804, 0, 83520, 0, 70344, 0, 0, 67202, 10091,
+ 67200, 119257, 67206, 67205, 67204, 67203, 72302, 0, 0, 0, 128959, 0,
+ 1425, 92259, 119229, 11049, 0, 71480, 42649, 8482, 0, 0, 66715, 67209,
+ 11940, 67207, 664, 0, 0, 0, 70200, 127525, 0, 70194, 93061, 111155,
+ 68474, 111153, 6032, 67218, 67217, 7430, 194670, 70191, 0, 0, 0, 0, 0,
+ 41161, 0, 9765, 10993, 41162, 0, 70189, 1169, 111181, 0, 1905, 6034,
+ 41164, 64744, 43236, 0, 128800, 73110, 0, 0, 788, 0, 0, 111167, 111128,
+ 1663, 128976, 42901, 127237, 67211, 67210, 0, 0, 67215, 67214, 67213,
+ 67212, 111160, 111159, 111158, 111157, 0, 0, 0, 111161, 43612, 0, 0, 0,
+ 10855, 67223, 9355, 67221, 65198, 120355, 0, 221, 0, 0, 0, 121141, 7191,
+ 118930, 72208, 125212, 0, 0, 0, 0, 67228, 67227, 43333, 67225, 0, 0, 0,
+ 67229, 0, 7245, 0, 74405, 69922, 72219, 111178, 3873, 8367, 111174,
+ 111173, 111172, 43649, 0, 111177, 111176, 0, 11164, 0, 74403, 111171,
+ 111170, 111169, 7682, 74404, 1462, 10235, 0, 0, 0, 0, 0, 111130, 0, 0,
+ 74402, 0, 92299, 0, 0, 74052, 0, 126127, 120549, 0, 64295, 0, 0, 0, 0, 0,
+ 120662, 0, 0, 67231, 67230, 10755, 55257, 11155, 128568, 983136, 9470, 0,
+ 127540, 0, 69680, 64384, 0, 128607, 0, 0, 0, 0, 73764, 8204, 0, 0, 0, 0,
+ 0, 8728, 0, 10904, 73446, 19936, 7833, 0, 0, 0, 0, 92546, 0, 0, 0, 8537,
+ 0, 0, 0, 121244, 0, 0, 0, 128193, 0, 0, 0, 0, 3062, 0, 0, 0, 0, 0, 41160,
+ 41147, 41158, 0, 120777, 0, 41155, 111116, 111115, 111114, 0, 121332,
+ 111119, 111118, 111117, 129878, 0, 129091, 0, 0, 0, 64594, 2456, 66867,
+ 0, 0, 0, 0, 3721, 0, 0, 1230, 2678, 0, 3597, 917795, 0, 0, 92215, 0,
+ 67737, 8352, 0, 0, 0, 64515, 121378, 0, 129128, 67846, 0, 0, 92466, 0, 0,
+ 71338, 0, 8660, 0, 0, 0, 0, 0, 4483, 0, 0, 0, 6080, 0, 0, 1746, 1315, 0,
+ 70201, 0, 13140, 74508, 0, 0, 4480, 0, 111113, 111112, 0, 67979, 0, 6360,
+ 10897, 111106, 605, 68302, 110737, 69875, 110735, 110736, 66681, 0, 0, 0,
+ 0, 0, 0, 0, 10877, 118868, 64885, 0, 0, 0, 0, 0, 0, 345, 0, 0, 64606,
+ 9917, 0, 0, 92196, 0, 1776, 8422, 43992, 0, 0, 0, 126543, 43328, 0, 0,
+ 1295, 0, 42869, 0, 0, 0, 0, 128772, 65123, 125210, 11293, 11288, 0, 0,
+ 65666, 0, 92369, 65420, 0, 0, 4252, 0, 0, 0, 706, 72800, 0, 0, 129931,
+ 65419, 92177, 0, 8419, 65421, 0, 66702, 0, 12670, 0, 0, 0, 0, 72825,
+ 65422, 83008, 0, 0, 0, 0, 0, 0, 9736, 4184, 65418, 0, 0, 74035, 0,
+ 129955, 0, 0, 0, 0, 129447, 0, 7962, 12211, 9837, 83505, 0, 0, 5719, 0,
+ 0, 119068, 73777, 1857, 0, 9927, 0, 983940, 0, 10037, 0, 73695, 78322,
+ 78319, 7818, 0, 0, 127769, 0, 0, 0, 65077, 0, 78325, 78326, 78323, 43327,
+ 43989, 0, 65828, 0, 0, 83499, 0, 68390, 0, 110687, 78336, 78339, 9543,
+ 78335, 78332, 78333, 0, 127964, 0, 129552, 983895, 0, 69448, 0, 71429, 0,
+ 0, 0, 11914, 69431, 0, 0, 0, 9949, 0, 0, 119215, 0, 12073, 0, 0, 0, 0,
+ 101218, 2260, 0, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 69903, 0, 0, 0, 0, 6643,
+ 92477, 0, 0, 78330, 78331, 78328, 78329, 0, 92551, 0, 0, 0, 0, 0, 72417,
+ 0, 0, 0, 0, 78341, 78342, 120944, 78340, 129513, 127529, 92350, 3784,
+ 78350, 0, 78348, 78349, 78345, 43324, 78343, 78344, 2231, 0, 0, 0, 42467,
+ 0, 0, 42894, 78363, 13281, 78360, 78361, 78356, 78358, 78353, 64899, 0,
+ 41149, 0, 43162, 68096, 41150, 0, 10571, 67162, 67161, 67160, 67159,
+ 6947, 41152, 887, 9249, 6565, 64806, 74366, 0, 67158, 67157, 0, 10831,
+ 67175, 67174, 120232, 65827, 43325, 67178, 10168, 67176, 0, 0, 9190,
+ 128497, 9666, 41997, 0, 0, 0, 0, 0, 0, 129411, 0, 78508, 0, 78351, 78352,
+ 0, 0, 72839, 983730, 0, 126604, 0, 0, 0, 983417, 0, 2270, 0, 129957, 0,
+ 78365, 0, 67189, 72818, 0, 0, 0, 0, 0, 0, 0, 72833, 101119, 78366, 78367,
+ 0, 0, 0, 0, 10137, 6121, 10995, 0, 71050, 8119, 0, 71052, 0, 0, 0, 0, 0,
+ 0, 0, 1394, 0, 0, 128960, 0, 67184, 2998, 67182, 67181, 67188, 67187,
+ 67186, 67185, 0, 101185, 0, 0, 67180, 42003, 0, 0, 67193, 67192, 67191,
+ 67190, 67197, 67196, 67195, 67194, 0, 72770, 43315, 71051, 0, 1593, 0,
+ 125120, 619, 4635, 0, 72875, 0, 128859, 0, 0, 0, 0, 67199, 67198, 0,
+ 42790, 42006, 0, 0, 0, 128998, 10757, 9347, 127767, 0, 0, 74227, 78904,
+ 0, 74116, 128423, 121073, 120860, 0, 92427, 0, 0, 0, 0, 64590, 0, 4371,
+ 0, 0, 92478, 0, 0, 73977, 0, 0, 127847, 0, 120862, 0, 64550, 73745,
+ 70451, 0, 121013, 0, 0, 0, 129286, 0, 0, 0, 0, 9131, 0, 125214, 0, 0, 0,
+ 64260, 0, 12606, 0, 0, 0, 0, 562, 0, 0, 129648, 66455, 127533, 3219, 0,
+ 0, 0, 1037, 0, 64491, 0, 983676, 78572, 78580, 4568, 549, 0, 0, 0, 0, 0,
+ 128095, 70851, 0, 0, 0, 0, 0, 129716, 0, 10825, 8079, 118962, 0, 0, 0,
+ 128855, 0, 13071, 0, 0, 41049, 42840, 43614, 129341, 74881, 74596,
+ 127191, 5212, 0, 66402, 119191, 0, 9747, 0, 0, 0, 983989, 41047, 1668, 0,
+ 0, 0, 1187, 0, 74416, 0, 0, 0, 0, 3240, 128518, 9213, 0, 0, 0, 127174,
+ 69822, 0, 0, 0, 0, 1623, 0, 0, 0, 0, 0, 0, 11272, 0, 73914, 65048, 1909,
+ 42172, 0, 0, 10736, 11580, 72228, 7615, 0, 0, 4237, 66576, 0, 65815,
+ 68083, 0, 0, 0, 3489, 0, 0, 0, 0, 0, 0, 127146, 3796, 6800, 0, 65582, 0,
+ 129521, 0, 0, 68036, 0, 0, 64857, 121213, 126493, 0, 66308, 0, 0, 64634,
+ 127817, 0, 0, 0, 0, 3246, 0, 43972, 128643, 0, 0, 0, 0, 120751, 0, 0, 0,
+ 0, 1496, 42827, 0, 942, 2378, 119213, 0, 0, 0, 0, 9510, 1232, 8139, 0, 0,
+ 0, 11409, 0, 6382, 0, 66319, 121237, 0, 0, 0, 127887, 2374, 0, 8475,
+ 120844, 66313, 0, 0, 64879, 119298, 0, 0, 70869, 0, 0, 129025, 0, 7705,
+ 11942, 0, 0, 3309, 0, 0, 0, 83345, 983847, 0, 0, 1280, 6998, 128104, 0,
+ 0, 0, 129945, 0, 0, 0, 0, 0, 0, 0, 74239, 983073, 0, 0, 0, 6078, 121354,
+ 0, 1475, 0, 9938, 6084, 0, 983976, 0, 0, 0, 3256, 0, 43973, 0, 0, 0,
+ 8727, 0, 0, 0, 110831, 110832, 10562, 110830, 0, 0, 0, 3248, 0, 0, 9015,
+ 0, 0, 3635, 64337, 0, 0, 43852, 7195, 0, 2007, 64431, 0, 0, 0, 0, 0, 0,
+ 0, 65613, 77909, 0, 0, 0, 0, 119218, 7984, 11670, 74434, 127770, 4176,
+ 69248, 2034, 69442, 11154, 65891, 0, 0, 318, 2038, 0, 0, 0, 3649, 13149,
+ 42145, 42798, 3634, 0, 0, 128483, 0, 0, 0, 11402, 120954, 94032, 74238,
+ 0, 43313, 0, 0, 7938, 0, 1761, 0, 65379, 68386, 128185, 1159, 71183, 0,
+ 0, 0, 66687, 120851, 0, 41680, 0, 0, 0, 1514, 11668, 67891, 9313, 0,
+ 128490, 67877, 0, 41681, 0, 0, 12848, 69982, 67873, 0, 74278, 0, 0,
+ 12649, 0, 0, 1194, 3242, 9761, 9555, 8598, 0, 120524, 0, 1551, 65447,
+ 129414, 126211, 0, 0, 0, 67875, 0, 3495, 66648, 125079, 0, 73024, 983228,
+ 0, 0, 10641, 0, 0, 0, 77845, 0, 0, 0, 0, 0, 11131, 0, 0, 0, 0, 0, 42685,
+ 72017, 193, 0, 0, 0, 42667, 0, 0, 92318, 71958, 0, 1362, 9558, 0, 0, 0,
+ 7351, 73789, 0, 0, 4426, 0, 0, 0, 0, 7276, 42163, 5220, 0, 0, 67822, 0,
+ 0, 0, 0, 41692, 0, 72283, 0, 0, 3223, 65492, 0, 0, 4549, 983687, 0, 0,
+ 101162, 10807, 0, 0, 0, 42182, 8688, 12866, 0, 3294, 0, 0, 128101, 0,
+ 64514, 0, 43329, 129989, 0, 0, 0, 119061, 0, 43422, 0, 0, 128618, 0,
+ 42729, 0, 3215, 120982, 68880, 917564, 0, 0, 0, 65682, 0, 0, 65924, 0,
+ 983804, 0, 1501, 0, 118807, 0, 0, 9607, 0, 65794, 72243, 983046, 10989,
+ 0, 74399, 0, 0, 7152, 0, 0, 129530, 7483, 125083, 0, 8104, 70128, 7474,
+ 0, 5189, 0, 0, 0, 8141, 0, 42537, 69612, 0, 0, 0, 0, 0, 127307, 42934, 0,
+ 0, 0, 0, 0, 0, 64517, 0, 0, 1650, 0, 0, 128502, 7901, 3238, 0, 65556, 0,
+ 0, 65158, 43416, 74959, 0, 7527, 0, 43319, 0, 0, 45, 0, 0, 0, 0, 0, 7347,
+ 0, 0, 0, 13129, 0, 9084, 0, 8737, 0, 0, 0, 66808, 9639, 7912, 2620, 0,
+ 3564, 0, 0, 0, 0, 75049, 0, 2853, 0, 0, 0, 0, 0, 2850, 8084, 0, 0, 71446,
+ 92284, 43122, 0, 0, 0, 0, 72214, 0, 74767, 0, 7331, 110646, 0, 8245, 0,
+ 3158, 92396, 3983, 0, 923, 0, 69397, 292, 0, 126548, 0, 3221, 1763, 0, 0,
+ 0, 0, 7253, 0, 68391, 75002, 0, 3637, 12996, 0, 70461, 0, 0, 3228, 0, 0,
+ 0, 0, 0, 0, 120833, 118939, 0, 7696, 0, 0, 0, 0, 43316, 4177, 0, 9089, 0,
+ 128805, 72116, 64500, 68133, 0, 0, 1856, 100572, 0, 6379, 0, 118999, 0,
+ 3208, 0, 0, 0, 0, 0, 0, 129402, 0, 0, 0, 2033, 0, 0, 0, 55254, 7740, 0,
+ 0, 0, 128197, 0, 93988, 0, 67612, 0, 0, 41689, 129380, 0, 0, 6646, 0, 0,
+ 0, 983945, 0, 0, 4573, 0, 0, 0, 0, 0, 92961, 0, 128222, 41688, 0, 0, 0,
8314, 0, 0, 0, 0, 0, 66721, 0, 0, 121033, 0, 128226, 0, 0, 0, 13164, 0,
66237, 983963, 0, 0, 0, 3257, 0, 0, 1845, 0, 0, 0, 0, 128783, 0, 0, 0, 0,
3499, 8609, 0, 7145, 0, 0, 0, 0, 74829, 983988, 983291, 0, 0, 0, 7591, 0,
- 0, 0, 73778, 70132, 128167, 0, 0, 0, 0, 119261, 0, 0, 0, 13083, 0, 0, 0,
+ 0, 0, 73778, 70132, 128167, 0, 0, 0, 0, 119261, 0, 0, 0, 13083, 0, 0, 0,
0, 66177, 983269, 5429, 0, 0, 68168, 66181, 0, 0, 983253, 0, 0, 5433,
67659, 0, 42776, 1547, 66176, 92428, 0, 5425, 4977, 9999, 0, 5423, 64560,
125094, 0, 0, 0, 74122, 0, 0, 0, 128003, 4418, 66199, 0, 92300, 0, 0, 0,
92224, 124995, 0, 11908, 0, 9360, 125101, 983202, 0, 66187, 12837,
983288, 0, 11112, 0, 92321, 43318, 0, 0, 0, 0, 126518, 120604, 0, 983286,
- 0, 129595, 0, 983782, 0, 9958, 0, 125108, 0, 0, 0, 2433, 128602, 0, 3352,
+ 0, 129595, 0, 983782, 0, 9958, 0, 125108, 0, 0, 0, 2433, 128602, 0, 3352,
0, 0, 0, 0, 0, 0, 305, 567, 67662, 0, 69979, 65242, 0, 41695, 0, 0, 0,
- 7837, 917625, 129002, 5337, 917622, 7325, 43312, 917619, 68742, 917617,
+ 7837, 917625, 129002, 5337, 917622, 7325, 43312, 917619, 68742, 917617,
74086, 68777, 917614, 917613, 10973, 917611, 1372, 128768, 917608,
917607, 1254, 917605, 917604, 93967, 917602, 65228, 113753, 0, 67723,
8068, 0, 0, 983951, 0, 3245, 64393, 119069, 0, 0, 0, 0, 0, 0, 0, 983279,
- 0, 119563, 129935, 78865, 0, 126638, 0, 0, 43322, 0, 0, 0, 0, 92698,
- 3226, 67695, 0, 0, 983939, 10200, 0, 128779, 101143, 0, 65610, 0, 0, 0,
- 3585, 250, 101142, 43320, 0, 0, 0, 0, 1152, 129849, 1688, 0, 0, 0, 0, 0,
- 121040, 128340, 0, 0, 0, 2107, 0, 129048, 0, 0, 0, 43868, 129832, 129817,
- 0, 128239, 0, 0, 127777, 0, 6927, 42267, 42261, 11464, 3365, 0, 0, 0, 0,
- 0, 41869, 0, 0, 0, 43326, 0, 11519, 0, 5530, 5210, 0, 983970, 0, 5208, 0,
- 128842, 0, 2424, 7976, 0, 0, 3244, 5529, 0, 73894, 128852, 5432, 0, 5527,
- 0, 78484, 0, 5528, 0, 0, 120281, 0, 0, 43545, 120282, 0, 0, 73686, 42565,
- 0, 0, 3206, 120278, 0, 0, 101149, 0, 0, 211, 3216, 83407, 0, 120998,
- 3220, 68750, 0, 0, 8951, 5214, 0, 8118, 0, 10768, 8735, 0, 5852, 124952,
- 0, 0, 121110, 0, 0, 2623, 0, 0, 0, 127388, 4698, 66509, 0, 0, 4701, 0,
- 120289, 74225, 120284, 8267, 0, 1421, 66426, 0, 0, 2625, 92724, 0, 74309,
- 0, 0, 0, 7850, 120296, 69639, 127032, 0, 0, 43384, 12660, 110663, 0, 0,
- 110706, 110661, 0, 92380, 0, 0, 69649, 0, 713, 41073, 0, 3990, 0, 0, 0,
- 5017, 128313, 120352, 0, 0, 1030, 0, 983120, 9513, 0, 0, 0, 4668, 0,
- 120350, 0, 6339, 0, 0, 0, 64650, 0, 0, 74766, 983850, 8908, 0, 0, 0, 0,
- 10752, 13003, 68769, 0, 41307, 8732, 120336, 0, 41310, 0, 4696, 0,
- 983934, 0, 120334, 3641, 5419, 0, 0, 0, 0, 120344, 128129, 0, 7320,
- 65230, 11808, 0, 93970, 936, 13289, 0, 69892, 65774, 0, 65243, 0, 19953,
- 0, 126469, 121375, 127256, 12913, 70722, 68759, 0, 0, 70203, 0, 4113, 0,
- 2372, 1819, 0, 128053, 12152, 0, 682, 7655, 120330, 129921, 0, 10593,
- 1703, 0, 0, 8033, 69953, 0, 9810, 0, 0, 127949, 0, 119159, 10109, 0,
- 73898, 0, 71730, 126704, 0, 0, 917620, 1965, 917621, 0, 0, 73887, 0, 0,
- 0, 6314, 0, 8501, 0, 0, 0, 41317, 0, 5417, 983582, 0, 0, 9353, 68148,
- 41315, 0, 11161, 0, 41314, 194892, 0, 126562, 119236, 634, 0, 0, 0,
- 69779, 4355, 12016, 0, 9654, 12856, 6924, 7660, 0, 0, 0, 0, 0, 42692, 0,
- 74604, 0, 0, 0, 680, 6274, 0, 1181, 0, 3174, 67248, 0, 0, 0, 0, 113776,
- 10650, 917603, 92295, 70672, 118965, 0, 64644, 126981, 0, 0, 0, 0,
- 983942, 0, 65302, 40989, 68239, 68230, 68234, 0, 0, 124989, 0, 40987,
- 4667, 0, 983944, 8828, 0, 0, 0, 4746, 0, 129840, 2269, 4749, 0, 100598,
- 65192, 4744, 7345, 0, 242, 100595, 0, 8217, 0, 68919, 0, 2245, 0, 0,
- 66790, 10850, 0, 0, 0, 0, 0, 129853, 64680, 0, 0, 120562, 0, 127324, 0,
+ 0, 119563, 129935, 78865, 0, 126638, 0, 0, 43322, 0, 0, 0, 0, 92698,
+ 3226, 67695, 0, 0, 983939, 10200, 0, 128779, 101143, 0, 65610, 0, 0, 0,
+ 3585, 250, 101142, 43320, 0, 0, 0, 0, 1152, 129849, 1688, 0, 0, 0, 0, 0,
+ 121040, 128340, 0, 0, 0, 2107, 0, 129048, 0, 0, 0, 43868, 129832, 129817,
+ 0, 128239, 0, 0, 127777, 0, 6927, 42267, 42261, 11464, 3365, 0, 0, 0, 0,
+ 0, 41869, 0, 0, 0, 43326, 0, 11519, 0, 5530, 5210, 0, 983970, 0, 5208, 0,
+ 128842, 0, 2424, 7976, 0, 0, 3244, 5529, 0, 73894, 128852, 5432, 0, 5527,
+ 0, 78484, 0, 5528, 0, 0, 120281, 0, 0, 43545, 120282, 0, 0, 73686, 42565,
+ 0, 0, 3206, 120278, 0, 0, 101149, 0, 0, 211, 3216, 83407, 0, 120998,
+ 3220, 68750, 0, 0, 8951, 5214, 0, 8118, 0, 10768, 8735, 0, 5852, 124952,
+ 0, 0, 121110, 0, 0, 2623, 0, 0, 0, 127388, 4698, 66509, 0, 0, 4701, 0,
+ 120289, 74225, 120284, 8267, 0, 1421, 66426, 0, 0, 2625, 92724, 0, 74309,
+ 0, 0, 0, 7850, 120296, 69639, 127032, 0, 0, 43384, 12660, 110663, 0, 0,
+ 110706, 110661, 0, 92380, 0, 0, 69649, 0, 713, 41073, 0, 3990, 0, 0, 0,
+ 5017, 128313, 120352, 0, 0, 1030, 0, 983120, 9513, 0, 0, 0, 4668, 0,
+ 120350, 0, 6339, 0, 0, 0, 64650, 0, 0, 74766, 983850, 8908, 0, 0, 0, 0,
+ 10752, 13003, 68769, 0, 41307, 8732, 120336, 0, 41310, 0, 4696, 0,
+ 983934, 0, 120334, 3641, 5419, 0, 0, 0, 0, 120344, 128129, 0, 7320,
+ 65230, 11808, 0, 93970, 936, 13289, 0, 69892, 65774, 0, 65243, 0, 19953,
+ 0, 126469, 121375, 127256, 12913, 70722, 68759, 0, 0, 70203, 0, 4113, 0,
+ 2372, 1819, 0, 128053, 12152, 0, 682, 7655, 120330, 129921, 0, 10593,
+ 1703, 0, 0, 8033, 69953, 0, 9810, 0, 0, 127949, 0, 119159, 10109, 0,
+ 73898, 0, 71730, 126704, 0, 0, 917620, 1965, 917621, 0, 0, 73887, 0, 0,
+ 0, 6314, 0, 8501, 0, 0, 0, 41317, 0, 5417, 983582, 0, 0, 9353, 68148,
+ 41315, 0, 11161, 0, 41314, 194892, 0, 126562, 119236, 634, 0, 0, 0,
+ 69779, 4355, 12016, 0, 9654, 12856, 6924, 7660, 0, 0, 0, 0, 0, 42692, 0,
+ 74604, 0, 0, 0, 680, 6274, 0, 1181, 0, 3174, 67248, 0, 0, 0, 0, 113776,
+ 10650, 917603, 92295, 70672, 118965, 0, 64644, 126981, 0, 0, 0, 0,
+ 983942, 0, 65302, 40989, 68239, 68230, 68234, 0, 0, 124989, 0, 40987,
+ 4667, 0, 983944, 8828, 0, 0, 0, 4746, 0, 129840, 2269, 4749, 0, 100598,
+ 65192, 4744, 7345, 0, 242, 100595, 0, 8217, 0, 68919, 0, 2245, 0, 0,
+ 66790, 10850, 0, 0, 0, 0, 0, 129853, 64680, 0, 0, 120562, 0, 127324, 0,
100551, 128721, 0, 7316, 0, 983610, 100552, 74157, 1646, 0, 0, 73995,
120857, 129047, 0, 7350, 0, 0, 0, 9099, 4107, 3441, 0, 2975, 194701, 0,
983947, 55220, 10084, 73943, 120845, 0, 0, 0, 3399, 0, 0, 11909, 0, 0,
7687, 0, 6789, 0, 0, 72739, 71367, 0, 0, 92589, 9151, 1137, 0, 749,
129320, 125076, 5385, 0, 69387, 0, 0, 41298, 0, 69461, 0, 0, 0, 0, 0, 0,
128455, 0, 519, 0, 64547, 5766, 0, 0, 0, 8848, 0, 41297, 0, 0, 0, 41300,
- 74468, 65160, 0, 129839, 127511, 0, 0, 6558, 0, 0, 128686, 92775, 0,
- 71450, 41302, 127927, 0, 0, 128646, 68762, 11729, 8719, 9060, 0, 128796,
- 0, 0, 0, 129682, 0, 11734, 93011, 11730, 73450, 9593, 5757, 2403, 0,
- 55275, 0, 11728, 65894, 0, 0, 0, 68741, 0, 0, 0, 43489, 4282, 983845, 0,
- 83497, 70328, 128103, 70324, 0, 0, 127509, 0, 8456, 0, 0, 74783, 0,
- 78250, 0, 70320, 120722, 9792, 0, 70326, 0, 0, 83500, 70322, 10019,
- 71701, 123617, 6568, 4365, 0, 0, 3647, 0, 41134, 128341, 0, 125043,
- 41135, 0, 0, 0, 129938, 0, 123616, 0, 41137, 41139, 0, 6545, 0, 125139,
- 7597, 10528, 75054, 0, 3732, 73910, 0, 0, 0, 7312, 983639, 9062, 93840,
- 11853, 0, 0, 128324, 41538, 0, 0, 0, 0, 194706, 41531, 1263, 3720, 0,
- 68028, 0, 41524, 64692, 119635, 0, 41534, 0, 92193, 0, 41168, 0, 67398,
- 127347, 3524, 0, 8831, 127349, 127357, 0, 127360, 127352, 129816, 0, 0,
- 0, 0, 0, 5845, 0, 0, 0, 71909, 8200, 0, 68460, 0, 43283, 5551, 0, 0, 0,
- 6340, 983552, 100602, 0, 0, 0, 0, 0, 5422, 0, 0, 0, 2471, 0, 0, 2749, 0,
- 73774, 10913, 72122, 0, 8666, 675, 74093, 0, 194986, 0, 69262, 0, 0, 0,
- 10928, 0, 41153, 0, 0, 0, 3738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 42347, 12092, 9615, 7234, 74047, 0, 0, 0, 123639, 0, 0, 2934, 0, 0, 0, 0,
- 74507, 0, 74461, 0, 0, 74290, 0, 64562, 129975, 64473, 0, 0, 73728, 0,
- 11212, 0, 12128, 6534, 0, 0, 1901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69940,
- 65459, 68293, 92290, 128808, 3770, 0, 0, 0, 64579, 128511, 0, 0, 983332,
- 983340, 0, 0, 0, 5941, 0, 0, 65079, 0, 0, 0, 73961, 983334, 0, 0, 0, 0,
- 0, 0, 10638, 0, 0, 0, 71486, 0, 0, 983349, 0, 43840, 129495, 0, 5233,
- 983346, 64792, 71233, 0, 983324, 0, 0, 9847, 0, 1685, 595, 0, 73971,
- 1292, 8940, 0, 11088, 0, 10004, 0, 0, 6541, 0, 0, 0, 5603, 9014, 5606, 0,
- 538, 128705, 5602, 8467, 74391, 6547, 0, 0, 0, 0, 8458, 129534, 8495, 0,
- 0, 917552, 10981, 78314, 0, 2465, 0, 0, 0, 9730, 9280, 0, 0, 74155,
- 72766, 113690, 0, 504, 0, 120715, 0, 983606, 0, 0, 0, 123141, 125024, 0,
- 0, 732, 3737, 0, 1548, 0, 0, 1832, 5604, 0, 41141, 0, 5607, 72854, 41142,
- 3745, 0, 0, 128137, 0, 0, 3869, 11937, 5725, 0, 66566, 7416, 5728, 0, 0,
- 0, 11918, 66567, 5724, 118829, 5727, 0, 0, 0, 5723, 0, 128116, 71999, 0,
- 0, 0, 42532, 0, 12303, 0, 11423, 0, 983115, 68303, 74074, 0, 128267,
- 6559, 64557, 71348, 0, 66763, 43019, 0, 10238, 0, 0, 43377, 0, 71346,
- 124937, 9783, 42704, 0, 71719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41144,
- 129465, 0, 0, 0, 72793, 92176, 0, 70682, 0, 8820, 0, 0, 0, 11515, 526, 0,
- 0, 0, 0, 0, 0, 8635, 0, 0, 8288, 11815, 0, 0, 0, 1543, 3713, 0, 0, 0,
- 68041, 127816, 0, 0, 64357, 0, 42082, 0, 0, 8987, 42081, 0, 0, 0, 0, 0,
- 0, 6553, 0, 0, 11253, 0, 0, 5475, 0, 0, 0, 119334, 12990, 1160, 42084, 0,
- 123152, 0, 0, 360, 0, 0, 128274, 5863, 3137, 0, 983315, 0, 0, 10959,
- 3146, 0, 127374, 0, 68341, 13076, 3135, 983298, 0, 0, 3142, 0, 94068,
- 10819, 128479, 0, 74635, 12877, 119867, 73967, 0, 70808, 0, 0, 0, 0,
- 6163, 129745, 113728, 0, 0, 0, 8603, 0, 0, 3306, 0, 43392, 0, 0, 5751, 0,
- 0, 0, 0, 0, 7403, 0, 118933, 0, 0, 64783, 92658, 0, 0, 129592, 0, 0,
- 65569, 7021, 0, 0, 0, 0, 0, 6540, 6974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43585,
- 0, 6551, 983974, 0, 0, 0, 0, 0, 72216, 8977, 602, 120814, 0, 0, 0, 72119,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983624, 74812, 0, 0, 0, 9475, 0, 65105, 0,
- 983219, 0, 43592, 7831, 66751, 0, 0, 73915, 0, 43593, 0, 43591, 43061, 0,
- 0, 43589, 43584, 0, 13113, 0, 0, 43590, 8766, 9087, 0, 0, 41574, 78337,
- 0, 42900, 6376, 0, 0, 0, 0, 9854, 0, 0, 0, 0, 0, 0, 0, 2909, 0, 0, 0,
- 6529, 110930, 75004, 3751, 0, 0, 0, 1798, 0, 0, 1354, 0, 13152, 6557,
- 12430, 0, 94098, 0, 0, 0, 68123, 128097, 0, 0, 0, 71264, 0, 11082, 0,
- 65677, 8682, 42054, 92595, 42045, 9804, 0, 0, 3595, 0, 0, 0, 0, 42399, 0,
- 0, 0, 65541, 0, 7324, 0, 0, 0, 8797, 77895, 0, 64888, 7167, 2356, 95, 0,
- 0, 0, 42286, 0, 0, 69999, 0, 120877, 0, 0, 42324, 129359, 0, 0, 43492, 0,
- 43406, 0, 0, 0, 0, 0, 43400, 0, 0, 71720, 0, 66435, 0, 0, 3201, 514,
- 74502, 0, 43396, 0, 64493, 0, 43404, 11218, 0, 0, 43398, 0, 0, 41341,
- 129485, 6564, 1463, 41342, 0, 5293, 0, 0, 3733, 0, 0, 41344, 0, 0, 0, 0,
- 41346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983745, 0, 0, 0, 65272, 0, 0, 1270,
- 1132, 0, 0, 0, 66655, 0, 0, 74314, 64761, 0, 110853, 8510, 0, 129600, 0,
- 0, 0, 0, 0, 0, 69692, 0, 0, 42383, 69690, 0, 69700, 13141, 0, 92465, 0,
- 0, 0, 41566, 0, 0, 129334, 127171, 0, 0, 0, 0, 0, 0, 0, 6308, 0, 0, 2611,
- 0, 66881, 0, 65063, 0, 0, 0, 0, 4484, 8747, 110597, 128369, 0, 0, 0, 0,
- 0, 0, 12902, 0, 0, 7299, 0, 0, 12107, 7100, 10905, 65010, 0, 125135,
- 66018, 9284, 0, 0, 0, 0, 0, 0, 0, 12010, 0, 126093, 120949, 121032, 0, 0,
- 0, 0, 0, 0, 0, 0, 6618, 3562, 66365, 0, 42234, 12648, 128039, 0, 0, 0,
- 41309, 9764, 41316, 0, 0, 13230, 41299, 0, 0, 68365, 0, 0, 0, 0, 0, 0,
- 4153, 0, 0, 128047, 0, 0, 42889, 0, 129322, 41578, 0, 41577, 0, 68092, 0,
- 6533, 0, 41570, 0, 72414, 0, 41580, 74628, 0, 12901, 0, 0, 0, 0, 71461,
- 41360, 0, 0, 4743, 0, 0, 0, 0, 68398, 110781, 5890, 110779, 111103, 3739,
- 8695, 92514, 0, 3964, 8984, 111095, 68288, 0, 0, 70000, 111090, 111089,
- 111088, 3956, 82952, 111093, 6563, 111091, 41305, 0, 0, 12067, 41312, 0,
- 0, 0, 0, 0, 8175, 0, 3600, 0, 934, 0, 0, 173, 129844, 0, 110784, 110785,
- 1750, 110783, 41358, 68368, 1807, 0, 92298, 0, 5889, 0, 0, 0, 67127, 0,
- 0, 121395, 6982, 1721, 0, 7891, 0, 42160, 67129, 4512, 983771, 69460, 0,
- 0, 0, 0, 0, 120716, 0, 0, 0, 0, 0, 119140, 3975, 72253, 74087, 0, 12672,
- 0, 129821, 0, 0, 129836, 0, 121100, 0, 0, 41095, 3962, 68242, 2932,
- 41101, 3954, 6457, 4513, 0, 0, 0, 0, 1468, 0, 0, 55237, 128230, 0,
- 127244, 55238, 41080, 0, 0, 4320, 74104, 0, 0, 0, 0, 77918, 0, 128384,
- 8256, 0, 72413, 0, 8879, 0, 0, 8770, 0, 0, 92214, 0, 0, 128786, 4283,
- 129689, 0, 68361, 0, 74826, 0, 0, 0, 0, 127954, 65106, 42761, 121516,
- 4581, 8411, 0, 0, 72259, 0, 93037, 0, 0, 0, 92452, 4392, 0, 10786, 69661,
- 0, 8184, 0, 0, 7396, 0, 0, 69788, 0, 43512, 7965, 111039, 111038, 111037,
- 111036, 41350, 0, 0, 0, 2294, 64501, 68034, 0, 68405, 111034, 0, 0,
- 111030, 111029, 71105, 111027, 0, 111033, 92200, 111031, 0, 6764, 0, 0,
- 111026, 111025, 111024, 65203, 128010, 0, 0, 0, 3210, 0, 129978, 0, 0,
- 82958, 127970, 82957, 0, 68875, 10043, 71979, 1186, 41571, 0, 5209, 9464,
- 82960, 66657, 5207, 65062, 5213, 0, 0, 41348, 41568, 128803, 3253,
- 111045, 111044, 74067, 111042, 111049, 5596, 111047, 111046, 0, 64887, 0,
- 5217, 111041, 72252, 0, 0, 0, 0, 2635, 92760, 0, 0, 0, 92742, 0, 113672,
- 0, 0, 0, 64558, 67081, 0, 67083, 0, 0, 0, 5784, 0, 0, 0, 0, 4011, 0, 0,
- 0, 0, 4254, 0, 111054, 5600, 111052, 111051, 10447, 5598, 1207, 111055,
- 0, 3501, 42582, 0, 111050, 0, 1124, 5597, 983496, 983497, 9321, 129464,
- 75040, 983493, 0, 1719, 68356, 68354, 9671, 1125, 2721, 0, 983498,
- 983499, 7631, 5488, 111082, 0, 0, 5491, 111086, 8937, 0, 3236, 74187,
- 5490, 0, 5489, 8522, 68358, 111069, 6300, 111067, 111066, 0, 0, 111071,
- 111070, 0, 9875, 7593, 111065, 0, 0, 43182, 0, 68379, 3311, 111058,
- 111057, 3746, 11016, 65752, 111061, 0, 43423, 68775, 0, 111056, 72225, 0,
- 0, 127120, 0, 2232, 0, 0, 0, 0, 0, 126555, 0, 0, 8656, 0, 128358, 0, 0,
- 983485, 983486, 917563, 983484, 983481, 983482, 0, 0, 0, 129669, 0,
- 111183, 128043, 983490, 1036, 983488, 111075, 1723, 111073, 111072,
- 111079, 41579, 111077, 111076, 10705, 0, 983480, 74486, 71693, 740,
- 983476, 983477, 129645, 0, 0, 74846, 92255, 0, 0, 0, 0, 0, 10438, 74487,
- 73798, 13285, 0, 0, 0, 5690, 0, 93992, 0, 0, 13095, 0, 127857, 121419,
- 7321, 121203, 13254, 70176, 75070, 0, 0, 0, 0, 127845, 3247, 317, 0, 0,
- 0, 0, 917543, 0, 10173, 0, 0, 0, 0, 0, 5223, 0, 0, 119564, 5226, 0,
- 94044, 5880, 94065, 7758, 0, 0, 5224, 5487, 94041, 5692, 41725, 983462,
- 0, 5695, 41711, 0, 43171, 0, 94049, 5691, 983467, 866, 1488, 983466,
- 983452, 65665, 94036, 983451, 74797, 0, 0, 11039, 983460, 11145, 71211,
- 983459, 983456, 983457, 983454, 983455, 42492, 43402, 125208, 3302, 0,
- 72842, 68809, 0, 0, 120885, 121300, 0, 7856, 8690, 0, 73076, 0, 0, 0,
- 73091, 0, 69925, 120635, 65153, 0, 0, 0, 0, 0, 0, 4540, 0, 0, 0, 0,
- 11844, 121209, 8863, 0, 75061, 71978, 6389, 0, 42371, 83205, 8790,
- 120911, 0, 111125, 71168, 8869, 0, 0, 42060, 0, 9648, 111123, 71170,
- 10270, 10286, 10318, 10382, 43529, 0, 0, 0, 0, 0, 70110, 43835, 119520,
- 70111, 119360, 118815, 127084, 127083, 8767, 0, 128437, 41281, 0, 5201,
- 0, 6215, 67072, 6214, 13101, 0, 0, 65268, 67073, 0, 0, 127976, 72995,
- 127073, 10511, 42075, 0, 127071, 129509, 0, 67115, 127069, 111293,
- 127068, 0, 127067, 0, 74845, 0, 42071, 43156, 0, 0, 0, 0, 7954, 0, 0, 0,
- 8485, 4671, 0, 917574, 4740, 0, 0, 42618, 78294, 3064, 6212, 0, 0, 0,
- 9554, 0, 83044, 0, 126598, 0, 78291, 0, 6213, 12885, 0, 129086, 64720, 0,
- 983907, 0, 0, 0, 11430, 0, 7518, 9317, 0, 3729, 10406, 0, 119259, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 73825, 0, 0, 129599, 8786, 10390, 0, 0, 917601,
- 93034, 0, 7924, 0, 43307, 0, 0, 0, 0, 0, 0, 118843, 9623, 435, 0, 0,
- 12893, 8093, 9079, 0, 0, 0, 0, 0, 64430, 0, 10294, 10326, 0, 0, 0, 0, 0,
- 0, 3623, 125188, 83378, 0, 43197, 0, 0, 0, 78296, 0, 0, 0, 7914, 0,
- 92170, 0, 2624, 0, 0, 0, 120859, 67110, 11058, 0, 67107, 0, 0, 0, 0,
- 120793, 0, 0, 6717, 10619, 0, 0, 0, 11832, 128664, 0, 0, 0, 70202, 0, 0,
- 0, 3232, 73824, 74581, 0, 0, 0, 41889, 0, 0, 1161, 41895, 74103, 9701, 0,
- 0, 129385, 73819, 120588, 5012, 0, 41362, 0, 68507, 0, 0, 0, 0, 0, 41364,
- 0, 0, 41352, 41361, 0, 41366, 0, 70129, 129065, 917, 0, 119934, 119923,
- 92421, 119912, 0, 119924, 119916, 0, 71482, 0, 0, 0, 125136, 128583, 0,
- 7022, 0, 4739, 0, 5802, 9816, 8615, 0, 0, 491, 65837, 0, 0, 128644, 0,
- 8426, 11092, 9891, 0, 0, 0, 41881, 118823, 3736, 7394, 42648, 0, 68448,
- 9095, 7741, 12684, 41885, 0, 0, 0, 0, 5815, 0, 0, 0, 127392, 0, 0, 41878,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120804, 0, 0, 2267, 0, 78289, 78359, 78288,
- 0, 0, 78318, 65920, 0, 0, 7057, 9408, 9409, 9410, 9411, 9412, 9413, 9414,
- 9415, 9416, 9417, 9418, 9419, 9420, 9421, 5897, 9423, 917933, 127107, 0,
- 127108, 917937, 127963, 8955, 9399, 9400, 9401, 9402, 9403, 9404, 9405,
- 9406, 9407, 0, 128626, 42669, 73832, 78261, 67683, 2631, 119308, 78259,
- 0, 78260, 3996, 0, 119307, 0, 0, 0, 0, 0, 0, 64825, 917916, 917913,
- 917914, 917919, 5899, 917917, 129990, 12085, 0, 574, 917922, 77825,
- 73828, 9473, 77824, 118918, 73900, 41735, 42211, 0, 4190, 77834, 77835,
- 77830, 77833, 3616, 77828, 77837, 77838, 7708, 77836, 2228, 113765, 0, 0,
- 4191, 0, 77844, 73800, 77842, 77843, 77839, 77840, 0, 78311, 83375, 0, 0,
- 10415, 74102, 0, 5896, 0, 10351, 67151, 0, 73829, 0, 127159, 0, 73998,
- 41355, 42883, 70736, 71212, 8021, 0, 119150, 983713, 41357, 8011, 42885,
- 42887, 41354, 0, 0, 10026, 5472, 120554, 1191, 101217, 5470, 128784,
- 5476, 101216, 0, 0, 0, 42874, 78281, 42876, 6304, 78283, 0, 2675, 120690,
- 0, 0, 128954, 0, 0, 5478, 5904, 0, 0, 0, 7291, 77848, 43761, 13067, 0, 0,
- 119271, 120360, 69731, 77856, 77857, 77854, 77855, 77852, 77853, 77850,
- 10750, 43714, 77858, 0, 0, 0, 12887, 120364, 127745, 77866, 77867, 77864,
- 77865, 9929, 5199, 77859, 1120, 0, 0, 0, 9486, 7554, 0, 77868, 72832, 0,
- 0, 5894, 70069, 0, 0, 92511, 70358, 1323, 13162, 120937, 0, 0, 0, 77881,
- 66022, 0, 72857, 0, 0, 0, 0, 0, 1142, 0, 8271, 0, 0, 126645, 12903,
- 43622, 4002, 0, 10442, 10676, 120368, 0, 120369, 0, 0, 0, 0, 66642, 1277,
- 0, 7871, 0, 0, 78853, 0, 119015, 0, 0, 11784, 0, 78012, 4700, 0, 78858,
- 0, 78855, 0, 0, 92400, 77879, 19932, 77876, 77877, 74804, 77874, 77869,
- 77871, 0, 71487, 43118, 0, 0, 6774, 6773, 0, 194684, 10346, 10410, 78860,
- 118974, 0, 101197, 6108, 0, 110612, 0, 0, 0, 121309, 74166, 124973, 0, 0,
- 0, 69407, 0, 70357, 0, 0, 74217, 0, 64698, 4192, 9289, 0, 0, 128847, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11603, 0, 0, 101166, 82976, 0, 0, 67812, 0,
- 101163, 0, 42572, 0, 128300, 119146, 1963, 11622, 0, 43237, 82981, 7550,
- 67100, 5903, 82984, 78009, 129750, 9662, 0, 128391, 0, 0, 0, 0, 11013, 0,
- 0, 0, 128433, 67090, 0, 0, 0, 0, 0, 11568, 983685, 43367, 0, 0, 7852, 0,
- 0, 0, 0, 0, 194676, 0, 194675, 0, 0, 416, 129668, 0, 73834, 0, 68921,
- 10984, 0, 0, 101175, 129838, 101182, 0, 127013, 92423, 0, 983256, 121199,
- 0, 0, 12540, 0, 0, 0, 0, 11445, 101168, 2112, 0, 0, 0, 1021, 0, 9507,
- 10210, 78005, 8023, 93963, 78006, 78001, 43181, 78003, 9532, 119094, 0,
- 0, 0, 0, 0, 1885, 43268, 129802, 129798, 120542, 121153, 392, 7894, 4391,
- 129810, 8221, 119597, 77999, 77998, 0, 0, 0, 92967, 0, 3558, 0, 3913,
- 70429, 121376, 0, 0, 1265, 0, 6309, 0, 12969, 0, 101151, 0, 101146, 0,
- 101139, 0, 41864, 0, 0, 74294, 0, 167, 0, 917584, 0, 93983, 72354, 68477,
- 0, 0, 917594, 0, 2493, 129827, 0, 129804, 0, 917570, 0, 0, 0, 406,
- 917592, 0, 0, 0, 0, 0, 0, 0, 127161, 0, 128597, 0, 0, 0, 3421, 10561, 0,
- 8365, 0, 0, 127569, 120787, 128669, 0, 0, 0, 0, 7834, 0, 0, 101154,
- 10298, 6624, 4908, 0, 1639, 120842, 0, 0, 6327, 6724, 0, 0, 0, 69910,
- 4817, 0, 0, 0, 68059, 0, 11022, 0, 0, 0, 118888, 0, 0, 7548, 64794, 0,
- 12291, 983165, 0, 0, 0, 0, 0, 0, 1134, 1838, 0, 2057, 0, 0, 0, 0, 0, 0,
- 5206, 0, 0, 42523, 0, 0, 0, 0, 65550, 8570, 4816, 0, 127926, 0, 4821, 0,
- 0, 0, 4818, 125257, 119974, 119977, 0, 0, 119970, 119973, 0, 119983,
- 119982, 119985, 119984, 119979, 119978, 0, 119980, 119670, 129297, 0,
- 11284, 119987, 70097, 65155, 119988, 0, 9363, 0, 0, 0, 5900, 93990, 7889,
- 2722, 128770, 0, 0, 0, 0, 2282, 0, 0, 0, 68093, 0, 0, 0, 0, 0, 70150, 0,
- 0, 0, 0, 129651, 70146, 983079, 119967, 71330, 70148, 0, 0, 94006, 70144,
- 119964, 110677, 110678, 110675, 110676, 0, 110674, 4226, 0, 123165, 5732,
- 71327, 0, 0, 65119, 0, 0, 92971, 64770, 0, 0, 6093, 0, 0, 1395, 0, 0, 0,
- 121179, 786, 0, 43174, 64340, 0, 125269, 0, 983643, 125138, 10132, 0, 0,
- 0, 0, 0, 93956, 0, 68444, 0, 92437, 123143, 0, 0, 92656, 0, 0, 0, 1399,
- 121463, 0, 121465, 121464, 120808, 241, 121469, 4907, 0, 0, 0, 0, 0, 0,
- 0, 0, 127904, 0, 0, 42780, 0, 0, 0, 4217, 0, 0, 0, 0, 72158, 0, 0, 43099,
- 3965, 0, 0, 0, 13300, 0, 0, 43057, 0, 0, 0, 0, 0, 65372, 0, 6410, 126073,
- 125252, 70468, 0, 0, 0, 119558, 0, 0, 0, 0, 0, 0, 43188, 2626, 7762, 0,
- 0, 0, 127183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67726, 0, 126993, 1542, 0, 0,
- 92550, 0, 0, 74311, 0, 0, 10181, 2150, 0, 0, 0, 0, 0, 68053, 6029, 72852,
- 0, 0, 0, 0, 8993, 0, 0, 0, 93968, 606, 0, 0, 0, 0, 4311, 0, 6027, 126615,
- 4322, 0, 65207, 0, 0, 983901, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 70806, 0, 0, 0, 92783, 0, 0, 65817, 55288, 127934, 66564, 8530, 0,
- 7709, 0, 121202, 66560, 128528, 917595, 12876, 66561, 0, 121430, 983938,
- 7789, 5855, 809, 0, 0, 72853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64386, 0,
- 74909, 0, 120607, 66416, 83360, 6532, 0, 0, 0, 0, 128224, 0, 0, 0, 0,
- 43091, 92287, 0, 0, 129312, 0, 0, 0, 11361, 0, 0, 8153, 128105, 0, 10741,
- 0, 0, 0, 0, 0, 64706, 0, 0, 0, 78870, 9466, 78866, 9824, 0, 0, 0, 120977,
- 915, 0, 0, 43865, 0, 0, 0, 67131, 70096, 67137, 0, 129614, 73648, 6730,
- 78862, 68161, 0, 78861, 126542, 0, 0, 94010, 983683, 0, 0, 66043, 0, 0,
- 43107, 0, 0, 92343, 0, 73879, 0, 0, 0, 6103, 0, 0, 92470, 0, 12889, 0,
- 127137, 0, 0, 0, 0, 0, 0, 119262, 83028, 0, 0, 0, 69279, 0, 0, 0, 13118,
- 7700, 917537, 9690, 0, 0, 68080, 512, 0, 72792, 0, 0, 77892, 632, 77890,
- 77891, 42529, 0, 0, 0, 0, 0, 0, 0, 128273, 0, 0, 7379, 64581, 5386, 0, 0,
- 10633, 72316, 64488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124956, 71307, 0, 0, 0,
- 0, 0, 92370, 0, 0, 0, 0, 0, 71314, 1801, 0, 0, 120867, 0, 0, 77888, 2085,
- 702, 77887, 77884, 77885, 13074, 77883, 66299, 0, 0, 12106, 0, 0, 1755,
- 0, 77897, 77898, 1163, 3102, 77893, 77894, 0, 0, 0, 0, 69227, 0, 77901,
- 77902, 77899, 77900, 65171, 0, 0, 0, 70157, 0, 0, 0, 0, 2908, 0, 11177,
- 64902, 64950, 0, 128740, 66906, 124959, 70499, 0, 0, 0, 64352, 0, 125031,
- 1007, 0, 9199, 0, 127371, 118992, 41890, 0, 2730, 119072, 0, 5428, 0,
- 73771, 129993, 0, 0, 0, 71458, 0, 0, 0, 68089, 0, 44012, 0, 71456, 0,
- 9158, 66878, 69905, 92440, 0, 101272, 0, 484, 0, 0, 0, 194742, 0, 0, 0,
- 0, 572, 7041, 2736, 0, 0, 93962, 0, 68628, 0, 128727, 5438, 5222, 5381,
- 43114, 0, 5193, 5125, 5456, 5509, 0, 120664, 113700, 0, 0, 0, 3430, 0,
- 42905, 0, 74929, 6050, 0, 0, 129197, 0, 0, 10908, 0, 0, 0, 64617, 0, 0,
- 3957, 0, 0, 0, 674, 0, 0, 2946, 5354, 5251, 5328, 5307, 3759, 72318,
- 8364, 5123, 0, 5281, 5469, 5121, 0, 0, 0, 5130, 0, 129608, 0, 0, 0, 1221,
- 2733, 0, 0, 0, 72321, 127245, 0, 0, 0, 101277, 0, 5939, 0, 0, 0, 71867,
- 68400, 128216, 10321, 10289, 0, 10385, 123164, 0, 0, 0, 0, 118943, 0,
- 11411, 0, 5938, 0, 120865, 0, 0, 10401, 10337, 0, 0, 0, 0, 0, 0, 0,
- 71942, 0, 0, 12165, 0, 0, 9885, 0, 8077, 0, 127908, 0, 0, 0, 0, 129138,
- 4220, 10725, 10433, 0, 68395, 4987, 64519, 0, 0, 0, 123626, 120356, 0,
- 11733, 0, 120792, 0, 127233, 0, 0, 0, 92345, 68254, 983642, 77991, 0,
- 2724, 0, 0, 12313, 110619, 515, 119947, 119944, 119945, 119942, 119943,
- 119940, 119941, 119938, 8606, 4046, 4589, 4521, 0, 9141, 0, 0, 2741, 0,
- 0, 1370, 0, 0, 0, 0, 0, 0, 66880, 0, 66003, 0, 64440, 0, 0, 69458, 0,
- 11593, 68669, 68666, 68660, 0, 0, 2744, 72285, 68638, 0, 814, 0, 119962,
- 119963, 119960, 119961, 101106, 43029, 119956, 11623, 119954, 11955,
- 119952, 119953, 41986, 119951, 0, 120497, 4847, 110975, 0, 0, 0, 0, 1581,
- 64920, 93830, 12954, 963, 110973, 110972, 110971, 110969, 5278, 110967,
- 68621, 92222, 983449, 68625, 983447, 68617, 110960, 0, 101459, 101487,
- 110964, 110963, 110962, 0, 0, 101464, 101483, 101463, 983438, 983435,
- 92648, 127379, 0, 65137, 6483, 65392, 0, 4213, 129649, 41303, 0, 0, 0,
- 41306, 983217, 2698, 0, 0, 0, 68396, 0, 41304, 824, 0, 78011, 72315,
- 78894, 74827, 78892, 64804, 9820, 119820, 110985, 110976, 0, 6739, 0,
- 5481, 3490, 110978, 110977, 71706, 69947, 67702, 9124, 12688, 119833,
- 101496, 0, 101495, 119821, 119824, 68367, 42575, 101474, 101478, 119827,
- 101481, 101476, 71087, 68658, 119946, 8025, 68630, 101490, 68675, 92445,
- 71097, 69613, 0, 0, 0, 0, 983430, 2745, 11797, 110990, 983426, 9202,
- 983424, 983425, 0, 0, 0, 10525, 5436, 74584, 110987, 110986, 121506,
- 43080, 121508, 121507, 983415, 6246, 119958, 10921, 9723, 6777, 6776,
- 6775, 0, 0, 70287, 92384, 0, 8669, 0, 0, 65093, 0, 78881, 2716, 0, 0,
- 11252, 101475, 68369, 0, 11060, 12985, 2711, 78872, 78027, 78026, 7992,
- 0, 0, 42938, 78033, 78032, 78877, 70724, 78029, 78028, 78031, 78030,
- 64535, 110998, 10130, 110996, 0, 0, 111001, 111000, 127914, 983412,
- 78014, 5713, 110995, 7570, 110993, 110992, 0, 11190, 129700, 9026, 0,
- 74864, 7547, 78891, 0, 10008, 10222, 0, 129543, 9744, 0, 127193, 983408,
- 119656, 983406, 94070, 983404, 983405, 983402, 9045, 78888, 4225, 78886,
- 78887, 68757, 78885, 78882, 78883, 983397, 983398, 8405, 983396, 10423,
- 10359, 983391, 983392, 0, 129149, 4215, 9789, 0, 4321, 12309, 983400,
- 41313, 0, 5368, 66886, 0, 0, 5366, 0, 5372, 101482, 0, 0, 7720, 7390,
- 2696, 0, 0, 8268, 0, 1790, 0, 0, 118977, 0, 0, 0, 5376, 1835, 72313,
- 78704, 128089, 0, 0, 68655, 1180, 0, 0, 0, 0, 0, 0, 0, 9122, 0, 11928, 0,
- 65283, 0, 101449, 5971, 101448, 43500, 1268, 65097, 983218, 0, 101445, 0,
- 1427, 128440, 0, 5970, 3431, 72299, 101439, 101435, 983384, 983385,
- 983382, 2738, 125066, 10455, 0, 74026, 0, 4222, 6240, 0, 119013, 983389,
- 68377, 6248, 983373, 67815, 983371, 917907, 92582, 0, 101453, 125215, 0,
- 2728, 65549, 64563, 101428, 101425, 101429, 128145, 0, 10713, 7166,
- 119559, 2622, 101450, 0, 0, 0, 8954, 0, 94008, 2632, 42617, 10108, 1011,
- 42852, 12080, 2709, 0, 5716, 0, 0, 0, 0, 127100, 69378, 0, 9515, 127098,
- 66465, 6451, 0, 127097, 8918, 983556, 0, 0, 19950, 0, 0, 0, 44003, 0, 0,
- 0, 0, 0, 0, 983495, 74022, 0, 128795, 68643, 67410, 0, 5721, 0, 0, 0,
- 121074, 11267, 983364, 66464, 5720, 983363, 0, 4219, 5718, 8696, 5717, 0,
- 983370, 983878, 983368, 541, 983366, 983367, 119948, 119089, 68389,
- 983352, 119949, 56, 4216, 10577, 0, 0, 77849, 69620, 983357, 983358,
- 66899, 983356, 0, 0, 67628, 0, 0, 7086, 0, 67998, 67621, 0, 2734, 69616,
- 0, 67627, 118937, 0, 67625, 0, 0, 0, 42593, 0, 128217, 0, 0, 119939, 0,
- 68180, 0, 0, 71104, 7442, 43665, 359, 41253, 68392, 6239, 120599, 41256,
- 0, 67740, 111023, 111022, 111021, 9346, 69660, 41254, 0, 43291, 78002, 0,
- 127024, 124993, 93841, 0, 0, 0, 4368, 983500, 0, 68137, 0, 0, 41024, 0,
- 0, 121359, 121420, 0, 0, 0, 4223, 0, 8574, 83502, 0, 0, 0, 0, 0, 92718,
- 983636, 70432, 128323, 68382, 0, 0, 0, 0, 0, 4144, 0, 83193, 6245, 0,
- 2732, 92644, 0, 0, 0, 83501, 0, 0, 0, 128005, 0, 0, 129652, 983148, 3097,
- 0, 0, 77996, 0, 0, 10863, 111020, 111019, 111018, 0, 111015, 111014,
- 111013, 111012, 118964, 0, 10216, 64293, 0, 0, 69393, 128331, 12325,
- 111010, 8717, 111008, 101413, 0, 101380, 0, 8700, 0, 101382, 68363,
- 10426, 0, 71091, 10362, 0, 1715, 101378, 0, 64918, 101409, 43278, 42635,
- 0, 0, 65275, 0, 0, 101319, 0, 0, 1607, 466, 118949, 0, 0, 127918, 6243,
- 983882, 1350, 74195, 64420, 1993, 5362, 10666, 2708, 92471, 0, 13143,
- 234, 3199, 0, 41268, 6334, 6250, 0, 0, 73750, 0, 73762, 10458, 0, 8576,
- 127136, 0, 2704, 64953, 0, 68211, 8322, 0, 5753, 0, 2694, 0, 0, 2439,
- 65104, 69804, 0, 303, 74625, 92622, 0, 2437, 0, 9817, 4844, 0, 0, 0, 0,
- 0, 121120, 43292, 0, 2441, 0, 0, 0, 0, 0, 2451, 2714, 0, 0, 43379,
- 127984, 74541, 753, 5849, 0, 43089, 0, 0, 119534, 0, 0, 0, 0, 2726, 3107,
- 0, 0, 64937, 0, 78841, 1408, 0, 4607, 101299, 181, 0, 67728, 9539, 0, 0,
- 65201, 121121, 92973, 64185, 4142, 64183, 0, 0, 0, 9706, 64178, 64177,
- 64176, 0, 64182, 64181, 64180, 64179, 11401, 125124, 0, 1822, 0, 128581,
- 68055, 3865, 122918, 0, 10500, 129602, 119024, 0, 110732, 9830, 0, 0, 0,
- 65131, 0, 0, 0, 0, 74608, 9567, 0, 9599, 8748, 0, 0, 9557, 0, 0, 0,
- 11494, 0, 0, 10865, 0, 43279, 64186, 68521, 0, 64191, 64190, 8898, 64188,
- 129153, 41030, 78836, 0, 0, 78820, 126100, 0, 78805, 78806, 78801, 78802,
- 6745, 78800, 0, 0, 0, 110866, 0, 0, 73679, 67838, 41039, 78809, 0, 0,
- 129893, 0, 110869, 127045, 110867, 110868, 127039, 4400, 0, 64207, 10275,
- 8925, 10371, 10307, 64202, 4248, 0, 72802, 4541, 6299, 64204, 64203,
- 64201, 64200, 64199, 64198, 126471, 0, 0, 0, 64193, 64192, 0, 9943,
- 64197, 64196, 64195, 64194, 13282, 42652, 64174, 64173, 83495, 846,
- 72337, 9965, 74495, 72330, 83493, 83494, 2543, 12163, 64170, 83490,
- 64167, 64166, 64165, 64164, 72333, 0, 64169, 64168, 64949, 0, 10251,
- 10247, 64163, 64162, 2295, 43299, 43301, 129363, 0, 70791, 0, 0, 550,
- 9910, 0, 0, 66579, 0, 0, 0, 9504, 0, 0, 10373, 0, 0, 10261, 10253, 7821,
- 10277, 0, 74823, 1552, 0, 0, 129389, 0, 121435, 19910, 0, 0, 118849,
- 121150, 0, 43985, 68051, 0, 69890, 121329, 78355, 983757, 0, 66405, 2431,
- 3744, 66852, 1809, 0, 0, 0, 73759, 1264, 0, 78676, 11697, 121278, 9785,
- 64716, 0, 0, 0, 0, 121307, 0, 0, 42609, 128388, 0, 66912, 127016, 0,
- 983885, 74229, 0, 6487, 93798, 70743, 0, 0, 0, 83484, 83485, 83486,
- 83487, 83480, 8355, 7854, 83483, 954, 64927, 0, 41045, 0, 41438, 0, 0,
- 10711, 0, 0, 0, 0, 64774, 13309, 10947, 66727, 101426, 0, 0, 66795, 0, 0,
- 0, 0, 0, 0, 0, 120634, 69228, 0, 0, 0, 0, 0, 0, 3060, 83478, 9986, 0,
- 83473, 83474, 11698, 77880, 83469, 9916, 11701, 83472, 42586, 0, 8320, 0,
- 119095, 0, 0, 1477, 43289, 0, 74358, 10884, 69446, 9908, 0, 0, 0, 3414,
- 74304, 0, 0, 0, 0, 2110, 0, 68306, 0, 74532, 0, 129865, 0, 0, 7164, 0, 0,
- 0, 11950, 5392, 42248, 65129, 68656, 5397, 129579, 0, 68136, 0, 0, 5395,
- 72870, 5393, 354, 68615, 0, 0, 0, 0, 0, 126236, 0, 0, 626, 0, 5895, 0, 0,
- 5780, 0, 66407, 10220, 0, 71121, 43297, 0, 0, 11468, 64436, 0, 0, 0,
- 73818, 3918, 0, 3797, 72786, 0, 0, 4140, 0, 71254, 0, 9030, 813, 0,
- 68131, 4146, 119957, 5360, 0, 129498, 0, 0, 6249, 0, 0, 0, 0, 0, 73092,
- 0, 4911, 988, 0, 73125, 0, 42948, 0, 0, 0, 0, 74972, 0, 0, 0, 9825, 0, 0,
- 12803, 126977, 11032, 67654, 6244, 0, 0, 68662, 0, 129351, 0, 72131,
- 4169, 0, 0, 0, 129986, 121410, 120657, 0, 0, 68657, 128943, 78496, 0, 0,
- 5898, 74540, 0, 41856, 93056, 194926, 125000, 127373, 83424, 83425,
- 83426, 73736, 83420, 68870, 6448, 6835, 0, 4831, 83418, 83419, 67731, 0,
- 0, 0, 0, 0, 0, 0, 78499, 0, 0, 0, 43288, 0, 0, 0, 0, 0, 43418, 0, 0, 0,
- 7876, 68132, 917872, 0, 917870, 43378, 0, 0, 120890, 5892, 43605, 0, 0,
- 0, 129058, 0, 0, 6251, 83409, 83410, 83411, 83412, 126512, 0, 71092,
- 83408, 10114, 0, 0, 5387, 0, 0, 0, 0, 65553, 78346, 1747, 917849, 65109,
- 69240, 917852, 126509, 0, 0, 0, 0, 125065, 0, 9850, 0, 367, 1472, 917859,
- 6687, 0, 0, 5905, 12339, 8919, 73953, 65680, 0, 0, 78664, 0, 9134, 0,
- 78666, 43011, 0, 126626, 0, 0, 0, 43013, 10614, 0, 0, 83413, 66646,
- 83415, 83416, 0, 73881, 43012, 121127, 83293, 54, 43009, 73885, 0, 6211,
- 0, 0, 83295, 68119, 43008, 10758, 0, 0, 0, 0, 0, 70018, 0, 0, 0, 0,
- 12765, 0, 0, 0, 0, 126580, 0, 0, 43657, 0, 0, 0, 983718, 0, 83405,
- 917843, 0, 0, 83401, 83402, 83403, 83404, 83397, 11363, 12057, 83400,
- 1567, 0, 0, 83396, 0, 8957, 4139, 0, 0, 129336, 0, 0, 12740, 0, 92195,
- 12761, 127793, 12759, 0, 72304, 67169, 83467, 44002, 0, 83462, 83463,
- 83464, 12755, 12762, 41022, 67690, 64217, 476, 0, 983715, 0, 64212,
- 41020, 1382, 64209, 64216, 64215, 64214, 64213, 0, 0, 0, 67584, 8720,
- 3908, 0, 0, 0, 0, 101529, 129576, 0, 0, 3849, 92324, 94026, 9778, 917906,
- 5891, 917912, 55, 917910, 917911, 0, 0, 7935, 67586, 0, 1114, 92599,
- 67585, 78675, 0, 83447, 83449, 0, 0, 0, 64717, 0, 0, 0, 66884, 6292,
- 65303, 0, 6452, 917886, 917887, 66249, 917885, 917890, 917891, 917888,
- 719, 101446, 0, 917892, 0, 0, 0, 94083, 10868, 121333, 2349, 5902,
- 917896, 6335, 917902, 917899, 917900, 0, 64369, 0, 0, 0, 69245, 0,
- 126564, 0, 0, 128565, 0, 0, 0, 0, 0, 6454, 1229, 83457, 83458, 83450,
- 83451, 83452, 65100, 120508, 8224, 917873, 917874, 917879, 917880,
- 917877, 917878, 128929, 0, 917881, 917882, 5365, 67836, 8901, 0, 0,
- 129951, 0, 69257, 5925, 83436, 64330, 128400, 83431, 83432, 83433, 83434,
+ 74468, 65160, 0, 129839, 127511, 0, 0, 6558, 0, 0, 128686, 92775, 0,
+ 71450, 41302, 127927, 0, 0, 128646, 68762, 11729, 8719, 9060, 0, 128796,
+ 0, 0, 0, 129682, 0, 11734, 93011, 11730, 73450, 9593, 5757, 2403, 0,
+ 55275, 0, 11728, 65894, 0, 0, 0, 68741, 0, 0, 0, 43489, 4282, 983845, 0,
+ 83497, 70328, 128103, 70324, 0, 0, 127509, 0, 8456, 0, 0, 74783, 0,
+ 78250, 0, 70320, 120722, 9792, 0, 70326, 0, 0, 83500, 70322, 10019,
+ 71701, 123617, 6568, 4365, 0, 0, 3647, 0, 41134, 128341, 0, 125043,
+ 41135, 0, 0, 0, 129938, 0, 123616, 0, 41137, 41139, 0, 6545, 0, 125139,
+ 7597, 10528, 75054, 0, 3732, 73910, 0, 0, 0, 7312, 983639, 9062, 93840,
+ 11853, 0, 0, 128324, 41538, 0, 0, 0, 0, 194706, 41531, 1263, 3720, 0,
+ 68028, 0, 41524, 64692, 119635, 0, 41534, 0, 92193, 0, 41168, 0, 67398,
+ 127347, 3524, 0, 8831, 127349, 127357, 0, 127360, 127352, 129816, 0, 0,
+ 0, 0, 0, 5845, 0, 0, 0, 71909, 8200, 0, 68460, 0, 43283, 5551, 0, 0, 0,
+ 6340, 983552, 100602, 0, 0, 0, 0, 0, 5422, 0, 0, 0, 2471, 0, 0, 2749, 0,
+ 73774, 10913, 72122, 0, 8666, 675, 74093, 0, 194986, 0, 69262, 0, 0, 0,
+ 10928, 0, 41153, 0, 0, 0, 3738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 42347, 12092, 9615, 7234, 74047, 0, 0, 0, 123639, 0, 0, 2934, 0, 0, 0, 0,
+ 74507, 0, 74461, 0, 0, 74290, 0, 64562, 129975, 64473, 0, 0, 73728, 0,
+ 11212, 0, 12128, 6534, 0, 0, 1901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69940,
+ 65459, 68293, 92290, 128808, 3770, 0, 0, 0, 64579, 128511, 0, 0, 983332,
+ 983340, 0, 0, 0, 5941, 0, 0, 65079, 0, 0, 0, 73961, 983334, 0, 0, 0, 0,
+ 0, 0, 10638, 0, 0, 0, 71486, 0, 0, 983349, 0, 43840, 129495, 0, 5233,
+ 983346, 64792, 71233, 0, 983324, 0, 0, 9847, 0, 1685, 595, 0, 73971,
+ 1292, 8940, 0, 11088, 0, 10004, 0, 0, 6541, 0, 0, 0, 5603, 9014, 5606, 0,
+ 538, 128705, 5602, 8467, 74391, 6547, 0, 0, 0, 0, 8458, 129534, 8495, 0,
+ 0, 917552, 10981, 78314, 0, 2465, 0, 0, 0, 9730, 9280, 0, 0, 74155,
+ 72766, 113690, 0, 504, 0, 120715, 0, 983606, 0, 0, 0, 123141, 125024, 0,
+ 0, 732, 3737, 0, 1548, 0, 0, 1832, 5604, 0, 41141, 0, 5607, 72854, 41142,
+ 3745, 0, 0, 128137, 0, 0, 3869, 11937, 5725, 0, 66566, 7416, 5728, 0, 0,
+ 0, 11918, 66567, 5724, 118829, 5727, 0, 0, 0, 5723, 0, 128116, 71999, 0,
+ 0, 0, 42532, 0, 12303, 0, 11423, 0, 983115, 68303, 74074, 0, 128267,
+ 6559, 64557, 71348, 0, 66763, 43019, 0, 10238, 0, 0, 43377, 0, 71346,
+ 124937, 9783, 42704, 0, 71719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41144,
+ 129465, 0, 0, 0, 72793, 92176, 0, 70682, 0, 8820, 0, 0, 0, 11515, 526, 0,
+ 0, 0, 0, 0, 0, 8635, 0, 0, 8288, 11815, 0, 0, 0, 1543, 3713, 0, 0, 0,
+ 68041, 127816, 0, 0, 64357, 0, 42082, 0, 0, 8987, 42081, 0, 0, 0, 0, 0,
+ 0, 6553, 0, 0, 11253, 0, 0, 5475, 0, 0, 0, 119334, 12990, 1160, 42084, 0,
+ 123152, 0, 0, 360, 0, 0, 128274, 5863, 3137, 0, 983315, 0, 0, 10959,
+ 3146, 0, 127374, 0, 68341, 13076, 3135, 983298, 0, 0, 3142, 0, 94068,
+ 10819, 128479, 0, 74635, 12877, 119867, 73967, 0, 70808, 0, 0, 0, 0,
+ 6163, 129745, 113728, 0, 0, 0, 8603, 0, 0, 3306, 0, 43392, 0, 0, 5751, 0,
+ 0, 0, 0, 0, 7403, 0, 118933, 0, 0, 64783, 92658, 0, 0, 129592, 0, 0,
+ 65569, 7021, 0, 0, 0, 0, 0, 6540, 6974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43585,
+ 0, 6551, 983974, 0, 0, 0, 0, 0, 72216, 8977, 602, 120814, 0, 0, 0, 72119,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983624, 74812, 0, 0, 0, 9475, 0, 65105, 0,
+ 983219, 0, 43592, 7831, 66751, 0, 0, 73915, 0, 43593, 0, 43591, 43061, 0,
+ 0, 43589, 43584, 0, 13113, 0, 0, 43590, 8766, 9087, 0, 0, 41574, 78337,
+ 0, 42900, 6376, 0, 0, 0, 0, 9854, 0, 0, 0, 0, 0, 0, 0, 2909, 0, 0, 0,
+ 6529, 110930, 75004, 3751, 0, 0, 0, 1798, 0, 0, 1354, 0, 13152, 6557,
+ 12430, 0, 94098, 0, 0, 0, 68123, 128097, 0, 0, 0, 71264, 0, 11082, 0,
+ 65677, 8682, 42054, 92595, 42045, 9804, 0, 0, 3595, 0, 0, 0, 0, 42399, 0,
+ 0, 0, 65541, 0, 7324, 0, 0, 0, 8797, 77895, 0, 64888, 7167, 2356, 95, 0,
+ 0, 0, 42286, 0, 0, 69999, 0, 120877, 0, 0, 42324, 129359, 0, 0, 43492, 0,
+ 43406, 0, 0, 0, 0, 0, 43400, 0, 0, 71720, 0, 66435, 0, 0, 3201, 514,
+ 74502, 0, 43396, 0, 64493, 0, 43404, 11218, 0, 0, 43398, 0, 0, 41341,
+ 129485, 6564, 1463, 41342, 0, 5293, 0, 0, 3733, 0, 0, 41344, 0, 0, 0, 0,
+ 41346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983745, 0, 0, 0, 65272, 0, 0, 1270,
+ 1132, 0, 0, 0, 66655, 0, 0, 74314, 64761, 0, 110853, 8510, 0, 129600, 0,
+ 0, 0, 0, 0, 0, 69692, 0, 0, 42383, 69690, 0, 69700, 13141, 0, 92465, 0,
+ 0, 0, 41566, 0, 0, 129334, 127171, 0, 0, 0, 0, 0, 0, 0, 6308, 0, 0, 2611,
+ 0, 66881, 0, 65063, 0, 0, 0, 0, 4484, 8747, 110597, 128369, 0, 0, 0, 0,
+ 0, 0, 12902, 0, 0, 7299, 0, 0, 12107, 7100, 10905, 65010, 0, 125135,
+ 66018, 9284, 0, 0, 0, 0, 0, 0, 0, 12010, 0, 126093, 120949, 121032, 0, 0,
+ 0, 0, 0, 0, 0, 0, 6618, 3562, 66365, 0, 42234, 12648, 128039, 0, 0, 0,
+ 41309, 9764, 41316, 0, 0, 13230, 41299, 0, 0, 68365, 0, 0, 0, 0, 0, 0,
+ 4153, 0, 0, 128047, 0, 0, 42889, 0, 129322, 41578, 0, 41577, 0, 68092, 0,
+ 6533, 0, 41570, 0, 72414, 0, 41580, 74628, 0, 12901, 0, 0, 0, 0, 71461,
+ 41360, 0, 0, 4743, 0, 0, 0, 0, 68398, 110781, 5890, 110779, 111103, 3739,
+ 8695, 92514, 0, 3964, 8984, 111095, 68288, 0, 0, 70000, 111090, 111089,
+ 111088, 3956, 82952, 111093, 6563, 111091, 41305, 0, 0, 12067, 41312, 0,
+ 0, 0, 0, 0, 8175, 0, 3600, 0, 934, 0, 0, 173, 129844, 0, 110784, 110785,
+ 1750, 110783, 41358, 68368, 1807, 0, 92298, 0, 5889, 0, 0, 0, 67127, 0,
+ 0, 121395, 6982, 1721, 0, 7891, 0, 42160, 67129, 4512, 983771, 69460, 0,
+ 0, 0, 0, 0, 120716, 0, 0, 0, 0, 0, 119140, 3975, 72253, 74087, 0, 12672,
+ 0, 129821, 0, 0, 129836, 0, 121100, 0, 0, 41095, 3962, 68242, 2932,
+ 41101, 3954, 6457, 4513, 0, 0, 0, 0, 1468, 0, 0, 55237, 128230, 0,
+ 127244, 55238, 41080, 0, 0, 4320, 74104, 0, 0, 0, 0, 77918, 0, 128384,
+ 8256, 0, 72413, 0, 8879, 0, 0, 8770, 0, 0, 92214, 0, 0, 128786, 4283,
+ 129689, 0, 68361, 0, 74826, 0, 0, 0, 0, 127954, 65106, 42761, 121516,
+ 4581, 8411, 0, 0, 72259, 0, 93037, 0, 0, 0, 92452, 4392, 0, 10786, 69661,
+ 0, 8184, 0, 0, 7396, 0, 0, 69788, 0, 43512, 7965, 111039, 111038, 111037,
+ 111036, 41350, 0, 0, 0, 2294, 64501, 68034, 0, 68405, 111034, 0, 0,
+ 111030, 111029, 71105, 111027, 0, 111033, 92200, 111031, 0, 6764, 0, 0,
+ 111026, 111025, 111024, 65203, 128010, 0, 0, 0, 3210, 0, 129978, 0, 0,
+ 82958, 127970, 82957, 0, 68875, 10043, 71979, 1186, 41571, 0, 5209, 9464,
+ 82960, 66657, 5207, 65062, 5213, 0, 0, 41348, 41568, 128803, 3253,
+ 111045, 111044, 74067, 111042, 111049, 5596, 111047, 111046, 0, 64887, 0,
+ 5217, 111041, 72252, 0, 0, 0, 0, 2635, 92760, 0, 0, 0, 92742, 0, 113672,
+ 0, 0, 0, 64558, 67081, 0, 67083, 0, 0, 0, 5784, 0, 0, 0, 0, 4011, 0, 0,
+ 0, 0, 4254, 0, 111054, 5600, 111052, 111051, 10447, 5598, 1207, 111055,
+ 0, 3501, 42582, 0, 111050, 0, 1124, 5597, 983496, 983497, 9321, 129464,
+ 75040, 983493, 0, 1719, 68356, 68354, 9671, 1125, 2721, 0, 983498,
+ 983499, 7631, 5488, 111082, 0, 0, 5491, 111086, 8937, 0, 3236, 74187,
+ 5490, 0, 5489, 8522, 68358, 111069, 6300, 111067, 111066, 0, 0, 111071,
+ 111070, 0, 9875, 7593, 111065, 0, 0, 43182, 0, 68379, 3311, 111058,
+ 111057, 3746, 11016, 65752, 111061, 0, 43423, 68775, 0, 111056, 72225, 0,
+ 0, 127120, 0, 2232, 0, 0, 0, 0, 0, 126555, 0, 0, 8656, 0, 128358, 0, 0,
+ 983485, 983486, 917563, 983484, 983481, 983482, 0, 0, 0, 129669, 0,
+ 111183, 128043, 983490, 1036, 983488, 111075, 1723, 111073, 111072,
+ 111079, 41579, 111077, 111076, 10705, 0, 983480, 74486, 71693, 740,
+ 983476, 983477, 129645, 0, 0, 74846, 92255, 0, 0, 0, 0, 0, 10438, 74487,
+ 73798, 13285, 0, 0, 0, 5690, 0, 93992, 0, 0, 13095, 0, 127857, 121419,
+ 7321, 121203, 13254, 70176, 75070, 0, 0, 0, 0, 127845, 3247, 317, 0, 0,
+ 0, 0, 917543, 0, 10173, 0, 0, 0, 0, 0, 5223, 0, 0, 119564, 5226, 0,
+ 94044, 5880, 94065, 7758, 0, 0, 5224, 5487, 94041, 5692, 41725, 983462,
+ 0, 5695, 41711, 0, 43171, 0, 94049, 5691, 983467, 866, 1488, 983466,
+ 983452, 65665, 94036, 983451, 74797, 0, 0, 11039, 983460, 11145, 71211,
+ 983459, 983456, 983457, 983454, 983455, 42492, 43402, 125208, 3302, 0,
+ 72842, 68809, 0, 0, 120885, 121300, 0, 7856, 8690, 0, 73076, 0, 0, 0,
+ 73091, 0, 69925, 120635, 65153, 0, 0, 0, 0, 0, 0, 4540, 0, 0, 0, 0,
+ 11844, 121209, 8863, 0, 75061, 71978, 6389, 0, 42371, 83205, 8790,
+ 120911, 0, 111125, 71168, 8869, 0, 0, 42060, 0, 9648, 111123, 71170,
+ 10270, 10286, 10318, 10382, 43529, 0, 0, 0, 0, 0, 70110, 43835, 119520,
+ 70111, 119360, 118815, 127084, 127083, 8767, 0, 128437, 41281, 0, 5201,
+ 0, 6215, 67072, 6214, 13101, 0, 0, 65268, 67073, 0, 0, 127976, 72995,
+ 127073, 10511, 42075, 0, 127071, 129509, 0, 67115, 127069, 111293,
+ 127068, 0, 127067, 0, 74845, 0, 42071, 43156, 0, 0, 0, 0, 7954, 0, 0, 0,
+ 8485, 4671, 0, 917574, 4740, 0, 0, 42618, 78294, 3064, 6212, 0, 0, 0,
+ 9554, 0, 83044, 0, 126598, 0, 78291, 0, 6213, 12885, 0, 129086, 64720, 0,
+ 983907, 0, 0, 0, 11430, 0, 7518, 9317, 0, 3729, 10406, 0, 119259, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 73825, 0, 0, 129599, 8786, 10390, 0, 0, 917601,
+ 93034, 0, 7924, 0, 43307, 0, 0, 0, 0, 0, 0, 118843, 9623, 435, 0, 0,
+ 12893, 8093, 9079, 0, 0, 0, 0, 0, 64430, 0, 10294, 10326, 0, 0, 0, 0, 0,
+ 0, 3623, 125188, 83378, 0, 43197, 0, 0, 0, 78296, 0, 0, 0, 7914, 0,
+ 92170, 0, 2624, 0, 0, 0, 120859, 67110, 11058, 0, 67107, 0, 0, 0, 0,
+ 120793, 0, 0, 6717, 10619, 0, 0, 0, 11832, 128664, 0, 0, 0, 70202, 0, 0,
+ 0, 3232, 73824, 74581, 0, 0, 0, 41889, 0, 0, 1161, 41895, 74103, 9701, 0,
+ 0, 129385, 73819, 120588, 5012, 0, 41362, 0, 68507, 0, 0, 0, 0, 0, 41364,
+ 0, 0, 41352, 41361, 0, 41366, 0, 70129, 129065, 917, 0, 119934, 119923,
+ 92421, 119912, 0, 119924, 119916, 0, 71482, 0, 0, 0, 125136, 128583, 0,
+ 7022, 0, 4739, 0, 5802, 9816, 8615, 0, 0, 491, 65837, 0, 0, 128644, 0,
+ 8426, 11092, 9891, 0, 0, 0, 41881, 118823, 3736, 7394, 42648, 0, 68448,
+ 9095, 7741, 12684, 41885, 0, 0, 0, 0, 5815, 0, 0, 0, 127392, 0, 0, 41878,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120804, 0, 0, 2267, 0, 78289, 78359, 78288,
+ 0, 0, 78318, 65920, 0, 0, 7057, 9408, 9409, 9410, 9411, 9412, 9413, 9414,
+ 9415, 9416, 9417, 9418, 9419, 9420, 9421, 5897, 9423, 917933, 127107, 0,
+ 127108, 917937, 127963, 8955, 9399, 9400, 9401, 9402, 9403, 9404, 9405,
+ 9406, 9407, 0, 128626, 42669, 73832, 78261, 67683, 2631, 119308, 78259,
+ 0, 78260, 3996, 0, 119307, 0, 0, 0, 0, 0, 0, 64825, 917916, 917913,
+ 917914, 917919, 5899, 917917, 129990, 12085, 0, 574, 917922, 77825,
+ 73828, 9473, 77824, 118918, 73900, 41735, 42211, 0, 4190, 77834, 77835,
+ 77830, 77833, 3616, 77828, 77837, 77838, 7708, 77836, 2228, 113765, 0, 0,
+ 4191, 0, 77844, 73800, 77842, 77843, 77839, 77840, 0, 78311, 83375, 0, 0,
+ 10415, 74102, 0, 5896, 0, 10351, 67151, 0, 73829, 0, 127159, 0, 73998,
+ 41355, 42883, 70736, 71212, 8021, 0, 119150, 983713, 41357, 8011, 42885,
+ 42887, 41354, 0, 0, 10026, 5472, 120554, 1191, 101217, 5470, 128784,
+ 5476, 101216, 0, 0, 0, 42874, 78281, 42876, 6304, 78283, 0, 2675, 120690,
+ 0, 0, 128954, 0, 0, 5478, 5904, 0, 0, 0, 7291, 77848, 43761, 13067, 0, 0,
+ 119271, 120360, 69731, 77856, 77857, 77854, 77855, 77852, 77853, 77850,
+ 10750, 43714, 77858, 0, 0, 0, 12887, 120364, 127745, 77866, 77867, 77864,
+ 77865, 9929, 5199, 77859, 1120, 0, 0, 0, 9486, 7554, 0, 77868, 72832, 0,
+ 0, 5894, 70069, 0, 0, 92511, 70358, 1323, 13162, 120937, 0, 0, 0, 77881,
+ 66022, 0, 72857, 0, 0, 0, 0, 0, 1142, 0, 8271, 0, 0, 126645, 12903,
+ 43622, 4002, 0, 10442, 10676, 120368, 0, 120369, 0, 0, 0, 0, 66642, 1277,
+ 0, 7871, 0, 0, 78853, 0, 119015, 0, 0, 11784, 0, 78012, 4700, 0, 78858,
+ 0, 78855, 0, 0, 92400, 77879, 19932, 77876, 77877, 74804, 77874, 77869,
+ 77871, 0, 71487, 43118, 0, 0, 6774, 6773, 0, 194684, 10346, 10410, 78860,
+ 118974, 0, 101197, 6108, 0, 110612, 0, 0, 0, 121309, 74166, 124973, 0, 0,
+ 0, 69407, 0, 70357, 0, 0, 74217, 0, 64698, 4192, 9289, 0, 0, 128847, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11603, 0, 0, 101166, 82976, 0, 0, 67812, 0,
+ 101163, 0, 42572, 0, 128300, 119146, 1963, 11622, 0, 43237, 82981, 7550,
+ 67100, 5903, 82984, 78009, 129750, 9662, 0, 128391, 0, 0, 0, 0, 11013, 0,
+ 0, 0, 128433, 67090, 0, 0, 0, 0, 0, 11568, 983685, 43367, 0, 0, 7852, 0,
+ 0, 0, 0, 0, 194676, 0, 194675, 0, 0, 416, 129668, 0, 73834, 0, 68921,
+ 10984, 0, 0, 101175, 129838, 101182, 0, 127013, 92423, 0, 983256, 121199,
+ 0, 0, 12540, 0, 0, 0, 0, 11445, 101168, 2112, 0, 0, 0, 1021, 0, 9507,
+ 10210, 78005, 8023, 93963, 78006, 78001, 43181, 78003, 9532, 119094, 0,
+ 0, 0, 0, 0, 1885, 43268, 129802, 129798, 120542, 121153, 392, 7894, 4391,
+ 129810, 8221, 119597, 77999, 77998, 0, 0, 0, 92967, 0, 3558, 0, 3913,
+ 70429, 121376, 0, 0, 1265, 0, 6309, 0, 12969, 0, 101151, 0, 101146, 0,
+ 101139, 0, 41864, 0, 0, 74294, 0, 167, 0, 917584, 0, 93983, 72354, 68477,
+ 0, 0, 917594, 0, 2493, 129827, 0, 129804, 0, 917570, 0, 0, 0, 406,
+ 917592, 0, 0, 0, 0, 0, 0, 0, 127161, 0, 128597, 0, 0, 0, 3421, 10561, 0,
+ 8365, 0, 0, 127569, 120787, 128669, 0, 0, 0, 0, 7834, 0, 0, 101154,
+ 10298, 6624, 4908, 0, 1639, 120842, 0, 0, 6327, 6724, 0, 0, 0, 69910,
+ 4817, 0, 0, 0, 68059, 0, 11022, 0, 0, 0, 118888, 0, 0, 7548, 64794, 0,
+ 12291, 983165, 0, 0, 0, 0, 0, 0, 1134, 1838, 0, 2057, 0, 0, 0, 0, 0, 0,
+ 5206, 0, 0, 42523, 0, 0, 0, 0, 65550, 8570, 4816, 0, 127926, 0, 4821, 0,
+ 0, 0, 4818, 125257, 119974, 119977, 0, 0, 119970, 119973, 0, 119983,
+ 119982, 119985, 119984, 119979, 119978, 0, 119980, 119670, 129297, 0,
+ 11284, 119987, 70097, 65155, 119988, 0, 9363, 0, 0, 0, 5900, 93990, 7889,
+ 2722, 128770, 0, 0, 0, 0, 2282, 0, 0, 0, 68093, 0, 0, 0, 0, 0, 70150, 0,
+ 0, 0, 0, 129651, 70146, 983079, 119967, 71330, 70148, 0, 0, 94006, 70144,
+ 119964, 110677, 110678, 110675, 110676, 0, 110674, 4226, 0, 123165, 5732,
+ 71327, 0, 0, 65119, 0, 0, 92971, 64770, 0, 0, 6093, 0, 0, 1395, 0, 0, 0,
+ 121179, 786, 0, 43174, 64340, 0, 125269, 0, 983643, 125138, 10132, 0, 0,
+ 0, 0, 0, 93956, 0, 68444, 0, 92437, 123143, 0, 0, 92656, 0, 0, 0, 1399,
+ 121463, 0, 121465, 121464, 120808, 241, 121469, 4907, 0, 0, 0, 0, 0, 0,
+ 0, 0, 127904, 0, 0, 42780, 0, 0, 0, 4217, 0, 0, 0, 0, 72158, 0, 0, 43099,
+ 3965, 0, 0, 0, 13300, 0, 0, 43057, 0, 0, 0, 0, 0, 65372, 0, 6410, 126073,
+ 125252, 70468, 0, 0, 0, 119558, 0, 0, 0, 0, 0, 0, 43188, 2626, 7762, 0,
+ 0, 0, 127183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67726, 0, 126993, 1542, 0, 0,
+ 92550, 0, 0, 74311, 0, 0, 10181, 2150, 0, 0, 0, 0, 0, 68053, 6029, 72852,
+ 0, 0, 0, 0, 8993, 0, 0, 0, 93968, 606, 0, 0, 0, 0, 4311, 0, 6027, 126615,
+ 4322, 0, 65207, 0, 0, 983901, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 70806, 0, 0, 0, 92783, 0, 0, 65817, 55288, 127934, 66564, 8530, 0,
+ 7709, 0, 121202, 66560, 128528, 917595, 12876, 66561, 0, 121430, 983938,
+ 7789, 5855, 809, 0, 0, 72853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64386, 0,
+ 74909, 0, 120607, 66416, 83360, 6532, 0, 0, 0, 0, 128224, 0, 0, 0, 0,
+ 43091, 92287, 0, 0, 129312, 0, 0, 0, 11361, 0, 0, 8153, 128105, 0, 10741,
+ 0, 0, 0, 0, 0, 64706, 0, 0, 0, 78870, 9466, 78866, 9824, 0, 0, 0, 120977,
+ 915, 0, 0, 43865, 0, 0, 0, 67131, 70096, 67137, 0, 129614, 73648, 6730,
+ 78862, 68161, 0, 78861, 126542, 0, 0, 94010, 983683, 0, 0, 66043, 0, 0,
+ 43107, 0, 0, 92343, 0, 73879, 0, 0, 0, 6103, 0, 0, 92470, 0, 12889, 0,
+ 127137, 0, 0, 0, 0, 0, 0, 119262, 83028, 0, 0, 0, 69279, 0, 0, 0, 13118,
+ 7700, 917537, 9690, 0, 0, 68080, 512, 0, 72792, 0, 0, 77892, 632, 77890,
+ 77891, 42529, 0, 0, 0, 0, 0, 0, 0, 128273, 0, 0, 7379, 64581, 5386, 0, 0,
+ 10633, 72316, 64488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124956, 71307, 0, 0, 0,
+ 0, 0, 92370, 0, 0, 0, 0, 0, 71314, 1801, 0, 0, 120867, 0, 0, 77888, 2085,
+ 702, 77887, 77884, 77885, 13074, 77883, 66299, 0, 0, 12106, 0, 0, 1755,
+ 0, 77897, 77898, 1163, 3102, 77893, 77894, 0, 0, 0, 0, 69227, 0, 77901,
+ 77902, 77899, 77900, 65171, 0, 0, 0, 70157, 0, 0, 0, 0, 2908, 0, 11177,
+ 64902, 64950, 0, 128740, 66906, 124959, 70499, 0, 0, 0, 64352, 0, 125031,
+ 1007, 0, 9199, 0, 127371, 118992, 41890, 0, 2730, 119072, 0, 5428, 0,
+ 73771, 129993, 0, 0, 0, 71458, 0, 0, 0, 68089, 0, 44012, 0, 71456, 0,
+ 9158, 66878, 69905, 92440, 0, 101272, 0, 484, 0, 0, 0, 194742, 0, 0, 0,
+ 0, 572, 7041, 2736, 0, 0, 93962, 0, 68628, 0, 128727, 5438, 5222, 5381,
+ 43114, 0, 5193, 5125, 5456, 5509, 0, 120664, 113700, 0, 0, 0, 3430, 0,
+ 42905, 0, 74929, 6050, 0, 0, 129197, 0, 0, 10908, 0, 0, 0, 64617, 0, 0,
+ 3957, 0, 0, 0, 674, 0, 0, 2946, 5354, 5251, 5328, 5307, 3759, 72318,
+ 8364, 5123, 0, 5281, 5469, 5121, 0, 0, 0, 5130, 0, 129608, 0, 0, 0, 1221,
+ 2733, 0, 0, 0, 72321, 127245, 0, 0, 0, 101277, 0, 5939, 0, 0, 0, 71867,
+ 68400, 128216, 10321, 10289, 0, 10385, 123164, 0, 0, 0, 0, 118943, 0,
+ 11411, 0, 5938, 0, 120865, 0, 0, 10401, 10337, 0, 0, 0, 0, 0, 0, 0,
+ 71942, 0, 0, 12165, 0, 0, 9885, 0, 8077, 0, 127908, 0, 0, 0, 0, 129138,
+ 4220, 10725, 10433, 0, 68395, 4987, 64519, 0, 0, 0, 123626, 120356, 0,
+ 11733, 0, 120792, 0, 127233, 0, 0, 0, 92345, 68254, 983642, 77991, 0,
+ 2724, 0, 0, 12313, 110619, 515, 119947, 119944, 119945, 119942, 119943,
+ 119940, 119941, 119938, 8606, 4046, 4589, 4521, 0, 9141, 0, 0, 2741, 0,
+ 0, 1370, 0, 0, 0, 0, 0, 0, 66880, 0, 66003, 0, 64440, 0, 0, 69458, 0,
+ 11593, 68669, 68666, 68660, 0, 0, 2744, 72285, 68638, 0, 814, 0, 119962,
+ 119963, 119960, 119961, 101106, 43029, 119956, 11623, 119954, 11955,
+ 119952, 119953, 41986, 119951, 0, 120497, 4847, 110975, 0, 0, 0, 0, 1581,
+ 64920, 93830, 12954, 963, 110973, 110972, 110971, 110969, 5278, 110967,
+ 68621, 92222, 983449, 68625, 983447, 68617, 110960, 0, 101459, 101487,
+ 110964, 110963, 110962, 0, 0, 101464, 101483, 101463, 983438, 983435,
+ 92648, 127379, 0, 65137, 6483, 65392, 0, 4213, 129649, 41303, 0, 0, 0,
+ 41306, 983217, 2698, 0, 0, 0, 68396, 0, 41304, 824, 0, 78011, 72315,
+ 78894, 74827, 78892, 64804, 9820, 119820, 110985, 110976, 0, 6739, 0,
+ 5481, 3490, 110978, 110977, 71706, 69947, 67702, 9124, 12688, 119833,
+ 101496, 0, 101495, 119821, 119824, 68367, 42575, 101474, 101478, 119827,
+ 101481, 101476, 71087, 68658, 119946, 8025, 68630, 101490, 68675, 92445,
+ 71097, 69613, 0, 0, 0, 0, 983430, 2745, 11797, 110990, 983426, 9202,
+ 983424, 983425, 0, 0, 0, 10525, 5436, 74584, 110987, 110986, 121506,
+ 43080, 121508, 121507, 983415, 6246, 119958, 10921, 9723, 6777, 6776,
+ 6775, 0, 0, 70287, 92384, 0, 8669, 0, 0, 65093, 0, 78881, 2716, 0, 0,
+ 11252, 101475, 68369, 0, 11060, 12985, 2711, 78872, 78027, 78026, 7992,
+ 0, 0, 42938, 78033, 78032, 78877, 70724, 78029, 78028, 78031, 78030,
+ 64535, 110998, 10130, 110996, 0, 0, 111001, 111000, 127914, 983412,
+ 78014, 5713, 110995, 7570, 110993, 110992, 0, 11190, 129700, 9026, 0,
+ 74864, 7547, 78891, 0, 10008, 10222, 0, 129543, 9744, 0, 127193, 983408,
+ 119656, 983406, 94070, 983404, 983405, 983402, 9045, 78888, 4225, 78886,
+ 78887, 68757, 78885, 78882, 78883, 983397, 983398, 8405, 983396, 10423,
+ 10359, 983391, 983392, 0, 129149, 4215, 9789, 0, 4321, 12309, 983400,
+ 41313, 0, 5368, 66886, 0, 0, 5366, 0, 5372, 101482, 0, 0, 7720, 7390,
+ 2696, 0, 0, 8268, 0, 1790, 0, 0, 118977, 0, 0, 0, 5376, 1835, 72313,
+ 78704, 128089, 0, 0, 68655, 1180, 0, 0, 0, 0, 0, 0, 0, 9122, 0, 11928, 0,
+ 65283, 0, 101449, 5971, 101448, 43500, 1268, 65097, 983218, 0, 101445, 0,
+ 1427, 128440, 0, 5970, 3431, 72299, 101439, 101435, 983384, 983385,
+ 983382, 2738, 125066, 10455, 0, 74026, 0, 4222, 6240, 0, 119013, 983389,
+ 68377, 6248, 983373, 67815, 983371, 917907, 92582, 0, 101453, 125215, 0,
+ 2728, 65549, 64563, 101428, 101425, 101429, 128145, 0, 10713, 7166,
+ 119559, 2622, 101450, 0, 0, 0, 8954, 0, 94008, 2632, 42617, 10108, 1011,
+ 42852, 12080, 2709, 0, 5716, 0, 0, 0, 0, 127100, 69378, 0, 9515, 127098,
+ 66465, 6451, 0, 127097, 8918, 983556, 0, 0, 19950, 0, 0, 0, 44003, 0, 0,
+ 0, 0, 0, 0, 983495, 74022, 0, 128795, 68643, 67410, 0, 5721, 0, 0, 0,
+ 121074, 11267, 983364, 66464, 5720, 983363, 0, 4219, 5718, 8696, 5717, 0,
+ 983370, 983878, 983368, 541, 983366, 983367, 119948, 119089, 68389,
+ 983352, 119949, 56, 4216, 10577, 0, 0, 77849, 69620, 983357, 983358,
+ 66899, 983356, 0, 0, 67628, 0, 0, 7086, 0, 67998, 67621, 0, 2734, 69616,
+ 0, 67627, 118937, 0, 67625, 0, 0, 0, 42593, 0, 128217, 0, 0, 119939, 0,
+ 68180, 0, 0, 71104, 7442, 43665, 359, 41253, 68392, 6239, 120599, 41256,
+ 0, 67740, 111023, 111022, 111021, 9346, 69660, 41254, 0, 43291, 78002, 0,
+ 127024, 124993, 93841, 0, 0, 0, 4368, 983500, 0, 68137, 0, 0, 41024, 0,
+ 0, 121359, 121420, 0, 0, 0, 4223, 0, 8574, 83502, 0, 0, 0, 0, 0, 92718,
+ 983636, 70432, 128323, 68382, 0, 0, 0, 0, 0, 4144, 0, 83193, 6245, 0,
+ 2732, 92644, 0, 0, 0, 83501, 0, 0, 0, 128005, 0, 0, 129652, 983148, 3097,
+ 0, 0, 77996, 0, 0, 10863, 111020, 111019, 111018, 0, 111015, 111014,
+ 111013, 111012, 118964, 0, 10216, 64293, 0, 0, 69393, 128331, 12325,
+ 111010, 8717, 111008, 101413, 0, 101380, 0, 8700, 0, 101382, 68363,
+ 10426, 0, 71091, 10362, 0, 1715, 101378, 0, 64918, 101409, 43278, 42635,
+ 0, 0, 65275, 0, 0, 101319, 0, 0, 1607, 466, 118949, 0, 0, 127918, 6243,
+ 983882, 1350, 74195, 64420, 1993, 5362, 10666, 2708, 92471, 0, 13143,
+ 234, 3199, 0, 41268, 6334, 6250, 0, 0, 73750, 0, 73762, 10458, 0, 8576,
+ 127136, 0, 2704, 64953, 0, 68211, 8322, 0, 5753, 0, 2694, 0, 0, 2439,
+ 65104, 69804, 0, 303, 74625, 92622, 0, 2437, 0, 9817, 4844, 0, 0, 0, 0,
+ 0, 121120, 43292, 0, 2441, 0, 0, 0, 0, 0, 2451, 2714, 0, 0, 43379,
+ 127984, 74541, 753, 5849, 0, 43089, 0, 0, 119534, 0, 0, 0, 0, 2726, 3107,
+ 0, 0, 64937, 0, 78841, 1408, 0, 4607, 101299, 181, 0, 67728, 9539, 0, 0,
+ 65201, 121121, 92973, 64185, 4142, 64183, 0, 0, 0, 9706, 64178, 64177,
+ 64176, 0, 64182, 64181, 64180, 64179, 11401, 125124, 0, 1822, 0, 128581,
+ 68055, 3865, 122918, 0, 10500, 129602, 119024, 0, 110732, 9830, 0, 0, 0,
+ 65131, 0, 0, 0, 0, 74608, 9567, 0, 9599, 8748, 0, 0, 9557, 0, 0, 0,
+ 11494, 0, 0, 10865, 0, 43279, 64186, 68521, 0, 64191, 64190, 8898, 64188,
+ 129153, 41030, 78836, 0, 0, 78820, 126100, 0, 78805, 78806, 78801, 78802,
+ 6745, 78800, 0, 0, 0, 110866, 0, 0, 73679, 67838, 41039, 78809, 0, 0,
+ 129893, 0, 110869, 127045, 110867, 110868, 127039, 4400, 0, 64207, 10275,
+ 8925, 10371, 10307, 64202, 4248, 0, 72802, 4541, 6299, 64204, 64203,
+ 64201, 64200, 64199, 64198, 126471, 0, 0, 0, 64193, 64192, 0, 9943,
+ 64197, 64196, 64195, 64194, 13282, 42652, 64174, 64173, 83495, 846,
+ 72337, 9965, 74495, 72330, 83493, 83494, 2543, 12163, 64170, 83490,
+ 64167, 64166, 64165, 64164, 72333, 0, 64169, 64168, 64949, 0, 10251,
+ 10247, 64163, 64162, 2295, 43299, 43301, 129363, 0, 70791, 0, 0, 550,
+ 9910, 0, 0, 66579, 0, 0, 0, 9504, 0, 0, 10373, 0, 0, 10261, 10253, 7821,
+ 10277, 0, 74823, 1552, 0, 0, 129389, 0, 121435, 19910, 0, 0, 118849,
+ 121150, 0, 43985, 68051, 0, 69890, 121329, 78355, 983757, 0, 66405, 2431,
+ 3744, 66852, 1809, 0, 0, 0, 73759, 1264, 0, 78676, 11697, 121278, 9785,
+ 64716, 0, 0, 0, 0, 121307, 0, 0, 42609, 128388, 0, 66912, 127016, 0,
+ 983885, 74229, 0, 6487, 93798, 70743, 0, 0, 0, 83484, 83485, 83486,
+ 83487, 83480, 8355, 7854, 83483, 954, 64927, 0, 41045, 0, 41438, 0, 0,
+ 10711, 0, 0, 0, 0, 64774, 13309, 10947, 66727, 101426, 0, 0, 66795, 0, 0,
+ 0, 0, 0, 0, 0, 120634, 69228, 0, 0, 0, 0, 0, 0, 3060, 83478, 9986, 0,
+ 83473, 83474, 11698, 77880, 83469, 9916, 11701, 83472, 42586, 0, 8320, 0,
+ 119095, 0, 0, 1477, 43289, 0, 74358, 10884, 69446, 9908, 0, 0, 0, 3414,
+ 74304, 0, 0, 0, 0, 2110, 0, 68306, 0, 74532, 0, 129865, 0, 0, 7164, 0, 0,
+ 0, 11950, 5392, 42248, 65129, 68656, 5397, 129579, 0, 68136, 0, 0, 5395,
+ 72870, 5393, 354, 68615, 0, 0, 0, 0, 0, 126236, 0, 0, 626, 0, 5895, 0, 0,
+ 5780, 0, 66407, 10220, 0, 71121, 43297, 0, 0, 11468, 64436, 0, 0, 0,
+ 73818, 3918, 0, 3797, 72786, 0, 0, 4140, 0, 71254, 0, 9030, 813, 0,
+ 68131, 4146, 119957, 5360, 0, 129498, 0, 0, 6249, 0, 0, 0, 0, 0, 73092,
+ 0, 4911, 988, 0, 73125, 0, 42948, 0, 0, 0, 0, 74972, 0, 0, 0, 9825, 0, 0,
+ 12803, 126977, 11032, 67654, 6244, 0, 0, 68662, 0, 129351, 0, 72131,
+ 4169, 0, 0, 0, 129986, 121410, 120657, 0, 0, 68657, 128943, 78496, 0, 0,
+ 5898, 74540, 0, 41856, 93056, 194926, 125000, 127373, 83424, 83425,
+ 83426, 73736, 83420, 68870, 6448, 6835, 0, 4831, 83418, 83419, 67731, 0,
+ 0, 0, 0, 0, 0, 0, 78499, 0, 0, 0, 43288, 0, 0, 0, 0, 0, 43418, 0, 0, 0,
+ 7876, 68132, 917872, 0, 917870, 43378, 0, 0, 120890, 5892, 43605, 0, 0,
+ 0, 129058, 0, 0, 6251, 83409, 83410, 83411, 83412, 126512, 0, 71092,
+ 83408, 10114, 0, 0, 5387, 0, 0, 0, 0, 65553, 78346, 1747, 917849, 65109,
+ 69240, 917852, 126509, 0, 0, 0, 0, 125065, 0, 9850, 0, 367, 1472, 917859,
+ 6687, 0, 0, 5905, 12339, 8919, 73953, 65680, 0, 0, 78664, 0, 9134, 0,
+ 78666, 43011, 0, 126626, 0, 0, 0, 43013, 10614, 0, 0, 83413, 66646,
+ 83415, 83416, 0, 73881, 43012, 121127, 83293, 54, 43009, 73885, 0, 6211,
+ 0, 0, 83295, 68119, 43008, 10758, 0, 0, 0, 0, 0, 70018, 0, 0, 0, 0,
+ 12765, 0, 0, 0, 0, 126580, 0, 0, 43657, 0, 0, 0, 983718, 0, 83405,
+ 917843, 0, 0, 83401, 83402, 83403, 83404, 83397, 11363, 12057, 83400,
+ 1567, 0, 0, 83396, 0, 8957, 4139, 0, 0, 129336, 0, 0, 12740, 0, 92195,
+ 12761, 127793, 12759, 0, 72304, 67169, 83467, 44002, 0, 83462, 83463,
+ 83464, 12755, 12762, 41022, 67690, 64217, 476, 0, 983715, 0, 64212,
+ 41020, 1382, 64209, 64216, 64215, 64214, 64213, 0, 0, 0, 67584, 8720,
+ 3908, 0, 0, 0, 0, 101529, 129576, 0, 0, 3849, 92324, 94026, 9778, 917906,
+ 5891, 917912, 55, 917910, 917911, 0, 0, 7935, 67586, 0, 1114, 92599,
+ 67585, 78675, 0, 83447, 83449, 0, 0, 0, 64717, 0, 0, 0, 66884, 6292,
+ 65303, 0, 6452, 917886, 917887, 66249, 917885, 917890, 917891, 917888,
+ 719, 101446, 0, 917892, 0, 0, 0, 94083, 10868, 121333, 2349, 5902,
+ 917896, 6335, 917902, 917899, 917900, 0, 64369, 0, 0, 0, 69245, 0,
+ 126564, 0, 0, 128565, 0, 0, 0, 0, 0, 6454, 1229, 83457, 83458, 83450,
+ 83451, 83452, 65100, 120508, 8224, 917873, 917874, 917879, 917880,
+ 917877, 917878, 128929, 0, 917881, 917882, 5365, 67836, 8901, 0, 0,
+ 129951, 0, 69257, 5925, 83436, 64330, 128400, 83431, 83432, 83433, 83434,
83427, 83428, 83429, 83430, 64928, 10543, 0, 0, 83446, 414, 0, 0, 83442,
6456, 83444, 83445, 11905, 83439, 66284, 83441, 0, 68337, 0, 83437,
- 43832, 983139, 9751, 0, 128085, 11770, 0, 0, 69600, 65061, 0, 0, 0, 0, 0,
- 0, 121087, 0, 0, 69924, 0, 0, 0, 69913, 0, 121387, 101513, 101504,
- 101512, 42038, 387, 0, 12737, 0, 0, 43368, 0, 0, 0, 0, 129713, 129449,
- 121295, 0, 69400, 127309, 0, 375, 0, 0, 0, 983886, 0, 0, 119202, 119203,
- 0, 43120, 0, 0, 119196, 119197, 0, 4529, 119200, 119201, 119198, 119199,
- 0, 0, 69698, 13150, 64492, 0, 0, 0, 0, 0, 42891, 66327, 74298, 0, 0, 0,
- 2587, 42193, 0, 6455, 0, 4241, 0, 0, 0, 0, 0, 0, 0, 118821, 0, 0, 0,
- 125030, 0, 128684, 129390, 0, 5373, 0, 0, 119232, 10015, 0, 0, 0, 68642,
- 0, 120855, 42040, 128827, 5779, 129841, 42037, 83282, 0, 0, 93040, 83283,
- 101116, 0, 101117, 6983, 0, 0, 101115, 0, 0, 0, 0, 101111, 0, 119588, 0,
- 92495, 74558, 0, 68138, 70163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11144, 0,
- 2551, 0, 6453, 0, 6235, 0, 0, 129081, 72886, 44020, 11826, 0, 7780, 5369,
- 118958, 0, 0, 5367, 66870, 0, 0, 5377, 0, 68143, 128624, 78245, 5218, 0,
- 127333, 0, 0, 129717, 0, 0, 1300, 0, 127334, 64505, 0, 0, 119624, 1465,
- 0, 0, 0, 0, 0, 101109, 0, 113694, 10729, 0, 0, 8839, 119243, 0, 7785,
- 126530, 0, 0, 0, 0, 126603, 0, 0, 0, 3897, 0, 92331, 74417, 113704, 0,
- 68127, 71425, 70688, 0, 0, 0, 0, 69287, 3542, 0, 120685, 7951, 68152,
- 118857, 0, 92972, 0, 0, 127311, 73683, 0, 65150, 68031, 0, 0, 0, 0, 9985,
- 0, 127328, 0, 0, 0, 0, 10830, 0, 615, 64490, 7574, 0, 0, 0, 12909, 73698,
- 64559, 127332, 73951, 0, 67996, 2020, 0, 0, 0, 120701, 0, 983640, 0, 0,
- 0, 92991, 0, 0, 9070, 0, 68411, 11281, 42829, 0, 1033, 0, 0, 0, 0, 0,
- 65226, 0, 0, 0, 0, 0, 3450, 0, 7397, 0, 0, 42778, 10000, 41088, 449, 0,
- 0, 68458, 113725, 0, 0, 10738, 69634, 0, 0, 41085, 0, 0, 0, 12764, 0,
- 93058, 3596, 7322, 0, 0, 0, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 121350, 10820,
- 0, 0, 126567, 1853, 0, 0, 93014, 0, 12770, 0, 0, 124997, 0, 0, 0, 0, 0,
- 129053, 4828, 1258, 0, 2006, 0, 0, 74285, 127987, 0, 120683, 122880,
- 983881, 983884, 8846, 128255, 0, 128091, 2650, 9182, 1961, 121399, 11525,
- 0, 1959, 0, 55228, 11774, 41016, 0, 0, 128054, 41017, 13109, 0, 10519,
- 66331, 3454, 19930, 0, 41019, 92894, 0, 0, 78362, 41021, 101566, 0, 0, 0,
- 0, 65531, 0, 0, 0, 0, 0, 0, 8865, 6402, 113827, 77923, 0, 101536, 0,
- 7733, 0, 4998, 68493, 0, 0, 0, 4268, 101368, 0, 0, 101555, 101579, 10881,
- 0, 0, 0, 0, 2014, 0, 71901, 0, 0, 195057, 0, 0, 78357, 65281, 0, 0, 0, 0,
- 0, 2015, 0, 0, 71840, 66318, 74824, 101575, 0, 101574, 0, 0, 70061, 8094,
- 10135, 101551, 0, 794, 0, 0, 66335, 0, 121303, 4343, 0, 4833, 0, 0, 0, 0,
- 189, 12611, 0, 72215, 0, 4838, 126214, 4834, 65078, 0, 126104, 4837,
- 118853, 0, 121230, 4832, 128271, 0, 101584, 127838, 0, 0, 0, 0, 0, 0, 0,
- 3976, 118995, 128937, 0, 0, 0, 0, 0, 119010, 0, 121015, 0, 0, 0, 0, 2871,
- 0, 0, 999, 0, 68177, 0, 0, 2017, 0, 67824, 0, 0, 0, 0, 0, 0, 4775, 12555,
- 12571, 12550, 12583, 12560, 2019, 12556, 12584, 12586, 0, 12562, 12561,
- 12566, 12569, 12554, 0, 83344, 0, 68882, 0, 12567, 1402, 0, 0, 83348,
- 125072, 83347, 0, 83346, 0, 0, 0, 0, 64391, 0, 83341, 69602, 0, 1999, 0,
- 128141, 0, 0, 0, 0, 0, 0, 0, 68873, 0, 0, 66913, 2377, 0, 0, 12572,
- 11318, 12557, 12559, 9192, 12549, 12568, 2373, 9446, 9447, 9448, 9449, 0,
- 9480, 481, 0, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9430, 9431,
- 9432, 9433, 9434, 9435, 9436, 9437, 983097, 0, 9424, 9425, 9426, 9427,
- 9428, 7481, 0, 2362, 9655, 0, 2004, 0, 9782, 0, 0, 0, 0, 0, 0, 0, 1108,
- 0, 92461, 0, 128764, 0, 64781, 0, 0, 0, 121126, 0, 1392, 0, 0, 917557, 0,
- 8065, 70710, 128739, 0, 0, 0, 121068, 92418, 0, 0, 0, 43280, 0, 70718,
- 1812, 0, 73046, 0, 0, 0, 0, 0, 6054, 10697, 3169, 0, 0, 70720, 11487,
- 70712, 0, 0, 0, 194716, 0, 0, 41863, 0, 0, 2304, 0, 92326, 0, 42951, 0,
- 0, 64760, 11766, 0, 0, 0, 0, 69236, 0, 0, 8773, 10733, 36, 0, 0, 0, 0, 0,
- 11074, 0, 64910, 983130, 2009, 0, 0, 128036, 68114, 128906, 0, 0, 0,
- 983979, 12852, 3031, 0, 0, 129088, 0, 66414, 0, 0, 119950, 42613, 65933,
- 366, 0, 9892, 0, 11754, 101107, 83329, 65301, 44013, 83058, 67245, 10102,
- 0, 7739, 41026, 0, 0, 0, 0, 0, 0, 0, 0, 78386, 129475, 71868, 113811,
- 13081, 10923, 129330, 0, 68145, 0, 0, 74083, 0, 0, 128392, 83063, 83065,
- 0, 70706, 0, 0, 0, 70168, 66586, 4183, 64967, 66250, 0, 92547, 0, 0,
- 113685, 0, 3792, 2011, 0, 0, 126503, 83332, 0, 120595, 0, 68489, 41023,
- 0, 0, 11659, 7922, 12614, 2005, 8523, 0, 0, 7513, 1863, 129436, 83337,
- 128969, 0, 120274, 120033, 0, 8144, 0, 73031, 120269, 127524, 120270,
- 42241, 8783, 83326, 0, 0, 120735, 983959, 0, 129367, 0, 10680, 0, 43293,
- 68771, 0, 119164, 83320, 72003, 10187, 0, 0, 0, 83315, 0, 0, 0, 10968,
- 43296, 0, 0, 0, 101400, 0, 1005, 43826, 120030, 0, 2870, 0, 101399, 0, 0,
- 983779, 0, 235, 1384, 0, 74887, 70494, 120409, 0, 9796, 69895, 983812, 0,
- 120406, 13186, 120407, 0, 0, 0, 0, 42527, 12911, 43427, 1383, 0, 0, 0, 0,
- 6156, 68117, 0, 7993, 4288, 0, 0, 13238, 13244, 0, 0, 120426, 13234,
- 120427, 0, 118904, 0, 11364, 0, 1380, 65617, 120253, 120261, 13196,
- 13197, 120311, 120419, 9495, 0, 0, 120418, 0, 73976, 128160, 0, 6941, 0,
- 13205, 13211, 5801, 0, 74271, 120319, 0, 120302, 7670, 0, 68075, 983583,
- 0, 19957, 72314, 2021, 93811, 43877, 0, 0, 0, 0, 3875, 120431, 64341, 0,
- 9814, 43457, 13066, 3314, 7787, 0, 0, 0, 0, 0, 0, 64531, 129860, 0, 0, 0,
- 0, 0, 127138, 0, 0, 9742, 0, 0, 10800, 0, 8404, 0, 92592, 0, 7089, 0,
- 78545, 0, 0, 0, 0, 0, 4772, 5771, 101405, 0, 9841, 8843, 0, 0, 0, 129862,
- 120816, 0, 123137, 0, 0, 0, 0, 0, 0, 8849, 0, 0, 65112, 1796, 0, 0,
- 69665, 8164, 41301, 3502, 0, 122884, 128387, 0, 983816, 5825, 0, 0, 0, 0,
- 121322, 10983, 10354, 10418, 0, 2022, 0, 1409, 100789, 0, 0, 0, 0, 1390,
- 0, 0, 10471, 65904, 5846, 126472, 0, 0, 0, 0, 0, 0, 66035, 0, 0, 0, 0,
- 128190, 0, 3168, 67733, 0, 0, 2370, 0, 126243, 0, 195049, 0, 0, 1836, 0,
- 121207, 119137, 118959, 125232, 0, 0, 0, 2390, 3944, 0, 0, 0, 0, 69908,
- 125011, 0, 0, 123200, 0, 0, 8975, 64739, 0, 0, 0, 0, 64409, 0, 0, 0, 0,
- 128564, 0, 0, 0, 0, 6204, 0, 0, 0, 10911, 64954, 119003, 74809, 118903,
- 4267, 0, 0, 0, 0, 0, 0, 72023, 0, 0, 0, 92887, 0, 0, 0, 0, 121125, 0,
- 128337, 5842, 0, 41439, 0, 0, 0, 9328, 0, 120980, 120917, 0, 0, 2285, 0,
- 0, 0, 0, 0, 64555, 0, 0, 72162, 9541, 0, 0, 0, 41441, 0, 0, 0, 41040,
- 2459, 0, 0, 41041, 0, 0, 0, 0, 0, 10450, 0, 41043, 0, 0, 43125, 0, 0, 0,
- 0, 0, 121008, 68436, 128040, 0, 120649, 0, 0, 4312, 43927, 0, 0, 11923,
- 42227, 0, 5763, 0, 4827, 74559, 42228, 64406, 0, 0, 129703, 433, 119620,
- 0, 2499, 67167, 67166, 0, 11973, 0, 4293, 42271, 42224, 0, 0, 66322,
- 42226, 0, 0, 0, 74180, 0, 55277, 0, 0, 0, 983265, 0, 74632, 0, 0, 71103,
- 0, 0, 0, 585, 2383, 0, 43263, 0, 4290, 0, 0, 68920, 0, 8511, 0, 0, 0,
- 119048, 2380, 126119, 0, 71704, 2376, 0, 0, 0, 5197, 127046, 127047,
- 127048, 2366, 127050, 127051, 73442, 0, 0, 0, 93835, 0, 93818, 0, 0,
- 74188, 113813, 0, 0, 0, 983819, 0, 0, 0, 0, 1847, 0, 72771, 0, 42384, 0,
- 4227, 74158, 0, 92501, 0, 0, 42365, 0, 128902, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 128563, 0, 983504, 127560, 2754, 0, 0, 128900, 0, 127867, 119638,
- 0, 1711, 12984, 92365, 0, 6255, 0, 0, 0, 0, 0, 42063, 74184, 0, 0, 0, 0,
- 0, 0, 0, 41035, 43274, 0, 11256, 119088, 0, 520, 0, 41037, 128162, 0, 0,
- 41034, 0, 983810, 64815, 0, 0, 321, 41028, 0, 0, 0, 0, 0, 0, 0, 74191, 0,
- 0, 72767, 1861, 118938, 129666, 0, 0, 100770, 0, 0, 128530, 3859, 0,
- 41660, 0, 70793, 0, 983737, 75014, 0, 127514, 41658, 0, 0, 0, 0, 0, 4414,
- 120766, 0, 42632, 0, 0, 0, 0, 0, 1405, 0, 43220, 43341, 0, 0, 0, 0, 0,
- 983714, 11199, 0, 3513, 0, 70341, 43342, 0, 65529, 0, 0, 0, 6485, 1397,
- 0, 0, 92678, 0, 0, 0, 82961, 0, 82962, 0, 74270, 43287, 983712, 0, 0,
- 983719, 0, 71914, 4317, 10490, 0, 0, 194867, 74463, 128952, 464, 41624,
- 0, 0, 0, 1346, 128240, 69271, 64724, 128566, 423, 0, 0, 113748, 0,
- 128161, 0, 0, 120563, 64960, 0, 0, 0, 0, 9584, 129106, 0, 125026, 0,
- 9718, 0, 42642, 92977, 64750, 0, 0, 0, 0, 128333, 0, 3204, 64666, 0,
- 43530, 2752, 0, 0, 119594, 0, 0, 0, 0, 92371, 0, 41983, 0, 7010, 0, 0,
- 41495, 92379, 5877, 42252, 93070, 8009, 3305, 0, 0, 0, 0, 92293, 0, 0, 0,
- 100836, 0, 65915, 1400, 75018, 10685, 75017, 2103, 0, 0, 43276, 0, 11169,
- 0, 6481, 0, 0, 0, 100837, 72249, 100838, 74198, 0, 9116, 0, 0, 0, 0, 0,
- 0, 8129, 92994, 0, 124992, 0, 11658, 0, 0, 3452, 41031, 0, 1385, 0, 0, 0,
- 43340, 11123, 41033, 6493, 12758, 0, 0, 11426, 0, 1681, 100755, 1204,
- 11960, 69902, 0, 69457, 0, 119322, 129483, 7415, 43338, 0, 0, 67717,
- 64915, 0, 100759, 72021, 41497, 65044, 0, 19960, 65358, 983601, 0, 0, 0,
- 73670, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64728, 0, 0, 0, 6506,
- 64312, 0, 2368, 0, 0, 0, 0, 3439, 1825, 1192, 0, 73739, 10639, 0, 7790,
- 5430, 0, 0, 2848, 92981, 0, 0, 7607, 0, 0, 0, 120658, 0, 0, 8883, 0, 728,
- 0, 0, 0, 0, 92931, 0, 121372, 128348, 0, 68078, 8091, 11447, 0, 0,
- 126261, 983710, 0, 70003, 0, 0, 74419, 12335, 0, 0, 3443, 0, 0, 0,
- 127145, 0, 0, 0, 0, 11843, 0, 9205, 8624, 128543, 92930, 43295, 0, 65445,
- 0, 6277, 41672, 0, 10010, 70186, 983052, 0, 835, 71340, 0, 0, 0, 0, 0,
- 5426, 4258, 0, 64891, 5424, 0, 8283, 0, 5434, 0, 0, 0, 0, 0, 11947, 0,
- 1404, 0, 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, 0, 0, 1498, 0, 0,
- 0, 431, 67820, 0, 0, 128096, 0, 0, 13096, 0, 0, 43408, 0, 128538, 8835,
- 77875, 0, 0, 0, 0, 0, 0, 0, 0, 3477, 227, 10488, 0, 382, 11418, 0, 5878,
- 0, 0, 0, 0, 6484, 92355, 66039, 0, 0, 0, 78717, 0, 92662, 119665, 0, 0,
- 43290, 0, 0, 0, 0, 8782, 0, 0, 4323, 128649, 0, 120903, 12094, 0, 0, 0,
- 0, 92953, 3856, 120970, 0, 5872, 6495, 72306, 0, 0, 0, 67173, 67172,
- 67171, 3953, 0, 0, 93063, 11994, 4339, 0, 92654, 0, 0, 0, 0, 128804, 0,
- 5228, 0, 9766, 0, 92741, 0, 0, 0, 0, 68860, 0, 1162, 0, 2671, 0, 0,
- 92632, 92631, 72117, 0, 73811, 0, 194895, 0, 68085, 0, 74331, 11424, 0,
- 10466, 121239, 0, 194890, 0, 4820, 0, 0, 0, 194891, 0, 119212, 4896, 0,
- 4897, 42821, 64611, 0, 4438, 0, 0, 1753, 11331, 6147, 0, 43282, 8833, 0,
- 0, 6504, 0, 0, 0, 0, 0, 1413, 0, 0, 64353, 12141, 121138, 0, 0, 43163, 0,
- 72880, 64789, 127094, 838, 127092, 120697, 127090, 5014, 0, 256, 0, 0,
- 42443, 42739, 0, 7542, 0, 70389, 0, 6489, 10048, 74326, 0, 66573, 0,
- 125271, 78712, 11761, 126078, 129603, 41094, 0, 0, 0, 0, 92689, 8453, 0,
- 0, 120942, 128184, 0, 11816, 0, 0, 2930, 93845, 0, 41098, 92771, 41093,
- 0, 0, 6498, 41096, 0, 0, 1238, 200, 0, 1660, 74476, 0, 0, 74362, 0, 0,
- 72301, 9224, 0, 0, 0, 0, 0, 0, 0, 0, 72729, 43284, 0, 72110, 120561,
- 13183, 0, 0, 0, 1669, 10776, 0, 0, 0, 0, 0, 1732, 4030, 0, 3963, 0, 0, 0,
- 6491, 0, 0, 914, 121394, 0, 0, 0, 78713, 0, 92441, 74367, 0, 0, 0, 0, 0,
- 0, 0, 0, 65537, 0, 0, 43430, 5301, 0, 92618, 0, 43285, 0, 0, 125186, 0,
- 0, 5876, 0, 69555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11114, 74536, 0, 0, 0, 0,
- 983129, 0, 0, 0, 0, 10915, 983069, 12007, 0, 0, 0, 0, 67655, 92604, 0,
- 8629, 0, 43168, 41872, 0, 0, 0, 42488, 0, 0, 0, 0, 0, 64730, 70041, 0,
- 122895, 0, 0, 0, 92306, 11416, 4280, 128516, 8765, 73451, 0, 1393, 0,
- 11157, 74386, 0, 0, 0, 0, 6683, 0, 93832, 12144, 0, 74513, 13019, 74994,
- 0, 0, 0, 983267, 0, 6488, 357, 0, 41100, 0, 41104, 0, 41099, 0, 71320, 0,
- 0, 0, 4434, 0, 0, 0, 74231, 83107, 0, 194914, 0, 0, 72286, 68305, 0,
- 41759, 12757, 0, 0, 72769, 9790, 8995, 0, 121095, 68209, 0, 41764, 0, 0,
- 72322, 2268, 0, 129845, 0, 12743, 0, 6480, 0, 41779, 0, 66601, 0, 74490,
- 10986, 66602, 0, 64807, 0, 0, 41767, 119629, 0, 0, 0, 3955, 64571,
- 194918, 127089, 0, 70187, 69975, 9770, 12305, 12230, 0, 78579, 0, 0,
- 74752, 0, 0, 123168, 128263, 74449, 0, 65948, 69611, 0, 0, 71131, 129505,
- 78573, 0, 0, 11116, 0, 5747, 0, 110667, 9802, 41092, 120731, 0, 0, 0, 0,
- 0, 120733, 41090, 0, 0, 0, 11271, 57, 0, 0, 0, 0, 71268, 121290, 43137,
- 0, 0, 0, 126221, 0, 0, 0, 0, 0, 277, 74385, 0, 0, 0, 72155, 0, 13025,
- 8757, 0, 0, 1574, 0, 126124, 100800, 0, 5749, 129923, 0, 42824, 0, 1039,
- 9801, 0, 5745, 0, 41858, 0, 0, 120655, 0, 41862, 0, 0, 0, 436, 4771,
- 194636, 42501, 0, 10573, 0, 0, 0, 917986, 9644, 0, 0, 0, 0, 69837, 0, 0,
- 0, 0, 67409, 0, 0, 0, 125204, 11939, 0, 0, 0, 0, 0, 0, 0, 3504, 0, 0, 0,
- 126209, 0, 10226, 65558, 0, 3594, 0, 0, 40, 0, 0, 0, 0, 0, 74312, 72138,
- 74337, 0, 69577, 0, 0, 0, 70476, 0, 121143, 72317, 0, 0, 4304, 0, 0,
- 78707, 0, 0, 0, 78597, 1348, 78596, 0, 0, 0, 70406, 92392, 0, 7599, 0, 0,
- 13269, 0, 129729, 0, 100804, 0, 74494, 6097, 7568, 43980, 4982, 78592, 0,
- 0, 0, 0, 13270, 0, 0, 13138, 0, 9484, 0, 0, 71364, 0, 0, 0, 9487, 0,
- 92913, 0, 71911, 78668, 73963, 6193, 0, 0, 0, 194848, 7228, 10011,
- 194849, 194852, 194851, 11654, 194853, 126218, 194855, 0, 194857, 3604,
- 0, 0, 0, 0, 0, 94110, 43740, 94109, 194860, 194863, 66750, 121021, 0,
- 94111, 6995, 74173, 5437, 74174, 0, 8702, 7339, 129981, 0, 199, 194843,
- 194846, 194845, 0, 126069, 0, 67818, 0, 7560, 0, 0, 0, 0, 6472, 65814, 0,
- 128983, 70845, 0, 0, 9191, 0, 0, 0, 0, 0, 10196, 0, 0, 6585, 0, 120750,
- 0, 0, 71872, 129129, 0, 0, 78590, 72308, 11382, 129499, 0, 983651, 0,
- 194833, 194832, 194835, 129540, 94020, 194836, 42727, 194838, 128252,
- 78585, 43874, 119610, 0, 0, 43248, 0, 194816, 0, 194818, 128845, 194820,
- 194819, 5297, 194821, 13284, 6112, 93964, 93010, 73927, 42947, 0, 65746,
- 0, 0, 194827, 194826, 4342, 42839, 194831, 1677, 0, 72135, 0, 0, 0,
- 11011, 66399, 0, 0, 0, 10160, 0, 0, 0, 0, 2052, 4308, 92174, 43000, 0,
+ 43832, 983139, 9751, 0, 128085, 11770, 0, 0, 69600, 65061, 0, 0, 0, 0, 0,
+ 0, 121087, 0, 0, 69924, 0, 0, 0, 69913, 0, 121387, 101513, 101504,
+ 101512, 42038, 387, 0, 12737, 0, 0, 43368, 0, 0, 0, 0, 129713, 129449,
+ 121295, 0, 69400, 127309, 0, 375, 0, 0, 0, 983886, 0, 0, 119202, 119203,
+ 0, 43120, 0, 0, 119196, 119197, 0, 4529, 119200, 119201, 119198, 119199,
+ 0, 0, 69698, 13150, 64492, 0, 0, 0, 0, 0, 42891, 66327, 74298, 0, 0, 0,
+ 2587, 42193, 0, 6455, 0, 4241, 0, 0, 0, 0, 0, 0, 0, 118821, 0, 0, 0,
+ 125030, 0, 128684, 129390, 0, 5373, 0, 0, 119232, 10015, 0, 0, 0, 68642,
+ 0, 120855, 42040, 128827, 5779, 129841, 42037, 83282, 0, 0, 93040, 83283,
+ 101116, 0, 101117, 6983, 0, 0, 101115, 0, 0, 0, 0, 101111, 0, 119588, 0,
+ 92495, 74558, 0, 68138, 70163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11144, 0,
+ 2551, 0, 6453, 0, 6235, 0, 0, 129081, 72886, 44020, 11826, 0, 7780, 5369,
+ 118958, 0, 0, 5367, 66870, 0, 0, 5377, 0, 68143, 128624, 78245, 5218, 0,
+ 127333, 0, 0, 129717, 0, 0, 1300, 0, 127334, 64505, 0, 0, 119624, 1465,
+ 0, 0, 0, 0, 0, 101109, 0, 113694, 10729, 0, 0, 8839, 119243, 0, 7785,
+ 126530, 0, 0, 0, 0, 126603, 0, 0, 0, 3897, 0, 92331, 74417, 113704, 0,
+ 68127, 71425, 70688, 0, 0, 0, 0, 69287, 3542, 0, 120685, 7951, 68152,
+ 118857, 0, 92972, 0, 0, 127311, 73683, 0, 65150, 68031, 0, 0, 0, 0, 9985,
+ 0, 127328, 0, 0, 0, 0, 10830, 0, 615, 64490, 7574, 0, 0, 0, 12909, 73698,
+ 64559, 127332, 73951, 0, 67996, 2020, 0, 0, 0, 120701, 0, 983640, 0, 0,
+ 0, 92991, 0, 0, 9070, 0, 68411, 11281, 42829, 0, 1033, 0, 0, 0, 0, 0,
+ 65226, 0, 0, 0, 0, 0, 3450, 0, 7397, 0, 0, 42778, 10000, 41088, 449, 0,
+ 0, 68458, 113725, 0, 0, 10738, 69634, 0, 0, 41085, 0, 0, 0, 12764, 0,
+ 93058, 3596, 7322, 0, 0, 0, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 121350, 10820,
+ 0, 0, 126567, 1853, 0, 0, 93014, 0, 12770, 0, 0, 124997, 0, 0, 0, 0, 0,
+ 129053, 4828, 1258, 0, 2006, 0, 0, 74285, 127987, 0, 120683, 122880,
+ 983881, 983884, 8846, 128255, 0, 128091, 2650, 9182, 1961, 121399, 11525,
+ 0, 1959, 0, 55228, 11774, 41016, 0, 0, 128054, 41017, 13109, 0, 10519,
+ 66331, 3454, 19930, 0, 41019, 92894, 0, 0, 78362, 41021, 101566, 0, 0, 0,
+ 0, 65531, 0, 0, 0, 0, 0, 0, 8865, 6402, 113827, 77923, 0, 101536, 0,
+ 7733, 0, 4998, 68493, 0, 0, 0, 4268, 101368, 0, 0, 101555, 101579, 10881,
+ 0, 0, 0, 0, 2014, 0, 71901, 0, 0, 195057, 0, 0, 78357, 65281, 0, 0, 0, 0,
+ 0, 2015, 0, 0, 71840, 66318, 74824, 101575, 0, 101574, 0, 0, 70061, 8094,
+ 10135, 101551, 0, 794, 0, 0, 66335, 0, 121303, 4343, 0, 4833, 0, 0, 0, 0,
+ 189, 12611, 0, 72215, 0, 4838, 126214, 4834, 65078, 0, 126104, 4837,
+ 118853, 0, 121230, 4832, 128271, 0, 101584, 127838, 0, 0, 0, 0, 0, 0, 0,
+ 3976, 118995, 128937, 0, 0, 0, 0, 0, 119010, 0, 121015, 0, 0, 0, 0, 2871,
+ 0, 0, 999, 0, 68177, 0, 0, 2017, 0, 67824, 0, 0, 0, 0, 0, 0, 4775, 12555,
+ 12571, 12550, 12583, 12560, 2019, 12556, 12584, 12586, 0, 12562, 12561,
+ 12566, 12569, 12554, 0, 83344, 0, 68882, 0, 12567, 1402, 0, 0, 83348,
+ 125072, 83347, 0, 83346, 0, 0, 0, 0, 64391, 0, 83341, 69602, 0, 1999, 0,
+ 128141, 0, 0, 0, 0, 0, 0, 0, 68873, 0, 0, 66913, 2377, 0, 0, 12572,
+ 11318, 12557, 12559, 9192, 12549, 12568, 2373, 9446, 9447, 9448, 9449, 0,
+ 9480, 481, 0, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9430, 9431,
+ 9432, 9433, 9434, 9435, 9436, 9437, 983097, 0, 9424, 9425, 9426, 9427,
+ 9428, 7481, 0, 2362, 9655, 0, 2004, 0, 9782, 0, 0, 0, 0, 0, 0, 0, 1108,
+ 0, 92461, 0, 128764, 0, 64781, 0, 0, 0, 121126, 0, 1392, 0, 0, 917557, 0,
+ 8065, 70710, 128739, 0, 0, 0, 121068, 92418, 0, 0, 0, 43280, 0, 70718,
+ 1812, 0, 73046, 0, 0, 0, 0, 0, 6054, 10697, 3169, 0, 0, 70720, 11487,
+ 70712, 0, 0, 0, 194716, 0, 0, 41863, 0, 0, 2304, 0, 92326, 0, 42951, 0,
+ 0, 64760, 11766, 0, 0, 0, 0, 69236, 0, 0, 8773, 10733, 36, 0, 0, 0, 0, 0,
+ 11074, 0, 64910, 983130, 2009, 0, 0, 128036, 68114, 128906, 0, 0, 0,
+ 983979, 12852, 3031, 0, 0, 129088, 0, 66414, 0, 0, 119950, 42613, 65933,
+ 366, 0, 9892, 0, 11754, 101107, 83329, 65301, 44013, 83058, 67245, 10102,
+ 0, 7739, 41026, 0, 0, 0, 0, 0, 0, 0, 0, 78386, 129475, 71868, 113811,
+ 13081, 10923, 129330, 0, 68145, 0, 0, 74083, 0, 0, 128392, 83063, 83065,
+ 0, 70706, 0, 0, 0, 70168, 66586, 4183, 64967, 66250, 0, 92547, 0, 0,
+ 113685, 0, 3792, 2011, 0, 0, 126503, 83332, 0, 120595, 0, 68489, 41023,
+ 0, 0, 11659, 7922, 12614, 2005, 8523, 0, 0, 7513, 1863, 129436, 83337,
+ 128969, 0, 120274, 120033, 0, 8144, 0, 73031, 120269, 127524, 120270,
+ 42241, 8783, 83326, 0, 0, 120735, 983959, 0, 129367, 0, 10680, 0, 43293,
+ 68771, 0, 119164, 83320, 72003, 10187, 0, 0, 0, 83315, 0, 0, 0, 10968,
+ 43296, 0, 0, 0, 101400, 0, 1005, 43826, 120030, 0, 2870, 0, 101399, 0, 0,
+ 983779, 0, 235, 1384, 0, 74887, 70494, 120409, 0, 9796, 69895, 983812, 0,
+ 120406, 13186, 120407, 0, 0, 0, 0, 42527, 12911, 43427, 1383, 0, 0, 0, 0,
+ 6156, 68117, 0, 7993, 4288, 0, 0, 13238, 13244, 0, 0, 120426, 13234,
+ 120427, 0, 118904, 0, 11364, 0, 1380, 65617, 120253, 120261, 13196,
+ 13197, 120311, 120419, 9495, 0, 0, 120418, 0, 73976, 128160, 0, 6941, 0,
+ 13205, 13211, 5801, 0, 74271, 120319, 0, 120302, 7670, 0, 68075, 983583,
+ 0, 19957, 72314, 2021, 93811, 43877, 0, 0, 0, 0, 3875, 120431, 64341, 0,
+ 9814, 43457, 13066, 3314, 7787, 0, 0, 0, 0, 0, 0, 64531, 129860, 0, 0, 0,
+ 0, 0, 127138, 0, 0, 9742, 0, 0, 10800, 0, 8404, 0, 92592, 0, 7089, 0,
+ 78545, 0, 0, 0, 0, 0, 4772, 5771, 101405, 0, 9841, 8843, 0, 0, 0, 129862,
+ 120816, 0, 123137, 0, 0, 0, 0, 0, 0, 8849, 0, 0, 65112, 1796, 0, 0,
+ 69665, 8164, 41301, 3502, 0, 122884, 128387, 0, 983816, 5825, 0, 0, 0, 0,
+ 121322, 10983, 10354, 10418, 0, 2022, 0, 1409, 100789, 0, 0, 0, 0, 1390,
+ 0, 0, 10471, 65904, 5846, 126472, 0, 0, 0, 0, 0, 0, 66035, 0, 0, 0, 0,
+ 128190, 0, 3168, 67733, 0, 0, 2370, 0, 126243, 0, 195049, 0, 0, 1836, 0,
+ 121207, 119137, 118959, 125232, 0, 0, 0, 2390, 3944, 0, 0, 0, 0, 69908,
+ 125011, 0, 0, 123200, 0, 0, 8975, 64739, 0, 0, 0, 0, 64409, 0, 0, 0, 0,
+ 128564, 0, 0, 0, 0, 6204, 0, 0, 0, 10911, 64954, 119003, 74809, 118903,
+ 4267, 0, 0, 0, 0, 0, 0, 72023, 0, 0, 0, 92887, 0, 0, 0, 0, 121125, 0,
+ 128337, 5842, 0, 41439, 0, 0, 0, 9328, 0, 120980, 120917, 0, 0, 2285, 0,
+ 0, 0, 0, 0, 64555, 0, 0, 72162, 9541, 0, 0, 0, 41441, 0, 0, 0, 41040,
+ 2459, 0, 0, 41041, 0, 0, 0, 0, 0, 10450, 0, 41043, 0, 0, 43125, 0, 0, 0,
+ 0, 0, 121008, 68436, 128040, 0, 120649, 0, 0, 4312, 43927, 0, 0, 11923,
+ 42227, 0, 5763, 0, 4827, 74559, 42228, 64406, 0, 0, 129703, 433, 119620,
+ 0, 2499, 67167, 67166, 0, 11973, 0, 4293, 42271, 42224, 0, 0, 66322,
+ 42226, 0, 0, 0, 74180, 0, 55277, 0, 0, 0, 983265, 0, 74632, 0, 0, 71103,
+ 0, 0, 0, 585, 2383, 0, 43263, 0, 4290, 0, 0, 68920, 0, 8511, 0, 0, 0,
+ 119048, 2380, 126119, 0, 71704, 2376, 0, 0, 0, 5197, 127046, 127047,
+ 127048, 2366, 127050, 127051, 73442, 0, 0, 0, 93835, 0, 93818, 0, 0,
+ 74188, 113813, 0, 0, 0, 983819, 0, 0, 0, 0, 1847, 0, 72771, 0, 42384, 0,
+ 4227, 74158, 0, 92501, 0, 0, 42365, 0, 128902, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 128563, 0, 983504, 127560, 2754, 0, 0, 128900, 0, 127867, 119638,
+ 0, 1711, 12984, 92365, 0, 6255, 0, 0, 0, 0, 0, 42063, 74184, 0, 0, 0, 0,
+ 0, 0, 0, 41035, 43274, 0, 11256, 119088, 0, 520, 0, 41037, 128162, 0, 0,
+ 41034, 0, 983810, 64815, 0, 0, 321, 41028, 0, 0, 0, 0, 0, 0, 0, 74191, 0,
+ 0, 72767, 1861, 118938, 129666, 0, 0, 100770, 0, 0, 128530, 3859, 0,
+ 41660, 0, 70793, 0, 983737, 75014, 0, 127514, 41658, 0, 0, 0, 0, 0, 4414,
+ 120766, 0, 42632, 0, 0, 0, 0, 0, 1405, 0, 43220, 43341, 0, 0, 0, 0, 0,
+ 983714, 11199, 0, 3513, 0, 70341, 43342, 0, 65529, 0, 0, 0, 6485, 1397,
+ 0, 0, 92678, 0, 0, 0, 82961, 0, 82962, 0, 74270, 43287, 983712, 0, 0,
+ 983719, 0, 71914, 4317, 10490, 0, 0, 194867, 74463, 128952, 464, 41624,
+ 0, 0, 0, 1346, 128240, 69271, 64724, 128566, 423, 0, 0, 113748, 0,
+ 128161, 0, 0, 120563, 64960, 0, 0, 0, 0, 9584, 129106, 0, 125026, 0,
+ 9718, 0, 42642, 92977, 64750, 0, 0, 0, 0, 128333, 0, 3204, 64666, 0,
+ 43530, 2752, 0, 0, 119594, 0, 0, 0, 0, 92371, 0, 41983, 0, 7010, 0, 0,
+ 41495, 92379, 5877, 42252, 93070, 8009, 3305, 0, 0, 0, 0, 92293, 0, 0, 0,
+ 100836, 0, 65915, 1400, 75018, 10685, 75017, 2103, 0, 0, 43276, 0, 11169,
+ 0, 6481, 0, 0, 0, 100837, 72249, 100838, 74198, 0, 9116, 0, 0, 0, 0, 0,
+ 0, 8129, 92994, 0, 124992, 0, 11658, 0, 0, 3452, 41031, 0, 1385, 0, 0, 0,
+ 43340, 11123, 41033, 6493, 12758, 0, 0, 11426, 0, 1681, 100755, 1204,
+ 11960, 69902, 0, 69457, 0, 119322, 129483, 7415, 43338, 0, 0, 67717,
+ 64915, 0, 100759, 72021, 41497, 65044, 0, 19960, 65358, 983601, 0, 0, 0,
+ 73670, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64728, 0, 0, 0, 6506,
+ 64312, 0, 2368, 0, 0, 0, 0, 3439, 1825, 1192, 0, 73739, 10639, 0, 7790,
+ 5430, 0, 0, 2848, 92981, 0, 0, 7607, 0, 0, 0, 120658, 0, 0, 8883, 0, 728,
+ 0, 0, 0, 0, 92931, 0, 121372, 128348, 0, 68078, 8091, 11447, 0, 0,
+ 126261, 983710, 0, 70003, 0, 0, 74419, 12335, 0, 0, 3443, 0, 0, 0,
+ 127145, 0, 0, 0, 0, 11843, 0, 9205, 8624, 128543, 92930, 43295, 0, 65445,
+ 0, 6277, 41672, 0, 10010, 70186, 983052, 0, 835, 71340, 0, 0, 0, 0, 0,
+ 5426, 4258, 0, 64891, 5424, 0, 8283, 0, 5434, 0, 0, 0, 0, 0, 11947, 0,
+ 1404, 0, 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, 0, 0, 1498, 0, 0,
+ 0, 431, 67820, 0, 0, 128096, 0, 0, 13096, 0, 0, 43408, 0, 128538, 8835,
+ 77875, 0, 0, 0, 0, 0, 0, 0, 0, 3477, 227, 10488, 0, 382, 11418, 0, 5878,
+ 0, 0, 0, 0, 6484, 92355, 66039, 0, 0, 0, 78717, 0, 92662, 119665, 0, 0,
+ 43290, 0, 0, 0, 0, 8782, 0, 0, 4323, 128649, 0, 120903, 12094, 0, 0, 0,
+ 0, 92953, 3856, 120970, 0, 5872, 6495, 72306, 0, 0, 0, 67173, 67172,
+ 67171, 3953, 0, 0, 93063, 11994, 4339, 0, 92654, 0, 0, 0, 0, 128804, 0,
+ 5228, 0, 9766, 0, 92741, 0, 0, 0, 0, 68860, 0, 1162, 0, 2671, 0, 0,
+ 92632, 92631, 72117, 0, 73811, 0, 194895, 0, 68085, 0, 74331, 11424, 0,
+ 10466, 121239, 0, 194890, 0, 4820, 0, 0, 0, 194891, 0, 119212, 4896, 0,
+ 4897, 42821, 64611, 0, 4438, 0, 0, 1753, 11331, 6147, 0, 43282, 8833, 0,
+ 0, 6504, 0, 0, 0, 0, 0, 1413, 0, 0, 64353, 12141, 121138, 0, 0, 43163, 0,
+ 72880, 64789, 127094, 838, 127092, 120697, 127090, 5014, 0, 256, 0, 0,
+ 42443, 42739, 0, 7542, 0, 70389, 0, 6489, 10048, 74326, 0, 66573, 0,
+ 125271, 78712, 11761, 126078, 129603, 41094, 0, 0, 0, 0, 92689, 8453, 0,
+ 0, 120942, 128184, 0, 11816, 0, 0, 2930, 93845, 0, 41098, 92771, 41093,
+ 0, 0, 6498, 41096, 0, 0, 1238, 200, 0, 1660, 74476, 0, 0, 74362, 0, 0,
+ 72301, 9224, 0, 0, 0, 0, 0, 0, 0, 0, 72729, 43284, 0, 72110, 120561,
+ 13183, 0, 0, 0, 1669, 10776, 0, 0, 0, 0, 0, 1732, 4030, 0, 3963, 0, 0, 0,
+ 6491, 0, 0, 914, 121394, 0, 0, 0, 78713, 0, 92441, 74367, 0, 0, 0, 0, 0,
+ 0, 0, 0, 65537, 0, 0, 43430, 5301, 0, 92618, 0, 43285, 0, 0, 125186, 0,
+ 0, 5876, 0, 69555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11114, 74536, 0, 0, 0, 0,
+ 983129, 0, 0, 0, 0, 10915, 983069, 12007, 0, 0, 0, 0, 67655, 92604, 0,
+ 8629, 0, 43168, 41872, 0, 0, 0, 42488, 0, 0, 0, 0, 0, 64730, 70041, 0,
+ 122895, 0, 0, 0, 92306, 11416, 4280, 128516, 8765, 73451, 0, 1393, 0,
+ 11157, 74386, 0, 0, 0, 0, 6683, 0, 93832, 12144, 0, 74513, 13019, 74994,
+ 0, 0, 0, 983267, 0, 6488, 357, 0, 41100, 0, 41104, 0, 41099, 0, 71320, 0,
+ 0, 0, 4434, 0, 0, 0, 74231, 83107, 0, 194914, 0, 0, 72286, 68305, 0,
+ 41759, 12757, 0, 0, 72769, 9790, 8995, 0, 121095, 68209, 0, 41764, 0, 0,
+ 72322, 2268, 0, 129845, 0, 12743, 0, 6480, 0, 41779, 0, 66601, 0, 74490,
+ 10986, 66602, 0, 64807, 0, 0, 41767, 119629, 0, 0, 0, 3955, 64571,
+ 194918, 127089, 0, 70187, 69975, 9770, 12305, 12230, 0, 78579, 0, 0,
+ 74752, 0, 0, 123168, 128263, 74449, 0, 65948, 69611, 0, 0, 71131, 129505,
+ 78573, 0, 0, 11116, 0, 5747, 0, 110667, 9802, 41092, 120731, 0, 0, 0, 0,
+ 0, 120733, 41090, 0, 0, 0, 11271, 57, 0, 0, 0, 0, 71268, 121290, 43137,
+ 0, 0, 0, 126221, 0, 0, 0, 0, 0, 277, 74385, 0, 0, 0, 72155, 0, 13025,
+ 8757, 0, 0, 1574, 0, 126124, 100800, 0, 5749, 129923, 0, 42824, 0, 1039,
+ 9801, 0, 5745, 0, 41858, 0, 0, 120655, 0, 41862, 0, 0, 0, 436, 4771,
+ 194636, 42501, 0, 10573, 0, 0, 0, 917986, 9644, 0, 0, 0, 0, 69837, 0, 0,
+ 0, 0, 67409, 0, 0, 0, 125204, 11939, 0, 0, 0, 0, 0, 0, 0, 3504, 0, 0, 0,
+ 126209, 0, 10226, 65558, 0, 3594, 0, 0, 40, 0, 0, 0, 0, 0, 74312, 72138,
+ 74337, 0, 69577, 0, 0, 0, 70476, 0, 121143, 72317, 0, 0, 4304, 0, 0,
+ 78707, 0, 0, 0, 78597, 1348, 78596, 0, 0, 0, 70406, 92392, 0, 7599, 0, 0,
+ 13269, 0, 129729, 0, 100804, 0, 74494, 6097, 7568, 43980, 4982, 78592, 0,
+ 0, 0, 0, 13270, 0, 0, 13138, 0, 9484, 0, 0, 71364, 0, 0, 0, 9487, 0,
+ 92913, 0, 71911, 78668, 73963, 6193, 0, 0, 0, 194848, 7228, 10011,
+ 194849, 194852, 194851, 11654, 194853, 126218, 194855, 0, 194857, 3604,
+ 0, 0, 0, 0, 0, 94110, 43740, 94109, 194860, 194863, 66750, 121021, 0,
+ 94111, 6995, 74173, 5437, 74174, 0, 8702, 7339, 129981, 0, 199, 194843,
+ 194846, 194845, 0, 126069, 0, 67818, 0, 7560, 0, 0, 0, 0, 6472, 65814, 0,
+ 128983, 70845, 0, 0, 9191, 0, 0, 0, 0, 0, 10196, 0, 0, 6585, 0, 120750,
+ 0, 0, 71872, 129129, 0, 0, 78590, 72308, 11382, 129499, 0, 983651, 0,
+ 194833, 194832, 194835, 129540, 94020, 194836, 42727, 194838, 128252,
+ 78585, 43874, 119610, 0, 0, 43248, 0, 194816, 0, 194818, 128845, 194820,
+ 194819, 5297, 194821, 13284, 6112, 93964, 93010, 73927, 42947, 0, 65746,
+ 0, 0, 194827, 194826, 4342, 42839, 194831, 1677, 0, 72135, 0, 0, 0,
+ 11011, 66399, 0, 0, 0, 10160, 0, 0, 0, 0, 2052, 4308, 92174, 43000, 0,
543, 64916, 0, 0, 0, 119170, 0, 118922, 2064, 0, 43158, 0, 0, 69984, 0,
0, 129187, 0, 0, 0, 0, 41631, 92728, 0, 0, 6228, 0, 0, 0, 0, 0, 0, 506,
0, 0, 65735, 2055, 43255, 121407, 0, 0, 0, 0, 0, 0, 194666, 2063, 0, 0,
- 0, 0, 72136, 0, 74333, 194912, 11827, 74308, 194913, 194916, 194915,
- 64564, 194917, 67986, 194919, 0, 11037, 0, 121102, 0, 0, 10560, 0,
- 120756, 194922, 113737, 194924, 194927, 120495, 1931, 0, 0, 0, 128228, 0,
- 12643, 8751, 123629, 0, 12294, 0, 78834, 9138, 78831, 78833, 12631,
- 78829, 11080, 78821, 0, 0, 1239, 0, 121067, 0, 12636, 0, 0, 0, 0, 0, 0,
- 8998, 0, 0, 9152, 0, 0, 0, 67589, 0, 64290, 0, 92393, 12615, 0, 129141,
- 6914, 93013, 0, 119569, 0, 65188, 0, 67611, 4337, 0, 194897, 194896,
- 78516, 194898, 7681, 194900, 194903, 67596, 194905, 194904, 2477, 93974,
- 0, 0, 0, 67604, 70705, 0, 194882, 194881, 194884, 194883, 194886, 128914,
+ 0, 0, 72136, 0, 74333, 194912, 11827, 74308, 194913, 194916, 194915,
+ 64564, 194917, 67986, 194919, 0, 11037, 0, 121102, 0, 0, 10560, 0,
+ 120756, 194922, 113737, 194924, 194927, 120495, 1931, 0, 0, 0, 128228, 0,
+ 12643, 8751, 123629, 0, 12294, 0, 78834, 9138, 78831, 78833, 12631,
+ 78829, 11080, 78821, 0, 0, 1239, 0, 121067, 0, 12636, 0, 0, 0, 0, 0, 0,
+ 8998, 0, 0, 9152, 0, 0, 0, 67589, 0, 64290, 0, 92393, 12615, 0, 129141,
+ 6914, 93013, 0, 119569, 0, 65188, 0, 67611, 4337, 0, 194897, 194896,
+ 78516, 194898, 7681, 194900, 194903, 67596, 194905, 194904, 2477, 93974,
+ 0, 0, 0, 67604, 70705, 0, 194882, 194881, 194884, 194883, 194886, 128914,
194888, 67599, 0, 194889, 0, 0, 0, 0, 3357, 0, 78852, 4207, 1288, 78842,
78839, 78840, 78837, 78838, 66354, 194872, 0, 128432, 0, 67618, 92664, 0,
- 42788, 0, 64612, 129897, 10774, 194877, 0, 194879, 0, 0, 0, 997, 194901,
+ 42788, 0, 64612, 129897, 10774, 194877, 0, 194879, 0, 0, 0, 997, 194901,
0, 92577, 0, 11440, 11379, 42000, 13139, 0, 0, 74030, 72293, 73796, 0, 0,
- 0, 0, 2818, 0, 0, 73793, 0, 4172, 93028, 126523, 124981, 0, 129896, 0, 0,
+ 0, 0, 2818, 0, 0, 73793, 0, 4172, 93028, 126523, 124981, 0, 129896, 0, 0,
129522, 69706, 0, 6834, 0, 0, 194865, 126982, 121211, 194866, 194869,
194868, 766, 1257, 0, 0, 0, 3265, 66617, 3274, 0, 0, 94042, 0, 8373,
- 41989, 0, 73460, 3418, 3263, 0, 0, 0, 3270, 64539, 11489, 0, 118945,
- 126220, 0, 127795, 0, 94031, 0, 0, 0, 0, 0, 70512, 983964, 186, 0,
- 119156, 5770, 13179, 0, 12612, 12949, 64856, 12800, 0, 0, 983151, 11507,
- 0, 0, 118929, 0, 0, 72141, 0, 73459, 0, 0, 0, 73461, 9254, 66877, 194907,
- 0, 92338, 5624, 126253, 0, 0, 0, 120472, 120464, 0, 0, 122915, 120462, 0,
- 1872, 66508, 120467, 41079, 0, 5502, 119330, 41078, 194906, 0, 0, 4511,
- 68449, 0, 0, 0, 0, 43245, 41083, 68861, 0, 0, 9003, 119959, 0, 5305,
- 9653, 41081, 43146, 9546, 0, 0, 120478, 0, 65205, 71713, 64063, 120459,
- 0, 0, 0, 64058, 43101, 43102, 0, 64062, 1028, 64060, 64059, 0, 10567,
- 110816, 110817, 110814, 110815, 0, 2902, 64043, 64042, 43749, 10756,
- 64047, 64046, 64045, 64044, 0, 10076, 64040, 64039, 0, 1034, 0, 0, 64034,
- 64033, 64032, 42735, 64038, 64037, 64036, 64035, 4291, 0, 64015, 64014,
- 83393, 83394, 83395, 983765, 0, 43090, 83391, 3476, 64013, 64012, 64011,
- 64010, 64008, 64007, 2003, 7706, 0, 0, 119050, 64009, 204, 0, 0, 4430,
- 8239, 64003, 10626, 64001, 64057, 13079, 64055, 64054, 0, 0, 43246, 9343,
- 64049, 64048, 0, 1133, 64053, 64052, 64051, 64050, 0, 0, 0, 66415, 12329,
- 0, 0, 129698, 1942, 0, 0, 0, 128249, 0, 68291, 10760, 64023, 64022,
- 64021, 64020, 43670, 77924, 64025, 41412, 78243, 78244, 0, 0, 64019,
- 64018, 64017, 64016, 0, 0, 78251, 78252, 78248, 78249, 77914, 78247, 0,
- 917560, 77919, 6788, 13094, 0, 7532, 41414, 0, 3179, 70745, 64769, 0, 0,
- 71967, 0, 10751, 0, 0, 0, 0, 0, 0, 0, 2008, 64031, 64030, 294, 41874,
- 83383, 83384, 65929, 83376, 129063, 83379, 83380, 64028, 11396, 64026,
- 83374, 0, 0, 118795, 71739, 43247, 0, 70153, 0, 0, 0, 0, 0, 0, 0, 0,
- 7801, 83359, 83361, 128931, 0, 3297, 83356, 83357, 1135, 83350, 83351,
- 73696, 1995, 7927, 71738, 110742, 2552, 83372, 60, 0, 8649, 83368, 83369,
- 83370, 83371, 10541, 83365, 78679, 43833, 0, 0, 2013, 83362, 0, 110636,
- 0, 0, 12832, 110638, 8081, 8362, 120188, 0, 9137, 0, 0, 0, 0, 3466, 0, 0,
- 1996, 0, 3453, 3412, 0, 2002, 2000, 120176, 0, 0, 0, 0, 1998, 0, 1842, 0,
- 0, 9628, 68446, 0, 9826, 64502, 1767, 3413, 0, 0, 0, 0, 0, 0, 13108,
- 44024, 120204, 0, 92693, 0, 0, 0, 70291, 12650, 983208, 0, 68061, 0,
- 3592, 0, 0, 0, 0, 983956, 0, 66417, 128792, 10742, 0, 0, 1994, 9281,
- 3296, 64475, 1997, 1895, 128936, 72387, 0, 0, 123184, 72391, 0, 8999, 0,
- 983633, 0, 66480, 0, 0, 0, 983083, 0, 596, 0, 0, 120216, 8651, 120217, 0,
- 0, 12995, 0, 0, 70740, 0, 42930, 119955, 64810, 917834, 6825, 0, 917839,
- 120208, 64275, 120889, 128069, 120210, 6384, 917840, 126477, 0, 67698, 0,
- 0, 0, 120496, 0, 43412, 0, 0, 0, 0, 0, 120172, 0, 120763, 0, 0, 0,
- 128343, 1457, 0, 0, 6381, 2815, 0, 65240, 129664, 0, 0, 119522, 70487, 0,
- 0, 0, 0, 0, 120572, 0, 0, 0, 0, 0, 125253, 0, 0, 0, 120574, 0, 0, 0,
- 3055, 9852, 0, 65288, 0, 11398, 0, 0, 93016, 0, 0, 603, 128557, 0, 0, 0,
- 129366, 3350, 0, 0, 917828, 917827, 68428, 917825, 73045, 917831, 917830,
- 917829, 0, 1919, 0, 110767, 83296, 83297, 83298, 66446, 64141, 8562,
- 64139, 64138, 64136, 64135, 64134, 64133, 11297, 0, 0, 11966, 64128,
- 66286, 0, 0, 64132, 10867, 64130, 64129, 0, 43374, 9779, 2764, 0, 0,
- 9471, 0, 0, 0, 0, 66010, 0, 8857, 128771, 121423, 0, 69223, 0, 194660,
- 983857, 0, 0, 43984, 0, 0, 0, 0, 0, 0, 10717, 64570, 5630, 0, 64143,
- 64142, 83300, 67758, 83302, 0, 77930, 0, 0, 0, 11631, 64146, 64145,
- 64144, 2384, 72801, 127380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122916, 8933,
- 1601, 917803, 858, 917809, 64109, 64108, 8090, 0, 917812, 917811, 587, 0,
- 82971, 0, 0, 0, 78214, 2750, 0, 9983, 64158, 64157, 83288, 83289, 83290,
- 2760, 83284, 83285, 83286, 83287, 64156, 64155, 64154, 72109, 64151,
- 64150, 12679, 10053, 10421, 0, 64153, 64152, 0, 0, 4839, 0, 0, 4435,
- 119016, 0, 64126, 64125, 64124, 64123, 129287, 0, 0, 7007, 0, 65443, 0,
- 0, 64122, 0, 0, 93834, 64117, 64116, 6287, 64114, 64121, 64120, 64119,
- 64118, 110659, 127842, 1177, 65601, 12322, 64106, 92169, 110654, 64102,
- 64101, 64100, 64099, 0, 10453, 64104, 64103, 7997, 0, 92534, 0, 8705,
- 64097, 64096, 9571, 0, 110652, 127398, 12132, 0, 0, 0, 110624, 73841,
- 83339, 83340, 9056, 0, 129970, 0, 6155, 64068, 64067, 64066, 64065,
- 64072, 64071, 63, 64069, 127382, 0, 93822, 7257, 64064, 0, 0, 0, 0, 0, 0,
- 78748, 0, 0, 0, 120519, 0, 66242, 66232, 4333, 9855, 64112, 0, 0, 0, 0,
- 0, 0, 0, 66222, 0, 0, 0, 0, 69816, 0, 118796, 0, 8708, 0, 64077, 64076,
- 8996, 4992, 4471, 83343, 64079, 64078, 92179, 0, 0, 129120, 64615, 0, 0,
- 12075, 42041, 0, 0, 0, 0, 127557, 3123, 0, 983735, 0, 0, 0, 83328, 0,
- 9223, 0, 83321, 83322, 73797, 83327, 1116, 0, 83319, 7136, 0, 0, 0, 0,
- 75031, 0, 0, 0, 64092, 43675, 10104, 83338, 83331, 64095, 64094, 8111,
- 66247, 0, 64089, 64088, 0, 70106, 42236, 11434, 64083, 64082, 43216,
- 7737, 64087, 64086, 64085, 64084, 0, 0, 0, 4118, 1797, 83312, 0, 0, 46,
- 83308, 83309, 298, 83303, 72402, 83305, 83306, 0, 0, 0, 128905, 11495, 0,
- 0, 0, 127377, 194828, 127370, 0, 0, 0, 66239, 74945, 64403, 0, 0, 83314,
- 0, 0, 65758, 43536, 0, 8544, 0, 0, 0, 0, 194824, 0, 0, 0, 0, 0, 3639,
- 11242, 194822, 0, 0, 0, 0, 0, 0, 68409, 0, 0, 0, 101121, 0, 0, 0, 128654,
- 8789, 126248, 0, 0, 0, 0, 0, 0, 0, 65058, 0, 78234, 68064, 0, 66227,
- 71694, 5573, 118936, 0, 44, 0, 66244, 118907, 0, 66238, 12844, 0, 1622,
- 129190, 1900, 0, 11458, 0, 0, 6581, 5576, 128303, 0, 126122, 0, 113680,
- 8947, 0, 113812, 0, 0, 0, 7908, 0, 0, 6579, 0, 0, 0, 0, 2138, 6583, 7761,
- 0, 0, 0, 66802, 5058, 0, 0, 0, 5057, 125256, 0, 74538, 5054, 0, 0, 0, 0,
- 0, 0, 658, 3497, 128509, 0, 5061, 5060, 4235, 0, 0, 0, 127757, 4236,
- 4727, 0, 0, 0, 128791, 0, 7488, 128693, 7476, 0, 125259, 120646, 0, 0, 0,
- 66209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9341, 119596,
- 0, 0, 0, 64668, 0, 8125, 0, 6743, 119175, 0, 129441, 83406, 0, 127966,
- 119235, 74092, 0, 0, 43660, 71125, 0, 127901, 0, 0, 0, 264, 0, 74954, 0,
- 0, 0, 0, 0, 6019, 0, 0, 129121, 0, 0, 0, 8800, 0, 66376, 0, 120948, 0,
- 100744, 0, 0, 92333, 725, 68014, 0, 0, 72099, 0, 0, 0, 0, 74899, 0, 0, 0,
- 110804, 0, 72142, 5074, 5073, 0, 0, 128726, 0, 70723, 5072, 128576,
- 13098, 72403, 0, 11040, 0, 0, 0, 4929, 0, 0, 0, 0, 0, 0, 0, 0, 67754,
- 4934, 0, 0, 9758, 0, 0, 70181, 42584, 0, 4329, 0, 4979, 8663, 74521, 0,
- 983042, 74418, 0, 0, 5071, 0, 3642, 0, 5070, 10042, 0, 3987, 5068,
- 120209, 8909, 0, 0, 69917, 0, 73981, 983141, 70749, 4531, 120212, 9105,
- 0, 4921, 121059, 4926, 65544, 113786, 69621, 0, 0, 0, 83269, 0, 120790,
- 4922, 0, 992, 119568, 4925, 0, 0, 9526, 4920, 128617, 948, 0, 0, 4930, 0,
- 0, 0, 4933, 0, 0, 0, 4928, 0, 0, 0, 0, 128379, 722, 0, 127483, 127482,
- 127485, 82997, 127487, 1509, 0, 5468, 66214, 127474, 127477, 1672,
- 127479, 10864, 127481, 72132, 127467, 72159, 127469, 127468, 127471,
- 127470, 68336, 82999, 120115, 1679, 120116, 0, 120113, 127462, 127465,
- 127464, 127110, 120119, 120112, 0, 120109, 6968, 5761, 342, 8553, 0,
- 8143, 127115, 127114, 127113, 624, 127111, 4057, 0, 5078, 0, 0, 0, 5076,
- 0, 0, 0, 120097, 685, 9025, 1524, 8003, 0, 5539, 113727, 113795, 120102,
- 7138, 120552, 0, 0, 0, 113724, 0, 8058, 9732, 0, 5080, 0, 5036, 5035, 0,
- 42604, 72118, 0, 0, 275, 13291, 69995, 0, 0, 983908, 5033, 0, 0, 4836,
- 70184, 73792, 0, 0, 0, 120681, 43704, 0, 2274, 119000, 124983, 0, 8858,
- 6409, 0, 119585, 0, 0, 0, 0, 0, 68442, 0, 3432, 10218, 0, 6094, 11232, 0,
- 0, 0, 0, 1676, 129157, 0, 0, 5030, 0, 118810, 0, 73869, 0, 0, 69944,
- 6787, 0, 0, 0, 983595, 10544, 12919, 69425, 92218, 0, 0, 0, 129172, 0,
- 67703, 0, 0, 0, 0, 0, 72290, 0, 0, 0, 0, 7018, 66241, 0, 0, 0, 0, 0,
- 74056, 0, 11833, 0, 67975, 65232, 40964, 251, 12686, 7895, 4395, 43538,
- 0, 0, 0, 78042, 0, 0, 40967, 5879, 0, 0, 0, 0, 0, 65540, 128590, 625, 0,
- 120194, 1113, 0, 13103, 3630, 67224, 8179, 74264, 67886, 9316, 10980,
- 2489, 120958, 8150, 1359, 121353, 70464, 127330, 127327, 5042, 5041,
- 42769, 12084, 11196, 127321, 92279, 72398, 120535, 127317, 127318,
- 127315, 12283, 127313, 11453, 0, 8795, 66245, 0, 0, 0, 5037, 118864, 0,
- 0, 67724, 0, 66893, 74006, 0, 8431, 0, 0, 0, 0, 12620, 6826, 73773,
- 70169, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, 5038, 0, 0, 0, 0, 0, 65908, 0,
- 0, 0, 0, 0, 65157, 0, 0, 70182, 0, 73909, 4835, 0, 0, 0, 4309, 7127, 0,
- 0, 0, 1301, 0, 0, 12222, 0, 73813, 711, 92439, 7133, 0, 0, 0, 0, 0, 0, 0,
- 7661, 72263, 129541, 0, 0, 70453, 7627, 0, 5031, 92340, 42738, 65784, 0,
- 65782, 3758, 0, 65781, 67865, 0, 2440, 65780, 70795, 8449, 121393,
- 121479, 0, 2118, 0, 12121, 0, 0, 129510, 2128, 2130, 2131, 2126, 2133, 0,
- 121250, 2114, 2116, 2455, 0, 2122, 2123, 2124, 2125, 983787, 8714, 0,
- 2113, 0, 2115, 0, 127907, 43713, 5052, 66220, 66653, 65777, 65778, 65775,
- 5051, 65773, 1429, 42647, 5050, 65769, 388, 70685, 735, 0, 129899,
- 128035, 0, 12726, 0, 0, 0, 0, 0, 5109, 5053, 0, 120854, 0, 0, 0, 2470, 0,
- 0, 1925, 71251, 0, 10971, 113770, 5048, 5047, 0, 0, 194946, 92313,
- 129972, 0, 0, 8089, 0, 639, 0, 68179, 0, 70180, 0, 4599, 0, 0, 0, 0,
- 983798, 648, 194948, 65819, 0, 0, 0, 129968, 94017, 0, 11777, 9750,
- 983122, 0, 0, 92367, 70175, 5046, 66255, 0, 0, 65253, 0, 5045, 0, 1916,
- 74069, 5044, 92348, 0, 0, 5043, 0, 0, 0, 74004, 9669, 12341, 0, 8402, 0,
- 0, 70174, 0, 3586, 64508, 92456, 0, 0, 119606, 0, 42628, 10069, 0, 0, 0,
- 0, 123, 120703, 0, 121326, 0, 10719, 129409, 120444, 10829, 120593, 0,
- 12130, 0, 0, 0, 0, 3925, 0, 0, 75065, 71112, 92372, 71110, 71111, 0,
- 120441, 120452, 983178, 0, 0, 0, 0, 0, 0, 0, 0, 69879, 8509, 120449, 0,
- 0, 0, 120448, 0, 118889, 194858, 0, 0, 0, 66445, 0, 71109, 0, 0, 72425,
- 0, 12136, 0, 983629, 0, 0, 0, 0, 19922, 41768, 74002, 0, 0, 0, 0, 2458,
- 0, 0, 0, 41074, 4266, 0, 0, 41077, 0, 9050, 0, 0, 73693, 0, 0, 41075,
- 2476, 0, 0, 0, 69761, 0, 0, 74202, 78745, 0, 121324, 70152, 66033, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 83106, 0, 0, 0, 43693, 78753, 0, 12194, 66215,
- 71987, 121273, 67216, 121499, 0, 121118, 0, 78756, 0, 0, 55256, 0, 0, 0,
- 0, 43876, 0, 0, 0, 12948, 195003, 195002, 195005, 195004, 195007, 195006,
- 0, 128320, 4287, 70183, 4902, 74020, 0, 0, 0, 1816, 0, 0, 168, 0, 4898,
- 64298, 0, 78450, 4901, 1821, 0, 43294, 3653, 0, 791, 9162, 6977, 121183,
- 0, 70160, 0, 73731, 8354, 0, 0, 0, 7557, 0, 0, 8234, 194992, 78456,
- 194994, 194993, 194996, 101519, 65925, 194997, 195000, 194999, 0, 195001,
- 0, 64397, 0, 0, 0, 71310, 194977, 194976, 2448, 194978, 194981, 194980,
- 2452, 194982, 194985, 194984, 78694, 72292, 7845, 0, 78692, 4408, 4122,
- 6772, 194988, 8723, 72147, 194989, 119302, 11857, 119304, 119303, 2438,
- 119297, 119300, 119299, 41953, 0, 42135, 373, 119172, 2119, 11457,
- 129618, 41955, 0, 0, 0, 41952, 0, 0, 2127, 0, 128496, 5202, 0, 78765,
- 42823, 11291, 0, 0, 12963, 0, 0, 4125, 41958, 12133, 0, 125099, 1271,
- 129427, 0, 66024, 0, 3864, 127825, 0, 0, 0, 0, 4166, 0, 0, 129917, 7459,
- 0, 119914, 5384, 0, 0, 70154, 5759, 0, 0, 0, 0, 66744, 0, 120571, 0,
- 75066, 5552, 0, 0, 127192, 5553, 0, 0, 0, 12906, 0, 0, 110787, 110792,
- 110788, 5554, 0, 12344, 110786, 101508, 0, 0, 0, 0, 8517, 101509, 0, 0,
- 66017, 5555, 92317, 0, 983653, 0, 0, 0, 9143, 0, 195067, 67995, 195069,
- 127162, 195071, 195070, 4577, 64624, 0, 0, 125105, 983661, 4269, 983655,
- 983652, 983650, 0, 950, 0, 983654, 983664, 983649, 0, 983656, 0, 119121,
- 0, 5098, 0, 0, 119099, 5097, 0, 9848, 0, 10293, 983645, 72798, 0, 0,
- 70303, 983665, 5102, 5101, 128370, 0, 8138, 4517, 1932, 5100, 195060,
- 195059, 1247, 10034, 195064, 5099, 0, 1441, 0, 4724, 650, 0, 73954,
- 983266, 129348, 195040, 195043, 9031, 195045, 195044, 195047, 8545,
- 66356, 195048, 0, 9154, 127243, 0, 0, 2676, 2277, 0, 73812, 195051, 8599,
- 195053, 917918, 195055, 65462, 0, 92524, 195033, 71903, 0, 0, 41199, 0,
- 11399, 195035, 195034, 195037, 195036, 195039, 195038, 5108, 5107, 0,
- 66019, 0, 0, 5541, 0, 0, 12613, 5284, 0, 0, 128806, 4275, 74865, 854,
- 68147, 74381, 120918, 0, 5103, 124986, 64348, 0, 0, 5221, 69811, 0, 0,
- 121163, 0, 0, 11438, 0, 0, 70158, 0, 0, 5106, 195024, 110749, 65154,
- 69813, 195028, 5105, 195030, 69720, 195032, 5104, 983761, 0, 3176,
- 127342, 70149, 932, 0, 6567, 195009, 195008, 195011, 195010, 70145,
- 43850, 195015, 195014, 195017, 195016, 0, 0, 0, 0, 10670, 0, 13273, 0,
- 195020, 121370, 8803, 195021, 72431, 8151, 67145, 72436, 0, 12553, 0, 0,
- 0, 0, 13065, 12570, 0, 0, 0, 983198, 124985, 0, 0, 66466, 0, 0, 194595,
- 0, 194596, 11351, 43256, 0, 0, 0, 0, 41754, 0, 0, 2720, 194975, 68462,
- 8232, 120760, 0, 0, 0, 0, 0, 0, 0, 93067, 10834, 0, 0, 119266, 0, 0,
- 125025, 67679, 0, 75064, 7781, 0, 0, 126076, 0, 12077, 0, 64586, 127164,
- 42396, 0, 3475, 0, 2479, 0, 0, 0, 120728, 0, 42434, 194960, 194963,
- 194962, 110611, 67894, 42473, 194966, 110609, 1843, 42283, 0, 0, 0, 0, 0,
- 194970, 0, 42321, 7284, 194974, 194973, 194950, 194949, 194952, 194951,
- 0, 194953, 123614, 128645, 0, 0, 0, 0, 74952, 194954, 194957, 194956,
- 66367, 194958, 41069, 67689, 9988, 0, 41068, 0, 4295, 0, 0, 41951, 67835,
- 0, 785, 8236, 128647, 9027, 0, 194943, 0, 0, 0, 0, 0, 0, 41071, 41059, 0,
- 92458, 129442, 0, 0, 0, 123612, 2067, 4310, 0, 123611, 5180, 123605, 0,
- 73872, 0, 69880, 5184, 42385, 194947, 983755, 128531, 0, 0, 119149, 0,
- 121334, 0, 983762, 0, 0, 5178, 194929, 120548, 194931, 5188, 194933,
- 194932, 72245, 194934, 1166, 64429, 42639, 0, 0, 0, 0, 128071, 2442,
- 10703, 194940, 194939, 194635, 42439, 0, 0, 0, 73933, 983238, 42401, 0,
- 0, 0, 42288, 0, 0, 0, 13145, 0, 2468, 0, 42327, 0, 0, 0, 42479, 128698,
- 0, 0, 92580, 0, 74939, 120678, 0, 73733, 0, 0, 2715, 0, 71257, 0, 74114,
- 0, 0, 0, 0, 0, 66325, 69603, 0, 9240, 0, 0, 129142, 0, 0, 0, 9815, 0,
- 11246, 0, 73912, 42733, 0, 0, 2480, 0, 0, 0, 6494, 5537, 0, 0, 0, 0,
- 1211, 0, 121379, 0, 0, 12318, 0, 113796, 0, 0, 0, 0, 0, 64642, 0, 0, 0,
- 0, 64864, 0, 0, 0, 121212, 0, 0, 3589, 92719, 4035, 6492, 92236, 4265,
- 6843, 0, 74186, 41778, 113764, 119216, 2488, 0, 4582, 0, 71426, 41777,
- 12926, 72708, 7528, 10550, 113761, 0, 0, 11439, 0, 0, 64878, 0, 0, 0, 0,
- 2286, 0, 0, 126646, 127909, 0, 400, 126500, 0, 0, 0, 0, 0, 64827, 0,
- 74948, 390, 0, 71301, 0, 3473, 0, 0, 66742, 0, 55285, 0, 0, 0, 92206, 0,
- 0, 8004, 0, 6763, 0, 0, 7006, 0, 0, 6757, 73707, 126648, 0, 6766, 0, 0,
- 0, 6146, 0, 771, 0, 0, 41318, 0, 42272, 0, 120211, 69559, 0, 953, 12917,
- 72287, 12300, 0, 11491, 68612, 0, 0, 71321, 7490, 11389, 7489, 3379, 0,
- 7487, 72716, 7486, 7484, 7482, 6753, 7480, 7479, 7478, 7477, 6501, 7475,
- 0, 7473, 7472, 2474, 7470, 7468, 124977, 0, 0, 0, 0, 71871, 11834,
- 128376, 0, 6017, 0, 128763, 0, 0, 0, 119365, 73949, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2472, 69945, 120699, 121133, 2139, 4256, 120776, 74380, 0,
- 73847, 73844, 0, 0, 101375, 0, 101374, 0, 0, 101347, 7083, 0, 8066, 7678,
- 0, 121124, 101341, 101373, 101336, 0, 101331, 0, 101304, 0, 101301, 0, 0,
- 0, 8330, 0, 101298, 101322, 101297, 0, 0, 19934, 0, 1770, 67091, 0,
- 128671, 129617, 110605, 101355, 73843, 110604, 0, 101362, 67092, 0,
- 71334, 0, 0, 0, 0, 0, 8162, 0, 5996, 129644, 4903, 0, 0, 43063, 0, 5172,
- 0, 7139, 0, 127385, 0, 0, 0, 0, 4334, 6324, 41975, 12186, 10674, 12308,
- 0, 0, 0, 72807, 41977, 68002, 0, 126630, 2018, 121388, 41979, 68003, 0,
- 68000, 0, 0, 126984, 68001, 9334, 0, 71440, 0, 7975, 0, 0, 0, 66621,
- 4884, 70367, 983740, 0, 121010, 0, 0, 0, 0, 127799, 0, 0, 0, 463, 0, 0,
- 69617, 6509, 5460, 0, 0, 0, 0, 42279, 0, 0, 0, 0, 0, 0, 0, 125027, 0,
- 121119, 0, 0, 0, 5663, 0, 0, 0, 0, 2482, 66202, 0, 0, 42247, 65174,
- 73925, 0, 100940, 0, 0, 126573, 0, 0, 2460, 0, 11944, 0, 0, 64679,
- 120835, 127310, 0, 0, 0, 5870, 0, 0, 0, 100931, 539, 100933, 100932,
- 100935, 9064, 100937, 100936, 100939, 100938, 0, 0, 0, 0, 0, 0, 41295,
- 100941, 2478, 100943, 4162, 100945, 4260, 12953, 100950, 100949, 129800,
- 0, 0, 0, 0, 0, 0, 0, 5000, 0, 0, 0, 69672, 71439, 0, 74017, 0, 0, 6709,
- 0, 0, 983720, 0, 0, 100922, 100921, 10301, 10333, 10397, 100925, 100928,
- 100927, 0, 0, 0, 127830, 0, 4014, 12842, 0, 67413, 0, 0, 3893, 0, 0,
- 12210, 0, 42147, 0, 983622, 74465, 0, 0, 0, 0, 0, 0, 0, 0, 110805, 8231,
- 0, 69946, 41968, 100929, 41973, 12935, 41969, 0, 2453, 0, 0, 78807,
- 122893, 0, 10349, 10413, 0, 41962, 3202, 119097, 0, 8316, 129174, 0,
- 7314, 0, 0, 0, 0, 1840, 0, 0, 0, 4883, 100908, 4723, 70099, 100909, 0, 0,
- 0, 0, 11089, 240, 19906, 0, 0, 0, 43600, 121004, 13134, 93065, 0, 65931,
- 110649, 110650, 42634, 110648, 0, 121005, 11463, 0, 0, 129861, 10445, 0,
- 92969, 0, 2614, 0, 129954, 1729, 0, 0, 100911, 0, 43334, 100912, 100915,
- 100914, 66201, 100916, 69662, 100896, 100899, 100898, 4121, 100900,
- 70272, 82954, 63879, 0, 70872, 0, 0, 4039, 643, 7726, 120082, 0, 120068,
- 58, 0, 0, 0, 63872, 0, 0, 100891, 0, 10625, 100892, 100895, 100894, 1416,
- 120073, 917761, 67393, 0, 0, 0, 6996, 4264, 0, 100902, 66179, 66768,
- 100903, 13114, 72311, 0, 3094, 0, 0, 127074, 4437, 0, 0, 0, 55280, 42174,
- 0, 42430, 129796, 72246, 42355, 0, 0, 0, 0, 121251, 127401, 0, 0, 0, 0,
- 0, 0, 100882, 100881, 74037, 100883, 0, 127099, 0, 0, 0, 0, 0, 69646,
- 65035, 65034, 11480, 6116, 65039, 65038, 41180, 65036, 194565, 0, 12101,
- 5822, 0, 0, 0, 0, 11663, 127873, 63854, 119657, 63853, 0, 0, 65810, 4289,
- 100885, 63896, 100887, 100890, 43621, 0, 0, 0, 129613, 194560, 7461,
- 73901, 0, 331, 0, 0, 0, 128029, 0, 0, 0, 74629, 0, 0, 0, 41964, 0, 63843,
- 2084, 41965, 0, 100864, 100863, 100866, 63841, 78549, 41220, 13032,
- 100869, 8383, 0, 78548, 126102, 0, 0, 1351, 983846, 8698, 100874, 100877,
- 1930, 100879, 78554, 74360, 100880, 69859, 78551, 0, 0, 129433, 3657, 0,
- 65202, 6000, 119206, 41901, 0, 0, 41740, 0, 41283, 0, 119267, 0, 0,
- 100871, 9695, 100873, 7562, 100853, 5170, 100855, 100854, 676, 100856,
- 100859, 100858, 9978, 100860, 0, 0, 64934, 0, 0, 0, 113714, 113706,
- 41829, 65886, 5159, 0, 41832, 704, 43077, 0, 120532, 0, 68496, 65065,
- 41830, 0, 917799, 917798, 917797, 917796, 0, 67864, 113696, 917800,
- 12336, 4135, 69805, 341, 2727, 4129, 100862, 100861, 0, 64503, 7913, 0,
- 0, 4131, 63868, 0, 63871, 4133, 63864, 210, 0, 0, 0, 4137, 78505, 78506,
- 0, 78504, 78830, 0, 0, 43873, 0, 0, 0, 0, 11988, 78510, 195, 68321,
- 41501, 0, 42031, 0, 13135, 0, 0, 0, 41499, 0, 0, 9680, 41498, 917794,
- 42025, 78567, 78556, 0, 0, 0, 0, 0, 0, 101074, 120502, 92597, 0, 0,
- 917784, 7864, 129001, 129704, 917788, 121106, 917786, 917785, 917792,
- 67816, 129876, 2219, 0, 0, 0, 0, 0, 0, 121277, 0, 917777, 917776, 917775,
- 69644, 917781, 917780, 917779, 917778, 8668, 0, 121383, 917782, 5999, 0,
- 0, 129195, 128243, 43653, 1726, 1015, 0, 127247, 0, 0, 64919, 0, 0, 0,
- 128478, 0, 69791, 927, 0, 0, 42010, 0, 42021, 0, 0, 1299, 12240, 64537,
- 0, 0, 0, 0, 0, 0, 69454, 0, 0, 0, 122903, 19914, 12179, 0, 2296, 0, 0,
- 63832, 917773, 0, 63816, 2594, 63823, 63817, 11178, 0, 0, 0, 11265,
- 68295, 0, 0, 0, 10554, 3972, 0, 121198, 0, 917766, 10816, 917764, 119608,
- 74374, 917769, 11210, 93069, 8586, 3882, 8532, 120183, 1573, 128648, 0,
- 69916, 0, 101051, 67719, 0, 0, 0, 0, 0, 0, 0, 128821, 119169, 0, 0, 6626,
- 42763, 130034, 118884, 128613, 0, 83128, 0, 0, 0, 0, 0, 983561, 0, 0, 0,
- 9171, 0, 0, 71305, 983900, 121146, 0, 101095, 128881, 119604, 126596, 0,
- 0, 0, 128214, 42368, 0, 983105, 2271, 41487, 12118, 74124, 68651, 110836,
- 110833, 3009, 41476, 41489, 69825, 3007, 1448, 3018, 0, 41491, 8521,
- 5083, 5082, 0, 0, 8519, 0, 3014, 5081, 73926, 0, 128549, 0, 69951, 5079,
- 129963, 2557, 128086, 65532, 11828, 0, 71297, 11105, 0, 0, 0, 8518,
- 10779, 0, 71303, 0, 0, 42170, 110769, 0, 629, 1924, 0, 12037, 0, 5987,
- 8462, 127744, 0, 63933, 69735, 110770, 128295, 63941, 67981, 5077, 0,
- 10880, 64849, 5075, 0, 128152, 65075, 0, 11007, 983717, 0, 0, 0, 66684,
- 72331, 3434, 72338, 1904, 0, 0, 72730, 0, 10499, 4507, 9578, 63925, 0,
- 7979, 0, 9831, 66689, 0, 461, 194834, 0, 4504, 0, 0, 6325, 0, 43021, 0,
- 0, 55236, 0, 0, 5177, 41324, 12055, 63831, 0, 41327, 12591, 0, 4114, 409,
- 0, 0, 8948, 41325, 0, 721, 10182, 0, 71311, 0, 0, 94052, 74963, 83503,
- 5998, 0, 0, 74825, 0, 12587, 0, 78571, 74889, 71328, 128955, 0, 74121,
- 78570, 78822, 0, 0, 5995, 0, 42568, 0, 0, 63944, 73860, 0, 0, 4167, 0,
- 43175, 0, 74120, 0, 65076, 938, 73857, 73854, 11737, 9721, 0, 0, 0,
- 11742, 0, 0, 11493, 12334, 128762, 0, 66623, 0, 9173, 0, 11978, 0, 12734,
- 113750, 113741, 0, 6759, 0, 0, 0, 126222, 0, 70388, 129093, 13027, 42777,
- 7683, 1167, 0, 4983, 0, 861, 0, 0, 68297, 0, 43757, 92978, 129298, 0, 0,
- 0, 0, 70815, 9616, 0, 0, 12816, 43759, 0, 12710, 68674, 12721, 4101,
- 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 42693, 0, 121088, 0, 0,
- 917915, 0, 42835, 0, 0, 0, 0, 0, 12712, 7105, 127807, 65060, 66875, 9900,
- 0, 0, 0, 121482, 119265, 0, 64778, 12585, 0, 0, 0, 0, 0, 0, 77826, 0,
- 4900, 125245, 0, 0, 0, 4119, 74768, 8971, 0, 0, 0, 78594, 41132, 9245,
- 73060, 0, 4138, 194841, 0, 0, 0, 77827, 0, 13054, 0, 0, 128416, 110760,
- 0, 0, 3948, 128878, 0, 0, 0, 1680, 0, 78589, 0, 0, 120032, 0, 0, 0, 0,
- 74833, 74190, 5993, 42709, 0, 12706, 77846, 1893, 0, 63915, 0, 0, 110744,
- 129826, 0, 63997, 120018, 63996, 3077, 0, 0, 1512, 0, 12589, 41479, 0, 0,
- 0, 0, 11831, 120727, 0, 41481, 0, 118912, 0, 3090, 0, 3086, 1664, 1850,
- 0, 3079, 0, 0, 94080, 127140, 0, 0, 74401, 0, 917555, 0, 0, 0, 0, 0,
- 11526, 63985, 5864, 0, 63992, 0, 63991, 0, 5480, 7858, 0, 4116, 78149, 0,
- 0, 0, 63907, 0, 0, 126131, 63905, 119601, 0, 983190, 0, 119666, 0, 0,
- 7534, 507, 91, 2042, 120775, 0, 0, 66028, 118811, 41844, 70680, 774, 0,
- 0, 0, 5994, 0, 12733, 0, 0, 0, 72297, 0, 0, 0, 0, 6026, 0, 0, 0, 162, 0,
- 125247, 78151, 78152, 983590, 92709, 0, 68304, 0, 0, 0, 66658, 0, 0, 0,
- 0, 121511, 2226, 121512, 129349, 10492, 0, 121510, 0, 43119, 0, 0, 0,
- 66192, 0, 0, 4899, 12729, 0, 0, 0, 0, 4103, 0, 129842, 77851, 69429,
- 129046, 0, 12859, 70087, 0, 0, 0, 0, 0, 0, 0, 0, 65264, 5146, 0, 194694,
- 71684, 0, 0, 0, 983844, 0, 71688, 78463, 5147, 125019, 0, 74524, 71682,
- 128435, 0, 194692, 5991, 3445, 0, 4976, 66193, 0, 0, 0, 0, 128309,
- 128594, 129819, 69579, 0, 63855, 0, 10138, 0, 0, 8897, 0, 75027, 0,
- 120931, 77862, 65836, 0, 0, 77860, 0, 0, 1123, 4124, 41553, 77903, 0,
- 71680, 121386, 398, 0, 129035, 41551, 0, 0, 0, 41550, 9970, 0, 93062,
- 42392, 1305, 78901, 0, 129292, 0, 7346, 41464, 0, 0, 0, 41465, 983567,
- 8528, 9149, 0, 63955, 165, 3024, 11852, 119163, 0, 9093, 0, 9147, 0, 0,
- 110989, 9148, 0, 4096, 53, 8296, 0, 71352, 0, 9594, 0, 0, 63952, 0,
- 10997, 0, 0, 5805, 0, 0, 0, 42176, 71455, 74601, 129604, 10591, 0, 0, 0,
- 0, 0, 0, 0, 0, 92475, 0, 0, 42379, 0, 0, 9220, 0, 121425, 0, 0, 4132, 0,
- 0, 11239, 0, 0, 74837, 0, 66408, 0, 8055, 0, 0, 0, 63962, 74042, 8924,
- 43123, 5988, 0, 63969, 0, 42718, 8788, 1357, 77872, 65743, 0, 8774, 0, 0,
- 0, 0, 92748, 120598, 128234, 9564, 0, 0, 119124, 0, 121241, 110983,
- 92975, 3121, 0, 0, 0, 70081, 0, 0, 0, 0, 0, 64851, 0, 0, 73085, 119532,
- 0, 0, 0, 0, 1198, 69293, 66708, 64619, 0, 64663, 93991, 0, 0, 2101, 1398,
- 0, 92554, 0, 0, 92684, 11406, 101588, 12127, 0, 840, 0, 0, 7101, 120938,
- 0, 0, 12880, 0, 43104, 0, 0, 0, 2117, 0, 0, 0, 0, 0, 0, 0, 7769, 129867,
- 92413, 0, 0, 0, 0, 40986, 83117, 0, 0, 4127, 0, 0, 0, 0, 0, 0, 70738, 0,
- 129466, 0, 0, 0, 0, 119081, 0, 10581, 0, 4533, 0, 128941, 6490, 0, 12038,
- 0, 0, 68225, 0, 0, 69704, 0, 1948, 119007, 129607, 101586, 0, 0, 0,
- 120802, 0, 9494, 0, 0, 0, 4843, 0, 74772, 4098, 0, 0, 0, 3436, 0, 127279,
- 12817, 0, 126607, 0, 0, 0, 0, 74433, 0, 0, 0, 0, 121296, 65916, 0, 0,
- 121458, 0, 129107, 93815, 0, 73743, 0, 0, 983132, 67676, 0, 0, 74627,
- 128928, 0, 127892, 0, 71326, 67222, 0, 75013, 92435, 0, 128500, 0, 0,
- 9613, 43425, 4526, 121415, 0, 64520, 71336, 0, 0, 55278, 10228, 64957, 0,
- 0, 3807, 2081, 66640, 0, 0, 0, 0, 119269, 0, 128688, 0, 128142, 1451, 0,
- 0, 4134, 0, 74847, 0, 74793, 0, 0, 74295, 9960, 1201, 0, 12846, 121271,
- 0, 11919, 64962, 0, 43739, 0, 66358, 0, 0, 0, 43679, 72284, 72289, 0,
- 129523, 1253, 983851, 65766, 500, 65764, 65765, 65762, 65763, 65760,
- 65761, 70334, 983848, 9821, 11702, 110630, 110631, 110628, 110629,
- 128481, 0, 7533, 66717, 92500, 92305, 0, 0, 69277, 127758, 71332, 0, 0,
- 0, 0, 11188, 0, 4112, 0, 0, 12890, 0, 0, 9915, 0, 68423, 0, 0, 2876, 0,
- 0, 0, 0, 7382, 92415, 0, 128132, 0, 0, 0, 0, 69561, 127915, 0, 7003, 0,
- 0, 7704, 0, 0, 0, 4123, 0, 0, 9977, 0, 0, 65759, 0, 0, 128266, 9808, 0,
- 92611, 4126, 0, 9521, 9589, 64755, 0, 0, 0, 69948, 0, 92368, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 93814, 0, 0, 92234, 0, 10693, 0, 0, 65897, 4058, 0, 0,
- 64660, 0, 0, 0, 983711, 1139, 43298, 0, 71333, 8970, 0, 9934, 0, 11023,
- 128020, 42522, 0, 0, 0, 78899, 3057, 128113, 7349, 69959, 128722, 68065,
- 110813, 0, 128090, 67201, 0, 0, 0, 9528, 0, 0, 0, 9102, 627, 0, 6273,
- 129496, 0, 0, 983210, 92966, 43300, 0, 983721, 11696, 127343, 1018,
- 65554, 0, 74338, 0, 7645, 0, 128321, 0, 0, 0, 0, 73814, 11544, 12563,
- 10728, 0, 0, 127340, 43311, 64966, 0, 0, 0, 118946, 0, 0, 74779, 0, 185,
- 65085, 74533, 0, 0, 7535, 0, 42525, 0, 9749, 41701, 6131, 0, 4117,
- 129062, 126988, 0, 92429, 65693, 0, 73445, 0, 69695, 0, 0, 0, 0, 0, 0, 0,
- 1184, 0, 815, 0, 0, 0, 0, 0, 71325, 0, 0, 64683, 983797, 0, 127959, 0, 0,
- 0, 0, 0, 0, 0, 68166, 0, 0, 0, 0, 66799, 0, 128912, 0, 5142, 0, 69643, 0,
- 0, 83367, 93975, 0, 0, 0, 123209, 0, 0, 0, 74855, 121330, 0, 0, 0, 0,
- 10940, 66030, 0, 70385, 0, 0, 2652, 120527, 0, 129946, 0, 126508, 0, 0,
- 0, 0, 0, 0, 1828, 0, 128357, 0, 8531, 0, 74799, 12324, 72434, 65238,
- 68374, 0, 65573, 0, 68308, 68679, 12904, 43445, 0, 0, 0, 11247, 0, 0,
- 41426, 0, 0, 0, 0, 0, 67250, 69451, 83354, 71337, 0, 0, 0, 0, 0, 0, 637,
- 0, 0, 0, 121178, 0, 0, 74474, 71306, 0, 7298, 128256, 0, 0, 0, 0, 8210,
- 0, 0, 0, 2046, 0, 0, 0, 70333, 0, 1506, 69926, 0, 83353, 0, 12651, 0, 0,
- 0, 12058, 120626, 72111, 7803, 0, 0, 65592, 118844, 0, 0, 355, 9719, 0,
- 118961, 0, 121077, 127246, 0, 42178, 0, 69760, 42571, 0, 0, 0, 0, 0, 0,
- 127176, 3178, 0, 0, 92704, 83381, 9080, 120943, 67697, 0, 121342, 129875,
- 0, 71485, 0, 917837, 0, 0, 78157, 0, 0, 0, 0, 0, 71313, 0, 0, 128212, 0,
- 72238, 67858, 0, 0, 0, 0, 0, 0, 0, 10770, 118994, 0, 465, 0, 0, 74348, 0,
- 0, 0, 0, 0, 0, 0, 10930, 0, 0, 0, 119091, 69388, 983614, 129918, 0, 0, 0,
- 0, 0, 10092, 0, 0, 0, 0, 0, 1766, 11282, 11996, 66644, 4547, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 120906, 4345, 0, 0, 128947, 0, 0, 0, 0, 0, 5382, 0, 0, 0,
- 0, 0, 5406, 43127, 120007, 0, 3590, 129874, 0, 0, 0, 42016, 0, 0, 121002,
- 0, 7742, 0, 66562, 71323, 0, 0, 5310, 0, 128173, 0, 43594, 0, 128260,
- 66723, 0, 73816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1326, 128723, 0, 0, 74519, 0,
- 0, 0, 0, 71308, 0, 5410, 5783, 0, 8403, 5400, 120526, 0, 128863, 0, 0, 0,
- 64412, 0, 0, 5587, 42865, 71858, 0, 0, 129854, 0, 113785, 0, 120755, 0,
- 69738, 0, 74867, 10461, 12103, 0, 0, 70701, 0, 0, 0, 0, 0, 94009, 0, 0,
- 0, 8816, 41515, 0, 11802, 0, 7585, 910, 0, 0, 0, 3658, 83386, 120525, 0,
- 7617, 0, 12888, 0, 0, 64631, 0, 41514, 11097, 5703, 0, 41517, 41504,
- 41519, 0, 70104, 0, 65864, 0, 120533, 0, 121037, 0, 0, 43553, 120774, 0,
- 0, 0, 0, 0, 1578, 0, 43449, 0, 0, 8225, 121191, 94024, 72799, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 110655, 0, 110656, 121247, 72213, 0, 110658, 0,
- 74997, 0, 3195, 10999, 983570, 7897, 0, 1203, 74396, 0, 64544, 0, 0, 0,
- 2877, 0, 0, 0, 121112, 0, 0, 128977, 119607, 0, 0, 0, 0, 983623, 0, 0, 0,
- 0, 0, 0, 0, 0, 983078, 0, 0, 0, 9939, 0, 0, 0, 0, 0, 0, 0, 10714, 0, 0,
- 0, 0, 0, 67738, 0, 74038, 0, 42897, 0, 0, 0, 0, 0, 0, 7730, 0, 0, 0,
- 11163, 0, 0, 0, 113701, 4966, 128802, 70674, 129468, 123207, 3841, 0, 0,
- 983227, 77886, 0, 4972, 0, 64699, 0, 0, 0, 0, 0, 12705, 10203, 9608, 0,
- 0, 11962, 121397, 0, 1196, 67684, 0, 777, 0, 0, 65271, 0, 0, 0, 0, 64824,
- 983194, 0, 9454, 63778, 8658, 0, 0, 2705, 0, 64894, 0, 0, 11986, 92636,
- 0, 8280, 0, 2701, 0, 0, 0, 0, 0, 9809, 0, 0, 0, 0, 0, 63761, 1748, 0,
- 65719, 121078, 0, 0, 0, 55244, 3061, 0, 63765, 63787, 0, 41520, 0, 7694,
- 0, 8896, 63768, 55282, 0, 127781, 0, 0, 63807, 1591, 0, 6386, 119143, 0,
- 0, 0, 983199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68289, 0, 0, 7624, 0, 10996,
- 92247, 10609, 0, 127181, 10987, 0, 70370, 3894, 0, 0, 0, 0, 493, 0, 0,
- 1717, 12228, 479, 917941, 129347, 129473, 917935, 917939, 917924, 917932,
- 92303, 64315, 0, 0, 83522, 6233, 42681, 83525, 83518, 83519, 64911,
- 83521, 0, 0, 83516, 83517, 129843, 8378, 11632, 0, 0, 7323, 0, 120771, 0,
- 0, 0, 0, 120904, 83526, 0, 128710, 92672, 0, 0, 0, 0, 0, 0, 0, 63806,
- 63800, 0, 0, 0, 63798, 63803, 244, 11542, 0, 0, 73761, 0, 12669, 120310,
- 0, 0, 0, 0, 120680, 71908, 0, 0, 8612, 0, 0, 0, 0, 0, 64662, 125056,
- 1360, 248, 0, 63797, 0, 63794, 0, 7292, 983666, 63756, 42786, 74957, 0,
- 12663, 0, 0, 0, 0, 0, 0, 0, 4579, 0, 0, 0, 0, 0, 0, 71130, 65545, 9602,
- 8623, 0, 128052, 0, 0, 0, 0, 0, 0, 0, 659, 6098, 0, 12234, 83511, 83512,
- 8311, 83514, 7669, 83508, 83509, 83510, 0, 0, 0, 0, 983932, 0, 0, 2323,
- 0, 2319, 77917, 120900, 77916, 2311, 83077, 4415, 1586, 68050, 0, 128724,
- 83020, 2309, 83022, 8173, 83013, 83014, 83015, 83016, 0, 83010, 69275,
- 83012, 9397, 0, 9395, 9396, 9393, 9394, 9391, 9392, 9389, 6209, 9387,
- 9388, 9385, 9386, 9383, 9384, 0, 0, 0, 0, 0, 11259, 0, 0, 0, 2313, 0,
- 119661, 0, 0, 0, 0, 10570, 65776, 110968, 0, 83006, 83007, 11998, 83009,
- 83002, 83003, 83004, 66406, 0, 128780, 83000, 11818, 9381, 9382, 9379,
- 9380, 9377, 9378, 9375, 9376, 1683, 9374, 0, 9372, 0, 0, 0, 0, 127801, 0,
- 42029, 11079, 0, 43451, 42032, 0, 0, 0, 0, 5005, 0, 0, 42030, 5007,
- 78828, 126210, 0, 4951, 110776, 0, 110775, 0, 43309, 121222, 92172, 0,
- 92334, 0, 9548, 0, 119138, 71896, 0, 0, 0, 0, 0, 0, 65691, 65580, 64361,
- 10496, 0, 0, 0, 917975, 0, 0, 41046, 0, 0, 0, 13177, 0, 64703, 0, 43499,
- 3389, 10589, 0, 11208, 120719, 78395, 73964, 78393, 78392, 78391, 11314,
- 8281, 113732, 113667, 113745, 9076, 8862, 69743, 41052, 78397, 64766,
- 69821, 0, 0, 0, 82992, 82994, 10671, 82998, 82987, 82989, 82990, 6303,
- 113664, 498, 64471, 82986, 129901, 0, 9349, 0, 0, 0, 8031, 2414, 0,
- 128999, 3231, 0, 6422, 0, 0, 119339, 2537, 78405, 41429, 78403, 78401,
- 78399, 0, 0, 41433, 4719, 41431, 0, 78411, 5211, 41428, 78407, 82983,
- 1772, 0, 0, 82979, 66850, 64812, 82982, 82975, 68767, 82977, 82978, 0, 0,
- 0, 0, 41064, 70368, 9663, 66838, 129381, 12304, 125113, 0, 41062, 66847,
- 0, 0, 41061, 70454, 0, 127187, 83049, 83050, 41509, 83054, 83045, 83046,
- 83047, 83048, 0, 43184, 41507, 1958, 0, 66816, 41506, 0, 0, 0, 120717, 0,
- 0, 0, 74349, 72113, 8008, 0, 0, 0, 65083, 6839, 0, 126517, 73803, 127055,
- 127056, 3508, 127058, 127059, 78038, 0, 120932, 0, 6411, 128115, 0, 0,
- 128832, 100930, 0, 0, 0, 0, 0, 0, 128546, 0, 0, 120914, 0, 0, 0, 0,
- 917822, 128810, 983657, 65599, 0, 9966, 12607, 4948, 128070, 0, 128149,
- 0, 0, 6207, 0, 6117, 73916, 0, 0, 0, 0, 68244, 41511, 0, 129489, 127304,
- 0, 121289, 0, 0, 83031, 83032, 0, 41556, 0, 0, 0, 128571, 73766, 0, 0, 0,
- 41510, 7953, 0, 0, 41513, 0, 0, 0, 83038, 83039, 83040, 83041, 83034,
- 83035, 848, 9868, 983149, 6424, 0, 83033, 0, 0, 0, 0, 0, 0, 893, 64576,
- 13299, 0, 0, 71998, 71447, 0, 0, 0, 0, 8903, 0, 0, 0, 8099, 0, 0, 0, 0,
- 0, 0, 0, 0, 113713, 0, 0, 0, 0, 0, 83027, 41483, 83029, 83030, 83023,
- 83024, 69436, 83026, 194756, 41485, 194758, 194757, 194760, 41482, 42737,
- 64588, 0, 127787, 0, 10014, 0, 0, 194763, 194762, 68785, 194764, 194767,
- 194766, 0, 0, 0, 11377, 0, 0, 983792, 0, 0, 0, 9776, 0, 93824, 5215,
- 194750, 13227, 8758, 194751, 128744, 0, 0, 5363, 12957, 0, 0, 129051,
- 129526, 6421, 0, 0, 121304, 0, 0, 0, 0, 92625, 119070, 67895, 983943, 0,
- 68608, 6482, 0, 0, 11945, 0, 0, 8838, 0, 4025, 10709, 0, 2108, 0, 73929,
- 0, 0, 10617, 194737, 128031, 194739, 194738, 68614, 194740, 68611, 9924,
- 129952, 194744, 0, 0, 0, 3277, 0, 4947, 41055, 0, 194722, 129930, 194724,
- 194723, 64626, 194725, 42266, 194727, 8371, 194729, 127028, 12806, 41492,
- 0, 0, 73930, 194731, 194730, 41054, 1078, 194735, 194734, 41057, 0, 0, 0,
- 0, 0, 92210, 73009, 0, 41496, 0, 9165, 1572, 0, 129712, 0, 128635, 9215,
- 9330, 129809, 10032, 41745, 43183, 6401, 5831, 0, 0, 0, 8056, 0, 65681,
- 92377, 0, 0, 0, 121048, 0, 118887, 6408, 0, 0, 5661, 82972, 82973, 3603,
- 0, 82967, 3548, 82969, 82970, 0, 82964, 82965, 9918, 118787, 11321, 0, 0,
- 0, 128992, 0, 0, 0, 0, 0, 0, 41558, 41471, 0, 8158, 41561, 41472, 0, 0,
- 194672, 43762, 77927, 6701, 41559, 1896, 66256, 66248, 194680, 5665, 0,
- 194681, 0, 0, 0, 74352, 0, 5664, 127895, 194682, 12310, 5662, 194687,
- 194686, 73924, 1121, 82953, 82955, 0, 74378, 0, 0, 74966, 0, 71892, 0,
- 69413, 194667, 8627, 194669, 10110, 194671, 42024, 6420, 42028, 0, 10509,
- 2795, 73923, 0, 69231, 0, 6275, 93957, 917927, 124972, 194655, 127786,
- 6423, 0, 0, 0, 68526, 12823, 0, 0, 42026, 42017, 0, 7524, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 12691, 68072, 42722, 69877, 82956, 78655, 78661, 82959,
- 78662, 41265, 41065, 1795, 0, 118791, 10587, 0, 917807, 0, 194640, 0,
- 12946, 194641, 71921, 194643, 9169, 70372, 194648, 194647, 68202, 194649,
- 73990, 65111, 0, 748, 41067, 6234, 194651, 9990, 72795, 194652, 194629,
- 194628, 194631, 194630, 67896, 194632, 0, 3593, 82948, 82949, 82950,
- 82951, 82944, 69729, 82946, 82947, 194638, 194637, 0, 581, 0, 42929,
- 7944, 0, 0, 0, 0, 0, 0, 72143, 0, 10119, 6415, 42893, 0, 69702, 0, 0,
- 11375, 0, 0, 0, 412, 92765, 42928, 42880, 43587, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 65854, 92508, 65811, 75024, 194624, 194627, 9344, 8826, 92916, 0,
- 125090, 74781, 0, 0, 0, 0, 0, 0, 127783, 0, 0, 0, 0, 10133, 92755, 0, 0,
- 0, 0, 78414, 78413, 118950, 74011, 0, 0, 121080, 0, 1908, 127378, 4918,
- 0, 0, 70709, 67825, 0, 0, 10811, 78412, 11339, 4914, 0, 0, 118971, 4917,
- 70686, 0, 0, 4912, 69722, 73845, 0, 0, 129527, 0, 0, 0, 118986, 0, 0,
- 74317, 0, 8319, 194714, 194717, 10960, 72196, 8305, 12573, 983620, 72193,
- 0, 13202, 0, 12582, 0, 72198, 69856, 0, 0, 78598, 0, 72195, 0, 65802,
- 74822, 7698, 12708, 74045, 0, 0, 70460, 4913, 127990, 0, 0, 0, 0, 12728,
- 129980, 0, 0, 101281, 0, 130038, 0, 101283, 0, 12588, 8821, 6153, 194705,
- 78900, 194707, 194710, 194709, 194712, 194711, 118854, 194713, 651, 0, 0,
- 0, 0, 0, 78468, 78469, 69433, 78467, 69614, 74905, 194695, 78461, 194697,
- 194696, 0, 4716, 43277, 0, 78474, 78475, 128592, 120928, 194700, 55264,
- 194702, 12732, 0, 12707, 0, 0, 0, 0, 121417, 8479, 4151, 0, 0, 0, 0, 0,
- 0, 0, 0, 113799, 0, 74050, 0, 0, 0, 0, 0, 129467, 12278, 0, 129507, 0,
- 2700, 12576, 7842, 0, 0, 0, 2699, 0, 0, 2985, 0, 126475, 0, 129873,
- 119314, 0, 119312, 9827, 101292, 119311, 101291, 119309, 119306, 11481,
- 0, 119305, 0, 35, 78481, 78482, 66694, 78480, 78477, 78478, 0, 0, 64257,
- 0, 0, 0, 78485, 78486, 78483, 4272, 0, 0, 40965, 0, 12704, 78487, 983568,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5244, 4189, 94108, 0, 127948, 4188, 1879, 0,
- 0, 0, 43743, 71974, 8873, 2279, 0, 0, 0, 12574, 12735, 92749, 92753,
- 983902, 0, 0, 75001, 0, 0, 0, 12578, 12720, 128628, 101088, 0, 12346,
- 128596, 101089, 0, 0, 7251, 0, 0, 118850, 73025, 0, 0, 0, 0, 0, 12564,
- 66457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101131, 0, 41564, 10976, 0, 121223,
- 0, 0, 10054, 9197, 120618, 0, 9012, 65737, 74420, 0, 13215, 12730, 0, 0,
- 0, 0, 816, 0, 101123, 0, 83191, 0, 0, 92752, 101120, 4715, 94107, 94106,
- 71075, 0, 0, 0, 67729, 0, 307, 0, 9585, 0, 0, 0, 101255, 0, 125267, 0,
- 70727, 65567, 101238, 75006, 101231, 983890, 0, 12236, 41419, 101259,
- 194621, 101248, 75003, 194622, 73675, 120957, 41421, 75005, 4462, 0,
- 126599, 983892, 821, 0, 2498, 5800, 100834, 100833, 1760, 94019, 4469,
- 64377, 100840, 100839, 0, 757, 1185, 0, 100841, 0, 10628, 100842, 68849,
- 100844, 43971, 100846, 100849, 64763, 0, 7713, 0, 0, 0, 4380, 194608,
- 128073, 194610, 194609, 194612, 862, 65626, 194613, 65627, 65629, 5137,
- 194617, 0, 0, 0, 65069, 7566, 64688, 67143, 194592, 100823, 100822,
- 100825, 4748, 92228, 100826, 100829, 42260, 129494, 64107, 0, 0, 0, 0,
- 128189, 0, 194604, 13137, 8775, 127945, 123633, 194607, 0, 8410, 4454,
- 194585, 0, 92542, 4449, 92330, 127064, 75022, 92761, 70664, 194589, 339,
- 194591, 194590, 0, 70662, 0, 100830, 41543, 0, 0, 0, 41542, 127066, 8916,
- 6705, 0, 129296, 0, 0, 0, 0, 0, 41548, 6729, 119329, 0, 7348, 0, 0, 7537,
- 0, 11819, 0, 0, 123624, 71269, 0, 7344, 100808, 129073, 9780, 0, 11117,
- 74993, 0, 194578, 10483, 194580, 194579, 194582, 194581, 68781, 125114,
- 100820, 100819, 0, 4211, 1259, 7517, 0, 0, 194561, 70827, 194563, 194562,
- 641, 5219, 94034, 194566, 11064, 194568, 0, 129820, 0, 0, 0, 0, 100812,
- 100811, 100814, 100813, 100816, 100815, 100818, 100817, 100798, 100797,
- 41410, 100799, 64262, 0, 41407, 75000, 0, 0, 93812, 0, 0, 72803, 74999,
- 78897, 0, 0, 67675, 0, 0, 0, 0, 43647, 0, 0, 100792, 100791, 100794,
- 100793, 100796, 100795, 0, 74630, 11933, 0, 0, 41903, 67892, 11001,
- 100801, 42255, 100803, 100802, 100805, 41905, 100807, 100806, 10775,
- 9793, 0, 0, 74452, 0, 983063, 42535, 0, 64529, 41408, 42853, 0, 0, 42674,
- 118915, 0, 0, 983788, 0, 70838, 0, 0, 0, 64506, 0, 66738, 4747, 100783,
- 69844, 100785, 5832, 0, 0, 5141, 42600, 0, 0, 0, 0, 0, 0, 93790, 0, 7657,
- 0, 71132, 74137, 0, 128362, 73682, 73681, 859, 0, 0, 0, 6059, 126985,
- 55235, 0, 0, 0, 0, 0, 100787, 11488, 72838, 100788, 0, 100790, 10558, 0,
- 0, 0, 126090, 71069, 0, 0, 1788, 0, 0, 0, 0, 119571, 917961, 9028, 0,
- 69234, 73665, 0, 9905, 128485, 41242, 70086, 0, 74109, 100765, 100764,
- 100767, 100766, 70830, 83184, 70082, 3940, 0, 43754, 0, 128188, 8665, 0,
- 0, 0, 1653, 100775, 42406, 100777, 100780, 70825, 120523, 0, 8815, 0,
- 65046, 0, 42445, 0, 11180, 119318, 119315, 68454, 42485, 0, 0, 8211,
- 42293, 983602, 0, 0, 0, 0, 65385, 100771, 42332, 100773, 78431, 78432,
- 78423, 78430, 78420, 10022, 65387, 78419, 65384, 0, 0, 0, 65386, 0,
- 11248, 0, 43198, 64751, 0, 0, 0, 0, 0, 0, 101102, 7363, 0, 0, 119323,
- 119324, 100752, 100751, 0, 119320, 0, 983632, 0, 8237, 0, 0, 0, 0, 0, 0,
- 9914, 0, 100763, 100762, 120009, 6351, 119993, 92740, 68766, 0, 120010,
- 41243, 0, 74108, 11467, 120165, 119998, 4358, 0, 6353, 0, 0, 0, 93045,
- 1710, 0, 0, 92237, 0, 49, 73871, 120005, 78671, 0, 78672, 9741, 78443,
- 78444, 78441, 43443, 78439, 78440, 69244, 78438, 3470, 0, 0, 0, 0, 0,
- 78445, 0, 1072, 78457, 78452, 78454, 74230, 78451, 78447, 78449, 1080, 0,
- 74100, 0, 1101, 68404, 78458, 78459, 71082, 0, 1086, 1869, 0, 0, 0,
- 65458, 0, 0, 41988, 0, 1091, 0, 7977, 0, 67395, 0, 0, 0, 92758, 0, 0, 0,
- 0, 0, 71255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64582, 0, 0, 70794, 0, 120989,
- 128495, 74106, 0, 66883, 0, 0, 0, 0, 0, 0, 0, 92553, 43752, 110592, 0, 0,
- 120886, 0, 0, 0, 0, 6063, 100857, 101221, 917995, 6053, 74096, 0, 0,
- 74169, 13100, 0, 917999, 0, 917998, 0, 70387, 6055, 7800, 4279, 8490,
- 120114, 120111, 64786, 8602, 120110, 83389, 92204, 0, 0, 74961, 0,
- 120117, 120118, 120099, 120100, 65087, 64402, 3674, 120096, 0, 120094,
- 120107, 120108, 120105, 10107, 42159, 42870, 120101, 69632, 0, 0, 43281,
- 127078, 0, 74098, 0, 0, 126497, 74099, 129056, 0, 0, 0, 121123, 5847,
- 125258, 0, 0, 0, 0, 0, 66592, 64469, 71698, 19966, 0, 42561, 0, 129170,
- 66854, 8120, 75042, 0, 0, 0, 0, 0, 0, 126068, 8369, 0, 0, 122912, 3369,
- 0, 121094, 0, 0, 69238, 10495, 121365, 0, 557, 9457, 0, 0, 121054, 73880,
- 127220, 0, 74937, 74094, 0, 0, 0, 92171, 127219, 128175, 127939, 120424,
- 0, 127214, 2109, 67893, 127211, 69656, 127217, 10604, 127215, 0, 0, 0, 0,
- 126561, 0, 0, 0, 0, 1618, 0, 0, 83175, 10430, 0, 0, 13063, 917585, 0,
- 92982, 113666, 0, 78390, 83489, 12060, 0, 113669, 0, 6329, 0, 0, 0,
- 74395, 2707, 8309, 0, 127054, 78398, 0, 2697, 0, 78396, 127057, 2695, 0,
- 0, 68334, 0, 0, 0, 72325, 2693, 74091, 0, 0, 2703, 113729, 70283, 41918,
- 983168, 127542, 8687, 127543, 12178, 43361, 92540, 64075, 110705, 5248,
- 110703, 120538, 6427, 0, 0, 0, 0, 110710, 0, 74990, 74989, 70703, 127031,
- 0, 9873, 0, 0, 0, 64762, 2053, 0, 6591, 9340, 0, 1589, 0, 296, 67712,
- 128315, 12766, 118931, 74370, 120417, 8922, 128068, 43829, 111202, 74836,
- 0, 12579, 0, 12575, 6416, 5656, 0, 13262, 65590, 5299, 0, 0, 5449, 1252,
- 0, 78404, 0, 74369, 65373, 5295, 0, 121066, 1223, 1642, 78408, 0, 12158,
- 5303, 0, 120546, 41413, 3212, 127025, 3211, 74810, 41425, 127029, 0,
- 74450, 9728, 0, 10924, 74778, 6636, 0, 129884, 0, 0, 129882, 9519, 0, 0,
- 983928, 101110, 68780, 0, 0, 0, 119182, 0, 12104, 77942, 77951, 9004, 0,
- 74249, 10230, 0, 0, 0, 77947, 0, 69679, 121475, 9890, 125049, 12971, 0,
- 92556, 0, 67903, 70051, 983905, 0, 0, 9635, 12600, 0, 0, 0, 118900, 6469,
- 0, 101113, 65304, 4679, 101114, 64300, 64867, 6531, 101118, 101099,
- 101098, 0, 101100, 42916, 0, 0, 0, 0, 0, 0, 4445, 72296, 0, 11533, 0,
- 3416, 129148, 0, 0, 0, 78566, 0, 0, 101091, 0, 101093, 5447, 72140,
- 70752, 101097, 101096, 0, 0, 0, 64448, 0, 43920, 70677, 0, 6232, 101101,
- 101104, 101103, 43608, 101105, 101108, 6538, 4335, 0, 3941, 74986, 11061,
- 0, 74988, 74987, 0, 12155, 128278, 0, 0, 0, 0, 74578, 0, 65832, 0,
+ 41989, 0, 73460, 3418, 3263, 0, 0, 0, 3270, 64539, 11489, 0, 118945,
+ 126220, 0, 127795, 0, 94031, 0, 0, 0, 0, 0, 70512, 983964, 186, 0,
+ 119156, 5770, 13179, 0, 12612, 12949, 64856, 12800, 0, 0, 983151, 11507,
+ 0, 0, 118929, 0, 0, 72141, 0, 73459, 0, 0, 0, 73461, 9254, 66877, 194907,
+ 0, 92338, 5624, 126253, 0, 0, 0, 120472, 120464, 0, 0, 122915, 120462, 0,
+ 1872, 66508, 120467, 41079, 0, 5502, 119330, 41078, 194906, 0, 0, 4511,
+ 68449, 0, 0, 0, 0, 43245, 41083, 68861, 0, 0, 9003, 119959, 0, 5305,
+ 9653, 41081, 43146, 9546, 0, 0, 120478, 0, 65205, 71713, 64063, 120459,
+ 0, 0, 0, 64058, 43101, 43102, 0, 64062, 1028, 64060, 64059, 0, 10567,
+ 110816, 110817, 110814, 110815, 0, 2902, 64043, 64042, 43749, 10756,
+ 64047, 64046, 64045, 64044, 0, 10076, 64040, 64039, 0, 1034, 0, 0, 64034,
+ 64033, 64032, 42735, 64038, 64037, 64036, 64035, 4291, 0, 64015, 64014,
+ 83393, 83394, 83395, 983765, 0, 43090, 83391, 3476, 64013, 64012, 64011,
+ 64010, 64008, 64007, 2003, 7706, 0, 0, 119050, 64009, 204, 0, 0, 4430,
+ 8239, 64003, 10626, 64001, 64057, 13079, 64055, 64054, 0, 0, 43246, 9343,
+ 64049, 64048, 0, 1133, 64053, 64052, 64051, 64050, 0, 0, 0, 66415, 12329,
+ 0, 0, 129698, 1942, 0, 0, 0, 128249, 0, 68291, 10760, 64023, 64022,
+ 64021, 64020, 43670, 77924, 64025, 41412, 78243, 78244, 0, 0, 64019,
+ 64018, 64017, 64016, 0, 0, 78251, 78252, 78248, 78249, 77914, 78247, 0,
+ 917560, 77919, 6788, 13094, 0, 7532, 41414, 0, 3179, 70745, 64769, 0, 0,
+ 71967, 0, 10751, 0, 0, 0, 0, 0, 0, 0, 2008, 64031, 64030, 294, 41874,
+ 83383, 83384, 65929, 83376, 129063, 83379, 83380, 64028, 11396, 64026,
+ 83374, 0, 0, 118795, 71739, 43247, 0, 70153, 0, 0, 0, 0, 0, 0, 0, 0,
+ 7801, 83359, 83361, 128931, 0, 3297, 83356, 83357, 1135, 83350, 83351,
+ 73696, 1995, 7927, 71738, 110742, 2552, 83372, 60, 0, 8649, 83368, 83369,
+ 83370, 83371, 10541, 83365, 78679, 43833, 0, 0, 2013, 83362, 0, 110636,
+ 0, 0, 12832, 110638, 8081, 8362, 120188, 0, 9137, 0, 0, 0, 0, 3466, 0, 0,
+ 1996, 0, 3453, 3412, 0, 2002, 2000, 120176, 0, 0, 0, 0, 1998, 0, 1842, 0,
+ 0, 9628, 68446, 0, 9826, 64502, 1767, 3413, 0, 0, 0, 0, 0, 0, 13108,
+ 44024, 120204, 0, 92693, 0, 0, 0, 70291, 12650, 983208, 0, 68061, 0,
+ 3592, 0, 0, 0, 0, 983956, 0, 66417, 128792, 10742, 0, 0, 1994, 9281,
+ 3296, 64475, 1997, 1895, 128936, 72387, 0, 0, 123184, 72391, 0, 8999, 0,
+ 983633, 0, 66480, 0, 0, 0, 983083, 0, 596, 0, 0, 120216, 8651, 120217, 0,
+ 0, 12995, 0, 0, 70740, 0, 42930, 119955, 64810, 917834, 6825, 0, 917839,
+ 120208, 64275, 120889, 128069, 120210, 6384, 917840, 126477, 0, 67698, 0,
+ 0, 0, 120496, 0, 43412, 0, 0, 0, 0, 0, 120172, 0, 120763, 0, 0, 0,
+ 128343, 1457, 0, 0, 6381, 2815, 0, 65240, 129664, 0, 0, 119522, 70487, 0,
+ 0, 0, 0, 0, 120572, 0, 0, 0, 0, 0, 125253, 0, 0, 0, 120574, 0, 0, 0,
+ 3055, 9852, 0, 65288, 0, 11398, 0, 0, 93016, 0, 0, 603, 128557, 0, 0, 0,
+ 129366, 3350, 0, 0, 917828, 917827, 68428, 917825, 73045, 917831, 917830,
+ 917829, 0, 1919, 0, 110767, 83296, 83297, 83298, 66446, 64141, 8562,
+ 64139, 64138, 64136, 64135, 64134, 64133, 11297, 0, 0, 11966, 64128,
+ 66286, 0, 0, 64132, 10867, 64130, 64129, 0, 43374, 9779, 2764, 0, 0,
+ 9471, 0, 0, 0, 0, 66010, 0, 8857, 128771, 121423, 0, 69223, 0, 194660,
+ 983857, 0, 0, 43984, 0, 0, 0, 0, 0, 0, 10717, 64570, 5630, 0, 64143,
+ 64142, 83300, 67758, 83302, 0, 77930, 0, 0, 0, 11631, 64146, 64145,
+ 64144, 2384, 72801, 127380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122916, 8933,
+ 1601, 917803, 858, 917809, 64109, 64108, 8090, 0, 917812, 917811, 587, 0,
+ 82971, 0, 0, 0, 78214, 2750, 0, 9983, 64158, 64157, 83288, 83289, 83290,
+ 2760, 83284, 83285, 83286, 83287, 64156, 64155, 64154, 72109, 64151,
+ 64150, 12679, 10053, 10421, 0, 64153, 64152, 0, 0, 4839, 0, 0, 4435,
+ 119016, 0, 64126, 64125, 64124, 64123, 129287, 0, 0, 7007, 0, 65443, 0,
+ 0, 64122, 0, 0, 93834, 64117, 64116, 6287, 64114, 64121, 64120, 64119,
+ 64118, 110659, 127842, 1177, 65601, 12322, 64106, 92169, 110654, 64102,
+ 64101, 64100, 64099, 0, 10453, 64104, 64103, 7997, 0, 92534, 0, 8705,
+ 64097, 64096, 9571, 0, 110652, 127398, 12132, 0, 0, 0, 110624, 73841,
+ 83339, 83340, 9056, 0, 129970, 0, 6155, 64068, 64067, 64066, 64065,
+ 64072, 64071, 63, 64069, 127382, 0, 93822, 7257, 64064, 0, 0, 0, 0, 0, 0,
+ 78748, 0, 0, 0, 120519, 0, 66242, 66232, 4333, 9855, 64112, 0, 0, 0, 0,
+ 0, 0, 0, 66222, 0, 0, 0, 0, 69816, 0, 118796, 0, 8708, 0, 64077, 64076,
+ 8996, 4992, 4471, 83343, 64079, 64078, 92179, 0, 0, 129120, 64615, 0, 0,
+ 12075, 42041, 0, 0, 0, 0, 127557, 3123, 0, 983735, 0, 0, 0, 83328, 0,
+ 9223, 0, 83321, 83322, 73797, 83327, 1116, 0, 83319, 7136, 0, 0, 0, 0,
+ 75031, 0, 0, 0, 64092, 43675, 10104, 83338, 83331, 64095, 64094, 8111,
+ 66247, 0, 64089, 64088, 0, 70106, 42236, 11434, 64083, 64082, 43216,
+ 7737, 64087, 64086, 64085, 64084, 0, 0, 0, 4118, 1797, 83312, 0, 0, 46,
+ 83308, 83309, 298, 83303, 72402, 83305, 83306, 0, 0, 0, 128905, 11495, 0,
+ 0, 0, 127377, 194828, 127370, 0, 0, 0, 66239, 74945, 64403, 0, 0, 83314,
+ 0, 0, 65758, 43536, 0, 8544, 0, 0, 0, 0, 194824, 0, 0, 0, 0, 0, 3639,
+ 11242, 194822, 0, 0, 0, 0, 0, 0, 68409, 0, 0, 0, 101121, 0, 0, 0, 128654,
+ 8789, 126248, 0, 0, 0, 0, 0, 0, 0, 65058, 0, 78234, 68064, 0, 66227,
+ 71694, 5573, 118936, 0, 44, 0, 66244, 118907, 0, 66238, 12844, 0, 1622,
+ 129190, 1900, 0, 11458, 0, 0, 6581, 5576, 128303, 0, 126122, 0, 113680,
+ 8947, 0, 113812, 0, 0, 0, 7908, 0, 0, 6579, 0, 0, 0, 0, 2138, 6583, 7761,
+ 0, 0, 0, 66802, 5058, 0, 0, 0, 5057, 125256, 0, 74538, 5054, 0, 0, 0, 0,
+ 0, 0, 658, 3497, 128509, 0, 5061, 5060, 4235, 0, 0, 0, 127757, 4236,
+ 4727, 0, 0, 0, 128791, 0, 7488, 128693, 7476, 0, 125259, 120646, 0, 0, 0,
+ 66209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9341, 119596,
+ 0, 0, 0, 64668, 0, 8125, 0, 6743, 119175, 0, 129441, 83406, 0, 127966,
+ 119235, 74092, 0, 0, 43660, 71125, 0, 127901, 0, 0, 0, 264, 0, 74954, 0,
+ 0, 0, 0, 0, 6019, 0, 0, 129121, 0, 0, 0, 8800, 0, 66376, 0, 120948, 0,
+ 100744, 0, 0, 92333, 725, 68014, 0, 0, 72099, 0, 0, 0, 0, 74899, 0, 0, 0,
+ 110804, 0, 72142, 5074, 5073, 0, 0, 128726, 0, 70723, 5072, 128576,
+ 13098, 72403, 0, 11040, 0, 0, 0, 4929, 0, 0, 0, 0, 0, 0, 0, 0, 67754,
+ 4934, 0, 0, 9758, 0, 0, 70181, 42584, 0, 4329, 0, 4979, 8663, 74521, 0,
+ 983042, 74418, 0, 0, 5071, 0, 3642, 0, 5070, 10042, 0, 3987, 5068,
+ 120209, 8909, 0, 0, 69917, 0, 73981, 983141, 70749, 4531, 120212, 9105,
+ 0, 4921, 121059, 4926, 65544, 113786, 69621, 0, 0, 0, 83269, 0, 120790,
+ 4922, 0, 992, 119568, 4925, 0, 0, 9526, 4920, 128617, 948, 0, 0, 4930, 0,
+ 0, 0, 4933, 0, 0, 0, 4928, 0, 0, 0, 0, 128379, 722, 0, 127483, 127482,
+ 127485, 82997, 127487, 1509, 0, 5468, 66214, 127474, 127477, 1672,
+ 127479, 10864, 127481, 72132, 127467, 72159, 127469, 127468, 127471,
+ 127470, 68336, 82999, 120115, 1679, 120116, 0, 120113, 127462, 127465,
+ 127464, 127110, 120119, 120112, 0, 120109, 6968, 5761, 342, 8553, 0,
+ 8143, 127115, 127114, 127113, 624, 127111, 4057, 0, 5078, 0, 0, 0, 5076,
+ 0, 0, 0, 120097, 685, 9025, 1524, 8003, 0, 5539, 113727, 113795, 120102,
+ 7138, 120552, 0, 0, 0, 113724, 0, 8058, 9732, 0, 5080, 0, 5036, 5035, 0,
+ 42604, 72118, 0, 0, 275, 13291, 69995, 0, 0, 983908, 5033, 0, 0, 4836,
+ 70184, 73792, 0, 0, 0, 120681, 43704, 0, 2274, 119000, 124983, 0, 8858,
+ 6409, 0, 119585, 0, 0, 0, 0, 0, 68442, 0, 3432, 10218, 0, 6094, 11232, 0,
+ 0, 0, 0, 1676, 129157, 0, 0, 5030, 0, 118810, 0, 73869, 0, 0, 69944,
+ 6787, 0, 0, 0, 983595, 10544, 12919, 69425, 92218, 0, 0, 0, 129172, 0,
+ 67703, 0, 0, 0, 0, 0, 72290, 0, 0, 0, 0, 7018, 66241, 0, 0, 0, 0, 0,
+ 74056, 0, 11833, 0, 67975, 65232, 40964, 251, 12686, 7895, 4395, 43538,
+ 0, 0, 0, 78042, 0, 0, 40967, 5879, 0, 0, 0, 0, 0, 65540, 128590, 625, 0,
+ 120194, 1113, 0, 13103, 3630, 67224, 8179, 74264, 67886, 9316, 10980,
+ 2489, 120958, 8150, 1359, 121353, 70464, 127330, 127327, 5042, 5041,
+ 42769, 12084, 11196, 127321, 92279, 72398, 120535, 127317, 127318,
+ 127315, 12283, 127313, 11453, 0, 8795, 66245, 0, 0, 0, 5037, 118864, 0,
+ 0, 67724, 0, 66893, 74006, 0, 8431, 0, 0, 0, 0, 12620, 6826, 73773,
+ 70169, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, 5038, 0, 0, 0, 0, 0, 65908, 0,
+ 0, 0, 0, 0, 65157, 0, 0, 70182, 0, 73909, 4835, 0, 0, 0, 4309, 7127, 0,
+ 0, 0, 1301, 0, 0, 12222, 0, 73813, 711, 92439, 7133, 0, 0, 0, 0, 0, 0, 0,
+ 7661, 72263, 129541, 0, 0, 70453, 7627, 0, 5031, 92340, 42738, 65784, 0,
+ 65782, 3758, 0, 65781, 67865, 0, 2440, 65780, 70795, 8449, 121393,
+ 121479, 0, 2118, 0, 12121, 0, 0, 129510, 2128, 2130, 2131, 2126, 2133, 0,
+ 121250, 2114, 2116, 2455, 0, 2122, 2123, 2124, 2125, 983787, 8714, 0,
+ 2113, 0, 2115, 0, 127907, 43713, 5052, 66220, 66653, 65777, 65778, 65775,
+ 5051, 65773, 1429, 42647, 5050, 65769, 388, 70685, 735, 0, 129899,
+ 128035, 0, 12726, 0, 0, 0, 0, 0, 5109, 5053, 0, 120854, 0, 0, 0, 2470, 0,
+ 0, 1925, 71251, 0, 10971, 113770, 5048, 5047, 0, 0, 194946, 92313,
+ 129972, 0, 0, 8089, 0, 639, 0, 68179, 0, 70180, 0, 4599, 0, 0, 0, 0,
+ 983798, 648, 194948, 65819, 0, 0, 0, 129968, 94017, 0, 11777, 9750,
+ 983122, 0, 0, 92367, 70175, 5046, 66255, 0, 0, 65253, 0, 5045, 0, 1916,
+ 74069, 5044, 92348, 0, 0, 5043, 0, 0, 0, 74004, 9669, 12341, 0, 8402, 0,
+ 0, 70174, 0, 3586, 64508, 92456, 0, 0, 119606, 0, 42628, 10069, 0, 0, 0,
+ 0, 123, 120703, 0, 121326, 0, 10719, 129409, 120444, 10829, 120593, 0,
+ 12130, 0, 0, 0, 0, 3925, 0, 0, 75065, 71112, 92372, 71110, 71111, 0,
+ 120441, 120452, 983178, 0, 0, 0, 0, 0, 0, 0, 0, 69879, 8509, 120449, 0,
+ 0, 0, 120448, 0, 118889, 194858, 0, 0, 0, 66445, 0, 71109, 0, 0, 72425,
+ 0, 12136, 0, 983629, 0, 0, 0, 0, 19922, 41768, 74002, 0, 0, 0, 0, 2458,
+ 0, 0, 0, 41074, 4266, 0, 0, 41077, 0, 9050, 0, 0, 73693, 0, 0, 41075,
+ 2476, 0, 0, 0, 69761, 0, 0, 74202, 78745, 0, 121324, 70152, 66033, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 83106, 0, 0, 0, 43693, 78753, 0, 12194, 66215,
+ 71987, 121273, 67216, 121499, 0, 121118, 0, 78756, 0, 0, 55256, 0, 0, 0,
+ 0, 43876, 0, 0, 0, 12948, 195003, 195002, 195005, 195004, 195007, 195006,
+ 0, 128320, 4287, 70183, 4902, 74020, 0, 0, 0, 1816, 0, 0, 168, 0, 4898,
+ 64298, 0, 78450, 4901, 1821, 0, 43294, 3653, 0, 791, 9162, 6977, 121183,
+ 0, 70160, 0, 73731, 8354, 0, 0, 0, 7557, 0, 0, 8234, 194992, 78456,
+ 194994, 194993, 194996, 101519, 65925, 194997, 195000, 194999, 0, 195001,
+ 0, 64397, 0, 0, 0, 71310, 194977, 194976, 2448, 194978, 194981, 194980,
+ 2452, 194982, 194985, 194984, 78694, 72292, 7845, 0, 78692, 4408, 4122,
+ 6772, 194988, 8723, 72147, 194989, 119302, 11857, 119304, 119303, 2438,
+ 119297, 119300, 119299, 41953, 0, 42135, 373, 119172, 2119, 11457,
+ 129618, 41955, 0, 0, 0, 41952, 0, 0, 2127, 0, 128496, 5202, 0, 78765,
+ 42823, 11291, 0, 0, 12963, 0, 0, 4125, 41958, 12133, 0, 125099, 1271,
+ 129427, 0, 66024, 0, 3864, 127825, 0, 0, 0, 0, 4166, 0, 0, 129917, 7459,
+ 0, 119914, 5384, 0, 0, 70154, 5759, 0, 0, 0, 0, 66744, 0, 120571, 0,
+ 75066, 5552, 0, 0, 127192, 5553, 0, 0, 0, 12906, 0, 0, 110787, 110792,
+ 110788, 5554, 0, 12344, 110786, 101508, 0, 0, 0, 0, 8517, 101509, 0, 0,
+ 66017, 5555, 92317, 0, 983653, 0, 0, 0, 9143, 0, 195067, 67995, 195069,
+ 127162, 195071, 195070, 4577, 64624, 0, 0, 125105, 983661, 4269, 983655,
+ 983652, 983650, 0, 950, 0, 983654, 983664, 983649, 0, 983656, 0, 119121,
+ 0, 5098, 0, 0, 119099, 5097, 0, 9848, 0, 10293, 983645, 72798, 0, 0,
+ 70303, 983665, 5102, 5101, 128370, 0, 8138, 4517, 1932, 5100, 195060,
+ 195059, 1247, 10034, 195064, 5099, 0, 1441, 0, 4724, 650, 0, 73954,
+ 983266, 129348, 195040, 195043, 9031, 195045, 195044, 195047, 8545,
+ 66356, 195048, 0, 9154, 127243, 0, 0, 2676, 2277, 0, 73812, 195051, 8599,
+ 195053, 917918, 195055, 65462, 0, 92524, 195033, 71903, 0, 0, 41199, 0,
+ 11399, 195035, 195034, 195037, 195036, 195039, 195038, 5108, 5107, 0,
+ 66019, 0, 0, 5541, 0, 0, 12613, 5284, 0, 0, 128806, 4275, 74865, 854,
+ 68147, 74381, 120918, 0, 5103, 124986, 64348, 0, 0, 5221, 69811, 0, 0,
+ 121163, 0, 0, 11438, 0, 0, 70158, 0, 0, 5106, 195024, 110749, 65154,
+ 69813, 195028, 5105, 195030, 69720, 195032, 5104, 983761, 0, 3176,
+ 127342, 70149, 932, 0, 6567, 195009, 195008, 195011, 195010, 70145,
+ 43850, 195015, 195014, 195017, 195016, 0, 0, 0, 0, 10670, 0, 13273, 0,
+ 195020, 121370, 8803, 195021, 72431, 8151, 67145, 72436, 0, 12553, 0, 0,
+ 0, 0, 13065, 12570, 0, 0, 0, 983198, 124985, 0, 0, 66466, 0, 0, 194595,
+ 0, 194596, 11351, 43256, 0, 0, 0, 0, 41754, 0, 0, 2720, 194975, 68462,
+ 8232, 120760, 0, 0, 0, 0, 0, 0, 0, 93067, 10834, 0, 0, 119266, 0, 0,
+ 125025, 67679, 0, 75064, 7781, 0, 0, 126076, 0, 12077, 0, 64586, 127164,
+ 42396, 0, 3475, 0, 2479, 0, 0, 0, 120728, 0, 42434, 194960, 194963,
+ 194962, 110611, 67894, 42473, 194966, 110609, 1843, 42283, 0, 0, 0, 0, 0,
+ 194970, 0, 42321, 7284, 194974, 194973, 194950, 194949, 194952, 194951,
+ 0, 194953, 123614, 128645, 0, 0, 0, 0, 74952, 194954, 194957, 194956,
+ 66367, 194958, 41069, 67689, 9988, 0, 41068, 0, 4295, 0, 0, 41951, 67835,
+ 0, 785, 8236, 128647, 9027, 0, 194943, 0, 0, 0, 0, 0, 0, 41071, 41059, 0,
+ 92458, 129442, 0, 0, 0, 123612, 2067, 4310, 0, 123611, 5180, 123605, 0,
+ 73872, 0, 69880, 5184, 42385, 194947, 983755, 128531, 0, 0, 119149, 0,
+ 121334, 0, 983762, 0, 0, 5178, 194929, 120548, 194931, 5188, 194933,
+ 194932, 72245, 194934, 1166, 64429, 42639, 0, 0, 0, 0, 128071, 2442,
+ 10703, 194940, 194939, 194635, 42439, 0, 0, 0, 73933, 983238, 42401, 0,
+ 0, 0, 42288, 0, 0, 0, 13145, 0, 2468, 0, 42327, 0, 0, 0, 42479, 128698,
+ 0, 0, 92580, 0, 74939, 120678, 0, 73733, 0, 0, 2715, 0, 71257, 0, 74114,
+ 0, 0, 0, 0, 0, 66325, 69603, 0, 9240, 0, 0, 129142, 0, 0, 0, 9815, 0,
+ 11246, 0, 73912, 42733, 0, 0, 2480, 0, 0, 0, 6494, 5537, 0, 0, 0, 0,
+ 1211, 0, 121379, 0, 0, 12318, 0, 113796, 0, 0, 0, 0, 0, 64642, 0, 0, 0,
+ 0, 64864, 0, 0, 0, 121212, 0, 0, 3589, 92719, 4035, 6492, 92236, 4265,
+ 6843, 0, 74186, 41778, 113764, 119216, 2488, 0, 4582, 0, 71426, 41777,
+ 12926, 72708, 7528, 10550, 113761, 0, 0, 11439, 0, 0, 64878, 0, 0, 0, 0,
+ 2286, 0, 0, 126646, 127909, 0, 400, 126500, 0, 0, 0, 0, 0, 64827, 0,
+ 74948, 390, 0, 71301, 0, 3473, 0, 0, 66742, 0, 55285, 0, 0, 0, 92206, 0,
+ 0, 8004, 0, 6763, 0, 0, 7006, 0, 0, 6757, 73707, 126648, 0, 6766, 0, 0,
+ 0, 6146, 0, 771, 0, 0, 41318, 0, 42272, 0, 120211, 69559, 0, 953, 12917,
+ 72287, 12300, 0, 11491, 68612, 0, 0, 71321, 7490, 11389, 7489, 3379, 0,
+ 7487, 72716, 7486, 7484, 7482, 6753, 7480, 7479, 7478, 7477, 6501, 7475,
+ 0, 7473, 7472, 2474, 7470, 7468, 124977, 0, 0, 0, 0, 71871, 11834,
+ 128376, 0, 6017, 0, 128763, 0, 0, 0, 119365, 73949, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2472, 69945, 120699, 121133, 2139, 4256, 120776, 74380, 0,
+ 73847, 73844, 0, 0, 101375, 0, 101374, 0, 0, 101347, 7083, 0, 8066, 7678,
+ 0, 121124, 101341, 101373, 101336, 0, 101331, 0, 101304, 0, 101301, 0, 0,
+ 0, 8330, 0, 101298, 101322, 101297, 0, 0, 19934, 0, 1770, 67091, 0,
+ 128671, 129617, 110605, 101355, 73843, 110604, 0, 101362, 67092, 0,
+ 71334, 0, 0, 0, 0, 0, 8162, 0, 5996, 129644, 4903, 0, 0, 43063, 0, 5172,
+ 0, 7139, 0, 127385, 0, 0, 0, 0, 4334, 6324, 41975, 12186, 10674, 12308,
+ 0, 0, 0, 72807, 41977, 68002, 0, 126630, 2018, 121388, 41979, 68003, 0,
+ 68000, 0, 0, 126984, 68001, 9334, 0, 71440, 0, 7975, 0, 0, 0, 66621,
+ 4884, 70367, 983740, 0, 121010, 0, 0, 0, 0, 127799, 0, 0, 0, 463, 0, 0,
+ 69617, 6509, 5460, 0, 0, 0, 0, 42279, 0, 0, 0, 0, 0, 0, 0, 125027, 0,
+ 121119, 0, 0, 0, 5663, 0, 0, 0, 0, 2482, 66202, 0, 0, 42247, 65174,
+ 73925, 0, 100940, 0, 0, 126573, 0, 0, 2460, 0, 11944, 0, 0, 64679,
+ 120835, 127310, 0, 0, 0, 5870, 0, 0, 0, 100931, 539, 100933, 100932,
+ 100935, 9064, 100937, 100936, 100939, 100938, 0, 0, 0, 0, 0, 0, 41295,
+ 100941, 2478, 100943, 4162, 100945, 4260, 12953, 100950, 100949, 129800,
+ 0, 0, 0, 0, 0, 0, 0, 5000, 0, 0, 0, 69672, 71439, 0, 74017, 0, 0, 6709,
+ 0, 0, 983720, 0, 0, 100922, 100921, 10301, 10333, 10397, 100925, 100928,
+ 100927, 0, 0, 0, 127830, 0, 4014, 12842, 0, 67413, 0, 0, 3893, 0, 0,
+ 12210, 0, 42147, 0, 983622, 74465, 0, 0, 0, 0, 0, 0, 0, 0, 110805, 8231,
+ 0, 69946, 41968, 100929, 41973, 12935, 41969, 0, 2453, 0, 0, 78807,
+ 122893, 0, 10349, 10413, 0, 41962, 3202, 119097, 0, 8316, 129174, 0,
+ 7314, 0, 0, 0, 0, 1840, 0, 0, 0, 4883, 100908, 4723, 70099, 100909, 0, 0,
+ 0, 0, 11089, 240, 19906, 0, 0, 0, 43600, 121004, 13134, 93065, 0, 65931,
+ 110649, 110650, 42634, 110648, 0, 121005, 11463, 0, 0, 129861, 10445, 0,
+ 92969, 0, 2614, 0, 129954, 1729, 0, 0, 100911, 0, 43334, 100912, 100915,
+ 100914, 66201, 100916, 69662, 100896, 100899, 100898, 4121, 100900,
+ 70272, 82954, 63879, 0, 70872, 0, 0, 4039, 643, 7726, 120082, 0, 120068,
+ 58, 0, 0, 0, 63872, 0, 0, 100891, 0, 10625, 100892, 100895, 100894, 1416,
+ 120073, 917761, 67393, 0, 0, 0, 6996, 4264, 0, 100902, 66179, 66768,
+ 100903, 13114, 72311, 0, 3094, 0, 0, 127074, 4437, 0, 0, 0, 55280, 42174,
+ 0, 42430, 129796, 72246, 42355, 0, 0, 0, 0, 121251, 127401, 0, 0, 0, 0,
+ 0, 0, 100882, 100881, 74037, 100883, 0, 127099, 0, 0, 0, 0, 0, 69646,
+ 65035, 65034, 11480, 6116, 65039, 65038, 41180, 65036, 194565, 0, 12101,
+ 5822, 0, 0, 0, 0, 11663, 127873, 63854, 119657, 63853, 0, 0, 65810, 4289,
+ 100885, 63896, 100887, 100890, 43621, 0, 0, 0, 129613, 194560, 7461,
+ 73901, 0, 331, 0, 0, 0, 128029, 0, 0, 0, 74629, 0, 0, 0, 41964, 0, 63843,
+ 2084, 41965, 0, 100864, 100863, 100866, 63841, 78549, 41220, 13032,
+ 100869, 8383, 0, 78548, 126102, 0, 0, 1351, 983846, 8698, 100874, 100877,
+ 1930, 100879, 78554, 74360, 100880, 69859, 78551, 0, 0, 129433, 3657, 0,
+ 65202, 6000, 119206, 41901, 0, 0, 41740, 0, 41283, 0, 119267, 0, 0,
+ 100871, 9695, 100873, 7562, 100853, 5170, 100855, 100854, 676, 100856,
+ 100859, 100858, 9978, 100860, 0, 0, 64934, 0, 0, 0, 113714, 113706,
+ 41829, 65886, 5159, 0, 41832, 704, 43077, 0, 120532, 0, 68496, 65065,
+ 41830, 0, 917799, 917798, 917797, 917796, 0, 67864, 113696, 917800,
+ 12336, 4135, 69805, 341, 2727, 4129, 100862, 100861, 0, 64503, 7913, 0,
+ 0, 4131, 63868, 0, 63871, 4133, 63864, 210, 0, 0, 0, 4137, 78505, 78506,
+ 0, 78504, 78830, 0, 0, 43873, 0, 0, 0, 0, 11988, 78510, 195, 68321,
+ 41501, 0, 42031, 0, 13135, 0, 0, 0, 41499, 0, 0, 9680, 41498, 917794,
+ 42025, 78567, 78556, 0, 0, 0, 0, 0, 0, 101074, 120502, 92597, 0, 0,
+ 917784, 7864, 129001, 129704, 917788, 121106, 917786, 917785, 917792,
+ 67816, 129876, 2219, 0, 0, 0, 0, 0, 0, 121277, 0, 917777, 917776, 917775,
+ 69644, 917781, 917780, 917779, 917778, 8668, 0, 121383, 917782, 5999, 0,
+ 0, 129195, 128243, 43653, 1726, 1015, 0, 127247, 0, 0, 64919, 0, 0, 0,
+ 128478, 0, 69791, 927, 0, 0, 42010, 0, 42021, 0, 0, 1299, 12240, 64537,
+ 0, 0, 0, 0, 0, 0, 69454, 0, 0, 0, 122903, 19914, 12179, 0, 2296, 0, 0,
+ 63832, 917773, 0, 63816, 2594, 63823, 63817, 11178, 0, 0, 0, 11265,
+ 68295, 0, 0, 0, 10554, 3972, 0, 121198, 0, 917766, 10816, 917764, 119608,
+ 74374, 917769, 11210, 93069, 8586, 3882, 8532, 120183, 1573, 128648, 0,
+ 69916, 0, 101051, 67719, 0, 0, 0, 0, 0, 0, 0, 128821, 119169, 0, 0, 6626,
+ 42763, 130034, 118884, 128613, 0, 83128, 0, 0, 0, 0, 0, 983561, 0, 0, 0,
+ 9171, 0, 0, 71305, 983900, 121146, 0, 101095, 128881, 119604, 126596, 0,
+ 0, 0, 128214, 42368, 0, 983105, 2271, 41487, 12118, 74124, 68651, 110836,
+ 110833, 3009, 41476, 41489, 69825, 3007, 1448, 3018, 0, 41491, 8521,
+ 5083, 5082, 0, 0, 8519, 0, 3014, 5081, 73926, 0, 128549, 0, 69951, 5079,
+ 129963, 2557, 128086, 65532, 11828, 0, 71297, 11105, 0, 0, 0, 8518,
+ 10779, 0, 71303, 0, 0, 42170, 110769, 0, 629, 1924, 0, 12037, 0, 5987,
+ 8462, 127744, 0, 63933, 69735, 110770, 128295, 63941, 67981, 5077, 0,
+ 10880, 64849, 5075, 0, 128152, 65075, 0, 11007, 983717, 0, 0, 0, 66684,
+ 72331, 3434, 72338, 1904, 0, 0, 72730, 0, 10499, 4507, 9578, 63925, 0,
+ 7979, 0, 9831, 66689, 0, 461, 194834, 0, 4504, 0, 0, 6325, 0, 43021, 0,
+ 0, 55236, 0, 0, 5177, 41324, 12055, 63831, 0, 41327, 12591, 0, 4114, 409,
+ 0, 0, 8948, 41325, 0, 721, 10182, 0, 71311, 0, 0, 94052, 74963, 83503,
+ 5998, 0, 0, 74825, 0, 12587, 0, 78571, 74889, 71328, 128955, 0, 74121,
+ 78570, 78822, 0, 0, 5995, 0, 42568, 0, 0, 63944, 73860, 0, 0, 4167, 0,
+ 43175, 0, 74120, 0, 65076, 938, 73857, 73854, 11737, 9721, 0, 0, 0,
+ 11742, 0, 0, 11493, 12334, 128762, 0, 66623, 0, 9173, 0, 11978, 0, 12734,
+ 113750, 113741, 0, 6759, 0, 0, 0, 126222, 0, 70388, 129093, 13027, 42777,
+ 7683, 1167, 0, 4983, 0, 861, 0, 0, 68297, 0, 43757, 92978, 129298, 0, 0,
+ 0, 0, 70815, 9616, 0, 0, 12816, 43759, 0, 12710, 68674, 12721, 4101,
+ 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 42693, 0, 121088, 0, 0,
+ 917915, 0, 42835, 0, 0, 0, 0, 0, 12712, 7105, 127807, 65060, 66875, 9900,
+ 0, 0, 0, 121482, 119265, 0, 64778, 12585, 0, 0, 0, 0, 0, 0, 77826, 0,
+ 4900, 125245, 0, 0, 0, 4119, 74768, 8971, 0, 0, 0, 78594, 41132, 9245,
+ 73060, 0, 4138, 194841, 0, 0, 0, 77827, 0, 13054, 0, 0, 128416, 110760,
+ 0, 0, 3948, 128878, 0, 0, 0, 1680, 0, 78589, 0, 0, 120032, 0, 0, 0, 0,
+ 74833, 74190, 5993, 42709, 0, 12706, 77846, 1893, 0, 63915, 0, 0, 110744,
+ 129826, 0, 63997, 120018, 63996, 3077, 0, 0, 1512, 0, 12589, 41479, 0, 0,
+ 0, 0, 11831, 120727, 0, 41481, 0, 118912, 0, 3090, 0, 3086, 1664, 1850,
+ 0, 3079, 0, 0, 94080, 127140, 0, 0, 74401, 0, 917555, 0, 0, 0, 0, 0,
+ 11526, 63985, 5864, 0, 63992, 0, 63991, 0, 5480, 7858, 0, 4116, 78149, 0,
+ 0, 0, 63907, 0, 0, 126131, 63905, 119601, 0, 983190, 0, 119666, 0, 0,
+ 7534, 507, 91, 2042, 120775, 0, 0, 66028, 118811, 41844, 70680, 774, 0,
+ 0, 0, 5994, 0, 12733, 0, 0, 0, 72297, 0, 0, 0, 0, 6026, 0, 0, 0, 162, 0,
+ 125247, 78151, 78152, 983590, 92709, 0, 68304, 0, 0, 0, 66658, 0, 0, 0,
+ 0, 121511, 2226, 121512, 129349, 10492, 0, 121510, 0, 43119, 0, 0, 0,
+ 66192, 0, 0, 4899, 12729, 0, 0, 0, 0, 4103, 0, 129842, 77851, 69429,
+ 129046, 0, 12859, 70087, 0, 0, 0, 0, 0, 0, 0, 0, 65264, 5146, 0, 194694,
+ 71684, 0, 0, 0, 983844, 0, 71688, 78463, 5147, 125019, 0, 74524, 71682,
+ 128435, 0, 194692, 5991, 3445, 0, 4976, 66193, 0, 0, 0, 0, 128309,
+ 128594, 129819, 69579, 0, 63855, 0, 10138, 0, 0, 8897, 0, 75027, 0,
+ 120931, 77862, 65836, 0, 0, 77860, 0, 0, 1123, 4124, 41553, 77903, 0,
+ 71680, 121386, 398, 0, 129035, 41551, 0, 0, 0, 41550, 9970, 0, 93062,
+ 42392, 1305, 78901, 0, 129292, 0, 7346, 41464, 0, 0, 0, 41465, 983567,
+ 8528, 9149, 0, 63955, 165, 3024, 11852, 119163, 0, 9093, 0, 9147, 0, 0,
+ 110989, 9148, 0, 4096, 53, 8296, 0, 71352, 0, 9594, 0, 0, 63952, 0,
+ 10997, 0, 0, 5805, 0, 0, 0, 42176, 71455, 74601, 129604, 10591, 0, 0, 0,
+ 0, 0, 0, 0, 0, 92475, 0, 0, 42379, 0, 0, 9220, 0, 121425, 0, 0, 4132, 0,
+ 0, 11239, 0, 0, 74837, 0, 66408, 0, 8055, 0, 0, 0, 63962, 74042, 8924,
+ 43123, 5988, 0, 63969, 0, 42718, 8788, 1357, 77872, 65743, 0, 8774, 0, 0,
+ 0, 0, 92748, 120598, 128234, 9564, 0, 0, 119124, 0, 121241, 110983,
+ 92975, 3121, 0, 0, 0, 70081, 0, 0, 0, 0, 0, 64851, 0, 0, 73085, 119532,
+ 0, 0, 0, 0, 1198, 69293, 66708, 64619, 0, 64663, 93991, 0, 0, 2101, 1398,
+ 0, 92554, 0, 0, 92684, 11406, 101588, 12127, 0, 840, 0, 0, 7101, 120938,
+ 0, 0, 12880, 0, 43104, 0, 0, 0, 2117, 0, 0, 0, 0, 0, 0, 0, 7769, 129867,
+ 92413, 0, 0, 0, 0, 40986, 83117, 0, 0, 4127, 0, 0, 0, 0, 0, 0, 70738, 0,
+ 129466, 0, 0, 0, 0, 119081, 0, 10581, 0, 4533, 0, 128941, 6490, 0, 12038,
+ 0, 0, 68225, 0, 0, 69704, 0, 1948, 119007, 129607, 101586, 0, 0, 0,
+ 120802, 0, 9494, 0, 0, 0, 4843, 0, 74772, 4098, 0, 0, 0, 3436, 0, 127279,
+ 12817, 0, 126607, 0, 0, 0, 0, 74433, 0, 0, 0, 0, 121296, 65916, 0, 0,
+ 121458, 0, 129107, 93815, 0, 73743, 0, 0, 983132, 67676, 0, 0, 74627,
+ 128928, 0, 127892, 0, 71326, 67222, 0, 75013, 92435, 0, 128500, 0, 0,
+ 9613, 43425, 4526, 121415, 0, 64520, 71336, 0, 0, 55278, 10228, 64957, 0,
+ 0, 3807, 2081, 66640, 0, 0, 0, 0, 119269, 0, 128688, 0, 128142, 1451, 0,
+ 0, 4134, 0, 74847, 0, 74793, 0, 0, 74295, 9960, 1201, 0, 12846, 121271,
+ 0, 11919, 64962, 0, 43739, 0, 66358, 0, 0, 0, 43679, 72284, 72289, 0,
+ 129523, 1253, 983851, 65766, 500, 65764, 65765, 65762, 65763, 65760,
+ 65761, 70334, 983848, 9821, 11702, 110630, 110631, 110628, 110629,
+ 128481, 0, 7533, 66717, 92500, 92305, 0, 0, 69277, 127758, 71332, 0, 0,
+ 0, 0, 11188, 0, 4112, 0, 0, 12890, 0, 0, 9915, 0, 68423, 0, 0, 2876, 0,
+ 0, 0, 0, 7382, 92415, 0, 128132, 0, 0, 0, 0, 69561, 127915, 0, 7003, 0,
+ 0, 7704, 0, 0, 0, 4123, 0, 0, 9977, 0, 0, 65759, 0, 0, 128266, 9808, 0,
+ 92611, 4126, 0, 9521, 9589, 64755, 0, 0, 0, 69948, 0, 92368, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 93814, 0, 0, 92234, 0, 10693, 0, 0, 65897, 4058, 0, 0,
+ 64660, 0, 0, 0, 983711, 1139, 43298, 0, 71333, 8970, 0, 9934, 0, 11023,
+ 128020, 42522, 0, 0, 0, 78899, 3057, 128113, 7349, 69959, 128722, 68065,
+ 110813, 0, 128090, 67201, 0, 0, 0, 9528, 0, 0, 0, 9102, 627, 0, 6273,
+ 129496, 0, 0, 983210, 92966, 43300, 0, 983721, 11696, 127343, 1018,
+ 65554, 0, 74338, 0, 7645, 0, 128321, 0, 0, 0, 0, 73814, 11544, 12563,
+ 10728, 0, 0, 127340, 43311, 64966, 0, 0, 0, 118946, 0, 0, 74779, 0, 185,
+ 65085, 74533, 0, 0, 7535, 0, 42525, 0, 9749, 41701, 6131, 0, 4117,
+ 129062, 126988, 0, 92429, 65693, 0, 73445, 0, 69695, 0, 0, 0, 0, 0, 0, 0,
+ 1184, 0, 815, 0, 0, 0, 0, 0, 71325, 0, 0, 64683, 983797, 0, 127959, 0, 0,
+ 0, 0, 0, 0, 0, 68166, 0, 0, 0, 0, 66799, 0, 128912, 0, 5142, 0, 69643, 0,
+ 0, 83367, 93975, 0, 0, 0, 123209, 0, 0, 0, 74855, 121330, 0, 0, 0, 0,
+ 10940, 66030, 0, 70385, 0, 0, 2652, 120527, 0, 129946, 0, 126508, 0, 0,
+ 0, 0, 0, 0, 1828, 0, 128357, 0, 8531, 0, 74799, 12324, 72434, 65238,
+ 68374, 0, 65573, 0, 68308, 68679, 12904, 43445, 0, 0, 0, 11247, 0, 0,
+ 41426, 0, 0, 0, 0, 0, 67250, 69451, 83354, 71337, 0, 0, 0, 0, 0, 0, 637,
+ 0, 0, 0, 121178, 0, 0, 74474, 71306, 0, 7298, 128256, 0, 0, 0, 0, 8210,
+ 0, 0, 0, 2046, 0, 0, 0, 70333, 0, 1506, 69926, 0, 83353, 0, 12651, 0, 0,
+ 0, 12058, 120626, 72111, 7803, 0, 0, 65592, 118844, 0, 0, 355, 9719, 0,
+ 118961, 0, 121077, 127246, 0, 42178, 0, 69760, 42571, 0, 0, 0, 0, 0, 0,
+ 127176, 3178, 0, 0, 92704, 83381, 9080, 120943, 67697, 0, 121342, 129875,
+ 0, 71485, 0, 917837, 0, 0, 78157, 0, 0, 0, 0, 0, 71313, 0, 0, 128212, 0,
+ 72238, 67858, 0, 0, 0, 0, 0, 0, 0, 10770, 118994, 0, 465, 0, 0, 74348, 0,
+ 0, 0, 0, 0, 0, 0, 10930, 0, 0, 0, 119091, 69388, 983614, 129918, 0, 0, 0,
+ 0, 0, 10092, 0, 0, 0, 0, 0, 1766, 11282, 11996, 66644, 4547, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 120906, 4345, 0, 0, 128947, 0, 0, 0, 0, 0, 5382, 0, 0, 0,
+ 0, 0, 5406, 43127, 120007, 0, 3590, 129874, 0, 0, 0, 42016, 0, 0, 121002,
+ 0, 7742, 0, 66562, 71323, 0, 0, 5310, 0, 128173, 0, 43594, 0, 128260,
+ 66723, 0, 73816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1326, 128723, 0, 0, 74519, 0,
+ 0, 0, 0, 71308, 0, 5410, 5783, 0, 8403, 5400, 120526, 0, 128863, 0, 0, 0,
+ 64412, 0, 0, 5587, 42865, 71858, 0, 0, 129854, 0, 113785, 0, 120755, 0,
+ 69738, 0, 74867, 10461, 12103, 0, 0, 70701, 0, 0, 0, 0, 0, 94009, 0, 0,
+ 0, 8816, 41515, 0, 11802, 0, 7585, 910, 0, 0, 0, 3658, 83386, 120525, 0,
+ 7617, 0, 12888, 0, 0, 64631, 0, 41514, 11097, 5703, 0, 41517, 41504,
+ 41519, 0, 70104, 0, 65864, 0, 120533, 0, 121037, 0, 0, 43553, 120774, 0,
+ 0, 0, 0, 0, 1578, 0, 43449, 0, 0, 8225, 121191, 94024, 72799, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 110655, 0, 110656, 121247, 72213, 0, 110658, 0,
+ 74997, 0, 3195, 10999, 983570, 7897, 0, 1203, 74396, 0, 64544, 0, 0, 0,
+ 2877, 0, 0, 0, 121112, 0, 0, 128977, 119607, 0, 0, 0, 0, 983623, 0, 0, 0,
+ 0, 0, 0, 0, 0, 983078, 0, 0, 0, 9939, 0, 0, 0, 0, 0, 0, 0, 10714, 0, 0,
+ 0, 0, 0, 67738, 0, 74038, 0, 42897, 0, 0, 0, 0, 0, 0, 7730, 0, 0, 0,
+ 11163, 0, 0, 0, 113701, 4966, 128802, 70674, 129468, 123207, 3841, 0, 0,
+ 983227, 77886, 0, 4972, 0, 64699, 0, 0, 0, 0, 0, 12705, 10203, 9608, 0,
+ 0, 11962, 121397, 0, 1196, 67684, 0, 777, 0, 0, 65271, 0, 0, 0, 0, 64824,
+ 983194, 0, 9454, 63778, 8658, 0, 0, 2705, 0, 64894, 0, 0, 11986, 92636,
+ 0, 8280, 0, 2701, 0, 0, 0, 0, 0, 9809, 0, 0, 0, 0, 0, 63761, 1748, 0,
+ 65719, 121078, 0, 0, 0, 55244, 3061, 0, 63765, 63787, 0, 41520, 0, 7694,
+ 0, 8896, 63768, 55282, 0, 127781, 0, 0, 63807, 1591, 0, 6386, 119143, 0,
+ 0, 0, 983199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68289, 0, 0, 7624, 0, 10996,
+ 92247, 10609, 0, 127181, 10987, 0, 70370, 3894, 0, 0, 0, 0, 493, 0, 0,
+ 1717, 12228, 479, 917941, 129347, 129473, 917935, 917939, 917924, 917932,
+ 92303, 64315, 0, 0, 83522, 6233, 42681, 83525, 83518, 83519, 64911,
+ 83521, 0, 0, 83516, 83517, 129843, 8378, 11632, 0, 0, 7323, 0, 120771, 0,
+ 0, 0, 0, 120904, 83526, 0, 128710, 92672, 0, 0, 0, 0, 0, 0, 0, 63806,
+ 63800, 0, 0, 0, 63798, 63803, 244, 11542, 0, 0, 73761, 0, 12669, 120310,
+ 0, 0, 0, 0, 120680, 71908, 0, 0, 8612, 0, 0, 0, 0, 0, 64662, 125056,
+ 1360, 248, 0, 63797, 0, 63794, 0, 7292, 983666, 63756, 42786, 74957, 0,
+ 12663, 0, 0, 0, 0, 0, 0, 0, 4579, 0, 0, 0, 0, 0, 0, 71130, 65545, 9602,
+ 8623, 0, 128052, 0, 0, 0, 0, 0, 0, 0, 659, 6098, 0, 12234, 83511, 83512,
+ 8311, 83514, 7669, 83508, 83509, 83510, 0, 0, 0, 0, 983932, 0, 0, 2323,
+ 0, 2319, 77917, 120900, 77916, 2311, 83077, 4415, 1586, 68050, 0, 128724,
+ 83020, 2309, 83022, 8173, 83013, 83014, 83015, 83016, 0, 83010, 69275,
+ 83012, 9397, 0, 9395, 9396, 9393, 9394, 9391, 9392, 9389, 6209, 9387,
+ 9388, 9385, 9386, 9383, 9384, 0, 0, 0, 0, 0, 11259, 0, 0, 0, 2313, 0,
+ 119661, 0, 0, 0, 0, 10570, 65776, 110968, 0, 83006, 83007, 11998, 83009,
+ 83002, 83003, 83004, 66406, 0, 128780, 83000, 11818, 9381, 9382, 9379,
+ 9380, 9377, 9378, 9375, 9376, 1683, 9374, 0, 9372, 0, 0, 0, 0, 127801, 0,
+ 42029, 11079, 0, 43451, 42032, 0, 0, 0, 0, 5005, 0, 0, 42030, 5007,
+ 78828, 126210, 0, 4951, 110776, 0, 110775, 0, 43309, 121222, 92172, 0,
+ 92334, 0, 9548, 0, 119138, 71896, 0, 0, 0, 0, 0, 0, 65691, 65580, 64361,
+ 10496, 0, 0, 0, 917975, 0, 0, 41046, 0, 0, 0, 13177, 0, 64703, 0, 43499,
+ 3389, 10589, 0, 11208, 120719, 78395, 73964, 78393, 78392, 78391, 11314,
+ 8281, 113732, 113667, 113745, 9076, 8862, 69743, 41052, 78397, 64766,
+ 69821, 0, 0, 0, 82992, 82994, 10671, 82998, 82987, 82989, 82990, 6303,
+ 113664, 498, 64471, 82986, 129901, 0, 9349, 0, 0, 0, 8031, 2414, 0,
+ 128999, 3231, 0, 6422, 0, 0, 119339, 2537, 78405, 41429, 78403, 78401,
+ 78399, 0, 0, 41433, 4719, 41431, 0, 78411, 5211, 41428, 78407, 82983,
+ 1772, 0, 0, 82979, 66850, 64812, 82982, 82975, 68767, 82977, 82978, 0, 0,
+ 0, 0, 41064, 70368, 9663, 66838, 129381, 12304, 125113, 0, 41062, 66847,
+ 0, 0, 41061, 70454, 0, 127187, 83049, 83050, 41509, 83054, 83045, 83046,
+ 83047, 83048, 0, 43184, 41507, 1958, 0, 66816, 41506, 0, 0, 0, 120717, 0,
+ 0, 0, 74349, 72113, 8008, 0, 0, 0, 65083, 6839, 0, 126517, 73803, 127055,
+ 127056, 3508, 127058, 127059, 78038, 0, 120932, 0, 6411, 128115, 0, 0,
+ 128832, 100930, 0, 0, 0, 0, 0, 0, 128546, 0, 0, 120914, 0, 0, 0, 0,
+ 917822, 128810, 983657, 65599, 0, 9966, 12607, 4948, 128070, 0, 128149,
+ 0, 0, 6207, 0, 6117, 73916, 0, 0, 0, 0, 68244, 41511, 0, 129489, 127304,
+ 0, 121289, 0, 0, 83031, 83032, 0, 41556, 0, 0, 0, 128571, 73766, 0, 0, 0,
+ 41510, 7953, 0, 0, 41513, 0, 0, 0, 83038, 83039, 83040, 83041, 83034,
+ 83035, 848, 9868, 983149, 6424, 0, 83033, 0, 0, 0, 0, 0, 0, 893, 64576,
+ 13299, 0, 0, 71998, 71447, 0, 0, 0, 0, 8903, 0, 0, 0, 8099, 0, 0, 0, 0,
+ 0, 0, 0, 0, 113713, 0, 0, 0, 0, 0, 83027, 41483, 83029, 83030, 83023,
+ 83024, 69436, 83026, 194756, 41485, 194758, 194757, 194760, 41482, 42737,
+ 64588, 0, 127787, 0, 10014, 0, 0, 194763, 194762, 68785, 194764, 194767,
+ 194766, 0, 0, 0, 11377, 0, 0, 983792, 0, 0, 0, 9776, 0, 93824, 5215,
+ 194750, 13227, 8758, 194751, 128744, 0, 0, 5363, 12957, 0, 0, 129051,
+ 129526, 6421, 0, 0, 121304, 0, 0, 0, 0, 92625, 119070, 67895, 983943, 0,
+ 68608, 6482, 0, 0, 11945, 0, 0, 8838, 0, 4025, 10709, 0, 2108, 0, 73929,
+ 0, 0, 10617, 194737, 128031, 194739, 194738, 68614, 194740, 68611, 9924,
+ 129952, 194744, 0, 0, 0, 3277, 0, 4947, 41055, 0, 194722, 129930, 194724,
+ 194723, 64626, 194725, 42266, 194727, 8371, 194729, 127028, 12806, 41492,
+ 0, 0, 73930, 194731, 194730, 41054, 1078, 194735, 194734, 41057, 0, 0, 0,
+ 0, 0, 92210, 73009, 0, 41496, 0, 9165, 1572, 0, 129712, 0, 128635, 9215,
+ 9330, 129809, 10032, 41745, 43183, 6401, 5831, 0, 0, 0, 8056, 0, 65681,
+ 92377, 0, 0, 0, 121048, 0, 118887, 6408, 0, 0, 5661, 82972, 82973, 3603,
+ 0, 82967, 3548, 82969, 82970, 0, 82964, 82965, 9918, 118787, 11321, 0, 0,
+ 0, 128992, 0, 0, 0, 0, 0, 0, 41558, 41471, 0, 8158, 41561, 41472, 0, 0,
+ 194672, 43762, 77927, 6701, 41559, 1896, 66256, 66248, 194680, 5665, 0,
+ 194681, 0, 0, 0, 74352, 0, 5664, 127895, 194682, 12310, 5662, 194687,
+ 194686, 73924, 1121, 82953, 82955, 0, 74378, 0, 0, 74966, 0, 71892, 0,
+ 69413, 194667, 8627, 194669, 10110, 194671, 42024, 6420, 42028, 0, 10509,
+ 2795, 73923, 0, 69231, 0, 6275, 93957, 917927, 124972, 194655, 127786,
+ 6423, 0, 0, 0, 68526, 12823, 0, 0, 42026, 42017, 0, 7524, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 12691, 68072, 42722, 69877, 82956, 78655, 78661, 82959,
+ 78662, 41265, 41065, 1795, 0, 118791, 10587, 0, 917807, 0, 194640, 0,
+ 12946, 194641, 71921, 194643, 9169, 70372, 194648, 194647, 68202, 194649,
+ 73990, 65111, 0, 748, 41067, 6234, 194651, 9990, 72795, 194652, 194629,
+ 194628, 194631, 194630, 67896, 194632, 0, 3593, 82948, 82949, 82950,
+ 82951, 82944, 69729, 82946, 82947, 194638, 194637, 0, 581, 0, 42929,
+ 7944, 0, 0, 0, 0, 0, 0, 72143, 0, 10119, 6415, 42893, 0, 69702, 0, 0,
+ 11375, 0, 0, 0, 412, 92765, 42928, 42880, 43587, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 65854, 92508, 65811, 75024, 194624, 194627, 9344, 8826, 92916, 0,
+ 125090, 74781, 0, 0, 0, 0, 0, 0, 127783, 0, 0, 0, 0, 10133, 92755, 0, 0,
+ 0, 0, 78414, 78413, 118950, 74011, 0, 0, 121080, 0, 1908, 127378, 4918,
+ 0, 0, 70709, 67825, 0, 0, 10811, 78412, 11339, 4914, 0, 0, 118971, 4917,
+ 70686, 0, 0, 4912, 69722, 73845, 0, 0, 129527, 0, 0, 0, 118986, 0, 0,
+ 74317, 0, 8319, 194714, 194717, 10960, 72196, 8305, 12573, 983620, 72193,
+ 0, 13202, 0, 12582, 0, 72198, 69856, 0, 0, 78598, 0, 72195, 0, 65802,
+ 74822, 7698, 12708, 74045, 0, 0, 70460, 4913, 127990, 0, 0, 0, 0, 12728,
+ 129980, 0, 0, 101281, 0, 130038, 0, 101283, 0, 12588, 8821, 6153, 194705,
+ 78900, 194707, 194710, 194709, 194712, 194711, 118854, 194713, 651, 0, 0,
+ 0, 0, 0, 78468, 78469, 69433, 78467, 69614, 74905, 194695, 78461, 194697,
+ 194696, 0, 4716, 43277, 0, 78474, 78475, 128592, 120928, 194700, 55264,
+ 194702, 12732, 0, 12707, 0, 0, 0, 0, 121417, 8479, 4151, 0, 0, 0, 0, 0,
+ 0, 0, 0, 113799, 0, 74050, 0, 0, 0, 0, 0, 129467, 12278, 0, 129507, 0,
+ 2700, 12576, 7842, 0, 0, 0, 2699, 0, 0, 2985, 0, 126475, 0, 129873,
+ 119314, 0, 119312, 9827, 101292, 119311, 101291, 119309, 119306, 11481,
+ 0, 119305, 0, 35, 78481, 78482, 66694, 78480, 78477, 78478, 0, 0, 64257,
+ 0, 0, 0, 78485, 78486, 78483, 4272, 0, 0, 40965, 0, 12704, 78487, 983568,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 5244, 4189, 94108, 0, 127948, 4188, 1879, 0,
+ 0, 0, 43743, 71974, 8873, 2279, 0, 0, 0, 12574, 12735, 92749, 92753,
+ 983902, 0, 0, 75001, 0, 0, 0, 12578, 12720, 128628, 101088, 0, 12346,
+ 128596, 101089, 0, 0, 7251, 0, 0, 118850, 73025, 0, 0, 0, 0, 0, 12564,
+ 66457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101131, 0, 41564, 10976, 0, 121223,
+ 0, 0, 10054, 9197, 120618, 0, 9012, 65737, 74420, 0, 13215, 12730, 0, 0,
+ 0, 0, 816, 0, 101123, 0, 83191, 0, 0, 92752, 101120, 4715, 94107, 94106,
+ 71075, 0, 0, 0, 67729, 0, 307, 0, 9585, 0, 0, 0, 101255, 0, 125267, 0,
+ 70727, 65567, 101238, 75006, 101231, 983890, 0, 12236, 41419, 101259,
+ 194621, 101248, 75003, 194622, 73675, 120957, 41421, 75005, 4462, 0,
+ 126599, 983892, 821, 0, 2498, 5800, 100834, 100833, 1760, 94019, 4469,
+ 64377, 100840, 100839, 0, 757, 1185, 0, 100841, 0, 10628, 100842, 68849,
+ 100844, 43971, 100846, 100849, 64763, 0, 7713, 0, 0, 0, 4380, 194608,
+ 128073, 194610, 194609, 194612, 862, 65626, 194613, 65627, 65629, 5137,
+ 194617, 0, 0, 0, 65069, 7566, 64688, 67143, 194592, 100823, 100822,
+ 100825, 4748, 92228, 100826, 100829, 42260, 129494, 64107, 0, 0, 0, 0,
+ 128189, 0, 194604, 13137, 8775, 127945, 123633, 194607, 0, 8410, 4454,
+ 194585, 0, 92542, 4449, 92330, 127064, 75022, 92761, 70664, 194589, 339,
+ 194591, 194590, 0, 70662, 0, 100830, 41543, 0, 0, 0, 41542, 127066, 8916,
+ 6705, 0, 129296, 0, 0, 0, 0, 0, 41548, 6729, 119329, 0, 7348, 0, 0, 7537,
+ 0, 11819, 0, 0, 123624, 71269, 0, 7344, 100808, 129073, 9780, 0, 11117,
+ 74993, 0, 194578, 10483, 194580, 194579, 194582, 194581, 68781, 125114,
+ 100820, 100819, 0, 4211, 1259, 7517, 0, 0, 194561, 70827, 194563, 194562,
+ 641, 5219, 94034, 194566, 11064, 194568, 0, 129820, 0, 0, 0, 0, 100812,
+ 100811, 100814, 100813, 100816, 100815, 100818, 100817, 100798, 100797,
+ 41410, 100799, 64262, 0, 41407, 75000, 0, 0, 93812, 0, 0, 72803, 74999,
+ 78897, 0, 0, 67675, 0, 0, 0, 0, 43647, 0, 0, 100792, 100791, 100794,
+ 100793, 100796, 100795, 0, 74630, 11933, 0, 0, 41903, 67892, 11001,
+ 100801, 42255, 100803, 100802, 100805, 41905, 100807, 100806, 10775,
+ 9793, 0, 0, 74452, 0, 983063, 42535, 0, 64529, 41408, 42853, 0, 0, 42674,
+ 118915, 0, 0, 983788, 0, 70838, 0, 0, 0, 64506, 0, 66738, 4747, 100783,
+ 69844, 100785, 5832, 0, 0, 5141, 42600, 0, 0, 0, 0, 0, 0, 93790, 0, 7657,
+ 0, 71132, 74137, 0, 128362, 73682, 73681, 859, 0, 0, 0, 6059, 126985,
+ 55235, 0, 0, 0, 0, 0, 100787, 11488, 72838, 100788, 0, 100790, 10558, 0,
+ 0, 0, 126090, 71069, 0, 0, 1788, 0, 0, 0, 0, 119571, 917961, 9028, 0,
+ 69234, 73665, 0, 9905, 128485, 41242, 70086, 0, 74109, 100765, 100764,
+ 100767, 100766, 70830, 83184, 70082, 3940, 0, 43754, 0, 128188, 8665, 0,
+ 0, 0, 1653, 100775, 42406, 100777, 100780, 70825, 120523, 0, 8815, 0,
+ 65046, 0, 42445, 0, 11180, 119318, 119315, 68454, 42485, 0, 0, 8211,
+ 42293, 983602, 0, 0, 0, 0, 65385, 100771, 42332, 100773, 78431, 78432,
+ 78423, 78430, 78420, 10022, 65387, 78419, 65384, 0, 0, 0, 65386, 0,
+ 11248, 0, 43198, 64751, 0, 0, 0, 0, 0, 0, 101102, 7363, 0, 0, 119323,
+ 119324, 100752, 100751, 0, 119320, 0, 983632, 0, 8237, 0, 0, 0, 0, 0, 0,
+ 9914, 0, 100763, 100762, 120009, 6351, 119993, 92740, 68766, 0, 120010,
+ 41243, 0, 74108, 11467, 120165, 119998, 4358, 0, 6353, 0, 0, 0, 93045,
+ 1710, 0, 0, 92237, 0, 49, 73871, 120005, 78671, 0, 78672, 9741, 78443,
+ 78444, 78441, 43443, 78439, 78440, 69244, 78438, 3470, 0, 0, 0, 0, 0,
+ 78445, 0, 1072, 78457, 78452, 78454, 74230, 78451, 78447, 78449, 1080, 0,
+ 74100, 0, 1101, 68404, 78458, 78459, 71082, 0, 1086, 1869, 0, 0, 0,
+ 65458, 0, 0, 41988, 0, 1091, 0, 7977, 0, 67395, 0, 0, 0, 92758, 0, 0, 0,
+ 0, 0, 71255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64582, 0, 0, 70794, 0, 120989,
+ 128495, 74106, 0, 66883, 0, 0, 0, 0, 0, 0, 0, 92553, 43752, 110592, 0, 0,
+ 120886, 0, 0, 0, 0, 6063, 100857, 101221, 917995, 6053, 74096, 0, 0,
+ 74169, 13100, 0, 917999, 0, 917998, 0, 70387, 6055, 7800, 4279, 8490,
+ 120114, 120111, 64786, 8602, 120110, 83389, 92204, 0, 0, 74961, 0,
+ 120117, 120118, 120099, 120100, 65087, 64402, 3674, 120096, 0, 120094,
+ 120107, 120108, 120105, 10107, 42159, 42870, 120101, 69632, 0, 0, 43281,
+ 127078, 0, 74098, 0, 0, 126497, 74099, 129056, 0, 0, 0, 121123, 5847,
+ 125258, 0, 0, 0, 0, 0, 66592, 64469, 71698, 19966, 0, 42561, 0, 129170,
+ 66854, 8120, 75042, 0, 0, 0, 0, 0, 0, 126068, 8369, 0, 0, 122912, 3369,
+ 0, 121094, 0, 0, 69238, 10495, 121365, 0, 557, 9457, 0, 0, 121054, 73880,
+ 127220, 0, 74937, 74094, 0, 0, 0, 92171, 127219, 128175, 127939, 120424,
+ 0, 127214, 2109, 67893, 127211, 69656, 127217, 10604, 127215, 0, 0, 0, 0,
+ 126561, 0, 0, 0, 0, 1618, 0, 0, 83175, 10430, 0, 0, 13063, 917585, 0,
+ 92982, 113666, 0, 78390, 83489, 12060, 0, 113669, 0, 6329, 0, 0, 0,
+ 74395, 2707, 8309, 0, 127054, 78398, 0, 2697, 0, 78396, 127057, 2695, 0,
+ 0, 68334, 0, 0, 0, 72325, 2693, 74091, 0, 0, 2703, 113729, 70283, 41918,
+ 983168, 127542, 8687, 127543, 12178, 43361, 92540, 64075, 110705, 5248,
+ 110703, 120538, 6427, 0, 0, 0, 0, 110710, 0, 74990, 74989, 70703, 127031,
+ 0, 9873, 0, 0, 0, 64762, 2053, 0, 6591, 9340, 0, 1589, 0, 296, 67712,
+ 128315, 12766, 118931, 74370, 120417, 8922, 128068, 43829, 111202, 74836,
+ 0, 12579, 0, 12575, 6416, 5656, 0, 13262, 65590, 5299, 0, 0, 5449, 1252,
+ 0, 78404, 0, 74369, 65373, 5295, 0, 121066, 1223, 1642, 78408, 0, 12158,
+ 5303, 0, 120546, 41413, 3212, 127025, 3211, 74810, 41425, 127029, 0,
+ 74450, 9728, 0, 10924, 74778, 6636, 0, 129884, 0, 0, 129882, 9519, 0, 0,
+ 983928, 101110, 68780, 0, 0, 0, 119182, 0, 12104, 77942, 77951, 9004, 0,
+ 74249, 10230, 0, 0, 0, 77947, 0, 69679, 121475, 9890, 125049, 12971, 0,
+ 92556, 0, 67903, 70051, 983905, 0, 0, 9635, 12600, 0, 0, 0, 118900, 6469,
+ 0, 101113, 65304, 4679, 101114, 64300, 64867, 6531, 101118, 101099,
+ 101098, 0, 101100, 42916, 0, 0, 0, 0, 0, 0, 4445, 72296, 0, 11533, 0,
+ 3416, 129148, 0, 0, 0, 78566, 0, 0, 101091, 0, 101093, 5447, 72140,
+ 70752, 101097, 101096, 0, 0, 0, 64448, 0, 43920, 70677, 0, 6232, 101101,
+ 101104, 101103, 43608, 101105, 101108, 6538, 4335, 0, 3941, 74986, 11061,
+ 0, 74988, 74987, 0, 12155, 128278, 0, 0, 0, 0, 74578, 0, 65832, 0,
129459, 70789, 0, 125050, 0, 0, 350, 10951, 101081, 509, 101083, 101086,
101085, 0, 0, 0, 917540, 0, 100905, 110970, 12162, 64741, 0, 9354, 0,
70802, 100901, 2496, 11516, 944, 128238, 0, 0, 1438, 0, 0, 120185, 70785,
1220, 917952, 93844, 0, 0, 5008, 42630, 70787, 101087, 101090, 68206,
564, 0, 312, 0, 0, 0, 70797, 8877, 269, 0, 128065, 9617, 0, 0, 100910, 0,
- 0, 10862, 0, 0, 41416, 0, 4173, 0, 0, 0, 1906, 983835, 41418, 74073,
- 101068, 101067, 41415, 69622, 9582, 0, 64287, 0, 0, 11428, 1730, 0, 0,
- 19918, 10469, 101076, 101079, 68088, 0, 101080, 72342, 0, 129692, 0,
- 6129, 0, 0, 0, 0, 7874, 0, 0, 11206, 13136, 0, 129305, 0, 64374, 74925,
- 0, 73892, 0, 101073, 101072, 101075, 74960, 9228, 101054, 101057, 101056,
- 5240, 9811, 0, 101060, 129718, 0, 0, 74079, 65873, 0, 0, 0, 9501, 0,
- 68081, 72808, 65465, 64654, 7467, 0, 0, 83460, 10040, 0, 3096, 0, 101053,
- 101052, 68820, 83461, 0, 0, 0, 0, 0, 0, 83377, 0, 68801, 0, 101062,
- 101061, 101064, 101063, 0, 8637, 70741, 0, 77983, 77969, 11471, 43554, 0,
- 77968, 0, 0, 0, 2426, 12042, 0, 0, 0, 3961, 12115, 129633, 0, 77972,
- 64561, 0, 4981, 74644, 129558, 0, 0, 42686, 77976, 128776, 64686, 0,
- 77958, 7589, 0, 0, 3237, 0, 68215, 0, 8541, 127157, 71067, 120174, 0, 0,
- 0, 0, 0, 43555, 0, 0, 10060, 111261, 100917, 0, 0, 0, 64877, 0, 0, 8614,
- 65220, 41493, 0, 0, 0, 43780, 0, 0, 70689, 0, 0, 0, 0, 0, 0, 4012, 10395,
- 0, 0, 111253, 126511, 111254, 125051, 695, 739, 696, 7611, 0, 42755,
- 68421, 9227, 7506, 7510, 69937, 691, 738, 7511, 7512, 7515, 7501, 688,
- 41847, 690, 2548, 737, 974, 43386, 0, 0, 0, 0, 0, 0, 65860, 0, 7051,
- 69777, 4682, 0, 983096, 6406, 4685, 0, 0, 10347, 4680, 6341, 0, 0, 92607,
- 74325, 0, 0, 0, 0, 0, 0, 0, 0, 43505, 92468, 11718, 42373, 11714, 0, 0,
- 129567, 11717, 0, 10594, 0, 11712, 0, 0, 10967, 0, 0, 0, 66632, 0, 0, 0,
- 0, 1735, 0, 11134, 2363, 983135, 0, 0, 70695, 128032, 0, 7491, 7495,
- 7580, 7496, 7497, 7584, 121478, 127853, 0, 0, 70025, 0, 8498, 0, 8949,
- 3065, 0, 0, 0, 0, 0, 0, 11713, 0, 64939, 0, 6418, 4543, 0, 0, 0, 74800,
- 0, 0, 0, 0, 0, 0, 0, 12282, 0, 0, 0, 64556, 0, 9238, 0, 68063, 0, 0, 0,
- 65438, 0, 128525, 0, 119268, 0, 0, 12900, 0, 10950, 0, 0, 0, 41400,
- 126636, 119664, 0, 42232, 0, 1744, 0, 41402, 0, 0, 0, 41399, 0, 125028,
- 0, 0, 12690, 0, 0, 43672, 0, 0, 0, 100870, 11315, 0, 278, 121204, 41405,
- 129345, 0, 10077, 129650, 70667, 0, 0, 0, 68210, 0, 0, 11189, 70657, 0,
- 0, 0, 7934, 0, 93829, 120940, 0, 0, 0, 0, 0, 0, 6413, 6550, 0, 1940,
- 2809, 43637, 70045, 0, 0, 10678, 0, 0, 0, 129701, 78804, 6403, 6556,
- 78803, 0, 0, 0, 0, 0, 0, 0, 0, 3742, 74408, 3959, 0, 0, 917969, 0, 0,
- 128024, 0, 0, 127956, 0, 0, 0, 0, 4676, 983049, 9210, 0, 78143, 983903,
- 0, 78168, 983100, 11540, 43546, 6692, 0, 0, 0, 0, 9083, 0, 0, 78144,
- 128515, 0, 9677, 0, 70867, 74175, 0, 74070, 0, 0, 365, 0, 43027, 0, 0,
- 128236, 0, 119574, 70284, 13151, 0, 0, 127935, 127950, 544, 13249,
- 119018, 0, 120846, 0, 0, 73671, 65339, 73000, 2211, 0, 0, 0, 0, 0, 0, 0,
+ 0, 10862, 0, 0, 41416, 0, 4173, 0, 0, 0, 1906, 983835, 41418, 74073,
+ 101068, 101067, 41415, 69622, 9582, 0, 64287, 0, 0, 11428, 1730, 0, 0,
+ 19918, 10469, 101076, 101079, 68088, 0, 101080, 72342, 0, 129692, 0,
+ 6129, 0, 0, 0, 0, 7874, 0, 0, 11206, 13136, 0, 129305, 0, 64374, 74925,
+ 0, 73892, 0, 101073, 101072, 101075, 74960, 9228, 101054, 101057, 101056,
+ 5240, 9811, 0, 101060, 129718, 0, 0, 74079, 65873, 0, 0, 0, 9501, 0,
+ 68081, 72808, 65465, 64654, 7467, 0, 0, 83460, 10040, 0, 3096, 0, 101053,
+ 101052, 68820, 83461, 0, 0, 0, 0, 0, 0, 83377, 0, 68801, 0, 101062,
+ 101061, 101064, 101063, 0, 8637, 70741, 0, 77983, 77969, 11471, 43554, 0,
+ 77968, 0, 0, 0, 2426, 12042, 0, 0, 0, 3961, 12115, 129633, 0, 77972,
+ 64561, 0, 4981, 74644, 129558, 0, 0, 42686, 77976, 128776, 64686, 0,
+ 77958, 7589, 0, 0, 3237, 0, 68215, 0, 8541, 127157, 71067, 120174, 0, 0,
+ 0, 0, 0, 43555, 0, 0, 10060, 111261, 100917, 0, 0, 0, 64877, 0, 0, 8614,
+ 65220, 41493, 0, 0, 0, 43780, 0, 0, 70689, 0, 0, 0, 0, 0, 0, 4012, 10395,
+ 0, 0, 111253, 126511, 111254, 125051, 695, 739, 696, 7611, 0, 42755,
+ 68421, 9227, 7506, 7510, 69937, 691, 738, 7511, 7512, 7515, 7501, 688,
+ 41847, 690, 2548, 737, 974, 43386, 0, 0, 0, 0, 0, 0, 65860, 0, 7051,
+ 69777, 4682, 0, 983096, 6406, 4685, 0, 0, 10347, 4680, 6341, 0, 0, 92607,
+ 74325, 0, 0, 0, 0, 0, 0, 0, 0, 43505, 92468, 11718, 42373, 11714, 0, 0,
+ 129567, 11717, 0, 10594, 0, 11712, 0, 0, 10967, 0, 0, 0, 66632, 0, 0, 0,
+ 0, 1735, 0, 11134, 2363, 983135, 0, 0, 70695, 128032, 0, 7491, 7495,
+ 7580, 7496, 7497, 7584, 121478, 127853, 0, 0, 70025, 0, 8498, 0, 8949,
+ 3065, 0, 0, 0, 0, 0, 0, 11713, 0, 64939, 0, 6418, 4543, 0, 0, 0, 74800,
+ 0, 0, 0, 0, 0, 0, 0, 12282, 0, 0, 0, 64556, 0, 9238, 0, 68063, 0, 0, 0,
+ 65438, 0, 128525, 0, 119268, 0, 0, 12900, 0, 10950, 0, 0, 0, 41400,
+ 126636, 119664, 0, 42232, 0, 1744, 0, 41402, 0, 0, 0, 41399, 0, 125028,
+ 0, 0, 12690, 0, 0, 43672, 0, 0, 0, 100870, 11315, 0, 278, 121204, 41405,
+ 129345, 0, 10077, 129650, 70667, 0, 0, 0, 68210, 0, 0, 11189, 70657, 0,
+ 0, 0, 7934, 0, 93829, 120940, 0, 0, 0, 0, 0, 0, 6413, 6550, 0, 1940,
+ 2809, 43637, 70045, 0, 0, 10678, 0, 0, 0, 129701, 78804, 6403, 6556,
+ 78803, 0, 0, 0, 0, 0, 0, 0, 0, 3742, 74408, 3959, 0, 0, 917969, 0, 0,
+ 128024, 0, 0, 127956, 0, 0, 0, 0, 4676, 983049, 9210, 0, 78143, 983903,
+ 0, 78168, 983100, 11540, 43546, 6692, 0, 0, 0, 0, 9083, 0, 0, 78144,
+ 128515, 0, 9677, 0, 70867, 74175, 0, 74070, 0, 0, 365, 0, 43027, 0, 0,
+ 128236, 0, 119574, 70284, 13151, 0, 0, 127935, 127950, 544, 13249,
+ 119018, 0, 120846, 0, 0, 73671, 65339, 73000, 2211, 0, 0, 0, 0, 0, 0, 0,
0, 128037, 0, 0, 0, 0, 0, 0, 0, 127188, 0, 69708, 9638, 0, 100878, 0, 0,
0, 74545, 128820, 128819, 75062, 128963, 0, 0, 0, 11264, 43994, 0, 0, 0,
1311, 0, 0, 0, 0, 13068, 0, 0, 78164, 78155, 0, 949, 0, 0, 0, 78176,
- 69709, 78177, 63828, 0, 0, 0, 70282, 0, 0, 0, 64822, 0, 6530, 983270, 0,
- 70493, 0, 129325, 0, 0, 4431, 118839, 127490, 983741, 73667, 127986, 0,
+ 69709, 78177, 63828, 0, 0, 0, 70282, 0, 0, 0, 64822, 0, 6530, 983270, 0,
+ 70493, 0, 129325, 0, 0, 4431, 118839, 127490, 983741, 73667, 127986, 0,
10336, 10400, 0, 0, 92959, 0, 0, 0, 42270, 128880, 6428, 0, 0, 0, 0,
43455, 0, 43526, 100888, 12835, 129501, 9493, 0, 0, 11793, 0, 127897,
- 74394, 0, 10653, 0, 0, 0, 0, 6560, 7016, 74274, 983627, 43556, 3929,
- 123615, 6614, 2768, 0, 65609, 0, 11811, 129696, 0, 0, 127513, 0, 6554, 0,
- 6305, 66283, 4675, 118826, 78552, 0, 0, 74361, 0, 0, 68108, 0, 0, 92232,
- 0, 93022, 7392, 8230, 9365, 983723, 0, 0, 0, 0, 42925, 0, 0, 0, 0, 229,
- 43834, 119884, 0, 43552, 119881, 119880, 119883, 119882, 119877, 119876,
- 119879, 119878, 119873, 119872, 119875, 119874, 0, 0, 0, 0, 0, 66352, 0,
- 0, 0, 128663, 0, 12239, 0, 0, 10432, 12097, 0, 194815, 1233, 0, 0,
- 127200, 0, 66395, 0, 0, 129504, 0, 0, 0, 0, 2388, 92555, 119868, 119871,
- 119870, 119865, 895, 92668, 119866, 64889, 7143, 119863, 119862, 0, 0,
- 69983, 0, 74376, 3053, 129829, 0, 2047, 0, 0, 0, 121279, 67985, 194801,
- 92600, 194803, 194802, 194805, 194804, 194807, 194806, 129134, 194808, 0,
- 0, 0, 10473, 129331, 0, 194810, 129806, 194812, 129813, 194814, 194813,
- 123195, 43528, 69673, 194791, 0, 194793, 1912, 120779, 10306, 10370, 0,
- 0, 8867, 10250, 10258, 10274, 1635, 120152, 0, 0, 0, 129379, 0, 0, 9919,
- 120148, 559, 128157, 41825, 127975, 92989, 0, 74016, 194781, 6542, 41957,
- 7318, 0, 0, 41956, 65749, 65750, 65751, 121323, 64487, 0, 0, 10223,
- 42062, 100640, 101195, 125044, 3668, 65754, 43560, 12226, 0, 93973,
- 194784, 41959, 194786, 194785, 194788, 43618, 65747, 10937, 2962, 0,
- 2953, 10062, 65745, 71457, 8921, 66013, 129370, 0, 194769, 194768, 43409,
- 194770, 2949, 194772, 194775, 194774, 2958, 194776, 74868, 2300, 2951,
- 120061, 0, 120043, 194778, 0, 120051, 194779, 120056, 120065, 70798,
- 120048, 0, 120062, 120055, 71989, 100668, 0, 0, 71985, 0, 71992, 70796,
- 127818, 0, 0, 64890, 0, 43630, 11336, 799, 0, 10276, 10308, 10372,
- 917541, 0, 0, 10252, 10260, 68220, 55284, 0, 0, 10384, 0, 0, 0, 64523,
- 129744, 0, 65736, 0, 0, 0, 0, 0, 0, 0, 0, 43549, 65738, 42150, 65739, 0,
- 78195, 10288, 10320, 0, 10596, 0, 67673, 65045, 121283, 78198, 2049,
- 10098, 0, 122904, 127943, 10264, 10280, 10312, 10376, 7013, 0, 0, 0, 0,
- 66375, 0, 4862, 0, 6537, 0, 128335, 3914, 92178, 93976, 9065, 64816, 0,
- 72218, 73026, 0, 0, 72139, 4694, 11420, 4690, 0, 0, 983209, 4693, 0, 0,
- 0, 4688, 0, 0, 0, 0, 8238, 3110, 0, 983920, 0, 6528, 0, 0, 0, 218, 0,
- 1520, 129577, 70039, 0, 983594, 0, 0, 78167, 10088, 6548, 100786, 0, 0,
- 0, 8888, 0, 124954, 0, 0, 126593, 68876, 0, 0, 0, 0, 0, 0, 0, 4689,
- 43541, 77954, 120157, 0, 120156, 78810, 120163, 0, 0, 0, 0, 78121, 0, 0,
- 11450, 0, 71900, 92613, 0, 121317, 74622, 128720, 9244, 0, 0, 127763, 0,
- 0, 0, 0, 0, 0, 71084, 0, 0, 0, 0, 10513, 0, 0, 0, 52, 119178, 0, 0,
- 93961, 0, 0, 4812, 0, 0, 0, 0, 0, 0, 128425, 0, 120453, 0, 77959, 10170,
- 120450, 6544, 0, 0, 69782, 121517, 0, 0, 65258, 10369, 0, 1585, 74014,
- 10249, 422, 1500, 2036, 986, 0, 64394, 0, 5599, 917981, 2494, 0, 0,
- 74021, 983877, 78203, 127808, 0, 72871, 65102, 8961, 74305, 10243, 10245,
- 128170, 0, 0, 0, 0, 0, 2508, 129591, 120440, 0, 120439, 0, 0, 0, 0, 0, 0,
- 64533, 983186, 0, 0, 74008, 0, 0, 43375, 0, 2504, 0, 121313, 0, 983922,
- 6943, 0, 5859, 100677, 0, 0, 72873, 983926, 0, 0, 983904, 92390, 2753,
- 1936, 2153, 67701, 2751, 12662, 2763, 8953, 0, 10731, 0, 7052, 0, 0, 0,
- 0, 119899, 0, 66675, 0, 119897, 0, 71053, 0, 119903, 0, 67829, 7899,
- 119901, 71119, 43798, 7072, 119902, 122898, 11260, 0, 71059, 0, 0, 212,
- 0, 12350, 0, 0, 0, 0, 0, 128402, 2759, 0, 0, 93064, 0, 0, 0, 1291, 0, 0,
- 121318, 119911, 0, 119910, 0, 12062, 0, 121216, 0, 0, 121044, 120611,
- 8246, 128874, 0, 0, 0, 0, 0, 73962, 0, 0, 43524, 0, 64426, 0, 0, 0, 0,
- 65664, 6693, 0, 0, 8674, 0, 128812, 0, 11846, 70690, 121461, 69395, 4811,
- 0, 5986, 0, 3046, 74480, 5985, 0, 0, 0, 0, 12187, 83148, 71041, 5984, 0,
- 93817, 4393, 126264, 120206, 917599, 0, 0, 0, 93806, 93805, 0, 3491, 0,
- 67146, 0, 93819, 0, 72428, 0, 0, 0, 124968, 41284, 126228, 0, 0, 41287,
- 0, 100689, 0, 0, 92189, 0, 0, 219, 120874, 0, 0, 0, 68485, 119672, 43241,
- 0, 7147, 0, 0, 0, 0, 0, 0, 64610, 11804, 0, 7149, 64808, 0, 0, 0, 92301,
- 73690, 0, 5253, 0, 0, 0, 0, 129045, 983596, 11098, 68433, 0, 120484,
- 111009, 0, 0, 0, 0, 0, 70801, 100779, 0, 128198, 9604, 0, 130036, 0, 0,
- 118941, 64392, 0, 0, 0, 0, 41974, 126262, 0, 0, 0, 129818, 0, 129833, 0,
- 0, 0, 0, 0, 983239, 5308, 0, 290, 0, 125278, 128382, 2792, 0, 0, 120521,
- 0, 126237, 0, 126099, 0, 0, 0, 0, 128503, 0, 0, 72816, 0, 0, 0, 92671, 0,
- 0, 42646, 7606, 2591, 73896, 0, 43513, 64482, 0, 0, 65270, 0, 0, 983682,
- 9112, 0, 113763, 9490, 0, 0, 0, 0, 0, 9071, 0, 0, 0, 0, 74607, 0, 2535,
- 65504, 43602, 0, 0, 71256, 0, 0, 123147, 11845, 11006, 92315, 7807, 8073,
- 0, 10629, 0, 74088, 0, 10823, 0, 113762, 8762, 0, 69689, 0, 43969, 65047,
- 10737, 3463, 72858, 129585, 66645, 0, 4815, 0, 0, 12345, 983742, 0, 5195,
- 0, 0, 66639, 0, 0, 127316, 0, 92759, 92385, 1262, 0, 6561, 19939, 0, 0,
- 100772, 123160, 69269, 0, 100774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5702, 3655, 0, 8430, 0, 68807, 0, 0, 121137, 0, 0, 5254, 0, 0, 0, 0,
- 119107, 5129, 0, 70816, 0, 92280, 5614, 0, 0, 11720, 0, 11721, 70804,
- 4798, 0, 120541, 66038, 4793, 67851, 7352, 0, 0, 0, 0, 917600, 0, 300, 0,
- 0, 128575, 92660, 0, 0, 2562, 70156, 120856, 0, 0, 92738, 0, 0, 127820,
- 71093, 0, 127969, 128221, 0, 3424, 93843, 0, 0, 7074, 70873, 917926, 0,
- 0, 10832, 0, 0, 69852, 72430, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 1215, 0,
- 5744, 0, 66440, 0, 0, 0, 42881, 0, 8980, 118988, 67861, 8844, 7433, 0, 0,
- 4278, 0, 0, 0, 70821, 9312, 4348, 0, 128401, 65946, 0, 7087, 5255, 0,
- 661, 0, 0, 0, 0, 0, 0, 0, 121009, 73694, 0, 123154, 0, 73688, 0, 127179,
- 3621, 83325, 66666, 72968, 0, 6562, 12928, 0, 73991, 0, 0, 11383, 0, 0,
- 65588, 120739, 0, 0, 0, 0, 0, 0, 0, 0, 11436, 2070, 64, 110824, 0, 10291,
- 10323, 10387, 0, 0, 0, 42008, 9708, 42710, 0, 42011, 0, 92164, 0, 0,
- 1702, 1240, 128383, 6286, 9689, 111080, 0, 0, 0, 1765, 0, 0, 92373, 0, 0,
- 0, 8401, 72991, 42014, 0, 67237, 0, 0, 0, 0, 0, 0, 0, 70819, 0, 0, 0, 0,
- 12667, 0, 0, 10147, 0, 127568, 126483, 72812, 0, 0, 0, 0, 123139, 128968,
- 0, 64947, 0, 0, 0, 0, 10435, 11462, 0, 7084, 0, 0, 0, 0, 0, 126084, 0,
- 66662, 0, 0, 0, 0, 125134, 0, 0, 77990, 263, 983728, 41288, 127953, 0,
- 78387, 74340, 70313, 129140, 0, 0, 0, 42022, 71265, 0, 0, 0, 0, 0, 0,
- 42020, 123146, 0, 6992, 42019, 0, 41290, 0, 12295, 126233, 71304, 0,
- 120984, 71300, 120631, 5954, 64931, 69385, 100699, 198, 68453, 78129, 0,
- 121351, 0, 70818, 13165, 7107, 0, 42804, 678, 72850, 118960, 0, 72985,
- 42806, 42808, 0, 0, 2097, 0, 120560, 70823, 0, 0, 3892, 68632, 0, 6712,
- 917959, 0, 0, 0, 0, 123158, 69954, 0, 497, 12100, 5953, 92667, 7796, 0,
- 43254, 0, 0, 11072, 5952, 1281, 43747, 0, 69380, 10677, 0, 0, 0, 1859, 0,
- 72856, 3425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65199, 1738, 0, 122911, 0, 0,
- 0, 11101, 0, 0, 0, 0, 127002, 69651, 4436, 194683, 73984, 0, 70305,
- 64872, 128296, 0, 0, 0, 121377, 0, 0, 0, 43686, 983108, 0, 119109, 0,
- 70826, 319, 0, 43479, 73001, 0, 0, 12849, 0, 7640, 71083, 9673, 0, 0, 0,
- 92670, 0, 92665, 113717, 41422, 0, 100708, 74941, 3772, 0, 120660, 5011,
- 0, 0, 126587, 111315, 0, 0, 6677, 111312, 0, 41427, 64419, 129445, 92262,
- 0, 70799, 0, 0, 0, 6106, 0, 41271, 6760, 983739, 4534, 41270, 128876, 0,
- 0, 119561, 0, 0, 3671, 8976, 123177, 0, 41275, 0, 128084, 55261, 0,
- 42013, 0, 568, 0, 41273, 0, 0, 6728, 0, 9715, 0, 0, 121058, 74820, 0,
- 92268, 0, 194564, 11191, 43688, 128023, 0, 0, 0, 126266, 0, 0, 0, 11958,
- 11165, 0, 125087, 0, 0, 66336, 127944, 0, 0, 0, 0, 42858, 11789, 72878,
- 5557, 0, 69444, 7300, 0, 9467, 5558, 64486, 43844, 0, 0, 6706, 10146, 0,
- 127185, 64566, 0, 0, 0, 0, 0, 0, 0, 4546, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 64528, 123136, 6307, 128966, 0, 7544, 0, 43469, 111317, 0, 10152, 0,
- 65091, 0, 0, 0, 0, 66652, 0, 0, 0, 0, 64823, 5559, 0, 70711, 6702, 5556,
- 0, 0, 0, 0, 0, 11166, 0, 0, 5506, 0, 1911, 73021, 0, 12598, 8845, 66698,
- 0, 73012, 123145, 0, 2098, 0, 0, 0, 66622, 194678, 0, 0, 0, 9898, 0, 0,
- 7552, 0, 0, 0, 7223, 65723, 0, 0, 0, 7024, 65728, 127155, 1210, 0, 65175,
- 10184, 65726, 43654, 0, 0, 0, 38, 65729, 66669, 0, 0, 0, 0, 0, 0, 0, 0,
- 74233, 73018, 119843, 42860, 111301, 92576, 65721, 65722, 0, 0, 0, 0,
- 68843, 0, 68850, 0, 92388, 92267, 128536, 65577, 92213, 0, 127518, 11650,
- 5013, 92663, 68810, 92568, 118914, 6613, 74371, 0, 0, 0, 0, 64714, 71479,
- 0, 983778, 12120, 0, 0, 43124, 0, 0, 78037, 69263, 0, 126219, 0, 0, 1837,
+ 74394, 0, 10653, 0, 0, 0, 0, 6560, 7016, 74274, 983627, 43556, 3929,
+ 123615, 6614, 2768, 0, 65609, 0, 11811, 129696, 0, 0, 127513, 0, 6554, 0,
+ 6305, 66283, 4675, 118826, 78552, 0, 0, 74361, 0, 0, 68108, 0, 0, 92232,
+ 0, 93022, 7392, 8230, 9365, 983723, 0, 0, 0, 0, 42925, 0, 0, 0, 0, 229,
+ 43834, 119884, 0, 43552, 119881, 119880, 119883, 119882, 119877, 119876,
+ 119879, 119878, 119873, 119872, 119875, 119874, 0, 0, 0, 0, 0, 66352, 0,
+ 0, 0, 128663, 0, 12239, 0, 0, 10432, 12097, 0, 194815, 1233, 0, 0,
+ 127200, 0, 66395, 0, 0, 129504, 0, 0, 0, 0, 2388, 92555, 119868, 119871,
+ 119870, 119865, 895, 92668, 119866, 64889, 7143, 119863, 119862, 0, 0,
+ 69983, 0, 74376, 3053, 129829, 0, 2047, 0, 0, 0, 121279, 67985, 194801,
+ 92600, 194803, 194802, 194805, 194804, 194807, 194806, 129134, 194808, 0,
+ 0, 0, 10473, 129331, 0, 194810, 129806, 194812, 129813, 194814, 194813,
+ 123195, 43528, 69673, 194791, 0, 194793, 1912, 120779, 10306, 10370, 0,
+ 0, 8867, 10250, 10258, 10274, 1635, 120152, 0, 0, 0, 129379, 0, 0, 9919,
+ 120148, 559, 128157, 41825, 127975, 92989, 0, 74016, 194781, 6542, 41957,
+ 7318, 0, 0, 41956, 65749, 65750, 65751, 121323, 64487, 0, 0, 10223,
+ 42062, 100640, 101195, 125044, 3668, 65754, 43560, 12226, 0, 93973,
+ 194784, 41959, 194786, 194785, 194788, 43618, 65747, 10937, 2962, 0,
+ 2953, 10062, 65745, 71457, 8921, 66013, 129370, 0, 194769, 194768, 43409,
+ 194770, 2949, 194772, 194775, 194774, 2958, 194776, 74868, 2300, 2951,
+ 120061, 0, 120043, 194778, 0, 120051, 194779, 120056, 120065, 70798,
+ 120048, 0, 120062, 120055, 71989, 100668, 0, 0, 71985, 0, 71992, 70796,
+ 127818, 0, 0, 64890, 0, 43630, 11336, 799, 0, 10276, 10308, 10372,
+ 917541, 0, 0, 10252, 10260, 68220, 55284, 0, 0, 10384, 0, 0, 0, 64523,
+ 129744, 0, 65736, 0, 0, 0, 0, 0, 0, 0, 0, 43549, 65738, 42150, 65739, 0,
+ 78195, 10288, 10320, 0, 10596, 0, 67673, 65045, 121283, 78198, 2049,
+ 10098, 0, 122904, 127943, 10264, 10280, 10312, 10376, 7013, 0, 0, 0, 0,
+ 66375, 0, 4862, 0, 6537, 0, 128335, 3914, 92178, 93976, 9065, 64816, 0,
+ 72218, 73026, 0, 0, 72139, 4694, 11420, 4690, 0, 0, 983209, 4693, 0, 0,
+ 0, 4688, 0, 0, 0, 0, 8238, 3110, 0, 983920, 0, 6528, 0, 0, 0, 218, 0,
+ 1520, 129577, 70039, 0, 983594, 0, 0, 78167, 10088, 6548, 100786, 0, 0,
+ 0, 8888, 0, 124954, 0, 0, 126593, 68876, 0, 0, 0, 0, 0, 0, 0, 4689,
+ 43541, 77954, 120157, 0, 120156, 78810, 120163, 0, 0, 0, 0, 78121, 0, 0,
+ 11450, 0, 71900, 92613, 0, 121317, 74622, 128720, 9244, 0, 0, 127763, 0,
+ 0, 0, 0, 0, 0, 71084, 0, 0, 0, 0, 10513, 0, 0, 0, 52, 119178, 0, 0,
+ 93961, 0, 0, 4812, 0, 0, 0, 0, 0, 0, 128425, 0, 120453, 0, 77959, 10170,
+ 120450, 6544, 0, 0, 69782, 121517, 0, 0, 65258, 10369, 0, 1585, 74014,
+ 10249, 422, 1500, 2036, 986, 0, 64394, 0, 5599, 917981, 2494, 0, 0,
+ 74021, 983877, 78203, 127808, 0, 72871, 65102, 8961, 74305, 10243, 10245,
+ 128170, 0, 0, 0, 0, 0, 2508, 129591, 120440, 0, 120439, 0, 0, 0, 0, 0, 0,
+ 64533, 983186, 0, 0, 74008, 0, 0, 43375, 0, 2504, 0, 121313, 0, 983922,
+ 6943, 0, 5859, 100677, 0, 0, 72873, 983926, 0, 0, 983904, 92390, 2753,
+ 1936, 2153, 67701, 2751, 12662, 2763, 8953, 0, 10731, 0, 7052, 0, 0, 0,
+ 0, 119899, 0, 66675, 0, 119897, 0, 71053, 0, 119903, 0, 67829, 7899,
+ 119901, 71119, 43798, 7072, 119902, 122898, 11260, 0, 71059, 0, 0, 212,
+ 0, 12350, 0, 0, 0, 0, 0, 128402, 2759, 0, 0, 93064, 0, 0, 0, 1291, 0, 0,
+ 121318, 119911, 0, 119910, 0, 12062, 0, 121216, 0, 0, 121044, 120611,
+ 8246, 128874, 0, 0, 0, 0, 0, 73962, 0, 0, 43524, 0, 64426, 0, 0, 0, 0,
+ 65664, 6693, 0, 0, 8674, 0, 128812, 0, 11846, 70690, 121461, 69395, 4811,
+ 0, 5986, 0, 3046, 74480, 5985, 0, 0, 0, 0, 12187, 83148, 71041, 5984, 0,
+ 93817, 4393, 126264, 120206, 917599, 0, 0, 0, 93806, 93805, 0, 3491, 0,
+ 67146, 0, 93819, 0, 72428, 0, 0, 0, 124968, 41284, 126228, 0, 0, 41287,
+ 0, 100689, 0, 0, 92189, 0, 0, 219, 120874, 0, 0, 0, 68485, 119672, 43241,
+ 0, 7147, 0, 0, 0, 0, 0, 0, 64610, 11804, 0, 7149, 64808, 0, 0, 0, 92301,
+ 73690, 0, 5253, 0, 0, 0, 0, 129045, 983596, 11098, 68433, 0, 120484,
+ 111009, 0, 0, 0, 0, 0, 70801, 100779, 0, 128198, 9604, 0, 130036, 0, 0,
+ 118941, 64392, 0, 0, 0, 0, 41974, 126262, 0, 0, 0, 129818, 0, 129833, 0,
+ 0, 0, 0, 0, 983239, 5308, 0, 290, 0, 125278, 128382, 2792, 0, 0, 120521,
+ 0, 126237, 0, 126099, 0, 0, 0, 0, 128503, 0, 0, 72816, 0, 0, 0, 92671, 0,
+ 0, 42646, 7606, 2591, 73896, 0, 43513, 64482, 0, 0, 65270, 0, 0, 983682,
+ 9112, 0, 113763, 9490, 0, 0, 0, 0, 0, 9071, 0, 0, 0, 0, 74607, 0, 2535,
+ 65504, 43602, 0, 0, 71256, 0, 0, 123147, 11845, 11006, 92315, 7807, 8073,
+ 0, 10629, 0, 74088, 0, 10823, 0, 113762, 8762, 0, 69689, 0, 43969, 65047,
+ 10737, 3463, 72858, 129585, 66645, 0, 4815, 0, 0, 12345, 983742, 0, 5195,
+ 0, 0, 66639, 0, 0, 127316, 0, 92759, 92385, 1262, 0, 6561, 19939, 0, 0,
+ 100772, 123160, 69269, 0, 100774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5702, 3655, 0, 8430, 0, 68807, 0, 0, 121137, 0, 0, 5254, 0, 0, 0, 0,
+ 119107, 5129, 0, 70816, 0, 92280, 5614, 0, 0, 11720, 0, 11721, 70804,
+ 4798, 0, 120541, 66038, 4793, 67851, 7352, 0, 0, 0, 0, 917600, 0, 300, 0,
+ 0, 128575, 92660, 0, 0, 2562, 70156, 120856, 0, 0, 92738, 0, 0, 127820,
+ 71093, 0, 127969, 128221, 0, 3424, 93843, 0, 0, 7074, 70873, 917926, 0,
+ 0, 10832, 0, 0, 69852, 72430, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 1215, 0,
+ 5744, 0, 66440, 0, 0, 0, 42881, 0, 8980, 118988, 67861, 8844, 7433, 0, 0,
+ 4278, 0, 0, 0, 70821, 9312, 4348, 0, 128401, 65946, 0, 7087, 5255, 0,
+ 661, 0, 0, 0, 0, 0, 0, 0, 121009, 73694, 0, 123154, 0, 73688, 0, 127179,
+ 3621, 83325, 66666, 72968, 0, 6562, 12928, 0, 73991, 0, 0, 11383, 0, 0,
+ 65588, 120739, 0, 0, 0, 0, 0, 0, 0, 0, 11436, 2070, 64, 110824, 0, 10291,
+ 10323, 10387, 0, 0, 0, 42008, 9708, 42710, 0, 42011, 0, 92164, 0, 0,
+ 1702, 1240, 128383, 6286, 9689, 111080, 0, 0, 0, 1765, 0, 0, 92373, 0, 0,
+ 0, 8401, 72991, 42014, 0, 67237, 0, 0, 0, 0, 0, 0, 0, 70819, 0, 0, 0, 0,
+ 12667, 0, 0, 10147, 0, 127568, 126483, 72812, 0, 0, 0, 0, 123139, 128968,
+ 0, 64947, 0, 0, 0, 0, 10435, 11462, 0, 7084, 0, 0, 0, 0, 0, 126084, 0,
+ 66662, 0, 0, 0, 0, 125134, 0, 0, 77990, 263, 983728, 41288, 127953, 0,
+ 78387, 74340, 70313, 129140, 0, 0, 0, 42022, 71265, 0, 0, 0, 0, 0, 0,
+ 42020, 123146, 0, 6992, 42019, 0, 41290, 0, 12295, 126233, 71304, 0,
+ 120984, 71300, 120631, 5954, 64931, 69385, 100699, 198, 68453, 78129, 0,
+ 121351, 0, 70818, 13165, 7107, 0, 42804, 678, 72850, 118960, 0, 72985,
+ 42806, 42808, 0, 0, 2097, 0, 120560, 70823, 0, 0, 3892, 68632, 0, 6712,
+ 917959, 0, 0, 0, 0, 123158, 69954, 0, 497, 12100, 5953, 92667, 7796, 0,
+ 43254, 0, 0, 11072, 5952, 1281, 43747, 0, 69380, 10677, 0, 0, 0, 1859, 0,
+ 72856, 3425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65199, 1738, 0, 122911, 0, 0,
+ 0, 11101, 0, 0, 0, 0, 127002, 69651, 4436, 194683, 73984, 0, 70305,
+ 64872, 128296, 0, 0, 0, 121377, 0, 0, 0, 43686, 983108, 0, 119109, 0,
+ 70826, 319, 0, 43479, 73001, 0, 0, 12849, 0, 7640, 71083, 9673, 0, 0, 0,
+ 92670, 0, 92665, 113717, 41422, 0, 100708, 74941, 3772, 0, 120660, 5011,
+ 0, 0, 126587, 111315, 0, 0, 6677, 111312, 0, 41427, 64419, 129445, 92262,
+ 0, 70799, 0, 0, 0, 6106, 0, 41271, 6760, 983739, 4534, 41270, 128876, 0,
+ 0, 119561, 0, 0, 3671, 8976, 123177, 0, 41275, 0, 128084, 55261, 0,
+ 42013, 0, 568, 0, 41273, 0, 0, 6728, 0, 9715, 0, 0, 121058, 74820, 0,
+ 92268, 0, 194564, 11191, 43688, 128023, 0, 0, 0, 126266, 0, 0, 0, 11958,
+ 11165, 0, 125087, 0, 0, 66336, 127944, 0, 0, 0, 0, 42858, 11789, 72878,
+ 5557, 0, 69444, 7300, 0, 9467, 5558, 64486, 43844, 0, 0, 6706, 10146, 0,
+ 127185, 64566, 0, 0, 0, 0, 0, 0, 0, 4546, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 64528, 123136, 6307, 128966, 0, 7544, 0, 43469, 111317, 0, 10152, 0,
+ 65091, 0, 0, 0, 0, 66652, 0, 0, 0, 0, 64823, 5559, 0, 70711, 6702, 5556,
+ 0, 0, 0, 0, 0, 11166, 0, 0, 5506, 0, 1911, 73021, 0, 12598, 8845, 66698,
+ 0, 73012, 123145, 0, 2098, 0, 0, 0, 66622, 194678, 0, 0, 0, 9898, 0, 0,
+ 7552, 0, 0, 0, 7223, 65723, 0, 0, 0, 7024, 65728, 127155, 1210, 0, 65175,
+ 10184, 65726, 43654, 0, 0, 0, 38, 65729, 66669, 0, 0, 0, 0, 0, 0, 0, 0,
+ 74233, 73018, 119843, 42860, 111301, 92576, 65721, 65722, 0, 0, 0, 0,
+ 68843, 0, 68850, 0, 92388, 92267, 128536, 65577, 92213, 0, 127518, 11650,
+ 5013, 92663, 68810, 92568, 118914, 6613, 74371, 0, 0, 0, 0, 64714, 71479,
+ 0, 983778, 12120, 0, 0, 43124, 0, 0, 78037, 69263, 0, 126219, 0, 0, 1837,
125086, 0, 0, 0, 127210, 4952, 65718, 64405, 5504, 65720, 65714, 65715,
- 65716, 10403, 127005, 0, 41449, 0, 74028, 72019, 0, 119234, 1127, 455, 0,
- 0, 72860, 3483, 0, 1989, 0, 69678, 9104, 0, 65375, 0, 0, 0, 1864, 0,
+ 65716, 10403, 127005, 0, 41449, 0, 74028, 72019, 0, 119234, 1127, 455, 0,
+ 0, 72860, 3483, 0, 1989, 0, 69678, 9104, 0, 65375, 0, 0, 0, 1864, 0,
72810, 8107, 2540, 0, 0, 11257, 128807, 119576, 0, 120999, 0, 0, 8604, 0,
- 0, 0, 0, 128270, 0, 0, 3115, 0, 10106, 127862, 118842, 101136, 0, 9631,
- 0, 0, 0, 0, 0, 0, 0, 258, 129079, 0, 0, 0, 92292, 0, 70699, 0, 11478, 0,
- 129640, 11522, 0, 8549, 0, 128430, 0, 0, 0, 0, 0, 0, 123140, 0, 0, 0,
- 9221, 12590, 73048, 0, 0, 0, 67741, 111294, 12619, 0, 10154, 111266,
- 74439, 2039, 0, 7446, 0, 111276, 10974, 458, 72831, 0, 0, 0, 11916, 0, 0,
- 69671, 0, 121057, 12288, 0, 111288, 0, 111289, 983176, 0, 128199, 13080,
- 0, 67828, 6610, 6030, 8059, 7508, 123170, 0, 0, 0, 0, 41278, 129393, 0,
- 128192, 41277, 64658, 983983, 101278, 6625, 983159, 19904, 0, 0, 0, 0, 0,
- 0, 833, 0, 6369, 0, 0, 42664, 0, 0, 0, 0, 0, 0, 6913, 933, 1341, 68828,
- 6720, 0, 0, 983604, 0, 0, 7405, 128025, 0, 0, 0, 0, 0, 0, 0, 70704, 0, 0,
- 0, 0, 9716, 0, 0, 0, 70719, 0, 0, 0, 0, 72862, 70687, 0, 93987, 0, 0, 0,
- 70721, 9573, 0, 0, 111245, 83225, 83226, 6949, 126482, 74061, 83222,
- 83223, 83224, 0, 19962, 83219, 83220, 0, 111233, 0, 42830, 0, 111234,
- 74236, 66276, 0, 546, 72861, 0, 70661, 0, 472, 11083, 10319, 10383,
- 917971, 0, 83202, 83203, 3602, 83206, 41182, 83199, 83200, 69796, 41183,
- 0, 10271, 10287, 684, 0, 0, 0, 83214, 4592, 83216, 83217, 83210, 11963,
- 43620, 83213, 0, 0, 83208, 83209, 0, 92623, 128559, 3415, 0, 121267, 0,
- 0, 123151, 43447, 0, 92212, 0, 418, 0, 0, 10295, 10327, 10391, 0, 83189,
- 83190, 83192, 83194, 83185, 83186, 83187, 83188, 120879, 0, 41446, 70700,
- 0, 0, 120809, 10599, 66892, 0, 0, 0, 0, 0, 0, 11437, 0, 0, 0, 0, 0, 0,
- 12624, 0, 41185, 72865, 69439, 8159, 0, 11686, 71478, 65224, 0, 4655, 0,
- 0, 92183, 0, 10343, 10407, 0, 0, 0, 111221, 0, 0, 0, 94057, 68201,
- 129574, 0, 983572, 72156, 42792, 5743, 10424, 0, 0, 0, 0, 0, 8875,
- 111225, 0, 917991, 13117, 12847, 4651, 118917, 0, 962, 0, 0, 2242, 42564,
- 0, 1582, 0, 5508, 0, 0, 0, 10801, 123602, 118798, 73705, 0, 66911, 10439,
- 66891, 0, 0, 7860, 0, 906, 917985, 0, 6405, 64722, 0, 83266, 64694,
- 83268, 917990, 1153, 83263, 64788, 83265, 0, 12626, 83260, 83261, 9964,
- 0, 0, 4642, 66574, 127886, 0, 0, 0, 0, 0, 9008, 100847, 0, 0, 0, 83248,
- 917976, 917993, 123173, 42842, 83244, 83245, 83247, 83239, 83240, 83241,
- 83242, 0, 11335, 92661, 83238, 3920, 0, 0, 0, 83255, 83256, 41967, 83258,
- 83251, 83252, 83253, 8920, 0, 0, 83249, 83250, 0, 0, 43919, 0, 0, 0, 0,
- 128021, 0, 68113, 65196, 0, 0, 128472, 0, 10111, 64875, 0, 83491, 43998,
- 83232, 83233, 83234, 70691, 83228, 42149, 83230, 68508, 0, 0, 0, 0, 0, 0,
- 0, 4110, 66005, 74034, 0, 0, 0, 66703, 0, 0, 983157, 6025, 69242, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 70733, 0, 983043, 0, 0, 0, 68817, 0, 0, 0, 0, 0, 0,
- 43286, 0, 68765, 0, 0, 0, 0, 129871, 65144, 0, 0, 83236, 65840, 0, 0,
- 10081, 0, 0, 983893, 0, 0, 0, 127394, 65882, 0, 128758, 0, 0, 3605,
- 10985, 0, 0, 128872, 93972, 1745, 0, 73835, 0, 0, 0, 0, 0, 0, 8806, 7023,
- 0, 0, 0, 70702, 70304, 0, 0, 0, 0, 0, 0, 0, 0, 348, 10089, 0, 9017, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 42515, 0, 0, 0, 0, 5391, 983236, 0, 0, 0, 5561, 0,
- 9429, 0, 67150, 7933, 5562, 0, 0, 0, 0, 78039, 0, 0, 0, 0, 3979, 71248,
- 0, 0, 0, 68847, 0, 0, 118847, 65847, 68836, 68838, 0, 10585, 0, 92676,
- 7334, 0, 0, 0, 831, 0, 0, 10716, 0, 121325, 0, 12218, 0, 6939, 70697,
- 65042, 0, 0, 916, 0, 0, 11968, 0, 0, 5563, 0, 0, 128830, 5560, 41212,
- 41774, 0, 4497, 0, 0, 0, 9039, 70678, 41776, 0, 8716, 3567, 119252, 0, 0,
- 74260, 0, 93954, 0, 0, 100827, 0, 128879, 70072, 68355, 68357, 0, 0,
- 8634, 0, 0, 4209, 120702, 68832, 65879, 68825, 68819, 68822, 0, 5679,
- 68813, 68815, 68811, 68812, 64697, 5678, 11821, 68802, 93969, 0, 0, 0, 0,
- 70114, 0, 0, 0, 0, 0, 0, 0, 0, 7782, 0, 0, 0, 0, 129977, 65711, 65712,
- 1216, 0, 69409, 5792, 0, 0, 0, 0, 0, 12244, 0, 5683, 0, 120895, 121336,
- 43448, 70670, 0, 0, 5682, 10242, 75043, 74520, 5680, 917568, 10001, 0, 0,
- 1449, 10241, 0, 70708, 0, 0, 83180, 83182, 83183, 8584, 83176, 5567,
- 83178, 83179, 0, 5564, 42886, 42884, 42882, 5565, 119022, 120881, 0,
- 65708, 65709, 5566, 0, 65704, 65705, 11904, 42875, 0, 42873, 5942, 0, 0,
- 10361, 10425, 65697, 65698, 65699, 0, 66598, 0, 64664, 10647, 78702,
- 78703, 78690, 78700, 0, 65701, 1934, 0, 0, 0, 78710, 0, 78706, 78709,
- 6087, 78705, 78716, 78719, 78711, 8043, 8950, 65694, 64485, 0, 10457, 0,
- 78724, 78725, 78722, 72332, 78720, 78721, 0, 65515, 0, 10035, 13069, 0,
- 0, 127773, 0, 0, 0, 125207, 0, 0, 1667, 0, 0, 42428, 110950, 0, 0, 41750,
- 0, 0, 93999, 0, 8101, 3610, 113670, 41748, 110948, 0, 78394, 119208, 0,
- 0, 113691, 64549, 68359, 0, 0, 65692, 92701, 0, 0, 12896, 10456, 68298,
- 0, 0, 0, 0, 917962, 0, 0, 113665, 70502, 0, 65687, 0, 0, 74009, 0,
- 113673, 8536, 70671, 0, 78726, 0, 724, 0, 113675, 78749, 9975, 78746,
- 78747, 78744, 4175, 78741, 78743, 78751, 939, 0, 128799, 983119, 0, 0, 0,
- 78763, 78764, 78760, 78761, 78758, 78759, 78755, 8425, 0, 0, 0, 8188, 0,
- 0, 0, 0, 0, 6370, 0, 7827, 68441, 75008, 0, 917943, 0, 118863, 0, 0, 0,
- 0, 121243, 73988, 0, 113668, 0, 11012, 0, 43764, 178, 12972, 74620,
- 113671, 0, 113735, 0, 66764, 0, 0, 65690, 72339, 0, 0, 917950, 9252, 0,
- 4652, 74259, 0, 917947, 0, 0, 0, 10806, 0, 0, 70016, 0, 6723, 0, 0, 6993,
- 0, 0, 12855, 0, 0, 11390, 0, 0, 0, 92503, 0, 0, 983161, 125270, 92627,
- 8278, 0, 4034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12750, 9350, 66037, 0, 0,
- 73700, 12747, 0, 0, 128064, 43153, 74640, 0, 0, 43150, 0, 983090, 983088,
- 66779, 66777, 10813, 2592, 43139, 0, 0, 118870, 0, 0, 71891, 0, 0, 0, 0,
- 0, 0, 71697, 0, 128825, 1596, 0, 0, 0, 0, 6838, 66572, 0, 126574, 120627,
+ 0, 0, 0, 128270, 0, 0, 3115, 0, 10106, 127862, 118842, 101136, 0, 9631,
+ 0, 0, 0, 0, 0, 0, 0, 258, 129079, 0, 0, 0, 92292, 0, 70699, 0, 11478, 0,
+ 129640, 11522, 0, 8549, 0, 128430, 0, 0, 0, 0, 0, 0, 123140, 0, 0, 0,
+ 9221, 12590, 73048, 0, 0, 0, 67741, 111294, 12619, 0, 10154, 111266,
+ 74439, 2039, 0, 7446, 0, 111276, 10974, 458, 72831, 0, 0, 0, 11916, 0, 0,
+ 69671, 0, 121057, 12288, 0, 111288, 0, 111289, 983176, 0, 128199, 13080,
+ 0, 67828, 6610, 6030, 8059, 7508, 123170, 0, 0, 0, 0, 41278, 129393, 0,
+ 128192, 41277, 64658, 983983, 101278, 6625, 983159, 19904, 0, 0, 0, 0, 0,
+ 0, 833, 0, 6369, 0, 0, 42664, 0, 0, 0, 0, 0, 0, 6913, 933, 1341, 68828,
+ 6720, 0, 0, 983604, 0, 0, 7405, 128025, 0, 0, 0, 0, 0, 0, 0, 70704, 0, 0,
+ 0, 0, 9716, 0, 0, 0, 70719, 0, 0, 0, 0, 72862, 70687, 0, 93987, 0, 0, 0,
+ 70721, 9573, 0, 0, 111245, 83225, 83226, 6949, 126482, 74061, 83222,
+ 83223, 83224, 0, 19962, 83219, 83220, 0, 111233, 0, 42830, 0, 111234,
+ 74236, 66276, 0, 546, 72861, 0, 70661, 0, 472, 11083, 10319, 10383,
+ 917971, 0, 83202, 83203, 3602, 83206, 41182, 83199, 83200, 69796, 41183,
+ 0, 10271, 10287, 684, 0, 0, 0, 83214, 4592, 83216, 83217, 83210, 11963,
+ 43620, 83213, 0, 0, 83208, 83209, 0, 92623, 128559, 3415, 0, 121267, 0,
+ 0, 123151, 43447, 0, 92212, 0, 418, 0, 0, 10295, 10327, 10391, 0, 83189,
+ 83190, 83192, 83194, 83185, 83186, 83187, 83188, 120879, 0, 41446, 70700,
+ 0, 0, 120809, 10599, 66892, 0, 0, 0, 0, 0, 0, 11437, 0, 0, 0, 0, 0, 0,
+ 12624, 0, 41185, 72865, 69439, 8159, 0, 11686, 71478, 65224, 0, 4655, 0,
+ 0, 92183, 0, 10343, 10407, 0, 0, 0, 111221, 0, 0, 0, 94057, 68201,
+ 129574, 0, 983572, 72156, 42792, 5743, 10424, 0, 0, 0, 0, 0, 8875,
+ 111225, 0, 917991, 13117, 12847, 4651, 118917, 0, 962, 0, 0, 2242, 42564,
+ 0, 1582, 0, 5508, 0, 0, 0, 10801, 123602, 118798, 73705, 0, 66911, 10439,
+ 66891, 0, 0, 7860, 0, 906, 917985, 0, 6405, 64722, 0, 83266, 64694,
+ 83268, 917990, 1153, 83263, 64788, 83265, 0, 12626, 83260, 83261, 9964,
+ 0, 0, 4642, 66574, 127886, 0, 0, 0, 0, 0, 9008, 100847, 0, 0, 0, 83248,
+ 917976, 917993, 123173, 42842, 83244, 83245, 83247, 83239, 83240, 83241,
+ 83242, 0, 11335, 92661, 83238, 3920, 0, 0, 0, 83255, 83256, 41967, 83258,
+ 83251, 83252, 83253, 8920, 0, 0, 83249, 83250, 0, 0, 43919, 0, 0, 0, 0,
+ 128021, 0, 68113, 65196, 0, 0, 128472, 0, 10111, 64875, 0, 83491, 43998,
+ 83232, 83233, 83234, 70691, 83228, 42149, 83230, 68508, 0, 0, 0, 0, 0, 0,
+ 0, 4110, 66005, 74034, 0, 0, 0, 66703, 0, 0, 983157, 6025, 69242, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 70733, 0, 983043, 0, 0, 0, 68817, 0, 0, 0, 0, 0, 0,
+ 43286, 0, 68765, 0, 0, 0, 0, 129871, 65144, 0, 0, 83236, 65840, 0, 0,
+ 10081, 0, 0, 983893, 0, 0, 0, 127394, 65882, 0, 128758, 0, 0, 3605,
+ 10985, 0, 0, 128872, 93972, 1745, 0, 73835, 0, 0, 0, 0, 0, 0, 8806, 7023,
+ 0, 0, 0, 70702, 70304, 0, 0, 0, 0, 0, 0, 0, 0, 348, 10089, 0, 9017, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 42515, 0, 0, 0, 0, 5391, 983236, 0, 0, 0, 5561, 0,
+ 9429, 0, 67150, 7933, 5562, 0, 0, 0, 0, 78039, 0, 0, 0, 0, 3979, 71248,
+ 0, 0, 0, 68847, 0, 0, 118847, 65847, 68836, 68838, 0, 10585, 0, 92676,
+ 7334, 0, 0, 0, 831, 0, 0, 10716, 0, 121325, 0, 12218, 0, 6939, 70697,
+ 65042, 0, 0, 916, 0, 0, 11968, 0, 0, 5563, 0, 0, 128830, 5560, 41212,
+ 41774, 0, 4497, 0, 0, 0, 9039, 70678, 41776, 0, 8716, 3567, 119252, 0, 0,
+ 74260, 0, 93954, 0, 0, 100827, 0, 128879, 70072, 68355, 68357, 0, 0,
+ 8634, 0, 0, 4209, 120702, 68832, 65879, 68825, 68819, 68822, 0, 5679,
+ 68813, 68815, 68811, 68812, 64697, 5678, 11821, 68802, 93969, 0, 0, 0, 0,
+ 70114, 0, 0, 0, 0, 0, 0, 0, 0, 7782, 0, 0, 0, 0, 129977, 65711, 65712,
+ 1216, 0, 69409, 5792, 0, 0, 0, 0, 0, 12244, 0, 5683, 0, 120895, 121336,
+ 43448, 70670, 0, 0, 5682, 10242, 75043, 74520, 5680, 917568, 10001, 0, 0,
+ 1449, 10241, 0, 70708, 0, 0, 83180, 83182, 83183, 8584, 83176, 5567,
+ 83178, 83179, 0, 5564, 42886, 42884, 42882, 5565, 119022, 120881, 0,
+ 65708, 65709, 5566, 0, 65704, 65705, 11904, 42875, 0, 42873, 5942, 0, 0,
+ 10361, 10425, 65697, 65698, 65699, 0, 66598, 0, 64664, 10647, 78702,
+ 78703, 78690, 78700, 0, 65701, 1934, 0, 0, 0, 78710, 0, 78706, 78709,
+ 6087, 78705, 78716, 78719, 78711, 8043, 8950, 65694, 64485, 0, 10457, 0,
+ 78724, 78725, 78722, 72332, 78720, 78721, 0, 65515, 0, 10035, 13069, 0,
+ 0, 127773, 0, 0, 0, 125207, 0, 0, 1667, 0, 0, 42428, 110950, 0, 0, 41750,
+ 0, 0, 93999, 0, 8101, 3610, 113670, 41748, 110948, 0, 78394, 119208, 0,
+ 0, 113691, 64549, 68359, 0, 0, 65692, 92701, 0, 0, 12896, 10456, 68298,
+ 0, 0, 0, 0, 917962, 0, 0, 113665, 70502, 0, 65687, 0, 0, 74009, 0,
+ 113673, 8536, 70671, 0, 78726, 0, 724, 0, 113675, 78749, 9975, 78746,
+ 78747, 78744, 4175, 78741, 78743, 78751, 939, 0, 128799, 983119, 0, 0, 0,
+ 78763, 78764, 78760, 78761, 78758, 78759, 78755, 8425, 0, 0, 0, 8188, 0,
+ 0, 0, 0, 0, 6370, 0, 7827, 68441, 75008, 0, 917943, 0, 118863, 0, 0, 0,
+ 0, 121243, 73988, 0, 113668, 0, 11012, 0, 43764, 178, 12972, 74620,
+ 113671, 0, 113735, 0, 66764, 0, 0, 65690, 72339, 0, 0, 917950, 9252, 0,
+ 4652, 74259, 0, 917947, 0, 0, 0, 10806, 0, 0, 70016, 0, 6723, 0, 0, 6993,
+ 0, 0, 12855, 0, 0, 11390, 0, 0, 0, 92503, 0, 0, 983161, 125270, 92627,
+ 8278, 0, 4034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12750, 9350, 66037, 0, 0,
+ 73700, 12747, 0, 0, 128064, 43153, 74640, 0, 0, 43150, 0, 983090, 983088,
+ 66779, 66777, 10813, 2592, 43139, 0, 0, 118870, 0, 0, 71891, 0, 0, 0, 0,
+ 0, 0, 71697, 0, 128825, 1596, 0, 0, 0, 0, 6838, 66572, 0, 126574, 120627,
8092, 12805, 41928, 0, 78406, 78409, 0, 0, 0, 9931, 0, 0, 0, 0, 0,
983759, 6107, 0, 0, 0, 0, 128745, 0, 335, 127003, 64689, 0, 0, 5765, 0,
0, 119227, 6092, 118851, 0, 8876, 83465, 74947, 83455, 129186, 83454,
@@ -27401,76 +27401,76 @@ static const unsigned int code_hash[] = {
0, 0, 0, 0, 0, 843, 0, 71099, 0, 0, 41935, 0, 0, 0, 0, 1371, 0, 43818,
43159, 8069, 9579, 41938, 41608, 0, 92444, 6242, 0, 0, 128595, 128244, 0,
92499, 8805, 1742, 113722, 0, 8202, 72399, 0, 983197, 0, 0, 73882,
- 100809, 0, 43467, 123636, 55290, 0, 1712, 5932, 0, 41762, 71982, 0,
- 11967, 1775, 0, 75009, 0, 120398, 120387, 9458, 0, 126614, 0, 0, 43176,
- 101032, 101031, 42782, 101033, 101036, 101035, 101038, 101037, 101040,
- 101039, 0, 0, 0, 0, 101041, 5794, 92274, 2662, 101045, 101044, 8254,
- 101046, 10975, 101048, 120625, 101050, 917977, 4108, 8478, 917982,
- 194790, 0, 92263, 917980, 7507, 0, 43149, 0, 65031, 7961, 1636, 0, 65029,
- 0, 129665, 70188, 9674, 0, 99, 98, 97, 101022, 92203, 4049, 101027,
- 43880, 7090, 101028, 0, 101030, 66589, 0, 65310, 66593, 66599, 129805, 0,
- 0, 7447, 66594, 0, 0, 0, 73920, 66595, 66596, 42570, 5593, 0, 0, 0, 0,
- 6061, 64854, 119, 118, 117, 116, 0, 122, 121, 120, 111, 110, 109, 108,
- 115, 114, 113, 112, 103, 102, 101, 100, 107, 106, 105, 104, 128504,
- 73974, 534, 0, 67713, 1536, 73973, 73970, 0, 0, 0, 6020, 12716, 0, 12744,
- 65143, 0, 13266, 127813, 0, 0, 0, 127116, 0, 1212, 65560, 0, 8134, 42935,
- 12129, 73870, 0, 1866, 0, 0, 0, 0, 65073, 12059, 66585, 121391, 0, 0, 0,
- 5935, 1250, 0, 8174, 9787, 6733, 9859, 9858, 9861, 9860, 101012, 1882,
- 1892, 6731, 10882, 10795, 101018, 73911, 101020, 101019, 41169, 8939, 0,
- 120713, 41170, 1454, 0, 65130, 69732, 0, 0, 129611, 41172, 7855, 0,
- 71472, 0, 0, 0, 71691, 65901, 0, 0, 645, 100992, 100991, 100994, 100993,
- 100996, 100995, 100998, 65587, 0, 10688, 0, 0, 7729, 0, 101001, 120518,
- 101003, 66722, 101005, 101004, 68415, 101006, 4538, 101008, 43141, 0, 0,
- 73699, 0, 0, 0, 71918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2381, 983733, 0,
- 0, 69857, 100981, 0, 100983, 100982, 100985, 10856, 100987, 55255, 41478,
- 8582, 10064, 0, 0, 0, 0, 64896, 0, 74609, 0, 128048, 10082, 11575, 0, 0,
- 0, 917505, 0, 6145, 75020, 0, 92433, 71916, 83279, 43186, 0, 0, 83274,
- 83276, 83277, 83278, 10191, 83271, 69633, 72353, 0, 0, 0, 0, 120090,
- 120089, 7931, 8558, 917946, 0, 0, 0, 119145, 120081, 120084, 120083,
- 120086, 71449, 120088, 7366, 7019, 75021, 0, 917951, 120078, 120077,
- 120080, 8657, 100967, 8594, 100969, 100968, 0, 100970, 120072, 120071, 0,
- 0, 43154, 0, 0, 11332, 0, 7728, 100978, 100977, 100980, 100979, 7851, 0,
- 8375, 128662, 0, 0, 126095, 9085, 0, 0, 9327, 6160, 0, 0, 0, 0, 70698,
- 74012, 0, 0, 4439, 121151, 100972, 100971, 100974, 100973, 100976,
- 100975, 100956, 42524, 71220, 100957, 10826, 100959, 11296, 0, 0, 0,
- 7504, 43161, 127868, 0, 64670, 0, 78056, 0, 11295, 0, 78053, 0, 0, 0,
- 10902, 0, 0, 0, 78068, 10472, 100954, 100953, 120215, 78062, 2371, 78069,
- 118893, 259, 0, 0, 2402, 12157, 6440, 0, 100963, 100962, 100965, 100964,
- 65380, 9103, 2278, 0, 0, 7301, 0, 10219, 0, 0, 0, 67718, 43178, 0, 0,
- 119362, 917974, 8613, 0, 126121, 917978, 917979, 121449, 12005, 7353, 0,
- 1890, 129130, 0, 0, 0, 42815, 7991, 0, 10578, 0, 0, 0, 0, 0, 0, 0, 0,
- 120601, 42668, 9348, 0, 6164, 0, 0, 0, 7676, 0, 0, 0, 0, 0, 129422,
- 83443, 71096, 0, 9175, 0, 78047, 9088, 73689, 0, 1396, 0, 0, 11461,
- 71088, 127835, 92252, 0, 71090, 121185, 69872, 0, 0, 0, 0, 74043, 119632,
- 0, 0, 0, 5928, 4525, 10658, 0, 1266, 10180, 64472, 0, 12622, 0, 0, 0, 0,
- 127139, 13310, 773, 19933, 0, 0, 0, 0, 92205, 0, 0, 0, 0, 5862, 7823, 0,
- 0, 0, 3250, 43991, 69687, 66649, 0, 0, 0, 0, 0, 64673, 917963, 917964, 0,
- 0, 917967, 917968, 917965, 917966, 127791, 75041, 3471, 917970, 64573,
- 882, 0, 119584, 0, 120772, 0, 0, 0, 92696, 0, 0, 72988, 0, 3225, 0,
- 73729, 0, 0, 43173, 11752, 4381, 0, 0, 917945, 11756, 11757, 917944,
- 917949, 42654, 127848, 917948, 0, 0, 5160, 1387, 0, 917953, 0, 128933,
- 917956, 917957, 917954, 917955, 917960, 121082, 917958, 10789, 68314, 0,
- 126521, 11143, 0, 0, 70669, 128904, 42179, 0, 5931, 11744, 11215, 70676,
- 119245, 0, 0, 0, 77915, 10217, 64635, 128661, 83292, 0, 0, 0, 0, 0,
- 41296, 11747, 41291, 0, 0, 0, 41294, 41282, 5923, 120610, 0, 0, 0, 0,
- 66800, 5786, 68252, 42539, 119869, 119860, 0, 41474, 0, 0, 0, 5934,
- 74572, 66583, 119231, 0, 94072, 64481, 0, 0, 0, 0, 67240, 0, 0, 123201,
- 0, 5819, 0, 0, 0, 0, 0, 129387, 0, 0, 0, 67993, 1237, 194749, 0, 0,
- 983557, 0, 0, 0, 0, 0, 0, 0, 69789, 11266, 69845, 0, 10506, 194747, 0, 0,
- 0, 0, 43185, 194748, 100533, 100532, 100535, 10769, 100537, 100536,
- 100539, 9753, 121035, 100540, 0, 0, 121433, 0, 100542, 6072, 100544,
- 100543, 100546, 100545, 100548, 100547, 100550, 100549, 0, 113744, 0, 0,
- 7222, 10283, 10315, 10379, 4996, 0, 129294, 66517, 0, 10087, 127833,
- 74938, 0, 0, 83492, 7565, 42890, 0, 77931, 43180, 77928, 74891, 77929,
- 43982, 100526, 622, 77926, 100527, 100530, 1602, 0, 0, 0, 129559, 12160,
- 0, 10212, 77936, 194605, 12071, 43143, 77935, 917983, 917984, 917989,
- 77932, 917987, 917988, 10255, 10263, 10279, 4194, 10375, 93035, 0, 0,
- 12644, 127516, 917994, 75007, 110791, 67408, 110789, 11501, 41177, 0, 0,
- 71912, 0, 0, 8715, 0, 41179, 0, 0, 0, 41176, 0, 41181, 0, 8452, 121006,
- 13161, 0, 70503, 5921, 0, 2597, 0, 5922, 72128, 0, 74242, 0, 0, 0, 0, 0,
- 0, 0, 0, 127906, 0, 64944, 0, 0, 0, 0, 5924, 5920, 129508, 6921, 78081,
- 74007, 78078, 8418, 11681, 43169, 10176, 0, 0, 0, 78087, 10772, 65276,
- 5937, 1914, 78084, 11682, 0, 0, 0, 11685, 0, 100513, 7772, 11680, 100514,
+ 100809, 0, 43467, 123636, 55290, 0, 1712, 5932, 0, 41762, 71982, 0,
+ 11967, 1775, 0, 75009, 0, 120398, 120387, 9458, 0, 126614, 0, 0, 43176,
+ 101032, 101031, 42782, 101033, 101036, 101035, 101038, 101037, 101040,
+ 101039, 0, 0, 0, 0, 101041, 5794, 92274, 2662, 101045, 101044, 8254,
+ 101046, 10975, 101048, 120625, 101050, 917977, 4108, 8478, 917982,
+ 194790, 0, 92263, 917980, 7507, 0, 43149, 0, 65031, 7961, 1636, 0, 65029,
+ 0, 129665, 70188, 9674, 0, 99, 98, 97, 101022, 92203, 4049, 101027,
+ 43880, 7090, 101028, 0, 101030, 66589, 0, 65310, 66593, 66599, 129805, 0,
+ 0, 7447, 66594, 0, 0, 0, 73920, 66595, 66596, 42570, 5593, 0, 0, 0, 0,
+ 6061, 64854, 119, 118, 117, 116, 0, 122, 121, 120, 111, 110, 109, 108,
+ 115, 114, 113, 112, 103, 102, 101, 100, 107, 106, 105, 104, 128504,
+ 73974, 534, 0, 67713, 1536, 73973, 73970, 0, 0, 0, 6020, 12716, 0, 12744,
+ 65143, 0, 13266, 127813, 0, 0, 0, 127116, 0, 1212, 65560, 0, 8134, 42935,
+ 12129, 73870, 0, 1866, 0, 0, 0, 0, 65073, 12059, 66585, 121391, 0, 0, 0,
+ 5935, 1250, 0, 8174, 9787, 6733, 9859, 9858, 9861, 9860, 101012, 1882,
+ 1892, 6731, 10882, 10795, 101018, 73911, 101020, 101019, 41169, 8939, 0,
+ 120713, 41170, 1454, 0, 65130, 69732, 0, 0, 129611, 41172, 7855, 0,
+ 71472, 0, 0, 0, 71691, 65901, 0, 0, 645, 100992, 100991, 100994, 100993,
+ 100996, 100995, 100998, 65587, 0, 10688, 0, 0, 7729, 0, 101001, 120518,
+ 101003, 66722, 101005, 101004, 68415, 101006, 4538, 101008, 43141, 0, 0,
+ 73699, 0, 0, 0, 71918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2381, 983733, 0,
+ 0, 69857, 100981, 0, 100983, 100982, 100985, 10856, 100987, 55255, 41478,
+ 8582, 10064, 0, 0, 0, 0, 64896, 0, 74609, 0, 128048, 10082, 11575, 0, 0,
+ 0, 917505, 0, 6145, 75020, 0, 92433, 71916, 83279, 43186, 0, 0, 83274,
+ 83276, 83277, 83278, 10191, 83271, 69633, 72353, 0, 0, 0, 0, 120090,
+ 120089, 7931, 8558, 917946, 0, 0, 0, 119145, 120081, 120084, 120083,
+ 120086, 71449, 120088, 7366, 7019, 75021, 0, 917951, 120078, 120077,
+ 120080, 8657, 100967, 8594, 100969, 100968, 0, 100970, 120072, 120071, 0,
+ 0, 43154, 0, 0, 11332, 0, 7728, 100978, 100977, 100980, 100979, 7851, 0,
+ 8375, 128662, 0, 0, 126095, 9085, 0, 0, 9327, 6160, 0, 0, 0, 0, 70698,
+ 74012, 0, 0, 4439, 121151, 100972, 100971, 100974, 100973, 100976,
+ 100975, 100956, 42524, 71220, 100957, 10826, 100959, 11296, 0, 0, 0,
+ 7504, 43161, 127868, 0, 64670, 0, 78056, 0, 11295, 0, 78053, 0, 0, 0,
+ 10902, 0, 0, 0, 78068, 10472, 100954, 100953, 120215, 78062, 2371, 78069,
+ 118893, 259, 0, 0, 2402, 12157, 6440, 0, 100963, 100962, 100965, 100964,
+ 65380, 9103, 2278, 0, 0, 7301, 0, 10219, 0, 0, 0, 67718, 43178, 0, 0,
+ 119362, 917974, 8613, 0, 126121, 917978, 917979, 121449, 12005, 7353, 0,
+ 1890, 129130, 0, 0, 0, 42815, 7991, 0, 10578, 0, 0, 0, 0, 0, 0, 0, 0,
+ 120601, 42668, 9348, 0, 6164, 0, 0, 0, 7676, 0, 0, 0, 0, 0, 129422,
+ 83443, 71096, 0, 9175, 0, 78047, 9088, 73689, 0, 1396, 0, 0, 11461,
+ 71088, 127835, 92252, 0, 71090, 121185, 69872, 0, 0, 0, 0, 74043, 119632,
+ 0, 0, 0, 5928, 4525, 10658, 0, 1266, 10180, 64472, 0, 12622, 0, 0, 0, 0,
+ 127139, 13310, 773, 19933, 0, 0, 0, 0, 92205, 0, 0, 0, 0, 5862, 7823, 0,
+ 0, 0, 3250, 43991, 69687, 66649, 0, 0, 0, 0, 0, 64673, 917963, 917964, 0,
+ 0, 917967, 917968, 917965, 917966, 127791, 75041, 3471, 917970, 64573,
+ 882, 0, 119584, 0, 120772, 0, 0, 0, 92696, 0, 0, 72988, 0, 3225, 0,
+ 73729, 0, 0, 43173, 11752, 4381, 0, 0, 917945, 11756, 11757, 917944,
+ 917949, 42654, 127848, 917948, 0, 0, 5160, 1387, 0, 917953, 0, 128933,
+ 917956, 917957, 917954, 917955, 917960, 121082, 917958, 10789, 68314, 0,
+ 126521, 11143, 0, 0, 70669, 128904, 42179, 0, 5931, 11744, 11215, 70676,
+ 119245, 0, 0, 0, 77915, 10217, 64635, 128661, 83292, 0, 0, 0, 0, 0,
+ 41296, 11747, 41291, 0, 0, 0, 41294, 41282, 5923, 120610, 0, 0, 0, 0,
+ 66800, 5786, 68252, 42539, 119869, 119860, 0, 41474, 0, 0, 0, 5934,
+ 74572, 66583, 119231, 0, 94072, 64481, 0, 0, 0, 0, 67240, 0, 0, 123201,
+ 0, 5819, 0, 0, 0, 0, 0, 129387, 0, 0, 0, 67993, 1237, 194749, 0, 0,
+ 983557, 0, 0, 0, 0, 0, 0, 0, 69789, 11266, 69845, 0, 10506, 194747, 0, 0,
+ 0, 0, 43185, 194748, 100533, 100532, 100535, 10769, 100537, 100536,
+ 100539, 9753, 121035, 100540, 0, 0, 121433, 0, 100542, 6072, 100544,
+ 100543, 100546, 100545, 100548, 100547, 100550, 100549, 0, 113744, 0, 0,
+ 7222, 10283, 10315, 10379, 4996, 0, 129294, 66517, 0, 10087, 127833,
+ 74938, 0, 0, 83492, 7565, 42890, 0, 77931, 43180, 77928, 74891, 77929,
+ 43982, 100526, 622, 77926, 100527, 100530, 1602, 0, 0, 0, 129559, 12160,
+ 0, 10212, 77936, 194605, 12071, 43143, 77935, 917983, 917984, 917989,
+ 77932, 917987, 917988, 10255, 10263, 10279, 4194, 10375, 93035, 0, 0,
+ 12644, 127516, 917994, 75007, 110791, 67408, 110789, 11501, 41177, 0, 0,
+ 71912, 0, 0, 8715, 0, 41179, 0, 0, 0, 41176, 0, 41181, 0, 8452, 121006,
+ 13161, 0, 70503, 5921, 0, 2597, 0, 5922, 72128, 0, 74242, 0, 0, 0, 0, 0,
+ 0, 0, 0, 127906, 0, 64944, 0, 0, 0, 0, 5924, 5920, 129508, 6921, 78081,
+ 74007, 78078, 8418, 11681, 43169, 10176, 0, 0, 0, 78087, 10772, 65276,
+ 5937, 1914, 78084, 11682, 0, 0, 0, 11685, 0, 100513, 7772, 11680, 100514,
100517, 100516, 100519, 7417, 718, 100520, 70083, 100500, 120718, 3235,
0, 43164, 0, 8018, 0, 0, 128708, 6937, 67672, 128508, 0, 10067, 120849,
0, 0, 0, 0, 0, 100491, 0, 100493, 100492, 13116, 100494, 100497, 9945,
@@ -27479,1509 +27479,1509 @@ static const unsigned int code_hash[] = {
4544, 71228, 0, 0, 0, 78097, 11110, 66810, 12882, 64511, 78094, 78100,
78102, 71226, 10141, 0, 78280, 65298, 4476, 78109, 94005, 71216, 8907,
78105, 78106, 78103, 78104, 120898, 0, 10665, 64616, 128944, 0, 127545,
- 69605, 83159, 83160, 4554, 0, 83155, 83156, 83157, 83158, 0, 125123, 0,
- 72258, 129831, 0, 129815, 0, 43179, 0, 0, 0, 717, 10754, 83168, 83169,
- 83162, 83163, 83164, 83165, 78282, 0, 0, 83161, 68848, 10611, 72859,
- 126978, 71474, 129426, 127871, 0, 0, 0, 12820, 0, 0, 7009, 70103, 0, 0,
- 67848, 41173, 4574, 0, 0, 128338, 575, 78110, 43456, 8563, 100469, 0, 0,
- 65565, 0, 5936, 7290, 78117, 78118, 74919, 308, 78113, 78114, 83151,
- 78123, 83153, 83154, 0, 0, 0, 0, 78132, 5926, 68250, 78130, 78126, 78127,
- 78124, 78125, 42513, 0, 129026, 0, 11651, 13093, 78135, 0, 100471, 0,
- 100473, 100472, 100475, 74048, 100477, 71995, 100457, 100456, 43703,
- 13097, 0, 100460, 13283, 0, 0, 125073, 3488, 5933, 10033, 0, 0, 65570, 0,
- 12297, 0, 0, 0, 128517, 42538, 0, 129293, 0, 100451, 0, 100453, 100452,
- 100455, 100454, 121221, 0, 0, 7638, 0, 129193, 0, 43109, 7637, 0, 11213,
- 100461, 83355, 100463, 100466, 100465, 0, 0, 7636, 0, 0, 0, 128848,
- 983087, 291, 0, 0, 2027, 78141, 78142, 78136, 78137, 83481, 4640, 64713,
- 10224, 120429, 11183, 83482, 120430, 0, 0, 0, 127148, 83479, 0, 0, 83488,
- 0, 0, 0, 0, 68837, 5778, 0, 0, 0, 12680, 119130, 0, 67242, 93041, 0, 0,
- 0, 11552, 0, 127855, 0, 70091, 0, 10172, 65453, 120408, 66014, 120410, 0,
- 4641, 11556, 64819, 78269, 120416, 72341, 41469, 41467, 120412, 120415,
- 4646, 120425, 865, 78275, 78274, 78273, 4645, 78271, 78270, 0, 983172,
- 7338, 0, 68840, 0, 12565, 0, 0, 0, 195089, 119655, 195091, 195090, 2913,
- 13120, 128956, 195094, 195097, 195096, 128019, 0, 71462, 0, 7916, 10485,
- 195098, 0, 195100, 195099, 0, 67705, 128351, 195077, 195080, 129636,
- 129549, 195081, 0, 0, 0, 10229, 10687, 826, 128081, 195082, 195085,
- 195084, 195087, 195086, 0, 1808, 7848, 0, 0, 0, 0, 0, 0, 128897, 69255,
- 42942, 67704, 0, 0, 0, 0, 42940, 0, 9144, 0, 0, 92992, 9840, 0, 0, 0, 0,
- 0, 0, 74448, 83475, 0, 10962, 66904, 113718, 983187, 0, 0, 74537, 195072,
- 1792, 195074, 195073, 78266, 195075, 0, 0, 12066, 0, 385, 4152, 0, 0, 0,
- 67397, 0, 0, 0, 0, 43258, 0, 0, 13157, 0, 0, 3570, 0, 0, 0, 67252, 0,
- 71218, 126631, 7879, 68247, 128579, 0, 0, 70196, 0, 0, 8463, 7810,
- 917862, 7839, 983859, 127768, 917860, 9691, 0, 129323, 0, 120385, 0,
- 917844, 0, 10066, 0, 983855, 0, 0, 0, 8016, 0, 983072, 64831, 0, 126103,
- 0, 119171, 1634, 68115, 94192, 11056, 0, 0, 0, 41165, 11328, 12450, 0,
- 41166, 0, 12456, 0, 171, 0, 12452, 917544, 12458, 12531, 0, 917853, 0,
- 74162, 0, 0, 9969, 0, 12454, 74160, 42132, 110755, 78878, 110753, 3230,
- 73711, 0, 0, 8932, 4399, 5810, 64534, 8415, 0, 110756, 110757, 74159, 0,
- 0, 960, 74156, 6981, 92374, 12938, 9201, 0, 983658, 74904, 0, 72866,
- 92270, 0, 0, 0, 129792, 5851, 73833, 5824, 0, 5844, 110848, 110849,
- 110846, 110847, 4663, 0, 0, 0, 0, 0, 74085, 0, 0, 0, 0, 0, 92339, 0, 0,
- 5782, 0, 0, 0, 43796, 129639, 0, 195083, 125223, 128004, 0, 43861, 0, 0,
- 0, 92976, 0, 0, 0, 4659, 0, 0, 0, 0, 129386, 0, 11129, 2238, 329, 0,
- 92707, 121416, 0, 0, 0, 69943, 67692, 42167, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 69618, 43671, 0, 64701, 0, 0, 0, 93055, 1172, 125089, 6786, 43601,
- 0, 74126, 0, 0, 0, 0, 0, 0, 0, 0, 118804, 0, 66741, 5347, 0, 983644, 0,
- 0, 10588, 0, 0, 0, 0, 5343, 0, 0, 0, 5341, 0, 0, 74916, 5351, 0, 0,
- 917884, 0, 92692, 0, 121148, 128916, 0, 0, 66785, 126256, 6638, 0, 0,
- 271, 0, 917904, 0, 0, 12653, 67588, 0, 0, 0, 0, 128838, 11912, 128301,
- 983646, 0, 11800, 0, 0, 11103, 0, 7340, 0, 110695, 0, 0, 0, 0, 2423, 0,
- 0, 0, 128136, 42705, 0, 0, 0, 11854, 0, 0, 0, 0, 4916, 0, 380, 10958,
- 66563, 127790, 78284, 67587, 0, 12918, 0, 917897, 0, 917898, 917893,
- 10684, 0, 125063, 92906, 0, 0, 8182, 0, 0, 129434, 0, 0, 0, 92904, 0,
- 6630, 100405, 0, 123191, 0, 0, 0, 65876, 5535, 129892, 0, 0, 92609, 0,
- 983343, 6477, 43795, 92217, 129571, 72163, 0, 43848, 0, 0, 74256, 2665,
- 11304, 43751, 0, 4970, 74353, 0, 8934, 0, 93996, 4492, 92908, 65011, 0,
- 0, 92909, 1188, 7254, 1100, 0, 0, 0, 2912, 11749, 92643, 0, 0, 65057, 0,
- 12343, 0, 78879, 0, 78880, 0, 0, 0, 70355, 0, 0, 11803, 0, 0, 41450, 0,
- 100897, 0, 41451, 0, 0, 8273, 0, 3451, 0, 972, 41453, 68164, 78876, 0,
- 92408, 73945, 43504, 2288, 78873, 9538, 78874, 128685, 0, 129095, 0, 0,
- 0, 0, 11019, 0, 0, 121205, 0, 73007, 71365, 92716, 5927, 0, 0, 0, 0,
- 128484, 0, 6073, 0, 0, 0, 6075, 93995, 282, 126510, 0, 74078, 121459,
- 65861, 0, 0, 66791, 0, 3474, 0, 0, 0, 6081, 0, 127843, 74076, 0, 0, 0,
- 128908, 0, 0, 0, 12623, 120273, 9120, 120275, 4665, 12628, 4670, 120271,
- 120272, 0, 0, 121480, 958, 0, 0, 0, 4666, 0, 4915, 0, 4669, 0, 0, 0,
- 4664, 0, 120550, 0, 0, 0, 0, 94023, 0, 917875, 8664, 11664, 0, 129327,
- 11224, 0, 0, 1063, 120250, 120251, 9772, 7255, 8886, 0, 127932, 120257,
- 120258, 120259, 120260, 42661, 71345, 120255, 119125, 120265, 120266,
- 120267, 42721, 92407, 120262, 120263, 66788, 1017, 0, 0, 505, 1447, 0, 0,
- 70340, 66793, 65115, 42789, 128443, 0, 0, 123634, 0, 119195, 0, 0, 11745,
- 7919, 0, 1641, 0, 0, 8966, 0, 0, 8743, 71870, 0, 67813, 0, 0, 0, 123206,
- 0, 0, 128505, 10169, 71324, 0, 10068, 0, 120457, 120456, 120455, 120454,
- 257, 43170, 13153, 0, 0, 0, 0, 0, 0, 6496, 19917, 5930, 128354, 11033, 0,
- 0, 5622, 120436, 8477, 8474, 120433, 120432, 0, 0, 0, 41435, 4352, 0,
- 2435, 0, 5621, 0, 4201, 8450, 4203, 4202, 4205, 4204, 120447, 120446,
- 120445, 66792, 41440, 120442, 8473, 6373, 8469, 120438, 0, 4564, 125206,
- 0, 0, 0, 8374, 73669, 0, 0, 66796, 0, 0, 0, 0, 0, 69297, 0, 5626, 43507,
- 11771, 0, 0, 0, 42614, 0, 5625, 0, 0, 0, 5623, 0, 0, 42623, 64277, 69942,
- 0, 0, 120752, 0, 5817, 5629, 0, 7551, 10325, 5632, 69674, 0, 0, 124946,
- 125194, 5628, 0, 5631, 0, 0, 2400, 5627, 0, 0, 118786, 74792, 0, 0, 0,
- 203, 129084, 74365, 0, 0, 0, 0, 83382, 83422, 0, 0, 554, 0, 0, 0, 12182,
- 0, 64569, 110840, 73891, 0, 0, 0, 7689, 69798, 9323, 10269, 10285, 10317,
- 175, 0, 0, 0, 0, 0, 1243, 42154, 0, 92387, 0, 0, 43651, 0, 125021, 0,
- 9075, 128774, 0, 64777, 128570, 0, 0, 0, 0, 65255, 0, 121142, 4490, 0,
- 6649, 120698, 12181, 0, 11977, 7249, 8366, 0, 7756, 12342, 0, 51, 41516,
- 69432, 0, 9568, 71318, 456, 0, 10437, 1168, 9251, 9082, 0, 0, 42781,
- 3866, 0, 41512, 0, 0, 68121, 41494, 0, 4660, 0, 10405, 0, 0, 0, 0, 0,
- 73918, 119627, 110686, 41454, 12605, 0, 126611, 41455, 917996, 983605, 0,
- 8214, 0, 100413, 0, 41457, 0, 0, 1969, 127771, 0, 69554, 7413, 0, 69426,
- 10341, 43864, 78079, 5854, 0, 0, 0, 129684, 72819, 0, 0, 0, 0, 0, 8429,
- 0, 72328, 0, 6429, 0, 0, 0, 0, 110688, 83417, 0, 917864, 120813, 83423,
- 1662, 129588, 0, 0, 917871, 917868, 0, 0, 66, 65, 68, 67, 70, 69, 72, 71,
- 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83, 86, 85, 88, 87, 90, 89,
- 0, 0, 7385, 70508, 1704, 12993, 0, 0, 0, 0, 0, 0, 0, 0, 11353, 72207, 0,
- 0, 0, 0, 118831, 0, 0, 0, 0, 0, 0, 83364, 0, 0, 1289, 0, 0, 119583, 0,
- 65507, 0, 0, 0, 128042, 0, 74409, 0, 0, 0, 0, 64793, 0, 0, 100843, 5675,
- 119239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6972, 70735, 0, 121108, 126217, 0,
- 0, 0, 0, 0, 110640, 67687, 0, 0, 119634, 0, 43977, 111252, 129105, 0,
- 7412, 64671, 0, 1412, 4594, 1391, 0, 8067, 12478, 110639, 78375, 110637,
- 10281, 110635, 0, 0, 7960, 43271, 0, 12518, 69846, 0, 3566, 0, 0, 69864,
- 0, 0, 68021, 0, 0, 0, 8223, 0, 4261, 121460, 68918, 0, 0, 121294, 113712,
- 0, 128046, 43419, 72748, 0, 10574, 0, 67691, 0, 0, 73785, 0, 78875,
- 128541, 0, 127366, 0, 0, 0, 0, 6695, 65113, 324, 0, 128373, 40985, 0, 0,
- 0, 0, 0, 72307, 43474, 0, 121190, 0, 0, 3420, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 110871, 9574, 120684, 110870, 0, 5204, 74774, 0, 11835, 0, 0, 983185, 0,
- 0, 0, 0, 0, 0, 11750, 68898, 127004, 0, 0, 0, 0, 8130, 0, 0, 0, 121268,
- 0, 129443, 0, 68455, 42863, 73839, 0, 0, 0, 0, 0, 0, 0, 612, 110875,
- 110876, 72231, 10538, 0, 1674, 0, 0, 0, 12280, 0, 540, 74550, 0, 66422,
- 8432, 0, 11073, 0, 64316, 129894, 0, 7388, 0, 0, 0, 0, 126107, 0, 3359,
- 0, 0, 67284, 0, 0, 65482, 129589, 0, 64742, 129304, 0, 0, 74273, 0,
- 19941, 0, 0, 0, 0, 9481, 65555, 0, 66628, 129126, 1195, 64898, 0, 0, 0,
- 2010, 0, 0, 0, 0, 0, 0, 4360, 127009, 9739, 0, 72885, 0, 0, 0, 126265,
- 72200, 0, 0, 0, 72199, 0, 0, 65734, 0, 0, 129690, 13075, 0, 94063, 0,
- 43532, 10837, 2492, 74516, 983075, 120882, 0, 0, 11813, 9649, 0, 119617,
- 5128, 7377, 0, 65604, 0, 0, 6771, 1648, 7819, 0, 0, 0, 125192, 128131,
- 12709, 6986, 0, 0, 0, 0, 0, 12581, 0, 5175, 0, 73806, 0, 128420, 0, 0,
- 77950, 0, 0, 607, 0, 0, 128846, 119605, 0, 129528, 65477, 0, 121130, 0,
- 8265, 0, 0, 0, 5840, 42838, 0, 0, 68366, 0, 119255, 0, 0, 0, 127929, 0,
- 2550, 121011, 6779, 70059, 0, 0, 0, 0, 0, 0, 5619, 65822, 0, 0, 0,
- 129392, 5616, 11486, 0, 0, 0, 0, 5615, 0, 121319, 42380, 127958, 0,
- 66451, 74407, 0, 11347, 0, 1026, 5620, 0, 0, 11350, 5617, 0, 0, 64639, 0,
- 0, 0, 1338, 0, 0, 0, 4603, 0, 70715, 92484, 0, 9002, 0, 3974, 78213, 0,
- 0, 0, 0, 0, 0, 75038, 66040, 70455, 0, 0, 0, 72982, 0, 0, 0, 0, 0, 0, 0,
- 0, 119105, 0, 0, 0, 0, 0, 128883, 0, 66897, 0, 0, 0, 42594, 0, 0, 0, 0,
- 6714, 10083, 0, 121019, 0, 69976, 0, 0, 9073, 0, 64302, 0, 128286, 9725,
- 0, 0, 121288, 73769, 121306, 0, 9570, 0, 11500, 2689, 917626, 0, 983794,
- 66740, 0, 0, 0, 917623, 13286, 5500, 42598, 42596, 503, 0, 0, 917618, 0,
- 0, 0, 0, 917615, 1652, 772, 6688, 8310, 0, 0, 72124, 0, 10194, 43542, 0,
- 125054, 0, 6468, 68110, 0, 917606, 11767, 0, 0, 5836, 12358, 0, 0, 65624,
- 12180, 0, 127994, 0, 43699, 0, 0, 72114, 43706, 0, 12362, 12435, 12360,
- 0, 9020, 0, 12356, 8616, 0, 42924, 2227, 0, 0, 7315, 12354, 83097, 83098,
- 83099, 2358, 83092, 83093, 83094, 0, 0, 83089, 83090, 0, 11759, 71723, 0,
- 72834, 83109, 41423, 0, 83103, 83104, 83105, 42237, 110653, 70717, 72260,
- 83102, 0, 67856, 0, 128534, 110657, 129354, 129194, 0, 64395, 0, 73008,
- 120897, 74816, 0, 0, 0, 83088, 0, 0, 94064, 83083, 83085, 83086, 83087,
- 83079, 83080, 2041, 9178, 0, 64870, 0, 83076, 74924, 0, 0, 0, 0, 0,
- 78739, 0, 0, 0, 0, 0, 0, 3726, 0, 0, 0, 0, 0, 121432, 129457, 0, 0, 0, 0,
- 0, 74901, 0, 0, 0, 0, 0, 124944, 113781, 0, 7410, 2669, 903, 0, 0, 0,
- 127232, 74603, 0, 128264, 0, 128411, 0, 0, 11732, 0, 72797, 41448, 41461,
- 124934, 0, 917558, 0, 8819, 0, 0, 74606, 0, 121412, 74835, 0, 9168,
- 65786, 0, 73691, 0, 67665, 0, 11758, 68425, 0, 0, 0, 128044, 0, 19924,
- 67312, 0, 128755, 64551, 0, 8516, 0, 0, 7561, 983980, 74018, 0, 0, 0, 0,
- 83074, 83075, 0, 11233, 83062, 83066, 3787, 83070, 83055, 41458, 83059,
- 41463, 65308, 41459, 8683, 775, 0, 65584, 69923, 0, 110798, 110799,
- 110796, 43440, 0, 0, 0, 3656, 0, 0, 0, 67694, 1599, 83138, 83139, 8514,
- 8513, 83036, 83135, 83136, 110794, 110795, 83131, 83132, 0, 0, 0, 11684,
- 10542, 9937, 83150, 0, 75037, 83145, 65730, 83147, 0, 8427, 83142, 55246,
- 0, 0, 11497, 0, 0, 0, 119222, 0, 983598, 0, 10621, 0, 0, 129295, 119111,
- 120745, 0, 0, 0, 11648, 83126, 83127, 42118, 83129, 83122, 65512, 83124,
- 83125, 0, 0, 0, 83121, 74530, 128456, 0, 0, 0, 65724, 0, 0, 0, 65727, 0,
- 0, 64963, 73830, 66042, 0, 0, 7875, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0,
- 65173, 129122, 0, 70331, 0, 0, 0, 0, 129419, 0, 0, 0, 1687, 0, 0, 0, 0,
- 0, 0, 10526, 0, 8323, 0, 83301, 11731, 0, 0, 65460, 12242, 0, 0, 10843,
- 11554, 0, 0, 8266, 0, 121101, 0, 0, 0, 0, 67667, 0, 119155, 0, 0, 119636,
- 67857, 0, 0, 0, 11755, 66305, 0, 0, 10917, 93979, 113688, 0, 2040, 92596,
- 0, 0, 0, 0, 1227, 83119, 83120, 0, 0, 83115, 83116, 11149, 4978, 83111,
- 1984, 11830, 83114, 128934, 74548, 0, 9373, 0, 0, 0, 0, 0, 0, 0, 0, 9237,
- 9390, 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, 0, 128577, 983820, 68086, 0, 0, 0,
- 983059, 0, 983144, 0, 0, 0, 72197, 55291, 11683, 0, 0, 0, 11451, 0,
- 72714, 3731, 2359, 0, 67844, 0, 121503, 548, 121502, 983245, 121405,
- 983248, 0, 66272, 0, 64678, 0, 9547, 0, 0, 1614, 0, 0, 66307, 128092,
- 1358, 120871, 428, 0, 1466, 0, 10982, 0, 0, 0, 407, 0, 0, 0, 0, 0, 0,
- 5804, 73464, 0, 0, 0, 70167, 9057, 42446, 0, 125097, 0, 0, 8250, 10952,
- 8048, 0, 129155, 0, 118955, 0, 0, 126586, 4407, 74648, 0, 0, 0, 8448,
- 92491, 0, 0, 12675, 12659, 0, 0, 983280, 68077, 55273, 10766, 12012,
- 2386, 0, 9170, 0, 9123, 128194, 0, 0, 0, 0, 129942, 0, 0, 0, 0, 0, 0,
- 8709, 0, 983581, 0, 0, 0, 0, 0, 0, 0, 128342, 0, 577, 128610, 0, 0,
- 124999, 68087, 74840, 126474, 127036, 0, 0, 0, 1414, 124963, 9683, 43486,
- 92231, 0, 2536, 0, 66330, 0, 0, 0, 0, 0, 0, 0, 66317, 0, 66315, 66316, 0,
- 0, 0, 0, 0, 0, 0, 0, 66323, 66324, 0, 0, 3106, 65917, 0, 0, 0, 891, 0, 0,
- 42624, 0, 0, 8824, 65089, 0, 10936, 0, 0, 0, 0, 92688, 0, 0, 0, 0, 12745,
- 0, 0, 41285, 3547, 0, 0, 129877, 0, 0, 6089, 0, 68490, 120578, 4170,
- 1029, 127761, 0, 0, 42374, 0, 744, 917624, 0, 0, 0, 93046, 0, 3551, 0, 0,
- 4623, 0, 0, 12340, 0, 65136, 0, 0, 0, 0, 0, 0, 0, 72291, 0, 0, 120778, 0,
- 11972, 0, 78757, 0, 122886, 177, 122894, 0, 0, 0, 0, 55243, 0, 0, 0,
- 70172, 120249, 120242, 128027, 120243, 0, 0, 0, 120237, 120245, 94079, 0,
- 0, 9136, 120240, 120614, 41280, 0, 0, 0, 0, 74149, 128327, 0, 0, 66361,
- 12601, 72194, 64360, 65163, 0, 0, 0, 0, 0, 0, 5404, 43332, 3667, 7936,
- 12925, 0, 0, 0, 0, 0, 10874, 65505, 0, 0, 0, 0, 128920, 983662, 0, 0, 0,
- 0, 0, 0, 0, 0, 66677, 0, 0, 0, 70088, 74148, 0, 0, 72868, 120230, 120224,
- 74172, 0, 0, 94096, 0, 128414, 120636, 0, 127519, 917609, 917616, 0,
- 128652, 0, 0, 11441, 0, 3512, 0, 0, 43597, 0, 0, 72734, 68153, 41563, 0,
- 0, 129352, 41544, 0, 0, 0, 0, 129177, 0, 0, 0, 118908, 0, 78108, 67396,
- 73804, 64711, 0, 0, 917610, 0, 0, 0, 11557, 127776, 0, 12079, 0, 0, 0, 0,
- 128861, 0, 0, 0, 0, 0, 983200, 8103, 72303, 128174, 92486, 110698, 0,
- 64587, 0, 0, 124961, 0, 0, 0, 126481, 0, 0, 0, 0, 0, 70348, 1450, 0,
- 1340, 0, 0, 128970, 0, 0, 125117, 0, 0, 0, 0, 6539, 92948, 0, 128213,
- 125060, 0, 0, 0, 3973, 0, 70504, 121193, 7982, 0, 0, 127194, 0, 0, 0,
- 128408, 118968, 6417, 120619, 129748, 0, 0, 0, 129455, 4919, 65121,
- 110872, 7755, 0, 0, 64548, 0, 1621, 0, 0, 0, 0, 0, 12188, 0, 0, 0, 0,
- 5015, 0, 0, 42590, 70354, 1756, 0, 0, 0, 120694, 0, 0, 7555, 73874, 5408,
- 2817, 1214, 69919, 0, 983125, 0, 0, 125055, 127195, 7957, 0, 0, 1056,
- 74944, 0, 0, 0, 0, 7073, 74979, 0, 70853, 0, 110874, 0, 0, 2341, 126644,
- 8484, 0, 0, 68322, 0, 8461, 67721, 42269, 0, 0, 43709, 43708, 9451, 7571,
- 13073, 43847, 126647, 0, 983258, 0, 0, 0, 8781, 12894, 78134, 0, 92288,
- 0, 0, 78184, 0, 11338, 120768, 0, 0, 0, 0, 0, 121367, 65021, 64795,
- 74574, 0, 10047, 0, 0, 0, 0, 0, 0, 119181, 163, 576, 9895, 0, 0, 74591,
- 0, 0, 66888, 0, 0, 0, 0, 0, 0, 7017, 128111, 0, 0, 129922, 0, 41591,
- 11036, 65252, 120795, 129488, 0, 0, 0, 0, 0, 0, 8887, 0, 7295, 71203, 0,
- 127221, 0, 0, 0, 0, 8755, 0, 0, 8147, 73127, 0, 0, 121348, 0, 129377, 0,
- 74499, 0, 0, 0, 4619, 0, 6654, 123192, 0, 0, 0, 65689, 10128, 0, 129612,
+ 69605, 83159, 83160, 4554, 0, 83155, 83156, 83157, 83158, 0, 125123, 0,
+ 72258, 129831, 0, 129815, 0, 43179, 0, 0, 0, 717, 10754, 83168, 83169,
+ 83162, 83163, 83164, 83165, 78282, 0, 0, 83161, 68848, 10611, 72859,
+ 126978, 71474, 129426, 127871, 0, 0, 0, 12820, 0, 0, 7009, 70103, 0, 0,
+ 67848, 41173, 4574, 0, 0, 128338, 575, 78110, 43456, 8563, 100469, 0, 0,
+ 65565, 0, 5936, 7290, 78117, 78118, 74919, 308, 78113, 78114, 83151,
+ 78123, 83153, 83154, 0, 0, 0, 0, 78132, 5926, 68250, 78130, 78126, 78127,
+ 78124, 78125, 42513, 0, 129026, 0, 11651, 13093, 78135, 0, 100471, 0,
+ 100473, 100472, 100475, 74048, 100477, 71995, 100457, 100456, 43703,
+ 13097, 0, 100460, 13283, 0, 0, 125073, 3488, 5933, 10033, 0, 0, 65570, 0,
+ 12297, 0, 0, 0, 128517, 42538, 0, 129293, 0, 100451, 0, 100453, 100452,
+ 100455, 100454, 121221, 0, 0, 7638, 0, 129193, 0, 43109, 7637, 0, 11213,
+ 100461, 83355, 100463, 100466, 100465, 0, 0, 7636, 0, 0, 0, 128848,
+ 983087, 291, 0, 0, 2027, 78141, 78142, 78136, 78137, 83481, 4640, 64713,
+ 10224, 120429, 11183, 83482, 120430, 0, 0, 0, 127148, 83479, 0, 0, 83488,
+ 0, 0, 0, 0, 68837, 5778, 0, 0, 0, 12680, 119130, 0, 67242, 93041, 0, 0,
+ 0, 11552, 0, 127855, 0, 70091, 0, 10172, 65453, 120408, 66014, 120410, 0,
+ 4641, 11556, 64819, 78269, 120416, 72341, 41469, 41467, 120412, 120415,
+ 4646, 120425, 865, 78275, 78274, 78273, 4645, 78271, 78270, 0, 983172,
+ 7338, 0, 68840, 0, 12565, 0, 0, 0, 195089, 119655, 195091, 195090, 2913,
+ 13120, 128956, 195094, 195097, 195096, 128019, 0, 71462, 0, 7916, 10485,
+ 195098, 0, 195100, 195099, 0, 67705, 128351, 195077, 195080, 129636,
+ 129549, 195081, 0, 0, 0, 10229, 10687, 826, 128081, 195082, 195085,
+ 195084, 195087, 195086, 0, 1808, 7848, 0, 0, 0, 0, 0, 0, 128897, 69255,
+ 42942, 67704, 0, 0, 0, 0, 42940, 0, 9144, 0, 0, 92992, 9840, 0, 0, 0, 0,
+ 0, 0, 74448, 83475, 0, 10962, 66904, 113718, 983187, 0, 0, 74537, 195072,
+ 1792, 195074, 195073, 78266, 195075, 0, 0, 12066, 0, 385, 4152, 0, 0, 0,
+ 67397, 0, 0, 0, 0, 43258, 0, 0, 13157, 0, 0, 3570, 0, 0, 0, 67252, 0,
+ 71218, 126631, 7879, 68247, 128579, 0, 0, 70196, 0, 0, 8463, 7810,
+ 917862, 7839, 983859, 127768, 917860, 9691, 0, 129323, 0, 120385, 0,
+ 917844, 0, 10066, 0, 983855, 0, 0, 0, 8016, 0, 983072, 64831, 0, 126103,
+ 0, 119171, 1634, 68115, 94192, 11056, 0, 0, 0, 41165, 11328, 12450, 0,
+ 41166, 0, 12456, 0, 171, 0, 12452, 917544, 12458, 12531, 0, 917853, 0,
+ 74162, 0, 0, 9969, 0, 12454, 74160, 42132, 110755, 78878, 110753, 3230,
+ 73711, 0, 0, 8932, 4399, 5810, 64534, 8415, 0, 110756, 110757, 74159, 0,
+ 0, 960, 74156, 6981, 92374, 12938, 9201, 0, 983658, 74904, 0, 72866,
+ 92270, 0, 0, 0, 129792, 5851, 73833, 5824, 0, 5844, 110848, 110849,
+ 110846, 110847, 4663, 0, 0, 0, 0, 0, 74085, 0, 0, 0, 0, 0, 92339, 0, 0,
+ 5782, 0, 0, 0, 43796, 129639, 0, 195083, 125223, 128004, 0, 43861, 0, 0,
+ 0, 92976, 0, 0, 0, 4659, 0, 0, 0, 0, 129386, 0, 11129, 2238, 329, 0,
+ 92707, 121416, 0, 0, 0, 69943, 67692, 42167, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 69618, 43671, 0, 64701, 0, 0, 0, 93055, 1172, 125089, 6786, 43601,
+ 0, 74126, 0, 0, 0, 0, 0, 0, 0, 0, 118804, 0, 66741, 5347, 0, 983644, 0,
+ 0, 10588, 0, 0, 0, 0, 5343, 0, 0, 0, 5341, 0, 0, 74916, 5351, 0, 0,
+ 917884, 0, 92692, 0, 121148, 128916, 0, 0, 66785, 126256, 6638, 0, 0,
+ 271, 0, 917904, 0, 0, 12653, 67588, 0, 0, 0, 0, 128838, 11912, 128301,
+ 983646, 0, 11800, 0, 0, 11103, 0, 7340, 0, 110695, 0, 0, 0, 0, 2423, 0,
+ 0, 0, 128136, 42705, 0, 0, 0, 11854, 0, 0, 0, 0, 4916, 0, 380, 10958,
+ 66563, 127790, 78284, 67587, 0, 12918, 0, 917897, 0, 917898, 917893,
+ 10684, 0, 125063, 92906, 0, 0, 8182, 0, 0, 129434, 0, 0, 0, 92904, 0,
+ 6630, 100405, 0, 123191, 0, 0, 0, 65876, 5535, 129892, 0, 0, 92609, 0,
+ 983343, 6477, 43795, 92217, 129571, 72163, 0, 43848, 0, 0, 74256, 2665,
+ 11304, 43751, 0, 4970, 74353, 0, 8934, 0, 93996, 4492, 92908, 65011, 0,
+ 0, 92909, 1188, 7254, 1100, 0, 0, 0, 2912, 11749, 92643, 0, 0, 65057, 0,
+ 12343, 0, 78879, 0, 78880, 0, 0, 0, 70355, 0, 0, 11803, 0, 0, 41450, 0,
+ 100897, 0, 41451, 0, 0, 8273, 0, 3451, 0, 972, 41453, 68164, 78876, 0,
+ 92408, 73945, 43504, 2288, 78873, 9538, 78874, 128685, 0, 129095, 0, 0,
+ 0, 0, 11019, 0, 0, 121205, 0, 73007, 71365, 92716, 5927, 0, 0, 0, 0,
+ 128484, 0, 6073, 0, 0, 0, 6075, 93995, 282, 126510, 0, 74078, 121459,
+ 65861, 0, 0, 66791, 0, 3474, 0, 0, 0, 6081, 0, 127843, 74076, 0, 0, 0,
+ 128908, 0, 0, 0, 12623, 120273, 9120, 120275, 4665, 12628, 4670, 120271,
+ 120272, 0, 0, 121480, 958, 0, 0, 0, 4666, 0, 4915, 0, 4669, 0, 0, 0,
+ 4664, 0, 120550, 0, 0, 0, 0, 94023, 0, 917875, 8664, 11664, 0, 129327,
+ 11224, 0, 0, 1063, 120250, 120251, 9772, 7255, 8886, 0, 127932, 120257,
+ 120258, 120259, 120260, 42661, 71345, 120255, 119125, 120265, 120266,
+ 120267, 42721, 92407, 120262, 120263, 66788, 1017, 0, 0, 505, 1447, 0, 0,
+ 70340, 66793, 65115, 42789, 128443, 0, 0, 123634, 0, 119195, 0, 0, 11745,
+ 7919, 0, 1641, 0, 0, 8966, 0, 0, 8743, 71870, 0, 67813, 0, 0, 0, 123206,
+ 0, 0, 128505, 10169, 71324, 0, 10068, 0, 120457, 120456, 120455, 120454,
+ 257, 43170, 13153, 0, 0, 0, 0, 0, 0, 6496, 19917, 5930, 128354, 11033, 0,
+ 0, 5622, 120436, 8477, 8474, 120433, 120432, 0, 0, 0, 41435, 4352, 0,
+ 2435, 0, 5621, 0, 4201, 8450, 4203, 4202, 4205, 4204, 120447, 120446,
+ 120445, 66792, 41440, 120442, 8473, 6373, 8469, 120438, 0, 4564, 125206,
+ 0, 0, 0, 8374, 73669, 0, 0, 66796, 0, 0, 0, 0, 0, 69297, 0, 5626, 43507,
+ 11771, 0, 0, 0, 42614, 0, 5625, 0, 0, 0, 5623, 0, 0, 42623, 64277, 69942,
+ 0, 0, 120752, 0, 5817, 5629, 0, 7551, 10325, 5632, 69674, 0, 0, 124946,
+ 125194, 5628, 0, 5631, 0, 0, 2400, 5627, 0, 0, 118786, 74792, 0, 0, 0,
+ 203, 129084, 74365, 0, 0, 0, 0, 83382, 83422, 0, 0, 554, 0, 0, 0, 12182,
+ 0, 64569, 110840, 73891, 0, 0, 0, 7689, 69798, 9323, 10269, 10285, 10317,
+ 175, 0, 0, 0, 0, 0, 1243, 42154, 0, 92387, 0, 0, 43651, 0, 125021, 0,
+ 9075, 128774, 0, 64777, 128570, 0, 0, 0, 0, 65255, 0, 121142, 4490, 0,
+ 6649, 120698, 12181, 0, 11977, 7249, 8366, 0, 7756, 12342, 0, 51, 41516,
+ 69432, 0, 9568, 71318, 456, 0, 10437, 1168, 9251, 9082, 0, 0, 42781,
+ 3866, 0, 41512, 0, 0, 68121, 41494, 0, 4660, 0, 10405, 0, 0, 0, 0, 0,
+ 73918, 119627, 110686, 41454, 12605, 0, 126611, 41455, 917996, 983605, 0,
+ 8214, 0, 100413, 0, 41457, 0, 0, 1969, 127771, 0, 69554, 7413, 0, 69426,
+ 10341, 43864, 78079, 5854, 0, 0, 0, 129684, 72819, 0, 0, 0, 0, 0, 8429,
+ 0, 72328, 0, 6429, 0, 0, 0, 0, 110688, 83417, 0, 917864, 120813, 83423,
+ 1662, 129588, 0, 0, 917871, 917868, 0, 0, 66, 65, 68, 67, 70, 69, 72, 71,
+ 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83, 86, 85, 88, 87, 90, 89,
+ 0, 0, 7385, 70508, 1704, 12993, 0, 0, 0, 0, 0, 0, 0, 0, 11353, 72207, 0,
+ 0, 0, 0, 118831, 0, 0, 0, 0, 0, 0, 83364, 0, 0, 1289, 0, 0, 119583, 0,
+ 65507, 0, 0, 0, 128042, 0, 74409, 0, 0, 0, 0, 64793, 0, 0, 100843, 5675,
+ 119239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6972, 70735, 0, 121108, 126217, 0,
+ 0, 0, 0, 0, 110640, 67687, 0, 0, 119634, 0, 43977, 111252, 129105, 0,
+ 7412, 64671, 0, 1412, 4594, 1391, 0, 8067, 12478, 110639, 78375, 110637,
+ 10281, 110635, 0, 0, 7960, 43271, 0, 12518, 69846, 0, 3566, 0, 0, 69864,
+ 0, 0, 68021, 0, 0, 0, 8223, 0, 4261, 121460, 68918, 0, 0, 121294, 113712,
+ 0, 128046, 43419, 72748, 0, 10574, 0, 67691, 0, 0, 73785, 0, 78875,
+ 128541, 0, 127366, 0, 0, 0, 0, 6695, 65113, 324, 0, 128373, 40985, 0, 0,
+ 0, 0, 0, 72307, 43474, 0, 121190, 0, 0, 3420, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 110871, 9574, 120684, 110870, 0, 5204, 74774, 0, 11835, 0, 0, 983185, 0,
+ 0, 0, 0, 0, 0, 11750, 68898, 127004, 0, 0, 0, 0, 8130, 0, 0, 0, 121268,
+ 0, 129443, 0, 68455, 42863, 73839, 0, 0, 0, 0, 0, 0, 0, 612, 110875,
+ 110876, 72231, 10538, 0, 1674, 0, 0, 0, 12280, 0, 540, 74550, 0, 66422,
+ 8432, 0, 11073, 0, 64316, 129894, 0, 7388, 0, 0, 0, 0, 126107, 0, 3359,
+ 0, 0, 67284, 0, 0, 65482, 129589, 0, 64742, 129304, 0, 0, 74273, 0,
+ 19941, 0, 0, 0, 0, 9481, 65555, 0, 66628, 129126, 1195, 64898, 0, 0, 0,
+ 2010, 0, 0, 0, 0, 0, 0, 4360, 127009, 9739, 0, 72885, 0, 0, 0, 126265,
+ 72200, 0, 0, 0, 72199, 0, 0, 65734, 0, 0, 129690, 13075, 0, 94063, 0,
+ 43532, 10837, 2492, 74516, 983075, 120882, 0, 0, 11813, 9649, 0, 119617,
+ 5128, 7377, 0, 65604, 0, 0, 6771, 1648, 7819, 0, 0, 0, 125192, 128131,
+ 12709, 6986, 0, 0, 0, 0, 0, 12581, 0, 5175, 0, 73806, 0, 128420, 0, 0,
+ 77950, 0, 0, 607, 0, 0, 128846, 119605, 0, 129528, 65477, 0, 121130, 0,
+ 8265, 0, 0, 0, 5840, 42838, 0, 0, 68366, 0, 119255, 0, 0, 0, 127929, 0,
+ 2550, 121011, 6779, 70059, 0, 0, 0, 0, 0, 0, 5619, 65822, 0, 0, 0,
+ 129392, 5616, 11486, 0, 0, 0, 0, 5615, 0, 121319, 42380, 127958, 0,
+ 66451, 74407, 0, 11347, 0, 1026, 5620, 0, 0, 11350, 5617, 0, 0, 64639, 0,
+ 0, 0, 1338, 0, 0, 0, 4603, 0, 70715, 92484, 0, 9002, 0, 3974, 78213, 0,
+ 0, 0, 0, 0, 0, 75038, 66040, 70455, 0, 0, 0, 72982, 0, 0, 0, 0, 0, 0, 0,
+ 0, 119105, 0, 0, 0, 0, 0, 128883, 0, 66897, 0, 0, 0, 42594, 0, 0, 0, 0,
+ 6714, 10083, 0, 121019, 0, 69976, 0, 0, 9073, 0, 64302, 0, 128286, 9725,
+ 0, 0, 121288, 73769, 121306, 0, 9570, 0, 11500, 2689, 917626, 0, 983794,
+ 66740, 0, 0, 0, 917623, 13286, 5500, 42598, 42596, 503, 0, 0, 917618, 0,
+ 0, 0, 0, 917615, 1652, 772, 6688, 8310, 0, 0, 72124, 0, 10194, 43542, 0,
+ 125054, 0, 6468, 68110, 0, 917606, 11767, 0, 0, 5836, 12358, 0, 0, 65624,
+ 12180, 0, 127994, 0, 43699, 0, 0, 72114, 43706, 0, 12362, 12435, 12360,
+ 0, 9020, 0, 12356, 8616, 0, 42924, 2227, 0, 0, 7315, 12354, 83097, 83098,
+ 83099, 2358, 83092, 83093, 83094, 0, 0, 83089, 83090, 0, 11759, 71723, 0,
+ 72834, 83109, 41423, 0, 83103, 83104, 83105, 42237, 110653, 70717, 72260,
+ 83102, 0, 67856, 0, 128534, 110657, 129354, 129194, 0, 64395, 0, 73008,
+ 120897, 74816, 0, 0, 0, 83088, 0, 0, 94064, 83083, 83085, 83086, 83087,
+ 83079, 83080, 2041, 9178, 0, 64870, 0, 83076, 74924, 0, 0, 0, 0, 0,
+ 78739, 0, 0, 0, 0, 0, 0, 3726, 0, 0, 0, 0, 0, 121432, 129457, 0, 0, 0, 0,
+ 0, 74901, 0, 0, 0, 0, 0, 124944, 113781, 0, 7410, 2669, 903, 0, 0, 0,
+ 127232, 74603, 0, 128264, 0, 128411, 0, 0, 11732, 0, 72797, 41448, 41461,
+ 124934, 0, 917558, 0, 8819, 0, 0, 74606, 0, 121412, 74835, 0, 9168,
+ 65786, 0, 73691, 0, 67665, 0, 11758, 68425, 0, 0, 0, 128044, 0, 19924,
+ 67312, 0, 128755, 64551, 0, 8516, 0, 0, 7561, 983980, 74018, 0, 0, 0, 0,
+ 83074, 83075, 0, 11233, 83062, 83066, 3787, 83070, 83055, 41458, 83059,
+ 41463, 65308, 41459, 8683, 775, 0, 65584, 69923, 0, 110798, 110799,
+ 110796, 43440, 0, 0, 0, 3656, 0, 0, 0, 67694, 1599, 83138, 83139, 8514,
+ 8513, 83036, 83135, 83136, 110794, 110795, 83131, 83132, 0, 0, 0, 11684,
+ 10542, 9937, 83150, 0, 75037, 83145, 65730, 83147, 0, 8427, 83142, 55246,
+ 0, 0, 11497, 0, 0, 0, 119222, 0, 983598, 0, 10621, 0, 0, 129295, 119111,
+ 120745, 0, 0, 0, 11648, 83126, 83127, 42118, 83129, 83122, 65512, 83124,
+ 83125, 0, 0, 0, 83121, 74530, 128456, 0, 0, 0, 65724, 0, 0, 0, 65727, 0,
+ 0, 64963, 73830, 66042, 0, 0, 7875, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0,
+ 65173, 129122, 0, 70331, 0, 0, 0, 0, 129419, 0, 0, 0, 1687, 0, 0, 0, 0,
+ 0, 0, 10526, 0, 8323, 0, 83301, 11731, 0, 0, 65460, 12242, 0, 0, 10843,
+ 11554, 0, 0, 8266, 0, 121101, 0, 0, 0, 0, 67667, 0, 119155, 0, 0, 119636,
+ 67857, 0, 0, 0, 11755, 66305, 0, 0, 10917, 93979, 113688, 0, 2040, 92596,
+ 0, 0, 0, 0, 1227, 83119, 83120, 0, 0, 83115, 83116, 11149, 4978, 83111,
+ 1984, 11830, 83114, 128934, 74548, 0, 9373, 0, 0, 0, 0, 0, 0, 0, 0, 9237,
+ 9390, 0, 0, 0, 0, 0, 1830, 0, 0, 0, 0, 0, 128577, 983820, 68086, 0, 0, 0,
+ 983059, 0, 983144, 0, 0, 0, 72197, 55291, 11683, 0, 0, 0, 11451, 0,
+ 72714, 3731, 2359, 0, 67844, 0, 121503, 548, 121502, 983245, 121405,
+ 983248, 0, 66272, 0, 64678, 0, 9547, 0, 0, 1614, 0, 0, 66307, 128092,
+ 1358, 120871, 428, 0, 1466, 0, 10982, 0, 0, 0, 407, 0, 0, 0, 0, 0, 0,
+ 5804, 73464, 0, 0, 0, 70167, 9057, 42446, 0, 125097, 0, 0, 8250, 10952,
+ 8048, 0, 129155, 0, 118955, 0, 0, 126586, 4407, 74648, 0, 0, 0, 8448,
+ 92491, 0, 0, 12675, 12659, 0, 0, 983280, 68077, 55273, 10766, 12012,
+ 2386, 0, 9170, 0, 9123, 128194, 0, 0, 0, 0, 129942, 0, 0, 0, 0, 0, 0,
+ 8709, 0, 983581, 0, 0, 0, 0, 0, 0, 0, 128342, 0, 577, 128610, 0, 0,
+ 124999, 68087, 74840, 126474, 127036, 0, 0, 0, 1414, 124963, 9683, 43486,
+ 92231, 0, 2536, 0, 66330, 0, 0, 0, 0, 0, 0, 0, 66317, 0, 66315, 66316, 0,
+ 0, 0, 0, 0, 0, 0, 0, 66323, 66324, 0, 0, 3106, 65917, 0, 0, 0, 891, 0, 0,
+ 42624, 0, 0, 8824, 65089, 0, 10936, 0, 0, 0, 0, 92688, 0, 0, 0, 0, 12745,
+ 0, 0, 41285, 3547, 0, 0, 129877, 0, 0, 6089, 0, 68490, 120578, 4170,
+ 1029, 127761, 0, 0, 42374, 0, 744, 917624, 0, 0, 0, 93046, 0, 3551, 0, 0,
+ 4623, 0, 0, 12340, 0, 65136, 0, 0, 0, 0, 0, 0, 0, 72291, 0, 0, 120778, 0,
+ 11972, 0, 78757, 0, 122886, 177, 122894, 0, 0, 0, 0, 55243, 0, 0, 0,
+ 70172, 120249, 120242, 128027, 120243, 0, 0, 0, 120237, 120245, 94079, 0,
+ 0, 9136, 120240, 120614, 41280, 0, 0, 0, 0, 74149, 128327, 0, 0, 66361,
+ 12601, 72194, 64360, 65163, 0, 0, 0, 0, 0, 0, 5404, 43332, 3667, 7936,
+ 12925, 0, 0, 0, 0, 0, 10874, 65505, 0, 0, 0, 0, 128920, 983662, 0, 0, 0,
+ 0, 0, 0, 0, 0, 66677, 0, 0, 0, 70088, 74148, 0, 0, 72868, 120230, 120224,
+ 74172, 0, 0, 94096, 0, 128414, 120636, 0, 127519, 917609, 917616, 0,
+ 128652, 0, 0, 11441, 0, 3512, 0, 0, 43597, 0, 0, 72734, 68153, 41563, 0,
+ 0, 129352, 41544, 0, 0, 0, 0, 129177, 0, 0, 0, 118908, 0, 78108, 67396,
+ 73804, 64711, 0, 0, 917610, 0, 0, 0, 11557, 127776, 0, 12079, 0, 0, 0, 0,
+ 128861, 0, 0, 0, 0, 0, 983200, 8103, 72303, 128174, 92486, 110698, 0,
+ 64587, 0, 0, 124961, 0, 0, 0, 126481, 0, 0, 0, 0, 0, 70348, 1450, 0,
+ 1340, 0, 0, 128970, 0, 0, 125117, 0, 0, 0, 0, 6539, 92948, 0, 128213,
+ 125060, 0, 0, 0, 3973, 0, 70504, 121193, 7982, 0, 0, 127194, 0, 0, 0,
+ 128408, 118968, 6417, 120619, 129748, 0, 0, 0, 129455, 4919, 65121,
+ 110872, 7755, 0, 0, 64548, 0, 1621, 0, 0, 0, 0, 0, 12188, 0, 0, 0, 0,
+ 5015, 0, 0, 42590, 70354, 1756, 0, 0, 0, 120694, 0, 0, 7555, 73874, 5408,
+ 2817, 1214, 69919, 0, 983125, 0, 0, 125055, 127195, 7957, 0, 0, 1056,
+ 74944, 0, 0, 0, 0, 7073, 74979, 0, 70853, 0, 110874, 0, 0, 2341, 126644,
+ 8484, 0, 0, 68322, 0, 8461, 67721, 42269, 0, 0, 43709, 43708, 9451, 7571,
+ 13073, 43847, 126647, 0, 983258, 0, 0, 0, 8781, 12894, 78134, 0, 92288,
+ 0, 0, 78184, 0, 11338, 120768, 0, 0, 0, 0, 0, 121367, 65021, 64795,
+ 74574, 0, 10047, 0, 0, 0, 0, 0, 0, 119181, 163, 576, 9895, 0, 0, 74591,
+ 0, 0, 66888, 0, 0, 0, 0, 0, 0, 7017, 128111, 0, 0, 129922, 0, 41591,
+ 11036, 65252, 120795, 129488, 0, 0, 0, 0, 0, 0, 8887, 0, 7295, 71203, 0,
+ 127221, 0, 0, 0, 0, 8755, 0, 0, 8147, 73127, 0, 0, 121348, 0, 129377, 0,
+ 74499, 0, 0, 0, 4619, 0, 6654, 123192, 0, 0, 0, 65689, 10128, 0, 129612,
0, 0, 92651, 0, 2401, 0, 8792, 0, 0, 74980, 0, 92246, 0, 0, 0, 12886, 0,
66624, 0, 0, 74133, 65170, 0, 74135, 0, 0, 9984, 73867, 3010, 0, 70349,
10698, 41475, 0, 119151, 0, 119152, 0, 0, 9100, 0, 0, 0, 78116, 64780,
2001, 0, 55230, 0, 4052, 0, 7626, 78080, 0, 0, 0, 41477, 0, 0, 0, 43707,
- 74127, 0, 0, 0, 78086, 73758, 2335, 10663, 0, 0, 129872, 119602, 0, 0,
- 70325, 0, 41443, 0, 0, 0, 9711, 1523, 0, 0, 41445, 0, 0, 8567, 41442,
- 12821, 0, 0, 118978, 0, 65274, 0, 94082, 0, 127515, 0, 0, 43446, 0, 0, 0,
- 0, 127985, 0, 10206, 127167, 6375, 2673, 0, 0, 0, 43219, 129355, 0, 0, 0,
- 0, 129400, 11799, 101225, 68466, 0, 0, 0, 0, 0, 120736, 0, 7203, 0, 0,
- 70361, 127213, 120615, 127216, 0, 0, 0, 0, 43121, 0, 128366, 72161, 0,
- 129868, 0, 121260, 73781, 70365, 0, 68039, 70446, 10057, 0, 0, 0, 101219,
- 120963, 101220, 2307, 0, 0, 0, 0, 73873, 0, 94035, 0, 0, 0, 0, 129983,
- 7327, 0, 0, 440, 0, 0, 68613, 75059, 0, 0, 9957, 0, 0, 8046, 0, 119158,
- 0, 0, 68609, 0, 129405, 1521, 129460, 92256, 65344, 0, 11850, 68737, 0,
- 0, 68914, 7303, 65770, 5243, 0, 5239, 65771, 121429, 0, 5237, 0, 68756,
- 0, 5247, 0, 0, 0, 12873, 5764, 0, 0, 3008, 118981, 128102, 0, 0, 55231,
- 41103, 0, 92756, 0, 0, 92717, 70074, 7872, 74886, 917567, 8731, 65378, 0,
- 0, 11316, 128163, 126600, 70360, 3019, 9997, 0, 0, 9456, 129545, 0, 0,
- 101192, 0, 0, 92682, 4281, 0, 0, 0, 118982, 0, 69993, 78096, 0, 78095, 0,
- 78098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2134, 0, 10116, 9877, 70679, 0, 0,
- 92723, 8379, 0, 6778, 0, 0, 8243, 0, 0, 0, 0, 128008, 0, 0, 0, 983630,
- 119668, 129962, 92722, 983098, 5637, 125115, 0, 0, 120479, 0, 113730, 0,
- 0, 194990, 64432, 0, 70363, 121368, 1156, 68052, 0, 0, 120482, 0, 68030,
- 0, 0, 0, 7634, 0, 0, 65536, 0, 0, 0, 7702, 0, 78890, 0, 65779, 65783,
- 195066, 120961, 5700, 0, 0, 92161, 2339, 92476, 5697, 0, 0, 0, 74923, 0,
- 5696, 92677, 0, 3862, 0, 0, 0, 983055, 0, 0, 0, 0, 5701, 9722, 41490,
- 41370, 5698, 0, 0, 0, 42204, 55270, 8571, 0, 0, 43859, 0, 78731, 0,
- 12184, 0, 0, 0, 0, 0, 5650, 0, 64712, 120474, 0, 120458, 5647, 120473,
- 7387, 0, 92675, 11477, 5646, 0, 11018, 0, 0, 0, 0, 0, 0, 69280, 128459,
- 126128, 5651, 0, 0, 0, 5648, 0, 120920, 0, 127517, 3545, 0, 6984, 0, 0,
- 0, 69414, 126613, 0, 10123, 0, 69274, 0, 0, 65020, 74885, 119166, 0, 0,
- 0, 0, 0, 1140, 78426, 0, 0, 0, 0, 8128, 9889, 0, 0, 1815, 0, 890, 0,
- 3267, 0, 0, 0, 983667, 4410, 125081, 10576, 8102, 0, 580, 74232, 0, 0, 0,
- 0, 0, 19938, 0, 0, 0, 0, 3298, 6546, 0, 0, 0, 0, 6134, 41246, 0, 0, 0,
- 917770, 0, 6264, 0, 0, 0, 0, 0, 0, 69445, 0, 0, 0, 92697, 11915, 10377,
- 0, 10072, 0, 0, 2329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101164, 0, 11201, 92708,
- 74769, 0, 13263, 0, 0, 92404, 126066, 73822, 0, 0, 64917, 0, 0, 494,
- 128026, 0, 65098, 0, 956, 125265, 129556, 0, 73740, 0, 0, 0, 74281,
- 128638, 0, 0, 69217, 120930, 0, 0, 0, 0, 0, 9922, 0, 126269, 100948, 0,
- 65229, 0, 0, 0, 0, 0, 0, 3907, 118833, 64526, 11829, 68197, 0, 0, 11475,
- 70329, 3020, 42264, 0, 0, 0, 7098, 0, 0, 127967, 957, 42696, 0, 3016, 0,
- 0, 0, 0, 0, 121248, 92510, 3006, 4620, 0, 0, 0, 0, 129369, 129425, 0, 0,
- 0, 126246, 8626, 0, 128824, 0, 65377, 0, 983102, 42920, 1698, 0, 64477,
- 0, 0, 43813, 100432, 100431, 100434, 100433, 100436, 70321, 100438,
- 100437, 100440, 100439, 0, 121024, 0, 70327, 100441, 55252, 100443,
- 100442, 100445, 100444, 66641, 100446, 100449, 100448, 0, 100450, 113820,
- 74866, 64375, 0, 127850, 129477, 0, 0, 0, 0, 983780, 0, 0, 120827, 0, 0,
- 123637, 0, 0, 0, 101183, 8110, 100421, 0, 100423, 5830, 100425, 100424,
- 100427, 100426, 100429, 100428, 42389, 78611, 121398, 0, 0, 0, 0, 0, 0,
- 0, 83342, 983935, 0, 127147, 119187, 2135, 11836, 0, 0, 78869, 42313,
- 5579, 0, 70384, 983082, 94002, 0, 5578, 11840, 73006, 42023, 69849, 5669,
- 92559, 0, 0, 68833, 917845, 128275, 5583, 0, 0, 42426, 5580, 42276, 0,
- 892, 2220, 42465, 74313, 73440, 5795, 194991, 68774, 65702, 68770, 0,
- 65695, 0, 65710, 128399, 0, 0, 68783, 0, 0, 0, 1638, 10966, 0, 917547, 0,
- 118921, 0, 0, 0, 8172, 0, 0, 0, 0, 0, 0, 6374, 0, 0, 120972, 0, 0, 0, 0,
- 0, 0, 0, 72204, 64900, 7153, 65785, 68826, 0, 3015, 68743, 68740, 68738,
- 68805, 6400, 68749, 68748, 68760, 68758, 11276, 68754, 100420, 372,
- 101138, 68761, 118874, 0, 41585, 128202, 0, 74228, 276, 129895, 74234, 0,
- 74226, 0, 9007, 0, 41588, 125001, 119189, 10763, 0, 0, 983560, 126097,
- 68525, 6257, 73112, 100393, 100396, 100395, 100398, 92409, 100400,
- 100399, 101148, 74848, 120006, 983592, 100401, 66498, 100403, 100402,
- 64790, 73454, 100407, 100406, 70356, 100408, 0, 100410, 66829, 70817,
- 5711, 41633, 12098, 65571, 9166, 0, 5710, 0, 6790, 65213, 0, 0, 0, 69726,
- 0, 73817, 0, 0, 5715, 0, 70408, 0, 5712, 100382, 41620, 100384, 3074,
- 5722, 100389, 100388, 73768, 0, 118906, 0, 0, 0, 66419, 71972, 0, 0, 0,
- 0, 128903, 78607, 0, 129074, 0, 0, 0, 0, 0, 0, 113682, 0, 11261, 0, 0, 0,
- 8701, 0, 11236, 0, 129490, 100390, 0, 0, 0, 78293, 0, 0, 0, 64946, 0, 0,
- 0, 70336, 0, 0, 93986, 68814, 42902, 0, 0, 0, 0, 92344, 0, 67845, 42641,
- 71444, 0, 0, 70366, 101152, 100369, 100368, 5084, 100370, 101158, 118861,
- 0, 733, 74646, 0, 0, 0, 125085, 0, 9218, 0, 100380, 100379, 71070, 0, 0,
- 0, 0, 70323, 0, 0, 5155, 0, 0, 983756, 0, 0, 72351, 0, 0, 0, 122891, 0,
- 0, 0, 100372, 100371, 100374, 100373, 100376, 100375, 100378, 100377,
- 4974, 100357, 100360, 100359, 0, 0, 0, 12205, 0, 0, 64507, 0, 0, 0, 0, 0,
- 0, 12149, 13088, 78290, 0, 12241, 0, 0, 0, 6932, 100352, 73676, 100354,
- 100353, 100356, 351, 68764, 0, 0, 0, 0, 73443, 0, 0, 100361, 42377,
- 100363, 100362, 100365, 100364, 100367, 9013, 4054, 0, 0, 71939, 0,
- 120782, 5585, 65881, 0, 0, 0, 0, 5584, 8358, 128975, 121177, 0, 0, 0,
- 41616, 0, 983796, 2218, 0, 5589, 0, 2664, 41613, 5586, 118890, 0, 11356,
- 0, 0, 0, 78609, 0, 0, 0, 0, 0, 129870, 0, 0, 8135, 129685, 0, 983791, 0,
- 0, 0, 5657, 0, 12915, 121453, 0, 10179, 5654, 12939, 0, 120799, 0, 0,
- 5652, 10945, 0, 0, 0, 113710, 0, 73449, 68069, 0, 70332, 0, 5659, 0, 0,
- 66729, 5655, 0, 0, 0, 68806, 0, 128225, 66310, 73444, 0, 0, 70362, 0,
- 11609, 0, 126990, 92949, 10272, 10304, 10368, 74511, 594, 10244, 10248,
- 10256, 983899, 0, 0, 3467, 41010, 0, 3331, 946, 0, 1495, 13184, 74330,
- 128242, 9562, 0, 123175, 0, 70036, 0, 0, 0, 123176, 0, 0, 0, 5666, 65227,
- 123174, 68419, 0, 11796, 123178, 0, 0, 10186, 123172, 7732, 983736, 0, 0,
- 0, 5668, 83334, 0, 74645, 5670, 0, 0, 12741, 126619, 123638, 5667, 19952,
- 120807, 113766, 12749, 0, 67757, 2263, 0, 0, 119260, 129131, 9286, 83335,
- 128457, 83336, 70359, 0, 3571, 13247, 5874, 78279, 73447, 68435, 78278,
- 78267, 78268, 0, 78265, 553, 113768, 0, 93053, 5829, 0, 4587, 78285,
- 78299, 129699, 12746, 0, 70338, 0, 5633, 0, 94101, 94102, 94099, 94100,
- 94105, 74856, 94103, 12742, 0, 983818, 0, 0, 0, 70330, 0, 983811, 0, 0,
- 0, 12148, 0, 0, 0, 0, 0, 64938, 67234, 5634, 0, 0, 2146, 0, 118880, 2425,
- 65182, 983813, 43636, 0, 0, 328, 0, 68736, 0, 5636, 123163, 5329, 0,
- 5638, 0, 7940, 0, 43223, 43760, 5635, 3373, 72424, 78292, 74223, 73441,
- 68763, 78287, 9833, 0, 74208, 41635, 0, 0, 43040, 78297, 68778, 78295,
- 5639, 65603, 5660, 5640, 78303, 0, 78300, 0, 68301, 0, 0, 78312, 0,
- 78310, 41625, 78308, 78309, 100731, 41780, 5642, 100732, 100735, 100734,
- 4356, 100736, 100739, 12051, 70166, 100740, 5641, 8259, 0, 0, 0, 119570,
- 0, 0, 121264, 983558, 0, 0, 0, 73890, 0, 0, 2800, 11220, 5645, 64964,
- 8652, 83323, 0, 0, 121356, 5608, 128281, 119932, 0, 0, 0, 9000, 0, 83324,
- 92673, 129176, 0, 5613, 74267, 100721, 100724, 5610, 100726, 92965,
- 100728, 5612, 100730, 10787, 0, 3615, 123647, 5609, 78316, 78317, 78313,
- 78315, 5875, 5808, 0, 8186, 0, 74269, 0, 70004, 65874, 72422, 5807, 0,
- 66320, 5306, 12936, 0, 92970, 0, 0, 92583, 10211, 0, 0, 78871, 121063, 0,
- 129512, 0, 0, 0, 0, 0, 74237, 0, 9133, 74262, 0, 0, 0, 64779, 0, 0, 6185,
- 64776, 0, 121266, 6499, 0, 0, 0, 92720, 0, 93784, 93791, 2534, 0, 93768,
- 93778, 93762, 71849, 71869, 93781, 64583, 93761, 93780, 93760, 93787,
- 92443, 128714, 71848, 93774, 66411, 93785, 71841, 93770, 93769, 0, 0, 0,
- 121168, 68443, 69774, 931, 0, 125052, 6363, 2748, 0, 0, 0, 983603, 44011,
- 0, 0, 100711, 119009, 100713, 100712, 100715, 65896, 100717, 78298,
- 100719, 100718, 128836, 100720, 11649, 0, 0, 0, 0, 0, 42341, 65284, 0, 0,
- 12884, 0, 7907, 127255, 0, 0, 0, 0, 68779, 0, 68786, 0, 100691, 0,
- 100693, 100692, 42851, 100694, 100697, 100696, 92276, 78226, 66393,
- 100700, 0, 93773, 93776, 93777, 100702, 78301, 100704, 100703, 42415,
- 78307, 4542, 69909, 94022, 100709, 0, 0, 0, 0, 42454, 11565, 7949,
- 124939, 0, 0, 42494, 3073, 0, 0, 42302, 0, 126553, 70810, 0, 72401, 0, 0,
- 0, 129319, 4877, 100681, 100684, 100683, 10548, 100685, 100688, 100687,
- 100690, 64798, 70805, 5346, 0, 126570, 0, 4874, 0, 0, 0, 0, 0, 65884, 0,
- 0, 0, 11378, 0, 42785, 0, 3251, 11203, 0, 0, 0, 69568, 11052, 0, 5342,
- 8317, 0, 0, 5340, 0, 0, 128599, 0, 129538, 0, 128395, 0, 128510, 0, 0,
- 9142, 0, 0, 0, 10938, 0, 0, 1182, 127381, 4829, 0, 0, 72438, 529, 0, 0,
- 0, 10586, 10790, 10839, 121427, 41593, 100669, 0, 0, 41594, 225, 66418,
- 0, 0, 983950, 11376, 0, 41596, 0, 0, 0, 0, 11084, 3194, 0, 78306, 78305,
- 0, 0, 0, 11324, 0, 0, 8420, 127756, 128844, 0, 41338, 129683, 11485, 0,
- 41322, 66605, 100671, 0, 100673, 100672, 100675, 5161, 41330, 100676,
- 100679, 100678, 100659, 100658, 0, 100660, 0, 100485, 12361, 0, 12359,
- 983559, 41369, 66412, 12191, 0, 0, 0, 0, 78221, 41376, 0, 9870, 0, 41385,
- 65824, 100651, 11938, 100653, 100652, 100655, 100654, 42678, 100656, 0,
- 64649, 0, 0, 0, 0, 0, 983948, 100662, 100661, 100664, 66334, 100666,
- 70280, 832, 100667, 2240, 78473, 66007, 78471, 65703, 0, 0, 0, 12357, 0,
- 41395, 0, 0, 0, 0, 0, 0, 983461, 0, 41114, 65466, 0, 983825, 6024, 0,
- 9979, 0, 0, 0, 0, 0, 0, 0, 4285, 0, 0, 4230, 0, 7367, 0, 92353, 7563,
- 42376, 0, 128532, 0, 0, 0, 0, 0, 0, 78466, 0, 12208, 128138, 0, 66311,
- 71309, 0, 41130, 78286, 0, 0, 70047, 0, 6022, 0, 0, 0, 0, 0, 41125, 0,
- 66453, 0, 41107, 0, 41121, 5300, 0, 0, 0, 0, 74801, 70855, 2074, 73456,
- 0, 0, 12453, 0, 0, 0, 0, 68159, 12457, 0, 0, 66278, 0, 0, 0, 0, 0, 66637,
- 12455, 0, 128473, 0, 12449, 0, 71224, 0, 0, 66908, 0, 10165, 0, 0,
- 113715, 0, 128223, 0, 0, 0, 0, 4993, 0, 6168, 74033, 4995, 0, 69459,
- 120522, 4639, 0, 72223, 0, 0, 0, 0, 0, 0, 69734, 0, 0, 0, 0, 0, 0, 83310,
- 0, 0, 0, 0, 0, 0, 0, 0, 129594, 4953, 0, 0, 0, 0, 83311, 0, 73453, 65688,
- 0, 10125, 3517, 0, 0, 0, 65094, 74791, 78262, 10627, 66333, 78256, 78257,
- 83304, 78253, 0, 71317, 64923, 0, 65208, 10608, 78263, 78264, 0, 0, 0,
- 65883, 0, 0, 74914, 0, 0, 0, 0, 0, 12912, 119012, 0, 128191, 0, 0,
- 129586, 0, 1290, 0, 0, 0, 0, 113719, 71442, 0, 0, 8978, 0, 119135,
- 120979, 10527, 71079, 0, 0, 0, 0, 0, 0, 5336, 0, 0, 6934, 0, 10780, 0, 0,
- 78767, 0, 0, 0, 347, 0, 0, 78775, 64675, 41582, 78774, 78771, 68094,
- 74903, 78769, 69221, 69657, 0, 0, 11153, 120981, 78526, 0, 0, 0, 0,
- 41584, 0, 69464, 0, 0, 0, 0, 43510, 66661, 0, 66306, 78791, 66384, 0,
- 6609, 0, 0, 11319, 0, 128964, 0, 41730, 0, 0, 127920, 0, 65172, 41728,
- 41721, 0, 0, 0, 41203, 0, 0, 41726, 0, 0, 5758, 0, 0, 41140, 2028, 78092,
- 0, 0, 0, 92739, 983195, 41138, 0, 0, 0, 125082, 1115, 127060, 9794,
- 127062, 67671, 92238, 12237, 78787, 66314, 78785, 9290, 73668, 78783,
- 78780, 78781, 127144, 7926, 0, 0, 0, 64398, 100924, 71274, 12311, 101268,
- 78796, 78798, 78794, 78795, 78792, 78793, 0, 101270, 0, 73455, 0, 0, 0,
- 42142, 9968, 11583, 0, 7092, 129835, 9627, 78536, 73677, 78535, 0, 0,
- 1248, 10148, 127755, 0, 0, 101273, 0, 66447, 0, 0, 0, 0, 65305, 0, 4031,
- 42794, 119986, 0, 8154, 0, 0, 128028, 126259, 129926, 125220, 73452, 0,
- 0, 0, 6696, 0, 119599, 0, 0, 0, 4364, 0, 0, 0, 120976, 0, 120922, 0,
- 10124, 7526, 8601, 0, 68246, 0, 129318, 1418, 10885, 0, 0, 0, 0, 0, 0,
- 4571, 0, 0, 0, 12078, 41597, 0, 10933, 0, 72129, 0, 0, 0, 41599, 0, 0, 0,
- 12950, 119190, 10498, 0, 66782, 4239, 0, 0, 66511, 68066, 2637, 110685,
- 8460, 110683, 8476, 110681, 0, 110679, 0, 127919, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5412, 66243, 9935, 122892, 0, 73864, 41734, 8206, 74081, 0, 3286,
- 120730, 0, 0, 41732, 0, 41736, 983201, 41731, 0, 0, 70842, 0, 0, 0, 0,
- 129329, 0, 66853, 0, 0, 78742, 72755, 11277, 65892, 0, 10620, 92272, 0,
- 0, 0, 0, 73942, 0, 100479, 0, 119093, 3459, 0, 129398, 0, 0, 72130,
- 92512, 0, 66377, 69781, 128718, 0, 111304, 3161, 69981, 0, 0, 0, 0, 0,
- 9016, 78153, 0, 0, 43641, 0, 121018, 0, 101279, 0, 0, 0, 0, 0, 68342,
- 120950, 94043, 0, 12332, 121310, 6086, 41722, 0, 120709, 0, 0, 111305, 0,
- 0, 128307, 74288, 0, 74546, 0, 129178, 129399, 0, 42460, 0, 0, 0, 0,
- 120941, 42421, 0, 41723, 110606, 64358, 11460, 983506, 0, 64718, 120838,
- 66869, 0, 42348, 0, 6752, 452, 42500, 0, 128258, 0, 42308, 0, 0, 0,
- 12932, 0, 69968, 42950, 66827, 917582, 0, 0, 8302, 0, 0, 0, 0, 7250,
- 13214, 10041, 8105, 65568, 127780, 69969, 127759, 0, 0, 121467, 0,
- 121466, 73666, 0, 69878, 0, 5538, 9987, 0, 118932, 129307, 0, 552, 0,
- 7357, 10785, 0, 0, 4557, 0, 0, 10171, 68320, 0, 5540, 0, 0, 281, 0, 0,
- 42622, 0, 5536, 0, 0, 1388, 0, 0, 10504, 0, 0, 11531, 74324, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3663, 0, 121081, 70335, 74859, 0, 5334, 0, 110738,
- 72319, 0, 11305, 0, 68456, 0, 66611, 0, 19907, 64363, 3478, 7583, 7679,
- 74154, 0, 0, 1158, 0, 983871, 73748, 0, 0, 1915, 4846, 0, 120132, 118984,
- 120134, 120129, 120128, 805, 120130, 64438, 120124, 8760, 120126, 72137,
- 120120, 120123, 94003, 0, 0, 0, 0, 0, 12225, 0, 0, 0, 70173, 75045, 0,
- 129515, 8083, 0, 0, 0, 111094, 92626, 0, 0, 0, 0, 0, 0, 110837, 0, 67699,
- 560, 5643, 0, 0, 0, 0, 0, 0, 0, 120144, 0, 120661, 78304, 1597, 120143,
- 120142, 206, 70126, 120139, 120138, 8168, 0, 73086, 0, 0, 0, 983827,
- 125036, 0, 0, 3546, 42573, 66811, 0, 0, 128397, 8400, 0, 0, 0, 0, 0,
- 7903, 9287, 72791, 0, 0, 0, 0, 72134, 66603, 1695, 917861, 0, 0, 111101,
- 0, 0, 0, 0, 0, 0, 0, 111099, 0, 111098, 4754, 0, 69222, 128229, 0, 0,
- 7354, 7408, 0, 0, 121181, 0, 0, 0, 12739, 0, 1278, 4187, 0, 42119, 42120,
- 0, 121158, 0, 12467, 0, 68902, 0, 12463, 0, 0, 118827, 0, 9664, 70834,
- 74475, 0, 0, 0, 0, 0, 3661, 0, 0, 9022, 127955, 0, 101460, 126257, 0,
- 6118, 222, 126250, 3884, 0, 74151, 0, 6502, 0, 11085, 121261, 0, 0, 0, 0,
- 0, 0, 0, 0, 12461, 0, 0, 0, 94059, 11254, 10860, 64880, 0, 64685, 0, 0,
- 94087, 7776, 11219, 0, 0, 121339, 69730, 801, 43165, 0, 78212, 0, 0,
- 13277, 0, 12951, 0, 9906, 5486, 2334, 128672, 67680, 5483, 73732, 120884,
- 119128, 5484, 0, 127876, 2539, 0, 78507, 5485, 195065, 42697, 0, 0,
- 113689, 4502, 68057, 253, 73672, 0, 0, 9203, 0, 0, 0, 0, 0, 121242,
- 11127, 0, 0, 0, 13257, 0, 0, 0, 69645, 0, 0, 0, 70431, 0, 5693, 64470, 0,
- 66610, 67678, 0, 983659, 0, 0, 0, 0, 0, 0, 0, 94078, 0, 0, 66608, 3111,
- 0, 8804, 66607, 0, 0, 0, 66606, 0, 0, 0, 1436, 0, 55226, 0, 111287, 7393,
- 41592, 0, 0, 1598, 78101, 0, 0, 65193, 4423, 0, 113692, 10515, 41589, 0,
- 0, 0, 101485, 1430, 101486, 0, 120606, 0, 66223, 7619, 3255, 128280,
- 74032, 11549, 10735, 93038, 100741, 6801, 100743, 100746, 2148, 100748,
- 100747, 100750, 100749, 0, 121229, 101479, 69243, 41724, 67716, 69669,
- 41690, 111269, 983647, 8380, 100355, 983830, 0, 101480, 0, 0, 0, 0, 6333,
- 111264, 42315, 0, 129502, 111265, 0, 0, 5339, 74323, 0, 13004, 0, 0, 0,
- 0, 0, 0, 5684, 0, 0, 0, 5689, 0, 0, 68464, 12633, 12870, 0, 65183, 5688,
- 0, 0, 6310, 5686, 0, 0, 0, 120647, 70046, 50, 94095, 9871, 0, 0, 121446,
- 0, 0, 0, 66905, 0, 4448, 0, 121406, 113734, 72125, 1321, 0, 10640, 0, 0,
- 101497, 0, 0, 0, 0, 0, 0, 0, 0, 12501, 0, 0, 0, 0, 8812, 0, 69986, 8673,
- 0, 129024, 0, 0, 2105, 72101, 72712, 0, 129929, 0, 0, 0, 4636, 55262, 0,
- 4515, 2382, 0, 0, 7313, 101477, 0, 0, 194626, 0, 0, 0, 0, 0, 0, 0, 10197,
- 194719, 0, 0, 0, 194718, 0, 0, 0, 64189, 0, 1873, 0, 0, 0, 0, 0, 983663,
- 0, 0, 101499, 72282, 126991, 71113, 0, 0, 129340, 9489, 0, 70843, 0, 0,
- 0, 0, 128030, 13295, 43191, 0, 0, 1154, 0, 1205, 0, 0, 0, 12958, 0, 0, 0,
- 70846, 0, 10592, 0, 495, 0, 41712, 7983, 0, 0, 0, 6347, 69465, 7654,
+ 74127, 0, 0, 0, 78086, 73758, 2335, 10663, 0, 0, 129872, 119602, 0, 0,
+ 70325, 0, 41443, 0, 0, 0, 9711, 1523, 0, 0, 41445, 0, 0, 8567, 41442,
+ 12821, 0, 0, 118978, 0, 65274, 0, 94082, 0, 127515, 0, 0, 43446, 0, 0, 0,
+ 0, 127985, 0, 10206, 127167, 6375, 2673, 0, 0, 0, 43219, 129355, 0, 0, 0,
+ 0, 129400, 11799, 101225, 68466, 0, 0, 0, 0, 0, 120736, 0, 7203, 0, 0,
+ 70361, 127213, 120615, 127216, 0, 0, 0, 0, 43121, 0, 128366, 72161, 0,
+ 129868, 0, 121260, 73781, 70365, 0, 68039, 70446, 10057, 0, 0, 0, 101219,
+ 120963, 101220, 2307, 0, 0, 0, 0, 73873, 0, 94035, 0, 0, 0, 0, 129983,
+ 7327, 0, 0, 440, 0, 0, 68613, 75059, 0, 0, 9957, 0, 0, 8046, 0, 119158,
+ 0, 0, 68609, 0, 129405, 1521, 129460, 92256, 65344, 0, 11850, 68737, 0,
+ 0, 68914, 7303, 65770, 5243, 0, 5239, 65771, 121429, 0, 5237, 0, 68756,
+ 0, 5247, 0, 0, 0, 12873, 5764, 0, 0, 3008, 118981, 128102, 0, 0, 55231,
+ 41103, 0, 92756, 0, 0, 92717, 70074, 7872, 74886, 917567, 8731, 65378, 0,
+ 0, 11316, 128163, 126600, 70360, 3019, 9997, 0, 0, 9456, 129545, 0, 0,
+ 101192, 0, 0, 92682, 4281, 0, 0, 0, 118982, 0, 69993, 78096, 0, 78095, 0,
+ 78098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2134, 0, 10116, 9877, 70679, 0, 0,
+ 92723, 8379, 0, 6778, 0, 0, 8243, 0, 0, 0, 0, 128008, 0, 0, 0, 983630,
+ 119668, 129962, 92722, 983098, 5637, 125115, 0, 0, 120479, 0, 113730, 0,
+ 0, 194990, 64432, 0, 70363, 121368, 1156, 68052, 0, 0, 120482, 0, 68030,
+ 0, 0, 0, 7634, 0, 0, 65536, 0, 0, 0, 7702, 0, 78890, 0, 65779, 65783,
+ 195066, 120961, 5700, 0, 0, 92161, 2339, 92476, 5697, 0, 0, 0, 74923, 0,
+ 5696, 92677, 0, 3862, 0, 0, 0, 983055, 0, 0, 0, 0, 5701, 9722, 41490,
+ 41370, 5698, 0, 0, 0, 42204, 55270, 8571, 0, 0, 43859, 0, 78731, 0,
+ 12184, 0, 0, 0, 0, 0, 5650, 0, 64712, 120474, 0, 120458, 5647, 120473,
+ 7387, 0, 92675, 11477, 5646, 0, 11018, 0, 0, 0, 0, 0, 0, 69280, 128459,
+ 126128, 5651, 0, 0, 0, 5648, 0, 120920, 0, 127517, 3545, 0, 6984, 0, 0,
+ 0, 69414, 126613, 0, 10123, 0, 69274, 0, 0, 65020, 74885, 119166, 0, 0,
+ 0, 0, 0, 1140, 78426, 0, 0, 0, 0, 8128, 9889, 0, 0, 1815, 0, 890, 0,
+ 3267, 0, 0, 0, 983667, 4410, 125081, 10576, 8102, 0, 580, 74232, 0, 0, 0,
+ 0, 0, 19938, 0, 0, 0, 0, 3298, 6546, 0, 0, 0, 0, 6134, 41246, 0, 0, 0,
+ 917770, 0, 6264, 0, 0, 0, 0, 0, 0, 69445, 0, 0, 0, 92697, 11915, 10377,
+ 0, 10072, 0, 0, 2329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101164, 0, 11201, 92708,
+ 74769, 0, 13263, 0, 0, 92404, 126066, 73822, 0, 0, 64917, 0, 0, 494,
+ 128026, 0, 65098, 0, 956, 125265, 129556, 0, 73740, 0, 0, 0, 74281,
+ 128638, 0, 0, 69217, 120930, 0, 0, 0, 0, 0, 9922, 0, 126269, 100948, 0,
+ 65229, 0, 0, 0, 0, 0, 0, 3907, 118833, 64526, 11829, 68197, 0, 0, 11475,
+ 70329, 3020, 42264, 0, 0, 0, 7098, 0, 0, 127967, 957, 42696, 0, 3016, 0,
+ 0, 0, 0, 0, 121248, 92510, 3006, 4620, 0, 0, 0, 0, 129369, 129425, 0, 0,
+ 0, 126246, 8626, 0, 128824, 0, 65377, 0, 983102, 42920, 1698, 0, 64477,
+ 0, 0, 43813, 100432, 100431, 100434, 100433, 100436, 70321, 100438,
+ 100437, 100440, 100439, 0, 121024, 0, 70327, 100441, 55252, 100443,
+ 100442, 100445, 100444, 66641, 100446, 100449, 100448, 0, 100450, 113820,
+ 74866, 64375, 0, 127850, 129477, 0, 0, 0, 0, 983780, 0, 0, 120827, 0, 0,
+ 123637, 0, 0, 0, 101183, 8110, 100421, 0, 100423, 5830, 100425, 100424,
+ 100427, 100426, 100429, 100428, 42389, 78611, 121398, 0, 0, 0, 0, 0, 0,
+ 0, 83342, 983935, 0, 127147, 119187, 2135, 11836, 0, 0, 78869, 42313,
+ 5579, 0, 70384, 983082, 94002, 0, 5578, 11840, 73006, 42023, 69849, 5669,
+ 92559, 0, 0, 68833, 917845, 128275, 5583, 0, 0, 42426, 5580, 42276, 0,
+ 892, 2220, 42465, 74313, 73440, 5795, 194991, 68774, 65702, 68770, 0,
+ 65695, 0, 65710, 128399, 0, 0, 68783, 0, 0, 0, 1638, 10966, 0, 917547, 0,
+ 118921, 0, 0, 0, 8172, 0, 0, 0, 0, 0, 0, 6374, 0, 0, 120972, 0, 0, 0, 0,
+ 0, 0, 0, 72204, 64900, 7153, 65785, 68826, 0, 3015, 68743, 68740, 68738,
+ 68805, 6400, 68749, 68748, 68760, 68758, 11276, 68754, 100420, 372,
+ 101138, 68761, 118874, 0, 41585, 128202, 0, 74228, 276, 129895, 74234, 0,
+ 74226, 0, 9007, 0, 41588, 125001, 119189, 10763, 0, 0, 983560, 126097,
+ 68525, 6257, 73112, 100393, 100396, 100395, 100398, 92409, 100400,
+ 100399, 101148, 74848, 120006, 983592, 100401, 66498, 100403, 100402,
+ 64790, 73454, 100407, 100406, 70356, 100408, 0, 100410, 66829, 70817,
+ 5711, 41633, 12098, 65571, 9166, 0, 5710, 0, 6790, 65213, 0, 0, 0, 69726,
+ 0, 73817, 0, 0, 5715, 0, 70408, 0, 5712, 100382, 41620, 100384, 3074,
+ 5722, 100389, 100388, 73768, 0, 118906, 0, 0, 0, 66419, 71972, 0, 0, 0,
+ 0, 128903, 78607, 0, 129074, 0, 0, 0, 0, 0, 0, 113682, 0, 11261, 0, 0, 0,
+ 8701, 0, 11236, 0, 129490, 100390, 0, 0, 0, 78293, 0, 0, 0, 64946, 0, 0,
+ 0, 70336, 0, 0, 93986, 68814, 42902, 0, 0, 0, 0, 92344, 0, 67845, 42641,
+ 71444, 0, 0, 70366, 101152, 100369, 100368, 5084, 100370, 101158, 118861,
+ 0, 733, 74646, 0, 0, 0, 125085, 0, 9218, 0, 100380, 100379, 71070, 0, 0,
+ 0, 0, 70323, 0, 0, 5155, 0, 0, 983756, 0, 0, 72351, 0, 0, 0, 122891, 0,
+ 0, 0, 100372, 100371, 100374, 100373, 100376, 100375, 100378, 100377,
+ 4974, 100357, 100360, 100359, 0, 0, 0, 12205, 0, 0, 64507, 0, 0, 0, 0, 0,
+ 0, 12149, 13088, 78290, 0, 12241, 0, 0, 0, 6932, 100352, 73676, 100354,
+ 100353, 100356, 351, 68764, 0, 0, 0, 0, 73443, 0, 0, 100361, 42377,
+ 100363, 100362, 100365, 100364, 100367, 9013, 4054, 0, 0, 71939, 0,
+ 120782, 5585, 65881, 0, 0, 0, 0, 5584, 8358, 128975, 121177, 0, 0, 0,
+ 41616, 0, 983796, 2218, 0, 5589, 0, 2664, 41613, 5586, 118890, 0, 11356,
+ 0, 0, 0, 78609, 0, 0, 0, 0, 0, 129870, 0, 0, 8135, 129685, 0, 983791, 0,
+ 0, 0, 5657, 0, 12915, 121453, 0, 10179, 5654, 12939, 0, 120799, 0, 0,
+ 5652, 10945, 0, 0, 0, 113710, 0, 73449, 68069, 0, 70332, 0, 5659, 0, 0,
+ 66729, 5655, 0, 0, 0, 68806, 0, 128225, 66310, 73444, 0, 0, 70362, 0,
+ 11609, 0, 126990, 92949, 10272, 10304, 10368, 74511, 594, 10244, 10248,
+ 10256, 983899, 0, 0, 3467, 41010, 0, 3331, 946, 0, 1495, 13184, 74330,
+ 128242, 9562, 0, 123175, 0, 70036, 0, 0, 0, 123176, 0, 0, 0, 5666, 65227,
+ 123174, 68419, 0, 11796, 123178, 0, 0, 10186, 123172, 7732, 983736, 0, 0,
+ 0, 5668, 83334, 0, 74645, 5670, 0, 0, 12741, 126619, 123638, 5667, 19952,
+ 120807, 113766, 12749, 0, 67757, 2263, 0, 0, 119260, 129131, 9286, 83335,
+ 128457, 83336, 70359, 0, 3571, 13247, 5874, 78279, 73447, 68435, 78278,
+ 78267, 78268, 0, 78265, 553, 113768, 0, 93053, 5829, 0, 4587, 78285,
+ 78299, 129699, 12746, 0, 70338, 0, 5633, 0, 94101, 94102, 94099, 94100,
+ 94105, 74856, 94103, 12742, 0, 983818, 0, 0, 0, 70330, 0, 983811, 0, 0,
+ 0, 12148, 0, 0, 0, 0, 0, 64938, 67234, 5634, 0, 0, 2146, 0, 118880, 2425,
+ 65182, 983813, 43636, 0, 0, 328, 0, 68736, 0, 5636, 123163, 5329, 0,
+ 5638, 0, 7940, 0, 43223, 43760, 5635, 3373, 72424, 78292, 74223, 73441,
+ 68763, 78287, 9833, 0, 74208, 41635, 0, 0, 43040, 78297, 68778, 78295,
+ 5639, 65603, 5660, 5640, 78303, 0, 78300, 0, 68301, 0, 0, 78312, 0,
+ 78310, 41625, 78308, 78309, 100731, 41780, 5642, 100732, 100735, 100734,
+ 4356, 100736, 100739, 12051, 70166, 100740, 5641, 8259, 0, 0, 0, 119570,
+ 0, 0, 121264, 983558, 0, 0, 0, 73890, 0, 0, 2800, 11220, 5645, 64964,
+ 8652, 83323, 0, 0, 121356, 5608, 128281, 119932, 0, 0, 0, 9000, 0, 83324,
+ 92673, 129176, 0, 5613, 74267, 100721, 100724, 5610, 100726, 92965,
+ 100728, 5612, 100730, 10787, 0, 3615, 123647, 5609, 78316, 78317, 78313,
+ 78315, 5875, 5808, 0, 8186, 0, 74269, 0, 70004, 65874, 72422, 5807, 0,
+ 66320, 5306, 12936, 0, 92970, 0, 0, 92583, 10211, 0, 0, 78871, 121063, 0,
+ 129512, 0, 0, 0, 0, 0, 74237, 0, 9133, 74262, 0, 0, 0, 64779, 0, 0, 6185,
+ 64776, 0, 121266, 6499, 0, 0, 0, 92720, 0, 93784, 93791, 2534, 0, 93768,
+ 93778, 93762, 71849, 71869, 93781, 64583, 93761, 93780, 93760, 93787,
+ 92443, 128714, 71848, 93774, 66411, 93785, 71841, 93770, 93769, 0, 0, 0,
+ 121168, 68443, 69774, 931, 0, 125052, 6363, 2748, 0, 0, 0, 983603, 44011,
+ 0, 0, 100711, 119009, 100713, 100712, 100715, 65896, 100717, 78298,
+ 100719, 100718, 128836, 100720, 11649, 0, 0, 0, 0, 0, 42341, 65284, 0, 0,
+ 12884, 0, 7907, 127255, 0, 0, 0, 0, 68779, 0, 68786, 0, 100691, 0,
+ 100693, 100692, 42851, 100694, 100697, 100696, 92276, 78226, 66393,
+ 100700, 0, 93773, 93776, 93777, 100702, 78301, 100704, 100703, 42415,
+ 78307, 4542, 69909, 94022, 100709, 0, 0, 0, 0, 42454, 11565, 7949,
+ 124939, 0, 0, 42494, 3073, 0, 0, 42302, 0, 126553, 70810, 0, 72401, 0, 0,
+ 0, 129319, 4877, 100681, 100684, 100683, 10548, 100685, 100688, 100687,
+ 100690, 64798, 70805, 5346, 0, 126570, 0, 4874, 0, 0, 0, 0, 0, 65884, 0,
+ 0, 0, 11378, 0, 42785, 0, 3251, 11203, 0, 0, 0, 69568, 11052, 0, 5342,
+ 8317, 0, 0, 5340, 0, 0, 128599, 0, 129538, 0, 128395, 0, 128510, 0, 0,
+ 9142, 0, 0, 0, 10938, 0, 0, 1182, 127381, 4829, 0, 0, 72438, 529, 0, 0,
+ 0, 10586, 10790, 10839, 121427, 41593, 100669, 0, 0, 41594, 225, 66418,
+ 0, 0, 983950, 11376, 0, 41596, 0, 0, 0, 0, 11084, 3194, 0, 78306, 78305,
+ 0, 0, 0, 11324, 0, 0, 8420, 127756, 128844, 0, 41338, 129683, 11485, 0,
+ 41322, 66605, 100671, 0, 100673, 100672, 100675, 5161, 41330, 100676,
+ 100679, 100678, 100659, 100658, 0, 100660, 0, 100485, 12361, 0, 12359,
+ 983559, 41369, 66412, 12191, 0, 0, 0, 0, 78221, 41376, 0, 9870, 0, 41385,
+ 65824, 100651, 11938, 100653, 100652, 100655, 100654, 42678, 100656, 0,
+ 64649, 0, 0, 0, 0, 0, 983948, 100662, 100661, 100664, 66334, 100666,
+ 70280, 832, 100667, 2240, 78473, 66007, 78471, 65703, 0, 0, 0, 12357, 0,
+ 41395, 0, 0, 0, 0, 0, 0, 983461, 0, 41114, 65466, 0, 983825, 6024, 0,
+ 9979, 0, 0, 0, 0, 0, 0, 0, 4285, 0, 0, 4230, 0, 7367, 0, 92353, 7563,
+ 42376, 0, 128532, 0, 0, 0, 0, 0, 0, 78466, 0, 12208, 128138, 0, 66311,
+ 71309, 0, 41130, 78286, 0, 0, 70047, 0, 6022, 0, 0, 0, 0, 0, 41125, 0,
+ 66453, 0, 41107, 0, 41121, 5300, 0, 0, 0, 0, 74801, 70855, 2074, 73456,
+ 0, 0, 12453, 0, 0, 0, 0, 68159, 12457, 0, 0, 66278, 0, 0, 0, 0, 0, 66637,
+ 12455, 0, 128473, 0, 12449, 0, 71224, 0, 0, 66908, 0, 10165, 0, 0,
+ 113715, 0, 128223, 0, 0, 0, 0, 4993, 0, 6168, 74033, 4995, 0, 69459,
+ 120522, 4639, 0, 72223, 0, 0, 0, 0, 0, 0, 69734, 0, 0, 0, 0, 0, 0, 83310,
+ 0, 0, 0, 0, 0, 0, 0, 0, 129594, 4953, 0, 0, 0, 0, 83311, 0, 73453, 65688,
+ 0, 10125, 3517, 0, 0, 0, 65094, 74791, 78262, 10627, 66333, 78256, 78257,
+ 83304, 78253, 0, 71317, 64923, 0, 65208, 10608, 78263, 78264, 0, 0, 0,
+ 65883, 0, 0, 74914, 0, 0, 0, 0, 0, 12912, 119012, 0, 128191, 0, 0,
+ 129586, 0, 1290, 0, 0, 0, 0, 113719, 71442, 0, 0, 8978, 0, 119135,
+ 120979, 10527, 71079, 0, 0, 0, 0, 0, 0, 5336, 0, 0, 6934, 0, 10780, 0, 0,
+ 78767, 0, 0, 0, 347, 0, 0, 78775, 64675, 41582, 78774, 78771, 68094,
+ 74903, 78769, 69221, 69657, 0, 0, 11153, 120981, 78526, 0, 0, 0, 0,
+ 41584, 0, 69464, 0, 0, 0, 0, 43510, 66661, 0, 66306, 78791, 66384, 0,
+ 6609, 0, 0, 11319, 0, 128964, 0, 41730, 0, 0, 127920, 0, 65172, 41728,
+ 41721, 0, 0, 0, 41203, 0, 0, 41726, 0, 0, 5758, 0, 0, 41140, 2028, 78092,
+ 0, 0, 0, 92739, 983195, 41138, 0, 0, 0, 125082, 1115, 127060, 9794,
+ 127062, 67671, 92238, 12237, 78787, 66314, 78785, 9290, 73668, 78783,
+ 78780, 78781, 127144, 7926, 0, 0, 0, 64398, 100924, 71274, 12311, 101268,
+ 78796, 78798, 78794, 78795, 78792, 78793, 0, 101270, 0, 73455, 0, 0, 0,
+ 42142, 9968, 11583, 0, 7092, 129835, 9627, 78536, 73677, 78535, 0, 0,
+ 1248, 10148, 127755, 0, 0, 101273, 0, 66447, 0, 0, 0, 0, 65305, 0, 4031,
+ 42794, 119986, 0, 8154, 0, 0, 128028, 126259, 129926, 125220, 73452, 0,
+ 0, 0, 6696, 0, 119599, 0, 0, 0, 4364, 0, 0, 0, 120976, 0, 120922, 0,
+ 10124, 7526, 8601, 0, 68246, 0, 129318, 1418, 10885, 0, 0, 0, 0, 0, 0,
+ 4571, 0, 0, 0, 12078, 41597, 0, 10933, 0, 72129, 0, 0, 0, 41599, 0, 0, 0,
+ 12950, 119190, 10498, 0, 66782, 4239, 0, 0, 66511, 68066, 2637, 110685,
+ 8460, 110683, 8476, 110681, 0, 110679, 0, 127919, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5412, 66243, 9935, 122892, 0, 73864, 41734, 8206, 74081, 0, 3286,
+ 120730, 0, 0, 41732, 0, 41736, 983201, 41731, 0, 0, 70842, 0, 0, 0, 0,
+ 129329, 0, 66853, 0, 0, 78742, 72755, 11277, 65892, 0, 10620, 92272, 0,
+ 0, 0, 0, 73942, 0, 100479, 0, 119093, 3459, 0, 129398, 0, 0, 72130,
+ 92512, 0, 66377, 69781, 128718, 0, 111304, 3161, 69981, 0, 0, 0, 0, 0,
+ 9016, 78153, 0, 0, 43641, 0, 121018, 0, 101279, 0, 0, 0, 0, 0, 68342,
+ 120950, 94043, 0, 12332, 121310, 6086, 41722, 0, 120709, 0, 0, 111305, 0,
+ 0, 128307, 74288, 0, 74546, 0, 129178, 129399, 0, 42460, 0, 0, 0, 0,
+ 120941, 42421, 0, 41723, 110606, 64358, 11460, 983506, 0, 64718, 120838,
+ 66869, 0, 42348, 0, 6752, 452, 42500, 0, 128258, 0, 42308, 0, 0, 0,
+ 12932, 0, 69968, 42950, 66827, 917582, 0, 0, 8302, 0, 0, 0, 0, 7250,
+ 13214, 10041, 8105, 65568, 127780, 69969, 127759, 0, 0, 121467, 0,
+ 121466, 73666, 0, 69878, 0, 5538, 9987, 0, 118932, 129307, 0, 552, 0,
+ 7357, 10785, 0, 0, 4557, 0, 0, 10171, 68320, 0, 5540, 0, 0, 281, 0, 0,
+ 42622, 0, 5536, 0, 0, 1388, 0, 0, 10504, 0, 0, 11531, 74324, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3663, 0, 121081, 70335, 74859, 0, 5334, 0, 110738,
+ 72319, 0, 11305, 0, 68456, 0, 66611, 0, 19907, 64363, 3478, 7583, 7679,
+ 74154, 0, 0, 1158, 0, 983871, 73748, 0, 0, 1915, 4846, 0, 120132, 118984,
+ 120134, 120129, 120128, 805, 120130, 64438, 120124, 8760, 120126, 72137,
+ 120120, 120123, 94003, 0, 0, 0, 0, 0, 12225, 0, 0, 0, 70173, 75045, 0,
+ 129515, 8083, 0, 0, 0, 111094, 92626, 0, 0, 0, 0, 0, 0, 110837, 0, 67699,
+ 560, 5643, 0, 0, 0, 0, 0, 0, 0, 120144, 0, 120661, 78304, 1597, 120143,
+ 120142, 206, 70126, 120139, 120138, 8168, 0, 73086, 0, 0, 0, 983827,
+ 125036, 0, 0, 3546, 42573, 66811, 0, 0, 128397, 8400, 0, 0, 0, 0, 0,
+ 7903, 9287, 72791, 0, 0, 0, 0, 72134, 66603, 1695, 917861, 0, 0, 111101,
+ 0, 0, 0, 0, 0, 0, 0, 111099, 0, 111098, 4754, 0, 69222, 128229, 0, 0,
+ 7354, 7408, 0, 0, 121181, 0, 0, 0, 12739, 0, 1278, 4187, 0, 42119, 42120,
+ 0, 121158, 0, 12467, 0, 68902, 0, 12463, 0, 0, 118827, 0, 9664, 70834,
+ 74475, 0, 0, 0, 0, 0, 3661, 0, 0, 9022, 127955, 0, 101460, 126257, 0,
+ 6118, 222, 126250, 3884, 0, 74151, 0, 6502, 0, 11085, 121261, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12461, 0, 0, 0, 94059, 11254, 10860, 64880, 0, 64685, 0, 0,
+ 94087, 7776, 11219, 0, 0, 121339, 69730, 801, 43165, 0, 78212, 0, 0,
+ 13277, 0, 12951, 0, 9906, 5486, 2334, 128672, 67680, 5483, 73732, 120884,
+ 119128, 5484, 0, 127876, 2539, 0, 78507, 5485, 195065, 42697, 0, 0,
+ 113689, 4502, 68057, 253, 73672, 0, 0, 9203, 0, 0, 0, 0, 0, 121242,
+ 11127, 0, 0, 0, 13257, 0, 0, 0, 69645, 0, 0, 0, 70431, 0, 5693, 64470, 0,
+ 66610, 67678, 0, 983659, 0, 0, 0, 0, 0, 0, 0, 94078, 0, 0, 66608, 3111,
+ 0, 8804, 66607, 0, 0, 0, 66606, 0, 0, 0, 1436, 0, 55226, 0, 111287, 7393,
+ 41592, 0, 0, 1598, 78101, 0, 0, 65193, 4423, 0, 113692, 10515, 41589, 0,
+ 0, 0, 101485, 1430, 101486, 0, 120606, 0, 66223, 7619, 3255, 128280,
+ 74032, 11549, 10735, 93038, 100741, 6801, 100743, 100746, 2148, 100748,
+ 100747, 100750, 100749, 0, 121229, 101479, 69243, 41724, 67716, 69669,
+ 41690, 111269, 983647, 8380, 100355, 983830, 0, 101480, 0, 0, 0, 0, 6333,
+ 111264, 42315, 0, 129502, 111265, 0, 0, 5339, 74323, 0, 13004, 0, 0, 0,
+ 0, 0, 0, 5684, 0, 0, 0, 5689, 0, 0, 68464, 12633, 12870, 0, 65183, 5688,
+ 0, 0, 6310, 5686, 0, 0, 0, 120647, 70046, 50, 94095, 9871, 0, 0, 121446,
+ 0, 0, 0, 66905, 0, 4448, 0, 121406, 113734, 72125, 1321, 0, 10640, 0, 0,
+ 101497, 0, 0, 0, 0, 0, 0, 0, 0, 12501, 0, 0, 0, 0, 8812, 0, 69986, 8673,
+ 0, 129024, 0, 0, 2105, 72101, 72712, 0, 129929, 0, 0, 0, 4636, 55262, 0,
+ 4515, 2382, 0, 0, 7313, 101477, 0, 0, 194626, 0, 0, 0, 0, 0, 0, 0, 10197,
+ 194719, 0, 0, 0, 194718, 0, 0, 0, 64189, 0, 1873, 0, 0, 0, 0, 0, 983663,
+ 0, 0, 101499, 72282, 126991, 71113, 0, 0, 129340, 9489, 0, 70843, 0, 0,
+ 0, 0, 128030, 13295, 43191, 0, 0, 1154, 0, 1205, 0, 0, 0, 12958, 0, 0, 0,
+ 70846, 0, 10592, 0, 495, 0, 41712, 7983, 0, 0, 0, 6347, 69465, 7654,
41710, 4196, 0, 0, 41709, 73772, 70832, 0, 9465, 983764, 0, 0, 917612, 0,
- 0, 41714, 0, 0, 0, 6343, 0, 0, 43996, 0, 8044, 0, 0, 41789, 0, 10809,
- 71953, 0, 0, 0, 8146, 11025, 0, 120513, 642, 0, 0, 0, 12875, 0, 0, 13229,
- 71950, 41788, 0, 0, 0, 41791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8428, 6569,
- 0, 0, 0, 0, 10167, 0, 68248, 8049, 0, 0, 0, 0, 128882, 4761, 0, 4766,
- 64623, 0, 121180, 194653, 118876, 0, 6912, 9232, 7033, 0, 0, 41545, 0,
- 71970, 72160, 72107, 0, 0, 0, 3484, 0, 0, 0, 8503, 41539, 41527, 0, 0,
- 983823, 0, 0, 0, 41537, 0, 41541, 8282, 11817, 129965, 128219, 0, 0,
- 126132, 0, 0, 70115, 66609, 111235, 65921, 0, 0, 194664, 0, 129326,
- 77970, 42246, 75030, 120605, 0, 65926, 7744, 68859, 94056, 74277, 126108,
- 0, 6966, 194633, 8136, 0, 0, 0, 0, 0, 4762, 0, 0, 0, 4765, 69443, 983585,
- 0, 4760, 0, 0, 10871, 43199, 194645, 0, 93955, 0, 0, 11546, 0, 337, 0, 0,
- 0, 12279, 7768, 0, 128352, 0, 69812, 10143, 7883, 121444, 7880, 64618,
- 13012, 5704, 13010, 0, 0, 119531, 0, 0, 0, 0, 66654, 0, 0, 0, 13008, 0,
- 4385, 0, 13011, 0, 92569, 119161, 13009, 74771, 70159, 0, 0, 41793, 0,
- 74221, 120996, 41792, 111242, 94054, 126094, 0, 111244, 5709, 120689,
- 71076, 0, 0, 0, 0, 0, 5708, 0, 0, 0, 5706, 66362, 5705, 8791, 41797, 0,
- 10237, 66436, 0, 0, 0, 0, 128083, 13170, 0, 127075, 0, 0, 41377, 0, 0,
- 10058, 125225, 101431, 0, 0, 0, 0, 0, 0, 129641, 119525, 0, 0, 72350, 0,
- 983584, 2144, 0, 120765, 0, 0, 1754, 92226, 13246, 864, 0, 118926, 8972,
- 0, 7849, 0, 0, 13240, 0, 5192, 0, 0, 10948, 0, 13199, 0, 1236, 13208,
- 13261, 13189, 13188, 93993, 0, 7440, 0, 0, 0, 1844, 125229, 0, 13178, 0,
- 0, 0, 125230, 0, 0, 13260, 4550, 121249, 125227, 0, 71071, 0, 0, 68523,
- 0, 0, 11354, 94071, 0, 42795, 129317, 0, 0, 0, 125237, 0, 13194, 13274,
- 0, 0, 129533, 65586, 68311, 0, 119193, 4601, 194661, 101454, 194658, 0,
- 194659, 0, 121422, 128790, 194657, 41717, 67402, 101444, 121129, 41716,
- 127376, 7910, 0, 0, 754, 41944, 0, 8183, 120741, 2037, 101440, 0, 101441,
- 125, 0, 0, 0, 983124, 101442, 41719, 0, 7990, 12637, 13258, 9536, 71056,
- 0, 4427, 0, 71200, 0, 12217, 0, 41532, 129315, 0, 0, 0, 0, 111063, 83349,
- 0, 0, 120622, 0, 0, 0, 0, 43632, 0, 0, 8140, 0, 6260, 0, 0, 66765,
- 129657, 0, 3898, 0, 0, 13200, 0, 0, 66582, 0, 0, 0, 0, 1068, 71178,
- 13259, 12945, 0, 42203, 0, 3124, 69411, 0, 4386, 12224, 6973, 129563, 0,
- 0, 119535, 0, 121312, 0, 12232, 0, 0, 5681, 64578, 75023, 72016, 13209,
- 0, 0, 0, 0, 0, 11053, 0, 74902, 128107, 128942, 7588, 0, 1693, 74942,
- 43204, 65831, 0, 0, 0, 68803, 111216, 111223, 0, 0, 65685, 9523, 2243, 0,
- 0, 0, 0, 0, 0, 0, 0, 13191, 0, 3500, 3139, 100643, 3170, 100645, 100644,
- 100647, 100646, 13006, 64433, 0, 100650, 941, 0, 0, 120967, 3727, 0, 0,
- 0, 0, 0, 0, 0, 94039, 129299, 92455, 0, 0, 64444, 0, 0, 43603, 94075,
- 65397, 288, 0, 0, 0, 10025, 73692, 0, 0, 68182, 0, 0, 0, 92438, 65395, 0,
- 0, 0, 65393, 83078, 121111, 0, 0, 0, 0, 0, 65394, 11548, 72305, 0, 65396,
- 0, 0, 13256, 1282, 0, 0, 0, 111085, 0, 0, 0, 111087, 72115, 0, 0, 0, 0,
- 0, 3304, 0, 0, 0, 126595, 72437, 68353, 0, 0, 42113, 0, 0, 0, 0, 0,
- 43094, 0, 0, 94037, 68317, 9035, 0, 0, 0, 0, 0, 70822, 128467, 164,
- 68309, 94067, 94000, 100631, 100634, 100633, 100636, 100635, 100638,
- 100637, 68808, 100639, 110665, 73893, 11099, 110664, 13175, 13207, 0,
- 127552, 0, 74643, 5929, 0, 0, 129192, 0, 11306, 0, 119059, 3180, 125102,
- 0, 0, 0, 13062, 0, 129551, 128707, 0, 0, 74428, 0, 128000, 0, 11251,
- 70204, 0, 10045, 0, 13275, 0, 11057, 0, 13276, 125133, 41525, 983084,
- 128015, 11444, 0, 129158, 0, 0, 41523, 127765, 0, 0, 0, 0, 0, 0, 0, 3858,
- 0, 119573, 0, 0, 0, 0, 0, 0, 101014, 369, 74908, 41784, 0, 120994, 0,
- 71180, 0, 0, 13210, 41782, 0, 0, 101388, 41781, 10486, 74058, 43002, 0,
- 0, 0, 0, 0, 3741, 0, 0, 0, 0, 41222, 0, 128317, 3982, 0, 4388, 126105,
- 746, 0, 0, 0, 13131, 0, 0, 0, 0, 0, 10434, 8794, 0, 0, 0, 0, 0, 0, 11700,
- 4374, 0, 0, 0, 0, 0, 0, 917597, 0, 69814, 0, 6735, 73979, 13174, 73968,
- 13225, 0, 69808, 0, 0, 2365, 7841, 71476, 0, 120934, 66510, 128099, 0, 0,
- 0, 41785, 41171, 0, 13173, 4372, 0, 0, 0, 0, 128939, 0, 0, 12965, 384, 0,
- 0, 12685, 41473, 0, 13242, 13236, 0, 0, 0, 41787, 0, 70684, 0, 68486,
- 13272, 0, 13232, 13233, 65838, 0, 0, 11656, 0, 126110, 119885, 12861, 0,
- 13271, 0, 92737, 1096, 0, 0, 0, 0, 0, 0, 0, 5203, 0, 92902, 0, 13243,
- 13237, 12719, 0, 0, 0, 64884, 78043, 43052, 0, 0, 0, 12014, 0, 101415, 0,
- 0, 13195, 41452, 64961, 41535, 0, 10459, 0, 124949, 0, 0, 0, 41533,
- 66337, 0, 92184, 0, 126091, 0, 0, 73849, 0, 43638, 0, 101398, 6261, 0,
- 129568, 0, 1957, 0, 0, 0, 13292, 13206, 0, 0, 2925, 73809, 42576, 101395,
- 13212, 43238, 0, 13190, 13187, 0, 13198, 0, 0, 5242, 0, 0, 128146, 0, 0,
- 6770, 43331, 127539, 0, 0, 71074, 126466, 0, 41444, 0, 0, 64799, 5246,
- 119106, 13185, 9709, 0, 0, 92751, 0, 5238, 0, 71085, 0, 5236, 40979, 0,
- 74201, 8286, 0, 3936, 0, 11699, 0, 127249, 13235, 69578, 41248, 127264,
- 13245, 13239, 0, 7969, 127266, 74832, 127251, 0, 120509, 0, 983874, 734,
- 127270, 0, 127254, 70297, 127273, 64921, 120969, 66631, 41771, 120490, 0,
- 983171, 41770, 1670, 42560, 0, 121349, 129634, 0, 41163, 0, 11136, 0,
- 11506, 0, 42841, 13267, 126109, 0, 41775, 0, 7130, 41773, 0, 0, 0, 0, 0,
- 0, 0, 42673, 65572, 0, 65250, 13265, 13264, 64518, 66798, 6100, 0, 0,
- 6740, 71080, 67814, 12967, 70028, 68101, 4583, 0, 0, 68097, 0, 0, 0, 0,
- 119211, 0, 0, 42653, 83181, 68102, 0, 7814, 71045, 0, 73702, 0, 0, 0,
- 9756, 6985, 0, 0, 74219, 0, 0, 129069, 124987, 5674, 0, 66421, 0, 5677,
- 5588, 0, 0, 0, 0, 5673, 0, 5676, 0, 94048, 0, 5672, 6476, 0, 0, 110951,
- 42511, 1727, 0, 0, 0, 0, 0, 0, 0, 3550, 736, 0, 4505, 5873, 74090, 5826,
- 55232, 5813, 0, 120712, 5841, 5837, 55234, 0, 3105, 64370, 5838, 5796, 0,
- 119592, 5793, 0, 5866, 5797, 41011, 5865, 0, 0, 71899, 0, 71235, 5806, 0,
- 0, 9037, 5671, 0, 0, 0, 0, 71266, 126616, 7296, 0, 0, 0, 0, 6980, 0,
- 72108, 0, 0, 0, 0, 0, 64613, 983891, 0, 129969, 0, 78277, 7114, 0, 72100,
- 43190, 93842, 128666, 72096, 42611, 42563, 0, 125080, 0, 6792, 43201,
- 72098, 0, 128719, 0, 72106, 0, 0, 5644, 0, 66627, 69727, 0, 0, 0, 65116,
- 0, 0, 0, 0, 66410, 94104, 41013, 0, 0, 0, 2869, 0, 41015, 0, 2785,
- 120616, 0, 73907, 194689, 0, 0, 0, 194688, 4759, 0, 0, 43192, 129913,
- 1170, 43365, 69810, 73908, 0, 902, 0, 0, 0, 0, 8122, 66420, 129642, 0,
- 3861, 0, 11028, 0, 73820, 5714, 0, 0, 0, 807, 127001, 0, 0, 976, 113782,
- 0, 0, 0, 0, 0, 128657, 118801, 71043, 0, 127017, 0, 0, 5582, 0, 0, 5798,
- 0, 0, 0, 128521, 0, 0, 68058, 120553, 983183, 0, 0, 74933, 74283, 0, 0,
- 194698, 66044, 0, 0, 0, 0, 0, 10094, 0, 0, 10857, 69225, 0, 0, 93, 0,
- 10954, 0, 0, 0, 8171, 0, 0, 82996, 0, 0, 0, 119001, 92634, 0, 0, 5187,
- 120711, 71086, 0, 0, 0, 0, 5232, 0, 41009, 0, 41005, 0, 43205, 0, 0, 0,
- 194708, 0, 71054, 10028, 66478, 7076, 13182, 100385, 0, 0, 0, 0, 7972,
- 78786, 0, 0, 0, 78789, 11309, 3806, 73985, 0, 0, 0, 78819, 0, 125218, 0,
- 127532, 0, 0, 0, 78817, 0, 64366, 65156, 8814, 0, 0, 0, 0, 12836, 42725,
- 120079, 0, 0, 0, 0, 69258, 13255, 0, 0, 7464, 0, 93831, 0, 0, 0, 0,
- 13213, 0, 0, 64516, 0, 0, 0, 41007, 983910, 0, 40995, 12209, 983914,
- 119136, 123635, 0, 0, 0, 0, 0, 69283, 43558, 5522, 0, 71061, 0, 74105,
- 3633, 983912, 119364, 41234, 41231, 0, 9771, 983917, 13251, 0, 0, 6262,
- 2784, 0, 71078, 8126, 66483, 0, 0, 441, 0, 0, 0, 41002, 40999, 0, 129394,
- 7108, 0, 10890, 0, 74445, 8324, 0, 0, 74817, 2813, 119056, 74853, 983671,
- 0, 0, 0, 1193, 10462, 65197, 13253, 13252, 7829, 120992, 130032, 0, 0, 0,
- 77911, 0, 77907, 0, 10386, 0, 41042, 0, 65944, 65683, 10338, 66469, 0, 0,
- 0, 0, 0, 41966, 0, 0, 0, 68915, 0, 0, 911, 983870, 128932, 40963, 0,
- 65159, 0, 0, 0, 5520, 0, 0, 0, 0, 0, 0, 0, 71081, 0, 0, 0, 0, 0, 983873,
- 0, 0, 66839, 0, 0, 0, 68647, 0, 5857, 68135, 92727, 119120, 983675,
- 13171, 0, 0, 0, 120338, 0, 0, 0, 13250, 69663, 0, 92201, 66397, 0, 0, 0,
- 8761, 12942, 5748, 92713, 92414, 0, 83174, 8796, 0, 0, 0, 43633, 0,
- 72805, 71073, 0, 0, 0, 0, 0, 12843, 4520, 0, 0, 73004, 983672, 0, 0,
- 194935, 110754, 64345, 0, 0, 3457, 0, 0, 0, 110750, 110758, 110751, 0, 0,
- 10427, 0, 73859, 0, 9755, 1110, 65239, 0, 0, 0, 0, 0, 0, 0, 194936, 0,
- 983802, 0, 70437, 3620, 0, 0, 72855, 0, 0, 0, 74250, 0, 0, 11980, 0,
- 66482, 67823, 0, 128345, 110768, 0, 0, 0, 0, 12891, 983767, 983648, 0,
- 2016, 0, 65668, 92311, 67696, 10366, 70117, 9155, 120652, 9786, 65082, 0,
- 8579, 0, 0, 0, 0, 4508, 64883, 0, 92522, 129847, 0, 64592, 74276, 67688,
- 0, 69270, 0, 69456, 0, 113821, 0, 12147, 9024, 66378, 66472, 0, 0, 0, 0,
- 0, 71935, 0, 0, 113697, 0, 0, 69285, 0, 74275, 0, 122896, 127941, 41214,
- 0, 0, 0, 0, 0, 7773, 0, 0, 9963, 68649, 0, 73734, 0, 0, 0, 0, 6594,
- 983752, 0, 0, 3624, 70342, 0, 64655, 121481, 0, 0, 0, 0, 0, 65932, 0,
- 983790, 6803, 120968, 7738, 0, 0, 120628, 0, 66614, 122921, 0, 43810,
- 7029, 0, 41292, 118898, 0, 43115, 9517, 11518, 0, 0, 0, 0, 64423, 0, 0,
- 0, 12503, 9591, 4516, 0, 118845, 0, 0, 129479, 43650, 983192, 69250, 0,
- 0, 68079, 0, 11397, 2884, 0, 0, 12678, 0, 0, 41014, 73730, 917539, 4270,
- 92254, 127836, 68205, 6633, 118947, 0, 5230, 101055, 0, 0, 983230,
- 121392, 0, 92985, 0, 0, 0, 0, 415, 0, 0, 0, 0, 5183, 1877, 0, 0, 0, 0, 0,
- 4472, 0, 0, 0, 128285, 110682, 78230, 4756, 0, 7081, 0, 0, 0, 78606, 0,
- 42922, 42103, 8628, 74861, 0, 0, 0, 43059, 10539, 0, 0, 0, 0, 0, 0, 0, 0,
- 64873, 11992, 129444, 0, 0, 11801, 3622, 0, 0, 983213, 0, 0, 11521, 0,
- 1966, 43628, 111048, 0, 0, 0, 0, 0, 0, 42098, 66671, 10694, 128520, 0, 0,
- 0, 0, 42100, 0, 111040, 0, 42097, 0, 0, 0, 0, 11302, 120893, 129145,
- 43395, 83259, 0, 0, 92351, 0, 0, 11299, 1561, 0, 92359, 92725, 69253, 0,
- 194733, 0, 0, 0, 127893, 11280, 0, 0, 983783, 0, 0, 72760, 0, 12486,
- 65018, 66516, 5409, 0, 0, 194720, 5399, 9685, 0, 983694, 5401, 0, 0,
- 66832, 0, 0, 5405, 0, 0, 0, 0, 0, 2235, 0, 11330, 983692, 64690, 3254, 0,
- 129974, 0, 0, 43678, 0, 0, 983145, 0, 6388, 3355, 0, 9867, 0, 55258,
- 5611, 0, 128527, 0, 0, 129181, 0, 78228, 0, 0, 119119, 0, 0, 194959, 0,
- 0, 1379, 246, 0, 0, 64736, 0, 0, 0, 121227, 0, 0, 0, 0, 0, 0, 11855, 0,
- 0, 0, 71961, 10656, 0, 65214, 119242, 0, 0, 13163, 0, 120831, 0, 0,
- 101484, 0, 0, 0, 0, 0, 4755, 0, 127879, 11443, 0, 0, 0, 608, 600, 0,
- 8580, 128712, 0, 43635, 0, 129695, 74485, 43808, 0, 0, 0, 13160, 0,
- 129418, 42268, 128006, 70505, 9828, 0, 69261, 0, 0, 9351, 7778, 0, 0, 0,
- 6916, 1208, 0, 0, 194754, 0, 0, 0, 0, 0, 83318, 83317, 0, 43539, 0,
- 72024, 0, 0, 0, 9150, 66831, 0, 128322, 0, 66848, 0, 0, 12166, 128492,
- 194685, 0, 2546, 0, 213, 0, 65611, 83316, 0, 0, 74310, 70836, 0, 65285,
- 5452, 0, 0, 92772, 0, 0, 0, 0, 65518, 129029, 12609, 194679, 125255,
- 123193, 0, 0, 0, 74638, 194677, 125190, 4143, 110854, 110855, 65748,
- 4141, 9682, 110851, 118790, 194674, 0, 0, 8725, 0, 66638, 0, 42263, 4145,
- 6380, 0, 66613, 0, 119207, 0, 0, 9550, 100621, 0, 100623, 100622, 78050,
- 100624, 65753, 100626, 65756, 72731, 0, 100630, 0, 0, 0, 0, 9657, 9019,
- 121154, 0, 0, 5390, 0, 0, 194965, 72144, 194964, 69286, 6328, 0, 0, 0, 0,
- 0, 983047, 0, 5235, 803, 69289, 0, 0, 127979, 43838, 0, 119562, 43544, 0,
- 0, 0, 0, 0, 70426, 9107, 5191, 119113, 0, 0, 0, 121099, 0, 0, 0, 0, 0,
- 128150, 983067, 0, 7289, 74055, 0, 0, 0, 0, 0, 0, 0, 1784, 124947, 0, 0,
- 0, 0, 64868, 0, 13158, 0, 7211, 0, 9371, 129378, 0, 0, 1625, 7664, 0, 0,
- 0, 0, 0, 0, 69273, 0, 0, 0, 0, 4482, 118886, 0, 0, 0, 0, 0, 0, 0, 100612,
- 66849, 100614, 100613, 100616, 444, 100618, 100617, 100620, 100619, 0, 0,
- 0, 11349, 40991, 0, 0, 129324, 0, 0, 1197, 0, 40993, 0, 0, 0, 40990,
- 43765, 0, 3492, 0, 127942, 0, 0, 100592, 100591, 100594, 19948, 100596,
- 3099, 92239, 100597, 100600, 100599, 0, 129042, 0, 0, 100601, 194969,
- 100603, 8152, 100605, 100604, 100607, 100606, 100609, 12828, 0, 75015, 0,
- 0, 129950, 0, 0, 75068, 127507, 0, 92680, 0, 0, 129928, 129920, 0,
- 130037, 0, 118820, 0, 0, 0, 0, 0, 100581, 0, 100583, 100582, 100585,
- 100584, 100587, 100586, 100589, 7576, 11995, 100590, 43260, 0, 0, 64830,
- 0, 125046, 101526, 0, 43979, 8870, 0, 0, 42357, 0, 0, 12822, 0, 0, 0,
- 118944, 0, 0, 42637, 0, 0, 70725, 0, 129934, 0, 71344, 0, 0, 0, 194745,
- 7170, 9596, 8277, 194743, 43629, 110610, 0, 0, 983571, 128691, 0, 66699,
- 42952, 0, 0, 0, 43234, 66008, 12627, 0, 0, 0, 43619, 43303, 11300, 0, 0,
- 8745, 0, 7558, 71342, 100570, 0, 0, 127881, 3461, 121258, 129471, 69264,
- 0, 0, 0, 73877, 74335, 124982, 0, 0, 0, 64620, 74762, 12069, 10838,
- 92548, 43616, 0, 10061, 0, 125057, 10508, 209, 0, 43193, 120581, 0, 0,
- 128049, 0, 10899, 69855, 100571, 100574, 100573, 100576, 993, 100578,
- 100577, 100580, 100579, 100560, 100559, 7232, 0, 0, 0, 0, 0, 0, 10489,
- 42166, 0, 128588, 0, 0, 4224, 7671, 41518, 121311, 0, 0, 0, 0, 64820,
- 92538, 12966, 100554, 100553, 100556, 100555, 100558, 100557, 4263, 8793,
- 0, 0, 41502, 0, 983, 0, 100563, 100562, 13086, 4109, 4274, 841, 5888,
- 100568, 68522, 0, 43481, 0, 120926, 0, 7209, 0, 41505, 0, 78698, 127012,
- 0, 2147, 0, 0, 66629, 0, 0, 1255, 4149, 0, 0, 66633, 0, 129391, 92352, 0,
- 65101, 0, 0, 0, 0, 5835, 128797, 66625, 10842, 0, 42123, 0, 0, 66634,
- 1094, 66636, 0, 0, 0, 0, 0, 9972, 73865, 129289, 6114, 0, 0, 0, 0, 93960,
- 0, 0, 0, 0, 12070, 0, 881, 7857, 0, 65164, 0, 0, 0, 0, 0, 64404, 64321,
- 0, 125187, 0, 0, 11245, 129395, 0, 71859, 0, 0, 0, 1287, 121509, 0, 0, 0,
- 125264, 74152, 120504, 64545, 0, 69668, 8985, 0, 0, 0, 0, 0, 0, 3652, 0,
- 0, 0, 0, 0, 279, 0, 0, 0, 0, 1489, 125189, 0, 0, 3899, 0, 42124, 43828,
- 42122, 0, 0, 0, 11985, 73755, 78600, 0, 0, 10988, 0, 0, 42138, 78610, 0,
- 65768, 78608, 78604, 78605, 6285, 78603, 78612, 78613, 74339, 65767,
- 8685, 0, 0, 0, 78622, 78623, 68475, 11470, 64538, 78618, 78615, 78616, 0,
- 0, 0, 101534, 2527, 0, 128209, 2799, 0, 0, 0, 9933, 0, 0, 767, 5524,
- 7028, 0, 101520, 0, 0, 0, 78633, 0, 0, 94011, 0, 6971, 0, 70731, 0, 0,
- 118979, 126075, 2434, 94018, 0, 120579, 0, 4631, 0, 0, 6407, 0, 19931, 0,
- 0, 0, 0, 3192, 0, 8414, 0, 0, 0, 0, 0, 9164, 66612, 93959, 8228, 0, 0, 0,
- 0, 78624, 0, 0, 9993, 0, 0, 129350, 78631, 78632, 78629, 78630, 78627,
+ 0, 41714, 0, 0, 0, 6343, 0, 0, 43996, 0, 8044, 0, 0, 41789, 0, 10809,
+ 71953, 0, 0, 0, 8146, 11025, 0, 120513, 642, 0, 0, 0, 12875, 0, 0, 13229,
+ 71950, 41788, 0, 0, 0, 41791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8428, 6569,
+ 0, 0, 0, 0, 10167, 0, 68248, 8049, 0, 0, 0, 0, 128882, 4761, 0, 4766,
+ 64623, 0, 121180, 194653, 118876, 0, 6912, 9232, 7033, 0, 0, 41545, 0,
+ 71970, 72160, 72107, 0, 0, 0, 3484, 0, 0, 0, 8503, 41539, 41527, 0, 0,
+ 983823, 0, 0, 0, 41537, 0, 41541, 8282, 11817, 129965, 128219, 0, 0,
+ 126132, 0, 0, 70115, 66609, 111235, 65921, 0, 0, 194664, 0, 129326,
+ 77970, 42246, 75030, 120605, 0, 65926, 7744, 68859, 94056, 74277, 126108,
+ 0, 6966, 194633, 8136, 0, 0, 0, 0, 0, 4762, 0, 0, 0, 4765, 69443, 983585,
+ 0, 4760, 0, 0, 10871, 43199, 194645, 0, 93955, 0, 0, 11546, 0, 337, 0, 0,
+ 0, 12279, 7768, 0, 128352, 0, 69812, 10143, 7883, 121444, 7880, 64618,
+ 13012, 5704, 13010, 0, 0, 119531, 0, 0, 0, 0, 66654, 0, 0, 0, 13008, 0,
+ 4385, 0, 13011, 0, 92569, 119161, 13009, 74771, 70159, 0, 0, 41793, 0,
+ 74221, 120996, 41792, 111242, 94054, 126094, 0, 111244, 5709, 120689,
+ 71076, 0, 0, 0, 0, 0, 5708, 0, 0, 0, 5706, 66362, 5705, 8791, 41797, 0,
+ 10237, 66436, 0, 0, 0, 0, 128083, 13170, 0, 127075, 0, 0, 41377, 0, 0,
+ 10058, 125225, 101431, 0, 0, 0, 0, 0, 0, 129641, 119525, 0, 0, 72350, 0,
+ 983584, 2144, 0, 120765, 0, 0, 1754, 92226, 13246, 864, 0, 118926, 8972,
+ 0, 7849, 0, 0, 13240, 0, 5192, 0, 0, 10948, 0, 13199, 0, 1236, 13208,
+ 13261, 13189, 13188, 93993, 0, 7440, 0, 0, 0, 1844, 125229, 0, 13178, 0,
+ 0, 0, 125230, 0, 0, 13260, 4550, 121249, 125227, 0, 71071, 0, 0, 68523,
+ 0, 0, 11354, 94071, 0, 42795, 129317, 0, 0, 0, 125237, 0, 13194, 13274,
+ 0, 0, 129533, 65586, 68311, 0, 119193, 4601, 194661, 101454, 194658, 0,
+ 194659, 0, 121422, 128790, 194657, 41717, 67402, 101444, 121129, 41716,
+ 127376, 7910, 0, 0, 754, 41944, 0, 8183, 120741, 2037, 101440, 0, 101441,
+ 125, 0, 0, 0, 983124, 101442, 41719, 0, 7990, 12637, 13258, 9536, 71056,
+ 0, 4427, 0, 71200, 0, 12217, 0, 41532, 129315, 0, 0, 0, 0, 111063, 83349,
+ 0, 0, 120622, 0, 0, 0, 0, 43632, 0, 0, 8140, 0, 6260, 0, 0, 66765,
+ 129657, 0, 3898, 0, 0, 13200, 0, 0, 66582, 0, 0, 0, 0, 1068, 71178,
+ 13259, 12945, 0, 42203, 0, 3124, 69411, 0, 4386, 12224, 6973, 129563, 0,
+ 0, 119535, 0, 121312, 0, 12232, 0, 0, 5681, 64578, 75023, 72016, 13209,
+ 0, 0, 0, 0, 0, 11053, 0, 74902, 128107, 128942, 7588, 0, 1693, 74942,
+ 43204, 65831, 0, 0, 0, 68803, 111216, 111223, 0, 0, 65685, 9523, 2243, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13191, 0, 3500, 3139, 100643, 3170, 100645, 100644,
+ 100647, 100646, 13006, 64433, 0, 100650, 941, 0, 0, 120967, 3727, 0, 0,
+ 0, 0, 0, 0, 0, 94039, 129299, 92455, 0, 0, 64444, 0, 0, 43603, 94075,
+ 65397, 288, 0, 0, 0, 10025, 73692, 0, 0, 68182, 0, 0, 0, 92438, 65395, 0,
+ 0, 0, 65393, 83078, 121111, 0, 0, 0, 0, 0, 65394, 11548, 72305, 0, 65396,
+ 0, 0, 13256, 1282, 0, 0, 0, 111085, 0, 0, 0, 111087, 72115, 0, 0, 0, 0,
+ 0, 3304, 0, 0, 0, 126595, 72437, 68353, 0, 0, 42113, 0, 0, 0, 0, 0,
+ 43094, 0, 0, 94037, 68317, 9035, 0, 0, 0, 0, 0, 70822, 128467, 164,
+ 68309, 94067, 94000, 100631, 100634, 100633, 100636, 100635, 100638,
+ 100637, 68808, 100639, 110665, 73893, 11099, 110664, 13175, 13207, 0,
+ 127552, 0, 74643, 5929, 0, 0, 129192, 0, 11306, 0, 119059, 3180, 125102,
+ 0, 0, 0, 13062, 0, 129551, 128707, 0, 0, 74428, 0, 128000, 0, 11251,
+ 70204, 0, 10045, 0, 13275, 0, 11057, 0, 13276, 125133, 41525, 983084,
+ 128015, 11444, 0, 129158, 0, 0, 41523, 127765, 0, 0, 0, 0, 0, 0, 0, 3858,
+ 0, 119573, 0, 0, 0, 0, 0, 0, 101014, 369, 74908, 41784, 0, 120994, 0,
+ 71180, 0, 0, 13210, 41782, 0, 0, 101388, 41781, 10486, 74058, 43002, 0,
+ 0, 0, 0, 0, 3741, 0, 0, 0, 0, 41222, 0, 128317, 3982, 0, 4388, 126105,
+ 746, 0, 0, 0, 13131, 0, 0, 0, 0, 0, 10434, 8794, 0, 0, 0, 0, 0, 0, 11700,
+ 4374, 0, 0, 0, 0, 0, 0, 917597, 0, 69814, 0, 6735, 73979, 13174, 73968,
+ 13225, 0, 69808, 0, 0, 2365, 7841, 71476, 0, 120934, 66510, 128099, 0, 0,
+ 0, 41785, 41171, 0, 13173, 4372, 0, 0, 0, 0, 128939, 0, 0, 12965, 384, 0,
+ 0, 12685, 41473, 0, 13242, 13236, 0, 0, 0, 41787, 0, 70684, 0, 68486,
+ 13272, 0, 13232, 13233, 65838, 0, 0, 11656, 0, 126110, 119885, 12861, 0,
+ 13271, 0, 92737, 1096, 0, 0, 0, 0, 0, 0, 0, 5203, 0, 92902, 0, 13243,
+ 13237, 12719, 0, 0, 0, 64884, 78043, 43052, 0, 0, 0, 12014, 0, 101415, 0,
+ 0, 13195, 41452, 64961, 41535, 0, 10459, 0, 124949, 0, 0, 0, 41533,
+ 66337, 0, 92184, 0, 126091, 0, 0, 73849, 0, 43638, 0, 101398, 6261, 0,
+ 129568, 0, 1957, 0, 0, 0, 13292, 13206, 0, 0, 2925, 73809, 42576, 101395,
+ 13212, 43238, 0, 13190, 13187, 0, 13198, 0, 0, 5242, 0, 0, 128146, 0, 0,
+ 6770, 43331, 127539, 0, 0, 71074, 126466, 0, 41444, 0, 0, 64799, 5246,
+ 119106, 13185, 9709, 0, 0, 92751, 0, 5238, 0, 71085, 0, 5236, 40979, 0,
+ 74201, 8286, 0, 3936, 0, 11699, 0, 127249, 13235, 69578, 41248, 127264,
+ 13245, 13239, 0, 7969, 127266, 74832, 127251, 0, 120509, 0, 983874, 734,
+ 127270, 0, 127254, 70297, 127273, 64921, 120969, 66631, 41771, 120490, 0,
+ 983171, 41770, 1670, 42560, 0, 121349, 129634, 0, 41163, 0, 11136, 0,
+ 11506, 0, 42841, 13267, 126109, 0, 41775, 0, 7130, 41773, 0, 0, 0, 0, 0,
+ 0, 0, 42673, 65572, 0, 65250, 13265, 13264, 64518, 66798, 6100, 0, 0,
+ 6740, 71080, 67814, 12967, 70028, 68101, 4583, 0, 0, 68097, 0, 0, 0, 0,
+ 119211, 0, 0, 42653, 83181, 68102, 0, 7814, 71045, 0, 73702, 0, 0, 0,
+ 9756, 6985, 0, 0, 74219, 0, 0, 129069, 124987, 5674, 0, 66421, 0, 5677,
+ 5588, 0, 0, 0, 0, 5673, 0, 5676, 0, 94048, 0, 5672, 6476, 0, 0, 110951,
+ 42511, 1727, 0, 0, 0, 0, 0, 0, 0, 3550, 736, 0, 4505, 5873, 74090, 5826,
+ 55232, 5813, 0, 120712, 5841, 5837, 55234, 0, 3105, 64370, 5838, 5796, 0,
+ 119592, 5793, 0, 5866, 5797, 41011, 5865, 0, 0, 71899, 0, 71235, 5806, 0,
+ 0, 9037, 5671, 0, 0, 0, 0, 71266, 126616, 7296, 0, 0, 0, 0, 6980, 0,
+ 72108, 0, 0, 0, 0, 0, 64613, 983891, 0, 129969, 0, 78277, 7114, 0, 72100,
+ 43190, 93842, 128666, 72096, 42611, 42563, 0, 125080, 0, 6792, 43201,
+ 72098, 0, 128719, 0, 72106, 0, 0, 5644, 0, 66627, 69727, 0, 0, 0, 65116,
+ 0, 0, 0, 0, 66410, 94104, 41013, 0, 0, 0, 2869, 0, 41015, 0, 2785,
+ 120616, 0, 73907, 194689, 0, 0, 0, 194688, 4759, 0, 0, 43192, 129913,
+ 1170, 43365, 69810, 73908, 0, 902, 0, 0, 0, 0, 8122, 66420, 129642, 0,
+ 3861, 0, 11028, 0, 73820, 5714, 0, 0, 0, 807, 127001, 0, 0, 976, 113782,
+ 0, 0, 0, 0, 0, 128657, 118801, 71043, 0, 127017, 0, 0, 5582, 0, 0, 5798,
+ 0, 0, 0, 128521, 0, 0, 68058, 120553, 983183, 0, 0, 74933, 74283, 0, 0,
+ 194698, 66044, 0, 0, 0, 0, 0, 10094, 0, 0, 10857, 69225, 0, 0, 93, 0,
+ 10954, 0, 0, 0, 8171, 0, 0, 82996, 0, 0, 0, 119001, 92634, 0, 0, 5187,
+ 120711, 71086, 0, 0, 0, 0, 5232, 0, 41009, 0, 41005, 0, 43205, 0, 0, 0,
+ 194708, 0, 71054, 10028, 66478, 7076, 13182, 100385, 0, 0, 0, 0, 7972,
+ 78786, 0, 0, 0, 78789, 11309, 3806, 73985, 0, 0, 0, 78819, 0, 125218, 0,
+ 127532, 0, 0, 0, 78817, 0, 64366, 65156, 8814, 0, 0, 0, 0, 12836, 42725,
+ 120079, 0, 0, 0, 0, 69258, 13255, 0, 0, 7464, 0, 93831, 0, 0, 0, 0,
+ 13213, 0, 0, 64516, 0, 0, 0, 41007, 983910, 0, 40995, 12209, 983914,
+ 119136, 123635, 0, 0, 0, 0, 0, 69283, 43558, 5522, 0, 71061, 0, 74105,
+ 3633, 983912, 119364, 41234, 41231, 0, 9771, 983917, 13251, 0, 0, 6262,
+ 2784, 0, 71078, 8126, 66483, 0, 0, 441, 0, 0, 0, 41002, 40999, 0, 129394,
+ 7108, 0, 10890, 0, 74445, 8324, 0, 0, 74817, 2813, 119056, 74853, 983671,
+ 0, 0, 0, 1193, 10462, 65197, 13253, 13252, 7829, 120992, 130032, 0, 0, 0,
+ 77911, 0, 77907, 0, 10386, 0, 41042, 0, 65944, 65683, 10338, 66469, 0, 0,
+ 0, 0, 0, 41966, 0, 0, 0, 68915, 0, 0, 911, 983870, 128932, 40963, 0,
+ 65159, 0, 0, 0, 5520, 0, 0, 0, 0, 0, 0, 0, 71081, 0, 0, 0, 0, 0, 983873,
+ 0, 0, 66839, 0, 0, 0, 68647, 0, 5857, 68135, 92727, 119120, 983675,
+ 13171, 0, 0, 0, 120338, 0, 0, 0, 13250, 69663, 0, 92201, 66397, 0, 0, 0,
+ 8761, 12942, 5748, 92713, 92414, 0, 83174, 8796, 0, 0, 0, 43633, 0,
+ 72805, 71073, 0, 0, 0, 0, 0, 12843, 4520, 0, 0, 73004, 983672, 0, 0,
+ 194935, 110754, 64345, 0, 0, 3457, 0, 0, 0, 110750, 110758, 110751, 0, 0,
+ 10427, 0, 73859, 0, 9755, 1110, 65239, 0, 0, 0, 0, 0, 0, 0, 194936, 0,
+ 983802, 0, 70437, 3620, 0, 0, 72855, 0, 0, 0, 74250, 0, 0, 11980, 0,
+ 66482, 67823, 0, 128345, 110768, 0, 0, 0, 0, 12891, 983767, 983648, 0,
+ 2016, 0, 65668, 92311, 67696, 10366, 70117, 9155, 120652, 9786, 65082, 0,
+ 8579, 0, 0, 0, 0, 4508, 64883, 0, 92522, 129847, 0, 64592, 74276, 67688,
+ 0, 69270, 0, 69456, 0, 113821, 0, 12147, 9024, 66378, 66472, 0, 0, 0, 0,
+ 0, 71935, 0, 0, 113697, 0, 0, 69285, 0, 74275, 0, 122896, 127941, 41214,
+ 0, 0, 0, 0, 0, 7773, 0, 0, 9963, 68649, 0, 73734, 0, 0, 0, 0, 6594,
+ 983752, 0, 0, 3624, 70342, 0, 64655, 121481, 0, 0, 0, 0, 0, 65932, 0,
+ 983790, 6803, 120968, 7738, 0, 0, 120628, 0, 66614, 122921, 0, 43810,
+ 7029, 0, 41292, 118898, 0, 43115, 9517, 11518, 0, 0, 0, 0, 64423, 0, 0,
+ 0, 12503, 9591, 4516, 0, 118845, 0, 0, 129479, 43650, 983192, 69250, 0,
+ 0, 68079, 0, 11397, 2884, 0, 0, 12678, 0, 0, 41014, 73730, 917539, 4270,
+ 92254, 127836, 68205, 6633, 118947, 0, 5230, 101055, 0, 0, 983230,
+ 121392, 0, 92985, 0, 0, 0, 0, 415, 0, 0, 0, 0, 5183, 1877, 0, 0, 0, 0, 0,
+ 4472, 0, 0, 0, 128285, 110682, 78230, 4756, 0, 7081, 0, 0, 0, 78606, 0,
+ 42922, 42103, 8628, 74861, 0, 0, 0, 43059, 10539, 0, 0, 0, 0, 0, 0, 0, 0,
+ 64873, 11992, 129444, 0, 0, 11801, 3622, 0, 0, 983213, 0, 0, 11521, 0,
+ 1966, 43628, 111048, 0, 0, 0, 0, 0, 0, 42098, 66671, 10694, 128520, 0, 0,
+ 0, 0, 42100, 0, 111040, 0, 42097, 0, 0, 0, 0, 11302, 120893, 129145,
+ 43395, 83259, 0, 0, 92351, 0, 0, 11299, 1561, 0, 92359, 92725, 69253, 0,
+ 194733, 0, 0, 0, 127893, 11280, 0, 0, 983783, 0, 0, 72760, 0, 12486,
+ 65018, 66516, 5409, 0, 0, 194720, 5399, 9685, 0, 983694, 5401, 0, 0,
+ 66832, 0, 0, 5405, 0, 0, 0, 0, 0, 2235, 0, 11330, 983692, 64690, 3254, 0,
+ 129974, 0, 0, 43678, 0, 0, 983145, 0, 6388, 3355, 0, 9867, 0, 55258,
+ 5611, 0, 128527, 0, 0, 129181, 0, 78228, 0, 0, 119119, 0, 0, 194959, 0,
+ 0, 1379, 246, 0, 0, 64736, 0, 0, 0, 121227, 0, 0, 0, 0, 0, 0, 11855, 0,
+ 0, 0, 71961, 10656, 0, 65214, 119242, 0, 0, 13163, 0, 120831, 0, 0,
+ 101484, 0, 0, 0, 0, 0, 4755, 0, 127879, 11443, 0, 0, 0, 608, 600, 0,
+ 8580, 128712, 0, 43635, 0, 129695, 74485, 43808, 0, 0, 0, 13160, 0,
+ 129418, 42268, 128006, 70505, 9828, 0, 69261, 0, 0, 9351, 7778, 0, 0, 0,
+ 6916, 1208, 0, 0, 194754, 0, 0, 0, 0, 0, 83318, 83317, 0, 43539, 0,
+ 72024, 0, 0, 0, 9150, 66831, 0, 128322, 0, 66848, 0, 0, 12166, 128492,
+ 194685, 0, 2546, 0, 213, 0, 65611, 83316, 0, 0, 74310, 70836, 0, 65285,
+ 5452, 0, 0, 92772, 0, 0, 0, 0, 65518, 129029, 12609, 194679, 125255,
+ 123193, 0, 0, 0, 74638, 194677, 125190, 4143, 110854, 110855, 65748,
+ 4141, 9682, 110851, 118790, 194674, 0, 0, 8725, 0, 66638, 0, 42263, 4145,
+ 6380, 0, 66613, 0, 119207, 0, 0, 9550, 100621, 0, 100623, 100622, 78050,
+ 100624, 65753, 100626, 65756, 72731, 0, 100630, 0, 0, 0, 0, 9657, 9019,
+ 121154, 0, 0, 5390, 0, 0, 194965, 72144, 194964, 69286, 6328, 0, 0, 0, 0,
+ 0, 983047, 0, 5235, 803, 69289, 0, 0, 127979, 43838, 0, 119562, 43544, 0,
+ 0, 0, 0, 0, 70426, 9107, 5191, 119113, 0, 0, 0, 121099, 0, 0, 0, 0, 0,
+ 128150, 983067, 0, 7289, 74055, 0, 0, 0, 0, 0, 0, 0, 1784, 124947, 0, 0,
+ 0, 0, 64868, 0, 13158, 0, 7211, 0, 9371, 129378, 0, 0, 1625, 7664, 0, 0,
+ 0, 0, 0, 0, 69273, 0, 0, 0, 0, 4482, 118886, 0, 0, 0, 0, 0, 0, 0, 100612,
+ 66849, 100614, 100613, 100616, 444, 100618, 100617, 100620, 100619, 0, 0,
+ 0, 11349, 40991, 0, 0, 129324, 0, 0, 1197, 0, 40993, 0, 0, 0, 40990,
+ 43765, 0, 3492, 0, 127942, 0, 0, 100592, 100591, 100594, 19948, 100596,
+ 3099, 92239, 100597, 100600, 100599, 0, 129042, 0, 0, 100601, 194969,
+ 100603, 8152, 100605, 100604, 100607, 100606, 100609, 12828, 0, 75015, 0,
+ 0, 129950, 0, 0, 75068, 127507, 0, 92680, 0, 0, 129928, 129920, 0,
+ 130037, 0, 118820, 0, 0, 0, 0, 0, 100581, 0, 100583, 100582, 100585,
+ 100584, 100587, 100586, 100589, 7576, 11995, 100590, 43260, 0, 0, 64830,
+ 0, 125046, 101526, 0, 43979, 8870, 0, 0, 42357, 0, 0, 12822, 0, 0, 0,
+ 118944, 0, 0, 42637, 0, 0, 70725, 0, 129934, 0, 71344, 0, 0, 0, 194745,
+ 7170, 9596, 8277, 194743, 43629, 110610, 0, 0, 983571, 128691, 0, 66699,
+ 42952, 0, 0, 0, 43234, 66008, 12627, 0, 0, 0, 43619, 43303, 11300, 0, 0,
+ 8745, 0, 7558, 71342, 100570, 0, 0, 127881, 3461, 121258, 129471, 69264,
+ 0, 0, 0, 73877, 74335, 124982, 0, 0, 0, 64620, 74762, 12069, 10838,
+ 92548, 43616, 0, 10061, 0, 125057, 10508, 209, 0, 43193, 120581, 0, 0,
+ 128049, 0, 10899, 69855, 100571, 100574, 100573, 100576, 993, 100578,
+ 100577, 100580, 100579, 100560, 100559, 7232, 0, 0, 0, 0, 0, 0, 10489,
+ 42166, 0, 128588, 0, 0, 4224, 7671, 41518, 121311, 0, 0, 0, 0, 64820,
+ 92538, 12966, 100554, 100553, 100556, 100555, 100558, 100557, 4263, 8793,
+ 0, 0, 41502, 0, 983, 0, 100563, 100562, 13086, 4109, 4274, 841, 5888,
+ 100568, 68522, 0, 43481, 0, 120926, 0, 7209, 0, 41505, 0, 78698, 127012,
+ 0, 2147, 0, 0, 66629, 0, 0, 1255, 4149, 0, 0, 66633, 0, 129391, 92352, 0,
+ 65101, 0, 0, 0, 0, 5835, 128797, 66625, 10842, 0, 42123, 0, 0, 66634,
+ 1094, 66636, 0, 0, 0, 0, 0, 9972, 73865, 129289, 6114, 0, 0, 0, 0, 93960,
+ 0, 0, 0, 0, 12070, 0, 881, 7857, 0, 65164, 0, 0, 0, 0, 0, 64404, 64321,
+ 0, 125187, 0, 0, 11245, 129395, 0, 71859, 0, 0, 0, 1287, 121509, 0, 0, 0,
+ 125264, 74152, 120504, 64545, 0, 69668, 8985, 0, 0, 0, 0, 0, 0, 3652, 0,
+ 0, 0, 0, 0, 279, 0, 0, 0, 0, 1489, 125189, 0, 0, 3899, 0, 42124, 43828,
+ 42122, 0, 0, 0, 11985, 73755, 78600, 0, 0, 10988, 0, 0, 42138, 78610, 0,
+ 65768, 78608, 78604, 78605, 6285, 78603, 78612, 78613, 74339, 65767,
+ 8685, 0, 0, 0, 78622, 78623, 68475, 11470, 64538, 78618, 78615, 78616, 0,
+ 0, 0, 101534, 2527, 0, 128209, 2799, 0, 0, 0, 9933, 0, 0, 767, 5524,
+ 7028, 0, 101520, 0, 0, 0, 78633, 0, 0, 94011, 0, 6971, 0, 70731, 0, 0,
+ 118979, 126075, 2434, 94018, 0, 120579, 0, 4631, 0, 0, 6407, 0, 19931, 0,
+ 0, 0, 0, 3192, 0, 8414, 0, 0, 0, 0, 0, 9164, 66612, 93959, 8228, 0, 0, 0,
+ 0, 78624, 0, 0, 9993, 0, 0, 129350, 78631, 78632, 78629, 78630, 78627,
78628, 78625, 2399, 0, 92399, 71202, 41208, 0, 0, 8178, 2149, 3367, 0,
78640, 78641, 78636, 78638, 78634, 6337, 0, 92342, 0, 0, 11068, 0, 9331,
0, 74798, 9181, 0, 0, 8017, 0, 0, 0, 0, 0, 0, 0, 12126, 129184, 129306,
- 0, 0, 69650, 0, 0, 0, 43436, 983725, 0, 0, 0, 0, 66845, 69249, 0, 0,
- 5398, 0, 127386, 93953, 0, 0, 0, 0, 0, 9476, 68899, 0, 12763, 0, 74788,
- 0, 42114, 11181, 92502, 0, 0, 0, 3469, 42107, 42116, 0, 0, 0, 0, 9853,
- 69648, 9040, 101518, 64665, 119557, 0, 0, 0, 69638, 12602, 983068, 3852,
- 0, 67872, 12231, 11317, 0, 119812, 0, 11410, 10964, 12274, 122890,
- 100524, 0, 119810, 9865, 195019, 0, 0, 0, 0, 12276, 0, 0, 0, 0, 119613,
- 0, 111214, 10467, 0, 2443, 10918, 0, 0, 1001, 9241, 1927, 0, 0, 0,
- 127885, 195022, 0, 113752, 119830, 65678, 0, 0, 8260, 0, 7519, 11505,
- 101505, 0, 518, 0, 119832, 0, 13204, 0, 857, 121252, 0, 0, 92336, 83177,
- 0, 0, 0, 0, 0, 0, 92762, 0, 0, 120613, 67247, 1629, 0, 796, 0, 0, 74123,
- 72334, 127587, 72336, 43388, 0, 43944, 72335, 478, 65151, 0, 128147, 0,
- 0, 0, 0, 0, 42933, 1206, 71209, 43837, 0, 3843, 12011, 0, 3361, 0, 8121,
- 10715, 7578, 0, 0, 0, 10530, 12348, 8653, 0, 0, 0, 9551, 0, 0, 784, 0, 0,
- 0, 0, 0, 0, 43937, 0, 0, 43938, 43935, 73765, 66230, 0, 0, 0, 43936, 0,
- 43932, 11102, 0, 0, 42753, 67165, 0, 78324, 0, 0, 6975, 917928, 5415,
- 12176, 0, 0, 3462, 43940, 42629, 78691, 128016, 43942, 0, 9759, 0, 0,
- 78320, 8114, 78321, 78697, 78696, 78695, 8710, 0, 118956, 0, 4051, 92657,
- 0, 71206, 0, 0, 0, 128857, 0, 1619, 9703, 77986, 0, 42112, 0, 1875, 0,
- 42109, 0, 0, 71189, 121160, 64907, 5396, 13144, 0, 0, 5575, 9675, 0,
- 5940, 226, 0, 6336, 0, 0, 0, 5116, 64521, 0, 0, 0, 121390, 125048, 74138,
- 0, 74139, 128447, 92249, 0, 0, 0, 0, 8935, 0, 0, 0, 0, 616, 78131, 65178,
- 4684, 78701, 983880, 74631, 0, 0, 0, 74460, 42110, 0, 10870, 8557, 11054,
- 68664, 0, 0, 0, 0, 0, 0, 0, 0, 65597, 0, 7651, 6846, 0, 0, 68868, 0, 0,
- 118966, 129302, 40997, 127218, 0, 0, 40998, 0, 74488, 71182, 9800, 0, 0,
- 0, 41000, 0, 5114, 55263, 3386, 70730, 42574, 0, 5115, 5394, 0, 128756,
- 5113, 0, 64855, 0, 4425, 0, 0, 0, 43967, 0, 0, 0, 5112, 12173, 127037, 0,
- 0, 74998, 0, 0, 0, 0, 0, 64874, 43964, 1587, 0, 0, 0, 0, 1369, 917931,
- 9959, 0, 43963, 4560, 0, 0, 0, 0, 0, 0, 43961, 42601, 4514, 72149, 0, 0,
- 0, 65041, 10965, 120905, 0, 0, 12542, 0, 65341, 0, 65829, 0, 0, 10475, 0,
- 0, 0, 0, 11795, 0, 0, 0, 127102, 127101, 74956, 7099, 11275, 67681,
- 127096, 0, 9336, 0, 42626, 43966, 7798, 64474, 64259, 0, 5730, 119809,
- 43018, 983174, 93796, 0, 0, 0, 69401, 0, 0, 5127, 11285, 0, 5495, 4273,
- 0, 74765, 10849, 6346, 5493, 6342, 68636, 74319, 5492, 0, 0, 169, 5497,
- 125053, 0, 0, 68198, 0, 0, 128417, 0, 0, 12738, 0, 983076, 5321, 0, 0, 0,
- 5323, 120732, 9773, 125209, 4683, 74318, 0, 68823, 0, 0, 0, 0, 129553, 0,
- 0, 0, 0, 834, 0, 1803, 0, 5733, 0, 0, 71312, 5731, 1381, 2891, 0, 0, 0,
- 64525, 0, 2881, 92996, 93847, 9601, 2879, 0, 0, 73129, 5729, 0, 0, 0,
- 64881, 127905, 9361, 0, 2887, 0, 3526, 6298, 0, 121219, 0, 0, 0, 8572,
- 127863, 77896, 0, 71174, 0, 0, 71197, 0, 12096, 0, 0, 0, 110745, 71176,
- 110746, 65279, 0, 121236, 5734, 0, 0, 0, 0, 0, 41641, 12717, 0, 12552,
- 983615, 66713, 0, 0, 41643, 110747, 0, 8713, 41640, 78657, 41645, 66712,
- 125196, 0, 66726, 66711, 0, 93994, 0, 3472, 64863, 0, 121424, 0, 0, 0,
- 125203, 67837, 0, 0, 0, 0, 0, 0, 121440, 0, 0, 129461, 119008, 92402,
- 65017, 0, 0, 66668, 0, 0, 0, 0, 0, 119822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 121043, 66471, 12216, 0, 40988, 0, 0, 0, 0, 0, 2396, 129078, 0, 0, 0,
- 64940, 0, 8321, 119823, 128165, 100409, 83299, 996, 0, 0, 4249, 0, 83294,
- 92535, 8222, 0, 118875, 71213, 0, 0, 0, 0, 8534, 72844, 40983, 0, 125195,
- 0, 12551, 73960, 125193, 74469, 12558, 121039, 0, 10052, 40982, 129371,
- 0, 0, 0, 127403, 0, 917559, 0, 78364, 1563, 0, 0, 19911, 0, 0, 0, 71363,
- 0, 7797, 78708, 10006, 0, 3308, 119134, 74940, 0, 0, 78488, 0, 0, 0, 0,
- 0, 128462, 9200, 10046, 9612, 0, 8218, 66496, 0, 43742, 78489, 0, 0, 0,
- 0, 67826, 0, 70056, 508, 128585, 0, 126539, 0, 0, 0, 0, 0, 0, 0, 124950,
- 0, 194601, 0, 0, 0, 0, 6659, 0, 0, 0, 0, 0, 0, 41634, 0, 41639, 71169,
- 11941, 0, 0, 0, 42180, 68505, 43753, 3249, 41637, 93982, 12328, 501,
- 93985, 10601, 0, 6503, 0, 92192, 0, 71181, 0, 6505, 74010, 0, 13064,
- 126112, 121105, 6500, 5526, 0, 128949, 0, 0, 92376, 0, 9678, 120832, 0,
- 41706, 0, 0, 0, 8936, 92964, 119123, 4208, 0, 0, 0, 67742, 0, 74379,
- 128605, 0, 0, 92422, 983109, 0, 66475, 0, 5027, 0, 0, 0, 5069, 0, 5028,
- 0, 0, 0, 5026, 0, 0, 6331, 0, 0, 0, 0, 41076, 0, 74790, 0, 0, 0, 0, 5029,
- 0, 5317, 3598, 0, 41070, 92166, 11185, 6663, 0, 6507, 0, 126079, 0, 1716,
- 983691, 0, 917824, 620, 41001, 0, 917823, 43758, 0, 71116, 5024, 0,
- 41003, 0, 5025, 7297, 0, 75039, 0, 119328, 65557, 0, 0, 983599, 0, 0, 0,
- 0, 43947, 43946, 0, 0, 128363, 6105, 0, 119325, 983226, 0, 68203, 43945,
- 66491, 43939, 0, 68144, 78718, 2301, 0, 0, 66490, 6979, 0, 7721, 0, 0,
- 1592, 0, 0, 121096, 41048, 129358, 829, 0, 92406, 0, 120247, 0, 41056, 0,
- 0, 10953, 41066, 0, 917813, 482, 101554, 0, 0, 43606, 71185, 0, 0, 0,
- 72262, 110863, 72421, 12050, 0, 5315, 917817, 0, 0, 42061, 917816, 0, 0,
- 68417, 917815, 0, 0, 42059, 0, 0, 120723, 42058, 3960, 11043, 11337,
- 121358, 0, 0, 3958, 101568, 0, 917818, 0, 917819, 0, 0, 42064, 11959,
- 983695, 0, 0, 0, 0, 128498, 64336, 10478, 92629, 70350, 120704, 0, 0,
- 42437, 1555, 0, 8691, 129656, 2215, 41662, 119046, 0, 0, 0, 93952, 0,
- 66481, 41664, 0, 42578, 0, 41661, 78715, 78714, 9356, 0, 129544, 0, 1286,
- 110701, 0, 0, 983206, 128925, 42476, 0, 11156, 0, 0, 0, 101583, 72123, 0,
- 10020, 43359, 72827, 0, 120946, 41627, 0, 11979, 0, 41628, 533, 11931,
- 65225, 0, 125122, 129994, 0, 68118, 0, 4377, 0, 0, 8587, 72097, 13193,
- 64350, 68233, 0, 41924, 0, 7735, 0, 127585, 120843, 0, 65820, 0, 0,
- 43461, 7757, 0, 0, 43787, 66493, 77943, 4168, 43904, 73952, 0, 0, 121072,
- 4440, 43902, 77948, 66837, 77946, 43903, 77944, 77945, 0, 120909, 120826,
- 120226, 66492, 43901, 64625, 0, 0, 0, 0, 10013, 64434, 0, 983112, 0,
- 11782, 64382, 0, 0, 0, 0, 41630, 630, 120960, 0, 0, 70165, 1043, 93017,
- 0, 0, 0, 124945, 313, 129590, 0, 0, 65593, 7445, 43906, 5750, 42258, 0,
- 55222, 68222, 11268, 11225, 0, 8526, 0, 0, 43894, 66495, 69990, 0, 92990,
- 0, 10707, 7863, 0, 0, 70692, 631, 77952, 77953, 66443, 71171, 83313, 0,
- 0, 0, 13305, 77961, 43925, 43924, 77956, 77957, 66903, 66328, 42381,
- 77962, 0, 0, 0, 0, 0, 0, 43899, 66821, 77967, 9157, 77965, 77966, 77963,
- 77964, 0, 0, 180, 73904, 0, 0, 66494, 12674, 43896, 0, 0, 43890, 43897,
- 0, 11535, 0, 66769, 5185, 7165, 5521, 10334, 5519, 71329, 10302, 12351,
- 83333, 1027, 5181, 0, 5117, 0, 5179, 73955, 6845, 991, 3332, 43676,
- 41647, 0, 73883, 92571, 77979, 3405, 69572, 0, 5523, 43915, 66487, 92459,
- 74943, 9549, 0, 125093, 43923, 0, 43682, 74884, 120537, 0, 43921, 0,
- 71184, 0, 43922, 128709, 0, 10414, 9846, 0, 10350, 0, 43918, 77981,
- 75075, 77978, 77980, 66485, 77977, 77973, 77974, 78057, 43909, 73983,
- 12330, 0, 0, 0, 43910, 69291, 3407, 6293, 0, 68149, 43908, 129060, 0,
- 10209, 0, 4195, 0, 9010, 983686, 75072, 6332, 0, 0, 65871, 0, 1736, 0,
- 3901, 0, 0, 65890, 128801, 10446, 0, 693, 9130, 314, 78119, 64149, 0, 0,
- 0, 11026, 0, 5332, 6940, 0, 0, 127007, 119831, 0, 273, 8165, 0, 83307, 0,
- 0, 12824, 43911, 4528, 5320, 6301, 43662, 6133, 0, 9463, 73738, 127141,
- 10922, 121069, 0, 0, 0, 0, 0, 2569, 0, 2326, 0, 2565, 0, 66401, 0, 0, 0,
- 0, 41848, 2567, 78620, 121145, 4044, 92646, 0, 12233, 0, 9509, 0, 0,
- 127158, 7336, 0, 0, 0, 129598, 0, 67235, 0, 0, 0, 0, 2222, 66499, 0,
- 127170, 0, 10895, 0, 274, 983763, 1858, 0, 67849, 55251, 0, 3133, 0,
- 71857, 0, 9610, 0, 8197, 0, 0, 0, 41665, 5868, 0, 0, 72120, 0, 19940,
- 43668, 41667, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 6464, 92750, 2996,
- 125221, 0, 68481, 41835, 4047, 41842, 0, 0, 129601, 0, 0, 0, 0, 293, 0,
- 0, 64791, 41827, 0, 0, 10579, 8560, 0, 0, 118835, 4803, 73805, 1739, 0,
- 3900, 128967, 73737, 0, 0, 73957, 0, 66474, 41971, 0, 0, 0, 0, 0, 11716,
- 66473, 0, 121071, 0, 128080, 0, 0, 0, 0, 0, 0, 0, 6632, 73861, 0, 74770,
- 0, 0, 8914, 0, 0, 3183, 1435, 0, 0, 0, 0, 0, 0, 5746, 67392, 0, 0, 0,
- 83506, 0, 7082, 71481, 12618, 5059, 983597, 83524, 43604, 0, 0, 0, 0, 0,
- 0, 8227, 0, 1218, 0, 64416, 65848, 92884, 0, 0, 0, 126987, 0, 0, 0, 0, 0,
- 0, 83515, 83507, 0, 0, 42672, 71194, 43224, 0, 0, 0, 0, 0, 0, 0, 65905,
- 0, 42662, 0, 121159, 0, 129536, 0, 7794, 0, 42953, 6377, 0, 126080, 3669,
- 3968, 0, 71319, 69658, 129550, 0, 66296, 0, 0, 0, 0, 124998, 6699,
- 126120, 0, 0, 66678, 0, 0, 0, 8409, 119527, 19967, 0, 0, 9502, 0, 0,
- 6115, 0, 41654, 0, 0, 0, 41655, 113779, 43975, 72427, 0, 0, 0, 0, 41657,
- 10778, 0, 9533, 184, 1553, 128868, 69574, 0, 0, 0, 129420, 0, 0, 0,
- 73697, 0, 92480, 0, 128938, 74292, 0, 5157, 4020, 0, 128154, 43788,
- 64818, 0, 0, 0, 92979, 0, 0, 74377, 11029, 66651, 0, 0, 125202, 0, 0,
- 7877, 121070, 101411, 0, 119828, 2810, 9955, 0, 0, 42817, 0, 65122,
- 11715, 0, 0, 0, 71270, 0, 0, 0, 0, 0, 70199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 78222, 127981, 0, 0, 0, 0, 0, 11290, 0, 0, 0, 0, 8315, 0, 0, 0, 74595,
- 0, 0, 0, 42531, 0, 0, 0, 74589, 43993, 0, 0, 0, 0, 43690, 0, 119139,
- 42730, 0, 0, 0, 64926, 0, 0, 43830, 65257, 0, 42728, 0, 128697, 123150,
- 0, 43540, 0, 0, 12725, 72993, 78635, 127826, 223, 0, 69675, 0, 0, 0, 0,
- 0, 0, 42605, 0, 0, 0, 0, 0, 0, 0, 0, 78621, 0, 78619, 119062, 0, 0, 0,
- 42676, 129353, 64800, 78617, 83504, 68126, 1213, 0, 0, 797, 0, 0, 83021,
- 83005, 64387, 4115, 0, 0, 0, 129857, 10679, 83001, 121091, 0, 64276,
- 83498, 13168, 83011, 0, 10136, 0, 0, 65088, 0, 4262, 129866, 0, 0, 10701,
- 0, 3101, 0, 123204, 0, 0, 11373, 0, 0, 12731, 9117, 0, 0, 4539, 0, 0,
- 12727, 0, 0, 0, 43684, 74567, 68877, 983707, 12724, 73940, 0, 0, 0, 0, 0,
- 7947, 12003, 0, 74593, 121140, 69653, 74807, 42018, 0, 0, 0, 65888, 0, 0,
- 69683, 0, 120306, 0, 0, 12595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69848,
- 68307, 0, 4405, 0, 128336, 129032, 69216, 0, 128011, 0, 0, 6817, 67400,
- 120314, 0, 0, 998, 0, 13105, 120313, 64327, 1558, 0, 1991, 7882, 0, 0, 0,
- 530, 0, 0, 0, 12002, 0, 68422, 0, 10979, 0, 41823, 70696, 0, 0, 7896, 0,
- 66676, 0, 120325, 0, 0, 129407, 94033, 0, 6311, 110725, 41698, 0, 12049,
- 78133, 0, 125020, 41705, 0, 0, 121298, 0, 66822, 0, 65389, 0, 66027, 0,
- 0, 41699, 8340, 0, 69776, 0, 128639, 0, 1988, 5407, 69978, 0, 65912,
- 93059, 0, 2336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126238, 0, 19913, 0, 113733,
- 0, 0, 74279, 0, 10956, 0, 41674, 19964, 41679, 65084, 41675, 195031, 0,
- 0, 0, 0, 983089, 0, 10794, 128961, 13217, 0, 0, 0, 5280, 0, 0, 12905,
- 41610, 11532, 0, 0, 768, 120545, 442, 0, 0, 0, 64081, 41682, 0, 41693, 0,
- 77993, 77994, 0, 4804, 6994, 983114, 0, 0, 41696, 467, 983915, 0, 0, 0,
- 0, 8678, 0, 69682, 64801, 0, 0, 0, 0, 64093, 12043, 0, 69666, 0, 2029,
- 65191, 119246, 42847, 0, 0, 0, 0, 0, 0, 0, 70339, 126116, 0, 0, 8019,
- 73856, 0, 0, 0, 0, 2355, 12150, 65725, 77988, 77989, 68033, 77987, 0,
- 77985, 0, 0, 68388, 0, 74171, 0, 0, 0, 11301, 78013, 78008, 78010, 9874,
- 78007, 983326, 71064, 3050, 0, 0, 0, 78016, 78017, 71852, 78015, 0, 0, 0,
- 92242, 0, 69642, 0, 0, 43883, 0, 0, 0, 78025, 0, 78023, 78024, 11847,
- 10545, 0, 10887, 0, 123179, 0, 0, 0, 83352, 64942, 92363, 9996, 8508, 0,
- 0, 8195, 0, 42171, 0, 3722, 0, 63751, 0, 0, 92637, 69670, 0, 41552,
- 69854, 0, 78639, 0, 0, 129374, 128978, 0, 0, 0, 7920, 70285, 4021, 0, 0,
- 0, 119663, 0, 0, 78021, 78022, 78019, 78020, 1802, 78018, 0, 74895,
- 41659, 41671, 1827, 0, 64396, 41668, 128524, 41673, 0, 11422, 71846, 0,
- 11370, 0, 68412, 41345, 0, 0, 0, 0, 0, 0, 65114, 0, 2104, 64858, 0, 0,
- 7553, 0, 41560, 11970, 0, 917920, 0, 68495, 74131, 74130, 0, 0, 0, 611,
- 74129, 64871, 129958, 0, 0, 0, 74854, 0, 70466, 0, 0, 0, 121147, 0,
- 68487, 41669, 7094, 917921, 0, 123144, 74054, 0, 0, 0, 839, 0, 7695, 0,
- 0, 0, 92202, 0, 121053, 123157, 67885, 0, 7206, 0, 6647, 43986, 0, 0, 0,
- 0, 0, 0, 127936, 43748, 66746, 0, 12298, 110802, 983992, 110800, 64924,
- 0, 73931, 9468, 74245, 0, 0, 74246, 0, 0, 118830, 0, 71851, 1279, 0,
- 6224, 0, 92405, 128601, 129886, 128997, 0, 0, 0, 5032, 0, 0, 0, 0, 0,
- 5034, 0, 0, 72846, 42702, 0, 0, 13294, 0, 64869, 0, 67808, 9129, 123632,
- 0, 0, 120819, 68387, 120168, 120169, 120170, 120171, 5518, 4174, 120166,
- 120167, 120160, 120161, 120162, 434, 41437, 66212, 120158, 120159, 0, 0,
- 118867, 0, 524, 0, 74029, 0, 126559, 0, 0, 0, 10355, 10419, 74025, 77847,
- 0, 69725, 0, 120656, 0, 67876, 0, 0, 0, 74145, 74039, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5445, 0, 93779, 71855, 7391, 8989, 0, 74068, 0, 0, 0, 0,
- 4962, 983133, 8855, 0, 70820, 0, 0, 0, 0, 71847, 0, 0, 0, 10451, 0,
- 67653, 120153, 12443, 120155, 9947, 120149, 120150, 120151, 13128, 0,
- 120146, 120147, 0, 0, 0, 0, 0, 129715, 74059, 74062, 6217, 74053, 43846,
- 0, 74049, 0, 0, 0, 0, 0, 0, 0, 0, 42595, 0, 68112, 118860, 0, 0, 92497,
- 74949, 128953, 126245, 0, 0, 0, 42997, 0, 119251, 0, 0, 0, 0, 0, 6216, 0,
- 0, 9455, 127027, 8124, 128851, 0, 6944, 0, 0, 0, 2828, 128550, 531,
- 42638, 0, 0, 129888, 43428, 0, 3614, 2827, 9696, 0, 0, 0, 4354, 0, 78562,
- 78561, 0, 120691, 0, 42599, 42597, 0, 68829, 125012, 0, 127277, 0,
- 120421, 0, 983164, 0, 0, 10121, 120422, 74950, 123142, 69715, 0, 0,
- 120423, 120630, 12608, 125244, 0, 74144, 9700, 12580, 0, 128911, 0,
- 71864, 0, 74071, 0, 0, 12713, 0, 70402, 0, 0, 0, 1734, 0, 0, 0, 0,
- 118951, 231, 0, 74167, 542, 0, 0, 0, 0, 128074, 0, 121343, 0, 4446,
- 10584, 74235, 0, 4037, 0, 0, 0, 5687, 0, 0, 0, 0, 0, 0, 78434, 0, 0,
- 113709, 74284, 0, 0, 0, 126495, 0, 0, 0, 74482, 93978, 1709, 69721, 9909,
- 92286, 0, 0, 0, 55229, 8667, 0, 0, 0, 0, 0, 0, 0, 0, 127586, 1226, 6930,
- 0, 71736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41500, 0, 311, 74282, 6221, 92988,
- 0, 67682, 0, 120528, 122901, 74272, 0, 0, 0, 0, 69667, 0, 124933, 74456,
- 74302, 42589, 0, 0, 0, 0, 0, 0, 0, 0, 41508, 0, 323, 125211, 0, 42698,
- 8131, 0, 4625, 0, 4630, 0, 0, 0, 74316, 78417, 2668, 92483, 0, 42640, 0,
- 2519, 0, 92474, 92479, 0, 983085, 5049, 42659, 119011, 64705, 7754,
- 10854, 8738, 74623, 0, 0, 0, 649, 0, 0, 0, 0, 0, 1013, 70707, 68212, 705,
- 0, 0, 127803, 1183, 126519, 9320, 0, 0, 8157, 0, 0, 0, 0, 0, 0, 0, 11913,
- 0, 42848, 0, 64925, 0, 0, 70693, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 8466,
- 0, 4626, 8464, 8472, 68844, 4629, 8499, 0, 0, 4624, 194623, 0, 94025, 0,
- 7805, 0, 94007, 6935, 0, 0, 0, 0, 0, 0, 0, 8492, 0, 8459, 0, 8497, 8496,
- 0, 129864, 0, 0, 129834, 69553, 0, 0, 65849, 0, 0, 0, 12451, 3328, 8684,
- 0, 6102, 0, 5298, 0, 5294, 0, 129615, 0, 0, 0, 0, 43617, 0, 0, 0, 0, 0,
- 77863, 128695, 0, 0, 0, 0, 0, 5292, 0, 0, 42688, 5302, 3970, 0, 0, 1793,
- 0, 0, 0, 0, 0, 65263, 0, 0, 0, 0, 0, 0, 13219, 9569, 69567, 74383, 0, 0,
- 72157, 0, 42949, 0, 0, 0, 5322, 0, 0, 43631, 5324, 0, 128694, 41614,
- 65269, 6230, 0, 0, 0, 3360, 0, 11523, 72726, 92488, 9926, 7197, 0, 68429,
- 126575, 41821, 1249, 0, 127951, 0, 123641, 0, 0, 0, 74459, 41807, 0,
- 41815, 0, 0, 0, 0, 0, 128248, 0, 66835, 0, 0, 72145, 41800, 0, 0, 0,
- 41811, 74466, 93966, 6670, 77882, 0, 0, 43092, 0, 0, 0, 0, 0, 128655, 0,
- 0, 0, 0, 74501, 74005, 0, 74387, 69860, 315, 12813, 128556, 72409, 0,
- 72408, 0, 0, 73061, 0, 0, 1378, 0, 0, 0, 72407, 3066, 0, 0, 72406, 0, 0,
- 0, 8787, 194615, 0, 41618, 0, 0, 0, 194614, 64652, 194611, 42088, 125226,
- 0, 0, 0, 0, 7176, 43756, 0, 0, 74492, 0, 74534, 0, 0, 0, 127199, 0,
- 128630, 74525, 0, 194594, 12930, 7168, 74514, 0, 74515, 0, 128919, 43962,
- 9527, 120659, 70123, 12977, 69723, 0, 93783, 194598, 41236, 92235, 65168,
- 118838, 41237, 5848, 0, 194600, 3670, 129905, 129906, 129907, 129908,
- 7890, 0, 11298, 0, 0, 6229, 0, 0, 0, 194593, 128907, 0, 0, 0, 4120,
- 65337, 65336, 0, 0, 0, 0, 9366, 0, 0, 0, 65327, 65326, 65325, 65324,
- 65323, 42216, 65321, 65320, 65335, 65334, 65333, 65332, 65331, 65330,
- 65329, 42689, 0, 43943, 118885, 42073, 6785, 68491, 0, 42076, 7196,
- 65318, 2035, 65316, 4106, 65314, 65313, 42074, 0, 41228, 0, 0, 41241,
- 93786, 41239, 43533, 0, 7189, 194602, 0, 43941, 0, 42802, 0, 8487, 0, 0,
- 4615, 12695, 0, 0, 12175, 100414, 0, 0, 7809, 0, 0, 0, 0, 6590, 69762, 0,
- 64738, 0, 0, 0, 0, 0, 0, 2025, 0, 0, 0, 10637, 71860, 0, 1570, 43839,
- 2835, 83052, 10624, 43623, 194587, 0, 78433, 0, 42812, 0, 2825, 0,
- 128287, 0, 2821, 0, 92327, 7365, 83043, 0, 68296, 0, 2823, 0, 0, 0, 2831,
- 0, 0, 11465, 0, 0, 0, 0, 0, 7181, 0, 41332, 0, 12333, 0, 0, 0, 0, 0,
- 9883, 127294, 73906, 70751, 0, 71863, 0, 0, 0, 0, 0, 0, 43741, 0, 8166,
- 70739, 0, 0, 74535, 0, 65297, 68294, 571, 0, 8752, 0, 5288, 118822, 1541,
- 0, 127284, 8864, 0, 0, 0, 0, 0, 113778, 12151, 0, 66874, 0, 1035, 0, 0,
- 7881, 701, 65936, 128493, 0, 70462, 0, 11403, 0, 0, 82991, 0, 983142,
- 70472, 3994, 11421, 121217, 127297, 127242, 127300, 70659, 127303, 0,
- 125205, 2855, 127828, 0, 41621, 68214, 0, 0, 10654, 82945, 119226, 12164,
- 41623, 7906, 0, 74297, 7182, 0, 83069, 0, 0, 0, 0, 121115, 0, 0, 747, 0,
- 92463, 12019, 43136, 0, 110861, 0, 0, 8001, 0, 0, 69394, 0, 0, 0, 68373,
- 0, 0, 0, 128279, 0, 71915, 0, 0, 7282, 94066, 0, 0, 0, 0, 0, 5286, 83061,
- 0, 3718, 0, 83057, 0, 194584, 71905, 0, 128480, 0, 0, 0, 0, 9206, 82980,
- 113824, 6802, 0, 41653, 0, 1241, 0, 0, 0, 0, 68124, 41651, 42937, 0,
- 83042, 41650, 0, 83037, 0, 12914, 2814, 0, 119552, 0, 0, 0, 71968, 0, 0,
- 0, 917546, 71862, 0, 0, 0, 3494, 10189, 69784, 0, 0, 71861, 0, 0, 65875,
- 0, 0, 127762, 0, 74215, 43065, 0, 0, 7200, 0, 3261, 0, 0, 0, 65889,
- 71888, 71975, 0, 0, 0, 0, 0, 0, 0, 0, 129424, 0, 635, 0, 0, 74753, 0,
- 92420, 73997, 0, 0, 43905, 0, 118834, 126125, 0, 6667, 0, 983263, 0, 0,
- 125200, 0, 0, 0, 0, 83137, 0, 0, 0, 0, 0, 121104, 127856, 125112, 71885,
- 0, 120125, 7866, 194573, 92770, 194574, 0, 120140, 126074, 2849, 0, 0,
- 42157, 12960, 0, 11812, 0, 74509, 0, 69881, 0, 0, 0, 123156, 7178, 0, 0,
- 0, 0, 129041, 11534, 1967, 0, 0, 71361, 7015, 120298, 72757, 0, 12989, 0,
- 9368, 983638, 1624, 43270, 0, 0, 10818, 0, 83091, 0, 120908, 0, 0, 0, 0,
- 0, 0, 6169, 12871, 0, 2798, 65176, 4958, 42752, 119025, 0, 0, 0, 70346,
- 66448, 0, 113780, 68364, 0, 0, 0, 68360, 0, 73746, 120945, 68352, 0,
- 73787, 83110, 2154, 7199, 64955, 0, 0, 0, 0, 71980, 66507, 0, 69853, 0,
- 0, 0, 0, 0, 0, 0, 92517, 118882, 120301, 13297, 0, 129446, 71963, 0, 0,
- 0, 6658, 8045, 0, 0, 983854, 92319, 83101, 0, 72126, 0, 0, 0, 2416, 3310,
- 0, 0, 379, 0, 43755, 0, 0, 0, 68362, 1284, 0, 73756, 0, 0, 83141, 70784,
- 71977, 0, 0, 0, 8515, 83144, 83143, 0, 0, 0, 8529, 93782, 0, 7564, 0, 0,
- 0, 0, 73757, 73760, 42359, 0, 2031, 0, 7202, 129984, 12676, 0, 0, 128418,
- 0, 7710, 1610, 73801, 0, 0, 0, 983607, 43917, 0, 9974, 228, 0, 10398, 0,
- 0, 0, 92241, 70062, 118927, 42999, 1725, 65533, 8196, 9352, 0, 0, 66868,
- 0, 8502, 5762, 0, 0, 43898, 0, 0, 0, 0, 43914, 0, 126507, 64598, 13001,
- 9326, 83082, 43916, 1557, 0, 983860, 6330, 6805, 8631, 2545, 70052, 0, 0,
- 0, 42998, 70410, 0, 42762, 71941, 42914, 126516, 262, 1637, 0, 83025,
- 129491, 0, 128757, 0, 0, 0, 128922, 0, 43658, 0, 0, 129183, 6419, 0, 0,
- 0, 0, 93989, 0, 0, 7194, 5291, 129702, 43666, 0, 0, 0, 0, 128293, 0,
- 12881, 123596, 0, 73842, 0, 9011, 0, 0, 0, 70436, 179, 43644, 0, 0,
- 64747, 0, 118813, 0, 0, 121389, 92649, 126629, 0, 73850, 2801, 119837,
- 42069, 119839, 119838, 119841, 42072, 92736, 119842, 0, 0, 0, 8377, 0,
- 42070, 119313, 119834, 119310, 4389, 43656, 1633, 119857, 119856, 119859,
- 11119, 119845, 119844, 9967, 119846, 119849, 4612, 119851, 119850, 42913,
- 70456, 0, 71983, 10782, 66898, 0, 119141, 0, 0, 0, 11541, 69636, 0, 0,
- 119614, 2731, 0, 0, 0, 4102, 0, 73878, 0, 0, 0, 0, 0, 11283, 0, 0, 0, 0,
- 0, 43674, 0, 0, 126705, 0, 0, 0, 0, 11142, 128304, 0, 12975, 0, 123208,
- 0, 0, 74072, 0, 55269, 0, 0, 0, 78577, 78576, 0, 0, 82966, 82974, 70448,
- 0, 0, 82968, 0, 0, 0, 0, 0, 113809, 0, 69399, 64909, 0, 11790, 74019, 0,
- 128066, 0, 8561, 94076, 129481, 125045, 69259, 65674, 7230, 0, 0, 8778,
- 0, 0, 67725, 2071, 0, 6459, 68325, 7628, 65092, 73903, 0, 11342, 129388,
- 0, 0, 93965, 94081, 0, 11810, 70057, 10723, 967, 0, 71973, 73905, 0,
- 6387, 0, 12307, 43913, 121089, 0, 127584, 0, 1886, 0, 43895, 870, 7648,
- 0, 7662, 7652, 876, 871, 877, 7665, 878, 42015, 879, 43692, 4563, 0, 0,
- 0, 73072, 867, 9520, 872, 7656, 868, 873, 7642, 7659, 869, 874, 7644, 0,
- 875, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68452, 0, 0, 42067, 0, 0, 0,
- 12292, 0, 0, 0, 42012, 0, 0, 83388, 0, 0, 8494, 4611, 0, 72344, 0, 9679,
- 0, 0, 0, 0, 93015, 0, 74364, 4628, 4245, 0, 0, 0, 1851, 0, 127189, 0, 0,
- 0, 118897, 0, 64674, 124971, 983868, 8829, 983674, 128864, 0, 0, 0, 0,
- 8809, 983677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7427, 0, 4588, 43680, 72300,
- 74484, 0, 0, 0, 0, 113787, 74363, 129043, 0, 793, 0, 11197, 0, 0, 0, 842,
- 0, 8208, 70833, 0, 1647, 0, 70841, 0, 0, 818, 0, 0, 0, 0, 0, 0, 120594,
- 0, 0, 70179, 0, 13167, 66359, 0, 127172, 0, 4969, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2840, 0, 0, 0, 66887, 65877, 9068, 0, 68194, 0, 0, 12991, 0, 2651,
- 68016, 983896, 0, 983259, 70835, 0, 70844, 43648, 0, 0, 0, 0, 0, 0,
- 64372, 121064, 7458, 655, 752, 7457, 7456, 7452, 3285, 74894, 11152,
- 73099, 0, 2391, 93766, 92271, 671, 7435, 7434, 618, 668, 610, 42800,
- 7431, 7451, 42801, 640, 42927, 7448, 7439, 628, 3905, 100742, 0, 0, 0,
- 67850, 0, 0, 0, 4605, 0, 100745, 43372, 65945, 72710, 0, 119590, 0, 0,
- 70495, 987, 71229, 11572, 0, 0, 10002, 9971, 70673, 0, 0, 0, 0, 0, 0,
- 11334, 0, 129493, 42364, 11503, 0, 0, 0, 4627, 70090, 127784, 0, 0,
- 74046, 68872, 92562, 0, 0, 129900, 0, 129812, 0, 0, 42569, 64965, 0, 0,
- 10516, 129828, 12190, 0, 42140, 0, 0, 0, 0, 9887, 0, 4000, 7429, 7428,
- 665, 7424, 0, 0, 7884, 0, 0, 0, 0, 0, 2509, 0, 120573, 0, 0, 92449, 0,
- 10690, 0, 119114, 126226, 0, 0, 73080, 4590, 0, 74440, 0, 0, 0, 1708, 0,
- 0, 983609, 0, 0, 69226, 69974, 8813, 0, 1066, 0, 0, 71965, 127921, 70447,
- 0, 0, 0, 72343, 0, 7516, 0, 0, 0, 8034, 0, 0, 3631, 110696, 0, 0, 8416,
- 110694, 71937, 0, 0, 110692, 74621, 0, 70185, 0, 74850, 0, 0, 12099,
- 70475, 0, 6252, 0, 0, 0, 0, 0, 0, 66368, 0, 64956, 7071, 129070, 70457,
- 128159, 118800, 0, 0, 0, 9357, 0, 1773, 0, 125092, 0, 68451, 7745, 9844,
- 0, 0, 94, 1880, 120929, 0, 0, 0, 0, 0, 0, 0, 0, 11237, 0, 129173, 0, 0,
- 0, 1757, 6964, 42480, 72823, 0, 120806, 0, 0, 7731, 0, 0, 127883, 0,
- 110810, 43988, 70423, 74758, 0, 7592, 856, 74299, 0, 0, 0, 78138, 1459,
- 0, 0, 0, 0, 0, 1504, 0, 0, 0, 0, 7529, 0, 0, 0, 0, 12594, 0, 0, 336, 0,
- 7509, 0, 0, 0, 0, 127882, 0, 0, 0, 65859, 0, 983967, 43062, 124948, 0, 0,
- 0, 0, 12970, 0, 0, 0, 0, 0, 0, 0, 119247, 0, 65068, 74291, 129943, 7069,
- 0, 0, 0, 11130, 2087, 0, 0, 0, 0, 126249, 0, 92747, 0, 92614, 2091, 0,
- 2090, 0, 0, 7117, 2077, 72281, 0, 77889, 2083, 0, 71196, 0, 0, 71981, 0,
- 0, 0, 0, 4165, 8746, 0, 0, 0, 0, 129572, 7066, 0, 70415, 128135, 0, 0,
- 7786, 127766, 2233, 0, 124965, 121122, 2302, 0, 0, 7056, 0, 0, 0, 0, 0,
- 0, 126506, 6920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983099, 70438, 2613, 0, 0,
- 110734, 0, 74571, 42760, 0, 0, 0, 0, 0, 0, 71843, 0, 0, 70506, 1246,
- 74243, 0, 0, 41008, 0, 0, 0, 921, 70048, 0, 12702, 0, 0, 1566, 8407, 0,
- 64653, 0, 74617, 0, 0, 72711, 5313, 951, 0, 0, 0, 0, 0, 4009, 70277,
- 71844, 0, 83123, 0, 72250, 0, 119898, 113760, 0, 0, 0, 0, 70024, 0, 0,
- 119892, 0, 0, 0, 119890, 2579, 119906, 3177, 11357, 69224, 0, 0, 83130,
- 64734, 0, 9822, 110670, 70471, 110668, 0, 110666, 0, 0, 0, 0, 9851,
- 983729, 110673, 9059, 110671, 110672, 0, 41687, 129054, 0, 71842, 70178,
- 0, 0, 1777, 0, 10158, 69767, 0, 42366, 70444, 0, 0, 0, 70127, 71955,
- 5989, 110716, 74636, 126999, 0, 41685, 0, 0, 9769, 41684, 0, 6225,
- 111328, 11740, 0, 118840, 0, 2600, 0, 70416, 0, 0, 3666, 70420, 0, 71976,
- 0, 0, 74542, 69771, 0, 0, 0, 0, 0, 69765, 0, 252, 0, 69769, 0, 194616, 0,
- 69763, 0, 0, 0, 0, 0, 0, 0, 120947, 0, 129410, 0, 0, 0, 68323, 125219, 0,
- 119188, 0, 0, 121335, 0, 0, 0, 0, 0, 7764, 983726, 11094, 120825, 0, 0,
- 92505, 8298, 0, 0, 0, 0, 0, 64449, 0, 126650, 0, 0, 0, 70442, 0, 0, 0, 0,
- 7774, 10607, 0, 0, 0, 0, 0, 120764, 0, 0, 0, 0, 3458, 0, 70053, 0,
- 120995, 0, 2602, 0, 0, 0, 74907, 0, 0, 0, 0, 172, 0, 4971, 70419, 1889,
- 7238, 0, 0, 0, 8257, 0, 0, 0, 129570, 0, 111342, 71948, 0, 43366, 43363,
- 9807, 0, 0, 0, 72247, 64479, 0, 0, 0, 113707, 0, 10900, 121355, 0, 0,
- 12048, 0, 64292, 0, 0, 0, 6099, 94084, 129486, 0, 0, 299, 0, 8525, 92356,
- 0, 0, 111338, 0, 92564, 3075, 0, 94053, 0, 94050, 0, 0, 70440, 0, 123590,
- 0, 0, 0, 2581, 11395, 0, 0, 0, 0, 128584, 0, 0, 129423, 0, 118855, 0, 0,
- 0, 7204, 70065, 2588, 2914, 7011, 55281, 0, 7466, 0, 2883, 42253, 83118,
- 0, 0, 0, 123598, 0, 41230, 68299, 0, 43571, 0, 6219, 0, 9980, 41232,
- 92245, 0, 66036, 41229, 118967, 0, 120666, 94016, 0, 12711, 0, 0, 74289,
- 68472, 42857, 0, 0, 0, 0, 127306, 119006, 0, 11380, 72348, 0, 0, 0, 0, 0,
- 0, 0, 983579, 12722, 0, 922, 0, 0, 983126, 74958, 3218, 120471, 120470,
- 120469, 120476, 120475, 8569, 11404, 70450, 120463, 3214, 120461, 120468,
- 74910, 3207, 120465, 78729, 78728, 78727, 0, 120460, 7425, 3205, 0,
- 78737, 78736, 71729, 43383, 78733, 78732, 2606, 78730, 73897, 0, 11496,
- 1173, 0, 0, 129135, 0, 0, 0, 120737, 120953, 120872, 120629, 378, 2610,
- 0, 0, 0, 0, 0, 37, 7068, 0, 120480, 70421, 3209, 120477, 0, 120483, 9768,
- 120481, 0, 0, 0, 0, 0, 0, 65510, 0, 100625, 0, 0, 0, 100627, 0, 126633,
- 0, 7060, 100628, 0, 127752, 0, 69284, 70428, 71463, 0, 7380, 0, 0,
- 100593, 126997, 0, 128737, 0, 71465, 121030, 3243, 0, 0, 0, 7050, 0,
- 70050, 0, 0, 0, 71466, 8203, 71102, 68241, 0, 65211, 194599, 0, 0, 0,
- 779, 125061, 64367, 100906, 69901, 8193, 55279, 0, 0, 0, 7065, 0, 4346,
- 0, 0, 908, 0, 0, 8982, 0, 0, 0, 782, 0, 10883, 0, 0, 129396, 65542,
- 121302, 0, 68650, 100575, 92244, 0, 0, 111351, 0, 4376, 0, 11787, 12961,
- 0, 0, 42888, 0, 100610, 6231, 0, 65713, 100608, 1783, 0, 68238, 0, 0, 0,
- 194945, 0, 0, 0, 68653, 0, 983051, 0, 764, 0, 0, 43531, 0, 9033, 0, 0,
- 6223, 11042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120648, 0, 0, 0, 0, 0,
- 0, 71971, 0, 1478, 0, 11825, 2607, 0, 0, 0, 74543, 0, 0, 100588, 6132, 0,
- 0, 0, 70058, 0, 0, 0, 43537, 6761, 10093, 4369, 0, 0, 73735, 100564,
- 3947, 110778, 0, 0, 0, 0, 100942, 0, 0, 0, 0, 0, 0, 7686, 0, 0, 0,
- 100934, 0, 100944, 66577, 41221, 0, 42281, 0, 74024, 12293, 0, 94014,
- 11794, 0, 0, 1737, 0, 0, 0, 7205, 0, 9335, 12850, 0, 2272, 7055, 0, 0, 0,
- 67751, 0, 0, 6780, 65067, 0, 1327, 68393, 983574, 0, 41217, 0, 10018, 0,
- 0, 0, 100611, 68176, 41219, 0, 4147, 983170, 41216, 983693, 2616, 70197,
- 68461, 65234, 0, 0, 0, 0, 119660, 0, 0, 0, 0, 127930, 119580, 70675,
- 64943, 2608, 1470, 0, 0, 6227, 0, 0, 74775, 0, 0, 72320, 101024, 0,
- 129535, 0, 0, 0, 0, 0, 10876, 92482, 0, 0, 5834, 0, 6222, 0, 0, 12086, 0,
- 1600, 64309, 0, 0, 68883, 127957, 93836, 0, 8882, 0, 129415, 2570, 0, 0,
- 194606, 0, 0, 1234, 0, 13115, 110743, 110740, 100923, 5002, 110739,
- 41286, 100926, 127019, 0, 0, 0, 0, 0, 0, 0, 41289, 0, 0, 75051, 41272, 0,
- 0, 0, 0, 0, 0, 0, 41279, 0, 0, 0, 11081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9637,
- 7112, 77975, 128984, 0, 10886, 0, 8548, 983841, 0, 0, 0, 8076, 43048,
- 8290, 8291, 43051, 92570, 0, 2596, 0, 0, 41293, 0, 0, 2393, 7058, 66432,
- 0, 68673, 0, 0, 0, 0, 0, 128558, 0, 0, 0, 0, 0, 64696, 0, 0, 121086,
- 74165, 0, 0, 0, 0, 0, 0, 7063, 983182, 64893, 73096, 0, 68038, 113757,
- 709, 0, 0, 1876, 0, 0, 120868, 8137, 110662, 67752, 70850, 100832, 245,
- 100831, 11456, 41233, 7070, 0, 94046, 6136, 100835, 0, 100781, 41235, 0,
- 0, 100782, 100642, 432, 0, 100784, 65437, 0, 0, 128909, 0, 100641,
- 100649, 0, 100648, 0, 43215, 0, 0, 0, 0, 9052, 0, 0, 110826, 110827,
- 74784, 10580, 0, 100845, 0, 64640, 983175, 74455, 0, 129670, 70035, 0,
- 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, 0, 0, 2576, 0,
- 66819, 0, 983986, 129852, 0, 0, 983050, 983826, 0, 2921, 119104, 0, 5772,
- 12968, 70055, 0, 0, 0, 2580, 983822, 0, 0, 70032, 0, 0, 0, 128148, 0, 0,
- 121308, 11346, 0, 12054, 100824, 92426, 101112, 0, 13091, 0, 0, 100821,
- 100828, 0, 127026, 128334, 74821, 0, 66295, 68037, 68047, 127865, 13090,
- 0, 0, 0, 118985, 0, 0, 0, 0, 0, 127824, 0, 0, 100776, 119319, 42356,
- 42432, 100778, 119317, 0, 0, 0, 78752, 70030, 66914, 0, 0, 7061, 0, 3854,
- 0, 70020, 68413, 0, 42319, 0, 0, 7067, 0, 0, 0, 0, 0, 0, 127797, 9029,
- 43543, 0, 2353, 119316, 0, 100769, 0, 100768, 983177, 0, 0, 43664, 0, 0,
- 0, 12277, 0, 78122, 11066, 65233, 0, 41224, 0, 0, 3747, 10522, 0, 129582,
- 1691, 41226, 0, 917565, 0, 41223, 121135, 121299, 697, 0, 121051, 4244,
- 0, 0, 0, 13121, 128573, 0, 0, 0, 0, 0, 0, 129879, 0, 65816, 68111, 0,
- 127933, 0, 0, 0, 0, 0, 0, 66895, 74602, 0, 7123, 70038, 5785, 9198, 0,
- 100810, 0, 7383, 64656, 0, 0, 0, 0, 0, 0, 0, 0, 13122, 0, 191, 70060,
- 8585, 126610, 64411, 0, 0, 64850, 41072, 118996, 0, 0, 0, 0, 100754,
- 127010, 100753, 0, 100756, 683, 396, 0, 100758, 0, 100757, 43058, 100760,
- 343, 7129, 42680, 0, 0, 0, 0, 0, 100761, 0, 74040, 0, 1724, 0, 119321, 0,
- 0, 6263, 0, 0, 0, 6592, 0, 983044, 0, 0, 0, 0, 3730, 1778, 0, 0, 128854,
- 121254, 0, 9018, 0, 0, 0, 0, 92763, 5547, 0, 0, 128950, 0, 0, 284, 8108,
- 0, 0, 74001, 0, 66460, 7174, 92703, 126072, 0, 0, 4394, 127480, 0, 0, 0,
- 101082, 66459, 0, 7180, 101084, 0, 101092, 68800, 42471, 0, 0, 67232,
- 64304, 42243, 101094, 2583, 0, 127804, 0, 0, 0, 71702, 3855, 0, 0, 0, 0,
- 0, 0, 0, 92416, 7132, 0, 92743, 0, 64756, 3798, 6578, 0, 0, 92481, 9774,
- 1275, 0, 0, 983056, 0, 120515, 7873, 0, 0, 0, 0, 0, 0, 73994, 73992, 0,
- 0, 0, 41851, 0, 41846, 126485, 92337, 7633, 41849, 68385, 70726, 3224, 0,
- 69806, 0, 0, 0, 1510, 68129, 0, 0, 0, 0, 12109, 0, 0, 0, 0, 0, 78377,
- 1910, 8671, 78374, 127118, 70290, 0, 0, 0, 2654, 7893, 0, 0, 0, 72394, 0,
- 67394, 0, 118970, 70066, 78372, 78371, 78370, 78369, 78368, 0, 0, 0,
- 1733, 0, 2568, 0, 0, 0, 0, 41486, 0, 127839, 7116, 0, 0, 0, 7185, 0, 0,
- 0, 0, 0, 120575, 120829, 0, 0, 0, 0, 92489, 0, 0, 0, 70022, 7171, 0, 340,
- 0, 0, 72980, 0, 128535, 0, 124979, 94073, 0, 0, 0, 11392, 92509, 0, 0, 0,
- 0, 0, 0, 0, 100632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11948, 0, 6999, 617,
- 983806, 0, 3675, 10600, 0, 0, 74616, 2617, 0, 0, 0, 128446, 0, 0, 8630,
- 194771, 7288, 983809, 5545, 983799, 2586, 0, 0, 73123, 983832, 0, 0, 0,
- 70847, 0, 0, 0, 0, 11195, 71708, 0, 7835, 70040, 0, 0, 92285, 0, 0,
- 72973, 0, 0, 100852, 71118, 10029, 983166, 0, 0, 70033, 124978, 0, 0,
- 194782, 0, 0, 118975, 0, 0, 3903, 100893, 983839, 0, 120555, 0, 93036,
- 110645, 0, 983565, 0, 0, 194773, 0, 0, 0, 127238, 983803, 100919, 0,
- 100918, 64752, 0, 983138, 100920, 0, 43045, 100904, 0, 0, 0, 66394, 7128,
- 0, 0, 0, 0, 0, 43044, 2604, 0, 100851, 43046, 121421, 69985, 11768,
- 43043, 10470, 0, 7122, 194789, 4390, 454, 41397, 194792, 0, 78762, 0, 0,
- 120576, 64572, 0, 68091, 2394, 2575, 113749, 0, 0, 74802, 100913, 129280,
- 0, 0, 11989, 0, 0, 128856, 0, 0, 8249, 128172, 0, 0, 6640, 74806, 2598,
- 513, 0, 6586, 127521, 129301, 120710, 65008, 0, 0, 92515, 0, 194795,
- 66755, 0, 126585, 0, 43152, 78637, 0, 194797, 0, 69893, 6582, 0, 0,
- 12839, 0, 0, 0, 0, 2444, 128759, 66620, 0, 0, 0, 0, 69894, 0, 0, 0, 0,
- 4238, 11071, 9459, 68437, 78140, 78139, 0, 10079, 0, 0, 0, 0, 0, 11907,
- 43928, 0, 0, 0, 0, 92490, 43929, 0, 43926, 64498, 0, 9506, 6978, 126234,
- 0, 0, 0, 0, 43934, 0, 1122, 65564, 0, 71055, 0, 0, 1920, 0, 43930, 827,
- 0, 0, 0, 0, 6577, 1304, 64733, 0, 10606, 0, 0, 0, 9329, 92997, 9239,
- 74422, 0, 129373, 1222, 11076, 0, 69229, 43615, 8262, 72280, 64627,
- 19909, 983554, 72279, 0, 287, 0, 233, 0, 0, 42816, 0, 0, 65140, 128158,
- 8830, 0, 0, 10524, 41175, 125033, 72294, 0, 5296, 0, 127559, 0, 0, 0,
- 127154, 74858, 6516, 6515, 6514, 6513, 6512, 0, 70870, 0, 0, 0, 12122,
- 92462, 100868, 43976, 1785, 92507, 0, 0, 917771, 5138, 0, 0, 0, 100884,
- 0, 0, 0, 0, 0, 5134, 69980, 322, 4643, 5132, 0, 194942, 0, 5143, 0,
- 72309, 119628, 0, 0, 72112, 0, 129964, 0, 0, 0, 0, 0, 0, 73097, 0, 0, 0,
- 127923, 0, 0, 0, 0, 0, 3234, 0, 100886, 0, 100889, 118924, 0, 0, 100875,
- 68231, 74489, 100872, 120746, 0, 100876, 0, 12714, 0, 64585, 93775, 0, 0,
- 0, 129428, 0, 11027, 0, 10059, 0, 64524, 9767, 789, 1749, 0, 66766,
- 983991, 320, 0, 0, 0, 3049, 0, 6471, 0, 74479, 9925, 127356, 127355,
- 127358, 4960, 5549, 127359, 127346, 127345, 127348, 5418, 127350, 3351,
- 120892, 127351, 10610, 5414, 0, 0, 4286, 5421, 127344, 67867, 0, 127794,
- 0, 6653, 0, 0, 64510, 0, 41868, 0, 128823, 0, 0, 11613, 70737, 12603,
- 7131, 11108, 4566, 0, 0, 0, 0, 0, 124938, 127369, 0, 0, 5200, 0, 0, 0,
- 9183, 127361, 74458, 73075, 395, 5482, 1376, 4349, 0, 0, 5196, 0, 6113,
- 42009, 5205, 0, 120530, 0, 118973, 70467, 0, 0, 129691, 0, 9126, 70498,
- 0, 0, 0, 0, 0, 3203, 192, 0, 3385, 120785, 128620, 5383, 0, 0, 0, 5738,
- 69449, 3336, 0, 5361, 9633, 0, 0, 0, 0, 8581, 0, 1260, 3149, 5359, 12962,
- 74955, 10441, 5357, 0, 0, 0, 5364, 0, 11431, 0, 9101, 0, 0, 0, 0, 78378,
- 121155, 42917, 0, 129179, 0, 0, 0, 43360, 78385, 78384, 78383, 78382,
- 78381, 78380, 78379, 9319, 7097, 0, 127748, 0, 0, 0, 120632, 0, 71205, 0,
- 0, 0, 1720, 0, 0, 0, 8622, 0, 70430, 68772, 0, 0, 0, 73084, 0, 0, 11921,
- 0, 11769, 68782, 0, 0, 0, 0, 194571, 41586, 0, 0, 0, 3356, 194572, 64709,
- 194575, 0, 7134, 0, 78389, 0, 677, 0, 0, 0, 129474, 68747, 0, 68751,
- 3349, 74125, 0, 8927, 0, 0, 0, 0, 0, 0, 0, 6806, 0, 10190, 68755, 0, 0,
- 0, 0, 0, 0, 0, 7113, 7586, 0, 10852, 0, 0, 4606, 0, 0, 70084, 0, 0, 1046,
- 7124, 121192, 68753, 0, 5171, 65539, 0, 0, 0, 42394, 0, 74849, 127823, 0,
- 5169, 11935, 0, 0, 3175, 0, 1537, 0, 5176, 8905, 4136, 4871, 78388, 0, 0,
- 0, 0, 1128, 0, 0, 0, 74066, 0, 73069, 0, 0, 3662, 113767, 3378, 0, 71298,
- 0, 127995, 6320, 71302, 983162, 10163, 0, 5165, 5126, 0, 66902, 41389, 0,
- 71368, 3374, 113740, 0, 7119, 0, 0, 3507, 0, 7629, 6848, 19925, 0, 68463,
- 183, 127208, 127209, 70811, 10636, 0, 128465, 0, 0, 78772, 0, 0, 0,
- 78768, 6580, 4332, 123584, 0, 10726, 66686, 127203, 127204, 127205,
- 127206, 0, 70813, 127201, 127202, 0, 0, 5448, 41058, 5446, 0, 0, 71369,
- 5442, 7135, 0, 0, 5451, 0, 78470, 0, 0, 0, 0, 11243, 10859, 65867, 10345,
- 10409, 123606, 0, 0, 129077, 42181, 0, 0, 2060, 0, 7111, 0, 0, 0, 0,
- 72741, 0, 205, 0, 72346, 93771, 0, 9862, 6588, 43257, 0, 0, 0, 5505,
- 93789, 5503, 65376, 0, 7125, 9819, 0, 0, 0, 5507, 12044, 194567, 0, 0, 0,
- 7109, 0, 0, 7911, 10329, 10393, 8991, 125104, 69778, 11133, 129619, 8550,
- 0, 5592, 2919, 0, 0, 5595, 0, 0, 4367, 0, 0, 5591, 41060, 5594, 0, 0,
- 13142, 5590, 0, 72274, 118909, 75069, 123586, 9731, 71225, 64633, 0, 0,
- 71217, 121361, 71227, 0, 0, 0, 0, 7137, 0, 0, 0, 10551, 10710, 0, 0, 0,
- 120570, 0, 92364, 9936, 3348, 0, 0, 1444, 119058, 0, 74206, 983106, 0,
- 1442, 129080, 0, 120959, 0, 0, 0, 0, 0, 0, 0, 3334, 73068, 118803, 0, 0,
- 71219, 69770, 1651, 0, 8861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43626, 0,
- 0, 3344, 0, 0, 12920, 0, 0, 0, 71853, 3438, 128711, 0, 0, 0, 0, 129068,
- 0, 0, 65117, 0, 0, 0, 0, 66366, 128915, 0, 69772, 0, 0, 0, 0, 4973, 8784,
- 0, 0, 0, 0, 0, 0, 0, 125198, 983283, 0, 0, 66413, 0, 0, 0, 0, 0, 9243,
- 2464, 0, 0, 3372, 0, 0, 0, 70364, 7121, 0, 0, 0, 92163, 0, 0, 0, 0, 0, 0,
- 0, 3354, 0, 0, 983103, 101233, 0, 3876, 0, 127983, 0, 43696, 43380, 0,
- 74240, 0, 0, 0, 983966, 75074, 6589, 0, 0, 120993, 0, 0, 69609, 0,
- 121210, 0, 10630, 71960, 0, 121293, 0, 0, 121287, 917942, 121337, 121215,
- 0, 0, 0, 0, 0, 917940, 3366, 0, 917938, 0, 0, 0, 71062, 0, 121197, 0,
- 6925, 71856, 0, 917929, 66780, 66274, 0, 72768, 0, 917930, 129482, 11138,
- 0, 6754, 7118, 0, 64672, 65296, 0, 118957, 0, 0, 12296, 68457, 121320, 0,
- 5282, 0, 72278, 0, 0, 0, 0, 0, 0, 66355, 0, 0, 68073, 64343, 0, 92744,
- 195058, 195029, 0, 0, 195056, 195027, 0, 0, 128814, 195025, 6584, 195026,
- 10657, 0, 74544, 0, 1200, 12243, 92269, 195062, 0, 129300, 11545, 0,
- 120493, 3343, 4424, 11047, 0, 69863, 3896, 0, 0, 2947, 0, 0, 42221, 0,
- 68139, 13059, 7942, 0, 3381, 0, 0, 0, 0, 0, 0, 78235, 0, 0, 0, 7044,
- 65800, 78236, 0, 7045, 7175, 7047, 127884, 11791, 0, 0, 3881, 0, 0,
- 127395, 0, 0, 67075, 7106, 72000, 0, 0, 74211, 41897, 92513, 0, 73040,
- 66745, 0, 0, 0, 0, 121245, 0, 64354, 73083, 8777, 0, 129108, 8884, 2385,
- 73067, 92450, 0, 0, 0, 42027, 12114, 0, 0, 64936, 0, 0, 0, 0, 0, 126605,
- 0, 0, 0, 0, 73064, 0, 0, 0, 0, 0, 0, 0, 73057, 0, 123587, 0, 0, 0, 0, 0,
- 70803, 0, 0, 124953, 0, 0, 0, 7048, 11087, 123600, 92536, 7043, 9600, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 42050, 0, 55289, 0, 0, 657, 0, 195054, 4461,
- 92903, 0, 0, 126490, 0, 4468, 0, 0, 0, 4456, 73070, 10720, 123588, 0,
- 127520, 0, 0, 0, 195046, 260, 7714, 74163, 2045, 0, 65064, 4466, 0, 0,
- 128087, 0, 41403, 0, 0, 0, 41406, 120692, 0, 0, 73939, 0, 0, 0, 41404,
- 1165, 0, 4451, 13087, 0, 11258, 0, 73855, 0, 43014, 5439, 12061, 74586,
- 3375, 128869, 0, 0, 0, 0, 0, 0, 0, 113823, 67078, 0, 67079, 0, 0, 0, 0,
- 68459, 0, 0, 0, 0, 0, 0, 7280, 0, 0, 0, 4868, 8297, 0, 0, 42791, 0,
- 66737, 66739, 0, 0, 5182, 0, 0, 72764, 0, 4465, 0, 12135, 0, 4464, 0, 0,
- 977, 4458, 43827, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 92240, 0, 64443,
- 126995, 73078, 129525, 0, 0, 0, 43026, 7612, 119591, 64413, 0, 0, 0, 0,
- 0, 0, 0, 0, 123622, 0, 119160, 10204, 127947, 73063, 0, 0, 127236, 0,
- 68746, 0, 8852, 0, 0, 0, 0, 128427, 123597, 7932, 0, 128463, 0, 0, 0, 0,
- 0, 0, 0, 74893, 0, 0, 73095, 0, 8650, 0, 0, 0, 69900, 118872, 0, 70868,
- 0, 6719, 0, 0, 0, 72836, 0, 0, 118991, 0, 123594, 73815, 4420, 0, 10583,
- 7760, 0, 0, 128752, 71711, 0, 128407, 0, 0, 0, 9066, 0, 74795, 0, 0, 0,
- 0, 0, 0, 0, 42825, 41854, 5304, 0, 124942, 6919, 8619, 0, 10038, 66454,
- 9592, 129049, 0, 0, 110771, 110777, 110772, 0, 0, 0, 0, 0, 78498, 110773,
- 43624, 0, 7779, 0, 0, 9479, 78493, 0, 0, 2224, 0, 0, 0, 0, 0, 42378,
- 3368, 0, 66804, 7697, 69237, 0, 2030, 0, 68236, 8370, 0, 127961, 0, 0,
- 983350, 127903, 983348, 983347, 5174, 42831, 983344, 70439, 983342, 8881,
- 119047, 0, 70433, 0, 0, 0, 0, 0, 0, 9576, 0, 3347, 4160, 5154, 0, 3794,
- 0, 0, 0, 0, 0, 127916, 73073, 8381, 4572, 69564, 126101, 0, 0, 0, 0, 0,
- 0, 0, 92283, 0, 0, 5799, 983339, 70100, 983337, 983336, 983335, 43031,
- 64425, 65128, 983331, 0, 73059, 0, 68616, 0, 0, 0, 0, 119826, 0, 0,
- 123604, 0, 0, 283, 68665, 0, 532, 0, 0, 983808, 0, 0, 3370, 73077,
- 119132, 5443, 71431, 0, 0, 0, 0, 0, 2298, 0, 0, 0, 983330, 983329,
- 983328, 983327, 7144, 983325, 119600, 983323, 983322, 983321, 0, 78816,
- 128833, 0, 0, 0, 0, 0, 0, 0, 0, 73088, 0, 123592, 983933, 0, 0, 0, 0,
- 5186, 7360, 127837, 0, 12108, 0, 65124, 0, 0, 0, 6326, 43344, 0, 0,
- 42562, 0, 0, 0, 983320, 65495, 983318, 101066, 983316, 101065, 983314,
- 65490, 983312, 125034, 0, 101070, 0, 55245, 128927, 1630, 128232, 65483,
- 0, 0, 0, 65476, 0, 0, 119214, 9283, 10183, 0, 0, 65499, 0, 64593, 66758,
- 3376, 0, 0, 0, 101077, 43872, 12940, 0, 0, 78587, 101078, 5957, 0, 8926,
- 983310, 983309, 983308, 10745, 10174, 983305, 113793, 983303, 983302,
- 983301, 0, 123593, 5056, 0, 0, 0, 120773, 0, 9812, 0, 4460, 127792,
- 73066, 0, 128038, 0, 123608, 0, 64278, 0, 0, 0, 66760, 0, 0, 70122, 0, 0,
- 917627, 0, 73823, 101071, 127922, 2276, 0, 42579, 0, 983300, 983299,
- 127831, 983297, 983296, 983295, 983294, 983293, 74207, 121255, 10482,
- 12863, 73002, 2412, 0, 9522, 0, 983887, 120674, 101059, 3384, 101058,
- 10702, 830, 0, 128166, 0, 8451, 0, 0, 121380, 69739, 128957, 0, 0, 0, 0,
- 0, 0, 0, 4243, 92454, 73093, 0, 0, 4441, 0, 983290, 983289, 66618,
- 983287, 125141, 411, 983284, 68068, 983282, 4056, 983894, 0, 92666, 0,
- 983897, 983949, 0, 0, 3364, 42265, 64437, 0, 118816, 0, 9684, 216, 0,
- 1401, 0, 0, 0, 0, 0, 0, 0, 11126, 5768, 3191, 0, 0, 0, 0, 0, 0, 65895, 0,
- 0, 3338, 73935, 983278, 983277, 983276, 129605, 983274, 983273, 2794,
- 8807, 0, 0, 110720, 0, 8312, 0, 110718, 11953, 11662, 0, 0, 0, 0, 9534,
- 66767, 129040, 0, 11113, 0, 0, 73082, 0, 981, 0, 4330, 119244, 120536,
- 1824, 0, 0, 7034, 41683, 123166, 0, 73754, 0, 0, 74478, 128259, 983268,
- 983255, 983254, 43831, 983252, 66752, 983250, 983249, 0, 70288, 65343, 0,
- 0, 43225, 0, 0, 0, 0, 126129, 0, 128608, 0, 0, 0, 120726, 0, 983833,
- 11746, 0, 5216, 0, 0, 0, 0, 3468, 127149, 9230, 65942, 0, 0, 5803,
- 120677, 0, 0, 13124, 0, 0, 0, 42843, 0, 0, 0, 66753, 11739, 128318, 0,
- 128444, 0, 0, 0, 12448, 0, 121441, 13057, 73852, 124994, 0, 0, 0, 0, 0,
- 0, 126612, 0, 68903, 0, 129470, 0, 917992, 0, 0, 0, 0, 0, 0, 0, 92457, 0,
- 0, 0, 0, 0, 0, 0, 0, 125078, 0, 0, 0, 10970, 92208, 0, 0, 0, 19944, 0,
- 9009, 8551, 0, 0, 0, 7575, 0, 0, 128899, 0, 129609, 78847, 0, 78846, 0,
- 0, 69256, 0, 0, 0, 0, 9775, 100682, 129191, 119052, 68629, 194703, 0, 0,
- 78850, 92880, 0, 0, 0, 0, 0, 0, 0, 71273, 6184, 41540, 3303, 66182,
- 11786, 66180, 66203, 3422, 0, 68290, 43007, 4478, 66178, 0, 0, 126216, 0,
- 4477, 0, 69608, 66184, 66183, 66204, 66194, 0, 66198, 41880, 66188,
- 66197, 78148, 66195, 66190, 66191, 41111, 66189, 73788, 7788, 0, 0, 0, 0,
- 0, 2221, 78163, 6535, 78161, 78162, 430, 78160, 78156, 78158, 0, 0, 4945,
- 0, 4950, 0, 78165, 0, 67118, 0, 5964, 12908, 0, 0, 0, 74477, 83390, 0,
- 4949, 0, 443, 0, 4944, 5467, 119603, 983260, 0, 9364, 0, 119148, 4946, 0,
- 3788, 126106, 983699, 0, 120847, 129858, 74441, 0, 0, 12072, 92248, 0,
- 983689, 0, 128676, 12091, 0, 0, 0, 4673, 0, 4678, 0, 0, 65059, 43860, 0,
- 0, 0, 128151, 1199, 0, 8356, 0, 0, 4677, 0, 0, 0, 4672, 78173, 78175,
- 78171, 78172, 72255, 78170, 78166, 4674, 128450, 194944, 0, 124970, 0,
- 119579, 0, 129919, 1855, 0, 0, 127806, 0, 0, 68912, 72323, 0, 12988,
- 121000, 0, 0, 0, 4654, 6840, 983427, 0, 73993, 0, 4649, 65209, 983889,
- 93839, 4648, 0, 121169, 983431, 126231, 983422, 66846, 7828, 4650,
- 983421, 72879, 0, 4653, 7822, 0, 0, 43187, 0, 983586, 6821, 0, 0, 0, 0,
- 0, 0, 66756, 983428, 0, 0, 0, 8547, 0, 42165, 0, 119228, 6836, 0, 0,
- 4662, 0, 0, 0, 9146, 599, 4657, 0, 120754, 0, 4656, 0, 0, 7811, 40994, 0,
- 6414, 5967, 4658, 3725, 0, 5814, 4661, 127760, 194961, 0, 0, 64904, 0,
- 10833, 0, 0, 4867, 128717, 0, 11459, 3054, 0, 40996, 0, 7605, 4622, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 19926, 0, 0, 65307, 4617, 0, 0, 0, 4616, 10518, 0,
- 127160, 0, 5958, 0, 983444, 4618, 0, 983437, 120675, 4621, 0, 983439,
- 522, 125213, 11139, 65803, 194972, 0, 12201, 6135, 121060, 983420, 0,
- 983093, 0, 983418, 983411, 983432, 4638, 983416, 0, 78242, 5965, 78240,
- 66569, 68646, 0, 983450, 74392, 5335, 0, 0, 4633, 0, 119045, 983446,
- 4632, 0, 5542, 5333, 0, 983423, 68648, 5331, 4634, 0, 0, 5338, 4637, 0,
- 0, 43477, 0, 42493, 0, 42361, 0, 0, 73853, 0, 0, 0, 74204, 11343, 0,
- 10358, 10422, 4758, 0, 1608, 5252, 0, 0, 4753, 78239, 11344, 78237, 0,
- 5231, 74384, 0, 0, 0, 0, 0, 0, 0, 71991, 5229, 4757, 0, 0, 5227, 4752, 0,
- 65235, 5234, 73044, 0, 0, 0, 0, 0, 0, 7460, 0, 917936, 0, 0, 74760,
- 65189, 0, 92230, 0, 0, 5574, 0, 0, 65139, 5577, 0, 0, 118871, 68641,
- 8965, 7635, 0, 5316, 70021, 5314, 74555, 5572, 0, 5312, 0, 5525, 5330,
- 5319, 68292, 0, 65066, 0, 0, 983491, 0, 0, 127851, 0, 74851, 0, 0, 64609,
- 0, 0, 128593, 0, 129339, 0, 8632, 0, 0, 0, 195012, 5735, 195013, 1692,
- 118792, 4610, 0, 4305, 0, 4609, 43478, 4614, 0, 0, 5287, 5309, 5285, 0,
- 5961, 4647, 5283, 10743, 0, 71889, 601, 4613, 0, 0, 9208, 4608, 74044,
- 71107, 5190, 0, 0, 92410, 43965, 2265, 0, 0, 0, 0, 0, 0, 0, 129953, 0, 0,
- 5960, 0, 8992, 65293, 0, 1782, 0, 0, 0, 0, 0, 5501, 0, 42508, 69759,
- 120749, 0, 0, 195023, 983919, 43900, 128325, 0, 68134, 111180, 74209, 0,
- 64740, 0, 0, 0, 983916, 3767, 5737, 0, 4865, 0, 5740, 0, 5736, 7724, 0,
- 7193, 0, 0, 5739, 0, 4866, 0, 0, 0, 4869, 67093, 0, 0, 128514, 6650,
- 983483, 0, 983474, 78376, 4870, 0, 68661, 6716, 983473, 68667, 69786,
- 68676, 0, 10122, 4864, 66568, 0, 0, 0, 9603, 68652, 126213, 42734, 745,
- 0, 0, 0, 4777, 0, 917925, 68631, 42775, 68196, 0, 0, 0, 0, 5966, 0, 4778,
- 127890, 0, 0, 4781, 127196, 64407, 0, 74132, 8577, 71221, 0, 71223, 0,
- 4782, 0, 0, 120757, 68618, 43472, 43056, 68622, 0, 92986, 4776, 0, 11492,
- 0, 0, 13176, 0, 0, 0, 0, 0, 0, 0, 4849, 8242, 9561, 73922, 0, 0, 0, 0,
- 5963, 0, 125201, 0, 4850, 72121, 0, 590, 4853, 0, 4854, 0, 5164, 0, 1605,
- 5124, 0, 111165, 0, 8471, 0, 111164, 12445, 3785, 0, 111162, 0, 0, 4848,
- 2530, 0, 2068, 1964, 0, 0, 10796, 0, 0, 0, 0, 0, 4794, 0, 0, 0, 4797,
- 68040, 111152, 43465, 4792, 0, 0, 0, 0, 0, 110842, 983101, 92963, 0, 0,
- 0, 4221, 92360, 118869, 0, 0, 0, 70042, 0, 0, 0, 0, 10739, 65090, 0,
- 119327, 126541, 0, 0, 119326, 0, 0, 4937, 43376, 0, 0, 10597, 983440,
- 11722, 9248, 129566, 42879, 11725, 0, 0, 7579, 11141, 73958, 4941, 0,
- 917538, 9140, 4936, 5261, 0, 0, 72298, 0, 4942, 0, 4938, 0, 0, 5259,
- 9369, 983429, 111182, 5257, 0, 6844, 4964, 5264, 0, 0, 0, 41411, 0,
- 121473, 73684, 128233, 9482, 4873, 41991, 64707, 42526, 127989, 64480,
- 64725, 983442, 0, 0, 0, 0, 0, 0, 73043, 0, 389, 10893, 7521, 0, 4872,
- 5463, 0, 3125, 111124, 0, 4878, 5459, 4604, 0, 0, 5465, 0, 0, 0, 0, 9563,
- 0, 0, 128419, 125273, 82963, 0, 0, 0, 67735, 0, 0, 0, 0, 0, 78179, 0,
- 917838, 0, 917833, 0, 917836, 0, 0, 3082, 0, 0, 0, 0, 0, 7079, 5856,
- 917842, 5163, 0, 0, 1817, 66724, 0, 0, 10564, 7763, 13077, 0, 0, 68140,
- 111137, 0, 0, 0, 111139, 0, 111149, 121457, 0, 0, 0, 983189, 73081, 0, 0,
- 983117, 983077, 0, 42156, 0, 0, 0, 983080, 0, 0, 0, 119254, 120693, 0,
- 69386, 0, 118881, 0, 78189, 0, 78186, 78188, 0, 0, 0, 0, 110877, 0, 3108,
- 9745, 0, 0, 0, 118825, 0, 0, 0, 0, 0, 10972, 0, 0, 42768, 715, 983113,
- 121117, 9453, 5348, 10943, 0, 983169, 0, 0, 0, 983153, 0, 0, 11551,
- 128464, 0, 0, 9051, 0, 71728, 0, 120791, 119523, 0, 6404, 66458, 68376,
- 11984, 9156, 65222, 74454, 78180, 0, 3128, 4789, 5067, 5066, 0, 4784, 0,
- 8827, 1146, 5065, 78196, 78192, 78193, 78190, 78191, 5064, 5326, 0, 9450,
- 5063, 120361, 78200, 78201, 5062, 69733, 74146, 0, 0, 0, 0, 77992, 0,
- 3933, 0, 0, 12337, 0, 125023, 0, 0, 0, 194759, 0, 0, 82993, 42130, 0,
- 5151, 917832, 120357, 0, 93980, 0, 7620, 3800, 0, 0, 0, 127952, 0, 0,
- 4786, 127991, 4185, 0, 128742, 0, 983193, 73978, 0, 4593, 0, 120584, 0,
- 0, 110715, 10532, 110713, 110714, 110711, 110712, 64759, 1325, 5166,
- 9888, 0, 5148, 0, 0, 78205, 78206, 64140, 78204, 64131, 3119, 917814, 0,
+ 0, 0, 69650, 0, 0, 0, 43436, 983725, 0, 0, 0, 0, 66845, 69249, 0, 0,
+ 5398, 0, 127386, 93953, 0, 0, 0, 0, 0, 9476, 68899, 0, 12763, 0, 74788,
+ 0, 42114, 11181, 92502, 0, 0, 0, 3469, 42107, 42116, 0, 0, 0, 0, 9853,
+ 69648, 9040, 101518, 64665, 119557, 0, 0, 0, 69638, 12602, 983068, 3852,
+ 0, 67872, 12231, 11317, 0, 119812, 0, 11410, 10964, 12274, 122890,
+ 100524, 0, 119810, 9865, 195019, 0, 0, 0, 0, 12276, 0, 0, 0, 0, 119613,
+ 0, 111214, 10467, 0, 2443, 10918, 0, 0, 1001, 9241, 1927, 0, 0, 0,
+ 127885, 195022, 0, 113752, 119830, 65678, 0, 0, 8260, 0, 7519, 11505,
+ 101505, 0, 518, 0, 119832, 0, 13204, 0, 857, 121252, 0, 0, 92336, 83177,
+ 0, 0, 0, 0, 0, 0, 92762, 0, 0, 120613, 67247, 1629, 0, 796, 0, 0, 74123,
+ 72334, 127587, 72336, 43388, 0, 43944, 72335, 478, 65151, 0, 128147, 0,
+ 0, 0, 0, 0, 42933, 1206, 71209, 43837, 0, 3843, 12011, 0, 3361, 0, 8121,
+ 10715, 7578, 0, 0, 0, 10530, 12348, 8653, 0, 0, 0, 9551, 0, 0, 784, 0, 0,
+ 0, 0, 0, 0, 43937, 0, 0, 43938, 43935, 73765, 66230, 0, 0, 0, 43936, 0,
+ 43932, 11102, 0, 0, 42753, 67165, 0, 78324, 0, 0, 6975, 917928, 5415,
+ 12176, 0, 0, 3462, 43940, 42629, 78691, 128016, 43942, 0, 9759, 0, 0,
+ 78320, 8114, 78321, 78697, 78696, 78695, 8710, 0, 118956, 0, 4051, 92657,
+ 0, 71206, 0, 0, 0, 128857, 0, 1619, 9703, 77986, 0, 42112, 0, 1875, 0,
+ 42109, 0, 0, 71189, 121160, 64907, 5396, 13144, 0, 0, 5575, 9675, 0,
+ 5940, 226, 0, 6336, 0, 0, 0, 5116, 64521, 0, 0, 0, 121390, 125048, 74138,
+ 0, 74139, 128447, 92249, 0, 0, 0, 0, 8935, 0, 0, 0, 0, 616, 78131, 65178,
+ 4684, 78701, 983880, 74631, 0, 0, 0, 74460, 42110, 0, 10870, 8557, 11054,
+ 68664, 0, 0, 0, 0, 0, 0, 0, 0, 65597, 0, 7651, 6846, 0, 0, 68868, 0, 0,
+ 118966, 129302, 40997, 127218, 0, 0, 40998, 0, 74488, 71182, 9800, 0, 0,
+ 0, 41000, 0, 5114, 55263, 3386, 70730, 42574, 0, 5115, 5394, 0, 128756,
+ 5113, 0, 64855, 0, 4425, 0, 0, 0, 43967, 0, 0, 0, 5112, 12173, 127037, 0,
+ 0, 74998, 0, 0, 0, 0, 0, 64874, 43964, 1587, 0, 0, 0, 0, 1369, 917931,
+ 9959, 0, 43963, 4560, 0, 0, 0, 0, 0, 0, 43961, 42601, 4514, 72149, 0, 0,
+ 0, 65041, 10965, 120905, 0, 0, 12542, 0, 65341, 0, 65829, 0, 0, 10475, 0,
+ 0, 0, 0, 11795, 0, 0, 0, 127102, 127101, 74956, 7099, 11275, 67681,
+ 127096, 0, 9336, 0, 42626, 43966, 7798, 64474, 64259, 0, 5730, 119809,
+ 43018, 983174, 93796, 0, 0, 0, 69401, 0, 0, 5127, 11285, 0, 5495, 4273,
+ 0, 74765, 10849, 6346, 5493, 6342, 68636, 74319, 5492, 0, 0, 169, 5497,
+ 125053, 0, 0, 68198, 0, 0, 128417, 0, 0, 12738, 0, 983076, 5321, 0, 0, 0,
+ 5323, 120732, 9773, 125209, 4683, 74318, 0, 68823, 0, 0, 0, 0, 129553, 0,
+ 0, 0, 0, 834, 0, 1803, 0, 5733, 0, 0, 71312, 5731, 1381, 2891, 0, 0, 0,
+ 64525, 0, 2881, 92996, 93847, 9601, 2879, 0, 0, 73129, 5729, 0, 0, 0,
+ 64881, 127905, 9361, 0, 2887, 0, 3526, 6298, 0, 121219, 0, 0, 0, 8572,
+ 127863, 77896, 0, 71174, 0, 0, 71197, 0, 12096, 0, 0, 0, 110745, 71176,
+ 110746, 65279, 0, 121236, 5734, 0, 0, 0, 0, 0, 41641, 12717, 0, 12552,
+ 983615, 66713, 0, 0, 41643, 110747, 0, 8713, 41640, 78657, 41645, 66712,
+ 125196, 0, 66726, 66711, 0, 93994, 0, 3472, 64863, 0, 121424, 0, 0, 0,
+ 125203, 67837, 0, 0, 0, 0, 0, 0, 121440, 0, 0, 129461, 119008, 92402,
+ 65017, 0, 0, 66668, 0, 0, 0, 0, 0, 119822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 121043, 66471, 12216, 0, 40988, 0, 0, 0, 0, 0, 2396, 129078, 0, 0, 0,
+ 64940, 0, 8321, 119823, 128165, 100409, 83299, 996, 0, 0, 4249, 0, 83294,
+ 92535, 8222, 0, 118875, 71213, 0, 0, 0, 0, 8534, 72844, 40983, 0, 125195,
+ 0, 12551, 73960, 125193, 74469, 12558, 121039, 0, 10052, 40982, 129371,
+ 0, 0, 0, 127403, 0, 917559, 0, 78364, 1563, 0, 0, 19911, 0, 0, 0, 71363,
+ 0, 7797, 78708, 10006, 0, 3308, 119134, 74940, 0, 0, 78488, 0, 0, 0, 0,
+ 0, 128462, 9200, 10046, 9612, 0, 8218, 66496, 0, 43742, 78489, 0, 0, 0,
+ 0, 67826, 0, 70056, 508, 128585, 0, 126539, 0, 0, 0, 0, 0, 0, 0, 124950,
+ 0, 194601, 0, 0, 0, 0, 6659, 0, 0, 0, 0, 0, 0, 41634, 0, 41639, 71169,
+ 11941, 0, 0, 0, 42180, 68505, 43753, 3249, 41637, 93982, 12328, 501,
+ 93985, 10601, 0, 6503, 0, 92192, 0, 71181, 0, 6505, 74010, 0, 13064,
+ 126112, 121105, 6500, 5526, 0, 128949, 0, 0, 92376, 0, 9678, 120832, 0,
+ 41706, 0, 0, 0, 8936, 92964, 119123, 4208, 0, 0, 0, 67742, 0, 74379,
+ 128605, 0, 0, 92422, 983109, 0, 66475, 0, 5027, 0, 0, 0, 5069, 0, 5028,
+ 0, 0, 0, 5026, 0, 0, 6331, 0, 0, 0, 0, 41076, 0, 74790, 0, 0, 0, 0, 5029,
+ 0, 5317, 3598, 0, 41070, 92166, 11185, 6663, 0, 6507, 0, 126079, 0, 1716,
+ 983691, 0, 917824, 620, 41001, 0, 917823, 43758, 0, 71116, 5024, 0,
+ 41003, 0, 5025, 7297, 0, 75039, 0, 119328, 65557, 0, 0, 983599, 0, 0, 0,
+ 0, 43947, 43946, 0, 0, 128363, 6105, 0, 119325, 983226, 0, 68203, 43945,
+ 66491, 43939, 0, 68144, 78718, 2301, 0, 0, 66490, 6979, 0, 7721, 0, 0,
+ 1592, 0, 0, 121096, 41048, 129358, 829, 0, 92406, 0, 120247, 0, 41056, 0,
+ 0, 10953, 41066, 0, 917813, 482, 101554, 0, 0, 43606, 71185, 0, 0, 0,
+ 72262, 110863, 72421, 12050, 0, 5315, 917817, 0, 0, 42061, 917816, 0, 0,
+ 68417, 917815, 0, 0, 42059, 0, 0, 120723, 42058, 3960, 11043, 11337,
+ 121358, 0, 0, 3958, 101568, 0, 917818, 0, 917819, 0, 0, 42064, 11959,
+ 983695, 0, 0, 0, 0, 128498, 64336, 10478, 92629, 70350, 120704, 0, 0,
+ 42437, 1555, 0, 8691, 129656, 2215, 41662, 119046, 0, 0, 0, 93952, 0,
+ 66481, 41664, 0, 42578, 0, 41661, 78715, 78714, 9356, 0, 129544, 0, 1286,
+ 110701, 0, 0, 983206, 128925, 42476, 0, 11156, 0, 0, 0, 101583, 72123, 0,
+ 10020, 43359, 72827, 0, 120946, 41627, 0, 11979, 0, 41628, 533, 11931,
+ 65225, 0, 125122, 129994, 0, 68118, 0, 4377, 0, 0, 8587, 72097, 13193,
+ 64350, 68233, 0, 41924, 0, 7735, 0, 127585, 120843, 0, 65820, 0, 0,
+ 43461, 7757, 0, 0, 43787, 66493, 77943, 4168, 43904, 73952, 0, 0, 121072,
+ 4440, 43902, 77948, 66837, 77946, 43903, 77944, 77945, 0, 120909, 120826,
+ 120226, 66492, 43901, 64625, 0, 0, 0, 0, 10013, 64434, 0, 983112, 0,
+ 11782, 64382, 0, 0, 0, 0, 41630, 630, 120960, 0, 0, 70165, 1043, 93017,
+ 0, 0, 0, 124945, 313, 129590, 0, 0, 65593, 7445, 43906, 5750, 42258, 0,
+ 55222, 68222, 11268, 11225, 0, 8526, 0, 0, 43894, 66495, 69990, 0, 92990,
+ 0, 10707, 7863, 0, 0, 70692, 631, 77952, 77953, 66443, 71171, 83313, 0,
+ 0, 0, 13305, 77961, 43925, 43924, 77956, 77957, 66903, 66328, 42381,
+ 77962, 0, 0, 0, 0, 0, 0, 43899, 66821, 77967, 9157, 77965, 77966, 77963,
+ 77964, 0, 0, 180, 73904, 0, 0, 66494, 12674, 43896, 0, 0, 43890, 43897,
+ 0, 11535, 0, 66769, 5185, 7165, 5521, 10334, 5519, 71329, 10302, 12351,
+ 83333, 1027, 5181, 0, 5117, 0, 5179, 73955, 6845, 991, 3332, 43676,
+ 41647, 0, 73883, 92571, 77979, 3405, 69572, 0, 5523, 43915, 66487, 92459,
+ 74943, 9549, 0, 125093, 43923, 0, 43682, 74884, 120537, 0, 43921, 0,
+ 71184, 0, 43922, 128709, 0, 10414, 9846, 0, 10350, 0, 43918, 77981,
+ 75075, 77978, 77980, 66485, 77977, 77973, 77974, 78057, 43909, 73983,
+ 12330, 0, 0, 0, 43910, 69291, 3407, 6293, 0, 68149, 43908, 129060, 0,
+ 10209, 0, 4195, 0, 9010, 983686, 75072, 6332, 0, 0, 65871, 0, 1736, 0,
+ 3901, 0, 0, 65890, 128801, 10446, 0, 693, 9130, 314, 78119, 64149, 0, 0,
+ 0, 11026, 0, 5332, 6940, 0, 0, 127007, 119831, 0, 273, 8165, 0, 83307, 0,
+ 0, 12824, 43911, 4528, 5320, 6301, 43662, 6133, 0, 9463, 73738, 127141,
+ 10922, 121069, 0, 0, 0, 0, 0, 2569, 0, 2326, 0, 2565, 0, 66401, 0, 0, 0,
+ 0, 41848, 2567, 78620, 121145, 4044, 92646, 0, 12233, 0, 9509, 0, 0,
+ 127158, 7336, 0, 0, 0, 129598, 0, 67235, 0, 0, 0, 0, 2222, 66499, 0,
+ 127170, 0, 10895, 0, 274, 983763, 1858, 0, 67849, 55251, 0, 3133, 0,
+ 71857, 0, 9610, 0, 8197, 0, 0, 0, 41665, 5868, 0, 0, 72120, 0, 19940,
+ 43668, 41667, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 6464, 92750, 2996,
+ 125221, 0, 68481, 41835, 4047, 41842, 0, 0, 129601, 0, 0, 0, 0, 293, 0,
+ 0, 64791, 41827, 0, 0, 10579, 8560, 0, 0, 118835, 4803, 73805, 1739, 0,
+ 3900, 128967, 73737, 0, 0, 73957, 0, 66474, 41971, 0, 0, 0, 0, 0, 11716,
+ 66473, 0, 121071, 0, 128080, 0, 0, 0, 0, 0, 0, 0, 6632, 73861, 0, 74770,
+ 0, 0, 8914, 0, 0, 3183, 1435, 0, 0, 0, 0, 0, 0, 5746, 67392, 0, 0, 0,
+ 83506, 0, 7082, 71481, 12618, 5059, 983597, 83524, 43604, 0, 0, 0, 0, 0,
+ 0, 8227, 0, 1218, 0, 64416, 65848, 92884, 0, 0, 0, 126987, 0, 0, 0, 0, 0,
+ 0, 83515, 83507, 0, 0, 42672, 71194, 43224, 0, 0, 0, 0, 0, 0, 0, 65905,
+ 0, 42662, 0, 121159, 0, 129536, 0, 7794, 0, 42953, 6377, 0, 126080, 3669,
+ 3968, 0, 71319, 69658, 129550, 0, 66296, 0, 0, 0, 0, 124998, 6699,
+ 126120, 0, 0, 66678, 0, 0, 0, 8409, 119527, 19967, 0, 0, 9502, 0, 0,
+ 6115, 0, 41654, 0, 0, 0, 41655, 113779, 43975, 72427, 0, 0, 0, 0, 41657,
+ 10778, 0, 9533, 184, 1553, 128868, 69574, 0, 0, 0, 129420, 0, 0, 0,
+ 73697, 0, 92480, 0, 128938, 74292, 0, 5157, 4020, 0, 128154, 43788,
+ 64818, 0, 0, 0, 92979, 0, 0, 74377, 11029, 66651, 0, 0, 125202, 0, 0,
+ 7877, 121070, 101411, 0, 119828, 2810, 9955, 0, 0, 42817, 0, 65122,
+ 11715, 0, 0, 0, 71270, 0, 0, 0, 0, 0, 70199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 78222, 127981, 0, 0, 0, 0, 0, 11290, 0, 0, 0, 0, 8315, 0, 0, 0, 74595,
+ 0, 0, 0, 42531, 0, 0, 0, 74589, 43993, 0, 0, 0, 0, 43690, 0, 119139,
+ 42730, 0, 0, 0, 64926, 0, 0, 43830, 65257, 0, 42728, 0, 128697, 123150,
+ 0, 43540, 0, 0, 12725, 72993, 78635, 127826, 223, 0, 69675, 0, 0, 0, 0,
+ 0, 0, 42605, 0, 0, 0, 0, 0, 0, 0, 0, 78621, 0, 78619, 119062, 0, 0, 0,
+ 42676, 129353, 64800, 78617, 83504, 68126, 1213, 0, 0, 797, 0, 0, 83021,
+ 83005, 64387, 4115, 0, 0, 0, 129857, 10679, 83001, 121091, 0, 64276,
+ 83498, 13168, 83011, 0, 10136, 0, 0, 65088, 0, 4262, 129866, 0, 0, 10701,
+ 0, 3101, 0, 123204, 0, 0, 11373, 0, 0, 12731, 9117, 0, 0, 4539, 0, 0,
+ 12727, 0, 0, 0, 43684, 74567, 68877, 983707, 12724, 73940, 0, 0, 0, 0, 0,
+ 7947, 12003, 0, 74593, 121140, 69653, 74807, 42018, 0, 0, 0, 65888, 0, 0,
+ 69683, 0, 120306, 0, 0, 12595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69848,
+ 68307, 0, 4405, 0, 128336, 129032, 69216, 0, 128011, 0, 0, 6817, 67400,
+ 120314, 0, 0, 998, 0, 13105, 120313, 64327, 1558, 0, 1991, 7882, 0, 0, 0,
+ 530, 0, 0, 0, 12002, 0, 68422, 0, 10979, 0, 41823, 70696, 0, 0, 7896, 0,
+ 66676, 0, 120325, 0, 0, 129407, 94033, 0, 6311, 110725, 41698, 0, 12049,
+ 78133, 0, 125020, 41705, 0, 0, 121298, 0, 66822, 0, 65389, 0, 66027, 0,
+ 0, 41699, 8340, 0, 69776, 0, 128639, 0, 1988, 5407, 69978, 0, 65912,
+ 93059, 0, 2336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126238, 0, 19913, 0, 113733,
+ 0, 0, 74279, 0, 10956, 0, 41674, 19964, 41679, 65084, 41675, 195031, 0,
+ 0, 0, 0, 983089, 0, 10794, 128961, 13217, 0, 0, 0, 5280, 0, 0, 12905,
+ 41610, 11532, 0, 0, 768, 120545, 442, 0, 0, 0, 64081, 41682, 0, 41693, 0,
+ 77993, 77994, 0, 4804, 6994, 983114, 0, 0, 41696, 467, 983915, 0, 0, 0,
+ 0, 8678, 0, 69682, 64801, 0, 0, 0, 0, 64093, 12043, 0, 69666, 0, 2029,
+ 65191, 119246, 42847, 0, 0, 0, 0, 0, 0, 0, 70339, 126116, 0, 0, 8019,
+ 73856, 0, 0, 0, 0, 2355, 12150, 65725, 77988, 77989, 68033, 77987, 0,
+ 77985, 0, 0, 68388, 0, 74171, 0, 0, 0, 11301, 78013, 78008, 78010, 9874,
+ 78007, 983326, 71064, 3050, 0, 0, 0, 78016, 78017, 71852, 78015, 0, 0, 0,
+ 92242, 0, 69642, 0, 0, 43883, 0, 0, 0, 78025, 0, 78023, 78024, 11847,
+ 10545, 0, 10887, 0, 123179, 0, 0, 0, 83352, 64942, 92363, 9996, 8508, 0,
+ 0, 8195, 0, 42171, 0, 3722, 0, 63751, 0, 0, 92637, 69670, 0, 41552,
+ 69854, 0, 78639, 0, 0, 129374, 128978, 0, 0, 0, 7920, 70285, 4021, 0, 0,
+ 0, 119663, 0, 0, 78021, 78022, 78019, 78020, 1802, 78018, 0, 74895,
+ 41659, 41671, 1827, 0, 64396, 41668, 128524, 41673, 0, 11422, 71846, 0,
+ 11370, 0, 68412, 41345, 0, 0, 0, 0, 0, 0, 65114, 0, 2104, 64858, 0, 0,
+ 7553, 0, 41560, 11970, 0, 917920, 0, 68495, 74131, 74130, 0, 0, 0, 611,
+ 74129, 64871, 129958, 0, 0, 0, 74854, 0, 70466, 0, 0, 0, 121147, 0,
+ 68487, 41669, 7094, 917921, 0, 123144, 74054, 0, 0, 0, 839, 0, 7695, 0,
+ 0, 0, 92202, 0, 121053, 123157, 67885, 0, 7206, 0, 6647, 43986, 0, 0, 0,
+ 0, 0, 0, 127936, 43748, 66746, 0, 12298, 110802, 983992, 110800, 64924,
+ 0, 73931, 9468, 74245, 0, 0, 74246, 0, 0, 118830, 0, 71851, 1279, 0,
+ 6224, 0, 92405, 128601, 129886, 128997, 0, 0, 0, 5032, 0, 0, 0, 0, 0,
+ 5034, 0, 0, 72846, 42702, 0, 0, 13294, 0, 64869, 0, 67808, 9129, 123632,
+ 0, 0, 120819, 68387, 120168, 120169, 120170, 120171, 5518, 4174, 120166,
+ 120167, 120160, 120161, 120162, 434, 41437, 66212, 120158, 120159, 0, 0,
+ 118867, 0, 524, 0, 74029, 0, 126559, 0, 0, 0, 10355, 10419, 74025, 77847,
+ 0, 69725, 0, 120656, 0, 67876, 0, 0, 0, 74145, 74039, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5445, 0, 93779, 71855, 7391, 8989, 0, 74068, 0, 0, 0, 0,
+ 4962, 983133, 8855, 0, 70820, 0, 0, 0, 0, 71847, 0, 0, 0, 10451, 0,
+ 67653, 120153, 12443, 120155, 9947, 120149, 120150, 120151, 13128, 0,
+ 120146, 120147, 0, 0, 0, 0, 0, 129715, 74059, 74062, 6217, 74053, 43846,
+ 0, 74049, 0, 0, 0, 0, 0, 0, 0, 0, 42595, 0, 68112, 118860, 0, 0, 92497,
+ 74949, 128953, 126245, 0, 0, 0, 42997, 0, 119251, 0, 0, 0, 0, 0, 6216, 0,
+ 0, 9455, 127027, 8124, 128851, 0, 6944, 0, 0, 0, 2828, 128550, 531,
+ 42638, 0, 0, 129888, 43428, 0, 3614, 2827, 9696, 0, 0, 0, 4354, 0, 78562,
+ 78561, 0, 120691, 0, 42599, 42597, 0, 68829, 125012, 0, 127277, 0,
+ 120421, 0, 983164, 0, 0, 10121, 120422, 74950, 123142, 69715, 0, 0,
+ 120423, 120630, 12608, 125244, 0, 74144, 9700, 12580, 0, 128911, 0,
+ 71864, 0, 74071, 0, 0, 12713, 0, 70402, 0, 0, 0, 1734, 0, 0, 0, 0,
+ 118951, 231, 0, 74167, 542, 0, 0, 0, 0, 128074, 0, 121343, 0, 4446,
+ 10584, 74235, 0, 4037, 0, 0, 0, 5687, 0, 0, 0, 0, 0, 0, 78434, 0, 0,
+ 113709, 74284, 0, 0, 0, 126495, 0, 0, 0, 74482, 93978, 1709, 69721, 9909,
+ 92286, 0, 0, 0, 55229, 8667, 0, 0, 0, 0, 0, 0, 0, 0, 127586, 1226, 6930,
+ 0, 71736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41500, 0, 311, 74282, 6221, 92988,
+ 0, 67682, 0, 120528, 122901, 74272, 0, 0, 0, 0, 69667, 0, 124933, 74456,
+ 74302, 42589, 0, 0, 0, 0, 0, 0, 0, 0, 41508, 0, 323, 125211, 0, 42698,
+ 8131, 0, 4625, 0, 4630, 0, 0, 0, 74316, 78417, 2668, 92483, 0, 42640, 0,
+ 2519, 0, 92474, 92479, 0, 983085, 5049, 42659, 119011, 64705, 7754,
+ 10854, 8738, 74623, 0, 0, 0, 649, 0, 0, 0, 0, 0, 1013, 70707, 68212, 705,
+ 0, 0, 127803, 1183, 126519, 9320, 0, 0, 8157, 0, 0, 0, 0, 0, 0, 0, 11913,
+ 0, 42848, 0, 64925, 0, 0, 70693, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 8466,
+ 0, 4626, 8464, 8472, 68844, 4629, 8499, 0, 0, 4624, 194623, 0, 94025, 0,
+ 7805, 0, 94007, 6935, 0, 0, 0, 0, 0, 0, 0, 8492, 0, 8459, 0, 8497, 8496,
+ 0, 129864, 0, 0, 129834, 69553, 0, 0, 65849, 0, 0, 0, 12451, 3328, 8684,
+ 0, 6102, 0, 5298, 0, 5294, 0, 129615, 0, 0, 0, 0, 43617, 0, 0, 0, 0, 0,
+ 77863, 128695, 0, 0, 0, 0, 0, 5292, 0, 0, 42688, 5302, 3970, 0, 0, 1793,
+ 0, 0, 0, 0, 0, 65263, 0, 0, 0, 0, 0, 0, 13219, 9569, 69567, 74383, 0, 0,
+ 72157, 0, 42949, 0, 0, 0, 5322, 0, 0, 43631, 5324, 0, 128694, 41614,
+ 65269, 6230, 0, 0, 0, 3360, 0, 11523, 72726, 92488, 9926, 7197, 0, 68429,
+ 126575, 41821, 1249, 0, 127951, 0, 123641, 0, 0, 0, 74459, 41807, 0,
+ 41815, 0, 0, 0, 0, 0, 128248, 0, 66835, 0, 0, 72145, 41800, 0, 0, 0,
+ 41811, 74466, 93966, 6670, 77882, 0, 0, 43092, 0, 0, 0, 0, 0, 128655, 0,
+ 0, 0, 0, 74501, 74005, 0, 74387, 69860, 315, 12813, 128556, 72409, 0,
+ 72408, 0, 0, 73061, 0, 0, 1378, 0, 0, 0, 72407, 3066, 0, 0, 72406, 0, 0,
+ 0, 8787, 194615, 0, 41618, 0, 0, 0, 194614, 64652, 194611, 42088, 125226,
+ 0, 0, 0, 0, 7176, 43756, 0, 0, 74492, 0, 74534, 0, 0, 0, 127199, 0,
+ 128630, 74525, 0, 194594, 12930, 7168, 74514, 0, 74515, 0, 128919, 43962,
+ 9527, 120659, 70123, 12977, 69723, 0, 93783, 194598, 41236, 92235, 65168,
+ 118838, 41237, 5848, 0, 194600, 3670, 129905, 129906, 129907, 129908,
+ 7890, 0, 11298, 0, 0, 6229, 0, 0, 0, 194593, 128907, 0, 0, 0, 4120,
+ 65337, 65336, 0, 0, 0, 0, 9366, 0, 0, 0, 65327, 65326, 65325, 65324,
+ 65323, 42216, 65321, 65320, 65335, 65334, 65333, 65332, 65331, 65330,
+ 65329, 42689, 0, 43943, 118885, 42073, 6785, 68491, 0, 42076, 7196,
+ 65318, 2035, 65316, 4106, 65314, 65313, 42074, 0, 41228, 0, 0, 41241,
+ 93786, 41239, 43533, 0, 7189, 194602, 0, 43941, 0, 42802, 0, 8487, 0, 0,
+ 4615, 12695, 0, 0, 12175, 100414, 0, 0, 7809, 0, 0, 0, 0, 6590, 69762, 0,
+ 64738, 0, 0, 0, 0, 0, 0, 2025, 0, 0, 0, 10637, 71860, 0, 1570, 43839,
+ 2835, 83052, 10624, 43623, 194587, 0, 78433, 0, 42812, 0, 2825, 0,
+ 128287, 0, 2821, 0, 92327, 7365, 83043, 0, 68296, 0, 2823, 0, 0, 0, 2831,
+ 0, 0, 11465, 0, 0, 0, 0, 0, 7181, 0, 41332, 0, 12333, 0, 0, 0, 0, 0,
+ 9883, 127294, 73906, 70751, 0, 71863, 0, 0, 0, 0, 0, 0, 43741, 0, 8166,
+ 70739, 0, 0, 74535, 0, 65297, 68294, 571, 0, 8752, 0, 5288, 118822, 1541,
+ 0, 127284, 8864, 0, 0, 0, 0, 0, 113778, 12151, 0, 66874, 0, 1035, 0, 0,
+ 7881, 701, 65936, 128493, 0, 70462, 0, 11403, 0, 0, 82991, 0, 983142,
+ 70472, 3994, 11421, 121217, 127297, 127242, 127300, 70659, 127303, 0,
+ 125205, 2855, 127828, 0, 41621, 68214, 0, 0, 10654, 82945, 119226, 12164,
+ 41623, 7906, 0, 74297, 7182, 0, 83069, 0, 0, 0, 0, 121115, 0, 0, 747, 0,
+ 92463, 12019, 43136, 0, 110861, 0, 0, 8001, 0, 0, 69394, 0, 0, 0, 68373,
+ 0, 0, 0, 128279, 0, 71915, 0, 0, 7282, 94066, 0, 0, 0, 0, 0, 5286, 83061,
+ 0, 3718, 0, 83057, 0, 194584, 71905, 0, 128480, 0, 0, 0, 0, 9206, 82980,
+ 113824, 6802, 0, 41653, 0, 1241, 0, 0, 0, 0, 68124, 41651, 42937, 0,
+ 83042, 41650, 0, 83037, 0, 12914, 2814, 0, 119552, 0, 0, 0, 71968, 0, 0,
+ 0, 917546, 71862, 0, 0, 0, 3494, 10189, 69784, 0, 0, 71861, 0, 0, 65875,
+ 0, 0, 127762, 0, 74215, 43065, 0, 0, 7200, 0, 3261, 0, 0, 0, 65889,
+ 71888, 71975, 0, 0, 0, 0, 0, 0, 0, 0, 129424, 0, 635, 0, 0, 74753, 0,
+ 92420, 73997, 0, 0, 43905, 0, 118834, 126125, 0, 6667, 0, 983263, 0, 0,
+ 125200, 0, 0, 0, 0, 83137, 0, 0, 0, 0, 0, 121104, 127856, 125112, 71885,
+ 0, 120125, 7866, 194573, 92770, 194574, 0, 120140, 126074, 2849, 0, 0,
+ 42157, 12960, 0, 11812, 0, 74509, 0, 69881, 0, 0, 0, 123156, 7178, 0, 0,
+ 0, 0, 129041, 11534, 1967, 0, 0, 71361, 7015, 120298, 72757, 0, 12989, 0,
+ 9368, 983638, 1624, 43270, 0, 0, 10818, 0, 83091, 0, 120908, 0, 0, 0, 0,
+ 0, 0, 6169, 12871, 0, 2798, 65176, 4958, 42752, 119025, 0, 0, 0, 70346,
+ 66448, 0, 113780, 68364, 0, 0, 0, 68360, 0, 73746, 120945, 68352, 0,
+ 73787, 83110, 2154, 7199, 64955, 0, 0, 0, 0, 71980, 66507, 0, 69853, 0,
+ 0, 0, 0, 0, 0, 0, 92517, 118882, 120301, 13297, 0, 129446, 71963, 0, 0,
+ 0, 6658, 8045, 0, 0, 983854, 92319, 83101, 0, 72126, 0, 0, 0, 2416, 3310,
+ 0, 0, 379, 0, 43755, 0, 0, 0, 68362, 1284, 0, 73756, 0, 0, 83141, 70784,
+ 71977, 0, 0, 0, 8515, 83144, 83143, 0, 0, 0, 8529, 93782, 0, 7564, 0, 0,
+ 0, 0, 73757, 73760, 42359, 0, 2031, 0, 7202, 129984, 12676, 0, 0, 128418,
+ 0, 7710, 1610, 73801, 0, 0, 0, 983607, 43917, 0, 9974, 228, 0, 10398, 0,
+ 0, 0, 92241, 70062, 118927, 42999, 1725, 65533, 8196, 9352, 0, 0, 66868,
+ 0, 8502, 5762, 0, 0, 43898, 0, 0, 0, 0, 43914, 0, 126507, 64598, 13001,
+ 9326, 83082, 43916, 1557, 0, 983860, 6330, 6805, 8631, 2545, 70052, 0, 0,
+ 0, 42998, 70410, 0, 42762, 71941, 42914, 126516, 262, 1637, 0, 83025,
+ 129491, 0, 128757, 0, 0, 0, 128922, 0, 43658, 0, 0, 129183, 6419, 0, 0,
+ 0, 0, 93989, 0, 0, 7194, 5291, 129702, 43666, 0, 0, 0, 0, 128293, 0,
+ 12881, 123596, 0, 73842, 0, 9011, 0, 0, 0, 70436, 179, 43644, 0, 0,
+ 64747, 0, 118813, 0, 0, 121389, 92649, 126629, 0, 73850, 2801, 119837,
+ 42069, 119839, 119838, 119841, 42072, 92736, 119842, 0, 0, 0, 8377, 0,
+ 42070, 119313, 119834, 119310, 4389, 43656, 1633, 119857, 119856, 119859,
+ 11119, 119845, 119844, 9967, 119846, 119849, 4612, 119851, 119850, 42913,
+ 70456, 0, 71983, 10782, 66898, 0, 119141, 0, 0, 0, 11541, 69636, 0, 0,
+ 119614, 2731, 0, 0, 0, 4102, 0, 73878, 0, 0, 0, 0, 0, 11283, 0, 0, 0, 0,
+ 0, 43674, 0, 0, 126705, 0, 0, 0, 0, 11142, 128304, 0, 12975, 0, 123208,
+ 0, 0, 74072, 0, 55269, 0, 0, 0, 78577, 78576, 0, 0, 82966, 82974, 70448,
+ 0, 0, 82968, 0, 0, 0, 0, 0, 113809, 0, 69399, 64909, 0, 11790, 74019, 0,
+ 128066, 0, 8561, 94076, 129481, 125045, 69259, 65674, 7230, 0, 0, 8778,
+ 0, 0, 67725, 2071, 0, 6459, 68325, 7628, 65092, 73903, 0, 11342, 129388,
+ 0, 0, 93965, 94081, 0, 11810, 70057, 10723, 967, 0, 71973, 73905, 0,
+ 6387, 0, 12307, 43913, 121089, 0, 127584, 0, 1886, 0, 43895, 870, 7648,
+ 0, 7662, 7652, 876, 871, 877, 7665, 878, 42015, 879, 43692, 4563, 0, 0,
+ 0, 73072, 867, 9520, 872, 7656, 868, 873, 7642, 7659, 869, 874, 7644, 0,
+ 875, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68452, 0, 0, 42067, 0, 0, 0,
+ 12292, 0, 0, 0, 42012, 0, 0, 83388, 0, 0, 8494, 4611, 0, 72344, 0, 9679,
+ 0, 0, 0, 0, 93015, 0, 74364, 4628, 4245, 0, 0, 0, 1851, 0, 127189, 0, 0,
+ 0, 118897, 0, 64674, 124971, 983868, 8829, 983674, 128864, 0, 0, 0, 0,
+ 8809, 983677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7427, 0, 4588, 43680, 72300,
+ 74484, 0, 0, 0, 0, 113787, 74363, 129043, 0, 793, 0, 11197, 0, 0, 0, 842,
+ 0, 8208, 70833, 0, 1647, 0, 70841, 0, 0, 818, 0, 0, 0, 0, 0, 0, 120594,
+ 0, 0, 70179, 0, 13167, 66359, 0, 127172, 0, 4969, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2840, 0, 0, 0, 66887, 65877, 9068, 0, 68194, 0, 0, 12991, 0, 2651,
+ 68016, 983896, 0, 983259, 70835, 0, 70844, 43648, 0, 0, 0, 0, 0, 0,
+ 64372, 121064, 7458, 655, 752, 7457, 7456, 7452, 3285, 74894, 11152,
+ 73099, 0, 2391, 93766, 92271, 671, 7435, 7434, 618, 668, 610, 42800,
+ 7431, 7451, 42801, 640, 42927, 7448, 7439, 628, 3905, 100742, 0, 0, 0,
+ 67850, 0, 0, 0, 4605, 0, 100745, 43372, 65945, 72710, 0, 119590, 0, 0,
+ 70495, 987, 71229, 11572, 0, 0, 10002, 9971, 70673, 0, 0, 0, 0, 0, 0,
+ 11334, 0, 129493, 42364, 11503, 0, 0, 0, 4627, 70090, 127784, 0, 0,
+ 74046, 68872, 92562, 0, 0, 129900, 0, 129812, 0, 0, 42569, 64965, 0, 0,
+ 10516, 129828, 12190, 0, 42140, 0, 0, 0, 0, 9887, 0, 4000, 7429, 7428,
+ 665, 7424, 0, 0, 7884, 0, 0, 0, 0, 0, 2509, 0, 120573, 0, 0, 92449, 0,
+ 10690, 0, 119114, 126226, 0, 0, 73080, 4590, 0, 74440, 0, 0, 0, 1708, 0,
+ 0, 983609, 0, 0, 69226, 69974, 8813, 0, 1066, 0, 0, 71965, 127921, 70447,
+ 0, 0, 0, 72343, 0, 7516, 0, 0, 0, 8034, 0, 0, 3631, 110696, 0, 0, 8416,
+ 110694, 71937, 0, 0, 110692, 74621, 0, 70185, 0, 74850, 0, 0, 12099,
+ 70475, 0, 6252, 0, 0, 0, 0, 0, 0, 66368, 0, 64956, 7071, 129070, 70457,
+ 128159, 118800, 0, 0, 0, 9357, 0, 1773, 0, 125092, 0, 68451, 7745, 9844,
+ 0, 0, 94, 1880, 120929, 0, 0, 0, 0, 0, 0, 0, 0, 11237, 0, 129173, 0, 0,
+ 0, 1757, 6964, 42480, 72823, 0, 120806, 0, 0, 7731, 0, 0, 127883, 0,
+ 110810, 43988, 70423, 74758, 0, 7592, 856, 74299, 0, 0, 0, 78138, 1459,
+ 0, 0, 0, 0, 0, 1504, 0, 0, 0, 0, 7529, 0, 0, 0, 0, 12594, 0, 0, 336, 0,
+ 7509, 0, 0, 0, 0, 127882, 0, 0, 0, 65859, 0, 983967, 43062, 124948, 0, 0,
+ 0, 0, 12970, 0, 0, 0, 0, 0, 0, 0, 119247, 0, 65068, 74291, 129943, 7069,
+ 0, 0, 0, 11130, 2087, 0, 0, 0, 0, 126249, 0, 92747, 0, 92614, 2091, 0,
+ 2090, 0, 0, 7117, 2077, 72281, 0, 77889, 2083, 0, 71196, 0, 0, 71981, 0,
+ 0, 0, 0, 4165, 8746, 0, 0, 0, 0, 129572, 7066, 0, 70415, 128135, 0, 0,
+ 7786, 127766, 2233, 0, 124965, 121122, 2302, 0, 0, 7056, 0, 0, 0, 0, 0,
+ 0, 126506, 6920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 983099, 70438, 2613, 0, 0,
+ 110734, 0, 74571, 42760, 0, 0, 0, 0, 0, 0, 71843, 0, 0, 70506, 1246,
+ 74243, 0, 0, 41008, 0, 0, 0, 921, 70048, 0, 12702, 0, 0, 1566, 8407, 0,
+ 64653, 0, 74617, 0, 0, 72711, 5313, 951, 0, 0, 0, 0, 0, 4009, 70277,
+ 71844, 0, 83123, 0, 72250, 0, 119898, 113760, 0, 0, 0, 0, 70024, 0, 0,
+ 119892, 0, 0, 0, 119890, 2579, 119906, 3177, 11357, 69224, 0, 0, 83130,
+ 64734, 0, 9822, 110670, 70471, 110668, 0, 110666, 0, 0, 0, 0, 9851,
+ 983729, 110673, 9059, 110671, 110672, 0, 41687, 129054, 0, 71842, 70178,
+ 0, 0, 1777, 0, 10158, 69767, 0, 42366, 70444, 0, 0, 0, 70127, 71955,
+ 5989, 110716, 74636, 126999, 0, 41685, 0, 0, 9769, 41684, 0, 6225,
+ 111328, 11740, 0, 118840, 0, 2600, 0, 70416, 0, 0, 3666, 70420, 0, 71976,
+ 0, 0, 74542, 69771, 0, 0, 0, 0, 0, 69765, 0, 252, 0, 69769, 0, 194616, 0,
+ 69763, 0, 0, 0, 0, 0, 0, 0, 120947, 0, 129410, 0, 0, 0, 68323, 125219, 0,
+ 119188, 0, 0, 121335, 0, 0, 0, 0, 0, 7764, 983726, 11094, 120825, 0, 0,
+ 92505, 8298, 0, 0, 0, 0, 0, 64449, 0, 126650, 0, 0, 0, 70442, 0, 0, 0, 0,
+ 7774, 10607, 0, 0, 0, 0, 0, 120764, 0, 0, 0, 0, 3458, 0, 70053, 0,
+ 120995, 0, 2602, 0, 0, 0, 74907, 0, 0, 0, 0, 172, 0, 4971, 70419, 1889,
+ 7238, 0, 0, 0, 8257, 0, 0, 0, 129570, 0, 111342, 71948, 0, 43366, 43363,
+ 9807, 0, 0, 0, 72247, 64479, 0, 0, 0, 113707, 0, 10900, 121355, 0, 0,
+ 12048, 0, 64292, 0, 0, 0, 6099, 94084, 129486, 0, 0, 299, 0, 8525, 92356,
+ 0, 0, 111338, 0, 92564, 3075, 0, 94053, 0, 94050, 0, 0, 70440, 0, 123590,
+ 0, 0, 0, 2581, 11395, 0, 0, 0, 0, 128584, 0, 0, 129423, 0, 118855, 0, 0,
+ 0, 7204, 70065, 2588, 2914, 7011, 55281, 0, 7466, 0, 2883, 42253, 83118,
+ 0, 0, 0, 123598, 0, 41230, 68299, 0, 43571, 0, 6219, 0, 9980, 41232,
+ 92245, 0, 66036, 41229, 118967, 0, 120666, 94016, 0, 12711, 0, 0, 74289,
+ 68472, 42857, 0, 0, 0, 0, 127306, 119006, 0, 11380, 72348, 0, 0, 0, 0, 0,
+ 0, 0, 983579, 12722, 0, 922, 0, 0, 983126, 74958, 3218, 120471, 120470,
+ 120469, 120476, 120475, 8569, 11404, 70450, 120463, 3214, 120461, 120468,
+ 74910, 3207, 120465, 78729, 78728, 78727, 0, 120460, 7425, 3205, 0,
+ 78737, 78736, 71729, 43383, 78733, 78732, 2606, 78730, 73897, 0, 11496,
+ 1173, 0, 0, 129135, 0, 0, 0, 120737, 120953, 120872, 120629, 378, 2610,
+ 0, 0, 0, 0, 0, 37, 7068, 0, 120480, 70421, 3209, 120477, 0, 120483, 9768,
+ 120481, 0, 0, 0, 0, 0, 0, 65510, 0, 100625, 0, 0, 0, 100627, 0, 126633,
+ 0, 7060, 100628, 0, 127752, 0, 69284, 70428, 71463, 0, 7380, 0, 0,
+ 100593, 126997, 0, 128737, 0, 71465, 121030, 3243, 0, 0, 0, 7050, 0,
+ 70050, 0, 0, 0, 71466, 8203, 71102, 68241, 0, 65211, 194599, 0, 0, 0,
+ 779, 125061, 64367, 100906, 69901, 8193, 55279, 0, 0, 0, 7065, 0, 4346,
+ 0, 0, 908, 0, 0, 8982, 0, 0, 0, 782, 0, 10883, 0, 0, 129396, 65542,
+ 121302, 0, 68650, 100575, 92244, 0, 0, 111351, 0, 4376, 0, 11787, 12961,
+ 0, 0, 42888, 0, 100610, 6231, 0, 65713, 100608, 1783, 0, 68238, 0, 0, 0,
+ 194945, 0, 0, 0, 68653, 0, 983051, 0, 764, 0, 0, 43531, 0, 9033, 0, 0,
+ 6223, 11042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120648, 0, 0, 0, 0, 0,
+ 0, 71971, 0, 1478, 0, 11825, 2607, 0, 0, 0, 74543, 0, 0, 100588, 6132, 0,
+ 0, 0, 70058, 0, 0, 0, 43537, 6761, 10093, 4369, 0, 0, 73735, 100564,
+ 3947, 110778, 0, 0, 0, 0, 100942, 0, 0, 0, 0, 0, 0, 7686, 0, 0, 0,
+ 100934, 0, 100944, 66577, 41221, 0, 42281, 0, 74024, 12293, 0, 94014,
+ 11794, 0, 0, 1737, 0, 0, 0, 7205, 0, 9335, 12850, 0, 2272, 7055, 0, 0, 0,
+ 67751, 0, 0, 6780, 65067, 0, 1327, 68393, 983574, 0, 41217, 0, 10018, 0,
+ 0, 0, 100611, 68176, 41219, 0, 4147, 983170, 41216, 983693, 2616, 70197,
+ 68461, 65234, 0, 0, 0, 0, 119660, 0, 0, 0, 0, 127930, 119580, 70675,
+ 64943, 2608, 1470, 0, 0, 6227, 0, 0, 74775, 0, 0, 72320, 101024, 0,
+ 129535, 0, 0, 0, 0, 0, 10876, 92482, 0, 0, 5834, 0, 6222, 0, 0, 12086, 0,
+ 1600, 64309, 0, 0, 68883, 127957, 93836, 0, 8882, 0, 129415, 2570, 0, 0,
+ 194606, 0, 0, 1234, 0, 13115, 110743, 110740, 100923, 5002, 110739,
+ 41286, 100926, 127019, 0, 0, 0, 0, 0, 0, 0, 41289, 0, 0, 75051, 41272, 0,
+ 0, 0, 0, 0, 0, 0, 41279, 0, 0, 0, 11081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9637,
+ 7112, 77975, 128984, 0, 10886, 0, 8548, 983841, 0, 0, 0, 8076, 43048,
+ 8290, 8291, 43051, 92570, 0, 2596, 0, 0, 41293, 0, 0, 2393, 7058, 66432,
+ 0, 68673, 0, 0, 0, 0, 0, 128558, 0, 0, 0, 0, 0, 64696, 0, 0, 121086,
+ 74165, 0, 0, 0, 0, 0, 0, 7063, 983182, 64893, 73096, 0, 68038, 113757,
+ 709, 0, 0, 1876, 0, 0, 120868, 8137, 110662, 67752, 70850, 100832, 245,
+ 100831, 11456, 41233, 7070, 0, 94046, 6136, 100835, 0, 100781, 41235, 0,
+ 0, 100782, 100642, 432, 0, 100784, 65437, 0, 0, 128909, 0, 100641,
+ 100649, 0, 100648, 0, 43215, 0, 0, 0, 0, 9052, 0, 0, 110826, 110827,
+ 74784, 10580, 0, 100845, 0, 64640, 983175, 74455, 0, 129670, 70035, 0,
+ 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, 0, 0, 2576, 0,
+ 66819, 0, 983986, 129852, 0, 0, 983050, 983826, 0, 2921, 119104, 0, 5772,
+ 12968, 70055, 0, 0, 0, 2580, 983822, 0, 0, 70032, 0, 0, 0, 128148, 0, 0,
+ 121308, 11346, 0, 12054, 100824, 92426, 101112, 0, 13091, 0, 0, 100821,
+ 100828, 0, 127026, 128334, 74821, 0, 66295, 68037, 68047, 127865, 13090,
+ 0, 0, 0, 118985, 0, 0, 0, 0, 0, 127824, 0, 0, 100776, 119319, 42356,
+ 42432, 100778, 119317, 0, 0, 0, 78752, 70030, 66914, 0, 0, 7061, 0, 3854,
+ 0, 70020, 68413, 0, 42319, 0, 0, 7067, 0, 0, 0, 0, 0, 0, 127797, 9029,
+ 43543, 0, 2353, 119316, 0, 100769, 0, 100768, 983177, 0, 0, 43664, 0, 0,
+ 0, 12277, 0, 78122, 11066, 65233, 0, 41224, 0, 0, 3747, 10522, 0, 129582,
+ 1691, 41226, 0, 917565, 0, 41223, 121135, 121299, 697, 0, 121051, 4244,
+ 0, 0, 0, 13121, 128573, 0, 0, 0, 0, 0, 0, 129879, 0, 65816, 68111, 0,
+ 127933, 0, 0, 0, 0, 0, 0, 66895, 74602, 0, 7123, 70038, 5785, 9198, 0,
+ 100810, 0, 7383, 64656, 0, 0, 0, 0, 0, 0, 0, 0, 13122, 0, 191, 70060,
+ 8585, 126610, 64411, 0, 0, 64850, 41072, 118996, 0, 0, 0, 0, 100754,
+ 127010, 100753, 0, 100756, 683, 396, 0, 100758, 0, 100757, 43058, 100760,
+ 343, 7129, 42680, 0, 0, 0, 0, 0, 100761, 0, 74040, 0, 1724, 0, 119321, 0,
+ 0, 6263, 0, 0, 0, 6592, 0, 983044, 0, 0, 0, 0, 3730, 1778, 0, 0, 128854,
+ 121254, 0, 9018, 0, 0, 0, 0, 92763, 5547, 0, 0, 128950, 0, 0, 284, 8108,
+ 0, 0, 74001, 0, 66460, 7174, 92703, 126072, 0, 0, 4394, 127480, 0, 0, 0,
+ 101082, 66459, 0, 7180, 101084, 0, 101092, 68800, 42471, 0, 0, 67232,
+ 64304, 42243, 101094, 2583, 0, 127804, 0, 0, 0, 71702, 3855, 0, 0, 0, 0,
+ 0, 0, 0, 92416, 7132, 0, 92743, 0, 64756, 3798, 6578, 0, 0, 92481, 9774,
+ 1275, 0, 0, 983056, 0, 120515, 7873, 0, 0, 0, 0, 0, 0, 73994, 73992, 0,
+ 0, 0, 41851, 0, 41846, 126485, 92337, 7633, 41849, 68385, 70726, 3224, 0,
+ 69806, 0, 0, 0, 1510, 68129, 0, 0, 0, 0, 12109, 0, 0, 0, 0, 0, 78377,
+ 1910, 8671, 78374, 127118, 70290, 0, 0, 0, 2654, 7893, 0, 0, 0, 72394, 0,
+ 67394, 0, 118970, 70066, 78372, 78371, 78370, 78369, 78368, 0, 0, 0,
+ 1733, 0, 2568, 0, 0, 0, 0, 41486, 0, 127839, 7116, 0, 0, 0, 7185, 0, 0,
+ 0, 0, 0, 120575, 120829, 0, 0, 0, 0, 92489, 0, 0, 0, 70022, 7171, 0, 340,
+ 0, 0, 72980, 0, 128535, 0, 124979, 94073, 0, 0, 0, 11392, 92509, 0, 0, 0,
+ 0, 0, 0, 0, 100632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11948, 0, 6999, 617,
+ 983806, 0, 3675, 10600, 0, 0, 74616, 2617, 0, 0, 0, 128446, 0, 0, 8630,
+ 194771, 7288, 983809, 5545, 983799, 2586, 0, 0, 73123, 983832, 0, 0, 0,
+ 70847, 0, 0, 0, 0, 11195, 71708, 0, 7835, 70040, 0, 0, 92285, 0, 0,
+ 72973, 0, 0, 100852, 71118, 10029, 983166, 0, 0, 70033, 124978, 0, 0,
+ 194782, 0, 0, 118975, 0, 0, 3903, 100893, 983839, 0, 120555, 0, 93036,
+ 110645, 0, 983565, 0, 0, 194773, 0, 0, 0, 127238, 983803, 100919, 0,
+ 100918, 64752, 0, 983138, 100920, 0, 43045, 100904, 0, 0, 0, 66394, 7128,
+ 0, 0, 0, 0, 0, 43044, 2604, 0, 100851, 43046, 121421, 69985, 11768,
+ 43043, 10470, 0, 7122, 194789, 4390, 454, 41397, 194792, 0, 78762, 0, 0,
+ 120576, 64572, 0, 68091, 2394, 2575, 113749, 0, 0, 74802, 100913, 129280,
+ 0, 0, 11989, 0, 0, 128856, 0, 0, 8249, 128172, 0, 0, 6640, 74806, 2598,
+ 513, 0, 6586, 127521, 129301, 120710, 65008, 0, 0, 92515, 0, 194795,
+ 66755, 0, 126585, 0, 43152, 78637, 0, 194797, 0, 69893, 6582, 0, 0,
+ 12839, 0, 0, 0, 0, 2444, 128759, 66620, 0, 0, 0, 0, 69894, 0, 0, 0, 0,
+ 4238, 11071, 9459, 68437, 78140, 78139, 0, 10079, 0, 0, 0, 0, 0, 11907,
+ 43928, 0, 0, 0, 0, 92490, 43929, 0, 43926, 64498, 0, 9506, 6978, 126234,
+ 0, 0, 0, 0, 43934, 0, 1122, 65564, 0, 71055, 0, 0, 1920, 0, 43930, 827,
+ 0, 0, 0, 0, 6577, 1304, 64733, 0, 10606, 0, 0, 0, 9329, 92997, 9239,
+ 74422, 0, 129373, 1222, 11076, 0, 69229, 43615, 8262, 72280, 64627,
+ 19909, 983554, 72279, 0, 287, 0, 233, 0, 0, 42816, 0, 0, 65140, 128158,
+ 8830, 0, 0, 10524, 41175, 125033, 72294, 0, 5296, 0, 127559, 0, 0, 0,
+ 127154, 74858, 6516, 6515, 6514, 6513, 6512, 0, 70870, 0, 0, 0, 12122,
+ 92462, 100868, 43976, 1785, 92507, 0, 0, 917771, 5138, 0, 0, 0, 100884,
+ 0, 0, 0, 0, 0, 5134, 69980, 322, 4643, 5132, 0, 194942, 0, 5143, 0,
+ 72309, 119628, 0, 0, 72112, 0, 129964, 0, 0, 0, 0, 0, 0, 73097, 0, 0, 0,
+ 127923, 0, 0, 0, 0, 0, 3234, 0, 100886, 0, 100889, 118924, 0, 0, 100875,
+ 68231, 74489, 100872, 120746, 0, 100876, 0, 12714, 0, 64585, 93775, 0, 0,
+ 0, 129428, 0, 11027, 0, 10059, 0, 64524, 9767, 789, 1749, 0, 66766,
+ 983991, 320, 0, 0, 0, 3049, 0, 6471, 0, 74479, 9925, 127356, 127355,
+ 127358, 4960, 5549, 127359, 127346, 127345, 127348, 5418, 127350, 3351,
+ 120892, 127351, 10610, 5414, 0, 0, 4286, 5421, 127344, 67867, 0, 127794,
+ 0, 6653, 0, 0, 64510, 0, 41868, 0, 128823, 0, 0, 11613, 70737, 12603,
+ 7131, 11108, 4566, 0, 0, 0, 0, 0, 124938, 127369, 0, 0, 5200, 0, 0, 0,
+ 9183, 127361, 74458, 73075, 395, 5482, 1376, 4349, 0, 0, 5196, 0, 6113,
+ 42009, 5205, 0, 120530, 0, 118973, 70467, 0, 0, 129691, 0, 9126, 70498,
+ 0, 0, 0, 0, 0, 3203, 192, 0, 3385, 120785, 128620, 5383, 0, 0, 0, 5738,
+ 69449, 3336, 0, 5361, 9633, 0, 0, 0, 0, 8581, 0, 1260, 3149, 5359, 12962,
+ 74955, 10441, 5357, 0, 0, 0, 5364, 0, 11431, 0, 9101, 0, 0, 0, 0, 78378,
+ 121155, 42917, 0, 129179, 0, 0, 0, 43360, 78385, 78384, 78383, 78382,
+ 78381, 78380, 78379, 9319, 7097, 0, 127748, 0, 0, 0, 120632, 0, 71205, 0,
+ 0, 0, 1720, 0, 0, 0, 8622, 0, 70430, 68772, 0, 0, 0, 73084, 0, 0, 11921,
+ 0, 11769, 68782, 0, 0, 0, 0, 194571, 41586, 0, 0, 0, 3356, 194572, 64709,
+ 194575, 0, 7134, 0, 78389, 0, 677, 0, 0, 0, 129474, 68747, 0, 68751,
+ 3349, 74125, 0, 8927, 0, 0, 0, 0, 0, 0, 0, 6806, 0, 10190, 68755, 0, 0,
+ 0, 0, 0, 0, 0, 7113, 7586, 0, 10852, 0, 0, 4606, 0, 0, 70084, 0, 0, 1046,
+ 7124, 121192, 68753, 0, 5171, 65539, 0, 0, 0, 42394, 0, 74849, 127823, 0,
+ 5169, 11935, 0, 0, 3175, 0, 1537, 0, 5176, 8905, 4136, 4871, 78388, 0, 0,
+ 0, 0, 1128, 0, 0, 0, 74066, 0, 73069, 0, 0, 3662, 113767, 3378, 0, 71298,
+ 0, 127995, 6320, 71302, 983162, 10163, 0, 5165, 5126, 0, 66902, 41389, 0,
+ 71368, 3374, 113740, 0, 7119, 0, 0, 3507, 0, 7629, 6848, 19925, 0, 68463,
+ 183, 127208, 127209, 70811, 10636, 0, 128465, 0, 0, 78772, 0, 0, 0,
+ 78768, 6580, 4332, 123584, 0, 10726, 66686, 127203, 127204, 127205,
+ 127206, 0, 70813, 127201, 127202, 0, 0, 5448, 41058, 5446, 0, 0, 71369,
+ 5442, 7135, 0, 0, 5451, 0, 78470, 0, 0, 0, 0, 11243, 10859, 65867, 10345,
+ 10409, 123606, 0, 0, 129077, 42181, 0, 0, 2060, 0, 7111, 0, 0, 0, 0,
+ 72741, 0, 205, 0, 72346, 93771, 0, 9862, 6588, 43257, 0, 0, 0, 5505,
+ 93789, 5503, 65376, 0, 7125, 9819, 0, 0, 0, 5507, 12044, 194567, 0, 0, 0,
+ 7109, 0, 0, 7911, 10329, 10393, 8991, 125104, 69778, 11133, 129619, 8550,
+ 0, 5592, 2919, 0, 0, 5595, 0, 0, 4367, 0, 0, 5591, 41060, 5594, 0, 0,
+ 13142, 5590, 0, 72274, 118909, 75069, 123586, 9731, 71225, 64633, 0, 0,
+ 71217, 121361, 71227, 0, 0, 0, 0, 7137, 0, 0, 0, 10551, 10710, 0, 0, 0,
+ 120570, 0, 92364, 9936, 3348, 0, 0, 1444, 119058, 0, 74206, 983106, 0,
+ 1442, 129080, 0, 120959, 0, 0, 0, 0, 0, 0, 0, 3334, 73068, 118803, 0, 0,
+ 71219, 69770, 1651, 0, 8861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43626, 0,
+ 0, 3344, 0, 0, 12920, 0, 0, 0, 71853, 3438, 128711, 0, 0, 0, 0, 129068,
+ 0, 0, 65117, 0, 0, 0, 0, 66366, 128915, 0, 69772, 0, 0, 0, 0, 4973, 8784,
+ 0, 0, 0, 0, 0, 0, 0, 125198, 983283, 0, 0, 66413, 0, 0, 0, 0, 0, 9243,
+ 2464, 0, 0, 3372, 0, 0, 0, 70364, 7121, 0, 0, 0, 92163, 0, 0, 0, 0, 0, 0,
+ 0, 3354, 0, 0, 983103, 101233, 0, 3876, 0, 127983, 0, 43696, 43380, 0,
+ 74240, 0, 0, 0, 983966, 75074, 6589, 0, 0, 120993, 0, 0, 69609, 0,
+ 121210, 0, 10630, 71960, 0, 121293, 0, 0, 121287, 917942, 121337, 121215,
+ 0, 0, 0, 0, 0, 917940, 3366, 0, 917938, 0, 0, 0, 71062, 0, 121197, 0,
+ 6925, 71856, 0, 917929, 66780, 66274, 0, 72768, 0, 917930, 129482, 11138,
+ 0, 6754, 7118, 0, 64672, 65296, 0, 118957, 0, 0, 12296, 68457, 121320, 0,
+ 5282, 0, 72278, 0, 0, 0, 0, 0, 0, 66355, 0, 0, 68073, 64343, 0, 92744,
+ 195058, 195029, 0, 0, 195056, 195027, 0, 0, 128814, 195025, 6584, 195026,
+ 10657, 0, 74544, 0, 1200, 12243, 92269, 195062, 0, 129300, 11545, 0,
+ 120493, 3343, 4424, 11047, 0, 69863, 3896, 0, 0, 2947, 0, 0, 42221, 0,
+ 68139, 13059, 7942, 0, 3381, 0, 0, 0, 0, 0, 0, 78235, 0, 0, 0, 7044,
+ 65800, 78236, 0, 7045, 7175, 7047, 127884, 11791, 0, 0, 3881, 0, 0,
+ 127395, 0, 0, 67075, 7106, 72000, 0, 0, 74211, 41897, 92513, 0, 73040,
+ 66745, 0, 0, 0, 0, 121245, 0, 64354, 73083, 8777, 0, 129108, 8884, 2385,
+ 73067, 92450, 0, 0, 0, 42027, 12114, 0, 0, 64936, 0, 0, 0, 0, 0, 126605,
+ 0, 0, 0, 0, 73064, 0, 0, 0, 0, 0, 0, 0, 73057, 0, 123587, 0, 0, 0, 0, 0,
+ 70803, 0, 0, 124953, 0, 0, 0, 7048, 11087, 123600, 92536, 7043, 9600, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 42050, 0, 55289, 0, 0, 657, 0, 195054, 4461,
+ 92903, 0, 0, 126490, 0, 4468, 0, 0, 0, 4456, 73070, 10720, 123588, 0,
+ 127520, 0, 0, 0, 195046, 260, 7714, 74163, 2045, 0, 65064, 4466, 0, 0,
+ 128087, 0, 41403, 0, 0, 0, 41406, 120692, 0, 0, 73939, 0, 0, 0, 41404,
+ 1165, 0, 4451, 13087, 0, 11258, 0, 73855, 0, 43014, 5439, 12061, 74586,
+ 3375, 128869, 0, 0, 0, 0, 0, 0, 0, 113823, 67078, 0, 67079, 0, 0, 0, 0,
+ 68459, 0, 0, 0, 0, 0, 0, 7280, 0, 0, 0, 4868, 8297, 0, 0, 42791, 0,
+ 66737, 66739, 0, 0, 5182, 0, 0, 72764, 0, 4465, 0, 12135, 0, 4464, 0, 0,
+ 977, 4458, 43827, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 92240, 0, 64443,
+ 126995, 73078, 129525, 0, 0, 0, 43026, 7612, 119591, 64413, 0, 0, 0, 0,
+ 0, 0, 0, 0, 123622, 0, 119160, 10204, 127947, 73063, 0, 0, 127236, 0,
+ 68746, 0, 8852, 0, 0, 0, 0, 128427, 123597, 7932, 0, 128463, 0, 0, 0, 0,
+ 0, 0, 0, 74893, 0, 0, 73095, 0, 8650, 0, 0, 0, 69900, 118872, 0, 70868,
+ 0, 6719, 0, 0, 0, 72836, 0, 0, 118991, 0, 123594, 73815, 4420, 0, 10583,
+ 7760, 0, 0, 128752, 71711, 0, 128407, 0, 0, 0, 9066, 0, 74795, 0, 0, 0,
+ 0, 0, 0, 0, 42825, 41854, 5304, 0, 124942, 6919, 8619, 0, 10038, 66454,
+ 9592, 129049, 0, 0, 110771, 110777, 110772, 0, 0, 0, 0, 0, 78498, 110773,
+ 43624, 0, 7779, 0, 0, 9479, 78493, 0, 0, 2224, 0, 0, 0, 0, 0, 42378,
+ 3368, 0, 66804, 7697, 69237, 0, 2030, 0, 68236, 8370, 0, 127961, 0, 0,
+ 983350, 127903, 983348, 983347, 5174, 42831, 983344, 70439, 983342, 8881,
+ 119047, 0, 70433, 0, 0, 0, 0, 0, 0, 9576, 0, 3347, 4160, 5154, 0, 3794,
+ 0, 0, 0, 0, 0, 127916, 73073, 8381, 4572, 69564, 126101, 0, 0, 0, 0, 0,
+ 0, 0, 92283, 0, 0, 5799, 983339, 70100, 983337, 983336, 983335, 43031,
+ 64425, 65128, 983331, 0, 73059, 0, 68616, 0, 0, 0, 0, 119826, 0, 0,
+ 123604, 0, 0, 283, 68665, 0, 532, 0, 0, 983808, 0, 0, 3370, 73077,
+ 119132, 5443, 71431, 0, 0, 0, 0, 0, 2298, 0, 0, 0, 983330, 983329,
+ 983328, 983327, 7144, 983325, 119600, 983323, 983322, 983321, 0, 78816,
+ 128833, 0, 0, 0, 0, 0, 0, 0, 0, 73088, 0, 123592, 983933, 0, 0, 0, 0,
+ 5186, 7360, 127837, 0, 12108, 0, 65124, 0, 0, 0, 6326, 43344, 0, 0,
+ 42562, 0, 0, 0, 983320, 65495, 983318, 101066, 983316, 101065, 983314,
+ 65490, 983312, 125034, 0, 101070, 0, 55245, 128927, 1630, 128232, 65483,
+ 0, 0, 0, 65476, 0, 0, 119214, 9283, 10183, 0, 0, 65499, 0, 64593, 66758,
+ 3376, 0, 0, 0, 101077, 43872, 12940, 0, 0, 78587, 101078, 5957, 0, 8926,
+ 983310, 983309, 983308, 10745, 10174, 983305, 113793, 983303, 983302,
+ 983301, 0, 123593, 5056, 0, 0, 0, 120773, 0, 9812, 0, 4460, 127792,
+ 73066, 0, 128038, 0, 123608, 0, 64278, 0, 0, 0, 66760, 0, 0, 70122, 0, 0,
+ 917627, 0, 73823, 101071, 127922, 2276, 0, 42579, 0, 983300, 983299,
+ 127831, 983297, 983296, 983295, 983294, 983293, 74207, 121255, 10482,
+ 12863, 73002, 2412, 0, 9522, 0, 983887, 120674, 101059, 3384, 101058,
+ 10702, 830, 0, 128166, 0, 8451, 0, 0, 121380, 69739, 128957, 0, 0, 0, 0,
+ 0, 0, 0, 4243, 92454, 73093, 0, 0, 4441, 0, 983290, 983289, 66618,
+ 983287, 125141, 411, 983284, 68068, 983282, 4056, 983894, 0, 92666, 0,
+ 983897, 983949, 0, 0, 3364, 42265, 64437, 0, 118816, 0, 9684, 216, 0,
+ 1401, 0, 0, 0, 0, 0, 0, 0, 11126, 5768, 3191, 0, 0, 0, 0, 0, 0, 65895, 0,
+ 0, 3338, 73935, 983278, 983277, 983276, 129605, 983274, 983273, 2794,
+ 8807, 0, 0, 110720, 0, 8312, 0, 110718, 11953, 11662, 0, 0, 0, 0, 9534,
+ 66767, 129040, 0, 11113, 0, 0, 73082, 0, 981, 0, 4330, 119244, 120536,
+ 1824, 0, 0, 7034, 41683, 123166, 0, 73754, 0, 0, 74478, 128259, 983268,
+ 983255, 983254, 43831, 983252, 66752, 983250, 983249, 0, 70288, 65343, 0,
+ 0, 43225, 0, 0, 0, 0, 126129, 0, 128608, 0, 0, 0, 120726, 0, 983833,
+ 11746, 0, 5216, 0, 0, 0, 0, 3468, 127149, 9230, 65942, 0, 0, 5803,
+ 120677, 0, 0, 13124, 0, 0, 0, 42843, 0, 0, 0, 66753, 11739, 128318, 0,
+ 128444, 0, 0, 0, 12448, 0, 121441, 13057, 73852, 124994, 0, 0, 0, 0, 0,
+ 0, 126612, 0, 68903, 0, 129470, 0, 917992, 0, 0, 0, 0, 0, 0, 0, 92457, 0,
+ 0, 0, 0, 0, 0, 0, 0, 125078, 0, 0, 0, 10970, 92208, 0, 0, 0, 19944, 0,
+ 9009, 8551, 0, 0, 0, 7575, 0, 0, 128899, 0, 129609, 78847, 0, 78846, 0,
+ 0, 69256, 0, 0, 0, 0, 9775, 100682, 129191, 119052, 68629, 194703, 0, 0,
+ 78850, 92880, 0, 0, 0, 0, 0, 0, 0, 71273, 6184, 41540, 3303, 66182,
+ 11786, 66180, 66203, 3422, 0, 68290, 43007, 4478, 66178, 0, 0, 126216, 0,
+ 4477, 0, 69608, 66184, 66183, 66204, 66194, 0, 66198, 41880, 66188,
+ 66197, 78148, 66195, 66190, 66191, 41111, 66189, 73788, 7788, 0, 0, 0, 0,
+ 0, 2221, 78163, 6535, 78161, 78162, 430, 78160, 78156, 78158, 0, 0, 4945,
+ 0, 4950, 0, 78165, 0, 67118, 0, 5964, 12908, 0, 0, 0, 74477, 83390, 0,
+ 4949, 0, 443, 0, 4944, 5467, 119603, 983260, 0, 9364, 0, 119148, 4946, 0,
+ 3788, 126106, 983699, 0, 120847, 129858, 74441, 0, 0, 12072, 92248, 0,
+ 983689, 0, 128676, 12091, 0, 0, 0, 4673, 0, 4678, 0, 0, 65059, 43860, 0,
+ 0, 0, 128151, 1199, 0, 8356, 0, 0, 4677, 0, 0, 0, 4672, 78173, 78175,
+ 78171, 78172, 72255, 78170, 78166, 4674, 128450, 194944, 0, 124970, 0,
+ 119579, 0, 129919, 1855, 0, 0, 127806, 0, 0, 68912, 72323, 0, 12988,
+ 121000, 0, 0, 0, 4654, 6840, 983427, 0, 73993, 0, 4649, 65209, 983889,
+ 93839, 4648, 0, 121169, 983431, 126231, 983422, 66846, 7828, 4650,
+ 983421, 72879, 0, 4653, 7822, 0, 0, 43187, 0, 983586, 6821, 0, 0, 0, 0,
+ 0, 0, 66756, 983428, 0, 0, 0, 8547, 0, 42165, 0, 119228, 6836, 0, 0,
+ 4662, 0, 0, 0, 9146, 599, 4657, 0, 120754, 0, 4656, 0, 0, 7811, 40994, 0,
+ 6414, 5967, 4658, 3725, 0, 5814, 4661, 127760, 194961, 0, 0, 64904, 0,
+ 10833, 0, 0, 4867, 128717, 0, 11459, 3054, 0, 40996, 0, 7605, 4622, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 19926, 0, 0, 65307, 4617, 0, 0, 0, 4616, 10518, 0,
+ 127160, 0, 5958, 0, 983444, 4618, 0, 983437, 120675, 4621, 0, 983439,
+ 522, 125213, 11139, 65803, 194972, 0, 12201, 6135, 121060, 983420, 0,
+ 983093, 0, 983418, 983411, 983432, 4638, 983416, 0, 78242, 5965, 78240,
+ 66569, 68646, 0, 983450, 74392, 5335, 0, 0, 4633, 0, 119045, 983446,
+ 4632, 0, 5542, 5333, 0, 983423, 68648, 5331, 4634, 0, 0, 5338, 4637, 0,
+ 0, 43477, 0, 42493, 0, 42361, 0, 0, 73853, 0, 0, 0, 74204, 11343, 0,
+ 10358, 10422, 4758, 0, 1608, 5252, 0, 0, 4753, 78239, 11344, 78237, 0,
+ 5231, 74384, 0, 0, 0, 0, 0, 0, 0, 71991, 5229, 4757, 0, 0, 5227, 4752, 0,
+ 65235, 5234, 73044, 0, 0, 0, 0, 0, 0, 7460, 0, 917936, 0, 0, 74760,
+ 65189, 0, 92230, 0, 0, 5574, 0, 0, 65139, 5577, 0, 0, 118871, 68641,
+ 8965, 7635, 0, 5316, 70021, 5314, 74555, 5572, 0, 5312, 0, 5525, 5330,
+ 5319, 68292, 0, 65066, 0, 0, 983491, 0, 0, 127851, 0, 74851, 0, 0, 64609,
+ 0, 0, 128593, 0, 129339, 0, 8632, 0, 0, 0, 195012, 5735, 195013, 1692,
+ 118792, 4610, 0, 4305, 0, 4609, 43478, 4614, 0, 0, 5287, 5309, 5285, 0,
+ 5961, 4647, 5283, 10743, 0, 71889, 601, 4613, 0, 0, 9208, 4608, 74044,
+ 71107, 5190, 0, 0, 92410, 43965, 2265, 0, 0, 0, 0, 0, 0, 0, 129953, 0, 0,
+ 5960, 0, 8992, 65293, 0, 1782, 0, 0, 0, 0, 0, 5501, 0, 42508, 69759,
+ 120749, 0, 0, 195023, 983919, 43900, 128325, 0, 68134, 111180, 74209, 0,
+ 64740, 0, 0, 0, 983916, 3767, 5737, 0, 4865, 0, 5740, 0, 5736, 7724, 0,
+ 7193, 0, 0, 5739, 0, 4866, 0, 0, 0, 4869, 67093, 0, 0, 128514, 6650,
+ 983483, 0, 983474, 78376, 4870, 0, 68661, 6716, 983473, 68667, 69786,
+ 68676, 0, 10122, 4864, 66568, 0, 0, 0, 9603, 68652, 126213, 42734, 745,
+ 0, 0, 0, 4777, 0, 917925, 68631, 42775, 68196, 0, 0, 0, 0, 5966, 0, 4778,
+ 127890, 0, 0, 4781, 127196, 64407, 0, 74132, 8577, 71221, 0, 71223, 0,
+ 4782, 0, 0, 120757, 68618, 43472, 43056, 68622, 0, 92986, 4776, 0, 11492,
+ 0, 0, 13176, 0, 0, 0, 0, 0, 0, 0, 4849, 8242, 9561, 73922, 0, 0, 0, 0,
+ 5963, 0, 125201, 0, 4850, 72121, 0, 590, 4853, 0, 4854, 0, 5164, 0, 1605,
+ 5124, 0, 111165, 0, 8471, 0, 111164, 12445, 3785, 0, 111162, 0, 0, 4848,
+ 2530, 0, 2068, 1964, 0, 0, 10796, 0, 0, 0, 0, 0, 4794, 0, 0, 0, 4797,
+ 68040, 111152, 43465, 4792, 0, 0, 0, 0, 0, 110842, 983101, 92963, 0, 0,
+ 0, 4221, 92360, 118869, 0, 0, 0, 70042, 0, 0, 0, 0, 10739, 65090, 0,
+ 119327, 126541, 0, 0, 119326, 0, 0, 4937, 43376, 0, 0, 10597, 983440,
+ 11722, 9248, 129566, 42879, 11725, 0, 0, 7579, 11141, 73958, 4941, 0,
+ 917538, 9140, 4936, 5261, 0, 0, 72298, 0, 4942, 0, 4938, 0, 0, 5259,
+ 9369, 983429, 111182, 5257, 0, 6844, 4964, 5264, 0, 0, 0, 41411, 0,
+ 121473, 73684, 128233, 9482, 4873, 41991, 64707, 42526, 127989, 64480,
+ 64725, 983442, 0, 0, 0, 0, 0, 0, 73043, 0, 389, 10893, 7521, 0, 4872,
+ 5463, 0, 3125, 111124, 0, 4878, 5459, 4604, 0, 0, 5465, 0, 0, 0, 0, 9563,
+ 0, 0, 128419, 125273, 82963, 0, 0, 0, 67735, 0, 0, 0, 0, 0, 78179, 0,
+ 917838, 0, 917833, 0, 917836, 0, 0, 3082, 0, 0, 0, 0, 0, 7079, 5856,
+ 917842, 5163, 0, 0, 1817, 66724, 0, 0, 10564, 7763, 13077, 0, 0, 68140,
+ 111137, 0, 0, 0, 111139, 0, 111149, 121457, 0, 0, 0, 983189, 73081, 0, 0,
+ 983117, 983077, 0, 42156, 0, 0, 0, 983080, 0, 0, 0, 119254, 120693, 0,
+ 69386, 0, 118881, 0, 78189, 0, 78186, 78188, 0, 0, 0, 0, 110877, 0, 3108,
+ 9745, 0, 0, 0, 118825, 0, 0, 0, 0, 0, 10972, 0, 0, 42768, 715, 983113,
+ 121117, 9453, 5348, 10943, 0, 983169, 0, 0, 0, 983153, 0, 0, 11551,
+ 128464, 0, 0, 9051, 0, 71728, 0, 120791, 119523, 0, 6404, 66458, 68376,
+ 11984, 9156, 65222, 74454, 78180, 0, 3128, 4789, 5067, 5066, 0, 4784, 0,
+ 8827, 1146, 5065, 78196, 78192, 78193, 78190, 78191, 5064, 5326, 0, 9450,
+ 5063, 120361, 78200, 78201, 5062, 69733, 74146, 0, 0, 0, 0, 77992, 0,
+ 3933, 0, 0, 12337, 0, 125023, 0, 0, 0, 194759, 0, 0, 82993, 42130, 0,
+ 5151, 917832, 120357, 0, 93980, 0, 7620, 3800, 0, 0, 0, 127952, 0, 0,
+ 4786, 127991, 4185, 0, 128742, 0, 983193, 73978, 0, 4593, 0, 120584, 0,
+ 0, 110715, 10532, 110713, 110714, 110711, 110712, 64759, 1325, 5166,
+ 9888, 0, 5148, 0, 0, 78205, 78206, 64140, 78204, 64131, 3119, 917814, 0,
983433, 917820, 12095, 0, 0, 636, 128002, 0, 983464, 0, 78531, 7836,
42741, 64137, 0, 118969, 0, 92431, 0, 0, 0, 0, 0, 8618, 0, 41384, 0, 0,
- 0, 3937, 12312, 128261, 0, 0, 0, 912, 6349, 4536, 71964, 0, 126594, 0, 0,
- 0, 3935, 120665, 0, 0, 0, 0, 118859, 0, 121116, 0, 0, 12046, 12599, 0, 0,
- 0, 0, 7227, 0, 0, 0, 983066, 0, 0, 0, 113817, 0, 78246, 0, 0, 0, 0, 0,
- 127405, 101531, 0, 101530, 43907, 0, 0, 0, 0, 4644, 8818, 0, 0, 0, 0,
- 93066, 66452, 126081, 1644, 101043, 9658, 43744, 11385, 65947, 983173,
- 43983, 0, 0, 0, 8962, 0, 0, 2466, 42039, 67669, 0, 0, 42117, 100698, 0,
- 0, 0, 0, 43745, 5318, 0, 120498, 0, 0, 0, 7054, 64147, 0, 917804, 68195,
- 6698, 0, 0, 0, 70849, 11981, 12202, 0, 121364, 0, 7059, 11608, 975, 0,
- 65843, 170, 0, 67239, 42708, 0, 0, 6058, 0, 0, 0, 70507, 0, 0, 9818, 0,
- 0, 42106, 0, 983065, 4738, 42105, 7062, 0, 4737, 11779, 4742, 120564,
- 92391, 0, 41374, 41375, 983376, 6715, 12700, 7049, 983374, 0, 0, 0, 4741,
- 42108, 983365, 64159, 4736, 64148, 0, 849, 0, 128247, 983361, 0, 120913,
- 917997, 0, 983379, 9496, 66371, 983403, 983377, 11322, 0, 93008, 3928,
- 983152, 0, 10706, 7198, 0, 4842, 12053, 0, 0, 4841, 0, 4171, 12008,
- 68416, 3923, 1490, 0, 0, 983393, 40972, 5245, 72288, 983395, 126578, 0,
- 4845, 8332, 40974, 0, 4840, 9077, 0, 2408, 72851, 4825, 0, 0, 0, 0,
- 126251, 0, 0, 983353, 0, 983354, 0, 4826, 42440, 0, 0, 1274, 0, 74315, 0,
- 120384, 0, 121200, 0, 0, 0, 4830, 983388, 129044, 0, 0, 119082, 0, 64105,
- 0, 0, 4824, 120397, 0, 0, 1888, 64127, 7861, 125111, 78524, 41836,
- 110613, 10873, 72439, 0, 64098, 12214, 0, 41834, 0, 358, 128120, 41833,
- 11442, 0, 0, 0, 0, 64115, 0, 0, 0, 120721, 119053, 0, 119055, 119054, 0,
- 0, 0, 0, 4017, 12827, 5241, 0, 73042, 41118, 3924, 0, 11366, 0, 0, 0, 0,
- 41116, 69455, 0, 0, 0, 0, 11917, 0, 74000, 4721, 129635, 983918, 0, 0, 0,
- 0, 0, 0, 122907, 0, 128702, 4722, 6816, 124974, 0, 4725, 67099, 4726, 0,
- 129856, 123171, 0, 123194, 0, 0, 0, 4015, 0, 8052, 78766, 0, 0, 128294,
- 0, 0, 4720, 73090, 125003, 0, 0, 1656, 41831, 0, 0, 41843, 0, 0, 1452,
- 13111, 0, 0, 0, 8552, 64113, 41845, 64073, 120354, 0, 0, 120066, 120067,
- 7064, 64070, 9948, 0, 0, 0, 0, 2420, 0, 0, 0, 0, 120052, 120053, 120050,
- 74920, 3938, 120057, 120054, 119249, 120060, 71920, 120058, 120059,
- 120064, 72203, 7955, 64074, 4713, 128196, 983107, 0, 0, 0, 65152, 10198,
- 120044, 120045, 120042, 6713, 4532, 120049, 120046, 120047, 4717, 7046,
- 0, 66450, 4712, 75055, 0, 121085, 0, 8155, 4718, 3942, 4714, 9625, 0,
- 6383, 0, 12006, 0, 0, 0, 0, 0, 65414, 0, 0, 129061, 66437, 66025, 74115,
- 0, 0, 11228, 4809, 0, 92221, 72352, 0, 0, 0, 65405, 129912, 0, 0, 73934,
- 4545, 0, 917566, 0, 4813, 78699, 0, 0, 4808, 0, 0, 65475, 0, 0, 4814,
- 72240, 4810, 0, 0, 68784, 10761, 71249, 3522, 0, 78693, 65404, 0, 0, 0,
- 0, 0, 6691, 70125, 0, 126223, 0, 0, 0, 43858, 129914, 0, 12992, 65407, 0,
- 0, 3919, 0, 0, 0, 0, 0, 0, 12235, 110748, 0, 0, 64091, 68739, 64080, 0,
- 64090, 0, 0, 0, 0, 0, 8454, 0, 0, 983858, 0, 0, 0, 4780, 0, 0, 92764,
- 64621, 6732, 0, 0, 0, 0, 121363, 0, 0, 120817, 6976, 0, 119005, 0, 93809,
- 0, 93808, 0, 12526, 120399, 2315, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 120358,
- 93794, 0, 0, 0, 93810, 0, 2291, 0, 0, 0, 0, 129429, 0, 10799, 0, 0,
- 66372, 0, 4193, 0, 0, 983057, 7998, 0, 0, 0, 0, 2316, 0, 0, 0, 0, 125241,
- 0, 0, 74140, 0, 0, 0, 0, 3762, 93813, 120672, 93820, 0, 0, 0, 70098,
- 3780, 12808, 8163, 983154, 0, 0, 3906, 12349, 0, 8326, 0, 65498, 3763, 0,
- 5618, 0, 3779, 0, 43613, 0, 128007, 0, 0, 0, 0, 280, 0, 126252, 983448,
- 13072, 1894, 0, 0, 65478, 43310, 7231, 0, 11773, 0, 0, 0, 101517, 0, 0,
- 7559, 11652, 10009, 110765, 110766, 110763, 110764, 4470, 110762, 0, 0,
- 983441, 0, 5249, 0, 0, 8756, 0, 0, 41694, 120585, 92349, 0, 0, 0, 69685,
- 983768, 983445, 113794, 0, 6808, 41319, 13125, 66332, 127977, 0, 2290, 0,
- 983413, 0, 0, 3943, 0, 41205, 0, 0, 0, 0, 5352, 0, 0, 41207, 0, 7384,
- 69647, 41204, 0, 41209, 69637, 0, 43607, 0, 0, 5420, 0, 10134, 0, 0,
- 4018, 7150, 0, 0, 0, 0, 0, 129606, 2561, 0, 0, 7148, 12076, 0, 0, 129201,
- 0, 6276, 1706, 0, 0, 7146, 0, 128277, 41819, 74991, 0, 10847, 41822,
- 72248, 860, 0, 0, 0, 69641, 10753, 41820, 126118, 0, 71898, 0, 92617,
- 128567, 0, 0, 43016, 0, 0, 92225, 0, 0, 0, 0, 4022, 0, 0, 110807, 0,
- 41691, 0, 75060, 0, 0, 65292, 0, 110812, 0, 3911, 110811, 110808, 110809,
- 0, 125191, 7000, 3904, 118997, 72261, 0, 0, 0, 13123, 10846, 0, 0, 0, 0,
- 0, 74082, 0, 0, 0, 0, 3777, 128329, 0, 9636, 71726, 0, 0, 9367, 593, 0,
- 3999, 0, 41713, 0, 0, 67677, 0, 0, 0, 9763, 120280, 120283, 12347, 124,
- 12981, 41127, 92527, 0, 0, 0, 0, 0, 43987, 0, 0, 1769, 41715, 2463, 2151,
- 0, 0, 71222, 1538, 93044, 0, 0, 0, 7795, 120300, 0, 92493, 10955, 0, 0,
- 0, 78208, 9498, 78207, 127033, 78210, 120288, 3939, 120290, 120285, 8943,
- 120287, 120286, 120297, 4491, 120299, 42602, 120293, 120292, 120295,
- 120294, 0, 0, 0, 0, 0, 0, 1511, 9324, 0, 0, 0, 0, 0, 64536, 0, 0, 0,
- 124935, 6822, 12862, 0, 0, 42143, 41828, 0, 917629, 70864, 118879, 0, 0,
- 0, 41826, 128413, 0, 0, 13279, 7917, 0, 0, 0, 0, 0, 0, 92332, 0, 0,
- 43515, 0, 0, 0, 4013, 0, 0, 0, 72224, 125266, 0, 68243, 2432, 0, 0, 0, 0,
- 0, 69952, 0, 0, 0, 10949, 0, 0, 0, 0, 0, 0, 0, 128574, 43233, 0, 42517,
- 0, 0, 0, 0, 0, 64468, 119359, 6474, 119358, 43497, 12656, 128122, 119353,
- 0, 1665, 0, 0, 0, 119351, 0, 0, 5256, 0, 0, 0, 2859, 0, 0, 0, 0, 0, 0,
- 128220, 0, 770, 0, 811, 0, 0, 917551, 42244, 64427, 0, 72222, 0, 3895, 0,
- 74341, 12087, 0, 42859, 10193, 3116, 7747, 0, 0, 43496, 0, 0, 0, 0,
- 41877, 0, 65382, 64614, 0, 64296, 0, 6345, 0, 2663, 0, 121234, 0, 0,
- 10150, 0, 64308, 1522, 597, 0, 0, 41201, 64731, 0, 0, 41198, 0, 71483,
- 3092, 0, 0, 4783, 71448, 0, 0, 0, 10812, 0, 0, 0, 3078, 0, 0, 0, 0, 0,
- 71703, 394, 3088, 0, 0, 0, 3991, 0, 129072, 0, 424, 67652, 74927, 0, 0,
- 0, 0, 0, 0, 42231, 2209, 128215, 72983, 0, 41840, 129136, 5344, 1298, 0,
- 13155, 0, 128973, 41838, 0, 8488, 1003, 41837, 0, 0, 0, 48, 0, 0, 8493,
- 0, 0, 0, 65487, 0, 8465, 10332, 13172, 0, 0, 10449, 126989, 127014,
- 69606, 69447, 3984, 129159, 0, 0, 0, 0, 0, 0, 0, 0, 64758, 0, 100947, 0,
- 0, 9096, 0, 0, 9172, 128545, 0, 0, 5955, 67666, 0, 0, 0, 0, 0, 74426,
- 3926, 71734, 0, 8798, 100946, 92165, 0, 0, 120696, 0, 0, 0, 118805,
- 10353, 10417, 0, 0, 0, 128629, 4019, 0, 0, 0, 8219, 68402, 0, 0, 121301,
- 128218, 0, 0, 0, 0, 0, 0, 0, 110625, 42474, 10642, 3909, 9950, 0, 128139,
- 69619, 68678, 92917, 0, 1049, 43517, 65707, 11943, 41806, 0, 68635, 3921,
- 0, 11775, 121352, 69820, 1038, 42303, 9823, 0, 2145, 4008, 68624, 0,
- 121025, 0, 0, 5153, 41805, 0, 0, 763, 9211, 0, 0, 0, 0, 0, 127142, 0, 0,
- 65179, 0, 8621, 0, 118878, 0, 0, 0, 0, 182, 0, 0, 0, 0, 72978, 9058,
- 8489, 0, 71188, 5969, 65909, 10848, 4570, 0, 128614, 4255, 0, 0, 41189,
- 4003, 69785, 68109, 13293, 41192, 0, 0, 42251, 0, 0, 126085, 11287, 6128,
- 121315, 11034, 0, 68207, 0, 65506, 42382, 0, 0, 66872, 9932, 43516, 0,
- 125098, 0, 41814, 0, 71234, 0, 12117, 127040, 127041, 10540, 127043,
- 9063, 78000, 0, 0, 0, 12897, 0, 0, 0, 6065, 0, 0, 0, 8692, 41186, 41816,
- 0, 41818, 41187, 0, 42196, 0, 110690, 110691, 126115, 0, 0, 125235, 4710,
- 0, 5956, 7621, 110641, 92624, 4705, 716, 74918, 110693, 4704, 0, 0,
- 127112, 161, 0, 0, 0, 4706, 0, 0, 0, 4709, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1700, 119223, 0, 0, 128119, 4004, 0, 73071, 69383, 69914, 8506, 128237,
- 0, 126996, 2538, 937, 0, 4734, 0, 0, 0, 0, 0, 4729, 0, 0, 0, 4728, 0,
- 72809, 120644, 0, 8109, 43105, 11249, 4730, 447, 0, 1513, 4733, 0, 0, 0,
- 0, 0, 0, 0, 8565, 2469, 0, 6690, 0, 0, 43439, 78218, 43103, 78217, 2674,
- 0, 11922, 0, 0, 3510, 0, 129368, 0, 5605, 42095, 126572, 0, 9098, 120512,
- 0, 121272, 68891, 74570, 0, 67708, 0, 119346, 0, 5959, 0, 0, 66275,
- 43371, 0, 0, 0, 0, 0, 12769, 69793, 0, 1283, 0, 4779, 0, 3719, 4006, 0,
- 0, 71186, 68204, 124957, 0, 119331, 43028, 65493, 0, 125058, 5962, 65485,
- 92616, 0, 43501, 5827, 0, 120951, 0, 65494, 0, 129365, 0, 0, 43879, 0, 0,
- 0, 0, 983203, 65467, 0, 0, 0, 0, 521, 0, 0, 983909, 0, 0, 483, 7096, 0,
- 0, 928, 0, 0, 0, 0, 92983, 3989, 73972, 0, 0, 0, 0, 12145, 0, 73932, 0,
- 0, 3769, 0, 0, 0, 0, 0, 0, 65290, 92223, 0, 65855, 0, 0, 0, 0, 128811, 0,
- 0, 0, 0, 0, 0, 73838, 0, 0, 13007, 68165, 0, 0, 12661, 7608, 75032,
- 12213, 0, 0, 0, 0, 12195, 4001, 3112, 92647, 0, 7590, 0, 0, 421, 0, 0, 0,
- 4130, 127775, 7595, 42588, 7600, 0, 0, 0, 0, 65851, 42607, 0, 92403,
- 8680, 0, 42134, 0, 0, 2846, 92605, 0, 0, 0, 0, 12979, 0, 0, 92558, 3740,
- 69843, 120437, 0, 120451, 65923, 120435, 0, 120434, 0, 93800, 3118,
- 74265, 93795, 93816, 93823, 93797, 8127, 92912, 93792, 7943, 93821,
- 93799, 10618, 2584, 93793, 0, 0, 9998, 0, 0, 0, 66350, 0, 0, 0, 121374,
- 8279, 128169, 0, 4975, 70075, 0, 0, 1631, 0, 0, 0, 6290, 128994, 66386,
- 0, 64645, 0, 0, 0, 0, 0, 9242, 93807, 93802, 93801, 983264, 93803, 3122,
- 93804, 7793, 0, 0, 0, 0, 12604, 92885, 6615, 67650, 0, 3986, 44025, 0,
- 8912, 0, 7409, 0, 0, 0, 0, 0, 0, 8540, 11498, 0, 0, 0, 0, 0, 13060,
- 120682, 0, 0, 0, 0, 0, 121345, 0, 0, 7020, 120353, 3765, 92881, 0, 1606,
- 120348, 120351, 3093, 110593, 0, 0, 0, 0, 0, 0, 92892, 120337, 69402,
- 120339, 4023, 120333, 120332, 120335, 92250, 120345, 12810, 120347,
- 120346, 4455, 120340, 120343, 120342, 66660, 0, 0, 0, 0, 113720, 13089,
- 74355, 120329, 120328, 42758, 12196, 128429, 0, 0, 0, 0, 128867, 94179,
- 0, 3120, 9797, 0, 0, 11086, 10389, 0, 101025, 4895, 128153, 124941, 4359,
- 0, 0, 3509, 70037, 486, 0, 0, 0, 0, 0, 7004, 0, 0, 0, 0, 4855, 128200, 0,
- 0, 0, 0, 0, 0, 10381, 70839, 0, 0, 0, 0, 125121, 70837, 125070, 129431,
- 983372, 983360, 0, 983359, 0, 120063, 0, 0, 0, 75048, 0, 74900, 0, 0,
- 120978, 12161, 983351, 0, 10339, 0, 0, 0, 0, 0, 0, 0, 43032, 125010, 0,
- 983378, 12671, 11384, 0, 0, 120901, 64797, 0, 5820, 0, 0, 0, 0, 0,
- 120650, 42137, 9893, 8851, 12664, 0, 0, 13192, 0, 41799, 65530, 0, 0,
- 43039, 3114, 0, 0, 0, 0, 0, 926, 0, 72004, 0, 0, 0, 0, 0, 43037, 41798,
- 0, 0, 123214, 41801, 0, 0, 0, 4200, 12699, 8331, 70118, 3091, 92980,
- 66298, 70293, 8360, 0, 78044, 0, 4229, 64543, 126227, 65563, 0, 129310,
- 2861, 43793, 10095, 121428, 9195, 121381, 121132, 0, 129578, 0, 0, 43041,
- 0, 43794, 0, 83167, 0, 43797, 8209, 0, 129132, 12973, 0, 0, 0, 0, 0,
- 121235, 5760, 0, 743, 0, 0, 0, 0, 0, 0, 83170, 128589, 129537, 0, 119063,
- 0, 0, 0, 19919, 0, 64532, 0, 43710, 0, 0, 9483, 71115, 0, 43697, 0, 0,
- 83211, 0, 0, 0, 7247, 0, 0, 0, 0, 0, 113674, 0, 7471, 120823, 128743,
- 12682, 0, 0, 65679, 983143, 0, 0, 83201, 1099, 74241, 0, 10501, 0, 0,
- 113743, 0, 64743, 128476, 67663, 0, 0, 92219, 0, 83197, 64897, 9973,
- 1818, 0, 0, 8272, 127812, 0, 4218, 3087, 0, 127234, 0, 101300, 65181,
- 9954, 10465, 0, 0, 0, 9106, 0, 67406, 0, 0, 0, 0, 43038, 0, 0, 265, 0, 0,
- 0, 0, 0, 0, 69405, 0, 59, 0, 0, 0, 0, 126239, 41810, 0, 126492, 0, 41809,
- 41888, 0, 41795, 0, 42213, 0, 0, 43033, 511, 129413, 0, 13127, 0, 0, 0,
- 0, 111107, 0, 4467, 41812, 41215, 0, 41211, 917783, 4453, 69575, 0,
- 129883, 0, 983407, 41213, 118812, 0, 0, 0, 129730, 41841, 6617, 130041,
- 0, 92995, 462, 0, 10493, 0, 55248, 0, 0, 74471, 6644, 0, 0, 0, 983383,
- 100484, 9581, 67104, 3098, 0, 0, 983410, 125250, 0, 120621, 0, 0, 0,
- 129584, 101011, 0, 118789, 74473, 3755, 64661, 7748, 7235, 3966, 0, 0,
- 127510, 0, 0, 0, 5726, 66456, 42175, 100486, 0, 42212, 92681, 121443,
- 2851, 43017, 0, 121056, 4373, 0, 0, 9587, 0, 6671, 128840, 3100, 0,
- 917790, 0, 0, 0, 917789, 73836, 8190, 12083, 917791, 0, 6689, 64629, 0,
- 0, 0, 4419, 917787, 101017, 0, 69851, 0, 0, 8891, 3080, 0, 2347, 0, 0,
- 8990, 0, 121201, 0, 92528, 249, 0, 0, 69424, 0, 0, 0, 55253, 0, 0, 11173,
- 995, 0, 121047, 119861, 0, 73708, 0, 0, 19945, 0, 558, 983394, 12273, 0,
- 983862, 0, 69912, 120861, 129492, 67274, 94178, 0, 68019, 43030, 3129, 0,
- 2102, 0, 0, 121450, 0, 7725, 0, 11120, 0, 126111, 69246, 0, 0, 0, 41894,
- 0, 41898, 0, 41893, 74921, 128678, 3540, 11848, 0, 73005, 120848, 0, 0,
- 126113, 73959, 0, 0, 0, 120858, 0, 0, 9699, 128656, 41896, 0, 83196,
- 69230, 74951, 0, 72736, 0, 0, 3095, 983670, 11946, 983866, 0, 0, 0, 0, 0,
- 113677, 3672, 119864, 0, 0, 0, 128539, 8890, 93826, 0, 128182, 0, 0, 0,
- 126568, 0, 0, 983617, 9516, 983436, 0, 0, 42220, 0, 4450, 0, 11547,
- 43417, 128542, 356, 0, 0, 0, 0, 64901, 0, 0, 0, 0, 0, 0, 111302, 65940,
- 2541, 71231, 0, 123215, 126470, 3549, 0, 0, 0, 2743, 0, 0, 0, 9097,
- 128896, 43015, 0, 0, 776, 2524, 0, 8573, 100665, 126494, 0, 0, 42694,
- 71122, 8952, 10814, 118818, 0, 43646, 128598, 0, 0, 0, 128380, 100663, 0,
- 65853, 42707, 1897, 93071, 0, 0, 71907, 69410, 0, 125106, 0, 0, 0, 68473,
- 66778, 43573, 92638, 0, 0, 0, 120955, 73986, 0, 0, 43022, 0, 74841, 0,
- 67714, 0, 0, 0, 0, 0, 4553, 0, 0, 0, 0, 0, 19921, 0, 0, 983668, 4567,
- 41891, 0, 983800, 55249, 194663, 0, 194662, 0, 194665, 43042, 121291,
- 1377, 12869, 0, 0, 9250, 0, 0, 0, 0, 125039, 194642, 0, 74995, 0, 194644,
- 0, 0, 101328, 194668, 121166, 0, 70275, 1898, 69556, 0, 0, 802, 0, 0, 0,
- 6648, 0, 2528, 0, 0, 194646, 194625, 101330, 68804, 844, 0, 68824, 0,
- 68818, 194650, 0, 0, 0, 983724, 65464, 0, 0, 0, 0, 83221, 0, 0, 100680,
- 42954, 0, 64371, 70665, 0, 194654, 0, 0, 0, 0, 0, 6196, 6945, 0, 0, 0,
- 120491, 0, 68846, 6210, 0, 70274, 0, 0, 0, 68067, 68834, 194715, 588,
- 9760, 129112, 0, 983704, 128798, 0, 127992, 0, 0, 118905, 0, 0, 92485,
- 110839, 69396, 0, 3394, 70734, 194639, 0, 0, 0, 0, 0, 0, 194656, 7817,
- 1841, 11055, 0, 194979, 194983, 127011, 67403, 194987, 7701, 194998, 0,
- 194995, 1946, 121404, 0, 0, 917631, 0, 0, 10934, 0, 70376, 0, 0, 8071,
- 3538, 0, 2287, 65328, 0, 0, 7614, 0, 0, 0, 12009, 43968, 0, 67852, 0, 0,
- 10841, 123640, 0, 0, 0, 0, 8960, 0, 0, 65317, 128829, 0, 0, 70374, 0, 0,
- 0, 65315, 0, 0, 0, 0, 0, 119621, 0, 11849, 12447, 0, 0, 110741, 0, 0, 0,
- 129976, 42767, 0, 0, 0, 43695, 120520, 11975, 194941, 983443, 0, 2555, 0,
- 128640, 70070, 42936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66714, 0, 0,
- 70076, 65596, 121034, 66710, 67658, 0, 126994, 65338, 7792, 0, 0, 67871,
- 119027, 0, 8233, 43572, 0, 0, 0, 3442, 0, 2841, 12543, 0, 1473, 42820,
- 64329, 127832, 917772, 126126, 7937, 0, 1048, 0, 0, 983924, 0, 3406,
- 1054, 100701, 1040, 65450, 0, 92329, 1069, 917763, 128367, 128940, 0,
- 917765, 0, 983705, 9693, 110873, 0, 0, 0, 983929, 4353, 0, 1059, 127530,
- 0, 0, 0, 127093, 118862, 120500, 10646, 0, 100710, 917762, 70424, 74830,
- 0, 0, 983701, 10221, 100706, 68255, 0, 0, 74346, 119619, 100707, 64945,
- 12921, 0, 0, 0, 0, 0, 983776, 43020, 0, 0, 74254, 0, 983766, 0, 0,
- 983773, 0, 71954, 0, 0, 0, 0, 0, 0, 120503, 70663, 0, 2755, 0, 0, 0,
- 4857, 0, 4428, 0, 0, 983772, 0, 0, 0, 43842, 0, 122899, 0, 7978, 0,
- 70392, 127080, 11924, 43812, 0, 65015, 0, 563, 68340, 0, 12798, 0,
- 100727, 0, 0, 0, 74110, 0, 94051, 0, 694, 0, 9876, 0, 119168, 0, 0, 0,
- 92361, 0, 0, 7229, 0, 0, 0, 0, 64811, 0, 119087, 126478, 0, 7381, 0,
- 2525, 4852, 11586, 68465, 41605, 126089, 0, 11582, 7151, 10155, 92578,
- 188, 0, 11592, 0, 74015, 0, 0, 4858, 0, 0, 0, 4861, 0, 2786, 121431,
- 4856, 8051, 0, 119609, 0, 113797, 71133, 0, 78448, 0, 0, 67842, 68084, 0,
- 0, 0, 0, 0, 10234, 5843, 0, 71865, 66728, 0, 3157, 0, 0, 75035, 72788,
- 983731, 0, 10822, 5149, 129517, 0, 65142, 129454, 4565, 0, 0, 0, 12657,
- 0, 0, 386, 0, 8834, 120974, 0, 43574, 0, 0, 0, 70113, 7220, 11839,
- 124984, 74883, 194752, 0, 65241, 74503, 8160, 0, 194753, 0, 0, 0, 0, 0,
- 121265, 6847, 13303, 0, 0, 194755, 0, 118865, 0, 194761, 0, 0, 74505, 0,
- 0, 0, 100518, 194721, 8780, 100512, 0, 68745, 110626, 66697, 0, 2672,
- 3735, 983641, 0, 68752, 11205, 10724, 41202, 0, 100714, 0, 0, 0, 0,
- 194765, 3842, 0, 78183, 12442, 78182, 9791, 78181, 0, 42516, 67730,
- 64821, 195061, 78178, 0, 78464, 119219, 78465, 127466, 194690, 195063, 0,
- 0, 0, 0, 78540, 78541, 78538, 1962, 78490, 78476, 65930, 11660, 0, 2072,
- 0, 0, 78544, 194704, 78542, 10669, 110859, 110860, 110857, 110858,
- 129749, 110856, 4105, 0, 194699, 0, 0, 0, 13148, 195068, 78479, 9226, 0,
- 0, 10765, 127486, 71919, 121218, 195050, 0, 195041, 0, 0, 0, 0, 0, 0,
- 92312, 7886, 0, 6682, 0, 6680, 195042, 126473, 195052, 6679, 74412, 0,
- 72206, 74421, 66281, 0, 0, 127478, 0, 0, 0, 6681, 0, 12693, 0, 0, 0, 0,
- 0, 65442, 129055, 0, 9989, 74415, 194673, 0, 0, 983769, 0, 0, 0, 0, 7042,
- 127240, 119026, 7968, 0, 983749, 194741, 194736, 983774, 0, 69889, 74389,
- 128696, 0, 0, 128979, 5781, 0, 78199, 0, 0, 11091, 0, 2719, 0, 0, 0,
- 64495, 0, 0, 0, 65169, 42845, 0, 128551, 983747, 7505, 72435, 0, 0, 0,
- 917855, 66670, 0, 983690, 0, 0, 0, 7902, 0, 65265, 0, 0, 0, 0, 0, 0, 0,
- 12994, 0, 10828, 983955, 0, 4307, 3482, 0, 0, 72389, 0, 64299, 74573,
- 41194, 7343, 0, 0, 41195, 0, 8169, 0, 8841, 66770, 516, 72981, 41197,
- 119051, 34, 128850, 120186, 11504, 1612, 120187, 120182, 120181, 120184,
- 12001, 120178, 120177, 120180, 120179, 71966, 120173, 7749, 120175, 0,
- 1758, 0, 10667, 0, 120197, 0, 1935, 11517, 120193, 120196, 120195,
- 120190, 120189, 120192, 120191, 1217, 64702, 128075, 825, 0, 0, 0, 0,
- 66748, 0, 11050, 0, 123187, 0, 0, 74554, 0, 0, 8677, 123188, 11313,
- 123185, 3403, 0, 123186, 64364, 92683, 0, 0, 0, 0, 123189, 0, 0, 983861,
- 0, 69408, 41850, 0, 3433, 127965, 0, 1594, 65607, 0, 66392, 0, 129291,
- 74565, 41353, 125119, 0, 0, 0, 0, 918, 127280, 41351, 0, 0, 12140, 0,
- 12668, 72395, 0, 128753, 0, 127302, 0, 127288, 129497, 127235, 573, 0, 0,
- 11417, 0, 127283, 0, 0, 0, 72410, 0, 11482, 0, 3981, 74345, 0, 0, 0, 0,
- 0, 0, 125238, 0, 0, 42195, 0, 123190, 0, 64602, 0, 0, 121366, 0, 121061,
- 128690, 0, 8423, 0, 448, 66907, 9717, 0, 0, 0, 0, 0, 0, 0, 71910, 129898,
- 0, 0, 120679, 65013, 78169, 0, 72390, 0, 0, 127917, 0, 74892, 0, 0,
- 127798, 0, 0, 71252, 0, 0, 0, 12197, 125074, 0, 121447, 0, 0, 0, 0, 0, 0,
- 0, 74563, 64828, 11419, 0, 8592, 0, 0, 0, 11381, 0, 0, 74529, 0, 0,
- 83254, 0, 72796, 0, 83257, 0, 0, 0, 129437, 65672, 0, 0, 0, 0, 0, 0, 0,
- 0, 9505, 0, 0, 756, 0, 125243, 100358, 110852, 7261, 0, 0, 0, 0, 0,
- 64401, 65830, 41365, 0, 0, 0, 127834, 0, 0, 0, 0, 0, 74626, 123155,
- 11578, 0, 0, 0, 0, 0, 0, 74568, 0, 113684, 1794, 68310, 120218, 120219,
- 120220, 120221, 120222, 120223, 3617, 120011, 64886, 94061, 78202,
- 120213, 120214, 10225, 983060, 0, 65223, 983058, 0, 0, 4452, 127779, 0,
- 0, 0, 0, 0, 0, 11425, 0, 0, 1231, 0, 0, 0, 0, 8192, 0, 0, 0, 10616, 8694,
- 0, 68867, 128332, 123595, 120200, 120201, 120202, 120203, 9878, 120205,
- 119626, 120207, 0, 8799, 42131, 0, 127163, 0, 120198, 120199, 837,
- 120015, 72384, 0, 983817, 0, 11427, 0, 78154, 0, 70171, 0, 78150, 42606,
- 0, 119615, 78147, 64637, 78146, 43060, 78145, 125009, 3392, 0, 194783,
- 119067, 119650, 65468, 43498, 126083, 0, 0, 0, 194928, 194937, 194938,
- 64681, 194930, 83264, 92451, 0, 194955, 83262, 983732, 8973, 0, 194967,
- 70177, 194968, 0, 4800, 195018, 0, 0, 11820, 70151, 0, 0, 4802, 4111,
- 111268, 0, 4805, 127308, 68193, 7885, 121220, 0, 0, 0, 4767, 0, 0, 0, 0,
- 0, 125234, 100366, 43453, 0, 41340, 0, 0, 10005, 65856, 41333, 0, 9518,
- 0, 0, 0, 42520, 100850, 0, 0, 917562, 100506, 0, 0, 0, 0, 0, 0, 9167,
- 42151, 124958, 0, 2026, 100848, 0, 0, 100534, 12768, 0, 7582, 0, 0, 0, 0,
- 129557, 0, 120539, 68879, 0, 43547, 119992, 8546, 126071, 78520, 7604,
- 78518, 78519, 78514, 78517, 78511, 78512, 73802, 128140, 0, 6708, 10535,
- 0, 68218, 55274, 68221, 92296, 0, 0, 0, 0, 0, 72385, 0, 0, 0, 73727, 0,
- 120706, 74442, 0, 0, 0, 4351, 0, 119887, 119888, 0, 119886, 119891,
- 68866, 119889, 11433, 119895, 119896, 0, 119894, 65578, 194693, 0, 0,
- 983070, 10681, 0, 0, 0, 0, 983110, 0, 6722, 129364, 0, 119997, 41546,
- 64860, 68394, 0, 41549, 0, 72386, 0, 0, 0, 0, 64710, 41547, 0, 0, 0,
- 78530, 78532, 78528, 78529, 71343, 78527, 78523, 78525, 3537, 119908,
- 119905, 7155, 2264, 0, 78533, 67755, 0, 0, 0, 0, 0, 0, 0, 64715, 0, 0,
- 537, 0, 4179, 0, 0, 0, 0, 0, 0, 0, 0, 12081, 0, 0, 4048, 7053, 0, 0,
- 70459, 0, 124975, 0, 3059, 0, 0, 43491, 983814, 0, 0, 127993, 4100, 920,
- 1811, 1355, 0, 0, 64383, 10078, 69398, 0, 0, 0, 65870, 0, 129565, 0,
- 72400, 42918, 0, 66789, 0, 12865, 0, 73938,
+ 0, 3937, 12312, 128261, 0, 0, 0, 912, 6349, 4536, 71964, 0, 126594, 0, 0,
+ 0, 3935, 120665, 0, 0, 0, 0, 118859, 0, 121116, 0, 0, 12046, 12599, 0, 0,
+ 0, 0, 7227, 0, 0, 0, 983066, 0, 0, 0, 113817, 0, 78246, 0, 0, 0, 0, 0,
+ 127405, 101531, 0, 101530, 43907, 0, 0, 0, 0, 4644, 8818, 0, 0, 0, 0,
+ 93066, 66452, 126081, 1644, 101043, 9658, 43744, 11385, 65947, 983173,
+ 43983, 0, 0, 0, 8962, 0, 0, 2466, 42039, 67669, 0, 0, 42117, 100698, 0,
+ 0, 0, 0, 43745, 5318, 0, 120498, 0, 0, 0, 7054, 64147, 0, 917804, 68195,
+ 6698, 0, 0, 0, 70849, 11981, 12202, 0, 121364, 0, 7059, 11608, 975, 0,
+ 65843, 170, 0, 67239, 42708, 0, 0, 6058, 0, 0, 0, 70507, 0, 0, 9818, 0,
+ 0, 42106, 0, 983065, 4738, 42105, 7062, 0, 4737, 11779, 4742, 120564,
+ 92391, 0, 41374, 41375, 983376, 6715, 12700, 7049, 983374, 0, 0, 0, 4741,
+ 42108, 983365, 64159, 4736, 64148, 0, 849, 0, 128247, 983361, 0, 120913,
+ 917997, 0, 983379, 9496, 66371, 983403, 983377, 11322, 0, 93008, 3928,
+ 983152, 0, 10706, 7198, 0, 4842, 12053, 0, 0, 4841, 0, 4171, 12008,
+ 68416, 3923, 1490, 0, 0, 983393, 40972, 5245, 72288, 983395, 126578, 0,
+ 4845, 8332, 40974, 0, 4840, 9077, 0, 2408, 72851, 4825, 0, 0, 0, 0,
+ 126251, 0, 0, 983353, 0, 983354, 0, 4826, 42440, 0, 0, 1274, 0, 74315, 0,
+ 120384, 0, 121200, 0, 0, 0, 4830, 983388, 129044, 0, 0, 119082, 0, 64105,
+ 0, 0, 4824, 120397, 0, 0, 1888, 64127, 7861, 125111, 78524, 41836,
+ 110613, 10873, 72439, 0, 64098, 12214, 0, 41834, 0, 358, 128120, 41833,
+ 11442, 0, 0, 0, 0, 64115, 0, 0, 0, 120721, 119053, 0, 119055, 119054, 0,
+ 0, 0, 0, 4017, 12827, 5241, 0, 73042, 41118, 3924, 0, 11366, 0, 0, 0, 0,
+ 41116, 69455, 0, 0, 0, 0, 11917, 0, 74000, 4721, 129635, 983918, 0, 0, 0,
+ 0, 0, 0, 122907, 0, 128702, 4722, 6816, 124974, 0, 4725, 67099, 4726, 0,
+ 129856, 123171, 0, 123194, 0, 0, 0, 4015, 0, 8052, 78766, 0, 0, 128294,
+ 0, 0, 4720, 73090, 125003, 0, 0, 1656, 41831, 0, 0, 41843, 0, 0, 1452,
+ 13111, 0, 0, 0, 8552, 64113, 41845, 64073, 120354, 0, 0, 120066, 120067,
+ 7064, 64070, 9948, 0, 0, 0, 0, 2420, 0, 0, 0, 0, 120052, 120053, 120050,
+ 74920, 3938, 120057, 120054, 119249, 120060, 71920, 120058, 120059,
+ 120064, 72203, 7955, 64074, 4713, 128196, 983107, 0, 0, 0, 65152, 10198,
+ 120044, 120045, 120042, 6713, 4532, 120049, 120046, 120047, 4717, 7046,
+ 0, 66450, 4712, 75055, 0, 121085, 0, 8155, 4718, 3942, 4714, 9625, 0,
+ 6383, 0, 12006, 0, 0, 0, 0, 0, 65414, 0, 0, 129061, 66437, 66025, 74115,
+ 0, 0, 11228, 4809, 0, 92221, 72352, 0, 0, 0, 65405, 129912, 0, 0, 73934,
+ 4545, 0, 917566, 0, 4813, 78699, 0, 0, 4808, 0, 0, 65475, 0, 0, 4814,
+ 72240, 4810, 0, 0, 68784, 10761, 71249, 3522, 0, 78693, 65404, 0, 0, 0,
+ 0, 0, 6691, 70125, 0, 126223, 0, 0, 0, 43858, 129914, 0, 12992, 65407, 0,
+ 0, 3919, 0, 0, 0, 0, 0, 0, 12235, 110748, 0, 0, 64091, 68739, 64080, 0,
+ 64090, 0, 0, 0, 0, 0, 8454, 0, 0, 983858, 0, 0, 0, 4780, 0, 0, 92764,
+ 64621, 6732, 0, 0, 0, 0, 121363, 0, 0, 120817, 6976, 0, 119005, 0, 93809,
+ 0, 93808, 0, 12526, 120399, 2315, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 120358,
+ 93794, 0, 0, 0, 93810, 0, 2291, 0, 0, 0, 0, 129429, 0, 10799, 0, 0,
+ 66372, 0, 4193, 0, 0, 983057, 7998, 0, 0, 0, 0, 2316, 0, 0, 0, 0, 125241,
+ 0, 0, 74140, 0, 0, 0, 0, 3762, 93813, 120672, 93820, 0, 0, 0, 70098,
+ 3780, 12808, 8163, 983154, 0, 0, 3906, 12349, 0, 8326, 0, 65498, 3763, 0,
+ 5618, 0, 3779, 0, 43613, 0, 128007, 0, 0, 0, 0, 280, 0, 126252, 983448,
+ 13072, 1894, 0, 0, 65478, 43310, 7231, 0, 11773, 0, 0, 0, 101517, 0, 0,
+ 7559, 11652, 10009, 110765, 110766, 110763, 110764, 4470, 110762, 0, 0,
+ 983441, 0, 5249, 0, 0, 8756, 0, 0, 41694, 120585, 92349, 0, 0, 0, 69685,
+ 983768, 983445, 113794, 0, 6808, 41319, 13125, 66332, 127977, 0, 2290, 0,
+ 983413, 0, 0, 3943, 0, 41205, 0, 0, 0, 0, 5352, 0, 0, 41207, 0, 7384,
+ 69647, 41204, 0, 41209, 69637, 0, 43607, 0, 0, 5420, 0, 10134, 0, 0,
+ 4018, 7150, 0, 0, 0, 0, 0, 129606, 2561, 0, 0, 7148, 12076, 0, 0, 129201,
+ 0, 6276, 1706, 0, 0, 7146, 0, 128277, 41819, 74991, 0, 10847, 41822,
+ 72248, 860, 0, 0, 0, 69641, 10753, 41820, 126118, 0, 71898, 0, 92617,
+ 128567, 0, 0, 43016, 0, 0, 92225, 0, 0, 0, 0, 4022, 0, 0, 110807, 0,
+ 41691, 0, 75060, 0, 0, 65292, 0, 110812, 0, 3911, 110811, 110808, 110809,
+ 0, 125191, 7000, 3904, 118997, 72261, 0, 0, 0, 13123, 10846, 0, 0, 0, 0,
+ 0, 74082, 0, 0, 0, 0, 3777, 128329, 0, 9636, 71726, 0, 0, 9367, 593, 0,
+ 3999, 0, 41713, 0, 0, 67677, 0, 0, 0, 9763, 120280, 120283, 12347, 124,
+ 12981, 41127, 92527, 0, 0, 0, 0, 0, 43987, 0, 0, 1769, 41715, 2463, 2151,
+ 0, 0, 71222, 1538, 93044, 0, 0, 0, 7795, 120300, 0, 92493, 10955, 0, 0,
+ 0, 78208, 9498, 78207, 127033, 78210, 120288, 3939, 120290, 120285, 8943,
+ 120287, 120286, 120297, 4491, 120299, 42602, 120293, 120292, 120295,
+ 120294, 0, 0, 0, 0, 0, 0, 1511, 9324, 0, 0, 0, 0, 0, 64536, 0, 0, 0,
+ 124935, 6822, 12862, 0, 0, 42143, 41828, 0, 917629, 70864, 118879, 0, 0,
+ 0, 41826, 128413, 0, 0, 13279, 7917, 0, 0, 0, 0, 0, 0, 92332, 0, 0,
+ 43515, 0, 0, 0, 4013, 0, 0, 0, 72224, 125266, 0, 68243, 2432, 0, 0, 0, 0,
+ 0, 69952, 0, 0, 0, 10949, 0, 0, 0, 0, 0, 0, 0, 128574, 43233, 0, 42517,
+ 0, 0, 0, 0, 0, 64468, 119359, 6474, 119358, 43497, 12656, 128122, 119353,
+ 0, 1665, 0, 0, 0, 119351, 0, 0, 5256, 0, 0, 0, 2859, 0, 0, 0, 0, 0, 0,
+ 128220, 0, 770, 0, 811, 0, 0, 917551, 42244, 64427, 0, 72222, 0, 3895, 0,
+ 74341, 12087, 0, 42859, 10193, 3116, 7747, 0, 0, 43496, 0, 0, 0, 0,
+ 41877, 0, 65382, 64614, 0, 64296, 0, 6345, 0, 2663, 0, 121234, 0, 0,
+ 10150, 0, 64308, 1522, 597, 0, 0, 41201, 64731, 0, 0, 41198, 0, 71483,
+ 3092, 0, 0, 4783, 71448, 0, 0, 0, 10812, 0, 0, 0, 3078, 0, 0, 0, 0, 0,
+ 71703, 394, 3088, 0, 0, 0, 3991, 0, 129072, 0, 424, 67652, 74927, 0, 0,
+ 0, 0, 0, 0, 42231, 2209, 128215, 72983, 0, 41840, 129136, 5344, 1298, 0,
+ 13155, 0, 128973, 41838, 0, 8488, 1003, 41837, 0, 0, 0, 48, 0, 0, 8493,
+ 0, 0, 0, 65487, 0, 8465, 10332, 13172, 0, 0, 10449, 126989, 127014,
+ 69606, 69447, 3984, 129159, 0, 0, 0, 0, 0, 0, 0, 0, 64758, 0, 100947, 0,
+ 0, 9096, 0, 0, 9172, 128545, 0, 0, 5955, 67666, 0, 0, 0, 0, 0, 74426,
+ 3926, 71734, 0, 8798, 100946, 92165, 0, 0, 120696, 0, 0, 0, 118805,
+ 10353, 10417, 0, 0, 0, 128629, 4019, 0, 0, 0, 8219, 68402, 0, 0, 121301,
+ 128218, 0, 0, 0, 0, 0, 0, 0, 110625, 42474, 10642, 3909, 9950, 0, 128139,
+ 69619, 68678, 92917, 0, 1049, 43517, 65707, 11943, 41806, 0, 68635, 3921,
+ 0, 11775, 121352, 69820, 1038, 42303, 9823, 0, 2145, 4008, 68624, 0,
+ 121025, 0, 0, 5153, 41805, 0, 0, 763, 9211, 0, 0, 0, 0, 0, 127142, 0, 0,
+ 65179, 0, 8621, 0, 118878, 0, 0, 0, 0, 182, 0, 0, 0, 0, 72978, 9058,
+ 8489, 0, 71188, 5969, 65909, 10848, 4570, 0, 128614, 4255, 0, 0, 41189,
+ 4003, 69785, 68109, 13293, 41192, 0, 0, 42251, 0, 0, 126085, 11287, 6128,
+ 121315, 11034, 0, 68207, 0, 65506, 42382, 0, 0, 66872, 9932, 43516, 0,
+ 125098, 0, 41814, 0, 71234, 0, 12117, 127040, 127041, 10540, 127043,
+ 9063, 78000, 0, 0, 0, 12897, 0, 0, 0, 6065, 0, 0, 0, 8692, 41186, 41816,
+ 0, 41818, 41187, 0, 42196, 0, 110690, 110691, 126115, 0, 0, 125235, 4710,
+ 0, 5956, 7621, 110641, 92624, 4705, 716, 74918, 110693, 4704, 0, 0,
+ 127112, 161, 0, 0, 0, 4706, 0, 0, 0, 4709, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1700, 119223, 0, 0, 128119, 4004, 0, 73071, 69383, 69914, 8506, 128237,
+ 0, 126996, 2538, 937, 0, 4734, 0, 0, 0, 0, 0, 4729, 0, 0, 0, 4728, 0,
+ 72809, 120644, 0, 8109, 43105, 11249, 4730, 447, 0, 1513, 4733, 0, 0, 0,
+ 0, 0, 0, 0, 8565, 2469, 0, 6690, 0, 0, 43439, 78218, 43103, 78217, 2674,
+ 0, 11922, 0, 0, 3510, 0, 129368, 0, 5605, 42095, 126572, 0, 9098, 120512,
+ 0, 121272, 68891, 74570, 0, 67708, 0, 119346, 0, 5959, 0, 0, 66275,
+ 43371, 0, 0, 0, 0, 0, 12769, 69793, 0, 1283, 0, 4779, 0, 3719, 4006, 0,
+ 0, 71186, 68204, 124957, 0, 119331, 43028, 65493, 0, 125058, 5962, 65485,
+ 92616, 0, 43501, 5827, 0, 120951, 0, 65494, 0, 129365, 0, 0, 43879, 0, 0,
+ 0, 0, 983203, 65467, 0, 0, 0, 0, 521, 0, 0, 983909, 0, 0, 483, 7096, 0,
+ 0, 928, 0, 0, 0, 0, 92983, 3989, 73972, 0, 0, 0, 0, 12145, 0, 73932, 0,
+ 0, 3769, 0, 0, 0, 0, 0, 0, 65290, 92223, 0, 65855, 0, 0, 0, 0, 128811, 0,
+ 0, 0, 0, 0, 0, 73838, 0, 0, 13007, 68165, 0, 0, 12661, 7608, 75032,
+ 12213, 0, 0, 0, 0, 12195, 4001, 3112, 92647, 0, 7590, 0, 0, 421, 0, 0, 0,
+ 4130, 127775, 7595, 42588, 7600, 0, 0, 0, 0, 65851, 42607, 0, 92403,
+ 8680, 0, 42134, 0, 0, 2846, 92605, 0, 0, 0, 0, 12979, 0, 0, 92558, 3740,
+ 69843, 120437, 0, 120451, 65923, 120435, 0, 120434, 0, 93800, 3118,
+ 74265, 93795, 93816, 93823, 93797, 8127, 92912, 93792, 7943, 93821,
+ 93799, 10618, 2584, 93793, 0, 0, 9998, 0, 0, 0, 66350, 0, 0, 0, 121374,
+ 8279, 128169, 0, 4975, 70075, 0, 0, 1631, 0, 0, 0, 6290, 128994, 66386,
+ 0, 64645, 0, 0, 0, 0, 0, 9242, 93807, 93802, 93801, 983264, 93803, 3122,
+ 93804, 7793, 0, 0, 0, 0, 12604, 92885, 6615, 67650, 0, 3986, 44025, 0,
+ 8912, 0, 7409, 0, 0, 0, 0, 0, 0, 8540, 11498, 0, 0, 0, 0, 0, 13060,
+ 120682, 0, 0, 0, 0, 0, 121345, 0, 0, 7020, 120353, 3765, 92881, 0, 1606,
+ 120348, 120351, 3093, 110593, 0, 0, 0, 0, 0, 0, 92892, 120337, 69402,
+ 120339, 4023, 120333, 120332, 120335, 92250, 120345, 12810, 120347,
+ 120346, 4455, 120340, 120343, 120342, 66660, 0, 0, 0, 0, 113720, 13089,
+ 74355, 120329, 120328, 42758, 12196, 128429, 0, 0, 0, 0, 128867, 94179,
+ 0, 3120, 9797, 0, 0, 11086, 10389, 0, 101025, 4895, 128153, 124941, 4359,
+ 0, 0, 3509, 70037, 486, 0, 0, 0, 0, 0, 7004, 0, 0, 0, 0, 4855, 128200, 0,
+ 0, 0, 0, 0, 0, 10381, 70839, 0, 0, 0, 0, 125121, 70837, 125070, 129431,
+ 983372, 983360, 0, 983359, 0, 120063, 0, 0, 0, 75048, 0, 74900, 0, 0,
+ 120978, 12161, 983351, 0, 10339, 0, 0, 0, 0, 0, 0, 0, 43032, 125010, 0,
+ 983378, 12671, 11384, 0, 0, 120901, 64797, 0, 5820, 0, 0, 0, 0, 0,
+ 120650, 42137, 9893, 8851, 12664, 0, 0, 13192, 0, 41799, 65530, 0, 0,
+ 43039, 3114, 0, 0, 0, 0, 0, 926, 0, 72004, 0, 0, 0, 0, 0, 43037, 41798,
+ 0, 0, 123214, 41801, 0, 0, 0, 4200, 12699, 8331, 70118, 3091, 92980,
+ 66298, 70293, 8360, 0, 78044, 0, 4229, 64543, 126227, 65563, 0, 129310,
+ 2861, 43793, 10095, 121428, 9195, 121381, 121132, 0, 129578, 0, 0, 43041,
+ 0, 43794, 0, 83167, 0, 43797, 8209, 0, 129132, 12973, 0, 0, 0, 0, 0,
+ 121235, 5760, 0, 743, 0, 0, 0, 0, 0, 0, 83170, 128589, 129537, 0, 119063,
+ 0, 0, 0, 19919, 0, 64532, 0, 43710, 0, 0, 9483, 71115, 0, 43697, 0, 0,
+ 83211, 0, 0, 0, 7247, 0, 0, 0, 0, 0, 113674, 0, 7471, 120823, 128743,
+ 12682, 0, 0, 65679, 983143, 0, 0, 83201, 1099, 74241, 0, 10501, 0, 0,
+ 113743, 0, 64743, 128476, 67663, 0, 0, 92219, 0, 83197, 64897, 9973,
+ 1818, 0, 0, 8272, 127812, 0, 4218, 3087, 0, 127234, 0, 101300, 65181,
+ 9954, 10465, 0, 0, 0, 9106, 0, 67406, 0, 0, 0, 0, 43038, 0, 0, 265, 0, 0,
+ 0, 0, 0, 0, 69405, 0, 59, 0, 0, 0, 0, 126239, 41810, 0, 126492, 0, 41809,
+ 41888, 0, 41795, 0, 42213, 0, 0, 43033, 511, 129413, 0, 13127, 0, 0, 0,
+ 0, 111107, 0, 4467, 41812, 41215, 0, 41211, 917783, 4453, 69575, 0,
+ 129883, 0, 983407, 41213, 118812, 0, 0, 0, 129730, 41841, 6617, 130041,
+ 0, 92995, 462, 0, 10493, 0, 55248, 0, 0, 74471, 6644, 0, 0, 0, 983383,
+ 100484, 9581, 67104, 3098, 0, 0, 983410, 125250, 0, 120621, 0, 0, 0,
+ 129584, 101011, 0, 118789, 74473, 3755, 64661, 7748, 7235, 3966, 0, 0,
+ 127510, 0, 0, 0, 5726, 66456, 42175, 100486, 0, 42212, 92681, 121443,
+ 2851, 43017, 0, 121056, 4373, 0, 0, 9587, 0, 6671, 128840, 3100, 0,
+ 917790, 0, 0, 0, 917789, 73836, 8190, 12083, 917791, 0, 6689, 64629, 0,
+ 0, 0, 4419, 917787, 101017, 0, 69851, 0, 0, 8891, 3080, 0, 2347, 0, 0,
+ 8990, 0, 121201, 0, 92528, 249, 0, 0, 69424, 0, 0, 0, 55253, 0, 0, 11173,
+ 995, 0, 121047, 119861, 0, 73708, 0, 0, 19945, 0, 558, 983394, 12273, 0,
+ 983862, 0, 69912, 120861, 129492, 67274, 94178, 0, 68019, 43030, 3129, 0,
+ 2102, 0, 0, 121450, 0, 7725, 0, 11120, 0, 126111, 69246, 0, 0, 0, 41894,
+ 0, 41898, 0, 41893, 74921, 128678, 3540, 11848, 0, 73005, 120848, 0, 0,
+ 126113, 73959, 0, 0, 0, 120858, 0, 0, 9699, 128656, 41896, 0, 83196,
+ 69230, 74951, 0, 72736, 0, 0, 3095, 983670, 11946, 983866, 0, 0, 0, 0, 0,
+ 113677, 3672, 119864, 0, 0, 0, 128539, 8890, 93826, 0, 128182, 0, 0, 0,
+ 126568, 0, 0, 983617, 9516, 983436, 0, 0, 42220, 0, 4450, 0, 11547,
+ 43417, 128542, 356, 0, 0, 0, 0, 64901, 0, 0, 0, 0, 0, 0, 111302, 65940,
+ 2541, 71231, 0, 123215, 126470, 3549, 0, 0, 0, 2743, 0, 0, 0, 9097,
+ 128896, 43015, 0, 0, 776, 2524, 0, 8573, 100665, 126494, 0, 0, 42694,
+ 71122, 8952, 10814, 118818, 0, 43646, 128598, 0, 0, 0, 128380, 100663, 0,
+ 65853, 42707, 1897, 93071, 0, 0, 71907, 69410, 0, 125106, 0, 0, 0, 68473,
+ 66778, 43573, 92638, 0, 0, 0, 120955, 73986, 0, 0, 43022, 0, 74841, 0,
+ 67714, 0, 0, 0, 0, 0, 4553, 0, 0, 0, 0, 0, 19921, 0, 0, 983668, 4567,
+ 41891, 0, 983800, 55249, 194663, 0, 194662, 0, 194665, 43042, 121291,
+ 1377, 12869, 0, 0, 9250, 0, 0, 0, 0, 125039, 194642, 0, 74995, 0, 194644,
+ 0, 0, 101328, 194668, 121166, 0, 70275, 1898, 69556, 0, 0, 802, 0, 0, 0,
+ 6648, 0, 2528, 0, 0, 194646, 194625, 101330, 68804, 844, 0, 68824, 0,
+ 68818, 194650, 0, 0, 0, 983724, 65464, 0, 0, 0, 0, 83221, 0, 0, 100680,
+ 42954, 0, 64371, 70665, 0, 194654, 0, 0, 0, 0, 0, 6196, 6945, 0, 0, 0,
+ 120491, 0, 68846, 6210, 0, 70274, 0, 0, 0, 68067, 68834, 194715, 588,
+ 9760, 129112, 0, 983704, 128798, 0, 127992, 0, 0, 118905, 0, 0, 92485,
+ 110839, 69396, 0, 3394, 70734, 194639, 0, 0, 0, 0, 0, 0, 194656, 7817,
+ 1841, 11055, 0, 194979, 194983, 127011, 67403, 194987, 7701, 194998, 0,
+ 194995, 1946, 121404, 0, 0, 917631, 0, 0, 10934, 0, 70376, 0, 0, 8071,
+ 3538, 0, 2287, 65328, 0, 0, 7614, 0, 0, 0, 12009, 43968, 0, 67852, 0, 0,
+ 10841, 123640, 0, 0, 0, 0, 8960, 0, 0, 65317, 128829, 0, 0, 70374, 0, 0,
+ 0, 65315, 0, 0, 0, 0, 0, 119621, 0, 11849, 12447, 0, 0, 110741, 0, 0, 0,
+ 129976, 42767, 0, 0, 0, 43695, 120520, 11975, 194941, 983443, 0, 2555, 0,
+ 128640, 70070, 42936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66714, 0, 0,
+ 70076, 65596, 121034, 66710, 67658, 0, 126994, 65338, 7792, 0, 0, 67871,
+ 119027, 0, 8233, 43572, 0, 0, 0, 3442, 0, 2841, 12543, 0, 1473, 42820,
+ 64329, 127832, 917772, 126126, 7937, 0, 1048, 0, 0, 983924, 0, 3406,
+ 1054, 100701, 1040, 65450, 0, 92329, 1069, 917763, 128367, 128940, 0,
+ 917765, 0, 983705, 9693, 110873, 0, 0, 0, 983929, 4353, 0, 1059, 127530,
+ 0, 0, 0, 127093, 118862, 120500, 10646, 0, 100710, 917762, 70424, 74830,
+ 0, 0, 983701, 10221, 100706, 68255, 0, 0, 74346, 119619, 100707, 64945,
+ 12921, 0, 0, 0, 0, 0, 983776, 43020, 0, 0, 74254, 0, 983766, 0, 0,
+ 983773, 0, 71954, 0, 0, 0, 0, 0, 0, 120503, 70663, 0, 2755, 0, 0, 0,
+ 4857, 0, 4428, 0, 0, 983772, 0, 0, 0, 43842, 0, 122899, 0, 7978, 0,
+ 70392, 127080, 11924, 43812, 0, 65015, 0, 563, 68340, 0, 12798, 0,
+ 100727, 0, 0, 0, 74110, 0, 94051, 0, 694, 0, 9876, 0, 119168, 0, 0, 0,
+ 92361, 0, 0, 7229, 0, 0, 0, 0, 64811, 0, 119087, 126478, 0, 7381, 0,
+ 2525, 4852, 11586, 68465, 41605, 126089, 0, 11582, 7151, 10155, 92578,
+ 188, 0, 11592, 0, 74015, 0, 0, 4858, 0, 0, 0, 4861, 0, 2786, 121431,
+ 4856, 8051, 0, 119609, 0, 113797, 71133, 0, 78448, 0, 0, 67842, 68084, 0,
+ 0, 0, 0, 0, 10234, 5843, 0, 71865, 66728, 0, 3157, 0, 0, 75035, 72788,
+ 983731, 0, 10822, 5149, 129517, 0, 65142, 129454, 4565, 0, 0, 0, 12657,
+ 0, 0, 386, 0, 8834, 120974, 0, 43574, 0, 0, 0, 70113, 7220, 11839,
+ 124984, 74883, 194752, 0, 65241, 74503, 8160, 0, 194753, 0, 0, 0, 0, 0,
+ 121265, 6847, 13303, 0, 0, 194755, 0, 118865, 0, 194761, 0, 0, 74505, 0,
+ 0, 0, 100518, 194721, 8780, 100512, 0, 68745, 110626, 66697, 0, 2672,
+ 3735, 983641, 0, 68752, 11205, 10724, 41202, 0, 100714, 0, 0, 0, 0,
+ 194765, 3842, 0, 78183, 12442, 78182, 9791, 78181, 0, 42516, 67730,
+ 64821, 195061, 78178, 0, 78464, 119219, 78465, 127466, 194690, 195063, 0,
+ 0, 0, 0, 78540, 78541, 78538, 1962, 78490, 78476, 65930, 11660, 0, 2072,
+ 0, 0, 78544, 194704, 78542, 10669, 110859, 110860, 110857, 110858,
+ 129749, 110856, 4105, 0, 194699, 0, 0, 0, 13148, 195068, 78479, 9226, 0,
+ 0, 10765, 127486, 71919, 121218, 195050, 0, 195041, 0, 0, 0, 0, 0, 0,
+ 92312, 7886, 0, 6682, 0, 6680, 195042, 126473, 195052, 6679, 74412, 0,
+ 72206, 74421, 66281, 0, 0, 127478, 0, 0, 0, 6681, 0, 12693, 0, 0, 0, 0,
+ 0, 65442, 129055, 0, 9989, 74415, 194673, 0, 0, 983769, 0, 0, 0, 0, 7042,
+ 127240, 119026, 7968, 0, 983749, 194741, 194736, 983774, 0, 69889, 74389,
+ 128696, 0, 0, 128979, 5781, 0, 78199, 0, 0, 11091, 0, 2719, 0, 0, 0,
+ 64495, 0, 0, 0, 65169, 42845, 0, 128551, 983747, 7505, 72435, 0, 0, 0,
+ 917855, 66670, 0, 983690, 0, 0, 0, 7902, 0, 65265, 0, 0, 0, 0, 0, 0, 0,
+ 12994, 0, 10828, 983955, 0, 4307, 3482, 0, 0, 72389, 0, 64299, 74573,
+ 41194, 7343, 0, 0, 41195, 0, 8169, 0, 8841, 66770, 516, 72981, 41197,
+ 119051, 34, 128850, 120186, 11504, 1612, 120187, 120182, 120181, 120184,
+ 12001, 120178, 120177, 120180, 120179, 71966, 120173, 7749, 120175, 0,
+ 1758, 0, 10667, 0, 120197, 0, 1935, 11517, 120193, 120196, 120195,
+ 120190, 120189, 120192, 120191, 1217, 64702, 128075, 825, 0, 0, 0, 0,
+ 66748, 0, 11050, 0, 123187, 0, 0, 74554, 0, 0, 8677, 123188, 11313,
+ 123185, 3403, 0, 123186, 64364, 92683, 0, 0, 0, 0, 123189, 0, 0, 983861,
+ 0, 69408, 41850, 0, 3433, 127965, 0, 1594, 65607, 0, 66392, 0, 129291,
+ 74565, 41353, 125119, 0, 0, 0, 0, 918, 127280, 41351, 0, 0, 12140, 0,
+ 12668, 72395, 0, 128753, 0, 127302, 0, 127288, 129497, 127235, 573, 0, 0,
+ 11417, 0, 127283, 0, 0, 0, 72410, 0, 11482, 0, 3981, 74345, 0, 0, 0, 0,
+ 0, 0, 125238, 0, 0, 42195, 0, 123190, 0, 64602, 0, 0, 121366, 0, 121061,
+ 128690, 0, 8423, 0, 448, 66907, 9717, 0, 0, 0, 0, 0, 0, 0, 71910, 129898,
+ 0, 0, 120679, 65013, 78169, 0, 72390, 0, 0, 127917, 0, 74892, 0, 0,
+ 127798, 0, 0, 71252, 0, 0, 0, 12197, 125074, 0, 121447, 0, 0, 0, 0, 0, 0,
+ 0, 74563, 64828, 11419, 0, 8592, 0, 0, 0, 11381, 0, 0, 74529, 0, 0,
+ 83254, 0, 72796, 0, 83257, 0, 0, 0, 129437, 65672, 0, 0, 0, 0, 0, 0, 0,
+ 0, 9505, 0, 0, 756, 0, 125243, 100358, 110852, 7261, 0, 0, 0, 0, 0,
+ 64401, 65830, 41365, 0, 0, 0, 127834, 0, 0, 0, 0, 0, 74626, 123155,
+ 11578, 0, 0, 0, 0, 0, 0, 74568, 0, 113684, 1794, 68310, 120218, 120219,
+ 120220, 120221, 120222, 120223, 3617, 120011, 64886, 94061, 78202,
+ 120213, 120214, 10225, 983060, 0, 65223, 983058, 0, 0, 4452, 127779, 0,
+ 0, 0, 0, 0, 0, 11425, 0, 0, 1231, 0, 0, 0, 0, 8192, 0, 0, 0, 10616, 8694,
+ 0, 68867, 128332, 123595, 120200, 120201, 120202, 120203, 9878, 120205,
+ 119626, 120207, 0, 8799, 42131, 0, 127163, 0, 120198, 120199, 837,
+ 120015, 72384, 0, 983817, 0, 11427, 0, 78154, 0, 70171, 0, 78150, 42606,
+ 0, 119615, 78147, 64637, 78146, 43060, 78145, 125009, 3392, 0, 194783,
+ 119067, 119650, 65468, 43498, 126083, 0, 0, 0, 194928, 194937, 194938,
+ 64681, 194930, 83264, 92451, 0, 194955, 83262, 983732, 8973, 0, 194967,
+ 70177, 194968, 0, 4800, 195018, 0, 0, 11820, 70151, 0, 0, 4802, 4111,
+ 111268, 0, 4805, 127308, 68193, 7885, 121220, 0, 0, 0, 4767, 0, 0, 0, 0,
+ 0, 125234, 100366, 43453, 0, 41340, 0, 0, 10005, 65856, 41333, 0, 9518,
+ 0, 0, 0, 42520, 100850, 0, 0, 917562, 100506, 0, 0, 0, 0, 0, 0, 9167,
+ 42151, 124958, 0, 2026, 100848, 0, 0, 100534, 12768, 0, 7582, 0, 0, 0, 0,
+ 129557, 0, 120539, 68879, 0, 43547, 119992, 8546, 126071, 78520, 7604,
+ 78518, 78519, 78514, 78517, 78511, 78512, 73802, 128140, 0, 6708, 10535,
+ 0, 68218, 55274, 68221, 92296, 0, 0, 0, 0, 0, 72385, 0, 0, 0, 73727, 0,
+ 120706, 74442, 0, 0, 0, 4351, 0, 119887, 119888, 0, 119886, 119891,
+ 68866, 119889, 11433, 119895, 119896, 0, 119894, 65578, 194693, 0, 0,
+ 983070, 10681, 0, 0, 0, 0, 983110, 0, 6722, 129364, 0, 119997, 41546,
+ 64860, 68394, 0, 41549, 0, 72386, 0, 0, 0, 0, 64710, 41547, 0, 0, 0,
+ 78530, 78532, 78528, 78529, 71343, 78527, 78523, 78525, 3537, 119908,
+ 119905, 7155, 2264, 0, 78533, 67755, 0, 0, 0, 0, 0, 0, 0, 64715, 0, 0,
+ 537, 0, 4179, 0, 0, 0, 0, 0, 0, 0, 0, 12081, 0, 0, 4048, 7053, 0, 0,
+ 70459, 0, 124975, 0, 3059, 0, 0, 43491, 983814, 0, 0, 127993, 4100, 920,
+ 1811, 1355, 0, 0, 64383, 10078, 69398, 0, 0, 0, 65870, 0, 129565, 0,
+ 72400, 42918, 0, 66789, 0, 12865, 0, 73938,
};
#define code_magic 47
@@ -29483,10 +29483,10 @@ static const named_sequence named_sequences[] = {
{3, {0x0039, 0xFE0F, 0x20E3}},
{2, {0x0100, 0x0300}},
{2, {0x0101, 0x0300}},
- {2, {0x012A, 0x0300}},
- {2, {0x012B, 0x0300}},
- {2, {0x016A, 0x0300}},
- {2, {0x016B, 0x0300}},
+ {2, {0x012A, 0x0300}},
+ {2, {0x012B, 0x0300}},
+ {2, {0x016A, 0x0300}},
+ {2, {0x016B, 0x0300}},
{2, {0x0045, 0x0329}},
{2, {0x0065, 0x0329}},
{2, {0x00C8, 0x0329}},
@@ -29501,12 +29501,12 @@ static const named_sequence named_sequences[] = {
{2, {0x00F3, 0x0329}},
{2, {0x0053, 0x0329}},
{2, {0x0073, 0x0329}},
- {2, {0x00CA, 0x0304}},
- {2, {0x00EA, 0x0304}},
- {2, {0x00CA, 0x030C}},
- {2, {0x00EA, 0x030C}},
- {3, {0x0069, 0x0307, 0x0301}},
- {3, {0x006E, 0x0360, 0x0067}},
+ {2, {0x00CA, 0x0304}},
+ {2, {0x00EA, 0x0304}},
+ {2, {0x00CA, 0x030C}},
+ {2, {0x00EA, 0x030C}},
+ {3, {0x0069, 0x0307, 0x0301}},
+ {3, {0x006E, 0x0360, 0x0067}},
{2, {0x0104, 0x0301}},
{2, {0x0105, 0x0301}},
{2, {0x0104, 0x0303}},
diff --git a/contrib/tools/python3/src/Modules/winreparse.h b/contrib/tools/python3/src/Modules/winreparse.h
index b73049d876..f06f701f99 100644
--- a/contrib/tools/python3/src/Modules/winreparse.h
+++ b/contrib/tools/python3/src/Modules/winreparse.h
@@ -45,11 +45,11 @@ typedef struct {
FIELD_OFFSET(_Py_REPARSE_DATA_BUFFER, GenericReparseBuffer)
#define _Py_MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 )
-// Defined in WinBase.h in 'recent' versions of Windows 10 SDK
-#ifndef SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
-#define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE 0x2
-#endif
-
+// Defined in WinBase.h in 'recent' versions of Windows 10 SDK
+#ifndef SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
+#define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE 0x2
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Modules/ya.make b/contrib/tools/python3/src/Modules/ya.make
index 290ff3c261..47e38bca51 100644
--- a/contrib/tools/python3/src/Modules/ya.make
+++ b/contrib/tools/python3/src/Modules/ya.make
@@ -16,16 +16,16 @@ PEERDIR(
ADDINCL(
contrib/restricted/libffi/include
contrib/tools/python3/src/Include
- contrib/tools/python3/src/Include/internal
+ contrib/tools/python3/src/Include/internal
contrib/tools/python3/src/Modules
contrib/tools/python3/src/Modules/_decimal/libmpdec
contrib/tools/python3/src/PC
)
-CFLAGS(
- -DPy_BUILD_CORE_MODULE
-)
-
+CFLAGS(
+ -DPy_BUILD_CORE_MODULE
+)
+
NO_COMPILER_WARNINGS()
NO_RUNTIME()
@@ -58,7 +58,7 @@ SRCS(
_decimal/libmpdec/fnt.c
_decimal/libmpdec/fourstep.c
_decimal/libmpdec/io.c
- _decimal/libmpdec/mpalloc.c
+ _decimal/libmpdec/mpalloc.c
_decimal/libmpdec/mpdecimal.c
_decimal/libmpdec/numbertheory.c
_decimal/libmpdec/sixstep.c
@@ -72,11 +72,11 @@ SRCS(
_lzmamodule.c
_math.c
_multiprocessing/multiprocessing.c
- _multiprocessing/posixshmem.c
+ _multiprocessing/posixshmem.c
_multiprocessing/semaphore.c
_opcode.c
_operator.c
- _peg_parser.c
+ _peg_parser.c
_pickle.c
_queuemodule.c
_randommodule.c
@@ -84,14 +84,14 @@ SRCS(
_sre.c
_ssl.c
_stat.c
- _statisticsmodule.c
+ _statisticsmodule.c
_struct.c
_tracemalloc.c
_weakref.c
- _xxsubinterpretersmodule.c
+ _xxsubinterpretersmodule.c
_xxtestfuzz/_xxtestfuzz.c
_xxtestfuzz/fuzzer.c
- _zoneinfo.c
+ _zoneinfo.c
arraymodule.c
atexitmodule.c
audioop.c
@@ -130,7 +130,7 @@ IF (OS_WINDOWS)
)
ELSE()
SRCS(
- _cryptmodule.c
+ _cryptmodule.c
_posixsubprocess.c
fcntlmodule.c
grpmodule.c
@@ -140,9 +140,9 @@ ELSE()
termios.c
)
IF (OS_LINUX)
- IF (NOT MUSL)
- EXTRALIBS(crypt)
- ENDIF()
+ IF (NOT MUSL)
+ EXTRALIBS(crypt)
+ ENDIF()
SRCS(
spwdmodule.c
)
diff --git a/contrib/tools/python3/src/Modules/zlibmodule.c b/contrib/tools/python3/src/Modules/zlibmodule.c
index 4f48eec637..4dfd4ae672 100644
--- a/contrib/tools/python3/src/Modules/zlibmodule.c
+++ b/contrib/tools/python3/src/Modules/zlibmodule.c
@@ -6,7 +6,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include "zlib.h"
@@ -31,24 +31,24 @@
/* Initial buffer size. */
#define DEF_BUF_SIZE (16*1024)
-static PyModuleDef zlibmodule;
-
-typedef struct {
- PyTypeObject *Comptype;
- PyTypeObject *Decomptype;
- PyObject *ZlibError;
-} _zlibstate;
-
-static inline _zlibstate*
-get_zlib_state(PyObject *module)
-{
- void *state = PyModule_GetState(module);
- assert(state != NULL);
- return (_zlibstate *)state;
-}
-
-#define _zlibstate_global ((_zlibstate *)PyModule_GetState(PyState_FindModule(&zlibmodule)))
-
+static PyModuleDef zlibmodule;
+
+typedef struct {
+ PyTypeObject *Comptype;
+ PyTypeObject *Decomptype;
+ PyObject *ZlibError;
+} _zlibstate;
+
+static inline _zlibstate*
+get_zlib_state(PyObject *module)
+{
+ void *state = PyModule_GetState(module);
+ assert(state != NULL);
+ return (_zlibstate *)state;
+}
+
+#define _zlibstate_global ((_zlibstate *)PyModule_GetState(PyState_FindModule(&zlibmodule)))
+
typedef struct
{
PyObject_HEAD
@@ -85,9 +85,9 @@ zlib_error(z_stream zst, int err, const char *msg)
}
}
if (zmsg == Z_NULL)
- PyErr_Format(_zlibstate_global->ZlibError, "Error %d %s", err, msg);
+ PyErr_Format(_zlibstate_global->ZlibError, "Error %d %s", err, msg);
else
- PyErr_Format(_zlibstate_global->ZlibError, "Error %d %s: %.200s", err, msg, zmsg);
+ PyErr_Format(_zlibstate_global->ZlibError, "Error %d %s: %.200s", err, msg, zmsg);
}
/*[clinic input]
@@ -238,7 +238,7 @@ zlib_compress_impl(PyObject *module, Py_buffer *data, int level)
"Out of memory while compressing data");
goto error;
case Z_STREAM_ERROR:
- PyErr_SetString(_zlibstate_global->ZlibError, "Bad compression level");
+ PyErr_SetString(_zlibstate_global->ZlibError, "Bad compression level");
goto error;
default:
deflateEnd(&zst);
@@ -303,9 +303,9 @@ ssize_t_converter(PyObject *obj, void *ptr)
PyObject *long_obj;
Py_ssize_t val;
- /* XXX Should be replaced with PyNumber_AsSsize_t after the end of the
- deprecation period. */
- long_obj = _PyLong_FromNbIndexOrNbInt(obj);
+ /* XXX Should be replaced with PyNumber_AsSsize_t after the end of the
+ deprecation period. */
+ long_obj = _PyLong_FromNbIndexOrNbInt(obj);
if (long_obj == NULL) {
return 0;
}
@@ -474,7 +474,7 @@ zlib_compressobj_impl(PyObject *module, int level, int method, int wbits,
goto error;
}
- self = newcompobject(_zlibstate_global->Comptype);
+ self = newcompobject(_zlibstate_global->Comptype);
if (self == NULL)
goto error;
self->zst.opaque = NULL;
@@ -570,7 +570,7 @@ zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict)
return NULL;
}
- self = newcompobject(_zlibstate_global->Decomptype);
+ self = newcompobject(_zlibstate_global->Decomptype);
if (self == NULL)
return NULL;
self->zst.opaque = NULL;
@@ -593,7 +593,7 @@ zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict)
return NULL;
}
#else
- PyErr_Format(_zlibstate_global->ZlibError,
+ PyErr_Format(_zlibstate_global->ZlibError,
"zlib version %s does not allow raw inflate with dictionary",
ZLIB_VERSION);
Py_DECREF(self);
@@ -620,13 +620,13 @@ zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict)
static void
Dealloc(compobject *self)
{
- PyObject *type = (PyObject *)Py_TYPE(self);
+ PyObject *type = (PyObject *)Py_TYPE(self);
PyThread_free_lock(self->lock);
Py_XDECREF(self->unused_data);
Py_XDECREF(self->unconsumed_tail);
Py_XDECREF(self->zdict);
PyObject_Del(self);
- Py_DECREF(type);
+ Py_DECREF(type);
}
static void
@@ -667,8 +667,8 @@ zlib_Compress_compress_impl(compobject *self, Py_buffer *data)
Py_ssize_t ibuflen, obuflen = DEF_BUF_SIZE;
int err;
- ENTER_ZLIB(self);
-
+ ENTER_ZLIB(self);
+
self->zst.next_in = data->buf;
ibuflen = data->len;
@@ -785,8 +785,8 @@ zlib_Decompress_decompress_impl(compobject *self, Py_buffer *data,
else
hard_limit = max_length;
- ENTER_ZLIB(self);
-
+ ENTER_ZLIB(self);
+
self->zst.next_in = data->buf;
ibuflen = data->len;
@@ -958,7 +958,7 @@ zlib_Compress_copy_impl(compobject *self)
compobject *retval = NULL;
int err;
- retval = newcompobject(_zlibstate_global->Comptype);
+ retval = newcompobject(_zlibstate_global->Comptype);
if (!retval) return NULL;
/* Copy the zstream state
@@ -1001,32 +1001,32 @@ error:
}
/*[clinic input]
-zlib.Compress.__copy__
-[clinic start generated code]*/
-
-static PyObject *
-zlib_Compress___copy___impl(compobject *self)
-/*[clinic end generated code: output=1875e6791975442e input=be97a05a788dfd83]*/
-{
- return zlib_Compress_copy_impl(self);
-}
-
-/*[clinic input]
-zlib.Compress.__deepcopy__
-
- memo: object
- /
-
-[clinic start generated code]*/
-
-static PyObject *
-zlib_Compress___deepcopy__(compobject *self, PyObject *memo)
-/*[clinic end generated code: output=f47a2213282c9eb0 input=a9a8b0b40d83388e]*/
-{
- return zlib_Compress_copy_impl(self);
-}
-
-/*[clinic input]
+zlib.Compress.__copy__
+[clinic start generated code]*/
+
+static PyObject *
+zlib_Compress___copy___impl(compobject *self)
+/*[clinic end generated code: output=1875e6791975442e input=be97a05a788dfd83]*/
+{
+ return zlib_Compress_copy_impl(self);
+}
+
+/*[clinic input]
+zlib.Compress.__deepcopy__
+
+ memo: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+zlib_Compress___deepcopy__(compobject *self, PyObject *memo)
+/*[clinic end generated code: output=f47a2213282c9eb0 input=a9a8b0b40d83388e]*/
+{
+ return zlib_Compress_copy_impl(self);
+}
+
+/*[clinic input]
zlib.Decompress.copy
Return a copy of the decompression object.
@@ -1039,7 +1039,7 @@ zlib_Decompress_copy_impl(compobject *self)
compobject *retval = NULL;
int err;
- retval = newcompobject(_zlibstate_global->Decomptype);
+ retval = newcompobject(_zlibstate_global->Decomptype);
if (!retval) return NULL;
/* Copy the zstream state
@@ -1081,33 +1081,33 @@ error:
Py_XDECREF(retval);
return NULL;
}
-
-/*[clinic input]
-zlib.Decompress.__copy__
-[clinic start generated code]*/
-
-static PyObject *
-zlib_Decompress___copy___impl(compobject *self)
-/*[clinic end generated code: output=80bae8bc43498ad4 input=efcb98b5472c13d2]*/
-{
- return zlib_Decompress_copy_impl(self);
-}
-
-/*[clinic input]
-zlib.Decompress.__deepcopy__
-
- memo: object
- /
-
-[clinic start generated code]*/
-
-static PyObject *
-zlib_Decompress___deepcopy__(compobject *self, PyObject *memo)
-/*[clinic end generated code: output=1f77286ab490124b input=6e99bd0ac4b9cd8b]*/
-{
- return zlib_Decompress_copy_impl(self);
-}
-
+
+/*[clinic input]
+zlib.Decompress.__copy__
+[clinic start generated code]*/
+
+static PyObject *
+zlib_Decompress___copy___impl(compobject *self)
+/*[clinic end generated code: output=80bae8bc43498ad4 input=efcb98b5472c13d2]*/
+{
+ return zlib_Decompress_copy_impl(self);
+}
+
+/*[clinic input]
+zlib.Decompress.__deepcopy__
+
+ memo: object
+ /
+
+[clinic start generated code]*/
+
+static PyObject *
+zlib_Decompress___deepcopy__(compobject *self, PyObject *memo)
+/*[clinic end generated code: output=1f77286ab490124b input=6e99bd0ac4b9cd8b]*/
+{
+ return zlib_Decompress_copy_impl(self);
+}
+
#endif
/*[clinic input]
@@ -1134,12 +1134,12 @@ zlib_Decompress_flush_impl(compobject *self, Py_ssize_t length)
return NULL;
}
- ENTER_ZLIB(self);
-
- if (PyObject_GetBuffer(self->unconsumed_tail, &data, PyBUF_SIMPLE) == -1) {
- LEAVE_ZLIB(self);
+ ENTER_ZLIB(self);
+
+ if (PyObject_GetBuffer(self->unconsumed_tail, &data, PyBUF_SIMPLE) == -1) {
+ LEAVE_ZLIB(self);
return NULL;
- }
+ }
self->zst.next_in = data.buf;
ibuflen = data.len;
@@ -1210,8 +1210,8 @@ static PyMethodDef comp_methods[] =
ZLIB_COMPRESS_COMPRESS_METHODDEF
ZLIB_COMPRESS_FLUSH_METHODDEF
ZLIB_COMPRESS_COPY_METHODDEF
- ZLIB_COMPRESS___COPY___METHODDEF
- ZLIB_COMPRESS___DEEPCOPY___METHODDEF
+ ZLIB_COMPRESS___COPY___METHODDEF
+ ZLIB_COMPRESS___DEEPCOPY___METHODDEF
{NULL, NULL}
};
@@ -1220,8 +1220,8 @@ static PyMethodDef Decomp_methods[] =
ZLIB_DECOMPRESS_DECOMPRESS_METHODDEF
ZLIB_DECOMPRESS_FLUSH_METHODDEF
ZLIB_DECOMPRESS_COPY_METHODDEF
- ZLIB_DECOMPRESS___COPY___METHODDEF
- ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
+ ZLIB_DECOMPRESS___COPY___METHODDEF
+ ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
{NULL, NULL}
};
@@ -1325,33 +1325,33 @@ static PyMethodDef zlib_methods[] =
{NULL, NULL}
};
-static PyType_Slot Comptype_slots[] = {
- {Py_tp_dealloc, Comp_dealloc},
- {Py_tp_methods, comp_methods},
- {0, 0},
-};
-
-static PyType_Spec Comptype_spec = {
+static PyType_Slot Comptype_slots[] = {
+ {Py_tp_dealloc, Comp_dealloc},
+ {Py_tp_methods, comp_methods},
+ {0, 0},
+};
+
+static PyType_Spec Comptype_spec = {
"zlib.Compress",
sizeof(compobject),
0,
- Py_TPFLAGS_DEFAULT,
- Comptype_slots
+ Py_TPFLAGS_DEFAULT,
+ Comptype_slots
};
-static PyType_Slot Decomptype_slots[] = {
- {Py_tp_dealloc, Decomp_dealloc},
- {Py_tp_methods, Decomp_methods},
- {Py_tp_members, Decomp_members},
- {0, 0},
-};
-
-static PyType_Spec Decomptype_spec = {
+static PyType_Slot Decomptype_slots[] = {
+ {Py_tp_dealloc, Decomp_dealloc},
+ {Py_tp_methods, Decomp_methods},
+ {Py_tp_members, Decomp_members},
+ {0, 0},
+};
+
+static PyType_Spec Decomptype_spec = {
"zlib.Decompress",
sizeof(compobject),
0,
- Py_TPFLAGS_DEFAULT,
- Decomptype_slots
+ Py_TPFLAGS_DEFAULT,
+ Decomptype_slots
};
PyDoc_STRVAR(zlib_module_documentation,
@@ -1363,78 +1363,78 @@ PyDoc_STRVAR(zlib_module_documentation,
"compressobj([level[, ...]]) -- Return a compressor object.\n"
"crc32(string[, start]) -- Compute a CRC-32 checksum.\n"
"decompress(string,[wbits],[bufsize]) -- Decompresses a compressed string.\n"
-"decompressobj([wbits[, zdict]]) -- Return a decompressor object.\n"
+"decompressobj([wbits[, zdict]]) -- Return a decompressor object.\n"
"\n"
"'wbits' is window buffer size and container format.\n"
"Compressor objects support compress() and flush() methods; decompressor\n"
"objects support decompress() and flush().");
-static int
-zlib_clear(PyObject *m)
-{
- _zlibstate *state = get_zlib_state(m);
- Py_CLEAR(state->Comptype);
- Py_CLEAR(state->Decomptype);
- Py_CLEAR(state->ZlibError);
- return 0;
-}
-
-static int
-zlib_traverse(PyObject *m, visitproc visit, void *arg)
-{
- _zlibstate *state = get_zlib_state(m);
- Py_VISIT(state->Comptype);
- Py_VISIT(state->Decomptype);
- Py_VISIT(state->ZlibError);
- return 0;
-}
-
-static void
-zlib_free(void *m)
-{
- zlib_clear((PyObject *)m);
-}
-
+static int
+zlib_clear(PyObject *m)
+{
+ _zlibstate *state = get_zlib_state(m);
+ Py_CLEAR(state->Comptype);
+ Py_CLEAR(state->Decomptype);
+ Py_CLEAR(state->ZlibError);
+ return 0;
+}
+
+static int
+zlib_traverse(PyObject *m, visitproc visit, void *arg)
+{
+ _zlibstate *state = get_zlib_state(m);
+ Py_VISIT(state->Comptype);
+ Py_VISIT(state->Decomptype);
+ Py_VISIT(state->ZlibError);
+ return 0;
+}
+
+static void
+zlib_free(void *m)
+{
+ zlib_clear((PyObject *)m);
+}
+
static struct PyModuleDef zlibmodule = {
PyModuleDef_HEAD_INIT,
"zlib",
zlib_module_documentation,
- sizeof(_zlibstate),
+ sizeof(_zlibstate),
zlib_methods,
NULL,
- zlib_traverse,
- zlib_clear,
- zlib_free,
+ zlib_traverse,
+ zlib_clear,
+ zlib_free,
};
PyMODINIT_FUNC
PyInit_zlib(void)
{
PyObject *m, *ver;
- m = PyState_FindModule(&zlibmodule);
- if (m != NULL) {
- Py_INCREF(m);
- return m;
- }
+ m = PyState_FindModule(&zlibmodule);
+ if (m != NULL) {
+ Py_INCREF(m);
+ return m;
+ }
m = PyModule_Create(&zlibmodule);
if (m == NULL)
return NULL;
- PyTypeObject *Comptype = (PyTypeObject *)PyType_FromSpec(&Comptype_spec);
- if (Comptype == NULL)
- return NULL;
- get_zlib_state(m)->Comptype = Comptype;
-
- PyTypeObject *Decomptype = (PyTypeObject *)PyType_FromSpec(&Decomptype_spec);
- if (Decomptype == NULL)
- return NULL;
- get_zlib_state(m)->Decomptype = Decomptype;
-
- PyObject *ZlibError = PyErr_NewException("zlib.error", NULL, NULL);
+ PyTypeObject *Comptype = (PyTypeObject *)PyType_FromSpec(&Comptype_spec);
+ if (Comptype == NULL)
+ return NULL;
+ get_zlib_state(m)->Comptype = Comptype;
+
+ PyTypeObject *Decomptype = (PyTypeObject *)PyType_FromSpec(&Decomptype_spec);
+ if (Decomptype == NULL)
+ return NULL;
+ get_zlib_state(m)->Decomptype = Decomptype;
+
+ PyObject *ZlibError = PyErr_NewException("zlib.error", NULL, NULL);
if (ZlibError != NULL) {
Py_INCREF(ZlibError);
PyModule_AddObject(m, "error", ZlibError);
- get_zlib_state(m)->ZlibError = ZlibError;
+ get_zlib_state(m)->ZlibError = ZlibError;
}
PyModule_AddIntMacro(m, MAX_WBITS);
PyModule_AddIntMacro(m, DEFLATED);
@@ -1477,6 +1477,6 @@ PyInit_zlib(void)
PyModule_AddStringConstant(m, "__version__", "1.0");
- PyState_AddModule(m, &zlibmodule);
+ PyState_AddModule(m, &zlibmodule);
return m;
}
diff --git a/contrib/tools/python3/src/Objects/abstract.c b/contrib/tools/python3/src/Objects/abstract.c
index fceef96250..a5cbb12ff8 100644
--- a/contrib/tools/python3/src/Objects/abstract.c
+++ b/contrib/tools/python3/src/Objects/abstract.c
@@ -1,12 +1,12 @@
/* Abstract Object Interface (many thanks to Jim Fulton) */
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include <ctype.h>
-#include <stddef.h> // offsetof()
+#include <stddef.h> // offsetof()
#include "longintrepr.h"
@@ -16,7 +16,7 @@
static PyObject *
type_error(const char *msg, PyObject *obj)
{
- PyErr_Format(PyExc_TypeError, msg, Py_TYPE(obj)->tp_name);
+ PyErr_Format(PyExc_TypeError, msg, Py_TYPE(obj)->tp_name);
return NULL;
}
@@ -40,7 +40,7 @@ PyObject_Type(PyObject *o)
return null_error();
}
- v = (PyObject *)Py_TYPE(o);
+ v = (PyObject *)Py_TYPE(o);
Py_INCREF(v);
return v;
}
@@ -55,7 +55,7 @@ PyObject_Size(PyObject *o)
return -1;
}
- m = Py_TYPE(o)->tp_as_sequence;
+ m = Py_TYPE(o)->tp_as_sequence;
if (m && m->sq_length) {
Py_ssize_t len = m->sq_length(o);
assert(len >= 0 || PyErr_Occurred());
@@ -152,16 +152,16 @@ PyObject_GetItem(PyObject *o, PyObject *key)
return null_error();
}
- m = Py_TYPE(o)->tp_as_mapping;
+ m = Py_TYPE(o)->tp_as_mapping;
if (m && m->mp_subscript) {
PyObject *item = m->mp_subscript(o, key);
assert((item != NULL) ^ (PyErr_Occurred() != NULL));
return item;
}
- ms = Py_TYPE(o)->tp_as_sequence;
+ ms = Py_TYPE(o)->tp_as_sequence;
if (ms && ms->sq_item) {
- if (_PyIndex_Check(key)) {
+ if (_PyIndex_Check(key)) {
Py_ssize_t key_value;
key_value = PyNumber_AsSsize_t(key, PyExc_IndexError);
if (key_value == -1 && PyErr_Occurred())
@@ -175,19 +175,19 @@ PyObject_GetItem(PyObject *o, PyObject *key)
}
if (PyType_Check(o)) {
- PyObject *meth, *result;
+ PyObject *meth, *result;
_Py_IDENTIFIER(__class_getitem__);
-
- // Special case type[int], but disallow other types so str[int] fails
- if ((PyTypeObject*)o == &PyType_Type) {
- return Py_GenericAlias(o, key);
- }
-
+
+ // Special case type[int], but disallow other types so str[int] fails
+ if ((PyTypeObject*)o == &PyType_Type) {
+ return Py_GenericAlias(o, key);
+ }
+
if (_PyObject_LookupAttrId(o, &PyId___class_getitem__, &meth) < 0) {
return NULL;
}
if (meth) {
- result = PyObject_CallOneArg(meth, key);
+ result = PyObject_CallOneArg(meth, key);
Py_DECREF(meth);
return result;
}
@@ -205,19 +205,19 @@ PyObject_SetItem(PyObject *o, PyObject *key, PyObject *value)
null_error();
return -1;
}
- m = Py_TYPE(o)->tp_as_mapping;
+ m = Py_TYPE(o)->tp_as_mapping;
if (m && m->mp_ass_subscript)
return m->mp_ass_subscript(o, key, value);
- if (Py_TYPE(o)->tp_as_sequence) {
- if (_PyIndex_Check(key)) {
+ if (Py_TYPE(o)->tp_as_sequence) {
+ if (_PyIndex_Check(key)) {
Py_ssize_t key_value;
key_value = PyNumber_AsSsize_t(key, PyExc_IndexError);
if (key_value == -1 && PyErr_Occurred())
return -1;
return PySequence_SetItem(o, key_value, value);
}
- else if (Py_TYPE(o)->tp_as_sequence->sq_ass_item) {
+ else if (Py_TYPE(o)->tp_as_sequence->sq_ass_item) {
type_error("sequence index must be "
"integer, not '%.200s'", key);
return -1;
@@ -237,19 +237,19 @@ PyObject_DelItem(PyObject *o, PyObject *key)
null_error();
return -1;
}
- m = Py_TYPE(o)->tp_as_mapping;
+ m = Py_TYPE(o)->tp_as_mapping;
if (m && m->mp_ass_subscript)
return m->mp_ass_subscript(o, key, (PyObject*)NULL);
- if (Py_TYPE(o)->tp_as_sequence) {
- if (_PyIndex_Check(key)) {
+ if (Py_TYPE(o)->tp_as_sequence) {
+ if (_PyIndex_Check(key)) {
Py_ssize_t key_value;
key_value = PyNumber_AsSsize_t(key, PyExc_IndexError);
if (key_value == -1 && PyErr_Occurred())
return -1;
return PySequence_DelItem(o, key_value);
}
- else if (Py_TYPE(o)->tp_as_sequence->sq_ass_item) {
+ else if (Py_TYPE(o)->tp_as_sequence->sq_ass_item) {
type_error("sequence index must be "
"integer, not '%.200s'", key);
return -1;
@@ -278,23 +278,23 @@ PyObject_DelItemString(PyObject *o, const char *key)
return ret;
}
-
-/* Return 1 if the getbuffer function is available, otherwise return 0. */
-int
-PyObject_CheckBuffer(PyObject *obj)
-{
- PyBufferProcs *tp_as_buffer = Py_TYPE(obj)->tp_as_buffer;
- return (tp_as_buffer != NULL && tp_as_buffer->bf_getbuffer != NULL);
-}
-
-
+
+/* Return 1 if the getbuffer function is available, otherwise return 0. */
+int
+PyObject_CheckBuffer(PyObject *obj)
+{
+ PyBufferProcs *tp_as_buffer = Py_TYPE(obj)->tp_as_buffer;
+ return (tp_as_buffer != NULL && tp_as_buffer->bf_getbuffer != NULL);
+}
+
+
/* We release the buffer right after use of this function which could
cause issues later on. Don't use these functions in new code.
*/
int
PyObject_CheckReadBuffer(PyObject *obj)
{
- PyBufferProcs *pb = Py_TYPE(obj)->tp_as_buffer;
+ PyBufferProcs *pb = Py_TYPE(obj)->tp_as_buffer;
Py_buffer view;
if (pb == NULL ||
@@ -352,7 +352,7 @@ int PyObject_AsWriteBuffer(PyObject *obj,
null_error();
return -1;
}
- pb = Py_TYPE(obj)->tp_as_buffer;
+ pb = Py_TYPE(obj)->tp_as_buffer;
if (pb == NULL ||
pb->bf_getbuffer == NULL ||
((*pb->bf_getbuffer)(obj, &view, PyBUF_WRITABLE) != 0)) {
@@ -372,7 +372,7 @@ int PyObject_AsWriteBuffer(PyObject *obj,
int
PyObject_GetBuffer(PyObject *obj, Py_buffer *view, int flags)
{
- PyBufferProcs *pb = Py_TYPE(obj)->tp_as_buffer;
+ PyBufferProcs *pb = Py_TYPE(obj)->tp_as_buffer;
if (pb == NULL || pb->bf_getbuffer == NULL) {
PyErr_Format(PyExc_TypeError,
@@ -514,48 +514,48 @@ _Py_add_one_to_index_C(int nd, Py_ssize_t *index, const Py_ssize_t *shape)
}
}
-Py_ssize_t
-PyBuffer_SizeFromFormat(const char *format)
-{
- PyObject *structmodule = NULL;
- PyObject *calcsize = NULL;
- PyObject *res = NULL;
- PyObject *fmt = NULL;
- Py_ssize_t itemsize = -1;
-
- structmodule = PyImport_ImportModule("struct");
- if (structmodule == NULL) {
- return itemsize;
- }
-
- calcsize = PyObject_GetAttrString(structmodule, "calcsize");
- if (calcsize == NULL) {
- goto done;
- }
-
- fmt = PyUnicode_FromString(format);
- if (fmt == NULL) {
- goto done;
- }
-
- res = PyObject_CallFunctionObjArgs(calcsize, fmt, NULL);
- if (res == NULL) {
- goto done;
- }
-
- itemsize = PyLong_AsSsize_t(res);
- if (itemsize < 0) {
- goto done;
- }
-
-done:
- Py_DECREF(structmodule);
- Py_XDECREF(calcsize);
- Py_XDECREF(fmt);
- Py_XDECREF(res);
- return itemsize;
-}
-
+Py_ssize_t
+PyBuffer_SizeFromFormat(const char *format)
+{
+ PyObject *structmodule = NULL;
+ PyObject *calcsize = NULL;
+ PyObject *res = NULL;
+ PyObject *fmt = NULL;
+ Py_ssize_t itemsize = -1;
+
+ structmodule = PyImport_ImportModule("struct");
+ if (structmodule == NULL) {
+ return itemsize;
+ }
+
+ calcsize = PyObject_GetAttrString(structmodule, "calcsize");
+ if (calcsize == NULL) {
+ goto done;
+ }
+
+ fmt = PyUnicode_FromString(format);
+ if (fmt == NULL) {
+ goto done;
+ }
+
+ res = PyObject_CallFunctionObjArgs(calcsize, fmt, NULL);
+ if (res == NULL) {
+ goto done;
+ }
+
+ itemsize = PyLong_AsSsize_t(res);
+ if (itemsize < 0) {
+ goto done;
+ }
+
+done:
+ Py_DECREF(structmodule);
+ Py_XDECREF(calcsize);
+ Py_XDECREF(fmt);
+ Py_XDECREF(res);
+ return itemsize;
+}
+
int
PyBuffer_FromContiguous(Py_buffer *view, void *buf, Py_ssize_t len, char fort)
{
@@ -798,7 +798,7 @@ PyObject_Format(PyObject *obj, PyObject *format_spec)
}
/* And call it. */
- result = PyObject_CallOneArg(meth, format_spec);
+ result = PyObject_CallOneArg(meth, format_spec);
Py_DECREF(meth);
if (result && !PyUnicode_Check(result)) {
@@ -819,10 +819,10 @@ done:
int
PyNumber_Check(PyObject *o)
{
- return o && Py_TYPE(o)->tp_as_number &&
- (Py_TYPE(o)->tp_as_number->nb_index ||
- Py_TYPE(o)->tp_as_number->nb_int ||
- Py_TYPE(o)->tp_as_number->nb_float);
+ return o && Py_TYPE(o)->tp_as_number &&
+ (Py_TYPE(o)->tp_as_number->nb_index ||
+ Py_TYPE(o)->tp_as_number->nb_int ||
+ Py_TYPE(o)->tp_as_number->nb_float);
}
/* Binary operators */
@@ -839,8 +839,8 @@ PyNumber_Check(PyObject *o)
Order operations are tried until either a valid result or error:
w.op(v,w)[*], v.op(v,w), w.op(v,w)
- [*] only when Py_TYPE(v) != Py_TYPE(w) && Py_TYPE(w) is a subclass of
- Py_TYPE(v)
+ [*] only when Py_TYPE(v) != Py_TYPE(w) && Py_TYPE(w) is a subclass of
+ Py_TYPE(v)
*/
static PyObject *
@@ -850,16 +850,16 @@ binary_op1(PyObject *v, PyObject *w, const int op_slot)
binaryfunc slotv = NULL;
binaryfunc slotw = NULL;
- if (Py_TYPE(v)->tp_as_number != NULL)
- slotv = NB_BINOP(Py_TYPE(v)->tp_as_number, op_slot);
- if (!Py_IS_TYPE(w, Py_TYPE(v)) &&
- Py_TYPE(w)->tp_as_number != NULL) {
- slotw = NB_BINOP(Py_TYPE(w)->tp_as_number, op_slot);
+ if (Py_TYPE(v)->tp_as_number != NULL)
+ slotv = NB_BINOP(Py_TYPE(v)->tp_as_number, op_slot);
+ if (!Py_IS_TYPE(w, Py_TYPE(v)) &&
+ Py_TYPE(w)->tp_as_number != NULL) {
+ slotw = NB_BINOP(Py_TYPE(w)->tp_as_number, op_slot);
if (slotw == slotv)
slotw = NULL;
}
if (slotv) {
- if (slotw && PyType_IsSubtype(Py_TYPE(w), Py_TYPE(v))) {
+ if (slotw && PyType_IsSubtype(Py_TYPE(w), Py_TYPE(v))) {
x = slotw(v, w);
if (x != Py_NotImplemented)
return x;
@@ -887,8 +887,8 @@ binop_type_error(PyObject *v, PyObject *w, const char *op_name)
"unsupported operand type(s) for %.100s: "
"'%.100s' and '%.100s'",
op_name,
- Py_TYPE(v)->tp_name,
- Py_TYPE(w)->tp_name);
+ Py_TYPE(v)->tp_name,
+ Py_TYPE(w)->tp_name);
return NULL;
}
@@ -900,7 +900,7 @@ binary_op(PyObject *v, PyObject *w, const int op_slot, const char *op_name)
Py_DECREF(result);
if (op_slot == NB_SLOT(nb_rshift) &&
- PyCFunction_CheckExact(v) &&
+ PyCFunction_CheckExact(v) &&
strcmp(((PyCFunctionObject *)v)->m_ml->ml_name, "print") == 0)
{
PyErr_Format(PyExc_TypeError,
@@ -908,8 +908,8 @@ binary_op(PyObject *v, PyObject *w, const int op_slot, const char *op_name)
"'%.100s' and '%.100s'. Did you mean \"print(<message>, "
"file=<output_stream>)\"?",
op_name,
- Py_TYPE(v)->tp_name,
- Py_TYPE(w)->tp_name);
+ Py_TYPE(v)->tp_name,
+ Py_TYPE(w)->tp_name);
return NULL;
}
@@ -939,17 +939,17 @@ ternary_op(PyObject *v,
ternaryfunc slotw = NULL;
ternaryfunc slotz = NULL;
- mv = Py_TYPE(v)->tp_as_number;
- mw = Py_TYPE(w)->tp_as_number;
+ mv = Py_TYPE(v)->tp_as_number;
+ mw = Py_TYPE(w)->tp_as_number;
if (mv != NULL)
slotv = NB_TERNOP(mv, op_slot);
- if (!Py_IS_TYPE(w, Py_TYPE(v)) && mw != NULL) {
+ if (!Py_IS_TYPE(w, Py_TYPE(v)) && mw != NULL) {
slotw = NB_TERNOP(mw, op_slot);
if (slotw == slotv)
slotw = NULL;
}
if (slotv) {
- if (slotw && PyType_IsSubtype(Py_TYPE(w), Py_TYPE(v))) {
+ if (slotw && PyType_IsSubtype(Py_TYPE(w), Py_TYPE(v))) {
x = slotw(v, w, z);
if (x != Py_NotImplemented)
return x;
@@ -967,7 +967,7 @@ ternary_op(PyObject *v,
return x;
Py_DECREF(x); /* can't do it */
}
- mz = Py_TYPE(z)->tp_as_number;
+ mz = Py_TYPE(z)->tp_as_number;
if (mz != NULL) {
slotz = NB_TERNOP(mz, op_slot);
if (slotz == slotv || slotz == slotw)
@@ -985,16 +985,16 @@ ternary_op(PyObject *v,
PyExc_TypeError,
"unsupported operand type(s) for ** or pow(): "
"'%.100s' and '%.100s'",
- Py_TYPE(v)->tp_name,
- Py_TYPE(w)->tp_name);
+ Py_TYPE(v)->tp_name,
+ Py_TYPE(w)->tp_name);
else
PyErr_Format(
PyExc_TypeError,
"unsupported operand type(s) for pow(): "
"'%.100s', '%.100s', '%.100s'",
- Py_TYPE(v)->tp_name,
- Py_TYPE(w)->tp_name,
- Py_TYPE(z)->tp_name);
+ Py_TYPE(v)->tp_name,
+ Py_TYPE(w)->tp_name,
+ Py_TYPE(z)->tp_name);
return NULL;
}
@@ -1017,7 +1017,7 @@ PyNumber_Add(PyObject *v, PyObject *w)
{
PyObject *result = binary_op1(v, w, NB_SLOT(nb_add));
if (result == Py_NotImplemented) {
- PySequenceMethods *m = Py_TYPE(v)->tp_as_sequence;
+ PySequenceMethods *m = Py_TYPE(v)->tp_as_sequence;
Py_DECREF(result);
if (m && m->sq_concat) {
return (*m->sq_concat)(v, w);
@@ -1031,7 +1031,7 @@ static PyObject *
sequence_repeat(ssizeargfunc repeatfunc, PyObject *seq, PyObject *n)
{
Py_ssize_t count;
- if (_PyIndex_Check(n)) {
+ if (_PyIndex_Check(n)) {
count = PyNumber_AsSsize_t(n, PyExc_OverflowError);
if (count == -1 && PyErr_Occurred())
return NULL;
@@ -1048,8 +1048,8 @@ PyNumber_Multiply(PyObject *v, PyObject *w)
{
PyObject *result = binary_op1(v, w, NB_SLOT(nb_multiply));
if (result == Py_NotImplemented) {
- PySequenceMethods *mv = Py_TYPE(v)->tp_as_sequence;
- PySequenceMethods *mw = Py_TYPE(w)->tp_as_sequence;
+ PySequenceMethods *mv = Py_TYPE(v)->tp_as_sequence;
+ PySequenceMethods *mw = Py_TYPE(w)->tp_as_sequence;
Py_DECREF(result);
if (mv && mv->sq_repeat) {
return sequence_repeat(mv->sq_repeat, v, w);
@@ -1111,7 +1111,7 @@ PyNumber_Power(PyObject *v, PyObject *w, PyObject *z)
static PyObject *
binary_iop1(PyObject *v, PyObject *w, const int iop_slot, const int op_slot)
{
- PyNumberMethods *mv = Py_TYPE(v)->tp_as_number;
+ PyNumberMethods *mv = Py_TYPE(v)->tp_as_number;
if (mv != NULL) {
binaryfunc slot = NB_BINOP(mv, iop_slot);
if (slot) {
@@ -1171,7 +1171,7 @@ PyNumber_InPlaceAdd(PyObject *v, PyObject *w)
PyObject *result = binary_iop1(v, w, NB_SLOT(nb_inplace_add),
NB_SLOT(nb_add));
if (result == Py_NotImplemented) {
- PySequenceMethods *m = Py_TYPE(v)->tp_as_sequence;
+ PySequenceMethods *m = Py_TYPE(v)->tp_as_sequence;
Py_DECREF(result);
if (m != NULL) {
binaryfunc f = NULL;
@@ -1193,8 +1193,8 @@ PyNumber_InPlaceMultiply(PyObject *v, PyObject *w)
NB_SLOT(nb_multiply));
if (result == Py_NotImplemented) {
ssizeargfunc f = NULL;
- PySequenceMethods *mv = Py_TYPE(v)->tp_as_sequence;
- PySequenceMethods *mw = Py_TYPE(w)->tp_as_sequence;
+ PySequenceMethods *mv = Py_TYPE(v)->tp_as_sequence;
+ PySequenceMethods *mw = Py_TYPE(w)->tp_as_sequence;
Py_DECREF(result);
if (mv != NULL) {
f = mv->sq_inplace_repeat;
@@ -1232,8 +1232,8 @@ PyNumber_InPlaceRemainder(PyObject *v, PyObject *w)
PyObject *
PyNumber_InPlacePower(PyObject *v, PyObject *w, PyObject *z)
{
- if (Py_TYPE(v)->tp_as_number &&
- Py_TYPE(v)->tp_as_number->nb_inplace_power != NULL) {
+ if (Py_TYPE(v)->tp_as_number &&
+ Py_TYPE(v)->tp_as_number->nb_inplace_power != NULL) {
return ternary_op(v, w, z, NB_SLOT(nb_inplace_power), "**=");
}
else {
@@ -1253,7 +1253,7 @@ PyNumber_Negative(PyObject *o)
return null_error();
}
- m = Py_TYPE(o)->tp_as_number;
+ m = Py_TYPE(o)->tp_as_number;
if (m && m->nb_negative)
return (*m->nb_negative)(o);
@@ -1269,7 +1269,7 @@ PyNumber_Positive(PyObject *o)
return null_error();
}
- m = Py_TYPE(o)->tp_as_number;
+ m = Py_TYPE(o)->tp_as_number;
if (m && m->nb_positive)
return (*m->nb_positive)(o);
@@ -1285,7 +1285,7 @@ PyNumber_Invert(PyObject *o)
return null_error();
}
- m = Py_TYPE(o)->tp_as_number;
+ m = Py_TYPE(o)->tp_as_number;
if (m && m->nb_invert)
return (*m->nb_invert)(o);
@@ -1301,21 +1301,21 @@ PyNumber_Absolute(PyObject *o)
return null_error();
}
- m = Py_TYPE(o)->tp_as_number;
+ m = Py_TYPE(o)->tp_as_number;
if (m && m->nb_absolute)
return m->nb_absolute(o);
return type_error("bad operand type for abs(): '%.200s'", o);
}
-
-int
-PyIndex_Check(PyObject *obj)
-{
- return _PyIndex_Check(obj);
-}
-
-
+
+int
+PyIndex_Check(PyObject *obj)
+{
+ return _PyIndex_Check(obj);
+}
+
+
/* Return a Python int from the object item.
Raise TypeError if the result is not an int
or if the object cannot be interpreted as an index.
@@ -1332,19 +1332,19 @@ PyNumber_Index(PyObject *item)
Py_INCREF(item);
return item;
}
- if (!_PyIndex_Check(item)) {
+ if (!_PyIndex_Check(item)) {
PyErr_Format(PyExc_TypeError,
"'%.200s' object cannot be interpreted "
- "as an integer", Py_TYPE(item)->tp_name);
+ "as an integer", Py_TYPE(item)->tp_name);
return NULL;
}
- result = Py_TYPE(item)->tp_as_number->nb_index(item);
+ result = Py_TYPE(item)->tp_as_number->nb_index(item);
if (!result || PyLong_CheckExact(result))
return result;
if (!PyLong_Check(result)) {
PyErr_Format(PyExc_TypeError,
"__index__ returned non-int (type %.200s)",
- Py_TYPE(result)->tp_name);
+ Py_TYPE(result)->tp_name);
Py_DECREF(result);
return NULL;
}
@@ -1353,7 +1353,7 @@ PyNumber_Index(PyObject *item)
"__index__ returned non-int (type %.200s). "
"The ability to return an instance of a strict subclass of int "
"is deprecated, and may be removed in a future version of Python.",
- Py_TYPE(result)->tp_name)) {
+ Py_TYPE(result)->tp_name)) {
Py_DECREF(result);
return NULL;
}
@@ -1398,7 +1398,7 @@ PyNumber_AsSsize_t(PyObject *item, PyObject *err)
/* Otherwise replace the error with caller's error object. */
PyErr_Format(err,
"cannot fit '%.200s' into an index-sized integer",
- Py_TYPE(item)->tp_name);
+ Py_TYPE(item)->tp_name);
}
finish:
@@ -1424,21 +1424,21 @@ PyNumber_Long(PyObject *o)
Py_INCREF(o);
return o;
}
- m = Py_TYPE(o)->tp_as_number;
+ m = Py_TYPE(o)->tp_as_number;
if (m && m->nb_int) { /* This should include subclasses of int */
- result = _PyLong_FromNbInt(o);
+ result = _PyLong_FromNbInt(o);
+ if (result != NULL && !PyLong_CheckExact(result)) {
+ Py_SETREF(result, _PyLong_Copy((PyLongObject *)result));
+ }
+ return result;
+ }
+ if (m && m->nb_index) {
+ result = _PyLong_FromNbIndexOrNbInt(o);
if (result != NULL && !PyLong_CheckExact(result)) {
Py_SETREF(result, _PyLong_Copy((PyLongObject *)result));
}
return result;
}
- if (m && m->nb_index) {
- result = _PyLong_FromNbIndexOrNbInt(o);
- if (result != NULL && !PyLong_CheckExact(result)) {
- Py_SETREF(result, _PyLong_Copy((PyLongObject *)result));
- }
- return result;
- }
trunc_func = _PyObject_LookupSpecial(o, &PyId___trunc__);
if (trunc_func) {
result = _PyObject_CallNoArg(trunc_func);
@@ -1452,16 +1452,16 @@ PyNumber_Long(PyObject *o)
}
/* __trunc__ is specified to return an Integral type,
but int() needs to return an int. */
- m = Py_TYPE(result)->tp_as_number;
- if (m == NULL || (m->nb_index == NULL && m->nb_int == NULL)) {
+ m = Py_TYPE(result)->tp_as_number;
+ if (m == NULL || (m->nb_index == NULL && m->nb_int == NULL)) {
PyErr_Format(
PyExc_TypeError,
"__trunc__ returned non-Integral (type %.200s)",
- Py_TYPE(result)->tp_name);
+ Py_TYPE(result)->tp_name);
Py_DECREF(result);
return NULL;
}
- Py_SETREF(result, _PyLong_FromNbIndexOrNbInt(result));
+ Py_SETREF(result, _PyLong_FromNbIndexOrNbInt(result));
if (result != NULL && !PyLong_CheckExact(result)) {
Py_SETREF(result, _PyLong_Copy((PyLongObject *)result));
}
@@ -1519,7 +1519,7 @@ PyNumber_Float(PyObject *o)
Py_INCREF(o);
return o;
}
- m = Py_TYPE(o)->tp_as_number;
+ m = Py_TYPE(o)->tp_as_number;
if (m && m->nb_float) { /* This should include subclasses of float */
PyObject *res = m->nb_float(o);
double val;
@@ -1529,7 +1529,7 @@ PyNumber_Float(PyObject *o)
if (!PyFloat_Check(res)) {
PyErr_Format(PyExc_TypeError,
"%.50s.__float__ returned non-float (type %.50s)",
- Py_TYPE(o)->tp_name, Py_TYPE(res)->tp_name);
+ Py_TYPE(o)->tp_name, Py_TYPE(res)->tp_name);
Py_DECREF(res);
return NULL;
}
@@ -1538,7 +1538,7 @@ PyNumber_Float(PyObject *o)
"%.50s.__float__ returned non-float (type %.50s). "
"The ability to return an instance of a strict subclass of float "
"is deprecated, and may be removed in a future version of Python.",
- Py_TYPE(o)->tp_name, Py_TYPE(res)->tp_name)) {
+ Py_TYPE(o)->tp_name, Py_TYPE(res)->tp_name)) {
Py_DECREF(res);
return NULL;
}
@@ -1546,18 +1546,18 @@ PyNumber_Float(PyObject *o)
Py_DECREF(res);
return PyFloat_FromDouble(val);
}
- if (m && m->nb_index) {
- PyObject *res = PyNumber_Index(o);
- if (!res) {
- return NULL;
- }
- double val = PyLong_AsDouble(res);
- Py_DECREF(res);
- if (val == -1.0 && PyErr_Occurred()) {
- return NULL;
- }
- return PyFloat_FromDouble(val);
- }
+ if (m && m->nb_index) {
+ PyObject *res = PyNumber_Index(o);
+ if (!res) {
+ return NULL;
+ }
+ double val = PyLong_AsDouble(res);
+ Py_DECREF(res);
+ if (val == -1.0 && PyErr_Occurred()) {
+ return NULL;
+ }
+ return PyFloat_FromDouble(val);
+ }
if (PyFloat_Check(o)) { /* A float subclass with nb_float == NULL */
return PyFloat_FromDouble(PyFloat_AS_DOUBLE(o));
}
@@ -1568,15 +1568,15 @@ PyNumber_Float(PyObject *o)
PyObject *
PyNumber_ToBase(PyObject *n, int base)
{
- if (!(base == 2 || base == 8 || base == 10 || base == 16)) {
- PyErr_SetString(PyExc_SystemError,
- "PyNumber_ToBase: base must be 2, 8, 10 or 16");
- return NULL;
- }
+ if (!(base == 2 || base == 8 || base == 10 || base == 16)) {
+ PyErr_SetString(PyExc_SystemError,
+ "PyNumber_ToBase: base must be 2, 8, 10 or 16");
+ return NULL;
+ }
PyObject *index = PyNumber_Index(n);
if (!index)
return NULL;
- PyObject *res = _PyLong_Format(index, base);
+ PyObject *res = _PyLong_Format(index, base);
Py_DECREF(index);
return res;
}
@@ -1589,8 +1589,8 @@ PySequence_Check(PyObject *s)
{
if (PyDict_Check(s))
return 0;
- return Py_TYPE(s)->tp_as_sequence &&
- Py_TYPE(s)->tp_as_sequence->sq_item != NULL;
+ return Py_TYPE(s)->tp_as_sequence &&
+ Py_TYPE(s)->tp_as_sequence->sq_item != NULL;
}
Py_ssize_t
@@ -1603,17 +1603,17 @@ PySequence_Size(PyObject *s)
return -1;
}
- m = Py_TYPE(s)->tp_as_sequence;
+ m = Py_TYPE(s)->tp_as_sequence;
if (m && m->sq_length) {
Py_ssize_t len = m->sq_length(s);
assert(len >= 0 || PyErr_Occurred());
return len;
}
- if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_length) {
- type_error("%.200s is not a sequence", s);
- return -1;
- }
+ if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_length) {
+ type_error("%.200s is not a sequence", s);
+ return -1;
+ }
type_error("object of type '%.200s' has no len()", s);
return -1;
}
@@ -1635,7 +1635,7 @@ PySequence_Concat(PyObject *s, PyObject *o)
return null_error();
}
- m = Py_TYPE(s)->tp_as_sequence;
+ m = Py_TYPE(s)->tp_as_sequence;
if (m && m->sq_concat)
return m->sq_concat(s, o);
@@ -1660,7 +1660,7 @@ PySequence_Repeat(PyObject *o, Py_ssize_t count)
return null_error();
}
- m = Py_TYPE(o)->tp_as_sequence;
+ m = Py_TYPE(o)->tp_as_sequence;
if (m && m->sq_repeat)
return m->sq_repeat(o, count);
@@ -1690,7 +1690,7 @@ PySequence_InPlaceConcat(PyObject *s, PyObject *o)
return null_error();
}
- m = Py_TYPE(s)->tp_as_sequence;
+ m = Py_TYPE(s)->tp_as_sequence;
if (m && m->sq_inplace_concat)
return m->sq_inplace_concat(s, o);
if (m && m->sq_concat)
@@ -1715,7 +1715,7 @@ PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)
return null_error();
}
- m = Py_TYPE(o)->tp_as_sequence;
+ m = Py_TYPE(o)->tp_as_sequence;
if (m && m->sq_inplace_repeat)
return m->sq_inplace_repeat(o, count);
if (m && m->sq_repeat)
@@ -1745,7 +1745,7 @@ PySequence_GetItem(PyObject *s, Py_ssize_t i)
return null_error();
}
- m = Py_TYPE(s)->tp_as_sequence;
+ m = Py_TYPE(s)->tp_as_sequence;
if (m && m->sq_item) {
if (i < 0) {
if (m->sq_length) {
@@ -1760,9 +1760,9 @@ PySequence_GetItem(PyObject *s, Py_ssize_t i)
return m->sq_item(s, i);
}
- if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_subscript) {
- return type_error("%.200s is not a sequence", s);
- }
+ if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_subscript) {
+ return type_error("%.200s is not a sequence", s);
+ }
return type_error("'%.200s' object does not support indexing", s);
}
@@ -1775,7 +1775,7 @@ PySequence_GetSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2)
return null_error();
}
- mp = Py_TYPE(s)->tp_as_mapping;
+ mp = Py_TYPE(s)->tp_as_mapping;
if (mp && mp->mp_subscript) {
PyObject *res;
PyObject *slice = _PySlice_FromIndices(i1, i2);
@@ -1799,7 +1799,7 @@ PySequence_SetItem(PyObject *s, Py_ssize_t i, PyObject *o)
return -1;
}
- m = Py_TYPE(s)->tp_as_sequence;
+ m = Py_TYPE(s)->tp_as_sequence;
if (m && m->sq_ass_item) {
if (i < 0) {
if (m->sq_length) {
@@ -1814,10 +1814,10 @@ PySequence_SetItem(PyObject *s, Py_ssize_t i, PyObject *o)
return m->sq_ass_item(s, i, o);
}
- if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_ass_subscript) {
- type_error("%.200s is not a sequence", s);
- return -1;
- }
+ if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_ass_subscript) {
+ type_error("%.200s is not a sequence", s);
+ return -1;
+ }
type_error("'%.200s' object does not support item assignment", s);
return -1;
}
@@ -1832,7 +1832,7 @@ PySequence_DelItem(PyObject *s, Py_ssize_t i)
return -1;
}
- m = Py_TYPE(s)->tp_as_sequence;
+ m = Py_TYPE(s)->tp_as_sequence;
if (m && m->sq_ass_item) {
if (i < 0) {
if (m->sq_length) {
@@ -1847,10 +1847,10 @@ PySequence_DelItem(PyObject *s, Py_ssize_t i)
return m->sq_ass_item(s, i, (PyObject *)NULL);
}
- if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_ass_subscript) {
- type_error("%.200s is not a sequence", s);
- return -1;
- }
+ if (Py_TYPE(s)->tp_as_mapping && Py_TYPE(s)->tp_as_mapping->mp_ass_subscript) {
+ type_error("%.200s is not a sequence", s);
+ return -1;
+ }
type_error("'%.200s' object doesn't support item deletion", s);
return -1;
}
@@ -1865,7 +1865,7 @@ PySequence_SetSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2, PyObject *o)
return -1;
}
- mp = Py_TYPE(s)->tp_as_mapping;
+ mp = Py_TYPE(s)->tp_as_mapping;
if (mp && mp->mp_ass_subscript) {
int res;
PyObject *slice = _PySlice_FromIndices(i1, i2);
@@ -1890,7 +1890,7 @@ PySequence_DelSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2)
return -1;
}
- mp = Py_TYPE(s)->tp_as_mapping;
+ mp = Py_TYPE(s)->tp_as_mapping;
if (mp && mp->mp_ass_subscript) {
int res;
PyObject *slice = _PySlice_FromIndices(i1, i2);
@@ -2058,9 +2058,9 @@ _PySequence_IterSearch(PyObject *seq, PyObject *obj, int operation)
it = PyObject_GetIter(seq);
if (it == NULL) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- type_error("argument of type '%.200s' is not iterable", seq);
- }
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ type_error("argument of type '%.200s' is not iterable", seq);
+ }
return -1;
}
@@ -2074,7 +2074,7 @@ _PySequence_IterSearch(PyObject *seq, PyObject *obj, int operation)
break;
}
- cmp = PyObject_RichCompareBool(item, obj, Py_EQ);
+ cmp = PyObject_RichCompareBool(item, obj, Py_EQ);
Py_DECREF(item);
if (cmp < 0)
goto Fail;
@@ -2142,7 +2142,7 @@ int
PySequence_Contains(PyObject *seq, PyObject *ob)
{
Py_ssize_t result;
- PySequenceMethods *sqm = Py_TYPE(seq)->tp_as_sequence;
+ PySequenceMethods *sqm = Py_TYPE(seq)->tp_as_sequence;
if (sqm != NULL && sqm->sq_contains != NULL)
return (*sqm->sq_contains)(seq, ob);
result = _PySequence_IterSearch(seq, ob, PY_ITERSEARCH_CONTAINS);
@@ -2168,8 +2168,8 @@ PySequence_Index(PyObject *s, PyObject *o)
int
PyMapping_Check(PyObject *o)
{
- return o && Py_TYPE(o)->tp_as_mapping &&
- Py_TYPE(o)->tp_as_mapping->mp_subscript;
+ return o && Py_TYPE(o)->tp_as_mapping &&
+ Py_TYPE(o)->tp_as_mapping->mp_subscript;
}
Py_ssize_t
@@ -2182,18 +2182,18 @@ PyMapping_Size(PyObject *o)
return -1;
}
- m = Py_TYPE(o)->tp_as_mapping;
+ m = Py_TYPE(o)->tp_as_mapping;
if (m && m->mp_length) {
Py_ssize_t len = m->mp_length(o);
assert(len >= 0 || PyErr_Occurred());
return len;
}
- if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_length) {
- type_error("%.200s is not a mapping", o);
- return -1;
- }
- /* PyMapping_Size() can be called from PyObject_Size(). */
+ if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_length) {
+ type_error("%.200s is not a mapping", o);
+ return -1;
+ }
+ /* PyMapping_Size() can be called from PyObject_Size(). */
type_error("object of type '%.200s' has no len()", o);
return -1;
}
@@ -2279,7 +2279,7 @@ method_output_as_list(PyObject *o, _Py_Identifier *meth_id)
PyObject *it, *result, *meth_output;
assert(o != NULL);
- meth_output = _PyObject_CallMethodIdNoArgs(o, meth_id);
+ meth_output = _PyObject_CallMethodIdNoArgs(o, meth_id);
if (meth_output == NULL || PyList_CheckExact(meth_output)) {
return meth_output;
}
@@ -2289,7 +2289,7 @@ method_output_as_list(PyObject *o, _Py_Identifier *meth_id)
PyErr_Format(PyExc_TypeError,
"%.200s.%U() returned a non-iterable (type %.200s)",
Py_TYPE(o)->tp_name,
- _PyUnicode_FromId(meth_id),
+ _PyUnicode_FromId(meth_id),
Py_TYPE(meth_output)->tp_name);
}
Py_DECREF(meth_output);
@@ -2392,16 +2392,16 @@ abstract_issubclass(PyObject *derived, PyObject *cls)
int r = 0;
while (1) {
- if (derived == cls) {
- Py_XDECREF(bases); /* See below comment */
+ if (derived == cls) {
+ Py_XDECREF(bases); /* See below comment */
return 1;
- }
- /* Use XSETREF to drop bases reference *after* finishing with
- derived; bases might be the only reference to it.
- XSETREF is used instead of SETREF, because bases is NULL on the
- first iteration of the loop.
- */
- Py_XSETREF(bases, abstract_get_bases(derived));
+ }
+ /* Use XSETREF to drop bases reference *after* finishing with
+ derived; bases might be the only reference to it.
+ XSETREF is used instead of SETREF, because bases is NULL on the
+ first iteration of the loop.
+ */
+ Py_XSETREF(bases, abstract_get_bases(derived));
if (bases == NULL) {
if (PyErr_Occurred())
return -1;
@@ -2417,22 +2417,22 @@ abstract_issubclass(PyObject *derived, PyObject *cls)
derived = PyTuple_GET_ITEM(bases, 0);
continue;
}
- break;
- }
- assert(n >= 2);
- if (Py_EnterRecursiveCall(" in __issubclass__")) {
+ break;
+ }
+ assert(n >= 2);
+ if (Py_EnterRecursiveCall(" in __issubclass__")) {
Py_DECREF(bases);
- return -1;
+ return -1;
}
- for (i = 0; i < n; i++) {
- r = abstract_issubclass(PyTuple_GET_ITEM(bases, i), cls);
- if (r != 0) {
- break;
- }
- }
- Py_LeaveRecursiveCall();
- Py_DECREF(bases);
- return r;
+ for (i = 0; i < n; i++) {
+ r = abstract_issubclass(PyTuple_GET_ITEM(bases, i), cls);
+ if (r != 0) {
+ break;
+ }
+ }
+ Py_LeaveRecursiveCall();
+ Py_DECREF(bases);
+ return r;
}
static int
@@ -2450,7 +2450,7 @@ check_class(PyObject *cls, const char *error)
}
static int
-object_isinstance(PyObject *inst, PyObject *cls)
+object_isinstance(PyObject *inst, PyObject *cls)
{
PyObject *icls;
int retval;
@@ -2461,7 +2461,7 @@ object_isinstance(PyObject *inst, PyObject *cls)
if (retval == 0) {
retval = _PyObject_LookupAttrId(inst, &PyId___class__, &icls);
if (icls != NULL) {
- if (icls != (PyObject *)(Py_TYPE(inst)) && PyType_Check(icls)) {
+ if (icls != (PyObject *)(Py_TYPE(inst)) && PyType_Check(icls)) {
retval = PyType_IsSubtype(
(PyTypeObject *)icls,
(PyTypeObject *)cls);
@@ -2487,77 +2487,77 @@ object_isinstance(PyObject *inst, PyObject *cls)
return retval;
}
-static int
-object_recursive_isinstance(PyThreadState *tstate, PyObject *inst, PyObject *cls)
+static int
+object_recursive_isinstance(PyThreadState *tstate, PyObject *inst, PyObject *cls)
{
_Py_IDENTIFIER(__instancecheck__);
/* Quick test for an exact match */
- if (Py_IS_TYPE(inst, (PyTypeObject *)cls)) {
+ if (Py_IS_TYPE(inst, (PyTypeObject *)cls)) {
return 1;
- }
+ }
/* We know what type's __instancecheck__ does. */
if (PyType_CheckExact(cls)) {
- return object_isinstance(inst, cls);
+ return object_isinstance(inst, cls);
}
if (PyTuple_Check(cls)) {
- /* Not a general sequence -- that opens up the road to
- recursion and stack overflow. */
- if (_Py_EnterRecursiveCall(tstate, " in __instancecheck__")) {
- return -1;
- }
- Py_ssize_t n = PyTuple_GET_SIZE(cls);
+ /* Not a general sequence -- that opens up the road to
+ recursion and stack overflow. */
+ if (_Py_EnterRecursiveCall(tstate, " in __instancecheck__")) {
+ return -1;
+ }
+ Py_ssize_t n = PyTuple_GET_SIZE(cls);
int r = 0;
- for (Py_ssize_t i = 0; i < n; ++i) {
+ for (Py_ssize_t i = 0; i < n; ++i) {
PyObject *item = PyTuple_GET_ITEM(cls, i);
- r = object_recursive_isinstance(tstate, inst, item);
- if (r != 0) {
+ r = object_recursive_isinstance(tstate, inst, item);
+ if (r != 0) {
/* either found it, or got an error */
break;
- }
+ }
}
- _Py_LeaveRecursiveCall(tstate);
+ _Py_LeaveRecursiveCall(tstate);
return r;
}
- PyObject *checker = _PyObject_LookupSpecial(cls, &PyId___instancecheck__);
+ PyObject *checker = _PyObject_LookupSpecial(cls, &PyId___instancecheck__);
if (checker != NULL) {
- if (_Py_EnterRecursiveCall(tstate, " in __instancecheck__")) {
+ if (_Py_EnterRecursiveCall(tstate, " in __instancecheck__")) {
Py_DECREF(checker);
- return -1;
+ return -1;
}
-
- PyObject *res = PyObject_CallOneArg(checker, inst);
- _Py_LeaveRecursiveCall(tstate);
+
+ PyObject *res = PyObject_CallOneArg(checker, inst);
+ _Py_LeaveRecursiveCall(tstate);
Py_DECREF(checker);
-
- if (res == NULL) {
- return -1;
+
+ if (res == NULL) {
+ return -1;
}
- int ok = PyObject_IsTrue(res);
- Py_DECREF(res);
-
+ int ok = PyObject_IsTrue(res);
+ Py_DECREF(res);
+
return ok;
}
- else if (_PyErr_Occurred(tstate)) {
+ else if (_PyErr_Occurred(tstate)) {
return -1;
- }
-
- /* cls has no __instancecheck__() method */
- return object_isinstance(inst, cls);
-}
-
-
-int
-PyObject_IsInstance(PyObject *inst, PyObject *cls)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return object_recursive_isinstance(tstate, inst, cls);
-}
-
-
+ }
+
+ /* cls has no __instancecheck__() method */
+ return object_isinstance(inst, cls);
+}
+
+
+int
+PyObject_IsInstance(PyObject *inst, PyObject *cls)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return object_recursive_isinstance(tstate, inst, cls);
+}
+
+
static int
recursive_issubclass(PyObject *derived, PyObject *cls)
{
@@ -2576,8 +2576,8 @@ recursive_issubclass(PyObject *derived, PyObject *cls)
return abstract_issubclass(derived, cls);
}
-static int
-object_issubclass(PyThreadState *tstate, PyObject *derived, PyObject *cls)
+static int
+object_issubclass(PyThreadState *tstate, PyObject *derived, PyObject *cls)
{
_Py_IDENTIFIER(__subclasscheck__);
PyObject *checker;
@@ -2592,31 +2592,31 @@ object_issubclass(PyThreadState *tstate, PyObject *derived, PyObject *cls)
if (PyTuple_Check(cls)) {
- if (_Py_EnterRecursiveCall(tstate, " in __subclasscheck__")) {
+ if (_Py_EnterRecursiveCall(tstate, " in __subclasscheck__")) {
return -1;
- }
- Py_ssize_t n = PyTuple_GET_SIZE(cls);
- int r = 0;
- for (Py_ssize_t i = 0; i < n; ++i) {
+ }
+ Py_ssize_t n = PyTuple_GET_SIZE(cls);
+ int r = 0;
+ for (Py_ssize_t i = 0; i < n; ++i) {
PyObject *item = PyTuple_GET_ITEM(cls, i);
- r = object_issubclass(tstate, derived, item);
+ r = object_issubclass(tstate, derived, item);
if (r != 0)
/* either found it, or got an error */
break;
}
- _Py_LeaveRecursiveCall(tstate);
+ _Py_LeaveRecursiveCall(tstate);
return r;
}
checker = _PyObject_LookupSpecial(cls, &PyId___subclasscheck__);
if (checker != NULL) {
int ok = -1;
- if (_Py_EnterRecursiveCall(tstate, " in __subclasscheck__")) {
+ if (_Py_EnterRecursiveCall(tstate, " in __subclasscheck__")) {
Py_DECREF(checker);
return ok;
}
- PyObject *res = PyObject_CallOneArg(checker, derived);
- _Py_LeaveRecursiveCall(tstate);
+ PyObject *res = PyObject_CallOneArg(checker, derived);
+ _Py_LeaveRecursiveCall(tstate);
Py_DECREF(checker);
if (res != NULL) {
ok = PyObject_IsTrue(res);
@@ -2624,27 +2624,27 @@ object_issubclass(PyThreadState *tstate, PyObject *derived, PyObject *cls)
}
return ok;
}
- else if (_PyErr_Occurred(tstate)) {
+ else if (_PyErr_Occurred(tstate)) {
return -1;
- }
-
+ }
+
/* Probably never reached anymore. */
return recursive_issubclass(derived, cls);
}
-
+
+int
+PyObject_IsSubclass(PyObject *derived, PyObject *cls)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return object_issubclass(tstate, derived, cls);
+}
+
+
int
-PyObject_IsSubclass(PyObject *derived, PyObject *cls)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return object_issubclass(tstate, derived, cls);
-}
-
-
-int
_PyObject_RealIsInstance(PyObject *inst, PyObject *cls)
{
- return object_isinstance(inst, cls);
+ return object_isinstance(inst, cls);
}
int
@@ -2657,7 +2657,7 @@ _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls)
PyObject *
PyObject_GetIter(PyObject *o)
{
- PyTypeObject *t = Py_TYPE(o);
+ PyTypeObject *t = Py_TYPE(o);
getiterfunc f;
f = t->tp_iter;
@@ -2672,7 +2672,7 @@ PyObject_GetIter(PyObject *o)
PyErr_Format(PyExc_TypeError,
"iter() returned non-iterator "
"of type '%.100s'",
- Py_TYPE(res)->tp_name);
+ Py_TYPE(res)->tp_name);
Py_DECREF(res);
res = NULL;
}
@@ -2680,14 +2680,14 @@ PyObject_GetIter(PyObject *o)
}
}
-#undef PyIter_Check
-
-int PyIter_Check(PyObject *obj)
-{
- return Py_TYPE(obj)->tp_iternext != NULL &&
- Py_TYPE(obj)->tp_iternext != &_PyObject_NextNotImplemented;
-}
-
+#undef PyIter_Check
+
+int PyIter_Check(PyObject *obj)
+{
+ return Py_TYPE(obj)->tp_iternext != NULL &&
+ Py_TYPE(obj)->tp_iternext != &_PyObject_NextNotImplemented;
+}
+
/* Return next item.
* If an error occurs, return NULL. PyErr_Occurred() will be true.
* If the iteration terminates normally, return NULL and clear the
@@ -2699,7 +2699,7 @@ PyObject *
PyIter_Next(PyObject *iter)
{
PyObject *result;
- result = (*Py_TYPE(iter)->tp_iternext)(iter);
+ result = (*Py_TYPE(iter)->tp_iternext)(iter);
if (result == NULL &&
PyErr_Occurred() &&
PyErr_ExceptionMatches(PyExc_StopIteration))
diff --git a/contrib/tools/python3/src/Objects/accu.c b/contrib/tools/python3/src/Objects/accu.c
index f83c977d57..c8b5d382e3 100644
--- a/contrib/tools/python3/src/Objects/accu.c
+++ b/contrib/tools/python3/src/Objects/accu.c
@@ -1,7 +1,7 @@
/* Accumulator struct implementation */
#include "Python.h"
-#include "pycore_accu.h"
+#include "pycore_accu.h"
static PyObject *
join_list_unicode(PyObject *lst)
diff --git a/contrib/tools/python3/src/Objects/boolobject.c b/contrib/tools/python3/src/Objects/boolobject.c
index 72ce51bf1b..720835b98a 100644
--- a/contrib/tools/python3/src/Objects/boolobject.c
+++ b/contrib/tools/python3/src/Objects/boolobject.c
@@ -137,17 +137,17 @@ PyTypeObject PyBool_Type = {
sizeof(struct _longobject),
0,
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
bool_repr, /* tp_repr */
&bool_as_number, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
- 0, /* tp_str */
+ 0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
diff --git a/contrib/tools/python3/src/Objects/bytearrayobject.c b/contrib/tools/python3/src/Objects/bytearrayobject.c
index c1e504bed5..a1aa88086e 100644
--- a/contrib/tools/python3/src/Objects/bytearrayobject.c
+++ b/contrib/tools/python3/src/Objects/bytearrayobject.c
@@ -2,9 +2,9 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_bytes_methods.h"
-#include "pycore_object.h"
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_bytes_methods.h"
+#include "pycore_object.h"
#include "bytesobject.h"
#include "pystrhex.h"
@@ -87,7 +87,7 @@ _canresize(PyByteArrayObject *self)
PyObject *
PyByteArray_FromObject(PyObject *input)
{
- return PyObject_CallOneArg((PyObject *)&PyByteArray_Type, input);
+ return PyObject_CallOneArg((PyObject *)&PyByteArray_Type, input);
}
static PyObject *
@@ -146,7 +146,7 @@ PyByteArray_FromStringAndSize(const char *bytes, Py_ssize_t size)
memcpy(new->ob_bytes, bytes, size);
new->ob_bytes[size] = '\0'; /* Trailing null byte */
}
- Py_SET_SIZE(new, size);
+ Py_SET_SIZE(new, size);
new->ob_alloc = alloc;
new->ob_start = new->ob_bytes;
new->ob_exports = 0;
@@ -204,7 +204,7 @@ PyByteArray_Resize(PyObject *self, Py_ssize_t requested_size)
}
else {
/* Minor downsize; quick exit */
- Py_SET_SIZE(self, size);
+ Py_SET_SIZE(self, size);
PyByteArray_AS_STRING(self)[size] = '\0'; /* Trailing null */
return 0;
}
@@ -244,7 +244,7 @@ PyByteArray_Resize(PyObject *self, Py_ssize_t requested_size)
}
obj->ob_bytes = obj->ob_start = sval;
- Py_SET_SIZE(self, size);
+ Py_SET_SIZE(self, size);
obj->ob_alloc = alloc;
obj->ob_bytes[size] = '\0'; /* Trailing null byte */
@@ -273,9 +273,9 @@ PyByteArray_Concat(PyObject *a, PyObject *b)
result = (PyByteArrayObject *) \
PyByteArray_FromStringAndSize(NULL, va.len + vb.len);
- // result->ob_bytes is NULL if result is an empty string:
- // if va.len + vb.len equals zero.
- if (result != NULL && result->ob_bytes != NULL) {
+ // result->ob_bytes is NULL if result is an empty string:
+ // if va.len + vb.len equals zero.
+ if (result != NULL && result->ob_bytes != NULL) {
memcpy(result->ob_bytes, va.buf, va.len);
memcpy(result->ob_bytes + va.len, vb.buf, vb.len);
}
@@ -329,7 +329,7 @@ bytearray_repeat(PyByteArrayObject *self, Py_ssize_t count)
PyByteArrayObject *result;
Py_ssize_t mysize;
Py_ssize_t size;
- const char *buf;
+ const char *buf;
if (count < 0)
count = 0;
@@ -338,14 +338,14 @@ bytearray_repeat(PyByteArrayObject *self, Py_ssize_t count)
return PyErr_NoMemory();
size = mysize * count;
result = (PyByteArrayObject *)PyByteArray_FromStringAndSize(NULL, size);
- buf = PyByteArray_AS_STRING(self);
+ buf = PyByteArray_AS_STRING(self);
if (result != NULL && size != 0) {
if (mysize == 1)
- memset(result->ob_bytes, buf[0], size);
+ memset(result->ob_bytes, buf[0], size);
else {
Py_ssize_t i;
for (i = 0; i < count; i++)
- memcpy(result->ob_bytes + i*mysize, buf, mysize);
+ memcpy(result->ob_bytes + i*mysize, buf, mysize);
}
}
return (PyObject *)result;
@@ -393,7 +393,7 @@ bytearray_getitem(PyByteArrayObject *self, Py_ssize_t i)
static PyObject *
bytearray_subscript(PyByteArrayObject *self, PyObject *index)
{
- if (_PyIndex_Check(index)) {
+ if (_PyIndex_Check(index)) {
Py_ssize_t i = PyNumber_AsSsize_t(index, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
@@ -409,8 +409,8 @@ bytearray_subscript(PyByteArrayObject *self, PyObject *index)
return PyLong_FromLong((unsigned char)(PyByteArray_AS_STRING(self)[i]));
}
else if (PySlice_Check(index)) {
- Py_ssize_t start, stop, step, slicelength, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelength, i;
+ size_t cur;
if (PySlice_Unpack(index, &start, &stop, &step) < 0) {
return NULL;
}
@@ -500,7 +500,7 @@ bytearray_setslice_linear(PyByteArrayObject *self,
}
/* memmove() removed bytes, the bytearray object cannot be
restored in its previous state. */
- Py_SET_SIZE(self, Py_SIZE(self) + growth);
+ Py_SET_SIZE(self, Py_SIZE(self) + growth);
res = -1;
}
buf = PyByteArray_AS_STRING(self);
@@ -612,7 +612,7 @@ bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index, PyObject *valu
char *buf, *bytes;
buf = PyByteArray_AS_STRING(self);
- if (_PyIndex_Check(index)) {
+ if (_PyIndex_Check(index)) {
Py_ssize_t i = PyNumber_AsSsize_t(index, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
@@ -773,9 +773,9 @@ bytearray_init(PyByteArrayObject *self, PyObject *args, PyObject *kwds)
if (arg == NULL) {
if (encoding != NULL || errors != NULL) {
PyErr_SetString(PyExc_TypeError,
- encoding != NULL ?
- "encoding without a string argument" :
- "errors without a string argument");
+ encoding != NULL ?
+ "encoding without a string argument" :
+ "errors without a string argument");
return -1;
}
return 0;
@@ -804,14 +804,14 @@ bytearray_init(PyByteArrayObject *self, PyObject *args, PyObject *kwds)
/* If it's not unicode, there can't be encoding or errors */
if (encoding != NULL || errors != NULL) {
PyErr_SetString(PyExc_TypeError,
- encoding != NULL ?
- "encoding without a string argument" :
- "errors without a string argument");
+ encoding != NULL ?
+ "encoding without a string argument" :
+ "errors without a string argument");
return -1;
}
/* Is it an int? */
- if (_PyIndex_Check(arg)) {
+ if (_PyIndex_Check(arg)) {
count = PyNumber_AsSsize_t(arg, PyExc_OverflowError);
if (count == -1 && PyErr_Occurred()) {
if (!PyErr_ExceptionMatches(PyExc_TypeError))
@@ -854,14 +854,14 @@ bytearray_init(PyByteArrayObject *self, PyObject *args, PyObject *kwds)
/* Get the iterator */
it = PyObject_GetIter(arg);
- if (it == NULL) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_Format(PyExc_TypeError,
- "cannot convert '%.200s' object to bytearray",
- Py_TYPE(arg)->tp_name);
- }
+ if (it == NULL) {
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_Format(PyExc_TypeError,
+ "cannot convert '%.200s' object to bytearray",
+ Py_TYPE(arg)->tp_name);
+ }
return -1;
- }
+ }
iternext = *Py_TYPE(it)->tp_iternext;
/* Run the iterator to exhaustion */
@@ -888,7 +888,7 @@ bytearray_init(PyByteArrayObject *self, PyObject *args, PyObject *kwds)
/* Append the byte */
if (Py_SIZE(self) + 1 < self->ob_alloc) {
- Py_SET_SIZE(self, Py_SIZE(self) + 1);
+ Py_SET_SIZE(self, Py_SIZE(self) + 1);
PyByteArray_AS_STRING(self)[Py_SIZE(self)] = '\0';
}
else if (PyByteArray_Resize((PyObject *)self, Py_SIZE(self)+1) < 0)
@@ -998,13 +998,13 @@ bytearray_repr(PyByteArrayObject *self)
static PyObject *
bytearray_str(PyObject *op)
{
- if (_Py_GetConfig()->bytes_warning) {
- if (PyErr_WarnEx(PyExc_BytesWarning,
- "str() on a bytearray instance", 1)) {
- return NULL;
+ if (_Py_GetConfig()->bytes_warning) {
+ if (PyErr_WarnEx(PyExc_BytesWarning,
+ "str() on a bytearray instance", 1)) {
+ return NULL;
}
- }
- return bytearray_repr((PyByteArrayObject*)op);
+ }
+ return bytearray_repr((PyByteArrayObject*)op);
}
static PyObject *
@@ -1023,7 +1023,7 @@ bytearray_richcompare(PyObject *self, PyObject *other, int op)
if (rc < 0)
return NULL;
if (rc) {
- if (_Py_GetConfig()->bytes_warning && (op == Py_EQ || op == Py_NE)) {
+ if (_Py_GetConfig()->bytes_warning && (op == Py_EQ || op == Py_NE)) {
if (PyErr_WarnEx(PyExc_BytesWarning,
"Comparison between bytearray and string", 1))
return NULL;
@@ -1185,73 +1185,73 @@ bytearray_endswith(PyByteArrayObject *self, PyObject *args)
return _Py_bytes_endswith(PyByteArray_AS_STRING(self), PyByteArray_GET_SIZE(self), args);
}
-/*[clinic input]
-bytearray.removeprefix as bytearray_removeprefix
-
- prefix: Py_buffer
- /
-
-Return a bytearray with the given prefix string removed if present.
-
-If the bytearray starts with the prefix string, return
-bytearray[len(prefix):]. Otherwise, return a copy of the original
-bytearray.
-[clinic start generated code]*/
-
-static PyObject *
-bytearray_removeprefix_impl(PyByteArrayObject *self, Py_buffer *prefix)
-/*[clinic end generated code: output=6cabc585e7f502e0 input=968aada38aedd262]*/
-{
- const char *self_start = PyByteArray_AS_STRING(self);
- Py_ssize_t self_len = PyByteArray_GET_SIZE(self);
- const char *prefix_start = prefix->buf;
- Py_ssize_t prefix_len = prefix->len;
-
- if (self_len >= prefix_len
- && memcmp(self_start, prefix_start, prefix_len) == 0)
- {
- return PyByteArray_FromStringAndSize(self_start + prefix_len,
- self_len - prefix_len);
- }
-
- return PyByteArray_FromStringAndSize(self_start, self_len);
-}
-
/*[clinic input]
-bytearray.removesuffix as bytearray_removesuffix
-
- suffix: Py_buffer
- /
-
-Return a bytearray with the given suffix string removed if present.
-
-If the bytearray ends with the suffix string and that suffix is not
-empty, return bytearray[:-len(suffix)]. Otherwise, return a copy of
-the original bytearray.
-[clinic start generated code]*/
-
-static PyObject *
-bytearray_removesuffix_impl(PyByteArrayObject *self, Py_buffer *suffix)
-/*[clinic end generated code: output=2bc8cfb79de793d3 input=c1827e810b2f6b99]*/
-{
- const char *self_start = PyByteArray_AS_STRING(self);
- Py_ssize_t self_len = PyByteArray_GET_SIZE(self);
- const char *suffix_start = suffix->buf;
- Py_ssize_t suffix_len = suffix->len;
-
- if (self_len >= suffix_len
- && memcmp(self_start + self_len - suffix_len,
- suffix_start, suffix_len) == 0)
- {
- return PyByteArray_FromStringAndSize(self_start,
- self_len - suffix_len);
- }
-
- return PyByteArray_FromStringAndSize(self_start, self_len);
-}
-
-
-/*[clinic input]
+bytearray.removeprefix as bytearray_removeprefix
+
+ prefix: Py_buffer
+ /
+
+Return a bytearray with the given prefix string removed if present.
+
+If the bytearray starts with the prefix string, return
+bytearray[len(prefix):]. Otherwise, return a copy of the original
+bytearray.
+[clinic start generated code]*/
+
+static PyObject *
+bytearray_removeprefix_impl(PyByteArrayObject *self, Py_buffer *prefix)
+/*[clinic end generated code: output=6cabc585e7f502e0 input=968aada38aedd262]*/
+{
+ const char *self_start = PyByteArray_AS_STRING(self);
+ Py_ssize_t self_len = PyByteArray_GET_SIZE(self);
+ const char *prefix_start = prefix->buf;
+ Py_ssize_t prefix_len = prefix->len;
+
+ if (self_len >= prefix_len
+ && memcmp(self_start, prefix_start, prefix_len) == 0)
+ {
+ return PyByteArray_FromStringAndSize(self_start + prefix_len,
+ self_len - prefix_len);
+ }
+
+ return PyByteArray_FromStringAndSize(self_start, self_len);
+}
+
+/*[clinic input]
+bytearray.removesuffix as bytearray_removesuffix
+
+ suffix: Py_buffer
+ /
+
+Return a bytearray with the given suffix string removed if present.
+
+If the bytearray ends with the suffix string and that suffix is not
+empty, return bytearray[:-len(suffix)]. Otherwise, return a copy of
+the original bytearray.
+[clinic start generated code]*/
+
+static PyObject *
+bytearray_removesuffix_impl(PyByteArrayObject *self, Py_buffer *suffix)
+/*[clinic end generated code: output=2bc8cfb79de793d3 input=c1827e810b2f6b99]*/
+{
+ const char *self_start = PyByteArray_AS_STRING(self);
+ Py_ssize_t self_len = PyByteArray_GET_SIZE(self);
+ const char *suffix_start = suffix->buf;
+ Py_ssize_t suffix_len = suffix->len;
+
+ if (self_len >= suffix_len
+ && memcmp(self_start + self_len - suffix_len,
+ suffix_start, suffix_len) == 0)
+ {
+ return PyByteArray_FromStringAndSize(self_start,
+ self_len - suffix_len);
+ }
+
+ return PyByteArray_FromStringAndSize(self_start, self_len);
+}
+
+
+/*[clinic input]
bytearray.translate
table: object
@@ -1691,14 +1691,14 @@ bytearray_extend(PyByteArrayObject *self, PyObject *iterable_of_ints)
}
it = PyObject_GetIter(iterable_of_ints);
- if (it == NULL) {
- if (PyErr_ExceptionMatches(PyExc_TypeError)) {
- PyErr_Format(PyExc_TypeError,
- "can't extend bytearray with %.100s",
- Py_TYPE(iterable_of_ints)->tp_name);
- }
+ if (it == NULL) {
+ if (PyErr_ExceptionMatches(PyExc_TypeError)) {
+ PyErr_Format(PyExc_TypeError,
+ "can't extend bytearray with %.100s",
+ Py_TYPE(iterable_of_ints)->tp_name);
+ }
return NULL;
- }
+ }
/* Try to determine the length of the argument. 32 is arbitrary. */
buf_size = PyObject_LengthHint(iterable_of_ints, 32);
@@ -1760,10 +1760,10 @@ bytearray_extend(PyByteArrayObject *self, PyObject *iterable_of_ints)
}
Py_DECREF(bytearray_obj);
- if (PyErr_Occurred()) {
- return NULL;
- }
-
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+
Py_RETURN_NONE;
}
@@ -2015,7 +2015,7 @@ PyDoc_STRVAR(alloc_doc,
Return the number of bytes actually allocated.");
static PyObject *
-bytearray_alloc(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))
+bytearray_alloc(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromSsize_t(self->ob_alloc);
}
@@ -2080,41 +2080,41 @@ bytearray_fromhex_impl(PyTypeObject *type, PyObject *string)
{
PyObject *result = _PyBytes_FromHex(string, type == &PyByteArray_Type);
if (type != &PyByteArray_Type && result != NULL) {
- Py_SETREF(result, PyObject_CallOneArg((PyObject *)type, result));
+ Py_SETREF(result, PyObject_CallOneArg((PyObject *)type, result));
}
return result;
}
-/*[clinic input]
-bytearray.hex
-
- sep: object = NULL
- An optional single character or byte to separate hex bytes.
- bytes_per_sep: int = 1
- How many bytes between separators. Positive values count from the
- right, negative values count from the left.
-
-Create a str of hexadecimal numbers from a bytearray object.
-
-Example:
->>> value = bytearray([0xb9, 0x01, 0xef])
->>> value.hex()
-'b901ef'
->>> value.hex(':')
-'b9:01:ef'
->>> value.hex(':', 2)
-'b9:01ef'
->>> value.hex(':', -2)
-'b901:ef'
-[clinic start generated code]*/
-
+/*[clinic input]
+bytearray.hex
+
+ sep: object = NULL
+ An optional single character or byte to separate hex bytes.
+ bytes_per_sep: int = 1
+ How many bytes between separators. Positive values count from the
+ right, negative values count from the left.
+
+Create a str of hexadecimal numbers from a bytearray object.
+
+Example:
+>>> value = bytearray([0xb9, 0x01, 0xef])
+>>> value.hex()
+'b901ef'
+>>> value.hex(':')
+'b9:01:ef'
+>>> value.hex(':', 2)
+'b9:01ef'
+>>> value.hex(':', -2)
+'b901:ef'
+[clinic start generated code]*/
+
static PyObject *
-bytearray_hex_impl(PyByteArrayObject *self, PyObject *sep, int bytes_per_sep)
-/*[clinic end generated code: output=29c4e5ef72c565a0 input=814c15830ac8c4b5]*/
+bytearray_hex_impl(PyByteArrayObject *self, PyObject *sep, int bytes_per_sep)
+/*[clinic end generated code: output=29c4e5ef72c565a0 input=814c15830ac8c4b5]*/
{
char* argbuf = PyByteArray_AS_STRING(self);
Py_ssize_t arglen = PyByteArray_GET_SIZE(self);
- return _Py_strhex_with_sep(argbuf, arglen, sep, bytes_per_sep);
+ return _Py_strhex_with_sep(argbuf, arglen, sep, bytes_per_sep);
}
static PyObject *
@@ -2124,9 +2124,9 @@ _common_reduce(PyByteArrayObject *self, int proto)
_Py_IDENTIFIER(__dict__);
char *buf;
- if (_PyObject_LookupAttrId((PyObject *)self, &PyId___dict__, &dict) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId((PyObject *)self, &PyId___dict__, &dict) < 0) {
+ return NULL;
+ }
if (dict == NULL) {
dict = Py_None;
Py_INCREF(dict);
@@ -2229,9 +2229,9 @@ bytearray_methods[] = {
BYTEARRAY_REDUCE_EX_METHODDEF
BYTEARRAY_SIZEOF_METHODDEF
BYTEARRAY_APPEND_METHODDEF
- {"capitalize", stringlib_capitalize, METH_NOARGS,
+ {"capitalize", stringlib_capitalize, METH_NOARGS,
_Py_capitalize__doc__},
- STRINGLIB_CENTER_METHODDEF
+ STRINGLIB_CENTER_METHODDEF
BYTEARRAY_CLEAR_METHODDEF
BYTEARRAY_COPY_METHODDEF
{"count", (PyCFunction)bytearray_count, METH_VARARGS,
@@ -2239,45 +2239,45 @@ bytearray_methods[] = {
BYTEARRAY_DECODE_METHODDEF
{"endswith", (PyCFunction)bytearray_endswith, METH_VARARGS,
_Py_endswith__doc__},
- STRINGLIB_EXPANDTABS_METHODDEF
+ STRINGLIB_EXPANDTABS_METHODDEF
BYTEARRAY_EXTEND_METHODDEF
{"find", (PyCFunction)bytearray_find, METH_VARARGS,
_Py_find__doc__},
BYTEARRAY_FROMHEX_METHODDEF
- BYTEARRAY_HEX_METHODDEF
+ BYTEARRAY_HEX_METHODDEF
{"index", (PyCFunction)bytearray_index, METH_VARARGS, _Py_index__doc__},
BYTEARRAY_INSERT_METHODDEF
- {"isalnum", stringlib_isalnum, METH_NOARGS,
+ {"isalnum", stringlib_isalnum, METH_NOARGS,
_Py_isalnum__doc__},
- {"isalpha", stringlib_isalpha, METH_NOARGS,
+ {"isalpha", stringlib_isalpha, METH_NOARGS,
_Py_isalpha__doc__},
- {"isascii", stringlib_isascii, METH_NOARGS,
+ {"isascii", stringlib_isascii, METH_NOARGS,
_Py_isascii__doc__},
- {"isdigit", stringlib_isdigit, METH_NOARGS,
+ {"isdigit", stringlib_isdigit, METH_NOARGS,
_Py_isdigit__doc__},
- {"islower", stringlib_islower, METH_NOARGS,
+ {"islower", stringlib_islower, METH_NOARGS,
_Py_islower__doc__},
- {"isspace", stringlib_isspace, METH_NOARGS,
+ {"isspace", stringlib_isspace, METH_NOARGS,
_Py_isspace__doc__},
- {"istitle", stringlib_istitle, METH_NOARGS,
+ {"istitle", stringlib_istitle, METH_NOARGS,
_Py_istitle__doc__},
- {"isupper", stringlib_isupper, METH_NOARGS,
+ {"isupper", stringlib_isupper, METH_NOARGS,
_Py_isupper__doc__},
BYTEARRAY_JOIN_METHODDEF
- STRINGLIB_LJUST_METHODDEF
- {"lower", stringlib_lower, METH_NOARGS, _Py_lower__doc__},
+ STRINGLIB_LJUST_METHODDEF
+ {"lower", stringlib_lower, METH_NOARGS, _Py_lower__doc__},
BYTEARRAY_LSTRIP_METHODDEF
BYTEARRAY_MAKETRANS_METHODDEF
BYTEARRAY_PARTITION_METHODDEF
BYTEARRAY_POP_METHODDEF
BYTEARRAY_REMOVE_METHODDEF
BYTEARRAY_REPLACE_METHODDEF
- BYTEARRAY_REMOVEPREFIX_METHODDEF
- BYTEARRAY_REMOVESUFFIX_METHODDEF
+ BYTEARRAY_REMOVEPREFIX_METHODDEF
+ BYTEARRAY_REMOVESUFFIX_METHODDEF
BYTEARRAY_REVERSE_METHODDEF
{"rfind", (PyCFunction)bytearray_rfind, METH_VARARGS, _Py_rfind__doc__},
{"rindex", (PyCFunction)bytearray_rindex, METH_VARARGS, _Py_rindex__doc__},
- STRINGLIB_RJUST_METHODDEF
+ STRINGLIB_RJUST_METHODDEF
BYTEARRAY_RPARTITION_METHODDEF
BYTEARRAY_RSPLIT_METHODDEF
BYTEARRAY_RSTRIP_METHODDEF
@@ -2286,12 +2286,12 @@ bytearray_methods[] = {
{"startswith", (PyCFunction)bytearray_startswith, METH_VARARGS ,
_Py_startswith__doc__},
BYTEARRAY_STRIP_METHODDEF
- {"swapcase", stringlib_swapcase, METH_NOARGS,
+ {"swapcase", stringlib_swapcase, METH_NOARGS,
_Py_swapcase__doc__},
- {"title", stringlib_title, METH_NOARGS, _Py_title__doc__},
+ {"title", stringlib_title, METH_NOARGS, _Py_title__doc__},
BYTEARRAY_TRANSLATE_METHODDEF
- {"upper", stringlib_upper, METH_NOARGS, _Py_upper__doc__},
- STRINGLIB_ZFILL_METHODDEF
+ {"upper", stringlib_upper, METH_NOARGS, _Py_upper__doc__},
+ STRINGLIB_ZFILL_METHODDEF
{NULL}
};
@@ -2333,10 +2333,10 @@ PyTypeObject PyByteArray_Type = {
sizeof(PyByteArrayObject),
0,
(destructor)bytearray_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)bytearray_repr, /* tp_repr */
&bytearray_as_number, /* tp_as_number */
&bytearray_as_sequence, /* tp_as_sequence */
@@ -2418,7 +2418,7 @@ bytearrayiter_next(bytesiterobject *it)
}
static PyObject *
-bytearrayiter_length_hint(bytesiterobject *it, PyObject *Py_UNUSED(ignored))
+bytearrayiter_length_hint(bytesiterobject *it, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len = 0;
if (it->it_seq) {
@@ -2434,14 +2434,14 @@ PyDoc_STRVAR(length_hint_doc,
"Private method returning an estimate of len(list(it)).");
static PyObject *
-bytearrayiter_reduce(bytesiterobject *it, PyObject *Py_UNUSED(ignored))
+bytearrayiter_reduce(bytesiterobject *it, PyObject *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(iter);
if (it->it_seq != NULL) {
- return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
+ return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
it->it_seq, it->it_index);
} else {
- return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
+ return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
}
}
@@ -2480,10 +2480,10 @@ PyTypeObject PyByteArrayIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)bytearrayiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/bytes_methods.c b/contrib/tools/python3/src/Objects/bytes_methods.c
index 3f625b8a17..72daa1fdd5 100644
--- a/contrib/tools/python3/src/Objects/bytes_methods.c
+++ b/contrib/tools/python3/src/Objects/bytes_methods.c
@@ -1,7 +1,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_bytes_methods.h"
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_bytes_methods.h"
PyDoc_STRVAR_shared(_Py_isspace__doc__,
"B.isspace() -> bool\n\
@@ -13,7 +13,7 @@ PyObject*
_Py_bytes_isspace(const char *cptr, Py_ssize_t len)
{
const unsigned char *p
- = (const unsigned char *) cptr;
+ = (const unsigned char *) cptr;
const unsigned char *e;
/* Shortcut for single character strings */
@@ -43,7 +43,7 @@ PyObject*
_Py_bytes_isalpha(const char *cptr, Py_ssize_t len)
{
const unsigned char *p
- = (const unsigned char *) cptr;
+ = (const unsigned char *) cptr;
const unsigned char *e;
/* Shortcut for single character strings */
@@ -73,7 +73,7 @@ PyObject*
_Py_bytes_isalnum(const char *cptr, Py_ssize_t len)
{
const unsigned char *p
- = (const unsigned char *) cptr;
+ = (const unsigned char *) cptr;
const unsigned char *e;
/* Shortcut for single character strings */
@@ -124,7 +124,7 @@ _Py_bytes_isascii(const char *cptr, Py_ssize_t len)
/* Help allocation */
const char *_p = p;
while (_p < aligned_end) {
- unsigned long value = *(const unsigned long *) _p;
+ unsigned long value = *(const unsigned long *) _p;
if (value & ASCII_CHAR_MASK) {
Py_RETURN_FALSE;
}
@@ -155,7 +155,7 @@ PyObject*
_Py_bytes_isdigit(const char *cptr, Py_ssize_t len)
{
const unsigned char *p
- = (const unsigned char *) cptr;
+ = (const unsigned char *) cptr;
const unsigned char *e;
/* Shortcut for single character strings */
@@ -185,7 +185,7 @@ PyObject*
_Py_bytes_islower(const char *cptr, Py_ssize_t len)
{
const unsigned char *p
- = (const unsigned char *) cptr;
+ = (const unsigned char *) cptr;
const unsigned char *e;
int cased;
@@ -219,7 +219,7 @@ PyObject*
_Py_bytes_isupper(const char *cptr, Py_ssize_t len)
{
const unsigned char *p
- = (const unsigned char *) cptr;
+ = (const unsigned char *) cptr;
const unsigned char *e;
int cased;
@@ -255,7 +255,7 @@ PyObject*
_Py_bytes_istitle(const char *cptr, Py_ssize_t len)
{
const unsigned char *p
- = (const unsigned char *) cptr;
+ = (const unsigned char *) cptr;
const unsigned char *e;
int cased, previous_is_cased;
@@ -362,9 +362,9 @@ and the rest lower-cased.");
void
_Py_bytes_capitalize(char *result, const char *s, Py_ssize_t len)
{
- if (len > 0) {
- *result = Py_TOUPPER(*s);
- _Py_bytes_lower(result + 1, s + 1, len - 1);
+ if (len > 0) {
+ *result = Py_TOUPPER(*s);
+ _Py_bytes_lower(result + 1, s + 1, len - 1);
}
}
@@ -467,7 +467,7 @@ parse_args_finds_byte(const char *function_name, PyObject *args,
return 1;
}
- if (!_PyIndex_Check(tmp_subobj)) {
+ if (!_PyIndex_Check(tmp_subobj)) {
PyErr_Format(PyExc_TypeError,
"argument should be integer or bytes-like object, "
"not '%.200s'",
@@ -744,7 +744,7 @@ tailmatch(const char *str, Py_ssize_t len, PyObject *substr,
if (direction < 0) {
/* startswith */
- if (start > len - slen)
+ if (start > len - slen)
goto notfound;
} else {
/* endswith */
diff --git a/contrib/tools/python3/src/Objects/bytesobject.c b/contrib/tools/python3/src/Objects/bytesobject.c
index d34ef53c48..25d9814dd6 100644
--- a/contrib/tools/python3/src/Objects/bytesobject.c
+++ b/contrib/tools/python3/src/Objects/bytesobject.c
@@ -3,10 +3,10 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_bytes_methods.h"
-#include "pycore_object.h"
-#include "pycore_pymem.h" // PYMEM_CLEANBYTE
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_bytes_methods.h"
+#include "pycore_object.h"
+#include "pycore_pymem.h" // PYMEM_CLEANBYTE
#include "pystrhex.h"
#include <stddef.h>
@@ -21,8 +21,8 @@ class bytes "PyBytesObject *" "&PyBytes_Type"
static PyBytesObject *characters[UCHAR_MAX + 1];
static PyBytesObject *nullstring;
-_Py_IDENTIFIER(__bytes__);
-
+_Py_IDENTIFIER(__bytes__);
+
/* PyBytesObject_SIZE gives the basic size of a string; any memory allocation
for a string of length n should request PyBytesObject_SIZE + n bytes.
@@ -963,8 +963,8 @@ _PyBytes_FormatEx(const char *format, Py_ssize_t format_len,
if (res == NULL)
goto error;
}
-#ifndef NDEBUG
- char *before = res;
+#ifndef NDEBUG
+ char *before = res;
#endif
/* Write the sign if needed */
@@ -1029,7 +1029,7 @@ _PyBytes_FormatEx(const char *format, Py_ssize_t format_len,
}
Py_XDECREF(temp);
-#ifndef NDEBUG
+#ifndef NDEBUG
/* check that we computed the exact size for this write */
assert((res - before) == alloc);
#endif
@@ -1059,7 +1059,7 @@ _PyBytes_FormatEx(const char *format, Py_ssize_t format_len,
return NULL;
}
-/* Unescape a backslash-escaped string. */
+/* Unescape a backslash-escaped string. */
PyObject *_PyBytes_DecodeEscape(const char *s,
Py_ssize_t len,
const char *errors,
@@ -1082,7 +1082,7 @@ PyObject *_PyBytes_DecodeEscape(const char *s,
end = s + len;
while (s < end) {
if (*s != '\\') {
- *p++ = *s++;
+ *p++ = *s++;
continue;
}
@@ -1131,7 +1131,7 @@ PyObject *_PyBytes_DecodeEscape(const char *s,
if (!errors || strcmp(errors, "strict") == 0) {
PyErr_Format(PyExc_ValueError,
- "invalid \\x escape at position %zd",
+ "invalid \\x escape at position %zd",
s - 2 - (end - len));
goto failed;
}
@@ -1171,11 +1171,11 @@ PyObject *_PyBytes_DecodeEscape(const char *s,
PyObject *PyBytes_DecodeEscape(const char *s,
Py_ssize_t len,
const char *errors,
- Py_ssize_t Py_UNUSED(unicode),
- const char *Py_UNUSED(recode_encoding))
+ Py_ssize_t Py_UNUSED(unicode),
+ const char *Py_UNUSED(recode_encoding))
{
const char* first_invalid_escape;
- PyObject *result = _PyBytes_DecodeEscape(s, len, errors,
+ PyObject *result = _PyBytes_DecodeEscape(s, len, errors,
&first_invalid_escape);
if (result == NULL)
return NULL;
@@ -1264,14 +1264,14 @@ PyBytes_Repr(PyObject *obj, int smartquotes)
Py_ssize_t i, length = Py_SIZE(op);
Py_ssize_t newsize, squotes, dquotes;
PyObject *v;
- unsigned char quote;
- const unsigned char *s;
- Py_UCS1 *p;
+ unsigned char quote;
+ const unsigned char *s;
+ Py_UCS1 *p;
/* Compute size of output string */
squotes = dquotes = 0;
newsize = 3; /* b'' */
- s = (const unsigned char*)op->ob_sval;
+ s = (const unsigned char*)op->ob_sval;
for (i = 0; i < length; i++) {
Py_ssize_t incr = 1;
switch(s[i]) {
@@ -1341,11 +1341,11 @@ bytes_repr(PyObject *op)
static PyObject *
bytes_str(PyObject *op)
{
- if (_Py_GetConfig()->bytes_warning) {
+ if (_Py_GetConfig()->bytes_warning) {
if (PyErr_WarnEx(PyExc_BytesWarning,
- "str() on a bytes instance", 1)) {
+ "str() on a bytes instance", 1)) {
return NULL;
- }
+ }
}
return bytes_repr(op);
}
@@ -1498,7 +1498,7 @@ bytes_richcompare(PyBytesObject *a, PyBytesObject *b, int op)
/* Make sure both arguments are strings. */
if (!(PyBytes_Check(a) && PyBytes_Check(b))) {
- if (_Py_GetConfig()->bytes_warning && (op == Py_EQ || op == Py_NE)) {
+ if (_Py_GetConfig()->bytes_warning && (op == Py_EQ || op == Py_NE)) {
rc = PyObject_IsInstance((PyObject*)a,
(PyObject*)&PyUnicode_Type);
if (!rc)
@@ -1579,7 +1579,7 @@ bytes_hash(PyBytesObject *a)
static PyObject*
bytes_subscript(PyBytesObject* self, PyObject* item)
{
- if (_PyIndex_Check(item)) {
+ if (_PyIndex_Check(item)) {
Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
return NULL;
@@ -1593,9 +1593,9 @@ bytes_subscript(PyBytesObject* self, PyObject* item)
return PyLong_FromLong((unsigned char)self->ob_sval[i]);
}
else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelength, i;
- size_t cur;
- const char* source_buf;
+ Py_ssize_t start, stop, step, slicelength, i;
+ size_t cur;
+ const char* source_buf;
char* result_buf;
PyObject* result;
@@ -1860,7 +1860,7 @@ Py_LOCAL_INLINE(PyObject *)
do_xstrip(PyBytesObject *self, int striptype, PyObject *sepobj)
{
Py_buffer vsep;
- const char *s = PyBytes_AS_STRING(self);
+ const char *s = PyBytes_AS_STRING(self);
Py_ssize_t len = PyBytes_GET_SIZE(self);
char *sep;
Py_ssize_t seplen;
@@ -1900,7 +1900,7 @@ do_xstrip(PyBytesObject *self, int striptype, PyObject *sepobj)
Py_LOCAL_INLINE(PyObject *)
do_strip(PyBytesObject *self, int striptype)
{
- const char *s = PyBytes_AS_STRING(self);
+ const char *s = PyBytes_AS_STRING(self);
Py_ssize_t len = PyBytes_GET_SIZE(self), i, j;
i = 0;
@@ -1930,7 +1930,7 @@ do_strip(PyBytesObject *self, int striptype)
Py_LOCAL_INLINE(PyObject *)
do_argstrip(PyBytesObject *self, int striptype, PyObject *bytes)
{
- if (bytes != Py_None) {
+ if (bytes != Py_None) {
return do_xstrip(self, striptype, bytes);
}
return do_strip(self, striptype);
@@ -2017,8 +2017,8 @@ bytes_translate_impl(PyBytesObject *self, PyObject *table,
PyObject *deletechars)
/*[clinic end generated code: output=43be3437f1956211 input=0ecdf159f654233c]*/
{
- const char *input;
- char *output;
+ const char *input;
+ char *output;
Py_buffer table_view = {NULL, NULL};
Py_buffer del_table_view = {NULL, NULL};
const char *table_chars;
@@ -2182,83 +2182,83 @@ bytes_replace_impl(PyBytesObject *self, Py_buffer *old, Py_buffer *new,
/** End DALKE **/
-/*[clinic input]
-bytes.removeprefix as bytes_removeprefix
-
- prefix: Py_buffer
- /
-
-Return a bytes object with the given prefix string removed if present.
-
-If the bytes starts with the prefix string, return bytes[len(prefix):].
-Otherwise, return a copy of the original bytes.
-[clinic start generated code]*/
-
+/*[clinic input]
+bytes.removeprefix as bytes_removeprefix
+
+ prefix: Py_buffer
+ /
+
+Return a bytes object with the given prefix string removed if present.
+
+If the bytes starts with the prefix string, return bytes[len(prefix):].
+Otherwise, return a copy of the original bytes.
+[clinic start generated code]*/
+
+static PyObject *
+bytes_removeprefix_impl(PyBytesObject *self, Py_buffer *prefix)
+/*[clinic end generated code: output=f006865331a06ab6 input=0c93bac817a8502c]*/
+{
+ const char *self_start = PyBytes_AS_STRING(self);
+ Py_ssize_t self_len = PyBytes_GET_SIZE(self);
+ const char *prefix_start = prefix->buf;
+ Py_ssize_t prefix_len = prefix->len;
+
+ if (self_len >= prefix_len
+ && prefix_len > 0
+ && memcmp(self_start, prefix_start, prefix_len) == 0)
+ {
+ return PyBytes_FromStringAndSize(self_start + prefix_len,
+ self_len - prefix_len);
+ }
+
+ if (PyBytes_CheckExact(self)) {
+ Py_INCREF(self);
+ return (PyObject *)self;
+ }
+
+ return PyBytes_FromStringAndSize(self_start, self_len);
+}
+
+/*[clinic input]
+bytes.removesuffix as bytes_removesuffix
+
+ suffix: Py_buffer
+ /
+
+Return a bytes object with the given suffix string removed if present.
+
+If the bytes ends with the suffix string and that suffix is not empty,
+return bytes[:-len(prefix)]. Otherwise, return a copy of the original
+bytes.
+[clinic start generated code]*/
+
+static PyObject *
+bytes_removesuffix_impl(PyBytesObject *self, Py_buffer *suffix)
+/*[clinic end generated code: output=d887d308e3242eeb input=9f4e1da8c637bbf1]*/
+{
+ const char *self_start = PyBytes_AS_STRING(self);
+ Py_ssize_t self_len = PyBytes_GET_SIZE(self);
+ const char *suffix_start = suffix->buf;
+ Py_ssize_t suffix_len = suffix->len;
+
+ if (self_len >= suffix_len
+ && suffix_len > 0
+ && memcmp(self_start + self_len - suffix_len,
+ suffix_start, suffix_len) == 0)
+ {
+ return PyBytes_FromStringAndSize(self_start,
+ self_len - suffix_len);
+ }
+
+ if (PyBytes_CheckExact(self)) {
+ Py_INCREF(self);
+ return (PyObject *)self;
+ }
+
+ return PyBytes_FromStringAndSize(self_start, self_len);
+}
+
static PyObject *
-bytes_removeprefix_impl(PyBytesObject *self, Py_buffer *prefix)
-/*[clinic end generated code: output=f006865331a06ab6 input=0c93bac817a8502c]*/
-{
- const char *self_start = PyBytes_AS_STRING(self);
- Py_ssize_t self_len = PyBytes_GET_SIZE(self);
- const char *prefix_start = prefix->buf;
- Py_ssize_t prefix_len = prefix->len;
-
- if (self_len >= prefix_len
- && prefix_len > 0
- && memcmp(self_start, prefix_start, prefix_len) == 0)
- {
- return PyBytes_FromStringAndSize(self_start + prefix_len,
- self_len - prefix_len);
- }
-
- if (PyBytes_CheckExact(self)) {
- Py_INCREF(self);
- return (PyObject *)self;
- }
-
- return PyBytes_FromStringAndSize(self_start, self_len);
-}
-
-/*[clinic input]
-bytes.removesuffix as bytes_removesuffix
-
- suffix: Py_buffer
- /
-
-Return a bytes object with the given suffix string removed if present.
-
-If the bytes ends with the suffix string and that suffix is not empty,
-return bytes[:-len(prefix)]. Otherwise, return a copy of the original
-bytes.
-[clinic start generated code]*/
-
-static PyObject *
-bytes_removesuffix_impl(PyBytesObject *self, Py_buffer *suffix)
-/*[clinic end generated code: output=d887d308e3242eeb input=9f4e1da8c637bbf1]*/
-{
- const char *self_start = PyBytes_AS_STRING(self);
- Py_ssize_t self_len = PyBytes_GET_SIZE(self);
- const char *suffix_start = suffix->buf;
- Py_ssize_t suffix_len = suffix->len;
-
- if (self_len >= suffix_len
- && suffix_len > 0
- && memcmp(self_start + self_len - suffix_len,
- suffix_start, suffix_len) == 0)
- {
- return PyBytes_FromStringAndSize(self_start,
- self_len - suffix_len);
- }
-
- if (PyBytes_CheckExact(self)) {
- Py_INCREF(self);
- return (PyObject *)self;
- }
-
- return PyBytes_FromStringAndSize(self_start, self_len);
-}
-
-static PyObject *
bytes_startswith(PyBytesObject *self, PyObject *args)
{
return _Py_bytes_startswith(PyBytes_AS_STRING(self), PyBytes_GET_SIZE(self), args);
@@ -2335,7 +2335,7 @@ bytes_fromhex_impl(PyTypeObject *type, PyObject *string)
{
PyObject *result = _PyBytes_FromHex(string, 0);
if (type != &PyBytes_Type && result != NULL) {
- Py_SETREF(result, PyObject_CallOneArg((PyObject *)type, result));
+ Py_SETREF(result, PyObject_CallOneArg((PyObject *)type, result));
}
return result;
}
@@ -2346,7 +2346,7 @@ _PyBytes_FromHex(PyObject *string, int use_bytearray)
char *buf;
Py_ssize_t hexlen, invalid_char;
unsigned int top, bot;
- const Py_UCS1 *str, *end;
+ const Py_UCS1 *str, *end;
_PyBytesWriter writer;
_PyBytesWriter_Init(&writer);
@@ -2358,7 +2358,7 @@ _PyBytes_FromHex(PyObject *string, int use_bytearray)
hexlen = PyUnicode_GET_LENGTH(string);
if (!PyUnicode_IS_ASCII(string)) {
- const void *data = PyUnicode_DATA(string);
+ const void *data = PyUnicode_DATA(string);
unsigned int kind = PyUnicode_KIND(string);
Py_ssize_t i;
@@ -2417,40 +2417,40 @@ _PyBytes_FromHex(PyObject *string, int use_bytearray)
return NULL;
}
-/*[clinic input]
-bytes.hex
-
- sep: object = NULL
- An optional single character or byte to separate hex bytes.
- bytes_per_sep: int = 1
- How many bytes between separators. Positive values count from the
- right, negative values count from the left.
-
-Create a str of hexadecimal numbers from a bytes object.
-
-Example:
->>> value = b'\xb9\x01\xef'
->>> value.hex()
-'b901ef'
->>> value.hex(':')
-'b9:01:ef'
->>> value.hex(':', 2)
-'b9:01ef'
->>> value.hex(':', -2)
-'b901:ef'
-[clinic start generated code]*/
-
+/*[clinic input]
+bytes.hex
+
+ sep: object = NULL
+ An optional single character or byte to separate hex bytes.
+ bytes_per_sep: int = 1
+ How many bytes between separators. Positive values count from the
+ right, negative values count from the left.
+
+Create a str of hexadecimal numbers from a bytes object.
+
+Example:
+>>> value = b'\xb9\x01\xef'
+>>> value.hex()
+'b901ef'
+>>> value.hex(':')
+'b9:01:ef'
+>>> value.hex(':', 2)
+'b9:01ef'
+>>> value.hex(':', -2)
+'b901:ef'
+[clinic start generated code]*/
+
static PyObject *
-bytes_hex_impl(PyBytesObject *self, PyObject *sep, int bytes_per_sep)
-/*[clinic end generated code: output=1f134da504064139 input=f1238d3455990218]*/
+bytes_hex_impl(PyBytesObject *self, PyObject *sep, int bytes_per_sep)
+/*[clinic end generated code: output=1f134da504064139 input=f1238d3455990218]*/
{
- const char *argbuf = PyBytes_AS_STRING(self);
+ const char *argbuf = PyBytes_AS_STRING(self);
Py_ssize_t arglen = PyBytes_GET_SIZE(self);
- return _Py_strhex_with_sep(argbuf, arglen, sep, bytes_per_sep);
+ return _Py_strhex_with_sep(argbuf, arglen, sep, bytes_per_sep);
}
static PyObject *
-bytes_getnewargs(PyBytesObject *v, PyObject *Py_UNUSED(ignored))
+bytes_getnewargs(PyBytesObject *v, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("(y#)", v->ob_sval, Py_SIZE(v));
}
@@ -2459,48 +2459,48 @@ bytes_getnewargs(PyBytesObject *v, PyObject *Py_UNUSED(ignored))
static PyMethodDef
bytes_methods[] = {
{"__getnewargs__", (PyCFunction)bytes_getnewargs, METH_NOARGS},
- {"capitalize", stringlib_capitalize, METH_NOARGS,
+ {"capitalize", stringlib_capitalize, METH_NOARGS,
_Py_capitalize__doc__},
- STRINGLIB_CENTER_METHODDEF
+ STRINGLIB_CENTER_METHODDEF
{"count", (PyCFunction)bytes_count, METH_VARARGS,
_Py_count__doc__},
BYTES_DECODE_METHODDEF
{"endswith", (PyCFunction)bytes_endswith, METH_VARARGS,
_Py_endswith__doc__},
- STRINGLIB_EXPANDTABS_METHODDEF
+ STRINGLIB_EXPANDTABS_METHODDEF
{"find", (PyCFunction)bytes_find, METH_VARARGS,
_Py_find__doc__},
BYTES_FROMHEX_METHODDEF
- BYTES_HEX_METHODDEF
+ BYTES_HEX_METHODDEF
{"index", (PyCFunction)bytes_index, METH_VARARGS, _Py_index__doc__},
- {"isalnum", stringlib_isalnum, METH_NOARGS,
+ {"isalnum", stringlib_isalnum, METH_NOARGS,
_Py_isalnum__doc__},
- {"isalpha", stringlib_isalpha, METH_NOARGS,
+ {"isalpha", stringlib_isalpha, METH_NOARGS,
_Py_isalpha__doc__},
- {"isascii", stringlib_isascii, METH_NOARGS,
+ {"isascii", stringlib_isascii, METH_NOARGS,
_Py_isascii__doc__},
- {"isdigit", stringlib_isdigit, METH_NOARGS,
+ {"isdigit", stringlib_isdigit, METH_NOARGS,
_Py_isdigit__doc__},
- {"islower", stringlib_islower, METH_NOARGS,
+ {"islower", stringlib_islower, METH_NOARGS,
_Py_islower__doc__},
- {"isspace", stringlib_isspace, METH_NOARGS,
+ {"isspace", stringlib_isspace, METH_NOARGS,
_Py_isspace__doc__},
- {"istitle", stringlib_istitle, METH_NOARGS,
+ {"istitle", stringlib_istitle, METH_NOARGS,
_Py_istitle__doc__},
- {"isupper", stringlib_isupper, METH_NOARGS,
+ {"isupper", stringlib_isupper, METH_NOARGS,
_Py_isupper__doc__},
BYTES_JOIN_METHODDEF
- STRINGLIB_LJUST_METHODDEF
- {"lower", stringlib_lower, METH_NOARGS, _Py_lower__doc__},
+ STRINGLIB_LJUST_METHODDEF
+ {"lower", stringlib_lower, METH_NOARGS, _Py_lower__doc__},
BYTES_LSTRIP_METHODDEF
BYTES_MAKETRANS_METHODDEF
BYTES_PARTITION_METHODDEF
BYTES_REPLACE_METHODDEF
- BYTES_REMOVEPREFIX_METHODDEF
- BYTES_REMOVESUFFIX_METHODDEF
+ BYTES_REMOVEPREFIX_METHODDEF
+ BYTES_REMOVESUFFIX_METHODDEF
{"rfind", (PyCFunction)bytes_rfind, METH_VARARGS, _Py_rfind__doc__},
{"rindex", (PyCFunction)bytes_rindex, METH_VARARGS, _Py_rindex__doc__},
- STRINGLIB_RJUST_METHODDEF
+ STRINGLIB_RJUST_METHODDEF
BYTES_RPARTITION_METHODDEF
BYTES_RSPLIT_METHODDEF
BYTES_RSTRIP_METHODDEF
@@ -2509,12 +2509,12 @@ bytes_methods[] = {
{"startswith", (PyCFunction)bytes_startswith, METH_VARARGS,
_Py_startswith__doc__},
BYTES_STRIP_METHODDEF
- {"swapcase", stringlib_swapcase, METH_NOARGS,
+ {"swapcase", stringlib_swapcase, METH_NOARGS,
_Py_swapcase__doc__},
- {"title", stringlib_title, METH_NOARGS, _Py_title__doc__},
+ {"title", stringlib_title, METH_NOARGS, _Py_title__doc__},
BYTES_TRANSLATE_METHODDEF
- {"upper", stringlib_upper, METH_NOARGS, _Py_upper__doc__},
- STRINGLIB_ZFILL_METHODDEF
+ {"upper", stringlib_upper, METH_NOARGS, _Py_upper__doc__},
+ STRINGLIB_ZFILL_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -2557,9 +2557,9 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (x == NULL) {
if (encoding != NULL || errors != NULL) {
PyErr_SetString(PyExc_TypeError,
- encoding != NULL ?
- "encoding without a string argument" :
- "errors without a string argument");
+ encoding != NULL ?
+ "encoding without a string argument" :
+ "errors without a string argument");
return NULL;
}
return PyBytes_FromStringAndSize(NULL, 0);
@@ -2614,7 +2614,7 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return NULL;
}
/* Is it an integer? */
- if (_PyIndex_Check(x)) {
+ if (_PyIndex_Check(x)) {
size = PyNumber_AsSsize_t(x, PyExc_OverflowError);
if (size == -1 && PyErr_Occurred()) {
if (!PyErr_ExceptionMatches(PyExc_TypeError))
@@ -2840,7 +2840,7 @@ PyBytes_FromObject(PyObject *x)
PyErr_Format(PyExc_TypeError,
"cannot convert '%.200s' object to bytes",
- Py_TYPE(x)->tp_name);
+ Py_TYPE(x)->tp_name);
return NULL;
}
@@ -2887,11 +2887,11 @@ PyTypeObject PyBytes_Type = {
"bytes",
PyBytesObject_SIZE,
sizeof(char),
- 0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)bytes_repr, /* tp_repr */
&bytes_as_number, /* tp_as_number */
&bytes_as_sequence, /* tp_as_sequence */
@@ -3026,12 +3026,12 @@ _PyBytes_Resize(PyObject **pv, Py_ssize_t newsize)
return (*pv == NULL) ? -1 : 0;
}
/* XXX UNREF/NEWREF interface should be more symmetrical */
-#ifdef Py_REF_DEBUG
- _Py_RefTotal--;
-#endif
-#ifdef Py_TRACE_REFS
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal--;
+#endif
+#ifdef Py_TRACE_REFS
_Py_ForgetReference(v);
-#endif
+#endif
*pv = (PyObject *)
PyObject_REALLOC(v, PyBytesObject_SIZE + newsize);
if (*pv == NULL) {
@@ -3041,7 +3041,7 @@ _PyBytes_Resize(PyObject **pv, Py_ssize_t newsize)
}
_Py_NewReference(*pv);
sv = (PyBytesObject *) *pv;
- Py_SET_SIZE(sv, newsize);
+ Py_SET_SIZE(sv, newsize);
sv->ob_sval[newsize] = '\0';
sv->ob_shash = -1; /* invalidate cached hash value */
return 0;
@@ -3053,7 +3053,7 @@ error:
}
void
-_PyBytes_Fini(void)
+_PyBytes_Fini(void)
{
int i;
for (i = 0; i < UCHAR_MAX + 1; i++)
@@ -3110,7 +3110,7 @@ striter_next(striterobject *it)
}
static PyObject *
-striter_len(striterobject *it, PyObject *Py_UNUSED(ignored))
+striter_len(striterobject *it, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len = 0;
if (it->it_seq)
@@ -3122,14 +3122,14 @@ PyDoc_STRVAR(length_hint_doc,
"Private method returning an estimate of len(list(it)).");
static PyObject *
-striter_reduce(striterobject *it, PyObject *Py_UNUSED(ignored))
+striter_reduce(striterobject *it, PyObject *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(iter);
if (it->it_seq != NULL) {
- return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
+ return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
it->it_seq, it->it_index);
} else {
- return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
+ return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
}
}
@@ -3170,10 +3170,10 @@ PyTypeObject PyBytesIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)striter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3231,9 +3231,9 @@ _PyBytesWriter_Init(_PyBytesWriter *writer)
{
/* Set all attributes before small_buffer to 0 */
memset(writer, 0, offsetof(_PyBytesWriter, small_buffer));
-#ifndef NDEBUG
- memset(writer->small_buffer, PYMEM_CLEANBYTE,
- sizeof(writer->small_buffer));
+#ifndef NDEBUG
+ memset(writer->small_buffer, PYMEM_CLEANBYTE,
+ sizeof(writer->small_buffer));
#endif
}
@@ -3263,18 +3263,18 @@ _PyBytesWriter_AsString(_PyBytesWriter *writer)
Py_LOCAL_INLINE(Py_ssize_t)
_PyBytesWriter_GetSize(_PyBytesWriter *writer, char *str)
{
- const char *start = _PyBytesWriter_AsString(writer);
+ const char *start = _PyBytesWriter_AsString(writer);
assert(str != NULL);
assert(str >= start);
assert(str - start <= writer->allocated);
return str - start;
}
-#ifndef NDEBUG
-Py_LOCAL_INLINE(int)
+#ifndef NDEBUG
+Py_LOCAL_INLINE(int)
_PyBytesWriter_CheckConsistency(_PyBytesWriter *writer, char *str)
{
- const char *start, *end;
+ const char *start, *end;
if (writer->use_small_buffer) {
assert(writer->buffer == NULL);
@@ -3303,8 +3303,8 @@ _PyBytesWriter_CheckConsistency(_PyBytesWriter *writer, char *str)
end = start + writer->allocated;
assert(str != NULL);
assert(start <= str && str <= end);
- return 1;
-}
+ return 1;
+}
#endif
void*
@@ -3312,7 +3312,7 @@ _PyBytesWriter_Resize(_PyBytesWriter *writer, void *str, Py_ssize_t size)
{
Py_ssize_t allocated, pos;
- assert(_PyBytesWriter_CheckConsistency(writer, str));
+ assert(_PyBytesWriter_CheckConsistency(writer, str));
assert(writer->allocated < size);
allocated = size;
@@ -3361,15 +3361,15 @@ _PyBytesWriter_Resize(_PyBytesWriter *writer, void *str, Py_ssize_t size)
}
writer->use_small_buffer = 0;
-#ifndef NDEBUG
- memset(writer->small_buffer, PYMEM_CLEANBYTE,
- sizeof(writer->small_buffer));
+#ifndef NDEBUG
+ memset(writer->small_buffer, PYMEM_CLEANBYTE,
+ sizeof(writer->small_buffer));
#endif
}
writer->allocated = allocated;
str = _PyBytesWriter_AsString(writer) + pos;
- assert(_PyBytesWriter_CheckConsistency(writer, str));
+ assert(_PyBytesWriter_CheckConsistency(writer, str));
return str;
error:
@@ -3382,7 +3382,7 @@ _PyBytesWriter_Prepare(_PyBytesWriter *writer, void *str, Py_ssize_t size)
{
Py_ssize_t new_min_size;
- assert(_PyBytesWriter_CheckConsistency(writer, str));
+ assert(_PyBytesWriter_CheckConsistency(writer, str));
assert(size >= 0);
if (size == 0) {
@@ -3415,7 +3415,7 @@ _PyBytesWriter_Alloc(_PyBytesWriter *writer, Py_ssize_t size)
assert(size >= 0);
writer->use_small_buffer = 1;
-#ifndef NDEBUG
+#ifndef NDEBUG
writer->allocated = sizeof(writer->small_buffer) - 1;
/* In debug mode, don't use the full small buffer because it is less
efficient than bytes and bytearray objects to detect buffer underflow
@@ -3443,7 +3443,7 @@ _PyBytesWriter_Finish(_PyBytesWriter *writer, void *str)
Py_ssize_t size;
PyObject *result;
- assert(_PyBytesWriter_CheckConsistency(writer, str));
+ assert(_PyBytesWriter_CheckConsistency(writer, str));
size = _PyBytesWriter_GetSize(writer, str);
if (size == 0 && !writer->use_bytearray) {
diff --git a/contrib/tools/python3/src/Objects/call.c b/contrib/tools/python3/src/Objects/call.c
index 84400176dd..87dc0dbbdb 100644
--- a/contrib/tools/python3/src/Objects/call.c
+++ b/contrib/tools/python3/src/Objects/call.c
@@ -1,75 +1,75 @@
#include "Python.h"
-#include "pycore_call.h"
-#include "pycore_ceval.h" // _PyEval_EvalFrame()
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_tupleobject.h"
+#include "pycore_call.h"
+#include "pycore_ceval.h" // _PyEval_EvalFrame()
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_tupleobject.h"
#include "frameobject.h"
-static PyObject *const *
-_PyStack_UnpackDict(PyThreadState *tstate,
- PyObject *const *args, Py_ssize_t nargs,
- PyObject *kwargs, PyObject **p_kwnames);
+static PyObject *const *
+_PyStack_UnpackDict(PyThreadState *tstate,
+ PyObject *const *args, Py_ssize_t nargs,
+ PyObject *kwargs, PyObject **p_kwnames);
+
+static void
+_PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs,
+ PyObject *kwnames);
-static void
-_PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs,
- PyObject *kwnames);
-
static PyObject *
-null_error(PyThreadState *tstate)
+null_error(PyThreadState *tstate)
{
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_SetString(tstate, PyExc_SystemError,
- "null argument to internal routine");
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "null argument to internal routine");
+ }
return NULL;
}
PyObject*
-_Py_CheckFunctionResult(PyThreadState *tstate, PyObject *callable,
- PyObject *result, const char *where)
+_Py_CheckFunctionResult(PyThreadState *tstate, PyObject *callable,
+ PyObject *result, const char *where)
{
assert((callable != NULL) ^ (where != NULL));
if (result == NULL) {
- if (!_PyErr_Occurred(tstate)) {
+ if (!_PyErr_Occurred(tstate)) {
if (callable)
- _PyErr_Format(tstate, PyExc_SystemError,
- "%R returned NULL without setting an error",
- callable);
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "%R returned NULL without setting an error",
+ callable);
else
- _PyErr_Format(tstate, PyExc_SystemError,
- "%s returned NULL without setting an error",
- where);
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "%s returned NULL without setting an error",
+ where);
#ifdef Py_DEBUG
- /* Ensure that the bug is caught in debug mode.
- Py_FatalError() logs the SystemError exception raised above. */
+ /* Ensure that the bug is caught in debug mode.
+ Py_FatalError() logs the SystemError exception raised above. */
Py_FatalError("a function returned NULL without setting an error");
#endif
return NULL;
}
}
else {
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
Py_DECREF(result);
if (callable) {
- _PyErr_FormatFromCauseTstate(
- tstate, PyExc_SystemError,
- "%R returned a result with an error set", callable);
+ _PyErr_FormatFromCauseTstate(
+ tstate, PyExc_SystemError,
+ "%R returned a result with an error set", callable);
}
else {
- _PyErr_FormatFromCauseTstate(
- tstate, PyExc_SystemError,
- "%s returned a result with an error set", where);
+ _PyErr_FormatFromCauseTstate(
+ tstate, PyExc_SystemError,
+ "%s returned a result with an error set", where);
}
#ifdef Py_DEBUG
- /* Ensure that the bug is caught in debug mode.
- Py_FatalError() logs the SystemError exception raised above. */
+ /* Ensure that the bug is caught in debug mode.
+ Py_FatalError() logs the SystemError exception raised above. */
Py_FatalError("a function returned a result with an error set");
#endif
return NULL;
@@ -81,176 +81,176 @@ _Py_CheckFunctionResult(PyThreadState *tstate, PyObject *callable,
/* --- Core PyObject call functions ------------------------------- */
-/* Call a callable Python object without any arguments */
+/* Call a callable Python object without any arguments */
+PyObject *
+PyObject_CallNoArgs(PyObject *func)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyObject_CallNoArgTstate(tstate, func);
+}
+
+
PyObject *
-PyObject_CallNoArgs(PyObject *func)
+_PyObject_FastCallDictTstate(PyThreadState *tstate, PyObject *callable,
+ PyObject *const *args, size_t nargsf,
+ PyObject *kwargs)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyObject_CallNoArgTstate(tstate, func);
-}
-
-
-PyObject *
-_PyObject_FastCallDictTstate(PyThreadState *tstate, PyObject *callable,
- PyObject *const *args, size_t nargsf,
- PyObject *kwargs)
-{
- assert(callable != NULL);
-
- /* PyObject_VectorcallDict() must not be called with an exception set,
+ assert(callable != NULL);
+
+ /* PyObject_VectorcallDict() must not be called with an exception set,
because it can clear it (directly or indirectly) and so the
caller loses its exception */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
assert(nargs >= 0);
assert(nargs == 0 || args != NULL);
assert(kwargs == NULL || PyDict_Check(kwargs));
- vectorcallfunc func = PyVectorcall_Function(callable);
- if (func == NULL) {
- /* Use tp_call instead */
- return _PyObject_MakeTpCall(tstate, callable, args, nargs, kwargs);
+ vectorcallfunc func = PyVectorcall_Function(callable);
+ if (func == NULL) {
+ /* Use tp_call instead */
+ return _PyObject_MakeTpCall(tstate, callable, args, nargs, kwargs);
}
-
- PyObject *res;
- if (kwargs == NULL || PyDict_GET_SIZE(kwargs) == 0) {
- res = func(callable, args, nargsf, NULL);
+
+ PyObject *res;
+ if (kwargs == NULL || PyDict_GET_SIZE(kwargs) == 0) {
+ res = func(callable, args, nargsf, NULL);
}
else {
- PyObject *kwnames;
- PyObject *const *newargs;
- newargs = _PyStack_UnpackDict(tstate,
- args, nargs,
- kwargs, &kwnames);
- if (newargs == NULL) {
+ PyObject *kwnames;
+ PyObject *const *newargs;
+ newargs = _PyStack_UnpackDict(tstate,
+ args, nargs,
+ kwargs, &kwnames);
+ if (newargs == NULL) {
return NULL;
}
- res = func(callable, newargs,
- nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
- _PyStack_UnpackDict_Free(newargs, nargs, kwnames);
+ res = func(callable, newargs,
+ nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
+ _PyStack_UnpackDict_Free(newargs, nargs, kwnames);
}
- return _Py_CheckFunctionResult(tstate, callable, res, NULL);
+ return _Py_CheckFunctionResult(tstate, callable, res, NULL);
+}
+
+
+PyObject *
+PyObject_VectorcallDict(PyObject *callable, PyObject *const *args,
+ size_t nargsf, PyObject *kwargs)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyObject_FastCallDictTstate(tstate, callable, args, nargsf, kwargs);
}
PyObject *
-PyObject_VectorcallDict(PyObject *callable, PyObject *const *args,
- size_t nargsf, PyObject *kwargs)
+_PyObject_MakeTpCall(PyThreadState *tstate, PyObject *callable,
+ PyObject *const *args, Py_ssize_t nargs,
+ PyObject *keywords)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyObject_FastCallDictTstate(tstate, callable, args, nargsf, kwargs);
-}
-
-
-PyObject *
-_PyObject_MakeTpCall(PyThreadState *tstate, PyObject *callable,
- PyObject *const *args, Py_ssize_t nargs,
- PyObject *keywords)
-{
- assert(nargs >= 0);
- assert(nargs == 0 || args != NULL);
- assert(keywords == NULL || PyTuple_Check(keywords) || PyDict_Check(keywords));
-
- /* Slow path: build a temporary tuple for positional arguments and a
- * temporary dictionary for keyword arguments (if any) */
- ternaryfunc call = Py_TYPE(callable)->tp_call;
- if (call == NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'%.200s' object is not callable",
- Py_TYPE(callable)->tp_name);
- return NULL;
- }
-
- PyObject *argstuple = _PyTuple_FromArray(args, nargs);
- if (argstuple == NULL) {
- return NULL;
- }
-
- PyObject *kwdict;
- if (keywords == NULL || PyDict_Check(keywords)) {
- kwdict = keywords;
+ assert(nargs >= 0);
+ assert(nargs == 0 || args != NULL);
+ assert(keywords == NULL || PyTuple_Check(keywords) || PyDict_Check(keywords));
+
+ /* Slow path: build a temporary tuple for positional arguments and a
+ * temporary dictionary for keyword arguments (if any) */
+ ternaryfunc call = Py_TYPE(callable)->tp_call;
+ if (call == NULL) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'%.200s' object is not callable",
+ Py_TYPE(callable)->tp_name);
+ return NULL;
+ }
+
+ PyObject *argstuple = _PyTuple_FromArray(args, nargs);
+ if (argstuple == NULL) {
+ return NULL;
+ }
+
+ PyObject *kwdict;
+ if (keywords == NULL || PyDict_Check(keywords)) {
+ kwdict = keywords;
}
else {
- if (PyTuple_GET_SIZE(keywords)) {
- assert(args != NULL);
- kwdict = _PyStack_AsDict(args + nargs, keywords);
+ if (PyTuple_GET_SIZE(keywords)) {
+ assert(args != NULL);
+ kwdict = _PyStack_AsDict(args + nargs, keywords);
if (kwdict == NULL) {
Py_DECREF(argstuple);
return NULL;
}
}
else {
- keywords = kwdict = NULL;
+ keywords = kwdict = NULL;
}
- }
-
- PyObject *result = NULL;
- if (_Py_EnterRecursiveCall(tstate, " while calling a Python object") == 0)
- {
- result = call(callable, argstuple, kwdict);
- _Py_LeaveRecursiveCall(tstate);
- }
-
- Py_DECREF(argstuple);
- if (kwdict != keywords) {
- Py_DECREF(kwdict);
- }
-
- return _Py_CheckFunctionResult(tstate, callable, result, NULL);
-}
-
-
-PyObject *
-PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *kwargs)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- vectorcallfunc func;
-
- /* get vectorcallfunc as in PyVectorcall_Function, but without
- * the Py_TPFLAGS_HAVE_VECTORCALL check */
- Py_ssize_t offset = Py_TYPE(callable)->tp_vectorcall_offset;
- if (offset <= 0) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'%.200s' object does not support vectorcall",
- Py_TYPE(callable)->tp_name);
- return NULL;
- }
- memcpy(&func, (char *) callable + offset, sizeof(func));
- if (func == NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'%.200s' object does not support vectorcall",
- Py_TYPE(callable)->tp_name);
- return NULL;
- }
-
- Py_ssize_t nargs = PyTuple_GET_SIZE(tuple);
-
- /* Fast path for no keywords */
- if (kwargs == NULL || PyDict_GET_SIZE(kwargs) == 0) {
- return func(callable, _PyTuple_ITEMS(tuple), nargs, NULL);
- }
-
- /* Convert arguments & call */
- PyObject *const *args;
- PyObject *kwnames;
- args = _PyStack_UnpackDict(tstate,
- _PyTuple_ITEMS(tuple), nargs,
- kwargs, &kwnames);
- if (args == NULL) {
- return NULL;
- }
- PyObject *result = func(callable, args,
- nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
- _PyStack_UnpackDict_Free(args, nargs, kwnames);
-
- return _Py_CheckFunctionResult(tstate, callable, result, NULL);
+ }
+
+ PyObject *result = NULL;
+ if (_Py_EnterRecursiveCall(tstate, " while calling a Python object") == 0)
+ {
+ result = call(callable, argstuple, kwdict);
+ _Py_LeaveRecursiveCall(tstate);
+ }
+
+ Py_DECREF(argstuple);
+ if (kwdict != keywords) {
+ Py_DECREF(kwdict);
+ }
+
+ return _Py_CheckFunctionResult(tstate, callable, result, NULL);
}
PyObject *
-_PyObject_Call(PyThreadState *tstate, PyObject *callable,
- PyObject *args, PyObject *kwargs)
+PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *kwargs)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ vectorcallfunc func;
+
+ /* get vectorcallfunc as in PyVectorcall_Function, but without
+ * the Py_TPFLAGS_HAVE_VECTORCALL check */
+ Py_ssize_t offset = Py_TYPE(callable)->tp_vectorcall_offset;
+ if (offset <= 0) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'%.200s' object does not support vectorcall",
+ Py_TYPE(callable)->tp_name);
+ return NULL;
+ }
+ memcpy(&func, (char *) callable + offset, sizeof(func));
+ if (func == NULL) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'%.200s' object does not support vectorcall",
+ Py_TYPE(callable)->tp_name);
+ return NULL;
+ }
+
+ Py_ssize_t nargs = PyTuple_GET_SIZE(tuple);
+
+ /* Fast path for no keywords */
+ if (kwargs == NULL || PyDict_GET_SIZE(kwargs) == 0) {
+ return func(callable, _PyTuple_ITEMS(tuple), nargs, NULL);
+ }
+
+ /* Convert arguments & call */
+ PyObject *const *args;
+ PyObject *kwnames;
+ args = _PyStack_UnpackDict(tstate,
+ _PyTuple_ITEMS(tuple), nargs,
+ kwargs, &kwnames);
+ if (args == NULL) {
+ return NULL;
+ }
+ PyObject *result = func(callable, args,
+ nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
+ _PyStack_UnpackDict_Free(args, nargs, kwnames);
+
+ return _Py_CheckFunctionResult(tstate, callable, result, NULL);
+}
+
+
+PyObject *
+_PyObject_Call(PyThreadState *tstate, PyObject *callable,
+ PyObject *args, PyObject *kwargs)
{
ternaryfunc call;
PyObject *result;
@@ -258,76 +258,76 @@ _PyObject_Call(PyThreadState *tstate, PyObject *callable,
/* PyObject_Call() must not be called with an exception set,
because it can clear it (directly or indirectly) and so the
caller loses its exception */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
assert(PyTuple_Check(args));
assert(kwargs == NULL || PyDict_Check(kwargs));
- if (PyVectorcall_Function(callable) != NULL) {
- return PyVectorcall_Call(callable, args, kwargs);
+ if (PyVectorcall_Function(callable) != NULL) {
+ return PyVectorcall_Call(callable, args, kwargs);
}
else {
- call = Py_TYPE(callable)->tp_call;
+ call = Py_TYPE(callable)->tp_call;
if (call == NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'%.200s' object is not callable",
- Py_TYPE(callable)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'%.200s' object is not callable",
+ Py_TYPE(callable)->tp_name);
return NULL;
}
- if (_Py_EnterRecursiveCall(tstate, " while calling a Python object")) {
+ if (_Py_EnterRecursiveCall(tstate, " while calling a Python object")) {
return NULL;
- }
+ }
result = (*call)(callable, args, kwargs);
- _Py_LeaveRecursiveCall(tstate);
+ _Py_LeaveRecursiveCall(tstate);
- return _Py_CheckFunctionResult(tstate, callable, result, NULL);
+ return _Py_CheckFunctionResult(tstate, callable, result, NULL);
}
}
-PyObject *
-PyObject_Call(PyObject *callable, PyObject *args, PyObject *kwargs)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyObject_Call(tstate, callable, args, kwargs);
-}
-
-
-PyObject *
-PyCFunction_Call(PyObject *callable, PyObject *args, PyObject *kwargs)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyObject_Call(tstate, callable, args, kwargs);
-}
-
-
+PyObject *
+PyObject_Call(PyObject *callable, PyObject *args, PyObject *kwargs)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyObject_Call(tstate, callable, args, kwargs);
+}
+
+
+PyObject *
+PyCFunction_Call(PyObject *callable, PyObject *args, PyObject *kwargs)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyObject_Call(tstate, callable, args, kwargs);
+}
+
+
/* --- PyFunction call functions ---------------------------------- */
static PyObject* _Py_HOT_FUNCTION
-function_code_fastcall(PyThreadState *tstate, PyCodeObject *co,
- PyObject *const *args, Py_ssize_t nargs,
+function_code_fastcall(PyThreadState *tstate, PyCodeObject *co,
+ PyObject *const *args, Py_ssize_t nargs,
PyObject *globals)
{
- assert(tstate != NULL);
- assert(globals != NULL);
+ assert(tstate != NULL);
+ assert(globals != NULL);
/* XXX Perhaps we should create a specialized
_PyFrame_New_NoTrack() that doesn't take locals, but does
take builtins without sanity checking them.
*/
- PyFrameObject *f = _PyFrame_New_NoTrack(tstate, co, globals, NULL);
+ PyFrameObject *f = _PyFrame_New_NoTrack(tstate, co, globals, NULL);
if (f == NULL) {
return NULL;
}
- PyObject **fastlocals = f->f_localsplus;
+ PyObject **fastlocals = f->f_localsplus;
- for (Py_ssize_t i = 0; i < nargs; i++) {
+ for (Py_ssize_t i = 0; i < nargs; i++) {
Py_INCREF(*args);
fastlocals[i] = *args++;
}
- PyObject *result = _PyEval_EvalFrame(tstate, f, 0);
+ PyObject *result = _PyEval_EvalFrame(tstate, f, 0);
if (Py_REFCNT(f) > 1) {
Py_DECREF(f);
@@ -343,19 +343,19 @@ function_code_fastcall(PyThreadState *tstate, PyCodeObject *co,
PyObject *
-_PyFunction_Vectorcall(PyObject *func, PyObject* const* stack,
- size_t nargsf, PyObject *kwnames)
+_PyFunction_Vectorcall(PyObject *func, PyObject* const* stack,
+ size_t nargsf, PyObject *kwnames)
{
- assert(PyFunction_Check(func));
- assert(kwnames == NULL || PyTuple_CheckExact(kwnames));
+ assert(PyFunction_Check(func));
+ assert(kwnames == NULL || PyTuple_CheckExact(kwnames));
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
assert(nargs >= 0);
- Py_ssize_t nkwargs = (kwnames == NULL) ? 0 : PyTuple_GET_SIZE(kwnames);
- assert((nargs == 0 && nkwargs == 0) || stack != NULL);
- /* kwnames must only contain strings and all keys must be unique */
+ Py_ssize_t nkwargs = (kwnames == NULL) ? 0 : PyTuple_GET_SIZE(kwnames);
+ assert((nargs == 0 && nkwargs == 0) || stack != NULL);
+ /* kwnames must only contain strings and all keys must be unique */
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
PyObject *globals = PyFunction_GET_GLOBALS(func);
PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
@@ -364,43 +364,43 @@ _PyFunction_Vectorcall(PyObject *func, PyObject* const* stack,
(co->co_flags & ~PyCF_MASK) == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE))
{
if (argdefs == NULL && co->co_argcount == nargs) {
- return function_code_fastcall(tstate, co, stack, nargs, globals);
+ return function_code_fastcall(tstate, co, stack, nargs, globals);
}
else if (nargs == 0 && argdefs != NULL
&& co->co_argcount == PyTuple_GET_SIZE(argdefs)) {
/* function called with no arguments, but all parameters have
a default value: use default values as arguments .*/
- stack = _PyTuple_ITEMS(argdefs);
- return function_code_fastcall(tstate, co,
- stack, PyTuple_GET_SIZE(argdefs),
+ stack = _PyTuple_ITEMS(argdefs);
+ return function_code_fastcall(tstate, co,
+ stack, PyTuple_GET_SIZE(argdefs),
globals);
}
}
- PyObject *kwdefs = PyFunction_GET_KW_DEFAULTS(func);
- PyObject *closure = PyFunction_GET_CLOSURE(func);
- PyObject *name = ((PyFunctionObject *)func) -> func_name;
- PyObject *qualname = ((PyFunctionObject *)func) -> func_qualname;
+ PyObject *kwdefs = PyFunction_GET_KW_DEFAULTS(func);
+ PyObject *closure = PyFunction_GET_CLOSURE(func);
+ PyObject *name = ((PyFunctionObject *)func) -> func_name;
+ PyObject *qualname = ((PyFunctionObject *)func) -> func_qualname;
- PyObject **d;
- Py_ssize_t nd;
+ PyObject **d;
+ Py_ssize_t nd;
if (argdefs != NULL) {
- d = _PyTuple_ITEMS(argdefs);
+ d = _PyTuple_ITEMS(argdefs);
nd = PyTuple_GET_SIZE(argdefs);
- assert(nd <= INT_MAX);
+ assert(nd <= INT_MAX);
}
else {
d = NULL;
nd = 0;
}
- return _PyEval_EvalCode(tstate,
- (PyObject*)co, globals, (PyObject *)NULL,
- stack, nargs,
- nkwargs ? _PyTuple_ITEMS(kwnames) : NULL,
- stack + nargs,
- nkwargs, 1,
- d, (int)nd, kwdefs,
- closure, name, qualname);
+ return _PyEval_EvalCode(tstate,
+ (PyObject*)co, globals, (PyObject *)NULL,
+ stack, nargs,
+ nkwargs ? _PyTuple_ITEMS(kwnames) : NULL,
+ stack + nargs,
+ nkwargs, 1,
+ d, (int)nd, kwdefs,
+ closure, name, qualname);
}
@@ -412,31 +412,31 @@ PyObject *
PyEval_CallObjectWithKeywords(PyObject *callable,
PyObject *args, PyObject *kwargs)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
#ifdef Py_DEBUG
/* PyEval_CallObjectWithKeywords() must not be called with an exception
set. It raises a new exception if parameters are invalid or if
PyTuple_New() fails, and so the original exception is lost. */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
#endif
if (args != NULL && !PyTuple_Check(args)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "argument list must be a tuple");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "argument list must be a tuple");
return NULL;
}
if (kwargs != NULL && !PyDict_Check(kwargs)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "keyword list must be a dictionary");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "keyword list must be a dictionary");
return NULL;
}
if (args == NULL) {
- return _PyObject_FastCallDictTstate(tstate, callable, NULL, 0, kwargs);
+ return _PyObject_FastCallDictTstate(tstate, callable, NULL, 0, kwargs);
}
else {
- return _PyObject_Call(tstate, callable, args, kwargs);
+ return _PyObject_Call(tstate, callable, args, kwargs);
}
}
@@ -444,31 +444,31 @@ PyEval_CallObjectWithKeywords(PyObject *callable,
PyObject *
PyObject_CallObject(PyObject *callable, PyObject *args)
{
- PyThreadState *tstate = _PyThreadState_GET();
- assert(!_PyErr_Occurred(tstate));
- if (args == NULL) {
- return _PyObject_CallNoArgTstate(tstate, callable);
+ PyThreadState *tstate = _PyThreadState_GET();
+ assert(!_PyErr_Occurred(tstate));
+ if (args == NULL) {
+ return _PyObject_CallNoArgTstate(tstate, callable);
}
- if (!PyTuple_Check(args)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "argument list must be a tuple");
- return NULL;
+ if (!PyTuple_Check(args)) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "argument list must be a tuple");
+ return NULL;
}
- return _PyObject_Call(tstate, callable, args, NULL);
+ return _PyObject_Call(tstate, callable, args, NULL);
}
/* Call callable(obj, *args, **kwargs). */
PyObject *
-_PyObject_Call_Prepend(PyThreadState *tstate, PyObject *callable,
+_PyObject_Call_Prepend(PyThreadState *tstate, PyObject *callable,
PyObject *obj, PyObject *args, PyObject *kwargs)
{
- assert(PyTuple_Check(args));
-
+ assert(PyTuple_Check(args));
+
PyObject *small_stack[_PY_FASTCALL_SMALL_STACK];
PyObject **stack;
- Py_ssize_t argcount = PyTuple_GET_SIZE(args);
+ Py_ssize_t argcount = PyTuple_GET_SIZE(args);
if (argcount + 1 <= (Py_ssize_t)Py_ARRAY_LENGTH(small_stack)) {
stack = small_stack;
}
@@ -483,12 +483,12 @@ _PyObject_Call_Prepend(PyThreadState *tstate, PyObject *callable,
/* use borrowed references */
stack[0] = obj;
memcpy(&stack[1],
- _PyTuple_ITEMS(args),
- argcount * sizeof(PyObject *));
+ _PyTuple_ITEMS(args),
+ argcount * sizeof(PyObject *));
- PyObject *result = _PyObject_FastCallDictTstate(tstate, callable,
- stack, argcount + 1,
- kwargs);
+ PyObject *result = _PyObject_FastCallDictTstate(tstate, callable,
+ stack, argcount + 1,
+ kwargs);
if (stack != small_stack) {
PyMem_Free(stack);
}
@@ -499,8 +499,8 @@ _PyObject_Call_Prepend(PyThreadState *tstate, PyObject *callable,
/* --- Call with a format string ---------------------------------- */
static PyObject *
-_PyObject_CallFunctionVa(PyThreadState *tstate, PyObject *callable,
- const char *format, va_list va, int is_size_t)
+_PyObject_CallFunctionVa(PyThreadState *tstate, PyObject *callable,
+ const char *format, va_list va, int is_size_t)
{
PyObject* small_stack[_PY_FASTCALL_SMALL_STACK];
const Py_ssize_t small_stack_len = Py_ARRAY_LENGTH(small_stack);
@@ -509,11 +509,11 @@ _PyObject_CallFunctionVa(PyThreadState *tstate, PyObject *callable,
PyObject *result;
if (callable == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
if (!format || !*format) {
- return _PyObject_CallNoArgTstate(tstate, callable);
+ return _PyObject_CallNoArgTstate(tstate, callable);
}
if (is_size_t) {
@@ -534,14 +534,14 @@ _PyObject_CallFunctionVa(PyThreadState *tstate, PyObject *callable,
- PyObject_CallFunction(func, "(OOO)", arg1, arg2, arg3) calls
func(*(arg1, arg2, arg3)): func(arg1, arg2, arg3) */
PyObject *args = stack[0];
- result = _PyObject_VectorcallTstate(tstate, callable,
- _PyTuple_ITEMS(args),
- PyTuple_GET_SIZE(args),
- NULL);
+ result = _PyObject_VectorcallTstate(tstate, callable,
+ _PyTuple_ITEMS(args),
+ PyTuple_GET_SIZE(args),
+ NULL);
}
else {
- result = _PyObject_VectorcallTstate(tstate, callable,
- stack, nargs, NULL);
+ result = _PyObject_VectorcallTstate(tstate, callable,
+ stack, nargs, NULL);
}
for (i = 0; i < nargs; ++i) {
@@ -559,10 +559,10 @@ PyObject_CallFunction(PyObject *callable, const char *format, ...)
{
va_list va;
PyObject *result;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
va_start(va, format);
- result = _PyObject_CallFunctionVa(tstate, callable, format, va, 0);
+ result = _PyObject_CallFunctionVa(tstate, callable, format, va, 0);
va_end(va);
return result;
@@ -577,10 +577,10 @@ PyEval_CallFunction(PyObject *callable, const char *format, ...)
{
va_list va;
PyObject *result;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
va_start(va, format);
- result = _PyObject_CallFunctionVa(tstate, callable, format, va, 0);
+ result = _PyObject_CallFunctionVa(tstate, callable, format, va, 0);
va_end(va);
return result;
@@ -590,11 +590,11 @@ PyEval_CallFunction(PyObject *callable, const char *format, ...)
PyObject *
_PyObject_CallFunction_SizeT(PyObject *callable, const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
-
+ PyThreadState *tstate = _PyThreadState_GET();
+
va_list va;
va_start(va, format);
- PyObject *result = _PyObject_CallFunctionVa(tstate, callable, format, va, 1);
+ PyObject *result = _PyObject_CallFunctionVa(tstate, callable, format, va, 1);
va_end(va);
return result;
@@ -602,37 +602,37 @@ _PyObject_CallFunction_SizeT(PyObject *callable, const char *format, ...)
static PyObject*
-callmethod(PyThreadState *tstate, PyObject* callable, const char *format, va_list va, int is_size_t)
+callmethod(PyThreadState *tstate, PyObject* callable, const char *format, va_list va, int is_size_t)
{
assert(callable != NULL);
if (!PyCallable_Check(callable)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "attribute of type '%.200s' is not callable",
- Py_TYPE(callable)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "attribute of type '%.200s' is not callable",
+ Py_TYPE(callable)->tp_name);
return NULL;
}
- return _PyObject_CallFunctionVa(tstate, callable, format, va, is_size_t);
+ return _PyObject_CallFunctionVa(tstate, callable, format, va, is_size_t);
}
PyObject *
PyObject_CallMethod(PyObject *obj, const char *name, const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (obj == NULL || name == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
- PyObject *callable = PyObject_GetAttrString(obj, name);
- if (callable == NULL) {
+ PyObject *callable = PyObject_GetAttrString(obj, name);
+ if (callable == NULL) {
return NULL;
- }
+ }
- va_list va;
+ va_list va;
va_start(va, format);
- PyObject *retval = callmethod(tstate, callable, format, va, 0);
+ PyObject *retval = callmethod(tstate, callable, format, va, 0);
va_end(va);
Py_DECREF(callable);
@@ -646,19 +646,19 @@ PyObject_CallMethod(PyObject *obj, const char *name, const char *format, ...)
PyObject *
PyEval_CallMethod(PyObject *obj, const char *name, const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (obj == NULL || name == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
- PyObject *callable = PyObject_GetAttrString(obj, name);
- if (callable == NULL) {
+ PyObject *callable = PyObject_GetAttrString(obj, name);
+ if (callable == NULL) {
return NULL;
- }
+ }
- va_list va;
+ va_list va;
va_start(va, format);
- PyObject *retval = callmethod(tstate, callable, format, va, 0);
+ PyObject *retval = callmethod(tstate, callable, format, va, 0);
va_end(va);
Py_DECREF(callable);
@@ -670,19 +670,19 @@ PyObject *
_PyObject_CallMethodId(PyObject *obj, _Py_Identifier *name,
const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (obj == NULL || name == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
- PyObject *callable = _PyObject_GetAttrId(obj, name);
- if (callable == NULL) {
+ PyObject *callable = _PyObject_GetAttrId(obj, name);
+ if (callable == NULL) {
return NULL;
- }
+ }
- va_list va;
+ va_list va;
va_start(va, format);
- PyObject *retval = callmethod(tstate, callable, format, va, 0);
+ PyObject *retval = callmethod(tstate, callable, format, va, 0);
va_end(va);
Py_DECREF(callable);
@@ -694,19 +694,19 @@ PyObject *
_PyObject_CallMethod_SizeT(PyObject *obj, const char *name,
const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (obj == NULL || name == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
- PyObject *callable = PyObject_GetAttrString(obj, name);
- if (callable == NULL) {
+ PyObject *callable = PyObject_GetAttrString(obj, name);
+ if (callable == NULL) {
return NULL;
- }
+ }
- va_list va;
+ va_list va;
va_start(va, format);
- PyObject *retval = callmethod(tstate, callable, format, va, 1);
+ PyObject *retval = callmethod(tstate, callable, format, va, 1);
va_end(va);
Py_DECREF(callable);
@@ -718,19 +718,19 @@ PyObject *
_PyObject_CallMethodId_SizeT(PyObject *obj, _Py_Identifier *name,
const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (obj == NULL || name == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
- PyObject *callable = _PyObject_GetAttrId(obj, name);
+ PyObject *callable = _PyObject_GetAttrId(obj, name);
if (callable == NULL) {
return NULL;
}
- va_list va;
+ va_list va;
va_start(va, format);
- PyObject *retval = callmethod(tstate, callable, format, va, 1);
+ PyObject *retval = callmethod(tstate, callable, format, va, 1);
va_end(va);
Py_DECREF(callable);
@@ -741,8 +741,8 @@ _PyObject_CallMethodId_SizeT(PyObject *obj, _Py_Identifier *name,
/* --- Call with "..." arguments ---------------------------------- */
static PyObject *
-object_vacall(PyThreadState *tstate, PyObject *base,
- PyObject *callable, va_list vargs)
+object_vacall(PyThreadState *tstate, PyObject *base,
+ PyObject *callable, va_list vargs)
{
PyObject *small_stack[_PY_FASTCALL_SMALL_STACK];
PyObject **stack;
@@ -752,12 +752,12 @@ object_vacall(PyThreadState *tstate, PyObject *base,
va_list countva;
if (callable == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
/* Count the number of arguments */
va_copy(countva, vargs);
- nargs = base ? 1 : 0;
+ nargs = base ? 1 : 0;
while (1) {
PyObject *arg = va_arg(countva, PyObject *);
if (arg == NULL) {
@@ -779,17 +779,17 @@ object_vacall(PyThreadState *tstate, PyObject *base,
}
}
- i = 0;
- if (base) {
- stack[i++] = base;
- }
-
- for (; i < nargs; ++i) {
+ i = 0;
+ if (base) {
+ stack[i++] = base;
+ }
+
+ for (; i < nargs; ++i) {
stack[i] = va_arg(vargs, PyObject *);
}
/* Call the function */
- result = _PyObject_VectorcallTstate(tstate, callable, stack, nargs, NULL);
+ result = _PyObject_VectorcallTstate(tstate, callable, stack, nargs, NULL);
if (stack != small_stack) {
PyMem_Free(stack);
@@ -798,58 +798,58 @@ object_vacall(PyThreadState *tstate, PyObject *base,
}
-PyObject *
-PyObject_VectorcallMethod(PyObject *name, PyObject *const *args,
- size_t nargsf, PyObject *kwnames)
-{
- assert(name != NULL);
- assert(args != NULL);
- assert(PyVectorcall_NARGS(nargsf) >= 1);
-
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *callable = NULL;
- /* Use args[0] as "self" argument */
- int unbound = _PyObject_GetMethod(args[0], name, &callable);
- if (callable == NULL) {
- return NULL;
- }
-
- if (unbound) {
- /* We must remove PY_VECTORCALL_ARGUMENTS_OFFSET since
- * that would be interpreted as allowing to change args[-1] */
- nargsf &= ~PY_VECTORCALL_ARGUMENTS_OFFSET;
- }
- else {
- /* Skip "self". We can keep PY_VECTORCALL_ARGUMENTS_OFFSET since
- * args[-1] in the onward call is args[0] here. */
- args++;
- nargsf--;
- }
- PyObject *result = _PyObject_VectorcallTstate(tstate, callable,
- args, nargsf, kwnames);
- Py_DECREF(callable);
- return result;
-}
-
-
PyObject *
-PyObject_CallMethodObjArgs(PyObject *obj, PyObject *name, ...)
+PyObject_VectorcallMethod(PyObject *name, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames)
+{
+ assert(name != NULL);
+ assert(args != NULL);
+ assert(PyVectorcall_NARGS(nargsf) >= 1);
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *callable = NULL;
+ /* Use args[0] as "self" argument */
+ int unbound = _PyObject_GetMethod(args[0], name, &callable);
+ if (callable == NULL) {
+ return NULL;
+ }
+
+ if (unbound) {
+ /* We must remove PY_VECTORCALL_ARGUMENTS_OFFSET since
+ * that would be interpreted as allowing to change args[-1] */
+ nargsf &= ~PY_VECTORCALL_ARGUMENTS_OFFSET;
+ }
+ else {
+ /* Skip "self". We can keep PY_VECTORCALL_ARGUMENTS_OFFSET since
+ * args[-1] in the onward call is args[0] here. */
+ args++;
+ nargsf--;
+ }
+ PyObject *result = _PyObject_VectorcallTstate(tstate, callable,
+ args, nargsf, kwnames);
+ Py_DECREF(callable);
+ return result;
+}
+
+
+PyObject *
+PyObject_CallMethodObjArgs(PyObject *obj, PyObject *name, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (obj == NULL || name == NULL) {
- return null_error(tstate);
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (obj == NULL || name == NULL) {
+ return null_error(tstate);
}
- PyObject *callable = NULL;
- int is_method = _PyObject_GetMethod(obj, name, &callable);
+ PyObject *callable = NULL;
+ int is_method = _PyObject_GetMethod(obj, name, &callable);
if (callable == NULL) {
return NULL;
}
- obj = is_method ? obj : NULL;
+ obj = is_method ? obj : NULL;
- va_list vargs;
+ va_list vargs;
va_start(vargs, name);
- PyObject *result = object_vacall(tstate, obj, callable, vargs);
+ PyObject *result = object_vacall(tstate, obj, callable, vargs);
va_end(vargs);
Py_DECREF(callable);
@@ -861,26 +861,26 @@ PyObject *
_PyObject_CallMethodIdObjArgs(PyObject *obj,
struct _Py_Identifier *name, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (obj == NULL || name == NULL) {
- return null_error(tstate);
+ return null_error(tstate);
}
- PyObject *oname = _PyUnicode_FromId(name); /* borrowed */
- if (!oname) {
- return NULL;
- }
-
- PyObject *callable = NULL;
- int is_method = _PyObject_GetMethod(obj, oname, &callable);
+ PyObject *oname = _PyUnicode_FromId(name); /* borrowed */
+ if (!oname) {
+ return NULL;
+ }
+
+ PyObject *callable = NULL;
+ int is_method = _PyObject_GetMethod(obj, oname, &callable);
if (callable == NULL) {
return NULL;
}
- obj = is_method ? obj : NULL;
+ obj = is_method ? obj : NULL;
- va_list vargs;
+ va_list vargs;
va_start(vargs, name);
- PyObject *result = object_vacall(tstate, obj, callable, vargs);
+ PyObject *result = object_vacall(tstate, obj, callable, vargs);
va_end(vargs);
Py_DECREF(callable);
@@ -891,12 +891,12 @@ _PyObject_CallMethodIdObjArgs(PyObject *obj,
PyObject *
PyObject_CallFunctionObjArgs(PyObject *callable, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
va_list vargs;
PyObject *result;
va_start(vargs, callable);
- result = object_vacall(tstate, NULL, callable, vargs);
+ result = object_vacall(tstate, NULL, callable, vargs);
va_end(vargs);
return result;
@@ -932,98 +932,98 @@ _PyStack_AsDict(PyObject *const *values, PyObject *kwnames)
}
-/* Convert (args, nargs, kwargs: dict) into a (stack, nargs, kwnames: tuple).
-
- Allocate a new argument vector and keyword names tuple. Return the argument
- vector; return NULL with exception set on error. Return the keyword names
- tuple in *p_kwnames.
-
- This also checks that all keyword names are strings. If not, a TypeError is
- raised.
-
- The newly allocated argument vector supports PY_VECTORCALL_ARGUMENTS_OFFSET.
-
- When done, you must call _PyStack_UnpackDict_Free(stack, nargs, kwnames) */
-static PyObject *const *
-_PyStack_UnpackDict(PyThreadState *tstate,
- PyObject *const *args, Py_ssize_t nargs,
- PyObject *kwargs, PyObject **p_kwnames)
+/* Convert (args, nargs, kwargs: dict) into a (stack, nargs, kwnames: tuple).
+
+ Allocate a new argument vector and keyword names tuple. Return the argument
+ vector; return NULL with exception set on error. Return the keyword names
+ tuple in *p_kwnames.
+
+ This also checks that all keyword names are strings. If not, a TypeError is
+ raised.
+
+ The newly allocated argument vector supports PY_VECTORCALL_ARGUMENTS_OFFSET.
+
+ When done, you must call _PyStack_UnpackDict_Free(stack, nargs, kwnames) */
+static PyObject *const *
+_PyStack_UnpackDict(PyThreadState *tstate,
+ PyObject *const *args, Py_ssize_t nargs,
+ PyObject *kwargs, PyObject **p_kwnames)
{
assert(nargs >= 0);
- assert(kwargs != NULL);
- assert(PyDict_Check(kwargs));
-
- Py_ssize_t nkwargs = PyDict_GET_SIZE(kwargs);
- /* Check for overflow in the PyMem_Malloc() call below. The subtraction
- * in this check cannot overflow: both maxnargs and nkwargs are
- * non-negative signed integers, so their difference fits in the type. */
- Py_ssize_t maxnargs = PY_SSIZE_T_MAX / sizeof(args[0]) - 1;
- if (nargs > maxnargs - nkwargs) {
- _PyErr_NoMemory(tstate);
- return NULL;
+ assert(kwargs != NULL);
+ assert(PyDict_Check(kwargs));
+
+ Py_ssize_t nkwargs = PyDict_GET_SIZE(kwargs);
+ /* Check for overflow in the PyMem_Malloc() call below. The subtraction
+ * in this check cannot overflow: both maxnargs and nkwargs are
+ * non-negative signed integers, so their difference fits in the type. */
+ Py_ssize_t maxnargs = PY_SSIZE_T_MAX / sizeof(args[0]) - 1;
+ if (nargs > maxnargs - nkwargs) {
+ _PyErr_NoMemory(tstate);
+ return NULL;
}
- /* Add 1 to support PY_VECTORCALL_ARGUMENTS_OFFSET */
- PyObject **stack = PyMem_Malloc((1 + nargs + nkwargs) * sizeof(args[0]));
+ /* Add 1 to support PY_VECTORCALL_ARGUMENTS_OFFSET */
+ PyObject **stack = PyMem_Malloc((1 + nargs + nkwargs) * sizeof(args[0]));
if (stack == NULL) {
- _PyErr_NoMemory(tstate);
- return NULL;
+ _PyErr_NoMemory(tstate);
+ return NULL;
}
- PyObject *kwnames = PyTuple_New(nkwargs);
+ PyObject *kwnames = PyTuple_New(nkwargs);
if (kwnames == NULL) {
PyMem_Free(stack);
- return NULL;
+ return NULL;
}
- stack++; /* For PY_VECTORCALL_ARGUMENTS_OFFSET */
-
- /* Copy positional arguments */
- for (Py_ssize_t i = 0; i < nargs; i++) {
- Py_INCREF(args[i]);
- stack[i] = args[i];
- }
+ stack++; /* For PY_VECTORCALL_ARGUMENTS_OFFSET */
- PyObject **kwstack = stack + nargs;
+ /* Copy positional arguments */
+ for (Py_ssize_t i = 0; i < nargs; i++) {
+ Py_INCREF(args[i]);
+ stack[i] = args[i];
+ }
+
+ PyObject **kwstack = stack + nargs;
/* This loop doesn't support lookup function mutating the dictionary
to change its size. It's a deliberate choice for speed, this function is
called in the performance critical hot code. */
- Py_ssize_t pos = 0, i = 0;
- PyObject *key, *value;
- unsigned long keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
+ Py_ssize_t pos = 0, i = 0;
+ PyObject *key, *value;
+ unsigned long keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
while (PyDict_Next(kwargs, &pos, &key, &value)) {
- keys_are_strings &= Py_TYPE(key)->tp_flags;
+ keys_are_strings &= Py_TYPE(key)->tp_flags;
Py_INCREF(key);
- Py_INCREF(value);
+ Py_INCREF(value);
PyTuple_SET_ITEM(kwnames, i, key);
kwstack[i] = value;
i++;
}
- /* keys_are_strings has the value Py_TPFLAGS_UNICODE_SUBCLASS if that
- * flag is set for all keys. Otherwise, keys_are_strings equals 0.
- * We do this check once at the end instead of inside the loop above
- * because it simplifies the deallocation in the failing case.
- * It happens to also make the loop above slightly more efficient. */
- if (!keys_are_strings) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "keywords must be strings");
- _PyStack_UnpackDict_Free(stack, nargs, kwnames);
- return NULL;
- }
-
+ /* keys_are_strings has the value Py_TPFLAGS_UNICODE_SUBCLASS if that
+ * flag is set for all keys. Otherwise, keys_are_strings equals 0.
+ * We do this check once at the end instead of inside the loop above
+ * because it simplifies the deallocation in the failing case.
+ * It happens to also make the loop above slightly more efficient. */
+ if (!keys_are_strings) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "keywords must be strings");
+ _PyStack_UnpackDict_Free(stack, nargs, kwnames);
+ return NULL;
+ }
+
*p_kwnames = kwnames;
- return stack;
+ return stack;
+}
+
+static void
+_PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs,
+ PyObject *kwnames)
+{
+ Py_ssize_t n = PyTuple_GET_SIZE(kwnames) + nargs;
+ for (Py_ssize_t i = 0; i < n; i++) {
+ Py_DECREF(stack[i]);
+ }
+ PyMem_Free((PyObject **)stack - 1);
+ Py_DECREF(kwnames);
}
-
-static void
-_PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs,
- PyObject *kwnames)
-{
- Py_ssize_t n = PyTuple_GET_SIZE(kwnames) + nargs;
- for (Py_ssize_t i = 0; i < n; i++) {
- Py_DECREF(stack[i]);
- }
- PyMem_Free((PyObject **)stack - 1);
- Py_DECREF(kwnames);
-}
diff --git a/contrib/tools/python3/src/Objects/capsule.c b/contrib/tools/python3/src/Objects/capsule.c
index eaa34d1401..ed24cc1d6a 100644
--- a/contrib/tools/python3/src/Objects/capsule.c
+++ b/contrib/tools/python3/src/Objects/capsule.c
@@ -50,7 +50,7 @@ PyCapsule_New(void *pointer, const char *name, PyCapsule_Destructor destructor)
return NULL;
}
- capsule = PyObject_New(PyCapsule, &PyCapsule_Type);
+ capsule = PyObject_New(PyCapsule, &PyCapsule_Type);
if (capsule == NULL) {
return NULL;
}
@@ -303,10 +303,10 @@ PyTypeObject PyCapsule_Type = {
0, /*tp_itemsize*/
/* methods */
capsule_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
capsule_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
diff --git a/contrib/tools/python3/src/Objects/cellobject.c b/contrib/tools/python3/src/Objects/cellobject.c
index ebc695be35..86a89f02e6 100644
--- a/contrib/tools/python3/src/Objects/cellobject.c
+++ b/contrib/tools/python3/src/Objects/cellobject.c
@@ -1,7 +1,7 @@
/* Cell object implementation */
#include "Python.h"
-#include "pycore_object.h"
+#include "pycore_object.h"
PyObject *
PyCell_New(PyObject *obj)
@@ -18,37 +18,37 @@ PyCell_New(PyObject *obj)
return (PyObject *)op;
}
-PyDoc_STRVAR(cell_new_doc,
-"cell([contents])\n"
-"--\n"
-"\n"
-"Create a new cell object.\n"
-"\n"
-" contents\n"
-" the contents of the cell. If not specified, the cell will be empty,\n"
-" and \n further attempts to access its cell_contents attribute will\n"
-" raise a ValueError.");
-
-
-static PyObject *
-cell_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
-{
- PyObject *return_value = NULL;
- PyObject *obj = NULL;
-
- if (!_PyArg_NoKeywords("cell", kwargs)) {
- goto exit;
- }
- /* min = 0: we allow the cell to be empty */
- if (!PyArg_UnpackTuple(args, "cell", 0, 1, &obj)) {
- goto exit;
- }
- return_value = PyCell_New(obj);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(cell_new_doc,
+"cell([contents])\n"
+"--\n"
+"\n"
+"Create a new cell object.\n"
+"\n"
+" contents\n"
+" the contents of the cell. If not specified, the cell will be empty,\n"
+" and \n further attempts to access its cell_contents attribute will\n"
+" raise a ValueError.");
+
+
+static PyObject *
+cell_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *obj = NULL;
+
+ if (!_PyArg_NoKeywords("cell", kwargs)) {
+ goto exit;
+ }
+ /* min = 0: we allow the cell to be empty */
+ if (!PyArg_UnpackTuple(args, "cell", 0, 1, &obj)) {
+ goto exit;
+ }
+ return_value = PyCell_New(obj);
+
+exit:
+ return return_value;
+}
+
PyObject *
PyCell_Get(PyObject *op)
{
@@ -110,7 +110,7 @@ cell_repr(PyCellObject *op)
return PyUnicode_FromFormat("<cell at %p: empty>", op);
return PyUnicode_FromFormat("<cell at %p: %.80s object at %p>",
- op, Py_TYPE(op->ob_ref)->tp_name,
+ op, Py_TYPE(op->ob_ref)->tp_name,
op->ob_ref);
}
@@ -160,10 +160,10 @@ PyTypeObject PyCell_Type = {
sizeof(PyCellObject),
0,
(destructor)cell_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)cell_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -175,7 +175,7 @@ PyTypeObject PyCell_Type = {
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
- cell_new_doc, /* tp_doc */
+ cell_new_doc, /* tp_doc */
(traverseproc)cell_traverse, /* tp_traverse */
(inquiry)cell_clear, /* tp_clear */
cell_richcompare, /* tp_richcompare */
@@ -185,13 +185,13 @@ PyTypeObject PyCell_Type = {
0, /* tp_methods */
0, /* tp_members */
cell_getsetlist, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- 0, /* tp_init */
- 0, /* tp_alloc */
- (newfunc)cell_new, /* tp_new */
- 0, /* tp_free */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ (newfunc)cell_new, /* tp_new */
+ 0, /* tp_free */
};
diff --git a/contrib/tools/python3/src/Objects/classobject.c b/contrib/tools/python3/src/Objects/classobject.c
index 0f05513cd0..af73be3d26 100644
--- a/contrib/tools/python3/src/Objects/classobject.c
+++ b/contrib/tools/python3/src/Objects/classobject.c
@@ -1,10 +1,10 @@
/* Class object implementation (dead now except for methods) */
#include "Python.h"
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "structmember.h" // PyMemberDef
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "structmember.h" // PyMemberDef
#define TP_DESCR_GET(t) ((t)->tp_descr_get)
@@ -31,65 +31,65 @@ PyMethod_Self(PyObject *im)
return ((PyMethodObject *)im)->im_self;
}
-
-static PyObject *
-method_vectorcall(PyObject *method, PyObject *const *args,
- size_t nargsf, PyObject *kwnames)
-{
- assert(Py_IS_TYPE(method, &PyMethod_Type));
-
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *self = PyMethod_GET_SELF(method);
- PyObject *func = PyMethod_GET_FUNCTION(method);
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
-
- PyObject *result;
- if (nargsf & PY_VECTORCALL_ARGUMENTS_OFFSET) {
- /* PY_VECTORCALL_ARGUMENTS_OFFSET is set, so we are allowed to mutate the vector */
- PyObject **newargs = (PyObject**)args - 1;
- nargs += 1;
- PyObject *tmp = newargs[0];
- newargs[0] = self;
- result = _PyObject_VectorcallTstate(tstate, func, newargs,
- nargs, kwnames);
- newargs[0] = tmp;
- }
- else {
- Py_ssize_t nkwargs = (kwnames == NULL) ? 0 : PyTuple_GET_SIZE(kwnames);
- Py_ssize_t totalargs = nargs + nkwargs;
- if (totalargs == 0) {
- return _PyObject_VectorcallTstate(tstate, func, &self, 1, NULL);
- }
-
- PyObject *newargs_stack[_PY_FASTCALL_SMALL_STACK];
- PyObject **newargs;
- if (totalargs <= (Py_ssize_t)Py_ARRAY_LENGTH(newargs_stack) - 1) {
- newargs = newargs_stack;
- }
- else {
- newargs = PyMem_Malloc((totalargs+1) * sizeof(PyObject *));
- if (newargs == NULL) {
- _PyErr_NoMemory(tstate);
- return NULL;
- }
- }
- /* use borrowed references */
- newargs[0] = self;
- /* bpo-37138: since totalargs > 0, it's impossible that args is NULL.
- * We need this, since calling memcpy() with a NULL pointer is
- * undefined behaviour. */
- assert(args != NULL);
- memcpy(newargs + 1, args, totalargs * sizeof(PyObject *));
- result = _PyObject_VectorcallTstate(tstate, func,
- newargs, nargs+1, kwnames);
- if (newargs != newargs_stack) {
- PyMem_Free(newargs);
- }
- }
- return result;
-}
-
-
+
+static PyObject *
+method_vectorcall(PyObject *method, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames)
+{
+ assert(Py_IS_TYPE(method, &PyMethod_Type));
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *self = PyMethod_GET_SELF(method);
+ PyObject *func = PyMethod_GET_FUNCTION(method);
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+
+ PyObject *result;
+ if (nargsf & PY_VECTORCALL_ARGUMENTS_OFFSET) {
+ /* PY_VECTORCALL_ARGUMENTS_OFFSET is set, so we are allowed to mutate the vector */
+ PyObject **newargs = (PyObject**)args - 1;
+ nargs += 1;
+ PyObject *tmp = newargs[0];
+ newargs[0] = self;
+ result = _PyObject_VectorcallTstate(tstate, func, newargs,
+ nargs, kwnames);
+ newargs[0] = tmp;
+ }
+ else {
+ Py_ssize_t nkwargs = (kwnames == NULL) ? 0 : PyTuple_GET_SIZE(kwnames);
+ Py_ssize_t totalargs = nargs + nkwargs;
+ if (totalargs == 0) {
+ return _PyObject_VectorcallTstate(tstate, func, &self, 1, NULL);
+ }
+
+ PyObject *newargs_stack[_PY_FASTCALL_SMALL_STACK];
+ PyObject **newargs;
+ if (totalargs <= (Py_ssize_t)Py_ARRAY_LENGTH(newargs_stack) - 1) {
+ newargs = newargs_stack;
+ }
+ else {
+ newargs = PyMem_Malloc((totalargs+1) * sizeof(PyObject *));
+ if (newargs == NULL) {
+ _PyErr_NoMemory(tstate);
+ return NULL;
+ }
+ }
+ /* use borrowed references */
+ newargs[0] = self;
+ /* bpo-37138: since totalargs > 0, it's impossible that args is NULL.
+ * We need this, since calling memcpy() with a NULL pointer is
+ * undefined behaviour. */
+ assert(args != NULL);
+ memcpy(newargs + 1, args, totalargs * sizeof(PyObject *));
+ result = _PyObject_VectorcallTstate(tstate, func,
+ newargs, nargs+1, kwnames);
+ if (newargs != newargs_stack) {
+ PyMem_Free(newargs);
+ }
+ }
+ return result;
+}
+
+
/* Method objects are used for bound instance methods returned by
instancename.methodname. ClassName.methodname returns an ordinary
function.
@@ -102,22 +102,22 @@ PyMethod_New(PyObject *func, PyObject *self)
PyErr_BadInternalCall();
return NULL;
}
- PyMethodObject *im = PyObject_GC_New(PyMethodObject, &PyMethod_Type);
- if (im == NULL) {
- return NULL;
+ PyMethodObject *im = PyObject_GC_New(PyMethodObject, &PyMethod_Type);
+ if (im == NULL) {
+ return NULL;
}
im->im_weakreflist = NULL;
Py_INCREF(func);
im->im_func = func;
- Py_INCREF(self);
+ Py_INCREF(self);
im->im_self = self;
- im->vectorcall = method_vectorcall;
+ im->vectorcall = method_vectorcall;
_PyObject_GC_TRACK(im);
return (PyObject *)im;
}
static PyObject *
-method_reduce(PyMethodObject *im, PyObject *Py_UNUSED(ignored))
+method_reduce(PyMethodObject *im, PyObject *Py_UNUSED(ignored))
{
PyObject *self = PyMethod_GET_SELF(im);
PyObject *func = PyMethod_GET_FUNCTION(im);
@@ -144,9 +144,9 @@ static PyMethodDef method_methods[] = {
#define MO_OFF(x) offsetof(PyMethodObject, x)
static PyMemberDef method_memberlist[] = {
- {"__func__", T_OBJECT, MO_OFF(im_func), READONLY,
+ {"__func__", T_OBJECT, MO_OFF(im_func), READONLY,
"the function (or other callable) implementing a method"},
- {"__self__", T_OBJECT, MO_OFF(im_self), READONLY,
+ {"__self__", T_OBJECT, MO_OFF(im_self), READONLY,
"the instance to which a method is bound"},
{NULL} /* Sentinel */
};
@@ -177,7 +177,7 @@ static PyObject *
method_getattro(PyObject *obj, PyObject *name)
{
PyMethodObject *im = (PyMethodObject *)obj;
- PyTypeObject *tp = Py_TYPE(obj);
+ PyTypeObject *tp = Py_TYPE(obj);
PyObject *descr = NULL;
{
@@ -189,9 +189,9 @@ method_getattro(PyObject *obj, PyObject *name)
}
if (descr != NULL) {
- descrgetfunc f = TP_DESCR_GET(Py_TYPE(descr));
+ descrgetfunc f = TP_DESCR_GET(Py_TYPE(descr));
if (f != NULL)
- return f(descr, obj, (PyObject *)Py_TYPE(obj));
+ return f(descr, obj, (PyObject *)Py_TYPE(obj));
else {
Py_INCREF(descr);
return descr;
@@ -239,7 +239,7 @@ method_dealloc(PyMethodObject *im)
PyObject_ClearWeakRefs((PyObject *)im);
Py_DECREF(im->im_func);
Py_XDECREF(im->im_self);
- PyObject_GC_Del(im);
+ PyObject_GC_Del(im);
}
static PyObject *
@@ -259,9 +259,9 @@ method_richcompare(PyObject *self, PyObject *other, int op)
b = (PyMethodObject *)other;
eq = PyObject_RichCompareBool(a->im_func, b->im_func, Py_EQ);
if (eq == 1) {
- eq = (a->im_self == b->im_self);
+ eq = (a->im_self == b->im_self);
}
- else if (eq < 0)
+ else if (eq < 0)
return NULL;
if (op == Py_EQ)
res = eq ? Py_True : Py_False;
@@ -303,7 +303,7 @@ static Py_hash_t
method_hash(PyMethodObject *a)
{
Py_hash_t x, y;
- x = _Py_HashPointer(a->im_self);
+ x = _Py_HashPointer(a->im_self);
y = PyObject_Hash(a->im_func);
if (y == -1)
return -1;
@@ -324,8 +324,8 @@ method_traverse(PyMethodObject *im, visitproc visit, void *arg)
static PyObject *
method_descr_get(PyObject *meth, PyObject *obj, PyObject *cls)
{
- Py_INCREF(meth);
- return meth;
+ Py_INCREF(meth);
+ return meth;
}
PyTypeObject PyMethod_Type = {
@@ -334,22 +334,22 @@ PyTypeObject PyMethod_Type = {
sizeof(PyMethodObject),
0,
(destructor)method_dealloc, /* tp_dealloc */
- offsetof(PyMethodObject, vectorcall), /* tp_vectorcall_offset */
+ offsetof(PyMethodObject, vectorcall), /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)method_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
(hashfunc)method_hash, /* tp_hash */
- PyVectorcall_Call, /* tp_call */
+ PyVectorcall_Call, /* tp_call */
0, /* tp_str */
method_getattro, /* tp_getattro */
PyObject_GenericSetAttr, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
+ Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
method_doc, /* tp_doc */
(traverseproc)method_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -399,7 +399,7 @@ PyInstanceMethod_Function(PyObject *im)
#define IMO_OFF(x) offsetof(PyInstanceMethodObject, x)
static PyMemberDef instancemethod_memberlist[] = {
- {"__func__", T_OBJECT, IMO_OFF(func), READONLY,
+ {"__func__", T_OBJECT, IMO_OFF(func), READONLY,
"the function (or other callable) implementing a method"},
{NULL} /* Sentinel */
};
@@ -424,7 +424,7 @@ static PyGetSetDef instancemethod_getset[] = {
static PyObject *
instancemethod_getattro(PyObject *self, PyObject *name)
{
- PyTypeObject *tp = Py_TYPE(self);
+ PyTypeObject *tp = Py_TYPE(self);
PyObject *descr = NULL;
if (tp->tp_dict == NULL) {
@@ -434,9 +434,9 @@ instancemethod_getattro(PyObject *self, PyObject *name)
descr = _PyType_Lookup(tp, name);
if (descr != NULL) {
- descrgetfunc f = TP_DESCR_GET(Py_TYPE(descr));
+ descrgetfunc f = TP_DESCR_GET(Py_TYPE(descr));
if (f != NULL)
- return f(descr, self, (PyObject *)Py_TYPE(self));
+ return f(descr, self, (PyObject *)Py_TYPE(self));
else {
Py_INCREF(descr);
return descr;
@@ -462,7 +462,7 @@ instancemethod_traverse(PyObject *self, visitproc visit, void *arg) {
static PyObject *
instancemethod_call(PyObject *self, PyObject *arg, PyObject *kw)
{
- return PyObject_Call(PyInstanceMethod_GET_FUNCTION(self), arg, kw);
+ return PyObject_Call(PyInstanceMethod_GET_FUNCTION(self), arg, kw);
}
static PyObject *
@@ -574,10 +574,10 @@ PyTypeObject PyInstanceMethod_Type = {
sizeof(PyInstanceMethodObject), /* tp_basicsize */
0, /* tp_itemsize */
instancemethod_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)instancemethod_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/clinic/bytearrayobject.c.h b/contrib/tools/python3/src/Objects/clinic/bytearrayobject.c.h
index fcada9abad..35ba1ff3d5 100644
--- a/contrib/tools/python3/src/Objects/clinic/bytearrayobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/bytearrayobject.c.h
@@ -38,86 +38,86 @@ bytearray_copy(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))
return bytearray_copy_impl(self);
}
-PyDoc_STRVAR(bytearray_removeprefix__doc__,
-"removeprefix($self, prefix, /)\n"
-"--\n"
-"\n"
-"Return a bytearray with the given prefix string removed if present.\n"
-"\n"
-"If the bytearray starts with the prefix string, return\n"
-"bytearray[len(prefix):]. Otherwise, return a copy of the original\n"
-"bytearray.");
-
-#define BYTEARRAY_REMOVEPREFIX_METHODDEF \
- {"removeprefix", (PyCFunction)bytearray_removeprefix, METH_O, bytearray_removeprefix__doc__},
-
-static PyObject *
-bytearray_removeprefix_impl(PyByteArrayObject *self, Py_buffer *prefix);
-
-static PyObject *
-bytearray_removeprefix(PyByteArrayObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- Py_buffer prefix = {NULL, NULL};
-
- if (PyObject_GetBuffer(arg, &prefix, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&prefix, 'C')) {
- _PyArg_BadArgument("removeprefix", "argument", "contiguous buffer", arg);
- goto exit;
- }
- return_value = bytearray_removeprefix_impl(self, &prefix);
-
-exit:
- /* Cleanup for prefix */
- if (prefix.obj) {
- PyBuffer_Release(&prefix);
- }
-
- return return_value;
-}
-
-PyDoc_STRVAR(bytearray_removesuffix__doc__,
-"removesuffix($self, suffix, /)\n"
-"--\n"
-"\n"
-"Return a bytearray with the given suffix string removed if present.\n"
-"\n"
-"If the bytearray ends with the suffix string and that suffix is not\n"
-"empty, return bytearray[:-len(suffix)]. Otherwise, return a copy of\n"
-"the original bytearray.");
-
-#define BYTEARRAY_REMOVESUFFIX_METHODDEF \
- {"removesuffix", (PyCFunction)bytearray_removesuffix, METH_O, bytearray_removesuffix__doc__},
-
-static PyObject *
-bytearray_removesuffix_impl(PyByteArrayObject *self, Py_buffer *suffix);
-
-static PyObject *
-bytearray_removesuffix(PyByteArrayObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- Py_buffer suffix = {NULL, NULL};
-
- if (PyObject_GetBuffer(arg, &suffix, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&suffix, 'C')) {
- _PyArg_BadArgument("removesuffix", "argument", "contiguous buffer", arg);
- goto exit;
- }
- return_value = bytearray_removesuffix_impl(self, &suffix);
-
-exit:
- /* Cleanup for suffix */
- if (suffix.obj) {
- PyBuffer_Release(&suffix);
- }
-
- return return_value;
-}
-
+PyDoc_STRVAR(bytearray_removeprefix__doc__,
+"removeprefix($self, prefix, /)\n"
+"--\n"
+"\n"
+"Return a bytearray with the given prefix string removed if present.\n"
+"\n"
+"If the bytearray starts with the prefix string, return\n"
+"bytearray[len(prefix):]. Otherwise, return a copy of the original\n"
+"bytearray.");
+
+#define BYTEARRAY_REMOVEPREFIX_METHODDEF \
+ {"removeprefix", (PyCFunction)bytearray_removeprefix, METH_O, bytearray_removeprefix__doc__},
+
+static PyObject *
+bytearray_removeprefix_impl(PyByteArrayObject *self, Py_buffer *prefix);
+
+static PyObject *
+bytearray_removeprefix(PyByteArrayObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer prefix = {NULL, NULL};
+
+ if (PyObject_GetBuffer(arg, &prefix, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&prefix, 'C')) {
+ _PyArg_BadArgument("removeprefix", "argument", "contiguous buffer", arg);
+ goto exit;
+ }
+ return_value = bytearray_removeprefix_impl(self, &prefix);
+
+exit:
+ /* Cleanup for prefix */
+ if (prefix.obj) {
+ PyBuffer_Release(&prefix);
+ }
+
+ return return_value;
+}
+
+PyDoc_STRVAR(bytearray_removesuffix__doc__,
+"removesuffix($self, suffix, /)\n"
+"--\n"
+"\n"
+"Return a bytearray with the given suffix string removed if present.\n"
+"\n"
+"If the bytearray ends with the suffix string and that suffix is not\n"
+"empty, return bytearray[:-len(suffix)]. Otherwise, return a copy of\n"
+"the original bytearray.");
+
+#define BYTEARRAY_REMOVESUFFIX_METHODDEF \
+ {"removesuffix", (PyCFunction)bytearray_removesuffix, METH_O, bytearray_removesuffix__doc__},
+
+static PyObject *
+bytearray_removesuffix_impl(PyByteArrayObject *self, Py_buffer *suffix);
+
+static PyObject *
+bytearray_removesuffix(PyByteArrayObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer suffix = {NULL, NULL};
+
+ if (PyObject_GetBuffer(arg, &suffix, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&suffix, 'C')) {
+ _PyArg_BadArgument("removesuffix", "argument", "contiguous buffer", arg);
+ goto exit;
+ }
+ return_value = bytearray_removesuffix_impl(self, &suffix);
+
+exit:
+ /* Cleanup for suffix */
+ if (suffix.obj) {
+ PyBuffer_Release(&suffix);
+ }
+
+ return return_value;
+}
+
PyDoc_STRVAR(bytearray_translate__doc__,
"translate($self, table, /, delete=b\'\')\n"
"--\n"
@@ -131,7 +131,7 @@ PyDoc_STRVAR(bytearray_translate__doc__,
"The remaining characters are mapped through the given translation table.");
#define BYTEARRAY_TRANSLATE_METHODDEF \
- {"translate", (PyCFunction)(void(*)(void))bytearray_translate, METH_FASTCALL|METH_KEYWORDS, bytearray_translate__doc__},
+ {"translate", (PyCFunction)(void(*)(void))bytearray_translate, METH_FASTCALL|METH_KEYWORDS, bytearray_translate__doc__},
static PyObject *
bytearray_translate_impl(PyByteArrayObject *self, PyObject *table,
@@ -142,22 +142,22 @@ bytearray_translate(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t n
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "delete", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *table;
PyObject *deletechars = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- table = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- deletechars = args[1];
-skip_optional_pos:
+ table = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ deletechars = args[1];
+skip_optional_pos:
return_value = bytearray_translate_impl(self, table, deletechars);
exit:
@@ -176,7 +176,7 @@ PyDoc_STRVAR(bytearray_maketrans__doc__,
"The bytes objects frm and to must be of the same length.");
#define BYTEARRAY_MAKETRANS_METHODDEF \
- {"maketrans", (PyCFunction)(void(*)(void))bytearray_maketrans, METH_FASTCALL|METH_STATIC, bytearray_maketrans__doc__},
+ {"maketrans", (PyCFunction)(void(*)(void))bytearray_maketrans, METH_FASTCALL|METH_STATIC, bytearray_maketrans__doc__},
static PyObject *
bytearray_maketrans_impl(Py_buffer *frm, Py_buffer *to);
@@ -188,23 +188,23 @@ bytearray_maketrans(void *null, PyObject *const *args, Py_ssize_t nargs)
Py_buffer frm = {NULL, NULL};
Py_buffer to = {NULL, NULL};
- if (!_PyArg_CheckPositional("maketrans", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("maketrans", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &frm, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&frm, 'C')) {
+ _PyArg_BadArgument("maketrans", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &to, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&to, 'C')) {
+ _PyArg_BadArgument("maketrans", "argument 2", "contiguous buffer", args[1]);
goto exit;
}
- if (PyObject_GetBuffer(args[0], &frm, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&frm, 'C')) {
- _PyArg_BadArgument("maketrans", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &to, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&to, 'C')) {
- _PyArg_BadArgument("maketrans", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
return_value = bytearray_maketrans_impl(&frm, &to);
exit:
@@ -234,7 +234,7 @@ PyDoc_STRVAR(bytearray_replace__doc__,
"replaced.");
#define BYTEARRAY_REPLACE_METHODDEF \
- {"replace", (PyCFunction)(void(*)(void))bytearray_replace, METH_FASTCALL, bytearray_replace__doc__},
+ {"replace", (PyCFunction)(void(*)(void))bytearray_replace, METH_FASTCALL, bytearray_replace__doc__},
static PyObject *
bytearray_replace_impl(PyByteArrayObject *self, Py_buffer *old,
@@ -248,44 +248,44 @@ bytearray_replace(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nar
Py_buffer new = {NULL, NULL};
Py_ssize_t count = -1;
- if (!_PyArg_CheckPositional("replace", nargs, 2, 3)) {
+ if (!_PyArg_CheckPositional("replace", nargs, 2, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &old, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&old, 'C')) {
+ _PyArg_BadArgument("replace", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &new, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&new, 'C')) {
+ _PyArg_BadArgument("replace", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (PyObject_GetBuffer(args[0], &old, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&old, 'C')) {
- _PyArg_BadArgument("replace", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &new, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&new, 'C')) {
- _PyArg_BadArgument("replace", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
-skip_optional:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+skip_optional:
return_value = bytearray_replace_impl(self, &old, &new, count);
exit:
@@ -316,7 +316,7 @@ PyDoc_STRVAR(bytearray_split__doc__,
" -1 (the default value) means no limit.");
#define BYTEARRAY_SPLIT_METHODDEF \
- {"split", (PyCFunction)(void(*)(void))bytearray_split, METH_FASTCALL|METH_KEYWORDS, bytearray_split__doc__},
+ {"split", (PyCFunction)(void(*)(void))bytearray_split, METH_FASTCALL|METH_KEYWORDS, bytearray_split__doc__},
static PyObject *
bytearray_split_impl(PyByteArrayObject *self, PyObject *sep,
@@ -327,43 +327,43 @@ bytearray_split(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sep", "maxsplit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *sep = Py_None;
Py_ssize_t maxsplit = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- maxsplit = ival;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ maxsplit = ival;
+ }
+skip_optional_pos:
return_value = bytearray_split_impl(self, sep, maxsplit);
exit:
@@ -420,7 +420,7 @@ PyDoc_STRVAR(bytearray_rsplit__doc__,
"Splitting is done starting at the end of the bytearray and working to the front.");
#define BYTEARRAY_RSPLIT_METHODDEF \
- {"rsplit", (PyCFunction)(void(*)(void))bytearray_rsplit, METH_FASTCALL|METH_KEYWORDS, bytearray_rsplit__doc__},
+ {"rsplit", (PyCFunction)(void(*)(void))bytearray_rsplit, METH_FASTCALL|METH_KEYWORDS, bytearray_rsplit__doc__},
static PyObject *
bytearray_rsplit_impl(PyByteArrayObject *self, PyObject *sep,
@@ -431,43 +431,43 @@ bytearray_rsplit(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t narg
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sep", "maxsplit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *sep = Py_None;
Py_ssize_t maxsplit = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- maxsplit = ival;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ maxsplit = ival;
+ }
+skip_optional_pos:
return_value = bytearray_rsplit_impl(self, sep, maxsplit);
exit:
@@ -504,7 +504,7 @@ PyDoc_STRVAR(bytearray_insert__doc__,
" The item to be inserted.");
#define BYTEARRAY_INSERT_METHODDEF \
- {"insert", (PyCFunction)(void(*)(void))bytearray_insert, METH_FASTCALL, bytearray_insert__doc__},
+ {"insert", (PyCFunction)(void(*)(void))bytearray_insert, METH_FASTCALL, bytearray_insert__doc__},
static PyObject *
bytearray_insert_impl(PyByteArrayObject *self, Py_ssize_t index, int item);
@@ -516,29 +516,29 @@ bytearray_insert(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t narg
Py_ssize_t index;
int item;
- if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ index = ival;
+ }
+ if (!_getbytevalue(args[1], &item)) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- index = ival;
- }
- if (!_getbytevalue(args[1], &item)) {
- goto exit;
- }
return_value = bytearray_insert_impl(self, index, item);
exit:
@@ -566,7 +566,7 @@ bytearray_append(PyByteArrayObject *self, PyObject *arg)
PyObject *return_value = NULL;
int item;
- if (!_getbytevalue(arg, &item)) {
+ if (!_getbytevalue(arg, &item)) {
goto exit;
}
return_value = bytearray_append_impl(self, item);
@@ -600,7 +600,7 @@ PyDoc_STRVAR(bytearray_pop__doc__,
"If no index argument is given, will pop the last item.");
#define BYTEARRAY_POP_METHODDEF \
- {"pop", (PyCFunction)(void(*)(void))bytearray_pop, METH_FASTCALL, bytearray_pop__doc__},
+ {"pop", (PyCFunction)(void(*)(void))bytearray_pop, METH_FASTCALL, bytearray_pop__doc__},
static PyObject *
bytearray_pop_impl(PyByteArrayObject *self, Py_ssize_t index);
@@ -611,30 +611,30 @@ bytearray_pop(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t index = -1;
- if (!_PyArg_CheckPositional("pop", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("pop", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- index = ival;
- }
-skip_optional:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ index = ival;
+ }
+skip_optional:
return_value = bytearray_pop_impl(self, index);
exit:
@@ -662,7 +662,7 @@ bytearray_remove(PyByteArrayObject *self, PyObject *arg)
PyObject *return_value = NULL;
int value;
- if (!_getbytevalue(arg, &value)) {
+ if (!_getbytevalue(arg, &value)) {
goto exit;
}
return_value = bytearray_remove_impl(self, value);
@@ -680,7 +680,7 @@ PyDoc_STRVAR(bytearray_strip__doc__,
"If the argument is omitted or None, strip leading and trailing ASCII whitespace.");
#define BYTEARRAY_STRIP_METHODDEF \
- {"strip", (PyCFunction)(void(*)(void))bytearray_strip, METH_FASTCALL, bytearray_strip__doc__},
+ {"strip", (PyCFunction)(void(*)(void))bytearray_strip, METH_FASTCALL, bytearray_strip__doc__},
static PyObject *
bytearray_strip_impl(PyByteArrayObject *self, PyObject *bytes);
@@ -691,14 +691,14 @@ bytearray_strip(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs
PyObject *return_value = NULL;
PyObject *bytes = Py_None;
- if (!_PyArg_CheckPositional("strip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("strip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- bytes = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ bytes = args[0];
+skip_optional:
return_value = bytearray_strip_impl(self, bytes);
exit:
@@ -714,7 +714,7 @@ PyDoc_STRVAR(bytearray_lstrip__doc__,
"If the argument is omitted or None, strip leading ASCII whitespace.");
#define BYTEARRAY_LSTRIP_METHODDEF \
- {"lstrip", (PyCFunction)(void(*)(void))bytearray_lstrip, METH_FASTCALL, bytearray_lstrip__doc__},
+ {"lstrip", (PyCFunction)(void(*)(void))bytearray_lstrip, METH_FASTCALL, bytearray_lstrip__doc__},
static PyObject *
bytearray_lstrip_impl(PyByteArrayObject *self, PyObject *bytes);
@@ -725,14 +725,14 @@ bytearray_lstrip(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t narg
PyObject *return_value = NULL;
PyObject *bytes = Py_None;
- if (!_PyArg_CheckPositional("lstrip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("lstrip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- bytes = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ bytes = args[0];
+skip_optional:
return_value = bytearray_lstrip_impl(self, bytes);
exit:
@@ -748,7 +748,7 @@ PyDoc_STRVAR(bytearray_rstrip__doc__,
"If the argument is omitted or None, strip trailing ASCII whitespace.");
#define BYTEARRAY_RSTRIP_METHODDEF \
- {"rstrip", (PyCFunction)(void(*)(void))bytearray_rstrip, METH_FASTCALL, bytearray_rstrip__doc__},
+ {"rstrip", (PyCFunction)(void(*)(void))bytearray_rstrip, METH_FASTCALL, bytearray_rstrip__doc__},
static PyObject *
bytearray_rstrip_impl(PyByteArrayObject *self, PyObject *bytes);
@@ -759,14 +759,14 @@ bytearray_rstrip(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t narg
PyObject *return_value = NULL;
PyObject *bytes = Py_None;
- if (!_PyArg_CheckPositional("rstrip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("rstrip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- bytes = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ bytes = args[0];
+skip_optional:
return_value = bytearray_rstrip_impl(self, bytes);
exit:
@@ -789,7 +789,7 @@ PyDoc_STRVAR(bytearray_decode__doc__,
" can handle UnicodeDecodeErrors.");
#define BYTEARRAY_DECODE_METHODDEF \
- {"decode", (PyCFunction)(void(*)(void))bytearray_decode, METH_FASTCALL|METH_KEYWORDS, bytearray_decode__doc__},
+ {"decode", (PyCFunction)(void(*)(void))bytearray_decode, METH_FASTCALL|METH_KEYWORDS, bytearray_decode__doc__},
static PyObject *
bytearray_decode_impl(PyByteArrayObject *self, const char *encoding,
@@ -800,51 +800,51 @@ bytearray_decode(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t narg
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"encoding", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
const char *encoding = NULL;
const char *errors = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("decode", "argument 'encoding'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("decode", "argument 'errors'", "str", args[1]);
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("decode", "argument 'encoding'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("decode", "argument 'errors'", "str", args[1]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional_pos:
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+skip_optional_pos:
return_value = bytearray_decode_impl(self, encoding, errors);
exit:
@@ -874,7 +874,7 @@ PyDoc_STRVAR(bytearray_splitlines__doc__,
"true.");
#define BYTEARRAY_SPLITLINES_METHODDEF \
- {"splitlines", (PyCFunction)(void(*)(void))bytearray_splitlines, METH_FASTCALL|METH_KEYWORDS, bytearray_splitlines__doc__},
+ {"splitlines", (PyCFunction)(void(*)(void))bytearray_splitlines, METH_FASTCALL|METH_KEYWORDS, bytearray_splitlines__doc__},
static PyObject *
bytearray_splitlines_impl(PyByteArrayObject *self, int keepends);
@@ -884,28 +884,28 @@ bytearray_splitlines(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"keepends", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int keepends = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- keepends = _PyLong_AsInt(args[0]);
- if (keepends == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ keepends = _PyLong_AsInt(args[0]);
+ if (keepends == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = bytearray_splitlines_impl(self, keepends);
exit:
@@ -933,89 +933,89 @@ bytearray_fromhex(PyTypeObject *type, PyObject *arg)
PyObject *return_value = NULL;
PyObject *string;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("fromhex", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("fromhex", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- string = arg;
+ string = arg;
return_value = bytearray_fromhex_impl(type, string);
exit:
return return_value;
}
-PyDoc_STRVAR(bytearray_hex__doc__,
-"hex($self, /, sep=<unrepresentable>, bytes_per_sep=1)\n"
-"--\n"
-"\n"
-"Create a str of hexadecimal numbers from a bytearray object.\n"
-"\n"
-" sep\n"
-" An optional single character or byte to separate hex bytes.\n"
-" bytes_per_sep\n"
-" How many bytes between separators. Positive values count from the\n"
-" right, negative values count from the left.\n"
-"\n"
-"Example:\n"
-">>> value = bytearray([0xb9, 0x01, 0xef])\n"
-">>> value.hex()\n"
-"\'b901ef\'\n"
-">>> value.hex(\':\')\n"
-"\'b9:01:ef\'\n"
-">>> value.hex(\':\', 2)\n"
-"\'b9:01ef\'\n"
-">>> value.hex(\':\', -2)\n"
-"\'b901:ef\'");
-
-#define BYTEARRAY_HEX_METHODDEF \
- {"hex", (PyCFunction)(void(*)(void))bytearray_hex, METH_FASTCALL|METH_KEYWORDS, bytearray_hex__doc__},
-
-static PyObject *
-bytearray_hex_impl(PyByteArrayObject *self, PyObject *sep, int bytes_per_sep);
-
-static PyObject *
-bytearray_hex(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *sep = NULL;
- int bytes_per_sep = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- bytes_per_sep = _PyLong_AsInt(args[1]);
- if (bytes_per_sep == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = bytearray_hex_impl(self, sep, bytes_per_sep);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(bytearray_hex__doc__,
+"hex($self, /, sep=<unrepresentable>, bytes_per_sep=1)\n"
+"--\n"
+"\n"
+"Create a str of hexadecimal numbers from a bytearray object.\n"
+"\n"
+" sep\n"
+" An optional single character or byte to separate hex bytes.\n"
+" bytes_per_sep\n"
+" How many bytes between separators. Positive values count from the\n"
+" right, negative values count from the left.\n"
+"\n"
+"Example:\n"
+">>> value = bytearray([0xb9, 0x01, 0xef])\n"
+">>> value.hex()\n"
+"\'b901ef\'\n"
+">>> value.hex(\':\')\n"
+"\'b9:01:ef\'\n"
+">>> value.hex(\':\', 2)\n"
+"\'b9:01ef\'\n"
+">>> value.hex(\':\', -2)\n"
+"\'b901:ef\'");
+
+#define BYTEARRAY_HEX_METHODDEF \
+ {"hex", (PyCFunction)(void(*)(void))bytearray_hex, METH_FASTCALL|METH_KEYWORDS, bytearray_hex__doc__},
+
+static PyObject *
+bytearray_hex_impl(PyByteArrayObject *self, PyObject *sep, int bytes_per_sep);
+
+static PyObject *
+bytearray_hex(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *sep = NULL;
+ int bytes_per_sep = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ bytes_per_sep = _PyLong_AsInt(args[1]);
+ if (bytes_per_sep == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = bytearray_hex_impl(self, sep, bytes_per_sep);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(bytearray_reduce__doc__,
"__reduce__($self, /)\n"
"--\n"
@@ -1041,7 +1041,7 @@ PyDoc_STRVAR(bytearray_reduce_ex__doc__,
"Return state information for pickling.");
#define BYTEARRAY_REDUCE_EX_METHODDEF \
- {"__reduce_ex__", (PyCFunction)(void(*)(void))bytearray_reduce_ex, METH_FASTCALL, bytearray_reduce_ex__doc__},
+ {"__reduce_ex__", (PyCFunction)(void(*)(void))bytearray_reduce_ex, METH_FASTCALL, bytearray_reduce_ex__doc__},
static PyObject *
bytearray_reduce_ex_impl(PyByteArrayObject *self, int proto);
@@ -1052,22 +1052,22 @@ bytearray_reduce_ex(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t n
PyObject *return_value = NULL;
int proto = 0;
- if (!_PyArg_CheckPositional("__reduce_ex__", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("__reduce_ex__", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ proto = _PyLong_AsInt(args[0]);
+ if (proto == -1 && PyErr_Occurred()) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- proto = _PyLong_AsInt(args[0]);
- if (proto == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = bytearray_reduce_ex_impl(self, proto);
exit:
@@ -1091,4 +1091,4 @@ bytearray_sizeof(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))
{
return bytearray_sizeof_impl(self);
}
-/*[clinic end generated code: output=b2919f76709e48dc input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b2919f76709e48dc input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/bytesobject.c.h b/contrib/tools/python3/src/Objects/clinic/bytesobject.c.h
index eb176d83db..063a3777b4 100644
--- a/contrib/tools/python3/src/Objects/clinic/bytesobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/bytesobject.c.h
@@ -17,7 +17,7 @@ PyDoc_STRVAR(bytes_split__doc__,
" -1 (the default value) means no limit.");
#define BYTES_SPLIT_METHODDEF \
- {"split", (PyCFunction)(void(*)(void))bytes_split, METH_FASTCALL|METH_KEYWORDS, bytes_split__doc__},
+ {"split", (PyCFunction)(void(*)(void))bytes_split, METH_FASTCALL|METH_KEYWORDS, bytes_split__doc__},
static PyObject *
bytes_split_impl(PyBytesObject *self, PyObject *sep, Py_ssize_t maxsplit);
@@ -27,43 +27,43 @@ bytes_split(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObje
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sep", "maxsplit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *sep = Py_None;
Py_ssize_t maxsplit = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- maxsplit = ival;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ maxsplit = ival;
+ }
+skip_optional_pos:
return_value = bytes_split_impl(self, sep, maxsplit);
exit:
@@ -95,13 +95,13 @@ bytes_partition(PyBytesObject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer sep = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &sep, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &sep, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&sep, 'C')) {
+ _PyArg_BadArgument("partition", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&sep, 'C')) {
- _PyArg_BadArgument("partition", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = bytes_partition_impl(self, &sep);
exit:
@@ -138,13 +138,13 @@ bytes_rpartition(PyBytesObject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer sep = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &sep, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &sep, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&sep, 'C')) {
+ _PyArg_BadArgument("rpartition", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&sep, 'C')) {
- _PyArg_BadArgument("rpartition", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = bytes_rpartition_impl(self, &sep);
exit:
@@ -173,7 +173,7 @@ PyDoc_STRVAR(bytes_rsplit__doc__,
"Splitting is done starting at the end of the bytes and working to the front.");
#define BYTES_RSPLIT_METHODDEF \
- {"rsplit", (PyCFunction)(void(*)(void))bytes_rsplit, METH_FASTCALL|METH_KEYWORDS, bytes_rsplit__doc__},
+ {"rsplit", (PyCFunction)(void(*)(void))bytes_rsplit, METH_FASTCALL|METH_KEYWORDS, bytes_rsplit__doc__},
static PyObject *
bytes_rsplit_impl(PyBytesObject *self, PyObject *sep, Py_ssize_t maxsplit);
@@ -183,43 +183,43 @@ bytes_rsplit(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sep", "maxsplit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *sep = Py_None;
Py_ssize_t maxsplit = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- maxsplit = ival;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ maxsplit = ival;
+ }
+skip_optional_pos:
return_value = bytes_rsplit_impl(self, sep, maxsplit);
exit:
@@ -250,7 +250,7 @@ PyDoc_STRVAR(bytes_strip__doc__,
"If the argument is omitted or None, strip leading and trailing ASCII whitespace.");
#define BYTES_STRIP_METHODDEF \
- {"strip", (PyCFunction)(void(*)(void))bytes_strip, METH_FASTCALL, bytes_strip__doc__},
+ {"strip", (PyCFunction)(void(*)(void))bytes_strip, METH_FASTCALL, bytes_strip__doc__},
static PyObject *
bytes_strip_impl(PyBytesObject *self, PyObject *bytes);
@@ -261,14 +261,14 @@ bytes_strip(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *bytes = Py_None;
- if (!_PyArg_CheckPositional("strip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("strip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- bytes = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ bytes = args[0];
+skip_optional:
return_value = bytes_strip_impl(self, bytes);
exit:
@@ -284,7 +284,7 @@ PyDoc_STRVAR(bytes_lstrip__doc__,
"If the argument is omitted or None, strip leading ASCII whitespace.");
#define BYTES_LSTRIP_METHODDEF \
- {"lstrip", (PyCFunction)(void(*)(void))bytes_lstrip, METH_FASTCALL, bytes_lstrip__doc__},
+ {"lstrip", (PyCFunction)(void(*)(void))bytes_lstrip, METH_FASTCALL, bytes_lstrip__doc__},
static PyObject *
bytes_lstrip_impl(PyBytesObject *self, PyObject *bytes);
@@ -295,14 +295,14 @@ bytes_lstrip(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *bytes = Py_None;
- if (!_PyArg_CheckPositional("lstrip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("lstrip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- bytes = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ bytes = args[0];
+skip_optional:
return_value = bytes_lstrip_impl(self, bytes);
exit:
@@ -318,7 +318,7 @@ PyDoc_STRVAR(bytes_rstrip__doc__,
"If the argument is omitted or None, strip trailing ASCII whitespace.");
#define BYTES_RSTRIP_METHODDEF \
- {"rstrip", (PyCFunction)(void(*)(void))bytes_rstrip, METH_FASTCALL, bytes_rstrip__doc__},
+ {"rstrip", (PyCFunction)(void(*)(void))bytes_rstrip, METH_FASTCALL, bytes_rstrip__doc__},
static PyObject *
bytes_rstrip_impl(PyBytesObject *self, PyObject *bytes);
@@ -329,14 +329,14 @@ bytes_rstrip(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *bytes = Py_None;
- if (!_PyArg_CheckPositional("rstrip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("rstrip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- bytes = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ bytes = args[0];
+skip_optional:
return_value = bytes_rstrip_impl(self, bytes);
exit:
@@ -356,7 +356,7 @@ PyDoc_STRVAR(bytes_translate__doc__,
"The remaining characters are mapped through the given translation table.");
#define BYTES_TRANSLATE_METHODDEF \
- {"translate", (PyCFunction)(void(*)(void))bytes_translate, METH_FASTCALL|METH_KEYWORDS, bytes_translate__doc__},
+ {"translate", (PyCFunction)(void(*)(void))bytes_translate, METH_FASTCALL|METH_KEYWORDS, bytes_translate__doc__},
static PyObject *
bytes_translate_impl(PyBytesObject *self, PyObject *table,
@@ -367,22 +367,22 @@ bytes_translate(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, Py
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "delete", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "translate", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *table;
PyObject *deletechars = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- table = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- deletechars = args[1];
-skip_optional_pos:
+ table = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ deletechars = args[1];
+skip_optional_pos:
return_value = bytes_translate_impl(self, table, deletechars);
exit:
@@ -401,7 +401,7 @@ PyDoc_STRVAR(bytes_maketrans__doc__,
"The bytes objects frm and to must be of the same length.");
#define BYTES_MAKETRANS_METHODDEF \
- {"maketrans", (PyCFunction)(void(*)(void))bytes_maketrans, METH_FASTCALL|METH_STATIC, bytes_maketrans__doc__},
+ {"maketrans", (PyCFunction)(void(*)(void))bytes_maketrans, METH_FASTCALL|METH_STATIC, bytes_maketrans__doc__},
static PyObject *
bytes_maketrans_impl(Py_buffer *frm, Py_buffer *to);
@@ -413,23 +413,23 @@ bytes_maketrans(void *null, PyObject *const *args, Py_ssize_t nargs)
Py_buffer frm = {NULL, NULL};
Py_buffer to = {NULL, NULL};
- if (!_PyArg_CheckPositional("maketrans", nargs, 2, 2)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &frm, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&frm, 'C')) {
- _PyArg_BadArgument("maketrans", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &to, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&to, 'C')) {
- _PyArg_BadArgument("maketrans", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
+ if (!_PyArg_CheckPositional("maketrans", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &frm, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&frm, 'C')) {
+ _PyArg_BadArgument("maketrans", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &to, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&to, 'C')) {
+ _PyArg_BadArgument("maketrans", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
return_value = bytes_maketrans_impl(&frm, &to);
exit:
@@ -459,7 +459,7 @@ PyDoc_STRVAR(bytes_replace__doc__,
"replaced.");
#define BYTES_REPLACE_METHODDEF \
- {"replace", (PyCFunction)(void(*)(void))bytes_replace, METH_FASTCALL, bytes_replace__doc__},
+ {"replace", (PyCFunction)(void(*)(void))bytes_replace, METH_FASTCALL, bytes_replace__doc__},
static PyObject *
bytes_replace_impl(PyBytesObject *self, Py_buffer *old, Py_buffer *new,
@@ -473,44 +473,44 @@ bytes_replace(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)
Py_buffer new = {NULL, NULL};
Py_ssize_t count = -1;
- if (!_PyArg_CheckPositional("replace", nargs, 2, 3)) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[0], &old, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&old, 'C')) {
- _PyArg_BadArgument("replace", "argument 1", "contiguous buffer", args[0]);
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &new, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&new, 'C')) {
- _PyArg_BadArgument("replace", "argument 2", "contiguous buffer", args[1]);
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
-skip_optional:
+ if (!_PyArg_CheckPositional("replace", nargs, 2, 3)) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[0], &old, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&old, 'C')) {
+ _PyArg_BadArgument("replace", "argument 1", "contiguous buffer", args[0]);
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &new, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&new, 'C')) {
+ _PyArg_BadArgument("replace", "argument 2", "contiguous buffer", args[1]);
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+skip_optional:
return_value = bytes_replace_impl(self, &old, &new, count);
exit:
@@ -526,85 +526,85 @@ exit:
return return_value;
}
-PyDoc_STRVAR(bytes_removeprefix__doc__,
-"removeprefix($self, prefix, /)\n"
-"--\n"
-"\n"
-"Return a bytes object with the given prefix string removed if present.\n"
-"\n"
-"If the bytes starts with the prefix string, return bytes[len(prefix):].\n"
-"Otherwise, return a copy of the original bytes.");
-
-#define BYTES_REMOVEPREFIX_METHODDEF \
- {"removeprefix", (PyCFunction)bytes_removeprefix, METH_O, bytes_removeprefix__doc__},
-
-static PyObject *
-bytes_removeprefix_impl(PyBytesObject *self, Py_buffer *prefix);
-
-static PyObject *
-bytes_removeprefix(PyBytesObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- Py_buffer prefix = {NULL, NULL};
-
- if (PyObject_GetBuffer(arg, &prefix, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&prefix, 'C')) {
- _PyArg_BadArgument("removeprefix", "argument", "contiguous buffer", arg);
- goto exit;
- }
- return_value = bytes_removeprefix_impl(self, &prefix);
-
-exit:
- /* Cleanup for prefix */
- if (prefix.obj) {
- PyBuffer_Release(&prefix);
- }
-
- return return_value;
-}
-
-PyDoc_STRVAR(bytes_removesuffix__doc__,
-"removesuffix($self, suffix, /)\n"
-"--\n"
-"\n"
-"Return a bytes object with the given suffix string removed if present.\n"
-"\n"
-"If the bytes ends with the suffix string and that suffix is not empty,\n"
-"return bytes[:-len(prefix)]. Otherwise, return a copy of the original\n"
-"bytes.");
-
-#define BYTES_REMOVESUFFIX_METHODDEF \
- {"removesuffix", (PyCFunction)bytes_removesuffix, METH_O, bytes_removesuffix__doc__},
-
-static PyObject *
-bytes_removesuffix_impl(PyBytesObject *self, Py_buffer *suffix);
-
-static PyObject *
-bytes_removesuffix(PyBytesObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- Py_buffer suffix = {NULL, NULL};
-
- if (PyObject_GetBuffer(arg, &suffix, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&suffix, 'C')) {
- _PyArg_BadArgument("removesuffix", "argument", "contiguous buffer", arg);
- goto exit;
- }
- return_value = bytes_removesuffix_impl(self, &suffix);
-
-exit:
- /* Cleanup for suffix */
- if (suffix.obj) {
- PyBuffer_Release(&suffix);
- }
-
- return return_value;
-}
-
+PyDoc_STRVAR(bytes_removeprefix__doc__,
+"removeprefix($self, prefix, /)\n"
+"--\n"
+"\n"
+"Return a bytes object with the given prefix string removed if present.\n"
+"\n"
+"If the bytes starts with the prefix string, return bytes[len(prefix):].\n"
+"Otherwise, return a copy of the original bytes.");
+
+#define BYTES_REMOVEPREFIX_METHODDEF \
+ {"removeprefix", (PyCFunction)bytes_removeprefix, METH_O, bytes_removeprefix__doc__},
+
+static PyObject *
+bytes_removeprefix_impl(PyBytesObject *self, Py_buffer *prefix);
+
+static PyObject *
+bytes_removeprefix(PyBytesObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer prefix = {NULL, NULL};
+
+ if (PyObject_GetBuffer(arg, &prefix, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&prefix, 'C')) {
+ _PyArg_BadArgument("removeprefix", "argument", "contiguous buffer", arg);
+ goto exit;
+ }
+ return_value = bytes_removeprefix_impl(self, &prefix);
+
+exit:
+ /* Cleanup for prefix */
+ if (prefix.obj) {
+ PyBuffer_Release(&prefix);
+ }
+
+ return return_value;
+}
+
+PyDoc_STRVAR(bytes_removesuffix__doc__,
+"removesuffix($self, suffix, /)\n"
+"--\n"
+"\n"
+"Return a bytes object with the given suffix string removed if present.\n"
+"\n"
+"If the bytes ends with the suffix string and that suffix is not empty,\n"
+"return bytes[:-len(prefix)]. Otherwise, return a copy of the original\n"
+"bytes.");
+
+#define BYTES_REMOVESUFFIX_METHODDEF \
+ {"removesuffix", (PyCFunction)bytes_removesuffix, METH_O, bytes_removesuffix__doc__},
+
+static PyObject *
+bytes_removesuffix_impl(PyBytesObject *self, Py_buffer *suffix);
+
+static PyObject *
+bytes_removesuffix(PyBytesObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_buffer suffix = {NULL, NULL};
+
+ if (PyObject_GetBuffer(arg, &suffix, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&suffix, 'C')) {
+ _PyArg_BadArgument("removesuffix", "argument", "contiguous buffer", arg);
+ goto exit;
+ }
+ return_value = bytes_removesuffix_impl(self, &suffix);
+
+exit:
+ /* Cleanup for suffix */
+ if (suffix.obj) {
+ PyBuffer_Release(&suffix);
+ }
+
+ return return_value;
+}
+
PyDoc_STRVAR(bytes_decode__doc__,
"decode($self, /, encoding=\'utf-8\', errors=\'strict\')\n"
"--\n"
@@ -621,7 +621,7 @@ PyDoc_STRVAR(bytes_decode__doc__,
" can handle UnicodeDecodeErrors.");
#define BYTES_DECODE_METHODDEF \
- {"decode", (PyCFunction)(void(*)(void))bytes_decode, METH_FASTCALL|METH_KEYWORDS, bytes_decode__doc__},
+ {"decode", (PyCFunction)(void(*)(void))bytes_decode, METH_FASTCALL|METH_KEYWORDS, bytes_decode__doc__},
static PyObject *
bytes_decode_impl(PyBytesObject *self, const char *encoding,
@@ -632,51 +632,51 @@ bytes_decode(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObj
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"encoding", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
const char *encoding = NULL;
const char *errors = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("decode", "argument 'encoding'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("decode", "argument 'errors'", "str", args[1]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("decode", "argument 'encoding'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("decode", "argument 'errors'", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+skip_optional_pos:
return_value = bytes_decode_impl(self, encoding, errors);
exit:
@@ -693,7 +693,7 @@ PyDoc_STRVAR(bytes_splitlines__doc__,
"true.");
#define BYTES_SPLITLINES_METHODDEF \
- {"splitlines", (PyCFunction)(void(*)(void))bytes_splitlines, METH_FASTCALL|METH_KEYWORDS, bytes_splitlines__doc__},
+ {"splitlines", (PyCFunction)(void(*)(void))bytes_splitlines, METH_FASTCALL|METH_KEYWORDS, bytes_splitlines__doc__},
static PyObject *
bytes_splitlines_impl(PyBytesObject *self, int keepends);
@@ -703,28 +703,28 @@ bytes_splitlines(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, P
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"keepends", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int keepends = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- keepends = _PyLong_AsInt(args[0]);
- if (keepends == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ keepends = _PyLong_AsInt(args[0]);
+ if (keepends == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = bytes_splitlines_impl(self, keepends);
exit:
@@ -752,86 +752,86 @@ bytes_fromhex(PyTypeObject *type, PyObject *arg)
PyObject *return_value = NULL;
PyObject *string;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("fromhex", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("fromhex", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- string = arg;
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ string = arg;
return_value = bytes_fromhex_impl(type, string);
exit:
return return_value;
}
-
-PyDoc_STRVAR(bytes_hex__doc__,
-"hex($self, /, sep=<unrepresentable>, bytes_per_sep=1)\n"
-"--\n"
-"\n"
-"Create a str of hexadecimal numbers from a bytes object.\n"
-"\n"
-" sep\n"
-" An optional single character or byte to separate hex bytes.\n"
-" bytes_per_sep\n"
-" How many bytes between separators. Positive values count from the\n"
-" right, negative values count from the left.\n"
-"\n"
-"Example:\n"
-">>> value = b\'\\xb9\\x01\\xef\'\n"
-">>> value.hex()\n"
-"\'b901ef\'\n"
-">>> value.hex(\':\')\n"
-"\'b9:01:ef\'\n"
-">>> value.hex(\':\', 2)\n"
-"\'b9:01ef\'\n"
-">>> value.hex(\':\', -2)\n"
-"\'b901:ef\'");
-
-#define BYTES_HEX_METHODDEF \
- {"hex", (PyCFunction)(void(*)(void))bytes_hex, METH_FASTCALL|METH_KEYWORDS, bytes_hex__doc__},
-
-static PyObject *
-bytes_hex_impl(PyBytesObject *self, PyObject *sep, int bytes_per_sep);
-
-static PyObject *
-bytes_hex(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *sep = NULL;
- int bytes_per_sep = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- bytes_per_sep = _PyLong_AsInt(args[1]);
- if (bytes_per_sep == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = bytes_hex_impl(self, sep, bytes_per_sep);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=220388917d7bf751 input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(bytes_hex__doc__,
+"hex($self, /, sep=<unrepresentable>, bytes_per_sep=1)\n"
+"--\n"
+"\n"
+"Create a str of hexadecimal numbers from a bytes object.\n"
+"\n"
+" sep\n"
+" An optional single character or byte to separate hex bytes.\n"
+" bytes_per_sep\n"
+" How many bytes between separators. Positive values count from the\n"
+" right, negative values count from the left.\n"
+"\n"
+"Example:\n"
+">>> value = b\'\\xb9\\x01\\xef\'\n"
+">>> value.hex()\n"
+"\'b901ef\'\n"
+">>> value.hex(\':\')\n"
+"\'b9:01:ef\'\n"
+">>> value.hex(\':\', 2)\n"
+"\'b9:01ef\'\n"
+">>> value.hex(\':\', -2)\n"
+"\'b901:ef\'");
+
+#define BYTES_HEX_METHODDEF \
+ {"hex", (PyCFunction)(void(*)(void))bytes_hex, METH_FASTCALL|METH_KEYWORDS, bytes_hex__doc__},
+
+static PyObject *
+bytes_hex_impl(PyBytesObject *self, PyObject *sep, int bytes_per_sep);
+
+static PyObject *
+bytes_hex(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *sep = NULL;
+ int bytes_per_sep = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ bytes_per_sep = _PyLong_AsInt(args[1]);
+ if (bytes_per_sep == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = bytes_hex_impl(self, sep, bytes_per_sep);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=220388917d7bf751 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/codeobject.c.h b/contrib/tools/python3/src/Objects/clinic/codeobject.c.h
index 9cddc72838..1dd82278cf 100644
--- a/contrib/tools/python3/src/Objects/clinic/codeobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/codeobject.c.h
@@ -1,256 +1,256 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(code_replace__doc__,
-"replace($self, /, *, co_argcount=-1, co_posonlyargcount=-1,\n"
-" co_kwonlyargcount=-1, co_nlocals=-1, co_stacksize=-1,\n"
-" co_flags=-1, co_firstlineno=-1, co_code=None, co_consts=None,\n"
-" co_names=None, co_varnames=None, co_freevars=None,\n"
-" co_cellvars=None, co_filename=None, co_name=None,\n"
-" co_lnotab=None)\n"
-"--\n"
-"\n"
-"Return a copy of the code object with new values for the specified fields.");
-
-#define CODE_REPLACE_METHODDEF \
- {"replace", (PyCFunction)(void(*)(void))code_replace, METH_FASTCALL|METH_KEYWORDS, code_replace__doc__},
-
-static PyObject *
-code_replace_impl(PyCodeObject *self, int co_argcount,
- int co_posonlyargcount, int co_kwonlyargcount,
- int co_nlocals, int co_stacksize, int co_flags,
- int co_firstlineno, PyBytesObject *co_code,
- PyObject *co_consts, PyObject *co_names,
- PyObject *co_varnames, PyObject *co_freevars,
- PyObject *co_cellvars, PyObject *co_filename,
- PyObject *co_name, PyBytesObject *co_lnotab);
-
-static PyObject *
-code_replace(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"co_argcount", "co_posonlyargcount", "co_kwonlyargcount", "co_nlocals", "co_stacksize", "co_flags", "co_firstlineno", "co_code", "co_consts", "co_names", "co_varnames", "co_freevars", "co_cellvars", "co_filename", "co_name", "co_lnotab", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0};
- PyObject *argsbuf[16];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- int co_argcount = self->co_argcount;
- int co_posonlyargcount = self->co_posonlyargcount;
- int co_kwonlyargcount = self->co_kwonlyargcount;
- int co_nlocals = self->co_nlocals;
- int co_stacksize = self->co_stacksize;
- int co_flags = self->co_flags;
- int co_firstlineno = self->co_firstlineno;
- PyBytesObject *co_code = (PyBytesObject *)self->co_code;
- PyObject *co_consts = self->co_consts;
- PyObject *co_names = self->co_names;
- PyObject *co_varnames = self->co_varnames;
- PyObject *co_freevars = self->co_freevars;
- PyObject *co_cellvars = self->co_cellvars;
- PyObject *co_filename = self->co_filename;
- PyObject *co_name = self->co_name;
- PyBytesObject *co_lnotab = (PyBytesObject *)self->co_lnotab;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[0]) {
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- co_argcount = _PyLong_AsInt(args[0]);
- if (co_argcount == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[1]) {
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- co_posonlyargcount = _PyLong_AsInt(args[1]);
- if (co_posonlyargcount == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- co_kwonlyargcount = _PyLong_AsInt(args[2]);
- if (co_kwonlyargcount == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[3]) {
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- co_nlocals = _PyLong_AsInt(args[3]);
- if (co_nlocals == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[4]) {
- if (PyFloat_Check(args[4])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- co_stacksize = _PyLong_AsInt(args[4]);
- if (co_stacksize == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[5]) {
- if (PyFloat_Check(args[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- co_flags = _PyLong_AsInt(args[5]);
- if (co_flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[6]) {
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- co_firstlineno = _PyLong_AsInt(args[6]);
- if (co_firstlineno == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[7]) {
- if (!PyBytes_Check(args[7])) {
- _PyArg_BadArgument("replace", "argument 'co_code'", "bytes", args[7]);
- goto exit;
- }
- co_code = (PyBytesObject *)args[7];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[8]) {
- if (!PyTuple_Check(args[8])) {
- _PyArg_BadArgument("replace", "argument 'co_consts'", "tuple", args[8]);
- goto exit;
- }
- co_consts = args[8];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[9]) {
- if (!PyTuple_Check(args[9])) {
- _PyArg_BadArgument("replace", "argument 'co_names'", "tuple", args[9]);
- goto exit;
- }
- co_names = args[9];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[10]) {
- if (!PyTuple_Check(args[10])) {
- _PyArg_BadArgument("replace", "argument 'co_varnames'", "tuple", args[10]);
- goto exit;
- }
- co_varnames = args[10];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[11]) {
- if (!PyTuple_Check(args[11])) {
- _PyArg_BadArgument("replace", "argument 'co_freevars'", "tuple", args[11]);
- goto exit;
- }
- co_freevars = args[11];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[12]) {
- if (!PyTuple_Check(args[12])) {
- _PyArg_BadArgument("replace", "argument 'co_cellvars'", "tuple", args[12]);
- goto exit;
- }
- co_cellvars = args[12];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[13]) {
- if (!PyUnicode_Check(args[13])) {
- _PyArg_BadArgument("replace", "argument 'co_filename'", "str", args[13]);
- goto exit;
- }
- if (PyUnicode_READY(args[13]) == -1) {
- goto exit;
- }
- co_filename = args[13];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (args[14]) {
- if (!PyUnicode_Check(args[14])) {
- _PyArg_BadArgument("replace", "argument 'co_name'", "str", args[14]);
- goto exit;
- }
- if (PyUnicode_READY(args[14]) == -1) {
- goto exit;
- }
- co_name = args[14];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (!PyBytes_Check(args[15])) {
- _PyArg_BadArgument("replace", "argument 'co_lnotab'", "bytes", args[15]);
- goto exit;
- }
- co_lnotab = (PyBytesObject *)args[15];
-skip_optional_kwonly:
- return_value = code_replace_impl(self, co_argcount, co_posonlyargcount, co_kwonlyargcount, co_nlocals, co_stacksize, co_flags, co_firstlineno, co_code, co_consts, co_names, co_varnames, co_freevars, co_cellvars, co_filename, co_name, co_lnotab);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=27fe34e82106b220 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(code_replace__doc__,
+"replace($self, /, *, co_argcount=-1, co_posonlyargcount=-1,\n"
+" co_kwonlyargcount=-1, co_nlocals=-1, co_stacksize=-1,\n"
+" co_flags=-1, co_firstlineno=-1, co_code=None, co_consts=None,\n"
+" co_names=None, co_varnames=None, co_freevars=None,\n"
+" co_cellvars=None, co_filename=None, co_name=None,\n"
+" co_lnotab=None)\n"
+"--\n"
+"\n"
+"Return a copy of the code object with new values for the specified fields.");
+
+#define CODE_REPLACE_METHODDEF \
+ {"replace", (PyCFunction)(void(*)(void))code_replace, METH_FASTCALL|METH_KEYWORDS, code_replace__doc__},
+
+static PyObject *
+code_replace_impl(PyCodeObject *self, int co_argcount,
+ int co_posonlyargcount, int co_kwonlyargcount,
+ int co_nlocals, int co_stacksize, int co_flags,
+ int co_firstlineno, PyBytesObject *co_code,
+ PyObject *co_consts, PyObject *co_names,
+ PyObject *co_varnames, PyObject *co_freevars,
+ PyObject *co_cellvars, PyObject *co_filename,
+ PyObject *co_name, PyBytesObject *co_lnotab);
+
+static PyObject *
+code_replace(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"co_argcount", "co_posonlyargcount", "co_kwonlyargcount", "co_nlocals", "co_stacksize", "co_flags", "co_firstlineno", "co_code", "co_consts", "co_names", "co_varnames", "co_freevars", "co_cellvars", "co_filename", "co_name", "co_lnotab", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "replace", 0};
+ PyObject *argsbuf[16];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ int co_argcount = self->co_argcount;
+ int co_posonlyargcount = self->co_posonlyargcount;
+ int co_kwonlyargcount = self->co_kwonlyargcount;
+ int co_nlocals = self->co_nlocals;
+ int co_stacksize = self->co_stacksize;
+ int co_flags = self->co_flags;
+ int co_firstlineno = self->co_firstlineno;
+ PyBytesObject *co_code = (PyBytesObject *)self->co_code;
+ PyObject *co_consts = self->co_consts;
+ PyObject *co_names = self->co_names;
+ PyObject *co_varnames = self->co_varnames;
+ PyObject *co_freevars = self->co_freevars;
+ PyObject *co_cellvars = self->co_cellvars;
+ PyObject *co_filename = self->co_filename;
+ PyObject *co_name = self->co_name;
+ PyBytesObject *co_lnotab = (PyBytesObject *)self->co_lnotab;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[0]) {
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ co_argcount = _PyLong_AsInt(args[0]);
+ if (co_argcount == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[1]) {
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ co_posonlyargcount = _PyLong_AsInt(args[1]);
+ if (co_posonlyargcount == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ co_kwonlyargcount = _PyLong_AsInt(args[2]);
+ if (co_kwonlyargcount == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[3]) {
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ co_nlocals = _PyLong_AsInt(args[3]);
+ if (co_nlocals == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[4]) {
+ if (PyFloat_Check(args[4])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ co_stacksize = _PyLong_AsInt(args[4]);
+ if (co_stacksize == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[5]) {
+ if (PyFloat_Check(args[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ co_flags = _PyLong_AsInt(args[5]);
+ if (co_flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[6]) {
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ co_firstlineno = _PyLong_AsInt(args[6]);
+ if (co_firstlineno == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[7]) {
+ if (!PyBytes_Check(args[7])) {
+ _PyArg_BadArgument("replace", "argument 'co_code'", "bytes", args[7]);
+ goto exit;
+ }
+ co_code = (PyBytesObject *)args[7];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[8]) {
+ if (!PyTuple_Check(args[8])) {
+ _PyArg_BadArgument("replace", "argument 'co_consts'", "tuple", args[8]);
+ goto exit;
+ }
+ co_consts = args[8];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[9]) {
+ if (!PyTuple_Check(args[9])) {
+ _PyArg_BadArgument("replace", "argument 'co_names'", "tuple", args[9]);
+ goto exit;
+ }
+ co_names = args[9];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[10]) {
+ if (!PyTuple_Check(args[10])) {
+ _PyArg_BadArgument("replace", "argument 'co_varnames'", "tuple", args[10]);
+ goto exit;
+ }
+ co_varnames = args[10];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[11]) {
+ if (!PyTuple_Check(args[11])) {
+ _PyArg_BadArgument("replace", "argument 'co_freevars'", "tuple", args[11]);
+ goto exit;
+ }
+ co_freevars = args[11];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[12]) {
+ if (!PyTuple_Check(args[12])) {
+ _PyArg_BadArgument("replace", "argument 'co_cellvars'", "tuple", args[12]);
+ goto exit;
+ }
+ co_cellvars = args[12];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[13]) {
+ if (!PyUnicode_Check(args[13])) {
+ _PyArg_BadArgument("replace", "argument 'co_filename'", "str", args[13]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[13]) == -1) {
+ goto exit;
+ }
+ co_filename = args[13];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (args[14]) {
+ if (!PyUnicode_Check(args[14])) {
+ _PyArg_BadArgument("replace", "argument 'co_name'", "str", args[14]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[14]) == -1) {
+ goto exit;
+ }
+ co_name = args[14];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (!PyBytes_Check(args[15])) {
+ _PyArg_BadArgument("replace", "argument 'co_lnotab'", "bytes", args[15]);
+ goto exit;
+ }
+ co_lnotab = (PyBytesObject *)args[15];
+skip_optional_kwonly:
+ return_value = code_replace_impl(self, co_argcount, co_posonlyargcount, co_kwonlyargcount, co_nlocals, co_stacksize, co_flags, co_firstlineno, co_code, co_consts, co_names, co_varnames, co_freevars, co_cellvars, co_filename, co_name, co_lnotab);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=27fe34e82106b220 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/complexobject.c.h b/contrib/tools/python3/src/Objects/clinic/complexobject.c.h
index 74f4d26d3a..8caa910d03 100644
--- a/contrib/tools/python3/src/Objects/clinic/complexobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/complexobject.c.h
@@ -18,32 +18,32 @@ complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"real", "imag", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "complex", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "complex", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *r = _PyLong_Zero;
PyObject *i = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[0]) {
- r = fastargs[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- i = fastargs[1];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[0]) {
+ r = fastargs[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ i = fastargs[1];
+skip_optional_pos:
return_value = complex_new_impl(type, r, i);
exit:
return return_value;
}
-/*[clinic end generated code: output=a0fe23fdbdc9b06b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a0fe23fdbdc9b06b input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/descrobject.c.h b/contrib/tools/python3/src/Objects/clinic/descrobject.c.h
index 13a9e12fb1..d248b91bf4 100644
--- a/contrib/tools/python3/src/Objects/clinic/descrobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/descrobject.c.h
@@ -10,17 +10,17 @@ mappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"mapping", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "mappingproxy", 0};
- PyObject *argsbuf[1];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ static _PyArg_Parser _parser = {NULL, _keywords, "mappingproxy", 0};
+ PyObject *argsbuf[1];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
PyObject *mapping;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- mapping = fastargs[0];
+ mapping = fastargs[0];
return_value = mappingproxy_new_impl(type, mapping);
exit:
@@ -73,46 +73,46 @@ property_init(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"fget", "fset", "fdel", "doc", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "property", 0};
- PyObject *argsbuf[4];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "property", 0};
+ PyObject *argsbuf[4];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *fget = NULL;
PyObject *fset = NULL;
PyObject *fdel = NULL;
PyObject *doc = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 4, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 4, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[0]) {
- fget = fastargs[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[1]) {
- fset = fastargs[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[2]) {
- fdel = fastargs[2];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- doc = fastargs[3];
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[0]) {
+ fget = fastargs[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[1]) {
+ fset = fastargs[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[2]) {
+ fdel = fastargs[2];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ doc = fastargs[3];
+skip_optional_pos:
return_value = property_init_impl((propertyobject *)self, fget, fset, fdel, doc);
exit:
return return_value;
}
-/*[clinic end generated code: output=916624e717862abc input=a9049054013a1b77]*/
+/*[clinic end generated code: output=916624e717862abc input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/dictobject.c.h b/contrib/tools/python3/src/Objects/clinic/dictobject.c.h
index 51af72a2b8..7395e3bceb 100644
--- a/contrib/tools/python3/src/Objects/clinic/dictobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/dictobject.c.h
@@ -9,7 +9,7 @@ PyDoc_STRVAR(dict_fromkeys__doc__,
"Create a new dictionary with keys from iterable and values set to value.");
#define DICT_FROMKEYS_METHODDEF \
- {"fromkeys", (PyCFunction)(void(*)(void))dict_fromkeys, METH_FASTCALL|METH_CLASS, dict_fromkeys__doc__},
+ {"fromkeys", (PyCFunction)(void(*)(void))dict_fromkeys, METH_FASTCALL|METH_CLASS, dict_fromkeys__doc__},
static PyObject *
dict_fromkeys_impl(PyTypeObject *type, PyObject *iterable, PyObject *value);
@@ -21,15 +21,15 @@ dict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs)
PyObject *iterable;
PyObject *value = Py_None;
- if (!_PyArg_CheckPositional("fromkeys", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("fromkeys", nargs, 1, 2)) {
goto exit;
}
- iterable = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- value = args[1];
-skip_optional:
+ iterable = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ value = args[1];
+skip_optional:
return_value = dict_fromkeys_impl(type, iterable, value);
exit:
@@ -52,7 +52,7 @@ PyDoc_STRVAR(dict_get__doc__,
"Return the value for key if key is in the dictionary, else default.");
#define DICT_GET_METHODDEF \
- {"get", (PyCFunction)(void(*)(void))dict_get, METH_FASTCALL, dict_get__doc__},
+ {"get", (PyCFunction)(void(*)(void))dict_get, METH_FASTCALL, dict_get__doc__},
static PyObject *
dict_get_impl(PyDictObject *self, PyObject *key, PyObject *default_value);
@@ -64,15 +64,15 @@ dict_get(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *key;
PyObject *default_value = Py_None;
- if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
goto exit;
}
- key = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ key = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = dict_get_impl(self, key, default_value);
exit:
@@ -88,7 +88,7 @@ PyDoc_STRVAR(dict_setdefault__doc__,
"Return the value for key if key is in the dictionary, else default.");
#define DICT_SETDEFAULT_METHODDEF \
- {"setdefault", (PyCFunction)(void(*)(void))dict_setdefault, METH_FASTCALL, dict_setdefault__doc__},
+ {"setdefault", (PyCFunction)(void(*)(void))dict_setdefault, METH_FASTCALL, dict_setdefault__doc__},
static PyObject *
dict_setdefault_impl(PyDictObject *self, PyObject *key,
@@ -101,93 +101,93 @@ dict_setdefault(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *key;
PyObject *default_value = Py_None;
- if (!_PyArg_CheckPositional("setdefault", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("setdefault", nargs, 1, 2)) {
goto exit;
}
- key = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ key = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = dict_setdefault_impl(self, key, default_value);
exit:
return return_value;
}
-
-PyDoc_STRVAR(dict_pop__doc__,
-"pop($self, key, default=<unrepresentable>, /)\n"
-"--\n"
-"\n"
-"D.pop(k[,d]) -> v, remove specified key and return the corresponding value.\n"
-"\n"
-"If key is not found, default is returned if given, otherwise KeyError is raised");
-
-#define DICT_POP_METHODDEF \
- {"pop", (PyCFunction)(void(*)(void))dict_pop, METH_FASTCALL, dict_pop__doc__},
-
-static PyObject *
-dict_pop_impl(PyDictObject *self, PyObject *key, PyObject *default_value);
-
-static PyObject *
-dict_pop(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *key;
- PyObject *default_value = NULL;
-
- if (!_PyArg_CheckPositional("pop", nargs, 1, 2)) {
- goto exit;
- }
- key = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
- return_value = dict_pop_impl(self, key, default_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(dict_popitem__doc__,
-"popitem($self, /)\n"
-"--\n"
-"\n"
-"Remove and return a (key, value) pair as a 2-tuple.\n"
-"\n"
-"Pairs are returned in LIFO (last-in, first-out) order.\n"
-"Raises KeyError if the dict is empty.");
-
-#define DICT_POPITEM_METHODDEF \
- {"popitem", (PyCFunction)dict_popitem, METH_NOARGS, dict_popitem__doc__},
-
-static PyObject *
-dict_popitem_impl(PyDictObject *self);
-
-static PyObject *
-dict_popitem(PyDictObject *self, PyObject *Py_UNUSED(ignored))
-{
- return dict_popitem_impl(self);
-}
-
-PyDoc_STRVAR(dict___reversed____doc__,
-"__reversed__($self, /)\n"
-"--\n"
-"\n"
-"Return a reverse iterator over the dict keys.");
-
-#define DICT___REVERSED___METHODDEF \
- {"__reversed__", (PyCFunction)dict___reversed__, METH_NOARGS, dict___reversed____doc__},
-
-static PyObject *
-dict___reversed___impl(PyDictObject *self);
-
-static PyObject *
-dict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored))
-{
- return dict___reversed___impl(self);
-}
-/*[clinic end generated code: output=4d98145508da8fa3 input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(dict_pop__doc__,
+"pop($self, key, default=<unrepresentable>, /)\n"
+"--\n"
+"\n"
+"D.pop(k[,d]) -> v, remove specified key and return the corresponding value.\n"
+"\n"
+"If key is not found, default is returned if given, otherwise KeyError is raised");
+
+#define DICT_POP_METHODDEF \
+ {"pop", (PyCFunction)(void(*)(void))dict_pop, METH_FASTCALL, dict_pop__doc__},
+
+static PyObject *
+dict_pop_impl(PyDictObject *self, PyObject *key, PyObject *default_value);
+
+static PyObject *
+dict_pop(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *key;
+ PyObject *default_value = NULL;
+
+ if (!_PyArg_CheckPositional("pop", nargs, 1, 2)) {
+ goto exit;
+ }
+ key = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
+ return_value = dict_pop_impl(self, key, default_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(dict_popitem__doc__,
+"popitem($self, /)\n"
+"--\n"
+"\n"
+"Remove and return a (key, value) pair as a 2-tuple.\n"
+"\n"
+"Pairs are returned in LIFO (last-in, first-out) order.\n"
+"Raises KeyError if the dict is empty.");
+
+#define DICT_POPITEM_METHODDEF \
+ {"popitem", (PyCFunction)dict_popitem, METH_NOARGS, dict_popitem__doc__},
+
+static PyObject *
+dict_popitem_impl(PyDictObject *self);
+
+static PyObject *
+dict_popitem(PyDictObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return dict_popitem_impl(self);
+}
+
+PyDoc_STRVAR(dict___reversed____doc__,
+"__reversed__($self, /)\n"
+"--\n"
+"\n"
+"Return a reverse iterator over the dict keys.");
+
+#define DICT___REVERSED___METHODDEF \
+ {"__reversed__", (PyCFunction)dict___reversed__, METH_NOARGS, dict___reversed____doc__},
+
+static PyObject *
+dict___reversed___impl(PyDictObject *self);
+
+static PyObject *
+dict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return dict___reversed___impl(self);
+}
+/*[clinic end generated code: output=4d98145508da8fa3 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/enumobject.c.h b/contrib/tools/python3/src/Objects/clinic/enumobject.c.h
index a22fd43b04..09d4c87e15 100644
--- a/contrib/tools/python3/src/Objects/clinic/enumobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/enumobject.c.h
@@ -25,24 +25,24 @@ enum_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"iterable", "start", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "enumerate", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "enumerate", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *iterable;
PyObject *start = 0;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- iterable = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- start = fastargs[1];
-skip_optional_pos:
+ iterable = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ start = fastargs[1];
+skip_optional_pos:
return_value = enum_new_impl(type, iterable, start);
exit:
@@ -68,13 +68,13 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
!_PyArg_NoKeywords("reversed", kwargs)) {
goto exit;
}
- if (!_PyArg_CheckPositional("reversed", PyTuple_GET_SIZE(args), 1, 1)) {
+ if (!_PyArg_CheckPositional("reversed", PyTuple_GET_SIZE(args), 1, 1)) {
goto exit;
}
- seq = PyTuple_GET_ITEM(args, 0);
+ seq = PyTuple_GET_ITEM(args, 0);
return_value = reversed_new_impl(type, seq);
exit:
return return_value;
}
-/*[clinic end generated code: output=e18c3fefcf914ec7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e18c3fefcf914ec7 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/floatobject.c.h b/contrib/tools/python3/src/Objects/clinic/floatobject.c.h
index ae823cd0e4..b7554832b5 100644
--- a/contrib/tools/python3/src/Objects/clinic/floatobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/floatobject.c.h
@@ -38,42 +38,42 @@ float___trunc__(PyObject *self, PyObject *Py_UNUSED(ignored))
return float___trunc___impl(self);
}
-PyDoc_STRVAR(float___floor____doc__,
-"__floor__($self, /)\n"
-"--\n"
-"\n"
-"Return the floor as an Integral.");
-
-#define FLOAT___FLOOR___METHODDEF \
- {"__floor__", (PyCFunction)float___floor__, METH_NOARGS, float___floor____doc__},
-
-static PyObject *
-float___floor___impl(PyObject *self);
-
-static PyObject *
-float___floor__(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- return float___floor___impl(self);
-}
-
-PyDoc_STRVAR(float___ceil____doc__,
-"__ceil__($self, /)\n"
-"--\n"
-"\n"
-"Return the ceiling as an Integral.");
-
-#define FLOAT___CEIL___METHODDEF \
- {"__ceil__", (PyCFunction)float___ceil__, METH_NOARGS, float___ceil____doc__},
-
-static PyObject *
-float___ceil___impl(PyObject *self);
-
-static PyObject *
-float___ceil__(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- return float___ceil___impl(self);
-}
-
+PyDoc_STRVAR(float___floor____doc__,
+"__floor__($self, /)\n"
+"--\n"
+"\n"
+"Return the floor as an Integral.");
+
+#define FLOAT___FLOOR___METHODDEF \
+ {"__floor__", (PyCFunction)float___floor__, METH_NOARGS, float___floor____doc__},
+
+static PyObject *
+float___floor___impl(PyObject *self);
+
+static PyObject *
+float___floor__(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return float___floor___impl(self);
+}
+
+PyDoc_STRVAR(float___ceil____doc__,
+"__ceil__($self, /)\n"
+"--\n"
+"\n"
+"Return the ceiling as an Integral.");
+
+#define FLOAT___CEIL___METHODDEF \
+ {"__ceil__", (PyCFunction)float___ceil__, METH_NOARGS, float___ceil____doc__},
+
+static PyObject *
+float___ceil___impl(PyObject *self);
+
+static PyObject *
+float___ceil__(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return float___ceil___impl(self);
+}
+
PyDoc_STRVAR(float___round____doc__,
"__round__($self, ndigits=None, /)\n"
"--\n"
@@ -83,7 +83,7 @@ PyDoc_STRVAR(float___round____doc__,
"When an argument is passed, work like built-in round(x, ndigits).");
#define FLOAT___ROUND___METHODDEF \
- {"__round__", (PyCFunction)(void(*)(void))float___round__, METH_FASTCALL, float___round____doc__},
+ {"__round__", (PyCFunction)(void(*)(void))float___round__, METH_FASTCALL, float___round____doc__},
static PyObject *
float___round___impl(PyObject *self, PyObject *o_ndigits);
@@ -92,16 +92,16 @@ static PyObject *
float___round__(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- PyObject *o_ndigits = Py_None;
+ PyObject *o_ndigits = Py_None;
- if (!_PyArg_CheckPositional("__round__", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("__round__", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- o_ndigits = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ o_ndigits = args[0];
+skip_optional:
return_value = float___round___impl(self, o_ndigits);
exit:
@@ -212,14 +212,14 @@ float_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
!_PyArg_NoKeywords("float", kwargs)) {
goto exit;
}
- if (!_PyArg_CheckPositional("float", PyTuple_GET_SIZE(args), 0, 1)) {
+ if (!_PyArg_CheckPositional("float", PyTuple_GET_SIZE(args), 0, 1)) {
goto exit;
}
- if (PyTuple_GET_SIZE(args) < 1) {
- goto skip_optional;
- }
- x = PyTuple_GET_ITEM(args, 0);
-skip_optional:
+ if (PyTuple_GET_SIZE(args) < 1) {
+ goto skip_optional;
+ }
+ x = PyTuple_GET_ITEM(args, 0);
+skip_optional:
return_value = float_new_impl(type, x);
exit:
@@ -270,19 +270,19 @@ float___getformat__(PyTypeObject *type, PyObject *arg)
PyObject *return_value = NULL;
const char *typestr;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("__getformat__", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("__getformat__", "argument", "str", arg);
+ goto exit;
+ }
+ Py_ssize_t typestr_length;
+ typestr = PyUnicode_AsUTF8AndSize(arg, &typestr_length);
+ if (typestr == NULL) {
+ goto exit;
+ }
+ if (strlen(typestr) != (size_t)typestr_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- Py_ssize_t typestr_length;
- typestr = PyUnicode_AsUTF8AndSize(arg, &typestr_length);
- if (typestr == NULL) {
- goto exit;
- }
- if (strlen(typestr) != (size_t)typestr_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = float___getformat___impl(type, typestr);
exit:
@@ -308,7 +308,7 @@ PyDoc_STRVAR(float___set_format____doc__,
"This affects how floats are converted to and from binary strings.");
#define FLOAT___SET_FORMAT___METHODDEF \
- {"__set_format__", (PyCFunction)(void(*)(void))float___set_format__, METH_FASTCALL|METH_CLASS, float___set_format____doc__},
+ {"__set_format__", (PyCFunction)(void(*)(void))float___set_format__, METH_FASTCALL|METH_CLASS, float___set_format____doc__},
static PyObject *
float___set_format___impl(PyTypeObject *type, const char *typestr,
@@ -321,35 +321,35 @@ float___set_format__(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs
const char *typestr;
const char *fmt;
- if (!_PyArg_CheckPositional("__set_format__", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("__set_format__", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("__set_format__", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t typestr_length;
+ typestr = PyUnicode_AsUTF8AndSize(args[0], &typestr_length);
+ if (typestr == NULL) {
+ goto exit;
+ }
+ if (strlen(typestr) != (size_t)typestr_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("__set_format__", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t fmt_length;
+ fmt = PyUnicode_AsUTF8AndSize(args[1], &fmt_length);
+ if (fmt == NULL) {
+ goto exit;
+ }
+ if (strlen(fmt) != (size_t)fmt_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("__set_format__", "argument 1", "str", args[0]);
- goto exit;
- }
- Py_ssize_t typestr_length;
- typestr = PyUnicode_AsUTF8AndSize(args[0], &typestr_length);
- if (typestr == NULL) {
- goto exit;
- }
- if (strlen(typestr) != (size_t)typestr_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("__set_format__", "argument 2", "str", args[1]);
- goto exit;
- }
- Py_ssize_t fmt_length;
- fmt = PyUnicode_AsUTF8AndSize(args[1], &fmt_length);
- if (fmt == NULL) {
- goto exit;
- }
- if (strlen(fmt) != (size_t)fmt_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = float___set_format___impl(type, typestr, fmt);
exit:
@@ -374,17 +374,17 @@ float___format__(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *format_spec;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("__format__", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("__format__", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- format_spec = arg;
+ format_spec = arg;
return_value = float___format___impl(self, format_spec);
exit:
return return_value;
}
-/*[clinic end generated code: output=25fbbe253f44e2df input=a9049054013a1b77]*/
+/*[clinic end generated code: output=25fbbe253f44e2df input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/funcobject.c.h b/contrib/tools/python3/src/Objects/clinic/funcobject.c.h
index 736e2d5d49..17fb13fe08 100644
--- a/contrib/tools/python3/src/Objects/clinic/funcobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/funcobject.c.h
@@ -28,51 +28,51 @@ func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"code", "globals", "name", "argdefs", "closure", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "function", 0};
- PyObject *argsbuf[5];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "function", 0};
+ PyObject *argsbuf[5];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 2;
PyCodeObject *code;
PyObject *globals;
PyObject *name = Py_None;
PyObject *defaults = Py_None;
PyObject *closure = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 5, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 2, 5, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!PyObject_TypeCheck(fastargs[0], &PyCode_Type)) {
- _PyArg_BadArgument("function", "argument 'code'", (&PyCode_Type)->tp_name, fastargs[0]);
- goto exit;
- }
- code = (PyCodeObject *)fastargs[0];
- if (!PyDict_Check(fastargs[1])) {
- _PyArg_BadArgument("function", "argument 'globals'", "dict", fastargs[1]);
- goto exit;
- }
- globals = fastargs[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (fastargs[2]) {
- name = fastargs[2];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (fastargs[3]) {
- defaults = fastargs[3];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- closure = fastargs[4];
-skip_optional_pos:
+ if (!PyObject_TypeCheck(fastargs[0], &PyCode_Type)) {
+ _PyArg_BadArgument("function", "argument 'code'", (&PyCode_Type)->tp_name, fastargs[0]);
+ goto exit;
+ }
+ code = (PyCodeObject *)fastargs[0];
+ if (!PyDict_Check(fastargs[1])) {
+ _PyArg_BadArgument("function", "argument 'globals'", "dict", fastargs[1]);
+ goto exit;
+ }
+ globals = fastargs[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (fastargs[2]) {
+ name = fastargs[2];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (fastargs[3]) {
+ defaults = fastargs[3];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ closure = fastargs[4];
+skip_optional_pos:
return_value = func_new_impl(type, code, globals, name, defaults, closure);
exit:
return return_value;
}
-/*[clinic end generated code: output=3d96afa3396e5c82 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3d96afa3396e5c82 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/listobject.c.h b/contrib/tools/python3/src/Objects/clinic/listobject.c.h
index c8094ee3b9..ed137c95a8 100644
--- a/contrib/tools/python3/src/Objects/clinic/listobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/listobject.c.h
@@ -9,7 +9,7 @@ PyDoc_STRVAR(list_insert__doc__,
"Insert object before index.");
#define LIST_INSERT_METHODDEF \
- {"insert", (PyCFunction)(void(*)(void))list_insert, METH_FASTCALL, list_insert__doc__},
+ {"insert", (PyCFunction)(void(*)(void))list_insert, METH_FASTCALL, list_insert__doc__},
static PyObject *
list_insert_impl(PyListObject *self, Py_ssize_t index, PyObject *object);
@@ -21,27 +21,27 @@ list_insert(PyListObject *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t index;
PyObject *object;
- if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("insert", nargs, 2, 2)) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- index = ival;
- }
- object = args[1];
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ index = ival;
+ }
+ object = args[1];
return_value = list_insert_impl(self, index, object);
exit:
@@ -111,7 +111,7 @@ PyDoc_STRVAR(list_pop__doc__,
"Raises IndexError if list is empty or index is out of range.");
#define LIST_POP_METHODDEF \
- {"pop", (PyCFunction)(void(*)(void))list_pop, METH_FASTCALL, list_pop__doc__},
+ {"pop", (PyCFunction)(void(*)(void))list_pop, METH_FASTCALL, list_pop__doc__},
static PyObject *
list_pop_impl(PyListObject *self, Py_ssize_t index);
@@ -122,30 +122,30 @@ list_pop(PyListObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_ssize_t index = -1;
- if (!_PyArg_CheckPositional("pop", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("pop", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- index = ival;
- }
-skip_optional:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ index = ival;
+ }
+skip_optional:
return_value = list_pop_impl(self, index);
exit:
@@ -156,18 +156,18 @@ PyDoc_STRVAR(list_sort__doc__,
"sort($self, /, *, key=None, reverse=False)\n"
"--\n"
"\n"
-"Sort the list in ascending order and return None.\n"
-"\n"
-"The sort is in-place (i.e. the list itself is modified) and stable (i.e. the\n"
-"order of two equal elements is maintained).\n"
-"\n"
-"If a key function is given, apply it once to each list item and sort them,\n"
-"ascending or descending, according to their function values.\n"
-"\n"
-"The reverse flag can be set to sort in descending order.");
+"Sort the list in ascending order and return None.\n"
+"\n"
+"The sort is in-place (i.e. the list itself is modified) and stable (i.e. the\n"
+"order of two equal elements is maintained).\n"
+"\n"
+"If a key function is given, apply it once to each list item and sort them,\n"
+"ascending or descending, according to their function values.\n"
+"\n"
+"The reverse flag can be set to sort in descending order.");
#define LIST_SORT_METHODDEF \
- {"sort", (PyCFunction)(void(*)(void))list_sort, METH_FASTCALL|METH_KEYWORDS, list_sort__doc__},
+ {"sort", (PyCFunction)(void(*)(void))list_sort, METH_FASTCALL|METH_KEYWORDS, list_sort__doc__},
static PyObject *
list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse);
@@ -177,35 +177,35 @@ list_sort(PyListObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"key", "reverse", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sort", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "sort", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *keyfunc = Py_None;
int reverse = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 0, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (args[0]) {
- keyfunc = args[0];
- if (!--noptargs) {
- goto skip_optional_kwonly;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- reverse = _PyLong_AsInt(args[1]);
- if (reverse == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_kwonly:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (args[0]) {
+ keyfunc = args[0];
+ if (!--noptargs) {
+ goto skip_optional_kwonly;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ reverse = _PyLong_AsInt(args[1]);
+ if (reverse == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = list_sort_impl(self, keyfunc, reverse);
exit:
@@ -239,7 +239,7 @@ PyDoc_STRVAR(list_index__doc__,
"Raises ValueError if the value is not present.");
#define LIST_INDEX_METHODDEF \
- {"index", (PyCFunction)(void(*)(void))list_index, METH_FASTCALL, list_index__doc__},
+ {"index", (PyCFunction)(void(*)(void))list_index, METH_FASTCALL, list_index__doc__},
static PyObject *
list_index_impl(PyListObject *self, PyObject *value, Py_ssize_t start,
@@ -253,23 +253,23 @@ list_index(PyListObject *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t start = 0;
Py_ssize_t stop = PY_SSIZE_T_MAX;
- if (!_PyArg_CheckPositional("index", nargs, 1, 3)) {
+ if (!_PyArg_CheckPositional("index", nargs, 1, 3)) {
goto exit;
}
- value = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!_PyEval_SliceIndexNotNone(args[1], &start)) {
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (!_PyEval_SliceIndexNotNone(args[2], &stop)) {
- goto exit;
- }
-skip_optional:
+ value = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!_PyEval_SliceIndexNotNone(args[1], &start)) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (!_PyEval_SliceIndexNotNone(args[2], &stop)) {
+ goto exit;
+ }
+skip_optional:
return_value = list_index_impl(self, value, start, stop);
exit:
@@ -314,18 +314,18 @@ list___init__(PyObject *self, PyObject *args, PyObject *kwargs)
int return_value = -1;
PyObject *iterable = NULL;
- if (Py_IS_TYPE(self, &PyList_Type) &&
+ if (Py_IS_TYPE(self, &PyList_Type) &&
!_PyArg_NoKeywords("list", kwargs)) {
goto exit;
}
- if (!_PyArg_CheckPositional("list", PyTuple_GET_SIZE(args), 0, 1)) {
+ if (!_PyArg_CheckPositional("list", PyTuple_GET_SIZE(args), 0, 1)) {
goto exit;
}
- if (PyTuple_GET_SIZE(args) < 1) {
- goto skip_optional;
- }
- iterable = PyTuple_GET_ITEM(args, 0);
-skip_optional:
+ if (PyTuple_GET_SIZE(args) < 1) {
+ goto skip_optional;
+ }
+ iterable = PyTuple_GET_ITEM(args, 0);
+skip_optional:
return_value = list___init___impl((PyListObject *)self, iterable);
exit:
@@ -367,4 +367,4 @@ list___reversed__(PyListObject *self, PyObject *Py_UNUSED(ignored))
{
return list___reversed___impl(self);
}
-/*[clinic end generated code: output=1ff61490c091d165 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1ff61490c091d165 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/longobject.c.h b/contrib/tools/python3/src/Objects/clinic/longobject.c.h
index 83db1f761a..27e8dfe935 100644
--- a/contrib/tools/python3/src/Objects/clinic/longobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/longobject.c.h
@@ -10,29 +10,29 @@ long_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"", "base", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "int", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "int", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0;
PyObject *x = NULL;
PyObject *obase = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 2, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional_posonly;
- }
- noptargs--;
- x = fastargs[0];
-skip_optional_posonly:
- if (!noptargs) {
- goto skip_optional_pos;
- }
- obase = fastargs[1];
-skip_optional_pos:
+ if (nargs < 1) {
+ goto skip_optional_posonly;
+ }
+ noptargs--;
+ x = fastargs[0];
+skip_optional_posonly:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ obase = fastargs[1];
+skip_optional_pos:
return_value = long_new_impl(type, x, obase);
exit:
@@ -73,14 +73,14 @@ int___format__(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *format_spec;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("__format__", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("__format__", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- format_spec = arg;
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ format_spec = arg;
return_value = int___format___impl(self, format_spec);
exit:
@@ -138,34 +138,34 @@ int_bit_length(PyObject *self, PyObject *Py_UNUSED(ignored))
return int_bit_length_impl(self);
}
-PyDoc_STRVAR(int_as_integer_ratio__doc__,
-"as_integer_ratio($self, /)\n"
-"--\n"
-"\n"
-"Return integer ratio.\n"
-"\n"
-"Return a pair of integers, whose ratio is exactly equal to the original int\n"
-"and with a positive denominator.\n"
-"\n"
-">>> (10).as_integer_ratio()\n"
-"(10, 1)\n"
-">>> (-10).as_integer_ratio()\n"
-"(-10, 1)\n"
-">>> (0).as_integer_ratio()\n"
-"(0, 1)");
-
-#define INT_AS_INTEGER_RATIO_METHODDEF \
- {"as_integer_ratio", (PyCFunction)int_as_integer_ratio, METH_NOARGS, int_as_integer_ratio__doc__},
-
-static PyObject *
-int_as_integer_ratio_impl(PyObject *self);
-
-static PyObject *
-int_as_integer_ratio(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- return int_as_integer_ratio_impl(self);
-}
-
+PyDoc_STRVAR(int_as_integer_ratio__doc__,
+"as_integer_ratio($self, /)\n"
+"--\n"
+"\n"
+"Return integer ratio.\n"
+"\n"
+"Return a pair of integers, whose ratio is exactly equal to the original int\n"
+"and with a positive denominator.\n"
+"\n"
+">>> (10).as_integer_ratio()\n"
+"(10, 1)\n"
+">>> (-10).as_integer_ratio()\n"
+"(-10, 1)\n"
+">>> (0).as_integer_ratio()\n"
+"(0, 1)");
+
+#define INT_AS_INTEGER_RATIO_METHODDEF \
+ {"as_integer_ratio", (PyCFunction)int_as_integer_ratio, METH_NOARGS, int_as_integer_ratio__doc__},
+
+static PyObject *
+int_as_integer_ratio_impl(PyObject *self);
+
+static PyObject *
+int_as_integer_ratio(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return int_as_integer_ratio_impl(self);
+}
+
PyDoc_STRVAR(int_to_bytes__doc__,
"to_bytes($self, /, length, byteorder, *, signed=False)\n"
"--\n"
@@ -187,7 +187,7 @@ PyDoc_STRVAR(int_to_bytes__doc__,
" is raised.");
#define INT_TO_BYTES_METHODDEF \
- {"to_bytes", (PyCFunction)(void(*)(void))int_to_bytes, METH_FASTCALL|METH_KEYWORDS, int_to_bytes__doc__},
+ {"to_bytes", (PyCFunction)(void(*)(void))int_to_bytes, METH_FASTCALL|METH_KEYWORDS, int_to_bytes__doc__},
static PyObject *
int_to_bytes_impl(PyObject *self, Py_ssize_t length, PyObject *byteorder,
@@ -198,50 +198,50 @@ int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"length", "byteorder", "signed", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "to_bytes", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "to_bytes", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
Py_ssize_t length;
PyObject *byteorder;
int is_signed = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- length = ival;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("to_bytes", "argument 'byteorder'", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- byteorder = args[1];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- is_signed = PyObject_IsTrue(args[2]);
- if (is_signed < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ length = ival;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("to_bytes", "argument 'byteorder'", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ byteorder = args[1];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ is_signed = PyObject_IsTrue(args[2]);
+ if (is_signed < 0) {
+ goto exit;
+ }
+skip_optional_kwonly:
return_value = int_to_bytes_impl(self, length, byteorder, is_signed);
exit:
@@ -269,7 +269,7 @@ PyDoc_STRVAR(int_from_bytes__doc__,
" Indicates whether two\'s complement is used to represent the integer.");
#define INT_FROM_BYTES_METHODDEF \
- {"from_bytes", (PyCFunction)(void(*)(void))int_from_bytes, METH_FASTCALL|METH_KEYWORDS|METH_CLASS, int_from_bytes__doc__},
+ {"from_bytes", (PyCFunction)(void(*)(void))int_from_bytes, METH_FASTCALL|METH_KEYWORDS|METH_CLASS, int_from_bytes__doc__},
static PyObject *
int_from_bytes_impl(PyTypeObject *type, PyObject *bytes_obj,
@@ -280,37 +280,37 @@ int_from_bytes(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"bytes", "byteorder", "signed", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "from_bytes", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ static _PyArg_Parser _parser = {NULL, _keywords, "from_bytes", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
PyObject *bytes_obj;
PyObject *byteorder;
int is_signed = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ bytes_obj = args[0];
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("from_bytes", "argument 'byteorder'", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ byteorder = args[1];
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ is_signed = PyObject_IsTrue(args[2]);
+ if (is_signed < 0) {
goto exit;
}
- bytes_obj = args[0];
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("from_bytes", "argument 'byteorder'", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- byteorder = args[1];
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- is_signed = PyObject_IsTrue(args[2]);
- if (is_signed < 0) {
- goto exit;
- }
-skip_optional_kwonly:
+skip_optional_kwonly:
return_value = int_from_bytes_impl(type, bytes_obj, byteorder, is_signed);
exit:
return return_value;
}
-/*[clinic end generated code: output=77bc3b2615822cb8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=77bc3b2615822cb8 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/memoryobject.c.h b/contrib/tools/python3/src/Objects/clinic/memoryobject.c.h
index 3cd265fb8d..75ac201126 100644
--- a/contrib/tools/python3/src/Objects/clinic/memoryobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/memoryobject.c.h
@@ -1,74 +1,74 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(memoryview_hex__doc__,
-"hex($self, /, sep=<unrepresentable>, bytes_per_sep=1)\n"
-"--\n"
-"\n"
-"Return the data in the buffer as a str of hexadecimal numbers.\n"
-"\n"
-" sep\n"
-" An optional single character or byte to separate hex bytes.\n"
-" bytes_per_sep\n"
-" How many bytes between separators. Positive values count from the\n"
-" right, negative values count from the left.\n"
-"\n"
-"Example:\n"
-">>> value = memoryview(b\'\\xb9\\x01\\xef\')\n"
-">>> value.hex()\n"
-"\'b901ef\'\n"
-">>> value.hex(\':\')\n"
-"\'b9:01:ef\'\n"
-">>> value.hex(\':\', 2)\n"
-"\'b9:01ef\'\n"
-">>> value.hex(\':\', -2)\n"
-"\'b901:ef\'");
-
-#define MEMORYVIEW_HEX_METHODDEF \
- {"hex", (PyCFunction)(void(*)(void))memoryview_hex, METH_FASTCALL|METH_KEYWORDS, memoryview_hex__doc__},
-
-static PyObject *
-memoryview_hex_impl(PyMemoryViewObject *self, PyObject *sep,
- int bytes_per_sep);
-
-static PyObject *
-memoryview_hex(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- PyObject *sep = NULL;
- int bytes_per_sep = 1;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- bytes_per_sep = _PyLong_AsInt(args[1]);
- if (bytes_per_sep == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = memoryview_hex_impl(self, sep, bytes_per_sep);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=ee265a73f68b0077 input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(memoryview_hex__doc__,
+"hex($self, /, sep=<unrepresentable>, bytes_per_sep=1)\n"
+"--\n"
+"\n"
+"Return the data in the buffer as a str of hexadecimal numbers.\n"
+"\n"
+" sep\n"
+" An optional single character or byte to separate hex bytes.\n"
+" bytes_per_sep\n"
+" How many bytes between separators. Positive values count from the\n"
+" right, negative values count from the left.\n"
+"\n"
+"Example:\n"
+">>> value = memoryview(b\'\\xb9\\x01\\xef\')\n"
+">>> value.hex()\n"
+"\'b901ef\'\n"
+">>> value.hex(\':\')\n"
+"\'b9:01:ef\'\n"
+">>> value.hex(\':\', 2)\n"
+"\'b9:01ef\'\n"
+">>> value.hex(\':\', -2)\n"
+"\'b901:ef\'");
+
+#define MEMORYVIEW_HEX_METHODDEF \
+ {"hex", (PyCFunction)(void(*)(void))memoryview_hex, METH_FASTCALL|METH_KEYWORDS, memoryview_hex__doc__},
+
+static PyObject *
+memoryview_hex_impl(PyMemoryViewObject *self, PyObject *sep,
+ int bytes_per_sep);
+
+static PyObject *
+memoryview_hex(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"sep", "bytes_per_sep", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "hex", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ PyObject *sep = NULL;
+ int bytes_per_sep = 1;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ bytes_per_sep = _PyLong_AsInt(args[1]);
+ if (bytes_per_sep == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = memoryview_hex_impl(self, sep, bytes_per_sep);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=ee265a73f68b0077 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/moduleobject.c.h b/contrib/tools/python3/src/Objects/clinic/moduleobject.c.h
index ad659231fa..c1534eaee2 100644
--- a/contrib/tools/python3/src/Objects/clinic/moduleobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/moduleobject.c.h
@@ -18,34 +18,34 @@ module___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
static const char * const _keywords[] = {"name", "doc", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "module", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "module", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *name;
PyObject *doc = Py_None;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- if (!PyUnicode_Check(fastargs[0])) {
- _PyArg_BadArgument("module", "argument 'name'", "str", fastargs[0]);
- goto exit;
- }
- if (PyUnicode_READY(fastargs[0]) == -1) {
- goto exit;
- }
- name = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- doc = fastargs[1];
-skip_optional_pos:
+ if (!PyUnicode_Check(fastargs[0])) {
+ _PyArg_BadArgument("module", "argument 'name'", "str", fastargs[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(fastargs[0]) == -1) {
+ goto exit;
+ }
+ name = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ doc = fastargs[1];
+skip_optional_pos:
return_value = module___init___impl((PyModuleObject *)self, name, doc);
exit:
return return_value;
}
-/*[clinic end generated code: output=680276bc3a496d7a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=680276bc3a496d7a input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/odictobject.c.h b/contrib/tools/python3/src/Objects/clinic/odictobject.c.h
index 38b0e3b22a..f43bc14ce1 100644
--- a/contrib/tools/python3/src/Objects/clinic/odictobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/odictobject.c.h
@@ -9,7 +9,7 @@ PyDoc_STRVAR(OrderedDict_fromkeys__doc__,
"Create a new ordered dictionary with keys from iterable and values set to value.");
#define ORDEREDDICT_FROMKEYS_METHODDEF \
- {"fromkeys", (PyCFunction)(void(*)(void))OrderedDict_fromkeys, METH_FASTCALL|METH_KEYWORDS|METH_CLASS, OrderedDict_fromkeys__doc__},
+ {"fromkeys", (PyCFunction)(void(*)(void))OrderedDict_fromkeys, METH_FASTCALL|METH_KEYWORDS|METH_CLASS, OrderedDict_fromkeys__doc__},
static PyObject *
OrderedDict_fromkeys_impl(PyTypeObject *type, PyObject *seq, PyObject *value);
@@ -19,22 +19,22 @@ OrderedDict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"iterable", "value", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "fromkeys", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "fromkeys", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *seq;
PyObject *value = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- seq = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- value = args[1];
-skip_optional_pos:
+ seq = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ value = args[1];
+skip_optional_pos:
return_value = OrderedDict_fromkeys_impl(type, seq, value);
exit:
@@ -50,7 +50,7 @@ PyDoc_STRVAR(OrderedDict_setdefault__doc__,
"Return the value for key if key is in the dictionary, else default.");
#define ORDEREDDICT_SETDEFAULT_METHODDEF \
- {"setdefault", (PyCFunction)(void(*)(void))OrderedDict_setdefault, METH_FASTCALL|METH_KEYWORDS, OrderedDict_setdefault__doc__},
+ {"setdefault", (PyCFunction)(void(*)(void))OrderedDict_setdefault, METH_FASTCALL|METH_KEYWORDS, OrderedDict_setdefault__doc__},
static PyObject *
OrderedDict_setdefault_impl(PyODictObject *self, PyObject *key,
@@ -61,22 +61,22 @@ OrderedDict_setdefault(PyODictObject *self, PyObject *const *args, Py_ssize_t na
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"key", "default", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *key;
PyObject *default_value = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- key = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- default_value = args[1];
-skip_optional_pos:
+ key = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ default_value = args[1];
+skip_optional_pos:
return_value = OrderedDict_setdefault_impl(self, key, default_value);
exit:
@@ -92,7 +92,7 @@ PyDoc_STRVAR(OrderedDict_popitem__doc__,
"Pairs are returned in LIFO order if last is true or FIFO order if false.");
#define ORDEREDDICT_POPITEM_METHODDEF \
- {"popitem", (PyCFunction)(void(*)(void))OrderedDict_popitem, METH_FASTCALL|METH_KEYWORDS, OrderedDict_popitem__doc__},
+ {"popitem", (PyCFunction)(void(*)(void))OrderedDict_popitem, METH_FASTCALL|METH_KEYWORDS, OrderedDict_popitem__doc__},
static PyObject *
OrderedDict_popitem_impl(PyODictObject *self, int last);
@@ -102,23 +102,23 @@ OrderedDict_popitem(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"last", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "popitem", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "popitem", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int last = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ last = PyObject_IsTrue(args[0]);
+ if (last < 0) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- last = PyObject_IsTrue(args[0]);
- if (last < 0) {
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = OrderedDict_popitem_impl(self, last);
exit:
@@ -134,7 +134,7 @@ PyDoc_STRVAR(OrderedDict_move_to_end__doc__,
"Raise KeyError if the element does not exist.");
#define ORDEREDDICT_MOVE_TO_END_METHODDEF \
- {"move_to_end", (PyCFunction)(void(*)(void))OrderedDict_move_to_end, METH_FASTCALL|METH_KEYWORDS, OrderedDict_move_to_end__doc__},
+ {"move_to_end", (PyCFunction)(void(*)(void))OrderedDict_move_to_end, METH_FASTCALL|METH_KEYWORDS, OrderedDict_move_to_end__doc__},
static PyObject *
OrderedDict_move_to_end_impl(PyODictObject *self, PyObject *key, int last);
@@ -144,28 +144,28 @@ OrderedDict_move_to_end(PyODictObject *self, PyObject *const *args, Py_ssize_t n
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"key", "last", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "move_to_end", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "move_to_end", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *key;
int last = 1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ key = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ last = PyObject_IsTrue(args[1]);
+ if (last < 0) {
goto exit;
}
- key = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- last = PyObject_IsTrue(args[1]);
- if (last < 0) {
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = OrderedDict_move_to_end_impl(self, key, last);
exit:
return return_value;
}
-/*[clinic end generated code: output=8eb1296df9142908 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=8eb1296df9142908 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/structseq.c.h b/contrib/tools/python3/src/Objects/clinic/structseq.c.h
index c2c952fa2c..b3b4836543 100644
--- a/contrib/tools/python3/src/Objects/clinic/structseq.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/structseq.c.h
@@ -10,27 +10,27 @@ structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sequence", "dict", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "structseq", 0};
- PyObject *argsbuf[2];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "structseq", 0};
+ PyObject *argsbuf[2];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
PyObject *arg;
PyObject *dict = NULL;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 2, 0, argsbuf);
+ if (!fastargs) {
goto exit;
}
- arg = fastargs[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- dict = fastargs[1];
-skip_optional_pos:
+ arg = fastargs[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ dict = fastargs[1];
+skip_optional_pos:
return_value = structseq_new_impl(type, arg, dict);
exit:
return return_value;
}
-/*[clinic end generated code: output=ed3019acf49b656c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ed3019acf49b656c input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/tupleobject.c.h b/contrib/tools/python3/src/Objects/clinic/tupleobject.c.h
index 1184a161a7..fe2fae42ee 100644
--- a/contrib/tools/python3/src/Objects/clinic/tupleobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/tupleobject.c.h
@@ -11,7 +11,7 @@ PyDoc_STRVAR(tuple_index__doc__,
"Raises ValueError if the value is not present.");
#define TUPLE_INDEX_METHODDEF \
- {"index", (PyCFunction)(void(*)(void))tuple_index, METH_FASTCALL, tuple_index__doc__},
+ {"index", (PyCFunction)(void(*)(void))tuple_index, METH_FASTCALL, tuple_index__doc__},
static PyObject *
tuple_index_impl(PyTupleObject *self, PyObject *value, Py_ssize_t start,
@@ -25,23 +25,23 @@ tuple_index(PyTupleObject *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t start = 0;
Py_ssize_t stop = PY_SSIZE_T_MAX;
- if (!_PyArg_CheckPositional("index", nargs, 1, 3)) {
+ if (!_PyArg_CheckPositional("index", nargs, 1, 3)) {
goto exit;
}
- value = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!_PyEval_SliceIndexNotNone(args[1], &start)) {
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- if (!_PyEval_SliceIndexNotNone(args[2], &stop)) {
- goto exit;
- }
-skip_optional:
+ value = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!_PyEval_SliceIndexNotNone(args[1], &start)) {
+ goto exit;
+ }
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (!_PyEval_SliceIndexNotNone(args[2], &stop)) {
+ goto exit;
+ }
+skip_optional:
return_value = tuple_index_impl(self, value, start, stop);
exit:
@@ -81,14 +81,14 @@ tuple_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
!_PyArg_NoKeywords("tuple", kwargs)) {
goto exit;
}
- if (!_PyArg_CheckPositional("tuple", PyTuple_GET_SIZE(args), 0, 1)) {
+ if (!_PyArg_CheckPositional("tuple", PyTuple_GET_SIZE(args), 0, 1)) {
goto exit;
}
- if (PyTuple_GET_SIZE(args) < 1) {
- goto skip_optional;
- }
- iterable = PyTuple_GET_ITEM(args, 0);
-skip_optional:
+ if (PyTuple_GET_SIZE(args) < 1) {
+ goto skip_optional;
+ }
+ iterable = PyTuple_GET_ITEM(args, 0);
+skip_optional:
return_value = tuple_new_impl(type, iterable);
exit:
@@ -111,4 +111,4 @@ tuple___getnewargs__(PyTupleObject *self, PyObject *Py_UNUSED(ignored))
{
return tuple___getnewargs___impl(self);
}
-/*[clinic end generated code: output=56fab9b7368aba49 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=56fab9b7368aba49 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/typeobject.c.h b/contrib/tools/python3/src/Objects/clinic/typeobject.c.h
index 3f0b9b604c..357eb44b12 100644
--- a/contrib/tools/python3/src/Objects/clinic/typeobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/typeobject.c.h
@@ -166,15 +166,15 @@ object___reduce_ex__(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
int protocol;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ protocol = _PyLong_AsInt(arg);
+ if (protocol == -1 && PyErr_Occurred()) {
goto exit;
}
- protocol = _PyLong_AsInt(arg);
- if (protocol == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = object___reduce_ex___impl(self, protocol);
exit:
@@ -199,14 +199,14 @@ object___format__(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *format_spec;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("__format__", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("__format__", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- format_spec = arg;
+ format_spec = arg;
return_value = object___format___impl(self, format_spec);
exit:
@@ -248,4 +248,4 @@ object___dir__(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return object___dir___impl(self);
}
-/*[clinic end generated code: output=7a6d272d282308f3 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7a6d272d282308f3 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/clinic/unicodeobject.c.h b/contrib/tools/python3/src/Objects/clinic/unicodeobject.c.h
index 892d9ba134..cf81df4af6 100644
--- a/contrib/tools/python3/src/Objects/clinic/unicodeobject.c.h
+++ b/contrib/tools/python3/src/Objects/clinic/unicodeobject.c.h
@@ -71,7 +71,7 @@ PyDoc_STRVAR(unicode_center__doc__,
"Padding is done using the specified fill character (default is a space).");
#define UNICODE_CENTER_METHODDEF \
- {"center", (PyCFunction)(void(*)(void))unicode_center, METH_FASTCALL, unicode_center__doc__},
+ {"center", (PyCFunction)(void(*)(void))unicode_center, METH_FASTCALL, unicode_center__doc__},
static PyObject *
unicode_center_impl(PyObject *self, Py_ssize_t width, Py_UCS4 fillchar);
@@ -83,33 +83,33 @@ unicode_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t width;
Py_UCS4 fillchar = ' ';
- if (!_PyArg_CheckPositional("center", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("center", nargs, 1, 2)) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!convert_uc(args[1], &fillchar)) {
- goto exit;
- }
-skip_optional:
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!convert_uc(args[1], &fillchar)) {
+ goto exit;
+ }
+skip_optional:
return_value = unicode_center_impl(self, width, fillchar);
exit:
@@ -132,7 +132,7 @@ PyDoc_STRVAR(unicode_encode__doc__,
" codecs.register_error that can handle UnicodeEncodeErrors.");
#define UNICODE_ENCODE_METHODDEF \
- {"encode", (PyCFunction)(void(*)(void))unicode_encode, METH_FASTCALL|METH_KEYWORDS, unicode_encode__doc__},
+ {"encode", (PyCFunction)(void(*)(void))unicode_encode, METH_FASTCALL|METH_KEYWORDS, unicode_encode__doc__},
static PyObject *
unicode_encode_impl(PyObject *self, const char *encoding, const char *errors);
@@ -142,51 +142,51 @@ unicode_encode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"encoding", "errors", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
const char *encoding = NULL;
const char *errors = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("encode", "argument 'encoding'", "str", args[0]);
- goto exit;
- }
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
- if (encoding == NULL) {
- goto exit;
- }
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("encode", "argument 'errors'", "str", args[1]);
- goto exit;
- }
- Py_ssize_t errors_length;
- errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
- if (errors == NULL) {
- goto exit;
- }
- if (strlen(errors) != (size_t)errors_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("encode", "argument 'encoding'", "str", args[0]);
+ goto exit;
+ }
+ Py_ssize_t encoding_length;
+ encoding = PyUnicode_AsUTF8AndSize(args[0], &encoding_length);
+ if (encoding == NULL) {
+ goto exit;
+ }
+ if (strlen(encoding) != (size_t)encoding_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("encode", "argument 'errors'", "str", args[1]);
+ goto exit;
+ }
+ Py_ssize_t errors_length;
+ errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
+ if (errors == NULL) {
+ goto exit;
+ }
+ if (strlen(errors) != (size_t)errors_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+skip_optional_pos:
return_value = unicode_encode_impl(self, encoding, errors);
exit:
@@ -202,7 +202,7 @@ PyDoc_STRVAR(unicode_expandtabs__doc__,
"If tabsize is not given, a tab size of 8 characters is assumed.");
#define UNICODE_EXPANDTABS_METHODDEF \
- {"expandtabs", (PyCFunction)(void(*)(void))unicode_expandtabs, METH_FASTCALL|METH_KEYWORDS, unicode_expandtabs__doc__},
+ {"expandtabs", (PyCFunction)(void(*)(void))unicode_expandtabs, METH_FASTCALL|METH_KEYWORDS, unicode_expandtabs__doc__},
static PyObject *
unicode_expandtabs_impl(PyObject *self, int tabsize);
@@ -212,28 +212,28 @@ unicode_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"tabsize", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int tabsize = 8;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- tabsize = _PyLong_AsInt(args[0]);
- if (tabsize == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ tabsize = _PyLong_AsInt(args[0]);
+ if (tabsize == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = unicode_expandtabs_impl(self, tabsize);
exit:
@@ -456,8 +456,8 @@ PyDoc_STRVAR(unicode_isidentifier__doc__,
"\n"
"Return True if the string is a valid Python identifier, False otherwise.\n"
"\n"
-"Call keyword.iskeyword(s) to test whether string s is a reserved identifier,\n"
-"such as \"def\" or \"class\".");
+"Call keyword.iskeyword(s) to test whether string s is a reserved identifier,\n"
+"such as \"def\" or \"class\".");
#define UNICODE_ISIDENTIFIER_METHODDEF \
{"isidentifier", (PyCFunction)unicode_isidentifier, METH_NOARGS, unicode_isidentifier__doc__},
@@ -515,7 +515,7 @@ PyDoc_STRVAR(unicode_ljust__doc__,
"Padding is done using the specified fill character (default is a space).");
#define UNICODE_LJUST_METHODDEF \
- {"ljust", (PyCFunction)(void(*)(void))unicode_ljust, METH_FASTCALL, unicode_ljust__doc__},
+ {"ljust", (PyCFunction)(void(*)(void))unicode_ljust, METH_FASTCALL, unicode_ljust__doc__},
static PyObject *
unicode_ljust_impl(PyObject *self, Py_ssize_t width, Py_UCS4 fillchar);
@@ -527,33 +527,33 @@ unicode_ljust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t width;
Py_UCS4 fillchar = ' ';
- if (!_PyArg_CheckPositional("ljust", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("ljust", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!convert_uc(args[1], &fillchar)) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!convert_uc(args[1], &fillchar)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = unicode_ljust_impl(self, width, fillchar);
exit:
@@ -582,12 +582,12 @@ PyDoc_STRVAR(unicode_strip__doc__,
"strip($self, chars=None, /)\n"
"--\n"
"\n"
-"Return a copy of the string with leading and trailing whitespace removed.\n"
+"Return a copy of the string with leading and trailing whitespace removed.\n"
"\n"
"If chars is given and not None, remove characters in chars instead.");
#define UNICODE_STRIP_METHODDEF \
- {"strip", (PyCFunction)(void(*)(void))unicode_strip, METH_FASTCALL, unicode_strip__doc__},
+ {"strip", (PyCFunction)(void(*)(void))unicode_strip, METH_FASTCALL, unicode_strip__doc__},
static PyObject *
unicode_strip_impl(PyObject *self, PyObject *chars);
@@ -598,14 +598,14 @@ unicode_strip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *chars = Py_None;
- if (!_PyArg_CheckPositional("strip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("strip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- chars = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ chars = args[0];
+skip_optional:
return_value = unicode_strip_impl(self, chars);
exit:
@@ -621,7 +621,7 @@ PyDoc_STRVAR(unicode_lstrip__doc__,
"If chars is given and not None, remove characters in chars instead.");
#define UNICODE_LSTRIP_METHODDEF \
- {"lstrip", (PyCFunction)(void(*)(void))unicode_lstrip, METH_FASTCALL, unicode_lstrip__doc__},
+ {"lstrip", (PyCFunction)(void(*)(void))unicode_lstrip, METH_FASTCALL, unicode_lstrip__doc__},
static PyObject *
unicode_lstrip_impl(PyObject *self, PyObject *chars);
@@ -630,16 +630,16 @@ static PyObject *
unicode_lstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- PyObject *chars = Py_None;
+ PyObject *chars = Py_None;
- if (!_PyArg_CheckPositional("lstrip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("lstrip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- chars = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ chars = args[0];
+skip_optional:
return_value = unicode_lstrip_impl(self, chars);
exit:
@@ -655,7 +655,7 @@ PyDoc_STRVAR(unicode_rstrip__doc__,
"If chars is given and not None, remove characters in chars instead.");
#define UNICODE_RSTRIP_METHODDEF \
- {"rstrip", (PyCFunction)(void(*)(void))unicode_rstrip, METH_FASTCALL, unicode_rstrip__doc__},
+ {"rstrip", (PyCFunction)(void(*)(void))unicode_rstrip, METH_FASTCALL, unicode_rstrip__doc__},
static PyObject *
unicode_rstrip_impl(PyObject *self, PyObject *chars);
@@ -664,16 +664,16 @@ static PyObject *
unicode_rstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
- PyObject *chars = Py_None;
+ PyObject *chars = Py_None;
- if (!_PyArg_CheckPositional("rstrip", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("rstrip", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- chars = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ chars = args[0];
+skip_optional:
return_value = unicode_rstrip_impl(self, chars);
exit:
@@ -694,7 +694,7 @@ PyDoc_STRVAR(unicode_replace__doc__,
"replaced.");
#define UNICODE_REPLACE_METHODDEF \
- {"replace", (PyCFunction)(void(*)(void))unicode_replace, METH_FASTCALL, unicode_replace__doc__},
+ {"replace", (PyCFunction)(void(*)(void))unicode_replace, METH_FASTCALL, unicode_replace__doc__},
static PyObject *
unicode_replace_impl(PyObject *self, PyObject *old, PyObject *new,
@@ -708,123 +708,123 @@ unicode_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
PyObject *new;
Py_ssize_t count = -1;
- if (!_PyArg_CheckPositional("replace", nargs, 2, 3)) {
+ if (!_PyArg_CheckPositional("replace", nargs, 2, 3)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[0])) {
+ _PyArg_BadArgument("replace", "argument 1", "str", args[0]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[0]) == -1) {
+ goto exit;
+ }
+ old = args[0];
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("replace", "argument 2", "str", args[1]);
goto exit;
}
- if (!PyUnicode_Check(args[0])) {
- _PyArg_BadArgument("replace", "argument 1", "str", args[0]);
- goto exit;
- }
- if (PyUnicode_READY(args[0]) == -1) {
- goto exit;
- }
- old = args[0];
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("replace", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- new = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- count = ival;
- }
-skip_optional:
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ new = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ count = ival;
+ }
+skip_optional:
return_value = unicode_replace_impl(self, old, new, count);
exit:
return return_value;
}
-PyDoc_STRVAR(unicode_removeprefix__doc__,
-"removeprefix($self, prefix, /)\n"
-"--\n"
-"\n"
-"Return a str with the given prefix string removed if present.\n"
-"\n"
-"If the string starts with the prefix string, return string[len(prefix):].\n"
-"Otherwise, return a copy of the original string.");
-
-#define UNICODE_REMOVEPREFIX_METHODDEF \
- {"removeprefix", (PyCFunction)unicode_removeprefix, METH_O, unicode_removeprefix__doc__},
-
-static PyObject *
-unicode_removeprefix_impl(PyObject *self, PyObject *prefix);
-
-static PyObject *
-unicode_removeprefix(PyObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyObject *prefix;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("removeprefix", "argument", "str", arg);
- goto exit;
- }
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- prefix = arg;
- return_value = unicode_removeprefix_impl(self, prefix);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(unicode_removesuffix__doc__,
-"removesuffix($self, suffix, /)\n"
-"--\n"
-"\n"
-"Return a str with the given suffix string removed if present.\n"
-"\n"
-"If the string ends with the suffix string and that suffix is not empty,\n"
-"return string[:-len(suffix)]. Otherwise, return a copy of the original\n"
-"string.");
-
-#define UNICODE_REMOVESUFFIX_METHODDEF \
- {"removesuffix", (PyCFunction)unicode_removesuffix, METH_O, unicode_removesuffix__doc__},
-
-static PyObject *
-unicode_removesuffix_impl(PyObject *self, PyObject *suffix);
-
-static PyObject *
-unicode_removesuffix(PyObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyObject *suffix;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("removesuffix", "argument", "str", arg);
- goto exit;
- }
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- suffix = arg;
- return_value = unicode_removesuffix_impl(self, suffix);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(unicode_removeprefix__doc__,
+"removeprefix($self, prefix, /)\n"
+"--\n"
+"\n"
+"Return a str with the given prefix string removed if present.\n"
+"\n"
+"If the string starts with the prefix string, return string[len(prefix):].\n"
+"Otherwise, return a copy of the original string.");
+
+#define UNICODE_REMOVEPREFIX_METHODDEF \
+ {"removeprefix", (PyCFunction)unicode_removeprefix, METH_O, unicode_removeprefix__doc__},
+
+static PyObject *
+unicode_removeprefix_impl(PyObject *self, PyObject *prefix);
+
+static PyObject *
+unicode_removeprefix(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *prefix;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("removeprefix", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ prefix = arg;
+ return_value = unicode_removeprefix_impl(self, prefix);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(unicode_removesuffix__doc__,
+"removesuffix($self, suffix, /)\n"
+"--\n"
+"\n"
+"Return a str with the given suffix string removed if present.\n"
+"\n"
+"If the string ends with the suffix string and that suffix is not empty,\n"
+"return string[:-len(suffix)]. Otherwise, return a copy of the original\n"
+"string.");
+
+#define UNICODE_REMOVESUFFIX_METHODDEF \
+ {"removesuffix", (PyCFunction)unicode_removesuffix, METH_O, unicode_removesuffix__doc__},
+
+static PyObject *
+unicode_removesuffix_impl(PyObject *self, PyObject *suffix);
+
+static PyObject *
+unicode_removesuffix(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *suffix;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("removesuffix", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ suffix = arg;
+ return_value = unicode_removesuffix_impl(self, suffix);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(unicode_rjust__doc__,
"rjust($self, width, fillchar=\' \', /)\n"
"--\n"
@@ -834,7 +834,7 @@ PyDoc_STRVAR(unicode_rjust__doc__,
"Padding is done using the specified fill character (default is a space).");
#define UNICODE_RJUST_METHODDEF \
- {"rjust", (PyCFunction)(void(*)(void))unicode_rjust, METH_FASTCALL, unicode_rjust__doc__},
+ {"rjust", (PyCFunction)(void(*)(void))unicode_rjust, METH_FASTCALL, unicode_rjust__doc__},
static PyObject *
unicode_rjust_impl(PyObject *self, Py_ssize_t width, Py_UCS4 fillchar);
@@ -846,33 +846,33 @@ unicode_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
Py_ssize_t width;
Py_UCS4 fillchar = ' ';
- if (!_PyArg_CheckPositional("rjust", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("rjust", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!convert_uc(args[1], &fillchar)) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!convert_uc(args[1], &fillchar)) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = unicode_rjust_impl(self, width, fillchar);
exit:
@@ -894,7 +894,7 @@ PyDoc_STRVAR(unicode_split__doc__,
" -1 (the default value) means no limit.");
#define UNICODE_SPLIT_METHODDEF \
- {"split", (PyCFunction)(void(*)(void))unicode_split, METH_FASTCALL|METH_KEYWORDS, unicode_split__doc__},
+ {"split", (PyCFunction)(void(*)(void))unicode_split, METH_FASTCALL|METH_KEYWORDS, unicode_split__doc__},
static PyObject *
unicode_split_impl(PyObject *self, PyObject *sep, Py_ssize_t maxsplit);
@@ -904,43 +904,43 @@ unicode_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sep", "maxsplit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "split", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *sep = Py_None;
Py_ssize_t maxsplit = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- maxsplit = ival;
- }
-skip_optional_pos:
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ maxsplit = ival;
+ }
+skip_optional_pos:
return_value = unicode_split_impl(self, sep, maxsplit);
exit:
@@ -996,7 +996,7 @@ PyDoc_STRVAR(unicode_rsplit__doc__,
"Splits are done starting at the end of the string and working to the front.");
#define UNICODE_RSPLIT_METHODDEF \
- {"rsplit", (PyCFunction)(void(*)(void))unicode_rsplit, METH_FASTCALL|METH_KEYWORDS, unicode_rsplit__doc__},
+ {"rsplit", (PyCFunction)(void(*)(void))unicode_rsplit, METH_FASTCALL|METH_KEYWORDS, unicode_rsplit__doc__},
static PyObject *
unicode_rsplit_impl(PyObject *self, PyObject *sep, Py_ssize_t maxsplit);
@@ -1006,43 +1006,43 @@ unicode_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sep", "maxsplit", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "rsplit", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
PyObject *sep = Py_None;
Py_ssize_t maxsplit = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[0]) {
- sep = args[0];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[1]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- maxsplit = ival;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[0]) {
+ sep = args[0];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[1]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ maxsplit = ival;
+ }
+skip_optional_pos:
return_value = unicode_rsplit_impl(self, sep, maxsplit);
exit:
@@ -1059,7 +1059,7 @@ PyDoc_STRVAR(unicode_splitlines__doc__,
"true.");
#define UNICODE_SPLITLINES_METHODDEF \
- {"splitlines", (PyCFunction)(void(*)(void))unicode_splitlines, METH_FASTCALL|METH_KEYWORDS, unicode_splitlines__doc__},
+ {"splitlines", (PyCFunction)(void(*)(void))unicode_splitlines, METH_FASTCALL|METH_KEYWORDS, unicode_splitlines__doc__},
static PyObject *
unicode_splitlines_impl(PyObject *self, int keepends);
@@ -1069,28 +1069,28 @@ unicode_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"keepends", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "splitlines", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int keepends = 0;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- keepends = _PyLong_AsInt(args[0]);
- if (keepends == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ keepends = _PyLong_AsInt(args[0]);
+ if (keepends == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
return_value = unicode_splitlines_impl(self, keepends);
exit:
@@ -1116,7 +1116,7 @@ unicode_swapcase(PyObject *self, PyObject *Py_UNUSED(ignored))
}
PyDoc_STRVAR(unicode_maketrans__doc__,
-"maketrans(x, y=<unrepresentable>, z=<unrepresentable>, /)\n"
+"maketrans(x, y=<unrepresentable>, z=<unrepresentable>, /)\n"
"--\n"
"\n"
"Return a translation table usable for str.translate().\n"
@@ -1130,7 +1130,7 @@ PyDoc_STRVAR(unicode_maketrans__doc__,
"must be a string, whose characters will be mapped to None in the result.");
#define UNICODE_MAKETRANS_METHODDEF \
- {"maketrans", (PyCFunction)(void(*)(void))unicode_maketrans, METH_FASTCALL|METH_STATIC, unicode_maketrans__doc__},
+ {"maketrans", (PyCFunction)(void(*)(void))unicode_maketrans, METH_FASTCALL|METH_STATIC, unicode_maketrans__doc__},
static PyObject *
unicode_maketrans_impl(PyObject *x, PyObject *y, PyObject *z);
@@ -1143,33 +1143,33 @@ unicode_maketrans(void *null, PyObject *const *args, Py_ssize_t nargs)
PyObject *y = NULL;
PyObject *z = NULL;
- if (!_PyArg_CheckPositional("maketrans", nargs, 1, 3)) {
+ if (!_PyArg_CheckPositional("maketrans", nargs, 1, 3)) {
+ goto exit;
+ }
+ x = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("maketrans", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ y = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("maketrans", "argument 3", "str", args[2]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[2]) == -1) {
goto exit;
}
- x = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("maketrans", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- y = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("maketrans", "argument 3", "str", args[2]);
- goto exit;
- }
- if (PyUnicode_READY(args[2]) == -1) {
- goto exit;
- }
- z = args[2];
-skip_optional:
+ z = args[2];
+skip_optional:
return_value = unicode_maketrans_impl(x, y, z);
exit:
@@ -1231,23 +1231,23 @@ unicode_zfill(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
Py_ssize_t width;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
goto exit;
}
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(arg);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(arg);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
return_value = unicode_zfill_impl(self, width);
exit:
@@ -1272,14 +1272,14 @@ unicode___format__(PyObject *self, PyObject *arg)
PyObject *return_value = NULL;
PyObject *format_spec;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("__format__", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("__format__", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- format_spec = arg;
+ format_spec = arg;
return_value = unicode___format___impl(self, format_spec);
exit:
@@ -1303,4 +1303,4 @@ unicode_sizeof(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return unicode_sizeof_impl(self);
}
-/*[clinic end generated code: output=b91233f3722643be input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b91233f3722643be input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/codeobject.c b/contrib/tools/python3/src/Objects/codeobject.c
index 9bc5a51c44..cb4fb68124 100644
--- a/contrib/tools/python3/src/Objects/codeobject.c
+++ b/contrib/tools/python3/src/Objects/codeobject.c
@@ -2,13 +2,13 @@
#include "Python.h"
#include "code.h"
-#include "opcode.h"
-#include "structmember.h" // PyMemberDef
-#include "pycore_code.h"
-#include "pycore_interp.h" // PyInterpreterState.co_extra_freefuncs
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "pycore_tupleobject.h"
-#include "clinic/codeobject.c.h"
+#include "opcode.h"
+#include "structmember.h" // PyMemberDef
+#include "pycore_code.h"
+#include "pycore_interp.h" // PyInterpreterState.co_extra_freefuncs
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_tupleobject.h"
+#include "clinic/codeobject.c.h"
/* Holder for co_extra information */
typedef struct {
@@ -16,11 +16,11 @@ typedef struct {
void *ce_extras[1];
} _PyCodeObjectExtra;
-/*[clinic input]
-class code "PyCodeObject *" "&PyCode_Type"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=78aa5d576683bb4b]*/
-
+/*[clinic input]
+class code "PyCodeObject *" "&PyCode_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=78aa5d576683bb4b]*/
+
/* all_name_chars(s): true iff s matches [a-zA-Z0-9_]* */
static int
all_name_chars(PyObject *o)
@@ -39,7 +39,7 @@ all_name_chars(PyObject *o)
return 1;
}
-static int
+static int
intern_strings(PyObject *tuple)
{
Py_ssize_t i;
@@ -47,88 +47,88 @@ intern_strings(PyObject *tuple)
for (i = PyTuple_GET_SIZE(tuple); --i >= 0; ) {
PyObject *v = PyTuple_GET_ITEM(tuple, i);
if (v == NULL || !PyUnicode_CheckExact(v)) {
- PyErr_SetString(PyExc_SystemError,
- "non-string found in code slot");
- return -1;
+ PyErr_SetString(PyExc_SystemError,
+ "non-string found in code slot");
+ return -1;
}
- PyUnicode_InternInPlace(&_PyTuple_ITEMS(tuple)[i]);
+ PyUnicode_InternInPlace(&_PyTuple_ITEMS(tuple)[i]);
}
- return 0;
+ return 0;
}
/* Intern selected string constants */
static int
-intern_string_constants(PyObject *tuple, int *modified)
+intern_string_constants(PyObject *tuple, int *modified)
{
- for (Py_ssize_t i = PyTuple_GET_SIZE(tuple); --i >= 0; ) {
+ for (Py_ssize_t i = PyTuple_GET_SIZE(tuple); --i >= 0; ) {
PyObject *v = PyTuple_GET_ITEM(tuple, i);
if (PyUnicode_CheckExact(v)) {
if (PyUnicode_READY(v) == -1) {
- return -1;
+ return -1;
}
-
+
if (all_name_chars(v)) {
PyObject *w = v;
PyUnicode_InternInPlace(&v);
if (w != v) {
PyTuple_SET_ITEM(tuple, i, v);
- if (modified) {
- *modified = 1;
- }
+ if (modified) {
+ *modified = 1;
+ }
}
}
}
else if (PyTuple_CheckExact(v)) {
- if (intern_string_constants(v, NULL) < 0) {
- return -1;
- }
+ if (intern_string_constants(v, NULL) < 0) {
+ return -1;
+ }
}
else if (PyFrozenSet_CheckExact(v)) {
PyObject *w = v;
PyObject *tmp = PySequence_Tuple(v);
if (tmp == NULL) {
- return -1;
+ return -1;
+ }
+ int tmp_modified = 0;
+ if (intern_string_constants(tmp, &tmp_modified) < 0) {
+ Py_DECREF(tmp);
+ return -1;
}
- int tmp_modified = 0;
- if (intern_string_constants(tmp, &tmp_modified) < 0) {
- Py_DECREF(tmp);
- return -1;
- }
- if (tmp_modified) {
+ if (tmp_modified) {
v = PyFrozenSet_New(tmp);
if (v == NULL) {
- Py_DECREF(tmp);
- return -1;
+ Py_DECREF(tmp);
+ return -1;
}
-
- PyTuple_SET_ITEM(tuple, i, v);
- Py_DECREF(w);
- if (modified) {
- *modified = 1;
+
+ PyTuple_SET_ITEM(tuple, i, v);
+ Py_DECREF(w);
+ if (modified) {
+ *modified = 1;
}
}
Py_DECREF(tmp);
}
}
- return 0;
+ return 0;
}
PyCodeObject *
-PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount,
- int nlocals, int stacksize, int flags,
- PyObject *code, PyObject *consts, PyObject *names,
- PyObject *varnames, PyObject *freevars, PyObject *cellvars,
- PyObject *filename, PyObject *name, int firstlineno,
- PyObject *lnotab)
+PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount,
+ int nlocals, int stacksize, int flags,
+ PyObject *code, PyObject *consts, PyObject *names,
+ PyObject *varnames, PyObject *freevars, PyObject *cellvars,
+ PyObject *filename, PyObject *name, int firstlineno,
+ PyObject *lnotab)
{
PyCodeObject *co;
Py_ssize_t *cell2arg = NULL;
Py_ssize_t i, n_cellvars, n_varnames, total_args;
/* Check argument types */
- if (argcount < posonlyargcount || posonlyargcount < 0 ||
- kwonlyargcount < 0 || nlocals < 0 ||
- stacksize < 0 || flags < 0 ||
+ if (argcount < posonlyargcount || posonlyargcount < 0 ||
+ kwonlyargcount < 0 || nlocals < 0 ||
+ stacksize < 0 || flags < 0 ||
code == NULL || !PyBytes_Check(code) ||
consts == NULL || !PyTuple_Check(consts) ||
names == NULL || !PyTuple_Check(names) ||
@@ -142,38 +142,38 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount,
return NULL;
}
- /* Ensure that strings are ready Unicode string */
- if (PyUnicode_READY(name) < 0) {
+ /* Ensure that strings are ready Unicode string */
+ if (PyUnicode_READY(name) < 0) {
+ return NULL;
+ }
+ if (PyUnicode_READY(filename) < 0) {
+ return NULL;
+ }
+
+ if (intern_strings(names) < 0) {
+ return NULL;
+ }
+ if (intern_strings(varnames) < 0) {
+ return NULL;
+ }
+ if (intern_strings(freevars) < 0) {
+ return NULL;
+ }
+ if (intern_strings(cellvars) < 0) {
+ return NULL;
+ }
+ if (intern_string_constants(consts, NULL) < 0) {
+ return NULL;
+ }
+
+ /* Make sure that code is indexable with an int, this is
+ a long running assumption in ceval.c and many parts of
+ the interpreter. */
+ if (PyBytes_GET_SIZE(code) > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "co_code larger than INT_MAX");
return NULL;
- }
- if (PyUnicode_READY(filename) < 0) {
- return NULL;
- }
-
- if (intern_strings(names) < 0) {
- return NULL;
- }
- if (intern_strings(varnames) < 0) {
- return NULL;
- }
- if (intern_strings(freevars) < 0) {
- return NULL;
- }
- if (intern_strings(cellvars) < 0) {
- return NULL;
- }
- if (intern_string_constants(consts, NULL) < 0) {
- return NULL;
- }
-
- /* Make sure that code is indexable with an int, this is
- a long running assumption in ceval.c and many parts of
- the interpreter. */
- if (PyBytes_GET_SIZE(code) > INT_MAX) {
- PyErr_SetString(PyExc_OverflowError, "co_code larger than INT_MAX");
- return NULL;
- }
-
+ }
+
/* Check for any inner or outer closure references */
n_cellvars = PyTuple_GET_SIZE(cellvars);
if (!n_cellvars && !PyTuple_GET_SIZE(freevars)) {
@@ -186,7 +186,7 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount,
if (argcount <= n_varnames && kwonlyargcount <= n_varnames) {
/* Never overflows. */
total_args = (Py_ssize_t)argcount + (Py_ssize_t)kwonlyargcount +
- ((flags & CO_VARARGS) != 0) + ((flags & CO_VARKEYWORDS) != 0);
+ ((flags & CO_VARARGS) != 0) + ((flags & CO_VARKEYWORDS) != 0);
}
else {
total_args = n_varnames + 1;
@@ -228,14 +228,14 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount,
cell2arg = NULL;
}
}
- co = PyObject_New(PyCodeObject, &PyCode_Type);
+ co = PyObject_New(PyCodeObject, &PyCode_Type);
if (co == NULL) {
if (cell2arg)
PyMem_FREE(cell2arg);
return NULL;
}
co->co_argcount = argcount;
- co->co_posonlyargcount = posonlyargcount;
+ co->co_posonlyargcount = posonlyargcount;
co->co_kwonlyargcount = kwonlyargcount;
co->co_nlocals = nlocals;
co->co_stacksize = stacksize;
@@ -263,72 +263,72 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount,
co->co_zombieframe = NULL;
co->co_weakreflist = NULL;
co->co_extra = NULL;
-
- co->co_opcache_map = NULL;
- co->co_opcache = NULL;
- co->co_opcache_flag = 0;
- co->co_opcache_size = 0;
+
+ co->co_opcache_map = NULL;
+ co->co_opcache = NULL;
+ co->co_opcache_flag = 0;
+ co->co_opcache_size = 0;
return co;
}
PyCodeObject *
-PyCode_New(int argcount, int kwonlyargcount,
- int nlocals, int stacksize, int flags,
- PyObject *code, PyObject *consts, PyObject *names,
- PyObject *varnames, PyObject *freevars, PyObject *cellvars,
- PyObject *filename, PyObject *name, int firstlineno,
- PyObject *lnotab)
-{
- return PyCode_NewWithPosOnlyArgs(argcount, 0, kwonlyargcount, nlocals,
- stacksize, flags, code, consts, names,
- varnames, freevars, cellvars, filename,
- name, firstlineno, lnotab);
-}
-
-int
-_PyCode_InitOpcache(PyCodeObject *co)
-{
- Py_ssize_t co_size = PyBytes_Size(co->co_code) / sizeof(_Py_CODEUNIT);
- co->co_opcache_map = (unsigned char *)PyMem_Calloc(co_size, 1);
- if (co->co_opcache_map == NULL) {
- return -1;
- }
-
- _Py_CODEUNIT *opcodes = (_Py_CODEUNIT*)PyBytes_AS_STRING(co->co_code);
- Py_ssize_t opts = 0;
-
- for (Py_ssize_t i = 0; i < co_size;) {
- unsigned char opcode = _Py_OPCODE(opcodes[i]);
- i++; // 'i' is now aligned to (next_instr - first_instr)
-
- // TODO: LOAD_METHOD, LOAD_ATTR
- if (opcode == LOAD_GLOBAL) {
- opts++;
- co->co_opcache_map[i] = (unsigned char)opts;
- if (opts > 254) {
- break;
- }
- }
- }
-
- if (opts) {
- co->co_opcache = (_PyOpcache *)PyMem_Calloc(opts, sizeof(_PyOpcache));
- if (co->co_opcache == NULL) {
- PyMem_FREE(co->co_opcache_map);
- return -1;
- }
- }
- else {
- PyMem_FREE(co->co_opcache_map);
- co->co_opcache_map = NULL;
- co->co_opcache = NULL;
- }
-
- co->co_opcache_size = (unsigned char)opts;
- return 0;
-}
-
-PyCodeObject *
+PyCode_New(int argcount, int kwonlyargcount,
+ int nlocals, int stacksize, int flags,
+ PyObject *code, PyObject *consts, PyObject *names,
+ PyObject *varnames, PyObject *freevars, PyObject *cellvars,
+ PyObject *filename, PyObject *name, int firstlineno,
+ PyObject *lnotab)
+{
+ return PyCode_NewWithPosOnlyArgs(argcount, 0, kwonlyargcount, nlocals,
+ stacksize, flags, code, consts, names,
+ varnames, freevars, cellvars, filename,
+ name, firstlineno, lnotab);
+}
+
+int
+_PyCode_InitOpcache(PyCodeObject *co)
+{
+ Py_ssize_t co_size = PyBytes_Size(co->co_code) / sizeof(_Py_CODEUNIT);
+ co->co_opcache_map = (unsigned char *)PyMem_Calloc(co_size, 1);
+ if (co->co_opcache_map == NULL) {
+ return -1;
+ }
+
+ _Py_CODEUNIT *opcodes = (_Py_CODEUNIT*)PyBytes_AS_STRING(co->co_code);
+ Py_ssize_t opts = 0;
+
+ for (Py_ssize_t i = 0; i < co_size;) {
+ unsigned char opcode = _Py_OPCODE(opcodes[i]);
+ i++; // 'i' is now aligned to (next_instr - first_instr)
+
+ // TODO: LOAD_METHOD, LOAD_ATTR
+ if (opcode == LOAD_GLOBAL) {
+ opts++;
+ co->co_opcache_map[i] = (unsigned char)opts;
+ if (opts > 254) {
+ break;
+ }
+ }
+ }
+
+ if (opts) {
+ co->co_opcache = (_PyOpcache *)PyMem_Calloc(opts, sizeof(_PyOpcache));
+ if (co->co_opcache == NULL) {
+ PyMem_FREE(co->co_opcache_map);
+ return -1;
+ }
+ }
+ else {
+ PyMem_FREE(co->co_opcache_map);
+ co->co_opcache_map = NULL;
+ co->co_opcache = NULL;
+ }
+
+ co->co_opcache_size = (unsigned char)opts;
+ return 0;
+}
+
+PyCodeObject *
PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)
{
static PyObject *emptystring = NULL;
@@ -353,9 +353,9 @@ PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)
if (filename_ob == NULL)
goto failed;
- result = PyCode_NewWithPosOnlyArgs(
- 0, /* argcount */
- 0, /* posonlyargcount */
+ result = PyCode_NewWithPosOnlyArgs(
+ 0, /* argcount */
+ 0, /* posonlyargcount */
0, /* kwonlyargcount */
0, /* nlocals */
0, /* stacksize */
@@ -381,22 +381,22 @@ failed:
#define OFF(x) offsetof(PyCodeObject, x)
static PyMemberDef code_memberlist[] = {
- {"co_argcount", T_INT, OFF(co_argcount), READONLY},
- {"co_posonlyargcount", T_INT, OFF(co_posonlyargcount), READONLY},
- {"co_kwonlyargcount", T_INT, OFF(co_kwonlyargcount), READONLY},
- {"co_nlocals", T_INT, OFF(co_nlocals), READONLY},
- {"co_stacksize",T_INT, OFF(co_stacksize), READONLY},
- {"co_flags", T_INT, OFF(co_flags), READONLY},
- {"co_code", T_OBJECT, OFF(co_code), READONLY},
- {"co_consts", T_OBJECT, OFF(co_consts), READONLY},
- {"co_names", T_OBJECT, OFF(co_names), READONLY},
- {"co_varnames", T_OBJECT, OFF(co_varnames), READONLY},
- {"co_freevars", T_OBJECT, OFF(co_freevars), READONLY},
- {"co_cellvars", T_OBJECT, OFF(co_cellvars), READONLY},
- {"co_filename", T_OBJECT, OFF(co_filename), READONLY},
- {"co_name", T_OBJECT, OFF(co_name), READONLY},
- {"co_firstlineno", T_INT, OFF(co_firstlineno), READONLY},
- {"co_lnotab", T_OBJECT, OFF(co_lnotab), READONLY},
+ {"co_argcount", T_INT, OFF(co_argcount), READONLY},
+ {"co_posonlyargcount", T_INT, OFF(co_posonlyargcount), READONLY},
+ {"co_kwonlyargcount", T_INT, OFF(co_kwonlyargcount), READONLY},
+ {"co_nlocals", T_INT, OFF(co_nlocals), READONLY},
+ {"co_stacksize",T_INT, OFF(co_stacksize), READONLY},
+ {"co_flags", T_INT, OFF(co_flags), READONLY},
+ {"co_code", T_OBJECT, OFF(co_code), READONLY},
+ {"co_consts", T_OBJECT, OFF(co_consts), READONLY},
+ {"co_names", T_OBJECT, OFF(co_names), READONLY},
+ {"co_varnames", T_OBJECT, OFF(co_varnames), READONLY},
+ {"co_freevars", T_OBJECT, OFF(co_freevars), READONLY},
+ {"co_cellvars", T_OBJECT, OFF(co_cellvars), READONLY},
+ {"co_filename", T_OBJECT, OFF(co_filename), READONLY},
+ {"co_name", T_OBJECT, OFF(co_name), READONLY},
+ {"co_firstlineno", T_INT, OFF(co_firstlineno), READONLY},
+ {"co_lnotab", T_OBJECT, OFF(co_lnotab), READONLY},
{NULL} /* Sentinel */
};
@@ -425,7 +425,7 @@ validate_and_copy_tuple(PyObject *tup)
PyExc_TypeError,
"name tuples must contain only "
"strings, not '%.500s'",
- Py_TYPE(item)->tp_name);
+ Py_TYPE(item)->tp_name);
Py_DECREF(newtuple);
return NULL;
}
@@ -443,9 +443,9 @@ validate_and_copy_tuple(PyObject *tup)
}
PyDoc_STRVAR(code_doc,
-"code(argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize,\n\
- flags, codestring, constants, names, varnames, filename, name,\n\
- firstlineno, lnotab[, freevars[, cellvars]])\n\
+"code(argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize,\n\
+ flags, codestring, constants, names, varnames, filename, name,\n\
+ firstlineno, lnotab[, freevars[, cellvars]])\n\
\n\
Create a code object. Not for the faint of heart.");
@@ -453,7 +453,7 @@ static PyObject *
code_new(PyTypeObject *type, PyObject *args, PyObject *kw)
{
int argcount;
- int posonlyargcount;
+ int posonlyargcount;
int kwonlyargcount;
int nlocals;
int stacksize;
@@ -470,8 +470,8 @@ code_new(PyTypeObject *type, PyObject *args, PyObject *kw)
int firstlineno;
PyObject *lnotab;
- if (!PyArg_ParseTuple(args, "iiiiiiSO!O!O!UUiS|O!O!:code",
- &argcount, &posonlyargcount, &kwonlyargcount,
+ if (!PyArg_ParseTuple(args, "iiiiiiSO!O!O!UUiS|O!O!:code",
+ &argcount, &posonlyargcount, &kwonlyargcount,
&nlocals, &stacksize, &flags,
&code,
&PyTuple_Type, &consts,
@@ -483,12 +483,12 @@ code_new(PyTypeObject *type, PyObject *args, PyObject *kw)
&PyTuple_Type, &cellvars))
return NULL;
- if (PySys_Audit("code.__new__", "OOOiiiiii",
- code, filename, name, argcount, posonlyargcount,
- kwonlyargcount, nlocals, stacksize, flags) < 0) {
- goto cleanup;
- }
-
+ if (PySys_Audit("code.__new__", "OOOiiiiii",
+ code, filename, name, argcount, posonlyargcount,
+ kwonlyargcount, nlocals, stacksize, flags) < 0) {
+ goto cleanup;
+ }
+
if (argcount < 0) {
PyErr_SetString(
PyExc_ValueError,
@@ -496,13 +496,13 @@ code_new(PyTypeObject *type, PyObject *args, PyObject *kw)
goto cleanup;
}
- if (posonlyargcount < 0) {
- PyErr_SetString(
- PyExc_ValueError,
- "code: posonlyargcount must not be negative");
- goto cleanup;
- }
-
+ if (posonlyargcount < 0) {
+ PyErr_SetString(
+ PyExc_ValueError,
+ "code: posonlyargcount must not be negative");
+ goto cleanup;
+ }
+
if (kwonlyargcount < 0) {
PyErr_SetString(
PyExc_ValueError,
@@ -535,14 +535,14 @@ code_new(PyTypeObject *type, PyObject *args, PyObject *kw)
if (ourcellvars == NULL)
goto cleanup;
- co = (PyObject *)PyCode_NewWithPosOnlyArgs(argcount, posonlyargcount,
- kwonlyargcount,
- nlocals, stacksize, flags,
- code, consts, ournames,
- ourvarnames, ourfreevars,
- ourcellvars, filename,
- name, firstlineno, lnotab);
- cleanup:
+ co = (PyObject *)PyCode_NewWithPosOnlyArgs(argcount, posonlyargcount,
+ kwonlyargcount,
+ nlocals, stacksize, flags,
+ code, consts, ournames,
+ ourvarnames, ourfreevars,
+ ourcellvars, filename,
+ name, firstlineno, lnotab);
+ cleanup:
Py_XDECREF(ournames);
Py_XDECREF(ourvarnames);
Py_XDECREF(ourfreevars);
@@ -553,17 +553,17 @@ code_new(PyTypeObject *type, PyObject *args, PyObject *kw)
static void
code_dealloc(PyCodeObject *co)
{
- if (co->co_opcache != NULL) {
- PyMem_FREE(co->co_opcache);
- }
- if (co->co_opcache_map != NULL) {
- PyMem_FREE(co->co_opcache_map);
- }
- co->co_opcache_flag = 0;
- co->co_opcache_size = 0;
-
+ if (co->co_opcache != NULL) {
+ PyMem_FREE(co->co_opcache);
+ }
+ if (co->co_opcache_map != NULL) {
+ PyMem_FREE(co->co_opcache_map);
+ }
+ co->co_opcache_flag = 0;
+ co->co_opcache_size = 0;
+
if (co->co_extra != NULL) {
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
_PyCodeObjectExtra *co_extra = co->co_extra;
for (Py_ssize_t i = 0; i < co_extra->ce_size; i++) {
@@ -596,7 +596,7 @@ code_dealloc(PyCodeObject *co)
}
static PyObject *
-code_sizeof(PyCodeObject *co, PyObject *Py_UNUSED(args))
+code_sizeof(PyCodeObject *co, PyObject *Py_UNUSED(args))
{
Py_ssize_t res = _PyObject_SIZE(Py_TYPE(co));
_PyCodeObjectExtra *co_extra = (_PyCodeObjectExtra*) co->co_extra;
@@ -608,83 +608,83 @@ code_sizeof(PyCodeObject *co, PyObject *Py_UNUSED(args))
res += sizeof(_PyCodeObjectExtra) +
(co_extra->ce_size-1) * sizeof(co_extra->ce_extras[0]);
}
- if (co->co_opcache != NULL) {
- assert(co->co_opcache_map != NULL);
- // co_opcache_map
- res += PyBytes_GET_SIZE(co->co_code) / sizeof(_Py_CODEUNIT);
- // co_opcache
- res += co->co_opcache_size * sizeof(_PyOpcache);
- }
+ if (co->co_opcache != NULL) {
+ assert(co->co_opcache_map != NULL);
+ // co_opcache_map
+ res += PyBytes_GET_SIZE(co->co_code) / sizeof(_Py_CODEUNIT);
+ // co_opcache
+ res += co->co_opcache_size * sizeof(_PyOpcache);
+ }
return PyLong_FromSsize_t(res);
}
-/*[clinic input]
-code.replace
-
- *
- co_argcount: int(c_default="self->co_argcount") = -1
- co_posonlyargcount: int(c_default="self->co_posonlyargcount") = -1
- co_kwonlyargcount: int(c_default="self->co_kwonlyargcount") = -1
- co_nlocals: int(c_default="self->co_nlocals") = -1
- co_stacksize: int(c_default="self->co_stacksize") = -1
- co_flags: int(c_default="self->co_flags") = -1
- co_firstlineno: int(c_default="self->co_firstlineno") = -1
- co_code: PyBytesObject(c_default="(PyBytesObject *)self->co_code") = None
- co_consts: object(subclass_of="&PyTuple_Type", c_default="self->co_consts") = None
- co_names: object(subclass_of="&PyTuple_Type", c_default="self->co_names") = None
- co_varnames: object(subclass_of="&PyTuple_Type", c_default="self->co_varnames") = None
- co_freevars: object(subclass_of="&PyTuple_Type", c_default="self->co_freevars") = None
- co_cellvars: object(subclass_of="&PyTuple_Type", c_default="self->co_cellvars") = None
- co_filename: unicode(c_default="self->co_filename") = None
- co_name: unicode(c_default="self->co_name") = None
- co_lnotab: PyBytesObject(c_default="(PyBytesObject *)self->co_lnotab") = None
-
-Return a copy of the code object with new values for the specified fields.
-[clinic start generated code]*/
-
+/*[clinic input]
+code.replace
+
+ *
+ co_argcount: int(c_default="self->co_argcount") = -1
+ co_posonlyargcount: int(c_default="self->co_posonlyargcount") = -1
+ co_kwonlyargcount: int(c_default="self->co_kwonlyargcount") = -1
+ co_nlocals: int(c_default="self->co_nlocals") = -1
+ co_stacksize: int(c_default="self->co_stacksize") = -1
+ co_flags: int(c_default="self->co_flags") = -1
+ co_firstlineno: int(c_default="self->co_firstlineno") = -1
+ co_code: PyBytesObject(c_default="(PyBytesObject *)self->co_code") = None
+ co_consts: object(subclass_of="&PyTuple_Type", c_default="self->co_consts") = None
+ co_names: object(subclass_of="&PyTuple_Type", c_default="self->co_names") = None
+ co_varnames: object(subclass_of="&PyTuple_Type", c_default="self->co_varnames") = None
+ co_freevars: object(subclass_of="&PyTuple_Type", c_default="self->co_freevars") = None
+ co_cellvars: object(subclass_of="&PyTuple_Type", c_default="self->co_cellvars") = None
+ co_filename: unicode(c_default="self->co_filename") = None
+ co_name: unicode(c_default="self->co_name") = None
+ co_lnotab: PyBytesObject(c_default="(PyBytesObject *)self->co_lnotab") = None
+
+Return a copy of the code object with new values for the specified fields.
+[clinic start generated code]*/
+
+static PyObject *
+code_replace_impl(PyCodeObject *self, int co_argcount,
+ int co_posonlyargcount, int co_kwonlyargcount,
+ int co_nlocals, int co_stacksize, int co_flags,
+ int co_firstlineno, PyBytesObject *co_code,
+ PyObject *co_consts, PyObject *co_names,
+ PyObject *co_varnames, PyObject *co_freevars,
+ PyObject *co_cellvars, PyObject *co_filename,
+ PyObject *co_name, PyBytesObject *co_lnotab)
+/*[clinic end generated code: output=25c8e303913bcace input=d9051bc8f24e6b28]*/
+{
+#define CHECK_INT_ARG(ARG) \
+ if (ARG < 0) { \
+ PyErr_SetString(PyExc_ValueError, \
+ #ARG " must be a positive integer"); \
+ return NULL; \
+ }
+
+ CHECK_INT_ARG(co_argcount);
+ CHECK_INT_ARG(co_posonlyargcount);
+ CHECK_INT_ARG(co_kwonlyargcount);
+ CHECK_INT_ARG(co_nlocals);
+ CHECK_INT_ARG(co_stacksize);
+ CHECK_INT_ARG(co_flags);
+ CHECK_INT_ARG(co_firstlineno);
+
+#undef CHECK_INT_ARG
+
+ if (PySys_Audit("code.__new__", "OOOiiiiii",
+ co_code, co_filename, co_name, co_argcount,
+ co_posonlyargcount, co_kwonlyargcount, co_nlocals,
+ co_stacksize, co_flags) < 0) {
+ return NULL;
+ }
+
+ return (PyObject *)PyCode_NewWithPosOnlyArgs(
+ co_argcount, co_posonlyargcount, co_kwonlyargcount, co_nlocals,
+ co_stacksize, co_flags, (PyObject*)co_code, co_consts, co_names,
+ co_varnames, co_freevars, co_cellvars, co_filename, co_name,
+ co_firstlineno, (PyObject*)co_lnotab);
+}
+
static PyObject *
-code_replace_impl(PyCodeObject *self, int co_argcount,
- int co_posonlyargcount, int co_kwonlyargcount,
- int co_nlocals, int co_stacksize, int co_flags,
- int co_firstlineno, PyBytesObject *co_code,
- PyObject *co_consts, PyObject *co_names,
- PyObject *co_varnames, PyObject *co_freevars,
- PyObject *co_cellvars, PyObject *co_filename,
- PyObject *co_name, PyBytesObject *co_lnotab)
-/*[clinic end generated code: output=25c8e303913bcace input=d9051bc8f24e6b28]*/
-{
-#define CHECK_INT_ARG(ARG) \
- if (ARG < 0) { \
- PyErr_SetString(PyExc_ValueError, \
- #ARG " must be a positive integer"); \
- return NULL; \
- }
-
- CHECK_INT_ARG(co_argcount);
- CHECK_INT_ARG(co_posonlyargcount);
- CHECK_INT_ARG(co_kwonlyargcount);
- CHECK_INT_ARG(co_nlocals);
- CHECK_INT_ARG(co_stacksize);
- CHECK_INT_ARG(co_flags);
- CHECK_INT_ARG(co_firstlineno);
-
-#undef CHECK_INT_ARG
-
- if (PySys_Audit("code.__new__", "OOOiiiiii",
- co_code, co_filename, co_name, co_argcount,
- co_posonlyargcount, co_kwonlyargcount, co_nlocals,
- co_stacksize, co_flags) < 0) {
- return NULL;
- }
-
- return (PyObject *)PyCode_NewWithPosOnlyArgs(
- co_argcount, co_posonlyargcount, co_kwonlyargcount, co_nlocals,
- co_stacksize, co_flags, (PyObject*)co_code, co_consts, co_names,
- co_varnames, co_freevars, co_cellvars, co_filename, co_name,
- co_firstlineno, (PyObject*)co_lnotab);
-}
-
-static PyObject *
code_repr(PyCodeObject *co)
{
int lineno;
@@ -708,21 +708,21 @@ _PyCode_ConstantKey(PyObject *op)
{
PyObject *key;
- /* Py_None and Py_Ellipsis are singletons. */
+ /* Py_None and Py_Ellipsis are singletons. */
if (op == Py_None || op == Py_Ellipsis
|| PyLong_CheckExact(op)
|| PyUnicode_CheckExact(op)
/* code_richcompare() uses _PyCode_ConstantKey() internally */
- || PyCode_Check(op))
- {
- /* Objects of these types are always different from object of other
- * type and from tuples. */
- Py_INCREF(op);
- key = op;
- }
- else if (PyBool_Check(op) || PyBytes_CheckExact(op)) {
- /* Make booleans different from integers 0 and 1.
- * Avoid BytesWarning from comparing bytes with strings. */
+ || PyCode_Check(op))
+ {
+ /* Objects of these types are always different from object of other
+ * type and from tuples. */
+ Py_INCREF(op);
+ key = op;
+ }
+ else if (PyBool_Check(op) || PyBytes_CheckExact(op)) {
+ /* Make booleans different from integers 0 and 1.
+ * Avoid BytesWarning from comparing bytes with strings. */
key = PyTuple_Pack(2, Py_TYPE(op), op);
}
else if (PyFloat_CheckExact(op)) {
@@ -851,11 +851,11 @@ code_richcompare(PyObject *self, PyObject *other, int op)
cp = (PyCodeObject *)other;
eq = PyObject_RichCompareBool(co->co_name, cp->co_name, Py_EQ);
- if (!eq) goto unequal;
+ if (!eq) goto unequal;
eq = co->co_argcount == cp->co_argcount;
if (!eq) goto unequal;
- eq = co->co_posonlyargcount == cp->co_posonlyargcount;
- if (!eq) goto unequal;
+ eq = co->co_posonlyargcount == cp->co_posonlyargcount;
+ if (!eq) goto unequal;
eq = co->co_kwonlyargcount == cp->co_kwonlyargcount;
if (!eq) goto unequal;
eq = co->co_nlocals == cp->co_nlocals;
@@ -928,7 +928,7 @@ code_hash(PyCodeObject *co)
h6 = PyObject_Hash(co->co_cellvars);
if (h6 == -1) return -1;
h = h0 ^ h1 ^ h2 ^ h3 ^ h4 ^ h5 ^ h6 ^
- co->co_argcount ^ co->co_posonlyargcount ^ co->co_kwonlyargcount ^
+ co->co_argcount ^ co->co_posonlyargcount ^ co->co_kwonlyargcount ^
co->co_nlocals ^ co->co_flags;
if (h == -1) h = -2;
return h;
@@ -938,7 +938,7 @@ code_hash(PyCodeObject *co)
static struct PyMethodDef code_methods[] = {
{"__sizeof__", (PyCFunction)code_sizeof, METH_NOARGS},
- CODE_REPLACE_METHODDEF
+ CODE_REPLACE_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -948,10 +948,10 @@ PyTypeObject PyCode_Type = {
sizeof(PyCodeObject),
0,
(destructor)code_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)code_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1082,7 +1082,7 @@ _PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra)
int
_PyCode_SetExtra(PyObject *code, Py_ssize_t index, void *extra)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
if (!PyCode_Check(code) || index < 0 ||
index >= interp->co_extra_user_count) {
diff --git a/contrib/tools/python3/src/Objects/complexobject.c b/contrib/tools/python3/src/Objects/complexobject.c
index 71dc3abcf2..e09cc15fe8 100644
--- a/contrib/tools/python3/src/Objects/complexobject.c
+++ b/contrib/tools/python3/src/Objects/complexobject.c
@@ -6,7 +6,7 @@
/* Submitted by Jim Hugunin */
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
/*[clinic input]
class complex "PyComplexObject *" "&PyComplex_Type"
@@ -55,10 +55,10 @@ _Py_c_prod(Py_complex a, Py_complex b)
return r;
}
-/* Avoid bad optimization on Windows ARM64 until the compiler is fixed */
-#ifdef _M_ARM64
-#pragma optimize("", off)
-#endif
+/* Avoid bad optimization on Windows ARM64 until the compiler is fixed */
+#ifdef _M_ARM64
+#pragma optimize("", off)
+#endif
Py_complex
_Py_c_quot(Py_complex a, Py_complex b)
{
@@ -116,9 +116,9 @@ _Py_c_quot(Py_complex a, Py_complex b)
}
return r;
}
-#ifdef _M_ARM64
-#pragma optimize("", on)
-#endif
+#ifdef _M_ARM64
+#pragma optimize("", on)
+#endif
Py_complex
_Py_c_pow(Py_complex a, Py_complex b)
@@ -169,7 +169,7 @@ c_powu(Py_complex x, long n)
static Py_complex
c_powi(Py_complex x, long n)
{
- if (n > 0)
+ if (n > 0)
return c_powu(x,n);
else
return _Py_c_quot(c_1, c_powu(x,-n));
@@ -289,7 +289,7 @@ try_complex_special_method(PyObject *op)
if (!PyComplex_Check(res)) {
PyErr_Format(PyExc_TypeError,
"__complex__ returned non-complex (type %.200s)",
- Py_TYPE(res)->tp_name);
+ Py_TYPE(res)->tp_name);
Py_DECREF(res);
return NULL;
}
@@ -298,7 +298,7 @@ try_complex_special_method(PyObject *op)
"__complex__ returned non-complex (type %.200s). "
"The ability to return an instance of a strict subclass of complex "
"is deprecated, and may be removed in a future version of Python.",
- Py_TYPE(res)->tp_name)) {
+ Py_TYPE(res)->tp_name)) {
Py_DECREF(res);
return NULL;
}
@@ -531,14 +531,14 @@ complex_pow(PyObject *v, PyObject *w, PyObject *z)
return NULL;
}
errno = 0;
- // Check whether the exponent has a small integer value, and if so use
- // a faster and more accurate algorithm.
- if (b.imag == 0.0 && b.real == floor(b.real) && fabs(b.real) <= 100.0) {
- p = c_powi(a, (long)b.real);
- }
- else {
- p = _Py_c_pow(a, b);
- }
+ // Check whether the exponent has a small integer value, and if so use
+ // a faster and more accurate algorithm.
+ if (b.imag == 0.0 && b.real == floor(b.real) && fabs(b.real) <= 100.0) {
+ p = c_powi(a, (long)b.real);
+ }
+ else {
+ p = _Py_c_pow(a, b);
+ }
Py_ADJUST_ERANGE2(p.real, p.imag);
if (errno == EDOM) {
@@ -677,7 +677,7 @@ complex_float(PyObject *v)
}
static PyObject *
-complex_conjugate(PyObject *self, PyObject *Py_UNUSED(ignored))
+complex_conjugate(PyObject *self, PyObject *Py_UNUSED(ignored))
{
Py_complex c;
c = ((PyComplexObject *)self)->cval;
@@ -691,7 +691,7 @@ PyDoc_STRVAR(complex_conjugate_doc,
"Return the complex conjugate of its argument. (3-4j).conjugate() == 3+4j.");
static PyObject *
-complex_getnewargs(PyComplexObject *v, PyObject *Py_UNUSED(ignored))
+complex_getnewargs(PyComplexObject *v, PyObject *Py_UNUSED(ignored))
{
Py_complex c = v->cval;
return Py_BuildValue("(dd)", c.real, c.imag);
@@ -951,8 +951,8 @@ complex_new_impl(PyTypeObject *type, PyObject *r, PyObject *i)
return NULL;
}
- nbr = Py_TYPE(r)->tp_as_number;
- if (nbr == NULL || (nbr->nb_float == NULL && nbr->nb_index == NULL)) {
+ nbr = Py_TYPE(r)->tp_as_number;
+ if (nbr == NULL || (nbr->nb_float == NULL && nbr->nb_index == NULL)) {
PyErr_Format(PyExc_TypeError,
"complex() first argument must be a string or a number, "
"not '%.200s'",
@@ -963,8 +963,8 @@ complex_new_impl(PyTypeObject *type, PyObject *r, PyObject *i)
return NULL;
}
if (i != NULL) {
- nbi = Py_TYPE(i)->tp_as_number;
- if (nbi == NULL || (nbi->nb_float == NULL && nbi->nb_index == NULL)) {
+ nbi = Py_TYPE(i)->tp_as_number;
+ if (nbi == NULL || (nbi->nb_float == NULL && nbi->nb_index == NULL)) {
PyErr_Format(PyExc_TypeError,
"complex() second argument must be a number, "
"not '%.200s'",
@@ -1020,7 +1020,7 @@ complex_new_impl(PyTypeObject *type, PyObject *r, PyObject *i)
/* The "imag" part really is entirely imaginary, and
contributes nothing in the real direction.
Just treat it as a double. */
- tmp = PyNumber_Float(i);
+ tmp = PyNumber_Float(i);
if (tmp == NULL)
return NULL;
ci.real = PyFloat_AsDouble(tmp);
@@ -1080,18 +1080,18 @@ PyTypeObject PyComplex_Type = {
"complex",
sizeof(PyComplexObject),
0,
- 0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)complex_repr, /* tp_repr */
&complex_as_number, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
(hashfunc)complex_hash, /* tp_hash */
0, /* tp_call */
- 0, /* tp_str */
+ 0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
diff --git a/contrib/tools/python3/src/Objects/descrobject.c b/contrib/tools/python3/src/Objects/descrobject.c
index 833120df50..075a92d408 100644
--- a/contrib/tools/python3/src/Objects/descrobject.c
+++ b/contrib/tools/python3/src/Objects/descrobject.c
@@ -1,14 +1,14 @@
/* Descriptors -- a new, flexible way to describe attributes */
#include "Python.h"
-#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
-#include "pycore_object.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_tupleobject.h"
-#include "structmember.h" // PyMemberDef
-
-_Py_IDENTIFIER(getattr);
-
+#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
+#include "pycore_object.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_tupleobject.h"
+#include "structmember.h" // PyMemberDef
+
+_Py_IDENTIFIER(getattr);
+
/*[clinic input]
class mappingproxy "mappingproxyobject *" "&PyDictProxy_Type"
class property "propertyobject *" "&PyProperty_Type"
@@ -72,16 +72,16 @@ wrapperdescr_repr(PyWrapperDescrObject *descr)
}
static int
-descr_check(PyDescrObject *descr, PyObject *obj)
+descr_check(PyDescrObject *descr, PyObject *obj)
{
if (!PyObject_TypeCheck(obj, descr->d_type)) {
PyErr_Format(PyExc_TypeError,
- "descriptor '%V' for '%.100s' objects "
- "doesn't apply to a '%.100s' object",
+ "descriptor '%V' for '%.100s' objects "
+ "doesn't apply to a '%.100s' object",
descr_name((PyDescrObject *)descr), "?",
descr->d_type->tp_name,
- Py_TYPE(obj)->tp_name);
- return -1;
+ Py_TYPE(obj)->tp_name);
+ return -1;
}
return 0;
}
@@ -92,11 +92,11 @@ classmethod_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)
/* Ensure a valid type. Class methods ignore obj. */
if (type == NULL) {
if (obj != NULL)
- type = (PyObject *)Py_TYPE(obj);
+ type = (PyObject *)Py_TYPE(obj);
else {
/* Wot - no type?! */
PyErr_Format(PyExc_TypeError,
- "descriptor '%V' for type '%.100s' "
+ "descriptor '%V' for type '%.100s' "
"needs either an object or a type",
descr_name((PyDescrObject *)descr), "?",
PyDescr_TYPE(descr)->tp_name);
@@ -105,85 +105,85 @@ classmethod_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)
}
if (!PyType_Check(type)) {
PyErr_Format(PyExc_TypeError,
- "descriptor '%V' for type '%.100s' "
- "needs a type, not a '%.100s' as arg 2",
+ "descriptor '%V' for type '%.100s' "
+ "needs a type, not a '%.100s' as arg 2",
descr_name((PyDescrObject *)descr), "?",
PyDescr_TYPE(descr)->tp_name,
- Py_TYPE(type)->tp_name);
+ Py_TYPE(type)->tp_name);
return NULL;
}
if (!PyType_IsSubtype((PyTypeObject *)type, PyDescr_TYPE(descr))) {
PyErr_Format(PyExc_TypeError,
- "descriptor '%V' requires a subtype of '%.100s' "
- "but received '%.100s'",
+ "descriptor '%V' requires a subtype of '%.100s' "
+ "but received '%.100s'",
descr_name((PyDescrObject *)descr), "?",
PyDescr_TYPE(descr)->tp_name,
((PyTypeObject *)type)->tp_name);
return NULL;
}
- PyTypeObject *cls = NULL;
- if (descr->d_method->ml_flags & METH_METHOD) {
- cls = descr->d_common.d_type;
- }
- return PyCMethod_New(descr->d_method, type, NULL, cls);
+ PyTypeObject *cls = NULL;
+ if (descr->d_method->ml_flags & METH_METHOD) {
+ cls = descr->d_common.d_type;
+ }
+ return PyCMethod_New(descr->d_method, type, NULL, cls);
}
static PyObject *
method_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)
{
- if (obj == NULL) {
- Py_INCREF(descr);
- return (PyObject *)descr;
- }
- if (descr_check((PyDescrObject *)descr, obj) < 0) {
- return NULL;
- }
- if (descr->d_method->ml_flags & METH_METHOD) {
- if (PyType_Check(type)) {
- return PyCMethod_New(descr->d_method, obj, NULL, descr->d_common.d_type);
- } else {
- PyErr_Format(PyExc_TypeError,
- "descriptor '%V' needs a type, not '%s', as arg 2",
- descr_name((PyDescrObject *)descr),
- Py_TYPE(type)->tp_name);
- return NULL;
- }
- } else {
- return PyCFunction_NewEx(descr->d_method, obj, NULL);
- }
+ if (obj == NULL) {
+ Py_INCREF(descr);
+ return (PyObject *)descr;
+ }
+ if (descr_check((PyDescrObject *)descr, obj) < 0) {
+ return NULL;
+ }
+ if (descr->d_method->ml_flags & METH_METHOD) {
+ if (PyType_Check(type)) {
+ return PyCMethod_New(descr->d_method, obj, NULL, descr->d_common.d_type);
+ } else {
+ PyErr_Format(PyExc_TypeError,
+ "descriptor '%V' needs a type, not '%s', as arg 2",
+ descr_name((PyDescrObject *)descr),
+ Py_TYPE(type)->tp_name);
+ return NULL;
+ }
+ } else {
+ return PyCFunction_NewEx(descr->d_method, obj, NULL);
+ }
}
static PyObject *
member_get(PyMemberDescrObject *descr, PyObject *obj, PyObject *type)
{
- if (obj == NULL) {
- Py_INCREF(descr);
- return (PyObject *)descr;
- }
- if (descr_check((PyDescrObject *)descr, obj) < 0) {
- return NULL;
- }
-
- if (descr->d_member->flags & READ_RESTRICTED) {
- if (PySys_Audit("object.__getattr__", "Os",
- obj ? obj : Py_None, descr->d_member->name) < 0) {
- return NULL;
- }
- }
-
+ if (obj == NULL) {
+ Py_INCREF(descr);
+ return (PyObject *)descr;
+ }
+ if (descr_check((PyDescrObject *)descr, obj) < 0) {
+ return NULL;
+ }
+
+ if (descr->d_member->flags & READ_RESTRICTED) {
+ if (PySys_Audit("object.__getattr__", "Os",
+ obj ? obj : Py_None, descr->d_member->name) < 0) {
+ return NULL;
+ }
+ }
+
return PyMember_GetOne((char *)obj, descr->d_member);
}
static PyObject *
getset_get(PyGetSetDescrObject *descr, PyObject *obj, PyObject *type)
{
- if (obj == NULL) {
- Py_INCREF(descr);
- return (PyObject *)descr;
- }
- if (descr_check((PyDescrObject *)descr, obj) < 0) {
- return NULL;
- }
+ if (obj == NULL) {
+ Py_INCREF(descr);
+ return (PyObject *)descr;
+ }
+ if (descr_check((PyDescrObject *)descr, obj) < 0) {
+ return NULL;
+ }
if (descr->d_getset->get != NULL)
return descr->d_getset->get(obj, descr->d_getset->closure);
PyErr_Format(PyExc_AttributeError,
@@ -196,28 +196,28 @@ getset_get(PyGetSetDescrObject *descr, PyObject *obj, PyObject *type)
static PyObject *
wrapperdescr_get(PyWrapperDescrObject *descr, PyObject *obj, PyObject *type)
{
- if (obj == NULL) {
- Py_INCREF(descr);
- return (PyObject *)descr;
- }
- if (descr_check((PyDescrObject *)descr, obj) < 0) {
- return NULL;
- }
+ if (obj == NULL) {
+ Py_INCREF(descr);
+ return (PyObject *)descr;
+ }
+ if (descr_check((PyDescrObject *)descr, obj) < 0) {
+ return NULL;
+ }
return PyWrapper_New((PyObject *)descr, obj);
}
static int
-descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value)
+descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value)
{
assert(obj != NULL);
if (!PyObject_TypeCheck(obj, descr->d_type)) {
PyErr_Format(PyExc_TypeError,
"descriptor '%V' for '%.100s' objects "
- "doesn't apply to a '%.100s' object",
+ "doesn't apply to a '%.100s' object",
descr_name(descr), "?",
descr->d_type->tp_name,
- Py_TYPE(obj)->tp_name);
- return -1;
+ Py_TYPE(obj)->tp_name);
+ return -1;
}
return 0;
}
@@ -225,22 +225,22 @@ descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value)
static int
member_set(PyMemberDescrObject *descr, PyObject *obj, PyObject *value)
{
- if (descr_setcheck((PyDescrObject *)descr, obj, value) < 0) {
- return -1;
- }
+ if (descr_setcheck((PyDescrObject *)descr, obj, value) < 0) {
+ return -1;
+ }
return PyMember_SetOne((char *)obj, descr->d_member, value);
}
static int
getset_set(PyGetSetDescrObject *descr, PyObject *obj, PyObject *value)
{
- if (descr_setcheck((PyDescrObject *)descr, obj, value) < 0) {
- return -1;
- }
- if (descr->d_getset->set != NULL) {
+ if (descr_setcheck((PyDescrObject *)descr, obj, value) < 0) {
+ return -1;
+ }
+ if (descr->d_getset->set != NULL) {
return descr->d_getset->set(obj, value,
descr->d_getset->closure);
- }
+ }
PyErr_Format(PyExc_AttributeError,
"attribute '%V' of '%.100s' objects is not writable",
descr_name((PyDescrObject *)descr), "?",
@@ -248,238 +248,238 @@ getset_set(PyGetSetDescrObject *descr, PyObject *obj, PyObject *value)
return -1;
}
-
-/* Vectorcall functions for each of the PyMethodDescr calling conventions.
- *
- * First, common helpers
- */
-static inline int
-method_check_args(PyObject *func, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+
+/* Vectorcall functions for each of the PyMethodDescr calling conventions.
+ *
+ * First, common helpers
+ */
+static inline int
+method_check_args(PyObject *func, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
- assert(!PyErr_Occurred());
+ assert(!PyErr_Occurred());
if (nargs < 1) {
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- PyErr_Format(PyExc_TypeError,
- "unbound method %U needs an argument", funcstr);
- Py_DECREF(funcstr);
- }
- return -1;
- }
- PyObject *self = args[0];
- if (descr_check((PyDescrObject *)func, self) < 0) {
- return -1;
- }
- if (kwnames && PyTuple_GET_SIZE(kwnames)) {
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- PyErr_Format(PyExc_TypeError,
- "%U takes no keyword arguments", funcstr);
- Py_DECREF(funcstr);
- }
- return -1;
- }
- return 0;
-}
-
-typedef void (*funcptr)(void);
-
-static inline funcptr
-method_enter_call(PyThreadState *tstate, PyObject *func)
-{
- if (_Py_EnterRecursiveCall(tstate, " while calling a Python object")) {
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ PyErr_Format(PyExc_TypeError,
+ "unbound method %U needs an argument", funcstr);
+ Py_DECREF(funcstr);
+ }
+ return -1;
+ }
+ PyObject *self = args[0];
+ if (descr_check((PyDescrObject *)func, self) < 0) {
+ return -1;
+ }
+ if (kwnames && PyTuple_GET_SIZE(kwnames)) {
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ PyErr_Format(PyExc_TypeError,
+ "%U takes no keyword arguments", funcstr);
+ Py_DECREF(funcstr);
+ }
+ return -1;
+ }
+ return 0;
+}
+
+typedef void (*funcptr)(void);
+
+static inline funcptr
+method_enter_call(PyThreadState *tstate, PyObject *func)
+{
+ if (_Py_EnterRecursiveCall(tstate, " while calling a Python object")) {
+ return NULL;
+ }
+ return (funcptr)((PyMethodDescrObject *)func)->d_method->ml_meth;
+}
+
+/* Now the actual vectorcall functions */
+static PyObject *
+method_vectorcall_VARARGS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (method_check_args(func, args, nargs, kwnames)) {
+ return NULL;
+ }
+ PyObject *argstuple = _PyTuple_FromArray(args+1, nargs-1);
+ if (argstuple == NULL) {
+ return NULL;
+ }
+ PyCFunction meth = (PyCFunction)method_enter_call(tstate, func);
+ if (meth == NULL) {
+ Py_DECREF(argstuple);
+ return NULL;
+ }
+ PyObject *result = meth(args[0], argstuple);
+ Py_DECREF(argstuple);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+static PyObject *
+method_vectorcall_VARARGS_KEYWORDS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (method_check_args(func, args, nargs, NULL)) {
+ return NULL;
+ }
+ PyObject *argstuple = _PyTuple_FromArray(args+1, nargs-1);
+ if (argstuple == NULL) {
+ return NULL;
+ }
+ PyObject *result = NULL;
+ /* Create a temporary dict for keyword arguments */
+ PyObject *kwdict = NULL;
+ if (kwnames != NULL && PyTuple_GET_SIZE(kwnames) > 0) {
+ kwdict = _PyStack_AsDict(args + nargs, kwnames);
+ if (kwdict == NULL) {
+ goto exit;
+ }
+ }
+ PyCFunctionWithKeywords meth = (PyCFunctionWithKeywords)
+ method_enter_call(tstate, func);
+ if (meth == NULL) {
+ goto exit;
+ }
+ result = meth(args[0], argstuple, kwdict);
+ _Py_LeaveRecursiveCall(tstate);
+exit:
+ Py_DECREF(argstuple);
+ Py_XDECREF(kwdict);
+ return result;
+}
+
+static PyObject *
+method_vectorcall_FASTCALL_KEYWORDS_METHOD(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (method_check_args(func, args, nargs, NULL)) {
+ return NULL;
+ }
+ PyCMethod meth = (PyCMethod) method_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(args[0],
+ ((PyMethodDescrObject *)func)->d_common.d_type,
+ args+1, nargs-1, kwnames);
+ Py_LeaveRecursiveCall();
+ return result;
+}
+
+static PyObject *
+method_vectorcall_FASTCALL(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (method_check_args(func, args, nargs, kwnames)) {
+ return NULL;
+ }
+ _PyCFunctionFast meth = (_PyCFunctionFast)
+ method_enter_call(tstate, func);
+ if (meth == NULL) {
return NULL;
}
- return (funcptr)((PyMethodDescrObject *)func)->d_method->ml_meth;
-}
-
-/* Now the actual vectorcall functions */
-static PyObject *
-method_vectorcall_VARARGS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (method_check_args(func, args, nargs, kwnames)) {
- return NULL;
- }
- PyObject *argstuple = _PyTuple_FromArray(args+1, nargs-1);
- if (argstuple == NULL) {
- return NULL;
- }
- PyCFunction meth = (PyCFunction)method_enter_call(tstate, func);
- if (meth == NULL) {
- Py_DECREF(argstuple);
- return NULL;
- }
- PyObject *result = meth(args[0], argstuple);
- Py_DECREF(argstuple);
- _Py_LeaveRecursiveCall(tstate);
+ PyObject *result = meth(args[0], args+1, nargs-1);
+ _Py_LeaveRecursiveCall(tstate);
return result;
}
-static PyObject *
-method_vectorcall_VARARGS_KEYWORDS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (method_check_args(func, args, nargs, NULL)) {
- return NULL;
- }
- PyObject *argstuple = _PyTuple_FromArray(args+1, nargs-1);
- if (argstuple == NULL) {
- return NULL;
- }
- PyObject *result = NULL;
- /* Create a temporary dict for keyword arguments */
- PyObject *kwdict = NULL;
- if (kwnames != NULL && PyTuple_GET_SIZE(kwnames) > 0) {
- kwdict = _PyStack_AsDict(args + nargs, kwnames);
- if (kwdict == NULL) {
- goto exit;
- }
- }
- PyCFunctionWithKeywords meth = (PyCFunctionWithKeywords)
- method_enter_call(tstate, func);
- if (meth == NULL) {
- goto exit;
- }
- result = meth(args[0], argstuple, kwdict);
- _Py_LeaveRecursiveCall(tstate);
-exit:
- Py_DECREF(argstuple);
- Py_XDECREF(kwdict);
- return result;
-}
-
-static PyObject *
-method_vectorcall_FASTCALL_KEYWORDS_METHOD(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (method_check_args(func, args, nargs, NULL)) {
- return NULL;
- }
- PyCMethod meth = (PyCMethod) method_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(args[0],
- ((PyMethodDescrObject *)func)->d_common.d_type,
- args+1, nargs-1, kwnames);
- Py_LeaveRecursiveCall();
- return result;
-}
-
-static PyObject *
-method_vectorcall_FASTCALL(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (method_check_args(func, args, nargs, kwnames)) {
- return NULL;
- }
- _PyCFunctionFast meth = (_PyCFunctionFast)
- method_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(args[0], args+1, nargs-1);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-static PyObject *
-method_vectorcall_FASTCALL_KEYWORDS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (method_check_args(func, args, nargs, NULL)) {
- return NULL;
- }
- _PyCFunctionFastWithKeywords meth = (_PyCFunctionFastWithKeywords)
- method_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(args[0], args+1, nargs-1, kwnames);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-static PyObject *
-method_vectorcall_NOARGS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (method_check_args(func, args, nargs, kwnames)) {
- return NULL;
- }
- if (nargs != 1) {
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- PyErr_Format(PyExc_TypeError,
- "%U takes no arguments (%zd given)", funcstr, nargs-1);
- Py_DECREF(funcstr);
- }
+static PyObject *
+method_vectorcall_FASTCALL_KEYWORDS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (method_check_args(func, args, nargs, NULL)) {
return NULL;
}
- PyCFunction meth = (PyCFunction)method_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(args[0], NULL);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-static PyObject *
-method_vectorcall_O(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (method_check_args(func, args, nargs, kwnames)) {
- return NULL;
- }
- if (nargs != 2) {
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- PyErr_Format(PyExc_TypeError,
- "%U takes exactly one argument (%zd given)",
- funcstr, nargs-1);
- Py_DECREF(funcstr);
- }
+ _PyCFunctionFastWithKeywords meth = (_PyCFunctionFastWithKeywords)
+ method_enter_call(tstate, func);
+ if (meth == NULL) {
return NULL;
}
- PyCFunction meth = (PyCFunction)method_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(args[0], args[1]);
- _Py_LeaveRecursiveCall(tstate);
+ PyObject *result = meth(args[0], args+1, nargs-1, kwnames);
+ _Py_LeaveRecursiveCall(tstate);
return result;
}
-
-/* Instances of classmethod_descriptor are unlikely to be called directly.
- For one, the analogous class "classmethod" (for Python classes) is not
- callable. Second, users are not likely to access a classmethod_descriptor
- directly, since it means pulling it from the class __dict__.
-
- This is just an excuse to say that this doesn't need to be optimized:
- we implement this simply by calling __get__ and then calling the result.
-*/
+static PyObject *
+method_vectorcall_NOARGS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (method_check_args(func, args, nargs, kwnames)) {
+ return NULL;
+ }
+ if (nargs != 1) {
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ PyErr_Format(PyExc_TypeError,
+ "%U takes no arguments (%zd given)", funcstr, nargs-1);
+ Py_DECREF(funcstr);
+ }
+ return NULL;
+ }
+ PyCFunction meth = (PyCFunction)method_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(args[0], NULL);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+static PyObject *
+method_vectorcall_O(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (method_check_args(func, args, nargs, kwnames)) {
+ return NULL;
+ }
+ if (nargs != 2) {
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ PyErr_Format(PyExc_TypeError,
+ "%U takes exactly one argument (%zd given)",
+ funcstr, nargs-1);
+ Py_DECREF(funcstr);
+ }
+ return NULL;
+ }
+ PyCFunction meth = (PyCFunction)method_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(args[0], args[1]);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+
+/* Instances of classmethod_descriptor are unlikely to be called directly.
+ For one, the analogous class "classmethod" (for Python classes) is not
+ callable. Second, users are not likely to access a classmethod_descriptor
+ directly, since it means pulling it from the class __dict__.
+
+ This is just an excuse to say that this doesn't need to be optimized:
+ we implement this simply by calling __get__ and then calling the result.
+*/
static PyObject *
classmethoddescr_call(PyMethodDescrObject *descr, PyObject *args,
PyObject *kwds)
{
- Py_ssize_t argc = PyTuple_GET_SIZE(args);
+ Py_ssize_t argc = PyTuple_GET_SIZE(args);
if (argc < 1) {
PyErr_Format(PyExc_TypeError,
"descriptor '%V' of '%.100s' "
@@ -488,15 +488,15 @@ classmethoddescr_call(PyMethodDescrObject *descr, PyObject *args,
PyDescr_TYPE(descr)->tp_name);
return NULL;
}
- PyObject *self = PyTuple_GET_ITEM(args, 0);
- PyObject *bound = classmethod_get(descr, NULL, self);
- if (bound == NULL) {
+ PyObject *self = PyTuple_GET_ITEM(args, 0);
+ PyObject *bound = classmethod_get(descr, NULL, self);
+ if (bound == NULL) {
return NULL;
}
- PyObject *res = PyObject_VectorcallDict(bound, _PyTuple_ITEMS(args)+1,
- argc-1, kwds);
- Py_DECREF(bound);
- return res;
+ PyObject *res = PyObject_VectorcallDict(bound, _PyTuple_ITEMS(args)+1,
+ argc-1, kwds);
+ Py_DECREF(bound);
+ return res;
}
Py_LOCAL_INLINE(PyObject *)
@@ -545,7 +545,7 @@ wrapperdescr_call(PyWrapperDescrObject *descr, PyObject *args, PyObject *kwds)
"but received a '%.100s'",
descr_name((PyDescrObject *)descr), "?",
PyDescr_TYPE(descr)->tp_name,
- Py_TYPE(self)->tp_name);
+ Py_TYPE(self)->tp_name);
return NULL;
}
@@ -610,7 +610,7 @@ descr_get_qualname(PyDescrObject *descr, void *Py_UNUSED(ignored))
}
static PyObject *
-descr_reduce(PyDescrObject *descr, PyObject *Py_UNUSED(ignored))
+descr_reduce(PyDescrObject *descr, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("N(OO)", _PyEval_GetBuiltinId(&PyId_getattr),
PyDescr_TYPE(descr), PyDescr_NAME(descr));
@@ -697,23 +697,23 @@ PyTypeObject PyMethodDescr_Type = {
sizeof(PyMethodDescrObject),
0,
(destructor)descr_dealloc, /* tp_dealloc */
- offsetof(PyMethodDescrObject, vectorcall), /* tp_vectorcall_offset */
+ offsetof(PyMethodDescrObject, vectorcall), /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)method_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
- PyVectorcall_Call, /* tp_call */
+ PyVectorcall_Call, /* tp_call */
0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_HAVE_VECTORCALL |
- Py_TPFLAGS_METHOD_DESCRIPTOR, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
+ Py_TPFLAGS_HAVE_VECTORCALL |
+ Py_TPFLAGS_METHOD_DESCRIPTOR, /* tp_flags */
0, /* tp_doc */
descr_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -737,10 +737,10 @@ PyTypeObject PyClassMethodDescr_Type = {
sizeof(PyMethodDescrObject),
0,
(destructor)descr_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)method_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -774,10 +774,10 @@ PyTypeObject PyMemberDescr_Type = {
sizeof(PyMemberDescrObject),
0,
(destructor)descr_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)member_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -811,10 +811,10 @@ PyTypeObject PyGetSetDescr_Type = {
sizeof(PyGetSetDescrObject),
0,
(destructor)descr_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)getset_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -848,10 +848,10 @@ PyTypeObject PyWrapperDescr_Type = {
sizeof(PyWrapperDescrObject),
0,
(destructor)descr_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)wrapperdescr_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -862,8 +862,8 @@ PyTypeObject PyWrapperDescr_Type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_METHOD_DESCRIPTOR, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
+ Py_TPFLAGS_METHOD_DESCRIPTOR, /* tp_flags */
0, /* tp_doc */
descr_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -904,46 +904,46 @@ descr_new(PyTypeObject *descrtype, PyTypeObject *type, const char *name)
PyObject *
PyDescr_NewMethod(PyTypeObject *type, PyMethodDef *method)
{
- /* Figure out correct vectorcall function to use */
- vectorcallfunc vectorcall;
- switch (method->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS |
- METH_O | METH_KEYWORDS | METH_METHOD))
- {
- case METH_VARARGS:
- vectorcall = method_vectorcall_VARARGS;
- break;
- case METH_VARARGS | METH_KEYWORDS:
- vectorcall = method_vectorcall_VARARGS_KEYWORDS;
- break;
- case METH_FASTCALL:
- vectorcall = method_vectorcall_FASTCALL;
- break;
- case METH_FASTCALL | METH_KEYWORDS:
- vectorcall = method_vectorcall_FASTCALL_KEYWORDS;
- break;
- case METH_NOARGS:
- vectorcall = method_vectorcall_NOARGS;
- break;
- case METH_O:
- vectorcall = method_vectorcall_O;
- break;
- case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
- vectorcall = method_vectorcall_FASTCALL_KEYWORDS_METHOD;
- break;
- default:
- PyErr_Format(PyExc_SystemError,
- "%s() method: bad call flags", method->ml_name);
- return NULL;
- }
-
+ /* Figure out correct vectorcall function to use */
+ vectorcallfunc vectorcall;
+ switch (method->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS |
+ METH_O | METH_KEYWORDS | METH_METHOD))
+ {
+ case METH_VARARGS:
+ vectorcall = method_vectorcall_VARARGS;
+ break;
+ case METH_VARARGS | METH_KEYWORDS:
+ vectorcall = method_vectorcall_VARARGS_KEYWORDS;
+ break;
+ case METH_FASTCALL:
+ vectorcall = method_vectorcall_FASTCALL;
+ break;
+ case METH_FASTCALL | METH_KEYWORDS:
+ vectorcall = method_vectorcall_FASTCALL_KEYWORDS;
+ break;
+ case METH_NOARGS:
+ vectorcall = method_vectorcall_NOARGS;
+ break;
+ case METH_O:
+ vectorcall = method_vectorcall_O;
+ break;
+ case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
+ vectorcall = method_vectorcall_FASTCALL_KEYWORDS_METHOD;
+ break;
+ default:
+ PyErr_Format(PyExc_SystemError,
+ "%s() method: bad call flags", method->ml_name);
+ return NULL;
+ }
+
PyMethodDescrObject *descr;
descr = (PyMethodDescrObject *)descr_new(&PyMethodDescr_Type,
type, method->ml_name);
- if (descr != NULL) {
+ if (descr != NULL) {
descr->d_method = method;
- descr->vectorcall = vectorcall;
- }
+ descr->vectorcall = vectorcall;
+ }
return (PyObject *)descr;
}
@@ -1026,30 +1026,30 @@ static PyMappingMethods mappingproxy_as_mapping = {
0, /* mp_ass_subscript */
};
-static PyObject *
-mappingproxy_or(PyObject *left, PyObject *right)
-{
- if (PyObject_TypeCheck(left, &PyDictProxy_Type)) {
- left = ((mappingproxyobject*)left)->mapping;
- }
- if (PyObject_TypeCheck(right, &PyDictProxy_Type)) {
- right = ((mappingproxyobject*)right)->mapping;
- }
- return PyNumber_Or(left, right);
-}
-
-static PyObject *
-mappingproxy_ior(PyObject *self, PyObject *Py_UNUSED(other))
-{
- return PyErr_Format(PyExc_TypeError,
- "'|=' is not supported by %s; use '|' instead", Py_TYPE(self)->tp_name);
-}
-
-static PyNumberMethods mappingproxy_as_number = {
- .nb_or = mappingproxy_or,
- .nb_inplace_or = mappingproxy_ior,
-};
-
+static PyObject *
+mappingproxy_or(PyObject *left, PyObject *right)
+{
+ if (PyObject_TypeCheck(left, &PyDictProxy_Type)) {
+ left = ((mappingproxyobject*)left)->mapping;
+ }
+ if (PyObject_TypeCheck(right, &PyDictProxy_Type)) {
+ right = ((mappingproxyobject*)right)->mapping;
+ }
+ return PyNumber_Or(left, right);
+}
+
+static PyObject *
+mappingproxy_ior(PyObject *self, PyObject *Py_UNUSED(other))
+{
+ return PyErr_Format(PyExc_TypeError,
+ "'|=' is not supported by %s; use '|' instead", Py_TYPE(self)->tp_name);
+}
+
+static PyNumberMethods mappingproxy_as_number = {
+ .nb_or = mappingproxy_or,
+ .nb_inplace_or = mappingproxy_ior,
+};
+
static int
mappingproxy_contains(mappingproxyobject *pp, PyObject *key)
{
@@ -1073,64 +1073,64 @@ static PySequenceMethods mappingproxy_as_sequence = {
};
static PyObject *
-mappingproxy_get(mappingproxyobject *pp, PyObject *const *args, Py_ssize_t nargs)
+mappingproxy_get(mappingproxyobject *pp, PyObject *const *args, Py_ssize_t nargs)
{
- /* newargs: mapping, key, default=None */
- PyObject *newargs[3];
- newargs[0] = pp->mapping;
- newargs[2] = Py_None;
+ /* newargs: mapping, key, default=None */
+ PyObject *newargs[3];
+ newargs[0] = pp->mapping;
+ newargs[2] = Py_None;
- if (!_PyArg_UnpackStack(args, nargs, "get", 1, 2,
- &newargs[1], &newargs[2]))
- {
+ if (!_PyArg_UnpackStack(args, nargs, "get", 1, 2,
+ &newargs[1], &newargs[2]))
+ {
return NULL;
- }
- _Py_IDENTIFIER(get);
- return _PyObject_VectorcallMethodId(&PyId_get, newargs,
- 3 | PY_VECTORCALL_ARGUMENTS_OFFSET,
- NULL);
+ }
+ _Py_IDENTIFIER(get);
+ return _PyObject_VectorcallMethodId(&PyId_get, newargs,
+ 3 | PY_VECTORCALL_ARGUMENTS_OFFSET,
+ NULL);
}
static PyObject *
-mappingproxy_keys(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
+mappingproxy_keys(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(keys);
- return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_keys);
+ return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_keys);
}
static PyObject *
-mappingproxy_values(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
+mappingproxy_values(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(values);
- return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_values);
+ return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_values);
}
static PyObject *
-mappingproxy_items(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
+mappingproxy_items(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(items);
- return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_items);
+ return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_items);
}
static PyObject *
-mappingproxy_copy(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
+mappingproxy_copy(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(copy);
- return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_copy);
+ return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_copy);
+}
+
+static PyObject *
+mappingproxy_reversed(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
+{
+ _Py_IDENTIFIER(__reversed__);
+ return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId___reversed__);
}
-static PyObject *
-mappingproxy_reversed(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
-{
- _Py_IDENTIFIER(__reversed__);
- return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId___reversed__);
-}
-
/* WARNING: mappingproxy methods must not give access
to the underlying mapping */
static PyMethodDef mappingproxy_methods[] = {
- {"get", (PyCFunction)(void(*)(void))mappingproxy_get, METH_FASTCALL,
+ {"get", (PyCFunction)(void(*)(void))mappingproxy_get, METH_FASTCALL,
PyDoc_STR("D.get(k[,d]) -> D[k] if k in D, else d."
" d defaults to None.")},
{"keys", (PyCFunction)mappingproxy_keys, METH_NOARGS,
@@ -1141,10 +1141,10 @@ static PyMethodDef mappingproxy_methods[] = {
PyDoc_STR("D.items() -> list of D's (key, value) pairs, as 2-tuples")},
{"copy", (PyCFunction)mappingproxy_copy, METH_NOARGS,
PyDoc_STR("D.copy() -> a shallow copy of D")},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
- PyDoc_STR("See PEP 585")},
- {"__reversed__", (PyCFunction)mappingproxy_reversed, METH_NOARGS,
- PyDoc_STR("D.__reversed__() -> reverse iterator")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS,
+ PyDoc_STR("See PEP 585")},
+ {"__reversed__", (PyCFunction)mappingproxy_reversed, METH_NOARGS,
+ PyDoc_STR("D.__reversed__() -> reverse iterator")},
{0}
};
@@ -1257,51 +1257,51 @@ typedef struct {
PyObject *self;
} wrapperobject;
-#define Wrapper_Check(v) Py_IS_TYPE(v, &_PyMethodWrapper_Type)
+#define Wrapper_Check(v) Py_IS_TYPE(v, &_PyMethodWrapper_Type)
static void
wrapper_dealloc(wrapperobject *wp)
{
PyObject_GC_UnTrack(wp);
- Py_TRASHCAN_BEGIN(wp, wrapper_dealloc)
+ Py_TRASHCAN_BEGIN(wp, wrapper_dealloc)
Py_XDECREF(wp->descr);
Py_XDECREF(wp->self);
PyObject_GC_Del(wp);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
static PyObject *
wrapper_richcompare(PyObject *a, PyObject *b, int op)
{
- wrapperobject *wa, *wb;
- int eq;
+ wrapperobject *wa, *wb;
+ int eq;
assert(a != NULL && b != NULL);
/* both arguments should be wrapperobjects */
- if ((op != Py_EQ && op != Py_NE)
- || !Wrapper_Check(a) || !Wrapper_Check(b))
- {
+ if ((op != Py_EQ && op != Py_NE)
+ || !Wrapper_Check(a) || !Wrapper_Check(b))
+ {
Py_RETURN_NOTIMPLEMENTED;
}
- wa = (wrapperobject *)a;
- wb = (wrapperobject *)b;
- eq = (wa->descr == wb->descr && wa->self == wb->self);
- if (eq == (op == Py_EQ)) {
- Py_RETURN_TRUE;
+ wa = (wrapperobject *)a;
+ wb = (wrapperobject *)b;
+ eq = (wa->descr == wb->descr && wa->self == wb->self);
+ if (eq == (op == Py_EQ)) {
+ Py_RETURN_TRUE;
+ }
+ else {
+ Py_RETURN_FALSE;
}
- else {
- Py_RETURN_FALSE;
- }
}
static Py_hash_t
wrapper_hash(wrapperobject *wp)
{
Py_hash_t x, y;
- x = _Py_HashPointer(wp->self);
- y = _Py_HashPointer(wp->descr);
+ x = _Py_HashPointer(wp->self);
+ y = _Py_HashPointer(wp->descr);
x = x ^ y;
if (x == -1)
x = -2;
@@ -1313,12 +1313,12 @@ wrapper_repr(wrapperobject *wp)
{
return PyUnicode_FromFormat("<method-wrapper '%s' of %s object at %p>",
wp->descr->d_base->name,
- Py_TYPE(wp->self)->tp_name,
+ Py_TYPE(wp->self)->tp_name,
wp->self);
}
static PyObject *
-wrapper_reduce(wrapperobject *wp, PyObject *Py_UNUSED(ignored))
+wrapper_reduce(wrapperobject *wp, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("N(OO)", _PyEval_GetBuiltinId(&PyId_getattr),
wp->self, PyDescr_NAME(wp->descr));
@@ -1400,10 +1400,10 @@ PyTypeObject _PyMethodWrapper_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)wrapper_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)wrapper_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1555,7 +1555,7 @@ property_dealloc(PyObject *self)
Py_XDECREF(gs->prop_set);
Py_XDECREF(gs->prop_del);
Py_XDECREF(gs->prop_doc);
- Py_TYPE(self)->tp_free(self);
+ Py_TYPE(self)->tp_free(self);
}
static PyObject *
@@ -1565,14 +1565,14 @@ property_descr_get(PyObject *self, PyObject *obj, PyObject *type)
Py_INCREF(self);
return self;
}
-
- propertyobject *gs = (propertyobject *)self;
+
+ propertyobject *gs = (propertyobject *)self;
if (gs->prop_get == NULL) {
PyErr_SetString(PyExc_AttributeError, "unreadable attribute");
return NULL;
}
-
- return PyObject_CallOneArg(gs->prop_get, obj);
+
+ return PyObject_CallOneArg(gs->prop_get, obj);
}
static int
@@ -1593,7 +1593,7 @@ property_descr_set(PyObject *self, PyObject *obj, PyObject *value)
return -1;
}
if (value == NULL)
- res = PyObject_CallOneArg(func, obj);
+ res = PyObject_CallOneArg(func, obj);
else
res = PyObject_CallFunctionObjArgs(func, obj, value, NULL);
if (res == NULL)
@@ -1702,25 +1702,25 @@ property_init_impl(propertyobject *self, PyObject *fget, PyObject *fset,
/* if no docstring given and the getter has one, use that one */
if ((doc == NULL || doc == Py_None) && fget != NULL) {
_Py_IDENTIFIER(__doc__);
- PyObject *get_doc;
- int rc = _PyObject_LookupAttrId(fget, &PyId___doc__, &get_doc);
- if (rc <= 0) {
- return rc;
+ PyObject *get_doc;
+ int rc = _PyObject_LookupAttrId(fget, &PyId___doc__, &get_doc);
+ if (rc <= 0) {
+ return rc;
}
- if (Py_IS_TYPE(self, &PyProperty_Type)) {
- Py_XSETREF(self->prop_doc, get_doc);
+ if (Py_IS_TYPE(self, &PyProperty_Type)) {
+ Py_XSETREF(self->prop_doc, get_doc);
}
else {
- /* If this is a property subclass, put __doc__
- in dict of the subclass instance instead,
- otherwise it gets shadowed by __doc__ in the
- class's dict. */
- int err = _PyObject_SetAttrId((PyObject *)self, &PyId___doc__, get_doc);
- Py_DECREF(get_doc);
- if (err < 0)
- return -1;
+ /* If this is a property subclass, put __doc__
+ in dict of the subclass instance instead,
+ otherwise it gets shadowed by __doc__ in the
+ class's dict. */
+ int err = _PyObject_SetAttrId((PyObject *)self, &PyId___doc__, get_doc);
+ Py_DECREF(get_doc);
+ if (err < 0)
+ return -1;
}
- self->getter_doc = 1;
+ self->getter_doc = 1;
}
return 0;
@@ -1791,12 +1791,12 @@ PyTypeObject PyDictProxy_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)mappingproxy_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)mappingproxy_repr, /* tp_repr */
- &mappingproxy_as_number, /* tp_as_number */
+ &mappingproxy_as_number, /* tp_as_number */
&mappingproxy_as_sequence, /* tp_as_sequence */
&mappingproxy_as_mapping, /* tp_as_mapping */
0, /* tp_hash */
@@ -1833,10 +1833,10 @@ PyTypeObject PyProperty_Type = {
0, /* tp_itemsize */
/* methods */
property_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/dictobject.c b/contrib/tools/python3/src/Objects/dictobject.c
index fffe808bde..2ae122d323 100644
--- a/contrib/tools/python3/src/Objects/dictobject.c
+++ b/contrib/tools/python3/src/Objects/dictobject.c
@@ -39,7 +39,7 @@ Size of indices is dk_size. Type of each index in indices is vary on dk_size:
* int32 for 2**16 <= dk_size <= 2**31
* int64 for 2**32 <= dk_size
-dk_entries is array of PyDictKeyEntry. Its size is USABLE_FRACTION(dk_size).
+dk_entries is array of PyDictKeyEntry. Its size is USABLE_FRACTION(dk_size).
DK_ENTRIES(dk) can be used to get pointer to entries.
NOTE: Since negative value is used for DKIX_EMPTY and DKIX_DUMMY, type of
@@ -111,11 +111,11 @@ converting the dict to the combined table.
#define PyDict_MINSIZE 8
#include "Python.h"
-#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
-#include "pycore_object.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
+#include "pycore_object.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include "dict-common.h"
-#include "stringlib/eq.h" // unicode_eq()
+#include "stringlib/eq.h" // unicode_eq()
/*[clinic input]
class dict "PyDictObject *" "&PyDict_Type"
@@ -250,46 +250,46 @@ static uint64_t pydict_global_version = 0;
#ifndef PyDict_MAXFREELIST
#define PyDict_MAXFREELIST 80
#endif
-
-#if PyDict_MAXFREELIST > 0
+
+#if PyDict_MAXFREELIST > 0
static PyDictObject *free_list[PyDict_MAXFREELIST];
static int numfree = 0;
static PyDictKeysObject *keys_free_list[PyDict_MAXFREELIST];
static int numfreekeys = 0;
-#endif
+#endif
#include "clinic/dictobject.c.h"
-void
-_PyDict_ClearFreeList(void)
+void
+_PyDict_ClearFreeList(void)
{
-#if PyDict_MAXFREELIST > 0
+#if PyDict_MAXFREELIST > 0
while (numfree) {
- PyDictObject *op = free_list[--numfree];
+ PyDictObject *op = free_list[--numfree];
assert(PyDict_CheckExact(op));
PyObject_GC_Del(op);
}
while (numfreekeys) {
PyObject_FREE(keys_free_list[--numfreekeys]);
}
-#endif
+#endif
}
/* Print summary info about the state of the optimized allocator */
void
_PyDict_DebugMallocStats(FILE *out)
{
-#if PyDict_MAXFREELIST > 0
+#if PyDict_MAXFREELIST > 0
_PyDebugAllocatorStats(out,
"free PyDictObject", numfree, sizeof(PyDictObject));
-#endif
+#endif
}
void
-_PyDict_Fini(void)
+_PyDict_Fini(void)
{
- _PyDict_ClearFreeList();
+ _PyDict_ClearFreeList();
}
#define DK_SIZE(dk) ((dk)->dk_size)
@@ -311,52 +311,52 @@ _PyDict_Fini(void)
#define DK_MASK(dk) (((dk)->dk_size)-1)
#define IS_POWER_OF_2(x) (((x) & (x-1)) == 0)
-static void free_keys_object(PyDictKeysObject *keys);
-
-static inline void
-dictkeys_incref(PyDictKeysObject *dk)
-{
-#ifdef Py_REF_DEBUG
- _Py_RefTotal++;
-#endif
- dk->dk_refcnt++;
-}
-
-static inline void
-dictkeys_decref(PyDictKeysObject *dk)
-{
- assert(dk->dk_refcnt > 0);
-#ifdef Py_REF_DEBUG
- _Py_RefTotal--;
-#endif
- if (--dk->dk_refcnt == 0) {
- free_keys_object(dk);
- }
-}
-
+static void free_keys_object(PyDictKeysObject *keys);
+
+static inline void
+dictkeys_incref(PyDictKeysObject *dk)
+{
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal++;
+#endif
+ dk->dk_refcnt++;
+}
+
+static inline void
+dictkeys_decref(PyDictKeysObject *dk)
+{
+ assert(dk->dk_refcnt > 0);
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal--;
+#endif
+ if (--dk->dk_refcnt == 0) {
+ free_keys_object(dk);
+ }
+}
+
/* lookup indices. returns DKIX_EMPTY, DKIX_DUMMY, or ix >=0 */
static inline Py_ssize_t
-dictkeys_get_index(const PyDictKeysObject *keys, Py_ssize_t i)
+dictkeys_get_index(const PyDictKeysObject *keys, Py_ssize_t i)
{
Py_ssize_t s = DK_SIZE(keys);
Py_ssize_t ix;
if (s <= 0xff) {
- const int8_t *indices = (const int8_t*)(keys->dk_indices);
+ const int8_t *indices = (const int8_t*)(keys->dk_indices);
ix = indices[i];
}
else if (s <= 0xffff) {
- const int16_t *indices = (const int16_t*)(keys->dk_indices);
+ const int16_t *indices = (const int16_t*)(keys->dk_indices);
ix = indices[i];
}
#if SIZEOF_VOID_P > 4
else if (s > 0xffffffff) {
- const int64_t *indices = (const int64_t*)(keys->dk_indices);
+ const int64_t *indices = (const int64_t*)(keys->dk_indices);
ix = indices[i];
}
#endif
else {
- const int32_t *indices = (const int32_t*)(keys->dk_indices);
+ const int32_t *indices = (const int32_t*)(keys->dk_indices);
ix = indices[i];
}
assert(ix >= DKIX_DUMMY);
@@ -365,7 +365,7 @@ dictkeys_get_index(const PyDictKeysObject *keys, Py_ssize_t i)
/* write to indices. */
static inline void
-dictkeys_set_index(PyDictKeysObject *keys, Py_ssize_t i, Py_ssize_t ix)
+dictkeys_set_index(PyDictKeysObject *keys, Py_ssize_t i, Py_ssize_t ix)
{
Py_ssize_t s = DK_SIZE(keys);
@@ -458,81 +458,81 @@ static PyObject *empty_values[1] = { NULL };
/* Uncomment to check the dict content in _PyDict_CheckConsistency() */
/* #define DEBUG_PYDICT */
-#ifdef DEBUG_PYDICT
-# define ASSERT_CONSISTENT(op) assert(_PyDict_CheckConsistency((PyObject *)(op), 1))
-#else
-# define ASSERT_CONSISTENT(op) assert(_PyDict_CheckConsistency((PyObject *)(op), 0))
-#endif
-
-
-int
-_PyDict_CheckConsistency(PyObject *op, int check_content)
-{
-#define CHECK(expr) \
- do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG(op, Py_STRINGIFY(expr)); } } while (0)
-
- assert(op != NULL);
- CHECK(PyDict_Check(op));
- PyDictObject *mp = (PyDictObject *)op;
-
+#ifdef DEBUG_PYDICT
+# define ASSERT_CONSISTENT(op) assert(_PyDict_CheckConsistency((PyObject *)(op), 1))
+#else
+# define ASSERT_CONSISTENT(op) assert(_PyDict_CheckConsistency((PyObject *)(op), 0))
+#endif
+
+
+int
+_PyDict_CheckConsistency(PyObject *op, int check_content)
+{
+#define CHECK(expr) \
+ do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG(op, Py_STRINGIFY(expr)); } } while (0)
+
+ assert(op != NULL);
+ CHECK(PyDict_Check(op));
+ PyDictObject *mp = (PyDictObject *)op;
+
PyDictKeysObject *keys = mp->ma_keys;
int splitted = _PyDict_HasSplitTable(mp);
Py_ssize_t usable = USABLE_FRACTION(keys->dk_size);
- CHECK(0 <= mp->ma_used && mp->ma_used <= usable);
- CHECK(IS_POWER_OF_2(keys->dk_size));
- CHECK(0 <= keys->dk_usable && keys->dk_usable <= usable);
- CHECK(0 <= keys->dk_nentries && keys->dk_nentries <= usable);
- CHECK(keys->dk_usable + keys->dk_nentries <= usable);
+ CHECK(0 <= mp->ma_used && mp->ma_used <= usable);
+ CHECK(IS_POWER_OF_2(keys->dk_size));
+ CHECK(0 <= keys->dk_usable && keys->dk_usable <= usable);
+ CHECK(0 <= keys->dk_nentries && keys->dk_nentries <= usable);
+ CHECK(keys->dk_usable + keys->dk_nentries <= usable);
if (!splitted) {
/* combined table */
- CHECK(keys->dk_refcnt == 1);
- }
-
- if (check_content) {
- PyDictKeyEntry *entries = DK_ENTRIES(keys);
- Py_ssize_t i;
-
- for (i=0; i < keys->dk_size; i++) {
- Py_ssize_t ix = dictkeys_get_index(keys, i);
- CHECK(DKIX_DUMMY <= ix && ix <= usable);
- }
-
- for (i=0; i < usable; i++) {
- PyDictKeyEntry *entry = &entries[i];
- PyObject *key = entry->me_key;
-
- if (key != NULL) {
- if (PyUnicode_CheckExact(key)) {
- Py_hash_t hash = ((PyASCIIObject *)key)->hash;
- CHECK(hash != -1);
- CHECK(entry->me_hash == hash);
- }
- else {
- /* test_dict fails if PyObject_Hash() is called again */
- CHECK(entry->me_hash != -1);
- }
- if (!splitted) {
- CHECK(entry->me_value != NULL);
- }
+ CHECK(keys->dk_refcnt == 1);
+ }
+
+ if (check_content) {
+ PyDictKeyEntry *entries = DK_ENTRIES(keys);
+ Py_ssize_t i;
+
+ for (i=0; i < keys->dk_size; i++) {
+ Py_ssize_t ix = dictkeys_get_index(keys, i);
+ CHECK(DKIX_DUMMY <= ix && ix <= usable);
+ }
+
+ for (i=0; i < usable; i++) {
+ PyDictKeyEntry *entry = &entries[i];
+ PyObject *key = entry->me_key;
+
+ if (key != NULL) {
+ if (PyUnicode_CheckExact(key)) {
+ Py_hash_t hash = ((PyASCIIObject *)key)->hash;
+ CHECK(hash != -1);
+ CHECK(entry->me_hash == hash);
+ }
+ else {
+ /* test_dict fails if PyObject_Hash() is called again */
+ CHECK(entry->me_hash != -1);
+ }
+ if (!splitted) {
+ CHECK(entry->me_value != NULL);
+ }
}
-
- if (splitted) {
- CHECK(entry->me_value == NULL);
+
+ if (splitted) {
+ CHECK(entry->me_value == NULL);
}
}
if (splitted) {
- /* splitted table */
- for (i=0; i < mp->ma_used; i++) {
- CHECK(mp->ma_values[i] != NULL);
- }
+ /* splitted table */
+ for (i=0; i < mp->ma_used; i++) {
+ CHECK(mp->ma_values[i] != NULL);
+ }
}
}
- return 1;
+ return 1;
-#undef CHECK
+#undef CHECK
}
@@ -560,13 +560,13 @@ static PyDictKeysObject *new_keys_object(Py_ssize_t size)
es = sizeof(Py_ssize_t);
}
-#if PyDict_MAXFREELIST > 0
+#if PyDict_MAXFREELIST > 0
if (size == PyDict_MINSIZE && numfreekeys > 0) {
dk = keys_free_list[--numfreekeys];
}
- else
-#endif
- {
+ else
+#endif
+ {
dk = PyObject_MALLOC(sizeof(PyDictKeysObject)
+ es * size
+ sizeof(PyDictKeyEntry) * usable);
@@ -575,10 +575,10 @@ static PyDictKeysObject *new_keys_object(Py_ssize_t size)
return NULL;
}
}
-#ifdef Py_REF_DEBUG
- _Py_RefTotal++;
-#endif
- dk->dk_refcnt = 1;
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal++;
+#endif
+ dk->dk_refcnt = 1;
dk->dk_size = size;
dk->dk_usable = usable;
dk->dk_lookup = lookdict_unicode_nodummy;
@@ -597,12 +597,12 @@ free_keys_object(PyDictKeysObject *keys)
Py_XDECREF(entries[i].me_key);
Py_XDECREF(entries[i].me_value);
}
-#if PyDict_MAXFREELIST > 0
+#if PyDict_MAXFREELIST > 0
if (keys->dk_size == PyDict_MINSIZE && numfreekeys < PyDict_MAXFREELIST) {
keys_free_list[numfreekeys++] = keys;
return;
}
-#endif
+#endif
PyObject_FREE(keys);
}
@@ -615,22 +615,22 @@ new_dict(PyDictKeysObject *keys, PyObject **values)
{
PyDictObject *mp;
assert(keys != NULL);
-#if PyDict_MAXFREELIST > 0
+#if PyDict_MAXFREELIST > 0
if (numfree) {
mp = free_list[--numfree];
assert (mp != NULL);
- assert (Py_IS_TYPE(mp, &PyDict_Type));
+ assert (Py_IS_TYPE(mp, &PyDict_Type));
_Py_NewReference((PyObject *)mp);
}
- else
-#endif
- {
+ else
+#endif
+ {
mp = PyObject_GC_New(PyDictObject, &PyDict_Type);
if (mp == NULL) {
- dictkeys_decref(keys);
- if (values != empty_values) {
- free_values(values);
- }
+ dictkeys_decref(keys);
+ if (values != empty_values) {
+ free_values(values);
+ }
return NULL;
}
}
@@ -638,7 +638,7 @@ new_dict(PyDictKeysObject *keys, PyObject **values)
mp->ma_values = values;
mp->ma_used = 0;
mp->ma_version_tag = DICT_NEXT_VERSION();
- ASSERT_CONSISTENT(mp);
+ ASSERT_CONSISTENT(mp);
return (PyObject *)mp;
}
@@ -652,7 +652,7 @@ new_dict_with_shared_keys(PyDictKeysObject *keys)
size = USABLE_FRACTION(DK_SIZE(keys));
values = new_values(size);
if (values == NULL) {
- dictkeys_decref(keys);
+ dictkeys_decref(keys);
return PyErr_NoMemory();
}
for (i = 0; i < size; i++) {
@@ -699,19 +699,19 @@ clone_combined_dict(PyDictObject *orig)
return NULL;
}
new->ma_used = orig->ma_used;
- ASSERT_CONSISTENT(new);
+ ASSERT_CONSISTENT(new);
if (_PyObject_GC_IS_TRACKED(orig)) {
/* Maintain tracking. */
_PyObject_GC_TRACK(new);
}
/* Since we copied the keys table we now have an extra reference
- in the system. Manually call increment _Py_RefTotal to signal that
- we have it now; calling dictkeys_incref would be an error as
+ in the system. Manually call increment _Py_RefTotal to signal that
+ we have it now; calling dictkeys_incref would be an error as
keys->dk_refcnt is already set to 1 (after memcpy). */
-#ifdef Py_REF_DEBUG
- _Py_RefTotal++;
-#endif
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal++;
+#endif
return (PyObject *)new;
}
@@ -719,8 +719,8 @@ clone_combined_dict(PyDictObject *orig)
PyObject *
PyDict_New(void)
{
- dictkeys_incref(Py_EMPTY_KEYS);
- return new_dict(Py_EMPTY_KEYS, empty_values);
+ dictkeys_incref(Py_EMPTY_KEYS);
+ return new_dict(Py_EMPTY_KEYS, empty_values);
}
/* Search index of hash table from offset of entry table */
@@ -732,7 +732,7 @@ lookdict_index(PyDictKeysObject *k, Py_hash_t hash, Py_ssize_t index)
size_t i = (size_t)hash & mask;
for (;;) {
- Py_ssize_t ix = dictkeys_get_index(k, i);
+ Py_ssize_t ix = dictkeys_get_index(k, i);
if (ix == index) {
return i;
}
@@ -785,7 +785,7 @@ top:
i = (size_t)hash & mask;
for (;;) {
- Py_ssize_t ix = dictkeys_get_index(dk, i);
+ Py_ssize_t ix = dictkeys_get_index(dk, i);
if (ix == DKIX_EMPTY) {
*value_addr = NULL;
return ix;
@@ -845,7 +845,7 @@ lookdict_unicode(PyDictObject *mp, PyObject *key,
size_t i = (size_t)hash & mask;
for (;;) {
- Py_ssize_t ix = dictkeys_get_index(mp->ma_keys, i);
+ Py_ssize_t ix = dictkeys_get_index(mp->ma_keys, i);
if (ix == DKIX_EMPTY) {
*value_addr = NULL;
return DKIX_EMPTY;
@@ -888,7 +888,7 @@ lookdict_unicode_nodummy(PyDictObject *mp, PyObject *key,
size_t i = (size_t)hash & mask;
for (;;) {
- Py_ssize_t ix = dictkeys_get_index(mp->ma_keys, i);
+ Py_ssize_t ix = dictkeys_get_index(mp->ma_keys, i);
assert (ix != DKIX_DUMMY);
if (ix == DKIX_EMPTY) {
*value_addr = NULL;
@@ -933,7 +933,7 @@ lookdict_split(PyDictObject *mp, PyObject *key,
size_t i = (size_t)hash & mask;
for (;;) {
- Py_ssize_t ix = dictkeys_get_index(mp->ma_keys, i);
+ Py_ssize_t ix = dictkeys_get_index(mp->ma_keys, i);
assert (ix != DKIX_DUMMY);
if (ix == DKIX_EMPTY) {
*value_addr = NULL;
@@ -1025,11 +1025,11 @@ find_empty_slot(PyDictKeysObject *keys, Py_hash_t hash)
const size_t mask = DK_MASK(keys);
size_t i = hash & mask;
- Py_ssize_t ix = dictkeys_get_index(keys, i);
+ Py_ssize_t ix = dictkeys_get_index(keys, i);
for (size_t perturb = hash; ix >= 0;) {
perturb >>= PERTURB_SHIFT;
i = (i*5 + perturb + 1) & mask;
- ix = dictkeys_get_index(keys, i);
+ ix = dictkeys_get_index(keys, i);
}
return i;
}
@@ -1086,7 +1086,7 @@ insertdict(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject *value)
}
Py_ssize_t hashpos = find_empty_slot(mp->ma_keys, hash);
ep = &DK_ENTRIES(mp->ma_keys)[mp->ma_keys->dk_nentries];
- dictkeys_set_index(mp->ma_keys, hashpos, mp->ma_keys->dk_nentries);
+ dictkeys_set_index(mp->ma_keys, hashpos, mp->ma_keys->dk_nentries);
ep->me_key = key;
ep->me_hash = hash;
if (mp->ma_values) {
@@ -1101,27 +1101,27 @@ insertdict(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject *value)
mp->ma_keys->dk_usable--;
mp->ma_keys->dk_nentries++;
assert(mp->ma_keys->dk_usable >= 0);
- ASSERT_CONSISTENT(mp);
+ ASSERT_CONSISTENT(mp);
return 0;
}
- if (old_value != value) {
- if (_PyDict_HasSplitTable(mp)) {
- mp->ma_values[ix] = value;
- if (old_value == NULL) {
- /* pending state */
- assert(ix == mp->ma_used);
- mp->ma_used++;
- }
+ if (old_value != value) {
+ if (_PyDict_HasSplitTable(mp)) {
+ mp->ma_values[ix] = value;
+ if (old_value == NULL) {
+ /* pending state */
+ assert(ix == mp->ma_used);
+ mp->ma_used++;
+ }
+ }
+ else {
+ assert(old_value != NULL);
+ DK_ENTRIES(mp->ma_keys)[ix].me_value = value;
}
- else {
- assert(old_value != NULL);
- DK_ENTRIES(mp->ma_keys)[ix].me_value = value;
- }
- mp->ma_version_tag = DICT_NEXT_VERSION();
+ mp->ma_version_tag = DICT_NEXT_VERSION();
}
Py_XDECREF(old_value); /* which **CAN** re-enter (see issue #22653) */
- ASSERT_CONSISTENT(mp);
+ ASSERT_CONSISTENT(mp);
Py_DECREF(key);
return 0;
@@ -1131,41 +1131,41 @@ Fail:
return -1;
}
-// Same to insertdict but specialized for ma_keys = Py_EMPTY_KEYS.
-static int
-insert_to_emptydict(PyDictObject *mp, PyObject *key, Py_hash_t hash,
- PyObject *value)
-{
- assert(mp->ma_keys == Py_EMPTY_KEYS);
-
- PyDictKeysObject *newkeys = new_keys_object(PyDict_MINSIZE);
- if (newkeys == NULL) {
- return -1;
- }
- if (!PyUnicode_CheckExact(key)) {
- newkeys->dk_lookup = lookdict;
- }
- dictkeys_decref(Py_EMPTY_KEYS);
- mp->ma_keys = newkeys;
- mp->ma_values = NULL;
-
- Py_INCREF(key);
- Py_INCREF(value);
- MAINTAIN_TRACKING(mp, key, value);
-
- size_t hashpos = (size_t)hash & (PyDict_MINSIZE-1);
- PyDictKeyEntry *ep = DK_ENTRIES(mp->ma_keys);
- dictkeys_set_index(mp->ma_keys, hashpos, 0);
- ep->me_key = key;
- ep->me_hash = hash;
- ep->me_value = value;
- mp->ma_used++;
- mp->ma_version_tag = DICT_NEXT_VERSION();
- mp->ma_keys->dk_usable--;
- mp->ma_keys->dk_nentries++;
- return 0;
-}
-
+// Same to insertdict but specialized for ma_keys = Py_EMPTY_KEYS.
+static int
+insert_to_emptydict(PyDictObject *mp, PyObject *key, Py_hash_t hash,
+ PyObject *value)
+{
+ assert(mp->ma_keys == Py_EMPTY_KEYS);
+
+ PyDictKeysObject *newkeys = new_keys_object(PyDict_MINSIZE);
+ if (newkeys == NULL) {
+ return -1;
+ }
+ if (!PyUnicode_CheckExact(key)) {
+ newkeys->dk_lookup = lookdict;
+ }
+ dictkeys_decref(Py_EMPTY_KEYS);
+ mp->ma_keys = newkeys;
+ mp->ma_values = NULL;
+
+ Py_INCREF(key);
+ Py_INCREF(value);
+ MAINTAIN_TRACKING(mp, key, value);
+
+ size_t hashpos = (size_t)hash & (PyDict_MINSIZE-1);
+ PyDictKeyEntry *ep = DK_ENTRIES(mp->ma_keys);
+ dictkeys_set_index(mp->ma_keys, hashpos, 0);
+ ep->me_key = key;
+ ep->me_hash = hash;
+ ep->me_value = value;
+ mp->ma_used++;
+ mp->ma_version_tag = DICT_NEXT_VERSION();
+ mp->ma_keys->dk_usable--;
+ mp->ma_keys->dk_nentries++;
+ return 0;
+}
+
/*
Internal routine used by dictresize() to build a hashtable of entries.
*/
@@ -1176,11 +1176,11 @@ build_indices(PyDictKeysObject *keys, PyDictKeyEntry *ep, Py_ssize_t n)
for (Py_ssize_t ix = 0; ix != n; ix++, ep++) {
Py_hash_t hash = ep->me_hash;
size_t i = hash & mask;
- for (size_t perturb = hash; dictkeys_get_index(keys, i) != DKIX_EMPTY;) {
+ for (size_t perturb = hash; dictkeys_get_index(keys, i) != DKIX_EMPTY;) {
perturb >>= PERTURB_SHIFT;
i = mask & (i*5 + perturb + 1);
}
- dictkeys_set_index(keys, i, ix);
+ dictkeys_set_index(keys, i, ix);
}
}
@@ -1249,7 +1249,7 @@ dictresize(PyDictObject *mp, Py_ssize_t minsize)
newentries[i].me_value = oldvalues[i];
}
- dictkeys_decref(oldkeys);
+ dictkeys_decref(oldkeys);
mp->ma_values = NULL;
if (oldvalues != empty_values) {
free_values(oldvalues);
@@ -1270,19 +1270,19 @@ dictresize(PyDictObject *mp, Py_ssize_t minsize)
assert(oldkeys->dk_lookup != lookdict_split);
assert(oldkeys->dk_refcnt == 1);
-#ifdef Py_REF_DEBUG
- _Py_RefTotal--;
-#endif
-#if PyDict_MAXFREELIST > 0
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal--;
+#endif
+#if PyDict_MAXFREELIST > 0
if (oldkeys->dk_size == PyDict_MINSIZE &&
- numfreekeys < PyDict_MAXFREELIST)
- {
- keys_free_list[numfreekeys++] = oldkeys;
+ numfreekeys < PyDict_MAXFREELIST)
+ {
+ keys_free_list[numfreekeys++] = oldkeys;
}
- else
-#endif
- {
- PyObject_FREE(oldkeys);
+ else
+#endif
+ {
+ PyObject_FREE(oldkeys);
}
}
@@ -1332,7 +1332,7 @@ make_keys_shared(PyObject *op)
mp->ma_keys->dk_lookup = lookdict_split;
mp->ma_values = values;
}
- dictkeys_incref(mp->ma_keys);
+ dictkeys_incref(mp->ma_keys);
return mp->ma_keys;
}
@@ -1343,9 +1343,9 @@ _PyDict_NewPresized(Py_ssize_t minused)
Py_ssize_t newsize;
PyDictKeysObject *new_keys;
- if (minused <= USABLE_FRACTION(PyDict_MINSIZE)) {
- return PyDict_New();
- }
+ if (minused <= USABLE_FRACTION(PyDict_MINSIZE)) {
+ return PyDict_New();
+ }
/* There are no strict guarantee that returned dict can contain minused
* items without resize. So we create medium size dict instead of very
* large dict or MemoryError.
@@ -1355,7 +1355,7 @@ _PyDict_NewPresized(Py_ssize_t minused)
}
else {
Py_ssize_t minsize = ESTIMATE_SIZE(minused);
- newsize = PyDict_MINSIZE*2;
+ newsize = PyDict_MINSIZE*2;
while (newsize < minsize) {
newsize <<= 1;
}
@@ -1402,9 +1402,9 @@ PyDict_GetItem(PyObject *op, PyObject *key)
/* We can arrive here with a NULL tstate during initialization: try
running "python -Wi" for an example related to string interning.
Let's just hope that no exception occurs then... This must be
- _PyThreadState_GET() and not PyThreadState_Get() because the latter
- abort Python if tstate is NULL. */
- tstate = _PyThreadState_GET();
+ _PyThreadState_GET() and not PyThreadState_Get() because the latter
+ abort Python if tstate is NULL. */
+ tstate = _PyThreadState_GET();
if (tstate != NULL && tstate->curexc_type != NULL) {
/* preserve the existing exception */
PyObject *err_type, *err_value, *err_tb;
@@ -1486,24 +1486,24 @@ _PyDict_GetItemIdWithError(PyObject *dp, struct _Py_Identifier *key)
kv = _PyUnicode_FromId(key); /* borrowed */
if (kv == NULL)
return NULL;
- Py_hash_t hash = ((PyASCIIObject *) kv)->hash;
- assert (hash != -1); /* interned strings have their hash value initialised */
- return _PyDict_GetItem_KnownHash(dp, kv, hash);
-}
-
-PyObject *
-_PyDict_GetItemStringWithError(PyObject *v, const char *key)
-{
- PyObject *kv, *rv;
- kv = PyUnicode_FromString(key);
- if (kv == NULL) {
- return NULL;
- }
- rv = PyDict_GetItemWithError(v, kv);
- Py_DECREF(kv);
- return rv;
-}
-
+ Py_hash_t hash = ((PyASCIIObject *) kv)->hash;
+ assert (hash != -1); /* interned strings have their hash value initialised */
+ return _PyDict_GetItem_KnownHash(dp, kv, hash);
+}
+
+PyObject *
+_PyDict_GetItemStringWithError(PyObject *v, const char *key)
+{
+ PyObject *kv, *rv;
+ kv = PyUnicode_FromString(key);
+ if (kv == NULL) {
+ return NULL;
+ }
+ rv = PyDict_GetItemWithError(v, kv);
+ Py_DECREF(kv);
+ return rv;
+}
+
/* Fast version of global value lookup (LOAD_GLOBAL).
* Lookup in globals, then builtins.
*
@@ -1566,9 +1566,9 @@ PyDict_SetItem(PyObject *op, PyObject *key, PyObject *value)
return -1;
}
- if (mp->ma_keys == Py_EMPTY_KEYS) {
- return insert_to_emptydict(mp, key, hash, value);
- }
+ if (mp->ma_keys == Py_EMPTY_KEYS) {
+ return insert_to_emptydict(mp, key, hash, value);
+ }
/* insertdict() handles any resizing that might be necessary */
return insertdict(mp, key, hash, value);
}
@@ -1588,9 +1588,9 @@ _PyDict_SetItem_KnownHash(PyObject *op, PyObject *key, PyObject *value,
assert(hash != -1);
mp = (PyDictObject *)op;
- if (mp->ma_keys == Py_EMPTY_KEYS) {
- return insert_to_emptydict(mp, key, hash, value);
- }
+ if (mp->ma_keys == Py_EMPTY_KEYS) {
+ return insert_to_emptydict(mp, key, hash, value);
+ }
/* insertdict() handles any resizing that might be necessary */
return insertdict(mp, key, hash, value);
}
@@ -1608,7 +1608,7 @@ delitem_common(PyDictObject *mp, Py_hash_t hash, Py_ssize_t ix,
mp->ma_used--;
mp->ma_version_tag = DICT_NEXT_VERSION();
ep = &DK_ENTRIES(mp->ma_keys)[ix];
- dictkeys_set_index(mp->ma_keys, hashpos, DKIX_DUMMY);
+ dictkeys_set_index(mp->ma_keys, hashpos, DKIX_DUMMY);
ENSURE_ALLOWS_DELETIONS(mp);
old_key = ep->me_key;
ep->me_key = NULL;
@@ -1616,7 +1616,7 @@ delitem_common(PyDictObject *mp, Py_hash_t hash, Py_ssize_t ix,
Py_DECREF(old_key);
Py_DECREF(old_value);
- ASSERT_CONSISTENT(mp);
+ ASSERT_CONSISTENT(mp);
return 0;
}
@@ -1739,7 +1739,7 @@ PyDict_Clear(PyObject *op)
if (oldvalues == empty_values)
return;
/* Empty the dict... */
- dictkeys_incref(Py_EMPTY_KEYS);
+ dictkeys_incref(Py_EMPTY_KEYS);
mp->ma_keys = Py_EMPTY_KEYS;
mp->ma_values = empty_values;
mp->ma_used = 0;
@@ -1750,13 +1750,13 @@ PyDict_Clear(PyObject *op)
for (i = 0; i < n; i++)
Py_CLEAR(oldvalues[i]);
free_values(oldvalues);
- dictkeys_decref(oldkeys);
+ dictkeys_decref(oldkeys);
}
else {
assert(oldkeys->dk_refcnt == 1);
- dictkeys_decref(oldkeys);
+ dictkeys_decref(oldkeys);
}
- ASSERT_CONSISTENT(mp);
+ ASSERT_CONSISTENT(mp);
}
/* Internal version of PyDict_Next that returns a hash value in addition
@@ -1878,7 +1878,7 @@ _PyDict_Pop_KnownHash(PyObject *dict, PyObject *key, Py_hash_t hash, PyObject *d
assert(old_value != NULL);
mp->ma_used--;
mp->ma_version_tag = DICT_NEXT_VERSION();
- dictkeys_set_index(mp->ma_keys, hashpos, DKIX_DUMMY);
+ dictkeys_set_index(mp->ma_keys, hashpos, DKIX_DUMMY);
ep = &DK_ENTRIES(mp->ma_keys)[ix];
ENSURE_ALLOWS_DELETIONS(mp);
old_key = ep->me_key;
@@ -1886,7 +1886,7 @@ _PyDict_Pop_KnownHash(PyObject *dict, PyObject *key, Py_hash_t hash, PyObject *d
ep->me_value = NULL;
Py_DECREF(old_key);
- ASSERT_CONSISTENT(mp);
+ ASSERT_CONSISTENT(mp);
return old_value;
}
@@ -2011,7 +2011,7 @@ dict_dealloc(PyDictObject *mp)
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(mp);
- Py_TRASHCAN_BEGIN(mp, dict_dealloc)
+ Py_TRASHCAN_BEGIN(mp, dict_dealloc)
if (values != NULL) {
if (values != empty_values) {
for (i = 0, n = mp->ma_keys->dk_nentries; i < n; i++) {
@@ -2019,22 +2019,22 @@ dict_dealloc(PyDictObject *mp)
}
free_values(values);
}
- dictkeys_decref(keys);
+ dictkeys_decref(keys);
}
else if (keys != NULL) {
assert(keys->dk_refcnt == 1);
- dictkeys_decref(keys);
+ dictkeys_decref(keys);
}
-#if PyDict_MAXFREELIST > 0
- if (numfree < PyDict_MAXFREELIST && Py_IS_TYPE(mp, &PyDict_Type)) {
+#if PyDict_MAXFREELIST > 0
+ if (numfree < PyDict_MAXFREELIST && Py_IS_TYPE(mp, &PyDict_Type)) {
free_list[numfree++] = mp;
- }
+ }
else
-#endif
- {
+#endif
+ {
Py_TYPE(mp)->tp_free((PyObject *)mp);
- }
- Py_TRASHCAN_END
+ }
+ Py_TRASHCAN_END
}
@@ -2150,7 +2150,7 @@ dict_subscript(PyDictObject *mp, PyObject *key)
_Py_IDENTIFIER(__missing__);
missing = _PyObject_LookupSpecial((PyObject *)mp, &PyId___missing__);
if (missing != NULL) {
- res = PyObject_CallOneArg(missing, key);
+ res = PyObject_CallOneArg(missing, key);
Py_DECREF(missing);
return res;
}
@@ -2185,7 +2185,7 @@ dict_keys(PyDictObject *mp)
PyObject *v;
Py_ssize_t i, j;
PyDictKeyEntry *ep;
- Py_ssize_t n, offset;
+ Py_ssize_t n, offset;
PyObject **value_ptr;
again:
@@ -2209,7 +2209,7 @@ dict_keys(PyDictObject *mp)
value_ptr = &ep[0].me_value;
offset = sizeof(PyDictKeyEntry);
}
- for (i = 0, j = 0; j < n; i++) {
+ for (i = 0, j = 0; j < n; i++) {
if (*value_ptr != NULL) {
PyObject *key = ep[i].me_key;
Py_INCREF(key);
@@ -2228,7 +2228,7 @@ dict_values(PyDictObject *mp)
PyObject *v;
Py_ssize_t i, j;
PyDictKeyEntry *ep;
- Py_ssize_t n, offset;
+ Py_ssize_t n, offset;
PyObject **value_ptr;
again:
@@ -2252,7 +2252,7 @@ dict_values(PyDictObject *mp)
value_ptr = &ep[0].me_value;
offset = sizeof(PyDictKeyEntry);
}
- for (i = 0, j = 0; j < n; i++) {
+ for (i = 0, j = 0; j < n; i++) {
PyObject *value = *value_ptr;
value_ptr = (PyObject **)(((char *)value_ptr) + offset);
if (value != NULL) {
@@ -2270,7 +2270,7 @@ dict_items(PyDictObject *mp)
{
PyObject *v;
Py_ssize_t i, j, n;
- Py_ssize_t offset;
+ Py_ssize_t offset;
PyObject *item, *key;
PyDictKeyEntry *ep;
PyObject **value_ptr;
@@ -2309,7 +2309,7 @@ dict_items(PyDictObject *mp)
value_ptr = &ep[0].me_value;
offset = sizeof(PyDictKeyEntry);
}
- for (i = 0, j = 0; j < n; i++) {
+ for (i = 0, j = 0; j < n; i++) {
PyObject *value = *value_ptr;
value_ptr = (PyObject **)(((char *)value_ptr) + offset);
if (value != NULL) {
@@ -2343,26 +2343,26 @@ dict_fromkeys_impl(PyTypeObject *type, PyObject *iterable, PyObject *value)
return _PyDict_FromKeys((PyObject *)type, iterable, value);
}
-/* Single-arg dict update; used by dict_update_common and operators. */
+/* Single-arg dict update; used by dict_update_common and operators. */
+static int
+dict_update_arg(PyObject *self, PyObject *arg)
+{
+ if (PyDict_CheckExact(arg)) {
+ return PyDict_Merge(self, arg, 1);
+ }
+ _Py_IDENTIFIER(keys);
+ PyObject *func;
+ if (_PyObject_LookupAttrId(arg, &PyId_keys, &func) < 0) {
+ return -1;
+ }
+ if (func != NULL) {
+ Py_DECREF(func);
+ return PyDict_Merge(self, arg, 1);
+ }
+ return PyDict_MergeFromSeq2(self, arg, 1);
+}
+
static int
-dict_update_arg(PyObject *self, PyObject *arg)
-{
- if (PyDict_CheckExact(arg)) {
- return PyDict_Merge(self, arg, 1);
- }
- _Py_IDENTIFIER(keys);
- PyObject *func;
- if (_PyObject_LookupAttrId(arg, &PyId_keys, &func) < 0) {
- return -1;
- }
- if (func != NULL) {
- Py_DECREF(func);
- return PyDict_Merge(self, arg, 1);
- }
- return PyDict_MergeFromSeq2(self, arg, 1);
-}
-
-static int
dict_update_common(PyObject *self, PyObject *args, PyObject *kwds,
const char *methname)
{
@@ -2373,7 +2373,7 @@ dict_update_common(PyObject *self, PyObject *args, PyObject *kwds,
result = -1;
}
else if (arg != NULL) {
- result = dict_update_arg(self, arg);
+ result = dict_update_arg(self, arg);
}
if (result == 0 && kwds != NULL) {
@@ -2458,21 +2458,21 @@ PyDict_MergeFromSeq2(PyObject *d, PyObject *seq2, int override)
value = PySequence_Fast_GET_ITEM(fast, 1);
Py_INCREF(key);
Py_INCREF(value);
- if (override) {
- if (PyDict_SetItem(d, key, value) < 0) {
+ if (override) {
+ if (PyDict_SetItem(d, key, value) < 0) {
Py_DECREF(key);
Py_DECREF(value);
goto Fail;
}
}
- else if (PyDict_GetItemWithError(d, key) == NULL) {
- if (PyErr_Occurred() || PyDict_SetItem(d, key, value) < 0) {
- Py_DECREF(key);
- Py_DECREF(value);
- goto Fail;
- }
- }
-
+ else if (PyDict_GetItemWithError(d, key) == NULL) {
+ if (PyErr_Occurred() || PyDict_SetItem(d, key, value) < 0) {
+ Py_DECREF(key);
+ Py_DECREF(value);
+ goto Fail;
+ }
+ }
+
Py_DECREF(key);
Py_DECREF(value);
Py_DECREF(fast);
@@ -2480,7 +2480,7 @@ PyDict_MergeFromSeq2(PyObject *d, PyObject *seq2, int override)
}
i = 0;
- ASSERT_CONSISTENT(d);
+ ASSERT_CONSISTENT(d);
goto Return;
Fail:
Py_XDECREF(item);
@@ -2596,19 +2596,19 @@ dict_merge(PyObject *a, PyObject *b, int override)
return -1;
for (key = PyIter_Next(iter); key; key = PyIter_Next(iter)) {
- if (override != 1) {
- if (PyDict_GetItemWithError(a, key) != NULL) {
- if (override != 0) {
- _PyErr_SetKeyError(key);
- Py_DECREF(key);
- Py_DECREF(iter);
- return -1;
- }
+ if (override != 1) {
+ if (PyDict_GetItemWithError(a, key) != NULL) {
+ if (override != 0) {
+ _PyErr_SetKeyError(key);
+ Py_DECREF(key);
+ Py_DECREF(iter);
+ return -1;
+ }
+ Py_DECREF(key);
+ continue;
+ }
+ else if (PyErr_Occurred()) {
Py_DECREF(key);
- continue;
- }
- else if (PyErr_Occurred()) {
- Py_DECREF(key);
Py_DECREF(iter);
return -1;
}
@@ -2632,7 +2632,7 @@ dict_merge(PyObject *a, PyObject *b, int override)
/* Iterator completed, via error */
return -1;
}
- ASSERT_CONSISTENT(a);
+ ASSERT_CONSISTENT(a);
return 0;
}
@@ -2656,7 +2656,7 @@ _PyDict_MergeEx(PyObject *a, PyObject *b, int override)
}
static PyObject *
-dict_copy(PyDictObject *mp, PyObject *Py_UNUSED(ignored))
+dict_copy(PyDictObject *mp, PyObject *Py_UNUSED(ignored))
{
return PyDict_Copy((PyObject*)mp);
}
@@ -2695,7 +2695,7 @@ PyDict_Copy(PyObject *o)
split_copy->ma_keys = mp->ma_keys;
split_copy->ma_used = mp->ma_used;
split_copy->ma_version_tag = DICT_NEXT_VERSION();
- dictkeys_incref(mp->ma_keys);
+ dictkeys_incref(mp->ma_keys);
for (i = 0, n = size; i < n; i++) {
PyObject *value = mp->ma_values[i];
Py_XINCREF(value);
@@ -2813,11 +2813,11 @@ dict_equal(PyDictObject *a, PyDictObject *b)
return -1;
return 0;
}
- Py_INCREF(bval);
+ Py_INCREF(bval);
cmp = PyObject_RichCompareBool(aval, bval, Py_EQ);
Py_DECREF(key);
Py_DECREF(aval);
- Py_DECREF(bval);
+ Py_DECREF(bval);
if (cmp <= 0) /* error or not equal */
return cmp;
}
@@ -2932,12 +2932,12 @@ PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *defaultobj)
if (hash == -1)
return NULL;
}
- if (mp->ma_keys == Py_EMPTY_KEYS) {
- if (insert_to_emptydict(mp, key, hash, defaultobj) < 0) {
- return NULL;
- }
- return defaultobj;
- }
+ if (mp->ma_keys == Py_EMPTY_KEYS) {
+ if (insert_to_emptydict(mp, key, hash, defaultobj) < 0) {
+ return NULL;
+ }
+ return defaultobj;
+ }
if (mp->ma_values != NULL && !PyUnicode_CheckExact(key)) {
if (insertion_resize(mp) < 0)
@@ -2968,7 +2968,7 @@ PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *defaultobj)
Py_ssize_t hashpos = find_empty_slot(mp->ma_keys, hash);
ep0 = DK_ENTRIES(mp->ma_keys);
ep = &ep0[mp->ma_keys->dk_nentries];
- dictkeys_set_index(mp->ma_keys, hashpos, mp->ma_keys->dk_nentries);
+ dictkeys_set_index(mp->ma_keys, hashpos, mp->ma_keys->dk_nentries);
Py_INCREF(key);
Py_INCREF(value);
MAINTAIN_TRACKING(mp, key, value);
@@ -2998,7 +2998,7 @@ PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *defaultobj)
mp->ma_version_tag = DICT_NEXT_VERSION();
}
- ASSERT_CONSISTENT(mp);
+ ASSERT_CONSISTENT(mp);
return value;
}
@@ -3027,43 +3027,43 @@ dict_setdefault_impl(PyDictObject *self, PyObject *key,
}
static PyObject *
-dict_clear(PyDictObject *mp, PyObject *Py_UNUSED(ignored))
+dict_clear(PyDictObject *mp, PyObject *Py_UNUSED(ignored))
{
PyDict_Clear((PyObject *)mp);
Py_RETURN_NONE;
}
-/*[clinic input]
-dict.pop
-
- key: object
- default: object = NULL
- /
-
-D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
-
-If key is not found, default is returned if given, otherwise KeyError is raised
-[clinic start generated code]*/
-
+/*[clinic input]
+dict.pop
+
+ key: object
+ default: object = NULL
+ /
+
+D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
+
+If key is not found, default is returned if given, otherwise KeyError is raised
+[clinic start generated code]*/
+
static PyObject *
-dict_pop_impl(PyDictObject *self, PyObject *key, PyObject *default_value)
-/*[clinic end generated code: output=3abb47b89f24c21c input=eeebec7812190348]*/
+dict_pop_impl(PyDictObject *self, PyObject *key, PyObject *default_value)
+/*[clinic end generated code: output=3abb47b89f24c21c input=eeebec7812190348]*/
{
- return _PyDict_Pop((PyObject*)self, key, default_value);
+ return _PyDict_Pop((PyObject*)self, key, default_value);
}
-/*[clinic input]
-dict.popitem
-
-Remove and return a (key, value) pair as a 2-tuple.
-
-Pairs are returned in LIFO (last-in, first-out) order.
-Raises KeyError if the dict is empty.
-[clinic start generated code]*/
-
+/*[clinic input]
+dict.popitem
+
+Remove and return a (key, value) pair as a 2-tuple.
+
+Pairs are returned in LIFO (last-in, first-out) order.
+Raises KeyError if the dict is empty.
+[clinic start generated code]*/
+
static PyObject *
-dict_popitem_impl(PyDictObject *self)
-/*[clinic end generated code: output=e65fcb04420d230d input=1c38a49f21f64941]*/
+dict_popitem_impl(PyDictObject *self)
+/*[clinic end generated code: output=e65fcb04420d230d input=1c38a49f21f64941]*/
{
Py_ssize_t i, j;
PyDictKeyEntry *ep0, *ep;
@@ -3081,43 +3081,43 @@ dict_popitem_impl(PyDictObject *self)
res = PyTuple_New(2);
if (res == NULL)
return NULL;
- if (self->ma_used == 0) {
+ if (self->ma_used == 0) {
Py_DECREF(res);
- PyErr_SetString(PyExc_KeyError, "popitem(): dictionary is empty");
+ PyErr_SetString(PyExc_KeyError, "popitem(): dictionary is empty");
return NULL;
}
/* Convert split table to combined table */
- if (self->ma_keys->dk_lookup == lookdict_split) {
- if (dictresize(self, DK_SIZE(self->ma_keys))) {
+ if (self->ma_keys->dk_lookup == lookdict_split) {
+ if (dictresize(self, DK_SIZE(self->ma_keys))) {
Py_DECREF(res);
return NULL;
}
}
- ENSURE_ALLOWS_DELETIONS(self);
+ ENSURE_ALLOWS_DELETIONS(self);
/* Pop last item */
- ep0 = DK_ENTRIES(self->ma_keys);
- i = self->ma_keys->dk_nentries - 1;
+ ep0 = DK_ENTRIES(self->ma_keys);
+ i = self->ma_keys->dk_nentries - 1;
while (i >= 0 && ep0[i].me_value == NULL) {
i--;
}
assert(i >= 0);
ep = &ep0[i];
- j = lookdict_index(self->ma_keys, ep->me_hash, i);
+ j = lookdict_index(self->ma_keys, ep->me_hash, i);
assert(j >= 0);
- assert(dictkeys_get_index(self->ma_keys, j) == i);
- dictkeys_set_index(self->ma_keys, j, DKIX_DUMMY);
+ assert(dictkeys_get_index(self->ma_keys, j) == i);
+ dictkeys_set_index(self->ma_keys, j, DKIX_DUMMY);
PyTuple_SET_ITEM(res, 0, ep->me_key);
PyTuple_SET_ITEM(res, 1, ep->me_value);
ep->me_key = NULL;
ep->me_value = NULL;
/* We can't dk_usable++ since there is DKIX_DUMMY in indices */
- self->ma_keys->dk_nentries = i;
- self->ma_used--;
- self->ma_version_tag = DICT_NEXT_VERSION();
- ASSERT_CONSISTENT(self);
+ self->ma_keys->dk_nentries = i;
+ self->ma_used--;
+ self->ma_version_tag = DICT_NEXT_VERSION();
+ ASSERT_CONSISTENT(self);
return res;
}
@@ -3190,38 +3190,38 @@ _PyDict_KeysSize(PyDictKeysObject *keys)
}
static PyObject *
-dict_sizeof(PyDictObject *mp, PyObject *Py_UNUSED(ignored))
+dict_sizeof(PyDictObject *mp, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromSsize_t(_PyDict_SizeOf(mp));
}
-static PyObject *
-dict_or(PyObject *self, PyObject *other)
-{
- if (!PyDict_Check(self) || !PyDict_Check(other)) {
- Py_RETURN_NOTIMPLEMENTED;
- }
- PyObject *new = PyDict_Copy(self);
- if (new == NULL) {
- return NULL;
- }
- if (dict_update_arg(new, other)) {
- Py_DECREF(new);
- return NULL;
- }
- return new;
-}
-
-static PyObject *
-dict_ior(PyObject *self, PyObject *other)
-{
- if (dict_update_arg(self, other)) {
- return NULL;
- }
- Py_INCREF(self);
- return self;
-}
-
+static PyObject *
+dict_or(PyObject *self, PyObject *other)
+{
+ if (!PyDict_Check(self) || !PyDict_Check(other)) {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+ PyObject *new = PyDict_Copy(self);
+ if (new == NULL) {
+ return NULL;
+ }
+ if (dict_update_arg(new, other)) {
+ Py_DECREF(new);
+ return NULL;
+ }
+ return new;
+}
+
+static PyObject *
+dict_ior(PyObject *self, PyObject *other)
+{
+ if (dict_update_arg(self, other)) {
+ return NULL;
+ }
+ Py_INCREF(self);
+ return self;
+}
+
PyDoc_STRVAR(getitem__doc__, "x.__getitem__(y) <==> x[y]");
PyDoc_STRVAR(sizeof__doc__,
@@ -3240,9 +3240,9 @@ PyDoc_STRVAR(copy__doc__,
"D.copy() -> a shallow copy of D");
/* Forward */
-static PyObject *dictkeys_new(PyObject *, PyObject *);
-static PyObject *dictitems_new(PyObject *, PyObject *);
-static PyObject *dictvalues_new(PyObject *, PyObject *);
+static PyObject *dictkeys_new(PyObject *, PyObject *);
+static PyObject *dictitems_new(PyObject *, PyObject *);
+static PyObject *dictvalues_new(PyObject *, PyObject *);
PyDoc_STRVAR(keys__doc__,
"D.keys() -> a set-like object providing a view on D's keys");
@@ -3253,29 +3253,29 @@ PyDoc_STRVAR(values__doc__,
static PyMethodDef mapp_methods[] = {
DICT___CONTAINS___METHODDEF
- {"__getitem__", (PyCFunction)(void(*)(void))dict_subscript, METH_O | METH_COEXIST,
+ {"__getitem__", (PyCFunction)(void(*)(void))dict_subscript, METH_O | METH_COEXIST,
getitem__doc__},
- {"__sizeof__", (PyCFunction)(void(*)(void))dict_sizeof, METH_NOARGS,
+ {"__sizeof__", (PyCFunction)(void(*)(void))dict_sizeof, METH_NOARGS,
sizeof__doc__},
DICT_GET_METHODDEF
DICT_SETDEFAULT_METHODDEF
- DICT_POP_METHODDEF
- DICT_POPITEM_METHODDEF
- {"keys", dictkeys_new, METH_NOARGS,
+ DICT_POP_METHODDEF
+ DICT_POPITEM_METHODDEF
+ {"keys", dictkeys_new, METH_NOARGS,
keys__doc__},
- {"items", dictitems_new, METH_NOARGS,
+ {"items", dictitems_new, METH_NOARGS,
items__doc__},
- {"values", dictvalues_new, METH_NOARGS,
+ {"values", dictvalues_new, METH_NOARGS,
values__doc__},
- {"update", (PyCFunction)(void(*)(void))dict_update, METH_VARARGS | METH_KEYWORDS,
+ {"update", (PyCFunction)(void(*)(void))dict_update, METH_VARARGS | METH_KEYWORDS,
update__doc__},
DICT_FROMKEYS_METHODDEF
{"clear", (PyCFunction)dict_clear, METH_NOARGS,
clear__doc__},
{"copy", (PyCFunction)dict_copy, METH_NOARGS,
copy__doc__},
- DICT___REVERSED___METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ DICT___REVERSED___METHODDEF
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -3328,11 +3328,11 @@ static PySequenceMethods dict_as_sequence = {
0, /* sq_inplace_repeat */
};
-static PyNumberMethods dict_as_number = {
- .nb_or = dict_or,
- .nb_inplace_or = dict_ior,
-};
-
+static PyNumberMethods dict_as_number = {
+ .nb_or = dict_or,
+ .nb_inplace_or = dict_ior,
+};
+
static PyObject *
dict_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
@@ -3356,7 +3356,7 @@ dict_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_DECREF(self);
return NULL;
}
- ASSERT_CONSISTENT(d);
+ ASSERT_CONSISTENT(d);
return self;
}
@@ -3367,38 +3367,38 @@ dict_init(PyObject *self, PyObject *args, PyObject *kwds)
}
static PyObject *
-dict_vectorcall(PyObject *type, PyObject * const*args,
- size_t nargsf, PyObject *kwnames)
-{
- assert(PyType_Check(type));
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (!_PyArg_CheckPositional("dict", nargs, 0, 1)) {
- return NULL;
- }
-
- PyObject *self = dict_new((PyTypeObject *)type, NULL, NULL);
- if (self == NULL) {
- return NULL;
- }
- if (nargs == 1) {
- if (dict_update_arg(self, args[0]) < 0) {
- Py_DECREF(self);
- return NULL;
- }
- args++;
- }
- if (kwnames != NULL) {
- for (Py_ssize_t i = 0; i < PyTuple_GET_SIZE(kwnames); i++) {
- if (PyDict_SetItem(self, PyTuple_GET_ITEM(kwnames, i), args[i]) < 0) {
- Py_DECREF(self);
- return NULL;
- }
- }
- }
- return self;
-}
-
-static PyObject *
+dict_vectorcall(PyObject *type, PyObject * const*args,
+ size_t nargsf, PyObject *kwnames)
+{
+ assert(PyType_Check(type));
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (!_PyArg_CheckPositional("dict", nargs, 0, 1)) {
+ return NULL;
+ }
+
+ PyObject *self = dict_new((PyTypeObject *)type, NULL, NULL);
+ if (self == NULL) {
+ return NULL;
+ }
+ if (nargs == 1) {
+ if (dict_update_arg(self, args[0]) < 0) {
+ Py_DECREF(self);
+ return NULL;
+ }
+ args++;
+ }
+ if (kwnames != NULL) {
+ for (Py_ssize_t i = 0; i < PyTuple_GET_SIZE(kwnames); i++) {
+ if (PyDict_SetItem(self, PyTuple_GET_ITEM(kwnames, i), args[i]) < 0) {
+ Py_DECREF(self);
+ return NULL;
+ }
+ }
+ }
+ return self;
+}
+
+static PyObject *
dict_iter(PyDictObject *dict)
{
return dictiter_new(dict, &PyDictIterKey_Type);
@@ -3421,12 +3421,12 @@ PyTypeObject PyDict_Type = {
sizeof(PyDictObject),
0,
(destructor)dict_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)dict_repr, /* tp_repr */
- &dict_as_number, /* tp_as_number */
+ &dict_as_number, /* tp_as_number */
&dict_as_sequence, /* tp_as_sequence */
&dict_as_mapping, /* tp_as_mapping */
PyObject_HashNotImplemented, /* tp_hash */
@@ -3456,7 +3456,7 @@ PyTypeObject PyDict_Type = {
PyType_GenericAlloc, /* tp_alloc */
dict_new, /* tp_new */
PyObject_GC_Del, /* tp_free */
- .tp_vectorcall = dict_vectorcall,
+ .tp_vectorcall = dict_vectorcall,
};
PyObject *
@@ -3549,37 +3549,37 @@ dictiter_new(PyDictObject *dict, PyTypeObject *itertype)
{
dictiterobject *di;
di = PyObject_GC_New(dictiterobject, itertype);
- if (di == NULL) {
+ if (di == NULL) {
return NULL;
- }
+ }
Py_INCREF(dict);
di->di_dict = dict;
di->di_used = dict->ma_used;
di->len = dict->ma_used;
- if (itertype == &PyDictRevIterKey_Type ||
- itertype == &PyDictRevIterItem_Type ||
- itertype == &PyDictRevIterValue_Type) {
- if (dict->ma_values) {
- di->di_pos = dict->ma_used - 1;
- }
- else {
- di->di_pos = dict->ma_keys->dk_nentries - 1;
- }
- }
- else {
- di->di_pos = 0;
- }
- if (itertype == &PyDictIterItem_Type ||
- itertype == &PyDictRevIterItem_Type) {
+ if (itertype == &PyDictRevIterKey_Type ||
+ itertype == &PyDictRevIterItem_Type ||
+ itertype == &PyDictRevIterValue_Type) {
+ if (dict->ma_values) {
+ di->di_pos = dict->ma_used - 1;
+ }
+ else {
+ di->di_pos = dict->ma_keys->dk_nentries - 1;
+ }
+ }
+ else {
+ di->di_pos = 0;
+ }
+ if (itertype == &PyDictIterItem_Type ||
+ itertype == &PyDictRevIterItem_Type) {
di->di_result = PyTuple_Pack(2, Py_None, Py_None);
if (di->di_result == NULL) {
Py_DECREF(di);
return NULL;
}
}
- else {
+ else {
di->di_result = NULL;
- }
+ }
_PyObject_GC_TRACK(di);
return (PyObject *)di;
}
@@ -3603,7 +3603,7 @@ dictiter_traverse(dictiterobject *di, visitproc visit, void *arg)
}
static PyObject *
-dictiter_len(dictiterobject *di, PyObject *Py_UNUSED(ignored))
+dictiter_len(dictiterobject *di, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len = 0;
if (di->di_dict != NULL && di->di_used == di->di_dict->ma_used)
@@ -3615,14 +3615,14 @@ PyDoc_STRVAR(length_hint_doc,
"Private method returning an estimate of len(list(it)).");
static PyObject *
-dictiter_reduce(dictiterobject *di, PyObject *Py_UNUSED(ignored));
+dictiter_reduce(dictiterobject *di, PyObject *Py_UNUSED(ignored));
PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
static PyMethodDef dictiter_methods[] = {
- {"__length_hint__", (PyCFunction)(void(*)(void))dictiter_len, METH_NOARGS,
+ {"__length_hint__", (PyCFunction)(void(*)(void))dictiter_len, METH_NOARGS,
length_hint_doc},
- {"__reduce__", (PyCFunction)(void(*)(void))dictiter_reduce, METH_NOARGS,
+ {"__reduce__", (PyCFunction)(void(*)(void))dictiter_reduce, METH_NOARGS,
reduce_doc},
{NULL, NULL} /* sentinel */
};
@@ -3666,12 +3666,12 @@ dictiter_iternextkey(dictiterobject *di)
goto fail;
key = entry_ptr->me_key;
}
- // We found an element (key), but did not expect it
- if (di->len == 0) {
- PyErr_SetString(PyExc_RuntimeError,
- "dictionary keys changed during iteration");
- goto fail;
- }
+ // We found an element (key), but did not expect it
+ if (di->len == 0) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "dictionary keys changed during iteration");
+ goto fail;
+ }
di->di_pos = i+1;
di->len--;
Py_INCREF(key);
@@ -3690,10 +3690,10 @@ PyTypeObject PyDictIterKey_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)dictiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3753,12 +3753,12 @@ dictiter_iternextvalue(dictiterobject *di)
goto fail;
value = entry_ptr->me_value;
}
- // We found an element, but did not expect it
- if (di->len == 0) {
- PyErr_SetString(PyExc_RuntimeError,
- "dictionary keys changed during iteration");
- goto fail;
- }
+ // We found an element, but did not expect it
+ if (di->len == 0) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "dictionary keys changed during iteration");
+ goto fail;
+ }
di->di_pos = i+1;
di->len--;
Py_INCREF(value);
@@ -3777,10 +3777,10 @@ PyTypeObject PyDictIterValue_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)dictiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3842,12 +3842,12 @@ dictiter_iternextitem(dictiterobject *di)
key = entry_ptr->me_key;
value = entry_ptr->me_value;
}
- // We found an element, but did not expect it
- if (di->len == 0) {
- PyErr_SetString(PyExc_RuntimeError,
- "dictionary keys changed during iteration");
- goto fail;
- }
+ // We found an element, but did not expect it
+ if (di->len == 0) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "dictionary keys changed during iteration");
+ goto fail;
+ }
di->di_pos = i+1;
di->len--;
Py_INCREF(key);
@@ -3861,11 +3861,11 @@ dictiter_iternextitem(dictiterobject *di)
Py_INCREF(result);
Py_DECREF(oldkey);
Py_DECREF(oldvalue);
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
}
else {
result = PyTuple_New(2);
@@ -3889,10 +3889,10 @@ PyTypeObject PyDictIterItem_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)dictiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3916,164 +3916,164 @@ PyTypeObject PyDictIterItem_Type = {
};
-/* dictreviter */
-
+/* dictreviter */
+
static PyObject *
-dictreviter_iternext(dictiterobject *di)
+dictreviter_iternext(dictiterobject *di)
{
- PyDictObject *d = di->di_dict;
+ PyDictObject *d = di->di_dict;
+
+ if (d == NULL) {
+ return NULL;
+ }
+ assert (PyDict_Check(d));
- if (d == NULL) {
+ if (di->di_used != d->ma_used) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "dictionary changed size during iteration");
+ di->di_used = -1; /* Make this state sticky */
return NULL;
- }
- assert (PyDict_Check(d));
-
- if (di->di_used != d->ma_used) {
- PyErr_SetString(PyExc_RuntimeError,
- "dictionary changed size during iteration");
- di->di_used = -1; /* Make this state sticky */
- return NULL;
- }
-
- Py_ssize_t i = di->di_pos;
- PyDictKeysObject *k = d->ma_keys;
- PyObject *key, *value, *result;
-
- if (i < 0) {
- goto fail;
- }
- if (d->ma_values) {
- key = DK_ENTRIES(k)[i].me_key;
- value = d->ma_values[i];
- assert (value != NULL);
- }
- else {
- PyDictKeyEntry *entry_ptr = &DK_ENTRIES(k)[i];
- while (entry_ptr->me_value == NULL) {
- if (--i < 0) {
- goto fail;
- }
- entry_ptr--;
- }
- key = entry_ptr->me_key;
- value = entry_ptr->me_value;
- }
- di->di_pos = i-1;
- di->len--;
-
- if (Py_IS_TYPE(di, &PyDictRevIterKey_Type)) {
- Py_INCREF(key);
- return key;
- }
- else if (Py_IS_TYPE(di, &PyDictRevIterValue_Type)) {
- Py_INCREF(value);
- return value;
- }
- else if (Py_IS_TYPE(di, &PyDictRevIterItem_Type)) {
- Py_INCREF(key);
- Py_INCREF(value);
- result = di->di_result;
- if (Py_REFCNT(result) == 1) {
- PyObject *oldkey = PyTuple_GET_ITEM(result, 0);
- PyObject *oldvalue = PyTuple_GET_ITEM(result, 1);
- PyTuple_SET_ITEM(result, 0, key); /* steals reference */
- PyTuple_SET_ITEM(result, 1, value); /* steals reference */
- Py_INCREF(result);
- Py_DECREF(oldkey);
- Py_DECREF(oldvalue);
- // bpo-42536: The GC may have untracked this result tuple. Since
- // we're recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
- }
- else {
- result = PyTuple_New(2);
- if (result == NULL) {
+ }
+
+ Py_ssize_t i = di->di_pos;
+ PyDictKeysObject *k = d->ma_keys;
+ PyObject *key, *value, *result;
+
+ if (i < 0) {
+ goto fail;
+ }
+ if (d->ma_values) {
+ key = DK_ENTRIES(k)[i].me_key;
+ value = d->ma_values[i];
+ assert (value != NULL);
+ }
+ else {
+ PyDictKeyEntry *entry_ptr = &DK_ENTRIES(k)[i];
+ while (entry_ptr->me_value == NULL) {
+ if (--i < 0) {
+ goto fail;
+ }
+ entry_ptr--;
+ }
+ key = entry_ptr->me_key;
+ value = entry_ptr->me_value;
+ }
+ di->di_pos = i-1;
+ di->len--;
+
+ if (Py_IS_TYPE(di, &PyDictRevIterKey_Type)) {
+ Py_INCREF(key);
+ return key;
+ }
+ else if (Py_IS_TYPE(di, &PyDictRevIterValue_Type)) {
+ Py_INCREF(value);
+ return value;
+ }
+ else if (Py_IS_TYPE(di, &PyDictRevIterItem_Type)) {
+ Py_INCREF(key);
+ Py_INCREF(value);
+ result = di->di_result;
+ if (Py_REFCNT(result) == 1) {
+ PyObject *oldkey = PyTuple_GET_ITEM(result, 0);
+ PyObject *oldvalue = PyTuple_GET_ITEM(result, 1);
+ PyTuple_SET_ITEM(result, 0, key); /* steals reference */
+ PyTuple_SET_ITEM(result, 1, value); /* steals reference */
+ Py_INCREF(result);
+ Py_DECREF(oldkey);
+ Py_DECREF(oldvalue);
+ // bpo-42536: The GC may have untracked this result tuple. Since
+ // we're recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
+ }
+ else {
+ result = PyTuple_New(2);
+ if (result == NULL) {
return NULL;
}
- PyTuple_SET_ITEM(result, 0, key); /* steals reference */
- PyTuple_SET_ITEM(result, 1, value); /* steals reference */
- }
- return result;
- }
- else {
- Py_UNREACHABLE();
- }
-
-fail:
- di->di_dict = NULL;
- Py_DECREF(d);
- return NULL;
-}
-
-PyTypeObject PyDictRevIterKey_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "dict_reversekeyiterator",
- sizeof(dictiterobject),
- .tp_dealloc = (destructor)dictiter_dealloc,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- .tp_traverse = (traverseproc)dictiter_traverse,
- .tp_iter = PyObject_SelfIter,
- .tp_iternext = (iternextfunc)dictreviter_iternext,
- .tp_methods = dictiter_methods
-};
-
-
-/*[clinic input]
-dict.__reversed__
-
-Return a reverse iterator over the dict keys.
-[clinic start generated code]*/
-
-static PyObject *
-dict___reversed___impl(PyDictObject *self)
-/*[clinic end generated code: output=e674483336d1ed51 input=23210ef3477d8c4d]*/
-{
- assert (PyDict_Check(self));
- return dictiter_new(self, &PyDictRevIterKey_Type);
-}
-
-static PyObject *
-dictiter_reduce(dictiterobject *di, PyObject *Py_UNUSED(ignored))
-{
- _Py_IDENTIFIER(iter);
- /* copy the iterator state */
- dictiterobject tmp = *di;
- Py_XINCREF(tmp.di_dict);
-
- PyObject *list = PySequence_List((PyObject*)&tmp);
+ PyTuple_SET_ITEM(result, 0, key); /* steals reference */
+ PyTuple_SET_ITEM(result, 1, value); /* steals reference */
+ }
+ return result;
+ }
+ else {
+ Py_UNREACHABLE();
+ }
+
+fail:
+ di->di_dict = NULL;
+ Py_DECREF(d);
+ return NULL;
+}
+
+PyTypeObject PyDictRevIterKey_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ "dict_reversekeyiterator",
+ sizeof(dictiterobject),
+ .tp_dealloc = (destructor)dictiter_dealloc,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ .tp_traverse = (traverseproc)dictiter_traverse,
+ .tp_iter = PyObject_SelfIter,
+ .tp_iternext = (iternextfunc)dictreviter_iternext,
+ .tp_methods = dictiter_methods
+};
+
+
+/*[clinic input]
+dict.__reversed__
+
+Return a reverse iterator over the dict keys.
+[clinic start generated code]*/
+
+static PyObject *
+dict___reversed___impl(PyDictObject *self)
+/*[clinic end generated code: output=e674483336d1ed51 input=23210ef3477d8c4d]*/
+{
+ assert (PyDict_Check(self));
+ return dictiter_new(self, &PyDictRevIterKey_Type);
+}
+
+static PyObject *
+dictiter_reduce(dictiterobject *di, PyObject *Py_UNUSED(ignored))
+{
+ _Py_IDENTIFIER(iter);
+ /* copy the iterator state */
+ dictiterobject tmp = *di;
+ Py_XINCREF(tmp.di_dict);
+
+ PyObject *list = PySequence_List((PyObject*)&tmp);
Py_XDECREF(tmp.di_dict);
- if (list == NULL) {
+ if (list == NULL) {
return NULL;
}
- return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
-}
-
-PyTypeObject PyDictRevIterItem_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "dict_reverseitemiterator",
- sizeof(dictiterobject),
- .tp_dealloc = (destructor)dictiter_dealloc,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- .tp_traverse = (traverseproc)dictiter_traverse,
- .tp_iter = PyObject_SelfIter,
- .tp_iternext = (iternextfunc)dictreviter_iternext,
- .tp_methods = dictiter_methods
-};
-
-PyTypeObject PyDictRevIterValue_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "dict_reversevalueiterator",
- sizeof(dictiterobject),
- .tp_dealloc = (destructor)dictiter_dealloc,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- .tp_traverse = (traverseproc)dictiter_traverse,
- .tp_iter = PyObject_SelfIter,
- .tp_iternext = (iternextfunc)dictreviter_iternext,
- .tp_methods = dictiter_methods
-};
-
+ return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
+}
+
+PyTypeObject PyDictRevIterItem_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ "dict_reverseitemiterator",
+ sizeof(dictiterobject),
+ .tp_dealloc = (destructor)dictiter_dealloc,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ .tp_traverse = (traverseproc)dictiter_traverse,
+ .tp_iter = PyObject_SelfIter,
+ .tp_iternext = (iternextfunc)dictreviter_iternext,
+ .tp_methods = dictiter_methods
+};
+
+PyTypeObject PyDictRevIterValue_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ "dict_reversevalueiterator",
+ sizeof(dictiterobject),
+ .tp_dealloc = (destructor)dictiter_dealloc,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ .tp_traverse = (traverseproc)dictiter_traverse,
+ .tp_iter = PyObject_SelfIter,
+ .tp_iternext = (iternextfunc)dictreviter_iternext,
+ .tp_methods = dictiter_methods
+};
+
/***********************************************/
/* View objects for keys(), items(), values(). */
/***********************************************/
@@ -4117,7 +4117,7 @@ _PyDictView_New(PyObject *dict, PyTypeObject *type)
/* XXX Get rid of this restriction later */
PyErr_Format(PyExc_TypeError,
"%s() requires a dict argument, not '%s'",
- type->tp_name, Py_TYPE(dict)->tp_name);
+ type->tp_name, Py_TYPE(dict)->tp_name);
return NULL;
}
dv = PyObject_GC_New(_PyDictViewObject, type);
@@ -4276,34 +4276,34 @@ static PySequenceMethods dictkeys_as_sequence = {
(objobjproc)dictkeys_contains, /* sq_contains */
};
-// Create an set object from dictviews object.
-// Returns a new reference.
-// This utility function is used by set operations.
+// Create an set object from dictviews object.
+// Returns a new reference.
+// This utility function is used by set operations.
+static PyObject*
+dictviews_to_set(PyObject *self)
+{
+ PyObject *left = self;
+ if (PyDictKeys_Check(self)) {
+ // PySet_New() has fast path for the dict object.
+ PyObject *dict = (PyObject *)((_PyDictViewObject *)self)->dv_dict;
+ if (PyDict_CheckExact(dict)) {
+ left = dict;
+ }
+ }
+ return PySet_New(left);
+}
+
static PyObject*
-dictviews_to_set(PyObject *self)
-{
- PyObject *left = self;
- if (PyDictKeys_Check(self)) {
- // PySet_New() has fast path for the dict object.
- PyObject *dict = (PyObject *)((_PyDictViewObject *)self)->dv_dict;
- if (PyDict_CheckExact(dict)) {
- left = dict;
- }
- }
- return PySet_New(left);
-}
-
-static PyObject*
-dictviews_sub(PyObject *self, PyObject *other)
-{
- PyObject *result = dictviews_to_set(self);
- if (result == NULL) {
+dictviews_sub(PyObject *self, PyObject *other)
+{
+ PyObject *result = dictviews_to_set(self);
+ if (result == NULL) {
return NULL;
- }
+ }
- _Py_IDENTIFIER(difference_update);
- PyObject *tmp = _PyObject_CallMethodIdOneArg(
- result, &PyId_difference_update, other);
+ _Py_IDENTIFIER(difference_update);
+ PyObject *tmp = _PyObject_CallMethodIdOneArg(
+ result, &PyId_difference_update, other);
if (tmp == NULL) {
Py_DECREF(result);
return NULL;
@@ -4313,103 +4313,103 @@ dictviews_sub(PyObject *self, PyObject *other)
return result;
}
-static int
-dictitems_contains(_PyDictViewObject *dv, PyObject *obj);
-
-PyObject *
+static int
+dictitems_contains(_PyDictViewObject *dv, PyObject *obj);
+
+PyObject *
_PyDictView_Intersect(PyObject* self, PyObject *other)
{
- PyObject *result;
- PyObject *it;
- PyObject *key;
- Py_ssize_t len_self;
- int rv;
- int (*dict_contains)(_PyDictViewObject *, PyObject *);
-
- /* Python interpreter swaps parameters when dict view
- is on right side of & */
- if (!PyDictViewSet_Check(self)) {
- PyObject *tmp = other;
- other = self;
- self = tmp;
- }
-
- len_self = dictview_len((_PyDictViewObject *)self);
-
- /* if other is a set and self is smaller than other,
- reuse set intersection logic */
- if (Py_IS_TYPE(other, &PySet_Type) && len_self <= PyObject_Size(other)) {
- _Py_IDENTIFIER(intersection);
- return _PyObject_CallMethodIdObjArgs(other, &PyId_intersection, self, NULL);
- }
-
- /* if other is another dict view, and it is bigger than self,
- swap them */
- if (PyDictViewSet_Check(other)) {
- Py_ssize_t len_other = dictview_len((_PyDictViewObject *)other);
- if (len_other > len_self) {
- PyObject *tmp = other;
- other = self;
- self = tmp;
- }
- }
-
- /* at this point, two things should be true
- 1. self is a dictview
- 2. if other is a dictview then it is smaller than self */
- result = PySet_New(NULL);
+ PyObject *result;
+ PyObject *it;
+ PyObject *key;
+ Py_ssize_t len_self;
+ int rv;
+ int (*dict_contains)(_PyDictViewObject *, PyObject *);
+
+ /* Python interpreter swaps parameters when dict view
+ is on right side of & */
+ if (!PyDictViewSet_Check(self)) {
+ PyObject *tmp = other;
+ other = self;
+ self = tmp;
+ }
+
+ len_self = dictview_len((_PyDictViewObject *)self);
+
+ /* if other is a set and self is smaller than other,
+ reuse set intersection logic */
+ if (Py_IS_TYPE(other, &PySet_Type) && len_self <= PyObject_Size(other)) {
+ _Py_IDENTIFIER(intersection);
+ return _PyObject_CallMethodIdObjArgs(other, &PyId_intersection, self, NULL);
+ }
+
+ /* if other is another dict view, and it is bigger than self,
+ swap them */
+ if (PyDictViewSet_Check(other)) {
+ Py_ssize_t len_other = dictview_len((_PyDictViewObject *)other);
+ if (len_other > len_self) {
+ PyObject *tmp = other;
+ other = self;
+ self = tmp;
+ }
+ }
+
+ /* at this point, two things should be true
+ 1. self is a dictview
+ 2. if other is a dictview then it is smaller than self */
+ result = PySet_New(NULL);
if (result == NULL)
return NULL;
- it = PyObject_GetIter(other);
- if (it == NULL) {
+ it = PyObject_GetIter(other);
+ if (it == NULL) {
Py_DECREF(result);
return NULL;
}
- if (PyDictKeys_Check(self)) {
- dict_contains = dictkeys_contains;
- }
- /* else PyDictItems_Check(self) */
- else {
- dict_contains = dictitems_contains;
- }
-
- while ((key = PyIter_Next(it)) != NULL) {
- rv = dict_contains((_PyDictViewObject *)self, key);
- if (rv < 0) {
- goto error;
- }
- if (rv) {
- if (PySet_Add(result, key)) {
- goto error;
- }
- }
- Py_DECREF(key);
- }
- Py_DECREF(it);
- if (PyErr_Occurred()) {
- Py_DECREF(result);
- return NULL;
- }
+ if (PyDictKeys_Check(self)) {
+ dict_contains = dictkeys_contains;
+ }
+ /* else PyDictItems_Check(self) */
+ else {
+ dict_contains = dictitems_contains;
+ }
+
+ while ((key = PyIter_Next(it)) != NULL) {
+ rv = dict_contains((_PyDictViewObject *)self, key);
+ if (rv < 0) {
+ goto error;
+ }
+ if (rv) {
+ if (PySet_Add(result, key)) {
+ goto error;
+ }
+ }
+ Py_DECREF(key);
+ }
+ Py_DECREF(it);
+ if (PyErr_Occurred()) {
+ Py_DECREF(result);
+ return NULL;
+ }
return result;
-
-error:
- Py_DECREF(it);
- Py_DECREF(result);
- Py_DECREF(key);
- return NULL;
+
+error:
+ Py_DECREF(it);
+ Py_DECREF(result);
+ Py_DECREF(key);
+ return NULL;
}
static PyObject*
dictviews_or(PyObject* self, PyObject *other)
{
- PyObject *result = dictviews_to_set(self);
- if (result == NULL) {
+ PyObject *result = dictviews_to_set(self);
+ if (result == NULL) {
return NULL;
- }
+ }
- if (_PySet_Update(result, other) < 0) {
+ if (_PySet_Update(result, other) < 0) {
Py_DECREF(result);
return NULL;
}
@@ -4419,14 +4419,14 @@ dictviews_or(PyObject* self, PyObject *other)
static PyObject*
dictviews_xor(PyObject* self, PyObject *other)
{
- PyObject *result = dictviews_to_set(self);
- if (result == NULL) {
+ PyObject *result = dictviews_to_set(self);
+ if (result == NULL) {
return NULL;
- }
+ }
- _Py_IDENTIFIER(symmetric_difference_update);
- PyObject *tmp = _PyObject_CallMethodIdOneArg(
- result, &PyId_symmetric_difference_update, other);
+ _Py_IDENTIFIER(symmetric_difference_update);
+ PyObject *tmp = _PyObject_CallMethodIdOneArg(
+ result, &PyId_symmetric_difference_update, other);
if (tmp == NULL) {
Py_DECREF(result);
return NULL;
@@ -4509,16 +4509,16 @@ dictviews_isdisjoint(PyObject *self, PyObject *other)
PyDoc_STRVAR(isdisjoint_doc,
"Return True if the view and the given iterable have a null intersection.");
-static PyObject* dictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored));
-
-PyDoc_STRVAR(reversed_keys_doc,
-"Return a reverse iterator over the dict keys.");
-
+static PyObject* dictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored));
+
+PyDoc_STRVAR(reversed_keys_doc,
+"Return a reverse iterator over the dict keys.");
+
static PyMethodDef dictkeys_methods[] = {
{"isdisjoint", (PyCFunction)dictviews_isdisjoint, METH_O,
isdisjoint_doc},
- {"__reversed__", (PyCFunction)(void(*)(void))dictkeys_reversed, METH_NOARGS,
- reversed_keys_doc},
+ {"__reversed__", (PyCFunction)(void(*)(void))dictkeys_reversed, METH_NOARGS,
+ reversed_keys_doc},
{NULL, NULL} /* sentinel */
};
@@ -4529,10 +4529,10 @@ PyTypeObject PyDictKeys_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)dictview_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)dictview_repr, /* tp_repr */
&dictviews_as_number, /* tp_as_number */
&dictkeys_as_sequence, /* tp_as_sequence */
@@ -4556,20 +4556,20 @@ PyTypeObject PyDictKeys_Type = {
};
static PyObject *
-dictkeys_new(PyObject *dict, PyObject *Py_UNUSED(ignored))
+dictkeys_new(PyObject *dict, PyObject *Py_UNUSED(ignored))
{
return _PyDictView_New(dict, &PyDictKeys_Type);
}
-static PyObject *
-dictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
-{
- if (dv->dv_dict == NULL) {
- Py_RETURN_NONE;
- }
- return dictiter_new(dv->dv_dict, &PyDictRevIterKey_Type);
-}
-
+static PyObject *
+dictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
+{
+ if (dv->dv_dict == NULL) {
+ Py_RETURN_NONE;
+ }
+ return dictiter_new(dv->dv_dict, &PyDictRevIterKey_Type);
+}
+
/*** dict_items ***/
static PyObject *
@@ -4599,7 +4599,7 @@ dictitems_contains(_PyDictViewObject *dv, PyObject *obj)
return 0;
}
Py_INCREF(found);
- result = PyObject_RichCompareBool(found, value, Py_EQ);
+ result = PyObject_RichCompareBool(found, value, Py_EQ);
Py_DECREF(found);
return result;
}
@@ -4615,16 +4615,16 @@ static PySequenceMethods dictitems_as_sequence = {
(objobjproc)dictitems_contains, /* sq_contains */
};
-static PyObject* dictitems_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored));
-
-PyDoc_STRVAR(reversed_items_doc,
-"Return a reverse iterator over the dict items.");
-
+static PyObject* dictitems_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored));
+
+PyDoc_STRVAR(reversed_items_doc,
+"Return a reverse iterator over the dict items.");
+
static PyMethodDef dictitems_methods[] = {
{"isdisjoint", (PyCFunction)dictviews_isdisjoint, METH_O,
isdisjoint_doc},
- {"__reversed__", (PyCFunction)dictitems_reversed, METH_NOARGS,
- reversed_items_doc},
+ {"__reversed__", (PyCFunction)dictitems_reversed, METH_NOARGS,
+ reversed_items_doc},
{NULL, NULL} /* sentinel */
};
@@ -4635,10 +4635,10 @@ PyTypeObject PyDictItems_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)dictview_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)dictview_repr, /* tp_repr */
&dictviews_as_number, /* tp_as_number */
&dictitems_as_sequence, /* tp_as_sequence */
@@ -4662,20 +4662,20 @@ PyTypeObject PyDictItems_Type = {
};
static PyObject *
-dictitems_new(PyObject *dict, PyObject *Py_UNUSED(ignored))
+dictitems_new(PyObject *dict, PyObject *Py_UNUSED(ignored))
{
return _PyDictView_New(dict, &PyDictItems_Type);
}
-static PyObject *
-dictitems_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
-{
- if (dv->dv_dict == NULL) {
- Py_RETURN_NONE;
- }
- return dictiter_new(dv->dv_dict, &PyDictRevIterItem_Type);
-}
-
+static PyObject *
+dictitems_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
+{
+ if (dv->dv_dict == NULL) {
+ Py_RETURN_NONE;
+ }
+ return dictiter_new(dv->dv_dict, &PyDictRevIterItem_Type);
+}
+
/*** dict_values ***/
static PyObject *
@@ -4698,14 +4698,14 @@ static PySequenceMethods dictvalues_as_sequence = {
(objobjproc)0, /* sq_contains */
};
-static PyObject* dictvalues_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored));
-
-PyDoc_STRVAR(reversed_values_doc,
-"Return a reverse iterator over the dict values.");
-
+static PyObject* dictvalues_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored));
+
+PyDoc_STRVAR(reversed_values_doc,
+"Return a reverse iterator over the dict values.");
+
static PyMethodDef dictvalues_methods[] = {
- {"__reversed__", (PyCFunction)dictvalues_reversed, METH_NOARGS,
- reversed_values_doc},
+ {"__reversed__", (PyCFunction)dictvalues_reversed, METH_NOARGS,
+ reversed_values_doc},
{NULL, NULL} /* sentinel */
};
@@ -4716,10 +4716,10 @@ PyTypeObject PyDictValues_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)dictview_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)dictview_repr, /* tp_repr */
0, /* tp_as_number */
&dictvalues_as_sequence, /* tp_as_sequence */
@@ -4743,21 +4743,21 @@ PyTypeObject PyDictValues_Type = {
};
static PyObject *
-dictvalues_new(PyObject *dict, PyObject *Py_UNUSED(ignored))
+dictvalues_new(PyObject *dict, PyObject *Py_UNUSED(ignored))
{
return _PyDictView_New(dict, &PyDictValues_Type);
}
-static PyObject *
-dictvalues_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
-{
- if (dv->dv_dict == NULL) {
- Py_RETURN_NONE;
- }
- return dictiter_new(dv->dv_dict, &PyDictRevIterValue_Type);
-}
-
-
+static PyObject *
+dictvalues_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
+{
+ if (dv->dv_dict == NULL) {
+ Py_RETURN_NONE;
+ }
+ return dictiter_new(dv->dv_dict, &PyDictRevIterValue_Type);
+}
+
+
/* Returns NULL if cannot allocate a new PyDictKeysObject,
but does not set an error */
PyDictKeysObject *
@@ -4786,7 +4786,7 @@ PyObject_GenericGetDict(PyObject *obj, void *context)
if (dict == NULL) {
PyTypeObject *tp = Py_TYPE(obj);
if ((tp->tp_flags & Py_TPFLAGS_HEAPTYPE) && CACHED_KEYS(tp)) {
- dictkeys_incref(CACHED_KEYS(tp));
+ dictkeys_incref(CACHED_KEYS(tp));
*dictptr = dict = new_dict_with_shared_keys(CACHED_KEYS(tp));
}
else {
@@ -4810,7 +4810,7 @@ _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr,
assert(dictptr != NULL);
dict = *dictptr;
if (dict == NULL) {
- dictkeys_incref(cached);
+ dictkeys_incref(cached);
dict = new_dict_with_shared_keys(cached);
if (dict == NULL)
return -1;
@@ -4822,7 +4822,7 @@ _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr,
// always converts dict to combined form.
if ((cached = CACHED_KEYS(tp)) != NULL) {
CACHED_KEYS(tp) = NULL;
- dictkeys_decref(cached);
+ dictkeys_decref(cached);
}
}
else {
@@ -4851,7 +4851,7 @@ _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr,
else {
CACHED_KEYS(tp) = NULL;
}
- dictkeys_decref(cached);
+ dictkeys_decref(cached);
if (CACHED_KEYS(tp) == NULL && PyErr_Occurred())
return -1;
}
@@ -4876,5 +4876,5 @@ _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr,
void
_PyDictKeys_DecRef(PyDictKeysObject *keys)
{
- dictkeys_decref(keys);
+ dictkeys_decref(keys);
}
diff --git a/contrib/tools/python3/src/Objects/enumobject.c b/contrib/tools/python3/src/Objects/enumobject.c
index 9752d0046c..bdd0ea5f39 100644
--- a/contrib/tools/python3/src/Objects/enumobject.c
+++ b/contrib/tools/python3/src/Objects/enumobject.c
@@ -1,7 +1,7 @@
/* enumerate object */
#include "Python.h"
-#include "pycore_object.h" // _PyObject_GC_TRACK()
+#include "pycore_object.h" // _PyObject_GC_TRACK()
#include "clinic/enumobject.c.h"
@@ -123,7 +123,7 @@ enum_next_long(enumobject *en, PyObject* next_item)
}
en->en_longindex = stepped_up;
- if (Py_REFCNT(result) == 1) {
+ if (Py_REFCNT(result) == 1) {
Py_INCREF(result);
old_index = PyTuple_GET_ITEM(result, 0);
old_item = PyTuple_GET_ITEM(result, 1);
@@ -131,11 +131,11 @@ enum_next_long(enumobject *en, PyObject* next_item)
PyTuple_SET_ITEM(result, 1, next_item);
Py_DECREF(old_index);
Py_DECREF(old_item);
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
return result;
}
result = PyTuple_New(2);
@@ -173,7 +173,7 @@ enum_next(enumobject *en)
}
en->en_index++;
- if (Py_REFCNT(result) == 1) {
+ if (Py_REFCNT(result) == 1) {
Py_INCREF(result);
old_index = PyTuple_GET_ITEM(result, 0);
old_item = PyTuple_GET_ITEM(result, 1);
@@ -181,11 +181,11 @@ enum_next(enumobject *en)
PyTuple_SET_ITEM(result, 1, next_item);
Py_DECREF(old_index);
Py_DECREF(old_item);
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
return result;
}
result = PyTuple_New(2);
@@ -200,7 +200,7 @@ enum_next(enumobject *en)
}
static PyObject *
-enum_reduce(enumobject *en, PyObject *Py_UNUSED(ignored))
+enum_reduce(enumobject *en, PyObject *Py_UNUSED(ignored))
{
if (en->en_longindex != NULL)
return Py_BuildValue("O(OO)", Py_TYPE(en), en->en_sit, en->en_longindex);
@@ -212,8 +212,8 @@ PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
static PyMethodDef enum_methods[] = {
{"__reduce__", (PyCFunction)enum_reduce, METH_NOARGS, reduce_doc},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -224,10 +224,10 @@ PyTypeObject PyEnum_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)enum_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -362,7 +362,7 @@ reversed_next(reversedobject *ro)
}
static PyObject *
-reversed_len(reversedobject *ro, PyObject *Py_UNUSED(ignored))
+reversed_len(reversedobject *ro, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t position, seqsize;
@@ -378,7 +378,7 @@ reversed_len(reversedobject *ro, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
static PyObject *
-reversed_reduce(reversedobject *ro, PyObject *Py_UNUSED(ignored))
+reversed_reduce(reversedobject *ro, PyObject *Py_UNUSED(ignored))
{
if (ro->seq)
return Py_BuildValue("O(O)n", Py_TYPE(ro), ro->seq, ro->index);
@@ -421,10 +421,10 @@ PyTypeObject PyReversed_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)reversed_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/exceptions.c b/contrib/tools/python3/src/Objects/exceptions.c
index 3ca2e688e7..e67ecfab85 100644
--- a/contrib/tools/python3/src/Objects/exceptions.c
+++ b/contrib/tools/python3/src/Objects/exceptions.c
@@ -6,10 +6,10 @@
#define PY_SSIZE_T_CLEAN
#include <Python.h>
-#include "pycore_initconfig.h"
-#include "pycore_object.h"
-#include "structmember.h" // PyMemberDef
-#include "osdefs.h" // SEP
+#include "pycore_initconfig.h"
+#include "pycore_object.h"
+#include "structmember.h" // PyMemberDef
+#include "osdefs.h" // SEP
/* Compatibility aliases */
@@ -126,7 +126,7 @@ BaseException_repr(PyBaseExceptionObject *self)
/* Pickling support */
static PyObject *
-BaseException_reduce(PyBaseExceptionObject *self, PyObject *Py_UNUSED(ignored))
+BaseException_reduce(PyBaseExceptionObject *self, PyObject *Py_UNUSED(ignored))
{
if (self->args && self->dict)
return PyTuple_Pack(3, Py_TYPE(self), self->args, self->dict);
@@ -304,33 +304,33 @@ static PyGetSetDef BaseException_getset[] = {
};
-static inline PyBaseExceptionObject*
-_PyBaseExceptionObject_cast(PyObject *exc)
-{
- assert(PyExceptionInstance_Check(exc));
- return (PyBaseExceptionObject *)exc;
-}
-
-
+static inline PyBaseExceptionObject*
+_PyBaseExceptionObject_cast(PyObject *exc)
+{
+ assert(PyExceptionInstance_Check(exc));
+ return (PyBaseExceptionObject *)exc;
+}
+
+
PyObject *
-PyException_GetTraceback(PyObject *self)
-{
- PyBaseExceptionObject *base_self = _PyBaseExceptionObject_cast(self);
+PyException_GetTraceback(PyObject *self)
+{
+ PyBaseExceptionObject *base_self = _PyBaseExceptionObject_cast(self);
Py_XINCREF(base_self->traceback);
return base_self->traceback;
}
int
-PyException_SetTraceback(PyObject *self, PyObject *tb)
-{
- return BaseException_set_tb(_PyBaseExceptionObject_cast(self), tb, NULL);
+PyException_SetTraceback(PyObject *self, PyObject *tb)
+{
+ return BaseException_set_tb(_PyBaseExceptionObject_cast(self), tb, NULL);
}
PyObject *
-PyException_GetCause(PyObject *self)
-{
- PyObject *cause = _PyBaseExceptionObject_cast(self)->cause;
+PyException_GetCause(PyObject *self)
+{
+ PyObject *cause = _PyBaseExceptionObject_cast(self)->cause;
Py_XINCREF(cause);
return cause;
}
@@ -339,15 +339,15 @@ PyException_GetCause(PyObject *self)
void
PyException_SetCause(PyObject *self, PyObject *cause)
{
- PyBaseExceptionObject *base_self = _PyBaseExceptionObject_cast(self);
- base_self->suppress_context = 1;
- Py_XSETREF(base_self->cause, cause);
+ PyBaseExceptionObject *base_self = _PyBaseExceptionObject_cast(self);
+ base_self->suppress_context = 1;
+ Py_XSETREF(base_self->cause, cause);
}
PyObject *
-PyException_GetContext(PyObject *self)
-{
- PyObject *context = _PyBaseExceptionObject_cast(self)->context;
+PyException_GetContext(PyObject *self)
+{
+ PyObject *context = _PyBaseExceptionObject_cast(self)->context;
Py_XINCREF(context);
return context;
}
@@ -356,18 +356,18 @@ PyException_GetContext(PyObject *self)
void
PyException_SetContext(PyObject *self, PyObject *context)
{
- Py_XSETREF(_PyBaseExceptionObject_cast(self)->context, context);
+ Py_XSETREF(_PyBaseExceptionObject_cast(self)->context, context);
}
-#undef PyExceptionClass_Name
+#undef PyExceptionClass_Name
+
+const char *
+PyExceptionClass_Name(PyObject *ob)
+{
+ assert(PyExceptionClass_Check(ob));
+ return ((PyTypeObject*)ob)->tp_name;
+}
-const char *
-PyExceptionClass_Name(PyObject *ob)
-{
- assert(PyExceptionClass_Check(ob));
- return ((PyTypeObject*)ob)->tp_name;
-}
-
static struct PyMemberDef BaseException_members[] = {
{"__suppress_context__", T_BOOL,
offsetof(PyBaseExceptionObject, suppress_context)},
@@ -381,10 +381,10 @@ static PyTypeObject _PyExc_BaseException = {
sizeof(PyBaseExceptionObject), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)BaseException_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)BaseException_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -417,7 +417,7 @@ static PyTypeObject _PyExc_BaseException = {
BaseException_new, /* tp_new */
};
/* the CPython API expects exceptions to be (PyObject *) - both a hold-over
-from the previous implementation and also allowing Python objects to be used
+from the previous implementation and also allowing Python objects to be used
in the API */
PyObject *PyExc_BaseException = (PyObject *)&_PyExc_BaseException;
@@ -738,7 +738,7 @@ ImportError_getstate(PyImportErrorObject *self)
/* Pickling support */
static PyObject *
-ImportError_reduce(PyImportErrorObject *self, PyObject *Py_UNUSED(ignored))
+ImportError_reduce(PyImportErrorObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *res;
PyObject *args;
@@ -887,7 +887,7 @@ oserror_init(PyOSErrorObject *self, PyObject **p_args,
/* self->filename will remain Py_None otherwise */
if (filename && filename != Py_None) {
- if (Py_IS_TYPE(self, (PyTypeObject *) PyExc_BlockingIOError) &&
+ if (Py_IS_TYPE(self, (PyTypeObject *) PyExc_BlockingIOError) &&
PyNumber_Check(filename)) {
/* BlockingIOError's 3rd argument can be the number of
* characters written.
@@ -988,7 +988,7 @@ OSError_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (myerrno && PyLong_Check(myerrno) &&
errnomap && (PyObject *) type == PyExc_OSError) {
PyObject *newtype;
- newtype = PyDict_GetItemWithError(errnomap, myerrno);
+ newtype = PyDict_GetItemWithError(errnomap, myerrno);
if (newtype) {
assert(PyType_Check(newtype));
type = (PyTypeObject *) newtype;
@@ -1148,7 +1148,7 @@ OSError_str(PyOSErrorObject *self)
}
static PyObject *
-OSError_reduce(PyOSErrorObject *self, PyObject *Py_UNUSED(ignored))
+OSError_reduce(PyOSErrorObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *args = self->args;
PyObject *res = NULL, *tmp;
@@ -1209,14 +1209,14 @@ OSError_written_get(PyOSErrorObject *self, void *context)
static int
OSError_written_set(PyOSErrorObject *self, PyObject *arg, void *context)
{
- if (arg == NULL) {
- if (self->written == -1) {
- PyErr_SetString(PyExc_AttributeError, "characters_written");
- return -1;
- }
- self->written = -1;
- return 0;
- }
+ if (arg == NULL) {
+ if (self->written == -1) {
+ PyErr_SetString(PyExc_AttributeError, "characters_written");
+ return -1;
+ }
+ self->written = -1;
+ return 0;
+ }
Py_ssize_t n;
n = PyNumber_AsSsize_t(arg, PyExc_ValueError);
if (n == -1 && PyErr_Occurred())
@@ -1391,7 +1391,7 @@ SyntaxError_init(PySyntaxErrorObject *self, PyObject *args, PyObject *kwds)
* Only applies to SyntaxError instances, not to subclasses such
* as TabError or IndentationError (see issue #31161)
*/
- if (Py_IS_TYPE(self, (PyTypeObject *)PyExc_SyntaxError) &&
+ if (Py_IS_TYPE(self, (PyTypeObject *)PyExc_SyntaxError) &&
self->text && PyUnicode_Check(self->text) &&
_report_missing_parentheses(self) < 0) {
return -1;
@@ -1440,7 +1440,7 @@ my_basename(PyObject *name)
{
Py_ssize_t i, size, offset;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(name))
return NULL;
@@ -1449,13 +1449,13 @@ my_basename(PyObject *name)
size = PyUnicode_GET_LENGTH(name);
offset = 0;
for(i=0; i < size; i++) {
- if (PyUnicode_READ(kind, data, i) == SEP) {
+ if (PyUnicode_READ(kind, data, i) == SEP) {
offset = i + 1;
- }
+ }
}
- if (offset != 0) {
+ if (offset != 0) {
return PyUnicode_Substring(name, offset, size);
- }
+ }
else {
Py_INCREF(name);
return name;
@@ -1773,9 +1773,9 @@ PyUnicodeDecodeError_GetEnd(PyObject *exc, Py_ssize_t *end)
int
-PyUnicodeTranslateError_GetEnd(PyObject *exc, Py_ssize_t *end)
+PyUnicodeTranslateError_GetEnd(PyObject *exc, Py_ssize_t *end)
{
- return PyUnicodeEncodeError_GetEnd(exc, end);
+ return PyUnicodeEncodeError_GetEnd(exc, end);
}
@@ -2282,12 +2282,12 @@ MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
PyBaseExceptionObject *self;
- /* If this is a subclass of MemoryError, don't use the freelist
- * and just return a fresh object */
- if (type != (PyTypeObject *) PyExc_MemoryError) {
+ /* If this is a subclass of MemoryError, don't use the freelist
+ * and just return a fresh object */
+ if (type != (PyTypeObject *) PyExc_MemoryError) {
return BaseException_new(type, args, kwds);
- }
-
+ }
+
if (memerrors_freelist == NULL)
return BaseException_new(type, args, kwds);
/* Fetch object from freelist and revive it */
@@ -2307,15 +2307,15 @@ MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static void
MemoryError_dealloc(PyBaseExceptionObject *self)
{
- BaseException_clear(self);
-
- if (!Py_IS_TYPE(self, (PyTypeObject *) PyExc_MemoryError)) {
- Py_TYPE(self)->tp_free((PyObject *)self);
- return;
- }
-
+ BaseException_clear(self);
+
+ if (!Py_IS_TYPE(self, (PyTypeObject *) PyExc_MemoryError)) {
+ Py_TYPE(self)->tp_free((PyObject *)self);
+ return;
+ }
+
_PyObject_GC_UNTRACK(self);
-
+
if (memerrors_numfree >= MEMERRORS_SAVE)
Py_TYPE(self)->tp_free((PyObject *)self);
else {
@@ -2325,7 +2325,7 @@ MemoryError_dealloc(PyBaseExceptionObject *self)
}
}
-static int
+static int
preallocate_memerrors(void)
{
/* We create enough MemoryErrors and then decref them, which will fill
@@ -2335,14 +2335,14 @@ preallocate_memerrors(void)
for (i = 0; i < MEMERRORS_SAVE; i++) {
errors[i] = MemoryError_new((PyTypeObject *) PyExc_MemoryError,
NULL, NULL);
- if (!errors[i]) {
- return -1;
- }
+ if (!errors[i]) {
+ return -1;
+ }
}
for (i = 0; i < MEMERRORS_SAVE; i++) {
Py_DECREF(errors[i]);
}
- return 0;
+ return 0;
}
static void
@@ -2517,242 +2517,242 @@ SimpleExtendsException(PyExc_Warning, ResourceWarning,
#endif
#endif /* MS_WINDOWS */
-PyStatus
-_PyExc_Init(void)
-{
-#define PRE_INIT(TYPE) \
- if (!(_PyExc_ ## TYPE.tp_flags & Py_TPFLAGS_READY)) { \
- if (PyType_Ready(&_PyExc_ ## TYPE) < 0) { \
- return _PyStatus_ERR("exceptions bootstrapping error."); \
- } \
- Py_INCREF(PyExc_ ## TYPE); \
- }
-
-#define ADD_ERRNO(TYPE, CODE) \
- do { \
- PyObject *_code = PyLong_FromLong(CODE); \
- assert(_PyObject_RealIsSubclass(PyExc_ ## TYPE, PyExc_OSError)); \
- if (!_code || PyDict_SetItem(errnomap, _code, PyExc_ ## TYPE)) { \
- Py_XDECREF(_code); \
- return _PyStatus_ERR("errmap insertion problem."); \
- } \
- Py_DECREF(_code); \
- } while (0)
-
- PRE_INIT(BaseException);
- PRE_INIT(Exception);
- PRE_INIT(TypeError);
- PRE_INIT(StopAsyncIteration);
- PRE_INIT(StopIteration);
- PRE_INIT(GeneratorExit);
- PRE_INIT(SystemExit);
- PRE_INIT(KeyboardInterrupt);
- PRE_INIT(ImportError);
- PRE_INIT(ModuleNotFoundError);
- PRE_INIT(OSError);
- PRE_INIT(EOFError);
- PRE_INIT(RuntimeError);
- PRE_INIT(RecursionError);
- PRE_INIT(NotImplementedError);
- PRE_INIT(NameError);
- PRE_INIT(UnboundLocalError);
- PRE_INIT(AttributeError);
- PRE_INIT(SyntaxError);
- PRE_INIT(IndentationError);
- PRE_INIT(TabError);
- PRE_INIT(LookupError);
- PRE_INIT(IndexError);
- PRE_INIT(KeyError);
- PRE_INIT(ValueError);
- PRE_INIT(UnicodeError);
- PRE_INIT(UnicodeEncodeError);
- PRE_INIT(UnicodeDecodeError);
- PRE_INIT(UnicodeTranslateError);
- PRE_INIT(AssertionError);
- PRE_INIT(ArithmeticError);
- PRE_INIT(FloatingPointError);
- PRE_INIT(OverflowError);
- PRE_INIT(ZeroDivisionError);
- PRE_INIT(SystemError);
- PRE_INIT(ReferenceError);
- PRE_INIT(MemoryError);
- PRE_INIT(BufferError);
- PRE_INIT(Warning);
- PRE_INIT(UserWarning);
- PRE_INIT(DeprecationWarning);
- PRE_INIT(PendingDeprecationWarning);
- PRE_INIT(SyntaxWarning);
- PRE_INIT(RuntimeWarning);
- PRE_INIT(FutureWarning);
- PRE_INIT(ImportWarning);
- PRE_INIT(UnicodeWarning);
- PRE_INIT(BytesWarning);
- PRE_INIT(ResourceWarning);
-
+PyStatus
+_PyExc_Init(void)
+{
+#define PRE_INIT(TYPE) \
+ if (!(_PyExc_ ## TYPE.tp_flags & Py_TPFLAGS_READY)) { \
+ if (PyType_Ready(&_PyExc_ ## TYPE) < 0) { \
+ return _PyStatus_ERR("exceptions bootstrapping error."); \
+ } \
+ Py_INCREF(PyExc_ ## TYPE); \
+ }
+
+#define ADD_ERRNO(TYPE, CODE) \
+ do { \
+ PyObject *_code = PyLong_FromLong(CODE); \
+ assert(_PyObject_RealIsSubclass(PyExc_ ## TYPE, PyExc_OSError)); \
+ if (!_code || PyDict_SetItem(errnomap, _code, PyExc_ ## TYPE)) { \
+ Py_XDECREF(_code); \
+ return _PyStatus_ERR("errmap insertion problem."); \
+ } \
+ Py_DECREF(_code); \
+ } while (0)
+
+ PRE_INIT(BaseException);
+ PRE_INIT(Exception);
+ PRE_INIT(TypeError);
+ PRE_INIT(StopAsyncIteration);
+ PRE_INIT(StopIteration);
+ PRE_INIT(GeneratorExit);
+ PRE_INIT(SystemExit);
+ PRE_INIT(KeyboardInterrupt);
+ PRE_INIT(ImportError);
+ PRE_INIT(ModuleNotFoundError);
+ PRE_INIT(OSError);
+ PRE_INIT(EOFError);
+ PRE_INIT(RuntimeError);
+ PRE_INIT(RecursionError);
+ PRE_INIT(NotImplementedError);
+ PRE_INIT(NameError);
+ PRE_INIT(UnboundLocalError);
+ PRE_INIT(AttributeError);
+ PRE_INIT(SyntaxError);
+ PRE_INIT(IndentationError);
+ PRE_INIT(TabError);
+ PRE_INIT(LookupError);
+ PRE_INIT(IndexError);
+ PRE_INIT(KeyError);
+ PRE_INIT(ValueError);
+ PRE_INIT(UnicodeError);
+ PRE_INIT(UnicodeEncodeError);
+ PRE_INIT(UnicodeDecodeError);
+ PRE_INIT(UnicodeTranslateError);
+ PRE_INIT(AssertionError);
+ PRE_INIT(ArithmeticError);
+ PRE_INIT(FloatingPointError);
+ PRE_INIT(OverflowError);
+ PRE_INIT(ZeroDivisionError);
+ PRE_INIT(SystemError);
+ PRE_INIT(ReferenceError);
+ PRE_INIT(MemoryError);
+ PRE_INIT(BufferError);
+ PRE_INIT(Warning);
+ PRE_INIT(UserWarning);
+ PRE_INIT(DeprecationWarning);
+ PRE_INIT(PendingDeprecationWarning);
+ PRE_INIT(SyntaxWarning);
+ PRE_INIT(RuntimeWarning);
+ PRE_INIT(FutureWarning);
+ PRE_INIT(ImportWarning);
+ PRE_INIT(UnicodeWarning);
+ PRE_INIT(BytesWarning);
+ PRE_INIT(ResourceWarning);
+
/* OSError subclasses */
- PRE_INIT(ConnectionError);
-
- PRE_INIT(BlockingIOError);
- PRE_INIT(BrokenPipeError);
- PRE_INIT(ChildProcessError);
- PRE_INIT(ConnectionAbortedError);
- PRE_INIT(ConnectionRefusedError);
- PRE_INIT(ConnectionResetError);
- PRE_INIT(FileExistsError);
- PRE_INIT(FileNotFoundError);
- PRE_INIT(IsADirectoryError);
- PRE_INIT(NotADirectoryError);
- PRE_INIT(InterruptedError);
- PRE_INIT(PermissionError);
- PRE_INIT(ProcessLookupError);
- PRE_INIT(TimeoutError);
-
- if (preallocate_memerrors() < 0) {
- return _PyStatus_ERR("Could not preallocate MemoryError object");
- }
-
- /* Add exceptions to errnomap */
+ PRE_INIT(ConnectionError);
+
+ PRE_INIT(BlockingIOError);
+ PRE_INIT(BrokenPipeError);
+ PRE_INIT(ChildProcessError);
+ PRE_INIT(ConnectionAbortedError);
+ PRE_INIT(ConnectionRefusedError);
+ PRE_INIT(ConnectionResetError);
+ PRE_INIT(FileExistsError);
+ PRE_INIT(FileNotFoundError);
+ PRE_INIT(IsADirectoryError);
+ PRE_INIT(NotADirectoryError);
+ PRE_INIT(InterruptedError);
+ PRE_INIT(PermissionError);
+ PRE_INIT(ProcessLookupError);
+ PRE_INIT(TimeoutError);
+
+ if (preallocate_memerrors() < 0) {
+ return _PyStatus_ERR("Could not preallocate MemoryError object");
+ }
+
+ /* Add exceptions to errnomap */
if (!errnomap) {
errnomap = PyDict_New();
- if (!errnomap) {
- return _PyStatus_ERR("Cannot allocate map from errnos to OSError subclasses");
- }
+ if (!errnomap) {
+ return _PyStatus_ERR("Cannot allocate map from errnos to OSError subclasses");
+ }
}
- ADD_ERRNO(BlockingIOError, EAGAIN);
- ADD_ERRNO(BlockingIOError, EALREADY);
- ADD_ERRNO(BlockingIOError, EINPROGRESS);
- ADD_ERRNO(BlockingIOError, EWOULDBLOCK);
- ADD_ERRNO(BrokenPipeError, EPIPE);
+ ADD_ERRNO(BlockingIOError, EAGAIN);
+ ADD_ERRNO(BlockingIOError, EALREADY);
+ ADD_ERRNO(BlockingIOError, EINPROGRESS);
+ ADD_ERRNO(BlockingIOError, EWOULDBLOCK);
+ ADD_ERRNO(BrokenPipeError, EPIPE);
#ifdef ESHUTDOWN
- ADD_ERRNO(BrokenPipeError, ESHUTDOWN);
+ ADD_ERRNO(BrokenPipeError, ESHUTDOWN);
+#endif
+ ADD_ERRNO(ChildProcessError, ECHILD);
+ ADD_ERRNO(ConnectionAbortedError, ECONNABORTED);
+ ADD_ERRNO(ConnectionRefusedError, ECONNREFUSED);
+ ADD_ERRNO(ConnectionResetError, ECONNRESET);
+ ADD_ERRNO(FileExistsError, EEXIST);
+ ADD_ERRNO(FileNotFoundError, ENOENT);
+ ADD_ERRNO(IsADirectoryError, EISDIR);
+ ADD_ERRNO(NotADirectoryError, ENOTDIR);
+ ADD_ERRNO(InterruptedError, EINTR);
+ ADD_ERRNO(PermissionError, EACCES);
+ ADD_ERRNO(PermissionError, EPERM);
+ ADD_ERRNO(ProcessLookupError, ESRCH);
+ ADD_ERRNO(TimeoutError, ETIMEDOUT);
+
+ return _PyStatus_OK();
+
+#undef PRE_INIT
+#undef ADD_ERRNO
+}
+
+
+/* Add exception types to the builtins module */
+PyStatus
+_PyBuiltins_AddExceptions(PyObject *bltinmod)
+{
+#define POST_INIT(TYPE) \
+ if (PyDict_SetItemString(bdict, # TYPE, PyExc_ ## TYPE)) { \
+ return _PyStatus_ERR("Module dictionary insertion problem."); \
+ }
+
+#define INIT_ALIAS(NAME, TYPE) \
+ do { \
+ Py_INCREF(PyExc_ ## TYPE); \
+ Py_XDECREF(PyExc_ ## NAME); \
+ PyExc_ ## NAME = PyExc_ ## TYPE; \
+ if (PyDict_SetItemString(bdict, # NAME, PyExc_ ## NAME)) { \
+ return _PyStatus_ERR("Module dictionary insertion problem."); \
+ } \
+ } while (0)
+
+ PyObject *bdict;
+
+ bdict = PyModule_GetDict(bltinmod);
+ if (bdict == NULL) {
+ return _PyStatus_ERR("exceptions bootstrapping error.");
+ }
+
+ POST_INIT(BaseException);
+ POST_INIT(Exception);
+ POST_INIT(TypeError);
+ POST_INIT(StopAsyncIteration);
+ POST_INIT(StopIteration);
+ POST_INIT(GeneratorExit);
+ POST_INIT(SystemExit);
+ POST_INIT(KeyboardInterrupt);
+ POST_INIT(ImportError);
+ POST_INIT(ModuleNotFoundError);
+ POST_INIT(OSError);
+ INIT_ALIAS(EnvironmentError, OSError);
+ INIT_ALIAS(IOError, OSError);
+#ifdef MS_WINDOWS
+ INIT_ALIAS(WindowsError, OSError);
#endif
- ADD_ERRNO(ChildProcessError, ECHILD);
- ADD_ERRNO(ConnectionAbortedError, ECONNABORTED);
- ADD_ERRNO(ConnectionRefusedError, ECONNREFUSED);
- ADD_ERRNO(ConnectionResetError, ECONNRESET);
- ADD_ERRNO(FileExistsError, EEXIST);
- ADD_ERRNO(FileNotFoundError, ENOENT);
- ADD_ERRNO(IsADirectoryError, EISDIR);
- ADD_ERRNO(NotADirectoryError, ENOTDIR);
- ADD_ERRNO(InterruptedError, EINTR);
- ADD_ERRNO(PermissionError, EACCES);
- ADD_ERRNO(PermissionError, EPERM);
- ADD_ERRNO(ProcessLookupError, ESRCH);
- ADD_ERRNO(TimeoutError, ETIMEDOUT);
-
- return _PyStatus_OK();
-
-#undef PRE_INIT
-#undef ADD_ERRNO
-}
-
-
-/* Add exception types to the builtins module */
-PyStatus
-_PyBuiltins_AddExceptions(PyObject *bltinmod)
-{
-#define POST_INIT(TYPE) \
- if (PyDict_SetItemString(bdict, # TYPE, PyExc_ ## TYPE)) { \
- return _PyStatus_ERR("Module dictionary insertion problem."); \
- }
-
-#define INIT_ALIAS(NAME, TYPE) \
- do { \
- Py_INCREF(PyExc_ ## TYPE); \
- Py_XDECREF(PyExc_ ## NAME); \
- PyExc_ ## NAME = PyExc_ ## TYPE; \
- if (PyDict_SetItemString(bdict, # NAME, PyExc_ ## NAME)) { \
- return _PyStatus_ERR("Module dictionary insertion problem."); \
- } \
- } while (0)
-
- PyObject *bdict;
-
- bdict = PyModule_GetDict(bltinmod);
- if (bdict == NULL) {
- return _PyStatus_ERR("exceptions bootstrapping error.");
- }
-
- POST_INIT(BaseException);
- POST_INIT(Exception);
- POST_INIT(TypeError);
- POST_INIT(StopAsyncIteration);
- POST_INIT(StopIteration);
- POST_INIT(GeneratorExit);
- POST_INIT(SystemExit);
- POST_INIT(KeyboardInterrupt);
- POST_INIT(ImportError);
- POST_INIT(ModuleNotFoundError);
- POST_INIT(OSError);
- INIT_ALIAS(EnvironmentError, OSError);
- INIT_ALIAS(IOError, OSError);
-#ifdef MS_WINDOWS
- INIT_ALIAS(WindowsError, OSError);
-#endif
- POST_INIT(EOFError);
- POST_INIT(RuntimeError);
- POST_INIT(RecursionError);
- POST_INIT(NotImplementedError);
- POST_INIT(NameError);
- POST_INIT(UnboundLocalError);
- POST_INIT(AttributeError);
- POST_INIT(SyntaxError);
- POST_INIT(IndentationError);
- POST_INIT(TabError);
- POST_INIT(LookupError);
- POST_INIT(IndexError);
- POST_INIT(KeyError);
- POST_INIT(ValueError);
- POST_INIT(UnicodeError);
- POST_INIT(UnicodeEncodeError);
- POST_INIT(UnicodeDecodeError);
- POST_INIT(UnicodeTranslateError);
- POST_INIT(AssertionError);
- POST_INIT(ArithmeticError);
- POST_INIT(FloatingPointError);
- POST_INIT(OverflowError);
- POST_INIT(ZeroDivisionError);
- POST_INIT(SystemError);
- POST_INIT(ReferenceError);
- POST_INIT(MemoryError);
- POST_INIT(BufferError);
- POST_INIT(Warning);
- POST_INIT(UserWarning);
- POST_INIT(DeprecationWarning);
- POST_INIT(PendingDeprecationWarning);
- POST_INIT(SyntaxWarning);
- POST_INIT(RuntimeWarning);
- POST_INIT(FutureWarning);
- POST_INIT(ImportWarning);
- POST_INIT(UnicodeWarning);
- POST_INIT(BytesWarning);
- POST_INIT(ResourceWarning);
-
- /* OSError subclasses */
- POST_INIT(ConnectionError);
-
- POST_INIT(BlockingIOError);
- POST_INIT(BrokenPipeError);
- POST_INIT(ChildProcessError);
- POST_INIT(ConnectionAbortedError);
- POST_INIT(ConnectionRefusedError);
- POST_INIT(ConnectionResetError);
- POST_INIT(FileExistsError);
- POST_INIT(FileNotFoundError);
- POST_INIT(IsADirectoryError);
- POST_INIT(NotADirectoryError);
- POST_INIT(InterruptedError);
- POST_INIT(PermissionError);
- POST_INIT(ProcessLookupError);
- POST_INIT(TimeoutError);
-
- return _PyStatus_OK();
-
-#undef POST_INIT
-#undef INIT_ALIAS
-}
-
+ POST_INIT(EOFError);
+ POST_INIT(RuntimeError);
+ POST_INIT(RecursionError);
+ POST_INIT(NotImplementedError);
+ POST_INIT(NameError);
+ POST_INIT(UnboundLocalError);
+ POST_INIT(AttributeError);
+ POST_INIT(SyntaxError);
+ POST_INIT(IndentationError);
+ POST_INIT(TabError);
+ POST_INIT(LookupError);
+ POST_INIT(IndexError);
+ POST_INIT(KeyError);
+ POST_INIT(ValueError);
+ POST_INIT(UnicodeError);
+ POST_INIT(UnicodeEncodeError);
+ POST_INIT(UnicodeDecodeError);
+ POST_INIT(UnicodeTranslateError);
+ POST_INIT(AssertionError);
+ POST_INIT(ArithmeticError);
+ POST_INIT(FloatingPointError);
+ POST_INIT(OverflowError);
+ POST_INIT(ZeroDivisionError);
+ POST_INIT(SystemError);
+ POST_INIT(ReferenceError);
+ POST_INIT(MemoryError);
+ POST_INIT(BufferError);
+ POST_INIT(Warning);
+ POST_INIT(UserWarning);
+ POST_INIT(DeprecationWarning);
+ POST_INIT(PendingDeprecationWarning);
+ POST_INIT(SyntaxWarning);
+ POST_INIT(RuntimeWarning);
+ POST_INIT(FutureWarning);
+ POST_INIT(ImportWarning);
+ POST_INIT(UnicodeWarning);
+ POST_INIT(BytesWarning);
+ POST_INIT(ResourceWarning);
+
+ /* OSError subclasses */
+ POST_INIT(ConnectionError);
+
+ POST_INIT(BlockingIOError);
+ POST_INIT(BrokenPipeError);
+ POST_INIT(ChildProcessError);
+ POST_INIT(ConnectionAbortedError);
+ POST_INIT(ConnectionRefusedError);
+ POST_INIT(ConnectionResetError);
+ POST_INIT(FileExistsError);
+ POST_INIT(FileNotFoundError);
+ POST_INIT(IsADirectoryError);
+ POST_INIT(NotADirectoryError);
+ POST_INIT(InterruptedError);
+ POST_INIT(PermissionError);
+ POST_INIT(ProcessLookupError);
+ POST_INIT(TimeoutError);
+
+ return _PyStatus_OK();
+
+#undef POST_INIT
+#undef INIT_ALIAS
+}
+
void
_PyExc_Fini(void)
{
@@ -2978,9 +2978,9 @@ _check_for_legacy_statements(PySyntaxErrorObject *self, Py_ssize_t start)
*/
static PyObject *print_prefix = NULL;
static PyObject *exec_prefix = NULL;
- Py_ssize_t text_len = PyUnicode_GET_LENGTH(self->text), match;
+ Py_ssize_t text_len = PyUnicode_GET_LENGTH(self->text), match;
int kind = PyUnicode_KIND(self->text);
- const void *data = PyUnicode_DATA(self->text);
+ const void *data = PyUnicode_DATA(self->text);
/* Ignore leading whitespace */
while (start < text_len) {
@@ -3001,12 +3001,12 @@ _check_for_legacy_statements(PySyntaxErrorObject *self, Py_ssize_t start)
return -1;
}
}
- match = PyUnicode_Tailmatch(self->text, print_prefix,
- start, text_len, -1);
- if (match == -1) {
- return -1;
- }
- if (match) {
+ match = PyUnicode_Tailmatch(self->text, print_prefix,
+ start, text_len, -1);
+ if (match == -1) {
+ return -1;
+ }
+ if (match) {
return _set_legacy_print_statement_msg(self, start);
}
@@ -3017,17 +3017,17 @@ _check_for_legacy_statements(PySyntaxErrorObject *self, Py_ssize_t start)
return -1;
}
}
- match = PyUnicode_Tailmatch(self->text, exec_prefix, start, text_len, -1);
- if (match == -1) {
- return -1;
- }
- if (match) {
- PyObject *msg = PyUnicode_FromString("Missing parentheses in call "
- "to 'exec'");
- if (msg == NULL) {
- return -1;
- }
- Py_XSETREF(self->msg, msg);
+ match = PyUnicode_Tailmatch(self->text, exec_prefix, start, text_len, -1);
+ if (match == -1) {
+ return -1;
+ }
+ if (match) {
+ PyObject *msg = PyUnicode_FromString("Missing parentheses in call "
+ "to 'exec'");
+ if (msg == NULL) {
+ return -1;
+ }
+ Py_XSETREF(self->msg, msg);
return 1;
}
/* Fall back to the default error message */
diff --git a/contrib/tools/python3/src/Objects/fileobject.c b/contrib/tools/python3/src/Objects/fileobject.c
index f2053a9986..1c6ecaf82c 100644
--- a/contrib/tools/python3/src/Objects/fileobject.c
+++ b/contrib/tools/python3/src/Objects/fileobject.c
@@ -2,7 +2,7 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_runtime.h" // _PyRuntime
+#include "pycore_runtime.h" // _PyRuntime
#if defined(HAVE_GETC_UNLOCKED) && !defined(_Py_MEMORY_SANITIZER)
/* clang MemorySanitizer doesn't yet understand getc_unlocked. */
@@ -25,8 +25,8 @@
extern "C" {
#endif
-_Py_IDENTIFIER(open);
-
+_Py_IDENTIFIER(open);
+
/* External C interface */
PyObject *
@@ -35,13 +35,13 @@ PyFile_FromFd(int fd, const char *name, const char *mode, int buffering, const c
{
PyObject *io, *stream;
- /* import _io in case we are being used to open io.py */
- io = PyImport_ImportModule("_io");
+ /* import _io in case we are being used to open io.py */
+ io = PyImport_ImportModule("_io");
if (io == NULL)
return NULL;
- stream = _PyObject_CallMethodId(io, &PyId_open, "isisssO", fd, mode,
+ stream = _PyObject_CallMethodId(io, &PyId_open, "isisssO", fd, mode,
buffering, encoding, errors,
- newline, closefd ? Py_True : Py_False);
+ newline, closefd ? Py_True : Py_False);
Py_DECREF(io);
if (stream == NULL)
return NULL;
@@ -62,7 +62,7 @@ PyFile_GetLine(PyObject *f, int n)
}
if (n <= 0) {
- result = _PyObject_CallMethodIdNoArgs(f, &PyId_readline);
+ result = _PyObject_CallMethodIdNoArgs(f, &PyId_readline);
}
else {
result = _PyObject_CallMethodId(f, &PyId_readline, "i", n);
@@ -76,7 +76,7 @@ PyFile_GetLine(PyObject *f, int n)
}
if (n < 0 && result != NULL && PyBytes_Check(result)) {
- const char *s = PyBytes_AS_STRING(result);
+ const char *s = PyBytes_AS_STRING(result);
Py_ssize_t len = PyBytes_GET_SIZE(result);
if (len == 0) {
Py_DECREF(result);
@@ -85,7 +85,7 @@ PyFile_GetLine(PyObject *f, int n)
"EOF when reading a line");
}
else if (s[len-1] == '\n') {
- if (Py_REFCNT(result) == 1)
+ if (Py_REFCNT(result) == 1)
_PyBytes_Resize(&result, len-1);
else {
PyObject *v;
@@ -137,7 +137,7 @@ PyFile_WriteObject(PyObject *v, PyObject *f, int flags)
Py_DECREF(writer);
return -1;
}
- result = PyObject_CallOneArg(writer, value);
+ result = PyObject_CallOneArg(writer, value);
Py_DECREF(value);
Py_DECREF(writer);
if (result == NULL)
@@ -186,10 +186,10 @@ PyObject_AsFileDescriptor(PyObject *o)
if (PyLong_Check(o)) {
fd = _PyLong_AsInt(o);
}
- else if (_PyObject_LookupAttrId(o, &PyId_fileno, &meth) < 0) {
- return -1;
- }
- else if (meth != NULL) {
+ else if (_PyObject_LookupAttrId(o, &PyId_fileno, &meth) < 0) {
+ return -1;
+ }
+ else if (meth != NULL) {
PyObject *fno = _PyObject_CallNoArg(meth);
Py_DECREF(meth);
if (fno == NULL)
@@ -364,9 +364,9 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
Py_ssize_t n;
int err;
- /* The function can clear the current exception */
- assert(!PyErr_Occurred());
-
+ /* The function can clear the current exception */
+ assert(!PyErr_Occurred());
+
if (self->fd < 0) {
/* fd might be invalid on Windows
* I can't raise an exception here. It may lead to an
@@ -375,11 +375,11 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
Py_RETURN_NONE;
}
- if (!PyArg_ParseTuple(args, "U", &unicode)) {
+ if (!PyArg_ParseTuple(args, "U", &unicode)) {
return NULL;
- }
+ }
- /* Encode Unicode to UTF-8/surrogateescape */
+ /* Encode Unicode to UTF-8/surrogateescape */
str = PyUnicode_AsUTF8AndSize(unicode, &n);
if (str == NULL) {
PyErr_Clear();
@@ -408,7 +408,7 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
}
static PyObject *
-stdprinter_fileno(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))
+stdprinter_fileno(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromLong((long) self->fd);
}
@@ -421,13 +421,13 @@ stdprinter_repr(PyStdPrinter_Object *self)
}
static PyObject *
-stdprinter_noop(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))
+stdprinter_noop(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))
{
Py_RETURN_NONE;
}
static PyObject *
-stdprinter_isatty(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))
+stdprinter_isatty(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))
{
long res;
if (self->fd < 0) {
@@ -482,10 +482,10 @@ PyTypeObject PyStdPrinter_Type = {
0, /* tp_itemsize */
/* methods */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)stdprinter_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -519,71 +519,71 @@ PyTypeObject PyStdPrinter_Type = {
};
-/* ************************** open_code hook ***************************
- * The open_code hook allows embedders to override the method used to
- * open files that are going to be used by the runtime to execute code
- */
-
-int
-PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData) {
- if (Py_IsInitialized() &&
- PySys_Audit("setopencodehook", NULL) < 0) {
- return -1;
- }
-
- if (_PyRuntime.open_code_hook) {
- if (Py_IsInitialized()) {
- PyErr_SetString(PyExc_SystemError,
- "failed to change existing open_code hook");
- }
- return -1;
- }
-
- _PyRuntime.open_code_hook = hook;
- _PyRuntime.open_code_userdata = userData;
- return 0;
-}
-
-PyObject *
-PyFile_OpenCodeObject(PyObject *path)
-{
- PyObject *iomod, *f = NULL;
-
- if (!PyUnicode_Check(path)) {
- PyErr_Format(PyExc_TypeError, "'path' must be 'str', not '%.200s'",
- Py_TYPE(path)->tp_name);
- return NULL;
- }
-
- Py_OpenCodeHookFunction hook = _PyRuntime.open_code_hook;
- if (hook) {
- f = hook(path, _PyRuntime.open_code_userdata);
- } else {
- iomod = PyImport_ImportModule("_io");
- if (iomod) {
- f = _PyObject_CallMethodId(iomod, &PyId_open, "Os",
- path, "rb");
- Py_DECREF(iomod);
- }
- }
-
- return f;
-}
-
-PyObject *
-PyFile_OpenCode(const char *utf8path)
-{
- PyObject *pathobj = PyUnicode_FromString(utf8path);
- PyObject *f;
- if (!pathobj) {
- return NULL;
- }
- f = PyFile_OpenCodeObject(pathobj);
- Py_DECREF(pathobj);
- return f;
-}
-
-
+/* ************************** open_code hook ***************************
+ * The open_code hook allows embedders to override the method used to
+ * open files that are going to be used by the runtime to execute code
+ */
+
+int
+PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData) {
+ if (Py_IsInitialized() &&
+ PySys_Audit("setopencodehook", NULL) < 0) {
+ return -1;
+ }
+
+ if (_PyRuntime.open_code_hook) {
+ if (Py_IsInitialized()) {
+ PyErr_SetString(PyExc_SystemError,
+ "failed to change existing open_code hook");
+ }
+ return -1;
+ }
+
+ _PyRuntime.open_code_hook = hook;
+ _PyRuntime.open_code_userdata = userData;
+ return 0;
+}
+
+PyObject *
+PyFile_OpenCodeObject(PyObject *path)
+{
+ PyObject *iomod, *f = NULL;
+
+ if (!PyUnicode_Check(path)) {
+ PyErr_Format(PyExc_TypeError, "'path' must be 'str', not '%.200s'",
+ Py_TYPE(path)->tp_name);
+ return NULL;
+ }
+
+ Py_OpenCodeHookFunction hook = _PyRuntime.open_code_hook;
+ if (hook) {
+ f = hook(path, _PyRuntime.open_code_userdata);
+ } else {
+ iomod = PyImport_ImportModule("_io");
+ if (iomod) {
+ f = _PyObject_CallMethodId(iomod, &PyId_open, "Os",
+ path, "rb");
+ Py_DECREF(iomod);
+ }
+ }
+
+ return f;
+}
+
+PyObject *
+PyFile_OpenCode(const char *utf8path)
+{
+ PyObject *pathobj = PyUnicode_FromString(utf8path);
+ PyObject *f;
+ if (!pathobj) {
+ return NULL;
+ }
+ f = PyFile_OpenCodeObject(pathobj);
+ Py_DECREF(pathobj);
+ return f;
+}
+
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Objects/floatobject.c b/contrib/tools/python3/src/Objects/floatobject.c
index a13501ad05..8538a051b1 100644
--- a/contrib/tools/python3/src/Objects/floatobject.c
+++ b/contrib/tools/python3/src/Objects/floatobject.c
@@ -4,7 +4,7 @@
for any kind of float exception without losing portability. */
#include "Python.h"
-#include "pycore_dtoa.h"
+#include "pycore_dtoa.h"
#include <ctype.h>
#include <float.h>
@@ -44,7 +44,7 @@ static PyTypeObject FloatInfoType;
PyDoc_STRVAR(floatinfo__doc__,
"sys.float_info\n\
\n\
-A named tuple holding information about the float type. It contains low level\n\
+A named tuple holding information about the float type. It contains low level\n\
information about the precision and internal representation. Please study\n\
your system's :file:`float.h` for more information.");
@@ -222,7 +222,7 @@ float_dealloc(PyFloatObject *op)
return;
}
numfree++;
- Py_SET_TYPE(op, (PyTypeObject *)free_list);
+ Py_SET_TYPE(op, (PyTypeObject *)free_list);
free_list = op;
}
else
@@ -247,17 +247,17 @@ PyFloat_AsDouble(PyObject *op)
nb = Py_TYPE(op)->tp_as_number;
if (nb == NULL || nb->nb_float == NULL) {
- if (nb && nb->nb_index) {
- PyObject *res = PyNumber_Index(op);
- if (!res) {
- return -1;
- }
- double val = PyLong_AsDouble(res);
- Py_DECREF(res);
- return val;
- }
+ if (nb && nb->nb_index) {
+ PyObject *res = PyNumber_Index(op);
+ if (!res) {
+ return -1;
+ }
+ double val = PyLong_AsDouble(res);
+ Py_DECREF(res);
+ return val;
+ }
PyErr_Format(PyExc_TypeError, "must be real number, not %.50s",
- Py_TYPE(op)->tp_name);
+ Py_TYPE(op)->tp_name);
return -1;
}
@@ -269,7 +269,7 @@ PyFloat_AsDouble(PyObject *op)
if (!PyFloat_Check(res)) {
PyErr_Format(PyExc_TypeError,
"%.50s.__float__ returned non-float (type %.50s)",
- Py_TYPE(op)->tp_name, Py_TYPE(res)->tp_name);
+ Py_TYPE(op)->tp_name, Py_TYPE(res)->tp_name);
Py_DECREF(res);
return -1;
}
@@ -277,7 +277,7 @@ PyFloat_AsDouble(PyObject *op)
"%.50s.__float__ returned non-float (type %.50s). "
"The ability to return an instance of a strict subclass of float "
"is deprecated, and may be removed in a future version of Python.",
- Py_TYPE(op)->tp_name, Py_TYPE(res)->tp_name)) {
+ Py_TYPE(op)->tp_name, Py_TYPE(res)->tp_name)) {
Py_DECREF(res);
return -1;
}
@@ -473,13 +473,13 @@ float_richcompare(PyObject *v, PyObject *w, int op)
*/
PyObject *temp;
- temp = _PyLong_Lshift(ww, 1);
+ temp = _PyLong_Lshift(ww, 1);
if (temp == NULL)
goto Error;
Py_DECREF(ww);
ww = temp;
- temp = _PyLong_Lshift(vv, 1);
+ temp = _PyLong_Lshift(vv, 1);
if (temp == NULL)
goto Error;
Py_DECREF(vv);
@@ -612,22 +612,22 @@ float_rem(PyObject *v, PyObject *w)
return PyFloat_FromDouble(mod);
}
-static void
-_float_div_mod(double vx, double wx, double *floordiv, double *mod)
+static void
+_float_div_mod(double vx, double wx, double *floordiv, double *mod)
{
- double div;
- *mod = fmod(vx, wx);
+ double div;
+ *mod = fmod(vx, wx);
/* fmod is typically exact, so vx-mod is *mathematically* an
exact multiple of wx. But this is fp arithmetic, and fp
vx - mod is an approximation; the result is that div may
not be an exact integral value after the division, although
it will always be very close to one.
*/
- div = (vx - *mod) / wx;
- if (*mod) {
+ div = (vx - *mod) / wx;
+ if (*mod) {
/* ensure the remainder has the same sign as the denominator */
- if ((wx < 0) != (*mod < 0)) {
- *mod += wx;
+ if ((wx < 0) != (*mod < 0)) {
+ *mod += wx;
div -= 1.0;
}
}
@@ -635,49 +635,49 @@ _float_div_mod(double vx, double wx, double *floordiv, double *mod)
/* the remainder is zero, and in the presence of signed zeroes
fmod returns different results across platforms; ensure
it has the same sign as the denominator. */
- *mod = copysign(0.0, wx);
+ *mod = copysign(0.0, wx);
}
/* snap quotient to nearest integral value */
if (div) {
- *floordiv = floor(div);
- if (div - *floordiv > 0.5) {
- *floordiv += 1.0;
- }
+ *floordiv = floor(div);
+ if (div - *floordiv > 0.5) {
+ *floordiv += 1.0;
+ }
}
else {
/* div is zero - get the same sign as the true quotient */
- *floordiv = copysign(0.0, vx / wx); /* zero w/ sign of vx/wx */
- }
-}
-
-static PyObject *
-float_divmod(PyObject *v, PyObject *w)
-{
- double vx, wx;
- double mod, floordiv;
- CONVERT_TO_DOUBLE(v, vx);
- CONVERT_TO_DOUBLE(w, wx);
- if (wx == 0.0) {
- PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
- return NULL;
- }
- _float_div_mod(vx, wx, &floordiv, &mod);
+ *floordiv = copysign(0.0, vx / wx); /* zero w/ sign of vx/wx */
+ }
+}
+
+static PyObject *
+float_divmod(PyObject *v, PyObject *w)
+{
+ double vx, wx;
+ double mod, floordiv;
+ CONVERT_TO_DOUBLE(v, vx);
+ CONVERT_TO_DOUBLE(w, wx);
+ if (wx == 0.0) {
+ PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
+ return NULL;
+ }
+ _float_div_mod(vx, wx, &floordiv, &mod);
return Py_BuildValue("(dd)", floordiv, mod);
}
static PyObject *
float_floor_div(PyObject *v, PyObject *w)
{
- double vx, wx;
- double mod, floordiv;
- CONVERT_TO_DOUBLE(v, vx);
- CONVERT_TO_DOUBLE(w, wx);
- if (wx == 0.0) {
- PyErr_SetString(PyExc_ZeroDivisionError, "float floor division by zero");
- return NULL;
- }
- _float_div_mod(vx, wx, &floordiv, &mod);
- return PyFloat_FromDouble(floordiv);
+ double vx, wx;
+ double mod, floordiv;
+ CONVERT_TO_DOUBLE(v, vx);
+ CONVERT_TO_DOUBLE(w, wx);
+ if (wx == 0.0) {
+ PyErr_SetString(PyExc_ZeroDivisionError, "float floor division by zero");
+ return NULL;
+ }
+ _float_div_mod(vx, wx, &floordiv, &mod);
+ return PyFloat_FromDouble(floordiv);
}
/* determine whether x is an odd integer or not; assumes that
@@ -862,37 +862,37 @@ static PyObject *
float___trunc___impl(PyObject *self)
/*[clinic end generated code: output=dd3e289dd4c6b538 input=591b9ba0d650fdff]*/
{
- return PyLong_FromDouble(PyFloat_AS_DOUBLE(self));
-}
-
-/*[clinic input]
-float.__floor__
-
-Return the floor as an Integral.
-[clinic start generated code]*/
-
-static PyObject *
-float___floor___impl(PyObject *self)
-/*[clinic end generated code: output=e0551dbaea8c01d1 input=77bb13eb12e268df]*/
-{
- double x = PyFloat_AS_DOUBLE(self);
- return PyLong_FromDouble(floor(x));
+ return PyLong_FromDouble(PyFloat_AS_DOUBLE(self));
+}
+
+/*[clinic input]
+float.__floor__
+
+Return the floor as an Integral.
+[clinic start generated code]*/
+
+static PyObject *
+float___floor___impl(PyObject *self)
+/*[clinic end generated code: output=e0551dbaea8c01d1 input=77bb13eb12e268df]*/
+{
+ double x = PyFloat_AS_DOUBLE(self);
+ return PyLong_FromDouble(floor(x));
+}
+
+/*[clinic input]
+float.__ceil__
+
+Return the ceiling as an Integral.
+[clinic start generated code]*/
+
+static PyObject *
+float___ceil___impl(PyObject *self)
+/*[clinic end generated code: output=a2fd8858f73736f9 input=79e41ae94aa0a516]*/
+{
+ double x = PyFloat_AS_DOUBLE(self);
+ return PyLong_FromDouble(ceil(x));
}
-/*[clinic input]
-float.__ceil__
-
-Return the ceiling as an Integral.
-[clinic start generated code]*/
-
-static PyObject *
-float___ceil___impl(PyObject *self)
-/*[clinic end generated code: output=a2fd8858f73736f9 input=79e41ae94aa0a516]*/
-{
- double x = PyFloat_AS_DOUBLE(self);
- return PyLong_FromDouble(ceil(x));
-}
-
/* double_round: rounds a finite double to the closest multiple of
10**-ndigits; here ndigits is within reasonable bounds (typically, -308 <=
ndigits <= 323). Returns a Python float, or sets a Python error and
@@ -1012,7 +1012,7 @@ double_round(double x, int ndigits) {
/*[clinic input]
float.__round__
- ndigits as o_ndigits: object = None
+ ndigits as o_ndigits: object = None
/
Return the Integral closest to x, rounding half toward even.
@@ -1022,13 +1022,13 @@ When an argument is passed, work like built-in round(x, ndigits).
static PyObject *
float___round___impl(PyObject *self, PyObject *o_ndigits)
-/*[clinic end generated code: output=374c36aaa0f13980 input=fc0fe25924fbc9ed]*/
+/*[clinic end generated code: output=374c36aaa0f13980 input=fc0fe25924fbc9ed]*/
{
double x, rounded;
Py_ssize_t ndigits;
x = PyFloat_AsDouble(self);
- if (o_ndigits == Py_None) {
+ if (o_ndigits == Py_None) {
/* single-argument round or with None ndigits:
* round to nearest integer */
rounded = round(x);
@@ -1443,8 +1443,8 @@ float_fromhex(PyTypeObject *type, PyObject *string)
bits lsb, lsb-2, lsb-3, lsb-4, ... is 1. */
if ((digit & half_eps) != 0) {
round_up = 0;
- if ((digit & (3*half_eps-1)) != 0 || (half_eps == 8 &&
- key_digit+1 < ndigits && (HEX_DIGIT(key_digit+1) & 1) != 0))
+ if ((digit & (3*half_eps-1)) != 0 || (half_eps == 8 &&
+ key_digit+1 < ndigits && (HEX_DIGIT(key_digit+1) & 1) != 0))
round_up = 1;
else
for (i = key_digit-1; i >= 0; i--)
@@ -1471,7 +1471,7 @@ float_fromhex(PyTypeObject *type, PyObject *string)
goto parse_error;
result = PyFloat_FromDouble(negate ? -x : x);
if (type != &PyFloat_Type && result != NULL) {
- Py_SETREF(result, PyObject_CallOneArg((PyObject *)type, result));
+ Py_SETREF(result, PyObject_CallOneArg((PyObject *)type, result));
}
return result;
@@ -1694,8 +1694,8 @@ float___getformat___impl(PyTypeObject *type, const char *typestr)
case ieee_big_endian_format:
return PyUnicode_FromString("IEEE, big-endian");
default:
- PyErr_SetString(PyExc_RuntimeError,
- "insane float_format or double_format");
+ PyErr_SetString(PyExc_RuntimeError,
+ "insane float_format or double_format");
return NULL;
}
}
@@ -1816,8 +1816,8 @@ float___format___impl(PyObject *self, PyObject *format_spec)
static PyMethodDef float_methods[] = {
FLOAT_CONJUGATE_METHODDEF
FLOAT___TRUNC___METHODDEF
- FLOAT___FLOOR___METHODDEF
- FLOAT___CEIL___METHODDEF
+ FLOAT___FLOOR___METHODDEF
+ FLOAT___CEIL___METHODDEF
FLOAT___ROUND___METHODDEF
FLOAT_AS_INTEGER_RATIO_METHODDEF
FLOAT_FROMHEX_METHODDEF
@@ -1885,17 +1885,17 @@ PyTypeObject PyFloat_Type = {
sizeof(PyFloatObject),
0,
(destructor)float_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)float_repr, /* tp_repr */
&float_as_number, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
(hashfunc)float_hash, /* tp_hash */
0, /* tp_call */
- 0, /* tp_str */
+ 0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
@@ -1971,18 +1971,18 @@ _PyFloat_Init(void)
/* Init float info */
if (FloatInfoType.tp_name == NULL) {
- if (PyStructSequence_InitType2(&FloatInfoType, &floatinfo_desc) < 0) {
+ if (PyStructSequence_InitType2(&FloatInfoType, &floatinfo_desc) < 0) {
return 0;
- }
+ }
}
return 1;
}
-void
-_PyFloat_ClearFreeList(void)
+void
+_PyFloat_ClearFreeList(void)
{
PyFloatObject *f = free_list, *next;
- for (; f; f = next) {
+ for (; f; f = next) {
next = (PyFloatObject*) Py_TYPE(f);
PyObject_FREE(f);
}
@@ -1991,9 +1991,9 @@ _PyFloat_ClearFreeList(void)
}
void
-_PyFloat_Fini(void)
+_PyFloat_Fini(void)
{
- _PyFloat_ClearFreeList();
+ _PyFloat_ClearFreeList();
}
/* Print summary info about the state of the optimized allocator */
@@ -2291,7 +2291,7 @@ _PyFloat_Pack8(double x, unsigned char *p, int le)
flo = 0;
++fhi;
if (fhi >> 28) {
- /* And it also propagated out of the next 28 bits. */
+ /* And it also propagated out of the next 28 bits. */
fhi = 0;
++e;
if (e >= 2047)
diff --git a/contrib/tools/python3/src/Objects/frameobject.c b/contrib/tools/python3/src/Objects/frameobject.c
index acd0e52f0d..4ae17bcfc2 100644
--- a/contrib/tools/python3/src/Objects/frameobject.c
+++ b/contrib/tools/python3/src/Objects/frameobject.c
@@ -1,19 +1,19 @@
/* Frame object implementation */
#include "Python.h"
-#include "pycore_object.h"
-#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
+#include "pycore_object.h"
+#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
#include "code.h"
#include "frameobject.h"
#include "opcode.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#define OFF(x) offsetof(PyFrameObject, x)
static PyMemberDef frame_memberlist[] = {
{"f_back", T_OBJECT, OFF(f_back), READONLY},
- {"f_code", T_OBJECT, OFF(f_code), READONLY|READ_RESTRICTED},
+ {"f_code", T_OBJECT, OFF(f_code), READONLY|READ_RESTRICTED},
{"f_builtins", T_OBJECT, OFF(f_builtins), READONLY},
{"f_globals", T_OBJECT, OFF(f_globals), READONLY},
{"f_lasti", T_INT, OFF(f_lasti), READONLY},
@@ -34,13 +34,13 @@ frame_getlocals(PyFrameObject *f, void *closure)
int
PyFrame_GetLineNumber(PyFrameObject *f)
{
- assert(f != NULL);
- if (f->f_trace) {
+ assert(f != NULL);
+ if (f->f_trace) {
return f->f_lineno;
- }
- else {
+ }
+ else {
return PyCode_Addr2Line(f->f_code, f->f_lasti);
- }
+ }
}
static PyObject *
@@ -49,266 +49,266 @@ frame_getlineno(PyFrameObject *f, void *closure)
return PyLong_FromLong(PyFrame_GetLineNumber(f));
}
-
-/* Given the index of the effective opcode,
- scan back to construct the oparg with EXTENDED_ARG */
-static unsigned int
-get_arg(const _Py_CODEUNIT *codestr, Py_ssize_t i)
-{
- _Py_CODEUNIT word;
- unsigned int oparg = _Py_OPARG(codestr[i]);
- if (i >= 1 && _Py_OPCODE(word = codestr[i-1]) == EXTENDED_ARG) {
- oparg |= _Py_OPARG(word) << 8;
- if (i >= 2 && _Py_OPCODE(word = codestr[i-2]) == EXTENDED_ARG) {
- oparg |= _Py_OPARG(word) << 16;
- if (i >= 3 && _Py_OPCODE(word = codestr[i-3]) == EXTENDED_ARG) {
- oparg |= _Py_OPARG(word) << 24;
- }
- }
- }
- return oparg;
-}
-
-typedef enum kind {
- With = 1,
- Loop = 2,
- Try = 3,
- Except = 4,
-} Kind;
-
-#define BITS_PER_BLOCK 3
-
-static inline int64_t
-push_block(int64_t stack, Kind kind)
-{
- assert(stack < ((int64_t)1)<<(BITS_PER_BLOCK*CO_MAXBLOCKS));
- return (stack << BITS_PER_BLOCK) | kind;
-}
-
-static inline int64_t
-pop_block(int64_t stack)
-{
- assert(stack > 0);
- return stack >> BITS_PER_BLOCK;
-}
-
-static inline Kind
-top_block(int64_t stack)
-{
- return stack & ((1<<BITS_PER_BLOCK)-1);
-}
-
-static int64_t *
-markblocks(PyCodeObject *code_obj, int len)
-{
- const _Py_CODEUNIT *code =
- (const _Py_CODEUNIT *)PyBytes_AS_STRING(code_obj->co_code);
- int64_t *blocks = PyMem_New(int64_t, len+1);
- int i, j, opcode;
-
- if (blocks == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- memset(blocks, -1, (len+1)*sizeof(int64_t));
- blocks[0] = 0;
- int todo = 1;
- while (todo) {
- todo = 0;
- for (i = 0; i < len; i++) {
- int64_t block_stack = blocks[i];
- int64_t except_stack;
- if (block_stack == -1) {
- continue;
- }
- opcode = _Py_OPCODE(code[i]);
- switch (opcode) {
- case JUMP_IF_FALSE_OR_POP:
- case JUMP_IF_TRUE_OR_POP:
- case POP_JUMP_IF_FALSE:
- case POP_JUMP_IF_TRUE:
- case JUMP_IF_NOT_EXC_MATCH:
- j = get_arg(code, i) / sizeof(_Py_CODEUNIT);
- assert(j < len);
- if (blocks[j] == -1 && j < i) {
- todo = 1;
- }
- assert(blocks[j] == -1 || blocks[j] == block_stack);
- blocks[j] = block_stack;
- blocks[i+1] = block_stack;
- break;
- case JUMP_ABSOLUTE:
- j = get_arg(code, i) / sizeof(_Py_CODEUNIT);
- assert(j < len);
- if (blocks[j] == -1 && j < i) {
- todo = 1;
- }
- assert(blocks[j] == -1 || blocks[j] == block_stack);
- blocks[j] = block_stack;
- break;
- case SETUP_FINALLY:
- j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
- assert(j < len);
- except_stack = push_block(block_stack, Except);
- assert(blocks[j] == -1 || blocks[j] == except_stack);
- blocks[j] = except_stack;
- block_stack = push_block(block_stack, Try);
- blocks[i+1] = block_stack;
- break;
- case SETUP_WITH:
- case SETUP_ASYNC_WITH:
- j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
- assert(j < len);
- except_stack = push_block(block_stack, Except);
- assert(blocks[j] == -1 || blocks[j] == except_stack);
- blocks[j] = except_stack;
- block_stack = push_block(block_stack, With);
- blocks[i+1] = block_stack;
- break;
- case JUMP_FORWARD:
- j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
- assert(j < len);
- assert(blocks[j] == -1 || blocks[j] == block_stack);
- blocks[j] = block_stack;
- break;
- case GET_ITER:
- case GET_AITER:
- block_stack = push_block(block_stack, Loop);
- blocks[i+1] = block_stack;
- break;
- case FOR_ITER:
- blocks[i+1] = block_stack;
- block_stack = pop_block(block_stack);
- j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
- assert(j < len);
- assert(blocks[j] == -1 || blocks[j] == block_stack);
- blocks[j] = block_stack;
- break;
- case POP_BLOCK:
- case POP_EXCEPT:
- block_stack = pop_block(block_stack);
- blocks[i+1] = block_stack;
- break;
- case END_ASYNC_FOR:
- block_stack = pop_block(pop_block(block_stack));
- blocks[i+1] = block_stack;
- break;
- case RETURN_VALUE:
- case RAISE_VARARGS:
- case RERAISE:
- /* End of block */
- break;
- default:
- blocks[i+1] = block_stack;
-
- }
- }
- }
- return blocks;
-}
-
-static int
-compatible_block_stack(int64_t from_stack, int64_t to_stack)
-{
- if (to_stack < 0) {
- return 0;
- }
- while(from_stack > to_stack) {
- from_stack = pop_block(from_stack);
- }
- return from_stack == to_stack;
-}
-
-static const char *
-explain_incompatible_block_stack(int64_t to_stack)
-{
- Kind target_kind = top_block(to_stack);
- switch(target_kind) {
- case Except:
- return "can't jump into an 'except' block as there's no exception";
- case Try:
- return "can't jump into the body of a try statement";
- case With:
- return "can't jump into the body of a with statement";
- case Loop:
- return "can't jump into the body of a for loop";
- default:
- Py_UNREACHABLE();
- }
-}
-
-static int *
-marklines(PyCodeObject *code, int len)
-{
- int *linestarts = PyMem_New(int, len);
- if (linestarts == NULL) {
- return NULL;
- }
- Py_ssize_t size = PyBytes_GET_SIZE(code->co_lnotab) / 2;
- unsigned char *p = (unsigned char*)PyBytes_AS_STRING(code->co_lnotab);
- int line = code->co_firstlineno;
- int addr = 0;
- int index = 0;
- while (--size >= 0) {
- addr += *p++;
- if (index*2 < addr) {
- linestarts[index++] = line;
- }
- while (index*2 < addr) {
- linestarts[index++] = -1;
- if (index >= len) {
- break;
- }
- }
- line += (signed char)*p;
- p++;
- }
- if (index < len) {
- linestarts[index++] = line;
- }
- while (index < len) {
- linestarts[index++] = -1;
- }
- assert(index == len);
- return linestarts;
-}
-
-static int
-first_line_not_before(int *lines, int len, int line)
-{
- int result = INT_MAX;
- for (int i = 0; i < len; i++) {
- if (lines[i] < result && lines[i] >= line) {
- result = lines[i];
- }
- }
- if (result == INT_MAX) {
- return -1;
- }
- return result;
-}
-
-static void
-frame_stack_pop(PyFrameObject *f)
-{
- PyObject *v = (*--f->f_stacktop);
- Py_DECREF(v);
-}
-
-static void
-frame_block_unwind(PyFrameObject *f)
-{
- assert(f->f_iblock > 0);
- f->f_iblock--;
- PyTryBlock *b = &f->f_blockstack[f->f_iblock];
- intptr_t delta = (f->f_stacktop - f->f_valuestack) - b->b_level;
- while (delta > 0) {
- frame_stack_pop(f);
- delta--;
- }
-}
-
-
+
+/* Given the index of the effective opcode,
+ scan back to construct the oparg with EXTENDED_ARG */
+static unsigned int
+get_arg(const _Py_CODEUNIT *codestr, Py_ssize_t i)
+{
+ _Py_CODEUNIT word;
+ unsigned int oparg = _Py_OPARG(codestr[i]);
+ if (i >= 1 && _Py_OPCODE(word = codestr[i-1]) == EXTENDED_ARG) {
+ oparg |= _Py_OPARG(word) << 8;
+ if (i >= 2 && _Py_OPCODE(word = codestr[i-2]) == EXTENDED_ARG) {
+ oparg |= _Py_OPARG(word) << 16;
+ if (i >= 3 && _Py_OPCODE(word = codestr[i-3]) == EXTENDED_ARG) {
+ oparg |= _Py_OPARG(word) << 24;
+ }
+ }
+ }
+ return oparg;
+}
+
+typedef enum kind {
+ With = 1,
+ Loop = 2,
+ Try = 3,
+ Except = 4,
+} Kind;
+
+#define BITS_PER_BLOCK 3
+
+static inline int64_t
+push_block(int64_t stack, Kind kind)
+{
+ assert(stack < ((int64_t)1)<<(BITS_PER_BLOCK*CO_MAXBLOCKS));
+ return (stack << BITS_PER_BLOCK) | kind;
+}
+
+static inline int64_t
+pop_block(int64_t stack)
+{
+ assert(stack > 0);
+ return stack >> BITS_PER_BLOCK;
+}
+
+static inline Kind
+top_block(int64_t stack)
+{
+ return stack & ((1<<BITS_PER_BLOCK)-1);
+}
+
+static int64_t *
+markblocks(PyCodeObject *code_obj, int len)
+{
+ const _Py_CODEUNIT *code =
+ (const _Py_CODEUNIT *)PyBytes_AS_STRING(code_obj->co_code);
+ int64_t *blocks = PyMem_New(int64_t, len+1);
+ int i, j, opcode;
+
+ if (blocks == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ memset(blocks, -1, (len+1)*sizeof(int64_t));
+ blocks[0] = 0;
+ int todo = 1;
+ while (todo) {
+ todo = 0;
+ for (i = 0; i < len; i++) {
+ int64_t block_stack = blocks[i];
+ int64_t except_stack;
+ if (block_stack == -1) {
+ continue;
+ }
+ opcode = _Py_OPCODE(code[i]);
+ switch (opcode) {
+ case JUMP_IF_FALSE_OR_POP:
+ case JUMP_IF_TRUE_OR_POP:
+ case POP_JUMP_IF_FALSE:
+ case POP_JUMP_IF_TRUE:
+ case JUMP_IF_NOT_EXC_MATCH:
+ j = get_arg(code, i) / sizeof(_Py_CODEUNIT);
+ assert(j < len);
+ if (blocks[j] == -1 && j < i) {
+ todo = 1;
+ }
+ assert(blocks[j] == -1 || blocks[j] == block_stack);
+ blocks[j] = block_stack;
+ blocks[i+1] = block_stack;
+ break;
+ case JUMP_ABSOLUTE:
+ j = get_arg(code, i) / sizeof(_Py_CODEUNIT);
+ assert(j < len);
+ if (blocks[j] == -1 && j < i) {
+ todo = 1;
+ }
+ assert(blocks[j] == -1 || blocks[j] == block_stack);
+ blocks[j] = block_stack;
+ break;
+ case SETUP_FINALLY:
+ j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
+ assert(j < len);
+ except_stack = push_block(block_stack, Except);
+ assert(blocks[j] == -1 || blocks[j] == except_stack);
+ blocks[j] = except_stack;
+ block_stack = push_block(block_stack, Try);
+ blocks[i+1] = block_stack;
+ break;
+ case SETUP_WITH:
+ case SETUP_ASYNC_WITH:
+ j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
+ assert(j < len);
+ except_stack = push_block(block_stack, Except);
+ assert(blocks[j] == -1 || blocks[j] == except_stack);
+ blocks[j] = except_stack;
+ block_stack = push_block(block_stack, With);
+ blocks[i+1] = block_stack;
+ break;
+ case JUMP_FORWARD:
+ j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
+ assert(j < len);
+ assert(blocks[j] == -1 || blocks[j] == block_stack);
+ blocks[j] = block_stack;
+ break;
+ case GET_ITER:
+ case GET_AITER:
+ block_stack = push_block(block_stack, Loop);
+ blocks[i+1] = block_stack;
+ break;
+ case FOR_ITER:
+ blocks[i+1] = block_stack;
+ block_stack = pop_block(block_stack);
+ j = get_arg(code, i) / sizeof(_Py_CODEUNIT) + i + 1;
+ assert(j < len);
+ assert(blocks[j] == -1 || blocks[j] == block_stack);
+ blocks[j] = block_stack;
+ break;
+ case POP_BLOCK:
+ case POP_EXCEPT:
+ block_stack = pop_block(block_stack);
+ blocks[i+1] = block_stack;
+ break;
+ case END_ASYNC_FOR:
+ block_stack = pop_block(pop_block(block_stack));
+ blocks[i+1] = block_stack;
+ break;
+ case RETURN_VALUE:
+ case RAISE_VARARGS:
+ case RERAISE:
+ /* End of block */
+ break;
+ default:
+ blocks[i+1] = block_stack;
+
+ }
+ }
+ }
+ return blocks;
+}
+
+static int
+compatible_block_stack(int64_t from_stack, int64_t to_stack)
+{
+ if (to_stack < 0) {
+ return 0;
+ }
+ while(from_stack > to_stack) {
+ from_stack = pop_block(from_stack);
+ }
+ return from_stack == to_stack;
+}
+
+static const char *
+explain_incompatible_block_stack(int64_t to_stack)
+{
+ Kind target_kind = top_block(to_stack);
+ switch(target_kind) {
+ case Except:
+ return "can't jump into an 'except' block as there's no exception";
+ case Try:
+ return "can't jump into the body of a try statement";
+ case With:
+ return "can't jump into the body of a with statement";
+ case Loop:
+ return "can't jump into the body of a for loop";
+ default:
+ Py_UNREACHABLE();
+ }
+}
+
+static int *
+marklines(PyCodeObject *code, int len)
+{
+ int *linestarts = PyMem_New(int, len);
+ if (linestarts == NULL) {
+ return NULL;
+ }
+ Py_ssize_t size = PyBytes_GET_SIZE(code->co_lnotab) / 2;
+ unsigned char *p = (unsigned char*)PyBytes_AS_STRING(code->co_lnotab);
+ int line = code->co_firstlineno;
+ int addr = 0;
+ int index = 0;
+ while (--size >= 0) {
+ addr += *p++;
+ if (index*2 < addr) {
+ linestarts[index++] = line;
+ }
+ while (index*2 < addr) {
+ linestarts[index++] = -1;
+ if (index >= len) {
+ break;
+ }
+ }
+ line += (signed char)*p;
+ p++;
+ }
+ if (index < len) {
+ linestarts[index++] = line;
+ }
+ while (index < len) {
+ linestarts[index++] = -1;
+ }
+ assert(index == len);
+ return linestarts;
+}
+
+static int
+first_line_not_before(int *lines, int len, int line)
+{
+ int result = INT_MAX;
+ for (int i = 0; i < len; i++) {
+ if (lines[i] < result && lines[i] >= line) {
+ result = lines[i];
+ }
+ }
+ if (result == INT_MAX) {
+ return -1;
+ }
+ return result;
+}
+
+static void
+frame_stack_pop(PyFrameObject *f)
+{
+ PyObject *v = (*--f->f_stacktop);
+ Py_DECREF(v);
+}
+
+static void
+frame_block_unwind(PyFrameObject *f)
+{
+ assert(f->f_iblock > 0);
+ f->f_iblock--;
+ PyTryBlock *b = &f->f_blockstack[f->f_iblock];
+ intptr_t delta = (f->f_stacktop - f->f_valuestack) - b->b_level;
+ while (delta > 0) {
+ frame_stack_pop(f);
+ delta--;
+ }
+}
+
+
/* Setter for f_lineno - you can set f_lineno from within a trace function in
* order to jump to a given line of code, subject to some restrictions. Most
* lines are OK to jump to because they don't make any assumptions about the
@@ -319,11 +319,11 @@ frame_block_unwind(PyFrameObject *f)
* o Lines with an 'except' statement on them can't be jumped to, because
* they expect an exception to be on the top of the stack.
* o Lines that live in a 'finally' block can't be jumped from or to, since
- * we cannot be sure which state the interpreter was in or would be in
- * during execution of the finally block.
- * o 'try', 'with' and 'async with' blocks can't be jumped into because
- * the blockstack needs to be set up before their code runs.
- * o 'for' and 'async for' loops can't be jumped into because the
+ * we cannot be sure which state the interpreter was in or would be in
+ * during execution of the finally block.
+ * o 'try', 'with' and 'async with' blocks can't be jumped into because
+ * the blockstack needs to be set up before their code runs.
+ * o 'for' and 'async for' loops can't be jumped into because the
* iterator needs to be on the stack.
* o Jumps cannot be made from within a trace function invoked with a
* 'return' or 'exception' event since the eval loop has been exited at
@@ -372,18 +372,18 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore
return -1;
}
- int new_lineno;
-
- /* Fail if the line falls outside the code block and
- select first line with actual code. */
- int overflow;
- long l_new_lineno = PyLong_AsLongAndOverflow(p_new_lineno, &overflow);
+ int new_lineno;
+
+ /* Fail if the line falls outside the code block and
+ select first line with actual code. */
+ int overflow;
+ long l_new_lineno = PyLong_AsLongAndOverflow(p_new_lineno, &overflow);
if (overflow
#if SIZEOF_LONG > SIZEOF_INT
|| l_new_lineno > INT_MAX
|| l_new_lineno < INT_MIN
#endif
- ) {
+ ) {
PyErr_SetString(PyExc_ValueError,
"lineno out of range");
return -1;
@@ -392,92 +392,92 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignore
if (new_lineno < f->f_code->co_firstlineno) {
PyErr_Format(PyExc_ValueError,
- "line %d comes before the current code block",
- new_lineno);
+ "line %d comes before the current code block",
+ new_lineno);
return -1;
}
- /* PyCode_NewWithPosOnlyArgs limits co_code to be under INT_MAX so this
- * should never overflow. */
- int len = (int)(PyBytes_GET_SIZE(f->f_code->co_code) / sizeof(_Py_CODEUNIT));
- int *lines = marklines(f->f_code, len);
- if (lines == NULL) {
+ /* PyCode_NewWithPosOnlyArgs limits co_code to be under INT_MAX so this
+ * should never overflow. */
+ int len = (int)(PyBytes_GET_SIZE(f->f_code->co_code) / sizeof(_Py_CODEUNIT));
+ int *lines = marklines(f->f_code, len);
+ if (lines == NULL) {
return -1;
}
- new_lineno = first_line_not_before(lines, len, new_lineno);
- if (new_lineno < 0) {
- PyErr_Format(PyExc_ValueError,
- "line %d comes after the current code block",
- (int)l_new_lineno);
- PyMem_Free(lines);
+ new_lineno = first_line_not_before(lines, len, new_lineno);
+ if (new_lineno < 0) {
+ PyErr_Format(PyExc_ValueError,
+ "line %d comes after the current code block",
+ (int)l_new_lineno);
+ PyMem_Free(lines);
return -1;
}
- int64_t *blocks = markblocks(f->f_code, len);
- if (blocks == NULL) {
- PyMem_Free(lines);
+ int64_t *blocks = markblocks(f->f_code, len);
+ if (blocks == NULL) {
+ PyMem_Free(lines);
return -1;
}
- int64_t target_block_stack = -1;
- int64_t best_block_stack = -1;
- int best_addr = -1;
- int64_t start_block_stack = blocks[f->f_lasti/sizeof(_Py_CODEUNIT)];
- const char *msg = "cannot find bytecode for specified line";
- for (int i = 0; i < len; i++) {
- if (lines[i] == new_lineno) {
- target_block_stack = blocks[i];
- if (compatible_block_stack(start_block_stack, target_block_stack)) {
- msg = NULL;
- if (target_block_stack > best_block_stack) {
- best_block_stack = target_block_stack;
- best_addr = i*sizeof(_Py_CODEUNIT);
- }
+ int64_t target_block_stack = -1;
+ int64_t best_block_stack = -1;
+ int best_addr = -1;
+ int64_t start_block_stack = blocks[f->f_lasti/sizeof(_Py_CODEUNIT)];
+ const char *msg = "cannot find bytecode for specified line";
+ for (int i = 0; i < len; i++) {
+ if (lines[i] == new_lineno) {
+ target_block_stack = blocks[i];
+ if (compatible_block_stack(start_block_stack, target_block_stack)) {
+ msg = NULL;
+ if (target_block_stack > best_block_stack) {
+ best_block_stack = target_block_stack;
+ best_addr = i*sizeof(_Py_CODEUNIT);
+ }
}
- else if (msg) {
- if (target_block_stack >= 0) {
- msg = explain_incompatible_block_stack(target_block_stack);
+ else if (msg) {
+ if (target_block_stack >= 0) {
+ msg = explain_incompatible_block_stack(target_block_stack);
+ }
+ else {
+ msg = "code may be unreachable.";
}
- else {
- msg = "code may be unreachable.";
- }
}
}
- }
- PyMem_Free(blocks);
- PyMem_Free(lines);
- if (msg != NULL) {
- PyErr_SetString(PyExc_ValueError, msg);
- return -1;
- }
-
- /* Unwind block stack. */
- while (start_block_stack > best_block_stack) {
- Kind kind = top_block(start_block_stack);
- switch(kind) {
- case Loop:
- frame_stack_pop(f);
- break;
- case Try:
- frame_block_unwind(f);
- break;
- case With:
- frame_block_unwind(f);
- // Pop the exit function
- frame_stack_pop(f);
- break;
- case Except:
- PyErr_SetString(PyExc_ValueError,
- "can't jump out of an 'except' block");
- return -1;
+ }
+ PyMem_Free(blocks);
+ PyMem_Free(lines);
+ if (msg != NULL) {
+ PyErr_SetString(PyExc_ValueError, msg);
+ return -1;
+ }
+
+ /* Unwind block stack. */
+ while (start_block_stack > best_block_stack) {
+ Kind kind = top_block(start_block_stack);
+ switch(kind) {
+ case Loop:
+ frame_stack_pop(f);
+ break;
+ case Try:
+ frame_block_unwind(f);
+ break;
+ case With:
+ frame_block_unwind(f);
+ // Pop the exit function
+ frame_stack_pop(f);
+ break;
+ case Except:
+ PyErr_SetString(PyExc_ValueError,
+ "can't jump out of an 'except' block");
+ return -1;
}
- start_block_stack = pop_block(start_block_stack);
+ start_block_stack = pop_block(start_block_stack);
}
/* Finally set the new f_lineno and f_lasti and return OK. */
f->f_lineno = new_lineno;
- f->f_lasti = best_addr;
+ f->f_lasti = best_addr;
return 0;
}
@@ -558,13 +558,13 @@ static PyGetSetDef frame_getsetlist[] = {
free_list. Else programs creating lots of cyclic trash involving
frames could provoke free_list into growing without bound.
*/
-/* max value for numfree */
-#define PyFrame_MAXFREELIST 200
+/* max value for numfree */
+#define PyFrame_MAXFREELIST 200
-#if PyFrame_MAXFREELIST > 0
+#if PyFrame_MAXFREELIST > 0
static PyFrameObject *free_list = NULL;
static int numfree = 0; /* number of frames currently in free_list */
-#endif
+#endif
static void _Py_HOT_FUNCTION
frame_dealloc(PyFrameObject *f)
@@ -575,7 +575,7 @@ frame_dealloc(PyFrameObject *f)
if (_PyObject_GC_IS_TRACKED(f))
_PyObject_GC_UNTRACK(f);
- Py_TRASHCAN_BEGIN(f, frame_dealloc);
+ Py_TRASHCAN_BEGIN(f, frame_dealloc);
/* Kill all local variables */
valuestack = f->f_valuestack;
for (p = f->f_localsplus; p < valuestack; p++)
@@ -594,33 +594,33 @@ frame_dealloc(PyFrameObject *f)
Py_CLEAR(f->f_trace);
co = f->f_code;
- if (co->co_zombieframe == NULL) {
+ if (co->co_zombieframe == NULL) {
co->co_zombieframe = f;
- }
-#if PyFrame_MAXFREELIST > 0
+ }
+#if PyFrame_MAXFREELIST > 0
else if (numfree < PyFrame_MAXFREELIST) {
++numfree;
f->f_back = free_list;
free_list = f;
}
-#endif
- else {
+#endif
+ else {
PyObject_GC_Del(f);
- }
+ }
Py_DECREF(co);
- Py_TRASHCAN_END;
+ Py_TRASHCAN_END;
+}
+
+static inline Py_ssize_t
+frame_nslots(PyFrameObject *frame)
+{
+ PyCodeObject *code = frame->f_code;
+ return (code->co_nlocals
+ + PyTuple_GET_SIZE(code->co_cellvars)
+ + PyTuple_GET_SIZE(code->co_freevars));
}
-static inline Py_ssize_t
-frame_nslots(PyFrameObject *frame)
-{
- PyCodeObject *code = frame->f_code;
- return (code->co_nlocals
- + PyTuple_GET_SIZE(code->co_cellvars)
- + PyTuple_GET_SIZE(code->co_freevars));
-}
-
static int
frame_traverse(PyFrameObject *f, visitproc visit, void *arg)
{
@@ -632,16 +632,16 @@ frame_traverse(PyFrameObject *f, visitproc visit, void *arg)
Py_VISIT(f->f_trace);
/* locals */
- PyObject **fastlocals = f->f_localsplus;
- for (Py_ssize_t i = frame_nslots(f); --i >= 0; ++fastlocals) {
+ PyObject **fastlocals = f->f_localsplus;
+ for (Py_ssize_t i = frame_nslots(f); --i >= 0; ++fastlocals) {
Py_VISIT(*fastlocals);
- }
+ }
/* stack */
if (f->f_stacktop != NULL) {
- for (PyObject **p = f->f_valuestack; p < f->f_stacktop; p++) {
+ for (PyObject **p = f->f_valuestack; p < f->f_stacktop; p++) {
Py_VISIT(*p);
- }
+ }
}
return 0;
}
@@ -654,29 +654,29 @@ frame_tp_clear(PyFrameObject *f)
* frame may also point to this frame, believe itself to still be
* active, and try cleaning up this frame again.
*/
- PyObject **oldtop = f->f_stacktop;
+ PyObject **oldtop = f->f_stacktop;
f->f_stacktop = NULL;
f->f_executing = 0;
Py_CLEAR(f->f_trace);
/* locals */
- PyObject **fastlocals = f->f_localsplus;
- for (Py_ssize_t i = frame_nslots(f); --i >= 0; ++fastlocals) {
+ PyObject **fastlocals = f->f_localsplus;
+ for (Py_ssize_t i = frame_nslots(f); --i >= 0; ++fastlocals) {
Py_CLEAR(*fastlocals);
- }
+ }
/* stack */
if (oldtop != NULL) {
- for (PyObject **p = f->f_valuestack; p < oldtop; p++) {
+ for (PyObject **p = f->f_valuestack; p < oldtop; p++) {
Py_CLEAR(*p);
- }
+ }
}
return 0;
}
static PyObject *
-frame_clear(PyFrameObject *f, PyObject *Py_UNUSED(ignored))
+frame_clear(PyFrameObject *f, PyObject *Py_UNUSED(ignored))
{
if (f->f_executing) {
PyErr_SetString(PyExc_RuntimeError,
@@ -695,14 +695,14 @@ PyDoc_STRVAR(clear__doc__,
"F.clear(): clear most references held by the frame");
static PyObject *
-frame_sizeof(PyFrameObject *f, PyObject *Py_UNUSED(ignored))
+frame_sizeof(PyFrameObject *f, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t res, extras, ncells, nfrees;
- PyCodeObject *code = f->f_code;
- ncells = PyTuple_GET_SIZE(code->co_cellvars);
- nfrees = PyTuple_GET_SIZE(code->co_freevars);
- extras = code->co_stacksize + code->co_nlocals + ncells + nfrees;
+ PyCodeObject *code = f->f_code;
+ ncells = PyTuple_GET_SIZE(code->co_cellvars);
+ nfrees = PyTuple_GET_SIZE(code->co_freevars);
+ extras = code->co_stacksize + code->co_nlocals + ncells + nfrees;
/* subtract one as it is already included in PyFrameObject */
res = sizeof(PyFrameObject) + (extras-1) * sizeof(PyObject *);
@@ -716,10 +716,10 @@ static PyObject *
frame_repr(PyFrameObject *f)
{
int lineno = PyFrame_GetLineNumber(f);
- PyCodeObject *code = f->f_code;
+ PyCodeObject *code = f->f_code;
return PyUnicode_FromFormat(
"<frame at %p, file %R, line %d, code %S>",
- f, code->co_filename, lineno, code->co_name);
+ f, code->co_filename, lineno, code->co_name);
}
static PyMethodDef frame_methods[] = {
@@ -736,10 +736,10 @@ PyTypeObject PyFrame_Type = {
sizeof(PyFrameObject),
sizeof(PyObject *),
(destructor)frame_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)frame_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -767,127 +767,127 @@ PyTypeObject PyFrame_Type = {
_Py_IDENTIFIER(__builtins__);
-static inline PyFrameObject*
-frame_alloc(PyCodeObject *code)
+static inline PyFrameObject*
+frame_alloc(PyCodeObject *code)
{
PyFrameObject *f;
- f = code->co_zombieframe;
- if (f != NULL) {
- code->co_zombieframe = NULL;
- _Py_NewReference((PyObject *)f);
- assert(f->f_code == code);
- return f;
- }
-
- Py_ssize_t ncells = PyTuple_GET_SIZE(code->co_cellvars);
- Py_ssize_t nfrees = PyTuple_GET_SIZE(code->co_freevars);
- Py_ssize_t extras = code->co_stacksize + code->co_nlocals + ncells + nfrees;
-#if PyFrame_MAXFREELIST > 0
- if (free_list == NULL)
+ f = code->co_zombieframe;
+ if (f != NULL) {
+ code->co_zombieframe = NULL;
+ _Py_NewReference((PyObject *)f);
+ assert(f->f_code == code);
+ return f;
+ }
+
+ Py_ssize_t ncells = PyTuple_GET_SIZE(code->co_cellvars);
+ Py_ssize_t nfrees = PyTuple_GET_SIZE(code->co_freevars);
+ Py_ssize_t extras = code->co_stacksize + code->co_nlocals + ncells + nfrees;
+#if PyFrame_MAXFREELIST > 0
+ if (free_list == NULL)
#endif
- {
- f = PyObject_GC_NewVar(PyFrameObject, &PyFrame_Type, extras);
- if (f == NULL) {
- return NULL;
+ {
+ f = PyObject_GC_NewVar(PyFrameObject, &PyFrame_Type, extras);
+ if (f == NULL) {
+ return NULL;
}
- }
-#if PyFrame_MAXFREELIST > 0
- else {
- assert(numfree > 0);
- --numfree;
- f = free_list;
- free_list = free_list->f_back;
- if (Py_SIZE(f) < extras) {
- PyFrameObject *new_f = PyObject_GC_Resize(PyFrameObject, f, extras);
- if (new_f == NULL) {
- PyObject_GC_Del(f);
- return NULL;
- }
- f = new_f;
+ }
+#if PyFrame_MAXFREELIST > 0
+ else {
+ assert(numfree > 0);
+ --numfree;
+ f = free_list;
+ free_list = free_list->f_back;
+ if (Py_SIZE(f) < extras) {
+ PyFrameObject *new_f = PyObject_GC_Resize(PyFrameObject, f, extras);
+ if (new_f == NULL) {
+ PyObject_GC_Del(f);
+ return NULL;
+ }
+ f = new_f;
}
- _Py_NewReference((PyObject *)f);
- }
-#endif
-
- f->f_code = code;
- extras = code->co_nlocals + ncells + nfrees;
- f->f_valuestack = f->f_localsplus + extras;
- for (Py_ssize_t i=0; i<extras; i++) {
- f->f_localsplus[i] = NULL;
- }
- f->f_locals = NULL;
- f->f_trace = NULL;
- return f;
-}
-
-
-static inline PyObject *
-frame_get_builtins(PyFrameObject *back, PyObject *globals)
-{
- PyObject *builtins;
-
- if (back != NULL && back->f_globals == globals) {
+ _Py_NewReference((PyObject *)f);
+ }
+#endif
+
+ f->f_code = code;
+ extras = code->co_nlocals + ncells + nfrees;
+ f->f_valuestack = f->f_localsplus + extras;
+ for (Py_ssize_t i=0; i<extras; i++) {
+ f->f_localsplus[i] = NULL;
+ }
+ f->f_locals = NULL;
+ f->f_trace = NULL;
+ return f;
+}
+
+
+static inline PyObject *
+frame_get_builtins(PyFrameObject *back, PyObject *globals)
+{
+ PyObject *builtins;
+
+ if (back != NULL && back->f_globals == globals) {
/* If we share the globals, we share the builtins.
Save a lookup and a call. */
builtins = back->f_builtins;
assert(builtins != NULL);
Py_INCREF(builtins);
- return builtins;
- }
-
- builtins = _PyDict_GetItemIdWithError(globals, &PyId___builtins__);
- if (builtins != NULL && PyModule_Check(builtins)) {
- builtins = PyModule_GetDict(builtins);
- assert(builtins != NULL);
- }
- if (builtins != NULL) {
- Py_INCREF(builtins);
- return builtins;
- }
-
- if (PyErr_Occurred()) {
- return NULL;
- }
-
- /* No builtins! Make up a minimal one.
- Give them 'None', at least. */
- builtins = PyDict_New();
- if (builtins == NULL) {
- return NULL;
- }
- if (PyDict_SetItemString(builtins, "None", Py_None) < 0) {
- Py_DECREF(builtins);
- return NULL;
- }
- return builtins;
-}
-
-
-PyFrameObject* _Py_HOT_FUNCTION
-_PyFrame_New_NoTrack(PyThreadState *tstate, PyCodeObject *code,
- PyObject *globals, PyObject *locals)
-{
-#ifdef Py_DEBUG
- if (code == NULL || globals == NULL || !PyDict_Check(globals) ||
- (locals != NULL && !PyMapping_Check(locals))) {
- PyErr_BadInternalCall();
- return NULL;
- }
-#endif
-
- PyFrameObject *back = tstate->frame;
- PyObject *builtins = frame_get_builtins(back, globals);
- if (builtins == NULL) {
- return NULL;
- }
-
- PyFrameObject *f = frame_alloc(code);
- if (f == NULL) {
- Py_DECREF(builtins);
- return NULL;
- }
-
+ return builtins;
+ }
+
+ builtins = _PyDict_GetItemIdWithError(globals, &PyId___builtins__);
+ if (builtins != NULL && PyModule_Check(builtins)) {
+ builtins = PyModule_GetDict(builtins);
+ assert(builtins != NULL);
+ }
+ if (builtins != NULL) {
+ Py_INCREF(builtins);
+ return builtins;
+ }
+
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+
+ /* No builtins! Make up a minimal one.
+ Give them 'None', at least. */
+ builtins = PyDict_New();
+ if (builtins == NULL) {
+ return NULL;
+ }
+ if (PyDict_SetItemString(builtins, "None", Py_None) < 0) {
+ Py_DECREF(builtins);
+ return NULL;
+ }
+ return builtins;
+}
+
+
+PyFrameObject* _Py_HOT_FUNCTION
+_PyFrame_New_NoTrack(PyThreadState *tstate, PyCodeObject *code,
+ PyObject *globals, PyObject *locals)
+{
+#ifdef Py_DEBUG
+ if (code == NULL || globals == NULL || !PyDict_Check(globals) ||
+ (locals != NULL && !PyMapping_Check(locals))) {
+ PyErr_BadInternalCall();
+ return NULL;
+ }
+#endif
+
+ PyFrameObject *back = tstate->frame;
+ PyObject *builtins = frame_get_builtins(back, globals);
+ if (builtins == NULL) {
+ return NULL;
+ }
+
+ PyFrameObject *f = frame_alloc(code);
+ if (f == NULL) {
+ Py_DECREF(builtins);
+ return NULL;
+ }
+
f->f_stacktop = f->f_valuestack;
f->f_builtins = builtins;
Py_XINCREF(back);
@@ -922,8 +922,8 @@ _PyFrame_New_NoTrack(PyThreadState *tstate, PyCodeObject *code,
f->f_trace_opcodes = 0;
f->f_trace_lines = 1;
- assert(f->f_code != NULL);
-
+ assert(f->f_code != NULL);
+
return f;
}
@@ -944,9 +944,9 @@ void
PyFrame_BlockSetup(PyFrameObject *f, int type, int handler, int level)
{
PyTryBlock *b;
- if (f->f_iblock >= CO_MAXBLOCKS) {
- Py_FatalError("block stack overflow");
- }
+ if (f->f_iblock >= CO_MAXBLOCKS) {
+ Py_FatalError("block stack overflow");
+ }
b = &f->f_blockstack[f->f_iblock++];
b->b_type = type;
b->b_level = level;
@@ -957,9 +957,9 @@ PyTryBlock *
PyFrame_BlockPop(PyFrameObject *f)
{
PyTryBlock *b;
- if (f->f_iblock <= 0) {
- Py_FatalError("block stack underflow");
- }
+ if (f->f_iblock <= 0) {
+ Py_FatalError("block stack underflow");
+ }
b = &f->f_blockstack[--f->f_iblock];
return b;
}
@@ -1176,10 +1176,10 @@ PyFrame_LocalsToFast(PyFrameObject *f, int clear)
}
/* Clear out the free list */
-void
-_PyFrame_ClearFreeList(void)
+void
+_PyFrame_ClearFreeList(void)
{
-#if PyFrame_MAXFREELIST > 0
+#if PyFrame_MAXFREELIST > 0
while (free_list != NULL) {
PyFrameObject *f = free_list;
free_list = free_list->f_back;
@@ -1187,43 +1187,43 @@ _PyFrame_ClearFreeList(void)
--numfree;
}
assert(numfree == 0);
-#endif
+#endif
}
void
-_PyFrame_Fini(void)
+_PyFrame_Fini(void)
{
- _PyFrame_ClearFreeList();
+ _PyFrame_ClearFreeList();
}
/* Print summary info about the state of the optimized allocator */
void
_PyFrame_DebugMallocStats(FILE *out)
{
-#if PyFrame_MAXFREELIST > 0
+#if PyFrame_MAXFREELIST > 0
_PyDebugAllocatorStats(out,
"free PyFrameObject",
numfree, sizeof(PyFrameObject));
-#endif
+#endif
}
-
-PyCodeObject *
-PyFrame_GetCode(PyFrameObject *frame)
-{
- assert(frame != NULL);
- PyCodeObject *code = frame->f_code;
- assert(code != NULL);
- Py_INCREF(code);
- return code;
-}
-
-
-PyFrameObject*
-PyFrame_GetBack(PyFrameObject *frame)
-{
- assert(frame != NULL);
- PyFrameObject *back = frame->f_back;
- Py_XINCREF(back);
- return back;
-}
+
+PyCodeObject *
+PyFrame_GetCode(PyFrameObject *frame)
+{
+ assert(frame != NULL);
+ PyCodeObject *code = frame->f_code;
+ assert(code != NULL);
+ Py_INCREF(code);
+ return code;
+}
+
+
+PyFrameObject*
+PyFrame_GetBack(PyFrameObject *frame)
+{
+ assert(frame != NULL);
+ PyFrameObject *back = frame->f_back;
+ Py_XINCREF(back);
+ return back;
+}
diff --git a/contrib/tools/python3/src/Objects/funcobject.c b/contrib/tools/python3/src/Objects/funcobject.c
index 5b792dc3ed..2c60275d90 100644
--- a/contrib/tools/python3/src/Objects/funcobject.c
+++ b/contrib/tools/python3/src/Objects/funcobject.c
@@ -2,10 +2,10 @@
/* Function object implementation */
#include "Python.h"
-#include "pycore_object.h"
-#include "pycore_tupleobject.h"
+#include "pycore_object.h"
+#include "pycore_tupleobject.h"
#include "code.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
PyObject *
PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
@@ -20,23 +20,23 @@ PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname
return NULL;
}
- /* __module__: If module name is in globals, use it.
- Otherwise, use None. */
- module = PyDict_GetItemWithError(globals, __name__);
- if (module) {
- Py_INCREF(module);
- }
- else if (PyErr_Occurred()) {
- return NULL;
- }
-
+ /* __module__: If module name is in globals, use it.
+ Otherwise, use None. */
+ module = PyDict_GetItemWithError(globals, __name__);
+ if (module) {
+ Py_INCREF(module);
+ }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
+
op = PyObject_GC_New(PyFunctionObject, &PyFunction_Type);
- if (op == NULL) {
- Py_XDECREF(module);
+ if (op == NULL) {
+ Py_XDECREF(module);
return NULL;
- }
- /* Note: No failures from this point on, since func_dealloc() does not
- expect a partially-created object. */
+ }
+ /* Note: No failures from this point on, since func_dealloc() does not
+ expect a partially-created object. */
op->func_weakreflist = NULL;
Py_INCREF(code);
@@ -48,8 +48,8 @@ PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname
op->func_defaults = NULL; /* No default arguments */
op->func_kwdefaults = NULL; /* No keyword only defaults */
op->func_closure = NULL;
- op->vectorcall = _PyFunction_Vectorcall;
- op->func_module = module;
+ op->vectorcall = _PyFunction_Vectorcall;
+ op->func_module = module;
consts = ((PyCodeObject *)code)->co_consts;
if (PyTuple_Size(consts) >= 1) {
@@ -197,7 +197,7 @@ PyFunction_SetClosure(PyObject *op, PyObject *closure)
else {
PyErr_Format(PyExc_SystemError,
"expected tuple for closure, got '%.100s'",
- Py_TYPE(closure)->tp_name);
+ Py_TYPE(closure)->tp_name);
return -1;
}
Py_XSETREF(((PyFunctionObject *)op)->func_closure, closure);
@@ -240,20 +240,20 @@ PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)
#define OFF(x) offsetof(PyFunctionObject, x)
static PyMemberDef func_memberlist[] = {
- {"__closure__", T_OBJECT, OFF(func_closure), READONLY},
- {"__doc__", T_OBJECT, OFF(func_doc), 0},
- {"__globals__", T_OBJECT, OFF(func_globals), READONLY},
- {"__module__", T_OBJECT, OFF(func_module), 0},
+ {"__closure__", T_OBJECT, OFF(func_closure), READONLY},
+ {"__doc__", T_OBJECT, OFF(func_doc), 0},
+ {"__globals__", T_OBJECT, OFF(func_globals), READONLY},
+ {"__module__", T_OBJECT, OFF(func_module), 0},
{NULL} /* Sentinel */
};
static PyObject *
func_get_code(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
- if (PySys_Audit("object.__getattr__", "Os", op, "__code__") < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("object.__getattr__", "Os", op, "__code__") < 0) {
+ return NULL;
+ }
+
Py_INCREF(op->func_code);
return op->func_code;
}
@@ -270,12 +270,12 @@ func_set_code(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
"__code__ must be set to a code object");
return -1;
}
-
- if (PySys_Audit("object.__setattr__", "OsO",
- op, "__code__", value) < 0) {
- return -1;
- }
-
+
+ if (PySys_Audit("object.__setattr__", "OsO",
+ op, "__code__", value) < 0) {
+ return -1;
+ }
+
nfree = PyCode_GetNumFree((PyCodeObject *)value);
nclosure = (op->func_closure == NULL ? 0 :
PyTuple_GET_SIZE(op->func_closure));
@@ -339,9 +339,9 @@ func_set_qualname(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored
static PyObject *
func_get_defaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
- if (PySys_Audit("object.__getattr__", "Os", op, "__defaults__") < 0) {
- return NULL;
- }
+ if (PySys_Audit("object.__getattr__", "Os", op, "__defaults__") < 0) {
+ return NULL;
+ }
if (op->func_defaults == NULL) {
Py_RETURN_NONE;
}
@@ -361,16 +361,16 @@ func_set_defaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored
"__defaults__ must be set to a tuple object");
return -1;
}
- if (value) {
- if (PySys_Audit("object.__setattr__", "OsO",
- op, "__defaults__", value) < 0) {
- return -1;
- }
- } else if (PySys_Audit("object.__delattr__", "Os",
- op, "__defaults__") < 0) {
- return -1;
- }
-
+ if (value) {
+ if (PySys_Audit("object.__setattr__", "OsO",
+ op, "__defaults__", value) < 0) {
+ return -1;
+ }
+ } else if (PySys_Audit("object.__delattr__", "Os",
+ op, "__defaults__") < 0) {
+ return -1;
+ }
+
Py_XINCREF(value);
Py_XSETREF(op->func_defaults, value);
return 0;
@@ -379,10 +379,10 @@ func_set_defaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored
static PyObject *
func_get_kwdefaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
- if (PySys_Audit("object.__getattr__", "Os",
- op, "__kwdefaults__") < 0) {
- return NULL;
- }
+ if (PySys_Audit("object.__getattr__", "Os",
+ op, "__kwdefaults__") < 0) {
+ return NULL;
+ }
if (op->func_kwdefaults == NULL) {
Py_RETURN_NONE;
}
@@ -402,16 +402,16 @@ func_set_kwdefaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignor
"__kwdefaults__ must be set to a dict object");
return -1;
}
- if (value) {
- if (PySys_Audit("object.__setattr__", "OsO",
- op, "__kwdefaults__", value) < 0) {
- return -1;
- }
- } else if (PySys_Audit("object.__delattr__", "Os",
- op, "__kwdefaults__") < 0) {
- return -1;
- }
-
+ if (value) {
+ if (PySys_Audit("object.__setattr__", "OsO",
+ op, "__kwdefaults__", value) < 0) {
+ return -1;
+ }
+ } else if (PySys_Audit("object.__delattr__", "Os",
+ op, "__kwdefaults__") < 0) {
+ return -1;
+ }
+
Py_XINCREF(value);
Py_XSETREF(op->func_kwdefaults, value);
return 0;
@@ -540,13 +540,13 @@ func_new_impl(PyTypeObject *type, PyCodeObject *code, PyObject *globals,
if (!PyCell_Check(o)) {
return PyErr_Format(PyExc_TypeError,
"arg 5 (closure) expected cell, found %s",
- Py_TYPE(o)->tp_name);
+ Py_TYPE(o)->tp_name);
}
}
}
- if (PySys_Audit("function.__new__", "O", code) < 0) {
- return NULL;
- }
+ if (PySys_Audit("function.__new__", "O", code) < 0) {
+ return NULL;
+ }
newfunc = (PyFunctionObject *)PyFunction_New((PyObject *)code,
globals);
@@ -569,31 +569,31 @@ func_new_impl(PyTypeObject *type, PyCodeObject *code, PyObject *globals,
return (PyObject *)newfunc;
}
-static int
-func_clear(PyFunctionObject *op)
-{
- Py_CLEAR(op->func_code);
- Py_CLEAR(op->func_globals);
- Py_CLEAR(op->func_module);
- Py_CLEAR(op->func_name);
- Py_CLEAR(op->func_defaults);
- Py_CLEAR(op->func_kwdefaults);
- Py_CLEAR(op->func_doc);
- Py_CLEAR(op->func_dict);
- Py_CLEAR(op->func_closure);
- Py_CLEAR(op->func_annotations);
- Py_CLEAR(op->func_qualname);
- return 0;
-}
-
+static int
+func_clear(PyFunctionObject *op)
+{
+ Py_CLEAR(op->func_code);
+ Py_CLEAR(op->func_globals);
+ Py_CLEAR(op->func_module);
+ Py_CLEAR(op->func_name);
+ Py_CLEAR(op->func_defaults);
+ Py_CLEAR(op->func_kwdefaults);
+ Py_CLEAR(op->func_doc);
+ Py_CLEAR(op->func_dict);
+ Py_CLEAR(op->func_closure);
+ Py_CLEAR(op->func_annotations);
+ Py_CLEAR(op->func_qualname);
+ return 0;
+}
+
static void
func_dealloc(PyFunctionObject *op)
{
_PyObject_GC_UNTRACK(op);
- if (op->func_weakreflist != NULL) {
+ if (op->func_weakreflist != NULL) {
PyObject_ClearWeakRefs((PyObject *) op);
- }
- (void)func_clear(op);
+ }
+ (void)func_clear(op);
PyObject_GC_Del(op);
}
@@ -638,26 +638,26 @@ PyTypeObject PyFunction_Type = {
sizeof(PyFunctionObject),
0,
(destructor)func_dealloc, /* tp_dealloc */
- offsetof(PyFunctionObject, vectorcall), /* tp_vectorcall_offset */
+ offsetof(PyFunctionObject, vectorcall), /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)func_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
- PyVectorcall_Call, /* tp_call */
+ PyVectorcall_Call, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_HAVE_VECTORCALL |
- Py_TPFLAGS_METHOD_DESCRIPTOR, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
+ Py_TPFLAGS_HAVE_VECTORCALL |
+ Py_TPFLAGS_METHOD_DESCRIPTOR, /* tp_flags */
func_new__doc__, /* tp_doc */
(traverseproc)func_traverse, /* tp_traverse */
- (inquiry)func_clear, /* tp_clear */
+ (inquiry)func_clear, /* tp_clear */
0, /* tp_richcompare */
offsetof(PyFunctionObject, func_weakreflist), /* tp_weaklistoffset */
0, /* tp_iter */
@@ -740,10 +740,10 @@ cm_descr_get(PyObject *self, PyObject *obj, PyObject *type)
}
if (type == NULL)
type = (PyObject *)(Py_TYPE(obj));
- if (Py_TYPE(cm->cm_callable)->tp_descr_get != NULL) {
- return Py_TYPE(cm->cm_callable)->tp_descr_get(cm->cm_callable, type,
- NULL);
- }
+ if (Py_TYPE(cm->cm_callable)->tp_descr_get != NULL) {
+ return Py_TYPE(cm->cm_callable)->tp_descr_get(cm->cm_callable, type,
+ NULL);
+ }
return PyMethod_New(cm->cm_callable, type);
}
@@ -817,10 +817,10 @@ PyTypeObject PyClassMethod_Type = {
sizeof(classmethod),
0,
(destructor)cm_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -877,8 +877,8 @@ PyClassMethod_New(PyObject *callable)
...
It can be called either on the class (e.g. C.f()) or on an instance
- (e.g. C().f()). Both the class and the instance are ignored, and
- neither is passed implicitly as the first argument to the method.
+ (e.g. C().f()). Both the class and the instance are ignored, and
+ neither is passed implicitly as the first argument to the method.
Static methods in Python are similar to those found in Java or C++.
For a more advanced concept, see class methods above.
@@ -985,8 +985,8 @@ To declare a static method, use this idiom:\n\
...\n\
\n\
It can be called either on the class (e.g. C.f()) or on an instance\n\
-(e.g. C().f()). Both the class and the instance are ignored, and\n\
-neither is passed implicitly as the first argument to the method.\n\
+(e.g. C().f()). Both the class and the instance are ignored, and\n\
+neither is passed implicitly as the first argument to the method.\n\
\n\
Static methods in Python are similar to those found in Java or C++.\n\
For a more advanced concept, see the classmethod builtin.");
@@ -997,10 +997,10 @@ PyTypeObject PyStaticMethod_Type = {
sizeof(staticmethod),
0,
(destructor)sm_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/genericaliasobject.c b/contrib/tools/python3/src/Objects/genericaliasobject.c
index 44b974ec26..acbb01cfef 100644
--- a/contrib/tools/python3/src/Objects/genericaliasobject.c
+++ b/contrib/tools/python3/src/Objects/genericaliasobject.c
@@ -1,655 +1,655 @@
-// types.GenericAlias -- used to represent e.g. list[int].
-
-#include "Python.h"
-#include "pycore_object.h"
-#include "structmember.h" // PyMemberDef
-
-typedef struct {
- PyObject_HEAD
- PyObject *origin;
- PyObject *args;
- PyObject *parameters;
- PyObject* weakreflist;
-} gaobject;
-
-static void
-ga_dealloc(PyObject *self)
-{
- gaobject *alias = (gaobject *)self;
-
- _PyObject_GC_UNTRACK(self);
- if (alias->weakreflist != NULL) {
- PyObject_ClearWeakRefs((PyObject *)alias);
- }
- Py_XDECREF(alias->origin);
- Py_XDECREF(alias->args);
- Py_XDECREF(alias->parameters);
- self->ob_type->tp_free(self);
-}
-
-static int
-ga_traverse(PyObject *self, visitproc visit, void *arg)
-{
- gaobject *alias = (gaobject *)self;
- Py_VISIT(alias->origin);
- Py_VISIT(alias->args);
- Py_VISIT(alias->parameters);
- return 0;
-}
-
-static int
-ga_repr_item(_PyUnicodeWriter *writer, PyObject *p)
-{
- _Py_IDENTIFIER(__module__);
- _Py_IDENTIFIER(__qualname__);
- _Py_IDENTIFIER(__origin__);
- _Py_IDENTIFIER(__args__);
- PyObject *qualname = NULL;
- PyObject *module = NULL;
- PyObject *r = NULL;
- PyObject *tmp;
- int err;
-
- if (p == Py_Ellipsis) {
- // The Ellipsis object
- r = PyUnicode_FromString("...");
- goto done;
- }
-
- if (_PyObject_LookupAttrId(p, &PyId___origin__, &tmp) < 0) {
- goto done;
- }
- if (tmp != NULL) {
- Py_DECREF(tmp);
- if (_PyObject_LookupAttrId(p, &PyId___args__, &tmp) < 0) {
- goto done;
- }
- if (tmp != NULL) {
- Py_DECREF(tmp);
- // It looks like a GenericAlias
- goto use_repr;
- }
- }
-
- if (_PyObject_LookupAttrId(p, &PyId___qualname__, &qualname) < 0) {
- goto done;
- }
- if (qualname == NULL) {
- goto use_repr;
- }
- if (_PyObject_LookupAttrId(p, &PyId___module__, &module) < 0) {
- goto done;
- }
- if (module == NULL || module == Py_None) {
- goto use_repr;
- }
-
- // Looks like a class
- if (PyUnicode_Check(module) &&
- _PyUnicode_EqualToASCIIString(module, "builtins"))
- {
- // builtins don't need a module name
- r = PyObject_Str(qualname);
- goto done;
- }
- else {
- r = PyUnicode_FromFormat("%S.%S", module, qualname);
- goto done;
- }
-
-use_repr:
- r = PyObject_Repr(p);
-
-done:
- Py_XDECREF(qualname);
- Py_XDECREF(module);
- if (r == NULL) {
- // error if any of the above PyObject_Repr/PyUnicode_From* fail
- err = -1;
- }
- else {
- err = _PyUnicodeWriter_WriteStr(writer, r);
- Py_DECREF(r);
- }
- return err;
-}
-
-static PyObject *
-ga_repr(PyObject *self)
-{
- gaobject *alias = (gaobject *)self;
- Py_ssize_t len = PyTuple_GET_SIZE(alias->args);
-
- _PyUnicodeWriter writer;
- _PyUnicodeWriter_Init(&writer);
-
- if (ga_repr_item(&writer, alias->origin) < 0) {
- goto error;
- }
- if (_PyUnicodeWriter_WriteASCIIString(&writer, "[", 1) < 0) {
- goto error;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- if (i > 0) {
- if (_PyUnicodeWriter_WriteASCIIString(&writer, ", ", 2) < 0) {
- goto error;
- }
- }
- PyObject *p = PyTuple_GET_ITEM(alias->args, i);
- if (ga_repr_item(&writer, p) < 0) {
- goto error;
- }
- }
- if (len == 0) {
- // for something like tuple[()] we should print a "()"
- if (_PyUnicodeWriter_WriteASCIIString(&writer, "()", 2) < 0) {
- goto error;
- }
- }
- if (_PyUnicodeWriter_WriteASCIIString(&writer, "]", 1) < 0) {
- goto error;
- }
- return _PyUnicodeWriter_Finish(&writer);
-error:
- _PyUnicodeWriter_Dealloc(&writer);
- return NULL;
-}
-
-// isinstance(obj, TypeVar) without importing typing.py.
-// Returns -1 for errors.
-static int
-is_typevar(PyObject *obj)
-{
- PyTypeObject *type = Py_TYPE(obj);
- if (strcmp(type->tp_name, "TypeVar") != 0) {
- return 0;
- }
- PyObject *module = PyObject_GetAttrString((PyObject *)type, "__module__");
- if (module == NULL) {
- return -1;
- }
- int res = PyUnicode_Check(module)
- && _PyUnicode_EqualToASCIIString(module, "typing");
- Py_DECREF(module);
- return res;
-}
-
-// Index of item in self[:len], or -1 if not found (self is a tuple)
-static Py_ssize_t
-tuple_index(PyObject *self, Py_ssize_t len, PyObject *item)
-{
- for (Py_ssize_t i = 0; i < len; i++) {
- if (PyTuple_GET_ITEM(self, i) == item) {
- return i;
- }
- }
- return -1;
-}
-
-static int
-tuple_add(PyObject *self, Py_ssize_t len, PyObject *item)
-{
- if (tuple_index(self, len, item) < 0) {
- Py_INCREF(item);
- PyTuple_SET_ITEM(self, len, item);
- return 1;
- }
- return 0;
-}
-
-static PyObject *
-make_parameters(PyObject *args)
-{
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
- Py_ssize_t len = nargs;
- PyObject *parameters = PyTuple_New(len);
- if (parameters == NULL)
- return NULL;
- Py_ssize_t iparam = 0;
- for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) {
- PyObject *t = PyTuple_GET_ITEM(args, iarg);
- int typevar = is_typevar(t);
- if (typevar < 0) {
- Py_DECREF(parameters);
- return NULL;
- }
- if (typevar) {
- iparam += tuple_add(parameters, iparam, t);
- }
- else {
- _Py_IDENTIFIER(__parameters__);
- PyObject *subparams;
- if (_PyObject_LookupAttrId(t, &PyId___parameters__, &subparams) < 0) {
- Py_DECREF(parameters);
- return NULL;
- }
- if (subparams && PyTuple_Check(subparams)) {
- Py_ssize_t len2 = PyTuple_GET_SIZE(subparams);
- Py_ssize_t needed = len2 - 1 - (iarg - iparam);
- if (needed > 0) {
- len += needed;
- if (_PyTuple_Resize(&parameters, len) < 0) {
- Py_DECREF(subparams);
- Py_DECREF(parameters);
- return NULL;
- }
- }
- for (Py_ssize_t j = 0; j < len2; j++) {
- PyObject *t2 = PyTuple_GET_ITEM(subparams, j);
- iparam += tuple_add(parameters, iparam, t2);
- }
- }
- Py_XDECREF(subparams);
- }
- }
- if (iparam < len) {
- if (_PyTuple_Resize(&parameters, iparam) < 0) {
- Py_XDECREF(parameters);
- return NULL;
- }
- }
- return parameters;
-}
-
-/* If obj is a generic alias, substitute type variables params
- with substitutions argitems. For example, if obj is list[T],
- params is (T, S), and argitems is (str, int), return list[str].
- If obj doesn't have a __parameters__ attribute or that's not
- a non-empty tuple, return a new reference to obj. */
-static PyObject *
-subs_tvars(PyObject *obj, PyObject *params, PyObject **argitems)
-{
- _Py_IDENTIFIER(__parameters__);
- PyObject *subparams;
- if (_PyObject_LookupAttrId(obj, &PyId___parameters__, &subparams) < 0) {
- return NULL;
- }
- if (subparams && PyTuple_Check(subparams) && PyTuple_GET_SIZE(subparams)) {
- Py_ssize_t nparams = PyTuple_GET_SIZE(params);
- Py_ssize_t nsubargs = PyTuple_GET_SIZE(subparams);
- PyObject *subargs = PyTuple_New(nsubargs);
- if (subargs == NULL) {
- Py_DECREF(subparams);
- return NULL;
- }
- for (Py_ssize_t i = 0; i < nsubargs; ++i) {
- PyObject *arg = PyTuple_GET_ITEM(subparams, i);
- Py_ssize_t iparam = tuple_index(params, nparams, arg);
- if (iparam >= 0) {
- arg = argitems[iparam];
- }
- Py_INCREF(arg);
- PyTuple_SET_ITEM(subargs, i, arg);
- }
-
- obj = PyObject_GetItem(obj, subargs);
-
- Py_DECREF(subargs);
- }
- else {
- Py_INCREF(obj);
- }
- Py_XDECREF(subparams);
- return obj;
-}
-
-static PyObject *
-ga_getitem(PyObject *self, PyObject *item)
-{
- gaobject *alias = (gaobject *)self;
- // do a lookup for __parameters__ so it gets populated (if not already)
- if (alias->parameters == NULL) {
- alias->parameters = make_parameters(alias->args);
- if (alias->parameters == NULL) {
- return NULL;
- }
- }
- Py_ssize_t nparams = PyTuple_GET_SIZE(alias->parameters);
- if (nparams == 0) {
- return PyErr_Format(PyExc_TypeError,
- "There are no type variables left in %R",
- self);
- }
- int is_tuple = PyTuple_Check(item);
- Py_ssize_t nitems = is_tuple ? PyTuple_GET_SIZE(item) : 1;
- PyObject **argitems = is_tuple ? &PyTuple_GET_ITEM(item, 0) : &item;
- if (nitems != nparams) {
- return PyErr_Format(PyExc_TypeError,
- "Too %s arguments for %R",
- nitems > nparams ? "many" : "few",
- self);
- }
- /* Replace all type variables (specified by alias->parameters)
- with corresponding values specified by argitems.
- t = list[T]; t[int] -> newargs = [int]
- t = dict[str, T]; t[int] -> newargs = [str, int]
- t = dict[T, list[S]]; t[str, int] -> newargs = [str, list[int]]
- */
- Py_ssize_t nargs = PyTuple_GET_SIZE(alias->args);
- PyObject *newargs = PyTuple_New(nargs);
- if (newargs == NULL) {
- return NULL;
- }
- for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) {
- PyObject *arg = PyTuple_GET_ITEM(alias->args, iarg);
- int typevar = is_typevar(arg);
- if (typevar < 0) {
- Py_DECREF(newargs);
- return NULL;
- }
- if (typevar) {
- Py_ssize_t iparam = tuple_index(alias->parameters, nparams, arg);
- assert(iparam >= 0);
- arg = argitems[iparam];
- Py_INCREF(arg);
- }
- else {
- arg = subs_tvars(arg, alias->parameters, argitems);
- if (arg == NULL) {
- Py_DECREF(newargs);
- return NULL;
- }
- }
- PyTuple_SET_ITEM(newargs, iarg, arg);
- }
-
- PyObject *res = Py_GenericAlias(alias->origin, newargs);
-
- Py_DECREF(newargs);
- return res;
-}
-
-static PyMappingMethods ga_as_mapping = {
- .mp_subscript = ga_getitem,
-};
-
-static Py_hash_t
-ga_hash(PyObject *self)
-{
- gaobject *alias = (gaobject *)self;
- // TODO: Hash in the hash for the origin
- Py_hash_t h0 = PyObject_Hash(alias->origin);
- if (h0 == -1) {
- return -1;
- }
- Py_hash_t h1 = PyObject_Hash(alias->args);
- if (h1 == -1) {
- return -1;
- }
- return h0 ^ h1;
-}
-
-static PyObject *
-ga_call(PyObject *self, PyObject *args, PyObject *kwds)
-{
- gaobject *alias = (gaobject *)self;
- PyObject *obj = PyObject_Call(alias->origin, args, kwds);
- if (obj != NULL) {
- if (PyObject_SetAttrString(obj, "__orig_class__", self) < 0) {
- if (!PyErr_ExceptionMatches(PyExc_AttributeError) &&
- !PyErr_ExceptionMatches(PyExc_TypeError))
- {
- Py_DECREF(obj);
- return NULL;
- }
- PyErr_Clear();
- }
- }
- return obj;
-}
-
-static const char* const attr_exceptions[] = {
- "__origin__",
- "__args__",
- "__parameters__",
- "__mro_entries__",
- "__reduce_ex__", // needed so we don't look up object.__reduce_ex__
- "__reduce__",
- "__copy__",
- "__deepcopy__",
- NULL,
-};
-
-static PyObject *
-ga_getattro(PyObject *self, PyObject *name)
-{
- gaobject *alias = (gaobject *)self;
- if (PyUnicode_Check(name)) {
- for (const char * const *p = attr_exceptions; ; p++) {
- if (*p == NULL) {
- return PyObject_GetAttr(alias->origin, name);
- }
- if (_PyUnicode_EqualToASCIIString(name, *p)) {
- break;
- }
- }
- }
- return PyObject_GenericGetAttr(self, name);
-}
-
-static PyObject *
-ga_richcompare(PyObject *a, PyObject *b, int op)
-{
- if (!PyObject_TypeCheck(a, &Py_GenericAliasType) ||
- !PyObject_TypeCheck(b, &Py_GenericAliasType) ||
- (op != Py_EQ && op != Py_NE))
- {
- Py_RETURN_NOTIMPLEMENTED;
- }
-
- if (op == Py_NE) {
- PyObject *eq = ga_richcompare(a, b, Py_EQ);
- if (eq == NULL)
- return NULL;
- Py_DECREF(eq);
- if (eq == Py_True) {
- Py_RETURN_FALSE;
- }
- else {
- Py_RETURN_TRUE;
- }
- }
-
- gaobject *aa = (gaobject *)a;
- gaobject *bb = (gaobject *)b;
- int eq = PyObject_RichCompareBool(aa->origin, bb->origin, Py_EQ);
- if (eq < 0) {
- return NULL;
- }
- if (!eq) {
- Py_RETURN_FALSE;
- }
- return PyObject_RichCompare(aa->args, bb->args, Py_EQ);
-}
-
-static PyObject *
-ga_mro_entries(PyObject *self, PyObject *args)
-{
- gaobject *alias = (gaobject *)self;
- return PyTuple_Pack(1, alias->origin);
-}
-
-static PyObject *
-ga_instancecheck(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- PyErr_SetString(PyExc_TypeError,
- "isinstance() argument 2 cannot be a parameterized generic");
- return NULL;
-}
-
-static PyObject *
-ga_subclasscheck(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- PyErr_SetString(PyExc_TypeError,
- "issubclass() argument 2 cannot be a parameterized generic");
- return NULL;
-}
-
-static PyObject *
-ga_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- gaobject *alias = (gaobject *)self;
- return Py_BuildValue("O(OO)", Py_TYPE(alias),
- alias->origin, alias->args);
-}
-
-static PyObject *
-ga_dir(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- gaobject *alias = (gaobject *)self;
- PyObject *dir = PyObject_Dir(alias->origin);
- if (dir == NULL) {
- return NULL;
- }
-
- PyObject *dir_entry = NULL;
- for (const char * const *p = attr_exceptions; ; p++) {
- if (*p == NULL) {
- break;
- }
- else {
- dir_entry = PyUnicode_FromString(*p);
- if (dir_entry == NULL) {
- goto error;
- }
- int contains = PySequence_Contains(dir, dir_entry);
- if (contains < 0) {
- goto error;
- }
- if (contains == 0 && PyList_Append(dir, dir_entry) < 0) {
- goto error;
- }
-
- Py_CLEAR(dir_entry);
- }
- }
- return dir;
-
-error:
- Py_DECREF(dir);
- Py_XDECREF(dir_entry);
- return NULL;
-}
-
-static PyMethodDef ga_methods[] = {
- {"__mro_entries__", ga_mro_entries, METH_O},
- {"__instancecheck__", ga_instancecheck, METH_O},
- {"__subclasscheck__", ga_subclasscheck, METH_O},
- {"__reduce__", ga_reduce, METH_NOARGS},
- {"__dir__", ga_dir, METH_NOARGS},
- {0}
-};
-
-static PyMemberDef ga_members[] = {
- {"__origin__", T_OBJECT, offsetof(gaobject, origin), READONLY},
- {"__args__", T_OBJECT, offsetof(gaobject, args), READONLY},
- {0}
-};
-
-static PyObject *
-ga_parameters(PyObject *self, void *unused)
-{
- gaobject *alias = (gaobject *)self;
- if (alias->parameters == NULL) {
- alias->parameters = make_parameters(alias->args);
- if (alias->parameters == NULL) {
- return NULL;
- }
- }
- Py_INCREF(alias->parameters);
- return alias->parameters;
-}
-
-static PyGetSetDef ga_properties[] = {
- {"__parameters__", ga_parameters, (setter)NULL, "Type variables in the GenericAlias.", NULL},
- {0}
-};
-
-/* A helper function to create GenericAlias' args tuple and set its attributes.
- * Returns 1 on success, 0 on failure.
- */
-static inline int
-setup_ga(gaobject *alias, PyObject *origin, PyObject *args) {
- if (!PyTuple_Check(args)) {
- args = PyTuple_Pack(1, args);
- if (args == NULL) {
- return 0;
- }
- }
- else {
- Py_INCREF(args);
- }
-
- Py_INCREF(origin);
- alias->origin = origin;
- alias->args = args;
- alias->parameters = NULL;
- alias->weakreflist = NULL;
- return 1;
-}
-
-static PyObject *
-ga_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
- if (!_PyArg_NoKeywords("GenericAlias", kwds)) {
- return NULL;
- }
- if (!_PyArg_CheckPositional("GenericAlias", PyTuple_GET_SIZE(args), 2, 2)) {
- return NULL;
- }
- PyObject *origin = PyTuple_GET_ITEM(args, 0);
- PyObject *arguments = PyTuple_GET_ITEM(args, 1);
- gaobject *self = (gaobject *)type->tp_alloc(type, 0);
- if (self == NULL) {
- return NULL;
- }
- if (!setup_ga(self, origin, arguments)) {
- Py_DECREF(self);
- return NULL;
- }
- return (PyObject *)self;
-}
-
-// TODO:
-// - argument clinic?
-// - __doc__?
-// - cache?
-PyTypeObject Py_GenericAliasType = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- .tp_name = "types.GenericAlias",
- .tp_doc = "Represent a PEP 585 generic type\n"
- "\n"
- "E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).",
- .tp_basicsize = sizeof(gaobject),
- .tp_dealloc = ga_dealloc,
- .tp_repr = ga_repr,
- .tp_as_mapping = &ga_as_mapping,
- .tp_hash = ga_hash,
- .tp_call = ga_call,
- .tp_getattro = ga_getattro,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
- .tp_traverse = ga_traverse,
- .tp_richcompare = ga_richcompare,
- .tp_weaklistoffset = offsetof(gaobject, weakreflist),
- .tp_methods = ga_methods,
- .tp_members = ga_members,
- .tp_alloc = PyType_GenericAlloc,
- .tp_new = ga_new,
- .tp_free = PyObject_GC_Del,
- .tp_getset = ga_properties,
-};
-
-PyObject *
-Py_GenericAlias(PyObject *origin, PyObject *args)
-{
- gaobject *alias = (gaobject*) PyType_GenericAlloc(
- (PyTypeObject *)&Py_GenericAliasType, 0);
- if (alias == NULL) {
- return NULL;
- }
- if (!setup_ga(alias, origin, args)) {
- Py_DECREF(alias);
- return NULL;
- }
- return (PyObject *)alias;
-}
+// types.GenericAlias -- used to represent e.g. list[int].
+
+#include "Python.h"
+#include "pycore_object.h"
+#include "structmember.h" // PyMemberDef
+
+typedef struct {
+ PyObject_HEAD
+ PyObject *origin;
+ PyObject *args;
+ PyObject *parameters;
+ PyObject* weakreflist;
+} gaobject;
+
+static void
+ga_dealloc(PyObject *self)
+{
+ gaobject *alias = (gaobject *)self;
+
+ _PyObject_GC_UNTRACK(self);
+ if (alias->weakreflist != NULL) {
+ PyObject_ClearWeakRefs((PyObject *)alias);
+ }
+ Py_XDECREF(alias->origin);
+ Py_XDECREF(alias->args);
+ Py_XDECREF(alias->parameters);
+ self->ob_type->tp_free(self);
+}
+
+static int
+ga_traverse(PyObject *self, visitproc visit, void *arg)
+{
+ gaobject *alias = (gaobject *)self;
+ Py_VISIT(alias->origin);
+ Py_VISIT(alias->args);
+ Py_VISIT(alias->parameters);
+ return 0;
+}
+
+static int
+ga_repr_item(_PyUnicodeWriter *writer, PyObject *p)
+{
+ _Py_IDENTIFIER(__module__);
+ _Py_IDENTIFIER(__qualname__);
+ _Py_IDENTIFIER(__origin__);
+ _Py_IDENTIFIER(__args__);
+ PyObject *qualname = NULL;
+ PyObject *module = NULL;
+ PyObject *r = NULL;
+ PyObject *tmp;
+ int err;
+
+ if (p == Py_Ellipsis) {
+ // The Ellipsis object
+ r = PyUnicode_FromString("...");
+ goto done;
+ }
+
+ if (_PyObject_LookupAttrId(p, &PyId___origin__, &tmp) < 0) {
+ goto done;
+ }
+ if (tmp != NULL) {
+ Py_DECREF(tmp);
+ if (_PyObject_LookupAttrId(p, &PyId___args__, &tmp) < 0) {
+ goto done;
+ }
+ if (tmp != NULL) {
+ Py_DECREF(tmp);
+ // It looks like a GenericAlias
+ goto use_repr;
+ }
+ }
+
+ if (_PyObject_LookupAttrId(p, &PyId___qualname__, &qualname) < 0) {
+ goto done;
+ }
+ if (qualname == NULL) {
+ goto use_repr;
+ }
+ if (_PyObject_LookupAttrId(p, &PyId___module__, &module) < 0) {
+ goto done;
+ }
+ if (module == NULL || module == Py_None) {
+ goto use_repr;
+ }
+
+ // Looks like a class
+ if (PyUnicode_Check(module) &&
+ _PyUnicode_EqualToASCIIString(module, "builtins"))
+ {
+ // builtins don't need a module name
+ r = PyObject_Str(qualname);
+ goto done;
+ }
+ else {
+ r = PyUnicode_FromFormat("%S.%S", module, qualname);
+ goto done;
+ }
+
+use_repr:
+ r = PyObject_Repr(p);
+
+done:
+ Py_XDECREF(qualname);
+ Py_XDECREF(module);
+ if (r == NULL) {
+ // error if any of the above PyObject_Repr/PyUnicode_From* fail
+ err = -1;
+ }
+ else {
+ err = _PyUnicodeWriter_WriteStr(writer, r);
+ Py_DECREF(r);
+ }
+ return err;
+}
+
+static PyObject *
+ga_repr(PyObject *self)
+{
+ gaobject *alias = (gaobject *)self;
+ Py_ssize_t len = PyTuple_GET_SIZE(alias->args);
+
+ _PyUnicodeWriter writer;
+ _PyUnicodeWriter_Init(&writer);
+
+ if (ga_repr_item(&writer, alias->origin) < 0) {
+ goto error;
+ }
+ if (_PyUnicodeWriter_WriteASCIIString(&writer, "[", 1) < 0) {
+ goto error;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ if (i > 0) {
+ if (_PyUnicodeWriter_WriteASCIIString(&writer, ", ", 2) < 0) {
+ goto error;
+ }
+ }
+ PyObject *p = PyTuple_GET_ITEM(alias->args, i);
+ if (ga_repr_item(&writer, p) < 0) {
+ goto error;
+ }
+ }
+ if (len == 0) {
+ // for something like tuple[()] we should print a "()"
+ if (_PyUnicodeWriter_WriteASCIIString(&writer, "()", 2) < 0) {
+ goto error;
+ }
+ }
+ if (_PyUnicodeWriter_WriteASCIIString(&writer, "]", 1) < 0) {
+ goto error;
+ }
+ return _PyUnicodeWriter_Finish(&writer);
+error:
+ _PyUnicodeWriter_Dealloc(&writer);
+ return NULL;
+}
+
+// isinstance(obj, TypeVar) without importing typing.py.
+// Returns -1 for errors.
+static int
+is_typevar(PyObject *obj)
+{
+ PyTypeObject *type = Py_TYPE(obj);
+ if (strcmp(type->tp_name, "TypeVar") != 0) {
+ return 0;
+ }
+ PyObject *module = PyObject_GetAttrString((PyObject *)type, "__module__");
+ if (module == NULL) {
+ return -1;
+ }
+ int res = PyUnicode_Check(module)
+ && _PyUnicode_EqualToASCIIString(module, "typing");
+ Py_DECREF(module);
+ return res;
+}
+
+// Index of item in self[:len], or -1 if not found (self is a tuple)
+static Py_ssize_t
+tuple_index(PyObject *self, Py_ssize_t len, PyObject *item)
+{
+ for (Py_ssize_t i = 0; i < len; i++) {
+ if (PyTuple_GET_ITEM(self, i) == item) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+static int
+tuple_add(PyObject *self, Py_ssize_t len, PyObject *item)
+{
+ if (tuple_index(self, len, item) < 0) {
+ Py_INCREF(item);
+ PyTuple_SET_ITEM(self, len, item);
+ return 1;
+ }
+ return 0;
+}
+
+static PyObject *
+make_parameters(PyObject *args)
+{
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ Py_ssize_t len = nargs;
+ PyObject *parameters = PyTuple_New(len);
+ if (parameters == NULL)
+ return NULL;
+ Py_ssize_t iparam = 0;
+ for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) {
+ PyObject *t = PyTuple_GET_ITEM(args, iarg);
+ int typevar = is_typevar(t);
+ if (typevar < 0) {
+ Py_DECREF(parameters);
+ return NULL;
+ }
+ if (typevar) {
+ iparam += tuple_add(parameters, iparam, t);
+ }
+ else {
+ _Py_IDENTIFIER(__parameters__);
+ PyObject *subparams;
+ if (_PyObject_LookupAttrId(t, &PyId___parameters__, &subparams) < 0) {
+ Py_DECREF(parameters);
+ return NULL;
+ }
+ if (subparams && PyTuple_Check(subparams)) {
+ Py_ssize_t len2 = PyTuple_GET_SIZE(subparams);
+ Py_ssize_t needed = len2 - 1 - (iarg - iparam);
+ if (needed > 0) {
+ len += needed;
+ if (_PyTuple_Resize(&parameters, len) < 0) {
+ Py_DECREF(subparams);
+ Py_DECREF(parameters);
+ return NULL;
+ }
+ }
+ for (Py_ssize_t j = 0; j < len2; j++) {
+ PyObject *t2 = PyTuple_GET_ITEM(subparams, j);
+ iparam += tuple_add(parameters, iparam, t2);
+ }
+ }
+ Py_XDECREF(subparams);
+ }
+ }
+ if (iparam < len) {
+ if (_PyTuple_Resize(&parameters, iparam) < 0) {
+ Py_XDECREF(parameters);
+ return NULL;
+ }
+ }
+ return parameters;
+}
+
+/* If obj is a generic alias, substitute type variables params
+ with substitutions argitems. For example, if obj is list[T],
+ params is (T, S), and argitems is (str, int), return list[str].
+ If obj doesn't have a __parameters__ attribute or that's not
+ a non-empty tuple, return a new reference to obj. */
+static PyObject *
+subs_tvars(PyObject *obj, PyObject *params, PyObject **argitems)
+{
+ _Py_IDENTIFIER(__parameters__);
+ PyObject *subparams;
+ if (_PyObject_LookupAttrId(obj, &PyId___parameters__, &subparams) < 0) {
+ return NULL;
+ }
+ if (subparams && PyTuple_Check(subparams) && PyTuple_GET_SIZE(subparams)) {
+ Py_ssize_t nparams = PyTuple_GET_SIZE(params);
+ Py_ssize_t nsubargs = PyTuple_GET_SIZE(subparams);
+ PyObject *subargs = PyTuple_New(nsubargs);
+ if (subargs == NULL) {
+ Py_DECREF(subparams);
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < nsubargs; ++i) {
+ PyObject *arg = PyTuple_GET_ITEM(subparams, i);
+ Py_ssize_t iparam = tuple_index(params, nparams, arg);
+ if (iparam >= 0) {
+ arg = argitems[iparam];
+ }
+ Py_INCREF(arg);
+ PyTuple_SET_ITEM(subargs, i, arg);
+ }
+
+ obj = PyObject_GetItem(obj, subargs);
+
+ Py_DECREF(subargs);
+ }
+ else {
+ Py_INCREF(obj);
+ }
+ Py_XDECREF(subparams);
+ return obj;
+}
+
+static PyObject *
+ga_getitem(PyObject *self, PyObject *item)
+{
+ gaobject *alias = (gaobject *)self;
+ // do a lookup for __parameters__ so it gets populated (if not already)
+ if (alias->parameters == NULL) {
+ alias->parameters = make_parameters(alias->args);
+ if (alias->parameters == NULL) {
+ return NULL;
+ }
+ }
+ Py_ssize_t nparams = PyTuple_GET_SIZE(alias->parameters);
+ if (nparams == 0) {
+ return PyErr_Format(PyExc_TypeError,
+ "There are no type variables left in %R",
+ self);
+ }
+ int is_tuple = PyTuple_Check(item);
+ Py_ssize_t nitems = is_tuple ? PyTuple_GET_SIZE(item) : 1;
+ PyObject **argitems = is_tuple ? &PyTuple_GET_ITEM(item, 0) : &item;
+ if (nitems != nparams) {
+ return PyErr_Format(PyExc_TypeError,
+ "Too %s arguments for %R",
+ nitems > nparams ? "many" : "few",
+ self);
+ }
+ /* Replace all type variables (specified by alias->parameters)
+ with corresponding values specified by argitems.
+ t = list[T]; t[int] -> newargs = [int]
+ t = dict[str, T]; t[int] -> newargs = [str, int]
+ t = dict[T, list[S]]; t[str, int] -> newargs = [str, list[int]]
+ */
+ Py_ssize_t nargs = PyTuple_GET_SIZE(alias->args);
+ PyObject *newargs = PyTuple_New(nargs);
+ if (newargs == NULL) {
+ return NULL;
+ }
+ for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) {
+ PyObject *arg = PyTuple_GET_ITEM(alias->args, iarg);
+ int typevar = is_typevar(arg);
+ if (typevar < 0) {
+ Py_DECREF(newargs);
+ return NULL;
+ }
+ if (typevar) {
+ Py_ssize_t iparam = tuple_index(alias->parameters, nparams, arg);
+ assert(iparam >= 0);
+ arg = argitems[iparam];
+ Py_INCREF(arg);
+ }
+ else {
+ arg = subs_tvars(arg, alias->parameters, argitems);
+ if (arg == NULL) {
+ Py_DECREF(newargs);
+ return NULL;
+ }
+ }
+ PyTuple_SET_ITEM(newargs, iarg, arg);
+ }
+
+ PyObject *res = Py_GenericAlias(alias->origin, newargs);
+
+ Py_DECREF(newargs);
+ return res;
+}
+
+static PyMappingMethods ga_as_mapping = {
+ .mp_subscript = ga_getitem,
+};
+
+static Py_hash_t
+ga_hash(PyObject *self)
+{
+ gaobject *alias = (gaobject *)self;
+ // TODO: Hash in the hash for the origin
+ Py_hash_t h0 = PyObject_Hash(alias->origin);
+ if (h0 == -1) {
+ return -1;
+ }
+ Py_hash_t h1 = PyObject_Hash(alias->args);
+ if (h1 == -1) {
+ return -1;
+ }
+ return h0 ^ h1;
+}
+
+static PyObject *
+ga_call(PyObject *self, PyObject *args, PyObject *kwds)
+{
+ gaobject *alias = (gaobject *)self;
+ PyObject *obj = PyObject_Call(alias->origin, args, kwds);
+ if (obj != NULL) {
+ if (PyObject_SetAttrString(obj, "__orig_class__", self) < 0) {
+ if (!PyErr_ExceptionMatches(PyExc_AttributeError) &&
+ !PyErr_ExceptionMatches(PyExc_TypeError))
+ {
+ Py_DECREF(obj);
+ return NULL;
+ }
+ PyErr_Clear();
+ }
+ }
+ return obj;
+}
+
+static const char* const attr_exceptions[] = {
+ "__origin__",
+ "__args__",
+ "__parameters__",
+ "__mro_entries__",
+ "__reduce_ex__", // needed so we don't look up object.__reduce_ex__
+ "__reduce__",
+ "__copy__",
+ "__deepcopy__",
+ NULL,
+};
+
+static PyObject *
+ga_getattro(PyObject *self, PyObject *name)
+{
+ gaobject *alias = (gaobject *)self;
+ if (PyUnicode_Check(name)) {
+ for (const char * const *p = attr_exceptions; ; p++) {
+ if (*p == NULL) {
+ return PyObject_GetAttr(alias->origin, name);
+ }
+ if (_PyUnicode_EqualToASCIIString(name, *p)) {
+ break;
+ }
+ }
+ }
+ return PyObject_GenericGetAttr(self, name);
+}
+
+static PyObject *
+ga_richcompare(PyObject *a, PyObject *b, int op)
+{
+ if (!PyObject_TypeCheck(a, &Py_GenericAliasType) ||
+ !PyObject_TypeCheck(b, &Py_GenericAliasType) ||
+ (op != Py_EQ && op != Py_NE))
+ {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ if (op == Py_NE) {
+ PyObject *eq = ga_richcompare(a, b, Py_EQ);
+ if (eq == NULL)
+ return NULL;
+ Py_DECREF(eq);
+ if (eq == Py_True) {
+ Py_RETURN_FALSE;
+ }
+ else {
+ Py_RETURN_TRUE;
+ }
+ }
+
+ gaobject *aa = (gaobject *)a;
+ gaobject *bb = (gaobject *)b;
+ int eq = PyObject_RichCompareBool(aa->origin, bb->origin, Py_EQ);
+ if (eq < 0) {
+ return NULL;
+ }
+ if (!eq) {
+ Py_RETURN_FALSE;
+ }
+ return PyObject_RichCompare(aa->args, bb->args, Py_EQ);
+}
+
+static PyObject *
+ga_mro_entries(PyObject *self, PyObject *args)
+{
+ gaobject *alias = (gaobject *)self;
+ return PyTuple_Pack(1, alias->origin);
+}
+
+static PyObject *
+ga_instancecheck(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyErr_SetString(PyExc_TypeError,
+ "isinstance() argument 2 cannot be a parameterized generic");
+ return NULL;
+}
+
+static PyObject *
+ga_subclasscheck(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyErr_SetString(PyExc_TypeError,
+ "issubclass() argument 2 cannot be a parameterized generic");
+ return NULL;
+}
+
+static PyObject *
+ga_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ gaobject *alias = (gaobject *)self;
+ return Py_BuildValue("O(OO)", Py_TYPE(alias),
+ alias->origin, alias->args);
+}
+
+static PyObject *
+ga_dir(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ gaobject *alias = (gaobject *)self;
+ PyObject *dir = PyObject_Dir(alias->origin);
+ if (dir == NULL) {
+ return NULL;
+ }
+
+ PyObject *dir_entry = NULL;
+ for (const char * const *p = attr_exceptions; ; p++) {
+ if (*p == NULL) {
+ break;
+ }
+ else {
+ dir_entry = PyUnicode_FromString(*p);
+ if (dir_entry == NULL) {
+ goto error;
+ }
+ int contains = PySequence_Contains(dir, dir_entry);
+ if (contains < 0) {
+ goto error;
+ }
+ if (contains == 0 && PyList_Append(dir, dir_entry) < 0) {
+ goto error;
+ }
+
+ Py_CLEAR(dir_entry);
+ }
+ }
+ return dir;
+
+error:
+ Py_DECREF(dir);
+ Py_XDECREF(dir_entry);
+ return NULL;
+}
+
+static PyMethodDef ga_methods[] = {
+ {"__mro_entries__", ga_mro_entries, METH_O},
+ {"__instancecheck__", ga_instancecheck, METH_O},
+ {"__subclasscheck__", ga_subclasscheck, METH_O},
+ {"__reduce__", ga_reduce, METH_NOARGS},
+ {"__dir__", ga_dir, METH_NOARGS},
+ {0}
+};
+
+static PyMemberDef ga_members[] = {
+ {"__origin__", T_OBJECT, offsetof(gaobject, origin), READONLY},
+ {"__args__", T_OBJECT, offsetof(gaobject, args), READONLY},
+ {0}
+};
+
+static PyObject *
+ga_parameters(PyObject *self, void *unused)
+{
+ gaobject *alias = (gaobject *)self;
+ if (alias->parameters == NULL) {
+ alias->parameters = make_parameters(alias->args);
+ if (alias->parameters == NULL) {
+ return NULL;
+ }
+ }
+ Py_INCREF(alias->parameters);
+ return alias->parameters;
+}
+
+static PyGetSetDef ga_properties[] = {
+ {"__parameters__", ga_parameters, (setter)NULL, "Type variables in the GenericAlias.", NULL},
+ {0}
+};
+
+/* A helper function to create GenericAlias' args tuple and set its attributes.
+ * Returns 1 on success, 0 on failure.
+ */
+static inline int
+setup_ga(gaobject *alias, PyObject *origin, PyObject *args) {
+ if (!PyTuple_Check(args)) {
+ args = PyTuple_Pack(1, args);
+ if (args == NULL) {
+ return 0;
+ }
+ }
+ else {
+ Py_INCREF(args);
+ }
+
+ Py_INCREF(origin);
+ alias->origin = origin;
+ alias->args = args;
+ alias->parameters = NULL;
+ alias->weakreflist = NULL;
+ return 1;
+}
+
+static PyObject *
+ga_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+ if (!_PyArg_NoKeywords("GenericAlias", kwds)) {
+ return NULL;
+ }
+ if (!_PyArg_CheckPositional("GenericAlias", PyTuple_GET_SIZE(args), 2, 2)) {
+ return NULL;
+ }
+ PyObject *origin = PyTuple_GET_ITEM(args, 0);
+ PyObject *arguments = PyTuple_GET_ITEM(args, 1);
+ gaobject *self = (gaobject *)type->tp_alloc(type, 0);
+ if (self == NULL) {
+ return NULL;
+ }
+ if (!setup_ga(self, origin, arguments)) {
+ Py_DECREF(self);
+ return NULL;
+ }
+ return (PyObject *)self;
+}
+
+// TODO:
+// - argument clinic?
+// - __doc__?
+// - cache?
+PyTypeObject Py_GenericAliasType = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ .tp_name = "types.GenericAlias",
+ .tp_doc = "Represent a PEP 585 generic type\n"
+ "\n"
+ "E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).",
+ .tp_basicsize = sizeof(gaobject),
+ .tp_dealloc = ga_dealloc,
+ .tp_repr = ga_repr,
+ .tp_as_mapping = &ga_as_mapping,
+ .tp_hash = ga_hash,
+ .tp_call = ga_call,
+ .tp_getattro = ga_getattro,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
+ .tp_traverse = ga_traverse,
+ .tp_richcompare = ga_richcompare,
+ .tp_weaklistoffset = offsetof(gaobject, weakreflist),
+ .tp_methods = ga_methods,
+ .tp_members = ga_members,
+ .tp_alloc = PyType_GenericAlloc,
+ .tp_new = ga_new,
+ .tp_free = PyObject_GC_Del,
+ .tp_getset = ga_properties,
+};
+
+PyObject *
+Py_GenericAlias(PyObject *origin, PyObject *args)
+{
+ gaobject *alias = (gaobject*) PyType_GenericAlloc(
+ (PyTypeObject *)&Py_GenericAliasType, 0);
+ if (alias == NULL) {
+ return NULL;
+ }
+ if (!setup_ga(alias, origin, args)) {
+ Py_DECREF(alias);
+ return NULL;
+ }
+ return (PyObject *)alias;
+}
diff --git a/contrib/tools/python3/src/Objects/genobject.c b/contrib/tools/python3/src/Objects/genobject.c
index 12dbd7889b..5ba4de82ea 100644
--- a/contrib/tools/python3/src/Objects/genobject.c
+++ b/contrib/tools/python3/src/Objects/genobject.c
@@ -1,22 +1,22 @@
/* Generator object implementation */
#include "Python.h"
-#include "pycore_ceval.h" // _PyEval_EvalFrame()
-#include "pycore_object.h"
-#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_ceval.h" // _PyEval_EvalFrame()
+#include "pycore_object.h"
+#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include "frameobject.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include "opcode.h"
static PyObject *gen_close(PyGenObject *, PyObject *);
static PyObject *async_gen_asend_new(PyAsyncGenObject *, PyObject *);
static PyObject *async_gen_athrow_new(PyAsyncGenObject *, PyObject *);
-static const char *NON_INIT_CORO_MSG = "can't send non-None value to a "
+static const char *NON_INIT_CORO_MSG = "can't send non-None value to a "
"just-started coroutine";
-static const char *ASYNC_GEN_IGNORED_EXIT_MSG =
+static const char *ASYNC_GEN_IGNORED_EXIT_MSG =
"async generator ignored GeneratorExit";
static inline int
@@ -59,7 +59,7 @@ _PyGen_Finalize(PyObject *self)
/* Save the current exception, if any. */
PyErr_Fetch(&error_type, &error_value, &error_traceback);
- res = PyObject_CallOneArg(finalizer, self);
+ res = PyObject_CallOneArg(finalizer, self);
if (res == NULL) {
PyErr_WriteUnraisable(self);
@@ -132,14 +132,14 @@ gen_dealloc(PyGenObject *gen)
Py_CLEAR(gen->gi_code);
Py_CLEAR(gen->gi_name);
Py_CLEAR(gen->gi_qualname);
- _PyErr_ClearExcState(&gen->gi_exc_state);
+ _PyErr_ClearExcState(&gen->gi_exc_state);
PyObject_GC_Del(gen);
}
static PyObject *
gen_send_ex(PyGenObject *gen, PyObject *arg, int exc, int closing)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyFrameObject *f = gen->gi_frame;
PyObject *result;
@@ -206,13 +206,13 @@ gen_send_ex(PyGenObject *gen, PyObject *arg, int exc, int closing)
gen->gi_running = 1;
gen->gi_exc_state.previous_item = tstate->exc_info;
tstate->exc_info = &gen->gi_exc_state;
-
- if (exc) {
- assert(_PyErr_Occurred(tstate));
- _PyErr_ChainStackItem(NULL);
- }
-
- result = _PyEval_EvalFrame(tstate, f, exc);
+
+ if (exc) {
+ assert(_PyErr_Occurred(tstate));
+ _PyErr_ChainStackItem(NULL);
+ }
+
+ result = _PyEval_EvalFrame(tstate, f, exc);
tstate->exc_info = gen->gi_exc_state.previous_item;
gen->gi_exc_state.previous_item = NULL;
gen->gi_running = 0;
@@ -247,7 +247,7 @@ gen_send_ex(PyGenObject *gen, PyObject *arg, int exc, int closing)
if (PyCoro_CheckExact(gen)) {
msg = "coroutine raised StopIteration";
}
- else if (PyAsyncGen_CheckExact(gen)) {
+ else if (PyAsyncGen_CheckExact(gen)) {
msg = "async generator raised StopIteration";
}
_PyErr_FormatFromCause(PyExc_RuntimeError, "%s", msg);
@@ -266,7 +266,7 @@ gen_send_ex(PyGenObject *gen, PyObject *arg, int exc, int closing)
if (!result || f->f_stacktop == NULL) {
/* generator can't be rerun, so release the frame */
/* first clean reference cycle through stored exception traceback */
- _PyErr_ClearExcState(&gen->gi_exc_state);
+ _PyErr_ClearExcState(&gen->gi_exc_state);
gen->gi_frame->f_gen = NULL;
gen->gi_frame = NULL;
Py_DECREF(f);
@@ -414,21 +414,21 @@ _gen_throw(PyGenObject *gen, int close_on_genexit,
}
if (PyGen_CheckExact(yf) || PyCoro_CheckExact(yf)) {
/* `yf` is a generator or a coroutine. */
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *f = tstate->frame;
-
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *f = tstate->frame;
+
gen->gi_running = 1;
- /* Since we are fast-tracking things by skipping the eval loop,
- we need to update the current frame so the stack trace
- will be reported correctly to the user. */
- /* XXX We should probably be updating the current frame
- somewhere in ceval.c. */
- tstate->frame = gen->gi_frame;
+ /* Since we are fast-tracking things by skipping the eval loop,
+ we need to update the current frame so the stack trace
+ will be reported correctly to the user. */
+ /* XXX We should probably be updating the current frame
+ somewhere in ceval.c. */
+ tstate->frame = gen->gi_frame;
/* Close the generator that we are currently iterating with
'yield from' or awaiting on with 'await'. */
ret = _gen_throw((PyGenObject *)yf, close_on_genexit,
typ, val, tb);
- tstate->frame = f;
+ tstate->frame = f;
gen->gi_running = 0;
} else {
/* `yf` is an iterator or a coroutine-like object. */
@@ -565,7 +565,7 @@ _PyGen_SetStopIterationValue(PyObject *value)
return 0;
}
/* Construct an exception instance manually with
- * PyObject_CallOneArg and pass it to PyErr_SetObject.
+ * PyObject_CallOneArg and pass it to PyErr_SetObject.
*
* We do this to handle a situation when "value" is a tuple, in which
* case PyErr_SetObject would set the value of StopIteration to
@@ -573,7 +573,7 @@ _PyGen_SetStopIterationValue(PyObject *value)
*
* (See PyErr_SetObject/_PyErr_CreateException code for details.)
*/
- e = PyObject_CallOneArg(PyExc_StopIteration, value);
+ e = PyObject_CallOneArg(PyExc_StopIteration, value);
if (e == NULL) {
return -1;
}
@@ -711,9 +711,9 @@ static PyGetSetDef gen_getsetlist[] = {
};
static PyMemberDef gen_memberlist[] = {
- {"gi_frame", T_OBJECT, offsetof(PyGenObject, gi_frame), READONLY|READ_RESTRICTED},
+ {"gi_frame", T_OBJECT, offsetof(PyGenObject, gi_frame), READONLY|READ_RESTRICTED},
{"gi_running", T_BOOL, offsetof(PyGenObject, gi_running), READONLY},
- {"gi_code", T_OBJECT, offsetof(PyGenObject, gi_code), READONLY|READ_RESTRICTED},
+ {"gi_code", T_OBJECT, offsetof(PyGenObject, gi_code), READONLY|READ_RESTRICTED},
{NULL} /* Sentinel */
};
@@ -731,7 +731,7 @@ PyTypeObject PyGen_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)gen_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_as_async */
@@ -745,7 +745,7 @@ PyTypeObject PyGen_Type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
0, /* tp_doc */
(traverseproc)gen_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -931,9 +931,9 @@ static PyGetSetDef coro_getsetlist[] = {
};
static PyMemberDef coro_memberlist[] = {
- {"cr_frame", T_OBJECT, offsetof(PyCoroObject, cr_frame), READONLY|READ_RESTRICTED},
+ {"cr_frame", T_OBJECT, offsetof(PyCoroObject, cr_frame), READONLY|READ_RESTRICTED},
{"cr_running", T_BOOL, offsetof(PyCoroObject, cr_running), READONLY},
- {"cr_code", T_OBJECT, offsetof(PyCoroObject, cr_code), READONLY|READ_RESTRICTED},
+ {"cr_code", T_OBJECT, offsetof(PyCoroObject, cr_code), READONLY|READ_RESTRICTED},
{"cr_origin", T_OBJECT, offsetof(PyCoroObject, cr_origin), READONLY},
{NULL} /* Sentinel */
};
@@ -969,7 +969,7 @@ PyTypeObject PyCoro_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)gen_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
&coro_as_async, /* tp_as_async */
@@ -983,7 +983,7 @@ PyTypeObject PyCoro_Type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
0, /* tp_doc */
(traverseproc)gen_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -1066,7 +1066,7 @@ PyTypeObject _PyCoroWrapper_Type = {
sizeof(PyCoroWrapper), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)coro_wrapper_dealloc, /* destructor tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_as_async */
@@ -1119,11 +1119,11 @@ compute_cr_origin(int origin_depth)
}
frame = PyEval_GetFrame();
for (int i = 0; i < frame_count; ++i) {
- PyCodeObject *code = frame->f_code;
- PyObject *frameinfo = Py_BuildValue("OiO",
- code->co_filename,
- PyFrame_GetLineNumber(frame),
- code->co_name);
+ PyCodeObject *code = frame->f_code;
+ PyObject *frameinfo = Py_BuildValue("OiO",
+ code->co_filename,
+ PyFrame_GetLineNumber(frame),
+ code->co_name);
if (!frameinfo) {
Py_DECREF(cr_origin);
return NULL;
@@ -1143,7 +1143,7 @@ PyCoro_New(PyFrameObject *f, PyObject *name, PyObject *qualname)
return NULL;
}
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
int origin_depth = tstate->coroutine_origin_tracking_depth;
if (origin_depth == 0) {
@@ -1218,10 +1218,10 @@ static PyAsyncGenASend *ag_asend_freelist[_PyAsyncGen_MAXFREELIST];
static int ag_asend_freelist_free = 0;
#define _PyAsyncGenWrappedValue_CheckExact(o) \
- Py_IS_TYPE(o, &_PyAsyncGenWrappedValue_Type)
+ Py_IS_TYPE(o, &_PyAsyncGenWrappedValue_Type)
#define PyAsyncGenASend_CheckExact(o) \
- Py_IS_TYPE(o, &_PyAsyncGenASend_Type)
+ Py_IS_TYPE(o, &_PyAsyncGenASend_Type)
static int
@@ -1253,7 +1253,7 @@ async_gen_init_hooks(PyAsyncGenObject *o)
o->ag_hooks_inited = 1;
- tstate = _PyThreadState_GET();
+ tstate = _PyThreadState_GET();
finalizer = tstate->async_gen_finalizer;
if (finalizer) {
@@ -1266,7 +1266,7 @@ async_gen_init_hooks(PyAsyncGenObject *o)
PyObject *res;
Py_INCREF(firstiter);
- res = PyObject_CallOneArg(firstiter, (PyObject *)o);
+ res = PyObject_CallOneArg(firstiter, (PyObject *)o);
Py_DECREF(firstiter);
if (res == NULL) {
return 1;
@@ -1328,12 +1328,12 @@ static PyGetSetDef async_gen_getsetlist[] = {
};
static PyMemberDef async_gen_memberlist[] = {
- {"ag_frame", T_OBJECT, offsetof(PyAsyncGenObject, ag_frame),
- READONLY|READ_RESTRICTED},
- {"ag_running", T_BOOL, offsetof(PyAsyncGenObject, ag_running_async),
- READONLY},
- {"ag_code", T_OBJECT, offsetof(PyAsyncGenObject, ag_code),
- READONLY|READ_RESTRICTED},
+ {"ag_frame", T_OBJECT, offsetof(PyAsyncGenObject, ag_frame),
+ READONLY|READ_RESTRICTED},
+ {"ag_running", T_BOOL, offsetof(PyAsyncGenObject, ag_running_async),
+ READONLY},
+ {"ag_code", T_OBJECT, offsetof(PyAsyncGenObject, ag_code),
+ READONLY|READ_RESTRICTED},
{NULL} /* Sentinel */
};
@@ -1350,8 +1350,8 @@ static PyMethodDef async_gen_methods[] = {
{"asend", (PyCFunction)async_gen_asend, METH_O, async_asend_doc},
{"athrow",(PyCFunction)async_gen_athrow, METH_VARARGS, async_athrow_doc},
{"aclose", (PyCFunction)async_gen_aclose, METH_NOARGS, async_aclose_doc},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* Sentinel */
};
@@ -1370,7 +1370,7 @@ PyTypeObject PyAsyncGen_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)gen_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
&async_gen_as_async, /* tp_as_async */
@@ -1384,7 +1384,7 @@ PyTypeObject PyAsyncGen_Type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
0, /* tp_doc */
(traverseproc)async_gen_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -1428,13 +1428,13 @@ PyAsyncGen_New(PyFrameObject *f, PyObject *name, PyObject *qualname)
o->ag_finalizer = NULL;
o->ag_closed = 0;
o->ag_hooks_inited = 0;
- o->ag_running_async = 0;
+ o->ag_running_async = 0;
return (PyObject*)o;
}
-void
-_PyAsyncGen_ClearFreeLists(void)
+void
+_PyAsyncGen_ClearFreeLists(void)
{
while (ag_value_freelist_free) {
_PyAsyncGenWrappedValue *o;
@@ -1446,15 +1446,15 @@ _PyAsyncGen_ClearFreeLists(void)
while (ag_asend_freelist_free) {
PyAsyncGenASend *o;
o = ag_asend_freelist[--ag_asend_freelist_free];
- assert(Py_IS_TYPE(o, &_PyAsyncGenASend_Type));
+ assert(Py_IS_TYPE(o, &_PyAsyncGenASend_Type));
PyObject_GC_Del(o);
}
}
void
-_PyAsyncGen_Fini(void)
+_PyAsyncGen_Fini(void)
{
- _PyAsyncGen_ClearFreeLists();
+ _PyAsyncGen_ClearFreeLists();
}
@@ -1472,7 +1472,7 @@ async_gen_unwrap_value(PyAsyncGenObject *gen, PyObject *result)
gen->ag_closed = 1;
}
- gen->ag_running_async = 0;
+ gen->ag_running_async = 0;
return NULL;
}
@@ -1480,7 +1480,7 @@ async_gen_unwrap_value(PyAsyncGenObject *gen, PyObject *result)
/* async yield */
_PyGen_SetStopIterationValue(((_PyAsyncGenWrappedValue*)result)->agw_val);
Py_DECREF(result);
- gen->ag_running_async = 0;
+ gen->ag_running_async = 0;
return NULL;
}
@@ -1520,27 +1520,27 @@ async_gen_asend_send(PyAsyncGenASend *o, PyObject *arg)
PyObject *result;
if (o->ags_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "cannot reuse already awaited __anext__()/asend()");
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited __anext__()/asend()");
return NULL;
}
if (o->ags_state == AWAITABLE_STATE_INIT) {
- if (o->ags_gen->ag_running_async) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "anext(): asynchronous generator is already running");
- return NULL;
- }
-
+ if (o->ags_gen->ag_running_async) {
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "anext(): asynchronous generator is already running");
+ return NULL;
+ }
+
if (arg == NULL || arg == Py_None) {
arg = o->ags_sendval;
}
o->ags_state = AWAITABLE_STATE_ITER;
}
- o->ags_gen->ag_running_async = 1;
+ o->ags_gen->ag_running_async = 1;
result = gen_send_ex((PyGenObject*)o->ags_gen, arg, 0, 0);
result = async_gen_unwrap_value(o->ags_gen, result);
@@ -1565,9 +1565,9 @@ async_gen_asend_throw(PyAsyncGenASend *o, PyObject *args)
PyObject *result;
if (o->ags_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "cannot reuse already awaited __anext__()/asend()");
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited __anext__()/asend()");
return NULL;
}
@@ -1612,7 +1612,7 @@ PyTypeObject _PyAsyncGenASend_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)async_gen_asend_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
&async_gen_asend_as_async, /* tp_as_async */
@@ -1709,7 +1709,7 @@ PyTypeObject _PyAsyncGenWrappedValue_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)async_gen_wrapped_val_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_as_async */
@@ -1799,38 +1799,38 @@ async_gen_athrow_send(PyAsyncGenAThrow *o, PyObject *arg)
PyFrameObject *f = gen->gi_frame;
PyObject *retval;
- if (o->agt_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "cannot reuse already awaited aclose()/athrow()");
- return NULL;
- }
-
- if (f == NULL || f->f_stacktop == NULL) {
- o->agt_state = AWAITABLE_STATE_CLOSED;
+ if (o->agt_state == AWAITABLE_STATE_CLOSED) {
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited aclose()/athrow()");
+ return NULL;
+ }
+
+ if (f == NULL || f->f_stacktop == NULL) {
+ o->agt_state = AWAITABLE_STATE_CLOSED;
PyErr_SetNone(PyExc_StopIteration);
return NULL;
}
if (o->agt_state == AWAITABLE_STATE_INIT) {
- if (o->agt_gen->ag_running_async) {
- o->agt_state = AWAITABLE_STATE_CLOSED;
- if (o->agt_args == NULL) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "aclose(): asynchronous generator is already running");
- }
- else {
- PyErr_SetString(
- PyExc_RuntimeError,
- "athrow(): asynchronous generator is already running");
- }
- return NULL;
- }
-
+ if (o->agt_gen->ag_running_async) {
+ o->agt_state = AWAITABLE_STATE_CLOSED;
+ if (o->agt_args == NULL) {
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "aclose(): asynchronous generator is already running");
+ }
+ else {
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "athrow(): asynchronous generator is already running");
+ }
+ return NULL;
+ }
+
if (o->agt_gen->ag_closed) {
- o->agt_state = AWAITABLE_STATE_CLOSED;
- PyErr_SetNone(PyExc_StopAsyncIteration);
+ o->agt_state = AWAITABLE_STATE_CLOSED;
+ PyErr_SetNone(PyExc_StopAsyncIteration);
return NULL;
}
@@ -1840,7 +1840,7 @@ async_gen_athrow_send(PyAsyncGenAThrow *o, PyObject *arg)
}
o->agt_state = AWAITABLE_STATE_ITER;
- o->agt_gen->ag_running_async = 1;
+ o->agt_gen->ag_running_async = 1;
if (o->agt_args == NULL) {
/* aclose() mode */
@@ -1899,24 +1899,24 @@ async_gen_athrow_send(PyAsyncGenAThrow *o, PyObject *arg)
}
yield_close:
- o->agt_gen->ag_running_async = 0;
- o->agt_state = AWAITABLE_STATE_CLOSED;
+ o->agt_gen->ag_running_async = 0;
+ o->agt_state = AWAITABLE_STATE_CLOSED;
PyErr_SetString(
PyExc_RuntimeError, ASYNC_GEN_IGNORED_EXIT_MSG);
return NULL;
check_error:
- o->agt_gen->ag_running_async = 0;
- o->agt_state = AWAITABLE_STATE_CLOSED;
- if (PyErr_ExceptionMatches(PyExc_StopAsyncIteration) ||
- PyErr_ExceptionMatches(PyExc_GeneratorExit))
- {
+ o->agt_gen->ag_running_async = 0;
+ o->agt_state = AWAITABLE_STATE_CLOSED;
+ if (PyErr_ExceptionMatches(PyExc_StopAsyncIteration) ||
+ PyErr_ExceptionMatches(PyExc_GeneratorExit))
+ {
if (o->agt_args == NULL) {
/* when aclose() is called we don't want to propagate
- StopAsyncIteration or GeneratorExit; just raise
- StopIteration, signalling that this 'aclose()' await
- is done.
- */
+ StopAsyncIteration or GeneratorExit; just raise
+ StopIteration, signalling that this 'aclose()' await
+ is done.
+ */
PyErr_Clear();
PyErr_SetNone(PyExc_StopIteration);
}
@@ -1931,9 +1931,9 @@ async_gen_athrow_throw(PyAsyncGenAThrow *o, PyObject *args)
PyObject *retval;
if (o->agt_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetString(
- PyExc_RuntimeError,
- "cannot reuse already awaited aclose()/athrow()");
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited aclose()/athrow()");
return NULL;
}
@@ -1943,23 +1943,23 @@ async_gen_athrow_throw(PyAsyncGenAThrow *o, PyObject *args)
} else {
/* aclose() mode */
if (retval && _PyAsyncGenWrappedValue_CheckExact(retval)) {
- o->agt_gen->ag_running_async = 0;
- o->agt_state = AWAITABLE_STATE_CLOSED;
+ o->agt_gen->ag_running_async = 0;
+ o->agt_state = AWAITABLE_STATE_CLOSED;
Py_DECREF(retval);
PyErr_SetString(PyExc_RuntimeError, ASYNC_GEN_IGNORED_EXIT_MSG);
return NULL;
}
- if (PyErr_ExceptionMatches(PyExc_StopAsyncIteration) ||
- PyErr_ExceptionMatches(PyExc_GeneratorExit))
- {
- /* when aclose() is called we don't want to propagate
- StopAsyncIteration or GeneratorExit; just raise
- StopIteration, signalling that this 'aclose()' await
- is done.
- */
- PyErr_Clear();
- PyErr_SetNone(PyExc_StopIteration);
- }
+ if (PyErr_ExceptionMatches(PyExc_StopAsyncIteration) ||
+ PyErr_ExceptionMatches(PyExc_GeneratorExit))
+ {
+ /* when aclose() is called we don't want to propagate
+ StopAsyncIteration or GeneratorExit; just raise
+ StopIteration, signalling that this 'aclose()' await
+ is done.
+ */
+ PyErr_Clear();
+ PyErr_SetNone(PyExc_StopIteration);
+ }
return retval;
}
}
@@ -2002,7 +2002,7 @@ PyTypeObject _PyAsyncGenAThrow_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)async_gen_athrow_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
&async_gen_athrow_as_async, /* tp_as_async */
diff --git a/contrib/tools/python3/src/Objects/interpreteridobject.c b/contrib/tools/python3/src/Objects/interpreteridobject.c
index ded247f9a4..39bde97269 100644
--- a/contrib/tools/python3/src/Objects/interpreteridobject.c
+++ b/contrib/tools/python3/src/Objects/interpreteridobject.c
@@ -1,288 +1,288 @@
-/* InterpreterID object */
-
-#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_interp.h" // _PyInterpreterState_LookUpID()
-#include "interpreteridobject.h"
-
-
-typedef struct interpid {
- PyObject_HEAD
- int64_t id;
-} interpid;
-
-static interpid *
-newinterpid(PyTypeObject *cls, int64_t id, int force)
-{
- PyInterpreterState *interp = _PyInterpreterState_LookUpID(id);
- if (interp == NULL) {
- if (force) {
- PyErr_Clear();
- }
- else {
- return NULL;
- }
- }
-
- interpid *self = PyObject_New(interpid, cls);
- if (self == NULL) {
- return NULL;
- }
- self->id = id;
-
- if (interp != NULL) {
- _PyInterpreterState_IDIncref(interp);
- }
- return self;
-}
-
-static int
-interp_id_converter(PyObject *arg, void *ptr)
-{
- int64_t id;
- if (PyObject_TypeCheck(arg, &_PyInterpreterID_Type)) {
- id = ((interpid *)arg)->id;
- }
- else if (_PyIndex_Check(arg)) {
- id = PyLong_AsLongLong(arg);
- if (id == -1 && PyErr_Occurred()) {
- return 0;
- }
- if (id < 0) {
- PyErr_Format(PyExc_ValueError,
- "interpreter ID must be a non-negative int, got %R", arg);
- return 0;
- }
- }
- else {
- PyErr_Format(PyExc_TypeError,
- "interpreter ID must be an int, got %.100s",
- Py_TYPE(arg)->tp_name);
- return 0;
- }
- *(int64_t *)ptr = id;
- return 1;
-}
-
-static PyObject *
-interpid_new(PyTypeObject *cls, PyObject *args, PyObject *kwds)
-{
- static char *kwlist[] = {"id", "force", NULL};
- int64_t id;
- int force = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwds,
- "O&|$p:InterpreterID.__init__", kwlist,
- interp_id_converter, &id, &force)) {
- return NULL;
- }
-
- return (PyObject *)newinterpid(cls, id, force);
-}
-
-static void
-interpid_dealloc(PyObject *v)
-{
- int64_t id = ((interpid *)v)->id;
- PyInterpreterState *interp = _PyInterpreterState_LookUpID(id);
- if (interp != NULL) {
- _PyInterpreterState_IDDecref(interp);
- }
- else {
- // already deleted
- PyErr_Clear();
- }
- Py_TYPE(v)->tp_free(v);
-}
-
-static PyObject *
-interpid_repr(PyObject *self)
-{
- PyTypeObject *type = Py_TYPE(self);
- const char *name = _PyType_Name(type);
- interpid *id = (interpid *)self;
- return PyUnicode_FromFormat("%s(%" PRId64 ")", name, id->id);
-}
-
-static PyObject *
-interpid_str(PyObject *self)
-{
- interpid *id = (interpid *)self;
- return PyUnicode_FromFormat("%" PRId64 "", id->id);
-}
-
-static PyObject *
-interpid_int(PyObject *self)
-{
- interpid *id = (interpid *)self;
- return PyLong_FromLongLong(id->id);
-}
-
-static PyNumberMethods interpid_as_number = {
- 0, /* nb_add */
- 0, /* nb_subtract */
- 0, /* nb_multiply */
- 0, /* nb_remainder */
- 0, /* nb_divmod */
- 0, /* nb_power */
- 0, /* nb_negative */
- 0, /* nb_positive */
- 0, /* nb_absolute */
- 0, /* nb_bool */
- 0, /* nb_invert */
- 0, /* nb_lshift */
- 0, /* nb_rshift */
- 0, /* nb_and */
- 0, /* nb_xor */
- 0, /* nb_or */
- (unaryfunc)interpid_int, /* nb_int */
- 0, /* nb_reserved */
- 0, /* nb_float */
-
- 0, /* nb_inplace_add */
- 0, /* nb_inplace_subtract */
- 0, /* nb_inplace_multiply */
- 0, /* nb_inplace_remainder */
- 0, /* nb_inplace_power */
- 0, /* nb_inplace_lshift */
- 0, /* nb_inplace_rshift */
- 0, /* nb_inplace_and */
- 0, /* nb_inplace_xor */
- 0, /* nb_inplace_or */
-
- 0, /* nb_floor_divide */
- 0, /* nb_true_divide */
- 0, /* nb_inplace_floor_divide */
- 0, /* nb_inplace_true_divide */
-
- (unaryfunc)interpid_int, /* nb_index */
-};
-
-static Py_hash_t
-interpid_hash(PyObject *self)
-{
- interpid *id = (interpid *)self;
- PyObject *obj = PyLong_FromLongLong(id->id);
- if (obj == NULL) {
- return -1;
- }
- Py_hash_t hash = PyObject_Hash(obj);
- Py_DECREF(obj);
- return hash;
-}
-
-static PyObject *
-interpid_richcompare(PyObject *self, PyObject *other, int op)
-{
- if (op != Py_EQ && op != Py_NE) {
- Py_RETURN_NOTIMPLEMENTED;
- }
-
- if (!PyObject_TypeCheck(self, &_PyInterpreterID_Type)) {
- Py_RETURN_NOTIMPLEMENTED;
- }
-
- interpid *id = (interpid *)self;
- int equal;
- if (PyObject_TypeCheck(other, &_PyInterpreterID_Type)) {
- interpid *otherid = (interpid *)other;
- equal = (id->id == otherid->id);
- }
- else if (PyLong_CheckExact(other)) {
- /* Fast path */
- int overflow;
- long long otherid = PyLong_AsLongLongAndOverflow(other, &overflow);
- if (otherid == -1 && PyErr_Occurred()) {
- return NULL;
- }
- equal = !overflow && (otherid >= 0) && (id->id == otherid);
- }
- else if (PyNumber_Check(other)) {
- PyObject *pyid = PyLong_FromLongLong(id->id);
- if (pyid == NULL) {
- return NULL;
- }
- PyObject *res = PyObject_RichCompare(pyid, other, op);
- Py_DECREF(pyid);
- return res;
- }
- else {
- Py_RETURN_NOTIMPLEMENTED;
- }
-
- if ((op == Py_EQ && equal) || (op == Py_NE && !equal)) {
- Py_RETURN_TRUE;
- }
- Py_RETURN_FALSE;
-}
-
-PyDoc_STRVAR(interpid_doc,
-"A interpreter ID identifies a interpreter and may be used as an int.");
-
-PyTypeObject _PyInterpreterID_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "InterpreterID", /* tp_name */
- sizeof(interpid), /* tp_basicsize */
- 0, /* tp_itemsize */
- (destructor)interpid_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_as_async */
- (reprfunc)interpid_repr, /* tp_repr */
- &interpid_as_number, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- interpid_hash, /* tp_hash */
- 0, /* tp_call */
- (reprfunc)interpid_str, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- interpid_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- interpid_richcompare, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- 0, /* tp_methods */
- 0, /* tp_members */
- 0, /* tp_getset */
- 0, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- 0, /* tp_init */
- 0, /* tp_alloc */
- interpid_new, /* tp_new */
-};
-
-PyObject *_PyInterpreterID_New(int64_t id)
-{
- return (PyObject *)newinterpid(&_PyInterpreterID_Type, id, 0);
-}
-
-PyObject *
-_PyInterpreterState_GetIDObject(PyInterpreterState *interp)
-{
- if (_PyInterpreterState_IDInitref(interp) != 0) {
- return NULL;
- };
- int64_t id = PyInterpreterState_GetID(interp);
- if (id < 0) {
- return NULL;
- }
- return (PyObject *)newinterpid(&_PyInterpreterID_Type, id, 0);
-}
-
-PyInterpreterState *
-_PyInterpreterID_LookUp(PyObject *requested_id)
-{
- int64_t id;
- if (!interp_id_converter(requested_id, &id)) {
- return NULL;
- }
- return _PyInterpreterState_LookUpID(id);
-}
+/* InterpreterID object */
+
+#include "Python.h"
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_interp.h" // _PyInterpreterState_LookUpID()
+#include "interpreteridobject.h"
+
+
+typedef struct interpid {
+ PyObject_HEAD
+ int64_t id;
+} interpid;
+
+static interpid *
+newinterpid(PyTypeObject *cls, int64_t id, int force)
+{
+ PyInterpreterState *interp = _PyInterpreterState_LookUpID(id);
+ if (interp == NULL) {
+ if (force) {
+ PyErr_Clear();
+ }
+ else {
+ return NULL;
+ }
+ }
+
+ interpid *self = PyObject_New(interpid, cls);
+ if (self == NULL) {
+ return NULL;
+ }
+ self->id = id;
+
+ if (interp != NULL) {
+ _PyInterpreterState_IDIncref(interp);
+ }
+ return self;
+}
+
+static int
+interp_id_converter(PyObject *arg, void *ptr)
+{
+ int64_t id;
+ if (PyObject_TypeCheck(arg, &_PyInterpreterID_Type)) {
+ id = ((interpid *)arg)->id;
+ }
+ else if (_PyIndex_Check(arg)) {
+ id = PyLong_AsLongLong(arg);
+ if (id == -1 && PyErr_Occurred()) {
+ return 0;
+ }
+ if (id < 0) {
+ PyErr_Format(PyExc_ValueError,
+ "interpreter ID must be a non-negative int, got %R", arg);
+ return 0;
+ }
+ }
+ else {
+ PyErr_Format(PyExc_TypeError,
+ "interpreter ID must be an int, got %.100s",
+ Py_TYPE(arg)->tp_name);
+ return 0;
+ }
+ *(int64_t *)ptr = id;
+ return 1;
+}
+
+static PyObject *
+interpid_new(PyTypeObject *cls, PyObject *args, PyObject *kwds)
+{
+ static char *kwlist[] = {"id", "force", NULL};
+ int64_t id;
+ int force = 0;
+ if (!PyArg_ParseTupleAndKeywords(args, kwds,
+ "O&|$p:InterpreterID.__init__", kwlist,
+ interp_id_converter, &id, &force)) {
+ return NULL;
+ }
+
+ return (PyObject *)newinterpid(cls, id, force);
+}
+
+static void
+interpid_dealloc(PyObject *v)
+{
+ int64_t id = ((interpid *)v)->id;
+ PyInterpreterState *interp = _PyInterpreterState_LookUpID(id);
+ if (interp != NULL) {
+ _PyInterpreterState_IDDecref(interp);
+ }
+ else {
+ // already deleted
+ PyErr_Clear();
+ }
+ Py_TYPE(v)->tp_free(v);
+}
+
+static PyObject *
+interpid_repr(PyObject *self)
+{
+ PyTypeObject *type = Py_TYPE(self);
+ const char *name = _PyType_Name(type);
+ interpid *id = (interpid *)self;
+ return PyUnicode_FromFormat("%s(%" PRId64 ")", name, id->id);
+}
+
+static PyObject *
+interpid_str(PyObject *self)
+{
+ interpid *id = (interpid *)self;
+ return PyUnicode_FromFormat("%" PRId64 "", id->id);
+}
+
+static PyObject *
+interpid_int(PyObject *self)
+{
+ interpid *id = (interpid *)self;
+ return PyLong_FromLongLong(id->id);
+}
+
+static PyNumberMethods interpid_as_number = {
+ 0, /* nb_add */
+ 0, /* nb_subtract */
+ 0, /* nb_multiply */
+ 0, /* nb_remainder */
+ 0, /* nb_divmod */
+ 0, /* nb_power */
+ 0, /* nb_negative */
+ 0, /* nb_positive */
+ 0, /* nb_absolute */
+ 0, /* nb_bool */
+ 0, /* nb_invert */
+ 0, /* nb_lshift */
+ 0, /* nb_rshift */
+ 0, /* nb_and */
+ 0, /* nb_xor */
+ 0, /* nb_or */
+ (unaryfunc)interpid_int, /* nb_int */
+ 0, /* nb_reserved */
+ 0, /* nb_float */
+
+ 0, /* nb_inplace_add */
+ 0, /* nb_inplace_subtract */
+ 0, /* nb_inplace_multiply */
+ 0, /* nb_inplace_remainder */
+ 0, /* nb_inplace_power */
+ 0, /* nb_inplace_lshift */
+ 0, /* nb_inplace_rshift */
+ 0, /* nb_inplace_and */
+ 0, /* nb_inplace_xor */
+ 0, /* nb_inplace_or */
+
+ 0, /* nb_floor_divide */
+ 0, /* nb_true_divide */
+ 0, /* nb_inplace_floor_divide */
+ 0, /* nb_inplace_true_divide */
+
+ (unaryfunc)interpid_int, /* nb_index */
+};
+
+static Py_hash_t
+interpid_hash(PyObject *self)
+{
+ interpid *id = (interpid *)self;
+ PyObject *obj = PyLong_FromLongLong(id->id);
+ if (obj == NULL) {
+ return -1;
+ }
+ Py_hash_t hash = PyObject_Hash(obj);
+ Py_DECREF(obj);
+ return hash;
+}
+
+static PyObject *
+interpid_richcompare(PyObject *self, PyObject *other, int op)
+{
+ if (op != Py_EQ && op != Py_NE) {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ if (!PyObject_TypeCheck(self, &_PyInterpreterID_Type)) {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ interpid *id = (interpid *)self;
+ int equal;
+ if (PyObject_TypeCheck(other, &_PyInterpreterID_Type)) {
+ interpid *otherid = (interpid *)other;
+ equal = (id->id == otherid->id);
+ }
+ else if (PyLong_CheckExact(other)) {
+ /* Fast path */
+ int overflow;
+ long long otherid = PyLong_AsLongLongAndOverflow(other, &overflow);
+ if (otherid == -1 && PyErr_Occurred()) {
+ return NULL;
+ }
+ equal = !overflow && (otherid >= 0) && (id->id == otherid);
+ }
+ else if (PyNumber_Check(other)) {
+ PyObject *pyid = PyLong_FromLongLong(id->id);
+ if (pyid == NULL) {
+ return NULL;
+ }
+ PyObject *res = PyObject_RichCompare(pyid, other, op);
+ Py_DECREF(pyid);
+ return res;
+ }
+ else {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ if ((op == Py_EQ && equal) || (op == Py_NE && !equal)) {
+ Py_RETURN_TRUE;
+ }
+ Py_RETURN_FALSE;
+}
+
+PyDoc_STRVAR(interpid_doc,
+"A interpreter ID identifies a interpreter and may be used as an int.");
+
+PyTypeObject _PyInterpreterID_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ "InterpreterID", /* tp_name */
+ sizeof(interpid), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ (destructor)interpid_dealloc, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_as_async */
+ (reprfunc)interpid_repr, /* tp_repr */
+ &interpid_as_number, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ interpid_hash, /* tp_hash */
+ 0, /* tp_call */
+ (reprfunc)interpid_str, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ interpid_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ interpid_richcompare, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ 0, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ interpid_new, /* tp_new */
+};
+
+PyObject *_PyInterpreterID_New(int64_t id)
+{
+ return (PyObject *)newinterpid(&_PyInterpreterID_Type, id, 0);
+}
+
+PyObject *
+_PyInterpreterState_GetIDObject(PyInterpreterState *interp)
+{
+ if (_PyInterpreterState_IDInitref(interp) != 0) {
+ return NULL;
+ };
+ int64_t id = PyInterpreterState_GetID(interp);
+ if (id < 0) {
+ return NULL;
+ }
+ return (PyObject *)newinterpid(&_PyInterpreterID_Type, id, 0);
+}
+
+PyInterpreterState *
+_PyInterpreterID_LookUp(PyObject *requested_id)
+{
+ int64_t id;
+ if (!interp_id_converter(requested_id, &id)) {
+ return NULL;
+ }
+ return _PyInterpreterState_LookUpID(id);
+}
diff --git a/contrib/tools/python3/src/Objects/iterobject.c b/contrib/tools/python3/src/Objects/iterobject.c
index fcb96c6201..6cac41ad53 100644
--- a/contrib/tools/python3/src/Objects/iterobject.c
+++ b/contrib/tools/python3/src/Objects/iterobject.c
@@ -1,7 +1,7 @@
/* Iterator objects */
#include "Python.h"
-#include "pycore_object.h"
+#include "pycore_object.h"
typedef struct {
PyObject_HEAD
@@ -9,8 +9,8 @@ typedef struct {
PyObject *it_seq; /* Set to NULL when iterator is exhausted */
} seqiterobject;
-_Py_IDENTIFIER(iter);
-
+_Py_IDENTIFIER(iter);
+
PyObject *
PySeqIter_New(PyObject *seq)
{
@@ -79,7 +79,7 @@ iter_iternext(PyObject *iterator)
}
static PyObject *
-iter_len(seqiterobject *it, PyObject *Py_UNUSED(ignored))
+iter_len(seqiterobject *it, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t seqsize, len;
@@ -102,13 +102,13 @@ iter_len(seqiterobject *it, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
static PyObject *
-iter_reduce(seqiterobject *it, PyObject *Py_UNUSED(ignored))
+iter_reduce(seqiterobject *it, PyObject *Py_UNUSED(ignored))
{
if (it->it_seq != NULL)
- return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
+ return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
it->it_seq, it->it_index);
else
- return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
+ return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
}
PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
@@ -143,10 +143,10 @@ PyTypeObject PySeqIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)iter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -241,13 +241,13 @@ calliter_iternext(calliterobject *it)
}
static PyObject *
-calliter_reduce(calliterobject *it, PyObject *Py_UNUSED(ignored))
+calliter_reduce(calliterobject *it, PyObject *Py_UNUSED(ignored))
{
if (it->it_callable != NULL && it->it_sentinel != NULL)
- return Py_BuildValue("N(OO)", _PyEval_GetBuiltinId(&PyId_iter),
+ return Py_BuildValue("N(OO)", _PyEval_GetBuiltinId(&PyId_iter),
it->it_callable, it->it_sentinel);
else
- return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
+ return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
}
static PyMethodDef calliter_methods[] = {
@@ -262,10 +262,10 @@ PyTypeObject PyCallIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)calliter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/listobject.c b/contrib/tools/python3/src/Objects/listobject.c
index cbbd65e4af..1e868b43c0 100644
--- a/contrib/tools/python3/src/Objects/listobject.c
+++ b/contrib/tools/python3/src/Objects/listobject.c
@@ -1,10 +1,10 @@
/* List object implementation */
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_object.h"
-#include "pycore_tupleobject.h"
-#include "pycore_accu.h"
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_object.h"
+#include "pycore_tupleobject.h"
+#include "pycore_accu.h"
#ifdef STDC_HEADERS
#include <stddef.h>
@@ -45,7 +45,7 @@ list_resize(PyListObject *self, Py_ssize_t newsize)
*/
if (allocated >= newsize && newsize >= (allocated >> 1)) {
assert(self->ob_item != NULL || newsize == 0);
- Py_SET_SIZE(self, newsize);
+ Py_SET_SIZE(self, newsize);
return 0;
}
@@ -54,17 +54,17 @@ list_resize(PyListObject *self, Py_ssize_t newsize)
* enough to give linear-time amortized behavior over a long
* sequence of appends() in the presence of a poorly-performing
* system realloc().
- * Add padding to make the allocated size multiple of 4.
- * The growth pattern is: 0, 4, 8, 16, 24, 32, 40, 52, 64, 76, ...
+ * Add padding to make the allocated size multiple of 4.
+ * The growth pattern is: 0, 4, 8, 16, 24, 32, 40, 52, 64, 76, ...
* Note: new_allocated won't overflow because the largest possible value
* is PY_SSIZE_T_MAX * (9 / 8) + 6 which always fits in a size_t.
*/
- new_allocated = ((size_t)newsize + (newsize >> 3) + 6) & ~(size_t)3;
- /* Do not overallocate if the new size is closer to overalocated size
- * than to the old size.
- */
- if (newsize - Py_SIZE(self) > (Py_ssize_t)(new_allocated - newsize))
- new_allocated = ((size_t)newsize + 3) & ~(size_t)3;
+ new_allocated = ((size_t)newsize + (newsize >> 3) + 6) & ~(size_t)3;
+ /* Do not overallocate if the new size is closer to overalocated size
+ * than to the old size.
+ */
+ if (newsize - Py_SIZE(self) > (Py_ssize_t)(new_allocated - newsize))
+ new_allocated = ((size_t)newsize + 3) & ~(size_t)3;
if (newsize == 0)
new_allocated = 0;
@@ -75,49 +75,49 @@ list_resize(PyListObject *self, Py_ssize_t newsize)
return -1;
}
self->ob_item = items;
- Py_SET_SIZE(self, newsize);
+ Py_SET_SIZE(self, newsize);
self->allocated = new_allocated;
return 0;
}
-static int
-list_preallocate_exact(PyListObject *self, Py_ssize_t size)
-{
- assert(self->ob_item == NULL);
- assert(size > 0);
-
- PyObject **items = PyMem_New(PyObject*, size);
- if (items == NULL) {
- PyErr_NoMemory();
- return -1;
- }
- self->ob_item = items;
- self->allocated = size;
- return 0;
-}
-
+static int
+list_preallocate_exact(PyListObject *self, Py_ssize_t size)
+{
+ assert(self->ob_item == NULL);
+ assert(size > 0);
+
+ PyObject **items = PyMem_New(PyObject*, size);
+ if (items == NULL) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ self->ob_item = items;
+ self->allocated = size;
+ return 0;
+}
+
/* Empty list reuse scheme to save calls to malloc and free */
#ifndef PyList_MAXFREELIST
-# define PyList_MAXFREELIST 80
+# define PyList_MAXFREELIST 80
#endif
-
+
static PyListObject *free_list[PyList_MAXFREELIST];
static int numfree = 0;
-void
-_PyList_ClearFreeList(void)
+void
+_PyList_ClearFreeList(void)
{
while (numfree) {
- PyListObject *op = free_list[--numfree];
+ PyListObject *op = free_list[--numfree];
assert(PyList_CheckExact(op));
PyObject_GC_Del(op);
}
}
void
-_PyList_Fini(void)
+_PyList_Fini(void)
{
- _PyList_ClearFreeList();
+ _PyList_ClearFreeList();
}
/* Print summary info about the state of the optimized allocator */
@@ -156,30 +156,30 @@ PyList_New(Py_ssize_t size)
return PyErr_NoMemory();
}
}
- Py_SET_SIZE(op, size);
+ Py_SET_SIZE(op, size);
op->allocated = size;
_PyObject_GC_TRACK(op);
return (PyObject *) op;
}
-static PyObject *
-list_new_prealloc(Py_ssize_t size)
-{
- assert(size > 0);
- PyListObject *op = (PyListObject *) PyList_New(0);
- if (op == NULL) {
- return NULL;
- }
- assert(op->ob_item == NULL);
- op->ob_item = PyMem_New(PyObject *, size);
- if (op->ob_item == NULL) {
- Py_DECREF(op);
- return PyErr_NoMemory();
- }
- op->allocated = size;
- return (PyObject *) op;
-}
-
+static PyObject *
+list_new_prealloc(Py_ssize_t size)
+{
+ assert(size > 0);
+ PyListObject *op = (PyListObject *) PyList_New(0);
+ if (op == NULL) {
+ return NULL;
+ }
+ assert(op->ob_item == NULL);
+ op->ob_item = PyMem_New(PyObject *, size);
+ if (op->ob_item == NULL) {
+ Py_DECREF(op);
+ return PyErr_NoMemory();
+ }
+ op->allocated = size;
+ return (PyObject *) op;
+}
+
Py_ssize_t
PyList_Size(PyObject *op)
{
@@ -191,19 +191,19 @@ PyList_Size(PyObject *op)
return Py_SIZE(op);
}
-static inline int
-valid_index(Py_ssize_t i, Py_ssize_t limit)
-{
- /* The cast to size_t lets us use just a single comparison
- to check whether i is in the range: 0 <= i < limit.
-
- See: Section 14.2 "Bounds Checking" in the Agner Fog
- optimization manual found at:
- https://www.agner.org/optimize/optimizing_cpp.pdf
- */
- return (size_t) i < (size_t) limit;
-}
-
+static inline int
+valid_index(Py_ssize_t i, Py_ssize_t limit)
+{
+ /* The cast to size_t lets us use just a single comparison
+ to check whether i is in the range: 0 <= i < limit.
+
+ See: Section 14.2 "Bounds Checking" in the Agner Fog
+ optimization manual found at:
+ https://www.agner.org/optimize/optimizing_cpp.pdf
+ */
+ return (size_t) i < (size_t) limit;
+}
+
static PyObject *indexerr = NULL;
PyObject *
@@ -213,7 +213,7 @@ PyList_GetItem(PyObject *op, Py_ssize_t i)
PyErr_BadInternalCall();
return NULL;
}
- if (!valid_index(i, Py_SIZE(op))) {
+ if (!valid_index(i, Py_SIZE(op))) {
if (indexerr == NULL) {
indexerr = PyUnicode_FromString(
"list index out of range");
@@ -236,7 +236,7 @@ PyList_SetItem(PyObject *op, Py_ssize_t i,
PyErr_BadInternalCall();
return -1;
}
- if (!valid_index(i, Py_SIZE(op))) {
+ if (!valid_index(i, Py_SIZE(op))) {
Py_XDECREF(newitem);
PyErr_SetString(PyExc_IndexError,
"list assignment index out of range");
@@ -326,7 +326,7 @@ list_dealloc(PyListObject *op)
{
Py_ssize_t i;
PyObject_GC_UnTrack(op);
- Py_TRASHCAN_BEGIN(op, list_dealloc)
+ Py_TRASHCAN_BEGIN(op, list_dealloc)
if (op->ob_item != NULL) {
/* Do it backwards, for Christian Tismer.
There's a simple test case where somehow this reduces
@@ -342,7 +342,7 @@ list_dealloc(PyListObject *op)
free_list[numfree++] = op;
else
Py_TYPE(op)->tp_free((PyObject *)op);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
static PyObject *
@@ -410,23 +410,23 @@ list_length(PyListObject *a)
static int
list_contains(PyListObject *a, PyObject *el)
{
- PyObject *item;
+ PyObject *item;
Py_ssize_t i;
int cmp;
- for (i = 0, cmp = 0 ; cmp == 0 && i < Py_SIZE(a); ++i) {
- item = PyList_GET_ITEM(a, i);
- Py_INCREF(item);
- cmp = PyObject_RichCompareBool(item, el, Py_EQ);
- Py_DECREF(item);
- }
+ for (i = 0, cmp = 0 ; cmp == 0 && i < Py_SIZE(a); ++i) {
+ item = PyList_GET_ITEM(a, i);
+ Py_INCREF(item);
+ cmp = PyObject_RichCompareBool(item, el, Py_EQ);
+ Py_DECREF(item);
+ }
return cmp;
}
static PyObject *
list_item(PyListObject *a, Py_ssize_t i)
{
- if (!valid_index(i, Py_SIZE(a))) {
+ if (!valid_index(i, Py_SIZE(a))) {
if (indexerr == NULL) {
indexerr = PyUnicode_FromString(
"list index out of range");
@@ -447,10 +447,10 @@ list_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)
PyObject **src, **dest;
Py_ssize_t i, len;
len = ihigh - ilow;
- if (len <= 0) {
- return PyList_New(0);
- }
- np = (PyListObject *) list_new_prealloc(len);
+ if (len <= 0) {
+ return PyList_New(0);
+ }
+ np = (PyListObject *) list_new_prealloc(len);
if (np == NULL)
return NULL;
@@ -461,7 +461,7 @@ list_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)
Py_INCREF(v);
dest[i] = v;
}
- Py_SET_SIZE(np, len);
+ Py_SET_SIZE(np, len);
return (PyObject *)np;
}
@@ -472,18 +472,18 @@ PyList_GetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)
PyErr_BadInternalCall();
return NULL;
}
- if (ilow < 0) {
- ilow = 0;
- }
- else if (ilow > Py_SIZE(a)) {
- ilow = Py_SIZE(a);
- }
- if (ihigh < ilow) {
- ihigh = ilow;
- }
- else if (ihigh > Py_SIZE(a)) {
- ihigh = Py_SIZE(a);
- }
+ if (ilow < 0) {
+ ilow = 0;
+ }
+ else if (ilow > Py_SIZE(a)) {
+ ilow = Py_SIZE(a);
+ }
+ if (ihigh < ilow) {
+ ihigh = ilow;
+ }
+ else if (ihigh > Py_SIZE(a)) {
+ ihigh = Py_SIZE(a);
+ }
return list_slice((PyListObject *)a, ilow, ihigh);
}
@@ -497,17 +497,17 @@ list_concat(PyListObject *a, PyObject *bb)
if (!PyList_Check(bb)) {
PyErr_Format(PyExc_TypeError,
"can only concatenate list (not \"%.200s\") to list",
- Py_TYPE(bb)->tp_name);
+ Py_TYPE(bb)->tp_name);
return NULL;
}
#define b ((PyListObject *)bb)
if (Py_SIZE(a) > PY_SSIZE_T_MAX - Py_SIZE(b))
return PyErr_NoMemory();
size = Py_SIZE(a) + Py_SIZE(b);
- if (size == 0) {
- return PyList_New(0);
- }
- np = (PyListObject *) list_new_prealloc(size);
+ if (size == 0) {
+ return PyList_New(0);
+ }
+ np = (PyListObject *) list_new_prealloc(size);
if (np == NULL) {
return NULL;
}
@@ -525,7 +525,7 @@ list_concat(PyListObject *a, PyObject *bb)
Py_INCREF(v);
dest[i] = v;
}
- Py_SET_SIZE(np, size);
+ Py_SET_SIZE(np, size);
return (PyObject *)np;
#undef b
}
@@ -545,30 +545,30 @@ list_repeat(PyListObject *a, Py_ssize_t n)
size = Py_SIZE(a) * n;
if (size == 0)
return PyList_New(0);
- np = (PyListObject *) list_new_prealloc(size);
+ np = (PyListObject *) list_new_prealloc(size);
if (np == NULL)
return NULL;
if (Py_SIZE(a) == 1) {
- items = np->ob_item;
+ items = np->ob_item;
elem = a->ob_item[0];
for (i = 0; i < n; i++) {
items[i] = elem;
Py_INCREF(elem);
}
}
- else {
- p = np->ob_item;
- items = a->ob_item;
- for (i = 0; i < n; i++) {
- for (j = 0; j < Py_SIZE(a); j++) {
- *p = items[j];
- Py_INCREF(*p);
- p++;
- }
+ else {
+ p = np->ob_item;
+ items = a->ob_item;
+ for (i = 0; i < n; i++) {
+ for (j = 0; j < Py_SIZE(a); j++) {
+ *p = items[j];
+ Py_INCREF(*p);
+ p++;
+ }
}
}
- Py_SET_SIZE(np, size);
+ Py_SET_SIZE(np, size);
return (PyObject *) np;
}
@@ -581,7 +581,7 @@ _list_clear(PyListObject *a)
/* Because XDECREF can recursively invoke operations on
this list, we make it empty first. */
i = Py_SIZE(a);
- Py_SET_SIZE(a, 0);
+ Py_SET_SIZE(a, 0);
a->ob_item = NULL;
a->allocated = 0;
while (--i >= 0) {
@@ -759,7 +759,7 @@ list_inplace_repeat(PyListObject *self, Py_ssize_t n)
static int
list_ass_item(PyListObject *a, Py_ssize_t i, PyObject *v)
{
- if (!valid_index(i, Py_SIZE(a))) {
+ if (!valid_index(i, Py_SIZE(a))) {
PyErr_SetString(PyExc_IndexError,
"list assignment index out of range");
return -1;
@@ -899,7 +899,7 @@ list_extend(PyListObject *self, PyObject *iterable)
it = PyObject_GetIter(iterable);
if (it == NULL)
return NULL;
- iternext = *Py_TYPE(it)->tp_iternext;
+ iternext = *Py_TYPE(it)->tp_iternext;
/* Guess a result list size. */
n = PyObject_LengthHint(iterable, 8);
@@ -920,7 +920,7 @@ list_extend(PyListObject *self, PyObject *iterable)
if (list_resize(self, mn) < 0)
goto error;
/* Make the list sane again. */
- Py_SET_SIZE(self, m);
+ Py_SET_SIZE(self, m);
}
/* Run iterator to exhaustion. */
@@ -938,7 +938,7 @@ list_extend(PyListObject *self, PyObject *iterable)
if (Py_SIZE(self) < self->allocated) {
/* steals ref */
PyList_SET_ITEM(self, Py_SIZE(self), item);
- Py_SET_SIZE(self, Py_SIZE(self) + 1);
+ Py_SET_SIZE(self, Py_SIZE(self) + 1);
}
else {
int status = app1(self, item);
@@ -1006,7 +1006,7 @@ list_pop_impl(PyListObject *self, Py_ssize_t index)
}
if (index < 0)
index += Py_SIZE(self);
- if (!valid_index(index, Py_SIZE(self))) {
+ if (!valid_index(index, Py_SIZE(self))) {
PyErr_SetString(PyExc_IndexError, "pop index out of range");
return NULL;
}
@@ -1186,7 +1186,7 @@ struct s_MergeState {
/* This function is used by unsafe_object_compare to optimize comparisons
* when we know our list is type-homogeneous but we can't assume anything else.
- * In the pre-sort check it is set equal to Py_TYPE(key)->tp_richcompare */
+ * In the pre-sort check it is set equal to Py_TYPE(key)->tp_richcompare */
PyObject *(*key_richcompare)(PyObject *, PyObject *, int);
/* This function is used by unsafe_tuple_compare to compare the first elements
@@ -1355,7 +1355,7 @@ gallop_left(MergeState *ms, PyObject *key, PyObject **a, Py_ssize_t n, Py_ssize_
while (ofs < maxofs) {
IFLT(a[ofs], key) {
lastofs = ofs;
- assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
+ assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
ofs = (ofs << 1) + 1;
}
else /* key <= a[hint + ofs] */
@@ -1377,7 +1377,7 @@ gallop_left(MergeState *ms, PyObject *key, PyObject **a, Py_ssize_t n, Py_ssize_
break;
/* key <= a[hint - ofs] */
lastofs = ofs;
- assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
+ assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
ofs = (ofs << 1) + 1;
}
if (ofs > maxofs)
@@ -1444,7 +1444,7 @@ gallop_right(MergeState *ms, PyObject *key, PyObject **a, Py_ssize_t n, Py_ssize
while (ofs < maxofs) {
IFLT(key, *(a-ofs)) {
lastofs = ofs;
- assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
+ assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
ofs = (ofs << 1) + 1;
}
else /* a[hint - ofs] <= key */
@@ -1467,7 +1467,7 @@ gallop_right(MergeState *ms, PyObject *key, PyObject **a, Py_ssize_t n, Py_ssize
break;
/* a[hint + ofs] <= key */
lastofs = ofs;
- assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
+ assert(ofs <= (PY_SSIZE_T_MAX - 1) / 2);
ofs = (ofs << 1) + 1;
}
if (ofs > maxofs)
@@ -2012,7 +2012,7 @@ safe_object_compare(PyObject *v, PyObject *w, MergeState *ms)
return PyObject_RichCompareBool(v, w, Py_LT);
}
-/* Homogeneous compare: safe for any two comparable objects of the same type.
+/* Homogeneous compare: safe for any two comparable objects of the same type.
* (ms->key_richcompare is set to ob_type->tp_richcompare in the
* pre-sort check.)
*/
@@ -2022,7 +2022,7 @@ unsafe_object_compare(PyObject *v, PyObject *w, MergeState *ms)
PyObject *res_obj; int res;
/* No assumptions, because we check first: */
- if (Py_TYPE(v)->tp_richcompare != ms->key_richcompare)
+ if (Py_TYPE(v)->tp_richcompare != ms->key_richcompare)
return PyObject_RichCompareBool(v, w, Py_LT);
assert(ms->key_richcompare != NULL);
@@ -2059,8 +2059,8 @@ unsafe_latin_compare(PyObject *v, PyObject *w, MergeState *ms)
int res;
/* Modified from Objects/unicodeobject.c:unicode_compare, assuming: */
- assert(Py_IS_TYPE(v, &PyUnicode_Type));
- assert(Py_IS_TYPE(w, &PyUnicode_Type));
+ assert(Py_IS_TYPE(v, &PyUnicode_Type));
+ assert(Py_IS_TYPE(w, &PyUnicode_Type));
assert(PyUnicode_KIND(v) == PyUnicode_KIND(w));
assert(PyUnicode_KIND(v) == PyUnicode_1BYTE_KIND);
@@ -2082,8 +2082,8 @@ unsafe_long_compare(PyObject *v, PyObject *w, MergeState *ms)
PyLongObject *vl, *wl; sdigit v0, w0; int res;
/* Modified from Objects/longobject.c:long_compare, assuming: */
- assert(Py_IS_TYPE(v, &PyLong_Type));
- assert(Py_IS_TYPE(w, &PyLong_Type));
+ assert(Py_IS_TYPE(v, &PyLong_Type));
+ assert(Py_IS_TYPE(w, &PyLong_Type));
assert(Py_ABS(Py_SIZE(v)) <= 1);
assert(Py_ABS(Py_SIZE(w)) <= 1);
@@ -2110,8 +2110,8 @@ unsafe_float_compare(PyObject *v, PyObject *w, MergeState *ms)
int res;
/* Modified from Objects/floatobject.c:float_richcompare, assuming: */
- assert(Py_IS_TYPE(v, &PyFloat_Type));
- assert(Py_IS_TYPE(w, &PyFloat_Type));
+ assert(Py_IS_TYPE(v, &PyFloat_Type));
+ assert(Py_IS_TYPE(w, &PyFloat_Type));
res = PyFloat_AS_DOUBLE(v) < PyFloat_AS_DOUBLE(w);
assert(res == PyObject_RichCompareBool(v, w, Py_LT));
@@ -2132,8 +2132,8 @@ unsafe_tuple_compare(PyObject *v, PyObject *w, MergeState *ms)
int k;
/* Modified from Objects/tupleobject.c:tuplerichcompare, assuming: */
- assert(Py_IS_TYPE(v, &PyTuple_Type));
- assert(Py_IS_TYPE(w, &PyTuple_Type));
+ assert(Py_IS_TYPE(v, &PyTuple_Type));
+ assert(Py_IS_TYPE(w, &PyTuple_Type));
assert(Py_SIZE(v) > 0);
assert(Py_SIZE(w) > 0);
@@ -2172,20 +2172,20 @@ list.sort
key as keyfunc: object = None
reverse: bool(accept={int}) = False
-Sort the list in ascending order and return None.
-
-The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
-order of two equal elements is maintained).
-
-If a key function is given, apply it once to each list item and sort them,
-ascending or descending, according to their function values.
-
-The reverse flag can be set to sort in descending order.
+Sort the list in ascending order and return None.
+
+The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
+order of two equal elements is maintained).
+
+If a key function is given, apply it once to each list item and sort them,
+ascending or descending, according to their function values.
+
+The reverse flag can be set to sort in descending order.
[clinic start generated code]*/
static PyObject *
list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)
-/*[clinic end generated code: output=57b9f9c5e23fbe42 input=cb56cd179a713060]*/
+/*[clinic end generated code: output=57b9f9c5e23fbe42 input=cb56cd179a713060]*/
{
MergeState ms;
Py_ssize_t nremaining;
@@ -2211,7 +2211,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)
saved_ob_size = Py_SIZE(self);
saved_ob_item = self->ob_item;
saved_allocated = self->allocated;
- Py_SET_SIZE(self, 0);
+ Py_SET_SIZE(self, 0);
self->ob_item = NULL;
self->allocated = -1; /* any operation will reset it to >= 0 */
@@ -2233,7 +2233,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)
}
for (i = 0; i < saved_ob_size ; i++) {
- keys[i] = PyObject_CallOneArg(keyfunc, saved_ob_item[i]);
+ keys[i] = PyObject_CallOneArg(keyfunc, saved_ob_item[i]);
if (keys[i] == NULL) {
for (i=i-1 ; i>=0 ; i--)
Py_DECREF(keys[i]);
@@ -2254,12 +2254,12 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)
* set ms appropriately. */
if (saved_ob_size > 1) {
/* Assume the first element is representative of the whole list. */
- int keys_are_in_tuples = (Py_IS_TYPE(lo.keys[0], &PyTuple_Type) &&
+ int keys_are_in_tuples = (Py_IS_TYPE(lo.keys[0], &PyTuple_Type) &&
Py_SIZE(lo.keys[0]) > 0);
PyTypeObject* key_type = (keys_are_in_tuples ?
- Py_TYPE(PyTuple_GET_ITEM(lo.keys[0], 0)) :
- Py_TYPE(lo.keys[0]));
+ Py_TYPE(PyTuple_GET_ITEM(lo.keys[0], 0)) :
+ Py_TYPE(lo.keys[0]));
int keys_are_all_same_type = 1;
int strings_are_latin = 1;
@@ -2269,7 +2269,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)
for (i=0; i < saved_ob_size; i++) {
if (keys_are_in_tuples &&
- !(Py_IS_TYPE(lo.keys[i], &PyTuple_Type) && Py_SIZE(lo.keys[i]) != 0)) {
+ !(Py_IS_TYPE(lo.keys[i], &PyTuple_Type) && Py_SIZE(lo.keys[i]) != 0)) {
keys_are_in_tuples = 0;
keys_are_all_same_type = 0;
break;
@@ -2282,29 +2282,29 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)
PyTuple_GET_ITEM(lo.keys[i], 0) :
lo.keys[i]);
- if (!Py_IS_TYPE(key, key_type)) {
+ if (!Py_IS_TYPE(key, key_type)) {
keys_are_all_same_type = 0;
- /* If keys are in tuple we must loop over the whole list to make
- sure all items are tuples */
- if (!keys_are_in_tuples) {
- break;
- }
+ /* If keys are in tuple we must loop over the whole list to make
+ sure all items are tuples */
+ if (!keys_are_in_tuples) {
+ break;
+ }
}
- if (keys_are_all_same_type) {
- if (key_type == &PyLong_Type &&
- ints_are_bounded &&
- Py_ABS(Py_SIZE(key)) > 1) {
-
+ if (keys_are_all_same_type) {
+ if (key_type == &PyLong_Type &&
+ ints_are_bounded &&
+ Py_ABS(Py_SIZE(key)) > 1) {
+
ints_are_bounded = 0;
- }
- else if (key_type == &PyUnicode_Type &&
- strings_are_latin &&
- PyUnicode_KIND(key) != PyUnicode_1BYTE_KIND) {
-
- strings_are_latin = 0;
- }
- }
+ }
+ else if (key_type == &PyUnicode_Type &&
+ strings_are_latin &&
+ PyUnicode_KIND(key) != PyUnicode_1BYTE_KIND) {
+
+ strings_are_latin = 0;
+ }
+ }
}
/* Choose the best compare, given what we now know about the keys. */
@@ -2333,12 +2333,12 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)
if (keys_are_in_tuples) {
/* Make sure we're not dealing with tuples of tuples
* (remember: here, key_type refers list [key[0] for key in keys]) */
- if (key_type == &PyTuple_Type) {
+ if (key_type == &PyTuple_Type) {
ms.tuple_elem_compare = safe_object_compare;
- }
- else {
+ }
+ else {
ms.tuple_elem_compare = ms.key_compare;
- }
+ }
ms.key_compare = unsafe_tuple_compare;
}
@@ -2428,7 +2428,7 @@ fail:
keyfunc_fail:
final_ob_item = self->ob_item;
i = Py_SIZE(self);
- Py_SET_SIZE(self, saved_ob_size);
+ Py_SET_SIZE(self, saved_ob_size);
self->ob_item = saved_ob_item;
self->allocated = saved_allocated;
if (final_ob_item != NULL) {
@@ -2495,7 +2495,7 @@ PyList_AsTuple(PyObject *v)
PyErr_BadInternalCall();
return NULL;
}
- return _PyTuple_FromArray(((PyListObject *)v)->ob_item, Py_SIZE(v));
+ return _PyTuple_FromArray(((PyListObject *)v)->ob_item, Py_SIZE(v));
}
/*[clinic input]
@@ -2529,10 +2529,10 @@ list_index_impl(PyListObject *self, PyObject *value, Py_ssize_t start,
stop = 0;
}
for (i = start; i < stop && i < Py_SIZE(self); i++) {
- PyObject *obj = self->ob_item[i];
- Py_INCREF(obj);
- int cmp = PyObject_RichCompareBool(obj, value, Py_EQ);
- Py_DECREF(obj);
+ PyObject *obj = self->ob_item[i];
+ Py_INCREF(obj);
+ int cmp = PyObject_RichCompareBool(obj, value, Py_EQ);
+ Py_DECREF(obj);
if (cmp > 0)
return PyLong_FromSsize_t(i);
else if (cmp < 0)
@@ -2559,14 +2559,14 @@ list_count(PyListObject *self, PyObject *value)
Py_ssize_t i;
for (i = 0; i < Py_SIZE(self); i++) {
- PyObject *obj = self->ob_item[i];
- if (obj == value) {
- count++;
- continue;
- }
- Py_INCREF(obj);
- int cmp = PyObject_RichCompareBool(obj, value, Py_EQ);
- Py_DECREF(obj);
+ PyObject *obj = self->ob_item[i];
+ if (obj == value) {
+ count++;
+ continue;
+ }
+ Py_INCREF(obj);
+ int cmp = PyObject_RichCompareBool(obj, value, Py_EQ);
+ Py_DECREF(obj);
if (cmp > 0)
count++;
else if (cmp < 0)
@@ -2593,10 +2593,10 @@ list_remove(PyListObject *self, PyObject *value)
Py_ssize_t i;
for (i = 0; i < Py_SIZE(self); i++) {
- PyObject *obj = self->ob_item[i];
- Py_INCREF(obj);
- int cmp = PyObject_RichCompareBool(obj, value, Py_EQ);
- Py_DECREF(obj);
+ PyObject *obj = self->ob_item[i];
+ Py_INCREF(obj);
+ int cmp = PyObject_RichCompareBool(obj, value, Py_EQ);
+ Py_DECREF(obj);
if (cmp > 0) {
if (list_ass_slice(self, i, i+1,
(PyObject *)NULL) == 0)
@@ -2642,17 +2642,17 @@ list_richcompare(PyObject *v, PyObject *w, int op)
/* Search for the first index where items are different */
for (i = 0; i < Py_SIZE(vl) && i < Py_SIZE(wl); i++) {
- PyObject *vitem = vl->ob_item[i];
- PyObject *witem = wl->ob_item[i];
- if (vitem == witem) {
- continue;
- }
-
- Py_INCREF(vitem);
- Py_INCREF(witem);
- int k = PyObject_RichCompareBool(vitem, witem, Py_EQ);
- Py_DECREF(vitem);
- Py_DECREF(witem);
+ PyObject *vitem = vl->ob_item[i];
+ PyObject *witem = wl->ob_item[i];
+ if (vitem == witem) {
+ continue;
+ }
+
+ Py_INCREF(vitem);
+ Py_INCREF(witem);
+ int k = PyObject_RichCompareBool(vitem, witem, Py_EQ);
+ Py_DECREF(vitem);
+ Py_DECREF(witem);
if (k < 0)
return NULL;
if (!k)
@@ -2703,19 +2703,19 @@ list___init___impl(PyListObject *self, PyObject *iterable)
(void)_list_clear(self);
}
if (iterable != NULL) {
- if (_PyObject_HasLen(iterable)) {
- Py_ssize_t iter_len = PyObject_Size(iterable);
- if (iter_len == -1) {
- if (!PyErr_ExceptionMatches(PyExc_TypeError)) {
- return -1;
- }
- PyErr_Clear();
- }
- if (iter_len > 0 && self->ob_item == NULL
- && list_preallocate_exact(self, iter_len)) {
- return -1;
- }
- }
+ if (_PyObject_HasLen(iterable)) {
+ Py_ssize_t iter_len = PyObject_Size(iterable);
+ if (iter_len == -1) {
+ if (!PyErr_ExceptionMatches(PyExc_TypeError)) {
+ return -1;
+ }
+ PyErr_Clear();
+ }
+ if (iter_len > 0 && self->ob_item == NULL
+ && list_preallocate_exact(self, iter_len)) {
+ return -1;
+ }
+ }
PyObject *rv = list_extend(self, iterable);
if (rv == NULL)
return -1;
@@ -2724,33 +2724,33 @@ list___init___impl(PyListObject *self, PyObject *iterable)
return 0;
}
-static PyObject *
-list_vectorcall(PyObject *type, PyObject * const*args,
- size_t nargsf, PyObject *kwnames)
-{
- if (!_PyArg_NoKwnames("list", kwnames)) {
- return NULL;
- }
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (!_PyArg_CheckPositional("list", nargs, 0, 1)) {
- return NULL;
- }
-
- assert(PyType_Check(type));
- PyObject *list = PyType_GenericAlloc((PyTypeObject *)type, 0);
- if (list == NULL) {
- return NULL;
- }
- if (nargs) {
- if (list___init___impl((PyListObject *)list, args[0])) {
- Py_DECREF(list);
- return NULL;
- }
- }
- return list;
-}
-
-
+static PyObject *
+list_vectorcall(PyObject *type, PyObject * const*args,
+ size_t nargsf, PyObject *kwnames)
+{
+ if (!_PyArg_NoKwnames("list", kwnames)) {
+ return NULL;
+ }
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (!_PyArg_CheckPositional("list", nargs, 0, 1)) {
+ return NULL;
+ }
+
+ assert(PyType_Check(type));
+ PyObject *list = PyType_GenericAlloc((PyTypeObject *)type, 0);
+ if (list == NULL) {
+ return NULL;
+ }
+ if (nargs) {
+ if (list___init___impl((PyListObject *)list, args[0])) {
+ Py_DECREF(list);
+ return NULL;
+ }
+ }
+ return list;
+}
+
+
/*[clinic input]
list.__sizeof__
@@ -2785,7 +2785,7 @@ static PyMethodDef list_methods[] = {
LIST_COUNT_METHODDEF
LIST_REVERSE_METHODDEF
LIST_SORT_METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -2805,7 +2805,7 @@ static PySequenceMethods list_as_sequence = {
static PyObject *
list_subscript(PyListObject* self, PyObject* item)
{
- if (_PyIndex_Check(item)) {
+ if (_PyIndex_Check(item)) {
Py_ssize_t i;
i = PyNumber_AsSsize_t(item, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
@@ -2815,8 +2815,8 @@ list_subscript(PyListObject* self, PyObject* item)
return list_item(self, i);
}
else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelength, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelength, i;
+ size_t cur;
PyObject* result;
PyObject* it;
PyObject **src, **dest;
@@ -2834,7 +2834,7 @@ list_subscript(PyListObject* self, PyObject* item)
return list_slice(self, start, stop);
}
else {
- result = list_new_prealloc(slicelength);
+ result = list_new_prealloc(slicelength);
if (!result) return NULL;
src = self->ob_item;
@@ -2845,14 +2845,14 @@ list_subscript(PyListObject* self, PyObject* item)
Py_INCREF(it);
dest[i] = it;
}
- Py_SET_SIZE(result, slicelength);
+ Py_SET_SIZE(result, slicelength);
return result;
}
}
else {
PyErr_Format(PyExc_TypeError,
"list indices must be integers or slices, not %.200s",
- Py_TYPE(item)->tp_name);
+ Py_TYPE(item)->tp_name);
return NULL;
}
}
@@ -2860,7 +2860,7 @@ list_subscript(PyListObject* self, PyObject* item)
static int
list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
{
- if (_PyIndex_Check(item)) {
+ if (_PyIndex_Check(item)) {
Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
return -1;
@@ -2938,7 +2938,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
sizeof(PyObject *));
}
- Py_SET_SIZE(self, Py_SIZE(self) - slicelength);
+ Py_SET_SIZE(self, Py_SIZE(self) - slicelength);
res = list_resize(self, Py_SIZE(self));
for (i = 0; i < slicelength; i++) {
@@ -2952,8 +2952,8 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
/* assign slice */
PyObject *ins, *seq;
PyObject **garbage, **seqitems, **selfitems;
- Py_ssize_t i;
- size_t cur;
+ Py_ssize_t i;
+ size_t cur;
/* protect against a[::-1] = a */
if (self == (PyListObject*)value) {
@@ -3015,7 +3015,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
else {
PyErr_Format(PyExc_TypeError,
"list indices must be integers or slices, not %.200s",
- Py_TYPE(item)->tp_name);
+ Py_TYPE(item)->tp_name);
return -1;
}
}
@@ -3032,10 +3032,10 @@ PyTypeObject PyList_Type = {
sizeof(PyListObject),
0,
(destructor)list_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)list_repr, /* tp_repr */
0, /* tp_as_number */
&list_as_sequence, /* tp_as_sequence */
@@ -3067,7 +3067,7 @@ PyTypeObject PyList_Type = {
PyType_GenericAlloc, /* tp_alloc */
PyType_GenericNew, /* tp_new */
PyObject_GC_Del, /* tp_free */
- .tp_vectorcall = list_vectorcall,
+ .tp_vectorcall = list_vectorcall,
};
/*********************** List Iterator **************************/
@@ -3081,9 +3081,9 @@ typedef struct {
static void listiter_dealloc(listiterobject *);
static int listiter_traverse(listiterobject *, visitproc, void *);
static PyObject *listiter_next(listiterobject *);
-static PyObject *listiter_len(listiterobject *, PyObject *);
+static PyObject *listiter_len(listiterobject *, PyObject *);
static PyObject *listiter_reduce_general(void *_it, int forward);
-static PyObject *listiter_reduce(listiterobject *, PyObject *);
+static PyObject *listiter_reduce(listiterobject *, PyObject *);
static PyObject *listiter_setstate(listiterobject *, PyObject *state);
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
@@ -3104,10 +3104,10 @@ PyTypeObject PyListIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)listiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3190,7 +3190,7 @@ listiter_next(listiterobject *it)
}
static PyObject *
-listiter_len(listiterobject *it, PyObject *Py_UNUSED(ignored))
+listiter_len(listiterobject *it, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len;
if (it->it_seq) {
@@ -3202,7 +3202,7 @@ listiter_len(listiterobject *it, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-listiter_reduce(listiterobject *it, PyObject *Py_UNUSED(ignored))
+listiter_reduce(listiterobject *it, PyObject *Py_UNUSED(ignored))
{
return listiter_reduce_general(it, 1);
}
@@ -3234,8 +3234,8 @@ typedef struct {
static void listreviter_dealloc(listreviterobject *);
static int listreviter_traverse(listreviterobject *, visitproc, void *);
static PyObject *listreviter_next(listreviterobject *);
-static PyObject *listreviter_len(listreviterobject *, PyObject *);
-static PyObject *listreviter_reduce(listreviterobject *, PyObject *);
+static PyObject *listreviter_len(listreviterobject *, PyObject *);
+static PyObject *listreviter_reduce(listreviterobject *, PyObject *);
static PyObject *listreviter_setstate(listreviterobject *, PyObject *);
static PyMethodDef listreviter_methods[] = {
@@ -3252,10 +3252,10 @@ PyTypeObject PyListRevIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)listreviter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3344,7 +3344,7 @@ listreviter_next(listreviterobject *it)
}
static PyObject *
-listreviter_len(listreviterobject *it, PyObject *Py_UNUSED(ignored))
+listreviter_len(listreviterobject *it, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len = it->it_index + 1;
if (it->it_seq == NULL || PyList_GET_SIZE(it->it_seq) < len)
@@ -3353,7 +3353,7 @@ listreviter_len(listreviterobject *it, PyObject *Py_UNUSED(ignored))
}
static PyObject *
-listreviter_reduce(listreviterobject *it, PyObject *Py_UNUSED(ignored))
+listreviter_reduce(listreviterobject *it, PyObject *Py_UNUSED(ignored))
{
return listiter_reduce_general(it, 0);
}
@@ -3379,25 +3379,25 @@ listreviter_setstate(listreviterobject *it, PyObject *state)
static PyObject *
listiter_reduce_general(void *_it, int forward)
{
- _Py_IDENTIFIER(iter);
- _Py_IDENTIFIER(reversed);
+ _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(reversed);
PyObject *list;
/* the objects are not the same, index is of different types! */
if (forward) {
listiterobject *it = (listiterobject *)_it;
if (it->it_seq)
- return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
+ return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
it->it_seq, it->it_index);
} else {
listreviterobject *it = (listreviterobject *)_it;
if (it->it_seq)
- return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_reversed),
+ return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_reversed),
it->it_seq, it->it_index);
}
/* empty iterator, create an empty list */
list = PyList_New(0);
if (list == NULL)
return NULL;
- return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
+ return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
}
diff --git a/contrib/tools/python3/src/Objects/longobject.c b/contrib/tools/python3/src/Objects/longobject.c
index 567cfd1a91..cf13b2c430 100644
--- a/contrib/tools/python3/src/Objects/longobject.c
+++ b/contrib/tools/python3/src/Objects/longobject.c
@@ -3,8 +3,8 @@
/* XXX The functional organization of this file is terrible */
#include "Python.h"
-#include "pycore_interp.h" // _PY_NSMALLPOSINTS
-#include "pycore_pystate.h" // _Py_IsMainInterpreter()
+#include "pycore_interp.h" // _PY_NSMALLPOSINTS
+#include "pycore_pystate.h" // _Py_IsMainInterpreter()
#include "longintrepr.h"
#include <float.h>
@@ -17,8 +17,8 @@ class int "PyObject *" "&PyLong_Type"
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=ec0275e3422a36e3]*/
-#define NSMALLPOSINTS _PY_NSMALLPOSINTS
-#define NSMALLNEGINTS _PY_NSMALLNEGINTS
+#define NSMALLPOSINTS _PY_NSMALLPOSINTS
+#define NSMALLNEGINTS _PY_NSMALLNEGINTS
_Py_IDENTIFIER(little);
_Py_IDENTIFIER(big);
@@ -33,15 +33,15 @@ PyObject *_PyLong_Zero = NULL;
PyObject *_PyLong_One = NULL;
#if NSMALLNEGINTS + NSMALLPOSINTS > 0
-#define IS_SMALL_INT(ival) (-NSMALLNEGINTS <= (ival) && (ival) < NSMALLPOSINTS)
-#define IS_SMALL_UINT(ival) ((ival) < NSMALLPOSINTS)
+#define IS_SMALL_INT(ival) (-NSMALLNEGINTS <= (ival) && (ival) < NSMALLPOSINTS)
+#define IS_SMALL_UINT(ival) ((ival) < NSMALLPOSINTS)
static PyObject *
get_small_int(sdigit ival)
{
- assert(IS_SMALL_INT(ival));
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *v = (PyObject*)tstate->interp->small_ints[ival + NSMALLNEGINTS];
+ assert(IS_SMALL_INT(ival));
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *v = (PyObject*)tstate->interp->small_ints[ival + NSMALLNEGINTS];
Py_INCREF(v);
return v;
}
@@ -51,7 +51,7 @@ maybe_small_long(PyLongObject *v)
{
if (v && Py_ABS(Py_SIZE(v)) <= 1) {
sdigit ival = MEDIUM_VALUE(v);
- if (IS_SMALL_INT(ival)) {
+ if (IS_SMALL_INT(ival)) {
Py_DECREF(v);
return (PyLongObject *)get_small_int(ival);
}
@@ -59,9 +59,9 @@ maybe_small_long(PyLongObject *v)
return v;
}
#else
-#define IS_SMALL_INT(ival) 0
-#define IS_SMALL_UINT(ival) 0
-#define get_small_int(ival) (Py_UNREACHABLE(), NULL)
+#define IS_SMALL_INT(ival) 0
+#define IS_SMALL_UINT(ival) 0
+#define get_small_int(ival) (Py_UNREACHABLE(), NULL)
#define maybe_small_long(val) (val)
#endif
@@ -74,7 +74,7 @@ _PyLong_Negate(PyLongObject **x_p)
x = (PyLongObject *)*x_p;
if (Py_REFCNT(x) == 1) {
- Py_SET_SIZE(x, -Py_SIZE(x));
+ Py_SET_SIZE(x, -Py_SIZE(x));
return;
}
@@ -113,9 +113,9 @@ long_normalize(PyLongObject *v)
while (i > 0 && v->ob_digit[i-1] == 0)
--i;
- if (i != j) {
- Py_SET_SIZE(v, (Py_SIZE(v) < 0) ? -(i) : i);
- }
+ if (i != j) {
+ Py_SET_SIZE(v, (Py_SIZE(v) < 0) ? -(i) : i);
+ }
return v;
}
@@ -124,7 +124,7 @@ long_normalize(PyLongObject *v)
nb_int slot is not available or the result of the call to nb_int
returns something not of type int.
*/
-PyObject *
+PyObject *
_PyLong_FromNbInt(PyObject *integral)
{
PyNumberMethods *nb;
@@ -133,7 +133,7 @@ _PyLong_FromNbInt(PyObject *integral)
/* Fast path for the case that we already have an int. */
if (PyLong_CheckExact(integral)) {
Py_INCREF(integral);
- return integral;
+ return integral;
}
nb = Py_TYPE(integral)->tp_as_number;
@@ -148,11 +148,11 @@ _PyLong_FromNbInt(PyObject *integral)
of exact type int. */
result = nb->nb_int(integral);
if (!result || PyLong_CheckExact(result))
- return result;
+ return result;
if (!PyLong_Check(result)) {
PyErr_Format(PyExc_TypeError,
"__int__ returned non-int (type %.200s)",
- Py_TYPE(result)->tp_name);
+ Py_TYPE(result)->tp_name);
Py_DECREF(result);
return NULL;
}
@@ -161,81 +161,81 @@ _PyLong_FromNbInt(PyObject *integral)
"__int__ returned non-int (type %.200s). "
"The ability to return an instance of a strict subclass of int "
"is deprecated, and may be removed in a future version of Python.",
- Py_TYPE(result)->tp_name)) {
+ Py_TYPE(result)->tp_name)) {
Py_DECREF(result);
return NULL;
}
- return result;
+ return result;
}
-/* Convert the given object to a PyLongObject using the nb_index or
- nb_int slots, if available (the latter is deprecated).
- Raise TypeError if either nb_index and nb_int slots are not
- available or the result of the call to nb_index or nb_int
- returns something not of type int.
- Should be replaced with PyNumber_Index after the end of the
- deprecation period.
-*/
-PyObject *
-_PyLong_FromNbIndexOrNbInt(PyObject *integral)
-{
- PyNumberMethods *nb;
- PyObject *result;
-
- /* Fast path for the case that we already have an int. */
- if (PyLong_CheckExact(integral)) {
- Py_INCREF(integral);
- return integral;
- }
-
- nb = Py_TYPE(integral)->tp_as_number;
- if (nb == NULL || (nb->nb_index == NULL && nb->nb_int == NULL)) {
- PyErr_Format(PyExc_TypeError,
- "an integer is required (got type %.200s)",
- Py_TYPE(integral)->tp_name);
- return NULL;
- }
-
- if (nb->nb_index) {
- /* Convert using the nb_index slot, which should return something
- of exact type int. */
- result = nb->nb_index(integral);
- if (!result || PyLong_CheckExact(result))
- return result;
- if (!PyLong_Check(result)) {
- PyErr_Format(PyExc_TypeError,
- "__index__ returned non-int (type %.200s)",
- Py_TYPE(result)->tp_name);
- Py_DECREF(result);
- return NULL;
- }
- /* Issue #17576: warn if 'result' not of exact type int. */
- if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
- "__index__ returned non-int (type %.200s). "
- "The ability to return an instance of a strict subclass of int "
- "is deprecated, and may be removed in a future version of Python.",
- Py_TYPE(result)->tp_name))
- {
- Py_DECREF(result);
- return NULL;
- }
- return result;
- }
-
- result = _PyLong_FromNbInt(integral);
- if (result && PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
- "an integer is required (got type %.200s). "
- "Implicit conversion to integers using __int__ is deprecated, "
- "and may be removed in a future version of Python.",
- Py_TYPE(integral)->tp_name))
- {
- Py_DECREF(result);
- return NULL;
- }
- return result;
-}
-
-
+/* Convert the given object to a PyLongObject using the nb_index or
+ nb_int slots, if available (the latter is deprecated).
+ Raise TypeError if either nb_index and nb_int slots are not
+ available or the result of the call to nb_index or nb_int
+ returns something not of type int.
+ Should be replaced with PyNumber_Index after the end of the
+ deprecation period.
+*/
+PyObject *
+_PyLong_FromNbIndexOrNbInt(PyObject *integral)
+{
+ PyNumberMethods *nb;
+ PyObject *result;
+
+ /* Fast path for the case that we already have an int. */
+ if (PyLong_CheckExact(integral)) {
+ Py_INCREF(integral);
+ return integral;
+ }
+
+ nb = Py_TYPE(integral)->tp_as_number;
+ if (nb == NULL || (nb->nb_index == NULL && nb->nb_int == NULL)) {
+ PyErr_Format(PyExc_TypeError,
+ "an integer is required (got type %.200s)",
+ Py_TYPE(integral)->tp_name);
+ return NULL;
+ }
+
+ if (nb->nb_index) {
+ /* Convert using the nb_index slot, which should return something
+ of exact type int. */
+ result = nb->nb_index(integral);
+ if (!result || PyLong_CheckExact(result))
+ return result;
+ if (!PyLong_Check(result)) {
+ PyErr_Format(PyExc_TypeError,
+ "__index__ returned non-int (type %.200s)",
+ Py_TYPE(result)->tp_name);
+ Py_DECREF(result);
+ return NULL;
+ }
+ /* Issue #17576: warn if 'result' not of exact type int. */
+ if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
+ "__index__ returned non-int (type %.200s). "
+ "The ability to return an instance of a strict subclass of int "
+ "is deprecated, and may be removed in a future version of Python.",
+ Py_TYPE(result)->tp_name))
+ {
+ Py_DECREF(result);
+ return NULL;
+ }
+ return result;
+ }
+
+ result = _PyLong_FromNbInt(integral);
+ if (result && PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
+ "an integer is required (got type %.200s). "
+ "Implicit conversion to integers using __int__ is deprecated, "
+ "and may be removed in a future version of Python.",
+ Py_TYPE(integral)->tp_name))
+ {
+ Py_DECREF(result);
+ return NULL;
+ }
+ return result;
+}
+
+
/* Allocate a new int object with size digits.
Return NULL and set exception if we run out of memory. */
@@ -277,16 +277,16 @@ _PyLong_Copy(PyLongObject *src)
i = -(i);
if (i < 2) {
sdigit ival = MEDIUM_VALUE(src);
- if (IS_SMALL_INT(ival)) {
- return get_small_int(ival);
- }
+ if (IS_SMALL_INT(ival)) {
+ return get_small_int(ival);
+ }
}
result = _PyLong_New(i);
if (result != NULL) {
- Py_SET_SIZE(result, Py_SIZE(src));
- while (--i >= 0) {
+ Py_SET_SIZE(result, Py_SIZE(src));
+ while (--i >= 0) {
result->ob_digit[i] = src->ob_digit[i];
- }
+ }
}
return (PyObject *)result;
}
@@ -302,9 +302,9 @@ PyLong_FromLong(long ival)
int ndigits = 0;
int sign;
- if (IS_SMALL_INT(ival)) {
- return get_small_int((sdigit)ival);
- }
+ if (IS_SMALL_INT(ival)) {
+ return get_small_int((sdigit)ival);
+ }
if (ival < 0) {
/* negate: can't write this as abs_ival = -ival since that
@@ -321,7 +321,7 @@ PyLong_FromLong(long ival)
if (!(abs_ival >> PyLong_SHIFT)) {
v = _PyLong_New(1);
if (v) {
- Py_SET_SIZE(v, sign);
+ Py_SET_SIZE(v, sign);
v->ob_digit[0] = Py_SAFE_DOWNCAST(
abs_ival, unsigned long, digit);
}
@@ -333,7 +333,7 @@ PyLong_FromLong(long ival)
if (!(abs_ival >> 2*PyLong_SHIFT)) {
v = _PyLong_New(2);
if (v) {
- Py_SET_SIZE(v, 2 * sign);
+ Py_SET_SIZE(v, 2 * sign);
v->ob_digit[0] = Py_SAFE_DOWNCAST(
abs_ival & PyLong_MASK, unsigned long, digit);
v->ob_digit[1] = Py_SAFE_DOWNCAST(
@@ -352,7 +352,7 @@ PyLong_FromLong(long ival)
v = _PyLong_New(ndigits);
if (v != NULL) {
digit *p = v->ob_digit;
- Py_SET_SIZE(v, ndigits * sign);
+ Py_SET_SIZE(v, ndigits * sign);
t = abs_ival;
while (t) {
*p++ = Py_SAFE_DOWNCAST(
@@ -363,74 +363,74 @@ PyLong_FromLong(long ival)
return (PyObject *)v;
}
-#define PYLONG_FROM_UINT(INT_TYPE, ival) \
- do { \
- if (IS_SMALL_UINT(ival)) { \
- return get_small_int((sdigit)(ival)); \
- } \
- /* Count the number of Python digits. */ \
- Py_ssize_t ndigits = 0; \
- INT_TYPE t = (ival); \
- while (t) { \
- ++ndigits; \
- t >>= PyLong_SHIFT; \
- } \
- PyLongObject *v = _PyLong_New(ndigits); \
- if (v == NULL) { \
- return NULL; \
- } \
- digit *p = v->ob_digit; \
- while ((ival)) { \
- *p++ = (digit)((ival) & PyLong_MASK); \
- (ival) >>= PyLong_SHIFT; \
- } \
- return (PyObject *)v; \
- } while(0)
-
+#define PYLONG_FROM_UINT(INT_TYPE, ival) \
+ do { \
+ if (IS_SMALL_UINT(ival)) { \
+ return get_small_int((sdigit)(ival)); \
+ } \
+ /* Count the number of Python digits. */ \
+ Py_ssize_t ndigits = 0; \
+ INT_TYPE t = (ival); \
+ while (t) { \
+ ++ndigits; \
+ t >>= PyLong_SHIFT; \
+ } \
+ PyLongObject *v = _PyLong_New(ndigits); \
+ if (v == NULL) { \
+ return NULL; \
+ } \
+ digit *p = v->ob_digit; \
+ while ((ival)) { \
+ *p++ = (digit)((ival) & PyLong_MASK); \
+ (ival) >>= PyLong_SHIFT; \
+ } \
+ return (PyObject *)v; \
+ } while(0)
+
/* Create a new int object from a C unsigned long int */
PyObject *
PyLong_FromUnsignedLong(unsigned long ival)
{
- PYLONG_FROM_UINT(unsigned long, ival);
-}
-
-/* Create a new int object from a C unsigned long long int. */
-
-PyObject *
-PyLong_FromUnsignedLongLong(unsigned long long ival)
-{
- PYLONG_FROM_UINT(unsigned long long, ival);
+ PYLONG_FROM_UINT(unsigned long, ival);
+}
+
+/* Create a new int object from a C unsigned long long int. */
+
+PyObject *
+PyLong_FromUnsignedLongLong(unsigned long long ival)
+{
+ PYLONG_FROM_UINT(unsigned long long, ival);
+}
+
+/* Create a new int object from a C size_t. */
+
+PyObject *
+PyLong_FromSize_t(size_t ival)
+{
+ PYLONG_FROM_UINT(size_t, ival);
}
-/* Create a new int object from a C size_t. */
-
-PyObject *
-PyLong_FromSize_t(size_t ival)
-{
- PYLONG_FROM_UINT(size_t, ival);
-}
-
/* Create a new int object from a C double */
PyObject *
PyLong_FromDouble(double dval)
{
- /* Try to get out cheap if this fits in a long. When a finite value of real
- * floating type is converted to an integer type, the value is truncated
- * toward zero. If the value of the integral part cannot be represented by
- * the integer type, the behavior is undefined. Thus, we must check that
- * value is in range (LONG_MIN - 1, LONG_MAX + 1). If a long has more bits
- * of precision than a double, casting LONG_MIN - 1 to double may yield an
- * approximation, but LONG_MAX + 1 is a power of two and can be represented
- * as double exactly (assuming FLT_RADIX is 2 or 16), so for simplicity
- * check against [-(LONG_MAX + 1), LONG_MAX + 1).
- */
- const double int_max = (unsigned long)LONG_MAX + 1;
- if (-int_max < dval && dval < int_max) {
- return PyLong_FromLong((long)dval);
- }
-
+ /* Try to get out cheap if this fits in a long. When a finite value of real
+ * floating type is converted to an integer type, the value is truncated
+ * toward zero. If the value of the integral part cannot be represented by
+ * the integer type, the behavior is undefined. Thus, we must check that
+ * value is in range (LONG_MIN - 1, LONG_MAX + 1). If a long has more bits
+ * of precision than a double, casting LONG_MIN - 1 to double may yield an
+ * approximation, but LONG_MAX + 1 is a power of two and can be represented
+ * as double exactly (assuming FLT_RADIX is 2 or 16), so for simplicity
+ * check against [-(LONG_MAX + 1), LONG_MAX + 1).
+ */
+ const double int_max = (unsigned long)LONG_MAX + 1;
+ if (-int_max < dval && dval < int_max) {
+ return PyLong_FromLong((long)dval);
+ }
+
PyLongObject *v;
double frac;
int i, ndig, expo, neg;
@@ -450,7 +450,7 @@ PyLong_FromDouble(double dval)
dval = -dval;
}
frac = frexp(dval, &expo); /* dval = frac*2**expo; 0.0 <= frac < 1.0 */
- assert(expo > 0);
+ assert(expo > 0);
ndig = (expo-1) / PyLong_SHIFT + 1; /* Number of 'digits' in result */
v = _PyLong_New(ndig);
if (v == NULL)
@@ -462,9 +462,9 @@ PyLong_FromDouble(double dval)
frac = frac - (double)bits;
frac = ldexp(frac, PyLong_SHIFT);
}
- if (neg) {
- Py_SET_SIZE(v, -(Py_SIZE(v)));
- }
+ if (neg) {
+ Py_SET_SIZE(v, -(Py_SIZE(v)));
+ }
return (PyObject *)v;
}
@@ -511,7 +511,7 @@ PyLong_AsLongAndOverflow(PyObject *vv, int *overflow)
v = (PyLongObject *)vv;
}
else {
- v = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(vv);
+ v = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(vv);
if (v == NULL)
return -1;
do_decref = 1;
@@ -791,7 +791,7 @@ PyLong_AsUnsignedLongMask(PyObject *op)
return _PyLong_AsUnsignedLongMask(op);
}
- lo = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(op);
+ lo = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(op);
if (lo == NULL)
return (unsigned long)-1;
@@ -828,7 +828,7 @@ _PyLong_NumBits(PyObject *vv)
if ((size_t)(ndigits - 1) > SIZE_MAX / (size_t)PyLong_SHIFT)
goto Overflow;
result = (size_t)(ndigits - 1) * (size_t)PyLong_SHIFT;
- msd_bits = _Py_bit_length(msd);
+ msd_bits = _Py_bit_length(msd);
if (SIZE_MAX - msd_bits < result)
goto Overflow;
result += msd_bits;
@@ -948,7 +948,7 @@ _PyLong_FromByteArray(const unsigned char* bytes, size_t n,
}
}
- Py_SET_SIZE(v, is_signed ? -idigit : idigit);
+ Py_SET_SIZE(v, is_signed ? -idigit : idigit);
return (PyObject *)long_normalize(v);
}
@@ -1137,7 +1137,7 @@ PyLong_AsVoidPtr(PyObject *vv)
* rewritten to use the newer PyLong_{As,From}ByteArray API.
*/
-#define PY_ABS_LLONG_MIN (0-(unsigned long long)LLONG_MIN)
+#define PY_ABS_LLONG_MIN (0-(unsigned long long)LLONG_MIN)
/* Create a new int object from a C long long int. */
@@ -1150,10 +1150,10 @@ PyLong_FromLongLong(long long ival)
int ndigits = 0;
int negative = 0;
- if (IS_SMALL_INT(ival)) {
- return get_small_int((sdigit)ival);
- }
-
+ if (IS_SMALL_INT(ival)) {
+ return get_small_int((sdigit)ival);
+ }
+
if (ival < 0) {
/* avoid signed overflow on negation; see comments
in PyLong_FromLong above. */
@@ -1176,7 +1176,7 @@ PyLong_FromLongLong(long long ival)
v = _PyLong_New(ndigits);
if (v != NULL) {
digit *p = v->ob_digit;
- Py_SET_SIZE(v, negative ? -ndigits : ndigits);
+ Py_SET_SIZE(v, negative ? -ndigits : ndigits);
t = abs_ival;
while (t) {
*p++ = (digit)(t & PyLong_MASK);
@@ -1197,10 +1197,10 @@ PyLong_FromSsize_t(Py_ssize_t ival)
int ndigits = 0;
int negative = 0;
- if (IS_SMALL_INT(ival)) {
- return get_small_int((sdigit)ival);
- }
-
+ if (IS_SMALL_INT(ival)) {
+ return get_small_int((sdigit)ival);
+ }
+
if (ival < 0) {
/* avoid signed overflow when ival = SIZE_T_MIN */
abs_ival = (size_t)(-1-ival)+1;
@@ -1219,7 +1219,7 @@ PyLong_FromSsize_t(Py_ssize_t ival)
v = _PyLong_New(ndigits);
if (v != NULL) {
digit *p = v->ob_digit;
- Py_SET_SIZE(v, negative ? -ndigits : ndigits);
+ Py_SET_SIZE(v, negative ? -ndigits : ndigits);
t = abs_ival;
while (t) {
*p++ = (digit)(t & PyLong_MASK);
@@ -1249,7 +1249,7 @@ PyLong_AsLongLong(PyObject *vv)
v = (PyLongObject *)vv;
}
else {
- v = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(vv);
+ v = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(vv);
if (v == NULL)
return -1;
do_decref = 1;
@@ -1329,7 +1329,7 @@ _PyLong_AsUnsignedLongLongMask(PyObject *vv)
if (vv == NULL || !PyLong_Check(vv)) {
PyErr_BadInternalCall();
- return (unsigned long long) -1;
+ return (unsigned long long) -1;
}
v = (PyLongObject *)vv;
switch(Py_SIZE(v)) {
@@ -1357,14 +1357,14 @@ PyLong_AsUnsignedLongLongMask(PyObject *op)
if (op == NULL) {
PyErr_BadInternalCall();
- return (unsigned long long)-1;
+ return (unsigned long long)-1;
}
if (PyLong_Check(op)) {
return _PyLong_AsUnsignedLongLongMask(op);
}
- lo = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(op);
+ lo = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(op);
if (lo == NULL)
return (unsigned long long)-1;
@@ -1404,7 +1404,7 @@ PyLong_AsLongLongAndOverflow(PyObject *vv, int *overflow)
v = (PyLongObject *)vv;
}
else {
- v = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(vv);
+ v = (PyLongObject *)_PyLong_FromNbIndexOrNbInt(vv);
if (v == NULL)
return -1;
do_decref = 1;
@@ -1441,11 +1441,11 @@ PyLong_AsLongLongAndOverflow(PyObject *vv, int *overflow)
/* Haven't lost any bits, but casting to long requires extra
* care (see comment above).
*/
- if (x <= (unsigned long long)LLONG_MAX) {
+ if (x <= (unsigned long long)LLONG_MAX) {
res = (long long)x * sign;
}
else if (sign < 0 && x == PY_ABS_LLONG_MIN) {
- res = LLONG_MIN;
+ res = LLONG_MIN;
}
else {
*overflow = sign;
@@ -1459,102 +1459,102 @@ PyLong_AsLongLongAndOverflow(PyObject *vv, int *overflow)
return res;
}
-int
-_PyLong_UnsignedShort_Converter(PyObject *obj, void *ptr)
-{
- unsigned long uval;
-
- if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
- PyErr_SetString(PyExc_ValueError, "value must be positive");
- return 0;
- }
- uval = PyLong_AsUnsignedLong(obj);
- if (uval == (unsigned long)-1 && PyErr_Occurred())
- return 0;
- if (uval > USHRT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "Python int too large for C unsigned short");
- return 0;
- }
-
- *(unsigned short *)ptr = Py_SAFE_DOWNCAST(uval, unsigned long, unsigned short);
- return 1;
-}
-
-int
-_PyLong_UnsignedInt_Converter(PyObject *obj, void *ptr)
-{
- unsigned long uval;
-
- if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
- PyErr_SetString(PyExc_ValueError, "value must be positive");
- return 0;
- }
- uval = PyLong_AsUnsignedLong(obj);
- if (uval == (unsigned long)-1 && PyErr_Occurred())
- return 0;
- if (uval > UINT_MAX) {
- PyErr_SetString(PyExc_OverflowError,
- "Python int too large for C unsigned int");
- return 0;
- }
-
- *(unsigned int *)ptr = Py_SAFE_DOWNCAST(uval, unsigned long, unsigned int);
- return 1;
-}
-
-int
-_PyLong_UnsignedLong_Converter(PyObject *obj, void *ptr)
-{
- unsigned long uval;
-
- if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
- PyErr_SetString(PyExc_ValueError, "value must be positive");
- return 0;
- }
- uval = PyLong_AsUnsignedLong(obj);
- if (uval == (unsigned long)-1 && PyErr_Occurred())
- return 0;
-
- *(unsigned long *)ptr = uval;
- return 1;
-}
-
-int
-_PyLong_UnsignedLongLong_Converter(PyObject *obj, void *ptr)
-{
- unsigned long long uval;
-
- if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
- PyErr_SetString(PyExc_ValueError, "value must be positive");
- return 0;
- }
- uval = PyLong_AsUnsignedLongLong(obj);
- if (uval == (unsigned long long)-1 && PyErr_Occurred())
- return 0;
-
- *(unsigned long long *)ptr = uval;
- return 1;
-}
-
-int
-_PyLong_Size_t_Converter(PyObject *obj, void *ptr)
-{
- size_t uval;
-
- if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
- PyErr_SetString(PyExc_ValueError, "value must be positive");
- return 0;
- }
- uval = PyLong_AsSize_t(obj);
- if (uval == (size_t)-1 && PyErr_Occurred())
- return 0;
-
- *(size_t *)ptr = uval;
- return 1;
-}
-
-
+int
+_PyLong_UnsignedShort_Converter(PyObject *obj, void *ptr)
+{
+ unsigned long uval;
+
+ if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
+ PyErr_SetString(PyExc_ValueError, "value must be positive");
+ return 0;
+ }
+ uval = PyLong_AsUnsignedLong(obj);
+ if (uval == (unsigned long)-1 && PyErr_Occurred())
+ return 0;
+ if (uval > USHRT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "Python int too large for C unsigned short");
+ return 0;
+ }
+
+ *(unsigned short *)ptr = Py_SAFE_DOWNCAST(uval, unsigned long, unsigned short);
+ return 1;
+}
+
+int
+_PyLong_UnsignedInt_Converter(PyObject *obj, void *ptr)
+{
+ unsigned long uval;
+
+ if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
+ PyErr_SetString(PyExc_ValueError, "value must be positive");
+ return 0;
+ }
+ uval = PyLong_AsUnsignedLong(obj);
+ if (uval == (unsigned long)-1 && PyErr_Occurred())
+ return 0;
+ if (uval > UINT_MAX) {
+ PyErr_SetString(PyExc_OverflowError,
+ "Python int too large for C unsigned int");
+ return 0;
+ }
+
+ *(unsigned int *)ptr = Py_SAFE_DOWNCAST(uval, unsigned long, unsigned int);
+ return 1;
+}
+
+int
+_PyLong_UnsignedLong_Converter(PyObject *obj, void *ptr)
+{
+ unsigned long uval;
+
+ if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
+ PyErr_SetString(PyExc_ValueError, "value must be positive");
+ return 0;
+ }
+ uval = PyLong_AsUnsignedLong(obj);
+ if (uval == (unsigned long)-1 && PyErr_Occurred())
+ return 0;
+
+ *(unsigned long *)ptr = uval;
+ return 1;
+}
+
+int
+_PyLong_UnsignedLongLong_Converter(PyObject *obj, void *ptr)
+{
+ unsigned long long uval;
+
+ if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
+ PyErr_SetString(PyExc_ValueError, "value must be positive");
+ return 0;
+ }
+ uval = PyLong_AsUnsignedLongLong(obj);
+ if (uval == (unsigned long long)-1 && PyErr_Occurred())
+ return 0;
+
+ *(unsigned long long *)ptr = uval;
+ return 1;
+}
+
+int
+_PyLong_Size_t_Converter(PyObject *obj, void *ptr)
+{
+ size_t uval;
+
+ if (PyLong_Check(obj) && _PyLong_Sign(obj) < 0) {
+ PyErr_SetString(PyExc_ValueError, "value must be positive");
+ return 0;
+ }
+ uval = PyLong_AsSize_t(obj);
+ if (uval == (size_t)-1 && PyErr_Occurred())
+ return 0;
+
+ *(size_t *)ptr = uval;
+ return 1;
+}
+
+
#define CHECK_BINOP(v,w) \
do { \
if (!PyLong_Check(v) || !PyLong_Check(w)) \
@@ -1938,7 +1938,7 @@ long_format_binary(PyObject *aa, int base, int alternate,
return -1;
}
size_a_in_bits = (size_a - 1) * PyLong_SHIFT +
- _Py_bit_length(a->ob_digit[size_a - 1]);
+ _Py_bit_length(a->ob_digit[size_a - 1]);
/* Allow 1 character for a '-' sign. */
sz = negative + (size_a_in_bits + (bits - 1)) / bits;
}
@@ -2243,7 +2243,7 @@ PyLong_FromString(const char *str, char **pend, int base)
"int() arg 2 must be >= 2 and <= 36");
return NULL;
}
- while (*str != '\0' && Py_ISSPACE(*str)) {
+ while (*str != '\0' && Py_ISSPACE(*str)) {
str++;
}
if (*str == '+') {
@@ -2461,7 +2461,7 @@ digit beyond the first.
if (z == NULL) {
return NULL;
}
- Py_SET_SIZE(z, 0);
+ Py_SET_SIZE(z, 0);
/* `convwidth` consecutive input digits are treated as a single
* digit in base `convmultmax`.
@@ -2511,7 +2511,7 @@ digit beyond the first.
assert(c < PyLong_BASE);
if (Py_SIZE(z) < size_z) {
*pz = (digit)c;
- Py_SET_SIZE(z, Py_SIZE(z) + 1);
+ Py_SET_SIZE(z, Py_SIZE(z) + 1);
}
else {
PyLongObject *tmp;
@@ -2550,9 +2550,9 @@ digit beyond the first.
goto onError;
}
if (sign < 0) {
- Py_SET_SIZE(z, -(Py_SIZE(z)));
+ Py_SET_SIZE(z, -(Py_SIZE(z)));
}
- while (*str && Py_ISSPACE(*str)) {
+ while (*str && Py_ISSPACE(*str)) {
str++;
}
if (*str != '\0') {
@@ -2758,7 +2758,7 @@ x_divrem(PyLongObject *v1, PyLongObject *w1, PyLongObject **prem)
/* normalize: shift w1 left so that its top digit is >= PyLong_BASE/2.
shift v1 left by the same amount. Results go into w and v. */
- d = PyLong_SHIFT - _Py_bit_length(w1->ob_digit[size_w-1]);
+ d = PyLong_SHIFT - _Py_bit_length(w1->ob_digit[size_w-1]);
carry = v_lshift(w->ob_digit, w1->ob_digit, size_w, d);
assert(carry == 0);
carry = v_lshift(v->ob_digit, v1->ob_digit, size_v, d);
@@ -2866,8 +2866,8 @@ _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e)
{
Py_ssize_t a_size, a_bits, shift_digits, shift_bits, x_size;
/* See below for why x_digits is always large enough. */
- digit rem;
- digit x_digits[2 + (DBL_MANT_DIG + 1) / PyLong_SHIFT] = {0,};
+ digit rem;
+ digit x_digits[2 + (DBL_MANT_DIG + 1) / PyLong_SHIFT] = {0,};
double dx;
/* Correction term for round-half-to-even rounding. For a digit x,
"x + half_even_correction[x & 7]" gives x rounded to the nearest
@@ -2880,7 +2880,7 @@ _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e)
*e = 0;
return 0.0;
}
- a_bits = _Py_bit_length(a->ob_digit[a_size-1]);
+ a_bits = _Py_bit_length(a->ob_digit[a_size-1]);
/* The following is an overflow-free version of the check
"if ((a_size - 1) * PyLong_SHIFT + a_bits > PY_SSIZE_T_MAX) ..." */
if (a_size >= (PY_SSIZE_T_MAX - 1) / PyLong_SHIFT + 1 &&
@@ -2917,7 +2917,7 @@ _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e)
if (a_bits <= DBL_MANT_DIG + 2) {
shift_digits = (DBL_MANT_DIG + 2 - a_bits) / PyLong_SHIFT;
shift_bits = (DBL_MANT_DIG + 2 - a_bits) % PyLong_SHIFT;
- x_size = shift_digits;
+ x_size = shift_digits;
rem = v_lshift(x_digits + x_size, a->ob_digit, a_size,
(int)shift_bits);
x_size += a_size;
@@ -3005,32 +3005,32 @@ PyLong_AsDouble(PyObject *v)
/* Methods */
-/* if a < b, return a negative number
- if a == b, return 0
- if a > b, return a positive number */
-
-static Py_ssize_t
+/* if a < b, return a negative number
+ if a == b, return 0
+ if a > b, return a positive number */
+
+static Py_ssize_t
long_compare(PyLongObject *a, PyLongObject *b)
{
- Py_ssize_t sign = Py_SIZE(a) - Py_SIZE(b);
- if (sign == 0) {
+ Py_ssize_t sign = Py_SIZE(a) - Py_SIZE(b);
+ if (sign == 0) {
Py_ssize_t i = Py_ABS(Py_SIZE(a));
- sdigit diff = 0;
- while (--i >= 0) {
- diff = (sdigit) a->ob_digit[i] - (sdigit) b->ob_digit[i];
- if (diff) {
- break;
- }
+ sdigit diff = 0;
+ while (--i >= 0) {
+ diff = (sdigit) a->ob_digit[i] - (sdigit) b->ob_digit[i];
+ if (diff) {
+ break;
+ }
}
- sign = Py_SIZE(a) < 0 ? -diff : diff;
+ sign = Py_SIZE(a) < 0 ? -diff : diff;
}
- return sign;
+ return sign;
}
static PyObject *
long_richcompare(PyObject *self, PyObject *other, int op)
{
- Py_ssize_t result;
+ Py_ssize_t result;
CHECK_BINOP(self, other);
if (self == other)
result = 0;
@@ -3182,9 +3182,9 @@ x_sub(PyLongObject *a, PyLongObject *b)
}
assert(borrow == 0);
if (sign < 0) {
- Py_SET_SIZE(z, -Py_SIZE(z));
+ Py_SET_SIZE(z, -Py_SIZE(z));
}
- return maybe_small_long(long_normalize(z));
+ return maybe_small_long(long_normalize(z));
}
static PyObject *
@@ -3206,7 +3206,7 @@ long_add(PyLongObject *a, PyLongObject *b)
That also means z is not an element of
small_ints, so negating it in-place is safe. */
assert(Py_REFCNT(z) == 1);
- Py_SET_SIZE(z, -(Py_SIZE(z)));
+ Py_SET_SIZE(z, -(Py_SIZE(z)));
}
}
else
@@ -3232,15 +3232,15 @@ long_sub(PyLongObject *a, PyLongObject *b)
return PyLong_FromLong(MEDIUM_VALUE(a) - MEDIUM_VALUE(b));
}
if (Py_SIZE(a) < 0) {
- if (Py_SIZE(b) < 0) {
- z = x_sub(b, a);
- }
- else {
+ if (Py_SIZE(b) < 0) {
+ z = x_sub(b, a);
+ }
+ else {
z = x_add(a, b);
- if (z != NULL) {
- assert(Py_SIZE(z) == 0 || Py_REFCNT(z) == 1);
- Py_SET_SIZE(z, -(Py_SIZE(z)));
- }
+ if (z != NULL) {
+ assert(Py_SIZE(z) == 0 || Py_REFCNT(z) == 1);
+ Py_SET_SIZE(z, -(Py_SIZE(z)));
+ }
}
}
else {
@@ -3632,7 +3632,7 @@ k_lopsided_mul(PyLongObject *a, PyLongObject *b)
/* Multiply the next slice of b by a. */
memcpy(bslice->ob_digit, b->ob_digit + nbdone,
nbtouse * sizeof(digit));
- Py_SET_SIZE(bslice, nbtouse);
+ Py_SET_SIZE(bslice, nbtouse);
product = k_mul(a, bslice);
if (product == NULL)
goto fail;
@@ -3973,8 +3973,8 @@ long_true_divide(PyObject *v, PyObject *w)
/* Extreme underflow */
goto underflow_or_zero;
/* Next line is now safe from overflowing a Py_ssize_t */
- diff = diff * PyLong_SHIFT + _Py_bit_length(a->ob_digit[a_size - 1]) -
- _Py_bit_length(b->ob_digit[b_size - 1]);
+ diff = diff * PyLong_SHIFT + _Py_bit_length(a->ob_digit[a_size - 1]) -
+ _Py_bit_length(b->ob_digit[b_size - 1]);
/* Now diff = a_bits - b_bits. */
if (diff > DBL_MAX_EXP)
goto overflow;
@@ -4050,7 +4050,7 @@ long_true_divide(PyObject *v, PyObject *w)
}
x_size = Py_ABS(Py_SIZE(x));
assert(x_size > 0); /* result of division is never zero */
- x_bits = (x_size-1)*PyLong_SHIFT+_Py_bit_length(x->ob_digit[x_size-1]);
+ x_bits = (x_size-1)*PyLong_SHIFT+_Py_bit_length(x->ob_digit[x_size-1]);
/* The number of extra bits that have to be rounded away. */
extra_bits = Py_MAX(x_bits, DBL_MIN_EXP - shift) - DBL_MANT_DIG;
@@ -4117,8 +4117,8 @@ long_divmod(PyObject *a, PyObject *b)
}
z = PyTuple_New(2);
if (z != NULL) {
- PyTuple_SET_ITEM(z, 0, (PyObject *) div);
- PyTuple_SET_ITEM(z, 1, (PyObject *) mod);
+ PyTuple_SET_ITEM(z, 0, (PyObject *) div);
+ PyTuple_SET_ITEM(z, 1, (PyObject *) mod);
}
else {
Py_DECREF(div);
@@ -4127,98 +4127,98 @@ long_divmod(PyObject *a, PyObject *b)
return z;
}
-
-/* Compute an inverse to a modulo n, or raise ValueError if a is not
- invertible modulo n. Assumes n is positive. The inverse returned
- is whatever falls out of the extended Euclidean algorithm: it may
- be either positive or negative, but will be smaller than n in
- absolute value.
-
- Pure Python equivalent for long_invmod:
-
- def invmod(a, n):
- b, c = 1, 0
- while n:
- q, r = divmod(a, n)
- a, b, c, n = n, c, b - q*c, r
-
- # at this point a is the gcd of the original inputs
- if a == 1:
- return b
- raise ValueError("Not invertible")
-*/
-
-static PyLongObject *
-long_invmod(PyLongObject *a, PyLongObject *n)
-{
- PyLongObject *b, *c;
-
- /* Should only ever be called for positive n */
- assert(Py_SIZE(n) > 0);
-
- b = (PyLongObject *)PyLong_FromLong(1L);
- if (b == NULL) {
- return NULL;
- }
- c = (PyLongObject *)PyLong_FromLong(0L);
- if (c == NULL) {
- Py_DECREF(b);
- return NULL;
- }
- Py_INCREF(a);
- Py_INCREF(n);
-
- /* references now owned: a, b, c, n */
- while (Py_SIZE(n) != 0) {
- PyLongObject *q, *r, *s, *t;
-
- if (l_divmod(a, n, &q, &r) == -1) {
- goto Error;
- }
- Py_DECREF(a);
- a = n;
- n = r;
- t = (PyLongObject *)long_mul(q, c);
- Py_DECREF(q);
- if (t == NULL) {
- goto Error;
- }
- s = (PyLongObject *)long_sub(b, t);
- Py_DECREF(t);
- if (s == NULL) {
- goto Error;
- }
- Py_DECREF(b);
- b = c;
- c = s;
- }
- /* references now owned: a, b, c, n */
-
- Py_DECREF(c);
- Py_DECREF(n);
- if (long_compare(a, (PyLongObject *)_PyLong_One)) {
- /* a != 1; we don't have an inverse. */
- Py_DECREF(a);
- Py_DECREF(b);
- PyErr_SetString(PyExc_ValueError,
- "base is not invertible for the given modulus");
- return NULL;
- }
- else {
- /* a == 1; b gives an inverse modulo n */
- Py_DECREF(a);
- return b;
- }
-
- Error:
- Py_DECREF(a);
- Py_DECREF(b);
- Py_DECREF(c);
- Py_DECREF(n);
- return NULL;
-}
-
-
+
+/* Compute an inverse to a modulo n, or raise ValueError if a is not
+ invertible modulo n. Assumes n is positive. The inverse returned
+ is whatever falls out of the extended Euclidean algorithm: it may
+ be either positive or negative, but will be smaller than n in
+ absolute value.
+
+ Pure Python equivalent for long_invmod:
+
+ def invmod(a, n):
+ b, c = 1, 0
+ while n:
+ q, r = divmod(a, n)
+ a, b, c, n = n, c, b - q*c, r
+
+ # at this point a is the gcd of the original inputs
+ if a == 1:
+ return b
+ raise ValueError("Not invertible")
+*/
+
+static PyLongObject *
+long_invmod(PyLongObject *a, PyLongObject *n)
+{
+ PyLongObject *b, *c;
+
+ /* Should only ever be called for positive n */
+ assert(Py_SIZE(n) > 0);
+
+ b = (PyLongObject *)PyLong_FromLong(1L);
+ if (b == NULL) {
+ return NULL;
+ }
+ c = (PyLongObject *)PyLong_FromLong(0L);
+ if (c == NULL) {
+ Py_DECREF(b);
+ return NULL;
+ }
+ Py_INCREF(a);
+ Py_INCREF(n);
+
+ /* references now owned: a, b, c, n */
+ while (Py_SIZE(n) != 0) {
+ PyLongObject *q, *r, *s, *t;
+
+ if (l_divmod(a, n, &q, &r) == -1) {
+ goto Error;
+ }
+ Py_DECREF(a);
+ a = n;
+ n = r;
+ t = (PyLongObject *)long_mul(q, c);
+ Py_DECREF(q);
+ if (t == NULL) {
+ goto Error;
+ }
+ s = (PyLongObject *)long_sub(b, t);
+ Py_DECREF(t);
+ if (s == NULL) {
+ goto Error;
+ }
+ Py_DECREF(b);
+ b = c;
+ c = s;
+ }
+ /* references now owned: a, b, c, n */
+
+ Py_DECREF(c);
+ Py_DECREF(n);
+ if (long_compare(a, (PyLongObject *)_PyLong_One)) {
+ /* a != 1; we don't have an inverse. */
+ Py_DECREF(a);
+ Py_DECREF(b);
+ PyErr_SetString(PyExc_ValueError,
+ "base is not invertible for the given modulus");
+ return NULL;
+ }
+ else {
+ /* a == 1; b gives an inverse modulo n */
+ Py_DECREF(a);
+ return b;
+ }
+
+ Error:
+ Py_DECREF(a);
+ Py_DECREF(b);
+ Py_DECREF(c);
+ Py_DECREF(n);
+ return NULL;
+}
+
+
/* pow(v, w, x) */
static PyObject *
long_pow(PyObject *v, PyObject *w, PyObject *x)
@@ -4252,14 +4252,14 @@ long_pow(PyObject *v, PyObject *w, PyObject *x)
Py_RETURN_NOTIMPLEMENTED;
}
- if (Py_SIZE(b) < 0 && c == NULL) {
- /* if exponent is negative and there's no modulus:
- return a float. This works because we know
+ if (Py_SIZE(b) < 0 && c == NULL) {
+ /* if exponent is negative and there's no modulus:
+ return a float. This works because we know
that this calls float_pow() which converts its
arguments to double. */
- Py_DECREF(a);
- Py_DECREF(b);
- return PyFloat_Type.tp_as_number->nb_power(v, w, x);
+ Py_DECREF(a);
+ Py_DECREF(b);
+ return PyFloat_Type.tp_as_number->nb_power(v, w, x);
}
if (c) {
@@ -4294,27 +4294,27 @@ long_pow(PyObject *v, PyObject *w, PyObject *x)
goto Done;
}
- /* if exponent is negative, negate the exponent and
- replace the base with a modular inverse */
- if (Py_SIZE(b) < 0) {
- temp = (PyLongObject *)_PyLong_Copy(b);
- if (temp == NULL)
- goto Error;
- Py_DECREF(b);
- b = temp;
- temp = NULL;
- _PyLong_Negate(&b);
- if (b == NULL)
- goto Error;
-
- temp = long_invmod(a, c);
- if (temp == NULL)
- goto Error;
- Py_DECREF(a);
- a = temp;
- temp = NULL;
- }
-
+ /* if exponent is negative, negate the exponent and
+ replace the base with a modular inverse */
+ if (Py_SIZE(b) < 0) {
+ temp = (PyLongObject *)_PyLong_Copy(b);
+ if (temp == NULL)
+ goto Error;
+ Py_DECREF(b);
+ b = temp;
+ temp = NULL;
+ _PyLong_Negate(&b);
+ if (b == NULL)
+ goto Error;
+
+ temp = long_invmod(a, c);
+ if (temp == NULL)
+ goto Error;
+ Py_DECREF(a);
+ a = temp;
+ temp = NULL;
+ }
+
/* Reduce base by modulus in some cases:
1. If base < 0. Forcing the base non-negative makes things easier.
2. If base is obviously larger than the modulus. The "small
@@ -4449,7 +4449,7 @@ long_neg(PyLongObject *v)
return PyLong_FromLong(-MEDIUM_VALUE(v));
z = (PyLongObject *)_PyLong_Copy(v);
if (z != NULL)
- Py_SET_SIZE(z, -(Py_SIZE(v)));
+ Py_SET_SIZE(z, -(Py_SIZE(v)));
return (PyObject *)z;
}
@@ -4470,9 +4470,9 @@ long_bool(PyLongObject *v)
/* wordshift, remshift = divmod(shiftby, PyLong_SHIFT) */
static int
-divmod_shift(PyObject *shiftby, Py_ssize_t *wordshift, digit *remshift)
+divmod_shift(PyObject *shiftby, Py_ssize_t *wordshift, digit *remshift)
{
- assert(PyLong_Check(shiftby));
+ assert(PyLong_Check(shiftby));
assert(Py_SIZE(shiftby) >= 0);
Py_ssize_t lshiftby = PyLong_AsSsize_t((PyObject *)shiftby);
if (lshiftby >= 0) {
@@ -4484,7 +4484,7 @@ divmod_shift(PyObject *shiftby, Py_ssize_t *wordshift, digit *remshift)
be that PyLong_AsSsize_t raised an OverflowError. */
assert(PyErr_ExceptionMatches(PyExc_OverflowError));
PyErr_Clear();
- PyLongObject *wordshift_obj = divrem1((PyLongObject *)shiftby, PyLong_SHIFT, remshift);
+ PyLongObject *wordshift_obj = divrem1((PyLongObject *)shiftby, PyLong_SHIFT, remshift);
if (wordshift_obj == NULL) {
return -1;
}
@@ -4502,11 +4502,11 @@ divmod_shift(PyObject *shiftby, Py_ssize_t *wordshift, digit *remshift)
}
static PyObject *
-long_rshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
+long_rshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
{
PyLongObject *z = NULL;
- Py_ssize_t newsize, hishift, i, j;
- digit lomask, himask;
+ Py_ssize_t newsize, hishift, i, j;
+ digit lomask, himask;
if (Py_SIZE(a) < 0) {
/* Right shifting negative numbers is harder */
@@ -4514,7 +4514,7 @@ long_rshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
a1 = (PyLongObject *) long_invert(a);
if (a1 == NULL)
return NULL;
- a2 = (PyLongObject *) long_rshift1(a1, wordshift, remshift);
+ a2 = (PyLongObject *) long_rshift1(a1, wordshift, remshift);
Py_DECREF(a1);
if (a2 == NULL)
return NULL;
@@ -4525,14 +4525,14 @@ long_rshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
newsize = Py_SIZE(a) - wordshift;
if (newsize <= 0)
return PyLong_FromLong(0);
- hishift = PyLong_SHIFT - remshift;
+ hishift = PyLong_SHIFT - remshift;
lomask = ((digit)1 << hishift) - 1;
himask = PyLong_MASK ^ lomask;
z = _PyLong_New(newsize);
if (z == NULL)
return NULL;
for (i = 0, j = wordshift; i < newsize; i++, j++) {
- z->ob_digit[i] = (a->ob_digit[j] >> remshift) & lomask;
+ z->ob_digit[i] = (a->ob_digit[j] >> remshift) & lomask;
if (i+1 < newsize)
z->ob_digit[i] |= (a->ob_digit[j+1] << hishift) & himask;
}
@@ -4542,9 +4542,9 @@ long_rshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
}
static PyObject *
-long_rshift(PyObject *a, PyObject *b)
+long_rshift(PyObject *a, PyObject *b)
{
- Py_ssize_t wordshift;
+ Py_ssize_t wordshift;
digit remshift;
CHECK_BINOP(a, b);
@@ -4558,33 +4558,33 @@ long_rshift(PyObject *a, PyObject *b)
}
if (divmod_shift(b, &wordshift, &remshift) < 0)
return NULL;
- return long_rshift1((PyLongObject *)a, wordshift, remshift);
-}
-
-/* Return a >> shiftby. */
-PyObject *
-_PyLong_Rshift(PyObject *a, size_t shiftby)
-{
- Py_ssize_t wordshift;
- digit remshift;
-
- assert(PyLong_Check(a));
- if (Py_SIZE(a) == 0) {
- return PyLong_FromLong(0);
- }
- wordshift = shiftby / PyLong_SHIFT;
- remshift = shiftby % PyLong_SHIFT;
- return long_rshift1((PyLongObject *)a, wordshift, remshift);
-}
-
-static PyObject *
-long_lshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
-{
- /* This version due to Tim Peters */
- PyLongObject *z = NULL;
- Py_ssize_t oldsize, newsize, i, j;
- twodigits accum;
-
+ return long_rshift1((PyLongObject *)a, wordshift, remshift);
+}
+
+/* Return a >> shiftby. */
+PyObject *
+_PyLong_Rshift(PyObject *a, size_t shiftby)
+{
+ Py_ssize_t wordshift;
+ digit remshift;
+
+ assert(PyLong_Check(a));
+ if (Py_SIZE(a) == 0) {
+ return PyLong_FromLong(0);
+ }
+ wordshift = shiftby / PyLong_SHIFT;
+ remshift = shiftby % PyLong_SHIFT;
+ return long_rshift1((PyLongObject *)a, wordshift, remshift);
+}
+
+static PyObject *
+long_lshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
+{
+ /* This version due to Tim Peters */
+ PyLongObject *z = NULL;
+ Py_ssize_t oldsize, newsize, i, j;
+ twodigits accum;
+
oldsize = Py_ABS(Py_SIZE(a));
newsize = oldsize + wordshift;
if (remshift)
@@ -4594,7 +4594,7 @@ long_lshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
return NULL;
if (Py_SIZE(a) < 0) {
assert(Py_REFCNT(z) == 1);
- Py_SET_SIZE(z, -Py_SIZE(z));
+ Py_SET_SIZE(z, -Py_SIZE(z));
}
for (i = 0; i < wordshift; i++)
z->ob_digit[i] = 0;
@@ -4612,42 +4612,42 @@ long_lshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)
return (PyObject *) maybe_small_long(z);
}
-static PyObject *
-long_lshift(PyObject *a, PyObject *b)
-{
- Py_ssize_t wordshift;
- digit remshift;
-
- CHECK_BINOP(a, b);
-
- if (Py_SIZE(b) < 0) {
- PyErr_SetString(PyExc_ValueError, "negative shift count");
- return NULL;
- }
- if (Py_SIZE(a) == 0) {
- return PyLong_FromLong(0);
- }
- if (divmod_shift(b, &wordshift, &remshift) < 0)
- return NULL;
- return long_lshift1((PyLongObject *)a, wordshift, remshift);
-}
-
-/* Return a << shiftby. */
-PyObject *
-_PyLong_Lshift(PyObject *a, size_t shiftby)
-{
- Py_ssize_t wordshift;
- digit remshift;
-
- assert(PyLong_Check(a));
- if (Py_SIZE(a) == 0) {
- return PyLong_FromLong(0);
- }
- wordshift = shiftby / PyLong_SHIFT;
- remshift = shiftby % PyLong_SHIFT;
- return long_lshift1((PyLongObject *)a, wordshift, remshift);
-}
-
+static PyObject *
+long_lshift(PyObject *a, PyObject *b)
+{
+ Py_ssize_t wordshift;
+ digit remshift;
+
+ CHECK_BINOP(a, b);
+
+ if (Py_SIZE(b) < 0) {
+ PyErr_SetString(PyExc_ValueError, "negative shift count");
+ return NULL;
+ }
+ if (Py_SIZE(a) == 0) {
+ return PyLong_FromLong(0);
+ }
+ if (divmod_shift(b, &wordshift, &remshift) < 0)
+ return NULL;
+ return long_lshift1((PyLongObject *)a, wordshift, remshift);
+}
+
+/* Return a << shiftby. */
+PyObject *
+_PyLong_Lshift(PyObject *a, size_t shiftby)
+{
+ Py_ssize_t wordshift;
+ digit remshift;
+
+ assert(PyLong_Check(a));
+ if (Py_SIZE(a) == 0) {
+ return PyLong_FromLong(0);
+ }
+ wordshift = shiftby / PyLong_SHIFT;
+ remshift = shiftby % PyLong_SHIFT;
+ return long_lshift1((PyLongObject *)a, wordshift, remshift);
+}
+
/* Compute two's complement of digit vector a[0:m], writing result to
z[0:m]. The digit vector a need not be normalized, but should not
be entirely zero. a and z may point to the same digit vector. */
@@ -4738,7 +4738,7 @@ long_bitwise(PyLongObject *a,
size_z = negb ? size_b : size_a;
break;
default:
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
/* We allow an extra digit if z is negative, to make sure that
@@ -4765,7 +4765,7 @@ long_bitwise(PyLongObject *a,
z->ob_digit[i] = a->ob_digit[i] ^ b->ob_digit[i];
break;
default:
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
/* Copy any remaining digits of a, inverting if necessary. */
@@ -4778,7 +4778,7 @@ long_bitwise(PyLongObject *a,
/* Complement result if negative. */
if (negz) {
- Py_SET_SIZE(z, -(Py_SIZE(z)));
+ Py_SET_SIZE(z, -(Py_SIZE(z)));
z->ob_digit[size_z] = PyLong_MASK;
v_complement(z->ob_digit, z->ob_digit, size_z+1);
}
@@ -4865,7 +4865,7 @@ _PyLong_GCD(PyObject *aarg, PyObject *barg)
alloc_b = Py_SIZE(b);
/* reduce until a fits into 2 digits */
while ((size_a = Py_SIZE(a)) > 2) {
- nbits = _Py_bit_length(a->ob_digit[size_a-1]);
+ nbits = _Py_bit_length(a->ob_digit[size_a-1]);
/* extract top 2*PyLong_SHIFT bits of a into x, along with
corresponding bits of b into y */
size_b = Py_SIZE(b);
@@ -4925,9 +4925,9 @@ _PyLong_GCD(PyObject *aarg, PyObject *barg)
T = -A; A = -B; B = T;
T = -C; C = -D; D = T;
}
- if (c != NULL) {
- Py_SET_SIZE(c, size_a);
- }
+ if (c != NULL) {
+ Py_SET_SIZE(c, size_a);
+ }
else if (Py_REFCNT(a) == 1) {
Py_INCREF(a);
c = a;
@@ -4939,13 +4939,13 @@ _PyLong_GCD(PyObject *aarg, PyObject *barg)
goto error;
}
- if (d != NULL) {
- Py_SET_SIZE(d, size_a);
- }
+ if (d != NULL) {
+ Py_SET_SIZE(d, size_a);
+ }
else if (Py_REFCNT(b) == 1 && size_a <= alloc_b) {
Py_INCREF(b);
d = b;
- Py_SET_SIZE(d, size_a);
+ Py_SET_SIZE(d, size_a);
}
else {
alloc_b = size_a;
@@ -5001,7 +5001,7 @@ simple:
/* a fits into a long, so b must too */
x = PyLong_AsLong((PyObject *)a);
y = PyLong_AsLong((PyObject *)b);
-#elif LLONG_MAX >> PyLong_SHIFT >> PyLong_SHIFT
+#elif LLONG_MAX >> PyLong_SHIFT >> PyLong_SHIFT
x = PyLong_AsLongLong((PyObject *)a);
y = PyLong_AsLongLong((PyObject *)b);
#else
@@ -5020,7 +5020,7 @@ simple:
}
#if LONG_MAX >> PyLong_SHIFT >> PyLong_SHIFT
return PyLong_FromLong(x);
-#elif LLONG_MAX >> PyLong_SHIFT >> PyLong_SHIFT
+#elif LLONG_MAX >> PyLong_SHIFT >> PyLong_SHIFT
return PyLong_FromLongLong(x);
#else
# error "_PyLong_GCD"
@@ -5086,7 +5086,7 @@ long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase)
if (PyUnicode_Check(x))
return PyLong_FromUnicodeObject(x, (int)base);
else if (PyByteArray_Check(x) || PyBytes_Check(x)) {
- const char *string;
+ const char *string;
if (PyByteArray_Check(x))
string = PyByteArray_AS_STRING(x);
else
@@ -5125,10 +5125,10 @@ long_subtype_new(PyTypeObject *type, PyObject *x, PyObject *obase)
return NULL;
}
assert(PyLong_Check(newobj));
- Py_SET_SIZE(newobj, Py_SIZE(tmp));
- for (i = 0; i < n; i++) {
+ Py_SET_SIZE(newobj, Py_SIZE(tmp));
+ for (i = 0; i < n; i++) {
newobj->ob_digit[i] = tmp->ob_digit[i];
- }
+ }
Py_DECREF(tmp);
return (PyObject *)newobj;
}
@@ -5145,14 +5145,14 @@ int___getnewargs___impl(PyObject *self)
}
static PyObject *
-long_get0(PyObject *Py_UNUSED(self), void *Py_UNUSED(context))
-{
+long_get0(PyObject *Py_UNUSED(self), void *Py_UNUSED(context))
+{
return PyLong_FromLong(0L);
}
static PyObject *
-long_get1(PyObject *Py_UNUSED(self), void *Py_UNUSED(ignored))
-{
+long_get1(PyObject *Py_UNUSED(self), void *Py_UNUSED(ignored))
+{
return PyLong_FromLong(1L);
}
@@ -5192,8 +5192,8 @@ _PyLong_DivmodNear(PyObject *a, PyObject *b)
{
PyLongObject *quo = NULL, *rem = NULL;
PyObject *twice_rem, *result, *temp;
- int quo_is_odd, quo_is_neg;
- Py_ssize_t cmp;
+ int quo_is_odd, quo_is_neg;
+ Py_ssize_t cmp;
/* Equivalent Python code:
@@ -5386,7 +5386,7 @@ int_bit_length_impl(PyObject *self)
return PyLong_FromLong(0);
msd = ((PyLongObject *)self)->ob_digit[ndigits-1];
- msd_bits = _Py_bit_length(msd);
+ msd_bits = _Py_bit_length(msd);
if (ndigits <= PY_SSIZE_T_MAX/PyLong_SHIFT)
return PyLong_FromSsize_t((ndigits-1)*PyLong_SHIFT + msd_bits);
@@ -5422,35 +5422,35 @@ int_bit_length_impl(PyObject *self)
return NULL;
}
-
-/*[clinic input]
-int.as_integer_ratio
-
-Return integer ratio.
-
-Return a pair of integers, whose ratio is exactly equal to the original int
-and with a positive denominator.
-
->>> (10).as_integer_ratio()
-(10, 1)
->>> (-10).as_integer_ratio()
-(-10, 1)
->>> (0).as_integer_ratio()
-(0, 1)
-[clinic start generated code]*/
-
+
+/*[clinic input]
+int.as_integer_ratio
+
+Return integer ratio.
+
+Return a pair of integers, whose ratio is exactly equal to the original int
+and with a positive denominator.
+
+>>> (10).as_integer_ratio()
+(10, 1)
+>>> (-10).as_integer_ratio()
+(-10, 1)
+>>> (0).as_integer_ratio()
+(0, 1)
+[clinic start generated code]*/
+
static PyObject *
-int_as_integer_ratio_impl(PyObject *self)
-/*[clinic end generated code: output=e60803ae1cc8621a input=55ce3058e15de393]*/
+int_as_integer_ratio_impl(PyObject *self)
+/*[clinic end generated code: output=e60803ae1cc8621a input=55ce3058e15de393]*/
{
- PyObject *ratio_tuple;
- PyObject *numerator = long_long(self);
- if (numerator == NULL) {
- return NULL;
- }
- ratio_tuple = PyTuple_Pack(2, numerator, _PyLong_One);
- Py_DECREF(numerator);
- return ratio_tuple;
+ PyObject *ratio_tuple;
+ PyObject *numerator = long_long(self);
+ if (numerator == NULL) {
+ return NULL;
+ }
+ ratio_tuple = PyTuple_Pack(2, numerator, _PyLong_One);
+ Py_DECREF(numerator);
+ return ratio_tuple;
}
/*[clinic input]
@@ -5562,30 +5562,30 @@ int_from_bytes_impl(PyTypeObject *type, PyObject *bytes_obj,
Py_DECREF(bytes);
if (long_obj != NULL && type != &PyLong_Type) {
- Py_SETREF(long_obj, PyObject_CallOneArg((PyObject *)type, long_obj));
+ Py_SETREF(long_obj, PyObject_CallOneArg((PyObject *)type, long_obj));
}
return long_obj;
}
-static PyObject *
-long_long_meth(PyObject *self, PyObject *Py_UNUSED(ignored))
-{
- return long_long(self);
-}
-
+static PyObject *
+long_long_meth(PyObject *self, PyObject *Py_UNUSED(ignored))
+{
+ return long_long(self);
+}
+
static PyMethodDef long_methods[] = {
- {"conjugate", long_long_meth, METH_NOARGS,
+ {"conjugate", long_long_meth, METH_NOARGS,
"Returns self, the complex conjugate of any int."},
INT_BIT_LENGTH_METHODDEF
INT_TO_BYTES_METHODDEF
INT_FROM_BYTES_METHODDEF
- INT_AS_INTEGER_RATIO_METHODDEF
- {"__trunc__", long_long_meth, METH_NOARGS,
+ INT_AS_INTEGER_RATIO_METHODDEF
+ {"__trunc__", long_long_meth, METH_NOARGS,
"Truncating an Integral returns itself."},
- {"__floor__", long_long_meth, METH_NOARGS,
+ {"__floor__", long_long_meth, METH_NOARGS,
"Flooring an Integral returns itself."},
- {"__ceil__", long_long_meth, METH_NOARGS,
+ {"__ceil__", long_long_meth, METH_NOARGS,
"Ceiling of an Integral returns itself."},
{"__round__", (PyCFunction)long_round, METH_VARARGS,
"Rounding an Integral returns itself.\n"
@@ -5598,19 +5598,19 @@ static PyMethodDef long_methods[] = {
static PyGetSetDef long_getset[] = {
{"real",
- (getter)long_long_meth, (setter)NULL,
+ (getter)long_long_meth, (setter)NULL,
"the real part of a complex number",
NULL},
{"imag",
- long_get0, (setter)NULL,
+ long_get0, (setter)NULL,
"the imaginary part of a complex number",
NULL},
{"numerator",
- (getter)long_long_meth, (setter)NULL,
+ (getter)long_long_meth, (setter)NULL,
"the numerator of a rational number in lowest terms",
NULL},
{"denominator",
- long_get1, (setter)NULL,
+ long_get1, (setter)NULL,
"the denominator of a rational number in lowest terms",
NULL},
{NULL} /* Sentinel */
@@ -5640,12 +5640,12 @@ static PyNumberMethods long_as_number = {
long_divmod, /*nb_divmod*/
long_pow, /*nb_power*/
(unaryfunc)long_neg, /*nb_negative*/
- long_long, /*tp_positive*/
+ long_long, /*tp_positive*/
(unaryfunc)long_abs, /*tp_absolute*/
(inquiry)long_bool, /*tp_bool*/
(unaryfunc)long_invert, /*nb_invert*/
long_lshift, /*nb_lshift*/
- long_rshift, /*nb_rshift*/
+ long_rshift, /*nb_rshift*/
long_and, /*nb_and*/
long_xor, /*nb_xor*/
long_or, /*nb_or*/
@@ -5674,18 +5674,18 @@ PyTypeObject PyLong_Type = {
"int", /* tp_name */
offsetof(PyLongObject, ob_digit), /* tp_basicsize */
sizeof(digit), /* tp_itemsize */
- 0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
long_to_decimal_string, /* tp_repr */
&long_as_number, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
(hashfunc)long_hash, /* tp_hash */
0, /* tp_call */
- 0, /* tp_str */
+ 0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
@@ -5717,7 +5717,7 @@ static PyTypeObject Int_InfoType;
PyDoc_STRVAR(int_info__doc__,
"sys.int_info\n\
\n\
-A named tuple that holds information about Python's\n\
+A named tuple that holds information about Python's\n\
internal representation of integers. The attributes are read only.");
static PyStructSequence_Field int_info_fields[] = {
@@ -5753,58 +5753,58 @@ PyLong_GetInfo(void)
}
int
-_PyLong_Init(PyThreadState *tstate)
+_PyLong_Init(PyThreadState *tstate)
{
#if NSMALLNEGINTS + NSMALLPOSINTS > 0
- for (Py_ssize_t i=0; i < NSMALLNEGINTS + NSMALLPOSINTS; i++) {
- sdigit ival = (sdigit)i - NSMALLNEGINTS;
- int size = (ival < 0) ? -1 : ((ival == 0) ? 0 : 1);
+ for (Py_ssize_t i=0; i < NSMALLNEGINTS + NSMALLPOSINTS; i++) {
+ sdigit ival = (sdigit)i - NSMALLNEGINTS;
+ int size = (ival < 0) ? -1 : ((ival == 0) ? 0 : 1);
- PyLongObject *v = _PyLong_New(1);
- if (!v) {
- return -1;
- }
+ PyLongObject *v = _PyLong_New(1);
+ if (!v) {
+ return -1;
+ }
- Py_SET_SIZE(v, size);
+ Py_SET_SIZE(v, size);
v->ob_digit[0] = (digit)abs(ival);
-
- tstate->interp->small_ints[i] = v;
+
+ tstate->interp->small_ints[i] = v;
}
#endif
- if (_Py_IsMainInterpreter(tstate)) {
- _PyLong_Zero = PyLong_FromLong(0);
- if (_PyLong_Zero == NULL) {
+ if (_Py_IsMainInterpreter(tstate)) {
+ _PyLong_Zero = PyLong_FromLong(0);
+ if (_PyLong_Zero == NULL) {
+ return 0;
+ }
+
+ _PyLong_One = PyLong_FromLong(1);
+ if (_PyLong_One == NULL) {
return 0;
- }
-
- _PyLong_One = PyLong_FromLong(1);
- if (_PyLong_One == NULL) {
- return 0;
- }
-
- /* initialize int_info */
- if (Int_InfoType.tp_name == NULL) {
- if (PyStructSequence_InitType2(&Int_InfoType, &int_info_desc) < 0) {
- return 0;
- }
- }
+ }
+
+ /* initialize int_info */
+ if (Int_InfoType.tp_name == NULL) {
+ if (PyStructSequence_InitType2(&Int_InfoType, &int_info_desc) < 0) {
+ return 0;
+ }
+ }
}
return 1;
}
void
-_PyLong_Fini(PyThreadState *tstate)
+_PyLong_Fini(PyThreadState *tstate)
{
- if (_Py_IsMainInterpreter(tstate)) {
- Py_CLEAR(_PyLong_One);
- Py_CLEAR(_PyLong_Zero);
- }
-
+ if (_Py_IsMainInterpreter(tstate)) {
+ Py_CLEAR(_PyLong_One);
+ Py_CLEAR(_PyLong_Zero);
+ }
+
#if NSMALLNEGINTS + NSMALLPOSINTS > 0
- for (Py_ssize_t i = 0; i < NSMALLNEGINTS + NSMALLPOSINTS; i++) {
- Py_CLEAR(tstate->interp->small_ints[i]);
+ for (Py_ssize_t i = 0; i < NSMALLNEGINTS + NSMALLPOSINTS; i++) {
+ Py_CLEAR(tstate->interp->small_ints[i]);
}
#endif
}
diff --git a/contrib/tools/python3/src/Objects/memoryobject.c b/contrib/tools/python3/src/Objects/memoryobject.c
index 61a9c7ed23..682bbe8a61 100644
--- a/contrib/tools/python3/src/Objects/memoryobject.c
+++ b/contrib/tools/python3/src/Objects/memoryobject.c
@@ -1,28 +1,28 @@
-/*
- * Memoryview object implementation
- * --------------------------------
- *
- * This implementation is a complete rewrite contributed by Stefan Krah in
- * Python 3.3. Substantial credit goes to Antoine Pitrou (who had already
- * fortified and rewritten the previous implementation) and Nick Coghlan
- * (who came up with the idea of the ManagedBuffer) for analyzing the complex
- * ownership rules.
- *
- */
+/*
+ * Memoryview object implementation
+ * --------------------------------
+ *
+ * This implementation is a complete rewrite contributed by Stefan Krah in
+ * Python 3.3. Substantial credit goes to Antoine Pitrou (who had already
+ * fortified and rewritten the previous implementation) and Nick Coghlan
+ * (who came up with the idea of the ManagedBuffer) for analyzing the complex
+ * ownership rules.
+ *
+ */
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_object.h"
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_object.h"
#include "pystrhex.h"
#include <stddef.h>
-/*[clinic input]
-class memoryview "PyMemoryViewObject *" "&PyMemoryView_Type"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=e2e49d2192835219]*/
+/*[clinic input]
+class memoryview "PyMemoryViewObject *" "&PyMemoryView_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=e2e49d2192835219]*/
+
+#include "clinic/memoryobject.c.h"
-#include "clinic/memoryobject.c.h"
-
/****************************************************************************/
/* ManagedBuffer Object */
/****************************************************************************/
@@ -156,10 +156,10 @@ PyTypeObject _PyManagedBuffer_Type = {
sizeof(_PyManagedBufferObject),
0,
(destructor)mbuf_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1057,8 +1057,8 @@ _memory_release(PyMemoryViewObject *self)
return -1;
}
- PyErr_SetString(PyExc_SystemError,
- "_memory_release(): negative export count");
+ PyErr_SetString(PyExc_SystemError,
+ "_memory_release(): negative export count");
return -1;
}
@@ -1415,21 +1415,21 @@ error:
return NULL;
}
-static PyObject *
-memory_toreadonly(PyMemoryViewObject *self, PyObject *noargs)
-{
- CHECK_RELEASED(self);
- /* Even if self is already readonly, we still need to create a new
- * object for .release() to work correctly.
- */
- self = (PyMemoryViewObject *) mbuf_add_view(self->mbuf, &self->view);
- if (self != NULL) {
- self->view.readonly = 1;
- };
- return (PyObject *) self;
-}
-
-
+static PyObject *
+memory_toreadonly(PyMemoryViewObject *self, PyObject *noargs)
+{
+ CHECK_RELEASED(self);
+ /* Even if self is already readonly, we still need to create a new
+ * object for .release() to work correctly.
+ */
+ self = (PyMemoryViewObject *) mbuf_add_view(self->mbuf, &self->view);
+ if (self != NULL) {
+ self->view.readonly = 1;
+ };
+ return (PyObject *) self;
+}
+
+
/**************************************************************************/
/* getbuffer */
/**************************************************************************/
@@ -1691,8 +1691,8 @@ unpack_single(const char *ptr, const char *fmt)
switch (fmt[0]) {
/* signed integers and fast path for 'B' */
- case 'B': uc = *((const unsigned char *)ptr); goto convert_uc;
- case 'b': ld = *((const signed char *)ptr); goto convert_ld;
+ case 'B': uc = *((const unsigned char *)ptr); goto convert_uc;
+ case 'b': ld = *((const signed char *)ptr); goto convert_ld;
case 'h': UNPACK_SINGLE(ld, ptr, short); goto convert_ld;
case 'i': UNPACK_SINGLE(ld, ptr, int); goto convert_ld;
case 'l': UNPACK_SINGLE(ld, ptr, long); goto convert_ld;
@@ -1972,7 +1972,7 @@ struct_get_unpacker(const char *fmt, Py_ssize_t itemsize)
if (format == NULL)
goto error;
- structobj = PyObject_CallOneArg(Struct, format);
+ structobj = PyObject_CallOneArg(Struct, format);
if (structobj == NULL)
goto error;
@@ -2011,7 +2011,7 @@ struct_unpack_single(const char *ptr, struct unpacker *x)
PyObject *v;
memcpy(x->item, ptr, x->itemsize);
- v = PyObject_CallOneArg(x->unpack_from, x->mview);
+ v = PyObject_CallOneArg(x->unpack_from, x->mview);
if (v == NULL)
return NULL;
@@ -2136,39 +2136,39 @@ memory_tolist(PyMemoryViewObject *mv, PyObject *noargs)
}
static PyObject *
-memory_tobytes(PyMemoryViewObject *self, PyObject *args, PyObject *kwds)
+memory_tobytes(PyMemoryViewObject *self, PyObject *args, PyObject *kwds)
{
- static char *kwlist[] = {"order", NULL};
+ static char *kwlist[] = {"order", NULL};
Py_buffer *src = VIEW_ADDR(self);
- char *order = NULL;
- char ord = 'C';
- PyObject *bytes;
+ char *order = NULL;
+ char ord = 'C';
+ PyObject *bytes;
CHECK_RELEASED(self);
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|z", kwlist, &order)) {
- return NULL;
- }
-
- if (order) {
- if (strcmp(order, "F") == 0) {
- ord = 'F';
- }
- else if (strcmp(order, "A") == 0) {
- ord = 'A';
- }
- else if (strcmp(order, "C") != 0) {
- PyErr_SetString(PyExc_ValueError,
- "order must be 'C', 'F' or 'A'");
- return NULL;
- }
- }
-
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|z", kwlist, &order)) {
+ return NULL;
+ }
+
+ if (order) {
+ if (strcmp(order, "F") == 0) {
+ ord = 'F';
+ }
+ else if (strcmp(order, "A") == 0) {
+ ord = 'A';
+ }
+ else if (strcmp(order, "C") != 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "order must be 'C', 'F' or 'A'");
+ return NULL;
+ }
+ }
+
bytes = PyBytes_FromStringAndSize(NULL, src->len);
if (bytes == NULL)
return NULL;
- if (PyBuffer_ToContiguous(PyBytes_AS_STRING(bytes), src, src->len, ord) < 0) {
+ if (PyBuffer_ToContiguous(PyBytes_AS_STRING(bytes), src, src->len, ord) < 0) {
Py_DECREF(bytes);
return NULL;
}
@@ -2176,33 +2176,33 @@ memory_tobytes(PyMemoryViewObject *self, PyObject *args, PyObject *kwds)
return bytes;
}
-/*[clinic input]
-memoryview.hex
-
- sep: object = NULL
- An optional single character or byte to separate hex bytes.
- bytes_per_sep: int = 1
- How many bytes between separators. Positive values count from the
- right, negative values count from the left.
-
-Return the data in the buffer as a str of hexadecimal numbers.
-
-Example:
->>> value = memoryview(b'\xb9\x01\xef')
->>> value.hex()
-'b901ef'
->>> value.hex(':')
-'b9:01:ef'
->>> value.hex(':', 2)
-'b9:01ef'
->>> value.hex(':', -2)
-'b901:ef'
-[clinic start generated code]*/
-
+/*[clinic input]
+memoryview.hex
+
+ sep: object = NULL
+ An optional single character or byte to separate hex bytes.
+ bytes_per_sep: int = 1
+ How many bytes between separators. Positive values count from the
+ right, negative values count from the left.
+
+Return the data in the buffer as a str of hexadecimal numbers.
+
+Example:
+>>> value = memoryview(b'\xb9\x01\xef')
+>>> value.hex()
+'b901ef'
+>>> value.hex(':')
+'b9:01:ef'
+>>> value.hex(':', 2)
+'b9:01ef'
+>>> value.hex(':', -2)
+'b901:ef'
+[clinic start generated code]*/
+
static PyObject *
-memoryview_hex_impl(PyMemoryViewObject *self, PyObject *sep,
- int bytes_per_sep)
-/*[clinic end generated code: output=430ca760f94f3ca7 input=539f6a3a5fb56946]*/
+memoryview_hex_impl(PyMemoryViewObject *self, PyObject *sep,
+ int bytes_per_sep)
+/*[clinic end generated code: output=430ca760f94f3ca7 input=539f6a3a5fb56946]*/
{
Py_buffer *src = VIEW_ADDR(self);
PyObject *bytes;
@@ -2211,21 +2211,21 @@ memoryview_hex_impl(PyMemoryViewObject *self, PyObject *sep,
CHECK_RELEASED(self);
if (MV_C_CONTIGUOUS(self->flags)) {
- return _Py_strhex_with_sep(src->buf, src->len, sep, bytes_per_sep);
+ return _Py_strhex_with_sep(src->buf, src->len, sep, bytes_per_sep);
}
- bytes = PyBytes_FromStringAndSize(NULL, src->len);
+ bytes = PyBytes_FromStringAndSize(NULL, src->len);
if (bytes == NULL)
return NULL;
- if (PyBuffer_ToContiguous(PyBytes_AS_STRING(bytes), src, src->len, 'C') < 0) {
- Py_DECREF(bytes);
- return NULL;
- }
-
- ret = _Py_strhex_with_sep(
- PyBytes_AS_STRING(bytes), PyBytes_GET_SIZE(bytes),
- sep, bytes_per_sep);
+ if (PyBuffer_ToContiguous(PyBytes_AS_STRING(bytes), src, src->len, 'C') < 0) {
+ Py_DECREF(bytes);
+ return NULL;
+ }
+
+ ret = _Py_strhex_with_sep(
+ PyBytes_AS_STRING(bytes), PyBytes_GET_SIZE(bytes),
+ sep, bytes_per_sep);
Py_DECREF(bytes);
return ret;
@@ -2420,9 +2420,9 @@ is_multiindex(PyObject *key)
size = PyTuple_GET_SIZE(key);
for (i = 0; i < size; i++) {
PyObject *x = PyTuple_GET_ITEM(key, i);
- if (!_PyIndex_Check(x)) {
+ if (!_PyIndex_Check(x)) {
return 0;
- }
+ }
}
return 1;
}
@@ -2459,7 +2459,7 @@ memory_subscript(PyMemoryViewObject *self, PyObject *key)
}
}
- if (_PyIndex_Check(key)) {
+ if (_PyIndex_Check(key)) {
Py_ssize_t index;
index = PyNumber_AsSsize_t(key, PyExc_IndexError);
if (index == -1 && PyErr_Occurred())
@@ -2530,7 +2530,7 @@ memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value)
}
}
- if (_PyIndex_Check(key)) {
+ if (_PyIndex_Check(key)) {
Py_ssize_t index;
if (1 < view->ndim) {
PyErr_SetString(PyExc_NotImplementedError,
@@ -2694,8 +2694,8 @@ unpack_cmp(const char *p, const char *q, char fmt,
switch (fmt) {
/* signed integers and fast path for 'B' */
- case 'B': return *((const unsigned char *)p) == *((const unsigned char *)q);
- case 'b': return *((const signed char *)p) == *((const signed char *)q);
+ case 'B': return *((const unsigned char *)p) == *((const unsigned char *)q);
+ case 'b': return *((const signed char *)p) == *((const signed char *)q);
case 'h': CMP_SINGLE(p, q, short); return equal;
case 'i': CMP_SINGLE(p, q, int); return equal;
case 'l': CMP_SINGLE(p, q, long); return equal;
@@ -3127,13 +3127,13 @@ PyDoc_STRVAR(memory_release_doc,
\n\
Release the underlying buffer exposed by the memoryview object.");
PyDoc_STRVAR(memory_tobytes_doc,
-"tobytes($self, /, order=None)\n--\n\
+"tobytes($self, /, order=None)\n--\n\
\n\
-Return the data in the buffer as a byte string. Order can be {'C', 'F', 'A'}.\n\
-When order is 'C' or 'F', the data of the original array is converted to C or\n\
-Fortran order. For contiguous views, 'A' returns an exact copy of the physical\n\
-memory. In particular, in-memory Fortran order is preserved. For non-contiguous\n\
-views, the data is converted to C first. order=None is the same as order='C'.");
+Return the data in the buffer as a byte string. Order can be {'C', 'F', 'A'}.\n\
+When order is 'C' or 'F', the data of the original array is converted to C or\n\
+Fortran order. For contiguous views, 'A' returns an exact copy of the physical\n\
+memory. In particular, in-memory Fortran order is preserved. For non-contiguous\n\
+views, the data is converted to C first. order=None is the same as order='C'.");
PyDoc_STRVAR(memory_tolist_doc,
"tolist($self, /)\n--\n\
\n\
@@ -3142,18 +3142,18 @@ PyDoc_STRVAR(memory_cast_doc,
"cast($self, /, format, *, shape)\n--\n\
\n\
Cast a memoryview to a new format or shape.");
-PyDoc_STRVAR(memory_toreadonly_doc,
-"toreadonly($self, /)\n--\n\
-\n\
-Return a readonly version of the memoryview.");
+PyDoc_STRVAR(memory_toreadonly_doc,
+"toreadonly($self, /)\n--\n\
+\n\
+Return a readonly version of the memoryview.");
static PyMethodDef memory_methods[] = {
{"release", (PyCFunction)memory_release, METH_NOARGS, memory_release_doc},
- {"tobytes", (PyCFunction)(void(*)(void))memory_tobytes, METH_VARARGS|METH_KEYWORDS, memory_tobytes_doc},
- MEMORYVIEW_HEX_METHODDEF
+ {"tobytes", (PyCFunction)(void(*)(void))memory_tobytes, METH_VARARGS|METH_KEYWORDS, memory_tobytes_doc},
+ MEMORYVIEW_HEX_METHODDEF
{"tolist", (PyCFunction)memory_tolist, METH_NOARGS, memory_tolist_doc},
- {"cast", (PyCFunction)(void(*)(void))memory_cast, METH_VARARGS|METH_KEYWORDS, memory_cast_doc},
- {"toreadonly", (PyCFunction)memory_toreadonly, METH_NOARGS, memory_toreadonly_doc},
+ {"cast", (PyCFunction)(void(*)(void))memory_cast, METH_VARARGS|METH_KEYWORDS, memory_cast_doc},
+ {"toreadonly", (PyCFunction)memory_toreadonly, METH_NOARGS, memory_toreadonly_doc},
{"__enter__", memory_enter, METH_NOARGS, NULL},
{"__exit__", memory_exit, METH_VARARGS, NULL},
{NULL, NULL}
@@ -3166,10 +3166,10 @@ PyTypeObject PyMemoryView_Type = {
offsetof(PyMemoryViewObject, ob_array), /* tp_basicsize */
sizeof(Py_ssize_t), /* tp_itemsize */
(destructor)memory_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)memory_repr, /* tp_repr */
0, /* tp_as_number */
&memory_as_sequence, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/methodobject.c b/contrib/tools/python3/src/Objects/methodobject.c
index bae0664d8d..2df63cfdf6 100644
--- a/contrib/tools/python3/src/Objects/methodobject.c
+++ b/contrib/tools/python3/src/Objects/methodobject.c
@@ -2,33 +2,33 @@
/* Method object implementation */
#include "Python.h"
-#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "structmember.h" // PyMemberDef
+#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "structmember.h" // PyMemberDef
/* undefine macro trampoline to PyCFunction_NewEx */
#undef PyCFunction_New
-/* undefine macro trampoline to PyCMethod_New */
-#undef PyCFunction_NewEx
-
-/* Forward declarations */
-static PyObject * cfunction_vectorcall_FASTCALL(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
-static PyObject * cfunction_vectorcall_FASTCALL_KEYWORDS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
-static PyObject * cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
-static PyObject * cfunction_vectorcall_NOARGS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
-static PyObject * cfunction_vectorcall_O(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
-static PyObject * cfunction_call(
- PyObject *func, PyObject *args, PyObject *kwargs);
-
-
-PyObject *
+/* undefine macro trampoline to PyCMethod_New */
+#undef PyCFunction_NewEx
+
+/* Forward declarations */
+static PyObject * cfunction_vectorcall_FASTCALL(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
+static PyObject * cfunction_vectorcall_FASTCALL_KEYWORDS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
+static PyObject * cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
+static PyObject * cfunction_vectorcall_NOARGS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
+static PyObject * cfunction_vectorcall_O(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
+static PyObject * cfunction_call(
+ PyObject *func, PyObject *args, PyObject *kwargs);
+
+
+PyObject *
PyCFunction_New(PyMethodDef *ml, PyObject *self)
{
return PyCFunction_NewEx(ml, self, NULL);
@@ -37,80 +37,80 @@ PyCFunction_New(PyMethodDef *ml, PyObject *self)
PyObject *
PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module)
{
- return PyCMethod_New(ml, self, module, NULL);
-}
-
-PyObject *
-PyCMethod_New(PyMethodDef *ml, PyObject *self, PyObject *module, PyTypeObject *cls)
-{
- /* Figure out correct vectorcall function to use */
- vectorcallfunc vectorcall;
- switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS |
- METH_O | METH_KEYWORDS | METH_METHOD))
- {
- case METH_VARARGS:
- case METH_VARARGS | METH_KEYWORDS:
- /* For METH_VARARGS functions, it's more efficient to use tp_call
- * instead of vectorcall. */
- vectorcall = NULL;
- break;
- case METH_FASTCALL:
- vectorcall = cfunction_vectorcall_FASTCALL;
- break;
- case METH_FASTCALL | METH_KEYWORDS:
- vectorcall = cfunction_vectorcall_FASTCALL_KEYWORDS;
- break;
- case METH_NOARGS:
- vectorcall = cfunction_vectorcall_NOARGS;
- break;
- case METH_O:
- vectorcall = cfunction_vectorcall_O;
- break;
- case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
- vectorcall = cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD;
- break;
- default:
- PyErr_Format(PyExc_SystemError,
- "%s() method: bad call flags", ml->ml_name);
- return NULL;
- }
-
- PyCFunctionObject *op = NULL;
-
- if (ml->ml_flags & METH_METHOD) {
- if (!cls) {
- PyErr_SetString(PyExc_SystemError,
- "attempting to create PyCMethod with a METH_METHOD "
- "flag but no class");
- return NULL;
- }
- PyCMethodObject *om = PyObject_GC_New(PyCMethodObject, &PyCMethod_Type);
- if (om == NULL) {
- return NULL;
- }
- Py_INCREF(cls);
- om->mm_class = cls;
- op = (PyCFunctionObject *)om;
- } else {
- if (cls) {
- PyErr_SetString(PyExc_SystemError,
- "attempting to create PyCFunction with class "
- "but no METH_METHOD flag");
- return NULL;
- }
+ return PyCMethod_New(ml, self, module, NULL);
+}
+
+PyObject *
+PyCMethod_New(PyMethodDef *ml, PyObject *self, PyObject *module, PyTypeObject *cls)
+{
+ /* Figure out correct vectorcall function to use */
+ vectorcallfunc vectorcall;
+ switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS |
+ METH_O | METH_KEYWORDS | METH_METHOD))
+ {
+ case METH_VARARGS:
+ case METH_VARARGS | METH_KEYWORDS:
+ /* For METH_VARARGS functions, it's more efficient to use tp_call
+ * instead of vectorcall. */
+ vectorcall = NULL;
+ break;
+ case METH_FASTCALL:
+ vectorcall = cfunction_vectorcall_FASTCALL;
+ break;
+ case METH_FASTCALL | METH_KEYWORDS:
+ vectorcall = cfunction_vectorcall_FASTCALL_KEYWORDS;
+ break;
+ case METH_NOARGS:
+ vectorcall = cfunction_vectorcall_NOARGS;
+ break;
+ case METH_O:
+ vectorcall = cfunction_vectorcall_O;
+ break;
+ case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
+ vectorcall = cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD;
+ break;
+ default:
+ PyErr_Format(PyExc_SystemError,
+ "%s() method: bad call flags", ml->ml_name);
+ return NULL;
+ }
+
+ PyCFunctionObject *op = NULL;
+
+ if (ml->ml_flags & METH_METHOD) {
+ if (!cls) {
+ PyErr_SetString(PyExc_SystemError,
+ "attempting to create PyCMethod with a METH_METHOD "
+ "flag but no class");
+ return NULL;
+ }
+ PyCMethodObject *om = PyObject_GC_New(PyCMethodObject, &PyCMethod_Type);
+ if (om == NULL) {
+ return NULL;
+ }
+ Py_INCREF(cls);
+ om->mm_class = cls;
+ op = (PyCFunctionObject *)om;
+ } else {
+ if (cls) {
+ PyErr_SetString(PyExc_SystemError,
+ "attempting to create PyCFunction with class "
+ "but no METH_METHOD flag");
+ return NULL;
+ }
op = PyObject_GC_New(PyCFunctionObject, &PyCFunction_Type);
- if (op == NULL) {
+ if (op == NULL) {
return NULL;
- }
+ }
}
-
+
op->m_weakreflist = NULL;
op->m_ml = ml;
Py_XINCREF(self);
op->m_self = self;
Py_XINCREF(module);
op->m_module = module;
- op->vectorcall = vectorcall;
+ op->vectorcall = vectorcall;
_PyObject_GC_TRACK(op);
return (PyObject *)op;
}
@@ -145,39 +145,39 @@ PyCFunction_GetFlags(PyObject *op)
return PyCFunction_GET_FLAGS(op);
}
-PyTypeObject *
-PyCMethod_GetClass(PyObject *op)
-{
- if (!PyCFunction_Check(op)) {
- PyErr_BadInternalCall();
- return NULL;
- }
- return PyCFunction_GET_CLASS(op);
-}
-
+PyTypeObject *
+PyCMethod_GetClass(PyObject *op)
+{
+ if (!PyCFunction_Check(op)) {
+ PyErr_BadInternalCall();
+ return NULL;
+ }
+ return PyCFunction_GET_CLASS(op);
+}
+
/* Methods (the standard built-in methods, that is) */
static void
meth_dealloc(PyCFunctionObject *m)
{
- // The Py_TRASHCAN mechanism requires that we be able to
- // call PyObject_GC_UnTrack twice on an object.
- PyObject_GC_UnTrack(m);
- Py_TRASHCAN_BEGIN(m, meth_dealloc);
+ // The Py_TRASHCAN mechanism requires that we be able to
+ // call PyObject_GC_UnTrack twice on an object.
+ PyObject_GC_UnTrack(m);
+ Py_TRASHCAN_BEGIN(m, meth_dealloc);
if (m->m_weakreflist != NULL) {
PyObject_ClearWeakRefs((PyObject*) m);
}
- // Dereference class before m_self: PyCFunction_GET_CLASS accesses
- // PyMethodDef m_ml, which could be kept alive by m_self
- Py_XDECREF(PyCFunction_GET_CLASS(m));
+ // Dereference class before m_self: PyCFunction_GET_CLASS accesses
+ // PyMethodDef m_ml, which could be kept alive by m_self
+ Py_XDECREF(PyCFunction_GET_CLASS(m));
Py_XDECREF(m->m_self);
Py_XDECREF(m->m_module);
- PyObject_GC_Del(m);
- Py_TRASHCAN_END;
+ PyObject_GC_Del(m);
+ Py_TRASHCAN_END;
}
static PyObject *
-meth_reduce(PyCFunctionObject *m, PyObject *Py_UNUSED(ignored))
+meth_reduce(PyCFunctionObject *m, PyObject *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(getattr);
@@ -249,7 +249,7 @@ meth_get__qualname__(PyCFunctionObject *m, void *closure)
static int
meth_traverse(PyCFunctionObject *m, visitproc visit, void *arg)
{
- Py_VISIT(PyCFunction_GET_CLASS(m));
+ Py_VISIT(PyCFunction_GET_CLASS(m));
Py_VISIT(m->m_self);
Py_VISIT(m->m_module);
return 0;
@@ -279,7 +279,7 @@ static PyGetSetDef meth_getsets [] = {
#define OFF(x) offsetof(PyCFunctionObject, x)
static PyMemberDef meth_members[] = {
- {"__module__", T_OBJECT, OFF(m_module), 0},
+ {"__module__", T_OBJECT, OFF(m_module), 0},
{NULL}
};
@@ -291,7 +291,7 @@ meth_repr(PyCFunctionObject *m)
m->m_ml->ml_name);
return PyUnicode_FromFormat("<built-in method %s of %s object at %p>",
m->m_ml->ml_name,
- Py_TYPE(m->m_self)->tp_name,
+ Py_TYPE(m->m_self)->tp_name,
m->m_self);
}
@@ -325,7 +325,7 @@ static Py_hash_t
meth_hash(PyCFunctionObject *a)
{
Py_hash_t x, y;
- x = _Py_HashPointer(a->m_self);
+ x = _Py_HashPointer(a->m_self);
y = _Py_HashPointer((void*)(a->m_ml->ml_meth));
x ^= y;
if (x == -1)
@@ -340,22 +340,22 @@ PyTypeObject PyCFunction_Type = {
sizeof(PyCFunctionObject),
0,
(destructor)meth_dealloc, /* tp_dealloc */
- offsetof(PyCFunctionObject, vectorcall), /* tp_vectorcall_offset */
+ offsetof(PyCFunctionObject, vectorcall), /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)meth_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
(hashfunc)meth_hash, /* tp_hash */
- cfunction_call, /* tp_call */
+ cfunction_call, /* tp_call */
0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
+ Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
0, /* tp_doc */
(traverseproc)meth_traverse, /* tp_traverse */
0, /* tp_clear */
@@ -370,186 +370,186 @@ PyTypeObject PyCFunction_Type = {
0, /* tp_dict */
};
-PyTypeObject PyCMethod_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- .tp_name = "builtin_method",
- .tp_basicsize = sizeof(PyCMethodObject),
- .tp_base = &PyCFunction_Type,
-};
-
-/* Vectorcall functions for each of the PyCFunction calling conventions,
- * except for METH_VARARGS (possibly combined with METH_KEYWORDS) which
- * doesn't use vectorcall.
- *
- * First, common helpers
- */
-
-static inline int
-cfunction_check_kwargs(PyThreadState *tstate, PyObject *func, PyObject *kwnames)
-{
- assert(!_PyErr_Occurred(tstate));
- assert(PyCFunction_Check(func));
- if (kwnames && PyTuple_GET_SIZE(kwnames)) {
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U takes no keyword arguments", funcstr);
- Py_DECREF(funcstr);
- }
- return -1;
- }
- return 0;
-}
-
-typedef void (*funcptr)(void);
-
-static inline funcptr
-cfunction_enter_call(PyThreadState *tstate, PyObject *func)
-{
- if (_Py_EnterRecursiveCall(tstate, " while calling a Python object")) {
- return NULL;
- }
- return (funcptr)PyCFunction_GET_FUNCTION(func);
-}
-
-/* Now the actual vectorcall functions */
-static PyObject *
-cfunction_vectorcall_FASTCALL(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- if (cfunction_check_kwargs(tstate, func, kwnames)) {
- return NULL;
- }
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- _PyCFunctionFast meth = (_PyCFunctionFast)
- cfunction_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(PyCFunction_GET_SELF(func), args, nargs);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-static PyObject *
-cfunction_vectorcall_FASTCALL_KEYWORDS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- _PyCFunctionFastWithKeywords meth = (_PyCFunctionFastWithKeywords)
- cfunction_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(PyCFunction_GET_SELF(func), args, nargs, kwnames);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-static PyObject *
-cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- PyTypeObject *cls = PyCFunction_GET_CLASS(func);
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- PyCMethod meth = (PyCMethod)cfunction_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(PyCFunction_GET_SELF(func), cls, args, nargs, kwnames);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-static PyObject *
-cfunction_vectorcall_NOARGS(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- if (cfunction_check_kwargs(tstate, func, kwnames)) {
- return NULL;
- }
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (nargs != 0) {
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U takes no arguments (%zd given)", funcstr, nargs);
- Py_DECREF(funcstr);
- }
- return NULL;
- }
- PyCFunction meth = (PyCFunction)cfunction_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(PyCFunction_GET_SELF(func), NULL);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-static PyObject *
-cfunction_vectorcall_O(
- PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- if (cfunction_check_kwargs(tstate, func, kwnames)) {
- return NULL;
- }
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (nargs != 1) {
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U takes exactly one argument (%zd given)", funcstr, nargs);
- Py_DECREF(funcstr);
- }
- return NULL;
- }
- PyCFunction meth = (PyCFunction)cfunction_enter_call(tstate, func);
- if (meth == NULL) {
- return NULL;
- }
- PyObject *result = meth(PyCFunction_GET_SELF(func), args[0]);
- _Py_LeaveRecursiveCall(tstate);
- return result;
-}
-
-
-static PyObject *
-cfunction_call(PyObject *func, PyObject *args, PyObject *kwargs)
-{
- assert(kwargs == NULL || PyDict_Check(kwargs));
-
- PyThreadState *tstate = _PyThreadState_GET();
- assert(!_PyErr_Occurred(tstate));
-
- int flags = PyCFunction_GET_FLAGS(func);
- if (!(flags & METH_VARARGS)) {
- /* If this is not a METH_VARARGS function, delegate to vectorcall */
- return PyVectorcall_Call(func, args, kwargs);
- }
-
- /* For METH_VARARGS, we cannot use vectorcall as the vectorcall pointer
- * is NULL. This is intentional, since vectorcall would be slower. */
- PyCFunction meth = PyCFunction_GET_FUNCTION(func);
- PyObject *self = PyCFunction_GET_SELF(func);
-
- PyObject *result;
- if (flags & METH_KEYWORDS) {
- result = (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, args, kwargs);
- }
- else {
- if (kwargs != NULL && PyDict_GET_SIZE(kwargs) != 0) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%.200s() takes no keyword arguments",
- ((PyCFunctionObject*)func)->m_ml->ml_name);
- return NULL;
- }
- result = meth(self, args);
- }
- return _Py_CheckFunctionResult(tstate, func, result, NULL);
-}
+PyTypeObject PyCMethod_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ .tp_name = "builtin_method",
+ .tp_basicsize = sizeof(PyCMethodObject),
+ .tp_base = &PyCFunction_Type,
+};
+
+/* Vectorcall functions for each of the PyCFunction calling conventions,
+ * except for METH_VARARGS (possibly combined with METH_KEYWORDS) which
+ * doesn't use vectorcall.
+ *
+ * First, common helpers
+ */
+
+static inline int
+cfunction_check_kwargs(PyThreadState *tstate, PyObject *func, PyObject *kwnames)
+{
+ assert(!_PyErr_Occurred(tstate));
+ assert(PyCFunction_Check(func));
+ if (kwnames && PyTuple_GET_SIZE(kwnames)) {
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U takes no keyword arguments", funcstr);
+ Py_DECREF(funcstr);
+ }
+ return -1;
+ }
+ return 0;
+}
+
+typedef void (*funcptr)(void);
+
+static inline funcptr
+cfunction_enter_call(PyThreadState *tstate, PyObject *func)
+{
+ if (_Py_EnterRecursiveCall(tstate, " while calling a Python object")) {
+ return NULL;
+ }
+ return (funcptr)PyCFunction_GET_FUNCTION(func);
+}
+
+/* Now the actual vectorcall functions */
+static PyObject *
+cfunction_vectorcall_FASTCALL(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (cfunction_check_kwargs(tstate, func, kwnames)) {
+ return NULL;
+ }
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ _PyCFunctionFast meth = (_PyCFunctionFast)
+ cfunction_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(PyCFunction_GET_SELF(func), args, nargs);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+static PyObject *
+cfunction_vectorcall_FASTCALL_KEYWORDS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ _PyCFunctionFastWithKeywords meth = (_PyCFunctionFastWithKeywords)
+ cfunction_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(PyCFunction_GET_SELF(func), args, nargs, kwnames);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+static PyObject *
+cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyTypeObject *cls = PyCFunction_GET_CLASS(func);
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ PyCMethod meth = (PyCMethod)cfunction_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(PyCFunction_GET_SELF(func), cls, args, nargs, kwnames);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+static PyObject *
+cfunction_vectorcall_NOARGS(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (cfunction_check_kwargs(tstate, func, kwnames)) {
+ return NULL;
+ }
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (nargs != 0) {
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U takes no arguments (%zd given)", funcstr, nargs);
+ Py_DECREF(funcstr);
+ }
+ return NULL;
+ }
+ PyCFunction meth = (PyCFunction)cfunction_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(PyCFunction_GET_SELF(func), NULL);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+static PyObject *
+cfunction_vectorcall_O(
+ PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (cfunction_check_kwargs(tstate, func, kwnames)) {
+ return NULL;
+ }
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (nargs != 1) {
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U takes exactly one argument (%zd given)", funcstr, nargs);
+ Py_DECREF(funcstr);
+ }
+ return NULL;
+ }
+ PyCFunction meth = (PyCFunction)cfunction_enter_call(tstate, func);
+ if (meth == NULL) {
+ return NULL;
+ }
+ PyObject *result = meth(PyCFunction_GET_SELF(func), args[0]);
+ _Py_LeaveRecursiveCall(tstate);
+ return result;
+}
+
+
+static PyObject *
+cfunction_call(PyObject *func, PyObject *args, PyObject *kwargs)
+{
+ assert(kwargs == NULL || PyDict_Check(kwargs));
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ assert(!_PyErr_Occurred(tstate));
+
+ int flags = PyCFunction_GET_FLAGS(func);
+ if (!(flags & METH_VARARGS)) {
+ /* If this is not a METH_VARARGS function, delegate to vectorcall */
+ return PyVectorcall_Call(func, args, kwargs);
+ }
+
+ /* For METH_VARARGS, we cannot use vectorcall as the vectorcall pointer
+ * is NULL. This is intentional, since vectorcall would be slower. */
+ PyCFunction meth = PyCFunction_GET_FUNCTION(func);
+ PyObject *self = PyCFunction_GET_SELF(func);
+
+ PyObject *result;
+ if (flags & METH_KEYWORDS) {
+ result = (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, args, kwargs);
+ }
+ else {
+ if (kwargs != NULL && PyDict_GET_SIZE(kwargs) != 0) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%.200s() takes no keyword arguments",
+ ((PyCFunctionObject*)func)->m_ml->ml_name);
+ return NULL;
+ }
+ result = meth(self, args);
+ }
+ return _Py_CheckFunctionResult(tstate, func, result, NULL);
+}
diff --git a/contrib/tools/python3/src/Objects/moduleobject.c b/contrib/tools/python3/src/Objects/moduleobject.c
index 2707fbed52..ee4ed97588 100644
--- a/contrib/tools/python3/src/Objects/moduleobject.c
+++ b/contrib/tools/python3/src/Objects/moduleobject.c
@@ -2,16 +2,16 @@
/* Module object implementation */
#include "Python.h"
-#include "pycore_interp.h" // PyInterpreterState.importlib
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "structmember.h" // PyMemberDef
+#include "pycore_interp.h" // PyInterpreterState.importlib
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "structmember.h" // PyMemberDef
static Py_ssize_t max_module_number;
-_Py_IDENTIFIER(__doc__);
-_Py_IDENTIFIER(__name__);
-_Py_IDENTIFIER(__spec__);
-
+_Py_IDENTIFIER(__doc__);
+_Py_IDENTIFIER(__name__);
+_Py_IDENTIFIER(__spec__);
+
typedef struct {
PyObject_HEAD
PyObject *md_dict;
@@ -42,8 +42,8 @@ PyModuleDef_Init(struct PyModuleDef* def)
return NULL;
if (def->m_base.m_index == 0) {
max_module_number++;
- Py_SET_REFCNT(def, 1);
- Py_SET_TYPE(def, &PyModuleDef_Type);
+ Py_SET_REFCNT(def, 1);
+ Py_SET_TYPE(def, &PyModuleDef_Type);
def->m_base.m_index = max_module_number;
}
return (PyObject*)def;
@@ -165,11 +165,11 @@ _add_methods_to_object(PyObject *module, PyObject *name, PyMethodDef *functions)
PyObject *
PyModule_Create2(struct PyModuleDef* module, int module_api_version)
{
- if (!_PyImport_IsInitialized(_PyInterpreterState_GET())) {
- PyErr_SetString(PyExc_SystemError,
- "Python import machinery not initialized");
- return NULL;
- }
+ if (!_PyImport_IsInitialized(_PyInterpreterState_GET())) {
+ PyErr_SetString(PyExc_SystemError,
+ "Python import machinery not initialized");
+ return NULL;
+ }
return _PyModule_CreateInitialized(module, module_api_version);
}
@@ -573,24 +573,24 @@ _PyModule_ClearDict(PyObject *d)
Py_ssize_t pos;
PyObject *key, *value;
- int verbose = _Py_GetConfig()->verbose;
-
+ int verbose = _Py_GetConfig()->verbose;
+
/* First, clear only names starting with a single underscore */
pos = 0;
while (PyDict_Next(d, &pos, &key, &value)) {
if (value != Py_None && PyUnicode_Check(key)) {
if (PyUnicode_READ_CHAR(key, 0) == '_' &&
PyUnicode_READ_CHAR(key, 1) != '_') {
- if (verbose > 1) {
+ if (verbose > 1) {
const char *s = PyUnicode_AsUTF8(key);
if (s != NULL)
PySys_WriteStderr("# clear[1] %s\n", s);
else
PyErr_Clear();
}
- if (PyDict_SetItem(d, key, Py_None) != 0) {
- PyErr_WriteUnraisable(NULL);
- }
+ if (PyDict_SetItem(d, key, Py_None) != 0) {
+ PyErr_WriteUnraisable(NULL);
+ }
}
}
}
@@ -602,16 +602,16 @@ _PyModule_ClearDict(PyObject *d)
if (PyUnicode_READ_CHAR(key, 0) != '_' ||
!_PyUnicode_EqualToASCIIString(key, "__builtins__"))
{
- if (verbose > 1) {
+ if (verbose > 1) {
const char *s = PyUnicode_AsUTF8(key);
if (s != NULL)
PySys_WriteStderr("# clear[2] %s\n", s);
else
PyErr_Clear();
}
- if (PyDict_SetItem(d, key, Py_None) != 0) {
- PyErr_WriteUnraisable(NULL);
- }
+ if (PyDict_SetItem(d, key, Py_None) != 0) {
+ PyErr_WriteUnraisable(NULL);
+ }
}
}
}
@@ -660,20 +660,20 @@ module___init___impl(PyModuleObject *self, PyObject *name, PyObject *doc)
static void
module_dealloc(PyModuleObject *m)
{
- int verbose = _Py_GetConfig()->verbose;
-
+ int verbose = _Py_GetConfig()->verbose;
+
PyObject_GC_UnTrack(m);
- if (verbose && m->md_name) {
- PySys_FormatStderr("# destroy %U\n", m->md_name);
+ if (verbose && m->md_name) {
+ PySys_FormatStderr("# destroy %U\n", m->md_name);
}
if (m->md_weaklist != NULL)
PyObject_ClearWeakRefs((PyObject *) m);
- /* bpo-39824: Don't call m_free() if m_size > 0 and md_state=NULL */
- if (m->md_def && m->md_def->m_free
- && (m->md_def->m_size <= 0 || m->md_state != NULL))
- {
+ /* bpo-39824: Don't call m_free() if m_size > 0 and md_state=NULL */
+ if (m->md_def && m->md_def->m_free
+ && (m->md_def->m_size <= 0 || m->md_state != NULL))
+ {
m->md_def->m_free(m);
- }
+ }
Py_XDECREF(m->md_dict);
Py_XDECREF(m->md_name);
if (m->md_state != NULL)
@@ -684,32 +684,32 @@ module_dealloc(PyModuleObject *m)
static PyObject *
module_repr(PyModuleObject *m)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
return PyObject_CallMethod(interp->importlib, "_module_repr", "O", m);
}
-/* Check if the "_initializing" attribute of the module spec is set to true.
- Clear the exception and return 0 if spec is NULL.
- */
-int
-_PyModuleSpec_IsInitializing(PyObject *spec)
-{
- if (spec != NULL) {
- _Py_IDENTIFIER(_initializing);
- PyObject *value = _PyObject_GetAttrId(spec, &PyId__initializing);
- if (value != NULL) {
- int initializing = PyObject_IsTrue(value);
- Py_DECREF(value);
- if (initializing >= 0) {
- return initializing;
- }
- }
- }
- PyErr_Clear();
- return 0;
-}
-
+/* Check if the "_initializing" attribute of the module spec is set to true.
+ Clear the exception and return 0 if spec is NULL.
+ */
+int
+_PyModuleSpec_IsInitializing(PyObject *spec)
+{
+ if (spec != NULL) {
+ _Py_IDENTIFIER(_initializing);
+ PyObject *value = _PyObject_GetAttrId(spec, &PyId__initializing);
+ if (value != NULL) {
+ int initializing = PyObject_IsTrue(value);
+ Py_DECREF(value);
+ if (initializing >= 0) {
+ return initializing;
+ }
+ }
+ }
+ PyErr_Clear();
+ return 0;
+}
+
static PyObject*
module_getattro(PyModuleObject *m, PyObject *name)
{
@@ -723,27 +723,27 @@ module_getattro(PyModuleObject *m, PyObject *name)
_Py_IDENTIFIER(__getattr__);
getattr = _PyDict_GetItemId(m->md_dict, &PyId___getattr__);
if (getattr) {
- return PyObject_CallOneArg(getattr, name);
+ return PyObject_CallOneArg(getattr, name);
}
mod_name = _PyDict_GetItemId(m->md_dict, &PyId___name__);
if (mod_name && PyUnicode_Check(mod_name)) {
- Py_INCREF(mod_name);
- PyObject *spec = _PyDict_GetItemId(m->md_dict, &PyId___spec__);
- Py_XINCREF(spec);
- if (_PyModuleSpec_IsInitializing(spec)) {
- PyErr_Format(PyExc_AttributeError,
- "partially initialized "
- "module '%U' has no attribute '%U' "
- "(most likely due to a circular import)",
- mod_name, name);
- }
- else {
- PyErr_Format(PyExc_AttributeError,
- "module '%U' has no attribute '%U'",
- mod_name, name);
- }
- Py_XDECREF(spec);
- Py_DECREF(mod_name);
+ Py_INCREF(mod_name);
+ PyObject *spec = _PyDict_GetItemId(m->md_dict, &PyId___spec__);
+ Py_XINCREF(spec);
+ if (_PyModuleSpec_IsInitializing(spec)) {
+ PyErr_Format(PyExc_AttributeError,
+ "partially initialized "
+ "module '%U' has no attribute '%U' "
+ "(most likely due to a circular import)",
+ mod_name, name);
+ }
+ else {
+ PyErr_Format(PyExc_AttributeError,
+ "module '%U' has no attribute '%U'",
+ mod_name, name);
+ }
+ Py_XDECREF(spec);
+ Py_DECREF(mod_name);
return NULL;
}
}
@@ -755,10 +755,10 @@ module_getattro(PyModuleObject *m, PyObject *name)
static int
module_traverse(PyModuleObject *m, visitproc visit, void *arg)
{
- /* bpo-39824: Don't call m_traverse() if m_size > 0 and md_state=NULL */
- if (m->md_def && m->md_def->m_traverse
- && (m->md_def->m_size <= 0 || m->md_state != NULL))
- {
+ /* bpo-39824: Don't call m_traverse() if m_size > 0 and md_state=NULL */
+ if (m->md_def && m->md_def->m_traverse
+ && (m->md_def->m_size <= 0 || m->md_state != NULL))
+ {
int res = m->md_def->m_traverse((PyObject*)m, visit, arg);
if (res)
return res;
@@ -770,17 +770,17 @@ module_traverse(PyModuleObject *m, visitproc visit, void *arg)
static int
module_clear(PyModuleObject *m)
{
- /* bpo-39824: Don't call m_clear() if m_size > 0 and md_state=NULL */
- if (m->md_def && m->md_def->m_clear
- && (m->md_def->m_size <= 0 || m->md_state != NULL))
- {
+ /* bpo-39824: Don't call m_clear() if m_size > 0 and md_state=NULL */
+ if (m->md_def && m->md_def->m_clear
+ && (m->md_def->m_size <= 0 || m->md_state != NULL))
+ {
int res = m->md_def->m_clear((PyObject*)m);
- if (PyErr_Occurred()) {
- PySys_FormatStderr("Exception ignored in m_clear of module%s%V\n",
- m->md_name ? " " : "",
- m->md_name, "");
- PyErr_WriteUnraisable(NULL);
- }
+ if (PyErr_Occurred()) {
+ PySys_FormatStderr("Exception ignored in m_clear of module%s%V\n",
+ m->md_name ? " " : "",
+ m->md_name, "");
+ PyErr_WriteUnraisable(NULL);
+ }
if (res)
return res;
}
@@ -792,17 +792,17 @@ static PyObject *
module_dir(PyObject *self, PyObject *args)
{
_Py_IDENTIFIER(__dict__);
- _Py_IDENTIFIER(__dir__);
+ _Py_IDENTIFIER(__dir__);
PyObject *result = NULL;
PyObject *dict = _PyObject_GetAttrId(self, &PyId___dict__);
if (dict != NULL) {
if (PyDict_Check(dict)) {
- PyObject *dirfunc = _PyDict_GetItemIdWithError(dict, &PyId___dir__);
+ PyObject *dirfunc = _PyDict_GetItemIdWithError(dict, &PyId___dir__);
if (dirfunc) {
result = _PyObject_CallNoArg(dirfunc);
}
- else if (!PyErr_Occurred()) {
+ else if (!PyErr_Occurred()) {
result = PyDict_Keys(dict);
}
}
@@ -831,10 +831,10 @@ PyTypeObject PyModule_Type = {
sizeof(PyModuleObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)module_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)module_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/namespaceobject.c b/contrib/tools/python3/src/Objects/namespaceobject.c
index 556dfe326a..fa37ed250d 100644
--- a/contrib/tools/python3/src/Objects/namespaceobject.c
+++ b/contrib/tools/python3/src/Objects/namespaceobject.c
@@ -1,7 +1,7 @@
// namespace object implementation
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
typedef struct {
@@ -72,8 +72,8 @@ namespace_repr(PyObject *ns)
PyObject *separator, *pairsrepr, *repr = NULL;
const char * name;
- name = Py_IS_TYPE(ns, &_PyNamespace_Type) ? "namespace"
- : Py_TYPE(ns)->tp_name;
+ name = Py_IS_TYPE(ns, &_PyNamespace_Type) ? "namespace"
+ : Py_TYPE(ns)->tp_name;
i = Py_ReprEnter(ns);
if (i != 0) {
@@ -100,9 +100,9 @@ namespace_repr(PyObject *ns)
if (PyUnicode_Check(key) && PyUnicode_GET_LENGTH(key) > 0) {
PyObject *value, *item;
- value = PyDict_GetItemWithError(d, key);
+ value = PyDict_GetItemWithError(d, key);
if (value != NULL) {
- item = PyUnicode_FromFormat("%U=%R", key, value);
+ item = PyUnicode_FromFormat("%U=%R", key, value);
if (item == NULL) {
loop_error = 1;
}
@@ -111,9 +111,9 @@ namespace_repr(PyObject *ns)
Py_DECREF(item);
}
}
- else if (PyErr_Occurred()) {
- loop_error = 1;
- }
+ else if (PyErr_Occurred()) {
+ loop_error = 1;
+ }
}
Py_DECREF(key);
@@ -174,7 +174,7 @@ namespace_richcompare(PyObject *self, PyObject *other, int op)
PyDoc_STRVAR(namespace_reduce__doc__, "Return state information for pickling");
static PyObject *
-namespace_reduce(_PyNamespaceObject *ns, PyObject *Py_UNUSED(ignored))
+namespace_reduce(_PyNamespaceObject *ns, PyObject *Py_UNUSED(ignored))
{
PyObject *result, *args = PyTuple_New(0);
@@ -205,10 +205,10 @@ PyTypeObject _PyNamespace_Type = {
sizeof(_PyNamespaceObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)namespace_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)namespace_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/object.c b/contrib/tools/python3/src/Objects/object.c
index 2b5c2fe73b..623ee52eb1 100644
--- a/contrib/tools/python3/src/Objects/object.c
+++ b/contrib/tools/python3/src/Objects/object.c
@@ -2,53 +2,53 @@
/* Generic object operations; and implementation of None */
#include "Python.h"
-#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
-#include "pycore_context.h"
-#include "pycore_initconfig.h"
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pylifecycle.h"
-#include "pycore_pymem.h" // _PyMem_IsPtrFreed()
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
+#include "pycore_context.h"
+#include "pycore_initconfig.h"
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pylifecycle.h"
+#include "pycore_pymem.h" // _PyMem_IsPtrFreed()
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include "frameobject.h"
-#include "interpreteridobject.h"
+#include "interpreteridobject.h"
#ifdef __cplusplus
extern "C" {
#endif
-/* Defined in tracemalloc.c */
-extern void _PyMem_DumpTraceback(int fd, const void *ptr);
-
+/* Defined in tracemalloc.c */
+extern void _PyMem_DumpTraceback(int fd, const void *ptr);
+
_Py_IDENTIFIER(Py_Repr);
_Py_IDENTIFIER(__bytes__);
_Py_IDENTIFIER(__dir__);
_Py_IDENTIFIER(__isabstractmethod__);
-
-int
-_PyObject_CheckConsistency(PyObject *op, int check_content)
-{
-#define CHECK(expr) \
- do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG(op, Py_STRINGIFY(expr)); } } while (0)
-
- CHECK(!_PyObject_IsFreed(op));
- CHECK(Py_REFCNT(op) >= 1);
-
- _PyType_CheckConsistency(Py_TYPE(op));
-
- if (PyUnicode_Check(op)) {
- _PyUnicode_CheckConsistency(op, check_content);
- }
- else if (PyDict_Check(op)) {
- _PyDict_CheckConsistency(op, check_content);
- }
- return 1;
-
-#undef CHECK
-}
-
-
+
+int
+_PyObject_CheckConsistency(PyObject *op, int check_content)
+{
+#define CHECK(expr) \
+ do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG(op, Py_STRINGIFY(expr)); } } while (0)
+
+ CHECK(!_PyObject_IsFreed(op));
+ CHECK(Py_REFCNT(op) >= 1);
+
+ _PyType_CheckConsistency(Py_TYPE(op));
+
+ if (PyUnicode_Check(op)) {
+ _PyUnicode_CheckConsistency(op, check_content);
+ }
+ else if (PyDict_Check(op)) {
+ _PyDict_CheckConsistency(op, check_content);
+ }
+ return 1;
+
+#undef CHECK
+}
+
+
#ifdef Py_REF_DEBUG
Py_ssize_t _Py_RefTotal;
@@ -59,7 +59,7 @@ _Py_GetRefTotal(void)
Py_ssize_t total = _Py_RefTotal;
o = _PySet_Dummy;
if (o != NULL)
- total -= Py_REFCNT(o);
+ total -= Py_REFCNT(o);
return total;
}
@@ -102,7 +102,7 @@ _Py_AddToAllObjects(PyObject *op, int force)
/* If it's initialized memory, op must be in or out of
* the list unambiguously.
*/
- _PyObject_ASSERT(op, (op->_ob_prev == NULL) == (op->_ob_next == NULL));
+ _PyObject_ASSERT(op, (op->_ob_prev == NULL) == (op->_ob_next == NULL));
}
#endif
if (force || op->_ob_prev == NULL) {
@@ -117,10 +117,10 @@ _Py_AddToAllObjects(PyObject *op, int force)
#ifdef Py_REF_DEBUG
/* Log a fatal error; doesn't return. */
void
-_Py_NegativeRefcount(const char *filename, int lineno, PyObject *op)
+_Py_NegativeRefcount(const char *filename, int lineno, PyObject *op)
{
- _PyObject_AssertFailed(op, NULL, "object has negative ref count",
- filename, lineno, __func__);
+ _PyObject_AssertFailed(op, NULL, "object has negative ref count",
+ filename, lineno, __func__);
}
#endif /* Py_REF_DEBUG */
@@ -140,34 +140,34 @@ Py_DecRef(PyObject *o)
PyObject *
PyObject_Init(PyObject *op, PyTypeObject *tp)
{
- /* Any changes should be reflected in PyObject_INIT() macro */
- if (op == NULL) {
+ /* Any changes should be reflected in PyObject_INIT() macro */
+ if (op == NULL) {
return PyErr_NoMemory();
- }
-
- return PyObject_INIT(op, tp);
+ }
+
+ return PyObject_INIT(op, tp);
}
PyVarObject *
PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, Py_ssize_t size)
{
- /* Any changes should be reflected in PyObject_INIT_VAR() macro */
- if (op == NULL) {
+ /* Any changes should be reflected in PyObject_INIT_VAR() macro */
+ if (op == NULL) {
return (PyVarObject *) PyErr_NoMemory();
- }
-
- return PyObject_INIT_VAR(op, tp, size);
+ }
+
+ return PyObject_INIT_VAR(op, tp, size);
}
PyObject *
_PyObject_New(PyTypeObject *tp)
{
- PyObject *op = (PyObject *) PyObject_MALLOC(_PyObject_SIZE(tp));
- if (op == NULL) {
+ PyObject *op = (PyObject *) PyObject_MALLOC(_PyObject_SIZE(tp));
+ if (op == NULL) {
return PyErr_NoMemory();
- }
- PyObject_INIT(op, tp);
- return op;
+ }
+ PyObject_INIT(op, tp);
+ return op;
}
PyVarObject *
@@ -186,56 +186,56 @@ PyObject_CallFinalizer(PyObject *self)
{
PyTypeObject *tp = Py_TYPE(self);
- if (tp->tp_finalize == NULL)
+ if (tp->tp_finalize == NULL)
return;
/* tp_finalize should only be called once. */
- if (_PyType_IS_GC(tp) && _PyGC_FINALIZED(self))
+ if (_PyType_IS_GC(tp) && _PyGC_FINALIZED(self))
return;
tp->tp_finalize(self);
- if (_PyType_IS_GC(tp)) {
- _PyGC_SET_FINALIZED(self);
- }
+ if (_PyType_IS_GC(tp)) {
+ _PyGC_SET_FINALIZED(self);
+ }
}
int
PyObject_CallFinalizerFromDealloc(PyObject *self)
{
- if (Py_REFCNT(self) != 0) {
- _PyObject_ASSERT_FAILED_MSG(self,
- "PyObject_CallFinalizerFromDealloc called "
- "on object with a non-zero refcount");
- }
+ if (Py_REFCNT(self) != 0) {
+ _PyObject_ASSERT_FAILED_MSG(self,
+ "PyObject_CallFinalizerFromDealloc called "
+ "on object with a non-zero refcount");
+ }
/* Temporarily resurrect the object. */
- Py_SET_REFCNT(self, 1);
+ Py_SET_REFCNT(self, 1);
PyObject_CallFinalizer(self);
- _PyObject_ASSERT_WITH_MSG(self,
- Py_REFCNT(self) > 0,
- "refcount is too small");
-
- /* Undo the temporary resurrection; can't use DECREF here, it would
- * cause a recursive call. */
- Py_SET_REFCNT(self, Py_REFCNT(self) - 1);
- if (Py_REFCNT(self) == 0) {
+ _PyObject_ASSERT_WITH_MSG(self,
+ Py_REFCNT(self) > 0,
+ "refcount is too small");
+
+ /* Undo the temporary resurrection; can't use DECREF here, it would
+ * cause a recursive call. */
+ Py_SET_REFCNT(self, Py_REFCNT(self) - 1);
+ if (Py_REFCNT(self) == 0) {
return 0; /* this is the normal path out */
- }
+ }
/* tp_finalize resurrected it! Make it look like the original Py_DECREF
- * never happened. */
- Py_ssize_t refcnt = Py_REFCNT(self);
+ * never happened. */
+ Py_ssize_t refcnt = Py_REFCNT(self);
_Py_NewReference(self);
- Py_SET_REFCNT(self, refcnt);
-
- _PyObject_ASSERT(self,
- (!_PyType_IS_GC(Py_TYPE(self))
- || _PyObject_GC_IS_TRACKED(self)));
- /* If Py_REF_DEBUG macro is defined, _Py_NewReference() increased
- _Py_RefTotal, so we need to undo that. */
-#ifdef Py_REF_DEBUG
- _Py_RefTotal--;
+ Py_SET_REFCNT(self, refcnt);
+
+ _PyObject_ASSERT(self,
+ (!_PyType_IS_GC(Py_TYPE(self))
+ || _PyObject_GC_IS_TRACKED(self)));
+ /* If Py_REF_DEBUG macro is defined, _Py_NewReference() increased
+ _Py_RefTotal, so we need to undo that. */
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal--;
#endif
return -1;
}
@@ -259,14 +259,14 @@ PyObject_Print(PyObject *op, FILE *fp, int flags)
Py_END_ALLOW_THREADS
}
else {
- if (Py_REFCNT(op) <= 0) {
+ if (Py_REFCNT(op) <= 0) {
/* XXX(twouters) cast refcount to long until %zd is
universally available */
Py_BEGIN_ALLOW_THREADS
fprintf(fp, "<refcnt %ld at %p>",
- (long)Py_REFCNT(op), (void *)op);
+ (long)Py_REFCNT(op), (void *)op);
Py_END_ALLOW_THREADS
- }
+ }
else {
PyObject *s;
if (flags & Py_PRINT_RAW)
@@ -294,7 +294,7 @@ PyObject_Print(PyObject *op, FILE *fp, int flags)
else {
PyErr_Format(PyExc_TypeError,
"str() or repr() returned '%.100s'",
- Py_TYPE(s)->tp_name);
+ Py_TYPE(s)->tp_name);
ret = -1;
}
Py_XDECREF(s);
@@ -317,29 +317,29 @@ _Py_BreakPoint(void)
}
-/* Heuristic checking if the object memory is uninitialized or deallocated.
- Rely on the debug hooks on Python memory allocators:
- see _PyMem_IsPtrFreed().
+/* Heuristic checking if the object memory is uninitialized or deallocated.
+ Rely on the debug hooks on Python memory allocators:
+ see _PyMem_IsPtrFreed().
The function can be used to prevent segmentation fault on dereferencing
- pointers like 0xDDDDDDDDDDDDDDDD. */
+ pointers like 0xDDDDDDDDDDDDDDDD. */
int
_PyObject_IsFreed(PyObject *op)
{
- if (_PyMem_IsPtrFreed(op) || _PyMem_IsPtrFreed(Py_TYPE(op))) {
+ if (_PyMem_IsPtrFreed(op) || _PyMem_IsPtrFreed(Py_TYPE(op))) {
return 1;
}
- /* ignore op->ob_ref: its value can have be modified
+ /* ignore op->ob_ref: its value can have be modified
by Py_INCREF() and Py_DECREF(). */
#ifdef Py_TRACE_REFS
- if (op->_ob_next != NULL && _PyMem_IsPtrFreed(op->_ob_next)) {
- return 1;
- }
- if (op->_ob_prev != NULL && _PyMem_IsPtrFreed(op->_ob_prev)) {
- return 1;
- }
+ if (op->_ob_next != NULL && _PyMem_IsPtrFreed(op->_ob_next)) {
+ return 1;
+ }
+ if (op->_ob_prev != NULL && _PyMem_IsPtrFreed(op->_ob_prev)) {
+ return 1;
+ }
#endif
- return 0;
+ return 0;
}
@@ -350,38 +350,38 @@ _PyObject_Dump(PyObject* op)
if (_PyObject_IsFreed(op)) {
/* It seems like the object memory has been freed:
don't access it to prevent a segmentation fault. */
- fprintf(stderr, "<object at %p is freed>\n", op);
- fflush(stderr);
+ fprintf(stderr, "<object at %p is freed>\n", op);
+ fflush(stderr);
return;
}
- /* first, write fields which are the least likely to crash */
- fprintf(stderr, "object address : %p\n", (void *)op);
- /* XXX(twouters) cast refcount to long until %zd is
- universally available */
- fprintf(stderr, "object refcount : %ld\n", (long)Py_REFCNT(op));
- fflush(stderr);
-
- PyTypeObject *type = Py_TYPE(op);
- fprintf(stderr, "object type : %p\n", type);
- fprintf(stderr, "object type name: %s\n",
- type==NULL ? "NULL" : type->tp_name);
-
- /* the most dangerous part */
- fprintf(stderr, "object repr : ");
+ /* first, write fields which are the least likely to crash */
+ fprintf(stderr, "object address : %p\n", (void *)op);
+ /* XXX(twouters) cast refcount to long until %zd is
+ universally available */
+ fprintf(stderr, "object refcount : %ld\n", (long)Py_REFCNT(op));
fflush(stderr);
- PyGILState_STATE gil = PyGILState_Ensure();
- PyObject *error_type, *error_value, *error_traceback;
+ PyTypeObject *type = Py_TYPE(op);
+ fprintf(stderr, "object type : %p\n", type);
+ fprintf(stderr, "object type name: %s\n",
+ type==NULL ? "NULL" : type->tp_name);
+
+ /* the most dangerous part */
+ fprintf(stderr, "object repr : ");
+ fflush(stderr);
+
+ PyGILState_STATE gil = PyGILState_Ensure();
+ PyObject *error_type, *error_value, *error_traceback;
PyErr_Fetch(&error_type, &error_value, &error_traceback);
-
+
(void)PyObject_Print(op, stderr, 0);
fflush(stderr);
-
+
PyErr_Restore(error_type, error_value, error_traceback);
- PyGILState_Release(gil);
+ PyGILState_Release(gil);
- fprintf(stderr, "\n");
+ fprintf(stderr, "\n");
fflush(stderr);
}
@@ -401,39 +401,39 @@ PyObject_Repr(PyObject *v)
return PyUnicode_FromString("<NULL>");
if (Py_TYPE(v)->tp_repr == NULL)
return PyUnicode_FromFormat("<%s object at %p>",
- Py_TYPE(v)->tp_name, v);
+ Py_TYPE(v)->tp_name, v);
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
#ifdef Py_DEBUG
/* PyObject_Repr() must not be called with an exception set,
because it can clear it (directly or indirectly) and so the
caller loses its exception */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
#endif
/* It is possible for a type to have a tp_repr representation that loops
infinitely. */
- if (_Py_EnterRecursiveCall(tstate,
- " while getting the repr of an object")) {
+ if (_Py_EnterRecursiveCall(tstate,
+ " while getting the repr of an object")) {
return NULL;
- }
- res = (*Py_TYPE(v)->tp_repr)(v);
- _Py_LeaveRecursiveCall(tstate);
-
- if (res == NULL) {
+ }
+ res = (*Py_TYPE(v)->tp_repr)(v);
+ _Py_LeaveRecursiveCall(tstate);
+
+ if (res == NULL) {
return NULL;
- }
+ }
if (!PyUnicode_Check(res)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "__repr__ returned non-string (type %.200s)",
- Py_TYPE(res)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "__repr__ returned non-string (type %.200s)",
+ Py_TYPE(res)->tp_name);
Py_DECREF(res);
return NULL;
}
#ifndef Py_DEBUG
- if (PyUnicode_READY(res) < 0) {
+ if (PyUnicode_READY(res) < 0) {
return NULL;
- }
+ }
#endif
return res;
}
@@ -463,36 +463,36 @@ PyObject_Str(PyObject *v)
if (Py_TYPE(v)->tp_str == NULL)
return PyObject_Repr(v);
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
#ifdef Py_DEBUG
/* PyObject_Str() must not be called with an exception set,
because it can clear it (directly or indirectly) and so the
caller loses its exception */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
#endif
/* It is possible for a type to have a tp_str representation that loops
infinitely. */
- if (_Py_EnterRecursiveCall(tstate, " while getting the str of an object")) {
+ if (_Py_EnterRecursiveCall(tstate, " while getting the str of an object")) {
return NULL;
- }
+ }
res = (*Py_TYPE(v)->tp_str)(v);
- _Py_LeaveRecursiveCall(tstate);
-
- if (res == NULL) {
+ _Py_LeaveRecursiveCall(tstate);
+
+ if (res == NULL) {
return NULL;
- }
+ }
if (!PyUnicode_Check(res)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "__str__ returned non-string (type %.200s)",
- Py_TYPE(res)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "__str__ returned non-string (type %.200s)",
+ Py_TYPE(res)->tp_name);
Py_DECREF(res);
return NULL;
}
#ifndef Py_DEBUG
- if (PyUnicode_READY(res) < 0) {
+ if (PyUnicode_READY(res) < 0) {
return NULL;
- }
+ }
#endif
assert(_PyUnicode_CheckConsistency(res, 1));
return res;
@@ -558,68 +558,68 @@ PyObject_Bytes(PyObject *v)
return PyBytes_FromObject(v);
}
-
-/*
-def _PyObject_FunctionStr(x):
- try:
- qualname = x.__qualname__
- except AttributeError:
- return str(x)
- try:
- mod = x.__module__
- if mod is not None and mod != 'builtins':
- return f"{x.__module__}.{qualname}()"
- except AttributeError:
- pass
- return qualname
-*/
-PyObject *
-_PyObject_FunctionStr(PyObject *x)
-{
- _Py_IDENTIFIER(__module__);
- _Py_IDENTIFIER(__qualname__);
- _Py_IDENTIFIER(builtins);
- assert(!PyErr_Occurred());
- PyObject *qualname;
- int ret = _PyObject_LookupAttrId(x, &PyId___qualname__, &qualname);
- if (qualname == NULL) {
- if (ret < 0) {
- return NULL;
- }
- return PyObject_Str(x);
- }
- PyObject *module;
- PyObject *result = NULL;
- ret = _PyObject_LookupAttrId(x, &PyId___module__, &module);
- if (module != NULL && module != Py_None) {
- PyObject *builtinsname = _PyUnicode_FromId(&PyId_builtins);
- if (builtinsname == NULL) {
- goto done;
- }
- ret = PyObject_RichCompareBool(module, builtinsname, Py_NE);
- if (ret < 0) {
- // error
- goto done;
- }
- if (ret > 0) {
- result = PyUnicode_FromFormat("%S.%S()", module, qualname);
- goto done;
- }
- }
- else if (ret < 0) {
- goto done;
- }
- result = PyUnicode_FromFormat("%S()", qualname);
-done:
- Py_DECREF(qualname);
- Py_XDECREF(module);
- return result;
-}
-
+
+/*
+def _PyObject_FunctionStr(x):
+ try:
+ qualname = x.__qualname__
+ except AttributeError:
+ return str(x)
+ try:
+ mod = x.__module__
+ if mod is not None and mod != 'builtins':
+ return f"{x.__module__}.{qualname}()"
+ except AttributeError:
+ pass
+ return qualname
+*/
+PyObject *
+_PyObject_FunctionStr(PyObject *x)
+{
+ _Py_IDENTIFIER(__module__);
+ _Py_IDENTIFIER(__qualname__);
+ _Py_IDENTIFIER(builtins);
+ assert(!PyErr_Occurred());
+ PyObject *qualname;
+ int ret = _PyObject_LookupAttrId(x, &PyId___qualname__, &qualname);
+ if (qualname == NULL) {
+ if (ret < 0) {
+ return NULL;
+ }
+ return PyObject_Str(x);
+ }
+ PyObject *module;
+ PyObject *result = NULL;
+ ret = _PyObject_LookupAttrId(x, &PyId___module__, &module);
+ if (module != NULL && module != Py_None) {
+ PyObject *builtinsname = _PyUnicode_FromId(&PyId_builtins);
+ if (builtinsname == NULL) {
+ goto done;
+ }
+ ret = PyObject_RichCompareBool(module, builtinsname, Py_NE);
+ if (ret < 0) {
+ // error
+ goto done;
+ }
+ if (ret > 0) {
+ result = PyUnicode_FromFormat("%S.%S()", module, qualname);
+ goto done;
+ }
+ }
+ else if (ret < 0) {
+ goto done;
+ }
+ result = PyUnicode_FromFormat("%S()", qualname);
+done:
+ Py_DECREF(qualname);
+ Py_XDECREF(module);
+ return result;
+}
+
/* For Python 3.0.1 and later, the old three-way comparison has been
completely removed in favour of rich comparisons. PyObject_Compare() and
PyObject_Cmp() are gone, and the builtin cmp function no longer exists.
- The old tp_compare slot has been renamed to tp_as_async, and should no
+ The old tp_compare slot has been renamed to tp_as_async, and should no
longer be used. Use tp_richcompare instead.
See (*) below for practical amendments.
@@ -654,28 +654,28 @@ static const char * const opstrings[] = {"<", "<=", "==", "!=", ">", ">="};
/* Perform a rich comparison, raising TypeError when the requested comparison
operator is not supported. */
static PyObject *
-do_richcompare(PyThreadState *tstate, PyObject *v, PyObject *w, int op)
+do_richcompare(PyThreadState *tstate, PyObject *v, PyObject *w, int op)
{
richcmpfunc f;
PyObject *res;
int checked_reverse_op = 0;
- if (!Py_IS_TYPE(v, Py_TYPE(w)) &&
- PyType_IsSubtype(Py_TYPE(w), Py_TYPE(v)) &&
- (f = Py_TYPE(w)->tp_richcompare) != NULL) {
+ if (!Py_IS_TYPE(v, Py_TYPE(w)) &&
+ PyType_IsSubtype(Py_TYPE(w), Py_TYPE(v)) &&
+ (f = Py_TYPE(w)->tp_richcompare) != NULL) {
checked_reverse_op = 1;
res = (*f)(w, v, _Py_SwappedOp[op]);
if (res != Py_NotImplemented)
return res;
Py_DECREF(res);
}
- if ((f = Py_TYPE(v)->tp_richcompare) != NULL) {
+ if ((f = Py_TYPE(v)->tp_richcompare) != NULL) {
res = (*f)(v, w, op);
if (res != Py_NotImplemented)
return res;
Py_DECREF(res);
}
- if (!checked_reverse_op && (f = Py_TYPE(w)->tp_richcompare) != NULL) {
+ if (!checked_reverse_op && (f = Py_TYPE(w)->tp_richcompare) != NULL) {
res = (*f)(w, v, _Py_SwappedOp[op]);
if (res != Py_NotImplemented)
return res;
@@ -691,11 +691,11 @@ do_richcompare(PyThreadState *tstate, PyObject *v, PyObject *w, int op)
res = (v != w) ? Py_True : Py_False;
break;
default:
- _PyErr_Format(tstate, PyExc_TypeError,
- "'%s' not supported between instances of '%.100s' and '%.100s'",
- opstrings[op],
- Py_TYPE(v)->tp_name,
- Py_TYPE(w)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'%s' not supported between instances of '%.100s' and '%.100s'",
+ opstrings[op],
+ Py_TYPE(v)->tp_name,
+ Py_TYPE(w)->tp_name);
return NULL;
}
Py_INCREF(res);
@@ -708,20 +708,20 @@ do_richcompare(PyThreadState *tstate, PyObject *v, PyObject *w, int op)
PyObject *
PyObject_RichCompare(PyObject *v, PyObject *w, int op)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
assert(Py_LT <= op && op <= Py_GE);
if (v == NULL || w == NULL) {
- if (!_PyErr_Occurred(tstate)) {
+ if (!_PyErr_Occurred(tstate)) {
PyErr_BadInternalCall();
- }
+ }
return NULL;
}
- if (_Py_EnterRecursiveCall(tstate, " in comparison")) {
+ if (_Py_EnterRecursiveCall(tstate, " in comparison")) {
return NULL;
- }
- PyObject *res = do_richcompare(tstate, v, w, op);
- _Py_LeaveRecursiveCall(tstate);
+ }
+ PyObject *res = do_richcompare(tstate, v, w, op);
+ _Py_LeaveRecursiveCall(tstate);
return res;
}
@@ -883,7 +883,7 @@ PyObject_GetAttr(PyObject *v, PyObject *name)
if (!PyUnicode_Check(name)) {
PyErr_Format(PyExc_TypeError,
"attribute name must be string, not '%.200s'",
- Py_TYPE(name)->tp_name);
+ Py_TYPE(name)->tp_name);
return NULL;
}
if (tp->tp_getattro != NULL)
@@ -908,7 +908,7 @@ _PyObject_LookupAttr(PyObject *v, PyObject *name, PyObject **result)
if (!PyUnicode_Check(name)) {
PyErr_Format(PyExc_TypeError,
"attribute name must be string, not '%.200s'",
- Py_TYPE(name)->tp_name);
+ Py_TYPE(name)->tp_name);
*result = NULL;
return -1;
}
@@ -984,7 +984,7 @@ PyObject_SetAttr(PyObject *v, PyObject *name, PyObject *value)
if (!PyUnicode_Check(name)) {
PyErr_Format(PyExc_TypeError,
"attribute name must be string, not '%.200s'",
- Py_TYPE(name)->tp_name);
+ Py_TYPE(name)->tp_name);
return -1;
}
Py_INCREF(name);
@@ -997,16 +997,16 @@ PyObject_SetAttr(PyObject *v, PyObject *name, PyObject *value)
}
if (tp->tp_setattr != NULL) {
const char *name_str = PyUnicode_AsUTF8(name);
- if (name_str == NULL) {
- Py_DECREF(name);
+ if (name_str == NULL) {
+ Py_DECREF(name);
return -1;
- }
+ }
err = (*tp->tp_setattr)(v, (char *)name_str, value);
Py_DECREF(name);
return err;
}
Py_DECREF(name);
- _PyObject_ASSERT(name, Py_REFCNT(name) >= 1);
+ _PyObject_ASSERT(name, Py_REFCNT(name) >= 1);
if (tp->tp_getattr == NULL && tp->tp_getattro == NULL)
PyErr_Format(PyExc_TypeError,
"'%.100s' object has no attributes "
@@ -1036,15 +1036,15 @@ _PyObject_GetDictPtr(PyObject *obj)
if (dictoffset == 0)
return NULL;
if (dictoffset < 0) {
- Py_ssize_t tsize = Py_SIZE(obj);
- if (tsize < 0) {
+ Py_ssize_t tsize = Py_SIZE(obj);
+ if (tsize < 0) {
tsize = -tsize;
- }
- size_t size = _PyObject_VAR_SIZE(tp, tsize);
+ }
+ size_t size = _PyObject_VAR_SIZE(tp, tsize);
dictoffset += (long)size;
- _PyObject_ASSERT(obj, dictoffset > 0);
- _PyObject_ASSERT(obj, dictoffset % SIZEOF_VOID_P == 0);
+ _PyObject_ASSERT(obj, dictoffset > 0);
+ _PyObject_ASSERT(obj, dictoffset % SIZEOF_VOID_P == 0);
}
return (PyObject **) ((char *)obj + dictoffset);
}
@@ -1105,12 +1105,12 @@ _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method)
descr = _PyType_Lookup(tp, name);
if (descr != NULL) {
Py_INCREF(descr);
- if (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)) {
+ if (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)) {
meth_found = 1;
} else {
- f = Py_TYPE(descr)->tp_descr_get;
+ f = Py_TYPE(descr)->tp_descr_get;
if (f != NULL && PyDescr_IsData(descr)) {
- *method = f(descr, obj, (PyObject *)Py_TYPE(obj));
+ *method = f(descr, obj, (PyObject *)Py_TYPE(obj));
Py_DECREF(descr);
return 0;
}
@@ -1120,7 +1120,7 @@ _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method)
dictptr = _PyObject_GetDictPtr(obj);
if (dictptr != NULL && (dict = *dictptr) != NULL) {
Py_INCREF(dict);
- attr = PyDict_GetItemWithError(dict, name);
+ attr = PyDict_GetItemWithError(dict, name);
if (attr != NULL) {
Py_INCREF(attr);
*method = attr;
@@ -1128,13 +1128,13 @@ _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method)
Py_XDECREF(descr);
return 0;
}
- else {
- Py_DECREF(dict);
- if (PyErr_Occurred()) {
- Py_XDECREF(descr);
- return 0;
- }
- }
+ else {
+ Py_DECREF(dict);
+ if (PyErr_Occurred()) {
+ Py_XDECREF(descr);
+ return 0;
+ }
+ }
}
if (meth_found) {
@@ -1181,7 +1181,7 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name,
if (!PyUnicode_Check(name)){
PyErr_Format(PyExc_TypeError,
"attribute name must be string, not '%.200s'",
- Py_TYPE(name)->tp_name);
+ Py_TYPE(name)->tp_name);
return NULL;
}
Py_INCREF(name);
@@ -1196,9 +1196,9 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name,
f = NULL;
if (descr != NULL) {
Py_INCREF(descr);
- f = Py_TYPE(descr)->tp_descr_get;
+ f = Py_TYPE(descr)->tp_descr_get;
if (f != NULL && PyDescr_IsData(descr)) {
- res = f(descr, obj, (PyObject *)Py_TYPE(obj));
+ res = f(descr, obj, (PyObject *)Py_TYPE(obj));
if (res == NULL && suppress &&
PyErr_ExceptionMatches(PyExc_AttributeError)) {
PyErr_Clear();
@@ -1212,16 +1212,16 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name,
dictoffset = tp->tp_dictoffset;
if (dictoffset != 0) {
if (dictoffset < 0) {
- Py_ssize_t tsize = Py_SIZE(obj);
- if (tsize < 0) {
+ Py_ssize_t tsize = Py_SIZE(obj);
+ if (tsize < 0) {
tsize = -tsize;
- }
- size_t size = _PyObject_VAR_SIZE(tp, tsize);
- _PyObject_ASSERT(obj, size <= PY_SSIZE_T_MAX);
+ }
+ size_t size = _PyObject_VAR_SIZE(tp, tsize);
+ _PyObject_ASSERT(obj, size <= PY_SSIZE_T_MAX);
dictoffset += (Py_ssize_t)size;
- _PyObject_ASSERT(obj, dictoffset > 0);
- _PyObject_ASSERT(obj, dictoffset % SIZEOF_VOID_P == 0);
+ _PyObject_ASSERT(obj, dictoffset > 0);
+ _PyObject_ASSERT(obj, dictoffset % SIZEOF_VOID_P == 0);
}
dictptr = (PyObject **) ((char *)obj + dictoffset);
dict = *dictptr;
@@ -1229,23 +1229,23 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name,
}
if (dict != NULL) {
Py_INCREF(dict);
- res = PyDict_GetItemWithError(dict, name);
+ res = PyDict_GetItemWithError(dict, name);
if (res != NULL) {
Py_INCREF(res);
Py_DECREF(dict);
goto done;
}
- else {
- Py_DECREF(dict);
- if (PyErr_Occurred()) {
- if (suppress && PyErr_ExceptionMatches(PyExc_AttributeError)) {
- PyErr_Clear();
- }
- else {
- goto done;
- }
- }
- }
+ else {
+ Py_DECREF(dict);
+ if (PyErr_Occurred()) {
+ if (suppress && PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ PyErr_Clear();
+ }
+ else {
+ goto done;
+ }
+ }
+ }
}
if (f != NULL) {
@@ -1293,7 +1293,7 @@ _PyObject_GenericSetAttrWithDict(PyObject *obj, PyObject *name,
if (!PyUnicode_Check(name)){
PyErr_Format(PyExc_TypeError,
"attribute name must be string, not '%.200s'",
- Py_TYPE(name)->tp_name);
+ Py_TYPE(name)->tp_name);
return -1;
}
@@ -1306,21 +1306,21 @@ _PyObject_GenericSetAttrWithDict(PyObject *obj, PyObject *name,
if (descr != NULL) {
Py_INCREF(descr);
- f = Py_TYPE(descr)->tp_descr_set;
+ f = Py_TYPE(descr)->tp_descr_set;
if (f != NULL) {
res = f(descr, obj, value);
goto done;
}
}
- /* XXX [Steve Dower] These are really noisy - worth it? */
- /*if (PyType_Check(obj) || PyModule_Check(obj)) {
- if (value && PySys_Audit("object.__setattr__", "OOO", obj, name, value) < 0)
- return -1;
- if (!value && PySys_Audit("object.__delattr__", "OO", obj, name) < 0)
- return -1;
- }*/
-
+ /* XXX [Steve Dower] These are really noisy - worth it? */
+ /*if (PyType_Check(obj) || PyModule_Check(obj)) {
+ if (value && PySys_Audit("object.__setattr__", "OOO", obj, name, value) < 0)
+ return -1;
+ if (!value && PySys_Audit("object.__delattr__", "OO", obj, name) < 0)
+ return -1;
+ }*/
+
if (dict == NULL) {
dictptr = _PyObject_GetDictPtr(obj);
if (dictptr == NULL) {
@@ -1399,15 +1399,15 @@ PyObject_IsTrue(PyObject *v)
return 0;
if (v == Py_None)
return 0;
- else if (Py_TYPE(v)->tp_as_number != NULL &&
- Py_TYPE(v)->tp_as_number->nb_bool != NULL)
- res = (*Py_TYPE(v)->tp_as_number->nb_bool)(v);
- else if (Py_TYPE(v)->tp_as_mapping != NULL &&
- Py_TYPE(v)->tp_as_mapping->mp_length != NULL)
- res = (*Py_TYPE(v)->tp_as_mapping->mp_length)(v);
- else if (Py_TYPE(v)->tp_as_sequence != NULL &&
- Py_TYPE(v)->tp_as_sequence->sq_length != NULL)
- res = (*Py_TYPE(v)->tp_as_sequence->sq_length)(v);
+ else if (Py_TYPE(v)->tp_as_number != NULL &&
+ Py_TYPE(v)->tp_as_number->nb_bool != NULL)
+ res = (*Py_TYPE(v)->tp_as_number->nb_bool)(v);
+ else if (Py_TYPE(v)->tp_as_mapping != NULL &&
+ Py_TYPE(v)->tp_as_mapping->mp_length != NULL)
+ res = (*Py_TYPE(v)->tp_as_mapping->mp_length)(v);
+ else if (Py_TYPE(v)->tp_as_sequence != NULL &&
+ Py_TYPE(v)->tp_as_sequence->sq_length != NULL)
+ res = (*Py_TYPE(v)->tp_as_sequence->sq_length)(v);
else
return 1;
/* if it is negative, it should be either -1 or -2 */
@@ -1434,7 +1434,7 @@ PyCallable_Check(PyObject *x)
{
if (x == NULL)
return 0;
- return Py_TYPE(x)->tp_call != NULL;
+ return Py_TYPE(x)->tp_call != NULL;
}
@@ -1474,7 +1474,7 @@ _dir_object(PyObject *obj)
PyObject *result, *sorted;
PyObject *dirfunc = _PyObject_LookupSpecial(obj, &PyId___dir__);
- assert(obj != NULL);
+ assert(obj != NULL);
if (dirfunc == NULL) {
if (!PyErr_Occurred())
PyErr_SetString(PyExc_TypeError, "object does not provide __dir__");
@@ -1521,7 +1521,7 @@ none_repr(PyObject *op)
}
/* ARGUSED */
-static void _Py_NO_RETURN
+static void _Py_NO_RETURN
none_dealloc(PyObject* ignore)
{
/* This should never get called, but we also don't want to SEGV if
@@ -1589,10 +1589,10 @@ PyTypeObject _PyNone_Type = {
0,
0,
none_dealloc, /*tp_dealloc*/ /*never called*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
none_repr, /*tp_repr*/
&none_as_number, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -1639,13 +1639,13 @@ NotImplemented_repr(PyObject *op)
}
static PyObject *
-NotImplemented_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
+NotImplemented_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
{
return PyUnicode_FromString("NotImplemented");
}
static PyMethodDef notimplemented_methods[] = {
- {"__reduce__", NotImplemented_reduce, METH_NOARGS, NULL},
+ {"__reduce__", NotImplemented_reduce, METH_NOARGS, NULL},
{NULL, NULL}
};
@@ -1659,7 +1659,7 @@ notimplemented_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
Py_RETURN_NOTIMPLEMENTED;
}
-static void _Py_NO_RETURN
+static void _Py_NO_RETURN
notimplemented_dealloc(PyObject* ignore)
{
/* This should never get called, but we also don't want to SEGV if
@@ -1668,34 +1668,34 @@ notimplemented_dealloc(PyObject* ignore)
Py_FatalError("deallocating NotImplemented");
}
-static int
-notimplemented_bool(PyObject *v)
-{
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "NotImplemented should not be used in a boolean context",
- 1) < 0)
- {
- return -1;
- }
- return 1;
-}
-
-static PyNumberMethods notimplemented_as_number = {
- .nb_bool = notimplemented_bool,
-};
-
+static int
+notimplemented_bool(PyObject *v)
+{
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "NotImplemented should not be used in a boolean context",
+ 1) < 0)
+ {
+ return -1;
+ }
+ return 1;
+}
+
+static PyNumberMethods notimplemented_as_number = {
+ .nb_bool = notimplemented_bool,
+};
+
PyTypeObject _PyNotImplemented_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"NotImplementedType",
0,
0,
notimplemented_dealloc, /*tp_dealloc*/ /*never called*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
- NotImplemented_repr, /*tp_repr*/
- &notimplemented_as_number, /*tp_as_number*/
+ 0, /*tp_as_async*/
+ NotImplemented_repr, /*tp_repr*/
+ &notimplemented_as_number, /*tp_as_number*/
0, /*tp_as_sequence*/
0, /*tp_as_mapping*/
0, /*tp_hash */
@@ -1730,138 +1730,138 @@ PyObject _Py_NotImplementedStruct = {
1, &_PyNotImplemented_Type
};
-PyStatus
-_PyTypes_Init(void)
-{
- PyStatus status = _PyTypes_InitSlotDefs();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
-#define INIT_TYPE(TYPE, NAME) \
- do { \
- if (PyType_Ready(TYPE) < 0) { \
- return _PyStatus_ERR("Can't initialize " NAME " type"); \
- } \
- } while (0)
-
- INIT_TYPE(&PyBaseObject_Type, "object");
- INIT_TYPE(&PyType_Type, "type");
- INIT_TYPE(&_PyWeakref_RefType, "weakref");
- INIT_TYPE(&_PyWeakref_CallableProxyType, "callable weakref proxy");
- INIT_TYPE(&_PyWeakref_ProxyType, "weakref proxy");
- INIT_TYPE(&PyLong_Type, "int");
- INIT_TYPE(&PyBool_Type, "bool");
- INIT_TYPE(&PyByteArray_Type, "bytearray");
- INIT_TYPE(&PyBytes_Type, "str");
- INIT_TYPE(&PyList_Type, "list");
- INIT_TYPE(&_PyNone_Type, "None");
- INIT_TYPE(&_PyNotImplemented_Type, "NotImplemented");
- INIT_TYPE(&PyTraceBack_Type, "traceback");
- INIT_TYPE(&PySuper_Type, "super");
- INIT_TYPE(&PyRange_Type, "range");
- INIT_TYPE(&PyDict_Type, "dict");
- INIT_TYPE(&PyDictKeys_Type, "dict keys");
- INIT_TYPE(&PyDictValues_Type, "dict values");
- INIT_TYPE(&PyDictItems_Type, "dict items");
- INIT_TYPE(&PyDictRevIterKey_Type, "reversed dict keys");
- INIT_TYPE(&PyDictRevIterValue_Type, "reversed dict values");
- INIT_TYPE(&PyDictRevIterItem_Type, "reversed dict items");
- INIT_TYPE(&PyODict_Type, "OrderedDict");
- INIT_TYPE(&PyODictKeys_Type, "odict_keys");
- INIT_TYPE(&PyODictItems_Type, "odict_items");
- INIT_TYPE(&PyODictValues_Type, "odict_values");
- INIT_TYPE(&PyODictIter_Type, "odict_keyiterator");
- INIT_TYPE(&PySet_Type, "set");
- INIT_TYPE(&PyUnicode_Type, "str");
- INIT_TYPE(&PySlice_Type, "slice");
- INIT_TYPE(&PyStaticMethod_Type, "static method");
- INIT_TYPE(&PyComplex_Type, "complex");
- INIT_TYPE(&PyFloat_Type, "float");
- INIT_TYPE(&PyFrozenSet_Type, "frozenset");
- INIT_TYPE(&PyProperty_Type, "property");
- INIT_TYPE(&_PyManagedBuffer_Type, "managed buffer");
- INIT_TYPE(&PyMemoryView_Type, "memoryview");
- INIT_TYPE(&PyTuple_Type, "tuple");
- INIT_TYPE(&PyEnum_Type, "enumerate");
- INIT_TYPE(&PyReversed_Type, "reversed");
- INIT_TYPE(&PyStdPrinter_Type, "StdPrinter");
- INIT_TYPE(&PyCode_Type, "code");
- INIT_TYPE(&PyFrame_Type, "frame");
- INIT_TYPE(&PyCFunction_Type, "builtin function");
- INIT_TYPE(&PyCMethod_Type, "builtin method");
- INIT_TYPE(&PyMethod_Type, "method");
- INIT_TYPE(&PyFunction_Type, "function");
- INIT_TYPE(&PyDictProxy_Type, "dict proxy");
- INIT_TYPE(&PyGen_Type, "generator");
- INIT_TYPE(&PyGetSetDescr_Type, "get-set descriptor");
- INIT_TYPE(&PyWrapperDescr_Type, "wrapper");
- INIT_TYPE(&_PyMethodWrapper_Type, "method wrapper");
- INIT_TYPE(&PyEllipsis_Type, "ellipsis");
- INIT_TYPE(&PyMemberDescr_Type, "member descriptor");
- INIT_TYPE(&_PyNamespace_Type, "namespace");
- INIT_TYPE(&PyCapsule_Type, "capsule");
- INIT_TYPE(&PyLongRangeIter_Type, "long range iterator");
- INIT_TYPE(&PyCell_Type, "cell");
- INIT_TYPE(&PyInstanceMethod_Type, "instance method");
- INIT_TYPE(&PyClassMethodDescr_Type, "class method descr");
- INIT_TYPE(&PyMethodDescr_Type, "method descr");
- INIT_TYPE(&PyCallIter_Type, "call iter");
- INIT_TYPE(&PySeqIter_Type, "sequence iterator");
- INIT_TYPE(&PyPickleBuffer_Type, "pickle.PickleBuffer");
- INIT_TYPE(&PyCoro_Type, "coroutine");
- INIT_TYPE(&_PyCoroWrapper_Type, "coroutine wrapper");
- INIT_TYPE(&_PyInterpreterID_Type, "interpreter ID");
- return _PyStatus_OK();
-
-#undef INIT_TYPE
+PyStatus
+_PyTypes_Init(void)
+{
+ PyStatus status = _PyTypes_InitSlotDefs();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+#define INIT_TYPE(TYPE, NAME) \
+ do { \
+ if (PyType_Ready(TYPE) < 0) { \
+ return _PyStatus_ERR("Can't initialize " NAME " type"); \
+ } \
+ } while (0)
+
+ INIT_TYPE(&PyBaseObject_Type, "object");
+ INIT_TYPE(&PyType_Type, "type");
+ INIT_TYPE(&_PyWeakref_RefType, "weakref");
+ INIT_TYPE(&_PyWeakref_CallableProxyType, "callable weakref proxy");
+ INIT_TYPE(&_PyWeakref_ProxyType, "weakref proxy");
+ INIT_TYPE(&PyLong_Type, "int");
+ INIT_TYPE(&PyBool_Type, "bool");
+ INIT_TYPE(&PyByteArray_Type, "bytearray");
+ INIT_TYPE(&PyBytes_Type, "str");
+ INIT_TYPE(&PyList_Type, "list");
+ INIT_TYPE(&_PyNone_Type, "None");
+ INIT_TYPE(&_PyNotImplemented_Type, "NotImplemented");
+ INIT_TYPE(&PyTraceBack_Type, "traceback");
+ INIT_TYPE(&PySuper_Type, "super");
+ INIT_TYPE(&PyRange_Type, "range");
+ INIT_TYPE(&PyDict_Type, "dict");
+ INIT_TYPE(&PyDictKeys_Type, "dict keys");
+ INIT_TYPE(&PyDictValues_Type, "dict values");
+ INIT_TYPE(&PyDictItems_Type, "dict items");
+ INIT_TYPE(&PyDictRevIterKey_Type, "reversed dict keys");
+ INIT_TYPE(&PyDictRevIterValue_Type, "reversed dict values");
+ INIT_TYPE(&PyDictRevIterItem_Type, "reversed dict items");
+ INIT_TYPE(&PyODict_Type, "OrderedDict");
+ INIT_TYPE(&PyODictKeys_Type, "odict_keys");
+ INIT_TYPE(&PyODictItems_Type, "odict_items");
+ INIT_TYPE(&PyODictValues_Type, "odict_values");
+ INIT_TYPE(&PyODictIter_Type, "odict_keyiterator");
+ INIT_TYPE(&PySet_Type, "set");
+ INIT_TYPE(&PyUnicode_Type, "str");
+ INIT_TYPE(&PySlice_Type, "slice");
+ INIT_TYPE(&PyStaticMethod_Type, "static method");
+ INIT_TYPE(&PyComplex_Type, "complex");
+ INIT_TYPE(&PyFloat_Type, "float");
+ INIT_TYPE(&PyFrozenSet_Type, "frozenset");
+ INIT_TYPE(&PyProperty_Type, "property");
+ INIT_TYPE(&_PyManagedBuffer_Type, "managed buffer");
+ INIT_TYPE(&PyMemoryView_Type, "memoryview");
+ INIT_TYPE(&PyTuple_Type, "tuple");
+ INIT_TYPE(&PyEnum_Type, "enumerate");
+ INIT_TYPE(&PyReversed_Type, "reversed");
+ INIT_TYPE(&PyStdPrinter_Type, "StdPrinter");
+ INIT_TYPE(&PyCode_Type, "code");
+ INIT_TYPE(&PyFrame_Type, "frame");
+ INIT_TYPE(&PyCFunction_Type, "builtin function");
+ INIT_TYPE(&PyCMethod_Type, "builtin method");
+ INIT_TYPE(&PyMethod_Type, "method");
+ INIT_TYPE(&PyFunction_Type, "function");
+ INIT_TYPE(&PyDictProxy_Type, "dict proxy");
+ INIT_TYPE(&PyGen_Type, "generator");
+ INIT_TYPE(&PyGetSetDescr_Type, "get-set descriptor");
+ INIT_TYPE(&PyWrapperDescr_Type, "wrapper");
+ INIT_TYPE(&_PyMethodWrapper_Type, "method wrapper");
+ INIT_TYPE(&PyEllipsis_Type, "ellipsis");
+ INIT_TYPE(&PyMemberDescr_Type, "member descriptor");
+ INIT_TYPE(&_PyNamespace_Type, "namespace");
+ INIT_TYPE(&PyCapsule_Type, "capsule");
+ INIT_TYPE(&PyLongRangeIter_Type, "long range iterator");
+ INIT_TYPE(&PyCell_Type, "cell");
+ INIT_TYPE(&PyInstanceMethod_Type, "instance method");
+ INIT_TYPE(&PyClassMethodDescr_Type, "class method descr");
+ INIT_TYPE(&PyMethodDescr_Type, "method descr");
+ INIT_TYPE(&PyCallIter_Type, "call iter");
+ INIT_TYPE(&PySeqIter_Type, "sequence iterator");
+ INIT_TYPE(&PyPickleBuffer_Type, "pickle.PickleBuffer");
+ INIT_TYPE(&PyCoro_Type, "coroutine");
+ INIT_TYPE(&_PyCoroWrapper_Type, "coroutine wrapper");
+ INIT_TYPE(&_PyInterpreterID_Type, "interpreter ID");
+ return _PyStatus_OK();
+
+#undef INIT_TYPE
}
void
_Py_NewReference(PyObject *op)
{
- if (_Py_tracemalloc_config.tracing) {
- _PyTraceMalloc_NewReference(op);
- }
-#ifdef Py_REF_DEBUG
- _Py_RefTotal++;
-#endif
- Py_SET_REFCNT(op, 1);
-#ifdef Py_TRACE_REFS
+ if (_Py_tracemalloc_config.tracing) {
+ _PyTraceMalloc_NewReference(op);
+ }
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal++;
+#endif
+ Py_SET_REFCNT(op, 1);
+#ifdef Py_TRACE_REFS
_Py_AddToAllObjects(op, 1);
-#endif
+#endif
}
-
-#ifdef Py_TRACE_REFS
+
+#ifdef Py_TRACE_REFS
void
_Py_ForgetReference(PyObject *op)
{
- if (Py_REFCNT(op) < 0) {
- _PyObject_ASSERT_FAILED_MSG(op, "negative refcnt");
- }
-
+ if (Py_REFCNT(op) < 0) {
+ _PyObject_ASSERT_FAILED_MSG(op, "negative refcnt");
+ }
+
if (op == &refchain ||
- op->_ob_prev->_ob_next != op || op->_ob_next->_ob_prev != op)
- {
- _PyObject_ASSERT_FAILED_MSG(op, "invalid object chain");
+ op->_ob_prev->_ob_next != op || op->_ob_next->_ob_prev != op)
+ {
+ _PyObject_ASSERT_FAILED_MSG(op, "invalid object chain");
}
-
+
#ifdef SLOW_UNREF_CHECK
- PyObject *p;
+ PyObject *p;
for (p = refchain._ob_next; p != &refchain; p = p->_ob_next) {
- if (p == op) {
+ if (p == op) {
break;
- }
+ }
+ }
+ if (p == &refchain) {
+ /* Not found */
+ _PyObject_ASSERT_FAILED_MSG(op,
+ "object not found in the objects list");
}
- if (p == &refchain) {
- /* Not found */
- _PyObject_ASSERT_FAILED_MSG(op,
- "object not found in the objects list");
- }
#endif
-
+
op->_ob_next->_ob_prev = op->_ob_prev;
op->_ob_prev->_ob_next = op->_ob_next;
op->_ob_next = op->_ob_prev = NULL;
@@ -1876,7 +1876,7 @@ _Py_PrintReferences(FILE *fp)
PyObject *op;
fprintf(fp, "Remaining objects:\n");
for (op = refchain._ob_next; op != &refchain; op = op->_ob_next) {
- fprintf(fp, "%p [%" PY_FORMAT_SIZE_T "d] ", (void *)op, Py_REFCNT(op));
+ fprintf(fp, "%p [%" PY_FORMAT_SIZE_T "d] ", (void *)op, Py_REFCNT(op));
if (PyObject_Print(op, fp, 0) != 0)
PyErr_Clear();
putc('\n', fp);
@@ -1892,8 +1892,8 @@ _Py_PrintReferenceAddresses(FILE *fp)
PyObject *op;
fprintf(fp, "Remaining object addresses:\n");
for (op = refchain._ob_next; op != &refchain; op = op->_ob_next)
- fprintf(fp, "%p [%" PY_FORMAT_SIZE_T "d] %s\n", (void *)op,
- Py_REFCNT(op), Py_TYPE(op)->tp_name);
+ fprintf(fp, "%p [%" PY_FORMAT_SIZE_T "d] %s\n", (void *)op,
+ Py_REFCNT(op), Py_TYPE(op)->tp_name);
}
PyObject *
@@ -1911,7 +1911,7 @@ _Py_GetObjects(PyObject *self, PyObject *args)
return NULL;
for (i = 0; (n == 0 || i < n) && op != &refchain; i++) {
while (op == self || op == args || op == res || op == t ||
- (t != NULL && !Py_IS_TYPE(op, (PyTypeObject *) t))) {
+ (t != NULL && !Py_IS_TYPE(op, (PyTypeObject *) t))) {
op = op->_ob_next;
if (op == &refchain)
return res;
@@ -1966,11 +1966,11 @@ Py_ReprEnter(PyObject *obj)
early on startup. */
if (dict == NULL)
return 0;
- list = _PyDict_GetItemIdWithError(dict, &PyId_Py_Repr);
+ list = _PyDict_GetItemIdWithError(dict, &PyId_Py_Repr);
if (list == NULL) {
- if (PyErr_Occurred()) {
- return -1;
- }
+ if (PyErr_Occurred()) {
+ return -1;
+ }
list = PyList_New(0);
if (list == NULL)
return -1;
@@ -2002,7 +2002,7 @@ Py_ReprLeave(PyObject *obj)
if (dict == NULL)
goto finally;
- list = _PyDict_GetItemIdWithError(dict, &PyId_Py_Repr);
+ list = _PyDict_GetItemIdWithError(dict, &PyId_Py_Repr);
if (list == NULL || !PyList_Check(list))
goto finally;
@@ -2029,43 +2029,43 @@ finally:
void
_PyTrash_deposit_object(PyObject *op)
{
- PyThreadState *tstate = _PyThreadState_GET();
- struct _gc_runtime_state *gcstate = &tstate->interp->gc;
-
- _PyObject_ASSERT(op, _PyObject_IS_GC(op));
- _PyObject_ASSERT(op, !_PyObject_GC_IS_TRACKED(op));
- _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
- _PyGCHead_SET_PREV(_Py_AS_GC(op), gcstate->trash_delete_later);
- gcstate->trash_delete_later = op;
+ PyThreadState *tstate = _PyThreadState_GET();
+ struct _gc_runtime_state *gcstate = &tstate->interp->gc;
+
+ _PyObject_ASSERT(op, _PyObject_IS_GC(op));
+ _PyObject_ASSERT(op, !_PyObject_GC_IS_TRACKED(op));
+ _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
+ _PyGCHead_SET_PREV(_Py_AS_GC(op), gcstate->trash_delete_later);
+ gcstate->trash_delete_later = op;
}
/* The equivalent API, using per-thread state recursion info */
void
_PyTrash_thread_deposit_object(PyObject *op)
{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyObject_ASSERT(op, _PyObject_IS_GC(op));
- _PyObject_ASSERT(op, !_PyObject_GC_IS_TRACKED(op));
- _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
- _PyGCHead_SET_PREV(_Py_AS_GC(op), tstate->trash_delete_later);
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyObject_ASSERT(op, _PyObject_IS_GC(op));
+ _PyObject_ASSERT(op, !_PyObject_GC_IS_TRACKED(op));
+ _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
+ _PyGCHead_SET_PREV(_Py_AS_GC(op), tstate->trash_delete_later);
tstate->trash_delete_later = op;
}
-/* Deallocate all the objects in the _PyTrash_delete_later list. Called when
+/* Deallocate all the objects in the _PyTrash_delete_later list. Called when
* the call-stack unwinds again.
*/
void
_PyTrash_destroy_chain(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- struct _gc_runtime_state *gcstate = &tstate->interp->gc;
-
- while (gcstate->trash_delete_later) {
- PyObject *op = gcstate->trash_delete_later;
+ PyThreadState *tstate = _PyThreadState_GET();
+ struct _gc_runtime_state *gcstate = &tstate->interp->gc;
+
+ while (gcstate->trash_delete_later) {
+ PyObject *op = gcstate->trash_delete_later;
destructor dealloc = Py_TYPE(op)->tp_dealloc;
- gcstate->trash_delete_later =
- (PyObject*) _PyGCHead_PREV(_Py_AS_GC(op));
+ gcstate->trash_delete_later =
+ (PyObject*) _PyGCHead_PREV(_Py_AS_GC(op));
/* Call the deallocator directly. This used to try to
* fool Py_DECREF into calling it indirectly, but
@@ -2073,10 +2073,10 @@ _PyTrash_destroy_chain(void)
* assorted non-release builds calling Py_DECREF again ends
* up distorting allocation statistics.
*/
- _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
- ++gcstate->trash_delete_nesting;
+ _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
+ ++gcstate->trash_delete_nesting;
(*dealloc)(op);
- --gcstate->trash_delete_nesting;
+ --gcstate->trash_delete_nesting;
}
}
@@ -2084,7 +2084,7 @@ _PyTrash_destroy_chain(void)
void
_PyTrash_thread_destroy_chain(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
/* We need to increase trash_delete_nesting here, otherwise,
_PyTrash_thread_destroy_chain will be called recursively
and then possibly crash. An example that may crash without
@@ -2103,7 +2103,7 @@ _PyTrash_thread_destroy_chain(void)
destructor dealloc = Py_TYPE(op)->tp_dealloc;
tstate->trash_delete_later =
- (PyObject*) _PyGCHead_PREV(_Py_AS_GC(op));
+ (PyObject*) _PyGCHead_PREV(_Py_AS_GC(op));
/* Call the deallocator directly. This used to try to
* fool Py_DECREF into calling it indirectly, but
@@ -2111,112 +2111,112 @@ _PyTrash_thread_destroy_chain(void)
* assorted non-release builds calling Py_DECREF again ends
* up distorting allocation statistics.
*/
- _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
+ _PyObject_ASSERT(op, Py_REFCNT(op) == 0);
(*dealloc)(op);
assert(tstate->trash_delete_nesting == 1);
}
--tstate->trash_delete_nesting;
}
-
-int
-_PyTrash_begin(PyThreadState *tstate, PyObject *op)
-{
- if (tstate->trash_delete_nesting >= PyTrash_UNWIND_LEVEL) {
- /* Store the object (to be deallocated later) and jump past
- * Py_TRASHCAN_END, skipping the body of the deallocator */
- _PyTrash_thread_deposit_object(op);
- return 1;
- }
- ++tstate->trash_delete_nesting;
- return 0;
-}
-
-
-void
-_PyTrash_end(PyThreadState *tstate)
-{
- --tstate->trash_delete_nesting;
- if (tstate->trash_delete_later && tstate->trash_delete_nesting <= 0) {
- _PyTrash_thread_destroy_chain();
- }
-}
-
-
-void _Py_NO_RETURN
-_PyObject_AssertFailed(PyObject *obj, const char *expr, const char *msg,
- const char *file, int line, const char *function)
-{
- fprintf(stderr, "%s:%d: ", file, line);
- if (function) {
- fprintf(stderr, "%s: ", function);
- }
- fflush(stderr);
-
- if (expr) {
- fprintf(stderr, "Assertion \"%s\" failed", expr);
- }
- else {
- fprintf(stderr, "Assertion failed");
- }
- fflush(stderr);
-
- if (msg) {
- fprintf(stderr, ": %s", msg);
- }
- fprintf(stderr, "\n");
- fflush(stderr);
-
- if (_PyObject_IsFreed(obj)) {
- /* It seems like the object memory has been freed:
- don't access it to prevent a segmentation fault. */
- fprintf(stderr, "<object at %p is freed>\n", obj);
- fflush(stderr);
- }
- else {
- /* Display the traceback where the object has been allocated.
- Do it before dumping repr(obj), since repr() is more likely
- to crash than dumping the traceback. */
- void *ptr;
- PyTypeObject *type = Py_TYPE(obj);
- if (_PyType_IS_GC(type)) {
- ptr = (void *)((char *)obj - sizeof(PyGC_Head));
- }
- else {
- ptr = (void *)obj;
- }
- _PyMem_DumpTraceback(fileno(stderr), ptr);
-
- /* This might succeed or fail, but we're about to abort, so at least
- try to provide any extra info we can: */
- _PyObject_Dump(obj);
-
- fprintf(stderr, "\n");
- fflush(stderr);
- }
-
- Py_FatalError("_PyObject_AssertFailed");
-}
-
-
+
+int
+_PyTrash_begin(PyThreadState *tstate, PyObject *op)
+{
+ if (tstate->trash_delete_nesting >= PyTrash_UNWIND_LEVEL) {
+ /* Store the object (to be deallocated later) and jump past
+ * Py_TRASHCAN_END, skipping the body of the deallocator */
+ _PyTrash_thread_deposit_object(op);
+ return 1;
+ }
+ ++tstate->trash_delete_nesting;
+ return 0;
+}
+
+
+void
+_PyTrash_end(PyThreadState *tstate)
+{
+ --tstate->trash_delete_nesting;
+ if (tstate->trash_delete_later && tstate->trash_delete_nesting <= 0) {
+ _PyTrash_thread_destroy_chain();
+ }
+}
+
+
+void _Py_NO_RETURN
+_PyObject_AssertFailed(PyObject *obj, const char *expr, const char *msg,
+ const char *file, int line, const char *function)
+{
+ fprintf(stderr, "%s:%d: ", file, line);
+ if (function) {
+ fprintf(stderr, "%s: ", function);
+ }
+ fflush(stderr);
+
+ if (expr) {
+ fprintf(stderr, "Assertion \"%s\" failed", expr);
+ }
+ else {
+ fprintf(stderr, "Assertion failed");
+ }
+ fflush(stderr);
+
+ if (msg) {
+ fprintf(stderr, ": %s", msg);
+ }
+ fprintf(stderr, "\n");
+ fflush(stderr);
+
+ if (_PyObject_IsFreed(obj)) {
+ /* It seems like the object memory has been freed:
+ don't access it to prevent a segmentation fault. */
+ fprintf(stderr, "<object at %p is freed>\n", obj);
+ fflush(stderr);
+ }
+ else {
+ /* Display the traceback where the object has been allocated.
+ Do it before dumping repr(obj), since repr() is more likely
+ to crash than dumping the traceback. */
+ void *ptr;
+ PyTypeObject *type = Py_TYPE(obj);
+ if (_PyType_IS_GC(type)) {
+ ptr = (void *)((char *)obj - sizeof(PyGC_Head));
+ }
+ else {
+ ptr = (void *)obj;
+ }
+ _PyMem_DumpTraceback(fileno(stderr), ptr);
+
+ /* This might succeed or fail, but we're about to abort, so at least
+ try to provide any extra info we can: */
+ _PyObject_Dump(obj);
+
+ fprintf(stderr, "\n");
+ fflush(stderr);
+ }
+
+ Py_FatalError("_PyObject_AssertFailed");
+}
+
+
void
_Py_Dealloc(PyObject *op)
{
- destructor dealloc = Py_TYPE(op)->tp_dealloc;
-#ifdef Py_TRACE_REFS
- _Py_ForgetReference(op);
-#endif
- (*dealloc)(op);
-}
-
-
-PyObject **
-PyObject_GET_WEAKREFS_LISTPTR(PyObject *op)
-{
- return _PyObject_GET_WEAKREFS_LISTPTR(op);
-}
-
-
+ destructor dealloc = Py_TYPE(op)->tp_dealloc;
+#ifdef Py_TRACE_REFS
+ _Py_ForgetReference(op);
+#endif
+ (*dealloc)(op);
+}
+
+
+PyObject **
+PyObject_GET_WEAKREFS_LISTPTR(PyObject *op)
+{
+ return _PyObject_GET_WEAKREFS_LISTPTR(op);
+}
+
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Objects/obmalloc.c b/contrib/tools/python3/src/Objects/obmalloc.c
index 1bff84b232..9f8e0d114f 100644
--- a/contrib/tools/python3/src/Objects/obmalloc.c
+++ b/contrib/tools/python3/src/Objects/obmalloc.c
@@ -1,5 +1,5 @@
#include "Python.h"
-#include "pycore_pymem.h" // _PyTraceMalloc_Config
+#include "pycore_pymem.h" // _PyTraceMalloc_Config
#include <stdbool.h>
@@ -25,14 +25,14 @@ static void* _PyMem_DebugRealloc(void *ctx, void *ptr, size_t size);
static void _PyMem_DebugFree(void *ctx, void *p);
static void _PyObject_DebugDumpAddress(const void *p);
-static void _PyMem_DebugCheckAddress(const char *func, char api_id, const void *p);
+static void _PyMem_DebugCheckAddress(const char *func, char api_id, const void *p);
static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain);
#if defined(__has_feature) /* Clang */
# if __has_feature(address_sanitizer) /* is ASAN enabled? */
-# define _Py_NO_SANITIZE_ADDRESS \
- __attribute__((no_sanitize("address")))
+# define _Py_NO_SANITIZE_ADDRESS \
+ __attribute__((no_sanitize("address")))
# endif
# if __has_feature(thread_sanitizer) /* is TSAN enabled? */
# define _Py_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread))
@@ -42,18 +42,18 @@ static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain);
# endif
#elif defined(__GNUC__)
# if defined(__SANITIZE_ADDRESS__) /* GCC 4.8+, is ASAN enabled? */
-# define _Py_NO_SANITIZE_ADDRESS \
- __attribute__((no_sanitize_address))
+# define _Py_NO_SANITIZE_ADDRESS \
+ __attribute__((no_sanitize_address))
# endif
- // TSAN is supported since GCC 5.1, but __SANITIZE_THREAD__ macro
+ // TSAN is supported since GCC 5.1, but __SANITIZE_THREAD__ macro
// is provided only since GCC 7.
-# if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ >= 1)
+# if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ >= 1)
# define _Py_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread))
# endif
#endif
-#ifndef _Py_NO_SANITIZE_ADDRESS
-# define _Py_NO_SANITIZE_ADDRESS
+#ifndef _Py_NO_SANITIZE_ADDRESS
+# define _Py_NO_SANITIZE_ADDRESS
#endif
#ifndef _Py_NO_SANITIZE_THREAD
# define _Py_NO_SANITIZE_THREAD
@@ -81,12 +81,12 @@ static void* _PyObject_Realloc(void *ctx, void *ptr, size_t size);
#endif
-/* bpo-35053: Declare tracemalloc configuration here rather than
- Modules/_tracemalloc.c because _tracemalloc can be compiled as dynamic
- library, whereas _Py_NewReference() requires it. */
-struct _PyTraceMalloc_Config _Py_tracemalloc_config = _PyTraceMalloc_Config_INIT;
-
-
+/* bpo-35053: Declare tracemalloc configuration here rather than
+ Modules/_tracemalloc.c because _tracemalloc can be compiled as dynamic
+ library, whereas _Py_NewReference() requires it. */
+struct _PyTraceMalloc_Config _Py_tracemalloc_config = _PyTraceMalloc_Config_INIT;
+
+
static void *
_PyMem_RawMalloc(void *ctx, size_t size)
{
@@ -268,65 +268,65 @@ _PyMem_SetDefaultAllocator(PyMemAllocatorDomain domain,
int
-_PyMem_GetAllocatorName(const char *name, PyMemAllocatorName *allocator)
+_PyMem_GetAllocatorName(const char *name, PyMemAllocatorName *allocator)
{
- if (name == NULL || *name == '\0') {
+ if (name == NULL || *name == '\0') {
/* PYTHONMALLOC is empty or is not set or ignored (-E/-I command line
- nameions): use default memory allocators */
- *allocator = PYMEM_ALLOCATOR_DEFAULT;
- }
- else if (strcmp(name, "default") == 0) {
- *allocator = PYMEM_ALLOCATOR_DEFAULT;
- }
- else if (strcmp(name, "debug") == 0) {
- *allocator = PYMEM_ALLOCATOR_DEBUG;
- }
-#ifdef WITH_PYMALLOC
- else if (strcmp(name, "pymalloc") == 0) {
- *allocator = PYMEM_ALLOCATOR_PYMALLOC;
- }
- else if (strcmp(name, "pymalloc_debug") == 0) {
- *allocator = PYMEM_ALLOCATOR_PYMALLOC_DEBUG;
- }
-#endif
- else if (strcmp(name, "malloc") == 0) {
- *allocator = PYMEM_ALLOCATOR_MALLOC;
- }
- else if (strcmp(name, "malloc_debug") == 0) {
- *allocator = PYMEM_ALLOCATOR_MALLOC_DEBUG;
- }
- else {
- /* unknown allocator */
- return -1;
- }
- return 0;
-}
-
-
-int
-_PyMem_SetupAllocators(PyMemAllocatorName allocator)
-{
- switch (allocator) {
- case PYMEM_ALLOCATOR_NOT_SET:
- /* do nothing */
- break;
-
- case PYMEM_ALLOCATOR_DEFAULT:
+ nameions): use default memory allocators */
+ *allocator = PYMEM_ALLOCATOR_DEFAULT;
+ }
+ else if (strcmp(name, "default") == 0) {
+ *allocator = PYMEM_ALLOCATOR_DEFAULT;
+ }
+ else if (strcmp(name, "debug") == 0) {
+ *allocator = PYMEM_ALLOCATOR_DEBUG;
+ }
+#ifdef WITH_PYMALLOC
+ else if (strcmp(name, "pymalloc") == 0) {
+ *allocator = PYMEM_ALLOCATOR_PYMALLOC;
+ }
+ else if (strcmp(name, "pymalloc_debug") == 0) {
+ *allocator = PYMEM_ALLOCATOR_PYMALLOC_DEBUG;
+ }
+#endif
+ else if (strcmp(name, "malloc") == 0) {
+ *allocator = PYMEM_ALLOCATOR_MALLOC;
+ }
+ else if (strcmp(name, "malloc_debug") == 0) {
+ *allocator = PYMEM_ALLOCATOR_MALLOC_DEBUG;
+ }
+ else {
+ /* unknown allocator */
+ return -1;
+ }
+ return 0;
+}
+
+
+int
+_PyMem_SetupAllocators(PyMemAllocatorName allocator)
+{
+ switch (allocator) {
+ case PYMEM_ALLOCATOR_NOT_SET:
+ /* do nothing */
+ break;
+
+ case PYMEM_ALLOCATOR_DEFAULT:
(void)_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, NULL);
(void)_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_MEM, NULL);
(void)_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_OBJ, NULL);
- break;
-
- case PYMEM_ALLOCATOR_DEBUG:
+ break;
+
+ case PYMEM_ALLOCATOR_DEBUG:
(void)pymem_set_default_allocator(PYMEM_DOMAIN_RAW, 1, NULL);
(void)pymem_set_default_allocator(PYMEM_DOMAIN_MEM, 1, NULL);
(void)pymem_set_default_allocator(PYMEM_DOMAIN_OBJ, 1, NULL);
- break;
-
+ break;
+
#ifdef WITH_PYMALLOC
- case PYMEM_ALLOCATOR_PYMALLOC:
- case PYMEM_ALLOCATOR_PYMALLOC_DEBUG:
- {
+ case PYMEM_ALLOCATOR_PYMALLOC:
+ case PYMEM_ALLOCATOR_PYMALLOC_DEBUG:
+ {
PyMemAllocatorEx malloc_alloc = MALLOC_ALLOC;
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &malloc_alloc);
@@ -334,28 +334,28 @@ _PyMem_SetupAllocators(PyMemAllocatorName allocator)
PyMem_SetAllocator(PYMEM_DOMAIN_MEM, &pymalloc);
PyMem_SetAllocator(PYMEM_DOMAIN_OBJ, &pymalloc);
- if (allocator == PYMEM_ALLOCATOR_PYMALLOC_DEBUG) {
+ if (allocator == PYMEM_ALLOCATOR_PYMALLOC_DEBUG) {
PyMem_SetupDebugHooks();
}
- break;
+ break;
}
#endif
-
- case PYMEM_ALLOCATOR_MALLOC:
- case PYMEM_ALLOCATOR_MALLOC_DEBUG:
- {
+
+ case PYMEM_ALLOCATOR_MALLOC:
+ case PYMEM_ALLOCATOR_MALLOC_DEBUG:
+ {
PyMemAllocatorEx malloc_alloc = MALLOC_ALLOC;
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &malloc_alloc);
PyMem_SetAllocator(PYMEM_DOMAIN_MEM, &malloc_alloc);
PyMem_SetAllocator(PYMEM_DOMAIN_OBJ, &malloc_alloc);
- if (allocator == PYMEM_ALLOCATOR_MALLOC_DEBUG) {
+ if (allocator == PYMEM_ALLOCATOR_MALLOC_DEBUG) {
PyMem_SetupDebugHooks();
}
- break;
+ break;
}
-
- default:
+
+ default:
/* unknown allocator */
return -1;
}
@@ -371,7 +371,7 @@ pymemallocator_eq(PyMemAllocatorEx *a, PyMemAllocatorEx *b)
const char*
-_PyMem_GetCurrentAllocatorName(void)
+_PyMem_GetCurrentAllocatorName(void)
{
PyMemAllocatorEx malloc_alloc = MALLOC_ALLOC;
#ifdef WITH_PYMALLOC
@@ -714,17 +714,17 @@ PyObject_Free(void *ptr)
the valgrind checks */
#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
# define UNLIKELY(value) __builtin_expect((value), 0)
-# define LIKELY(value) __builtin_expect((value), 1)
+# define LIKELY(value) __builtin_expect((value), 1)
#else
# define UNLIKELY(value) (value)
-# define LIKELY(value) (value)
+# define LIKELY(value) (value)
#endif
-#ifdef WITH_PYMALLOC
-
-#ifdef WITH_VALGRIND
-#include <valgrind/valgrind.h>
-
+#ifdef WITH_PYMALLOC
+
+#ifdef WITH_VALGRIND
+#include <valgrind/valgrind.h>
+
/* -1 indicates that we haven't checked that we're running on valgrind yet. */
static int running_on_valgrind = -1;
#endif
@@ -836,20 +836,20 @@ static int running_on_valgrind = -1;
/*
* Alignment of addresses returned to the user. 8-bytes alignment works
- * on most current architectures (with 32-bit or 64-bit address buses).
+ * on most current architectures (with 32-bit or 64-bit address buses).
* The alignment value is also used for grouping small requests in size
* classes spaced ALIGNMENT bytes apart.
*
* You shouldn't change this unless you know what you are doing.
*/
-
-#if SIZEOF_VOID_P > 4
-#define ALIGNMENT 16 /* must be 2^N */
-#define ALIGNMENT_SHIFT 4
-#else
+
+#if SIZEOF_VOID_P > 4
+#define ALIGNMENT 16 /* must be 2^N */
+#define ALIGNMENT_SHIFT 4
+#else
#define ALIGNMENT 8 /* must be 2^N */
#define ALIGNMENT_SHIFT 3
-#endif
+#endif
/* Return the number of bytes in size class I, as a uint. */
#define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)
@@ -920,11 +920,11 @@ static int running_on_valgrind = -1;
#define POOL_SIZE SYSTEM_PAGE_SIZE /* must be 2^N */
#define POOL_SIZE_MASK SYSTEM_PAGE_SIZE_MASK
-#define MAX_POOLS_IN_ARENA (ARENA_SIZE / POOL_SIZE)
-#if MAX_POOLS_IN_ARENA * POOL_SIZE != ARENA_SIZE
-# error "arena size not an exact multiple of pool size"
-#endif
-
+#define MAX_POOLS_IN_ARENA (ARENA_SIZE / POOL_SIZE)
+#if MAX_POOLS_IN_ARENA * POOL_SIZE != ARENA_SIZE
+# error "arena size not an exact multiple of pool size"
+#endif
+
/*
* -- End of tunable settings section --
*/
@@ -1162,18 +1162,18 @@ usable_arenas
Note that an arena_object associated with an arena all of whose pools are
currently in use isn't on either list.
-
-Changed in Python 3.8: keeping usable_arenas sorted by number of free pools
-used to be done by one-at-a-time linear search when an arena's number of
-free pools changed. That could, overall, consume time quadratic in the
-number of arenas. That didn't really matter when there were only a few
-hundred arenas (typical!), but could be a timing disaster when there were
-hundreds of thousands. See bpo-37029.
-
-Now we have a vector of "search fingers" to eliminate the need to search:
-nfp2lasta[nfp] returns the last ("rightmost") arena in usable_arenas
-with nfp free pools. This is NULL if and only if there is no arena with
-nfp free pools in usable_arenas.
+
+Changed in Python 3.8: keeping usable_arenas sorted by number of free pools
+used to be done by one-at-a-time linear search when an arena's number of
+free pools changed. That could, overall, consume time quadratic in the
+number of arenas. That didn't really matter when there were only a few
+hundred arenas (typical!), but could be a timing disaster when there were
+hundreds of thousands. See bpo-37029.
+
+Now we have a vector of "search fingers" to eliminate the need to search:
+nfp2lasta[nfp] returns the last ("rightmost") arena in usable_arenas
+with nfp free pools. This is NULL if and only if there is no arena with
+nfp free pools in usable_arenas.
*/
/* Array of objects used to track chunks of memory (arenas). */
@@ -1191,9 +1191,9 @@ static struct arena_object* unused_arena_objects = NULL;
*/
static struct arena_object* usable_arenas = NULL;
-/* nfp2lasta[nfp] is the last arena in usable_arenas with nfp free pools */
-static struct arena_object* nfp2lasta[MAX_POOLS_IN_ARENA + 1] = { NULL };
-
+/* nfp2lasta[nfp] is the last arena in usable_arenas with nfp free pools */
+static struct arena_object* nfp2lasta[MAX_POOLS_IN_ARENA + 1] = { NULL };
+
/* How many arena_objects do we initially allocate?
* 16 = can allocate 16 arenas = 16 * ARENA_SIZE = 4MB before growing the
* `arenas` vector.
@@ -1208,29 +1208,29 @@ static size_t ntimes_arena_allocated = 0;
/* High water mark (max value ever seen) for narenas_currently_allocated. */
static size_t narenas_highwater = 0;
-static Py_ssize_t raw_allocated_blocks;
+static Py_ssize_t raw_allocated_blocks;
Py_ssize_t
_Py_GetAllocatedBlocks(void)
{
- Py_ssize_t n = raw_allocated_blocks;
- /* add up allocated blocks for used pools */
- for (uint i = 0; i < maxarenas; ++i) {
- /* Skip arenas which are not allocated. */
- if (arenas[i].address == 0) {
- continue;
- }
-
- uintptr_t base = (uintptr_t)_Py_ALIGN_UP(arenas[i].address, POOL_SIZE);
-
- /* visit every pool in the arena */
- assert(base <= (uintptr_t) arenas[i].pool_address);
- for (; base < (uintptr_t) arenas[i].pool_address; base += POOL_SIZE) {
- poolp p = (poolp)base;
- n += p->ref.count;
- }
- }
- return n;
+ Py_ssize_t n = raw_allocated_blocks;
+ /* add up allocated blocks for used pools */
+ for (uint i = 0; i < maxarenas; ++i) {
+ /* Skip arenas which are not allocated. */
+ if (arenas[i].address == 0) {
+ continue;
+ }
+
+ uintptr_t base = (uintptr_t)_Py_ALIGN_UP(arenas[i].address, POOL_SIZE);
+
+ /* visit every pool in the arena */
+ assert(base <= (uintptr_t) arenas[i].pool_address);
+ for (; base < (uintptr_t) arenas[i].pool_address; base += POOL_SIZE) {
+ poolp p = (poolp)base;
+ n += p->ref.count;
+ }
+ }
+ return n;
}
@@ -1320,7 +1320,7 @@ new_arena(void)
/* pool_address <- first pool-aligned address in the arena
nfreepools <- number of whole pools that fit after alignment */
arenaobj->pool_address = (block*)arenaobj->address;
- arenaobj->nfreepools = MAX_POOLS_IN_ARENA;
+ arenaobj->nfreepools = MAX_POOLS_IN_ARENA;
excess = (uint)(arenaobj->address & POOL_SIZE_MASK);
if (excess != 0) {
--arenaobj->nfreepools;
@@ -1407,7 +1407,7 @@ obmalloc controls. Since this test is needed at every entry point, it's
extremely desirable that it be this fast.
*/
-static bool _Py_NO_SANITIZE_ADDRESS
+static bool _Py_NO_SANITIZE_ADDRESS
_Py_NO_SANITIZE_THREAD
_Py_NO_SANITIZE_MEMORY
address_in_range(void *p, poolp pool)
@@ -1426,76 +1426,76 @@ address_in_range(void *p, poolp pool)
/*==========================================================================*/
-// Called when freelist is exhausted. Extend the freelist if there is
-// space for a block. Otherwise, remove this pool from usedpools.
-static void
-pymalloc_pool_extend(poolp pool, uint size)
-{
- if (UNLIKELY(pool->nextoffset <= pool->maxnextoffset)) {
- /* There is room for another block. */
- pool->freeblock = (block*)pool + pool->nextoffset;
- pool->nextoffset += INDEX2SIZE(size);
- *(block **)(pool->freeblock) = NULL;
- return;
- }
-
- /* Pool is full, unlink from used pools. */
- poolp next;
- next = pool->nextpool;
- pool = pool->prevpool;
- next->prevpool = pool;
- pool->nextpool = next;
-}
-
-/* called when pymalloc_alloc can not allocate a block from usedpool.
- * This function takes new pool and allocate a block from it.
- */
-static void*
-allocate_from_new_pool(uint size)
+// Called when freelist is exhausted. Extend the freelist if there is
+// space for a block. Otherwise, remove this pool from usedpools.
+static void
+pymalloc_pool_extend(poolp pool, uint size)
+{
+ if (UNLIKELY(pool->nextoffset <= pool->maxnextoffset)) {
+ /* There is room for another block. */
+ pool->freeblock = (block*)pool + pool->nextoffset;
+ pool->nextoffset += INDEX2SIZE(size);
+ *(block **)(pool->freeblock) = NULL;
+ return;
+ }
+
+ /* Pool is full, unlink from used pools. */
+ poolp next;
+ next = pool->nextpool;
+ pool = pool->prevpool;
+ next->prevpool = pool;
+ pool->nextpool = next;
+}
+
+/* called when pymalloc_alloc can not allocate a block from usedpool.
+ * This function takes new pool and allocate a block from it.
+ */
+static void*
+allocate_from_new_pool(uint size)
{
/* There isn't a pool of the right size class immediately
* available: use a free pool.
*/
- if (UNLIKELY(usable_arenas == NULL)) {
+ if (UNLIKELY(usable_arenas == NULL)) {
/* No arena has a free pool: allocate a new arena. */
#ifdef WITH_MEMORY_LIMITS
if (narenas_currently_allocated >= MAX_ARENAS) {
- return NULL;
+ return NULL;
}
#endif
usable_arenas = new_arena();
if (usable_arenas == NULL) {
- return NULL;
+ return NULL;
}
- usable_arenas->nextarena = usable_arenas->prevarena = NULL;
- assert(nfp2lasta[usable_arenas->nfreepools] == NULL);
- nfp2lasta[usable_arenas->nfreepools] = usable_arenas;
+ usable_arenas->nextarena = usable_arenas->prevarena = NULL;
+ assert(nfp2lasta[usable_arenas->nfreepools] == NULL);
+ nfp2lasta[usable_arenas->nfreepools] = usable_arenas;
}
assert(usable_arenas->address != 0);
- /* This arena already had the smallest nfreepools value, so decreasing
- * nfreepools doesn't change that, and we don't need to rearrange the
- * usable_arenas list. However, if the arena becomes wholly allocated,
- * we need to remove its arena_object from usable_arenas.
- */
- assert(usable_arenas->nfreepools > 0);
- if (nfp2lasta[usable_arenas->nfreepools] == usable_arenas) {
- /* It's the last of this size, so there won't be any. */
- nfp2lasta[usable_arenas->nfreepools] = NULL;
- }
- /* If any free pools will remain, it will be the new smallest. */
- if (usable_arenas->nfreepools > 1) {
- assert(nfp2lasta[usable_arenas->nfreepools - 1] == NULL);
- nfp2lasta[usable_arenas->nfreepools - 1] = usable_arenas;
- }
-
+ /* This arena already had the smallest nfreepools value, so decreasing
+ * nfreepools doesn't change that, and we don't need to rearrange the
+ * usable_arenas list. However, if the arena becomes wholly allocated,
+ * we need to remove its arena_object from usable_arenas.
+ */
+ assert(usable_arenas->nfreepools > 0);
+ if (nfp2lasta[usable_arenas->nfreepools] == usable_arenas) {
+ /* It's the last of this size, so there won't be any. */
+ nfp2lasta[usable_arenas->nfreepools] = NULL;
+ }
+ /* If any free pools will remain, it will be the new smallest. */
+ if (usable_arenas->nfreepools > 1) {
+ assert(nfp2lasta[usable_arenas->nfreepools - 1] == NULL);
+ nfp2lasta[usable_arenas->nfreepools - 1] = usable_arenas;
+ }
+
/* Try to get a cached free pool. */
- poolp pool = usable_arenas->freepools;
- if (LIKELY(pool != NULL)) {
+ poolp pool = usable_arenas->freepools;
+ if (LIKELY(pool != NULL)) {
/* Unlink from cached pools. */
usable_arenas->freepools = pool->nextpool;
- usable_arenas->nfreepools--;
- if (UNLIKELY(usable_arenas->nfreepools == 0)) {
+ usable_arenas->nfreepools--;
+ if (UNLIKELY(usable_arenas->nfreepools == 0)) {
/* Wholly allocated: remove. */
assert(usable_arenas->freepools == NULL);
assert(usable_arenas->nextarena == NULL ||
@@ -1518,133 +1518,133 @@ allocate_from_new_pool(uint size)
(block*)usable_arenas->address +
ARENA_SIZE - POOL_SIZE);
}
- }
- else {
- /* Carve off a new pool. */
- assert(usable_arenas->nfreepools > 0);
- assert(usable_arenas->freepools == NULL);
- pool = (poolp)usable_arenas->pool_address;
- assert((block*)pool <= (block*)usable_arenas->address +
- ARENA_SIZE - POOL_SIZE);
- pool->arenaindex = (uint)(usable_arenas - arenas);
- assert(&arenas[pool->arenaindex] == usable_arenas);
- pool->szidx = DUMMY_SIZE_IDX;
- usable_arenas->pool_address += POOL_SIZE;
- --usable_arenas->nfreepools;
-
- if (usable_arenas->nfreepools == 0) {
- assert(usable_arenas->nextarena == NULL ||
- usable_arenas->nextarena->prevarena ==
- usable_arenas);
- /* Unlink the arena: it is completely allocated. */
- usable_arenas = usable_arenas->nextarena;
- if (usable_arenas != NULL) {
- usable_arenas->prevarena = NULL;
- assert(usable_arenas->address != 0);
- }
+ }
+ else {
+ /* Carve off a new pool. */
+ assert(usable_arenas->nfreepools > 0);
+ assert(usable_arenas->freepools == NULL);
+ pool = (poolp)usable_arenas->pool_address;
+ assert((block*)pool <= (block*)usable_arenas->address +
+ ARENA_SIZE - POOL_SIZE);
+ pool->arenaindex = (uint)(usable_arenas - arenas);
+ assert(&arenas[pool->arenaindex] == usable_arenas);
+ pool->szidx = DUMMY_SIZE_IDX;
+ usable_arenas->pool_address += POOL_SIZE;
+ --usable_arenas->nfreepools;
+
+ if (usable_arenas->nfreepools == 0) {
+ assert(usable_arenas->nextarena == NULL ||
+ usable_arenas->nextarena->prevarena ==
+ usable_arenas);
+ /* Unlink the arena: it is completely allocated. */
+ usable_arenas = usable_arenas->nextarena;
+ if (usable_arenas != NULL) {
+ usable_arenas->prevarena = NULL;
+ assert(usable_arenas->address != 0);
+ }
}
- }
-
- /* Frontlink to used pools. */
- block *bp;
- poolp next = usedpools[size + size]; /* == prev */
- pool->nextpool = next;
- pool->prevpool = next;
- next->nextpool = pool;
- next->prevpool = pool;
- pool->ref.count = 1;
- if (pool->szidx == size) {
- /* Luckily, this pool last contained blocks
- * of the same size class, so its header
- * and free list are already initialized.
+ }
+
+ /* Frontlink to used pools. */
+ block *bp;
+ poolp next = usedpools[size + size]; /* == prev */
+ pool->nextpool = next;
+ pool->prevpool = next;
+ next->nextpool = pool;
+ next->prevpool = pool;
+ pool->ref.count = 1;
+ if (pool->szidx == size) {
+ /* Luckily, this pool last contained blocks
+ * of the same size class, so its header
+ * and free list are already initialized.
+ */
+ bp = pool->freeblock;
+ assert(bp != NULL);
+ pool->freeblock = *(block **)bp;
+ return bp;
+ }
+ /*
+ * Initialize the pool header, set up the free list to
+ * contain just the second block, and return the first
+ * block.
+ */
+ pool->szidx = size;
+ size = INDEX2SIZE(size);
+ bp = (block *)pool + POOL_OVERHEAD;
+ pool->nextoffset = POOL_OVERHEAD + (size << 1);
+ pool->maxnextoffset = POOL_SIZE - size;
+ pool->freeblock = bp + size;
+ *(block **)(pool->freeblock) = NULL;
+ return bp;
+}
+
+/* pymalloc allocator
+
+ Return a pointer to newly allocated memory if pymalloc allocated memory.
+
+ Return NULL if pymalloc failed to allocate the memory block: on bigger
+ requests, on error in the code below (as a last chance to serve the request)
+ or when the max memory limit has been reached.
+*/
+static inline void*
+pymalloc_alloc(void *ctx, size_t nbytes)
+{
+#ifdef WITH_VALGRIND
+ if (UNLIKELY(running_on_valgrind == -1)) {
+ running_on_valgrind = RUNNING_ON_VALGRIND;
+ }
+ if (UNLIKELY(running_on_valgrind)) {
+ return NULL;
+ }
+#endif
+
+ if (UNLIKELY(nbytes == 0)) {
+ return NULL;
+ }
+ if (UNLIKELY(nbytes > SMALL_REQUEST_THRESHOLD)) {
+ return NULL;
+ }
+
+ uint size = (uint)(nbytes - 1) >> ALIGNMENT_SHIFT;
+ poolp pool = usedpools[size + size];
+ block *bp;
+
+ if (LIKELY(pool != pool->nextpool)) {
+ /*
+ * There is a used pool for this size class.
+ * Pick up the head block of its free list.
*/
- bp = pool->freeblock;
- assert(bp != NULL);
- pool->freeblock = *(block **)bp;
- return bp;
- }
- /*
- * Initialize the pool header, set up the free list to
- * contain just the second block, and return the first
- * block.
- */
- pool->szidx = size;
- size = INDEX2SIZE(size);
- bp = (block *)pool + POOL_OVERHEAD;
- pool->nextoffset = POOL_OVERHEAD + (size << 1);
- pool->maxnextoffset = POOL_SIZE - size;
- pool->freeblock = bp + size;
- *(block **)(pool->freeblock) = NULL;
- return bp;
-}
-
-/* pymalloc allocator
-
- Return a pointer to newly allocated memory if pymalloc allocated memory.
-
- Return NULL if pymalloc failed to allocate the memory block: on bigger
- requests, on error in the code below (as a last chance to serve the request)
- or when the max memory limit has been reached.
-*/
-static inline void*
-pymalloc_alloc(void *ctx, size_t nbytes)
-{
-#ifdef WITH_VALGRIND
- if (UNLIKELY(running_on_valgrind == -1)) {
- running_on_valgrind = RUNNING_ON_VALGRIND;
- }
- if (UNLIKELY(running_on_valgrind)) {
- return NULL;
- }
-#endif
-
- if (UNLIKELY(nbytes == 0)) {
- return NULL;
- }
- if (UNLIKELY(nbytes > SMALL_REQUEST_THRESHOLD)) {
- return NULL;
- }
-
- uint size = (uint)(nbytes - 1) >> ALIGNMENT_SHIFT;
- poolp pool = usedpools[size + size];
- block *bp;
-
- if (LIKELY(pool != pool->nextpool)) {
- /*
- * There is a used pool for this size class.
- * Pick up the head block of its free list.
- */
- ++pool->ref.count;
- bp = pool->freeblock;
- assert(bp != NULL);
-
- if (UNLIKELY((pool->freeblock = *(block **)bp) == NULL)) {
- // Reached the end of the free list, try to extend it.
- pymalloc_pool_extend(pool, size);
+ ++pool->ref.count;
+ bp = pool->freeblock;
+ assert(bp != NULL);
+
+ if (UNLIKELY((pool->freeblock = *(block **)bp) == NULL)) {
+ // Reached the end of the free list, try to extend it.
+ pymalloc_pool_extend(pool, size);
}
}
- else {
- /* There isn't a pool of the right size class immediately
- * available: use a free pool.
- */
- bp = allocate_from_new_pool(size);
- }
+ else {
+ /* There isn't a pool of the right size class immediately
+ * available: use a free pool.
+ */
+ bp = allocate_from_new_pool(size);
+ }
- return (void *)bp;
+ return (void *)bp;
}
static void *
_PyObject_Malloc(void *ctx, size_t nbytes)
{
- void* ptr = pymalloc_alloc(ctx, nbytes);
- if (LIKELY(ptr != NULL)) {
+ void* ptr = pymalloc_alloc(ctx, nbytes);
+ if (LIKELY(ptr != NULL)) {
return ptr;
}
ptr = PyMem_RawMalloc(nbytes);
if (ptr != NULL) {
- raw_allocated_blocks++;
+ raw_allocated_blocks++;
}
return ptr;
}
@@ -1656,77 +1656,77 @@ _PyObject_Calloc(void *ctx, size_t nelem, size_t elsize)
assert(elsize == 0 || nelem <= (size_t)PY_SSIZE_T_MAX / elsize);
size_t nbytes = nelem * elsize;
- void* ptr = pymalloc_alloc(ctx, nbytes);
- if (LIKELY(ptr != NULL)) {
+ void* ptr = pymalloc_alloc(ctx, nbytes);
+ if (LIKELY(ptr != NULL)) {
memset(ptr, 0, nbytes);
return ptr;
}
ptr = PyMem_RawCalloc(nelem, elsize);
if (ptr != NULL) {
- raw_allocated_blocks++;
+ raw_allocated_blocks++;
}
return ptr;
}
-static void
-insert_to_usedpool(poolp pool)
+static void
+insert_to_usedpool(poolp pool)
{
- assert(pool->ref.count > 0); /* else the pool is empty */
+ assert(pool->ref.count > 0); /* else the pool is empty */
- uint size = pool->szidx;
- poolp next = usedpools[size + size];
- poolp prev = next->prevpool;
+ uint size = pool->szidx;
+ poolp next = usedpools[size + size];
+ poolp prev = next->prevpool;
- /* insert pool before next: prev <-> pool <-> next */
- pool->nextpool = next;
- pool->prevpool = prev;
- next->prevpool = pool;
- prev->nextpool = pool;
-}
+ /* insert pool before next: prev <-> pool <-> next */
+ pool->nextpool = next;
+ pool->prevpool = prev;
+ next->prevpool = pool;
+ prev->nextpool = pool;
+}
-static void
-insert_to_freepool(poolp pool)
-{
- poolp next = pool->nextpool;
- poolp prev = pool->prevpool;
+static void
+insert_to_freepool(poolp pool)
+{
+ poolp next = pool->nextpool;
+ poolp prev = pool->prevpool;
next->prevpool = prev;
prev->nextpool = next;
/* Link the pool to freepools. This is a singly-linked
* list, and pool->prevpool isn't used there.
*/
- struct arena_object *ao = &arenas[pool->arenaindex];
+ struct arena_object *ao = &arenas[pool->arenaindex];
pool->nextpool = ao->freepools;
ao->freepools = pool;
- uint nf = ao->nfreepools;
- /* If this is the rightmost arena with this number of free pools,
- * nfp2lasta[nf] needs to change. Caution: if nf is 0, there
- * are no arenas in usable_arenas with that value.
- */
- struct arena_object* lastnf = nfp2lasta[nf];
- assert((nf == 0 && lastnf == NULL) ||
- (nf > 0 &&
- lastnf != NULL &&
- lastnf->nfreepools == nf &&
- (lastnf->nextarena == NULL ||
- nf < lastnf->nextarena->nfreepools)));
- if (lastnf == ao) { /* it is the rightmost */
- struct arena_object* p = ao->prevarena;
- nfp2lasta[nf] = (p != NULL && p->nfreepools == nf) ? p : NULL;
- }
- ao->nfreepools = ++nf;
+ uint nf = ao->nfreepools;
+ /* If this is the rightmost arena with this number of free pools,
+ * nfp2lasta[nf] needs to change. Caution: if nf is 0, there
+ * are no arenas in usable_arenas with that value.
+ */
+ struct arena_object* lastnf = nfp2lasta[nf];
+ assert((nf == 0 && lastnf == NULL) ||
+ (nf > 0 &&
+ lastnf != NULL &&
+ lastnf->nfreepools == nf &&
+ (lastnf->nextarena == NULL ||
+ nf < lastnf->nextarena->nfreepools)));
+ if (lastnf == ao) { /* it is the rightmost */
+ struct arena_object* p = ao->prevarena;
+ nfp2lasta[nf] = (p != NULL && p->nfreepools == nf) ? p : NULL;
+ }
+ ao->nfreepools = ++nf;
/* All the rest is arena management. We just freed
* a pool, and there are 4 cases for arena mgmt:
* 1. If all the pools are free, return the arena to
- * the system free(). Except if this is the last
- * arena in the list, keep it to avoid thrashing:
- * keeping one wholly free arena in the list avoids
- * pathological cases where a simple loop would
- * otherwise provoke needing to allocate and free an
- * arena on every iteration. See bpo-37257.
+ * the system free(). Except if this is the last
+ * arena in the list, keep it to avoid thrashing:
+ * keeping one wholly free arena in the list avoids
+ * pathological cases where a simple loop would
+ * otherwise provoke needing to allocate and free an
+ * arena on every iteration. See bpo-37257.
* 2. If this is the only free pool in the arena,
* add the arena back to the `usable_arenas` list.
* 3. If the "next" arena has a smaller count of free
@@ -1735,7 +1735,7 @@ insert_to_freepool(poolp pool)
* nfreepools.
* 4. Else there's nothing more to do.
*/
- if (nf == ao->ntotalpools && ao->nextarena != NULL) {
+ if (nf == ao->ntotalpools && ao->nextarena != NULL) {
/* Case 1. First unlink ao from usable_arenas.
*/
assert(ao->prevarena == NULL ||
@@ -1774,7 +1774,7 @@ insert_to_freepool(poolp pool)
ao->address = 0; /* mark unassociated */
--narenas_currently_allocated;
- return;
+ return;
}
if (nf == 1) {
@@ -1789,11 +1789,11 @@ insert_to_freepool(poolp pool)
usable_arenas->prevarena = ao;
usable_arenas = ao;
assert(usable_arenas->address != 0);
- if (nfp2lasta[1] == NULL) {
- nfp2lasta[1] = ao;
- }
+ if (nfp2lasta[1] == NULL) {
+ nfp2lasta[1] = ao;
+ }
- return;
+ return;
}
/* If this arena is now out of order, we need to keep
@@ -1803,23 +1803,23 @@ insert_to_freepool(poolp pool)
* a few un-scientific tests, it seems like this
* approach allowed a lot more memory to be freed.
*/
- /* If this is the only arena with nf, record that. */
- if (nfp2lasta[nf] == NULL) {
- nfp2lasta[nf] = ao;
- } /* else the rightmost with nf doesn't change */
- /* If this was the rightmost of the old size, it remains in place. */
- if (ao == lastnf) {
+ /* If this is the only arena with nf, record that. */
+ if (nfp2lasta[nf] == NULL) {
+ nfp2lasta[nf] = ao;
+ } /* else the rightmost with nf doesn't change */
+ /* If this was the rightmost of the old size, it remains in place. */
+ if (ao == lastnf) {
/* Case 4. Nothing to do. */
- return;
- }
- /* If ao were the only arena in the list, the last block would have
- * gotten us out.
- */
- assert(ao->nextarena != NULL);
-
- /* Case 3: We have to move the arena towards the end of the list,
- * because it has more free pools than the arena to its right. It needs
- * to move to follow lastnf.
+ return;
+ }
+ /* If ao were the only arena in the list, the last block would have
+ * gotten us out.
+ */
+ assert(ao->nextarena != NULL);
+
+ /* Case 3: We have to move the arena towards the end of the list,
+ * because it has more free pools than the arena to its right. It needs
+ * to move to follow lastnf.
* First unlink ao from usable_arenas.
*/
if (ao->prevarena != NULL) {
@@ -1833,78 +1833,78 @@ insert_to_freepool(poolp pool)
usable_arenas = ao->nextarena;
}
ao->nextarena->prevarena = ao->prevarena;
- /* And insert after lastnf. */
- ao->prevarena = lastnf;
- ao->nextarena = lastnf->nextarena;
+ /* And insert after lastnf. */
+ ao->prevarena = lastnf;
+ ao->nextarena = lastnf->nextarena;
if (ao->nextarena != NULL) {
ao->nextarena->prevarena = ao;
}
- lastnf->nextarena = ao;
+ lastnf->nextarena = ao;
/* Verify that the swaps worked. */
assert(ao->nextarena == NULL || nf <= ao->nextarena->nfreepools);
assert(ao->prevarena == NULL || nf > ao->prevarena->nfreepools);
assert(ao->nextarena == NULL || ao->nextarena->prevarena == ao);
assert((usable_arenas == ao && ao->prevarena == NULL)
|| ao->prevarena->nextarena == ao);
-}
-
-/* Free a memory block allocated by pymalloc_alloc().
- Return 1 if it was freed.
- Return 0 if the block was not allocated by pymalloc_alloc(). */
-static inline int
-pymalloc_free(void *ctx, void *p)
-{
- assert(p != NULL);
-
-#ifdef WITH_VALGRIND
- if (UNLIKELY(running_on_valgrind > 0)) {
- return 0;
- }
-#endif
-
- poolp pool = POOL_ADDR(p);
- if (UNLIKELY(!address_in_range(p, pool))) {
- return 0;
- }
- /* We allocated this address. */
-
- /* Link p to the start of the pool's freeblock list. Since
- * the pool had at least the p block outstanding, the pool
- * wasn't empty (so it's already in a usedpools[] list, or
- * was full and is in no list -- it's not in the freeblocks
- * list in any case).
- */
- assert(pool->ref.count > 0); /* else it was empty */
- block *lastfree = pool->freeblock;
- *(block **)p = lastfree;
- pool->freeblock = (block *)p;
- pool->ref.count--;
-
- if (UNLIKELY(lastfree == NULL)) {
- /* Pool was full, so doesn't currently live in any list:
- * link it to the front of the appropriate usedpools[] list.
- * This mimics LRU pool usage for new allocations and
- * targets optimal filling when several pools contain
- * blocks of the same size class.
- */
- insert_to_usedpool(pool);
- return 1;
- }
-
- /* freeblock wasn't NULL, so the pool wasn't full,
- * and the pool is in a usedpools[] list.
- */
- if (LIKELY(pool->ref.count != 0)) {
- /* pool isn't empty: leave it in usedpools */
- return 1;
- }
-
- /* Pool is now empty: unlink from usedpools, and
- * link to the front of freepools. This ensures that
- * previously freed pools will be allocated later
- * (being not referenced, they are perhaps paged out).
- */
- insert_to_freepool(pool);
+}
+
+/* Free a memory block allocated by pymalloc_alloc().
+ Return 1 if it was freed.
+ Return 0 if the block was not allocated by pymalloc_alloc(). */
+static inline int
+pymalloc_free(void *ctx, void *p)
+{
+ assert(p != NULL);
+
+#ifdef WITH_VALGRIND
+ if (UNLIKELY(running_on_valgrind > 0)) {
+ return 0;
+ }
+#endif
+
+ poolp pool = POOL_ADDR(p);
+ if (UNLIKELY(!address_in_range(p, pool))) {
+ return 0;
+ }
+ /* We allocated this address. */
+
+ /* Link p to the start of the pool's freeblock list. Since
+ * the pool had at least the p block outstanding, the pool
+ * wasn't empty (so it's already in a usedpools[] list, or
+ * was full and is in no list -- it's not in the freeblocks
+ * list in any case).
+ */
+ assert(pool->ref.count > 0); /* else it was empty */
+ block *lastfree = pool->freeblock;
+ *(block **)p = lastfree;
+ pool->freeblock = (block *)p;
+ pool->ref.count--;
+
+ if (UNLIKELY(lastfree == NULL)) {
+ /* Pool was full, so doesn't currently live in any list:
+ * link it to the front of the appropriate usedpools[] list.
+ * This mimics LRU pool usage for new allocations and
+ * targets optimal filling when several pools contain
+ * blocks of the same size class.
+ */
+ insert_to_usedpool(pool);
+ return 1;
+ }
+
+ /* freeblock wasn't NULL, so the pool wasn't full,
+ * and the pool is in a usedpools[] list.
+ */
+ if (LIKELY(pool->ref.count != 0)) {
+ /* pool isn't empty: leave it in usedpools */
+ return 1;
+ }
+
+ /* Pool is now empty: unlink from usedpools, and
+ * link to the front of freepools. This ensures that
+ * previously freed pools will be allocated later
+ * (being not referenced, they are perhaps paged out).
+ */
+ insert_to_freepool(pool);
return 1;
}
@@ -1917,10 +1917,10 @@ _PyObject_Free(void *ctx, void *p)
return;
}
- if (UNLIKELY(!pymalloc_free(ctx, p))) {
+ if (UNLIKELY(!pymalloc_free(ctx, p))) {
/* pymalloc didn't allocate this address */
PyMem_RawFree(p);
- raw_allocated_blocks--;
+ raw_allocated_blocks--;
}
}
@@ -2031,10 +2031,10 @@ _Py_GetAllocatedBlocks(void)
* it wraps a real allocator, adding extra debugging info to the memory blocks.
*/
-/* Uncomment this define to add the "serialno" field */
-/* #define PYMEM_DEBUG_SERIALNO */
+/* Uncomment this define to add the "serialno" field */
+/* #define PYMEM_DEBUG_SERIALNO */
-#ifdef PYMEM_DEBUG_SERIALNO
+#ifdef PYMEM_DEBUG_SERIALNO
static size_t serialno = 0; /* incremented on each debug {m,re}alloc */
/* serialno is always incremented via calling this routine. The point is
@@ -2045,16 +2045,16 @@ bumpserialno(void)
{
++serialno;
}
-#endif
+#endif
#define SST SIZEOF_SIZE_T
-#ifdef PYMEM_DEBUG_SERIALNO
-# define PYMEM_DEBUG_EXTRA_BYTES 4 * SST
-#else
-# define PYMEM_DEBUG_EXTRA_BYTES 3 * SST
-#endif
-
+#ifdef PYMEM_DEBUG_SERIALNO
+# define PYMEM_DEBUG_EXTRA_BYTES 4 * SST
+#else
+# define PYMEM_DEBUG_EXTRA_BYTES 3 * SST
+#endif
+
/* Read sizeof(size_t) bytes at p as a big-endian size_t. */
static size_t
read_size_t(const void *p)
@@ -2083,7 +2083,7 @@ write_size_t(void *p, size_t n)
}
}
-/* Let S = sizeof(size_t). The debug malloc asks for 4 * S extra bytes and
+/* Let S = sizeof(size_t). The debug malloc asks for 4 * S extra bytes and
fills them with useful stuff, here calling the underlying malloc's result p:
p[0: S]
@@ -2092,14 +2092,14 @@ p[0: S]
p[S]
API ID. See PEP 445. This is a character, but seems undocumented.
p[S+1: 2*S]
- Copies of PYMEM_FORBIDDENBYTE. Used to catch under- writes and reads.
+ Copies of PYMEM_FORBIDDENBYTE. Used to catch under- writes and reads.
p[2*S: 2*S+n]
- The requested memory, filled with copies of PYMEM_CLEANBYTE.
+ The requested memory, filled with copies of PYMEM_CLEANBYTE.
Used to catch reference to uninitialized memory.
&p[2*S] is returned. Note that this is 8-byte aligned if pymalloc
handled the request itself.
p[2*S+n: 2*S+n+S]
- Copies of PYMEM_FORBIDDENBYTE. Used to catch over- writes and reads.
+ Copies of PYMEM_FORBIDDENBYTE. Used to catch over- writes and reads.
p[2*S+n+S: 2*S+n+2*S]
A serial number, incremented by 1 on each call to _PyMem_DebugMalloc
and _PyMem_DebugRealloc.
@@ -2107,9 +2107,9 @@ p[2*S+n+S: 2*S+n+2*S]
If "bad memory" is detected later, the serial number gives an
excellent way to set a breakpoint on the next run, to capture the
instant at which this block was passed out.
-
-If PYMEM_DEBUG_SERIALNO is not defined (default), the debug malloc only asks
-for 3 * S extra bytes, and omits the last serialno field.
+
+If PYMEM_DEBUG_SERIALNO is not defined (default), the debug malloc only asks
+for 3 * S extra bytes, and omits the last serialno field.
*/
static void *
@@ -2119,25 +2119,25 @@ _PyMem_DebugRawAlloc(int use_calloc, void *ctx, size_t nbytes)
uint8_t *p; /* base address of malloc'ed pad block */
uint8_t *data; /* p + 2*SST == pointer to data bytes */
uint8_t *tail; /* data + nbytes == pointer to tail pad bytes */
- size_t total; /* nbytes + PYMEM_DEBUG_EXTRA_BYTES */
+ size_t total; /* nbytes + PYMEM_DEBUG_EXTRA_BYTES */
- if (nbytes > (size_t)PY_SSIZE_T_MAX - PYMEM_DEBUG_EXTRA_BYTES) {
+ if (nbytes > (size_t)PY_SSIZE_T_MAX - PYMEM_DEBUG_EXTRA_BYTES) {
/* integer overflow: can't represent total as a Py_ssize_t */
return NULL;
}
- total = nbytes + PYMEM_DEBUG_EXTRA_BYTES;
+ total = nbytes + PYMEM_DEBUG_EXTRA_BYTES;
/* Layout: [SSSS IFFF CCCC...CCCC FFFF NNNN]
- ^--- p ^--- data ^--- tail
+ ^--- p ^--- data ^--- tail
S: nbytes stored as size_t
I: API identifier (1 byte)
F: Forbidden bytes (size_t - 1 bytes before, size_t bytes after)
C: Clean bytes used later to store actual data
- N: Serial number stored as size_t
+ N: Serial number stored as size_t
+
+ If PYMEM_DEBUG_SERIALNO is not defined (default), the last NNNN field
+ is omitted. */
- If PYMEM_DEBUG_SERIALNO is not defined (default), the last NNNN field
- is omitted. */
-
if (use_calloc) {
p = (uint8_t *)api->alloc.calloc(api->alloc.ctx, 1, total);
}
@@ -2149,25 +2149,25 @@ _PyMem_DebugRawAlloc(int use_calloc, void *ctx, size_t nbytes)
}
data = p + 2*SST;
-#ifdef PYMEM_DEBUG_SERIALNO
+#ifdef PYMEM_DEBUG_SERIALNO
bumpserialno();
-#endif
+#endif
/* at p, write size (SST bytes), id (1 byte), pad (SST-1 bytes) */
write_size_t(p, nbytes);
p[SST] = (uint8_t)api->api_id;
- memset(p + SST + 1, PYMEM_FORBIDDENBYTE, SST-1);
+ memset(p + SST + 1, PYMEM_FORBIDDENBYTE, SST-1);
if (nbytes > 0 && !use_calloc) {
- memset(data, PYMEM_CLEANBYTE, nbytes);
+ memset(data, PYMEM_CLEANBYTE, nbytes);
}
/* at tail, write pad (SST bytes) and serialno (SST bytes) */
tail = data + nbytes;
- memset(tail, PYMEM_FORBIDDENBYTE, SST);
-#ifdef PYMEM_DEBUG_SERIALNO
+ memset(tail, PYMEM_FORBIDDENBYTE, SST);
+#ifdef PYMEM_DEBUG_SERIALNO
write_size_t(tail + SST, serialno);
-#endif
+#endif
return data;
}
@@ -2190,7 +2190,7 @@ _PyMem_DebugRawCalloc(void *ctx, size_t nelem, size_t elsize)
/* The debug free first checks the 2*SST bytes on each end for sanity (in
particular, that the FORBIDDENBYTEs with the api ID are still intact).
- Then fills the original bytes with PYMEM_DEADBYTE.
+ Then fills the original bytes with PYMEM_DEADBYTE.
Then calls the underlying free.
*/
static void
@@ -2205,10 +2205,10 @@ _PyMem_DebugRawFree(void *ctx, void *p)
uint8_t *q = (uint8_t *)p - 2*SST; /* address returned from malloc */
size_t nbytes;
- _PyMem_DebugCheckAddress(__func__, api->api_id, p);
+ _PyMem_DebugCheckAddress(__func__, api->api_id, p);
nbytes = read_size_t(q);
- nbytes += PYMEM_DEBUG_EXTRA_BYTES;
- memset(q, PYMEM_DEADBYTE, nbytes);
+ nbytes += PYMEM_DEBUG_EXTRA_BYTES;
+ memset(q, PYMEM_DEADBYTE, nbytes);
api->alloc.free(api->alloc.ctx, q);
}
@@ -2230,62 +2230,62 @@ _PyMem_DebugRawRealloc(void *ctx, void *p, size_t nbytes)
#define ERASED_SIZE 64
uint8_t save[2*ERASED_SIZE]; /* A copy of erased bytes. */
- _PyMem_DebugCheckAddress(__func__, api->api_id, p);
+ _PyMem_DebugCheckAddress(__func__, api->api_id, p);
data = (uint8_t *)p;
head = data - 2*SST;
original_nbytes = read_size_t(head);
- if (nbytes > (size_t)PY_SSIZE_T_MAX - PYMEM_DEBUG_EXTRA_BYTES) {
+ if (nbytes > (size_t)PY_SSIZE_T_MAX - PYMEM_DEBUG_EXTRA_BYTES) {
/* integer overflow: can't represent total as a Py_ssize_t */
return NULL;
}
- total = nbytes + PYMEM_DEBUG_EXTRA_BYTES;
+ total = nbytes + PYMEM_DEBUG_EXTRA_BYTES;
tail = data + original_nbytes;
-#ifdef PYMEM_DEBUG_SERIALNO
- size_t block_serialno = read_size_t(tail + SST);
-#endif
+#ifdef PYMEM_DEBUG_SERIALNO
+ size_t block_serialno = read_size_t(tail + SST);
+#endif
/* Mark the header, the trailer, ERASED_SIZE bytes at the begin and
ERASED_SIZE bytes at the end as dead and save the copy of erased bytes.
*/
if (original_nbytes <= sizeof(save)) {
memcpy(save, data, original_nbytes);
- memset(data - 2 * SST, PYMEM_DEADBYTE,
- original_nbytes + PYMEM_DEBUG_EXTRA_BYTES);
+ memset(data - 2 * SST, PYMEM_DEADBYTE,
+ original_nbytes + PYMEM_DEBUG_EXTRA_BYTES);
}
else {
memcpy(save, data, ERASED_SIZE);
- memset(head, PYMEM_DEADBYTE, ERASED_SIZE + 2 * SST);
+ memset(head, PYMEM_DEADBYTE, ERASED_SIZE + 2 * SST);
memcpy(&save[ERASED_SIZE], tail - ERASED_SIZE, ERASED_SIZE);
- memset(tail - ERASED_SIZE, PYMEM_DEADBYTE,
- ERASED_SIZE + PYMEM_DEBUG_EXTRA_BYTES - 2 * SST);
+ memset(tail - ERASED_SIZE, PYMEM_DEADBYTE,
+ ERASED_SIZE + PYMEM_DEBUG_EXTRA_BYTES - 2 * SST);
}
/* Resize and add decorations. */
r = (uint8_t *)api->alloc.realloc(api->alloc.ctx, head, total);
if (r == NULL) {
- /* if realloc() failed: rewrite header and footer which have
- just been erased */
+ /* if realloc() failed: rewrite header and footer which have
+ just been erased */
nbytes = original_nbytes;
}
else {
head = r;
-#ifdef PYMEM_DEBUG_SERIALNO
+#ifdef PYMEM_DEBUG_SERIALNO
bumpserialno();
block_serialno = serialno;
-#endif
+#endif
}
- data = head + 2*SST;
+ data = head + 2*SST;
write_size_t(head, nbytes);
head[SST] = (uint8_t)api->api_id;
- memset(head + SST + 1, PYMEM_FORBIDDENBYTE, SST-1);
+ memset(head + SST + 1, PYMEM_FORBIDDENBYTE, SST-1);
tail = data + nbytes;
- memset(tail, PYMEM_FORBIDDENBYTE, SST);
-#ifdef PYMEM_DEBUG_SERIALNO
+ memset(tail, PYMEM_FORBIDDENBYTE, SST);
+#ifdef PYMEM_DEBUG_SERIALNO
write_size_t(tail + SST, block_serialno);
-#endif
+#endif
/* Restore saved bytes. */
if (original_nbytes <= sizeof(save)) {
@@ -2305,35 +2305,35 @@ _PyMem_DebugRawRealloc(void *ctx, void *p, size_t nbytes)
}
if (nbytes > original_nbytes) {
- /* growing: mark new extra memory clean */
- memset(data + original_nbytes, PYMEM_CLEANBYTE,
- nbytes - original_nbytes);
+ /* growing: mark new extra memory clean */
+ memset(data + original_nbytes, PYMEM_CLEANBYTE,
+ nbytes - original_nbytes);
}
return data;
}
-static inline void
-_PyMem_DebugCheckGIL(const char *func)
+static inline void
+_PyMem_DebugCheckGIL(const char *func)
{
- if (!PyGILState_Check()) {
- _Py_FatalErrorFunc(func,
- "Python memory allocator called "
- "without holding the GIL");
- }
+ if (!PyGILState_Check()) {
+ _Py_FatalErrorFunc(func,
+ "Python memory allocator called "
+ "without holding the GIL");
+ }
}
static void *
_PyMem_DebugMalloc(void *ctx, size_t nbytes)
{
- _PyMem_DebugCheckGIL(__func__);
+ _PyMem_DebugCheckGIL(__func__);
return _PyMem_DebugRawMalloc(ctx, nbytes);
}
static void *
_PyMem_DebugCalloc(void *ctx, size_t nelem, size_t elsize)
{
- _PyMem_DebugCheckGIL(__func__);
+ _PyMem_DebugCheckGIL(__func__);
return _PyMem_DebugRawCalloc(ctx, nelem, elsize);
}
@@ -2341,7 +2341,7 @@ _PyMem_DebugCalloc(void *ctx, size_t nelem, size_t elsize)
static void
_PyMem_DebugFree(void *ctx, void *ptr)
{
- _PyMem_DebugCheckGIL(__func__);
+ _PyMem_DebugCheckGIL(__func__);
_PyMem_DebugRawFree(ctx, ptr);
}
@@ -2349,7 +2349,7 @@ _PyMem_DebugFree(void *ctx, void *ptr)
static void *
_PyMem_DebugRealloc(void *ctx, void *ptr, size_t nbytes)
{
- _PyMem_DebugCheckGIL(__func__);
+ _PyMem_DebugCheckGIL(__func__);
return _PyMem_DebugRawRealloc(ctx, ptr, nbytes);
}
@@ -2359,10 +2359,10 @@ _PyMem_DebugRealloc(void *ctx, void *ptr, size_t nbytes)
* The API id, is also checked.
*/
static void
-_PyMem_DebugCheckAddress(const char *func, char api, const void *p)
+_PyMem_DebugCheckAddress(const char *func, char api, const void *p)
{
- assert(p != NULL);
-
+ assert(p != NULL);
+
const uint8_t *q = (const uint8_t *)p;
size_t nbytes;
const uint8_t *tail;
@@ -2372,11 +2372,11 @@ _PyMem_DebugCheckAddress(const char *func, char api, const void *p)
/* Check the API id */
id = (char)q[-SST];
if (id != api) {
- _PyObject_DebugDumpAddress(p);
- _Py_FatalErrorFormat(func,
- "bad ID: Allocated using API '%c', "
- "verified using API '%c'",
- id, api);
+ _PyObject_DebugDumpAddress(p);
+ _Py_FatalErrorFormat(func,
+ "bad ID: Allocated using API '%c', "
+ "verified using API '%c'",
+ id, api);
}
/* Check the stuff at the start of p first: if there's underwrite
@@ -2384,18 +2384,18 @@ _PyMem_DebugCheckAddress(const char *func, char api, const void *p)
* the tail could lead to a segfault then.
*/
for (i = SST-1; i >= 1; --i) {
- if (*(q-i) != PYMEM_FORBIDDENBYTE) {
- _PyObject_DebugDumpAddress(p);
- _Py_FatalErrorFunc(func, "bad leading pad byte");
+ if (*(q-i) != PYMEM_FORBIDDENBYTE) {
+ _PyObject_DebugDumpAddress(p);
+ _Py_FatalErrorFunc(func, "bad leading pad byte");
}
}
nbytes = read_size_t(q - 2*SST);
tail = q + nbytes;
for (i = 0; i < SST; ++i) {
- if (tail[i] != PYMEM_FORBIDDENBYTE) {
- _PyObject_DebugDumpAddress(p);
- _Py_FatalErrorFunc(func, "bad trailing pad byte");
+ if (tail[i] != PYMEM_FORBIDDENBYTE) {
+ _PyObject_DebugDumpAddress(p);
+ _Py_FatalErrorFunc(func, "bad trailing pad byte");
}
}
}
@@ -2406,7 +2406,7 @@ _PyObject_DebugDumpAddress(const void *p)
{
const uint8_t *q = (const uint8_t *)p;
const uint8_t *tail;
- size_t nbytes;
+ size_t nbytes;
int i;
int ok;
char id;
@@ -2427,7 +2427,7 @@ _PyObject_DebugDumpAddress(const void *p)
fprintf(stderr, " The %d pad bytes at p-%d are ", SST-1, SST-1);
ok = 1;
for (i = 1; i <= SST-1; ++i) {
- if (*(q-i) != PYMEM_FORBIDDENBYTE) {
+ if (*(q-i) != PYMEM_FORBIDDENBYTE) {
ok = 0;
break;
}
@@ -2436,11 +2436,11 @@ _PyObject_DebugDumpAddress(const void *p)
fputs("FORBIDDENBYTE, as expected.\n", stderr);
else {
fprintf(stderr, "not all FORBIDDENBYTE (0x%02x):\n",
- PYMEM_FORBIDDENBYTE);
+ PYMEM_FORBIDDENBYTE);
for (i = SST-1; i >= 1; --i) {
const uint8_t byte = *(q-i);
fprintf(stderr, " at p-%d: 0x%02x", i, byte);
- if (byte != PYMEM_FORBIDDENBYTE)
+ if (byte != PYMEM_FORBIDDENBYTE)
fputs(" *** OUCH", stderr);
fputc('\n', stderr);
}
@@ -2452,10 +2452,10 @@ _PyObject_DebugDumpAddress(const void *p)
}
tail = q + nbytes;
- fprintf(stderr, " The %d pad bytes at tail=%p are ", SST, (void *)tail);
+ fprintf(stderr, " The %d pad bytes at tail=%p are ", SST, (void *)tail);
ok = 1;
for (i = 0; i < SST; ++i) {
- if (tail[i] != PYMEM_FORBIDDENBYTE) {
+ if (tail[i] != PYMEM_FORBIDDENBYTE) {
ok = 0;
break;
}
@@ -2464,22 +2464,22 @@ _PyObject_DebugDumpAddress(const void *p)
fputs("FORBIDDENBYTE, as expected.\n", stderr);
else {
fprintf(stderr, "not all FORBIDDENBYTE (0x%02x):\n",
- PYMEM_FORBIDDENBYTE);
+ PYMEM_FORBIDDENBYTE);
for (i = 0; i < SST; ++i) {
const uint8_t byte = tail[i];
fprintf(stderr, " at tail+%d: 0x%02x",
i, byte);
- if (byte != PYMEM_FORBIDDENBYTE)
+ if (byte != PYMEM_FORBIDDENBYTE)
fputs(" *** OUCH", stderr);
fputc('\n', stderr);
}
}
-#ifdef PYMEM_DEBUG_SERIALNO
- size_t serial = read_size_t(tail + SST);
+#ifdef PYMEM_DEBUG_SERIALNO
+ size_t serial = read_size_t(tail + SST);
fprintf(stderr, " The block was made by call #%" PY_FORMAT_SIZE_T
"u to debug malloc/realloc.\n", serial);
-#endif
+#endif
if (nbytes > 0) {
i = 0;
@@ -2705,11 +2705,11 @@ _PyObject_DebugMallocStats(FILE *out)
quantization += p * ((POOL_SIZE - POOL_OVERHEAD) % size);
}
fputc('\n', out);
-#ifdef PYMEM_DEBUG_SERIALNO
- if (_PyMem_DebugEnabled()) {
+#ifdef PYMEM_DEBUG_SERIALNO
+ if (_PyMem_DebugEnabled()) {
(void)printone(out, "# times object malloc called", serialno);
- }
-#endif
+ }
+#endif
(void)printone(out, "# arenas allocated total", ntimes_arena_allocated);
(void)printone(out, "# arenas reclaimed", ntimes_arena_allocated - narenas);
(void)printone(out, "# arenas highwater mark", narenas_highwater);
diff --git a/contrib/tools/python3/src/Objects/odictobject.c b/contrib/tools/python3/src/Objects/odictobject.c
index f7afabbea0..f3980aba93 100644
--- a/contrib/tools/python3/src/Objects/odictobject.c
+++ b/contrib/tools/python3/src/Objects/odictobject.c
@@ -465,8 +465,8 @@ later:
*/
#include "Python.h"
-#include "pycore_object.h"
-#include <stddef.h> // offsetof()
+#include "pycore_object.h"
+#include <stddef.h> // offsetof()
#include "dict-common.h"
#include <stddef.h>
@@ -525,8 +525,8 @@ struct _odictnode {
#define _odict_FOREACH(od, node) \
for (node = _odict_FIRST(od); node != NULL; node = _odictnode_NEXT(node))
-_Py_IDENTIFIER(items);
-
+_Py_IDENTIFIER(items);
+
/* Return the index into the hash table, regardless of a valid node. */
static Py_ssize_t
_odict_get_index_raw(PyODictObject *od, PyObject *key, Py_hash_t hash)
@@ -851,57 +851,57 @@ static PyMappingMethods odict_as_mapping = {
/* ----------------------------------------------
- * OrderedDict number methods
- */
-
-static int mutablemapping_update_arg(PyObject*, PyObject*);
-
-static PyObject *
-odict_or(PyObject *left, PyObject *right)
-{
- PyTypeObject *type;
- PyObject *other;
- if (PyODict_Check(left)) {
- type = Py_TYPE(left);
- other = right;
- }
- else {
- type = Py_TYPE(right);
- other = left;
- }
- if (!PyDict_Check(other)) {
- Py_RETURN_NOTIMPLEMENTED;
- }
- PyObject *new = PyObject_CallOneArg((PyObject*)type, left);
- if (!new) {
- return NULL;
- }
- if (mutablemapping_update_arg(new, right) < 0) {
- Py_DECREF(new);
- return NULL;
- }
- return new;
-}
-
-static PyObject *
-odict_inplace_or(PyObject *self, PyObject *other)
-{
- if (mutablemapping_update_arg(self, other) < 0) {
- return NULL;
- }
- Py_INCREF(self);
- return self;
-}
-
-/* tp_as_number */
-
-static PyNumberMethods odict_as_number = {
- .nb_or = odict_or,
- .nb_inplace_or = odict_inplace_or,
-};
-
-
-/* ----------------------------------------------
+ * OrderedDict number methods
+ */
+
+static int mutablemapping_update_arg(PyObject*, PyObject*);
+
+static PyObject *
+odict_or(PyObject *left, PyObject *right)
+{
+ PyTypeObject *type;
+ PyObject *other;
+ if (PyODict_Check(left)) {
+ type = Py_TYPE(left);
+ other = right;
+ }
+ else {
+ type = Py_TYPE(right);
+ other = left;
+ }
+ if (!PyDict_Check(other)) {
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+ PyObject *new = PyObject_CallOneArg((PyObject*)type, left);
+ if (!new) {
+ return NULL;
+ }
+ if (mutablemapping_update_arg(new, right) < 0) {
+ Py_DECREF(new);
+ return NULL;
+ }
+ return new;
+}
+
+static PyObject *
+odict_inplace_or(PyObject *self, PyObject *other)
+{
+ if (mutablemapping_update_arg(self, other) < 0) {
+ return NULL;
+ }
+ Py_INCREF(self);
+ return self;
+}
+
+/* tp_as_number */
+
+static PyNumberMethods odict_as_number = {
+ .nb_or = odict_or,
+ .nb_inplace_or = odict_inplace_or,
+};
+
+
+/* ----------------------------------------------
* OrderedDict methods
*/
@@ -930,7 +930,7 @@ OrderedDict_fromkeys_impl(PyTypeObject *type, PyObject *seq, PyObject *value)
PyDoc_STRVAR(odict_sizeof__doc__, "");
static PyObject *
-odict_sizeof(PyODictObject *od, PyObject *Py_UNUSED(ignored))
+odict_sizeof(PyODictObject *od, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t res = _PyDict_SizeOf((PyDictObject *)od);
res += sizeof(_ODictNode *) * od->od_fast_nodes_size; /* od_fast_nodes */
@@ -945,7 +945,7 @@ odict_sizeof(PyODictObject *od, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(odict_reduce__doc__, "Return state information for pickling");
static PyObject *
-odict_reduce(register PyODictObject *od, PyObject *Py_UNUSED(ignored))
+odict_reduce(register PyODictObject *od, PyObject *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(__dict__);
PyObject *dict = NULL, *result = NULL;
@@ -971,7 +971,7 @@ odict_reduce(register PyODictObject *od, PyObject *Py_UNUSED(ignored))
if (args == NULL)
goto Done;
- items = _PyObject_CallMethodIdNoArgs((PyObject *)od, &PyId_items);
+ items = _PyObject_CallMethodIdNoArgs((PyObject *)od, &PyId_items);
if (items == NULL)
goto Done;
@@ -1188,21 +1188,21 @@ OrderedDict_popitem_impl(PyODictObject *self, int last)
/* MutableMapping.keys() does not have a docstring. */
PyDoc_STRVAR(odict_keys__doc__, "");
-static PyObject * odictkeys_new(PyObject *od, PyObject *Py_UNUSED(ignored)); /* forward */
+static PyObject * odictkeys_new(PyObject *od, PyObject *Py_UNUSED(ignored)); /* forward */
/* values() */
/* MutableMapping.values() does not have a docstring. */
PyDoc_STRVAR(odict_values__doc__, "");
-static PyObject * odictvalues_new(PyObject *od, PyObject *Py_UNUSED(ignored)); /* forward */
+static PyObject * odictvalues_new(PyObject *od, PyObject *Py_UNUSED(ignored)); /* forward */
/* items() */
/* MutableMapping.items() does not have a docstring. */
PyDoc_STRVAR(odict_items__doc__, "");
-static PyObject * odictitems_new(PyObject *od, PyObject *Py_UNUSED(ignored)); /* forward */
+static PyObject * odictitems_new(PyObject *od, PyObject *Py_UNUSED(ignored)); /* forward */
/* update() */
@@ -1236,7 +1236,7 @@ static int _PyODict_SetItem_KnownHash(PyObject *, PyObject *, PyObject *,
PyDoc_STRVAR(odict_copy__doc__, "od.copy() -> a shallow copy of od");
static PyObject *
-odict_copy(register PyODictObject *od, PyObject *Py_UNUSED(ignored))
+odict_copy(register PyODictObject *od, PyObject *Py_UNUSED(ignored))
{
_ODictNode *node;
PyObject *od_copy;
@@ -1290,13 +1290,13 @@ PyDoc_STRVAR(odict_reversed__doc__, "od.__reversed__() <==> reversed(od)");
#define _odict_ITER_REVERSED 1
#define _odict_ITER_KEYS 2
#define _odict_ITER_VALUES 4
-#define _odict_ITER_ITEMS (_odict_ITER_KEYS|_odict_ITER_VALUES)
+#define _odict_ITER_ITEMS (_odict_ITER_KEYS|_odict_ITER_VALUES)
/* forward */
static PyObject * odictiter_new(PyODictObject *, int);
static PyObject *
-odict_reversed(PyODictObject *od, PyObject *Py_UNUSED(ignored))
+odict_reversed(PyODictObject *od, PyObject *Py_UNUSED(ignored))
{
return odictiter_new(od, _odict_ITER_KEYS|_odict_ITER_REVERSED);
}
@@ -1363,16 +1363,16 @@ static PyMethodDef odict_methods[] = {
{"__reduce__", (PyCFunction)odict_reduce, METH_NOARGS,
odict_reduce__doc__},
ORDEREDDICT_SETDEFAULT_METHODDEF
- {"pop", (PyCFunction)(void(*)(void))odict_pop,
+ {"pop", (PyCFunction)(void(*)(void))odict_pop,
METH_VARARGS | METH_KEYWORDS, odict_pop__doc__},
ORDEREDDICT_POPITEM_METHODDEF
- {"keys", odictkeys_new, METH_NOARGS,
+ {"keys", odictkeys_new, METH_NOARGS,
odict_keys__doc__},
- {"values", odictvalues_new, METH_NOARGS,
+ {"values", odictvalues_new, METH_NOARGS,
odict_values__doc__},
- {"items", odictitems_new, METH_NOARGS,
+ {"items", odictitems_new, METH_NOARGS,
odict_items__doc__},
- {"update", (PyCFunction)(void(*)(void))odict_update, METH_VARARGS | METH_KEYWORDS,
+ {"update", (PyCFunction)(void(*)(void))odict_update, METH_VARARGS | METH_KEYWORDS,
odict_update__doc__},
{"clear", (PyCFunction)odict_clear, METH_NOARGS,
odict_clear__doc__},
@@ -1409,7 +1409,7 @@ static void
odict_dealloc(PyODictObject *self)
{
PyObject_GC_UnTrack(self);
- Py_TRASHCAN_BEGIN(self, odict_dealloc)
+ Py_TRASHCAN_BEGIN(self, odict_dealloc)
Py_XDECREF(self->od_inst_dict);
if (self->od_weakreflist != NULL)
@@ -1418,7 +1418,7 @@ odict_dealloc(PyODictObject *self)
_odict_clear_nodes(self);
PyDict_Type.tp_dealloc((PyObject *)self);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
/* tp_repr */
@@ -1468,13 +1468,13 @@ odict_repr(PyODictObject *self)
}
count++;
}
- if (count < PyList_GET_SIZE(pieces)) {
- Py_SET_SIZE(pieces, count);
- }
+ if (count < PyList_GET_SIZE(pieces)) {
+ Py_SET_SIZE(pieces, count);
+ }
}
else {
- PyObject *items = _PyObject_CallMethodIdNoArgs((PyObject *)self,
- &PyId_items);
+ PyObject *items = _PyObject_CallMethodIdNoArgs((PyObject *)self,
+ &PyId_items);
if (items == NULL)
goto Done;
pieces = PySequence_List(items);
@@ -1578,7 +1578,7 @@ odict_init(PyObject *self, PyObject *args, PyObject *kwds)
if (len == -1)
return -1;
if (len > 1) {
- const char *msg = "expected at most 1 arguments, got %zd";
+ const char *msg = "expected at most 1 arguments, got %zd";
PyErr_Format(PyExc_TypeError, msg, len);
return -1;
}
@@ -1601,12 +1601,12 @@ PyTypeObject PyODict_Type = {
sizeof(PyODictObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)odict_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)odict_repr, /* tp_repr */
- &odict_as_number, /* tp_as_number */
+ &odict_as_number, /* tp_as_number */
0, /* tp_as_sequence */
&odict_as_mapping, /* tp_as_mapping */
0, /* tp_hash */
@@ -1709,7 +1709,7 @@ odictiter_dealloc(odictiterobject *di)
_PyObject_GC_UNTRACK(di);
Py_XDECREF(di->di_odict);
Py_XDECREF(di->di_current);
- if ((di->kind & _odict_ITER_ITEMS) == _odict_ITER_ITEMS) {
+ if ((di->kind & _odict_ITER_ITEMS) == _odict_ITER_ITEMS) {
Py_DECREF(di->di_result);
}
PyObject_GC_Del(di);
@@ -1818,11 +1818,11 @@ odictiter_iternext(odictiterobject *di)
Py_INCREF(result);
Py_DECREF(PyTuple_GET_ITEM(result, 0)); /* borrowed */
Py_DECREF(PyTuple_GET_ITEM(result, 1)); /* borrowed */
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
}
else {
result = PyTuple_New(2);
@@ -1850,7 +1850,7 @@ PyDoc_STRVAR(reduce_doc, "Return state information for pickling");
static PyObject *
odictiter_reduce(odictiterobject *di, PyObject *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(iter);
/* copy the iterator state */
odictiterobject tmp = *di;
Py_XINCREF(tmp.di_odict);
@@ -1863,7 +1863,7 @@ odictiter_reduce(odictiterobject *di, PyObject *Py_UNUSED(ignored))
if (list == NULL) {
return NULL;
}
- return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
+ return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
}
static PyMethodDef odictiter_methods[] = {
@@ -1878,10 +1878,10 @@ PyTypeObject PyODictIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)odictiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1915,16 +1915,16 @@ odictiter_new(PyODictObject *od, int kind)
if (di == NULL)
return NULL;
- if ((kind & _odict_ITER_ITEMS) == _odict_ITER_ITEMS) {
+ if ((kind & _odict_ITER_ITEMS) == _odict_ITER_ITEMS) {
di->di_result = PyTuple_Pack(2, Py_None, Py_None);
if (di->di_result == NULL) {
Py_DECREF(di);
return NULL;
}
}
- else {
+ else {
di->di_result = NULL;
- }
+ }
di->kind = kind;
node = reversed ? _odict_LAST(od) : _odict_FIRST(od);
@@ -1952,7 +1952,7 @@ odictkeys_iter(_PyDictViewObject *dv)
}
static PyObject *
-odictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
+odictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
{
if (dv->dv_dict == NULL) {
Py_RETURN_NONE;
@@ -1972,10 +1972,10 @@ PyTypeObject PyODictKeys_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2001,7 +2001,7 @@ PyTypeObject PyODictKeys_Type = {
};
static PyObject *
-odictkeys_new(PyObject *od, PyObject *Py_UNUSED(ignored))
+odictkeys_new(PyObject *od, PyObject *Py_UNUSED(ignored))
{
return _PyDictView_New(od, &PyODictKeys_Type);
}
@@ -2019,7 +2019,7 @@ odictitems_iter(_PyDictViewObject *dv)
}
static PyObject *
-odictitems_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
+odictitems_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
{
if (dv->dv_dict == NULL) {
Py_RETURN_NONE;
@@ -2039,10 +2039,10 @@ PyTypeObject PyODictItems_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2068,7 +2068,7 @@ PyTypeObject PyODictItems_Type = {
};
static PyObject *
-odictitems_new(PyObject *od, PyObject *Py_UNUSED(ignored))
+odictitems_new(PyObject *od, PyObject *Py_UNUSED(ignored))
{
return _PyDictView_New(od, &PyODictItems_Type);
}
@@ -2086,7 +2086,7 @@ odictvalues_iter(_PyDictViewObject *dv)
}
static PyObject *
-odictvalues_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
+odictvalues_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))
{
if (dv->dv_dict == NULL) {
Py_RETURN_NONE;
@@ -2106,10 +2106,10 @@ PyTypeObject PyODictValues_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2135,7 +2135,7 @@ PyTypeObject PyODictValues_Type = {
};
static PyObject *
-odictvalues_new(PyObject *od, PyObject *Py_UNUSED(ignored))
+odictvalues_new(PyObject *od, PyObject *Py_UNUSED(ignored))
{
return _PyDictView_New(od, &PyODictValues_Type);
}
@@ -2246,79 +2246,79 @@ Done:
return 0;
}
-static int
-mutablemapping_update_arg(PyObject *self, PyObject *arg)
+static int
+mutablemapping_update_arg(PyObject *self, PyObject *arg)
{
int res = 0;
- if (PyDict_CheckExact(arg)) {
- PyObject *items = PyDict_Items(arg);
- if (items == NULL) {
- return -1;
- }
- res = mutablemapping_add_pairs(self, items);
- Py_DECREF(items);
- return res;
- }
+ if (PyDict_CheckExact(arg)) {
+ PyObject *items = PyDict_Items(arg);
+ if (items == NULL) {
+ return -1;
+ }
+ res = mutablemapping_add_pairs(self, items);
+ Py_DECREF(items);
+ return res;
+ }
_Py_IDENTIFIER(keys);
- PyObject *func;
- if (_PyObject_LookupAttrId(arg, &PyId_keys, &func) < 0) {
- return -1;
- }
- if (func != NULL) {
- PyObject *keys = _PyObject_CallNoArg(func);
- Py_DECREF(func);
- if (keys == NULL) {
- return -1;
- }
- PyObject *iterator = PyObject_GetIter(keys);
- Py_DECREF(keys);
- if (iterator == NULL) {
- return -1;
- }
- PyObject *key;
- while (res == 0 && (key = PyIter_Next(iterator))) {
- PyObject *value = PyObject_GetItem(arg, key);
- if (value != NULL) {
- res = PyObject_SetItem(self, key, value);
- Py_DECREF(value);
- }
- else {
- res = -1;
- }
- Py_DECREF(key);
- }
- Py_DECREF(iterator);
- if (res != 0 || PyErr_Occurred()) {
- return -1;
- }
- return 0;
- }
- if (_PyObject_LookupAttrId(arg, &PyId_items, &func) < 0) {
- return -1;
- }
- if (func != NULL) {
- PyObject *items = _PyObject_CallNoArg(func);
- Py_DECREF(func);
- if (items == NULL) {
- return -1;
- }
- res = mutablemapping_add_pairs(self, items);
- Py_DECREF(items);
- return res;
- }
- res = mutablemapping_add_pairs(self, arg);
- return res;
-}
-
-static PyObject *
-mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)
-{
- int res;
+ PyObject *func;
+ if (_PyObject_LookupAttrId(arg, &PyId_keys, &func) < 0) {
+ return -1;
+ }
+ if (func != NULL) {
+ PyObject *keys = _PyObject_CallNoArg(func);
+ Py_DECREF(func);
+ if (keys == NULL) {
+ return -1;
+ }
+ PyObject *iterator = PyObject_GetIter(keys);
+ Py_DECREF(keys);
+ if (iterator == NULL) {
+ return -1;
+ }
+ PyObject *key;
+ while (res == 0 && (key = PyIter_Next(iterator))) {
+ PyObject *value = PyObject_GetItem(arg, key);
+ if (value != NULL) {
+ res = PyObject_SetItem(self, key, value);
+ Py_DECREF(value);
+ }
+ else {
+ res = -1;
+ }
+ Py_DECREF(key);
+ }
+ Py_DECREF(iterator);
+ if (res != 0 || PyErr_Occurred()) {
+ return -1;
+ }
+ return 0;
+ }
+ if (_PyObject_LookupAttrId(arg, &PyId_items, &func) < 0) {
+ return -1;
+ }
+ if (func != NULL) {
+ PyObject *items = _PyObject_CallNoArg(func);
+ Py_DECREF(func);
+ if (items == NULL) {
+ return -1;
+ }
+ res = mutablemapping_add_pairs(self, items);
+ Py_DECREF(items);
+ return res;
+ }
+ res = mutablemapping_add_pairs(self, arg);
+ return res;
+}
+
+static PyObject *
+mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ int res;
/* first handle args, if any */
assert(args == NULL || PyTuple_Check(args));
- Py_ssize_t len = (args != NULL) ? PyTuple_GET_SIZE(args) : 0;
+ Py_ssize_t len = (args != NULL) ? PyTuple_GET_SIZE(args) : 0;
if (len > 1) {
- const char *msg = "update() takes at most 1 positional argument (%zd given)";
+ const char *msg = "update() takes at most 1 positional argument (%zd given)";
PyErr_Format(PyExc_TypeError, msg, len);
return NULL;
}
@@ -2327,9 +2327,9 @@ mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)
PyObject *other = PyTuple_GET_ITEM(args, 0); /* borrowed reference */
assert(other != NULL);
Py_INCREF(other);
- res = mutablemapping_update_arg(self, other);
- Py_DECREF(other);
- if (res < 0) {
+ res = mutablemapping_update_arg(self, other);
+ Py_DECREF(other);
+ if (res < 0) {
return NULL;
}
}
diff --git a/contrib/tools/python3/src/Objects/picklebufobject.c b/contrib/tools/python3/src/Objects/picklebufobject.c
index 2db5036ebe..a135e5575e 100644
--- a/contrib/tools/python3/src/Objects/picklebufobject.c
+++ b/contrib/tools/python3/src/Objects/picklebufobject.c
@@ -1,219 +1,219 @@
-/* PickleBuffer object implementation */
-
-#define PY_SSIZE_T_CLEAN
-#include "Python.h"
-#include <stddef.h>
-
-typedef struct {
- PyObject_HEAD
- /* The view exported by the original object */
- Py_buffer view;
- PyObject *weakreflist;
-} PyPickleBufferObject;
-
-/* C API */
-
-PyObject *
-PyPickleBuffer_FromObject(PyObject *base)
-{
- PyTypeObject *type = &PyPickleBuffer_Type;
- PyPickleBufferObject *self;
-
- self = (PyPickleBufferObject *) type->tp_alloc(type, 0);
- if (self == NULL) {
- return NULL;
- }
- self->view.obj = NULL;
- self->weakreflist = NULL;
- if (PyObject_GetBuffer(base, &self->view, PyBUF_FULL_RO) < 0) {
- Py_DECREF(self);
- return NULL;
- }
- return (PyObject *) self;
-}
-
-const Py_buffer *
-PyPickleBuffer_GetBuffer(PyObject *obj)
-{
- PyPickleBufferObject *self = (PyPickleBufferObject *) obj;
-
- if (!PyPickleBuffer_Check(obj)) {
- PyErr_Format(PyExc_TypeError,
- "expected PickleBuffer, %.200s found",
- Py_TYPE(obj)->tp_name);
- return NULL;
- }
- if (self->view.obj == NULL) {
- PyErr_SetString(PyExc_ValueError,
- "operation forbidden on released PickleBuffer object");
- return NULL;
- }
- return &self->view;
-}
-
-int
-PyPickleBuffer_Release(PyObject *obj)
-{
- PyPickleBufferObject *self = (PyPickleBufferObject *) obj;
-
- if (!PyPickleBuffer_Check(obj)) {
- PyErr_Format(PyExc_TypeError,
- "expected PickleBuffer, %.200s found",
- Py_TYPE(obj)->tp_name);
- return -1;
- }
- PyBuffer_Release(&self->view);
- return 0;
-}
-
-static PyObject *
-picklebuf_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
- PyPickleBufferObject *self;
- PyObject *base;
- char *keywords[] = {"", NULL};
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O:PickleBuffer",
- keywords, &base)) {
- return NULL;
- }
-
- self = (PyPickleBufferObject *) type->tp_alloc(type, 0);
- if (self == NULL) {
- return NULL;
- }
- self->view.obj = NULL;
- self->weakreflist = NULL;
- if (PyObject_GetBuffer(base, &self->view, PyBUF_FULL_RO) < 0) {
- Py_DECREF(self);
- return NULL;
- }
- return (PyObject *) self;
-}
-
-static int
-picklebuf_traverse(PyPickleBufferObject *self, visitproc visit, void *arg)
-{
- Py_VISIT(self->view.obj);
- return 0;
-}
-
-static int
-picklebuf_clear(PyPickleBufferObject *self)
-{
- PyBuffer_Release(&self->view);
- return 0;
-}
-
-static void
-picklebuf_dealloc(PyPickleBufferObject *self)
-{
- PyObject_GC_UnTrack(self);
- if (self->weakreflist != NULL)
- PyObject_ClearWeakRefs((PyObject *) self);
- PyBuffer_Release(&self->view);
- Py_TYPE(self)->tp_free((PyObject *) self);
-}
-
-/* Buffer API */
-
-static int
-picklebuf_getbuf(PyPickleBufferObject *self, Py_buffer *view, int flags)
-{
- if (self->view.obj == NULL) {
- PyErr_SetString(PyExc_ValueError,
- "operation forbidden on released PickleBuffer object");
- return -1;
- }
- return PyObject_GetBuffer(self->view.obj, view, flags);
-}
-
-static void
-picklebuf_releasebuf(PyPickleBufferObject *self, Py_buffer *view)
-{
- /* Since our bf_getbuffer redirects to the original object, this
- * implementation is never called. It only exists to signal that
- * buffers exported by PickleBuffer have non-trivial releasing
- * behaviour (see check in Python/getargs.c).
- */
-}
-
-static PyBufferProcs picklebuf_as_buffer = {
- .bf_getbuffer = (getbufferproc) picklebuf_getbuf,
- .bf_releasebuffer = (releasebufferproc) picklebuf_releasebuf,
-};
-
-/* Methods */
-
-static PyObject *
-picklebuf_raw(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))
-{
- if (self->view.obj == NULL) {
- PyErr_SetString(PyExc_ValueError,
- "operation forbidden on released PickleBuffer object");
- return NULL;
- }
- if (self->view.suboffsets != NULL
- || !PyBuffer_IsContiguous(&self->view, 'A')) {
- PyErr_SetString(PyExc_BufferError,
- "cannot extract raw buffer from non-contiguous buffer");
- return NULL;
- }
- PyObject *m = PyMemoryView_FromObject((PyObject *) self);
- if (m == NULL) {
- return NULL;
- }
- PyMemoryViewObject *mv = (PyMemoryViewObject *) m;
- assert(mv->view.suboffsets == NULL);
- /* Mutate memoryview instance to make it a "raw" memoryview */
- mv->view.format = "B";
- mv->view.ndim = 1;
- mv->view.itemsize = 1;
- /* shape = (length,) */
- mv->view.shape = &mv->view.len;
- /* strides = (1,) */
- mv->view.strides = &mv->view.itemsize;
- /* Fix memoryview state flags */
- /* XXX Expose memoryobject.c's init_flags() instead? */
- mv->flags = _Py_MEMORYVIEW_C | _Py_MEMORYVIEW_FORTRAN;
- return m;
-}
-
-PyDoc_STRVAR(picklebuf_raw_doc,
-"raw($self, /)\n--\n\
-\n\
-Return a memoryview of the raw memory underlying this buffer.\n\
-Will raise BufferError is the buffer isn't contiguous.");
-
-static PyObject *
-picklebuf_release(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))
-{
- PyBuffer_Release(&self->view);
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(picklebuf_release_doc,
-"release($self, /)\n--\n\
-\n\
-Release the underlying buffer exposed by the PickleBuffer object.");
-
-static PyMethodDef picklebuf_methods[] = {
- {"raw", (PyCFunction) picklebuf_raw, METH_NOARGS, picklebuf_raw_doc},
- {"release", (PyCFunction) picklebuf_release, METH_NOARGS, picklebuf_release_doc},
- {NULL, NULL}
-};
-
-PyTypeObject PyPickleBuffer_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- .tp_name = "pickle.PickleBuffer",
- .tp_doc = "Wrapper for potentially out-of-band buffers",
- .tp_basicsize = sizeof(PyPickleBufferObject),
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
- .tp_new = picklebuf_new,
- .tp_dealloc = (destructor) picklebuf_dealloc,
- .tp_traverse = (traverseproc) picklebuf_traverse,
- .tp_clear = (inquiry) picklebuf_clear,
- .tp_weaklistoffset = offsetof(PyPickleBufferObject, weakreflist),
- .tp_as_buffer = &picklebuf_as_buffer,
- .tp_methods = picklebuf_methods,
-};
+/* PickleBuffer object implementation */
+
+#define PY_SSIZE_T_CLEAN
+#include "Python.h"
+#include <stddef.h>
+
+typedef struct {
+ PyObject_HEAD
+ /* The view exported by the original object */
+ Py_buffer view;
+ PyObject *weakreflist;
+} PyPickleBufferObject;
+
+/* C API */
+
+PyObject *
+PyPickleBuffer_FromObject(PyObject *base)
+{
+ PyTypeObject *type = &PyPickleBuffer_Type;
+ PyPickleBufferObject *self;
+
+ self = (PyPickleBufferObject *) type->tp_alloc(type, 0);
+ if (self == NULL) {
+ return NULL;
+ }
+ self->view.obj = NULL;
+ self->weakreflist = NULL;
+ if (PyObject_GetBuffer(base, &self->view, PyBUF_FULL_RO) < 0) {
+ Py_DECREF(self);
+ return NULL;
+ }
+ return (PyObject *) self;
+}
+
+const Py_buffer *
+PyPickleBuffer_GetBuffer(PyObject *obj)
+{
+ PyPickleBufferObject *self = (PyPickleBufferObject *) obj;
+
+ if (!PyPickleBuffer_Check(obj)) {
+ PyErr_Format(PyExc_TypeError,
+ "expected PickleBuffer, %.200s found",
+ Py_TYPE(obj)->tp_name);
+ return NULL;
+ }
+ if (self->view.obj == NULL) {
+ PyErr_SetString(PyExc_ValueError,
+ "operation forbidden on released PickleBuffer object");
+ return NULL;
+ }
+ return &self->view;
+}
+
+int
+PyPickleBuffer_Release(PyObject *obj)
+{
+ PyPickleBufferObject *self = (PyPickleBufferObject *) obj;
+
+ if (!PyPickleBuffer_Check(obj)) {
+ PyErr_Format(PyExc_TypeError,
+ "expected PickleBuffer, %.200s found",
+ Py_TYPE(obj)->tp_name);
+ return -1;
+ }
+ PyBuffer_Release(&self->view);
+ return 0;
+}
+
+static PyObject *
+picklebuf_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+ PyPickleBufferObject *self;
+ PyObject *base;
+ char *keywords[] = {"", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O:PickleBuffer",
+ keywords, &base)) {
+ return NULL;
+ }
+
+ self = (PyPickleBufferObject *) type->tp_alloc(type, 0);
+ if (self == NULL) {
+ return NULL;
+ }
+ self->view.obj = NULL;
+ self->weakreflist = NULL;
+ if (PyObject_GetBuffer(base, &self->view, PyBUF_FULL_RO) < 0) {
+ Py_DECREF(self);
+ return NULL;
+ }
+ return (PyObject *) self;
+}
+
+static int
+picklebuf_traverse(PyPickleBufferObject *self, visitproc visit, void *arg)
+{
+ Py_VISIT(self->view.obj);
+ return 0;
+}
+
+static int
+picklebuf_clear(PyPickleBufferObject *self)
+{
+ PyBuffer_Release(&self->view);
+ return 0;
+}
+
+static void
+picklebuf_dealloc(PyPickleBufferObject *self)
+{
+ PyObject_GC_UnTrack(self);
+ if (self->weakreflist != NULL)
+ PyObject_ClearWeakRefs((PyObject *) self);
+ PyBuffer_Release(&self->view);
+ Py_TYPE(self)->tp_free((PyObject *) self);
+}
+
+/* Buffer API */
+
+static int
+picklebuf_getbuf(PyPickleBufferObject *self, Py_buffer *view, int flags)
+{
+ if (self->view.obj == NULL) {
+ PyErr_SetString(PyExc_ValueError,
+ "operation forbidden on released PickleBuffer object");
+ return -1;
+ }
+ return PyObject_GetBuffer(self->view.obj, view, flags);
+}
+
+static void
+picklebuf_releasebuf(PyPickleBufferObject *self, Py_buffer *view)
+{
+ /* Since our bf_getbuffer redirects to the original object, this
+ * implementation is never called. It only exists to signal that
+ * buffers exported by PickleBuffer have non-trivial releasing
+ * behaviour (see check in Python/getargs.c).
+ */
+}
+
+static PyBufferProcs picklebuf_as_buffer = {
+ .bf_getbuffer = (getbufferproc) picklebuf_getbuf,
+ .bf_releasebuffer = (releasebufferproc) picklebuf_releasebuf,
+};
+
+/* Methods */
+
+static PyObject *
+picklebuf_raw(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))
+{
+ if (self->view.obj == NULL) {
+ PyErr_SetString(PyExc_ValueError,
+ "operation forbidden on released PickleBuffer object");
+ return NULL;
+ }
+ if (self->view.suboffsets != NULL
+ || !PyBuffer_IsContiguous(&self->view, 'A')) {
+ PyErr_SetString(PyExc_BufferError,
+ "cannot extract raw buffer from non-contiguous buffer");
+ return NULL;
+ }
+ PyObject *m = PyMemoryView_FromObject((PyObject *) self);
+ if (m == NULL) {
+ return NULL;
+ }
+ PyMemoryViewObject *mv = (PyMemoryViewObject *) m;
+ assert(mv->view.suboffsets == NULL);
+ /* Mutate memoryview instance to make it a "raw" memoryview */
+ mv->view.format = "B";
+ mv->view.ndim = 1;
+ mv->view.itemsize = 1;
+ /* shape = (length,) */
+ mv->view.shape = &mv->view.len;
+ /* strides = (1,) */
+ mv->view.strides = &mv->view.itemsize;
+ /* Fix memoryview state flags */
+ /* XXX Expose memoryobject.c's init_flags() instead? */
+ mv->flags = _Py_MEMORYVIEW_C | _Py_MEMORYVIEW_FORTRAN;
+ return m;
+}
+
+PyDoc_STRVAR(picklebuf_raw_doc,
+"raw($self, /)\n--\n\
+\n\
+Return a memoryview of the raw memory underlying this buffer.\n\
+Will raise BufferError is the buffer isn't contiguous.");
+
+static PyObject *
+picklebuf_release(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))
+{
+ PyBuffer_Release(&self->view);
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(picklebuf_release_doc,
+"release($self, /)\n--\n\
+\n\
+Release the underlying buffer exposed by the PickleBuffer object.");
+
+static PyMethodDef picklebuf_methods[] = {
+ {"raw", (PyCFunction) picklebuf_raw, METH_NOARGS, picklebuf_raw_doc},
+ {"release", (PyCFunction) picklebuf_release, METH_NOARGS, picklebuf_release_doc},
+ {NULL, NULL}
+};
+
+PyTypeObject PyPickleBuffer_Type = {
+ PyVarObject_HEAD_INIT(NULL, 0)
+ .tp_name = "pickle.PickleBuffer",
+ .tp_doc = "Wrapper for potentially out-of-band buffers",
+ .tp_basicsize = sizeof(PyPickleBufferObject),
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
+ .tp_new = picklebuf_new,
+ .tp_dealloc = (destructor) picklebuf_dealloc,
+ .tp_traverse = (traverseproc) picklebuf_traverse,
+ .tp_clear = (inquiry) picklebuf_clear,
+ .tp_weaklistoffset = offsetof(PyPickleBufferObject, weakreflist),
+ .tp_as_buffer = &picklebuf_as_buffer,
+ .tp_methods = picklebuf_methods,
+};
diff --git a/contrib/tools/python3/src/Objects/rangeobject.c b/contrib/tools/python3/src/Objects/rangeobject.c
index 0eed2f0c0d..d7076ac824 100644
--- a/contrib/tools/python3/src/Objects/rangeobject.c
+++ b/contrib/tools/python3/src/Objects/rangeobject.c
@@ -1,9 +1,9 @@
/* Range object implementation */
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_tupleobject.h"
-#include "structmember.h" // PyMemberDef
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_tupleobject.h"
+#include "structmember.h" // PyMemberDef
/* Support objects whose length is > PY_SSIZE_T_MAX.
@@ -20,8 +20,8 @@ typedef struct {
PyObject *length;
} rangeobject;
-_Py_IDENTIFIER(iter);
-
+_Py_IDENTIFIER(iter);
+
/* Helper function for validating step. Always returns a new reference or
NULL on error.
*/
@@ -73,57 +73,57 @@ make_range_object(PyTypeObject *type, PyObject *start,
range(0, 5, -1)
*/
static PyObject *
-range_from_array(PyTypeObject *type, PyObject *const *args, Py_ssize_t num_args)
+range_from_array(PyTypeObject *type, PyObject *const *args, Py_ssize_t num_args)
{
rangeobject *obj;
PyObject *start = NULL, *stop = NULL, *step = NULL;
- switch (num_args) {
- case 3:
- step = args[2];
- /* fallthrough */
- case 2:
- /* Convert borrowed refs to owned refs */
- start = PyNumber_Index(args[0]);
- if (!start) {
- return NULL;
- }
- stop = PyNumber_Index(args[1]);
- if (!stop) {
- Py_DECREF(start);
- return NULL;
- }
- step = validate_step(step); /* Caution, this can clear exceptions */
- if (!step) {
- Py_DECREF(start);
- Py_DECREF(stop);
- return NULL;
- }
- break;
- case 1:
- stop = PyNumber_Index(args[0]);
- if (!stop) {
- return NULL;
- }
- Py_INCREF(_PyLong_Zero);
- start = _PyLong_Zero;
- Py_INCREF(_PyLong_One);
- step = _PyLong_One;
- break;
- case 0:
- PyErr_SetString(PyExc_TypeError,
- "range expected at least 1 argument, got 0");
+ switch (num_args) {
+ case 3:
+ step = args[2];
+ /* fallthrough */
+ case 2:
+ /* Convert borrowed refs to owned refs */
+ start = PyNumber_Index(args[0]);
+ if (!start) {
+ return NULL;
+ }
+ stop = PyNumber_Index(args[1]);
+ if (!stop) {
+ Py_DECREF(start);
+ return NULL;
+ }
+ step = validate_step(step); /* Caution, this can clear exceptions */
+ if (!step) {
+ Py_DECREF(start);
+ Py_DECREF(stop);
+ return NULL;
+ }
+ break;
+ case 1:
+ stop = PyNumber_Index(args[0]);
+ if (!stop) {
+ return NULL;
+ }
+ Py_INCREF(_PyLong_Zero);
+ start = _PyLong_Zero;
+ Py_INCREF(_PyLong_One);
+ step = _PyLong_One;
+ break;
+ case 0:
+ PyErr_SetString(PyExc_TypeError,
+ "range expected at least 1 argument, got 0");
return NULL;
- default:
- PyErr_Format(PyExc_TypeError,
- "range expected at most 3 arguments, got %zd",
- num_args);
+ default:
+ PyErr_Format(PyExc_TypeError,
+ "range expected at most 3 arguments, got %zd",
+ num_args);
return NULL;
}
obj = make_range_object(type, start, stop, step);
- if (obj != NULL) {
+ if (obj != NULL) {
return (PyObject *) obj;
- }
+ }
/* Failed to create object, release attributes */
Py_DECREF(start);
@@ -132,27 +132,27 @@ range_from_array(PyTypeObject *type, PyObject *const *args, Py_ssize_t num_args)
return NULL;
}
-static PyObject *
-range_new(PyTypeObject *type, PyObject *args, PyObject *kw)
-{
- if (!_PyArg_NoKeywords("range", kw))
- return NULL;
-
- return range_from_array(type, _PyTuple_ITEMS(args), PyTuple_GET_SIZE(args));
-}
-
-
-static PyObject *
-range_vectorcall(PyTypeObject *type, PyObject *const *args,
- size_t nargsf, PyObject *kwnames)
-{
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (!_PyArg_NoKwnames("range", kwnames)) {
- return NULL;
- }
- return range_from_array(type, args, nargs);
-}
-
+static PyObject *
+range_new(PyTypeObject *type, PyObject *args, PyObject *kw)
+{
+ if (!_PyArg_NoKeywords("range", kw))
+ return NULL;
+
+ return range_from_array(type, _PyTuple_ITEMS(args), PyTuple_GET_SIZE(args));
+}
+
+
+static PyObject *
+range_vectorcall(PyTypeObject *type, PyObject *const *args,
+ size_t nargsf, PyObject *kwnames)
+{
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (!_PyArg_NoKwnames("range", kwnames)) {
+ return NULL;
+ }
+ return range_from_array(type, args, nargs);
+}
+
PyDoc_STRVAR(range_doc,
"range(stop) -> range object\n\
range(start, stop[, step]) -> range object\n\
@@ -632,7 +632,7 @@ range_reduce(rangeobject *r, PyObject *args)
static PyObject *
range_subscript(rangeobject* self, PyObject* item)
{
- if (_PyIndex_Check(item)) {
+ if (_PyIndex_Check(item)) {
PyObject *i, *result;
i = PyNumber_Index(item);
if (!i)
@@ -646,7 +646,7 @@ range_subscript(rangeobject* self, PyObject* item)
}
PyErr_Format(PyExc_TypeError,
"range indices must be integers or slices, not %.200s",
- Py_TYPE(item)->tp_name);
+ Py_TYPE(item)->tp_name);
return NULL;
}
@@ -668,7 +668,7 @@ static PyNumberMethods range_as_number = {
};
static PyObject * range_iter(PyObject *seq);
-static PyObject * range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored));
+static PyObject * range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored));
PyDoc_STRVAR(reverse_doc,
"Return a reverse iterator.");
@@ -677,11 +677,11 @@ PyDoc_STRVAR(count_doc,
"rangeobject.count(value) -> integer -- return number of occurrences of value");
PyDoc_STRVAR(index_doc,
-"rangeobject.index(value) -> integer -- return index of value.\n"
+"rangeobject.index(value) -> integer -- return index of value.\n"
"Raise ValueError if the value is not present.");
static PyMethodDef range_methods[] = {
- {"__reversed__", range_reverse, METH_NOARGS, reverse_doc},
+ {"__reversed__", range_reverse, METH_NOARGS, reverse_doc},
{"__reduce__", (PyCFunction)range_reduce, METH_VARARGS},
{"count", (PyCFunction)range_count, METH_O, count_doc},
{"index", (PyCFunction)range_index, METH_O, index_doc},
@@ -701,10 +701,10 @@ PyTypeObject PyRange_Type = {
sizeof(rangeobject), /* Basic object size */
0, /* Item size for varobject */
(destructor)range_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)range_repr, /* tp_repr */
&range_as_number, /* tp_as_number */
&range_as_sequence, /* tp_as_sequence */
@@ -734,7 +734,7 @@ PyTypeObject PyRange_Type = {
0, /* tp_init */
0, /* tp_alloc */
range_new, /* tp_new */
- .tp_vectorcall = (vectorcallfunc)range_vectorcall
+ .tp_vectorcall = (vectorcallfunc)range_vectorcall
};
/*********************** range Iterator **************************/
@@ -764,7 +764,7 @@ rangeiter_next(rangeiterobject *r)
}
static PyObject *
-rangeiter_len(rangeiterobject *r, PyObject *Py_UNUSED(ignored))
+rangeiter_len(rangeiterobject *r, PyObject *Py_UNUSED(ignored))
{
return PyLong_FromLong(r->len - r->index);
}
@@ -773,7 +773,7 @@ PyDoc_STRVAR(length_hint_doc,
"Private method returning an estimate of len(list(it)).");
static PyObject *
-rangeiter_reduce(rangeiterobject *r, PyObject *Py_UNUSED(ignored))
+rangeiter_reduce(rangeiterobject *r, PyObject *Py_UNUSED(ignored))
{
PyObject *start=NULL, *stop=NULL, *step=NULL;
PyObject *range;
@@ -793,8 +793,8 @@ rangeiter_reduce(rangeiterobject *r, PyObject *Py_UNUSED(ignored))
if (range == NULL)
goto err;
/* return the result */
- return Py_BuildValue("N(N)l", _PyEval_GetBuiltinId(&PyId_iter),
- range, r->index);
+ return Py_BuildValue("N(N)l", _PyEval_GetBuiltinId(&PyId_iter),
+ range, r->index);
err:
Py_XDECREF(start);
Py_XDECREF(stop);
@@ -837,10 +837,10 @@ PyTypeObject PyRangeIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)PyObject_Del, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -895,14 +895,14 @@ get_len_of_range(long lo, long hi, long step)
is not representable as a C long, OverflowError is raised. */
static PyObject *
-fast_range_iter(long start, long stop, long step, long len)
+fast_range_iter(long start, long stop, long step, long len)
{
rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type);
if (it == NULL)
return NULL;
it->start = start;
it->step = step;
- it->len = len;
+ it->len = len;
it->index = 0;
return (PyObject *)it;
}
@@ -922,7 +922,7 @@ longrangeiter_len(longrangeiterobject *r, PyObject *no_args)
}
static PyObject *
-longrangeiter_reduce(longrangeiterobject *r, PyObject *Py_UNUSED(ignored))
+longrangeiter_reduce(longrangeiterobject *r, PyObject *Py_UNUSED(ignored))
{
PyObject *product, *stop=NULL;
PyObject *range;
@@ -947,8 +947,8 @@ longrangeiter_reduce(longrangeiterobject *r, PyObject *Py_UNUSED(ignored))
}
/* return the result */
- return Py_BuildValue("N(N)O", _PyEval_GetBuiltinId(&PyId_iter),
- range, r->index);
+ return Py_BuildValue("N(N)O", _PyEval_GetBuiltinId(&PyId_iter),
+ range, r->index);
}
static PyObject *
@@ -1031,10 +1031,10 @@ PyTypeObject PyLongRangeIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)longrangeiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1063,7 +1063,7 @@ range_iter(PyObject *seq)
rangeobject *r = (rangeobject *)seq;
longrangeiterobject *it;
long lstart, lstop, lstep;
- unsigned long ulen;
+ unsigned long ulen;
assert(PyRange_Check(seq));
@@ -1084,22 +1084,22 @@ range_iter(PyObject *seq)
PyErr_Clear();
goto long_range;
}
- ulen = get_len_of_range(lstart, lstop, lstep);
- if (ulen > (unsigned long)LONG_MAX) {
+ ulen = get_len_of_range(lstart, lstop, lstep);
+ if (ulen > (unsigned long)LONG_MAX) {
goto long_range;
}
- /* check for potential overflow of lstart + ulen * lstep */
- if (ulen) {
- if (lstep > 0) {
- if (lstop > LONG_MAX - (lstep - 1))
- goto long_range;
- }
- else {
- if (lstop < LONG_MIN + (-1 - lstep))
- goto long_range;
- }
- }
- return fast_range_iter(lstart, lstop, lstep, (long)ulen);
+ /* check for potential overflow of lstart + ulen * lstep */
+ if (ulen) {
+ if (lstep > 0) {
+ if (lstop > LONG_MAX - (lstep - 1))
+ goto long_range;
+ }
+ else {
+ if (lstop < LONG_MIN + (-1 - lstep))
+ goto long_range;
+ }
+ }
+ return fast_range_iter(lstart, lstop, lstep, (long)ulen);
long_range:
it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type);
@@ -1118,7 +1118,7 @@ range_iter(PyObject *seq)
}
static PyObject *
-range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored))
+range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored))
{
rangeobject *range = (rangeobject*) seq;
longrangeiterobject *it;
@@ -1185,7 +1185,7 @@ range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored))
new_stop = lstart - lstep;
new_start = (long)(new_stop + ulen * lstep);
- return fast_range_iter(new_start, new_stop, -lstep, (long)ulen);
+ return fast_range_iter(new_start, new_stop, -lstep, (long)ulen);
long_range:
it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type);
diff --git a/contrib/tools/python3/src/Objects/setobject.c b/contrib/tools/python3/src/Objects/setobject.c
index c458205a16..4bd5777f96 100644
--- a/contrib/tools/python3/src/Objects/setobject.c
+++ b/contrib/tools/python3/src/Objects/setobject.c
@@ -32,8 +32,8 @@
*/
#include "Python.h"
-#include "pycore_object.h" // _PyObject_GC_UNTRACK()
-#include <stddef.h> // offsetof()
+#include "pycore_object.h" // _PyObject_GC_UNTRACK()
+#include <stddef.h> // offsetof()
/* Object used as dummy key to fill deleted entries */
static PyObject _dummy_struct;
@@ -57,41 +57,41 @@ set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash)
{
setentry *table;
setentry *entry;
- size_t perturb = hash;
+ size_t perturb = hash;
size_t mask = so->mask;
size_t i = (size_t)hash & mask; /* Unsigned for defined overflow behavior */
- int probes;
+ int probes;
int cmp;
while (1) {
- entry = &so->table[i];
- probes = (i + LINEAR_PROBES <= mask) ? LINEAR_PROBES: 0;
- do {
- if (entry->hash == 0 && entry->key == NULL)
+ entry = &so->table[i];
+ probes = (i + LINEAR_PROBES <= mask) ? LINEAR_PROBES: 0;
+ do {
+ if (entry->hash == 0 && entry->key == NULL)
return entry;
- if (entry->hash == hash) {
- PyObject *startkey = entry->key;
- assert(startkey != dummy);
- if (startkey == key)
+ if (entry->hash == hash) {
+ PyObject *startkey = entry->key;
+ assert(startkey != dummy);
+ if (startkey == key)
+ return entry;
+ if (PyUnicode_CheckExact(startkey)
+ && PyUnicode_CheckExact(key)
+ && _PyUnicode_EQ(startkey, key))
+ return entry;
+ table = so->table;
+ Py_INCREF(startkey);
+ cmp = PyObject_RichCompareBool(startkey, key, Py_EQ);
+ Py_DECREF(startkey);
+ if (cmp < 0)
+ return NULL;
+ if (table != so->table || entry->key != startkey)
+ return set_lookkey(so, key, hash);
+ if (cmp > 0)
return entry;
- if (PyUnicode_CheckExact(startkey)
- && PyUnicode_CheckExact(key)
- && _PyUnicode_EQ(startkey, key))
- return entry;
- table = so->table;
- Py_INCREF(startkey);
- cmp = PyObject_RichCompareBool(startkey, key, Py_EQ);
- Py_DECREF(startkey);
- if (cmp < 0)
- return NULL;
- if (table != so->table || entry->key != startkey)
- return set_lookkey(so, key, hash);
- if (cmp > 0)
- return entry;
- mask = so->mask;
+ mask = so->mask;
}
- entry++;
- } while (probes--);
+ entry++;
+ } while (probes--);
perturb >>= PERTURB_SHIFT;
i = (i * 5 + 1 + perturb) & mask;
}
@@ -107,7 +107,7 @@ set_add_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
size_t perturb;
size_t mask;
size_t i; /* Unsigned for defined overflow behavior */
- int probes;
+ int probes;
int cmp;
/* Pre-increment is necessary to prevent arbitrary code in the rich
@@ -121,34 +121,34 @@ set_add_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
perturb = hash;
while (1) {
- entry = &so->table[i];
- probes = (i + LINEAR_PROBES <= mask) ? LINEAR_PROBES: 0;
- do {
- if (entry->hash == 0 && entry->key == NULL)
- goto found_unused;
- if (entry->hash == hash) {
- PyObject *startkey = entry->key;
- assert(startkey != dummy);
- if (startkey == key)
- goto found_active;
- if (PyUnicode_CheckExact(startkey)
- && PyUnicode_CheckExact(key)
- && _PyUnicode_EQ(startkey, key))
- goto found_active;
- table = so->table;
- Py_INCREF(startkey);
- cmp = PyObject_RichCompareBool(startkey, key, Py_EQ);
- Py_DECREF(startkey);
- if (cmp > 0)
- goto found_active;
- if (cmp < 0)
- goto comparison_error;
- if (table != so->table || entry->key != startkey)
- goto restart;
- mask = so->mask;
+ entry = &so->table[i];
+ probes = (i + LINEAR_PROBES <= mask) ? LINEAR_PROBES: 0;
+ do {
+ if (entry->hash == 0 && entry->key == NULL)
+ goto found_unused;
+ if (entry->hash == hash) {
+ PyObject *startkey = entry->key;
+ assert(startkey != dummy);
+ if (startkey == key)
+ goto found_active;
+ if (PyUnicode_CheckExact(startkey)
+ && PyUnicode_CheckExact(key)
+ && _PyUnicode_EQ(startkey, key))
+ goto found_active;
+ table = so->table;
+ Py_INCREF(startkey);
+ cmp = PyObject_RichCompareBool(startkey, key, Py_EQ);
+ Py_DECREF(startkey);
+ if (cmp > 0)
+ goto found_active;
+ if (cmp < 0)
+ goto comparison_error;
+ if (table != so->table || entry->key != startkey)
+ goto restart;
+ mask = so->mask;
}
- entry++;
- } while (probes--);
+ entry++;
+ } while (probes--);
perturb >>= PERTURB_SHIFT;
i = (i * 5 + 1 + perturb) & mask;
}
@@ -173,7 +173,7 @@ set_add_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
/*
Internal routine used by set_table_resize() to insert an item which is
-known to be absent from the set. Besides the performance benefit,
+known to be absent from the set. Besides the performance benefit,
there is also safety benefit since using set_add_entry() risks making
a callback in the middle of a set_table_resize(), see issue 1456209.
The caller is responsible for updating the key's reference count and
@@ -473,7 +473,7 @@ set_dealloc(PySetObject *so)
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyObject_GC_UnTrack(so);
- Py_TRASHCAN_BEGIN(so, set_dealloc)
+ Py_TRASHCAN_BEGIN(so, set_dealloc)
if (so->weakreflist != NULL)
PyObject_ClearWeakRefs((PyObject *) so);
@@ -486,7 +486,7 @@ set_dealloc(PySetObject *so)
if (so->table != so->smalltable)
PyMem_DEL(so->table);
Py_TYPE(so)->tp_free(so);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
static PyObject *
@@ -522,7 +522,7 @@ set_repr(PySetObject *so)
goto done;
listrepr = tmp;
- if (!Py_IS_TYPE(so, &PySet_Type))
+ if (!Py_IS_TYPE(so, &PySet_Type))
result = PyUnicode_FromFormat("%s({%U})",
Py_TYPE(so)->tp_name,
listrepr);
@@ -613,27 +613,27 @@ set_merge(PySetObject *so, PyObject *otherset)
}
static PyObject *
-set_pop(PySetObject *so, PyObject *Py_UNUSED(ignored))
+set_pop(PySetObject *so, PyObject *Py_UNUSED(ignored))
{
/* Make sure the search finger is in bounds */
- setentry *entry = so->table + (so->finger & so->mask);
- setentry *limit = so->table + so->mask;
+ setentry *entry = so->table + (so->finger & so->mask);
+ setentry *limit = so->table + so->mask;
PyObject *key;
if (so->used == 0) {
PyErr_SetString(PyExc_KeyError, "pop from an empty set");
return NULL;
}
- while (entry->key == NULL || entry->key==dummy) {
- entry++;
- if (entry > limit)
- entry = so->table;
+ while (entry->key == NULL || entry->key==dummy) {
+ entry++;
+ if (entry > limit)
+ entry = so->table;
}
key = entry->key;
entry->key = dummy;
entry->hash = -1;
so->used--;
- so->finger = entry - so->table + 1; /* next place to start */
+ so->finger = entry - so->table + 1; /* next place to start */
return key;
}
@@ -741,7 +741,7 @@ setiter_traverse(setiterobject *si, visitproc visit, void *arg)
}
static PyObject *
-setiter_len(setiterobject *si, PyObject *Py_UNUSED(ignored))
+setiter_len(setiterobject *si, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len = 0;
if (si->si_set != NULL && si->si_used == si->si_set->used)
@@ -754,20 +754,20 @@ PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(
static PyObject *setiter_iternext(setiterobject *si);
static PyObject *
-setiter_reduce(setiterobject *si, PyObject *Py_UNUSED(ignored))
+setiter_reduce(setiterobject *si, PyObject *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(iter);
/* copy the iterator state */
- setiterobject tmp = *si;
+ setiterobject tmp = *si;
Py_XINCREF(tmp.si_set);
/* iterate the temporary into a list */
- PyObject *list = PySequence_List((PyObject*)&tmp);
+ PyObject *list = PySequence_List((PyObject*)&tmp);
Py_XDECREF(tmp.si_set);
- if (list == NULL) {
+ if (list == NULL) {
return NULL;
}
- return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
+ return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), list);
}
PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
@@ -823,10 +823,10 @@ PyTypeObject PySetIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)setiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -938,7 +938,7 @@ PyDoc_STRVAR(update_doc,
static PyObject *
make_new_set(PyTypeObject *type, PyObject *iterable)
{
- assert(PyType_Check(type));
+ assert(PyType_Check(type));
PySetObject *so;
so = (PySetObject *)type->tp_alloc(type, 0);
@@ -979,68 +979,68 @@ make_new_set_basetype(PyTypeObject *type, PyObject *iterable)
static PyObject *emptyfrozenset = NULL;
static PyObject *
-make_new_frozenset(PyTypeObject *type, PyObject *iterable)
+make_new_frozenset(PyTypeObject *type, PyObject *iterable)
{
- if (type != &PyFrozenSet_Type) {
+ if (type != &PyFrozenSet_Type) {
return make_new_set(type, iterable);
- }
+ }
if (iterable != NULL) {
if (PyFrozenSet_CheckExact(iterable)) {
- /* frozenset(f) is idempotent */
+ /* frozenset(f) is idempotent */
Py_INCREF(iterable);
return iterable;
}
- PyObject *res = make_new_set((PyTypeObject *)type, iterable);
- if (res == NULL || PySet_GET_SIZE(res) != 0) {
- return res;
- }
- /* If the created frozenset is empty, return the empty frozenset singleton instead */
- Py_DECREF(res);
- }
-
- // The empty frozenset is a singleton
- if (emptyfrozenset == NULL) {
- emptyfrozenset = make_new_set((PyTypeObject *)type, NULL);
- }
+ PyObject *res = make_new_set((PyTypeObject *)type, iterable);
+ if (res == NULL || PySet_GET_SIZE(res) != 0) {
+ return res;
+ }
+ /* If the created frozenset is empty, return the empty frozenset singleton instead */
+ Py_DECREF(res);
+ }
+
+ // The empty frozenset is a singleton
+ if (emptyfrozenset == NULL) {
+ emptyfrozenset = make_new_set((PyTypeObject *)type, NULL);
+ }
Py_XINCREF(emptyfrozenset);
return emptyfrozenset;
}
static PyObject *
-frozenset_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
- PyObject *iterable = NULL;
-
- if (type == &PyFrozenSet_Type && !_PyArg_NoKeywords("frozenset", kwds)) {
- return NULL;
- }
-
- if (!PyArg_UnpackTuple(args, type->tp_name, 0, 1, &iterable)) {
- return NULL;
- }
-
- return make_new_frozenset(type, iterable);
-}
-
-static PyObject *
-frozenset_vectorcall(PyObject *type, PyObject * const*args,
- size_t nargsf, PyObject *kwnames)
-{
- if (!_PyArg_NoKwnames("frozenset", kwnames)) {
- return NULL;
- }
-
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (!_PyArg_CheckPositional("frozenset", nargs, 0, 1)) {
- return NULL;
- }
-
- PyObject *iterable = (nargs ? args[0] : NULL);
- return make_new_frozenset((PyTypeObject *)type, iterable);
-}
-
-static PyObject *
+frozenset_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+ PyObject *iterable = NULL;
+
+ if (type == &PyFrozenSet_Type && !_PyArg_NoKeywords("frozenset", kwds)) {
+ return NULL;
+ }
+
+ if (!PyArg_UnpackTuple(args, type->tp_name, 0, 1, &iterable)) {
+ return NULL;
+ }
+
+ return make_new_frozenset(type, iterable);
+}
+
+static PyObject *
+frozenset_vectorcall(PyObject *type, PyObject * const*args,
+ size_t nargsf, PyObject *kwnames)
+{
+ if (!_PyArg_NoKwnames("frozenset", kwnames)) {
+ return NULL;
+ }
+
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (!_PyArg_CheckPositional("frozenset", nargs, 0, 1)) {
+ return NULL;
+ }
+
+ PyObject *iterable = (nargs ? args[0] : NULL);
+ return make_new_frozenset((PyTypeObject *)type, iterable);
+}
+
+static PyObject *
set_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
return make_new_set(type, NULL);
@@ -1093,25 +1093,25 @@ set_swap_bodies(PySetObject *a, PySetObject *b)
}
static PyObject *
-set_copy(PySetObject *so, PyObject *Py_UNUSED(ignored))
+set_copy(PySetObject *so, PyObject *Py_UNUSED(ignored))
{
return make_new_set_basetype(Py_TYPE(so), (PyObject *)so);
}
static PyObject *
-frozenset_copy(PySetObject *so, PyObject *Py_UNUSED(ignored))
+frozenset_copy(PySetObject *so, PyObject *Py_UNUSED(ignored))
{
if (PyFrozenSet_CheckExact(so)) {
Py_INCREF(so);
return (PyObject *)so;
}
- return set_copy(so, NULL);
+ return set_copy(so, NULL);
}
PyDoc_STRVAR(copy_doc, "Return a shallow copy of a set.");
static PyObject *
-set_clear(PySetObject *so, PyObject *Py_UNUSED(ignored))
+set_clear(PySetObject *so, PyObject *Py_UNUSED(ignored))
{
set_clear_internal(so);
Py_RETURN_NONE;
@@ -1126,7 +1126,7 @@ set_union(PySetObject *so, PyObject *args)
PyObject *other;
Py_ssize_t i;
- result = (PySetObject *)set_copy(so, NULL);
+ result = (PySetObject *)set_copy(so, NULL);
if (result == NULL)
return NULL;
@@ -1155,7 +1155,7 @@ set_or(PySetObject *so, PyObject *other)
if (!PyAnySet_Check(so) || !PyAnySet_Check(other))
Py_RETURN_NOTIMPLEMENTED;
- result = (PySetObject *)set_copy(so, NULL);
+ result = (PySetObject *)set_copy(so, NULL);
if (result == NULL)
return NULL;
if ((PyObject *)so == other)
@@ -1188,7 +1188,7 @@ set_intersection(PySetObject *so, PyObject *other)
int rv;
if ((PyObject *)so == other)
- return set_copy(so, NULL);
+ return set_copy(so, NULL);
result = (PySetObject *)make_new_set_basetype(Py_TYPE(so), NULL);
if (result == NULL)
@@ -1261,7 +1261,7 @@ set_intersection_multi(PySetObject *so, PyObject *args)
PyObject *result = (PyObject *)so;
if (PyTuple_GET_SIZE(args) == 0)
- return set_copy(so, NULL);
+ return set_copy(so, NULL);
Py_INCREF(so);
for (i=0 ; i<PyTuple_GET_SIZE(args) ; i++) {
@@ -1408,25 +1408,25 @@ set_difference_update_internal(PySetObject *so, PyObject *other)
setentry *entry;
Py_ssize_t pos = 0;
- /* Optimization: When the other set is more than 8 times
- larger than the base set, replace the other set with
- intersection of the two sets.
- */
- if ((PySet_GET_SIZE(other) >> 3) > PySet_GET_SIZE(so)) {
- other = set_intersection(so, other);
- if (other == NULL)
- return -1;
- } else {
- Py_INCREF(other);
- }
-
+ /* Optimization: When the other set is more than 8 times
+ larger than the base set, replace the other set with
+ intersection of the two sets.
+ */
+ if ((PySet_GET_SIZE(other) >> 3) > PySet_GET_SIZE(so)) {
+ other = set_intersection(so, other);
+ if (other == NULL)
+ return -1;
+ } else {
+ Py_INCREF(other);
+ }
+
while (set_next((PySetObject *)other, &pos, &entry))
- if (set_discard_entry(so, entry->key, entry->hash) < 0) {
- Py_DECREF(other);
+ if (set_discard_entry(so, entry->key, entry->hash) < 0) {
+ Py_DECREF(other);
return -1;
- }
-
- Py_DECREF(other);
+ }
+
+ Py_DECREF(other);
} else {
PyObject *key, *it;
it = PyObject_GetIter(other);
@@ -1472,7 +1472,7 @@ set_copy_and_difference(PySetObject *so, PyObject *other)
{
PyObject *result;
- result = set_copy(so, NULL);
+ result = set_copy(so, NULL);
if (result == NULL)
return NULL;
if (set_difference_update_internal((PySetObject *) result, other) == 0)
@@ -1556,7 +1556,7 @@ set_difference_multi(PySetObject *so, PyObject *args)
PyObject *result, *other;
if (PyTuple_GET_SIZE(args) == 0)
- return set_copy(so, NULL);
+ return set_copy(so, NULL);
other = PyTuple_GET_ITEM(args, 0);
result = set_difference(so, other);
@@ -1607,7 +1607,7 @@ set_symmetric_difference_update(PySetObject *so, PyObject *other)
int rv;
if ((PyObject *)so == other)
- return set_clear(so, NULL);
+ return set_clear(so, NULL);
if (PyDict_CheckExact(other)) {
PyObject *value;
@@ -1904,7 +1904,7 @@ PyDoc_STRVAR(discard_doc,
If the element is not a member, do nothing.");
static PyObject *
-set_reduce(PySetObject *so, PyObject *Py_UNUSED(ignored))
+set_reduce(PySetObject *so, PyObject *Py_UNUSED(ignored))
{
PyObject *keys=NULL, *args=NULL, *result=NULL, *dict=NULL;
_Py_IDENTIFIER(__dict__);
@@ -1915,9 +1915,9 @@ set_reduce(PySetObject *so, PyObject *Py_UNUSED(ignored))
args = PyTuple_Pack(1, keys);
if (args == NULL)
goto done;
- if (_PyObject_LookupAttrId((PyObject *)so, &PyId___dict__, &dict) < 0) {
- goto done;
- }
+ if (_PyObject_LookupAttrId((PyObject *)so, &PyId___dict__, &dict) < 0) {
+ goto done;
+ }
if (dict == NULL) {
dict = Py_None;
Py_INCREF(dict);
@@ -1931,7 +1931,7 @@ done:
}
static PyObject *
-set_sizeof(PySetObject *so, PyObject *Py_UNUSED(ignored))
+set_sizeof(PySetObject *so, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t res;
@@ -1959,28 +1959,28 @@ set_init(PySetObject *self, PyObject *args, PyObject *kwds)
return set_update_internal(self, iterable);
}
-static PyObject*
-set_vectorcall(PyObject *type, PyObject * const*args,
- size_t nargsf, PyObject *kwnames)
-{
- assert(PyType_Check(type));
-
- if (!_PyArg_NoKwnames("set", kwnames)) {
- return NULL;
- }
-
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (!_PyArg_CheckPositional("set", nargs, 0, 1)) {
- return NULL;
- }
-
- if (nargs) {
- return make_new_set((PyTypeObject *)type, args[0]);
- }
-
- return make_new_set((PyTypeObject *)type, NULL);
-}
-
+static PyObject*
+set_vectorcall(PyObject *type, PyObject * const*args,
+ size_t nargsf, PyObject *kwnames)
+{
+ assert(PyType_Check(type));
+
+ if (!_PyArg_NoKwnames("set", kwnames)) {
+ return NULL;
+ }
+
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (!_PyArg_CheckPositional("set", nargs, 0, 1)) {
+ return NULL;
+ }
+
+ if (nargs) {
+ return make_new_set((PyTypeObject *)type, args[0]);
+ }
+
+ return make_new_set((PyTypeObject *)type, NULL);
+}
+
static PySequenceMethods set_as_sequence = {
set_len, /* sq_length */
0, /* sq_concat */
@@ -1995,7 +1995,7 @@ static PySequenceMethods set_as_sequence = {
/* set object ********************************************************/
#ifdef Py_DEBUG
-static PyObject *test_c_api(PySetObject *so, PyObject *Py_UNUSED(ignored));
+static PyObject *test_c_api(PySetObject *so, PyObject *Py_UNUSED(ignored));
PyDoc_STRVAR(test_c_api_doc, "Exercises C API. Returns True.\n\
All is well if assertions don't fail.");
@@ -2046,7 +2046,7 @@ static PyMethodDef set_methods[] = {
union_doc},
{"update", (PyCFunction)set_update, METH_VARARGS,
update_doc},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -2095,10 +2095,10 @@ PyTypeObject PySet_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)set_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)set_repr, /* tp_repr */
&set_as_number, /* tp_as_number */
&set_as_sequence, /* tp_as_sequence */
@@ -2130,7 +2130,7 @@ PyTypeObject PySet_Type = {
PyType_GenericAlloc, /* tp_alloc */
set_new, /* tp_new */
PyObject_GC_Del, /* tp_free */
- .tp_vectorcall = set_vectorcall,
+ .tp_vectorcall = set_vectorcall,
};
/* frozenset object ********************************************************/
@@ -2159,7 +2159,7 @@ static PyMethodDef frozenset_methods[] = {
symmetric_difference_doc},
{"union", (PyCFunction)set_union, METH_VARARGS,
union_doc},
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -2195,10 +2195,10 @@ PyTypeObject PyFrozenSet_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)set_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)set_repr, /* tp_repr */
&frozenset_as_number, /* tp_as_number */
&set_as_sequence, /* tp_as_sequence */
@@ -2230,7 +2230,7 @@ PyTypeObject PyFrozenSet_Type = {
PyType_GenericAlloc, /* tp_alloc */
frozenset_new, /* tp_new */
PyObject_GC_Del, /* tp_free */
- .tp_vectorcall = frozenset_vectorcall,
+ .tp_vectorcall = frozenset_vectorcall,
};
@@ -2300,7 +2300,7 @@ PySet_Add(PyObject *anyset, PyObject *key)
}
void
-_PySet_Fini(void)
+_PySet_Fini(void)
{
Py_CLEAR(emptyfrozenset);
}
@@ -2328,7 +2328,7 @@ PySet_Pop(PyObject *set)
PyErr_BadInternalCall();
return NULL;
}
- return set_pop((PySetObject *)set, NULL);
+ return set_pop((PySetObject *)set, NULL);
}
int
@@ -2357,7 +2357,7 @@ PyObject *_PySet_Dummy = dummy;
} while(0)
static PyObject *
-test_c_api(PySetObject *so, PyObject *Py_UNUSED(ignored))
+test_c_api(PySetObject *so, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t count;
const char *s;
@@ -2494,7 +2494,7 @@ dummy_repr(PyObject *op)
return PyUnicode_FromString("<dummy key>");
}
-static void _Py_NO_RETURN
+static void _Py_NO_RETURN
dummy_dealloc(PyObject* ignore)
{
Py_FatalError("deallocating <dummy key>");
@@ -2506,10 +2506,10 @@ static PyTypeObject _PySetDummy_Type = {
0,
0,
dummy_dealloc, /*tp_dealloc*/ /*never called*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
dummy_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
diff --git a/contrib/tools/python3/src/Objects/sliceobject.c b/contrib/tools/python3/src/Objects/sliceobject.c
index a92a4f65fd..391711f711 100644
--- a/contrib/tools/python3/src/Objects/sliceobject.c
+++ b/contrib/tools/python3/src/Objects/sliceobject.c
@@ -14,9 +14,9 @@ this type and there is exactly one in existence.
*/
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_object.h"
-#include "structmember.h" // PyMemberDef
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_object.h"
+#include "structmember.h" // PyMemberDef
static PyObject *
ellipsis_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
@@ -36,13 +36,13 @@ ellipsis_repr(PyObject *op)
}
static PyObject *
-ellipsis_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
+ellipsis_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
{
return PyUnicode_FromString("Ellipsis");
}
static PyMethodDef ellipsis_methods[] = {
- {"__reduce__", ellipsis_reduce, METH_NOARGS, NULL},
+ {"__reduce__", ellipsis_reduce, METH_NOARGS, NULL},
{NULL, NULL}
};
@@ -52,10 +52,10 @@ PyTypeObject PyEllipsis_Type = {
0, /* tp_basicsize */
0, /* tp_itemsize */
0, /*never called*/ /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
ellipsis_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -99,8 +99,8 @@ PyObject _Py_EllipsisObject = {
* created and then deleted again
*/
static PySliceObject *slice_cache = NULL;
-
-void _PySlice_Fini(void)
+
+void _PySlice_Fini(void)
{
PySliceObject *obj = slice_cache;
if (obj != NULL) {
@@ -353,7 +353,7 @@ static PyMemberDef slice_members[] = {
static PyObject*
evaluate_slice_index(PyObject *v)
{
- if (_PyIndex_Check(v)) {
+ if (_PyIndex_Check(v)) {
return PyNumber_Index(v);
}
else {
@@ -547,7 +547,7 @@ S. Out of bounds indices are clipped in a manner consistent with the\n\
handling of normal slices.");
static PyObject *
-slice_reduce(PySliceObject* self, PyObject *Py_UNUSED(ignored))
+slice_reduce(PySliceObject* self, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(OOO)", Py_TYPE(self), self->start, self->stop, self->step);
}
@@ -625,10 +625,10 @@ PyTypeObject PySlice_Type = {
sizeof(PySliceObject), /* Basic object size */
0, /* Item size for varobject */
(destructor)slice_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)slice_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/stringlib/asciilib.h b/contrib/tools/python3/src/Objects/stringlib/asciilib.h
index 23c954ba73..e69a2c076e 100644
--- a/contrib/tools/python3/src/Objects/stringlib/asciilib.h
+++ b/contrib/tools/python3/src/Objects/stringlib/asciilib.h
@@ -18,7 +18,7 @@
#define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL
#define STRINGLIB_STR PyUnicode_1BYTE_DATA
#define STRINGLIB_LEN PyUnicode_GET_LENGTH
-#define STRINGLIB_NEW(STR,LEN) _PyUnicode_FromASCII((const char*)(STR),(LEN))
+#define STRINGLIB_NEW(STR,LEN) _PyUnicode_FromASCII((const char*)(STR),(LEN))
#define STRINGLIB_CHECK PyUnicode_Check
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
diff --git a/contrib/tools/python3/src/Objects/stringlib/clinic/transmogrify.h.h b/contrib/tools/python3/src/Objects/stringlib/clinic/transmogrify.h.h
index a3fca6a710..8a3a060f12 100644
--- a/contrib/tools/python3/src/Objects/stringlib/clinic/transmogrify.h.h
+++ b/contrib/tools/python3/src/Objects/stringlib/clinic/transmogrify.h.h
@@ -1,277 +1,277 @@
-/*[clinic input]
-preserve
-[clinic start generated code]*/
-
-PyDoc_STRVAR(stringlib_expandtabs__doc__,
-"expandtabs($self, /, tabsize=8)\n"
-"--\n"
-"\n"
-"Return a copy where all tab characters are expanded using spaces.\n"
-"\n"
-"If tabsize is not given, a tab size of 8 characters is assumed.");
-
-#define STRINGLIB_EXPANDTABS_METHODDEF \
- {"expandtabs", (PyCFunction)(void(*)(void))stringlib_expandtabs, METH_FASTCALL|METH_KEYWORDS, stringlib_expandtabs__doc__},
-
-static PyObject *
-stringlib_expandtabs_impl(PyObject *self, int tabsize);
-
-static PyObject *
-stringlib_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"tabsize", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
- int tabsize = 8;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- tabsize = _PyLong_AsInt(args[0]);
- if (tabsize == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
- return_value = stringlib_expandtabs_impl(self, tabsize);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(stringlib_ljust__doc__,
-"ljust($self, width, fillchar=b\' \', /)\n"
-"--\n"
-"\n"
-"Return a left-justified string of length width.\n"
-"\n"
-"Padding is done using the specified fill character.");
-
-#define STRINGLIB_LJUST_METHODDEF \
- {"ljust", (PyCFunction)(void(*)(void))stringlib_ljust, METH_FASTCALL, stringlib_ljust__doc__},
-
-static PyObject *
-stringlib_ljust_impl(PyObject *self, Py_ssize_t width, char fillchar);
-
-static PyObject *
-stringlib_ljust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- Py_ssize_t width;
- char fillchar = ' ';
-
- if (!_PyArg_CheckPositional("ljust", nargs, 1, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyBytes_Check(args[1]) && PyBytes_GET_SIZE(args[1]) == 1) {
- fillchar = PyBytes_AS_STRING(args[1])[0];
- }
- else if (PyByteArray_Check(args[1]) && PyByteArray_GET_SIZE(args[1]) == 1) {
- fillchar = PyByteArray_AS_STRING(args[1])[0];
- }
- else {
- _PyArg_BadArgument("ljust", "argument 2", "a byte string of length 1", args[1]);
- goto exit;
- }
-skip_optional:
- return_value = stringlib_ljust_impl(self, width, fillchar);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(stringlib_rjust__doc__,
-"rjust($self, width, fillchar=b\' \', /)\n"
-"--\n"
-"\n"
-"Return a right-justified string of length width.\n"
-"\n"
-"Padding is done using the specified fill character.");
-
-#define STRINGLIB_RJUST_METHODDEF \
- {"rjust", (PyCFunction)(void(*)(void))stringlib_rjust, METH_FASTCALL, stringlib_rjust__doc__},
-
-static PyObject *
-stringlib_rjust_impl(PyObject *self, Py_ssize_t width, char fillchar);
-
-static PyObject *
-stringlib_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- Py_ssize_t width;
- char fillchar = ' ';
-
- if (!_PyArg_CheckPositional("rjust", nargs, 1, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyBytes_Check(args[1]) && PyBytes_GET_SIZE(args[1]) == 1) {
- fillchar = PyBytes_AS_STRING(args[1])[0];
- }
- else if (PyByteArray_Check(args[1]) && PyByteArray_GET_SIZE(args[1]) == 1) {
- fillchar = PyByteArray_AS_STRING(args[1])[0];
- }
- else {
- _PyArg_BadArgument("rjust", "argument 2", "a byte string of length 1", args[1]);
- goto exit;
- }
-skip_optional:
- return_value = stringlib_rjust_impl(self, width, fillchar);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(stringlib_center__doc__,
-"center($self, width, fillchar=b\' \', /)\n"
-"--\n"
-"\n"
-"Return a centered string of length width.\n"
-"\n"
-"Padding is done using the specified fill character.");
-
-#define STRINGLIB_CENTER_METHODDEF \
- {"center", (PyCFunction)(void(*)(void))stringlib_center, METH_FASTCALL, stringlib_center__doc__},
-
-static PyObject *
-stringlib_center_impl(PyObject *self, Py_ssize_t width, char fillchar);
-
-static PyObject *
-stringlib_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- Py_ssize_t width;
- char fillchar = ' ';
-
- if (!_PyArg_CheckPositional("center", nargs, 1, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[0]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyBytes_Check(args[1]) && PyBytes_GET_SIZE(args[1]) == 1) {
- fillchar = PyBytes_AS_STRING(args[1])[0];
- }
- else if (PyByteArray_Check(args[1]) && PyByteArray_GET_SIZE(args[1]) == 1) {
- fillchar = PyByteArray_AS_STRING(args[1])[0];
- }
- else {
- _PyArg_BadArgument("center", "argument 2", "a byte string of length 1", args[1]);
- goto exit;
- }
-skip_optional:
- return_value = stringlib_center_impl(self, width, fillchar);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(stringlib_zfill__doc__,
-"zfill($self, width, /)\n"
-"--\n"
-"\n"
-"Pad a numeric string with zeros on the left, to fill a field of the given width.\n"
-"\n"
-"The original string is never truncated.");
-
-#define STRINGLIB_ZFILL_METHODDEF \
- {"zfill", (PyCFunction)stringlib_zfill, METH_O, stringlib_zfill__doc__},
-
-static PyObject *
-stringlib_zfill_impl(PyObject *self, Py_ssize_t width);
-
-static PyObject *
-stringlib_zfill(PyObject *self, PyObject *arg)
-{
- PyObject *return_value = NULL;
- Py_ssize_t width;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(arg);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- width = ival;
- }
- return_value = stringlib_zfill_impl(self, width);
-
-exit:
- return return_value;
-}
-/*[clinic end generated code: output=15be047aef999b4e input=a9049054013a1b77]*/
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(stringlib_expandtabs__doc__,
+"expandtabs($self, /, tabsize=8)\n"
+"--\n"
+"\n"
+"Return a copy where all tab characters are expanded using spaces.\n"
+"\n"
+"If tabsize is not given, a tab size of 8 characters is assumed.");
+
+#define STRINGLIB_EXPANDTABS_METHODDEF \
+ {"expandtabs", (PyCFunction)(void(*)(void))stringlib_expandtabs, METH_FASTCALL|METH_KEYWORDS, stringlib_expandtabs__doc__},
+
+static PyObject *
+stringlib_expandtabs_impl(PyObject *self, int tabsize);
+
+static PyObject *
+stringlib_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"tabsize", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "expandtabs", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ int tabsize = 8;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ tabsize = _PyLong_AsInt(args[0]);
+ if (tabsize == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional_pos:
+ return_value = stringlib_expandtabs_impl(self, tabsize);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(stringlib_ljust__doc__,
+"ljust($self, width, fillchar=b\' \', /)\n"
+"--\n"
+"\n"
+"Return a left-justified string of length width.\n"
+"\n"
+"Padding is done using the specified fill character.");
+
+#define STRINGLIB_LJUST_METHODDEF \
+ {"ljust", (PyCFunction)(void(*)(void))stringlib_ljust, METH_FASTCALL, stringlib_ljust__doc__},
+
+static PyObject *
+stringlib_ljust_impl(PyObject *self, Py_ssize_t width, char fillchar);
+
+static PyObject *
+stringlib_ljust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t width;
+ char fillchar = ' ';
+
+ if (!_PyArg_CheckPositional("ljust", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyBytes_Check(args[1]) && PyBytes_GET_SIZE(args[1]) == 1) {
+ fillchar = PyBytes_AS_STRING(args[1])[0];
+ }
+ else if (PyByteArray_Check(args[1]) && PyByteArray_GET_SIZE(args[1]) == 1) {
+ fillchar = PyByteArray_AS_STRING(args[1])[0];
+ }
+ else {
+ _PyArg_BadArgument("ljust", "argument 2", "a byte string of length 1", args[1]);
+ goto exit;
+ }
+skip_optional:
+ return_value = stringlib_ljust_impl(self, width, fillchar);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(stringlib_rjust__doc__,
+"rjust($self, width, fillchar=b\' \', /)\n"
+"--\n"
+"\n"
+"Return a right-justified string of length width.\n"
+"\n"
+"Padding is done using the specified fill character.");
+
+#define STRINGLIB_RJUST_METHODDEF \
+ {"rjust", (PyCFunction)(void(*)(void))stringlib_rjust, METH_FASTCALL, stringlib_rjust__doc__},
+
+static PyObject *
+stringlib_rjust_impl(PyObject *self, Py_ssize_t width, char fillchar);
+
+static PyObject *
+stringlib_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t width;
+ char fillchar = ' ';
+
+ if (!_PyArg_CheckPositional("rjust", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyBytes_Check(args[1]) && PyBytes_GET_SIZE(args[1]) == 1) {
+ fillchar = PyBytes_AS_STRING(args[1])[0];
+ }
+ else if (PyByteArray_Check(args[1]) && PyByteArray_GET_SIZE(args[1]) == 1) {
+ fillchar = PyByteArray_AS_STRING(args[1])[0];
+ }
+ else {
+ _PyArg_BadArgument("rjust", "argument 2", "a byte string of length 1", args[1]);
+ goto exit;
+ }
+skip_optional:
+ return_value = stringlib_rjust_impl(self, width, fillchar);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(stringlib_center__doc__,
+"center($self, width, fillchar=b\' \', /)\n"
+"--\n"
+"\n"
+"Return a centered string of length width.\n"
+"\n"
+"Padding is done using the specified fill character.");
+
+#define STRINGLIB_CENTER_METHODDEF \
+ {"center", (PyCFunction)(void(*)(void))stringlib_center, METH_FASTCALL, stringlib_center__doc__},
+
+static PyObject *
+stringlib_center_impl(PyObject *self, Py_ssize_t width, char fillchar);
+
+static PyObject *
+stringlib_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t width;
+ char fillchar = ' ';
+
+ if (!_PyArg_CheckPositional("center", nargs, 1, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[0]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyBytes_Check(args[1]) && PyBytes_GET_SIZE(args[1]) == 1) {
+ fillchar = PyBytes_AS_STRING(args[1])[0];
+ }
+ else if (PyByteArray_Check(args[1]) && PyByteArray_GET_SIZE(args[1]) == 1) {
+ fillchar = PyByteArray_AS_STRING(args[1])[0];
+ }
+ else {
+ _PyArg_BadArgument("center", "argument 2", "a byte string of length 1", args[1]);
+ goto exit;
+ }
+skip_optional:
+ return_value = stringlib_center_impl(self, width, fillchar);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(stringlib_zfill__doc__,
+"zfill($self, width, /)\n"
+"--\n"
+"\n"
+"Pad a numeric string with zeros on the left, to fill a field of the given width.\n"
+"\n"
+"The original string is never truncated.");
+
+#define STRINGLIB_ZFILL_METHODDEF \
+ {"zfill", (PyCFunction)stringlib_zfill, METH_O, stringlib_zfill__doc__},
+
+static PyObject *
+stringlib_zfill_impl(PyObject *self, Py_ssize_t width);
+
+static PyObject *
+stringlib_zfill(PyObject *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t width;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(arg);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ width = ival;
+ }
+ return_value = stringlib_zfill_impl(self, width);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=15be047aef999b4e input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Objects/stringlib/codecs.h b/contrib/tools/python3/src/Objects/stringlib/codecs.h
index 742be90abd..9b2a29ba3b 100644
--- a/contrib/tools/python3/src/Objects/stringlib/codecs.h
+++ b/contrib/tools/python3/src/Objects/stringlib/codecs.h
@@ -4,8 +4,8 @@
# error "codecs.h is specific to Unicode"
#endif
-#include "pycore_byteswap.h" // _Py_bswap32()
-
+#include "pycore_byteswap.h" // _Py_bswap32()
+
/* Mask to quickly check whether a C 'long' contains a
non-ASCII, UTF8-encoded char. */
#if (SIZEOF_LONG == 8)
@@ -48,7 +48,7 @@ STRINGLIB(utf8_decode)(const char **inptr, const char *end,
/* Read a whole long at a time (either 4 or 8 bytes),
and do a fast unrolled copy if it only contains ASCII
characters. */
- unsigned long value = *(const unsigned long *) _s;
+ unsigned long value = *(const unsigned long *) _s;
if (value & ASCII_CHAR_MASK)
break;
#if PY_LITTLE_ENDIAN
@@ -155,7 +155,7 @@ STRINGLIB(utf8_decode)(const char **inptr, const char *end,
/* Decoding UTF-8 sequences in range \xED\xA0\x80-\xED\xBF\xBF
will result in surrogates in range D800-DFFF. Surrogates are
not valid UTF-8 so they are rejected.
- See https://www.unicode.org/versions/Unicode5.2.0/ch03.pdf
+ See https://www.unicode.org/versions/Unicode5.2.0/ch03.pdf
(table 3-7) and http://www.rfc-editor.org/rfc/rfc3629.txt */
goto InvalidContinuation1;
}
@@ -209,7 +209,7 @@ STRINGLIB(utf8_decode)(const char **inptr, const char *end,
goto InvalidContinuation1;
} else if (ch == 0xF4 && ch2 >= 0x90) {
/* invalid sequence
- \xF4\x90\x80\x80- -- 110000- overflow */
+ \xF4\x90\x80\x80- -- 110000- overflow */
goto InvalidContinuation1;
}
if (!IS_CONTINUATION_BYTE(ch3)) {
@@ -258,12 +258,12 @@ InvalidContinuation3:
/* UTF-8 encoder specialized for a Unicode kind to avoid the slow
PyUnicode_READ() macro. Delete some parts of the code depending on the kind:
UCS-1 strings don't need to handle surrogates for example. */
-Py_LOCAL_INLINE(char *)
-STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
- PyObject *unicode,
- const STRINGLIB_CHAR *data,
+Py_LOCAL_INLINE(char *)
+STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
+ PyObject *unicode,
+ const STRINGLIB_CHAR *data,
Py_ssize_t size,
- _Py_error_handler error_handler,
+ _Py_error_handler error_handler,
const char *errors)
{
Py_ssize_t i; /* index into data of next input character */
@@ -284,12 +284,12 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
assert(size >= 0);
if (size > PY_SSIZE_T_MAX / max_char_size) {
/* integer overflow */
- PyErr_NoMemory();
- return NULL;
+ PyErr_NoMemory();
+ return NULL;
}
- _PyBytesWriter_Init(writer);
- p = _PyBytesWriter_Alloc(writer, size * max_char_size);
+ _PyBytesWriter_Init(writer);
+ p = _PyBytesWriter_Alloc(writer, size * max_char_size);
if (p == NULL)
return NULL;
@@ -315,7 +315,7 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
Py_ssize_t startpos, endpos, newpos;
Py_ssize_t k;
if (error_handler == _Py_ERROR_UNKNOWN) {
- error_handler = _Py_GetErrorHandler(errors);
+ error_handler = _Py_GetErrorHandler(errors);
}
startpos = i-1;
@@ -325,7 +325,7 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
endpos++;
/* Only overallocate the buffer if it's not the last write */
- writer->overallocate = (endpos < size);
+ writer->overallocate = (endpos < size);
switch (error_handler)
{
@@ -349,8 +349,8 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
case _Py_ERROR_BACKSLASHREPLACE:
/* subtract preallocated bytes */
- writer->min_size -= max_char_size * (endpos - startpos);
- p = backslashreplace(writer, p,
+ writer->min_size -= max_char_size * (endpos - startpos);
+ p = backslashreplace(writer, p,
unicode, startpos, endpos);
if (p == NULL)
goto error;
@@ -359,8 +359,8 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
case _Py_ERROR_XMLCHARREFREPLACE:
/* subtract preallocated bytes */
- writer->min_size -= max_char_size * (endpos - startpos);
- p = xmlcharrefreplace(writer, p,
+ writer->min_size -= max_char_size * (endpos - startpos);
+ p = xmlcharrefreplace(writer, p,
unicode, startpos, endpos);
if (p == NULL)
goto error;
@@ -389,10 +389,10 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
goto error;
/* subtract preallocated bytes */
- writer->min_size -= max_char_size * (newpos - startpos);
+ writer->min_size -= max_char_size * (newpos - startpos);
if (PyBytes_Check(rep)) {
- p = _PyBytesWriter_WriteBytes(writer, p,
+ p = _PyBytesWriter_WriteBytes(writer, p,
PyBytes_AS_STRING(rep),
PyBytes_GET_SIZE(rep));
}
@@ -408,7 +408,7 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
goto error;
}
- p = _PyBytesWriter_WriteBytes(writer, p,
+ p = _PyBytesWriter_WriteBytes(writer, p,
PyUnicode_DATA(rep),
PyUnicode_GET_LENGTH(rep));
}
@@ -422,7 +422,7 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
/* If overallocation was disabled, ensure that it was the last
write. Otherwise, we missed an optimization */
- assert(writer->overallocate || i == size);
+ assert(writer->overallocate || i == size);
}
else
#if STRINGLIB_SIZEOF_CHAR > 2
@@ -451,7 +451,7 @@ STRINGLIB(utf8_encoder)(_PyBytesWriter *writer,
Py_XDECREF(error_handler_obj);
Py_XDECREF(exc);
#endif
- return p;
+ return p;
#if STRINGLIB_SIZEOF_CHAR > 1
error:
@@ -516,7 +516,7 @@ STRINGLIB(utf16_decode)(const unsigned char **inptr, const unsigned char *e,
/* Fast path for runs of in-range non-surrogate chars. */
const unsigned char *_q = q;
while (_q < aligned_end) {
- unsigned long block = * (const unsigned long *) _q;
+ unsigned long block = * (const unsigned long *) _q;
if (native_ordering) {
/* Can use buffer directly */
if (block & FAST_CHAR_MASK)
@@ -574,8 +574,8 @@ STRINGLIB(utf16_decode)(const unsigned char **inptr, const unsigned char *e,
}
/* UTF-16 code pair: */
- if (!Py_UNICODE_IS_HIGH_SURROGATE(ch))
- goto IllegalEncoding;
+ if (!Py_UNICODE_IS_HIGH_SURROGATE(ch))
+ goto IllegalEncoding;
if (q >= e)
goto UnexpectedEnd;
ch2 = (q[ihi] << 8) | q[ilo];
@@ -734,28 +734,28 @@ STRINGLIB(utf16_encode)(const STRINGLIB_CHAR *in,
#endif
}
-static inline uint32_t
-STRINGLIB(SWAB4)(STRINGLIB_CHAR ch)
-{
- uint32_t word = ch;
+static inline uint32_t
+STRINGLIB(SWAB4)(STRINGLIB_CHAR ch)
+{
+ uint32_t word = ch;
#if STRINGLIB_SIZEOF_CHAR == 1
- /* high bytes are zero */
- return (word << 24);
+ /* high bytes are zero */
+ return (word << 24);
#elif STRINGLIB_SIZEOF_CHAR == 2
- /* high bytes are zero */
- return ((word & 0x00FFu) << 24) | ((word & 0xFF00u) << 8);
+ /* high bytes are zero */
+ return ((word & 0x00FFu) << 24) | ((word & 0xFF00u) << 8);
#else
- return _Py_bswap32(word);
+ return _Py_bswap32(word);
#endif
-}
-
+}
+
Py_LOCAL_INLINE(Py_ssize_t)
STRINGLIB(utf32_encode)(const STRINGLIB_CHAR *in,
Py_ssize_t len,
- uint32_t **outptr,
+ uint32_t **outptr,
int native_ordering)
{
- uint32_t *out = *outptr;
+ uint32_t *out = *outptr;
const STRINGLIB_CHAR *end = in + len;
if (native_ordering) {
const STRINGLIB_CHAR *unrolled_end = in + _Py_SIZE_ROUND_DOWN(len, 4);
@@ -796,10 +796,10 @@ STRINGLIB(utf32_encode)(const STRINGLIB_CHAR *in,
(in[3] ^ 0xd800) & 0xf800) == 0)
break;
#endif
- out[0] = STRINGLIB(SWAB4)(in[0]);
- out[1] = STRINGLIB(SWAB4)(in[1]);
- out[2] = STRINGLIB(SWAB4)(in[2]);
- out[3] = STRINGLIB(SWAB4)(in[3]);
+ out[0] = STRINGLIB(SWAB4)(in[0]);
+ out[1] = STRINGLIB(SWAB4)(in[1]);
+ out[2] = STRINGLIB(SWAB4)(in[2]);
+ out[3] = STRINGLIB(SWAB4)(in[3]);
in += 4; out += 4;
}
while (in < end) {
@@ -810,7 +810,7 @@ STRINGLIB(utf32_encode)(const STRINGLIB_CHAR *in,
goto fail;
}
#endif
- *out++ = STRINGLIB(SWAB4)(ch);
+ *out++ = STRINGLIB(SWAB4)(ch);
}
}
*outptr = out;
diff --git a/contrib/tools/python3/src/Objects/stringlib/ctype.h b/contrib/tools/python3/src/Objects/stringlib/ctype.h
index b11d38eb06..9b319b07d1 100644
--- a/contrib/tools/python3/src/Objects/stringlib/ctype.h
+++ b/contrib/tools/python3/src/Objects/stringlib/ctype.h
@@ -2,52 +2,52 @@
# error "ctype.h only compatible with byte-wise strings"
#endif
-#include "pycore_bytes_methods.h"
+#include "pycore_bytes_methods.h"
static PyObject*
-stringlib_isspace(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_isspace(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_isspace(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
static PyObject*
-stringlib_isalpha(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_isalpha(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_isalpha(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
static PyObject*
-stringlib_isalnum(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_isalnum(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_isalnum(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
static PyObject*
-stringlib_isascii(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_isascii(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_isascii(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
static PyObject*
-stringlib_isdigit(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_isdigit(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_isdigit(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
static PyObject*
-stringlib_islower(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_islower(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_islower(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
static PyObject*
-stringlib_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_isupper(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
static PyObject*
-stringlib_istitle(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_istitle(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _Py_bytes_istitle(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
@@ -56,7 +56,7 @@ stringlib_istitle(PyObject *self, PyObject *Py_UNUSED(ignored))
/* functions that return a new object partially translated by ctype funcs: */
static PyObject*
-stringlib_lower(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_lower(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject* newobj;
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
@@ -68,7 +68,7 @@ stringlib_lower(PyObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject*
-stringlib_upper(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_upper(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject* newobj;
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
@@ -80,7 +80,7 @@ stringlib_upper(PyObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject*
-stringlib_title(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_title(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject* newobj;
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
@@ -92,7 +92,7 @@ stringlib_title(PyObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject*
-stringlib_capitalize(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_capitalize(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject* newobj;
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
@@ -104,7 +104,7 @@ stringlib_capitalize(PyObject *self, PyObject *Py_UNUSED(ignored))
}
static PyObject*
-stringlib_swapcase(PyObject *self, PyObject *Py_UNUSED(ignored))
+stringlib_swapcase(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject* newobj;
newobj = STRINGLIB_NEW(NULL, STRINGLIB_LEN(self));
diff --git a/contrib/tools/python3/src/Objects/stringlib/eq.h b/contrib/tools/python3/src/Objects/stringlib/eq.h
index a3cec94e23..9c1058b86c 100644
--- a/contrib/tools/python3/src/Objects/stringlib/eq.h
+++ b/contrib/tools/python3/src/Objects/stringlib/eq.h
@@ -6,11 +6,11 @@
Py_LOCAL_INLINE(int)
unicode_eq(PyObject *aa, PyObject *bb)
{
- assert(PyUnicode_Check(aa));
- assert(PyUnicode_Check(bb));
- assert(PyUnicode_IS_READY(aa));
- assert(PyUnicode_IS_READY(bb));
-
+ assert(PyUnicode_Check(aa));
+ assert(PyUnicode_Check(bb));
+ assert(PyUnicode_IS_READY(aa));
+ assert(PyUnicode_IS_READY(bb));
+
PyUnicodeObject *a = (PyUnicodeObject *)aa;
PyUnicodeObject *b = (PyUnicodeObject *)bb;
diff --git a/contrib/tools/python3/src/Objects/stringlib/fastsearch.h b/contrib/tools/python3/src/Objects/stringlib/fastsearch.h
index 7c31649eba..56a4467d35 100644
--- a/contrib/tools/python3/src/Objects/stringlib/fastsearch.h
+++ b/contrib/tools/python3/src/Objects/stringlib/fastsearch.h
@@ -52,7 +52,7 @@ STRINGLIB(find_char)(const STRINGLIB_CHAR* s, Py_ssize_t n, STRINGLIB_CHAR ch)
return (p - s);
return -1;
#else
- /* use memchr if we can choose a needle without too many likely
+ /* use memchr if we can choose a needle without too many likely
false positives */
const STRINGLIB_CHAR *s1, *e1;
unsigned char needle = ch & 0xff;
@@ -111,7 +111,7 @@ STRINGLIB(rfind_char)(const STRINGLIB_CHAR* s, Py_ssize_t n, STRINGLIB_CHAR ch)
return (p - s);
return -1;
#else
- /* use memrchr if we can choose a needle without too many likely
+ /* use memrchr if we can choose a needle without too many likely
false positives */
const STRINGLIB_CHAR *s1;
Py_ssize_t n1;
diff --git a/contrib/tools/python3/src/Objects/stringlib/find_max_char.h b/contrib/tools/python3/src/Objects/stringlib/find_max_char.h
index 2e6bb63b86..f4e0a7761d 100644
--- a/contrib/tools/python3/src/Objects/stringlib/find_max_char.h
+++ b/contrib/tools/python3/src/Objects/stringlib/find_max_char.h
@@ -28,7 +28,7 @@ STRINGLIB(find_max_char)(const STRINGLIB_CHAR *begin, const STRINGLIB_CHAR *end)
/* Help register allocation */
const unsigned char *_p = p;
while (_p < aligned_end) {
- unsigned long value = *(const unsigned long *) _p;
+ unsigned long value = *(const unsigned long *) _p;
if (value & UCS1_ASCII_CHAR_MASK)
return 255;
_p += SIZEOF_LONG;
diff --git a/contrib/tools/python3/src/Objects/stringlib/join.h b/contrib/tools/python3/src/Objects/stringlib/join.h
index 5573924a49..53bcbdea7a 100644
--- a/contrib/tools/python3/src/Objects/stringlib/join.h
+++ b/contrib/tools/python3/src/Objects/stringlib/join.h
@@ -7,8 +7,8 @@
Py_LOCAL_INLINE(PyObject *)
STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
{
- const char *sepstr = STRINGLIB_STR(sep);
- Py_ssize_t seplen = STRINGLIB_LEN(sep);
+ const char *sepstr = STRINGLIB_STR(sep);
+ Py_ssize_t seplen = STRINGLIB_LEN(sep);
PyObject *res = NULL;
char *p;
Py_ssize_t seqlen = 0;
@@ -18,9 +18,9 @@ STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
Py_buffer *buffers = NULL;
#define NB_STATIC_BUFFERS 10
Py_buffer static_buffers[NB_STATIC_BUFFERS];
-#define GIL_THRESHOLD 1048576
- int drop_gil = 1;
- PyThreadState *save = NULL;
+#define GIL_THRESHOLD 1048576
+ int drop_gil = 1;
+ PyThreadState *save = NULL;
seq = PySequence_Fast(iterable, "can only join an iterable");
if (seq == NULL) {
@@ -68,21 +68,21 @@ STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
buffers[i].buf = PyBytes_AS_STRING(item);
buffers[i].len = PyBytes_GET_SIZE(item);
}
- else {
- if (PyObject_GetBuffer(item, &buffers[i], PyBUF_SIMPLE) != 0) {
- PyErr_Format(PyExc_TypeError,
- "sequence item %zd: expected a bytes-like object, "
- "%.80s found",
- i, Py_TYPE(item)->tp_name);
- goto error;
- }
- /* If the backing objects are mutable, then dropping the GIL
- * opens up race conditions where another thread tries to modify
- * the object which we hold a buffer on it. Such code has data
- * races anyway, but this is a conservative approach that avoids
- * changing the behaviour of that data race.
- */
- drop_gil = 0;
+ else {
+ if (PyObject_GetBuffer(item, &buffers[i], PyBUF_SIMPLE) != 0) {
+ PyErr_Format(PyExc_TypeError,
+ "sequence item %zd: expected a bytes-like object, "
+ "%.80s found",
+ i, Py_TYPE(item)->tp_name);
+ goto error;
+ }
+ /* If the backing objects are mutable, then dropping the GIL
+ * opens up race conditions where another thread tries to modify
+ * the object which we hold a buffer on it. Such code has data
+ * races anyway, but this is a conservative approach that avoids
+ * changing the behaviour of that data race.
+ */
+ drop_gil = 0;
}
nbufs = i + 1; /* for error cleanup */
itemlen = buffers[i].len;
@@ -114,12 +114,12 @@ STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
/* Catenate everything. */
p = STRINGLIB_STR(res);
- if (sz < GIL_THRESHOLD) {
- drop_gil = 0; /* Benefits are likely outweighed by the overheads */
- }
- if (drop_gil) {
- save = PyEval_SaveThread();
- }
+ if (sz < GIL_THRESHOLD) {
+ drop_gil = 0; /* Benefits are likely outweighed by the overheads */
+ }
+ if (drop_gil) {
+ save = PyEval_SaveThread();
+ }
if (!seplen) {
/* fast path */
for (i = 0; i < nbufs; i++) {
@@ -129,23 +129,23 @@ STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
p += n;
}
}
- else {
- for (i = 0; i < nbufs; i++) {
- Py_ssize_t n;
- char *q;
- if (i) {
- memcpy(p, sepstr, seplen);
- p += seplen;
- }
- n = buffers[i].len;
- q = buffers[i].buf;
- memcpy(p, q, n);
- p += n;
+ else {
+ for (i = 0; i < nbufs; i++) {
+ Py_ssize_t n;
+ char *q;
+ if (i) {
+ memcpy(p, sepstr, seplen);
+ p += seplen;
+ }
+ n = buffers[i].len;
+ q = buffers[i].buf;
+ memcpy(p, q, n);
+ p += n;
}
}
- if (drop_gil) {
- PyEval_RestoreThread(save);
- }
+ if (drop_gil) {
+ PyEval_RestoreThread(save);
+ }
goto done;
error:
@@ -160,4 +160,4 @@ done:
}
#undef NB_STATIC_BUFFERS
-#undef GIL_THRESHOLD
+#undef GIL_THRESHOLD
diff --git a/contrib/tools/python3/src/Objects/stringlib/localeutil.h b/contrib/tools/python3/src/Objects/stringlib/localeutil.h
index 48ec1c0a4c..bd16e0a172 100644
--- a/contrib/tools/python3/src/Objects/stringlib/localeutil.h
+++ b/contrib/tools/python3/src/Objects/stringlib/localeutil.h
@@ -77,6 +77,6 @@ InsertThousandsGrouping_fill(_PyUnicodeWriter *writer, Py_ssize_t *buffer_pos,
*buffer_pos -= n_zeros;
enum PyUnicode_Kind kind = PyUnicode_KIND(writer->buffer);
void *data = PyUnicode_DATA(writer->buffer);
- unicode_fill(kind, data, '0', *buffer_pos, n_zeros);
+ unicode_fill(kind, data, '0', *buffer_pos, n_zeros);
}
}
diff --git a/contrib/tools/python3/src/Objects/stringlib/split.h b/contrib/tools/python3/src/Objects/stringlib/split.h
index 4511518ed7..068047f987 100644
--- a/contrib/tools/python3/src/Objects/stringlib/split.h
+++ b/contrib/tools/python3/src/Objects/stringlib/split.h
@@ -48,7 +48,7 @@
/* Always force the list to the expected size. */
-#define FIX_PREALLOC_SIZE(list) Py_SET_SIZE(list, count)
+#define FIX_PREALLOC_SIZE(list) Py_SET_SIZE(list, count)
Py_LOCAL_INLINE(PyObject *)
STRINGLIB(split_whitespace)(PyObject* str_obj,
diff --git a/contrib/tools/python3/src/Objects/stringlib/transmogrify.h b/contrib/tools/python3/src/Objects/stringlib/transmogrify.h
index 207d50c710..e1165ea38e 100644
--- a/contrib/tools/python3/src/Objects/stringlib/transmogrify.h
+++ b/contrib/tools/python3/src/Objects/stringlib/transmogrify.h
@@ -5,13 +5,13 @@
/* the more complicated methods. parts of these should be pulled out into the
shared code in bytes_methods.c to cut down on duplicate code bloat. */
-/*[clinic input]
-class B "PyObject *" "&PyType_Type"
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2935558188d97c76]*/
-
-#include "clinic/transmogrify.h.h"
-
+/*[clinic input]
+class B "PyObject *" "&PyType_Type"
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=2935558188d97c76]*/
+
+#include "clinic/transmogrify.h.h"
+
static inline PyObject *
return_self(PyObject *self)
{
@@ -24,19 +24,19 @@ return_self(PyObject *self)
return STRINGLIB_NEW(STRINGLIB_STR(self), STRINGLIB_LEN(self));
}
-/*[clinic input]
-B.expandtabs as stringlib_expandtabs
-
- tabsize: int = 8
-
-Return a copy where all tab characters are expanded using spaces.
-
-If tabsize is not given, a tab size of 8 characters is assumed.
-[clinic start generated code]*/
-
-static PyObject *
-stringlib_expandtabs_impl(PyObject *self, int tabsize)
-/*[clinic end generated code: output=069cb7fae72e4c2b input=3c6d3b12aa3ccbea]*/
+/*[clinic input]
+B.expandtabs as stringlib_expandtabs
+
+ tabsize: int = 8
+
+Return a copy where all tab characters are expanded using spaces.
+
+If tabsize is not given, a tab size of 8 characters is assumed.
+[clinic start generated code]*/
+
+static PyObject *
+stringlib_expandtabs_impl(PyObject *self, int tabsize)
+/*[clinic end generated code: output=069cb7fae72e4c2b input=3c6d3b12aa3ccbea]*/
{
const char *e, *p;
char *q;
@@ -131,21 +131,21 @@ pad(PyObject *self, Py_ssize_t left, Py_ssize_t right, char fill)
return u;
}
-/*[clinic input]
-B.ljust as stringlib_ljust
-
- width: Py_ssize_t
- fillchar: char = b' '
- /
-
-Return a left-justified string of length width.
-
-Padding is done using the specified fill character.
-[clinic start generated code]*/
-
+/*[clinic input]
+B.ljust as stringlib_ljust
+
+ width: Py_ssize_t
+ fillchar: char = b' '
+ /
+
+Return a left-justified string of length width.
+
+Padding is done using the specified fill character.
+[clinic start generated code]*/
+
static PyObject *
-stringlib_ljust_impl(PyObject *self, Py_ssize_t width, char fillchar)
-/*[clinic end generated code: output=c79ca173c5ff8337 input=eff2d014bc7d80df]*/
+stringlib_ljust_impl(PyObject *self, Py_ssize_t width, char fillchar)
+/*[clinic end generated code: output=c79ca173c5ff8337 input=eff2d014bc7d80df]*/
{
if (STRINGLIB_LEN(self) >= width) {
return return_self(self);
@@ -155,21 +155,21 @@ stringlib_ljust_impl(PyObject *self, Py_ssize_t width, char fillchar)
}
-/*[clinic input]
-B.rjust as stringlib_rjust
-
- width: Py_ssize_t
- fillchar: char = b' '
- /
-
-Return a right-justified string of length width.
-
-Padding is done using the specified fill character.
-[clinic start generated code]*/
-
+/*[clinic input]
+B.rjust as stringlib_rjust
+
+ width: Py_ssize_t
+ fillchar: char = b' '
+ /
+
+Return a right-justified string of length width.
+
+Padding is done using the specified fill character.
+[clinic start generated code]*/
+
static PyObject *
-stringlib_rjust_impl(PyObject *self, Py_ssize_t width, char fillchar)
-/*[clinic end generated code: output=7df5d728a5439570 input=218b0bd31308955d]*/
+stringlib_rjust_impl(PyObject *self, Py_ssize_t width, char fillchar)
+/*[clinic end generated code: output=7df5d728a5439570 input=218b0bd31308955d]*/
{
if (STRINGLIB_LEN(self) >= width) {
return return_self(self);
@@ -179,21 +179,21 @@ stringlib_rjust_impl(PyObject *self, Py_ssize_t width, char fillchar)
}
-/*[clinic input]
-B.center as stringlib_center
-
- width: Py_ssize_t
- fillchar: char = b' '
- /
-
-Return a centered string of length width.
-
-Padding is done using the specified fill character.
-[clinic start generated code]*/
-
+/*[clinic input]
+B.center as stringlib_center
+
+ width: Py_ssize_t
+ fillchar: char = b' '
+ /
+
+Return a centered string of length width.
+
+Padding is done using the specified fill character.
+[clinic start generated code]*/
+
static PyObject *
-stringlib_center_impl(PyObject *self, Py_ssize_t width, char fillchar)
-/*[clinic end generated code: output=d8da2e055288b4c2 input=3776fd278765d89b]*/
+stringlib_center_impl(PyObject *self, Py_ssize_t width, char fillchar)
+/*[clinic end generated code: output=d8da2e055288b4c2 input=3776fd278765d89b]*/
{
Py_ssize_t marg, left;
@@ -207,20 +207,20 @@ stringlib_center_impl(PyObject *self, Py_ssize_t width, char fillchar)
return pad(self, left, marg - left, fillchar);
}
-/*[clinic input]
-B.zfill as stringlib_zfill
-
- width: Py_ssize_t
- /
-
-Pad a numeric string with zeros on the left, to fill a field of the given width.
-
-The original string is never truncated.
-[clinic start generated code]*/
-
+/*[clinic input]
+B.zfill as stringlib_zfill
+
+ width: Py_ssize_t
+ /
+
+Pad a numeric string with zeros on the left, to fill a field of the given width.
+
+The original string is never truncated.
+[clinic start generated code]*/
+
static PyObject *
-stringlib_zfill_impl(PyObject *self, Py_ssize_t width)
-/*[clinic end generated code: output=0b3c684a7f1b2319 input=2da6d7b8e9bcb19a]*/
+stringlib_zfill_impl(PyObject *self, Py_ssize_t width)
+/*[clinic end generated code: output=0b3c684a7f1b2319 input=2da6d7b8e9bcb19a]*/
{
Py_ssize_t fill;
PyObject *s;
@@ -680,13 +680,13 @@ stringlib_replace(PyObject *self,
const char *to_s, Py_ssize_t to_len,
Py_ssize_t maxcount)
{
- if (STRINGLIB_LEN(self) < from_len) {
- /* nothing to do; return the original bytes */
- return return_self(self);
- }
+ if (STRINGLIB_LEN(self) < from_len) {
+ /* nothing to do; return the original bytes */
+ return return_self(self);
+ }
if (maxcount < 0) {
maxcount = PY_SSIZE_T_MAX;
- } else if (maxcount == 0) {
+ } else if (maxcount == 0) {
/* nothing to do; return the original bytes */
return return_self(self);
}
diff --git a/contrib/tools/python3/src/Objects/stringlib/unicode_format.h b/contrib/tools/python3/src/Objects/stringlib/unicode_format.h
index 21787b3270..b526ad21b8 100644
--- a/contrib/tools/python3/src/Objects/stringlib/unicode_format.h
+++ b/contrib/tools/python3/src/Objects/stringlib/unicode_format.h
@@ -440,13 +440,13 @@ get_field_object(SubString *input, PyObject *args, PyObject *kwargs,
/* look up in args */
obj = PySequence_GetItem(args, index);
- if (obj == NULL) {
- PyErr_Format(PyExc_IndexError,
- "Replacement index %zd out of range for positional "
- "args tuple",
- index);
- goto error;
- }
+ if (obj == NULL) {
+ PyErr_Format(PyExc_IndexError,
+ "Replacement index %zd out of range for positional "
+ "args tuple",
+ index);
+ goto error;
+ }
}
/* iterate over the rest of the field_name */
@@ -828,7 +828,7 @@ output_markup(SubString *field_name, SubString *format_spec,
tmp = NULL;
}
- /* if needed, recursively compute the format_spec */
+ /* if needed, recursively compute the format_spec */
if (format_spec_needs_expanding) {
tmp = build_string(format_spec, args, kwargs, recursion_depth-1,
auto_number);
@@ -1071,10 +1071,10 @@ static PyTypeObject PyFormatterIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)formatteriter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1207,10 +1207,10 @@ static PyTypeObject PyFieldNameIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)fieldnameiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/structseq.c b/contrib/tools/python3/src/Objects/structseq.c
index 509abac580..5a493c91e8 100644
--- a/contrib/tools/python3/src/Objects/structseq.c
+++ b/contrib/tools/python3/src/Objects/structseq.c
@@ -1,16 +1,16 @@
-/* Implementation helper: a struct that looks like a tuple.
- See timemodule and posixmodule for example uses.
-
- The structseq helper is considered an internal CPython implementation
- detail. Docs for modules using structseqs should call them
- "named tuples" (be sure to include a space between the two
- words and add a link back to the term in Docs/glossary.rst).
-*/
-
+/* Implementation helper: a struct that looks like a tuple.
+ See timemodule and posixmodule for example uses.
+
+ The structseq helper is considered an internal CPython implementation
+ detail. Docs for modules using structseqs should call them
+ "named tuples" (be sure to include a space between the two
+ words and add a link back to the term in Docs/glossary.rst).
+*/
+
#include "Python.h"
-#include "pycore_tupleobject.h"
-#include "pycore_object.h"
-#include "structmember.h" // PyMemberDef
+#include "pycore_tupleobject.h"
+#include "pycore_object.h"
+#include "structmember.h" // PyMemberDef
static const char visible_length_key[] = "n_sequence_fields";
static const char real_length_key[] = "n_fields";
@@ -18,7 +18,7 @@ static const char unnamed_fields_key[] = "n_unnamed_fields";
/* Fields with this name have only a field index, not a field name.
They are only allowed for indices < n_visible_fields. */
-const char * const PyStructSequence_UnnamedField = "unnamed field";
+const char * const PyStructSequence_UnnamedField = "unnamed field";
_Py_IDENTIFIER(n_sequence_fields);
_Py_IDENTIFIER(n_fields);
_Py_IDENTIFIER(n_unnamed_fields);
@@ -47,7 +47,7 @@ PyStructSequence_New(PyTypeObject *type)
return NULL;
/* Hack the size of the variable object, so invisible fields don't appear
to Python code. */
- Py_SET_SIZE(obj, VISIBLE_SIZE_TP(type));
+ Py_SET_SIZE(obj, VISIBLE_SIZE_TP(type));
for (i = 0; i < size; i++)
obj->ob_item[i] = NULL;
@@ -66,37 +66,37 @@ PyStructSequence_GetItem(PyObject* op, Py_ssize_t i)
return PyStructSequence_GET_ITEM(op, i);
}
-
-static int
-structseq_traverse(PyStructSequence *obj, visitproc visit, void *arg)
-{
- if (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_HEAPTYPE) {
- Py_VISIT(Py_TYPE(obj));
- }
- Py_ssize_t i, size;
- size = REAL_SIZE(obj);
- for (i = 0; i < size; ++i) {
- Py_VISIT(obj->ob_item[i]);
- }
- return 0;
-}
-
+
+static int
+structseq_traverse(PyStructSequence *obj, visitproc visit, void *arg)
+{
+ if (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_HEAPTYPE) {
+ Py_VISIT(Py_TYPE(obj));
+ }
+ Py_ssize_t i, size;
+ size = REAL_SIZE(obj);
+ for (i = 0; i < size; ++i) {
+ Py_VISIT(obj->ob_item[i]);
+ }
+ return 0;
+}
+
static void
structseq_dealloc(PyStructSequence *obj)
{
Py_ssize_t i, size;
- PyTypeObject *tp;
- PyObject_GC_UnTrack(obj);
+ PyTypeObject *tp;
+ PyObject_GC_UnTrack(obj);
- tp = (PyTypeObject *) Py_TYPE(obj);
+ tp = (PyTypeObject *) Py_TYPE(obj);
size = REAL_SIZE(obj);
for (i = 0; i < size; ++i) {
Py_XDECREF(obj->ob_item[i]);
}
PyObject_GC_Del(obj);
- if (PyType_GetFlags(tp) & Py_TPFLAGS_HEAPTYPE) {
- Py_DECREF(tp);
- }
+ if (PyType_GetFlags(tp) & Py_TPFLAGS_HEAPTYPE) {
+ Py_DECREF(tp);
+ }
}
/*[clinic input]
@@ -110,12 +110,12 @@ class structseq "PyStructSequence *" "NULL"
@classmethod
structseq.__new__ as structseq_new
sequence as arg: object
- dict: object(c_default="NULL") = {}
+ dict: object(c_default="NULL") = {}
[clinic start generated code]*/
static PyObject *
structseq_new_impl(PyTypeObject *type, PyObject *arg, PyObject *dict)
-/*[clinic end generated code: output=baa082e788b171da input=90532511101aa3fb]*/
+/*[clinic end generated code: output=baa082e788b171da input=90532511101aa3fb]*/
{
PyObject *ob;
PyStructSequence *res = NULL;
@@ -189,7 +189,7 @@ structseq_new_impl(PyTypeObject *type, PyObject *arg, PyObject *dict)
}
Py_DECREF(arg);
- _PyObject_GC_TRACK(res);
+ _PyObject_GC_TRACK(res);
return (PyObject*) res;
}
@@ -198,89 +198,89 @@ static PyObject *
structseq_repr(PyStructSequence *obj)
{
PyTypeObject *typ = Py_TYPE(obj);
- _PyUnicodeWriter writer;
-
- /* Write "typename(" */
- PyObject *type_name = PyUnicode_DecodeUTF8(typ->tp_name,
- strlen(typ->tp_name),
- NULL);
- if (type_name == NULL) {
- return NULL;
- }
-
- _PyUnicodeWriter_Init(&writer);
- writer.overallocate = 1;
- /* count 5 characters per item: "x=1, " */
- writer.min_length = (PyUnicode_GET_LENGTH(type_name) + 1
- + VISIBLE_SIZE(obj) * 5 + 1);
-
- if (_PyUnicodeWriter_WriteStr(&writer, type_name) < 0) {
- Py_DECREF(type_name);
- goto error;
- }
- Py_DECREF(type_name);
-
- if (_PyUnicodeWriter_WriteChar(&writer, '(') < 0) {
- goto error;
- }
-
- for (Py_ssize_t i=0; i < VISIBLE_SIZE(obj); i++) {
- if (i > 0) {
- /* Write ", " */
- if (_PyUnicodeWriter_WriteASCIIString(&writer, ", ", 2) < 0) {
- goto error;
- }
- }
-
- /* Write "name=repr" */
- const char *name_utf8 = typ->tp_members[i].name;
- if (name_utf8 == NULL) {
- PyErr_Format(PyExc_SystemError, "In structseq_repr(), member %zd name is NULL"
+ _PyUnicodeWriter writer;
+
+ /* Write "typename(" */
+ PyObject *type_name = PyUnicode_DecodeUTF8(typ->tp_name,
+ strlen(typ->tp_name),
+ NULL);
+ if (type_name == NULL) {
+ return NULL;
+ }
+
+ _PyUnicodeWriter_Init(&writer);
+ writer.overallocate = 1;
+ /* count 5 characters per item: "x=1, " */
+ writer.min_length = (PyUnicode_GET_LENGTH(type_name) + 1
+ + VISIBLE_SIZE(obj) * 5 + 1);
+
+ if (_PyUnicodeWriter_WriteStr(&writer, type_name) < 0) {
+ Py_DECREF(type_name);
+ goto error;
+ }
+ Py_DECREF(type_name);
+
+ if (_PyUnicodeWriter_WriteChar(&writer, '(') < 0) {
+ goto error;
+ }
+
+ for (Py_ssize_t i=0; i < VISIBLE_SIZE(obj); i++) {
+ if (i > 0) {
+ /* Write ", " */
+ if (_PyUnicodeWriter_WriteASCIIString(&writer, ", ", 2) < 0) {
+ goto error;
+ }
+ }
+
+ /* Write "name=repr" */
+ const char *name_utf8 = typ->tp_members[i].name;
+ if (name_utf8 == NULL) {
+ PyErr_Format(PyExc_SystemError, "In structseq_repr(), member %zd name is NULL"
" for type %.500s", i, typ->tp_name);
- goto error;
+ goto error;
}
-
- PyObject *name = PyUnicode_DecodeUTF8(name_utf8, strlen(name_utf8), NULL);
- if (name == NULL) {
- goto error;
+
+ PyObject *name = PyUnicode_DecodeUTF8(name_utf8, strlen(name_utf8), NULL);
+ if (name == NULL) {
+ goto error;
}
- if (_PyUnicodeWriter_WriteStr(&writer, name) < 0) {
- Py_DECREF(name);
- goto error;
- }
- Py_DECREF(name);
-
- if (_PyUnicodeWriter_WriteChar(&writer, '=') < 0) {
- goto error;
+ if (_PyUnicodeWriter_WriteStr(&writer, name) < 0) {
+ Py_DECREF(name);
+ goto error;
}
-
- PyObject *value = PyStructSequence_GET_ITEM(obj, i);
- assert(value != NULL);
- PyObject *repr = PyObject_Repr(value);
- if (repr == NULL) {
- goto error;
- }
- if (_PyUnicodeWriter_WriteStr(&writer, repr) < 0) {
+ Py_DECREF(name);
+
+ if (_PyUnicodeWriter_WriteChar(&writer, '=') < 0) {
+ goto error;
+ }
+
+ PyObject *value = PyStructSequence_GET_ITEM(obj, i);
+ assert(value != NULL);
+ PyObject *repr = PyObject_Repr(value);
+ if (repr == NULL) {
+ goto error;
+ }
+ if (_PyUnicodeWriter_WriteStr(&writer, repr) < 0) {
Py_DECREF(repr);
- goto error;
+ goto error;
}
- Py_DECREF(repr);
+ Py_DECREF(repr);
}
-
- if (_PyUnicodeWriter_WriteChar(&writer, ')') < 0) {
- goto error;
+
+ if (_PyUnicodeWriter_WriteChar(&writer, ')') < 0) {
+ goto error;
}
- return _PyUnicodeWriter_Finish(&writer);
-
-error:
- _PyUnicodeWriter_Dealloc(&writer);
- return NULL;
+ return _PyUnicodeWriter_Finish(&writer);
+
+error:
+ _PyUnicodeWriter_Dealloc(&writer);
+ return NULL;
}
-
+
static PyObject *
-structseq_reduce(PyStructSequence* self, PyObject *Py_UNUSED(ignored))
+structseq_reduce(PyStructSequence* self, PyObject *Py_UNUSED(ignored))
{
PyObject* tup = NULL;
PyObject* dict = NULL;
@@ -290,7 +290,7 @@ structseq_reduce(PyStructSequence* self, PyObject *Py_UNUSED(ignored))
n_fields = REAL_SIZE(self);
n_visible_fields = VISIBLE_SIZE(self);
n_unnamed_fields = UNNAMED_FIELDS(self);
- tup = _PyTuple_FromArray(self->ob_item, n_visible_fields);
+ tup = _PyTuple_FromArray(self->ob_item, n_visible_fields);
if (!tup)
goto error;
@@ -298,7 +298,7 @@ structseq_reduce(PyStructSequence* self, PyObject *Py_UNUSED(ignored))
if (!dict)
goto error;
- for (i = n_visible_fields; i < n_fields; i++) {
+ for (i = n_visible_fields; i < n_fields; i++) {
const char *n = Py_TYPE(self)->tp_members[i-n_unnamed_fields].name;
if (PyDict_SetItemString(dict, n, self->ob_item[i]) < 0)
goto error;
@@ -322,119 +322,119 @@ static PyMethodDef structseq_methods[] = {
{NULL, NULL}
};
-static Py_ssize_t
-count_members(PyStructSequence_Desc *desc, Py_ssize_t *n_unnamed_members) {
- Py_ssize_t i;
-
- *n_unnamed_members = 0;
- for (i = 0; desc->fields[i].name != NULL; ++i) {
- if (desc->fields[i].name == PyStructSequence_UnnamedField) {
- (*n_unnamed_members)++;
- }
- }
- return i;
-}
-
-static int
-initialize_structseq_dict(PyStructSequence_Desc *desc, PyObject* dict,
- Py_ssize_t n_members, Py_ssize_t n_unnamed_members) {
- PyObject *v;
-
-#define SET_DICT_FROM_SIZE(key, value) \
- do { \
- v = PyLong_FromSsize_t(value); \
- if (v == NULL) { \
- return -1; \
- } \
- if (PyDict_SetItemString(dict, key, v) < 0) { \
- Py_DECREF(v); \
- return -1; \
- } \
- Py_DECREF(v); \
- } while (0)
-
- SET_DICT_FROM_SIZE(visible_length_key, desc->n_in_sequence);
- SET_DICT_FROM_SIZE(real_length_key, n_members);
- SET_DICT_FROM_SIZE(unnamed_fields_key, n_unnamed_members);
- return 0;
-}
-
-static void
-initialize_members(PyStructSequence_Desc *desc, PyMemberDef* members,
- Py_ssize_t n_members) {
- Py_ssize_t i, k;
-
- for (i = k = 0; i < n_members; ++i) {
- if (desc->fields[i].name == PyStructSequence_UnnamedField) {
- continue;
- }
-
- /* The names and docstrings in these MemberDefs are statically */
- /* allocated so it is expected that they'll outlive the MemberDef */
- members[k].name = desc->fields[i].name;
- members[k].type = T_OBJECT;
- members[k].offset = offsetof(PyStructSequence, ob_item)
- + i * sizeof(PyObject*);
- members[k].flags = READONLY;
- members[k].doc = desc->fields[i].doc;
- k++;
- }
- members[k].name = NULL;
-}
-
+static Py_ssize_t
+count_members(PyStructSequence_Desc *desc, Py_ssize_t *n_unnamed_members) {
+ Py_ssize_t i;
+
+ *n_unnamed_members = 0;
+ for (i = 0; desc->fields[i].name != NULL; ++i) {
+ if (desc->fields[i].name == PyStructSequence_UnnamedField) {
+ (*n_unnamed_members)++;
+ }
+ }
+ return i;
+}
+
+static int
+initialize_structseq_dict(PyStructSequence_Desc *desc, PyObject* dict,
+ Py_ssize_t n_members, Py_ssize_t n_unnamed_members) {
+ PyObject *v;
+
+#define SET_DICT_FROM_SIZE(key, value) \
+ do { \
+ v = PyLong_FromSsize_t(value); \
+ if (v == NULL) { \
+ return -1; \
+ } \
+ if (PyDict_SetItemString(dict, key, v) < 0) { \
+ Py_DECREF(v); \
+ return -1; \
+ } \
+ Py_DECREF(v); \
+ } while (0)
+
+ SET_DICT_FROM_SIZE(visible_length_key, desc->n_in_sequence);
+ SET_DICT_FROM_SIZE(real_length_key, n_members);
+ SET_DICT_FROM_SIZE(unnamed_fields_key, n_unnamed_members);
+ return 0;
+}
+
+static void
+initialize_members(PyStructSequence_Desc *desc, PyMemberDef* members,
+ Py_ssize_t n_members) {
+ Py_ssize_t i, k;
+
+ for (i = k = 0; i < n_members; ++i) {
+ if (desc->fields[i].name == PyStructSequence_UnnamedField) {
+ continue;
+ }
+
+ /* The names and docstrings in these MemberDefs are statically */
+ /* allocated so it is expected that they'll outlive the MemberDef */
+ members[k].name = desc->fields[i].name;
+ members[k].type = T_OBJECT;
+ members[k].offset = offsetof(PyStructSequence, ob_item)
+ + i * sizeof(PyObject*);
+ members[k].flags = READONLY;
+ members[k].doc = desc->fields[i].doc;
+ k++;
+ }
+ members[k].name = NULL;
+}
+
int
PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc)
{
- PyMemberDef *members;
- Py_ssize_t n_members, n_unnamed_members;
+ PyMemberDef *members;
+ Py_ssize_t n_members, n_unnamed_members;
#ifdef Py_TRACE_REFS
/* if the type object was chained, unchain it first
before overwriting its storage */
if (type->ob_base.ob_base._ob_next) {
- _Py_ForgetReference((PyObject *)type);
+ _Py_ForgetReference((PyObject *)type);
}
#endif
- /* PyTypeObject has already been initialized */
- if (Py_REFCNT(type) != 0) {
- PyErr_BadInternalCall();
- return -1;
- }
+ /* PyTypeObject has already been initialized */
+ if (Py_REFCNT(type) != 0) {
+ PyErr_BadInternalCall();
+ return -1;
+ }
type->tp_name = desc->name;
- type->tp_basicsize = sizeof(PyStructSequence) - sizeof(PyObject *);
- type->tp_itemsize = sizeof(PyObject *);
- type->tp_dealloc = (destructor)structseq_dealloc;
- type->tp_repr = (reprfunc)structseq_repr;
+ type->tp_basicsize = sizeof(PyStructSequence) - sizeof(PyObject *);
+ type->tp_itemsize = sizeof(PyObject *);
+ type->tp_dealloc = (destructor)structseq_dealloc;
+ type->tp_repr = (reprfunc)structseq_repr;
type->tp_doc = desc->doc;
- type->tp_base = &PyTuple_Type;
- type->tp_methods = structseq_methods;
- type->tp_new = structseq_new;
- type->tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC;
- type->tp_traverse = (traverseproc) structseq_traverse;
-
- n_members = count_members(desc, &n_unnamed_members);
- members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1);
+ type->tp_base = &PyTuple_Type;
+ type->tp_methods = structseq_methods;
+ type->tp_new = structseq_new;
+ type->tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC;
+ type->tp_traverse = (traverseproc) structseq_traverse;
+
+ n_members = count_members(desc, &n_unnamed_members);
+ members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1);
if (members == NULL) {
PyErr_NoMemory();
return -1;
}
- initialize_members(desc, members, n_members);
+ initialize_members(desc, members, n_members);
type->tp_members = members;
- if (PyType_Ready(type) < 0) {
- PyMem_FREE(members);
+ if (PyType_Ready(type) < 0) {
+ PyMem_FREE(members);
return -1;
- }
+ }
Py_INCREF(type);
- if (initialize_structseq_dict(
- desc, type->tp_dict, n_members, n_unnamed_members) < 0) {
- PyMem_FREE(members);
- Py_DECREF(type);
- return -1;
- }
+ if (initialize_structseq_dict(
+ desc, type->tp_dict, n_members, n_unnamed_members) < 0) {
+ PyMem_FREE(members);
+ Py_DECREF(type);
+ return -1;
+ }
return 0;
}
@@ -445,68 +445,68 @@ PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc)
(void)PyStructSequence_InitType2(type, desc);
}
-PyTypeObject *
+PyTypeObject *
PyStructSequence_NewType(PyStructSequence_Desc *desc)
{
- PyMemberDef *members;
- PyObject *bases;
- PyTypeObject *type;
- PyType_Slot slots[8];
- PyType_Spec spec;
- Py_ssize_t n_members, n_unnamed_members;
-
- /* Initialize MemberDefs */
- n_members = count_members(desc, &n_unnamed_members);
- members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1);
- if (members == NULL) {
- PyErr_NoMemory();
+ PyMemberDef *members;
+ PyObject *bases;
+ PyTypeObject *type;
+ PyType_Slot slots[8];
+ PyType_Spec spec;
+ Py_ssize_t n_members, n_unnamed_members;
+
+ /* Initialize MemberDefs */
+ n_members = count_members(desc, &n_unnamed_members);
+ members = PyMem_NEW(PyMemberDef, n_members - n_unnamed_members + 1);
+ if (members == NULL) {
+ PyErr_NoMemory();
return NULL;
- }
- initialize_members(desc, members, n_members);
-
- /* Initialize Slots */
- slots[0] = (PyType_Slot){Py_tp_dealloc, (destructor)structseq_dealloc};
- slots[1] = (PyType_Slot){Py_tp_repr, (reprfunc)structseq_repr};
- slots[2] = (PyType_Slot){Py_tp_methods, structseq_methods};
- slots[3] = (PyType_Slot){Py_tp_new, structseq_new};
- slots[4] = (PyType_Slot){Py_tp_members, members};
- slots[5] = (PyType_Slot){Py_tp_traverse, (traverseproc)structseq_traverse};
- if (desc->doc) {
- slots[6] = (PyType_Slot){Py_tp_doc, (void *)desc->doc};
- slots[7] = (PyType_Slot){0, 0};
- }
- else {
- slots[6] = (PyType_Slot){0, 0};
- }
-
- /* Initialize Spec */
- /* The name in this PyType_Spec is statically allocated so it is */
- /* expected that it'll outlive the PyType_Spec */
- spec.name = desc->name;
- spec.basicsize = sizeof(PyStructSequence) - sizeof(PyObject *);
- spec.itemsize = sizeof(PyObject *);
- spec.flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC;
- spec.slots = slots;
-
- bases = PyTuple_Pack(1, &PyTuple_Type);
- if (bases == NULL) {
- PyMem_FREE(members);
+ }
+ initialize_members(desc, members, n_members);
+
+ /* Initialize Slots */
+ slots[0] = (PyType_Slot){Py_tp_dealloc, (destructor)structseq_dealloc};
+ slots[1] = (PyType_Slot){Py_tp_repr, (reprfunc)structseq_repr};
+ slots[2] = (PyType_Slot){Py_tp_methods, structseq_methods};
+ slots[3] = (PyType_Slot){Py_tp_new, structseq_new};
+ slots[4] = (PyType_Slot){Py_tp_members, members};
+ slots[5] = (PyType_Slot){Py_tp_traverse, (traverseproc)structseq_traverse};
+ if (desc->doc) {
+ slots[6] = (PyType_Slot){Py_tp_doc, (void *)desc->doc};
+ slots[7] = (PyType_Slot){0, 0};
+ }
+ else {
+ slots[6] = (PyType_Slot){0, 0};
+ }
+
+ /* Initialize Spec */
+ /* The name in this PyType_Spec is statically allocated so it is */
+ /* expected that it'll outlive the PyType_Spec */
+ spec.name = desc->name;
+ spec.basicsize = sizeof(PyStructSequence) - sizeof(PyObject *);
+ spec.itemsize = sizeof(PyObject *);
+ spec.flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC;
+ spec.slots = slots;
+
+ bases = PyTuple_Pack(1, &PyTuple_Type);
+ if (bases == NULL) {
+ PyMem_FREE(members);
+ return NULL;
+ }
+ type = (PyTypeObject *)PyType_FromSpecWithBases(&spec, bases);
+ Py_DECREF(bases);
+ PyMem_FREE(members);
+ if (type == NULL) {
return NULL;
}
- type = (PyTypeObject *)PyType_FromSpecWithBases(&spec, bases);
- Py_DECREF(bases);
- PyMem_FREE(members);
- if (type == NULL) {
- return NULL;
- }
-
- if (initialize_structseq_dict(
- desc, type->tp_dict, n_members, n_unnamed_members) < 0) {
- Py_DECREF(type);
- return NULL;
- }
-
- return type;
+
+ if (initialize_structseq_dict(
+ desc, type->tp_dict, n_members, n_unnamed_members) < 0) {
+ Py_DECREF(type);
+ return NULL;
+ }
+
+ return type;
}
int _PyStructSequence_Init(void)
diff --git a/contrib/tools/python3/src/Objects/tupleobject.c b/contrib/tools/python3/src/Objects/tupleobject.c
index e6a3b5ab57..9092c9f8be 100644
--- a/contrib/tools/python3/src/Objects/tupleobject.c
+++ b/contrib/tools/python3/src/Objects/tupleobject.c
@@ -2,10 +2,10 @@
/* Tuple object implementation */
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_accu.h"
-#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
-#include "pycore_object.h"
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_accu.h"
+#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
+#include "pycore_object.h"
/*[clinic input]
class tuple "PyTupleObject *" "&PyTuple_Type"
@@ -30,10 +30,10 @@ static PyTupleObject *free_list[PyTuple_MAXSAVESIZE];
static int numfree[PyTuple_MAXSAVESIZE];
#endif
-static inline void
-tuple_gc_track(PyTupleObject *op)
+static inline void
+tuple_gc_track(PyTupleObject *op)
{
- _PyObject_GC_TRACK(op);
+ _PyObject_GC_TRACK(op);
}
/* Print summary info about the state of the optimized allocator */
@@ -53,16 +53,16 @@ _PyTuple_DebugMallocStats(FILE *out)
#endif
}
-/* Allocate an uninitialized tuple object. Before making it public following
- steps must be done:
- - initialize its items
- - call tuple_gc_track() on it
- Because the empty tuple is always reused and it's already tracked by GC,
- this function must not be called with size == 0 (unless from PyTuple_New()
- which wraps this function).
-*/
-static PyTupleObject *
-tuple_alloc(Py_ssize_t size)
+/* Allocate an uninitialized tuple object. Before making it public following
+ steps must be done:
+ - initialize its items
+ - call tuple_gc_track() on it
+ Because the empty tuple is always reused and it's already tracked by GC,
+ this function must not be called with size == 0 (unless from PyTuple_New()
+ which wraps this function).
+*/
+static PyTupleObject *
+tuple_alloc(Py_ssize_t size)
{
PyTupleObject *op;
if (size < 0) {
@@ -71,7 +71,7 @@ tuple_alloc(Py_ssize_t size)
}
#if PyTuple_MAXSAVESIZE > 0
if (size < PyTuple_MAXSAVESIZE && (op = free_list[size]) != NULL) {
- assert(size != 0);
+ assert(size != 0);
free_list[size] = (PyTupleObject *) op->ob_item[0];
numfree[size]--;
/* Inline PyObject_InitVar */
@@ -85,35 +85,35 @@ tuple_alloc(Py_ssize_t size)
#endif
{
/* Check for overflow */
- if ((size_t)size > ((size_t)PY_SSIZE_T_MAX - (sizeof(PyTupleObject) -
- sizeof(PyObject *))) / sizeof(PyObject *)) {
- return (PyTupleObject *)PyErr_NoMemory();
+ if ((size_t)size > ((size_t)PY_SSIZE_T_MAX - (sizeof(PyTupleObject) -
+ sizeof(PyObject *))) / sizeof(PyObject *)) {
+ return (PyTupleObject *)PyErr_NoMemory();
}
op = PyObject_GC_NewVar(PyTupleObject, &PyTuple_Type, size);
if (op == NULL)
return NULL;
}
- return op;
-}
-
-PyObject *
-PyTuple_New(Py_ssize_t size)
-{
- PyTupleObject *op;
-#if PyTuple_MAXSAVESIZE > 0
- if (size == 0 && free_list[0]) {
- op = free_list[0];
- Py_INCREF(op);
- return (PyObject *) op;
- }
-#endif
- op = tuple_alloc(size);
- if (op == NULL) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < size; i++) {
+ return op;
+}
+
+PyObject *
+PyTuple_New(Py_ssize_t size)
+{
+ PyTupleObject *op;
+#if PyTuple_MAXSAVESIZE > 0
+ if (size == 0 && free_list[0]) {
+ op = free_list[0];
+ Py_INCREF(op);
+ return (PyObject *) op;
+ }
+#endif
+ op = tuple_alloc(size);
+ if (op == NULL) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < size; i++) {
op->ob_item[i] = NULL;
- }
+ }
#if PyTuple_MAXSAVESIZE > 0
if (size == 0) {
free_list[0] = op;
@@ -121,7 +121,7 @@ PyTuple_New(Py_ssize_t size)
Py_INCREF(op); /* extra INCREF so that this is never freed */
}
#endif
- tuple_gc_track(op);
+ tuple_gc_track(op);
return (PyObject *) op;
}
@@ -154,7 +154,7 @@ int
PyTuple_SetItem(PyObject *op, Py_ssize_t i, PyObject *newitem)
{
PyObject **p;
- if (!PyTuple_Check(op) || Py_REFCNT(op) != 1) {
+ if (!PyTuple_Check(op) || Py_REFCNT(op) != 1) {
Py_XDECREF(newitem);
PyErr_BadInternalCall();
return -1;
@@ -200,25 +200,25 @@ PyTuple_Pack(Py_ssize_t n, ...)
PyObject **items;
va_list vargs;
- if (n == 0) {
- return PyTuple_New(0);
- }
-
+ if (n == 0) {
+ return PyTuple_New(0);
+ }
+
va_start(vargs, n);
- PyTupleObject *result = tuple_alloc(n);
+ PyTupleObject *result = tuple_alloc(n);
if (result == NULL) {
va_end(vargs);
return NULL;
}
- items = result->ob_item;
+ items = result->ob_item;
for (i = 0; i < n; i++) {
o = va_arg(vargs, PyObject *);
Py_INCREF(o);
items[i] = o;
}
va_end(vargs);
- tuple_gc_track(result);
- return (PyObject *)result;
+ tuple_gc_track(result);
+ return (PyObject *)result;
}
@@ -230,7 +230,7 @@ tupledealloc(PyTupleObject *op)
Py_ssize_t i;
Py_ssize_t len = Py_SIZE(op);
PyObject_GC_UnTrack(op);
- Py_TRASHCAN_BEGIN(op, tupledealloc)
+ Py_TRASHCAN_BEGIN(op, tupledealloc)
if (len > 0) {
i = len;
while (--i >= 0)
@@ -238,7 +238,7 @@ tupledealloc(PyTupleObject *op)
#if PyTuple_MAXSAVESIZE > 0
if (len < PyTuple_MAXSAVESIZE &&
numfree[len] < PyTuple_MAXFREELIST &&
- Py_IS_TYPE(op, &PyTuple_Type))
+ Py_IS_TYPE(op, &PyTuple_Type))
{
op->ob_item[0] = (PyObject *) free_list[len];
numfree[len]++;
@@ -248,10 +248,10 @@ tupledealloc(PyTupleObject *op)
#endif
}
Py_TYPE(op)->tp_free((PyObject *)op);
-#if PyTuple_MAXSAVESIZE > 0
+#if PyTuple_MAXSAVESIZE > 0
done:
-#endif
- Py_TRASHCAN_END
+#endif
+ Py_TRASHCAN_END
}
static PyObject *
@@ -327,59 +327,59 @@ error:
}
-/* Hash for tuples. This is a slightly simplified version of the xxHash
- non-cryptographic hash:
- - we do not use any parallellism, there is only 1 accumulator.
- - we drop the final mixing since this is just a permutation of the
- output space: it does not help against collisions.
- - at the end, we mangle the length with a single constant.
- For the xxHash specification, see
- https://github.com/Cyan4973/xxHash/blob/master/doc/xxhash_spec.md
-
- Below are the official constants from the xxHash specification. Optimizing
- compilers should emit a single "rotate" instruction for the
- _PyHASH_XXROTATE() expansion. If that doesn't happen for some important
- platform, the macro could be changed to expand to a platform-specific rotate
- spelling instead.
+/* Hash for tuples. This is a slightly simplified version of the xxHash
+ non-cryptographic hash:
+ - we do not use any parallellism, there is only 1 accumulator.
+ - we drop the final mixing since this is just a permutation of the
+ output space: it does not help against collisions.
+ - at the end, we mangle the length with a single constant.
+ For the xxHash specification, see
+ https://github.com/Cyan4973/xxHash/blob/master/doc/xxhash_spec.md
+
+ Below are the official constants from the xxHash specification. Optimizing
+ compilers should emit a single "rotate" instruction for the
+ _PyHASH_XXROTATE() expansion. If that doesn't happen for some important
+ platform, the macro could be changed to expand to a platform-specific rotate
+ spelling instead.
*/
-#if SIZEOF_PY_UHASH_T > 4
-#define _PyHASH_XXPRIME_1 ((Py_uhash_t)11400714785074694791ULL)
-#define _PyHASH_XXPRIME_2 ((Py_uhash_t)14029467366897019727ULL)
-#define _PyHASH_XXPRIME_5 ((Py_uhash_t)2870177450012600261ULL)
-#define _PyHASH_XXROTATE(x) ((x << 31) | (x >> 33)) /* Rotate left 31 bits */
-#else
-#define _PyHASH_XXPRIME_1 ((Py_uhash_t)2654435761UL)
-#define _PyHASH_XXPRIME_2 ((Py_uhash_t)2246822519UL)
-#define _PyHASH_XXPRIME_5 ((Py_uhash_t)374761393UL)
-#define _PyHASH_XXROTATE(x) ((x << 13) | (x >> 19)) /* Rotate left 13 bits */
-#endif
-
-/* Tests have shown that it's not worth to cache the hash value, see
- https://bugs.python.org/issue9685 */
+#if SIZEOF_PY_UHASH_T > 4
+#define _PyHASH_XXPRIME_1 ((Py_uhash_t)11400714785074694791ULL)
+#define _PyHASH_XXPRIME_2 ((Py_uhash_t)14029467366897019727ULL)
+#define _PyHASH_XXPRIME_5 ((Py_uhash_t)2870177450012600261ULL)
+#define _PyHASH_XXROTATE(x) ((x << 31) | (x >> 33)) /* Rotate left 31 bits */
+#else
+#define _PyHASH_XXPRIME_1 ((Py_uhash_t)2654435761UL)
+#define _PyHASH_XXPRIME_2 ((Py_uhash_t)2246822519UL)
+#define _PyHASH_XXPRIME_5 ((Py_uhash_t)374761393UL)
+#define _PyHASH_XXROTATE(x) ((x << 13) | (x >> 19)) /* Rotate left 13 bits */
+#endif
+
+/* Tests have shown that it's not worth to cache the hash value, see
+ https://bugs.python.org/issue9685 */
static Py_hash_t
tuplehash(PyTupleObject *v)
{
- Py_ssize_t i, len = Py_SIZE(v);
- PyObject **item = v->ob_item;
-
- Py_uhash_t acc = _PyHASH_XXPRIME_5;
- for (i = 0; i < len; i++) {
- Py_uhash_t lane = PyObject_Hash(item[i]);
- if (lane == (Py_uhash_t)-1) {
+ Py_ssize_t i, len = Py_SIZE(v);
+ PyObject **item = v->ob_item;
+
+ Py_uhash_t acc = _PyHASH_XXPRIME_5;
+ for (i = 0; i < len; i++) {
+ Py_uhash_t lane = PyObject_Hash(item[i]);
+ if (lane == (Py_uhash_t)-1) {
return -1;
- }
- acc += lane * _PyHASH_XXPRIME_2;
- acc = _PyHASH_XXROTATE(acc);
- acc *= _PyHASH_XXPRIME_1;
- }
-
- /* Add input length, mangled to keep the historical value of hash(()). */
- acc += len ^ (_PyHASH_XXPRIME_5 ^ 3527539UL);
-
- if (acc == (Py_uhash_t)-1) {
- return 1546275796;
- }
- return acc;
+ }
+ acc += lane * _PyHASH_XXPRIME_2;
+ acc = _PyHASH_XXROTATE(acc);
+ acc *= _PyHASH_XXPRIME_1;
+ }
+
+ /* Add input length, mangled to keep the historical value of hash(()). */
+ acc += len ^ (_PyHASH_XXPRIME_5 ^ 3527539UL);
+
+ if (acc == (Py_uhash_t)-1) {
+ return 1546275796;
+ }
+ return acc;
}
static Py_ssize_t
@@ -395,7 +395,7 @@ tuplecontains(PyTupleObject *a, PyObject *el)
int cmp;
for (i = 0, cmp = 0 ; cmp == 0 && i < Py_SIZE(a); ++i)
- cmp = PyObject_RichCompareBool(PyTuple_GET_ITEM(a, i), el, Py_EQ);
+ cmp = PyObject_RichCompareBool(PyTuple_GET_ITEM(a, i), el, Py_EQ);
return cmp;
}
@@ -410,27 +410,27 @@ tupleitem(PyTupleObject *a, Py_ssize_t i)
return a->ob_item[i];
}
-PyObject *
-_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
-{
- if (n == 0) {
- return PyTuple_New(0);
- }
-
- PyTupleObject *tuple = tuple_alloc(n);
- if (tuple == NULL) {
- return NULL;
- }
- PyObject **dst = tuple->ob_item;
- for (Py_ssize_t i = 0; i < n; i++) {
- PyObject *item = src[i];
- Py_INCREF(item);
- dst[i] = item;
- }
- tuple_gc_track(tuple);
- return (PyObject *)tuple;
-}
-
+PyObject *
+_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
+{
+ if (n == 0) {
+ return PyTuple_New(0);
+ }
+
+ PyTupleObject *tuple = tuple_alloc(n);
+ if (tuple == NULL) {
+ return NULL;
+ }
+ PyObject **dst = tuple->ob_item;
+ for (Py_ssize_t i = 0; i < n; i++) {
+ PyObject *item = src[i];
+ Py_INCREF(item);
+ dst[i] = item;
+ }
+ tuple_gc_track(tuple);
+ return (PyObject *)tuple;
+}
+
static PyObject *
tupleslice(PyTupleObject *a, Py_ssize_t ilow,
Py_ssize_t ihigh)
@@ -445,7 +445,7 @@ tupleslice(PyTupleObject *a, Py_ssize_t ilow,
Py_INCREF(a);
return (PyObject *)a;
}
- return _PyTuple_FromArray(a->ob_item + ilow, ihigh - ilow);
+ return _PyTuple_FromArray(a->ob_item + ilow, ihigh - ilow);
}
PyObject *
@@ -483,11 +483,11 @@ tupleconcat(PyTupleObject *a, PyObject *bb)
if (Py_SIZE(a) > PY_SSIZE_T_MAX - Py_SIZE(b))
return PyErr_NoMemory();
size = Py_SIZE(a) + Py_SIZE(b);
- if (size == 0) {
- return PyTuple_New(0);
- }
-
- np = tuple_alloc(size);
+ if (size == 0) {
+ return PyTuple_New(0);
+ }
+
+ np = tuple_alloc(size);
if (np == NULL) {
return NULL;
}
@@ -505,7 +505,7 @@ tupleconcat(PyTupleObject *a, PyObject *bb)
Py_INCREF(v);
dest[i] = v;
}
- tuple_gc_track(np);
+ tuple_gc_track(np);
return (PyObject *)np;
#undef b
}
@@ -525,13 +525,13 @@ tuplerepeat(PyTupleObject *a, Py_ssize_t n)
return (PyObject *)a;
}
}
- if (Py_SIZE(a) == 0 || n <= 0) {
- return PyTuple_New(0);
- }
+ if (Py_SIZE(a) == 0 || n <= 0) {
+ return PyTuple_New(0);
+ }
if (n > PY_SSIZE_T_MAX / Py_SIZE(a))
return PyErr_NoMemory();
size = Py_SIZE(a) * n;
- np = tuple_alloc(size);
+ np = tuple_alloc(size);
if (np == NULL)
return NULL;
p = np->ob_item;
@@ -543,7 +543,7 @@ tuplerepeat(PyTupleObject *a, Py_ssize_t n)
p++;
}
}
- tuple_gc_track(np);
+ tuple_gc_track(np);
return (PyObject *) np;
}
@@ -709,25 +709,25 @@ tuple_new_impl(PyTypeObject *type, PyObject *iterable)
}
static PyObject *
-tuple_vectorcall(PyObject *type, PyObject * const*args,
- size_t nargsf, PyObject *kwnames)
-{
- if (!_PyArg_NoKwnames("tuple", kwnames)) {
- return NULL;
- }
-
- Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
- if (!_PyArg_CheckPositional("tuple", nargs, 0, 1)) {
- return NULL;
- }
-
- if (nargs) {
- return tuple_new_impl((PyTypeObject *)type, args[0]);
- }
- return PyTuple_New(0);
-}
-
-static PyObject *
+tuple_vectorcall(PyObject *type, PyObject * const*args,
+ size_t nargsf, PyObject *kwnames)
+{
+ if (!_PyArg_NoKwnames("tuple", kwnames)) {
+ return NULL;
+ }
+
+ Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
+ if (!_PyArg_CheckPositional("tuple", nargs, 0, 1)) {
+ return NULL;
+ }
+
+ if (nargs) {
+ return tuple_new_impl((PyTypeObject *)type, args[0]);
+ }
+ return PyTuple_New(0);
+}
+
+static PyObject *
tuple_subtype_new(PyTypeObject *type, PyObject *iterable)
{
PyObject *tmp, *newobj, *item;
@@ -739,10 +739,10 @@ tuple_subtype_new(PyTypeObject *type, PyObject *iterable)
return NULL;
assert(PyTuple_Check(tmp));
newobj = type->tp_alloc(type, n = PyTuple_GET_SIZE(tmp));
- if (newobj == NULL) {
- Py_DECREF(tmp);
+ if (newobj == NULL) {
+ Py_DECREF(tmp);
return NULL;
- }
+ }
for (i = 0; i < n; i++) {
item = PyTuple_GET_ITEM(tmp, i);
Py_INCREF(item);
@@ -766,7 +766,7 @@ static PySequenceMethods tuple_as_sequence = {
static PyObject*
tuplesubscript(PyTupleObject* self, PyObject* item)
{
- if (_PyIndex_Check(item)) {
+ if (_PyIndex_Check(item)) {
Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
return NULL;
@@ -775,8 +775,8 @@ tuplesubscript(PyTupleObject* self, PyObject* item)
return tupleitem(self, i);
}
else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelength, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelength, i;
+ size_t cur;
PyObject* it;
PyObject **src, **dest;
@@ -796,11 +796,11 @@ tuplesubscript(PyTupleObject* self, PyObject* item)
return (PyObject *)self;
}
else {
- PyTupleObject* result = tuple_alloc(slicelength);
+ PyTupleObject* result = tuple_alloc(slicelength);
if (!result) return NULL;
src = self->ob_item;
- dest = result->ob_item;
+ dest = result->ob_item;
for (cur = start, i = 0; i < slicelength;
cur += step, i++) {
it = src[cur];
@@ -808,8 +808,8 @@ tuplesubscript(PyTupleObject* self, PyObject* item)
dest[i] = it;
}
- tuple_gc_track(result);
- return (PyObject *)result;
+ tuple_gc_track(result);
+ return (PyObject *)result;
}
}
else {
@@ -835,7 +835,7 @@ static PyMethodDef tuple_methods[] = {
TUPLE___GETNEWARGS___METHODDEF
TUPLE_INDEX_METHODDEF
TUPLE_COUNT_METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias, METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL} /* sentinel */
};
@@ -853,10 +853,10 @@ PyTypeObject PyTuple_Type = {
sizeof(PyTupleObject) - sizeof(PyObject *),
sizeof(PyObject *),
(destructor)tupledealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)tuplerepr, /* tp_repr */
0, /* tp_as_number */
&tuple_as_sequence, /* tp_as_sequence */
@@ -888,7 +888,7 @@ PyTypeObject PyTuple_Type = {
0, /* tp_alloc */
tuple_new, /* tp_new */
PyObject_GC_Del, /* tp_free */
- .tp_vectorcall = tuple_vectorcall,
+ .tp_vectorcall = tuple_vectorcall,
};
/* The following function breaks the notion that tuples are immutable:
@@ -907,7 +907,7 @@ _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
Py_ssize_t oldsize;
v = (PyTupleObject *) *pv;
- if (v == NULL || !Py_IS_TYPE(v, &PyTuple_Type) ||
+ if (v == NULL || !Py_IS_TYPE(v, &PyTuple_Type) ||
(Py_SIZE(v) != 0 && Py_REFCNT(v) != 1)) {
*pv = 0;
Py_XDECREF(v);
@@ -928,15 +928,15 @@ _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
}
/* XXX UNREF/NEWREF interface should be more symmetrical */
-#ifdef Py_REF_DEBUG
- _Py_RefTotal--;
-#endif
- if (_PyObject_GC_IS_TRACKED(v)) {
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal--;
+#endif
+ if (_PyObject_GC_IS_TRACKED(v)) {
_PyObject_GC_UNTRACK(v);
- }
-#ifdef Py_TRACE_REFS
+ }
+#ifdef Py_TRACE_REFS
_Py_ForgetReference((PyObject *) v);
-#endif
+#endif
/* DECREF items deleted by shrinkage */
for (i = newsize; i < oldsize; i++) {
Py_CLEAR(v->ob_item[i]);
@@ -957,33 +957,33 @@ _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
return 0;
}
-void
-_PyTuple_ClearFreeList(void)
+void
+_PyTuple_ClearFreeList(void)
{
#if PyTuple_MAXSAVESIZE > 0
- for (Py_ssize_t i = 1; i < PyTuple_MAXSAVESIZE; i++) {
- PyTupleObject *p = free_list[i];
+ for (Py_ssize_t i = 1; i < PyTuple_MAXSAVESIZE; i++) {
+ PyTupleObject *p = free_list[i];
free_list[i] = NULL;
numfree[i] = 0;
while (p) {
- PyTupleObject *q = p;
+ PyTupleObject *q = p;
p = (PyTupleObject *)(p->ob_item[0]);
PyObject_GC_Del(q);
}
}
- // the empty tuple singleton is only cleared by _PyTuple_Fini()
+ // the empty tuple singleton is only cleared by _PyTuple_Fini()
#endif
}
void
-_PyTuple_Fini(void)
+_PyTuple_Fini(void)
{
#if PyTuple_MAXSAVESIZE > 0
/* empty tuples are used all over the place and applications may
* rely on the fact that an empty tuple is a singleton. */
Py_CLEAR(free_list[0]);
- _PyTuple_ClearFreeList();
+ _PyTuple_ClearFreeList();
#endif
}
@@ -1035,7 +1035,7 @@ tupleiter_next(tupleiterobject *it)
}
static PyObject *
-tupleiter_len(tupleiterobject *it, PyObject *Py_UNUSED(ignored))
+tupleiter_len(tupleiterobject *it, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len = 0;
if (it->it_seq)
@@ -1046,14 +1046,14 @@ tupleiter_len(tupleiterobject *it, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
static PyObject *
-tupleiter_reduce(tupleiterobject *it, PyObject *Py_UNUSED(ignored))
+tupleiter_reduce(tupleiterobject *it, PyObject *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(iter);
if (it->it_seq)
- return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
+ return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
it->it_seq, it->it_index);
else
- return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
+ return Py_BuildValue("N(())", _PyEval_GetBuiltinId(&PyId_iter));
}
static PyObject *
@@ -1089,10 +1089,10 @@ PyTypeObject PyTupleIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)tupleiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/typeobject.c b/contrib/tools/python3/src/Objects/typeobject.c
index b42eeb27ff..1cdf80bfcf 100644
--- a/contrib/tools/python3/src/Objects/typeobject.c
+++ b/contrib/tools/python3/src/Objects/typeobject.c
@@ -1,13 +1,13 @@
/* Type object implementation */
#include "Python.h"
-#include "pycore_call.h"
-#include "pycore_initconfig.h"
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_call.h"
+#include "pycore_initconfig.h"
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include "frameobject.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
#include <ctype.h>
@@ -19,9 +19,9 @@ class object "PyObject *" "&PyBaseObject_Type"
#include "clinic/typeobject.c.h"
-#define MCACHE
-
-#ifdef MCACHE
+#define MCACHE
+
+#ifdef MCACHE
/* Support type attribute cache */
/* The cache can keep references to the names alive for longer than
@@ -50,7 +50,7 @@ struct method_cache_entry {
static struct method_cache_entry method_cache[1 << MCACHE_SIZE_EXP];
static unsigned int next_version_tag = 0;
-#endif
+#endif
#define MCACHE_STATS 0
@@ -60,8 +60,8 @@ static size_t method_cache_misses = 0;
static size_t method_cache_collisions = 0;
#endif
-#define INTERN_NAME_STRINGS
-
+#define INTERN_NAME_STRINGS
+
/* alphabetical order */
_Py_IDENTIFIER(__abstractmethods__);
_Py_IDENTIFIER(__class__);
@@ -80,7 +80,7 @@ _Py_IDENTIFIER(__new__);
_Py_IDENTIFIER(__set_name__);
_Py_IDENTIFIER(__setitem__);
_Py_IDENTIFIER(builtins);
-_Py_IDENTIFIER(mro);
+_Py_IDENTIFIER(mro);
static PyObject *
slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
@@ -88,12 +88,12 @@ slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
static void
clear_slotdefs(void);
-static PyObject *
-lookup_maybe_method(PyObject *self, _Py_Identifier *attrid, int *unbound);
-
-static int
-slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value);
-
+static PyObject *
+lookup_maybe_method(PyObject *self, _Py_Identifier *attrid, int *unbound);
+
+static int
+slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value);
+
/*
* finds the beginning of the docstring's introspection signature.
* if present, returns a pointer pointing to the first '('.
@@ -130,7 +130,7 @@ find_signature(const char *name, const char *doc)
#define SIGNATURE_END_MARKER ")\n--\n\n"
#define SIGNATURE_END_MARKER_LENGTH 6
/*
- * skips past the end of the docstring's introspection signature.
+ * skips past the end of the docstring's introspection signature.
* (assumes doc starts with a valid signature prefix.)
*/
static const char *
@@ -147,27 +147,27 @@ skip_signature(const char *doc)
return NULL;
}
-int
+int
_PyType_CheckConsistency(PyTypeObject *type)
{
-#define CHECK(expr) \
- do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG((PyObject *)type, Py_STRINGIFY(expr)); } } while (0)
-
- CHECK(!_PyObject_IsFreed((PyObject *)type));
-
+#define CHECK(expr) \
+ do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG((PyObject *)type, Py_STRINGIFY(expr)); } } while (0)
+
+ CHECK(!_PyObject_IsFreed((PyObject *)type));
+
if (!(type->tp_flags & Py_TPFLAGS_READY)) {
- /* don't check static types before PyType_Ready() */
+ /* don't check static types before PyType_Ready() */
return 1;
}
- CHECK(Py_REFCNT(type) >= 1);
- CHECK(PyType_Check(type));
-
- CHECK(!(type->tp_flags & Py_TPFLAGS_READYING));
- CHECK(type->tp_dict != NULL);
-
+ CHECK(Py_REFCNT(type) >= 1);
+ CHECK(PyType_Check(type));
+
+ CHECK(!(type->tp_flags & Py_TPFLAGS_READYING));
+ CHECK(type->tp_dict != NULL);
+
return 1;
-#undef CHECK
+#undef CHECK
}
static const char *
@@ -220,7 +220,7 @@ _PyType_GetTextSignatureFromInternalDoc(const char *name, const char *internal_d
unsigned int
PyType_ClearCache(void)
{
-#ifdef MCACHE
+#ifdef MCACHE
Py_ssize_t i;
unsigned int cur_version_tag = next_version_tag - 1;
@@ -245,9 +245,9 @@ PyType_ClearCache(void)
/* mark all version tags as invalid */
PyType_Modified(&PyBaseObject_Type);
return cur_version_tag;
-#else
- return 0;
-#endif
+#else
+ return 0;
+#endif
}
void
@@ -267,8 +267,8 @@ PyType_Modified(PyTypeObject *type)
Invariants:
- Py_TPFLAGS_VALID_VERSION_TAG is never set if
- Py_TPFLAGS_HAVE_VERSION_TAG is not set (in case of a
- bizarre MRO, see type_mro_modified()).
+ Py_TPFLAGS_HAVE_VERSION_TAG is not set (in case of a
+ bizarre MRO, see type_mro_modified()).
- before Py_TPFLAGS_VALID_VERSION_TAG can be set on a type,
it must first be set on all super types.
@@ -282,7 +282,7 @@ PyType_Modified(PyTypeObject *type)
PyObject *raw, *ref;
Py_ssize_t i;
- if (!_PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG))
+ if (!_PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG))
return;
raw = type->tp_subclasses;
@@ -309,34 +309,34 @@ type_mro_modified(PyTypeObject *type, PyObject *bases) {
Unset HAVE_VERSION_TAG and VALID_VERSION_TAG if the type
has a custom MRO that includes a type which is not officially
- super type, or if the type implements its own mro() method.
+ super type, or if the type implements its own mro() method.
Called from mro_internal, which will subsequently be called on
each subclass when their mro is recursively updated.
*/
Py_ssize_t i, n;
- int custom = !Py_IS_TYPE(type, &PyType_Type);
- int unbound;
- PyObject *mro_meth = NULL;
- PyObject *type_mro_meth = NULL;
+ int custom = !Py_IS_TYPE(type, &PyType_Type);
+ int unbound;
+ PyObject *mro_meth = NULL;
+ PyObject *type_mro_meth = NULL;
- if (!_PyType_HasFeature(type, Py_TPFLAGS_HAVE_VERSION_TAG))
+ if (!_PyType_HasFeature(type, Py_TPFLAGS_HAVE_VERSION_TAG))
return;
- if (custom) {
- mro_meth = lookup_maybe_method(
- (PyObject *)type, &PyId_mro, &unbound);
- if (mro_meth == NULL)
- goto clear;
- type_mro_meth = lookup_maybe_method(
- (PyObject *)&PyType_Type, &PyId_mro, &unbound);
- if (type_mro_meth == NULL)
- goto clear;
- if (mro_meth != type_mro_meth)
- goto clear;
- Py_XDECREF(mro_meth);
- Py_XDECREF(type_mro_meth);
- }
+ if (custom) {
+ mro_meth = lookup_maybe_method(
+ (PyObject *)type, &PyId_mro, &unbound);
+ if (mro_meth == NULL)
+ goto clear;
+ type_mro_meth = lookup_maybe_method(
+ (PyObject *)&PyType_Type, &PyId_mro, &unbound);
+ if (type_mro_meth == NULL)
+ goto clear;
+ if (mro_meth != type_mro_meth)
+ goto clear;
+ Py_XDECREF(mro_meth);
+ Py_XDECREF(type_mro_meth);
+ }
n = PyTuple_GET_SIZE(bases);
for (i = 0; i < n; i++) {
PyObject *b = PyTuple_GET_ITEM(bases, i);
@@ -345,20 +345,20 @@ type_mro_modified(PyTypeObject *type, PyObject *bases) {
assert(PyType_Check(b));
cls = (PyTypeObject *)b;
- if (!_PyType_HasFeature(cls, Py_TPFLAGS_HAVE_VERSION_TAG) ||
+ if (!_PyType_HasFeature(cls, Py_TPFLAGS_HAVE_VERSION_TAG) ||
!PyType_IsSubtype(type, cls)) {
- goto clear;
+ goto clear;
}
}
- return;
- clear:
- Py_XDECREF(mro_meth);
- Py_XDECREF(type_mro_meth);
- type->tp_flags &= ~(Py_TPFLAGS_HAVE_VERSION_TAG|
- Py_TPFLAGS_VALID_VERSION_TAG);
+ return;
+ clear:
+ Py_XDECREF(mro_meth);
+ Py_XDECREF(type_mro_meth);
+ type->tp_flags &= ~(Py_TPFLAGS_HAVE_VERSION_TAG|
+ Py_TPFLAGS_VALID_VERSION_TAG);
}
-#ifdef MCACHE
+#ifdef MCACHE
static int
assign_version_tag(PyTypeObject *type)
{
@@ -370,11 +370,11 @@ assign_version_tag(PyTypeObject *type)
Py_ssize_t i, n;
PyObject *bases;
- if (_PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG))
+ if (_PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG))
return 1;
- if (!_PyType_HasFeature(type, Py_TPFLAGS_HAVE_VERSION_TAG))
+ if (!_PyType_HasFeature(type, Py_TPFLAGS_HAVE_VERSION_TAG))
return 0;
- if (!_PyType_HasFeature(type, Py_TPFLAGS_READY))
+ if (!_PyType_HasFeature(type, Py_TPFLAGS_READY))
return 0;
type->tp_version_tag = next_version_tag++;
@@ -405,17 +405,17 @@ assign_version_tag(PyTypeObject *type)
type->tp_flags |= Py_TPFLAGS_VALID_VERSION_TAG;
return 1;
}
-#endif
+#endif
static PyMemberDef type_members[] = {
{"__basicsize__", T_PYSSIZET, offsetof(PyTypeObject,tp_basicsize),READONLY},
{"__itemsize__", T_PYSSIZET, offsetof(PyTypeObject, tp_itemsize), READONLY},
- {"__flags__", T_ULONG, offsetof(PyTypeObject, tp_flags), READONLY},
- {"__weakrefoffset__", T_PYSSIZET,
+ {"__flags__", T_ULONG, offsetof(PyTypeObject, tp_flags), READONLY},
+ {"__weakrefoffset__", T_PYSSIZET,
offsetof(PyTypeObject, tp_weaklistoffset), READONLY},
{"__base__", T_OBJECT, offsetof(PyTypeObject, tp_base), READONLY},
- {"__dictoffset__", T_PYSSIZET,
+ {"__dictoffset__", T_PYSSIZET,
offsetof(PyTypeObject, tp_dictoffset), READONLY},
{"__mro__", T_OBJECT, offsetof(PyTypeObject, tp_mro), READONLY},
{0}
@@ -434,19 +434,19 @@ check_set_special_type_attr(PyTypeObject *type, PyObject *value, const char *nam
"can't delete %s.%s", type->tp_name, name);
return 0;
}
-
- if (PySys_Audit("object.__setattr__", "OsO",
- type, name, value) < 0) {
- return 0;
- }
-
+
+ if (PySys_Audit("object.__setattr__", "OsO",
+ type, name, value) < 0) {
+ return 0;
+ }
+
return 1;
}
const char *
_PyType_Name(PyTypeObject *type)
{
- assert(type->tp_name != NULL);
+ assert(type->tp_name != NULL);
const char *s = strrchr(type->tp_name, '.');
if (s == NULL) {
s = type->tp_name;
@@ -541,11 +541,11 @@ type_module(PyTypeObject *type, void *context)
PyObject *mod;
if (type->tp_flags & Py_TPFLAGS_HEAPTYPE) {
- mod = _PyDict_GetItemIdWithError(type->tp_dict, &PyId___module__);
+ mod = _PyDict_GetItemIdWithError(type->tp_dict, &PyId___module__);
if (mod == NULL) {
- if (!PyErr_Occurred()) {
- PyErr_Format(PyExc_AttributeError, "__module__");
- }
+ if (!PyErr_Occurred()) {
+ PyErr_Format(PyExc_AttributeError, "__module__");
+ }
return NULL;
}
Py_INCREF(mod);
@@ -584,13 +584,13 @@ type_abstractmethods(PyTypeObject *type, void *context)
/* type itself has an __abstractmethods__ descriptor (this). Don't return
that. */
if (type != &PyType_Type)
- mod = _PyDict_GetItemIdWithError(type->tp_dict, &PyId___abstractmethods__);
+ mod = _PyDict_GetItemIdWithError(type->tp_dict, &PyId___abstractmethods__);
if (!mod) {
- if (!PyErr_Occurred()) {
- PyObject *message = _PyUnicode_FromId(&PyId___abstractmethods__);
- if (message)
- PyErr_SetObject(PyExc_AttributeError, message);
- }
+ if (!PyErr_Occurred()) {
+ PyObject *message = _PyUnicode_FromId(&PyId___abstractmethods__);
+ if (message)
+ PyErr_SetObject(PyExc_AttributeError, message);
+ }
return NULL;
}
Py_INCREF(mod);
@@ -862,12 +862,12 @@ type_get_doc(PyTypeObject *type, void *context)
if (!(type->tp_flags & Py_TPFLAGS_HEAPTYPE) && type->tp_doc != NULL) {
return _PyType_GetDocFromInternalDoc(type->tp_name, type->tp_doc);
}
- result = _PyDict_GetItemIdWithError(type->tp_dict, &PyId___doc__);
+ result = _PyDict_GetItemIdWithError(type->tp_dict, &PyId___doc__);
if (result == NULL) {
- if (!PyErr_Occurred()) {
- result = Py_None;
- Py_INCREF(result);
- }
+ if (!PyErr_Occurred()) {
+ result = Py_None;
+ Py_INCREF(result);
+ }
}
else if (Py_TYPE(result)->tp_descr_get) {
result = Py_TYPE(result)->tp_descr_get(result, NULL,
@@ -972,47 +972,47 @@ static PyObject *
type_call(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
PyObject *obj;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
#ifdef Py_DEBUG
/* type_call() must not be called with an exception set,
because it can clear it (directly or indirectly) and so the
caller loses its exception */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
#endif
- /* Special case: type(x) should return Py_TYPE(x) */
- /* We only want type itself to accept the one-argument form (#27157) */
- if (type == &PyType_Type) {
- assert(args != NULL && PyTuple_Check(args));
- assert(kwds == NULL || PyDict_Check(kwds));
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
-
- if (nargs == 1 && (kwds == NULL || !PyDict_GET_SIZE(kwds))) {
- obj = (PyObject *) Py_TYPE(PyTuple_GET_ITEM(args, 0));
- Py_INCREF(obj);
- return obj;
- }
-
- /* SF bug 475327 -- if that didn't trigger, we need 3
- arguments. But PyArg_ParseTuple in type_new may give
- a msg saying type() needs exactly 3. */
- if (nargs != 3) {
- PyErr_SetString(PyExc_TypeError,
- "type() takes 1 or 3 arguments");
- return NULL;
- }
- }
-
- if (type->tp_new == NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "cannot create '%.100s' instances",
- type->tp_name);
- return NULL;
- }
-
+ /* Special case: type(x) should return Py_TYPE(x) */
+ /* We only want type itself to accept the one-argument form (#27157) */
+ if (type == &PyType_Type) {
+ assert(args != NULL && PyTuple_Check(args));
+ assert(kwds == NULL || PyDict_Check(kwds));
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+
+ if (nargs == 1 && (kwds == NULL || !PyDict_GET_SIZE(kwds))) {
+ obj = (PyObject *) Py_TYPE(PyTuple_GET_ITEM(args, 0));
+ Py_INCREF(obj);
+ return obj;
+ }
+
+ /* SF bug 475327 -- if that didn't trigger, we need 3
+ arguments. But PyArg_ParseTuple in type_new may give
+ a msg saying type() needs exactly 3. */
+ if (nargs != 3) {
+ PyErr_SetString(PyExc_TypeError,
+ "type() takes 1 or 3 arguments");
+ return NULL;
+ }
+ }
+
+ if (type->tp_new == NULL) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "cannot create '%.100s' instances",
+ type->tp_name);
+ return NULL;
+ }
+
obj = type->tp_new(type, args, kwds);
- obj = _Py_CheckFunctionResult(tstate, (PyObject*)type, obj, NULL);
+ obj = _Py_CheckFunctionResult(tstate, (PyObject*)type, obj, NULL);
if (obj == NULL)
return NULL;
@@ -1025,12 +1025,12 @@ type_call(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (type->tp_init != NULL) {
int res = type->tp_init(obj, args, kwds);
if (res < 0) {
- assert(_PyErr_Occurred(tstate));
+ assert(_PyErr_Occurred(tstate));
Py_DECREF(obj);
obj = NULL;
}
else {
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
}
}
return obj;
@@ -1043,29 +1043,29 @@ PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
const size_t size = _PyObject_VAR_SIZE(type, nitems+1);
/* note that we need to add one, for the sentinel */
- if (_PyType_IS_GC(type)) {
+ if (_PyType_IS_GC(type)) {
obj = _PyObject_GC_Malloc(size);
- }
- else {
+ }
+ else {
obj = (PyObject *)PyObject_MALLOC(size);
- }
+ }
- if (obj == NULL) {
+ if (obj == NULL) {
return PyErr_NoMemory();
- }
+ }
memset(obj, '\0', size);
- if (type->tp_itemsize == 0) {
+ if (type->tp_itemsize == 0) {
(void)PyObject_INIT(obj, type);
- }
- else {
+ }
+ else {
(void) PyObject_INIT_VAR((PyVarObject *)obj, type, nitems);
- }
+ }
- if (_PyType_IS_GC(type)) {
+ if (_PyType_IS_GC(type)) {
_PyObject_GC_TRACK(obj);
- }
+ }
return obj;
}
@@ -1125,16 +1125,16 @@ subtype_traverse(PyObject *self, visitproc visit, void *arg)
Py_VISIT(*dictptr);
}
- if (type->tp_flags & Py_TPFLAGS_HEAPTYPE
- && (!basetraverse || !(base->tp_flags & Py_TPFLAGS_HEAPTYPE))) {
+ if (type->tp_flags & Py_TPFLAGS_HEAPTYPE
+ && (!basetraverse || !(base->tp_flags & Py_TPFLAGS_HEAPTYPE))) {
/* For a heaptype, the instances count as references
to the type. Traverse the type so the collector
- can find cycles involving this link.
- Skip this visit if basetraverse belongs to a heap type: in that
- case, basetraverse will visit the type when we call it later.
- */
+ can find cycles involving this link.
+ Skip this visit if basetraverse belongs to a heap type: in that
+ case, basetraverse will visit the type when we call it later.
+ */
Py_VISIT(type);
- }
+ }
if (basetraverse)
return basetraverse(self, visit, arg);
@@ -1200,14 +1200,14 @@ subtype_dealloc(PyObject *self)
/* Extract the type; we expect it to be a heap type */
type = Py_TYPE(self);
- _PyObject_ASSERT((PyObject *)type, type->tp_flags & Py_TPFLAGS_HEAPTYPE);
+ _PyObject_ASSERT((PyObject *)type, type->tp_flags & Py_TPFLAGS_HEAPTYPE);
/* Test whether the type has GC exactly once */
- if (!_PyType_IS_GC(type)) {
- /* A non GC dynamic type allows certain simplifications:
- there's no need to call clear_slots(), or DECREF the dict,
- or clear weakrefs. */
+ if (!_PyType_IS_GC(type)) {
+ /* A non GC dynamic type allows certain simplifications:
+ there's no need to call clear_slots(), or DECREF the dict,
+ or clear weakrefs. */
/* Maybe call finalizer; exit early if resurrected */
if (type->tp_finalize) {
@@ -1216,9 +1216,9 @@ subtype_dealloc(PyObject *self)
}
if (type->tp_del) {
type->tp_del(self);
- if (Py_REFCNT(self) > 0) {
+ if (Py_REFCNT(self) > 0) {
return;
- }
+ }
}
/* Find the nearest base with a different tp_dealloc */
@@ -1231,22 +1231,22 @@ subtype_dealloc(PyObject *self)
/* Extract the type again; tp_del may have changed it */
type = Py_TYPE(self);
- // Don't read type memory after calling basedealloc() since basedealloc()
- // can deallocate the type and free its memory.
- int type_needs_decref = (type->tp_flags & Py_TPFLAGS_HEAPTYPE
- && !(base->tp_flags & Py_TPFLAGS_HEAPTYPE));
-
+ // Don't read type memory after calling basedealloc() since basedealloc()
+ // can deallocate the type and free its memory.
+ int type_needs_decref = (type->tp_flags & Py_TPFLAGS_HEAPTYPE
+ && !(base->tp_flags & Py_TPFLAGS_HEAPTYPE));
+
/* Call the base tp_dealloc() */
assert(basedealloc);
basedealloc(self);
- /* Can't reference self beyond this point. It's possible tp_del switched
- our type from a HEAPTYPE to a non-HEAPTYPE, so be careful about
- reference counting. Only decref if the base type is not already a heap
- allocated type. Otherwise, basedealloc should have decref'd it already */
- if (type_needs_decref) {
- Py_DECREF(type);
- }
+ /* Can't reference self beyond this point. It's possible tp_del switched
+ our type from a HEAPTYPE to a non-HEAPTYPE, so be careful about
+ reference counting. Only decref if the base type is not already a heap
+ allocated type. Otherwise, basedealloc should have decref'd it already */
+ if (type_needs_decref) {
+ Py_DECREF(type);
+ }
/* Done */
return;
@@ -1257,7 +1257,7 @@ subtype_dealloc(PyObject *self)
/* UnTrack and re-Track around the trashcan macro, alas */
/* See explanation at end of function for full disclosure */
PyObject_GC_UnTrack(self);
- Py_TRASHCAN_BEGIN(self, subtype_dealloc);
+ Py_TRASHCAN_BEGIN(self, subtype_dealloc);
/* Find the nearest base with a different tp_dealloc */
base = type;
@@ -1291,7 +1291,7 @@ subtype_dealloc(PyObject *self)
if (type->tp_del) {
_PyObject_GC_TRACK(self);
type->tp_del(self);
- if (Py_REFCNT(self) > 0) {
+ if (Py_REFCNT(self) > 0) {
/* Resurrected */
goto endlabel;
}
@@ -1305,7 +1305,7 @@ subtype_dealloc(PyObject *self)
if (type->tp_weaklistoffset && !base->tp_weaklistoffset) {
/* Modeled after GET_WEAKREFS_LISTPTR() */
PyWeakReference **list = (PyWeakReference **) \
- _PyObject_GET_WEAKREFS_LISTPTR(self);
+ _PyObject_GET_WEAKREFS_LISTPTR(self);
while (*list)
_PyWeakref_ClearRef(*list);
}
@@ -1338,28 +1338,28 @@ subtype_dealloc(PyObject *self)
/* Call the base tp_dealloc(); first retrack self if
* basedealloc knows about gc.
*/
- if (_PyType_IS_GC(base)) {
+ if (_PyType_IS_GC(base)) {
_PyObject_GC_TRACK(self);
- }
-
- // Don't read type memory after calling basedealloc() since basedealloc()
- // can deallocate the type and free its memory.
- int type_needs_decref = (type->tp_flags & Py_TPFLAGS_HEAPTYPE
- && !(base->tp_flags & Py_TPFLAGS_HEAPTYPE));
-
+ }
+
+ // Don't read type memory after calling basedealloc() since basedealloc()
+ // can deallocate the type and free its memory.
+ int type_needs_decref = (type->tp_flags & Py_TPFLAGS_HEAPTYPE
+ && !(base->tp_flags & Py_TPFLAGS_HEAPTYPE));
+
assert(basedealloc);
basedealloc(self);
/* Can't reference self beyond this point. It's possible tp_del switched
our type from a HEAPTYPE to a non-HEAPTYPE, so be careful about
- reference counting. Only decref if the base type is not already a heap
- allocated type. Otherwise, basedealloc should have decref'd it already */
- if (type_needs_decref) {
- Py_DECREF(type);
- }
+ reference counting. Only decref if the base type is not already a heap
+ allocated type. Otherwise, basedealloc should have decref'd it already */
+ if (type_needs_decref) {
+ Py_DECREF(type);
+ }
endlabel:
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
/* Explanation of the weirdness around the trashcan macros:
@@ -1434,7 +1434,7 @@ PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)
return 0;
}
else
- /* a is not completely initialized yet; follow tp_base */
+ /* a is not completely initialized yet; follow tp_base */
return type_is_subtype_base_chain(a, b);
}
@@ -1477,7 +1477,7 @@ lookup_maybe_method(PyObject *self, _Py_Identifier *attrid, int *unbound)
return NULL;
}
- if (_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)) {
+ if (_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)) {
/* Avoid temporary PyMethodObject */
*unbound = 1;
Py_INCREF(res);
@@ -1500,77 +1500,77 @@ lookup_method(PyObject *self, _Py_Identifier *attrid, int *unbound)
{
PyObject *res = lookup_maybe_method(self, attrid, unbound);
if (res == NULL && !PyErr_Occurred()) {
- PyErr_SetObject(PyExc_AttributeError, _PyUnicode_FromId(attrid));
+ PyErr_SetObject(PyExc_AttributeError, _PyUnicode_FromId(attrid));
}
return res;
}
-
-static inline PyObject*
-vectorcall_unbound(PyThreadState *tstate, int unbound, PyObject *func,
- PyObject *const *args, Py_ssize_t nargs)
+
+static inline PyObject*
+vectorcall_unbound(PyThreadState *tstate, int unbound, PyObject *func,
+ PyObject *const *args, Py_ssize_t nargs)
{
- size_t nargsf = nargs;
- if (!unbound) {
- /* Skip self argument, freeing up args[0] to use for
- * PY_VECTORCALL_ARGUMENTS_OFFSET */
- args++;
- nargsf = nargsf - 1 + PY_VECTORCALL_ARGUMENTS_OFFSET;
+ size_t nargsf = nargs;
+ if (!unbound) {
+ /* Skip self argument, freeing up args[0] to use for
+ * PY_VECTORCALL_ARGUMENTS_OFFSET */
+ args++;
+ nargsf = nargsf - 1 + PY_VECTORCALL_ARGUMENTS_OFFSET;
}
- return _PyObject_VectorcallTstate(tstate, func, args, nargsf, NULL);
+ return _PyObject_VectorcallTstate(tstate, func, args, nargsf, NULL);
}
static PyObject*
call_unbound_noarg(int unbound, PyObject *func, PyObject *self)
{
if (unbound) {
- return PyObject_CallOneArg(func, self);
+ return PyObject_CallOneArg(func, self);
}
else {
return _PyObject_CallNoArg(func);
}
}
-/* A variation of PyObject_CallMethod* that uses lookup_method()
- instead of PyObject_GetAttrString().
-
- args is an argument vector of length nargs. The first element in this
- vector is the special object "self" which is used for the method lookup */
+/* A variation of PyObject_CallMethod* that uses lookup_method()
+ instead of PyObject_GetAttrString().
+
+ args is an argument vector of length nargs. The first element in this
+ vector is the special object "self" which is used for the method lookup */
static PyObject *
-vectorcall_method(_Py_Identifier *name,
- PyObject *const *args, Py_ssize_t nargs)
+vectorcall_method(_Py_Identifier *name,
+ PyObject *const *args, Py_ssize_t nargs)
{
- assert(nargs >= 1);
-
- PyThreadState *tstate = _PyThreadState_GET();
+ assert(nargs >= 1);
+
+ PyThreadState *tstate = _PyThreadState_GET();
int unbound;
- PyObject *self = args[0];
- PyObject *func = lookup_method(self, name, &unbound);
+ PyObject *self = args[0];
+ PyObject *func = lookup_method(self, name, &unbound);
if (func == NULL) {
return NULL;
}
- PyObject *retval = vectorcall_unbound(tstate, unbound, func, args, nargs);
+ PyObject *retval = vectorcall_unbound(tstate, unbound, func, args, nargs);
Py_DECREF(func);
return retval;
}
-/* Clone of vectorcall_method() that returns NotImplemented
- * when the lookup fails. */
+/* Clone of vectorcall_method() that returns NotImplemented
+ * when the lookup fails. */
static PyObject *
-vectorcall_maybe(PyThreadState *tstate, _Py_Identifier *name,
- PyObject *const *args, Py_ssize_t nargs)
+vectorcall_maybe(PyThreadState *tstate, _Py_Identifier *name,
+ PyObject *const *args, Py_ssize_t nargs)
{
- assert(nargs >= 1);
-
+ assert(nargs >= 1);
+
int unbound;
- PyObject *self = args[0];
- PyObject *func = lookup_maybe_method(self, name, &unbound);
+ PyObject *self = args[0];
+ PyObject *func = lookup_maybe_method(self, name, &unbound);
if (func == NULL) {
if (!PyErr_Occurred())
Py_RETURN_NOTIMPLEMENTED;
return NULL;
}
- PyObject *retval = vectorcall_unbound(tstate, unbound, func, args, nargs);
+ PyObject *retval = vectorcall_unbound(tstate, unbound, func, args, nargs);
Py_DECREF(func);
return retval;
}
@@ -1619,8 +1619,8 @@ tail_contains(PyObject *tuple, int whence, PyObject *o)
static PyObject *
class_name(PyObject *cls)
{
- PyObject *name;
- if (_PyObject_LookupAttrId(cls, &PyId___name__, &name) == 0) {
+ PyObject *name;
+ if (_PyObject_LookupAttrId(cls, &PyId___name__, &name) == 0) {
name = PyObject_Repr(cls);
}
return name;
@@ -1640,14 +1640,14 @@ check_duplicates(PyObject *tuple)
if (PyTuple_GET_ITEM(tuple, j) == o) {
o = class_name(o);
if (o != NULL) {
- if (PyUnicode_Check(o)) {
- PyErr_Format(PyExc_TypeError,
- "duplicate base class %U", o);
- }
- else {
- PyErr_SetString(PyExc_TypeError,
- "duplicate base class");
- }
+ if (PyUnicode_Check(o)) {
+ PyErr_Format(PyExc_TypeError,
+ "duplicate base class %U", o);
+ }
+ else {
+ PyErr_SetString(PyExc_TypeError,
+ "duplicate base class");
+ }
Py_DECREF(o);
}
return -1;
@@ -1692,20 +1692,20 @@ consistent method resolution\norder (MRO) for bases");
i = 0;
while (PyDict_Next(set, &i, &k, &v) && (size_t)off < sizeof(buf)) {
PyObject *name = class_name(k);
- const char *name_str = NULL;
+ const char *name_str = NULL;
if (name != NULL) {
- if (PyUnicode_Check(name)) {
- name_str = PyUnicode_AsUTF8(name);
- }
- else {
+ if (PyUnicode_Check(name)) {
+ name_str = PyUnicode_AsUTF8(name);
+ }
+ else {
name_str = "?";
- }
- }
- if (name_str == NULL) {
- Py_XDECREF(name);
- Py_DECREF(set);
- return;
- }
+ }
+ }
+ if (name_str == NULL) {
+ Py_XDECREF(name);
+ Py_DECREF(set);
+ return;
+ }
off += PyOS_snprintf(buf + off, sizeof(buf) - off, " %s", name_str);
Py_XDECREF(name);
if (--n && (size_t)(off+1) < sizeof(buf)) {
@@ -1948,7 +1948,7 @@ mro_invoke(PyTypeObject *type)
{
PyObject *mro_result;
PyObject *new_mro;
- const int custom = !Py_IS_TYPE(type, &PyType_Type);
+ const int custom = !Py_IS_TYPE(type, &PyType_Type);
if (custom) {
int unbound;
@@ -2068,7 +2068,7 @@ best_base(PyObject *bases)
if (PyType_Ready(base_i) < 0)
return NULL;
}
- if (!_PyType_HasFeature(base_i, Py_TPFLAGS_BASETYPE)) {
+ if (!_PyType_HasFeature(base_i, Py_TPFLAGS_BASETYPE)) {
PyErr_Format(PyExc_TypeError,
"type '%.100s' is not an acceptable base type",
base_i->tp_name);
@@ -2248,19 +2248,19 @@ subtype_getweakref(PyObject *obj, void *context)
{
PyObject **weaklistptr;
PyObject *result;
- PyTypeObject *type = Py_TYPE(obj);
+ PyTypeObject *type = Py_TYPE(obj);
- if (type->tp_weaklistoffset == 0) {
+ if (type->tp_weaklistoffset == 0) {
PyErr_SetString(PyExc_AttributeError,
"This object has no __weakref__");
return NULL;
}
- _PyObject_ASSERT((PyObject *)type,
- type->tp_weaklistoffset > 0);
- _PyObject_ASSERT((PyObject *)type,
- ((type->tp_weaklistoffset + sizeof(PyObject *))
- <= (size_t)(type->tp_basicsize)));
- weaklistptr = (PyObject **)((char *)obj + type->tp_weaklistoffset);
+ _PyObject_ASSERT((PyObject *)type,
+ type->tp_weaklistoffset > 0);
+ _PyObject_ASSERT((PyObject *)type,
+ ((type->tp_weaklistoffset + sizeof(PyObject *))
+ <= (size_t)(type->tp_basicsize)));
+ weaklistptr = (PyObject **)((char *)obj + type->tp_weaklistoffset);
if (*weaklistptr == NULL)
result = Py_None;
else
@@ -2464,16 +2464,16 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
goto error;
/* Check for a __slots__ sequence variable in dict, and count it */
- slots = _PyDict_GetItemIdWithError(dict, &PyId___slots__);
+ slots = _PyDict_GetItemIdWithError(dict, &PyId___slots__);
nslots = 0;
add_dict = 0;
add_weak = 0;
may_add_dict = base->tp_dictoffset == 0;
may_add_weak = base->tp_weaklistoffset == 0 && base->tp_itemsize == 0;
if (slots == NULL) {
- if (PyErr_Occurred()) {
- goto error;
- }
+ if (PyErr_Occurred()) {
+ goto error;
+ }
if (may_add_dict) {
add_dict++;
}
@@ -2550,7 +2550,7 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
goto error;
}
PyList_SET_ITEM(newslots, j, tmp);
- if (PyDict_GetItemWithError(dict, tmp)) {
+ if (PyDict_GetItemWithError(dict, tmp)) {
/* CPython inserts __qualname__ and __classcell__ (when needed)
into the namespace when creating a class. They will be deleted
below so won't act as class variables. */
@@ -2563,10 +2563,10 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
goto error;
}
}
- else if (PyErr_Occurred()) {
- Py_DECREF(newslots);
- goto error;
- }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(newslots);
+ goto error;
+ }
j++;
}
assert(j == nslots - add_dict - add_weak);
@@ -2620,10 +2620,10 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
slots = NULL;
/* Initialize tp_flags */
- // All heap types need GC, since we can create a reference cycle by storing
- // an instance on one of its parents:
+ // All heap types need GC, since we can create a reference cycle by storing
+ // an instance on one of its parents:
type->tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HEAPTYPE |
- Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC;
+ Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC;
/* Initialize essential fields */
type->tp_as_async = &et->as_async;
@@ -2651,28 +2651,28 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
type->tp_dict = dict;
/* Set __module__ in the dict */
- if (_PyDict_GetItemIdWithError(dict, &PyId___module__) == NULL) {
- if (PyErr_Occurred()) {
- goto error;
- }
+ if (_PyDict_GetItemIdWithError(dict, &PyId___module__) == NULL) {
+ if (PyErr_Occurred()) {
+ goto error;
+ }
tmp = PyEval_GetGlobals();
if (tmp != NULL) {
- tmp = _PyDict_GetItemIdWithError(tmp, &PyId___name__);
+ tmp = _PyDict_GetItemIdWithError(tmp, &PyId___name__);
if (tmp != NULL) {
if (_PyDict_SetItemId(dict, &PyId___module__,
tmp) < 0)
goto error;
}
- else if (PyErr_Occurred()) {
- goto error;
- }
+ else if (PyErr_Occurred()) {
+ goto error;
+ }
}
}
/* Set ht_qualname to dict['__qualname__'] if available, else to
__name__. The __qualname__ accessor will look for ht_qualname.
*/
- qualname = _PyDict_GetItemIdWithError(dict, &PyId___qualname__);
+ qualname = _PyDict_GetItemIdWithError(dict, &PyId___qualname__);
if (qualname != NULL) {
if (!PyUnicode_Check(qualname)) {
PyErr_Format(PyExc_TypeError,
@@ -2681,23 +2681,23 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
goto error;
}
}
- else if (PyErr_Occurred()) {
- goto error;
- }
+ else if (PyErr_Occurred()) {
+ goto error;
+ }
et->ht_qualname = qualname ? qualname : et->ht_name;
Py_INCREF(et->ht_qualname);
if (qualname != NULL && _PyDict_DelItemId(dict, &PyId___qualname__) < 0)
goto error;
- /* Set ht_module */
- et->ht_module = NULL;
-
+ /* Set ht_module */
+ et->ht_module = NULL;
+
/* Set tp_doc to a copy of dict['__doc__'], if the latter is there
and is a string. The __doc__ accessor will first look for tp_doc;
if that fails, it will still look into __dict__.
*/
{
- PyObject *doc = _PyDict_GetItemIdWithError(dict, &PyId___doc__);
+ PyObject *doc = _PyDict_GetItemIdWithError(dict, &PyId___doc__);
if (doc != NULL && PyUnicode_Check(doc)) {
Py_ssize_t len;
const char *doc_str;
@@ -2716,14 +2716,14 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
memcpy(tp_doc, doc_str, len + 1);
type->tp_doc = tp_doc;
}
- else if (doc == NULL && PyErr_Occurred()) {
- goto error;
- }
+ else if (doc == NULL && PyErr_Occurred()) {
+ goto error;
+ }
}
/* Special-case __new__: if it's a plain function,
make it a static function */
- tmp = _PyDict_GetItemIdWithError(dict, &PyId___new__);
+ tmp = _PyDict_GetItemIdWithError(dict, &PyId___new__);
if (tmp != NULL && PyFunction_Check(tmp)) {
tmp = PyStaticMethod_New(tmp);
if (tmp == NULL)
@@ -2734,13 +2734,13 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
}
Py_DECREF(tmp);
}
- else if (tmp == NULL && PyErr_Occurred()) {
- goto error;
- }
+ else if (tmp == NULL && PyErr_Occurred()) {
+ goto error;
+ }
/* Special-case __init_subclass__ and __class_getitem__:
if they are plain functions, make them classmethods */
- tmp = _PyDict_GetItemIdWithError(dict, &PyId___init_subclass__);
+ tmp = _PyDict_GetItemIdWithError(dict, &PyId___init_subclass__);
if (tmp != NULL && PyFunction_Check(tmp)) {
tmp = PyClassMethod_New(tmp);
if (tmp == NULL)
@@ -2751,11 +2751,11 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
}
Py_DECREF(tmp);
}
- else if (tmp == NULL && PyErr_Occurred()) {
- goto error;
- }
+ else if (tmp == NULL && PyErr_Occurred()) {
+ goto error;
+ }
- tmp = _PyDict_GetItemIdWithError(dict, &PyId___class_getitem__);
+ tmp = _PyDict_GetItemIdWithError(dict, &PyId___class_getitem__);
if (tmp != NULL && PyFunction_Check(tmp)) {
tmp = PyClassMethod_New(tmp);
if (tmp == NULL)
@@ -2766,9 +2766,9 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
}
Py_DECREF(tmp);
}
- else if (tmp == NULL && PyErr_Occurred()) {
- goto error;
- }
+ else if (tmp == NULL && PyErr_Occurred()) {
+ goto error;
+ }
/* Add descriptors for custom slots from __slots__, or for __dict__ */
mp = PyHeapType_GET_MEMBERS(et);
@@ -2825,12 +2825,12 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
/* Always override allocation strategy to use regular heap */
type->tp_alloc = PyType_GenericAlloc;
- type->tp_free = PyObject_GC_Del;
- type->tp_traverse = subtype_traverse;
- type->tp_clear = subtype_clear;
+ type->tp_free = PyObject_GC_Del;
+ type->tp_traverse = subtype_traverse;
+ type->tp_clear = subtype_clear;
/* store type in class' cell if one is supplied */
- cell = _PyDict_GetItemIdWithError(dict, &PyId___classcell__);
+ cell = _PyDict_GetItemIdWithError(dict, &PyId___classcell__);
if (cell != NULL) {
/* At least one method requires a reference to its defining class */
if (!PyCell_Check(cell)) {
@@ -2840,13 +2840,13 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
goto error;
}
PyCell_Set(cell, (PyObject *) type);
- if (_PyDict_DelItemId(dict, &PyId___classcell__) < 0) {
- goto error;
- }
+ if (_PyDict_DelItemId(dict, &PyId___classcell__) < 0) {
+ goto error;
+ }
+ }
+ else if (PyErr_Occurred()) {
+ goto error;
}
- else if (PyErr_Occurred()) {
- goto error;
- }
/* Initialize the rest */
if (PyType_Ready(type) < 0)
@@ -2884,52 +2884,52 @@ static const short slotoffsets[] = {
PyObject *
PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)
{
- return PyType_FromModuleAndSpec(NULL, spec, bases);
-}
-
-PyObject *
-PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
-{
- PyHeapTypeObject *res;
- PyObject *modname;
+ return PyType_FromModuleAndSpec(NULL, spec, bases);
+}
+
+PyObject *
+PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
+{
+ PyHeapTypeObject *res;
+ PyObject *modname;
PyTypeObject *type, *base;
-
- const PyType_Slot *slot;
- Py_ssize_t nmembers, weaklistoffset, dictoffset, vectorcalloffset;
- char *res_start;
-
- nmembers = weaklistoffset = dictoffset = vectorcalloffset = 0;
- for (slot = spec->slots; slot->slot; slot++) {
- if (slot->slot == Py_tp_members) {
- nmembers = 0;
- for (const PyMemberDef *memb = slot->pfunc; memb->name != NULL; memb++) {
- nmembers++;
- if (strcmp(memb->name, "__weaklistoffset__") == 0) {
- // The PyMemberDef must be a Py_ssize_t and readonly
- assert(memb->type == T_PYSSIZET);
- assert(memb->flags == READONLY);
- weaklistoffset = memb->offset;
- }
- if (strcmp(memb->name, "__dictoffset__") == 0) {
- // The PyMemberDef must be a Py_ssize_t and readonly
- assert(memb->type == T_PYSSIZET);
- assert(memb->flags == READONLY);
- dictoffset = memb->offset;
- }
- if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
- // The PyMemberDef must be a Py_ssize_t and readonly
- assert(memb->type == T_PYSSIZET);
- assert(memb->flags == READONLY);
- vectorcalloffset = memb->offset;
- }
- }
- }
- }
-
- res = (PyHeapTypeObject*)PyType_GenericAlloc(&PyType_Type, nmembers);
+
+ const PyType_Slot *slot;
+ Py_ssize_t nmembers, weaklistoffset, dictoffset, vectorcalloffset;
+ char *res_start;
+
+ nmembers = weaklistoffset = dictoffset = vectorcalloffset = 0;
+ for (slot = spec->slots; slot->slot; slot++) {
+ if (slot->slot == Py_tp_members) {
+ nmembers = 0;
+ for (const PyMemberDef *memb = slot->pfunc; memb->name != NULL; memb++) {
+ nmembers++;
+ if (strcmp(memb->name, "__weaklistoffset__") == 0) {
+ // The PyMemberDef must be a Py_ssize_t and readonly
+ assert(memb->type == T_PYSSIZET);
+ assert(memb->flags == READONLY);
+ weaklistoffset = memb->offset;
+ }
+ if (strcmp(memb->name, "__dictoffset__") == 0) {
+ // The PyMemberDef must be a Py_ssize_t and readonly
+ assert(memb->type == T_PYSSIZET);
+ assert(memb->flags == READONLY);
+ dictoffset = memb->offset;
+ }
+ if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
+ // The PyMemberDef must be a Py_ssize_t and readonly
+ assert(memb->type == T_PYSSIZET);
+ assert(memb->flags == READONLY);
+ vectorcalloffset = memb->offset;
+ }
+ }
+ }
+ }
+
+ res = (PyHeapTypeObject*)PyType_GenericAlloc(&PyType_Type, nmembers);
if (res == NULL)
return NULL;
- res_start = (char*)res;
+ res_start = (char*)res;
if (spec->name == NULL) {
PyErr_SetString(PyExc_SystemError,
@@ -2938,9 +2938,9 @@ PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
}
/* Set the type name and qualname */
- const char *s = strrchr(spec->name, '.');
+ const char *s = strrchr(spec->name, '.');
if (s == NULL)
- s = spec->name;
+ s = spec->name;
else
s++;
@@ -2954,9 +2954,9 @@ PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
Py_INCREF(res->ht_qualname);
type->tp_name = spec->name;
- Py_XINCREF(module);
- res->ht_module = module;
-
+ Py_XINCREF(module);
+ res->ht_module = module;
+
/* Adjust for empty tuple bases */
if (!bases) {
base = &PyBaseObject_Type;
@@ -2968,38 +2968,38 @@ PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
bases = slot->pfunc;
}
}
- if (!bases) {
+ if (!bases) {
bases = PyTuple_Pack(1, base);
- if (!bases)
- goto fail;
- }
- else if (!PyTuple_Check(bases)) {
- PyErr_SetString(PyExc_SystemError, "Py_tp_bases is not a tuple");
+ if (!bases)
+ goto fail;
+ }
+ else if (!PyTuple_Check(bases)) {
+ PyErr_SetString(PyExc_SystemError, "Py_tp_bases is not a tuple");
goto fail;
- }
- else {
- Py_INCREF(bases);
- }
- }
- else if (!PyTuple_Check(bases)) {
- PyErr_SetString(PyExc_SystemError, "bases is not a tuple");
- goto fail;
- }
- else {
+ }
+ else {
+ Py_INCREF(bases);
+ }
+ }
+ else if (!PyTuple_Check(bases)) {
+ PyErr_SetString(PyExc_SystemError, "bases is not a tuple");
+ goto fail;
+ }
+ else {
Py_INCREF(bases);
- }
+ }
/* Calculate best base, and check that all bases are type objects */
base = best_base(bases);
if (base == NULL) {
- Py_DECREF(bases);
+ Py_DECREF(bases);
goto fail;
}
- if (!_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE)) {
+ if (!_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE)) {
PyErr_Format(PyExc_TypeError,
"type '%.100s' is not an acceptable base type",
base->tp_name);
- Py_DECREF(bases);
+ Py_DECREF(bases);
goto fail;
}
@@ -3023,34 +3023,34 @@ PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
PyErr_SetString(PyExc_RuntimeError, "invalid slot offset");
goto fail;
}
- else if (slot->slot == Py_tp_base || slot->slot == Py_tp_bases) {
+ else if (slot->slot == Py_tp_base || slot->slot == Py_tp_bases) {
/* Processed above */
continue;
- }
- else if (slot->slot == Py_tp_doc) {
- /* For the docstring slot, which usually points to a static string
- literal, we need to make a copy */
+ }
+ else if (slot->slot == Py_tp_doc) {
+ /* For the docstring slot, which usually points to a static string
+ literal, we need to make a copy */
const char *old_doc = _PyType_DocWithoutSignature(type->tp_name, slot->pfunc);
size_t len = strlen(old_doc)+1;
char *tp_doc = PyObject_MALLOC(len);
if (tp_doc == NULL) {
- type->tp_doc = NULL;
+ type->tp_doc = NULL;
PyErr_NoMemory();
goto fail;
}
memcpy(tp_doc, old_doc, len);
type->tp_doc = tp_doc;
}
- else if (slot->slot == Py_tp_members) {
- /* Move the slots to the heap type itself */
- size_t len = Py_TYPE(type)->tp_itemsize * nmembers;
- memcpy(PyHeapType_GET_MEMBERS(res), slot->pfunc, len);
- type->tp_members = PyHeapType_GET_MEMBERS(res);
- }
- else {
- /* Copy other slots directly */
- *(void**)(res_start + slotoffsets[slot->slot]) = slot->pfunc;
- }
+ else if (slot->slot == Py_tp_members) {
+ /* Move the slots to the heap type itself */
+ size_t len = Py_TYPE(type)->tp_itemsize * nmembers;
+ memcpy(PyHeapType_GET_MEMBERS(res), slot->pfunc, len);
+ type->tp_members = PyHeapType_GET_MEMBERS(res);
+ }
+ else {
+ /* Copy other slots directly */
+ *(void**)(res_start + slotoffsets[slot->slot]) = slot->pfunc;
+ }
}
if (type->tp_dealloc == NULL) {
/* It's a heap type, so needs the heap types' dealloc.
@@ -3059,10 +3059,10 @@ PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
type->tp_dealloc = subtype_dealloc;
}
- if (vectorcalloffset) {
- type->tp_vectorcall_offset = vectorcalloffset;
- }
-
+ if (vectorcalloffset) {
+ type->tp_vectorcall_offset = vectorcalloffset;
+ }
+
if (PyType_Ready(type) < 0)
goto fail;
@@ -3070,40 +3070,40 @@ PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)
res->ht_cached_keys = _PyDict_NewKeysForClass();
}
- if (weaklistoffset) {
- type->tp_weaklistoffset = weaklistoffset;
- if (PyDict_DelItemString((PyObject *)type->tp_dict, "__weaklistoffset__") < 0)
- goto fail;
- }
- if (dictoffset) {
- type->tp_dictoffset = dictoffset;
- if (PyDict_DelItemString((PyObject *)type->tp_dict, "__dictoffset__") < 0)
- goto fail;
- }
-
+ if (weaklistoffset) {
+ type->tp_weaklistoffset = weaklistoffset;
+ if (PyDict_DelItemString((PyObject *)type->tp_dict, "__weaklistoffset__") < 0)
+ goto fail;
+ }
+ if (dictoffset) {
+ type->tp_dictoffset = dictoffset;
+ if (PyDict_DelItemString((PyObject *)type->tp_dict, "__dictoffset__") < 0)
+ goto fail;
+ }
+
/* Set type.__module__ */
- if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___module__) == NULL) {
- if (PyErr_Occurred()) {
+ if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___module__) == NULL) {
+ if (PyErr_Occurred()) {
goto fail;
}
- s = strrchr(spec->name, '.');
- if (s != NULL) {
- int err;
- modname = PyUnicode_FromStringAndSize(
- spec->name, (Py_ssize_t)(s - spec->name));
- if (modname == NULL) {
- goto fail;
- }
- err = _PyDict_SetItemId(type->tp_dict, &PyId___module__, modname);
- Py_DECREF(modname);
- if (err != 0)
- goto fail;
- } else {
- if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
- "builtin type %.200s has no __module__ attribute",
- spec->name))
- goto fail;
- }
+ s = strrchr(spec->name, '.');
+ if (s != NULL) {
+ int err;
+ modname = PyUnicode_FromStringAndSize(
+ spec->name, (Py_ssize_t)(s - spec->name));
+ if (modname == NULL) {
+ goto fail;
+ }
+ err = _PyDict_SetItemId(type->tp_dict, &PyId___module__, modname);
+ Py_DECREF(modname);
+ if (err != 0)
+ goto fail;
+ } else {
+ if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
+ "builtin type %.200s has no __module__ attribute",
+ spec->name))
+ goto fail;
+ }
}
return (PyObject*)res;
@@ -3119,18 +3119,18 @@ PyType_FromSpec(PyType_Spec *spec)
return PyType_FromSpecWithBases(spec, NULL);
}
-/* private in 3.10 and 3.9.8+; public in 3.11 */
-PyObject *
-_PyType_GetQualName(PyTypeObject *type)
-{
- return type_qualname(type, NULL);
-}
-
-
+/* private in 3.10 and 3.9.8+; public in 3.11 */
+PyObject *
+_PyType_GetQualName(PyTypeObject *type)
+{
+ return type_qualname(type, NULL);
+}
+
+
void *
PyType_GetSlot(PyTypeObject *type, int slot)
{
- if (!_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE) || slot < 0) {
+ if (!_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE) || slot < 0) {
PyErr_BadInternalCall();
return NULL;
}
@@ -3141,40 +3141,40 @@ PyType_GetSlot(PyTypeObject *type, int slot)
return *(void**)(((char*)type) + slotoffsets[slot]);
}
-PyObject *
-PyType_GetModule(PyTypeObject *type)
-{
- assert(PyType_Check(type));
- if (!_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE)) {
- PyErr_Format(
- PyExc_TypeError,
- "PyType_GetModule: Type '%s' is not a heap type",
- type->tp_name);
- return NULL;
- }
-
- PyHeapTypeObject* et = (PyHeapTypeObject*)type;
- if (!et->ht_module) {
- PyErr_Format(
- PyExc_TypeError,
- "PyType_GetModule: Type '%s' has no associated module",
- type->tp_name);
- return NULL;
- }
- return et->ht_module;
-
-}
-
-void *
-PyType_GetModuleState(PyTypeObject *type)
-{
- PyObject *m = PyType_GetModule(type);
- if (m == NULL) {
- return NULL;
- }
- return PyModule_GetState(m);
-}
-
+PyObject *
+PyType_GetModule(PyTypeObject *type)
+{
+ assert(PyType_Check(type));
+ if (!_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE)) {
+ PyErr_Format(
+ PyExc_TypeError,
+ "PyType_GetModule: Type '%s' is not a heap type",
+ type->tp_name);
+ return NULL;
+ }
+
+ PyHeapTypeObject* et = (PyHeapTypeObject*)type;
+ if (!et->ht_module) {
+ PyErr_Format(
+ PyExc_TypeError,
+ "PyType_GetModule: Type '%s' has no associated module",
+ type->tp_name);
+ return NULL;
+ }
+ return et->ht_module;
+
+}
+
+void *
+PyType_GetModuleState(PyTypeObject *type)
+{
+ PyObject *m = PyType_GetModule(type);
+ if (m == NULL) {
+ return NULL;
+ }
+ return PyModule_GetState(m);
+}
+
/* Internal API to look for a name through the MRO, bypassing the method cache.
This returns a borrowed reference, and might set an exception.
'error' is set to: -1: error with exception; 1: error without exception; 0: ok */
@@ -3245,11 +3245,11 @@ _PyType_Lookup(PyTypeObject *type, PyObject *name)
PyObject *res;
int error;
-#ifdef MCACHE
+#ifdef MCACHE
if (MCACHE_CACHEABLE_NAME(name) &&
- _PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG)) {
+ _PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG)) {
/* fast path */
- unsigned int h = MCACHE_HASH_METHOD(type, name);
+ unsigned int h = MCACHE_HASH_METHOD(type, name);
if (method_cache[h].version == type->tp_version_tag &&
method_cache[h].name == name) {
#if MCACHE_STATS
@@ -3258,7 +3258,7 @@ _PyType_Lookup(PyTypeObject *type, PyObject *name)
return method_cache[h].value;
}
}
-#endif
+#endif
/* We may end up clearing live exceptions below, so make sure it's ours. */
assert(!PyErr_Occurred());
@@ -3280,9 +3280,9 @@ _PyType_Lookup(PyTypeObject *type, PyObject *name)
return NULL;
}
-#ifdef MCACHE
+#ifdef MCACHE
if (MCACHE_CACHEABLE_NAME(name) && assign_version_tag(type)) {
- unsigned int h = MCACHE_HASH_METHOD(type, name);
+ unsigned int h = MCACHE_HASH_METHOD(type, name);
method_cache[h].version = type->tp_version_tag;
method_cache[h].value = res; /* borrowed */
Py_INCREF(name);
@@ -3295,7 +3295,7 @@ _PyType_Lookup(PyTypeObject *type, PyObject *name)
#endif
Py_SETREF(method_cache[h].name, name);
}
-#endif
+#endif
return res;
}
@@ -3309,24 +3309,24 @@ _PyType_LookupId(PyTypeObject *type, struct _Py_Identifier *name)
return _PyType_Lookup(type, oname);
}
-/* Check if the "readied" PyUnicode name
- is a double-underscore special name. */
-static int
-is_dunder_name(PyObject *name)
-{
- Py_ssize_t length = PyUnicode_GET_LENGTH(name);
- int kind = PyUnicode_KIND(name);
- /* Special names contain at least "__x__" and are always ASCII. */
- if (length > 4 && kind == PyUnicode_1BYTE_KIND) {
- const Py_UCS1 *characters = PyUnicode_1BYTE_DATA(name);
- return (
- ((characters[length-2] == '_') && (characters[length-1] == '_')) &&
- ((characters[0] == '_') && (characters[1] == '_'))
- );
- }
- return 0;
-}
-
+/* Check if the "readied" PyUnicode name
+ is a double-underscore special name. */
+static int
+is_dunder_name(PyObject *name)
+{
+ Py_ssize_t length = PyUnicode_GET_LENGTH(name);
+ int kind = PyUnicode_KIND(name);
+ /* Special names contain at least "__x__" and are always ASCII. */
+ if (length > 4 && kind == PyUnicode_1BYTE_KIND) {
+ const Py_UCS1 *characters = PyUnicode_1BYTE_DATA(name);
+ return (
+ ((characters[length-2] == '_') && (characters[length-1] == '_')) &&
+ ((characters[0] == '_') && (characters[1] == '_'))
+ );
+ }
+ return 0;
+}
+
/* This is similar to PyObject_GenericGetAttr(),
but uses _PyType_Lookup() instead of just looking in type->tp_dict. */
static PyObject *
@@ -3340,7 +3340,7 @@ type_getattro(PyTypeObject *type, PyObject *name)
if (!PyUnicode_Check(name)) {
PyErr_Format(PyExc_TypeError,
"attribute name must be string, not '%.200s'",
- Py_TYPE(name)->tp_name);
+ Py_TYPE(name)->tp_name);
return NULL;
}
@@ -3438,17 +3438,17 @@ type_setattro(PyTypeObject *type, PyObject *name, PyObject *value)
if (name == NULL)
return -1;
}
-#ifdef INTERN_NAME_STRINGS
+#ifdef INTERN_NAME_STRINGS
if (!PyUnicode_CHECK_INTERNED(name)) {
- PyUnicode_InternInPlace(&name);
- if (!PyUnicode_CHECK_INTERNED(name)) {
- PyErr_SetString(PyExc_MemoryError,
- "Out of memory interning an attribute name");
- Py_DECREF(name);
- return -1;
- }
+ PyUnicode_InternInPlace(&name);
+ if (!PyUnicode_CHECK_INTERNED(name)) {
+ PyErr_SetString(PyExc_MemoryError,
+ "Out of memory interning an attribute name");
+ Py_DECREF(name);
+ return -1;
+ }
}
-#endif
+#endif
}
else {
/* Will fail in _PyObject_GenericSetAttrWithDict. */
@@ -3456,16 +3456,16 @@ type_setattro(PyTypeObject *type, PyObject *name, PyObject *value)
}
res = _PyObject_GenericSetAttrWithDict((PyObject *)type, name, value, NULL);
if (res == 0) {
- /* Clear the VALID_VERSION flag of 'type' and all its
- subclasses. This could possibly be unified with the
- update_subclasses() recursion in update_slot(), but carefully:
- they each have their own conditions on which to stop
- recursing into subclasses. */
- PyType_Modified(type);
-
- if (is_dunder_name(name)) {
- res = update_slot(type, name);
- }
+ /* Clear the VALID_VERSION flag of 'type' and all its
+ subclasses. This could possibly be unified with the
+ update_subclasses() recursion in update_slot(), but carefully:
+ they each have their own conditions on which to stop
+ recursing into subclasses. */
+ PyType_Modified(type);
+
+ if (is_dunder_name(name)) {
+ res = update_slot(type, name);
+ }
assert(_PyType_CheckConsistency(type));
}
Py_DECREF(name);
@@ -3482,7 +3482,7 @@ type_dealloc(PyTypeObject *type)
PyObject *tp, *val, *tb;
/* Assert this is a heap-allocated type object */
- _PyObject_ASSERT((PyObject *)type, type->tp_flags & Py_TPFLAGS_HEAPTYPE);
+ _PyObject_ASSERT((PyObject *)type, type->tp_flags & Py_TPFLAGS_HEAPTYPE);
_PyObject_GC_UNTRACK(type);
PyErr_Fetch(&tp, &val, &tb);
remove_all_subclasses(type, type->tp_bases);
@@ -3502,10 +3502,10 @@ type_dealloc(PyTypeObject *type)
Py_XDECREF(et->ht_name);
Py_XDECREF(et->ht_qualname);
Py_XDECREF(et->ht_slots);
- if (et->ht_cached_keys) {
+ if (et->ht_cached_keys) {
_PyDictKeys_DecRef(et->ht_cached_keys);
- }
- Py_XDECREF(et->ht_module);
+ }
+ Py_XDECREF(et->ht_module);
Py_TYPE(type)->tp_free((PyObject *)type);
}
@@ -3569,10 +3569,10 @@ merge_class_dict(PyObject *dict, PyObject *aclass)
assert(aclass);
/* Merge in the type's dict (if any). */
- if (_PyObject_LookupAttrId(aclass, &PyId___dict__, &classdict) < 0) {
- return -1;
- }
- if (classdict != NULL) {
+ if (_PyObject_LookupAttrId(aclass, &PyId___dict__, &classdict) < 0) {
+ return -1;
+ }
+ if (classdict != NULL) {
int status = PyDict_Update(dict, classdict);
Py_DECREF(classdict);
if (status < 0)
@@ -3580,17 +3580,17 @@ merge_class_dict(PyObject *dict, PyObject *aclass)
}
/* Recursively merge in the base types' (if any) dicts. */
- if (_PyObject_LookupAttrId(aclass, &PyId___bases__, &bases) < 0) {
- return -1;
- }
- if (bases != NULL) {
+ if (_PyObject_LookupAttrId(aclass, &PyId___bases__, &bases) < 0) {
+ return -1;
+ }
+ if (bases != NULL) {
/* We have no guarantee that bases is a real tuple */
Py_ssize_t i, n;
n = PySequence_Size(bases); /* This better be right */
- if (n < 0) {
- Py_DECREF(bases);
- return -1;
- }
+ if (n < 0) {
+ Py_DECREF(bases);
+ return -1;
+ }
else {
for (i = 0; i < n; i++) {
int status;
@@ -3661,7 +3661,7 @@ type___sizeof___impl(PyTypeObject *self)
static PyMethodDef type_methods[] = {
TYPE_MRO_METHODDEF
TYPE___SUBCLASSES___METHODDEF
- {"__prepare__", (PyCFunction)(void(*)(void))type_prepare,
+ {"__prepare__", (PyCFunction)(void(*)(void))type_prepare,
METH_FASTCALL | METH_KEYWORDS | METH_CLASS,
PyDoc_STR("__prepare__() -> dict\n"
"used to create the namespace for the class statement")},
@@ -3674,7 +3674,7 @@ static PyMethodDef type_methods[] = {
PyDoc_STRVAR(type_doc,
"type(object) -> the object's type\n"
-"type(name, bases, dict, **kwds) -> a new type");
+"type(name, bases, dict, **kwds) -> a new type");
static int
type_traverse(PyTypeObject *type, visitproc visit, void *arg)
@@ -3683,9 +3683,9 @@ type_traverse(PyTypeObject *type, visitproc visit, void *arg)
for heaptypes. */
if (!(type->tp_flags & Py_TPFLAGS_HEAPTYPE)) {
char msg[200];
- sprintf(msg, "type_traverse() called on non-heap type '%.100s'",
+ sprintf(msg, "type_traverse() called on non-heap type '%.100s'",
type->tp_name);
- _PyObject_ASSERT_FAILED_MSG((PyObject *)type, msg);
+ _PyObject_ASSERT_FAILED_MSG((PyObject *)type, msg);
}
Py_VISIT(type->tp_dict);
@@ -3693,7 +3693,7 @@ type_traverse(PyTypeObject *type, visitproc visit, void *arg)
Py_VISIT(type->tp_mro);
Py_VISIT(type->tp_bases);
Py_VISIT(type->tp_base);
- Py_VISIT(((PyHeapTypeObject *)type)->ht_module);
+ Py_VISIT(((PyHeapTypeObject *)type)->ht_module);
/* There's no need to visit type->tp_subclasses or
((PyHeapTypeObject *)type)->ht_slots, because they can't be involved
@@ -3709,19 +3709,19 @@ type_clear(PyTypeObject *type)
PyDictKeysObject *cached_keys;
/* Because of type_is_gc(), the collector only calls this
for heaptypes. */
- _PyObject_ASSERT((PyObject *)type, type->tp_flags & Py_TPFLAGS_HEAPTYPE);
+ _PyObject_ASSERT((PyObject *)type, type->tp_flags & Py_TPFLAGS_HEAPTYPE);
/* We need to invalidate the method cache carefully before clearing
the dict, so that other objects caught in a reference cycle
don't start calling destroyed methods.
- Otherwise, the we need to clear tp_mro, which is
+ Otherwise, the we need to clear tp_mro, which is
part of a hard cycle (its first element is the class itself) that
won't be broken otherwise (it's a tuple and tuples don't have a
- tp_clear handler).
- We also need to clear ht_module, if present: the module usually holds a
- reference to its class. None of the other fields need to be
-
+ tp_clear handler).
+ We also need to clear ht_module, if present: the module usually holds a
+ reference to its class. None of the other fields need to be
+
cleared, and here's why:
tp_cache:
@@ -3746,11 +3746,11 @@ type_clear(PyTypeObject *type)
((PyHeapTypeObject *)type)->ht_cached_keys = NULL;
_PyDictKeys_DecRef(cached_keys);
}
- if (type->tp_dict) {
+ if (type->tp_dict) {
PyDict_Clear(type->tp_dict);
- }
- Py_CLEAR(((PyHeapTypeObject *)type)->ht_module);
-
+ }
+ Py_CLEAR(((PyHeapTypeObject *)type)->ht_module);
+
Py_CLEAR(type->tp_mro);
return 0;
@@ -3768,10 +3768,10 @@ PyTypeObject PyType_Type = {
sizeof(PyHeapTypeObject), /* tp_basicsize */
sizeof(PyMemberDef), /* tp_itemsize */
(destructor)type_dealloc, /* tp_dealloc */
- offsetof(PyTypeObject, tp_vectorcall), /* tp_vectorcall_offset */
+ offsetof(PyTypeObject, tp_vectorcall), /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)type_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -3783,8 +3783,8 @@ PyTypeObject PyType_Type = {
(setattrofunc)type_setattro, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_BASETYPE | Py_TPFLAGS_TYPE_SUBCLASS |
- Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
+ Py_TPFLAGS_BASETYPE | Py_TPFLAGS_TYPE_SUBCLASS |
+ Py_TPFLAGS_HAVE_VECTORCALL, /* tp_flags */
type_doc, /* tp_doc */
(traverseproc)type_traverse, /* tp_traverse */
(inquiry)type_clear, /* tp_clear */
@@ -3898,46 +3898,46 @@ object_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
}
if (type->tp_flags & Py_TPFLAGS_IS_ABSTRACT) {
- PyObject *abstract_methods;
- PyObject *sorted_methods;
- PyObject *joined;
+ PyObject *abstract_methods;
+ PyObject *sorted_methods;
+ PyObject *joined;
PyObject *comma;
_Py_static_string(comma_id, ", ");
- Py_ssize_t method_count;
+ Py_ssize_t method_count;
/* Compute ", ".join(sorted(type.__abstractmethods__))
into joined. */
abstract_methods = type_abstractmethods(type, NULL);
if (abstract_methods == NULL)
- return NULL;
- sorted_methods = PySequence_List(abstract_methods);
- Py_DECREF(abstract_methods);
+ return NULL;
+ sorted_methods = PySequence_List(abstract_methods);
+ Py_DECREF(abstract_methods);
if (sorted_methods == NULL)
- return NULL;
- if (PyList_Sort(sorted_methods)) {
- Py_DECREF(sorted_methods);
- return NULL;
- }
+ return NULL;
+ if (PyList_Sort(sorted_methods)) {
+ Py_DECREF(sorted_methods);
+ return NULL;
+ }
comma = _PyUnicode_FromId(&comma_id);
- if (comma == NULL) {
- Py_DECREF(sorted_methods);
- return NULL;
- }
+ if (comma == NULL) {
+ Py_DECREF(sorted_methods);
+ return NULL;
+ }
joined = PyUnicode_Join(comma, sorted_methods);
- method_count = PyObject_Length(sorted_methods);
- Py_DECREF(sorted_methods);
+ method_count = PyObject_Length(sorted_methods);
+ Py_DECREF(sorted_methods);
if (joined == NULL)
- return NULL;
- if (method_count == -1)
- return NULL;
+ return NULL;
+ if (method_count == -1)
+ return NULL;
PyErr_Format(PyExc_TypeError,
"Can't instantiate abstract class %s "
- "with abstract method%s %U",
+ "with abstract method%s %U",
type->tp_name,
- method_count > 1 ? "s" : "",
+ method_count > 1 ? "s" : "",
joined);
- Py_DECREF(joined);
+ Py_DECREF(joined);
return NULL;
}
return type->tp_alloc(type, 0);
@@ -4007,12 +4007,12 @@ object_richcompare(PyObject *self, PyObject *other, int op)
case Py_NE:
/* By default, __ne__() delegates to __eq__() and inverts the result,
unless the latter returns NotImplemented. */
- if (Py_TYPE(self)->tp_richcompare == NULL) {
+ if (Py_TYPE(self)->tp_richcompare == NULL) {
res = Py_NotImplemented;
Py_INCREF(res);
break;
}
- res = (*Py_TYPE(self)->tp_richcompare)(self, other, Py_EQ);
+ res = (*Py_TYPE(self)->tp_richcompare)(self, other, Py_EQ);
if (res != NULL && res != Py_NotImplemented) {
int ok = PyObject_IsTrue(res);
Py_DECREF(res);
@@ -4150,11 +4150,11 @@ object_set_class(PyObject *self, PyObject *value, void *closure)
Py_TYPE(value)->tp_name);
return -1;
}
- if (PySys_Audit("object.__setattr__", "OsO",
- self, "__class__", value) < 0) {
- return -1;
- }
-
+ if (PySys_Audit("object.__setattr__", "OsO",
+ self, "__class__", value) < 0) {
+ return -1;
+ }
+
newto = (PyTypeObject *)value;
/* In versions of CPython prior to 3.5, the code in
compatible_for_assignment was not set up to correctly check for memory
@@ -4216,10 +4216,10 @@ object_set_class(PyObject *self, PyObject *value, void *closure)
}
if (compatible_for_assignment(oldto, newto, "__class__")) {
- if (newto->tp_flags & Py_TPFLAGS_HEAPTYPE) {
+ if (newto->tp_flags & Py_TPFLAGS_HEAPTYPE) {
Py_INCREF(newto);
- }
- Py_SET_TYPE(self, newto);
+ }
+ Py_SET_TYPE(self, newto);
if (oldto->tp_flags & Py_TPFLAGS_HEAPTYPE)
Py_DECREF(oldto);
return 0;
@@ -4306,8 +4306,8 @@ _PyType_GetSlotNames(PyTypeObject *cls)
/* Use _slotnames function from the copyreg module to find the slots
by this class and its bases. This function will cache the result
in __slotnames__. */
- slotnames = _PyObject_CallMethodIdOneArg(copyreg, &PyId__slotnames,
- (PyObject *)cls);
+ slotnames = _PyObject_CallMethodIdOneArg(copyreg, &PyId__slotnames,
+ (PyObject *)cls);
Py_DECREF(copyreg);
if (slotnames == NULL)
return NULL;
@@ -4335,9 +4335,9 @@ _PyObject_GetState(PyObject *obj, int required)
if (getstate == NULL) {
PyObject *slotnames;
- if (required && Py_TYPE(obj)->tp_itemsize) {
+ if (required && Py_TYPE(obj)->tp_itemsize) {
PyErr_Format(PyExc_TypeError,
- "cannot pickle '%.200s' object",
+ "cannot pickle '%.200s' object",
Py_TYPE(obj)->tp_name);
return NULL;
}
@@ -4368,17 +4368,17 @@ _PyObject_GetState(PyObject *obj, int required)
assert(slotnames == Py_None || PyList_Check(slotnames));
if (required) {
Py_ssize_t basicsize = PyBaseObject_Type.tp_basicsize;
- if (Py_TYPE(obj)->tp_dictoffset)
+ if (Py_TYPE(obj)->tp_dictoffset)
basicsize += sizeof(PyObject *);
- if (Py_TYPE(obj)->tp_weaklistoffset)
+ if (Py_TYPE(obj)->tp_weaklistoffset)
basicsize += sizeof(PyObject *);
if (slotnames != Py_None)
basicsize += sizeof(PyObject *) * PyList_GET_SIZE(slotnames);
- if (Py_TYPE(obj)->tp_basicsize > basicsize) {
+ if (Py_TYPE(obj)->tp_basicsize > basicsize) {
Py_DECREF(slotnames);
Py_DECREF(state);
PyErr_Format(PyExc_TypeError,
- "cannot pickle '%.200s' object",
+ "cannot pickle '%.200s' object",
Py_TYPE(obj)->tp_name);
return NULL;
}
@@ -4586,7 +4586,7 @@ _PyObject_GetItemsIter(PyObject *obj, PyObject **listitems,
PyObject *items;
_Py_IDENTIFIER(items);
- items = _PyObject_CallMethodIdNoArgs(obj, &PyId_items);
+ items = _PyObject_CallMethodIdNoArgs(obj, &PyId_items);
if (items == NULL) {
Py_CLEAR(*listitems);
return -1;
@@ -4615,7 +4615,7 @@ reduce_newobj(PyObject *obj)
if (Py_TYPE(obj)->tp_new == NULL) {
PyErr_Format(PyExc_TypeError,
- "cannot pickle '%.200s' object",
+ "cannot pickle '%.200s' object",
Py_TYPE(obj)->tp_name);
return NULL;
}
@@ -4774,10 +4774,10 @@ object___reduce_ex___impl(PyObject *self, int protocol)
&PyId___reduce__);
}
- if (_PyObject_LookupAttrId(self, &PyId___reduce__, &reduce) < 0) {
- return NULL;
- }
- if (reduce != NULL) {
+ if (_PyObject_LookupAttrId(self, &PyId___reduce__, &reduce) < 0) {
+ return NULL;
+ }
+ if (reduce != NULL) {
PyObject *cls, *clsreduce;
int override;
@@ -4845,7 +4845,7 @@ object___format___impl(PyObject *self, PyObject *format_spec)
if (PyUnicode_GET_LENGTH(format_spec) > 0) {
PyErr_Format(PyExc_TypeError,
"unsupported format string passed to %.200s.__format__",
- Py_TYPE(self)->tp_name);
+ Py_TYPE(self)->tp_name);
return NULL;
}
return PyObject_Str(self);
@@ -4864,10 +4864,10 @@ object___sizeof___impl(PyObject *self)
Py_ssize_t res, isize;
res = 0;
- isize = Py_TYPE(self)->tp_itemsize;
+ isize = Py_TYPE(self)->tp_itemsize;
if (isize > 0)
res = Py_SIZE(self) * isize;
- res += Py_TYPE(self)->tp_basicsize;
+ res += Py_TYPE(self)->tp_basicsize;
return PyLong_FromSsize_t(res);
}
@@ -4890,9 +4890,9 @@ object___dir___impl(PyObject *self)
PyObject *itsclass = NULL;
/* Get __dict__ (which may or may not be a real dict...) */
- if (_PyObject_LookupAttrId(self, &PyId___dict__, &dict) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(self, &PyId___dict__, &dict) < 0) {
+ return NULL;
+ }
if (dict == NULL) {
dict = PyDict_New();
}
@@ -4911,13 +4911,13 @@ object___dir___impl(PyObject *self)
goto error;
/* Merge in attrs reachable from its class. */
- if (_PyObject_LookupAttrId(self, &PyId___class__, &itsclass) < 0) {
+ if (_PyObject_LookupAttrId(self, &PyId___class__, &itsclass) < 0) {
+ goto error;
+ }
+ /* XXX(tomer): Perhaps fall back to Py_TYPE(obj) if no
+ __class__ exists? */
+ if (itsclass != NULL && merge_class_dict(dict, itsclass) < 0)
goto error;
- }
- /* XXX(tomer): Perhaps fall back to Py_TYPE(obj) if no
- __class__ exists? */
- if (itsclass != NULL && merge_class_dict(dict, itsclass) < 0)
- goto error;
result = PyDict_Keys(dict);
/* fall through */
@@ -4940,11 +4940,11 @@ static PyMethodDef object_methods[] = {
{0}
};
-PyDoc_STRVAR(object_doc,
-"object()\n--\n\n"
-"The base class of the class hierarchy.\n\n"
-"When called, it accepts no arguments and returns a new featureless\n"
-"instance that has no instance attributes and cannot be given any.\n");
+PyDoc_STRVAR(object_doc,
+"object()\n--\n\n"
+"The base class of the class hierarchy.\n\n"
+"When called, it accepts no arguments and returns a new featureless\n"
+"instance that has no instance attributes and cannot be given any.\n");
PyTypeObject PyBaseObject_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
@@ -4952,10 +4952,10 @@ PyTypeObject PyBaseObject_Type = {
sizeof(PyObject), /* tp_basicsize */
0, /* tp_itemsize */
object_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
object_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -4967,7 +4967,7 @@ PyTypeObject PyBaseObject_Type = {
PyObject_GenericSetAttr, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- object_doc, /* tp_doc */
+ object_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
object_richcompare, /* tp_richcompare */
@@ -4995,7 +4995,7 @@ static int
add_methods(PyTypeObject *type, PyMethodDef *meth)
{
PyObject *dict = type->tp_dict;
- PyObject *name;
+ PyObject *name;
for (; meth->ml_name != NULL; meth++) {
PyObject *descr;
@@ -5010,7 +5010,7 @@ add_methods(PyTypeObject *type, PyMethodDef *meth)
descr = PyDescr_NewClassMethod(type, meth);
}
else if (meth->ml_flags & METH_STATIC) {
- PyObject *cfunc = PyCFunction_NewEx(meth, (PyObject*)type, NULL);
+ PyObject *cfunc = PyCFunction_NewEx(meth, (PyObject*)type, NULL);
if (cfunc == NULL)
return -1;
descr = PyStaticMethod_New(cfunc);
@@ -5022,37 +5022,37 @@ add_methods(PyTypeObject *type, PyMethodDef *meth)
}
if (descr == NULL)
return -1;
-
+
if (isdescr) {
- name = PyDescr_NAME(descr);
+ name = PyDescr_NAME(descr);
}
else {
- name = PyUnicode_FromString(meth->ml_name);
- if (name == NULL) {
- Py_DECREF(descr);
- return -1;
- }
- }
-
- if (!(meth->ml_flags & METH_COEXIST)) {
- if (PyDict_GetItemWithError(dict, name)) {
- if (!isdescr) {
- Py_DECREF(name);
- }
- Py_DECREF(descr);
- continue;
- }
- else if (PyErr_Occurred()) {
- if (!isdescr) {
- Py_DECREF(name);
- }
- return -1;
- }
- }
- err = PyDict_SetItem(dict, name, descr);
- if (!isdescr) {
- Py_DECREF(name);
- }
+ name = PyUnicode_FromString(meth->ml_name);
+ if (name == NULL) {
+ Py_DECREF(descr);
+ return -1;
+ }
+ }
+
+ if (!(meth->ml_flags & METH_COEXIST)) {
+ if (PyDict_GetItemWithError(dict, name)) {
+ if (!isdescr) {
+ Py_DECREF(name);
+ }
+ Py_DECREF(descr);
+ continue;
+ }
+ else if (PyErr_Occurred()) {
+ if (!isdescr) {
+ Py_DECREF(name);
+ }
+ return -1;
+ }
+ }
+ err = PyDict_SetItem(dict, name, descr);
+ if (!isdescr) {
+ Py_DECREF(name);
+ }
Py_DECREF(descr);
if (err < 0)
return -1;
@@ -5066,18 +5066,18 @@ add_members(PyTypeObject *type, PyMemberDef *memb)
PyObject *dict = type->tp_dict;
for (; memb->name != NULL; memb++) {
- PyObject *descr = PyDescr_NewMember(type, memb);
+ PyObject *descr = PyDescr_NewMember(type, memb);
if (descr == NULL)
return -1;
-
- if (PyDict_GetItemWithError(dict, PyDescr_NAME(descr))) {
- Py_DECREF(descr);
- continue;
- }
- else if (PyErr_Occurred()) {
- Py_DECREF(descr);
- return -1;
- }
+
+ if (PyDict_GetItemWithError(dict, PyDescr_NAME(descr))) {
+ Py_DECREF(descr);
+ continue;
+ }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(descr);
+ return -1;
+ }
if (PyDict_SetItem(dict, PyDescr_NAME(descr), descr) < 0) {
Py_DECREF(descr);
return -1;
@@ -5093,18 +5093,18 @@ add_getset(PyTypeObject *type, PyGetSetDef *gsp)
PyObject *dict = type->tp_dict;
for (; gsp->name != NULL; gsp++) {
- PyObject *descr = PyDescr_NewGetSet(type, gsp);
+ PyObject *descr = PyDescr_NewGetSet(type, gsp);
if (descr == NULL)
return -1;
-
- if (PyDict_GetItemWithError(dict, PyDescr_NAME(descr))) {
- Py_DECREF(descr);
- continue;
- }
- else if (PyErr_Occurred()) {
- Py_DECREF(descr);
- return -1;
- }
+
+ if (PyDict_GetItemWithError(dict, PyDescr_NAME(descr))) {
+ Py_DECREF(descr);
+ continue;
+ }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(descr);
+ return -1;
+ }
if (PyDict_SetItem(dict, PyDescr_NAME(descr), descr) < 0) {
Py_DECREF(descr);
return -1;
@@ -5118,7 +5118,7 @@ static void
inherit_special(PyTypeObject *type, PyTypeObject *base)
{
- /* Copying tp_traverse and tp_clear is connected to the GC flags */
+ /* Copying tp_traverse and tp_clear is connected to the GC flags */
if (!(type->tp_flags & Py_TPFLAGS_HAVE_GC) &&
(base->tp_flags & Py_TPFLAGS_HAVE_GC) &&
(!type->tp_traverse && !type->tp_clear)) {
@@ -5313,22 +5313,22 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
}
COPYSLOT(tp_repr);
/* tp_hash see tp_richcompare */
- {
- /* Always inherit tp_vectorcall_offset to support PyVectorcall_Call().
- * If Py_TPFLAGS_HAVE_VECTORCALL is not inherited, then vectorcall
- * won't be used automatically. */
- COPYSLOT(tp_vectorcall_offset);
-
- /* Inherit Py_TPFLAGS_HAVE_VECTORCALL for non-heap types
- * if tp_call is not overridden */
- if (!type->tp_call &&
- (base->tp_flags & Py_TPFLAGS_HAVE_VECTORCALL) &&
- !(type->tp_flags & Py_TPFLAGS_HEAPTYPE))
- {
- type->tp_flags |= Py_TPFLAGS_HAVE_VECTORCALL;
- }
- COPYSLOT(tp_call);
- }
+ {
+ /* Always inherit tp_vectorcall_offset to support PyVectorcall_Call().
+ * If Py_TPFLAGS_HAVE_VECTORCALL is not inherited, then vectorcall
+ * won't be used automatically. */
+ COPYSLOT(tp_vectorcall_offset);
+
+ /* Inherit Py_TPFLAGS_HAVE_VECTORCALL for non-heap types
+ * if tp_call is not overridden */
+ if (!type->tp_call &&
+ (base->tp_flags & Py_TPFLAGS_HAVE_VECTORCALL) &&
+ !(type->tp_flags & Py_TPFLAGS_HEAPTYPE))
+ {
+ type->tp_flags |= Py_TPFLAGS_HAVE_VECTORCALL;
+ }
+ COPYSLOT(tp_call);
+ }
COPYSLOT(tp_str);
{
/* Copy comparison-related slots only when
@@ -5347,21 +5347,21 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
}
{
COPYSLOT(tp_descr_get);
- /* Inherit Py_TPFLAGS_METHOD_DESCRIPTOR if tp_descr_get was inherited,
- * but only for extension types */
- if (base->tp_descr_get &&
- type->tp_descr_get == base->tp_descr_get &&
- !(type->tp_flags & Py_TPFLAGS_HEAPTYPE) &&
- (base->tp_flags & Py_TPFLAGS_METHOD_DESCRIPTOR))
- {
- type->tp_flags |= Py_TPFLAGS_METHOD_DESCRIPTOR;
- }
+ /* Inherit Py_TPFLAGS_METHOD_DESCRIPTOR if tp_descr_get was inherited,
+ * but only for extension types */
+ if (base->tp_descr_get &&
+ type->tp_descr_get == base->tp_descr_get &&
+ !(type->tp_flags & Py_TPFLAGS_HEAPTYPE) &&
+ (base->tp_flags & Py_TPFLAGS_METHOD_DESCRIPTOR))
+ {
+ type->tp_flags |= Py_TPFLAGS_METHOD_DESCRIPTOR;
+ }
COPYSLOT(tp_descr_set);
COPYSLOT(tp_dictoffset);
COPYSLOT(tp_init);
COPYSLOT(tp_alloc);
COPYSLOT(tp_is_gc);
- COPYSLOT(tp_finalize);
+ COPYSLOT(tp_finalize);
if ((type->tp_flags & Py_TPFLAGS_HAVE_GC) ==
(base->tp_flags & Py_TPFLAGS_HAVE_GC)) {
/* They agree about gc. */
@@ -5396,23 +5396,23 @@ PyType_Ready(PyTypeObject *type)
assert(_PyType_CheckConsistency(type));
return 0;
}
- _PyObject_ASSERT((PyObject *)type,
- (type->tp_flags & Py_TPFLAGS_READYING) == 0);
-
- /* Consistency checks for PEP 590:
- * - Py_TPFLAGS_METHOD_DESCRIPTOR requires tp_descr_get
- * - Py_TPFLAGS_HAVE_VECTORCALL requires tp_call and
- * tp_vectorcall_offset > 0
- * To avoid mistakes, we require this before inheriting.
- */
- if (type->tp_flags & Py_TPFLAGS_METHOD_DESCRIPTOR) {
- _PyObject_ASSERT((PyObject *)type, type->tp_descr_get != NULL);
- }
- if (type->tp_flags & Py_TPFLAGS_HAVE_VECTORCALL) {
- _PyObject_ASSERT((PyObject *)type, type->tp_vectorcall_offset > 0);
- _PyObject_ASSERT((PyObject *)type, type->tp_call != NULL);
- }
-
+ _PyObject_ASSERT((PyObject *)type,
+ (type->tp_flags & Py_TPFLAGS_READYING) == 0);
+
+ /* Consistency checks for PEP 590:
+ * - Py_TPFLAGS_METHOD_DESCRIPTOR requires tp_descr_get
+ * - Py_TPFLAGS_HAVE_VECTORCALL requires tp_call and
+ * tp_vectorcall_offset > 0
+ * To avoid mistakes, we require this before inheriting.
+ */
+ if (type->tp_flags & Py_TPFLAGS_METHOD_DESCRIPTOR) {
+ _PyObject_ASSERT((PyObject *)type, type->tp_descr_get != NULL);
+ }
+ if (type->tp_flags & Py_TPFLAGS_HAVE_VECTORCALL) {
+ _PyObject_ASSERT((PyObject *)type, type->tp_vectorcall_offset > 0);
+ _PyObject_ASSERT((PyObject *)type, type->tp_call != NULL);
+ }
+
type->tp_flags |= Py_TPFLAGS_READYING;
#ifdef Py_TRACE_REFS
@@ -5454,9 +5454,9 @@ PyType_Ready(PyTypeObject *type)
NULL when type is &PyBaseObject_Type, and we know its ob_type is
not NULL (it's initialized to &PyType_Type). But coverity doesn't
know that. */
- if (Py_IS_TYPE(type, NULL) && base != NULL) {
- Py_SET_TYPE(type, Py_TYPE(base));
- }
+ if (Py_IS_TYPE(type, NULL) && base != NULL) {
+ Py_SET_TYPE(type, Py_TYPE(base));
+ }
/* Initialize tp_bases */
bases = type->tp_bases;
@@ -5529,7 +5529,7 @@ PyType_Ready(PyTypeObject *type)
}
/* Sanity check for tp_free. */
- if (_PyType_IS_GC(type) && (type->tp_flags & Py_TPFLAGS_BASETYPE) &&
+ if (_PyType_IS_GC(type) && (type->tp_flags & Py_TPFLAGS_BASETYPE) &&
(type->tp_free == NULL || type->tp_free == PyObject_Del)) {
/* This base class needs to call tp_free, but doesn't have
* one, or its tp_free is for non-gc'ed objects.
@@ -5544,10 +5544,10 @@ PyType_Ready(PyTypeObject *type)
/* if the type dictionary doesn't contain a __doc__, set it from
the tp_doc slot.
*/
- if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___doc__) == NULL) {
- if (PyErr_Occurred()) {
- goto error;
- }
+ if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___doc__) == NULL) {
+ if (PyErr_Occurred()) {
+ goto error;
+ }
if (type->tp_doc != NULL) {
const char *old_doc = _PyType_DocWithoutSignature(type->tp_name,
type->tp_doc);
@@ -5573,12 +5573,12 @@ PyType_Ready(PyTypeObject *type)
This signals that __hash__ is not inherited.
*/
if (type->tp_hash == NULL) {
- if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___hash__) == NULL) {
- if (PyErr_Occurred() ||
- _PyDict_SetItemId(type->tp_dict, &PyId___hash__, Py_None) < 0)
- {
+ if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___hash__) == NULL) {
+ if (PyErr_Occurred() ||
+ _PyDict_SetItemId(type->tp_dict, &PyId___hash__, Py_None) < 0)
+ {
goto error;
- }
+ }
type->tp_hash = PyObject_HashNotImplemented;
}
}
@@ -5707,7 +5707,7 @@ check_num_args(PyObject *ob, int n)
return 1;
PyErr_Format(
PyExc_TypeError,
- "expected %d argument%s, got %zd", n, n == 1 ? "" : "s", PyTuple_GET_SIZE(ob));
+ "expected %d argument%s, got %zd", n, n == 1 ? "" : "s", PyTuple_GET_SIZE(ob));
return 0;
}
@@ -5730,7 +5730,7 @@ wrap_lenfunc(PyObject *self, PyObject *args, void *wrapped)
res = (*func)(self);
if (res == -1 && PyErr_Occurred())
return NULL;
- return PyLong_FromSsize_t(res);
+ return PyLong_FromSsize_t(res);
}
static PyObject *
@@ -5966,51 +5966,51 @@ wrap_delitem(PyObject *self, PyObject *args, void *wrapped)
}
/* Helper to check for object.__setattr__ or __delattr__ applied to a type.
- This is called the Carlo Verre hack after its discoverer. See
- https://mail.python.org/pipermail/python-dev/2003-April/034535.html
- */
+ This is called the Carlo Verre hack after its discoverer. See
+ https://mail.python.org/pipermail/python-dev/2003-April/034535.html
+ */
static int
hackcheck(PyObject *self, setattrofunc func, const char *what)
{
PyTypeObject *type = Py_TYPE(self);
- PyObject *mro = type->tp_mro;
- if (!mro) {
- /* Probably ok not to check the call in this case. */
- return 1;
- }
- assert(PyTuple_Check(mro));
-
- /* Find the (base) type that defined the type's slot function. */
- PyTypeObject *defining_type = type;
- Py_ssize_t i;
- for (i = PyTuple_GET_SIZE(mro) - 1; i >= 0; i--) {
- PyTypeObject *base = (PyTypeObject*) PyTuple_GET_ITEM(mro, i);
- if (base->tp_setattro == slot_tp_setattro) {
- /* Ignore Python classes:
- they never define their own C-level setattro. */
- }
- else if (base->tp_setattro == type->tp_setattro) {
- defining_type = base;
- break;
- }
- }
-
- /* Reject calls that jump over intermediate C-level overrides. */
- for (PyTypeObject *base = defining_type; base; base = base->tp_base) {
- if (base->tp_setattro == func) {
- /* 'func' is the right slot function to call. */
- break;
- }
- else if (base->tp_setattro != slot_tp_setattro) {
- /* 'base' is not a Python class and overrides 'func'.
- Its tp_setattro should be called instead. */
- PyErr_Format(PyExc_TypeError,
- "can't apply this %s to %s object",
- what,
- type->tp_name);
- return 0;
- }
- }
+ PyObject *mro = type->tp_mro;
+ if (!mro) {
+ /* Probably ok not to check the call in this case. */
+ return 1;
+ }
+ assert(PyTuple_Check(mro));
+
+ /* Find the (base) type that defined the type's slot function. */
+ PyTypeObject *defining_type = type;
+ Py_ssize_t i;
+ for (i = PyTuple_GET_SIZE(mro) - 1; i >= 0; i--) {
+ PyTypeObject *base = (PyTypeObject*) PyTuple_GET_ITEM(mro, i);
+ if (base->tp_setattro == slot_tp_setattro) {
+ /* Ignore Python classes:
+ they never define their own C-level setattro. */
+ }
+ else if (base->tp_setattro == type->tp_setattro) {
+ defining_type = base;
+ break;
+ }
+ }
+
+ /* Reject calls that jump over intermediate C-level overrides. */
+ for (PyTypeObject *base = defining_type; base; base = base->tp_base) {
+ if (base->tp_setattro == func) {
+ /* 'func' is the right slot function to call. */
+ break;
+ }
+ else if (base->tp_setattro != slot_tp_setattro) {
+ /* 'base' is not a Python class and overrides 'func'.
+ Its tp_setattro should be called instead. */
+ PyErr_Format(PyExc_TypeError,
+ "can't apply this %s to %s object",
+ what,
+ type->tp_name);
+ return 0;
+ }
+ }
return 1;
}
@@ -6192,12 +6192,12 @@ tp_new_wrapper(PyObject *self, PyObject *args, PyObject *kwds)
PyTypeObject *type, *subtype, *staticbase;
PyObject *arg0, *res;
- if (self == NULL || !PyType_Check(self)) {
- PyErr_Format(PyExc_SystemError,
- "__new__() called with non-type 'self'");
- return NULL;
- }
-
+ if (self == NULL || !PyType_Check(self)) {
+ PyErr_Format(PyExc_SystemError,
+ "__new__() called with non-type 'self'");
+ return NULL;
+ }
+
type = (PyTypeObject *)self;
if (!PyTuple_Check(args) || PyTuple_GET_SIZE(args) < 1) {
PyErr_Format(PyExc_TypeError,
@@ -6250,7 +6250,7 @@ tp_new_wrapper(PyObject *self, PyObject *args, PyObject *kwds)
}
static struct PyMethodDef tp_new_methoddef[] = {
- {"__new__", (PyCFunction)(void(*)(void))tp_new_wrapper, METH_VARARGS|METH_KEYWORDS,
+ {"__new__", (PyCFunction)(void(*)(void))tp_new_wrapper, METH_VARARGS|METH_KEYWORDS,
PyDoc_STR("__new__($type, *args, **kwargs)\n--\n\n"
"Create and return a new object. "
"See help(type) for accurate signature.")},
@@ -6262,10 +6262,10 @@ add_tp_new_wrapper(PyTypeObject *type)
{
PyObject *func;
- if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___new__) != NULL)
+ if (_PyDict_GetItemIdWithError(type->tp_dict, &PyId___new__) != NULL)
return 0;
- if (PyErr_Occurred())
- return -1;
+ if (PyErr_Occurred())
+ return -1;
func = PyCFunction_NewEx(tp_new_methoddef, (PyObject *)type, NULL);
if (func == NULL)
return -1;
@@ -6284,18 +6284,18 @@ add_tp_new_wrapper(PyTypeObject *type)
static PyObject * \
FUNCNAME(PyObject *self) \
{ \
- PyObject* stack[1] = {self}; \
+ PyObject* stack[1] = {self}; \
_Py_static_string(id, OPSTR); \
- return vectorcall_method(&id, stack, 1); \
+ return vectorcall_method(&id, stack, 1); \
}
#define SLOT1(FUNCNAME, OPSTR, ARG1TYPE) \
static PyObject * \
FUNCNAME(PyObject *self, ARG1TYPE arg1) \
{ \
- PyObject* stack[2] = {self, arg1}; \
+ PyObject* stack[2] = {self, arg1}; \
_Py_static_string(id, OPSTR); \
- return vectorcall_method(&id, stack, 2); \
+ return vectorcall_method(&id, stack, 2); \
}
/* Boolean helper for SLOT1BINFULL().
@@ -6306,18 +6306,18 @@ method_is_overloaded(PyObject *left, PyObject *right, struct _Py_Identifier *nam
PyObject *a, *b;
int ok;
- if (_PyObject_LookupAttrId((PyObject *)(Py_TYPE(right)), name, &b) < 0) {
- return -1;
- }
+ if (_PyObject_LookupAttrId((PyObject *)(Py_TYPE(right)), name, &b) < 0) {
+ return -1;
+ }
if (b == NULL) {
/* If right doesn't have it, it's not overloaded */
return 0;
}
- if (_PyObject_LookupAttrId((PyObject *)(Py_TYPE(left)), name, &a) < 0) {
- Py_DECREF(b);
- return -1;
- }
+ if (_PyObject_LookupAttrId((PyObject *)(Py_TYPE(left)), name, &a) < 0) {
+ Py_DECREF(b);
+ return -1;
+ }
if (a == NULL) {
Py_DECREF(b);
/* If right has it but left doesn't, it's overloaded */
@@ -6335,43 +6335,43 @@ method_is_overloaded(PyObject *left, PyObject *right, struct _Py_Identifier *nam
static PyObject * \
FUNCNAME(PyObject *self, PyObject *other) \
{ \
- PyObject* stack[2]; \
- PyThreadState *tstate = _PyThreadState_GET(); \
+ PyObject* stack[2]; \
+ PyThreadState *tstate = _PyThreadState_GET(); \
_Py_static_string(op_id, OPSTR); \
_Py_static_string(rop_id, ROPSTR); \
- int do_other = !Py_IS_TYPE(self, Py_TYPE(other)) && \
+ int do_other = !Py_IS_TYPE(self, Py_TYPE(other)) && \
Py_TYPE(other)->tp_as_number != NULL && \
Py_TYPE(other)->tp_as_number->SLOTNAME == TESTFUNC; \
if (Py_TYPE(self)->tp_as_number != NULL && \
Py_TYPE(self)->tp_as_number->SLOTNAME == TESTFUNC) { \
PyObject *r; \
- if (do_other && PyType_IsSubtype(Py_TYPE(other), Py_TYPE(self))) { \
- int ok = method_is_overloaded(self, other, &rop_id); \
- if (ok < 0) { \
- return NULL; \
- } \
- if (ok) { \
- stack[0] = other; \
- stack[1] = self; \
- r = vectorcall_maybe(tstate, &rop_id, stack, 2); \
- if (r != Py_NotImplemented) \
- return r; \
- Py_DECREF(r); \
- do_other = 0; \
- } \
+ if (do_other && PyType_IsSubtype(Py_TYPE(other), Py_TYPE(self))) { \
+ int ok = method_is_overloaded(self, other, &rop_id); \
+ if (ok < 0) { \
+ return NULL; \
+ } \
+ if (ok) { \
+ stack[0] = other; \
+ stack[1] = self; \
+ r = vectorcall_maybe(tstate, &rop_id, stack, 2); \
+ if (r != Py_NotImplemented) \
+ return r; \
+ Py_DECREF(r); \
+ do_other = 0; \
+ } \
} \
- stack[0] = self; \
- stack[1] = other; \
- r = vectorcall_maybe(tstate, &op_id, stack, 2); \
+ stack[0] = self; \
+ stack[1] = other; \
+ r = vectorcall_maybe(tstate, &op_id, stack, 2); \
if (r != Py_NotImplemented || \
- Py_IS_TYPE(other, Py_TYPE(self))) \
+ Py_IS_TYPE(other, Py_TYPE(self))) \
return r; \
Py_DECREF(r); \
} \
if (do_other) { \
- stack[0] = other; \
- stack[1] = self; \
- return vectorcall_maybe(tstate, &rop_id, stack, 2); \
+ stack[0] = other; \
+ stack[1] = self; \
+ return vectorcall_maybe(tstate, &rop_id, stack, 2); \
} \
Py_RETURN_NOTIMPLEMENTED; \
}
@@ -6382,8 +6382,8 @@ FUNCNAME(PyObject *self, PyObject *other) \
static Py_ssize_t
slot_sq_length(PyObject *self)
{
- PyObject* stack[1] = {self};
- PyObject *res = vectorcall_method(&PyId___len__, stack, 1);
+ PyObject* stack[1] = {self};
+ PyObject *res = vectorcall_method(&PyId___len__, stack, 1);
Py_ssize_t len;
if (res == NULL)
@@ -6414,8 +6414,8 @@ slot_sq_item(PyObject *self, Py_ssize_t i)
if (ival == NULL) {
return NULL;
}
- PyObject *stack[2] = {self, ival};
- PyObject *retval = vectorcall_method(&PyId___getitem__, stack, 2);
+ PyObject *stack[2] = {self, ival};
+ PyObject *retval = vectorcall_method(&PyId___getitem__, stack, 2);
Py_DECREF(ival);
return retval;
}
@@ -6423,7 +6423,7 @@ slot_sq_item(PyObject *self, Py_ssize_t i)
static int
slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
{
- PyObject *stack[3];
+ PyObject *stack[3];
PyObject *res;
PyObject *index_obj;
@@ -6432,14 +6432,14 @@ slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
return -1;
}
- stack[0] = self;
- stack[1] = index_obj;
+ stack[0] = self;
+ stack[1] = index_obj;
if (value == NULL) {
- res = vectorcall_method(&PyId___delitem__, stack, 2);
+ res = vectorcall_method(&PyId___delitem__, stack, 2);
}
else {
- stack[2] = value;
- res = vectorcall_method(&PyId___setitem__, stack, 3);
+ stack[2] = value;
+ res = vectorcall_method(&PyId___setitem__, stack, 3);
}
Py_DECREF(index_obj);
@@ -6453,7 +6453,7 @@ slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
static int
slot_sq_contains(PyObject *self, PyObject *value)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *func, *res;
int result = -1, unbound;
_Py_IDENTIFIER(__contains__);
@@ -6467,8 +6467,8 @@ slot_sq_contains(PyObject *self, PyObject *value)
return -1;
}
if (func != NULL) {
- PyObject *args[2] = {self, value};
- res = vectorcall_unbound(tstate, unbound, func, args, 2);
+ PyObject *args[2] = {self, value};
+ res = vectorcall_unbound(tstate, unbound, func, args, 2);
Py_DECREF(func);
if (res != NULL) {
result = PyObject_IsTrue(res);
@@ -6490,17 +6490,17 @@ SLOT1(slot_mp_subscript, "__getitem__", PyObject *)
static int
slot_mp_ass_subscript(PyObject *self, PyObject *key, PyObject *value)
{
- PyObject *stack[3];
+ PyObject *stack[3];
PyObject *res;
- stack[0] = self;
- stack[1] = key;
+ stack[0] = self;
+ stack[1] = key;
if (value == NULL) {
- res = vectorcall_method(&PyId___delitem__, stack, 2);
+ res = vectorcall_method(&PyId___delitem__, stack, 2);
}
else {
- stack[2] = value;
- res = vectorcall_method(&PyId___setitem__, stack, 3);
+ stack[2] = value;
+ res = vectorcall_method(&PyId___setitem__, stack, 3);
}
if (res == NULL)
@@ -6533,8 +6533,8 @@ slot_nb_power(PyObject *self, PyObject *other, PyObject *modulus)
slot_nb_power, so check before calling self.__pow__. */
if (Py_TYPE(self)->tp_as_number != NULL &&
Py_TYPE(self)->tp_as_number->nb_power == slot_nb_power) {
- PyObject* stack[3] = {self, other, modulus};
- return vectorcall_method(&PyId___pow__, stack, 3);
+ PyObject* stack[3] = {self, other, modulus};
+ return vectorcall_method(&PyId___pow__, stack, 3);
}
Py_RETURN_NOTIMPLEMENTED;
}
@@ -6601,8 +6601,8 @@ static PyObject *
slot_nb_index(PyObject *self)
{
_Py_IDENTIFIER(__index__);
- PyObject *stack[1] = {self};
- return vectorcall_method(&PyId___index__, stack, 1);
+ PyObject *stack[1] = {self};
+ return vectorcall_method(&PyId___index__, stack, 1);
}
@@ -6624,9 +6624,9 @@ SLOT1(slot_nb_inplace_remainder, "__imod__", PyObject *)
static PyObject *
slot_nb_inplace_power(PyObject *self, PyObject * arg1, PyObject *arg2)
{
- PyObject *stack[2] = {self, arg1};
+ PyObject *stack[2] = {self, arg1};
_Py_IDENTIFIER(__ipow__);
- return vectorcall_method(&PyId___ipow__, stack, 2);
+ return vectorcall_method(&PyId___ipow__, stack, 2);
}
SLOT1(slot_nb_inplace_lshift, "__ilshift__", PyObject *)
SLOT1(slot_nb_inplace_rshift, "__irshift__", PyObject *)
@@ -6710,21 +6710,21 @@ slot_tp_hash(PyObject *self)
static PyObject *
slot_tp_call(PyObject *self, PyObject *args, PyObject *kwds)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
_Py_IDENTIFIER(__call__);
int unbound;
-
+
PyObject *meth = lookup_method(self, &PyId___call__, &unbound);
- if (meth == NULL) {
+ if (meth == NULL) {
return NULL;
- }
+ }
- PyObject *res;
+ PyObject *res;
if (unbound) {
- res = _PyObject_Call_Prepend(tstate, meth, self, args, kwds);
+ res = _PyObject_Call_Prepend(tstate, meth, self, args, kwds);
}
else {
- res = _PyObject_Call(tstate, meth, args, kwds);
+ res = _PyObject_Call(tstate, meth, args, kwds);
}
Py_DECREF(meth);
@@ -6745,8 +6745,8 @@ slot_tp_call(PyObject *self, PyObject *args, PyObject *kwds)
static PyObject *
slot_tp_getattro(PyObject *self, PyObject *name)
{
- PyObject *stack[2] = {self, name};
- return vectorcall_method(&PyId___getattribute__, stack, 2);
+ PyObject *stack[2] = {self, name};
+ return vectorcall_method(&PyId___getattribute__, stack, 2);
}
static PyObject *
@@ -6762,7 +6762,7 @@ call_attribute(PyObject *self, PyObject *attr, PyObject *name)
else
attr = descr;
}
- res = PyObject_CallOneArg(attr, name);
+ res = PyObject_CallOneArg(attr, name);
Py_XDECREF(descr);
return res;
}
@@ -6793,7 +6793,7 @@ slot_tp_getattr_hook(PyObject *self, PyObject *name)
needed, with call_attribute. */
getattribute = _PyType_LookupId(tp, &PyId___getattribute__);
if (getattribute == NULL ||
- (Py_IS_TYPE(getattribute, &PyWrapperDescr_Type) &&
+ (Py_IS_TYPE(getattribute, &PyWrapperDescr_Type) &&
((PyWrapperDescrObject *)getattribute)->d_wrapped ==
(void *)PyObject_GenericGetAttr))
res = PyObject_GenericGetAttr(self, name);
@@ -6813,19 +6813,19 @@ slot_tp_getattr_hook(PyObject *self, PyObject *name)
static int
slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value)
{
- PyObject *stack[3];
+ PyObject *stack[3];
PyObject *res;
_Py_IDENTIFIER(__delattr__);
_Py_IDENTIFIER(__setattr__);
- stack[0] = self;
- stack[1] = name;
+ stack[0] = self;
+ stack[1] = name;
if (value == NULL) {
- res = vectorcall_method(&PyId___delattr__, stack, 2);
+ res = vectorcall_method(&PyId___delattr__, stack, 2);
}
else {
- stack[2] = value;
- res = vectorcall_method(&PyId___setattr__, stack, 3);
+ stack[2] = value;
+ res = vectorcall_method(&PyId___setattr__, stack, 3);
}
if (res == NULL)
return -1;
@@ -6834,28 +6834,28 @@ slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value)
}
static _Py_Identifier name_op[] = {
- _Py_static_string_init("__lt__"),
- _Py_static_string_init("__le__"),
- _Py_static_string_init("__eq__"),
- _Py_static_string_init("__ne__"),
- _Py_static_string_init("__gt__"),
- _Py_static_string_init("__ge__"),
+ _Py_static_string_init("__lt__"),
+ _Py_static_string_init("__le__"),
+ _Py_static_string_init("__eq__"),
+ _Py_static_string_init("__ne__"),
+ _Py_static_string_init("__gt__"),
+ _Py_static_string_init("__ge__"),
};
static PyObject *
slot_tp_richcompare(PyObject *self, PyObject *other, int op)
{
- PyThreadState *tstate = _PyThreadState_GET();
-
+ PyThreadState *tstate = _PyThreadState_GET();
+
int unbound;
- PyObject *func = lookup_maybe_method(self, &name_op[op], &unbound);
+ PyObject *func = lookup_maybe_method(self, &name_op[op], &unbound);
if (func == NULL) {
PyErr_Clear();
Py_RETURN_NOTIMPLEMENTED;
}
- PyObject *stack[2] = {self, other};
- PyObject *res = vectorcall_unbound(tstate, unbound, func, stack, 2);
+ PyObject *stack[2] = {self, other};
+ PyObject *res = vectorcall_unbound(tstate, unbound, func, stack, 2);
Py_DECREF(func);
return res;
}
@@ -6898,8 +6898,8 @@ static PyObject *
slot_tp_iternext(PyObject *self)
{
_Py_IDENTIFIER(__next__);
- PyObject *stack[1] = {self};
- return vectorcall_method(&PyId___next__, stack, 1);
+ PyObject *stack[1] = {self};
+ return vectorcall_method(&PyId___next__, stack, 1);
}
static PyObject *
@@ -6927,19 +6927,19 @@ slot_tp_descr_get(PyObject *self, PyObject *obj, PyObject *type)
static int
slot_tp_descr_set(PyObject *self, PyObject *target, PyObject *value)
{
- PyObject* stack[3];
+ PyObject* stack[3];
PyObject *res;
_Py_IDENTIFIER(__delete__);
_Py_IDENTIFIER(__set__);
- stack[0] = self;
- stack[1] = target;
+ stack[0] = self;
+ stack[1] = target;
if (value == NULL) {
- res = vectorcall_method(&PyId___delete__, stack, 2);
+ res = vectorcall_method(&PyId___delete__, stack, 2);
}
else {
- stack[2] = value;
- res = vectorcall_method(&PyId___set__, stack, 3);
+ stack[2] = value;
+ res = vectorcall_method(&PyId___set__, stack, 3);
}
if (res == NULL)
return -1;
@@ -6950,21 +6950,21 @@ slot_tp_descr_set(PyObject *self, PyObject *target, PyObject *value)
static int
slot_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
{
- PyThreadState *tstate = _PyThreadState_GET();
-
+ PyThreadState *tstate = _PyThreadState_GET();
+
_Py_IDENTIFIER(__init__);
int unbound;
PyObject *meth = lookup_method(self, &PyId___init__, &unbound);
- if (meth == NULL) {
- return -1;
- }
-
+ if (meth == NULL) {
+ return -1;
+ }
+
PyObject *res;
if (unbound) {
- res = _PyObject_Call_Prepend(tstate, meth, self, args, kwds);
+ res = _PyObject_Call_Prepend(tstate, meth, self, args, kwds);
}
else {
- res = _PyObject_Call(tstate, meth, args, kwds);
+ res = _PyObject_Call(tstate, meth, args, kwds);
}
Py_DECREF(meth);
if (res == NULL)
@@ -6983,7 +6983,7 @@ slot_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
static PyObject *
slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *func, *result;
func = _PyObject_GetAttrId((PyObject *)type, &PyId___new__);
@@ -6991,7 +6991,7 @@ slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
return NULL;
}
- result = _PyObject_Call_Prepend(tstate, func, (PyObject *)type, args, kwds);
+ result = _PyObject_Call_Prepend(tstate, func, (PyObject *)type, args, kwds);
Py_DECREF(func);
return result;
}
@@ -7087,8 +7087,8 @@ which incorporates the additional structures used for numbers, sequences and
mappings. Note that multiple names may map to the same slot (e.g. __eq__,
__ne__ etc. all map to tp_richcompare) and one name may map to multiple slots
(e.g. __str__ affects tp_str as well as tp_repr). The table is terminated with
-an all-zero entry. (This table is further initialized in
-_PyTypes_InitSlotDefs().)
+an all-zero entry. (This table is further initialized in
+_PyTypes_InitSlotDefs().)
*/
typedef struct wrapperbase slotdef;
@@ -7256,7 +7256,7 @@ static slotdef slotdefs[] = {
IBSLOT("__imod__", nb_inplace_remainder, slot_nb_inplace_remainder,
wrap_binaryfunc, "%="),
IBSLOT("__ipow__", nb_inplace_power, slot_nb_inplace_power,
- wrap_ternaryfunc, "**="),
+ wrap_ternaryfunc, "**="),
IBSLOT("__ilshift__", nb_inplace_lshift, slot_nb_inplace_lshift,
wrap_binaryfunc, "<<="),
IBSLOT("__irshift__", nb_inplace_rshift, slot_nb_inplace_rshift,
@@ -7396,9 +7396,9 @@ resolve_slotdups(PyTypeObject *type, PyObject *name)
*pp = NULL;
}
- /* Look in all slots of the type matching the name. If exactly one of these
- has a filled-in slot, return a pointer to that slot.
- Otherwise, return NULL. */
+ /* Look in all slots of the type matching the name. If exactly one of these
+ has a filled-in slot, return a pointer to that slot.
+ Otherwise, return NULL. */
res = NULL;
for (pp = ptrs; *pp; pp++) {
ptr = slotptr(type, (*pp)->offset);
@@ -7411,61 +7411,61 @@ resolve_slotdups(PyTypeObject *type, PyObject *name)
return res;
}
-
-/* Common code for update_slots_callback() and fixup_slot_dispatchers().
- *
- * This is meant to set a "slot" like type->tp_repr or
- * type->tp_as_sequence->sq_concat by looking up special methods like
- * __repr__ or __add__. The opposite (adding special methods from slots) is
- * done by add_operators(), called from PyType_Ready(). Since update_one_slot()
- * calls PyType_Ready() if needed, the special methods are already in place.
- *
- * The special methods corresponding to each slot are defined in the "slotdef"
- * array. Note that one slot may correspond to multiple special methods and vice
- * versa. For example, tp_richcompare uses 6 methods __lt__, ..., __ge__ and
- * tp_as_number->nb_add uses __add__ and __radd__. In the other direction,
- * __add__ is used by the number and sequence protocols and __getitem__ by the
- * sequence and mapping protocols. This causes a lot of complications.
- *
- * In detail, update_one_slot() does the following:
- *
- * First of all, if the slot in question does not exist, return immediately.
- * This can happen for example if it's tp_as_number->nb_add but tp_as_number
- * is NULL.
- *
- * For the given slot, we loop over all the special methods with a name
- * corresponding to that slot (for example, for tp_descr_set, this would be
- * __set__ and __delete__) and we look up these names in the MRO of the type.
- * If we don't find any special method, the slot is set to NULL (regardless of
- * what was in the slot before).
- *
- * Suppose that we find exactly one special method. If it's a wrapper_descriptor
- * (i.e. a special method calling a slot, for example str.__repr__ which calls
- * the tp_repr for the 'str' class) with the correct name ("__repr__" for
- * tp_repr), for the right class, calling the right wrapper C function (like
- * wrap_unaryfunc for tp_repr), then the slot is set to the slot that the
- * wrapper_descriptor originally wrapped. For example, a class inheriting
- * from 'str' and not redefining __repr__ will have tp_repr set to the tp_repr
- * of 'str'.
- * In all other cases where the special method exists, the slot is set to a
- * wrapper calling the special method. There is one exception: if the special
- * method is a wrapper_descriptor with the correct name but the type has
- * precisely one slot set for that name and that slot is not the one that we
- * are updating, then NULL is put in the slot (this exception is the only place
- * in update_one_slot() where the *existing* slots matter).
- *
- * When there are multiple special methods for the same slot, the above is
- * applied for each special method. As long as the results agree, the common
- * resulting slot is applied. If the results disagree, then a wrapper for
- * the special methods is installed. This is always safe, but less efficient
- * because it uses method lookup instead of direct C calls.
- *
- * There are some further special cases for specific slots, like supporting
- * __hash__ = None for tp_hash and special code for tp_new.
- *
- * When done, return a pointer to the next slotdef with a different offset,
- * because that's convenient for fixup_slot_dispatchers(). This function never
- * sets an exception: if an internal error happens (unlikely), it's ignored. */
+
+/* Common code for update_slots_callback() and fixup_slot_dispatchers().
+ *
+ * This is meant to set a "slot" like type->tp_repr or
+ * type->tp_as_sequence->sq_concat by looking up special methods like
+ * __repr__ or __add__. The opposite (adding special methods from slots) is
+ * done by add_operators(), called from PyType_Ready(). Since update_one_slot()
+ * calls PyType_Ready() if needed, the special methods are already in place.
+ *
+ * The special methods corresponding to each slot are defined in the "slotdef"
+ * array. Note that one slot may correspond to multiple special methods and vice
+ * versa. For example, tp_richcompare uses 6 methods __lt__, ..., __ge__ and
+ * tp_as_number->nb_add uses __add__ and __radd__. In the other direction,
+ * __add__ is used by the number and sequence protocols and __getitem__ by the
+ * sequence and mapping protocols. This causes a lot of complications.
+ *
+ * In detail, update_one_slot() does the following:
+ *
+ * First of all, if the slot in question does not exist, return immediately.
+ * This can happen for example if it's tp_as_number->nb_add but tp_as_number
+ * is NULL.
+ *
+ * For the given slot, we loop over all the special methods with a name
+ * corresponding to that slot (for example, for tp_descr_set, this would be
+ * __set__ and __delete__) and we look up these names in the MRO of the type.
+ * If we don't find any special method, the slot is set to NULL (regardless of
+ * what was in the slot before).
+ *
+ * Suppose that we find exactly one special method. If it's a wrapper_descriptor
+ * (i.e. a special method calling a slot, for example str.__repr__ which calls
+ * the tp_repr for the 'str' class) with the correct name ("__repr__" for
+ * tp_repr), for the right class, calling the right wrapper C function (like
+ * wrap_unaryfunc for tp_repr), then the slot is set to the slot that the
+ * wrapper_descriptor originally wrapped. For example, a class inheriting
+ * from 'str' and not redefining __repr__ will have tp_repr set to the tp_repr
+ * of 'str'.
+ * In all other cases where the special method exists, the slot is set to a
+ * wrapper calling the special method. There is one exception: if the special
+ * method is a wrapper_descriptor with the correct name but the type has
+ * precisely one slot set for that name and that slot is not the one that we
+ * are updating, then NULL is put in the slot (this exception is the only place
+ * in update_one_slot() where the *existing* slots matter).
+ *
+ * When there are multiple special methods for the same slot, the above is
+ * applied for each special method. As long as the results agree, the common
+ * resulting slot is applied. If the results disagree, then a wrapper for
+ * the special methods is installed. This is always safe, but less efficient
+ * because it uses method lookup instead of direct C calls.
+ *
+ * There are some further special cases for specific slots, like supporting
+ * __hash__ = None for tp_hash and special code for tp_new.
+ *
+ * When done, return a pointer to the next slotdef with a different offset,
+ * because that's convenient for fixup_slot_dispatchers(). This function never
+ * sets an exception: if an internal error happens (unlikely), it's ignored. */
static slotdef *
update_one_slot(PyTypeObject *type, slotdef *p)
{
@@ -7490,7 +7490,7 @@ update_one_slot(PyTypeObject *type, slotdef *p)
descr = find_name_in_mro(type, p->name_strobj, &error);
if (descr == NULL) {
if (error == -1) {
- /* It is unlikely but not impossible that there has been an exception
+ /* It is unlikely but not impossible that there has been an exception
during lookup. Since this function originally expected no errors,
we ignore them here in order to keep up the interface. */
PyErr_Clear();
@@ -7500,32 +7500,32 @@ update_one_slot(PyTypeObject *type, slotdef *p)
}
continue;
}
- if (Py_IS_TYPE(descr, &PyWrapperDescr_Type) &&
+ if (Py_IS_TYPE(descr, &PyWrapperDescr_Type) &&
((PyWrapperDescrObject *)descr)->d_base->name_strobj == p->name_strobj) {
void **tptr = resolve_slotdups(type, p->name_strobj);
if (tptr == NULL || tptr == ptr)
generic = p->function;
d = (PyWrapperDescrObject *)descr;
- if ((specific == NULL || specific == d->d_wrapped) &&
- d->d_base->wrapper == p->wrapper &&
+ if ((specific == NULL || specific == d->d_wrapped) &&
+ d->d_base->wrapper == p->wrapper &&
PyType_IsSubtype(type, PyDescr_TYPE(d)))
{
- specific = d->d_wrapped;
+ specific = d->d_wrapped;
+ }
+ else {
+ /* We cannot use the specific slot function because either
+ - it is not unique: there are multiple methods for this
+ slot and they conflict
+ - the signature is wrong (as checked by the ->wrapper
+ comparison above)
+ - it's wrapping the wrong class
+ */
+ use_generic = 1;
}
- else {
- /* We cannot use the specific slot function because either
- - it is not unique: there are multiple methods for this
- slot and they conflict
- - the signature is wrong (as checked by the ->wrapper
- comparison above)
- - it's wrapping the wrong class
- */
- use_generic = 1;
- }
- }
- else if (Py_IS_TYPE(descr, &PyCFunction_Type) &&
+ }
+ else if (Py_IS_TYPE(descr, &PyCFunction_Type) &&
PyCFunction_GET_FUNCTION(descr) ==
- (PyCFunction)(void(*)(void))tp_new_wrapper &&
+ (PyCFunction)(void(*)(void))tp_new_wrapper &&
ptr == (void**)&type->tp_new)
{
/* The __new__ wrapper is not a wrapper descriptor,
@@ -7579,36 +7579,36 @@ update_slots_callback(PyTypeObject *type, void *data)
static int slotdefs_initialized = 0;
/* Initialize the slotdefs table by adding interned string objects for the
names. */
-PyStatus
-_PyTypes_InitSlotDefs(void)
+PyStatus
+_PyTypes_InitSlotDefs(void)
{
- if (slotdefs_initialized) {
- return _PyStatus_OK();
- }
+ if (slotdefs_initialized) {
+ return _PyStatus_OK();
+ }
- for (slotdef *p = slotdefs; p->name; p++) {
+ for (slotdef *p = slotdefs; p->name; p++) {
/* Slots must be ordered by their offset in the PyHeapTypeObject. */
assert(!p[1].name || p->offset <= p[1].offset);
-#ifdef INTERN_NAME_STRINGS
+#ifdef INTERN_NAME_STRINGS
p->name_strobj = PyUnicode_InternFromString(p->name);
- if (!p->name_strobj || !PyUnicode_CHECK_INTERNED(p->name_strobj)) {
- return _PyStatus_NO_MEMORY();
- }
-#else
- p->name_strobj = PyUnicode_FromString(p->name);
- if (!p->name_strobj) {
- return _PyStatus_NO_MEMORY();
- }
-#endif
+ if (!p->name_strobj || !PyUnicode_CHECK_INTERNED(p->name_strobj)) {
+ return _PyStatus_NO_MEMORY();
+ }
+#else
+ p->name_strobj = PyUnicode_FromString(p->name);
+ if (!p->name_strobj) {
+ return _PyStatus_NO_MEMORY();
+ }
+#endif
}
slotdefs_initialized = 1;
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
-/* Undo _PyTypes_InitSlotDefs(), releasing the interned strings. */
+/* Undo _PyTypes_InitSlotDefs(), releasing the interned strings. */
static void clear_slotdefs(void)
{
- for (slotdef *p = slotdefs; p->name; p++) {
+ for (slotdef *p = slotdefs; p->name; p++) {
Py_CLEAR(p->name_strobj);
}
slotdefs_initialized = 0;
@@ -7624,11 +7624,11 @@ update_slot(PyTypeObject *type, PyObject *name)
int offset;
assert(PyUnicode_CheckExact(name));
-#ifdef INTERN_NAME_STRINGS
+#ifdef INTERN_NAME_STRINGS
assert(PyUnicode_CHECK_INTERNED(name));
-#endif
+#endif
- assert(slotdefs_initialized);
+ assert(slotdefs_initialized);
pp = ptrs;
for (p = slotdefs; p->name; p++) {
if (p->name_strobj == name)
@@ -7656,7 +7656,7 @@ fixup_slot_dispatchers(PyTypeObject *type)
{
slotdef *p;
- assert(slotdefs_initialized);
+ assert(slotdefs_initialized);
for (p = slotdefs; p->name; )
p = update_one_slot(type, p);
}
@@ -7666,10 +7666,10 @@ update_all_slots(PyTypeObject* type)
{
slotdef *p;
- /* Clear the VALID_VERSION flag of 'type' and all its subclasses. */
- PyType_Modified(type);
-
- assert(slotdefs_initialized);
+ /* Clear the VALID_VERSION flag of 'type' and all its subclasses. */
+ PyType_Modified(type);
+
+ assert(slotdefs_initialized);
for (p = slotdefs; p->name; p++) {
/* update_slot returns int but can't actually fail */
update_slot(type, p->name_strobj);
@@ -7696,7 +7696,7 @@ set_names(PyTypeObject *type)
_PyErr_FormatFromCause(PyExc_RuntimeError,
"Error calling __set_name__ on '%.100s' instance %R "
"in '%.100s'",
- Py_TYPE(value)->tp_name, key, type->tp_name);
+ Py_TYPE(value)->tp_name, key, type->tp_name);
Py_DECREF(names_to_set);
return -1;
}
@@ -7732,7 +7732,7 @@ init_subclass(PyTypeObject *type, PyObject *kwds)
}
- result = PyObject_VectorcallDict(func, NULL, 0, kwds);
+ result = PyObject_VectorcallDict(func, NULL, 0, kwds);
Py_DECREF(func);
if (result == NULL) {
return -1;
@@ -7777,14 +7777,14 @@ recurse_down_subclasses(PyTypeObject *type, PyObject *name,
assert(PyType_Check(subclass));
/* Avoid recursing down into unaffected classes */
dict = subclass->tp_dict;
- if (dict != NULL && PyDict_Check(dict)) {
- if (PyDict_GetItemWithError(dict, name) != NULL) {
- continue;
- }
- if (PyErr_Occurred()) {
- return -1;
- }
- }
+ if (dict != NULL && PyDict_Check(dict)) {
+ if (PyDict_GetItemWithError(dict, name) != NULL) {
+ continue;
+ }
+ if (PyErr_Occurred()) {
+ return -1;
+ }
+ }
if (update_subclasses(subclass, name, callback, data) < 0)
return -1;
}
@@ -7829,18 +7829,18 @@ add_operators(PyTypeObject *type)
PyObject *descr;
void **ptr;
- assert(slotdefs_initialized);
+ assert(slotdefs_initialized);
for (p = slotdefs; p->name; p++) {
if (p->wrapper == NULL)
continue;
ptr = slotptr(type, p->offset);
if (!ptr || !*ptr)
continue;
- if (PyDict_GetItemWithError(dict, p->name_strobj))
+ if (PyDict_GetItemWithError(dict, p->name_strobj))
continue;
- if (PyErr_Occurred()) {
- return -1;
- }
+ if (PyErr_Occurred()) {
+ return -1;
+ }
if (*ptr == (void *)PyObject_HashNotImplemented) {
/* Classes may prevent the inheritance of the tp_hash
slot by storing PyObject_HashNotImplemented in it. Make it
@@ -7950,7 +7950,7 @@ super_getattro(PyObject *self, PyObject *name)
goto skip;
/* keep a strong reference to mro because starttype->tp_mro can be
- replaced during PyDict_GetItemWithError(dict, name) */
+ replaced during PyDict_GetItemWithError(dict, name) */
Py_INCREF(mro);
do {
PyObject *res, *tmp, *dict;
@@ -7962,7 +7962,7 @@ super_getattro(PyObject *self, PyObject *name)
dict = ((PyTypeObject *)tmp)->tp_dict;
assert(dict != NULL && PyDict_Check(dict));
- res = PyDict_GetItemWithError(dict, name);
+ res = PyDict_GetItemWithError(dict, name);
if (res != NULL) {
Py_INCREF(res);
@@ -7980,10 +7980,10 @@ super_getattro(PyObject *self, PyObject *name)
Py_DECREF(mro);
return res;
}
- else if (PyErr_Occurred()) {
- Py_DECREF(mro);
- return NULL;
- }
+ else if (PyErr_Occurred()) {
+ Py_DECREF(mro);
+ return NULL;
+ }
i++;
} while (i < n);
@@ -8026,9 +8026,9 @@ supercheck(PyTypeObject *type, PyObject *obj)
/* Try the slow way */
PyObject *class_attr;
- if (_PyObject_LookupAttrId(obj, &PyId___class__, &class_attr) < 0) {
- return NULL;
- }
+ if (_PyObject_LookupAttrId(obj, &PyId___class__, &class_attr) < 0) {
+ return NULL;
+ }
if (class_attr != NULL &&
PyType_Check(class_attr) &&
(PyTypeObject *)class_attr != Py_TYPE(obj))
@@ -8038,7 +8038,7 @@ supercheck(PyTypeObject *type, PyObject *obj)
if (ok)
return (PyTypeObject *)class_attr;
}
- Py_XDECREF(class_attr);
+ Py_XDECREF(class_attr);
}
PyErr_SetString(PyExc_TypeError,
@@ -8058,7 +8058,7 @@ super_descr_get(PyObject *self, PyObject *obj, PyObject *type)
Py_INCREF(self);
return self;
}
- if (!Py_IS_TYPE(su, &PySuper_Type))
+ if (!Py_IS_TYPE(su, &PySuper_Type))
/* If su is an instance of a (strict) subclass of super,
call its type */
return PyObject_CallFunctionObjArgs((PyObject *)Py_TYPE(su),
@@ -8082,83 +8082,83 @@ super_descr_get(PyObject *self, PyObject *obj, PyObject *type)
}
static int
-super_init_without_args(PyFrameObject *f, PyCodeObject *co,
- PyTypeObject **type_p, PyObject **obj_p)
-{
- if (co->co_argcount == 0) {
- PyErr_SetString(PyExc_RuntimeError,
- "super(): no arguments");
- return -1;
- }
-
- PyObject *obj = f->f_localsplus[0];
- Py_ssize_t i, n;
- if (obj == NULL && co->co_cell2arg) {
- /* The first argument might be a cell. */
- n = PyTuple_GET_SIZE(co->co_cellvars);
- for (i = 0; i < n; i++) {
- if (co->co_cell2arg[i] == 0) {
- PyObject *cell = f->f_localsplus[co->co_nlocals + i];
- assert(PyCell_Check(cell));
- obj = PyCell_GET(cell);
- break;
- }
- }
- }
- if (obj == NULL) {
- PyErr_SetString(PyExc_RuntimeError,
- "super(): arg[0] deleted");
- return -1;
- }
-
- if (co->co_freevars == NULL) {
- n = 0;
- }
- else {
- assert(PyTuple_Check(co->co_freevars));
- n = PyTuple_GET_SIZE(co->co_freevars);
- }
-
- PyTypeObject *type = NULL;
- for (i = 0; i < n; i++) {
- PyObject *name = PyTuple_GET_ITEM(co->co_freevars, i);
- assert(PyUnicode_Check(name));
- if (_PyUnicode_EqualToASCIIId(name, &PyId___class__)) {
- Py_ssize_t index = co->co_nlocals +
- PyTuple_GET_SIZE(co->co_cellvars) + i;
- PyObject *cell = f->f_localsplus[index];
- if (cell == NULL || !PyCell_Check(cell)) {
- PyErr_SetString(PyExc_RuntimeError,
- "super(): bad __class__ cell");
- return -1;
- }
- type = (PyTypeObject *) PyCell_GET(cell);
- if (type == NULL) {
- PyErr_SetString(PyExc_RuntimeError,
- "super(): empty __class__ cell");
- return -1;
- }
- if (!PyType_Check(type)) {
- PyErr_Format(PyExc_RuntimeError,
- "super(): __class__ is not a type (%s)",
- Py_TYPE(type)->tp_name);
- return -1;
- }
- break;
- }
- }
- if (type == NULL) {
- PyErr_SetString(PyExc_RuntimeError,
- "super(): __class__ cell not found");
- return -1;
- }
-
- *type_p = type;
- *obj_p = obj;
- return 0;
-}
-
-static int
+super_init_without_args(PyFrameObject *f, PyCodeObject *co,
+ PyTypeObject **type_p, PyObject **obj_p)
+{
+ if (co->co_argcount == 0) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "super(): no arguments");
+ return -1;
+ }
+
+ PyObject *obj = f->f_localsplus[0];
+ Py_ssize_t i, n;
+ if (obj == NULL && co->co_cell2arg) {
+ /* The first argument might be a cell. */
+ n = PyTuple_GET_SIZE(co->co_cellvars);
+ for (i = 0; i < n; i++) {
+ if (co->co_cell2arg[i] == 0) {
+ PyObject *cell = f->f_localsplus[co->co_nlocals + i];
+ assert(PyCell_Check(cell));
+ obj = PyCell_GET(cell);
+ break;
+ }
+ }
+ }
+ if (obj == NULL) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "super(): arg[0] deleted");
+ return -1;
+ }
+
+ if (co->co_freevars == NULL) {
+ n = 0;
+ }
+ else {
+ assert(PyTuple_Check(co->co_freevars));
+ n = PyTuple_GET_SIZE(co->co_freevars);
+ }
+
+ PyTypeObject *type = NULL;
+ for (i = 0; i < n; i++) {
+ PyObject *name = PyTuple_GET_ITEM(co->co_freevars, i);
+ assert(PyUnicode_Check(name));
+ if (_PyUnicode_EqualToASCIIId(name, &PyId___class__)) {
+ Py_ssize_t index = co->co_nlocals +
+ PyTuple_GET_SIZE(co->co_cellvars) + i;
+ PyObject *cell = f->f_localsplus[index];
+ if (cell == NULL || !PyCell_Check(cell)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "super(): bad __class__ cell");
+ return -1;
+ }
+ type = (PyTypeObject *) PyCell_GET(cell);
+ if (type == NULL) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "super(): empty __class__ cell");
+ return -1;
+ }
+ if (!PyType_Check(type)) {
+ PyErr_Format(PyExc_RuntimeError,
+ "super(): __class__ is not a type (%s)",
+ Py_TYPE(type)->tp_name);
+ return -1;
+ }
+ break;
+ }
+ }
+ if (type == NULL) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "super(): __class__ cell not found");
+ return -1;
+ }
+
+ *type_p = type;
+ *obj_p = obj;
+ return 0;
+}
+
+static int
super_init(PyObject *self, PyObject *args, PyObject *kwds)
{
superobject *su = (superobject *)self;
@@ -8174,20 +8174,20 @@ super_init(PyObject *self, PyObject *args, PyObject *kwds)
if (type == NULL) {
/* Call super(), without args -- fill in from __class__
and first local variable on the stack. */
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *frame = PyThreadState_GetFrame(tstate);
- if (frame == NULL) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *frame = PyThreadState_GetFrame(tstate);
+ if (frame == NULL) {
PyErr_SetString(PyExc_RuntimeError,
"super(): no current frame");
return -1;
}
-
- PyCodeObject *code = PyFrame_GetCode(frame);
- int res = super_init_without_args(frame, code, &type, &obj);
- Py_DECREF(frame);
- Py_DECREF(code);
-
- if (res < 0) {
+
+ PyCodeObject *code = PyFrame_GetCode(frame);
+ int res = super_init_without_args(frame, code, &type, &obj);
+ Py_DECREF(frame);
+ Py_DECREF(code);
+
+ if (res < 0) {
return -1;
}
}
@@ -8241,10 +8241,10 @@ PyTypeObject PySuper_Type = {
0, /* tp_itemsize */
/* methods */
super_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
super_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
diff --git a/contrib/tools/python3/src/Objects/typeslots.inc b/contrib/tools/python3/src/Objects/typeslots.inc
index 62d0a2210f..ffc9bb2e1c 100644
--- a/contrib/tools/python3/src/Objects/typeslots.inc
+++ b/contrib/tools/python3/src/Objects/typeslots.inc
@@ -1,6 +1,6 @@
/* Generated by typeslots.py */
-offsetof(PyHeapTypeObject, as_buffer.bf_getbuffer),
-offsetof(PyHeapTypeObject, as_buffer.bf_releasebuffer),
+offsetof(PyHeapTypeObject, as_buffer.bf_getbuffer),
+offsetof(PyHeapTypeObject, as_buffer.bf_releasebuffer),
offsetof(PyHeapTypeObject, as_mapping.mp_ass_subscript),
offsetof(PyHeapTypeObject, as_mapping.mp_length),
offsetof(PyHeapTypeObject, as_mapping.mp_subscript),
diff --git a/contrib/tools/python3/src/Objects/unicodeobject.c b/contrib/tools/python3/src/Objects/unicodeobject.c
index 6ee20925e9..7767d140e6 100644
--- a/contrib/tools/python3/src/Objects/unicodeobject.c
+++ b/contrib/tools/python3/src/Objects/unicodeobject.c
@@ -40,15 +40,15 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_bytes_methods.h"
-#include "pycore_fileutils.h"
-#include "pycore_initconfig.h"
-#include "pycore_interp.h" // PyInterpreterState.fs_codec
-#include "pycore_object.h"
-#include "pycore_pathconfig.h"
-#include "pycore_pylifecycle.h"
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_bytes_methods.h"
+#include "pycore_fileutils.h"
+#include "pycore_initconfig.h"
+#include "pycore_interp.h" // PyInterpreterState.fs_codec
+#include "pycore_object.h"
+#include "pycore_pathconfig.h"
+#include "pycore_pylifecycle.h"
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "ucnhash.h"
#include "stringlib/eq.h"
@@ -56,15 +56,15 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <windows.h>
#endif
-#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
-#include "pycore_fileutils.h" // _Py_LocaleUsesNonUnicodeWchar()
-#endif
-
-/* Uncomment to display statistics on interned strings at exit when
- using Valgrind or Insecure++. */
-/* #define INTERNED_STATS 1 */
-
-
+#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+#include "pycore_fileutils.h" // _Py_LocaleUsesNonUnicodeWchar()
+#endif
+
+/* Uncomment to display statistics on interned strings at exit when
+ using Valgrind or Insecure++. */
+/* #define INTERNED_STATS 1 */
+
+
/*[clinic input]
class str "PyObject *" "&PyUnicode_Type"
[clinic start generated code]*/
@@ -97,8 +97,8 @@ NOTE: In the interpreter's initialization phase, some globals are currently
extern "C" {
#endif
-// Maximum code point of Unicode 6.0: 0x10ffff (1,114,111).
-// The value must be the same in fileutils.c.
+// Maximum code point of Unicode 6.0: 0x10ffff (1,114,111).
+// The value must be the same in fileutils.c.
#define MAX_UNICODE 0x10ffff
#ifdef Py_DEBUG
@@ -125,13 +125,13 @@ extern "C" {
_PyUnicode_UTF8_LENGTH(op))
#define _PyUnicode_WSTR(op) \
(((PyASCIIObject*)(op))->wstr)
-
-/* Don't use deprecated macro of unicodeobject.h */
-#undef PyUnicode_WSTR_LENGTH
-#define PyUnicode_WSTR_LENGTH(op) \
- (PyUnicode_IS_COMPACT_ASCII(op) ? \
- ((PyASCIIObject*)op)->length : \
- ((PyCompactUnicodeObject*)op)->wstr_length)
+
+/* Don't use deprecated macro of unicodeobject.h */
+#undef PyUnicode_WSTR_LENGTH
+#define PyUnicode_WSTR_LENGTH(op) \
+ (PyUnicode_IS_COMPACT_ASCII(op) ? \
+ ((PyASCIIObject*)op)->length : \
+ ((PyCompactUnicodeObject*)op)->wstr_length)
#define _PyUnicode_WSTR_LENGTH(op) \
(((PyCompactUnicodeObject*)(op))->wstr_length)
#define _PyUnicode_LENGTH(op) \
@@ -186,8 +186,8 @@ extern "C" {
#define _PyUnicode_CONVERT_BYTES(from_type, to_type, begin, end, to) \
do { \
to_type *_to = (to_type *)(to); \
- const from_type *_iter = (const from_type *)(begin);\
- const from_type *_end = (const from_type *)(end);\
+ const from_type *_iter = (const from_type *)(begin);\
+ const from_type *_end = (const from_type *)(end);\
Py_ssize_t n = (_end) - (_iter); \
const from_type *_unrolled_end = \
_iter + _Py_SIZE_ROUND_DOWN(n, 4); \
@@ -210,8 +210,8 @@ extern "C" {
# define OVERALLOCATE_FACTOR 4
#endif
-#define INTERNED_STRINGS
-
+#define INTERNED_STRINGS
+
/* This dictionary holds all interned unicode strings. Note that references
to strings in this dictionary are *not* counted in the string's ob_refcnt.
When the interned string reaches a refcnt of 0 the string deallocation
@@ -220,9 +220,9 @@ extern "C" {
Another way to look at this is that to say that the actual reference
count of a string is: s->ob_refcnt + (s->state ? 2 : 0)
*/
-#ifdef INTERNED_STRINGS
+#ifdef INTERNED_STRINGS
static PyObject *interned = NULL;
-#endif
+#endif
/* The empty Unicode object is shared to improve performance. */
static PyObject *unicode_empty = NULL;
@@ -246,64 +246,64 @@ static PyObject *unicode_empty = NULL;
return unicode_empty; \
} while (0)
-static inline void
-unicode_fill(enum PyUnicode_Kind kind, void *data, Py_UCS4 value,
- Py_ssize_t start, Py_ssize_t length)
-{
- assert(0 <= start);
- assert(kind != PyUnicode_WCHAR_KIND);
- switch (kind) {
- case PyUnicode_1BYTE_KIND: {
- assert(value <= 0xff);
- Py_UCS1 ch = (unsigned char)value;
- Py_UCS1 *to = (Py_UCS1 *)data + start;
- memset(to, ch, length);
- break;
- }
- case PyUnicode_2BYTE_KIND: {
- assert(value <= 0xffff);
- Py_UCS2 ch = (Py_UCS2)value;
- Py_UCS2 *to = (Py_UCS2 *)data + start;
- const Py_UCS2 *end = to + length;
- for (; to < end; ++to) *to = ch;
- break;
- }
- case PyUnicode_4BYTE_KIND: {
- assert(value <= MAX_UNICODE);
- Py_UCS4 ch = value;
- Py_UCS4 * to = (Py_UCS4 *)data + start;
- const Py_UCS4 *end = to + length;
- for (; to < end; ++to) *to = ch;
- break;
- }
- default: Py_UNREACHABLE();
- }
-}
+static inline void
+unicode_fill(enum PyUnicode_Kind kind, void *data, Py_UCS4 value,
+ Py_ssize_t start, Py_ssize_t length)
+{
+ assert(0 <= start);
+ assert(kind != PyUnicode_WCHAR_KIND);
+ switch (kind) {
+ case PyUnicode_1BYTE_KIND: {
+ assert(value <= 0xff);
+ Py_UCS1 ch = (unsigned char)value;
+ Py_UCS1 *to = (Py_UCS1 *)data + start;
+ memset(to, ch, length);
+ break;
+ }
+ case PyUnicode_2BYTE_KIND: {
+ assert(value <= 0xffff);
+ Py_UCS2 ch = (Py_UCS2)value;
+ Py_UCS2 *to = (Py_UCS2 *)data + start;
+ const Py_UCS2 *end = to + length;
+ for (; to < end; ++to) *to = ch;
+ break;
+ }
+ case PyUnicode_4BYTE_KIND: {
+ assert(value <= MAX_UNICODE);
+ Py_UCS4 ch = value;
+ Py_UCS4 * to = (Py_UCS4 *)data + start;
+ const Py_UCS4 *end = to + length;
+ for (; to < end; ++to) *to = ch;
+ break;
+ }
+ default: Py_UNREACHABLE();
+ }
+}
/* Forward declaration */
static inline int
_PyUnicodeWriter_WriteCharInline(_PyUnicodeWriter *writer, Py_UCS4 ch);
-static inline void
-_PyUnicodeWriter_InitWithBuffer(_PyUnicodeWriter *writer, PyObject *buffer);
-static PyObject *
-unicode_encode_utf8(PyObject *unicode, _Py_error_handler error_handler,
- const char *errors);
-static PyObject *
-unicode_decode_utf8(const char *s, Py_ssize_t size,
- _Py_error_handler error_handler, const char *errors,
- Py_ssize_t *consumed);
+static inline void
+_PyUnicodeWriter_InitWithBuffer(_PyUnicodeWriter *writer, PyObject *buffer);
+static PyObject *
+unicode_encode_utf8(PyObject *unicode, _Py_error_handler error_handler,
+ const char *errors);
+static PyObject *
+unicode_decode_utf8(const char *s, Py_ssize_t size,
+ _Py_error_handler error_handler, const char *errors,
+ Py_ssize_t *consumed);
/* List of static strings. */
static _Py_Identifier *static_strings = NULL;
-#define LATIN1_SINGLETONS
-
-#ifdef LATIN1_SINGLETONS
+#define LATIN1_SINGLETONS
+
+#ifdef LATIN1_SINGLETONS
/* Single character Unicode strings in the Latin-1 range are being
shared as well. */
static PyObject *unicode_latin1[256] = {NULL};
-#endif
+#endif
/* Fast detection of the most frequent whitespace characters */
const unsigned char _Py_ascii_whitespace[] = {
@@ -394,8 +394,8 @@ static int convert_uc(PyObject *obj, void *addr);
#include "clinic/unicodeobject.c.h"
-_Py_error_handler
-_Py_GetErrorHandler(const char *errors)
+_Py_error_handler
+_Py_GetErrorHandler(const char *errors)
{
if (errors == NULL || strcmp(errors, "strict") == 0) {
return _Py_ERROR_STRICT;
@@ -421,83 +421,83 @@ _Py_GetErrorHandler(const char *errors)
return _Py_ERROR_OTHER;
}
-
-static _Py_error_handler
-get_error_handler_wide(const wchar_t *errors)
-{
- if (errors == NULL || wcscmp(errors, L"strict") == 0) {
- return _Py_ERROR_STRICT;
- }
- if (wcscmp(errors, L"surrogateescape") == 0) {
- return _Py_ERROR_SURROGATEESCAPE;
- }
- if (wcscmp(errors, L"replace") == 0) {
- return _Py_ERROR_REPLACE;
- }
- if (wcscmp(errors, L"ignore") == 0) {
- return _Py_ERROR_IGNORE;
- }
- if (wcscmp(errors, L"backslashreplace") == 0) {
- return _Py_ERROR_BACKSLASHREPLACE;
- }
- if (wcscmp(errors, L"surrogatepass") == 0) {
- return _Py_ERROR_SURROGATEPASS;
- }
- if (wcscmp(errors, L"xmlcharrefreplace") == 0) {
- return _Py_ERROR_XMLCHARREFREPLACE;
- }
- return _Py_ERROR_OTHER;
-}
-
-
-static inline int
-unicode_check_encoding_errors(const char *encoding, const char *errors)
-{
- if (encoding == NULL && errors == NULL) {
- return 0;
- }
-
- PyInterpreterState *interp = _PyInterpreterState_GET();
-#ifndef Py_DEBUG
- /* In release mode, only check in development mode (-X dev) */
- if (!_PyInterpreterState_GetConfig(interp)->dev_mode) {
- return 0;
- }
-#else
- /* Always check in debug mode */
-#endif
-
- /* Avoid calling _PyCodec_Lookup() and PyCodec_LookupError() before the
- codec registry is ready: before_PyUnicode_InitEncodings() is called. */
- if (!interp->unicode.fs_codec.encoding) {
- return 0;
- }
-
- /* Disable checks during Python finalization. For example, it allows to
- call _PyObject_Dump() during finalization for debugging purpose. */
- if (interp->finalizing) {
- return 0;
- }
-
- if (encoding != NULL) {
- PyObject *handler = _PyCodec_Lookup(encoding);
- if (handler == NULL) {
- return -1;
- }
- Py_DECREF(handler);
- }
-
- if (errors != NULL) {
- PyObject *handler = PyCodec_LookupError(errors);
- if (handler == NULL) {
- return -1;
- }
- Py_DECREF(handler);
- }
- return 0;
-}
-
-
+
+static _Py_error_handler
+get_error_handler_wide(const wchar_t *errors)
+{
+ if (errors == NULL || wcscmp(errors, L"strict") == 0) {
+ return _Py_ERROR_STRICT;
+ }
+ if (wcscmp(errors, L"surrogateescape") == 0) {
+ return _Py_ERROR_SURROGATEESCAPE;
+ }
+ if (wcscmp(errors, L"replace") == 0) {
+ return _Py_ERROR_REPLACE;
+ }
+ if (wcscmp(errors, L"ignore") == 0) {
+ return _Py_ERROR_IGNORE;
+ }
+ if (wcscmp(errors, L"backslashreplace") == 0) {
+ return _Py_ERROR_BACKSLASHREPLACE;
+ }
+ if (wcscmp(errors, L"surrogatepass") == 0) {
+ return _Py_ERROR_SURROGATEPASS;
+ }
+ if (wcscmp(errors, L"xmlcharrefreplace") == 0) {
+ return _Py_ERROR_XMLCHARREFREPLACE;
+ }
+ return _Py_ERROR_OTHER;
+}
+
+
+static inline int
+unicode_check_encoding_errors(const char *encoding, const char *errors)
+{
+ if (encoding == NULL && errors == NULL) {
+ return 0;
+ }
+
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+#ifndef Py_DEBUG
+ /* In release mode, only check in development mode (-X dev) */
+ if (!_PyInterpreterState_GetConfig(interp)->dev_mode) {
+ return 0;
+ }
+#else
+ /* Always check in debug mode */
+#endif
+
+ /* Avoid calling _PyCodec_Lookup() and PyCodec_LookupError() before the
+ codec registry is ready: before_PyUnicode_InitEncodings() is called. */
+ if (!interp->unicode.fs_codec.encoding) {
+ return 0;
+ }
+
+ /* Disable checks during Python finalization. For example, it allows to
+ call _PyObject_Dump() during finalization for debugging purpose. */
+ if (interp->finalizing) {
+ return 0;
+ }
+
+ if (encoding != NULL) {
+ PyObject *handler = _PyCodec_Lookup(encoding);
+ if (handler == NULL) {
+ return -1;
+ }
+ Py_DECREF(handler);
+ }
+
+ if (errors != NULL) {
+ PyObject *handler = PyCodec_LookupError(errors);
+ if (handler == NULL) {
+ return -1;
+ }
+ Py_DECREF(handler);
+ }
+ return 0;
+}
+
+
/* The max unicode value is always 0x10FFFF while using the PEP-393 API.
This function is kept for backward compatibility with the old API. */
Py_UNICODE
@@ -515,21 +515,21 @@ PyUnicode_GetMax(void)
int
_PyUnicode_CheckConsistency(PyObject *op, int check_content)
{
-#define CHECK(expr) \
- do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG(op, Py_STRINGIFY(expr)); } } while (0)
-
+#define CHECK(expr) \
+ do { if (!(expr)) { _PyObject_ASSERT_FAILED_MSG(op, Py_STRINGIFY(expr)); } } while (0)
+
PyASCIIObject *ascii;
unsigned int kind;
- assert(op != NULL);
- CHECK(PyUnicode_Check(op));
+ assert(op != NULL);
+ CHECK(PyUnicode_Check(op));
ascii = (PyASCIIObject *)op;
kind = ascii->state.kind;
if (ascii->state.ascii == 1 && ascii->state.compact == 1) {
- CHECK(kind == PyUnicode_1BYTE_KIND);
- CHECK(ascii->state.ready == 1);
+ CHECK(kind == PyUnicode_1BYTE_KIND);
+ CHECK(ascii->state.ready == 1);
}
else {
PyCompactUnicodeObject *compact = (PyCompactUnicodeObject *)op;
@@ -537,41 +537,41 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
if (ascii->state.compact == 1) {
data = compact + 1;
- CHECK(kind == PyUnicode_1BYTE_KIND
- || kind == PyUnicode_2BYTE_KIND
- || kind == PyUnicode_4BYTE_KIND);
- CHECK(ascii->state.ascii == 0);
- CHECK(ascii->state.ready == 1);
- CHECK(compact->utf8 != data);
+ CHECK(kind == PyUnicode_1BYTE_KIND
+ || kind == PyUnicode_2BYTE_KIND
+ || kind == PyUnicode_4BYTE_KIND);
+ CHECK(ascii->state.ascii == 0);
+ CHECK(ascii->state.ready == 1);
+ CHECK(compact->utf8 != data);
}
else {
PyUnicodeObject *unicode = (PyUnicodeObject *)op;
data = unicode->data.any;
if (kind == PyUnicode_WCHAR_KIND) {
- CHECK(ascii->length == 0);
- CHECK(ascii->hash == -1);
- CHECK(ascii->state.compact == 0);
- CHECK(ascii->state.ascii == 0);
- CHECK(ascii->state.ready == 0);
- CHECK(ascii->state.interned == SSTATE_NOT_INTERNED);
- CHECK(ascii->wstr != NULL);
- CHECK(data == NULL);
- CHECK(compact->utf8 == NULL);
+ CHECK(ascii->length == 0);
+ CHECK(ascii->hash == -1);
+ CHECK(ascii->state.compact == 0);
+ CHECK(ascii->state.ascii == 0);
+ CHECK(ascii->state.ready == 0);
+ CHECK(ascii->state.interned == SSTATE_NOT_INTERNED);
+ CHECK(ascii->wstr != NULL);
+ CHECK(data == NULL);
+ CHECK(compact->utf8 == NULL);
}
else {
- CHECK(kind == PyUnicode_1BYTE_KIND
- || kind == PyUnicode_2BYTE_KIND
- || kind == PyUnicode_4BYTE_KIND);
- CHECK(ascii->state.compact == 0);
- CHECK(ascii->state.ready == 1);
- CHECK(data != NULL);
+ CHECK(kind == PyUnicode_1BYTE_KIND
+ || kind == PyUnicode_2BYTE_KIND
+ || kind == PyUnicode_4BYTE_KIND);
+ CHECK(ascii->state.compact == 0);
+ CHECK(ascii->state.ready == 1);
+ CHECK(data != NULL);
if (ascii->state.ascii) {
- CHECK(compact->utf8 == data);
- CHECK(compact->utf8_length == ascii->length);
+ CHECK(compact->utf8 == data);
+ CHECK(compact->utf8_length == ascii->length);
}
else
- CHECK(compact->utf8 != data);
+ CHECK(compact->utf8 != data);
}
}
if (kind != PyUnicode_WCHAR_KIND) {
@@ -583,23 +583,23 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
#endif
)
{
- CHECK(ascii->wstr == data);
- CHECK(compact->wstr_length == ascii->length);
+ CHECK(ascii->wstr == data);
+ CHECK(compact->wstr_length == ascii->length);
} else
- CHECK(ascii->wstr != data);
+ CHECK(ascii->wstr != data);
}
if (compact->utf8 == NULL)
- CHECK(compact->utf8_length == 0);
+ CHECK(compact->utf8_length == 0);
if (ascii->wstr == NULL)
- CHECK(compact->wstr_length == 0);
+ CHECK(compact->wstr_length == 0);
}
-
- /* check that the best kind is used: O(n) operation */
- if (check_content && kind != PyUnicode_WCHAR_KIND) {
+
+ /* check that the best kind is used: O(n) operation */
+ if (check_content && kind != PyUnicode_WCHAR_KIND) {
Py_ssize_t i;
Py_UCS4 maxchar = 0;
- const void *data;
+ const void *data;
Py_UCS4 ch;
data = PyUnicode_DATA(ascii);
@@ -611,28 +611,28 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
}
if (kind == PyUnicode_1BYTE_KIND) {
if (ascii->state.ascii == 0) {
- CHECK(maxchar >= 128);
- CHECK(maxchar <= 255);
+ CHECK(maxchar >= 128);
+ CHECK(maxchar <= 255);
}
else
- CHECK(maxchar < 128);
+ CHECK(maxchar < 128);
}
else if (kind == PyUnicode_2BYTE_KIND) {
- CHECK(maxchar >= 0x100);
- CHECK(maxchar <= 0xFFFF);
+ CHECK(maxchar >= 0x100);
+ CHECK(maxchar <= 0xFFFF);
}
else {
- CHECK(maxchar >= 0x10000);
- CHECK(maxchar <= MAX_UNICODE);
+ CHECK(maxchar >= 0x10000);
+ CHECK(maxchar <= MAX_UNICODE);
}
- CHECK(PyUnicode_READ(kind, data, ascii->length) == 0);
+ CHECK(PyUnicode_READ(kind, data, ascii->length) == 0);
}
return 1;
-
-#undef CHECK
+
+#undef CHECK
}
-
+
static PyObject*
unicode_result_wchar(PyObject *unicode)
{
@@ -682,9 +682,9 @@ unicode_result_ready(PyObject *unicode)
return unicode_empty;
}
-#ifdef LATIN1_SINGLETONS
+#ifdef LATIN1_SINGLETONS
if (length == 1) {
- const void *data = PyUnicode_DATA(unicode);
+ const void *data = PyUnicode_DATA(unicode);
int kind = PyUnicode_KIND(unicode);
Py_UCS4 ch = PyUnicode_READ(kind, data, 0);
if (ch < 256) {
@@ -704,7 +704,7 @@ unicode_result_ready(PyObject *unicode)
}
}
}
-#endif
+#endif
assert(_PyUnicode_CheckConsistency(unicode, 1));
return unicode;
@@ -743,7 +743,7 @@ backslashreplace(_PyBytesWriter *writer, char *str,
Py_ssize_t size, i;
Py_UCS4 ch;
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
assert(PyUnicode_IS_READY(unicode));
kind = PyUnicode_KIND(unicode);
@@ -810,7 +810,7 @@ xmlcharrefreplace(_PyBytesWriter *writer, char *str,
Py_ssize_t size, i;
Py_UCS4 ch;
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
assert(PyUnicode_IS_READY(unicode));
kind = PyUnicode_KIND(unicode);
@@ -852,11 +852,11 @@ xmlcharrefreplace(_PyBytesWriter *writer, char *str,
/* generate replacement */
for (i = collstart; i < collend; ++i) {
- size = sprintf(str, "&#%d;", PyUnicode_READ(kind, data, i));
- if (size < 0) {
- return NULL;
- }
- str += size;
+ size = sprintf(str, "&#%d;", PyUnicode_READ(kind, data, i));
+ if (size < 0) {
+ return NULL;
+ }
+ str += size;
}
return str;
}
@@ -890,7 +890,7 @@ static BLOOM_MASK bloom_linebreak = ~(BLOOM_MASK)0;
(BLOOM(bloom_linebreak, (ch)) && Py_UNICODE_ISLINEBREAK(ch)))
static inline BLOOM_MASK
-make_bloom_mask(int kind, const void* ptr, Py_ssize_t len)
+make_bloom_mask(int kind, const void* ptr, Py_ssize_t len)
{
#define BLOOM_UPDATE(TYPE, MASK, PTR, LEN) \
do { \
@@ -980,14 +980,14 @@ ensure_unicode(PyObject *obj)
#include "stringlib/find_max_char.h"
#include "stringlib/undef.h"
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
#include "stringlib/unicodedefs.h"
#include "stringlib/fastsearch.h"
#include "stringlib/count.h"
#include "stringlib/find.h"
#include "stringlib/undef.h"
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
/* --- Unicode Object ----------------------------------------------------- */
@@ -1001,21 +1001,21 @@ findchar(const void *s, int kind,
if ((Py_UCS1) ch != ch)
return -1;
if (direction > 0)
- return ucs1lib_find_char((const Py_UCS1 *) s, size, (Py_UCS1) ch);
+ return ucs1lib_find_char((const Py_UCS1 *) s, size, (Py_UCS1) ch);
else
- return ucs1lib_rfind_char((const Py_UCS1 *) s, size, (Py_UCS1) ch);
+ return ucs1lib_rfind_char((const Py_UCS1 *) s, size, (Py_UCS1) ch);
case PyUnicode_2BYTE_KIND:
if ((Py_UCS2) ch != ch)
return -1;
if (direction > 0)
- return ucs2lib_find_char((const Py_UCS2 *) s, size, (Py_UCS2) ch);
+ return ucs2lib_find_char((const Py_UCS2 *) s, size, (Py_UCS2) ch);
else
- return ucs2lib_rfind_char((const Py_UCS2 *) s, size, (Py_UCS2) ch);
+ return ucs2lib_rfind_char((const Py_UCS2 *) s, size, (Py_UCS2) ch);
case PyUnicode_4BYTE_KIND:
if (direction > 0)
- return ucs4lib_find_char((const Py_UCS4 *) s, size, ch);
+ return ucs4lib_find_char((const Py_UCS4 *) s, size, ch);
else
- return ucs4lib_rfind_char((const Py_UCS4 *) s, size, ch);
+ return ucs4lib_rfind_char((const Py_UCS4 *) s, size, ch);
default:
Py_UNREACHABLE();
}
@@ -1074,12 +1074,12 @@ resize_compact(PyObject *unicode, Py_ssize_t length)
_PyUnicode_UTF8(unicode) = NULL;
_PyUnicode_UTF8_LENGTH(unicode) = 0;
}
-#ifdef Py_REF_DEBUG
- _Py_RefTotal--;
-#endif
-#ifdef Py_TRACE_REFS
+#ifdef Py_REF_DEBUG
+ _Py_RefTotal--;
+#endif
+#ifdef Py_TRACE_REFS
_Py_ForgetReference(unicode);
-#endif
+#endif
new_unicode = (PyObject *)PyObject_REALLOC(unicode, new_size);
if (new_unicode == NULL) {
@@ -1332,18 +1332,18 @@ unicode_kind_name(PyObject *unicode)
#ifdef Py_DEBUG
/* Functions wrapping macros for use in debugger */
-const char *_PyUnicode_utf8(void *unicode_raw){
- PyObject *unicode = _PyObject_CAST(unicode_raw);
+const char *_PyUnicode_utf8(void *unicode_raw){
+ PyObject *unicode = _PyObject_CAST(unicode_raw);
return PyUnicode_UTF8(unicode);
}
-const void *_PyUnicode_compact_data(void *unicode_raw) {
- PyObject *unicode = _PyObject_CAST(unicode_raw);
+const void *_PyUnicode_compact_data(void *unicode_raw) {
+ PyObject *unicode = _PyObject_CAST(unicode_raw);
return _PyUnicode_COMPACT_DATA(unicode);
}
-const void *_PyUnicode_data(void *unicode_raw) {
- PyObject *unicode = _PyObject_CAST(unicode_raw);
- printf("obj %p\n", (void*)unicode);
+const void *_PyUnicode_data(void *unicode_raw) {
+ PyObject *unicode = _PyObject_CAST(unicode_raw);
+ printf("obj %p\n", (void*)unicode);
printf("compact %d\n", PyUnicode_IS_COMPACT(unicode));
printf("compact ascii %d\n", PyUnicode_IS_COMPACT_ASCII(unicode));
printf("ascii op %p\n", ((void*)((PyASCIIObject*)(unicode) + 1)));
@@ -1358,7 +1358,7 @@ _PyUnicode_Dump(PyObject *op)
PyASCIIObject *ascii = (PyASCIIObject *)op;
PyCompactUnicodeObject *compact = (PyCompactUnicodeObject *)op;
PyUnicodeObject *unicode = (PyUnicodeObject *)op;
- const void *data;
+ const void *data;
if (ascii->state.compact)
{
@@ -1374,14 +1374,14 @@ _PyUnicode_Dump(PyObject *op)
if (ascii->wstr == data)
printf("shared ");
- printf("wstr=%p", (void *)ascii->wstr);
+ printf("wstr=%p", (void *)ascii->wstr);
if (!(ascii->state.ascii == 1 && ascii->state.compact == 1)) {
printf(" (%" PY_FORMAT_SIZE_T "u), ", compact->wstr_length);
if (!ascii->state.compact && compact->utf8 == unicode->data.any)
printf("shared ");
printf("utf8=%p (%" PY_FORMAT_SIZE_T "u)",
- (void *)compact->utf8, compact->utf8_length);
+ (void *)compact->utf8, compact->utf8_length);
}
printf(", data=%p\n", data);
}
@@ -1558,8 +1558,8 @@ _copy_characters(PyObject *to, Py_ssize_t to_start,
Py_ssize_t how_many, int check_maxchar)
{
unsigned int from_kind, to_kind;
- const void *from_data;
- void *to_data;
+ const void *from_data;
+ void *to_data;
assert(0 <= how_many);
assert(0 <= from_start);
@@ -1584,7 +1584,7 @@ _copy_characters(PyObject *to, Py_ssize_t to_start,
if (!check_maxchar
&& PyUnicode_MAX_CHAR_VALUE(from) > PyUnicode_MAX_CHAR_VALUE(to))
{
- Py_UCS4 to_maxchar = PyUnicode_MAX_CHAR_VALUE(to);
+ Py_UCS4 to_maxchar = PyUnicode_MAX_CHAR_VALUE(to);
Py_UCS4 ch;
Py_ssize_t i;
for (i=0; i < how_many; i++) {
@@ -1602,12 +1602,12 @@ _copy_characters(PyObject *to, Py_ssize_t to_start,
check that all written characters are pure ASCII */
Py_UCS4 max_char;
max_char = ucs1lib_find_max_char(from_data,
- (const Py_UCS1*)from_data + how_many);
+ (const Py_UCS1*)from_data + how_many);
if (max_char >= 128)
return -1;
}
memcpy((char*)to_data + to_kind * to_start,
- (const char*)from_data + from_kind * from_start,
+ (const char*)from_data + from_kind * from_start,
to_kind * how_many);
}
else if (from_kind == PyUnicode_1BYTE_KIND
@@ -1794,8 +1794,8 @@ find_maxchar_surrogates(const wchar_t *begin, const wchar_t *end,
*maxchar = ch;
if (*maxchar > MAX_UNICODE) {
PyErr_Format(PyExc_ValueError,
- "character U+%x is not in range [U+0000; U+%x]",
- ch, MAX_UNICODE);
+ "character U+%x is not in range [U+0000; U+%x]",
+ ch, MAX_UNICODE);
return -1;
}
}
@@ -1891,7 +1891,7 @@ _PyUnicode_Ready(PyObject *unicode)
_PyUnicode_WSTR_LENGTH(unicode) = 0;
#endif
}
- /* maxchar exceeds 16 bit, wee need 4 bytes for unicode characters */
+ /* maxchar exceeds 16 bit, wee need 4 bytes for unicode characters */
else {
#if SIZEOF_WCHAR_T == 2
/* in case the native representation is 2-bytes, we need to allocate a
@@ -1941,32 +1941,32 @@ unicode_dealloc(PyObject *unicode)
case SSTATE_INTERNED_MORTAL:
/* revive dead object temporarily for DelItem */
- Py_SET_REFCNT(unicode, 3);
-#ifdef INTERNED_STRINGS
- if (PyDict_DelItem(interned, unicode) != 0) {
- _PyErr_WriteUnraisableMsg("deletion of interned string failed",
- NULL);
- }
-#endif
+ Py_SET_REFCNT(unicode, 3);
+#ifdef INTERNED_STRINGS
+ if (PyDict_DelItem(interned, unicode) != 0) {
+ _PyErr_WriteUnraisableMsg("deletion of interned string failed",
+ NULL);
+ }
+#endif
break;
case SSTATE_INTERNED_IMMORTAL:
- _PyObject_ASSERT_FAILED_MSG(unicode, "Immortal interned string died");
- break;
+ _PyObject_ASSERT_FAILED_MSG(unicode, "Immortal interned string died");
+ break;
default:
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
- if (_PyUnicode_HAS_WSTR_MEMORY(unicode)) {
+ if (_PyUnicode_HAS_WSTR_MEMORY(unicode)) {
PyObject_DEL(_PyUnicode_WSTR(unicode));
- }
- if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) {
+ }
+ if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) {
PyObject_DEL(_PyUnicode_UTF8(unicode));
- }
- if (!PyUnicode_IS_COMPACT(unicode) && _PyUnicode_DATA_ANY(unicode)) {
+ }
+ if (!PyUnicode_IS_COMPACT(unicode) && _PyUnicode_DATA_ANY(unicode)) {
PyObject_DEL(_PyUnicode_DATA_ANY(unicode));
- }
+ }
Py_TYPE(unicode)->tp_free(unicode);
}
@@ -1975,10 +1975,10 @@ unicode_dealloc(PyObject *unicode)
static int
unicode_is_singleton(PyObject *unicode)
{
- if (unicode == unicode_empty) {
- return 1;
- }
-#ifdef LATIN1_SINGLETONS
+ if (unicode == unicode_empty) {
+ return 1;
+ }
+#ifdef LATIN1_SINGLETONS
PyASCIIObject *ascii = (PyASCIIObject *)unicode;
if (ascii->state.kind != PyUnicode_WCHAR_KIND && ascii->length == 1)
{
@@ -1986,7 +1986,7 @@ unicode_is_singleton(PyObject *unicode)
if (ch < 256 && unicode_latin1[ch] == unicode)
return 1;
}
-#endif
+#endif
return 0;
}
#endif
@@ -2083,10 +2083,10 @@ unicode_write_cstr(PyObject *unicode, Py_ssize_t index,
const char *str, Py_ssize_t len)
{
enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
- const void *data = PyUnicode_DATA(unicode);
+ const void *data = PyUnicode_DATA(unicode);
const char *end = str + len;
- assert(index + len <= PyUnicode_GET_LENGTH(unicode));
+ assert(index + len <= PyUnicode_GET_LENGTH(unicode));
switch (kind) {
case PyUnicode_1BYTE_KIND: {
#ifdef Py_DEBUG
@@ -2110,7 +2110,7 @@ unicode_write_cstr(PyObject *unicode, Py_ssize_t index,
assert((ucs2 - start) <= PyUnicode_GET_LENGTH(unicode));
break;
}
- case PyUnicode_4BYTE_KIND: {
+ case PyUnicode_4BYTE_KIND: {
Py_UCS4 *start = (Py_UCS4 *)data + index;
Py_UCS4 *ucs4 = start;
@@ -2118,38 +2118,38 @@ unicode_write_cstr(PyObject *unicode, Py_ssize_t index,
*ucs4 = (Py_UCS4)*str;
assert((ucs4 - start) <= PyUnicode_GET_LENGTH(unicode));
- break;
+ break;
}
- default:
- Py_UNREACHABLE();
+ default:
+ Py_UNREACHABLE();
}
}
static PyObject*
get_latin1_char(unsigned char ch)
{
- PyObject *unicode;
-
-#ifdef LATIN1_SINGLETONS
- unicode = unicode_latin1[ch];
- if (unicode) {
- Py_INCREF(unicode);
- return unicode;
- }
-#endif
-
- unicode = PyUnicode_New(1, ch);
+ PyObject *unicode;
+
+#ifdef LATIN1_SINGLETONS
+ unicode = unicode_latin1[ch];
+ if (unicode) {
+ Py_INCREF(unicode);
+ return unicode;
+ }
+#endif
+
+ unicode = PyUnicode_New(1, ch);
if (!unicode) {
- return NULL;
+ return NULL;
}
-
- PyUnicode_1BYTE_DATA(unicode)[0] = ch;
- assert(_PyUnicode_CheckConsistency(unicode, 1));
-
-#ifdef LATIN1_SINGLETONS
+
+ PyUnicode_1BYTE_DATA(unicode)[0] = ch;
+ assert(_PyUnicode_CheckConsistency(unicode, 1));
+
+#ifdef LATIN1_SINGLETONS
Py_INCREF(unicode);
- unicode_latin1[ch] = unicode;
-#endif
+ unicode_latin1[ch] = unicode;
+#endif
return unicode;
}
@@ -2215,20 +2215,20 @@ PyUnicode_FromWideChar(const wchar_t *u, Py_ssize_t size)
if (size == 0)
_Py_RETURN_UNICODE_EMPTY();
-#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
- /* Oracle Solaris uses non-Unicode internal wchar_t form for
- non-Unicode locales and hence needs conversion to UCS-4 first. */
- if (_Py_LocaleUsesNonUnicodeWchar()) {
- wchar_t* converted = _Py_DecodeNonUnicodeWchar(u, size);
- if (!converted) {
- return NULL;
- }
- PyObject *unicode = _PyUnicode_FromUCS4(converted, size);
- PyMem_Free(converted);
- return unicode;
- }
-#endif
-
+#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+ /* Oracle Solaris uses non-Unicode internal wchar_t form for
+ non-Unicode locales and hence needs conversion to UCS-4 first. */
+ if (_Py_LocaleUsesNonUnicodeWchar()) {
+ wchar_t* converted = _Py_DecodeNonUnicodeWchar(u, size);
+ if (!converted) {
+ return NULL;
+ }
+ PyObject *unicode = _PyUnicode_FromUCS4(converted, size);
+ PyMem_Free(converted);
+ return unicode;
+ }
+#endif
+
/* Single character Unicode objects in the Latin-1 range are
shared when using this constructor */
if (size == 1 && (Py_UCS4)*u < 256)
@@ -2316,8 +2316,8 @@ _PyUnicode_FromId(_Py_Identifier *id)
return id->object;
}
-static void
-unicode_clear_static_strings(void)
+static void
+unicode_clear_static_strings(void)
{
_Py_Identifier *tmp, *s = static_strings;
while (s) {
@@ -2464,7 +2464,7 @@ Py_UCS4
_PyUnicode_FindMaxChar(PyObject *unicode, Py_ssize_t start, Py_ssize_t end)
{
enum PyUnicode_Kind kind;
- const void *startptr, *endptr;
+ const void *startptr, *endptr;
assert(PyUnicode_IS_READY(unicode));
assert(0 <= start);
@@ -2527,15 +2527,15 @@ unicode_adjust_maxchar(PyObject **p_unicode)
if (max_char >= 256)
return;
}
- else if (kind == PyUnicode_4BYTE_KIND) {
+ else if (kind == PyUnicode_4BYTE_KIND) {
const Py_UCS4 *u = PyUnicode_4BYTE_DATA(unicode);
max_char = ucs4lib_find_max_char(u, u + len);
if (max_char >= 0x10000)
return;
}
- else
- Py_UNREACHABLE();
-
+ else
+ Py_UNREACHABLE();
+
copy = PyUnicode_New(len, max_char);
if (copy != NULL)
_PyUnicode_FastCopyCharacters(copy, 0, unicode, 0, len);
@@ -2572,12 +2572,12 @@ _PyUnicode_Copy(PyObject *unicode)
/* Widen Unicode objects to larger buffers. Don't write terminating null
character. Return NULL on error. */
-static void*
-unicode_askind(unsigned int skind, void const *data, Py_ssize_t len, unsigned int kind)
+static void*
+unicode_askind(unsigned int skind, void const *data, Py_ssize_t len, unsigned int kind)
{
void *result;
- assert(skind < kind);
+ assert(skind < kind);
switch (kind) {
case PyUnicode_2BYTE_KIND:
result = PyMem_New(Py_UCS2, len);
@@ -2586,8 +2586,8 @@ unicode_askind(unsigned int skind, void const *data, Py_ssize_t len, unsigned in
assert(skind == PyUnicode_1BYTE_KIND);
_PyUnicode_CONVERT_BYTES(
Py_UCS1, Py_UCS2,
- (const Py_UCS1 *)data,
- ((const Py_UCS1 *)data) + len,
+ (const Py_UCS1 *)data,
+ ((const Py_UCS1 *)data) + len,
result);
return result;
case PyUnicode_4BYTE_KIND:
@@ -2597,22 +2597,22 @@ unicode_askind(unsigned int skind, void const *data, Py_ssize_t len, unsigned in
if (skind == PyUnicode_2BYTE_KIND) {
_PyUnicode_CONVERT_BYTES(
Py_UCS2, Py_UCS4,
- (const Py_UCS2 *)data,
- ((const Py_UCS2 *)data) + len,
+ (const Py_UCS2 *)data,
+ ((const Py_UCS2 *)data) + len,
result);
}
else {
assert(skind == PyUnicode_1BYTE_KIND);
_PyUnicode_CONVERT_BYTES(
Py_UCS1, Py_UCS4,
- (const Py_UCS1 *)data,
- ((const Py_UCS1 *)data) + len,
+ (const Py_UCS1 *)data,
+ ((const Py_UCS1 *)data) + len,
result);
}
return result;
default:
- Py_UNREACHABLE();
- return NULL;
+ Py_UNREACHABLE();
+ return NULL;
}
}
@@ -2621,7 +2621,7 @@ as_ucs4(PyObject *string, Py_UCS4 *target, Py_ssize_t targetsize,
int copy_null)
{
int kind;
- const void *data;
+ const void *data;
Py_ssize_t len, targetlen;
if (PyUnicode_READY(string) == -1)
return NULL;
@@ -2648,19 +2648,19 @@ as_ucs4(PyObject *string, Py_UCS4 *target, Py_ssize_t targetsize,
}
}
if (kind == PyUnicode_1BYTE_KIND) {
- const Py_UCS1 *start = (const Py_UCS1 *) data;
+ const Py_UCS1 *start = (const Py_UCS1 *) data;
_PyUnicode_CONVERT_BYTES(Py_UCS1, Py_UCS4, start, start + len, target);
}
else if (kind == PyUnicode_2BYTE_KIND) {
- const Py_UCS2 *start = (const Py_UCS2 *) data;
+ const Py_UCS2 *start = (const Py_UCS2 *) data;
_PyUnicode_CONVERT_BYTES(Py_UCS2, Py_UCS4, start, start + len, target);
}
- else if (kind == PyUnicode_4BYTE_KIND) {
+ else if (kind == PyUnicode_4BYTE_KIND) {
memcpy(target, data, len * sizeof(Py_UCS4));
}
- else {
- Py_UNREACHABLE();
- }
+ else {
+ Py_UNREACHABLE();
+ }
if (copy_null)
target[len] = 0;
return target;
@@ -3126,83 +3126,83 @@ PyUnicode_FromFormat(const char *format, ...)
return ret;
}
-static Py_ssize_t
-unicode_get_widechar_size(PyObject *unicode)
-{
- Py_ssize_t res;
-
- assert(unicode != NULL);
- assert(_PyUnicode_CHECK(unicode));
-
- if (_PyUnicode_WSTR(unicode) != NULL) {
- return PyUnicode_WSTR_LENGTH(unicode);
- }
- assert(PyUnicode_IS_READY(unicode));
-
- res = _PyUnicode_LENGTH(unicode);
-#if SIZEOF_WCHAR_T == 2
- if (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND) {
- const Py_UCS4 *s = PyUnicode_4BYTE_DATA(unicode);
- const Py_UCS4 *end = s + res;
- for (; s < end; ++s) {
- if (*s > 0xFFFF) {
- ++res;
- }
- }
- }
-#endif
- return res;
-}
-
-static void
-unicode_copy_as_widechar(PyObject *unicode, wchar_t *w, Py_ssize_t size)
-{
- const wchar_t *wstr;
-
- assert(unicode != NULL);
- assert(_PyUnicode_CHECK(unicode));
-
- wstr = _PyUnicode_WSTR(unicode);
- if (wstr != NULL) {
- memcpy(w, wstr, size * sizeof(wchar_t));
- return;
- }
- assert(PyUnicode_IS_READY(unicode));
-
- if (PyUnicode_KIND(unicode) == PyUnicode_1BYTE_KIND) {
- const Py_UCS1 *s = PyUnicode_1BYTE_DATA(unicode);
- for (; size--; ++s, ++w) {
- *w = *s;
- }
- }
- else {
-#if SIZEOF_WCHAR_T == 4
- assert(PyUnicode_KIND(unicode) == PyUnicode_2BYTE_KIND);
- const Py_UCS2 *s = PyUnicode_2BYTE_DATA(unicode);
- for (; size--; ++s, ++w) {
- *w = *s;
- }
-#else
- assert(PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND);
- const Py_UCS4 *s = PyUnicode_4BYTE_DATA(unicode);
- for (; size--; ++s, ++w) {
- Py_UCS4 ch = *s;
- if (ch > 0xFFFF) {
- assert(ch <= MAX_UNICODE);
- /* encode surrogate pair in this case */
- *w++ = Py_UNICODE_HIGH_SURROGATE(ch);
- if (!size--)
- break;
- *w = Py_UNICODE_LOW_SURROGATE(ch);
- }
- else {
- *w = ch;
- }
- }
-#endif
- }
-}
-
+static Py_ssize_t
+unicode_get_widechar_size(PyObject *unicode)
+{
+ Py_ssize_t res;
+
+ assert(unicode != NULL);
+ assert(_PyUnicode_CHECK(unicode));
+
+ if (_PyUnicode_WSTR(unicode) != NULL) {
+ return PyUnicode_WSTR_LENGTH(unicode);
+ }
+ assert(PyUnicode_IS_READY(unicode));
+
+ res = _PyUnicode_LENGTH(unicode);
+#if SIZEOF_WCHAR_T == 2
+ if (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND) {
+ const Py_UCS4 *s = PyUnicode_4BYTE_DATA(unicode);
+ const Py_UCS4 *end = s + res;
+ for (; s < end; ++s) {
+ if (*s > 0xFFFF) {
+ ++res;
+ }
+ }
+ }
+#endif
+ return res;
+}
+
+static void
+unicode_copy_as_widechar(PyObject *unicode, wchar_t *w, Py_ssize_t size)
+{
+ const wchar_t *wstr;
+
+ assert(unicode != NULL);
+ assert(_PyUnicode_CHECK(unicode));
+
+ wstr = _PyUnicode_WSTR(unicode);
+ if (wstr != NULL) {
+ memcpy(w, wstr, size * sizeof(wchar_t));
+ return;
+ }
+ assert(PyUnicode_IS_READY(unicode));
+
+ if (PyUnicode_KIND(unicode) == PyUnicode_1BYTE_KIND) {
+ const Py_UCS1 *s = PyUnicode_1BYTE_DATA(unicode);
+ for (; size--; ++s, ++w) {
+ *w = *s;
+ }
+ }
+ else {
+#if SIZEOF_WCHAR_T == 4
+ assert(PyUnicode_KIND(unicode) == PyUnicode_2BYTE_KIND);
+ const Py_UCS2 *s = PyUnicode_2BYTE_DATA(unicode);
+ for (; size--; ++s, ++w) {
+ *w = *s;
+ }
+#else
+ assert(PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND);
+ const Py_UCS4 *s = PyUnicode_4BYTE_DATA(unicode);
+ for (; size--; ++s, ++w) {
+ Py_UCS4 ch = *s;
+ if (ch > 0xFFFF) {
+ assert(ch <= MAX_UNICODE);
+ /* encode surrogate pair in this case */
+ *w++ = Py_UNICODE_HIGH_SURROGATE(ch);
+ if (!size--)
+ break;
+ *w = Py_UNICODE_LOW_SURROGATE(ch);
+ }
+ else {
+ *w = ch;
+ }
+ }
+#endif
+ }
+}
+
#ifdef HAVE_WCHAR_H
/* Convert a Unicode object to a wide character string.
@@ -3224,35 +3224,35 @@ PyUnicode_AsWideChar(PyObject *unicode,
PyErr_BadInternalCall();
return -1;
}
- if (!PyUnicode_Check(unicode)) {
- PyErr_BadArgument();
+ if (!PyUnicode_Check(unicode)) {
+ PyErr_BadArgument();
return -1;
- }
-
- res = unicode_get_widechar_size(unicode);
- if (w == NULL) {
- return res + 1;
- }
-
- if (size > res) {
- size = res + 1;
- }
- else {
- res = size;
- }
- unicode_copy_as_widechar(unicode, w, size);
-
-#if HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
- /* Oracle Solaris uses non-Unicode internal wchar_t form for
- non-Unicode locales and hence needs conversion first. */
- if (_Py_LocaleUsesNonUnicodeWchar()) {
- if (_Py_EncodeNonUnicodeWchar_InPlace(w, size) < 0) {
- return -1;
- }
- }
-#endif
-
- return res;
+ }
+
+ res = unicode_get_widechar_size(unicode);
+ if (w == NULL) {
+ return res + 1;
+ }
+
+ if (size > res) {
+ size = res + 1;
+ }
+ else {
+ res = size;
+ }
+ unicode_copy_as_widechar(unicode, w, size);
+
+#if HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+ /* Oracle Solaris uses non-Unicode internal wchar_t form for
+ non-Unicode locales and hence needs conversion first. */
+ if (_Py_LocaleUsesNonUnicodeWchar()) {
+ if (_Py_EncodeNonUnicodeWchar_InPlace(w, size) < 0) {
+ return -1;
+ }
+ }
+#endif
+
+ return res;
}
wchar_t*
@@ -3266,38 +3266,38 @@ PyUnicode_AsWideCharString(PyObject *unicode,
PyErr_BadInternalCall();
return NULL;
}
- if (!PyUnicode_Check(unicode)) {
- PyErr_BadArgument();
+ if (!PyUnicode_Check(unicode)) {
+ PyErr_BadArgument();
return NULL;
}
- buflen = unicode_get_widechar_size(unicode);
- buffer = (wchar_t *) PyMem_NEW(wchar_t, (buflen + 1));
+ buflen = unicode_get_widechar_size(unicode);
+ buffer = (wchar_t *) PyMem_NEW(wchar_t, (buflen + 1));
if (buffer == NULL) {
PyErr_NoMemory();
return NULL;
}
- unicode_copy_as_widechar(unicode, buffer, buflen + 1);
-
-#if HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
- /* Oracle Solaris uses non-Unicode internal wchar_t form for
- non-Unicode locales and hence needs conversion first. */
- if (_Py_LocaleUsesNonUnicodeWchar()) {
- if (_Py_EncodeNonUnicodeWchar_InPlace(buffer, (buflen + 1)) < 0) {
- return NULL;
- }
- }
-#endif
-
- if (size != NULL) {
+ unicode_copy_as_widechar(unicode, buffer, buflen + 1);
+
+#if HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+ /* Oracle Solaris uses non-Unicode internal wchar_t form for
+ non-Unicode locales and hence needs conversion first. */
+ if (_Py_LocaleUsesNonUnicodeWchar()) {
+ if (_Py_EncodeNonUnicodeWchar_InPlace(buffer, (buflen + 1)) < 0) {
+ return NULL;
+ }
+ }
+#endif
+
+ if (size != NULL) {
*size = buflen;
- }
- else if (wcslen(buffer) != (size_t)buflen) {
- PyMem_FREE(buffer);
- PyErr_SetString(PyExc_ValueError,
- "embedded null character");
- return NULL;
- }
+ }
+ else if (wcslen(buffer) != (size_t)buflen) {
+ PyMem_FREE(buffer);
+ PyErr_SetString(PyExc_ValueError,
+ "embedded null character");
+ return NULL;
+ }
return buffer;
}
@@ -3352,13 +3352,13 @@ PyUnicode_FromEncodedObject(PyObject *obj,
/* Decoding bytes objects is the most common case and should be fast */
if (PyBytes_Check(obj)) {
- if (PyBytes_GET_SIZE(obj) == 0) {
- if (unicode_check_encoding_errors(encoding, errors) < 0) {
- return NULL;
- }
+ if (PyBytes_GET_SIZE(obj) == 0) {
+ if (unicode_check_encoding_errors(encoding, errors) < 0) {
+ return NULL;
+ }
_Py_RETURN_UNICODE_EMPTY();
- }
- return PyUnicode_Decode(
+ }
+ return PyUnicode_Decode(
PyBytes_AS_STRING(obj), PyBytes_GET_SIZE(obj),
encoding, errors);
}
@@ -3379,9 +3379,9 @@ PyUnicode_FromEncodedObject(PyObject *obj,
if (buffer.len == 0) {
PyBuffer_Release(&buffer);
- if (unicode_check_encoding_errors(encoding, errors) < 0) {
- return NULL;
- }
+ if (unicode_check_encoding_errors(encoding, errors) < 0) {
+ return NULL;
+ }
_Py_RETURN_UNICODE_EMPTY();
}
@@ -3449,14 +3449,14 @@ PyUnicode_Decode(const char *s,
Py_buffer info;
char buflower[11]; /* strlen("iso-8859-1\0") == 11, longest shortcut */
- if (unicode_check_encoding_errors(encoding, errors) < 0) {
- return NULL;
- }
-
- if (size == 0) {
- _Py_RETURN_UNICODE_EMPTY();
- }
-
+ if (unicode_check_encoding_errors(encoding, errors) < 0) {
+ return NULL;
+ }
+
+ if (size == 0) {
+ _Py_RETURN_UNICODE_EMPTY();
+ }
+
if (encoding == NULL) {
return PyUnicode_DecodeUTF8Stateful(s, size, errors, NULL);
}
@@ -3639,7 +3639,7 @@ PyUnicode_AsEncodedObject(PyObject *unicode,
static PyObject *
-unicode_encode_locale(PyObject *unicode, _Py_error_handler error_handler,
+unicode_encode_locale(PyObject *unicode, _Py_error_handler error_handler,
int current_locale)
{
Py_ssize_t wlen;
@@ -3658,7 +3658,7 @@ unicode_encode_locale(PyObject *unicode, _Py_error_handler error_handler,
size_t error_pos;
const char *reason;
int res = _Py_EncodeLocaleEx(wstr, &str, &error_pos, &reason,
- current_locale, error_handler);
+ current_locale, error_handler);
PyMem_Free(wstr);
if (res != 0) {
@@ -3674,9 +3674,9 @@ unicode_encode_locale(PyObject *unicode, _Py_error_handler error_handler,
Py_DECREF(exc);
}
}
- else if (res == -3) {
- PyErr_SetString(PyExc_ValueError, "unsupported error handler");
- }
+ else if (res == -3) {
+ PyErr_SetString(PyExc_ValueError, "unsupported error handler");
+ }
else {
PyErr_NoMemory();
}
@@ -3691,41 +3691,41 @@ unicode_encode_locale(PyObject *unicode, _Py_error_handler error_handler,
PyObject *
PyUnicode_EncodeLocale(PyObject *unicode, const char *errors)
{
- _Py_error_handler error_handler = _Py_GetErrorHandler(errors);
- return unicode_encode_locale(unicode, error_handler, 1);
+ _Py_error_handler error_handler = _Py_GetErrorHandler(errors);
+ return unicode_encode_locale(unicode, error_handler, 1);
}
PyObject *
PyUnicode_EncodeFSDefault(PyObject *unicode)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- struct _Py_unicode_fs_codec *fs_codec = &interp->unicode.fs_codec;
- if (fs_codec->utf8) {
- return unicode_encode_utf8(unicode,
- fs_codec->error_handler,
- fs_codec->errors);
- }
-#ifndef _Py_FORCE_UTF8_FS_ENCODING
- else if (fs_codec->encoding) {
- return PyUnicode_AsEncodedString(unicode,
- fs_codec->encoding,
- fs_codec->errors);
- }
-#endif
- else {
- /* Before _PyUnicode_InitEncodings() is called, the Python codec
- machinery is not ready and so cannot be used:
- use wcstombs() in this case. */
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- const wchar_t *filesystem_errors = config->filesystem_errors;
- assert(filesystem_errors != NULL);
- _Py_error_handler errors = get_error_handler_wide(filesystem_errors);
- assert(errors != _Py_ERROR_UNKNOWN);
-#ifdef _Py_FORCE_UTF8_FS_ENCODING
- return unicode_encode_utf8(unicode, errors, NULL);
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ struct _Py_unicode_fs_codec *fs_codec = &interp->unicode.fs_codec;
+ if (fs_codec->utf8) {
+ return unicode_encode_utf8(unicode,
+ fs_codec->error_handler,
+ fs_codec->errors);
+ }
+#ifndef _Py_FORCE_UTF8_FS_ENCODING
+ else if (fs_codec->encoding) {
+ return PyUnicode_AsEncodedString(unicode,
+ fs_codec->encoding,
+ fs_codec->errors);
+ }
+#endif
+ else {
+ /* Before _PyUnicode_InitEncodings() is called, the Python codec
+ machinery is not ready and so cannot be used:
+ use wcstombs() in this case. */
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ const wchar_t *filesystem_errors = config->filesystem_errors;
+ assert(filesystem_errors != NULL);
+ _Py_error_handler errors = get_error_handler_wide(filesystem_errors);
+ assert(errors != _Py_ERROR_UNKNOWN);
+#ifdef _Py_FORCE_UTF8_FS_ENCODING
+ return unicode_encode_utf8(unicode, errors, NULL);
#else
- return unicode_encode_locale(unicode, errors, 0);
-#endif
+ return unicode_encode_locale(unicode, errors, 0);
+#endif
}
}
@@ -3742,10 +3742,10 @@ PyUnicode_AsEncodedString(PyObject *unicode,
return NULL;
}
- if (unicode_check_encoding_errors(encoding, errors) < 0) {
- return NULL;
- }
-
+ if (unicode_check_encoding_errors(encoding, errors) < 0) {
+ return NULL;
+ }
+
if (encoding == NULL) {
return _PyUnicode_AsUTF8String(unicode, errors);
}
@@ -3869,8 +3869,8 @@ PyUnicode_AsEncodedUnicode(PyObject *unicode,
}
static PyObject*
-unicode_decode_locale(const char *str, Py_ssize_t len,
- _Py_error_handler errors, int current_locale)
+unicode_decode_locale(const char *str, Py_ssize_t len,
+ _Py_error_handler errors, int current_locale)
{
if (str[len] != '\0' || (size_t)len != strlen(str)) {
PyErr_SetString(PyExc_ValueError, "embedded null byte");
@@ -3881,7 +3881,7 @@ unicode_decode_locale(const char *str, Py_ssize_t len,
size_t wlen;
const char *reason;
int res = _Py_DecodeLocaleEx(str, &wstr, &wlen, &reason,
- current_locale, errors);
+ current_locale, errors);
if (res != 0) {
if (res == -2) {
PyObject *exc;
@@ -3895,9 +3895,9 @@ unicode_decode_locale(const char *str, Py_ssize_t len,
Py_DECREF(exc);
}
}
- else if (res == -3) {
- PyErr_SetString(PyExc_ValueError, "unsupported error handler");
- }
+ else if (res == -3) {
+ PyErr_SetString(PyExc_ValueError, "unsupported error handler");
+ }
else {
PyErr_NoMemory();
}
@@ -3913,16 +3913,16 @@ PyObject*
PyUnicode_DecodeLocaleAndSize(const char *str, Py_ssize_t len,
const char *errors)
{
- _Py_error_handler error_handler = _Py_GetErrorHandler(errors);
- return unicode_decode_locale(str, len, error_handler, 1);
+ _Py_error_handler error_handler = _Py_GetErrorHandler(errors);
+ return unicode_decode_locale(str, len, error_handler, 1);
}
PyObject*
PyUnicode_DecodeLocale(const char *str, const char *errors)
{
Py_ssize_t size = (Py_ssize_t)strlen(str);
- _Py_error_handler error_handler = _Py_GetErrorHandler(errors);
- return unicode_decode_locale(str, size, error_handler, 1);
+ _Py_error_handler error_handler = _Py_GetErrorHandler(errors);
+ return unicode_decode_locale(str, size, error_handler, 1);
}
@@ -3935,35 +3935,35 @@ PyUnicode_DecodeFSDefault(const char *s) {
PyObject*
PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- struct _Py_unicode_fs_codec *fs_codec = &interp->unicode.fs_codec;
- if (fs_codec->utf8) {
- return unicode_decode_utf8(s, size,
- fs_codec->error_handler,
- fs_codec->errors,
- NULL);
- }
-#ifndef _Py_FORCE_UTF8_FS_ENCODING
- else if (fs_codec->encoding) {
- return PyUnicode_Decode(s, size,
- fs_codec->encoding,
- fs_codec->errors);
- }
-#endif
- else {
- /* Before _PyUnicode_InitEncodings() is called, the Python codec
- machinery is not ready and so cannot be used:
- use mbstowcs() in this case. */
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- const wchar_t *filesystem_errors = config->filesystem_errors;
- assert(filesystem_errors != NULL);
- _Py_error_handler errors = get_error_handler_wide(filesystem_errors);
- assert(errors != _Py_ERROR_UNKNOWN);
-#ifdef _Py_FORCE_UTF8_FS_ENCODING
- return unicode_decode_utf8(s, size, errors, NULL, NULL);
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ struct _Py_unicode_fs_codec *fs_codec = &interp->unicode.fs_codec;
+ if (fs_codec->utf8) {
+ return unicode_decode_utf8(s, size,
+ fs_codec->error_handler,
+ fs_codec->errors,
+ NULL);
+ }
+#ifndef _Py_FORCE_UTF8_FS_ENCODING
+ else if (fs_codec->encoding) {
+ return PyUnicode_Decode(s, size,
+ fs_codec->encoding,
+ fs_codec->errors);
+ }
+#endif
+ else {
+ /* Before _PyUnicode_InitEncodings() is called, the Python codec
+ machinery is not ready and so cannot be used:
+ use mbstowcs() in this case. */
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ const wchar_t *filesystem_errors = config->filesystem_errors;
+ assert(filesystem_errors != NULL);
+ _Py_error_handler errors = get_error_handler_wide(filesystem_errors);
+ assert(errors != _Py_ERROR_UNKNOWN);
+#ifdef _Py_FORCE_UTF8_FS_ENCODING
+ return unicode_decode_utf8(s, size, errors, NULL, NULL);
#else
- return unicode_decode_locale(s, size, errors, 0);
-#endif
+ return unicode_decode_locale(s, size, errors, 0);
+#endif
}
}
@@ -3974,7 +3974,7 @@ PyUnicode_FSConverter(PyObject* arg, void* addr)
PyObject *path = NULL;
PyObject *output = NULL;
Py_ssize_t size;
- const char *data;
+ const char *data;
if (arg == NULL) {
Py_DECREF(*(PyObject**)addr);
*(PyObject**)addr = NULL;
@@ -4079,8 +4079,8 @@ PyUnicode_FSDecoder(PyObject* arg, void* addr)
}
-static int unicode_fill_utf8(PyObject *unicode);
-
+static int unicode_fill_utf8(PyObject *unicode);
+
const char *
PyUnicode_AsUTF8AndSize(PyObject *unicode, Py_ssize_t *psize)
{
@@ -4092,7 +4092,7 @@ PyUnicode_AsUTF8AndSize(PyObject *unicode, Py_ssize_t *psize)
return NULL;
if (PyUnicode_UTF8(unicode) == NULL) {
- if (unicode_fill_utf8(unicode) == -1) {
+ if (unicode_fill_utf8(unicode) == -1) {
return NULL;
}
}
@@ -4115,38 +4115,38 @@ PyUnicode_AsUnicodeAndSize(PyObject *unicode, Py_ssize_t *size)
PyErr_BadArgument();
return NULL;
}
- Py_UNICODE *w = _PyUnicode_WSTR(unicode);
- if (w == NULL) {
+ Py_UNICODE *w = _PyUnicode_WSTR(unicode);
+ if (w == NULL) {
/* Non-ASCII compact unicode object */
- assert(_PyUnicode_KIND(unicode) != PyUnicode_WCHAR_KIND);
+ assert(_PyUnicode_KIND(unicode) != PyUnicode_WCHAR_KIND);
assert(PyUnicode_IS_READY(unicode));
- Py_ssize_t wlen = unicode_get_widechar_size(unicode);
- if ((size_t)wlen > PY_SSIZE_T_MAX / sizeof(wchar_t) - 1) {
- PyErr_NoMemory();
+ Py_ssize_t wlen = unicode_get_widechar_size(unicode);
+ if ((size_t)wlen > PY_SSIZE_T_MAX / sizeof(wchar_t) - 1) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ w = (wchar_t *) PyObject_MALLOC(sizeof(wchar_t) * (wlen + 1));
+ if (w == NULL) {
+ PyErr_NoMemory();
return NULL;
}
- w = (wchar_t *) PyObject_MALLOC(sizeof(wchar_t) * (wlen + 1));
- if (w == NULL) {
- PyErr_NoMemory();
- return NULL;
+ unicode_copy_as_widechar(unicode, w, wlen + 1);
+ _PyUnicode_WSTR(unicode) = w;
+ if (!PyUnicode_IS_COMPACT_ASCII(unicode)) {
+ _PyUnicode_WSTR_LENGTH(unicode) = wlen;
}
- unicode_copy_as_widechar(unicode, w, wlen + 1);
- _PyUnicode_WSTR(unicode) = w;
- if (!PyUnicode_IS_COMPACT_ASCII(unicode)) {
- _PyUnicode_WSTR_LENGTH(unicode) = wlen;
- }
}
if (size != NULL)
*size = PyUnicode_WSTR_LENGTH(unicode);
- return w;
+ return w;
}
-/* Deprecated APIs */
-
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
-
+/* Deprecated APIs */
+
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+
Py_UNICODE *
PyUnicode_AsUnicode(PyObject *unicode)
{
@@ -4185,8 +4185,8 @@ PyUnicode_GetSize(PyObject *unicode)
return -1;
}
-_Py_COMP_DIAG_POP
-
+_Py_COMP_DIAG_POP
+
Py_ssize_t
PyUnicode_GetLength(PyObject *unicode)
{
@@ -4202,7 +4202,7 @@ PyUnicode_GetLength(PyObject *unicode)
Py_UCS4
PyUnicode_ReadChar(PyObject *unicode, Py_ssize_t index)
{
- const void *data;
+ const void *data;
int kind;
if (!PyUnicode_Check(unicode)) {
@@ -4277,21 +4277,21 @@ onError:
}
#ifdef MS_WINDOWS
-static int
-widechar_resize(wchar_t **buf, Py_ssize_t *size, Py_ssize_t newsize)
-{
- if (newsize > *size) {
- wchar_t *newbuf = *buf;
- if (PyMem_Resize(newbuf, wchar_t, newsize) == NULL) {
- PyErr_NoMemory();
- return -1;
- }
- *buf = newbuf;
- }
- *size = newsize;
- return 0;
-}
-
+static int
+widechar_resize(wchar_t **buf, Py_ssize_t *size, Py_ssize_t newsize)
+{
+ if (newsize > *size) {
+ wchar_t *newbuf = *buf;
+ if (PyMem_Resize(newbuf, wchar_t, newsize) == NULL) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ *buf = newbuf;
+ }
+ *size = newsize;
+ return 0;
+}
+
/* error handling callback helper:
build arguments, call the callback and check the arguments,
if no exception occurred, copy the replacement to the output
@@ -4305,7 +4305,7 @@ unicode_decode_call_errorhandler_wchar(
const char *encoding, const char *reason,
const char **input, const char **inend, Py_ssize_t *startinpos,
Py_ssize_t *endinpos, PyObject **exceptionObject, const char **inptr,
- wchar_t **buf, Py_ssize_t *bufsize, Py_ssize_t *outpos)
+ wchar_t **buf, Py_ssize_t *bufsize, Py_ssize_t *outpos)
{
static const char *argparse = "Un;decoding error handler must return (str, int) tuple";
@@ -4333,7 +4333,7 @@ unicode_decode_call_errorhandler_wchar(
if (*exceptionObject == NULL)
goto onError;
- restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
+ restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
if (restuple == NULL)
goto onError;
if (!PyTuple_Check(restuple)) {
@@ -4362,10 +4362,10 @@ unicode_decode_call_errorhandler_wchar(
goto onError;
}
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
repwstr = PyUnicode_AsUnicodeAndSize(repunicode, &repwlen);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (repwstr == NULL)
goto onError;
/* need more space? (at least enough for what we
@@ -4379,15 +4379,15 @@ _Py_COMP_DIAG_POP
if (requiredsize > PY_SSIZE_T_MAX - (insize - newpos))
goto overflow;
requiredsize += insize - newpos;
- outsize = *bufsize;
+ outsize = *bufsize;
if (requiredsize > outsize) {
if (outsize <= PY_SSIZE_T_MAX/2 && requiredsize < 2*outsize)
requiredsize = 2*outsize;
- if (widechar_resize(buf, bufsize, requiredsize) < 0) {
+ if (widechar_resize(buf, bufsize, requiredsize) < 0) {
goto onError;
- }
+ }
}
- wcsncpy(*buf + *outpos, repwstr, repwlen);
+ wcsncpy(*buf + *outpos, repwstr, repwlen);
*outpos += repwlen;
*endinpos = newpos;
*inptr = *input + newpos;
@@ -4440,7 +4440,7 @@ unicode_decode_call_errorhandler_writer(
if (*exceptionObject == NULL)
goto onError;
- restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
+ restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
if (restuple == NULL)
goto onError;
if (!PyTuple_Check(restuple)) {
@@ -4714,11 +4714,11 @@ PyUnicode_DecodeUTF7Stateful(const char *s,
if (_PyUnicodeWriter_WriteCharInline(&writer, '+') < 0)
goto onError;
}
- else if (s < e && !IS_BASE64(*s)) {
- s++;
- errmsg = "ill-formed sequence";
- goto utf7Error;
- }
+ else if (s < e && !IS_BASE64(*s)) {
+ s++;
+ errmsg = "ill-formed sequence";
+ goto utf7Error;
+ }
else { /* begin base64-encoded section */
inShift = 1;
surrogate = 0;
@@ -4807,7 +4807,7 @@ _PyUnicode_EncodeUTF7(PyObject *str,
const char *errors)
{
int kind;
- const void *data;
+ const void *data;
Py_ssize_t len;
PyObject *v;
int inShift = 0;
@@ -4815,7 +4815,7 @@ _PyUnicode_EncodeUTF7(PyObject *str,
unsigned int base64bits = 0;
unsigned long base64buffer = 0;
char * out;
- const char * start;
+ const char * start;
if (PyUnicode_READY(str) == -1)
return NULL;
@@ -5007,7 +5007,7 @@ ascii_decode(const char *start, const char *end, Py_UCS1 *dest)
/* Help allocation */
const char *_p = p;
while (_p < aligned_end) {
- unsigned long value = *(const unsigned long *) _p;
+ unsigned long value = *(const unsigned long *) _p;
if (value & ASCII_CHAR_MASK)
break;
_p += SIZEOF_LONG;
@@ -5024,10 +5024,10 @@ ascii_decode(const char *start, const char *end, Py_UCS1 *dest)
return p - start;
}
-static PyObject *
-unicode_decode_utf8(const char *s, Py_ssize_t size,
- _Py_error_handler error_handler, const char *errors,
- Py_ssize_t *consumed)
+static PyObject *
+unicode_decode_utf8(const char *s, Py_ssize_t size,
+ _Py_error_handler error_handler, const char *errors,
+ Py_ssize_t *consumed)
{
if (size == 0) {
if (consumed)
@@ -5042,29 +5042,29 @@ unicode_decode_utf8(const char *s, Py_ssize_t size,
return get_latin1_char((unsigned char)s[0]);
}
- const char *starts = s;
- const char *end = s + size;
-
- // fast path: try ASCII string.
- PyObject *u = PyUnicode_New(size, 127);
- if (u == NULL) {
- return NULL;
- }
- s += ascii_decode(s, end, PyUnicode_1BYTE_DATA(u));
- if (s == end) {
- return u;
- }
-
- // Use _PyUnicodeWriter after fast path is failed.
- _PyUnicodeWriter writer;
- _PyUnicodeWriter_InitWithBuffer(&writer, u);
- writer.pos = s - starts;
-
- Py_ssize_t startinpos, endinpos;
- const char *errmsg = "";
- PyObject *error_handler_obj = NULL;
- PyObject *exc = NULL;
-
+ const char *starts = s;
+ const char *end = s + size;
+
+ // fast path: try ASCII string.
+ PyObject *u = PyUnicode_New(size, 127);
+ if (u == NULL) {
+ return NULL;
+ }
+ s += ascii_decode(s, end, PyUnicode_1BYTE_DATA(u));
+ if (s == end) {
+ return u;
+ }
+
+ // Use _PyUnicodeWriter after fast path is failed.
+ _PyUnicodeWriter writer;
+ _PyUnicodeWriter_InitWithBuffer(&writer, u);
+ writer.pos = s - starts;
+
+ Py_ssize_t startinpos, endinpos;
+ const char *errmsg = "";
+ PyObject *error_handler_obj = NULL;
+ PyObject *exc = NULL;
+
while (s < end) {
Py_UCS4 ch;
int kind = writer.kind;
@@ -5095,13 +5095,13 @@ unicode_decode_utf8(const char *s, Py_ssize_t size,
endinpos = startinpos + 1;
break;
case 2:
- if (consumed && (unsigned char)s[0] == 0xED && end - s == 2
- && (unsigned char)s[1] >= 0xA0 && (unsigned char)s[1] <= 0xBF)
- {
- /* Truncated surrogate code in range D800-DFFF */
- goto End;
- }
- /* fall through */
+ if (consumed && (unsigned char)s[0] == 0xED && end - s == 2
+ && (unsigned char)s[1] >= 0xA0 && (unsigned char)s[1] <= 0xBF)
+ {
+ /* Truncated surrogate code in range D800-DFFF */
+ goto End;
+ }
+ /* fall through */
case 3:
case 4:
errmsg = "invalid continuation byte";
@@ -5115,7 +5115,7 @@ unicode_decode_utf8(const char *s, Py_ssize_t size,
}
if (error_handler == _Py_ERROR_UNKNOWN)
- error_handler = _Py_GetErrorHandler(errors);
+ error_handler = _Py_GetErrorHandler(errors);
switch (error_handler) {
case _Py_ERROR_IGNORE:
@@ -5170,16 +5170,16 @@ onError:
}
-PyObject *
-PyUnicode_DecodeUTF8Stateful(const char *s,
- Py_ssize_t size,
- const char *errors,
- Py_ssize_t *consumed)
-{
- return unicode_decode_utf8(s, size, _Py_ERROR_UNKNOWN, errors, consumed);
-}
-
-
+PyObject *
+PyUnicode_DecodeUTF8Stateful(const char *s,
+ Py_ssize_t size,
+ const char *errors,
+ Py_ssize_t *consumed)
+{
+ return unicode_decode_utf8(s, size, _Py_ERROR_UNKNOWN, errors, consumed);
+}
+
+
/* UTF-8 decoder: use surrogateescape error handler if 'surrogateescape' is
non-zero, use strict error handler otherwise.
@@ -5194,29 +5194,29 @@ PyUnicode_DecodeUTF8Stateful(const char *s,
is not NULL, write the decoding error message into *reason. */
int
_Py_DecodeUTF8Ex(const char *s, Py_ssize_t size, wchar_t **wstr, size_t *wlen,
- const char **reason, _Py_error_handler errors)
+ const char **reason, _Py_error_handler errors)
{
const char *orig_s = s;
const char *e;
wchar_t *unicode;
Py_ssize_t outpos;
- int surrogateescape = 0;
- int surrogatepass = 0;
- switch (errors)
- {
- case _Py_ERROR_STRICT:
- break;
- case _Py_ERROR_SURROGATEESCAPE:
- surrogateescape = 1;
- break;
- case _Py_ERROR_SURROGATEPASS:
- surrogatepass = 1;
- break;
- default:
- return -3;
- }
-
+ int surrogateescape = 0;
+ int surrogatepass = 0;
+ switch (errors)
+ {
+ case _Py_ERROR_STRICT:
+ break;
+ case _Py_ERROR_SURROGATEESCAPE:
+ surrogateescape = 1;
+ break;
+ case _Py_ERROR_SURROGATEPASS:
+ surrogatepass = 1;
+ break;
+ default:
+ return -3;
+ }
+
/* Note: size will always be longer than the resulting Unicode
character count */
if (PY_SSIZE_T_MAX / (Py_ssize_t)sizeof(wchar_t) < (size + 1)) {
@@ -5249,45 +5249,45 @@ _Py_DecodeUTF8Ex(const char *s, Py_ssize_t size, wchar_t **wstr, size_t *wlen,
#endif
}
else {
- if (!ch && s == e) {
+ if (!ch && s == e) {
break;
- }
-
- if (surrogateescape) {
- unicode[outpos++] = 0xDC00 + (unsigned char)*s++;
- }
- else {
- /* Is it a valid three-byte code? */
- if (surrogatepass
- && (e - s) >= 3
- && (s[0] & 0xf0) == 0xe0
- && (s[1] & 0xc0) == 0x80
- && (s[2] & 0xc0) == 0x80)
- {
- ch = ((s[0] & 0x0f) << 12) + ((s[1] & 0x3f) << 6) + (s[2] & 0x3f);
- s += 3;
- unicode[outpos++] = ch;
- }
- else {
- PyMem_RawFree(unicode );
- if (reason != NULL) {
- switch (ch) {
- case 0:
- *reason = "unexpected end of data";
- break;
- case 1:
- *reason = "invalid start byte";
- break;
- /* 2, 3, 4 */
- default:
- *reason = "invalid continuation byte";
- break;
- }
+ }
+
+ if (surrogateescape) {
+ unicode[outpos++] = 0xDC00 + (unsigned char)*s++;
+ }
+ else {
+ /* Is it a valid three-byte code? */
+ if (surrogatepass
+ && (e - s) >= 3
+ && (s[0] & 0xf0) == 0xe0
+ && (s[1] & 0xc0) == 0x80
+ && (s[2] & 0xc0) == 0x80)
+ {
+ ch = ((s[0] & 0x0f) << 12) + ((s[1] & 0x3f) << 6) + (s[2] & 0x3f);
+ s += 3;
+ unicode[outpos++] = ch;
+ }
+ else {
+ PyMem_RawFree(unicode );
+ if (reason != NULL) {
+ switch (ch) {
+ case 0:
+ *reason = "unexpected end of data";
+ break;
+ case 1:
+ *reason = "invalid start byte";
+ break;
+ /* 2, 3, 4 */
+ default:
+ *reason = "invalid continuation byte";
+ break;
+ }
}
- if (wlen != NULL) {
- *wlen = s - orig_s;
- }
- return -2;
+ if (wlen != NULL) {
+ *wlen = s - orig_s;
+ }
+ return -2;
}
}
}
@@ -5300,21 +5300,21 @@ _Py_DecodeUTF8Ex(const char *s, Py_ssize_t size, wchar_t **wstr, size_t *wlen,
return 0;
}
-
+
wchar_t*
-_Py_DecodeUTF8_surrogateescape(const char *arg, Py_ssize_t arglen,
- size_t *wlen)
+_Py_DecodeUTF8_surrogateescape(const char *arg, Py_ssize_t arglen,
+ size_t *wlen)
{
wchar_t *wstr;
- int res = _Py_DecodeUTF8Ex(arg, arglen,
- &wstr, wlen,
- NULL, _Py_ERROR_SURROGATEESCAPE);
+ int res = _Py_DecodeUTF8Ex(arg, arglen,
+ &wstr, wlen,
+ NULL, _Py_ERROR_SURROGATEESCAPE);
if (res != 0) {
- /* _Py_DecodeUTF8Ex() must support _Py_ERROR_SURROGATEESCAPE */
- assert(res != -3);
- if (wlen) {
- *wlen = (size_t)res;
- }
+ /* _Py_DecodeUTF8Ex() must support _Py_ERROR_SURROGATEESCAPE */
+ assert(res != -3);
+ if (wlen) {
+ *wlen = (size_t)res;
+ }
return NULL;
}
return wstr;
@@ -5333,29 +5333,29 @@ _Py_DecodeUTF8_surrogateescape(const char *arg, Py_ssize_t arglen,
On memory allocation failure, return -1. */
int
_Py_EncodeUTF8Ex(const wchar_t *text, char **str, size_t *error_pos,
- const char **reason, int raw_malloc, _Py_error_handler errors)
+ const char **reason, int raw_malloc, _Py_error_handler errors)
{
const Py_ssize_t max_char_size = 4;
Py_ssize_t len = wcslen(text);
assert(len >= 0);
- int surrogateescape = 0;
- int surrogatepass = 0;
- switch (errors)
- {
- case _Py_ERROR_STRICT:
- break;
- case _Py_ERROR_SURROGATEESCAPE:
- surrogateescape = 1;
- break;
- case _Py_ERROR_SURROGATEPASS:
- surrogatepass = 1;
- break;
- default:
- return -3;
- }
-
+ int surrogateescape = 0;
+ int surrogatepass = 0;
+ switch (errors)
+ {
+ case _Py_ERROR_STRICT:
+ break;
+ case _Py_ERROR_SURROGATEESCAPE:
+ surrogateescape = 1;
+ break;
+ case _Py_ERROR_SURROGATEPASS:
+ surrogatepass = 1;
+ break;
+ default:
+ return -3;
+ }
+
if (len > PY_SSIZE_T_MAX / max_char_size - 1) {
return -1;
}
@@ -5372,19 +5372,19 @@ _Py_EncodeUTF8Ex(const wchar_t *text, char **str, size_t *error_pos,
char *p = bytes;
Py_ssize_t i;
- for (i = 0; i < len; ) {
- Py_ssize_t ch_pos = i;
+ for (i = 0; i < len; ) {
+ Py_ssize_t ch_pos = i;
Py_UCS4 ch = text[i];
- i++;
-#if Py_UNICODE_SIZE == 2
- if (Py_UNICODE_IS_HIGH_SURROGATE(ch)
- && i < len
- && Py_UNICODE_IS_LOW_SURROGATE(text[i]))
- {
- ch = Py_UNICODE_JOIN_SURROGATES(ch, text[i]);
- i++;
- }
-#endif
+ i++;
+#if Py_UNICODE_SIZE == 2
+ if (Py_UNICODE_IS_HIGH_SURROGATE(ch)
+ && i < len
+ && Py_UNICODE_IS_LOW_SURROGATE(text[i]))
+ {
+ ch = Py_UNICODE_JOIN_SURROGATES(ch, text[i]);
+ i++;
+ }
+#endif
if (ch < 0x80) {
/* Encode ASCII */
@@ -5396,11 +5396,11 @@ _Py_EncodeUTF8Ex(const wchar_t *text, char **str, size_t *error_pos,
*p++ = (char)(0xc0 | (ch >> 6));
*p++ = (char)(0x80 | (ch & 0x3f));
}
- else if (Py_UNICODE_IS_SURROGATE(ch) && !surrogatepass) {
+ else if (Py_UNICODE_IS_SURROGATE(ch) && !surrogatepass) {
/* surrogateescape error handler */
if (!surrogateescape || !(0xDC80 <= ch && ch <= 0xDCFF)) {
if (error_pos != NULL) {
- *error_pos = (size_t)ch_pos;
+ *error_pos = (size_t)ch_pos;
}
if (reason != NULL) {
*reason = "encoding error";
@@ -5463,9 +5463,9 @@ _Py_EncodeUTF8Ex(const wchar_t *text, char **str, size_t *error_pos,
maximum possible needed (4 result bytes per Unicode character), and return
the excess memory at the end.
*/
-static PyObject *
-unicode_encode_utf8(PyObject *unicode, _Py_error_handler error_handler,
- const char *errors)
+static PyObject *
+unicode_encode_utf8(PyObject *unicode, _Py_error_handler error_handler,
+ const char *errors)
{
if (!PyUnicode_Check(unicode)) {
PyErr_BadArgument();
@@ -5479,96 +5479,96 @@ unicode_encode_utf8(PyObject *unicode, _Py_error_handler error_handler,
return PyBytes_FromStringAndSize(PyUnicode_UTF8(unicode),
PyUnicode_UTF8_LENGTH(unicode));
- enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
- const void *data = PyUnicode_DATA(unicode);
- Py_ssize_t size = PyUnicode_GET_LENGTH(unicode);
+ enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
+ const void *data = PyUnicode_DATA(unicode);
+ Py_ssize_t size = PyUnicode_GET_LENGTH(unicode);
+
+ _PyBytesWriter writer;
+ char *end;
- _PyBytesWriter writer;
- char *end;
-
switch (kind) {
default:
Py_UNREACHABLE();
case PyUnicode_1BYTE_KIND:
/* the string cannot be ASCII, or PyUnicode_UTF8() would be set */
assert(!PyUnicode_IS_ASCII(unicode));
- end = ucs1lib_utf8_encoder(&writer, unicode, data, size, error_handler, errors);
- break;
+ end = ucs1lib_utf8_encoder(&writer, unicode, data, size, error_handler, errors);
+ break;
case PyUnicode_2BYTE_KIND:
- end = ucs2lib_utf8_encoder(&writer, unicode, data, size, error_handler, errors);
- break;
+ end = ucs2lib_utf8_encoder(&writer, unicode, data, size, error_handler, errors);
+ break;
case PyUnicode_4BYTE_KIND:
- end = ucs4lib_utf8_encoder(&writer, unicode, data, size, error_handler, errors);
- break;
- }
-
- if (end == NULL) {
- _PyBytesWriter_Dealloc(&writer);
- return NULL;
- }
- return _PyBytesWriter_Finish(&writer, end);
-}
-
-static int
-unicode_fill_utf8(PyObject *unicode)
-{
- /* the string cannot be ASCII, or PyUnicode_UTF8() would be set */
- assert(!PyUnicode_IS_ASCII(unicode));
-
- enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
- const void *data = PyUnicode_DATA(unicode);
- Py_ssize_t size = PyUnicode_GET_LENGTH(unicode);
-
- _PyBytesWriter writer;
- char *end;
-
- switch (kind) {
- default:
- Py_UNREACHABLE();
- case PyUnicode_1BYTE_KIND:
- end = ucs1lib_utf8_encoder(&writer, unicode, data, size,
- _Py_ERROR_STRICT, NULL);
- break;
- case PyUnicode_2BYTE_KIND:
- end = ucs2lib_utf8_encoder(&writer, unicode, data, size,
- _Py_ERROR_STRICT, NULL);
- break;
- case PyUnicode_4BYTE_KIND:
- end = ucs4lib_utf8_encoder(&writer, unicode, data, size,
- _Py_ERROR_STRICT, NULL);
- break;
- }
- if (end == NULL) {
- _PyBytesWriter_Dealloc(&writer);
- return -1;
- }
-
- const char *start = writer.use_small_buffer ? writer.small_buffer :
- PyBytes_AS_STRING(writer.buffer);
- Py_ssize_t len = end - start;
-
- char *cache = PyObject_MALLOC(len + 1);
- if (cache == NULL) {
- _PyBytesWriter_Dealloc(&writer);
- PyErr_NoMemory();
- return -1;
- }
- _PyUnicode_UTF8(unicode) = cache;
- _PyUnicode_UTF8_LENGTH(unicode) = len;
- memcpy(cache, start, len);
- cache[len] = '\0';
- _PyBytesWriter_Dealloc(&writer);
- return 0;
-}
-
+ end = ucs4lib_utf8_encoder(&writer, unicode, data, size, error_handler, errors);
+ break;
+ }
+
+ if (end == NULL) {
+ _PyBytesWriter_Dealloc(&writer);
+ return NULL;
+ }
+ return _PyBytesWriter_Finish(&writer, end);
+}
+
+static int
+unicode_fill_utf8(PyObject *unicode)
+{
+ /* the string cannot be ASCII, or PyUnicode_UTF8() would be set */
+ assert(!PyUnicode_IS_ASCII(unicode));
+
+ enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
+ const void *data = PyUnicode_DATA(unicode);
+ Py_ssize_t size = PyUnicode_GET_LENGTH(unicode);
+
+ _PyBytesWriter writer;
+ char *end;
+
+ switch (kind) {
+ default:
+ Py_UNREACHABLE();
+ case PyUnicode_1BYTE_KIND:
+ end = ucs1lib_utf8_encoder(&writer, unicode, data, size,
+ _Py_ERROR_STRICT, NULL);
+ break;
+ case PyUnicode_2BYTE_KIND:
+ end = ucs2lib_utf8_encoder(&writer, unicode, data, size,
+ _Py_ERROR_STRICT, NULL);
+ break;
+ case PyUnicode_4BYTE_KIND:
+ end = ucs4lib_utf8_encoder(&writer, unicode, data, size,
+ _Py_ERROR_STRICT, NULL);
+ break;
+ }
+ if (end == NULL) {
+ _PyBytesWriter_Dealloc(&writer);
+ return -1;
+ }
+
+ const char *start = writer.use_small_buffer ? writer.small_buffer :
+ PyBytes_AS_STRING(writer.buffer);
+ Py_ssize_t len = end - start;
+
+ char *cache = PyObject_MALLOC(len + 1);
+ if (cache == NULL) {
+ _PyBytesWriter_Dealloc(&writer);
+ PyErr_NoMemory();
+ return -1;
+ }
+ _PyUnicode_UTF8(unicode) = cache;
+ _PyUnicode_UTF8_LENGTH(unicode) = len;
+ memcpy(cache, start, len);
+ cache[len] = '\0';
+ _PyBytesWriter_Dealloc(&writer);
+ return 0;
+}
+
+PyObject *
+_PyUnicode_AsUTF8String(PyObject *unicode, const char *errors)
+{
+ return unicode_encode_utf8(unicode, _Py_ERROR_UNKNOWN, errors);
+}
+
+
PyObject *
-_PyUnicode_AsUTF8String(PyObject *unicode, const char *errors)
-{
- return unicode_encode_utf8(unicode, _Py_ERROR_UNKNOWN, errors);
-}
-
-
-PyObject *
PyUnicode_EncodeUTF8(const Py_UNICODE *s,
Py_ssize_t size,
const char *errors)
@@ -5618,7 +5618,7 @@ PyUnicode_DecodeUTF32Stateful(const char *s,
PyObject *errorHandler = NULL;
PyObject *exc = NULL;
- q = (const unsigned char *)s;
+ q = (const unsigned char *)s;
e = q + size;
if (byteorder)
@@ -5943,7 +5943,7 @@ PyUnicode_DecodeUTF16Stateful(const char *s,
PyObject *exc = NULL;
const char *encoding;
- q = (const unsigned char *)s;
+ q = (const unsigned char *)s;
e = q + size;
if (byteorder)
@@ -6271,10 +6271,10 @@ PyUnicode_AsUTF16String(PyObject *unicode)
static _PyUnicode_Name_CAPI *ucnhash_CAPI = NULL;
PyObject *
-_PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
+_PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
Py_ssize_t size,
const char *errors,
- Py_ssize_t *consumed,
+ Py_ssize_t *consumed,
const char **first_invalid_escape)
{
const char *starts = s;
@@ -6287,9 +6287,9 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
*first_invalid_escape = NULL;
if (size == 0) {
- if (consumed) {
- *consumed = 0;
- }
+ if (consumed) {
+ *consumed = 0;
+ }
_Py_RETURN_UNICODE_EMPTY();
}
/* Escaped strings will always be longer than the resulting
@@ -6334,11 +6334,11 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
continue;
}
- Py_ssize_t startinpos = s - starts - 1;
+ Py_ssize_t startinpos = s - starts - 1;
/* \ - Escapes */
if (s >= end) {
message = "\\ at end of string";
- goto incomplete;
+ goto incomplete;
}
c = (unsigned char) *s++;
@@ -6392,10 +6392,10 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
count = 8;
message = "truncated \\UXXXXXXXX escape";
hexescape:
- for (ch = 0; count; ++s, --count) {
- if (s >= end) {
- goto incomplete;
- }
+ for (ch = 0; count; ++s, --count) {
+ if (s >= end) {
+ goto incomplete;
+ }
c = (unsigned char)*s;
ch <<= 4;
if (c >= '0' && c <= '9') {
@@ -6408,7 +6408,7 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
ch += c - ('A' - 10);
}
else {
- goto error;
+ goto error;
}
}
@@ -6437,20 +6437,20 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
}
message = "malformed \\N character escape";
- if (s >= end) {
- goto incomplete;
- }
- if (*s == '{') {
+ if (s >= end) {
+ goto incomplete;
+ }
+ if (*s == '{') {
const char *start = ++s;
size_t namelen;
/* look for the closing brace */
while (s < end && *s != '}')
s++;
- if (s >= end) {
- goto incomplete;
- }
+ if (s >= end) {
+ goto incomplete;
+ }
namelen = s - start;
- if (namelen) {
+ if (namelen) {
/* found a name. look it up in the unicode database */
s++;
ch = 0xffffffff; /* in case 'getcode' messes up */
@@ -6476,13 +6476,13 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
continue;
}
- incomplete:
- if (consumed) {
- *consumed = startinpos;
- break;
- }
- error:;
- Py_ssize_t endinpos = s-starts;
+ incomplete:
+ if (consumed) {
+ *consumed = startinpos;
+ break;
+ }
+ error:;
+ Py_ssize_t endinpos = s-starts;
writer.min_length = end - s + writer.pos;
if (unicode_decode_call_errorhandler_writer(
errors, &errorHandler,
@@ -6509,14 +6509,14 @@ _PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
}
PyObject *
-_PyUnicode_DecodeUnicodeEscapeStateful(const char *s,
+_PyUnicode_DecodeUnicodeEscapeStateful(const char *s,
Py_ssize_t size,
- const char *errors,
- Py_ssize_t *consumed)
+ const char *errors,
+ Py_ssize_t *consumed)
{
const char *first_invalid_escape;
- PyObject *result = _PyUnicode_DecodeUnicodeEscapeInternal(s, size, errors,
- consumed,
+ PyObject *result = _PyUnicode_DecodeUnicodeEscapeInternal(s, size, errors,
+ consumed,
&first_invalid_escape);
if (result == NULL)
return NULL;
@@ -6531,14 +6531,14 @@ _PyUnicode_DecodeUnicodeEscapeStateful(const char *s,
return result;
}
-PyObject *
-PyUnicode_DecodeUnicodeEscape(const char *s,
- Py_ssize_t size,
- const char *errors)
-{
- return _PyUnicode_DecodeUnicodeEscapeStateful(s, size, errors, NULL);
-}
-
+PyObject *
+PyUnicode_DecodeUnicodeEscape(const char *s,
+ Py_ssize_t size,
+ const char *errors)
+{
+ return _PyUnicode_DecodeUnicodeEscapeStateful(s, size, errors, NULL);
+}
+
/* Return a Unicode-Escape string version of the Unicode object. */
PyObject *
@@ -6548,7 +6548,7 @@ PyUnicode_AsUnicodeEscapeString(PyObject *unicode)
PyObject *repr;
char *p;
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
Py_ssize_t expandsize;
/* Initial allocation is based on the longest-possible character
@@ -6677,10 +6677,10 @@ PyUnicode_EncodeUnicodeEscape(const Py_UNICODE *s,
/* --- Raw Unicode Escape Codec ------------------------------------------- */
PyObject *
-_PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
- Py_ssize_t size,
- const char *errors,
- Py_ssize_t *consumed)
+_PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
+ Py_ssize_t size,
+ const char *errors,
+ Py_ssize_t *consumed)
{
const char *starts = s;
_PyUnicodeWriter writer;
@@ -6689,9 +6689,9 @@ _PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
PyObject *exc = NULL;
if (size == 0) {
- if (consumed) {
- *consumed = 0;
- }
+ if (consumed) {
+ *consumed = 0;
+ }
_Py_RETURN_UNICODE_EMPTY();
}
@@ -6700,7 +6700,7 @@ _PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
length after conversion to the true value. (But decoding error
handler might have to resize the string) */
_PyUnicodeWriter_Init(&writer);
- writer.min_length = size;
+ writer.min_length = size;
if (_PyUnicodeWriter_Prepare(&writer, size, 127) < 0) {
goto onError;
}
@@ -6724,21 +6724,21 @@ _PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
} while(0)
/* Non-escape characters are interpreted as Unicode ordinals */
- if (c != '\\' || (s >= end && !consumed)) {
+ if (c != '\\' || (s >= end && !consumed)) {
WRITE_CHAR(c);
continue;
}
- Py_ssize_t startinpos = s - starts - 1;
- /* \ - Escapes */
- if (s >= end) {
- assert(consumed);
- // Set message to silent compiler warning.
- // Actually it is never used.
- message = "\\ at end of string";
- goto incomplete;
- }
-
+ Py_ssize_t startinpos = s - starts - 1;
+ /* \ - Escapes */
+ if (s >= end) {
+ assert(consumed);
+ // Set message to silent compiler warning.
+ // Actually it is never used.
+ message = "\\ at end of string";
+ goto incomplete;
+ }
+
c = (unsigned char) *s++;
if (c == 'u') {
count = 4;
@@ -6756,10 +6756,10 @@ _PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
}
/* \uHHHH with 4 hex digits, \U00HHHHHH with 8 */
- for (ch = 0; count; ++s, --count) {
- if (s >= end) {
- goto incomplete;
- }
+ for (ch = 0; count; ++s, --count) {
+ if (s >= end) {
+ goto incomplete;
+ }
c = (unsigned char)*s;
ch <<= 4;
if (c >= '0' && c <= '9') {
@@ -6772,23 +6772,23 @@ _PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
ch += c - ('A' - 10);
}
else {
- goto error;
+ goto error;
}
}
- if (ch > MAX_UNICODE) {
+ if (ch > MAX_UNICODE) {
message = "\\Uxxxxxxxx out of range";
- goto error;
- }
- WRITE_CHAR(ch);
- continue;
-
- incomplete:
- if (consumed) {
- *consumed = startinpos;
- break;
- }
- error:;
- Py_ssize_t endinpos = s-starts;
+ goto error;
+ }
+ WRITE_CHAR(ch);
+ continue;
+
+ incomplete:
+ if (consumed) {
+ *consumed = startinpos;
+ break;
+ }
+ error:;
+ Py_ssize_t endinpos = s-starts;
writer.min_length = end - s + writer.pos;
if (unicode_decode_call_errorhandler_writer(
errors, &errorHandler,
@@ -6810,14 +6810,14 @@ _PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
Py_XDECREF(errorHandler);
Py_XDECREF(exc);
return NULL;
-}
+}
-PyObject *
-PyUnicode_DecodeRawUnicodeEscape(const char *s,
- Py_ssize_t size,
- const char *errors)
-{
- return _PyUnicode_DecodeRawUnicodeEscapeStateful(s, size, errors, NULL);
+PyObject *
+PyUnicode_DecodeRawUnicodeEscape(const char *s,
+ Py_ssize_t size,
+ const char *errors)
+{
+ return _PyUnicode_DecodeRawUnicodeEscapeStateful(s, size, errors, NULL);
}
@@ -6828,7 +6828,7 @@ PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode)
char *p;
Py_ssize_t expandsize, pos;
int kind;
- const void *data;
+ const void *data;
Py_ssize_t len;
if (!PyUnicode_Check(unicode)) {
@@ -6868,7 +6868,7 @@ PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode)
if (ch < 0x100) {
*p++ = (char) ch;
}
- /* U+0100-U+ffff range: Map 16-bit characters to '\uHHHH' */
+ /* U+0100-U+ffff range: Map 16-bit characters to '\uHHHH' */
else if (ch < 0x10000) {
*p++ = '\\';
*p++ = 'u';
@@ -6921,7 +6921,7 @@ PyUnicode_DecodeLatin1(const char *s,
const char *errors)
{
/* Latin-1 is equivalent to the first 256 ordinals in Unicode. */
- return _PyUnicode_FromUCS1((const unsigned char*)s, size);
+ return _PyUnicode_FromUCS1((const unsigned char*)s, size);
}
/* create or adjust a UnicodeEncodeError */
@@ -6996,7 +6996,7 @@ unicode_encode_call_errorhandler(const char *errors,
if (*exceptionObject == NULL)
return NULL;
- restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
+ restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
if (restuple == NULL)
return NULL;
if (!PyTuple_Check(restuple)) {
@@ -7034,7 +7034,7 @@ unicode_encode_ucs1(PyObject *unicode,
/* input state */
Py_ssize_t pos=0, size;
int kind;
- const void *data;
+ const void *data;
/* pointer into the output */
char *str;
const char *encoding = (limit == 256) ? "latin-1" : "ascii";
@@ -7085,7 +7085,7 @@ unicode_encode_ucs1(PyObject *unicode,
/* cache callback name lookup (if not done yet, i.e. it's the first error) */
if (error_handler == _Py_ERROR_UNKNOWN)
- error_handler = _Py_GetErrorHandler(errors);
+ error_handler = _Py_GetErrorHandler(errors);
switch (error_handler) {
case _Py_ERROR_STRICT:
@@ -7245,7 +7245,7 @@ PyUnicode_DecodeASCII(const char *s,
const char *errors)
{
const char *starts = s;
- const char *e = s + size;
+ const char *e = s + size;
PyObject *error_handler_obj = NULL;
PyObject *exc = NULL;
_Py_error_handler error_handler = _Py_ERROR_UNKNOWN;
@@ -7257,25 +7257,25 @@ PyUnicode_DecodeASCII(const char *s,
if (size == 1 && (unsigned char)s[0] < 128)
return get_latin1_char((unsigned char)s[0]);
- // Shortcut for simple case
- PyObject *u = PyUnicode_New(size, 127);
- if (u == NULL) {
+ // Shortcut for simple case
+ PyObject *u = PyUnicode_New(size, 127);
+ if (u == NULL) {
return NULL;
- }
- Py_ssize_t outpos = ascii_decode(s, e, PyUnicode_1BYTE_DATA(u));
- if (outpos == size) {
- return u;
- }
+ }
+ Py_ssize_t outpos = ascii_decode(s, e, PyUnicode_1BYTE_DATA(u));
+ if (outpos == size) {
+ return u;
+ }
- _PyUnicodeWriter writer;
- _PyUnicodeWriter_InitWithBuffer(&writer, u);
+ _PyUnicodeWriter writer;
+ _PyUnicodeWriter_InitWithBuffer(&writer, u);
writer.pos = outpos;
- s += outpos;
- int kind = writer.kind;
- void *data = writer.data;
- Py_ssize_t startinpos, endinpos;
-
+ s += outpos;
+ int kind = writer.kind;
+ void *data = writer.data;
+ Py_ssize_t startinpos, endinpos;
+
while (s < e) {
unsigned char c = (unsigned char)*s;
if (c < 128) {
@@ -7288,7 +7288,7 @@ PyUnicode_DecodeASCII(const char *s,
/* byte outsize range 0x00..0x7f: call the error handler */
if (error_handler == _Py_ERROR_UNKNOWN)
- error_handler = _Py_GetErrorHandler(errors);
+ error_handler = _Py_GetErrorHandler(errors);
switch (error_handler)
{
@@ -7383,12 +7383,12 @@ PyUnicode_AsASCIIString(PyObject *unicode)
#define NEED_RETRY
#endif
-/* INT_MAX is the theoretical largest chunk (or INT_MAX / 2 when
- transcoding from UTF-16), but INT_MAX / 4 performs better in
- both cases also and avoids partial characters overrunning the
- length limit in MultiByteToWideChar on Windows */
-#define DECODING_CHUNK_SIZE (INT_MAX/4)
-
+/* INT_MAX is the theoretical largest chunk (or INT_MAX / 2 when
+ transcoding from UTF-16), but INT_MAX / 4 performs better in
+ both cases also and avoids partial characters overrunning the
+ length limit in MultiByteToWideChar on Windows */
+#define DECODING_CHUNK_SIZE (INT_MAX/4)
+
#ifndef WC_ERR_INVALID_CHARS
# define WC_ERR_INVALID_CHARS 0x0080
#endif
@@ -7430,33 +7430,33 @@ decode_code_page_flags(UINT code_page)
*/
static int
decode_code_page_strict(UINT code_page,
- wchar_t **buf,
- Py_ssize_t *bufsize,
+ wchar_t **buf,
+ Py_ssize_t *bufsize,
const char *in,
int insize)
{
- DWORD flags = MB_ERR_INVALID_CHARS;
+ DWORD flags = MB_ERR_INVALID_CHARS;
wchar_t *out;
DWORD outsize;
/* First get the size of the result */
assert(insize > 0);
- while ((outsize = MultiByteToWideChar(code_page, flags,
- in, insize, NULL, 0)) <= 0)
- {
- if (!flags || GetLastError() != ERROR_INVALID_FLAGS) {
- goto error;
- }
- /* For some code pages (e.g. UTF-7) flags must be set to 0. */
- flags = 0;
- }
-
- /* Extend a wchar_t* buffer */
- Py_ssize_t n = *bufsize; /* Get the current length */
- if (widechar_resize(buf, bufsize, n + outsize) < 0) {
- return -1;
- }
- out = *buf + n;
+ while ((outsize = MultiByteToWideChar(code_page, flags,
+ in, insize, NULL, 0)) <= 0)
+ {
+ if (!flags || GetLastError() != ERROR_INVALID_FLAGS) {
+ goto error;
+ }
+ /* For some code pages (e.g. UTF-7) flags must be set to 0. */
+ flags = 0;
+ }
+
+ /* Extend a wchar_t* buffer */
+ Py_ssize_t n = *bufsize; /* Get the current length */
+ if (widechar_resize(buf, bufsize, n + outsize) < 0) {
+ return -1;
+ }
+ out = *buf + n;
/* Do the conversion */
outsize = MultiByteToWideChar(code_page, flags, in, insize, out, outsize);
@@ -7480,14 +7480,14 @@ error:
*/
static int
decode_code_page_errors(UINT code_page,
- wchar_t **buf,
- Py_ssize_t *bufsize,
+ wchar_t **buf,
+ Py_ssize_t *bufsize,
const char *in, const int size,
const char *errors, int final)
{
const char *startin = in;
const char *endin = in + size;
- DWORD flags = MB_ERR_INVALID_CHARS;
+ DWORD flags = MB_ERR_INVALID_CHARS;
/* Ideally, we should get reason from FormatMessage. This is the Windows
2000 English version of the message. */
const char *reason = "No mapping for the Unicode character exists "
@@ -7521,16 +7521,16 @@ decode_code_page_errors(UINT code_page,
goto error;
}
- /* Extend a wchar_t* buffer */
- Py_ssize_t n = *bufsize; /* Get the current length */
- if (size > (PY_SSIZE_T_MAX - n) / (Py_ssize_t)Py_ARRAY_LENGTH(buffer)) {
- PyErr_NoMemory();
- goto error;
+ /* Extend a wchar_t* buffer */
+ Py_ssize_t n = *bufsize; /* Get the current length */
+ if (size > (PY_SSIZE_T_MAX - n) / (Py_ssize_t)Py_ARRAY_LENGTH(buffer)) {
+ PyErr_NoMemory();
+ goto error;
}
- if (widechar_resize(buf, bufsize, n + size * Py_ARRAY_LENGTH(buffer)) < 0) {
- goto error;
+ if (widechar_resize(buf, bufsize, n + size * Py_ARRAY_LENGTH(buffer)) < 0) {
+ goto error;
}
- out = *buf + n;
+ out = *buf + n;
/* Decode the byte string character per character */
while (in < endin)
@@ -7545,11 +7545,11 @@ decode_code_page_errors(UINT code_page,
if (outsize > 0)
break;
err = GetLastError();
- if (err == ERROR_INVALID_FLAGS && flags) {
- /* For some code pages (e.g. UTF-7) flags must be set to 0. */
- flags = 0;
- continue;
- }
+ if (err == ERROR_INVALID_FLAGS && flags) {
+ /* For some code pages (e.g. UTF-7) flags must be set to 0. */
+ flags = 0;
+ continue;
+ }
if (err != ERROR_NO_UNICODE_TRANSLATION
&& err != ERROR_INSUFFICIENT_BUFFER)
{
@@ -7570,16 +7570,16 @@ decode_code_page_errors(UINT code_page,
startinpos = in - startin;
endinpos = startinpos + 1;
- outpos = out - *buf;
+ outpos = out - *buf;
if (unicode_decode_call_errorhandler_wchar(
errors, &errorHandler,
encoding, reason,
&startin, &endin, &startinpos, &endinpos, &exc, &in,
- buf, bufsize, &outpos))
+ buf, bufsize, &outpos))
{
goto error;
}
- out = *buf + outpos;
+ out = *buf + outpos;
}
else {
in += insize;
@@ -7588,9 +7588,9 @@ decode_code_page_errors(UINT code_page,
}
}
- /* Shrink the buffer */
- assert(out - *buf <= *bufsize);
- *bufsize = out - *buf;
+ /* Shrink the buffer */
+ assert(out - *buf <= *bufsize);
+ *bufsize = out - *buf;
/* (in - startin) <= size and size is an int */
ret = Py_SAFE_DOWNCAST(in - startin, Py_ssize_t, int);
@@ -7606,8 +7606,8 @@ decode_code_page_stateful(int code_page,
const char *s, Py_ssize_t size,
const char *errors, Py_ssize_t *consumed)
{
- wchar_t *buf = NULL;
- Py_ssize_t bufsize = 0;
+ wchar_t *buf = NULL;
+ Py_ssize_t bufsize = 0;
int chunk_size, final, converted, done;
if (code_page < 0) {
@@ -7625,8 +7625,8 @@ decode_code_page_stateful(int code_page,
do
{
#ifdef NEED_RETRY
- if (size > DECODING_CHUNK_SIZE) {
- chunk_size = DECODING_CHUNK_SIZE;
+ if (size > DECODING_CHUNK_SIZE) {
+ chunk_size = DECODING_CHUNK_SIZE;
final = 0;
done = 0;
}
@@ -7639,21 +7639,21 @@ decode_code_page_stateful(int code_page,
}
if (chunk_size == 0 && done) {
- if (buf != NULL)
+ if (buf != NULL)
break;
_Py_RETURN_UNICODE_EMPTY();
}
- converted = decode_code_page_strict(code_page, &buf, &bufsize,
+ converted = decode_code_page_strict(code_page, &buf, &bufsize,
s, chunk_size);
if (converted == -2)
- converted = decode_code_page_errors(code_page, &buf, &bufsize,
+ converted = decode_code_page_errors(code_page, &buf, &bufsize,
s, chunk_size,
errors, final);
assert(converted != 0 || done);
if (converted < 0) {
- PyMem_Free(buf);
+ PyMem_Free(buf);
return NULL;
}
@@ -7664,9 +7664,9 @@ decode_code_page_stateful(int code_page,
size -= converted;
} while (!done);
- PyObject *v = PyUnicode_FromWideChar(buf, bufsize);
- PyMem_Free(buf);
- return v;
+ PyObject *v = PyUnicode_FromWideChar(buf, bufsize);
+ PyMem_Free(buf);
+ return v;
}
PyObject *
@@ -7747,10 +7747,10 @@ encode_code_page_strict(UINT code_page, PyObject **outbytes,
substring = PyUnicode_Substring(unicode, offset, offset+len);
if (substring == NULL)
return -1;
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
p = PyUnicode_AsUnicodeAndSize(substring, &size);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (p == NULL) {
Py_DECREF(substring);
return -1;
@@ -7952,7 +7952,7 @@ encode_code_page_errors(UINT code_page, PyObject **outbytes,
else {
Py_ssize_t i;
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(rep) == -1) {
Py_DECREF(rep);
@@ -8033,8 +8033,8 @@ encode_code_page(int code_page,
do
{
#ifdef NEED_RETRY
- if (len > DECODING_CHUNK_SIZE) {
- chunk_len = DECODING_CHUNK_SIZE;
+ if (len > DECODING_CHUNK_SIZE) {
+ chunk_len = DECODING_CHUNK_SIZE;
done = 0;
}
else
@@ -8110,7 +8110,7 @@ charmap_decode_string(const char *s,
PyObject *errorHandler = NULL, *exc = NULL;
Py_ssize_t maplen;
enum PyUnicode_Kind mapkind;
- const void *mapdata;
+ const void *mapdata;
Py_UCS4 x;
unsigned char ch;
@@ -8127,7 +8127,7 @@ charmap_decode_string(const char *s,
/* fast-path for cp037, cp500 and iso8859_1 encodings. iso8859_1
* is disabled in encoding aliases, latin1 is preferred because
* its implementation is faster. */
- const Py_UCS1 *mapdata_ucs1 = (const Py_UCS1 *)mapdata;
+ const Py_UCS1 *mapdata_ucs1 = (const Py_UCS1 *)mapdata;
Py_UCS1 *outdata = (Py_UCS1 *)writer->data;
Py_UCS4 maxchar = writer->maxchar;
@@ -8151,7 +8151,7 @@ charmap_decode_string(const char *s,
while (s < e) {
if (mapkind == PyUnicode_2BYTE_KIND && maplen >= 256) {
enum PyUnicode_Kind outkind = writer->kind;
- const Py_UCS2 *mapdata_ucs2 = (const Py_UCS2 *)mapdata;
+ const Py_UCS2 *mapdata_ucs2 = (const Py_UCS2 *)mapdata;
if (outkind == PyUnicode_1BYTE_KIND) {
Py_UCS1 *outdata = (Py_UCS1 *)writer->data;
Py_UCS4 maxchar = writer->maxchar;
@@ -8260,7 +8260,7 @@ charmap_decode_mapping(const char *s,
goto Undefined;
if (value < 0 || value > MAX_UNICODE) {
PyErr_Format(PyExc_TypeError,
- "character mapping must be in range(0x%x)",
+ "character mapping must be in range(0x%x)",
(unsigned long)MAX_UNICODE + 1);
goto onError;
}
@@ -8381,11 +8381,11 @@ static PyTypeObject EncodingMapType = {
sizeof(struct encoding_map), /*tp_basicsize*/
0, /*tp_itemsize*/
/* methods */
- 0, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_dealloc*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -8431,7 +8431,7 @@ PyUnicode_BuildEncodingMap(PyObject* string)
unsigned char *mlevel1, *mlevel2, *mlevel3;
int count2 = 0, count3 = 0;
int kind;
- const void *data;
+ const void *data;
Py_ssize_t length;
Py_UCS4 ch;
@@ -8599,7 +8599,7 @@ charmapencode_lookup(Py_UCS4 c, PyObject *mapping)
/* wrong return value */
PyErr_Format(PyExc_TypeError,
"character mapping must return integer, bytes or None, not %.400s",
- Py_TYPE(x)->tp_name);
+ Py_TYPE(x)->tp_name);
Py_DECREF(x);
return NULL;
}
@@ -8634,7 +8634,7 @@ charmapencode_output(Py_UCS4 c, PyObject *mapping,
char *outstart;
Py_ssize_t outsize = PyBytes_GET_SIZE(*outobj);
- if (Py_IS_TYPE(mapping, &EncodingMapType)) {
+ if (Py_IS_TYPE(mapping, &EncodingMapType)) {
int res = encoding_map_lookup(c, mapping);
Py_ssize_t requiredsize = *outpos+1;
if (res == -1)
@@ -8695,7 +8695,7 @@ charmap_encoding_error(
Py_ssize_t size, repsize;
Py_ssize_t newpos;
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
Py_ssize_t index;
/* startpos for collecting unencodable chars */
Py_ssize_t collstartpos = *inpos;
@@ -8713,7 +8713,7 @@ charmap_encoding_error(
/* find all unencodable characters */
while (collendpos < size) {
PyObject *rep;
- if (Py_IS_TYPE(mapping, &EncodingMapType)) {
+ if (Py_IS_TYPE(mapping, &EncodingMapType)) {
ch = PyUnicode_READ_CHAR(unicode, collendpos);
val = encoding_map_lookup(ch, mapping);
if (val != -1)
@@ -8736,7 +8736,7 @@ charmap_encoding_error(
/* cache callback name lookup
* (if not done yet, i.e. it's the first error) */
if (*error_handler == _Py_ERROR_UNKNOWN)
- *error_handler = _Py_GetErrorHandler(errors);
+ *error_handler = _Py_GetErrorHandler(errors);
switch (*error_handler) {
case _Py_ERROR_STRICT:
@@ -8845,7 +8845,7 @@ _PyUnicode_EncodeCharmap(PyObject *unicode,
PyObject *error_handler_obj = NULL;
PyObject *exc = NULL;
_Py_error_handler error_handler = _Py_ERROR_UNKNOWN;
- const void *data;
+ const void *data;
int kind;
if (PyUnicode_READY(unicode) == -1)
@@ -8981,7 +8981,7 @@ unicode_translate_call_errorhandler(const char *errors,
if (*exceptionObject == NULL)
return NULL;
- restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
+ restuple = PyObject_CallOneArg(*errorHandler, *exceptionObject);
if (restuple == NULL)
return NULL;
if (!PyTuple_Check(restuple)) {
@@ -9177,8 +9177,8 @@ unicode_fast_translate(PyObject *input, PyObject *mapping,
{
Py_UCS1 ascii_table[128], ch, ch2;
Py_ssize_t len;
- const Py_UCS1 *in, *end;
- Py_UCS1 *out;
+ const Py_UCS1 *in, *end;
+ Py_UCS1 *out;
int res = 0;
len = PyUnicode_GET_LENGTH(input);
@@ -9227,7 +9227,7 @@ _PyUnicode_TranslateCharmap(PyObject *input,
const char *errors)
{
/* input object */
- const void *data;
+ const void *data;
Py_ssize_t size, i;
int kind;
/* output buffer */
@@ -9246,7 +9246,7 @@ _PyUnicode_TranslateCharmap(PyObject *input,
if (PyUnicode_READY(input) == -1)
return NULL;
- data = PyUnicode_DATA(input);
+ data = PyUnicode_DATA(input);
kind = PyUnicode_KIND(input);
size = PyUnicode_GET_LENGTH(input);
@@ -9424,7 +9424,7 @@ PyUnicode_TransformDecimalToASCII(Py_UNICODE *s,
Py_ssize_t i;
Py_UCS4 maxchar;
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
maxchar = 127;
for (i = 0; i < length; i++) {
@@ -9466,7 +9466,7 @@ PyUnicode_EncodeDecimal(Py_UNICODE *s,
PyObject *unicode;
Py_ssize_t i;
enum PyUnicode_Kind kind;
- const void *data;
+ const void *data;
if (output == NULL) {
PyErr_BadArgument();
@@ -9544,7 +9544,7 @@ any_find_slice(PyObject* s1, PyObject* s2,
int direction)
{
int kind1, kind2;
- const void *buf1, *buf2;
+ const void *buf1, *buf2;
Py_ssize_t len1, len2, result;
kind1 = PyUnicode_KIND(s1);
@@ -9571,7 +9571,7 @@ any_find_slice(PyObject* s1, PyObject* s2,
}
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
return -2;
}
@@ -9613,9 +9613,9 @@ any_find_slice(PyObject* s1, PyObject* s2,
}
}
- assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(s2)));
+ assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(s2)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return result;
}
@@ -9774,7 +9774,7 @@ PyUnicode_Count(PyObject *str,
{
Py_ssize_t result;
int kind1, kind2;
- const void *buf1 = NULL, *buf2 = NULL;
+ const void *buf1 = NULL, *buf2 = NULL;
Py_ssize_t len1, len2;
if (ensure_unicode(str) < 0 || ensure_unicode(substr) < 0)
@@ -9794,7 +9794,7 @@ PyUnicode_Count(PyObject *str,
buf1 = PyUnicode_DATA(str);
buf2 = PyUnicode_DATA(substr);
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
goto onError;
}
@@ -9803,24 +9803,24 @@ PyUnicode_Count(PyObject *str,
case PyUnicode_1BYTE_KIND:
if (PyUnicode_IS_ASCII(str) && PyUnicode_IS_ASCII(substr))
result = asciilib_count(
- ((const Py_UCS1*)buf1) + start, end - start,
+ ((const Py_UCS1*)buf1) + start, end - start,
buf2, len2, PY_SSIZE_T_MAX
);
else
result = ucs1lib_count(
- ((const Py_UCS1*)buf1) + start, end - start,
+ ((const Py_UCS1*)buf1) + start, end - start,
buf2, len2, PY_SSIZE_T_MAX
);
break;
case PyUnicode_2BYTE_KIND:
result = ucs2lib_count(
- ((const Py_UCS2*)buf1) + start, end - start,
+ ((const Py_UCS2*)buf1) + start, end - start,
buf2, len2, PY_SSIZE_T_MAX
);
break;
case PyUnicode_4BYTE_KIND:
result = ucs4lib_count(
- ((const Py_UCS4*)buf1) + start, end - start,
+ ((const Py_UCS4*)buf1) + start, end - start,
buf2, len2, PY_SSIZE_T_MAX
);
break;
@@ -9828,15 +9828,15 @@ PyUnicode_Count(PyObject *str,
Py_UNREACHABLE();
}
- assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)));
+ assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return result;
onError:
- assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)));
- if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)));
+ if (kind2 != kind1)
+ PyMem_Free((void *)buf2);
return -1;
}
@@ -9884,8 +9884,8 @@ tailmatch(PyObject *self,
{
int kind_self;
int kind_sub;
- const void *data_self;
- const void *data_sub;
+ const void *data_self;
+ const void *data_sub;
Py_ssize_t offset;
Py_ssize_t i;
Py_ssize_t end_sub;
@@ -9959,8 +9959,8 @@ static PyObject *
ascii_upper_or_lower(PyObject *self, int lower)
{
Py_ssize_t len = PyUnicode_GET_LENGTH(self);
- const char *data = PyUnicode_DATA(self);
- char *resdata;
+ const char *data = PyUnicode_DATA(self);
+ char *resdata;
PyObject *res;
res = PyUnicode_New(len, 127);
@@ -9975,7 +9975,7 @@ ascii_upper_or_lower(PyObject *self, int lower)
}
static Py_UCS4
-handle_capital_sigma(int kind, const void *data, Py_ssize_t length, Py_ssize_t i)
+handle_capital_sigma(int kind, const void *data, Py_ssize_t length, Py_ssize_t i)
{
Py_ssize_t j;
int final_sigma;
@@ -10004,7 +10004,7 @@ handle_capital_sigma(int kind, const void *data, Py_ssize_t length, Py_ssize_t i
}
static int
-lower_ucs4(int kind, const void *data, Py_ssize_t length, Py_ssize_t i,
+lower_ucs4(int kind, const void *data, Py_ssize_t length, Py_ssize_t i,
Py_UCS4 c, Py_UCS4 *mapped)
{
/* Obscure special case. */
@@ -10016,14 +10016,14 @@ lower_ucs4(int kind, const void *data, Py_ssize_t length, Py_ssize_t i,
}
static Py_ssize_t
-do_capitalize(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
+do_capitalize(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
{
Py_ssize_t i, k = 0;
int n_res, j;
Py_UCS4 c, mapped[3];
c = PyUnicode_READ(kind, data, 0);
- n_res = _PyUnicode_ToTitleFull(c, mapped);
+ n_res = _PyUnicode_ToTitleFull(c, mapped);
for (j = 0; j < n_res; j++) {
*maxchar = Py_MAX(*maxchar, mapped[j]);
res[k++] = mapped[j];
@@ -10040,7 +10040,7 @@ do_capitalize(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UC
}
static Py_ssize_t
-do_swapcase(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar) {
+do_swapcase(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar) {
Py_ssize_t i, k = 0;
for (i = 0; i < length; i++) {
@@ -10065,7 +10065,7 @@ do_swapcase(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
}
static Py_ssize_t
-do_upper_or_lower(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res,
+do_upper_or_lower(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res,
Py_UCS4 *maxchar, int lower)
{
Py_ssize_t i, k = 0;
@@ -10086,19 +10086,19 @@ do_upper_or_lower(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res,
}
static Py_ssize_t
-do_upper(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
+do_upper(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
{
return do_upper_or_lower(kind, data, length, res, maxchar, 0);
}
static Py_ssize_t
-do_lower(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
+do_lower(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
{
return do_upper_or_lower(kind, data, length, res, maxchar, 1);
}
static Py_ssize_t
-do_casefold(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
+do_casefold(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
{
Py_ssize_t i, k = 0;
@@ -10115,7 +10115,7 @@ do_casefold(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
}
static Py_ssize_t
-do_title(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
+do_title(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *maxchar)
{
Py_ssize_t i, k = 0;
int previous_is_cased;
@@ -10143,13 +10143,13 @@ do_title(int kind, const void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4 *m
static PyObject *
case_operation(PyObject *self,
- Py_ssize_t (*perform)(int, const void *, Py_ssize_t, Py_UCS4 *, Py_UCS4 *))
+ Py_ssize_t (*perform)(int, const void *, Py_ssize_t, Py_UCS4 *, Py_UCS4 *))
{
PyObject *res = NULL;
Py_ssize_t length, newlength = 0;
int kind, outkind;
- const void *data;
- void *outdata;
+ const void *data;
+ void *outdata;
Py_UCS4 maxchar = 0, *tmp, *tmpend;
assert(PyUnicode_IS_READY(self));
@@ -10396,7 +10396,7 @@ _PyUnicode_FastFill(PyObject *unicode, Py_ssize_t start, Py_ssize_t length,
assert(fill_char <= PyUnicode_MAX_CHAR_VALUE(unicode));
assert(start >= 0);
assert(start + length <= PyUnicode_GET_LENGTH(unicode));
- unicode_fill(kind, data, fill_char, start, length);
+ unicode_fill(kind, data, fill_char, start, length);
}
Py_ssize_t
@@ -10467,9 +10467,9 @@ pad(PyObject *self,
kind = PyUnicode_KIND(u);
data = PyUnicode_DATA(u);
if (left)
- unicode_fill(kind, data, fill, 0, left);
+ unicode_fill(kind, data, fill, 0, left);
if (right)
- unicode_fill(kind, data, fill, left + _PyUnicode_LENGTH(self), right);
+ unicode_fill(kind, data, fill, left + _PyUnicode_LENGTH(self), right);
_PyUnicode_FastCopyCharacters(u, left, self, 0, _PyUnicode_LENGTH(self));
assert(_PyUnicode_CheckConsistency(u, 1));
return u;
@@ -10516,7 +10516,7 @@ split(PyObject *self,
Py_ssize_t maxcount)
{
int kind1, kind2;
- const void *buf1, *buf2;
+ const void *buf1, *buf2;
Py_ssize_t len1, len2;
PyObject* out;
@@ -10571,7 +10571,7 @@ split(PyObject *self,
buf1 = PyUnicode_DATA(self);
buf2 = PyUnicode_DATA(substring);
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
return NULL;
}
@@ -10596,9 +10596,9 @@ split(PyObject *self,
default:
out = NULL;
}
- assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substring)));
+ assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substring)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return out;
}
@@ -10608,7 +10608,7 @@ rsplit(PyObject *self,
Py_ssize_t maxcount)
{
int kind1, kind2;
- const void *buf1, *buf2;
+ const void *buf1, *buf2;
Py_ssize_t len1, len2;
PyObject* out;
@@ -10663,7 +10663,7 @@ rsplit(PyObject *self,
buf1 = PyUnicode_DATA(self);
buf2 = PyUnicode_DATA(substring);
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
return NULL;
}
@@ -10688,15 +10688,15 @@ rsplit(PyObject *self,
default:
out = NULL;
}
- assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substring)));
+ assert((kind2 != kind1) == (buf2 != PyUnicode_DATA(substring)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return out;
}
static Py_ssize_t
-anylib_find(int kind, PyObject *str1, const void *buf1, Py_ssize_t len1,
- PyObject *str2, const void *buf2, Py_ssize_t len2, Py_ssize_t offset)
+anylib_find(int kind, PyObject *str1, const void *buf1, Py_ssize_t len1,
+ PyObject *str2, const void *buf2, Py_ssize_t len2, Py_ssize_t offset)
{
switch (kind) {
case PyUnicode_1BYTE_KIND:
@@ -10713,8 +10713,8 @@ anylib_find(int kind, PyObject *str1, const void *buf1, Py_ssize_t len1,
}
static Py_ssize_t
-anylib_count(int kind, PyObject *sstr, const void* sbuf, Py_ssize_t slen,
- PyObject *str1, const void *buf1, Py_ssize_t len1, Py_ssize_t maxcount)
+anylib_count(int kind, PyObject *sstr, const void* sbuf, Py_ssize_t slen,
+ PyObject *str1, const void *buf1, Py_ssize_t len1, Py_ssize_t maxcount)
{
switch (kind) {
case PyUnicode_1BYTE_KIND:
@@ -10760,9 +10760,9 @@ replace(PyObject *self, PyObject *str1,
PyObject *str2, Py_ssize_t maxcount)
{
PyObject *u;
- const char *sbuf = PyUnicode_DATA(self);
- const void *buf1 = PyUnicode_DATA(str1);
- const void *buf2 = PyUnicode_DATA(str2);
+ const char *sbuf = PyUnicode_DATA(self);
+ const void *buf1 = PyUnicode_DATA(str1);
+ const void *buf2 = PyUnicode_DATA(str2);
int srelease = 0, release1 = 0, release2 = 0;
int skind = PyUnicode_KIND(self);
int kind1 = PyUnicode_KIND(str1);
@@ -10773,12 +10773,12 @@ replace(PyObject *self, PyObject *str1,
int mayshrink;
Py_UCS4 maxchar, maxchar_str1, maxchar_str2;
- if (slen < len1)
- goto nothing;
-
+ if (slen < len1)
+ goto nothing;
+
if (maxcount < 0)
maxcount = PY_SSIZE_T_MAX;
- else if (maxcount == 0)
+ else if (maxcount == 0)
goto nothing;
if (str1 == str2)
@@ -10823,7 +10823,7 @@ replace(PyObject *self, PyObject *str1,
if (kind1 < rkind) {
/* widen substring */
- buf1 = unicode_askind(kind1, buf1, len1, rkind);
+ buf1 = unicode_askind(kind1, buf1, len1, rkind);
if (!buf1) goto error;
release1 = 1;
}
@@ -10832,23 +10832,23 @@ replace(PyObject *self, PyObject *str1,
goto nothing;
if (rkind > kind2) {
/* widen replacement */
- buf2 = unicode_askind(kind2, buf2, len2, rkind);
+ buf2 = unicode_askind(kind2, buf2, len2, rkind);
if (!buf2) goto error;
release2 = 1;
}
else if (rkind < kind2) {
/* widen self and buf1 */
rkind = kind2;
- if (release1) {
- assert(buf1 != PyUnicode_DATA(str1));
- PyMem_Free((void *)buf1);
- buf1 = PyUnicode_DATA(str1);
- release1 = 0;
- }
- sbuf = unicode_askind(skind, sbuf, slen, rkind);
+ if (release1) {
+ assert(buf1 != PyUnicode_DATA(str1));
+ PyMem_Free((void *)buf1);
+ buf1 = PyUnicode_DATA(str1);
+ release1 = 0;
+ }
+ sbuf = unicode_askind(skind, sbuf, slen, rkind);
if (!sbuf) goto error;
srelease = 1;
- buf1 = unicode_askind(kind1, buf1, len1, rkind);
+ buf1 = unicode_askind(kind1, buf1, len1, rkind);
if (!buf1) goto error;
release1 = 1;
}
@@ -10886,7 +10886,7 @@ replace(PyObject *self, PyObject *str1,
if (kind1 < rkind) {
/* widen substring */
- buf1 = unicode_askind(kind1, buf1, len1, rkind);
+ buf1 = unicode_askind(kind1, buf1, len1, rkind);
if (!buf1) goto error;
release1 = 1;
}
@@ -10895,28 +10895,28 @@ replace(PyObject *self, PyObject *str1,
goto nothing;
if (kind2 < rkind) {
/* widen replacement */
- buf2 = unicode_askind(kind2, buf2, len2, rkind);
+ buf2 = unicode_askind(kind2, buf2, len2, rkind);
if (!buf2) goto error;
release2 = 1;
}
else if (kind2 > rkind) {
/* widen self and buf1 */
rkind = kind2;
- sbuf = unicode_askind(skind, sbuf, slen, rkind);
+ sbuf = unicode_askind(skind, sbuf, slen, rkind);
if (!sbuf) goto error;
srelease = 1;
- if (release1) {
- assert(buf1 != PyUnicode_DATA(str1));
- PyMem_Free((void *)buf1);
- buf1 = PyUnicode_DATA(str1);
- release1 = 0;
- }
- buf1 = unicode_askind(kind1, buf1, len1, rkind);
+ if (release1) {
+ assert(buf1 != PyUnicode_DATA(str1));
+ PyMem_Free((void *)buf1);
+ buf1 = PyUnicode_DATA(str1);
+ release1 = 0;
+ }
+ buf1 = unicode_askind(kind1, buf1, len1, rkind);
if (!buf1) goto error;
release1 = 1;
}
/* new_size = PyUnicode_GET_LENGTH(self) + n * (PyUnicode_GET_LENGTH(str2) -
- PyUnicode_GET_LENGTH(str1)); */
+ PyUnicode_GET_LENGTH(str1)); */
if (len1 < len2 && len2 - len1 > (PY_SSIZE_T_MAX - slen) / n) {
PyErr_SetString(PyExc_OverflowError,
"replace string is too long");
@@ -10999,41 +10999,41 @@ replace(PyObject *self, PyObject *str1,
}
done:
- assert(srelease == (sbuf != PyUnicode_DATA(self)));
- assert(release1 == (buf1 != PyUnicode_DATA(str1)));
- assert(release2 == (buf2 != PyUnicode_DATA(str2)));
+ assert(srelease == (sbuf != PyUnicode_DATA(self)));
+ assert(release1 == (buf1 != PyUnicode_DATA(str1)));
+ assert(release2 == (buf2 != PyUnicode_DATA(str2)));
if (srelease)
- PyMem_FREE((void *)sbuf);
+ PyMem_FREE((void *)sbuf);
if (release1)
- PyMem_FREE((void *)buf1);
+ PyMem_FREE((void *)buf1);
if (release2)
- PyMem_FREE((void *)buf2);
+ PyMem_FREE((void *)buf2);
assert(_PyUnicode_CheckConsistency(u, 1));
return u;
nothing:
/* nothing to replace; return original string (when possible) */
- assert(srelease == (sbuf != PyUnicode_DATA(self)));
- assert(release1 == (buf1 != PyUnicode_DATA(str1)));
- assert(release2 == (buf2 != PyUnicode_DATA(str2)));
+ assert(srelease == (sbuf != PyUnicode_DATA(self)));
+ assert(release1 == (buf1 != PyUnicode_DATA(str1)));
+ assert(release2 == (buf2 != PyUnicode_DATA(str2)));
if (srelease)
- PyMem_FREE((void *)sbuf);
+ PyMem_FREE((void *)sbuf);
if (release1)
- PyMem_FREE((void *)buf1);
+ PyMem_FREE((void *)buf1);
if (release2)
- PyMem_FREE((void *)buf2);
+ PyMem_FREE((void *)buf2);
return unicode_result_unchanged(self);
error:
- assert(srelease == (sbuf != PyUnicode_DATA(self)));
- assert(release1 == (buf1 != PyUnicode_DATA(str1)));
- assert(release2 == (buf2 != PyUnicode_DATA(str2)));
- if (srelease)
- PyMem_FREE((void *)sbuf);
- if (release1)
- PyMem_FREE((void *)buf1);
- if (release2)
- PyMem_FREE((void *)buf2);
+ assert(srelease == (sbuf != PyUnicode_DATA(self)));
+ assert(release1 == (buf1 != PyUnicode_DATA(str1)));
+ assert(release2 == (buf2 != PyUnicode_DATA(str2)));
+ if (srelease)
+ PyMem_FREE((void *)sbuf);
+ if (release1)
+ PyMem_FREE((void *)buf1);
+ if (release2)
+ PyMem_FREE((void *)buf2);
return NULL;
}
@@ -11170,7 +11170,7 @@ unicode_compare(PyObject *str1, PyObject *str2)
while (0)
int kind1, kind2;
- const void *data1, *data2;
+ const void *data1, *data2;
Py_ssize_t len1, len2, len;
kind1 = PyUnicode_KIND(str1);
@@ -11271,7 +11271,7 @@ static int
unicode_compare_eq(PyObject *str1, PyObject *str2)
{
int kind;
- const void *data1, *data2;
+ const void *data1, *data2;
Py_ssize_t len;
int cmp;
@@ -11305,8 +11305,8 @@ PyUnicode_Compare(PyObject *left, PyObject *right)
}
PyErr_Format(PyExc_TypeError,
"Can't compare %.100s and %.100s",
- Py_TYPE(left)->tp_name,
- Py_TYPE(right)->tp_name);
+ Py_TYPE(left)->tp_name,
+ Py_TYPE(right)->tp_name);
return -1;
}
@@ -11356,7 +11356,7 @@ PyUnicode_CompareWithASCIIString(PyObject* uni, const char* str)
return 0;
}
else {
- const void *data = PyUnicode_DATA(uni);
+ const void *data = PyUnicode_DATA(uni);
/* Compare Unicode string and source character set string */
for (i = 0; (chr = PyUnicode_READ(kind, data, i)) && str[i]; i++)
if (chr != (unsigned char)str[i])
@@ -11447,12 +11447,12 @@ _PyUnicode_EqualToASCIIId(PyObject *left, _Py_Identifier *right)
if (PyUnicode_CHECK_INTERNED(left))
return 0;
-#ifdef INTERNED_STRINGS
+#ifdef INTERNED_STRINGS
assert(_PyUnicode_HASH(right_uni) != -1);
- Py_hash_t hash = _PyUnicode_HASH(left);
+ Py_hash_t hash = _PyUnicode_HASH(left);
if (hash != -1 && hash != _PyUnicode_HASH(right_uni))
return 0;
-#endif
+#endif
return unicode_compare_eq(left, right_uni);
}
@@ -11506,7 +11506,7 @@ int
PyUnicode_Contains(PyObject *str, PyObject *substr)
{
int kind1, kind2;
- const void *buf1, *buf2;
+ const void *buf1, *buf2;
Py_ssize_t len1, len2;
int result;
@@ -11537,7 +11537,7 @@ PyUnicode_Contains(PyObject *str, PyObject *substr)
return result;
}
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
return -1;
}
@@ -11556,9 +11556,9 @@ PyUnicode_Contains(PyObject *str, PyObject *substr)
Py_UNREACHABLE();
}
- assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(substr)));
+ assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(substr)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return result;
}
@@ -11578,7 +11578,7 @@ PyUnicode_Concat(PyObject *left, PyObject *right)
if (!PyUnicode_Check(right)) {
PyErr_Format(PyExc_TypeError,
"can only concatenate str (not \"%.200s\") to str",
- Py_TYPE(right)->tp_name);
+ Py_TYPE(right)->tp_name);
return NULL;
}
if (PyUnicode_READY(right) < 0)
@@ -11735,7 +11735,7 @@ unicode_count(PyObject *self, PyObject *args)
Py_ssize_t end = PY_SSIZE_T_MAX;
PyObject *result;
int kind1, kind2;
- const void *buf1, *buf2;
+ const void *buf1, *buf2;
Py_ssize_t len1, len2, iresult;
if (!parse_args_finds_unicode("count", args, &substring, &start, &end))
@@ -11755,26 +11755,26 @@ unicode_count(PyObject *self, PyObject *args)
buf1 = PyUnicode_DATA(self);
buf2 = PyUnicode_DATA(substring);
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
return NULL;
}
switch (kind1) {
case PyUnicode_1BYTE_KIND:
iresult = ucs1lib_count(
- ((const Py_UCS1*)buf1) + start, end - start,
+ ((const Py_UCS1*)buf1) + start, end - start,
buf2, len2, PY_SSIZE_T_MAX
);
break;
case PyUnicode_2BYTE_KIND:
iresult = ucs2lib_count(
- ((const Py_UCS2*)buf1) + start, end - start,
+ ((const Py_UCS2*)buf1) + start, end - start,
buf2, len2, PY_SSIZE_T_MAX
);
break;
case PyUnicode_4BYTE_KIND:
iresult = ucs4lib_count(
- ((const Py_UCS4*)buf1) + start, end - start,
+ ((const Py_UCS4*)buf1) + start, end - start,
buf2, len2, PY_SSIZE_T_MAX
);
break;
@@ -11784,9 +11784,9 @@ unicode_count(PyObject *self, PyObject *args)
result = PyLong_FromSsize_t(iresult);
- assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(substring)));
+ assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(substring)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return result;
}
@@ -11830,8 +11830,8 @@ unicode_expandtabs_impl(PyObject *self, int tabsize)
Py_ssize_t i, j, line_pos, src_len, incr;
Py_UCS4 ch;
PyObject *u;
- const void *src_data;
- void *dest_data;
+ const void *src_data;
+ void *dest_data;
int kind;
int found;
@@ -11882,7 +11882,7 @@ unicode_expandtabs_impl(PyObject *self, int tabsize)
if (tabsize > 0) {
incr = tabsize - (line_pos % tabsize);
line_pos += incr;
- unicode_fill(kind, dest_data, ' ', j, incr);
+ unicode_fill(kind, dest_data, ' ', j, incr);
j += incr;
}
}
@@ -11937,7 +11937,7 @@ unicode_find(PyObject *self, PyObject *args)
static PyObject *
unicode_getitem(PyObject *self, Py_ssize_t index)
{
- const void *data;
+ const void *data;
enum PyUnicode_Kind kind;
Py_UCS4 ch;
@@ -11972,7 +11972,7 @@ unicode_hash(PyObject *self)
return _PyUnicode_HASH(self);
if (PyUnicode_READY(self) == -1)
return -1;
-
+
x = _Py_HashBytes(PyUnicode_DATA(self),
PyUnicode_GET_LENGTH(self) * PyUnicode_KIND(self));
_PyUnicode_HASH(self) = x;
@@ -11982,7 +11982,7 @@ unicode_hash(PyObject *self)
PyDoc_STRVAR(index__doc__,
"S.index(sub[, start[, end]]) -> int\n\
\n\
-Return the lowest index in S where substring sub is found,\n\
+Return the lowest index in S where substring sub is found,\n\
such that sub is contained within S[start:end]. Optional\n\
arguments start and end are interpreted as in slice notation.\n\
\n\
@@ -12050,7 +12050,7 @@ unicode_islower_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
int cased;
if (PyUnicode_READY(self) == -1)
@@ -12095,7 +12095,7 @@ unicode_isupper_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
int cased;
if (PyUnicode_READY(self) == -1)
@@ -12140,7 +12140,7 @@ unicode_istitle_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
int cased, previous_is_cased;
if (PyUnicode_READY(self) == -1)
@@ -12198,7 +12198,7 @@ unicode_isspace_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(self) == -1)
return NULL;
@@ -12238,7 +12238,7 @@ unicode_isalpha_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(self) == -1)
return NULL;
@@ -12276,7 +12276,7 @@ unicode_isalnum_impl(PyObject *self)
/*[clinic end generated code: output=a5a23490ffc3660c input=5c6579bf2e04758c]*/
{
int kind;
- const void *data;
+ const void *data;
Py_ssize_t len, i;
if (PyUnicode_READY(self) == -1)
@@ -12319,7 +12319,7 @@ unicode_isdecimal_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(self) == -1)
return NULL;
@@ -12358,7 +12358,7 @@ unicode_isdigit_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(self) == -1)
return NULL;
@@ -12398,7 +12398,7 @@ unicode_isnumeric_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(self) == -1)
return NULL;
@@ -12422,22 +12422,22 @@ unicode_isnumeric_impl(PyObject *self)
Py_RETURN_TRUE;
}
-Py_ssize_t
-_PyUnicode_ScanIdentifier(PyObject *self)
+Py_ssize_t
+_PyUnicode_ScanIdentifier(PyObject *self)
{
Py_ssize_t i;
- if (PyUnicode_READY(self) == -1)
- return -1;
+ if (PyUnicode_READY(self) == -1)
+ return -1;
- Py_ssize_t len = PyUnicode_GET_LENGTH(self);
- if (len == 0) {
- /* an empty string is not a valid identifier */
+ Py_ssize_t len = PyUnicode_GET_LENGTH(self);
+ if (len == 0) {
+ /* an empty string is not a valid identifier */
return 0;
}
- int kind = PyUnicode_KIND(self);
- const void *data = PyUnicode_DATA(self);
- Py_UCS4 ch = PyUnicode_READ(kind, data, 0);
+ int kind = PyUnicode_KIND(self);
+ const void *data = PyUnicode_DATA(self);
+ Py_UCS4 ch = PyUnicode_READ(kind, data, 0);
/* PEP 3131 says that the first character must be in
XID_Start and subsequent characters in XID_Continue,
and for the ASCII range, the 2.x rules apply (i.e
@@ -12446,70 +12446,70 @@ _PyUnicode_ScanIdentifier(PyObject *self)
definition of XID_Start and XID_Continue, it is sufficient
to check just for these, except that _ must be allowed
as starting an identifier. */
- if (!_PyUnicode_IsXidStart(ch) && ch != 0x5F /* LOW LINE */) {
+ if (!_PyUnicode_IsXidStart(ch) && ch != 0x5F /* LOW LINE */) {
return 0;
- }
-
- for (i = 1; i < len; i++) {
- ch = PyUnicode_READ(kind, data, i);
- if (!_PyUnicode_IsXidContinue(ch)) {
- return i;
- }
- }
- return i;
-}
-
-int
-PyUnicode_IsIdentifier(PyObject *self)
-{
- if (PyUnicode_IS_READY(self)) {
- Py_ssize_t i = _PyUnicode_ScanIdentifier(self);
- Py_ssize_t len = PyUnicode_GET_LENGTH(self);
- /* an empty string is not a valid identifier */
- return len && i == len;
- }
- else {
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
- Py_ssize_t i = 0, len = PyUnicode_GET_SIZE(self);
- if (len == 0) {
- /* an empty string is not a valid identifier */
+ }
+
+ for (i = 1; i < len; i++) {
+ ch = PyUnicode_READ(kind, data, i);
+ if (!_PyUnicode_IsXidContinue(ch)) {
+ return i;
+ }
+ }
+ return i;
+}
+
+int
+PyUnicode_IsIdentifier(PyObject *self)
+{
+ if (PyUnicode_IS_READY(self)) {
+ Py_ssize_t i = _PyUnicode_ScanIdentifier(self);
+ Py_ssize_t len = PyUnicode_GET_LENGTH(self);
+ /* an empty string is not a valid identifier */
+ return len && i == len;
+ }
+ else {
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+ Py_ssize_t i = 0, len = PyUnicode_GET_SIZE(self);
+ if (len == 0) {
+ /* an empty string is not a valid identifier */
return 0;
- }
-
- const wchar_t *wstr = _PyUnicode_WSTR(self);
- Py_UCS4 ch = wstr[i++];
-#if SIZEOF_WCHAR_T == 2
- if (Py_UNICODE_IS_HIGH_SURROGATE(ch)
- && i < len
- && Py_UNICODE_IS_LOW_SURROGATE(wstr[i]))
- {
- ch = Py_UNICODE_JOIN_SURROGATES(ch, wstr[i]);
- i++;
- }
-#endif
- if (!_PyUnicode_IsXidStart(ch) && ch != 0x5F /* LOW LINE */) {
- return 0;
- }
-
- while (i < len) {
- ch = wstr[i++];
-#if SIZEOF_WCHAR_T == 2
- if (Py_UNICODE_IS_HIGH_SURROGATE(ch)
- && i < len
- && Py_UNICODE_IS_LOW_SURROGATE(wstr[i]))
- {
- ch = Py_UNICODE_JOIN_SURROGATES(ch, wstr[i]);
- i++;
- }
-#endif
- if (!_PyUnicode_IsXidContinue(ch)) {
- return 0;
- }
- }
- return 1;
-_Py_COMP_DIAG_POP
- }
+ }
+
+ const wchar_t *wstr = _PyUnicode_WSTR(self);
+ Py_UCS4 ch = wstr[i++];
+#if SIZEOF_WCHAR_T == 2
+ if (Py_UNICODE_IS_HIGH_SURROGATE(ch)
+ && i < len
+ && Py_UNICODE_IS_LOW_SURROGATE(wstr[i]))
+ {
+ ch = Py_UNICODE_JOIN_SURROGATES(ch, wstr[i]);
+ i++;
+ }
+#endif
+ if (!_PyUnicode_IsXidStart(ch) && ch != 0x5F /* LOW LINE */) {
+ return 0;
+ }
+
+ while (i < len) {
+ ch = wstr[i++];
+#if SIZEOF_WCHAR_T == 2
+ if (Py_UNICODE_IS_HIGH_SURROGATE(ch)
+ && i < len
+ && Py_UNICODE_IS_LOW_SURROGATE(wstr[i]))
+ {
+ ch = Py_UNICODE_JOIN_SURROGATES(ch, wstr[i]);
+ i++;
+ }
+#endif
+ if (!_PyUnicode_IsXidContinue(ch)) {
+ return 0;
+ }
+ }
+ return 1;
+_Py_COMP_DIAG_POP
+ }
}
/*[clinic input]
@@ -12517,13 +12517,13 @@ str.isidentifier as unicode_isidentifier
Return True if the string is a valid Python identifier, False otherwise.
-Call keyword.iskeyword(s) to test whether string s is a reserved identifier,
-such as "def" or "class".
+Call keyword.iskeyword(s) to test whether string s is a reserved identifier,
+such as "def" or "class".
[clinic start generated code]*/
static PyObject *
unicode_isidentifier_impl(PyObject *self)
-/*[clinic end generated code: output=fe585a9666572905 input=2d807a104f21c0c5]*/
+/*[clinic end generated code: output=fe585a9666572905 input=2d807a104f21c0c5]*/
{
return PyBool_FromLong(PyUnicode_IsIdentifier(self));
}
@@ -12543,7 +12543,7 @@ unicode_isprintable_impl(PyObject *self)
{
Py_ssize_t i, length;
int kind;
- const void *data;
+ const void *data;
if (PyUnicode_READY(self) == -1)
return NULL;
@@ -12648,7 +12648,7 @@ static const char *stripfuncnames[] = {"lstrip", "rstrip", "strip"};
PyObject *
_PyUnicode_XStrip(PyObject *self, int striptype, PyObject *sepobj)
{
- const void *data;
+ const void *data;
int kind;
Py_ssize_t i, j, len;
BLOOM_MASK sepmask;
@@ -12698,7 +12698,7 @@ _PyUnicode_XStrip(PyObject *self, int striptype, PyObject *sepobj)
PyObject*
PyUnicode_Substring(PyObject *self, Py_ssize_t start, Py_ssize_t end)
{
- const unsigned char *data;
+ const unsigned char *data;
int kind;
Py_ssize_t length;
@@ -12721,7 +12721,7 @@ PyUnicode_Substring(PyObject *self, Py_ssize_t start, Py_ssize_t end)
length = end - start;
if (PyUnicode_IS_ASCII(self)) {
data = PyUnicode_1BYTE_DATA(self);
- return _PyUnicode_FromASCII((const char*)(data + start), length);
+ return _PyUnicode_FromASCII((const char*)(data + start), length);
}
else {
kind = PyUnicode_KIND(self);
@@ -12743,7 +12743,7 @@ do_strip(PyObject *self, int striptype)
len = PyUnicode_GET_LENGTH(self);
if (PyUnicode_IS_ASCII(self)) {
- const Py_UCS1 *data = PyUnicode_1BYTE_DATA(self);
+ const Py_UCS1 *data = PyUnicode_1BYTE_DATA(self);
i = 0;
if (striptype != RIGHTSTRIP) {
@@ -12769,7 +12769,7 @@ do_strip(PyObject *self, int striptype)
}
else {
int kind = PyUnicode_KIND(self);
- const void *data = PyUnicode_DATA(self);
+ const void *data = PyUnicode_DATA(self);
i = 0;
if (striptype != RIGHTSTRIP) {
@@ -12801,7 +12801,7 @@ do_strip(PyObject *self, int striptype)
static PyObject *
do_argstrip(PyObject *self, int striptype, PyObject *sep)
{
- if (sep != Py_None) {
+ if (sep != Py_None) {
if (PyUnicode_Check(sep))
return _PyUnicode_XStrip(self, striptype, sep);
else {
@@ -12822,14 +12822,14 @@ str.strip as unicode_strip
chars: object = None
/
-Return a copy of the string with leading and trailing whitespace removed.
+Return a copy of the string with leading and trailing whitespace removed.
If chars is given and not None, remove characters in chars instead.
[clinic start generated code]*/
static PyObject *
unicode_strip_impl(PyObject *self, PyObject *chars)
-/*[clinic end generated code: output=ca19018454345d57 input=385289c6f423b954]*/
+/*[clinic end generated code: output=ca19018454345d57 input=385289c6f423b954]*/
{
return do_argstrip(self, BOTHSTRIP, chars);
}
@@ -12838,7 +12838,7 @@ unicode_strip_impl(PyObject *self, PyObject *chars)
/*[clinic input]
str.lstrip as unicode_lstrip
- chars: object = None
+ chars: object = None
/
Return a copy of the string with leading whitespace removed.
@@ -12848,7 +12848,7 @@ If chars is given and not None, remove characters in chars instead.
static PyObject *
unicode_lstrip_impl(PyObject *self, PyObject *chars)
-/*[clinic end generated code: output=3b43683251f79ca7 input=529f9f3834448671]*/
+/*[clinic end generated code: output=3b43683251f79ca7 input=529f9f3834448671]*/
{
return do_argstrip(self, LEFTSTRIP, chars);
}
@@ -12857,7 +12857,7 @@ unicode_lstrip_impl(PyObject *self, PyObject *chars)
/*[clinic input]
str.rstrip as unicode_rstrip
- chars: object = None
+ chars: object = None
/
Return a copy of the string with trailing whitespace removed.
@@ -12867,7 +12867,7 @@ If chars is given and not None, remove characters in chars instead.
static PyObject *
unicode_rstrip_impl(PyObject *self, PyObject *chars)
-/*[clinic end generated code: output=4a59230017cc3b7a input=62566c627916557f]*/
+/*[clinic end generated code: output=4a59230017cc3b7a input=62566c627916557f]*/
{
return do_argstrip(self, RIGHTSTRIP, chars);
}
@@ -12902,8 +12902,8 @@ unicode_repeat(PyObject *str, Py_ssize_t len)
assert(PyUnicode_KIND(u) == PyUnicode_KIND(str));
if (PyUnicode_GET_LENGTH(str) == 1) {
- int kind = PyUnicode_KIND(str);
- Py_UCS4 fill_char = PyUnicode_READ(kind, PyUnicode_DATA(str), 0);
+ int kind = PyUnicode_KIND(str);
+ Py_UCS4 fill_char = PyUnicode_READ(kind, PyUnicode_DATA(str), 0);
if (kind == PyUnicode_1BYTE_KIND) {
void *to = PyUnicode_DATA(u);
memset(to, (unsigned char)fill_char, len);
@@ -12922,7 +12922,7 @@ unicode_repeat(PyObject *str, Py_ssize_t len)
else {
/* number of characters copied this far */
Py_ssize_t done = PyUnicode_GET_LENGTH(str);
- Py_ssize_t char_size = PyUnicode_KIND(str);
+ Py_ssize_t char_size = PyUnicode_KIND(str);
char *to = (char *) PyUnicode_DATA(u);
memcpy(to, PyUnicode_DATA(str),
PyUnicode_GET_LENGTH(str) * char_size);
@@ -12975,62 +12975,62 @@ unicode_replace_impl(PyObject *self, PyObject *old, PyObject *new,
return replace(self, old, new, count);
}
-/*[clinic input]
-str.removeprefix as unicode_removeprefix
-
- prefix: unicode
- /
-
-Return a str with the given prefix string removed if present.
-
-If the string starts with the prefix string, return string[len(prefix):].
-Otherwise, return a copy of the original string.
-[clinic start generated code]*/
-
+/*[clinic input]
+str.removeprefix as unicode_removeprefix
+
+ prefix: unicode
+ /
+
+Return a str with the given prefix string removed if present.
+
+If the string starts with the prefix string, return string[len(prefix):].
+Otherwise, return a copy of the original string.
+[clinic start generated code]*/
+
+static PyObject *
+unicode_removeprefix_impl(PyObject *self, PyObject *prefix)
+/*[clinic end generated code: output=f1e5945e9763bcb9 input=27ec40b99a37eb88]*/
+{
+ int match = tailmatch(self, prefix, 0, PY_SSIZE_T_MAX, -1);
+ if (match == -1) {
+ return NULL;
+ }
+ if (match) {
+ return PyUnicode_Substring(self, PyUnicode_GET_LENGTH(prefix),
+ PyUnicode_GET_LENGTH(self));
+ }
+ return unicode_result_unchanged(self);
+}
+
+/*[clinic input]
+str.removesuffix as unicode_removesuffix
+
+ suffix: unicode
+ /
+
+Return a str with the given suffix string removed if present.
+
+If the string ends with the suffix string and that suffix is not empty,
+return string[:-len(suffix)]. Otherwise, return a copy of the original
+string.
+[clinic start generated code]*/
+
+static PyObject *
+unicode_removesuffix_impl(PyObject *self, PyObject *suffix)
+/*[clinic end generated code: output=d36629e227636822 input=12cc32561e769be4]*/
+{
+ int match = tailmatch(self, suffix, 0, PY_SSIZE_T_MAX, +1);
+ if (match == -1) {
+ return NULL;
+ }
+ if (match) {
+ return PyUnicode_Substring(self, 0, PyUnicode_GET_LENGTH(self)
+ - PyUnicode_GET_LENGTH(suffix));
+ }
+ return unicode_result_unchanged(self);
+}
+
static PyObject *
-unicode_removeprefix_impl(PyObject *self, PyObject *prefix)
-/*[clinic end generated code: output=f1e5945e9763bcb9 input=27ec40b99a37eb88]*/
-{
- int match = tailmatch(self, prefix, 0, PY_SSIZE_T_MAX, -1);
- if (match == -1) {
- return NULL;
- }
- if (match) {
- return PyUnicode_Substring(self, PyUnicode_GET_LENGTH(prefix),
- PyUnicode_GET_LENGTH(self));
- }
- return unicode_result_unchanged(self);
-}
-
-/*[clinic input]
-str.removesuffix as unicode_removesuffix
-
- suffix: unicode
- /
-
-Return a str with the given suffix string removed if present.
-
-If the string ends with the suffix string and that suffix is not empty,
-return string[:-len(suffix)]. Otherwise, return a copy of the original
-string.
-[clinic start generated code]*/
-
-static PyObject *
-unicode_removesuffix_impl(PyObject *self, PyObject *suffix)
-/*[clinic end generated code: output=d36629e227636822 input=12cc32561e769be4]*/
-{
- int match = tailmatch(self, suffix, 0, PY_SSIZE_T_MAX, +1);
- if (match == -1) {
- return NULL;
- }
- if (match) {
- return PyUnicode_Substring(self, 0, PyUnicode_GET_LENGTH(self)
- - PyUnicode_GET_LENGTH(suffix));
- }
- return unicode_result_unchanged(self);
-}
-
-static PyObject *
unicode_repr(PyObject *unicode)
{
PyObject *repr;
@@ -13038,8 +13038,8 @@ unicode_repr(PyObject *unicode)
Py_ssize_t osize, squote, dquote, i, o;
Py_UCS4 max, quote;
int ikind, okind, unchanged;
- const void *idata;
- void *odata;
+ const void *idata;
+ void *odata;
if (PyUnicode_READY(unicode) == -1)
return NULL;
@@ -13332,7 +13332,7 @@ PyUnicode_Partition(PyObject *str_obj, PyObject *sep_obj)
{
PyObject* out;
int kind1, kind2;
- const void *buf1, *buf2;
+ const void *buf1, *buf2;
Py_ssize_t len1, len2;
if (ensure_unicode(str_obj) < 0 || ensure_unicode(sep_obj) < 0)
@@ -13355,7 +13355,7 @@ PyUnicode_Partition(PyObject *str_obj, PyObject *sep_obj)
buf1 = PyUnicode_DATA(str_obj);
buf2 = PyUnicode_DATA(sep_obj);
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
return NULL;
}
@@ -13377,9 +13377,9 @@ PyUnicode_Partition(PyObject *str_obj, PyObject *sep_obj)
Py_UNREACHABLE();
}
- assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(sep_obj)));
+ assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(sep_obj)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return out;
}
@@ -13390,7 +13390,7 @@ PyUnicode_RPartition(PyObject *str_obj, PyObject *sep_obj)
{
PyObject* out;
int kind1, kind2;
- const void *buf1, *buf2;
+ const void *buf1, *buf2;
Py_ssize_t len1, len2;
if (ensure_unicode(str_obj) < 0 || ensure_unicode(sep_obj) < 0)
@@ -13413,7 +13413,7 @@ PyUnicode_RPartition(PyObject *str_obj, PyObject *sep_obj)
buf1 = PyUnicode_DATA(str_obj);
buf2 = PyUnicode_DATA(sep_obj);
if (kind2 != kind1) {
- buf2 = unicode_askind(kind2, buf2, len2, kind1);
+ buf2 = unicode_askind(kind2, buf2, len2, kind1);
if (!buf2)
return NULL;
}
@@ -13435,9 +13435,9 @@ PyUnicode_RPartition(PyObject *str_obj, PyObject *sep_obj)
Py_UNREACHABLE();
}
- assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(sep_obj)));
+ assert((kind2 == kind1) == (buf2 == PyUnicode_DATA(sep_obj)));
if (kind2 != kind1)
- PyMem_Free((void *)buf2);
+ PyMem_Free((void *)buf2);
return out;
}
@@ -13593,7 +13593,7 @@ unicode_maketrans_impl(PyObject *x, PyObject *y, PyObject *z)
return NULL;
if (y != NULL) {
int x_kind, y_kind, z_kind;
- const void *x_data, *y_data, *z_data;
+ const void *x_data, *y_data, *z_data;
/* x must be a string too, of equal length */
if (!PyUnicode_Check(x)) {
@@ -13642,7 +13642,7 @@ unicode_maketrans_impl(PyObject *x, PyObject *y, PyObject *z)
}
} else {
int kind;
- const void *data;
+ const void *data;
/* x must be a dict */
if (!PyDict_CheckExact(x)) {
@@ -13743,7 +13743,7 @@ unicode_zfill_impl(PyObject *self, Py_ssize_t width)
Py_ssize_t fill;
PyObject *u;
int kind;
- const void *data;
+ const void *data;
Py_UCS4 chr;
if (PyUnicode_READY(self) == -1)
@@ -13924,16 +13924,16 @@ _PyUnicodeWriter_Init(_PyUnicodeWriter *writer)
assert(writer->kind <= PyUnicode_1BYTE_KIND);
}
-// Initialize _PyUnicodeWriter with initial buffer
-static inline void
-_PyUnicodeWriter_InitWithBuffer(_PyUnicodeWriter *writer, PyObject *buffer)
-{
- memset(writer, 0, sizeof(*writer));
- writer->buffer = buffer;
- _PyUnicodeWriter_Update(writer);
- writer->min_length = writer->size;
-}
-
+// Initialize _PyUnicodeWriter with initial buffer
+static inline void
+_PyUnicodeWriter_InitWithBuffer(_PyUnicodeWriter *writer, PyObject *buffer)
+{
+ memset(writer, 0, sizeof(*writer));
+ writer->buffer = buffer;
+ _PyUnicodeWriter_Update(writer);
+ writer->min_length = writer->size;
+}
+
int
_PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer,
Py_ssize_t length, Py_UCS4 maxchar)
@@ -14024,7 +14024,7 @@ _PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer,
{
case PyUnicode_1BYTE_KIND: maxchar = 0xff; break;
case PyUnicode_2BYTE_KIND: maxchar = 0xffff; break;
- case PyUnicode_4BYTE_KIND: maxchar = MAX_UNICODE; break;
+ case PyUnicode_4BYTE_KIND: maxchar = MAX_UNICODE; break;
default:
Py_UNREACHABLE();
}
@@ -14122,7 +14122,7 @@ _PyUnicodeWriter_WriteASCIIString(_PyUnicodeWriter *writer,
if (len == -1)
len = strlen(ascii);
- assert(ucs1lib_find_max_char((const Py_UCS1*)ascii, (const Py_UCS1*)ascii + len) < 128);
+ assert(ucs1lib_find_max_char((const Py_UCS1*)ascii, (const Py_UCS1*)ascii + len) < 128);
if (writer->buffer == NULL && !writer->overallocate) {
PyObject *str;
@@ -14181,7 +14181,7 @@ _PyUnicodeWriter_WriteLatin1String(_PyUnicodeWriter *writer,
{
Py_UCS4 maxchar;
- maxchar = ucs1lib_find_max_char((const Py_UCS1*)str, (const Py_UCS1*)str + len);
+ maxchar = ucs1lib_find_max_char((const Py_UCS1*)str, (const Py_UCS1*)str + len);
if (_PyUnicodeWriter_Prepare(writer, len, maxchar) == -1)
return -1;
unicode_write_cstr(writer->buffer, writer->pos, str, len);
@@ -14308,7 +14308,7 @@ unicode_sizeof_impl(PyObject *self)
}
static PyObject *
-unicode_getnewargs(PyObject *v, PyObject *Py_UNUSED(ignored))
+unicode_getnewargs(PyObject *v, PyObject *Py_UNUSED(ignored))
{
PyObject *copy = _PyUnicode_Copy(v);
if (!copy)
@@ -14346,8 +14346,8 @@ static PyMethodDef unicode_methods[] = {
UNICODE_UPPER_METHODDEF
{"startswith", (PyCFunction) unicode_startswith, METH_VARARGS, startswith__doc__},
{"endswith", (PyCFunction) unicode_endswith, METH_VARARGS, endswith__doc__},
- UNICODE_REMOVEPREFIX_METHODDEF
- UNICODE_REMOVESUFFIX_METHODDEF
+ UNICODE_REMOVEPREFIX_METHODDEF
+ UNICODE_REMOVESUFFIX_METHODDEF
UNICODE_ISASCII_METHODDEF
UNICODE_ISLOWER_METHODDEF
UNICODE_ISUPPER_METHODDEF
@@ -14361,7 +14361,7 @@ static PyMethodDef unicode_methods[] = {
UNICODE_ISIDENTIFIER_METHODDEF
UNICODE_ISPRINTABLE_METHODDEF
UNICODE_ZFILL_METHODDEF
- {"format", (PyCFunction)(void(*)(void)) do_string_format, METH_VARARGS | METH_KEYWORDS, format__doc__},
+ {"format", (PyCFunction)(void(*)(void)) do_string_format, METH_VARARGS | METH_KEYWORDS, format__doc__},
{"format_map", (PyCFunction) do_string_format_map, METH_O, format_map__doc__},
UNICODE___FORMAT___METHODDEF
UNICODE_MAKETRANS_METHODDEF
@@ -14371,7 +14371,7 @@ static PyMethodDef unicode_methods[] = {
{"_decimal2ascii", (PyCFunction) unicode__decimal2ascii, METH_NOARGS},
#endif
- {"__getnewargs__", unicode_getnewargs, METH_NOARGS},
+ {"__getnewargs__", unicode_getnewargs, METH_NOARGS},
{NULL, NULL}
};
@@ -14407,7 +14407,7 @@ unicode_subscript(PyObject* self, PyObject* item)
if (PyUnicode_READY(self) == -1)
return NULL;
- if (_PyIndex_Check(item)) {
+ if (_PyIndex_Check(item)) {
Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
return NULL;
@@ -14415,11 +14415,11 @@ unicode_subscript(PyObject* self, PyObject* item)
i += PyUnicode_GET_LENGTH(self);
return unicode_getitem(self, i);
} else if (PySlice_Check(item)) {
- Py_ssize_t start, stop, step, slicelength, i;
- size_t cur;
+ Py_ssize_t start, stop, step, slicelength, i;
+ size_t cur;
PyObject *result;
- const void *src_data;
- void *dest_data;
+ const void *src_data;
+ void *dest_data;
int src_kind, dest_kind;
Py_UCS4 ch, max_char, kind_limit;
@@ -14490,7 +14490,7 @@ struct unicode_formatter_t {
enum PyUnicode_Kind fmtkind;
Py_ssize_t fmtcnt, fmtpos;
- const void *fmtdata;
+ const void *fmtdata;
PyObject *fmtstr;
_PyUnicodeWriter writer;
@@ -15164,7 +15164,7 @@ unicode_format_arg_output(struct unicode_formatter_t *ctx,
{
Py_ssize_t len;
enum PyUnicode_Kind kind;
- const void *pbuf;
+ const void *pbuf;
Py_ssize_t pindex;
Py_UCS4 signchar;
Py_ssize_t buflen;
@@ -15274,7 +15274,7 @@ unicode_format_arg_output(struct unicode_formatter_t *ctx,
/* Pad left with the fill character if needed */
if (arg->width > len && !(arg->flags & F_LJUST)) {
sublen = arg->width - len;
- unicode_fill(writer->kind, writer->data, fill, writer->pos, sublen);
+ unicode_fill(writer->kind, writer->data, fill, writer->pos, sublen);
writer->pos += sublen;
arg->width = len;
}
@@ -15306,7 +15306,7 @@ unicode_format_arg_output(struct unicode_formatter_t *ctx,
/* Pad right with the fill character if needed */
if (arg->width > len) {
sublen = arg->width - len;
- unicode_fill(writer->kind, writer->data, ' ', writer->pos, sublen);
+ unicode_fill(writer->kind, writer->data, ' ', writer->pos, sublen);
writer->pos += sublen;
}
return 0;
@@ -15581,52 +15581,52 @@ static PyObject *unicode_iter(PyObject *seq);
PyTypeObject PyUnicode_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "str", /* tp_name */
- sizeof(PyUnicodeObject), /* tp_basicsize */
- 0, /* tp_itemsize */
+ "str", /* tp_name */
+ sizeof(PyUnicodeObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
/* Slots */
- (destructor)unicode_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_as_async */
- unicode_repr, /* tp_repr */
- &unicode_as_number, /* tp_as_number */
- &unicode_as_sequence, /* tp_as_sequence */
- &unicode_as_mapping, /* tp_as_mapping */
- (hashfunc) unicode_hash, /* tp_hash*/
- 0, /* tp_call*/
- (reprfunc) unicode_str, /* tp_str */
- PyObject_GenericGetAttr, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
+ (destructor)unicode_dealloc, /* tp_dealloc */
+ 0, /* tp_vectorcall_offset */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_as_async */
+ unicode_repr, /* tp_repr */
+ &unicode_as_number, /* tp_as_number */
+ &unicode_as_sequence, /* tp_as_sequence */
+ &unicode_as_mapping, /* tp_as_mapping */
+ (hashfunc) unicode_hash, /* tp_hash*/
+ 0, /* tp_call*/
+ (reprfunc) unicode_str, /* tp_str */
+ PyObject_GenericGetAttr, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
- Py_TPFLAGS_UNICODE_SUBCLASS, /* tp_flags */
- unicode_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- PyUnicode_RichCompare, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- unicode_iter, /* tp_iter */
- 0, /* tp_iternext */
- unicode_methods, /* tp_methods */
- 0, /* tp_members */
- 0, /* tp_getset */
- &PyBaseObject_Type, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- 0, /* tp_init */
- 0, /* tp_alloc */
- unicode_new, /* tp_new */
- PyObject_Del, /* tp_free */
+ Py_TPFLAGS_UNICODE_SUBCLASS, /* tp_flags */
+ unicode_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ PyUnicode_RichCompare, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ unicode_iter, /* tp_iter */
+ 0, /* tp_iternext */
+ unicode_methods, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ &PyBaseObject_Type, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ unicode_new, /* tp_new */
+ PyObject_Del, /* tp_free */
};
/* Initialize the Unicode implementation */
-PyStatus
-_PyUnicode_Init(void)
+PyStatus
+_PyUnicode_Init(void)
{
/* XXX - move this array to unicodectype.c ? */
Py_UCS2 linebreak[] = {
@@ -15642,30 +15642,30 @@ _PyUnicode_Init(void)
/* Init the implementation */
_Py_INCREF_UNICODE_EMPTY();
- if (!unicode_empty) {
- return _PyStatus_ERR("Can't create empty string");
- }
+ if (!unicode_empty) {
+ return _PyStatus_ERR("Can't create empty string");
+ }
Py_DECREF(unicode_empty);
- if (PyType_Ready(&PyUnicode_Type) < 0) {
- return _PyStatus_ERR("Can't initialize unicode type");
- }
+ if (PyType_Ready(&PyUnicode_Type) < 0) {
+ return _PyStatus_ERR("Can't initialize unicode type");
+ }
/* initialize the linebreak bloom filter */
bloom_linebreak = make_bloom_mask(
PyUnicode_2BYTE_KIND, linebreak,
Py_ARRAY_LENGTH(linebreak));
- if (PyType_Ready(&EncodingMapType) < 0) {
- return _PyStatus_ERR("Can't initialize encoding map type");
- }
- if (PyType_Ready(&PyFieldNameIter_Type) < 0) {
- return _PyStatus_ERR("Can't initialize field name iterator type");
- }
- if (PyType_Ready(&PyFormatterIter_Type) < 0) {
- return _PyStatus_ERR("Can't initialize formatter iter type");
- }
- return _PyStatus_OK();
+ if (PyType_Ready(&EncodingMapType) < 0) {
+ return _PyStatus_ERR("Can't initialize encoding map type");
+ }
+ if (PyType_Ready(&PyFieldNameIter_Type) < 0) {
+ return _PyStatus_ERR("Can't initialize field name iterator type");
+ }
+ if (PyType_Ready(&PyFormatterIter_Type) < 0) {
+ return _PyStatus_ERR("Can't initialize formatter iter type");
+ }
+ return _PyStatus_OK();
}
@@ -15677,22 +15677,22 @@ PyUnicode_InternInPlace(PyObject **p)
assert(s != NULL);
assert(_PyUnicode_CHECK(s));
#else
- if (s == NULL || !PyUnicode_Check(s)) {
+ if (s == NULL || !PyUnicode_Check(s)) {
return;
- }
+ }
#endif
-
+
/* If it's a subclass, we don't really know what putting
it in the interned dict might do. */
- if (!PyUnicode_CheckExact(s)) {
+ if (!PyUnicode_CheckExact(s)) {
return;
- }
-
- if (PyUnicode_CHECK_INTERNED(s)) {
+ }
+
+ if (PyUnicode_CHECK_INTERNED(s)) {
return;
- }
-
-#ifdef INTERNED_STRINGS
+ }
+
+#ifdef INTERNED_STRINGS
if (interned == NULL) {
interned = PyDict_New();
if (interned == NULL) {
@@ -15700,26 +15700,26 @@ PyUnicode_InternInPlace(PyObject **p)
return;
}
}
-
- PyObject *t;
+
+ PyObject *t;
t = PyDict_SetDefault(interned, s, s);
-
+
if (t == NULL) {
PyErr_Clear();
return;
}
-
+
if (t != s) {
Py_INCREF(t);
Py_SETREF(*p, t);
return;
}
-
+
/* The two references in interned are not counted by refcnt.
The deallocator will take care of this */
- Py_SET_REFCNT(s, Py_REFCNT(s) - 2);
+ Py_SET_REFCNT(s, Py_REFCNT(s) - 2);
_PyUnicode_STATE(s).interned = SSTATE_INTERNED_MORTAL;
-#endif
+#endif
}
void
@@ -15742,67 +15742,67 @@ PyUnicode_InternFromString(const char *cp)
return s;
}
-
-#if defined(WITH_VALGRIND) || defined(__INSURE__)
-static void
-unicode_release_interned(void)
+
+#if defined(WITH_VALGRIND) || defined(__INSURE__)
+static void
+unicode_release_interned(void)
{
- if (interned == NULL || !PyDict_Check(interned)) {
+ if (interned == NULL || !PyDict_Check(interned)) {
return;
- }
- PyObject *keys = PyDict_Keys(interned);
+ }
+ PyObject *keys = PyDict_Keys(interned);
if (keys == NULL || !PyList_Check(keys)) {
PyErr_Clear();
return;
}
- /* Since unicode_release_interned() is intended to help a leak
+ /* Since unicode_release_interned() is intended to help a leak
detector, interned unicode strings are not forcibly deallocated;
rather, we give them their stolen references back, and then clear
and DECREF the interned dict. */
- Py_ssize_t n = PyList_GET_SIZE(keys);
-#ifdef INTERNED_STATS
+ Py_ssize_t n = PyList_GET_SIZE(keys);
+#ifdef INTERNED_STATS
fprintf(stderr, "releasing %" PY_FORMAT_SIZE_T "d interned strings\n",
n);
-
- Py_ssize_t immortal_size = 0, mortal_size = 0;
-#endif
- for (Py_ssize_t i = 0; i < n; i++) {
- PyObject *s = PyList_GET_ITEM(keys, i);
+
+ Py_ssize_t immortal_size = 0, mortal_size = 0;
+#endif
+ for (Py_ssize_t i = 0; i < n; i++) {
+ PyObject *s = PyList_GET_ITEM(keys, i);
if (PyUnicode_READY(s) == -1) {
Py_UNREACHABLE();
}
switch (PyUnicode_CHECK_INTERNED(s)) {
case SSTATE_INTERNED_IMMORTAL:
Py_REFCNT(s) += 1;
-#ifdef INTERNED_STATS
+#ifdef INTERNED_STATS
immortal_size += PyUnicode_GET_LENGTH(s);
-#endif
+#endif
break;
case SSTATE_INTERNED_MORTAL:
Py_REFCNT(s) += 2;
-#ifdef INTERNED_STATS
+#ifdef INTERNED_STATS
mortal_size += PyUnicode_GET_LENGTH(s);
-#endif
+#endif
break;
- case SSTATE_NOT_INTERNED:
- /* fall through */
+ case SSTATE_NOT_INTERNED:
+ /* fall through */
default:
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
_PyUnicode_STATE(s).interned = SSTATE_NOT_INTERNED;
}
-#ifdef INTERNED_STATS
+#ifdef INTERNED_STATS
fprintf(stderr, "total size of all interned strings: "
"%" PY_FORMAT_SIZE_T "d/%" PY_FORMAT_SIZE_T "d "
"mortal/immortal\n", mortal_size, immortal_size);
-#endif
+#endif
Py_DECREF(keys);
PyDict_Clear(interned);
Py_CLEAR(interned);
}
-#endif
+#endif
/********************* Unicode Iterator **************************/
@@ -15841,7 +15841,7 @@ unicodeiter_next(unicodeiterobject *it)
if (it->it_index < PyUnicode_GET_LENGTH(seq)) {
int kind = PyUnicode_KIND(seq);
- const void *data = PyUnicode_DATA(seq);
+ const void *data = PyUnicode_DATA(seq);
Py_UCS4 chr = PyUnicode_READ(kind, data, it->it_index);
item = PyUnicode_FromOrdinal(chr);
if (item != NULL)
@@ -15855,7 +15855,7 @@ unicodeiter_next(unicodeiterobject *it)
}
static PyObject *
-unicodeiter_len(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
+unicodeiter_len(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t len = 0;
if (it->it_seq)
@@ -15866,17 +15866,17 @@ unicodeiter_len(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
static PyObject *
-unicodeiter_reduce(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
+unicodeiter_reduce(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
{
- _Py_IDENTIFIER(iter);
+ _Py_IDENTIFIER(iter);
if (it->it_seq != NULL) {
- return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
+ return Py_BuildValue("N(O)n", _PyEval_GetBuiltinId(&PyId_iter),
it->it_seq, it->it_index);
} else {
PyObject *u = (PyObject *)_PyUnicode_New(0);
if (u == NULL)
return NULL;
- return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), u);
+ return Py_BuildValue("N(N)", _PyEval_GetBuiltinId(&PyId_iter), u);
}
}
@@ -15917,10 +15917,10 @@ PyTypeObject PyUnicodeIter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)unicodeiter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -16062,10 +16062,10 @@ PyUnicode_AsUnicodeCopy(PyObject *unicode)
PyErr_BadArgument();
return NULL;
}
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
u = PyUnicode_AsUnicodeAndSize(unicode, &len);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (u == NULL)
return NULL;
/* Ensure we won't overflow the size. */
@@ -16084,242 +16084,242 @@ _Py_COMP_DIAG_POP
return copy;
}
-
-static int
-encode_wstr_utf8(wchar_t *wstr, char **str, const char *name)
-{
- int res;
- res = _Py_EncodeUTF8Ex(wstr, str, NULL, NULL, 1, _Py_ERROR_STRICT);
- if (res == -2) {
- PyErr_Format(PyExc_RuntimeWarning, "cannot decode %s", name);
- return -1;
- }
- if (res < 0) {
- PyErr_NoMemory();
- return -1;
- }
- return 0;
-}
-
-
-static int
-config_get_codec_name(wchar_t **config_encoding)
-{
- char *encoding;
- if (encode_wstr_utf8(*config_encoding, &encoding, "stdio_encoding") < 0) {
- return -1;
- }
-
- PyObject *name_obj = NULL;
- PyObject *codec = _PyCodec_Lookup(encoding);
- PyMem_RawFree(encoding);
-
- if (!codec)
- goto error;
-
- name_obj = PyObject_GetAttrString(codec, "name");
- Py_CLEAR(codec);
- if (!name_obj) {
- goto error;
- }
-
- wchar_t *wname = PyUnicode_AsWideCharString(name_obj, NULL);
- Py_DECREF(name_obj);
- if (wname == NULL) {
- goto error;
- }
-
- wchar_t *raw_wname = _PyMem_RawWcsdup(wname);
- if (raw_wname == NULL) {
- PyMem_Free(wname);
- PyErr_NoMemory();
- goto error;
- }
-
- PyMem_RawFree(*config_encoding);
- *config_encoding = raw_wname;
-
- PyMem_Free(wname);
- return 0;
-
-error:
- Py_XDECREF(codec);
- Py_XDECREF(name_obj);
- return -1;
-}
-
-
-static PyStatus
-init_stdio_encoding(PyThreadState *tstate)
-{
- /* Update the stdio encoding to the normalized Python codec name. */
- PyConfig *config = (PyConfig*)_PyInterpreterState_GetConfig(tstate->interp);
- if (config_get_codec_name(&config->stdio_encoding) < 0) {
- return _PyStatus_ERR("failed to get the Python codec name "
- "of the stdio encoding");
- }
- return _PyStatus_OK();
-}
-
-
-static int
-init_fs_codec(PyInterpreterState *interp)
-{
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
-
- _Py_error_handler error_handler;
- error_handler = get_error_handler_wide(config->filesystem_errors);
- if (error_handler == _Py_ERROR_UNKNOWN) {
- PyErr_SetString(PyExc_RuntimeError, "unknown filesystem error handler");
- return -1;
- }
-
- char *encoding, *errors;
- if (encode_wstr_utf8(config->filesystem_encoding,
- &encoding,
- "filesystem_encoding") < 0) {
- return -1;
- }
-
- if (encode_wstr_utf8(config->filesystem_errors,
- &errors,
- "filesystem_errors") < 0) {
- PyMem_RawFree(encoding);
- return -1;
- }
-
- struct _Py_unicode_fs_codec *fs_codec = &interp->unicode.fs_codec;
- PyMem_RawFree(fs_codec->encoding);
- fs_codec->encoding = encoding;
- /* encoding has been normalized by init_fs_encoding() */
- fs_codec->utf8 = (strcmp(encoding, "utf-8") == 0);
- PyMem_RawFree(fs_codec->errors);
- fs_codec->errors = errors;
- fs_codec->error_handler = error_handler;
-
-#ifdef _Py_FORCE_UTF8_FS_ENCODING
- assert(fs_codec->utf8 == 1);
-#endif
-
- /* At this point, PyUnicode_EncodeFSDefault() and
- PyUnicode_DecodeFSDefault() can now use the Python codec rather than
- the C implementation of the filesystem encoding. */
-
- /* Set Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
- global configuration variables. */
- if (_Py_SetFileSystemEncoding(fs_codec->encoding,
- fs_codec->errors) < 0) {
- PyErr_NoMemory();
- return -1;
- }
- return 0;
-}
-
-
-static PyStatus
-init_fs_encoding(PyThreadState *tstate)
-{
- PyInterpreterState *interp = tstate->interp;
-
- /* Update the filesystem encoding to the normalized Python codec name.
- For example, replace "ANSI_X3.4-1968" (locale encoding) with "ascii"
- (Python codec name). */
- PyConfig *config = (PyConfig*)_PyInterpreterState_GetConfig(interp);
- if (config_get_codec_name(&config->filesystem_encoding) < 0) {
- _Py_DumpPathConfig(tstate);
- return _PyStatus_ERR("failed to get the Python codec "
- "of the filesystem encoding");
- }
-
- if (init_fs_codec(interp) < 0) {
- return _PyStatus_ERR("cannot initialize filesystem codec");
- }
- return _PyStatus_OK();
-}
-
-
-PyStatus
-_PyUnicode_InitEncodings(PyThreadState *tstate)
-{
- PyStatus status = init_fs_encoding(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- return init_stdio_encoding(tstate);
-}
-
-
-static void
-_PyUnicode_FiniEncodings(struct _Py_unicode_fs_codec *fs_codec)
-{
- PyMem_RawFree(fs_codec->encoding);
- fs_codec->encoding = NULL;
- fs_codec->utf8 = 0;
- PyMem_RawFree(fs_codec->errors);
- fs_codec->errors = NULL;
- fs_codec->error_handler = _Py_ERROR_UNKNOWN;
-}
-
-
-#ifdef MS_WINDOWS
-int
-_PyUnicode_EnableLegacyWindowsFSEncoding(void)
-{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- PyConfig *config = (PyConfig *)_PyInterpreterState_GetConfig(interp);
-
- /* Set the filesystem encoding to mbcs/replace (PEP 529) */
- wchar_t *encoding = _PyMem_RawWcsdup(L"mbcs");
- wchar_t *errors = _PyMem_RawWcsdup(L"replace");
- if (encoding == NULL || errors == NULL) {
- PyMem_RawFree(encoding);
- PyMem_RawFree(errors);
- PyErr_NoMemory();
- return -1;
- }
-
- PyMem_RawFree(config->filesystem_encoding);
- config->filesystem_encoding = encoding;
- PyMem_RawFree(config->filesystem_errors);
- config->filesystem_errors = errors;
-
- return init_fs_codec(interp);
-}
-#endif
-
-
-void
-_PyUnicode_Fini(PyThreadState *tstate)
-{
- if (_Py_IsMainInterpreter(tstate)) {
-#if defined(WITH_VALGRIND) || defined(__INSURE__)
- /* Insure++ is a memory analysis tool that aids in discovering
- * memory leaks and other memory problems. On Python exit, the
- * interned string dictionaries are flagged as being in use at exit
- * (which it is). Under normal circumstances, this is fine because
- * the memory will be automatically reclaimed by the system. Under
- * memory debugging, it's a huge source of useless noise, so we
- * trade off slower shutdown for less distraction in the memory
- * reports. -baw
- */
- unicode_release_interned();
-#endif /* __INSURE__ */
-
- Py_CLEAR(unicode_empty);
-
-#ifdef LATIN1_SINGLETONS
- for (Py_ssize_t i = 0; i < 256; i++) {
- Py_CLEAR(unicode_latin1[i]);
- }
-#endif
- unicode_clear_static_strings();
- }
-
- _PyUnicode_FiniEncodings(&tstate->interp->unicode.fs_codec);
-}
-
-
+
+static int
+encode_wstr_utf8(wchar_t *wstr, char **str, const char *name)
+{
+ int res;
+ res = _Py_EncodeUTF8Ex(wstr, str, NULL, NULL, 1, _Py_ERROR_STRICT);
+ if (res == -2) {
+ PyErr_Format(PyExc_RuntimeWarning, "cannot decode %s", name);
+ return -1;
+ }
+ if (res < 0) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ return 0;
+}
+
+
+static int
+config_get_codec_name(wchar_t **config_encoding)
+{
+ char *encoding;
+ if (encode_wstr_utf8(*config_encoding, &encoding, "stdio_encoding") < 0) {
+ return -1;
+ }
+
+ PyObject *name_obj = NULL;
+ PyObject *codec = _PyCodec_Lookup(encoding);
+ PyMem_RawFree(encoding);
+
+ if (!codec)
+ goto error;
+
+ name_obj = PyObject_GetAttrString(codec, "name");
+ Py_CLEAR(codec);
+ if (!name_obj) {
+ goto error;
+ }
+
+ wchar_t *wname = PyUnicode_AsWideCharString(name_obj, NULL);
+ Py_DECREF(name_obj);
+ if (wname == NULL) {
+ goto error;
+ }
+
+ wchar_t *raw_wname = _PyMem_RawWcsdup(wname);
+ if (raw_wname == NULL) {
+ PyMem_Free(wname);
+ PyErr_NoMemory();
+ goto error;
+ }
+
+ PyMem_RawFree(*config_encoding);
+ *config_encoding = raw_wname;
+
+ PyMem_Free(wname);
+ return 0;
+
+error:
+ Py_XDECREF(codec);
+ Py_XDECREF(name_obj);
+ return -1;
+}
+
+
+static PyStatus
+init_stdio_encoding(PyThreadState *tstate)
+{
+ /* Update the stdio encoding to the normalized Python codec name. */
+ PyConfig *config = (PyConfig*)_PyInterpreterState_GetConfig(tstate->interp);
+ if (config_get_codec_name(&config->stdio_encoding) < 0) {
+ return _PyStatus_ERR("failed to get the Python codec name "
+ "of the stdio encoding");
+ }
+ return _PyStatus_OK();
+}
+
+
+static int
+init_fs_codec(PyInterpreterState *interp)
+{
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+
+ _Py_error_handler error_handler;
+ error_handler = get_error_handler_wide(config->filesystem_errors);
+ if (error_handler == _Py_ERROR_UNKNOWN) {
+ PyErr_SetString(PyExc_RuntimeError, "unknown filesystem error handler");
+ return -1;
+ }
+
+ char *encoding, *errors;
+ if (encode_wstr_utf8(config->filesystem_encoding,
+ &encoding,
+ "filesystem_encoding") < 0) {
+ return -1;
+ }
+
+ if (encode_wstr_utf8(config->filesystem_errors,
+ &errors,
+ "filesystem_errors") < 0) {
+ PyMem_RawFree(encoding);
+ return -1;
+ }
+
+ struct _Py_unicode_fs_codec *fs_codec = &interp->unicode.fs_codec;
+ PyMem_RawFree(fs_codec->encoding);
+ fs_codec->encoding = encoding;
+ /* encoding has been normalized by init_fs_encoding() */
+ fs_codec->utf8 = (strcmp(encoding, "utf-8") == 0);
+ PyMem_RawFree(fs_codec->errors);
+ fs_codec->errors = errors;
+ fs_codec->error_handler = error_handler;
+
+#ifdef _Py_FORCE_UTF8_FS_ENCODING
+ assert(fs_codec->utf8 == 1);
+#endif
+
+ /* At this point, PyUnicode_EncodeFSDefault() and
+ PyUnicode_DecodeFSDefault() can now use the Python codec rather than
+ the C implementation of the filesystem encoding. */
+
+ /* Set Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
+ global configuration variables. */
+ if (_Py_SetFileSystemEncoding(fs_codec->encoding,
+ fs_codec->errors) < 0) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ return 0;
+}
+
+
+static PyStatus
+init_fs_encoding(PyThreadState *tstate)
+{
+ PyInterpreterState *interp = tstate->interp;
+
+ /* Update the filesystem encoding to the normalized Python codec name.
+ For example, replace "ANSI_X3.4-1968" (locale encoding) with "ascii"
+ (Python codec name). */
+ PyConfig *config = (PyConfig*)_PyInterpreterState_GetConfig(interp);
+ if (config_get_codec_name(&config->filesystem_encoding) < 0) {
+ _Py_DumpPathConfig(tstate);
+ return _PyStatus_ERR("failed to get the Python codec "
+ "of the filesystem encoding");
+ }
+
+ if (init_fs_codec(interp) < 0) {
+ return _PyStatus_ERR("cannot initialize filesystem codec");
+ }
+ return _PyStatus_OK();
+}
+
+
+PyStatus
+_PyUnicode_InitEncodings(PyThreadState *tstate)
+{
+ PyStatus status = init_fs_encoding(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ return init_stdio_encoding(tstate);
+}
+
+
+static void
+_PyUnicode_FiniEncodings(struct _Py_unicode_fs_codec *fs_codec)
+{
+ PyMem_RawFree(fs_codec->encoding);
+ fs_codec->encoding = NULL;
+ fs_codec->utf8 = 0;
+ PyMem_RawFree(fs_codec->errors);
+ fs_codec->errors = NULL;
+ fs_codec->error_handler = _Py_ERROR_UNKNOWN;
+}
+
+
+#ifdef MS_WINDOWS
+int
+_PyUnicode_EnableLegacyWindowsFSEncoding(void)
+{
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyConfig *config = (PyConfig *)_PyInterpreterState_GetConfig(interp);
+
+ /* Set the filesystem encoding to mbcs/replace (PEP 529) */
+ wchar_t *encoding = _PyMem_RawWcsdup(L"mbcs");
+ wchar_t *errors = _PyMem_RawWcsdup(L"replace");
+ if (encoding == NULL || errors == NULL) {
+ PyMem_RawFree(encoding);
+ PyMem_RawFree(errors);
+ PyErr_NoMemory();
+ return -1;
+ }
+
+ PyMem_RawFree(config->filesystem_encoding);
+ config->filesystem_encoding = encoding;
+ PyMem_RawFree(config->filesystem_errors);
+ config->filesystem_errors = errors;
+
+ return init_fs_codec(interp);
+}
+#endif
+
+
+void
+_PyUnicode_Fini(PyThreadState *tstate)
+{
+ if (_Py_IsMainInterpreter(tstate)) {
+#if defined(WITH_VALGRIND) || defined(__INSURE__)
+ /* Insure++ is a memory analysis tool that aids in discovering
+ * memory leaks and other memory problems. On Python exit, the
+ * interned string dictionaries are flagged as being in use at exit
+ * (which it is). Under normal circumstances, this is fine because
+ * the memory will be automatically reclaimed by the system. Under
+ * memory debugging, it's a huge source of useless noise, so we
+ * trade off slower shutdown for less distraction in the memory
+ * reports. -baw
+ */
+ unicode_release_interned();
+#endif /* __INSURE__ */
+
+ Py_CLEAR(unicode_empty);
+
+#ifdef LATIN1_SINGLETONS
+ for (Py_ssize_t i = 0; i < 256; i++) {
+ Py_CLEAR(unicode_latin1[i]);
+ }
+#endif
+ unicode_clear_static_strings();
+ }
+
+ _PyUnicode_FiniEncodings(&tstate->interp->unicode.fs_codec);
+}
+
+
/* A _string module, to export formatter_parser and formatter_field_name_split
to the string.Formatter class implemented in Python. */
diff --git a/contrib/tools/python3/src/Objects/unicodetype_db.h b/contrib/tools/python3/src/Objects/unicodetype_db.h
index 72df50abf1..f668ed7ad5 100644
--- a/contrib/tools/python3/src/Objects/unicodetype_db.h
+++ b/contrib/tools/python3/src/Objects/unicodetype_db.h
@@ -1,4 +1,4 @@
-/* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */
+/* this file was generated by Tools/unicode/makeunicodedata.py 3.3 */
/* a list of unique character type descriptors */
const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = {
@@ -96,7 +96,7 @@ const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = {
{-214, 0, -214, 0, 0, 9993},
{10727, 0, 10727, 0, 0, 9993},
{-218, 0, -218, 0, 0, 9993},
- {42307, 0, 42307, 0, 0, 9993},
+ {42307, 0, 42307, 0, 0, 9993},
{42282, 0, 42282, 0, 0, 9993},
{-69, 0, -69, 0, 0, 9993},
{-217, 0, -217, 0, 0, 9993},
@@ -259,7 +259,7 @@ const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = {
{0, -3008, 0, 0, 0, 10113},
{35332, 0, 35332, 0, 0, 9993},
{3814, 0, 3814, 0, 0, 9993},
- {35384, 0, 35384, 0, 0, 9993},
+ {35384, 0, 35384, 0, 0, 9993},
{33554812, 18874745, 33554812, 0, 0, 26377},
{33554817, 18874750, 33554817, 0, 0, 26377},
{33554822, 18874755, 33554822, 0, 0, 26377},
@@ -393,7 +393,7 @@ const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = {
{0, 0, 0, 0, 0, 3841},
{0, -35332, 0, 0, 0, 10113},
{0, -42280, 0, 0, 0, 10113},
- {48, 0, 48, 0, 0, 9993},
+ {48, 0, 48, 0, 0, 9993},
{0, -42308, 0, 0, 0, 10113},
{0, -42319, 0, 0, 0, 10113},
{0, -42315, 0, 0, 0, 10113},
@@ -402,9 +402,9 @@ const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = {
{0, -42282, 0, 0, 0, 10113},
{0, -42261, 0, 0, 0, 10113},
{0, 928, 0, 0, 0, 10113},
- {0, -48, 0, 0, 0, 10113},
- {0, -42307, 0, 0, 0, 10113},
- {0, -35384, 0, 0, 0, 10113},
+ {0, -48, 0, 0, 0, 10113},
+ {0, -42307, 0, 0, 0, 10113},
+ {0, -35384, 0, 0, 0, 10113},
{-928, 0, -928, 0, 0, 9993},
{16778124, 17826698, 16778124, 0, 0, 26377},
{16778127, 17826701, 16778127, 0, 0, 26377},
@@ -1750,7 +1750,7 @@ const Py_UCS4 _PyUnicode_ExtendedCase[] = {
/* type indexes */
#define SHIFT 7
-static const unsigned short index1[] = {
+static const unsigned short index1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 34, 35, 36, 37,
38, 39, 34, 34, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
@@ -1782,71 +1782,71 @@ static const unsigned short index1[] = {
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 128, 129,
130, 131, 132, 133, 34, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 144, 34, 34, 151, 144, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 144, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 144, 174, 175, 144, 176, 177, 178, 179,
- 144, 180, 181, 182, 183, 184, 185, 144, 144, 186, 187, 188, 189, 144,
- 190, 144, 191, 34, 34, 34, 34, 34, 34, 34, 192, 193, 34, 194, 144, 144,
+ 155, 156, 157, 158, 159, 160, 161, 162, 144, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 144, 174, 175, 144, 176, 177, 178, 179,
+ 144, 180, 181, 182, 183, 184, 185, 144, 144, 186, 187, 188, 189, 144,
+ 190, 144, 191, 34, 34, 34, 34, 34, 34, 34, 192, 193, 34, 194, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 34, 34, 34, 34, 34, 34, 34, 34, 195, 144, 144,
+ 144, 144, 144, 144, 144, 34, 34, 34, 34, 34, 34, 34, 34, 195, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 34, 34, 34, 34, 196, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 34, 34, 34, 34, 196, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 34, 34, 34, 34, 197, 198, 199, 200, 144, 144, 144, 144, 201,
- 202, 203, 204, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 144, 144, 34, 34, 34, 34, 197, 198, 199, 200, 144, 144, 144, 144, 201,
+ 202, 203, 204, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 205, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 206, 207, 144, 144, 144, 144, 144, 144, 144,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 205, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 206, 207, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 34, 34, 208, 34, 34, 209, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 34, 34, 208, 34, 34, 209, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 210, 211, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 210, 211, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 64, 212,
- 213, 214, 215, 216, 217, 144, 218, 219, 220, 221, 222, 223, 224, 225, 64,
- 64, 64, 64, 226, 227, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 228, 144, 229, 144, 144, 230, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 34, 231, 232, 144, 144, 144, 144, 144, 233, 234, 235, 144, 236,
- 237, 144, 144, 238, 239, 240, 241, 242, 144, 64, 243, 64, 64, 64, 64, 64,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 64, 253, 144, 144, 144, 144,
- 144, 144, 144, 144, 254, 255, 256, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 86, 257, 34, 258, 259, 34, 34, 34, 34, 34, 34,
+ 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 64, 212,
+ 213, 214, 215, 216, 217, 144, 218, 219, 220, 221, 222, 223, 224, 225, 64,
+ 64, 64, 64, 226, 227, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 228, 144, 229, 144, 144, 230, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 34, 231, 232, 144, 144, 144, 144, 144, 233, 234, 235, 144, 236,
+ 237, 144, 144, 238, 239, 240, 241, 242, 144, 64, 243, 64, 64, 64, 64, 64,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 64, 253, 144, 144, 144, 144,
+ 144, 144, 144, 144, 254, 255, 256, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 86, 257, 34, 258, 259, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 260, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 261, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 262,
+ 34, 34, 34, 34, 34, 34, 260, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 261, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 262,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 263, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 263, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 264, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 264, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 265, 34, 266, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 265, 34, 266, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 267, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 267, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 268, 144, 144, 144, 144, 144,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 268, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 34, 260, 34, 34, 269, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 270, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 34, 260, 34, 34, 269, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 144, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 270, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
@@ -2246,7 +2246,7 @@ static const unsigned short index1[] = {
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 271, 144, 272, 273, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 271, 144, 272, 273, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
@@ -2282,7 +2282,7 @@ static const unsigned short index1[] = {
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144, 144, 126, 126, 126, 126, 126,
+ 144, 144, 144, 144, 144, 144, 144, 144, 144, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
@@ -2319,7 +2319,7 @@ static const unsigned short index1[] = {
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
- 126, 126, 274, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 274, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
@@ -2355,10 +2355,10 @@ static const unsigned short index1[] = {
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
- 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 274,
+ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 274,
};
-static const unsigned short index2[] = {
+static const unsigned short index2[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 3, 3, 3, 2, 4, 5, 5, 5, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 6, 5,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 6, 5, 5, 5, 5, 5, 5, 17, 17, 17, 17,
@@ -2392,52 +2392,52 @@ static const unsigned short index2[] = {
30, 31, 66, 67, 68, 68, 30, 31, 69, 70, 71, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 72, 73, 74, 75, 76, 20, 77, 77, 20, 78, 20, 79, 80, 20, 20,
20, 77, 81, 20, 82, 20, 83, 84, 20, 85, 86, 84, 87, 88, 20, 20, 86, 20,
- 89, 90, 20, 20, 91, 20, 20, 20, 20, 20, 20, 20, 92, 20, 20, 93, 20, 94,
- 93, 20, 20, 20, 95, 93, 96, 97, 97, 98, 20, 20, 20, 20, 20, 99, 20, 55,
- 20, 20, 20, 20, 20, 20, 20, 20, 100, 101, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 103, 103, 103, 103, 103, 103, 103, 102, 102, 6, 6, 6, 6, 103,
- 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 102, 102, 102, 102, 102, 6, 6, 6, 6, 6, 6, 6,
- 103, 6, 103, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 25, 25,
+ 89, 90, 20, 20, 91, 20, 20, 20, 20, 20, 20, 20, 92, 20, 20, 93, 20, 94,
+ 93, 20, 20, 20, 95, 93, 96, 97, 97, 98, 20, 20, 20, 20, 20, 99, 20, 55,
+ 20, 20, 20, 20, 20, 20, 20, 20, 100, 101, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 103, 103, 103, 103, 103, 103, 103, 102, 102, 6, 6, 6, 6, 103,
+ 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 102, 102, 102, 102, 102, 6, 6, 6, 6, 6, 6, 6,
+ 103, 6, 103, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 104, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 104, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 30, 31, 30, 31, 103, 6, 30, 31, 0, 0, 105, 50, 50, 50, 5, 106, 0,
- 0, 0, 0, 6, 6, 107, 25, 108, 108, 108, 0, 109, 0, 110, 110, 111, 17, 17,
+ 25, 25, 30, 31, 30, 31, 103, 6, 30, 31, 0, 0, 105, 50, 50, 50, 5, 106, 0,
+ 0, 0, 0, 6, 6, 107, 25, 108, 108, 108, 0, 109, 0, 110, 110, 111, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 112, 113, 113, 113, 114, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 115, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 116, 117, 117, 118, 119, 120, 121, 121, 121, 122, 123,
- 124, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 125, 126, 127, 128, 129, 130, 5, 30, 31, 131,
- 30, 31, 20, 64, 64, 64, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 112, 113, 113, 113, 114, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 115, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 116, 117, 117, 118, 119, 120, 121, 121, 121, 122, 123,
+ 124, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 125, 126, 127, 128, 129, 130, 5, 30, 31, 131,
+ 30, 31, 20, 64, 64, 64, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 5,
25, 25, 25, 25, 25, 6, 6, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 30, 31, 30, 31, 30, 31, 134, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 135, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
+ 30, 31, 30, 31, 30, 31, 134, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 135, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 0, 136, 136, 136, 136, 136, 136,
+ 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 0, 136, 136, 136, 136, 136, 136,
136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 0, 0, 103, 5, 5, 5, 5, 5, 6, 20, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 138, 20, 5, 5, 0, 0, 5, 5, 5, 0, 25, 25,
+ 136, 136, 136, 136, 0, 0, 103, 5, 5, 5, 5, 5, 6, 20, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 138, 20, 5, 5, 0, 0, 5, 5, 5, 0, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 5, 25, 5, 25, 25, 5, 25, 25, 5, 25, 0, 0, 0,
@@ -2446,7 +2446,7 @@ static const unsigned short index2[] = {
55, 55, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5,
21, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 5, 5, 5, 5, 55, 55, 25, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -2456,7 +2456,7 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 5, 55, 25, 25, 25, 25, 25, 25, 25, 21, 5, 25, 25, 25, 25, 25, 25,
- 103, 103, 25, 25, 5, 25, 25, 25, 25, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14,
+ 103, 103, 25, 25, 5, 25, 25, 25, 25, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 55, 55, 55, 5, 5, 55, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
0, 21, 55, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25,
@@ -2470,79 +2470,79 @@ static const unsigned short index2[] = {
55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 103, 103, 5, 5, 5, 5, 103, 0, 0, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 103, 103, 5, 5, 5, 5, 103, 0, 0, 25,
5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 25, 25, 25, 25, 103, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 103, 25, 25, 25, 103, 25, 25, 25, 25, 25, 0, 0, 5, 5, 5, 5, 5, 5, 5,
+ 55, 55, 55, 55, 55, 25, 25, 25, 25, 103, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 103, 25, 25, 25, 103, 25, 25, 25, 25, 25, 0, 0, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 0, 0,
5, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 25, 18, 25, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25,
- 25, 25, 18, 18, 18, 18, 25, 18, 18, 55, 25, 25, 25, 25, 25, 25, 25, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 5, 5, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 5, 103, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 25, 18, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55,
- 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 0, 0, 55,
- 55, 55, 55, 0, 0, 25, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 18, 18, 0, 0,
- 18, 18, 25, 55, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 55, 55, 0, 55,
- 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 55, 5, 5,
- 27, 27, 27, 27, 27, 27, 5, 5, 55, 5, 25, 0, 0, 25, 25, 18, 0, 55, 55, 55,
- 55, 55, 55, 0, 0, 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55,
- 55, 55, 55, 0, 55, 55, 0, 55, 55, 0, 55, 55, 0, 0, 25, 0, 18, 18, 18, 25,
- 25, 0, 0, 0, 0, 25, 25, 0, 0, 25, 25, 25, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,
- 0, 55, 55, 55, 55, 0, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 25, 25, 55, 55, 55, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
- 25, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55,
- 0, 0, 25, 55, 18, 18, 18, 25, 25, 25, 25, 25, 0, 25, 25, 18, 0, 18, 18,
- 25, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 25,
- 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 0, 0, 0, 0, 0, 0, 0,
- 55, 25, 25, 25, 25, 25, 25, 0, 25, 18, 18, 0, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0,
- 55, 55, 0, 55, 55, 55, 55, 55, 0, 0, 25, 55, 18, 25, 18, 25, 25, 25, 25,
- 0, 0, 18, 18, 0, 0, 18, 18, 25, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 0, 0, 0,
- 0, 55, 55, 0, 55, 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 5, 55, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 55,
- 0, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 0, 55, 55, 55, 55, 0, 0,
- 0, 55, 55, 0, 55, 0, 55, 55, 0, 0, 0, 55, 55, 0, 0, 0, 55, 55, 55, 0, 0,
- 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 18, 18,
- 25, 18, 18, 0, 0, 0, 18, 18, 18, 0, 18, 18, 18, 25, 0, 0, 55, 0, 0, 0, 0,
- 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 25,
- 18, 18, 18, 25, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 0, 0, 0, 55, 25, 25, 25, 18, 18, 18, 18, 0, 25, 25, 25, 0, 25,
- 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 55, 55, 55, 0, 0, 0, 0, 0,
- 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0,
- 0, 0, 5, 27, 27, 27, 27, 27, 27, 27, 5, 55, 25, 18, 18, 5, 55, 55, 55,
- 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 0, 0, 25, 55, 18, 25,
- 18, 18, 18, 18, 18, 0, 25, 18, 18, 0, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0,
- 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 55, 25, 25, 0, 0, 7, 8, 9, 10,
+ 25, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 25, 18, 25, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25,
+ 25, 25, 18, 18, 18, 18, 25, 18, 18, 55, 25, 25, 25, 25, 25, 25, 25, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 5, 5, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 5, 103, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 25, 18, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55,
+ 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 0, 0, 55,
+ 55, 55, 55, 0, 0, 25, 55, 18, 18, 18, 25, 25, 25, 25, 0, 0, 18, 18, 0, 0,
+ 18, 18, 25, 55, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 55, 55, 0, 55,
+ 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 55, 5, 5,
+ 27, 27, 27, 27, 27, 27, 5, 5, 55, 5, 25, 0, 0, 25, 25, 18, 0, 55, 55, 55,
+ 55, 55, 55, 0, 0, 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55,
+ 55, 55, 55, 0, 55, 55, 0, 55, 55, 0, 55, 55, 0, 0, 25, 0, 18, 18, 18, 25,
+ 25, 0, 0, 0, 0, 25, 25, 0, 0, 25, 25, 25, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,
+ 0, 55, 55, 55, 55, 0, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 25, 25, 55, 55, 55, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+ 25, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55,
+ 0, 0, 25, 55, 18, 18, 18, 25, 25, 25, 25, 25, 0, 25, 25, 18, 0, 18, 18,
+ 25, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 25,
+ 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 0, 0, 0, 0, 0, 0, 0,
+ 55, 25, 25, 25, 25, 25, 25, 0, 25, 18, 18, 0, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0,
+ 55, 55, 0, 55, 55, 55, 55, 55, 0, 0, 25, 55, 18, 25, 18, 25, 25, 25, 25,
+ 0, 0, 18, 18, 0, 0, 18, 18, 25, 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 0, 0, 0,
+ 0, 55, 55, 0, 55, 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 5, 55, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 55,
+ 0, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 0, 55, 55, 55, 55, 0, 0,
+ 0, 55, 55, 0, 55, 0, 55, 55, 0, 0, 0, 55, 55, 0, 0, 0, 55, 55, 55, 0, 0,
+ 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 18, 18,
+ 25, 18, 18, 0, 0, 0, 18, 18, 18, 0, 18, 18, 18, 25, 0, 0, 55, 0, 0, 0, 0,
+ 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 25,
+ 18, 18, 18, 25, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 0, 0, 0, 55, 25, 25, 25, 18, 18, 18, 18, 0, 25, 25, 25, 0, 25,
+ 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 25, 25, 0, 55, 55, 55, 0, 0, 0, 0, 0,
+ 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0,
+ 0, 0, 5, 27, 27, 27, 27, 27, 27, 27, 5, 55, 25, 18, 18, 5, 55, 55, 55,
+ 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 0, 0, 25, 55, 18, 25,
+ 18, 18, 18, 18, 18, 0, 25, 18, 18, 0, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0,
+ 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 55, 0, 55, 55, 25, 25, 0, 0, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 25, 18, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55,
+ 25, 25, 18, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 0, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 25, 25, 55, 18, 18, 18, 25, 25, 25, 25, 0, 18, 18, 18, 0,
18, 18, 18, 25, 55, 5, 0, 0, 0, 0, 55, 55, 55, 18, 27, 27, 27, 27, 27,
27, 27, 55, 55, 55, 25, 25, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 55, 55, 55, 55, 55, 55, 0, 25, 18,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 55, 55, 55, 55, 55, 55, 0, 25, 18,
18, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55,
@@ -2552,44 +2552,44 @@ static const unsigned short index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 25, 55, 139, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 5, 55, 55, 55,
- 55, 55, 55, 103, 25, 25, 25, 25, 25, 25, 25, 25, 5, 7, 8, 9, 10, 11, 12,
+ 55, 25, 55, 139, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 5, 55, 55, 55,
+ 55, 55, 55, 103, 25, 25, 25, 25, 25, 25, 25, 25, 5, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 0,
- 55, 0, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 25, 55, 139, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 55, 0, 0, 55, 55, 55, 55, 55, 0, 103, 0, 25, 25, 25, 25, 25, 25, 0,
- 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 55, 55, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 25, 25, 5, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 25, 5, 25, 5, 25, 5, 5, 5,
- 5, 18, 18, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 5, 25,
- 25, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0,
+ 55, 0, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 25, 55, 139, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 55, 0, 0, 55, 55, 55, 55, 55, 0, 103, 0, 25, 25, 25, 25, 25, 25, 0,
+ 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 55, 55, 55, 55, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 55, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 25, 25, 5, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 25, 5, 25, 5, 25, 5, 5, 5,
+ 5, 18, 18, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 5, 25,
+ 25, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 0, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 18, 18, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 18, 25,
- 25, 18, 18, 25, 25, 55, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5,
- 5, 5, 55, 55, 55, 55, 55, 55, 18, 18, 25, 25, 55, 55, 55, 55, 25, 25, 25,
- 55, 18, 18, 18, 55, 55, 18, 18, 18, 18, 18, 18, 18, 55, 55, 55, 25, 25,
- 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 18,
- 25, 25, 18, 18, 18, 18, 18, 18, 25, 55, 18, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 18, 18, 18, 25, 5, 5, 140, 140, 140, 140, 140, 140, 140, 140,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 0, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 18, 18, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 18, 25,
+ 25, 18, 18, 25, 25, 55, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5,
+ 5, 5, 55, 55, 55, 55, 55, 55, 18, 18, 25, 25, 55, 55, 55, 55, 25, 25, 25,
+ 55, 18, 18, 18, 55, 55, 18, 18, 18, 18, 18, 18, 18, 55, 55, 55, 25, 25,
+ 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 18,
+ 25, 25, 18, 18, 18, 18, 18, 18, 25, 55, 18, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 18, 18, 18, 25, 5, 5, 140, 140, 140, 140, 140, 140, 140, 140,
140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 0, 140, 0, 0, 0, 0, 0, 140, 0, 0, 141, 141, 141, 141, 141, 141,
- 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
- 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
- 141, 141, 141, 141, 141, 141, 141, 141, 141, 5, 103, 141, 141, 141, 55,
+ 140, 140, 0, 140, 0, 0, 0, 0, 0, 140, 0, 0, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 5, 103, 141, 141, 141, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -2601,32 +2601,32 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0,
- 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0,
+ 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0,
- 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 0, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 0,
+ 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 0, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
- 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
+ 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
- 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
- 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
- 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, 0, 237, 238, 239, 240,
- 241, 242, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 142, 143, 144, 145, 146,
+ 147, 148, 149, 150, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, 0, 237, 238, 239, 240,
+ 241, 242, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -2639,163 +2639,163 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 2, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0,
- 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 2, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0,
+ 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 5, 5, 5, 243, 243, 243, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 55, 55, 55, 55, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25,
- 25, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
- 0, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 5, 5, 5, 243, 243, 243, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 55, 55, 55, 55, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25,
+ 25, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
+ 0, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 25, 25, 25, 25, 25,
- 25, 25, 18, 18, 18, 18, 18, 18, 18, 18, 25, 18, 18, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 5, 5, 5, 103, 5, 5, 5, 5, 55, 25, 0, 0, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25,
- 25, 21, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 25, 25, 25, 25, 25,
+ 25, 25, 18, 18, 18, 18, 18, 18, 18, 18, 25, 18, 18, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 5, 5, 5, 103, 5, 5, 5, 5, 55, 25, 0, 0, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25,
+ 25, 21, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 55, 55, 55, 55, 55, 244, 244, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
+ 0, 0, 0, 55, 55, 55, 55, 55, 244, 244, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 25, 25, 25,
- 18, 18, 18, 18, 25, 25, 18, 18, 18, 0, 0, 0, 0, 18, 18, 25, 18, 18, 18,
- 18, 18, 18, 25, 25, 25, 0, 0, 0, 0, 5, 0, 0, 0, 5, 5, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 25, 25, 25,
+ 18, 18, 18, 18, 25, 25, 18, 18, 18, 0, 0, 0, 0, 18, 18, 25, 18, 18, 18,
+ 18, 18, 18, 25, 25, 25, 0, 0, 0, 0, 5, 0, 0, 0, 5, 5, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0,
- 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 142, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 18, 25, 0, 0, 5, 5, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, 18, 25,
- 25, 25, 25, 25, 25, 25, 0, 25, 18, 25, 18, 18, 25, 25, 25, 25, 25, 25,
- 25, 25, 18, 18, 18, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 0, 0, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 103,
- 5, 5, 5, 5, 5, 5, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 6, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 142, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 18, 25, 0, 0, 5, 5, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, 18, 25,
+ 25, 25, 25, 25, 25, 25, 0, 25, 18, 25, 18, 18, 25, 25, 25, 25, 25, 25,
+ 25, 25, 18, 18, 18, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 0, 0, 25, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 103,
+ 5, 5, 5, 5, 5, 5, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 6, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25,
- 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 25, 25,
- 25, 25, 25, 18, 25, 18, 18, 18, 18, 18, 25, 18, 18, 55, 55, 55, 55, 55,
- 55, 55, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 25, 25, 18, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 18, 25, 25, 25, 25, 18, 18, 25, 25, 18, 25, 25,
- 25, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 25, 18, 25, 25, 18, 18, 18, 25, 18, 25, 25, 25, 18, 18, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, 18, 18, 25, 25, 25,
- 25, 25, 25, 25, 25, 18, 18, 25, 25, 0, 0, 0, 5, 5, 5, 5, 5, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 0, 0, 0, 55, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 103, 103,
- 103, 103, 103, 5, 5, 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, 0,
- 0, 0, 0, 0, 0, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
- 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
- 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
- 254, 254, 254, 254, 0, 0, 254, 254, 254, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 25, 25, 25, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 18, 25, 25, 25, 25, 25, 25, 25, 55, 55, 55, 55, 25, 55, 55, 55,
- 55, 55, 55, 25, 55, 55, 18, 25, 25, 55, 0, 0, 0, 0, 0, 20, 20, 20, 20,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25,
+ 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 18, 25, 25,
+ 25, 25, 25, 18, 25, 18, 18, 18, 18, 18, 25, 18, 18, 55, 55, 55, 55, 55,
+ 55, 55, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 25, 25, 18, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 18, 25, 25, 25, 25, 18, 18, 25, 25, 18, 25, 25,
+ 25, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 25, 18, 25, 25, 18, 18, 18, 25, 18, 25, 25, 25, 18, 18, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, 18, 18, 25, 25, 25,
+ 25, 25, 25, 25, 25, 18, 18, 25, 25, 0, 0, 0, 5, 5, 5, 5, 5, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 0, 0, 0, 55, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 103, 103,
+ 103, 103, 103, 5, 5, 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, 0,
+ 0, 0, 0, 0, 0, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 0, 0, 254, 254, 254, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 25, 25, 25, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 18, 25, 25, 25, 25, 25, 25, 25, 55, 55, 55, 55, 25, 55, 55, 55,
+ 55, 55, 55, 25, 55, 55, 18, 25, 25, 55, 0, 0, 0, 0, 0, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 102, 255, 20, 20, 20, 256, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 257, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 25,
+ 20, 20, 20, 20, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 102, 255, 20, 20, 20, 256, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 257, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 0, 25, 25, 25, 25, 25, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 0, 25, 25, 25, 25, 25, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 258, 259,
+ 260, 261, 262, 263, 20, 20, 264, 20, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 258, 259,
- 260, 261, 262, 263, 20, 20, 264, 20, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 265, 265,
- 265, 265, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266, 266, 266,
- 265, 265, 265, 265, 265, 265, 0, 0, 266, 266, 266, 266, 266, 266, 0, 0,
- 265, 265, 265, 265, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266,
- 266, 266, 265, 265, 265, 265, 265, 265, 265, 265, 266, 266, 266, 266,
- 266, 266, 266, 266, 265, 265, 265, 265, 265, 265, 0, 0, 266, 266, 266,
- 266, 266, 266, 0, 0, 267, 265, 268, 265, 269, 265, 270, 265, 0, 266, 0,
- 266, 0, 266, 0, 266, 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
- 266, 266, 266, 266, 266, 266, 271, 271, 272, 272, 272, 272, 273, 273,
- 274, 274, 275, 275, 276, 276, 0, 0, 277, 278, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 265,
- 265, 325, 326, 327, 0, 328, 329, 266, 266, 330, 330, 331, 6, 332, 6, 6,
- 6, 333, 334, 335, 0, 336, 337, 338, 338, 338, 338, 339, 6, 6, 6, 265,
- 265, 340, 341, 0, 0, 342, 343, 266, 266, 344, 344, 0, 6, 6, 6, 265, 265,
- 345, 346, 347, 127, 348, 349, 266, 266, 350, 350, 131, 6, 6, 6, 0, 0,
- 351, 352, 353, 0, 354, 355, 356, 356, 357, 357, 358, 6, 6, 0, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 21, 21, 21, 21, 21, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 5, 6, 3, 3, 21, 21, 21, 21, 21, 2, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 18, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 21,
- 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 359, 102, 0,
- 0, 360, 361, 362, 363, 364, 365, 5, 5, 5, 5, 5, 102, 359, 26, 22, 23,
- 360, 361, 362, 363, 364, 365, 5, 5, 5, 5, 5, 0, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 265, 265,
+ 265, 265, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266, 266, 266,
+ 265, 265, 265, 265, 265, 265, 0, 0, 266, 266, 266, 266, 266, 266, 0, 0,
+ 265, 265, 265, 265, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266,
+ 266, 266, 265, 265, 265, 265, 265, 265, 265, 265, 266, 266, 266, 266,
+ 266, 266, 266, 266, 265, 265, 265, 265, 265, 265, 0, 0, 266, 266, 266,
+ 266, 266, 266, 0, 0, 267, 265, 268, 265, 269, 265, 270, 265, 0, 266, 0,
+ 266, 0, 266, 0, 266, 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
+ 266, 266, 266, 266, 266, 266, 271, 271, 272, 272, 272, 272, 273, 273,
+ 274, 274, 275, 275, 276, 276, 0, 0, 277, 278, 279, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 265,
+ 265, 325, 326, 327, 0, 328, 329, 266, 266, 330, 330, 331, 6, 332, 6, 6,
+ 6, 333, 334, 335, 0, 336, 337, 338, 338, 338, 338, 339, 6, 6, 6, 265,
+ 265, 340, 341, 0, 0, 342, 343, 266, 266, 344, 344, 0, 6, 6, 6, 265, 265,
+ 345, 346, 347, 127, 348, 349, 266, 266, 350, 350, 131, 6, 6, 6, 0, 0,
+ 351, 352, 353, 0, 354, 355, 356, 356, 357, 357, 358, 6, 6, 0, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 21, 21, 21, 21, 21, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 5, 6, 3, 3, 21, 21, 21, 21, 21, 2, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 18, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 21,
+ 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 359, 102, 0,
+ 0, 360, 361, 362, 363, 364, 365, 5, 5, 5, 5, 5, 102, 359, 26, 22, 23,
+ 360, 361, 362, 363, 364, 365, 5, 5, 5, 5, 5, 0, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 6, 6, 6, 6, 25, 6, 6, 6, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 5, 121, 5, 5, 5, 5, 121, 5, 5, 20, 121, 121, 121, 20, 20, 121, 121,
- 121, 20, 5, 121, 5, 5, 366, 121, 121, 121, 121, 121, 5, 5, 5, 5, 5, 5,
- 121, 5, 367, 5, 121, 5, 368, 369, 121, 121, 366, 20, 121, 121, 370, 121,
- 20, 55, 55, 55, 55, 20, 5, 5, 20, 20, 121, 121, 5, 5, 5, 5, 5, 121, 20,
- 20, 20, 20, 5, 5, 5, 5, 371, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
- 372, 372, 372, 372, 372, 372, 373, 373, 373, 373, 373, 373, 373, 373,
- 373, 373, 373, 373, 373, 373, 373, 373, 243, 243, 243, 30, 31, 243, 243,
- 243, 243, 27, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 6, 6, 6, 6, 25, 6, 6, 6, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 5, 121, 5, 5, 5, 5, 121, 5, 5, 20, 121, 121, 121, 20, 20, 121, 121,
+ 121, 20, 5, 121, 5, 5, 366, 121, 121, 121, 121, 121, 5, 5, 5, 5, 5, 5,
+ 121, 5, 367, 5, 121, 5, 368, 369, 121, 121, 366, 20, 121, 121, 370, 121,
+ 20, 55, 55, 55, 55, 20, 5, 5, 20, 20, 121, 121, 5, 5, 5, 5, 5, 121, 20,
+ 20, 20, 20, 5, 5, 5, 5, 371, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
+ 372, 372, 372, 372, 372, 372, 373, 373, 373, 373, 373, 373, 373, 373,
+ 373, 373, 373, 373, 373, 373, 373, 373, 243, 243, 243, 30, 31, 243, 243,
+ 243, 243, 27, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
@@ -2805,38 +2805,38 @@ static const unsigned short index2[] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 22, 23, 360, 361, 362, 363, 364, 365,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 22, 23, 360, 361, 362,
- 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 22, 23,
- 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
- 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 375,
- 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
- 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 359, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27,
- 359, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 22, 23, 360, 361, 362, 363, 364, 365,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 22, 23, 360, 361, 362,
+ 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 22, 23,
+ 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 26,
- 22, 23, 360, 361, 362, 363, 364, 365, 27, 26, 22, 23, 360, 361, 362, 363,
- 364, 365, 27, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 5, 5, 5, 5,
+ 5, 5, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
+ 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 375,
+ 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
+ 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 359, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27,
+ 359, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 26,
+ 22, 23, 360, 361, 362, 363, 364, 365, 27, 26, 22, 23, 360, 361, 362, 363,
+ 364, 365, 27, 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
@@ -2844,95 +2844,96 @@ static const unsigned short index2[] = {
136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 0, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 0, 30, 31, 376, 377,
- 378, 379, 380, 30, 31, 30, 31, 30, 31, 381, 382, 383, 384, 20, 30, 31,
- 20, 30, 31, 20, 20, 20, 20, 20, 102, 102, 385, 385, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 20, 5, 5, 5, 5, 5, 5, 30, 31, 30, 31, 25, 25, 25, 30,
- 31, 0, 0, 0, 0, 0, 5, 5, 5, 5, 27, 5, 5, 386, 386, 386, 386, 386, 386,
- 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
- 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
- 386, 386, 386, 386, 0, 386, 0, 0, 0, 0, 0, 386, 0, 0, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 103, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55,
- 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55,
- 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55,
- 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 25, 25,
+ 136, 136, 136, 136, 136, 0, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 0, 30, 31, 376, 377,
+ 378, 379, 380, 30, 31, 30, 31, 30, 31, 381, 382, 383, 384, 20, 30, 31,
+ 20, 30, 31, 20, 20, 20, 20, 20, 102, 102, 385, 385, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 20, 5, 5, 5, 5, 5, 5, 30, 31, 30, 31, 25, 25, 25, 30,
+ 31, 0, 0, 0, 0, 0, 5, 5, 5, 5, 27, 5, 5, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 0, 386, 0, 0, 0, 0, 0, 386, 0, 0, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
+ 0, 0, 0, 103, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55,
+ 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55,
+ 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55,
+ 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 387, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 387, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 2, 5, 5, 5, 5, 103, 55,
- 243, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 243, 243, 243, 243, 243, 243, 243, 243, 243, 25, 25, 25, 25, 18,
- 18, 5, 103, 103, 103, 103, 103, 5, 5, 243, 243, 243, 103, 55, 5, 5, 5, 0,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 2, 5, 5, 5, 5, 103, 55,
+ 243, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 243, 243, 243, 243, 243, 243, 243, 243, 243, 25, 25, 25, 25, 18,
+ 18, 5, 103, 103, 103, 103, 103, 5, 5, 243, 243, 243, 103, 55, 5, 5, 5, 0,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 6,
- 6, 103, 103, 55, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 6,
+ 6, 103, 103, 55, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 5, 103, 103, 103, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 5, 103, 103, 103, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 0, 5, 5, 27, 27, 27, 27, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5,
+ 55, 55, 55, 55, 55, 55, 55, 55, 0, 5, 5, 27, 27, 27, 27, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
+ 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -2940,8 +2941,8 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -2949,57 +2950,56 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 55, 55, 55, 55, 55, 55, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 388, 55, 55, 388, 55, 55, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55,
+ 388, 55, 55, 388, 55, 55, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55,
+ 55, 55, 55, 55, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 388, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55,
- 55, 55, 55, 55, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 388,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 388, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 388,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 388, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 388, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 388, 55, 388, 388, 388, 55, 55, 55, 55, 55, 55, 388, 55, 55,
+ 55, 55, 55, 388, 55, 388, 388, 388, 55, 55, 55, 55, 55, 55, 388, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 388, 388, 388, 388, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 388, 388, 388, 388, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3007,7 +3007,7 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3016,14 +3016,14 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3031,8 +3031,8 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 388, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 388, 388, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 388, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 388, 388, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3045,11 +3045,11 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3057,10 +3057,10 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3068,7 +3068,7 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3076,194 +3076,194 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
- 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
+ 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 103, 103, 103, 103, 103, 5, 5,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 5, 5, 5, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
- 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 55, 25, 6, 6, 6, 5,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 103, 30, 31, 30, 31, 30, 31,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 103, 103, 103, 103, 103, 5, 5,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 103, 5, 5, 5, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30,
+ 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 55, 25, 6, 6, 6, 5,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 103, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 30, 31, 30, 31, 102, 102, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 30, 31, 30, 31, 102, 102, 25, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 25, 25, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 103, 103, 103, 103, 103,
- 103, 103, 103, 103, 6, 6, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 30, 31, 20, 20, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
+ 55, 55, 55, 55, 55, 55, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 25, 25, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 103, 103, 103, 103, 103,
+ 103, 103, 103, 103, 6, 6, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
+ 30, 31, 20, 20, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 102, 20, 20, 20, 20, 20,
- 20, 20, 20, 30, 31, 30, 31, 389, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 103, 6, 6, 30, 31, 390, 20, 55, 30, 31, 30, 31, 391, 20, 30, 31, 30, 31,
- 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 392, 393,
- 394, 395, 392, 20, 396, 397, 398, 399, 30, 31, 30, 31, 30, 31, 30, 31,
- 30, 31, 30, 31, 0, 0, 30, 31, 400, 401, 402, 30, 31, 30, 31, 0, 0, 0, 0,
+ 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 102, 20, 20, 20, 20, 20,
+ 20, 20, 20, 30, 31, 30, 31, 389, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
+ 103, 6, 6, 30, 31, 390, 20, 55, 30, 31, 30, 31, 391, 20, 30, 31, 30, 31,
+ 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 392, 393,
+ 394, 395, 392, 20, 396, 397, 398, 399, 30, 31, 30, 31, 30, 31, 30, 31,
+ 30, 31, 30, 31, 0, 0, 30, 31, 400, 401, 402, 30, 31, 30, 31, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 55, 102, 102, 20, 55,
- 55, 55, 55, 55, 55, 55, 25, 55, 55, 55, 25, 55, 55, 55, 55, 25, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 18, 18, 25, 25, 18, 5, 5, 5, 5, 25, 0, 0, 0, 27, 27, 27, 27,
- 27, 27, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 55, 102, 102, 20, 55,
+ 55, 55, 55, 55, 55, 55, 25, 55, 55, 55, 25, 55, 55, 55, 55, 25, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 18, 18, 25, 25, 18, 5, 5, 5, 5, 25, 0, 0, 0, 27, 27, 27, 27,
+ 27, 27, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0,
- 0, 0, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55,
- 55, 55, 55, 55, 55, 5, 5, 5, 55, 5, 55, 55, 25, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25,
- 25, 25, 25, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 25, 18, 18, 25, 25, 25, 25, 18, 18, 25, 25, 18, 18,
- 18, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 103, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 25, 103, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 55,
- 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 18, 18, 25,
- 25, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 25, 55, 55,
- 55, 55, 55, 55, 55, 55, 25, 18, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 0, 0, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 103, 55, 55, 55, 55, 55, 55, 5, 5, 5, 55, 18, 25, 18, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 25, 25, 25, 55,
- 55, 25, 25, 55, 55, 55, 55, 55, 25, 25, 55, 25, 55, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 103, 5, 5, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, 25, 18, 18, 5, 5, 55,
- 103, 103, 18, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
- 0, 0, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55,
- 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55,
+ 55, 55, 55, 55, 55, 5, 5, 5, 55, 5, 55, 55, 25, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25,
+ 25, 25, 25, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 25, 25, 18, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 25, 18, 18, 25, 25, 25, 25, 18, 18, 25, 25, 18, 18,
+ 18, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 103, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 25, 103, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 55, 55,
+ 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 18, 18, 25,
+ 25, 18, 18, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 25, 55, 55,
+ 55, 55, 55, 55, 55, 55, 25, 18, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 0, 0, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 103, 55, 55, 55, 55, 55, 55, 5, 5, 5, 55, 18, 25, 18, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 55, 25, 25, 25, 55,
+ 55, 25, 25, 55, 55, 55, 55, 55, 25, 25, 55, 25, 55, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 103, 5, 5, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 25, 25, 18, 18, 5, 5, 55,
+ 103, 103, 18, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
+ 0, 0, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55,
+ 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 403, 20, 20, 20, 20, 20, 20, 20, 6, 102, 102, 102, 102, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 103, 6, 6, 0, 0, 0, 0, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
- 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
- 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
- 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
- 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
- 480, 481, 482, 483, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 403, 20, 20, 20, 20, 20, 20, 20, 6, 102, 102, 102, 102, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 103, 6, 6, 0, 0, 0, 0, 404, 405, 406, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
+ 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, 481, 482, 483, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 18, 18, 25, 18, 18, 25, 18, 18, 5, 18, 25, 0, 0, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 18, 18, 25, 18, 18, 25, 18, 18, 5, 18, 25, 0, 0, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 55, 55, 55, 55, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 55, 55, 55, 55, 55,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55,
+ 55, 55, 388, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55,
- 55, 55, 388, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 388, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 484, 485, 486, 487, 488, 489,
- 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 492, 493, 494, 495, 0, 0,
- 0, 0, 0, 55, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 0, 55, 0,
- 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 484, 485, 486, 487, 488, 489,
+ 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 492, 493, 494, 495, 0, 0,
+ 0, 0, 0, 55, 25, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 0, 55, 0,
+ 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3271,369 +3271,369 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 496, 496, 496, 496, 496, 496, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 496, 496, 496, 496, 496, 496, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 5, 5, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 496, 496, 5, 5, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
- 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5,
- 5, 5, 18, 18, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 18, 18, 18, 5, 5, 6, 0, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 0, 0, 0, 0, 496, 55, 496, 55, 496, 0,
- 496, 55, 496, 55, 496, 55, 496, 55, 496, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 496, 496, 5, 5, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
+ 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5,
+ 5, 5, 18, 18, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 18, 18, 18, 5, 5, 6, 0, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 0, 0, 0, 0, 496, 55, 496, 55, 496, 0,
+ 496, 55, 496, 55, 496, 55, 496, 55, 496, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 21, 0, 5, 5, 5, 5, 5, 5, 6,
- 5, 5, 5, 5, 5, 5, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 6, 5, 5, 5,
- 5, 5, 5, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 5, 5, 5, 6, 18, 6, 19, 19, 19,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 21, 0, 5, 5, 5, 5, 5, 5, 6,
+ 5, 5, 5, 5, 5, 5, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 6, 5, 5, 5,
+ 5, 5, 5, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 5, 5, 5, 6, 18, 6, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 103, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 497, 497, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55,
- 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 0, 0,
- 55, 55, 55, 0, 0, 0, 5, 5, 5, 6, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 5, 5, 0, 0, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
- 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
- 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0,
+ 19, 19, 19, 19, 19, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 103, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 497, 497, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55,
+ 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55, 0, 0,
+ 55, 55, 55, 0, 0, 0, 5, 5, 5, 6, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 5, 5, 0, 0, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
+ 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
+ 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27,
+ 55, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 27, 27, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 27, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 27, 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 27, 27, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 243, 55, 55, 55,
- 55, 55, 55, 55, 55, 243, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 243, 55, 55, 55,
+ 55, 55, 55, 55, 55, 243, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 0, 0,
- 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 5, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 0, 0,
+ 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 5, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
- 55, 55, 55, 55, 55, 55, 55, 55, 5, 243, 243, 243, 243, 243, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 5, 243, 243, 243, 243, 243, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 499, 499, 499, 499, 499, 499, 499, 499,
- 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
- 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
- 499, 499, 499, 499, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 498, 498, 498, 498, 498,
+ 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
+ 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
+ 498, 498, 498, 498, 498, 498, 499, 499, 499, 499, 499, 499, 499, 499,
+ 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
+ 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
+ 499, 499, 499, 499, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 498, 498, 498, 498, 498, 498, 498, 498,
+ 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
+ 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 0,
+ 0, 0, 0, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
+ 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
+ 499, 499, 499, 499, 499, 499, 499, 499, 499, 0, 0, 0, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 0,
- 0, 0, 0, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
- 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
- 499, 499, 499, 499, 499, 499, 499, 499, 499, 0, 0, 0, 0, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
+ 55, 55, 55, 55, 0, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0,
+ 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 5, 27, 27, 27, 27, 27, 27, 27, 27,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
- 55, 55, 55, 55, 0, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 5, 5, 27, 27, 27, 27, 27, 27, 27, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0,
- 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 5, 27, 27, 27, 27, 27, 27, 27, 27,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 5, 5, 27, 27, 27, 27, 27, 27, 27, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 0, 55, 55, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 27, 27, 27, 27, 27, 27, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 0, 55, 55, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 27, 27, 27, 27, 27, 27, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 27, 27, 55, 55, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 0, 0, 27, 27, 55, 55, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 55,
- 25, 25, 25, 0, 25, 25, 0, 0, 0, 0, 0, 25, 25, 25, 25, 55, 55, 55, 55, 0,
- 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25,
- 25, 0, 0, 0, 0, 25, 26, 22, 23, 360, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0,
- 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 27, 27, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
- 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 27, 27,
- 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 5,
- 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 5,
- 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 55,
+ 25, 25, 25, 0, 25, 25, 0, 0, 0, 0, 0, 25, 25, 25, 25, 55, 55, 55, 55, 0,
+ 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25,
+ 25, 0, 0, 0, 0, 25, 26, 22, 23, 360, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0,
+ 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 27, 27, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
+ 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 0, 0, 0, 0, 27, 27,
+ 27, 27, 27, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 5,
+ 5, 5, 5, 5, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 5,
+ 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27,
- 27, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27,
+ 27, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 55, 55, 55,
+ 26, 22, 23, 360, 361, 362, 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 25, 25, 5, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 0, 25, 25, 5, 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 55,
- 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 27, 27, 27, 27, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 18, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 26, 22, 23, 360, 361, 362,
- 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
- 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25,
- 25, 18, 18, 25, 25, 5, 5, 21, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 21, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25, 25, 25, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25,
- 18, 25, 25, 25, 25, 25, 25, 25, 25, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 5, 5, 5, 5, 55, 18, 18, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 5, 5, 55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 55, 55,
- 55, 55, 5, 5, 5, 5, 25, 25, 25, 25, 5, 18, 25, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 55, 5, 55, 5, 5, 5, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 18, 18, 25,
- 18, 25, 25, 5, 5, 5, 5, 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 0, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 5, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 27, 27, 27, 27, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 18, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 26, 22, 23, 360, 361, 362,
+ 363, 364, 365, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+ 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25,
+ 25, 18, 18, 25, 25, 5, 5, 21, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 21, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25, 25, 25, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25,
+ 18, 25, 25, 25, 25, 25, 25, 25, 25, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 5, 5, 5, 5, 55, 18, 18, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 5, 5, 55, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 25, 25, 18, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 55, 55,
+ 55, 55, 5, 5, 5, 5, 25, 25, 25, 25, 5, 18, 25, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 55, 5, 55, 5, 5, 5, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 18, 18, 25,
+ 18, 25, 25, 5, 5, 5, 5, 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 0, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 5, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 25, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0,
- 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25, 25,
- 18, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 0, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55,
- 0, 25, 25, 55, 18, 18, 25, 18, 18, 18, 18, 0, 0, 18, 18, 0, 0, 18, 18,
- 18, 0, 0, 55, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
- 18, 18, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 25, 25, 25, 25, 25, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 25, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0,
+ 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 25, 25,
+ 18, 18, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 0, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55,
+ 0, 25, 25, 55, 18, 18, 25, 18, 18, 18, 18, 0, 0, 18, 18, 0, 0, 18, 18,
+ 18, 0, 0, 55, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
+ 18, 18, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 25, 25, 25, 25, 25, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 18,
- 18, 25, 25, 25, 18, 25, 55, 55, 55, 55, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 5, 5, 0, 5, 25, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 18,
+ 18, 25, 25, 25, 18, 25, 55, 55, 55, 55, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 5, 5, 0, 5, 25, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25,
- 25, 18, 25, 18, 18, 18, 18, 25, 25, 18, 25, 25, 55, 55, 5, 55, 0, 0, 0,
- 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25,
+ 25, 18, 25, 18, 18, 18, 18, 25, 25, 18, 25, 25, 55, 55, 5, 55, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18,
+ 18, 25, 25, 25, 25, 0, 0, 18, 18, 18, 18, 25, 25, 18, 25, 25, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55,
+ 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 25, 18,
+ 25, 25, 5, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 25, 18, 25, 18, 18, 25, 25, 25, 25, 25, 25, 18, 25, 55,
+ 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18,
- 18, 25, 25, 25, 25, 0, 0, 18, 18, 18, 18, 25, 25, 18, 25, 25, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 55, 55, 55, 55,
- 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25, 25, 25, 18, 18, 25, 18,
- 25, 25, 5, 5, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 25, 18, 25, 18, 18, 25, 25, 25, 25, 25, 25, 18, 25, 55,
- 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 18, 18, 25, 25,
- 25, 25, 18, 25, 25, 25, 25, 25, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 27, 27, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 18, 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 18, 18, 25, 25,
+ 25, 25, 18, 25, 25, 25, 25, 25, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 27, 27, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 18, 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, 0, 18, 18, 0, 0, 25, 25, 18, 25,
- 55, 18, 55, 18, 25, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18,
- 25, 25, 25, 25, 0, 0, 25, 25, 18, 18, 18, 18, 25, 55, 5, 55, 18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25,
- 25, 25, 25, 18, 55, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 55, 25, 25, 25, 25, 25, 25, 18, 18, 25, 25, 25, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 18, 25, 25, 5, 5, 5, 55, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18,
- 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 5,
- 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 0, 18, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 18,
- 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 19, 19, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 18, 18, 18, 18, 18, 18, 0, 18, 18, 0, 0, 25, 25, 18, 25,
+ 55, 18, 55, 18, 25, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18,
+ 25, 25, 25, 25, 0, 0, 25, 25, 18, 18, 18, 18, 25, 55, 5, 55, 18, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25,
+ 25, 25, 25, 18, 55, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 55, 25, 25, 25, 25, 25, 25, 18, 18, 25, 25, 25, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 18, 25, 25, 5, 5, 5, 55, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25,
- 25, 25, 25, 0, 0, 0, 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 55,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0,
- 0, 0, 0, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 0, 25, 25, 0, 18, 18,
- 25, 18, 25, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 18,
+ 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 18, 25, 55, 5, 5,
+ 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 0, 0, 0, 5, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 0, 18, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 18,
+ 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 25,
+ 25, 25, 25, 0, 0, 0, 25, 0, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 55,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0,
+ 0, 0, 0, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 18, 18, 18, 18, 18, 0, 25, 25, 0, 18, 18,
+ 25, 18, 25, 55, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3641,121 +3641,121 @@ static const unsigned short index2[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 18, 5, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25, 18, 18, 5, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 0, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
- 243, 243, 243, 243, 243, 243, 0, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0,
- 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0,
+ 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, 25, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 0, 0, 25, 25, 25, 25, 25, 5, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25,
- 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 103, 103, 103, 103, 5, 5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 27,
- 27, 27, 27, 27, 27, 27, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 25, 25,
+ 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 103, 103, 103, 103, 5, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 27,
+ 27, 27, 27, 27, 27, 27, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 25, 55, 18, 18, 18,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 25, 55, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0,
- 0, 0, 0, 0, 25, 25, 25, 25, 103, 103, 103, 103, 103, 103, 103, 103, 103,
- 103, 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0,
+ 0, 0, 0, 0, 25, 25, 25, 25, 103, 103, 103, 103, 103, 103, 103, 103, 103,
+ 103, 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
- 103, 5, 103, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
+ 103, 5, 103, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
- 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
+ 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -3763,301 +3763,301 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
- 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 5, 25,
- 25, 5, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0,
+ 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 5, 25,
+ 25, 5, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 18, 25, 25, 25, 5, 5,
- 5, 18, 18, 18, 18, 18, 18, 21, 21, 21, 21, 21, 21, 21, 21, 25, 25, 25,
- 25, 25, 25, 25, 25, 5, 5, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 18, 25, 25, 25, 5, 5,
+ 5, 18, 18, 18, 18, 18, 18, 21, 21, 21, 21, 21, 21, 21, 21, 25, 25, 25,
+ 25, 25, 25, 25, 25, 5, 5, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 25, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0,
- 0, 0, 0, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0,
+ 0, 0, 0, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 121, 0, 121, 121, 0, 0, 121, 0, 0, 121, 121, 0, 0, 121, 121, 121,
- 121, 0, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 0, 20, 0,
- 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20,
+ 20, 121, 0, 121, 121, 0, 0, 121, 0, 0, 121, 121, 0, 0, 121, 121, 121,
+ 121, 0, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 0, 20, 0,
+ 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 121, 121, 0, 121, 121, 121, 121, 0, 0, 121, 121, 121,
- 121, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20, 20,
+ 20, 20, 20, 20, 20, 121, 121, 0, 121, 121, 121, 121, 0, 0, 121, 121, 121,
+ 121, 121, 121, 121, 121, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 121, 121, 0, 121, 121, 121, 121, 0, 121, 121,
- 121, 121, 121, 0, 121, 0, 0, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20,
+ 20, 20, 20, 20, 20, 20, 121, 121, 0, 121, 121, 121, 121, 0, 121, 121,
+ 121, 121, 121, 0, 121, 0, 0, 0, 121, 121, 121, 121, 121, 121, 121, 0, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5,
+ 20, 20, 20, 0, 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20,
+ 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20, 20, 20, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 5, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20,
- 20, 20, 121, 20, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 25, 25,
+ 20, 20, 5, 20, 20, 20, 20, 20, 20, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 5, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 20, 20, 20, 20,
+ 20, 20, 121, 20, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5,
- 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5,
+ 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5,
- 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5,
- 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25,
- 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 5, 5, 5, 5,
+ 5, 5, 5, 5, 25, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 5, 5, 5, 5,
+ 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25,
+ 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 25, 25,
+ 0, 25, 25, 0, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 25, 25,
- 0, 25, 25, 0, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25,
- 103, 103, 103, 103, 103, 103, 103, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 0, 0, 0, 0, 55, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 0, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 25,
- 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500, 500, 500,
- 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
- 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
- 500, 500, 500, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
- 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
- 501, 501, 501, 501, 501, 501, 501, 501, 501, 25, 25, 25, 25, 25, 25, 25,
- 103, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25,
+ 103, 103, 103, 103, 103, 103, 103, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 0, 0, 0, 0, 55, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 25, 25, 25, 25, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 0, 0, 0, 0, 0, 5, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 25,
+ 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500, 500, 500,
+ 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
+ 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
+ 500, 500, 500, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
+ 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
+ 501, 501, 501, 501, 501, 501, 501, 501, 501, 25, 25, 25, 25, 25, 25, 25,
+ 103, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 5, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 5, 27, 27, 27, 27, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 5, 27, 27, 27, 27, 0, 0, 0, 0, 0,
+ 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 5, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0,
+ 55, 0, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
+ 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0,
+ 55, 55, 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0,
+ 55, 55, 0, 55, 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0,
+ 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 0,
- 55, 0, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55,
- 55, 0, 55, 0, 55, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 55, 0, 55, 0, 55, 0,
- 55, 55, 55, 0, 55, 55, 0, 55, 0, 0, 55, 0, 55, 0, 55, 0, 55, 0, 55, 0,
- 55, 55, 0, 55, 0, 0, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 0,
- 55, 55, 55, 55, 0, 55, 55, 55, 55, 0, 55, 0, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 0, 0, 0, 0, 0, 55, 55, 55, 0, 55, 55, 55, 55, 55, 0, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
- 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, 26, 22, 23, 360, 361, 362, 363, 364,
- 365, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 502, 502, 502, 502, 502,
- 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
- 502, 502, 502, 502, 502, 502, 502, 5, 5, 5, 5, 5, 5, 502, 502, 502, 502,
- 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
- 502, 502, 502, 502, 502, 502, 502, 502, 5, 5, 5, 5, 5, 5, 502, 502, 502,
- 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
- 502, 502, 502, 502, 502, 502, 502, 502, 502, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
+ 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, 26, 22, 23, 360, 361, 362, 363, 364,
+ 365, 27, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 5, 5, 5, 5, 5, 5, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 502, 5, 5, 5, 5, 5, 5, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 502, 502, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
+ 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5,
- 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 0, 0, 5, 5, 5, 5, 5, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5,
+ 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,
+ 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 388, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 55, 388, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -4067,35 +4067,33 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 388, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
@@ -4104,61 +4102,63 @@ static const unsigned short index2[] = {
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 388, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 25, 25, 25, 25, 25,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
@@ -4172,13 +4172,13 @@ static const unsigned short index2[] = {
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 0,
};
/* Returns the numeric value as double for Unicode characters
@@ -4251,7 +4251,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C0:
case 0x11730:
case 0x118E0:
- case 0x11950:
+ case 0x11950:
case 0x11C50:
case 0x11D50:
case 0x11DA0:
@@ -4264,14 +4264,14 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E2:
case 0x1D7EC:
case 0x1D7F6:
- case 0x1E140:
- case 0x1E2F0:
+ case 0x1E140:
+ case 0x1E2F0:
case 0x1E950:
case 0x1F100:
case 0x1F101:
case 0x1F10B:
case 0x1F10C:
- case 0x1FBF0:
+ case 0x1FBF0:
return (double) 0.0;
case 0x0031:
case 0x00B9:
@@ -4364,7 +4364,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10E60:
case 0x10F1D:
case 0x10F51:
- case 0x10FC5:
+ case 0x10FC5:
case 0x11052:
case 0x11067:
case 0x110F1:
@@ -4378,7 +4378,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C1:
case 0x11731:
case 0x118E1:
- case 0x11951:
+ case 0x11951:
case 0x11C51:
case 0x11C5A:
case 0x11D51:
@@ -4402,21 +4402,21 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E3:
case 0x1D7ED:
case 0x1D7F7:
- case 0x1E141:
- case 0x1E2F1:
+ case 0x1E141:
+ case 0x1E2F1:
case 0x1E8C7:
case 0x1E951:
case 0x1EC71:
case 0x1ECA3:
case 0x1ECB1:
- case 0x1ED01:
+ case 0x1ED01:
case 0x1F102:
- case 0x1FBF1:
+ case 0x1FBF1:
case 0x2092A:
return (double) 1.0;
case 0x0D5C:
case 0x2152:
- case 0x11FCB:
+ case 0x11FCB:
return (double) 1.0/10.0;
case 0x109F6:
return (double) 1.0/12.0;
@@ -4424,11 +4424,11 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x0B75:
case 0x0D76:
case 0xA833:
- case 0x11FC9:
- case 0x11FCA:
+ case 0x11FC9:
+ case 0x11FCA:
return (double) 1.0/16.0;
case 0x0D58:
- case 0x11FC1:
+ case 0x11FC1:
return (double) 1.0/160.0;
case 0x00BD:
case 0x0B73:
@@ -4443,14 +4443,14 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10A48:
case 0x10E7B:
case 0x10F26:
- case 0x11FD1:
- case 0x11FD2:
+ case 0x11FD1:
+ case 0x11FD2:
case 0x12464:
case 0x1ECAE:
- case 0x1ED3C:
+ case 0x1ED3C:
return (double) 1.0/2.0;
case 0x0D5B:
- case 0x11FC8:
+ case 0x11FC8:
return (double) 1.0/20.0;
case 0x2153:
case 0x10E7D:
@@ -4458,11 +4458,11 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1245D:
case 0x12465:
return (double) 1.0/3.0;
- case 0x11FC5:
- return (double) 1.0/32.0;
- case 0x11FC0:
- case 0x11FD4:
- return (double) 1.0/320.0;
+ case 0x11FC5:
+ return (double) 1.0/32.0;
+ case 0x11FC0:
+ case 0x11FD4:
+ return (double) 1.0/320.0;
case 0x00BC:
case 0x09F7:
case 0x0B72:
@@ -4471,25 +4471,25 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10140:
case 0x1018B:
case 0x10E7C:
- case 0x11FD0:
+ case 0x11FD0:
case 0x12460:
case 0x12462:
case 0x12463:
case 0x1ECAD:
return (double) 1.0/4.0;
case 0x0D59:
- case 0x11FC4:
+ case 0x11FC4:
return (double) 1.0/40.0;
case 0x0D5E:
case 0x2155:
- case 0x11FCF:
+ case 0x11FCF:
return (double) 1.0/5.0;
case 0x2159:
case 0x12461:
- case 0x1ED3D:
+ case 0x1ED3D:
return (double) 1.0/6.0;
- case 0x11FC3:
- return (double) 1.0/64.0;
+ case 0x11FC3:
+ return (double) 1.0/64.0;
case 0x2150:
return (double) 1.0/7.0;
case 0x09F5:
@@ -4497,11 +4497,11 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x0D77:
case 0x215B:
case 0xA834:
- case 0x11FCC:
+ case 0x11FCC:
case 0x1245F:
return (double) 1.0/8.0;
- case 0x11FC2:
- return (double) 1.0/80.0;
+ case 0x11FC2:
+ return (double) 1.0/80.0;
case 0x2151:
return (double) 1.0/9.0;
case 0x0BF0:
@@ -4553,7 +4553,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10E69:
case 0x10F22:
case 0x10F52:
- case 0x10FC9:
+ case 0x10FC9:
case 0x1105B:
case 0x111EA:
case 0x1173A:
@@ -4564,8 +4564,8 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D2EA:
case 0x1D369:
case 0x1EC7A:
- case 0x1ED0A:
- case 0x1ED37:
+ case 0x1ED0A:
+ case 0x1ED37:
return (double) 10.0;
case 0x109FF:
return (double) 10.0/12.0;
@@ -4597,13 +4597,13 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10E72:
case 0x10F25:
case 0x10F54:
- case 0x10FCB:
+ case 0x10FCB:
case 0x11064:
case 0x111F3:
case 0x11C6C:
case 0x16B5C:
case 0x1EC83:
- case 0x1ED13:
+ case 0x1ED13:
return (double) 100.0;
case 0x0BF2:
case 0x0D72:
@@ -4626,7 +4626,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x11065:
case 0x111F4:
case 0x1EC8C:
- case 0x1ED1C:
+ case 0x1ED1C:
return (double) 1000.0;
case 0x137C:
case 0x2182:
@@ -4639,8 +4639,8 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x16B5D:
case 0x1EC95:
case 0x1ECB3:
- case 0x1ED25:
- case 0x1ED3B:
+ case 0x1ED25:
+ case 0x1ED3B:
return (double) 10000.0;
case 0x2188:
case 0x109ED:
@@ -4828,7 +4828,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10D32:
case 0x10E61:
case 0x10F1E:
- case 0x10FC6:
+ case 0x10FC6:
case 0x11053:
case 0x11068:
case 0x110F2:
@@ -4842,7 +4842,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C2:
case 0x11732:
case 0x118E2:
- case 0x11952:
+ case 0x11952:
case 0x11C52:
case 0x11C5B:
case 0x11D52:
@@ -4869,17 +4869,17 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E4:
case 0x1D7EE:
case 0x1D7F8:
- case 0x1E142:
- case 0x1E2F2:
+ case 0x1E142:
+ case 0x1E2F2:
case 0x1E8C8:
case 0x1E952:
case 0x1EC72:
case 0x1ECA4:
case 0x1ECB2:
- case 0x1ED02:
- case 0x1ED2F:
+ case 0x1ED02:
+ case 0x1ED2F:
case 0x1F103:
- case 0x1FBF2:
+ case 0x1FBF2:
case 0x22390:
return (double) 2.0;
case 0x109F7:
@@ -4920,7 +4920,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10E6A:
case 0x10F23:
case 0x10F53:
- case 0x10FCA:
+ case 0x10FCA:
case 0x1105C:
case 0x111EB:
case 0x1173B:
@@ -4928,25 +4928,25 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x11C64:
case 0x1D36A:
case 0x1EC7B:
- case 0x1ED0B:
+ case 0x1ED0B:
return (double) 20.0;
case 0x1011A:
case 0x102F4:
case 0x109D3:
case 0x10E73:
case 0x1EC84:
- case 0x1ED14:
+ case 0x1ED14:
return (double) 200.0;
case 0x10123:
case 0x109DC:
case 0x1EC8D:
- case 0x1ED1D:
- case 0x1ED3A:
+ case 0x1ED1D:
+ case 0x1ED3A:
return (double) 2000.0;
case 0x1012C:
case 0x109E5:
case 0x1EC96:
- case 0x1ED26:
+ case 0x1ED26:
return (double) 20000.0;
case 0x109EE:
case 0x1EC9F:
@@ -5053,7 +5053,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10D33:
case 0x10E62:
case 0x10F1F:
- case 0x10FC7:
+ case 0x10FC7:
case 0x11054:
case 0x11069:
case 0x110F3:
@@ -5067,7 +5067,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C3:
case 0x11733:
case 0x118E3:
- case 0x11953:
+ case 0x11953:
case 0x11C53:
case 0x11C5C:
case 0x11D53:
@@ -5099,16 +5099,16 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E5:
case 0x1D7EF:
case 0x1D7F9:
- case 0x1E143:
- case 0x1E2F3:
+ case 0x1E143:
+ case 0x1E2F3:
case 0x1E8C9:
case 0x1E953:
case 0x1EC73:
case 0x1ECA5:
- case 0x1ED03:
- case 0x1ED30:
+ case 0x1ED03:
+ case 0x1ED30:
case 0x1F104:
- case 0x1FBF3:
+ case 0x1FBF3:
case 0x20AFD:
case 0x20B19:
case 0x22998:
@@ -5120,12 +5120,12 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x0B77:
case 0x0D78:
case 0xA835:
- case 0x11FCE:
+ case 0x11FCE:
return (double) 3.0/16.0;
case 0x0F2B:
return (double) 3.0/2.0;
case 0x0D5D:
- case 0x11FCD:
+ case 0x11FCD:
return (double) 3.0/20.0;
case 0x00BE:
case 0x09F8:
@@ -5133,17 +5133,17 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x0D75:
case 0xA832:
case 0x10178:
- case 0x11FD3:
+ case 0x11FD3:
case 0x1ECAF:
return (double) 3.0/4.0;
case 0x2157:
return (double) 3.0/5.0;
- case 0x11FC7:
- return (double) 3.0/64.0;
+ case 0x11FC7:
+ return (double) 3.0/64.0;
case 0x215C:
return (double) 3.0/8.0;
case 0x0D5A:
- case 0x11FC6:
+ case 0x11FC6:
return (double) 3.0/80.0;
case 0x1374:
case 0x303A:
@@ -5162,7 +5162,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x11C65:
case 0x1D36B:
case 0x1EC7C:
- case 0x1ED0C:
+ case 0x1ED0C:
case 0x20983:
return (double) 30.0;
case 0x1011B:
@@ -5171,17 +5171,17 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x109D4:
case 0x10E74:
case 0x1EC85:
- case 0x1ED15:
+ case 0x1ED15:
return (double) 300.0;
case 0x10124:
case 0x109DD:
case 0x1EC8E:
- case 0x1ED1E:
+ case 0x1ED1E:
return (double) 3000.0;
case 0x1012D:
case 0x109E6:
case 0x1EC97:
- case 0x1ED27:
+ case 0x1ED27:
return (double) 30000.0;
case 0x109EF:
return (double) 300000.0;
@@ -5275,7 +5275,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10D34:
case 0x10E63:
case 0x10F20:
- case 0x10FC8:
+ case 0x10FC8:
case 0x11055:
case 0x1106A:
case 0x110F4:
@@ -5289,7 +5289,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C4:
case 0x11734:
case 0x118E4:
- case 0x11954:
+ case 0x11954:
case 0x11C54:
case 0x11C5D:
case 0x11D54:
@@ -5321,16 +5321,16 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E6:
case 0x1D7F0:
case 0x1D7FA:
- case 0x1E144:
- case 0x1E2F4:
+ case 0x1E144:
+ case 0x1E2F4:
case 0x1E8CA:
case 0x1E954:
case 0x1EC74:
case 0x1ECA6:
- case 0x1ED04:
- case 0x1ED31:
+ case 0x1ED04:
+ case 0x1ED31:
case 0x1F105:
- case 0x1FBF4:
+ case 0x1FBF4:
case 0x20064:
case 0x200E2:
case 0x2626D:
@@ -5354,7 +5354,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x12467:
case 0x1D36C:
case 0x1EC7D:
- case 0x1ED0D:
+ case 0x1ED0D:
case 0x2098C:
case 0x2099C:
return (double) 40.0;
@@ -5363,18 +5363,18 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x109D5:
case 0x10E75:
case 0x1EC86:
- case 0x1ED16:
- case 0x1ED38:
+ case 0x1ED16:
+ case 0x1ED38:
return (double) 400.0;
case 0x10125:
case 0x109DE:
case 0x1EC8F:
- case 0x1ED1F:
+ case 0x1ED1F:
return (double) 4000.0;
case 0x1012E:
case 0x109E7:
case 0x1EC98:
- case 0x1ED28:
+ case 0x1ED28:
return (double) 40000.0;
case 0x109F0:
return (double) 400000.0;
@@ -5487,7 +5487,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C5:
case 0x11735:
case 0x118E5:
- case 0x11955:
+ case 0x11955:
case 0x11C55:
case 0x11C5E:
case 0x11D55:
@@ -5516,16 +5516,16 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E7:
case 0x1D7F1:
case 0x1D7FB:
- case 0x1E145:
- case 0x1E2F5:
+ case 0x1E145:
+ case 0x1E2F5:
case 0x1E8CB:
case 0x1E955:
case 0x1EC75:
case 0x1ECA7:
- case 0x1ED05:
- case 0x1ED32:
+ case 0x1ED05:
+ case 0x1ED32:
case 0x1F106:
- case 0x1FBF5:
+ case 0x1FBF5:
case 0x20121:
return (double) 5.0;
case 0x109FA:
@@ -5565,7 +5565,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x12468:
case 0x1D36D:
case 0x1EC7E:
- case 0x1ED0E:
+ case 0x1ED0E:
return (double) 50.0;
case 0x216E:
case 0x217E:
@@ -5582,7 +5582,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x109D6:
case 0x10E76:
case 0x1EC87:
- case 0x1ED17:
+ case 0x1ED17:
return (double) 500.0;
case 0x2181:
case 0x10126:
@@ -5591,7 +5591,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10172:
case 0x109DF:
case 0x1EC90:
- case 0x1ED20:
+ case 0x1ED20:
return (double) 5000.0;
case 0x2187:
case 0x1012F:
@@ -5599,7 +5599,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x10156:
case 0x109E8:
case 0x1EC99:
- case 0x1ED29:
+ case 0x1ED29:
return (double) 50000.0;
case 0x109F1:
return (double) 500000.0;
@@ -5682,7 +5682,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C6:
case 0x11736:
case 0x118E6:
- case 0x11956:
+ case 0x11956:
case 0x11C56:
case 0x11C5F:
case 0x11D56:
@@ -5705,16 +5705,16 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E8:
case 0x1D7F2:
case 0x1D7FC:
- case 0x1E146:
- case 0x1E2F6:
+ case 0x1E146:
+ case 0x1E2F6:
case 0x1E8CC:
case 0x1E956:
case 0x1EC76:
case 0x1ECA8:
- case 0x1ED06:
- case 0x1ED33:
+ case 0x1ED06:
+ case 0x1ED33:
case 0x1F107:
- case 0x1FBF6:
+ case 0x1FBF6:
case 0x20AEA:
return (double) 6.0;
case 0x109FB:
@@ -5731,25 +5731,25 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x11C68:
case 0x1D36E:
case 0x1EC7F:
- case 0x1ED0F:
+ case 0x1ED0F:
return (double) 60.0;
case 0x1011E:
case 0x102F8:
case 0x109D7:
case 0x10E77:
case 0x1EC88:
- case 0x1ED18:
- case 0x1ED39:
+ case 0x1ED18:
+ case 0x1ED39:
return (double) 600.0;
case 0x10127:
case 0x109E0:
case 0x1EC91:
- case 0x1ED21:
+ case 0x1ED21:
return (double) 6000.0;
case 0x10130:
case 0x109E9:
case 0x1EC9A:
- case 0x1ED2A:
+ case 0x1ED2A:
return (double) 60000.0;
case 0x109F2:
return (double) 600000.0;
@@ -5830,7 +5830,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C7:
case 0x11737:
case 0x118E7:
- case 0x11957:
+ case 0x11957:
case 0x11C57:
case 0x11C60:
case 0x11D57:
@@ -5854,16 +5854,16 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7E9:
case 0x1D7F3:
case 0x1D7FD:
- case 0x1E147:
- case 0x1E2F7:
+ case 0x1E147:
+ case 0x1E2F7:
case 0x1E8CD:
case 0x1E957:
case 0x1EC77:
case 0x1ECA9:
- case 0x1ED07:
- case 0x1ED34:
+ case 0x1ED07:
+ case 0x1ED34:
case 0x1F108:
- case 0x1FBF7:
+ case 0x1FBF7:
case 0x20001:
return (double) 7.0;
case 0x109FC:
@@ -5884,24 +5884,24 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x11C69:
case 0x1D36F:
case 0x1EC80:
- case 0x1ED10:
+ case 0x1ED10:
return (double) 70.0;
case 0x1011F:
case 0x102F9:
case 0x109D8:
case 0x10E78:
case 0x1EC89:
- case 0x1ED19:
+ case 0x1ED19:
return (double) 700.0;
case 0x10128:
case 0x109E1:
case 0x1EC92:
- case 0x1ED22:
+ case 0x1ED22:
return (double) 7000.0;
case 0x10131:
case 0x109EA:
case 0x1EC9B:
- case 0x1ED2B:
+ case 0x1ED2B:
return (double) 70000.0;
case 0x109F3:
return (double) 700000.0;
@@ -5980,7 +5980,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C8:
case 0x11738:
case 0x118E8:
- case 0x11958:
+ case 0x11958:
case 0x11C58:
case 0x11C61:
case 0x11D58:
@@ -6003,16 +6003,16 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7EA:
case 0x1D7F4:
case 0x1D7FE:
- case 0x1E148:
- case 0x1E2F8:
+ case 0x1E148:
+ case 0x1E2F8:
case 0x1E8CE:
case 0x1E958:
case 0x1EC78:
case 0x1ECAA:
- case 0x1ED08:
- case 0x1ED35:
+ case 0x1ED08:
+ case 0x1ED35:
case 0x1F109:
- case 0x1FBF8:
+ case 0x1FBF8:
return (double) 8.0;
case 0x109FD:
return (double) 8.0/12.0;
@@ -6027,24 +6027,24 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x11C6A:
case 0x1D370:
case 0x1EC81:
- case 0x1ED11:
+ case 0x1ED11:
return (double) 80.0;
case 0x10120:
case 0x102FA:
case 0x109D9:
case 0x10E79:
case 0x1EC8A:
- case 0x1ED1A:
+ case 0x1ED1A:
return (double) 800.0;
case 0x10129:
case 0x109E2:
case 0x1EC93:
- case 0x1ED23:
+ case 0x1ED23:
return (double) 8000.0;
case 0x10132:
case 0x109EB:
case 0x1EC9C:
- case 0x1ED2C:
+ case 0x1ED2C:
return (double) 80000.0;
case 0x109F4:
return (double) 800000.0;
@@ -6124,7 +6124,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x116C9:
case 0x11739:
case 0x118E9:
- case 0x11959:
+ case 0x11959:
case 0x11C59:
case 0x11C62:
case 0x11D59:
@@ -6149,16 +6149,16 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x1D7EB:
case 0x1D7F5:
case 0x1D7FF:
- case 0x1E149:
- case 0x1E2F9:
+ case 0x1E149:
+ case 0x1E2F9:
case 0x1E8CF:
case 0x1E959:
case 0x1EC79:
case 0x1ECAB:
- case 0x1ED09:
- case 0x1ED36:
+ case 0x1ED09:
+ case 0x1ED36:
case 0x1F10A:
- case 0x1FBF9:
+ case 0x1FBF9:
case 0x2F890:
return (double) 9.0;
case 0x109FE:
@@ -6176,7 +6176,7 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x11C6B:
case 0x1D371:
case 0x1EC82:
- case 0x1ED12:
+ case 0x1ED12:
return (double) 90.0;
case 0x10121:
case 0x102FB:
@@ -6184,17 +6184,17 @@ double _PyUnicode_ToNumeric(Py_UCS4 ch)
case 0x109DA:
case 0x10E7A:
case 0x1EC8B:
- case 0x1ED1B:
+ case 0x1ED1B:
return (double) 900.0;
case 0x1012A:
case 0x109E3:
case 0x1EC94:
- case 0x1ED24:
+ case 0x1ED24:
return (double) 9000.0;
case 0x10133:
case 0x109EC:
case 0x1EC9D:
- case 0x1ED2D:
+ case 0x1ED2D:
return (double) 90000.0;
case 0x109F5:
return (double) 900000.0;
diff --git a/contrib/tools/python3/src/Objects/weakrefobject.c b/contrib/tools/python3/src/Objects/weakrefobject.c
index 518af8b202..bb56c7dbdb 100644
--- a/contrib/tools/python3/src/Objects/weakrefobject.c
+++ b/contrib/tools/python3/src/Objects/weakrefobject.c
@@ -1,10 +1,10 @@
#include "Python.h"
-#include "pycore_object.h" // _PyObject_GET_WEAKREFS_LISTPTR()
-#include "structmember.h" // PyMemberDef
+#include "pycore_object.h" // _PyObject_GET_WEAKREFS_LISTPTR()
+#include "structmember.h" // PyMemberDef
#define GET_WEAKREFS_LISTPTR(o) \
- ((PyWeakReference **) _PyObject_GET_WEAKREFS_LISTPTR(o))
+ ((PyWeakReference **) _PyObject_GET_WEAKREFS_LISTPTR(o))
Py_ssize_t
@@ -146,14 +146,14 @@ weakref_hash(PyWeakReference *self)
{
if (self->hash != -1)
return self->hash;
- PyObject* obj = PyWeakref_GET_OBJECT(self);
- if (obj == Py_None) {
+ PyObject* obj = PyWeakref_GET_OBJECT(self);
+ if (obj == Py_None) {
PyErr_SetString(PyExc_TypeError, "weak object has gone away");
return -1;
}
- Py_INCREF(obj);
- self->hash = PyObject_Hash(obj);
- Py_DECREF(obj);
+ Py_INCREF(obj);
+ self->hash = PyObject_Hash(obj);
+ Py_DECREF(obj);
return self->hash;
}
@@ -163,33 +163,33 @@ weakref_repr(PyWeakReference *self)
{
PyObject *name, *repr;
_Py_IDENTIFIER(__name__);
- PyObject* obj = PyWeakref_GET_OBJECT(self);
+ PyObject* obj = PyWeakref_GET_OBJECT(self);
- if (obj == Py_None) {
+ if (obj == Py_None) {
return PyUnicode_FromFormat("<weakref at %p; dead>", self);
- }
+ }
- Py_INCREF(obj);
- if (_PyObject_LookupAttrId(obj, &PyId___name__, &name) < 0) {
- Py_DECREF(obj);
- return NULL;
- }
+ Py_INCREF(obj);
+ if (_PyObject_LookupAttrId(obj, &PyId___name__, &name) < 0) {
+ Py_DECREF(obj);
+ return NULL;
+ }
if (name == NULL || !PyUnicode_Check(name)) {
repr = PyUnicode_FromFormat(
"<weakref at %p; to '%s' at %p>",
self,
Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
- obj);
+ obj);
}
else {
repr = PyUnicode_FromFormat(
"<weakref at %p; to '%s' at %p (%U)>",
self,
Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
- obj,
+ obj,
name);
}
- Py_DECREF(obj);
+ Py_DECREF(obj);
Py_XDECREF(name);
return repr;
}
@@ -216,14 +216,14 @@ weakref_richcompare(PyWeakReference* self, PyWeakReference* other, int op)
else
Py_RETURN_FALSE;
}
- PyObject* obj = PyWeakref_GET_OBJECT(self);
- PyObject* other_obj = PyWeakref_GET_OBJECT(other);
- Py_INCREF(obj);
- Py_INCREF(other_obj);
- PyObject* res = PyObject_RichCompare(obj, other_obj, op);
- Py_DECREF(obj);
- Py_DECREF(other_obj);
- return res;
+ PyObject* obj = PyWeakref_GET_OBJECT(self);
+ PyObject* other_obj = PyWeakref_GET_OBJECT(other);
+ Py_INCREF(obj);
+ Py_INCREF(other_obj);
+ PyObject* res = PyObject_RichCompare(obj, other_obj, op);
+ Py_DECREF(obj);
+ Py_DECREF(other_obj);
+ return res;
}
/* Given the head of an object's list of weak references, extract the
@@ -362,12 +362,12 @@ static PyMemberDef weakref_members[] = {
{NULL} /* Sentinel */
};
-static PyMethodDef weakref_methods[] = {
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
- {NULL} /* Sentinel */
-};
-
+static PyMethodDef weakref_methods[] = {
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {NULL} /* Sentinel */
+};
+
PyTypeObject
_PyWeakref_RefType = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
@@ -375,10 +375,10 @@ _PyWeakref_RefType = {
sizeof(PyWeakReference),
0,
weakref_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
(reprfunc)weakref_repr, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -398,7 +398,7 @@ _PyWeakref_RefType = {
0, /*tp_weaklistoffset*/
0, /*tp_iter*/
0, /*tp_iternext*/
- weakref_methods, /*tp_methods*/
+ weakref_methods, /*tp_methods*/
weakref_members, /*tp_members*/
0, /*tp_getset*/
0, /*tp_base*/
@@ -440,10 +440,10 @@ proxy_checkref(PyWeakReference *proxy)
static PyObject * \
method(PyObject *proxy) { \
UNWRAP(proxy); \
- Py_INCREF(proxy); \
- PyObject* res = generic(proxy); \
- Py_DECREF(proxy); \
- return res; \
+ Py_INCREF(proxy); \
+ PyObject* res = generic(proxy); \
+ Py_DECREF(proxy); \
+ return res; \
}
#define WRAP_BINARY(method, generic) \
@@ -451,12 +451,12 @@ proxy_checkref(PyWeakReference *proxy)
method(PyObject *x, PyObject *y) { \
UNWRAP(x); \
UNWRAP(y); \
- Py_INCREF(x); \
- Py_INCREF(y); \
- PyObject* res = generic(x, y); \
- Py_DECREF(x); \
- Py_DECREF(y); \
- return res; \
+ Py_INCREF(x); \
+ Py_INCREF(y); \
+ PyObject* res = generic(x, y); \
+ Py_DECREF(x); \
+ Py_DECREF(y); \
+ return res; \
}
/* Note that the third arg needs to be checked for NULL since the tp_call
@@ -469,25 +469,25 @@ proxy_checkref(PyWeakReference *proxy)
UNWRAP(v); \
if (w != NULL) \
UNWRAP(w); \
- Py_INCREF(proxy); \
- Py_INCREF(v); \
- Py_XINCREF(w); \
- PyObject* res = generic(proxy, v, w); \
- Py_DECREF(proxy); \
- Py_DECREF(v); \
- Py_XDECREF(w); \
- return res; \
+ Py_INCREF(proxy); \
+ Py_INCREF(v); \
+ Py_XINCREF(w); \
+ PyObject* res = generic(proxy, v, w); \
+ Py_DECREF(proxy); \
+ Py_DECREF(v); \
+ Py_XDECREF(w); \
+ return res; \
}
#define WRAP_METHOD(method, special) \
static PyObject * \
- method(PyObject *proxy, PyObject *Py_UNUSED(ignored)) { \
+ method(PyObject *proxy, PyObject *Py_UNUSED(ignored)) { \
_Py_IDENTIFIER(special); \
UNWRAP(proxy); \
- Py_INCREF(proxy); \
- PyObject* res = _PyObject_CallMethodIdNoArgs(proxy, &PyId_##special); \
- Py_DECREF(proxy); \
- return res; \
+ Py_INCREF(proxy); \
+ PyObject* res = _PyObject_CallMethodIdNoArgs(proxy, &PyId_##special); \
+ Py_DECREF(proxy); \
+ return res; \
}
@@ -513,11 +513,11 @@ proxy_setattr(PyWeakReference *proxy, PyObject *name, PyObject *value)
{
if (!proxy_checkref(proxy))
return -1;
- PyObject *obj = PyWeakref_GET_OBJECT(proxy);
- Py_INCREF(obj);
- int res = PyObject_SetAttr(obj, name, value);
- Py_DECREF(obj);
- return res;
+ PyObject *obj = PyWeakref_GET_OBJECT(proxy);
+ Py_INCREF(obj);
+ int res = PyObject_SetAttr(obj, name, value);
+ Py_DECREF(obj);
+ return res;
}
static PyObject *
@@ -561,20 +561,20 @@ WRAP_BINARY(proxy_iand, PyNumber_InPlaceAnd)
WRAP_BINARY(proxy_ixor, PyNumber_InPlaceXor)
WRAP_BINARY(proxy_ior, PyNumber_InPlaceOr)
WRAP_UNARY(proxy_index, PyNumber_Index)
-WRAP_BINARY(proxy_matmul, PyNumber_MatrixMultiply)
-WRAP_BINARY(proxy_imatmul, PyNumber_InPlaceMatrixMultiply)
+WRAP_BINARY(proxy_matmul, PyNumber_MatrixMultiply)
+WRAP_BINARY(proxy_imatmul, PyNumber_InPlaceMatrixMultiply)
static int
proxy_bool(PyWeakReference *proxy)
{
PyObject *o = PyWeakref_GET_OBJECT(proxy);
- if (!proxy_checkref(proxy)) {
+ if (!proxy_checkref(proxy)) {
return -1;
- }
- Py_INCREF(o);
- int res = PyObject_IsTrue(o);
- Py_DECREF(o);
- return res;
+ }
+ Py_INCREF(o);
+ int res = PyObject_IsTrue(o);
+ Py_DECREF(o);
+ return res;
}
static void
@@ -593,12 +593,12 @@ proxy_contains(PyWeakReference *proxy, PyObject *value)
{
if (!proxy_checkref(proxy))
return -1;
-
- PyObject *obj = PyWeakref_GET_OBJECT(proxy);
- Py_INCREF(obj);
- int res = PySequence_Contains(obj, value);
- Py_DECREF(obj);
- return res;
+
+ PyObject *obj = PyWeakref_GET_OBJECT(proxy);
+ Py_INCREF(obj);
+ int res = PySequence_Contains(obj, value);
+ Py_DECREF(obj);
+ return res;
}
/* mapping slots */
@@ -608,12 +608,12 @@ proxy_length(PyWeakReference *proxy)
{
if (!proxy_checkref(proxy))
return -1;
-
- PyObject *obj = PyWeakref_GET_OBJECT(proxy);
- Py_INCREF(obj);
- Py_ssize_t res = PyObject_Length(obj);
- Py_DECREF(obj);
- return res;
+
+ PyObject *obj = PyWeakref_GET_OBJECT(proxy);
+ Py_INCREF(obj);
+ Py_ssize_t res = PyObject_Length(obj);
+ Py_DECREF(obj);
+ return res;
}
WRAP_BINARY(proxy_getitem, PyObject_GetItem)
@@ -624,16 +624,16 @@ proxy_setitem(PyWeakReference *proxy, PyObject *key, PyObject *value)
if (!proxy_checkref(proxy))
return -1;
- PyObject *obj = PyWeakref_GET_OBJECT(proxy);
- Py_INCREF(obj);
- int res;
- if (value == NULL) {
- res = PyObject_DelItem(obj, key);
- } else {
- res = PyObject_SetItem(obj, key, value);
- }
- Py_DECREF(obj);
- return res;
+ PyObject *obj = PyWeakref_GET_OBJECT(proxy);
+ Py_INCREF(obj);
+ int res;
+ if (value == NULL) {
+ res = PyObject_DelItem(obj, key);
+ } else {
+ res = PyObject_SetItem(obj, key, value);
+ }
+ Py_DECREF(obj);
+ return res;
}
/* iterator slots */
@@ -643,11 +643,11 @@ proxy_iter(PyWeakReference *proxy)
{
if (!proxy_checkref(proxy))
return NULL;
- PyObject *obj = PyWeakref_GET_OBJECT(proxy);
- Py_INCREF(obj);
- PyObject* res = PyObject_GetIter(obj);
- Py_DECREF(obj);
- return res;
+ PyObject *obj = PyWeakref_GET_OBJECT(proxy);
+ Py_INCREF(obj);
+ PyObject* res = PyObject_GetIter(obj);
+ Py_DECREF(obj);
+ return res;
}
static PyObject *
@@ -655,28 +655,28 @@ proxy_iternext(PyWeakReference *proxy)
{
if (!proxy_checkref(proxy))
return NULL;
-
- PyObject *obj = PyWeakref_GET_OBJECT(proxy);
- if (!PyIter_Check(obj)) {
- PyErr_Format(PyExc_TypeError,
- "Weakref proxy referenced a non-iterator '%.200s' object",
- Py_TYPE(obj)->tp_name);
- return NULL;
- }
- Py_INCREF(obj);
- PyObject* res = PyIter_Next(obj);
- Py_DECREF(obj);
- return res;
+
+ PyObject *obj = PyWeakref_GET_OBJECT(proxy);
+ if (!PyIter_Check(obj)) {
+ PyErr_Format(PyExc_TypeError,
+ "Weakref proxy referenced a non-iterator '%.200s' object",
+ Py_TYPE(obj)->tp_name);
+ return NULL;
+ }
+ Py_INCREF(obj);
+ PyObject* res = PyIter_Next(obj);
+ Py_DECREF(obj);
+ return res;
}
WRAP_METHOD(proxy_bytes, __bytes__)
-WRAP_METHOD(proxy_reversed, __reversed__)
+WRAP_METHOD(proxy_reversed, __reversed__)
static PyMethodDef proxy_methods[] = {
- {"__bytes__", proxy_bytes, METH_NOARGS},
- {"__reversed__", proxy_reversed, METH_NOARGS},
+ {"__bytes__", proxy_bytes, METH_NOARGS},
+ {"__reversed__", proxy_reversed, METH_NOARGS},
{NULL, NULL}
};
@@ -716,8 +716,8 @@ static PyNumberMethods proxy_as_number = {
proxy_ifloor_div, /*nb_inplace_floor_divide*/
proxy_itrue_div, /*nb_inplace_true_divide*/
proxy_index, /*nb_index*/
- proxy_matmul, /*nb_matrix_multiply*/
- proxy_imatmul, /*nb_inplace_matrix_multiply*/
+ proxy_matmul, /*nb_matrix_multiply*/
+ proxy_imatmul, /*nb_inplace_matrix_multiply*/
};
static PySequenceMethods proxy_as_sequence = {
@@ -746,16 +746,16 @@ _PyWeakref_ProxyType = {
0,
/* methods */
(destructor)proxy_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)proxy_repr, /* tp_repr */
&proxy_as_number, /* tp_as_number */
&proxy_as_sequence, /* tp_as_sequence */
&proxy_as_mapping, /* tp_as_mapping */
-// Notice that tp_hash is intentionally omitted as proxies are "mutable" (when the reference dies).
- 0, /* tp_hash */
+// Notice that tp_hash is intentionally omitted as proxies are "mutable" (when the reference dies).
+ 0, /* tp_hash */
0, /* tp_call */
proxy_str, /* tp_str */
proxy_getattr, /* tp_getattro */
@@ -781,10 +781,10 @@ _PyWeakref_CallableProxyType = {
0,
/* methods */
(destructor)proxy_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(unaryfunc)proxy_repr, /* tp_repr */
&proxy_as_number, /* tp_as_number */
&proxy_as_sequence, /* tp_as_sequence */
@@ -898,12 +898,12 @@ PyWeakref_NewProxy(PyObject *ob, PyObject *callback)
if (result != NULL) {
PyWeakReference *prev;
- if (PyCallable_Check(ob)) {
- Py_SET_TYPE(result, &_PyWeakref_CallableProxyType);
- }
- else {
- Py_SET_TYPE(result, &_PyWeakref_ProxyType);
- }
+ if (PyCallable_Check(ob)) {
+ Py_SET_TYPE(result, &_PyWeakref_CallableProxyType);
+ }
+ else {
+ Py_SET_TYPE(result, &_PyWeakref_ProxyType);
+ }
get_basic_refs(*list, &ref, &proxy);
if (callback == NULL) {
if (proxy != NULL) {
@@ -912,8 +912,8 @@ PyWeakref_NewProxy(PyObject *ob, PyObject *callback)
to avoid violating the invariants of the list
of weakrefs for ob. */
Py_DECREF(result);
- result = proxy;
- Py_INCREF(result);
+ result = proxy;
+ Py_INCREF(result);
goto skip_insert;
}
prev = ref;
@@ -949,7 +949,7 @@ PyWeakref_GetObject(PyObject *ref)
static void
handle_callback(PyWeakReference *ref, PyObject *callback)
{
- PyObject *cbresult = PyObject_CallOneArg(callback, (PyObject *)ref);
+ PyObject *cbresult = PyObject_CallOneArg(callback, (PyObject *)ref);
if (cbresult == NULL)
PyErr_WriteUnraisable(callback);
@@ -970,8 +970,8 @@ PyObject_ClearWeakRefs(PyObject *object)
if (object == NULL
|| !PyType_SUPPORTS_WEAKREFS(Py_TYPE(object))
- || Py_REFCNT(object) != 0)
- {
+ || Py_REFCNT(object) != 0)
+ {
PyErr_BadInternalCall();
return;
}
@@ -994,9 +994,9 @@ PyObject_ClearWeakRefs(PyObject *object)
current->wr_callback = NULL;
clear_weakref(current);
if (callback != NULL) {
- if (Py_REFCNT((PyObject *)current) > 0) {
+ if (Py_REFCNT((PyObject *)current) > 0) {
handle_callback(current, callback);
- }
+ }
Py_DECREF(callback);
}
}
@@ -1013,7 +1013,7 @@ PyObject_ClearWeakRefs(PyObject *object)
for (i = 0; i < count; ++i) {
PyWeakReference *next = current->wr_next;
- if (Py_REFCNT((PyObject *)current) > 0) {
+ if (Py_REFCNT((PyObject *)current) > 0) {
Py_INCREF(current);
PyTuple_SET_ITEM(tuple, i * 2, (PyObject *) current);
PyTuple_SET_ITEM(tuple, i * 2 + 1, current->wr_callback);
diff --git a/contrib/tools/python3/src/PC/clinic/msvcrtmodule.c.h b/contrib/tools/python3/src/PC/clinic/msvcrtmodule.c.h
index 1d6fc686dc..180c3e5fc5 100644
--- a/contrib/tools/python3/src/PC/clinic/msvcrtmodule.c.h
+++ b/contrib/tools/python3/src/PC/clinic/msvcrtmodule.c.h
@@ -37,7 +37,7 @@ PyDoc_STRVAR(msvcrt_locking__doc__,
"individually.");
#define MSVCRT_LOCKING_METHODDEF \
- {"locking", (PyCFunction)(void(*)(void))msvcrt_locking, METH_FASTCALL, msvcrt_locking__doc__},
+ {"locking", (PyCFunction)(void(*)(void))msvcrt_locking, METH_FASTCALL, msvcrt_locking__doc__},
static PyObject *
msvcrt_locking_impl(PyObject *module, int fd, int mode, long nbytes);
@@ -50,36 +50,36 @@ msvcrt_locking(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int mode;
long nbytes;
- if (!_PyArg_CheckPositional("locking", nargs, 3, 3)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- nbytes = PyLong_AsLong(args[2]);
- if (nbytes == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("locking", nargs, 3, 3)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ nbytes = PyLong_AsLong(args[2]);
+ if (nbytes == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
return_value = msvcrt_locking_impl(module, fd, mode, nbytes);
exit:
@@ -98,7 +98,7 @@ PyDoc_STRVAR(msvcrt_setmode__doc__,
"Return value is the previous mode.");
#define MSVCRT_SETMODE_METHODDEF \
- {"setmode", (PyCFunction)(void(*)(void))msvcrt_setmode, METH_FASTCALL, msvcrt_setmode__doc__},
+ {"setmode", (PyCFunction)(void(*)(void))msvcrt_setmode, METH_FASTCALL, msvcrt_setmode__doc__},
static long
msvcrt_setmode_impl(PyObject *module, int fd, int flags);
@@ -111,27 +111,27 @@ msvcrt_setmode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
int flags;
long _return_value;
- if (!_PyArg_CheckPositional("setmode", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- fd = _PyLong_AsInt(args[0]);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[1]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("setmode", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(args[0]);
+ if (fd == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[1]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
_return_value = msvcrt_setmode_impl(module, fd, flags);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -153,7 +153,7 @@ PyDoc_STRVAR(msvcrt_open_osfhandle__doc__,
"to os.fdopen() to create a file object.");
#define MSVCRT_OPEN_OSFHANDLE_METHODDEF \
- {"open_osfhandle", (PyCFunction)(void(*)(void))msvcrt_open_osfhandle, METH_FASTCALL, msvcrt_open_osfhandle__doc__},
+ {"open_osfhandle", (PyCFunction)(void(*)(void))msvcrt_open_osfhandle, METH_FASTCALL, msvcrt_open_osfhandle__doc__},
static long
msvcrt_open_osfhandle_impl(PyObject *module, void *handle, int flags);
@@ -201,15 +201,15 @@ msvcrt_get_osfhandle(PyObject *module, PyObject *arg)
int fd;
void *_return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ fd = _PyLong_AsInt(arg);
+ if (fd == -1 && PyErr_Occurred()) {
goto exit;
}
- fd = _PyLong_AsInt(arg);
- if (fd == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = msvcrt_get_osfhandle_impl(module, fd);
if ((_return_value == NULL || _return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) {
goto exit;
@@ -368,14 +368,14 @@ msvcrt_putch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
char char_value;
- if (PyBytes_Check(arg) && PyBytes_GET_SIZE(arg) == 1) {
- char_value = PyBytes_AS_STRING(arg)[0];
- }
- else if (PyByteArray_Check(arg) && PyByteArray_GET_SIZE(arg) == 1) {
- char_value = PyByteArray_AS_STRING(arg)[0];
- }
- else {
- _PyArg_BadArgument("putch", "argument", "a byte string of length 1", arg);
+ if (PyBytes_Check(arg) && PyBytes_GET_SIZE(arg) == 1) {
+ char_value = PyBytes_AS_STRING(arg)[0];
+ }
+ else if (PyByteArray_Check(arg) && PyByteArray_GET_SIZE(arg) == 1) {
+ char_value = PyByteArray_AS_STRING(arg)[0];
+ }
+ else {
+ _PyArg_BadArgument("putch", "argument", "a byte string of length 1", arg);
goto exit;
}
return_value = msvcrt_putch_impl(module, char_value);
@@ -402,18 +402,18 @@ msvcrt_putwch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int unicode_char;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("putwch", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("putwch", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg)) {
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("putwch", "argument", "a unicode character", arg);
- goto exit;
- }
- unicode_char = PyUnicode_READ_CHAR(arg, 0);
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("putwch", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ unicode_char = PyUnicode_READ_CHAR(arg, 0);
return_value = msvcrt_putwch_impl(module, unicode_char);
exit:
@@ -442,14 +442,14 @@ msvcrt_ungetch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
char char_value;
- if (PyBytes_Check(arg) && PyBytes_GET_SIZE(arg) == 1) {
- char_value = PyBytes_AS_STRING(arg)[0];
- }
- else if (PyByteArray_Check(arg) && PyByteArray_GET_SIZE(arg) == 1) {
- char_value = PyByteArray_AS_STRING(arg)[0];
- }
- else {
- _PyArg_BadArgument("ungetch", "argument", "a byte string of length 1", arg);
+ if (PyBytes_Check(arg) && PyBytes_GET_SIZE(arg) == 1) {
+ char_value = PyBytes_AS_STRING(arg)[0];
+ }
+ else if (PyByteArray_Check(arg) && PyByteArray_GET_SIZE(arg) == 1) {
+ char_value = PyByteArray_AS_STRING(arg)[0];
+ }
+ else {
+ _PyArg_BadArgument("ungetch", "argument", "a byte string of length 1", arg);
goto exit;
}
return_value = msvcrt_ungetch_impl(module, char_value);
@@ -476,18 +476,18 @@ msvcrt_ungetwch(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int unicode_char;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("ungetwch", "argument", "a unicode character", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("ungetwch", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg)) {
goto exit;
}
- if (PyUnicode_READY(arg)) {
- goto exit;
- }
- if (PyUnicode_GET_LENGTH(arg) != 1) {
- _PyArg_BadArgument("ungetwch", "argument", "a unicode character", arg);
- goto exit;
- }
- unicode_char = PyUnicode_READ_CHAR(arg, 0);
+ if (PyUnicode_GET_LENGTH(arg) != 1) {
+ _PyArg_BadArgument("ungetwch", "argument", "a unicode character", arg);
+ goto exit;
+ }
+ unicode_char = PyUnicode_READ_CHAR(arg, 0);
return_value = msvcrt_ungetwch_impl(module, unicode_char);
exit:
@@ -505,7 +505,7 @@ PyDoc_STRVAR(msvcrt_CrtSetReportFile__doc__,
"Only available on Debug builds.");
#define MSVCRT_CRTSETREPORTFILE_METHODDEF \
- {"CrtSetReportFile", (PyCFunction)(void(*)(void))msvcrt_CrtSetReportFile, METH_FASTCALL, msvcrt_CrtSetReportFile__doc__},
+ {"CrtSetReportFile", (PyCFunction)(void(*)(void))msvcrt_CrtSetReportFile, METH_FASTCALL, msvcrt_CrtSetReportFile__doc__},
static void *
msvcrt_CrtSetReportFile_impl(PyObject *module, int type, void *file);
@@ -545,7 +545,7 @@ PyDoc_STRVAR(msvcrt_CrtSetReportMode__doc__,
"Only available on Debug builds.");
#define MSVCRT_CRTSETREPORTMODE_METHODDEF \
- {"CrtSetReportMode", (PyCFunction)(void(*)(void))msvcrt_CrtSetReportMode, METH_FASTCALL, msvcrt_CrtSetReportMode__doc__},
+ {"CrtSetReportMode", (PyCFunction)(void(*)(void))msvcrt_CrtSetReportMode, METH_FASTCALL, msvcrt_CrtSetReportMode__doc__},
static long
msvcrt_CrtSetReportMode_impl(PyObject *module, int type, int mode);
@@ -558,27 +558,27 @@ msvcrt_CrtSetReportMode(PyObject *module, PyObject *const *args, Py_ssize_t narg
int mode;
long _return_value;
- if (!_PyArg_CheckPositional("CrtSetReportMode", nargs, 2, 2)) {
- goto exit;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- type = _PyLong_AsInt(args[0]);
- if (type == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- mode = _PyLong_AsInt(args[1]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
+ if (!_PyArg_CheckPositional("CrtSetReportMode", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ type = _PyLong_AsInt(args[0]);
+ if (type == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(args[1]);
+ if (mode == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
_return_value = msvcrt_CrtSetReportMode_impl(module, type, mode);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -614,15 +614,15 @@ msvcrt_set_error_mode(PyObject *module, PyObject *arg)
int mode;
long _return_value;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = _PyLong_AsInt(arg);
+ if (mode == -1 && PyErr_Occurred()) {
goto exit;
}
- mode = _PyLong_AsInt(arg);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
_return_value = msvcrt_set_error_mode_impl(module, mode);
if ((_return_value == -1) && PyErr_Occurred()) {
goto exit;
@@ -653,15 +653,15 @@ msvcrt_SetErrorMode(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
unsigned int mode;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ mode = (unsigned int)PyLong_AsUnsignedLongMask(arg);
+ if (mode == (unsigned int)-1 && PyErr_Occurred()) {
goto exit;
}
- mode = (unsigned int)PyLong_AsUnsignedLongMask(arg);
- if (mode == (unsigned int)-1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = msvcrt_SetErrorMode_impl(module, mode);
exit:
@@ -679,4 +679,4 @@ exit:
#ifndef MSVCRT_SET_ERROR_MODE_METHODDEF
#define MSVCRT_SET_ERROR_MODE_METHODDEF
#endif /* !defined(MSVCRT_SET_ERROR_MODE_METHODDEF) */
-/*[clinic end generated code: output=7cc6ffaf64f268f7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7cc6ffaf64f268f7 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/PC/clinic/winreg.c.h b/contrib/tools/python3/src/PC/clinic/winreg.c.h
index 8fab1540a1..b7af1855ac 100644
--- a/contrib/tools/python3/src/PC/clinic/winreg.c.h
+++ b/contrib/tools/python3/src/PC/clinic/winreg.c.h
@@ -77,7 +77,7 @@ PyDoc_STRVAR(winreg_HKEYType___exit____doc__,
"\n");
#define WINREG_HKEYTYPE___EXIT___METHODDEF \
- {"__exit__", (PyCFunction)(void(*)(void))winreg_HKEYType___exit__, METH_FASTCALL|METH_KEYWORDS, winreg_HKEYType___exit____doc__},
+ {"__exit__", (PyCFunction)(void(*)(void))winreg_HKEYType___exit__, METH_FASTCALL|METH_KEYWORDS, winreg_HKEYType___exit____doc__},
static PyObject *
winreg_HKEYType___exit___impl(PyHKEYObject *self, PyObject *exc_type,
@@ -88,19 +88,19 @@ winreg_HKEYType___exit__(PyHKEYObject *self, PyObject *const *args, Py_ssize_t n
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"exc_type", "exc_value", "traceback", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "__exit__", 0};
- PyObject *argsbuf[3];
+ static _PyArg_Parser _parser = {NULL, _keywords, "__exit__", 0};
+ PyObject *argsbuf[3];
PyObject *exc_type;
PyObject *exc_value;
PyObject *traceback;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- exc_type = args[0];
- exc_value = args[1];
- traceback = args[2];
+ exc_type = args[0];
+ exc_value = args[1];
+ traceback = args[2];
return_value = winreg_HKEYType___exit___impl(self, exc_type, exc_value, traceback);
exit:
@@ -138,7 +138,7 @@ PyDoc_STRVAR(winreg_ConnectRegistry__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_CONNECTREGISTRY_METHODDEF \
- {"ConnectRegistry", (PyCFunction)(void(*)(void))winreg_ConnectRegistry, METH_FASTCALL, winreg_ConnectRegistry__doc__},
+ {"ConnectRegistry", (PyCFunction)(void(*)(void))winreg_ConnectRegistry, METH_FASTCALL, winreg_ConnectRegistry__doc__},
static HKEY
winreg_ConnectRegistry_impl(PyObject *module,
@@ -186,7 +186,7 @@ PyDoc_STRVAR(winreg_CreateKey__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_CREATEKEY_METHODDEF \
- {"CreateKey", (PyCFunction)(void(*)(void))winreg_CreateKey, METH_FASTCALL, winreg_CreateKey__doc__},
+ {"CreateKey", (PyCFunction)(void(*)(void))winreg_CreateKey, METH_FASTCALL, winreg_CreateKey__doc__},
static HKEY
winreg_CreateKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key);
@@ -239,7 +239,7 @@ PyDoc_STRVAR(winreg_CreateKeyEx__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_CREATEKEYEX_METHODDEF \
- {"CreateKeyEx", (PyCFunction)(void(*)(void))winreg_CreateKeyEx, METH_FASTCALL|METH_KEYWORDS, winreg_CreateKeyEx__doc__},
+ {"CreateKeyEx", (PyCFunction)(void(*)(void))winreg_CreateKeyEx, METH_FASTCALL|METH_KEYWORDS, winreg_CreateKeyEx__doc__},
static HKEY
winreg_CreateKeyEx_impl(PyObject *module, HKEY key,
@@ -291,7 +291,7 @@ PyDoc_STRVAR(winreg_DeleteKey__doc__,
"is removed. If the function fails, an OSError exception is raised.");
#define WINREG_DELETEKEY_METHODDEF \
- {"DeleteKey", (PyCFunction)(void(*)(void))winreg_DeleteKey, METH_FASTCALL, winreg_DeleteKey__doc__},
+ {"DeleteKey", (PyCFunction)(void(*)(void))winreg_DeleteKey, METH_FASTCALL, winreg_DeleteKey__doc__},
static PyObject *
winreg_DeleteKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key);
@@ -339,7 +339,7 @@ PyDoc_STRVAR(winreg_DeleteKeyEx__doc__,
"On unsupported Windows versions, NotImplementedError is raised.");
#define WINREG_DELETEKEYEX_METHODDEF \
- {"DeleteKeyEx", (PyCFunction)(void(*)(void))winreg_DeleteKeyEx, METH_FASTCALL|METH_KEYWORDS, winreg_DeleteKeyEx__doc__},
+ {"DeleteKeyEx", (PyCFunction)(void(*)(void))winreg_DeleteKeyEx, METH_FASTCALL|METH_KEYWORDS, winreg_DeleteKeyEx__doc__},
static PyObject *
winreg_DeleteKeyEx_impl(PyObject *module, HKEY key,
@@ -379,7 +379,7 @@ PyDoc_STRVAR(winreg_DeleteValue__doc__,
" A string that identifies the value to remove.");
#define WINREG_DELETEVALUE_METHODDEF \
- {"DeleteValue", (PyCFunction)(void(*)(void))winreg_DeleteValue, METH_FASTCALL, winreg_DeleteValue__doc__},
+ {"DeleteValue", (PyCFunction)(void(*)(void))winreg_DeleteValue, METH_FASTCALL, winreg_DeleteValue__doc__},
static PyObject *
winreg_DeleteValue_impl(PyObject *module, HKEY key, const Py_UNICODE *value);
@@ -417,7 +417,7 @@ PyDoc_STRVAR(winreg_EnumKey__doc__,
"raised, indicating no more values are available.");
#define WINREG_ENUMKEY_METHODDEF \
- {"EnumKey", (PyCFunction)(void(*)(void))winreg_EnumKey, METH_FASTCALL, winreg_EnumKey__doc__},
+ {"EnumKey", (PyCFunction)(void(*)(void))winreg_EnumKey, METH_FASTCALL, winreg_EnumKey__doc__},
static PyObject *
winreg_EnumKey_impl(PyObject *module, HKEY key, int index);
@@ -429,21 +429,21 @@ winreg_EnumKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
HKEY key;
int index;
- if (!_PyArg_CheckPositional("EnumKey", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("EnumKey", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!clinic_HKEY_converter(args[0], &key)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ index = _PyLong_AsInt(args[1]);
+ if (index == -1 && PyErr_Occurred()) {
goto exit;
}
- if (!clinic_HKEY_converter(args[0], &key)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- index = _PyLong_AsInt(args[1]);
- if (index == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = winreg_EnumKey_impl(module, key, index);
exit:
@@ -475,7 +475,7 @@ PyDoc_STRVAR(winreg_EnumValue__doc__,
" An integer that identifies the type of the value data.");
#define WINREG_ENUMVALUE_METHODDEF \
- {"EnumValue", (PyCFunction)(void(*)(void))winreg_EnumValue, METH_FASTCALL, winreg_EnumValue__doc__},
+ {"EnumValue", (PyCFunction)(void(*)(void))winreg_EnumValue, METH_FASTCALL, winreg_EnumValue__doc__},
static PyObject *
winreg_EnumValue_impl(PyObject *module, HKEY key, int index);
@@ -487,21 +487,21 @@ winreg_EnumValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
HKEY key;
int index;
- if (!_PyArg_CheckPositional("EnumValue", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("EnumValue", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (!clinic_HKEY_converter(args[0], &key)) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ index = _PyLong_AsInt(args[1]);
+ if (index == -1 && PyErr_Occurred()) {
goto exit;
}
- if (!clinic_HKEY_converter(args[0], &key)) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- index = _PyLong_AsInt(args[1]);
- if (index == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = winreg_EnumValue_impl(module, key, index);
exit:
@@ -567,7 +567,7 @@ winreg_FlushKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!clinic_HKEY_converter(arg, &key)) {
+ if (!clinic_HKEY_converter(arg, &key)) {
goto exit;
}
return_value = winreg_FlushKey_impl(module, key);
@@ -605,7 +605,7 @@ PyDoc_STRVAR(winreg_LoadKey__doc__,
"tree.");
#define WINREG_LOADKEY_METHODDEF \
- {"LoadKey", (PyCFunction)(void(*)(void))winreg_LoadKey, METH_FASTCALL, winreg_LoadKey__doc__},
+ {"LoadKey", (PyCFunction)(void(*)(void))winreg_LoadKey, METH_FASTCALL, winreg_LoadKey__doc__},
static PyObject *
winreg_LoadKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
@@ -649,7 +649,7 @@ PyDoc_STRVAR(winreg_OpenKey__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_OPENKEY_METHODDEF \
- {"OpenKey", (PyCFunction)(void(*)(void))winreg_OpenKey, METH_FASTCALL|METH_KEYWORDS, winreg_OpenKey__doc__},
+ {"OpenKey", (PyCFunction)(void(*)(void))winreg_OpenKey, METH_FASTCALL|METH_KEYWORDS, winreg_OpenKey__doc__},
static HKEY
winreg_OpenKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
@@ -701,7 +701,7 @@ PyDoc_STRVAR(winreg_OpenKeyEx__doc__,
"If the function fails, an OSError exception is raised.");
#define WINREG_OPENKEYEX_METHODDEF \
- {"OpenKeyEx", (PyCFunction)(void(*)(void))winreg_OpenKeyEx, METH_FASTCALL|METH_KEYWORDS, winreg_OpenKeyEx__doc__},
+ {"OpenKeyEx", (PyCFunction)(void(*)(void))winreg_OpenKeyEx, METH_FASTCALL|METH_KEYWORDS, winreg_OpenKeyEx__doc__},
static HKEY
winreg_OpenKeyEx_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
@@ -760,7 +760,7 @@ winreg_QueryInfoKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!clinic_HKEY_converter(arg, &key)) {
+ if (!clinic_HKEY_converter(arg, &key)) {
goto exit;
}
return_value = winreg_QueryInfoKey_impl(module, key);
@@ -790,7 +790,7 @@ PyDoc_STRVAR(winreg_QueryValue__doc__,
"completeness.");
#define WINREG_QUERYVALUE_METHODDEF \
- {"QueryValue", (PyCFunction)(void(*)(void))winreg_QueryValue, METH_FASTCALL, winreg_QueryValue__doc__},
+ {"QueryValue", (PyCFunction)(void(*)(void))winreg_QueryValue, METH_FASTCALL, winreg_QueryValue__doc__},
static PyObject *
winreg_QueryValue_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key);
@@ -829,7 +829,7 @@ PyDoc_STRVAR(winreg_QueryValueEx__doc__,
"The return value is a tuple of the value and the type_id.");
#define WINREG_QUERYVALUEEX_METHODDEF \
- {"QueryValueEx", (PyCFunction)(void(*)(void))winreg_QueryValueEx, METH_FASTCALL, winreg_QueryValueEx__doc__},
+ {"QueryValueEx", (PyCFunction)(void(*)(void))winreg_QueryValueEx, METH_FASTCALL, winreg_QueryValueEx__doc__},
static PyObject *
winreg_QueryValueEx_impl(PyObject *module, HKEY key, const Py_UNICODE *name);
@@ -873,7 +873,7 @@ PyDoc_STRVAR(winreg_SaveKey__doc__,
"to the API.");
#define WINREG_SAVEKEY_METHODDEF \
- {"SaveKey", (PyCFunction)(void(*)(void))winreg_SaveKey, METH_FASTCALL, winreg_SaveKey__doc__},
+ {"SaveKey", (PyCFunction)(void(*)(void))winreg_SaveKey, METH_FASTCALL, winreg_SaveKey__doc__},
static PyObject *
winreg_SaveKey_impl(PyObject *module, HKEY key, const Py_UNICODE *file_name);
@@ -922,7 +922,7 @@ PyDoc_STRVAR(winreg_SetValue__doc__,
"KEY_SET_VALUE access.");
#define WINREG_SETVALUE_METHODDEF \
- {"SetValue", (PyCFunction)(void(*)(void))winreg_SetValue, METH_FASTCALL, winreg_SetValue__doc__},
+ {"SetValue", (PyCFunction)(void(*)(void))winreg_SetValue, METH_FASTCALL, winreg_SetValue__doc__},
static PyObject *
winreg_SetValue_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
@@ -993,7 +993,7 @@ PyDoc_STRVAR(winreg_SetValueEx__doc__,
"the configuration registry to help the registry perform efficiently.");
#define WINREG_SETVALUEEX_METHODDEF \
- {"SetValueEx", (PyCFunction)(void(*)(void))winreg_SetValueEx, METH_FASTCALL, winreg_SetValueEx__doc__},
+ {"SetValueEx", (PyCFunction)(void(*)(void))winreg_SetValueEx, METH_FASTCALL, winreg_SetValueEx__doc__},
static PyObject *
winreg_SetValueEx_impl(PyObject *module, HKEY key,
@@ -1029,7 +1029,7 @@ PyDoc_STRVAR(winreg_DisableReflectionKey__doc__,
" key\n"
" An already open key, or any one of the predefined HKEY_* constants.\n"
"\n"
-"Will generally raise NotImplementedError if executed on a 32bit OS.\n"
+"Will generally raise NotImplementedError if executed on a 32bit OS.\n"
"\n"
"If the key is not on the reflection list, the function succeeds but has\n"
"no effect. Disabling reflection for a key does not affect reflection\n"
@@ -1047,7 +1047,7 @@ winreg_DisableReflectionKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!clinic_HKEY_converter(arg, &key)) {
+ if (!clinic_HKEY_converter(arg, &key)) {
goto exit;
}
return_value = winreg_DisableReflectionKey_impl(module, key);
@@ -1065,7 +1065,7 @@ PyDoc_STRVAR(winreg_EnableReflectionKey__doc__,
" key\n"
" An already open key, or any one of the predefined HKEY_* constants.\n"
"\n"
-"Will generally raise NotImplementedError if executed on a 32bit OS.\n"
+"Will generally raise NotImplementedError if executed on a 32bit OS.\n"
"Restoring reflection for a key does not affect reflection of any\n"
"subkeys.");
@@ -1081,7 +1081,7 @@ winreg_EnableReflectionKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!clinic_HKEY_converter(arg, &key)) {
+ if (!clinic_HKEY_converter(arg, &key)) {
goto exit;
}
return_value = winreg_EnableReflectionKey_impl(module, key);
@@ -1099,7 +1099,7 @@ PyDoc_STRVAR(winreg_QueryReflectionKey__doc__,
" key\n"
" An already open key, or any one of the predefined HKEY_* constants.\n"
"\n"
-"Will generally raise NotImplementedError if executed on a 32bit OS.");
+"Will generally raise NotImplementedError if executed on a 32bit OS.");
#define WINREG_QUERYREFLECTIONKEY_METHODDEF \
{"QueryReflectionKey", (PyCFunction)winreg_QueryReflectionKey, METH_O, winreg_QueryReflectionKey__doc__},
@@ -1113,7 +1113,7 @@ winreg_QueryReflectionKey(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
HKEY key;
- if (!clinic_HKEY_converter(arg, &key)) {
+ if (!clinic_HKEY_converter(arg, &key)) {
goto exit;
}
return_value = winreg_QueryReflectionKey_impl(module, key);
@@ -1121,4 +1121,4 @@ winreg_QueryReflectionKey(PyObject *module, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=015afbbd690eb59d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=015afbbd690eb59d input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/PC/clinic/winsound.c.h b/contrib/tools/python3/src/PC/clinic/winsound.c.h
index 00e9edf4d1..b37db4c6cb 100644
--- a/contrib/tools/python3/src/PC/clinic/winsound.c.h
+++ b/contrib/tools/python3/src/PC/clinic/winsound.c.h
@@ -14,7 +14,7 @@ PyDoc_STRVAR(winsound_PlaySound__doc__,
" Flag values, ored together. See module documentation.");
#define WINSOUND_PLAYSOUND_METHODDEF \
- {"PlaySound", (PyCFunction)(void(*)(void))winsound_PlaySound, METH_FASTCALL|METH_KEYWORDS, winsound_PlaySound__doc__},
+ {"PlaySound", (PyCFunction)(void(*)(void))winsound_PlaySound, METH_FASTCALL|METH_KEYWORDS, winsound_PlaySound__doc__},
static PyObject *
winsound_PlaySound_impl(PyObject *module, PyObject *sound, int flags);
@@ -24,25 +24,25 @@ winsound_PlaySound(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"sound", "flags", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "PlaySound", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "PlaySound", 0};
+ PyObject *argsbuf[2];
PyObject *sound;
int flags;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ sound = args[0];
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[1]);
+ if (flags == -1 && PyErr_Occurred()) {
goto exit;
}
- sound = args[0];
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[1]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = winsound_PlaySound_impl(module, sound, flags);
exit:
@@ -62,7 +62,7 @@ PyDoc_STRVAR(winsound_Beep__doc__,
" How long the sound should play, in milliseconds.");
#define WINSOUND_BEEP_METHODDEF \
- {"Beep", (PyCFunction)(void(*)(void))winsound_Beep, METH_FASTCALL|METH_KEYWORDS, winsound_Beep__doc__},
+ {"Beep", (PyCFunction)(void(*)(void))winsound_Beep, METH_FASTCALL|METH_KEYWORDS, winsound_Beep__doc__},
static PyObject *
winsound_Beep_impl(PyObject *module, int frequency, int duration);
@@ -72,33 +72,33 @@ winsound_Beep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"frequency", "duration", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "Beep", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "Beep", 0};
+ PyObject *argsbuf[2];
int frequency;
int duration;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ frequency = _PyLong_AsInt(args[0]);
+ if (frequency == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ duration = _PyLong_AsInt(args[1]);
+ if (duration == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- frequency = _PyLong_AsInt(args[0]);
- if (frequency == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- duration = _PyLong_AsInt(args[1]);
- if (duration == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = winsound_Beep_impl(module, frequency, duration);
exit:
@@ -114,7 +114,7 @@ PyDoc_STRVAR(winsound_MessageBeep__doc__,
"x defaults to MB_OK.");
#define WINSOUND_MESSAGEBEEP_METHODDEF \
- {"MessageBeep", (PyCFunction)(void(*)(void))winsound_MessageBeep, METH_FASTCALL|METH_KEYWORDS, winsound_MessageBeep__doc__},
+ {"MessageBeep", (PyCFunction)(void(*)(void))winsound_MessageBeep, METH_FASTCALL|METH_KEYWORDS, winsound_MessageBeep__doc__},
static PyObject *
winsound_MessageBeep_impl(PyObject *module, int type);
@@ -124,31 +124,31 @@ winsound_MessageBeep(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"type", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "MessageBeep", 0};
- PyObject *argsbuf[1];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
+ static _PyArg_Parser _parser = {NULL, _keywords, "MessageBeep", 0};
+ PyObject *argsbuf[1];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
int type = MB_OK;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ type = _PyLong_AsInt(args[0]);
+ if (type == -1 && PyErr_Occurred()) {
goto exit;
}
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- type = _PyLong_AsInt(args[0]);
- if (type == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_pos:
+skip_optional_pos:
return_value = winsound_MessageBeep_impl(module, type);
exit:
return return_value;
}
-/*[clinic end generated code: output=28d1cd033282723d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=28d1cd033282723d input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/PC/dl_nt.c b/contrib/tools/python3/src/PC/dl_nt.c
index 89feef0223..7f17ee1687 100644
--- a/contrib/tools/python3/src/PC/dl_nt.c
+++ b/contrib/tools/python3/src/PC/dl_nt.c
@@ -15,7 +15,7 @@ forgotten) from the programmer.
// Python Globals
HMODULE PyWin_DLLhModule = NULL;
-const char *PyWin_DLLVersionString = MS_DLL_ID;
+const char *PyWin_DLLVersionString = MS_DLL_ID;
BOOL WINAPI DllMain (HANDLE hInst,
ULONG ul_reason_for_call,
diff --git a/contrib/tools/python3/src/PC/errmap.h b/contrib/tools/python3/src/PC/errmap.h
index 420934b2b1..a7489ab75c 100644
--- a/contrib/tools/python3/src/PC/errmap.h
+++ b/contrib/tools/python3/src/PC/errmap.h
@@ -1,140 +1,140 @@
-int
-winerror_to_errno(int winerror)
+int
+winerror_to_errno(int winerror)
{
- // Unwrap FACILITY_WIN32 HRESULT errors.
- if ((winerror & 0xFFFF0000) == 0x80070000) {
- winerror &= 0x0000FFFF;
+ // Unwrap FACILITY_WIN32 HRESULT errors.
+ if ((winerror & 0xFFFF0000) == 0x80070000) {
+ winerror &= 0x0000FFFF;
+ }
+
+ // Winsock error codes (10000-11999) are errno values.
+ if (winerror >= 10000 && winerror < 12000) {
+ switch (winerror) {
+ case WSAEINTR:
+ case WSAEBADF:
+ case WSAEACCES:
+ case WSAEFAULT:
+ case WSAEINVAL:
+ case WSAEMFILE:
+ // Winsock definitions of errno values. See WinSock2.h
+ return winerror - 10000;
+ default:
+ return winerror;
+ }
+ }
+
+ switch (winerror) {
+ case ERROR_FILE_NOT_FOUND: // 2
+ case ERROR_PATH_NOT_FOUND: // 3
+ case ERROR_INVALID_DRIVE: // 15
+ case ERROR_NO_MORE_FILES: // 18
+ case ERROR_BAD_NETPATH: // 53
+ case ERROR_BAD_NET_NAME: // 67
+ case ERROR_BAD_PATHNAME: // 161
+ case ERROR_FILENAME_EXCED_RANGE: // 206
+ return ENOENT;
+
+ case ERROR_BAD_ENVIRONMENT: // 10
+ return E2BIG;
+
+ case ERROR_BAD_FORMAT: // 11
+ case ERROR_INVALID_STARTING_CODESEG: // 188
+ case ERROR_INVALID_STACKSEG: // 189
+ case ERROR_INVALID_MODULETYPE: // 190
+ case ERROR_INVALID_EXE_SIGNATURE: // 191
+ case ERROR_EXE_MARKED_INVALID: // 192
+ case ERROR_BAD_EXE_FORMAT: // 193
+ case ERROR_ITERATED_DATA_EXCEEDS_64k: // 194
+ case ERROR_INVALID_MINALLOCSIZE: // 195
+ case ERROR_DYNLINK_FROM_INVALID_RING: // 196
+ case ERROR_IOPL_NOT_ENABLED: // 197
+ case ERROR_INVALID_SEGDPL: // 198
+ case ERROR_AUTODATASEG_EXCEEDS_64k: // 199
+ case ERROR_RING2SEG_MUST_BE_MOVABLE: // 200
+ case ERROR_RELOC_CHAIN_XEEDS_SEGLIM: // 201
+ case ERROR_INFLOOP_IN_RELOC_CHAIN: // 202
+ return ENOEXEC;
+
+ case ERROR_INVALID_HANDLE: // 6
+ case ERROR_INVALID_TARGET_HANDLE: // 114
+ case ERROR_DIRECT_ACCESS_HANDLE: // 130
+ return EBADF;
+
+ case ERROR_WAIT_NO_CHILDREN: // 128
+ case ERROR_CHILD_NOT_COMPLETE: // 129
+ return ECHILD;
+
+ case ERROR_NO_PROC_SLOTS: // 89
+ case ERROR_MAX_THRDS_REACHED: // 164
+ case ERROR_NESTING_NOT_ALLOWED: // 215
+ return EAGAIN;
+
+ case ERROR_ARENA_TRASHED: // 7
+ case ERROR_NOT_ENOUGH_MEMORY: // 8
+ case ERROR_INVALID_BLOCK: // 9
+ case ERROR_NOT_ENOUGH_QUOTA: // 1816
+ return ENOMEM;
+
+ case ERROR_ACCESS_DENIED: // 5
+ case ERROR_CURRENT_DIRECTORY: // 16
+ case ERROR_WRITE_PROTECT: // 19
+ case ERROR_BAD_UNIT: // 20
+ case ERROR_NOT_READY: // 21
+ case ERROR_BAD_COMMAND: // 22
+ case ERROR_CRC: // 23
+ case ERROR_BAD_LENGTH: // 24
+ case ERROR_SEEK: // 25
+ case ERROR_NOT_DOS_DISK: // 26
+ case ERROR_SECTOR_NOT_FOUND: // 27
+ case ERROR_OUT_OF_PAPER: // 28
+ case ERROR_WRITE_FAULT: // 29
+ case ERROR_READ_FAULT: // 30
+ case ERROR_GEN_FAILURE: // 31
+ case ERROR_SHARING_VIOLATION: // 32
+ case ERROR_LOCK_VIOLATION: // 33
+ case ERROR_WRONG_DISK: // 34
+ case ERROR_SHARING_BUFFER_EXCEEDED: // 36
+ case ERROR_NETWORK_ACCESS_DENIED: // 65
+ case ERROR_CANNOT_MAKE: // 82
+ case ERROR_FAIL_I24: // 83
+ case ERROR_DRIVE_LOCKED: // 108
+ case ERROR_SEEK_ON_DEVICE: // 132
+ case ERROR_NOT_LOCKED: // 158
+ case ERROR_LOCK_FAILED: // 167
+ case 35: // 35 (undefined)
+ return EACCES;
+
+ case ERROR_FILE_EXISTS: // 80
+ case ERROR_ALREADY_EXISTS: // 183
+ return EEXIST;
+
+ case ERROR_NOT_SAME_DEVICE: // 17
+ return EXDEV;
+
+ case ERROR_DIRECTORY: // 267 (bpo-12802)
+ return ENOTDIR;
+
+ case ERROR_TOO_MANY_OPEN_FILES: // 4
+ return EMFILE;
+
+ case ERROR_DISK_FULL: // 112
+ return ENOSPC;
+
+ case ERROR_BROKEN_PIPE: // 109
+ case ERROR_NO_DATA: // 232 (bpo-13063)
+ return EPIPE;
+
+ case ERROR_DIR_NOT_EMPTY: // 145
+ return ENOTEMPTY;
+
+ case ERROR_NO_UNICODE_TRANSLATION: // 1113
+ return EILSEQ;
+
+ case ERROR_INVALID_FUNCTION: // 1
+ case ERROR_INVALID_ACCESS: // 12
+ case ERROR_INVALID_DATA: // 13
+ case ERROR_INVALID_PARAMETER: // 87
+ case ERROR_NEGATIVE_SEEK: // 131
+ default:
+ return EINVAL;
}
-
- // Winsock error codes (10000-11999) are errno values.
- if (winerror >= 10000 && winerror < 12000) {
- switch (winerror) {
- case WSAEINTR:
- case WSAEBADF:
- case WSAEACCES:
- case WSAEFAULT:
- case WSAEINVAL:
- case WSAEMFILE:
- // Winsock definitions of errno values. See WinSock2.h
- return winerror - 10000;
- default:
- return winerror;
- }
- }
-
- switch (winerror) {
- case ERROR_FILE_NOT_FOUND: // 2
- case ERROR_PATH_NOT_FOUND: // 3
- case ERROR_INVALID_DRIVE: // 15
- case ERROR_NO_MORE_FILES: // 18
- case ERROR_BAD_NETPATH: // 53
- case ERROR_BAD_NET_NAME: // 67
- case ERROR_BAD_PATHNAME: // 161
- case ERROR_FILENAME_EXCED_RANGE: // 206
- return ENOENT;
-
- case ERROR_BAD_ENVIRONMENT: // 10
- return E2BIG;
-
- case ERROR_BAD_FORMAT: // 11
- case ERROR_INVALID_STARTING_CODESEG: // 188
- case ERROR_INVALID_STACKSEG: // 189
- case ERROR_INVALID_MODULETYPE: // 190
- case ERROR_INVALID_EXE_SIGNATURE: // 191
- case ERROR_EXE_MARKED_INVALID: // 192
- case ERROR_BAD_EXE_FORMAT: // 193
- case ERROR_ITERATED_DATA_EXCEEDS_64k: // 194
- case ERROR_INVALID_MINALLOCSIZE: // 195
- case ERROR_DYNLINK_FROM_INVALID_RING: // 196
- case ERROR_IOPL_NOT_ENABLED: // 197
- case ERROR_INVALID_SEGDPL: // 198
- case ERROR_AUTODATASEG_EXCEEDS_64k: // 199
- case ERROR_RING2SEG_MUST_BE_MOVABLE: // 200
- case ERROR_RELOC_CHAIN_XEEDS_SEGLIM: // 201
- case ERROR_INFLOOP_IN_RELOC_CHAIN: // 202
- return ENOEXEC;
-
- case ERROR_INVALID_HANDLE: // 6
- case ERROR_INVALID_TARGET_HANDLE: // 114
- case ERROR_DIRECT_ACCESS_HANDLE: // 130
- return EBADF;
-
- case ERROR_WAIT_NO_CHILDREN: // 128
- case ERROR_CHILD_NOT_COMPLETE: // 129
- return ECHILD;
-
- case ERROR_NO_PROC_SLOTS: // 89
- case ERROR_MAX_THRDS_REACHED: // 164
- case ERROR_NESTING_NOT_ALLOWED: // 215
- return EAGAIN;
-
- case ERROR_ARENA_TRASHED: // 7
- case ERROR_NOT_ENOUGH_MEMORY: // 8
- case ERROR_INVALID_BLOCK: // 9
- case ERROR_NOT_ENOUGH_QUOTA: // 1816
- return ENOMEM;
-
- case ERROR_ACCESS_DENIED: // 5
- case ERROR_CURRENT_DIRECTORY: // 16
- case ERROR_WRITE_PROTECT: // 19
- case ERROR_BAD_UNIT: // 20
- case ERROR_NOT_READY: // 21
- case ERROR_BAD_COMMAND: // 22
- case ERROR_CRC: // 23
- case ERROR_BAD_LENGTH: // 24
- case ERROR_SEEK: // 25
- case ERROR_NOT_DOS_DISK: // 26
- case ERROR_SECTOR_NOT_FOUND: // 27
- case ERROR_OUT_OF_PAPER: // 28
- case ERROR_WRITE_FAULT: // 29
- case ERROR_READ_FAULT: // 30
- case ERROR_GEN_FAILURE: // 31
- case ERROR_SHARING_VIOLATION: // 32
- case ERROR_LOCK_VIOLATION: // 33
- case ERROR_WRONG_DISK: // 34
- case ERROR_SHARING_BUFFER_EXCEEDED: // 36
- case ERROR_NETWORK_ACCESS_DENIED: // 65
- case ERROR_CANNOT_MAKE: // 82
- case ERROR_FAIL_I24: // 83
- case ERROR_DRIVE_LOCKED: // 108
- case ERROR_SEEK_ON_DEVICE: // 132
- case ERROR_NOT_LOCKED: // 158
- case ERROR_LOCK_FAILED: // 167
- case 35: // 35 (undefined)
- return EACCES;
-
- case ERROR_FILE_EXISTS: // 80
- case ERROR_ALREADY_EXISTS: // 183
- return EEXIST;
-
- case ERROR_NOT_SAME_DEVICE: // 17
- return EXDEV;
-
- case ERROR_DIRECTORY: // 267 (bpo-12802)
- return ENOTDIR;
-
- case ERROR_TOO_MANY_OPEN_FILES: // 4
- return EMFILE;
-
- case ERROR_DISK_FULL: // 112
- return ENOSPC;
-
- case ERROR_BROKEN_PIPE: // 109
- case ERROR_NO_DATA: // 232 (bpo-13063)
- return EPIPE;
-
- case ERROR_DIR_NOT_EMPTY: // 145
- return ENOTEMPTY;
-
- case ERROR_NO_UNICODE_TRANSLATION: // 1113
- return EILSEQ;
-
- case ERROR_INVALID_FUNCTION: // 1
- case ERROR_INVALID_ACCESS: // 12
- case ERROR_INVALID_DATA: // 13
- case ERROR_INVALID_PARAMETER: // 87
- case ERROR_NEGATIVE_SEEK: // 131
- default:
- return EINVAL;
- }
}
diff --git a/contrib/tools/python3/src/PC/getpathp.c b/contrib/tools/python3/src/PC/getpathp.c
index a4ee60848e..0e5a0dca33 100644
--- a/contrib/tools/python3/src/PC/getpathp.c
+++ b/contrib/tools/python3/src/PC/getpathp.c
@@ -29,7 +29,7 @@
- If we DO have a Python Home: The relevant sub-directories (Lib,
DLLs, etc) are based on the Python Home
- If we DO NOT have a Python Home, the core Python Path is
- loaded from the registry. (This is the main PythonPath key,
+ loaded from the registry. (This is the main PythonPath key,
and both HKLM and HKCU are combined to form the path)
* Iff - we can not locate the Python Home, have not had a PYTHONPATH
@@ -80,9 +80,9 @@
#include "Python.h"
-#include "pycore_initconfig.h" // PyStatus
-#include "pycore_pathconfig.h" // _PyPathConfig
-#include "osdefs.h" // SEP, ALTSEP
+#include "pycore_initconfig.h" // PyStatus
+#include "pycore_pathconfig.h" // _PyPathConfig
+#include "osdefs.h" // SEP, ALTSEP
#include <wchar.h>
#ifndef MS_WINDOWS
@@ -90,7 +90,7 @@
#endif
#include <windows.h>
-#include <pathcch.h>
+#include <pathcch.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -115,22 +115,22 @@
*/
#ifndef LANDMARK
-# define LANDMARK L"lib\\os.py"
+# define LANDMARK L"lib\\os.py"
#endif
-#define INIT_ERR_BUFFER_OVERFLOW() _PyStatus_ERR("buffer overflow")
-
-
+#define INIT_ERR_BUFFER_OVERFLOW() _PyStatus_ERR("buffer overflow")
+
+
typedef struct {
const wchar_t *path_env; /* PATH environment variable */
const wchar_t *home; /* PYTHONHOME environment variable */
- /* Registry key "Software\Python\PythonCore\X.Y\PythonPath"
- where X.Y is the Python version (major.minor) */
+ /* Registry key "Software\Python\PythonCore\X.Y\PythonPath"
+ where X.Y is the Python version (major.minor) */
wchar_t *machine_path; /* from HKEY_LOCAL_MACHINE */
wchar_t *user_path; /* from HKEY_CURRENT_USER */
- const wchar_t *pythonpath_env;
+ const wchar_t *pythonpath_env;
} PyCalculatePath;
@@ -165,37 +165,37 @@ reduce(wchar_t *dir)
static int
change_ext(wchar_t *dest, const wchar_t *src, const wchar_t *ext)
{
- if (src && src != dest) {
- size_t src_len = wcsnlen_s(src, MAXPATHLEN+1);
- size_t i = src_len;
- if (i >= MAXPATHLEN+1) {
- Py_FatalError("buffer overflow in getpathp.c's reduce()");
- }
-
- while (i > 0 && src[i] != '.' && !is_sep(src[i]))
- --i;
-
- if (i == 0) {
- dest[0] = '\0';
- return -1;
- }
-
- if (is_sep(src[i])) {
- i = src_len;
- }
-
- if (wcsncpy_s(dest, MAXPATHLEN+1, src, i)) {
- dest[0] = '\0';
- return -1;
- }
- } else {
- wchar_t *s = wcsrchr(dest, L'.');
- if (s) {
- s[0] = '\0';
- }
+ if (src && src != dest) {
+ size_t src_len = wcsnlen_s(src, MAXPATHLEN+1);
+ size_t i = src_len;
+ if (i >= MAXPATHLEN+1) {
+ Py_FatalError("buffer overflow in getpathp.c's reduce()");
+ }
+
+ while (i > 0 && src[i] != '.' && !is_sep(src[i]))
+ --i;
+
+ if (i == 0) {
+ dest[0] = '\0';
+ return -1;
+ }
+
+ if (is_sep(src[i])) {
+ i = src_len;
+ }
+
+ if (wcsncpy_s(dest, MAXPATHLEN+1, src, i)) {
+ dest[0] = '\0';
+ return -1;
+ }
+ } else {
+ wchar_t *s = wcsrchr(dest, L'.');
+ if (s) {
+ s[0] = '\0';
+ }
}
- if (wcscat_s(dest, MAXPATHLEN+1, ext)) {
+ if (wcscat_s(dest, MAXPATHLEN+1, ext)) {
dest[0] = '\0';
return -1;
}
@@ -252,24 +252,24 @@ ismodule(wchar_t *filename, int update_filename)
static void
join(wchar_t *buffer, const wchar_t *stuff)
{
- if (FAILED(PathCchCombineEx(buffer, MAXPATHLEN+1, buffer, stuff, 0))) {
- Py_FatalError("buffer overflow in getpathp.c's join()");
+ if (FAILED(PathCchCombineEx(buffer, MAXPATHLEN+1, buffer, stuff, 0))) {
+ Py_FatalError("buffer overflow in getpathp.c's join()");
}
}
-/* Call PathCchCanonicalizeEx(path): remove navigation elements such as "."
- and ".." to produce a direct, well-formed path. */
-static PyStatus
-canonicalize(wchar_t *buffer, const wchar_t *path)
+/* Call PathCchCanonicalizeEx(path): remove navigation elements such as "."
+ and ".." to produce a direct, well-formed path. */
+static PyStatus
+canonicalize(wchar_t *buffer, const wchar_t *path)
{
if (buffer == NULL) {
- return _PyStatus_NO_MEMORY();
+ return _PyStatus_NO_MEMORY();
}
- if (FAILED(PathCchCanonicalizeEx(buffer, MAXPATHLEN + 1, path, 0))) {
- return INIT_ERR_BUFFER_OVERFLOW();
+ if (FAILED(PathCchCanonicalizeEx(buffer, MAXPATHLEN + 1, path, 0))) {
+ return INIT_ERR_BUFFER_OVERFLOW();
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
@@ -277,18 +277,18 @@ canonicalize(wchar_t *buffer, const wchar_t *path)
'prefix' is null terminated in bounds. join() ensures
'landmark' can not overflow prefix if too long. */
static int
-gotlandmark(const wchar_t *prefix, const wchar_t *landmark)
+gotlandmark(const wchar_t *prefix, const wchar_t *landmark)
{
- wchar_t filename[MAXPATHLEN+1];
- memset(filename, 0, sizeof(filename));
- wcscpy_s(filename, Py_ARRAY_LENGTH(filename), prefix);
- join(filename, landmark);
- return ismodule(filename, FALSE);
+ wchar_t filename[MAXPATHLEN+1];
+ memset(filename, 0, sizeof(filename));
+ wcscpy_s(filename, Py_ARRAY_LENGTH(filename), prefix);
+ join(filename, landmark);
+ return ismodule(filename, FALSE);
}
/* assumes argv0_path is MAXPATHLEN+1 bytes long, already \0 term'd.
- assumption provided by only caller, calculate_path() */
+ assumption provided by only caller, calculate_path() */
static int
search_for_prefix(wchar_t *prefix, const wchar_t *argv0_path, const wchar_t *landmark)
{
@@ -304,21 +304,21 @@ search_for_prefix(wchar_t *prefix, const wchar_t *argv0_path, const wchar_t *lan
}
-static int
-get_dllpath(wchar_t *dllpath)
-{
+static int
+get_dllpath(wchar_t *dllpath)
+{
+#ifdef Py_ENABLE_SHARED
+ extern HANDLE PyWin_DLLhModule;
+ if (PyWin_DLLhModule && GetModuleFileNameW(PyWin_DLLhModule, dllpath, MAXPATHLEN)) {
+ return 0;
+ }
+#endif
+ return -1;
+}
+
+
#ifdef Py_ENABLE_SHARED
- extern HANDLE PyWin_DLLhModule;
- if (PyWin_DLLhModule && GetModuleFileNameW(PyWin_DLLhModule, dllpath, MAXPATHLEN)) {
- return 0;
- }
-#endif
- return -1;
-}
-
-
-#ifdef Py_ENABLE_SHARED
-
+
/* a string loaded from the DLL at startup.*/
extern const char *PyWin_DLLVersionString;
@@ -331,7 +331,7 @@ extern const char *PyWin_DLLVersionString;
Returns NULL, or a pointer that should be freed.
XXX - this code is pretty strange, as it used to also
- work on Win16, where the buffer sizes were not available
+ work on Win16, where the buffer sizes were not available
in advance. It could be simplied now Win16/Win32s is dead!
*/
static wchar_t *
@@ -378,7 +378,7 @@ getpythonregpath(HKEY keyBase, int skipcore)
goto done;
}
/* Find out how big our core buffer is, and how many subkeys we have */
- rc = RegQueryInfoKeyW(newKey, NULL, NULL, NULL, &numKeys, NULL, NULL,
+ rc = RegQueryInfoKeyW(newKey, NULL, NULL, NULL, &numKeys, NULL, NULL,
NULL, NULL, &dataSize, NULL, NULL);
if (rc!=ERROR_SUCCESS) {
goto done;
@@ -389,7 +389,7 @@ getpythonregpath(HKEY keyBase, int skipcore)
/* Allocate a temp array of char buffers, so we only need to loop
reading the registry once
*/
- ppPaths = PyMem_RawCalloc(numKeys, sizeof(WCHAR *));
+ ppPaths = PyMem_RawCalloc(numKeys, sizeof(WCHAR *));
if (ppPaths==NULL) {
goto done;
}
@@ -488,93 +488,93 @@ done:
#endif /* Py_ENABLE_SHARED */
-static PyStatus
-get_program_full_path(_PyPathConfig *pathconfig)
+static PyStatus
+get_program_full_path(_PyPathConfig *pathconfig)
{
- PyStatus status;
+ PyStatus status;
const wchar_t *pyvenv_launcher;
wchar_t program_full_path[MAXPATHLEN+1];
memset(program_full_path, 0, sizeof(program_full_path));
- if (!GetModuleFileNameW(NULL, program_full_path, MAXPATHLEN)) {
- /* GetModuleFileName should never fail when passed NULL */
- return _PyStatus_ERR("Cannot determine program path");
- }
-
+ if (!GetModuleFileNameW(NULL, program_full_path, MAXPATHLEN)) {
+ /* GetModuleFileName should never fail when passed NULL */
+ return _PyStatus_ERR("Cannot determine program path");
+ }
+
/* The launcher may need to force the executable path to a
* different environment, so override it here. */
pyvenv_launcher = _wgetenv(L"__PYVENV_LAUNCHER__");
if (pyvenv_launcher && pyvenv_launcher[0]) {
- /* If overridden, preserve the original full path */
- if (pathconfig->base_executable == NULL) {
- pathconfig->base_executable = PyMem_RawMalloc(
- sizeof(wchar_t) * (MAXPATHLEN + 1));
- if (pathconfig->base_executable == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- status = canonicalize(pathconfig->base_executable,
- program_full_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
+ /* If overridden, preserve the original full path */
+ if (pathconfig->base_executable == NULL) {
+ pathconfig->base_executable = PyMem_RawMalloc(
+ sizeof(wchar_t) * (MAXPATHLEN + 1));
+ if (pathconfig->base_executable == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ status = canonicalize(pathconfig->base_executable,
+ program_full_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
wcscpy_s(program_full_path, MAXPATHLEN+1, pyvenv_launcher);
- /* bpo-35873: Clear the environment variable to avoid it being
- * inherited by child processes. */
- _wputenv_s(L"__PYVENV_LAUNCHER__", L"");
+ /* bpo-35873: Clear the environment variable to avoid it being
+ * inherited by child processes. */
+ _wputenv_s(L"__PYVENV_LAUNCHER__", L"");
}
- if (pathconfig->program_full_path == NULL) {
- pathconfig->program_full_path = PyMem_RawMalloc(
- sizeof(wchar_t) * (MAXPATHLEN + 1));
- if (pathconfig->program_full_path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- status = canonicalize(pathconfig->program_full_path,
- program_full_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- return _PyStatus_OK();
+ if (pathconfig->program_full_path == NULL) {
+ pathconfig->program_full_path = PyMem_RawMalloc(
+ sizeof(wchar_t) * (MAXPATHLEN + 1));
+ if (pathconfig->program_full_path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ status = canonicalize(pathconfig->program_full_path,
+ program_full_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ return _PyStatus_OK();
}
-static PyStatus
-read_pth_file(_PyPathConfig *pathconfig, wchar_t *prefix, const wchar_t *path,
- int *found)
+static PyStatus
+read_pth_file(_PyPathConfig *pathconfig, wchar_t *prefix, const wchar_t *path,
+ int *found)
{
- PyStatus status;
- wchar_t *buf = NULL;
- wchar_t *wline = NULL;
- FILE *sp_file;
-
- sp_file = _Py_wfopen(path, L"r");
+ PyStatus status;
+ wchar_t *buf = NULL;
+ wchar_t *wline = NULL;
+ FILE *sp_file;
+
+ sp_file = _Py_wfopen(path, L"r");
if (sp_file == NULL) {
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
wcscpy_s(prefix, MAXPATHLEN+1, path);
reduce(prefix);
- pathconfig->isolated = 1;
- pathconfig->site_import = 0;
+ pathconfig->isolated = 1;
+ pathconfig->site_import = 0;
size_t bufsiz = MAXPATHLEN;
size_t prefixlen = wcslen(prefix);
- buf = (wchar_t*)PyMem_RawMalloc(bufsiz * sizeof(wchar_t));
+ buf = (wchar_t*)PyMem_RawMalloc(bufsiz * sizeof(wchar_t));
if (buf == NULL) {
- status = _PyStatus_NO_MEMORY();
- goto done;
+ status = _PyStatus_NO_MEMORY();
+ goto done;
}
buf[0] = '\0';
while (!feof(sp_file)) {
char line[MAXPATHLEN + 1];
- char *p = fgets(line, Py_ARRAY_LENGTH(line), sp_file);
+ char *p = fgets(line, Py_ARRAY_LENGTH(line), sp_file);
if (!p) {
break;
}
@@ -589,20 +589,20 @@ read_pth_file(_PyPathConfig *pathconfig, wchar_t *prefix, const wchar_t *path,
}
if (strcmp(line, "import site") == 0) {
- pathconfig->site_import = 1;
+ pathconfig->site_import = 1;
continue;
}
- else if (strncmp(line, "import ", 7) == 0) {
- status = _PyStatus_ERR("only 'import site' is supported "
- "in ._pth file");
- goto done;
- }
+ else if (strncmp(line, "import ", 7) == 0) {
+ status = _PyStatus_ERR("only 'import site' is supported "
+ "in ._pth file");
+ goto done;
+ }
DWORD wn = MultiByteToWideChar(CP_UTF8, 0, line, -1, NULL, 0);
wchar_t *wline = (wchar_t*)PyMem_RawMalloc((wn + 1) * sizeof(wchar_t));
if (wline == NULL) {
- status = _PyStatus_NO_MEMORY();
- goto done;
+ status = _PyStatus_NO_MEMORY();
+ goto done;
}
wn = MultiByteToWideChar(CP_UTF8, 0, line, -1, wline, wn + 1);
wline[wn] = '\0';
@@ -613,8 +613,8 @@ read_pth_file(_PyPathConfig *pathconfig, wchar_t *prefix, const wchar_t *path,
wchar_t *tmp = (wchar_t*)PyMem_RawRealloc(buf, (bufsiz + 1) *
sizeof(wchar_t));
if (tmp == NULL) {
- status = _PyStatus_NO_MEMORY();
- goto done;
+ status = _PyStatus_NO_MEMORY();
+ goto done;
}
buf = tmp;
}
@@ -628,73 +628,73 @@ read_pth_file(_PyPathConfig *pathconfig, wchar_t *prefix, const wchar_t *path,
_Py_BEGIN_SUPPRESS_IPH
result = wcscat_s(buf, bufsiz, prefix);
_Py_END_SUPPRESS_IPH
-
+
if (result == EINVAL) {
- status = _PyStatus_ERR("invalid argument during ._pth processing");
- goto done;
+ status = _PyStatus_ERR("invalid argument during ._pth processing");
+ goto done;
} else if (result == ERANGE) {
- status = _PyStatus_ERR("buffer overflow during ._pth processing");
- goto done;
+ status = _PyStatus_ERR("buffer overflow during ._pth processing");
+ goto done;
}
-
+
wchar_t *b = &buf[usedsiz];
join(b, wline);
PyMem_RawFree(wline);
- wline = NULL;
+ wline = NULL;
+ }
+
+ if (pathconfig->module_search_path == NULL) {
+ pathconfig->module_search_path = _PyMem_RawWcsdup(buf);
+ if (pathconfig->module_search_path == NULL) {
+ status = _PyStatus_NO_MEMORY();
+ goto done;
+ }
}
- if (pathconfig->module_search_path == NULL) {
- pathconfig->module_search_path = _PyMem_RawWcsdup(buf);
- if (pathconfig->module_search_path == NULL) {
- status = _PyStatus_NO_MEMORY();
- goto done;
- }
- }
-
- *found = 1;
- status = _PyStatus_OK();
- goto done;
-
-done:
+ *found = 1;
+ status = _PyStatus_OK();
+ goto done;
+
+done:
PyMem_RawFree(buf);
- PyMem_RawFree(wline);
+ PyMem_RawFree(wline);
fclose(sp_file);
- return status;
+ return status;
}
static int
-get_pth_filename(PyCalculatePath *calculate, wchar_t *filename,
- const _PyPathConfig *pathconfig)
+get_pth_filename(PyCalculatePath *calculate, wchar_t *filename,
+ const _PyPathConfig *pathconfig)
{
- if (!get_dllpath(filename) &&
- !change_ext(filename, filename, L"._pth") &&
- exists(filename))
- {
- return 1;
+ if (!get_dllpath(filename) &&
+ !change_ext(filename, filename, L"._pth") &&
+ exists(filename))
+ {
+ return 1;
}
- if (pathconfig->program_full_path[0] &&
- !change_ext(filename, pathconfig->program_full_path, L"._pth") &&
- exists(filename))
- {
- return 1;
+ if (pathconfig->program_full_path[0] &&
+ !change_ext(filename, pathconfig->program_full_path, L"._pth") &&
+ exists(filename))
+ {
+ return 1;
}
return 0;
}
-static PyStatus
-calculate_pth_file(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
- wchar_t *prefix, int *found)
+static PyStatus
+calculate_pth_file(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ wchar_t *prefix, int *found)
{
- wchar_t filename[MAXPATHLEN+1];
+ wchar_t filename[MAXPATHLEN+1];
- if (!get_pth_filename(calculate, filename, pathconfig)) {
- return _PyStatus_OK();
+ if (!get_pth_filename(calculate, filename, pathconfig)) {
+ return _PyStatus_OK();
}
- return read_pth_file(pathconfig, prefix, filename, found);
+ return read_pth_file(pathconfig, prefix, filename, found);
}
@@ -702,62 +702,62 @@ calculate_pth_file(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
executable's directory and then in the parent directory.
If found, open it for use when searching for prefixes.
*/
-static PyStatus
-calculate_pyvenv_file(PyCalculatePath *calculate,
- wchar_t *argv0_path, size_t argv0_path_len)
+static PyStatus
+calculate_pyvenv_file(PyCalculatePath *calculate,
+ wchar_t *argv0_path, size_t argv0_path_len)
{
- wchar_t filename[MAXPATHLEN+1];
+ wchar_t filename[MAXPATHLEN+1];
const wchar_t *env_cfg = L"pyvenv.cfg";
- /* Filename: <argv0_path_len> / "pyvenv.cfg" */
- wcscpy_s(filename, MAXPATHLEN+1, argv0_path);
- join(filename, env_cfg);
+ /* Filename: <argv0_path_len> / "pyvenv.cfg" */
+ wcscpy_s(filename, MAXPATHLEN+1, argv0_path);
+ join(filename, env_cfg);
- FILE *env_file = _Py_wfopen(filename, L"r");
+ FILE *env_file = _Py_wfopen(filename, L"r");
if (env_file == NULL) {
errno = 0;
- /* Filename: <basename(basename(argv0_path_len))> / "pyvenv.cfg" */
- reduce(filename);
- reduce(filename);
- join(filename, env_cfg);
+ /* Filename: <basename(basename(argv0_path_len))> / "pyvenv.cfg" */
+ reduce(filename);
+ reduce(filename);
+ join(filename, env_cfg);
- env_file = _Py_wfopen(filename, L"r");
+ env_file = _Py_wfopen(filename, L"r");
if (env_file == NULL) {
errno = 0;
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
}
/* Look for a 'home' variable and set argv0_path to it, if found */
- wchar_t *home = NULL;
- PyStatus status = _Py_FindEnvConfigValue(env_file, L"home", &home);
- if (_PyStatus_EXCEPTION(status)) {
- fclose(env_file);
- return status;
- }
- if (home) {
- wcscpy_s(argv0_path, argv0_path_len, home);
- PyMem_RawFree(home);
+ wchar_t *home = NULL;
+ PyStatus status = _Py_FindEnvConfigValue(env_file, L"home", &home);
+ if (_PyStatus_EXCEPTION(status)) {
+ fclose(env_file);
+ return status;
+ }
+ if (home) {
+ wcscpy_s(argv0_path, argv0_path_len, home);
+ PyMem_RawFree(home);
}
fclose(env_file);
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
static void
-calculate_home_prefix(PyCalculatePath *calculate,
- const wchar_t *argv0_path,
- const wchar_t *zip_path,
- wchar_t *prefix)
+calculate_home_prefix(PyCalculatePath *calculate,
+ const wchar_t *argv0_path,
+ const wchar_t *zip_path,
+ wchar_t *prefix)
{
if (calculate->home == NULL || *calculate->home == '\0') {
- if (zip_path[0] && exists(zip_path)) {
- wcscpy_s(prefix, MAXPATHLEN+1, zip_path);
+ if (zip_path[0] && exists(zip_path)) {
+ wcscpy_s(prefix, MAXPATHLEN+1, zip_path);
reduce(prefix);
calculate->home = prefix;
}
- else if (search_for_prefix(prefix, argv0_path, LANDMARK)) {
+ else if (search_for_prefix(prefix, argv0_path, LANDMARK)) {
calculate->home = prefix;
}
else {
@@ -770,31 +770,31 @@ calculate_home_prefix(PyCalculatePath *calculate,
}
-static PyStatus
-calculate_module_search_path(PyCalculatePath *calculate,
- _PyPathConfig *pathconfig,
- const wchar_t *argv0_path,
- wchar_t *prefix,
- const wchar_t *zip_path)
+static PyStatus
+calculate_module_search_path(PyCalculatePath *calculate,
+ _PyPathConfig *pathconfig,
+ const wchar_t *argv0_path,
+ wchar_t *prefix,
+ const wchar_t *zip_path)
{
int skiphome = calculate->home==NULL ? 0 : 1;
#ifdef Py_ENABLE_SHARED
- if (!Py_IgnoreEnvironmentFlag) {
- calculate->machine_path = getpythonregpath(HKEY_LOCAL_MACHINE,
- skiphome);
- calculate->user_path = getpythonregpath(HKEY_CURRENT_USER, skiphome);
- }
+ if (!Py_IgnoreEnvironmentFlag) {
+ calculate->machine_path = getpythonregpath(HKEY_LOCAL_MACHINE,
+ skiphome);
+ calculate->user_path = getpythonregpath(HKEY_CURRENT_USER, skiphome);
+ }
#endif
- pathconfig->module_search_path = calculate->pythonpath_env;
- if (!pathconfig->module_search_path) {
- pathconfig->module_search_path = pathconfig->program_full_path;
+ pathconfig->module_search_path = calculate->pythonpath_env;
+ if (!pathconfig->module_search_path) {
+ pathconfig->module_search_path = pathconfig->program_full_path;
}
- pathconfig->module_search_path = _PyMem_RawWcsdup(pathconfig->module_search_path);
- return _PyStatus_OK();
+ pathconfig->module_search_path = _PyMem_RawWcsdup(pathconfig->module_search_path);
+ return _PyStatus_OK();
/* We only use the default relative PYTHONPATH if we haven't
anything better to use! */
- int skipdefault = (calculate->pythonpath_env != NULL ||
+ int skipdefault = (calculate->pythonpath_env != NULL ||
calculate->home != NULL ||
calculate->machine_path != NULL ||
calculate->user_path != NULL);
@@ -825,35 +825,35 @@ calculate_module_search_path(PyCalculatePath *calculate,
bufsz *= wcslen(calculate->home);
}
bufsz += wcslen(PYTHONPATH) + 1;
- bufsz += wcslen(argv0_path) + 1;
+ bufsz += wcslen(argv0_path) + 1;
if (calculate->user_path) {
bufsz += wcslen(calculate->user_path) + 1;
}
if (calculate->machine_path) {
bufsz += wcslen(calculate->machine_path) + 1;
}
- bufsz += wcslen(zip_path) + 1;
- if (calculate->pythonpath_env != NULL) {
- bufsz += wcslen(calculate->pythonpath_env) + 1;
+ bufsz += wcslen(zip_path) + 1;
+ if (calculate->pythonpath_env != NULL) {
+ bufsz += wcslen(calculate->pythonpath_env) + 1;
}
wchar_t *buf, *start_buf;
buf = PyMem_RawMalloc(bufsz * sizeof(wchar_t));
if (buf == NULL) {
- return _PyStatus_NO_MEMORY();
+ return _PyStatus_NO_MEMORY();
}
start_buf = buf;
- if (calculate->pythonpath_env) {
+ if (calculate->pythonpath_env) {
if (wcscpy_s(buf, bufsz - (buf - start_buf),
- calculate->pythonpath_env)) {
+ calculate->pythonpath_env)) {
return INIT_ERR_BUFFER_OVERFLOW();
}
buf = wcschr(buf, L'\0');
*buf++ = DELIM;
}
- if (zip_path[0]) {
- if (wcscpy_s(buf, bufsz - (buf - start_buf), zip_path)) {
+ if (zip_path[0]) {
+ if (wcscpy_s(buf, bufsz - (buf - start_buf), zip_path)) {
return INIT_ERR_BUFFER_OVERFLOW();
}
buf = wcschr(buf, L'\0');
@@ -910,8 +910,8 @@ calculate_module_search_path(PyCalculatePath *calculate,
p = q+1;
}
}
- if (argv0_path) {
- wcscpy(buf, argv0_path);
+ if (argv0_path) {
+ wcscpy(buf, argv0_path);
buf = wcschr(buf, L'\0');
*buf++ = DELIM;
}
@@ -953,99 +953,99 @@ calculate_module_search_path(PyCalculatePath *calculate,
}
}
- pathconfig->module_search_path = start_buf;
- return _PyStatus_OK();
+ pathconfig->module_search_path = start_buf;
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
+static PyStatus
+calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
{
- PyStatus status;
+ PyStatus status;
- status = get_program_full_path(pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ status = get_program_full_path(pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
/* program_full_path guaranteed \0 terminated in MAXPATH+1 bytes. */
- wchar_t argv0_path[MAXPATHLEN+1];
- memset(argv0_path, 0, sizeof(argv0_path));
+ wchar_t argv0_path[MAXPATHLEN+1];
+ memset(argv0_path, 0, sizeof(argv0_path));
+
+ wcscpy_s(argv0_path, MAXPATHLEN+1, pathconfig->program_full_path);
+ reduce(argv0_path);
- wcscpy_s(argv0_path, MAXPATHLEN+1, pathconfig->program_full_path);
- reduce(argv0_path);
-
wchar_t prefix[MAXPATHLEN+1];
memset(prefix, 0, sizeof(prefix));
/* Search for a sys.path file */
- int pth_found = 0;
- status = calculate_pth_file(calculate, pathconfig, prefix, &pth_found);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- if (pth_found) {
+ int pth_found = 0;
+ status = calculate_pth_file(calculate, pathconfig, prefix, &pth_found);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ if (pth_found) {
goto done;
}
- status = calculate_pyvenv_file(calculate,
- argv0_path, Py_ARRAY_LENGTH(argv0_path));
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ status = calculate_pyvenv_file(calculate,
+ argv0_path, Py_ARRAY_LENGTH(argv0_path));
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
/* Calculate zip archive path from DLL or exe path */
- wchar_t zip_path[MAXPATHLEN+1];
- memset(zip_path, 0, sizeof(zip_path));
-
- if (get_dllpath(zip_path) || change_ext(zip_path, zip_path, L".zip"))
- {
- if (change_ext(zip_path, pathconfig->program_full_path, L".zip")) {
- zip_path[0] = L'\0';
- }
- }
-
- calculate_home_prefix(calculate, argv0_path, zip_path, prefix);
-
- if (pathconfig->module_search_path == NULL) {
- status = calculate_module_search_path(calculate, pathconfig,
- argv0_path, prefix, zip_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ wchar_t zip_path[MAXPATHLEN+1];
+ memset(zip_path, 0, sizeof(zip_path));
+
+ if (get_dllpath(zip_path) || change_ext(zip_path, zip_path, L".zip"))
+ {
+ if (change_ext(zip_path, pathconfig->program_full_path, L".zip")) {
+ zip_path[0] = L'\0';
+ }
+ }
+
+ calculate_home_prefix(calculate, argv0_path, zip_path, prefix);
+
+ if (pathconfig->module_search_path == NULL) {
+ status = calculate_module_search_path(calculate, pathconfig,
+ argv0_path, prefix, zip_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
}
done:
- if (pathconfig->prefix == NULL) {
- pathconfig->prefix = _PyMem_RawWcsdup(prefix);
- if (pathconfig->prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
+ if (pathconfig->prefix == NULL) {
+ pathconfig->prefix = _PyMem_RawWcsdup(prefix);
+ if (pathconfig->prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
}
- if (pathconfig->exec_prefix == NULL) {
- pathconfig->exec_prefix = _PyMem_RawWcsdup(prefix);
- if (pathconfig->exec_prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
-
- return _PyStatus_OK();
+ if (pathconfig->exec_prefix == NULL) {
+ pathconfig->exec_prefix = _PyMem_RawWcsdup(prefix);
+ if (pathconfig->exec_prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+calculate_init(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ const PyConfig *config)
+{
+ calculate->home = pathconfig->home;
+ calculate->path_env = _wgetenv(L"PATH");
+
+ calculate->pythonpath_env = config->pythonpath_env;
+
+ return _PyStatus_OK();
}
-static PyStatus
-calculate_init(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
- const PyConfig *config)
-{
- calculate->home = pathconfig->home;
- calculate->path_env = _wgetenv(L"PATH");
-
- calculate->pythonpath_env = config->pythonpath_env;
-
- return _PyStatus_OK();
-}
-
-
static void
calculate_free(PyCalculatePath *calculate)
{
@@ -1054,50 +1054,50 @@ calculate_free(PyCalculatePath *calculate)
}
-/* Calculate the Python path configuration.
-
- Inputs:
-
- - PyConfig.pythonpath_env: PYTHONPATH environment variable
- - _PyPathConfig.home: Py_SetPythonHome() or PYTHONHOME environment variable
- - PATH environment variable
- - __PYVENV_LAUNCHER__ environment variable
- - GetModuleFileNameW(NULL): fully qualified path of the executable file of
- the current process
- - ._pth configuration file
- - pyvenv.cfg configuration file
- - Registry key "Software\Python\PythonCore\X.Y\PythonPath"
- of HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE where X.Y is the Python
- version.
-
- Outputs, 'pathconfig' fields:
-
- - base_executable
- - program_full_path
- - module_search_path
- - prefix
- - exec_prefix
- - isolated
- - site_import
-
- If a field is already set (non NULL), it is left unchanged. */
-PyStatus
-_PyPathConfig_Calculate(_PyPathConfig *pathconfig, const PyConfig *config)
+/* Calculate the Python path configuration.
+
+ Inputs:
+
+ - PyConfig.pythonpath_env: PYTHONPATH environment variable
+ - _PyPathConfig.home: Py_SetPythonHome() or PYTHONHOME environment variable
+ - PATH environment variable
+ - __PYVENV_LAUNCHER__ environment variable
+ - GetModuleFileNameW(NULL): fully qualified path of the executable file of
+ the current process
+ - ._pth configuration file
+ - pyvenv.cfg configuration file
+ - Registry key "Software\Python\PythonCore\X.Y\PythonPath"
+ of HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE where X.Y is the Python
+ version.
+
+ Outputs, 'pathconfig' fields:
+
+ - base_executable
+ - program_full_path
+ - module_search_path
+ - prefix
+ - exec_prefix
+ - isolated
+ - site_import
+
+ If a field is already set (non NULL), it is left unchanged. */
+PyStatus
+_PyPathConfig_Calculate(_PyPathConfig *pathconfig, const PyConfig *config)
{
- PyStatus status;
+ PyStatus status;
PyCalculatePath calculate;
memset(&calculate, 0, sizeof(calculate));
- status = calculate_init(&calculate, pathconfig, config);
- if (_PyStatus_EXCEPTION(status)) {
+ status = calculate_init(&calculate, pathconfig, config);
+ if (_PyStatus_EXCEPTION(status)) {
goto done;
}
- status = calculate_path(&calculate, pathconfig);
+ status = calculate_path(&calculate, pathconfig);
done:
calculate_free(&calculate);
- return status;
+ return status;
}
@@ -1119,29 +1119,29 @@ _Py_CheckPython3(void)
python3_checked = 1;
/* If there is a python3.dll next to the python3y.dll,
- use that DLL */
- if (!get_dllpath(py3path)) {
- reduce(py3path);
- join(py3path, PY3_DLLNAME);
- hPython3 = LoadLibraryExW(py3path, NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
- if (hPython3 != NULL) {
- return 1;
- }
+ use that DLL */
+ if (!get_dllpath(py3path)) {
+ reduce(py3path);
+ join(py3path, PY3_DLLNAME);
+ hPython3 = LoadLibraryExW(py3path, NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
+ if (hPython3 != NULL) {
+ return 1;
+ }
}
-
- /* If we can locate python3.dll in our application dir,
- use that DLL */
- hPython3 = LoadLibraryExW(PY3_DLLNAME, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR);
+
+ /* If we can locate python3.dll in our application dir,
+ use that DLL */
+ hPython3 = LoadLibraryExW(PY3_DLLNAME, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR);
if (hPython3 != NULL) {
return 1;
}
- /* For back-compat, also search {sys.prefix}\DLLs, though
- that has not been a normal install layout for a while */
+ /* For back-compat, also search {sys.prefix}\DLLs, though
+ that has not been a normal install layout for a while */
wcscpy(py3path, Py_GetPrefix());
- if (py3path[0]) {
- join(py3path, L"DLLs\\" PY3_DLLNAME);
- hPython3 = LoadLibraryExW(py3path, NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
- }
+ if (py3path[0]) {
+ join(py3path, L"DLLs\\" PY3_DLLNAME);
+ hPython3 = LoadLibraryExW(py3path, NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
+ }
return hPython3 != NULL;
}
diff --git a/contrib/tools/python3/src/PC/msvcrtmodule.c b/contrib/tools/python3/src/PC/msvcrtmodule.c
index bdf9746b7a..faceb03fba 100644
--- a/contrib/tools/python3/src/PC/msvcrtmodule.c
+++ b/contrib/tools/python3/src/PC/msvcrtmodule.c
@@ -116,10 +116,10 @@ msvcrt_locking_impl(PyObject *module, int fd, int mode, long nbytes)
{
int err;
- if (PySys_Audit("msvcrt.locking", "iil", fd, mode, nbytes) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("msvcrt.locking", "iil", fd, mode, nbytes) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
err = _locking(fd, mode, nbytes);
@@ -179,10 +179,10 @@ msvcrt_open_osfhandle_impl(PyObject *module, void *handle, int flags)
{
int fd;
- if (PySys_Audit("msvcrt.open_osfhandle", "Ki", handle, flags) < 0) {
- return -1;
- }
-
+ if (PySys_Audit("msvcrt.open_osfhandle", "Ki", handle, flags) < 0) {
+ return -1;
+ }
+
_Py_BEGIN_SUPPRESS_IPH
fd = _open_osfhandle((intptr_t)handle, flags);
_Py_END_SUPPRESS_IPH
@@ -209,10 +209,10 @@ msvcrt_get_osfhandle_impl(PyObject *module, int fd)
{
intptr_t handle = -1;
- if (PySys_Audit("msvcrt.get_osfhandle", "(i)", fd) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("msvcrt.get_osfhandle", "(i)", fd) < 0) {
+ return NULL;
+ }
+
_Py_BEGIN_SUPPRESS_IPH
handle = _get_osfhandle(fd);
_Py_END_SUPPRESS_IPH
diff --git a/contrib/tools/python3/src/PC/pyconfig.h b/contrib/tools/python3/src/PC/pyconfig.h
index 606e818e1d..b53ae107e5 100644
--- a/contrib/tools/python3/src/PC/pyconfig.h
+++ b/contrib/tools/python3/src/PC/pyconfig.h
@@ -126,18 +126,18 @@ WIN32 is still required for the locale module.
#define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)")
#endif /* __INTEL_COMPILER */
#define PYD_PLATFORM_TAG "win_amd64"
-#elif defined(_M_ARM64)
-#define COMPILER _Py_PASTE_VERSION("64 bit (ARM64)")
-#define PYD_PLATFORM_TAG "win_arm64"
+#elif defined(_M_ARM64)
+#define COMPILER _Py_PASTE_VERSION("64 bit (ARM64)")
+#define PYD_PLATFORM_TAG "win_arm64"
#else
#define COMPILER _Py_PASTE_VERSION("64 bit (Unknown)")
#endif
#endif /* MS_WIN64 */
/* set the version macros for the windows headers */
-/* Python 3.9+ requires Windows 8 or greater */
-#define Py_WINVER 0x0602 /* _WIN32_WINNT_WIN8 */
-#define Py_NTDDI NTDDI_WIN8
+/* Python 3.9+ requires Windows 8 or greater */
+#define Py_WINVER 0x0602 /* _WIN32_WINNT_WIN8 */
+#define Py_NTDDI NTDDI_WIN8
/* We only set these values when building Python - we don't want to force
these values on extensions, as that will affect the prototypes and
@@ -181,7 +181,7 @@ typedef _W64 int ssize_t;
#define PYD_PLATFORM_TAG "win32"
#elif defined(_M_ARM)
#define COMPILER _Py_PASTE_VERSION("32 bit (ARM)")
-#define PYD_PLATFORM_TAG "win_arm32"
+#define PYD_PLATFORM_TAG "win_arm32"
#else
#define COMPILER _Py_PASTE_VERSION("32 bit (Unknown)")
#endif
@@ -268,11 +268,11 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
file in their Makefile (other compilers are
generally taken care of by distutils.) */
# if defined(_DEBUG)
-# pragma comment(lib,"python39_d.lib")
+# pragma comment(lib,"python39_d.lib")
# elif defined(Py_LIMITED_API)
# pragma comment(lib,"python3.lib")
# else
-# pragma comment(lib,"python39.lib")
+# pragma comment(lib,"python39.lib")
# endif /* _DEBUG */
# endif /* _MSC_VER */
# endif /* Py_BUILD_CORE */
@@ -289,8 +289,8 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
# define SIZEOF_FPOS_T 8
# define SIZEOF_HKEY 8
# define SIZEOF_SIZE_T 8
-/* configure.ac defines HAVE_LARGEFILE_SUPPORT iff
- sizeof(off_t) > sizeof(long), and sizeof(long long) >= sizeof(off_t).
+/* configure.ac defines HAVE_LARGEFILE_SUPPORT iff
+ sizeof(off_t) > sizeof(long), and sizeof(long long) >= sizeof(off_t).
On Win64 the second condition is not true, but if fpos_t replaces off_t
then this is true. The uses of HAVE_LARGEFILE_SUPPORT imply that Win64
should define this. */
@@ -376,10 +376,10 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* Define to 1 if you have the <direct.h> header file. */
#define HAVE_DIRECT_H 1
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
- */
-#define HAVE_DECL_TZNAME 1
-
+/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
+ */
+#define HAVE_DECL_TZNAME 1
+
/* Define if you have dirent.h. */
/* #define DIRENT 1 */
@@ -460,10 +460,10 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
(which you can't on SCO ODT 3.0). */
/* #undef SYS_SELECT_WITH_SYS_TIME */
-/* Define if you want build the _decimal module using a coroutine-local rather
- than a thread-local context */
-#define WITH_DECIMAL_CONTEXTVAR 1
-
+/* Define if you want build the _decimal module using a coroutine-local rather
+ than a thread-local context */
+#define WITH_DECIMAL_CONTEXTVAR 1
+
/* Define if you want documentation strings in extension modules */
#define WITH_DOC_STRINGS 1
@@ -680,6 +680,6 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* Define if libssl has X509_VERIFY_PARAM_set1_host and related function */
#define HAVE_X509_VERIFY_PARAM_SET1_HOST 1
-#define PLATLIBDIR "lib"
-
+#define PLATLIBDIR "lib"
+
#endif /* !Py_CONFIG_H */
diff --git a/contrib/tools/python3/src/PC/python_ver_rc.h b/contrib/tools/python3/src/PC/python_ver_rc.h
index 133622925d..e6c1d24370 100644
--- a/contrib/tools/python3/src/PC/python_ver_rc.h
+++ b/contrib/tools/python3/src/PC/python_ver_rc.h
@@ -1,11 +1,11 @@
// Resource script for Python core DLL.
// Currently only holds version information.
//
-#pragma code_page(1252)
+#pragma code_page(1252)
#include "winver.h"
#define PYTHON_COMPANY "Python Software Foundation"
-#define PYTHON_COPYRIGHT "Copyright \xA9 2001-2022 Python Software Foundation. Copyright \xA9 2000 BeOpen.com. Copyright \xA9 1995-2001 CNRI. Copyright \xA9 1991-1995 SMC."
+#define PYTHON_COPYRIGHT "Copyright \xA9 2001-2022 Python Software Foundation. Copyright \xA9 2000 BeOpen.com. Copyright \xA9 1995-2001 CNRI. Copyright \xA9 1991-1995 SMC."
#define MS_WINDOWS
#include "modsupport.h"
diff --git a/contrib/tools/python3/src/PC/winreg.c b/contrib/tools/python3/src/PC/winreg.c
index 19fb947bde..fd1ccb7b83 100644
--- a/contrib/tools/python3/src/PC/winreg.c
+++ b/contrib/tools/python3/src/PC/winreg.c
@@ -12,10 +12,10 @@
*/
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
-#include "structmember.h" // PyMemberDef
-#include <windows.h>
+#include "structmember.h" // PyMemberDef
+#include <windows.h>
static BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pRes, BOOL bNoneOK);
static BOOL clinic_HKEY_converter(PyObject *ob, void *p);
@@ -84,7 +84,7 @@ PyDoc_STRVAR(PyHKEY_doc,
"the object is destroyed. To guarantee cleanup, you can call either\n"
"the Close() method on the PyHKEY, or the CloseKey() method.\n"
"\n"
-"All functions which accept a handle object also accept an integer --\n"
+"All functions which accept a handle object also accept an integer --\n"
"however, use of the handle object is encouraged.\n"
"\n"
"Functions:\n"
@@ -293,9 +293,9 @@ winreg_HKEYType_Detach_impl(PyHKEYObject *self)
/*[clinic end generated code: output=dda5a9e1a01ae78f input=dd2cc09e6c6ba833]*/
{
void* ret;
- if (PySys_Audit("winreg.PyHKEY.Detach", "n", (Py_ssize_t)self->hkey) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.PyHKEY.Detach", "n", (Py_ssize_t)self->hkey) < 0) {
+ return NULL;
+ }
ret = (void*)self->hkey;
self->hkey = 0;
return PyLong_FromVoidPtr(ret);
@@ -358,10 +358,10 @@ PyTypeObject PyHKEY_Type =
sizeof(PyHKEYObject),
0,
PyHKEY_deallocFunc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
&PyHKEY_NumberMethods, /* tp_as_number */
0, /* tp_as_sequence */
@@ -390,7 +390,7 @@ PyTypeObject PyHKEY_Type =
PyObject *
PyHKEY_New(HKEY hInit)
{
- PyHKEYObject *key = PyObject_New(PyHKEYObject, &PyHKEY_Type);
+ PyHKEYObject *key = PyObject_New(PyHKEYObject, &PyHKEY_Type);
if (key)
key->hkey = hInit;
return (PyObject *)key;
@@ -400,15 +400,15 @@ BOOL
PyHKEY_Close(PyObject *ob_handle)
{
LONG rc;
- HKEY key;
+ HKEY key;
- if (!PyHKEY_AsHKEY(ob_handle, &key, TRUE)) {
+ if (!PyHKEY_AsHKEY(ob_handle, &key, TRUE)) {
return FALSE;
}
- if (PyHKEY_Check(ob_handle)) {
- ((PyHKEYObject*)ob_handle)->hkey = 0;
- }
- rc = key ? RegCloseKey(key) : ERROR_SUCCESS;
+ if (PyHKEY_Check(ob_handle)) {
+ ((PyHKEYObject*)ob_handle)->hkey = 0;
+ }
+ rc = key ? RegCloseKey(key) : ERROR_SUCCESS;
if (rc != ERROR_SUCCESS)
PyErr_SetFromWindowsErrWithFunction(rc, "RegCloseKey");
return rc == ERROR_SUCCESS;
@@ -521,18 +521,18 @@ fixupMultiSZ(wchar_t **str, wchar_t *data, int len)
int i;
wchar_t *Q;
- if (len > 0 && data[len - 1] == '\0') {
- Q = data + len - 1;
- }
- else {
- Q = data + len;
- }
-
- for (P = data, i = 0; P < Q; P++, i++) {
+ if (len > 0 && data[len - 1] == '\0') {
+ Q = data + len - 1;
+ }
+ else {
+ Q = data + len;
+ }
+
+ for (P = data, i = 0; P < Q; P++, i++) {
str[i] = P;
- for (; P < Q && *P != '\0'; P++) {
+ for (; P < Q && *P != '\0'; P++) {
;
- }
+ }
}
}
@@ -540,20 +540,20 @@ static int
countStrings(wchar_t *data, int len)
{
int strings;
- wchar_t *P, *Q;
-
- if (len > 0 && data[len - 1] == '\0') {
- Q = data + len - 1;
- }
- else {
- Q = data + len;
- }
-
- for (P = data, strings = 0; P < Q; P++, strings++) {
- for (; P < Q && *P != '\0'; P++) {
+ wchar_t *P, *Q;
+
+ if (len > 0 && data[len - 1] == '\0') {
+ Q = data + len - 1;
+ }
+ else {
+ Q = data + len;
+ }
+
+ for (P = data, strings = 0; P < Q; P++, strings++) {
+ for (; P < Q && *P != '\0'; P++) {
;
- }
- }
+ }
+ }
return strings;
}
@@ -646,10 +646,10 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize)
t = PyList_GET_ITEM(value, j);
if (!PyUnicode_Check(t))
return FALSE;
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
wstr = PyUnicode_AsUnicodeAndSize(t, &len);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (wstr == NULL)
return FALSE;
size += Py_SAFE_DOWNCAST((len + 1) * sizeof(wchar_t),
@@ -672,11 +672,11 @@ _Py_COMP_DIAG_POP
Py_ssize_t len;
t = PyList_GET_ITEM(value, j);
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
wstr = PyUnicode_AsUnicodeAndSize(t, &len);
-_Py_COMP_DIAG_POP
- assert(wstr);
+_Py_COMP_DIAG_POP
+ assert(wstr);
wcscpy(P, wstr);
P += (len + 1);
}
@@ -773,15 +773,15 @@ Reg2Py(BYTE *retDataBuf, DWORD retDataSize, DWORD typ)
}
for (index = 0; index < s; index++)
{
- size_t slen = wcsnlen(str[index], len);
- PyObject *uni = PyUnicode_FromWideChar(str[index], slen);
+ size_t slen = wcsnlen(str[index], len);
+ PyObject *uni = PyUnicode_FromWideChar(str[index], slen);
if (uni == NULL) {
Py_DECREF(obData);
PyMem_Free(str);
return NULL;
}
PyList_SET_ITEM(obData, index, uni);
- len -= Py_SAFE_DOWNCAST(slen + 1, size_t, int);
+ len -= Py_SAFE_DOWNCAST(slen + 1, size_t, int);
}
PyMem_Free(str);
@@ -850,10 +850,10 @@ winreg_ConnectRegistry_impl(PyObject *module,
{
HKEY retKey;
long rc;
- if (PySys_Audit("winreg.ConnectRegistry", "un",
- computer_name, (Py_ssize_t)key) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.ConnectRegistry", "un",
+ computer_name, (Py_ssize_t)key) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
rc = RegConnectRegistryW(computer_name, key, &retKey);
Py_END_ALLOW_THREADS
@@ -891,20 +891,20 @@ winreg_CreateKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key)
HKEY retKey;
long rc;
- if (PySys_Audit("winreg.CreateKey", "nun",
- (Py_ssize_t)key, sub_key,
- (Py_ssize_t)KEY_WRITE) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.CreateKey", "nun",
+ (Py_ssize_t)key, sub_key,
+ (Py_ssize_t)KEY_WRITE) < 0) {
+ return NULL;
+ }
rc = RegCreateKeyW(key, sub_key, &retKey);
if (rc != ERROR_SUCCESS) {
PyErr_SetFromWindowsErrWithFunction(rc, "CreateKey");
return NULL;
}
- if (PySys_Audit("winreg.OpenKey/result", "n",
- (Py_ssize_t)retKey) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.OpenKey/result", "n",
+ (Py_ssize_t)retKey) < 0) {
+ return NULL;
+ }
return retKey;
}
@@ -941,21 +941,21 @@ winreg_CreateKeyEx_impl(PyObject *module, HKEY key,
HKEY retKey;
long rc;
- if (PySys_Audit("winreg.CreateKey", "nun",
- (Py_ssize_t)key, sub_key,
- (Py_ssize_t)access) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.CreateKey", "nun",
+ (Py_ssize_t)key, sub_key,
+ (Py_ssize_t)access) < 0) {
+ return NULL;
+ }
rc = RegCreateKeyExW(key, sub_key, reserved, NULL, 0,
access, NULL, &retKey, NULL);
if (rc != ERROR_SUCCESS) {
PyErr_SetFromWindowsErrWithFunction(rc, "CreateKeyEx");
return NULL;
}
- if (PySys_Audit("winreg.OpenKey/result", "n",
- (Py_ssize_t)retKey) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.OpenKey/result", "n",
+ (Py_ssize_t)retKey) < 0) {
+ return NULL;
+ }
return retKey;
}
@@ -982,11 +982,11 @@ winreg_DeleteKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key)
/*[clinic end generated code: output=d2652a84f70e0862 input=b31d225b935e4211]*/
{
long rc;
- if (PySys_Audit("winreg.DeleteKey", "nun",
- (Py_ssize_t)key, sub_key,
- (Py_ssize_t)0) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.DeleteKey", "nun",
+ (Py_ssize_t)key, sub_key,
+ (Py_ssize_t)0) < 0) {
+ return NULL;
+ }
rc = RegDeleteKeyW(key, sub_key );
if (rc != ERROR_SUCCESS)
return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKey");
@@ -1028,18 +1028,18 @@ winreg_DeleteKeyEx_impl(PyObject *module, HKEY key,
RDKEFunc pfn = NULL;
long rc;
- if (PySys_Audit("winreg.DeleteKey", "nun",
- (Py_ssize_t)key, sub_key,
- (Py_ssize_t)access) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.DeleteKey", "nun",
+ (Py_ssize_t)key, sub_key,
+ (Py_ssize_t)access) < 0) {
+ return NULL;
+ }
/* Only available on 64bit platforms, so we must load it
dynamically. */
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
hMod = GetModuleHandleW(L"advapi32.dll");
if (hMod)
- pfn = (RDKEFunc)GetProcAddress(hMod, "RegDeleteKeyExW");
- Py_END_ALLOW_THREADS
+ pfn = (RDKEFunc)GetProcAddress(hMod, "RegDeleteKeyExW");
+ Py_END_ALLOW_THREADS
if (!pfn) {
PyErr_SetString(PyExc_NotImplementedError,
"not implemented on this platform");
@@ -1071,10 +1071,10 @@ winreg_DeleteValue_impl(PyObject *module, HKEY key, const Py_UNICODE *value)
/*[clinic end generated code: output=56fa9d21f3a54371 input=a78d3407a4197b21]*/
{
long rc;
- if (PySys_Audit("winreg.DeleteValue", "nu",
- (Py_ssize_t)key, value) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.DeleteValue", "nu",
+ (Py_ssize_t)key, value) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
rc = RegDeleteValueW(key, value);
Py_END_ALLOW_THREADS
@@ -1107,10 +1107,10 @@ winreg_EnumKey_impl(PyObject *module, HKEY key, int index)
long rc;
PyObject *retStr;
- if (PySys_Audit("winreg.EnumKey", "ni",
- (Py_ssize_t)key, index) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.EnumKey", "ni",
+ (Py_ssize_t)key, index) < 0) {
+ return NULL;
+ }
/* The Windows docs claim that the max key name length is 255
* characters, plus a terminating nul character. However,
* empirical testing demonstrates that it is possible to
@@ -1169,10 +1169,10 @@ winreg_EnumValue_impl(PyObject *module, HKEY key, int index)
PyObject *obData;
PyObject *retVal;
- if (PySys_Audit("winreg.EnumValue", "ni",
- (Py_ssize_t)key, index) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.EnumValue", "ni",
+ (Py_ssize_t)key, index) < 0) {
+ return NULL;
+ }
if ((rc = RegQueryInfoKeyW(key, NULL, NULL, NULL, NULL, NULL, NULL,
NULL,
&retValueSize, &retDataSize, NULL, NULL))
@@ -1256,11 +1256,11 @@ winreg_ExpandEnvironmentStrings_impl(PyObject *module,
DWORD rc;
PyObject *o;
- if (PySys_Audit("winreg.ExpandEnvironmentStrings", "u",
- string) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("winreg.ExpandEnvironmentStrings", "u",
+ string) < 0) {
+ return NULL;
+ }
+
retValueSize = ExpandEnvironmentStringsW(string, retValue, 0);
if (retValueSize == 0) {
return PyErr_SetFromWindowsErrWithFunction(retValueSize,
@@ -1352,10 +1352,10 @@ winreg_LoadKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
{
long rc;
- if (PySys_Audit("winreg.LoadKey", "nuu",
- (Py_ssize_t)key, sub_key, file_name) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.LoadKey", "nuu",
+ (Py_ssize_t)key, sub_key, file_name) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
rc = RegLoadKeyW(key, sub_key, file_name );
Py_END_ALLOW_THREADS
@@ -1391,11 +1391,11 @@ winreg_OpenKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
HKEY retKey;
long rc;
- if (PySys_Audit("winreg.OpenKey", "nun",
- (Py_ssize_t)key, sub_key,
- (Py_ssize_t)access) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.OpenKey", "nun",
+ (Py_ssize_t)key, sub_key,
+ (Py_ssize_t)access) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
rc = RegOpenKeyExW(key, sub_key, reserved, access, &retKey);
Py_END_ALLOW_THREADS
@@ -1403,10 +1403,10 @@ winreg_OpenKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
PyErr_SetFromWindowsErrWithFunction(rc, "RegOpenKeyEx");
return NULL;
}
- if (PySys_Audit("winreg.OpenKey/result", "n",
- (Py_ssize_t)retKey) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.OpenKey/result", "n",
+ (Py_ssize_t)retKey) < 0) {
+ return NULL;
+ }
return retKey;
}
@@ -1447,30 +1447,30 @@ static PyObject *
winreg_QueryInfoKey_impl(PyObject *module, HKEY key)
/*[clinic end generated code: output=dc657b8356a4f438 input=c3593802390cde1f]*/
{
- long rc;
- DWORD nSubKeys, nValues;
- FILETIME ft;
- LARGE_INTEGER li;
- PyObject *l;
- PyObject *ret;
-
- if (PySys_Audit("winreg.QueryInfoKey", "n", (Py_ssize_t)key) < 0) {
- return NULL;
- }
- if ((rc = RegQueryInfoKeyW(key, NULL, NULL, 0, &nSubKeys, NULL, NULL,
- &nValues, NULL, NULL, NULL, &ft))
- != ERROR_SUCCESS) {
- return PyErr_SetFromWindowsErrWithFunction(rc, "RegQueryInfoKey");
- }
- li.LowPart = ft.dwLowDateTime;
- li.HighPart = ft.dwHighDateTime;
- l = PyLong_FromLongLong(li.QuadPart);
- if (l == NULL) {
- return NULL;
- }
- ret = Py_BuildValue("iiO", nSubKeys, nValues, l);
- Py_DECREF(l);
- return ret;
+ long rc;
+ DWORD nSubKeys, nValues;
+ FILETIME ft;
+ LARGE_INTEGER li;
+ PyObject *l;
+ PyObject *ret;
+
+ if (PySys_Audit("winreg.QueryInfoKey", "n", (Py_ssize_t)key) < 0) {
+ return NULL;
+ }
+ if ((rc = RegQueryInfoKeyW(key, NULL, NULL, 0, &nSubKeys, NULL, NULL,
+ &nValues, NULL, NULL, NULL, &ft))
+ != ERROR_SUCCESS) {
+ return PyErr_SetFromWindowsErrWithFunction(rc, "RegQueryInfoKey");
+ }
+ li.LowPart = ft.dwLowDateTime;
+ li.HighPart = ft.dwHighDateTime;
+ l = PyLong_FromLongLong(li.QuadPart);
+ if (l == NULL) {
+ return NULL;
+ }
+ ret = Py_BuildValue("iiO", nSubKeys, nValues, l);
+ Py_DECREF(l);
+ return ret;
}
/*[clinic input]
@@ -1505,10 +1505,10 @@ winreg_QueryValue_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key)
DWORD retSize = 0;
wchar_t *tmp;
- if (PySys_Audit("winreg.QueryValue", "nuu",
- (Py_ssize_t)key, sub_key, NULL) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.QueryValue", "nuu",
+ (Py_ssize_t)key, sub_key, NULL) < 0) {
+ return NULL;
+ }
rc = RegQueryValueW(key, sub_key, NULL, &retSize);
if (rc == ERROR_MORE_DATA)
retSize = 256;
@@ -1576,10 +1576,10 @@ winreg_QueryValueEx_impl(PyObject *module, HKEY key, const Py_UNICODE *name)
PyObject *obData;
PyObject *result;
- if (PySys_Audit("winreg.QueryValue", "nuu",
- (Py_ssize_t)key, NULL, name) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.QueryValue", "nuu",
+ (Py_ssize_t)key, NULL, name) < 0) {
+ return NULL;
+ }
rc = RegQueryValueExW(key, name, NULL, NULL, NULL, &bufSize);
if (rc == ERROR_MORE_DATA)
bufSize = 256;
@@ -1653,10 +1653,10 @@ winreg_SaveKey_impl(PyObject *module, HKEY key, const Py_UNICODE *file_name)
if (!PyWinObject_AsSECURITY_ATTRIBUTES(obSA, &pSA, TRUE))
return NULL;
*/
- if (PySys_Audit("winreg.SaveKey", "nu",
- (Py_ssize_t)key, file_name) < 0) {
- return NULL;
- }
+ if (PySys_Audit("winreg.SaveKey", "nu",
+ (Py_ssize_t)key, file_name) < 0) {
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
rc = RegSaveKeyW(key, file_name, pSA );
Py_END_ALLOW_THREADS
@@ -1701,22 +1701,22 @@ winreg_SetValue_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
long rc;
if (type != REG_SZ) {
- PyErr_SetString(PyExc_TypeError, "type must be winreg.REG_SZ");
+ PyErr_SetString(PyExc_TypeError, "type must be winreg.REG_SZ");
return NULL;
}
- if ((size_t)value_length >= PY_DWORD_MAX) {
- PyErr_SetString(PyExc_OverflowError, "value is too long");
- return NULL;
- }
-
- if (PySys_Audit("winreg.SetValue", "nunu#",
- (Py_ssize_t)key, sub_key, (Py_ssize_t)type,
- value, value_length) < 0) {
- return NULL;
- }
-
+ if ((size_t)value_length >= PY_DWORD_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "value is too long");
+ return NULL;
+ }
+
+ if (PySys_Audit("winreg.SetValue", "nunu#",
+ (Py_ssize_t)key, sub_key, (Py_ssize_t)type,
+ value, value_length) < 0) {
+ return NULL;
+ }
+
Py_BEGIN_ALLOW_THREADS
- rc = RegSetValueW(key, sub_key, REG_SZ, value, (DWORD)(value_length + 1));
+ rc = RegSetValueW(key, sub_key, REG_SZ, value, (DWORD)(value_length + 1));
Py_END_ALLOW_THREADS
if (rc != ERROR_SUCCESS)
return PyErr_SetFromWindowsErrWithFunction(rc, "RegSetValue");
@@ -1785,12 +1785,12 @@ winreg_SetValueEx_impl(PyObject *module, HKEY key,
"Could not convert the data to the specified type.");
return NULL;
}
- if (PySys_Audit("winreg.SetValue", "nunO",
- (Py_ssize_t)key, value_name, (Py_ssize_t)type,
- value) < 0) {
- PyMem_Free(data);
- return NULL;
- }
+ if (PySys_Audit("winreg.SetValue", "nunO",
+ (Py_ssize_t)key, value_name, (Py_ssize_t)type,
+ value) < 0) {
+ PyMem_Free(data);
+ return NULL;
+ }
Py_BEGIN_ALLOW_THREADS
rc = RegSetValueExW(key, value_name, 0, type, data, len);
Py_END_ALLOW_THREADS
@@ -1810,7 +1810,7 @@ winreg.DisableReflectionKey
Disables registry reflection for 32bit processes running on a 64bit OS.
-Will generally raise NotImplementedError if executed on a 32bit OS.
+Will generally raise NotImplementedError if executed on a 32bit OS.
If the key is not on the reflection list, the function succeeds but has
no effect. Disabling reflection for a key does not affect reflection
@@ -1819,25 +1819,25 @@ of any subkeys.
static PyObject *
winreg_DisableReflectionKey_impl(PyObject *module, HKEY key)
-/*[clinic end generated code: output=830cce504cc764b4 input=70bece2dee02e073]*/
+/*[clinic end generated code: output=830cce504cc764b4 input=70bece2dee02e073]*/
{
HMODULE hMod;
typedef LONG (WINAPI *RDRKFunc)(HKEY);
RDRKFunc pfn = NULL;
LONG rc;
- if (PySys_Audit("winreg.DisableReflectionKey", "n", (Py_ssize_t)key) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("winreg.DisableReflectionKey", "n", (Py_ssize_t)key) < 0) {
+ return NULL;
+ }
+
/* Only available on 64bit platforms, so we must load it
dynamically.*/
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
hMod = GetModuleHandleW(L"advapi32.dll");
if (hMod)
pfn = (RDRKFunc)GetProcAddress(hMod,
"RegDisableReflectionKey");
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (!pfn) {
PyErr_SetString(PyExc_NotImplementedError,
"not implemented on this platform");
@@ -1861,32 +1861,32 @@ winreg.EnableReflectionKey
Restores registry reflection for the specified disabled key.
-Will generally raise NotImplementedError if executed on a 32bit OS.
+Will generally raise NotImplementedError if executed on a 32bit OS.
Restoring reflection for a key does not affect reflection of any
subkeys.
[clinic start generated code]*/
static PyObject *
winreg_EnableReflectionKey_impl(PyObject *module, HKEY key)
-/*[clinic end generated code: output=86fa1385fdd9ce57 input=eeae770c6eb9f559]*/
+/*[clinic end generated code: output=86fa1385fdd9ce57 input=eeae770c6eb9f559]*/
{
HMODULE hMod;
typedef LONG (WINAPI *RERKFunc)(HKEY);
RERKFunc pfn = NULL;
LONG rc;
- if (PySys_Audit("winreg.EnableReflectionKey", "n", (Py_ssize_t)key) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("winreg.EnableReflectionKey", "n", (Py_ssize_t)key) < 0) {
+ return NULL;
+ }
+
/* Only available on 64bit platforms, so we must load it
dynamically.*/
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
hMod = GetModuleHandleW(L"advapi32.dll");
if (hMod)
pfn = (RERKFunc)GetProcAddress(hMod,
"RegEnableReflectionKey");
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (!pfn) {
PyErr_SetString(PyExc_NotImplementedError,
"not implemented on this platform");
@@ -1910,12 +1910,12 @@ winreg.QueryReflectionKey
Returns the reflection state for the specified key as a bool.
-Will generally raise NotImplementedError if executed on a 32bit OS.
+Will generally raise NotImplementedError if executed on a 32bit OS.
[clinic start generated code]*/
static PyObject *
winreg_QueryReflectionKey_impl(PyObject *module, HKEY key)
-/*[clinic end generated code: output=4e774af288c3ebb9 input=a98fa51d55ade186]*/
+/*[clinic end generated code: output=4e774af288c3ebb9 input=a98fa51d55ade186]*/
{
HMODULE hMod;
typedef LONG (WINAPI *RQRKFunc)(HKEY, BOOL *);
@@ -1923,18 +1923,18 @@ winreg_QueryReflectionKey_impl(PyObject *module, HKEY key)
BOOL result;
LONG rc;
- if (PySys_Audit("winreg.QueryReflectionKey", "n", (Py_ssize_t)key) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("winreg.QueryReflectionKey", "n", (Py_ssize_t)key) < 0) {
+ return NULL;
+ }
+
/* Only available on 64bit platforms, so we must load it
dynamically.*/
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
hMod = GetModuleHandleW(L"advapi32.dll");
if (hMod)
pfn = (RQRKFunc)GetProcAddress(hMod,
"RegQueryReflectionKey");
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (!pfn) {
PyErr_SetString(PyExc_NotImplementedError,
"not implemented on this platform");
diff --git a/contrib/tools/python3/src/Parser/acceler.c b/contrib/tools/python3/src/Parser/acceler.c
index e83f15f120..e515833e1d 100644
--- a/contrib/tools/python3/src/Parser/acceler.c
+++ b/contrib/tools/python3/src/Parser/acceler.c
@@ -10,21 +10,21 @@
are not part of the static data structure written on graminit.[ch]
by the parser generator. */
-#include "Python.h"
+#include "Python.h"
#include "grammar.h"
#include "node.h"
#include "token.h"
#include "parser.h"
/* Forward references */
-static void fixdfa(grammar *, const dfa *);
+static void fixdfa(grammar *, const dfa *);
static void fixstate(grammar *, state *);
void
PyGrammar_AddAccelerators(grammar *g)
{
int i;
- const dfa *d = g->g_dfa;
+ const dfa *d = g->g_dfa;
for (i = g->g_ndfas; --i >= 0; d++)
fixdfa(g, d);
g->g_accel = 1;
@@ -35,7 +35,7 @@ PyGrammar_RemoveAccelerators(grammar *g)
{
int i;
g->g_accel = 0;
- const dfa *d = g->g_dfa;
+ const dfa *d = g->g_dfa;
for (i = g->g_ndfas; --i >= 0; d++) {
state *s;
int j;
@@ -49,7 +49,7 @@ PyGrammar_RemoveAccelerators(grammar *g)
}
static void
-fixdfa(grammar *g, const dfa *d)
+fixdfa(grammar *g, const dfa *d)
{
state *s;
int j;
@@ -61,7 +61,7 @@ fixdfa(grammar *g, const dfa *d)
static void
fixstate(grammar *g, state *s)
{
- const arc *a;
+ const arc *a;
int k;
int *accel;
int nl = g->g_ll.ll_nlabels;
@@ -76,14 +76,14 @@ fixstate(grammar *g, state *s)
a = s->s_arc;
for (k = s->s_narcs; --k >= 0; a++) {
int lbl = a->a_lbl;
- const label *l = &g->g_ll.ll_label[lbl];
+ const label *l = &g->g_ll.ll_label[lbl];
int type = l->lb_type;
if (a->a_arrow >= (1 << 7)) {
printf("XXX too many states!\n");
continue;
}
if (ISNONTERMINAL(type)) {
- const dfa *d1 = PyGrammar_FindDFA(g, type);
+ const dfa *d1 = PyGrammar_FindDFA(g, type);
int ibit;
if (type - NT_OFFSET >= (1 << 7)) {
printf("XXX too high nonterminal number!\n");
diff --git a/contrib/tools/python3/src/Parser/grammar1.c b/contrib/tools/python3/src/Parser/grammar1.c
index 574679a6d6..c702040efd 100644
--- a/contrib/tools/python3/src/Parser/grammar1.c
+++ b/contrib/tools/python3/src/Parser/grammar1.c
@@ -7,11 +7,11 @@
/* Return the DFA for the given type */
-const dfa *
+const dfa *
PyGrammar_FindDFA(grammar *g, int type)
{
/* Massive speed-up */
- const dfa *d = &g->g_dfa[type - NT_OFFSET];
+ const dfa *d = &g->g_dfa[type - NT_OFFSET];
assert(d->d_type == type);
return d;
}
@@ -41,7 +41,7 @@ PyGrammar_LabelRepr(label *lb)
}
}
else {
- Py_FatalError("invalid grammar label");
+ Py_FatalError("invalid grammar label");
return NULL;
}
}
diff --git a/contrib/tools/python3/src/Parser/listnode.c b/contrib/tools/python3/src/Parser/listnode.c
index 2479cec778..c806b98e48 100644
--- a/contrib/tools/python3/src/Parser/listnode.c
+++ b/contrib/tools/python3/src/Parser/listnode.c
@@ -1,9 +1,9 @@
/* List a node on a file */
-#include "Python.h"
-#include "pycore_interp.h" // PyInterpreterState.parser
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "Python.h"
+#include "pycore_interp.h" // PyInterpreterState.parser
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "token.h"
#include "node.h"
@@ -20,18 +20,18 @@ PyNode_ListTree(node *n)
static void
listnode(FILE *fp, node *n)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
-
- interp->parser.listnode.level = 0;
- interp->parser.listnode.atbol = 1;
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+
+ interp->parser.listnode.level = 0;
+ interp->parser.listnode.atbol = 1;
list1node(fp, n);
}
static void
list1node(FILE *fp, node *n)
{
- PyInterpreterState *interp;
-
+ PyInterpreterState *interp;
+
if (n == NULL)
return;
if (ISNONTERMINAL(TYPE(n))) {
@@ -40,26 +40,26 @@ list1node(FILE *fp, node *n)
list1node(fp, CHILD(n, i));
}
else if (ISTERMINAL(TYPE(n))) {
- interp = _PyInterpreterState_GET();
+ interp = _PyInterpreterState_GET();
switch (TYPE(n)) {
case INDENT:
- interp->parser.listnode.level++;
+ interp->parser.listnode.level++;
break;
case DEDENT:
- interp->parser.listnode.level--;
+ interp->parser.listnode.level--;
break;
default:
- if (interp->parser.listnode.atbol) {
+ if (interp->parser.listnode.atbol) {
int i;
- for (i = 0; i < interp->parser.listnode.level; ++i)
+ for (i = 0; i < interp->parser.listnode.level; ++i)
fprintf(fp, "\t");
- interp->parser.listnode.atbol = 0;
+ interp->parser.listnode.atbol = 0;
}
if (TYPE(n) == NEWLINE) {
if (STR(n) != NULL)
fprintf(fp, "%s", STR(n));
fprintf(fp, "\n");
- interp->parser.listnode.atbol = 1;
+ interp->parser.listnode.atbol = 1;
}
else
fprintf(fp, "%s ", STR(n));
diff --git a/contrib/tools/python3/src/Parser/myreadline.c b/contrib/tools/python3/src/Parser/myreadline.c
index 672b6af226..143b41f1ea 100644
--- a/contrib/tools/python3/src/Parser/myreadline.c
+++ b/contrib/tools/python3/src/Parser/myreadline.c
@@ -10,10 +10,10 @@
*/
#include "Python.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_pystate.h" // _PyThreadState_GET()
#ifdef MS_WINDOWS
-# define WIN32_LEAN_AND_MEAN
-# include "windows.h"
+# define WIN32_LEAN_AND_MEAN
+# include "windows.h"
#endif /* MS_WINDOWS */
@@ -24,36 +24,36 @@ static PyThread_type_lock _PyOS_ReadlineLock = NULL;
int (*PyOS_InputHook)(void) = NULL;
/* This function restarts a fgets() after an EINTR error occurred
- except if _PyOS_InterruptOccurred() returns true. */
+ except if _PyOS_InterruptOccurred() returns true. */
static int
-my_fgets(PyThreadState* tstate, char *buf, int len, FILE *fp)
+my_fgets(PyThreadState* tstate, char *buf, int len, FILE *fp)
{
#ifdef MS_WINDOWS
- HANDLE handle;
- _Py_BEGIN_SUPPRESS_IPH
- handle = (HANDLE)_get_osfhandle(fileno(fp));
- _Py_END_SUPPRESS_IPH
-
- /* bpo-40826: fgets(fp) does crash if fileno(fp) is closed */
- if (handle == INVALID_HANDLE_VALUE) {
- return -1; /* EOF */
- }
+ HANDLE handle;
+ _Py_BEGIN_SUPPRESS_IPH
+ handle = (HANDLE)_get_osfhandle(fileno(fp));
+ _Py_END_SUPPRESS_IPH
+
+ /* bpo-40826: fgets(fp) does crash if fileno(fp) is closed */
+ if (handle == INVALID_HANDLE_VALUE) {
+ return -1; /* EOF */
+ }
#endif
-
+
while (1) {
- if (PyOS_InputHook != NULL) {
+ if (PyOS_InputHook != NULL) {
(void)(PyOS_InputHook)();
- }
-
+ }
+
errno = 0;
clearerr(fp);
- char *p = fgets(buf, len, fp);
- if (p != NULL) {
+ char *p = fgets(buf, len, fp);
+ if (p != NULL) {
return 0; /* No error */
- }
- int err = errno;
-
+ }
+ int err = errno;
+
#ifdef MS_WINDOWS
/* Ctrl-C anywhere on the line or Ctrl-Z if the only character
on a line will set ERROR_OPERATION_ABORTED. Under normal
@@ -69,7 +69,7 @@ my_fgets(PyThreadState* tstate, char *buf, int len, FILE *fp)
through to check for EOF.
*/
if (GetLastError()==ERROR_OPERATION_ABORTED) {
- HANDLE hInterruptEvent = _PyOS_SigintEvent();
+ HANDLE hInterruptEvent = _PyOS_SigintEvent();
switch (WaitForSingleObjectEx(hInterruptEvent, 10, FALSE)) {
case WAIT_OBJECT_0:
ResetEvent(hInterruptEvent);
@@ -79,27 +79,27 @@ my_fgets(PyThreadState* tstate, char *buf, int len, FILE *fp)
}
}
#endif /* MS_WINDOWS */
-
+
if (feof(fp)) {
clearerr(fp);
return -1; /* EOF */
}
-
+
#ifdef EINTR
if (err == EINTR) {
- PyEval_RestoreThread(tstate);
- int s = PyErr_CheckSignals();
+ PyEval_RestoreThread(tstate);
+ int s = PyErr_CheckSignals();
PyEval_SaveThread();
-
- if (s < 0) {
- return 1;
- }
- /* try again */
+
+ if (s < 0) {
+ return 1;
+ }
+ /* try again */
continue;
}
#endif
-
- if (_PyOS_InterruptOccurred(tstate)) {
+
+ if (_PyOS_InterruptOccurred(tstate)) {
return 1; /* Interrupt */
}
return -2; /* Error */
@@ -113,7 +113,7 @@ my_fgets(PyThreadState* tstate, char *buf, int len, FILE *fp)
extern char _get_console_type(HANDLE handle);
char *
-_PyOS_WindowsConsoleReadline(PyThreadState *tstate, HANDLE hStdIn)
+_PyOS_WindowsConsoleReadline(PyThreadState *tstate, HANDLE hStdIn)
{
static wchar_t wbuf_local[1024 * 16];
const DWORD chunk_size = 1024;
@@ -148,12 +148,12 @@ _PyOS_WindowsConsoleReadline(PyThreadState *tstate, HANDLE hStdIn)
if (WaitForSingleObjectEx(hInterruptEvent, 100, FALSE)
== WAIT_OBJECT_0) {
ResetEvent(hInterruptEvent);
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
s = PyErr_CheckSignals();
PyEval_SaveThread();
- if (s < 0) {
+ if (s < 0) {
goto exit;
- }
+ }
}
break;
}
@@ -166,22 +166,22 @@ _PyOS_WindowsConsoleReadline(PyThreadState *tstate, HANDLE hStdIn)
if (wbuf == wbuf_local) {
wbuf[total_read] = '\0';
wbuf = (wchar_t*)PyMem_RawMalloc(wbuflen * sizeof(wchar_t));
- if (wbuf) {
+ if (wbuf) {
wcscpy_s(wbuf, wbuflen, wbuf_local);
- }
+ }
else {
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_NoMemory();
- PyEval_SaveThread();
+ PyEval_SaveThread();
goto exit;
}
}
else {
wchar_t *tmp = PyMem_RawRealloc(wbuf, wbuflen * sizeof(wchar_t));
if (tmp == NULL) {
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_NoMemory();
- PyEval_SaveThread();
+ PyEval_SaveThread();
goto exit;
}
wbuf = tmp;
@@ -190,42 +190,42 @@ _PyOS_WindowsConsoleReadline(PyThreadState *tstate, HANDLE hStdIn)
if (wbuf[0] == '\x1a') {
buf = PyMem_RawMalloc(1);
- if (buf) {
+ if (buf) {
buf[0] = '\0';
- }
+ }
else {
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_NoMemory();
- PyEval_SaveThread();
+ PyEval_SaveThread();
}
goto exit;
}
- u8len = WideCharToMultiByte(CP_UTF8, 0,
- wbuf, total_read,
- NULL, 0,
- NULL, NULL);
+ u8len = WideCharToMultiByte(CP_UTF8, 0,
+ wbuf, total_read,
+ NULL, 0,
+ NULL, NULL);
buf = PyMem_RawMalloc(u8len + 1);
if (buf == NULL) {
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_NoMemory();
- PyEval_SaveThread();
+ PyEval_SaveThread();
goto exit;
}
-
- u8len = WideCharToMultiByte(CP_UTF8, 0,
- wbuf, total_read,
- buf, u8len,
- NULL, NULL);
+
+ u8len = WideCharToMultiByte(CP_UTF8, 0,
+ wbuf, total_read,
+ buf, u8len,
+ NULL, NULL);
buf[u8len] = '\0';
exit:
- if (wbuf != wbuf_local) {
+ if (wbuf != wbuf_local) {
PyMem_RawFree(wbuf);
- }
+ }
if (err) {
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_SetFromWindowsErr(err);
PyEval_SaveThread();
}
@@ -242,8 +242,8 @@ PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
{
size_t n;
char *p, *pr;
- PyThreadState *tstate = _PyOS_ReadlineTState;
- assert(tstate != NULL);
+ PyThreadState *tstate = _PyOS_ReadlineTState;
+ assert(tstate != NULL);
#ifdef MS_WINDOWS
if (!Py_LegacyWindowsStdioFlag && sys_stdin == stdin) {
@@ -265,9 +265,9 @@ PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
if (wlen) {
wbuf = PyMem_RawMalloc(wlen * sizeof(wchar_t));
if (wbuf == NULL) {
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_NoMemory();
- PyEval_SaveThread();
+ PyEval_SaveThread();
return NULL;
}
wlen = MultiByteToWideChar(CP_UTF8, 0, prompt, -1,
@@ -286,56 +286,56 @@ PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
}
}
clearerr(sys_stdin);
- return _PyOS_WindowsConsoleReadline(tstate, hStdIn);
+ return _PyOS_WindowsConsoleReadline(tstate, hStdIn);
}
}
#endif
fflush(sys_stdout);
- if (prompt) {
+ if (prompt) {
fprintf(stderr, "%s", prompt);
- }
+ }
fflush(stderr);
- n = 0;
- p = NULL;
- do {
- size_t incr = (n > 0) ? n + 2 : 100;
+ n = 0;
+ p = NULL;
+ do {
+ size_t incr = (n > 0) ? n + 2 : 100;
if (incr > INT_MAX) {
PyMem_RawFree(p);
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_SetString(PyExc_OverflowError, "input line too long");
- PyEval_SaveThread();
+ PyEval_SaveThread();
return NULL;
}
pr = (char *)PyMem_RawRealloc(p, n + incr);
if (pr == NULL) {
PyMem_RawFree(p);
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_NoMemory();
- PyEval_SaveThread();
+ PyEval_SaveThread();
return NULL;
}
p = pr;
- int err = my_fgets(tstate, p + n, (int)incr, sys_stdin);
- if (err == 1) {
- // Interrupt
- PyMem_RawFree(p);
- return NULL;
- } else if (err != 0) {
- // EOF or error
- p[n] = '\0';
+ int err = my_fgets(tstate, p + n, (int)incr, sys_stdin);
+ if (err == 1) {
+ // Interrupt
+ PyMem_RawFree(p);
+ return NULL;
+ } else if (err != 0) {
+ // EOF or error
+ p[n] = '\0';
break;
- }
- n += strlen(p + n);
- } while (p[n-1] != '\n');
-
+ }
+ n += strlen(p + n);
+ } while (p[n-1] != '\n');
+
pr = (char *)PyMem_RawRealloc(p, n+1);
if (pr == NULL) {
PyMem_RawFree(p);
- PyEval_RestoreThread(tstate);
+ PyEval_RestoreThread(tstate);
PyErr_NoMemory();
- PyEval_SaveThread();
+ PyEval_SaveThread();
return NULL;
}
return pr;
@@ -358,8 +358,8 @@ PyOS_Readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
char *rv, *res;
size_t len;
- PyThreadState *tstate = _PyThreadState_GET();
- if (_PyOS_ReadlineTState == tstate) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (_PyOS_ReadlineTState == tstate) {
PyErr_SetString(PyExc_RuntimeError,
"can't re-enter readline");
return NULL;
@@ -378,7 +378,7 @@ PyOS_Readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
}
}
- _PyOS_ReadlineTState = tstate;
+ _PyOS_ReadlineTState = tstate;
Py_BEGIN_ALLOW_THREADS
PyThread_acquire_lock(_PyOS_ReadlineLock, 1);
diff --git a/contrib/tools/python3/src/Parser/node.c b/contrib/tools/python3/src/Parser/node.c
index 9d1fc24d83..8789e01e9b 100644
--- a/contrib/tools/python3/src/Parser/node.c
+++ b/contrib/tools/python3/src/Parser/node.c
@@ -13,9 +13,9 @@ PyNode_New(int type)
n->n_type = type;
n->n_str = NULL;
n->n_lineno = 0;
- n->n_end_lineno = 0;
- n->n_col_offset = 0;
- n->n_end_col_offset = -1;
+ n->n_end_lineno = 0;
+ n->n_col_offset = 0;
+ n->n_end_col_offset = -1;
n->n_nchildren = 0;
n->n_child = NULL;
return n;
@@ -78,34 +78,34 @@ fancy_roundup(int n)
fancy_roundup(n))
-void
-_PyNode_FinalizeEndPos(node *n)
-{
- int nch = NCH(n);
- node *last;
- if (nch == 0) {
- return;
- }
- last = CHILD(n, nch - 1);
- _PyNode_FinalizeEndPos(last);
- n->n_end_lineno = last->n_end_lineno;
- n->n_end_col_offset = last->n_end_col_offset;
-}
-
+void
+_PyNode_FinalizeEndPos(node *n)
+{
+ int nch = NCH(n);
+ node *last;
+ if (nch == 0) {
+ return;
+ }
+ last = CHILD(n, nch - 1);
+ _PyNode_FinalizeEndPos(last);
+ n->n_end_lineno = last->n_end_lineno;
+ n->n_end_col_offset = last->n_end_col_offset;
+}
+
int
-PyNode_AddChild(node *n1, int type, char *str, int lineno, int col_offset,
- int end_lineno, int end_col_offset)
+PyNode_AddChild(node *n1, int type, char *str, int lineno, int col_offset,
+ int end_lineno, int end_col_offset)
{
const int nch = n1->n_nchildren;
int current_capacity;
int required_capacity;
node *n;
- // finalize end position of previous node (if any)
- if (nch > 0) {
- _PyNode_FinalizeEndPos(CHILD(n1, nch - 1));
- }
-
+ // finalize end position of previous node (if any)
+ if (nch > 0) {
+ _PyNode_FinalizeEndPos(CHILD(n1, nch - 1));
+ }
+
if (nch == INT_MAX || nch < 0)
return E_OVERFLOW;
@@ -130,8 +130,8 @@ PyNode_AddChild(node *n1, int type, char *str, int lineno, int col_offset,
n->n_str = str;
n->n_lineno = lineno;
n->n_col_offset = col_offset;
- n->n_end_lineno = end_lineno; // this and below will be updates after all children are added.
- n->n_end_col_offset = end_col_offset;
+ n->n_end_lineno = end_lineno; // this and below will be updates after all children are added.
+ n->n_end_col_offset = end_col_offset;
n->n_nchildren = 0;
n->n_child = NULL;
return 0;
diff --git a/contrib/tools/python3/src/Parser/parser.c b/contrib/tools/python3/src/Parser/parser.c
index cc6050ca20..a61b2f5ebf 100644
--- a/contrib/tools/python3/src/Parser/parser.c
+++ b/contrib/tools/python3/src/Parser/parser.c
@@ -11,7 +11,7 @@
#include "node.h"
#include "parser.h"
#include "errcode.h"
-#include "graminit.h"
+#include "graminit.h"
#ifdef Py_DEBUG
@@ -35,7 +35,7 @@ s_reset(stack *s)
#define s_empty(s) ((s)->s_top == &(s)->s_base[MAXSTACK])
static int
-s_push(stack *s, const dfa *d, node *parent)
+s_push(stack *s, const dfa *d, node *parent)
{
stackentry *top;
if (s->s_top == s->s_base) {
@@ -54,9 +54,9 @@ s_push(stack *s, const dfa *d, node *parent)
static void
s_pop(stack *s)
{
- if (s_empty(s)) {
- Py_FatalError("parser stack underflow");
- }
+ if (s_empty(s)) {
+ Py_FatalError("parser stack underflow");
+ }
s->s_top++;
}
@@ -106,13 +106,13 @@ PyParser_Delete(parser_state *ps)
/* PARSER STACK OPERATIONS */
static int
-shift(stack *s, int type, char *str, int newstate, int lineno, int col_offset,
- int end_lineno, int end_col_offset)
+shift(stack *s, int type, char *str, int newstate, int lineno, int col_offset,
+ int end_lineno, int end_col_offset)
{
int err;
assert(!s_empty(s));
- err = PyNode_AddChild(s->s_top->s_parent, type, str, lineno, col_offset,
- end_lineno, end_col_offset);
+ err = PyNode_AddChild(s->s_top->s_parent, type, str, lineno, col_offset,
+ end_lineno, end_col_offset);
if (err)
return err;
s->s_top->s_state = newstate;
@@ -120,15 +120,15 @@ shift(stack *s, int type, char *str, int newstate, int lineno, int col_offset,
}
static int
-push(stack *s, int type, const dfa *d, int newstate, int lineno, int col_offset,
- int end_lineno, int end_col_offset)
+push(stack *s, int type, const dfa *d, int newstate, int lineno, int col_offset,
+ int end_lineno, int end_col_offset)
{
int err;
node *n;
n = s->s_top->s_parent;
assert(!s_empty(s));
- err = PyNode_AddChild(n, type, (char *)NULL, lineno, col_offset,
- end_lineno, end_col_offset);
+ err = PyNode_AddChild(n, type, (char *)NULL, lineno, col_offset,
+ end_lineno, end_col_offset);
if (err)
return err;
s->s_top->s_state = newstate;
@@ -145,7 +145,7 @@ classify(parser_state *ps, int type, const char *str)
int n = g->g_ll.ll_nlabels;
if (type == NAME) {
- const label *l = g->g_ll.ll_label;
+ const label *l = g->g_ll.ll_label;
int i;
for (i = n; i > 0; i--, l++) {
if (l->lb_type != NAME || l->lb_str == NULL ||
@@ -169,7 +169,7 @@ classify(parser_state *ps, int type, const char *str)
}
{
- const label *l = g->g_ll.ll_label;
+ const label *l = g->g_ll.ll_label;
int i;
for (i = n; i > 0; i--, l++) {
if (l->lb_type == type && l->lb_str == NULL) {
@@ -230,9 +230,9 @@ future_hack(parser_state *ps)
int
PyParser_AddToken(parser_state *ps, int type, char *str,
- int lineno, int col_offset,
- int end_lineno, int end_col_offset,
- int *expected_ret)
+ int lineno, int col_offset,
+ int end_lineno, int end_col_offset,
+ int *expected_ret)
{
int ilabel;
int err;
@@ -247,7 +247,7 @@ PyParser_AddToken(parser_state *ps, int type, char *str,
/* Loop until the token is shifted or an error occurred */
for (;;) {
/* Fetch the current dfa and state */
- const dfa *d = ps->p_stack.s_top->s_dfa;
+ const dfa *d = ps->p_stack.s_top->s_dfa;
state *s = &d->d_state[ps->p_stack.s_top->s_state];
D(printf(" DFA '%s', state %d:",
@@ -261,29 +261,29 @@ PyParser_AddToken(parser_state *ps, int type, char *str,
/* Push non-terminal */
int nt = (x >> 8) + NT_OFFSET;
int arrow = x & ((1<<7)-1);
- if (nt == func_body_suite && !(ps->p_flags & PyCF_TYPE_COMMENTS)) {
- /* When parsing type comments is not requested,
- we can provide better errors about bad indentation
- by using 'suite' for the body of a funcdef */
- D(printf(" [switch func_body_suite to suite]"));
- nt = suite;
- }
- const dfa *d1 = PyGrammar_FindDFA(
+ if (nt == func_body_suite && !(ps->p_flags & PyCF_TYPE_COMMENTS)) {
+ /* When parsing type comments is not requested,
+ we can provide better errors about bad indentation
+ by using 'suite' for the body of a funcdef */
+ D(printf(" [switch func_body_suite to suite]"));
+ nt = suite;
+ }
+ const dfa *d1 = PyGrammar_FindDFA(
ps->p_grammar, nt);
if ((err = push(&ps->p_stack, nt, d1,
- arrow, lineno, col_offset,
- end_lineno, end_col_offset)) > 0) {
+ arrow, lineno, col_offset,
+ end_lineno, end_col_offset)) > 0) {
D(printf(" MemError: push\n"));
return err;
}
- D(printf(" Push '%s'\n", d1->d_name));
+ D(printf(" Push '%s'\n", d1->d_name));
continue;
}
/* Shift the token */
if ((err = shift(&ps->p_stack, type, str,
- x, lineno, col_offset,
- end_lineno, end_col_offset)) > 0) {
+ x, lineno, col_offset,
+ end_lineno, end_col_offset)) > 0) {
D(printf(" MemError: shift.\n"));
return err;
}
diff --git a/contrib/tools/python3/src/Parser/parser.h b/contrib/tools/python3/src/Parser/parser.h
index 28cf6f3782..b16075e7f2 100644
--- a/contrib/tools/python3/src/Parser/parser.h
+++ b/contrib/tools/python3/src/Parser/parser.h
@@ -7,11 +7,11 @@ extern "C" {
/* Parser interface */
-#define MAXSTACK 1700
+#define MAXSTACK 1700
typedef struct {
int s_state; /* State in current DFA */
- const dfa *s_dfa; /* Current DFA */
+ const dfa *s_dfa; /* Current DFA */
struct _node *s_parent; /* Where to add next node */
} stackentry;
@@ -32,17 +32,17 @@ typedef struct {
parser_state *PyParser_New(grammar *g, int start);
void PyParser_Delete(parser_state *ps);
-int PyParser_AddToken(parser_state *ps, int type, char *str,
- int lineno, int col_offset,
- int end_lineno, int end_col_offset,
+int PyParser_AddToken(parser_state *ps, int type, char *str,
+ int lineno, int col_offset,
+ int end_lineno, int end_col_offset,
int *expected_ret);
void PyGrammar_AddAccelerators(grammar *g);
-
-#define showtree _Py_showtree
-#define printtree _Py_printtree
-#define dumptree _Py_dumptree
-
+
+#define showtree _Py_showtree
+#define printtree _Py_printtree
+#define dumptree _Py_dumptree
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Parser/parsetok.c b/contrib/tools/python3/src/Parser/parsetok.c
index 1000887dbf..1ecb2c4a16 100644
--- a/contrib/tools/python3/src/Parser/parsetok.c
+++ b/contrib/tools/python3/src/Parser/parsetok.c
@@ -1,7 +1,7 @@
/* Parser-tokenizer link implementation */
-#include "Python.h"
+#include "Python.h"
#include "tokenizer.h"
#include "node.h"
#include "grammar.h"
@@ -15,51 +15,51 @@
static node *parsetok(struct tok_state *, grammar *, int, perrdetail *, int *);
static int initerr(perrdetail *err_ret, PyObject * filename);
-typedef struct {
- struct {
- int lineno;
- char *comment;
- } *items;
- size_t size;
- size_t num_items;
-} growable_comment_array;
-
-static int
-growable_comment_array_init(growable_comment_array *arr, size_t initial_size) {
- assert(initial_size > 0);
- arr->items = malloc(initial_size * sizeof(*arr->items));
- arr->size = initial_size;
- arr->num_items = 0;
-
- return arr->items != NULL;
-}
-
-static int
-growable_comment_array_add(growable_comment_array *arr, int lineno, char *comment) {
- if (arr->num_items >= arr->size) {
- size_t new_size = arr->size * 2;
- void *new_items_array = realloc(arr->items, new_size * sizeof(*arr->items));
- if (!new_items_array) {
- return 0;
- }
- arr->items = new_items_array;
- arr->size = new_size;
- }
-
- arr->items[arr->num_items].lineno = lineno;
- arr->items[arr->num_items].comment = comment;
- arr->num_items++;
- return 1;
-}
-
-static void
-growable_comment_array_deallocate(growable_comment_array *arr) {
- for (unsigned i = 0; i < arr->num_items; i++) {
- PyObject_FREE(arr->items[i].comment);
- }
- free(arr->items);
-}
-
+typedef struct {
+ struct {
+ int lineno;
+ char *comment;
+ } *items;
+ size_t size;
+ size_t num_items;
+} growable_comment_array;
+
+static int
+growable_comment_array_init(growable_comment_array *arr, size_t initial_size) {
+ assert(initial_size > 0);
+ arr->items = malloc(initial_size * sizeof(*arr->items));
+ arr->size = initial_size;
+ arr->num_items = 0;
+
+ return arr->items != NULL;
+}
+
+static int
+growable_comment_array_add(growable_comment_array *arr, int lineno, char *comment) {
+ if (arr->num_items >= arr->size) {
+ size_t new_size = arr->size * 2;
+ void *new_items_array = realloc(arr->items, new_size * sizeof(*arr->items));
+ if (!new_items_array) {
+ return 0;
+ }
+ arr->items = new_items_array;
+ arr->size = new_size;
+ }
+
+ arr->items[arr->num_items].lineno = lineno;
+ arr->items[arr->num_items].comment = comment;
+ arr->num_items++;
+ return 1;
+}
+
+static void
+growable_comment_array_deallocate(growable_comment_array *arr) {
+ for (unsigned i = 0; i < arr->num_items; i++) {
+ PyObject_FREE(arr->items[i].comment);
+ }
+ free(arr->items);
+}
+
/* Parse input coming from a string. Return error code, print some errors. */
node *
PyParser_ParseString(const char *s, grammar *g, int start, perrdetail *err_ret)
@@ -96,11 +96,11 @@ PyParser_ParseStringObject(const char *s, PyObject *filename,
if (initerr(err_ret, filename) < 0)
return NULL;
- if (PySys_Audit("compile", "yO", s, err_ret->filename) < 0) {
- err_ret->error = E_ERROR;
- return NULL;
- }
-
+ if (PySys_Audit("compile", "yO", s, err_ret->filename) < 0) {
+ err_ret->error = E_ERROR;
+ return NULL;
+ }
+
if (*flags & PyPARSE_IGNORE_COOKIE)
tok = PyTokenizer_FromUTF8(s, exec_input);
else
@@ -109,14 +109,14 @@ PyParser_ParseStringObject(const char *s, PyObject *filename,
err_ret->error = PyErr_Occurred() ? E_DECODE : E_NOMEM;
return NULL;
}
- if (*flags & PyPARSE_TYPE_COMMENTS) {
- tok->type_comments = 1;
- }
+ if (*flags & PyPARSE_TYPE_COMMENTS) {
+ tok->type_comments = 1;
+ }
Py_INCREF(err_ret->filename);
tok->filename = err_ret->filename;
- if (*flags & PyPARSE_ASYNC_HACKS)
- tok->async_hacks = 1;
+ if (*flags & PyPARSE_ASYNC_HACKS)
+ tok->async_hacks = 1;
return parsetok(tok, g, start, err_ret, flags);
}
@@ -172,17 +172,17 @@ PyParser_ParseFileObject(FILE *fp, PyObject *filename,
if (initerr(err_ret, filename) < 0)
return NULL;
- if (PySys_Audit("compile", "OO", Py_None, err_ret->filename) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("compile", "OO", Py_None, err_ret->filename) < 0) {
+ return NULL;
+ }
+
if ((tok = PyTokenizer_FromFile(fp, enc, ps1, ps2)) == NULL) {
err_ret->error = E_NOMEM;
return NULL;
}
- if (*flags & PyPARSE_TYPE_COMMENTS) {
- tok->type_comments = 1;
- }
+ if (*flags & PyPARSE_TYPE_COMMENTS) {
+ tok->type_comments = 1;
+ }
Py_INCREF(err_ret->filename);
tok->filename = err_ret->filename;
return parsetok(tok, g, start, err_ret, flags);
@@ -219,39 +219,39 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
parser_state *ps;
node *n;
int started = 0;
- int col_offset, end_col_offset;
- growable_comment_array type_ignores;
-
- if (!growable_comment_array_init(&type_ignores, 10)) {
- err_ret->error = E_NOMEM;
- PyTokenizer_Free(tok);
- return NULL;
- }
-
+ int col_offset, end_col_offset;
+ growable_comment_array type_ignores;
+
+ if (!growable_comment_array_init(&type_ignores, 10)) {
+ err_ret->error = E_NOMEM;
+ PyTokenizer_Free(tok);
+ return NULL;
+ }
+
if ((ps = PyParser_New(g, start)) == NULL) {
err_ret->error = E_NOMEM;
- growable_comment_array_deallocate(&type_ignores);
+ growable_comment_array_deallocate(&type_ignores);
PyTokenizer_Free(tok);
return NULL;
}
#ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD
if (*flags & PyPARSE_BARRY_AS_BDFL)
ps->p_flags |= CO_FUTURE_BARRY_AS_BDFL;
- if (*flags & PyPARSE_TYPE_COMMENTS)
- ps->p_flags |= PyCF_TYPE_COMMENTS;
+ if (*flags & PyPARSE_TYPE_COMMENTS)
+ ps->p_flags |= PyCF_TYPE_COMMENTS;
#endif
for (;;) {
- const char *a, *b;
+ const char *a, *b;
int type;
size_t len;
char *str;
- col_offset = -1;
- int lineno;
- const char *line_start;
+ col_offset = -1;
+ int lineno;
+ const char *line_start;
type = PyTokenizer_Get(tok, &a, &b);
-
+
len = (a != NULL && b != NULL) ? b - a : 0;
str = (char *) PyObject_MALLOC(len + 1);
if (str == NULL) {
@@ -279,65 +279,65 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
}
}
#endif
-
- /* Nodes of type STRING, especially multi line strings
- must be handled differently in order to get both
- the starting line number and the column offset right.
- (cf. issue 16806) */
- lineno = type == STRING ? tok->first_lineno : tok->lineno;
- line_start = type == STRING ? tok->multi_line_start : tok->line_start;
- if (a != NULL && a >= line_start) {
- col_offset = Py_SAFE_DOWNCAST(a - line_start,
+
+ /* Nodes of type STRING, especially multi line strings
+ must be handled differently in order to get both
+ the starting line number and the column offset right.
+ (cf. issue 16806) */
+ lineno = type == STRING ? tok->first_lineno : tok->lineno;
+ line_start = type == STRING ? tok->multi_line_start : tok->line_start;
+ if (a != NULL && a >= line_start) {
+ col_offset = Py_SAFE_DOWNCAST(a - line_start,
intptr_t, int);
}
else {
col_offset = -1;
}
- if (b != NULL && b >= tok->line_start) {
- end_col_offset = Py_SAFE_DOWNCAST(b - tok->line_start,
- intptr_t, int);
- }
- else {
- end_col_offset = -1;
- }
-
- if (type == TYPE_IGNORE) {
- if (!growable_comment_array_add(&type_ignores, tok->lineno, str)) {
- err_ret->error = E_NOMEM;
- break;
- }
- continue;
- }
-
- if (type == ERRORTOKEN) {
- err_ret->error = tok->done;
- break;
- }
- if (type == ENDMARKER && started) {
- type = NEWLINE; /* Add an extra newline */
- started = 0;
- /* Add the right number of dedent tokens,
- except if a certain flag is given --
- codeop.py uses this. */
- if (tok->indent &&
- !(*flags & PyPARSE_DONT_IMPLY_DEDENT))
- {
- tok->pendin = -tok->indent;
- tok->indent = 0;
- }
- }
- else {
- started = 1;
- }
-
+ if (b != NULL && b >= tok->line_start) {
+ end_col_offset = Py_SAFE_DOWNCAST(b - tok->line_start,
+ intptr_t, int);
+ }
+ else {
+ end_col_offset = -1;
+ }
+
+ if (type == TYPE_IGNORE) {
+ if (!growable_comment_array_add(&type_ignores, tok->lineno, str)) {
+ err_ret->error = E_NOMEM;
+ break;
+ }
+ continue;
+ }
+
+ if (type == ERRORTOKEN) {
+ err_ret->error = tok->done;
+ break;
+ }
+ if (type == ENDMARKER && started) {
+ type = NEWLINE; /* Add an extra newline */
+ started = 0;
+ /* Add the right number of dedent tokens,
+ except if a certain flag is given --
+ codeop.py uses this. */
+ if (tok->indent &&
+ !(*flags & PyPARSE_DONT_IMPLY_DEDENT))
+ {
+ tok->pendin = -tok->indent;
+ tok->indent = 0;
+ }
+ }
+ else {
+ started = 1;
+ }
+
if ((err_ret->error =
PyParser_AddToken(ps, (int)type, str,
- lineno, col_offset, tok->lineno, end_col_offset,
+ lineno, col_offset, tok->lineno, end_col_offset,
&(err_ret->expected))) != E_OK) {
- if (tok->done == E_EOF && !ISWHITESPACE(type)) {
- tok->done = E_SYNTAX;
- }
+ if (tok->done == E_EOF && !ISWHITESPACE(type)) {
+ tok->done = E_SYNTAX;
+ }
if (err_ret->error != E_DONE) {
PyObject_FREE(str);
err_ret->token = type;
@@ -350,36 +350,36 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
n = ps->p_tree;
ps->p_tree = NULL;
- if (n->n_type == file_input) {
- /* Put type_ignore nodes in the ENDMARKER of file_input. */
- int num;
- node *ch;
- size_t i;
-
- num = NCH(n);
- ch = CHILD(n, num - 1);
- REQ(ch, ENDMARKER);
-
- for (i = 0; i < type_ignores.num_items; i++) {
- int res = PyNode_AddChild(ch, TYPE_IGNORE, type_ignores.items[i].comment,
- type_ignores.items[i].lineno, 0,
- type_ignores.items[i].lineno, 0);
- if (res != 0) {
- err_ret->error = res;
- PyNode_Free(n);
- n = NULL;
- break;
- }
- type_ignores.items[i].comment = NULL;
- }
- }
-
+ if (n->n_type == file_input) {
+ /* Put type_ignore nodes in the ENDMARKER of file_input. */
+ int num;
+ node *ch;
+ size_t i;
+
+ num = NCH(n);
+ ch = CHILD(n, num - 1);
+ REQ(ch, ENDMARKER);
+
+ for (i = 0; i < type_ignores.num_items; i++) {
+ int res = PyNode_AddChild(ch, TYPE_IGNORE, type_ignores.items[i].comment,
+ type_ignores.items[i].lineno, 0,
+ type_ignores.items[i].lineno, 0);
+ if (res != 0) {
+ err_ret->error = res;
+ PyNode_Free(n);
+ n = NULL;
+ break;
+ }
+ type_ignores.items[i].comment = NULL;
+ }
+ }
+
/* Check that the source for a single input statement really
is a single statement by looking at what is left in the
buffer after parsing. Trailing whitespace and comments
are OK. */
- if (err_ret->error == E_DONE && start == single_input) {
- const char *cur = tok->cur;
+ if (err_ret->error == E_DONE && start == single_input) {
+ const char *cur = tok->cur;
char c = *tok->cur;
for (;;) {
@@ -405,8 +405,8 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
else
n = NULL;
- growable_comment_array_deallocate(&type_ignores);
-
+ growable_comment_array_deallocate(&type_ignores);
+
#ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD
*flags = ps->p_flags;
#endif
@@ -419,10 +419,10 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
if (tok->buf != NULL) {
size_t len;
assert(tok->cur - tok->buf < INT_MAX);
- /* if we've managed to parse a token, point the offset to its start,
- * else use the current reading position of the tokenizer
- */
- err_ret->offset = col_offset != -1 ? col_offset + 1 : ((int)(tok->cur - tok->buf));
+ /* if we've managed to parse a token, point the offset to its start,
+ * else use the current reading position of the tokenizer
+ */
+ err_ret->offset = col_offset != -1 ? col_offset + 1 : ((int)(tok->cur - tok->buf));
len = tok->inp - tok->buf;
err_ret->text = (char *) PyObject_MALLOC(len + 1);
if (err_ret->text != NULL) {
@@ -456,9 +456,9 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
done:
PyTokenizer_Free(tok);
- if (n != NULL) {
- _PyNode_FinalizeEndPos(n);
- }
+ if (n != NULL) {
+ _PyNode_FinalizeEndPos(n);
+ }
return n;
}
diff --git a/contrib/tools/python3/src/Parser/pegen/parse.c b/contrib/tools/python3/src/Parser/pegen/parse.c
index c20f6c4007..105b0faa20 100644
--- a/contrib/tools/python3/src/Parser/pegen/parse.c
+++ b/contrib/tools/python3/src/Parser/pegen/parse.c
@@ -1,25594 +1,25594 @@
-// @generated by pegen.py from python.gram
-#include "pegen.h"
-
-#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
-extern int Py_DebugFlag;
-#define D(x) if (Py_DebugFlag) x;
-#else
-#define D(x)
-#endif
-
-# define MAXSTACK 6000
-static const int n_keyword_lists = 15;
-static KeywordToken *reserved_keywords[] = {
- (KeywordToken[]) {{NULL, -1}},
- (KeywordToken[]) {{NULL, -1}},
- (KeywordToken[]) {
- {"if", 510},
- {"in", 518},
- {"as", 520},
- {"is", 527},
- {"or", 532},
- {NULL, -1},
- },
- (KeywordToken[]) {
- {"del", 503},
- {"try", 511},
- {"for", 517},
- {"def", 523},
- {"not", 526},
- {"and", 533},
- {NULL, -1},
- },
- (KeywordToken[]) {
- {"pass", 502},
- {"from", 514},
- {"elif", 515},
- {"else", 516},
- {"with", 519},
- {"True", 528},
- {"None", 530},
- {NULL, -1},
- },
- (KeywordToken[]) {
- {"raise", 501},
- {"yield", 504},
- {"break", 506},
- {"while", 512},
- {"class", 524},
- {"False", 529},
- {NULL, -1},
- },
- (KeywordToken[]) {
- {"return", 500},
- {"assert", 505},
- {"global", 508},
- {"import", 513},
- {"except", 521},
- {"lambda", 525},
- {NULL, -1},
- },
- (KeywordToken[]) {
- {"finally", 522},
- {NULL, -1},
- },
- (KeywordToken[]) {
- {"continue", 507},
- {"nonlocal", 509},
- {NULL, -1},
- },
- (KeywordToken[]) {{NULL, -1}},
- (KeywordToken[]) {{NULL, -1}},
- (KeywordToken[]) {{NULL, -1}},
- (KeywordToken[]) {{NULL, -1}},
- (KeywordToken[]) {{NULL, -1}},
- (KeywordToken[]) {
- {"__peg_parser__", 531},
- {NULL, -1},
- },
-};
-#define file_type 1000
-#define interactive_type 1001
-#define eval_type 1002
-#define func_type_type 1003
-#define fstring_type 1004
-#define type_expressions_type 1005
-#define statements_type 1006
-#define statement_type 1007
-#define statement_newline_type 1008
-#define simple_stmt_type 1009
-#define small_stmt_type 1010
-#define compound_stmt_type 1011
-#define assignment_type 1012
-#define augassign_type 1013
-#define global_stmt_type 1014
-#define nonlocal_stmt_type 1015
-#define yield_stmt_type 1016
-#define assert_stmt_type 1017
-#define del_stmt_type 1018
-#define import_stmt_type 1019
-#define import_name_type 1020
-#define import_from_type 1021
-#define import_from_targets_type 1022
-#define import_from_as_names_type 1023
-#define import_from_as_name_type 1024
-#define dotted_as_names_type 1025
-#define dotted_as_name_type 1026
-#define dotted_name_type 1027 // Left-recursive
-#define if_stmt_type 1028
-#define elif_stmt_type 1029
-#define else_block_type 1030
-#define while_stmt_type 1031
-#define for_stmt_type 1032
-#define with_stmt_type 1033
-#define with_item_type 1034
-#define try_stmt_type 1035
-#define except_block_type 1036
-#define finally_block_type 1037
-#define return_stmt_type 1038
-#define raise_stmt_type 1039
-#define function_def_type 1040
-#define function_def_raw_type 1041
-#define func_type_comment_type 1042
-#define params_type 1043
-#define parameters_type 1044
-#define slash_no_default_type 1045
-#define slash_with_default_type 1046
-#define star_etc_type 1047
-#define kwds_type 1048
-#define param_no_default_type 1049
-#define param_with_default_type 1050
-#define param_maybe_default_type 1051
-#define param_type 1052
-#define annotation_type 1053
-#define default_type 1054
-#define decorators_type 1055
-#define class_def_type 1056
-#define class_def_raw_type 1057
-#define block_type 1058
-#define star_expressions_type 1059
-#define star_expression_type 1060
-#define star_named_expressions_type 1061
-#define star_named_expression_type 1062
-#define named_expression_type 1063
-#define annotated_rhs_type 1064
-#define expressions_type 1065
-#define expression_type 1066
-#define lambdef_type 1067
-#define lambda_params_type 1068
-#define lambda_parameters_type 1069
-#define lambda_slash_no_default_type 1070
-#define lambda_slash_with_default_type 1071
-#define lambda_star_etc_type 1072
-#define lambda_kwds_type 1073
-#define lambda_param_no_default_type 1074
-#define lambda_param_with_default_type 1075
-#define lambda_param_maybe_default_type 1076
-#define lambda_param_type 1077
-#define disjunction_type 1078
-#define conjunction_type 1079
-#define inversion_type 1080
-#define comparison_type 1081
-#define compare_op_bitwise_or_pair_type 1082
-#define eq_bitwise_or_type 1083
-#define noteq_bitwise_or_type 1084
-#define lte_bitwise_or_type 1085
-#define lt_bitwise_or_type 1086
-#define gte_bitwise_or_type 1087
-#define gt_bitwise_or_type 1088
-#define notin_bitwise_or_type 1089
-#define in_bitwise_or_type 1090
-#define isnot_bitwise_or_type 1091
-#define is_bitwise_or_type 1092
-#define bitwise_or_type 1093 // Left-recursive
-#define bitwise_xor_type 1094 // Left-recursive
-#define bitwise_and_type 1095 // Left-recursive
-#define shift_expr_type 1096 // Left-recursive
-#define sum_type 1097 // Left-recursive
-#define term_type 1098 // Left-recursive
-#define factor_type 1099
-#define power_type 1100
-#define await_primary_type 1101
-#define primary_type 1102 // Left-recursive
-#define slices_type 1103
-#define slice_type 1104
-#define atom_type 1105
-#define strings_type 1106
-#define list_type 1107
-#define listcomp_type 1108
-#define tuple_type 1109
-#define group_type 1110
-#define genexp_type 1111
-#define set_type 1112
-#define setcomp_type 1113
-#define dict_type 1114
-#define dictcomp_type 1115
-#define double_starred_kvpairs_type 1116
-#define double_starred_kvpair_type 1117
-#define kvpair_type 1118
-#define for_if_clauses_type 1119
-#define for_if_clause_type 1120
-#define yield_expr_type 1121
-#define arguments_type 1122
-#define args_type 1123
-#define kwargs_type 1124
-#define starred_expression_type 1125
-#define kwarg_or_starred_type 1126
-#define kwarg_or_double_starred_type 1127
-#define star_targets_type 1128
-#define star_targets_list_seq_type 1129
-#define star_targets_tuple_seq_type 1130
-#define star_target_type 1131
-#define target_with_star_atom_type 1132
-#define star_atom_type 1133
-#define single_target_type 1134
-#define single_subscript_attribute_target_type 1135
-#define del_targets_type 1136
-#define del_target_type 1137
-#define del_t_atom_type 1138
-#define t_primary_type 1139 // Left-recursive
-#define t_lookahead_type 1140
-#define invalid_arguments_type 1141
-#define invalid_kwarg_type 1142
-#define invalid_named_expression_type 1143
-#define invalid_assignment_type 1144
-#define invalid_ann_assign_target_type 1145
-#define invalid_del_stmt_type 1146
-#define invalid_block_type 1147
-#define invalid_primary_type 1148 // Left-recursive
-#define invalid_comprehension_type 1149
-#define invalid_dict_comprehension_type 1150
-#define invalid_parameters_type 1151
-#define invalid_lambda_parameters_type 1152
-#define invalid_star_etc_type 1153
-#define invalid_lambda_star_etc_type 1154
-#define invalid_double_type_comments_type 1155
-#define invalid_with_item_type 1156
-#define invalid_for_target_type 1157
-#define invalid_group_type 1158
-#define invalid_import_from_targets_type 1159
-#define _loop0_1_type 1160
-#define _loop0_2_type 1161
-#define _loop0_4_type 1162
-#define _gather_3_type 1163
-#define _loop0_6_type 1164
-#define _gather_5_type 1165
-#define _loop0_8_type 1166
-#define _gather_7_type 1167
-#define _loop0_10_type 1168
-#define _gather_9_type 1169
-#define _loop1_11_type 1170
-#define _loop0_13_type 1171
-#define _gather_12_type 1172
-#define _tmp_14_type 1173
-#define _tmp_15_type 1174
-#define _tmp_16_type 1175
-#define _tmp_17_type 1176
-#define _tmp_18_type 1177
-#define _tmp_19_type 1178
-#define _tmp_20_type 1179
-#define _tmp_21_type 1180
-#define _loop1_22_type 1181
-#define _tmp_23_type 1182
-#define _tmp_24_type 1183
-#define _loop0_26_type 1184
-#define _gather_25_type 1185
-#define _loop0_28_type 1186
-#define _gather_27_type 1187
-#define _tmp_29_type 1188
-#define _tmp_30_type 1189
-#define _loop0_31_type 1190
-#define _loop1_32_type 1191
-#define _loop0_34_type 1192
-#define _gather_33_type 1193
-#define _tmp_35_type 1194
-#define _loop0_37_type 1195
-#define _gather_36_type 1196
-#define _tmp_38_type 1197
-#define _loop0_40_type 1198
-#define _gather_39_type 1199
-#define _loop0_42_type 1200
-#define _gather_41_type 1201
-#define _loop0_44_type 1202
-#define _gather_43_type 1203
-#define _loop0_46_type 1204
-#define _gather_45_type 1205
-#define _tmp_47_type 1206
-#define _loop1_48_type 1207
-#define _tmp_49_type 1208
-#define _tmp_50_type 1209
-#define _tmp_51_type 1210
-#define _tmp_52_type 1211
-#define _tmp_53_type 1212
-#define _loop0_54_type 1213
-#define _loop0_55_type 1214
-#define _loop0_56_type 1215
-#define _loop1_57_type 1216
-#define _loop0_58_type 1217
-#define _loop1_59_type 1218
-#define _loop1_60_type 1219
-#define _loop1_61_type 1220
-#define _loop0_62_type 1221
-#define _loop1_63_type 1222
-#define _loop0_64_type 1223
-#define _loop1_65_type 1224
-#define _loop0_66_type 1225
-#define _loop1_67_type 1226
-#define _loop1_68_type 1227
-#define _tmp_69_type 1228
-#define _loop1_70_type 1229
-#define _loop0_72_type 1230
-#define _gather_71_type 1231
-#define _loop1_73_type 1232
-#define _loop0_74_type 1233
-#define _loop0_75_type 1234
-#define _loop0_76_type 1235
-#define _loop1_77_type 1236
-#define _loop0_78_type 1237
-#define _loop1_79_type 1238
-#define _loop1_80_type 1239
-#define _loop1_81_type 1240
-#define _loop0_82_type 1241
-#define _loop1_83_type 1242
-#define _loop0_84_type 1243
-#define _loop1_85_type 1244
-#define _loop0_86_type 1245
-#define _loop1_87_type 1246
-#define _loop1_88_type 1247
-#define _loop1_89_type 1248
-#define _loop1_90_type 1249
-#define _tmp_91_type 1250
-#define _loop0_93_type 1251
-#define _gather_92_type 1252
-#define _tmp_94_type 1253
-#define _tmp_95_type 1254
-#define _tmp_96_type 1255
-#define _tmp_97_type 1256
-#define _loop1_98_type 1257
-#define _tmp_99_type 1258
-#define _tmp_100_type 1259
-#define _loop0_102_type 1260
-#define _gather_101_type 1261
-#define _loop1_103_type 1262
-#define _loop0_104_type 1263
-#define _loop0_105_type 1264
-#define _loop0_107_type 1265
-#define _gather_106_type 1266
-#define _tmp_108_type 1267
-#define _loop0_110_type 1268
-#define _gather_109_type 1269
-#define _loop0_112_type 1270
-#define _gather_111_type 1271
-#define _loop0_114_type 1272
-#define _gather_113_type 1273
-#define _loop0_116_type 1274
-#define _gather_115_type 1275
-#define _loop0_117_type 1276
-#define _loop0_119_type 1277
-#define _gather_118_type 1278
-#define _loop1_120_type 1279
-#define _tmp_121_type 1280
-#define _loop0_123_type 1281
-#define _gather_122_type 1282
-#define _tmp_124_type 1283
-#define _tmp_125_type 1284
-#define _loop0_126_type 1285
-#define _loop0_127_type 1286
-#define _loop0_128_type 1287
-#define _tmp_129_type 1288
-#define _tmp_130_type 1289
-#define _loop0_131_type 1290
-#define _tmp_132_type 1291
-#define _loop0_133_type 1292
-#define _tmp_134_type 1293
-#define _tmp_135_type 1294
-#define _tmp_136_type 1295
-#define _tmp_137_type 1296
-#define _tmp_138_type 1297
-#define _tmp_139_type 1298
-#define _tmp_140_type 1299
-#define _tmp_141_type 1300
-#define _tmp_142_type 1301
-#define _tmp_143_type 1302
-#define _tmp_144_type 1303
-#define _tmp_145_type 1304
-#define _tmp_146_type 1305
-#define _tmp_147_type 1306
-#define _tmp_148_type 1307
-#define _tmp_149_type 1308
-#define _tmp_150_type 1309
-#define _tmp_151_type 1310
-#define _loop1_152_type 1311
-#define _loop1_153_type 1312
-#define _tmp_154_type 1313
-#define _tmp_155_type 1314
-
-static mod_ty file_rule(Parser *p);
-static mod_ty interactive_rule(Parser *p);
-static mod_ty eval_rule(Parser *p);
-static mod_ty func_type_rule(Parser *p);
-static expr_ty fstring_rule(Parser *p);
-static asdl_seq* type_expressions_rule(Parser *p);
-static asdl_seq* statements_rule(Parser *p);
-static asdl_seq* statement_rule(Parser *p);
-static asdl_seq* statement_newline_rule(Parser *p);
-static asdl_seq* simple_stmt_rule(Parser *p);
-static stmt_ty small_stmt_rule(Parser *p);
-static stmt_ty compound_stmt_rule(Parser *p);
-static stmt_ty assignment_rule(Parser *p);
-static AugOperator* augassign_rule(Parser *p);
-static stmt_ty global_stmt_rule(Parser *p);
-static stmt_ty nonlocal_stmt_rule(Parser *p);
-static stmt_ty yield_stmt_rule(Parser *p);
-static stmt_ty assert_stmt_rule(Parser *p);
-static stmt_ty del_stmt_rule(Parser *p);
-static stmt_ty import_stmt_rule(Parser *p);
-static stmt_ty import_name_rule(Parser *p);
-static stmt_ty import_from_rule(Parser *p);
-static asdl_seq* import_from_targets_rule(Parser *p);
-static asdl_seq* import_from_as_names_rule(Parser *p);
-static alias_ty import_from_as_name_rule(Parser *p);
-static asdl_seq* dotted_as_names_rule(Parser *p);
-static alias_ty dotted_as_name_rule(Parser *p);
-static expr_ty dotted_name_rule(Parser *p);
-static stmt_ty if_stmt_rule(Parser *p);
-static stmt_ty elif_stmt_rule(Parser *p);
-static asdl_seq* else_block_rule(Parser *p);
-static stmt_ty while_stmt_rule(Parser *p);
-static stmt_ty for_stmt_rule(Parser *p);
-static stmt_ty with_stmt_rule(Parser *p);
-static withitem_ty with_item_rule(Parser *p);
-static stmt_ty try_stmt_rule(Parser *p);
-static excepthandler_ty except_block_rule(Parser *p);
-static asdl_seq* finally_block_rule(Parser *p);
-static stmt_ty return_stmt_rule(Parser *p);
-static stmt_ty raise_stmt_rule(Parser *p);
-static stmt_ty function_def_rule(Parser *p);
-static stmt_ty function_def_raw_rule(Parser *p);
-static Token* func_type_comment_rule(Parser *p);
-static arguments_ty params_rule(Parser *p);
-static arguments_ty parameters_rule(Parser *p);
-static asdl_seq* slash_no_default_rule(Parser *p);
-static SlashWithDefault* slash_with_default_rule(Parser *p);
-static StarEtc* star_etc_rule(Parser *p);
-static arg_ty kwds_rule(Parser *p);
-static arg_ty param_no_default_rule(Parser *p);
-static NameDefaultPair* param_with_default_rule(Parser *p);
-static NameDefaultPair* param_maybe_default_rule(Parser *p);
-static arg_ty param_rule(Parser *p);
-static expr_ty annotation_rule(Parser *p);
-static expr_ty default_rule(Parser *p);
-static asdl_seq* decorators_rule(Parser *p);
-static stmt_ty class_def_rule(Parser *p);
-static stmt_ty class_def_raw_rule(Parser *p);
-static asdl_seq* block_rule(Parser *p);
-static expr_ty star_expressions_rule(Parser *p);
-static expr_ty star_expression_rule(Parser *p);
-static asdl_seq* star_named_expressions_rule(Parser *p);
-static expr_ty star_named_expression_rule(Parser *p);
-static expr_ty named_expression_rule(Parser *p);
-static expr_ty annotated_rhs_rule(Parser *p);
-static expr_ty expressions_rule(Parser *p);
-static expr_ty expression_rule(Parser *p);
-static expr_ty lambdef_rule(Parser *p);
-static arguments_ty lambda_params_rule(Parser *p);
-static arguments_ty lambda_parameters_rule(Parser *p);
-static asdl_seq* lambda_slash_no_default_rule(Parser *p);
-static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
-static StarEtc* lambda_star_etc_rule(Parser *p);
-static arg_ty lambda_kwds_rule(Parser *p);
-static arg_ty lambda_param_no_default_rule(Parser *p);
-static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
-static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
-static arg_ty lambda_param_rule(Parser *p);
-static expr_ty disjunction_rule(Parser *p);
-static expr_ty conjunction_rule(Parser *p);
-static expr_ty inversion_rule(Parser *p);
-static expr_ty comparison_rule(Parser *p);
-static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
-static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
-static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
-static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
-static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
-static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
-static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
-static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
-static CmpopExprPair* in_bitwise_or_rule(Parser *p);
-static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
-static CmpopExprPair* is_bitwise_or_rule(Parser *p);
-static expr_ty bitwise_or_rule(Parser *p);
-static expr_ty bitwise_xor_rule(Parser *p);
-static expr_ty bitwise_and_rule(Parser *p);
-static expr_ty shift_expr_rule(Parser *p);
-static expr_ty sum_rule(Parser *p);
-static expr_ty term_rule(Parser *p);
-static expr_ty factor_rule(Parser *p);
-static expr_ty power_rule(Parser *p);
-static expr_ty await_primary_rule(Parser *p);
-static expr_ty primary_rule(Parser *p);
-static expr_ty slices_rule(Parser *p);
-static expr_ty slice_rule(Parser *p);
-static expr_ty atom_rule(Parser *p);
-static expr_ty strings_rule(Parser *p);
-static expr_ty list_rule(Parser *p);
-static expr_ty listcomp_rule(Parser *p);
-static expr_ty tuple_rule(Parser *p);
-static expr_ty group_rule(Parser *p);
-static expr_ty genexp_rule(Parser *p);
-static expr_ty set_rule(Parser *p);
-static expr_ty setcomp_rule(Parser *p);
-static expr_ty dict_rule(Parser *p);
-static expr_ty dictcomp_rule(Parser *p);
-static asdl_seq* double_starred_kvpairs_rule(Parser *p);
-static KeyValuePair* double_starred_kvpair_rule(Parser *p);
-static KeyValuePair* kvpair_rule(Parser *p);
-static asdl_seq* for_if_clauses_rule(Parser *p);
-static comprehension_ty for_if_clause_rule(Parser *p);
-static expr_ty yield_expr_rule(Parser *p);
-static expr_ty arguments_rule(Parser *p);
-static expr_ty args_rule(Parser *p);
-static asdl_seq* kwargs_rule(Parser *p);
-static expr_ty starred_expression_rule(Parser *p);
-static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
-static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
-static expr_ty star_targets_rule(Parser *p);
-static asdl_seq* star_targets_list_seq_rule(Parser *p);
-static asdl_seq* star_targets_tuple_seq_rule(Parser *p);
-static expr_ty star_target_rule(Parser *p);
-static expr_ty target_with_star_atom_rule(Parser *p);
-static expr_ty star_atom_rule(Parser *p);
-static expr_ty single_target_rule(Parser *p);
-static expr_ty single_subscript_attribute_target_rule(Parser *p);
-static asdl_seq* del_targets_rule(Parser *p);
-static expr_ty del_target_rule(Parser *p);
-static expr_ty del_t_atom_rule(Parser *p);
-static expr_ty t_primary_rule(Parser *p);
-static void *t_lookahead_rule(Parser *p);
-static void *invalid_arguments_rule(Parser *p);
-static void *invalid_kwarg_rule(Parser *p);
-static void *invalid_named_expression_rule(Parser *p);
-static void *invalid_assignment_rule(Parser *p);
-static expr_ty invalid_ann_assign_target_rule(Parser *p);
-static void *invalid_del_stmt_rule(Parser *p);
-static void *invalid_block_rule(Parser *p);
-static void *invalid_primary_rule(Parser *p);
-static void *invalid_comprehension_rule(Parser *p);
-static void *invalid_dict_comprehension_rule(Parser *p);
-static void *invalid_parameters_rule(Parser *p);
-static void *invalid_lambda_parameters_rule(Parser *p);
-static void *invalid_star_etc_rule(Parser *p);
-static void *invalid_lambda_star_etc_rule(Parser *p);
-static void *invalid_double_type_comments_rule(Parser *p);
-static void *invalid_with_item_rule(Parser *p);
-static void *invalid_for_target_rule(Parser *p);
-static void *invalid_group_rule(Parser *p);
-static void *invalid_import_from_targets_rule(Parser *p);
-static asdl_seq *_loop0_1_rule(Parser *p);
-static asdl_seq *_loop0_2_rule(Parser *p);
-static asdl_seq *_loop0_4_rule(Parser *p);
-static asdl_seq *_gather_3_rule(Parser *p);
-static asdl_seq *_loop0_6_rule(Parser *p);
-static asdl_seq *_gather_5_rule(Parser *p);
-static asdl_seq *_loop0_8_rule(Parser *p);
-static asdl_seq *_gather_7_rule(Parser *p);
-static asdl_seq *_loop0_10_rule(Parser *p);
-static asdl_seq *_gather_9_rule(Parser *p);
-static asdl_seq *_loop1_11_rule(Parser *p);
-static asdl_seq *_loop0_13_rule(Parser *p);
-static asdl_seq *_gather_12_rule(Parser *p);
-static void *_tmp_14_rule(Parser *p);
-static void *_tmp_15_rule(Parser *p);
-static void *_tmp_16_rule(Parser *p);
-static void *_tmp_17_rule(Parser *p);
-static void *_tmp_18_rule(Parser *p);
-static void *_tmp_19_rule(Parser *p);
-static void *_tmp_20_rule(Parser *p);
-static void *_tmp_21_rule(Parser *p);
-static asdl_seq *_loop1_22_rule(Parser *p);
-static void *_tmp_23_rule(Parser *p);
-static void *_tmp_24_rule(Parser *p);
-static asdl_seq *_loop0_26_rule(Parser *p);
-static asdl_seq *_gather_25_rule(Parser *p);
-static asdl_seq *_loop0_28_rule(Parser *p);
-static asdl_seq *_gather_27_rule(Parser *p);
-static void *_tmp_29_rule(Parser *p);
-static void *_tmp_30_rule(Parser *p);
-static asdl_seq *_loop0_31_rule(Parser *p);
-static asdl_seq *_loop1_32_rule(Parser *p);
-static asdl_seq *_loop0_34_rule(Parser *p);
-static asdl_seq *_gather_33_rule(Parser *p);
-static void *_tmp_35_rule(Parser *p);
-static asdl_seq *_loop0_37_rule(Parser *p);
-static asdl_seq *_gather_36_rule(Parser *p);
-static void *_tmp_38_rule(Parser *p);
-static asdl_seq *_loop0_40_rule(Parser *p);
-static asdl_seq *_gather_39_rule(Parser *p);
-static asdl_seq *_loop0_42_rule(Parser *p);
-static asdl_seq *_gather_41_rule(Parser *p);
-static asdl_seq *_loop0_44_rule(Parser *p);
-static asdl_seq *_gather_43_rule(Parser *p);
-static asdl_seq *_loop0_46_rule(Parser *p);
-static asdl_seq *_gather_45_rule(Parser *p);
-static void *_tmp_47_rule(Parser *p);
-static asdl_seq *_loop1_48_rule(Parser *p);
-static void *_tmp_49_rule(Parser *p);
-static void *_tmp_50_rule(Parser *p);
-static void *_tmp_51_rule(Parser *p);
-static void *_tmp_52_rule(Parser *p);
-static void *_tmp_53_rule(Parser *p);
-static asdl_seq *_loop0_54_rule(Parser *p);
-static asdl_seq *_loop0_55_rule(Parser *p);
-static asdl_seq *_loop0_56_rule(Parser *p);
-static asdl_seq *_loop1_57_rule(Parser *p);
-static asdl_seq *_loop0_58_rule(Parser *p);
-static asdl_seq *_loop1_59_rule(Parser *p);
-static asdl_seq *_loop1_60_rule(Parser *p);
-static asdl_seq *_loop1_61_rule(Parser *p);
-static asdl_seq *_loop0_62_rule(Parser *p);
-static asdl_seq *_loop1_63_rule(Parser *p);
-static asdl_seq *_loop0_64_rule(Parser *p);
-static asdl_seq *_loop1_65_rule(Parser *p);
-static asdl_seq *_loop0_66_rule(Parser *p);
-static asdl_seq *_loop1_67_rule(Parser *p);
-static asdl_seq *_loop1_68_rule(Parser *p);
-static void *_tmp_69_rule(Parser *p);
-static asdl_seq *_loop1_70_rule(Parser *p);
-static asdl_seq *_loop0_72_rule(Parser *p);
-static asdl_seq *_gather_71_rule(Parser *p);
-static asdl_seq *_loop1_73_rule(Parser *p);
-static asdl_seq *_loop0_74_rule(Parser *p);
-static asdl_seq *_loop0_75_rule(Parser *p);
-static asdl_seq *_loop0_76_rule(Parser *p);
-static asdl_seq *_loop1_77_rule(Parser *p);
-static asdl_seq *_loop0_78_rule(Parser *p);
-static asdl_seq *_loop1_79_rule(Parser *p);
-static asdl_seq *_loop1_80_rule(Parser *p);
-static asdl_seq *_loop1_81_rule(Parser *p);
-static asdl_seq *_loop0_82_rule(Parser *p);
-static asdl_seq *_loop1_83_rule(Parser *p);
-static asdl_seq *_loop0_84_rule(Parser *p);
-static asdl_seq *_loop1_85_rule(Parser *p);
-static asdl_seq *_loop0_86_rule(Parser *p);
-static asdl_seq *_loop1_87_rule(Parser *p);
-static asdl_seq *_loop1_88_rule(Parser *p);
-static asdl_seq *_loop1_89_rule(Parser *p);
-static asdl_seq *_loop1_90_rule(Parser *p);
-static void *_tmp_91_rule(Parser *p);
-static asdl_seq *_loop0_93_rule(Parser *p);
-static asdl_seq *_gather_92_rule(Parser *p);
-static void *_tmp_94_rule(Parser *p);
-static void *_tmp_95_rule(Parser *p);
-static void *_tmp_96_rule(Parser *p);
-static void *_tmp_97_rule(Parser *p);
-static asdl_seq *_loop1_98_rule(Parser *p);
-static void *_tmp_99_rule(Parser *p);
-static void *_tmp_100_rule(Parser *p);
-static asdl_seq *_loop0_102_rule(Parser *p);
-static asdl_seq *_gather_101_rule(Parser *p);
-static asdl_seq *_loop1_103_rule(Parser *p);
-static asdl_seq *_loop0_104_rule(Parser *p);
-static asdl_seq *_loop0_105_rule(Parser *p);
-static asdl_seq *_loop0_107_rule(Parser *p);
-static asdl_seq *_gather_106_rule(Parser *p);
-static void *_tmp_108_rule(Parser *p);
-static asdl_seq *_loop0_110_rule(Parser *p);
-static asdl_seq *_gather_109_rule(Parser *p);
-static asdl_seq *_loop0_112_rule(Parser *p);
-static asdl_seq *_gather_111_rule(Parser *p);
-static asdl_seq *_loop0_114_rule(Parser *p);
-static asdl_seq *_gather_113_rule(Parser *p);
-static asdl_seq *_loop0_116_rule(Parser *p);
-static asdl_seq *_gather_115_rule(Parser *p);
-static asdl_seq *_loop0_117_rule(Parser *p);
-static asdl_seq *_loop0_119_rule(Parser *p);
-static asdl_seq *_gather_118_rule(Parser *p);
-static asdl_seq *_loop1_120_rule(Parser *p);
-static void *_tmp_121_rule(Parser *p);
-static asdl_seq *_loop0_123_rule(Parser *p);
-static asdl_seq *_gather_122_rule(Parser *p);
-static void *_tmp_124_rule(Parser *p);
-static void *_tmp_125_rule(Parser *p);
-static asdl_seq *_loop0_126_rule(Parser *p);
-static asdl_seq *_loop0_127_rule(Parser *p);
-static asdl_seq *_loop0_128_rule(Parser *p);
-static void *_tmp_129_rule(Parser *p);
-static void *_tmp_130_rule(Parser *p);
-static asdl_seq *_loop0_131_rule(Parser *p);
-static void *_tmp_132_rule(Parser *p);
-static asdl_seq *_loop0_133_rule(Parser *p);
-static void *_tmp_134_rule(Parser *p);
-static void *_tmp_135_rule(Parser *p);
-static void *_tmp_136_rule(Parser *p);
-static void *_tmp_137_rule(Parser *p);
-static void *_tmp_138_rule(Parser *p);
-static void *_tmp_139_rule(Parser *p);
-static void *_tmp_140_rule(Parser *p);
-static void *_tmp_141_rule(Parser *p);
-static void *_tmp_142_rule(Parser *p);
-static void *_tmp_143_rule(Parser *p);
-static void *_tmp_144_rule(Parser *p);
-static void *_tmp_145_rule(Parser *p);
-static void *_tmp_146_rule(Parser *p);
-static void *_tmp_147_rule(Parser *p);
-static void *_tmp_148_rule(Parser *p);
-static void *_tmp_149_rule(Parser *p);
-static void *_tmp_150_rule(Parser *p);
-static void *_tmp_151_rule(Parser *p);
-static asdl_seq *_loop1_152_rule(Parser *p);
-static asdl_seq *_loop1_153_rule(Parser *p);
-static void *_tmp_154_rule(Parser *p);
-static void *_tmp_155_rule(Parser *p);
-
-
-// file: statements? $
-static mod_ty
-file_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- mod_ty _res = NULL;
- int _mark = p->mark;
- { // statements? $
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
- void *a;
- Token * endmarker_var;
- if (
- (a = statements_rule(p), !p->error_indicator) // statements?
- &&
- (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
- )
- {
- D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
- _res = _PyPegen_make_module ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// interactive: statement_newline
-static mod_ty
-interactive_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- mod_ty _res = NULL;
- int _mark = p->mark;
- { // statement_newline
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
- asdl_seq* a;
- if (
- (a = statement_newline_rule(p)) // statement_newline
- )
- {
- D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
- _res = Interactive ( a , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// eval: expressions NEWLINE* $
-static mod_ty
-eval_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- mod_ty _res = NULL;
- int _mark = p->mark;
- { // expressions NEWLINE* $
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
- asdl_seq * _loop0_1_var;
- expr_ty a;
- Token * endmarker_var;
- if (
- (a = expressions_rule(p)) // expressions
- &&
- (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
- &&
- (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
- )
- {
- D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
- _res = Expression ( a , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
-static mod_ty
-func_type_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- mod_ty _res = NULL;
- int _mark = p->mark;
- { // '(' type_expressions? ')' '->' expression NEWLINE* $
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
- Token * _literal;
- Token * _literal_1;
- Token * _literal_2;
- asdl_seq * _loop0_2_var;
- void *a;
- expr_ty b;
- Token * endmarker_var;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = type_expressions_rule(p), !p->error_indicator) // type_expressions?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- &&
- (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
- &&
- (b = expression_rule(p)) // expression
- &&
- (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
- &&
- (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
- )
- {
- D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
- _res = FunctionType ( a , b , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// fstring: star_expressions
-static expr_ty
-fstring_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- expr_ty star_expressions_var;
- if (
- (star_expressions_var = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- _res = star_expressions_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// type_expressions:
-// | ','.expression+ ',' '*' expression ',' '**' expression
-// | ','.expression+ ',' '*' expression
-// | ','.expression+ ',' '**' expression
-// | '*' expression ',' '**' expression
-// | '*' expression
-// | '**' expression
-// | ','.expression+
-static asdl_seq*
-type_expressions_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.expression+ ',' '*' expression ',' '**' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
- Token * _literal;
- Token * _literal_1;
- Token * _literal_2;
- Token * _literal_3;
- asdl_seq * a;
- expr_ty b;
- expr_ty c;
- if (
- (a = _gather_3_rule(p)) // ','.expression+
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (b = expression_rule(p)) // expression
- &&
- (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (c = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
- _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
- }
- { // ','.expression+ ',' '*' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * a;
- expr_ty b;
- if (
- (a = _gather_5_rule(p)) // ','.expression+
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
- _res = _PyPegen_seq_append_to_end ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
- }
- { // ','.expression+ ',' '**' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * a;
- expr_ty b;
- if (
- (a = _gather_7_rule(p)) // ','.expression+
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
- _res = _PyPegen_seq_append_to_end ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
- }
- { // '*' expression ',' '**' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
- Token * _literal;
- Token * _literal_1;
- Token * _literal_2;
- expr_ty a;
- expr_ty b;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = expression_rule(p)) // expression
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
- _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
- }
- { // '*' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
- _res = _PyPegen_singleton_seq ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
- }
- { // '**' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
- _res = _PyPegen_singleton_seq ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
- }
- { // ','.expression+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
- asdl_seq * _gather_9_var;
- if (
- (_gather_9_var = _gather_9_rule(p)) // ','.expression+
- )
- {
- D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
- _res = _gather_9_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// statements: statement+
-static asdl_seq*
-statements_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // statement+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
- asdl_seq * a;
- if (
- (a = _loop1_11_rule(p)) // statement+
- )
- {
- D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
- _res = _PyPegen_seq_flatten ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// statement: compound_stmt | simple_stmt
-static asdl_seq*
-statement_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // compound_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
- stmt_ty a;
- if (
- (a = compound_stmt_rule(p)) // compound_stmt
- )
- {
- D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
- _res = _PyPegen_singleton_seq ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
- }
- { // simple_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
- asdl_seq* simple_stmt_var;
- if (
- (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
- )
- {
- D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
- _res = simple_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
-static asdl_seq*
-statement_newline_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // compound_stmt NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
- stmt_ty a;
- Token * newline_var;
- if (
- (a = compound_stmt_rule(p)) // compound_stmt
- &&
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
- _res = _PyPegen_singleton_seq ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
- }
- { // simple_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
- asdl_seq* simple_stmt_var;
- if (
- (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
- )
- {
- D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
- _res = simple_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
- }
- { // NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
- Token * newline_var;
- if (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
- }
- { // $
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
- Token * endmarker_var;
- if (
- (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
- )
- {
- D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
- _res = _PyPegen_interactive_exit ( p );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
-static asdl_seq*
-simple_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // small_stmt !';' NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
- stmt_ty a;
- Token * newline_var;
- if (
- (a = small_stmt_rule(p)) // small_stmt
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
- &&
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
- _res = _PyPegen_singleton_seq ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
- }
- { // ';'.small_stmt+ ';'? NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- Token * newline_var;
- if (
- (a = _gather_12_rule(p)) // ';'.small_stmt+
- &&
- (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'?
- &&
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// small_stmt:
-// | assignment
-// | star_expressions
-// | &'return' return_stmt
-// | &('import' | 'from') import_stmt
-// | &'raise' raise_stmt
-// | 'pass'
-// | &'del' del_stmt
-// | &'yield' yield_stmt
-// | &'assert' assert_stmt
-// | 'break'
-// | 'continue'
-// | &'global' global_stmt
-// | &'nonlocal' nonlocal_stmt
-static stmt_ty
-small_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // assignment
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
- stmt_ty assignment_var;
- if (
- (assignment_var = assignment_rule(p)) // assignment
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
- _res = assignment_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
- }
- { // star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- expr_ty e;
- if (
- (e = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Expr ( e , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
- }
- { // &'return' return_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
- stmt_ty return_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
- &&
- (return_stmt_var = return_stmt_rule(p)) // return_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
- _res = return_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
- }
- { // &('import' | 'from') import_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
- stmt_ty import_stmt_var;
- if (
- _PyPegen_lookahead(1, _tmp_14_rule, p)
- &&
- (import_stmt_var = import_stmt_rule(p)) // import_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
- _res = import_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
- }
- { // &'raise' raise_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
- stmt_ty raise_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
- &&
- (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
- _res = raise_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
- }
- { // 'pass'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Pass ( EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
- }
- { // &'del' del_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
- stmt_ty del_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
- &&
- (del_stmt_var = del_stmt_rule(p)) // del_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
- _res = del_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
- }
- { // &'yield' yield_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
- stmt_ty yield_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
- &&
- (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
- _res = yield_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
- }
- { // &'assert' assert_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
- stmt_ty assert_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
- &&
- (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
- _res = assert_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
- }
- { // 'break'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Break ( EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
- }
- { // 'continue'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Continue ( EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
- }
- { // &'global' global_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
- stmt_ty global_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
- &&
- (global_stmt_var = global_stmt_rule(p)) // global_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
- _res = global_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
- }
- { // &'nonlocal' nonlocal_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
- stmt_ty nonlocal_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
- &&
- (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
- )
- {
- D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
- _res = nonlocal_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
- p->level--;
- return _res;
-}
-
-// compound_stmt:
-// | &('def' | '@' | ASYNC) function_def
-// | &'if' if_stmt
-// | &('class' | '@') class_def
-// | &('with' | ASYNC) with_stmt
-// | &('for' | ASYNC) for_stmt
-// | &'try' try_stmt
-// | &'while' while_stmt
-static stmt_ty
-compound_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- { // &('def' | '@' | ASYNC) function_def
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
- stmt_ty function_def_var;
- if (
- _PyPegen_lookahead(1, _tmp_15_rule, p)
- &&
- (function_def_var = function_def_rule(p)) // function_def
- )
- {
- D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
- _res = function_def_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
- }
- { // &'if' if_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
- stmt_ty if_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
- &&
- (if_stmt_var = if_stmt_rule(p)) // if_stmt
- )
- {
- D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
- _res = if_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
- }
- { // &('class' | '@') class_def
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
- stmt_ty class_def_var;
- if (
- _PyPegen_lookahead(1, _tmp_16_rule, p)
- &&
- (class_def_var = class_def_rule(p)) // class_def
- )
- {
- D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
- _res = class_def_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
- }
- { // &('with' | ASYNC) with_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
- stmt_ty with_stmt_var;
- if (
- _PyPegen_lookahead(1, _tmp_17_rule, p)
- &&
- (with_stmt_var = with_stmt_rule(p)) // with_stmt
- )
- {
- D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
- _res = with_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
- }
- { // &('for' | ASYNC) for_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
- stmt_ty for_stmt_var;
- if (
- _PyPegen_lookahead(1, _tmp_18_rule, p)
- &&
- (for_stmt_var = for_stmt_rule(p)) // for_stmt
- )
- {
- D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
- _res = for_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
- }
- { // &'try' try_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
- stmt_ty try_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
- &&
- (try_stmt_var = try_stmt_rule(p)) // try_stmt
- )
- {
- D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
- _res = try_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
- }
- { // &'while' while_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
- stmt_ty while_stmt_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
- &&
- (while_stmt_var = while_stmt_rule(p)) // while_stmt
- )
- {
- D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
- _res = while_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// assignment:
-// | NAME ':' expression ['=' annotated_rhs]
-// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
-// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
-// | single_target augassign ~ (yield_expr | star_expressions)
-// | invalid_assignment
-static stmt_ty
-assignment_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME ':' expression ['=' annotated_rhs]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- void *c;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = expression_rule(p)) // expression
- &&
- (c = _tmp_19_rule(p), !p->error_indicator) // ['=' annotated_rhs]
- )
- {
- D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
- }
- { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
- Token * _literal;
- void *a;
- expr_ty b;
- void *c;
- if (
- (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = expression_rule(p)) // expression
- &&
- (c = _tmp_21_rule(p), !p->error_indicator) // ['=' annotated_rhs]
- )
- {
- D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
- }
- { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
- asdl_seq * a;
- void *b;
- void *tc;
- if (
- (a = _loop1_22_rule(p)) // ((star_targets '='))+
- &&
- (b = _tmp_23_rule(p)) // yield_expr | star_expressions
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- )
- {
- D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
- }
- { // single_target augassign ~ (yield_expr | star_expressions)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
- int _cut_var = 0;
- expr_ty a;
- AugOperator* b;
- void *c;
- if (
- (a = single_target_rule(p)) // single_target
- &&
- (b = augassign_rule(p)) // augassign
- &&
- (_cut_var = 1)
- &&
- (c = _tmp_24_rule(p)) // yield_expr | star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- if (p->call_invalid_rules) { // invalid_assignment
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
- void *invalid_assignment_var;
- if (
- (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
- )
- {
- D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
- _res = invalid_assignment_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// augassign:
-// | '+='
-// | '-='
-// | '*='
-// | '@='
-// | '/='
-// | '%='
-// | '&='
-// | '|='
-// | '^='
-// | '<<='
-// | '>>='
-// | '**='
-// | '//='
-static AugOperator*
-augassign_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- AugOperator* _res = NULL;
- int _mark = p->mark;
- { // '+='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 36)) // token='+='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
- _res = _PyPegen_augoperator ( p , Add );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
- }
- { // '-='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 37)) // token='-='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
- _res = _PyPegen_augoperator ( p , Sub );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
- }
- { // '*='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 38)) // token='*='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
- _res = _PyPegen_augoperator ( p , Mult );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
- }
- { // '@='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 50)) // token='@='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
- _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
- }
- { // '/='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 39)) // token='/='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
- _res = _PyPegen_augoperator ( p , Div );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
- }
- { // '%='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 40)) // token='%='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
- _res = _PyPegen_augoperator ( p , Mod );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
- }
- { // '&='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 41)) // token='&='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
- _res = _PyPegen_augoperator ( p , BitAnd );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
- }
- { // '|='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 42)) // token='|='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
- _res = _PyPegen_augoperator ( p , BitOr );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
- }
- { // '^='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 43)) // token='^='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
- _res = _PyPegen_augoperator ( p , BitXor );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
- }
- { // '<<='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
- _res = _PyPegen_augoperator ( p , LShift );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
- }
- { // '>>='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
- _res = _PyPegen_augoperator ( p , RShift );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
- }
- { // '**='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 46)) // token='**='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
- _res = _PyPegen_augoperator ( p , Pow );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
- }
- { // '//='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 48)) // token='//='
- )
- {
- D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
- _res = _PyPegen_augoperator ( p , FloorDiv );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// global_stmt: 'global' ','.NAME+
-static stmt_ty
-global_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'global' ','.NAME+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
- Token * _keyword;
- asdl_seq * a;
- if (
- (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
- &&
- (a = _gather_25_rule(p)) // ','.NAME+
- )
- {
- D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// nonlocal_stmt: 'nonlocal' ','.NAME+
-static stmt_ty
-nonlocal_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'nonlocal' ','.NAME+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
- Token * _keyword;
- asdl_seq * a;
- if (
- (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
- &&
- (a = _gather_27_rule(p)) // ','.NAME+
- )
- {
- D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// yield_stmt: yield_expr
-static stmt_ty
-yield_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // yield_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- expr_ty y;
- if (
- (y = yield_expr_rule(p)) // yield_expr
- )
- {
- D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Expr ( y , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// assert_stmt: 'assert' expression [',' expression]
-static stmt_ty
-assert_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'assert' expression [',' expression]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
- Token * _keyword;
- expr_ty a;
- void *b;
- if (
- (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
- &&
- (a = expression_rule(p)) // expression
- &&
- (b = _tmp_29_rule(p), !p->error_indicator) // [',' expression]
- )
- {
- D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Assert ( a , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
-static stmt_ty
-del_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'del' del_targets &(';' | NEWLINE)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
- Token * _keyword;
- asdl_seq* a;
- if (
- (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
- &&
- (a = del_targets_rule(p)) // del_targets
- &&
- _PyPegen_lookahead(1, _tmp_30_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Delete ( a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
- }
- if (p->call_invalid_rules) { // invalid_del_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
- void *invalid_del_stmt_var;
- if (
- (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
- )
- {
- D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
- _res = invalid_del_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// import_stmt: import_name | import_from
-static stmt_ty
-import_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- { // import_name
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
- stmt_ty import_name_var;
- if (
- (import_name_var = import_name_rule(p)) // import_name
- )
- {
- D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
- _res = import_name_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
- }
- { // import_from
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
- stmt_ty import_from_var;
- if (
- (import_from_var = import_from_rule(p)) // import_from
- )
- {
- D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
- _res = import_from_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// import_name: 'import' dotted_as_names
-static stmt_ty
-import_name_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'import' dotted_as_names
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
- Token * _keyword;
- asdl_seq* a;
- if (
- (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
- &&
- (a = dotted_as_names_rule(p)) // dotted_as_names
- )
- {
- D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Import ( a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// import_from:
-// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
-// | 'from' (('.' | '...'))+ 'import' import_from_targets
-static stmt_ty
-import_from_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
- Token * _keyword;
- Token * _keyword_1;
- asdl_seq * a;
- expr_ty b;
- asdl_seq* c;
- if (
- (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
- &&
- (a = _loop0_31_rule(p)) // (('.' | '...'))*
- &&
- (b = dotted_name_rule(p)) // dotted_name
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
- &&
- (c = import_from_targets_rule(p)) // import_from_targets
- )
- {
- D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
- }
- { // 'from' (('.' | '...'))+ 'import' import_from_targets
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
- Token * _keyword;
- Token * _keyword_1;
- asdl_seq * a;
- asdl_seq* b;
- if (
- (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
- &&
- (a = _loop1_32_rule(p)) // (('.' | '...'))+
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
- &&
- (b = import_from_targets_rule(p)) // import_from_targets
- )
- {
- D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// import_from_targets:
-// | '(' import_from_as_names ','? ')'
-// | import_from_as_names !','
-// | '*'
-// | invalid_import_from_targets
-static asdl_seq*
-import_from_targets_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // '(' import_from_as_names ','? ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
- Token * _literal;
- Token * _literal_1;
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq* a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = import_from_as_names_rule(p)) // import_from_as_names
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
- }
- { // import_from_as_names !','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
- asdl_seq* import_from_as_names_var;
- if (
- (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
- _res = import_from_as_names_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
- }
- { // '*'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- )
- {
- D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
- _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
- }
- if (p->call_invalid_rules) { // invalid_import_from_targets
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
- void *invalid_import_from_targets_var;
- if (
- (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
- )
- {
- D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
- _res = invalid_import_from_targets_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// import_from_as_names: ','.import_from_as_name+
-static asdl_seq*
-import_from_as_names_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.import_from_as_name+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
- asdl_seq * a;
- if (
- (a = _gather_33_rule(p)) // ','.import_from_as_name+
- )
- {
- D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// import_from_as_name: NAME ['as' NAME]
-static alias_ty
-import_from_as_name_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- alias_ty _res = NULL;
- int _mark = p->mark;
- { // NAME ['as' NAME]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
- expr_ty a;
- void *b;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- &&
- (b = _tmp_35_rule(p), !p->error_indicator) // ['as' NAME]
- )
- {
- D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
- _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// dotted_as_names: ','.dotted_as_name+
-static asdl_seq*
-dotted_as_names_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.dotted_as_name+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
- asdl_seq * a;
- if (
- (a = _gather_36_rule(p)) // ','.dotted_as_name+
- )
- {
- D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// dotted_as_name: dotted_name ['as' NAME]
-static alias_ty
-dotted_as_name_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- alias_ty _res = NULL;
- int _mark = p->mark;
- { // dotted_name ['as' NAME]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
- expr_ty a;
- void *b;
- if (
- (a = dotted_name_rule(p)) // dotted_name
- &&
- (b = _tmp_38_rule(p), !p->error_indicator) // ['as' NAME]
- )
- {
- D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
- _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// dotted_name: dotted_name '.' NAME | NAME
-static expr_ty dotted_name_raw(Parser *);
-static expr_ty
-dotted_name_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
- if (tmpvar_0) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = dotted_name_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-dotted_name_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // dotted_name '.' NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = dotted_name_rule(p)) // dotted_name
- &&
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- &&
- (b = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
- _res = _PyPegen_join_names_with_dot ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
- }
- { // NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
- expr_ty name_var;
- if (
- (name_var = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
- _res = name_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// if_stmt:
-// | 'if' named_expression ':' block elif_stmt
-// | 'if' named_expression ':' block else_block?
-static stmt_ty
-if_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'if' named_expression ':' block elif_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
- Token * _keyword;
- Token * _literal;
- expr_ty a;
- asdl_seq* b;
- stmt_ty c;
- if (
- (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- &&
- (c = elif_stmt_rule(p)) // elif_stmt
- )
- {
- D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
- }
- { // 'if' named_expression ':' block else_block?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
- Token * _keyword;
- Token * _literal;
- expr_ty a;
- asdl_seq* b;
- void *c;
- if (
- (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- &&
- (c = else_block_rule(p), !p->error_indicator) // else_block?
- )
- {
- D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_If ( a , b , c , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// elif_stmt:
-// | 'elif' named_expression ':' block elif_stmt
-// | 'elif' named_expression ':' block else_block?
-static stmt_ty
-elif_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'elif' named_expression ':' block elif_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
- Token * _keyword;
- Token * _literal;
- expr_ty a;
- asdl_seq* b;
- stmt_ty c;
- if (
- (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- &&
- (c = elif_stmt_rule(p)) // elif_stmt
- )
- {
- D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
- }
- { // 'elif' named_expression ':' block else_block?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
- Token * _keyword;
- Token * _literal;
- expr_ty a;
- asdl_seq* b;
- void *c;
- if (
- (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- &&
- (c = else_block_rule(p), !p->error_indicator) // else_block?
- )
- {
- D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_If ( a , b , c , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// else_block: 'else' ':' block
-static asdl_seq*
-else_block_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // 'else' ':' block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
- Token * _keyword;
- Token * _literal;
- asdl_seq* b;
- if (
- (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
- _res = b;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// while_stmt: 'while' named_expression ':' block else_block?
-static stmt_ty
-while_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'while' named_expression ':' block else_block?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
- Token * _keyword;
- Token * _literal;
- expr_ty a;
- asdl_seq* b;
- void *c;
- if (
- (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- &&
- (c = else_block_rule(p), !p->error_indicator) // else_block?
- )
- {
- D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_While ( a , b , c , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// for_stmt:
-// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
-// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
-// | invalid_for_target
-static stmt_ty
-for_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
- int _cut_var = 0;
- Token * _keyword;
- Token * _keyword_1;
- Token * _literal;
- asdl_seq* b;
- void *el;
- expr_ty ex;
- expr_ty t;
- void *tc;
- if (
- (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
- &&
- (t = star_targets_rule(p)) // star_targets
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
- &&
- (_cut_var = 1)
- &&
- (ex = star_expressions_rule(p)) // star_expressions
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- &&
- (b = block_rule(p)) // block
- &&
- (el = else_block_rule(p), !p->error_indicator) // else_block?
- )
- {
- D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
- int _cut_var = 0;
- Token * _keyword;
- Token * _keyword_1;
- Token * _literal;
- Token * async_var;
- asdl_seq* b;
- void *el;
- expr_ty ex;
- expr_ty t;
- void *tc;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- &&
- (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
- &&
- (t = star_targets_rule(p)) // star_targets
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
- &&
- (_cut_var = 1)
- &&
- (ex = star_expressions_rule(p)) // star_expressions
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- &&
- (b = block_rule(p)) // block
- &&
- (el = else_block_rule(p), !p->error_indicator) // else_block?
- )
- {
- D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- if (p->call_invalid_rules) { // invalid_for_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
- void *invalid_for_target_var;
- if (
- (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
- )
- {
- D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
- _res = invalid_for_target_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// with_stmt:
-// | 'with' '(' ','.with_item+ ','? ')' ':' block
-// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
-// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
-// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
-static stmt_ty
-with_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'with' '(' ','.with_item+ ','? ')' ':' block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
- Token * _keyword;
- Token * _literal;
- Token * _literal_1;
- Token * _literal_2;
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- asdl_seq* b;
- if (
- (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
- &&
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = _gather_39_rule(p)) // ','.with_item+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- &&
- (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_With ( a , b , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
- }
- { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
- Token * _keyword;
- Token * _literal;
- asdl_seq * a;
- asdl_seq* b;
- void *tc;
- if (
- (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
- &&
- (a = _gather_41_rule(p)) // ','.with_item+
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
- }
- { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
- Token * _keyword;
- Token * _literal;
- Token * _literal_1;
- Token * _literal_2;
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- Token * async_var;
- asdl_seq* b;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- &&
- (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
- &&
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = _gather_43_rule(p)) // ','.with_item+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- &&
- (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
- }
- { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
- Token * _keyword;
- Token * _literal;
- asdl_seq * a;
- Token * async_var;
- asdl_seq* b;
- void *tc;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- &&
- (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
- &&
- (a = _gather_45_rule(p)) // ','.with_item+
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// with_item:
-// | expression 'as' star_target &(',' | ')' | ':')
-// | invalid_with_item
-// | expression
-static withitem_ty
-with_item_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- withitem_ty _res = NULL;
- int _mark = p->mark;
- { // expression 'as' star_target &(',' | ')' | ':')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
- Token * _keyword;
- expr_ty e;
- expr_ty t;
- if (
- (e = expression_rule(p)) // expression
- &&
- (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
- &&
- (t = star_target_rule(p)) // star_target
- &&
- _PyPegen_lookahead(1, _tmp_47_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
- _res = _Py_withitem ( e , t , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
- }
- if (p->call_invalid_rules) { // invalid_with_item
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
- void *invalid_with_item_var;
- if (
- (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
- )
- {
- D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
- _res = invalid_with_item_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
- }
- { // expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
- expr_ty e;
- if (
- (e = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
- _res = _Py_withitem ( e , NULL , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// try_stmt:
-// | 'try' ':' block finally_block
-// | 'try' ':' block except_block+ else_block? finally_block?
-static stmt_ty
-try_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'try' ':' block finally_block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
- Token * _keyword;
- Token * _literal;
- asdl_seq* b;
- asdl_seq* f;
- if (
- (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- &&
- (f = finally_block_rule(p)) // finally_block
- )
- {
- D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
- }
- { // 'try' ':' block except_block+ else_block? finally_block?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
- Token * _keyword;
- Token * _literal;
- asdl_seq* b;
- void *el;
- asdl_seq * ex;
- void *f;
- if (
- (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- &&
- (ex = _loop1_48_rule(p)) // except_block+
- &&
- (el = else_block_rule(p), !p->error_indicator) // else_block?
- &&
- (f = finally_block_rule(p), !p->error_indicator) // finally_block?
- )
- {
- D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Try ( b , ex , el , f , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
-static excepthandler_ty
-except_block_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- excepthandler_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'except' expression ['as' NAME] ':' block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
- Token * _keyword;
- Token * _literal;
- asdl_seq* b;
- expr_ty e;
- void *t;
- if (
- (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
- &&
- (e = expression_rule(p)) // expression
- &&
- (t = _tmp_49_rule(p), !p->error_indicator) // ['as' NAME]
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
- }
- { // 'except' ':' block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
- Token * _keyword;
- Token * _literal;
- asdl_seq* b;
- if (
- (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// finally_block: 'finally' ':' block
-static asdl_seq*
-finally_block_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // 'finally' ':' block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
- Token * _keyword;
- Token * _literal;
- asdl_seq* a;
- if (
- (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (a = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// return_stmt: 'return' star_expressions?
-static stmt_ty
-return_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'return' star_expressions?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
- Token * _keyword;
- void *a;
- if (
- (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
- &&
- (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
- )
- {
- D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Return ( a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// raise_stmt: 'raise' expression ['from' expression] | 'raise'
-static stmt_ty
-raise_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'raise' expression ['from' expression]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
- Token * _keyword;
- expr_ty a;
- void *b;
- if (
- (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
- &&
- (a = expression_rule(p)) // expression
- &&
- (b = _tmp_50_rule(p), !p->error_indicator) // ['from' expression]
- )
- {
- D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Raise ( a , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
- }
- { // 'raise'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
- )
- {
- D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Raise ( NULL , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// function_def: decorators function_def_raw | function_def_raw
-static stmt_ty
-function_def_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- { // decorators function_def_raw
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
- asdl_seq* d;
- stmt_ty f;
- if (
- (d = decorators_rule(p)) // decorators
- &&
- (f = function_def_raw_rule(p)) // function_def_raw
- )
- {
- D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
- _res = _PyPegen_function_def_decorators ( p , d , f );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
- }
- { // function_def_raw
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
- stmt_ty function_def_raw_var;
- if (
- (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
- )
- {
- D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
- _res = function_def_raw_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// function_def_raw:
-// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
-// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
-static stmt_ty
-function_def_raw_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
- Token * _keyword;
- Token * _literal;
- Token * _literal_1;
- Token * _literal_2;
- void *a;
- asdl_seq* b;
- expr_ty n;
- void *params;
- void *tc;
- if (
- (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
- &&
- (n = _PyPegen_name_token(p)) // NAME
- &&
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (params = params_rule(p), !p->error_indicator) // params?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- &&
- (a = _tmp_51_rule(p), !p->error_indicator) // ['->' expression]
- &&
- (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
- }
- { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
- Token * _keyword;
- Token * _literal;
- Token * _literal_1;
- Token * _literal_2;
- void *a;
- Token * async_var;
- asdl_seq* b;
- expr_ty n;
- void *params;
- void *tc;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- &&
- (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
- &&
- (n = _PyPegen_name_token(p)) // NAME
- &&
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (params = params_rule(p), !p->error_indicator) // params?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- &&
- (a = _tmp_52_rule(p), !p->error_indicator) // ['->' expression]
- &&
- (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
- &&
- (b = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 5 , "Async functions are" , _Py_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// func_type_comment:
-// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
-// | invalid_double_type_comments
-// | TYPE_COMMENT
-static Token*
-func_type_comment_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- Token* _res = NULL;
- int _mark = p->mark;
- { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
- Token * newline_var;
- Token * t;
- if (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- &&
- (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
- &&
- _PyPegen_lookahead(1, _tmp_53_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
- _res = t;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
- }
- if (p->call_invalid_rules) { // invalid_double_type_comments
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
- void *invalid_double_type_comments_var;
- if (
- (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
- )
- {
- D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
- _res = invalid_double_type_comments_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
- }
- { // TYPE_COMMENT
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
- Token * type_comment_var;
- if (
- (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
- )
- {
- D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
- _res = type_comment_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// params: invalid_parameters | parameters
-static arguments_ty
-params_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arguments_ty _res = NULL;
- int _mark = p->mark;
- if (p->call_invalid_rules) { // invalid_parameters
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
- void *invalid_parameters_var;
- if (
- (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
- )
- {
- D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
- _res = invalid_parameters_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
- }
- { // parameters
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
- arguments_ty parameters_var;
- if (
- (parameters_var = parameters_rule(p)) // parameters
- )
- {
- D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
- _res = parameters_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// parameters:
-// | slash_no_default param_no_default* param_with_default* star_etc?
-// | slash_with_default param_with_default* star_etc?
-// | param_no_default+ param_with_default* star_etc?
-// | param_with_default+ star_etc?
-// | star_etc
-static arguments_ty
-parameters_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arguments_ty _res = NULL;
- int _mark = p->mark;
- { // slash_no_default param_no_default* param_with_default* star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
- asdl_seq* a;
- asdl_seq * b;
- asdl_seq * c;
- void *d;
- if (
- (a = slash_no_default_rule(p)) // slash_no_default
- &&
- (b = _loop0_54_rule(p)) // param_no_default*
- &&
- (c = _loop0_55_rule(p)) // param_with_default*
- &&
- (d = star_etc_rule(p), !p->error_indicator) // star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
- _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
- }
- { // slash_with_default param_with_default* star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
- SlashWithDefault* a;
- asdl_seq * b;
- void *c;
- if (
- (a = slash_with_default_rule(p)) // slash_with_default
- &&
- (b = _loop0_56_rule(p)) // param_with_default*
- &&
- (c = star_etc_rule(p), !p->error_indicator) // star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
- _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
- }
- { // param_no_default+ param_with_default* star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
- asdl_seq * a;
- asdl_seq * b;
- void *c;
- if (
- (a = _loop1_57_rule(p)) // param_no_default+
- &&
- (b = _loop0_58_rule(p)) // param_with_default*
- &&
- (c = star_etc_rule(p), !p->error_indicator) // star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
- _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
- }
- { // param_with_default+ star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
- asdl_seq * a;
- void *b;
- if (
- (a = _loop1_59_rule(p)) // param_with_default+
- &&
- (b = star_etc_rule(p), !p->error_indicator) // star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
- _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
- }
- { // star_etc
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
- StarEtc* a;
- if (
- (a = star_etc_rule(p)) // star_etc
- )
- {
- D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
- _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
-static asdl_seq*
-slash_no_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // param_no_default+ '/' ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * a;
- if (
- (a = _loop1_60_rule(p)) // param_no_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
- }
- { // param_no_default+ '/' &')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
- Token * _literal;
- asdl_seq * a;
- if (
- (a = _loop1_61_rule(p)) // param_no_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// slash_with_default:
-// | param_no_default* param_with_default+ '/' ','
-// | param_no_default* param_with_default+ '/' &')'
-static SlashWithDefault*
-slash_with_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- SlashWithDefault* _res = NULL;
- int _mark = p->mark;
- { // param_no_default* param_with_default+ '/' ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * a;
- asdl_seq * b;
- if (
- (a = _loop0_62_rule(p)) // param_no_default*
- &&
- (b = _loop1_63_rule(p)) // param_with_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
- _res = _PyPegen_slash_with_default ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
- }
- { // param_no_default* param_with_default+ '/' &')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
- Token * _literal;
- asdl_seq * a;
- asdl_seq * b;
- if (
- (a = _loop0_64_rule(p)) // param_no_default*
- &&
- (b = _loop1_65_rule(p)) // param_with_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
- _res = _PyPegen_slash_with_default ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// star_etc:
-// | '*' param_no_default param_maybe_default* kwds?
-// | '*' ',' param_maybe_default+ kwds?
-// | kwds
-// | invalid_star_etc
-static StarEtc*
-star_etc_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- StarEtc* _res = NULL;
- int _mark = p->mark;
- { // '*' param_no_default param_maybe_default* kwds?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
- Token * _literal;
- arg_ty a;
- asdl_seq * b;
- void *c;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = param_no_default_rule(p)) // param_no_default
- &&
- (b = _loop0_66_rule(p)) // param_maybe_default*
- &&
- (c = kwds_rule(p), !p->error_indicator) // kwds?
- )
- {
- D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
- _res = _PyPegen_star_etc ( p , a , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
- }
- { // '*' ',' param_maybe_default+ kwds?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * b;
- void *c;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (b = _loop1_67_rule(p)) // param_maybe_default+
- &&
- (c = kwds_rule(p), !p->error_indicator) // kwds?
- )
- {
- D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
- _res = _PyPegen_star_etc ( p , NULL , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
- }
- { // kwds
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
- arg_ty a;
- if (
- (a = kwds_rule(p)) // kwds
- )
- {
- D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
- _res = _PyPegen_star_etc ( p , NULL , NULL , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
- }
- if (p->call_invalid_rules) { // invalid_star_etc
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
- void *invalid_star_etc_var;
- if (
- (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
- )
- {
- D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
- _res = invalid_star_etc_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// kwds: '**' param_no_default
-static arg_ty
-kwds_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arg_ty _res = NULL;
- int _mark = p->mark;
- { // '**' param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
- Token * _literal;
- arg_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (a = param_no_default_rule(p)) // param_no_default
- )
- {
- D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
-static arg_ty
-param_no_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arg_ty _res = NULL;
- int _mark = p->mark;
- { // param ',' TYPE_COMMENT?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
- Token * _literal;
- arg_ty a;
- void *tc;
- if (
- (a = param_rule(p)) // param
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- )
- {
- D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
- _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
- }
- { // param TYPE_COMMENT? &')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
- arg_ty a;
- void *tc;
- if (
- (a = param_rule(p)) // param
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
- _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
-static NameDefaultPair*
-param_with_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- NameDefaultPair* _res = NULL;
- int _mark = p->mark;
- { // param default ',' TYPE_COMMENT?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
- Token * _literal;
- arg_ty a;
- expr_ty c;
- void *tc;
- if (
- (a = param_rule(p)) // param
- &&
- (c = default_rule(p)) // default
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- )
- {
- D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
- _res = _PyPegen_name_default_pair ( p , a , c , tc );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
- }
- { // param default TYPE_COMMENT? &')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
- arg_ty a;
- expr_ty c;
- void *tc;
- if (
- (a = param_rule(p)) // param
- &&
- (c = default_rule(p)) // default
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
- _res = _PyPegen_name_default_pair ( p , a , c , tc );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// param_maybe_default:
-// | param default? ',' TYPE_COMMENT?
-// | param default? TYPE_COMMENT? &')'
-static NameDefaultPair*
-param_maybe_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- NameDefaultPair* _res = NULL;
- int _mark = p->mark;
- { // param default? ',' TYPE_COMMENT?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
- Token * _literal;
- arg_ty a;
- void *c;
- void *tc;
- if (
- (a = param_rule(p)) // param
- &&
- (c = default_rule(p), !p->error_indicator) // default?
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- )
- {
- D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
- _res = _PyPegen_name_default_pair ( p , a , c , tc );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
- }
- { // param default? TYPE_COMMENT? &')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
- arg_ty a;
- void *c;
- void *tc;
- if (
- (a = param_rule(p)) // param
- &&
- (c = default_rule(p), !p->error_indicator) // default?
- &&
- (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
- _res = _PyPegen_name_default_pair ( p , a , c , tc );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// param: NAME annotation?
-static arg_ty
-param_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arg_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME annotation?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
- expr_ty a;
- void *b;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- &&
- (b = annotation_rule(p), !p->error_indicator) // annotation?
- )
- {
- D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// annotation: ':' expression
-static expr_ty
-annotation_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // ':' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// default: '=' expression
-static expr_ty
-default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // '=' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// decorators: (('@' named_expression NEWLINE))+
-static asdl_seq*
-decorators_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // (('@' named_expression NEWLINE))+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
- asdl_seq * a;
- if (
- (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
- )
- {
- D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// class_def: decorators class_def_raw | class_def_raw
-static stmt_ty
-class_def_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- { // decorators class_def_raw
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
- asdl_seq* a;
- stmt_ty b;
- if (
- (a = decorators_rule(p)) // decorators
- &&
- (b = class_def_raw_rule(p)) // class_def_raw
- )
- {
- D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
- _res = _PyPegen_class_def_decorators ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
- }
- { // class_def_raw
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
- stmt_ty class_def_raw_var;
- if (
- (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
- )
- {
- D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
- _res = class_def_raw_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
-static stmt_ty
-class_def_raw_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- stmt_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'class' NAME ['(' arguments? ')'] ':' block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
- Token * _keyword;
- Token * _literal;
- expr_ty a;
- void *b;
- asdl_seq* c;
- if (
- (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
- &&
- (a = _PyPegen_name_token(p)) // NAME
- &&
- (b = _tmp_69_rule(p), !p->error_indicator) // ['(' arguments? ')']
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (c = block_rule(p)) // block
- )
- {
- D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
-static asdl_seq*
-block_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- if (_PyPegen_is_memoized(p, block_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- { // NEWLINE INDENT statements DEDENT
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
- asdl_seq* a;
- Token * dedent_var;
- Token * indent_var;
- Token * newline_var;
- if (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- &&
- (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
- &&
- (a = statements_rule(p)) // statements
- &&
- (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
- )
- {
- D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
- }
- { // simple_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
- asdl_seq* simple_stmt_var;
- if (
- (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
- )
- {
- D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
- _res = simple_stmt_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
- }
- if (p->call_invalid_rules) { // invalid_block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
- void *invalid_block_var;
- if (
- (invalid_block_var = invalid_block_rule(p)) // invalid_block
- )
- {
- D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
- _res = invalid_block_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, block_type, _res);
- p->level--;
- return _res;
-}
-
-// star_expressions:
-// | star_expression ((',' star_expression))+ ','?
-// | star_expression ','
-// | star_expression
-static expr_ty
-star_expressions_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // star_expression ((',' star_expression))+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- expr_ty a;
- asdl_seq * b;
- if (
- (a = star_expression_rule(p)) // star_expression
- &&
- (b = _loop1_70_rule(p)) // ((',' star_expression))+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
- }
- { // star_expression ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
- Token * _literal;
- expr_ty a;
- if (
- (a = star_expression_rule(p)) // star_expression
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
- }
- { // star_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
- expr_ty star_expression_var;
- if (
- (star_expression_var = star_expression_rule(p)) // star_expression
- )
- {
- D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
- _res = star_expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// star_expression: '*' bitwise_or | expression
-static expr_ty
-star_expression_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '*' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Starred ( a , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
- }
- { // expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
- expr_ty expression_var;
- if (
- (expression_var = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
- _res = expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
- p->level--;
- return _res;
-}
-
-// star_named_expressions: ','.star_named_expression+ ','?
-static asdl_seq*
-star_named_expressions_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.star_named_expression+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- if (
- (a = _gather_71_rule(p)) // ','.star_named_expression+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// star_named_expression: '*' bitwise_or | named_expression
-static expr_ty
-star_named_expression_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '*' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Starred ( a , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
- }
- { // named_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
- expr_ty named_expression_var;
- if (
- (named_expression_var = named_expression_rule(p)) // named_expression
- )
- {
- D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
- _res = named_expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
-static expr_ty
-named_expression_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME ':=' ~ expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
- int _cut_var = 0;
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- &&
- (_literal = _PyPegen_expect_token(p, 53)) // token=':='
- &&
- (_cut_var = 1)
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- { // expression !':='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
- expr_ty expression_var;
- if (
- (expression_var = expression_rule(p)) // expression
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
- )
- {
- D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
- _res = expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
- }
- if (p->call_invalid_rules) { // invalid_named_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
- void *invalid_named_expression_var;
- if (
- (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
- )
- {
- D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
- _res = invalid_named_expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// annotated_rhs: yield_expr | star_expressions
-static expr_ty
-annotated_rhs_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // yield_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- expr_ty yield_expr_var;
- if (
- (yield_expr_var = yield_expr_rule(p)) // yield_expr
- )
- {
- D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- _res = yield_expr_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
- }
- { // star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- expr_ty star_expressions_var;
- if (
- (star_expressions_var = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- _res = star_expressions_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// expressions: expression ((',' expression))+ ','? | expression ',' | expression
-static expr_ty
-expressions_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // expression ((',' expression))+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- expr_ty a;
- asdl_seq * b;
- if (
- (a = expression_rule(p)) // expression
- &&
- (b = _loop1_73_rule(p)) // ((',' expression))+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
- }
- { // expression ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
- Token * _literal;
- expr_ty a;
- if (
- (a = expression_rule(p)) // expression
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
- }
- { // expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
- expr_ty expression_var;
- if (
- (expression_var = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
- _res = expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
-static expr_ty
-expression_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, expression_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // disjunction 'if' disjunction 'else' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
- Token * _keyword;
- Token * _keyword_1;
- expr_ty a;
- expr_ty b;
- expr_ty c;
- if (
- (a = disjunction_rule(p)) // disjunction
- &&
- (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
- &&
- (b = disjunction_rule(p)) // disjunction
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
- &&
- (c = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_IfExp ( b , a , c , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
- }
- { // disjunction
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
- expr_ty disjunction_var;
- if (
- (disjunction_var = disjunction_rule(p)) // disjunction
- )
- {
- D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
- _res = disjunction_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
- }
- { // lambdef
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
- expr_ty lambdef_var;
- if (
- (lambdef_var = lambdef_rule(p)) // lambdef
- )
- {
- D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
- _res = lambdef_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, expression_type, _res);
- p->level--;
- return _res;
-}
-
-// lambdef: 'lambda' lambda_params? ':' expression
-static expr_ty
-lambdef_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'lambda' lambda_params? ':' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
- Token * _keyword;
- Token * _literal;
- void *a;
- expr_ty b;
- if (
- (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
- &&
- (a = lambda_params_rule(p), !p->error_indicator) // lambda_params?
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_params: invalid_lambda_parameters | lambda_parameters
-static arguments_ty
-lambda_params_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arguments_ty _res = NULL;
- int _mark = p->mark;
- if (p->call_invalid_rules) { // invalid_lambda_parameters
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
- void *invalid_lambda_parameters_var;
- if (
- (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
- )
- {
- D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
- _res = invalid_lambda_parameters_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
- }
- { // lambda_parameters
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
- arguments_ty lambda_parameters_var;
- if (
- (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
- )
- {
- D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
- _res = lambda_parameters_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_parameters:
-// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
-// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
-// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
-// | lambda_param_with_default+ lambda_star_etc?
-// | lambda_star_etc
-static arguments_ty
-lambda_parameters_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arguments_ty _res = NULL;
- int _mark = p->mark;
- { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
- asdl_seq* a;
- asdl_seq * b;
- asdl_seq * c;
- void *d;
- if (
- (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
- &&
- (b = _loop0_74_rule(p)) // lambda_param_no_default*
- &&
- (c = _loop0_75_rule(p)) // lambda_param_with_default*
- &&
- (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
- _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
- }
- { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
- SlashWithDefault* a;
- asdl_seq * b;
- void *c;
- if (
- (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
- &&
- (b = _loop0_76_rule(p)) // lambda_param_with_default*
- &&
- (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
- _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
- }
- { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
- asdl_seq * a;
- asdl_seq * b;
- void *c;
- if (
- (a = _loop1_77_rule(p)) // lambda_param_no_default+
- &&
- (b = _loop0_78_rule(p)) // lambda_param_with_default*
- &&
- (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
- _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
- }
- { // lambda_param_with_default+ lambda_star_etc?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
- asdl_seq * a;
- void *b;
- if (
- (a = _loop1_79_rule(p)) // lambda_param_with_default+
- &&
- (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
- )
- {
- D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
- _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
- }
- { // lambda_star_etc
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
- StarEtc* a;
- if (
- (a = lambda_star_etc_rule(p)) // lambda_star_etc
- )
- {
- D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
- _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_slash_no_default:
-// | lambda_param_no_default+ '/' ','
-// | lambda_param_no_default+ '/' &':'
-static asdl_seq*
-lambda_slash_no_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // lambda_param_no_default+ '/' ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * a;
- if (
- (a = _loop1_80_rule(p)) // lambda_param_no_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
- }
- { // lambda_param_no_default+ '/' &':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
- Token * _literal;
- asdl_seq * a;
- if (
- (a = _loop1_81_rule(p)) // lambda_param_no_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_slash_with_default:
-// | lambda_param_no_default* lambda_param_with_default+ '/' ','
-// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
-static SlashWithDefault*
-lambda_slash_with_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- SlashWithDefault* _res = NULL;
- int _mark = p->mark;
- { // lambda_param_no_default* lambda_param_with_default+ '/' ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * a;
- asdl_seq * b;
- if (
- (a = _loop0_82_rule(p)) // lambda_param_no_default*
- &&
- (b = _loop1_83_rule(p)) // lambda_param_with_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
- _res = _PyPegen_slash_with_default ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
- }
- { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
- Token * _literal;
- asdl_seq * a;
- asdl_seq * b;
- if (
- (a = _loop0_84_rule(p)) // lambda_param_no_default*
- &&
- (b = _loop1_85_rule(p)) // lambda_param_with_default+
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
- _res = _PyPegen_slash_with_default ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_star_etc:
-// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
-// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
-// | lambda_kwds
-// | invalid_lambda_star_etc
-static StarEtc*
-lambda_star_etc_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- StarEtc* _res = NULL;
- int _mark = p->mark;
- { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
- Token * _literal;
- arg_ty a;
- asdl_seq * b;
- void *c;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
- &&
- (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
- &&
- (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
- )
- {
- D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
- _res = _PyPegen_star_etc ( p , a , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
- }
- { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * b;
- void *c;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
- &&
- (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
- )
- {
- D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
- _res = _PyPegen_star_etc ( p , NULL , b , c );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
- }
- { // lambda_kwds
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
- arg_ty a;
- if (
- (a = lambda_kwds_rule(p)) // lambda_kwds
- )
- {
- D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
- _res = _PyPegen_star_etc ( p , NULL , NULL , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
- }
- if (p->call_invalid_rules) { // invalid_lambda_star_etc
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
- void *invalid_lambda_star_etc_var;
- if (
- (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
- )
- {
- D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
- _res = invalid_lambda_star_etc_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_kwds: '**' lambda_param_no_default
-static arg_ty
-lambda_kwds_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arg_ty _res = NULL;
- int _mark = p->mark;
- { // '**' lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
- Token * _literal;
- arg_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_param_no_default: lambda_param ',' | lambda_param &':'
-static arg_ty
-lambda_param_no_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arg_ty _res = NULL;
- int _mark = p->mark;
- { // lambda_param ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
- Token * _literal;
- arg_ty a;
- if (
- (a = lambda_param_rule(p)) // lambda_param
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
- }
- { // lambda_param &':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
- arg_ty a;
- if (
- (a = lambda_param_rule(p)) // lambda_param
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
-static NameDefaultPair*
-lambda_param_with_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- NameDefaultPair* _res = NULL;
- int _mark = p->mark;
- { // lambda_param default ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
- Token * _literal;
- arg_ty a;
- expr_ty c;
- if (
- (a = lambda_param_rule(p)) // lambda_param
- &&
- (c = default_rule(p)) // default
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
- _res = _PyPegen_name_default_pair ( p , a , c , NULL );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
- }
- { // lambda_param default &':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
- arg_ty a;
- expr_ty c;
- if (
- (a = lambda_param_rule(p)) // lambda_param
- &&
- (c = default_rule(p)) // default
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
- _res = _PyPegen_name_default_pair ( p , a , c , NULL );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
-static NameDefaultPair*
-lambda_param_maybe_default_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- NameDefaultPair* _res = NULL;
- int _mark = p->mark;
- { // lambda_param default? ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
- Token * _literal;
- arg_ty a;
- void *c;
- if (
- (a = lambda_param_rule(p)) // lambda_param
- &&
- (c = default_rule(p), !p->error_indicator) // default?
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
- _res = _PyPegen_name_default_pair ( p , a , c , NULL );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
- }
- { // lambda_param default? &':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
- arg_ty a;
- void *c;
- if (
- (a = lambda_param_rule(p)) // lambda_param
- &&
- (c = default_rule(p), !p->error_indicator) // default?
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
- _res = _PyPegen_name_default_pair ( p , a , c , NULL );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lambda_param: NAME
-static arg_ty
-lambda_param_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- arg_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
- expr_ty a;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// disjunction: conjunction (('or' conjunction))+ | conjunction
-static expr_ty
-disjunction_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // conjunction (('or' conjunction))+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
- expr_ty a;
- asdl_seq * b;
- if (
- (a = conjunction_rule(p)) // conjunction
- &&
- (b = _loop1_88_rule(p)) // (('or' conjunction))+
- )
- {
- D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
- }
- { // conjunction
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
- expr_ty conjunction_var;
- if (
- (conjunction_var = conjunction_rule(p)) // conjunction
- )
- {
- D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
- _res = conjunction_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
- p->level--;
- return _res;
-}
-
-// conjunction: inversion (('and' inversion))+ | inversion
-static expr_ty
-conjunction_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // inversion (('and' inversion))+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
- expr_ty a;
- asdl_seq * b;
- if (
- (a = inversion_rule(p)) // inversion
- &&
- (b = _loop1_89_rule(p)) // (('and' inversion))+
- )
- {
- D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
- }
- { // inversion
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
- expr_ty inversion_var;
- if (
- (inversion_var = inversion_rule(p)) // inversion
- )
- {
- D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
- _res = inversion_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
- p->level--;
- return _res;
-}
-
-// inversion: 'not' inversion | comparison
-static expr_ty
-inversion_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'not' inversion
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
- Token * _keyword;
- expr_ty a;
- if (
- (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
- &&
- (a = inversion_rule(p)) // inversion
- )
- {
- D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_UnaryOp ( Not , a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
- }
- { // comparison
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
- expr_ty comparison_var;
- if (
- (comparison_var = comparison_rule(p)) // comparison
- )
- {
- D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
- _res = comparison_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, inversion_type, _res);
- p->level--;
- return _res;
-}
-
-// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
-static expr_ty
-comparison_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // bitwise_or compare_op_bitwise_or_pair+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
- expr_ty a;
- asdl_seq * b;
- if (
- (a = bitwise_or_rule(p)) // bitwise_or
- &&
- (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
- )
- {
- D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
- }
- { // bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
- expr_ty bitwise_or_var;
- if (
- (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
- _res = bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// compare_op_bitwise_or_pair:
-// | eq_bitwise_or
-// | noteq_bitwise_or
-// | lte_bitwise_or
-// | lt_bitwise_or
-// | gte_bitwise_or
-// | gt_bitwise_or
-// | notin_bitwise_or
-// | in_bitwise_or
-// | isnot_bitwise_or
-// | is_bitwise_or
-static CmpopExprPair*
-compare_op_bitwise_or_pair_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // eq_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
- CmpopExprPair* eq_bitwise_or_var;
- if (
- (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
- _res = eq_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
- }
- { // noteq_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
- CmpopExprPair* noteq_bitwise_or_var;
- if (
- (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
- _res = noteq_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
- }
- { // lte_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
- CmpopExprPair* lte_bitwise_or_var;
- if (
- (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
- _res = lte_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
- }
- { // lt_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
- CmpopExprPair* lt_bitwise_or_var;
- if (
- (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
- _res = lt_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
- }
- { // gte_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
- CmpopExprPair* gte_bitwise_or_var;
- if (
- (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
- _res = gte_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
- }
- { // gt_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
- CmpopExprPair* gt_bitwise_or_var;
- if (
- (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
- _res = gt_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
- }
- { // notin_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
- CmpopExprPair* notin_bitwise_or_var;
- if (
- (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
- _res = notin_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
- }
- { // in_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
- CmpopExprPair* in_bitwise_or_var;
- if (
- (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
- _res = in_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
- }
- { // isnot_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
- CmpopExprPair* isnot_bitwise_or_var;
- if (
- (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
- _res = isnot_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
- }
- { // is_bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
- CmpopExprPair* is_bitwise_or_var;
- if (
- (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
- _res = is_bitwise_or_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// eq_bitwise_or: '==' bitwise_or
-static CmpopExprPair*
-eq_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // '==' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 27)) // token='=='
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// noteq_bitwise_or: ('!=') bitwise_or
-static CmpopExprPair*
-noteq_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // ('!=') bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
- void *_tmp_91_var;
- expr_ty a;
- if (
- (_tmp_91_var = _tmp_91_rule(p)) // '!='
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lte_bitwise_or: '<=' bitwise_or
-static CmpopExprPair*
-lte_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // '<=' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 29)) // token='<='
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// lt_bitwise_or: '<' bitwise_or
-static CmpopExprPair*
-lt_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // '<' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 20)) // token='<'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// gte_bitwise_or: '>=' bitwise_or
-static CmpopExprPair*
-gte_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // '>=' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 30)) // token='>='
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// gt_bitwise_or: '>' bitwise_or
-static CmpopExprPair*
-gt_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // '>' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 21)) // token='>'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// notin_bitwise_or: 'not' 'in' bitwise_or
-static CmpopExprPair*
-notin_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // 'not' 'in' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
- Token * _keyword;
- Token * _keyword_1;
- expr_ty a;
- if (
- (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// in_bitwise_or: 'in' bitwise_or
-static CmpopExprPair*
-in_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // 'in' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
- Token * _keyword;
- expr_ty a;
- if (
- (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , In , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// isnot_bitwise_or: 'is' 'not' bitwise_or
-static CmpopExprPair*
-isnot_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // 'is' 'not' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
- Token * _keyword;
- Token * _keyword_1;
- expr_ty a;
- if (
- (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// is_bitwise_or: 'is' bitwise_or
-static CmpopExprPair*
-is_bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- CmpopExprPair* _res = NULL;
- int _mark = p->mark;
- { // 'is' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
- Token * _keyword;
- expr_ty a;
- if (
- (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
- _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
-static expr_ty bitwise_or_raw(Parser *);
-static expr_ty
-bitwise_or_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
- if (tmpvar_1) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = bitwise_or_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-bitwise_or_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // bitwise_or '|' bitwise_xor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = bitwise_or_rule(p)) // bitwise_or
- &&
- (_literal = _PyPegen_expect_token(p, 18)) // token='|'
- &&
- (b = bitwise_xor_rule(p)) // bitwise_xor
- )
- {
- D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , BitOr , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
- }
- { // bitwise_xor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
- expr_ty bitwise_xor_var;
- if (
- (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
- )
- {
- D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
- _res = bitwise_xor_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
-static expr_ty bitwise_xor_raw(Parser *);
-static expr_ty
-bitwise_xor_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
- if (tmpvar_2) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = bitwise_xor_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-bitwise_xor_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // bitwise_xor '^' bitwise_and
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = bitwise_xor_rule(p)) // bitwise_xor
- &&
- (_literal = _PyPegen_expect_token(p, 32)) // token='^'
- &&
- (b = bitwise_and_rule(p)) // bitwise_and
- )
- {
- D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , BitXor , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
- }
- { // bitwise_and
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
- expr_ty bitwise_and_var;
- if (
- (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
- )
- {
- D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
- _res = bitwise_and_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// bitwise_and: bitwise_and '&' shift_expr | shift_expr
-static expr_ty bitwise_and_raw(Parser *);
-static expr_ty
-bitwise_and_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
- if (tmpvar_3) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = bitwise_and_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-bitwise_and_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // bitwise_and '&' shift_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = bitwise_and_rule(p)) // bitwise_and
- &&
- (_literal = _PyPegen_expect_token(p, 19)) // token='&'
- &&
- (b = shift_expr_rule(p)) // shift_expr
- )
- {
- D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
- }
- { // shift_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
- expr_ty shift_expr_var;
- if (
- (shift_expr_var = shift_expr_rule(p)) // shift_expr
- )
- {
- D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
- _res = shift_expr_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
-static expr_ty shift_expr_raw(Parser *);
-static expr_ty
-shift_expr_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
- if (tmpvar_4) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = shift_expr_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-shift_expr_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // shift_expr '<<' sum
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = shift_expr_rule(p)) // shift_expr
- &&
- (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
- &&
- (b = sum_rule(p)) // sum
- )
- {
- D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , LShift , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
- }
- { // shift_expr '>>' sum
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = shift_expr_rule(p)) // shift_expr
- &&
- (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
- &&
- (b = sum_rule(p)) // sum
- )
- {
- D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , RShift , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
- }
- { // sum
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
- expr_ty sum_var;
- if (
- (sum_var = sum_rule(p)) // sum
- )
- {
- D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
- _res = sum_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// sum: sum '+' term | sum '-' term | term
-static expr_ty sum_raw(Parser *);
-static expr_ty
-sum_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, sum_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
- if (tmpvar_5) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = sum_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-sum_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // sum '+' term
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = sum_rule(p)) // sum
- &&
- (_literal = _PyPegen_expect_token(p, 14)) // token='+'
- &&
- (b = term_rule(p)) // term
- )
- {
- D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , Add , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
- }
- { // sum '-' term
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = sum_rule(p)) // sum
- &&
- (_literal = _PyPegen_expect_token(p, 15)) // token='-'
- &&
- (b = term_rule(p)) // term
- )
- {
- D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , Sub , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
- }
- { // term
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
- expr_ty term_var;
- if (
- (term_var = term_rule(p)) // term
- )
- {
- D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
- _res = term_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// term:
-// | term '*' factor
-// | term '/' factor
-// | term '//' factor
-// | term '%' factor
-// | term '@' factor
-// | factor
-static expr_ty term_raw(Parser *);
-static expr_ty
-term_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, term_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
- if (tmpvar_6) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = term_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-term_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // term '*' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = term_rule(p)) // term
- &&
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (b = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , Mult , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
- }
- { // term '/' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = term_rule(p)) // term
- &&
- (_literal = _PyPegen_expect_token(p, 17)) // token='/'
- &&
- (b = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , Div , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
- }
- { // term '//' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = term_rule(p)) // term
- &&
- (_literal = _PyPegen_expect_token(p, 47)) // token='//'
- &&
- (b = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
- }
- { // term '%' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = term_rule(p)) // term
- &&
- (_literal = _PyPegen_expect_token(p, 24)) // token='%'
- &&
- (b = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , Mod , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
- }
- { // term '@' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = term_rule(p)) // term
- &&
- (_literal = _PyPegen_expect_token(p, 49)) // token='@'
- &&
- (b = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
- }
- { // factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
- expr_ty factor_var;
- if (
- (factor_var = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
- _res = factor_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// factor: '+' factor | '-' factor | '~' factor | power
-static expr_ty
-factor_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, factor_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '+' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 14)) // token='+'
- &&
- (a = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_UnaryOp ( UAdd , a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
- }
- { // '-' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 15)) // token='-'
- &&
- (a = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_UnaryOp ( USub , a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
- }
- { // '~' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 31)) // token='~'
- &&
- (a = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_UnaryOp ( Invert , a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
- }
- { // power
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
- expr_ty power_var;
- if (
- (power_var = power_rule(p)) // power
- )
- {
- D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
- _res = power_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, factor_type, _res);
- p->level--;
- return _res;
-}
-
-// power: await_primary '**' factor | await_primary
-static expr_ty
-power_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // await_primary '**' factor
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = await_primary_rule(p)) // await_primary
- &&
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (b = factor_rule(p)) // factor
- )
- {
- D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_BinOp ( a , Pow , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
- }
- { // await_primary
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
- expr_ty await_primary_var;
- if (
- (await_primary_var = await_primary_rule(p)) // await_primary
- )
- {
- D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
- _res = await_primary_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// await_primary: AWAIT primary | primary
-static expr_ty
-await_primary_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // AWAIT primary
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
- expr_ty a;
- Token * await_var;
- if (
- (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
- &&
- (a = primary_rule(p)) // primary
- )
- {
- D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
- }
- { // primary
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
- expr_ty primary_var;
- if (
- (primary_var = primary_rule(p)) // primary
- )
- {
- D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
- _res = primary_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// primary:
-// | invalid_primary
-// | primary '.' NAME
-// | primary genexp
-// | primary '(' arguments? ')'
-// | primary '[' slices ']'
-// | atom
-static expr_ty primary_raw(Parser *);
-static expr_ty
-primary_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, primary_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
- if (tmpvar_7) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = primary_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-primary_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- if (p->call_invalid_rules) { // invalid_primary
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
- void *invalid_primary_var;
- if (
- (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
- )
- {
- D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
- _res = invalid_primary_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
- }
- { // primary '.' NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = primary_rule(p)) // primary
- &&
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- &&
- (b = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
- }
- { // primary genexp
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
- expr_ty a;
- expr_ty b;
- if (
- (a = primary_rule(p)) // primary
- &&
- (b = genexp_rule(p)) // genexp
- )
- {
- D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
- }
- { // primary '(' arguments? ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- void *b;
- if (
- (a = primary_rule(p)) // primary
- &&
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (b = arguments_rule(p), !p->error_indicator) // arguments?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
- }
- { // primary '[' slices ']'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- expr_ty b;
- if (
- (a = primary_rule(p)) // primary
- &&
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (b = slices_rule(p)) // slices
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- )
- {
- D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Subscript ( a , b , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
- }
- { // atom
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
- expr_ty atom_var;
- if (
- (atom_var = atom_rule(p)) // atom
- )
- {
- D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
- _res = atom_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// slices: slice !',' | ','.slice+ ','?
-static expr_ty
-slices_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // slice !','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
- expr_ty a;
- if (
- (a = slice_rule(p)) // slice
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
- }
- { // ','.slice+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- if (
- (a = _gather_92_rule(p)) // ','.slice+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( a , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// slice: expression? ':' expression? [':' expression?] | expression
-static expr_ty
-slice_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // expression? ':' expression? [':' expression?]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
- Token * _literal;
- void *a;
- void *b;
- void *c;
- if (
- (a = expression_rule(p), !p->error_indicator) // expression?
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = expression_rule(p), !p->error_indicator) // expression?
- &&
- (c = _tmp_94_rule(p), !p->error_indicator) // [':' expression?]
- )
- {
- D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Slice ( a , b , c , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
- }
- { // expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
- expr_ty a;
- if (
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// atom:
-// | NAME
-// | 'True'
-// | 'False'
-// | 'None'
-// | '__peg_parser__'
-// | &STRING strings
-// | NUMBER
-// | &'(' (tuple | group | genexp)
-// | &'[' (list | listcomp)
-// | &'{' (dict | set | dictcomp | setcomp)
-// | '...'
-static expr_ty
-atom_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
- expr_ty name_var;
- if (
- (name_var = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
- _res = name_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
- }
- { // 'True'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Constant ( Py_True , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
- }
- { // 'False'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Constant ( Py_False , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
- }
- { // 'None'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Constant ( Py_None , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
- }
- { // '__peg_parser__'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
- _res = RAISE_SYNTAX_ERROR ( "You found it!" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
- }
- { // &STRING strings
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
- expr_ty strings_var;
- if (
- _PyPegen_lookahead(1, _PyPegen_string_token, p)
- &&
- (strings_var = strings_rule(p)) // strings
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
- _res = strings_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
- }
- { // NUMBER
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
- expr_ty number_var;
- if (
- (number_var = _PyPegen_number_token(p)) // NUMBER
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
- _res = number_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
- }
- { // &'(' (tuple | group | genexp)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
- void *_tmp_95_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
- &&
- (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
- _res = _tmp_95_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
- }
- { // &'[' (list | listcomp)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
- void *_tmp_96_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
- &&
- (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
- _res = _tmp_96_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
- }
- { // &'{' (dict | set | dictcomp | setcomp)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
- void *_tmp_97_var;
- if (
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
- &&
- (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
- _res = _tmp_97_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
- }
- { // '...'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 52)) // token='...'
- )
- {
- D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// strings: STRING+
-static expr_ty
-strings_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, strings_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- { // STRING+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
- asdl_seq * a;
- if (
- (a = _loop1_98_rule(p)) // STRING+
- )
- {
- D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
- _res = _PyPegen_concatenate_strings ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, strings_type, _res);
- p->level--;
- return _res;
-}
-
-// list: '[' star_named_expressions? ']'
-static expr_ty
-list_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '[' star_named_expressions? ']'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (a = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- )
- {
- D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_List ( a , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
-static expr_ty
-listcomp_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '[' named_expression ~ for_if_clauses ']'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
- int _cut_var = 0;
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- asdl_seq* b;
- if (
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_cut_var = 1)
- &&
- (b = for_if_clauses_rule(p)) // for_if_clauses
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- )
- {
- D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_ListComp ( a , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- if (p->call_invalid_rules) { // invalid_comprehension
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
- void *invalid_comprehension_var;
- if (
- (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
- )
- {
- D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
- _res = invalid_comprehension_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
-static expr_ty
-tuple_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '(' [star_named_expression ',' star_named_expressions?] ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = _tmp_99_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( a , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// group: '(' (yield_expr | named_expression) ')' | invalid_group
-static expr_ty
-group_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // '(' (yield_expr | named_expression) ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = _tmp_100_rule(p)) // yield_expr | named_expression
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
- }
- if (p->call_invalid_rules) { // invalid_group
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
- void *invalid_group_var;
- if (
- (invalid_group_var = invalid_group_rule(p)) // invalid_group
- )
- {
- D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
- _res = invalid_group_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// genexp: '(' named_expression ~ for_if_clauses ')' | invalid_comprehension
-static expr_ty
-genexp_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '(' named_expression ~ for_if_clauses ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
- int _cut_var = 0;
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- asdl_seq* b;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_cut_var = 1)
- &&
- (b = for_if_clauses_rule(p)) // for_if_clauses
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_GeneratorExp ( a , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- if (p->call_invalid_rules) { // invalid_comprehension
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
- void *invalid_comprehension_var;
- if (
- (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
- )
- {
- D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
- _res = invalid_comprehension_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// set: '{' star_named_expressions '}'
-static expr_ty
-set_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '{' star_named_expressions '}'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq* a;
- if (
- (_literal = _PyPegen_expect_token(p, 25)) // token='{'
- &&
- (a = star_named_expressions_rule(p)) // star_named_expressions
- &&
- (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
- )
- {
- D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Set ( a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// setcomp: '{' named_expression ~ for_if_clauses '}' | invalid_comprehension
-static expr_ty
-setcomp_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '{' named_expression ~ for_if_clauses '}'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
- int _cut_var = 0;
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- asdl_seq* b;
- if (
- (_literal = _PyPegen_expect_token(p, 25)) // token='{'
- &&
- (a = named_expression_rule(p)) // named_expression
- &&
- (_cut_var = 1)
- &&
- (b = for_if_clauses_rule(p)) // for_if_clauses
- &&
- (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
- )
- {
- D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_SetComp ( a , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- if (p->call_invalid_rules) { // invalid_comprehension
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
- void *invalid_comprehension_var;
- if (
- (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
- )
- {
- D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
- _res = invalid_comprehension_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// dict: '{' double_starred_kvpairs? '}'
-static expr_ty
-dict_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '{' double_starred_kvpairs? '}'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 25)) // token='{'
- &&
- (a = double_starred_kvpairs_rule(p), !p->error_indicator) // double_starred_kvpairs?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
- )
- {
- D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
-static expr_ty
-dictcomp_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '{' kvpair for_if_clauses '}'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
- Token * _literal;
- Token * _literal_1;
- KeyValuePair* a;
- asdl_seq* b;
- if (
- (_literal = _PyPegen_expect_token(p, 25)) // token='{'
- &&
- (a = kvpair_rule(p)) // kvpair
- &&
- (b = for_if_clauses_rule(p)) // for_if_clauses
- &&
- (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
- )
- {
- D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
- }
- if (p->call_invalid_rules) { // invalid_dict_comprehension
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
- void *invalid_dict_comprehension_var;
- if (
- (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
- )
- {
- D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
- _res = invalid_dict_comprehension_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
-static asdl_seq*
-double_starred_kvpairs_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.double_starred_kvpair+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- if (
- (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// double_starred_kvpair: '**' bitwise_or | kvpair
-static KeyValuePair*
-double_starred_kvpair_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- KeyValuePair* _res = NULL;
- int _mark = p->mark;
- { // '**' bitwise_or
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (a = bitwise_or_rule(p)) // bitwise_or
- )
- {
- D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
- _res = _PyPegen_key_value_pair ( p , NULL , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
- }
- { // kvpair
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
- KeyValuePair* kvpair_var;
- if (
- (kvpair_var = kvpair_rule(p)) // kvpair
- )
- {
- D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
- _res = kvpair_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// kvpair: expression ':' expression
-static KeyValuePair*
-kvpair_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- KeyValuePair* _res = NULL;
- int _mark = p->mark;
- { // expression ':' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = expression_rule(p)) // expression
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
- _res = _PyPegen_key_value_pair ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// for_if_clauses: for_if_clause+
-static asdl_seq*
-for_if_clauses_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // for_if_clause+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
- asdl_seq * _loop1_103_var;
- if (
- (_loop1_103_var = _loop1_103_rule(p)) // for_if_clause+
- )
- {
- D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
- _res = _loop1_103_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// for_if_clause:
-// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
-// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
-// | invalid_for_target
-static comprehension_ty
-for_if_clause_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- comprehension_ty _res = NULL;
- int _mark = p->mark;
- { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
- int _cut_var = 0;
- Token * _keyword;
- Token * _keyword_1;
- expr_ty a;
- Token * async_var;
- expr_ty b;
- asdl_seq * c;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- &&
- (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
- &&
- (a = star_targets_rule(p)) // star_targets
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
- &&
- (_cut_var = 1)
- &&
- (b = disjunction_rule(p)) // disjunction
- &&
- (c = _loop0_104_rule(p)) // (('if' disjunction))*
- )
- {
- D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
- _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
- int _cut_var = 0;
- Token * _keyword;
- Token * _keyword_1;
- expr_ty a;
- expr_ty b;
- asdl_seq * c;
- if (
- (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
- &&
- (a = star_targets_rule(p)) // star_targets
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
- &&
- (_cut_var = 1)
- &&
- (b = disjunction_rule(p)) // disjunction
- &&
- (c = _loop0_105_rule(p)) // (('if' disjunction))*
- )
- {
- D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
- _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
- if (_cut_var) {
- p->level--;
- return NULL;
- }
- }
- if (p->call_invalid_rules) { // invalid_for_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
- void *invalid_for_target_var;
- if (
- (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
- )
- {
- D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
- _res = invalid_for_target_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
-static expr_ty
-yield_expr_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // 'yield' 'from' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
- Token * _keyword;
- Token * _keyword_1;
- expr_ty a;
- if (
- (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
- &&
- (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_YieldFrom ( a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
- }
- { // 'yield' star_expressions?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
- Token * _keyword;
- void *a;
- if (
- (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
- &&
- (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
- )
- {
- D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Yield ( a , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// arguments: args ','? &')' | invalid_arguments
-static expr_ty
-arguments_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- { // args ','? &')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- expr_ty a;
- if (
- (a = args_rule(p)) // args
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- &&
- _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
- }
- if (p->call_invalid_rules) { // invalid_arguments
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
- void *invalid_arguments_var;
- if (
- (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
- )
- {
- D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
- _res = invalid_arguments_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, arguments_type, _res);
- p->level--;
- return _res;
-}
-
-// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
-static expr_ty
-args_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
- asdl_seq * a;
- void *b;
- if (
- (a = _gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
- &&
- (b = _tmp_108_rule(p), !p->error_indicator) // [',' kwargs]
- )
- {
- D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
- }
- { // kwargs
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
- asdl_seq* a;
- if (
- (a = kwargs_rule(p)) // kwargs
- )
- {
- D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// kwargs:
-// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
-// | ','.kwarg_or_starred+
-// | ','.kwarg_or_double_starred+
-static asdl_seq*
-kwargs_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
- Token * _literal;
- asdl_seq * a;
- asdl_seq * b;
- if (
- (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
- )
- {
- D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
- _res = _PyPegen_join_sequences ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
- }
- { // ','.kwarg_or_starred+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
- asdl_seq * _gather_113_var;
- if (
- (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
- )
- {
- D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
- _res = _gather_113_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
- }
- { // ','.kwarg_or_double_starred+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
- asdl_seq * _gather_115_var;
- if (
- (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
- )
- {
- D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
- _res = _gather_115_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// starred_expression: '*' expression
-static expr_ty
-starred_expression_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '*' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Starred ( a , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
-static KeywordOrStarred*
-kwarg_or_starred_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- KeywordOrStarred* _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME '=' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
- }
- { // starred_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
- expr_ty a;
- if (
- (a = starred_expression_rule(p)) // starred_expression
- )
- {
- D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
- _res = _PyPegen_keyword_or_starred ( p , a , 0 );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
- }
- if (p->call_invalid_rules) { // invalid_kwarg
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
- void *invalid_kwarg_var;
- if (
- (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
- )
- {
- D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
- _res = invalid_kwarg_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
-static KeywordOrStarred*
-kwarg_or_double_starred_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- KeywordOrStarred* _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME '=' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- &&
- (b = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
- }
- { // '**' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
- Token * _literal;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
- }
- if (p->call_invalid_rules) { // invalid_kwarg
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
- void *invalid_kwarg_var;
- if (
- (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
- )
- {
- D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
- _res = invalid_kwarg_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// star_targets: star_target !',' | star_target ((',' star_target))* ','?
-static expr_ty
-star_targets_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // star_target !','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
- expr_ty a;
- if (
- (a = star_target_rule(p)) // star_target
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
- }
- { // star_target ((',' star_target))* ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- expr_ty a;
- asdl_seq * b;
- if (
- (a = star_target_rule(p)) // star_target
- &&
- (b = _loop0_117_rule(p)) // ((',' star_target))*
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// star_targets_list_seq: ','.star_target+ ','?
-static asdl_seq*
-star_targets_list_seq_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.star_target+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_targets_list_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- if (
- (a = _gather_118_rule(p)) // ','.star_target+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
-static asdl_seq*
-star_targets_tuple_seq_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // star_target ((',' star_target))+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- expr_ty a;
- asdl_seq * b;
- if (
- (a = star_target_rule(p)) // star_target
- &&
- (b = _loop1_120_rule(p)) // ((',' star_target))+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
- _res = _PyPegen_seq_insert_in_front ( p , a , b );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
- }
- { // star_target ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
- Token * _literal;
- expr_ty a;
- if (
- (a = star_target_rule(p)) // star_target
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
- _res = _PyPegen_singleton_seq ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// star_target: '*' (!'*' star_target) | target_with_star_atom
-static expr_ty
-star_target_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // '*' (!'*' star_target)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
- Token * _literal;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (a = _tmp_121_rule(p)) // !'*' star_target
- )
- {
- D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
- }
- { // target_with_star_atom
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
- expr_ty target_with_star_atom_var;
- if (
- (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
- )
- {
- D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
- _res = target_with_star_atom_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, star_target_type, _res);
- p->level--;
- return _res;
-}
-
-// target_with_star_atom:
-// | t_primary '.' NAME !t_lookahead
-// | t_primary '[' slices ']' !t_lookahead
-// | star_atom
-static expr_ty
-target_with_star_atom_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // t_primary '.' NAME !t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- &&
- (b = _PyPegen_name_token(p)) // NAME
- &&
- _PyPegen_lookahead(0, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- }
- { // t_primary '[' slices ']' !t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (b = slices_rule(p)) // slices
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- &&
- _PyPegen_lookahead(0, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Subscript ( a , b , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- }
- { // star_atom
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
- expr_ty star_atom_var;
- if (
- (star_atom_var = star_atom_rule(p)) // star_atom
- )
- {
- D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
- _res = star_atom_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
- p->level--;
- return _res;
-}
-
-// star_atom:
-// | NAME
-// | '(' target_with_star_atom ')'
-// | '(' star_targets_tuple_seq? ')'
-// | '[' star_targets_list_seq? ']'
-static expr_ty
-star_atom_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
- expr_ty a;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
- _res = _PyPegen_set_expr_context ( p , a , Store );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
- }
- { // '(' target_with_star_atom ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = target_with_star_atom_rule(p)) // target_with_star_atom
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
- _res = _PyPegen_set_expr_context ( p , a , Store );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
- }
- { // '(' star_targets_tuple_seq? ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = star_targets_tuple_seq_rule(p), !p->error_indicator) // star_targets_tuple_seq?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( a , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
- }
- { // '[' star_targets_list_seq? ']'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (a = star_targets_list_seq_rule(p), !p->error_indicator) // star_targets_list_seq?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- )
- {
- D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_List ( a , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
-static expr_ty
-single_target_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // single_subscript_attribute_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
- expr_ty single_subscript_attribute_target_var;
- if (
- (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
- )
- {
- D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
- _res = single_subscript_attribute_target_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
- }
- { // NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
- expr_ty a;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
- _res = _PyPegen_set_expr_context ( p , a , Store );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
- }
- { // '(' single_target ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = single_target_rule(p)) // single_target
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// single_subscript_attribute_target:
-// | t_primary '.' NAME !t_lookahead
-// | t_primary '[' slices ']' !t_lookahead
-static expr_ty
-single_subscript_attribute_target_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // t_primary '.' NAME !t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- &&
- (b = _PyPegen_name_token(p)) // NAME
- &&
- _PyPegen_lookahead(0, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- }
- { // t_primary '[' slices ']' !t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (b = slices_rule(p)) // slices
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- &&
- _PyPegen_lookahead(0, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Subscript ( a , b , Store , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// del_targets: ','.del_target+ ','?
-static asdl_seq*
-del_targets_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq* _res = NULL;
- int _mark = p->mark;
- { // ','.del_target+ ','?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- asdl_seq * a;
- if (
- (a = _gather_122_rule(p)) // ','.del_target+
- &&
- (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
- )
- {
- D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// del_target:
-// | t_primary '.' NAME !t_lookahead
-// | t_primary '[' slices ']' !t_lookahead
-// | del_t_atom
-static expr_ty
-del_target_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // t_primary '.' NAME !t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- &&
- (b = _PyPegen_name_token(p)) // NAME
- &&
- _PyPegen_lookahead(0, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
- }
- { // t_primary '[' slices ']' !t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (b = slices_rule(p)) // slices
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- &&
- _PyPegen_lookahead(0, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Subscript ( a , b , Del , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
- }
- { // del_t_atom
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
- expr_ty del_t_atom_var;
- if (
- (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
- )
- {
- D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
- _res = del_t_atom_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
- }
- _res = NULL;
- done:
- _PyPegen_insert_memo(p, _mark, del_target_type, _res);
- p->level--;
- return _res;
-}
-
-// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
-static expr_ty
-del_t_atom_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
- expr_ty a;
- if (
- (a = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
- _res = _PyPegen_set_expr_context ( p , a , Del );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
- }
- { // '(' del_target ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = del_target_rule(p)) // del_target
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
- _res = _PyPegen_set_expr_context ( p , a , Del );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
- }
- { // '(' del_targets? ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = del_targets_rule(p), !p->error_indicator) // del_targets?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Tuple ( a , Del , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
- }
- { // '[' del_targets? ']'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
- Token * _literal;
- Token * _literal_1;
- void *a;
- if (
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (a = del_targets_rule(p), !p->error_indicator) // del_targets?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- )
- {
- D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_List ( a , Del , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// t_primary:
-// | t_primary '.' NAME &t_lookahead
-// | t_primary '[' slices ']' &t_lookahead
-// | t_primary genexp &t_lookahead
-// | t_primary '(' arguments? ')' &t_lookahead
-// | atom &t_lookahead
-static expr_ty t_primary_raw(Parser *);
-static expr_ty
-t_primary_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- expr_ty _res = NULL;
- if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
- p->level--;
- return _res;
- }
- int _mark = p->mark;
- int _resmark = p->mark;
- while (1) {
- int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
- if (tmpvar_8) {
- p->level--;
- return _res;
- }
- p->mark = _mark;
- void *_raw = t_primary_raw(p);
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- if (_raw == NULL || p->mark <= _resmark)
- break;
- _resmark = p->mark;
- _res = _raw;
- }
- p->mark = _resmark;
- p->level--;
- return _res;
-}
-static expr_ty
-t_primary_raw(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- int _start_lineno = p->tokens[_mark]->lineno;
- UNUSED(_start_lineno); // Only used by EXTRA macro
- int _start_col_offset = p->tokens[_mark]->col_offset;
- UNUSED(_start_col_offset); // Only used by EXTRA macro
- { // t_primary '.' NAME &t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
- Token * _literal;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- &&
- (b = _PyPegen_name_token(p)) // NAME
- &&
- _PyPegen_lookahead(1, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
- }
- { // t_primary '[' slices ']' &t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- &&
- (b = slices_rule(p)) // slices
- &&
- (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
- &&
- _PyPegen_lookahead(1, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Subscript ( a , b , Load , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
- }
- { // t_primary genexp &t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
- expr_ty a;
- expr_ty b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (b = genexp_rule(p)) // genexp
- &&
- _PyPegen_lookahead(1, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
- }
- { // t_primary '(' arguments? ')' &t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- void *b;
- if (
- (a = t_primary_rule(p)) // t_primary
- &&
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (b = arguments_rule(p), !p->error_indicator) // arguments?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- &&
- _PyPegen_lookahead(1, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
- Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
- if (_token == NULL) {
- p->level--;
- return NULL;
- }
- int _end_lineno = _token->end_lineno;
- UNUSED(_end_lineno); // Only used by EXTRA macro
- int _end_col_offset = _token->end_col_offset;
- UNUSED(_end_col_offset); // Only used by EXTRA macro
- _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
- }
- { // atom &t_lookahead
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
- expr_ty a;
- if (
- (a = atom_rule(p)) // atom
- &&
- _PyPegen_lookahead(1, t_lookahead_rule, p)
- )
- {
- D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// t_lookahead: '(' | '[' | '.'
-static void *
-t_lookahead_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '('
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- )
- {
- D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
- }
- { // '['
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- )
- {
- D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
- }
- { // '.'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- )
- {
- D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_arguments:
-// | args ',' '*'
-// | expression for_if_clauses ',' [args | expression for_if_clauses]
-// | args for_if_clauses
-// | args ',' expression for_if_clauses
-// | args ',' args
-static void *
-invalid_arguments_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // args ',' '*'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty args_var;
- if (
- (args_var = args_rule(p)) // args
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
- _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
- }
- { // expression for_if_clauses ',' [args | expression for_if_clauses]
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
- Token * _literal;
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- expr_ty a;
- asdl_seq* for_if_clauses_var;
- if (
- (a = expression_rule(p)) // expression
- &&
- (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_opt_var = _tmp_124_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
- )
- {
- D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
- }
- { // args for_if_clauses
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
- expr_ty a;
- asdl_seq* for_if_clauses_var;
- if (
- (a = args_rule(p)) // args
- &&
- (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
- )
- {
- D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
- _res = _PyPegen_nonparen_genexp_in_call ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
- }
- { // args ',' expression for_if_clauses
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
- Token * _literal;
- expr_ty a;
- expr_ty args_var;
- asdl_seq* for_if_clauses_var;
- if (
- (args_var = args_rule(p)) // args
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (a = expression_rule(p)) // expression
- &&
- (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
- )
- {
- D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
- }
- { // args ',' args
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
- Token * _literal;
- expr_ty a;
- expr_ty args_var;
- if (
- (a = args_rule(p)) // args
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (args_var = args_rule(p)) // args
- )
- {
- D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
- _res = _PyPegen_arguments_parsing_error ( p , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_kwarg: !(NAME '=') expression '='
-static void *
-invalid_kwarg_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // !(NAME '=') expression '='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
- expr_ty a;
- Token * b;
- if (
- _PyPegen_lookahead(0, _tmp_125_rule, p)
- &&
- (a = expression_rule(p)) // expression
- &&
- (b = _PyPegen_expect_token(p, 22)) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_named_expression: expression ':=' expression
-static void *
-invalid_named_expression_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // expression ':=' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
- Token * _literal;
- expr_ty a;
- expr_ty expression_var;
- if (
- (a = expression_rule(p)) // expression
- &&
- (_literal = _PyPegen_expect_token(p, 53)) // token=':='
- &&
- (expression_var = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_assignment:
-// | invalid_ann_assign_target ':' expression
-// | star_named_expression ',' star_named_expressions* ':' expression
-// | expression ':' expression
-// | ((star_targets '='))* star_expressions '='
-// | ((star_targets '='))* yield_expr '='
-// | star_expressions augassign (yield_expr | star_expressions)
-static void *
-invalid_assignment_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // invalid_ann_assign_target ':' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
- Token * _literal;
- expr_ty a;
- expr_ty expression_var;
- if (
- (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (expression_var = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
- }
- { // star_named_expression ',' star_named_expressions* ':' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
- Token * _literal;
- Token * _literal_1;
- asdl_seq * _loop0_126_var;
- expr_ty a;
- expr_ty expression_var;
- if (
- (a = star_named_expression_rule(p)) // star_named_expression
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_loop0_126_var = _loop0_126_rule(p)) // star_named_expressions*
- &&
- (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (expression_var = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
- }
- { // expression ':' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
- Token * _literal;
- expr_ty a;
- expr_ty expression_var;
- if (
- (a = expression_rule(p)) // expression
- &&
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (expression_var = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
- }
- { // ((star_targets '='))* star_expressions '='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
- Token * _literal;
- asdl_seq * _loop0_127_var;
- expr_ty a;
- if (
- (_loop0_127_var = _loop0_127_rule(p)) // ((star_targets '='))*
- &&
- (a = star_expressions_rule(p)) // star_expressions
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
- _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
- }
- { // ((star_targets '='))* yield_expr '='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
- Token * _literal;
- asdl_seq * _loop0_128_var;
- expr_ty a;
- if (
- (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
- &&
- (a = yield_expr_rule(p)) // yield_expr
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
- }
- { // star_expressions augassign (yield_expr | star_expressions)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
- void *_tmp_129_var;
- expr_ty a;
- AugOperator* augassign_var;
- if (
- (a = star_expressions_rule(p)) // star_expressions
- &&
- (augassign_var = augassign_rule(p)) // augassign
- &&
- (_tmp_129_var = _tmp_129_rule(p)) // yield_expr | star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
-static expr_ty
-invalid_ann_assign_target_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- expr_ty _res = NULL;
- int _mark = p->mark;
- { // list
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
- expr_ty list_var;
- if (
- (list_var = list_rule(p)) // list
- )
- {
- D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
- _res = list_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
- }
- { // tuple
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
- expr_ty tuple_var;
- if (
- (tuple_var = tuple_rule(p)) // tuple
- )
- {
- D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
- _res = tuple_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
- }
- { // '(' invalid_ann_assign_target ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
- _res = a;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_del_stmt: 'del' star_expressions
-static void *
-invalid_del_stmt_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'del' star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
- Token * _keyword;
- expr_ty a;
- if (
- (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
- &&
- (a = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
- _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_block: NEWLINE !INDENT
-static void *
-invalid_block_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // NEWLINE !INDENT
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
- Token * newline_var;
- if (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
- )
- {
- D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
- _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// Left-recursive
-// invalid_primary: primary '{'
-static void *
-invalid_primary_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // primary '{'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
- Token * a;
- expr_ty primary_var;
- if (
- (primary_var = primary_rule(p)) // primary
- &&
- (a = _PyPegen_expect_token(p, 25)) // token='{'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
-static void *
-invalid_comprehension_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ('[' | '(' | '{') starred_expression for_if_clauses
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
- void *_tmp_130_var;
- expr_ty a;
- asdl_seq* for_if_clauses_var;
- if (
- (_tmp_130_var = _tmp_130_rule(p)) // '[' | '(' | '{'
- &&
- (a = starred_expression_rule(p)) // starred_expression
- &&
- (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
- )
- {
- D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
-static void *
-invalid_dict_comprehension_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '{' '**' bitwise_or for_if_clauses '}'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
- Token * _literal;
- Token * _literal_1;
- Token * a;
- expr_ty bitwise_or_var;
- asdl_seq* for_if_clauses_var;
- if (
- (_literal = _PyPegen_expect_token(p, 25)) // token='{'
- &&
- (a = _PyPegen_expect_token(p, 35)) // token='**'
- &&
- (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
- &&
- (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
- &&
- (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_parameters:
-// | param_no_default* (slash_with_default | param_with_default+) param_no_default
-static void *
-invalid_parameters_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // param_no_default* (slash_with_default | param_with_default+) param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
- asdl_seq * _loop0_131_var;
- void *_tmp_132_var;
- arg_ty param_no_default_var;
- if (
- (_loop0_131_var = _loop0_131_rule(p)) // param_no_default*
- &&
- (_tmp_132_var = _tmp_132_rule(p)) // slash_with_default | param_with_default+
- &&
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
- _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_lambda_parameters:
-// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
-static void *
-invalid_lambda_parameters_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
- asdl_seq * _loop0_133_var;
- void *_tmp_134_var;
- arg_ty lambda_param_no_default_var;
- if (
- (_loop0_133_var = _loop0_133_rule(p)) // lambda_param_no_default*
- &&
- (_tmp_134_var = _tmp_134_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
- &&
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
- _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
-static void *
-invalid_star_etc_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '*' (')' | ',' (')' | '**'))
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
- Token * _literal;
- void *_tmp_135_var;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (_tmp_135_var = _tmp_135_rule(p)) // ')' | ',' (')' | '**')
- )
- {
- D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
- _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
- }
- { // '*' ',' TYPE_COMMENT
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
- Token * _literal;
- Token * _literal_1;
- Token * type_comment_var;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
- _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
-static void *
-invalid_lambda_star_etc_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '*' (':' | ',' (':' | '**'))
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
- Token * _literal;
- void *_tmp_136_var;
- if (
- (_literal = _PyPegen_expect_token(p, 16)) // token='*'
- &&
- (_tmp_136_var = _tmp_136_rule(p)) // ':' | ',' (':' | '**')
- )
- {
- D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
- _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
-static void *
-invalid_double_type_comments_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
- Token * indent_var;
- Token * newline_var;
- Token * newline_var_1;
- Token * type_comment_var;
- Token * type_comment_var_1;
- if (
- (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
- &&
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- &&
- (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
- &&
- (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- &&
- (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_double_type_comments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
- _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_with_item: expression 'as' expression
-static void *
-invalid_with_item_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // expression 'as' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
- Token * _keyword;
- expr_ty a;
- expr_ty expression_var;
- if (
- (expression_var = expression_rule(p)) // expression
- &&
- (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
- &&
- (a = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
- _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_for_target: ASYNC? 'for' star_expressions
-static void *
-invalid_for_target_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ASYNC? 'for' star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
- Token * _keyword;
- void *_opt_var;
- UNUSED(_opt_var); // Silence compiler warnings
- expr_ty a;
- if (
- (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
- &&
- (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
- &&
- (a = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
- _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_group: '(' starred_expression ')'
-static void *
-invalid_group_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '(' starred_expression ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty a;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (a = starred_expression_rule(p)) // starred_expression
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
- _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// invalid_import_from_targets: import_from_as_names ',' NEWLINE
-static void *
-invalid_import_from_targets_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // import_from_as_names ',' NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
- Token * _literal;
- asdl_seq* import_from_as_names_var;
- Token * newline_var;
- if (
- (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
- _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_1: NEWLINE
-static asdl_seq *
-_loop0_1_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
- Token * newline_var;
- while (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- _res = newline_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_2: NEWLINE
-static asdl_seq *
-_loop0_2_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
- Token * newline_var;
- while (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- _res = newline_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_4: ',' expression
-static asdl_seq *
-_loop0_4_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = expression_rule(p)) // expression
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_3: expression _loop0_4
-static asdl_seq *
-_gather_3_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // expression _loop0_4
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = expression_rule(p)) // expression
- &&
- (seq = _loop0_4_rule(p)) // _loop0_4
- )
- {
- D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_6: ',' expression
-static asdl_seq *
-_loop0_6_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = expression_rule(p)) // expression
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_5: expression _loop0_6
-static asdl_seq *
-_gather_5_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // expression _loop0_6
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = expression_rule(p)) // expression
- &&
- (seq = _loop0_6_rule(p)) // _loop0_6
- )
- {
- D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_8: ',' expression
-static asdl_seq *
-_loop0_8_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = expression_rule(p)) // expression
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_7: expression _loop0_8
-static asdl_seq *
-_gather_7_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // expression _loop0_8
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = expression_rule(p)) // expression
- &&
- (seq = _loop0_8_rule(p)) // _loop0_8
- )
- {
- D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_10: ',' expression
-static asdl_seq *
-_loop0_10_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = expression_rule(p)) // expression
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_9: expression _loop0_10
-static asdl_seq *
-_gather_9_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // expression _loop0_10
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = expression_rule(p)) // expression
- &&
- (seq = _loop0_10_rule(p)) // _loop0_10
- )
- {
- D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_11: statement
-static asdl_seq *
-_loop1_11_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // statement
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
- asdl_seq* statement_var;
- while (
- (statement_var = statement_rule(p)) // statement
- )
- {
- _res = statement_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_13: ';' small_stmt
-static asdl_seq *
-_loop0_13_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ';' small_stmt
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
- Token * _literal;
- stmt_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 13)) // token=';'
- &&
- (elem = small_stmt_rule(p)) // small_stmt
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_12: small_stmt _loop0_13
-static asdl_seq *
-_gather_12_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // small_stmt _loop0_13
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt _loop0_13"));
- stmt_ty elem;
- asdl_seq * seq;
- if (
- (elem = small_stmt_rule(p)) // small_stmt
- &&
- (seq = _loop0_13_rule(p)) // _loop0_13
- )
- {
- D(fprintf(stderr, "%*c+ _gather_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt _loop0_13"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_14: 'import' | 'from'
-static void *
-_tmp_14_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'import'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
- _res = _keyword;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
- }
- { // 'from'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
- _res = _keyword;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_15: 'def' | '@' | ASYNC
-static void *
-_tmp_15_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'def'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
- _res = _keyword;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
- }
- { // '@'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 49)) // token='@'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
- }
- { // ASYNC
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
- Token * async_var;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
- _res = async_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_16: 'class' | '@'
-static void *
-_tmp_16_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'class'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
- _res = _keyword;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
- }
- { // '@'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 49)) // token='@'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_17: 'with' | ASYNC
-static void *
-_tmp_17_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'with'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
- _res = _keyword;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
- }
- { // ASYNC
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
- Token * async_var;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
- _res = async_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_18: 'for' | ASYNC
-static void *
-_tmp_18_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'for'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
- Token * _keyword;
- if (
- (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
- _res = _keyword;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
- }
- { // ASYNC
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
- Token * async_var;
- if (
- (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
- _res = async_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_19: '=' annotated_rhs
-static void *
-_tmp_19_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '=' annotated_rhs
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
- Token * _literal;
- expr_ty d;
- if (
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- &&
- (d = annotated_rhs_rule(p)) // annotated_rhs
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
- _res = d;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
-static void *
-_tmp_20_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '(' single_target ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
- Token * _literal;
- Token * _literal_1;
- expr_ty b;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (b = single_target_rule(p)) // single_target
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
- _res = b;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
- }
- { // single_subscript_attribute_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
- expr_ty single_subscript_attribute_target_var;
- if (
- (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
- _res = single_subscript_attribute_target_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_21: '=' annotated_rhs
-static void *
-_tmp_21_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '=' annotated_rhs
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
- Token * _literal;
- expr_ty d;
- if (
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- &&
- (d = annotated_rhs_rule(p)) // annotated_rhs
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
- _res = d;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_22: (star_targets '=')
-static asdl_seq *
-_loop1_22_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // (star_targets '=')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
- void *_tmp_137_var;
- while (
- (_tmp_137_var = _tmp_137_rule(p)) // star_targets '='
- )
- {
- _res = _tmp_137_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_23: yield_expr | star_expressions
-static void *
-_tmp_23_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // yield_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- expr_ty yield_expr_var;
- if (
- (yield_expr_var = yield_expr_rule(p)) // yield_expr
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- _res = yield_expr_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
- }
- { // star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- expr_ty star_expressions_var;
- if (
- (star_expressions_var = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- _res = star_expressions_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_24: yield_expr | star_expressions
-static void *
-_tmp_24_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // yield_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- expr_ty yield_expr_var;
- if (
- (yield_expr_var = yield_expr_rule(p)) // yield_expr
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- _res = yield_expr_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
- }
- { // star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- expr_ty star_expressions_var;
- if (
- (star_expressions_var = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- _res = star_expressions_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_26: ',' NAME
-static asdl_seq *
-_loop0_26_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = _PyPegen_name_token(p)) // NAME
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_25: NAME _loop0_26
-static asdl_seq *
-_gather_25_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // NAME _loop0_26
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = _PyPegen_name_token(p)) // NAME
- &&
- (seq = _loop0_26_rule(p)) // _loop0_26
- )
- {
- D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_28: ',' NAME
-static asdl_seq *
-_loop0_28_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = _PyPegen_name_token(p)) // NAME
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_27: NAME _loop0_28
-static asdl_seq *
-_gather_27_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // NAME _loop0_28
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = _PyPegen_name_token(p)) // NAME
- &&
- (seq = _loop0_28_rule(p)) // _loop0_28
- )
- {
- D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_29: ',' expression
-static void *
-_tmp_29_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ',' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
- Token * _literal;
- expr_ty z;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (z = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_30: ';' | NEWLINE
-static void *
-_tmp_30_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ';'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 13)) // token=';'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
- }
- { // NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
- Token * newline_var;
- if (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
- _res = newline_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_31: ('.' | '...')
-static asdl_seq *
-_loop0_31_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ('.' | '...')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
- void *_tmp_138_var;
- while (
- (_tmp_138_var = _tmp_138_rule(p)) // '.' | '...'
- )
- {
- _res = _tmp_138_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_32: ('.' | '...')
-static asdl_seq *
-_loop1_32_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ('.' | '...')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
- void *_tmp_139_var;
- while (
- (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
- )
- {
- _res = _tmp_139_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_34: ',' import_from_as_name
-static asdl_seq *
-_loop0_34_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' import_from_as_name
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
- Token * _literal;
- alias_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = import_from_as_name_rule(p)) // import_from_as_name
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_33: import_from_as_name _loop0_34
-static asdl_seq *
-_gather_33_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // import_from_as_name _loop0_34
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
- alias_ty elem;
- asdl_seq * seq;
- if (
- (elem = import_from_as_name_rule(p)) // import_from_as_name
- &&
- (seq = _loop0_34_rule(p)) // _loop0_34
- )
- {
- D(fprintf(stderr, "%*c+ _gather_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_35: 'as' NAME
-static void *
-_tmp_35_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'as' NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
- Token * _keyword;
- expr_ty z;
- if (
- (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
- &&
- (z = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_37: ',' dotted_as_name
-static asdl_seq *
-_loop0_37_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' dotted_as_name
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
- Token * _literal;
- alias_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = dotted_as_name_rule(p)) // dotted_as_name
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_36: dotted_as_name _loop0_37
-static asdl_seq *
-_gather_36_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // dotted_as_name _loop0_37
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
- alias_ty elem;
- asdl_seq * seq;
- if (
- (elem = dotted_as_name_rule(p)) // dotted_as_name
- &&
- (seq = _loop0_37_rule(p)) // _loop0_37
- )
- {
- D(fprintf(stderr, "%*c+ _gather_36[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_38: 'as' NAME
-static void *
-_tmp_38_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'as' NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
- Token * _keyword;
- expr_ty z;
- if (
- (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
- &&
- (z = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_38[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_40: ',' with_item
-static asdl_seq *
-_loop0_40_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' with_item
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
- Token * _literal;
- withitem_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = with_item_rule(p)) // with_item
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_39: with_item _loop0_40
-static asdl_seq *
-_gather_39_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // with_item _loop0_40
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
- withitem_ty elem;
- asdl_seq * seq;
- if (
- (elem = with_item_rule(p)) // with_item
- &&
- (seq = _loop0_40_rule(p)) // _loop0_40
- )
- {
- D(fprintf(stderr, "%*c+ _gather_39[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_42: ',' with_item
-static asdl_seq *
-_loop0_42_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' with_item
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
- Token * _literal;
- withitem_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = with_item_rule(p)) // with_item
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_41: with_item _loop0_42
-static asdl_seq *
-_gather_41_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // with_item _loop0_42
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
- withitem_ty elem;
- asdl_seq * seq;
- if (
- (elem = with_item_rule(p)) // with_item
- &&
- (seq = _loop0_42_rule(p)) // _loop0_42
- )
- {
- D(fprintf(stderr, "%*c+ _gather_41[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_44: ',' with_item
-static asdl_seq *
-_loop0_44_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' with_item
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
- Token * _literal;
- withitem_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = with_item_rule(p)) // with_item
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_43: with_item _loop0_44
-static asdl_seq *
-_gather_43_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // with_item _loop0_44
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
- withitem_ty elem;
- asdl_seq * seq;
- if (
- (elem = with_item_rule(p)) // with_item
- &&
- (seq = _loop0_44_rule(p)) // _loop0_44
- )
- {
- D(fprintf(stderr, "%*c+ _gather_43[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_46: ',' with_item
-static asdl_seq *
-_loop0_46_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' with_item
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
- Token * _literal;
- withitem_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = with_item_rule(p)) // with_item
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_45: with_item _loop0_46
-static asdl_seq *
-_gather_45_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // with_item _loop0_46
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
- withitem_ty elem;
- asdl_seq * seq;
- if (
- (elem = with_item_rule(p)) // with_item
- &&
- (seq = _loop0_46_rule(p)) // _loop0_46
- )
- {
- D(fprintf(stderr, "%*c+ _gather_45[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_47: ',' | ')' | ':'
-static void *
-_tmp_47_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ','
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
- }
- { // ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
- }
- { // ':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_48: except_block
-static asdl_seq *
-_loop1_48_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // except_block
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
- excepthandler_ty except_block_var;
- while (
- (except_block_var = except_block_rule(p)) // except_block
- )
- {
- _res = except_block_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_49: 'as' NAME
-static void *
-_tmp_49_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'as' NAME
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
- Token * _keyword;
- expr_ty z;
- if (
- (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
- &&
- (z = _PyPegen_name_token(p)) // NAME
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_49[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_50: 'from' expression
-static void *
-_tmp_50_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'from' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
- Token * _keyword;
- expr_ty z;
- if (
- (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
- &&
- (z = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_50[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_51: '->' expression
-static void *
-_tmp_51_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '->' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
- Token * _literal;
- expr_ty z;
- if (
- (_literal = _PyPegen_expect_token(p, 51)) // token='->'
- &&
- (z = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_52: '->' expression
-static void *
-_tmp_52_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '->' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
- Token * _literal;
- expr_ty z;
- if (
- (_literal = _PyPegen_expect_token(p, 51)) // token='->'
- &&
- (z = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_53: NEWLINE INDENT
-static void *
-_tmp_53_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // NEWLINE INDENT
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
- Token * indent_var;
- Token * newline_var;
- if (
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- &&
- (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
- _res = _PyPegen_dummy_name(p, newline_var, indent_var);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_54: param_no_default
-static asdl_seq *
-_loop0_54_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
- arg_ty param_no_default_var;
- while (
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- _res = param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_55: param_with_default
-static asdl_seq *
-_loop0_55_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
- NameDefaultPair* param_with_default_var;
- while (
- (param_with_default_var = param_with_default_rule(p)) // param_with_default
- )
- {
- _res = param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_56: param_with_default
-static asdl_seq *
-_loop0_56_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
- NameDefaultPair* param_with_default_var;
- while (
- (param_with_default_var = param_with_default_rule(p)) // param_with_default
- )
- {
- _res = param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_57: param_no_default
-static asdl_seq *
-_loop1_57_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
- arg_ty param_no_default_var;
- while (
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- _res = param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_58: param_with_default
-static asdl_seq *
-_loop0_58_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
- NameDefaultPair* param_with_default_var;
- while (
- (param_with_default_var = param_with_default_rule(p)) // param_with_default
- )
- {
- _res = param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_59: param_with_default
-static asdl_seq *
-_loop1_59_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
- NameDefaultPair* param_with_default_var;
- while (
- (param_with_default_var = param_with_default_rule(p)) // param_with_default
- )
- {
- _res = param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_60: param_no_default
-static asdl_seq *
-_loop1_60_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
- arg_ty param_no_default_var;
- while (
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- _res = param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_61: param_no_default
-static asdl_seq *
-_loop1_61_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
- arg_ty param_no_default_var;
- while (
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- _res = param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_62: param_no_default
-static asdl_seq *
-_loop0_62_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
- arg_ty param_no_default_var;
- while (
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- _res = param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_63: param_with_default
-static asdl_seq *
-_loop1_63_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
- NameDefaultPair* param_with_default_var;
- while (
- (param_with_default_var = param_with_default_rule(p)) // param_with_default
- )
- {
- _res = param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_64: param_no_default
-static asdl_seq *
-_loop0_64_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
- arg_ty param_no_default_var;
- while (
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- _res = param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_65: param_with_default
-static asdl_seq *
-_loop1_65_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
- NameDefaultPair* param_with_default_var;
- while (
- (param_with_default_var = param_with_default_rule(p)) // param_with_default
- )
- {
- _res = param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_66: param_maybe_default
-static asdl_seq *
-_loop0_66_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_maybe_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
- NameDefaultPair* param_maybe_default_var;
- while (
- (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
- )
- {
- _res = param_maybe_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_67: param_maybe_default
-static asdl_seq *
-_loop1_67_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_maybe_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
- NameDefaultPair* param_maybe_default_var;
- while (
- (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
- )
- {
- _res = param_maybe_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_68: ('@' named_expression NEWLINE)
-static asdl_seq *
-_loop1_68_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ('@' named_expression NEWLINE)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
- void *_tmp_140_var;
- while (
- (_tmp_140_var = _tmp_140_rule(p)) // '@' named_expression NEWLINE
- )
- {
- _res = _tmp_140_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_69: '(' arguments? ')'
-static void *
-_tmp_69_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '(' arguments? ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
- Token * _literal;
- Token * _literal_1;
- void *z;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- &&
- (z = arguments_rule(p), !p->error_indicator) // arguments?
- &&
- (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_70: (',' star_expression)
-static asdl_seq *
-_loop1_70_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // (',' star_expression)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
- void *_tmp_141_var;
- while (
- (_tmp_141_var = _tmp_141_rule(p)) // ',' star_expression
- )
- {
- _res = _tmp_141_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_72: ',' star_named_expression
-static asdl_seq *
-_loop0_72_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' star_named_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = star_named_expression_rule(p)) // star_named_expression
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_71: star_named_expression _loop0_72
-static asdl_seq *
-_gather_71_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // star_named_expression _loop0_72
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = star_named_expression_rule(p)) // star_named_expression
- &&
- (seq = _loop0_72_rule(p)) // _loop0_72
- )
- {
- D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_73: (',' expression)
-static asdl_seq *
-_loop1_73_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // (',' expression)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
- void *_tmp_142_var;
- while (
- (_tmp_142_var = _tmp_142_rule(p)) // ',' expression
- )
- {
- _res = _tmp_142_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_74: lambda_param_no_default
-static asdl_seq *
-_loop0_74_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
- arg_ty lambda_param_no_default_var;
- while (
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- _res = lambda_param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_75: lambda_param_with_default
-static asdl_seq *
-_loop0_75_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
- NameDefaultPair* lambda_param_with_default_var;
- while (
- (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
- )
- {
- _res = lambda_param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_76: lambda_param_with_default
-static asdl_seq *
-_loop0_76_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
- NameDefaultPair* lambda_param_with_default_var;
- while (
- (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
- )
- {
- _res = lambda_param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_77: lambda_param_no_default
-static asdl_seq *
-_loop1_77_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
- arg_ty lambda_param_no_default_var;
- while (
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- _res = lambda_param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_78: lambda_param_with_default
-static asdl_seq *
-_loop0_78_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
- NameDefaultPair* lambda_param_with_default_var;
- while (
- (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
- )
- {
- _res = lambda_param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_79: lambda_param_with_default
-static asdl_seq *
-_loop1_79_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
- NameDefaultPair* lambda_param_with_default_var;
- while (
- (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
- )
- {
- _res = lambda_param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_80: lambda_param_no_default
-static asdl_seq *
-_loop1_80_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
- arg_ty lambda_param_no_default_var;
- while (
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- _res = lambda_param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_81: lambda_param_no_default
-static asdl_seq *
-_loop1_81_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
- arg_ty lambda_param_no_default_var;
- while (
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- _res = lambda_param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_82: lambda_param_no_default
-static asdl_seq *
-_loop0_82_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
- arg_ty lambda_param_no_default_var;
- while (
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- _res = lambda_param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_83: lambda_param_with_default
-static asdl_seq *
-_loop1_83_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
- NameDefaultPair* lambda_param_with_default_var;
- while (
- (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
- )
- {
- _res = lambda_param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_84: lambda_param_no_default
-static asdl_seq *
-_loop0_84_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
- arg_ty lambda_param_no_default_var;
- while (
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- _res = lambda_param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_85: lambda_param_with_default
-static asdl_seq *
-_loop1_85_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
- NameDefaultPair* lambda_param_with_default_var;
- while (
- (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
- )
- {
- _res = lambda_param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_86: lambda_param_maybe_default
-static asdl_seq *
-_loop0_86_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_maybe_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
- NameDefaultPair* lambda_param_maybe_default_var;
- while (
- (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
- )
- {
- _res = lambda_param_maybe_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_87: lambda_param_maybe_default
-static asdl_seq *
-_loop1_87_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_maybe_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
- NameDefaultPair* lambda_param_maybe_default_var;
- while (
- (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
- )
- {
- _res = lambda_param_maybe_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_88: ('or' conjunction)
-static asdl_seq *
-_loop1_88_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ('or' conjunction)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
- void *_tmp_143_var;
- while (
- (_tmp_143_var = _tmp_143_rule(p)) // 'or' conjunction
- )
- {
- _res = _tmp_143_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_89: ('and' inversion)
-static asdl_seq *
-_loop1_89_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ('and' inversion)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
- void *_tmp_144_var;
- while (
- (_tmp_144_var = _tmp_144_rule(p)) // 'and' inversion
- )
- {
- _res = _tmp_144_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_90: compare_op_bitwise_or_pair
-static asdl_seq *
-_loop1_90_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // compare_op_bitwise_or_pair
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
- CmpopExprPair* compare_op_bitwise_or_pair_var;
- while (
- (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
- )
- {
- _res = compare_op_bitwise_or_pair_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_91: '!='
-static void *
-_tmp_91_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '!='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
- Token * tok;
- if (
- (tok = _PyPegen_expect_token(p, 28)) // token='!='
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
- _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_93: ',' slice
-static asdl_seq *
-_loop0_93_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' slice
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = slice_rule(p)) // slice
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_92: slice _loop0_93
-static asdl_seq *
-_gather_92_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // slice _loop0_93
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = slice_rule(p)) // slice
- &&
- (seq = _loop0_93_rule(p)) // _loop0_93
- )
- {
- D(fprintf(stderr, "%*c+ _gather_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_94: ':' expression?
-static void *
-_tmp_94_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ':' expression?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
- Token * _literal;
- void *d;
- if (
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- &&
- (d = expression_rule(p), !p->error_indicator) // expression?
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
- _res = d;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_95: tuple | group | genexp
-static void *
-_tmp_95_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // tuple
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
- expr_ty tuple_var;
- if (
- (tuple_var = tuple_rule(p)) // tuple
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
- _res = tuple_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
- }
- { // group
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
- expr_ty group_var;
- if (
- (group_var = group_rule(p)) // group
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
- _res = group_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
- }
- { // genexp
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
- expr_ty genexp_var;
- if (
- (genexp_var = genexp_rule(p)) // genexp
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
- _res = genexp_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_96: list | listcomp
-static void *
-_tmp_96_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // list
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
- expr_ty list_var;
- if (
- (list_var = list_rule(p)) // list
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
- _res = list_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
- }
- { // listcomp
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
- expr_ty listcomp_var;
- if (
- (listcomp_var = listcomp_rule(p)) // listcomp
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
- _res = listcomp_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_97: dict | set | dictcomp | setcomp
-static void *
-_tmp_97_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // dict
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
- expr_ty dict_var;
- if (
- (dict_var = dict_rule(p)) // dict
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
- _res = dict_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
- }
- { // set
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
- expr_ty set_var;
- if (
- (set_var = set_rule(p)) // set
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
- _res = set_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
- }
- { // dictcomp
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
- expr_ty dictcomp_var;
- if (
- (dictcomp_var = dictcomp_rule(p)) // dictcomp
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
- _res = dictcomp_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
- }
- { // setcomp
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
- expr_ty setcomp_var;
- if (
- (setcomp_var = setcomp_rule(p)) // setcomp
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
- _res = setcomp_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_98: STRING
-static asdl_seq *
-_loop1_98_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // STRING
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
- expr_ty string_var;
- while (
- (string_var = _PyPegen_string_token(p)) // STRING
- )
- {
- _res = string_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_99: star_named_expression ',' star_named_expressions?
-static void *
-_tmp_99_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // star_named_expression ',' star_named_expressions?
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
- Token * _literal;
- expr_ty y;
- void *z;
- if (
- (y = star_named_expression_rule(p)) // star_named_expression
- &&
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
- _res = _PyPegen_seq_insert_in_front ( p , y , z );
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_100: yield_expr | named_expression
-static void *
-_tmp_100_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // yield_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- expr_ty yield_expr_var;
- if (
- (yield_expr_var = yield_expr_rule(p)) // yield_expr
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- _res = yield_expr_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
- }
- { // named_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
- expr_ty named_expression_var;
- if (
- (named_expression_var = named_expression_rule(p)) // named_expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
- _res = named_expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_102: ',' double_starred_kvpair
-static asdl_seq *
-_loop0_102_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' double_starred_kvpair
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
- Token * _literal;
- KeyValuePair* elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_101: double_starred_kvpair _loop0_102
-static asdl_seq *
-_gather_101_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // double_starred_kvpair _loop0_102
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
- KeyValuePair* elem;
- asdl_seq * seq;
- if (
- (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
- &&
- (seq = _loop0_102_rule(p)) // _loop0_102
- )
- {
- D(fprintf(stderr, "%*c+ _gather_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_103: for_if_clause
-static asdl_seq *
-_loop1_103_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // for_if_clause
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
- comprehension_ty for_if_clause_var;
- while (
- (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
- )
- {
- _res = for_if_clause_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_104: ('if' disjunction)
-static asdl_seq *
-_loop0_104_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ('if' disjunction)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
- void *_tmp_145_var;
- while (
- (_tmp_145_var = _tmp_145_rule(p)) // 'if' disjunction
- )
- {
- _res = _tmp_145_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_105: ('if' disjunction)
-static asdl_seq *
-_loop0_105_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ('if' disjunction)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
- void *_tmp_146_var;
- while (
- (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
- )
- {
- _res = _tmp_146_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_107: ',' (starred_expression | named_expression !'=')
-static asdl_seq *
-_loop0_107_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' (starred_expression | named_expression !'=')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
- Token * _literal;
- void *elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_106: (starred_expression | named_expression !'=') _loop0_107
-static asdl_seq *
-_gather_106_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // (starred_expression | named_expression !'=') _loop0_107
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
- void *elem;
- asdl_seq * seq;
- if (
- (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
- &&
- (seq = _loop0_107_rule(p)) // _loop0_107
- )
- {
- D(fprintf(stderr, "%*c+ _gather_106[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_108: ',' kwargs
-static void *
-_tmp_108_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ',' kwargs
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
- Token * _literal;
- asdl_seq* k;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (k = kwargs_rule(p)) // kwargs
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
- _res = k;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_110: ',' kwarg_or_starred
-static asdl_seq *
-_loop0_110_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' kwarg_or_starred
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
- Token * _literal;
- KeywordOrStarred* elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_109: kwarg_or_starred _loop0_110
-static asdl_seq *
-_gather_109_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // kwarg_or_starred _loop0_110
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
- KeywordOrStarred* elem;
- asdl_seq * seq;
- if (
- (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
- &&
- (seq = _loop0_110_rule(p)) // _loop0_110
- )
- {
- D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_112: ',' kwarg_or_double_starred
-static asdl_seq *
-_loop0_112_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' kwarg_or_double_starred
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
- Token * _literal;
- KeywordOrStarred* elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_111: kwarg_or_double_starred _loop0_112
-static asdl_seq *
-_gather_111_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // kwarg_or_double_starred _loop0_112
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
- KeywordOrStarred* elem;
- asdl_seq * seq;
- if (
- (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
- &&
- (seq = _loop0_112_rule(p)) // _loop0_112
- )
- {
- D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_114: ',' kwarg_or_starred
-static asdl_seq *
-_loop0_114_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' kwarg_or_starred
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
- Token * _literal;
- KeywordOrStarred* elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_113: kwarg_or_starred _loop0_114
-static asdl_seq *
-_gather_113_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // kwarg_or_starred _loop0_114
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
- KeywordOrStarred* elem;
- asdl_seq * seq;
- if (
- (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
- &&
- (seq = _loop0_114_rule(p)) // _loop0_114
- )
- {
- D(fprintf(stderr, "%*c+ _gather_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_116: ',' kwarg_or_double_starred
-static asdl_seq *
-_loop0_116_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' kwarg_or_double_starred
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
- Token * _literal;
- KeywordOrStarred* elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_115: kwarg_or_double_starred _loop0_116
-static asdl_seq *
-_gather_115_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // kwarg_or_double_starred _loop0_116
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
- KeywordOrStarred* elem;
- asdl_seq * seq;
- if (
- (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
- &&
- (seq = _loop0_116_rule(p)) // _loop0_116
- )
- {
- D(fprintf(stderr, "%*c+ _gather_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_117: (',' star_target)
-static asdl_seq *
-_loop0_117_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // (',' star_target)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
- void *_tmp_148_var;
- while (
- (_tmp_148_var = _tmp_148_rule(p)) // ',' star_target
- )
- {
- _res = _tmp_148_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_119: ',' star_target
-static asdl_seq *
-_loop0_119_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' star_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = star_target_rule(p)) // star_target
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_118: star_target _loop0_119
-static asdl_seq *
-_gather_118_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // star_target _loop0_119
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = star_target_rule(p)) // star_target
- &&
- (seq = _loop0_119_rule(p)) // _loop0_119
- )
- {
- D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_120: (',' star_target)
-static asdl_seq *
-_loop1_120_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // (',' star_target)
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
- void *_tmp_149_var;
- while (
- (_tmp_149_var = _tmp_149_rule(p)) // ',' star_target
- )
- {
- _res = _tmp_149_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_121: !'*' star_target
-static void *
-_tmp_121_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // !'*' star_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
- expr_ty star_target_var;
- if (
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
- &&
- (star_target_var = star_target_rule(p)) // star_target
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
- _res = star_target_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_123: ',' del_target
-static asdl_seq *
-_loop0_123_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // ',' del_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
- Token * _literal;
- expr_ty elem;
- while (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (elem = del_target_rule(p)) // del_target
- )
- {
- _res = elem;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _gather_122: del_target _loop0_123
-static asdl_seq *
-_gather_122_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- asdl_seq * _res = NULL;
- int _mark = p->mark;
- { // del_target _loop0_123
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
- expr_ty elem;
- asdl_seq * seq;
- if (
- (elem = del_target_rule(p)) // del_target
- &&
- (seq = _loop0_123_rule(p)) // _loop0_123
- )
- {
- D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
- _res = _PyPegen_seq_insert_in_front(p, elem, seq);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_124: args | expression for_if_clauses
-static void *
-_tmp_124_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // args
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
- expr_ty args_var;
- if (
- (args_var = args_rule(p)) // args
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
- _res = args_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
- }
- { // expression for_if_clauses
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
- expr_ty expression_var;
- asdl_seq* for_if_clauses_var;
- if (
- (expression_var = expression_rule(p)) // expression
- &&
- (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
- _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_125: NAME '='
-static void *
-_tmp_125_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // NAME '='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
- Token * _literal;
- expr_ty name_var;
- if (
- (name_var = _PyPegen_name_token(p)) // NAME
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
- _res = _PyPegen_dummy_name(p, name_var, _literal);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_126: star_named_expressions
-static asdl_seq *
-_loop0_126_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // star_named_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
- asdl_seq* star_named_expressions_var;
- while (
- (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
- )
- {
- _res = star_named_expressions_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_127: (star_targets '=')
-static asdl_seq *
-_loop0_127_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // (star_targets '=')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
- void *_tmp_150_var;
- while (
- (_tmp_150_var = _tmp_150_rule(p)) // star_targets '='
- )
- {
- _res = _tmp_150_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop0_128: (star_targets '=')
-static asdl_seq *
-_loop0_128_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // (star_targets '=')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
- void *_tmp_151_var;
- while (
- (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
- )
- {
- _res = _tmp_151_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_129: yield_expr | star_expressions
-static void *
-_tmp_129_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // yield_expr
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- expr_ty yield_expr_var;
- if (
- (yield_expr_var = yield_expr_rule(p)) // yield_expr
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
- _res = yield_expr_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
- }
- { // star_expressions
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- expr_ty star_expressions_var;
- if (
- (star_expressions_var = star_expressions_rule(p)) // star_expressions
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
- _res = star_expressions_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_130: '[' | '(' | '{'
-static void *
-_tmp_130_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '['
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 9)) // token='['
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
- }
- { // '('
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 7)) // token='('
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
- }
- { // '{'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 25)) // token='{'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_131: param_no_default
-static asdl_seq *
-_loop0_131_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
- arg_ty param_no_default_var;
- while (
- (param_no_default_var = param_no_default_rule(p)) // param_no_default
- )
- {
- _res = param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_132: slash_with_default | param_with_default+
-static void *
-_tmp_132_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // slash_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
- SlashWithDefault* slash_with_default_var;
- if (
- (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
- _res = slash_with_default_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
- }
- { // param_with_default+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
- asdl_seq * _loop1_152_var;
- if (
- (_loop1_152_var = _loop1_152_rule(p)) // param_with_default+
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
- _res = _loop1_152_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop0_133: lambda_param_no_default
-static asdl_seq *
-_loop0_133_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_no_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
- arg_ty lambda_param_no_default_var;
- while (
- (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
- )
- {
- _res = lambda_param_no_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_134: lambda_slash_with_default | lambda_param_with_default+
-static void *
-_tmp_134_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // lambda_slash_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
- SlashWithDefault* lambda_slash_with_default_var;
- if (
- (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
- _res = lambda_slash_with_default_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
- }
- { // lambda_param_with_default+
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
- asdl_seq * _loop1_153_var;
- if (
- (_loop1_153_var = _loop1_153_rule(p)) // lambda_param_with_default+
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
- _res = _loop1_153_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_135: ')' | ',' (')' | '**')
-static void *
-_tmp_135_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
- }
- { // ',' (')' | '**')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
- Token * _literal;
- void *_tmp_154_var;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_tmp_154_var = _tmp_154_rule(p)) // ')' | '**'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
- _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_136: ':' | ',' (':' | '**')
-static void *
-_tmp_136_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
- }
- { // ',' (':' | '**')
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
- Token * _literal;
- void *_tmp_155_var;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (_tmp_155_var = _tmp_155_rule(p)) // ':' | '**'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
- _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_137: star_targets '='
-static void *
-_tmp_137_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // star_targets '='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
- Token * _literal;
- expr_ty z;
- if (
- (z = star_targets_rule(p)) // star_targets
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_138: '.' | '...'
-static void *
-_tmp_138_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '.'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
- }
- { // '...'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 52)) // token='...'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_139: '.' | '...'
-static void *
-_tmp_139_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '.'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 23)) // token='.'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
- }
- { // '...'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 52)) // token='...'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_140: '@' named_expression NEWLINE
-static void *
-_tmp_140_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // '@' named_expression NEWLINE
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
- Token * _literal;
- expr_ty f;
- Token * newline_var;
- if (
- (_literal = _PyPegen_expect_token(p, 49)) // token='@'
- &&
- (f = named_expression_rule(p)) // named_expression
- &&
- (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
- _res = f;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_141: ',' star_expression
-static void *
-_tmp_141_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ',' star_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
- Token * _literal;
- expr_ty c;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (c = star_expression_rule(p)) // star_expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
- _res = c;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_142: ',' expression
-static void *
-_tmp_142_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ',' expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
- Token * _literal;
- expr_ty c;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (c = expression_rule(p)) // expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
- _res = c;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_143: 'or' conjunction
-static void *
-_tmp_143_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'or' conjunction
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
- Token * _keyword;
- expr_ty c;
- if (
- (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
- &&
- (c = conjunction_rule(p)) // conjunction
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
- _res = c;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_144: 'and' inversion
-static void *
-_tmp_144_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'and' inversion
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
- Token * _keyword;
- expr_ty c;
- if (
- (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
- &&
- (c = inversion_rule(p)) // inversion
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
- _res = c;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_145: 'if' disjunction
-static void *
-_tmp_145_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'if' disjunction
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
- Token * _keyword;
- expr_ty z;
- if (
- (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
- &&
- (z = disjunction_rule(p)) // disjunction
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_146: 'if' disjunction
-static void *
-_tmp_146_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // 'if' disjunction
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
- Token * _keyword;
- expr_ty z;
- if (
- (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
- &&
- (z = disjunction_rule(p)) // disjunction
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
- _res = z;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_147: starred_expression | named_expression !'='
-static void *
-_tmp_147_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // starred_expression
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
- expr_ty starred_expression_var;
- if (
- (starred_expression_var = starred_expression_rule(p)) // starred_expression
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
- _res = starred_expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
- }
- { // named_expression !'='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
- expr_ty named_expression_var;
- if (
- (named_expression_var = named_expression_rule(p)) // named_expression
- &&
- _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
- _res = named_expression_var;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_148: ',' star_target
-static void *
-_tmp_148_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ',' star_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
- Token * _literal;
- expr_ty c;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (c = star_target_rule(p)) // star_target
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
- _res = c;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_149: ',' star_target
-static void *
-_tmp_149_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ',' star_target
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
- Token * _literal;
- expr_ty c;
- if (
- (_literal = _PyPegen_expect_token(p, 12)) // token=','
- &&
- (c = star_target_rule(p)) // star_target
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
- _res = c;
- if (_res == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- p->level--;
- return NULL;
- }
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_150: star_targets '='
-static void *
-_tmp_150_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // star_targets '='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
- Token * _literal;
- expr_ty star_targets_var;
- if (
- (star_targets_var = star_targets_rule(p)) // star_targets
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
- _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_151: star_targets '='
-static void *
-_tmp_151_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // star_targets '='
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
- Token * _literal;
- expr_ty star_targets_var;
- if (
- (star_targets_var = star_targets_rule(p)) // star_targets
- &&
- (_literal = _PyPegen_expect_token(p, 22)) // token='='
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
- _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _loop1_152: param_with_default
-static asdl_seq *
-_loop1_152_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
- NameDefaultPair* param_with_default_var;
- while (
- (param_with_default_var = param_with_default_rule(p)) // param_with_default
- )
- {
- _res = param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _loop1_153: lambda_param_with_default
-static asdl_seq *
-_loop1_153_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void *_res = NULL;
- int _mark = p->mark;
- int _start_mark = p->mark;
- void **_children = PyMem_Malloc(sizeof(void *));
- if (!_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- ssize_t _children_capacity = 1;
- ssize_t _n = 0;
- { // lambda_param_with_default
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _loop1_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
- NameDefaultPair* lambda_param_with_default_var;
- while (
- (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
- )
- {
- _res = lambda_param_with_default_var;
- if (_n == _children_capacity) {
- _children_capacity *= 2;
- void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
- if (!_new_children) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- _children = _new_children;
- }
- _children[_n++] = _res;
- _mark = p->mark;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
- }
- if (_n == 0 || p->error_indicator) {
- PyMem_Free(_children);
- p->level--;
- return NULL;
- }
- asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
- if (!_seq) {
- PyMem_Free(_children);
- p->error_indicator = 1;
- PyErr_NoMemory();
- p->level--;
- return NULL;
- }
- for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
- PyMem_Free(_children);
- _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
- p->level--;
- return _seq;
-}
-
-// _tmp_154: ')' | '**'
-static void *
-_tmp_154_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ')'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 8)) // token=')'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
- }
- { // '**'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-// _tmp_155: ':' | '**'
-static void *
-_tmp_155_rule(Parser *p)
-{
- if (p->level++ == MAXSTACK) {
- p->error_indicator = 1;
- PyErr_NoMemory();
- }
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- void * _res = NULL;
- int _mark = p->mark;
- { // ':'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 11)) // token=':'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
- }
- { // '**'
- if (p->error_indicator) {
- p->level--;
- return NULL;
- }
- D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
- Token * _literal;
- if (
- (_literal = _PyPegen_expect_token(p, 35)) // token='**'
- )
- {
- D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
- _res = _literal;
- goto done;
- }
- p->mark = _mark;
- D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
- }
- _res = NULL;
- done:
- p->level--;
- return _res;
-}
-
-void *
-_PyPegen_parse(Parser *p)
-{
- // Initialize keywords
- p->keywords = reserved_keywords;
- p->n_keyword_lists = n_keyword_lists;
-
- // Run parser
- void *result = NULL;
- if (p->start_rule == Py_file_input) {
- result = file_rule(p);
- } else if (p->start_rule == Py_single_input) {
- result = interactive_rule(p);
- } else if (p->start_rule == Py_eval_input) {
- result = eval_rule(p);
- } else if (p->start_rule == Py_func_type_input) {
- result = func_type_rule(p);
- } else if (p->start_rule == Py_fstring_input) {
- result = fstring_rule(p);
- }
-
- return result;
-}
-
-// The end
+// @generated by pegen.py from python.gram
+#include "pegen.h"
+
+#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
+extern int Py_DebugFlag;
+#define D(x) if (Py_DebugFlag) x;
+#else
+#define D(x)
+#endif
+
+# define MAXSTACK 6000
+static const int n_keyword_lists = 15;
+static KeywordToken *reserved_keywords[] = {
+ (KeywordToken[]) {{NULL, -1}},
+ (KeywordToken[]) {{NULL, -1}},
+ (KeywordToken[]) {
+ {"if", 510},
+ {"in", 518},
+ {"as", 520},
+ {"is", 527},
+ {"or", 532},
+ {NULL, -1},
+ },
+ (KeywordToken[]) {
+ {"del", 503},
+ {"try", 511},
+ {"for", 517},
+ {"def", 523},
+ {"not", 526},
+ {"and", 533},
+ {NULL, -1},
+ },
+ (KeywordToken[]) {
+ {"pass", 502},
+ {"from", 514},
+ {"elif", 515},
+ {"else", 516},
+ {"with", 519},
+ {"True", 528},
+ {"None", 530},
+ {NULL, -1},
+ },
+ (KeywordToken[]) {
+ {"raise", 501},
+ {"yield", 504},
+ {"break", 506},
+ {"while", 512},
+ {"class", 524},
+ {"False", 529},
+ {NULL, -1},
+ },
+ (KeywordToken[]) {
+ {"return", 500},
+ {"assert", 505},
+ {"global", 508},
+ {"import", 513},
+ {"except", 521},
+ {"lambda", 525},
+ {NULL, -1},
+ },
+ (KeywordToken[]) {
+ {"finally", 522},
+ {NULL, -1},
+ },
+ (KeywordToken[]) {
+ {"continue", 507},
+ {"nonlocal", 509},
+ {NULL, -1},
+ },
+ (KeywordToken[]) {{NULL, -1}},
+ (KeywordToken[]) {{NULL, -1}},
+ (KeywordToken[]) {{NULL, -1}},
+ (KeywordToken[]) {{NULL, -1}},
+ (KeywordToken[]) {{NULL, -1}},
+ (KeywordToken[]) {
+ {"__peg_parser__", 531},
+ {NULL, -1},
+ },
+};
+#define file_type 1000
+#define interactive_type 1001
+#define eval_type 1002
+#define func_type_type 1003
+#define fstring_type 1004
+#define type_expressions_type 1005
+#define statements_type 1006
+#define statement_type 1007
+#define statement_newline_type 1008
+#define simple_stmt_type 1009
+#define small_stmt_type 1010
+#define compound_stmt_type 1011
+#define assignment_type 1012
+#define augassign_type 1013
+#define global_stmt_type 1014
+#define nonlocal_stmt_type 1015
+#define yield_stmt_type 1016
+#define assert_stmt_type 1017
+#define del_stmt_type 1018
+#define import_stmt_type 1019
+#define import_name_type 1020
+#define import_from_type 1021
+#define import_from_targets_type 1022
+#define import_from_as_names_type 1023
+#define import_from_as_name_type 1024
+#define dotted_as_names_type 1025
+#define dotted_as_name_type 1026
+#define dotted_name_type 1027 // Left-recursive
+#define if_stmt_type 1028
+#define elif_stmt_type 1029
+#define else_block_type 1030
+#define while_stmt_type 1031
+#define for_stmt_type 1032
+#define with_stmt_type 1033
+#define with_item_type 1034
+#define try_stmt_type 1035
+#define except_block_type 1036
+#define finally_block_type 1037
+#define return_stmt_type 1038
+#define raise_stmt_type 1039
+#define function_def_type 1040
+#define function_def_raw_type 1041
+#define func_type_comment_type 1042
+#define params_type 1043
+#define parameters_type 1044
+#define slash_no_default_type 1045
+#define slash_with_default_type 1046
+#define star_etc_type 1047
+#define kwds_type 1048
+#define param_no_default_type 1049
+#define param_with_default_type 1050
+#define param_maybe_default_type 1051
+#define param_type 1052
+#define annotation_type 1053
+#define default_type 1054
+#define decorators_type 1055
+#define class_def_type 1056
+#define class_def_raw_type 1057
+#define block_type 1058
+#define star_expressions_type 1059
+#define star_expression_type 1060
+#define star_named_expressions_type 1061
+#define star_named_expression_type 1062
+#define named_expression_type 1063
+#define annotated_rhs_type 1064
+#define expressions_type 1065
+#define expression_type 1066
+#define lambdef_type 1067
+#define lambda_params_type 1068
+#define lambda_parameters_type 1069
+#define lambda_slash_no_default_type 1070
+#define lambda_slash_with_default_type 1071
+#define lambda_star_etc_type 1072
+#define lambda_kwds_type 1073
+#define lambda_param_no_default_type 1074
+#define lambda_param_with_default_type 1075
+#define lambda_param_maybe_default_type 1076
+#define lambda_param_type 1077
+#define disjunction_type 1078
+#define conjunction_type 1079
+#define inversion_type 1080
+#define comparison_type 1081
+#define compare_op_bitwise_or_pair_type 1082
+#define eq_bitwise_or_type 1083
+#define noteq_bitwise_or_type 1084
+#define lte_bitwise_or_type 1085
+#define lt_bitwise_or_type 1086
+#define gte_bitwise_or_type 1087
+#define gt_bitwise_or_type 1088
+#define notin_bitwise_or_type 1089
+#define in_bitwise_or_type 1090
+#define isnot_bitwise_or_type 1091
+#define is_bitwise_or_type 1092
+#define bitwise_or_type 1093 // Left-recursive
+#define bitwise_xor_type 1094 // Left-recursive
+#define bitwise_and_type 1095 // Left-recursive
+#define shift_expr_type 1096 // Left-recursive
+#define sum_type 1097 // Left-recursive
+#define term_type 1098 // Left-recursive
+#define factor_type 1099
+#define power_type 1100
+#define await_primary_type 1101
+#define primary_type 1102 // Left-recursive
+#define slices_type 1103
+#define slice_type 1104
+#define atom_type 1105
+#define strings_type 1106
+#define list_type 1107
+#define listcomp_type 1108
+#define tuple_type 1109
+#define group_type 1110
+#define genexp_type 1111
+#define set_type 1112
+#define setcomp_type 1113
+#define dict_type 1114
+#define dictcomp_type 1115
+#define double_starred_kvpairs_type 1116
+#define double_starred_kvpair_type 1117
+#define kvpair_type 1118
+#define for_if_clauses_type 1119
+#define for_if_clause_type 1120
+#define yield_expr_type 1121
+#define arguments_type 1122
+#define args_type 1123
+#define kwargs_type 1124
+#define starred_expression_type 1125
+#define kwarg_or_starred_type 1126
+#define kwarg_or_double_starred_type 1127
+#define star_targets_type 1128
+#define star_targets_list_seq_type 1129
+#define star_targets_tuple_seq_type 1130
+#define star_target_type 1131
+#define target_with_star_atom_type 1132
+#define star_atom_type 1133
+#define single_target_type 1134
+#define single_subscript_attribute_target_type 1135
+#define del_targets_type 1136
+#define del_target_type 1137
+#define del_t_atom_type 1138
+#define t_primary_type 1139 // Left-recursive
+#define t_lookahead_type 1140
+#define invalid_arguments_type 1141
+#define invalid_kwarg_type 1142
+#define invalid_named_expression_type 1143
+#define invalid_assignment_type 1144
+#define invalid_ann_assign_target_type 1145
+#define invalid_del_stmt_type 1146
+#define invalid_block_type 1147
+#define invalid_primary_type 1148 // Left-recursive
+#define invalid_comprehension_type 1149
+#define invalid_dict_comprehension_type 1150
+#define invalid_parameters_type 1151
+#define invalid_lambda_parameters_type 1152
+#define invalid_star_etc_type 1153
+#define invalid_lambda_star_etc_type 1154
+#define invalid_double_type_comments_type 1155
+#define invalid_with_item_type 1156
+#define invalid_for_target_type 1157
+#define invalid_group_type 1158
+#define invalid_import_from_targets_type 1159
+#define _loop0_1_type 1160
+#define _loop0_2_type 1161
+#define _loop0_4_type 1162
+#define _gather_3_type 1163
+#define _loop0_6_type 1164
+#define _gather_5_type 1165
+#define _loop0_8_type 1166
+#define _gather_7_type 1167
+#define _loop0_10_type 1168
+#define _gather_9_type 1169
+#define _loop1_11_type 1170
+#define _loop0_13_type 1171
+#define _gather_12_type 1172
+#define _tmp_14_type 1173
+#define _tmp_15_type 1174
+#define _tmp_16_type 1175
+#define _tmp_17_type 1176
+#define _tmp_18_type 1177
+#define _tmp_19_type 1178
+#define _tmp_20_type 1179
+#define _tmp_21_type 1180
+#define _loop1_22_type 1181
+#define _tmp_23_type 1182
+#define _tmp_24_type 1183
+#define _loop0_26_type 1184
+#define _gather_25_type 1185
+#define _loop0_28_type 1186
+#define _gather_27_type 1187
+#define _tmp_29_type 1188
+#define _tmp_30_type 1189
+#define _loop0_31_type 1190
+#define _loop1_32_type 1191
+#define _loop0_34_type 1192
+#define _gather_33_type 1193
+#define _tmp_35_type 1194
+#define _loop0_37_type 1195
+#define _gather_36_type 1196
+#define _tmp_38_type 1197
+#define _loop0_40_type 1198
+#define _gather_39_type 1199
+#define _loop0_42_type 1200
+#define _gather_41_type 1201
+#define _loop0_44_type 1202
+#define _gather_43_type 1203
+#define _loop0_46_type 1204
+#define _gather_45_type 1205
+#define _tmp_47_type 1206
+#define _loop1_48_type 1207
+#define _tmp_49_type 1208
+#define _tmp_50_type 1209
+#define _tmp_51_type 1210
+#define _tmp_52_type 1211
+#define _tmp_53_type 1212
+#define _loop0_54_type 1213
+#define _loop0_55_type 1214
+#define _loop0_56_type 1215
+#define _loop1_57_type 1216
+#define _loop0_58_type 1217
+#define _loop1_59_type 1218
+#define _loop1_60_type 1219
+#define _loop1_61_type 1220
+#define _loop0_62_type 1221
+#define _loop1_63_type 1222
+#define _loop0_64_type 1223
+#define _loop1_65_type 1224
+#define _loop0_66_type 1225
+#define _loop1_67_type 1226
+#define _loop1_68_type 1227
+#define _tmp_69_type 1228
+#define _loop1_70_type 1229
+#define _loop0_72_type 1230
+#define _gather_71_type 1231
+#define _loop1_73_type 1232
+#define _loop0_74_type 1233
+#define _loop0_75_type 1234
+#define _loop0_76_type 1235
+#define _loop1_77_type 1236
+#define _loop0_78_type 1237
+#define _loop1_79_type 1238
+#define _loop1_80_type 1239
+#define _loop1_81_type 1240
+#define _loop0_82_type 1241
+#define _loop1_83_type 1242
+#define _loop0_84_type 1243
+#define _loop1_85_type 1244
+#define _loop0_86_type 1245
+#define _loop1_87_type 1246
+#define _loop1_88_type 1247
+#define _loop1_89_type 1248
+#define _loop1_90_type 1249
+#define _tmp_91_type 1250
+#define _loop0_93_type 1251
+#define _gather_92_type 1252
+#define _tmp_94_type 1253
+#define _tmp_95_type 1254
+#define _tmp_96_type 1255
+#define _tmp_97_type 1256
+#define _loop1_98_type 1257
+#define _tmp_99_type 1258
+#define _tmp_100_type 1259
+#define _loop0_102_type 1260
+#define _gather_101_type 1261
+#define _loop1_103_type 1262
+#define _loop0_104_type 1263
+#define _loop0_105_type 1264
+#define _loop0_107_type 1265
+#define _gather_106_type 1266
+#define _tmp_108_type 1267
+#define _loop0_110_type 1268
+#define _gather_109_type 1269
+#define _loop0_112_type 1270
+#define _gather_111_type 1271
+#define _loop0_114_type 1272
+#define _gather_113_type 1273
+#define _loop0_116_type 1274
+#define _gather_115_type 1275
+#define _loop0_117_type 1276
+#define _loop0_119_type 1277
+#define _gather_118_type 1278
+#define _loop1_120_type 1279
+#define _tmp_121_type 1280
+#define _loop0_123_type 1281
+#define _gather_122_type 1282
+#define _tmp_124_type 1283
+#define _tmp_125_type 1284
+#define _loop0_126_type 1285
+#define _loop0_127_type 1286
+#define _loop0_128_type 1287
+#define _tmp_129_type 1288
+#define _tmp_130_type 1289
+#define _loop0_131_type 1290
+#define _tmp_132_type 1291
+#define _loop0_133_type 1292
+#define _tmp_134_type 1293
+#define _tmp_135_type 1294
+#define _tmp_136_type 1295
+#define _tmp_137_type 1296
+#define _tmp_138_type 1297
+#define _tmp_139_type 1298
+#define _tmp_140_type 1299
+#define _tmp_141_type 1300
+#define _tmp_142_type 1301
+#define _tmp_143_type 1302
+#define _tmp_144_type 1303
+#define _tmp_145_type 1304
+#define _tmp_146_type 1305
+#define _tmp_147_type 1306
+#define _tmp_148_type 1307
+#define _tmp_149_type 1308
+#define _tmp_150_type 1309
+#define _tmp_151_type 1310
+#define _loop1_152_type 1311
+#define _loop1_153_type 1312
+#define _tmp_154_type 1313
+#define _tmp_155_type 1314
+
+static mod_ty file_rule(Parser *p);
+static mod_ty interactive_rule(Parser *p);
+static mod_ty eval_rule(Parser *p);
+static mod_ty func_type_rule(Parser *p);
+static expr_ty fstring_rule(Parser *p);
+static asdl_seq* type_expressions_rule(Parser *p);
+static asdl_seq* statements_rule(Parser *p);
+static asdl_seq* statement_rule(Parser *p);
+static asdl_seq* statement_newline_rule(Parser *p);
+static asdl_seq* simple_stmt_rule(Parser *p);
+static stmt_ty small_stmt_rule(Parser *p);
+static stmt_ty compound_stmt_rule(Parser *p);
+static stmt_ty assignment_rule(Parser *p);
+static AugOperator* augassign_rule(Parser *p);
+static stmt_ty global_stmt_rule(Parser *p);
+static stmt_ty nonlocal_stmt_rule(Parser *p);
+static stmt_ty yield_stmt_rule(Parser *p);
+static stmt_ty assert_stmt_rule(Parser *p);
+static stmt_ty del_stmt_rule(Parser *p);
+static stmt_ty import_stmt_rule(Parser *p);
+static stmt_ty import_name_rule(Parser *p);
+static stmt_ty import_from_rule(Parser *p);
+static asdl_seq* import_from_targets_rule(Parser *p);
+static asdl_seq* import_from_as_names_rule(Parser *p);
+static alias_ty import_from_as_name_rule(Parser *p);
+static asdl_seq* dotted_as_names_rule(Parser *p);
+static alias_ty dotted_as_name_rule(Parser *p);
+static expr_ty dotted_name_rule(Parser *p);
+static stmt_ty if_stmt_rule(Parser *p);
+static stmt_ty elif_stmt_rule(Parser *p);
+static asdl_seq* else_block_rule(Parser *p);
+static stmt_ty while_stmt_rule(Parser *p);
+static stmt_ty for_stmt_rule(Parser *p);
+static stmt_ty with_stmt_rule(Parser *p);
+static withitem_ty with_item_rule(Parser *p);
+static stmt_ty try_stmt_rule(Parser *p);
+static excepthandler_ty except_block_rule(Parser *p);
+static asdl_seq* finally_block_rule(Parser *p);
+static stmt_ty return_stmt_rule(Parser *p);
+static stmt_ty raise_stmt_rule(Parser *p);
+static stmt_ty function_def_rule(Parser *p);
+static stmt_ty function_def_raw_rule(Parser *p);
+static Token* func_type_comment_rule(Parser *p);
+static arguments_ty params_rule(Parser *p);
+static arguments_ty parameters_rule(Parser *p);
+static asdl_seq* slash_no_default_rule(Parser *p);
+static SlashWithDefault* slash_with_default_rule(Parser *p);
+static StarEtc* star_etc_rule(Parser *p);
+static arg_ty kwds_rule(Parser *p);
+static arg_ty param_no_default_rule(Parser *p);
+static NameDefaultPair* param_with_default_rule(Parser *p);
+static NameDefaultPair* param_maybe_default_rule(Parser *p);
+static arg_ty param_rule(Parser *p);
+static expr_ty annotation_rule(Parser *p);
+static expr_ty default_rule(Parser *p);
+static asdl_seq* decorators_rule(Parser *p);
+static stmt_ty class_def_rule(Parser *p);
+static stmt_ty class_def_raw_rule(Parser *p);
+static asdl_seq* block_rule(Parser *p);
+static expr_ty star_expressions_rule(Parser *p);
+static expr_ty star_expression_rule(Parser *p);
+static asdl_seq* star_named_expressions_rule(Parser *p);
+static expr_ty star_named_expression_rule(Parser *p);
+static expr_ty named_expression_rule(Parser *p);
+static expr_ty annotated_rhs_rule(Parser *p);
+static expr_ty expressions_rule(Parser *p);
+static expr_ty expression_rule(Parser *p);
+static expr_ty lambdef_rule(Parser *p);
+static arguments_ty lambda_params_rule(Parser *p);
+static arguments_ty lambda_parameters_rule(Parser *p);
+static asdl_seq* lambda_slash_no_default_rule(Parser *p);
+static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
+static StarEtc* lambda_star_etc_rule(Parser *p);
+static arg_ty lambda_kwds_rule(Parser *p);
+static arg_ty lambda_param_no_default_rule(Parser *p);
+static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
+static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
+static arg_ty lambda_param_rule(Parser *p);
+static expr_ty disjunction_rule(Parser *p);
+static expr_ty conjunction_rule(Parser *p);
+static expr_ty inversion_rule(Parser *p);
+static expr_ty comparison_rule(Parser *p);
+static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
+static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
+static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
+static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
+static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
+static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
+static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
+static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
+static CmpopExprPair* in_bitwise_or_rule(Parser *p);
+static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
+static CmpopExprPair* is_bitwise_or_rule(Parser *p);
+static expr_ty bitwise_or_rule(Parser *p);
+static expr_ty bitwise_xor_rule(Parser *p);
+static expr_ty bitwise_and_rule(Parser *p);
+static expr_ty shift_expr_rule(Parser *p);
+static expr_ty sum_rule(Parser *p);
+static expr_ty term_rule(Parser *p);
+static expr_ty factor_rule(Parser *p);
+static expr_ty power_rule(Parser *p);
+static expr_ty await_primary_rule(Parser *p);
+static expr_ty primary_rule(Parser *p);
+static expr_ty slices_rule(Parser *p);
+static expr_ty slice_rule(Parser *p);
+static expr_ty atom_rule(Parser *p);
+static expr_ty strings_rule(Parser *p);
+static expr_ty list_rule(Parser *p);
+static expr_ty listcomp_rule(Parser *p);
+static expr_ty tuple_rule(Parser *p);
+static expr_ty group_rule(Parser *p);
+static expr_ty genexp_rule(Parser *p);
+static expr_ty set_rule(Parser *p);
+static expr_ty setcomp_rule(Parser *p);
+static expr_ty dict_rule(Parser *p);
+static expr_ty dictcomp_rule(Parser *p);
+static asdl_seq* double_starred_kvpairs_rule(Parser *p);
+static KeyValuePair* double_starred_kvpair_rule(Parser *p);
+static KeyValuePair* kvpair_rule(Parser *p);
+static asdl_seq* for_if_clauses_rule(Parser *p);
+static comprehension_ty for_if_clause_rule(Parser *p);
+static expr_ty yield_expr_rule(Parser *p);
+static expr_ty arguments_rule(Parser *p);
+static expr_ty args_rule(Parser *p);
+static asdl_seq* kwargs_rule(Parser *p);
+static expr_ty starred_expression_rule(Parser *p);
+static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
+static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
+static expr_ty star_targets_rule(Parser *p);
+static asdl_seq* star_targets_list_seq_rule(Parser *p);
+static asdl_seq* star_targets_tuple_seq_rule(Parser *p);
+static expr_ty star_target_rule(Parser *p);
+static expr_ty target_with_star_atom_rule(Parser *p);
+static expr_ty star_atom_rule(Parser *p);
+static expr_ty single_target_rule(Parser *p);
+static expr_ty single_subscript_attribute_target_rule(Parser *p);
+static asdl_seq* del_targets_rule(Parser *p);
+static expr_ty del_target_rule(Parser *p);
+static expr_ty del_t_atom_rule(Parser *p);
+static expr_ty t_primary_rule(Parser *p);
+static void *t_lookahead_rule(Parser *p);
+static void *invalid_arguments_rule(Parser *p);
+static void *invalid_kwarg_rule(Parser *p);
+static void *invalid_named_expression_rule(Parser *p);
+static void *invalid_assignment_rule(Parser *p);
+static expr_ty invalid_ann_assign_target_rule(Parser *p);
+static void *invalid_del_stmt_rule(Parser *p);
+static void *invalid_block_rule(Parser *p);
+static void *invalid_primary_rule(Parser *p);
+static void *invalid_comprehension_rule(Parser *p);
+static void *invalid_dict_comprehension_rule(Parser *p);
+static void *invalid_parameters_rule(Parser *p);
+static void *invalid_lambda_parameters_rule(Parser *p);
+static void *invalid_star_etc_rule(Parser *p);
+static void *invalid_lambda_star_etc_rule(Parser *p);
+static void *invalid_double_type_comments_rule(Parser *p);
+static void *invalid_with_item_rule(Parser *p);
+static void *invalid_for_target_rule(Parser *p);
+static void *invalid_group_rule(Parser *p);
+static void *invalid_import_from_targets_rule(Parser *p);
+static asdl_seq *_loop0_1_rule(Parser *p);
+static asdl_seq *_loop0_2_rule(Parser *p);
+static asdl_seq *_loop0_4_rule(Parser *p);
+static asdl_seq *_gather_3_rule(Parser *p);
+static asdl_seq *_loop0_6_rule(Parser *p);
+static asdl_seq *_gather_5_rule(Parser *p);
+static asdl_seq *_loop0_8_rule(Parser *p);
+static asdl_seq *_gather_7_rule(Parser *p);
+static asdl_seq *_loop0_10_rule(Parser *p);
+static asdl_seq *_gather_9_rule(Parser *p);
+static asdl_seq *_loop1_11_rule(Parser *p);
+static asdl_seq *_loop0_13_rule(Parser *p);
+static asdl_seq *_gather_12_rule(Parser *p);
+static void *_tmp_14_rule(Parser *p);
+static void *_tmp_15_rule(Parser *p);
+static void *_tmp_16_rule(Parser *p);
+static void *_tmp_17_rule(Parser *p);
+static void *_tmp_18_rule(Parser *p);
+static void *_tmp_19_rule(Parser *p);
+static void *_tmp_20_rule(Parser *p);
+static void *_tmp_21_rule(Parser *p);
+static asdl_seq *_loop1_22_rule(Parser *p);
+static void *_tmp_23_rule(Parser *p);
+static void *_tmp_24_rule(Parser *p);
+static asdl_seq *_loop0_26_rule(Parser *p);
+static asdl_seq *_gather_25_rule(Parser *p);
+static asdl_seq *_loop0_28_rule(Parser *p);
+static asdl_seq *_gather_27_rule(Parser *p);
+static void *_tmp_29_rule(Parser *p);
+static void *_tmp_30_rule(Parser *p);
+static asdl_seq *_loop0_31_rule(Parser *p);
+static asdl_seq *_loop1_32_rule(Parser *p);
+static asdl_seq *_loop0_34_rule(Parser *p);
+static asdl_seq *_gather_33_rule(Parser *p);
+static void *_tmp_35_rule(Parser *p);
+static asdl_seq *_loop0_37_rule(Parser *p);
+static asdl_seq *_gather_36_rule(Parser *p);
+static void *_tmp_38_rule(Parser *p);
+static asdl_seq *_loop0_40_rule(Parser *p);
+static asdl_seq *_gather_39_rule(Parser *p);
+static asdl_seq *_loop0_42_rule(Parser *p);
+static asdl_seq *_gather_41_rule(Parser *p);
+static asdl_seq *_loop0_44_rule(Parser *p);
+static asdl_seq *_gather_43_rule(Parser *p);
+static asdl_seq *_loop0_46_rule(Parser *p);
+static asdl_seq *_gather_45_rule(Parser *p);
+static void *_tmp_47_rule(Parser *p);
+static asdl_seq *_loop1_48_rule(Parser *p);
+static void *_tmp_49_rule(Parser *p);
+static void *_tmp_50_rule(Parser *p);
+static void *_tmp_51_rule(Parser *p);
+static void *_tmp_52_rule(Parser *p);
+static void *_tmp_53_rule(Parser *p);
+static asdl_seq *_loop0_54_rule(Parser *p);
+static asdl_seq *_loop0_55_rule(Parser *p);
+static asdl_seq *_loop0_56_rule(Parser *p);
+static asdl_seq *_loop1_57_rule(Parser *p);
+static asdl_seq *_loop0_58_rule(Parser *p);
+static asdl_seq *_loop1_59_rule(Parser *p);
+static asdl_seq *_loop1_60_rule(Parser *p);
+static asdl_seq *_loop1_61_rule(Parser *p);
+static asdl_seq *_loop0_62_rule(Parser *p);
+static asdl_seq *_loop1_63_rule(Parser *p);
+static asdl_seq *_loop0_64_rule(Parser *p);
+static asdl_seq *_loop1_65_rule(Parser *p);
+static asdl_seq *_loop0_66_rule(Parser *p);
+static asdl_seq *_loop1_67_rule(Parser *p);
+static asdl_seq *_loop1_68_rule(Parser *p);
+static void *_tmp_69_rule(Parser *p);
+static asdl_seq *_loop1_70_rule(Parser *p);
+static asdl_seq *_loop0_72_rule(Parser *p);
+static asdl_seq *_gather_71_rule(Parser *p);
+static asdl_seq *_loop1_73_rule(Parser *p);
+static asdl_seq *_loop0_74_rule(Parser *p);
+static asdl_seq *_loop0_75_rule(Parser *p);
+static asdl_seq *_loop0_76_rule(Parser *p);
+static asdl_seq *_loop1_77_rule(Parser *p);
+static asdl_seq *_loop0_78_rule(Parser *p);
+static asdl_seq *_loop1_79_rule(Parser *p);
+static asdl_seq *_loop1_80_rule(Parser *p);
+static asdl_seq *_loop1_81_rule(Parser *p);
+static asdl_seq *_loop0_82_rule(Parser *p);
+static asdl_seq *_loop1_83_rule(Parser *p);
+static asdl_seq *_loop0_84_rule(Parser *p);
+static asdl_seq *_loop1_85_rule(Parser *p);
+static asdl_seq *_loop0_86_rule(Parser *p);
+static asdl_seq *_loop1_87_rule(Parser *p);
+static asdl_seq *_loop1_88_rule(Parser *p);
+static asdl_seq *_loop1_89_rule(Parser *p);
+static asdl_seq *_loop1_90_rule(Parser *p);
+static void *_tmp_91_rule(Parser *p);
+static asdl_seq *_loop0_93_rule(Parser *p);
+static asdl_seq *_gather_92_rule(Parser *p);
+static void *_tmp_94_rule(Parser *p);
+static void *_tmp_95_rule(Parser *p);
+static void *_tmp_96_rule(Parser *p);
+static void *_tmp_97_rule(Parser *p);
+static asdl_seq *_loop1_98_rule(Parser *p);
+static void *_tmp_99_rule(Parser *p);
+static void *_tmp_100_rule(Parser *p);
+static asdl_seq *_loop0_102_rule(Parser *p);
+static asdl_seq *_gather_101_rule(Parser *p);
+static asdl_seq *_loop1_103_rule(Parser *p);
+static asdl_seq *_loop0_104_rule(Parser *p);
+static asdl_seq *_loop0_105_rule(Parser *p);
+static asdl_seq *_loop0_107_rule(Parser *p);
+static asdl_seq *_gather_106_rule(Parser *p);
+static void *_tmp_108_rule(Parser *p);
+static asdl_seq *_loop0_110_rule(Parser *p);
+static asdl_seq *_gather_109_rule(Parser *p);
+static asdl_seq *_loop0_112_rule(Parser *p);
+static asdl_seq *_gather_111_rule(Parser *p);
+static asdl_seq *_loop0_114_rule(Parser *p);
+static asdl_seq *_gather_113_rule(Parser *p);
+static asdl_seq *_loop0_116_rule(Parser *p);
+static asdl_seq *_gather_115_rule(Parser *p);
+static asdl_seq *_loop0_117_rule(Parser *p);
+static asdl_seq *_loop0_119_rule(Parser *p);
+static asdl_seq *_gather_118_rule(Parser *p);
+static asdl_seq *_loop1_120_rule(Parser *p);
+static void *_tmp_121_rule(Parser *p);
+static asdl_seq *_loop0_123_rule(Parser *p);
+static asdl_seq *_gather_122_rule(Parser *p);
+static void *_tmp_124_rule(Parser *p);
+static void *_tmp_125_rule(Parser *p);
+static asdl_seq *_loop0_126_rule(Parser *p);
+static asdl_seq *_loop0_127_rule(Parser *p);
+static asdl_seq *_loop0_128_rule(Parser *p);
+static void *_tmp_129_rule(Parser *p);
+static void *_tmp_130_rule(Parser *p);
+static asdl_seq *_loop0_131_rule(Parser *p);
+static void *_tmp_132_rule(Parser *p);
+static asdl_seq *_loop0_133_rule(Parser *p);
+static void *_tmp_134_rule(Parser *p);
+static void *_tmp_135_rule(Parser *p);
+static void *_tmp_136_rule(Parser *p);
+static void *_tmp_137_rule(Parser *p);
+static void *_tmp_138_rule(Parser *p);
+static void *_tmp_139_rule(Parser *p);
+static void *_tmp_140_rule(Parser *p);
+static void *_tmp_141_rule(Parser *p);
+static void *_tmp_142_rule(Parser *p);
+static void *_tmp_143_rule(Parser *p);
+static void *_tmp_144_rule(Parser *p);
+static void *_tmp_145_rule(Parser *p);
+static void *_tmp_146_rule(Parser *p);
+static void *_tmp_147_rule(Parser *p);
+static void *_tmp_148_rule(Parser *p);
+static void *_tmp_149_rule(Parser *p);
+static void *_tmp_150_rule(Parser *p);
+static void *_tmp_151_rule(Parser *p);
+static asdl_seq *_loop1_152_rule(Parser *p);
+static asdl_seq *_loop1_153_rule(Parser *p);
+static void *_tmp_154_rule(Parser *p);
+static void *_tmp_155_rule(Parser *p);
+
+
+// file: statements? $
+static mod_ty
+file_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ mod_ty _res = NULL;
+ int _mark = p->mark;
+ { // statements? $
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
+ void *a;
+ Token * endmarker_var;
+ if (
+ (a = statements_rule(p), !p->error_indicator) // statements?
+ &&
+ (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
+ )
+ {
+ D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
+ _res = _PyPegen_make_module ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// interactive: statement_newline
+static mod_ty
+interactive_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ mod_ty _res = NULL;
+ int _mark = p->mark;
+ { // statement_newline
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
+ asdl_seq* a;
+ if (
+ (a = statement_newline_rule(p)) // statement_newline
+ )
+ {
+ D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
+ _res = Interactive ( a , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// eval: expressions NEWLINE* $
+static mod_ty
+eval_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ mod_ty _res = NULL;
+ int _mark = p->mark;
+ { // expressions NEWLINE* $
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
+ asdl_seq * _loop0_1_var;
+ expr_ty a;
+ Token * endmarker_var;
+ if (
+ (a = expressions_rule(p)) // expressions
+ &&
+ (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
+ &&
+ (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
+ )
+ {
+ D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
+ _res = Expression ( a , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
+static mod_ty
+func_type_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ mod_ty _res = NULL;
+ int _mark = p->mark;
+ { // '(' type_expressions? ')' '->' expression NEWLINE* $
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
+ Token * _literal;
+ Token * _literal_1;
+ Token * _literal_2;
+ asdl_seq * _loop0_2_var;
+ void *a;
+ expr_ty b;
+ Token * endmarker_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = type_expressions_rule(p), !p->error_indicator) // type_expressions?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ &&
+ (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
+ &&
+ (b = expression_rule(p)) // expression
+ &&
+ (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
+ &&
+ (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
+ )
+ {
+ D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
+ _res = FunctionType ( a , b , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// fstring: star_expressions
+static expr_ty
+fstring_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ expr_ty star_expressions_var;
+ if (
+ (star_expressions_var = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ _res = star_expressions_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// type_expressions:
+// | ','.expression+ ',' '*' expression ',' '**' expression
+// | ','.expression+ ',' '*' expression
+// | ','.expression+ ',' '**' expression
+// | '*' expression ',' '**' expression
+// | '*' expression
+// | '**' expression
+// | ','.expression+
+static asdl_seq*
+type_expressions_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.expression+ ',' '*' expression ',' '**' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
+ Token * _literal;
+ Token * _literal_1;
+ Token * _literal_2;
+ Token * _literal_3;
+ asdl_seq * a;
+ expr_ty b;
+ expr_ty c;
+ if (
+ (a = _gather_3_rule(p)) // ','.expression+
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (b = expression_rule(p)) // expression
+ &&
+ (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (c = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
+ _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
+ }
+ { // ','.expression+ ',' '*' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * a;
+ expr_ty b;
+ if (
+ (a = _gather_5_rule(p)) // ','.expression+
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
+ _res = _PyPegen_seq_append_to_end ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
+ }
+ { // ','.expression+ ',' '**' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * a;
+ expr_ty b;
+ if (
+ (a = _gather_7_rule(p)) // ','.expression+
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
+ _res = _PyPegen_seq_append_to_end ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
+ }
+ { // '*' expression ',' '**' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
+ Token * _literal;
+ Token * _literal_1;
+ Token * _literal_2;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = expression_rule(p)) // expression
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
+ _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
+ }
+ { // '*' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
+ _res = _PyPegen_singleton_seq ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
+ }
+ { // '**' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
+ _res = _PyPegen_singleton_seq ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
+ }
+ { // ','.expression+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
+ asdl_seq * _gather_9_var;
+ if (
+ (_gather_9_var = _gather_9_rule(p)) // ','.expression+
+ )
+ {
+ D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
+ _res = _gather_9_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// statements: statement+
+static asdl_seq*
+statements_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // statement+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
+ asdl_seq * a;
+ if (
+ (a = _loop1_11_rule(p)) // statement+
+ )
+ {
+ D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
+ _res = _PyPegen_seq_flatten ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// statement: compound_stmt | simple_stmt
+static asdl_seq*
+statement_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // compound_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
+ stmt_ty a;
+ if (
+ (a = compound_stmt_rule(p)) // compound_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
+ _res = _PyPegen_singleton_seq ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
+ }
+ { // simple_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
+ asdl_seq* simple_stmt_var;
+ if (
+ (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
+ _res = simple_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
+static asdl_seq*
+statement_newline_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // compound_stmt NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
+ stmt_ty a;
+ Token * newline_var;
+ if (
+ (a = compound_stmt_rule(p)) // compound_stmt
+ &&
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
+ _res = _PyPegen_singleton_seq ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
+ }
+ { // simple_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
+ asdl_seq* simple_stmt_var;
+ if (
+ (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
+ _res = simple_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
+ }
+ { // NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ Token * newline_var;
+ if (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
+ }
+ { // $
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
+ Token * endmarker_var;
+ if (
+ (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
+ )
+ {
+ D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
+ _res = _PyPegen_interactive_exit ( p );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
+static asdl_seq*
+simple_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // small_stmt !';' NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
+ stmt_ty a;
+ Token * newline_var;
+ if (
+ (a = small_stmt_rule(p)) // small_stmt
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
+ &&
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
+ _res = _PyPegen_singleton_seq ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
+ }
+ { // ';'.small_stmt+ ';'? NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ Token * newline_var;
+ if (
+ (a = _gather_12_rule(p)) // ';'.small_stmt+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'?
+ &&
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// small_stmt:
+// | assignment
+// | star_expressions
+// | &'return' return_stmt
+// | &('import' | 'from') import_stmt
+// | &'raise' raise_stmt
+// | 'pass'
+// | &'del' del_stmt
+// | &'yield' yield_stmt
+// | &'assert' assert_stmt
+// | 'break'
+// | 'continue'
+// | &'global' global_stmt
+// | &'nonlocal' nonlocal_stmt
+static stmt_ty
+small_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // assignment
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
+ stmt_ty assignment_var;
+ if (
+ (assignment_var = assignment_rule(p)) // assignment
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
+ _res = assignment_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
+ }
+ { // star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ expr_ty e;
+ if (
+ (e = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Expr ( e , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
+ }
+ { // &'return' return_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
+ stmt_ty return_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
+ &&
+ (return_stmt_var = return_stmt_rule(p)) // return_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
+ _res = return_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
+ }
+ { // &('import' | 'from') import_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
+ stmt_ty import_stmt_var;
+ if (
+ _PyPegen_lookahead(1, _tmp_14_rule, p)
+ &&
+ (import_stmt_var = import_stmt_rule(p)) // import_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
+ _res = import_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
+ }
+ { // &'raise' raise_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
+ stmt_ty raise_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
+ &&
+ (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
+ _res = raise_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
+ }
+ { // 'pass'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Pass ( EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
+ }
+ { // &'del' del_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
+ stmt_ty del_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
+ &&
+ (del_stmt_var = del_stmt_rule(p)) // del_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
+ _res = del_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
+ }
+ { // &'yield' yield_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
+ stmt_ty yield_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
+ &&
+ (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
+ _res = yield_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
+ }
+ { // &'assert' assert_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
+ stmt_ty assert_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
+ &&
+ (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
+ _res = assert_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
+ }
+ { // 'break'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Break ( EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
+ }
+ { // 'continue'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Continue ( EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
+ }
+ { // &'global' global_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
+ stmt_ty global_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
+ &&
+ (global_stmt_var = global_stmt_rule(p)) // global_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
+ _res = global_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
+ }
+ { // &'nonlocal' nonlocal_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
+ stmt_ty nonlocal_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
+ &&
+ (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
+ _res = nonlocal_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
+ p->level--;
+ return _res;
+}
+
+// compound_stmt:
+// | &('def' | '@' | ASYNC) function_def
+// | &'if' if_stmt
+// | &('class' | '@') class_def
+// | &('with' | ASYNC) with_stmt
+// | &('for' | ASYNC) for_stmt
+// | &'try' try_stmt
+// | &'while' while_stmt
+static stmt_ty
+compound_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ { // &('def' | '@' | ASYNC) function_def
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
+ stmt_ty function_def_var;
+ if (
+ _PyPegen_lookahead(1, _tmp_15_rule, p)
+ &&
+ (function_def_var = function_def_rule(p)) // function_def
+ )
+ {
+ D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
+ _res = function_def_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
+ }
+ { // &'if' if_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
+ stmt_ty if_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
+ &&
+ (if_stmt_var = if_stmt_rule(p)) // if_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
+ _res = if_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
+ }
+ { // &('class' | '@') class_def
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
+ stmt_ty class_def_var;
+ if (
+ _PyPegen_lookahead(1, _tmp_16_rule, p)
+ &&
+ (class_def_var = class_def_rule(p)) // class_def
+ )
+ {
+ D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
+ _res = class_def_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
+ }
+ { // &('with' | ASYNC) with_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
+ stmt_ty with_stmt_var;
+ if (
+ _PyPegen_lookahead(1, _tmp_17_rule, p)
+ &&
+ (with_stmt_var = with_stmt_rule(p)) // with_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
+ _res = with_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
+ }
+ { // &('for' | ASYNC) for_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
+ stmt_ty for_stmt_var;
+ if (
+ _PyPegen_lookahead(1, _tmp_18_rule, p)
+ &&
+ (for_stmt_var = for_stmt_rule(p)) // for_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
+ _res = for_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
+ }
+ { // &'try' try_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
+ stmt_ty try_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
+ &&
+ (try_stmt_var = try_stmt_rule(p)) // try_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
+ _res = try_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
+ }
+ { // &'while' while_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
+ stmt_ty while_stmt_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
+ &&
+ (while_stmt_var = while_stmt_rule(p)) // while_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
+ _res = while_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// assignment:
+// | NAME ':' expression ['=' annotated_rhs]
+// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
+// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
+// | single_target augassign ~ (yield_expr | star_expressions)
+// | invalid_assignment
+static stmt_ty
+assignment_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME ':' expression ['=' annotated_rhs]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ void *c;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = expression_rule(p)) // expression
+ &&
+ (c = _tmp_19_rule(p), !p->error_indicator) // ['=' annotated_rhs]
+ )
+ {
+ D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
+ }
+ { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
+ Token * _literal;
+ void *a;
+ expr_ty b;
+ void *c;
+ if (
+ (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = expression_rule(p)) // expression
+ &&
+ (c = _tmp_21_rule(p), !p->error_indicator) // ['=' annotated_rhs]
+ )
+ {
+ D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
+ }
+ { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
+ asdl_seq * a;
+ void *b;
+ void *tc;
+ if (
+ (a = _loop1_22_rule(p)) // ((star_targets '='))+
+ &&
+ (b = _tmp_23_rule(p)) // yield_expr | star_expressions
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ )
+ {
+ D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
+ }
+ { // single_target augassign ~ (yield_expr | star_expressions)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
+ int _cut_var = 0;
+ expr_ty a;
+ AugOperator* b;
+ void *c;
+ if (
+ (a = single_target_rule(p)) // single_target
+ &&
+ (b = augassign_rule(p)) // augassign
+ &&
+ (_cut_var = 1)
+ &&
+ (c = _tmp_24_rule(p)) // yield_expr | star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ if (p->call_invalid_rules) { // invalid_assignment
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
+ void *invalid_assignment_var;
+ if (
+ (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
+ )
+ {
+ D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
+ _res = invalid_assignment_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// augassign:
+// | '+='
+// | '-='
+// | '*='
+// | '@='
+// | '/='
+// | '%='
+// | '&='
+// | '|='
+// | '^='
+// | '<<='
+// | '>>='
+// | '**='
+// | '//='
+static AugOperator*
+augassign_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ AugOperator* _res = NULL;
+ int _mark = p->mark;
+ { // '+='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 36)) // token='+='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
+ _res = _PyPegen_augoperator ( p , Add );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
+ }
+ { // '-='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 37)) // token='-='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
+ _res = _PyPegen_augoperator ( p , Sub );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
+ }
+ { // '*='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 38)) // token='*='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
+ _res = _PyPegen_augoperator ( p , Mult );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
+ }
+ { // '@='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 50)) // token='@='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
+ _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
+ }
+ { // '/='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 39)) // token='/='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
+ _res = _PyPegen_augoperator ( p , Div );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
+ }
+ { // '%='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 40)) // token='%='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
+ _res = _PyPegen_augoperator ( p , Mod );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
+ }
+ { // '&='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 41)) // token='&='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
+ _res = _PyPegen_augoperator ( p , BitAnd );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
+ }
+ { // '|='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 42)) // token='|='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
+ _res = _PyPegen_augoperator ( p , BitOr );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
+ }
+ { // '^='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 43)) // token='^='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
+ _res = _PyPegen_augoperator ( p , BitXor );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
+ }
+ { // '<<='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
+ _res = _PyPegen_augoperator ( p , LShift );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
+ }
+ { // '>>='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
+ _res = _PyPegen_augoperator ( p , RShift );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
+ }
+ { // '**='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 46)) // token='**='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
+ _res = _PyPegen_augoperator ( p , Pow );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
+ }
+ { // '//='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 48)) // token='//='
+ )
+ {
+ D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
+ _res = _PyPegen_augoperator ( p , FloorDiv );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// global_stmt: 'global' ','.NAME+
+static stmt_ty
+global_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'global' ','.NAME+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
+ Token * _keyword;
+ asdl_seq * a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
+ &&
+ (a = _gather_25_rule(p)) // ','.NAME+
+ )
+ {
+ D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// nonlocal_stmt: 'nonlocal' ','.NAME+
+static stmt_ty
+nonlocal_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'nonlocal' ','.NAME+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
+ Token * _keyword;
+ asdl_seq * a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
+ &&
+ (a = _gather_27_rule(p)) // ','.NAME+
+ )
+ {
+ D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// yield_stmt: yield_expr
+static stmt_ty
+yield_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // yield_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ expr_ty y;
+ if (
+ (y = yield_expr_rule(p)) // yield_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Expr ( y , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// assert_stmt: 'assert' expression [',' expression]
+static stmt_ty
+assert_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'assert' expression [',' expression]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
+ Token * _keyword;
+ expr_ty a;
+ void *b;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
+ &&
+ (a = expression_rule(p)) // expression
+ &&
+ (b = _tmp_29_rule(p), !p->error_indicator) // [',' expression]
+ )
+ {
+ D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Assert ( a , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
+static stmt_ty
+del_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'del' del_targets &(';' | NEWLINE)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
+ Token * _keyword;
+ asdl_seq* a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
+ &&
+ (a = del_targets_rule(p)) // del_targets
+ &&
+ _PyPegen_lookahead(1, _tmp_30_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Delete ( a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
+ }
+ if (p->call_invalid_rules) { // invalid_del_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
+ void *invalid_del_stmt_var;
+ if (
+ (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
+ _res = invalid_del_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// import_stmt: import_name | import_from
+static stmt_ty
+import_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ { // import_name
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
+ stmt_ty import_name_var;
+ if (
+ (import_name_var = import_name_rule(p)) // import_name
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
+ _res = import_name_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
+ }
+ { // import_from
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
+ stmt_ty import_from_var;
+ if (
+ (import_from_var = import_from_rule(p)) // import_from
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
+ _res = import_from_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// import_name: 'import' dotted_as_names
+static stmt_ty
+import_name_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'import' dotted_as_names
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
+ Token * _keyword;
+ asdl_seq* a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
+ &&
+ (a = dotted_as_names_rule(p)) // dotted_as_names
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Import ( a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// import_from:
+// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
+// | 'from' (('.' | '...'))+ 'import' import_from_targets
+static stmt_ty
+import_from_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
+ Token * _keyword;
+ Token * _keyword_1;
+ asdl_seq * a;
+ expr_ty b;
+ asdl_seq* c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
+ &&
+ (a = _loop0_31_rule(p)) // (('.' | '...'))*
+ &&
+ (b = dotted_name_rule(p)) // dotted_name
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
+ &&
+ (c = import_from_targets_rule(p)) // import_from_targets
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
+ }
+ { // 'from' (('.' | '...'))+ 'import' import_from_targets
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
+ Token * _keyword;
+ Token * _keyword_1;
+ asdl_seq * a;
+ asdl_seq* b;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
+ &&
+ (a = _loop1_32_rule(p)) // (('.' | '...'))+
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
+ &&
+ (b = import_from_targets_rule(p)) // import_from_targets
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// import_from_targets:
+// | '(' import_from_as_names ','? ')'
+// | import_from_as_names !','
+// | '*'
+// | invalid_import_from_targets
+static asdl_seq*
+import_from_targets_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // '(' import_from_as_names ','? ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq* a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = import_from_as_names_rule(p)) // import_from_as_names
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
+ }
+ { // import_from_as_names !','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
+ asdl_seq* import_from_as_names_var;
+ if (
+ (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
+ _res = import_from_as_names_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
+ }
+ { // '*'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
+ _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
+ }
+ if (p->call_invalid_rules) { // invalid_import_from_targets
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
+ void *invalid_import_from_targets_var;
+ if (
+ (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
+ _res = invalid_import_from_targets_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// import_from_as_names: ','.import_from_as_name+
+static asdl_seq*
+import_from_as_names_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.import_from_as_name+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
+ asdl_seq * a;
+ if (
+ (a = _gather_33_rule(p)) // ','.import_from_as_name+
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// import_from_as_name: NAME ['as' NAME]
+static alias_ty
+import_from_as_name_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ alias_ty _res = NULL;
+ int _mark = p->mark;
+ { // NAME ['as' NAME]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
+ expr_ty a;
+ void *b;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ &&
+ (b = _tmp_35_rule(p), !p->error_indicator) // ['as' NAME]
+ )
+ {
+ D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
+ _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// dotted_as_names: ','.dotted_as_name+
+static asdl_seq*
+dotted_as_names_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.dotted_as_name+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
+ asdl_seq * a;
+ if (
+ (a = _gather_36_rule(p)) // ','.dotted_as_name+
+ )
+ {
+ D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// dotted_as_name: dotted_name ['as' NAME]
+static alias_ty
+dotted_as_name_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ alias_ty _res = NULL;
+ int _mark = p->mark;
+ { // dotted_name ['as' NAME]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
+ expr_ty a;
+ void *b;
+ if (
+ (a = dotted_name_rule(p)) // dotted_name
+ &&
+ (b = _tmp_38_rule(p), !p->error_indicator) // ['as' NAME]
+ )
+ {
+ D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
+ _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// dotted_name: dotted_name '.' NAME | NAME
+static expr_ty dotted_name_raw(Parser *);
+static expr_ty
+dotted_name_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
+ if (tmpvar_0) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = dotted_name_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+dotted_name_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // dotted_name '.' NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = dotted_name_rule(p)) // dotted_name
+ &&
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ &&
+ (b = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
+ _res = _PyPegen_join_names_with_dot ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
+ }
+ { // NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
+ expr_ty name_var;
+ if (
+ (name_var = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
+ _res = name_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// if_stmt:
+// | 'if' named_expression ':' block elif_stmt
+// | 'if' named_expression ':' block else_block?
+static stmt_ty
+if_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'if' named_expression ':' block elif_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
+ Token * _keyword;
+ Token * _literal;
+ expr_ty a;
+ asdl_seq* b;
+ stmt_ty c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (c = elif_stmt_rule(p)) // elif_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
+ }
+ { // 'if' named_expression ':' block else_block?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
+ Token * _keyword;
+ Token * _literal;
+ expr_ty a;
+ asdl_seq* b;
+ void *c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (c = else_block_rule(p), !p->error_indicator) // else_block?
+ )
+ {
+ D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_If ( a , b , c , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// elif_stmt:
+// | 'elif' named_expression ':' block elif_stmt
+// | 'elif' named_expression ':' block else_block?
+static stmt_ty
+elif_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'elif' named_expression ':' block elif_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
+ Token * _keyword;
+ Token * _literal;
+ expr_ty a;
+ asdl_seq* b;
+ stmt_ty c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (c = elif_stmt_rule(p)) // elif_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
+ }
+ { // 'elif' named_expression ':' block else_block?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
+ Token * _keyword;
+ Token * _literal;
+ expr_ty a;
+ asdl_seq* b;
+ void *c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (c = else_block_rule(p), !p->error_indicator) // else_block?
+ )
+ {
+ D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_If ( a , b , c , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// else_block: 'else' ':' block
+static asdl_seq*
+else_block_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // 'else' ':' block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq* b;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
+ _res = b;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// while_stmt: 'while' named_expression ':' block else_block?
+static stmt_ty
+while_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'while' named_expression ':' block else_block?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
+ Token * _keyword;
+ Token * _literal;
+ expr_ty a;
+ asdl_seq* b;
+ void *c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (c = else_block_rule(p), !p->error_indicator) // else_block?
+ )
+ {
+ D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_While ( a , b , c , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// for_stmt:
+// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
+// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
+// | invalid_for_target
+static stmt_ty
+for_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
+ int _cut_var = 0;
+ Token * _keyword;
+ Token * _keyword_1;
+ Token * _literal;
+ asdl_seq* b;
+ void *el;
+ expr_ty ex;
+ expr_ty t;
+ void *tc;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
+ &&
+ (t = star_targets_rule(p)) // star_targets
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
+ &&
+ (_cut_var = 1)
+ &&
+ (ex = star_expressions_rule(p)) // star_expressions
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (el = else_block_rule(p), !p->error_indicator) // else_block?
+ )
+ {
+ D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
+ int _cut_var = 0;
+ Token * _keyword;
+ Token * _keyword_1;
+ Token * _literal;
+ Token * async_var;
+ asdl_seq* b;
+ void *el;
+ expr_ty ex;
+ expr_ty t;
+ void *tc;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ &&
+ (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
+ &&
+ (t = star_targets_rule(p)) // star_targets
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
+ &&
+ (_cut_var = 1)
+ &&
+ (ex = star_expressions_rule(p)) // star_expressions
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (el = else_block_rule(p), !p->error_indicator) // else_block?
+ )
+ {
+ D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ if (p->call_invalid_rules) { // invalid_for_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
+ void *invalid_for_target_var;
+ if (
+ (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
+ _res = invalid_for_target_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// with_stmt:
+// | 'with' '(' ','.with_item+ ','? ')' ':' block
+// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
+// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
+// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
+static stmt_ty
+with_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'with' '(' ','.with_item+ ','? ')' ':' block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ Token * _literal_1;
+ Token * _literal_2;
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ asdl_seq* b;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
+ &&
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = _gather_39_rule(p)) // ','.with_item+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ &&
+ (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_With ( a , b , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
+ }
+ { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq * a;
+ asdl_seq* b;
+ void *tc;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
+ &&
+ (a = _gather_41_rule(p)) // ','.with_item+
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
+ }
+ { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ Token * _literal_1;
+ Token * _literal_2;
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ Token * async_var;
+ asdl_seq* b;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ &&
+ (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
+ &&
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = _gather_43_rule(p)) // ','.with_item+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ &&
+ (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
+ }
+ { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq * a;
+ Token * async_var;
+ asdl_seq* b;
+ void *tc;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ &&
+ (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
+ &&
+ (a = _gather_45_rule(p)) // ','.with_item+
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// with_item:
+// | expression 'as' star_target &(',' | ')' | ':')
+// | invalid_with_item
+// | expression
+static withitem_ty
+with_item_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ withitem_ty _res = NULL;
+ int _mark = p->mark;
+ { // expression 'as' star_target &(',' | ')' | ':')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
+ Token * _keyword;
+ expr_ty e;
+ expr_ty t;
+ if (
+ (e = expression_rule(p)) // expression
+ &&
+ (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
+ &&
+ (t = star_target_rule(p)) // star_target
+ &&
+ _PyPegen_lookahead(1, _tmp_47_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
+ _res = _Py_withitem ( e , t , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
+ }
+ if (p->call_invalid_rules) { // invalid_with_item
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
+ void *invalid_with_item_var;
+ if (
+ (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
+ )
+ {
+ D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
+ _res = invalid_with_item_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
+ }
+ { // expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
+ expr_ty e;
+ if (
+ (e = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
+ _res = _Py_withitem ( e , NULL , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// try_stmt:
+// | 'try' ':' block finally_block
+// | 'try' ':' block except_block+ else_block? finally_block?
+static stmt_ty
+try_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'try' ':' block finally_block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq* b;
+ asdl_seq* f;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (f = finally_block_rule(p)) // finally_block
+ )
+ {
+ D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
+ }
+ { // 'try' ':' block except_block+ else_block? finally_block?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq* b;
+ void *el;
+ asdl_seq * ex;
+ void *f;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ &&
+ (ex = _loop1_48_rule(p)) // except_block+
+ &&
+ (el = else_block_rule(p), !p->error_indicator) // else_block?
+ &&
+ (f = finally_block_rule(p), !p->error_indicator) // finally_block?
+ )
+ {
+ D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Try ( b , ex , el , f , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
+static excepthandler_ty
+except_block_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ excepthandler_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'except' expression ['as' NAME] ':' block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq* b;
+ expr_ty e;
+ void *t;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
+ &&
+ (e = expression_rule(p)) // expression
+ &&
+ (t = _tmp_49_rule(p), !p->error_indicator) // ['as' NAME]
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
+ }
+ { // 'except' ':' block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq* b;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// finally_block: 'finally' ':' block
+static asdl_seq*
+finally_block_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // 'finally' ':' block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ asdl_seq* a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (a = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// return_stmt: 'return' star_expressions?
+static stmt_ty
+return_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'return' star_expressions?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
+ Token * _keyword;
+ void *a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
+ &&
+ (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
+ )
+ {
+ D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Return ( a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// raise_stmt: 'raise' expression ['from' expression] | 'raise'
+static stmt_ty
+raise_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'raise' expression ['from' expression]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
+ Token * _keyword;
+ expr_ty a;
+ void *b;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
+ &&
+ (a = expression_rule(p)) // expression
+ &&
+ (b = _tmp_50_rule(p), !p->error_indicator) // ['from' expression]
+ )
+ {
+ D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Raise ( a , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
+ }
+ { // 'raise'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
+ )
+ {
+ D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Raise ( NULL , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// function_def: decorators function_def_raw | function_def_raw
+static stmt_ty
+function_def_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ { // decorators function_def_raw
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
+ asdl_seq* d;
+ stmt_ty f;
+ if (
+ (d = decorators_rule(p)) // decorators
+ &&
+ (f = function_def_raw_rule(p)) // function_def_raw
+ )
+ {
+ D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
+ _res = _PyPegen_function_def_decorators ( p , d , f );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
+ }
+ { // function_def_raw
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
+ stmt_ty function_def_raw_var;
+ if (
+ (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
+ )
+ {
+ D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
+ _res = function_def_raw_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// function_def_raw:
+// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
+// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
+static stmt_ty
+function_def_raw_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
+ Token * _keyword;
+ Token * _literal;
+ Token * _literal_1;
+ Token * _literal_2;
+ void *a;
+ asdl_seq* b;
+ expr_ty n;
+ void *params;
+ void *tc;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
+ &&
+ (n = _PyPegen_name_token(p)) // NAME
+ &&
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (params = params_rule(p), !p->error_indicator) // params?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ &&
+ (a = _tmp_51_rule(p), !p->error_indicator) // ['->' expression]
+ &&
+ (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
+ }
+ { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
+ Token * _keyword;
+ Token * _literal;
+ Token * _literal_1;
+ Token * _literal_2;
+ void *a;
+ Token * async_var;
+ asdl_seq* b;
+ expr_ty n;
+ void *params;
+ void *tc;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ &&
+ (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
+ &&
+ (n = _PyPegen_name_token(p)) // NAME
+ &&
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (params = params_rule(p), !p->error_indicator) // params?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ &&
+ (a = _tmp_52_rule(p), !p->error_indicator) // ['->' expression]
+ &&
+ (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
+ &&
+ (b = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 5 , "Async functions are" , _Py_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// func_type_comment:
+// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
+// | invalid_double_type_comments
+// | TYPE_COMMENT
+static Token*
+func_type_comment_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ Token* _res = NULL;
+ int _mark = p->mark;
+ { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
+ Token * newline_var;
+ Token * t;
+ if (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ &&
+ (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
+ &&
+ _PyPegen_lookahead(1, _tmp_53_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
+ _res = t;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
+ }
+ if (p->call_invalid_rules) { // invalid_double_type_comments
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
+ void *invalid_double_type_comments_var;
+ if (
+ (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
+ )
+ {
+ D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
+ _res = invalid_double_type_comments_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
+ }
+ { // TYPE_COMMENT
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
+ Token * type_comment_var;
+ if (
+ (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
+ )
+ {
+ D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
+ _res = type_comment_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// params: invalid_parameters | parameters
+static arguments_ty
+params_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arguments_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->call_invalid_rules) { // invalid_parameters
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
+ void *invalid_parameters_var;
+ if (
+ (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
+ )
+ {
+ D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
+ _res = invalid_parameters_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
+ }
+ { // parameters
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
+ arguments_ty parameters_var;
+ if (
+ (parameters_var = parameters_rule(p)) // parameters
+ )
+ {
+ D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
+ _res = parameters_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// parameters:
+// | slash_no_default param_no_default* param_with_default* star_etc?
+// | slash_with_default param_with_default* star_etc?
+// | param_no_default+ param_with_default* star_etc?
+// | param_with_default+ star_etc?
+// | star_etc
+static arguments_ty
+parameters_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arguments_ty _res = NULL;
+ int _mark = p->mark;
+ { // slash_no_default param_no_default* param_with_default* star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
+ asdl_seq* a;
+ asdl_seq * b;
+ asdl_seq * c;
+ void *d;
+ if (
+ (a = slash_no_default_rule(p)) // slash_no_default
+ &&
+ (b = _loop0_54_rule(p)) // param_no_default*
+ &&
+ (c = _loop0_55_rule(p)) // param_with_default*
+ &&
+ (d = star_etc_rule(p), !p->error_indicator) // star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
+ _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
+ }
+ { // slash_with_default param_with_default* star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
+ SlashWithDefault* a;
+ asdl_seq * b;
+ void *c;
+ if (
+ (a = slash_with_default_rule(p)) // slash_with_default
+ &&
+ (b = _loop0_56_rule(p)) // param_with_default*
+ &&
+ (c = star_etc_rule(p), !p->error_indicator) // star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
+ _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
+ }
+ { // param_no_default+ param_with_default* star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
+ asdl_seq * a;
+ asdl_seq * b;
+ void *c;
+ if (
+ (a = _loop1_57_rule(p)) // param_no_default+
+ &&
+ (b = _loop0_58_rule(p)) // param_with_default*
+ &&
+ (c = star_etc_rule(p), !p->error_indicator) // star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
+ _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
+ }
+ { // param_with_default+ star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
+ asdl_seq * a;
+ void *b;
+ if (
+ (a = _loop1_59_rule(p)) // param_with_default+
+ &&
+ (b = star_etc_rule(p), !p->error_indicator) // star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
+ _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
+ }
+ { // star_etc
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
+ StarEtc* a;
+ if (
+ (a = star_etc_rule(p)) // star_etc
+ )
+ {
+ D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
+ _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
+static asdl_seq*
+slash_no_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // param_no_default+ '/' ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * a;
+ if (
+ (a = _loop1_60_rule(p)) // param_no_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
+ }
+ { // param_no_default+ '/' &')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
+ Token * _literal;
+ asdl_seq * a;
+ if (
+ (a = _loop1_61_rule(p)) // param_no_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// slash_with_default:
+// | param_no_default* param_with_default+ '/' ','
+// | param_no_default* param_with_default+ '/' &')'
+static SlashWithDefault*
+slash_with_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ SlashWithDefault* _res = NULL;
+ int _mark = p->mark;
+ { // param_no_default* param_with_default+ '/' ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * a;
+ asdl_seq * b;
+ if (
+ (a = _loop0_62_rule(p)) // param_no_default*
+ &&
+ (b = _loop1_63_rule(p)) // param_with_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
+ _res = _PyPegen_slash_with_default ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
+ }
+ { // param_no_default* param_with_default+ '/' &')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
+ Token * _literal;
+ asdl_seq * a;
+ asdl_seq * b;
+ if (
+ (a = _loop0_64_rule(p)) // param_no_default*
+ &&
+ (b = _loop1_65_rule(p)) // param_with_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
+ _res = _PyPegen_slash_with_default ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// star_etc:
+// | '*' param_no_default param_maybe_default* kwds?
+// | '*' ',' param_maybe_default+ kwds?
+// | kwds
+// | invalid_star_etc
+static StarEtc*
+star_etc_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ StarEtc* _res = NULL;
+ int _mark = p->mark;
+ { // '*' param_no_default param_maybe_default* kwds?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
+ Token * _literal;
+ arg_ty a;
+ asdl_seq * b;
+ void *c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = param_no_default_rule(p)) // param_no_default
+ &&
+ (b = _loop0_66_rule(p)) // param_maybe_default*
+ &&
+ (c = kwds_rule(p), !p->error_indicator) // kwds?
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
+ _res = _PyPegen_star_etc ( p , a , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
+ }
+ { // '*' ',' param_maybe_default+ kwds?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * b;
+ void *c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (b = _loop1_67_rule(p)) // param_maybe_default+
+ &&
+ (c = kwds_rule(p), !p->error_indicator) // kwds?
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
+ _res = _PyPegen_star_etc ( p , NULL , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
+ }
+ { // kwds
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
+ arg_ty a;
+ if (
+ (a = kwds_rule(p)) // kwds
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
+ _res = _PyPegen_star_etc ( p , NULL , NULL , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
+ }
+ if (p->call_invalid_rules) { // invalid_star_etc
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
+ void *invalid_star_etc_var;
+ if (
+ (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
+ _res = invalid_star_etc_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// kwds: '**' param_no_default
+static arg_ty
+kwds_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arg_ty _res = NULL;
+ int _mark = p->mark;
+ { // '**' param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
+ Token * _literal;
+ arg_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (a = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
+static arg_ty
+param_no_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arg_ty _res = NULL;
+ int _mark = p->mark;
+ { // param ',' TYPE_COMMENT?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
+ Token * _literal;
+ arg_ty a;
+ void *tc;
+ if (
+ (a = param_rule(p)) // param
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ )
+ {
+ D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
+ _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
+ }
+ { // param TYPE_COMMENT? &')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
+ arg_ty a;
+ void *tc;
+ if (
+ (a = param_rule(p)) // param
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
+ _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
+static NameDefaultPair*
+param_with_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ NameDefaultPair* _res = NULL;
+ int _mark = p->mark;
+ { // param default ',' TYPE_COMMENT?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
+ Token * _literal;
+ arg_ty a;
+ expr_ty c;
+ void *tc;
+ if (
+ (a = param_rule(p)) // param
+ &&
+ (c = default_rule(p)) // default
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ )
+ {
+ D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
+ _res = _PyPegen_name_default_pair ( p , a , c , tc );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
+ }
+ { // param default TYPE_COMMENT? &')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
+ arg_ty a;
+ expr_ty c;
+ void *tc;
+ if (
+ (a = param_rule(p)) // param
+ &&
+ (c = default_rule(p)) // default
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
+ _res = _PyPegen_name_default_pair ( p , a , c , tc );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// param_maybe_default:
+// | param default? ',' TYPE_COMMENT?
+// | param default? TYPE_COMMENT? &')'
+static NameDefaultPair*
+param_maybe_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ NameDefaultPair* _res = NULL;
+ int _mark = p->mark;
+ { // param default? ',' TYPE_COMMENT?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
+ Token * _literal;
+ arg_ty a;
+ void *c;
+ void *tc;
+ if (
+ (a = param_rule(p)) // param
+ &&
+ (c = default_rule(p), !p->error_indicator) // default?
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ )
+ {
+ D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
+ _res = _PyPegen_name_default_pair ( p , a , c , tc );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
+ }
+ { // param default? TYPE_COMMENT? &')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
+ arg_ty a;
+ void *c;
+ void *tc;
+ if (
+ (a = param_rule(p)) // param
+ &&
+ (c = default_rule(p), !p->error_indicator) // default?
+ &&
+ (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
+ _res = _PyPegen_name_default_pair ( p , a , c , tc );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// param: NAME annotation?
+static arg_ty
+param_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arg_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME annotation?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
+ expr_ty a;
+ void *b;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ &&
+ (b = annotation_rule(p), !p->error_indicator) // annotation?
+ )
+ {
+ D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// annotation: ':' expression
+static expr_ty
+annotation_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // ':' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// default: '=' expression
+static expr_ty
+default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // '=' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// decorators: (('@' named_expression NEWLINE))+
+static asdl_seq*
+decorators_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // (('@' named_expression NEWLINE))+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
+ asdl_seq * a;
+ if (
+ (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
+ )
+ {
+ D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// class_def: decorators class_def_raw | class_def_raw
+static stmt_ty
+class_def_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ { // decorators class_def_raw
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
+ asdl_seq* a;
+ stmt_ty b;
+ if (
+ (a = decorators_rule(p)) // decorators
+ &&
+ (b = class_def_raw_rule(p)) // class_def_raw
+ )
+ {
+ D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
+ _res = _PyPegen_class_def_decorators ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
+ }
+ { // class_def_raw
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
+ stmt_ty class_def_raw_var;
+ if (
+ (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
+ )
+ {
+ D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
+ _res = class_def_raw_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
+static stmt_ty
+class_def_raw_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ stmt_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'class' NAME ['(' arguments? ')'] ':' block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
+ Token * _keyword;
+ Token * _literal;
+ expr_ty a;
+ void *b;
+ asdl_seq* c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
+ &&
+ (a = _PyPegen_name_token(p)) // NAME
+ &&
+ (b = _tmp_69_rule(p), !p->error_indicator) // ['(' arguments? ')']
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (c = block_rule(p)) // block
+ )
+ {
+ D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
+static asdl_seq*
+block_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ if (_PyPegen_is_memoized(p, block_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ { // NEWLINE INDENT statements DEDENT
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
+ asdl_seq* a;
+ Token * dedent_var;
+ Token * indent_var;
+ Token * newline_var;
+ if (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ &&
+ (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
+ &&
+ (a = statements_rule(p)) // statements
+ &&
+ (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
+ )
+ {
+ D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
+ }
+ { // simple_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
+ asdl_seq* simple_stmt_var;
+ if (
+ (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
+ )
+ {
+ D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
+ _res = simple_stmt_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
+ }
+ if (p->call_invalid_rules) { // invalid_block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
+ void *invalid_block_var;
+ if (
+ (invalid_block_var = invalid_block_rule(p)) // invalid_block
+ )
+ {
+ D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
+ _res = invalid_block_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, block_type, _res);
+ p->level--;
+ return _res;
+}
+
+// star_expressions:
+// | star_expression ((',' star_expression))+ ','?
+// | star_expression ','
+// | star_expression
+static expr_ty
+star_expressions_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // star_expression ((',' star_expression))+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ expr_ty a;
+ asdl_seq * b;
+ if (
+ (a = star_expression_rule(p)) // star_expression
+ &&
+ (b = _loop1_70_rule(p)) // ((',' star_expression))+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
+ }
+ { // star_expression ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (a = star_expression_rule(p)) // star_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
+ }
+ { // star_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
+ expr_ty star_expression_var;
+ if (
+ (star_expression_var = star_expression_rule(p)) // star_expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
+ _res = star_expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// star_expression: '*' bitwise_or | expression
+static expr_ty
+star_expression_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '*' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Starred ( a , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
+ }
+ { // expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
+ expr_ty expression_var;
+ if (
+ (expression_var = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
+ _res = expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
+ p->level--;
+ return _res;
+}
+
+// star_named_expressions: ','.star_named_expression+ ','?
+static asdl_seq*
+star_named_expressions_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.star_named_expression+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ if (
+ (a = _gather_71_rule(p)) // ','.star_named_expression+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// star_named_expression: '*' bitwise_or | named_expression
+static expr_ty
+star_named_expression_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '*' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Starred ( a , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
+ }
+ { // named_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
+ expr_ty named_expression_var;
+ if (
+ (named_expression_var = named_expression_rule(p)) // named_expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
+ _res = named_expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
+static expr_ty
+named_expression_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME ':=' ~ expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
+ int _cut_var = 0;
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ &&
+ (_literal = _PyPegen_expect_token(p, 53)) // token=':='
+ &&
+ (_cut_var = 1)
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ { // expression !':='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+ expr_ty expression_var;
+ if (
+ (expression_var = expression_rule(p)) // expression
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
+ )
+ {
+ D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+ _res = expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
+ }
+ if (p->call_invalid_rules) { // invalid_named_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
+ void *invalid_named_expression_var;
+ if (
+ (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
+ _res = invalid_named_expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// annotated_rhs: yield_expr | star_expressions
+static expr_ty
+annotated_rhs_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // yield_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ expr_ty yield_expr_var;
+ if (
+ (yield_expr_var = yield_expr_rule(p)) // yield_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ _res = yield_expr_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
+ }
+ { // star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ expr_ty star_expressions_var;
+ if (
+ (star_expressions_var = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ _res = star_expressions_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// expressions: expression ((',' expression))+ ','? | expression ',' | expression
+static expr_ty
+expressions_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // expression ((',' expression))+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ expr_ty a;
+ asdl_seq * b;
+ if (
+ (a = expression_rule(p)) // expression
+ &&
+ (b = _loop1_73_rule(p)) // ((',' expression))+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
+ }
+ { // expression ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (a = expression_rule(p)) // expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
+ }
+ { // expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
+ expr_ty expression_var;
+ if (
+ (expression_var = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
+ _res = expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
+static expr_ty
+expression_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, expression_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // disjunction 'if' disjunction 'else' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
+ Token * _keyword;
+ Token * _keyword_1;
+ expr_ty a;
+ expr_ty b;
+ expr_ty c;
+ if (
+ (a = disjunction_rule(p)) // disjunction
+ &&
+ (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
+ &&
+ (b = disjunction_rule(p)) // disjunction
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
+ &&
+ (c = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_IfExp ( b , a , c , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
+ }
+ { // disjunction
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
+ expr_ty disjunction_var;
+ if (
+ (disjunction_var = disjunction_rule(p)) // disjunction
+ )
+ {
+ D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
+ _res = disjunction_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
+ }
+ { // lambdef
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
+ expr_ty lambdef_var;
+ if (
+ (lambdef_var = lambdef_rule(p)) // lambdef
+ )
+ {
+ D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
+ _res = lambdef_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, expression_type, _res);
+ p->level--;
+ return _res;
+}
+
+// lambdef: 'lambda' lambda_params? ':' expression
+static expr_ty
+lambdef_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'lambda' lambda_params? ':' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
+ Token * _keyword;
+ Token * _literal;
+ void *a;
+ expr_ty b;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
+ &&
+ (a = lambda_params_rule(p), !p->error_indicator) // lambda_params?
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_params: invalid_lambda_parameters | lambda_parameters
+static arguments_ty
+lambda_params_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arguments_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->call_invalid_rules) { // invalid_lambda_parameters
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
+ void *invalid_lambda_parameters_var;
+ if (
+ (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
+ _res = invalid_lambda_parameters_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
+ }
+ { // lambda_parameters
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
+ arguments_ty lambda_parameters_var;
+ if (
+ (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
+ _res = lambda_parameters_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_parameters:
+// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
+// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
+// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
+// | lambda_param_with_default+ lambda_star_etc?
+// | lambda_star_etc
+static arguments_ty
+lambda_parameters_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arguments_ty _res = NULL;
+ int _mark = p->mark;
+ { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
+ asdl_seq* a;
+ asdl_seq * b;
+ asdl_seq * c;
+ void *d;
+ if (
+ (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
+ &&
+ (b = _loop0_74_rule(p)) // lambda_param_no_default*
+ &&
+ (c = _loop0_75_rule(p)) // lambda_param_with_default*
+ &&
+ (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
+ _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
+ }
+ { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
+ SlashWithDefault* a;
+ asdl_seq * b;
+ void *c;
+ if (
+ (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
+ &&
+ (b = _loop0_76_rule(p)) // lambda_param_with_default*
+ &&
+ (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
+ _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
+ }
+ { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
+ asdl_seq * a;
+ asdl_seq * b;
+ void *c;
+ if (
+ (a = _loop1_77_rule(p)) // lambda_param_no_default+
+ &&
+ (b = _loop0_78_rule(p)) // lambda_param_with_default*
+ &&
+ (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
+ _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
+ }
+ { // lambda_param_with_default+ lambda_star_etc?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
+ asdl_seq * a;
+ void *b;
+ if (
+ (a = _loop1_79_rule(p)) // lambda_param_with_default+
+ &&
+ (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
+ _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
+ }
+ { // lambda_star_etc
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
+ StarEtc* a;
+ if (
+ (a = lambda_star_etc_rule(p)) // lambda_star_etc
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
+ _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_slash_no_default:
+// | lambda_param_no_default+ '/' ','
+// | lambda_param_no_default+ '/' &':'
+static asdl_seq*
+lambda_slash_no_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // lambda_param_no_default+ '/' ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * a;
+ if (
+ (a = _loop1_80_rule(p)) // lambda_param_no_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
+ }
+ { // lambda_param_no_default+ '/' &':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
+ Token * _literal;
+ asdl_seq * a;
+ if (
+ (a = _loop1_81_rule(p)) // lambda_param_no_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_slash_with_default:
+// | lambda_param_no_default* lambda_param_with_default+ '/' ','
+// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
+static SlashWithDefault*
+lambda_slash_with_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ SlashWithDefault* _res = NULL;
+ int _mark = p->mark;
+ { // lambda_param_no_default* lambda_param_with_default+ '/' ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * a;
+ asdl_seq * b;
+ if (
+ (a = _loop0_82_rule(p)) // lambda_param_no_default*
+ &&
+ (b = _loop1_83_rule(p)) // lambda_param_with_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
+ _res = _PyPegen_slash_with_default ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
+ }
+ { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
+ Token * _literal;
+ asdl_seq * a;
+ asdl_seq * b;
+ if (
+ (a = _loop0_84_rule(p)) // lambda_param_no_default*
+ &&
+ (b = _loop1_85_rule(p)) // lambda_param_with_default+
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
+ _res = _PyPegen_slash_with_default ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_star_etc:
+// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
+// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
+// | lambda_kwds
+// | invalid_lambda_star_etc
+static StarEtc*
+lambda_star_etc_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ StarEtc* _res = NULL;
+ int _mark = p->mark;
+ { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
+ Token * _literal;
+ arg_ty a;
+ asdl_seq * b;
+ void *c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ &&
+ (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
+ &&
+ (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
+ _res = _PyPegen_star_etc ( p , a , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
+ }
+ { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * b;
+ void *c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
+ &&
+ (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
+ _res = _PyPegen_star_etc ( p , NULL , b , c );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
+ }
+ { // lambda_kwds
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
+ arg_ty a;
+ if (
+ (a = lambda_kwds_rule(p)) // lambda_kwds
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
+ _res = _PyPegen_star_etc ( p , NULL , NULL , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
+ }
+ if (p->call_invalid_rules) { // invalid_lambda_star_etc
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
+ void *invalid_lambda_star_etc_var;
+ if (
+ (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
+ _res = invalid_lambda_star_etc_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_kwds: '**' lambda_param_no_default
+static arg_ty
+lambda_kwds_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arg_ty _res = NULL;
+ int _mark = p->mark;
+ { // '**' lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
+ Token * _literal;
+ arg_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_param_no_default: lambda_param ',' | lambda_param &':'
+static arg_ty
+lambda_param_no_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arg_ty _res = NULL;
+ int _mark = p->mark;
+ { // lambda_param ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
+ Token * _literal;
+ arg_ty a;
+ if (
+ (a = lambda_param_rule(p)) // lambda_param
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
+ }
+ { // lambda_param &':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
+ arg_ty a;
+ if (
+ (a = lambda_param_rule(p)) // lambda_param
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
+static NameDefaultPair*
+lambda_param_with_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ NameDefaultPair* _res = NULL;
+ int _mark = p->mark;
+ { // lambda_param default ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
+ Token * _literal;
+ arg_ty a;
+ expr_ty c;
+ if (
+ (a = lambda_param_rule(p)) // lambda_param
+ &&
+ (c = default_rule(p)) // default
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
+ _res = _PyPegen_name_default_pair ( p , a , c , NULL );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
+ }
+ { // lambda_param default &':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
+ arg_ty a;
+ expr_ty c;
+ if (
+ (a = lambda_param_rule(p)) // lambda_param
+ &&
+ (c = default_rule(p)) // default
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
+ _res = _PyPegen_name_default_pair ( p , a , c , NULL );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
+static NameDefaultPair*
+lambda_param_maybe_default_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ NameDefaultPair* _res = NULL;
+ int _mark = p->mark;
+ { // lambda_param default? ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
+ Token * _literal;
+ arg_ty a;
+ void *c;
+ if (
+ (a = lambda_param_rule(p)) // lambda_param
+ &&
+ (c = default_rule(p), !p->error_indicator) // default?
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
+ _res = _PyPegen_name_default_pair ( p , a , c , NULL );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
+ }
+ { // lambda_param default? &':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
+ arg_ty a;
+ void *c;
+ if (
+ (a = lambda_param_rule(p)) // lambda_param
+ &&
+ (c = default_rule(p), !p->error_indicator) // default?
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
+ _res = _PyPegen_name_default_pair ( p , a , c , NULL );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lambda_param: NAME
+static arg_ty
+lambda_param_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ arg_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
+ expr_ty a;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// disjunction: conjunction (('or' conjunction))+ | conjunction
+static expr_ty
+disjunction_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // conjunction (('or' conjunction))+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
+ expr_ty a;
+ asdl_seq * b;
+ if (
+ (a = conjunction_rule(p)) // conjunction
+ &&
+ (b = _loop1_88_rule(p)) // (('or' conjunction))+
+ )
+ {
+ D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
+ }
+ { // conjunction
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
+ expr_ty conjunction_var;
+ if (
+ (conjunction_var = conjunction_rule(p)) // conjunction
+ )
+ {
+ D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
+ _res = conjunction_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
+ p->level--;
+ return _res;
+}
+
+// conjunction: inversion (('and' inversion))+ | inversion
+static expr_ty
+conjunction_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // inversion (('and' inversion))+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
+ expr_ty a;
+ asdl_seq * b;
+ if (
+ (a = inversion_rule(p)) // inversion
+ &&
+ (b = _loop1_89_rule(p)) // (('and' inversion))+
+ )
+ {
+ D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
+ }
+ { // inversion
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
+ expr_ty inversion_var;
+ if (
+ (inversion_var = inversion_rule(p)) // inversion
+ )
+ {
+ D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
+ _res = inversion_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
+ p->level--;
+ return _res;
+}
+
+// inversion: 'not' inversion | comparison
+static expr_ty
+inversion_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'not' inversion
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
+ Token * _keyword;
+ expr_ty a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
+ &&
+ (a = inversion_rule(p)) // inversion
+ )
+ {
+ D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_UnaryOp ( Not , a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
+ }
+ { // comparison
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
+ expr_ty comparison_var;
+ if (
+ (comparison_var = comparison_rule(p)) // comparison
+ )
+ {
+ D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
+ _res = comparison_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, inversion_type, _res);
+ p->level--;
+ return _res;
+}
+
+// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
+static expr_ty
+comparison_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // bitwise_or compare_op_bitwise_or_pair+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
+ expr_ty a;
+ asdl_seq * b;
+ if (
+ (a = bitwise_or_rule(p)) // bitwise_or
+ &&
+ (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
+ )
+ {
+ D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
+ }
+ { // bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
+ expr_ty bitwise_or_var;
+ if (
+ (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
+ _res = bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// compare_op_bitwise_or_pair:
+// | eq_bitwise_or
+// | noteq_bitwise_or
+// | lte_bitwise_or
+// | lt_bitwise_or
+// | gte_bitwise_or
+// | gt_bitwise_or
+// | notin_bitwise_or
+// | in_bitwise_or
+// | isnot_bitwise_or
+// | is_bitwise_or
+static CmpopExprPair*
+compare_op_bitwise_or_pair_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // eq_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
+ CmpopExprPair* eq_bitwise_or_var;
+ if (
+ (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
+ _res = eq_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
+ }
+ { // noteq_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
+ CmpopExprPair* noteq_bitwise_or_var;
+ if (
+ (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
+ _res = noteq_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
+ }
+ { // lte_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
+ CmpopExprPair* lte_bitwise_or_var;
+ if (
+ (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
+ _res = lte_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
+ }
+ { // lt_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
+ CmpopExprPair* lt_bitwise_or_var;
+ if (
+ (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
+ _res = lt_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
+ }
+ { // gte_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
+ CmpopExprPair* gte_bitwise_or_var;
+ if (
+ (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
+ _res = gte_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
+ }
+ { // gt_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
+ CmpopExprPair* gt_bitwise_or_var;
+ if (
+ (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
+ _res = gt_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
+ }
+ { // notin_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
+ CmpopExprPair* notin_bitwise_or_var;
+ if (
+ (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
+ _res = notin_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
+ }
+ { // in_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
+ CmpopExprPair* in_bitwise_or_var;
+ if (
+ (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
+ _res = in_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
+ }
+ { // isnot_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
+ CmpopExprPair* isnot_bitwise_or_var;
+ if (
+ (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
+ _res = isnot_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
+ }
+ { // is_bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
+ CmpopExprPair* is_bitwise_or_var;
+ if (
+ (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
+ _res = is_bitwise_or_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// eq_bitwise_or: '==' bitwise_or
+static CmpopExprPair*
+eq_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // '==' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 27)) // token='=='
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// noteq_bitwise_or: ('!=') bitwise_or
+static CmpopExprPair*
+noteq_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // ('!=') bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
+ void *_tmp_91_var;
+ expr_ty a;
+ if (
+ (_tmp_91_var = _tmp_91_rule(p)) // '!='
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lte_bitwise_or: '<=' bitwise_or
+static CmpopExprPair*
+lte_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // '<=' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 29)) // token='<='
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// lt_bitwise_or: '<' bitwise_or
+static CmpopExprPair*
+lt_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // '<' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 20)) // token='<'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// gte_bitwise_or: '>=' bitwise_or
+static CmpopExprPair*
+gte_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // '>=' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 30)) // token='>='
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// gt_bitwise_or: '>' bitwise_or
+static CmpopExprPair*
+gt_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // '>' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 21)) // token='>'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// notin_bitwise_or: 'not' 'in' bitwise_or
+static CmpopExprPair*
+notin_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // 'not' 'in' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
+ Token * _keyword;
+ Token * _keyword_1;
+ expr_ty a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// in_bitwise_or: 'in' bitwise_or
+static CmpopExprPair*
+in_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // 'in' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
+ Token * _keyword;
+ expr_ty a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , In , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// isnot_bitwise_or: 'is' 'not' bitwise_or
+static CmpopExprPair*
+isnot_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // 'is' 'not' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
+ Token * _keyword;
+ Token * _keyword_1;
+ expr_ty a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// is_bitwise_or: 'is' bitwise_or
+static CmpopExprPair*
+is_bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ CmpopExprPair* _res = NULL;
+ int _mark = p->mark;
+ { // 'is' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
+ Token * _keyword;
+ expr_ty a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
+ _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
+static expr_ty bitwise_or_raw(Parser *);
+static expr_ty
+bitwise_or_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
+ if (tmpvar_1) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = bitwise_or_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+bitwise_or_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // bitwise_or '|' bitwise_xor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = bitwise_or_rule(p)) // bitwise_or
+ &&
+ (_literal = _PyPegen_expect_token(p, 18)) // token='|'
+ &&
+ (b = bitwise_xor_rule(p)) // bitwise_xor
+ )
+ {
+ D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , BitOr , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
+ }
+ { // bitwise_xor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
+ expr_ty bitwise_xor_var;
+ if (
+ (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
+ )
+ {
+ D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
+ _res = bitwise_xor_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
+static expr_ty bitwise_xor_raw(Parser *);
+static expr_ty
+bitwise_xor_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
+ if (tmpvar_2) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = bitwise_xor_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+bitwise_xor_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // bitwise_xor '^' bitwise_and
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = bitwise_xor_rule(p)) // bitwise_xor
+ &&
+ (_literal = _PyPegen_expect_token(p, 32)) // token='^'
+ &&
+ (b = bitwise_and_rule(p)) // bitwise_and
+ )
+ {
+ D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , BitXor , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
+ }
+ { // bitwise_and
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
+ expr_ty bitwise_and_var;
+ if (
+ (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
+ )
+ {
+ D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
+ _res = bitwise_and_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// bitwise_and: bitwise_and '&' shift_expr | shift_expr
+static expr_ty bitwise_and_raw(Parser *);
+static expr_ty
+bitwise_and_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
+ if (tmpvar_3) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = bitwise_and_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+bitwise_and_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // bitwise_and '&' shift_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = bitwise_and_rule(p)) // bitwise_and
+ &&
+ (_literal = _PyPegen_expect_token(p, 19)) // token='&'
+ &&
+ (b = shift_expr_rule(p)) // shift_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
+ }
+ { // shift_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
+ expr_ty shift_expr_var;
+ if (
+ (shift_expr_var = shift_expr_rule(p)) // shift_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
+ _res = shift_expr_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
+static expr_ty shift_expr_raw(Parser *);
+static expr_ty
+shift_expr_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
+ if (tmpvar_4) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = shift_expr_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+shift_expr_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // shift_expr '<<' sum
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = shift_expr_rule(p)) // shift_expr
+ &&
+ (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
+ &&
+ (b = sum_rule(p)) // sum
+ )
+ {
+ D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , LShift , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
+ }
+ { // shift_expr '>>' sum
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = shift_expr_rule(p)) // shift_expr
+ &&
+ (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
+ &&
+ (b = sum_rule(p)) // sum
+ )
+ {
+ D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , RShift , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
+ }
+ { // sum
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
+ expr_ty sum_var;
+ if (
+ (sum_var = sum_rule(p)) // sum
+ )
+ {
+ D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
+ _res = sum_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// sum: sum '+' term | sum '-' term | term
+static expr_ty sum_raw(Parser *);
+static expr_ty
+sum_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, sum_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
+ if (tmpvar_5) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = sum_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+sum_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // sum '+' term
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = sum_rule(p)) // sum
+ &&
+ (_literal = _PyPegen_expect_token(p, 14)) // token='+'
+ &&
+ (b = term_rule(p)) // term
+ )
+ {
+ D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , Add , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
+ }
+ { // sum '-' term
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = sum_rule(p)) // sum
+ &&
+ (_literal = _PyPegen_expect_token(p, 15)) // token='-'
+ &&
+ (b = term_rule(p)) // term
+ )
+ {
+ D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , Sub , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
+ }
+ { // term
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
+ expr_ty term_var;
+ if (
+ (term_var = term_rule(p)) // term
+ )
+ {
+ D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
+ _res = term_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// term:
+// | term '*' factor
+// | term '/' factor
+// | term '//' factor
+// | term '%' factor
+// | term '@' factor
+// | factor
+static expr_ty term_raw(Parser *);
+static expr_ty
+term_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, term_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
+ if (tmpvar_6) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = term_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+term_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // term '*' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = term_rule(p)) // term
+ &&
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (b = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , Mult , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
+ }
+ { // term '/' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = term_rule(p)) // term
+ &&
+ (_literal = _PyPegen_expect_token(p, 17)) // token='/'
+ &&
+ (b = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , Div , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
+ }
+ { // term '//' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = term_rule(p)) // term
+ &&
+ (_literal = _PyPegen_expect_token(p, 47)) // token='//'
+ &&
+ (b = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
+ }
+ { // term '%' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = term_rule(p)) // term
+ &&
+ (_literal = _PyPegen_expect_token(p, 24)) // token='%'
+ &&
+ (b = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , Mod , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
+ }
+ { // term '@' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = term_rule(p)) // term
+ &&
+ (_literal = _PyPegen_expect_token(p, 49)) // token='@'
+ &&
+ (b = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
+ }
+ { // factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
+ expr_ty factor_var;
+ if (
+ (factor_var = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
+ _res = factor_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// factor: '+' factor | '-' factor | '~' factor | power
+static expr_ty
+factor_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, factor_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '+' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 14)) // token='+'
+ &&
+ (a = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_UnaryOp ( UAdd , a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
+ }
+ { // '-' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 15)) // token='-'
+ &&
+ (a = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_UnaryOp ( USub , a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
+ }
+ { // '~' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 31)) // token='~'
+ &&
+ (a = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_UnaryOp ( Invert , a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
+ }
+ { // power
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
+ expr_ty power_var;
+ if (
+ (power_var = power_rule(p)) // power
+ )
+ {
+ D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
+ _res = power_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, factor_type, _res);
+ p->level--;
+ return _res;
+}
+
+// power: await_primary '**' factor | await_primary
+static expr_ty
+power_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // await_primary '**' factor
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = await_primary_rule(p)) // await_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (b = factor_rule(p)) // factor
+ )
+ {
+ D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_BinOp ( a , Pow , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
+ }
+ { // await_primary
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
+ expr_ty await_primary_var;
+ if (
+ (await_primary_var = await_primary_rule(p)) // await_primary
+ )
+ {
+ D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
+ _res = await_primary_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// await_primary: AWAIT primary | primary
+static expr_ty
+await_primary_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // AWAIT primary
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
+ expr_ty a;
+ Token * await_var;
+ if (
+ (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
+ &&
+ (a = primary_rule(p)) // primary
+ )
+ {
+ D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
+ }
+ { // primary
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
+ expr_ty primary_var;
+ if (
+ (primary_var = primary_rule(p)) // primary
+ )
+ {
+ D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
+ _res = primary_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// primary:
+// | invalid_primary
+// | primary '.' NAME
+// | primary genexp
+// | primary '(' arguments? ')'
+// | primary '[' slices ']'
+// | atom
+static expr_ty primary_raw(Parser *);
+static expr_ty
+primary_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, primary_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
+ if (tmpvar_7) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = primary_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+primary_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ if (p->call_invalid_rules) { // invalid_primary
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
+ void *invalid_primary_var;
+ if (
+ (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
+ )
+ {
+ D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
+ _res = invalid_primary_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
+ }
+ { // primary '.' NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = primary_rule(p)) // primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ &&
+ (b = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
+ }
+ { // primary genexp
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = primary_rule(p)) // primary
+ &&
+ (b = genexp_rule(p)) // genexp
+ )
+ {
+ D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
+ }
+ { // primary '(' arguments? ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ void *b;
+ if (
+ (a = primary_rule(p)) // primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (b = arguments_rule(p), !p->error_indicator) // arguments?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
+ }
+ { // primary '[' slices ']'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = primary_rule(p)) // primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (b = slices_rule(p)) // slices
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ )
+ {
+ D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Subscript ( a , b , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
+ }
+ { // atom
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
+ expr_ty atom_var;
+ if (
+ (atom_var = atom_rule(p)) // atom
+ )
+ {
+ D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
+ _res = atom_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// slices: slice !',' | ','.slice+ ','?
+static expr_ty
+slices_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // slice !','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
+ expr_ty a;
+ if (
+ (a = slice_rule(p)) // slice
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
+ }
+ { // ','.slice+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ if (
+ (a = _gather_92_rule(p)) // ','.slice+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( a , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// slice: expression? ':' expression? [':' expression?] | expression
+static expr_ty
+slice_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // expression? ':' expression? [':' expression?]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
+ Token * _literal;
+ void *a;
+ void *b;
+ void *c;
+ if (
+ (a = expression_rule(p), !p->error_indicator) // expression?
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = expression_rule(p), !p->error_indicator) // expression?
+ &&
+ (c = _tmp_94_rule(p), !p->error_indicator) // [':' expression?]
+ )
+ {
+ D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Slice ( a , b , c , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
+ }
+ { // expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
+ expr_ty a;
+ if (
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// atom:
+// | NAME
+// | 'True'
+// | 'False'
+// | 'None'
+// | '__peg_parser__'
+// | &STRING strings
+// | NUMBER
+// | &'(' (tuple | group | genexp)
+// | &'[' (list | listcomp)
+// | &'{' (dict | set | dictcomp | setcomp)
+// | '...'
+static expr_ty
+atom_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
+ expr_ty name_var;
+ if (
+ (name_var = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
+ _res = name_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
+ }
+ { // 'True'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Constant ( Py_True , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
+ }
+ { // 'False'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Constant ( Py_False , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
+ }
+ { // 'None'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Constant ( Py_None , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
+ }
+ { // '__peg_parser__'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
+ _res = RAISE_SYNTAX_ERROR ( "You found it!" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
+ }
+ { // &STRING strings
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
+ expr_ty strings_var;
+ if (
+ _PyPegen_lookahead(1, _PyPegen_string_token, p)
+ &&
+ (strings_var = strings_rule(p)) // strings
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
+ _res = strings_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
+ }
+ { // NUMBER
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
+ expr_ty number_var;
+ if (
+ (number_var = _PyPegen_number_token(p)) // NUMBER
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
+ _res = number_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
+ }
+ { // &'(' (tuple | group | genexp)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
+ void *_tmp_95_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
+ &&
+ (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
+ _res = _tmp_95_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
+ }
+ { // &'[' (list | listcomp)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
+ void *_tmp_96_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
+ &&
+ (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
+ _res = _tmp_96_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
+ }
+ { // &'{' (dict | set | dictcomp | setcomp)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
+ void *_tmp_97_var;
+ if (
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
+ &&
+ (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
+ _res = _tmp_97_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
+ }
+ { // '...'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 52)) // token='...'
+ )
+ {
+ D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// strings: STRING+
+static expr_ty
+strings_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, strings_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ { // STRING+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
+ asdl_seq * a;
+ if (
+ (a = _loop1_98_rule(p)) // STRING+
+ )
+ {
+ D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
+ _res = _PyPegen_concatenate_strings ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, strings_type, _res);
+ p->level--;
+ return _res;
+}
+
+// list: '[' star_named_expressions? ']'
+static expr_ty
+list_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '[' star_named_expressions? ']'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (a = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ )
+ {
+ D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_List ( a , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
+static expr_ty
+listcomp_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '[' named_expression ~ for_if_clauses ']'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
+ int _cut_var = 0;
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ asdl_seq* b;
+ if (
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_cut_var = 1)
+ &&
+ (b = for_if_clauses_rule(p)) // for_if_clauses
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ )
+ {
+ D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_ListComp ( a , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ if (p->call_invalid_rules) { // invalid_comprehension
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
+ void *invalid_comprehension_var;
+ if (
+ (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
+ )
+ {
+ D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
+ _res = invalid_comprehension_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
+static expr_ty
+tuple_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '(' [star_named_expression ',' star_named_expressions?] ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = _tmp_99_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( a , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// group: '(' (yield_expr | named_expression) ')' | invalid_group
+static expr_ty
+group_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // '(' (yield_expr | named_expression) ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = _tmp_100_rule(p)) // yield_expr | named_expression
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
+ }
+ if (p->call_invalid_rules) { // invalid_group
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
+ void *invalid_group_var;
+ if (
+ (invalid_group_var = invalid_group_rule(p)) // invalid_group
+ )
+ {
+ D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
+ _res = invalid_group_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// genexp: '(' named_expression ~ for_if_clauses ')' | invalid_comprehension
+static expr_ty
+genexp_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '(' named_expression ~ for_if_clauses ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
+ int _cut_var = 0;
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ asdl_seq* b;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_cut_var = 1)
+ &&
+ (b = for_if_clauses_rule(p)) // for_if_clauses
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_GeneratorExp ( a , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ if (p->call_invalid_rules) { // invalid_comprehension
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
+ void *invalid_comprehension_var;
+ if (
+ (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
+ )
+ {
+ D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
+ _res = invalid_comprehension_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// set: '{' star_named_expressions '}'
+static expr_ty
+set_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '{' star_named_expressions '}'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq* a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 25)) // token='{'
+ &&
+ (a = star_named_expressions_rule(p)) // star_named_expressions
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
+ )
+ {
+ D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Set ( a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// setcomp: '{' named_expression ~ for_if_clauses '}' | invalid_comprehension
+static expr_ty
+setcomp_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '{' named_expression ~ for_if_clauses '}'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
+ int _cut_var = 0;
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ asdl_seq* b;
+ if (
+ (_literal = _PyPegen_expect_token(p, 25)) // token='{'
+ &&
+ (a = named_expression_rule(p)) // named_expression
+ &&
+ (_cut_var = 1)
+ &&
+ (b = for_if_clauses_rule(p)) // for_if_clauses
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
+ )
+ {
+ D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_SetComp ( a , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ if (p->call_invalid_rules) { // invalid_comprehension
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
+ void *invalid_comprehension_var;
+ if (
+ (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
+ )
+ {
+ D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
+ _res = invalid_comprehension_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// dict: '{' double_starred_kvpairs? '}'
+static expr_ty
+dict_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '{' double_starred_kvpairs? '}'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 25)) // token='{'
+ &&
+ (a = double_starred_kvpairs_rule(p), !p->error_indicator) // double_starred_kvpairs?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
+ )
+ {
+ D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
+static expr_ty
+dictcomp_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '{' kvpair for_if_clauses '}'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
+ Token * _literal;
+ Token * _literal_1;
+ KeyValuePair* a;
+ asdl_seq* b;
+ if (
+ (_literal = _PyPegen_expect_token(p, 25)) // token='{'
+ &&
+ (a = kvpair_rule(p)) // kvpair
+ &&
+ (b = for_if_clauses_rule(p)) // for_if_clauses
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
+ )
+ {
+ D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
+ }
+ if (p->call_invalid_rules) { // invalid_dict_comprehension
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
+ void *invalid_dict_comprehension_var;
+ if (
+ (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
+ )
+ {
+ D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
+ _res = invalid_dict_comprehension_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
+static asdl_seq*
+double_starred_kvpairs_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.double_starred_kvpair+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ if (
+ (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// double_starred_kvpair: '**' bitwise_or | kvpair
+static KeyValuePair*
+double_starred_kvpair_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ KeyValuePair* _res = NULL;
+ int _mark = p->mark;
+ { // '**' bitwise_or
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (a = bitwise_or_rule(p)) // bitwise_or
+ )
+ {
+ D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
+ _res = _PyPegen_key_value_pair ( p , NULL , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
+ }
+ { // kvpair
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
+ KeyValuePair* kvpair_var;
+ if (
+ (kvpair_var = kvpair_rule(p)) // kvpair
+ )
+ {
+ D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
+ _res = kvpair_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// kvpair: expression ':' expression
+static KeyValuePair*
+kvpair_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ KeyValuePair* _res = NULL;
+ int _mark = p->mark;
+ { // expression ':' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = expression_rule(p)) // expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
+ _res = _PyPegen_key_value_pair ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// for_if_clauses: for_if_clause+
+static asdl_seq*
+for_if_clauses_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // for_if_clause+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
+ asdl_seq * _loop1_103_var;
+ if (
+ (_loop1_103_var = _loop1_103_rule(p)) // for_if_clause+
+ )
+ {
+ D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
+ _res = _loop1_103_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// for_if_clause:
+// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
+// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
+// | invalid_for_target
+static comprehension_ty
+for_if_clause_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ comprehension_ty _res = NULL;
+ int _mark = p->mark;
+ { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
+ int _cut_var = 0;
+ Token * _keyword;
+ Token * _keyword_1;
+ expr_ty a;
+ Token * async_var;
+ expr_ty b;
+ asdl_seq * c;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ &&
+ (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
+ &&
+ (a = star_targets_rule(p)) // star_targets
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
+ &&
+ (_cut_var = 1)
+ &&
+ (b = disjunction_rule(p)) // disjunction
+ &&
+ (c = _loop0_104_rule(p)) // (('if' disjunction))*
+ )
+ {
+ D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
+ _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
+ int _cut_var = 0;
+ Token * _keyword;
+ Token * _keyword_1;
+ expr_ty a;
+ expr_ty b;
+ asdl_seq * c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
+ &&
+ (a = star_targets_rule(p)) // star_targets
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
+ &&
+ (_cut_var = 1)
+ &&
+ (b = disjunction_rule(p)) // disjunction
+ &&
+ (c = _loop0_105_rule(p)) // (('if' disjunction))*
+ )
+ {
+ D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
+ _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
+ if (_cut_var) {
+ p->level--;
+ return NULL;
+ }
+ }
+ if (p->call_invalid_rules) { // invalid_for_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
+ void *invalid_for_target_var;
+ if (
+ (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
+ _res = invalid_for_target_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
+static expr_ty
+yield_expr_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // 'yield' 'from' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
+ Token * _keyword;
+ Token * _keyword_1;
+ expr_ty a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
+ &&
+ (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_YieldFrom ( a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
+ }
+ { // 'yield' star_expressions?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
+ Token * _keyword;
+ void *a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
+ &&
+ (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
+ )
+ {
+ D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Yield ( a , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// arguments: args ','? &')' | invalid_arguments
+static expr_ty
+arguments_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ { // args ','? &')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ expr_ty a;
+ if (
+ (a = args_rule(p)) // args
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ &&
+ _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
+ }
+ if (p->call_invalid_rules) { // invalid_arguments
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
+ void *invalid_arguments_var;
+ if (
+ (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
+ )
+ {
+ D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
+ _res = invalid_arguments_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, arguments_type, _res);
+ p->level--;
+ return _res;
+}
+
+// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
+static expr_ty
+args_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
+ asdl_seq * a;
+ void *b;
+ if (
+ (a = _gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
+ &&
+ (b = _tmp_108_rule(p), !p->error_indicator) // [',' kwargs]
+ )
+ {
+ D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
+ }
+ { // kwargs
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
+ asdl_seq* a;
+ if (
+ (a = kwargs_rule(p)) // kwargs
+ )
+ {
+ D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// kwargs:
+// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
+// | ','.kwarg_or_starred+
+// | ','.kwarg_or_double_starred+
+static asdl_seq*
+kwargs_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
+ Token * _literal;
+ asdl_seq * a;
+ asdl_seq * b;
+ if (
+ (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
+ _res = _PyPegen_join_sequences ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
+ }
+ { // ','.kwarg_or_starred+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
+ asdl_seq * _gather_113_var;
+ if (
+ (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
+ _res = _gather_113_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
+ }
+ { // ','.kwarg_or_double_starred+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
+ asdl_seq * _gather_115_var;
+ if (
+ (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
+ _res = _gather_115_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// starred_expression: '*' expression
+static expr_ty
+starred_expression_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '*' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Starred ( a , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
+static KeywordOrStarred*
+kwarg_or_starred_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ KeywordOrStarred* _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME '=' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
+ }
+ { // starred_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+ expr_ty a;
+ if (
+ (a = starred_expression_rule(p)) // starred_expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+ _res = _PyPegen_keyword_or_starred ( p , a , 0 );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
+ }
+ if (p->call_invalid_rules) { // invalid_kwarg
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
+ void *invalid_kwarg_var;
+ if (
+ (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
+ _res = invalid_kwarg_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
+static KeywordOrStarred*
+kwarg_or_double_starred_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ KeywordOrStarred* _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME '=' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ &&
+ (b = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
+ }
+ { // '**' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
+ }
+ if (p->call_invalid_rules) { // invalid_kwarg
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
+ void *invalid_kwarg_var;
+ if (
+ (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
+ )
+ {
+ D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
+ _res = invalid_kwarg_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// star_targets: star_target !',' | star_target ((',' star_target))* ','?
+static expr_ty
+star_targets_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // star_target !','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
+ expr_ty a;
+ if (
+ (a = star_target_rule(p)) // star_target
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
+ }
+ { // star_target ((',' star_target))* ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ expr_ty a;
+ asdl_seq * b;
+ if (
+ (a = star_target_rule(p)) // star_target
+ &&
+ (b = _loop0_117_rule(p)) // ((',' star_target))*
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// star_targets_list_seq: ','.star_target+ ','?
+static asdl_seq*
+star_targets_list_seq_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.star_target+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_targets_list_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ if (
+ (a = _gather_118_rule(p)) // ','.star_target+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
+static asdl_seq*
+star_targets_tuple_seq_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // star_target ((',' star_target))+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ expr_ty a;
+ asdl_seq * b;
+ if (
+ (a = star_target_rule(p)) // star_target
+ &&
+ (b = _loop1_120_rule(p)) // ((',' star_target))+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
+ _res = _PyPegen_seq_insert_in_front ( p , a , b );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
+ }
+ { // star_target ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
+ Token * _literal;
+ expr_ty a;
+ if (
+ (a = star_target_rule(p)) // star_target
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
+ _res = _PyPegen_singleton_seq ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// star_target: '*' (!'*' star_target) | target_with_star_atom
+static expr_ty
+star_target_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // '*' (!'*' star_target)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
+ Token * _literal;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (a = _tmp_121_rule(p)) // !'*' star_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
+ }
+ { // target_with_star_atom
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
+ expr_ty target_with_star_atom_var;
+ if (
+ (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
+ _res = target_with_star_atom_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, star_target_type, _res);
+ p->level--;
+ return _res;
+}
+
+// target_with_star_atom:
+// | t_primary '.' NAME !t_lookahead
+// | t_primary '[' slices ']' !t_lookahead
+// | star_atom
+static expr_ty
+target_with_star_atom_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // t_primary '.' NAME !t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ &&
+ (b = _PyPegen_name_token(p)) // NAME
+ &&
+ _PyPegen_lookahead(0, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ }
+ { // t_primary '[' slices ']' !t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (b = slices_rule(p)) // slices
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ &&
+ _PyPegen_lookahead(0, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Subscript ( a , b , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ }
+ { // star_atom
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
+ expr_ty star_atom_var;
+ if (
+ (star_atom_var = star_atom_rule(p)) // star_atom
+ )
+ {
+ D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
+ _res = star_atom_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
+ p->level--;
+ return _res;
+}
+
+// star_atom:
+// | NAME
+// | '(' target_with_star_atom ')'
+// | '(' star_targets_tuple_seq? ')'
+// | '[' star_targets_list_seq? ']'
+static expr_ty
+star_atom_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
+ expr_ty a;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
+ _res = _PyPegen_set_expr_context ( p , a , Store );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
+ }
+ { // '(' target_with_star_atom ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = target_with_star_atom_rule(p)) // target_with_star_atom
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
+ _res = _PyPegen_set_expr_context ( p , a , Store );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
+ }
+ { // '(' star_targets_tuple_seq? ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = star_targets_tuple_seq_rule(p), !p->error_indicator) // star_targets_tuple_seq?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( a , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
+ }
+ { // '[' star_targets_list_seq? ']'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (a = star_targets_list_seq_rule(p), !p->error_indicator) // star_targets_list_seq?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ )
+ {
+ D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_List ( a , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
+static expr_ty
+single_target_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // single_subscript_attribute_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
+ expr_ty single_subscript_attribute_target_var;
+ if (
+ (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
+ _res = single_subscript_attribute_target_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
+ }
+ { // NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
+ expr_ty a;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
+ _res = _PyPegen_set_expr_context ( p , a , Store );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
+ }
+ { // '(' single_target ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = single_target_rule(p)) // single_target
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// single_subscript_attribute_target:
+// | t_primary '.' NAME !t_lookahead
+// | t_primary '[' slices ']' !t_lookahead
+static expr_ty
+single_subscript_attribute_target_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // t_primary '.' NAME !t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ &&
+ (b = _PyPegen_name_token(p)) // NAME
+ &&
+ _PyPegen_lookahead(0, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ }
+ { // t_primary '[' slices ']' !t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (b = slices_rule(p)) // slices
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ &&
+ _PyPegen_lookahead(0, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Subscript ( a , b , Store , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// del_targets: ','.del_target+ ','?
+static asdl_seq*
+del_targets_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq* _res = NULL;
+ int _mark = p->mark;
+ { // ','.del_target+ ','?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ asdl_seq * a;
+ if (
+ (a = _gather_122_rule(p)) // ','.del_target+
+ &&
+ (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// del_target:
+// | t_primary '.' NAME !t_lookahead
+// | t_primary '[' slices ']' !t_lookahead
+// | del_t_atom
+static expr_ty
+del_target_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // t_primary '.' NAME !t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ &&
+ (b = _PyPegen_name_token(p)) // NAME
+ &&
+ _PyPegen_lookahead(0, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
+ }
+ { // t_primary '[' slices ']' !t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (b = slices_rule(p)) // slices
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ &&
+ _PyPegen_lookahead(0, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Subscript ( a , b , Del , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
+ }
+ { // del_t_atom
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
+ expr_ty del_t_atom_var;
+ if (
+ (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
+ _res = del_t_atom_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
+ }
+ _res = NULL;
+ done:
+ _PyPegen_insert_memo(p, _mark, del_target_type, _res);
+ p->level--;
+ return _res;
+}
+
+// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
+static expr_ty
+del_t_atom_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
+ expr_ty a;
+ if (
+ (a = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
+ _res = _PyPegen_set_expr_context ( p , a , Del );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
+ }
+ { // '(' del_target ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = del_target_rule(p)) // del_target
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
+ _res = _PyPegen_set_expr_context ( p , a , Del );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
+ }
+ { // '(' del_targets? ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = del_targets_rule(p), !p->error_indicator) // del_targets?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Tuple ( a , Del , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
+ }
+ { // '[' del_targets? ']'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (a = del_targets_rule(p), !p->error_indicator) // del_targets?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ )
+ {
+ D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_List ( a , Del , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// t_primary:
+// | t_primary '.' NAME &t_lookahead
+// | t_primary '[' slices ']' &t_lookahead
+// | t_primary genexp &t_lookahead
+// | t_primary '(' arguments? ')' &t_lookahead
+// | atom &t_lookahead
+static expr_ty t_primary_raw(Parser *);
+static expr_ty
+t_primary_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ expr_ty _res = NULL;
+ if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
+ p->level--;
+ return _res;
+ }
+ int _mark = p->mark;
+ int _resmark = p->mark;
+ while (1) {
+ int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
+ if (tmpvar_8) {
+ p->level--;
+ return _res;
+ }
+ p->mark = _mark;
+ void *_raw = t_primary_raw(p);
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ if (_raw == NULL || p->mark <= _resmark)
+ break;
+ _resmark = p->mark;
+ _res = _raw;
+ }
+ p->mark = _resmark;
+ p->level--;
+ return _res;
+}
+static expr_ty
+t_primary_raw(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ int _start_lineno = p->tokens[_mark]->lineno;
+ UNUSED(_start_lineno); // Only used by EXTRA macro
+ int _start_col_offset = p->tokens[_mark]->col_offset;
+ UNUSED(_start_col_offset); // Only used by EXTRA macro
+ { // t_primary '.' NAME &t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ &&
+ (b = _PyPegen_name_token(p)) // NAME
+ &&
+ _PyPegen_lookahead(1, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
+ }
+ { // t_primary '[' slices ']' &t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ &&
+ (b = slices_rule(p)) // slices
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
+ &&
+ _PyPegen_lookahead(1, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Subscript ( a , b , Load , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
+ }
+ { // t_primary genexp &t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
+ expr_ty a;
+ expr_ty b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (b = genexp_rule(p)) // genexp
+ &&
+ _PyPegen_lookahead(1, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
+ }
+ { // t_primary '(' arguments? ')' &t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ void *b;
+ if (
+ (a = t_primary_rule(p)) // t_primary
+ &&
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (b = arguments_rule(p), !p->error_indicator) // arguments?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ &&
+ _PyPegen_lookahead(1, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
+ Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+ if (_token == NULL) {
+ p->level--;
+ return NULL;
+ }
+ int _end_lineno = _token->end_lineno;
+ UNUSED(_end_lineno); // Only used by EXTRA macro
+ int _end_col_offset = _token->end_col_offset;
+ UNUSED(_end_col_offset); // Only used by EXTRA macro
+ _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
+ }
+ { // atom &t_lookahead
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
+ expr_ty a;
+ if (
+ (a = atom_rule(p)) // atom
+ &&
+ _PyPegen_lookahead(1, t_lookahead_rule, p)
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// t_lookahead: '(' | '[' | '.'
+static void *
+t_lookahead_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '('
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
+ }
+ { // '['
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
+ }
+ { // '.'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ )
+ {
+ D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_arguments:
+// | args ',' '*'
+// | expression for_if_clauses ',' [args | expression for_if_clauses]
+// | args for_if_clauses
+// | args ',' expression for_if_clauses
+// | args ',' args
+static void *
+invalid_arguments_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // args ',' '*'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty args_var;
+ if (
+ (args_var = args_rule(p)) // args
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
+ _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
+ }
+ { // expression for_if_clauses ',' [args | expression for_if_clauses]
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
+ Token * _literal;
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ expr_ty a;
+ asdl_seq* for_if_clauses_var;
+ if (
+ (a = expression_rule(p)) // expression
+ &&
+ (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_opt_var = _tmp_124_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
+ }
+ { // args for_if_clauses
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
+ expr_ty a;
+ asdl_seq* for_if_clauses_var;
+ if (
+ (a = args_rule(p)) // args
+ &&
+ (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
+ _res = _PyPegen_nonparen_genexp_in_call ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
+ }
+ { // args ',' expression for_if_clauses
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty args_var;
+ asdl_seq* for_if_clauses_var;
+ if (
+ (args_var = args_rule(p)) // args
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (a = expression_rule(p)) // expression
+ &&
+ (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
+ }
+ { // args ',' args
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty args_var;
+ if (
+ (a = args_rule(p)) // args
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (args_var = args_rule(p)) // args
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
+ _res = _PyPegen_arguments_parsing_error ( p , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_kwarg: !(NAME '=') expression '='
+static void *
+invalid_kwarg_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // !(NAME '=') expression '='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
+ expr_ty a;
+ Token * b;
+ if (
+ _PyPegen_lookahead(0, _tmp_125_rule, p)
+ &&
+ (a = expression_rule(p)) // expression
+ &&
+ (b = _PyPegen_expect_token(p, 22)) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_named_expression: expression ':=' expression
+static void *
+invalid_named_expression_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // expression ':=' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty expression_var;
+ if (
+ (a = expression_rule(p)) // expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 53)) // token=':='
+ &&
+ (expression_var = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_assignment:
+// | invalid_ann_assign_target ':' expression
+// | star_named_expression ',' star_named_expressions* ':' expression
+// | expression ':' expression
+// | ((star_targets '='))* star_expressions '='
+// | ((star_targets '='))* yield_expr '='
+// | star_expressions augassign (yield_expr | star_expressions)
+static void *
+invalid_assignment_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // invalid_ann_assign_target ':' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty expression_var;
+ if (
+ (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (expression_var = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
+ }
+ { // star_named_expression ',' star_named_expressions* ':' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
+ Token * _literal;
+ Token * _literal_1;
+ asdl_seq * _loop0_126_var;
+ expr_ty a;
+ expr_ty expression_var;
+ if (
+ (a = star_named_expression_rule(p)) // star_named_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_loop0_126_var = _loop0_126_rule(p)) // star_named_expressions*
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (expression_var = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
+ }
+ { // expression ':' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
+ Token * _literal;
+ expr_ty a;
+ expr_ty expression_var;
+ if (
+ (a = expression_rule(p)) // expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (expression_var = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
+ }
+ { // ((star_targets '='))* star_expressions '='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
+ Token * _literal;
+ asdl_seq * _loop0_127_var;
+ expr_ty a;
+ if (
+ (_loop0_127_var = _loop0_127_rule(p)) // ((star_targets '='))*
+ &&
+ (a = star_expressions_rule(p)) // star_expressions
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
+ _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
+ }
+ { // ((star_targets '='))* yield_expr '='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
+ Token * _literal;
+ asdl_seq * _loop0_128_var;
+ expr_ty a;
+ if (
+ (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
+ &&
+ (a = yield_expr_rule(p)) // yield_expr
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
+ }
+ { // star_expressions augassign (yield_expr | star_expressions)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
+ void *_tmp_129_var;
+ expr_ty a;
+ AugOperator* augassign_var;
+ if (
+ (a = star_expressions_rule(p)) // star_expressions
+ &&
+ (augassign_var = augassign_rule(p)) // augassign
+ &&
+ (_tmp_129_var = _tmp_129_rule(p)) // yield_expr | star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
+static expr_ty
+invalid_ann_assign_target_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ expr_ty _res = NULL;
+ int _mark = p->mark;
+ { // list
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
+ expr_ty list_var;
+ if (
+ (list_var = list_rule(p)) // list
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
+ _res = list_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
+ }
+ { // tuple
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
+ expr_ty tuple_var;
+ if (
+ (tuple_var = tuple_rule(p)) // tuple
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
+ _res = tuple_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
+ }
+ { // '(' invalid_ann_assign_target ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
+ _res = a;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_del_stmt: 'del' star_expressions
+static void *
+invalid_del_stmt_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'del' star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
+ Token * _keyword;
+ expr_ty a;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
+ &&
+ (a = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
+ _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_block: NEWLINE !INDENT
+static void *
+invalid_block_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // NEWLINE !INDENT
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
+ Token * newline_var;
+ if (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
+ _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// Left-recursive
+// invalid_primary: primary '{'
+static void *
+invalid_primary_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // primary '{'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
+ Token * a;
+ expr_ty primary_var;
+ if (
+ (primary_var = primary_rule(p)) // primary
+ &&
+ (a = _PyPegen_expect_token(p, 25)) // token='{'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
+static void *
+invalid_comprehension_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ('[' | '(' | '{') starred_expression for_if_clauses
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
+ void *_tmp_130_var;
+ expr_ty a;
+ asdl_seq* for_if_clauses_var;
+ if (
+ (_tmp_130_var = _tmp_130_rule(p)) // '[' | '(' | '{'
+ &&
+ (a = starred_expression_rule(p)) // starred_expression
+ &&
+ (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
+static void *
+invalid_dict_comprehension_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '{' '**' bitwise_or for_if_clauses '}'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
+ Token * _literal;
+ Token * _literal_1;
+ Token * a;
+ expr_ty bitwise_or_var;
+ asdl_seq* for_if_clauses_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 25)) // token='{'
+ &&
+ (a = _PyPegen_expect_token(p, 35)) // token='**'
+ &&
+ (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
+ &&
+ (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_parameters:
+// | param_no_default* (slash_with_default | param_with_default+) param_no_default
+static void *
+invalid_parameters_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // param_no_default* (slash_with_default | param_with_default+) param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
+ asdl_seq * _loop0_131_var;
+ void *_tmp_132_var;
+ arg_ty param_no_default_var;
+ if (
+ (_loop0_131_var = _loop0_131_rule(p)) // param_no_default*
+ &&
+ (_tmp_132_var = _tmp_132_rule(p)) // slash_with_default | param_with_default+
+ &&
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
+ _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_lambda_parameters:
+// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
+static void *
+invalid_lambda_parameters_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
+ asdl_seq * _loop0_133_var;
+ void *_tmp_134_var;
+ arg_ty lambda_param_no_default_var;
+ if (
+ (_loop0_133_var = _loop0_133_rule(p)) // lambda_param_no_default*
+ &&
+ (_tmp_134_var = _tmp_134_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
+ &&
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
+ _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
+static void *
+invalid_star_etc_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '*' (')' | ',' (')' | '**'))
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
+ Token * _literal;
+ void *_tmp_135_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (_tmp_135_var = _tmp_135_rule(p)) // ')' | ',' (')' | '**')
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
+ _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
+ }
+ { // '*' ',' TYPE_COMMENT
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
+ Token * _literal;
+ Token * _literal_1;
+ Token * type_comment_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
+ _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
+static void *
+invalid_lambda_star_etc_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '*' (':' | ',' (':' | '**'))
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
+ Token * _literal;
+ void *_tmp_136_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 16)) // token='*'
+ &&
+ (_tmp_136_var = _tmp_136_rule(p)) // ':' | ',' (':' | '**')
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
+ _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
+static void *
+invalid_double_type_comments_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
+ Token * indent_var;
+ Token * newline_var;
+ Token * newline_var_1;
+ Token * type_comment_var;
+ Token * type_comment_var_1;
+ if (
+ (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
+ &&
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ &&
+ (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
+ &&
+ (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ &&
+ (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_double_type_comments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
+ _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_with_item: expression 'as' expression
+static void *
+invalid_with_item_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // expression 'as' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
+ Token * _keyword;
+ expr_ty a;
+ expr_ty expression_var;
+ if (
+ (expression_var = expression_rule(p)) // expression
+ &&
+ (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
+ &&
+ (a = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
+ _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_for_target: ASYNC? 'for' star_expressions
+static void *
+invalid_for_target_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ASYNC? 'for' star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
+ Token * _keyword;
+ void *_opt_var;
+ UNUSED(_opt_var); // Silence compiler warnings
+ expr_ty a;
+ if (
+ (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
+ &&
+ (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
+ &&
+ (a = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
+ _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_group: '(' starred_expression ')'
+static void *
+invalid_group_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '(' starred_expression ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty a;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (a = starred_expression_rule(p)) // starred_expression
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
+ _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// invalid_import_from_targets: import_from_as_names ',' NEWLINE
+static void *
+invalid_import_from_targets_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // import_from_as_names ',' NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
+ Token * _literal;
+ asdl_seq* import_from_as_names_var;
+ Token * newline_var;
+ if (
+ (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
+ _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_1: NEWLINE
+static asdl_seq *
+_loop0_1_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ Token * newline_var;
+ while (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ _res = newline_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_2: NEWLINE
+static asdl_seq *
+_loop0_2_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ Token * newline_var;
+ while (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ _res = newline_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_4: ',' expression
+static asdl_seq *
+_loop0_4_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = expression_rule(p)) // expression
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_3: expression _loop0_4
+static asdl_seq *
+_gather_3_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // expression _loop0_4
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = expression_rule(p)) // expression
+ &&
+ (seq = _loop0_4_rule(p)) // _loop0_4
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_6: ',' expression
+static asdl_seq *
+_loop0_6_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = expression_rule(p)) // expression
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_5: expression _loop0_6
+static asdl_seq *
+_gather_5_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // expression _loop0_6
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = expression_rule(p)) // expression
+ &&
+ (seq = _loop0_6_rule(p)) // _loop0_6
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_8: ',' expression
+static asdl_seq *
+_loop0_8_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = expression_rule(p)) // expression
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_7: expression _loop0_8
+static asdl_seq *
+_gather_7_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // expression _loop0_8
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = expression_rule(p)) // expression
+ &&
+ (seq = _loop0_8_rule(p)) // _loop0_8
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_10: ',' expression
+static asdl_seq *
+_loop0_10_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = expression_rule(p)) // expression
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_9: expression _loop0_10
+static asdl_seq *
+_gather_9_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // expression _loop0_10
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = expression_rule(p)) // expression
+ &&
+ (seq = _loop0_10_rule(p)) // _loop0_10
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_11: statement
+static asdl_seq *
+_loop1_11_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // statement
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
+ asdl_seq* statement_var;
+ while (
+ (statement_var = statement_rule(p)) // statement
+ )
+ {
+ _res = statement_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_13: ';' small_stmt
+static asdl_seq *
+_loop0_13_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ';' small_stmt
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
+ Token * _literal;
+ stmt_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 13)) // token=';'
+ &&
+ (elem = small_stmt_rule(p)) // small_stmt
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_12: small_stmt _loop0_13
+static asdl_seq *
+_gather_12_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // small_stmt _loop0_13
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt _loop0_13"));
+ stmt_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = small_stmt_rule(p)) // small_stmt
+ &&
+ (seq = _loop0_13_rule(p)) // _loop0_13
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt _loop0_13"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_14: 'import' | 'from'
+static void *
+_tmp_14_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'import'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
+ _res = _keyword;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
+ }
+ { // 'from'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
+ _res = _keyword;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_15: 'def' | '@' | ASYNC
+static void *
+_tmp_15_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'def'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
+ _res = _keyword;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
+ }
+ { // '@'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 49)) // token='@'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
+ }
+ { // ASYNC
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
+ Token * async_var;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
+ _res = async_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_16: 'class' | '@'
+static void *
+_tmp_16_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'class'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
+ _res = _keyword;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
+ }
+ { // '@'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 49)) // token='@'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_17: 'with' | ASYNC
+static void *
+_tmp_17_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'with'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
+ _res = _keyword;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
+ }
+ { // ASYNC
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
+ Token * async_var;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
+ _res = async_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_18: 'for' | ASYNC
+static void *
+_tmp_18_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'for'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
+ Token * _keyword;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
+ _res = _keyword;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
+ }
+ { // ASYNC
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
+ Token * async_var;
+ if (
+ (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
+ _res = async_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_19: '=' annotated_rhs
+static void *
+_tmp_19_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '=' annotated_rhs
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
+ Token * _literal;
+ expr_ty d;
+ if (
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ &&
+ (d = annotated_rhs_rule(p)) // annotated_rhs
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
+ _res = d;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
+static void *
+_tmp_20_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '(' single_target ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ expr_ty b;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (b = single_target_rule(p)) // single_target
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
+ _res = b;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
+ }
+ { // single_subscript_attribute_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
+ expr_ty single_subscript_attribute_target_var;
+ if (
+ (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
+ _res = single_subscript_attribute_target_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_21: '=' annotated_rhs
+static void *
+_tmp_21_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '=' annotated_rhs
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
+ Token * _literal;
+ expr_ty d;
+ if (
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ &&
+ (d = annotated_rhs_rule(p)) // annotated_rhs
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
+ _res = d;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_22: (star_targets '=')
+static asdl_seq *
+_loop1_22_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // (star_targets '=')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
+ void *_tmp_137_var;
+ while (
+ (_tmp_137_var = _tmp_137_rule(p)) // star_targets '='
+ )
+ {
+ _res = _tmp_137_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_23: yield_expr | star_expressions
+static void *
+_tmp_23_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // yield_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ expr_ty yield_expr_var;
+ if (
+ (yield_expr_var = yield_expr_rule(p)) // yield_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ _res = yield_expr_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
+ }
+ { // star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ expr_ty star_expressions_var;
+ if (
+ (star_expressions_var = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ _res = star_expressions_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_24: yield_expr | star_expressions
+static void *
+_tmp_24_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // yield_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ expr_ty yield_expr_var;
+ if (
+ (yield_expr_var = yield_expr_rule(p)) // yield_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ _res = yield_expr_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
+ }
+ { // star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ expr_ty star_expressions_var;
+ if (
+ (star_expressions_var = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ _res = star_expressions_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_26: ',' NAME
+static asdl_seq *
+_loop0_26_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_25: NAME _loop0_26
+static asdl_seq *
+_gather_25_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // NAME _loop0_26
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = _PyPegen_name_token(p)) // NAME
+ &&
+ (seq = _loop0_26_rule(p)) // _loop0_26
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_28: ',' NAME
+static asdl_seq *
+_loop0_28_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_27: NAME _loop0_28
+static asdl_seq *
+_gather_27_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // NAME _loop0_28
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = _PyPegen_name_token(p)) // NAME
+ &&
+ (seq = _loop0_28_rule(p)) // _loop0_28
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_29: ',' expression
+static void *
+_tmp_29_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ',' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ Token * _literal;
+ expr_ty z;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (z = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_30: ';' | NEWLINE
+static void *
+_tmp_30_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ';'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 13)) // token=';'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
+ }
+ { // NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ Token * newline_var;
+ if (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
+ _res = newline_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_31: ('.' | '...')
+static asdl_seq *
+_loop0_31_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ('.' | '...')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
+ void *_tmp_138_var;
+ while (
+ (_tmp_138_var = _tmp_138_rule(p)) // '.' | '...'
+ )
+ {
+ _res = _tmp_138_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_32: ('.' | '...')
+static asdl_seq *
+_loop1_32_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ('.' | '...')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
+ void *_tmp_139_var;
+ while (
+ (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
+ )
+ {
+ _res = _tmp_139_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_34: ',' import_from_as_name
+static asdl_seq *
+_loop0_34_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' import_from_as_name
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
+ Token * _literal;
+ alias_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = import_from_as_name_rule(p)) // import_from_as_name
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_33: import_from_as_name _loop0_34
+static asdl_seq *
+_gather_33_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // import_from_as_name _loop0_34
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
+ alias_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = import_from_as_name_rule(p)) // import_from_as_name
+ &&
+ (seq = _loop0_34_rule(p)) // _loop0_34
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_35: 'as' NAME
+static void *
+_tmp_35_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'as' NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ Token * _keyword;
+ expr_ty z;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
+ &&
+ (z = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_37: ',' dotted_as_name
+static asdl_seq *
+_loop0_37_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' dotted_as_name
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
+ Token * _literal;
+ alias_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = dotted_as_name_rule(p)) // dotted_as_name
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_36: dotted_as_name _loop0_37
+static asdl_seq *
+_gather_36_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // dotted_as_name _loop0_37
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
+ alias_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = dotted_as_name_rule(p)) // dotted_as_name
+ &&
+ (seq = _loop0_37_rule(p)) // _loop0_37
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_36[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_38: 'as' NAME
+static void *
+_tmp_38_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'as' NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ Token * _keyword;
+ expr_ty z;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
+ &&
+ (z = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_38[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_40: ',' with_item
+static asdl_seq *
+_loop0_40_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' with_item
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
+ Token * _literal;
+ withitem_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = with_item_rule(p)) // with_item
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_39: with_item _loop0_40
+static asdl_seq *
+_gather_39_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // with_item _loop0_40
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
+ withitem_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = with_item_rule(p)) // with_item
+ &&
+ (seq = _loop0_40_rule(p)) // _loop0_40
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_39[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_42: ',' with_item
+static asdl_seq *
+_loop0_42_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' with_item
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
+ Token * _literal;
+ withitem_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = with_item_rule(p)) // with_item
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_41: with_item _loop0_42
+static asdl_seq *
+_gather_41_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // with_item _loop0_42
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
+ withitem_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = with_item_rule(p)) // with_item
+ &&
+ (seq = _loop0_42_rule(p)) // _loop0_42
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_41[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_44: ',' with_item
+static asdl_seq *
+_loop0_44_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' with_item
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
+ Token * _literal;
+ withitem_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = with_item_rule(p)) // with_item
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_43: with_item _loop0_44
+static asdl_seq *
+_gather_43_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // with_item _loop0_44
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
+ withitem_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = with_item_rule(p)) // with_item
+ &&
+ (seq = _loop0_44_rule(p)) // _loop0_44
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_43[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_46: ',' with_item
+static asdl_seq *
+_loop0_46_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' with_item
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
+ Token * _literal;
+ withitem_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = with_item_rule(p)) // with_item
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_45: with_item _loop0_46
+static asdl_seq *
+_gather_45_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // with_item _loop0_46
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
+ withitem_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = with_item_rule(p)) // with_item
+ &&
+ (seq = _loop0_46_rule(p)) // _loop0_46
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_45[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_47: ',' | ')' | ':'
+static void *
+_tmp_47_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ','
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
+ }
+ { // ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
+ }
+ { // ':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_48: except_block
+static asdl_seq *
+_loop1_48_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // except_block
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
+ excepthandler_ty except_block_var;
+ while (
+ (except_block_var = except_block_rule(p)) // except_block
+ )
+ {
+ _res = except_block_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_49: 'as' NAME
+static void *
+_tmp_49_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'as' NAME
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ Token * _keyword;
+ expr_ty z;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
+ &&
+ (z = _PyPegen_name_token(p)) // NAME
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_49[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_50: 'from' expression
+static void *
+_tmp_50_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'from' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
+ Token * _keyword;
+ expr_ty z;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
+ &&
+ (z = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_50[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_51: '->' expression
+static void *
+_tmp_51_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '->' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+ Token * _literal;
+ expr_ty z;
+ if (
+ (_literal = _PyPegen_expect_token(p, 51)) // token='->'
+ &&
+ (z = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_52: '->' expression
+static void *
+_tmp_52_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '->' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+ Token * _literal;
+ expr_ty z;
+ if (
+ (_literal = _PyPegen_expect_token(p, 51)) // token='->'
+ &&
+ (z = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_53: NEWLINE INDENT
+static void *
+_tmp_53_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // NEWLINE INDENT
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
+ Token * indent_var;
+ Token * newline_var;
+ if (
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ &&
+ (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
+ _res = _PyPegen_dummy_name(p, newline_var, indent_var);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_54: param_no_default
+static asdl_seq *
+_loop0_54_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ arg_ty param_no_default_var;
+ while (
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ _res = param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_55: param_with_default
+static asdl_seq *
+_loop0_55_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ NameDefaultPair* param_with_default_var;
+ while (
+ (param_with_default_var = param_with_default_rule(p)) // param_with_default
+ )
+ {
+ _res = param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_56: param_with_default
+static asdl_seq *
+_loop0_56_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ NameDefaultPair* param_with_default_var;
+ while (
+ (param_with_default_var = param_with_default_rule(p)) // param_with_default
+ )
+ {
+ _res = param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_57: param_no_default
+static asdl_seq *
+_loop1_57_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ arg_ty param_no_default_var;
+ while (
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ _res = param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_58: param_with_default
+static asdl_seq *
+_loop0_58_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ NameDefaultPair* param_with_default_var;
+ while (
+ (param_with_default_var = param_with_default_rule(p)) // param_with_default
+ )
+ {
+ _res = param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_59: param_with_default
+static asdl_seq *
+_loop1_59_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ NameDefaultPair* param_with_default_var;
+ while (
+ (param_with_default_var = param_with_default_rule(p)) // param_with_default
+ )
+ {
+ _res = param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_60: param_no_default
+static asdl_seq *
+_loop1_60_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ arg_ty param_no_default_var;
+ while (
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ _res = param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_61: param_no_default
+static asdl_seq *
+_loop1_61_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ arg_ty param_no_default_var;
+ while (
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ _res = param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_62: param_no_default
+static asdl_seq *
+_loop0_62_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ arg_ty param_no_default_var;
+ while (
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ _res = param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_63: param_with_default
+static asdl_seq *
+_loop1_63_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ NameDefaultPair* param_with_default_var;
+ while (
+ (param_with_default_var = param_with_default_rule(p)) // param_with_default
+ )
+ {
+ _res = param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_64: param_no_default
+static asdl_seq *
+_loop0_64_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ arg_ty param_no_default_var;
+ while (
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ _res = param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_65: param_with_default
+static asdl_seq *
+_loop1_65_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ NameDefaultPair* param_with_default_var;
+ while (
+ (param_with_default_var = param_with_default_rule(p)) // param_with_default
+ )
+ {
+ _res = param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_66: param_maybe_default
+static asdl_seq *
+_loop0_66_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_maybe_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
+ NameDefaultPair* param_maybe_default_var;
+ while (
+ (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
+ )
+ {
+ _res = param_maybe_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_67: param_maybe_default
+static asdl_seq *
+_loop1_67_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_maybe_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
+ NameDefaultPair* param_maybe_default_var;
+ while (
+ (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
+ )
+ {
+ _res = param_maybe_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_68: ('@' named_expression NEWLINE)
+static asdl_seq *
+_loop1_68_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ('@' named_expression NEWLINE)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
+ void *_tmp_140_var;
+ while (
+ (_tmp_140_var = _tmp_140_rule(p)) // '@' named_expression NEWLINE
+ )
+ {
+ _res = _tmp_140_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_69: '(' arguments? ')'
+static void *
+_tmp_69_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '(' arguments? ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
+ Token * _literal;
+ Token * _literal_1;
+ void *z;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ &&
+ (z = arguments_rule(p), !p->error_indicator) // arguments?
+ &&
+ (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_70: (',' star_expression)
+static asdl_seq *
+_loop1_70_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // (',' star_expression)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
+ void *_tmp_141_var;
+ while (
+ (_tmp_141_var = _tmp_141_rule(p)) // ',' star_expression
+ )
+ {
+ _res = _tmp_141_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_72: ',' star_named_expression
+static asdl_seq *
+_loop0_72_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' star_named_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = star_named_expression_rule(p)) // star_named_expression
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_71: star_named_expression _loop0_72
+static asdl_seq *
+_gather_71_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // star_named_expression _loop0_72
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = star_named_expression_rule(p)) // star_named_expression
+ &&
+ (seq = _loop0_72_rule(p)) // _loop0_72
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_73: (',' expression)
+static asdl_seq *
+_loop1_73_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // (',' expression)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
+ void *_tmp_142_var;
+ while (
+ (_tmp_142_var = _tmp_142_rule(p)) // ',' expression
+ )
+ {
+ _res = _tmp_142_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_74: lambda_param_no_default
+static asdl_seq *
+_loop0_74_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ arg_ty lambda_param_no_default_var;
+ while (
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ _res = lambda_param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_75: lambda_param_with_default
+static asdl_seq *
+_loop0_75_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ NameDefaultPair* lambda_param_with_default_var;
+ while (
+ (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
+ )
+ {
+ _res = lambda_param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_76: lambda_param_with_default
+static asdl_seq *
+_loop0_76_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ NameDefaultPair* lambda_param_with_default_var;
+ while (
+ (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
+ )
+ {
+ _res = lambda_param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_77: lambda_param_no_default
+static asdl_seq *
+_loop1_77_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ arg_ty lambda_param_no_default_var;
+ while (
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ _res = lambda_param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_78: lambda_param_with_default
+static asdl_seq *
+_loop0_78_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ NameDefaultPair* lambda_param_with_default_var;
+ while (
+ (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
+ )
+ {
+ _res = lambda_param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_79: lambda_param_with_default
+static asdl_seq *
+_loop1_79_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ NameDefaultPair* lambda_param_with_default_var;
+ while (
+ (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
+ )
+ {
+ _res = lambda_param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_80: lambda_param_no_default
+static asdl_seq *
+_loop1_80_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ arg_ty lambda_param_no_default_var;
+ while (
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ _res = lambda_param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_81: lambda_param_no_default
+static asdl_seq *
+_loop1_81_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ arg_ty lambda_param_no_default_var;
+ while (
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ _res = lambda_param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_82: lambda_param_no_default
+static asdl_seq *
+_loop0_82_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ arg_ty lambda_param_no_default_var;
+ while (
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ _res = lambda_param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_83: lambda_param_with_default
+static asdl_seq *
+_loop1_83_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ NameDefaultPair* lambda_param_with_default_var;
+ while (
+ (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
+ )
+ {
+ _res = lambda_param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_84: lambda_param_no_default
+static asdl_seq *
+_loop0_84_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ arg_ty lambda_param_no_default_var;
+ while (
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ _res = lambda_param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_85: lambda_param_with_default
+static asdl_seq *
+_loop1_85_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ NameDefaultPair* lambda_param_with_default_var;
+ while (
+ (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
+ )
+ {
+ _res = lambda_param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_86: lambda_param_maybe_default
+static asdl_seq *
+_loop0_86_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_maybe_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
+ NameDefaultPair* lambda_param_maybe_default_var;
+ while (
+ (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
+ )
+ {
+ _res = lambda_param_maybe_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_87: lambda_param_maybe_default
+static asdl_seq *
+_loop1_87_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_maybe_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
+ NameDefaultPair* lambda_param_maybe_default_var;
+ while (
+ (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
+ )
+ {
+ _res = lambda_param_maybe_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_88: ('or' conjunction)
+static asdl_seq *
+_loop1_88_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ('or' conjunction)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
+ void *_tmp_143_var;
+ while (
+ (_tmp_143_var = _tmp_143_rule(p)) // 'or' conjunction
+ )
+ {
+ _res = _tmp_143_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_89: ('and' inversion)
+static asdl_seq *
+_loop1_89_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ('and' inversion)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
+ void *_tmp_144_var;
+ while (
+ (_tmp_144_var = _tmp_144_rule(p)) // 'and' inversion
+ )
+ {
+ _res = _tmp_144_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_90: compare_op_bitwise_or_pair
+static asdl_seq *
+_loop1_90_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // compare_op_bitwise_or_pair
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
+ CmpopExprPair* compare_op_bitwise_or_pair_var;
+ while (
+ (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
+ )
+ {
+ _res = compare_op_bitwise_or_pair_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_91: '!='
+static void *
+_tmp_91_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '!='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
+ Token * tok;
+ if (
+ (tok = _PyPegen_expect_token(p, 28)) // token='!='
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
+ _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_93: ',' slice
+static asdl_seq *
+_loop0_93_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' slice
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = slice_rule(p)) // slice
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_92: slice _loop0_93
+static asdl_seq *
+_gather_92_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // slice _loop0_93
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = slice_rule(p)) // slice
+ &&
+ (seq = _loop0_93_rule(p)) // _loop0_93
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_94: ':' expression?
+static void *
+_tmp_94_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ':' expression?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
+ Token * _literal;
+ void *d;
+ if (
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ &&
+ (d = expression_rule(p), !p->error_indicator) // expression?
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
+ _res = d;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_95: tuple | group | genexp
+static void *
+_tmp_95_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // tuple
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
+ expr_ty tuple_var;
+ if (
+ (tuple_var = tuple_rule(p)) // tuple
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
+ _res = tuple_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
+ }
+ { // group
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
+ expr_ty group_var;
+ if (
+ (group_var = group_rule(p)) // group
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
+ _res = group_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
+ }
+ { // genexp
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
+ expr_ty genexp_var;
+ if (
+ (genexp_var = genexp_rule(p)) // genexp
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
+ _res = genexp_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_96: list | listcomp
+static void *
+_tmp_96_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // list
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
+ expr_ty list_var;
+ if (
+ (list_var = list_rule(p)) // list
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
+ _res = list_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
+ }
+ { // listcomp
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
+ expr_ty listcomp_var;
+ if (
+ (listcomp_var = listcomp_rule(p)) // listcomp
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
+ _res = listcomp_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_97: dict | set | dictcomp | setcomp
+static void *
+_tmp_97_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // dict
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
+ expr_ty dict_var;
+ if (
+ (dict_var = dict_rule(p)) // dict
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
+ _res = dict_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
+ }
+ { // set
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
+ expr_ty set_var;
+ if (
+ (set_var = set_rule(p)) // set
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
+ _res = set_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
+ }
+ { // dictcomp
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
+ expr_ty dictcomp_var;
+ if (
+ (dictcomp_var = dictcomp_rule(p)) // dictcomp
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
+ _res = dictcomp_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
+ }
+ { // setcomp
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
+ expr_ty setcomp_var;
+ if (
+ (setcomp_var = setcomp_rule(p)) // setcomp
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
+ _res = setcomp_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_98: STRING
+static asdl_seq *
+_loop1_98_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // STRING
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
+ expr_ty string_var;
+ while (
+ (string_var = _PyPegen_string_token(p)) // STRING
+ )
+ {
+ _res = string_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_99: star_named_expression ',' star_named_expressions?
+static void *
+_tmp_99_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // star_named_expression ',' star_named_expressions?
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
+ Token * _literal;
+ expr_ty y;
+ void *z;
+ if (
+ (y = star_named_expression_rule(p)) // star_named_expression
+ &&
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
+ _res = _PyPegen_seq_insert_in_front ( p , y , z );
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_100: yield_expr | named_expression
+static void *
+_tmp_100_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // yield_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ expr_ty yield_expr_var;
+ if (
+ (yield_expr_var = yield_expr_rule(p)) // yield_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ _res = yield_expr_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
+ }
+ { // named_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
+ expr_ty named_expression_var;
+ if (
+ (named_expression_var = named_expression_rule(p)) // named_expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
+ _res = named_expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_102: ',' double_starred_kvpair
+static asdl_seq *
+_loop0_102_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' double_starred_kvpair
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
+ Token * _literal;
+ KeyValuePair* elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_101: double_starred_kvpair _loop0_102
+static asdl_seq *
+_gather_101_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // double_starred_kvpair _loop0_102
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
+ KeyValuePair* elem;
+ asdl_seq * seq;
+ if (
+ (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
+ &&
+ (seq = _loop0_102_rule(p)) // _loop0_102
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_103: for_if_clause
+static asdl_seq *
+_loop1_103_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // for_if_clause
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
+ comprehension_ty for_if_clause_var;
+ while (
+ (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
+ )
+ {
+ _res = for_if_clause_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_104: ('if' disjunction)
+static asdl_seq *
+_loop0_104_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ('if' disjunction)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
+ void *_tmp_145_var;
+ while (
+ (_tmp_145_var = _tmp_145_rule(p)) // 'if' disjunction
+ )
+ {
+ _res = _tmp_145_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_105: ('if' disjunction)
+static asdl_seq *
+_loop0_105_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ('if' disjunction)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
+ void *_tmp_146_var;
+ while (
+ (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
+ )
+ {
+ _res = _tmp_146_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_107: ',' (starred_expression | named_expression !'=')
+static asdl_seq *
+_loop0_107_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' (starred_expression | named_expression !'=')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
+ Token * _literal;
+ void *elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_106: (starred_expression | named_expression !'=') _loop0_107
+static asdl_seq *
+_gather_106_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // (starred_expression | named_expression !'=') _loop0_107
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
+ void *elem;
+ asdl_seq * seq;
+ if (
+ (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
+ &&
+ (seq = _loop0_107_rule(p)) // _loop0_107
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_106[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_108: ',' kwargs
+static void *
+_tmp_108_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ',' kwargs
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
+ Token * _literal;
+ asdl_seq* k;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (k = kwargs_rule(p)) // kwargs
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
+ _res = k;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_110: ',' kwarg_or_starred
+static asdl_seq *
+_loop0_110_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' kwarg_or_starred
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
+ Token * _literal;
+ KeywordOrStarred* elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_109: kwarg_or_starred _loop0_110
+static asdl_seq *
+_gather_109_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // kwarg_or_starred _loop0_110
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
+ KeywordOrStarred* elem;
+ asdl_seq * seq;
+ if (
+ (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
+ &&
+ (seq = _loop0_110_rule(p)) // _loop0_110
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_112: ',' kwarg_or_double_starred
+static asdl_seq *
+_loop0_112_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' kwarg_or_double_starred
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
+ Token * _literal;
+ KeywordOrStarred* elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_111: kwarg_or_double_starred _loop0_112
+static asdl_seq *
+_gather_111_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // kwarg_or_double_starred _loop0_112
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
+ KeywordOrStarred* elem;
+ asdl_seq * seq;
+ if (
+ (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
+ &&
+ (seq = _loop0_112_rule(p)) // _loop0_112
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_114: ',' kwarg_or_starred
+static asdl_seq *
+_loop0_114_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' kwarg_or_starred
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
+ Token * _literal;
+ KeywordOrStarred* elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_113: kwarg_or_starred _loop0_114
+static asdl_seq *
+_gather_113_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // kwarg_or_starred _loop0_114
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
+ KeywordOrStarred* elem;
+ asdl_seq * seq;
+ if (
+ (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
+ &&
+ (seq = _loop0_114_rule(p)) // _loop0_114
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_116: ',' kwarg_or_double_starred
+static asdl_seq *
+_loop0_116_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' kwarg_or_double_starred
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
+ Token * _literal;
+ KeywordOrStarred* elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_115: kwarg_or_double_starred _loop0_116
+static asdl_seq *
+_gather_115_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // kwarg_or_double_starred _loop0_116
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
+ KeywordOrStarred* elem;
+ asdl_seq * seq;
+ if (
+ (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
+ &&
+ (seq = _loop0_116_rule(p)) // _loop0_116
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_117: (',' star_target)
+static asdl_seq *
+_loop0_117_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // (',' star_target)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
+ void *_tmp_148_var;
+ while (
+ (_tmp_148_var = _tmp_148_rule(p)) // ',' star_target
+ )
+ {
+ _res = _tmp_148_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_119: ',' star_target
+static asdl_seq *
+_loop0_119_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' star_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = star_target_rule(p)) // star_target
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_118: star_target _loop0_119
+static asdl_seq *
+_gather_118_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // star_target _loop0_119
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = star_target_rule(p)) // star_target
+ &&
+ (seq = _loop0_119_rule(p)) // _loop0_119
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_120: (',' star_target)
+static asdl_seq *
+_loop1_120_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // (',' star_target)
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
+ void *_tmp_149_var;
+ while (
+ (_tmp_149_var = _tmp_149_rule(p)) // ',' star_target
+ )
+ {
+ _res = _tmp_149_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_121: !'*' star_target
+static void *
+_tmp_121_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // !'*' star_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
+ expr_ty star_target_var;
+ if (
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
+ &&
+ (star_target_var = star_target_rule(p)) // star_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
+ _res = star_target_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_123: ',' del_target
+static asdl_seq *
+_loop0_123_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // ',' del_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
+ Token * _literal;
+ expr_ty elem;
+ while (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (elem = del_target_rule(p)) // del_target
+ )
+ {
+ _res = elem;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _gather_122: del_target _loop0_123
+static asdl_seq *
+_gather_122_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ asdl_seq * _res = NULL;
+ int _mark = p->mark;
+ { // del_target _loop0_123
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
+ expr_ty elem;
+ asdl_seq * seq;
+ if (
+ (elem = del_target_rule(p)) // del_target
+ &&
+ (seq = _loop0_123_rule(p)) // _loop0_123
+ )
+ {
+ D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
+ _res = _PyPegen_seq_insert_in_front(p, elem, seq);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_124: args | expression for_if_clauses
+static void *
+_tmp_124_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // args
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
+ expr_ty args_var;
+ if (
+ (args_var = args_rule(p)) // args
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
+ _res = args_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
+ }
+ { // expression for_if_clauses
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
+ expr_ty expression_var;
+ asdl_seq* for_if_clauses_var;
+ if (
+ (expression_var = expression_rule(p)) // expression
+ &&
+ (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
+ _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_125: NAME '='
+static void *
+_tmp_125_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // NAME '='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
+ Token * _literal;
+ expr_ty name_var;
+ if (
+ (name_var = _PyPegen_name_token(p)) // NAME
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
+ _res = _PyPegen_dummy_name(p, name_var, _literal);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_126: star_named_expressions
+static asdl_seq *
+_loop0_126_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // star_named_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
+ asdl_seq* star_named_expressions_var;
+ while (
+ (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
+ )
+ {
+ _res = star_named_expressions_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_127: (star_targets '=')
+static asdl_seq *
+_loop0_127_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // (star_targets '=')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
+ void *_tmp_150_var;
+ while (
+ (_tmp_150_var = _tmp_150_rule(p)) // star_targets '='
+ )
+ {
+ _res = _tmp_150_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop0_128: (star_targets '=')
+static asdl_seq *
+_loop0_128_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // (star_targets '=')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
+ void *_tmp_151_var;
+ while (
+ (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
+ )
+ {
+ _res = _tmp_151_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_129: yield_expr | star_expressions
+static void *
+_tmp_129_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // yield_expr
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ expr_ty yield_expr_var;
+ if (
+ (yield_expr_var = yield_expr_rule(p)) // yield_expr
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
+ _res = yield_expr_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
+ }
+ { // star_expressions
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ expr_ty star_expressions_var;
+ if (
+ (star_expressions_var = star_expressions_rule(p)) // star_expressions
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
+ _res = star_expressions_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_130: '[' | '(' | '{'
+static void *
+_tmp_130_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '['
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 9)) // token='['
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
+ }
+ { // '('
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 7)) // token='('
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
+ }
+ { // '{'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 25)) // token='{'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_131: param_no_default
+static asdl_seq *
+_loop0_131_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
+ arg_ty param_no_default_var;
+ while (
+ (param_no_default_var = param_no_default_rule(p)) // param_no_default
+ )
+ {
+ _res = param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_132: slash_with_default | param_with_default+
+static void *
+_tmp_132_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // slash_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
+ SlashWithDefault* slash_with_default_var;
+ if (
+ (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
+ _res = slash_with_default_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
+ }
+ { // param_with_default+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
+ asdl_seq * _loop1_152_var;
+ if (
+ (_loop1_152_var = _loop1_152_rule(p)) // param_with_default+
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
+ _res = _loop1_152_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop0_133: lambda_param_no_default
+static asdl_seq *
+_loop0_133_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_no_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
+ arg_ty lambda_param_no_default_var;
+ while (
+ (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
+ )
+ {
+ _res = lambda_param_no_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_134: lambda_slash_with_default | lambda_param_with_default+
+static void *
+_tmp_134_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // lambda_slash_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
+ SlashWithDefault* lambda_slash_with_default_var;
+ if (
+ (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
+ _res = lambda_slash_with_default_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
+ }
+ { // lambda_param_with_default+
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
+ asdl_seq * _loop1_153_var;
+ if (
+ (_loop1_153_var = _loop1_153_rule(p)) // lambda_param_with_default+
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
+ _res = _loop1_153_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_135: ')' | ',' (')' | '**')
+static void *
+_tmp_135_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
+ }
+ { // ',' (')' | '**')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
+ Token * _literal;
+ void *_tmp_154_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_tmp_154_var = _tmp_154_rule(p)) // ')' | '**'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
+ _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_136: ':' | ',' (':' | '**')
+static void *
+_tmp_136_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
+ }
+ { // ',' (':' | '**')
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
+ Token * _literal;
+ void *_tmp_155_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (_tmp_155_var = _tmp_155_rule(p)) // ':' | '**'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
+ _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_137: star_targets '='
+static void *
+_tmp_137_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // star_targets '='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ Token * _literal;
+ expr_ty z;
+ if (
+ (z = star_targets_rule(p)) // star_targets
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_138: '.' | '...'
+static void *
+_tmp_138_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '.'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
+ }
+ { // '...'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 52)) // token='...'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_139: '.' | '...'
+static void *
+_tmp_139_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '.'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 23)) // token='.'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
+ }
+ { // '...'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 52)) // token='...'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_140: '@' named_expression NEWLINE
+static void *
+_tmp_140_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // '@' named_expression NEWLINE
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
+ Token * _literal;
+ expr_ty f;
+ Token * newline_var;
+ if (
+ (_literal = _PyPegen_expect_token(p, 49)) // token='@'
+ &&
+ (f = named_expression_rule(p)) // named_expression
+ &&
+ (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
+ _res = f;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_141: ',' star_expression
+static void *
+_tmp_141_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ',' star_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
+ Token * _literal;
+ expr_ty c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (c = star_expression_rule(p)) // star_expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
+ _res = c;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_142: ',' expression
+static void *
+_tmp_142_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ',' expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ Token * _literal;
+ expr_ty c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (c = expression_rule(p)) // expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
+ _res = c;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_143: 'or' conjunction
+static void *
+_tmp_143_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'or' conjunction
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
+ Token * _keyword;
+ expr_ty c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
+ &&
+ (c = conjunction_rule(p)) // conjunction
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
+ _res = c;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_144: 'and' inversion
+static void *
+_tmp_144_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'and' inversion
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
+ Token * _keyword;
+ expr_ty c;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
+ &&
+ (c = inversion_rule(p)) // inversion
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
+ _res = c;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_145: 'if' disjunction
+static void *
+_tmp_145_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'if' disjunction
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ Token * _keyword;
+ expr_ty z;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
+ &&
+ (z = disjunction_rule(p)) // disjunction
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_146: 'if' disjunction
+static void *
+_tmp_146_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // 'if' disjunction
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ Token * _keyword;
+ expr_ty z;
+ if (
+ (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
+ &&
+ (z = disjunction_rule(p)) // disjunction
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
+ _res = z;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_147: starred_expression | named_expression !'='
+static void *
+_tmp_147_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // starred_expression
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+ expr_ty starred_expression_var;
+ if (
+ (starred_expression_var = starred_expression_rule(p)) // starred_expression
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
+ _res = starred_expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
+ }
+ { // named_expression !'='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
+ expr_ty named_expression_var;
+ if (
+ (named_expression_var = named_expression_rule(p)) // named_expression
+ &&
+ _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
+ _res = named_expression_var;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_148: ',' star_target
+static void *
+_tmp_148_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ',' star_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ Token * _literal;
+ expr_ty c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (c = star_target_rule(p)) // star_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ _res = c;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_149: ',' star_target
+static void *
+_tmp_149_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ',' star_target
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ Token * _literal;
+ expr_ty c;
+ if (
+ (_literal = _PyPegen_expect_token(p, 12)) // token=','
+ &&
+ (c = star_target_rule(p)) // star_target
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
+ _res = c;
+ if (_res == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ p->level--;
+ return NULL;
+ }
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_150: star_targets '='
+static void *
+_tmp_150_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // star_targets '='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ Token * _literal;
+ expr_ty star_targets_var;
+ if (
+ (star_targets_var = star_targets_rule(p)) // star_targets
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_151: star_targets '='
+static void *
+_tmp_151_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // star_targets '='
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ Token * _literal;
+ expr_ty star_targets_var;
+ if (
+ (star_targets_var = star_targets_rule(p)) // star_targets
+ &&
+ (_literal = _PyPegen_expect_token(p, 22)) // token='='
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
+ _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _loop1_152: param_with_default
+static asdl_seq *
+_loop1_152_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
+ NameDefaultPair* param_with_default_var;
+ while (
+ (param_with_default_var = param_with_default_rule(p)) // param_with_default
+ )
+ {
+ _res = param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _loop1_153: lambda_param_with_default
+static asdl_seq *
+_loop1_153_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void *_res = NULL;
+ int _mark = p->mark;
+ int _start_mark = p->mark;
+ void **_children = PyMem_Malloc(sizeof(void *));
+ if (!_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ ssize_t _children_capacity = 1;
+ ssize_t _n = 0;
+ { // lambda_param_with_default
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _loop1_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
+ NameDefaultPair* lambda_param_with_default_var;
+ while (
+ (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
+ )
+ {
+ _res = lambda_param_with_default_var;
+ if (_n == _children_capacity) {
+ _children_capacity *= 2;
+ void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
+ if (!_new_children) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ _children = _new_children;
+ }
+ _children[_n++] = _res;
+ _mark = p->mark;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
+ }
+ if (_n == 0 || p->error_indicator) {
+ PyMem_Free(_children);
+ p->level--;
+ return NULL;
+ }
+ asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
+ if (!_seq) {
+ PyMem_Free(_children);
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ p->level--;
+ return NULL;
+ }
+ for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
+ PyMem_Free(_children);
+ _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
+ p->level--;
+ return _seq;
+}
+
+// _tmp_154: ')' | '**'
+static void *
+_tmp_154_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ')'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 8)) // token=')'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
+ }
+ { // '**'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+// _tmp_155: ':' | '**'
+static void *
+_tmp_155_rule(Parser *p)
+{
+ if (p->level++ == MAXSTACK) {
+ p->error_indicator = 1;
+ PyErr_NoMemory();
+ }
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ void * _res = NULL;
+ int _mark = p->mark;
+ { // ':'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 11)) // token=':'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
+ }
+ { // '**'
+ if (p->error_indicator) {
+ p->level--;
+ return NULL;
+ }
+ D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
+ Token * _literal;
+ if (
+ (_literal = _PyPegen_expect_token(p, 35)) // token='**'
+ )
+ {
+ D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
+ _res = _literal;
+ goto done;
+ }
+ p->mark = _mark;
+ D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
+ }
+ _res = NULL;
+ done:
+ p->level--;
+ return _res;
+}
+
+void *
+_PyPegen_parse(Parser *p)
+{
+ // Initialize keywords
+ p->keywords = reserved_keywords;
+ p->n_keyword_lists = n_keyword_lists;
+
+ // Run parser
+ void *result = NULL;
+ if (p->start_rule == Py_file_input) {
+ result = file_rule(p);
+ } else if (p->start_rule == Py_single_input) {
+ result = interactive_rule(p);
+ } else if (p->start_rule == Py_eval_input) {
+ result = eval_rule(p);
+ } else if (p->start_rule == Py_func_type_input) {
+ result = func_type_rule(p);
+ } else if (p->start_rule == Py_fstring_input) {
+ result = fstring_rule(p);
+ }
+
+ return result;
+}
+
+// The end
diff --git a/contrib/tools/python3/src/Parser/pegen/parse_string.c b/contrib/tools/python3/src/Parser/pegen/parse_string.c
index 6b113c966b..f1df2c46a6 100644
--- a/contrib/tools/python3/src/Parser/pegen/parse_string.c
+++ b/contrib/tools/python3/src/Parser/pegen/parse_string.c
@@ -1,1229 +1,1229 @@
-#include <stdbool.h>
-
-#include <Python.h>
-
-#include "../tokenizer.h"
-#include "pegen.h"
-#include "parse_string.h"
-
-//// STRING HANDLING FUNCTIONS ////
-
-// These functions are ported directly from Python/ast.c with some modifications
-// to account for the use of "Parser *p", the fact that don't have parser nodes
-// to pass around and the usage of some specialized APIs present only in this
-// file (like "_PyPegen_raise_syntax_error").
-
-static int
-warn_invalid_escape_sequence(Parser *p, unsigned char first_invalid_escape_char, Token *t)
-{
- PyObject *msg =
- PyUnicode_FromFormat("invalid escape sequence \\%c", first_invalid_escape_char);
- if (msg == NULL) {
- return -1;
- }
- if (PyErr_WarnExplicitObject(PyExc_DeprecationWarning, msg, p->tok->filename,
- t->lineno, NULL, NULL) < 0) {
- if (PyErr_ExceptionMatches(PyExc_DeprecationWarning)) {
- /* Replace the DeprecationWarning exception with a SyntaxError
- to get a more accurate error report */
- PyErr_Clear();
-
- /* This is needed, in order for the SyntaxError to point to the token t,
- since _PyPegen_raise_error uses p->tokens[p->fill - 1] for the
- error location, if p->known_err_token is not set. */
- p->known_err_token = t;
- RAISE_SYNTAX_ERROR("invalid escape sequence \\%c", first_invalid_escape_char);
- }
- Py_DECREF(msg);
- return -1;
- }
- Py_DECREF(msg);
- return 0;
-}
-
-static PyObject *
-decode_utf8(const char **sPtr, const char *end)
-{
- const char *s;
- const char *t;
- t = s = *sPtr;
- while (s < end && (*s & 0x80)) {
- s++;
- }
- *sPtr = s;
- return PyUnicode_DecodeUTF8(t, s - t, NULL);
-}
-
-static PyObject *
-decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token *t)
-{
- PyObject *v;
- PyObject *u;
- char *buf;
- char *p;
- const char *end;
-
- /* check for integer overflow */
- if (len > SIZE_MAX / 6) {
- return NULL;
- }
- /* "ä" (2 bytes) may become "\U000000E4" (10 bytes), or 1:5
- "\ä" (3 bytes) may become "\u005c\U000000E4" (16 bytes), or ~1:6 */
- u = PyBytes_FromStringAndSize((char *)NULL, len * 6);
- if (u == NULL) {
- return NULL;
- }
- p = buf = PyBytes_AsString(u);
- if (p == NULL) {
- return NULL;
- }
- end = s + len;
- while (s < end) {
- if (*s == '\\') {
- *p++ = *s++;
- if (s >= end || *s & 0x80) {
- strcpy(p, "u005c");
- p += 5;
- if (s >= end) {
- break;
- }
- }
- }
- if (*s & 0x80) {
- PyObject *w;
- int kind;
- void *data;
- Py_ssize_t w_len;
- Py_ssize_t i;
- w = decode_utf8(&s, end);
- if (w == NULL) {
- Py_DECREF(u);
- return NULL;
- }
- kind = PyUnicode_KIND(w);
- data = PyUnicode_DATA(w);
- w_len = PyUnicode_GET_LENGTH(w);
- for (i = 0; i < w_len; i++) {
- Py_UCS4 chr = PyUnicode_READ(kind, data, i);
- sprintf(p, "\\U%08x", chr);
- p += 10;
- }
- /* Should be impossible to overflow */
- assert(p - buf <= PyBytes_GET_SIZE(u));
- Py_DECREF(w);
- }
- else {
- *p++ = *s++;
- }
- }
- len = p - buf;
- s = buf;
-
- const char *first_invalid_escape;
- v = _PyUnicode_DecodeUnicodeEscapeInternal(s, len, NULL, NULL, &first_invalid_escape);
-
- if (v != NULL && first_invalid_escape != NULL) {
- if (warn_invalid_escape_sequence(parser, *first_invalid_escape, t) < 0) {
- /* We have not decref u before because first_invalid_escape points
- inside u. */
- Py_XDECREF(u);
- Py_DECREF(v);
- return NULL;
- }
- }
- Py_XDECREF(u);
- return v;
-}
-
-static PyObject *
-decode_bytes_with_escapes(Parser *p, const char *s, Py_ssize_t len, Token *t)
-{
- const char *first_invalid_escape;
- PyObject *result = _PyBytes_DecodeEscape(s, len, NULL, &first_invalid_escape);
- if (result == NULL) {
- return NULL;
- }
-
- if (first_invalid_escape != NULL) {
- if (warn_invalid_escape_sequence(p, *first_invalid_escape, t) < 0) {
- Py_DECREF(result);
- return NULL;
- }
- }
- return result;
-}
-
-/* s must include the bracketing quote characters, and r, b, u,
- &/or f prefixes (if any), and embedded escape sequences (if any).
- _PyPegen_parsestr parses it, and sets *result to decoded Python string object.
- If the string is an f-string, set *fstr and *fstrlen to the unparsed
- string object. Return 0 if no errors occurred. */
-int
-_PyPegen_parsestr(Parser *p, int *bytesmode, int *rawmode, PyObject **result,
- const char **fstr, Py_ssize_t *fstrlen, Token *t)
-{
- const char *s = PyBytes_AsString(t->bytes);
- if (s == NULL) {
- return -1;
- }
-
- size_t len;
- int quote = Py_CHARMASK(*s);
- int fmode = 0;
- *bytesmode = 0;
- *rawmode = 0;
- *result = NULL;
- *fstr = NULL;
- if (Py_ISALPHA(quote)) {
- while (!*bytesmode || !*rawmode) {
- if (quote == 'b' || quote == 'B') {
- quote =(unsigned char)*++s;
- *bytesmode = 1;
- }
- else if (quote == 'u' || quote == 'U') {
- quote = (unsigned char)*++s;
- }
- else if (quote == 'r' || quote == 'R') {
- quote = (unsigned char)*++s;
- *rawmode = 1;
- }
- else if (quote == 'f' || quote == 'F') {
- quote = (unsigned char)*++s;
- fmode = 1;
- }
- else {
- break;
- }
- }
- }
-
- /* fstrings are only allowed in Python 3.6 and greater */
- if (fmode && p->feature_version < 6) {
- p->error_indicator = 1;
- RAISE_SYNTAX_ERROR("Format strings are only supported in Python 3.6 and greater");
- return -1;
- }
-
- if (fmode && *bytesmode) {
- PyErr_BadInternalCall();
- return -1;
- }
- if (quote != '\'' && quote != '\"') {
- PyErr_BadInternalCall();
- return -1;
- }
- /* Skip the leading quote char. */
- s++;
- len = strlen(s);
- if (len > INT_MAX) {
- PyErr_SetString(PyExc_OverflowError, "string to parse is too long");
- return -1;
- }
- if (s[--len] != quote) {
- /* Last quote char must match the first. */
- PyErr_BadInternalCall();
- return -1;
- }
- if (len >= 4 && s[0] == quote && s[1] == quote) {
- /* A triple quoted string. We've already skipped one quote at
- the start and one at the end of the string. Now skip the
- two at the start. */
- s += 2;
- len -= 2;
- /* And check that the last two match. */
- if (s[--len] != quote || s[--len] != quote) {
- PyErr_BadInternalCall();
- return -1;
- }
- }
-
- if (fmode) {
- /* Just return the bytes. The caller will parse the resulting
- string. */
- *fstr = s;
- *fstrlen = len;
- return 0;
- }
-
- /* Not an f-string. */
- /* Avoid invoking escape decoding routines if possible. */
- *rawmode = *rawmode || strchr(s, '\\') == NULL;
- if (*bytesmode) {
- /* Disallow non-ASCII characters. */
- const char *ch;
- for (ch = s; *ch; ch++) {
- if (Py_CHARMASK(*ch) >= 0x80) {
- RAISE_SYNTAX_ERROR(
- "bytes can only contain ASCII "
- "literal characters.");
- return -1;
- }
- }
- if (*rawmode) {
- *result = PyBytes_FromStringAndSize(s, len);
- }
- else {
- *result = decode_bytes_with_escapes(p, s, len, t);
- }
- }
- else {
- if (*rawmode) {
- *result = PyUnicode_DecodeUTF8Stateful(s, len, NULL, NULL);
- }
- else {
- *result = decode_unicode_with_escapes(p, s, len, t);
- }
- }
- return *result == NULL ? -1 : 0;
-}
-
-
-
-// FSTRING STUFF
-
-/* Fix locations for the given node and its children.
-
- `parent` is the enclosing node.
- `expr_start` is the starting position of the expression (pointing to the open brace).
- `n` is the node which locations are going to be fixed relative to parent.
- `expr_str` is the child node's string representation, including braces.
-*/
-static bool
-fstring_find_expr_location(Token *parent, const char* expr_start, char *expr_str, int *p_lines, int *p_cols)
-{
- *p_lines = 0;
- *p_cols = 0;
- assert(expr_start != NULL && *expr_start == '{');
- if (parent && parent->bytes) {
- char *parent_str = PyBytes_AsString(parent->bytes);
- if (!parent_str) {
- return false;
- }
- // The following is needed, in order to correctly shift the column
- // offset, in the case that (disregarding any whitespace) a newline
- // immediately follows the opening curly brace of the fstring expression.
- bool newline_after_brace = 1;
- const char *start = expr_start + 1;
- while (start && *start != '}' && *start != '\n') {
- if (*start != ' ' && *start != '\t' && *start != '\f') {
- newline_after_brace = 0;
- break;
- }
- start++;
- }
-
- // Account for the characters from the last newline character to our
- // left until the beginning of expr_start.
- if (!newline_after_brace) {
- start = expr_start;
- while (start > parent_str && *start != '\n') {
- start--;
- }
- *p_cols += (int)(expr_start - start);
- }
- /* adjust the start based on the number of newlines encountered
- before the f-string expression */
- for (const char *p = parent_str; p < expr_start; p++) {
- if (*p == '\n') {
- (*p_lines)++;
- }
- }
- }
- return true;
-}
-
-
-/* Compile this expression in to an expr_ty. Add parens around the
- expression, in order to allow leading spaces in the expression. */
-static expr_ty
-fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end,
- Token *t)
-{
- expr_ty expr = NULL;
- char *str;
- Py_ssize_t len;
- const char *s;
- expr_ty result = NULL;
-
- assert(expr_end >= expr_start);
- assert(*(expr_start-1) == '{');
- assert(*expr_end == '}' || *expr_end == '!' || *expr_end == ':' ||
- *expr_end == '=');
-
- /* If the substring is all whitespace, it's an error. We need to catch this
- here, and not when we call PyParser_SimpleParseStringFlagsFilename,
- because turning the expression '' in to '()' would go from being invalid
- to valid. */
- for (s = expr_start; s != expr_end; s++) {
- char c = *s;
- /* The Python parser ignores only the following whitespace
- characters (\r already is converted to \n). */
- if (!(c == ' ' || c == '\t' || c == '\n' || c == '\f')) {
- break;
- }
- }
- if (s == expr_end) {
- RAISE_SYNTAX_ERROR("f-string: empty expression not allowed");
- return NULL;
- }
-
- len = expr_end - expr_start;
- /* Allocate 3 extra bytes: open paren, close paren, null byte. */
- str = PyMem_Calloc(len + 3, sizeof(char));
- if (str == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
-
- // The call to fstring_find_expr_location is responsible for finding the column offset
- // the generated AST nodes need to be shifted to the right, which is equal to the number
- // of the f-string characters before the expression starts.
- memcpy(str+1, expr_start, len);
- int lines, cols;
- if (!fstring_find_expr_location(t, expr_start-1, str+1, &lines, &cols)) {
- PyMem_Free(str);
- return NULL;
- }
-
- // The parentheses are needed in order to allow for leading whitespace within
- // the f-string expression. This consequently gets parsed as a group (see the
- // group rule in python.gram).
- str[0] = '(';
- str[len+1] = ')';
-
- struct tok_state* tok = PyTokenizer_FromString(str, 1);
- if (tok == NULL) {
- PyMem_Free(str);
- return NULL;
- }
- Py_INCREF(p->tok->filename);
- tok->filename = p->tok->filename;
-
- Parser *p2 = _PyPegen_Parser_New(tok, Py_fstring_input, p->flags, p->feature_version,
- NULL, p->arena);
- p2->starting_lineno = t->lineno + lines - 1;
- p2->starting_col_offset = t->col_offset + cols;
-
- expr = _PyPegen_run_parser(p2);
-
- if (expr == NULL) {
- goto exit;
- }
- result = expr;
-
-exit:
- PyMem_Free(str);
- _PyPegen_Parser_Free(p2);
- PyTokenizer_Free(tok);
- return result;
-}
-
-/* Return -1 on error.
-
- Return 0 if we reached the end of the literal.
-
- Return 1 if we haven't reached the end of the literal, but we want
- the caller to process the literal up to this point. Used for
- doubled braces.
-*/
-static int
-fstring_find_literal(Parser *p, const char **str, const char *end, int raw,
- PyObject **literal, int recurse_lvl, Token *t)
-{
- /* Get any literal string. It ends when we hit an un-doubled left
- brace (which isn't part of a unicode name escape such as
- "\N{EULER CONSTANT}"), or the end of the string. */
-
- const char *s = *str;
- const char *literal_start = s;
- int result = 0;
-
- assert(*literal == NULL);
- while (s < end) {
- char ch = *s++;
- if (!raw && ch == '\\' && s < end) {
- ch = *s++;
- if (ch == 'N') {
- if (s < end && *s++ == '{') {
- while (s < end && *s++ != '}') {
- }
- continue;
- }
- break;
- }
- if (ch == '{' && warn_invalid_escape_sequence(p, ch, t) < 0) {
- return -1;
- }
- }
- if (ch == '{' || ch == '}') {
- /* Check for doubled braces, but only at the top level. If
- we checked at every level, then f'{0:{3}}' would fail
- with the two closing braces. */
- if (recurse_lvl == 0) {
- if (s < end && *s == ch) {
- /* We're going to tell the caller that the literal ends
- here, but that they should continue scanning. But also
- skip over the second brace when we resume scanning. */
- *str = s + 1;
- result = 1;
- goto done;
- }
-
- /* Where a single '{' is the start of a new expression, a
- single '}' is not allowed. */
- if (ch == '}') {
- *str = s - 1;
- RAISE_SYNTAX_ERROR("f-string: single '}' is not allowed");
- return -1;
- }
- }
- /* We're either at a '{', which means we're starting another
- expression; or a '}', which means we're at the end of this
- f-string (for a nested format_spec). */
- s--;
- break;
- }
- }
- *str = s;
- assert(s <= end);
- assert(s == end || *s == '{' || *s == '}');
-done:
- if (literal_start != s) {
- if (raw) {
- *literal = PyUnicode_DecodeUTF8Stateful(literal_start,
- s - literal_start,
- NULL, NULL);
- } else {
- *literal = decode_unicode_with_escapes(p, literal_start,
- s - literal_start, t);
- }
- if (!*literal) {
- return -1;
- }
- }
- return result;
-}
-
-/* Forward declaration because parsing is recursive. */
-static expr_ty
-fstring_parse(Parser *p, const char **str, const char *end, int raw, int recurse_lvl,
- Token *first_token, Token* t, Token *last_token);
-
-/* Parse the f-string at *str, ending at end. We know *str starts an
- expression (so it must be a '{'). Returns the FormattedValue node, which
- includes the expression, conversion character, format_spec expression, and
- optionally the text of the expression (if = is used).
-
- Note that I don't do a perfect job here: I don't make sure that a
- closing brace doesn't match an opening paren, for example. It
- doesn't need to error on all invalid expressions, just correctly
- find the end of all valid ones. Any errors inside the expression
- will be caught when we parse it later.
-
- *expression is set to the expression. For an '=' "debug" expression,
- *expr_text is set to the debug text (the original text of the expression,
- including the '=' and any whitespace around it, as a string object). If
- not a debug expression, *expr_text set to NULL. */
-static int
-fstring_find_expr(Parser *p, const char **str, const char *end, int raw, int recurse_lvl,
- PyObject **expr_text, expr_ty *expression, Token *first_token,
- Token *t, Token *last_token)
-{
- /* Return -1 on error, else 0. */
-
- const char *expr_start;
- const char *expr_end;
- expr_ty simple_expression;
- expr_ty format_spec = NULL; /* Optional format specifier. */
- int conversion = -1; /* The conversion char. Use default if not
- specified, or !r if using = and no format
- spec. */
-
- /* 0 if we're not in a string, else the quote char we're trying to
- match (single or double quote). */
- char quote_char = 0;
-
- /* If we're inside a string, 1=normal, 3=triple-quoted. */
- int string_type = 0;
-
- /* Keep track of nesting level for braces/parens/brackets in
- expressions. */
- Py_ssize_t nested_depth = 0;
- char parenstack[MAXLEVEL];
-
- *expr_text = NULL;
-
- /* Can only nest one level deep. */
- if (recurse_lvl >= 2) {
- RAISE_SYNTAX_ERROR("f-string: expressions nested too deeply");
- goto error;
- }
-
- /* The first char must be a left brace, or we wouldn't have gotten
- here. Skip over it. */
- assert(**str == '{');
- *str += 1;
-
- expr_start = *str;
- for (; *str < end; (*str)++) {
- char ch;
-
- /* Loop invariants. */
- assert(nested_depth >= 0);
- assert(*str >= expr_start && *str < end);
- if (quote_char) {
- assert(string_type == 1 || string_type == 3);
- } else {
- assert(string_type == 0);
- }
-
- ch = **str;
- /* Nowhere inside an expression is a backslash allowed. */
- if (ch == '\\') {
- /* Error: can't include a backslash character, inside
- parens or strings or not. */
- RAISE_SYNTAX_ERROR(
- "f-string expression part "
- "cannot include a backslash");
- goto error;
- }
- if (quote_char) {
- /* We're inside a string. See if we're at the end. */
- /* This code needs to implement the same non-error logic
- as tok_get from tokenizer.c, at the letter_quote
- label. To actually share that code would be a
- nightmare. But, it's unlikely to change and is small,
- so duplicate it here. Note we don't need to catch all
- of the errors, since they'll be caught when parsing the
- expression. We just need to match the non-error
- cases. Thus we can ignore \n in single-quoted strings,
- for example. Or non-terminated strings. */
- if (ch == quote_char) {
- /* Does this match the string_type (single or triple
- quoted)? */
- if (string_type == 3) {
- if (*str+2 < end && *(*str+1) == ch && *(*str+2) == ch) {
- /* We're at the end of a triple quoted string. */
- *str += 2;
- string_type = 0;
- quote_char = 0;
- continue;
- }
- } else {
- /* We're at the end of a normal string. */
- quote_char = 0;
- string_type = 0;
- continue;
- }
- }
- } else if (ch == '\'' || ch == '"') {
- /* Is this a triple quoted string? */
- if (*str+2 < end && *(*str+1) == ch && *(*str+2) == ch) {
- string_type = 3;
- *str += 2;
- } else {
- /* Start of a normal string. */
- string_type = 1;
- }
- /* Start looking for the end of the string. */
- quote_char = ch;
- } else if (ch == '[' || ch == '{' || ch == '(') {
- if (nested_depth >= MAXLEVEL) {
- RAISE_SYNTAX_ERROR("f-string: too many nested parenthesis");
- goto error;
- }
- parenstack[nested_depth] = ch;
- nested_depth++;
- } else if (ch == '#') {
- /* Error: can't include a comment character, inside parens
- or not. */
- RAISE_SYNTAX_ERROR("f-string expression part cannot include '#'");
- goto error;
- } else if (nested_depth == 0 &&
- (ch == '!' || ch == ':' || ch == '}' ||
- ch == '=' || ch == '>' || ch == '<')) {
- /* See if there's a next character. */
- if (*str+1 < end) {
- char next = *(*str+1);
-
- /* For "!=". since '=' is not an allowed conversion character,
- nothing is lost in this test. */
- if ((ch == '!' && next == '=') || /* != */
- (ch == '=' && next == '=') || /* == */
- (ch == '<' && next == '=') || /* <= */
- (ch == '>' && next == '=') /* >= */
- ) {
- *str += 1;
- continue;
- }
- /* Don't get out of the loop for these, if they're single
- chars (not part of 2-char tokens). If by themselves, they
- don't end an expression (unlike say '!'). */
- if (ch == '>' || ch == '<') {
- continue;
- }
- }
-
- /* Normal way out of this loop. */
- break;
- } else if (ch == ']' || ch == '}' || ch == ')') {
- if (!nested_depth) {
- RAISE_SYNTAX_ERROR("f-string: unmatched '%c'", ch);
- goto error;
- }
- nested_depth--;
- int opening = (unsigned char)parenstack[nested_depth];
- if (!((opening == '(' && ch == ')') ||
- (opening == '[' && ch == ']') ||
- (opening == '{' && ch == '}')))
- {
- RAISE_SYNTAX_ERROR(
- "f-string: closing parenthesis '%c' "
- "does not match opening parenthesis '%c'",
- ch, opening);
- goto error;
- }
- } else {
- /* Just consume this char and loop around. */
- }
- }
- expr_end = *str;
- /* If we leave this loop in a string or with mismatched parens, we
- don't care. We'll get a syntax error when compiling the
- expression. But, we can produce a better error message, so
- let's just do that.*/
- if (quote_char) {
- RAISE_SYNTAX_ERROR("f-string: unterminated string");
- goto error;
- }
- if (nested_depth) {
- int opening = (unsigned char)parenstack[nested_depth - 1];
- RAISE_SYNTAX_ERROR("f-string: unmatched '%c'", opening);
- goto error;
- }
-
- if (*str >= end) {
- goto unexpected_end_of_string;
- }
-
- /* Compile the expression as soon as possible, so we show errors
- related to the expression before errors related to the
- conversion or format_spec. */
- simple_expression = fstring_compile_expr(p, expr_start, expr_end, t);
- if (!simple_expression) {
- goto error;
- }
-
- /* Check for =, which puts the text value of the expression in
- expr_text. */
- if (**str == '=') {
- if (p->feature_version < 8) {
- RAISE_SYNTAX_ERROR("f-string: self documenting expressions are "
- "only supported in Python 3.8 and greater");
- goto error;
- }
- *str += 1;
-
- /* Skip over ASCII whitespace. No need to test for end of string
- here, since we know there's at least a trailing quote somewhere
- ahead. */
- while (Py_ISSPACE(**str)) {
- *str += 1;
- }
-
- /* Set *expr_text to the text of the expression. */
- *expr_text = PyUnicode_FromStringAndSize(expr_start, *str-expr_start);
- if (!*expr_text) {
- goto error;
- }
- }
-
- /* Check for a conversion char, if present. */
- if (**str == '!') {
- *str += 1;
- if (*str >= end) {
- goto unexpected_end_of_string;
- }
-
- conversion = (unsigned char)**str;
- *str += 1;
-
- /* Validate the conversion. */
- if (!(conversion == 's' || conversion == 'r' || conversion == 'a')) {
- RAISE_SYNTAX_ERROR(
- "f-string: invalid conversion character: "
- "expected 's', 'r', or 'a'");
- goto error;
- }
-
- }
-
- /* Check for the format spec, if present. */
- if (*str >= end) {
- goto unexpected_end_of_string;
- }
- if (**str == ':') {
- *str += 1;
- if (*str >= end) {
- goto unexpected_end_of_string;
- }
-
- /* Parse the format spec. */
- format_spec = fstring_parse(p, str, end, raw, recurse_lvl+1,
- first_token, t, last_token);
- if (!format_spec) {
- goto error;
- }
- }
-
- if (*str >= end || **str != '}') {
- goto unexpected_end_of_string;
- }
-
- /* We're at a right brace. Consume it. */
- assert(*str < end);
- assert(**str == '}');
- *str += 1;
-
- /* If we're in = mode (detected by non-NULL expr_text), and have no format
- spec and no explicit conversion, set the conversion to 'r'. */
- if (*expr_text && format_spec == NULL && conversion == -1) {
- conversion = 'r';
- }
-
- /* And now create the FormattedValue node that represents this
- entire expression with the conversion and format spec. */
- //TODO: Fix this
- *expression = FormattedValue(simple_expression, conversion,
- format_spec, first_token->lineno,
- first_token->col_offset, last_token->end_lineno,
- last_token->end_col_offset, p->arena);
- if (!*expression) {
- goto error;
- }
-
- return 0;
-
-unexpected_end_of_string:
- RAISE_SYNTAX_ERROR("f-string: expecting '}'");
- /* Falls through to error. */
-
-error:
- Py_XDECREF(*expr_text);
- return -1;
-
-}
-
-/* Return -1 on error.
-
- Return 0 if we have a literal (possible zero length) and an
- expression (zero length if at the end of the string.
-
- Return 1 if we have a literal, but no expression, and we want the
- caller to call us again. This is used to deal with doubled
- braces.
-
- When called multiple times on the string 'a{{b{0}c', this function
- will return:
-
- 1. the literal 'a{' with no expression, and a return value
- of 1. Despite the fact that there's no expression, the return
- value of 1 means we're not finished yet.
-
- 2. the literal 'b' and the expression '0', with a return value of
- 0. The fact that there's an expression means we're not finished.
-
- 3. literal 'c' with no expression and a return value of 0. The
- combination of the return value of 0 with no expression means
- we're finished.
-*/
-static int
-fstring_find_literal_and_expr(Parser *p, const char **str, const char *end, int raw,
- int recurse_lvl, PyObject **literal,
- PyObject **expr_text, expr_ty *expression,
- Token *first_token, Token *t, Token *last_token)
-{
- int result;
-
- assert(*literal == NULL && *expression == NULL);
-
- /* Get any literal string. */
- result = fstring_find_literal(p, str, end, raw, literal, recurse_lvl, t);
- if (result < 0) {
- goto error;
- }
-
- assert(result == 0 || result == 1);
-
- if (result == 1) {
- /* We have a literal, but don't look at the expression. */
- return 1;
- }
-
- if (*str >= end || **str == '}') {
- /* We're at the end of the string or the end of a nested
- f-string: no expression. The top-level error case where we
- expect to be at the end of the string but we're at a '}' is
- handled later. */
- return 0;
- }
-
- /* We must now be the start of an expression, on a '{'. */
- assert(**str == '{');
-
- if (fstring_find_expr(p, str, end, raw, recurse_lvl, expr_text,
- expression, first_token, t, last_token) < 0) {
- goto error;
- }
-
- return 0;
-
-error:
- Py_CLEAR(*literal);
- return -1;
-}
-
-#ifdef NDEBUG
-#define ExprList_check_invariants(l)
-#else
-static void
-ExprList_check_invariants(ExprList *l)
-{
- /* Check our invariants. Make sure this object is "live", and
- hasn't been deallocated. */
- assert(l->size >= 0);
- assert(l->p != NULL);
- if (l->size <= EXPRLIST_N_CACHED) {
- assert(l->data == l->p);
- }
-}
-#endif
-
-static void
-ExprList_Init(ExprList *l)
-{
- l->allocated = EXPRLIST_N_CACHED;
- l->size = 0;
-
- /* Until we start allocating dynamically, p points to data. */
- l->p = l->data;
-
- ExprList_check_invariants(l);
-}
-
-static int
-ExprList_Append(ExprList *l, expr_ty exp)
-{
- ExprList_check_invariants(l);
- if (l->size >= l->allocated) {
- /* We need to alloc (or realloc) the memory. */
- Py_ssize_t new_size = l->allocated * 2;
-
- /* See if we've ever allocated anything dynamically. */
- if (l->p == l->data) {
- Py_ssize_t i;
- /* We're still using the cached data. Switch to
- alloc-ing. */
- l->p = PyMem_Malloc(sizeof(expr_ty) * new_size);
- if (!l->p) {
- return -1;
- }
- /* Copy the cached data into the new buffer. */
- for (i = 0; i < l->size; i++) {
- l->p[i] = l->data[i];
- }
- } else {
- /* Just realloc. */
- expr_ty *tmp = PyMem_Realloc(l->p, sizeof(expr_ty) * new_size);
- if (!tmp) {
- PyMem_Free(l->p);
- l->p = NULL;
- return -1;
- }
- l->p = tmp;
- }
-
- l->allocated = new_size;
- assert(l->allocated == 2 * l->size);
- }
-
- l->p[l->size++] = exp;
-
- ExprList_check_invariants(l);
- return 0;
-}
-
-static void
-ExprList_Dealloc(ExprList *l)
-{
- ExprList_check_invariants(l);
-
- /* If there's been an error, or we've never dynamically allocated,
- do nothing. */
- if (!l->p || l->p == l->data) {
- /* Do nothing. */
- } else {
- /* We have dynamically allocated. Free the memory. */
- PyMem_Free(l->p);
- }
- l->p = NULL;
- l->size = -1;
-}
-
-static asdl_seq *
-ExprList_Finish(ExprList *l, PyArena *arena)
-{
- asdl_seq *seq;
-
- ExprList_check_invariants(l);
-
- /* Allocate the asdl_seq and copy the expressions in to it. */
- seq = _Py_asdl_seq_new(l->size, arena);
- if (seq) {
- Py_ssize_t i;
- for (i = 0; i < l->size; i++) {
- asdl_seq_SET(seq, i, l->p[i]);
- }
- }
- ExprList_Dealloc(l);
- return seq;
-}
-
-#ifdef NDEBUG
-#define FstringParser_check_invariants(state)
-#else
-static void
-FstringParser_check_invariants(FstringParser *state)
-{
- if (state->last_str) {
- assert(PyUnicode_CheckExact(state->last_str));
- }
- ExprList_check_invariants(&state->expr_list);
-}
-#endif
-
-void
-_PyPegen_FstringParser_Init(FstringParser *state)
-{
- state->last_str = NULL;
- state->fmode = 0;
- ExprList_Init(&state->expr_list);
- FstringParser_check_invariants(state);
-}
-
-void
-_PyPegen_FstringParser_Dealloc(FstringParser *state)
-{
- FstringParser_check_invariants(state);
-
- Py_XDECREF(state->last_str);
- ExprList_Dealloc(&state->expr_list);
-}
-
-/* Make a Constant node, but decref the PyUnicode object being added. */
-static expr_ty
-make_str_node_and_del(Parser *p, PyObject **str, Token* first_token, Token *last_token)
-{
- PyObject *s = *str;
- PyObject *kind = NULL;
- *str = NULL;
- assert(PyUnicode_CheckExact(s));
- if (PyArena_AddPyObject(p->arena, s) < 0) {
- Py_DECREF(s);
- return NULL;
- }
- const char* the_str = PyBytes_AsString(first_token->bytes);
- if (the_str && the_str[0] == 'u') {
- kind = _PyPegen_new_identifier(p, "u");
- }
-
- if (kind == NULL && PyErr_Occurred()) {
- return NULL;
- }
-
- return Constant(s, kind, first_token->lineno, first_token->col_offset,
- last_token->end_lineno, last_token->end_col_offset, p->arena);
-
-}
-
-
-/* Add a non-f-string (that is, a regular literal string). str is
- decref'd. */
-int
-_PyPegen_FstringParser_ConcatAndDel(FstringParser *state, PyObject *str)
-{
- FstringParser_check_invariants(state);
-
- assert(PyUnicode_CheckExact(str));
-
- if (PyUnicode_GET_LENGTH(str) == 0) {
- Py_DECREF(str);
- return 0;
- }
-
- if (!state->last_str) {
- /* We didn't have a string before, so just remember this one. */
- state->last_str = str;
- } else {
- /* Concatenate this with the previous string. */
- PyUnicode_AppendAndDel(&state->last_str, str);
- if (!state->last_str) {
- return -1;
- }
- }
- FstringParser_check_invariants(state);
- return 0;
-}
-
-/* Parse an f-string. The f-string is in *str to end, with no
- 'f' or quotes. */
-int
-_PyPegen_FstringParser_ConcatFstring(Parser *p, FstringParser *state, const char **str,
- const char *end, int raw, int recurse_lvl,
- Token *first_token, Token* t, Token *last_token)
-{
- FstringParser_check_invariants(state);
- state->fmode = 1;
-
- /* Parse the f-string. */
- while (1) {
- PyObject *literal = NULL;
- PyObject *expr_text = NULL;
- expr_ty expression = NULL;
-
- /* If there's a zero length literal in front of the
- expression, literal will be NULL. If we're at the end of
- the f-string, expression will be NULL (unless result == 1,
- see below). */
- int result = fstring_find_literal_and_expr(p, str, end, raw, recurse_lvl,
- &literal, &expr_text,
- &expression, first_token, t, last_token);
- if (result < 0) {
- return -1;
- }
-
- /* Add the literal, if any. */
- if (literal && _PyPegen_FstringParser_ConcatAndDel(state, literal) < 0) {
- Py_XDECREF(expr_text);
- return -1;
- }
- /* Add the expr_text, if any. */
- if (expr_text && _PyPegen_FstringParser_ConcatAndDel(state, expr_text) < 0) {
- return -1;
- }
-
- /* We've dealt with the literal and expr_text, their ownership has
- been transferred to the state object. Don't look at them again. */
-
- /* See if we should just loop around to get the next literal
- and expression, while ignoring the expression this
- time. This is used for un-doubling braces, as an
- optimization. */
- if (result == 1) {
- continue;
- }
-
- if (!expression) {
- /* We're done with this f-string. */
- break;
- }
-
- /* We know we have an expression. Convert any existing string
- to a Constant node. */
- if (!state->last_str) {
- /* Do nothing. No previous literal. */
- } else {
- /* Convert the existing last_str literal to a Constant node. */
- expr_ty last_str = make_str_node_and_del(p, &state->last_str, first_token, last_token);
- if (!last_str || ExprList_Append(&state->expr_list, last_str) < 0) {
- return -1;
- }
- }
-
- if (ExprList_Append(&state->expr_list, expression) < 0) {
- return -1;
- }
- }
-
- /* If recurse_lvl is zero, then we must be at the end of the
- string. Otherwise, we must be at a right brace. */
-
- if (recurse_lvl == 0 && *str < end-1) {
- RAISE_SYNTAX_ERROR("f-string: unexpected end of string");
- return -1;
- }
- if (recurse_lvl != 0 && **str != '}') {
- RAISE_SYNTAX_ERROR("f-string: expecting '}'");
- return -1;
- }
-
- FstringParser_check_invariants(state);
- return 0;
-}
-
-/* Convert the partial state reflected in last_str and expr_list to an
- expr_ty. The expr_ty can be a Constant, or a JoinedStr. */
-expr_ty
-_PyPegen_FstringParser_Finish(Parser *p, FstringParser *state, Token* first_token,
- Token *last_token)
-{
- asdl_seq *seq;
-
- FstringParser_check_invariants(state);
-
- /* If we're just a constant string with no expressions, return
- that. */
- if (!state->fmode) {
- assert(!state->expr_list.size);
- if (!state->last_str) {
- /* Create a zero length string. */
- state->last_str = PyUnicode_FromStringAndSize(NULL, 0);
- if (!state->last_str) {
- goto error;
- }
- }
- return make_str_node_and_del(p, &state->last_str, first_token, last_token);
- }
-
- /* Create a Constant node out of last_str, if needed. It will be the
- last node in our expression list. */
- if (state->last_str) {
- expr_ty str = make_str_node_and_del(p, &state->last_str, first_token, last_token);
- if (!str || ExprList_Append(&state->expr_list, str) < 0) {
- goto error;
- }
- }
- /* This has already been freed. */
- assert(state->last_str == NULL);
-
- seq = ExprList_Finish(&state->expr_list, p->arena);
- if (!seq) {
- goto error;
- }
-
- return _Py_JoinedStr(seq, first_token->lineno, first_token->col_offset,
- last_token->end_lineno, last_token->end_col_offset, p->arena);
-
-error:
- _PyPegen_FstringParser_Dealloc(state);
- return NULL;
-}
-
-/* Given an f-string (with no 'f' or quotes) that's in *str and ends
- at end, parse it into an expr_ty. Return NULL on error. Adjust
- str to point past the parsed portion. */
-static expr_ty
-fstring_parse(Parser *p, const char **str, const char *end, int raw,
- int recurse_lvl, Token *first_token, Token* t, Token *last_token)
-{
- FstringParser state;
-
- _PyPegen_FstringParser_Init(&state);
- if (_PyPegen_FstringParser_ConcatFstring(p, &state, str, end, raw, recurse_lvl,
- first_token, t, last_token) < 0) {
- _PyPegen_FstringParser_Dealloc(&state);
- return NULL;
- }
-
- return _PyPegen_FstringParser_Finish(p, &state, t, t);
-}
+#include <stdbool.h>
+
+#include <Python.h>
+
+#include "../tokenizer.h"
+#include "pegen.h"
+#include "parse_string.h"
+
+//// STRING HANDLING FUNCTIONS ////
+
+// These functions are ported directly from Python/ast.c with some modifications
+// to account for the use of "Parser *p", the fact that don't have parser nodes
+// to pass around and the usage of some specialized APIs present only in this
+// file (like "_PyPegen_raise_syntax_error").
+
+static int
+warn_invalid_escape_sequence(Parser *p, unsigned char first_invalid_escape_char, Token *t)
+{
+ PyObject *msg =
+ PyUnicode_FromFormat("invalid escape sequence \\%c", first_invalid_escape_char);
+ if (msg == NULL) {
+ return -1;
+ }
+ if (PyErr_WarnExplicitObject(PyExc_DeprecationWarning, msg, p->tok->filename,
+ t->lineno, NULL, NULL) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_DeprecationWarning)) {
+ /* Replace the DeprecationWarning exception with a SyntaxError
+ to get a more accurate error report */
+ PyErr_Clear();
+
+ /* This is needed, in order for the SyntaxError to point to the token t,
+ since _PyPegen_raise_error uses p->tokens[p->fill - 1] for the
+ error location, if p->known_err_token is not set. */
+ p->known_err_token = t;
+ RAISE_SYNTAX_ERROR("invalid escape sequence \\%c", first_invalid_escape_char);
+ }
+ Py_DECREF(msg);
+ return -1;
+ }
+ Py_DECREF(msg);
+ return 0;
+}
+
+static PyObject *
+decode_utf8(const char **sPtr, const char *end)
+{
+ const char *s;
+ const char *t;
+ t = s = *sPtr;
+ while (s < end && (*s & 0x80)) {
+ s++;
+ }
+ *sPtr = s;
+ return PyUnicode_DecodeUTF8(t, s - t, NULL);
+}
+
+static PyObject *
+decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token *t)
+{
+ PyObject *v;
+ PyObject *u;
+ char *buf;
+ char *p;
+ const char *end;
+
+ /* check for integer overflow */
+ if (len > SIZE_MAX / 6) {
+ return NULL;
+ }
+ /* "ä" (2 bytes) may become "\U000000E4" (10 bytes), or 1:5
+ "\ä" (3 bytes) may become "\u005c\U000000E4" (16 bytes), or ~1:6 */
+ u = PyBytes_FromStringAndSize((char *)NULL, len * 6);
+ if (u == NULL) {
+ return NULL;
+ }
+ p = buf = PyBytes_AsString(u);
+ if (p == NULL) {
+ return NULL;
+ }
+ end = s + len;
+ while (s < end) {
+ if (*s == '\\') {
+ *p++ = *s++;
+ if (s >= end || *s & 0x80) {
+ strcpy(p, "u005c");
+ p += 5;
+ if (s >= end) {
+ break;
+ }
+ }
+ }
+ if (*s & 0x80) {
+ PyObject *w;
+ int kind;
+ void *data;
+ Py_ssize_t w_len;
+ Py_ssize_t i;
+ w = decode_utf8(&s, end);
+ if (w == NULL) {
+ Py_DECREF(u);
+ return NULL;
+ }
+ kind = PyUnicode_KIND(w);
+ data = PyUnicode_DATA(w);
+ w_len = PyUnicode_GET_LENGTH(w);
+ for (i = 0; i < w_len; i++) {
+ Py_UCS4 chr = PyUnicode_READ(kind, data, i);
+ sprintf(p, "\\U%08x", chr);
+ p += 10;
+ }
+ /* Should be impossible to overflow */
+ assert(p - buf <= PyBytes_GET_SIZE(u));
+ Py_DECREF(w);
+ }
+ else {
+ *p++ = *s++;
+ }
+ }
+ len = p - buf;
+ s = buf;
+
+ const char *first_invalid_escape;
+ v = _PyUnicode_DecodeUnicodeEscapeInternal(s, len, NULL, NULL, &first_invalid_escape);
+
+ if (v != NULL && first_invalid_escape != NULL) {
+ if (warn_invalid_escape_sequence(parser, *first_invalid_escape, t) < 0) {
+ /* We have not decref u before because first_invalid_escape points
+ inside u. */
+ Py_XDECREF(u);
+ Py_DECREF(v);
+ return NULL;
+ }
+ }
+ Py_XDECREF(u);
+ return v;
+}
+
+static PyObject *
+decode_bytes_with_escapes(Parser *p, const char *s, Py_ssize_t len, Token *t)
+{
+ const char *first_invalid_escape;
+ PyObject *result = _PyBytes_DecodeEscape(s, len, NULL, &first_invalid_escape);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ if (first_invalid_escape != NULL) {
+ if (warn_invalid_escape_sequence(p, *first_invalid_escape, t) < 0) {
+ Py_DECREF(result);
+ return NULL;
+ }
+ }
+ return result;
+}
+
+/* s must include the bracketing quote characters, and r, b, u,
+ &/or f prefixes (if any), and embedded escape sequences (if any).
+ _PyPegen_parsestr parses it, and sets *result to decoded Python string object.
+ If the string is an f-string, set *fstr and *fstrlen to the unparsed
+ string object. Return 0 if no errors occurred. */
+int
+_PyPegen_parsestr(Parser *p, int *bytesmode, int *rawmode, PyObject **result,
+ const char **fstr, Py_ssize_t *fstrlen, Token *t)
+{
+ const char *s = PyBytes_AsString(t->bytes);
+ if (s == NULL) {
+ return -1;
+ }
+
+ size_t len;
+ int quote = Py_CHARMASK(*s);
+ int fmode = 0;
+ *bytesmode = 0;
+ *rawmode = 0;
+ *result = NULL;
+ *fstr = NULL;
+ if (Py_ISALPHA(quote)) {
+ while (!*bytesmode || !*rawmode) {
+ if (quote == 'b' || quote == 'B') {
+ quote =(unsigned char)*++s;
+ *bytesmode = 1;
+ }
+ else if (quote == 'u' || quote == 'U') {
+ quote = (unsigned char)*++s;
+ }
+ else if (quote == 'r' || quote == 'R') {
+ quote = (unsigned char)*++s;
+ *rawmode = 1;
+ }
+ else if (quote == 'f' || quote == 'F') {
+ quote = (unsigned char)*++s;
+ fmode = 1;
+ }
+ else {
+ break;
+ }
+ }
+ }
+
+ /* fstrings are only allowed in Python 3.6 and greater */
+ if (fmode && p->feature_version < 6) {
+ p->error_indicator = 1;
+ RAISE_SYNTAX_ERROR("Format strings are only supported in Python 3.6 and greater");
+ return -1;
+ }
+
+ if (fmode && *bytesmode) {
+ PyErr_BadInternalCall();
+ return -1;
+ }
+ if (quote != '\'' && quote != '\"') {
+ PyErr_BadInternalCall();
+ return -1;
+ }
+ /* Skip the leading quote char. */
+ s++;
+ len = strlen(s);
+ if (len > INT_MAX) {
+ PyErr_SetString(PyExc_OverflowError, "string to parse is too long");
+ return -1;
+ }
+ if (s[--len] != quote) {
+ /* Last quote char must match the first. */
+ PyErr_BadInternalCall();
+ return -1;
+ }
+ if (len >= 4 && s[0] == quote && s[1] == quote) {
+ /* A triple quoted string. We've already skipped one quote at
+ the start and one at the end of the string. Now skip the
+ two at the start. */
+ s += 2;
+ len -= 2;
+ /* And check that the last two match. */
+ if (s[--len] != quote || s[--len] != quote) {
+ PyErr_BadInternalCall();
+ return -1;
+ }
+ }
+
+ if (fmode) {
+ /* Just return the bytes. The caller will parse the resulting
+ string. */
+ *fstr = s;
+ *fstrlen = len;
+ return 0;
+ }
+
+ /* Not an f-string. */
+ /* Avoid invoking escape decoding routines if possible. */
+ *rawmode = *rawmode || strchr(s, '\\') == NULL;
+ if (*bytesmode) {
+ /* Disallow non-ASCII characters. */
+ const char *ch;
+ for (ch = s; *ch; ch++) {
+ if (Py_CHARMASK(*ch) >= 0x80) {
+ RAISE_SYNTAX_ERROR(
+ "bytes can only contain ASCII "
+ "literal characters.");
+ return -1;
+ }
+ }
+ if (*rawmode) {
+ *result = PyBytes_FromStringAndSize(s, len);
+ }
+ else {
+ *result = decode_bytes_with_escapes(p, s, len, t);
+ }
+ }
+ else {
+ if (*rawmode) {
+ *result = PyUnicode_DecodeUTF8Stateful(s, len, NULL, NULL);
+ }
+ else {
+ *result = decode_unicode_with_escapes(p, s, len, t);
+ }
+ }
+ return *result == NULL ? -1 : 0;
+}
+
+
+
+// FSTRING STUFF
+
+/* Fix locations for the given node and its children.
+
+ `parent` is the enclosing node.
+ `expr_start` is the starting position of the expression (pointing to the open brace).
+ `n` is the node which locations are going to be fixed relative to parent.
+ `expr_str` is the child node's string representation, including braces.
+*/
+static bool
+fstring_find_expr_location(Token *parent, const char* expr_start, char *expr_str, int *p_lines, int *p_cols)
+{
+ *p_lines = 0;
+ *p_cols = 0;
+ assert(expr_start != NULL && *expr_start == '{');
+ if (parent && parent->bytes) {
+ char *parent_str = PyBytes_AsString(parent->bytes);
+ if (!parent_str) {
+ return false;
+ }
+ // The following is needed, in order to correctly shift the column
+ // offset, in the case that (disregarding any whitespace) a newline
+ // immediately follows the opening curly brace of the fstring expression.
+ bool newline_after_brace = 1;
+ const char *start = expr_start + 1;
+ while (start && *start != '}' && *start != '\n') {
+ if (*start != ' ' && *start != '\t' && *start != '\f') {
+ newline_after_brace = 0;
+ break;
+ }
+ start++;
+ }
+
+ // Account for the characters from the last newline character to our
+ // left until the beginning of expr_start.
+ if (!newline_after_brace) {
+ start = expr_start;
+ while (start > parent_str && *start != '\n') {
+ start--;
+ }
+ *p_cols += (int)(expr_start - start);
+ }
+ /* adjust the start based on the number of newlines encountered
+ before the f-string expression */
+ for (const char *p = parent_str; p < expr_start; p++) {
+ if (*p == '\n') {
+ (*p_lines)++;
+ }
+ }
+ }
+ return true;
+}
+
+
+/* Compile this expression in to an expr_ty. Add parens around the
+ expression, in order to allow leading spaces in the expression. */
+static expr_ty
+fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end,
+ Token *t)
+{
+ expr_ty expr = NULL;
+ char *str;
+ Py_ssize_t len;
+ const char *s;
+ expr_ty result = NULL;
+
+ assert(expr_end >= expr_start);
+ assert(*(expr_start-1) == '{');
+ assert(*expr_end == '}' || *expr_end == '!' || *expr_end == ':' ||
+ *expr_end == '=');
+
+ /* If the substring is all whitespace, it's an error. We need to catch this
+ here, and not when we call PyParser_SimpleParseStringFlagsFilename,
+ because turning the expression '' in to '()' would go from being invalid
+ to valid. */
+ for (s = expr_start; s != expr_end; s++) {
+ char c = *s;
+ /* The Python parser ignores only the following whitespace
+ characters (\r already is converted to \n). */
+ if (!(c == ' ' || c == '\t' || c == '\n' || c == '\f')) {
+ break;
+ }
+ }
+ if (s == expr_end) {
+ RAISE_SYNTAX_ERROR("f-string: empty expression not allowed");
+ return NULL;
+ }
+
+ len = expr_end - expr_start;
+ /* Allocate 3 extra bytes: open paren, close paren, null byte. */
+ str = PyMem_Calloc(len + 3, sizeof(char));
+ if (str == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+
+ // The call to fstring_find_expr_location is responsible for finding the column offset
+ // the generated AST nodes need to be shifted to the right, which is equal to the number
+ // of the f-string characters before the expression starts.
+ memcpy(str+1, expr_start, len);
+ int lines, cols;
+ if (!fstring_find_expr_location(t, expr_start-1, str+1, &lines, &cols)) {
+ PyMem_Free(str);
+ return NULL;
+ }
+
+ // The parentheses are needed in order to allow for leading whitespace within
+ // the f-string expression. This consequently gets parsed as a group (see the
+ // group rule in python.gram).
+ str[0] = '(';
+ str[len+1] = ')';
+
+ struct tok_state* tok = PyTokenizer_FromString(str, 1);
+ if (tok == NULL) {
+ PyMem_Free(str);
+ return NULL;
+ }
+ Py_INCREF(p->tok->filename);
+ tok->filename = p->tok->filename;
+
+ Parser *p2 = _PyPegen_Parser_New(tok, Py_fstring_input, p->flags, p->feature_version,
+ NULL, p->arena);
+ p2->starting_lineno = t->lineno + lines - 1;
+ p2->starting_col_offset = t->col_offset + cols;
+
+ expr = _PyPegen_run_parser(p2);
+
+ if (expr == NULL) {
+ goto exit;
+ }
+ result = expr;
+
+exit:
+ PyMem_Free(str);
+ _PyPegen_Parser_Free(p2);
+ PyTokenizer_Free(tok);
+ return result;
+}
+
+/* Return -1 on error.
+
+ Return 0 if we reached the end of the literal.
+
+ Return 1 if we haven't reached the end of the literal, but we want
+ the caller to process the literal up to this point. Used for
+ doubled braces.
+*/
+static int
+fstring_find_literal(Parser *p, const char **str, const char *end, int raw,
+ PyObject **literal, int recurse_lvl, Token *t)
+{
+ /* Get any literal string. It ends when we hit an un-doubled left
+ brace (which isn't part of a unicode name escape such as
+ "\N{EULER CONSTANT}"), or the end of the string. */
+
+ const char *s = *str;
+ const char *literal_start = s;
+ int result = 0;
+
+ assert(*literal == NULL);
+ while (s < end) {
+ char ch = *s++;
+ if (!raw && ch == '\\' && s < end) {
+ ch = *s++;
+ if (ch == 'N') {
+ if (s < end && *s++ == '{') {
+ while (s < end && *s++ != '}') {
+ }
+ continue;
+ }
+ break;
+ }
+ if (ch == '{' && warn_invalid_escape_sequence(p, ch, t) < 0) {
+ return -1;
+ }
+ }
+ if (ch == '{' || ch == '}') {
+ /* Check for doubled braces, but only at the top level. If
+ we checked at every level, then f'{0:{3}}' would fail
+ with the two closing braces. */
+ if (recurse_lvl == 0) {
+ if (s < end && *s == ch) {
+ /* We're going to tell the caller that the literal ends
+ here, but that they should continue scanning. But also
+ skip over the second brace when we resume scanning. */
+ *str = s + 1;
+ result = 1;
+ goto done;
+ }
+
+ /* Where a single '{' is the start of a new expression, a
+ single '}' is not allowed. */
+ if (ch == '}') {
+ *str = s - 1;
+ RAISE_SYNTAX_ERROR("f-string: single '}' is not allowed");
+ return -1;
+ }
+ }
+ /* We're either at a '{', which means we're starting another
+ expression; or a '}', which means we're at the end of this
+ f-string (for a nested format_spec). */
+ s--;
+ break;
+ }
+ }
+ *str = s;
+ assert(s <= end);
+ assert(s == end || *s == '{' || *s == '}');
+done:
+ if (literal_start != s) {
+ if (raw) {
+ *literal = PyUnicode_DecodeUTF8Stateful(literal_start,
+ s - literal_start,
+ NULL, NULL);
+ } else {
+ *literal = decode_unicode_with_escapes(p, literal_start,
+ s - literal_start, t);
+ }
+ if (!*literal) {
+ return -1;
+ }
+ }
+ return result;
+}
+
+/* Forward declaration because parsing is recursive. */
+static expr_ty
+fstring_parse(Parser *p, const char **str, const char *end, int raw, int recurse_lvl,
+ Token *first_token, Token* t, Token *last_token);
+
+/* Parse the f-string at *str, ending at end. We know *str starts an
+ expression (so it must be a '{'). Returns the FormattedValue node, which
+ includes the expression, conversion character, format_spec expression, and
+ optionally the text of the expression (if = is used).
+
+ Note that I don't do a perfect job here: I don't make sure that a
+ closing brace doesn't match an opening paren, for example. It
+ doesn't need to error on all invalid expressions, just correctly
+ find the end of all valid ones. Any errors inside the expression
+ will be caught when we parse it later.
+
+ *expression is set to the expression. For an '=' "debug" expression,
+ *expr_text is set to the debug text (the original text of the expression,
+ including the '=' and any whitespace around it, as a string object). If
+ not a debug expression, *expr_text set to NULL. */
+static int
+fstring_find_expr(Parser *p, const char **str, const char *end, int raw, int recurse_lvl,
+ PyObject **expr_text, expr_ty *expression, Token *first_token,
+ Token *t, Token *last_token)
+{
+ /* Return -1 on error, else 0. */
+
+ const char *expr_start;
+ const char *expr_end;
+ expr_ty simple_expression;
+ expr_ty format_spec = NULL; /* Optional format specifier. */
+ int conversion = -1; /* The conversion char. Use default if not
+ specified, or !r if using = and no format
+ spec. */
+
+ /* 0 if we're not in a string, else the quote char we're trying to
+ match (single or double quote). */
+ char quote_char = 0;
+
+ /* If we're inside a string, 1=normal, 3=triple-quoted. */
+ int string_type = 0;
+
+ /* Keep track of nesting level for braces/parens/brackets in
+ expressions. */
+ Py_ssize_t nested_depth = 0;
+ char parenstack[MAXLEVEL];
+
+ *expr_text = NULL;
+
+ /* Can only nest one level deep. */
+ if (recurse_lvl >= 2) {
+ RAISE_SYNTAX_ERROR("f-string: expressions nested too deeply");
+ goto error;
+ }
+
+ /* The first char must be a left brace, or we wouldn't have gotten
+ here. Skip over it. */
+ assert(**str == '{');
+ *str += 1;
+
+ expr_start = *str;
+ for (; *str < end; (*str)++) {
+ char ch;
+
+ /* Loop invariants. */
+ assert(nested_depth >= 0);
+ assert(*str >= expr_start && *str < end);
+ if (quote_char) {
+ assert(string_type == 1 || string_type == 3);
+ } else {
+ assert(string_type == 0);
+ }
+
+ ch = **str;
+ /* Nowhere inside an expression is a backslash allowed. */
+ if (ch == '\\') {
+ /* Error: can't include a backslash character, inside
+ parens or strings or not. */
+ RAISE_SYNTAX_ERROR(
+ "f-string expression part "
+ "cannot include a backslash");
+ goto error;
+ }
+ if (quote_char) {
+ /* We're inside a string. See if we're at the end. */
+ /* This code needs to implement the same non-error logic
+ as tok_get from tokenizer.c, at the letter_quote
+ label. To actually share that code would be a
+ nightmare. But, it's unlikely to change and is small,
+ so duplicate it here. Note we don't need to catch all
+ of the errors, since they'll be caught when parsing the
+ expression. We just need to match the non-error
+ cases. Thus we can ignore \n in single-quoted strings,
+ for example. Or non-terminated strings. */
+ if (ch == quote_char) {
+ /* Does this match the string_type (single or triple
+ quoted)? */
+ if (string_type == 3) {
+ if (*str+2 < end && *(*str+1) == ch && *(*str+2) == ch) {
+ /* We're at the end of a triple quoted string. */
+ *str += 2;
+ string_type = 0;
+ quote_char = 0;
+ continue;
+ }
+ } else {
+ /* We're at the end of a normal string. */
+ quote_char = 0;
+ string_type = 0;
+ continue;
+ }
+ }
+ } else if (ch == '\'' || ch == '"') {
+ /* Is this a triple quoted string? */
+ if (*str+2 < end && *(*str+1) == ch && *(*str+2) == ch) {
+ string_type = 3;
+ *str += 2;
+ } else {
+ /* Start of a normal string. */
+ string_type = 1;
+ }
+ /* Start looking for the end of the string. */
+ quote_char = ch;
+ } else if (ch == '[' || ch == '{' || ch == '(') {
+ if (nested_depth >= MAXLEVEL) {
+ RAISE_SYNTAX_ERROR("f-string: too many nested parenthesis");
+ goto error;
+ }
+ parenstack[nested_depth] = ch;
+ nested_depth++;
+ } else if (ch == '#') {
+ /* Error: can't include a comment character, inside parens
+ or not. */
+ RAISE_SYNTAX_ERROR("f-string expression part cannot include '#'");
+ goto error;
+ } else if (nested_depth == 0 &&
+ (ch == '!' || ch == ':' || ch == '}' ||
+ ch == '=' || ch == '>' || ch == '<')) {
+ /* See if there's a next character. */
+ if (*str+1 < end) {
+ char next = *(*str+1);
+
+ /* For "!=". since '=' is not an allowed conversion character,
+ nothing is lost in this test. */
+ if ((ch == '!' && next == '=') || /* != */
+ (ch == '=' && next == '=') || /* == */
+ (ch == '<' && next == '=') || /* <= */
+ (ch == '>' && next == '=') /* >= */
+ ) {
+ *str += 1;
+ continue;
+ }
+ /* Don't get out of the loop for these, if they're single
+ chars (not part of 2-char tokens). If by themselves, they
+ don't end an expression (unlike say '!'). */
+ if (ch == '>' || ch == '<') {
+ continue;
+ }
+ }
+
+ /* Normal way out of this loop. */
+ break;
+ } else if (ch == ']' || ch == '}' || ch == ')') {
+ if (!nested_depth) {
+ RAISE_SYNTAX_ERROR("f-string: unmatched '%c'", ch);
+ goto error;
+ }
+ nested_depth--;
+ int opening = (unsigned char)parenstack[nested_depth];
+ if (!((opening == '(' && ch == ')') ||
+ (opening == '[' && ch == ']') ||
+ (opening == '{' && ch == '}')))
+ {
+ RAISE_SYNTAX_ERROR(
+ "f-string: closing parenthesis '%c' "
+ "does not match opening parenthesis '%c'",
+ ch, opening);
+ goto error;
+ }
+ } else {
+ /* Just consume this char and loop around. */
+ }
+ }
+ expr_end = *str;
+ /* If we leave this loop in a string or with mismatched parens, we
+ don't care. We'll get a syntax error when compiling the
+ expression. But, we can produce a better error message, so
+ let's just do that.*/
+ if (quote_char) {
+ RAISE_SYNTAX_ERROR("f-string: unterminated string");
+ goto error;
+ }
+ if (nested_depth) {
+ int opening = (unsigned char)parenstack[nested_depth - 1];
+ RAISE_SYNTAX_ERROR("f-string: unmatched '%c'", opening);
+ goto error;
+ }
+
+ if (*str >= end) {
+ goto unexpected_end_of_string;
+ }
+
+ /* Compile the expression as soon as possible, so we show errors
+ related to the expression before errors related to the
+ conversion or format_spec. */
+ simple_expression = fstring_compile_expr(p, expr_start, expr_end, t);
+ if (!simple_expression) {
+ goto error;
+ }
+
+ /* Check for =, which puts the text value of the expression in
+ expr_text. */
+ if (**str == '=') {
+ if (p->feature_version < 8) {
+ RAISE_SYNTAX_ERROR("f-string: self documenting expressions are "
+ "only supported in Python 3.8 and greater");
+ goto error;
+ }
+ *str += 1;
+
+ /* Skip over ASCII whitespace. No need to test for end of string
+ here, since we know there's at least a trailing quote somewhere
+ ahead. */
+ while (Py_ISSPACE(**str)) {
+ *str += 1;
+ }
+
+ /* Set *expr_text to the text of the expression. */
+ *expr_text = PyUnicode_FromStringAndSize(expr_start, *str-expr_start);
+ if (!*expr_text) {
+ goto error;
+ }
+ }
+
+ /* Check for a conversion char, if present. */
+ if (**str == '!') {
+ *str += 1;
+ if (*str >= end) {
+ goto unexpected_end_of_string;
+ }
+
+ conversion = (unsigned char)**str;
+ *str += 1;
+
+ /* Validate the conversion. */
+ if (!(conversion == 's' || conversion == 'r' || conversion == 'a')) {
+ RAISE_SYNTAX_ERROR(
+ "f-string: invalid conversion character: "
+ "expected 's', 'r', or 'a'");
+ goto error;
+ }
+
+ }
+
+ /* Check for the format spec, if present. */
+ if (*str >= end) {
+ goto unexpected_end_of_string;
+ }
+ if (**str == ':') {
+ *str += 1;
+ if (*str >= end) {
+ goto unexpected_end_of_string;
+ }
+
+ /* Parse the format spec. */
+ format_spec = fstring_parse(p, str, end, raw, recurse_lvl+1,
+ first_token, t, last_token);
+ if (!format_spec) {
+ goto error;
+ }
+ }
+
+ if (*str >= end || **str != '}') {
+ goto unexpected_end_of_string;
+ }
+
+ /* We're at a right brace. Consume it. */
+ assert(*str < end);
+ assert(**str == '}');
+ *str += 1;
+
+ /* If we're in = mode (detected by non-NULL expr_text), and have no format
+ spec and no explicit conversion, set the conversion to 'r'. */
+ if (*expr_text && format_spec == NULL && conversion == -1) {
+ conversion = 'r';
+ }
+
+ /* And now create the FormattedValue node that represents this
+ entire expression with the conversion and format spec. */
+ //TODO: Fix this
+ *expression = FormattedValue(simple_expression, conversion,
+ format_spec, first_token->lineno,
+ first_token->col_offset, last_token->end_lineno,
+ last_token->end_col_offset, p->arena);
+ if (!*expression) {
+ goto error;
+ }
+
+ return 0;
+
+unexpected_end_of_string:
+ RAISE_SYNTAX_ERROR("f-string: expecting '}'");
+ /* Falls through to error. */
+
+error:
+ Py_XDECREF(*expr_text);
+ return -1;
+
+}
+
+/* Return -1 on error.
+
+ Return 0 if we have a literal (possible zero length) and an
+ expression (zero length if at the end of the string.
+
+ Return 1 if we have a literal, but no expression, and we want the
+ caller to call us again. This is used to deal with doubled
+ braces.
+
+ When called multiple times on the string 'a{{b{0}c', this function
+ will return:
+
+ 1. the literal 'a{' with no expression, and a return value
+ of 1. Despite the fact that there's no expression, the return
+ value of 1 means we're not finished yet.
+
+ 2. the literal 'b' and the expression '0', with a return value of
+ 0. The fact that there's an expression means we're not finished.
+
+ 3. literal 'c' with no expression and a return value of 0. The
+ combination of the return value of 0 with no expression means
+ we're finished.
+*/
+static int
+fstring_find_literal_and_expr(Parser *p, const char **str, const char *end, int raw,
+ int recurse_lvl, PyObject **literal,
+ PyObject **expr_text, expr_ty *expression,
+ Token *first_token, Token *t, Token *last_token)
+{
+ int result;
+
+ assert(*literal == NULL && *expression == NULL);
+
+ /* Get any literal string. */
+ result = fstring_find_literal(p, str, end, raw, literal, recurse_lvl, t);
+ if (result < 0) {
+ goto error;
+ }
+
+ assert(result == 0 || result == 1);
+
+ if (result == 1) {
+ /* We have a literal, but don't look at the expression. */
+ return 1;
+ }
+
+ if (*str >= end || **str == '}') {
+ /* We're at the end of the string or the end of a nested
+ f-string: no expression. The top-level error case where we
+ expect to be at the end of the string but we're at a '}' is
+ handled later. */
+ return 0;
+ }
+
+ /* We must now be the start of an expression, on a '{'. */
+ assert(**str == '{');
+
+ if (fstring_find_expr(p, str, end, raw, recurse_lvl, expr_text,
+ expression, first_token, t, last_token) < 0) {
+ goto error;
+ }
+
+ return 0;
+
+error:
+ Py_CLEAR(*literal);
+ return -1;
+}
+
+#ifdef NDEBUG
+#define ExprList_check_invariants(l)
+#else
+static void
+ExprList_check_invariants(ExprList *l)
+{
+ /* Check our invariants. Make sure this object is "live", and
+ hasn't been deallocated. */
+ assert(l->size >= 0);
+ assert(l->p != NULL);
+ if (l->size <= EXPRLIST_N_CACHED) {
+ assert(l->data == l->p);
+ }
+}
+#endif
+
+static void
+ExprList_Init(ExprList *l)
+{
+ l->allocated = EXPRLIST_N_CACHED;
+ l->size = 0;
+
+ /* Until we start allocating dynamically, p points to data. */
+ l->p = l->data;
+
+ ExprList_check_invariants(l);
+}
+
+static int
+ExprList_Append(ExprList *l, expr_ty exp)
+{
+ ExprList_check_invariants(l);
+ if (l->size >= l->allocated) {
+ /* We need to alloc (or realloc) the memory. */
+ Py_ssize_t new_size = l->allocated * 2;
+
+ /* See if we've ever allocated anything dynamically. */
+ if (l->p == l->data) {
+ Py_ssize_t i;
+ /* We're still using the cached data. Switch to
+ alloc-ing. */
+ l->p = PyMem_Malloc(sizeof(expr_ty) * new_size);
+ if (!l->p) {
+ return -1;
+ }
+ /* Copy the cached data into the new buffer. */
+ for (i = 0; i < l->size; i++) {
+ l->p[i] = l->data[i];
+ }
+ } else {
+ /* Just realloc. */
+ expr_ty *tmp = PyMem_Realloc(l->p, sizeof(expr_ty) * new_size);
+ if (!tmp) {
+ PyMem_Free(l->p);
+ l->p = NULL;
+ return -1;
+ }
+ l->p = tmp;
+ }
+
+ l->allocated = new_size;
+ assert(l->allocated == 2 * l->size);
+ }
+
+ l->p[l->size++] = exp;
+
+ ExprList_check_invariants(l);
+ return 0;
+}
+
+static void
+ExprList_Dealloc(ExprList *l)
+{
+ ExprList_check_invariants(l);
+
+ /* If there's been an error, or we've never dynamically allocated,
+ do nothing. */
+ if (!l->p || l->p == l->data) {
+ /* Do nothing. */
+ } else {
+ /* We have dynamically allocated. Free the memory. */
+ PyMem_Free(l->p);
+ }
+ l->p = NULL;
+ l->size = -1;
+}
+
+static asdl_seq *
+ExprList_Finish(ExprList *l, PyArena *arena)
+{
+ asdl_seq *seq;
+
+ ExprList_check_invariants(l);
+
+ /* Allocate the asdl_seq and copy the expressions in to it. */
+ seq = _Py_asdl_seq_new(l->size, arena);
+ if (seq) {
+ Py_ssize_t i;
+ for (i = 0; i < l->size; i++) {
+ asdl_seq_SET(seq, i, l->p[i]);
+ }
+ }
+ ExprList_Dealloc(l);
+ return seq;
+}
+
+#ifdef NDEBUG
+#define FstringParser_check_invariants(state)
+#else
+static void
+FstringParser_check_invariants(FstringParser *state)
+{
+ if (state->last_str) {
+ assert(PyUnicode_CheckExact(state->last_str));
+ }
+ ExprList_check_invariants(&state->expr_list);
+}
+#endif
+
+void
+_PyPegen_FstringParser_Init(FstringParser *state)
+{
+ state->last_str = NULL;
+ state->fmode = 0;
+ ExprList_Init(&state->expr_list);
+ FstringParser_check_invariants(state);
+}
+
+void
+_PyPegen_FstringParser_Dealloc(FstringParser *state)
+{
+ FstringParser_check_invariants(state);
+
+ Py_XDECREF(state->last_str);
+ ExprList_Dealloc(&state->expr_list);
+}
+
+/* Make a Constant node, but decref the PyUnicode object being added. */
+static expr_ty
+make_str_node_and_del(Parser *p, PyObject **str, Token* first_token, Token *last_token)
+{
+ PyObject *s = *str;
+ PyObject *kind = NULL;
+ *str = NULL;
+ assert(PyUnicode_CheckExact(s));
+ if (PyArena_AddPyObject(p->arena, s) < 0) {
+ Py_DECREF(s);
+ return NULL;
+ }
+ const char* the_str = PyBytes_AsString(first_token->bytes);
+ if (the_str && the_str[0] == 'u') {
+ kind = _PyPegen_new_identifier(p, "u");
+ }
+
+ if (kind == NULL && PyErr_Occurred()) {
+ return NULL;
+ }
+
+ return Constant(s, kind, first_token->lineno, first_token->col_offset,
+ last_token->end_lineno, last_token->end_col_offset, p->arena);
+
+}
+
+
+/* Add a non-f-string (that is, a regular literal string). str is
+ decref'd. */
+int
+_PyPegen_FstringParser_ConcatAndDel(FstringParser *state, PyObject *str)
+{
+ FstringParser_check_invariants(state);
+
+ assert(PyUnicode_CheckExact(str));
+
+ if (PyUnicode_GET_LENGTH(str) == 0) {
+ Py_DECREF(str);
+ return 0;
+ }
+
+ if (!state->last_str) {
+ /* We didn't have a string before, so just remember this one. */
+ state->last_str = str;
+ } else {
+ /* Concatenate this with the previous string. */
+ PyUnicode_AppendAndDel(&state->last_str, str);
+ if (!state->last_str) {
+ return -1;
+ }
+ }
+ FstringParser_check_invariants(state);
+ return 0;
+}
+
+/* Parse an f-string. The f-string is in *str to end, with no
+ 'f' or quotes. */
+int
+_PyPegen_FstringParser_ConcatFstring(Parser *p, FstringParser *state, const char **str,
+ const char *end, int raw, int recurse_lvl,
+ Token *first_token, Token* t, Token *last_token)
+{
+ FstringParser_check_invariants(state);
+ state->fmode = 1;
+
+ /* Parse the f-string. */
+ while (1) {
+ PyObject *literal = NULL;
+ PyObject *expr_text = NULL;
+ expr_ty expression = NULL;
+
+ /* If there's a zero length literal in front of the
+ expression, literal will be NULL. If we're at the end of
+ the f-string, expression will be NULL (unless result == 1,
+ see below). */
+ int result = fstring_find_literal_and_expr(p, str, end, raw, recurse_lvl,
+ &literal, &expr_text,
+ &expression, first_token, t, last_token);
+ if (result < 0) {
+ return -1;
+ }
+
+ /* Add the literal, if any. */
+ if (literal && _PyPegen_FstringParser_ConcatAndDel(state, literal) < 0) {
+ Py_XDECREF(expr_text);
+ return -1;
+ }
+ /* Add the expr_text, if any. */
+ if (expr_text && _PyPegen_FstringParser_ConcatAndDel(state, expr_text) < 0) {
+ return -1;
+ }
+
+ /* We've dealt with the literal and expr_text, their ownership has
+ been transferred to the state object. Don't look at them again. */
+
+ /* See if we should just loop around to get the next literal
+ and expression, while ignoring the expression this
+ time. This is used for un-doubling braces, as an
+ optimization. */
+ if (result == 1) {
+ continue;
+ }
+
+ if (!expression) {
+ /* We're done with this f-string. */
+ break;
+ }
+
+ /* We know we have an expression. Convert any existing string
+ to a Constant node. */
+ if (!state->last_str) {
+ /* Do nothing. No previous literal. */
+ } else {
+ /* Convert the existing last_str literal to a Constant node. */
+ expr_ty last_str = make_str_node_and_del(p, &state->last_str, first_token, last_token);
+ if (!last_str || ExprList_Append(&state->expr_list, last_str) < 0) {
+ return -1;
+ }
+ }
+
+ if (ExprList_Append(&state->expr_list, expression) < 0) {
+ return -1;
+ }
+ }
+
+ /* If recurse_lvl is zero, then we must be at the end of the
+ string. Otherwise, we must be at a right brace. */
+
+ if (recurse_lvl == 0 && *str < end-1) {
+ RAISE_SYNTAX_ERROR("f-string: unexpected end of string");
+ return -1;
+ }
+ if (recurse_lvl != 0 && **str != '}') {
+ RAISE_SYNTAX_ERROR("f-string: expecting '}'");
+ return -1;
+ }
+
+ FstringParser_check_invariants(state);
+ return 0;
+}
+
+/* Convert the partial state reflected in last_str and expr_list to an
+ expr_ty. The expr_ty can be a Constant, or a JoinedStr. */
+expr_ty
+_PyPegen_FstringParser_Finish(Parser *p, FstringParser *state, Token* first_token,
+ Token *last_token)
+{
+ asdl_seq *seq;
+
+ FstringParser_check_invariants(state);
+
+ /* If we're just a constant string with no expressions, return
+ that. */
+ if (!state->fmode) {
+ assert(!state->expr_list.size);
+ if (!state->last_str) {
+ /* Create a zero length string. */
+ state->last_str = PyUnicode_FromStringAndSize(NULL, 0);
+ if (!state->last_str) {
+ goto error;
+ }
+ }
+ return make_str_node_and_del(p, &state->last_str, first_token, last_token);
+ }
+
+ /* Create a Constant node out of last_str, if needed. It will be the
+ last node in our expression list. */
+ if (state->last_str) {
+ expr_ty str = make_str_node_and_del(p, &state->last_str, first_token, last_token);
+ if (!str || ExprList_Append(&state->expr_list, str) < 0) {
+ goto error;
+ }
+ }
+ /* This has already been freed. */
+ assert(state->last_str == NULL);
+
+ seq = ExprList_Finish(&state->expr_list, p->arena);
+ if (!seq) {
+ goto error;
+ }
+
+ return _Py_JoinedStr(seq, first_token->lineno, first_token->col_offset,
+ last_token->end_lineno, last_token->end_col_offset, p->arena);
+
+error:
+ _PyPegen_FstringParser_Dealloc(state);
+ return NULL;
+}
+
+/* Given an f-string (with no 'f' or quotes) that's in *str and ends
+ at end, parse it into an expr_ty. Return NULL on error. Adjust
+ str to point past the parsed portion. */
+static expr_ty
+fstring_parse(Parser *p, const char **str, const char *end, int raw,
+ int recurse_lvl, Token *first_token, Token* t, Token *last_token)
+{
+ FstringParser state;
+
+ _PyPegen_FstringParser_Init(&state);
+ if (_PyPegen_FstringParser_ConcatFstring(p, &state, str, end, raw, recurse_lvl,
+ first_token, t, last_token) < 0) {
+ _PyPegen_FstringParser_Dealloc(&state);
+ return NULL;
+ }
+
+ return _PyPegen_FstringParser_Finish(p, &state, t, t);
+}
diff --git a/contrib/tools/python3/src/Parser/pegen/parse_string.h b/contrib/tools/python3/src/Parser/pegen/parse_string.h
index 6597ed7de2..cd85bd57d0 100644
--- a/contrib/tools/python3/src/Parser/pegen/parse_string.h
+++ b/contrib/tools/python3/src/Parser/pegen/parse_string.h
@@ -1,46 +1,46 @@
-#ifndef STRINGS_H
-#define STRINGS_H
-
-#include <Python.h>
-#include <Python-ast.h>
-#include "pegen.h"
-
-#define EXPRLIST_N_CACHED 64
-
-typedef struct {
- /* Incrementally build an array of expr_ty, so be used in an
- asdl_seq. Cache some small but reasonably sized number of
- expr_ty's, and then after that start dynamically allocating,
- doubling the number allocated each time. Note that the f-string
- f'{0}a{1}' contains 3 expr_ty's: 2 FormattedValue's, and one
- Constant for the literal 'a'. So you add expr_ty's about twice as
- fast as you add expressions in an f-string. */
-
- Py_ssize_t allocated; /* Number we've allocated. */
- Py_ssize_t size; /* Number we've used. */
- expr_ty *p; /* Pointer to the memory we're actually
- using. Will point to 'data' until we
- start dynamically allocating. */
- expr_ty data[EXPRLIST_N_CACHED];
-} ExprList;
-
-/* The FstringParser is designed to add a mix of strings and
- f-strings, and concat them together as needed. Ultimately, it
- generates an expr_ty. */
-typedef struct {
- PyObject *last_str;
- ExprList expr_list;
- int fmode;
-} FstringParser;
-
-void _PyPegen_FstringParser_Init(FstringParser *);
-int _PyPegen_parsestr(Parser *, int *, int *, PyObject **,
- const char **, Py_ssize_t *, Token *);
-int _PyPegen_FstringParser_ConcatFstring(Parser *, FstringParser *, const char **,
- const char *, int, int, Token *, Token *,
- Token *);
-int _PyPegen_FstringParser_ConcatAndDel(FstringParser *, PyObject *);
-expr_ty _PyPegen_FstringParser_Finish(Parser *, FstringParser *, Token *, Token *);
-void _PyPegen_FstringParser_Dealloc(FstringParser *);
-
-#endif
+#ifndef STRINGS_H
+#define STRINGS_H
+
+#include <Python.h>
+#include <Python-ast.h>
+#include "pegen.h"
+
+#define EXPRLIST_N_CACHED 64
+
+typedef struct {
+ /* Incrementally build an array of expr_ty, so be used in an
+ asdl_seq. Cache some small but reasonably sized number of
+ expr_ty's, and then after that start dynamically allocating,
+ doubling the number allocated each time. Note that the f-string
+ f'{0}a{1}' contains 3 expr_ty's: 2 FormattedValue's, and one
+ Constant for the literal 'a'. So you add expr_ty's about twice as
+ fast as you add expressions in an f-string. */
+
+ Py_ssize_t allocated; /* Number we've allocated. */
+ Py_ssize_t size; /* Number we've used. */
+ expr_ty *p; /* Pointer to the memory we're actually
+ using. Will point to 'data' until we
+ start dynamically allocating. */
+ expr_ty data[EXPRLIST_N_CACHED];
+} ExprList;
+
+/* The FstringParser is designed to add a mix of strings and
+ f-strings, and concat them together as needed. Ultimately, it
+ generates an expr_ty. */
+typedef struct {
+ PyObject *last_str;
+ ExprList expr_list;
+ int fmode;
+} FstringParser;
+
+void _PyPegen_FstringParser_Init(FstringParser *);
+int _PyPegen_parsestr(Parser *, int *, int *, PyObject **,
+ const char **, Py_ssize_t *, Token *);
+int _PyPegen_FstringParser_ConcatFstring(Parser *, FstringParser *, const char **,
+ const char *, int, int, Token *, Token *,
+ Token *);
+int _PyPegen_FstringParser_ConcatAndDel(FstringParser *, PyObject *);
+expr_ty _PyPegen_FstringParser_Finish(Parser *, FstringParser *, Token *, Token *);
+void _PyPegen_FstringParser_Dealloc(FstringParser *);
+
+#endif
diff --git a/contrib/tools/python3/src/Parser/pegen/peg_api.c b/contrib/tools/python3/src/Parser/pegen/peg_api.c
index 10e00a7c75..5e71ecdb13 100644
--- a/contrib/tools/python3/src/Parser/pegen/peg_api.c
+++ b/contrib/tools/python3/src/Parser/pegen/peg_api.c
@@ -1,54 +1,54 @@
-#include "pegen_interface.h"
-
-#include "../tokenizer.h"
-#include "pegen.h"
-
-mod_ty
-PyPegen_ASTFromString(const char *str, const char *filename, int mode,
- PyCompilerFlags *flags, PyArena *arena)
-{
- PyObject *filename_ob = PyUnicode_FromString(filename);
- if (filename_ob == NULL) {
- return NULL;
- }
- mod_ty result = PyPegen_ASTFromStringObject(str, filename_ob, mode, flags, arena);
- Py_XDECREF(filename_ob);
- return result;
-}
-
-mod_ty
-PyPegen_ASTFromStringObject(const char *str, PyObject* filename, int mode,
- PyCompilerFlags *flags, PyArena *arena)
-{
- if (PySys_Audit("compile", "yO", str, filename) < 0) {
- return NULL;
- }
-
- mod_ty result = _PyPegen_run_parser_from_string(str, mode, filename, flags, arena);
- return result;
-}
-
-mod_ty
-PyPegen_ASTFromFilename(const char *filename, int mode, PyCompilerFlags *flags, PyArena *arena)
-{
- PyObject *filename_ob = PyUnicode_FromString(filename);
- if (filename_ob == NULL) {
- return NULL;
- }
-
- mod_ty result = _PyPegen_run_parser_from_file(filename, mode, filename_ob, flags, arena);
- Py_XDECREF(filename_ob);
- return result;
-}
-
-mod_ty
-PyPegen_ASTFromFileObject(FILE *fp, PyObject *filename_ob, int mode,
- const char *enc, const char *ps1, const char* ps2,
- PyCompilerFlags *flags, int *errcode, PyArena *arena)
-{
- if (PySys_Audit("compile", "OO", Py_None, filename_ob) < 0) {
- return NULL;
- }
- return _PyPegen_run_parser_from_file_pointer(fp, mode, filename_ob, enc, ps1, ps2,
- flags, errcode, arena);
-}
+#include "pegen_interface.h"
+
+#include "../tokenizer.h"
+#include "pegen.h"
+
+mod_ty
+PyPegen_ASTFromString(const char *str, const char *filename, int mode,
+ PyCompilerFlags *flags, PyArena *arena)
+{
+ PyObject *filename_ob = PyUnicode_FromString(filename);
+ if (filename_ob == NULL) {
+ return NULL;
+ }
+ mod_ty result = PyPegen_ASTFromStringObject(str, filename_ob, mode, flags, arena);
+ Py_XDECREF(filename_ob);
+ return result;
+}
+
+mod_ty
+PyPegen_ASTFromStringObject(const char *str, PyObject* filename, int mode,
+ PyCompilerFlags *flags, PyArena *arena)
+{
+ if (PySys_Audit("compile", "yO", str, filename) < 0) {
+ return NULL;
+ }
+
+ mod_ty result = _PyPegen_run_parser_from_string(str, mode, filename, flags, arena);
+ return result;
+}
+
+mod_ty
+PyPegen_ASTFromFilename(const char *filename, int mode, PyCompilerFlags *flags, PyArena *arena)
+{
+ PyObject *filename_ob = PyUnicode_FromString(filename);
+ if (filename_ob == NULL) {
+ return NULL;
+ }
+
+ mod_ty result = _PyPegen_run_parser_from_file(filename, mode, filename_ob, flags, arena);
+ Py_XDECREF(filename_ob);
+ return result;
+}
+
+mod_ty
+PyPegen_ASTFromFileObject(FILE *fp, PyObject *filename_ob, int mode,
+ const char *enc, const char *ps1, const char* ps2,
+ PyCompilerFlags *flags, int *errcode, PyArena *arena)
+{
+ if (PySys_Audit("compile", "OO", Py_None, filename_ob) < 0) {
+ return NULL;
+ }
+ return _PyPegen_run_parser_from_file_pointer(fp, mode, filename_ob, enc, ps1, ps2,
+ flags, errcode, arena);
+}
diff --git a/contrib/tools/python3/src/Parser/pegen/pegen.c b/contrib/tools/python3/src/Parser/pegen/pegen.c
index 974cbf41a3..cdfbc12d16 100644
--- a/contrib/tools/python3/src/Parser/pegen/pegen.c
+++ b/contrib/tools/python3/src/Parser/pegen/pegen.c
@@ -1,2280 +1,2280 @@
-#include <Python.h>
-#include <errcode.h>
-#include "../tokenizer.h"
-
-#include "pegen.h"
-#include "parse_string.h"
-#include "ast.h"
-
-PyObject *
-_PyPegen_new_type_comment(Parser *p, char *s)
-{
- PyObject *res = PyUnicode_DecodeUTF8(s, strlen(s), NULL);
- if (res == NULL) {
- return NULL;
- }
- if (PyArena_AddPyObject(p->arena, res) < 0) {
- Py_DECREF(res);
- return NULL;
- }
- return res;
-}
-
-arg_ty
-_PyPegen_add_type_comment_to_arg(Parser *p, arg_ty a, Token *tc)
-{
- if (tc == NULL) {
- return a;
- }
- char *bytes = PyBytes_AsString(tc->bytes);
- if (bytes == NULL) {
- return NULL;
- }
- PyObject *tco = _PyPegen_new_type_comment(p, bytes);
- if (tco == NULL) {
- return NULL;
- }
- return arg(a->arg, a->annotation, tco,
- a->lineno, a->col_offset, a->end_lineno, a->end_col_offset,
- p->arena);
-}
-
-static int
-init_normalization(Parser *p)
-{
- if (p->normalize) {
- return 1;
- }
- PyObject *m = PyImport_ImportModuleNoBlock("unicodedata");
- if (!m)
- {
- return 0;
- }
- p->normalize = PyObject_GetAttrString(m, "normalize");
- Py_DECREF(m);
- if (!p->normalize)
- {
- return 0;
- }
- return 1;
-}
-
-/* Checks if the NOTEQUAL token is valid given the current parser flags
-0 indicates success and nonzero indicates failure (an exception may be set) */
-int
-_PyPegen_check_barry_as_flufl(Parser *p, Token* t) {
- assert(t->bytes != NULL);
- assert(t->type == NOTEQUAL);
-
- char* tok_str = PyBytes_AS_STRING(t->bytes);
- if (p->flags & PyPARSE_BARRY_AS_BDFL && strcmp(tok_str, "<>") != 0) {
- RAISE_SYNTAX_ERROR("with Barry as BDFL, use '<>' instead of '!='");
- return -1;
- }
- if (!(p->flags & PyPARSE_BARRY_AS_BDFL)) {
- return strcmp(tok_str, "!=");
- }
- return 0;
-}
-
-PyObject *
-_PyPegen_new_identifier(Parser *p, char *n)
-{
- PyObject *id = PyUnicode_DecodeUTF8(n, strlen(n), NULL);
- if (!id) {
- goto error;
- }
- /* PyUnicode_DecodeUTF8 should always return a ready string. */
- assert(PyUnicode_IS_READY(id));
- /* Check whether there are non-ASCII characters in the
- identifier; if so, normalize to NFKC. */
- if (!PyUnicode_IS_ASCII(id))
- {
- PyObject *id2;
- if (!init_normalization(p))
- {
- Py_DECREF(id);
- goto error;
- }
- PyObject *form = PyUnicode_InternFromString("NFKC");
- if (form == NULL)
- {
- Py_DECREF(id);
- goto error;
- }
- PyObject *args[2] = {form, id};
- id2 = _PyObject_FastCall(p->normalize, args, 2);
- Py_DECREF(id);
- Py_DECREF(form);
- if (!id2) {
- goto error;
- }
- if (!PyUnicode_Check(id2))
- {
- PyErr_Format(PyExc_TypeError,
- "unicodedata.normalize() must return a string, not "
- "%.200s",
- _PyType_Name(Py_TYPE(id2)));
- Py_DECREF(id2);
- goto error;
- }
- id = id2;
- }
- PyUnicode_InternInPlace(&id);
- if (PyArena_AddPyObject(p->arena, id) < 0)
- {
- Py_DECREF(id);
- goto error;
- }
- return id;
-
-error:
- p->error_indicator = 1;
- return NULL;
-}
-
-static PyObject *
-_create_dummy_identifier(Parser *p)
-{
- return _PyPegen_new_identifier(p, "");
-}
-
-static inline Py_ssize_t
-byte_offset_to_character_offset(PyObject *line, Py_ssize_t col_offset)
-{
- const char *str = PyUnicode_AsUTF8(line);
- if (!str) {
- return 0;
- }
- assert(col_offset >= 0 && (unsigned long)col_offset <= strlen(str));
- PyObject *text = PyUnicode_DecodeUTF8(str, col_offset, "replace");
- if (!text) {
- return 0;
- }
- Py_ssize_t size = PyUnicode_GET_LENGTH(text);
- Py_DECREF(text);
- return size;
-}
-
-const char *
-_PyPegen_get_expr_name(expr_ty e)
-{
- assert(e != NULL);
- switch (e->kind) {
- case Attribute_kind:
- return "attribute";
- case Subscript_kind:
- return "subscript";
- case Starred_kind:
- return "starred";
- case Name_kind:
- return "name";
- case List_kind:
- return "list";
- case Tuple_kind:
- return "tuple";
- case Lambda_kind:
- return "lambda";
- case Call_kind:
- return "function call";
- case BoolOp_kind:
- case BinOp_kind:
- case UnaryOp_kind:
- return "operator";
- case GeneratorExp_kind:
- return "generator expression";
- case Yield_kind:
- case YieldFrom_kind:
- return "yield expression";
- case Await_kind:
- return "await expression";
- case ListComp_kind:
- return "list comprehension";
- case SetComp_kind:
- return "set comprehension";
- case DictComp_kind:
- return "dict comprehension";
- case Dict_kind:
- return "dict display";
- case Set_kind:
- return "set display";
- case JoinedStr_kind:
- case FormattedValue_kind:
- return "f-string expression";
- case Constant_kind: {
- PyObject *value = e->v.Constant.value;
- if (value == Py_None) {
- return "None";
- }
- if (value == Py_False) {
- return "False";
- }
- if (value == Py_True) {
- return "True";
- }
- if (value == Py_Ellipsis) {
- return "Ellipsis";
- }
- return "literal";
- }
- case Compare_kind:
- return "comparison";
- case IfExp_kind:
- return "conditional expression";
- case NamedExpr_kind:
- return "named expression";
- default:
- PyErr_Format(PyExc_SystemError,
- "unexpected expression in assignment %d (line %d)",
- e->kind, e->lineno);
- return NULL;
- }
-}
-
-static int
-raise_decode_error(Parser *p)
-{
- assert(PyErr_Occurred());
- const char *errtype = NULL;
- if (PyErr_ExceptionMatches(PyExc_UnicodeError)) {
- errtype = "unicode error";
- }
- else if (PyErr_ExceptionMatches(PyExc_ValueError)) {
- errtype = "value error";
- }
- if (errtype) {
- PyObject *type;
- PyObject *value;
- PyObject *tback;
- PyObject *errstr;
- PyErr_Fetch(&type, &value, &tback);
- errstr = PyObject_Str(value);
- if (errstr) {
- RAISE_SYNTAX_ERROR("(%s) %U", errtype, errstr);
- Py_DECREF(errstr);
- }
- else {
- PyErr_Clear();
- RAISE_SYNTAX_ERROR("(%s) unknown error", errtype);
- }
- Py_XDECREF(type);
- Py_XDECREF(value);
- Py_XDECREF(tback);
- }
-
- return -1;
-}
-
-static void
-raise_tokenizer_init_error(PyObject *filename)
-{
- if (!(PyErr_ExceptionMatches(PyExc_LookupError)
- || PyErr_ExceptionMatches(PyExc_SyntaxError)
- || PyErr_ExceptionMatches(PyExc_ValueError)
- || PyErr_ExceptionMatches(PyExc_UnicodeDecodeError))) {
- return;
- }
- PyObject *errstr = NULL;
- PyObject *tuple = NULL;
- PyObject *type;
- PyObject *value;
- PyObject *tback;
- PyErr_Fetch(&type, &value, &tback);
- errstr = PyObject_Str(value);
- if (!errstr) {
- goto error;
- }
-
- PyObject *tmp = Py_BuildValue("(OiiO)", filename, 0, -1, Py_None);
- if (!tmp) {
- goto error;
- }
-
- tuple = PyTuple_Pack(2, errstr, tmp);
- Py_DECREF(tmp);
- if (!value) {
- goto error;
- }
- PyErr_SetObject(PyExc_SyntaxError, tuple);
-
-error:
- Py_XDECREF(type);
- Py_XDECREF(value);
- Py_XDECREF(tback);
- Py_XDECREF(errstr);
- Py_XDECREF(tuple);
-}
-
-static int
-tokenizer_error(Parser *p)
-{
- if (PyErr_Occurred()) {
- return -1;
- }
-
- const char *msg = NULL;
- PyObject* errtype = PyExc_SyntaxError;
- Py_ssize_t col_offset = -1;
- switch (p->tok->done) {
- case E_TOKEN:
- msg = "invalid token";
- break;
- case E_EOFS:
- RAISE_SYNTAX_ERROR("EOF while scanning triple-quoted string literal");
- return -1;
- case E_EOLS:
- RAISE_SYNTAX_ERROR("EOL while scanning string literal");
- return -1;
- case E_EOF:
- RAISE_SYNTAX_ERROR("unexpected EOF while parsing");
- return -1;
- case E_DEDENT:
- RAISE_INDENTATION_ERROR("unindent does not match any outer indentation level");
- return -1;
- case E_INTR:
- if (!PyErr_Occurred()) {
- PyErr_SetNone(PyExc_KeyboardInterrupt);
- }
- return -1;
- case E_NOMEM:
- PyErr_NoMemory();
- return -1;
- case E_TABSPACE:
- errtype = PyExc_TabError;
- msg = "inconsistent use of tabs and spaces in indentation";
- break;
- case E_TOODEEP:
- errtype = PyExc_IndentationError;
- msg = "too many levels of indentation";
- break;
- case E_LINECONT: {
- col_offset = p->tok->cur - p->tok->buf - 1;
- msg = "unexpected character after line continuation character";
- break;
- }
- default:
- msg = "unknown parsing error";
- }
-
- RAISE_ERROR_KNOWN_LOCATION(p, errtype, p->tok->lineno,
- col_offset >= 0 ? col_offset : 0, msg);
- return -1;
-}
-
-void *
-_PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...)
-{
- if (p->fill == 0) {
- va_list va;
- va_start(va, errmsg);
- _PyPegen_raise_error_known_location(p, errtype, 0, 0, errmsg, va);
- va_end(va);
- return NULL;
- }
-
- Token *t = p->known_err_token != NULL ? p->known_err_token : p->tokens[p->fill - 1];
- Py_ssize_t col_offset;
- if (t->col_offset == -1) {
- col_offset = Py_SAFE_DOWNCAST(p->tok->cur - p->tok->buf,
- intptr_t, int);
- } else {
- col_offset = t->col_offset + 1;
- }
-
- va_list va;
- va_start(va, errmsg);
- _PyPegen_raise_error_known_location(p, errtype, t->lineno,
- col_offset, errmsg, va);
- va_end(va);
-
- return NULL;
-}
-
-void *
-_PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
- Py_ssize_t lineno, Py_ssize_t col_offset,
- const char *errmsg, va_list va)
-{
- PyObject *value = NULL;
- PyObject *errstr = NULL;
- PyObject *error_line = NULL;
- PyObject *tmp = NULL;
- p->error_indicator = 1;
-
- if (p->start_rule == Py_fstring_input) {
- const char *fstring_msg = "f-string: ";
- Py_ssize_t len = strlen(fstring_msg) + strlen(errmsg);
-
- char *new_errmsg = PyMem_RawMalloc(len + 1); // Lengths of both strings plus NULL character
- if (!new_errmsg) {
- return (void *) PyErr_NoMemory();
- }
-
- // Copy both strings into new buffer
- memcpy(new_errmsg, fstring_msg, strlen(fstring_msg));
- memcpy(new_errmsg + strlen(fstring_msg), errmsg, strlen(errmsg));
- new_errmsg[len] = 0;
- errmsg = new_errmsg;
- }
- errstr = PyUnicode_FromFormatV(errmsg, va);
- if (!errstr) {
- goto error;
- }
-
- if (p->start_rule == Py_file_input) {
- error_line = PyErr_ProgramTextObject(p->tok->filename, (int) lineno);
- }
-
- if (!error_line) {
- Py_ssize_t size = p->tok->inp - p->tok->buf;
- error_line = PyUnicode_DecodeUTF8(p->tok->buf, size, "replace");
- if (!error_line) {
- goto error;
- }
- }
-
- if (p->start_rule == Py_fstring_input) {
- col_offset -= p->starting_col_offset;
- }
- Py_ssize_t col_number = col_offset;
-
- if (p->tok->encoding != NULL) {
- col_number = byte_offset_to_character_offset(error_line, col_offset);
- }
-
- tmp = Py_BuildValue("(OiiN)", p->tok->filename, lineno, col_number, error_line);
- if (!tmp) {
- goto error;
- }
- value = PyTuple_Pack(2, errstr, tmp);
- Py_DECREF(tmp);
- if (!value) {
- goto error;
- }
- PyErr_SetObject(errtype, value);
-
- Py_DECREF(errstr);
- Py_DECREF(value);
- if (p->start_rule == Py_fstring_input) {
- PyMem_RawFree((void *)errmsg);
- }
- return NULL;
-
-error:
- Py_XDECREF(errstr);
- Py_XDECREF(error_line);
- if (p->start_rule == Py_fstring_input) {
- PyMem_RawFree((void *)errmsg);
- }
- return NULL;
-}
-
-#if 0
-static const char *
-token_name(int type)
-{
- if (0 <= type && type <= N_TOKENS) {
- return _PyParser_TokenNames[type];
- }
- return "<Huh?>";
-}
-#endif
-
-// Here, mark is the start of the node, while p->mark is the end.
-// If node==NULL, they should be the same.
-int
-_PyPegen_insert_memo(Parser *p, int mark, int type, void *node)
-{
- // Insert in front
- Memo *m = PyArena_Malloc(p->arena, sizeof(Memo));
- if (m == NULL) {
- return -1;
- }
- m->type = type;
- m->node = node;
- m->mark = p->mark;
- m->next = p->tokens[mark]->memo;
- p->tokens[mark]->memo = m;
- return 0;
-}
-
-// Like _PyPegen_insert_memo(), but updates an existing node if found.
-int
-_PyPegen_update_memo(Parser *p, int mark, int type, void *node)
-{
- for (Memo *m = p->tokens[mark]->memo; m != NULL; m = m->next) {
- if (m->type == type) {
- // Update existing node.
- m->node = node;
- m->mark = p->mark;
- return 0;
- }
- }
- // Insert new node.
- return _PyPegen_insert_memo(p, mark, type, node);
-}
-
-// Return dummy NAME.
-void *
-_PyPegen_dummy_name(Parser *p, ...)
-{
- static void *cache = NULL;
-
- if (cache != NULL) {
- return cache;
- }
-
- PyObject *id = _create_dummy_identifier(p);
- if (!id) {
- return NULL;
- }
- cache = Name(id, Load, 1, 0, 1, 0, p->arena);
- return cache;
-}
-
-static int
-_get_keyword_or_name_type(Parser *p, const char *name, int name_len)
-{
- assert(name_len > 0);
- if (name_len >= p->n_keyword_lists ||
- p->keywords[name_len] == NULL ||
- p->keywords[name_len]->type == -1) {
- return NAME;
- }
- for (KeywordToken *k = p->keywords[name_len]; k != NULL && k->type != -1; k++) {
- if (strncmp(k->str, name, name_len) == 0) {
- return k->type;
- }
- }
- return NAME;
-}
-
-static int
-growable_comment_array_init(growable_comment_array *arr, size_t initial_size) {
- assert(initial_size > 0);
- arr->items = PyMem_Malloc(initial_size * sizeof(*arr->items));
- arr->size = initial_size;
- arr->num_items = 0;
-
- return arr->items != NULL;
-}
-
-static int
-growable_comment_array_add(growable_comment_array *arr, int lineno, char *comment) {
- if (arr->num_items >= arr->size) {
- size_t new_size = arr->size * 2;
- void *new_items_array = PyMem_Realloc(arr->items, new_size * sizeof(*arr->items));
- if (!new_items_array) {
- return 0;
- }
- arr->items = new_items_array;
- arr->size = new_size;
- }
-
- arr->items[arr->num_items].lineno = lineno;
- arr->items[arr->num_items].comment = comment; // Take ownership
- arr->num_items++;
- return 1;
-}
-
-static void
-growable_comment_array_deallocate(growable_comment_array *arr) {
- for (unsigned i = 0; i < arr->num_items; i++) {
- PyMem_Free(arr->items[i].comment);
- }
- PyMem_Free(arr->items);
-}
-
-int
-_PyPegen_fill_token(Parser *p)
-{
- const char *start;
- const char *end;
- int type = PyTokenizer_Get(p->tok, &start, &end);
-
- // Record and skip '# type: ignore' comments
- while (type == TYPE_IGNORE) {
- Py_ssize_t len = end - start;
- char *tag = PyMem_Malloc(len + 1);
- if (tag == NULL) {
- PyErr_NoMemory();
- return -1;
- }
- strncpy(tag, start, len);
- tag[len] = '\0';
- // Ownership of tag passes to the growable array
- if (!growable_comment_array_add(&p->type_ignore_comments, p->tok->lineno, tag)) {
- PyErr_NoMemory();
- return -1;
- }
- type = PyTokenizer_Get(p->tok, &start, &end);
- }
-
- if (type == ENDMARKER && p->start_rule == Py_single_input && p->parsing_started) {
- type = NEWLINE; /* Add an extra newline */
- p->parsing_started = 0;
-
- if (p->tok->indent && !(p->flags & PyPARSE_DONT_IMPLY_DEDENT)) {
- p->tok->pendin = -p->tok->indent;
- p->tok->indent = 0;
- }
- }
- else {
- p->parsing_started = 1;
- }
-
- if (p->fill == p->size) {
- int newsize = p->size * 2;
- Token **new_tokens = PyMem_Realloc(p->tokens, newsize * sizeof(Token *));
- if (new_tokens == NULL) {
- PyErr_NoMemory();
- return -1;
- }
- p->tokens = new_tokens;
-
- for (int i = p->size; i < newsize; i++) {
- p->tokens[i] = PyMem_Malloc(sizeof(Token));
- if (p->tokens[i] == NULL) {
- p->size = i; // Needed, in order to cleanup correctly after parser fails
- PyErr_NoMemory();
- return -1;
- }
- memset(p->tokens[i], '\0', sizeof(Token));
- }
- p->size = newsize;
- }
-
- Token *t = p->tokens[p->fill];
- t->type = (type == NAME) ? _get_keyword_or_name_type(p, start, (int)(end - start)) : type;
- t->bytes = PyBytes_FromStringAndSize(start, end - start);
- if (t->bytes == NULL) {
- return -1;
- }
- if (PyArena_AddPyObject(p->arena, t->bytes) < 0) {
- Py_DECREF(t->bytes);
- return -1;
- }
-
- int lineno = type == STRING ? p->tok->first_lineno : p->tok->lineno;
- const char *line_start = type == STRING ? p->tok->multi_line_start : p->tok->line_start;
- int end_lineno = p->tok->lineno;
- int col_offset = -1;
- int end_col_offset = -1;
- if (start != NULL && start >= line_start) {
- col_offset = (int)(start - line_start);
- }
- if (end != NULL && end >= p->tok->line_start) {
- end_col_offset = (int)(end - p->tok->line_start);
- }
-
- t->lineno = p->starting_lineno + lineno;
- t->col_offset = p->tok->lineno == 1 ? p->starting_col_offset + col_offset : col_offset;
- t->end_lineno = p->starting_lineno + end_lineno;
- t->end_col_offset = p->tok->lineno == 1 ? p->starting_col_offset + end_col_offset : end_col_offset;
-
- p->fill += 1;
-
- if (type == ERRORTOKEN) {
- if (p->tok->done == E_DECODE) {
- return raise_decode_error(p);
- }
- return tokenizer_error(p);
-
- }
-
- return 0;
-}
-
-// Instrumentation to count the effectiveness of memoization.
-// The array counts the number of tokens skipped by memoization,
-// indexed by type.
-
-#define NSTATISTICS 2000
-static long memo_statistics[NSTATISTICS];
-
-void
-_PyPegen_clear_memo_statistics()
-{
- for (int i = 0; i < NSTATISTICS; i++) {
- memo_statistics[i] = 0;
- }
-}
-
-PyObject *
-_PyPegen_get_memo_statistics()
-{
- PyObject *ret = PyList_New(NSTATISTICS);
- if (ret == NULL) {
- return NULL;
- }
- for (int i = 0; i < NSTATISTICS; i++) {
- PyObject *value = PyLong_FromLong(memo_statistics[i]);
- if (value == NULL) {
- Py_DECREF(ret);
- return NULL;
- }
- // PyList_SetItem borrows a reference to value.
- if (PyList_SetItem(ret, i, value) < 0) {
- Py_DECREF(ret);
- return NULL;
- }
- }
- return ret;
-}
-
-int // bool
-_PyPegen_is_memoized(Parser *p, int type, void *pres)
-{
- if (p->mark == p->fill) {
- if (_PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- return -1;
- }
- }
-
- Token *t = p->tokens[p->mark];
-
- for (Memo *m = t->memo; m != NULL; m = m->next) {
- if (m->type == type) {
- if (0 <= type && type < NSTATISTICS) {
- long count = m->mark - p->mark;
- // A memoized negative result counts for one.
- if (count <= 0) {
- count = 1;
- }
- memo_statistics[type] += count;
- }
- p->mark = m->mark;
- *(void **)(pres) = m->node;
- return 1;
- }
- }
- return 0;
-}
-
-int
-_PyPegen_lookahead_with_name(int positive, expr_ty (func)(Parser *), Parser *p)
-{
- int mark = p->mark;
- void *res = func(p);
- p->mark = mark;
- return (res != NULL) == positive;
-}
-
-int
-_PyPegen_lookahead_with_string(int positive, expr_ty (func)(Parser *, const char*), Parser *p, const char* arg)
-{
- int mark = p->mark;
- void *res = func(p, arg);
- p->mark = mark;
- return (res != NULL) == positive;
-}
-
-int
-_PyPegen_lookahead_with_int(int positive, Token *(func)(Parser *, int), Parser *p, int arg)
-{
- int mark = p->mark;
- void *res = func(p, arg);
- p->mark = mark;
- return (res != NULL) == positive;
-}
-
-int
-_PyPegen_lookahead(int positive, void *(func)(Parser *), Parser *p)
-{
- int mark = p->mark;
- void *res = (void*)func(p);
- p->mark = mark;
- return (res != NULL) == positive;
-}
-
-Token *
-_PyPegen_expect_token(Parser *p, int type)
-{
- if (p->mark == p->fill) {
- if (_PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- return NULL;
- }
- }
- Token *t = p->tokens[p->mark];
- if (t->type != type) {
- return NULL;
- }
- p->mark += 1;
- return t;
-}
-
-expr_ty
-_PyPegen_expect_soft_keyword(Parser *p, const char *keyword)
-{
- if (p->mark == p->fill) {
- if (_PyPegen_fill_token(p) < 0) {
- p->error_indicator = 1;
- return NULL;
- }
- }
- Token *t = p->tokens[p->mark];
- if (t->type != NAME) {
- return NULL;
- }
- char* s = PyBytes_AsString(t->bytes);
- if (!s) {
- p->error_indicator = 1;
- return NULL;
- }
- if (strcmp(s, keyword) != 0) {
- return NULL;
- }
- return _PyPegen_name_token(p);
-}
-
-Token *
-_PyPegen_get_last_nonnwhitespace_token(Parser *p)
-{
- assert(p->mark >= 0);
- Token *token = NULL;
- for (int m = p->mark - 1; m >= 0; m--) {
- token = p->tokens[m];
- if (token->type != ENDMARKER && (token->type < NEWLINE || token->type > DEDENT)) {
- break;
- }
- }
- return token;
-}
-
-expr_ty
-_PyPegen_name_token(Parser *p)
-{
- Token *t = _PyPegen_expect_token(p, NAME);
- if (t == NULL) {
- return NULL;
- }
- char* s = PyBytes_AsString(t->bytes);
- if (!s) {
- p->error_indicator = 1;
- return NULL;
- }
- PyObject *id = _PyPegen_new_identifier(p, s);
- if (id == NULL) {
- p->error_indicator = 1;
- return NULL;
- }
- return Name(id, Load, t->lineno, t->col_offset, t->end_lineno, t->end_col_offset,
- p->arena);
-}
-
-void *
-_PyPegen_string_token(Parser *p)
-{
- return _PyPegen_expect_token(p, STRING);
-}
-
-static PyObject *
-parsenumber_raw(const char *s)
-{
- const char *end;
- long x;
- double dx;
- Py_complex compl;
- int imflag;
-
- assert(s != NULL);
- errno = 0;
- end = s + strlen(s) - 1;
- imflag = *end == 'j' || *end == 'J';
- if (s[0] == '0') {
- x = (long)PyOS_strtoul(s, (char **)&end, 0);
- if (x < 0 && errno == 0) {
- return PyLong_FromString(s, (char **)0, 0);
- }
- }
- else {
- x = PyOS_strtol(s, (char **)&end, 0);
- }
- if (*end == '\0') {
- if (errno != 0) {
- return PyLong_FromString(s, (char **)0, 0);
- }
- return PyLong_FromLong(x);
- }
- /* XXX Huge floats may silently fail */
- if (imflag) {
- compl.real = 0.;
- compl.imag = PyOS_string_to_double(s, (char **)&end, NULL);
- if (compl.imag == -1.0 && PyErr_Occurred()) {
- return NULL;
- }
- return PyComplex_FromCComplex(compl);
- }
- dx = PyOS_string_to_double(s, NULL, NULL);
- if (dx == -1.0 && PyErr_Occurred()) {
- return NULL;
- }
- return PyFloat_FromDouble(dx);
-}
-
-static PyObject *
-parsenumber(const char *s)
-{
- char *dup;
- char *end;
- PyObject *res = NULL;
-
- assert(s != NULL);
-
- if (strchr(s, '_') == NULL) {
- return parsenumber_raw(s);
- }
- /* Create a duplicate without underscores. */
- dup = PyMem_Malloc(strlen(s) + 1);
- if (dup == NULL) {
- return PyErr_NoMemory();
- }
- end = dup;
- for (; *s; s++) {
- if (*s != '_') {
- *end++ = *s;
- }
- }
- *end = '\0';
- res = parsenumber_raw(dup);
- PyMem_Free(dup);
- return res;
-}
-
-expr_ty
-_PyPegen_number_token(Parser *p)
-{
- Token *t = _PyPegen_expect_token(p, NUMBER);
- if (t == NULL) {
- return NULL;
- }
-
- char *num_raw = PyBytes_AsString(t->bytes);
- if (num_raw == NULL) {
- p->error_indicator = 1;
- return NULL;
- }
-
- if (p->feature_version < 6 && strchr(num_raw, '_') != NULL) {
- p->error_indicator = 1;
- return RAISE_SYNTAX_ERROR("Underscores in numeric literals are only supported "
- "in Python 3.6 and greater");
- }
-
- PyObject *c = parsenumber(num_raw);
-
- if (c == NULL) {
- p->error_indicator = 1;
- return NULL;
- }
-
- if (PyArena_AddPyObject(p->arena, c) < 0) {
- Py_DECREF(c);
- p->error_indicator = 1;
- return NULL;
- }
-
- return Constant(c, NULL, t->lineno, t->col_offset, t->end_lineno, t->end_col_offset,
- p->arena);
-}
-
-static int // bool
-newline_in_string(Parser *p, const char *cur)
-{
- for (const char *c = cur; c >= p->tok->buf; c--) {
- if (*c == '\'' || *c == '"') {
- return 1;
- }
- }
- return 0;
-}
-
-/* Check that the source for a single input statement really is a single
- statement by looking at what is left in the buffer after parsing.
- Trailing whitespace and comments are OK. */
-static int // bool
-bad_single_statement(Parser *p)
-{
- const char *cur = strchr(p->tok->buf, '\n');
-
- /* Newlines are allowed if preceded by a line continuation character
- or if they appear inside a string. */
- if (!cur || (cur != p->tok->buf && *(cur - 1) == '\\')
- || newline_in_string(p, cur)) {
- return 0;
- }
- char c = *cur;
-
- for (;;) {
- while (c == ' ' || c == '\t' || c == '\n' || c == '\014') {
- c = *++cur;
- }
-
- if (!c) {
- return 0;
- }
-
- if (c != '#') {
- return 1;
- }
-
- /* Suck up comment. */
- while (c && c != '\n') {
- c = *++cur;
- }
- }
-}
-
-void
-_PyPegen_Parser_Free(Parser *p)
-{
- Py_XDECREF(p->normalize);
- for (int i = 0; i < p->size; i++) {
- PyMem_Free(p->tokens[i]);
- }
- PyMem_Free(p->tokens);
- growable_comment_array_deallocate(&p->type_ignore_comments);
- PyMem_Free(p);
-}
-
-static int
-compute_parser_flags(PyCompilerFlags *flags)
-{
- int parser_flags = 0;
- if (!flags) {
- return 0;
- }
- if (flags->cf_flags & PyCF_DONT_IMPLY_DEDENT) {
- parser_flags |= PyPARSE_DONT_IMPLY_DEDENT;
- }
- if (flags->cf_flags & PyCF_IGNORE_COOKIE) {
- parser_flags |= PyPARSE_IGNORE_COOKIE;
- }
- if (flags->cf_flags & CO_FUTURE_BARRY_AS_BDFL) {
- parser_flags |= PyPARSE_BARRY_AS_BDFL;
- }
- if (flags->cf_flags & PyCF_TYPE_COMMENTS) {
- parser_flags |= PyPARSE_TYPE_COMMENTS;
- }
- if ((flags->cf_flags & PyCF_ONLY_AST) && flags->cf_feature_version < 7) {
- parser_flags |= PyPARSE_ASYNC_HACKS;
- }
- return parser_flags;
-}
-
-Parser *
-_PyPegen_Parser_New(struct tok_state *tok, int start_rule, int flags,
- int feature_version, int *errcode, PyArena *arena)
-{
- Parser *p = PyMem_Malloc(sizeof(Parser));
- if (p == NULL) {
- return (Parser *) PyErr_NoMemory();
- }
- assert(tok != NULL);
- tok->type_comments = (flags & PyPARSE_TYPE_COMMENTS) > 0;
- tok->async_hacks = (flags & PyPARSE_ASYNC_HACKS) > 0;
- p->tok = tok;
- p->keywords = NULL;
- p->n_keyword_lists = -1;
- p->tokens = PyMem_Malloc(sizeof(Token *));
- if (!p->tokens) {
- PyMem_Free(p);
- return (Parser *) PyErr_NoMemory();
- }
- p->tokens[0] = PyMem_Calloc(1, sizeof(Token));
- if (!p->tokens) {
- PyMem_Free(p->tokens);
- PyMem_Free(p);
- return (Parser *) PyErr_NoMemory();
- }
- if (!growable_comment_array_init(&p->type_ignore_comments, 10)) {
- PyMem_Free(p->tokens[0]);
- PyMem_Free(p->tokens);
- PyMem_Free(p);
- return (Parser *) PyErr_NoMemory();
- }
-
- p->mark = 0;
- p->fill = 0;
- p->size = 1;
-
- p->errcode = errcode;
- p->arena = arena;
- p->start_rule = start_rule;
- p->parsing_started = 0;
- p->normalize = NULL;
- p->error_indicator = 0;
-
- p->starting_lineno = 0;
- p->starting_col_offset = 0;
- p->flags = flags;
- p->feature_version = feature_version;
- p->known_err_token = NULL;
- p->level = 0;
- p->call_invalid_rules = 0;
-
- return p;
-}
-
-static void
-reset_parser_state(Parser *p)
-{
- for (int i = 0; i < p->fill; i++) {
- p->tokens[i]->memo = NULL;
- }
- p->mark = 0;
- p->call_invalid_rules = 1;
-}
-
-void *
-_PyPegen_run_parser(Parser *p)
-{
- void *res = _PyPegen_parse(p);
- if (res == NULL) {
- reset_parser_state(p);
- _PyPegen_parse(p);
- if (PyErr_Occurred()) {
- return NULL;
- }
- if (p->fill == 0) {
- RAISE_SYNTAX_ERROR("error at start before reading any input");
- }
- else if (p->tok->done == E_EOF) {
- RAISE_SYNTAX_ERROR("unexpected EOF while parsing");
- }
- else {
- if (p->tokens[p->fill-1]->type == INDENT) {
- RAISE_INDENTATION_ERROR("unexpected indent");
- }
- else if (p->tokens[p->fill-1]->type == DEDENT) {
- RAISE_INDENTATION_ERROR("unexpected unindent");
- }
- else {
- RAISE_SYNTAX_ERROR("invalid syntax");
- }
- }
- return NULL;
- }
-
- if (p->start_rule == Py_single_input && bad_single_statement(p)) {
- p->tok->done = E_BADSINGLE; // This is not necessary for now, but might be in the future
- return RAISE_SYNTAX_ERROR("multiple statements found while compiling a single statement");
- }
-
-#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
- if (p->start_rule == Py_single_input ||
- p->start_rule == Py_file_input ||
- p->start_rule == Py_eval_input)
- {
- assert(PyAST_Validate(res));
- }
-#endif
- return res;
-}
-
-mod_ty
-_PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filename_ob,
- const char *enc, const char *ps1, const char *ps2,
- PyCompilerFlags *flags, int *errcode, PyArena *arena)
-{
- struct tok_state *tok = PyTokenizer_FromFile(fp, enc, ps1, ps2);
- if (tok == NULL) {
- if (PyErr_Occurred()) {
- raise_tokenizer_init_error(filename_ob);
- return NULL;
- }
- return NULL;
- }
- // This transfers the ownership to the tokenizer
- tok->filename = filename_ob;
- Py_INCREF(filename_ob);
-
- // From here on we need to clean up even if there's an error
- mod_ty result = NULL;
-
- int parser_flags = compute_parser_flags(flags);
- Parser *p = _PyPegen_Parser_New(tok, start_rule, parser_flags, PY_MINOR_VERSION,
- errcode, arena);
- if (p == NULL) {
- goto error;
- }
-
- result = _PyPegen_run_parser(p);
- _PyPegen_Parser_Free(p);
-
-error:
- PyTokenizer_Free(tok);
- return result;
-}
-
-mod_ty
-_PyPegen_run_parser_from_file(const char *filename, int start_rule,
- PyObject *filename_ob, PyCompilerFlags *flags, PyArena *arena)
-{
- FILE *fp = fopen(filename, "rb");
- if (fp == NULL) {
- PyErr_SetFromErrnoWithFilename(PyExc_OSError, filename);
- return NULL;
- }
-
- mod_ty result = _PyPegen_run_parser_from_file_pointer(fp, start_rule, filename_ob,
- NULL, NULL, NULL, flags, NULL, arena);
-
- fclose(fp);
- return result;
-}
-
-mod_ty
-_PyPegen_run_parser_from_string(const char *str, int start_rule, PyObject *filename_ob,
- PyCompilerFlags *flags, PyArena *arena)
-{
- int exec_input = start_rule == Py_file_input;
-
- struct tok_state *tok;
- if (flags != NULL && flags->cf_flags & PyCF_IGNORE_COOKIE) {
- tok = PyTokenizer_FromUTF8(str, exec_input);
- } else {
- tok = PyTokenizer_FromString(str, exec_input);
- }
- if (tok == NULL) {
- if (PyErr_Occurred()) {
- raise_tokenizer_init_error(filename_ob);
- }
- return NULL;
- }
- // This transfers the ownership to the tokenizer
- tok->filename = filename_ob;
- Py_INCREF(filename_ob);
-
- // We need to clear up from here on
- mod_ty result = NULL;
-
- int parser_flags = compute_parser_flags(flags);
- int feature_version = flags && (flags->cf_flags & PyCF_ONLY_AST) ?
- flags->cf_feature_version : PY_MINOR_VERSION;
- Parser *p = _PyPegen_Parser_New(tok, start_rule, parser_flags, feature_version,
- NULL, arena);
- if (p == NULL) {
- goto error;
- }
-
- result = _PyPegen_run_parser(p);
- _PyPegen_Parser_Free(p);
-
-error:
- PyTokenizer_Free(tok);
- return result;
-}
-
-void *
-_PyPegen_interactive_exit(Parser *p)
-{
- if (p->errcode) {
- *(p->errcode) = E_EOF;
- }
- return NULL;
-}
-
-/* Creates a single-element asdl_seq* that contains a */
-asdl_seq *
-_PyPegen_singleton_seq(Parser *p, void *a)
-{
- assert(a != NULL);
- asdl_seq *seq = _Py_asdl_seq_new(1, p->arena);
- if (!seq) {
- return NULL;
- }
- asdl_seq_SET(seq, 0, a);
- return seq;
-}
-
-/* Creates a copy of seq and prepends a to it */
-asdl_seq *
-_PyPegen_seq_insert_in_front(Parser *p, void *a, asdl_seq *seq)
-{
- assert(a != NULL);
- if (!seq) {
- return _PyPegen_singleton_seq(p, a);
- }
-
- asdl_seq *new_seq = _Py_asdl_seq_new(asdl_seq_LEN(seq) + 1, p->arena);
- if (!new_seq) {
- return NULL;
- }
-
- asdl_seq_SET(new_seq, 0, a);
- for (Py_ssize_t i = 1, l = asdl_seq_LEN(new_seq); i < l; i++) {
- asdl_seq_SET(new_seq, i, asdl_seq_GET(seq, i - 1));
- }
- return new_seq;
-}
-
-/* Creates a copy of seq and appends a to it */
-asdl_seq *
-_PyPegen_seq_append_to_end(Parser *p, asdl_seq *seq, void *a)
-{
- assert(a != NULL);
- if (!seq) {
- return _PyPegen_singleton_seq(p, a);
- }
-
- asdl_seq *new_seq = _Py_asdl_seq_new(asdl_seq_LEN(seq) + 1, p->arena);
- if (!new_seq) {
- return NULL;
- }
-
- for (Py_ssize_t i = 0, l = asdl_seq_LEN(new_seq); i + 1 < l; i++) {
- asdl_seq_SET(new_seq, i, asdl_seq_GET(seq, i));
- }
- asdl_seq_SET(new_seq, asdl_seq_LEN(new_seq) - 1, a);
- return new_seq;
-}
-
-static Py_ssize_t
-_get_flattened_seq_size(asdl_seq *seqs)
-{
- Py_ssize_t size = 0;
- for (Py_ssize_t i = 0, l = asdl_seq_LEN(seqs); i < l; i++) {
- asdl_seq *inner_seq = asdl_seq_GET(seqs, i);
- size += asdl_seq_LEN(inner_seq);
- }
- return size;
-}
-
-/* Flattens an asdl_seq* of asdl_seq*s */
-asdl_seq *
-_PyPegen_seq_flatten(Parser *p, asdl_seq *seqs)
-{
- Py_ssize_t flattened_seq_size = _get_flattened_seq_size(seqs);
- assert(flattened_seq_size > 0);
-
- asdl_seq *flattened_seq = _Py_asdl_seq_new(flattened_seq_size, p->arena);
- if (!flattened_seq) {
- return NULL;
- }
-
- int flattened_seq_idx = 0;
- for (Py_ssize_t i = 0, l = asdl_seq_LEN(seqs); i < l; i++) {
- asdl_seq *inner_seq = asdl_seq_GET(seqs, i);
- for (Py_ssize_t j = 0, li = asdl_seq_LEN(inner_seq); j < li; j++) {
- asdl_seq_SET(flattened_seq, flattened_seq_idx++, asdl_seq_GET(inner_seq, j));
- }
- }
- assert(flattened_seq_idx == flattened_seq_size);
-
- return flattened_seq;
-}
-
-/* Creates a new name of the form <first_name>.<second_name> */
-expr_ty
-_PyPegen_join_names_with_dot(Parser *p, expr_ty first_name, expr_ty second_name)
-{
- assert(first_name != NULL && second_name != NULL);
- PyObject *first_identifier = first_name->v.Name.id;
- PyObject *second_identifier = second_name->v.Name.id;
-
- if (PyUnicode_READY(first_identifier) == -1) {
- return NULL;
- }
- if (PyUnicode_READY(second_identifier) == -1) {
- return NULL;
- }
- const char *first_str = PyUnicode_AsUTF8(first_identifier);
- if (!first_str) {
- return NULL;
- }
- const char *second_str = PyUnicode_AsUTF8(second_identifier);
- if (!second_str) {
- return NULL;
- }
- Py_ssize_t len = strlen(first_str) + strlen(second_str) + 1; // +1 for the dot
-
- PyObject *str = PyBytes_FromStringAndSize(NULL, len);
- if (!str) {
- return NULL;
- }
-
- char *s = PyBytes_AS_STRING(str);
- if (!s) {
- return NULL;
- }
-
- strcpy(s, first_str);
- s += strlen(first_str);
- *s++ = '.';
- strcpy(s, second_str);
- s += strlen(second_str);
- *s = '\0';
-
- PyObject *uni = PyUnicode_DecodeUTF8(PyBytes_AS_STRING(str), PyBytes_GET_SIZE(str), NULL);
- Py_DECREF(str);
- if (!uni) {
- return NULL;
- }
- PyUnicode_InternInPlace(&uni);
- if (PyArena_AddPyObject(p->arena, uni) < 0) {
- Py_DECREF(uni);
- return NULL;
- }
-
- return _Py_Name(uni, Load, EXTRA_EXPR(first_name, second_name));
-}
-
-/* Counts the total number of dots in seq's tokens */
-int
-_PyPegen_seq_count_dots(asdl_seq *seq)
-{
- int number_of_dots = 0;
- for (Py_ssize_t i = 0, l = asdl_seq_LEN(seq); i < l; i++) {
- Token *current_expr = asdl_seq_GET(seq, i);
- switch (current_expr->type) {
- case ELLIPSIS:
- number_of_dots += 3;
- break;
- case DOT:
- number_of_dots += 1;
- break;
- default:
- Py_UNREACHABLE();
- }
- }
-
- return number_of_dots;
-}
-
-/* Creates an alias with '*' as the identifier name */
-alias_ty
-_PyPegen_alias_for_star(Parser *p)
-{
- PyObject *str = PyUnicode_InternFromString("*");
- if (!str) {
- return NULL;
- }
- if (PyArena_AddPyObject(p->arena, str) < 0) {
- Py_DECREF(str);
- return NULL;
- }
- return alias(str, NULL, p->arena);
-}
-
-/* Creates a new asdl_seq* with the identifiers of all the names in seq */
-asdl_seq *
-_PyPegen_map_names_to_ids(Parser *p, asdl_seq *seq)
-{
- Py_ssize_t len = asdl_seq_LEN(seq);
- assert(len > 0);
-
- asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
- if (!new_seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- expr_ty e = asdl_seq_GET(seq, i);
- asdl_seq_SET(new_seq, i, e->v.Name.id);
- }
- return new_seq;
-}
-
-/* Constructs a CmpopExprPair */
-CmpopExprPair *
-_PyPegen_cmpop_expr_pair(Parser *p, cmpop_ty cmpop, expr_ty expr)
-{
- assert(expr != NULL);
- CmpopExprPair *a = PyArena_Malloc(p->arena, sizeof(CmpopExprPair));
- if (!a) {
- return NULL;
- }
- a->cmpop = cmpop;
- a->expr = expr;
- return a;
-}
-
-asdl_int_seq *
-_PyPegen_get_cmpops(Parser *p, asdl_seq *seq)
-{
- Py_ssize_t len = asdl_seq_LEN(seq);
- assert(len > 0);
-
- asdl_int_seq *new_seq = _Py_asdl_int_seq_new(len, p->arena);
- if (!new_seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- CmpopExprPair *pair = asdl_seq_GET(seq, i);
- asdl_seq_SET(new_seq, i, pair->cmpop);
- }
- return new_seq;
-}
-
-asdl_seq *
-_PyPegen_get_exprs(Parser *p, asdl_seq *seq)
-{
- Py_ssize_t len = asdl_seq_LEN(seq);
- assert(len > 0);
-
- asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
- if (!new_seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- CmpopExprPair *pair = asdl_seq_GET(seq, i);
- asdl_seq_SET(new_seq, i, pair->expr);
- }
- return new_seq;
-}
-
-/* Creates an asdl_seq* where all the elements have been changed to have ctx as context */
-static asdl_seq *
-_set_seq_context(Parser *p, asdl_seq *seq, expr_context_ty ctx)
-{
- Py_ssize_t len = asdl_seq_LEN(seq);
- if (len == 0) {
- return NULL;
- }
-
- asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
- if (!new_seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- expr_ty e = asdl_seq_GET(seq, i);
- asdl_seq_SET(new_seq, i, _PyPegen_set_expr_context(p, e, ctx));
- }
- return new_seq;
-}
-
-static expr_ty
-_set_name_context(Parser *p, expr_ty e, expr_context_ty ctx)
-{
- return _Py_Name(e->v.Name.id, ctx, EXTRA_EXPR(e, e));
-}
-
-static expr_ty
-_set_tuple_context(Parser *p, expr_ty e, expr_context_ty ctx)
-{
- return _Py_Tuple(_set_seq_context(p, e->v.Tuple.elts, ctx), ctx, EXTRA_EXPR(e, e));
-}
-
-static expr_ty
-_set_list_context(Parser *p, expr_ty e, expr_context_ty ctx)
-{
- return _Py_List(_set_seq_context(p, e->v.List.elts, ctx), ctx, EXTRA_EXPR(e, e));
-}
-
-static expr_ty
-_set_subscript_context(Parser *p, expr_ty e, expr_context_ty ctx)
-{
- return _Py_Subscript(e->v.Subscript.value, e->v.Subscript.slice, ctx, EXTRA_EXPR(e, e));
-}
-
-static expr_ty
-_set_attribute_context(Parser *p, expr_ty e, expr_context_ty ctx)
-{
- return _Py_Attribute(e->v.Attribute.value, e->v.Attribute.attr, ctx, EXTRA_EXPR(e, e));
-}
-
-static expr_ty
-_set_starred_context(Parser *p, expr_ty e, expr_context_ty ctx)
-{
- return _Py_Starred(_PyPegen_set_expr_context(p, e->v.Starred.value, ctx), ctx, EXTRA_EXPR(e, e));
-}
-
-/* Creates an `expr_ty` equivalent to `expr` but with `ctx` as context */
-expr_ty
-_PyPegen_set_expr_context(Parser *p, expr_ty expr, expr_context_ty ctx)
-{
- assert(expr != NULL);
-
- expr_ty new = NULL;
- switch (expr->kind) {
- case Name_kind:
- new = _set_name_context(p, expr, ctx);
- break;
- case Tuple_kind:
- new = _set_tuple_context(p, expr, ctx);
- break;
- case List_kind:
- new = _set_list_context(p, expr, ctx);
- break;
- case Subscript_kind:
- new = _set_subscript_context(p, expr, ctx);
- break;
- case Attribute_kind:
- new = _set_attribute_context(p, expr, ctx);
- break;
- case Starred_kind:
- new = _set_starred_context(p, expr, ctx);
- break;
- default:
- new = expr;
- }
- return new;
-}
-
-/* Constructs a KeyValuePair that is used when parsing a dict's key value pairs */
-KeyValuePair *
-_PyPegen_key_value_pair(Parser *p, expr_ty key, expr_ty value)
-{
- KeyValuePair *a = PyArena_Malloc(p->arena, sizeof(KeyValuePair));
- if (!a) {
- return NULL;
- }
- a->key = key;
- a->value = value;
- return a;
-}
-
-/* Extracts all keys from an asdl_seq* of KeyValuePair*'s */
-asdl_seq *
-_PyPegen_get_keys(Parser *p, asdl_seq *seq)
-{
- Py_ssize_t len = asdl_seq_LEN(seq);
- asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
- if (!new_seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- KeyValuePair *pair = asdl_seq_GET(seq, i);
- asdl_seq_SET(new_seq, i, pair->key);
- }
- return new_seq;
-}
-
-/* Extracts all values from an asdl_seq* of KeyValuePair*'s */
-asdl_seq *
-_PyPegen_get_values(Parser *p, asdl_seq *seq)
-{
- Py_ssize_t len = asdl_seq_LEN(seq);
- asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
- if (!new_seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- KeyValuePair *pair = asdl_seq_GET(seq, i);
- asdl_seq_SET(new_seq, i, pair->value);
- }
- return new_seq;
-}
-
-/* Constructs a NameDefaultPair */
-NameDefaultPair *
-_PyPegen_name_default_pair(Parser *p, arg_ty arg, expr_ty value, Token *tc)
-{
- NameDefaultPair *a = PyArena_Malloc(p->arena, sizeof(NameDefaultPair));
- if (!a) {
- return NULL;
- }
- a->arg = _PyPegen_add_type_comment_to_arg(p, arg, tc);
- a->value = value;
- return a;
-}
-
-/* Constructs a SlashWithDefault */
-SlashWithDefault *
-_PyPegen_slash_with_default(Parser *p, asdl_seq *plain_names, asdl_seq *names_with_defaults)
-{
- SlashWithDefault *a = PyArena_Malloc(p->arena, sizeof(SlashWithDefault));
- if (!a) {
- return NULL;
- }
- a->plain_names = plain_names;
- a->names_with_defaults = names_with_defaults;
- return a;
-}
-
-/* Constructs a StarEtc */
-StarEtc *
-_PyPegen_star_etc(Parser *p, arg_ty vararg, asdl_seq *kwonlyargs, arg_ty kwarg)
-{
- StarEtc *a = PyArena_Malloc(p->arena, sizeof(StarEtc));
- if (!a) {
- return NULL;
- }
- a->vararg = vararg;
- a->kwonlyargs = kwonlyargs;
- a->kwarg = kwarg;
- return a;
-}
-
-asdl_seq *
-_PyPegen_join_sequences(Parser *p, asdl_seq *a, asdl_seq *b)
-{
- Py_ssize_t first_len = asdl_seq_LEN(a);
- Py_ssize_t second_len = asdl_seq_LEN(b);
- asdl_seq *new_seq = _Py_asdl_seq_new(first_len + second_len, p->arena);
- if (!new_seq) {
- return NULL;
- }
-
- int k = 0;
- for (Py_ssize_t i = 0; i < first_len; i++) {
- asdl_seq_SET(new_seq, k++, asdl_seq_GET(a, i));
- }
- for (Py_ssize_t i = 0; i < second_len; i++) {
- asdl_seq_SET(new_seq, k++, asdl_seq_GET(b, i));
- }
-
- return new_seq;
-}
-
-static asdl_seq *
-_get_names(Parser *p, asdl_seq *names_with_defaults)
-{
- Py_ssize_t len = asdl_seq_LEN(names_with_defaults);
- asdl_seq *seq = _Py_asdl_seq_new(len, p->arena);
- if (!seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- NameDefaultPair *pair = asdl_seq_GET(names_with_defaults, i);
- asdl_seq_SET(seq, i, pair->arg);
- }
- return seq;
-}
-
-static asdl_seq *
-_get_defaults(Parser *p, asdl_seq *names_with_defaults)
-{
- Py_ssize_t len = asdl_seq_LEN(names_with_defaults);
- asdl_seq *seq = _Py_asdl_seq_new(len, p->arena);
- if (!seq) {
- return NULL;
- }
- for (Py_ssize_t i = 0; i < len; i++) {
- NameDefaultPair *pair = asdl_seq_GET(names_with_defaults, i);
- asdl_seq_SET(seq, i, pair->value);
- }
- return seq;
-}
-
-/* Constructs an arguments_ty object out of all the parsed constructs in the parameters rule */
-arguments_ty
-_PyPegen_make_arguments(Parser *p, asdl_seq *slash_without_default,
- SlashWithDefault *slash_with_default, asdl_seq *plain_names,
- asdl_seq *names_with_default, StarEtc *star_etc)
-{
- asdl_seq *posonlyargs;
- if (slash_without_default != NULL) {
- posonlyargs = slash_without_default;
- }
- else if (slash_with_default != NULL) {
- asdl_seq *slash_with_default_names =
- _get_names(p, slash_with_default->names_with_defaults);
- if (!slash_with_default_names) {
- return NULL;
- }
- posonlyargs = _PyPegen_join_sequences(p, slash_with_default->plain_names, slash_with_default_names);
- if (!posonlyargs) {
- return NULL;
- }
- }
- else {
- posonlyargs = _Py_asdl_seq_new(0, p->arena);
- if (!posonlyargs) {
- return NULL;
- }
- }
-
- asdl_seq *posargs;
- if (plain_names != NULL && names_with_default != NULL) {
- asdl_seq *names_with_default_names = _get_names(p, names_with_default);
- if (!names_with_default_names) {
- return NULL;
- }
- posargs = _PyPegen_join_sequences(p, plain_names, names_with_default_names);
- if (!posargs) {
- return NULL;
- }
- }
- else if (plain_names == NULL && names_with_default != NULL) {
- posargs = _get_names(p, names_with_default);
- if (!posargs) {
- return NULL;
- }
- }
- else if (plain_names != NULL && names_with_default == NULL) {
- posargs = plain_names;
- }
- else {
- posargs = _Py_asdl_seq_new(0, p->arena);
- if (!posargs) {
- return NULL;
- }
- }
-
- asdl_seq *posdefaults;
- if (slash_with_default != NULL && names_with_default != NULL) {
- asdl_seq *slash_with_default_values =
- _get_defaults(p, slash_with_default->names_with_defaults);
- if (!slash_with_default_values) {
- return NULL;
- }
- asdl_seq *names_with_default_values = _get_defaults(p, names_with_default);
- if (!names_with_default_values) {
- return NULL;
- }
- posdefaults = _PyPegen_join_sequences(p, slash_with_default_values, names_with_default_values);
- if (!posdefaults) {
- return NULL;
- }
- }
- else if (slash_with_default == NULL && names_with_default != NULL) {
- posdefaults = _get_defaults(p, names_with_default);
- if (!posdefaults) {
- return NULL;
- }
- }
- else if (slash_with_default != NULL && names_with_default == NULL) {
- posdefaults = _get_defaults(p, slash_with_default->names_with_defaults);
- if (!posdefaults) {
- return NULL;
- }
- }
- else {
- posdefaults = _Py_asdl_seq_new(0, p->arena);
- if (!posdefaults) {
- return NULL;
- }
- }
-
- arg_ty vararg = NULL;
- if (star_etc != NULL && star_etc->vararg != NULL) {
- vararg = star_etc->vararg;
- }
-
- asdl_seq *kwonlyargs;
- if (star_etc != NULL && star_etc->kwonlyargs != NULL) {
- kwonlyargs = _get_names(p, star_etc->kwonlyargs);
- if (!kwonlyargs) {
- return NULL;
- }
- }
- else {
- kwonlyargs = _Py_asdl_seq_new(0, p->arena);
- if (!kwonlyargs) {
- return NULL;
- }
- }
-
- asdl_seq *kwdefaults;
- if (star_etc != NULL && star_etc->kwonlyargs != NULL) {
- kwdefaults = _get_defaults(p, star_etc->kwonlyargs);
- if (!kwdefaults) {
- return NULL;
- }
- }
- else {
- kwdefaults = _Py_asdl_seq_new(0, p->arena);
- if (!kwdefaults) {
- return NULL;
- }
- }
-
- arg_ty kwarg = NULL;
- if (star_etc != NULL && star_etc->kwarg != NULL) {
- kwarg = star_etc->kwarg;
- }
-
- return _Py_arguments(posonlyargs, posargs, vararg, kwonlyargs, kwdefaults, kwarg,
- posdefaults, p->arena);
-}
-
-/* Constructs an empty arguments_ty object, that gets used when a function accepts no
- * arguments. */
-arguments_ty
-_PyPegen_empty_arguments(Parser *p)
-{
- asdl_seq *posonlyargs = _Py_asdl_seq_new(0, p->arena);
- if (!posonlyargs) {
- return NULL;
- }
- asdl_seq *posargs = _Py_asdl_seq_new(0, p->arena);
- if (!posargs) {
- return NULL;
- }
- asdl_seq *posdefaults = _Py_asdl_seq_new(0, p->arena);
- if (!posdefaults) {
- return NULL;
- }
- asdl_seq *kwonlyargs = _Py_asdl_seq_new(0, p->arena);
- if (!kwonlyargs) {
- return NULL;
- }
- asdl_seq *kwdefaults = _Py_asdl_seq_new(0, p->arena);
- if (!kwdefaults) {
- return NULL;
- }
-
- return _Py_arguments(posonlyargs, posargs, NULL, kwonlyargs, kwdefaults, NULL, kwdefaults,
- p->arena);
-}
-
-/* Encapsulates the value of an operator_ty into an AugOperator struct */
-AugOperator *
-_PyPegen_augoperator(Parser *p, operator_ty kind)
-{
- AugOperator *a = PyArena_Malloc(p->arena, sizeof(AugOperator));
- if (!a) {
- return NULL;
- }
- a->kind = kind;
- return a;
-}
-
-/* Construct a FunctionDef equivalent to function_def, but with decorators */
-stmt_ty
-_PyPegen_function_def_decorators(Parser *p, asdl_seq *decorators, stmt_ty function_def)
-{
- assert(function_def != NULL);
- if (function_def->kind == AsyncFunctionDef_kind) {
- return _Py_AsyncFunctionDef(
- function_def->v.FunctionDef.name, function_def->v.FunctionDef.args,
- function_def->v.FunctionDef.body, decorators, function_def->v.FunctionDef.returns,
- function_def->v.FunctionDef.type_comment, function_def->lineno,
- function_def->col_offset, function_def->end_lineno, function_def->end_col_offset,
- p->arena);
- }
-
- return _Py_FunctionDef(function_def->v.FunctionDef.name, function_def->v.FunctionDef.args,
- function_def->v.FunctionDef.body, decorators,
- function_def->v.FunctionDef.returns,
- function_def->v.FunctionDef.type_comment, function_def->lineno,
- function_def->col_offset, function_def->end_lineno,
- function_def->end_col_offset, p->arena);
-}
-
-/* Construct a ClassDef equivalent to class_def, but with decorators */
-stmt_ty
-_PyPegen_class_def_decorators(Parser *p, asdl_seq *decorators, stmt_ty class_def)
-{
- assert(class_def != NULL);
- return _Py_ClassDef(class_def->v.ClassDef.name, class_def->v.ClassDef.bases,
- class_def->v.ClassDef.keywords, class_def->v.ClassDef.body, decorators,
- class_def->lineno, class_def->col_offset, class_def->end_lineno,
- class_def->end_col_offset, p->arena);
-}
-
-/* Construct a KeywordOrStarred */
-KeywordOrStarred *
-_PyPegen_keyword_or_starred(Parser *p, void *element, int is_keyword)
-{
- KeywordOrStarred *a = PyArena_Malloc(p->arena, sizeof(KeywordOrStarred));
- if (!a) {
- return NULL;
- }
- a->element = element;
- a->is_keyword = is_keyword;
- return a;
-}
-
-/* Get the number of starred expressions in an asdl_seq* of KeywordOrStarred*s */
-static int
-_seq_number_of_starred_exprs(asdl_seq *seq)
-{
- int n = 0;
- for (Py_ssize_t i = 0, l = asdl_seq_LEN(seq); i < l; i++) {
- KeywordOrStarred *k = asdl_seq_GET(seq, i);
- if (!k->is_keyword) {
- n++;
- }
- }
- return n;
-}
-
-/* Extract the starred expressions of an asdl_seq* of KeywordOrStarred*s */
-asdl_seq *
-_PyPegen_seq_extract_starred_exprs(Parser *p, asdl_seq *kwargs)
-{
- int new_len = _seq_number_of_starred_exprs(kwargs);
- if (new_len == 0) {
- return NULL;
- }
- asdl_seq *new_seq = _Py_asdl_seq_new(new_len, p->arena);
- if (!new_seq) {
- return NULL;
- }
-
- int idx = 0;
- for (Py_ssize_t i = 0, len = asdl_seq_LEN(kwargs); i < len; i++) {
- KeywordOrStarred *k = asdl_seq_GET(kwargs, i);
- if (!k->is_keyword) {
- asdl_seq_SET(new_seq, idx++, k->element);
- }
- }
- return new_seq;
-}
-
-/* Return a new asdl_seq* with only the keywords in kwargs */
-asdl_seq *
-_PyPegen_seq_delete_starred_exprs(Parser *p, asdl_seq *kwargs)
-{
- Py_ssize_t len = asdl_seq_LEN(kwargs);
- Py_ssize_t new_len = len - _seq_number_of_starred_exprs(kwargs);
- if (new_len == 0) {
- return NULL;
- }
- asdl_seq *new_seq = _Py_asdl_seq_new(new_len, p->arena);
- if (!new_seq) {
- return NULL;
- }
-
- int idx = 0;
- for (Py_ssize_t i = 0; i < len; i++) {
- KeywordOrStarred *k = asdl_seq_GET(kwargs, i);
- if (k->is_keyword) {
- asdl_seq_SET(new_seq, idx++, k->element);
- }
- }
- return new_seq;
-}
-
-expr_ty
-_PyPegen_concatenate_strings(Parser *p, asdl_seq *strings)
-{
- Py_ssize_t len = asdl_seq_LEN(strings);
- assert(len > 0);
-
- Token *first = asdl_seq_GET(strings, 0);
- Token *last = asdl_seq_GET(strings, len - 1);
-
- int bytesmode = 0;
- PyObject *bytes_str = NULL;
-
- FstringParser state;
- _PyPegen_FstringParser_Init(&state);
-
- for (Py_ssize_t i = 0; i < len; i++) {
- Token *t = asdl_seq_GET(strings, i);
-
- int this_bytesmode;
- int this_rawmode;
- PyObject *s;
- const char *fstr;
- Py_ssize_t fstrlen = -1;
-
- if (_PyPegen_parsestr(p, &this_bytesmode, &this_rawmode, &s, &fstr, &fstrlen, t) != 0) {
- goto error;
- }
-
- /* Check that we are not mixing bytes with unicode. */
- if (i != 0 && bytesmode != this_bytesmode) {
- RAISE_SYNTAX_ERROR("cannot mix bytes and nonbytes literals");
- Py_XDECREF(s);
- goto error;
- }
- bytesmode = this_bytesmode;
-
- if (fstr != NULL) {
- assert(s == NULL && !bytesmode);
-
- int result = _PyPegen_FstringParser_ConcatFstring(p, &state, &fstr, fstr + fstrlen,
- this_rawmode, 0, first, t, last);
- if (result < 0) {
- goto error;
- }
- }
- else {
- /* String or byte string. */
- assert(s != NULL && fstr == NULL);
- assert(bytesmode ? PyBytes_CheckExact(s) : PyUnicode_CheckExact(s));
-
- if (bytesmode) {
- if (i == 0) {
- bytes_str = s;
- }
- else {
- PyBytes_ConcatAndDel(&bytes_str, s);
- if (!bytes_str) {
- goto error;
- }
- }
- }
- else {
- /* This is a regular string. Concatenate it. */
- if (_PyPegen_FstringParser_ConcatAndDel(&state, s) < 0) {
- goto error;
- }
- }
- }
- }
-
- if (bytesmode) {
- if (PyArena_AddPyObject(p->arena, bytes_str) < 0) {
- goto error;
- }
- return Constant(bytes_str, NULL, first->lineno, first->col_offset, last->end_lineno,
- last->end_col_offset, p->arena);
- }
-
- return _PyPegen_FstringParser_Finish(p, &state, first, last);
-
-error:
- Py_XDECREF(bytes_str);
- _PyPegen_FstringParser_Dealloc(&state);
- if (PyErr_Occurred()) {
- raise_decode_error(p);
- }
- return NULL;
-}
-
-mod_ty
-_PyPegen_make_module(Parser *p, asdl_seq *a) {
- asdl_seq *type_ignores = NULL;
- Py_ssize_t num = p->type_ignore_comments.num_items;
- if (num > 0) {
- // Turn the raw (comment, lineno) pairs into TypeIgnore objects in the arena
- type_ignores = _Py_asdl_seq_new(num, p->arena);
- if (type_ignores == NULL) {
- return NULL;
- }
- for (int i = 0; i < num; i++) {
- PyObject *tag = _PyPegen_new_type_comment(p, p->type_ignore_comments.items[i].comment);
- if (tag == NULL) {
- return NULL;
- }
- type_ignore_ty ti = TypeIgnore(p->type_ignore_comments.items[i].lineno, tag, p->arena);
- if (ti == NULL) {
- return NULL;
- }
- asdl_seq_SET(type_ignores, i, ti);
- }
- }
- return Module(a, type_ignores, p->arena);
-}
-
-// Error reporting helpers
-
-expr_ty
-_PyPegen_get_invalid_target(expr_ty e, TARGETS_TYPE targets_type)
-{
- if (e == NULL) {
- return NULL;
- }
-
-#define VISIT_CONTAINER(CONTAINER, TYPE) do { \
- Py_ssize_t len = asdl_seq_LEN(CONTAINER->v.TYPE.elts);\
- for (Py_ssize_t i = 0; i < len; i++) {\
- expr_ty other = asdl_seq_GET(CONTAINER->v.TYPE.elts, i);\
- expr_ty child = _PyPegen_get_invalid_target(other, targets_type);\
- if (child != NULL) {\
- return child;\
- }\
- }\
- } while (0)
-
- // We only need to visit List and Tuple nodes recursively as those
- // are the only ones that can contain valid names in targets when
- // they are parsed as expressions. Any other kind of expression
- // that is a container (like Sets or Dicts) is directly invalid and
- // we don't need to visit it recursively.
-
- switch (e->kind) {
- case List_kind:
- VISIT_CONTAINER(e, List);
- return NULL;
- case Tuple_kind:
- VISIT_CONTAINER(e, Tuple);
- return NULL;
- case Starred_kind:
- if (targets_type == DEL_TARGETS) {
- return e;
- }
- return _PyPegen_get_invalid_target(e->v.Starred.value, targets_type);
- case Compare_kind:
- // This is needed, because the `a in b` in `for a in b` gets parsed
- // as a comparison, and so we need to search the left side of the comparison
- // for invalid targets.
- if (targets_type == FOR_TARGETS) {
- cmpop_ty cmpop = (cmpop_ty) asdl_seq_GET(e->v.Compare.ops, 0);
- if (cmpop == In) {
- return _PyPegen_get_invalid_target(e->v.Compare.left, targets_type);
- }
- return NULL;
- }
- return e;
- case Name_kind:
- case Subscript_kind:
- case Attribute_kind:
- return NULL;
- default:
- return e;
- }
-}
-
-void *_PyPegen_arguments_parsing_error(Parser *p, expr_ty e) {
- int kwarg_unpacking = 0;
- for (Py_ssize_t i = 0, l = asdl_seq_LEN(e->v.Call.keywords); i < l; i++) {
- keyword_ty keyword = asdl_seq_GET(e->v.Call.keywords, i);
- if (!keyword->arg) {
- kwarg_unpacking = 1;
- }
- }
-
- const char *msg = NULL;
- if (kwarg_unpacking) {
- msg = "positional argument follows keyword argument unpacking";
- } else {
- msg = "positional argument follows keyword argument";
- }
-
- return RAISE_SYNTAX_ERROR(msg);
-}
-
-void *
-_PyPegen_nonparen_genexp_in_call(Parser *p, expr_ty args)
-{
- /* The rule that calls this function is 'args for_if_clauses'.
- For the input f(L, x for x in y), L and x are in args and
- the for is parsed as a for_if_clause. We have to check if
- len <= 1, so that input like dict((a, b) for a, b in x)
- gets successfully parsed and then we pass the last
- argument (x in the above example) as the location of the
- error */
- Py_ssize_t len = asdl_seq_LEN(args->v.Call.args);
- if (len <= 1) {
- return NULL;
- }
-
- return RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
- (expr_ty) asdl_seq_GET(args->v.Call.args, len - 1),
- "Generator expression must be parenthesized"
- );
-}
-
-
-expr_ty _PyPegen_collect_call_seqs(Parser *p, asdl_seq *a, asdl_seq *b,
- int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena) {
- Py_ssize_t args_len = asdl_seq_LEN(a);
- Py_ssize_t total_len = args_len;
-
- if (b == NULL) {
- return _Py_Call(_PyPegen_dummy_name(p), a, NULL, lineno, col_offset,
- end_lineno, end_col_offset, arena);
-
- }
-
- asdl_seq *starreds = _PyPegen_seq_extract_starred_exprs(p, b);
- asdl_seq *keywords = _PyPegen_seq_delete_starred_exprs(p, b);
-
- if (starreds) {
- total_len += asdl_seq_LEN(starreds);
- }
-
- asdl_seq *args = _Py_asdl_seq_new(total_len, arena);
-
- Py_ssize_t i = 0;
- for (i = 0; i < args_len; i++) {
- asdl_seq_SET(args, i, asdl_seq_GET(a, i));
- }
- for (; i < total_len; i++) {
- asdl_seq_SET(args, i, asdl_seq_GET(starreds, i - args_len));
- }
-
- return _Py_Call(_PyPegen_dummy_name(p), args, keywords, lineno,
- col_offset, end_lineno, end_col_offset, arena);
-
-
-}
+#include <Python.h>
+#include <errcode.h>
+#include "../tokenizer.h"
+
+#include "pegen.h"
+#include "parse_string.h"
+#include "ast.h"
+
+PyObject *
+_PyPegen_new_type_comment(Parser *p, char *s)
+{
+ PyObject *res = PyUnicode_DecodeUTF8(s, strlen(s), NULL);
+ if (res == NULL) {
+ return NULL;
+ }
+ if (PyArena_AddPyObject(p->arena, res) < 0) {
+ Py_DECREF(res);
+ return NULL;
+ }
+ return res;
+}
+
+arg_ty
+_PyPegen_add_type_comment_to_arg(Parser *p, arg_ty a, Token *tc)
+{
+ if (tc == NULL) {
+ return a;
+ }
+ char *bytes = PyBytes_AsString(tc->bytes);
+ if (bytes == NULL) {
+ return NULL;
+ }
+ PyObject *tco = _PyPegen_new_type_comment(p, bytes);
+ if (tco == NULL) {
+ return NULL;
+ }
+ return arg(a->arg, a->annotation, tco,
+ a->lineno, a->col_offset, a->end_lineno, a->end_col_offset,
+ p->arena);
+}
+
+static int
+init_normalization(Parser *p)
+{
+ if (p->normalize) {
+ return 1;
+ }
+ PyObject *m = PyImport_ImportModuleNoBlock("unicodedata");
+ if (!m)
+ {
+ return 0;
+ }
+ p->normalize = PyObject_GetAttrString(m, "normalize");
+ Py_DECREF(m);
+ if (!p->normalize)
+ {
+ return 0;
+ }
+ return 1;
+}
+
+/* Checks if the NOTEQUAL token is valid given the current parser flags
+0 indicates success and nonzero indicates failure (an exception may be set) */
+int
+_PyPegen_check_barry_as_flufl(Parser *p, Token* t) {
+ assert(t->bytes != NULL);
+ assert(t->type == NOTEQUAL);
+
+ char* tok_str = PyBytes_AS_STRING(t->bytes);
+ if (p->flags & PyPARSE_BARRY_AS_BDFL && strcmp(tok_str, "<>") != 0) {
+ RAISE_SYNTAX_ERROR("with Barry as BDFL, use '<>' instead of '!='");
+ return -1;
+ }
+ if (!(p->flags & PyPARSE_BARRY_AS_BDFL)) {
+ return strcmp(tok_str, "!=");
+ }
+ return 0;
+}
+
+PyObject *
+_PyPegen_new_identifier(Parser *p, char *n)
+{
+ PyObject *id = PyUnicode_DecodeUTF8(n, strlen(n), NULL);
+ if (!id) {
+ goto error;
+ }
+ /* PyUnicode_DecodeUTF8 should always return a ready string. */
+ assert(PyUnicode_IS_READY(id));
+ /* Check whether there are non-ASCII characters in the
+ identifier; if so, normalize to NFKC. */
+ if (!PyUnicode_IS_ASCII(id))
+ {
+ PyObject *id2;
+ if (!init_normalization(p))
+ {
+ Py_DECREF(id);
+ goto error;
+ }
+ PyObject *form = PyUnicode_InternFromString("NFKC");
+ if (form == NULL)
+ {
+ Py_DECREF(id);
+ goto error;
+ }
+ PyObject *args[2] = {form, id};
+ id2 = _PyObject_FastCall(p->normalize, args, 2);
+ Py_DECREF(id);
+ Py_DECREF(form);
+ if (!id2) {
+ goto error;
+ }
+ if (!PyUnicode_Check(id2))
+ {
+ PyErr_Format(PyExc_TypeError,
+ "unicodedata.normalize() must return a string, not "
+ "%.200s",
+ _PyType_Name(Py_TYPE(id2)));
+ Py_DECREF(id2);
+ goto error;
+ }
+ id = id2;
+ }
+ PyUnicode_InternInPlace(&id);
+ if (PyArena_AddPyObject(p->arena, id) < 0)
+ {
+ Py_DECREF(id);
+ goto error;
+ }
+ return id;
+
+error:
+ p->error_indicator = 1;
+ return NULL;
+}
+
+static PyObject *
+_create_dummy_identifier(Parser *p)
+{
+ return _PyPegen_new_identifier(p, "");
+}
+
+static inline Py_ssize_t
+byte_offset_to_character_offset(PyObject *line, Py_ssize_t col_offset)
+{
+ const char *str = PyUnicode_AsUTF8(line);
+ if (!str) {
+ return 0;
+ }
+ assert(col_offset >= 0 && (unsigned long)col_offset <= strlen(str));
+ PyObject *text = PyUnicode_DecodeUTF8(str, col_offset, "replace");
+ if (!text) {
+ return 0;
+ }
+ Py_ssize_t size = PyUnicode_GET_LENGTH(text);
+ Py_DECREF(text);
+ return size;
+}
+
+const char *
+_PyPegen_get_expr_name(expr_ty e)
+{
+ assert(e != NULL);
+ switch (e->kind) {
+ case Attribute_kind:
+ return "attribute";
+ case Subscript_kind:
+ return "subscript";
+ case Starred_kind:
+ return "starred";
+ case Name_kind:
+ return "name";
+ case List_kind:
+ return "list";
+ case Tuple_kind:
+ return "tuple";
+ case Lambda_kind:
+ return "lambda";
+ case Call_kind:
+ return "function call";
+ case BoolOp_kind:
+ case BinOp_kind:
+ case UnaryOp_kind:
+ return "operator";
+ case GeneratorExp_kind:
+ return "generator expression";
+ case Yield_kind:
+ case YieldFrom_kind:
+ return "yield expression";
+ case Await_kind:
+ return "await expression";
+ case ListComp_kind:
+ return "list comprehension";
+ case SetComp_kind:
+ return "set comprehension";
+ case DictComp_kind:
+ return "dict comprehension";
+ case Dict_kind:
+ return "dict display";
+ case Set_kind:
+ return "set display";
+ case JoinedStr_kind:
+ case FormattedValue_kind:
+ return "f-string expression";
+ case Constant_kind: {
+ PyObject *value = e->v.Constant.value;
+ if (value == Py_None) {
+ return "None";
+ }
+ if (value == Py_False) {
+ return "False";
+ }
+ if (value == Py_True) {
+ return "True";
+ }
+ if (value == Py_Ellipsis) {
+ return "Ellipsis";
+ }
+ return "literal";
+ }
+ case Compare_kind:
+ return "comparison";
+ case IfExp_kind:
+ return "conditional expression";
+ case NamedExpr_kind:
+ return "named expression";
+ default:
+ PyErr_Format(PyExc_SystemError,
+ "unexpected expression in assignment %d (line %d)",
+ e->kind, e->lineno);
+ return NULL;
+ }
+}
+
+static int
+raise_decode_error(Parser *p)
+{
+ assert(PyErr_Occurred());
+ const char *errtype = NULL;
+ if (PyErr_ExceptionMatches(PyExc_UnicodeError)) {
+ errtype = "unicode error";
+ }
+ else if (PyErr_ExceptionMatches(PyExc_ValueError)) {
+ errtype = "value error";
+ }
+ if (errtype) {
+ PyObject *type;
+ PyObject *value;
+ PyObject *tback;
+ PyObject *errstr;
+ PyErr_Fetch(&type, &value, &tback);
+ errstr = PyObject_Str(value);
+ if (errstr) {
+ RAISE_SYNTAX_ERROR("(%s) %U", errtype, errstr);
+ Py_DECREF(errstr);
+ }
+ else {
+ PyErr_Clear();
+ RAISE_SYNTAX_ERROR("(%s) unknown error", errtype);
+ }
+ Py_XDECREF(type);
+ Py_XDECREF(value);
+ Py_XDECREF(tback);
+ }
+
+ return -1;
+}
+
+static void
+raise_tokenizer_init_error(PyObject *filename)
+{
+ if (!(PyErr_ExceptionMatches(PyExc_LookupError)
+ || PyErr_ExceptionMatches(PyExc_SyntaxError)
+ || PyErr_ExceptionMatches(PyExc_ValueError)
+ || PyErr_ExceptionMatches(PyExc_UnicodeDecodeError))) {
+ return;
+ }
+ PyObject *errstr = NULL;
+ PyObject *tuple = NULL;
+ PyObject *type;
+ PyObject *value;
+ PyObject *tback;
+ PyErr_Fetch(&type, &value, &tback);
+ errstr = PyObject_Str(value);
+ if (!errstr) {
+ goto error;
+ }
+
+ PyObject *tmp = Py_BuildValue("(OiiO)", filename, 0, -1, Py_None);
+ if (!tmp) {
+ goto error;
+ }
+
+ tuple = PyTuple_Pack(2, errstr, tmp);
+ Py_DECREF(tmp);
+ if (!value) {
+ goto error;
+ }
+ PyErr_SetObject(PyExc_SyntaxError, tuple);
+
+error:
+ Py_XDECREF(type);
+ Py_XDECREF(value);
+ Py_XDECREF(tback);
+ Py_XDECREF(errstr);
+ Py_XDECREF(tuple);
+}
+
+static int
+tokenizer_error(Parser *p)
+{
+ if (PyErr_Occurred()) {
+ return -1;
+ }
+
+ const char *msg = NULL;
+ PyObject* errtype = PyExc_SyntaxError;
+ Py_ssize_t col_offset = -1;
+ switch (p->tok->done) {
+ case E_TOKEN:
+ msg = "invalid token";
+ break;
+ case E_EOFS:
+ RAISE_SYNTAX_ERROR("EOF while scanning triple-quoted string literal");
+ return -1;
+ case E_EOLS:
+ RAISE_SYNTAX_ERROR("EOL while scanning string literal");
+ return -1;
+ case E_EOF:
+ RAISE_SYNTAX_ERROR("unexpected EOF while parsing");
+ return -1;
+ case E_DEDENT:
+ RAISE_INDENTATION_ERROR("unindent does not match any outer indentation level");
+ return -1;
+ case E_INTR:
+ if (!PyErr_Occurred()) {
+ PyErr_SetNone(PyExc_KeyboardInterrupt);
+ }
+ return -1;
+ case E_NOMEM:
+ PyErr_NoMemory();
+ return -1;
+ case E_TABSPACE:
+ errtype = PyExc_TabError;
+ msg = "inconsistent use of tabs and spaces in indentation";
+ break;
+ case E_TOODEEP:
+ errtype = PyExc_IndentationError;
+ msg = "too many levels of indentation";
+ break;
+ case E_LINECONT: {
+ col_offset = p->tok->cur - p->tok->buf - 1;
+ msg = "unexpected character after line continuation character";
+ break;
+ }
+ default:
+ msg = "unknown parsing error";
+ }
+
+ RAISE_ERROR_KNOWN_LOCATION(p, errtype, p->tok->lineno,
+ col_offset >= 0 ? col_offset : 0, msg);
+ return -1;
+}
+
+void *
+_PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...)
+{
+ if (p->fill == 0) {
+ va_list va;
+ va_start(va, errmsg);
+ _PyPegen_raise_error_known_location(p, errtype, 0, 0, errmsg, va);
+ va_end(va);
+ return NULL;
+ }
+
+ Token *t = p->known_err_token != NULL ? p->known_err_token : p->tokens[p->fill - 1];
+ Py_ssize_t col_offset;
+ if (t->col_offset == -1) {
+ col_offset = Py_SAFE_DOWNCAST(p->tok->cur - p->tok->buf,
+ intptr_t, int);
+ } else {
+ col_offset = t->col_offset + 1;
+ }
+
+ va_list va;
+ va_start(va, errmsg);
+ _PyPegen_raise_error_known_location(p, errtype, t->lineno,
+ col_offset, errmsg, va);
+ va_end(va);
+
+ return NULL;
+}
+
+void *
+_PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
+ Py_ssize_t lineno, Py_ssize_t col_offset,
+ const char *errmsg, va_list va)
+{
+ PyObject *value = NULL;
+ PyObject *errstr = NULL;
+ PyObject *error_line = NULL;
+ PyObject *tmp = NULL;
+ p->error_indicator = 1;
+
+ if (p->start_rule == Py_fstring_input) {
+ const char *fstring_msg = "f-string: ";
+ Py_ssize_t len = strlen(fstring_msg) + strlen(errmsg);
+
+ char *new_errmsg = PyMem_RawMalloc(len + 1); // Lengths of both strings plus NULL character
+ if (!new_errmsg) {
+ return (void *) PyErr_NoMemory();
+ }
+
+ // Copy both strings into new buffer
+ memcpy(new_errmsg, fstring_msg, strlen(fstring_msg));
+ memcpy(new_errmsg + strlen(fstring_msg), errmsg, strlen(errmsg));
+ new_errmsg[len] = 0;
+ errmsg = new_errmsg;
+ }
+ errstr = PyUnicode_FromFormatV(errmsg, va);
+ if (!errstr) {
+ goto error;
+ }
+
+ if (p->start_rule == Py_file_input) {
+ error_line = PyErr_ProgramTextObject(p->tok->filename, (int) lineno);
+ }
+
+ if (!error_line) {
+ Py_ssize_t size = p->tok->inp - p->tok->buf;
+ error_line = PyUnicode_DecodeUTF8(p->tok->buf, size, "replace");
+ if (!error_line) {
+ goto error;
+ }
+ }
+
+ if (p->start_rule == Py_fstring_input) {
+ col_offset -= p->starting_col_offset;
+ }
+ Py_ssize_t col_number = col_offset;
+
+ if (p->tok->encoding != NULL) {
+ col_number = byte_offset_to_character_offset(error_line, col_offset);
+ }
+
+ tmp = Py_BuildValue("(OiiN)", p->tok->filename, lineno, col_number, error_line);
+ if (!tmp) {
+ goto error;
+ }
+ value = PyTuple_Pack(2, errstr, tmp);
+ Py_DECREF(tmp);
+ if (!value) {
+ goto error;
+ }
+ PyErr_SetObject(errtype, value);
+
+ Py_DECREF(errstr);
+ Py_DECREF(value);
+ if (p->start_rule == Py_fstring_input) {
+ PyMem_RawFree((void *)errmsg);
+ }
+ return NULL;
+
+error:
+ Py_XDECREF(errstr);
+ Py_XDECREF(error_line);
+ if (p->start_rule == Py_fstring_input) {
+ PyMem_RawFree((void *)errmsg);
+ }
+ return NULL;
+}
+
+#if 0
+static const char *
+token_name(int type)
+{
+ if (0 <= type && type <= N_TOKENS) {
+ return _PyParser_TokenNames[type];
+ }
+ return "<Huh?>";
+}
+#endif
+
+// Here, mark is the start of the node, while p->mark is the end.
+// If node==NULL, they should be the same.
+int
+_PyPegen_insert_memo(Parser *p, int mark, int type, void *node)
+{
+ // Insert in front
+ Memo *m = PyArena_Malloc(p->arena, sizeof(Memo));
+ if (m == NULL) {
+ return -1;
+ }
+ m->type = type;
+ m->node = node;
+ m->mark = p->mark;
+ m->next = p->tokens[mark]->memo;
+ p->tokens[mark]->memo = m;
+ return 0;
+}
+
+// Like _PyPegen_insert_memo(), but updates an existing node if found.
+int
+_PyPegen_update_memo(Parser *p, int mark, int type, void *node)
+{
+ for (Memo *m = p->tokens[mark]->memo; m != NULL; m = m->next) {
+ if (m->type == type) {
+ // Update existing node.
+ m->node = node;
+ m->mark = p->mark;
+ return 0;
+ }
+ }
+ // Insert new node.
+ return _PyPegen_insert_memo(p, mark, type, node);
+}
+
+// Return dummy NAME.
+void *
+_PyPegen_dummy_name(Parser *p, ...)
+{
+ static void *cache = NULL;
+
+ if (cache != NULL) {
+ return cache;
+ }
+
+ PyObject *id = _create_dummy_identifier(p);
+ if (!id) {
+ return NULL;
+ }
+ cache = Name(id, Load, 1, 0, 1, 0, p->arena);
+ return cache;
+}
+
+static int
+_get_keyword_or_name_type(Parser *p, const char *name, int name_len)
+{
+ assert(name_len > 0);
+ if (name_len >= p->n_keyword_lists ||
+ p->keywords[name_len] == NULL ||
+ p->keywords[name_len]->type == -1) {
+ return NAME;
+ }
+ for (KeywordToken *k = p->keywords[name_len]; k != NULL && k->type != -1; k++) {
+ if (strncmp(k->str, name, name_len) == 0) {
+ return k->type;
+ }
+ }
+ return NAME;
+}
+
+static int
+growable_comment_array_init(growable_comment_array *arr, size_t initial_size) {
+ assert(initial_size > 0);
+ arr->items = PyMem_Malloc(initial_size * sizeof(*arr->items));
+ arr->size = initial_size;
+ arr->num_items = 0;
+
+ return arr->items != NULL;
+}
+
+static int
+growable_comment_array_add(growable_comment_array *arr, int lineno, char *comment) {
+ if (arr->num_items >= arr->size) {
+ size_t new_size = arr->size * 2;
+ void *new_items_array = PyMem_Realloc(arr->items, new_size * sizeof(*arr->items));
+ if (!new_items_array) {
+ return 0;
+ }
+ arr->items = new_items_array;
+ arr->size = new_size;
+ }
+
+ arr->items[arr->num_items].lineno = lineno;
+ arr->items[arr->num_items].comment = comment; // Take ownership
+ arr->num_items++;
+ return 1;
+}
+
+static void
+growable_comment_array_deallocate(growable_comment_array *arr) {
+ for (unsigned i = 0; i < arr->num_items; i++) {
+ PyMem_Free(arr->items[i].comment);
+ }
+ PyMem_Free(arr->items);
+}
+
+int
+_PyPegen_fill_token(Parser *p)
+{
+ const char *start;
+ const char *end;
+ int type = PyTokenizer_Get(p->tok, &start, &end);
+
+ // Record and skip '# type: ignore' comments
+ while (type == TYPE_IGNORE) {
+ Py_ssize_t len = end - start;
+ char *tag = PyMem_Malloc(len + 1);
+ if (tag == NULL) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ strncpy(tag, start, len);
+ tag[len] = '\0';
+ // Ownership of tag passes to the growable array
+ if (!growable_comment_array_add(&p->type_ignore_comments, p->tok->lineno, tag)) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ type = PyTokenizer_Get(p->tok, &start, &end);
+ }
+
+ if (type == ENDMARKER && p->start_rule == Py_single_input && p->parsing_started) {
+ type = NEWLINE; /* Add an extra newline */
+ p->parsing_started = 0;
+
+ if (p->tok->indent && !(p->flags & PyPARSE_DONT_IMPLY_DEDENT)) {
+ p->tok->pendin = -p->tok->indent;
+ p->tok->indent = 0;
+ }
+ }
+ else {
+ p->parsing_started = 1;
+ }
+
+ if (p->fill == p->size) {
+ int newsize = p->size * 2;
+ Token **new_tokens = PyMem_Realloc(p->tokens, newsize * sizeof(Token *));
+ if (new_tokens == NULL) {
+ PyErr_NoMemory();
+ return -1;
+ }
+ p->tokens = new_tokens;
+
+ for (int i = p->size; i < newsize; i++) {
+ p->tokens[i] = PyMem_Malloc(sizeof(Token));
+ if (p->tokens[i] == NULL) {
+ p->size = i; // Needed, in order to cleanup correctly after parser fails
+ PyErr_NoMemory();
+ return -1;
+ }
+ memset(p->tokens[i], '\0', sizeof(Token));
+ }
+ p->size = newsize;
+ }
+
+ Token *t = p->tokens[p->fill];
+ t->type = (type == NAME) ? _get_keyword_or_name_type(p, start, (int)(end - start)) : type;
+ t->bytes = PyBytes_FromStringAndSize(start, end - start);
+ if (t->bytes == NULL) {
+ return -1;
+ }
+ if (PyArena_AddPyObject(p->arena, t->bytes) < 0) {
+ Py_DECREF(t->bytes);
+ return -1;
+ }
+
+ int lineno = type == STRING ? p->tok->first_lineno : p->tok->lineno;
+ const char *line_start = type == STRING ? p->tok->multi_line_start : p->tok->line_start;
+ int end_lineno = p->tok->lineno;
+ int col_offset = -1;
+ int end_col_offset = -1;
+ if (start != NULL && start >= line_start) {
+ col_offset = (int)(start - line_start);
+ }
+ if (end != NULL && end >= p->tok->line_start) {
+ end_col_offset = (int)(end - p->tok->line_start);
+ }
+
+ t->lineno = p->starting_lineno + lineno;
+ t->col_offset = p->tok->lineno == 1 ? p->starting_col_offset + col_offset : col_offset;
+ t->end_lineno = p->starting_lineno + end_lineno;
+ t->end_col_offset = p->tok->lineno == 1 ? p->starting_col_offset + end_col_offset : end_col_offset;
+
+ p->fill += 1;
+
+ if (type == ERRORTOKEN) {
+ if (p->tok->done == E_DECODE) {
+ return raise_decode_error(p);
+ }
+ return tokenizer_error(p);
+
+ }
+
+ return 0;
+}
+
+// Instrumentation to count the effectiveness of memoization.
+// The array counts the number of tokens skipped by memoization,
+// indexed by type.
+
+#define NSTATISTICS 2000
+static long memo_statistics[NSTATISTICS];
+
+void
+_PyPegen_clear_memo_statistics()
+{
+ for (int i = 0; i < NSTATISTICS; i++) {
+ memo_statistics[i] = 0;
+ }
+}
+
+PyObject *
+_PyPegen_get_memo_statistics()
+{
+ PyObject *ret = PyList_New(NSTATISTICS);
+ if (ret == NULL) {
+ return NULL;
+ }
+ for (int i = 0; i < NSTATISTICS; i++) {
+ PyObject *value = PyLong_FromLong(memo_statistics[i]);
+ if (value == NULL) {
+ Py_DECREF(ret);
+ return NULL;
+ }
+ // PyList_SetItem borrows a reference to value.
+ if (PyList_SetItem(ret, i, value) < 0) {
+ Py_DECREF(ret);
+ return NULL;
+ }
+ }
+ return ret;
+}
+
+int // bool
+_PyPegen_is_memoized(Parser *p, int type, void *pres)
+{
+ if (p->mark == p->fill) {
+ if (_PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ return -1;
+ }
+ }
+
+ Token *t = p->tokens[p->mark];
+
+ for (Memo *m = t->memo; m != NULL; m = m->next) {
+ if (m->type == type) {
+ if (0 <= type && type < NSTATISTICS) {
+ long count = m->mark - p->mark;
+ // A memoized negative result counts for one.
+ if (count <= 0) {
+ count = 1;
+ }
+ memo_statistics[type] += count;
+ }
+ p->mark = m->mark;
+ *(void **)(pres) = m->node;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+int
+_PyPegen_lookahead_with_name(int positive, expr_ty (func)(Parser *), Parser *p)
+{
+ int mark = p->mark;
+ void *res = func(p);
+ p->mark = mark;
+ return (res != NULL) == positive;
+}
+
+int
+_PyPegen_lookahead_with_string(int positive, expr_ty (func)(Parser *, const char*), Parser *p, const char* arg)
+{
+ int mark = p->mark;
+ void *res = func(p, arg);
+ p->mark = mark;
+ return (res != NULL) == positive;
+}
+
+int
+_PyPegen_lookahead_with_int(int positive, Token *(func)(Parser *, int), Parser *p, int arg)
+{
+ int mark = p->mark;
+ void *res = func(p, arg);
+ p->mark = mark;
+ return (res != NULL) == positive;
+}
+
+int
+_PyPegen_lookahead(int positive, void *(func)(Parser *), Parser *p)
+{
+ int mark = p->mark;
+ void *res = (void*)func(p);
+ p->mark = mark;
+ return (res != NULL) == positive;
+}
+
+Token *
+_PyPegen_expect_token(Parser *p, int type)
+{
+ if (p->mark == p->fill) {
+ if (_PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ return NULL;
+ }
+ }
+ Token *t = p->tokens[p->mark];
+ if (t->type != type) {
+ return NULL;
+ }
+ p->mark += 1;
+ return t;
+}
+
+expr_ty
+_PyPegen_expect_soft_keyword(Parser *p, const char *keyword)
+{
+ if (p->mark == p->fill) {
+ if (_PyPegen_fill_token(p) < 0) {
+ p->error_indicator = 1;
+ return NULL;
+ }
+ }
+ Token *t = p->tokens[p->mark];
+ if (t->type != NAME) {
+ return NULL;
+ }
+ char* s = PyBytes_AsString(t->bytes);
+ if (!s) {
+ p->error_indicator = 1;
+ return NULL;
+ }
+ if (strcmp(s, keyword) != 0) {
+ return NULL;
+ }
+ return _PyPegen_name_token(p);
+}
+
+Token *
+_PyPegen_get_last_nonnwhitespace_token(Parser *p)
+{
+ assert(p->mark >= 0);
+ Token *token = NULL;
+ for (int m = p->mark - 1; m >= 0; m--) {
+ token = p->tokens[m];
+ if (token->type != ENDMARKER && (token->type < NEWLINE || token->type > DEDENT)) {
+ break;
+ }
+ }
+ return token;
+}
+
+expr_ty
+_PyPegen_name_token(Parser *p)
+{
+ Token *t = _PyPegen_expect_token(p, NAME);
+ if (t == NULL) {
+ return NULL;
+ }
+ char* s = PyBytes_AsString(t->bytes);
+ if (!s) {
+ p->error_indicator = 1;
+ return NULL;
+ }
+ PyObject *id = _PyPegen_new_identifier(p, s);
+ if (id == NULL) {
+ p->error_indicator = 1;
+ return NULL;
+ }
+ return Name(id, Load, t->lineno, t->col_offset, t->end_lineno, t->end_col_offset,
+ p->arena);
+}
+
+void *
+_PyPegen_string_token(Parser *p)
+{
+ return _PyPegen_expect_token(p, STRING);
+}
+
+static PyObject *
+parsenumber_raw(const char *s)
+{
+ const char *end;
+ long x;
+ double dx;
+ Py_complex compl;
+ int imflag;
+
+ assert(s != NULL);
+ errno = 0;
+ end = s + strlen(s) - 1;
+ imflag = *end == 'j' || *end == 'J';
+ if (s[0] == '0') {
+ x = (long)PyOS_strtoul(s, (char **)&end, 0);
+ if (x < 0 && errno == 0) {
+ return PyLong_FromString(s, (char **)0, 0);
+ }
+ }
+ else {
+ x = PyOS_strtol(s, (char **)&end, 0);
+ }
+ if (*end == '\0') {
+ if (errno != 0) {
+ return PyLong_FromString(s, (char **)0, 0);
+ }
+ return PyLong_FromLong(x);
+ }
+ /* XXX Huge floats may silently fail */
+ if (imflag) {
+ compl.real = 0.;
+ compl.imag = PyOS_string_to_double(s, (char **)&end, NULL);
+ if (compl.imag == -1.0 && PyErr_Occurred()) {
+ return NULL;
+ }
+ return PyComplex_FromCComplex(compl);
+ }
+ dx = PyOS_string_to_double(s, NULL, NULL);
+ if (dx == -1.0 && PyErr_Occurred()) {
+ return NULL;
+ }
+ return PyFloat_FromDouble(dx);
+}
+
+static PyObject *
+parsenumber(const char *s)
+{
+ char *dup;
+ char *end;
+ PyObject *res = NULL;
+
+ assert(s != NULL);
+
+ if (strchr(s, '_') == NULL) {
+ return parsenumber_raw(s);
+ }
+ /* Create a duplicate without underscores. */
+ dup = PyMem_Malloc(strlen(s) + 1);
+ if (dup == NULL) {
+ return PyErr_NoMemory();
+ }
+ end = dup;
+ for (; *s; s++) {
+ if (*s != '_') {
+ *end++ = *s;
+ }
+ }
+ *end = '\0';
+ res = parsenumber_raw(dup);
+ PyMem_Free(dup);
+ return res;
+}
+
+expr_ty
+_PyPegen_number_token(Parser *p)
+{
+ Token *t = _PyPegen_expect_token(p, NUMBER);
+ if (t == NULL) {
+ return NULL;
+ }
+
+ char *num_raw = PyBytes_AsString(t->bytes);
+ if (num_raw == NULL) {
+ p->error_indicator = 1;
+ return NULL;
+ }
+
+ if (p->feature_version < 6 && strchr(num_raw, '_') != NULL) {
+ p->error_indicator = 1;
+ return RAISE_SYNTAX_ERROR("Underscores in numeric literals are only supported "
+ "in Python 3.6 and greater");
+ }
+
+ PyObject *c = parsenumber(num_raw);
+
+ if (c == NULL) {
+ p->error_indicator = 1;
+ return NULL;
+ }
+
+ if (PyArena_AddPyObject(p->arena, c) < 0) {
+ Py_DECREF(c);
+ p->error_indicator = 1;
+ return NULL;
+ }
+
+ return Constant(c, NULL, t->lineno, t->col_offset, t->end_lineno, t->end_col_offset,
+ p->arena);
+}
+
+static int // bool
+newline_in_string(Parser *p, const char *cur)
+{
+ for (const char *c = cur; c >= p->tok->buf; c--) {
+ if (*c == '\'' || *c == '"') {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+/* Check that the source for a single input statement really is a single
+ statement by looking at what is left in the buffer after parsing.
+ Trailing whitespace and comments are OK. */
+static int // bool
+bad_single_statement(Parser *p)
+{
+ const char *cur = strchr(p->tok->buf, '\n');
+
+ /* Newlines are allowed if preceded by a line continuation character
+ or if they appear inside a string. */
+ if (!cur || (cur != p->tok->buf && *(cur - 1) == '\\')
+ || newline_in_string(p, cur)) {
+ return 0;
+ }
+ char c = *cur;
+
+ for (;;) {
+ while (c == ' ' || c == '\t' || c == '\n' || c == '\014') {
+ c = *++cur;
+ }
+
+ if (!c) {
+ return 0;
+ }
+
+ if (c != '#') {
+ return 1;
+ }
+
+ /* Suck up comment. */
+ while (c && c != '\n') {
+ c = *++cur;
+ }
+ }
+}
+
+void
+_PyPegen_Parser_Free(Parser *p)
+{
+ Py_XDECREF(p->normalize);
+ for (int i = 0; i < p->size; i++) {
+ PyMem_Free(p->tokens[i]);
+ }
+ PyMem_Free(p->tokens);
+ growable_comment_array_deallocate(&p->type_ignore_comments);
+ PyMem_Free(p);
+}
+
+static int
+compute_parser_flags(PyCompilerFlags *flags)
+{
+ int parser_flags = 0;
+ if (!flags) {
+ return 0;
+ }
+ if (flags->cf_flags & PyCF_DONT_IMPLY_DEDENT) {
+ parser_flags |= PyPARSE_DONT_IMPLY_DEDENT;
+ }
+ if (flags->cf_flags & PyCF_IGNORE_COOKIE) {
+ parser_flags |= PyPARSE_IGNORE_COOKIE;
+ }
+ if (flags->cf_flags & CO_FUTURE_BARRY_AS_BDFL) {
+ parser_flags |= PyPARSE_BARRY_AS_BDFL;
+ }
+ if (flags->cf_flags & PyCF_TYPE_COMMENTS) {
+ parser_flags |= PyPARSE_TYPE_COMMENTS;
+ }
+ if ((flags->cf_flags & PyCF_ONLY_AST) && flags->cf_feature_version < 7) {
+ parser_flags |= PyPARSE_ASYNC_HACKS;
+ }
+ return parser_flags;
+}
+
+Parser *
+_PyPegen_Parser_New(struct tok_state *tok, int start_rule, int flags,
+ int feature_version, int *errcode, PyArena *arena)
+{
+ Parser *p = PyMem_Malloc(sizeof(Parser));
+ if (p == NULL) {
+ return (Parser *) PyErr_NoMemory();
+ }
+ assert(tok != NULL);
+ tok->type_comments = (flags & PyPARSE_TYPE_COMMENTS) > 0;
+ tok->async_hacks = (flags & PyPARSE_ASYNC_HACKS) > 0;
+ p->tok = tok;
+ p->keywords = NULL;
+ p->n_keyword_lists = -1;
+ p->tokens = PyMem_Malloc(sizeof(Token *));
+ if (!p->tokens) {
+ PyMem_Free(p);
+ return (Parser *) PyErr_NoMemory();
+ }
+ p->tokens[0] = PyMem_Calloc(1, sizeof(Token));
+ if (!p->tokens) {
+ PyMem_Free(p->tokens);
+ PyMem_Free(p);
+ return (Parser *) PyErr_NoMemory();
+ }
+ if (!growable_comment_array_init(&p->type_ignore_comments, 10)) {
+ PyMem_Free(p->tokens[0]);
+ PyMem_Free(p->tokens);
+ PyMem_Free(p);
+ return (Parser *) PyErr_NoMemory();
+ }
+
+ p->mark = 0;
+ p->fill = 0;
+ p->size = 1;
+
+ p->errcode = errcode;
+ p->arena = arena;
+ p->start_rule = start_rule;
+ p->parsing_started = 0;
+ p->normalize = NULL;
+ p->error_indicator = 0;
+
+ p->starting_lineno = 0;
+ p->starting_col_offset = 0;
+ p->flags = flags;
+ p->feature_version = feature_version;
+ p->known_err_token = NULL;
+ p->level = 0;
+ p->call_invalid_rules = 0;
+
+ return p;
+}
+
+static void
+reset_parser_state(Parser *p)
+{
+ for (int i = 0; i < p->fill; i++) {
+ p->tokens[i]->memo = NULL;
+ }
+ p->mark = 0;
+ p->call_invalid_rules = 1;
+}
+
+void *
+_PyPegen_run_parser(Parser *p)
+{
+ void *res = _PyPegen_parse(p);
+ if (res == NULL) {
+ reset_parser_state(p);
+ _PyPegen_parse(p);
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+ if (p->fill == 0) {
+ RAISE_SYNTAX_ERROR("error at start before reading any input");
+ }
+ else if (p->tok->done == E_EOF) {
+ RAISE_SYNTAX_ERROR("unexpected EOF while parsing");
+ }
+ else {
+ if (p->tokens[p->fill-1]->type == INDENT) {
+ RAISE_INDENTATION_ERROR("unexpected indent");
+ }
+ else if (p->tokens[p->fill-1]->type == DEDENT) {
+ RAISE_INDENTATION_ERROR("unexpected unindent");
+ }
+ else {
+ RAISE_SYNTAX_ERROR("invalid syntax");
+ }
+ }
+ return NULL;
+ }
+
+ if (p->start_rule == Py_single_input && bad_single_statement(p)) {
+ p->tok->done = E_BADSINGLE; // This is not necessary for now, but might be in the future
+ return RAISE_SYNTAX_ERROR("multiple statements found while compiling a single statement");
+ }
+
+#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
+ if (p->start_rule == Py_single_input ||
+ p->start_rule == Py_file_input ||
+ p->start_rule == Py_eval_input)
+ {
+ assert(PyAST_Validate(res));
+ }
+#endif
+ return res;
+}
+
+mod_ty
+_PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filename_ob,
+ const char *enc, const char *ps1, const char *ps2,
+ PyCompilerFlags *flags, int *errcode, PyArena *arena)
+{
+ struct tok_state *tok = PyTokenizer_FromFile(fp, enc, ps1, ps2);
+ if (tok == NULL) {
+ if (PyErr_Occurred()) {
+ raise_tokenizer_init_error(filename_ob);
+ return NULL;
+ }
+ return NULL;
+ }
+ // This transfers the ownership to the tokenizer
+ tok->filename = filename_ob;
+ Py_INCREF(filename_ob);
+
+ // From here on we need to clean up even if there's an error
+ mod_ty result = NULL;
+
+ int parser_flags = compute_parser_flags(flags);
+ Parser *p = _PyPegen_Parser_New(tok, start_rule, parser_flags, PY_MINOR_VERSION,
+ errcode, arena);
+ if (p == NULL) {
+ goto error;
+ }
+
+ result = _PyPegen_run_parser(p);
+ _PyPegen_Parser_Free(p);
+
+error:
+ PyTokenizer_Free(tok);
+ return result;
+}
+
+mod_ty
+_PyPegen_run_parser_from_file(const char *filename, int start_rule,
+ PyObject *filename_ob, PyCompilerFlags *flags, PyArena *arena)
+{
+ FILE *fp = fopen(filename, "rb");
+ if (fp == NULL) {
+ PyErr_SetFromErrnoWithFilename(PyExc_OSError, filename);
+ return NULL;
+ }
+
+ mod_ty result = _PyPegen_run_parser_from_file_pointer(fp, start_rule, filename_ob,
+ NULL, NULL, NULL, flags, NULL, arena);
+
+ fclose(fp);
+ return result;
+}
+
+mod_ty
+_PyPegen_run_parser_from_string(const char *str, int start_rule, PyObject *filename_ob,
+ PyCompilerFlags *flags, PyArena *arena)
+{
+ int exec_input = start_rule == Py_file_input;
+
+ struct tok_state *tok;
+ if (flags != NULL && flags->cf_flags & PyCF_IGNORE_COOKIE) {
+ tok = PyTokenizer_FromUTF8(str, exec_input);
+ } else {
+ tok = PyTokenizer_FromString(str, exec_input);
+ }
+ if (tok == NULL) {
+ if (PyErr_Occurred()) {
+ raise_tokenizer_init_error(filename_ob);
+ }
+ return NULL;
+ }
+ // This transfers the ownership to the tokenizer
+ tok->filename = filename_ob;
+ Py_INCREF(filename_ob);
+
+ // We need to clear up from here on
+ mod_ty result = NULL;
+
+ int parser_flags = compute_parser_flags(flags);
+ int feature_version = flags && (flags->cf_flags & PyCF_ONLY_AST) ?
+ flags->cf_feature_version : PY_MINOR_VERSION;
+ Parser *p = _PyPegen_Parser_New(tok, start_rule, parser_flags, feature_version,
+ NULL, arena);
+ if (p == NULL) {
+ goto error;
+ }
+
+ result = _PyPegen_run_parser(p);
+ _PyPegen_Parser_Free(p);
+
+error:
+ PyTokenizer_Free(tok);
+ return result;
+}
+
+void *
+_PyPegen_interactive_exit(Parser *p)
+{
+ if (p->errcode) {
+ *(p->errcode) = E_EOF;
+ }
+ return NULL;
+}
+
+/* Creates a single-element asdl_seq* that contains a */
+asdl_seq *
+_PyPegen_singleton_seq(Parser *p, void *a)
+{
+ assert(a != NULL);
+ asdl_seq *seq = _Py_asdl_seq_new(1, p->arena);
+ if (!seq) {
+ return NULL;
+ }
+ asdl_seq_SET(seq, 0, a);
+ return seq;
+}
+
+/* Creates a copy of seq and prepends a to it */
+asdl_seq *
+_PyPegen_seq_insert_in_front(Parser *p, void *a, asdl_seq *seq)
+{
+ assert(a != NULL);
+ if (!seq) {
+ return _PyPegen_singleton_seq(p, a);
+ }
+
+ asdl_seq *new_seq = _Py_asdl_seq_new(asdl_seq_LEN(seq) + 1, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+
+ asdl_seq_SET(new_seq, 0, a);
+ for (Py_ssize_t i = 1, l = asdl_seq_LEN(new_seq); i < l; i++) {
+ asdl_seq_SET(new_seq, i, asdl_seq_GET(seq, i - 1));
+ }
+ return new_seq;
+}
+
+/* Creates a copy of seq and appends a to it */
+asdl_seq *
+_PyPegen_seq_append_to_end(Parser *p, asdl_seq *seq, void *a)
+{
+ assert(a != NULL);
+ if (!seq) {
+ return _PyPegen_singleton_seq(p, a);
+ }
+
+ asdl_seq *new_seq = _Py_asdl_seq_new(asdl_seq_LEN(seq) + 1, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+
+ for (Py_ssize_t i = 0, l = asdl_seq_LEN(new_seq); i + 1 < l; i++) {
+ asdl_seq_SET(new_seq, i, asdl_seq_GET(seq, i));
+ }
+ asdl_seq_SET(new_seq, asdl_seq_LEN(new_seq) - 1, a);
+ return new_seq;
+}
+
+static Py_ssize_t
+_get_flattened_seq_size(asdl_seq *seqs)
+{
+ Py_ssize_t size = 0;
+ for (Py_ssize_t i = 0, l = asdl_seq_LEN(seqs); i < l; i++) {
+ asdl_seq *inner_seq = asdl_seq_GET(seqs, i);
+ size += asdl_seq_LEN(inner_seq);
+ }
+ return size;
+}
+
+/* Flattens an asdl_seq* of asdl_seq*s */
+asdl_seq *
+_PyPegen_seq_flatten(Parser *p, asdl_seq *seqs)
+{
+ Py_ssize_t flattened_seq_size = _get_flattened_seq_size(seqs);
+ assert(flattened_seq_size > 0);
+
+ asdl_seq *flattened_seq = _Py_asdl_seq_new(flattened_seq_size, p->arena);
+ if (!flattened_seq) {
+ return NULL;
+ }
+
+ int flattened_seq_idx = 0;
+ for (Py_ssize_t i = 0, l = asdl_seq_LEN(seqs); i < l; i++) {
+ asdl_seq *inner_seq = asdl_seq_GET(seqs, i);
+ for (Py_ssize_t j = 0, li = asdl_seq_LEN(inner_seq); j < li; j++) {
+ asdl_seq_SET(flattened_seq, flattened_seq_idx++, asdl_seq_GET(inner_seq, j));
+ }
+ }
+ assert(flattened_seq_idx == flattened_seq_size);
+
+ return flattened_seq;
+}
+
+/* Creates a new name of the form <first_name>.<second_name> */
+expr_ty
+_PyPegen_join_names_with_dot(Parser *p, expr_ty first_name, expr_ty second_name)
+{
+ assert(first_name != NULL && second_name != NULL);
+ PyObject *first_identifier = first_name->v.Name.id;
+ PyObject *second_identifier = second_name->v.Name.id;
+
+ if (PyUnicode_READY(first_identifier) == -1) {
+ return NULL;
+ }
+ if (PyUnicode_READY(second_identifier) == -1) {
+ return NULL;
+ }
+ const char *first_str = PyUnicode_AsUTF8(first_identifier);
+ if (!first_str) {
+ return NULL;
+ }
+ const char *second_str = PyUnicode_AsUTF8(second_identifier);
+ if (!second_str) {
+ return NULL;
+ }
+ Py_ssize_t len = strlen(first_str) + strlen(second_str) + 1; // +1 for the dot
+
+ PyObject *str = PyBytes_FromStringAndSize(NULL, len);
+ if (!str) {
+ return NULL;
+ }
+
+ char *s = PyBytes_AS_STRING(str);
+ if (!s) {
+ return NULL;
+ }
+
+ strcpy(s, first_str);
+ s += strlen(first_str);
+ *s++ = '.';
+ strcpy(s, second_str);
+ s += strlen(second_str);
+ *s = '\0';
+
+ PyObject *uni = PyUnicode_DecodeUTF8(PyBytes_AS_STRING(str), PyBytes_GET_SIZE(str), NULL);
+ Py_DECREF(str);
+ if (!uni) {
+ return NULL;
+ }
+ PyUnicode_InternInPlace(&uni);
+ if (PyArena_AddPyObject(p->arena, uni) < 0) {
+ Py_DECREF(uni);
+ return NULL;
+ }
+
+ return _Py_Name(uni, Load, EXTRA_EXPR(first_name, second_name));
+}
+
+/* Counts the total number of dots in seq's tokens */
+int
+_PyPegen_seq_count_dots(asdl_seq *seq)
+{
+ int number_of_dots = 0;
+ for (Py_ssize_t i = 0, l = asdl_seq_LEN(seq); i < l; i++) {
+ Token *current_expr = asdl_seq_GET(seq, i);
+ switch (current_expr->type) {
+ case ELLIPSIS:
+ number_of_dots += 3;
+ break;
+ case DOT:
+ number_of_dots += 1;
+ break;
+ default:
+ Py_UNREACHABLE();
+ }
+ }
+
+ return number_of_dots;
+}
+
+/* Creates an alias with '*' as the identifier name */
+alias_ty
+_PyPegen_alias_for_star(Parser *p)
+{
+ PyObject *str = PyUnicode_InternFromString("*");
+ if (!str) {
+ return NULL;
+ }
+ if (PyArena_AddPyObject(p->arena, str) < 0) {
+ Py_DECREF(str);
+ return NULL;
+ }
+ return alias(str, NULL, p->arena);
+}
+
+/* Creates a new asdl_seq* with the identifiers of all the names in seq */
+asdl_seq *
+_PyPegen_map_names_to_ids(Parser *p, asdl_seq *seq)
+{
+ Py_ssize_t len = asdl_seq_LEN(seq);
+ assert(len > 0);
+
+ asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ expr_ty e = asdl_seq_GET(seq, i);
+ asdl_seq_SET(new_seq, i, e->v.Name.id);
+ }
+ return new_seq;
+}
+
+/* Constructs a CmpopExprPair */
+CmpopExprPair *
+_PyPegen_cmpop_expr_pair(Parser *p, cmpop_ty cmpop, expr_ty expr)
+{
+ assert(expr != NULL);
+ CmpopExprPair *a = PyArena_Malloc(p->arena, sizeof(CmpopExprPair));
+ if (!a) {
+ return NULL;
+ }
+ a->cmpop = cmpop;
+ a->expr = expr;
+ return a;
+}
+
+asdl_int_seq *
+_PyPegen_get_cmpops(Parser *p, asdl_seq *seq)
+{
+ Py_ssize_t len = asdl_seq_LEN(seq);
+ assert(len > 0);
+
+ asdl_int_seq *new_seq = _Py_asdl_int_seq_new(len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ CmpopExprPair *pair = asdl_seq_GET(seq, i);
+ asdl_seq_SET(new_seq, i, pair->cmpop);
+ }
+ return new_seq;
+}
+
+asdl_seq *
+_PyPegen_get_exprs(Parser *p, asdl_seq *seq)
+{
+ Py_ssize_t len = asdl_seq_LEN(seq);
+ assert(len > 0);
+
+ asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ CmpopExprPair *pair = asdl_seq_GET(seq, i);
+ asdl_seq_SET(new_seq, i, pair->expr);
+ }
+ return new_seq;
+}
+
+/* Creates an asdl_seq* where all the elements have been changed to have ctx as context */
+static asdl_seq *
+_set_seq_context(Parser *p, asdl_seq *seq, expr_context_ty ctx)
+{
+ Py_ssize_t len = asdl_seq_LEN(seq);
+ if (len == 0) {
+ return NULL;
+ }
+
+ asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ expr_ty e = asdl_seq_GET(seq, i);
+ asdl_seq_SET(new_seq, i, _PyPegen_set_expr_context(p, e, ctx));
+ }
+ return new_seq;
+}
+
+static expr_ty
+_set_name_context(Parser *p, expr_ty e, expr_context_ty ctx)
+{
+ return _Py_Name(e->v.Name.id, ctx, EXTRA_EXPR(e, e));
+}
+
+static expr_ty
+_set_tuple_context(Parser *p, expr_ty e, expr_context_ty ctx)
+{
+ return _Py_Tuple(_set_seq_context(p, e->v.Tuple.elts, ctx), ctx, EXTRA_EXPR(e, e));
+}
+
+static expr_ty
+_set_list_context(Parser *p, expr_ty e, expr_context_ty ctx)
+{
+ return _Py_List(_set_seq_context(p, e->v.List.elts, ctx), ctx, EXTRA_EXPR(e, e));
+}
+
+static expr_ty
+_set_subscript_context(Parser *p, expr_ty e, expr_context_ty ctx)
+{
+ return _Py_Subscript(e->v.Subscript.value, e->v.Subscript.slice, ctx, EXTRA_EXPR(e, e));
+}
+
+static expr_ty
+_set_attribute_context(Parser *p, expr_ty e, expr_context_ty ctx)
+{
+ return _Py_Attribute(e->v.Attribute.value, e->v.Attribute.attr, ctx, EXTRA_EXPR(e, e));
+}
+
+static expr_ty
+_set_starred_context(Parser *p, expr_ty e, expr_context_ty ctx)
+{
+ return _Py_Starred(_PyPegen_set_expr_context(p, e->v.Starred.value, ctx), ctx, EXTRA_EXPR(e, e));
+}
+
+/* Creates an `expr_ty` equivalent to `expr` but with `ctx` as context */
+expr_ty
+_PyPegen_set_expr_context(Parser *p, expr_ty expr, expr_context_ty ctx)
+{
+ assert(expr != NULL);
+
+ expr_ty new = NULL;
+ switch (expr->kind) {
+ case Name_kind:
+ new = _set_name_context(p, expr, ctx);
+ break;
+ case Tuple_kind:
+ new = _set_tuple_context(p, expr, ctx);
+ break;
+ case List_kind:
+ new = _set_list_context(p, expr, ctx);
+ break;
+ case Subscript_kind:
+ new = _set_subscript_context(p, expr, ctx);
+ break;
+ case Attribute_kind:
+ new = _set_attribute_context(p, expr, ctx);
+ break;
+ case Starred_kind:
+ new = _set_starred_context(p, expr, ctx);
+ break;
+ default:
+ new = expr;
+ }
+ return new;
+}
+
+/* Constructs a KeyValuePair that is used when parsing a dict's key value pairs */
+KeyValuePair *
+_PyPegen_key_value_pair(Parser *p, expr_ty key, expr_ty value)
+{
+ KeyValuePair *a = PyArena_Malloc(p->arena, sizeof(KeyValuePair));
+ if (!a) {
+ return NULL;
+ }
+ a->key = key;
+ a->value = value;
+ return a;
+}
+
+/* Extracts all keys from an asdl_seq* of KeyValuePair*'s */
+asdl_seq *
+_PyPegen_get_keys(Parser *p, asdl_seq *seq)
+{
+ Py_ssize_t len = asdl_seq_LEN(seq);
+ asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ KeyValuePair *pair = asdl_seq_GET(seq, i);
+ asdl_seq_SET(new_seq, i, pair->key);
+ }
+ return new_seq;
+}
+
+/* Extracts all values from an asdl_seq* of KeyValuePair*'s */
+asdl_seq *
+_PyPegen_get_values(Parser *p, asdl_seq *seq)
+{
+ Py_ssize_t len = asdl_seq_LEN(seq);
+ asdl_seq *new_seq = _Py_asdl_seq_new(len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ KeyValuePair *pair = asdl_seq_GET(seq, i);
+ asdl_seq_SET(new_seq, i, pair->value);
+ }
+ return new_seq;
+}
+
+/* Constructs a NameDefaultPair */
+NameDefaultPair *
+_PyPegen_name_default_pair(Parser *p, arg_ty arg, expr_ty value, Token *tc)
+{
+ NameDefaultPair *a = PyArena_Malloc(p->arena, sizeof(NameDefaultPair));
+ if (!a) {
+ return NULL;
+ }
+ a->arg = _PyPegen_add_type_comment_to_arg(p, arg, tc);
+ a->value = value;
+ return a;
+}
+
+/* Constructs a SlashWithDefault */
+SlashWithDefault *
+_PyPegen_slash_with_default(Parser *p, asdl_seq *plain_names, asdl_seq *names_with_defaults)
+{
+ SlashWithDefault *a = PyArena_Malloc(p->arena, sizeof(SlashWithDefault));
+ if (!a) {
+ return NULL;
+ }
+ a->plain_names = plain_names;
+ a->names_with_defaults = names_with_defaults;
+ return a;
+}
+
+/* Constructs a StarEtc */
+StarEtc *
+_PyPegen_star_etc(Parser *p, arg_ty vararg, asdl_seq *kwonlyargs, arg_ty kwarg)
+{
+ StarEtc *a = PyArena_Malloc(p->arena, sizeof(StarEtc));
+ if (!a) {
+ return NULL;
+ }
+ a->vararg = vararg;
+ a->kwonlyargs = kwonlyargs;
+ a->kwarg = kwarg;
+ return a;
+}
+
+asdl_seq *
+_PyPegen_join_sequences(Parser *p, asdl_seq *a, asdl_seq *b)
+{
+ Py_ssize_t first_len = asdl_seq_LEN(a);
+ Py_ssize_t second_len = asdl_seq_LEN(b);
+ asdl_seq *new_seq = _Py_asdl_seq_new(first_len + second_len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+
+ int k = 0;
+ for (Py_ssize_t i = 0; i < first_len; i++) {
+ asdl_seq_SET(new_seq, k++, asdl_seq_GET(a, i));
+ }
+ for (Py_ssize_t i = 0; i < second_len; i++) {
+ asdl_seq_SET(new_seq, k++, asdl_seq_GET(b, i));
+ }
+
+ return new_seq;
+}
+
+static asdl_seq *
+_get_names(Parser *p, asdl_seq *names_with_defaults)
+{
+ Py_ssize_t len = asdl_seq_LEN(names_with_defaults);
+ asdl_seq *seq = _Py_asdl_seq_new(len, p->arena);
+ if (!seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ NameDefaultPair *pair = asdl_seq_GET(names_with_defaults, i);
+ asdl_seq_SET(seq, i, pair->arg);
+ }
+ return seq;
+}
+
+static asdl_seq *
+_get_defaults(Parser *p, asdl_seq *names_with_defaults)
+{
+ Py_ssize_t len = asdl_seq_LEN(names_with_defaults);
+ asdl_seq *seq = _Py_asdl_seq_new(len, p->arena);
+ if (!seq) {
+ return NULL;
+ }
+ for (Py_ssize_t i = 0; i < len; i++) {
+ NameDefaultPair *pair = asdl_seq_GET(names_with_defaults, i);
+ asdl_seq_SET(seq, i, pair->value);
+ }
+ return seq;
+}
+
+/* Constructs an arguments_ty object out of all the parsed constructs in the parameters rule */
+arguments_ty
+_PyPegen_make_arguments(Parser *p, asdl_seq *slash_without_default,
+ SlashWithDefault *slash_with_default, asdl_seq *plain_names,
+ asdl_seq *names_with_default, StarEtc *star_etc)
+{
+ asdl_seq *posonlyargs;
+ if (slash_without_default != NULL) {
+ posonlyargs = slash_without_default;
+ }
+ else if (slash_with_default != NULL) {
+ asdl_seq *slash_with_default_names =
+ _get_names(p, slash_with_default->names_with_defaults);
+ if (!slash_with_default_names) {
+ return NULL;
+ }
+ posonlyargs = _PyPegen_join_sequences(p, slash_with_default->plain_names, slash_with_default_names);
+ if (!posonlyargs) {
+ return NULL;
+ }
+ }
+ else {
+ posonlyargs = _Py_asdl_seq_new(0, p->arena);
+ if (!posonlyargs) {
+ return NULL;
+ }
+ }
+
+ asdl_seq *posargs;
+ if (plain_names != NULL && names_with_default != NULL) {
+ asdl_seq *names_with_default_names = _get_names(p, names_with_default);
+ if (!names_with_default_names) {
+ return NULL;
+ }
+ posargs = _PyPegen_join_sequences(p, plain_names, names_with_default_names);
+ if (!posargs) {
+ return NULL;
+ }
+ }
+ else if (plain_names == NULL && names_with_default != NULL) {
+ posargs = _get_names(p, names_with_default);
+ if (!posargs) {
+ return NULL;
+ }
+ }
+ else if (plain_names != NULL && names_with_default == NULL) {
+ posargs = plain_names;
+ }
+ else {
+ posargs = _Py_asdl_seq_new(0, p->arena);
+ if (!posargs) {
+ return NULL;
+ }
+ }
+
+ asdl_seq *posdefaults;
+ if (slash_with_default != NULL && names_with_default != NULL) {
+ asdl_seq *slash_with_default_values =
+ _get_defaults(p, slash_with_default->names_with_defaults);
+ if (!slash_with_default_values) {
+ return NULL;
+ }
+ asdl_seq *names_with_default_values = _get_defaults(p, names_with_default);
+ if (!names_with_default_values) {
+ return NULL;
+ }
+ posdefaults = _PyPegen_join_sequences(p, slash_with_default_values, names_with_default_values);
+ if (!posdefaults) {
+ return NULL;
+ }
+ }
+ else if (slash_with_default == NULL && names_with_default != NULL) {
+ posdefaults = _get_defaults(p, names_with_default);
+ if (!posdefaults) {
+ return NULL;
+ }
+ }
+ else if (slash_with_default != NULL && names_with_default == NULL) {
+ posdefaults = _get_defaults(p, slash_with_default->names_with_defaults);
+ if (!posdefaults) {
+ return NULL;
+ }
+ }
+ else {
+ posdefaults = _Py_asdl_seq_new(0, p->arena);
+ if (!posdefaults) {
+ return NULL;
+ }
+ }
+
+ arg_ty vararg = NULL;
+ if (star_etc != NULL && star_etc->vararg != NULL) {
+ vararg = star_etc->vararg;
+ }
+
+ asdl_seq *kwonlyargs;
+ if (star_etc != NULL && star_etc->kwonlyargs != NULL) {
+ kwonlyargs = _get_names(p, star_etc->kwonlyargs);
+ if (!kwonlyargs) {
+ return NULL;
+ }
+ }
+ else {
+ kwonlyargs = _Py_asdl_seq_new(0, p->arena);
+ if (!kwonlyargs) {
+ return NULL;
+ }
+ }
+
+ asdl_seq *kwdefaults;
+ if (star_etc != NULL && star_etc->kwonlyargs != NULL) {
+ kwdefaults = _get_defaults(p, star_etc->kwonlyargs);
+ if (!kwdefaults) {
+ return NULL;
+ }
+ }
+ else {
+ kwdefaults = _Py_asdl_seq_new(0, p->arena);
+ if (!kwdefaults) {
+ return NULL;
+ }
+ }
+
+ arg_ty kwarg = NULL;
+ if (star_etc != NULL && star_etc->kwarg != NULL) {
+ kwarg = star_etc->kwarg;
+ }
+
+ return _Py_arguments(posonlyargs, posargs, vararg, kwonlyargs, kwdefaults, kwarg,
+ posdefaults, p->arena);
+}
+
+/* Constructs an empty arguments_ty object, that gets used when a function accepts no
+ * arguments. */
+arguments_ty
+_PyPegen_empty_arguments(Parser *p)
+{
+ asdl_seq *posonlyargs = _Py_asdl_seq_new(0, p->arena);
+ if (!posonlyargs) {
+ return NULL;
+ }
+ asdl_seq *posargs = _Py_asdl_seq_new(0, p->arena);
+ if (!posargs) {
+ return NULL;
+ }
+ asdl_seq *posdefaults = _Py_asdl_seq_new(0, p->arena);
+ if (!posdefaults) {
+ return NULL;
+ }
+ asdl_seq *kwonlyargs = _Py_asdl_seq_new(0, p->arena);
+ if (!kwonlyargs) {
+ return NULL;
+ }
+ asdl_seq *kwdefaults = _Py_asdl_seq_new(0, p->arena);
+ if (!kwdefaults) {
+ return NULL;
+ }
+
+ return _Py_arguments(posonlyargs, posargs, NULL, kwonlyargs, kwdefaults, NULL, kwdefaults,
+ p->arena);
+}
+
+/* Encapsulates the value of an operator_ty into an AugOperator struct */
+AugOperator *
+_PyPegen_augoperator(Parser *p, operator_ty kind)
+{
+ AugOperator *a = PyArena_Malloc(p->arena, sizeof(AugOperator));
+ if (!a) {
+ return NULL;
+ }
+ a->kind = kind;
+ return a;
+}
+
+/* Construct a FunctionDef equivalent to function_def, but with decorators */
+stmt_ty
+_PyPegen_function_def_decorators(Parser *p, asdl_seq *decorators, stmt_ty function_def)
+{
+ assert(function_def != NULL);
+ if (function_def->kind == AsyncFunctionDef_kind) {
+ return _Py_AsyncFunctionDef(
+ function_def->v.FunctionDef.name, function_def->v.FunctionDef.args,
+ function_def->v.FunctionDef.body, decorators, function_def->v.FunctionDef.returns,
+ function_def->v.FunctionDef.type_comment, function_def->lineno,
+ function_def->col_offset, function_def->end_lineno, function_def->end_col_offset,
+ p->arena);
+ }
+
+ return _Py_FunctionDef(function_def->v.FunctionDef.name, function_def->v.FunctionDef.args,
+ function_def->v.FunctionDef.body, decorators,
+ function_def->v.FunctionDef.returns,
+ function_def->v.FunctionDef.type_comment, function_def->lineno,
+ function_def->col_offset, function_def->end_lineno,
+ function_def->end_col_offset, p->arena);
+}
+
+/* Construct a ClassDef equivalent to class_def, but with decorators */
+stmt_ty
+_PyPegen_class_def_decorators(Parser *p, asdl_seq *decorators, stmt_ty class_def)
+{
+ assert(class_def != NULL);
+ return _Py_ClassDef(class_def->v.ClassDef.name, class_def->v.ClassDef.bases,
+ class_def->v.ClassDef.keywords, class_def->v.ClassDef.body, decorators,
+ class_def->lineno, class_def->col_offset, class_def->end_lineno,
+ class_def->end_col_offset, p->arena);
+}
+
+/* Construct a KeywordOrStarred */
+KeywordOrStarred *
+_PyPegen_keyword_or_starred(Parser *p, void *element, int is_keyword)
+{
+ KeywordOrStarred *a = PyArena_Malloc(p->arena, sizeof(KeywordOrStarred));
+ if (!a) {
+ return NULL;
+ }
+ a->element = element;
+ a->is_keyword = is_keyword;
+ return a;
+}
+
+/* Get the number of starred expressions in an asdl_seq* of KeywordOrStarred*s */
+static int
+_seq_number_of_starred_exprs(asdl_seq *seq)
+{
+ int n = 0;
+ for (Py_ssize_t i = 0, l = asdl_seq_LEN(seq); i < l; i++) {
+ KeywordOrStarred *k = asdl_seq_GET(seq, i);
+ if (!k->is_keyword) {
+ n++;
+ }
+ }
+ return n;
+}
+
+/* Extract the starred expressions of an asdl_seq* of KeywordOrStarred*s */
+asdl_seq *
+_PyPegen_seq_extract_starred_exprs(Parser *p, asdl_seq *kwargs)
+{
+ int new_len = _seq_number_of_starred_exprs(kwargs);
+ if (new_len == 0) {
+ return NULL;
+ }
+ asdl_seq *new_seq = _Py_asdl_seq_new(new_len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+
+ int idx = 0;
+ for (Py_ssize_t i = 0, len = asdl_seq_LEN(kwargs); i < len; i++) {
+ KeywordOrStarred *k = asdl_seq_GET(kwargs, i);
+ if (!k->is_keyword) {
+ asdl_seq_SET(new_seq, idx++, k->element);
+ }
+ }
+ return new_seq;
+}
+
+/* Return a new asdl_seq* with only the keywords in kwargs */
+asdl_seq *
+_PyPegen_seq_delete_starred_exprs(Parser *p, asdl_seq *kwargs)
+{
+ Py_ssize_t len = asdl_seq_LEN(kwargs);
+ Py_ssize_t new_len = len - _seq_number_of_starred_exprs(kwargs);
+ if (new_len == 0) {
+ return NULL;
+ }
+ asdl_seq *new_seq = _Py_asdl_seq_new(new_len, p->arena);
+ if (!new_seq) {
+ return NULL;
+ }
+
+ int idx = 0;
+ for (Py_ssize_t i = 0; i < len; i++) {
+ KeywordOrStarred *k = asdl_seq_GET(kwargs, i);
+ if (k->is_keyword) {
+ asdl_seq_SET(new_seq, idx++, k->element);
+ }
+ }
+ return new_seq;
+}
+
+expr_ty
+_PyPegen_concatenate_strings(Parser *p, asdl_seq *strings)
+{
+ Py_ssize_t len = asdl_seq_LEN(strings);
+ assert(len > 0);
+
+ Token *first = asdl_seq_GET(strings, 0);
+ Token *last = asdl_seq_GET(strings, len - 1);
+
+ int bytesmode = 0;
+ PyObject *bytes_str = NULL;
+
+ FstringParser state;
+ _PyPegen_FstringParser_Init(&state);
+
+ for (Py_ssize_t i = 0; i < len; i++) {
+ Token *t = asdl_seq_GET(strings, i);
+
+ int this_bytesmode;
+ int this_rawmode;
+ PyObject *s;
+ const char *fstr;
+ Py_ssize_t fstrlen = -1;
+
+ if (_PyPegen_parsestr(p, &this_bytesmode, &this_rawmode, &s, &fstr, &fstrlen, t) != 0) {
+ goto error;
+ }
+
+ /* Check that we are not mixing bytes with unicode. */
+ if (i != 0 && bytesmode != this_bytesmode) {
+ RAISE_SYNTAX_ERROR("cannot mix bytes and nonbytes literals");
+ Py_XDECREF(s);
+ goto error;
+ }
+ bytesmode = this_bytesmode;
+
+ if (fstr != NULL) {
+ assert(s == NULL && !bytesmode);
+
+ int result = _PyPegen_FstringParser_ConcatFstring(p, &state, &fstr, fstr + fstrlen,
+ this_rawmode, 0, first, t, last);
+ if (result < 0) {
+ goto error;
+ }
+ }
+ else {
+ /* String or byte string. */
+ assert(s != NULL && fstr == NULL);
+ assert(bytesmode ? PyBytes_CheckExact(s) : PyUnicode_CheckExact(s));
+
+ if (bytesmode) {
+ if (i == 0) {
+ bytes_str = s;
+ }
+ else {
+ PyBytes_ConcatAndDel(&bytes_str, s);
+ if (!bytes_str) {
+ goto error;
+ }
+ }
+ }
+ else {
+ /* This is a regular string. Concatenate it. */
+ if (_PyPegen_FstringParser_ConcatAndDel(&state, s) < 0) {
+ goto error;
+ }
+ }
+ }
+ }
+
+ if (bytesmode) {
+ if (PyArena_AddPyObject(p->arena, bytes_str) < 0) {
+ goto error;
+ }
+ return Constant(bytes_str, NULL, first->lineno, first->col_offset, last->end_lineno,
+ last->end_col_offset, p->arena);
+ }
+
+ return _PyPegen_FstringParser_Finish(p, &state, first, last);
+
+error:
+ Py_XDECREF(bytes_str);
+ _PyPegen_FstringParser_Dealloc(&state);
+ if (PyErr_Occurred()) {
+ raise_decode_error(p);
+ }
+ return NULL;
+}
+
+mod_ty
+_PyPegen_make_module(Parser *p, asdl_seq *a) {
+ asdl_seq *type_ignores = NULL;
+ Py_ssize_t num = p->type_ignore_comments.num_items;
+ if (num > 0) {
+ // Turn the raw (comment, lineno) pairs into TypeIgnore objects in the arena
+ type_ignores = _Py_asdl_seq_new(num, p->arena);
+ if (type_ignores == NULL) {
+ return NULL;
+ }
+ for (int i = 0; i < num; i++) {
+ PyObject *tag = _PyPegen_new_type_comment(p, p->type_ignore_comments.items[i].comment);
+ if (tag == NULL) {
+ return NULL;
+ }
+ type_ignore_ty ti = TypeIgnore(p->type_ignore_comments.items[i].lineno, tag, p->arena);
+ if (ti == NULL) {
+ return NULL;
+ }
+ asdl_seq_SET(type_ignores, i, ti);
+ }
+ }
+ return Module(a, type_ignores, p->arena);
+}
+
+// Error reporting helpers
+
+expr_ty
+_PyPegen_get_invalid_target(expr_ty e, TARGETS_TYPE targets_type)
+{
+ if (e == NULL) {
+ return NULL;
+ }
+
+#define VISIT_CONTAINER(CONTAINER, TYPE) do { \
+ Py_ssize_t len = asdl_seq_LEN(CONTAINER->v.TYPE.elts);\
+ for (Py_ssize_t i = 0; i < len; i++) {\
+ expr_ty other = asdl_seq_GET(CONTAINER->v.TYPE.elts, i);\
+ expr_ty child = _PyPegen_get_invalid_target(other, targets_type);\
+ if (child != NULL) {\
+ return child;\
+ }\
+ }\
+ } while (0)
+
+ // We only need to visit List and Tuple nodes recursively as those
+ // are the only ones that can contain valid names in targets when
+ // they are parsed as expressions. Any other kind of expression
+ // that is a container (like Sets or Dicts) is directly invalid and
+ // we don't need to visit it recursively.
+
+ switch (e->kind) {
+ case List_kind:
+ VISIT_CONTAINER(e, List);
+ return NULL;
+ case Tuple_kind:
+ VISIT_CONTAINER(e, Tuple);
+ return NULL;
+ case Starred_kind:
+ if (targets_type == DEL_TARGETS) {
+ return e;
+ }
+ return _PyPegen_get_invalid_target(e->v.Starred.value, targets_type);
+ case Compare_kind:
+ // This is needed, because the `a in b` in `for a in b` gets parsed
+ // as a comparison, and so we need to search the left side of the comparison
+ // for invalid targets.
+ if (targets_type == FOR_TARGETS) {
+ cmpop_ty cmpop = (cmpop_ty) asdl_seq_GET(e->v.Compare.ops, 0);
+ if (cmpop == In) {
+ return _PyPegen_get_invalid_target(e->v.Compare.left, targets_type);
+ }
+ return NULL;
+ }
+ return e;
+ case Name_kind:
+ case Subscript_kind:
+ case Attribute_kind:
+ return NULL;
+ default:
+ return e;
+ }
+}
+
+void *_PyPegen_arguments_parsing_error(Parser *p, expr_ty e) {
+ int kwarg_unpacking = 0;
+ for (Py_ssize_t i = 0, l = asdl_seq_LEN(e->v.Call.keywords); i < l; i++) {
+ keyword_ty keyword = asdl_seq_GET(e->v.Call.keywords, i);
+ if (!keyword->arg) {
+ kwarg_unpacking = 1;
+ }
+ }
+
+ const char *msg = NULL;
+ if (kwarg_unpacking) {
+ msg = "positional argument follows keyword argument unpacking";
+ } else {
+ msg = "positional argument follows keyword argument";
+ }
+
+ return RAISE_SYNTAX_ERROR(msg);
+}
+
+void *
+_PyPegen_nonparen_genexp_in_call(Parser *p, expr_ty args)
+{
+ /* The rule that calls this function is 'args for_if_clauses'.
+ For the input f(L, x for x in y), L and x are in args and
+ the for is parsed as a for_if_clause. We have to check if
+ len <= 1, so that input like dict((a, b) for a, b in x)
+ gets successfully parsed and then we pass the last
+ argument (x in the above example) as the location of the
+ error */
+ Py_ssize_t len = asdl_seq_LEN(args->v.Call.args);
+ if (len <= 1) {
+ return NULL;
+ }
+
+ return RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
+ (expr_ty) asdl_seq_GET(args->v.Call.args, len - 1),
+ "Generator expression must be parenthesized"
+ );
+}
+
+
+expr_ty _PyPegen_collect_call_seqs(Parser *p, asdl_seq *a, asdl_seq *b,
+ int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena) {
+ Py_ssize_t args_len = asdl_seq_LEN(a);
+ Py_ssize_t total_len = args_len;
+
+ if (b == NULL) {
+ return _Py_Call(_PyPegen_dummy_name(p), a, NULL, lineno, col_offset,
+ end_lineno, end_col_offset, arena);
+
+ }
+
+ asdl_seq *starreds = _PyPegen_seq_extract_starred_exprs(p, b);
+ asdl_seq *keywords = _PyPegen_seq_delete_starred_exprs(p, b);
+
+ if (starreds) {
+ total_len += asdl_seq_LEN(starreds);
+ }
+
+ asdl_seq *args = _Py_asdl_seq_new(total_len, arena);
+
+ Py_ssize_t i = 0;
+ for (i = 0; i < args_len; i++) {
+ asdl_seq_SET(args, i, asdl_seq_GET(a, i));
+ }
+ for (; i < total_len; i++) {
+ asdl_seq_SET(args, i, asdl_seq_GET(starreds, i - args_len));
+ }
+
+ return _Py_Call(_PyPegen_dummy_name(p), args, keywords, lineno,
+ col_offset, end_lineno, end_col_offset, arena);
+
+
+}
diff --git a/contrib/tools/python3/src/Parser/pegen/pegen.h b/contrib/tools/python3/src/Parser/pegen/pegen.h
index 49cc35ec1f..224c5cbea6 100644
--- a/contrib/tools/python3/src/Parser/pegen/pegen.h
+++ b/contrib/tools/python3/src/Parser/pegen/pegen.h
@@ -1,307 +1,307 @@
-#ifndef PEGEN_H
-#define PEGEN_H
-
-#define PY_SSIZE_T_CLEAN
-#include <Python.h>
-#include <token.h>
-#include <Python-ast.h>
-#include <pyarena.h>
-
-#if 0
-#define PyPARSE_YIELD_IS_KEYWORD 0x0001
-#endif
-
-#define PyPARSE_DONT_IMPLY_DEDENT 0x0002
-
-#if 0
-#define PyPARSE_WITH_IS_KEYWORD 0x0003
-#define PyPARSE_PRINT_IS_FUNCTION 0x0004
-#define PyPARSE_UNICODE_LITERALS 0x0008
-#endif
-
-#define PyPARSE_IGNORE_COOKIE 0x0010
-#define PyPARSE_BARRY_AS_BDFL 0x0020
-#define PyPARSE_TYPE_COMMENTS 0x0040
-#define PyPARSE_ASYNC_HACKS 0x0080
-
-typedef struct _memo {
- int type;
- void *node;
- int mark;
- struct _memo *next;
-} Memo;
-
-typedef struct {
- int type;
- PyObject *bytes;
- int lineno, col_offset, end_lineno, end_col_offset;
- Memo *memo;
-} Token;
-
-typedef struct {
- char *str;
- int type;
-} KeywordToken;
-
-
-typedef struct {
- struct {
- int lineno;
- char *comment; // The " <tag>" in "# type: ignore <tag>"
- } *items;
- size_t size;
- size_t num_items;
-} growable_comment_array;
-
-typedef struct {
- struct tok_state *tok;
- Token **tokens;
- int mark;
- int fill, size;
- PyArena *arena;
- KeywordToken **keywords;
- int n_keyword_lists;
- int start_rule;
- int *errcode;
- int parsing_started;
- PyObject* normalize;
- int starting_lineno;
- int starting_col_offset;
- int error_indicator;
- int flags;
- int feature_version;
- growable_comment_array type_ignore_comments;
- Token *known_err_token;
- int level;
- int call_invalid_rules;
-} Parser;
-
-typedef struct {
- cmpop_ty cmpop;
- expr_ty expr;
-} CmpopExprPair;
-
-typedef struct {
- expr_ty key;
- expr_ty value;
-} KeyValuePair;
-
-typedef struct {
- arg_ty arg;
- expr_ty value;
-} NameDefaultPair;
-
-typedef struct {
- asdl_seq *plain_names;
- asdl_seq *names_with_defaults; // asdl_seq* of NameDefaultsPair's
-} SlashWithDefault;
-
-typedef struct {
- arg_ty vararg;
- asdl_seq *kwonlyargs; // asdl_seq* of NameDefaultsPair's
- arg_ty kwarg;
-} StarEtc;
-
-typedef struct {
- operator_ty kind;
-} AugOperator;
-
-typedef struct {
- void *element;
- int is_keyword;
-} KeywordOrStarred;
-
-void _PyPegen_clear_memo_statistics(void);
-PyObject *_PyPegen_get_memo_statistics(void);
-
-int _PyPegen_insert_memo(Parser *p, int mark, int type, void *node);
-int _PyPegen_update_memo(Parser *p, int mark, int type, void *node);
-int _PyPegen_is_memoized(Parser *p, int type, void *pres);
-
-int _PyPegen_lookahead_with_name(int, expr_ty (func)(Parser *), Parser *);
-int _PyPegen_lookahead_with_string(int , expr_ty (func)(Parser *, const char*), Parser *, const char*);
-int _PyPegen_lookahead_with_int(int, Token *(func)(Parser *, int), Parser *, int);
-int _PyPegen_lookahead(int, void *(func)(Parser *), Parser *);
-
-Token *_PyPegen_expect_token(Parser *p, int type);
-expr_ty _PyPegen_expect_soft_keyword(Parser *p, const char *keyword);
-Token *_PyPegen_get_last_nonnwhitespace_token(Parser *);
-int _PyPegen_fill_token(Parser *p);
-expr_ty _PyPegen_name_token(Parser *p);
-expr_ty _PyPegen_number_token(Parser *p);
-void *_PyPegen_string_token(Parser *p);
-const char *_PyPegen_get_expr_name(expr_ty);
-void *_PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...);
-void *_PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
- Py_ssize_t lineno, Py_ssize_t col_offset,
- const char *errmsg, va_list va);
-void *_PyPegen_dummy_name(Parser *p, ...);
-
-Py_LOCAL_INLINE(void *)
-RAISE_ERROR_KNOWN_LOCATION(Parser *p, PyObject *errtype,
- Py_ssize_t lineno, Py_ssize_t col_offset,
- const char *errmsg, ...)
-{
- va_list va;
- va_start(va, errmsg);
- _PyPegen_raise_error_known_location(p, errtype, lineno, col_offset + 1,
- errmsg, va);
- va_end(va);
- return NULL;
-}
-
-
-#define UNUSED(expr) do { (void)(expr); } while (0)
-#define EXTRA_EXPR(head, tail) head->lineno, head->col_offset, tail->end_lineno, tail->end_col_offset, p->arena
-#define EXTRA _start_lineno, _start_col_offset, _end_lineno, _end_col_offset, p->arena
-#define RAISE_SYNTAX_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_SyntaxError, msg, ##__VA_ARGS__)
-#define RAISE_INDENTATION_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_IndentationError, msg, ##__VA_ARGS__)
-#define RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, msg, ...) \
- RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError, (a)->lineno, (a)->col_offset, msg, ##__VA_ARGS__)
-
-Py_LOCAL_INLINE(void *)
-CHECK_CALL(Parser *p, void *result)
-{
- if (result == NULL) {
- assert(PyErr_Occurred());
- p->error_indicator = 1;
- }
- return result;
-}
-
-/* This is needed for helper functions that are allowed to
- return NULL without an error. Example: _PyPegen_seq_extract_starred_exprs */
-Py_LOCAL_INLINE(void *)
-CHECK_CALL_NULL_ALLOWED(Parser *p, void *result)
-{
- if (result == NULL && PyErr_Occurred()) {
- p->error_indicator = 1;
- }
- return result;
-}
-
-#define CHECK(result) CHECK_CALL(p, result)
-#define CHECK_NULL_ALLOWED(result) CHECK_CALL_NULL_ALLOWED(p, result)
-
-PyObject *_PyPegen_new_type_comment(Parser *, char *);
-
-Py_LOCAL_INLINE(PyObject *)
-NEW_TYPE_COMMENT(Parser *p, Token *tc)
-{
- if (tc == NULL) {
- return NULL;
- }
- char *bytes = PyBytes_AsString(tc->bytes);
- if (bytes == NULL) {
- goto error;
- }
- PyObject *tco = _PyPegen_new_type_comment(p, bytes);
- if (tco == NULL) {
- goto error;
- }
- return tco;
- error:
- p->error_indicator = 1; // Inline CHECK_CALL
- return NULL;
-}
-
-Py_LOCAL_INLINE(void *)
-INVALID_VERSION_CHECK(Parser *p, int version, char *msg, void *node)
-{
- if (node == NULL) {
- p->error_indicator = 1; // Inline CHECK_CALL
- return NULL;
- }
- if (p->feature_version < version) {
- p->error_indicator = 1;
- return RAISE_SYNTAX_ERROR("%s only supported in Python 3.%i and greater",
- msg, version);
- }
- return node;
-}
-
-#define CHECK_VERSION(version, msg, node) INVALID_VERSION_CHECK(p, version, msg, node)
-
-arg_ty _PyPegen_add_type_comment_to_arg(Parser *, arg_ty, Token *);
-PyObject *_PyPegen_new_identifier(Parser *, char *);
-Parser *_PyPegen_Parser_New(struct tok_state *, int, int, int, int *, PyArena *);
-void _PyPegen_Parser_Free(Parser *);
-mod_ty _PyPegen_run_parser_from_file_pointer(FILE *, int, PyObject *, const char *,
- const char *, const char *, PyCompilerFlags *, int *, PyArena *);
-void *_PyPegen_run_parser(Parser *);
-mod_ty _PyPegen_run_parser_from_file(const char *, int, PyObject *, PyCompilerFlags *, PyArena *);
-mod_ty _PyPegen_run_parser_from_string(const char *, int, PyObject *, PyCompilerFlags *, PyArena *);
-void *_PyPegen_interactive_exit(Parser *);
-asdl_seq *_PyPegen_singleton_seq(Parser *, void *);
-asdl_seq *_PyPegen_seq_insert_in_front(Parser *, void *, asdl_seq *);
-asdl_seq *_PyPegen_seq_append_to_end(Parser *, asdl_seq *, void *);
-asdl_seq *_PyPegen_seq_flatten(Parser *, asdl_seq *);
-expr_ty _PyPegen_join_names_with_dot(Parser *, expr_ty, expr_ty);
-int _PyPegen_seq_count_dots(asdl_seq *);
-alias_ty _PyPegen_alias_for_star(Parser *);
-asdl_seq *_PyPegen_map_names_to_ids(Parser *, asdl_seq *);
-CmpopExprPair *_PyPegen_cmpop_expr_pair(Parser *, cmpop_ty, expr_ty);
-asdl_int_seq *_PyPegen_get_cmpops(Parser *p, asdl_seq *);
-asdl_seq *_PyPegen_get_exprs(Parser *, asdl_seq *);
-expr_ty _PyPegen_set_expr_context(Parser *, expr_ty, expr_context_ty);
-KeyValuePair *_PyPegen_key_value_pair(Parser *, expr_ty, expr_ty);
-asdl_seq *_PyPegen_get_keys(Parser *, asdl_seq *);
-asdl_seq *_PyPegen_get_values(Parser *, asdl_seq *);
-NameDefaultPair *_PyPegen_name_default_pair(Parser *, arg_ty, expr_ty, Token *);
-SlashWithDefault *_PyPegen_slash_with_default(Parser *, asdl_seq *, asdl_seq *);
-StarEtc *_PyPegen_star_etc(Parser *, arg_ty, asdl_seq *, arg_ty);
-arguments_ty _PyPegen_make_arguments(Parser *, asdl_seq *, SlashWithDefault *,
- asdl_seq *, asdl_seq *, StarEtc *);
-arguments_ty _PyPegen_empty_arguments(Parser *);
-AugOperator *_PyPegen_augoperator(Parser*, operator_ty type);
-stmt_ty _PyPegen_function_def_decorators(Parser *, asdl_seq *, stmt_ty);
-stmt_ty _PyPegen_class_def_decorators(Parser *, asdl_seq *, stmt_ty);
-KeywordOrStarred *_PyPegen_keyword_or_starred(Parser *, void *, int);
-asdl_seq *_PyPegen_seq_extract_starred_exprs(Parser *, asdl_seq *);
-asdl_seq *_PyPegen_seq_delete_starred_exprs(Parser *, asdl_seq *);
-expr_ty _PyPegen_collect_call_seqs(Parser *, asdl_seq *, asdl_seq *,
- int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena);
-expr_ty _PyPegen_concatenate_strings(Parser *p, asdl_seq *);
-asdl_seq *_PyPegen_join_sequences(Parser *, asdl_seq *, asdl_seq *);
-int _PyPegen_check_barry_as_flufl(Parser *, Token *);
-mod_ty _PyPegen_make_module(Parser *, asdl_seq *);
-
-// Error reporting helpers
-typedef enum {
- STAR_TARGETS,
- DEL_TARGETS,
- FOR_TARGETS
-} TARGETS_TYPE;
-expr_ty _PyPegen_get_invalid_target(expr_ty e, TARGETS_TYPE targets_type);
-#define RAISE_SYNTAX_ERROR_INVALID_TARGET(type, e) _RAISE_SYNTAX_ERROR_INVALID_TARGET(p, type, e)
-
-Py_LOCAL_INLINE(void *)
-_RAISE_SYNTAX_ERROR_INVALID_TARGET(Parser *p, TARGETS_TYPE type, void *e)
-{
- expr_ty invalid_target = CHECK_NULL_ALLOWED(_PyPegen_get_invalid_target(e, type));
- if (invalid_target != NULL) {
- const char *msg;
- if (type == STAR_TARGETS || type == FOR_TARGETS) {
- msg = "cannot assign to %s";
- }
- else {
- msg = "cannot delete %s";
- }
- return RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
- invalid_target,
- msg,
- _PyPegen_get_expr_name(invalid_target)
- );
- }
- return RAISE_SYNTAX_ERROR("invalid syntax");
-}
-
-void *_PyPegen_arguments_parsing_error(Parser *, expr_ty);
-void *_PyPegen_nonparen_genexp_in_call(Parser *p, expr_ty args);
-
-
-// Generated function in parse.c - function definition in python.gram
-void *_PyPegen_parse(Parser *);
-
-#endif
+#ifndef PEGEN_H
+#define PEGEN_H
+
+#define PY_SSIZE_T_CLEAN
+#include <Python.h>
+#include <token.h>
+#include <Python-ast.h>
+#include <pyarena.h>
+
+#if 0
+#define PyPARSE_YIELD_IS_KEYWORD 0x0001
+#endif
+
+#define PyPARSE_DONT_IMPLY_DEDENT 0x0002
+
+#if 0
+#define PyPARSE_WITH_IS_KEYWORD 0x0003
+#define PyPARSE_PRINT_IS_FUNCTION 0x0004
+#define PyPARSE_UNICODE_LITERALS 0x0008
+#endif
+
+#define PyPARSE_IGNORE_COOKIE 0x0010
+#define PyPARSE_BARRY_AS_BDFL 0x0020
+#define PyPARSE_TYPE_COMMENTS 0x0040
+#define PyPARSE_ASYNC_HACKS 0x0080
+
+typedef struct _memo {
+ int type;
+ void *node;
+ int mark;
+ struct _memo *next;
+} Memo;
+
+typedef struct {
+ int type;
+ PyObject *bytes;
+ int lineno, col_offset, end_lineno, end_col_offset;
+ Memo *memo;
+} Token;
+
+typedef struct {
+ char *str;
+ int type;
+} KeywordToken;
+
+
+typedef struct {
+ struct {
+ int lineno;
+ char *comment; // The " <tag>" in "# type: ignore <tag>"
+ } *items;
+ size_t size;
+ size_t num_items;
+} growable_comment_array;
+
+typedef struct {
+ struct tok_state *tok;
+ Token **tokens;
+ int mark;
+ int fill, size;
+ PyArena *arena;
+ KeywordToken **keywords;
+ int n_keyword_lists;
+ int start_rule;
+ int *errcode;
+ int parsing_started;
+ PyObject* normalize;
+ int starting_lineno;
+ int starting_col_offset;
+ int error_indicator;
+ int flags;
+ int feature_version;
+ growable_comment_array type_ignore_comments;
+ Token *known_err_token;
+ int level;
+ int call_invalid_rules;
+} Parser;
+
+typedef struct {
+ cmpop_ty cmpop;
+ expr_ty expr;
+} CmpopExprPair;
+
+typedef struct {
+ expr_ty key;
+ expr_ty value;
+} KeyValuePair;
+
+typedef struct {
+ arg_ty arg;
+ expr_ty value;
+} NameDefaultPair;
+
+typedef struct {
+ asdl_seq *plain_names;
+ asdl_seq *names_with_defaults; // asdl_seq* of NameDefaultsPair's
+} SlashWithDefault;
+
+typedef struct {
+ arg_ty vararg;
+ asdl_seq *kwonlyargs; // asdl_seq* of NameDefaultsPair's
+ arg_ty kwarg;
+} StarEtc;
+
+typedef struct {
+ operator_ty kind;
+} AugOperator;
+
+typedef struct {
+ void *element;
+ int is_keyword;
+} KeywordOrStarred;
+
+void _PyPegen_clear_memo_statistics(void);
+PyObject *_PyPegen_get_memo_statistics(void);
+
+int _PyPegen_insert_memo(Parser *p, int mark, int type, void *node);
+int _PyPegen_update_memo(Parser *p, int mark, int type, void *node);
+int _PyPegen_is_memoized(Parser *p, int type, void *pres);
+
+int _PyPegen_lookahead_with_name(int, expr_ty (func)(Parser *), Parser *);
+int _PyPegen_lookahead_with_string(int , expr_ty (func)(Parser *, const char*), Parser *, const char*);
+int _PyPegen_lookahead_with_int(int, Token *(func)(Parser *, int), Parser *, int);
+int _PyPegen_lookahead(int, void *(func)(Parser *), Parser *);
+
+Token *_PyPegen_expect_token(Parser *p, int type);
+expr_ty _PyPegen_expect_soft_keyword(Parser *p, const char *keyword);
+Token *_PyPegen_get_last_nonnwhitespace_token(Parser *);
+int _PyPegen_fill_token(Parser *p);
+expr_ty _PyPegen_name_token(Parser *p);
+expr_ty _PyPegen_number_token(Parser *p);
+void *_PyPegen_string_token(Parser *p);
+const char *_PyPegen_get_expr_name(expr_ty);
+void *_PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...);
+void *_PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
+ Py_ssize_t lineno, Py_ssize_t col_offset,
+ const char *errmsg, va_list va);
+void *_PyPegen_dummy_name(Parser *p, ...);
+
+Py_LOCAL_INLINE(void *)
+RAISE_ERROR_KNOWN_LOCATION(Parser *p, PyObject *errtype,
+ Py_ssize_t lineno, Py_ssize_t col_offset,
+ const char *errmsg, ...)
+{
+ va_list va;
+ va_start(va, errmsg);
+ _PyPegen_raise_error_known_location(p, errtype, lineno, col_offset + 1,
+ errmsg, va);
+ va_end(va);
+ return NULL;
+}
+
+
+#define UNUSED(expr) do { (void)(expr); } while (0)
+#define EXTRA_EXPR(head, tail) head->lineno, head->col_offset, tail->end_lineno, tail->end_col_offset, p->arena
+#define EXTRA _start_lineno, _start_col_offset, _end_lineno, _end_col_offset, p->arena
+#define RAISE_SYNTAX_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_SyntaxError, msg, ##__VA_ARGS__)
+#define RAISE_INDENTATION_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_IndentationError, msg, ##__VA_ARGS__)
+#define RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, msg, ...) \
+ RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError, (a)->lineno, (a)->col_offset, msg, ##__VA_ARGS__)
+
+Py_LOCAL_INLINE(void *)
+CHECK_CALL(Parser *p, void *result)
+{
+ if (result == NULL) {
+ assert(PyErr_Occurred());
+ p->error_indicator = 1;
+ }
+ return result;
+}
+
+/* This is needed for helper functions that are allowed to
+ return NULL without an error. Example: _PyPegen_seq_extract_starred_exprs */
+Py_LOCAL_INLINE(void *)
+CHECK_CALL_NULL_ALLOWED(Parser *p, void *result)
+{
+ if (result == NULL && PyErr_Occurred()) {
+ p->error_indicator = 1;
+ }
+ return result;
+}
+
+#define CHECK(result) CHECK_CALL(p, result)
+#define CHECK_NULL_ALLOWED(result) CHECK_CALL_NULL_ALLOWED(p, result)
+
+PyObject *_PyPegen_new_type_comment(Parser *, char *);
+
+Py_LOCAL_INLINE(PyObject *)
+NEW_TYPE_COMMENT(Parser *p, Token *tc)
+{
+ if (tc == NULL) {
+ return NULL;
+ }
+ char *bytes = PyBytes_AsString(tc->bytes);
+ if (bytes == NULL) {
+ goto error;
+ }
+ PyObject *tco = _PyPegen_new_type_comment(p, bytes);
+ if (tco == NULL) {
+ goto error;
+ }
+ return tco;
+ error:
+ p->error_indicator = 1; // Inline CHECK_CALL
+ return NULL;
+}
+
+Py_LOCAL_INLINE(void *)
+INVALID_VERSION_CHECK(Parser *p, int version, char *msg, void *node)
+{
+ if (node == NULL) {
+ p->error_indicator = 1; // Inline CHECK_CALL
+ return NULL;
+ }
+ if (p->feature_version < version) {
+ p->error_indicator = 1;
+ return RAISE_SYNTAX_ERROR("%s only supported in Python 3.%i and greater",
+ msg, version);
+ }
+ return node;
+}
+
+#define CHECK_VERSION(version, msg, node) INVALID_VERSION_CHECK(p, version, msg, node)
+
+arg_ty _PyPegen_add_type_comment_to_arg(Parser *, arg_ty, Token *);
+PyObject *_PyPegen_new_identifier(Parser *, char *);
+Parser *_PyPegen_Parser_New(struct tok_state *, int, int, int, int *, PyArena *);
+void _PyPegen_Parser_Free(Parser *);
+mod_ty _PyPegen_run_parser_from_file_pointer(FILE *, int, PyObject *, const char *,
+ const char *, const char *, PyCompilerFlags *, int *, PyArena *);
+void *_PyPegen_run_parser(Parser *);
+mod_ty _PyPegen_run_parser_from_file(const char *, int, PyObject *, PyCompilerFlags *, PyArena *);
+mod_ty _PyPegen_run_parser_from_string(const char *, int, PyObject *, PyCompilerFlags *, PyArena *);
+void *_PyPegen_interactive_exit(Parser *);
+asdl_seq *_PyPegen_singleton_seq(Parser *, void *);
+asdl_seq *_PyPegen_seq_insert_in_front(Parser *, void *, asdl_seq *);
+asdl_seq *_PyPegen_seq_append_to_end(Parser *, asdl_seq *, void *);
+asdl_seq *_PyPegen_seq_flatten(Parser *, asdl_seq *);
+expr_ty _PyPegen_join_names_with_dot(Parser *, expr_ty, expr_ty);
+int _PyPegen_seq_count_dots(asdl_seq *);
+alias_ty _PyPegen_alias_for_star(Parser *);
+asdl_seq *_PyPegen_map_names_to_ids(Parser *, asdl_seq *);
+CmpopExprPair *_PyPegen_cmpop_expr_pair(Parser *, cmpop_ty, expr_ty);
+asdl_int_seq *_PyPegen_get_cmpops(Parser *p, asdl_seq *);
+asdl_seq *_PyPegen_get_exprs(Parser *, asdl_seq *);
+expr_ty _PyPegen_set_expr_context(Parser *, expr_ty, expr_context_ty);
+KeyValuePair *_PyPegen_key_value_pair(Parser *, expr_ty, expr_ty);
+asdl_seq *_PyPegen_get_keys(Parser *, asdl_seq *);
+asdl_seq *_PyPegen_get_values(Parser *, asdl_seq *);
+NameDefaultPair *_PyPegen_name_default_pair(Parser *, arg_ty, expr_ty, Token *);
+SlashWithDefault *_PyPegen_slash_with_default(Parser *, asdl_seq *, asdl_seq *);
+StarEtc *_PyPegen_star_etc(Parser *, arg_ty, asdl_seq *, arg_ty);
+arguments_ty _PyPegen_make_arguments(Parser *, asdl_seq *, SlashWithDefault *,
+ asdl_seq *, asdl_seq *, StarEtc *);
+arguments_ty _PyPegen_empty_arguments(Parser *);
+AugOperator *_PyPegen_augoperator(Parser*, operator_ty type);
+stmt_ty _PyPegen_function_def_decorators(Parser *, asdl_seq *, stmt_ty);
+stmt_ty _PyPegen_class_def_decorators(Parser *, asdl_seq *, stmt_ty);
+KeywordOrStarred *_PyPegen_keyword_or_starred(Parser *, void *, int);
+asdl_seq *_PyPegen_seq_extract_starred_exprs(Parser *, asdl_seq *);
+asdl_seq *_PyPegen_seq_delete_starred_exprs(Parser *, asdl_seq *);
+expr_ty _PyPegen_collect_call_seqs(Parser *, asdl_seq *, asdl_seq *,
+ int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena);
+expr_ty _PyPegen_concatenate_strings(Parser *p, asdl_seq *);
+asdl_seq *_PyPegen_join_sequences(Parser *, asdl_seq *, asdl_seq *);
+int _PyPegen_check_barry_as_flufl(Parser *, Token *);
+mod_ty _PyPegen_make_module(Parser *, asdl_seq *);
+
+// Error reporting helpers
+typedef enum {
+ STAR_TARGETS,
+ DEL_TARGETS,
+ FOR_TARGETS
+} TARGETS_TYPE;
+expr_ty _PyPegen_get_invalid_target(expr_ty e, TARGETS_TYPE targets_type);
+#define RAISE_SYNTAX_ERROR_INVALID_TARGET(type, e) _RAISE_SYNTAX_ERROR_INVALID_TARGET(p, type, e)
+
+Py_LOCAL_INLINE(void *)
+_RAISE_SYNTAX_ERROR_INVALID_TARGET(Parser *p, TARGETS_TYPE type, void *e)
+{
+ expr_ty invalid_target = CHECK_NULL_ALLOWED(_PyPegen_get_invalid_target(e, type));
+ if (invalid_target != NULL) {
+ const char *msg;
+ if (type == STAR_TARGETS || type == FOR_TARGETS) {
+ msg = "cannot assign to %s";
+ }
+ else {
+ msg = "cannot delete %s";
+ }
+ return RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
+ invalid_target,
+ msg,
+ _PyPegen_get_expr_name(invalid_target)
+ );
+ }
+ return RAISE_SYNTAX_ERROR("invalid syntax");
+}
+
+void *_PyPegen_arguments_parsing_error(Parser *, expr_ty);
+void *_PyPegen_nonparen_genexp_in_call(Parser *p, expr_ty args);
+
+
+// Generated function in parse.c - function definition in python.gram
+void *_PyPegen_parse(Parser *);
+
+#endif
diff --git a/contrib/tools/python3/src/Parser/token.c b/contrib/tools/python3/src/Parser/token.c
index a27c0645fa..a489668900 100644
--- a/contrib/tools/python3/src/Parser/token.c
+++ b/contrib/tools/python3/src/Parser/token.c
@@ -1,243 +1,243 @@
-/* Auto-generated by Tools/scripts/generate_token.py */
-
-#include "Python.h"
-#include "token.h"
-
-/* Token names */
-
-const char * const _PyParser_TokenNames[] = {
- "ENDMARKER",
- "NAME",
- "NUMBER",
- "STRING",
- "NEWLINE",
- "INDENT",
- "DEDENT",
- "LPAR",
- "RPAR",
- "LSQB",
- "RSQB",
- "COLON",
- "COMMA",
- "SEMI",
- "PLUS",
- "MINUS",
- "STAR",
- "SLASH",
- "VBAR",
- "AMPER",
- "LESS",
- "GREATER",
- "EQUAL",
- "DOT",
- "PERCENT",
- "LBRACE",
- "RBRACE",
- "EQEQUAL",
- "NOTEQUAL",
- "LESSEQUAL",
- "GREATEREQUAL",
- "TILDE",
- "CIRCUMFLEX",
- "LEFTSHIFT",
- "RIGHTSHIFT",
- "DOUBLESTAR",
- "PLUSEQUAL",
- "MINEQUAL",
- "STAREQUAL",
- "SLASHEQUAL",
- "PERCENTEQUAL",
- "AMPEREQUAL",
- "VBAREQUAL",
- "CIRCUMFLEXEQUAL",
- "LEFTSHIFTEQUAL",
- "RIGHTSHIFTEQUAL",
- "DOUBLESTAREQUAL",
- "DOUBLESLASH",
- "DOUBLESLASHEQUAL",
- "AT",
- "ATEQUAL",
- "RARROW",
- "ELLIPSIS",
- "COLONEQUAL",
- "OP",
- "AWAIT",
- "ASYNC",
- "TYPE_IGNORE",
- "TYPE_COMMENT",
- "<ERRORTOKEN>",
- "<COMMENT>",
- "<NL>",
- "<ENCODING>",
- "<N_TOKENS>",
-};
-
-/* Return the token corresponding to a single character */
-
-int
-PyToken_OneChar(int c1)
-{
- switch (c1) {
- case '%': return PERCENT;
- case '&': return AMPER;
- case '(': return LPAR;
- case ')': return RPAR;
- case '*': return STAR;
- case '+': return PLUS;
- case ',': return COMMA;
- case '-': return MINUS;
- case '.': return DOT;
- case '/': return SLASH;
- case ':': return COLON;
- case ';': return SEMI;
- case '<': return LESS;
- case '=': return EQUAL;
- case '>': return GREATER;
- case '@': return AT;
- case '[': return LSQB;
- case ']': return RSQB;
- case '^': return CIRCUMFLEX;
- case '{': return LBRACE;
- case '|': return VBAR;
- case '}': return RBRACE;
- case '~': return TILDE;
- }
- return OP;
-}
-
-int
-PyToken_TwoChars(int c1, int c2)
-{
- switch (c1) {
- case '!':
- switch (c2) {
- case '=': return NOTEQUAL;
- }
- break;
- case '%':
- switch (c2) {
- case '=': return PERCENTEQUAL;
- }
- break;
- case '&':
- switch (c2) {
- case '=': return AMPEREQUAL;
- }
- break;
- case '*':
- switch (c2) {
- case '*': return DOUBLESTAR;
- case '=': return STAREQUAL;
- }
- break;
- case '+':
- switch (c2) {
- case '=': return PLUSEQUAL;
- }
- break;
- case '-':
- switch (c2) {
- case '=': return MINEQUAL;
- case '>': return RARROW;
- }
- break;
- case '/':
- switch (c2) {
- case '/': return DOUBLESLASH;
- case '=': return SLASHEQUAL;
- }
- break;
- case ':':
- switch (c2) {
- case '=': return COLONEQUAL;
- }
- break;
- case '<':
- switch (c2) {
- case '<': return LEFTSHIFT;
- case '=': return LESSEQUAL;
- case '>': return NOTEQUAL;
- }
- break;
- case '=':
- switch (c2) {
- case '=': return EQEQUAL;
- }
- break;
- case '>':
- switch (c2) {
- case '=': return GREATEREQUAL;
- case '>': return RIGHTSHIFT;
- }
- break;
- case '@':
- switch (c2) {
- case '=': return ATEQUAL;
- }
- break;
- case '^':
- switch (c2) {
- case '=': return CIRCUMFLEXEQUAL;
- }
- break;
- case '|':
- switch (c2) {
- case '=': return VBAREQUAL;
- }
- break;
- }
- return OP;
-}
-
-int
-PyToken_ThreeChars(int c1, int c2, int c3)
-{
- switch (c1) {
- case '*':
- switch (c2) {
- case '*':
- switch (c3) {
- case '=': return DOUBLESTAREQUAL;
- }
- break;
- }
- break;
- case '.':
- switch (c2) {
- case '.':
- switch (c3) {
- case '.': return ELLIPSIS;
- }
- break;
- }
- break;
- case '/':
- switch (c2) {
- case '/':
- switch (c3) {
- case '=': return DOUBLESLASHEQUAL;
- }
- break;
- }
- break;
- case '<':
- switch (c2) {
- case '<':
- switch (c3) {
- case '=': return LEFTSHIFTEQUAL;
- }
- break;
- }
- break;
- case '>':
- switch (c2) {
- case '>':
- switch (c3) {
- case '=': return RIGHTSHIFTEQUAL;
- }
- break;
- }
- break;
- }
- return OP;
-}
+/* Auto-generated by Tools/scripts/generate_token.py */
+
+#include "Python.h"
+#include "token.h"
+
+/* Token names */
+
+const char * const _PyParser_TokenNames[] = {
+ "ENDMARKER",
+ "NAME",
+ "NUMBER",
+ "STRING",
+ "NEWLINE",
+ "INDENT",
+ "DEDENT",
+ "LPAR",
+ "RPAR",
+ "LSQB",
+ "RSQB",
+ "COLON",
+ "COMMA",
+ "SEMI",
+ "PLUS",
+ "MINUS",
+ "STAR",
+ "SLASH",
+ "VBAR",
+ "AMPER",
+ "LESS",
+ "GREATER",
+ "EQUAL",
+ "DOT",
+ "PERCENT",
+ "LBRACE",
+ "RBRACE",
+ "EQEQUAL",
+ "NOTEQUAL",
+ "LESSEQUAL",
+ "GREATEREQUAL",
+ "TILDE",
+ "CIRCUMFLEX",
+ "LEFTSHIFT",
+ "RIGHTSHIFT",
+ "DOUBLESTAR",
+ "PLUSEQUAL",
+ "MINEQUAL",
+ "STAREQUAL",
+ "SLASHEQUAL",
+ "PERCENTEQUAL",
+ "AMPEREQUAL",
+ "VBAREQUAL",
+ "CIRCUMFLEXEQUAL",
+ "LEFTSHIFTEQUAL",
+ "RIGHTSHIFTEQUAL",
+ "DOUBLESTAREQUAL",
+ "DOUBLESLASH",
+ "DOUBLESLASHEQUAL",
+ "AT",
+ "ATEQUAL",
+ "RARROW",
+ "ELLIPSIS",
+ "COLONEQUAL",
+ "OP",
+ "AWAIT",
+ "ASYNC",
+ "TYPE_IGNORE",
+ "TYPE_COMMENT",
+ "<ERRORTOKEN>",
+ "<COMMENT>",
+ "<NL>",
+ "<ENCODING>",
+ "<N_TOKENS>",
+};
+
+/* Return the token corresponding to a single character */
+
+int
+PyToken_OneChar(int c1)
+{
+ switch (c1) {
+ case '%': return PERCENT;
+ case '&': return AMPER;
+ case '(': return LPAR;
+ case ')': return RPAR;
+ case '*': return STAR;
+ case '+': return PLUS;
+ case ',': return COMMA;
+ case '-': return MINUS;
+ case '.': return DOT;
+ case '/': return SLASH;
+ case ':': return COLON;
+ case ';': return SEMI;
+ case '<': return LESS;
+ case '=': return EQUAL;
+ case '>': return GREATER;
+ case '@': return AT;
+ case '[': return LSQB;
+ case ']': return RSQB;
+ case '^': return CIRCUMFLEX;
+ case '{': return LBRACE;
+ case '|': return VBAR;
+ case '}': return RBRACE;
+ case '~': return TILDE;
+ }
+ return OP;
+}
+
+int
+PyToken_TwoChars(int c1, int c2)
+{
+ switch (c1) {
+ case '!':
+ switch (c2) {
+ case '=': return NOTEQUAL;
+ }
+ break;
+ case '%':
+ switch (c2) {
+ case '=': return PERCENTEQUAL;
+ }
+ break;
+ case '&':
+ switch (c2) {
+ case '=': return AMPEREQUAL;
+ }
+ break;
+ case '*':
+ switch (c2) {
+ case '*': return DOUBLESTAR;
+ case '=': return STAREQUAL;
+ }
+ break;
+ case '+':
+ switch (c2) {
+ case '=': return PLUSEQUAL;
+ }
+ break;
+ case '-':
+ switch (c2) {
+ case '=': return MINEQUAL;
+ case '>': return RARROW;
+ }
+ break;
+ case '/':
+ switch (c2) {
+ case '/': return DOUBLESLASH;
+ case '=': return SLASHEQUAL;
+ }
+ break;
+ case ':':
+ switch (c2) {
+ case '=': return COLONEQUAL;
+ }
+ break;
+ case '<':
+ switch (c2) {
+ case '<': return LEFTSHIFT;
+ case '=': return LESSEQUAL;
+ case '>': return NOTEQUAL;
+ }
+ break;
+ case '=':
+ switch (c2) {
+ case '=': return EQEQUAL;
+ }
+ break;
+ case '>':
+ switch (c2) {
+ case '=': return GREATEREQUAL;
+ case '>': return RIGHTSHIFT;
+ }
+ break;
+ case '@':
+ switch (c2) {
+ case '=': return ATEQUAL;
+ }
+ break;
+ case '^':
+ switch (c2) {
+ case '=': return CIRCUMFLEXEQUAL;
+ }
+ break;
+ case '|':
+ switch (c2) {
+ case '=': return VBAREQUAL;
+ }
+ break;
+ }
+ return OP;
+}
+
+int
+PyToken_ThreeChars(int c1, int c2, int c3)
+{
+ switch (c1) {
+ case '*':
+ switch (c2) {
+ case '*':
+ switch (c3) {
+ case '=': return DOUBLESTAREQUAL;
+ }
+ break;
+ }
+ break;
+ case '.':
+ switch (c2) {
+ case '.':
+ switch (c3) {
+ case '.': return ELLIPSIS;
+ }
+ break;
+ }
+ break;
+ case '/':
+ switch (c2) {
+ case '/':
+ switch (c3) {
+ case '=': return DOUBLESLASHEQUAL;
+ }
+ break;
+ }
+ break;
+ case '<':
+ switch (c2) {
+ case '<':
+ switch (c3) {
+ case '=': return LEFTSHIFTEQUAL;
+ }
+ break;
+ }
+ break;
+ case '>':
+ switch (c2) {
+ case '>':
+ switch (c3) {
+ case '=': return RIGHTSHIFTEQUAL;
+ }
+ break;
+ }
+ break;
+ }
+ return OP;
+}
diff --git a/contrib/tools/python3/src/Parser/tokenizer.c b/contrib/tools/python3/src/Parser/tokenizer.c
index 4bda4986f5..41bfdb853c 100644
--- a/contrib/tools/python3/src/Parser/tokenizer.c
+++ b/contrib/tools/python3/src/Parser/tokenizer.c
@@ -1,7 +1,7 @@
/* Tokenizer implementation */
-#define PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
#include "Python.h"
#include <ctype.h>
@@ -42,9 +42,9 @@ static int tok_nextc(struct tok_state *tok);
static void tok_backup(struct tok_state *tok, int c);
-/* Spaces in this constant are treated as "zero or more spaces or tabs" when
- tokenizing. */
-static const char* type_comment_prefix = "# type: ";
+/* Spaces in this constant are treated as "zero or more spaces or tabs" when
+ tokenizing. */
+static const char* type_comment_prefix = "# type: ";
/* Create and initialize a new tok_state structure */
@@ -55,9 +55,9 @@ tok_new(void)
sizeof(struct tok_state));
if (tok == NULL)
return NULL;
- tok->buf = tok->cur = tok->inp = NULL;
- tok->start = NULL;
- tok->end = NULL;
+ tok->buf = tok->cur = tok->inp = NULL;
+ tok->start = NULL;
+ tok->end = NULL;
tok->done = E_OK;
tok->fp = NULL;
tok->input = NULL;
@@ -80,13 +80,13 @@ tok_new(void)
tok->filename = NULL;
tok->decoding_readline = NULL;
tok->decoding_buffer = NULL;
- tok->type_comments = 0;
+ tok->type_comments = 0;
+
+ tok->async_hacks = 0;
+ tok->async_def = 0;
+ tok->async_def_indent = 0;
+ tok->async_def_nl = 0;
- tok->async_hacks = 0;
- tok->async_def = 0;
- tok->async_def_indent = 0;
- tok->async_def_nl = 0;
-
return tok;
}
@@ -109,9 +109,9 @@ error_ret(struct tok_state *tok) /* XXX */
tok->decoding_erred = 1;
if (tok->fp != NULL && tok->buf != NULL) /* see PyTokenizer_Free */
PyMem_FREE(tok->buf);
- tok->buf = tok->cur = tok->inp = NULL;
- tok->start = NULL;
- tok->end = NULL;
+ tok->buf = tok->cur = tok->inp = NULL;
+ tok->start = NULL;
+ tok->end = NULL;
tok->done = E_DECODE;
return NULL; /* as if it were EOF */
}
@@ -548,7 +548,7 @@ decoding_fgets(char *s, int size, struct tok_state *tok)
"Non-UTF-8 code starting with '\\x%.2x' "
"in file %U on line %i, "
"but no encoding declared; "
- "see https://python.org/dev/peps/pep-0263/ for details",
+ "see https://python.org/dev/peps/pep-0263/ for details",
badchar, tok->filename, tok->lineno + 1);
return error_ret(tok);
}
@@ -649,14 +649,14 @@ translate_newlines(const char *s, int exec_input, struct tok_state *tok) {
}
*current = '\0';
final_length = current - buf + 1;
- if (final_length < needed_length && final_length) {
+ if (final_length < needed_length && final_length) {
/* should never fail */
- char* result = PyMem_REALLOC(buf, final_length);
- if (result == NULL) {
- PyMem_FREE(buf);
- }
- buf = result;
- }
+ char* result = PyMem_REALLOC(buf, final_length);
+ if (result == NULL) {
+ PyMem_FREE(buf);
+ }
+ buf = result;
+ }
return buf;
}
@@ -664,11 +664,11 @@ translate_newlines(const char *s, int exec_input, struct tok_state *tok) {
Look for encoding declarations inside STR, and record them
inside TOK. */
-static char *
+static char *
decode_str(const char *input, int single, struct tok_state *tok)
{
PyObject* utf8 = NULL;
- char *str;
+ char *str;
const char *s;
const char *newl[2] = {NULL, NULL};
int lineno = 0;
@@ -726,18 +726,18 @@ struct tok_state *
PyTokenizer_FromString(const char *str, int exec_input)
{
struct tok_state *tok = tok_new();
- char *decoded;
-
+ char *decoded;
+
if (tok == NULL)
return NULL;
- decoded = decode_str(str, exec_input, tok);
- if (decoded == NULL) {
+ decoded = decode_str(str, exec_input, tok);
+ if (decoded == NULL) {
PyTokenizer_Free(tok);
return NULL;
}
- tok->buf = tok->cur = tok->inp = decoded;
- tok->end = decoded;
+ tok->buf = tok->cur = tok->inp = decoded;
+ tok->end = decoded;
return tok;
}
@@ -745,18 +745,18 @@ struct tok_state *
PyTokenizer_FromUTF8(const char *str, int exec_input)
{
struct tok_state *tok = tok_new();
- char *translated;
+ char *translated;
if (tok == NULL)
return NULL;
- tok->input = translated = translate_newlines(str, exec_input, tok);
- if (translated == NULL) {
+ tok->input = translated = translate_newlines(str, exec_input, tok);
+ if (translated == NULL) {
PyTokenizer_Free(tok);
return NULL;
}
tok->decoding_state = STATE_RAW;
tok->read_coding_spec = 1;
tok->enc = NULL;
- tok->str = translated;
+ tok->str = translated;
tok->encoding = (char *)PyMem_MALLOC(6);
if (!tok->encoding) {
PyTokenizer_Free(tok);
@@ -764,8 +764,8 @@ PyTokenizer_FromUTF8(const char *str, int exec_input)
}
strcpy(tok->encoding, "utf-8");
- tok->buf = tok->cur = tok->inp = translated;
- tok->end = translated;
+ tok->buf = tok->cur = tok->inp = translated;
+ tok->end = translated;
return tok;
}
@@ -815,7 +815,7 @@ PyTokenizer_Free(struct tok_state *tok)
if (tok->fp != NULL && tok->buf != NULL)
PyMem_FREE(tok->buf);
if (tok->input)
- PyMem_FREE(tok->input);
+ PyMem_FREE(tok->input);
PyMem_FREE(tok);
}
@@ -890,7 +890,7 @@ tok_nextc(struct tok_state *tok)
size_t start = tok->start - tok->buf;
size_t oldlen = tok->cur - tok->buf;
size_t newlen = oldlen + strlen(newtok);
- Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf;
+ Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf;
char *buf = tok->buf;
buf = (char *)PyMem_REALLOC(buf, newlen+1);
tok->lineno++;
@@ -903,7 +903,7 @@ tok_nextc(struct tok_state *tok)
}
tok->buf = buf;
tok->cur = tok->buf + oldlen;
- tok->multi_line_start = tok->buf + cur_multi_line_start;
+ tok->multi_line_start = tok->buf + cur_multi_line_start;
tok->line_start = tok->cur;
strcpy(tok->buf + oldlen, newtok);
PyMem_FREE(newtok);
@@ -962,7 +962,7 @@ tok_nextc(struct tok_state *tok)
while (!done) {
Py_ssize_t curstart = tok->start == NULL ? -1 :
tok->start - tok->buf;
- Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf;
+ Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf;
Py_ssize_t curvalid = tok->inp - tok->buf;
Py_ssize_t newsize = curvalid + BUFSIZ;
char *newbuf = tok->buf;
@@ -975,7 +975,7 @@ tok_nextc(struct tok_state *tok)
}
tok->buf = newbuf;
tok->cur = tok->buf + cur;
- tok->multi_line_start = tok->buf + cur_multi_line_start;
+ tok->multi_line_start = tok->buf + cur_multi_line_start;
tok->line_start = tok->cur;
tok->inp = tok->buf + curvalid;
tok->end = tok->buf + newsize;
@@ -991,8 +991,8 @@ tok_nextc(struct tok_state *tok)
return EOF;
/* Last line does not end in \n,
fake one */
- if (tok->inp[-1] != '\n')
- strcpy(tok->inp, "\n");
+ if (tok->inp[-1] != '\n')
+ strcpy(tok->inp, "\n");
}
tok->inp = strchr(tok->inp, '\0');
done = tok->inp[-1] == '\n';
@@ -1027,59 +1027,59 @@ static void
tok_backup(struct tok_state *tok, int c)
{
if (c != EOF) {
- if (--tok->cur < tok->buf) {
- Py_FatalError("tokenizer beginning of buffer");
- }
- if (*tok->cur != c) {
+ if (--tok->cur < tok->buf) {
+ Py_FatalError("tokenizer beginning of buffer");
+ }
+ if (*tok->cur != c) {
*tok->cur = c;
- }
+ }
}
}
-static int
-syntaxerror(struct tok_state *tok, const char *format, ...)
+static int
+syntaxerror(struct tok_state *tok, const char *format, ...)
{
- PyObject *errmsg, *errtext, *args;
- va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, format);
-#else
- va_start(vargs);
-#endif
- errmsg = PyUnicode_FromFormatV(format, vargs);
- va_end(vargs);
- if (!errmsg) {
- goto error;
- }
-
- errtext = PyUnicode_DecodeUTF8(tok->line_start, tok->cur - tok->line_start,
- "replace");
- if (!errtext) {
- goto error;
- }
- int offset = (int)PyUnicode_GET_LENGTH(errtext);
- Py_ssize_t line_len = strcspn(tok->line_start, "\n");
- if (line_len != tok->cur - tok->line_start) {
- Py_DECREF(errtext);
- errtext = PyUnicode_DecodeUTF8(tok->line_start, line_len,
- "replace");
- }
- if (!errtext) {
- goto error;
- }
-
- args = Py_BuildValue("(O(OiiN))", errmsg,
- tok->filename, tok->lineno, offset, errtext);
- if (args) {
- PyErr_SetObject(PyExc_SyntaxError, args);
- Py_DECREF(args);
- }
-
-error:
- Py_XDECREF(errmsg);
- tok->done = E_ERROR;
- return ERRORTOKEN;
+ PyObject *errmsg, *errtext, *args;
+ va_list vargs;
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
+ errmsg = PyUnicode_FromFormatV(format, vargs);
+ va_end(vargs);
+ if (!errmsg) {
+ goto error;
+ }
+
+ errtext = PyUnicode_DecodeUTF8(tok->line_start, tok->cur - tok->line_start,
+ "replace");
+ if (!errtext) {
+ goto error;
+ }
+ int offset = (int)PyUnicode_GET_LENGTH(errtext);
+ Py_ssize_t line_len = strcspn(tok->line_start, "\n");
+ if (line_len != tok->cur - tok->line_start) {
+ Py_DECREF(errtext);
+ errtext = PyUnicode_DecodeUTF8(tok->line_start, line_len,
+ "replace");
+ }
+ if (!errtext) {
+ goto error;
+ }
+
+ args = Py_BuildValue("(O(OiiN))", errmsg,
+ tok->filename, tok->lineno, offset, errtext);
+ if (args) {
+ PyErr_SetObject(PyExc_SyntaxError, args);
+ Py_DECREF(args);
+ }
+
+error:
+ Py_XDECREF(errmsg);
+ tok->done = E_ERROR;
+ return ERRORTOKEN;
}
static int
@@ -1100,50 +1100,50 @@ verify_identifier(struct tok_state *tok)
if (tok->decoding_erred)
return 0;
s = PyUnicode_DecodeUTF8(tok->start, tok->cur - tok->start, NULL);
- if (s == NULL) {
+ if (s == NULL) {
if (PyErr_ExceptionMatches(PyExc_UnicodeDecodeError)) {
- tok->done = E_DECODE;
- }
- else {
+ tok->done = E_DECODE;
+ }
+ else {
tok->done = E_ERROR;
}
return 0;
}
- Py_ssize_t invalid = _PyUnicode_ScanIdentifier(s);
- if (invalid < 0) {
- Py_DECREF(s);
- tok->done = E_ERROR;
- return 0;
- }
- assert(PyUnicode_GET_LENGTH(s) > 0);
- if (invalid < PyUnicode_GET_LENGTH(s)) {
- Py_UCS4 ch = PyUnicode_READ_CHAR(s, invalid);
- if (invalid + 1 < PyUnicode_GET_LENGTH(s)) {
- /* Determine the offset in UTF-8 encoded input */
- Py_SETREF(s, PyUnicode_Substring(s, 0, invalid + 1));
- if (s != NULL) {
- Py_SETREF(s, PyUnicode_AsUTF8String(s));
- }
- if (s == NULL) {
- tok->done = E_ERROR;
- return 0;
- }
- tok->cur = (char *)tok->start + PyBytes_GET_SIZE(s);
- }
- Py_DECREF(s);
- // PyUnicode_FromFormatV() does not support %X
- char hex[9];
- (void)PyOS_snprintf(hex, sizeof(hex), "%04X", ch);
- if (Py_UNICODE_ISPRINTABLE(ch)) {
- syntaxerror(tok, "invalid character '%c' (U+%s)", ch, hex);
- }
- else {
- syntaxerror(tok, "invalid non-printable character U+%s", hex);
- }
- return 0;
- }
+ Py_ssize_t invalid = _PyUnicode_ScanIdentifier(s);
+ if (invalid < 0) {
+ Py_DECREF(s);
+ tok->done = E_ERROR;
+ return 0;
+ }
+ assert(PyUnicode_GET_LENGTH(s) > 0);
+ if (invalid < PyUnicode_GET_LENGTH(s)) {
+ Py_UCS4 ch = PyUnicode_READ_CHAR(s, invalid);
+ if (invalid + 1 < PyUnicode_GET_LENGTH(s)) {
+ /* Determine the offset in UTF-8 encoded input */
+ Py_SETREF(s, PyUnicode_Substring(s, 0, invalid + 1));
+ if (s != NULL) {
+ Py_SETREF(s, PyUnicode_AsUTF8String(s));
+ }
+ if (s == NULL) {
+ tok->done = E_ERROR;
+ return 0;
+ }
+ tok->cur = (char *)tok->start + PyBytes_GET_SIZE(s);
+ }
+ Py_DECREF(s);
+ // PyUnicode_FromFormatV() does not support %X
+ char hex[9];
+ (void)PyOS_snprintf(hex, sizeof(hex), "%04X", ch);
+ if (Py_UNICODE_ISPRINTABLE(ch)) {
+ syntaxerror(tok, "invalid character '%c' (U+%s)", ch, hex);
+ }
+ else {
+ syntaxerror(tok, "invalid non-printable character U+%s", hex);
+ }
+ return 0;
+ }
Py_DECREF(s);
- return 1;
+ return 1;
}
static int
@@ -1161,7 +1161,7 @@ tok_decimal_tail(struct tok_state *tok)
c = tok_nextc(tok);
if (!isdigit(c)) {
tok_backup(tok, c);
- syntaxerror(tok, "invalid decimal literal");
+ syntaxerror(tok, "invalid decimal literal");
return 0;
}
}
@@ -1171,7 +1171,7 @@ tok_decimal_tail(struct tok_state *tok)
/* Get next token, after space stripping etc. */
static int
-tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
+tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
{
int c;
int blankline, nonascii;
@@ -1203,9 +1203,9 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
}
}
tok_backup(tok, c);
- if (c == '#' || c == '\n' || c == '\\') {
+ if (c == '#' || c == '\n' || c == '\\') {
/* Lines with only whitespace and/or comments
- and/or a line continuation character
+ and/or a line continuation character
shouldn't affect the indentation and are
not passed to the parser as NEWLINE tokens,
except *totally* empty lines in interactive
@@ -1213,12 +1213,12 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
if (col == 0 && c == '\n' && tok->prompt != NULL) {
blankline = 0; /* Let it through */
}
- else if (tok->prompt != NULL && tok->lineno == 1) {
- /* In interactive mode, if the first line contains
- only spaces and/or a comment, let it through. */
- blankline = 0;
- col = altcol = 0;
- }
+ else if (tok->prompt != NULL && tok->lineno == 1) {
+ /* In interactive mode, if the first line contains
+ only spaces and/or a comment, let it through. */
+ blankline = 0;
+ col = altcol = 0;
+ }
else {
blankline = 1; /* Ignore completely */
}
@@ -1279,31 +1279,31 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
}
}
- /* Peek ahead at the next character */
- c = tok_nextc(tok);
- tok_backup(tok, c);
- /* Check if we are closing an async function */
- if (tok->async_def
- && !blankline
- /* Due to some implementation artifacts of type comments,
- * a TYPE_COMMENT at the start of a function won't set an
- * indentation level and it will produce a NEWLINE after it.
- * To avoid spuriously ending an async function due to this,
- * wait until we have some non-newline char in front of us. */
- && c != '\n'
- && tok->level == 0
- /* There was a NEWLINE after ASYNC DEF,
- so we're past the signature. */
- && tok->async_def_nl
- /* Current indentation level is less than where
- the async function was defined */
- && tok->async_def_indent >= tok->indent)
- {
- tok->async_def = 0;
- tok->async_def_indent = 0;
- tok->async_def_nl = 0;
- }
-
+ /* Peek ahead at the next character */
+ c = tok_nextc(tok);
+ tok_backup(tok, c);
+ /* Check if we are closing an async function */
+ if (tok->async_def
+ && !blankline
+ /* Due to some implementation artifacts of type comments,
+ * a TYPE_COMMENT at the start of a function won't set an
+ * indentation level and it will produce a NEWLINE after it.
+ * To avoid spuriously ending an async function due to this,
+ * wait until we have some non-newline char in front of us. */
+ && c != '\n'
+ && tok->level == 0
+ /* There was a NEWLINE after ASYNC DEF,
+ so we're past the signature. */
+ && tok->async_def_nl
+ /* Current indentation level is less than where
+ the async function was defined */
+ && tok->async_def_indent >= tok->indent)
+ {
+ tok->async_def = 0;
+ tok->async_def_indent = 0;
+ tok->async_def_nl = 0;
+ }
+
again:
tok->start = NULL;
/* Skip spaces */
@@ -1314,63 +1314,63 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
/* Set start of current token */
tok->start = tok->cur - 1;
- /* Skip comment, unless it's a type comment */
+ /* Skip comment, unless it's a type comment */
if (c == '#') {
- const char *prefix, *p, *type_start;
-
+ const char *prefix, *p, *type_start;
+
while (c != EOF && c != '\n') {
c = tok_nextc(tok);
}
-
- if (tok->type_comments) {
- p = tok->start;
- prefix = type_comment_prefix;
- while (*prefix && p < tok->cur) {
- if (*prefix == ' ') {
- while (*p == ' ' || *p == '\t') {
- p++;
- }
- } else if (*prefix == *p) {
- p++;
- } else {
- break;
- }
-
- prefix++;
- }
-
- /* This is a type comment if we matched all of type_comment_prefix. */
- if (!*prefix) {
- int is_type_ignore = 1;
- const char *ignore_end = p + 6;
- tok_backup(tok, c); /* don't eat the newline or EOF */
-
- type_start = p;
-
- /* A TYPE_IGNORE is "type: ignore" followed by the end of the token
- * or anything ASCII and non-alphanumeric. */
- is_type_ignore = (
- tok->cur >= ignore_end && memcmp(p, "ignore", 6) == 0
- && !(tok->cur > ignore_end
- && ((unsigned char)ignore_end[0] >= 128 || Py_ISALNUM(ignore_end[0]))));
-
- if (is_type_ignore) {
- *p_start = ignore_end;
- *p_end = tok->cur;
-
- /* If this type ignore is the only thing on the line, consume the newline also. */
- if (blankline) {
- tok_nextc(tok);
- tok->atbol = 1;
- }
- return TYPE_IGNORE;
- } else {
- *p_start = type_start; /* after type_comment_prefix */
- *p_end = tok->cur;
- return TYPE_COMMENT;
- }
- }
- }
+
+ if (tok->type_comments) {
+ p = tok->start;
+ prefix = type_comment_prefix;
+ while (*prefix && p < tok->cur) {
+ if (*prefix == ' ') {
+ while (*p == ' ' || *p == '\t') {
+ p++;
+ }
+ } else if (*prefix == *p) {
+ p++;
+ } else {
+ break;
+ }
+
+ prefix++;
+ }
+
+ /* This is a type comment if we matched all of type_comment_prefix. */
+ if (!*prefix) {
+ int is_type_ignore = 1;
+ const char *ignore_end = p + 6;
+ tok_backup(tok, c); /* don't eat the newline or EOF */
+
+ type_start = p;
+
+ /* A TYPE_IGNORE is "type: ignore" followed by the end of the token
+ * or anything ASCII and non-alphanumeric. */
+ is_type_ignore = (
+ tok->cur >= ignore_end && memcmp(p, "ignore", 6) == 0
+ && !(tok->cur > ignore_end
+ && ((unsigned char)ignore_end[0] >= 128 || Py_ISALNUM(ignore_end[0]))));
+
+ if (is_type_ignore) {
+ *p_start = ignore_end;
+ *p_end = tok->cur;
+
+ /* If this type ignore is the only thing on the line, consume the newline also. */
+ if (blankline) {
+ tok_nextc(tok);
+ tok->atbol = 1;
+ }
+ return TYPE_IGNORE;
+ } else {
+ *p_start = type_start; /* after type_comment_prefix */
+ *p_end = tok->cur;
+ return TYPE_COMMENT;
+ }
+ }
+ }
}
/* Check for EOF and errors now */
@@ -1417,55 +1417,55 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
if (nonascii && !verify_identifier(tok)) {
return ERRORTOKEN;
}
-
+
*p_start = tok->start;
*p_end = tok->cur;
- /* async/await parsing block. */
- if (tok->cur - tok->start == 5 && tok->start[0] == 'a') {
- /* May be an 'async' or 'await' token. For Python 3.7 or
- later we recognize them unconditionally. For Python
- 3.5 or 3.6 we recognize 'async' in front of 'def', and
- either one inside of 'async def'. (Technically we
- shouldn't recognize these at all for 3.4 or earlier,
- but there's no *valid* Python 3.4 code that would be
- rejected, and async functions will be rejected in a
- later phase.) */
- if (!tok->async_hacks || tok->async_def) {
- /* Always recognize the keywords. */
- if (memcmp(tok->start, "async", 5) == 0) {
- return ASYNC;
- }
- if (memcmp(tok->start, "await", 5) == 0) {
- return AWAIT;
- }
- }
- else if (memcmp(tok->start, "async", 5) == 0) {
- /* The current token is 'async'.
- Look ahead one token to see if that is 'def'. */
-
- struct tok_state ahead_tok;
- const char *ahead_tok_start = NULL;
- const char *ahead_tok_end = NULL;
- int ahead_tok_kind;
-
- memcpy(&ahead_tok, tok, sizeof(ahead_tok));
- ahead_tok_kind = tok_get(&ahead_tok, &ahead_tok_start,
- &ahead_tok_end);
-
- if (ahead_tok_kind == NAME
- && ahead_tok.cur - ahead_tok.start == 3
- && memcmp(ahead_tok.start, "def", 3) == 0)
- {
- /* The next token is going to be 'def', so instead of
- returning a plain NAME token, return ASYNC. */
- tok->async_def_indent = tok->indent;
- tok->async_def = 1;
- return ASYNC;
- }
- }
- }
-
+ /* async/await parsing block. */
+ if (tok->cur - tok->start == 5 && tok->start[0] == 'a') {
+ /* May be an 'async' or 'await' token. For Python 3.7 or
+ later we recognize them unconditionally. For Python
+ 3.5 or 3.6 we recognize 'async' in front of 'def', and
+ either one inside of 'async def'. (Technically we
+ shouldn't recognize these at all for 3.4 or earlier,
+ but there's no *valid* Python 3.4 code that would be
+ rejected, and async functions will be rejected in a
+ later phase.) */
+ if (!tok->async_hacks || tok->async_def) {
+ /* Always recognize the keywords. */
+ if (memcmp(tok->start, "async", 5) == 0) {
+ return ASYNC;
+ }
+ if (memcmp(tok->start, "await", 5) == 0) {
+ return AWAIT;
+ }
+ }
+ else if (memcmp(tok->start, "async", 5) == 0) {
+ /* The current token is 'async'.
+ Look ahead one token to see if that is 'def'. */
+
+ struct tok_state ahead_tok;
+ const char *ahead_tok_start = NULL;
+ const char *ahead_tok_end = NULL;
+ int ahead_tok_kind;
+
+ memcpy(&ahead_tok, tok, sizeof(ahead_tok));
+ ahead_tok_kind = tok_get(&ahead_tok, &ahead_tok_start,
+ &ahead_tok_end);
+
+ if (ahead_tok_kind == NAME
+ && ahead_tok.cur - ahead_tok.start == 3
+ && memcmp(ahead_tok.start, "def", 3) == 0)
+ {
+ /* The next token is going to be 'def', so instead of
+ returning a plain NAME token, return ASYNC. */
+ tok->async_def_indent = tok->indent;
+ tok->async_def = 1;
+ return ASYNC;
+ }
+ }
+ }
+
return NAME;
}
@@ -1478,11 +1478,11 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
*p_start = tok->start;
*p_end = tok->cur - 1; /* Leave '\n' out of the string */
tok->cont_line = 0;
- if (tok->async_def) {
- /* We're somewhere inside an 'async def' function, and
- we've encountered a NEWLINE after its signature. */
- tok->async_def_nl = 1;
- }
+ if (tok->async_def) {
+ /* We're somewhere inside an 'async def' function, and
+ we've encountered a NEWLINE after its signature. */
+ tok->async_def_nl = 1;
+ }
return NEWLINE;
}
@@ -1525,7 +1525,7 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
}
if (!isxdigit(c)) {
tok_backup(tok, c);
- return syntaxerror(tok, "invalid hexadecimal literal");
+ return syntaxerror(tok, "invalid hexadecimal literal");
}
do {
c = tok_nextc(tok);
@@ -1541,22 +1541,22 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
}
if (c < '0' || c >= '8') {
tok_backup(tok, c);
- if (isdigit(c)) {
- return syntaxerror(tok,
- "invalid digit '%c' in octal literal", c);
- }
- else {
- return syntaxerror(tok, "invalid octal literal");
- }
+ if (isdigit(c)) {
+ return syntaxerror(tok,
+ "invalid digit '%c' in octal literal", c);
+ }
+ else {
+ return syntaxerror(tok, "invalid octal literal");
+ }
}
do {
c = tok_nextc(tok);
} while ('0' <= c && c < '8');
} while (c == '_');
- if (isdigit(c)) {
- return syntaxerror(tok,
- "invalid digit '%c' in octal literal", c);
- }
+ if (isdigit(c)) {
+ return syntaxerror(tok,
+ "invalid digit '%c' in octal literal", c);
+ }
}
else if (c == 'b' || c == 'B') {
/* Binary */
@@ -1567,22 +1567,22 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
}
if (c != '0' && c != '1') {
tok_backup(tok, c);
- if (isdigit(c)) {
- return syntaxerror(tok,
- "invalid digit '%c' in binary literal", c);
- }
- else {
- return syntaxerror(tok, "invalid binary literal");
- }
+ if (isdigit(c)) {
+ return syntaxerror(tok,
+ "invalid digit '%c' in binary literal", c);
+ }
+ else {
+ return syntaxerror(tok, "invalid binary literal");
+ }
}
do {
c = tok_nextc(tok);
} while (c == '0' || c == '1');
} while (c == '_');
- if (isdigit(c)) {
- return syntaxerror(tok,
- "invalid digit '%c' in binary literal", c);
- }
+ if (isdigit(c)) {
+ return syntaxerror(tok,
+ "invalid digit '%c' in binary literal", c);
+ }
}
else {
int nonzero = 0;
@@ -1593,7 +1593,7 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
c = tok_nextc(tok);
if (!isdigit(c)) {
tok_backup(tok, c);
- return syntaxerror(tok, "invalid decimal literal");
+ return syntaxerror(tok, "invalid decimal literal");
}
}
if (c != '0') {
@@ -1621,10 +1621,10 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
else if (nonzero) {
/* Old-style octal: now disallowed. */
tok_backup(tok, c);
- return syntaxerror(tok,
- "leading zeros in decimal integer "
- "literals are not permitted; "
- "use an 0o prefix for octal integers");
+ return syntaxerror(tok,
+ "leading zeros in decimal integer "
+ "literals are not permitted; "
+ "use an 0o prefix for octal integers");
}
}
}
@@ -1657,7 +1657,7 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
c = tok_nextc(tok);
if (!isdigit(c)) {
tok_backup(tok, c);
- return syntaxerror(tok, "invalid decimal literal");
+ return syntaxerror(tok, "invalid decimal literal");
}
} else if (!isdigit(c)) {
tok_backup(tok, c);
@@ -1691,13 +1691,13 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
int quote_size = 1; /* 1 or 3 */
int end_quote_size = 0;
- /* Nodes of type STRING, especially multi line strings
- must be handled differently in order to get both
- the starting line number and the column offset right.
- (cf. issue 16806) */
- tok->first_lineno = tok->lineno;
- tok->multi_line_start = tok->line_start;
-
+ /* Nodes of type STRING, especially multi line strings
+ must be handled differently in order to get both
+ the starting line number and the column offset right.
+ (cf. issue 16806) */
+ tok->first_lineno = tok->lineno;
+ tok->multi_line_start = tok->line_start;
+
/* Find the quote size and start of string */
c = tok_nextc(tok);
if (c == quote) {
@@ -1754,14 +1754,14 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
tok->done = E_LINECONT;
return ERRORTOKEN;
}
- c = tok_nextc(tok);
- if (c == EOF) {
- tok->done = E_EOF;
- tok->cur = tok->inp;
- return ERRORTOKEN;
- } else {
- tok_backup(tok, c);
- }
+ c = tok_nextc(tok);
+ if (c == EOF) {
+ tok->done = E_EOF;
+ tok->cur = tok->inp;
+ return ERRORTOKEN;
+ } else {
+ tok_backup(tok, c);
+ }
tok->cont_line = 1;
goto again; /* Read next line */
}
@@ -1791,38 +1791,38 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
case '(':
case '[':
case '{':
- if (tok->level >= MAXLEVEL) {
- return syntaxerror(tok, "too many nested parentheses");
- }
- tok->parenstack[tok->level] = c;
- tok->parenlinenostack[tok->level] = tok->lineno;
+ if (tok->level >= MAXLEVEL) {
+ return syntaxerror(tok, "too many nested parentheses");
+ }
+ tok->parenstack[tok->level] = c;
+ tok->parenlinenostack[tok->level] = tok->lineno;
tok->level++;
break;
case ')':
case ']':
case '}':
- if (!tok->level) {
- return syntaxerror(tok, "unmatched '%c'", c);
- }
+ if (!tok->level) {
+ return syntaxerror(tok, "unmatched '%c'", c);
+ }
tok->level--;
- int opening = tok->parenstack[tok->level];
- if (!((opening == '(' && c == ')') ||
- (opening == '[' && c == ']') ||
- (opening == '{' && c == '}')))
- {
- if (tok->parenlinenostack[tok->level] != tok->lineno) {
- return syntaxerror(tok,
- "closing parenthesis '%c' does not match "
- "opening parenthesis '%c' on line %d",
- c, opening, tok->parenlinenostack[tok->level]);
- }
- else {
- return syntaxerror(tok,
- "closing parenthesis '%c' does not match "
- "opening parenthesis '%c'",
- c, opening);
- }
- }
+ int opening = tok->parenstack[tok->level];
+ if (!((opening == '(' && c == ')') ||
+ (opening == '[' && c == ']') ||
+ (opening == '{' && c == '}')))
+ {
+ if (tok->parenlinenostack[tok->level] != tok->lineno) {
+ return syntaxerror(tok,
+ "closing parenthesis '%c' does not match "
+ "opening parenthesis '%c' on line %d",
+ c, opening, tok->parenlinenostack[tok->level]);
+ }
+ else {
+ return syntaxerror(tok,
+ "closing parenthesis '%c' does not match "
+ "opening parenthesis '%c'",
+ c, opening);
+ }
+ }
break;
}
@@ -1833,7 +1833,7 @@ tok_get(struct tok_state *tok, const char **p_start, const char **p_end)
}
int
-PyTokenizer_Get(struct tok_state *tok, const char **p_start, const char **p_end)
+PyTokenizer_Get(struct tok_state *tok, const char **p_start, const char **p_end)
{
int result = tok_get(tok, p_start, p_end);
if (tok->decoding_erred) {
@@ -1858,9 +1858,9 @@ PyTokenizer_FindEncodingFilename(int fd, PyObject *filename)
{
struct tok_state *tok;
FILE *fp;
- const char *p_start = NULL;
- const char *p_end = NULL;
- char *encoding = NULL;
+ const char *p_start = NULL;
+ const char *p_end = NULL;
+ char *encoding = NULL;
fd = _Py_dup(fd);
if (fd < 0) {
@@ -1895,7 +1895,7 @@ PyTokenizer_FindEncodingFilename(int fd, PyObject *filename)
if (tok->encoding) {
encoding = (char *)PyMem_MALLOC(strlen(tok->encoding) + 1);
if (encoding)
- strcpy(encoding, tok->encoding);
+ strcpy(encoding, tok->encoding);
}
PyTokenizer_Free(tok);
return encoding;
diff --git a/contrib/tools/python3/src/Parser/tokenizer.h b/contrib/tools/python3/src/Parser/tokenizer.h
index a55c7cf93d..5660ea38e9 100644
--- a/contrib/tools/python3/src/Parser/tokenizer.h
+++ b/contrib/tools/python3/src/Parser/tokenizer.h
@@ -11,7 +11,7 @@ extern "C" {
#include "token.h" /* For token types */
#define MAXINDENT 100 /* Max indentation level */
-#define MAXLEVEL 200 /* Max parentheses level */
+#define MAXLEVEL 200 /* Max parentheses level */
enum decoding_state {
STATE_INIT,
@@ -26,8 +26,8 @@ struct tok_state {
char *buf; /* Input buffer, or NULL; malloc'ed if fp != NULL */
char *cur; /* Next character in buffer */
char *inp; /* End of data in buffer */
- const char *end; /* End of input buffer if buf != NULL */
- const char *start; /* Start of current token if not NULL */
+ const char *end; /* End of input buffer if buf != NULL */
+ const char *start; /* Start of current token if not NULL */
int done; /* E_OK normally, E_EOF at EOF, otherwise error code */
/* NB If done != E_OK, cur must be == inp!!! */
FILE *fp; /* Rest of input; NULL if tokenizing a string */
@@ -38,13 +38,13 @@ struct tok_state {
int pendin; /* Pending indents (if > 0) or dedents (if < 0) */
const char *prompt, *nextprompt; /* For interactive prompting */
int lineno; /* Current line number */
- int first_lineno; /* First line of a single line or multi line string
- expression (cf. issue 16806) */
+ int first_lineno; /* First line of a single line or multi line string
+ expression (cf. issue 16806) */
int level; /* () [] {} Parentheses nesting level */
/* Used to allow free continuations inside them */
- char parenstack[MAXLEVEL];
- int parenlinenostack[MAXLEVEL];
- PyObject *filename;
+ char parenstack[MAXLEVEL];
+ int parenlinenostack[MAXLEVEL];
+ PyObject *filename;
/* Stuff for checking on different tab sizes */
int altindstack[MAXINDENT]; /* Stack of alternate indents */
/* Stuff for PEP 0263 */
@@ -54,23 +54,23 @@ struct tok_state {
char *encoding; /* Source encoding. */
int cont_line; /* whether we are in a continuation line. */
const char* line_start; /* pointer to start of current line */
- const char* multi_line_start; /* pointer to start of first line of
- a single line or multi line string
- expression (cf. issue 16806) */
+ const char* multi_line_start; /* pointer to start of first line of
+ a single line or multi line string
+ expression (cf. issue 16806) */
PyObject *decoding_readline; /* open(...).readline */
PyObject *decoding_buffer;
const char* enc; /* Encoding for the current str. */
- char* str;
- char* input; /* Tokenizer's newline translated copy of the string. */
-
- int type_comments; /* Whether to look for type comments */
-
- /* async/await related fields (still needed depending on feature_version) */
- int async_hacks; /* =1 if async/await aren't always keywords */
- int async_def; /* =1 if tokens are inside an 'async def' body. */
- int async_def_indent; /* Indentation level of the outermost 'async def'. */
- int async_def_nl; /* =1 if the outermost 'async def' had at least one
- NEWLINE token after it. */
+ char* str;
+ char* input; /* Tokenizer's newline translated copy of the string. */
+
+ int type_comments; /* Whether to look for type comments */
+
+ /* async/await related fields (still needed depending on feature_version) */
+ int async_hacks; /* =1 if async/await aren't always keywords */
+ int async_def; /* =1 if tokens are inside an 'async def' body. */
+ int async_def_indent; /* Indentation level of the outermost 'async def'. */
+ int async_def_nl; /* =1 if the outermost 'async def' had at least one
+ NEWLINE token after it. */
};
extern struct tok_state *PyTokenizer_FromString(const char *, int);
@@ -78,10 +78,10 @@ extern struct tok_state *PyTokenizer_FromUTF8(const char *, int);
extern struct tok_state *PyTokenizer_FromFile(FILE *, const char*,
const char *, const char *);
extern void PyTokenizer_Free(struct tok_state *);
-extern int PyTokenizer_Get(struct tok_state *, const char **, const char **);
+extern int PyTokenizer_Get(struct tok_state *, const char **, const char **);
+
+#define tok_dump _Py_tok_dump
-#define tok_dump _Py_tok_dump
-
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Programs/_freeze_importlib.c b/contrib/tools/python3/src/Programs/_freeze_importlib.c
index 776550eee4..2e4ccbb154 100644
--- a/contrib/tools/python3/src/Programs/_freeze_importlib.c
+++ b/contrib/tools/python3/src/Programs/_freeze_importlib.c
@@ -27,40 +27,40 @@ static const struct _frozen _PyImport_FrozenModules[] = {
const struct _frozen *PyImport_FrozenModules;
#endif
-static const char header[] =
- "/* Auto-generated by Programs/_freeze_importlib.c */";
+static const char header[] =
+ "/* Auto-generated by Programs/_freeze_importlib.c */";
int
main(int argc, char *argv[])
{
- const char *name, *inpath, *outpath;
- char buf[100];
+ const char *name, *inpath, *outpath;
+ char buf[100];
FILE *infile = NULL, *outfile = NULL;
- struct _Py_stat_struct stat;
- size_t text_size, data_size, i, n;
+ struct _Py_stat_struct stat;
+ size_t text_size, data_size, i, n;
char *text = NULL;
unsigned char *data;
PyObject *code = NULL, *marshalled = NULL;
PyImport_FrozenModules = _PyImport_FrozenModules;
- if (argc != 4) {
- fprintf(stderr, "need to specify the name, input and output paths\n");
+ if (argc != 4) {
+ fprintf(stderr, "need to specify the name, input and output paths\n");
return 2;
}
- name = argv[1];
- inpath = argv[2];
- outpath = argv[3];
+ name = argv[1];
+ inpath = argv[2];
+ outpath = argv[3];
infile = fopen(inpath, "rb");
if (infile == NULL) {
fprintf(stderr, "cannot open '%s' for reading\n", inpath);
goto error;
}
- if (_Py_fstat_noraise(fileno(infile), &stat)) {
+ if (_Py_fstat_noraise(fileno(infile), &stat)) {
fprintf(stderr, "cannot fstat '%s'\n", inpath);
goto error;
}
- text_size = (size_t)stat.st_size;
+ text_size = (size_t)stat.st_size;
text = (char *) malloc(text_size + 1);
if (text == NULL) {
fprintf(stderr, "could not allocate %ld bytes\n", (long) text_size);
@@ -76,31 +76,31 @@ main(int argc, char *argv[])
}
text[text_size] = '\0';
- PyConfig config;
- PyConfig_InitIsolatedConfig(&config);
+ PyConfig config;
+ PyConfig_InitIsolatedConfig(&config);
- config.site_import = 0;
+ config.site_import = 0;
- PyStatus status;
- status = PyConfig_SetString(&config, &config.program_name,
- L"./_freeze_importlib");
- if (PyStatus_Exception(status)) {
- PyConfig_Clear(&config);
- Py_ExitStatusException(status);
+ PyStatus status;
+ status = PyConfig_SetString(&config, &config.program_name,
+ L"./_freeze_importlib");
+ if (PyStatus_Exception(status)) {
+ PyConfig_Clear(&config);
+ Py_ExitStatusException(status);
}
- /* Don't install importlib, since it could execute outdated bytecode. */
- config._install_importlib = 0;
- config._init_main = 0;
+ /* Don't install importlib, since it could execute outdated bytecode. */
+ config._install_importlib = 0;
+ config._init_main = 0;
- status = Py_InitializeFromConfig(&config);
- PyConfig_Clear(&config);
- if (PyStatus_Exception(status)) {
- Py_ExitStatusException(status);
+ status = Py_InitializeFromConfig(&config);
+ PyConfig_Clear(&config);
+ if (PyStatus_Exception(status)) {
+ Py_ExitStatusException(status);
}
- sprintf(buf, "<frozen %s>", name);
- code = Py_CompileStringExFlags(text, buf, Py_file_input, NULL, 0);
+ sprintf(buf, "<frozen %s>", name);
+ code = Py_CompileStringExFlags(text, buf, Py_file_input, NULL, 0);
if (code == NULL)
goto error;
free(text);
@@ -123,18 +123,18 @@ main(int argc, char *argv[])
goto error;
}
fprintf(outfile, "%s\n", header);
- for (i = n = 0; name[i] != '\0'; i++) {
- if (name[i] != '.') {
- buf[n++] = name[i];
- }
- }
- buf[n] = '\0';
- fprintf(outfile, "const unsigned char _Py_M__%s[] = {\n", buf);
+ for (i = n = 0; name[i] != '\0'; i++) {
+ if (name[i] != '.') {
+ buf[n++] = name[i];
+ }
+ }
+ buf[n] = '\0';
+ fprintf(outfile, "const unsigned char _Py_M__%s[] = {\n", buf);
for (n = 0; n < data_size; n += 16) {
size_t i, end = Py_MIN(n + 16, data_size);
fprintf(outfile, " ");
for (i = n; i < end; i++) {
- fprintf(outfile, "%u,", (unsigned int) data[i]);
+ fprintf(outfile, "%u,", (unsigned int) data[i]);
}
fprintf(outfile, "\n");
}
diff --git a/contrib/tools/python3/src/Programs/python.c b/contrib/tools/python3/src/Programs/python.c
index 207d44819d..84148f7767 100644
--- a/contrib/tools/python3/src/Programs/python.c
+++ b/contrib/tools/python3/src/Programs/python.c
@@ -12,6 +12,6 @@ wmain(int argc, wchar_t **argv)
int
main(int argc, char **argv)
{
- return Py_BytesMain(argc, argv);
+ return Py_BytesMain(argc, argv);
}
#endif
diff --git a/contrib/tools/python3/src/Python/Python-ast.c b/contrib/tools/python3/src/Python/Python-ast.c
index 49c3805522..8b1c594a87 100644
--- a/contrib/tools/python3/src/Python/Python-ast.c
+++ b/contrib/tools/python3/src/Python/Python-ast.c
@@ -4,829 +4,829 @@
#include "Python.h"
#include "Python-ast.h"
-#include "structmember.h" // PyMemberDef
-
-typedef struct {
- int initialized;
- PyObject *AST_type;
- PyObject *Add_singleton;
- PyObject *Add_type;
- PyObject *And_singleton;
- PyObject *And_type;
- PyObject *AnnAssign_type;
- PyObject *Assert_type;
- PyObject *Assign_type;
- PyObject *AsyncFor_type;
- PyObject *AsyncFunctionDef_type;
- PyObject *AsyncWith_type;
- PyObject *Attribute_type;
- PyObject *AugAssign_type;
- PyObject *Await_type;
- PyObject *BinOp_type;
- PyObject *BitAnd_singleton;
- PyObject *BitAnd_type;
- PyObject *BitOr_singleton;
- PyObject *BitOr_type;
- PyObject *BitXor_singleton;
- PyObject *BitXor_type;
- PyObject *BoolOp_type;
- PyObject *Break_type;
- PyObject *Call_type;
- PyObject *ClassDef_type;
- PyObject *Compare_type;
- PyObject *Constant_type;
- PyObject *Continue_type;
- PyObject *Del_singleton;
- PyObject *Del_type;
- PyObject *Delete_type;
- PyObject *DictComp_type;
- PyObject *Dict_type;
- PyObject *Div_singleton;
- PyObject *Div_type;
- PyObject *Eq_singleton;
- PyObject *Eq_type;
- PyObject *ExceptHandler_type;
- PyObject *Expr_type;
- PyObject *Expression_type;
- PyObject *FloorDiv_singleton;
- PyObject *FloorDiv_type;
- PyObject *For_type;
- PyObject *FormattedValue_type;
- PyObject *FunctionDef_type;
- PyObject *FunctionType_type;
- PyObject *GeneratorExp_type;
- PyObject *Global_type;
- PyObject *GtE_singleton;
- PyObject *GtE_type;
- PyObject *Gt_singleton;
- PyObject *Gt_type;
- PyObject *IfExp_type;
- PyObject *If_type;
- PyObject *ImportFrom_type;
- PyObject *Import_type;
- PyObject *In_singleton;
- PyObject *In_type;
- PyObject *Interactive_type;
- PyObject *Invert_singleton;
- PyObject *Invert_type;
- PyObject *IsNot_singleton;
- PyObject *IsNot_type;
- PyObject *Is_singleton;
- PyObject *Is_type;
- PyObject *JoinedStr_type;
- PyObject *LShift_singleton;
- PyObject *LShift_type;
- PyObject *Lambda_type;
- PyObject *ListComp_type;
- PyObject *List_type;
- PyObject *Load_singleton;
- PyObject *Load_type;
- PyObject *LtE_singleton;
- PyObject *LtE_type;
- PyObject *Lt_singleton;
- PyObject *Lt_type;
- PyObject *MatMult_singleton;
- PyObject *MatMult_type;
- PyObject *Mod_singleton;
- PyObject *Mod_type;
- PyObject *Module_type;
- PyObject *Mult_singleton;
- PyObject *Mult_type;
- PyObject *Name_type;
- PyObject *NamedExpr_type;
- PyObject *Nonlocal_type;
- PyObject *NotEq_singleton;
- PyObject *NotEq_type;
- PyObject *NotIn_singleton;
- PyObject *NotIn_type;
- PyObject *Not_singleton;
- PyObject *Not_type;
- PyObject *Or_singleton;
- PyObject *Or_type;
- PyObject *Pass_type;
- PyObject *Pow_singleton;
- PyObject *Pow_type;
- PyObject *RShift_singleton;
- PyObject *RShift_type;
- PyObject *Raise_type;
- PyObject *Return_type;
- PyObject *SetComp_type;
- PyObject *Set_type;
- PyObject *Slice_type;
- PyObject *Starred_type;
- PyObject *Store_singleton;
- PyObject *Store_type;
- PyObject *Sub_singleton;
- PyObject *Sub_type;
- PyObject *Subscript_type;
- PyObject *Try_type;
- PyObject *Tuple_type;
- PyObject *TypeIgnore_type;
- PyObject *UAdd_singleton;
- PyObject *UAdd_type;
- PyObject *USub_singleton;
- PyObject *USub_type;
- PyObject *UnaryOp_type;
- PyObject *While_type;
- PyObject *With_type;
- PyObject *YieldFrom_type;
- PyObject *Yield_type;
- PyObject *__dict__;
- PyObject *__doc__;
- PyObject *__module__;
- PyObject *_attributes;
- PyObject *_fields;
- PyObject *alias_type;
- PyObject *annotation;
- PyObject *arg;
- PyObject *arg_type;
- PyObject *args;
- PyObject *argtypes;
- PyObject *arguments_type;
- PyObject *asname;
- PyObject *ast;
- PyObject *attr;
- PyObject *bases;
- PyObject *body;
- PyObject *boolop_type;
- PyObject *cause;
- PyObject *cmpop_type;
- PyObject *col_offset;
- PyObject *comparators;
- PyObject *comprehension_type;
- PyObject *context_expr;
- PyObject *conversion;
- PyObject *ctx;
- PyObject *decorator_list;
- PyObject *defaults;
- PyObject *elt;
- PyObject *elts;
- PyObject *end_col_offset;
- PyObject *end_lineno;
- PyObject *exc;
- PyObject *excepthandler_type;
- PyObject *expr_context_type;
- PyObject *expr_type;
- PyObject *finalbody;
- PyObject *format_spec;
- PyObject *func;
- PyObject *generators;
- PyObject *handlers;
- PyObject *id;
- PyObject *ifs;
- PyObject *is_async;
- PyObject *items;
- PyObject *iter;
- PyObject *key;
- PyObject *keys;
- PyObject *keyword_type;
- PyObject *keywords;
- PyObject *kind;
- PyObject *kw_defaults;
- PyObject *kwarg;
- PyObject *kwonlyargs;
- PyObject *left;
- PyObject *level;
- PyObject *lineno;
- PyObject *lower;
- PyObject *mod_type;
- PyObject *module;
- PyObject *msg;
- PyObject *name;
- PyObject *names;
- PyObject *op;
- PyObject *operand;
- PyObject *operator_type;
- PyObject *ops;
- PyObject *optional_vars;
- PyObject *orelse;
- PyObject *posonlyargs;
- PyObject *returns;
- PyObject *right;
- PyObject *simple;
- PyObject *slice;
- PyObject *step;
- PyObject *stmt_type;
- PyObject *tag;
- PyObject *target;
- PyObject *targets;
- PyObject *test;
- PyObject *type;
- PyObject *type_comment;
- PyObject *type_ignore_type;
- PyObject *type_ignores;
- PyObject *unaryop_type;
- PyObject *upper;
- PyObject *value;
- PyObject *values;
- PyObject *vararg;
- PyObject *withitem_type;
-} astmodulestate;
-
-
-// Forward declaration
-static int init_types(astmodulestate *state);
-
-// bpo-41194, bpo-41261, bpo-41631: The _ast module uses a global state.
-static astmodulestate global_ast_state = {0};
-
-static astmodulestate*
-get_global_ast_state(void)
-{
- astmodulestate* state = &global_ast_state;
- if (!init_types(state)) {
- return NULL;
- }
- return state;
-}
-
-static astmodulestate*
-get_ast_state(PyObject* Py_UNUSED(module))
-{
- astmodulestate* state = get_global_ast_state();
- // get_ast_state() must only be called after _ast module is imported,
- // and astmodule_exec() calls init_types()
- assert(state != NULL);
- return state;
-}
-
-void _PyAST_Fini()
-{
- astmodulestate* state = &global_ast_state;
- Py_CLEAR(state->AST_type);
- Py_CLEAR(state->Add_singleton);
- Py_CLEAR(state->Add_type);
- Py_CLEAR(state->And_singleton);
- Py_CLEAR(state->And_type);
- Py_CLEAR(state->AnnAssign_type);
- Py_CLEAR(state->Assert_type);
- Py_CLEAR(state->Assign_type);
- Py_CLEAR(state->AsyncFor_type);
- Py_CLEAR(state->AsyncFunctionDef_type);
- Py_CLEAR(state->AsyncWith_type);
- Py_CLEAR(state->Attribute_type);
- Py_CLEAR(state->AugAssign_type);
- Py_CLEAR(state->Await_type);
- Py_CLEAR(state->BinOp_type);
- Py_CLEAR(state->BitAnd_singleton);
- Py_CLEAR(state->BitAnd_type);
- Py_CLEAR(state->BitOr_singleton);
- Py_CLEAR(state->BitOr_type);
- Py_CLEAR(state->BitXor_singleton);
- Py_CLEAR(state->BitXor_type);
- Py_CLEAR(state->BoolOp_type);
- Py_CLEAR(state->Break_type);
- Py_CLEAR(state->Call_type);
- Py_CLEAR(state->ClassDef_type);
- Py_CLEAR(state->Compare_type);
- Py_CLEAR(state->Constant_type);
- Py_CLEAR(state->Continue_type);
- Py_CLEAR(state->Del_singleton);
- Py_CLEAR(state->Del_type);
- Py_CLEAR(state->Delete_type);
- Py_CLEAR(state->DictComp_type);
- Py_CLEAR(state->Dict_type);
- Py_CLEAR(state->Div_singleton);
- Py_CLEAR(state->Div_type);
- Py_CLEAR(state->Eq_singleton);
- Py_CLEAR(state->Eq_type);
- Py_CLEAR(state->ExceptHandler_type);
- Py_CLEAR(state->Expr_type);
- Py_CLEAR(state->Expression_type);
- Py_CLEAR(state->FloorDiv_singleton);
- Py_CLEAR(state->FloorDiv_type);
- Py_CLEAR(state->For_type);
- Py_CLEAR(state->FormattedValue_type);
- Py_CLEAR(state->FunctionDef_type);
- Py_CLEAR(state->FunctionType_type);
- Py_CLEAR(state->GeneratorExp_type);
- Py_CLEAR(state->Global_type);
- Py_CLEAR(state->GtE_singleton);
- Py_CLEAR(state->GtE_type);
- Py_CLEAR(state->Gt_singleton);
- Py_CLEAR(state->Gt_type);
- Py_CLEAR(state->IfExp_type);
- Py_CLEAR(state->If_type);
- Py_CLEAR(state->ImportFrom_type);
- Py_CLEAR(state->Import_type);
- Py_CLEAR(state->In_singleton);
- Py_CLEAR(state->In_type);
- Py_CLEAR(state->Interactive_type);
- Py_CLEAR(state->Invert_singleton);
- Py_CLEAR(state->Invert_type);
- Py_CLEAR(state->IsNot_singleton);
- Py_CLEAR(state->IsNot_type);
- Py_CLEAR(state->Is_singleton);
- Py_CLEAR(state->Is_type);
- Py_CLEAR(state->JoinedStr_type);
- Py_CLEAR(state->LShift_singleton);
- Py_CLEAR(state->LShift_type);
- Py_CLEAR(state->Lambda_type);
- Py_CLEAR(state->ListComp_type);
- Py_CLEAR(state->List_type);
- Py_CLEAR(state->Load_singleton);
- Py_CLEAR(state->Load_type);
- Py_CLEAR(state->LtE_singleton);
- Py_CLEAR(state->LtE_type);
- Py_CLEAR(state->Lt_singleton);
- Py_CLEAR(state->Lt_type);
- Py_CLEAR(state->MatMult_singleton);
- Py_CLEAR(state->MatMult_type);
- Py_CLEAR(state->Mod_singleton);
- Py_CLEAR(state->Mod_type);
- Py_CLEAR(state->Module_type);
- Py_CLEAR(state->Mult_singleton);
- Py_CLEAR(state->Mult_type);
- Py_CLEAR(state->Name_type);
- Py_CLEAR(state->NamedExpr_type);
- Py_CLEAR(state->Nonlocal_type);
- Py_CLEAR(state->NotEq_singleton);
- Py_CLEAR(state->NotEq_type);
- Py_CLEAR(state->NotIn_singleton);
- Py_CLEAR(state->NotIn_type);
- Py_CLEAR(state->Not_singleton);
- Py_CLEAR(state->Not_type);
- Py_CLEAR(state->Or_singleton);
- Py_CLEAR(state->Or_type);
- Py_CLEAR(state->Pass_type);
- Py_CLEAR(state->Pow_singleton);
- Py_CLEAR(state->Pow_type);
- Py_CLEAR(state->RShift_singleton);
- Py_CLEAR(state->RShift_type);
- Py_CLEAR(state->Raise_type);
- Py_CLEAR(state->Return_type);
- Py_CLEAR(state->SetComp_type);
- Py_CLEAR(state->Set_type);
- Py_CLEAR(state->Slice_type);
- Py_CLEAR(state->Starred_type);
- Py_CLEAR(state->Store_singleton);
- Py_CLEAR(state->Store_type);
- Py_CLEAR(state->Sub_singleton);
- Py_CLEAR(state->Sub_type);
- Py_CLEAR(state->Subscript_type);
- Py_CLEAR(state->Try_type);
- Py_CLEAR(state->Tuple_type);
- Py_CLEAR(state->TypeIgnore_type);
- Py_CLEAR(state->UAdd_singleton);
- Py_CLEAR(state->UAdd_type);
- Py_CLEAR(state->USub_singleton);
- Py_CLEAR(state->USub_type);
- Py_CLEAR(state->UnaryOp_type);
- Py_CLEAR(state->While_type);
- Py_CLEAR(state->With_type);
- Py_CLEAR(state->YieldFrom_type);
- Py_CLEAR(state->Yield_type);
- Py_CLEAR(state->__dict__);
- Py_CLEAR(state->__doc__);
- Py_CLEAR(state->__module__);
- Py_CLEAR(state->_attributes);
- Py_CLEAR(state->_fields);
- Py_CLEAR(state->alias_type);
- Py_CLEAR(state->annotation);
- Py_CLEAR(state->arg);
- Py_CLEAR(state->arg_type);
- Py_CLEAR(state->args);
- Py_CLEAR(state->argtypes);
- Py_CLEAR(state->arguments_type);
- Py_CLEAR(state->asname);
- Py_CLEAR(state->ast);
- Py_CLEAR(state->attr);
- Py_CLEAR(state->bases);
- Py_CLEAR(state->body);
- Py_CLEAR(state->boolop_type);
- Py_CLEAR(state->cause);
- Py_CLEAR(state->cmpop_type);
- Py_CLEAR(state->col_offset);
- Py_CLEAR(state->comparators);
- Py_CLEAR(state->comprehension_type);
- Py_CLEAR(state->context_expr);
- Py_CLEAR(state->conversion);
- Py_CLEAR(state->ctx);
- Py_CLEAR(state->decorator_list);
- Py_CLEAR(state->defaults);
- Py_CLEAR(state->elt);
- Py_CLEAR(state->elts);
- Py_CLEAR(state->end_col_offset);
- Py_CLEAR(state->end_lineno);
- Py_CLEAR(state->exc);
- Py_CLEAR(state->excepthandler_type);
- Py_CLEAR(state->expr_context_type);
- Py_CLEAR(state->expr_type);
- Py_CLEAR(state->finalbody);
- Py_CLEAR(state->format_spec);
- Py_CLEAR(state->func);
- Py_CLEAR(state->generators);
- Py_CLEAR(state->handlers);
- Py_CLEAR(state->id);
- Py_CLEAR(state->ifs);
- Py_CLEAR(state->is_async);
- Py_CLEAR(state->items);
- Py_CLEAR(state->iter);
- Py_CLEAR(state->key);
- Py_CLEAR(state->keys);
- Py_CLEAR(state->keyword_type);
- Py_CLEAR(state->keywords);
- Py_CLEAR(state->kind);
- Py_CLEAR(state->kw_defaults);
- Py_CLEAR(state->kwarg);
- Py_CLEAR(state->kwonlyargs);
- Py_CLEAR(state->left);
- Py_CLEAR(state->level);
- Py_CLEAR(state->lineno);
- Py_CLEAR(state->lower);
- Py_CLEAR(state->mod_type);
- Py_CLEAR(state->module);
- Py_CLEAR(state->msg);
- Py_CLEAR(state->name);
- Py_CLEAR(state->names);
- Py_CLEAR(state->op);
- Py_CLEAR(state->operand);
- Py_CLEAR(state->operator_type);
- Py_CLEAR(state->ops);
- Py_CLEAR(state->optional_vars);
- Py_CLEAR(state->orelse);
- Py_CLEAR(state->posonlyargs);
- Py_CLEAR(state->returns);
- Py_CLEAR(state->right);
- Py_CLEAR(state->simple);
- Py_CLEAR(state->slice);
- Py_CLEAR(state->step);
- Py_CLEAR(state->stmt_type);
- Py_CLEAR(state->tag);
- Py_CLEAR(state->target);
- Py_CLEAR(state->targets);
- Py_CLEAR(state->test);
- Py_CLEAR(state->type);
- Py_CLEAR(state->type_comment);
- Py_CLEAR(state->type_ignore_type);
- Py_CLEAR(state->type_ignores);
- Py_CLEAR(state->unaryop_type);
- Py_CLEAR(state->upper);
- Py_CLEAR(state->value);
- Py_CLEAR(state->values);
- Py_CLEAR(state->vararg);
- Py_CLEAR(state->withitem_type);
-
- state->initialized = 0;
-}
-
-static int init_identifiers(astmodulestate *state)
-{
- if ((state->__dict__ = PyUnicode_InternFromString("__dict__")) == NULL) return 0;
- if ((state->__doc__ = PyUnicode_InternFromString("__doc__")) == NULL) return 0;
- if ((state->__module__ = PyUnicode_InternFromString("__module__")) == NULL) return 0;
- if ((state->_attributes = PyUnicode_InternFromString("_attributes")) == NULL) return 0;
- if ((state->_fields = PyUnicode_InternFromString("_fields")) == NULL) return 0;
- if ((state->annotation = PyUnicode_InternFromString("annotation")) == NULL) return 0;
- if ((state->arg = PyUnicode_InternFromString("arg")) == NULL) return 0;
- if ((state->args = PyUnicode_InternFromString("args")) == NULL) return 0;
- if ((state->argtypes = PyUnicode_InternFromString("argtypes")) == NULL) return 0;
- if ((state->asname = PyUnicode_InternFromString("asname")) == NULL) return 0;
- if ((state->ast = PyUnicode_InternFromString("ast")) == NULL) return 0;
- if ((state->attr = PyUnicode_InternFromString("attr")) == NULL) return 0;
- if ((state->bases = PyUnicode_InternFromString("bases")) == NULL) return 0;
- if ((state->body = PyUnicode_InternFromString("body")) == NULL) return 0;
- if ((state->cause = PyUnicode_InternFromString("cause")) == NULL) return 0;
- if ((state->col_offset = PyUnicode_InternFromString("col_offset")) == NULL) return 0;
- if ((state->comparators = PyUnicode_InternFromString("comparators")) == NULL) return 0;
- if ((state->context_expr = PyUnicode_InternFromString("context_expr")) == NULL) return 0;
- if ((state->conversion = PyUnicode_InternFromString("conversion")) == NULL) return 0;
- if ((state->ctx = PyUnicode_InternFromString("ctx")) == NULL) return 0;
- if ((state->decorator_list = PyUnicode_InternFromString("decorator_list")) == NULL) return 0;
- if ((state->defaults = PyUnicode_InternFromString("defaults")) == NULL) return 0;
- if ((state->elt = PyUnicode_InternFromString("elt")) == NULL) return 0;
- if ((state->elts = PyUnicode_InternFromString("elts")) == NULL) return 0;
- if ((state->end_col_offset = PyUnicode_InternFromString("end_col_offset")) == NULL) return 0;
- if ((state->end_lineno = PyUnicode_InternFromString("end_lineno")) == NULL) return 0;
- if ((state->exc = PyUnicode_InternFromString("exc")) == NULL) return 0;
- if ((state->finalbody = PyUnicode_InternFromString("finalbody")) == NULL) return 0;
- if ((state->format_spec = PyUnicode_InternFromString("format_spec")) == NULL) return 0;
- if ((state->func = PyUnicode_InternFromString("func")) == NULL) return 0;
- if ((state->generators = PyUnicode_InternFromString("generators")) == NULL) return 0;
- if ((state->handlers = PyUnicode_InternFromString("handlers")) == NULL) return 0;
- if ((state->id = PyUnicode_InternFromString("id")) == NULL) return 0;
- if ((state->ifs = PyUnicode_InternFromString("ifs")) == NULL) return 0;
- if ((state->is_async = PyUnicode_InternFromString("is_async")) == NULL) return 0;
- if ((state->items = PyUnicode_InternFromString("items")) == NULL) return 0;
- if ((state->iter = PyUnicode_InternFromString("iter")) == NULL) return 0;
- if ((state->key = PyUnicode_InternFromString("key")) == NULL) return 0;
- if ((state->keys = PyUnicode_InternFromString("keys")) == NULL) return 0;
- if ((state->keywords = PyUnicode_InternFromString("keywords")) == NULL) return 0;
- if ((state->kind = PyUnicode_InternFromString("kind")) == NULL) return 0;
- if ((state->kw_defaults = PyUnicode_InternFromString("kw_defaults")) == NULL) return 0;
- if ((state->kwarg = PyUnicode_InternFromString("kwarg")) == NULL) return 0;
- if ((state->kwonlyargs = PyUnicode_InternFromString("kwonlyargs")) == NULL) return 0;
- if ((state->left = PyUnicode_InternFromString("left")) == NULL) return 0;
- if ((state->level = PyUnicode_InternFromString("level")) == NULL) return 0;
- if ((state->lineno = PyUnicode_InternFromString("lineno")) == NULL) return 0;
- if ((state->lower = PyUnicode_InternFromString("lower")) == NULL) return 0;
- if ((state->module = PyUnicode_InternFromString("module")) == NULL) return 0;
- if ((state->msg = PyUnicode_InternFromString("msg")) == NULL) return 0;
- if ((state->name = PyUnicode_InternFromString("name")) == NULL) return 0;
- if ((state->names = PyUnicode_InternFromString("names")) == NULL) return 0;
- if ((state->op = PyUnicode_InternFromString("op")) == NULL) return 0;
- if ((state->operand = PyUnicode_InternFromString("operand")) == NULL) return 0;
- if ((state->ops = PyUnicode_InternFromString("ops")) == NULL) return 0;
- if ((state->optional_vars = PyUnicode_InternFromString("optional_vars")) == NULL) return 0;
- if ((state->orelse = PyUnicode_InternFromString("orelse")) == NULL) return 0;
- if ((state->posonlyargs = PyUnicode_InternFromString("posonlyargs")) == NULL) return 0;
- if ((state->returns = PyUnicode_InternFromString("returns")) == NULL) return 0;
- if ((state->right = PyUnicode_InternFromString("right")) == NULL) return 0;
- if ((state->simple = PyUnicode_InternFromString("simple")) == NULL) return 0;
- if ((state->slice = PyUnicode_InternFromString("slice")) == NULL) return 0;
- if ((state->step = PyUnicode_InternFromString("step")) == NULL) return 0;
- if ((state->tag = PyUnicode_InternFromString("tag")) == NULL) return 0;
- if ((state->target = PyUnicode_InternFromString("target")) == NULL) return 0;
- if ((state->targets = PyUnicode_InternFromString("targets")) == NULL) return 0;
- if ((state->test = PyUnicode_InternFromString("test")) == NULL) return 0;
- if ((state->type = PyUnicode_InternFromString("type")) == NULL) return 0;
- if ((state->type_comment = PyUnicode_InternFromString("type_comment")) == NULL) return 0;
- if ((state->type_ignores = PyUnicode_InternFromString("type_ignores")) == NULL) return 0;
- if ((state->upper = PyUnicode_InternFromString("upper")) == NULL) return 0;
- if ((state->value = PyUnicode_InternFromString("value")) == NULL) return 0;
- if ((state->values = PyUnicode_InternFromString("values")) == NULL) return 0;
- if ((state->vararg = PyUnicode_InternFromString("vararg")) == NULL) return 0;
- return 1;
-};
-
-static PyObject* ast2obj_mod(astmodulestate *state, void*);
-static const char * const Module_fields[]={
+#include "structmember.h" // PyMemberDef
+
+typedef struct {
+ int initialized;
+ PyObject *AST_type;
+ PyObject *Add_singleton;
+ PyObject *Add_type;
+ PyObject *And_singleton;
+ PyObject *And_type;
+ PyObject *AnnAssign_type;
+ PyObject *Assert_type;
+ PyObject *Assign_type;
+ PyObject *AsyncFor_type;
+ PyObject *AsyncFunctionDef_type;
+ PyObject *AsyncWith_type;
+ PyObject *Attribute_type;
+ PyObject *AugAssign_type;
+ PyObject *Await_type;
+ PyObject *BinOp_type;
+ PyObject *BitAnd_singleton;
+ PyObject *BitAnd_type;
+ PyObject *BitOr_singleton;
+ PyObject *BitOr_type;
+ PyObject *BitXor_singleton;
+ PyObject *BitXor_type;
+ PyObject *BoolOp_type;
+ PyObject *Break_type;
+ PyObject *Call_type;
+ PyObject *ClassDef_type;
+ PyObject *Compare_type;
+ PyObject *Constant_type;
+ PyObject *Continue_type;
+ PyObject *Del_singleton;
+ PyObject *Del_type;
+ PyObject *Delete_type;
+ PyObject *DictComp_type;
+ PyObject *Dict_type;
+ PyObject *Div_singleton;
+ PyObject *Div_type;
+ PyObject *Eq_singleton;
+ PyObject *Eq_type;
+ PyObject *ExceptHandler_type;
+ PyObject *Expr_type;
+ PyObject *Expression_type;
+ PyObject *FloorDiv_singleton;
+ PyObject *FloorDiv_type;
+ PyObject *For_type;
+ PyObject *FormattedValue_type;
+ PyObject *FunctionDef_type;
+ PyObject *FunctionType_type;
+ PyObject *GeneratorExp_type;
+ PyObject *Global_type;
+ PyObject *GtE_singleton;
+ PyObject *GtE_type;
+ PyObject *Gt_singleton;
+ PyObject *Gt_type;
+ PyObject *IfExp_type;
+ PyObject *If_type;
+ PyObject *ImportFrom_type;
+ PyObject *Import_type;
+ PyObject *In_singleton;
+ PyObject *In_type;
+ PyObject *Interactive_type;
+ PyObject *Invert_singleton;
+ PyObject *Invert_type;
+ PyObject *IsNot_singleton;
+ PyObject *IsNot_type;
+ PyObject *Is_singleton;
+ PyObject *Is_type;
+ PyObject *JoinedStr_type;
+ PyObject *LShift_singleton;
+ PyObject *LShift_type;
+ PyObject *Lambda_type;
+ PyObject *ListComp_type;
+ PyObject *List_type;
+ PyObject *Load_singleton;
+ PyObject *Load_type;
+ PyObject *LtE_singleton;
+ PyObject *LtE_type;
+ PyObject *Lt_singleton;
+ PyObject *Lt_type;
+ PyObject *MatMult_singleton;
+ PyObject *MatMult_type;
+ PyObject *Mod_singleton;
+ PyObject *Mod_type;
+ PyObject *Module_type;
+ PyObject *Mult_singleton;
+ PyObject *Mult_type;
+ PyObject *Name_type;
+ PyObject *NamedExpr_type;
+ PyObject *Nonlocal_type;
+ PyObject *NotEq_singleton;
+ PyObject *NotEq_type;
+ PyObject *NotIn_singleton;
+ PyObject *NotIn_type;
+ PyObject *Not_singleton;
+ PyObject *Not_type;
+ PyObject *Or_singleton;
+ PyObject *Or_type;
+ PyObject *Pass_type;
+ PyObject *Pow_singleton;
+ PyObject *Pow_type;
+ PyObject *RShift_singleton;
+ PyObject *RShift_type;
+ PyObject *Raise_type;
+ PyObject *Return_type;
+ PyObject *SetComp_type;
+ PyObject *Set_type;
+ PyObject *Slice_type;
+ PyObject *Starred_type;
+ PyObject *Store_singleton;
+ PyObject *Store_type;
+ PyObject *Sub_singleton;
+ PyObject *Sub_type;
+ PyObject *Subscript_type;
+ PyObject *Try_type;
+ PyObject *Tuple_type;
+ PyObject *TypeIgnore_type;
+ PyObject *UAdd_singleton;
+ PyObject *UAdd_type;
+ PyObject *USub_singleton;
+ PyObject *USub_type;
+ PyObject *UnaryOp_type;
+ PyObject *While_type;
+ PyObject *With_type;
+ PyObject *YieldFrom_type;
+ PyObject *Yield_type;
+ PyObject *__dict__;
+ PyObject *__doc__;
+ PyObject *__module__;
+ PyObject *_attributes;
+ PyObject *_fields;
+ PyObject *alias_type;
+ PyObject *annotation;
+ PyObject *arg;
+ PyObject *arg_type;
+ PyObject *args;
+ PyObject *argtypes;
+ PyObject *arguments_type;
+ PyObject *asname;
+ PyObject *ast;
+ PyObject *attr;
+ PyObject *bases;
+ PyObject *body;
+ PyObject *boolop_type;
+ PyObject *cause;
+ PyObject *cmpop_type;
+ PyObject *col_offset;
+ PyObject *comparators;
+ PyObject *comprehension_type;
+ PyObject *context_expr;
+ PyObject *conversion;
+ PyObject *ctx;
+ PyObject *decorator_list;
+ PyObject *defaults;
+ PyObject *elt;
+ PyObject *elts;
+ PyObject *end_col_offset;
+ PyObject *end_lineno;
+ PyObject *exc;
+ PyObject *excepthandler_type;
+ PyObject *expr_context_type;
+ PyObject *expr_type;
+ PyObject *finalbody;
+ PyObject *format_spec;
+ PyObject *func;
+ PyObject *generators;
+ PyObject *handlers;
+ PyObject *id;
+ PyObject *ifs;
+ PyObject *is_async;
+ PyObject *items;
+ PyObject *iter;
+ PyObject *key;
+ PyObject *keys;
+ PyObject *keyword_type;
+ PyObject *keywords;
+ PyObject *kind;
+ PyObject *kw_defaults;
+ PyObject *kwarg;
+ PyObject *kwonlyargs;
+ PyObject *left;
+ PyObject *level;
+ PyObject *lineno;
+ PyObject *lower;
+ PyObject *mod_type;
+ PyObject *module;
+ PyObject *msg;
+ PyObject *name;
+ PyObject *names;
+ PyObject *op;
+ PyObject *operand;
+ PyObject *operator_type;
+ PyObject *ops;
+ PyObject *optional_vars;
+ PyObject *orelse;
+ PyObject *posonlyargs;
+ PyObject *returns;
+ PyObject *right;
+ PyObject *simple;
+ PyObject *slice;
+ PyObject *step;
+ PyObject *stmt_type;
+ PyObject *tag;
+ PyObject *target;
+ PyObject *targets;
+ PyObject *test;
+ PyObject *type;
+ PyObject *type_comment;
+ PyObject *type_ignore_type;
+ PyObject *type_ignores;
+ PyObject *unaryop_type;
+ PyObject *upper;
+ PyObject *value;
+ PyObject *values;
+ PyObject *vararg;
+ PyObject *withitem_type;
+} astmodulestate;
+
+
+// Forward declaration
+static int init_types(astmodulestate *state);
+
+// bpo-41194, bpo-41261, bpo-41631: The _ast module uses a global state.
+static astmodulestate global_ast_state = {0};
+
+static astmodulestate*
+get_global_ast_state(void)
+{
+ astmodulestate* state = &global_ast_state;
+ if (!init_types(state)) {
+ return NULL;
+ }
+ return state;
+}
+
+static astmodulestate*
+get_ast_state(PyObject* Py_UNUSED(module))
+{
+ astmodulestate* state = get_global_ast_state();
+ // get_ast_state() must only be called after _ast module is imported,
+ // and astmodule_exec() calls init_types()
+ assert(state != NULL);
+ return state;
+}
+
+void _PyAST_Fini()
+{
+ astmodulestate* state = &global_ast_state;
+ Py_CLEAR(state->AST_type);
+ Py_CLEAR(state->Add_singleton);
+ Py_CLEAR(state->Add_type);
+ Py_CLEAR(state->And_singleton);
+ Py_CLEAR(state->And_type);
+ Py_CLEAR(state->AnnAssign_type);
+ Py_CLEAR(state->Assert_type);
+ Py_CLEAR(state->Assign_type);
+ Py_CLEAR(state->AsyncFor_type);
+ Py_CLEAR(state->AsyncFunctionDef_type);
+ Py_CLEAR(state->AsyncWith_type);
+ Py_CLEAR(state->Attribute_type);
+ Py_CLEAR(state->AugAssign_type);
+ Py_CLEAR(state->Await_type);
+ Py_CLEAR(state->BinOp_type);
+ Py_CLEAR(state->BitAnd_singleton);
+ Py_CLEAR(state->BitAnd_type);
+ Py_CLEAR(state->BitOr_singleton);
+ Py_CLEAR(state->BitOr_type);
+ Py_CLEAR(state->BitXor_singleton);
+ Py_CLEAR(state->BitXor_type);
+ Py_CLEAR(state->BoolOp_type);
+ Py_CLEAR(state->Break_type);
+ Py_CLEAR(state->Call_type);
+ Py_CLEAR(state->ClassDef_type);
+ Py_CLEAR(state->Compare_type);
+ Py_CLEAR(state->Constant_type);
+ Py_CLEAR(state->Continue_type);
+ Py_CLEAR(state->Del_singleton);
+ Py_CLEAR(state->Del_type);
+ Py_CLEAR(state->Delete_type);
+ Py_CLEAR(state->DictComp_type);
+ Py_CLEAR(state->Dict_type);
+ Py_CLEAR(state->Div_singleton);
+ Py_CLEAR(state->Div_type);
+ Py_CLEAR(state->Eq_singleton);
+ Py_CLEAR(state->Eq_type);
+ Py_CLEAR(state->ExceptHandler_type);
+ Py_CLEAR(state->Expr_type);
+ Py_CLEAR(state->Expression_type);
+ Py_CLEAR(state->FloorDiv_singleton);
+ Py_CLEAR(state->FloorDiv_type);
+ Py_CLEAR(state->For_type);
+ Py_CLEAR(state->FormattedValue_type);
+ Py_CLEAR(state->FunctionDef_type);
+ Py_CLEAR(state->FunctionType_type);
+ Py_CLEAR(state->GeneratorExp_type);
+ Py_CLEAR(state->Global_type);
+ Py_CLEAR(state->GtE_singleton);
+ Py_CLEAR(state->GtE_type);
+ Py_CLEAR(state->Gt_singleton);
+ Py_CLEAR(state->Gt_type);
+ Py_CLEAR(state->IfExp_type);
+ Py_CLEAR(state->If_type);
+ Py_CLEAR(state->ImportFrom_type);
+ Py_CLEAR(state->Import_type);
+ Py_CLEAR(state->In_singleton);
+ Py_CLEAR(state->In_type);
+ Py_CLEAR(state->Interactive_type);
+ Py_CLEAR(state->Invert_singleton);
+ Py_CLEAR(state->Invert_type);
+ Py_CLEAR(state->IsNot_singleton);
+ Py_CLEAR(state->IsNot_type);
+ Py_CLEAR(state->Is_singleton);
+ Py_CLEAR(state->Is_type);
+ Py_CLEAR(state->JoinedStr_type);
+ Py_CLEAR(state->LShift_singleton);
+ Py_CLEAR(state->LShift_type);
+ Py_CLEAR(state->Lambda_type);
+ Py_CLEAR(state->ListComp_type);
+ Py_CLEAR(state->List_type);
+ Py_CLEAR(state->Load_singleton);
+ Py_CLEAR(state->Load_type);
+ Py_CLEAR(state->LtE_singleton);
+ Py_CLEAR(state->LtE_type);
+ Py_CLEAR(state->Lt_singleton);
+ Py_CLEAR(state->Lt_type);
+ Py_CLEAR(state->MatMult_singleton);
+ Py_CLEAR(state->MatMult_type);
+ Py_CLEAR(state->Mod_singleton);
+ Py_CLEAR(state->Mod_type);
+ Py_CLEAR(state->Module_type);
+ Py_CLEAR(state->Mult_singleton);
+ Py_CLEAR(state->Mult_type);
+ Py_CLEAR(state->Name_type);
+ Py_CLEAR(state->NamedExpr_type);
+ Py_CLEAR(state->Nonlocal_type);
+ Py_CLEAR(state->NotEq_singleton);
+ Py_CLEAR(state->NotEq_type);
+ Py_CLEAR(state->NotIn_singleton);
+ Py_CLEAR(state->NotIn_type);
+ Py_CLEAR(state->Not_singleton);
+ Py_CLEAR(state->Not_type);
+ Py_CLEAR(state->Or_singleton);
+ Py_CLEAR(state->Or_type);
+ Py_CLEAR(state->Pass_type);
+ Py_CLEAR(state->Pow_singleton);
+ Py_CLEAR(state->Pow_type);
+ Py_CLEAR(state->RShift_singleton);
+ Py_CLEAR(state->RShift_type);
+ Py_CLEAR(state->Raise_type);
+ Py_CLEAR(state->Return_type);
+ Py_CLEAR(state->SetComp_type);
+ Py_CLEAR(state->Set_type);
+ Py_CLEAR(state->Slice_type);
+ Py_CLEAR(state->Starred_type);
+ Py_CLEAR(state->Store_singleton);
+ Py_CLEAR(state->Store_type);
+ Py_CLEAR(state->Sub_singleton);
+ Py_CLEAR(state->Sub_type);
+ Py_CLEAR(state->Subscript_type);
+ Py_CLEAR(state->Try_type);
+ Py_CLEAR(state->Tuple_type);
+ Py_CLEAR(state->TypeIgnore_type);
+ Py_CLEAR(state->UAdd_singleton);
+ Py_CLEAR(state->UAdd_type);
+ Py_CLEAR(state->USub_singleton);
+ Py_CLEAR(state->USub_type);
+ Py_CLEAR(state->UnaryOp_type);
+ Py_CLEAR(state->While_type);
+ Py_CLEAR(state->With_type);
+ Py_CLEAR(state->YieldFrom_type);
+ Py_CLEAR(state->Yield_type);
+ Py_CLEAR(state->__dict__);
+ Py_CLEAR(state->__doc__);
+ Py_CLEAR(state->__module__);
+ Py_CLEAR(state->_attributes);
+ Py_CLEAR(state->_fields);
+ Py_CLEAR(state->alias_type);
+ Py_CLEAR(state->annotation);
+ Py_CLEAR(state->arg);
+ Py_CLEAR(state->arg_type);
+ Py_CLEAR(state->args);
+ Py_CLEAR(state->argtypes);
+ Py_CLEAR(state->arguments_type);
+ Py_CLEAR(state->asname);
+ Py_CLEAR(state->ast);
+ Py_CLEAR(state->attr);
+ Py_CLEAR(state->bases);
+ Py_CLEAR(state->body);
+ Py_CLEAR(state->boolop_type);
+ Py_CLEAR(state->cause);
+ Py_CLEAR(state->cmpop_type);
+ Py_CLEAR(state->col_offset);
+ Py_CLEAR(state->comparators);
+ Py_CLEAR(state->comprehension_type);
+ Py_CLEAR(state->context_expr);
+ Py_CLEAR(state->conversion);
+ Py_CLEAR(state->ctx);
+ Py_CLEAR(state->decorator_list);
+ Py_CLEAR(state->defaults);
+ Py_CLEAR(state->elt);
+ Py_CLEAR(state->elts);
+ Py_CLEAR(state->end_col_offset);
+ Py_CLEAR(state->end_lineno);
+ Py_CLEAR(state->exc);
+ Py_CLEAR(state->excepthandler_type);
+ Py_CLEAR(state->expr_context_type);
+ Py_CLEAR(state->expr_type);
+ Py_CLEAR(state->finalbody);
+ Py_CLEAR(state->format_spec);
+ Py_CLEAR(state->func);
+ Py_CLEAR(state->generators);
+ Py_CLEAR(state->handlers);
+ Py_CLEAR(state->id);
+ Py_CLEAR(state->ifs);
+ Py_CLEAR(state->is_async);
+ Py_CLEAR(state->items);
+ Py_CLEAR(state->iter);
+ Py_CLEAR(state->key);
+ Py_CLEAR(state->keys);
+ Py_CLEAR(state->keyword_type);
+ Py_CLEAR(state->keywords);
+ Py_CLEAR(state->kind);
+ Py_CLEAR(state->kw_defaults);
+ Py_CLEAR(state->kwarg);
+ Py_CLEAR(state->kwonlyargs);
+ Py_CLEAR(state->left);
+ Py_CLEAR(state->level);
+ Py_CLEAR(state->lineno);
+ Py_CLEAR(state->lower);
+ Py_CLEAR(state->mod_type);
+ Py_CLEAR(state->module);
+ Py_CLEAR(state->msg);
+ Py_CLEAR(state->name);
+ Py_CLEAR(state->names);
+ Py_CLEAR(state->op);
+ Py_CLEAR(state->operand);
+ Py_CLEAR(state->operator_type);
+ Py_CLEAR(state->ops);
+ Py_CLEAR(state->optional_vars);
+ Py_CLEAR(state->orelse);
+ Py_CLEAR(state->posonlyargs);
+ Py_CLEAR(state->returns);
+ Py_CLEAR(state->right);
+ Py_CLEAR(state->simple);
+ Py_CLEAR(state->slice);
+ Py_CLEAR(state->step);
+ Py_CLEAR(state->stmt_type);
+ Py_CLEAR(state->tag);
+ Py_CLEAR(state->target);
+ Py_CLEAR(state->targets);
+ Py_CLEAR(state->test);
+ Py_CLEAR(state->type);
+ Py_CLEAR(state->type_comment);
+ Py_CLEAR(state->type_ignore_type);
+ Py_CLEAR(state->type_ignores);
+ Py_CLEAR(state->unaryop_type);
+ Py_CLEAR(state->upper);
+ Py_CLEAR(state->value);
+ Py_CLEAR(state->values);
+ Py_CLEAR(state->vararg);
+ Py_CLEAR(state->withitem_type);
+
+ state->initialized = 0;
+}
+
+static int init_identifiers(astmodulestate *state)
+{
+ if ((state->__dict__ = PyUnicode_InternFromString("__dict__")) == NULL) return 0;
+ if ((state->__doc__ = PyUnicode_InternFromString("__doc__")) == NULL) return 0;
+ if ((state->__module__ = PyUnicode_InternFromString("__module__")) == NULL) return 0;
+ if ((state->_attributes = PyUnicode_InternFromString("_attributes")) == NULL) return 0;
+ if ((state->_fields = PyUnicode_InternFromString("_fields")) == NULL) return 0;
+ if ((state->annotation = PyUnicode_InternFromString("annotation")) == NULL) return 0;
+ if ((state->arg = PyUnicode_InternFromString("arg")) == NULL) return 0;
+ if ((state->args = PyUnicode_InternFromString("args")) == NULL) return 0;
+ if ((state->argtypes = PyUnicode_InternFromString("argtypes")) == NULL) return 0;
+ if ((state->asname = PyUnicode_InternFromString("asname")) == NULL) return 0;
+ if ((state->ast = PyUnicode_InternFromString("ast")) == NULL) return 0;
+ if ((state->attr = PyUnicode_InternFromString("attr")) == NULL) return 0;
+ if ((state->bases = PyUnicode_InternFromString("bases")) == NULL) return 0;
+ if ((state->body = PyUnicode_InternFromString("body")) == NULL) return 0;
+ if ((state->cause = PyUnicode_InternFromString("cause")) == NULL) return 0;
+ if ((state->col_offset = PyUnicode_InternFromString("col_offset")) == NULL) return 0;
+ if ((state->comparators = PyUnicode_InternFromString("comparators")) == NULL) return 0;
+ if ((state->context_expr = PyUnicode_InternFromString("context_expr")) == NULL) return 0;
+ if ((state->conversion = PyUnicode_InternFromString("conversion")) == NULL) return 0;
+ if ((state->ctx = PyUnicode_InternFromString("ctx")) == NULL) return 0;
+ if ((state->decorator_list = PyUnicode_InternFromString("decorator_list")) == NULL) return 0;
+ if ((state->defaults = PyUnicode_InternFromString("defaults")) == NULL) return 0;
+ if ((state->elt = PyUnicode_InternFromString("elt")) == NULL) return 0;
+ if ((state->elts = PyUnicode_InternFromString("elts")) == NULL) return 0;
+ if ((state->end_col_offset = PyUnicode_InternFromString("end_col_offset")) == NULL) return 0;
+ if ((state->end_lineno = PyUnicode_InternFromString("end_lineno")) == NULL) return 0;
+ if ((state->exc = PyUnicode_InternFromString("exc")) == NULL) return 0;
+ if ((state->finalbody = PyUnicode_InternFromString("finalbody")) == NULL) return 0;
+ if ((state->format_spec = PyUnicode_InternFromString("format_spec")) == NULL) return 0;
+ if ((state->func = PyUnicode_InternFromString("func")) == NULL) return 0;
+ if ((state->generators = PyUnicode_InternFromString("generators")) == NULL) return 0;
+ if ((state->handlers = PyUnicode_InternFromString("handlers")) == NULL) return 0;
+ if ((state->id = PyUnicode_InternFromString("id")) == NULL) return 0;
+ if ((state->ifs = PyUnicode_InternFromString("ifs")) == NULL) return 0;
+ if ((state->is_async = PyUnicode_InternFromString("is_async")) == NULL) return 0;
+ if ((state->items = PyUnicode_InternFromString("items")) == NULL) return 0;
+ if ((state->iter = PyUnicode_InternFromString("iter")) == NULL) return 0;
+ if ((state->key = PyUnicode_InternFromString("key")) == NULL) return 0;
+ if ((state->keys = PyUnicode_InternFromString("keys")) == NULL) return 0;
+ if ((state->keywords = PyUnicode_InternFromString("keywords")) == NULL) return 0;
+ if ((state->kind = PyUnicode_InternFromString("kind")) == NULL) return 0;
+ if ((state->kw_defaults = PyUnicode_InternFromString("kw_defaults")) == NULL) return 0;
+ if ((state->kwarg = PyUnicode_InternFromString("kwarg")) == NULL) return 0;
+ if ((state->kwonlyargs = PyUnicode_InternFromString("kwonlyargs")) == NULL) return 0;
+ if ((state->left = PyUnicode_InternFromString("left")) == NULL) return 0;
+ if ((state->level = PyUnicode_InternFromString("level")) == NULL) return 0;
+ if ((state->lineno = PyUnicode_InternFromString("lineno")) == NULL) return 0;
+ if ((state->lower = PyUnicode_InternFromString("lower")) == NULL) return 0;
+ if ((state->module = PyUnicode_InternFromString("module")) == NULL) return 0;
+ if ((state->msg = PyUnicode_InternFromString("msg")) == NULL) return 0;
+ if ((state->name = PyUnicode_InternFromString("name")) == NULL) return 0;
+ if ((state->names = PyUnicode_InternFromString("names")) == NULL) return 0;
+ if ((state->op = PyUnicode_InternFromString("op")) == NULL) return 0;
+ if ((state->operand = PyUnicode_InternFromString("operand")) == NULL) return 0;
+ if ((state->ops = PyUnicode_InternFromString("ops")) == NULL) return 0;
+ if ((state->optional_vars = PyUnicode_InternFromString("optional_vars")) == NULL) return 0;
+ if ((state->orelse = PyUnicode_InternFromString("orelse")) == NULL) return 0;
+ if ((state->posonlyargs = PyUnicode_InternFromString("posonlyargs")) == NULL) return 0;
+ if ((state->returns = PyUnicode_InternFromString("returns")) == NULL) return 0;
+ if ((state->right = PyUnicode_InternFromString("right")) == NULL) return 0;
+ if ((state->simple = PyUnicode_InternFromString("simple")) == NULL) return 0;
+ if ((state->slice = PyUnicode_InternFromString("slice")) == NULL) return 0;
+ if ((state->step = PyUnicode_InternFromString("step")) == NULL) return 0;
+ if ((state->tag = PyUnicode_InternFromString("tag")) == NULL) return 0;
+ if ((state->target = PyUnicode_InternFromString("target")) == NULL) return 0;
+ if ((state->targets = PyUnicode_InternFromString("targets")) == NULL) return 0;
+ if ((state->test = PyUnicode_InternFromString("test")) == NULL) return 0;
+ if ((state->type = PyUnicode_InternFromString("type")) == NULL) return 0;
+ if ((state->type_comment = PyUnicode_InternFromString("type_comment")) == NULL) return 0;
+ if ((state->type_ignores = PyUnicode_InternFromString("type_ignores")) == NULL) return 0;
+ if ((state->upper = PyUnicode_InternFromString("upper")) == NULL) return 0;
+ if ((state->value = PyUnicode_InternFromString("value")) == NULL) return 0;
+ if ((state->values = PyUnicode_InternFromString("values")) == NULL) return 0;
+ if ((state->vararg = PyUnicode_InternFromString("vararg")) == NULL) return 0;
+ return 1;
+};
+
+static PyObject* ast2obj_mod(astmodulestate *state, void*);
+static const char * const Module_fields[]={
"body",
- "type_ignores",
+ "type_ignores",
};
-static const char * const Interactive_fields[]={
+static const char * const Interactive_fields[]={
"body",
};
-static const char * const Expression_fields[]={
+static const char * const Expression_fields[]={
"body",
};
-static const char * const FunctionType_fields[]={
- "argtypes",
- "returns",
-};
-static const char * const stmt_attributes[] = {
+static const char * const FunctionType_fields[]={
+ "argtypes",
+ "returns",
+};
+static const char * const stmt_attributes[] = {
"lineno",
"col_offset",
- "end_lineno",
- "end_col_offset",
+ "end_lineno",
+ "end_col_offset",
};
-static PyObject* ast2obj_stmt(astmodulestate *state, void*);
-static const char * const FunctionDef_fields[]={
+static PyObject* ast2obj_stmt(astmodulestate *state, void*);
+static const char * const FunctionDef_fields[]={
"name",
"args",
"body",
"decorator_list",
"returns",
- "type_comment",
+ "type_comment",
};
-static const char * const AsyncFunctionDef_fields[]={
+static const char * const AsyncFunctionDef_fields[]={
"name",
"args",
"body",
"decorator_list",
"returns",
- "type_comment",
+ "type_comment",
};
-static const char * const ClassDef_fields[]={
+static const char * const ClassDef_fields[]={
"name",
"bases",
"keywords",
"body",
"decorator_list",
};
-static const char * const Return_fields[]={
+static const char * const Return_fields[]={
"value",
};
-static const char * const Delete_fields[]={
+static const char * const Delete_fields[]={
"targets",
};
-static const char * const Assign_fields[]={
+static const char * const Assign_fields[]={
"targets",
"value",
- "type_comment",
+ "type_comment",
};
-static const char * const AugAssign_fields[]={
+static const char * const AugAssign_fields[]={
"target",
"op",
"value",
};
-static const char * const AnnAssign_fields[]={
+static const char * const AnnAssign_fields[]={
"target",
"annotation",
"value",
"simple",
};
-static const char * const For_fields[]={
+static const char * const For_fields[]={
"target",
"iter",
"body",
"orelse",
- "type_comment",
+ "type_comment",
};
-static const char * const AsyncFor_fields[]={
+static const char * const AsyncFor_fields[]={
"target",
"iter",
"body",
"orelse",
- "type_comment",
+ "type_comment",
};
-static const char * const While_fields[]={
+static const char * const While_fields[]={
"test",
"body",
"orelse",
};
-static const char * const If_fields[]={
+static const char * const If_fields[]={
"test",
"body",
"orelse",
};
-static const char * const With_fields[]={
+static const char * const With_fields[]={
"items",
"body",
- "type_comment",
+ "type_comment",
};
-static const char * const AsyncWith_fields[]={
+static const char * const AsyncWith_fields[]={
"items",
"body",
- "type_comment",
+ "type_comment",
};
-static const char * const Raise_fields[]={
+static const char * const Raise_fields[]={
"exc",
"cause",
};
-static const char * const Try_fields[]={
+static const char * const Try_fields[]={
"body",
"handlers",
"orelse",
"finalbody",
};
-static const char * const Assert_fields[]={
+static const char * const Assert_fields[]={
"test",
"msg",
};
-static const char * const Import_fields[]={
+static const char * const Import_fields[]={
"names",
};
-static const char * const ImportFrom_fields[]={
+static const char * const ImportFrom_fields[]={
"module",
"names",
"level",
};
-static const char * const Global_fields[]={
+static const char * const Global_fields[]={
"names",
};
-static const char * const Nonlocal_fields[]={
+static const char * const Nonlocal_fields[]={
"names",
};
-static const char * const Expr_fields[]={
+static const char * const Expr_fields[]={
"value",
};
-static const char * const expr_attributes[] = {
+static const char * const expr_attributes[] = {
"lineno",
"col_offset",
- "end_lineno",
- "end_col_offset",
+ "end_lineno",
+ "end_col_offset",
};
-static PyObject* ast2obj_expr(astmodulestate *state, void*);
-static const char * const BoolOp_fields[]={
+static PyObject* ast2obj_expr(astmodulestate *state, void*);
+static const char * const BoolOp_fields[]={
"op",
"values",
};
-static const char * const NamedExpr_fields[]={
- "target",
- "value",
-};
-static const char * const BinOp_fields[]={
+static const char * const NamedExpr_fields[]={
+ "target",
+ "value",
+};
+static const char * const BinOp_fields[]={
"left",
"op",
"right",
};
-static const char * const UnaryOp_fields[]={
+static const char * const UnaryOp_fields[]={
"op",
"operand",
};
-static const char * const Lambda_fields[]={
+static const char * const Lambda_fields[]={
"args",
"body",
};
-static const char * const IfExp_fields[]={
+static const char * const IfExp_fields[]={
"test",
"body",
"orelse",
};
-static const char * const Dict_fields[]={
+static const char * const Dict_fields[]={
"keys",
"values",
};
-static const char * const Set_fields[]={
+static const char * const Set_fields[]={
"elts",
};
-static const char * const ListComp_fields[]={
+static const char * const ListComp_fields[]={
"elt",
"generators",
};
-static const char * const SetComp_fields[]={
+static const char * const SetComp_fields[]={
"elt",
"generators",
};
-static const char * const DictComp_fields[]={
+static const char * const DictComp_fields[]={
"key",
"value",
"generators",
};
-static const char * const GeneratorExp_fields[]={
+static const char * const GeneratorExp_fields[]={
"elt",
"generators",
};
-static const char * const Await_fields[]={
+static const char * const Await_fields[]={
"value",
};
-static const char * const Yield_fields[]={
+static const char * const Yield_fields[]={
"value",
};
-static const char * const YieldFrom_fields[]={
+static const char * const YieldFrom_fields[]={
"value",
};
-static const char * const Compare_fields[]={
+static const char * const Compare_fields[]={
"left",
"ops",
"comparators",
};
-static const char * const Call_fields[]={
+static const char * const Call_fields[]={
"func",
"args",
"keywords",
};
-static const char * const FormattedValue_fields[]={
+static const char * const FormattedValue_fields[]={
"value",
"conversion",
"format_spec",
};
-static const char * const JoinedStr_fields[]={
+static const char * const JoinedStr_fields[]={
"values",
};
-static const char * const Constant_fields[]={
+static const char * const Constant_fields[]={
"value",
- "kind",
+ "kind",
};
-static const char * const Attribute_fields[]={
+static const char * const Attribute_fields[]={
"value",
"attr",
"ctx",
};
-static const char * const Subscript_fields[]={
+static const char * const Subscript_fields[]={
"value",
"slice",
"ctx",
};
-static const char * const Starred_fields[]={
+static const char * const Starred_fields[]={
"value",
"ctx",
};
-static const char * const Name_fields[]={
+static const char * const Name_fields[]={
"id",
"ctx",
};
-static const char * const List_fields[]={
+static const char * const List_fields[]={
"elts",
"ctx",
};
-static const char * const Tuple_fields[]={
+static const char * const Tuple_fields[]={
"elts",
"ctx",
};
-static const char * const Slice_fields[]={
+static const char * const Slice_fields[]={
"lower",
"upper",
"step",
};
-static PyObject* ast2obj_expr_context(astmodulestate *state, expr_context_ty);
-static PyObject* ast2obj_boolop(astmodulestate *state, boolop_ty);
-static PyObject* ast2obj_operator(astmodulestate *state, operator_ty);
-static PyObject* ast2obj_unaryop(astmodulestate *state, unaryop_ty);
-static PyObject* ast2obj_cmpop(astmodulestate *state, cmpop_ty);
-static PyObject* ast2obj_comprehension(astmodulestate *state, void*);
-static const char * const comprehension_fields[]={
+static PyObject* ast2obj_expr_context(astmodulestate *state, expr_context_ty);
+static PyObject* ast2obj_boolop(astmodulestate *state, boolop_ty);
+static PyObject* ast2obj_operator(astmodulestate *state, operator_ty);
+static PyObject* ast2obj_unaryop(astmodulestate *state, unaryop_ty);
+static PyObject* ast2obj_cmpop(astmodulestate *state, cmpop_ty);
+static PyObject* ast2obj_comprehension(astmodulestate *state, void*);
+static const char * const comprehension_fields[]={
"target",
"iter",
"ifs",
"is_async",
};
-static const char * const excepthandler_attributes[] = {
+static const char * const excepthandler_attributes[] = {
"lineno",
"col_offset",
- "end_lineno",
- "end_col_offset",
+ "end_lineno",
+ "end_col_offset",
};
-static PyObject* ast2obj_excepthandler(astmodulestate *state, void*);
-static const char * const ExceptHandler_fields[]={
+static PyObject* ast2obj_excepthandler(astmodulestate *state, void*);
+static const char * const ExceptHandler_fields[]={
"type",
"name",
"body",
};
-static PyObject* ast2obj_arguments(astmodulestate *state, void*);
-static const char * const arguments_fields[]={
- "posonlyargs",
+static PyObject* ast2obj_arguments(astmodulestate *state, void*);
+static const char * const arguments_fields[]={
+ "posonlyargs",
"args",
"vararg",
"kwonlyargs",
@@ -834,44 +834,44 @@ static const char * const arguments_fields[]={
"kwarg",
"defaults",
};
-static PyObject* ast2obj_arg(astmodulestate *state, void*);
-static const char * const arg_attributes[] = {
+static PyObject* ast2obj_arg(astmodulestate *state, void*);
+static const char * const arg_attributes[] = {
"lineno",
"col_offset",
- "end_lineno",
- "end_col_offset",
+ "end_lineno",
+ "end_col_offset",
};
-static const char * const arg_fields[]={
+static const char * const arg_fields[]={
"arg",
"annotation",
- "type_comment",
+ "type_comment",
+};
+static PyObject* ast2obj_keyword(astmodulestate *state, void*);
+static const char * const keyword_attributes[] = {
+ "lineno",
+ "col_offset",
+ "end_lineno",
+ "end_col_offset",
};
-static PyObject* ast2obj_keyword(astmodulestate *state, void*);
-static const char * const keyword_attributes[] = {
- "lineno",
- "col_offset",
- "end_lineno",
- "end_col_offset",
-};
-static const char * const keyword_fields[]={
+static const char * const keyword_fields[]={
"arg",
"value",
};
-static PyObject* ast2obj_alias(astmodulestate *state, void*);
-static const char * const alias_fields[]={
+static PyObject* ast2obj_alias(astmodulestate *state, void*);
+static const char * const alias_fields[]={
"name",
"asname",
};
-static PyObject* ast2obj_withitem(astmodulestate *state, void*);
-static const char * const withitem_fields[]={
+static PyObject* ast2obj_withitem(astmodulestate *state, void*);
+static const char * const withitem_fields[]={
"context_expr",
"optional_vars",
};
-static PyObject* ast2obj_type_ignore(astmodulestate *state, void*);
-static const char * const TypeIgnore_fields[]={
- "lineno",
- "tag",
-};
+static PyObject* ast2obj_type_ignore(astmodulestate *state, void*);
+static const char * const TypeIgnore_fields[]={
+ "lineno",
+ "tag",
+};
@@ -884,19 +884,19 @@ static void
ast_dealloc(AST_object *self)
{
/* bpo-31095: UnTrack is needed before calling any callbacks */
- PyTypeObject *tp = Py_TYPE(self);
+ PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
Py_CLEAR(self->dict);
- freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
- assert(free_func != NULL);
- free_func(self);
- Py_DECREF(tp);
+ freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
+ assert(free_func != NULL);
+ free_func(self);
+ Py_DECREF(tp);
}
static int
ast_traverse(AST_object *self, visitproc visit, void *arg)
{
- Py_VISIT(Py_TYPE(self));
+ Py_VISIT(Py_TYPE(self));
Py_VISIT(self->dict);
return 0;
}
@@ -911,29 +911,29 @@ ast_clear(AST_object *self)
static int
ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
{
- astmodulestate *state = get_global_ast_state();
- if (state == NULL) {
- return -1;
- }
-
+ astmodulestate *state = get_global_ast_state();
+ if (state == NULL) {
+ return -1;
+ }
+
Py_ssize_t i, numfields = 0;
int res = -1;
PyObject *key, *value, *fields;
- if (_PyObject_LookupAttr((PyObject*)Py_TYPE(self), state->_fields, &fields) < 0) {
+ if (_PyObject_LookupAttr((PyObject*)Py_TYPE(self), state->_fields, &fields) < 0) {
goto cleanup;
}
if (fields) {
numfields = PySequence_Size(fields);
- if (numfields == -1) {
+ if (numfields == -1) {
goto cleanup;
- }
+ }
}
res = 0; /* if no error occurs, this stays 0 to the end */
if (numfields < PyTuple_GET_SIZE(args)) {
PyErr_Format(PyExc_TypeError, "%.400s constructor takes at most "
"%zd positional argument%s",
- _PyType_Name(Py_TYPE(self)),
+ _PyType_Name(Py_TYPE(self)),
numfields, numfields == 1 ? "" : "s");
res = -1;
goto cleanup;
@@ -947,35 +947,35 @@ ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
}
res = PyObject_SetAttr(self, name, PyTuple_GET_ITEM(args, i));
Py_DECREF(name);
- if (res < 0) {
+ if (res < 0) {
goto cleanup;
- }
+ }
}
if (kw) {
i = 0; /* needed by PyDict_Next */
while (PyDict_Next(kw, &i, &key, &value)) {
- int contains = PySequence_Contains(fields, key);
- if (contains == -1) {
- res = -1;
- goto cleanup;
- } else if (contains == 1) {
- Py_ssize_t p = PySequence_Index(fields, key);
- if (p == -1) {
- res = -1;
- goto cleanup;
- }
- if (p < PyTuple_GET_SIZE(args)) {
- PyErr_Format(PyExc_TypeError,
- "%.400s got multiple values for argument '%U'",
- Py_TYPE(self)->tp_name, key);
- res = -1;
- goto cleanup;
- }
- }
+ int contains = PySequence_Contains(fields, key);
+ if (contains == -1) {
+ res = -1;
+ goto cleanup;
+ } else if (contains == 1) {
+ Py_ssize_t p = PySequence_Index(fields, key);
+ if (p == -1) {
+ res = -1;
+ goto cleanup;
+ }
+ if (p < PyTuple_GET_SIZE(args)) {
+ PyErr_Format(PyExc_TypeError,
+ "%.400s got multiple values for argument '%U'",
+ Py_TYPE(self)->tp_name, key);
+ res = -1;
+ goto cleanup;
+ }
+ }
res = PyObject_SetAttr(self, key, value);
- if (res < 0) {
+ if (res < 0) {
goto cleanup;
- }
+ }
}
}
cleanup:
@@ -987,13 +987,13 @@ ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
static PyObject *
ast_type_reduce(PyObject *self, PyObject *unused)
{
- astmodulestate *state = get_global_ast_state();
- if (state == NULL) {
- return NULL;
- }
-
+ astmodulestate *state = get_global_ast_state();
+ if (state == NULL) {
+ return NULL;
+ }
+
PyObject *dict;
- if (_PyObject_LookupAttr(self, state->__dict__, &dict) < 0) {
+ if (_PyObject_LookupAttr(self, state->__dict__, &dict) < 0) {
return NULL;
}
if (dict) {
@@ -1002,11 +1002,11 @@ ast_type_reduce(PyObject *self, PyObject *unused)
return Py_BuildValue("O()", Py_TYPE(self));
}
-static PyMemberDef ast_type_members[] = {
- {"__dictoffset__", T_PYSSIZET, offsetof(AST_object, dict), READONLY},
- {NULL} /* Sentinel */
-};
-
+static PyMemberDef ast_type_members[] = {
+ {"__dictoffset__", T_PYSSIZET, offsetof(AST_object, dict), READONLY},
+ {NULL} /* Sentinel */
+};
+
static PyMethodDef ast_type_methods[] = {
{"__reduce__", ast_type_reduce, METH_NOARGS, NULL},
{NULL}
@@ -1017,79 +1017,79 @@ static PyGetSetDef ast_type_getsets[] = {
{NULL}
};
-static PyType_Slot AST_type_slots[] = {
- {Py_tp_dealloc, ast_dealloc},
- {Py_tp_getattro, PyObject_GenericGetAttr},
- {Py_tp_setattro, PyObject_GenericSetAttr},
- {Py_tp_traverse, ast_traverse},
- {Py_tp_clear, ast_clear},
- {Py_tp_members, ast_type_members},
- {Py_tp_methods, ast_type_methods},
- {Py_tp_getset, ast_type_getsets},
- {Py_tp_init, ast_type_init},
- {Py_tp_alloc, PyType_GenericAlloc},
- {Py_tp_new, PyType_GenericNew},
- {Py_tp_free, PyObject_GC_Del},
- {0, 0},
-};
-
-static PyType_Spec AST_type_spec = {
- "ast.AST",
+static PyType_Slot AST_type_slots[] = {
+ {Py_tp_dealloc, ast_dealloc},
+ {Py_tp_getattro, PyObject_GenericGetAttr},
+ {Py_tp_setattro, PyObject_GenericSetAttr},
+ {Py_tp_traverse, ast_traverse},
+ {Py_tp_clear, ast_clear},
+ {Py_tp_members, ast_type_members},
+ {Py_tp_methods, ast_type_methods},
+ {Py_tp_getset, ast_type_getsets},
+ {Py_tp_init, ast_type_init},
+ {Py_tp_alloc, PyType_GenericAlloc},
+ {Py_tp_new, PyType_GenericNew},
+ {Py_tp_free, PyObject_GC_Del},
+ {0, 0},
+};
+
+static PyType_Spec AST_type_spec = {
+ "ast.AST",
sizeof(AST_object),
0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
- AST_type_slots
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
+ AST_type_slots
};
-static PyObject *
-make_type(astmodulestate *state, const char *type, PyObject* base,
- const char* const* fields, int num_fields, const char *doc)
+static PyObject *
+make_type(astmodulestate *state, const char *type, PyObject* base,
+ const char* const* fields, int num_fields, const char *doc)
{
PyObject *fnames, *result;
int i;
fnames = PyTuple_New(num_fields);
if (!fnames) return NULL;
for (i = 0; i < num_fields; i++) {
- PyObject *field = PyUnicode_InternFromString(fields[i]);
+ PyObject *field = PyUnicode_InternFromString(fields[i]);
if (!field) {
Py_DECREF(fnames);
return NULL;
}
PyTuple_SET_ITEM(fnames, i, field);
}
- result = PyObject_CallFunction((PyObject*)&PyType_Type, "s(O){OOOOOs}",
+ result = PyObject_CallFunction((PyObject*)&PyType_Type, "s(O){OOOOOs}",
type, base,
- state->_fields, fnames,
- state->__module__,
- state->ast,
- state->__doc__, doc);
+ state->_fields, fnames,
+ state->__module__,
+ state->ast,
+ state->__doc__, doc);
Py_DECREF(fnames);
- return result;
+ return result;
}
-static int
-add_attributes(astmodulestate *state, PyObject *type, const char * const *attrs, int num_fields)
+static int
+add_attributes(astmodulestate *state, PyObject *type, const char * const *attrs, int num_fields)
{
int i, result;
PyObject *s, *l = PyTuple_New(num_fields);
if (!l)
return 0;
for (i = 0; i < num_fields; i++) {
- s = PyUnicode_InternFromString(attrs[i]);
+ s = PyUnicode_InternFromString(attrs[i]);
if (!s) {
Py_DECREF(l);
return 0;
}
PyTuple_SET_ITEM(l, i, s);
}
- result = PyObject_SetAttr(type, state->_attributes, l) >= 0;
+ result = PyObject_SetAttr(type, state->_attributes, l) >= 0;
Py_DECREF(l);
return result;
}
/* Conversion AST -> Python */
-static PyObject* ast2obj_list(astmodulestate *state, asdl_seq *seq, PyObject* (*func)(astmodulestate *state, void*))
+static PyObject* ast2obj_list(astmodulestate *state, asdl_seq *seq, PyObject* (*func)(astmodulestate *state, void*))
{
Py_ssize_t i, n = asdl_seq_LEN(seq);
PyObject *result = PyList_New(n);
@@ -1097,7 +1097,7 @@ static PyObject* ast2obj_list(astmodulestate *state, asdl_seq *seq, PyObject* (*
if (!result)
return NULL;
for (i = 0; i < n; i++) {
- value = func(state, asdl_seq_GET(seq, i));
+ value = func(state, asdl_seq_GET(seq, i));
if (!value) {
Py_DECREF(result);
return NULL;
@@ -1107,7 +1107,7 @@ static PyObject* ast2obj_list(astmodulestate *state, asdl_seq *seq, PyObject* (*
return result;
}
-static PyObject* ast2obj_object(astmodulestate *Py_UNUSED(state), void *o)
+static PyObject* ast2obj_object(astmodulestate *Py_UNUSED(state), void *o)
{
if (!o)
o = Py_None;
@@ -1118,14 +1118,14 @@ static PyObject* ast2obj_object(astmodulestate *Py_UNUSED(state), void *o)
#define ast2obj_identifier ast2obj_object
#define ast2obj_string ast2obj_object
-static PyObject* ast2obj_int(astmodulestate *Py_UNUSED(state), long b)
+static PyObject* ast2obj_int(astmodulestate *Py_UNUSED(state), long b)
{
return PyLong_FromLong(b);
}
/* Conversion Python -> AST */
-static int obj2ast_object(astmodulestate *Py_UNUSED(state), PyObject* obj, PyObject** out, PyArena* arena)
+static int obj2ast_object(astmodulestate *Py_UNUSED(state), PyObject* obj, PyObject** out, PyArena* arena)
{
if (obj == Py_None)
obj = NULL;
@@ -1140,36 +1140,36 @@ static int obj2ast_object(astmodulestate *Py_UNUSED(state), PyObject* obj, PyObj
return 0;
}
-static int obj2ast_constant(astmodulestate *Py_UNUSED(state), PyObject* obj, PyObject** out, PyArena* arena)
+static int obj2ast_constant(astmodulestate *Py_UNUSED(state), PyObject* obj, PyObject** out, PyArena* arena)
{
- if (PyArena_AddPyObject(arena, obj) < 0) {
- *out = NULL;
- return -1;
+ if (PyArena_AddPyObject(arena, obj) < 0) {
+ *out = NULL;
+ return -1;
}
- Py_INCREF(obj);
+ Py_INCREF(obj);
*out = obj;
return 0;
}
-static int obj2ast_identifier(astmodulestate *state, PyObject* obj, PyObject** out, PyArena* arena)
+static int obj2ast_identifier(astmodulestate *state, PyObject* obj, PyObject** out, PyArena* arena)
{
if (!PyUnicode_CheckExact(obj) && obj != Py_None) {
PyErr_SetString(PyExc_TypeError, "AST identifier must be of type str");
return 1;
}
- return obj2ast_object(state, obj, out, arena);
+ return obj2ast_object(state, obj, out, arena);
}
-static int obj2ast_string(astmodulestate *state, PyObject* obj, PyObject** out, PyArena* arena)
+static int obj2ast_string(astmodulestate *state, PyObject* obj, PyObject** out, PyArena* arena)
{
if (!PyUnicode_CheckExact(obj) && !PyBytes_CheckExact(obj)) {
PyErr_SetString(PyExc_TypeError, "AST string must be of type str");
return 1;
}
- return obj2ast_object(state, obj, out, arena);
+ return obj2ast_object(state, obj, out, arena);
}
-static int obj2ast_int(astmodulestate* Py_UNUSED(state), PyObject* obj, int* out, PyArena* arena)
+static int obj2ast_int(astmodulestate* Py_UNUSED(state), PyObject* obj, int* out, PyArena* arena)
{
int i;
if (!PyLong_Check(obj)) {
@@ -1184,13 +1184,13 @@ static int obj2ast_int(astmodulestate* Py_UNUSED(state), PyObject* obj, int* out
return 0;
}
-static int add_ast_fields(astmodulestate *state)
+static int add_ast_fields(astmodulestate *state)
{
- PyObject *empty_tuple;
+ PyObject *empty_tuple;
empty_tuple = PyTuple_New(0);
if (!empty_tuple ||
- PyObject_SetAttrString(state->AST_type, "_fields", empty_tuple) < 0 ||
- PyObject_SetAttrString(state->AST_type, "_attributes", empty_tuple) < 0) {
+ PyObject_SetAttrString(state->AST_type, "_fields", empty_tuple) < 0 ||
+ PyObject_SetAttrString(state->AST_type, "_attributes", empty_tuple) < 0) {
Py_XDECREF(empty_tuple);
return -1;
}
@@ -1199,720 +1199,720 @@ static int add_ast_fields(astmodulestate *state)
}
-static int init_types(astmodulestate *state)
+static int init_types(astmodulestate *state)
{
- if (state->initialized) return 1;
- if (init_identifiers(state) < 0) return 0;
- state->AST_type = PyType_FromSpec(&AST_type_spec);
- if (!state->AST_type) return 0;
- if (add_ast_fields(state) < 0) return 0;
- state->mod_type = make_type(state, "mod", state->AST_type, NULL, 0,
- "mod = Module(stmt* body, type_ignore* type_ignores)\n"
- " | Interactive(stmt* body)\n"
- " | Expression(expr body)\n"
- " | FunctionType(expr* argtypes, expr returns)");
- if (!state->mod_type) return 0;
- if (!add_attributes(state, state->mod_type, NULL, 0)) return 0;
- state->Module_type = make_type(state, "Module", state->mod_type,
- Module_fields, 2,
- "Module(stmt* body, type_ignore* type_ignores)");
- if (!state->Module_type) return 0;
- state->Interactive_type = make_type(state, "Interactive", state->mod_type,
- Interactive_fields, 1,
- "Interactive(stmt* body)");
- if (!state->Interactive_type) return 0;
- state->Expression_type = make_type(state, "Expression", state->mod_type,
- Expression_fields, 1,
- "Expression(expr body)");
- if (!state->Expression_type) return 0;
- state->FunctionType_type = make_type(state, "FunctionType",
- state->mod_type, FunctionType_fields,
- 2,
- "FunctionType(expr* argtypes, expr returns)");
- if (!state->FunctionType_type) return 0;
- state->stmt_type = make_type(state, "stmt", state->AST_type, NULL, 0,
- "stmt = FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)\n"
- " | AsyncFunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)\n"
- " | ClassDef(identifier name, expr* bases, keyword* keywords, stmt* body, expr* decorator_list)\n"
- " | Return(expr? value)\n"
- " | Delete(expr* targets)\n"
- " | Assign(expr* targets, expr value, string? type_comment)\n"
- " | AugAssign(expr target, operator op, expr value)\n"
- " | AnnAssign(expr target, expr annotation, expr? value, int simple)\n"
- " | For(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)\n"
- " | AsyncFor(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)\n"
- " | While(expr test, stmt* body, stmt* orelse)\n"
- " | If(expr test, stmt* body, stmt* orelse)\n"
- " | With(withitem* items, stmt* body, string? type_comment)\n"
- " | AsyncWith(withitem* items, stmt* body, string? type_comment)\n"
- " | Raise(expr? exc, expr? cause)\n"
- " | Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)\n"
- " | Assert(expr test, expr? msg)\n"
- " | Import(alias* names)\n"
- " | ImportFrom(identifier? module, alias* names, int? level)\n"
- " | Global(identifier* names)\n"
- " | Nonlocal(identifier* names)\n"
- " | Expr(expr value)\n"
- " | Pass\n"
- " | Break\n"
- " | Continue");
- if (!state->stmt_type) return 0;
- if (!add_attributes(state, state->stmt_type, stmt_attributes, 4)) return 0;
- if (PyObject_SetAttr(state->stmt_type, state->end_lineno, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->stmt_type, state->end_col_offset, Py_None) ==
- -1)
- return 0;
- state->FunctionDef_type = make_type(state, "FunctionDef", state->stmt_type,
- FunctionDef_fields, 6,
- "FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)");
- if (!state->FunctionDef_type) return 0;
- if (PyObject_SetAttr(state->FunctionDef_type, state->returns, Py_None) ==
- -1)
- return 0;
- if (PyObject_SetAttr(state->FunctionDef_type, state->type_comment, Py_None)
- == -1)
- return 0;
- state->AsyncFunctionDef_type = make_type(state, "AsyncFunctionDef",
- state->stmt_type,
- AsyncFunctionDef_fields, 6,
- "AsyncFunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)");
- if (!state->AsyncFunctionDef_type) return 0;
- if (PyObject_SetAttr(state->AsyncFunctionDef_type, state->returns, Py_None)
- == -1)
- return 0;
- if (PyObject_SetAttr(state->AsyncFunctionDef_type, state->type_comment,
- Py_None) == -1)
- return 0;
- state->ClassDef_type = make_type(state, "ClassDef", state->stmt_type,
- ClassDef_fields, 5,
- "ClassDef(identifier name, expr* bases, keyword* keywords, stmt* body, expr* decorator_list)");
- if (!state->ClassDef_type) return 0;
- state->Return_type = make_type(state, "Return", state->stmt_type,
- Return_fields, 1,
- "Return(expr? value)");
- if (!state->Return_type) return 0;
- if (PyObject_SetAttr(state->Return_type, state->value, Py_None) == -1)
- return 0;
- state->Delete_type = make_type(state, "Delete", state->stmt_type,
- Delete_fields, 1,
- "Delete(expr* targets)");
- if (!state->Delete_type) return 0;
- state->Assign_type = make_type(state, "Assign", state->stmt_type,
- Assign_fields, 3,
- "Assign(expr* targets, expr value, string? type_comment)");
- if (!state->Assign_type) return 0;
- if (PyObject_SetAttr(state->Assign_type, state->type_comment, Py_None) ==
- -1)
- return 0;
- state->AugAssign_type = make_type(state, "AugAssign", state->stmt_type,
- AugAssign_fields, 3,
- "AugAssign(expr target, operator op, expr value)");
- if (!state->AugAssign_type) return 0;
- state->AnnAssign_type = make_type(state, "AnnAssign", state->stmt_type,
- AnnAssign_fields, 4,
- "AnnAssign(expr target, expr annotation, expr? value, int simple)");
- if (!state->AnnAssign_type) return 0;
- if (PyObject_SetAttr(state->AnnAssign_type, state->value, Py_None) == -1)
- return 0;
- state->For_type = make_type(state, "For", state->stmt_type, For_fields, 5,
- "For(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)");
- if (!state->For_type) return 0;
- if (PyObject_SetAttr(state->For_type, state->type_comment, Py_None) == -1)
- return 0;
- state->AsyncFor_type = make_type(state, "AsyncFor", state->stmt_type,
- AsyncFor_fields, 5,
- "AsyncFor(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)");
- if (!state->AsyncFor_type) return 0;
- if (PyObject_SetAttr(state->AsyncFor_type, state->type_comment, Py_None) ==
- -1)
- return 0;
- state->While_type = make_type(state, "While", state->stmt_type,
- While_fields, 3,
- "While(expr test, stmt* body, stmt* orelse)");
- if (!state->While_type) return 0;
- state->If_type = make_type(state, "If", state->stmt_type, If_fields, 3,
- "If(expr test, stmt* body, stmt* orelse)");
- if (!state->If_type) return 0;
- state->With_type = make_type(state, "With", state->stmt_type, With_fields,
- 3,
- "With(withitem* items, stmt* body, string? type_comment)");
- if (!state->With_type) return 0;
- if (PyObject_SetAttr(state->With_type, state->type_comment, Py_None) == -1)
- return 0;
- state->AsyncWith_type = make_type(state, "AsyncWith", state->stmt_type,
- AsyncWith_fields, 3,
- "AsyncWith(withitem* items, stmt* body, string? type_comment)");
- if (!state->AsyncWith_type) return 0;
- if (PyObject_SetAttr(state->AsyncWith_type, state->type_comment, Py_None)
- == -1)
- return 0;
- state->Raise_type = make_type(state, "Raise", state->stmt_type,
- Raise_fields, 2,
- "Raise(expr? exc, expr? cause)");
- if (!state->Raise_type) return 0;
- if (PyObject_SetAttr(state->Raise_type, state->exc, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->Raise_type, state->cause, Py_None) == -1)
- return 0;
- state->Try_type = make_type(state, "Try", state->stmt_type, Try_fields, 4,
- "Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)");
- if (!state->Try_type) return 0;
- state->Assert_type = make_type(state, "Assert", state->stmt_type,
- Assert_fields, 2,
- "Assert(expr test, expr? msg)");
- if (!state->Assert_type) return 0;
- if (PyObject_SetAttr(state->Assert_type, state->msg, Py_None) == -1)
- return 0;
- state->Import_type = make_type(state, "Import", state->stmt_type,
- Import_fields, 1,
- "Import(alias* names)");
- if (!state->Import_type) return 0;
- state->ImportFrom_type = make_type(state, "ImportFrom", state->stmt_type,
- ImportFrom_fields, 3,
- "ImportFrom(identifier? module, alias* names, int? level)");
- if (!state->ImportFrom_type) return 0;
- if (PyObject_SetAttr(state->ImportFrom_type, state->module, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->ImportFrom_type, state->level, Py_None) == -1)
- return 0;
- state->Global_type = make_type(state, "Global", state->stmt_type,
- Global_fields, 1,
- "Global(identifier* names)");
- if (!state->Global_type) return 0;
- state->Nonlocal_type = make_type(state, "Nonlocal", state->stmt_type,
- Nonlocal_fields, 1,
- "Nonlocal(identifier* names)");
- if (!state->Nonlocal_type) return 0;
- state->Expr_type = make_type(state, "Expr", state->stmt_type, Expr_fields,
- 1,
- "Expr(expr value)");
- if (!state->Expr_type) return 0;
- state->Pass_type = make_type(state, "Pass", state->stmt_type, NULL, 0,
- "Pass");
- if (!state->Pass_type) return 0;
- state->Break_type = make_type(state, "Break", state->stmt_type, NULL, 0,
- "Break");
- if (!state->Break_type) return 0;
- state->Continue_type = make_type(state, "Continue", state->stmt_type, NULL,
- 0,
- "Continue");
- if (!state->Continue_type) return 0;
- state->expr_type = make_type(state, "expr", state->AST_type, NULL, 0,
- "expr = BoolOp(boolop op, expr* values)\n"
- " | NamedExpr(expr target, expr value)\n"
- " | BinOp(expr left, operator op, expr right)\n"
- " | UnaryOp(unaryop op, expr operand)\n"
- " | Lambda(arguments args, expr body)\n"
- " | IfExp(expr test, expr body, expr orelse)\n"
- " | Dict(expr* keys, expr* values)\n"
- " | Set(expr* elts)\n"
- " | ListComp(expr elt, comprehension* generators)\n"
- " | SetComp(expr elt, comprehension* generators)\n"
- " | DictComp(expr key, expr value, comprehension* generators)\n"
- " | GeneratorExp(expr elt, comprehension* generators)\n"
- " | Await(expr value)\n"
- " | Yield(expr? value)\n"
- " | YieldFrom(expr value)\n"
- " | Compare(expr left, cmpop* ops, expr* comparators)\n"
- " | Call(expr func, expr* args, keyword* keywords)\n"
- " | FormattedValue(expr value, int? conversion, expr? format_spec)\n"
- " | JoinedStr(expr* values)\n"
- " | Constant(constant value, string? kind)\n"
- " | Attribute(expr value, identifier attr, expr_context ctx)\n"
- " | Subscript(expr value, expr slice, expr_context ctx)\n"
- " | Starred(expr value, expr_context ctx)\n"
- " | Name(identifier id, expr_context ctx)\n"
- " | List(expr* elts, expr_context ctx)\n"
- " | Tuple(expr* elts, expr_context ctx)\n"
- " | Slice(expr? lower, expr? upper, expr? step)");
- if (!state->expr_type) return 0;
- if (!add_attributes(state, state->expr_type, expr_attributes, 4)) return 0;
- if (PyObject_SetAttr(state->expr_type, state->end_lineno, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->expr_type, state->end_col_offset, Py_None) ==
- -1)
- return 0;
- state->BoolOp_type = make_type(state, "BoolOp", state->expr_type,
- BoolOp_fields, 2,
- "BoolOp(boolop op, expr* values)");
- if (!state->BoolOp_type) return 0;
- state->NamedExpr_type = make_type(state, "NamedExpr", state->expr_type,
- NamedExpr_fields, 2,
- "NamedExpr(expr target, expr value)");
- if (!state->NamedExpr_type) return 0;
- state->BinOp_type = make_type(state, "BinOp", state->expr_type,
- BinOp_fields, 3,
- "BinOp(expr left, operator op, expr right)");
- if (!state->BinOp_type) return 0;
- state->UnaryOp_type = make_type(state, "UnaryOp", state->expr_type,
- UnaryOp_fields, 2,
- "UnaryOp(unaryop op, expr operand)");
- if (!state->UnaryOp_type) return 0;
- state->Lambda_type = make_type(state, "Lambda", state->expr_type,
- Lambda_fields, 2,
- "Lambda(arguments args, expr body)");
- if (!state->Lambda_type) return 0;
- state->IfExp_type = make_type(state, "IfExp", state->expr_type,
- IfExp_fields, 3,
- "IfExp(expr test, expr body, expr orelse)");
- if (!state->IfExp_type) return 0;
- state->Dict_type = make_type(state, "Dict", state->expr_type, Dict_fields,
- 2,
- "Dict(expr* keys, expr* values)");
- if (!state->Dict_type) return 0;
- state->Set_type = make_type(state, "Set", state->expr_type, Set_fields, 1,
- "Set(expr* elts)");
- if (!state->Set_type) return 0;
- state->ListComp_type = make_type(state, "ListComp", state->expr_type,
- ListComp_fields, 2,
- "ListComp(expr elt, comprehension* generators)");
- if (!state->ListComp_type) return 0;
- state->SetComp_type = make_type(state, "SetComp", state->expr_type,
- SetComp_fields, 2,
- "SetComp(expr elt, comprehension* generators)");
- if (!state->SetComp_type) return 0;
- state->DictComp_type = make_type(state, "DictComp", state->expr_type,
- DictComp_fields, 3,
- "DictComp(expr key, expr value, comprehension* generators)");
- if (!state->DictComp_type) return 0;
- state->GeneratorExp_type = make_type(state, "GeneratorExp",
- state->expr_type, GeneratorExp_fields,
- 2,
- "GeneratorExp(expr elt, comprehension* generators)");
- if (!state->GeneratorExp_type) return 0;
- state->Await_type = make_type(state, "Await", state->expr_type,
- Await_fields, 1,
- "Await(expr value)");
- if (!state->Await_type) return 0;
- state->Yield_type = make_type(state, "Yield", state->expr_type,
- Yield_fields, 1,
- "Yield(expr? value)");
- if (!state->Yield_type) return 0;
- if (PyObject_SetAttr(state->Yield_type, state->value, Py_None) == -1)
- return 0;
- state->YieldFrom_type = make_type(state, "YieldFrom", state->expr_type,
- YieldFrom_fields, 1,
- "YieldFrom(expr value)");
- if (!state->YieldFrom_type) return 0;
- state->Compare_type = make_type(state, "Compare", state->expr_type,
- Compare_fields, 3,
- "Compare(expr left, cmpop* ops, expr* comparators)");
- if (!state->Compare_type) return 0;
- state->Call_type = make_type(state, "Call", state->expr_type, Call_fields,
- 3,
- "Call(expr func, expr* args, keyword* keywords)");
- if (!state->Call_type) return 0;
- state->FormattedValue_type = make_type(state, "FormattedValue",
- state->expr_type,
- FormattedValue_fields, 3,
- "FormattedValue(expr value, int? conversion, expr? format_spec)");
- if (!state->FormattedValue_type) return 0;
- if (PyObject_SetAttr(state->FormattedValue_type, state->conversion,
- Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->FormattedValue_type, state->format_spec,
- Py_None) == -1)
- return 0;
- state->JoinedStr_type = make_type(state, "JoinedStr", state->expr_type,
- JoinedStr_fields, 1,
- "JoinedStr(expr* values)");
- if (!state->JoinedStr_type) return 0;
- state->Constant_type = make_type(state, "Constant", state->expr_type,
- Constant_fields, 2,
- "Constant(constant value, string? kind)");
- if (!state->Constant_type) return 0;
- if (PyObject_SetAttr(state->Constant_type, state->kind, Py_None) == -1)
- return 0;
- state->Attribute_type = make_type(state, "Attribute", state->expr_type,
- Attribute_fields, 3,
- "Attribute(expr value, identifier attr, expr_context ctx)");
- if (!state->Attribute_type) return 0;
- state->Subscript_type = make_type(state, "Subscript", state->expr_type,
- Subscript_fields, 3,
- "Subscript(expr value, expr slice, expr_context ctx)");
- if (!state->Subscript_type) return 0;
- state->Starred_type = make_type(state, "Starred", state->expr_type,
- Starred_fields, 2,
- "Starred(expr value, expr_context ctx)");
- if (!state->Starred_type) return 0;
- state->Name_type = make_type(state, "Name", state->expr_type, Name_fields,
- 2,
- "Name(identifier id, expr_context ctx)");
- if (!state->Name_type) return 0;
- state->List_type = make_type(state, "List", state->expr_type, List_fields,
- 2,
- "List(expr* elts, expr_context ctx)");
- if (!state->List_type) return 0;
- state->Tuple_type = make_type(state, "Tuple", state->expr_type,
- Tuple_fields, 2,
- "Tuple(expr* elts, expr_context ctx)");
- if (!state->Tuple_type) return 0;
- state->Slice_type = make_type(state, "Slice", state->expr_type,
- Slice_fields, 3,
- "Slice(expr? lower, expr? upper, expr? step)");
- if (!state->Slice_type) return 0;
- if (PyObject_SetAttr(state->Slice_type, state->lower, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->Slice_type, state->upper, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->Slice_type, state->step, Py_None) == -1)
- return 0;
- state->expr_context_type = make_type(state, "expr_context",
- state->AST_type, NULL, 0,
- "expr_context = Load | Store | Del");
- if (!state->expr_context_type) return 0;
- if (!add_attributes(state, state->expr_context_type, NULL, 0)) return 0;
- state->Load_type = make_type(state, "Load", state->expr_context_type, NULL,
- 0,
- "Load");
- if (!state->Load_type) return 0;
- state->Load_singleton = PyType_GenericNew((PyTypeObject *)state->Load_type,
- NULL, NULL);
- if (!state->Load_singleton) return 0;
- state->Store_type = make_type(state, "Store", state->expr_context_type,
- NULL, 0,
- "Store");
- if (!state->Store_type) return 0;
- state->Store_singleton = PyType_GenericNew((PyTypeObject
- *)state->Store_type, NULL, NULL);
- if (!state->Store_singleton) return 0;
- state->Del_type = make_type(state, "Del", state->expr_context_type, NULL, 0,
- "Del");
- if (!state->Del_type) return 0;
- state->Del_singleton = PyType_GenericNew((PyTypeObject *)state->Del_type,
- NULL, NULL);
- if (!state->Del_singleton) return 0;
- state->boolop_type = make_type(state, "boolop", state->AST_type, NULL, 0,
- "boolop = And | Or");
- if (!state->boolop_type) return 0;
- if (!add_attributes(state, state->boolop_type, NULL, 0)) return 0;
- state->And_type = make_type(state, "And", state->boolop_type, NULL, 0,
- "And");
- if (!state->And_type) return 0;
- state->And_singleton = PyType_GenericNew((PyTypeObject *)state->And_type,
- NULL, NULL);
- if (!state->And_singleton) return 0;
- state->Or_type = make_type(state, "Or", state->boolop_type, NULL, 0,
- "Or");
- if (!state->Or_type) return 0;
- state->Or_singleton = PyType_GenericNew((PyTypeObject *)state->Or_type,
- NULL, NULL);
- if (!state->Or_singleton) return 0;
- state->operator_type = make_type(state, "operator", state->AST_type, NULL,
- 0,
- "operator = Add | Sub | Mult | MatMult | Div | Mod | Pow | LShift | RShift | BitOr | BitXor | BitAnd | FloorDiv");
- if (!state->operator_type) return 0;
- if (!add_attributes(state, state->operator_type, NULL, 0)) return 0;
- state->Add_type = make_type(state, "Add", state->operator_type, NULL, 0,
- "Add");
- if (!state->Add_type) return 0;
- state->Add_singleton = PyType_GenericNew((PyTypeObject *)state->Add_type,
- NULL, NULL);
- if (!state->Add_singleton) return 0;
- state->Sub_type = make_type(state, "Sub", state->operator_type, NULL, 0,
- "Sub");
- if (!state->Sub_type) return 0;
- state->Sub_singleton = PyType_GenericNew((PyTypeObject *)state->Sub_type,
- NULL, NULL);
- if (!state->Sub_singleton) return 0;
- state->Mult_type = make_type(state, "Mult", state->operator_type, NULL, 0,
- "Mult");
- if (!state->Mult_type) return 0;
- state->Mult_singleton = PyType_GenericNew((PyTypeObject *)state->Mult_type,
- NULL, NULL);
- if (!state->Mult_singleton) return 0;
- state->MatMult_type = make_type(state, "MatMult", state->operator_type,
- NULL, 0,
- "MatMult");
- if (!state->MatMult_type) return 0;
- state->MatMult_singleton = PyType_GenericNew((PyTypeObject
- *)state->MatMult_type, NULL,
- NULL);
- if (!state->MatMult_singleton) return 0;
- state->Div_type = make_type(state, "Div", state->operator_type, NULL, 0,
- "Div");
- if (!state->Div_type) return 0;
- state->Div_singleton = PyType_GenericNew((PyTypeObject *)state->Div_type,
- NULL, NULL);
- if (!state->Div_singleton) return 0;
- state->Mod_type = make_type(state, "Mod", state->operator_type, NULL, 0,
- "Mod");
- if (!state->Mod_type) return 0;
- state->Mod_singleton = PyType_GenericNew((PyTypeObject *)state->Mod_type,
- NULL, NULL);
- if (!state->Mod_singleton) return 0;
- state->Pow_type = make_type(state, "Pow", state->operator_type, NULL, 0,
- "Pow");
- if (!state->Pow_type) return 0;
- state->Pow_singleton = PyType_GenericNew((PyTypeObject *)state->Pow_type,
- NULL, NULL);
- if (!state->Pow_singleton) return 0;
- state->LShift_type = make_type(state, "LShift", state->operator_type, NULL,
- 0,
- "LShift");
- if (!state->LShift_type) return 0;
- state->LShift_singleton = PyType_GenericNew((PyTypeObject
- *)state->LShift_type, NULL,
- NULL);
- if (!state->LShift_singleton) return 0;
- state->RShift_type = make_type(state, "RShift", state->operator_type, NULL,
- 0,
- "RShift");
- if (!state->RShift_type) return 0;
- state->RShift_singleton = PyType_GenericNew((PyTypeObject
- *)state->RShift_type, NULL,
- NULL);
- if (!state->RShift_singleton) return 0;
- state->BitOr_type = make_type(state, "BitOr", state->operator_type, NULL, 0,
- "BitOr");
- if (!state->BitOr_type) return 0;
- state->BitOr_singleton = PyType_GenericNew((PyTypeObject
- *)state->BitOr_type, NULL, NULL);
- if (!state->BitOr_singleton) return 0;
- state->BitXor_type = make_type(state, "BitXor", state->operator_type, NULL,
- 0,
- "BitXor");
- if (!state->BitXor_type) return 0;
- state->BitXor_singleton = PyType_GenericNew((PyTypeObject
- *)state->BitXor_type, NULL,
- NULL);
- if (!state->BitXor_singleton) return 0;
- state->BitAnd_type = make_type(state, "BitAnd", state->operator_type, NULL,
- 0,
- "BitAnd");
- if (!state->BitAnd_type) return 0;
- state->BitAnd_singleton = PyType_GenericNew((PyTypeObject
- *)state->BitAnd_type, NULL,
- NULL);
- if (!state->BitAnd_singleton) return 0;
- state->FloorDiv_type = make_type(state, "FloorDiv", state->operator_type,
- NULL, 0,
- "FloorDiv");
- if (!state->FloorDiv_type) return 0;
- state->FloorDiv_singleton = PyType_GenericNew((PyTypeObject
- *)state->FloorDiv_type, NULL,
- NULL);
- if (!state->FloorDiv_singleton) return 0;
- state->unaryop_type = make_type(state, "unaryop", state->AST_type, NULL, 0,
- "unaryop = Invert | Not | UAdd | USub");
- if (!state->unaryop_type) return 0;
- if (!add_attributes(state, state->unaryop_type, NULL, 0)) return 0;
- state->Invert_type = make_type(state, "Invert", state->unaryop_type, NULL,
- 0,
- "Invert");
- if (!state->Invert_type) return 0;
- state->Invert_singleton = PyType_GenericNew((PyTypeObject
- *)state->Invert_type, NULL,
- NULL);
- if (!state->Invert_singleton) return 0;
- state->Not_type = make_type(state, "Not", state->unaryop_type, NULL, 0,
- "Not");
- if (!state->Not_type) return 0;
- state->Not_singleton = PyType_GenericNew((PyTypeObject *)state->Not_type,
- NULL, NULL);
- if (!state->Not_singleton) return 0;
- state->UAdd_type = make_type(state, "UAdd", state->unaryop_type, NULL, 0,
- "UAdd");
- if (!state->UAdd_type) return 0;
- state->UAdd_singleton = PyType_GenericNew((PyTypeObject *)state->UAdd_type,
- NULL, NULL);
- if (!state->UAdd_singleton) return 0;
- state->USub_type = make_type(state, "USub", state->unaryop_type, NULL, 0,
- "USub");
- if (!state->USub_type) return 0;
- state->USub_singleton = PyType_GenericNew((PyTypeObject *)state->USub_type,
- NULL, NULL);
- if (!state->USub_singleton) return 0;
- state->cmpop_type = make_type(state, "cmpop", state->AST_type, NULL, 0,
- "cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn");
- if (!state->cmpop_type) return 0;
- if (!add_attributes(state, state->cmpop_type, NULL, 0)) return 0;
- state->Eq_type = make_type(state, "Eq", state->cmpop_type, NULL, 0,
- "Eq");
- if (!state->Eq_type) return 0;
- state->Eq_singleton = PyType_GenericNew((PyTypeObject *)state->Eq_type,
- NULL, NULL);
- if (!state->Eq_singleton) return 0;
- state->NotEq_type = make_type(state, "NotEq", state->cmpop_type, NULL, 0,
- "NotEq");
- if (!state->NotEq_type) return 0;
- state->NotEq_singleton = PyType_GenericNew((PyTypeObject
- *)state->NotEq_type, NULL, NULL);
- if (!state->NotEq_singleton) return 0;
- state->Lt_type = make_type(state, "Lt", state->cmpop_type, NULL, 0,
- "Lt");
- if (!state->Lt_type) return 0;
- state->Lt_singleton = PyType_GenericNew((PyTypeObject *)state->Lt_type,
- NULL, NULL);
- if (!state->Lt_singleton) return 0;
- state->LtE_type = make_type(state, "LtE", state->cmpop_type, NULL, 0,
- "LtE");
- if (!state->LtE_type) return 0;
- state->LtE_singleton = PyType_GenericNew((PyTypeObject *)state->LtE_type,
- NULL, NULL);
- if (!state->LtE_singleton) return 0;
- state->Gt_type = make_type(state, "Gt", state->cmpop_type, NULL, 0,
- "Gt");
- if (!state->Gt_type) return 0;
- state->Gt_singleton = PyType_GenericNew((PyTypeObject *)state->Gt_type,
- NULL, NULL);
- if (!state->Gt_singleton) return 0;
- state->GtE_type = make_type(state, "GtE", state->cmpop_type, NULL, 0,
- "GtE");
- if (!state->GtE_type) return 0;
- state->GtE_singleton = PyType_GenericNew((PyTypeObject *)state->GtE_type,
- NULL, NULL);
- if (!state->GtE_singleton) return 0;
- state->Is_type = make_type(state, "Is", state->cmpop_type, NULL, 0,
- "Is");
- if (!state->Is_type) return 0;
- state->Is_singleton = PyType_GenericNew((PyTypeObject *)state->Is_type,
- NULL, NULL);
- if (!state->Is_singleton) return 0;
- state->IsNot_type = make_type(state, "IsNot", state->cmpop_type, NULL, 0,
- "IsNot");
- if (!state->IsNot_type) return 0;
- state->IsNot_singleton = PyType_GenericNew((PyTypeObject
- *)state->IsNot_type, NULL, NULL);
- if (!state->IsNot_singleton) return 0;
- state->In_type = make_type(state, "In", state->cmpop_type, NULL, 0,
- "In");
- if (!state->In_type) return 0;
- state->In_singleton = PyType_GenericNew((PyTypeObject *)state->In_type,
- NULL, NULL);
- if (!state->In_singleton) return 0;
- state->NotIn_type = make_type(state, "NotIn", state->cmpop_type, NULL, 0,
- "NotIn");
- if (!state->NotIn_type) return 0;
- state->NotIn_singleton = PyType_GenericNew((PyTypeObject
- *)state->NotIn_type, NULL, NULL);
- if (!state->NotIn_singleton) return 0;
- state->comprehension_type = make_type(state, "comprehension",
- state->AST_type,
- comprehension_fields, 4,
- "comprehension(expr target, expr iter, expr* ifs, int is_async)");
- if (!state->comprehension_type) return 0;
- if (!add_attributes(state, state->comprehension_type, NULL, 0)) return 0;
- state->excepthandler_type = make_type(state, "excepthandler",
- state->AST_type, NULL, 0,
- "excepthandler = ExceptHandler(expr? type, identifier? name, stmt* body)");
- if (!state->excepthandler_type) return 0;
- if (!add_attributes(state, state->excepthandler_type,
- excepthandler_attributes, 4)) return 0;
- if (PyObject_SetAttr(state->excepthandler_type, state->end_lineno, Py_None)
- == -1)
- return 0;
- if (PyObject_SetAttr(state->excepthandler_type, state->end_col_offset,
- Py_None) == -1)
- return 0;
- state->ExceptHandler_type = make_type(state, "ExceptHandler",
- state->excepthandler_type,
- ExceptHandler_fields, 3,
- "ExceptHandler(expr? type, identifier? name, stmt* body)");
- if (!state->ExceptHandler_type) return 0;
- if (PyObject_SetAttr(state->ExceptHandler_type, state->type, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->ExceptHandler_type, state->name, Py_None) == -1)
- return 0;
- state->arguments_type = make_type(state, "arguments", state->AST_type,
- arguments_fields, 7,
- "arguments(arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs, expr* kw_defaults, arg? kwarg, expr* defaults)");
- if (!state->arguments_type) return 0;
- if (!add_attributes(state, state->arguments_type, NULL, 0)) return 0;
- if (PyObject_SetAttr(state->arguments_type, state->vararg, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->arguments_type, state->kwarg, Py_None) == -1)
- return 0;
- state->arg_type = make_type(state, "arg", state->AST_type, arg_fields, 3,
- "arg(identifier arg, expr? annotation, string? type_comment)");
- if (!state->arg_type) return 0;
- if (!add_attributes(state, state->arg_type, arg_attributes, 4)) return 0;
- if (PyObject_SetAttr(state->arg_type, state->annotation, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->arg_type, state->type_comment, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->arg_type, state->end_lineno, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->arg_type, state->end_col_offset, Py_None) == -1)
- return 0;
- state->keyword_type = make_type(state, "keyword", state->AST_type,
- keyword_fields, 2,
- "keyword(identifier? arg, expr value)");
- if (!state->keyword_type) return 0;
- if (!add_attributes(state, state->keyword_type, keyword_attributes, 4))
- return 0;
- if (PyObject_SetAttr(state->keyword_type, state->arg, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->keyword_type, state->end_lineno, Py_None) == -1)
- return 0;
- if (PyObject_SetAttr(state->keyword_type, state->end_col_offset, Py_None)
- == -1)
- return 0;
- state->alias_type = make_type(state, "alias", state->AST_type,
- alias_fields, 2,
- "alias(identifier name, identifier? asname)");
- if (!state->alias_type) return 0;
- if (!add_attributes(state, state->alias_type, NULL, 0)) return 0;
- if (PyObject_SetAttr(state->alias_type, state->asname, Py_None) == -1)
- return 0;
- state->withitem_type = make_type(state, "withitem", state->AST_type,
- withitem_fields, 2,
- "withitem(expr context_expr, expr? optional_vars)");
- if (!state->withitem_type) return 0;
- if (!add_attributes(state, state->withitem_type, NULL, 0)) return 0;
- if (PyObject_SetAttr(state->withitem_type, state->optional_vars, Py_None)
- == -1)
- return 0;
- state->type_ignore_type = make_type(state, "type_ignore", state->AST_type,
- NULL, 0,
- "type_ignore = TypeIgnore(int lineno, string tag)");
- if (!state->type_ignore_type) return 0;
- if (!add_attributes(state, state->type_ignore_type, NULL, 0)) return 0;
- state->TypeIgnore_type = make_type(state, "TypeIgnore",
- state->type_ignore_type,
- TypeIgnore_fields, 2,
- "TypeIgnore(int lineno, string tag)");
- if (!state->TypeIgnore_type) return 0;
- state->initialized = 1;
+ if (state->initialized) return 1;
+ if (init_identifiers(state) < 0) return 0;
+ state->AST_type = PyType_FromSpec(&AST_type_spec);
+ if (!state->AST_type) return 0;
+ if (add_ast_fields(state) < 0) return 0;
+ state->mod_type = make_type(state, "mod", state->AST_type, NULL, 0,
+ "mod = Module(stmt* body, type_ignore* type_ignores)\n"
+ " | Interactive(stmt* body)\n"
+ " | Expression(expr body)\n"
+ " | FunctionType(expr* argtypes, expr returns)");
+ if (!state->mod_type) return 0;
+ if (!add_attributes(state, state->mod_type, NULL, 0)) return 0;
+ state->Module_type = make_type(state, "Module", state->mod_type,
+ Module_fields, 2,
+ "Module(stmt* body, type_ignore* type_ignores)");
+ if (!state->Module_type) return 0;
+ state->Interactive_type = make_type(state, "Interactive", state->mod_type,
+ Interactive_fields, 1,
+ "Interactive(stmt* body)");
+ if (!state->Interactive_type) return 0;
+ state->Expression_type = make_type(state, "Expression", state->mod_type,
+ Expression_fields, 1,
+ "Expression(expr body)");
+ if (!state->Expression_type) return 0;
+ state->FunctionType_type = make_type(state, "FunctionType",
+ state->mod_type, FunctionType_fields,
+ 2,
+ "FunctionType(expr* argtypes, expr returns)");
+ if (!state->FunctionType_type) return 0;
+ state->stmt_type = make_type(state, "stmt", state->AST_type, NULL, 0,
+ "stmt = FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)\n"
+ " | AsyncFunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)\n"
+ " | ClassDef(identifier name, expr* bases, keyword* keywords, stmt* body, expr* decorator_list)\n"
+ " | Return(expr? value)\n"
+ " | Delete(expr* targets)\n"
+ " | Assign(expr* targets, expr value, string? type_comment)\n"
+ " | AugAssign(expr target, operator op, expr value)\n"
+ " | AnnAssign(expr target, expr annotation, expr? value, int simple)\n"
+ " | For(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)\n"
+ " | AsyncFor(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)\n"
+ " | While(expr test, stmt* body, stmt* orelse)\n"
+ " | If(expr test, stmt* body, stmt* orelse)\n"
+ " | With(withitem* items, stmt* body, string? type_comment)\n"
+ " | AsyncWith(withitem* items, stmt* body, string? type_comment)\n"
+ " | Raise(expr? exc, expr? cause)\n"
+ " | Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)\n"
+ " | Assert(expr test, expr? msg)\n"
+ " | Import(alias* names)\n"
+ " | ImportFrom(identifier? module, alias* names, int? level)\n"
+ " | Global(identifier* names)\n"
+ " | Nonlocal(identifier* names)\n"
+ " | Expr(expr value)\n"
+ " | Pass\n"
+ " | Break\n"
+ " | Continue");
+ if (!state->stmt_type) return 0;
+ if (!add_attributes(state, state->stmt_type, stmt_attributes, 4)) return 0;
+ if (PyObject_SetAttr(state->stmt_type, state->end_lineno, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->stmt_type, state->end_col_offset, Py_None) ==
+ -1)
+ return 0;
+ state->FunctionDef_type = make_type(state, "FunctionDef", state->stmt_type,
+ FunctionDef_fields, 6,
+ "FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)");
+ if (!state->FunctionDef_type) return 0;
+ if (PyObject_SetAttr(state->FunctionDef_type, state->returns, Py_None) ==
+ -1)
+ return 0;
+ if (PyObject_SetAttr(state->FunctionDef_type, state->type_comment, Py_None)
+ == -1)
+ return 0;
+ state->AsyncFunctionDef_type = make_type(state, "AsyncFunctionDef",
+ state->stmt_type,
+ AsyncFunctionDef_fields, 6,
+ "AsyncFunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment)");
+ if (!state->AsyncFunctionDef_type) return 0;
+ if (PyObject_SetAttr(state->AsyncFunctionDef_type, state->returns, Py_None)
+ == -1)
+ return 0;
+ if (PyObject_SetAttr(state->AsyncFunctionDef_type, state->type_comment,
+ Py_None) == -1)
+ return 0;
+ state->ClassDef_type = make_type(state, "ClassDef", state->stmt_type,
+ ClassDef_fields, 5,
+ "ClassDef(identifier name, expr* bases, keyword* keywords, stmt* body, expr* decorator_list)");
+ if (!state->ClassDef_type) return 0;
+ state->Return_type = make_type(state, "Return", state->stmt_type,
+ Return_fields, 1,
+ "Return(expr? value)");
+ if (!state->Return_type) return 0;
+ if (PyObject_SetAttr(state->Return_type, state->value, Py_None) == -1)
+ return 0;
+ state->Delete_type = make_type(state, "Delete", state->stmt_type,
+ Delete_fields, 1,
+ "Delete(expr* targets)");
+ if (!state->Delete_type) return 0;
+ state->Assign_type = make_type(state, "Assign", state->stmt_type,
+ Assign_fields, 3,
+ "Assign(expr* targets, expr value, string? type_comment)");
+ if (!state->Assign_type) return 0;
+ if (PyObject_SetAttr(state->Assign_type, state->type_comment, Py_None) ==
+ -1)
+ return 0;
+ state->AugAssign_type = make_type(state, "AugAssign", state->stmt_type,
+ AugAssign_fields, 3,
+ "AugAssign(expr target, operator op, expr value)");
+ if (!state->AugAssign_type) return 0;
+ state->AnnAssign_type = make_type(state, "AnnAssign", state->stmt_type,
+ AnnAssign_fields, 4,
+ "AnnAssign(expr target, expr annotation, expr? value, int simple)");
+ if (!state->AnnAssign_type) return 0;
+ if (PyObject_SetAttr(state->AnnAssign_type, state->value, Py_None) == -1)
+ return 0;
+ state->For_type = make_type(state, "For", state->stmt_type, For_fields, 5,
+ "For(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)");
+ if (!state->For_type) return 0;
+ if (PyObject_SetAttr(state->For_type, state->type_comment, Py_None) == -1)
+ return 0;
+ state->AsyncFor_type = make_type(state, "AsyncFor", state->stmt_type,
+ AsyncFor_fields, 5,
+ "AsyncFor(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)");
+ if (!state->AsyncFor_type) return 0;
+ if (PyObject_SetAttr(state->AsyncFor_type, state->type_comment, Py_None) ==
+ -1)
+ return 0;
+ state->While_type = make_type(state, "While", state->stmt_type,
+ While_fields, 3,
+ "While(expr test, stmt* body, stmt* orelse)");
+ if (!state->While_type) return 0;
+ state->If_type = make_type(state, "If", state->stmt_type, If_fields, 3,
+ "If(expr test, stmt* body, stmt* orelse)");
+ if (!state->If_type) return 0;
+ state->With_type = make_type(state, "With", state->stmt_type, With_fields,
+ 3,
+ "With(withitem* items, stmt* body, string? type_comment)");
+ if (!state->With_type) return 0;
+ if (PyObject_SetAttr(state->With_type, state->type_comment, Py_None) == -1)
+ return 0;
+ state->AsyncWith_type = make_type(state, "AsyncWith", state->stmt_type,
+ AsyncWith_fields, 3,
+ "AsyncWith(withitem* items, stmt* body, string? type_comment)");
+ if (!state->AsyncWith_type) return 0;
+ if (PyObject_SetAttr(state->AsyncWith_type, state->type_comment, Py_None)
+ == -1)
+ return 0;
+ state->Raise_type = make_type(state, "Raise", state->stmt_type,
+ Raise_fields, 2,
+ "Raise(expr? exc, expr? cause)");
+ if (!state->Raise_type) return 0;
+ if (PyObject_SetAttr(state->Raise_type, state->exc, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->Raise_type, state->cause, Py_None) == -1)
+ return 0;
+ state->Try_type = make_type(state, "Try", state->stmt_type, Try_fields, 4,
+ "Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)");
+ if (!state->Try_type) return 0;
+ state->Assert_type = make_type(state, "Assert", state->stmt_type,
+ Assert_fields, 2,
+ "Assert(expr test, expr? msg)");
+ if (!state->Assert_type) return 0;
+ if (PyObject_SetAttr(state->Assert_type, state->msg, Py_None) == -1)
+ return 0;
+ state->Import_type = make_type(state, "Import", state->stmt_type,
+ Import_fields, 1,
+ "Import(alias* names)");
+ if (!state->Import_type) return 0;
+ state->ImportFrom_type = make_type(state, "ImportFrom", state->stmt_type,
+ ImportFrom_fields, 3,
+ "ImportFrom(identifier? module, alias* names, int? level)");
+ if (!state->ImportFrom_type) return 0;
+ if (PyObject_SetAttr(state->ImportFrom_type, state->module, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->ImportFrom_type, state->level, Py_None) == -1)
+ return 0;
+ state->Global_type = make_type(state, "Global", state->stmt_type,
+ Global_fields, 1,
+ "Global(identifier* names)");
+ if (!state->Global_type) return 0;
+ state->Nonlocal_type = make_type(state, "Nonlocal", state->stmt_type,
+ Nonlocal_fields, 1,
+ "Nonlocal(identifier* names)");
+ if (!state->Nonlocal_type) return 0;
+ state->Expr_type = make_type(state, "Expr", state->stmt_type, Expr_fields,
+ 1,
+ "Expr(expr value)");
+ if (!state->Expr_type) return 0;
+ state->Pass_type = make_type(state, "Pass", state->stmt_type, NULL, 0,
+ "Pass");
+ if (!state->Pass_type) return 0;
+ state->Break_type = make_type(state, "Break", state->stmt_type, NULL, 0,
+ "Break");
+ if (!state->Break_type) return 0;
+ state->Continue_type = make_type(state, "Continue", state->stmt_type, NULL,
+ 0,
+ "Continue");
+ if (!state->Continue_type) return 0;
+ state->expr_type = make_type(state, "expr", state->AST_type, NULL, 0,
+ "expr = BoolOp(boolop op, expr* values)\n"
+ " | NamedExpr(expr target, expr value)\n"
+ " | BinOp(expr left, operator op, expr right)\n"
+ " | UnaryOp(unaryop op, expr operand)\n"
+ " | Lambda(arguments args, expr body)\n"
+ " | IfExp(expr test, expr body, expr orelse)\n"
+ " | Dict(expr* keys, expr* values)\n"
+ " | Set(expr* elts)\n"
+ " | ListComp(expr elt, comprehension* generators)\n"
+ " | SetComp(expr elt, comprehension* generators)\n"
+ " | DictComp(expr key, expr value, comprehension* generators)\n"
+ " | GeneratorExp(expr elt, comprehension* generators)\n"
+ " | Await(expr value)\n"
+ " | Yield(expr? value)\n"
+ " | YieldFrom(expr value)\n"
+ " | Compare(expr left, cmpop* ops, expr* comparators)\n"
+ " | Call(expr func, expr* args, keyword* keywords)\n"
+ " | FormattedValue(expr value, int? conversion, expr? format_spec)\n"
+ " | JoinedStr(expr* values)\n"
+ " | Constant(constant value, string? kind)\n"
+ " | Attribute(expr value, identifier attr, expr_context ctx)\n"
+ " | Subscript(expr value, expr slice, expr_context ctx)\n"
+ " | Starred(expr value, expr_context ctx)\n"
+ " | Name(identifier id, expr_context ctx)\n"
+ " | List(expr* elts, expr_context ctx)\n"
+ " | Tuple(expr* elts, expr_context ctx)\n"
+ " | Slice(expr? lower, expr? upper, expr? step)");
+ if (!state->expr_type) return 0;
+ if (!add_attributes(state, state->expr_type, expr_attributes, 4)) return 0;
+ if (PyObject_SetAttr(state->expr_type, state->end_lineno, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->expr_type, state->end_col_offset, Py_None) ==
+ -1)
+ return 0;
+ state->BoolOp_type = make_type(state, "BoolOp", state->expr_type,
+ BoolOp_fields, 2,
+ "BoolOp(boolop op, expr* values)");
+ if (!state->BoolOp_type) return 0;
+ state->NamedExpr_type = make_type(state, "NamedExpr", state->expr_type,
+ NamedExpr_fields, 2,
+ "NamedExpr(expr target, expr value)");
+ if (!state->NamedExpr_type) return 0;
+ state->BinOp_type = make_type(state, "BinOp", state->expr_type,
+ BinOp_fields, 3,
+ "BinOp(expr left, operator op, expr right)");
+ if (!state->BinOp_type) return 0;
+ state->UnaryOp_type = make_type(state, "UnaryOp", state->expr_type,
+ UnaryOp_fields, 2,
+ "UnaryOp(unaryop op, expr operand)");
+ if (!state->UnaryOp_type) return 0;
+ state->Lambda_type = make_type(state, "Lambda", state->expr_type,
+ Lambda_fields, 2,
+ "Lambda(arguments args, expr body)");
+ if (!state->Lambda_type) return 0;
+ state->IfExp_type = make_type(state, "IfExp", state->expr_type,
+ IfExp_fields, 3,
+ "IfExp(expr test, expr body, expr orelse)");
+ if (!state->IfExp_type) return 0;
+ state->Dict_type = make_type(state, "Dict", state->expr_type, Dict_fields,
+ 2,
+ "Dict(expr* keys, expr* values)");
+ if (!state->Dict_type) return 0;
+ state->Set_type = make_type(state, "Set", state->expr_type, Set_fields, 1,
+ "Set(expr* elts)");
+ if (!state->Set_type) return 0;
+ state->ListComp_type = make_type(state, "ListComp", state->expr_type,
+ ListComp_fields, 2,
+ "ListComp(expr elt, comprehension* generators)");
+ if (!state->ListComp_type) return 0;
+ state->SetComp_type = make_type(state, "SetComp", state->expr_type,
+ SetComp_fields, 2,
+ "SetComp(expr elt, comprehension* generators)");
+ if (!state->SetComp_type) return 0;
+ state->DictComp_type = make_type(state, "DictComp", state->expr_type,
+ DictComp_fields, 3,
+ "DictComp(expr key, expr value, comprehension* generators)");
+ if (!state->DictComp_type) return 0;
+ state->GeneratorExp_type = make_type(state, "GeneratorExp",
+ state->expr_type, GeneratorExp_fields,
+ 2,
+ "GeneratorExp(expr elt, comprehension* generators)");
+ if (!state->GeneratorExp_type) return 0;
+ state->Await_type = make_type(state, "Await", state->expr_type,
+ Await_fields, 1,
+ "Await(expr value)");
+ if (!state->Await_type) return 0;
+ state->Yield_type = make_type(state, "Yield", state->expr_type,
+ Yield_fields, 1,
+ "Yield(expr? value)");
+ if (!state->Yield_type) return 0;
+ if (PyObject_SetAttr(state->Yield_type, state->value, Py_None) == -1)
+ return 0;
+ state->YieldFrom_type = make_type(state, "YieldFrom", state->expr_type,
+ YieldFrom_fields, 1,
+ "YieldFrom(expr value)");
+ if (!state->YieldFrom_type) return 0;
+ state->Compare_type = make_type(state, "Compare", state->expr_type,
+ Compare_fields, 3,
+ "Compare(expr left, cmpop* ops, expr* comparators)");
+ if (!state->Compare_type) return 0;
+ state->Call_type = make_type(state, "Call", state->expr_type, Call_fields,
+ 3,
+ "Call(expr func, expr* args, keyword* keywords)");
+ if (!state->Call_type) return 0;
+ state->FormattedValue_type = make_type(state, "FormattedValue",
+ state->expr_type,
+ FormattedValue_fields, 3,
+ "FormattedValue(expr value, int? conversion, expr? format_spec)");
+ if (!state->FormattedValue_type) return 0;
+ if (PyObject_SetAttr(state->FormattedValue_type, state->conversion,
+ Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->FormattedValue_type, state->format_spec,
+ Py_None) == -1)
+ return 0;
+ state->JoinedStr_type = make_type(state, "JoinedStr", state->expr_type,
+ JoinedStr_fields, 1,
+ "JoinedStr(expr* values)");
+ if (!state->JoinedStr_type) return 0;
+ state->Constant_type = make_type(state, "Constant", state->expr_type,
+ Constant_fields, 2,
+ "Constant(constant value, string? kind)");
+ if (!state->Constant_type) return 0;
+ if (PyObject_SetAttr(state->Constant_type, state->kind, Py_None) == -1)
+ return 0;
+ state->Attribute_type = make_type(state, "Attribute", state->expr_type,
+ Attribute_fields, 3,
+ "Attribute(expr value, identifier attr, expr_context ctx)");
+ if (!state->Attribute_type) return 0;
+ state->Subscript_type = make_type(state, "Subscript", state->expr_type,
+ Subscript_fields, 3,
+ "Subscript(expr value, expr slice, expr_context ctx)");
+ if (!state->Subscript_type) return 0;
+ state->Starred_type = make_type(state, "Starred", state->expr_type,
+ Starred_fields, 2,
+ "Starred(expr value, expr_context ctx)");
+ if (!state->Starred_type) return 0;
+ state->Name_type = make_type(state, "Name", state->expr_type, Name_fields,
+ 2,
+ "Name(identifier id, expr_context ctx)");
+ if (!state->Name_type) return 0;
+ state->List_type = make_type(state, "List", state->expr_type, List_fields,
+ 2,
+ "List(expr* elts, expr_context ctx)");
+ if (!state->List_type) return 0;
+ state->Tuple_type = make_type(state, "Tuple", state->expr_type,
+ Tuple_fields, 2,
+ "Tuple(expr* elts, expr_context ctx)");
+ if (!state->Tuple_type) return 0;
+ state->Slice_type = make_type(state, "Slice", state->expr_type,
+ Slice_fields, 3,
+ "Slice(expr? lower, expr? upper, expr? step)");
+ if (!state->Slice_type) return 0;
+ if (PyObject_SetAttr(state->Slice_type, state->lower, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->Slice_type, state->upper, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->Slice_type, state->step, Py_None) == -1)
+ return 0;
+ state->expr_context_type = make_type(state, "expr_context",
+ state->AST_type, NULL, 0,
+ "expr_context = Load | Store | Del");
+ if (!state->expr_context_type) return 0;
+ if (!add_attributes(state, state->expr_context_type, NULL, 0)) return 0;
+ state->Load_type = make_type(state, "Load", state->expr_context_type, NULL,
+ 0,
+ "Load");
+ if (!state->Load_type) return 0;
+ state->Load_singleton = PyType_GenericNew((PyTypeObject *)state->Load_type,
+ NULL, NULL);
+ if (!state->Load_singleton) return 0;
+ state->Store_type = make_type(state, "Store", state->expr_context_type,
+ NULL, 0,
+ "Store");
+ if (!state->Store_type) return 0;
+ state->Store_singleton = PyType_GenericNew((PyTypeObject
+ *)state->Store_type, NULL, NULL);
+ if (!state->Store_singleton) return 0;
+ state->Del_type = make_type(state, "Del", state->expr_context_type, NULL, 0,
+ "Del");
+ if (!state->Del_type) return 0;
+ state->Del_singleton = PyType_GenericNew((PyTypeObject *)state->Del_type,
+ NULL, NULL);
+ if (!state->Del_singleton) return 0;
+ state->boolop_type = make_type(state, "boolop", state->AST_type, NULL, 0,
+ "boolop = And | Or");
+ if (!state->boolop_type) return 0;
+ if (!add_attributes(state, state->boolop_type, NULL, 0)) return 0;
+ state->And_type = make_type(state, "And", state->boolop_type, NULL, 0,
+ "And");
+ if (!state->And_type) return 0;
+ state->And_singleton = PyType_GenericNew((PyTypeObject *)state->And_type,
+ NULL, NULL);
+ if (!state->And_singleton) return 0;
+ state->Or_type = make_type(state, "Or", state->boolop_type, NULL, 0,
+ "Or");
+ if (!state->Or_type) return 0;
+ state->Or_singleton = PyType_GenericNew((PyTypeObject *)state->Or_type,
+ NULL, NULL);
+ if (!state->Or_singleton) return 0;
+ state->operator_type = make_type(state, "operator", state->AST_type, NULL,
+ 0,
+ "operator = Add | Sub | Mult | MatMult | Div | Mod | Pow | LShift | RShift | BitOr | BitXor | BitAnd | FloorDiv");
+ if (!state->operator_type) return 0;
+ if (!add_attributes(state, state->operator_type, NULL, 0)) return 0;
+ state->Add_type = make_type(state, "Add", state->operator_type, NULL, 0,
+ "Add");
+ if (!state->Add_type) return 0;
+ state->Add_singleton = PyType_GenericNew((PyTypeObject *)state->Add_type,
+ NULL, NULL);
+ if (!state->Add_singleton) return 0;
+ state->Sub_type = make_type(state, "Sub", state->operator_type, NULL, 0,
+ "Sub");
+ if (!state->Sub_type) return 0;
+ state->Sub_singleton = PyType_GenericNew((PyTypeObject *)state->Sub_type,
+ NULL, NULL);
+ if (!state->Sub_singleton) return 0;
+ state->Mult_type = make_type(state, "Mult", state->operator_type, NULL, 0,
+ "Mult");
+ if (!state->Mult_type) return 0;
+ state->Mult_singleton = PyType_GenericNew((PyTypeObject *)state->Mult_type,
+ NULL, NULL);
+ if (!state->Mult_singleton) return 0;
+ state->MatMult_type = make_type(state, "MatMult", state->operator_type,
+ NULL, 0,
+ "MatMult");
+ if (!state->MatMult_type) return 0;
+ state->MatMult_singleton = PyType_GenericNew((PyTypeObject
+ *)state->MatMult_type, NULL,
+ NULL);
+ if (!state->MatMult_singleton) return 0;
+ state->Div_type = make_type(state, "Div", state->operator_type, NULL, 0,
+ "Div");
+ if (!state->Div_type) return 0;
+ state->Div_singleton = PyType_GenericNew((PyTypeObject *)state->Div_type,
+ NULL, NULL);
+ if (!state->Div_singleton) return 0;
+ state->Mod_type = make_type(state, "Mod", state->operator_type, NULL, 0,
+ "Mod");
+ if (!state->Mod_type) return 0;
+ state->Mod_singleton = PyType_GenericNew((PyTypeObject *)state->Mod_type,
+ NULL, NULL);
+ if (!state->Mod_singleton) return 0;
+ state->Pow_type = make_type(state, "Pow", state->operator_type, NULL, 0,
+ "Pow");
+ if (!state->Pow_type) return 0;
+ state->Pow_singleton = PyType_GenericNew((PyTypeObject *)state->Pow_type,
+ NULL, NULL);
+ if (!state->Pow_singleton) return 0;
+ state->LShift_type = make_type(state, "LShift", state->operator_type, NULL,
+ 0,
+ "LShift");
+ if (!state->LShift_type) return 0;
+ state->LShift_singleton = PyType_GenericNew((PyTypeObject
+ *)state->LShift_type, NULL,
+ NULL);
+ if (!state->LShift_singleton) return 0;
+ state->RShift_type = make_type(state, "RShift", state->operator_type, NULL,
+ 0,
+ "RShift");
+ if (!state->RShift_type) return 0;
+ state->RShift_singleton = PyType_GenericNew((PyTypeObject
+ *)state->RShift_type, NULL,
+ NULL);
+ if (!state->RShift_singleton) return 0;
+ state->BitOr_type = make_type(state, "BitOr", state->operator_type, NULL, 0,
+ "BitOr");
+ if (!state->BitOr_type) return 0;
+ state->BitOr_singleton = PyType_GenericNew((PyTypeObject
+ *)state->BitOr_type, NULL, NULL);
+ if (!state->BitOr_singleton) return 0;
+ state->BitXor_type = make_type(state, "BitXor", state->operator_type, NULL,
+ 0,
+ "BitXor");
+ if (!state->BitXor_type) return 0;
+ state->BitXor_singleton = PyType_GenericNew((PyTypeObject
+ *)state->BitXor_type, NULL,
+ NULL);
+ if (!state->BitXor_singleton) return 0;
+ state->BitAnd_type = make_type(state, "BitAnd", state->operator_type, NULL,
+ 0,
+ "BitAnd");
+ if (!state->BitAnd_type) return 0;
+ state->BitAnd_singleton = PyType_GenericNew((PyTypeObject
+ *)state->BitAnd_type, NULL,
+ NULL);
+ if (!state->BitAnd_singleton) return 0;
+ state->FloorDiv_type = make_type(state, "FloorDiv", state->operator_type,
+ NULL, 0,
+ "FloorDiv");
+ if (!state->FloorDiv_type) return 0;
+ state->FloorDiv_singleton = PyType_GenericNew((PyTypeObject
+ *)state->FloorDiv_type, NULL,
+ NULL);
+ if (!state->FloorDiv_singleton) return 0;
+ state->unaryop_type = make_type(state, "unaryop", state->AST_type, NULL, 0,
+ "unaryop = Invert | Not | UAdd | USub");
+ if (!state->unaryop_type) return 0;
+ if (!add_attributes(state, state->unaryop_type, NULL, 0)) return 0;
+ state->Invert_type = make_type(state, "Invert", state->unaryop_type, NULL,
+ 0,
+ "Invert");
+ if (!state->Invert_type) return 0;
+ state->Invert_singleton = PyType_GenericNew((PyTypeObject
+ *)state->Invert_type, NULL,
+ NULL);
+ if (!state->Invert_singleton) return 0;
+ state->Not_type = make_type(state, "Not", state->unaryop_type, NULL, 0,
+ "Not");
+ if (!state->Not_type) return 0;
+ state->Not_singleton = PyType_GenericNew((PyTypeObject *)state->Not_type,
+ NULL, NULL);
+ if (!state->Not_singleton) return 0;
+ state->UAdd_type = make_type(state, "UAdd", state->unaryop_type, NULL, 0,
+ "UAdd");
+ if (!state->UAdd_type) return 0;
+ state->UAdd_singleton = PyType_GenericNew((PyTypeObject *)state->UAdd_type,
+ NULL, NULL);
+ if (!state->UAdd_singleton) return 0;
+ state->USub_type = make_type(state, "USub", state->unaryop_type, NULL, 0,
+ "USub");
+ if (!state->USub_type) return 0;
+ state->USub_singleton = PyType_GenericNew((PyTypeObject *)state->USub_type,
+ NULL, NULL);
+ if (!state->USub_singleton) return 0;
+ state->cmpop_type = make_type(state, "cmpop", state->AST_type, NULL, 0,
+ "cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn");
+ if (!state->cmpop_type) return 0;
+ if (!add_attributes(state, state->cmpop_type, NULL, 0)) return 0;
+ state->Eq_type = make_type(state, "Eq", state->cmpop_type, NULL, 0,
+ "Eq");
+ if (!state->Eq_type) return 0;
+ state->Eq_singleton = PyType_GenericNew((PyTypeObject *)state->Eq_type,
+ NULL, NULL);
+ if (!state->Eq_singleton) return 0;
+ state->NotEq_type = make_type(state, "NotEq", state->cmpop_type, NULL, 0,
+ "NotEq");
+ if (!state->NotEq_type) return 0;
+ state->NotEq_singleton = PyType_GenericNew((PyTypeObject
+ *)state->NotEq_type, NULL, NULL);
+ if (!state->NotEq_singleton) return 0;
+ state->Lt_type = make_type(state, "Lt", state->cmpop_type, NULL, 0,
+ "Lt");
+ if (!state->Lt_type) return 0;
+ state->Lt_singleton = PyType_GenericNew((PyTypeObject *)state->Lt_type,
+ NULL, NULL);
+ if (!state->Lt_singleton) return 0;
+ state->LtE_type = make_type(state, "LtE", state->cmpop_type, NULL, 0,
+ "LtE");
+ if (!state->LtE_type) return 0;
+ state->LtE_singleton = PyType_GenericNew((PyTypeObject *)state->LtE_type,
+ NULL, NULL);
+ if (!state->LtE_singleton) return 0;
+ state->Gt_type = make_type(state, "Gt", state->cmpop_type, NULL, 0,
+ "Gt");
+ if (!state->Gt_type) return 0;
+ state->Gt_singleton = PyType_GenericNew((PyTypeObject *)state->Gt_type,
+ NULL, NULL);
+ if (!state->Gt_singleton) return 0;
+ state->GtE_type = make_type(state, "GtE", state->cmpop_type, NULL, 0,
+ "GtE");
+ if (!state->GtE_type) return 0;
+ state->GtE_singleton = PyType_GenericNew((PyTypeObject *)state->GtE_type,
+ NULL, NULL);
+ if (!state->GtE_singleton) return 0;
+ state->Is_type = make_type(state, "Is", state->cmpop_type, NULL, 0,
+ "Is");
+ if (!state->Is_type) return 0;
+ state->Is_singleton = PyType_GenericNew((PyTypeObject *)state->Is_type,
+ NULL, NULL);
+ if (!state->Is_singleton) return 0;
+ state->IsNot_type = make_type(state, "IsNot", state->cmpop_type, NULL, 0,
+ "IsNot");
+ if (!state->IsNot_type) return 0;
+ state->IsNot_singleton = PyType_GenericNew((PyTypeObject
+ *)state->IsNot_type, NULL, NULL);
+ if (!state->IsNot_singleton) return 0;
+ state->In_type = make_type(state, "In", state->cmpop_type, NULL, 0,
+ "In");
+ if (!state->In_type) return 0;
+ state->In_singleton = PyType_GenericNew((PyTypeObject *)state->In_type,
+ NULL, NULL);
+ if (!state->In_singleton) return 0;
+ state->NotIn_type = make_type(state, "NotIn", state->cmpop_type, NULL, 0,
+ "NotIn");
+ if (!state->NotIn_type) return 0;
+ state->NotIn_singleton = PyType_GenericNew((PyTypeObject
+ *)state->NotIn_type, NULL, NULL);
+ if (!state->NotIn_singleton) return 0;
+ state->comprehension_type = make_type(state, "comprehension",
+ state->AST_type,
+ comprehension_fields, 4,
+ "comprehension(expr target, expr iter, expr* ifs, int is_async)");
+ if (!state->comprehension_type) return 0;
+ if (!add_attributes(state, state->comprehension_type, NULL, 0)) return 0;
+ state->excepthandler_type = make_type(state, "excepthandler",
+ state->AST_type, NULL, 0,
+ "excepthandler = ExceptHandler(expr? type, identifier? name, stmt* body)");
+ if (!state->excepthandler_type) return 0;
+ if (!add_attributes(state, state->excepthandler_type,
+ excepthandler_attributes, 4)) return 0;
+ if (PyObject_SetAttr(state->excepthandler_type, state->end_lineno, Py_None)
+ == -1)
+ return 0;
+ if (PyObject_SetAttr(state->excepthandler_type, state->end_col_offset,
+ Py_None) == -1)
+ return 0;
+ state->ExceptHandler_type = make_type(state, "ExceptHandler",
+ state->excepthandler_type,
+ ExceptHandler_fields, 3,
+ "ExceptHandler(expr? type, identifier? name, stmt* body)");
+ if (!state->ExceptHandler_type) return 0;
+ if (PyObject_SetAttr(state->ExceptHandler_type, state->type, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->ExceptHandler_type, state->name, Py_None) == -1)
+ return 0;
+ state->arguments_type = make_type(state, "arguments", state->AST_type,
+ arguments_fields, 7,
+ "arguments(arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs, expr* kw_defaults, arg? kwarg, expr* defaults)");
+ if (!state->arguments_type) return 0;
+ if (!add_attributes(state, state->arguments_type, NULL, 0)) return 0;
+ if (PyObject_SetAttr(state->arguments_type, state->vararg, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->arguments_type, state->kwarg, Py_None) == -1)
+ return 0;
+ state->arg_type = make_type(state, "arg", state->AST_type, arg_fields, 3,
+ "arg(identifier arg, expr? annotation, string? type_comment)");
+ if (!state->arg_type) return 0;
+ if (!add_attributes(state, state->arg_type, arg_attributes, 4)) return 0;
+ if (PyObject_SetAttr(state->arg_type, state->annotation, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->arg_type, state->type_comment, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->arg_type, state->end_lineno, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->arg_type, state->end_col_offset, Py_None) == -1)
+ return 0;
+ state->keyword_type = make_type(state, "keyword", state->AST_type,
+ keyword_fields, 2,
+ "keyword(identifier? arg, expr value)");
+ if (!state->keyword_type) return 0;
+ if (!add_attributes(state, state->keyword_type, keyword_attributes, 4))
+ return 0;
+ if (PyObject_SetAttr(state->keyword_type, state->arg, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->keyword_type, state->end_lineno, Py_None) == -1)
+ return 0;
+ if (PyObject_SetAttr(state->keyword_type, state->end_col_offset, Py_None)
+ == -1)
+ return 0;
+ state->alias_type = make_type(state, "alias", state->AST_type,
+ alias_fields, 2,
+ "alias(identifier name, identifier? asname)");
+ if (!state->alias_type) return 0;
+ if (!add_attributes(state, state->alias_type, NULL, 0)) return 0;
+ if (PyObject_SetAttr(state->alias_type, state->asname, Py_None) == -1)
+ return 0;
+ state->withitem_type = make_type(state, "withitem", state->AST_type,
+ withitem_fields, 2,
+ "withitem(expr context_expr, expr? optional_vars)");
+ if (!state->withitem_type) return 0;
+ if (!add_attributes(state, state->withitem_type, NULL, 0)) return 0;
+ if (PyObject_SetAttr(state->withitem_type, state->optional_vars, Py_None)
+ == -1)
+ return 0;
+ state->type_ignore_type = make_type(state, "type_ignore", state->AST_type,
+ NULL, 0,
+ "type_ignore = TypeIgnore(int lineno, string tag)");
+ if (!state->type_ignore_type) return 0;
+ if (!add_attributes(state, state->type_ignore_type, NULL, 0)) return 0;
+ state->TypeIgnore_type = make_type(state, "TypeIgnore",
+ state->type_ignore_type,
+ TypeIgnore_fields, 2,
+ "TypeIgnore(int lineno, string tag)");
+ if (!state->TypeIgnore_type) return 0;
+ state->initialized = 1;
return 1;
}
-static int obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out,
- PyArena* arena);
-static int obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out,
- PyArena* arena);
-static int obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out,
- PyArena* arena);
-static int obj2ast_expr_context(astmodulestate *state, PyObject* obj,
- expr_context_ty* out, PyArena* arena);
-static int obj2ast_boolop(astmodulestate *state, PyObject* obj, boolop_ty* out,
- PyArena* arena);
-static int obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty*
- out, PyArena* arena);
-static int obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty*
- out, PyArena* arena);
-static int obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out,
- PyArena* arena);
-static int obj2ast_comprehension(astmodulestate *state, PyObject* obj,
- comprehension_ty* out, PyArena* arena);
-static int obj2ast_excepthandler(astmodulestate *state, PyObject* obj,
- excepthandler_ty* out, PyArena* arena);
-static int obj2ast_arguments(astmodulestate *state, PyObject* obj,
- arguments_ty* out, PyArena* arena);
-static int obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out,
- PyArena* arena);
-static int obj2ast_keyword(astmodulestate *state, PyObject* obj, keyword_ty*
- out, PyArena* arena);
-static int obj2ast_alias(astmodulestate *state, PyObject* obj, alias_ty* out,
- PyArena* arena);
-static int obj2ast_withitem(astmodulestate *state, PyObject* obj, withitem_ty*
- out, PyArena* arena);
-static int obj2ast_type_ignore(astmodulestate *state, PyObject* obj,
- type_ignore_ty* out, PyArena* arena);
+static int obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out,
+ PyArena* arena);
+static int obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out,
+ PyArena* arena);
+static int obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out,
+ PyArena* arena);
+static int obj2ast_expr_context(astmodulestate *state, PyObject* obj,
+ expr_context_ty* out, PyArena* arena);
+static int obj2ast_boolop(astmodulestate *state, PyObject* obj, boolop_ty* out,
+ PyArena* arena);
+static int obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty*
+ out, PyArena* arena);
+static int obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty*
+ out, PyArena* arena);
+static int obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out,
+ PyArena* arena);
+static int obj2ast_comprehension(astmodulestate *state, PyObject* obj,
+ comprehension_ty* out, PyArena* arena);
+static int obj2ast_excepthandler(astmodulestate *state, PyObject* obj,
+ excepthandler_ty* out, PyArena* arena);
+static int obj2ast_arguments(astmodulestate *state, PyObject* obj,
+ arguments_ty* out, PyArena* arena);
+static int obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out,
+ PyArena* arena);
+static int obj2ast_keyword(astmodulestate *state, PyObject* obj, keyword_ty*
+ out, PyArena* arena);
+static int obj2ast_alias(astmodulestate *state, PyObject* obj, alias_ty* out,
+ PyArena* arena);
+static int obj2ast_withitem(astmodulestate *state, PyObject* obj, withitem_ty*
+ out, PyArena* arena);
+static int obj2ast_type_ignore(astmodulestate *state, PyObject* obj,
+ type_ignore_ty* out, PyArena* arena);
mod_ty
-Module(asdl_seq * body, asdl_seq * type_ignores, PyArena *arena)
+Module(asdl_seq * body, asdl_seq * type_ignores, PyArena *arena)
{
mod_ty p;
p = (mod_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -1920,7 +1920,7 @@ Module(asdl_seq * body, asdl_seq * type_ignores, PyArena *arena)
return NULL;
p->kind = Module_kind;
p->v.Module.body = body;
- p->v.Module.type_ignores = type_ignores;
+ p->v.Module.type_ignores = type_ignores;
return p;
}
@@ -1942,7 +1942,7 @@ Expression(expr_ty body, PyArena *arena)
mod_ty p;
if (!body) {
PyErr_SetString(PyExc_ValueError,
- "field 'body' is required for Expression");
+ "field 'body' is required for Expression");
return NULL;
}
p = (mod_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -1954,37 +1954,37 @@ Expression(expr_ty body, PyArena *arena)
}
mod_ty
-FunctionType(asdl_seq * argtypes, expr_ty returns, PyArena *arena)
-{
- mod_ty p;
- if (!returns) {
- PyErr_SetString(PyExc_ValueError,
- "field 'returns' is required for FunctionType");
- return NULL;
- }
- p = (mod_ty)PyArena_Malloc(arena, sizeof(*p));
- if (!p)
- return NULL;
- p->kind = FunctionType_kind;
- p->v.FunctionType.argtypes = argtypes;
- p->v.FunctionType.returns = returns;
- return p;
-}
-
+FunctionType(asdl_seq * argtypes, expr_ty returns, PyArena *arena)
+{
+ mod_ty p;
+ if (!returns) {
+ PyErr_SetString(PyExc_ValueError,
+ "field 'returns' is required for FunctionType");
+ return NULL;
+ }
+ p = (mod_ty)PyArena_Malloc(arena, sizeof(*p));
+ if (!p)
+ return NULL;
+ p->kind = FunctionType_kind;
+ p->v.FunctionType.argtypes = argtypes;
+ p->v.FunctionType.returns = returns;
+ return p;
+}
+
stmt_ty
FunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq *
- decorator_list, expr_ty returns, string type_comment, int lineno,
- int col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ decorator_list, expr_ty returns, string type_comment, int lineno,
+ int col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!name) {
PyErr_SetString(PyExc_ValueError,
- "field 'name' is required for FunctionDef");
+ "field 'name' is required for FunctionDef");
return NULL;
}
if (!args) {
PyErr_SetString(PyExc_ValueError,
- "field 'args' is required for FunctionDef");
+ "field 'args' is required for FunctionDef");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -1996,29 +1996,29 @@ FunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq *
p->v.FunctionDef.body = body;
p->v.FunctionDef.decorator_list = decorator_list;
p->v.FunctionDef.returns = returns;
- p->v.FunctionDef.type_comment = type_comment;
+ p->v.FunctionDef.type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq
- * decorator_list, expr_ty returns, string type_comment, int
- lineno, int col_offset, int end_lineno, int end_col_offset,
+ * decorator_list, expr_ty returns, string type_comment, int
+ lineno, int col_offset, int end_lineno, int end_col_offset,
PyArena *arena)
{
stmt_ty p;
if (!name) {
PyErr_SetString(PyExc_ValueError,
- "field 'name' is required for AsyncFunctionDef");
+ "field 'name' is required for AsyncFunctionDef");
return NULL;
}
if (!args) {
PyErr_SetString(PyExc_ValueError,
- "field 'args' is required for AsyncFunctionDef");
+ "field 'args' is required for AsyncFunctionDef");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2030,23 +2030,23 @@ AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq
p->v.AsyncFunctionDef.body = body;
p->v.AsyncFunctionDef.decorator_list = decorator_list;
p->v.AsyncFunctionDef.returns = returns;
- p->v.AsyncFunctionDef.type_comment = type_comment;
+ p->v.AsyncFunctionDef.type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords, asdl_seq *
- body, asdl_seq * decorator_list, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+ body, asdl_seq * decorator_list, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!name) {
PyErr_SetString(PyExc_ValueError,
- "field 'name' is required for ClassDef");
+ "field 'name' is required for ClassDef");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2060,14 +2060,14 @@ ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords, asdl_seq *
p->v.ClassDef.decorator_list = decorator_list;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Return(expr_ty value, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Return(expr_ty value, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2077,14 +2077,14 @@ Return(expr_ty value, int lineno, int col_offset, int end_lineno, int
p->v.Return.value = value;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Delete(asdl_seq * targets, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Delete(asdl_seq * targets, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2094,19 +2094,19 @@ Delete(asdl_seq * targets, int lineno, int col_offset, int end_lineno, int
p->v.Delete.targets = targets;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Assign(asdl_seq * targets, expr_ty value, string type_comment, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+Assign(asdl_seq * targets, expr_ty value, string type_comment, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for Assign");
+ "field 'value' is required for Assign");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2115,32 +2115,32 @@ Assign(asdl_seq * targets, expr_ty value, string type_comment, int lineno, int
p->kind = Assign_kind;
p->v.Assign.targets = targets;
p->v.Assign.value = value;
- p->v.Assign.type_comment = type_comment;
+ p->v.Assign.type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
AugAssign(expr_ty target, operator_ty op, expr_ty value, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!target) {
PyErr_SetString(PyExc_ValueError,
- "field 'target' is required for AugAssign");
+ "field 'target' is required for AugAssign");
return NULL;
}
if (!op) {
PyErr_SetString(PyExc_ValueError,
- "field 'op' is required for AugAssign");
+ "field 'op' is required for AugAssign");
return NULL;
}
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for AugAssign");
+ "field 'value' is required for AugAssign");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2152,25 +2152,25 @@ AugAssign(expr_ty target, operator_ty op, expr_ty value, int lineno, int
p->v.AugAssign.value = value;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int simple, int
- lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
- *arena)
+ lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena)
{
stmt_ty p;
if (!target) {
PyErr_SetString(PyExc_ValueError,
- "field 'target' is required for AnnAssign");
+ "field 'target' is required for AnnAssign");
return NULL;
}
if (!annotation) {
PyErr_SetString(PyExc_ValueError,
- "field 'annotation' is required for AnnAssign");
+ "field 'annotation' is required for AnnAssign");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2183,25 +2183,25 @@ AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int simple, int
p->v.AnnAssign.simple = simple;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq * orelse, string
- type_comment, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq * orelse, string
+ type_comment, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!target) {
PyErr_SetString(PyExc_ValueError,
- "field 'target' is required for For");
+ "field 'target' is required for For");
return NULL;
}
if (!iter) {
PyErr_SetString(PyExc_ValueError,
- "field 'iter' is required for For");
+ "field 'iter' is required for For");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2212,28 +2212,28 @@ For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq * orelse, string
p->v.For.iter = iter;
p->v.For.body = body;
p->v.For.orelse = orelse;
- p->v.For.type_comment = type_comment;
+ p->v.For.type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq * orelse,
- string type_comment, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq * orelse,
+ string type_comment, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!target) {
PyErr_SetString(PyExc_ValueError,
- "field 'target' is required for AsyncFor");
+ "field 'target' is required for AsyncFor");
return NULL;
}
if (!iter) {
PyErr_SetString(PyExc_ValueError,
- "field 'iter' is required for AsyncFor");
+ "field 'iter' is required for AsyncFor");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2244,22 +2244,22 @@ AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq * orelse,
p->v.AsyncFor.iter = iter;
p->v.AsyncFor.body = body;
p->v.AsyncFor.orelse = orelse;
- p->v.AsyncFor.type_comment = type_comment;
+ p->v.AsyncFor.type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!test) {
PyErr_SetString(PyExc_ValueError,
- "field 'test' is required for While");
+ "field 'test' is required for While");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2271,19 +2271,19 @@ While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno, int
p->v.While.orelse = orelse;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!test) {
PyErr_SetString(PyExc_ValueError,
- "field 'test' is required for If");
+ "field 'test' is required for If");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2295,14 +2295,14 @@ If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno, int
p->v.If.orelse = orelse;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-With(asdl_seq * items, asdl_seq * body, string type_comment, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+With(asdl_seq * items, asdl_seq * body, string type_comment, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2311,17 +2311,17 @@ With(asdl_seq * items, asdl_seq * body, string type_comment, int lineno, int
p->kind = With_kind;
p->v.With.items = items;
p->v.With.body = body;
- p->v.With.type_comment = type_comment;
+ p->v.With.type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-AsyncWith(asdl_seq * items, asdl_seq * body, string type_comment, int lineno,
- int col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+AsyncWith(asdl_seq * items, asdl_seq * body, string type_comment, int lineno,
+ int col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2330,17 +2330,17 @@ AsyncWith(asdl_seq * items, asdl_seq * body, string type_comment, int lineno,
p->kind = AsyncWith_kind;
p->v.AsyncWith.items = items;
p->v.AsyncWith.body = body;
- p->v.AsyncWith.type_comment = type_comment;
+ p->v.AsyncWith.type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena)
+Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2351,15 +2351,15 @@ Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, int end_lineno,
p->v.Raise.cause = cause;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse, asdl_seq *
- finalbody, int lineno, int col_offset, int end_lineno, int end_col_offset,
- PyArena *arena)
+ finalbody, int lineno, int col_offset, int end_lineno, int end_col_offset,
+ PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2372,19 +2372,19 @@ Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse, asdl_seq *
p->v.Try.finalbody = finalbody;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, int end_lineno,
- int end_col_offset, PyArena *arena)
+Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, int end_lineno,
+ int end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!test) {
PyErr_SetString(PyExc_ValueError,
- "field 'test' is required for Assert");
+ "field 'test' is required for Assert");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2395,14 +2395,14 @@ Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, int end_lineno,
p->v.Assert.msg = msg;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Import(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Import(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2412,14 +2412,14 @@ Import(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
p->v.Import.names = names;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
ImportFrom(identifier module, asdl_seq * names, int level, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2431,14 +2431,14 @@ ImportFrom(identifier module, asdl_seq * names, int level, int lineno, int
p->v.ImportFrom.level = level;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Global(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Global(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2448,14 +2448,14 @@ Global(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
p->v.Global.names = names;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Nonlocal(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Nonlocal(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2465,19 +2465,19 @@ Nonlocal(asdl_seq * names, int lineno, int col_offset, int end_lineno, int
p->v.Nonlocal.names = names;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Expr(expr_ty value, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Expr(expr_ty value, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
stmt_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for Expr");
+ "field 'value' is required for Expr");
return NULL;
}
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2487,14 +2487,14 @@ Expr(expr_ty value, int lineno, int col_offset, int end_lineno, int
p->v.Expr.value = value;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Pass(int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
- *arena)
+Pass(int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2503,14 +2503,14 @@ Pass(int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
p->kind = Pass_kind;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Break(int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
- *arena)
+Break(int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2519,14 +2519,14 @@ Break(int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena
p->kind = Break_kind;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
stmt_ty
-Continue(int lineno, int col_offset, int end_lineno, int end_col_offset,
- PyArena *arena)
+Continue(int lineno, int col_offset, int end_lineno, int end_col_offset,
+ PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2535,19 +2535,19 @@ Continue(int lineno, int col_offset, int end_lineno, int end_col_offset,
p->kind = Continue_kind;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!op) {
PyErr_SetString(PyExc_ValueError,
- "field 'op' is required for BoolOp");
+ "field 'op' is required for BoolOp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2558,57 +2558,57 @@ BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset, int
p->v.BoolOp.values = values;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
+ return p;
+}
+
+expr_ty
+NamedExpr(expr_ty target, expr_ty value, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
+{
+ expr_ty p;
+ if (!target) {
+ PyErr_SetString(PyExc_ValueError,
+ "field 'target' is required for NamedExpr");
+ return NULL;
+ }
+ if (!value) {
+ PyErr_SetString(PyExc_ValueError,
+ "field 'value' is required for NamedExpr");
+ return NULL;
+ }
+ p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
+ if (!p)
+ return NULL;
+ p->kind = NamedExpr_kind;
+ p->v.NamedExpr.target = target;
+ p->v.NamedExpr.value = value;
+ p->lineno = lineno;
+ p->col_offset = col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-NamedExpr(expr_ty target, expr_ty value, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
-{
- expr_ty p;
- if (!target) {
- PyErr_SetString(PyExc_ValueError,
- "field 'target' is required for NamedExpr");
- return NULL;
- }
- if (!value) {
- PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for NamedExpr");
- return NULL;
- }
- p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
- if (!p)
- return NULL;
- p->kind = NamedExpr_kind;
- p->v.NamedExpr.target = target;
- p->v.NamedExpr.value = value;
- p->lineno = lineno;
- p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
- return p;
-}
-
-expr_ty
BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena)
+ int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!left) {
PyErr_SetString(PyExc_ValueError,
- "field 'left' is required for BinOp");
+ "field 'left' is required for BinOp");
return NULL;
}
if (!op) {
PyErr_SetString(PyExc_ValueError,
- "field 'op' is required for BinOp");
+ "field 'op' is required for BinOp");
return NULL;
}
if (!right) {
PyErr_SetString(PyExc_ValueError,
- "field 'right' is required for BinOp");
+ "field 'right' is required for BinOp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2620,24 +2620,24 @@ BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int col_offset,
p->v.BinOp.right = right;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!op) {
PyErr_SetString(PyExc_ValueError,
- "field 'op' is required for UnaryOp");
+ "field 'op' is required for UnaryOp");
return NULL;
}
if (!operand) {
PyErr_SetString(PyExc_ValueError,
- "field 'operand' is required for UnaryOp");
+ "field 'operand' is required for UnaryOp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2648,24 +2648,24 @@ UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset, int
p->v.UnaryOp.operand = operand;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!args) {
PyErr_SetString(PyExc_ValueError,
- "field 'args' is required for Lambda");
+ "field 'args' is required for Lambda");
return NULL;
}
if (!body) {
PyErr_SetString(PyExc_ValueError,
- "field 'body' is required for Lambda");
+ "field 'body' is required for Lambda");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2676,29 +2676,29 @@ Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset, int
p->v.Lambda.body = body;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena)
+ int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!test) {
PyErr_SetString(PyExc_ValueError,
- "field 'test' is required for IfExp");
+ "field 'test' is required for IfExp");
return NULL;
}
if (!body) {
PyErr_SetString(PyExc_ValueError,
- "field 'body' is required for IfExp");
+ "field 'body' is required for IfExp");
return NULL;
}
if (!orelse) {
PyErr_SetString(PyExc_ValueError,
- "field 'orelse' is required for IfExp");
+ "field 'orelse' is required for IfExp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2710,14 +2710,14 @@ IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int col_offset,
p->v.IfExp.orelse = orelse;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Dict(asdl_seq * keys, asdl_seq * values, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+Dict(asdl_seq * keys, asdl_seq * values, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2728,14 +2728,14 @@ Dict(asdl_seq * keys, asdl_seq * values, int lineno, int col_offset, int
p->v.Dict.values = values;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Set(asdl_seq * elts, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Set(asdl_seq * elts, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
expr_ty p;
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2745,19 +2745,19 @@ Set(asdl_seq * elts, int lineno, int col_offset, int end_lineno, int
p->v.Set.elts = elts;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-ListComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+ListComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!elt) {
PyErr_SetString(PyExc_ValueError,
- "field 'elt' is required for ListComp");
+ "field 'elt' is required for ListComp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2768,19 +2768,19 @@ ListComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, int
p->v.ListComp.generators = generators;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-SetComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+SetComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!elt) {
PyErr_SetString(PyExc_ValueError,
- "field 'elt' is required for SetComp");
+ "field 'elt' is required for SetComp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2791,24 +2791,24 @@ SetComp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset, int
p->v.SetComp.generators = generators;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!key) {
PyErr_SetString(PyExc_ValueError,
- "field 'key' is required for DictComp");
+ "field 'key' is required for DictComp");
return NULL;
}
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for DictComp");
+ "field 'value' is required for DictComp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2820,19 +2820,19 @@ DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int lineno, int
p->v.DictComp.generators = generators;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena)
+ int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!elt) {
PyErr_SetString(PyExc_ValueError,
- "field 'elt' is required for GeneratorExp");
+ "field 'elt' is required for GeneratorExp");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2843,19 +2843,19 @@ GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int col_offset,
p->v.GeneratorExp.generators = generators;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Await(expr_ty value, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Await(expr_ty value, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
expr_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for Await");
+ "field 'value' is required for Await");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2865,14 +2865,14 @@ Await(expr_ty value, int lineno, int col_offset, int end_lineno, int
p->v.Await.value = value;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Yield(expr_ty value, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+Yield(expr_ty value, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
expr_ty p;
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2882,19 +2882,19 @@ Yield(expr_ty value, int lineno, int col_offset, int end_lineno, int
p->v.Yield.value = value;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-YieldFrom(expr_ty value, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+YieldFrom(expr_ty value, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
expr_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for YieldFrom");
+ "field 'value' is required for YieldFrom");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2904,19 +2904,19 @@ YieldFrom(expr_ty value, int lineno, int col_offset, int end_lineno, int
p->v.YieldFrom.value = value;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators, int lineno,
- int col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ int col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!left) {
PyErr_SetString(PyExc_ValueError,
- "field 'left' is required for Compare");
+ "field 'left' is required for Compare");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2928,19 +2928,19 @@ Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators, int lineno,
p->v.Compare.comparators = comparators;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!func) {
PyErr_SetString(PyExc_ValueError,
- "field 'func' is required for Call");
+ "field 'func' is required for Call");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2952,20 +2952,20 @@ Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int lineno, int
p->v.Call.keywords = keywords;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
FormattedValue(expr_ty value, int conversion, expr_ty format_spec, int lineno,
- int col_offset, int end_lineno, int end_col_offset, PyArena
- *arena)
+ int col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena)
{
expr_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for FormattedValue");
+ "field 'value' is required for FormattedValue");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2977,14 +2977,14 @@ FormattedValue(expr_ty value, int conversion, expr_ty format_spec, int lineno,
p->v.FormattedValue.format_spec = format_spec;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-JoinedStr(asdl_seq * values, int lineno, int col_offset, int end_lineno, int
- end_col_offset, PyArena *arena)
+JoinedStr(asdl_seq * values, int lineno, int col_offset, int end_lineno, int
+ end_col_offset, PyArena *arena)
{
expr_ty p;
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -2994,19 +2994,19 @@ JoinedStr(asdl_seq * values, int lineno, int col_offset, int end_lineno, int
p->v.JoinedStr.values = values;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Constant(constant value, string kind, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+Constant(constant value, string kind, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for Constant");
+ "field 'value' is required for Constant");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3014,32 +3014,32 @@ Constant(constant value, string kind, int lineno, int col_offset, int
return NULL;
p->kind = Constant_kind;
p->v.Constant.value = value;
- p->v.Constant.kind = kind;
+ p->v.Constant.kind = kind;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for Attribute");
+ "field 'value' is required for Attribute");
return NULL;
}
if (!attr) {
PyErr_SetString(PyExc_ValueError,
- "field 'attr' is required for Attribute");
+ "field 'attr' is required for Attribute");
return NULL;
}
if (!ctx) {
PyErr_SetString(PyExc_ValueError,
- "field 'ctx' is required for Attribute");
+ "field 'ctx' is required for Attribute");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3051,29 +3051,29 @@ Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int lineno, int
p->v.Attribute.ctx = ctx;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Subscript(expr_ty value, expr_ty slice, expr_context_ty ctx, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+Subscript(expr_ty value, expr_ty slice, expr_context_ty ctx, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for Subscript");
+ "field 'value' is required for Subscript");
return NULL;
}
if (!slice) {
PyErr_SetString(PyExc_ValueError,
- "field 'slice' is required for Subscript");
+ "field 'slice' is required for Subscript");
return NULL;
}
if (!ctx) {
PyErr_SetString(PyExc_ValueError,
- "field 'ctx' is required for Subscript");
+ "field 'ctx' is required for Subscript");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3085,24 +3085,24 @@ Subscript(expr_ty value, expr_ty slice, expr_context_ty ctx, int lineno, int
p->v.Subscript.ctx = ctx;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Starred(expr_ty value, expr_context_ty ctx, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+Starred(expr_ty value, expr_context_ty ctx, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for Starred");
+ "field 'value' is required for Starred");
return NULL;
}
if (!ctx) {
PyErr_SetString(PyExc_ValueError,
- "field 'ctx' is required for Starred");
+ "field 'ctx' is required for Starred");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3113,24 +3113,24 @@ Starred(expr_ty value, expr_context_ty ctx, int lineno, int col_offset, int
p->v.Starred.ctx = ctx;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Name(identifier id, expr_context_ty ctx, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+Name(identifier id, expr_context_ty ctx, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!id) {
PyErr_SetString(PyExc_ValueError,
- "field 'id' is required for Name");
+ "field 'id' is required for Name");
return NULL;
}
if (!ctx) {
PyErr_SetString(PyExc_ValueError,
- "field 'ctx' is required for Name");
+ "field 'ctx' is required for Name");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3141,19 +3141,19 @@ Name(identifier id, expr_context_ty ctx, int lineno, int col_offset, int
p->v.Name.ctx = ctx;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-List(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+List(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!ctx) {
PyErr_SetString(PyExc_ValueError,
- "field 'ctx' is required for List");
+ "field 'ctx' is required for List");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3164,19 +3164,19 @@ List(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, int
p->v.List.ctx = ctx;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
expr_ty
-Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
expr_ty p;
if (!ctx) {
PyErr_SetString(PyExc_ValueError,
- "field 'ctx' is required for Tuple");
+ "field 'ctx' is required for Tuple");
return NULL;
}
p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3187,27 +3187,27 @@ Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int col_offset, int
p->v.Tuple.ctx = ctx;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
-expr_ty
-Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno, int col_offset,
- int end_lineno, int end_col_offset, PyArena *arena)
+expr_ty
+Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno, int col_offset,
+ int end_lineno, int end_col_offset, PyArena *arena)
{
- expr_ty p;
- p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
+ expr_ty p;
+ p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
if (!p)
return NULL;
p->kind = Slice_kind;
p->v.Slice.lower = lower;
p->v.Slice.upper = upper;
p->v.Slice.step = step;
- p->lineno = lineno;
- p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->lineno = lineno;
+ p->col_offset = col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
@@ -3218,12 +3218,12 @@ comprehension(expr_ty target, expr_ty iter, asdl_seq * ifs, int is_async,
comprehension_ty p;
if (!target) {
PyErr_SetString(PyExc_ValueError,
- "field 'target' is required for comprehension");
+ "field 'target' is required for comprehension");
return NULL;
}
if (!iter) {
PyErr_SetString(PyExc_ValueError,
- "field 'iter' is required for comprehension");
+ "field 'iter' is required for comprehension");
return NULL;
}
p = (comprehension_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3238,7 +3238,7 @@ comprehension(expr_ty target, expr_ty iter, asdl_seq * ifs, int is_async,
excepthandler_ty
ExceptHandler(expr_ty type, identifier name, asdl_seq * body, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
excepthandler_ty p;
p = (excepthandler_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3250,21 +3250,21 @@ ExceptHandler(expr_ty type, identifier name, asdl_seq * body, int lineno, int
p->v.ExceptHandler.body = body;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
arguments_ty
-arguments(asdl_seq * posonlyargs, asdl_seq * args, arg_ty vararg, asdl_seq *
- kwonlyargs, asdl_seq * kw_defaults, arg_ty kwarg, asdl_seq *
- defaults, PyArena *arena)
+arguments(asdl_seq * posonlyargs, asdl_seq * args, arg_ty vararg, asdl_seq *
+ kwonlyargs, asdl_seq * kw_defaults, arg_ty kwarg, asdl_seq *
+ defaults, PyArena *arena)
{
arguments_ty p;
p = (arguments_ty)PyArena_Malloc(arena, sizeof(*p));
if (!p)
return NULL;
- p->posonlyargs = posonlyargs;
+ p->posonlyargs = posonlyargs;
p->args = args;
p->vararg = vararg;
p->kwonlyargs = kwonlyargs;
@@ -3275,13 +3275,13 @@ arguments(asdl_seq * posonlyargs, asdl_seq * args, arg_ty vararg, asdl_seq *
}
arg_ty
-arg(identifier arg, expr_ty annotation, string type_comment, int lineno, int
- col_offset, int end_lineno, int end_col_offset, PyArena *arena)
+arg(identifier arg, expr_ty annotation, string type_comment, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena *arena)
{
arg_ty p;
if (!arg) {
PyErr_SetString(PyExc_ValueError,
- "field 'arg' is required for arg");
+ "field 'arg' is required for arg");
return NULL;
}
p = (arg_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3289,22 +3289,22 @@ arg(identifier arg, expr_ty annotation, string type_comment, int lineno, int
return NULL;
p->arg = arg;
p->annotation = annotation;
- p->type_comment = type_comment;
+ p->type_comment = type_comment;
p->lineno = lineno;
p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
keyword_ty
-keyword(identifier arg, expr_ty value, int lineno, int col_offset, int
- end_lineno, int end_col_offset, PyArena *arena)
+keyword(identifier arg, expr_ty value, int lineno, int col_offset, int
+ end_lineno, int end_col_offset, PyArena *arena)
{
keyword_ty p;
if (!value) {
PyErr_SetString(PyExc_ValueError,
- "field 'value' is required for keyword");
+ "field 'value' is required for keyword");
return NULL;
}
p = (keyword_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3312,10 +3312,10 @@ keyword(identifier arg, expr_ty value, int lineno, int col_offset, int
return NULL;
p->arg = arg;
p->value = value;
- p->lineno = lineno;
- p->col_offset = col_offset;
- p->end_lineno = end_lineno;
- p->end_col_offset = end_col_offset;
+ p->lineno = lineno;
+ p->col_offset = col_offset;
+ p->end_lineno = end_lineno;
+ p->end_col_offset = end_col_offset;
return p;
}
@@ -3325,7 +3325,7 @@ alias(identifier name, identifier asname, PyArena *arena)
alias_ty p;
if (!name) {
PyErr_SetString(PyExc_ValueError,
- "field 'name' is required for alias");
+ "field 'name' is required for alias");
return NULL;
}
p = (alias_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3342,7 +3342,7 @@ withitem(expr_ty context_expr, expr_ty optional_vars, PyArena *arena)
withitem_ty p;
if (!context_expr) {
PyErr_SetString(PyExc_ValueError,
- "field 'context_expr' is required for withitem");
+ "field 'context_expr' is required for withitem");
return NULL;
}
p = (withitem_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -3353,86 +3353,86 @@ withitem(expr_ty context_expr, expr_ty optional_vars, PyArena *arena)
return p;
}
-type_ignore_ty
-TypeIgnore(int lineno, string tag, PyArena *arena)
-{
- type_ignore_ty p;
- if (!tag) {
- PyErr_SetString(PyExc_ValueError,
- "field 'tag' is required for TypeIgnore");
- return NULL;
- }
- p = (type_ignore_ty)PyArena_Malloc(arena, sizeof(*p));
- if (!p)
- return NULL;
- p->kind = TypeIgnore_kind;
- p->v.TypeIgnore.lineno = lineno;
- p->v.TypeIgnore.tag = tag;
- return p;
-}
-
-
+type_ignore_ty
+TypeIgnore(int lineno, string tag, PyArena *arena)
+{
+ type_ignore_ty p;
+ if (!tag) {
+ PyErr_SetString(PyExc_ValueError,
+ "field 'tag' is required for TypeIgnore");
+ return NULL;
+ }
+ p = (type_ignore_ty)PyArena_Malloc(arena, sizeof(*p));
+ if (!p)
+ return NULL;
+ p->kind = TypeIgnore_kind;
+ p->v.TypeIgnore.lineno = lineno;
+ p->v.TypeIgnore.tag = tag;
+ return p;
+}
+
+
PyObject*
-ast2obj_mod(astmodulestate *state, void* _o)
+ast2obj_mod(astmodulestate *state, void* _o)
{
mod_ty o = (mod_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
switch (o->kind) {
case Module_kind:
- tp = (PyTypeObject *)state->Module_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Module_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Module.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.Module.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_list(state, o->v.Module.type_ignores,
+ ast2obj_type_ignore);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->type_ignores, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Module.type_ignores,
- ast2obj_type_ignore);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_ignores, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case Interactive_kind:
- tp = (PyTypeObject *)state->Interactive_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Interactive_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Interactive.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.Interactive.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Expression_kind:
- tp = (PyTypeObject *)state->Expression_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Expression_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Expression.body);
+ value = ast2obj_expr(state, o->v.Expression.body);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->body, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ break;
+ case FunctionType_kind:
+ tp = (PyTypeObject *)state->FunctionType_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
+ if (!result) goto failed;
+ value = ast2obj_list(state, o->v.FunctionType.argtypes, ast2obj_expr);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->argtypes, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->v.FunctionType.returns);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->returns, value) == -1)
goto failed;
Py_DECREF(value);
break;
- case FunctionType_kind:
- tp = (PyTypeObject *)state->FunctionType_type;
- result = PyType_GenericNew(tp, NULL, NULL);
- if (!result) goto failed;
- value = ast2obj_list(state, o->v.FunctionType.argtypes, ast2obj_expr);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->argtypes, value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_expr(state, o->v.FunctionType.returns);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->returns, value) == -1)
- goto failed;
- Py_DECREF(value);
- break;
}
return result;
failed:
@@ -3442,493 +3442,493 @@ failed:
}
PyObject*
-ast2obj_stmt(astmodulestate *state, void* _o)
+ast2obj_stmt(astmodulestate *state, void* _o)
{
stmt_ty o = (stmt_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
switch (o->kind) {
case FunctionDef_kind:
- tp = (PyTypeObject *)state->FunctionDef_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->FunctionDef_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_identifier(state, o->v.FunctionDef.name);
+ value = ast2obj_identifier(state, o->v.FunctionDef.name);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->name, value) == -1)
+ if (PyObject_SetAttr(result, state->name, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_arguments(state, o->v.FunctionDef.args);
+ value = ast2obj_arguments(state, o->v.FunctionDef.args);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->args, value) == -1)
+ if (PyObject_SetAttr(result, state->args, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.FunctionDef.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.FunctionDef.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.FunctionDef.decorator_list,
- ast2obj_expr);
+ value = ast2obj_list(state, o->v.FunctionDef.decorator_list,
+ ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->decorator_list, value) == -1)
+ if (PyObject_SetAttr(result, state->decorator_list, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.FunctionDef.returns);
+ value = ast2obj_expr(state, o->v.FunctionDef.returns);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->returns, value) == -1)
+ if (PyObject_SetAttr(result, state->returns, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_string(state, o->v.FunctionDef.type_comment);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.FunctionDef.type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case AsyncFunctionDef_kind:
- tp = (PyTypeObject *)state->AsyncFunctionDef_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->AsyncFunctionDef_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_identifier(state, o->v.AsyncFunctionDef.name);
+ value = ast2obj_identifier(state, o->v.AsyncFunctionDef.name);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->name, value) == -1)
+ if (PyObject_SetAttr(result, state->name, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_arguments(state, o->v.AsyncFunctionDef.args);
+ value = ast2obj_arguments(state, o->v.AsyncFunctionDef.args);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->args, value) == -1)
+ if (PyObject_SetAttr(result, state->args, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.AsyncFunctionDef.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.AsyncFunctionDef.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.AsyncFunctionDef.decorator_list,
+ value = ast2obj_list(state, o->v.AsyncFunctionDef.decorator_list,
ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->decorator_list, value) == -1)
+ if (PyObject_SetAttr(result, state->decorator_list, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->v.AsyncFunctionDef.returns);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->returns, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.AsyncFunctionDef.returns);
+ value = ast2obj_string(state, o->v.AsyncFunctionDef.type_comment);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->returns, value) == -1)
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.AsyncFunctionDef.type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case ClassDef_kind:
- tp = (PyTypeObject *)state->ClassDef_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->ClassDef_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_identifier(state, o->v.ClassDef.name);
+ value = ast2obj_identifier(state, o->v.ClassDef.name);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->name, value) == -1)
+ if (PyObject_SetAttr(result, state->name, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.ClassDef.bases, ast2obj_expr);
+ value = ast2obj_list(state, o->v.ClassDef.bases, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->bases, value) == -1)
+ if (PyObject_SetAttr(result, state->bases, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.ClassDef.keywords, ast2obj_keyword);
+ value = ast2obj_list(state, o->v.ClassDef.keywords, ast2obj_keyword);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->keywords, value) == -1)
+ if (PyObject_SetAttr(result, state->keywords, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.ClassDef.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.ClassDef.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.ClassDef.decorator_list, ast2obj_expr);
+ value = ast2obj_list(state, o->v.ClassDef.decorator_list, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->decorator_list, value) == -1)
+ if (PyObject_SetAttr(result, state->decorator_list, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Return_kind:
- tp = (PyTypeObject *)state->Return_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Return_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Return.value);
+ value = ast2obj_expr(state, o->v.Return.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Delete_kind:
- tp = (PyTypeObject *)state->Delete_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Delete_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Delete.targets, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Delete.targets, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->targets, value) == -1)
+ if (PyObject_SetAttr(result, state->targets, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Assign_kind:
- tp = (PyTypeObject *)state->Assign_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Assign_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Assign.targets, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Assign.targets, ast2obj_expr);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->targets, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->v.Assign.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->targets, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.Assign.value);
+ value = ast2obj_string(state, o->v.Assign.type_comment);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.Assign.type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case AugAssign_kind:
- tp = (PyTypeObject *)state->AugAssign_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->AugAssign_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.AugAssign.target);
+ value = ast2obj_expr(state, o->v.AugAssign.target);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->target, value) == -1)
+ if (PyObject_SetAttr(result, state->target, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_operator(state, o->v.AugAssign.op);
+ value = ast2obj_operator(state, o->v.AugAssign.op);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->op, value) == -1)
+ if (PyObject_SetAttr(result, state->op, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.AugAssign.value);
+ value = ast2obj_expr(state, o->v.AugAssign.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
break;
case AnnAssign_kind:
- tp = (PyTypeObject *)state->AnnAssign_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->AnnAssign_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.AnnAssign.target);
+ value = ast2obj_expr(state, o->v.AnnAssign.target);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->target, value) == -1)
+ if (PyObject_SetAttr(result, state->target, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.AnnAssign.annotation);
+ value = ast2obj_expr(state, o->v.AnnAssign.annotation);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->annotation, value) == -1)
+ if (PyObject_SetAttr(result, state->annotation, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.AnnAssign.value);
+ value = ast2obj_expr(state, o->v.AnnAssign.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->v.AnnAssign.simple);
+ value = ast2obj_int(state, o->v.AnnAssign.simple);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->simple, value) == -1)
+ if (PyObject_SetAttr(result, state->simple, value) == -1)
goto failed;
Py_DECREF(value);
break;
case For_kind:
- tp = (PyTypeObject *)state->For_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->For_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.For.target);
+ value = ast2obj_expr(state, o->v.For.target);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->target, value) == -1)
+ if (PyObject_SetAttr(result, state->target, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.For.iter);
+ value = ast2obj_expr(state, o->v.For.iter);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->iter, value) == -1)
+ if (PyObject_SetAttr(result, state->iter, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.For.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.For.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.For.orelse, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.For.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_string(state, o->v.For.type_comment);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.For.type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case AsyncFor_kind:
- tp = (PyTypeObject *)state->AsyncFor_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->AsyncFor_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.AsyncFor.target);
+ value = ast2obj_expr(state, o->v.AsyncFor.target);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->target, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->v.AsyncFor.iter);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->target, value) == -1)
+ if (PyObject_SetAttr(result, state->iter, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.AsyncFor.iter);
+ value = ast2obj_list(state, o->v.AsyncFor.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->iter, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.AsyncFor.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.AsyncFor.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->orelse, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.AsyncFor.orelse, ast2obj_stmt);
+ value = ast2obj_string(state, o->v.AsyncFor.type_comment);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.AsyncFor.type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case While_kind:
- tp = (PyTypeObject *)state->While_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->While_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.While.test);
+ value = ast2obj_expr(state, o->v.While.test);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->test, value) == -1)
+ if (PyObject_SetAttr(result, state->test, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.While.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.While.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.While.orelse, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.While.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ if (PyObject_SetAttr(result, state->orelse, value) == -1)
goto failed;
Py_DECREF(value);
break;
case If_kind:
- tp = (PyTypeObject *)state->If_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->If_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.If.test);
+ value = ast2obj_expr(state, o->v.If.test);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->test, value) == -1)
+ if (PyObject_SetAttr(result, state->test, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.If.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.If.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.If.orelse, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.If.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ if (PyObject_SetAttr(result, state->orelse, value) == -1)
goto failed;
Py_DECREF(value);
break;
case With_kind:
- tp = (PyTypeObject *)state->With_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->With_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.With.items, ast2obj_withitem);
+ value = ast2obj_list(state, o->v.With.items, ast2obj_withitem);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->items, value) == -1)
+ if (PyObject_SetAttr(result, state->items, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.With.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.With.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_string(state, o->v.With.type_comment);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.With.type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case AsyncWith_kind:
- tp = (PyTypeObject *)state->AsyncWith_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->AsyncWith_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.AsyncWith.items, ast2obj_withitem);
+ value = ast2obj_list(state, o->v.AsyncWith.items, ast2obj_withitem);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->items, value) == -1)
+ if (PyObject_SetAttr(result, state->items, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.AsyncWith.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.AsyncWith.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_string(state, o->v.AsyncWith.type_comment);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.AsyncWith.type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case Raise_kind:
- tp = (PyTypeObject *)state->Raise_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Raise_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Raise.exc);
+ value = ast2obj_expr(state, o->v.Raise.exc);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->exc, value) == -1)
+ if (PyObject_SetAttr(result, state->exc, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.Raise.cause);
+ value = ast2obj_expr(state, o->v.Raise.cause);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->cause, value) == -1)
+ if (PyObject_SetAttr(result, state->cause, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Try_kind:
- tp = (PyTypeObject *)state->Try_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Try_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Try.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.Try.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Try.handlers, ast2obj_excepthandler);
+ value = ast2obj_list(state, o->v.Try.handlers, ast2obj_excepthandler);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->handlers, value) == -1)
+ if (PyObject_SetAttr(result, state->handlers, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Try.orelse, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.Try.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ if (PyObject_SetAttr(result, state->orelse, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Try.finalbody, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.Try.finalbody, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->finalbody, value) == -1)
+ if (PyObject_SetAttr(result, state->finalbody, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Assert_kind:
- tp = (PyTypeObject *)state->Assert_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Assert_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Assert.test);
+ value = ast2obj_expr(state, o->v.Assert.test);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->test, value) == -1)
+ if (PyObject_SetAttr(result, state->test, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.Assert.msg);
+ value = ast2obj_expr(state, o->v.Assert.msg);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->msg, value) == -1)
+ if (PyObject_SetAttr(result, state->msg, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Import_kind:
- tp = (PyTypeObject *)state->Import_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Import_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Import.names, ast2obj_alias);
+ value = ast2obj_list(state, o->v.Import.names, ast2obj_alias);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->names, value) == -1)
+ if (PyObject_SetAttr(result, state->names, value) == -1)
goto failed;
Py_DECREF(value);
break;
case ImportFrom_kind:
- tp = (PyTypeObject *)state->ImportFrom_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->ImportFrom_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_identifier(state, o->v.ImportFrom.module);
+ value = ast2obj_identifier(state, o->v.ImportFrom.module);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->module, value) == -1)
+ if (PyObject_SetAttr(result, state->module, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.ImportFrom.names, ast2obj_alias);
+ value = ast2obj_list(state, o->v.ImportFrom.names, ast2obj_alias);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->names, value) == -1)
+ if (PyObject_SetAttr(result, state->names, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->v.ImportFrom.level);
+ value = ast2obj_int(state, o->v.ImportFrom.level);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->level, value) == -1)
+ if (PyObject_SetAttr(result, state->level, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Global_kind:
- tp = (PyTypeObject *)state->Global_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Global_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Global.names, ast2obj_identifier);
+ value = ast2obj_list(state, o->v.Global.names, ast2obj_identifier);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->names, value) == -1)
+ if (PyObject_SetAttr(result, state->names, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Nonlocal_kind:
- tp = (PyTypeObject *)state->Nonlocal_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Nonlocal_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Nonlocal.names, ast2obj_identifier);
+ value = ast2obj_list(state, o->v.Nonlocal.names, ast2obj_identifier);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->names, value) == -1)
+ if (PyObject_SetAttr(result, state->names, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Expr_kind:
- tp = (PyTypeObject *)state->Expr_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Expr_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Expr.value);
+ value = ast2obj_expr(state, o->v.Expr.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Pass_kind:
- tp = (PyTypeObject *)state->Pass_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Pass_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
break;
case Break_kind:
- tp = (PyTypeObject *)state->Break_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Break_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
break;
case Continue_kind:
- tp = (PyTypeObject *)state->Continue_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Continue_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
break;
}
- value = ast2obj_int(state, o->lineno);
+ value = ast2obj_int(state, o->lineno);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->col_offset);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ if (PyObject_SetAttr(result, state->col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->col_offset);
+ value = ast2obj_int(state, o->end_lineno);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->col_offset, value) < 0)
+ if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->end_col_offset);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->end_lineno);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->end_col_offset);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
- goto failed;
- Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -3937,246 +3937,246 @@ failed:
}
PyObject*
-ast2obj_expr(astmodulestate *state, void* _o)
+ast2obj_expr(astmodulestate *state, void* _o)
{
expr_ty o = (expr_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
switch (o->kind) {
case BoolOp_kind:
- tp = (PyTypeObject *)state->BoolOp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->BoolOp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_boolop(state, o->v.BoolOp.op);
+ value = ast2obj_boolop(state, o->v.BoolOp.op);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->op, value) == -1)
+ if (PyObject_SetAttr(result, state->op, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.BoolOp.values, ast2obj_expr);
+ value = ast2obj_list(state, o->v.BoolOp.values, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->values, value) == -1)
+ if (PyObject_SetAttr(result, state->values, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ break;
+ case NamedExpr_kind:
+ tp = (PyTypeObject *)state->NamedExpr_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
+ if (!result) goto failed;
+ value = ast2obj_expr(state, o->v.NamedExpr.target);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->target, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->v.NamedExpr.value);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
break;
- case NamedExpr_kind:
- tp = (PyTypeObject *)state->NamedExpr_type;
- result = PyType_GenericNew(tp, NULL, NULL);
- if (!result) goto failed;
- value = ast2obj_expr(state, o->v.NamedExpr.target);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->target, value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_expr(state, o->v.NamedExpr.value);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
- goto failed;
- Py_DECREF(value);
- break;
case BinOp_kind:
- tp = (PyTypeObject *)state->BinOp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->BinOp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.BinOp.left);
+ value = ast2obj_expr(state, o->v.BinOp.left);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->left, value) == -1)
+ if (PyObject_SetAttr(result, state->left, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_operator(state, o->v.BinOp.op);
+ value = ast2obj_operator(state, o->v.BinOp.op);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->op, value) == -1)
+ if (PyObject_SetAttr(result, state->op, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.BinOp.right);
+ value = ast2obj_expr(state, o->v.BinOp.right);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->right, value) == -1)
+ if (PyObject_SetAttr(result, state->right, value) == -1)
goto failed;
Py_DECREF(value);
break;
case UnaryOp_kind:
- tp = (PyTypeObject *)state->UnaryOp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->UnaryOp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_unaryop(state, o->v.UnaryOp.op);
+ value = ast2obj_unaryop(state, o->v.UnaryOp.op);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->op, value) == -1)
+ if (PyObject_SetAttr(result, state->op, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.UnaryOp.operand);
+ value = ast2obj_expr(state, o->v.UnaryOp.operand);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->operand, value) == -1)
+ if (PyObject_SetAttr(result, state->operand, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Lambda_kind:
- tp = (PyTypeObject *)state->Lambda_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Lambda_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_arguments(state, o->v.Lambda.args);
+ value = ast2obj_arguments(state, o->v.Lambda.args);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->args, value) == -1)
+ if (PyObject_SetAttr(result, state->args, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.Lambda.body);
+ value = ast2obj_expr(state, o->v.Lambda.body);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
break;
case IfExp_kind:
- tp = (PyTypeObject *)state->IfExp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->IfExp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.IfExp.test);
+ value = ast2obj_expr(state, o->v.IfExp.test);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->test, value) == -1)
+ if (PyObject_SetAttr(result, state->test, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.IfExp.body);
+ value = ast2obj_expr(state, o->v.IfExp.body);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.IfExp.orelse);
+ value = ast2obj_expr(state, o->v.IfExp.orelse);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->orelse, value) == -1)
+ if (PyObject_SetAttr(result, state->orelse, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Dict_kind:
- tp = (PyTypeObject *)state->Dict_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Dict_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Dict.keys, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Dict.keys, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->keys, value) == -1)
+ if (PyObject_SetAttr(result, state->keys, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Dict.values, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Dict.values, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->values, value) == -1)
+ if (PyObject_SetAttr(result, state->values, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Set_kind:
- tp = (PyTypeObject *)state->Set_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Set_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Set.elts, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Set.elts, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->elts, value) == -1)
+ if (PyObject_SetAttr(result, state->elts, value) == -1)
goto failed;
Py_DECREF(value);
break;
case ListComp_kind:
- tp = (PyTypeObject *)state->ListComp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->ListComp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.ListComp.elt);
+ value = ast2obj_expr(state, o->v.ListComp.elt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->elt, value) == -1)
+ if (PyObject_SetAttr(result, state->elt, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.ListComp.generators,
- ast2obj_comprehension);
+ value = ast2obj_list(state, o->v.ListComp.generators,
+ ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->generators, value) == -1)
+ if (PyObject_SetAttr(result, state->generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
case SetComp_kind:
- tp = (PyTypeObject *)state->SetComp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->SetComp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.SetComp.elt);
+ value = ast2obj_expr(state, o->v.SetComp.elt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->elt, value) == -1)
+ if (PyObject_SetAttr(result, state->elt, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.SetComp.generators,
- ast2obj_comprehension);
+ value = ast2obj_list(state, o->v.SetComp.generators,
+ ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->generators, value) == -1)
+ if (PyObject_SetAttr(result, state->generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
case DictComp_kind:
- tp = (PyTypeObject *)state->DictComp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->DictComp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.DictComp.key);
+ value = ast2obj_expr(state, o->v.DictComp.key);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->key, value) == -1)
+ if (PyObject_SetAttr(result, state->key, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.DictComp.value);
+ value = ast2obj_expr(state, o->v.DictComp.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.DictComp.generators,
- ast2obj_comprehension);
+ value = ast2obj_list(state, o->v.DictComp.generators,
+ ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->generators, value) == -1)
+ if (PyObject_SetAttr(result, state->generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
case GeneratorExp_kind:
- tp = (PyTypeObject *)state->GeneratorExp_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->GeneratorExp_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.GeneratorExp.elt);
+ value = ast2obj_expr(state, o->v.GeneratorExp.elt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->elt, value) == -1)
+ if (PyObject_SetAttr(result, state->elt, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.GeneratorExp.generators,
+ value = ast2obj_list(state, o->v.GeneratorExp.generators,
ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->generators, value) == -1)
+ if (PyObject_SetAttr(result, state->generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Await_kind:
- tp = (PyTypeObject *)state->Await_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Await_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Await.value);
+ value = ast2obj_expr(state, o->v.Await.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Yield_kind:
- tp = (PyTypeObject *)state->Yield_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Yield_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Yield.value);
+ value = ast2obj_expr(state, o->v.Yield.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
break;
case YieldFrom_kind:
- tp = (PyTypeObject *)state->YieldFrom_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->YieldFrom_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.YieldFrom.value);
+ value = ast2obj_expr(state, o->v.YieldFrom.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Compare_kind:
- tp = (PyTypeObject *)state->Compare_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Compare_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Compare.left);
+ value = ast2obj_expr(state, o->v.Compare.left);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->left, value) == -1)
+ if (PyObject_SetAttr(result, state->left, value) == -1)
goto failed;
Py_DECREF(value);
{
@@ -4184,224 +4184,224 @@ ast2obj_expr(astmodulestate *state, void* _o)
value = PyList_New(n);
if (!value) goto failed;
for(i = 0; i < n; i++)
- PyList_SET_ITEM(value, i, ast2obj_cmpop(state, (cmpop_ty)asdl_seq_GET(o->v.Compare.ops, i)));
+ PyList_SET_ITEM(value, i, ast2obj_cmpop(state, (cmpop_ty)asdl_seq_GET(o->v.Compare.ops, i)));
}
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ops, value) == -1)
+ if (PyObject_SetAttr(result, state->ops, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Compare.comparators, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Compare.comparators, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->comparators, value) == -1)
+ if (PyObject_SetAttr(result, state->comparators, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Call_kind:
- tp = (PyTypeObject *)state->Call_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Call_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Call.func);
+ value = ast2obj_expr(state, o->v.Call.func);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->func, value) == -1)
+ if (PyObject_SetAttr(result, state->func, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Call.args, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Call.args, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->args, value) == -1)
+ if (PyObject_SetAttr(result, state->args, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.Call.keywords, ast2obj_keyword);
+ value = ast2obj_list(state, o->v.Call.keywords, ast2obj_keyword);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->keywords, value) == -1)
+ if (PyObject_SetAttr(result, state->keywords, value) == -1)
goto failed;
Py_DECREF(value);
break;
case FormattedValue_kind:
- tp = (PyTypeObject *)state->FormattedValue_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->FormattedValue_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.FormattedValue.value);
+ value = ast2obj_expr(state, o->v.FormattedValue.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->v.FormattedValue.conversion);
+ value = ast2obj_int(state, o->v.FormattedValue.conversion);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->conversion, value) == -1)
+ if (PyObject_SetAttr(result, state->conversion, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.FormattedValue.format_spec);
+ value = ast2obj_expr(state, o->v.FormattedValue.format_spec);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->format_spec, value) == -1)
+ if (PyObject_SetAttr(result, state->format_spec, value) == -1)
goto failed;
Py_DECREF(value);
break;
case JoinedStr_kind:
- tp = (PyTypeObject *)state->JoinedStr_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->JoinedStr_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.JoinedStr.values, ast2obj_expr);
+ value = ast2obj_list(state, o->v.JoinedStr.values, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->values, value) == -1)
+ if (PyObject_SetAttr(result, state->values, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Constant_kind:
- tp = (PyTypeObject *)state->Constant_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Constant_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_constant(state, o->v.Constant.value);
+ value = ast2obj_constant(state, o->v.Constant.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_string(state, o->v.Constant.kind);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->kind, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->v.Constant.kind);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->kind, value) == -1)
- goto failed;
- Py_DECREF(value);
break;
case Attribute_kind:
- tp = (PyTypeObject *)state->Attribute_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Attribute_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Attribute.value);
+ value = ast2obj_expr(state, o->v.Attribute.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_identifier(state, o->v.Attribute.attr);
+ value = ast2obj_identifier(state, o->v.Attribute.attr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->attr, value) == -1)
+ if (PyObject_SetAttr(result, state->attr, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr_context(state, o->v.Attribute.ctx);
+ value = ast2obj_expr_context(state, o->v.Attribute.ctx);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ctx, value) == -1)
+ if (PyObject_SetAttr(result, state->ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Subscript_kind:
- tp = (PyTypeObject *)state->Subscript_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Subscript_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Subscript.value);
+ value = ast2obj_expr(state, o->v.Subscript.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->v.Subscript.slice);
+ value = ast2obj_expr(state, o->v.Subscript.slice);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->slice, value) == -1)
+ if (PyObject_SetAttr(result, state->slice, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr_context(state, o->v.Subscript.ctx);
+ value = ast2obj_expr_context(state, o->v.Subscript.ctx);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ctx, value) == -1)
+ if (PyObject_SetAttr(result, state->ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Starred_kind:
- tp = (PyTypeObject *)state->Starred_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Starred_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Starred.value);
+ value = ast2obj_expr(state, o->v.Starred.value);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->value, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr_context(state, o->v.Starred.ctx);
+ value = ast2obj_expr_context(state, o->v.Starred.ctx);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ctx, value) == -1)
+ if (PyObject_SetAttr(result, state->ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Name_kind:
- tp = (PyTypeObject *)state->Name_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Name_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_identifier(state, o->v.Name.id);
+ value = ast2obj_identifier(state, o->v.Name.id);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->id, value) == -1)
+ if (PyObject_SetAttr(result, state->id, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr_context(state, o->v.Name.ctx);
+ value = ast2obj_expr_context(state, o->v.Name.ctx);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ctx, value) == -1)
+ if (PyObject_SetAttr(result, state->ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
case List_kind:
- tp = (PyTypeObject *)state->List_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->List_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.List.elts, ast2obj_expr);
+ value = ast2obj_list(state, o->v.List.elts, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->elts, value) == -1)
+ if (PyObject_SetAttr(result, state->elts, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr_context(state, o->v.List.ctx);
+ value = ast2obj_expr_context(state, o->v.List.ctx);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ctx, value) == -1)
+ if (PyObject_SetAttr(result, state->ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Tuple_kind:
- tp = (PyTypeObject *)state->Tuple_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->Tuple_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(state, o->v.Tuple.elts, ast2obj_expr);
+ value = ast2obj_list(state, o->v.Tuple.elts, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->elts, value) == -1)
+ if (PyObject_SetAttr(result, state->elts, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr_context(state, o->v.Tuple.ctx);
+ value = ast2obj_expr_context(state, o->v.Tuple.ctx);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ctx, value) == -1)
+ if (PyObject_SetAttr(result, state->ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
- case Slice_kind:
- tp = (PyTypeObject *)state->Slice_type;
- result = PyType_GenericNew(tp, NULL, NULL);
- if (!result) goto failed;
- value = ast2obj_expr(state, o->v.Slice.lower);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->lower, value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_expr(state, o->v.Slice.upper);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->upper, value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_expr(state, o->v.Slice.step);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->step, value) == -1)
- goto failed;
- Py_DECREF(value);
- break;
- }
- value = ast2obj_int(state, o->lineno);
+ case Slice_kind:
+ tp = (PyTypeObject *)state->Slice_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
+ if (!result) goto failed;
+ value = ast2obj_expr(state, o->v.Slice.lower);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->lower, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->v.Slice.upper);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->upper, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->v.Slice.step);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->step, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ break;
+ }
+ value = ast2obj_int(state, o->lineno);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->col_offset);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->col_offset, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->end_lineno);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->col_offset);
+ value = ast2obj_int(state, o->end_col_offset);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->col_offset, value) < 0)
+ if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->end_lineno);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->end_col_offset);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
- goto failed;
- Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -4409,162 +4409,162 @@ failed:
return NULL;
}
-PyObject* ast2obj_expr_context(astmodulestate *state, expr_context_ty o)
+PyObject* ast2obj_expr_context(astmodulestate *state, expr_context_ty o)
{
switch(o) {
case Load:
- Py_INCREF(state->Load_singleton);
- return state->Load_singleton;
+ Py_INCREF(state->Load_singleton);
+ return state->Load_singleton;
case Store:
- Py_INCREF(state->Store_singleton);
- return state->Store_singleton;
+ Py_INCREF(state->Store_singleton);
+ return state->Store_singleton;
case Del:
- Py_INCREF(state->Del_singleton);
- return state->Del_singleton;
+ Py_INCREF(state->Del_singleton);
+ return state->Del_singleton;
}
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
-PyObject* ast2obj_boolop(astmodulestate *state, boolop_ty o)
+PyObject* ast2obj_boolop(astmodulestate *state, boolop_ty o)
{
switch(o) {
case And:
- Py_INCREF(state->And_singleton);
- return state->And_singleton;
+ Py_INCREF(state->And_singleton);
+ return state->And_singleton;
case Or:
- Py_INCREF(state->Or_singleton);
- return state->Or_singleton;
+ Py_INCREF(state->Or_singleton);
+ return state->Or_singleton;
}
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
-PyObject* ast2obj_operator(astmodulestate *state, operator_ty o)
+PyObject* ast2obj_operator(astmodulestate *state, operator_ty o)
{
switch(o) {
case Add:
- Py_INCREF(state->Add_singleton);
- return state->Add_singleton;
+ Py_INCREF(state->Add_singleton);
+ return state->Add_singleton;
case Sub:
- Py_INCREF(state->Sub_singleton);
- return state->Sub_singleton;
+ Py_INCREF(state->Sub_singleton);
+ return state->Sub_singleton;
case Mult:
- Py_INCREF(state->Mult_singleton);
- return state->Mult_singleton;
+ Py_INCREF(state->Mult_singleton);
+ return state->Mult_singleton;
case MatMult:
- Py_INCREF(state->MatMult_singleton);
- return state->MatMult_singleton;
+ Py_INCREF(state->MatMult_singleton);
+ return state->MatMult_singleton;
case Div:
- Py_INCREF(state->Div_singleton);
- return state->Div_singleton;
+ Py_INCREF(state->Div_singleton);
+ return state->Div_singleton;
case Mod:
- Py_INCREF(state->Mod_singleton);
- return state->Mod_singleton;
+ Py_INCREF(state->Mod_singleton);
+ return state->Mod_singleton;
case Pow:
- Py_INCREF(state->Pow_singleton);
- return state->Pow_singleton;
+ Py_INCREF(state->Pow_singleton);
+ return state->Pow_singleton;
case LShift:
- Py_INCREF(state->LShift_singleton);
- return state->LShift_singleton;
+ Py_INCREF(state->LShift_singleton);
+ return state->LShift_singleton;
case RShift:
- Py_INCREF(state->RShift_singleton);
- return state->RShift_singleton;
+ Py_INCREF(state->RShift_singleton);
+ return state->RShift_singleton;
case BitOr:
- Py_INCREF(state->BitOr_singleton);
- return state->BitOr_singleton;
+ Py_INCREF(state->BitOr_singleton);
+ return state->BitOr_singleton;
case BitXor:
- Py_INCREF(state->BitXor_singleton);
- return state->BitXor_singleton;
+ Py_INCREF(state->BitXor_singleton);
+ return state->BitXor_singleton;
case BitAnd:
- Py_INCREF(state->BitAnd_singleton);
- return state->BitAnd_singleton;
+ Py_INCREF(state->BitAnd_singleton);
+ return state->BitAnd_singleton;
case FloorDiv:
- Py_INCREF(state->FloorDiv_singleton);
- return state->FloorDiv_singleton;
+ Py_INCREF(state->FloorDiv_singleton);
+ return state->FloorDiv_singleton;
}
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
-PyObject* ast2obj_unaryop(astmodulestate *state, unaryop_ty o)
+PyObject* ast2obj_unaryop(astmodulestate *state, unaryop_ty o)
{
switch(o) {
case Invert:
- Py_INCREF(state->Invert_singleton);
- return state->Invert_singleton;
+ Py_INCREF(state->Invert_singleton);
+ return state->Invert_singleton;
case Not:
- Py_INCREF(state->Not_singleton);
- return state->Not_singleton;
+ Py_INCREF(state->Not_singleton);
+ return state->Not_singleton;
case UAdd:
- Py_INCREF(state->UAdd_singleton);
- return state->UAdd_singleton;
+ Py_INCREF(state->UAdd_singleton);
+ return state->UAdd_singleton;
case USub:
- Py_INCREF(state->USub_singleton);
- return state->USub_singleton;
+ Py_INCREF(state->USub_singleton);
+ return state->USub_singleton;
}
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
-PyObject* ast2obj_cmpop(astmodulestate *state, cmpop_ty o)
+PyObject* ast2obj_cmpop(astmodulestate *state, cmpop_ty o)
{
switch(o) {
case Eq:
- Py_INCREF(state->Eq_singleton);
- return state->Eq_singleton;
+ Py_INCREF(state->Eq_singleton);
+ return state->Eq_singleton;
case NotEq:
- Py_INCREF(state->NotEq_singleton);
- return state->NotEq_singleton;
+ Py_INCREF(state->NotEq_singleton);
+ return state->NotEq_singleton;
case Lt:
- Py_INCREF(state->Lt_singleton);
- return state->Lt_singleton;
+ Py_INCREF(state->Lt_singleton);
+ return state->Lt_singleton;
case LtE:
- Py_INCREF(state->LtE_singleton);
- return state->LtE_singleton;
+ Py_INCREF(state->LtE_singleton);
+ return state->LtE_singleton;
case Gt:
- Py_INCREF(state->Gt_singleton);
- return state->Gt_singleton;
+ Py_INCREF(state->Gt_singleton);
+ return state->Gt_singleton;
case GtE:
- Py_INCREF(state->GtE_singleton);
- return state->GtE_singleton;
+ Py_INCREF(state->GtE_singleton);
+ return state->GtE_singleton;
case Is:
- Py_INCREF(state->Is_singleton);
- return state->Is_singleton;
+ Py_INCREF(state->Is_singleton);
+ return state->Is_singleton;
case IsNot:
- Py_INCREF(state->IsNot_singleton);
- return state->IsNot_singleton;
+ Py_INCREF(state->IsNot_singleton);
+ return state->IsNot_singleton;
case In:
- Py_INCREF(state->In_singleton);
- return state->In_singleton;
+ Py_INCREF(state->In_singleton);
+ return state->In_singleton;
case NotIn:
- Py_INCREF(state->NotIn_singleton);
- return state->NotIn_singleton;
+ Py_INCREF(state->NotIn_singleton);
+ return state->NotIn_singleton;
}
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
PyObject*
-ast2obj_comprehension(astmodulestate *state, void* _o)
+ast2obj_comprehension(astmodulestate *state, void* _o)
{
comprehension_ty o = (comprehension_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
- tp = (PyTypeObject *)state->comprehension_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->comprehension_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) return NULL;
- value = ast2obj_expr(state, o->target);
+ value = ast2obj_expr(state, o->target);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->target, value) == -1)
+ if (PyObject_SetAttr(result, state->target, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->iter);
+ value = ast2obj_expr(state, o->iter);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->iter, value) == -1)
+ if (PyObject_SetAttr(result, state->iter, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->ifs, ast2obj_expr);
+ value = ast2obj_list(state, o->ifs, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->ifs, value) == -1)
+ if (PyObject_SetAttr(result, state->ifs, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->is_async);
+ value = ast2obj_int(state, o->is_async);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->is_async, value) == -1)
+ if (PyObject_SetAttr(result, state->is_async, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -4575,56 +4575,56 @@ failed:
}
PyObject*
-ast2obj_excepthandler(astmodulestate *state, void* _o)
+ast2obj_excepthandler(astmodulestate *state, void* _o)
{
excepthandler_ty o = (excepthandler_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
switch (o->kind) {
case ExceptHandler_kind:
- tp = (PyTypeObject *)state->ExceptHandler_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->ExceptHandler_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(state, o->v.ExceptHandler.type);
+ value = ast2obj_expr(state, o->v.ExceptHandler.type);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type, value) == -1)
+ if (PyObject_SetAttr(result, state->type, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_identifier(state, o->v.ExceptHandler.name);
+ value = ast2obj_identifier(state, o->v.ExceptHandler.name);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->name, value) == -1)
+ if (PyObject_SetAttr(result, state->name, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->v.ExceptHandler.body, ast2obj_stmt);
+ value = ast2obj_list(state, o->v.ExceptHandler.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->body, value) == -1)
+ if (PyObject_SetAttr(result, state->body, value) == -1)
goto failed;
Py_DECREF(value);
break;
}
- value = ast2obj_int(state, o->lineno);
+ value = ast2obj_int(state, o->lineno);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->col_offset);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ if (PyObject_SetAttr(result, state->col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->col_offset);
+ value = ast2obj_int(state, o->end_lineno);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->col_offset, value) < 0)
+ if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->end_col_offset);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->end_lineno);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->end_col_offset);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
- goto failed;
- Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -4633,50 +4633,50 @@ failed:
}
PyObject*
-ast2obj_arguments(astmodulestate *state, void* _o)
+ast2obj_arguments(astmodulestate *state, void* _o)
{
arguments_ty o = (arguments_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
- tp = (PyTypeObject *)state->arguments_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->arguments_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) return NULL;
- value = ast2obj_list(state, o->posonlyargs, ast2obj_arg);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->posonlyargs, value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_list(state, o->args, ast2obj_arg);
+ value = ast2obj_list(state, o->posonlyargs, ast2obj_arg);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->args, value) == -1)
+ if (PyObject_SetAttr(result, state->posonlyargs, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_arg(state, o->vararg);
+ value = ast2obj_list(state, o->args, ast2obj_arg);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->vararg, value) == -1)
+ if (PyObject_SetAttr(result, state->args, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->kwonlyargs, ast2obj_arg);
+ value = ast2obj_arg(state, o->vararg);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->kwonlyargs, value) == -1)
+ if (PyObject_SetAttr(result, state->vararg, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->kw_defaults, ast2obj_expr);
+ value = ast2obj_list(state, o->kwonlyargs, ast2obj_arg);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->kw_defaults, value) == -1)
+ if (PyObject_SetAttr(result, state->kwonlyargs, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_arg(state, o->kwarg);
+ value = ast2obj_list(state, o->kw_defaults, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->kwarg, value) == -1)
+ if (PyObject_SetAttr(result, state->kw_defaults, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(state, o->defaults, ast2obj_expr);
+ value = ast2obj_arg(state, o->kwarg);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->defaults, value) == -1)
+ if (PyObject_SetAttr(result, state->kwarg, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_list(state, o->defaults, ast2obj_expr);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->defaults, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -4687,52 +4687,52 @@ failed:
}
PyObject*
-ast2obj_arg(astmodulestate *state, void* _o)
+ast2obj_arg(astmodulestate *state, void* _o)
{
arg_ty o = (arg_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
- tp = (PyTypeObject *)state->arg_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->arg_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) return NULL;
- value = ast2obj_identifier(state, o->arg);
+ value = ast2obj_identifier(state, o->arg);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->arg, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->annotation);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->annotation, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_string(state, o->type_comment);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->type_comment, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->lineno);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->arg, value) == -1)
+ if (PyObject_SetAttr(result, state->lineno, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->annotation);
+ value = ast2obj_int(state, o->col_offset);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->annotation, value) == -1)
+ if (PyObject_SetAttr(result, state->col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_string(state, o->type_comment);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->type_comment, value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->lineno);
+ value = ast2obj_int(state, o->end_lineno);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->col_offset);
+ value = ast2obj_int(state, o->end_col_offset);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->col_offset, value) < 0)
+ if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->end_lineno);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->end_col_offset);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
- goto failed;
- Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -4741,47 +4741,47 @@ failed:
}
PyObject*
-ast2obj_keyword(astmodulestate *state, void* _o)
+ast2obj_keyword(astmodulestate *state, void* _o)
{
keyword_ty o = (keyword_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
- tp = (PyTypeObject *)state->keyword_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->keyword_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) return NULL;
- value = ast2obj_identifier(state, o->arg);
+ value = ast2obj_identifier(state, o->arg);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->arg, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(state, o->value);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->value, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->lineno);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->col_offset);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->arg, value) == -1)
+ if (PyObject_SetAttr(result, state->col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->value);
+ value = ast2obj_int(state, o->end_lineno);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->value, value) == -1)
+ if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(state, o->end_col_offset);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
- value = ast2obj_int(state, o->lineno);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->lineno, value) < 0)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->col_offset);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->col_offset, value) < 0)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->end_lineno);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_lineno, value) < 0)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_int(state, o->end_col_offset);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->end_col_offset, value) < 0)
- goto failed;
- Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -4790,25 +4790,25 @@ failed:
}
PyObject*
-ast2obj_alias(astmodulestate *state, void* _o)
+ast2obj_alias(astmodulestate *state, void* _o)
{
alias_ty o = (alias_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
- tp = (PyTypeObject *)state->alias_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->alias_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) return NULL;
- value = ast2obj_identifier(state, o->name);
+ value = ast2obj_identifier(state, o->name);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->name, value) == -1)
+ if (PyObject_SetAttr(result, state->name, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_identifier(state, o->asname);
+ value = ast2obj_identifier(state, o->asname);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->asname, value) == -1)
+ if (PyObject_SetAttr(result, state->asname, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -4819,25 +4819,25 @@ failed:
}
PyObject*
-ast2obj_withitem(astmodulestate *state, void* _o)
+ast2obj_withitem(astmodulestate *state, void* _o)
{
withitem_ty o = (withitem_ty)_o;
PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
+ PyTypeObject *tp;
if (!o) {
Py_RETURN_NONE;
}
- tp = (PyTypeObject *)state->withitem_type;
- result = PyType_GenericNew(tp, NULL, NULL);
+ tp = (PyTypeObject *)state->withitem_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
if (!result) return NULL;
- value = ast2obj_expr(state, o->context_expr);
+ value = ast2obj_expr(state, o->context_expr);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->context_expr, value) == -1)
+ if (PyObject_SetAttr(result, state->context_expr, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_expr(state, o->optional_vars);
+ value = ast2obj_expr(state, o->optional_vars);
if (!value) goto failed;
- if (PyObject_SetAttr(result, state->optional_vars, value) == -1)
+ if (PyObject_SetAttr(result, state->optional_vars, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -4847,62 +4847,62 @@ failed:
return NULL;
}
-PyObject*
-ast2obj_type_ignore(astmodulestate *state, void* _o)
-{
- type_ignore_ty o = (type_ignore_ty)_o;
- PyObject *result = NULL, *value = NULL;
- PyTypeObject *tp;
- if (!o) {
- Py_RETURN_NONE;
- }
- switch (o->kind) {
- case TypeIgnore_kind:
- tp = (PyTypeObject *)state->TypeIgnore_type;
- result = PyType_GenericNew(tp, NULL, NULL);
- if (!result) goto failed;
- value = ast2obj_int(state, o->v.TypeIgnore.lineno);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->lineno, value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_string(state, o->v.TypeIgnore.tag);
- if (!value) goto failed;
- if (PyObject_SetAttr(result, state->tag, value) == -1)
- goto failed;
- Py_DECREF(value);
- break;
- }
- return result;
-failed:
- Py_XDECREF(value);
- Py_XDECREF(result);
- return NULL;
-}
-
-
+PyObject*
+ast2obj_type_ignore(astmodulestate *state, void* _o)
+{
+ type_ignore_ty o = (type_ignore_ty)_o;
+ PyObject *result = NULL, *value = NULL;
+ PyTypeObject *tp;
+ if (!o) {
+ Py_RETURN_NONE;
+ }
+ switch (o->kind) {
+ case TypeIgnore_kind:
+ tp = (PyTypeObject *)state->TypeIgnore_type;
+ result = PyType_GenericNew(tp, NULL, NULL);
+ if (!result) goto failed;
+ value = ast2obj_int(state, o->v.TypeIgnore.lineno);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->lineno, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_string(state, o->v.TypeIgnore.tag);
+ if (!value) goto failed;
+ if (PyObject_SetAttr(result, state->tag, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ break;
+ }
+ return result;
+failed:
+ Py_XDECREF(value);
+ Py_XDECREF(result);
+ return NULL;
+}
+
+
int
-obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
+obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
{
int isinstance;
PyObject *tmp = NULL;
- PyObject *tp;
+ PyObject *tp;
if (obj == Py_None) {
*out = NULL;
return 0;
}
- tp = state->Module_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Module_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* body;
- asdl_seq* type_ignores;
+ asdl_seq* type_ignores;
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -4914,7 +4914,7 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Module field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Module field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -4922,14 +4922,14 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Module' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Module' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Module field \"body\" changed size during iteration");
@@ -4939,56 +4939,56 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_ignores, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"type_ignores\" missing from Module");
- return 1;
- }
- else {
- int res;
- Py_ssize_t len;
- Py_ssize_t i;
- if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Module field \"type_ignores\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
- goto failed;
- }
- len = PyList_GET_SIZE(tmp);
- type_ignores = _Py_asdl_seq_new(len, arena);
- if (type_ignores == NULL) goto failed;
- for (i = 0; i < len; i++) {
- type_ignore_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Module' node")) {
- goto failed;
- }
- res = obj2ast_type_ignore(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
- if (res != 0) goto failed;
- if (len != PyList_GET_SIZE(tmp)) {
- PyErr_SetString(PyExc_RuntimeError, "Module field \"type_ignores\" changed size during iteration");
- goto failed;
- }
- asdl_seq_SET(type_ignores, i, val);
- }
- Py_CLEAR(tmp);
- }
- *out = Module(body, type_ignores, arena);
+ if (_PyObject_LookupAttr(obj, state->type_ignores, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"type_ignores\" missing from Module");
+ return 1;
+ }
+ else {
+ int res;
+ Py_ssize_t len;
+ Py_ssize_t i;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "Module field \"type_ignores\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ type_ignores = _Py_asdl_seq_new(len, arena);
+ if (type_ignores == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ type_ignore_ty val;
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Module' node")) {
+ goto failed;
+ }
+ res = obj2ast_type_ignore(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
+ if (res != 0) goto failed;
+ if (len != PyList_GET_SIZE(tmp)) {
+ PyErr_SetString(PyExc_RuntimeError, "Module field \"type_ignores\" changed size during iteration");
+ goto failed;
+ }
+ asdl_seq_SET(type_ignores, i, val);
+ }
+ Py_CLEAR(tmp);
+ }
+ *out = Module(body, type_ignores, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Interactive_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Interactive_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* body;
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5000,7 +5000,7 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Interactive field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Interactive field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5008,14 +5008,14 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Interactive' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Interactive' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Interactive field \"body\" changed size during iteration");
@@ -5029,15 +5029,15 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Expression_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Expression_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
expr_ty body;
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5046,11 +5046,11 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Expression' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &body, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Expression' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &body, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
@@ -5058,73 +5058,73 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
if (*out == NULL) goto failed;
return 0;
}
- tp = state->FunctionType_type;
- isinstance = PyObject_IsInstance(obj, tp);
- if (isinstance == -1) {
- return 1;
- }
- if (isinstance) {
- asdl_seq* argtypes;
- expr_ty returns;
-
- if (_PyObject_LookupAttr(obj, state->argtypes, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"argtypes\" missing from FunctionType");
- return 1;
- }
- else {
- int res;
- Py_ssize_t len;
- Py_ssize_t i;
- if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "FunctionType field \"argtypes\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
- goto failed;
- }
- len = PyList_GET_SIZE(tmp);
- argtypes = _Py_asdl_seq_new(len, arena);
- if (argtypes == NULL) goto failed;
- for (i = 0; i < len; i++) {
- expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'FunctionType' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
- if (res != 0) goto failed;
- if (len != PyList_GET_SIZE(tmp)) {
- PyErr_SetString(PyExc_RuntimeError, "FunctionType field \"argtypes\" changed size during iteration");
- goto failed;
- }
- asdl_seq_SET(argtypes, i, val);
- }
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"returns\" missing from FunctionType");
- return 1;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'FunctionType' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &returns, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = FunctionType(argtypes, returns, arena);
- if (*out == NULL) goto failed;
- return 0;
- }
+ tp = state->FunctionType_type;
+ isinstance = PyObject_IsInstance(obj, tp);
+ if (isinstance == -1) {
+ return 1;
+ }
+ if (isinstance) {
+ asdl_seq* argtypes;
+ expr_ty returns;
+
+ if (_PyObject_LookupAttr(obj, state->argtypes, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"argtypes\" missing from FunctionType");
+ return 1;
+ }
+ else {
+ int res;
+ Py_ssize_t len;
+ Py_ssize_t i;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "FunctionType field \"argtypes\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ argtypes = _Py_asdl_seq_new(len, arena);
+ if (argtypes == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ expr_ty val;
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionType' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
+ if (res != 0) goto failed;
+ if (len != PyList_GET_SIZE(tmp)) {
+ PyErr_SetString(PyExc_RuntimeError, "FunctionType field \"argtypes\" changed size during iteration");
+ goto failed;
+ }
+ asdl_seq_SET(argtypes, i, val);
+ }
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"returns\" missing from FunctionType");
+ return 1;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionType' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &returns, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = FunctionType(argtypes, returns, arena);
+ if (*out == NULL) goto failed;
+ return 0;
+ }
PyErr_Format(PyExc_TypeError, "expected some sort of mod, but got %R", obj);
failed:
@@ -5133,22 +5133,22 @@ obj2ast_mod(astmodulestate *state, PyObject* obj, mod_ty* out, PyArena* arena)
}
int
-obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
+obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
{
int isinstance;
PyObject *tmp = NULL;
- PyObject *tp;
+ PyObject *tp;
int lineno;
int col_offset;
- int end_lineno;
- int end_col_offset;
+ int end_lineno;
+ int end_col_offset;
if (obj == Py_None) {
*out = NULL;
return 0;
}
- if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5157,15 +5157,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &lineno, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &lineno, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5174,50 +5174,50 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &col_offset, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &col_offset, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_lineno = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_lineno, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_col_offset = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_col_offset, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- tp = state->FunctionDef_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_lineno = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_lineno, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_col_offset = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'stmt' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_col_offset, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ tp = state->FunctionDef_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -5227,9 +5227,9 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* decorator_list;
expr_ty returns;
- string type_comment;
+ string type_comment;
- if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5238,15 +5238,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &name, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &name, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5255,15 +5255,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_arguments(state, tmp, &args, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_arguments(state, tmp, &args, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5275,7 +5275,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "FunctionDef field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "FunctionDef field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5283,14 +5283,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "FunctionDef field \"body\" changed size during iteration");
@@ -5300,7 +5300,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5312,7 +5312,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "FunctionDef field \"decorator_list\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "FunctionDef field \"decorator_list\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5320,14 +5320,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (decorator_list == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "FunctionDef field \"decorator_list\" changed size during iteration");
@@ -5337,7 +5337,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -5346,39 +5346,39 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &returns, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &returns, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'FunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = FunctionDef(name, args, body, decorator_list, returns,
- type_comment, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = FunctionDef(name, args, body, decorator_list, returns,
+ type_comment, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->AsyncFunctionDef_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->AsyncFunctionDef_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -5388,9 +5388,9 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* decorator_list;
expr_ty returns;
- string type_comment;
+ string type_comment;
- if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5399,15 +5399,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &name, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &name, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5416,15 +5416,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_arguments(state, tmp, &args, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_arguments(state, tmp, &args, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5436,7 +5436,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "AsyncFunctionDef field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "AsyncFunctionDef field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5444,14 +5444,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "AsyncFunctionDef field \"body\" changed size during iteration");
@@ -5461,7 +5461,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5473,7 +5473,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "AsyncFunctionDef field \"decorator_list\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "AsyncFunctionDef field \"decorator_list\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5481,14 +5481,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (decorator_list == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "AsyncFunctionDef field \"decorator_list\" changed size during iteration");
@@ -5498,7 +5498,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -5507,39 +5507,39 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &returns, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &returns, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFunctionDef' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
*out = AsyncFunctionDef(name, args, body, decorator_list, returns,
- type_comment, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ type_comment, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->ClassDef_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->ClassDef_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -5550,7 +5550,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* decorator_list;
- if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5559,15 +5559,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &name, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &name, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->bases, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->bases, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5579,7 +5579,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "ClassDef field \"bases\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "ClassDef field \"bases\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5587,14 +5587,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (bases == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"bases\" changed size during iteration");
@@ -5604,7 +5604,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->keywords, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->keywords, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5616,7 +5616,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "ClassDef field \"keywords\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "ClassDef field \"keywords\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5624,14 +5624,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (keywords == NULL) goto failed;
for (i = 0; i < len; i++) {
keyword_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
- goto failed;
- }
- res = obj2ast_keyword(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_keyword(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"keywords\" changed size during iteration");
@@ -5641,7 +5641,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5653,7 +5653,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "ClassDef field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "ClassDef field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5661,14 +5661,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"body\" changed size during iteration");
@@ -5678,7 +5678,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5690,7 +5690,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "ClassDef field \"decorator_list\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "ClassDef field \"decorator_list\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5698,14 +5698,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (decorator_list == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'ClassDef' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"decorator_list\" changed size during iteration");
@@ -5716,19 +5716,19 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_CLEAR(tmp);
}
*out = ClassDef(name, bases, keywords, body, decorator_list, lineno,
- col_offset, end_lineno, end_col_offset, arena);
+ col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Return_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Return_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
expr_ty value;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -5737,28 +5737,28 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Return' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Return' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Return(value, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Return(value, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Delete_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Delete_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* targets;
- if (_PyObject_LookupAttr(obj, state->targets, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->targets, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5770,7 +5770,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Delete field \"targets\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Delete field \"targets\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5778,14 +5778,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (targets == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Delete' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Delete' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Delete field \"targets\" changed size during iteration");
@@ -5795,22 +5795,22 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Delete(targets, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Delete(targets, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Assign_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Assign_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* targets;
expr_ty value;
- string type_comment;
+ string type_comment;
- if (_PyObject_LookupAttr(obj, state->targets, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->targets, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5822,7 +5822,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Assign field \"targets\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Assign field \"targets\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -5830,14 +5830,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (targets == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Assign' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Assign' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Assign field \"targets\" changed size during iteration");
@@ -5847,7 +5847,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5856,38 +5856,38 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Assign' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Assign' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'Assign' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'Assign' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = Assign(targets, value, type_comment, lineno, col_offset,
- end_lineno, end_col_offset, arena);
+ *out = Assign(targets, value, type_comment, lineno, col_offset,
+ end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->AugAssign_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->AugAssign_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -5896,7 +5896,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
operator_ty op;
expr_ty value;
- if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5905,15 +5905,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AugAssign' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &target, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AugAssign' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &target, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5922,15 +5922,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AugAssign' node")) {
- goto failed;
- }
- res = obj2ast_operator(state, tmp, &op, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AugAssign' node")) {
+ goto failed;
+ }
+ res = obj2ast_operator(state, tmp, &op, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5939,21 +5939,21 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AugAssign' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AugAssign' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = AugAssign(target, op, value, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = AugAssign(target, op, value, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->AnnAssign_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->AnnAssign_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -5963,7 +5963,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty value;
int simple;
- if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5972,15 +5972,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &target, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &target, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->annotation, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->annotation, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -5989,15 +5989,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &annotation, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &annotation, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -6006,15 +6006,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->simple, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->simple, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6023,21 +6023,21 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &simple, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AnnAssign' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &simple, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
*out = AnnAssign(target, annotation, value, simple, lineno, col_offset,
- end_lineno, end_col_offset, arena);
+ end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->For_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->For_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -6046,9 +6046,9 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty iter;
asdl_seq* body;
asdl_seq* orelse;
- string type_comment;
+ string type_comment;
- if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6057,15 +6057,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &target, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &target, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6074,15 +6074,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &iter, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &iter, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6094,7 +6094,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "For field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "For field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6102,14 +6102,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "For field \"body\" changed size during iteration");
@@ -6119,7 +6119,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6131,7 +6131,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "For field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "For field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6139,14 +6139,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (orelse == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "For field \"orelse\" changed size during iteration");
@@ -6156,30 +6156,30 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = For(target, iter, body, orelse, type_comment, lineno,
- col_offset, end_lineno, end_col_offset, arena);
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'For' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = For(target, iter, body, orelse, type_comment, lineno,
+ col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->AsyncFor_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->AsyncFor_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -6188,9 +6188,9 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty iter;
asdl_seq* body;
asdl_seq* orelse;
- string type_comment;
+ string type_comment;
- if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6199,15 +6199,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &target, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &target, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6216,15 +6216,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &iter, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &iter, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6236,7 +6236,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "AsyncFor field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "AsyncFor field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6244,14 +6244,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "AsyncFor field \"body\" changed size during iteration");
@@ -6261,7 +6261,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6273,7 +6273,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "AsyncFor field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "AsyncFor field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6281,14 +6281,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (orelse == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "AsyncFor field \"orelse\" changed size during iteration");
@@ -6298,30 +6298,30 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = AsyncFor(target, iter, body, orelse, type_comment, lineno,
- col_offset, end_lineno, end_col_offset, arena);
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncFor' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = AsyncFor(target, iter, body, orelse, type_comment, lineno,
+ col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->While_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->While_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -6330,7 +6330,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* orelse;
- if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6339,15 +6339,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'While' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &test, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'While' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &test, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6359,7 +6359,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "While field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "While field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6367,14 +6367,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'While' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'While' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "While field \"body\" changed size during iteration");
@@ -6384,7 +6384,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6396,7 +6396,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "While field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "While field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6404,14 +6404,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (orelse == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'While' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'While' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "While field \"orelse\" changed size during iteration");
@@ -6421,13 +6421,13 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = While(test, body, orelse, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = While(test, body, orelse, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->If_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->If_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -6436,7 +6436,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* orelse;
- if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6445,15 +6445,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'If' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &test, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'If' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &test, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6465,7 +6465,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "If field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "If field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6473,14 +6473,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'If' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'If' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "If field \"body\" changed size during iteration");
@@ -6490,7 +6490,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6502,7 +6502,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "If field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "If field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6510,14 +6510,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (orelse == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'If' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'If' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "If field \"orelse\" changed size during iteration");
@@ -6527,22 +6527,22 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = If(test, body, orelse, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = If(test, body, orelse, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->With_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->With_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* items;
asdl_seq* body;
- string type_comment;
+ string type_comment;
- if (_PyObject_LookupAttr(obj, state->items, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->items, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6554,7 +6554,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "With field \"items\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "With field \"items\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6562,14 +6562,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (items == NULL) goto failed;
for (i = 0; i < len; i++) {
withitem_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'With' node")) {
- goto failed;
- }
- res = obj2ast_withitem(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'With' node")) {
+ goto failed;
+ }
+ res = obj2ast_withitem(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "With field \"items\" changed size during iteration");
@@ -6579,7 +6579,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6591,7 +6591,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "With field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "With field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6599,14 +6599,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'With' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'With' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "With field \"body\" changed size during iteration");
@@ -6616,39 +6616,39 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'With' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = With(items, body, type_comment, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'With' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = With(items, body, type_comment, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->AsyncWith_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->AsyncWith_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* items;
asdl_seq* body;
- string type_comment;
+ string type_comment;
- if (_PyObject_LookupAttr(obj, state->items, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->items, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6660,7 +6660,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "AsyncWith field \"items\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "AsyncWith field \"items\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6668,14 +6668,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (items == NULL) goto failed;
for (i = 0; i < len; i++) {
withitem_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'AsyncWith' node")) {
- goto failed;
- }
- res = obj2ast_withitem(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncWith' node")) {
+ goto failed;
+ }
+ res = obj2ast_withitem(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "AsyncWith field \"items\" changed size during iteration");
@@ -6685,7 +6685,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6697,7 +6697,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "AsyncWith field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "AsyncWith field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6705,14 +6705,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'AsyncWith' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncWith' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "AsyncWith field \"body\" changed size during iteration");
@@ -6722,30 +6722,30 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'AsyncWith' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = AsyncWith(items, body, type_comment, lineno, col_offset,
- end_lineno, end_col_offset, arena);
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'AsyncWith' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = AsyncWith(items, body, type_comment, lineno, col_offset,
+ end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Raise_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Raise_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -6753,7 +6753,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty exc;
expr_ty cause;
- if (_PyObject_LookupAttr(obj, state->exc, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->exc, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -6762,15 +6762,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Raise' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &exc, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Raise' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &exc, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->cause, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->cause, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -6779,21 +6779,21 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Raise' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &cause, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Raise' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &cause, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Raise(exc, cause, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Raise(exc, cause, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Try_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Try_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -6803,7 +6803,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* orelse;
asdl_seq* finalbody;
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6815,7 +6815,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Try field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Try field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6823,14 +6823,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Try field \"body\" changed size during iteration");
@@ -6840,7 +6840,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->handlers, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->handlers, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6852,7 +6852,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Try field \"handlers\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Try field \"handlers\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6860,14 +6860,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (handlers == NULL) goto failed;
for (i = 0; i < len; i++) {
excepthandler_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
- goto failed;
- }
- res = obj2ast_excepthandler(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
+ goto failed;
+ }
+ res = obj2ast_excepthandler(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Try field \"handlers\" changed size during iteration");
@@ -6877,7 +6877,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6889,7 +6889,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Try field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Try field \"orelse\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6897,14 +6897,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (orelse == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Try field \"orelse\" changed size during iteration");
@@ -6914,7 +6914,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->finalbody, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->finalbody, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6926,7 +6926,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Try field \"finalbody\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Try field \"finalbody\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -6934,14 +6934,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (finalbody == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Try' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Try field \"finalbody\" changed size during iteration");
@@ -6952,12 +6952,12 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_CLEAR(tmp);
}
*out = Try(body, handlers, orelse, finalbody, lineno, col_offset,
- end_lineno, end_col_offset, arena);
+ end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Assert_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Assert_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -6965,7 +6965,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty test;
expr_ty msg;
- if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -6974,15 +6974,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Assert' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &test, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Assert' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &test, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->msg, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->msg, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -6991,28 +6991,28 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Assert' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &msg, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Assert' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &msg, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Assert(test, msg, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Assert(test, msg, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Import_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Import_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* names;
- if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7024,7 +7024,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Import field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Import field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7032,14 +7032,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (names == NULL) goto failed;
for (i = 0; i < len; i++) {
alias_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Import' node")) {
- goto failed;
- }
- res = obj2ast_alias(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Import' node")) {
+ goto failed;
+ }
+ res = obj2ast_alias(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Import field \"names\" changed size during iteration");
@@ -7049,13 +7049,13 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Import(names, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Import(names, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->ImportFrom_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->ImportFrom_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7064,7 +7064,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* names;
int level;
- if (_PyObject_LookupAttr(obj, state->module, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->module, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -7073,15 +7073,15 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'ImportFrom' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &module, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'ImportFrom' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &module, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7093,7 +7093,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "ImportFrom field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "ImportFrom field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7101,14 +7101,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (names == NULL) goto failed;
for (i = 0; i < len; i++) {
alias_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'ImportFrom' node")) {
- goto failed;
- }
- res = obj2ast_alias(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'ImportFrom' node")) {
+ goto failed;
+ }
+ res = obj2ast_alias(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "ImportFrom field \"names\" changed size during iteration");
@@ -7118,7 +7118,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->level, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->level, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -7127,28 +7127,28 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'ImportFrom' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &level, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'ImportFrom' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &level, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = ImportFrom(module, names, level, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = ImportFrom(module, names, level, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Global_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Global_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* names;
- if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7160,7 +7160,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Global field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Global field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7168,14 +7168,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (names == NULL) goto failed;
for (i = 0; i < len; i++) {
identifier val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Global' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Global' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Global field \"names\" changed size during iteration");
@@ -7185,20 +7185,20 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Global(names, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Global(names, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Nonlocal_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Nonlocal_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* names;
- if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7210,7 +7210,7 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Nonlocal field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Nonlocal field \"names\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7218,14 +7218,14 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
if (names == NULL) goto failed;
for (i = 0; i < len; i++) {
identifier val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Nonlocal' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Nonlocal' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Nonlocal field \"names\" changed size during iteration");
@@ -7235,20 +7235,20 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Nonlocal(names, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Nonlocal(names, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Expr_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Expr_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
expr_ty value;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7257,49 +7257,49 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Expr' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Expr' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Expr(value, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Expr(value, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Pass_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Pass_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
- *out = Pass(lineno, col_offset, end_lineno, end_col_offset, arena);
+ *out = Pass(lineno, col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Break_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Break_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
- *out = Break(lineno, col_offset, end_lineno, end_col_offset, arena);
+ *out = Break(lineno, col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Continue_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Continue_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
- *out = Continue(lineno, col_offset, end_lineno, end_col_offset, arena);
+ *out = Continue(lineno, col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
@@ -7311,22 +7311,22 @@ obj2ast_stmt(astmodulestate *state, PyObject* obj, stmt_ty* out, PyArena* arena)
}
int
-obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
+obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
{
int isinstance;
PyObject *tmp = NULL;
- PyObject *tp;
+ PyObject *tp;
int lineno;
int col_offset;
- int end_lineno;
- int end_col_offset;
+ int end_lineno;
+ int end_col_offset;
if (obj == Py_None) {
*out = NULL;
return 0;
}
- if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7335,15 +7335,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &lineno, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &lineno, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7352,50 +7352,50 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &col_offset, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &col_offset, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_lineno = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_lineno, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_col_offset = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_col_offset, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- tp = state->BoolOp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_lineno = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_lineno, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_col_offset = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'expr' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_col_offset, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ tp = state->BoolOp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7403,7 +7403,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
boolop_ty op;
asdl_seq* values;
- if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7412,15 +7412,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'BoolOp' node")) {
- goto failed;
- }
- res = obj2ast_boolop(state, tmp, &op, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'BoolOp' node")) {
+ goto failed;
+ }
+ res = obj2ast_boolop(state, tmp, &op, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7432,7 +7432,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "BoolOp field \"values\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "BoolOp field \"values\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7440,14 +7440,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (values == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'BoolOp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'BoolOp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "BoolOp field \"values\" changed size during iteration");
@@ -7457,61 +7457,61 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = BoolOp(op, values, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = BoolOp(op, values, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
+ if (*out == NULL) goto failed;
+ return 0;
+ }
+ tp = state->NamedExpr_type;
+ isinstance = PyObject_IsInstance(obj, tp);
+ if (isinstance == -1) {
+ return 1;
+ }
+ if (isinstance) {
+ expr_ty target;
+ expr_ty value;
+
+ if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from NamedExpr");
+ return 1;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'NamedExpr' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &target, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from NamedExpr");
+ return 1;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'NamedExpr' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = NamedExpr(target, value, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->NamedExpr_type;
- isinstance = PyObject_IsInstance(obj, tp);
- if (isinstance == -1) {
- return 1;
- }
- if (isinstance) {
- expr_ty target;
- expr_ty value;
-
- if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from NamedExpr");
- return 1;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'NamedExpr' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &target, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from NamedExpr");
- return 1;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'NamedExpr' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = NamedExpr(target, value, lineno, col_offset, end_lineno,
- end_col_offset, arena);
- if (*out == NULL) goto failed;
- return 0;
- }
- tp = state->BinOp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->BinOp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7520,7 +7520,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
operator_ty op;
expr_ty right;
- if (_PyObject_LookupAttr(obj, state->left, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->left, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7529,15 +7529,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'BinOp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &left, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'BinOp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &left, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7546,15 +7546,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'BinOp' node")) {
- goto failed;
- }
- res = obj2ast_operator(state, tmp, &op, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'BinOp' node")) {
+ goto failed;
+ }
+ res = obj2ast_operator(state, tmp, &op, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->right, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->right, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7563,21 +7563,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'BinOp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &right, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'BinOp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &right, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = BinOp(left, op, right, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = BinOp(left, op, right, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->UnaryOp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->UnaryOp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7585,7 +7585,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
unaryop_ty op;
expr_ty operand;
- if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7594,15 +7594,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'UnaryOp' node")) {
- goto failed;
- }
- res = obj2ast_unaryop(state, tmp, &op, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'UnaryOp' node")) {
+ goto failed;
+ }
+ res = obj2ast_unaryop(state, tmp, &op, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->operand, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->operand, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7611,21 +7611,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'UnaryOp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &operand, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'UnaryOp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &operand, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = UnaryOp(op, operand, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = UnaryOp(op, operand, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Lambda_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Lambda_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7633,7 +7633,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
arguments_ty args;
expr_ty body;
- if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7642,15 +7642,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Lambda' node")) {
- goto failed;
- }
- res = obj2ast_arguments(state, tmp, &args, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Lambda' node")) {
+ goto failed;
+ }
+ res = obj2ast_arguments(state, tmp, &args, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7659,21 +7659,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Lambda' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &body, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Lambda' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &body, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Lambda(args, body, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Lambda(args, body, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->IfExp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->IfExp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7682,7 +7682,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty body;
expr_ty orelse;
- if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7691,15 +7691,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'IfExp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &test, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'IfExp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &test, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7708,15 +7708,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'IfExp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &body, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'IfExp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &body, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7725,21 +7725,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'IfExp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &orelse, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'IfExp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &orelse, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = IfExp(test, body, orelse, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = IfExp(test, body, orelse, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Dict_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Dict_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7747,7 +7747,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
asdl_seq* keys;
asdl_seq* values;
- if (_PyObject_LookupAttr(obj, state->keys, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->keys, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7759,7 +7759,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Dict field \"keys\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Dict field \"keys\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7767,14 +7767,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (keys == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Dict' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Dict' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Dict field \"keys\" changed size during iteration");
@@ -7784,7 +7784,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7796,7 +7796,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Dict field \"values\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Dict field \"values\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7804,14 +7804,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (values == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Dict' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Dict' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Dict field \"values\" changed size during iteration");
@@ -7821,20 +7821,20 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Dict(keys, values, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Dict(keys, values, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Set_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Set_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* elts;
- if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7846,7 +7846,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Set field \"elts\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Set field \"elts\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7854,14 +7854,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (elts == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Set' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Set' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Set field \"elts\" changed size during iteration");
@@ -7871,12 +7871,12 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Set(elts, lineno, col_offset, end_lineno, end_col_offset, arena);
+ *out = Set(elts, lineno, col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->ListComp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->ListComp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7884,7 +7884,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty elt;
asdl_seq* generators;
- if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7893,15 +7893,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'ListComp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &elt, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'ListComp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &elt, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7913,7 +7913,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "ListComp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "ListComp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7921,14 +7921,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (generators == NULL) goto failed;
for (i = 0; i < len; i++) {
comprehension_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'ListComp' node")) {
- goto failed;
- }
- res = obj2ast_comprehension(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'ListComp' node")) {
+ goto failed;
+ }
+ res = obj2ast_comprehension(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "ListComp field \"generators\" changed size during iteration");
@@ -7938,13 +7938,13 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = ListComp(elt, generators, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = ListComp(elt, generators, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->SetComp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->SetComp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -7952,7 +7952,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty elt;
asdl_seq* generators;
- if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7961,15 +7961,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'SetComp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &elt, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'SetComp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &elt, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -7981,7 +7981,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "SetComp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "SetComp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -7989,14 +7989,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (generators == NULL) goto failed;
for (i = 0; i < len; i++) {
comprehension_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'SetComp' node")) {
- goto failed;
- }
- res = obj2ast_comprehension(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'SetComp' node")) {
+ goto failed;
+ }
+ res = obj2ast_comprehension(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "SetComp field \"generators\" changed size during iteration");
@@ -8006,13 +8006,13 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = SetComp(elt, generators, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = SetComp(elt, generators, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->DictComp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->DictComp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8021,7 +8021,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty value;
asdl_seq* generators;
- if (_PyObject_LookupAttr(obj, state->key, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->key, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8030,15 +8030,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'DictComp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &key, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'DictComp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &key, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8047,15 +8047,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'DictComp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'DictComp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8067,7 +8067,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "DictComp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "DictComp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8075,14 +8075,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (generators == NULL) goto failed;
for (i = 0; i < len; i++) {
comprehension_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'DictComp' node")) {
- goto failed;
- }
- res = obj2ast_comprehension(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'DictComp' node")) {
+ goto failed;
+ }
+ res = obj2ast_comprehension(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "DictComp field \"generators\" changed size during iteration");
@@ -8092,13 +8092,13 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = DictComp(key, value, generators, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = DictComp(key, value, generators, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->GeneratorExp_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->GeneratorExp_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8106,7 +8106,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty elt;
asdl_seq* generators;
- if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8115,15 +8115,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'GeneratorExp' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &elt, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'GeneratorExp' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &elt, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8135,7 +8135,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "GeneratorExp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "GeneratorExp field \"generators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8143,14 +8143,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (generators == NULL) goto failed;
for (i = 0; i < len; i++) {
comprehension_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'GeneratorExp' node")) {
- goto failed;
- }
- res = obj2ast_comprehension(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'GeneratorExp' node")) {
+ goto failed;
+ }
+ res = obj2ast_comprehension(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "GeneratorExp field \"generators\" changed size during iteration");
@@ -8160,20 +8160,20 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = GeneratorExp(elt, generators, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = GeneratorExp(elt, generators, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Await_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Await_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
expr_ty value;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8182,28 +8182,28 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Await' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Await' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Await(value, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Await(value, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Yield_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Yield_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
expr_ty value;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -8212,28 +8212,28 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Yield' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Yield' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Yield(value, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Yield(value, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->YieldFrom_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->YieldFrom_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
expr_ty value;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8242,21 +8242,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'YieldFrom' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'YieldFrom' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = YieldFrom(value, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = YieldFrom(value, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Compare_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Compare_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8265,7 +8265,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
asdl_int_seq* ops;
asdl_seq* comparators;
- if (_PyObject_LookupAttr(obj, state->left, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->left, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8274,15 +8274,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Compare' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &left, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Compare' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &left, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ops, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ops, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8294,7 +8294,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Compare field \"ops\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Compare field \"ops\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8302,14 +8302,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (ops == NULL) goto failed;
for (i = 0; i < len; i++) {
cmpop_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Compare' node")) {
- goto failed;
- }
- res = obj2ast_cmpop(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Compare' node")) {
+ goto failed;
+ }
+ res = obj2ast_cmpop(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Compare field \"ops\" changed size during iteration");
@@ -8319,7 +8319,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->comparators, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->comparators, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8331,7 +8331,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Compare field \"comparators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Compare field \"comparators\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8339,14 +8339,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (comparators == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Compare' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Compare' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Compare field \"comparators\" changed size during iteration");
@@ -8356,13 +8356,13 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Compare(left, ops, comparators, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Compare(left, ops, comparators, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Call_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Call_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8371,7 +8371,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
asdl_seq* args;
asdl_seq* keywords;
- if (_PyObject_LookupAttr(obj, state->func, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->func, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8380,15 +8380,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Call' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &func, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Call' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &func, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8400,7 +8400,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Call field \"args\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Call field \"args\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8408,14 +8408,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (args == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Call' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Call' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Call field \"args\" changed size during iteration");
@@ -8425,7 +8425,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->keywords, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->keywords, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8437,7 +8437,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Call field \"keywords\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Call field \"keywords\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8445,14 +8445,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (keywords == NULL) goto failed;
for (i = 0; i < len; i++) {
keyword_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Call' node")) {
- goto failed;
- }
- res = obj2ast_keyword(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Call' node")) {
+ goto failed;
+ }
+ res = obj2ast_keyword(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Call field \"keywords\" changed size during iteration");
@@ -8462,13 +8462,13 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = Call(func, args, keywords, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Call(func, args, keywords, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->FormattedValue_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->FormattedValue_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8477,7 +8477,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
int conversion;
expr_ty format_spec;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8486,15 +8486,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'FormattedValue' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'FormattedValue' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->conversion, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->conversion, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -8503,15 +8503,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'FormattedValue' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &conversion, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'FormattedValue' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &conversion, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->format_spec, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->format_spec, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -8520,28 +8520,28 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'FormattedValue' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &format_spec, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'FormattedValue' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &format_spec, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
*out = FormattedValue(value, conversion, format_spec, lineno,
- col_offset, end_lineno, end_col_offset, arena);
+ col_offset, end_lineno, end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->JoinedStr_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->JoinedStr_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
asdl_seq* values;
- if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8553,7 +8553,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "JoinedStr field \"values\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "JoinedStr field \"values\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8561,14 +8561,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (values == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'JoinedStr' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'JoinedStr' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "JoinedStr field \"values\" changed size during iteration");
@@ -8578,61 +8578,61 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- *out = JoinedStr(values, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = JoinedStr(values, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Constant_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Constant_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
- constant value;
- string kind;
+ constant value;
+ string kind;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Constant");
+ PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Constant");
return 1;
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Constant' node")) {
- goto failed;
- }
- res = obj2ast_constant(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Constant' node")) {
+ goto failed;
+ }
+ res = obj2ast_constant(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->kind, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->kind, &tmp) < 0) {
return 1;
}
- if (tmp == NULL || tmp == Py_None) {
+ if (tmp == NULL || tmp == Py_None) {
Py_CLEAR(tmp);
- kind = NULL;
+ kind = NULL;
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Constant' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &kind, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Constant' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &kind, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Constant(value, kind, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Constant(value, kind, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Attribute_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Attribute_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8641,7 +8641,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
identifier attr;
expr_context_ty ctx;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8650,15 +8650,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Attribute' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Attribute' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->attr, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->attr, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8667,15 +8667,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Attribute' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &attr, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Attribute' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &attr, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8684,30 +8684,30 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Attribute' node")) {
- goto failed;
- }
- res = obj2ast_expr_context(state, tmp, &ctx, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Attribute' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr_context(state, tmp, &ctx, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Attribute(value, attr, ctx, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Attribute(value, attr, ctx, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Subscript_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Subscript_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
expr_ty value;
- expr_ty slice;
+ expr_ty slice;
expr_context_ty ctx;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8716,15 +8716,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Subscript' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Subscript' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->slice, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->slice, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8733,15 +8733,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Subscript' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &slice, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Subscript' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &slice, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8750,21 +8750,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Subscript' node")) {
- goto failed;
- }
- res = obj2ast_expr_context(state, tmp, &ctx, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Subscript' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr_context(state, tmp, &ctx, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Subscript(value, slice, ctx, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Subscript(value, slice, ctx, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Starred_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Starred_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8772,7 +8772,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty value;
expr_context_ty ctx;
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8781,15 +8781,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Starred' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Starred' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8798,21 +8798,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Starred' node")) {
- goto failed;
- }
- res = obj2ast_expr_context(state, tmp, &ctx, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Starred' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr_context(state, tmp, &ctx, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Starred(value, ctx, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Starred(value, ctx, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Name_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Name_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8820,7 +8820,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
identifier id;
expr_context_ty ctx;
- if (_PyObject_LookupAttr(obj, state->id, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->id, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8829,15 +8829,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Name' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &id, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Name' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &id, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8846,21 +8846,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Name' node")) {
- goto failed;
- }
- res = obj2ast_expr_context(state, tmp, &ctx, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Name' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr_context(state, tmp, &ctx, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Name(id, ctx, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Name(id, ctx, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->List_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->List_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8868,7 +8868,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
asdl_seq* elts;
expr_context_ty ctx;
- if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8880,7 +8880,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "List field \"elts\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "List field \"elts\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8888,14 +8888,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (elts == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'List' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'List' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "List field \"elts\" changed size during iteration");
@@ -8905,7 +8905,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8914,21 +8914,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'List' node")) {
- goto failed;
- }
- res = obj2ast_expr_context(state, tmp, &ctx, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'List' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr_context(state, tmp, &ctx, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = List(elts, ctx, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = List(elts, ctx, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Tuple_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Tuple_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -8936,7 +8936,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
asdl_seq* elts;
expr_context_ty ctx;
- if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8948,7 +8948,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "Tuple field \"elts\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "Tuple field \"elts\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -8956,14 +8956,14 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
if (elts == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'Tuple' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'Tuple' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "Tuple field \"elts\" changed size during iteration");
@@ -8973,7 +8973,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -8982,21 +8982,21 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Tuple' node")) {
- goto failed;
- }
- res = obj2ast_expr_context(state, tmp, &ctx, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Tuple' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr_context(state, tmp, &ctx, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Tuple(elts, ctx, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ *out = Tuple(elts, ctx, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
if (*out == NULL) goto failed;
return 0;
}
- tp = state->Slice_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ tp = state->Slice_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -9005,7 +9005,7 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty upper;
expr_ty step;
- if (_PyObject_LookupAttr(obj, state->lower, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->lower, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9014,15 +9014,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Slice' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &lower, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Slice' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &lower, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->upper, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->upper, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9031,15 +9031,15 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Slice' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &upper, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Slice' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &upper, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->step, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->step, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9048,68 +9048,68 @@ obj2ast_expr(astmodulestate *state, PyObject* obj, expr_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'Slice' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &step, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'Slice' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &step, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- *out = Slice(lower, upper, step, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = Slice(lower, upper, step, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
-
- PyErr_Format(PyExc_TypeError, "expected some sort of expr, but got %R", obj);
- failed:
- Py_XDECREF(tmp);
- return 1;
-}
-
-int
-obj2ast_expr_context(astmodulestate *state, PyObject* obj, expr_context_ty*
- out, PyArena* arena)
-{
- int isinstance;
-
- isinstance = PyObject_IsInstance(obj, state->Load_type);
+
+ PyErr_Format(PyExc_TypeError, "expected some sort of expr, but got %R", obj);
+ failed:
+ Py_XDECREF(tmp);
+ return 1;
+}
+
+int
+obj2ast_expr_context(astmodulestate *state, PyObject* obj, expr_context_ty*
+ out, PyArena* arena)
+{
+ int isinstance;
+
+ isinstance = PyObject_IsInstance(obj, state->Load_type);
+ if (isinstance == -1) {
+ return 1;
+ }
+ if (isinstance) {
+ *out = Load;
+ return 0;
+ }
+ isinstance = PyObject_IsInstance(obj, state->Store_type);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
- *out = Load;
+ *out = Store;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Store_type);
+ isinstance = PyObject_IsInstance(obj, state->Del_type);
if (isinstance == -1) {
return 1;
}
if (isinstance) {
- *out = Store;
+ *out = Del;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Del_type);
- if (isinstance == -1) {
- return 1;
- }
- if (isinstance) {
- *out = Del;
- return 0;
- }
- PyErr_Format(PyExc_TypeError, "expected some sort of expr_context, but got %R", obj);
+ PyErr_Format(PyExc_TypeError, "expected some sort of expr_context, but got %R", obj);
return 1;
}
int
-obj2ast_boolop(astmodulestate *state, PyObject* obj, boolop_ty* out, PyArena*
- arena)
+obj2ast_boolop(astmodulestate *state, PyObject* obj, boolop_ty* out, PyArena*
+ arena)
{
int isinstance;
- isinstance = PyObject_IsInstance(obj, state->And_type);
+ isinstance = PyObject_IsInstance(obj, state->And_type);
if (isinstance == -1) {
return 1;
}
@@ -9117,7 +9117,7 @@ obj2ast_boolop(astmodulestate *state, PyObject* obj, boolop_ty* out, PyArena*
*out = And;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Or_type);
+ isinstance = PyObject_IsInstance(obj, state->Or_type);
if (isinstance == -1) {
return 1;
}
@@ -9131,12 +9131,12 @@ obj2ast_boolop(astmodulestate *state, PyObject* obj, boolop_ty* out, PyArena*
}
int
-obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
- PyArena* arena)
+obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
+ PyArena* arena)
{
int isinstance;
- isinstance = PyObject_IsInstance(obj, state->Add_type);
+ isinstance = PyObject_IsInstance(obj, state->Add_type);
if (isinstance == -1) {
return 1;
}
@@ -9144,7 +9144,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = Add;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Sub_type);
+ isinstance = PyObject_IsInstance(obj, state->Sub_type);
if (isinstance == -1) {
return 1;
}
@@ -9152,7 +9152,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = Sub;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Mult_type);
+ isinstance = PyObject_IsInstance(obj, state->Mult_type);
if (isinstance == -1) {
return 1;
}
@@ -9160,7 +9160,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = Mult;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->MatMult_type);
+ isinstance = PyObject_IsInstance(obj, state->MatMult_type);
if (isinstance == -1) {
return 1;
}
@@ -9168,7 +9168,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = MatMult;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Div_type);
+ isinstance = PyObject_IsInstance(obj, state->Div_type);
if (isinstance == -1) {
return 1;
}
@@ -9176,7 +9176,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = Div;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Mod_type);
+ isinstance = PyObject_IsInstance(obj, state->Mod_type);
if (isinstance == -1) {
return 1;
}
@@ -9184,7 +9184,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = Mod;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Pow_type);
+ isinstance = PyObject_IsInstance(obj, state->Pow_type);
if (isinstance == -1) {
return 1;
}
@@ -9192,7 +9192,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = Pow;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->LShift_type);
+ isinstance = PyObject_IsInstance(obj, state->LShift_type);
if (isinstance == -1) {
return 1;
}
@@ -9200,7 +9200,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = LShift;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->RShift_type);
+ isinstance = PyObject_IsInstance(obj, state->RShift_type);
if (isinstance == -1) {
return 1;
}
@@ -9208,7 +9208,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = RShift;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->BitOr_type);
+ isinstance = PyObject_IsInstance(obj, state->BitOr_type);
if (isinstance == -1) {
return 1;
}
@@ -9216,7 +9216,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = BitOr;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->BitXor_type);
+ isinstance = PyObject_IsInstance(obj, state->BitXor_type);
if (isinstance == -1) {
return 1;
}
@@ -9224,7 +9224,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = BitXor;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->BitAnd_type);
+ isinstance = PyObject_IsInstance(obj, state->BitAnd_type);
if (isinstance == -1) {
return 1;
}
@@ -9232,7 +9232,7 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
*out = BitAnd;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->FloorDiv_type);
+ isinstance = PyObject_IsInstance(obj, state->FloorDiv_type);
if (isinstance == -1) {
return 1;
}
@@ -9246,12 +9246,12 @@ obj2ast_operator(astmodulestate *state, PyObject* obj, operator_ty* out,
}
int
-obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty* out, PyArena*
- arena)
+obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty* out, PyArena*
+ arena)
{
int isinstance;
- isinstance = PyObject_IsInstance(obj, state->Invert_type);
+ isinstance = PyObject_IsInstance(obj, state->Invert_type);
if (isinstance == -1) {
return 1;
}
@@ -9259,7 +9259,7 @@ obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty* out, PyArena*
*out = Invert;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Not_type);
+ isinstance = PyObject_IsInstance(obj, state->Not_type);
if (isinstance == -1) {
return 1;
}
@@ -9267,7 +9267,7 @@ obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty* out, PyArena*
*out = Not;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->UAdd_type);
+ isinstance = PyObject_IsInstance(obj, state->UAdd_type);
if (isinstance == -1) {
return 1;
}
@@ -9275,7 +9275,7 @@ obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty* out, PyArena*
*out = UAdd;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->USub_type);
+ isinstance = PyObject_IsInstance(obj, state->USub_type);
if (isinstance == -1) {
return 1;
}
@@ -9289,12 +9289,12 @@ obj2ast_unaryop(astmodulestate *state, PyObject* obj, unaryop_ty* out, PyArena*
}
int
-obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
- arena)
+obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
+ arena)
{
int isinstance;
- isinstance = PyObject_IsInstance(obj, state->Eq_type);
+ isinstance = PyObject_IsInstance(obj, state->Eq_type);
if (isinstance == -1) {
return 1;
}
@@ -9302,7 +9302,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = Eq;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->NotEq_type);
+ isinstance = PyObject_IsInstance(obj, state->NotEq_type);
if (isinstance == -1) {
return 1;
}
@@ -9310,7 +9310,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = NotEq;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Lt_type);
+ isinstance = PyObject_IsInstance(obj, state->Lt_type);
if (isinstance == -1) {
return 1;
}
@@ -9318,7 +9318,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = Lt;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->LtE_type);
+ isinstance = PyObject_IsInstance(obj, state->LtE_type);
if (isinstance == -1) {
return 1;
}
@@ -9326,7 +9326,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = LtE;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Gt_type);
+ isinstance = PyObject_IsInstance(obj, state->Gt_type);
if (isinstance == -1) {
return 1;
}
@@ -9334,7 +9334,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = Gt;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->GtE_type);
+ isinstance = PyObject_IsInstance(obj, state->GtE_type);
if (isinstance == -1) {
return 1;
}
@@ -9342,7 +9342,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = GtE;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->Is_type);
+ isinstance = PyObject_IsInstance(obj, state->Is_type);
if (isinstance == -1) {
return 1;
}
@@ -9350,7 +9350,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = Is;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->IsNot_type);
+ isinstance = PyObject_IsInstance(obj, state->IsNot_type);
if (isinstance == -1) {
return 1;
}
@@ -9358,7 +9358,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = IsNot;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->In_type);
+ isinstance = PyObject_IsInstance(obj, state->In_type);
if (isinstance == -1) {
return 1;
}
@@ -9366,7 +9366,7 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
*out = In;
return 0;
}
- isinstance = PyObject_IsInstance(obj, state->NotIn_type);
+ isinstance = PyObject_IsInstance(obj, state->NotIn_type);
if (isinstance == -1) {
return 1;
}
@@ -9380,8 +9380,8 @@ obj2ast_cmpop(astmodulestate *state, PyObject* obj, cmpop_ty* out, PyArena*
}
int
-obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
- out, PyArena* arena)
+obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
+ out, PyArena* arena)
{
PyObject* tmp = NULL;
expr_ty target;
@@ -9389,7 +9389,7 @@ obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
asdl_seq* ifs;
int is_async;
- if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9398,15 +9398,15 @@ obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &target, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &target, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9415,15 +9415,15 @@ obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &iter, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &iter, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->ifs, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->ifs, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9435,7 +9435,7 @@ obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "comprehension field \"ifs\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "comprehension field \"ifs\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -9443,14 +9443,14 @@ obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
if (ifs == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "comprehension field \"ifs\" changed size during iteration");
@@ -9460,7 +9460,7 @@ obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->is_async, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->is_async, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9469,11 +9469,11 @@ obj2ast_comprehension(astmodulestate *state, PyObject* obj, comprehension_ty*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &is_async, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'comprehension' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &is_async, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
@@ -9485,23 +9485,23 @@ failed:
}
int
-obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
- out, PyArena* arena)
+obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
+ out, PyArena* arena)
{
int isinstance;
PyObject *tmp = NULL;
- PyObject *tp;
+ PyObject *tp;
int lineno;
int col_offset;
- int end_lineno;
- int end_col_offset;
+ int end_lineno;
+ int end_col_offset;
if (obj == Py_None) {
*out = NULL;
return 0;
}
- if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9510,15 +9510,15 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &lineno, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &lineno, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9527,50 +9527,50 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &col_offset, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &col_offset, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_lineno = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_lineno, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_lineno = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_lineno, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_col_offset = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_col_offset, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- tp = state->ExceptHandler_type;
- isinstance = PyObject_IsInstance(obj, tp);
+ if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_col_offset = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'excepthandler' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_col_offset, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ tp = state->ExceptHandler_type;
+ isinstance = PyObject_IsInstance(obj, tp);
if (isinstance == -1) {
return 1;
}
@@ -9579,7 +9579,7 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
identifier name;
asdl_seq* body;
- if (_PyObject_LookupAttr(obj, state->type, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->type, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9588,15 +9588,15 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'ExceptHandler' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &type, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'ExceptHandler' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &type, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9605,15 +9605,15 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'ExceptHandler' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &name, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'ExceptHandler' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &name, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9625,7 +9625,7 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "ExceptHandler field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "ExceptHandler field \"body\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -9633,14 +9633,14 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
if (body == NULL) goto failed;
for (i = 0; i < len; i++) {
stmt_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'ExceptHandler' node")) {
- goto failed;
- }
- res = obj2ast_stmt(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'ExceptHandler' node")) {
+ goto failed;
+ }
+ res = obj2ast_stmt(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "ExceptHandler field \"body\" changed size during iteration");
@@ -9650,8 +9650,8 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
}
Py_CLEAR(tmp);
}
- *out = ExceptHandler(type, name, body, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ *out = ExceptHandler(type, name, body, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
@@ -9663,11 +9663,11 @@ obj2ast_excepthandler(astmodulestate *state, PyObject* obj, excepthandler_ty*
}
int
-obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
- PyArena* arena)
+obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
+ PyArena* arena)
{
PyObject* tmp = NULL;
- asdl_seq* posonlyargs;
+ asdl_seq* posonlyargs;
asdl_seq* args;
arg_ty vararg;
asdl_seq* kwonlyargs;
@@ -9675,44 +9675,44 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
arg_ty kwarg;
asdl_seq* defaults;
- if (_PyObject_LookupAttr(obj, state->posonlyargs, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"posonlyargs\" missing from arguments");
- return 1;
- }
- else {
- int res;
- Py_ssize_t len;
- Py_ssize_t i;
- if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "arguments field \"posonlyargs\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
- goto failed;
- }
- len = PyList_GET_SIZE(tmp);
- posonlyargs = _Py_asdl_seq_new(len, arena);
- if (posonlyargs == NULL) goto failed;
- for (i = 0; i < len; i++) {
- arg_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
- goto failed;
- }
- res = obj2ast_arg(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
- if (res != 0) goto failed;
- if (len != PyList_GET_SIZE(tmp)) {
- PyErr_SetString(PyExc_RuntimeError, "arguments field \"posonlyargs\" changed size during iteration");
- goto failed;
- }
- asdl_seq_SET(posonlyargs, i, val);
- }
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->posonlyargs, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"posonlyargs\" missing from arguments");
+ return 1;
+ }
+ else {
+ int res;
+ Py_ssize_t len;
+ Py_ssize_t i;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "arguments field \"posonlyargs\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ posonlyargs = _Py_asdl_seq_new(len, arena);
+ if (posonlyargs == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ arg_ty val;
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
+ goto failed;
+ }
+ res = obj2ast_arg(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
+ if (res != 0) goto failed;
+ if (len != PyList_GET_SIZE(tmp)) {
+ PyErr_SetString(PyExc_RuntimeError, "arguments field \"posonlyargs\" changed size during iteration");
+ goto failed;
+ }
+ asdl_seq_SET(posonlyargs, i, val);
+ }
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9724,7 +9724,7 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "arguments field \"args\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "arguments field \"args\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -9732,14 +9732,14 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
if (args == NULL) goto failed;
for (i = 0; i < len; i++) {
arg_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
- goto failed;
- }
- res = obj2ast_arg(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
+ goto failed;
+ }
+ res = obj2ast_arg(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "arguments field \"args\" changed size during iteration");
@@ -9749,7 +9749,7 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->vararg, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->vararg, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9758,15 +9758,15 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
- goto failed;
- }
- res = obj2ast_arg(state, tmp, &vararg, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
+ goto failed;
+ }
+ res = obj2ast_arg(state, tmp, &vararg, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->kwonlyargs, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->kwonlyargs, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9778,7 +9778,7 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "arguments field \"kwonlyargs\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "arguments field \"kwonlyargs\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -9786,14 +9786,14 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
if (kwonlyargs == NULL) goto failed;
for (i = 0; i < len; i++) {
arg_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
- goto failed;
- }
- res = obj2ast_arg(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
+ goto failed;
+ }
+ res = obj2ast_arg(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "arguments field \"kwonlyargs\" changed size during iteration");
@@ -9803,7 +9803,7 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->kw_defaults, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->kw_defaults, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9815,7 +9815,7 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "arguments field \"kw_defaults\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "arguments field \"kw_defaults\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -9823,14 +9823,14 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
if (kw_defaults == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "arguments field \"kw_defaults\" changed size during iteration");
@@ -9840,7 +9840,7 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
}
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->kwarg, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->kwarg, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9849,15 +9849,15 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
- goto failed;
- }
- res = obj2ast_arg(state, tmp, &kwarg, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
+ goto failed;
+ }
+ res = obj2ast_arg(state, tmp, &kwarg, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->defaults, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->defaults, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9869,7 +9869,7 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
Py_ssize_t len;
Py_ssize_t i;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "arguments field \"defaults\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
+ PyErr_Format(PyExc_TypeError, "arguments field \"defaults\" must be a list, not a %.200s", _PyType_Name(Py_TYPE(tmp)));
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -9877,14 +9877,14 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
if (defaults == NULL) goto failed;
for (i = 0; i < len; i++) {
expr_ty val;
- PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
- Py_INCREF(tmp2);
- if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp2, &val, arena);
- Py_LeaveRecursiveCall();
- Py_DECREF(tmp2);
+ PyObject *tmp2 = PyList_GET_ITEM(tmp, i);
+ Py_INCREF(tmp2);
+ if (Py_EnterRecursiveCall(" while traversing 'arguments' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp2, &val, arena);
+ Py_LeaveRecursiveCall();
+ Py_DECREF(tmp2);
if (res != 0) goto failed;
if (len != PyList_GET_SIZE(tmp)) {
PyErr_SetString(PyExc_RuntimeError, "arguments field \"defaults\" changed size during iteration");
@@ -9894,8 +9894,8 @@ obj2ast_arguments(astmodulestate *state, PyObject* obj, arguments_ty* out,
}
Py_CLEAR(tmp);
}
- *out = arguments(posonlyargs, args, vararg, kwonlyargs, kw_defaults, kwarg,
- defaults, arena);
+ *out = arguments(posonlyargs, args, vararg, kwonlyargs, kw_defaults, kwarg,
+ defaults, arena);
return 0;
failed:
Py_XDECREF(tmp);
@@ -9903,18 +9903,18 @@ failed:
}
int
-obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out, PyArena* arena)
+obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out, PyArena* arena)
{
PyObject* tmp = NULL;
identifier arg;
expr_ty annotation;
- string type_comment;
+ string type_comment;
int lineno;
int col_offset;
- int end_lineno;
- int end_col_offset;
+ int end_lineno;
+ int end_col_offset;
- if (_PyObject_LookupAttr(obj, state->arg, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->arg, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9923,15 +9923,15 @@ obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &arg, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &arg, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->annotation, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->annotation, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -9940,32 +9940,32 @@ obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &annotation, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &annotation, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ type_comment = NULL;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &type_comment, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- type_comment = NULL;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &type_comment, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9974,15 +9974,15 @@ obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &lineno, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &lineno, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -9991,50 +9991,50 @@ obj2ast_arg(astmodulestate *state, PyObject* obj, arg_ty* out, PyArena* arena)
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &col_offset, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &col_offset, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_lineno = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_lineno, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_col_offset = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_col_offset, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = arg(arg, annotation, type_comment, lineno, col_offset, end_lineno,
- end_col_offset, arena);
+ if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_lineno = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_lineno, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_col_offset = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'arg' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_col_offset, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = arg(arg, annotation, type_comment, lineno, col_offset, end_lineno,
+ end_col_offset, arena);
return 0;
failed:
Py_XDECREF(tmp);
@@ -10042,18 +10042,18 @@ failed:
}
int
-obj2ast_keyword(astmodulestate *state, PyObject* obj, keyword_ty* out, PyArena*
- arena)
+obj2ast_keyword(astmodulestate *state, PyObject* obj, keyword_ty* out, PyArena*
+ arena)
{
PyObject* tmp = NULL;
identifier arg;
expr_ty value;
- int lineno;
- int col_offset;
- int end_lineno;
- int end_col_offset;
+ int lineno;
+ int col_offset;
+ int end_lineno;
+ int end_col_offset;
- if (_PyObject_LookupAttr(obj, state->arg, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->arg, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -10062,15 +10062,15 @@ obj2ast_keyword(astmodulestate *state, PyObject* obj, keyword_ty* out, PyArena*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &arg, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &arg, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -10079,84 +10079,84 @@ obj2ast_keyword(astmodulestate *state, PyObject* obj, keyword_ty* out, PyArena*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &value, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &value, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from keyword");
+ return 1;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &lineno, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from keyword");
+ return 1;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &col_offset, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from keyword");
- return 1;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &lineno, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from keyword");
- return 1;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &col_offset, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_lineno = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_lineno, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL || tmp == Py_None) {
- Py_CLEAR(tmp);
- end_col_offset = 0;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &end_col_offset, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = keyword(arg, value, lineno, col_offset, end_lineno, end_col_offset,
- arena);
+ if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_lineno = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_lineno, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL || tmp == Py_None) {
+ Py_CLEAR(tmp);
+ end_col_offset = 0;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'keyword' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &end_col_offset, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = keyword(arg, value, lineno, col_offset, end_lineno, end_col_offset,
+ arena);
return 0;
failed:
Py_XDECREF(tmp);
@@ -10164,14 +10164,14 @@ failed:
}
int
-obj2ast_alias(astmodulestate *state, PyObject* obj, alias_ty* out, PyArena*
- arena)
+obj2ast_alias(astmodulestate *state, PyObject* obj, alias_ty* out, PyArena*
+ arena)
{
PyObject* tmp = NULL;
identifier name;
identifier asname;
- if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -10180,15 +10180,15 @@ obj2ast_alias(astmodulestate *state, PyObject* obj, alias_ty* out, PyArena*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'alias' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &name, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'alias' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &name, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->asname, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->asname, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -10197,11 +10197,11 @@ obj2ast_alias(astmodulestate *state, PyObject* obj, alias_ty* out, PyArena*
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'alias' node")) {
- goto failed;
- }
- res = obj2ast_identifier(state, tmp, &asname, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'alias' node")) {
+ goto failed;
+ }
+ res = obj2ast_identifier(state, tmp, &asname, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
@@ -10213,14 +10213,14 @@ failed:
}
int
-obj2ast_withitem(astmodulestate *state, PyObject* obj, withitem_ty* out,
- PyArena* arena)
+obj2ast_withitem(astmodulestate *state, PyObject* obj, withitem_ty* out,
+ PyArena* arena)
{
PyObject* tmp = NULL;
expr_ty context_expr;
expr_ty optional_vars;
- if (_PyObject_LookupAttr(obj, state->context_expr, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->context_expr, &tmp) < 0) {
return 1;
}
if (tmp == NULL) {
@@ -10229,15 +10229,15 @@ obj2ast_withitem(astmodulestate *state, PyObject* obj, withitem_ty* out,
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'withitem' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &context_expr, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'withitem' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &context_expr, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
- if (_PyObject_LookupAttr(obj, state->optional_vars, &tmp) < 0) {
+ if (_PyObject_LookupAttr(obj, state->optional_vars, &tmp) < 0) {
return 1;
}
if (tmp == NULL || tmp == Py_None) {
@@ -10246,11 +10246,11 @@ obj2ast_withitem(astmodulestate *state, PyObject* obj, withitem_ty* out,
}
else {
int res;
- if (Py_EnterRecursiveCall(" while traversing 'withitem' node")) {
- goto failed;
- }
- res = obj2ast_expr(state, tmp, &optional_vars, arena);
- Py_LeaveRecursiveCall();
+ if (Py_EnterRecursiveCall(" while traversing 'withitem' node")) {
+ goto failed;
+ }
+ res = obj2ast_expr(state, tmp, &optional_vars, arena);
+ Py_LeaveRecursiveCall();
if (res != 0) goto failed;
Py_CLEAR(tmp);
}
@@ -10261,568 +10261,568 @@ failed:
return 1;
}
-int
-obj2ast_type_ignore(astmodulestate *state, PyObject* obj, type_ignore_ty* out,
- PyArena* arena)
-{
- int isinstance;
-
- PyObject *tmp = NULL;
- PyObject *tp;
-
- if (obj == Py_None) {
- *out = NULL;
- return 0;
- }
- tp = state->TypeIgnore_type;
- isinstance = PyObject_IsInstance(obj, tp);
- if (isinstance == -1) {
- return 1;
- }
- if (isinstance) {
- int lineno;
- string tag;
-
- if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from TypeIgnore");
- return 1;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'TypeIgnore' node")) {
- goto failed;
- }
- res = obj2ast_int(state, tmp, &lineno, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- if (_PyObject_LookupAttr(obj, state->tag, &tmp) < 0) {
- return 1;
- }
- if (tmp == NULL) {
- PyErr_SetString(PyExc_TypeError, "required field \"tag\" missing from TypeIgnore");
- return 1;
- }
- else {
- int res;
- if (Py_EnterRecursiveCall(" while traversing 'TypeIgnore' node")) {
- goto failed;
- }
- res = obj2ast_string(state, tmp, &tag, arena);
- Py_LeaveRecursiveCall();
- if (res != 0) goto failed;
- Py_CLEAR(tmp);
- }
- *out = TypeIgnore(lineno, tag, arena);
- if (*out == NULL) goto failed;
- return 0;
- }
-
- PyErr_Format(PyExc_TypeError, "expected some sort of type_ignore, but got %R", obj);
- failed:
- Py_XDECREF(tmp);
- return 1;
-}
-
-
-static int
-astmodule_exec(PyObject *m)
-{
- astmodulestate *state = get_ast_state(m);
-
- if (!init_types(state)) {
- return -1;
- }
- if (PyModule_AddObject(m, "AST", state->AST_type) < 0) {
- return -1;
- }
- Py_INCREF(state->AST_type);
- if (PyModule_AddIntMacro(m, PyCF_ALLOW_TOP_LEVEL_AWAIT) < 0) {
- return -1;
- }
- if (PyModule_AddIntMacro(m, PyCF_ONLY_AST) < 0) {
- return -1;
- }
- if (PyModule_AddIntMacro(m, PyCF_TYPE_COMMENTS) < 0) {
- return -1;
- }
- if (PyModule_AddObject(m, "mod", state->mod_type) < 0) {
- return -1;
- }
- Py_INCREF(state->mod_type);
- if (PyModule_AddObject(m, "Module", state->Module_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Module_type);
- if (PyModule_AddObject(m, "Interactive", state->Interactive_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Interactive_type);
- if (PyModule_AddObject(m, "Expression", state->Expression_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Expression_type);
- if (PyModule_AddObject(m, "FunctionType", state->FunctionType_type) < 0) {
- return -1;
- }
- Py_INCREF(state->FunctionType_type);
- if (PyModule_AddObject(m, "stmt", state->stmt_type) < 0) {
- return -1;
- }
- Py_INCREF(state->stmt_type);
- if (PyModule_AddObject(m, "FunctionDef", state->FunctionDef_type) < 0) {
- return -1;
- }
- Py_INCREF(state->FunctionDef_type);
- if (PyModule_AddObject(m, "AsyncFunctionDef", state->AsyncFunctionDef_type)
- < 0) {
- return -1;
- }
- Py_INCREF(state->AsyncFunctionDef_type);
- if (PyModule_AddObject(m, "ClassDef", state->ClassDef_type) < 0) {
- return -1;
- }
- Py_INCREF(state->ClassDef_type);
- if (PyModule_AddObject(m, "Return", state->Return_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Return_type);
- if (PyModule_AddObject(m, "Delete", state->Delete_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Delete_type);
- if (PyModule_AddObject(m, "Assign", state->Assign_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Assign_type);
- if (PyModule_AddObject(m, "AugAssign", state->AugAssign_type) < 0) {
- return -1;
- }
- Py_INCREF(state->AugAssign_type);
- if (PyModule_AddObject(m, "AnnAssign", state->AnnAssign_type) < 0) {
- return -1;
- }
- Py_INCREF(state->AnnAssign_type);
- if (PyModule_AddObject(m, "For", state->For_type) < 0) {
- return -1;
- }
- Py_INCREF(state->For_type);
- if (PyModule_AddObject(m, "AsyncFor", state->AsyncFor_type) < 0) {
- return -1;
- }
- Py_INCREF(state->AsyncFor_type);
- if (PyModule_AddObject(m, "While", state->While_type) < 0) {
- return -1;
- }
- Py_INCREF(state->While_type);
- if (PyModule_AddObject(m, "If", state->If_type) < 0) {
- return -1;
- }
- Py_INCREF(state->If_type);
- if (PyModule_AddObject(m, "With", state->With_type) < 0) {
- return -1;
- }
- Py_INCREF(state->With_type);
- if (PyModule_AddObject(m, "AsyncWith", state->AsyncWith_type) < 0) {
- return -1;
- }
- Py_INCREF(state->AsyncWith_type);
- if (PyModule_AddObject(m, "Raise", state->Raise_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Raise_type);
- if (PyModule_AddObject(m, "Try", state->Try_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Try_type);
- if (PyModule_AddObject(m, "Assert", state->Assert_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Assert_type);
- if (PyModule_AddObject(m, "Import", state->Import_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Import_type);
- if (PyModule_AddObject(m, "ImportFrom", state->ImportFrom_type) < 0) {
- return -1;
- }
- Py_INCREF(state->ImportFrom_type);
- if (PyModule_AddObject(m, "Global", state->Global_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Global_type);
- if (PyModule_AddObject(m, "Nonlocal", state->Nonlocal_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Nonlocal_type);
- if (PyModule_AddObject(m, "Expr", state->Expr_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Expr_type);
- if (PyModule_AddObject(m, "Pass", state->Pass_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Pass_type);
- if (PyModule_AddObject(m, "Break", state->Break_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Break_type);
- if (PyModule_AddObject(m, "Continue", state->Continue_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Continue_type);
- if (PyModule_AddObject(m, "expr", state->expr_type) < 0) {
- return -1;
- }
- Py_INCREF(state->expr_type);
- if (PyModule_AddObject(m, "BoolOp", state->BoolOp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->BoolOp_type);
- if (PyModule_AddObject(m, "NamedExpr", state->NamedExpr_type) < 0) {
- return -1;
- }
- Py_INCREF(state->NamedExpr_type);
- if (PyModule_AddObject(m, "BinOp", state->BinOp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->BinOp_type);
- if (PyModule_AddObject(m, "UnaryOp", state->UnaryOp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->UnaryOp_type);
- if (PyModule_AddObject(m, "Lambda", state->Lambda_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Lambda_type);
- if (PyModule_AddObject(m, "IfExp", state->IfExp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->IfExp_type);
- if (PyModule_AddObject(m, "Dict", state->Dict_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Dict_type);
- if (PyModule_AddObject(m, "Set", state->Set_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Set_type);
- if (PyModule_AddObject(m, "ListComp", state->ListComp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->ListComp_type);
- if (PyModule_AddObject(m, "SetComp", state->SetComp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->SetComp_type);
- if (PyModule_AddObject(m, "DictComp", state->DictComp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->DictComp_type);
- if (PyModule_AddObject(m, "GeneratorExp", state->GeneratorExp_type) < 0) {
- return -1;
- }
- Py_INCREF(state->GeneratorExp_type);
- if (PyModule_AddObject(m, "Await", state->Await_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Await_type);
- if (PyModule_AddObject(m, "Yield", state->Yield_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Yield_type);
- if (PyModule_AddObject(m, "YieldFrom", state->YieldFrom_type) < 0) {
- return -1;
- }
- Py_INCREF(state->YieldFrom_type);
- if (PyModule_AddObject(m, "Compare", state->Compare_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Compare_type);
- if (PyModule_AddObject(m, "Call", state->Call_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Call_type);
- if (PyModule_AddObject(m, "FormattedValue", state->FormattedValue_type) <
- 0) {
- return -1;
- }
- Py_INCREF(state->FormattedValue_type);
- if (PyModule_AddObject(m, "JoinedStr", state->JoinedStr_type) < 0) {
- return -1;
- }
- Py_INCREF(state->JoinedStr_type);
- if (PyModule_AddObject(m, "Constant", state->Constant_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Constant_type);
- if (PyModule_AddObject(m, "Attribute", state->Attribute_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Attribute_type);
- if (PyModule_AddObject(m, "Subscript", state->Subscript_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Subscript_type);
- if (PyModule_AddObject(m, "Starred", state->Starred_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Starred_type);
- if (PyModule_AddObject(m, "Name", state->Name_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Name_type);
- if (PyModule_AddObject(m, "List", state->List_type) < 0) {
- return -1;
- }
- Py_INCREF(state->List_type);
- if (PyModule_AddObject(m, "Tuple", state->Tuple_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Tuple_type);
- if (PyModule_AddObject(m, "Slice", state->Slice_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Slice_type);
- if (PyModule_AddObject(m, "expr_context", state->expr_context_type) < 0) {
- return -1;
- }
- Py_INCREF(state->expr_context_type);
- if (PyModule_AddObject(m, "Load", state->Load_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Load_type);
- if (PyModule_AddObject(m, "Store", state->Store_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Store_type);
- if (PyModule_AddObject(m, "Del", state->Del_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Del_type);
- if (PyModule_AddObject(m, "boolop", state->boolop_type) < 0) {
- return -1;
- }
- Py_INCREF(state->boolop_type);
- if (PyModule_AddObject(m, "And", state->And_type) < 0) {
- return -1;
- }
- Py_INCREF(state->And_type);
- if (PyModule_AddObject(m, "Or", state->Or_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Or_type);
- if (PyModule_AddObject(m, "operator", state->operator_type) < 0) {
- return -1;
- }
- Py_INCREF(state->operator_type);
- if (PyModule_AddObject(m, "Add", state->Add_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Add_type);
- if (PyModule_AddObject(m, "Sub", state->Sub_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Sub_type);
- if (PyModule_AddObject(m, "Mult", state->Mult_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Mult_type);
- if (PyModule_AddObject(m, "MatMult", state->MatMult_type) < 0) {
- return -1;
- }
- Py_INCREF(state->MatMult_type);
- if (PyModule_AddObject(m, "Div", state->Div_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Div_type);
- if (PyModule_AddObject(m, "Mod", state->Mod_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Mod_type);
- if (PyModule_AddObject(m, "Pow", state->Pow_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Pow_type);
- if (PyModule_AddObject(m, "LShift", state->LShift_type) < 0) {
- return -1;
- }
- Py_INCREF(state->LShift_type);
- if (PyModule_AddObject(m, "RShift", state->RShift_type) < 0) {
- return -1;
- }
- Py_INCREF(state->RShift_type);
- if (PyModule_AddObject(m, "BitOr", state->BitOr_type) < 0) {
- return -1;
- }
- Py_INCREF(state->BitOr_type);
- if (PyModule_AddObject(m, "BitXor", state->BitXor_type) < 0) {
- return -1;
- }
- Py_INCREF(state->BitXor_type);
- if (PyModule_AddObject(m, "BitAnd", state->BitAnd_type) < 0) {
- return -1;
- }
- Py_INCREF(state->BitAnd_type);
- if (PyModule_AddObject(m, "FloorDiv", state->FloorDiv_type) < 0) {
- return -1;
- }
- Py_INCREF(state->FloorDiv_type);
- if (PyModule_AddObject(m, "unaryop", state->unaryop_type) < 0) {
- return -1;
- }
- Py_INCREF(state->unaryop_type);
- if (PyModule_AddObject(m, "Invert", state->Invert_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Invert_type);
- if (PyModule_AddObject(m, "Not", state->Not_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Not_type);
- if (PyModule_AddObject(m, "UAdd", state->UAdd_type) < 0) {
- return -1;
- }
- Py_INCREF(state->UAdd_type);
- if (PyModule_AddObject(m, "USub", state->USub_type) < 0) {
- return -1;
- }
- Py_INCREF(state->USub_type);
- if (PyModule_AddObject(m, "cmpop", state->cmpop_type) < 0) {
- return -1;
- }
- Py_INCREF(state->cmpop_type);
- if (PyModule_AddObject(m, "Eq", state->Eq_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Eq_type);
- if (PyModule_AddObject(m, "NotEq", state->NotEq_type) < 0) {
- return -1;
- }
- Py_INCREF(state->NotEq_type);
- if (PyModule_AddObject(m, "Lt", state->Lt_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Lt_type);
- if (PyModule_AddObject(m, "LtE", state->LtE_type) < 0) {
- return -1;
- }
- Py_INCREF(state->LtE_type);
- if (PyModule_AddObject(m, "Gt", state->Gt_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Gt_type);
- if (PyModule_AddObject(m, "GtE", state->GtE_type) < 0) {
- return -1;
- }
- Py_INCREF(state->GtE_type);
- if (PyModule_AddObject(m, "Is", state->Is_type) < 0) {
- return -1;
- }
- Py_INCREF(state->Is_type);
- if (PyModule_AddObject(m, "IsNot", state->IsNot_type) < 0) {
- return -1;
- }
- Py_INCREF(state->IsNot_type);
- if (PyModule_AddObject(m, "In", state->In_type) < 0) {
- return -1;
- }
- Py_INCREF(state->In_type);
- if (PyModule_AddObject(m, "NotIn", state->NotIn_type) < 0) {
- return -1;
- }
- Py_INCREF(state->NotIn_type);
- if (PyModule_AddObject(m, "comprehension", state->comprehension_type) < 0) {
- return -1;
- }
- Py_INCREF(state->comprehension_type);
- if (PyModule_AddObject(m, "excepthandler", state->excepthandler_type) < 0) {
- return -1;
- }
- Py_INCREF(state->excepthandler_type);
- if (PyModule_AddObject(m, "ExceptHandler", state->ExceptHandler_type) < 0) {
- return -1;
- }
- Py_INCREF(state->ExceptHandler_type);
- if (PyModule_AddObject(m, "arguments", state->arguments_type) < 0) {
- return -1;
- }
- Py_INCREF(state->arguments_type);
- if (PyModule_AddObject(m, "arg", state->arg_type) < 0) {
- return -1;
- }
- Py_INCREF(state->arg_type);
- if (PyModule_AddObject(m, "keyword", state->keyword_type) < 0) {
- return -1;
- }
- Py_INCREF(state->keyword_type);
- if (PyModule_AddObject(m, "alias", state->alias_type) < 0) {
- return -1;
- }
- Py_INCREF(state->alias_type);
- if (PyModule_AddObject(m, "withitem", state->withitem_type) < 0) {
- return -1;
- }
- Py_INCREF(state->withitem_type);
- if (PyModule_AddObject(m, "type_ignore", state->type_ignore_type) < 0) {
- return -1;
- }
- Py_INCREF(state->type_ignore_type);
- if (PyModule_AddObject(m, "TypeIgnore", state->TypeIgnore_type) < 0) {
- return -1;
- }
- Py_INCREF(state->TypeIgnore_type);
- return 0;
-}
-
-static PyModuleDef_Slot astmodule_slots[] = {
- {Py_mod_exec, astmodule_exec},
- {0, NULL}
-};
-
+int
+obj2ast_type_ignore(astmodulestate *state, PyObject* obj, type_ignore_ty* out,
+ PyArena* arena)
+{
+ int isinstance;
+
+ PyObject *tmp = NULL;
+ PyObject *tp;
+
+ if (obj == Py_None) {
+ *out = NULL;
+ return 0;
+ }
+ tp = state->TypeIgnore_type;
+ isinstance = PyObject_IsInstance(obj, tp);
+ if (isinstance == -1) {
+ return 1;
+ }
+ if (isinstance) {
+ int lineno;
+ string tag;
+
+ if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from TypeIgnore");
+ return 1;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'TypeIgnore' node")) {
+ goto failed;
+ }
+ res = obj2ast_int(state, tmp, &lineno, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ if (_PyObject_LookupAttr(obj, state->tag, &tmp) < 0) {
+ return 1;
+ }
+ if (tmp == NULL) {
+ PyErr_SetString(PyExc_TypeError, "required field \"tag\" missing from TypeIgnore");
+ return 1;
+ }
+ else {
+ int res;
+ if (Py_EnterRecursiveCall(" while traversing 'TypeIgnore' node")) {
+ goto failed;
+ }
+ res = obj2ast_string(state, tmp, &tag, arena);
+ Py_LeaveRecursiveCall();
+ if (res != 0) goto failed;
+ Py_CLEAR(tmp);
+ }
+ *out = TypeIgnore(lineno, tag, arena);
+ if (*out == NULL) goto failed;
+ return 0;
+ }
+
+ PyErr_Format(PyExc_TypeError, "expected some sort of type_ignore, but got %R", obj);
+ failed:
+ Py_XDECREF(tmp);
+ return 1;
+}
+
+
+static int
+astmodule_exec(PyObject *m)
+{
+ astmodulestate *state = get_ast_state(m);
+
+ if (!init_types(state)) {
+ return -1;
+ }
+ if (PyModule_AddObject(m, "AST", state->AST_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->AST_type);
+ if (PyModule_AddIntMacro(m, PyCF_ALLOW_TOP_LEVEL_AWAIT) < 0) {
+ return -1;
+ }
+ if (PyModule_AddIntMacro(m, PyCF_ONLY_AST) < 0) {
+ return -1;
+ }
+ if (PyModule_AddIntMacro(m, PyCF_TYPE_COMMENTS) < 0) {
+ return -1;
+ }
+ if (PyModule_AddObject(m, "mod", state->mod_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->mod_type);
+ if (PyModule_AddObject(m, "Module", state->Module_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Module_type);
+ if (PyModule_AddObject(m, "Interactive", state->Interactive_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Interactive_type);
+ if (PyModule_AddObject(m, "Expression", state->Expression_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Expression_type);
+ if (PyModule_AddObject(m, "FunctionType", state->FunctionType_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->FunctionType_type);
+ if (PyModule_AddObject(m, "stmt", state->stmt_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->stmt_type);
+ if (PyModule_AddObject(m, "FunctionDef", state->FunctionDef_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->FunctionDef_type);
+ if (PyModule_AddObject(m, "AsyncFunctionDef", state->AsyncFunctionDef_type)
+ < 0) {
+ return -1;
+ }
+ Py_INCREF(state->AsyncFunctionDef_type);
+ if (PyModule_AddObject(m, "ClassDef", state->ClassDef_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->ClassDef_type);
+ if (PyModule_AddObject(m, "Return", state->Return_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Return_type);
+ if (PyModule_AddObject(m, "Delete", state->Delete_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Delete_type);
+ if (PyModule_AddObject(m, "Assign", state->Assign_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Assign_type);
+ if (PyModule_AddObject(m, "AugAssign", state->AugAssign_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->AugAssign_type);
+ if (PyModule_AddObject(m, "AnnAssign", state->AnnAssign_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->AnnAssign_type);
+ if (PyModule_AddObject(m, "For", state->For_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->For_type);
+ if (PyModule_AddObject(m, "AsyncFor", state->AsyncFor_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->AsyncFor_type);
+ if (PyModule_AddObject(m, "While", state->While_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->While_type);
+ if (PyModule_AddObject(m, "If", state->If_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->If_type);
+ if (PyModule_AddObject(m, "With", state->With_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->With_type);
+ if (PyModule_AddObject(m, "AsyncWith", state->AsyncWith_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->AsyncWith_type);
+ if (PyModule_AddObject(m, "Raise", state->Raise_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Raise_type);
+ if (PyModule_AddObject(m, "Try", state->Try_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Try_type);
+ if (PyModule_AddObject(m, "Assert", state->Assert_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Assert_type);
+ if (PyModule_AddObject(m, "Import", state->Import_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Import_type);
+ if (PyModule_AddObject(m, "ImportFrom", state->ImportFrom_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->ImportFrom_type);
+ if (PyModule_AddObject(m, "Global", state->Global_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Global_type);
+ if (PyModule_AddObject(m, "Nonlocal", state->Nonlocal_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Nonlocal_type);
+ if (PyModule_AddObject(m, "Expr", state->Expr_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Expr_type);
+ if (PyModule_AddObject(m, "Pass", state->Pass_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Pass_type);
+ if (PyModule_AddObject(m, "Break", state->Break_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Break_type);
+ if (PyModule_AddObject(m, "Continue", state->Continue_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Continue_type);
+ if (PyModule_AddObject(m, "expr", state->expr_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->expr_type);
+ if (PyModule_AddObject(m, "BoolOp", state->BoolOp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->BoolOp_type);
+ if (PyModule_AddObject(m, "NamedExpr", state->NamedExpr_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->NamedExpr_type);
+ if (PyModule_AddObject(m, "BinOp", state->BinOp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->BinOp_type);
+ if (PyModule_AddObject(m, "UnaryOp", state->UnaryOp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->UnaryOp_type);
+ if (PyModule_AddObject(m, "Lambda", state->Lambda_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Lambda_type);
+ if (PyModule_AddObject(m, "IfExp", state->IfExp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->IfExp_type);
+ if (PyModule_AddObject(m, "Dict", state->Dict_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Dict_type);
+ if (PyModule_AddObject(m, "Set", state->Set_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Set_type);
+ if (PyModule_AddObject(m, "ListComp", state->ListComp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->ListComp_type);
+ if (PyModule_AddObject(m, "SetComp", state->SetComp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->SetComp_type);
+ if (PyModule_AddObject(m, "DictComp", state->DictComp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->DictComp_type);
+ if (PyModule_AddObject(m, "GeneratorExp", state->GeneratorExp_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->GeneratorExp_type);
+ if (PyModule_AddObject(m, "Await", state->Await_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Await_type);
+ if (PyModule_AddObject(m, "Yield", state->Yield_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Yield_type);
+ if (PyModule_AddObject(m, "YieldFrom", state->YieldFrom_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->YieldFrom_type);
+ if (PyModule_AddObject(m, "Compare", state->Compare_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Compare_type);
+ if (PyModule_AddObject(m, "Call", state->Call_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Call_type);
+ if (PyModule_AddObject(m, "FormattedValue", state->FormattedValue_type) <
+ 0) {
+ return -1;
+ }
+ Py_INCREF(state->FormattedValue_type);
+ if (PyModule_AddObject(m, "JoinedStr", state->JoinedStr_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->JoinedStr_type);
+ if (PyModule_AddObject(m, "Constant", state->Constant_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Constant_type);
+ if (PyModule_AddObject(m, "Attribute", state->Attribute_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Attribute_type);
+ if (PyModule_AddObject(m, "Subscript", state->Subscript_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Subscript_type);
+ if (PyModule_AddObject(m, "Starred", state->Starred_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Starred_type);
+ if (PyModule_AddObject(m, "Name", state->Name_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Name_type);
+ if (PyModule_AddObject(m, "List", state->List_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->List_type);
+ if (PyModule_AddObject(m, "Tuple", state->Tuple_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Tuple_type);
+ if (PyModule_AddObject(m, "Slice", state->Slice_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Slice_type);
+ if (PyModule_AddObject(m, "expr_context", state->expr_context_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->expr_context_type);
+ if (PyModule_AddObject(m, "Load", state->Load_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Load_type);
+ if (PyModule_AddObject(m, "Store", state->Store_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Store_type);
+ if (PyModule_AddObject(m, "Del", state->Del_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Del_type);
+ if (PyModule_AddObject(m, "boolop", state->boolop_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->boolop_type);
+ if (PyModule_AddObject(m, "And", state->And_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->And_type);
+ if (PyModule_AddObject(m, "Or", state->Or_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Or_type);
+ if (PyModule_AddObject(m, "operator", state->operator_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->operator_type);
+ if (PyModule_AddObject(m, "Add", state->Add_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Add_type);
+ if (PyModule_AddObject(m, "Sub", state->Sub_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Sub_type);
+ if (PyModule_AddObject(m, "Mult", state->Mult_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Mult_type);
+ if (PyModule_AddObject(m, "MatMult", state->MatMult_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->MatMult_type);
+ if (PyModule_AddObject(m, "Div", state->Div_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Div_type);
+ if (PyModule_AddObject(m, "Mod", state->Mod_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Mod_type);
+ if (PyModule_AddObject(m, "Pow", state->Pow_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Pow_type);
+ if (PyModule_AddObject(m, "LShift", state->LShift_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->LShift_type);
+ if (PyModule_AddObject(m, "RShift", state->RShift_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->RShift_type);
+ if (PyModule_AddObject(m, "BitOr", state->BitOr_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->BitOr_type);
+ if (PyModule_AddObject(m, "BitXor", state->BitXor_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->BitXor_type);
+ if (PyModule_AddObject(m, "BitAnd", state->BitAnd_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->BitAnd_type);
+ if (PyModule_AddObject(m, "FloorDiv", state->FloorDiv_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->FloorDiv_type);
+ if (PyModule_AddObject(m, "unaryop", state->unaryop_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->unaryop_type);
+ if (PyModule_AddObject(m, "Invert", state->Invert_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Invert_type);
+ if (PyModule_AddObject(m, "Not", state->Not_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Not_type);
+ if (PyModule_AddObject(m, "UAdd", state->UAdd_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->UAdd_type);
+ if (PyModule_AddObject(m, "USub", state->USub_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->USub_type);
+ if (PyModule_AddObject(m, "cmpop", state->cmpop_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->cmpop_type);
+ if (PyModule_AddObject(m, "Eq", state->Eq_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Eq_type);
+ if (PyModule_AddObject(m, "NotEq", state->NotEq_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->NotEq_type);
+ if (PyModule_AddObject(m, "Lt", state->Lt_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Lt_type);
+ if (PyModule_AddObject(m, "LtE", state->LtE_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->LtE_type);
+ if (PyModule_AddObject(m, "Gt", state->Gt_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Gt_type);
+ if (PyModule_AddObject(m, "GtE", state->GtE_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->GtE_type);
+ if (PyModule_AddObject(m, "Is", state->Is_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->Is_type);
+ if (PyModule_AddObject(m, "IsNot", state->IsNot_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->IsNot_type);
+ if (PyModule_AddObject(m, "In", state->In_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->In_type);
+ if (PyModule_AddObject(m, "NotIn", state->NotIn_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->NotIn_type);
+ if (PyModule_AddObject(m, "comprehension", state->comprehension_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->comprehension_type);
+ if (PyModule_AddObject(m, "excepthandler", state->excepthandler_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->excepthandler_type);
+ if (PyModule_AddObject(m, "ExceptHandler", state->ExceptHandler_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->ExceptHandler_type);
+ if (PyModule_AddObject(m, "arguments", state->arguments_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->arguments_type);
+ if (PyModule_AddObject(m, "arg", state->arg_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->arg_type);
+ if (PyModule_AddObject(m, "keyword", state->keyword_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->keyword_type);
+ if (PyModule_AddObject(m, "alias", state->alias_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->alias_type);
+ if (PyModule_AddObject(m, "withitem", state->withitem_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->withitem_type);
+ if (PyModule_AddObject(m, "type_ignore", state->type_ignore_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->type_ignore_type);
+ if (PyModule_AddObject(m, "TypeIgnore", state->TypeIgnore_type) < 0) {
+ return -1;
+ }
+ Py_INCREF(state->TypeIgnore_type);
+ return 0;
+}
+
+static PyModuleDef_Slot astmodule_slots[] = {
+ {Py_mod_exec, astmodule_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef _astmodule = {
- PyModuleDef_HEAD_INIT,
- .m_name = "_ast",
- // The _ast module uses a global state (global_ast_state).
- .m_size = 0,
- .m_slots = astmodule_slots,
+ PyModuleDef_HEAD_INIT,
+ .m_name = "_ast",
+ // The _ast module uses a global state (global_ast_state).
+ .m_size = 0,
+ .m_slots = astmodule_slots,
};
-
+
PyMODINIT_FUNC
PyInit__ast(void)
{
- return PyModuleDef_Init(&_astmodule);
+ return PyModuleDef_Init(&_astmodule);
}
PyObject* PyAST_mod2obj(mod_ty t)
{
- astmodulestate *state = get_global_ast_state();
- if (state == NULL) {
+ astmodulestate *state = get_global_ast_state();
+ if (state == NULL) {
return NULL;
- }
- return ast2obj_mod(state, t);
+ }
+ return ast2obj_mod(state, t);
}
/* mode is 0 for "exec", 1 for "eval" and 2 for "single" input */
mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
{
- const char * const req_name[] = {"Module", "Expression", "Interactive"};
+ const char * const req_name[] = {"Module", "Expression", "Interactive"};
int isinstance;
- if (PySys_Audit("compile", "OO", ast, Py_None) < 0) {
- return NULL;
- }
-
- astmodulestate *state = get_global_ast_state();
- PyObject *req_type[3];
- req_type[0] = state->Module_type;
- req_type[1] = state->Expression_type;
- req_type[2] = state->Interactive_type;
+ if (PySys_Audit("compile", "OO", ast, Py_None) < 0) {
+ return NULL;
+ }
+
+ astmodulestate *state = get_global_ast_state();
+ PyObject *req_type[3];
+ req_type[0] = state->Module_type;
+ req_type[1] = state->Expression_type;
+ req_type[2] = state->Interactive_type;
assert(0 <= mode && mode <= 2);
@@ -10831,12 +10831,12 @@ mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
return NULL;
if (!isinstance) {
PyErr_Format(PyExc_TypeError, "expected %s node, got %.400s",
- req_name[mode], _PyType_Name(Py_TYPE(ast)));
+ req_name[mode], _PyType_Name(Py_TYPE(ast)));
return NULL;
}
-
- mod_ty res = NULL;
- if (obj2ast_mod(state, ast, &res, arena) != 0)
+
+ mod_ty res = NULL;
+ if (obj2ast_mod(state, ast, &res, arena) != 0)
return NULL;
else
return res;
@@ -10844,11 +10844,11 @@ mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
int PyAST_Check(PyObject* obj)
{
- astmodulestate *state = get_global_ast_state();
- if (state == NULL) {
+ astmodulestate *state = get_global_ast_state();
+ if (state == NULL) {
return -1;
- }
- return PyObject_IsInstance(obj, state->AST_type);
+ }
+ return PyObject_IsInstance(obj, state->AST_type);
}
diff --git a/contrib/tools/python3/src/Python/_warnings.c b/contrib/tools/python3/src/Python/_warnings.c
index 4d07ed72fb..91a78fe72b 100644
--- a/contrib/tools/python3/src/Python/_warnings.c
+++ b/contrib/tools/python3/src/Python/_warnings.c
@@ -1,9 +1,9 @@
#include "Python.h"
-#include "pycore_initconfig.h"
-#include "pycore_interp.h" // PyInterpreterState.warnings
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "frameobject.h" // PyFrame_GetBack()
+#include "pycore_initconfig.h"
+#include "pycore_interp.h" // PyInterpreterState.warnings
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "frameobject.h" // PyFrame_GetBack()
#include "clinic/_warnings.c.h"
#define MODULE_NAME "_warnings"
@@ -18,141 +18,141 @@ _Py_IDENTIFIER(default);
_Py_IDENTIFIER(ignore);
#endif
-
-/*************************************************************************/
-
-typedef struct _warnings_runtime_state WarningsState;
-
-/* Forward declaration of the _warnings module definition. */
-static struct PyModuleDef warningsmodule;
-
-_Py_IDENTIFIER(__name__);
-
-/* Given a module object, get its per-module state. */
-static WarningsState *
-warnings_get_state(void)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- if (tstate == NULL) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "warnings_get_state: could not identify "
- "current interpreter");
- return NULL;
- }
- return &tstate->interp->warnings;
-}
-
-/* Clear the given warnings module state. */
-static void
-warnings_clear_state(WarningsState *st)
-{
- Py_CLEAR(st->filters);
- Py_CLEAR(st->once_registry);
- Py_CLEAR(st->default_action);
-}
-
-#ifndef Py_DEBUG
-static PyObject *
-create_filter(PyObject *category, _Py_Identifier *id, const char *modname)
-{
- PyObject *modname_obj = NULL;
- PyObject *action_str = _PyUnicode_FromId(id);
- if (action_str == NULL) {
- return NULL;
- }
-
- /* Default to "no module name" for initial filter set */
- if (modname != NULL) {
- modname_obj = PyUnicode_InternFromString(modname);
- if (modname_obj == NULL) {
- return NULL;
- }
- } else {
- modname_obj = Py_None;
- Py_INCREF(modname_obj);
- }
-
- /* This assumes the line number is zero for now. */
- PyObject *filter = PyTuple_Pack(5, action_str, Py_None,
- category, modname_obj, _PyLong_Zero);
- Py_DECREF(modname_obj);
- return filter;
-}
-#endif
-
-static PyObject *
-init_filters(void)
-{
-#ifdef Py_DEBUG
- /* Py_DEBUG builds show all warnings by default */
- return PyList_New(0);
-#else
- /* Other builds ignore a number of warning categories by default */
- PyObject *filters = PyList_New(5);
- if (filters == NULL) {
- return NULL;
- }
-
- size_t pos = 0; /* Post-incremented in each use. */
- PyList_SET_ITEM(filters, pos++,
- create_filter(PyExc_DeprecationWarning, &PyId_default, "__main__"));
- PyList_SET_ITEM(filters, pos++,
- create_filter(PyExc_DeprecationWarning, &PyId_ignore, NULL));
- PyList_SET_ITEM(filters, pos++,
- create_filter(PyExc_PendingDeprecationWarning, &PyId_ignore, NULL));
- PyList_SET_ITEM(filters, pos++,
- create_filter(PyExc_ImportWarning, &PyId_ignore, NULL));
- PyList_SET_ITEM(filters, pos++,
- create_filter(PyExc_ResourceWarning, &PyId_ignore, NULL));
-
- for (size_t x = 0; x < pos; x++) {
- if (PyList_GET_ITEM(filters, x) == NULL) {
- Py_DECREF(filters);
- return NULL;
- }
- }
- return filters;
-#endif
-}
-
-/* Initialize the given warnings module state. */
+
+/*************************************************************************/
+
+typedef struct _warnings_runtime_state WarningsState;
+
+/* Forward declaration of the _warnings module definition. */
+static struct PyModuleDef warningsmodule;
+
+_Py_IDENTIFIER(__name__);
+
+/* Given a module object, get its per-module state. */
+static WarningsState *
+warnings_get_state(void)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (tstate == NULL) {
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "warnings_get_state: could not identify "
+ "current interpreter");
+ return NULL;
+ }
+ return &tstate->interp->warnings;
+}
+
+/* Clear the given warnings module state. */
+static void
+warnings_clear_state(WarningsState *st)
+{
+ Py_CLEAR(st->filters);
+ Py_CLEAR(st->once_registry);
+ Py_CLEAR(st->default_action);
+}
+
+#ifndef Py_DEBUG
+static PyObject *
+create_filter(PyObject *category, _Py_Identifier *id, const char *modname)
+{
+ PyObject *modname_obj = NULL;
+ PyObject *action_str = _PyUnicode_FromId(id);
+ if (action_str == NULL) {
+ return NULL;
+ }
+
+ /* Default to "no module name" for initial filter set */
+ if (modname != NULL) {
+ modname_obj = PyUnicode_InternFromString(modname);
+ if (modname_obj == NULL) {
+ return NULL;
+ }
+ } else {
+ modname_obj = Py_None;
+ Py_INCREF(modname_obj);
+ }
+
+ /* This assumes the line number is zero for now. */
+ PyObject *filter = PyTuple_Pack(5, action_str, Py_None,
+ category, modname_obj, _PyLong_Zero);
+ Py_DECREF(modname_obj);
+ return filter;
+}
+#endif
+
+static PyObject *
+init_filters(void)
+{
+#ifdef Py_DEBUG
+ /* Py_DEBUG builds show all warnings by default */
+ return PyList_New(0);
+#else
+ /* Other builds ignore a number of warning categories by default */
+ PyObject *filters = PyList_New(5);
+ if (filters == NULL) {
+ return NULL;
+ }
+
+ size_t pos = 0; /* Post-incremented in each use. */
+ PyList_SET_ITEM(filters, pos++,
+ create_filter(PyExc_DeprecationWarning, &PyId_default, "__main__"));
+ PyList_SET_ITEM(filters, pos++,
+ create_filter(PyExc_DeprecationWarning, &PyId_ignore, NULL));
+ PyList_SET_ITEM(filters, pos++,
+ create_filter(PyExc_PendingDeprecationWarning, &PyId_ignore, NULL));
+ PyList_SET_ITEM(filters, pos++,
+ create_filter(PyExc_ImportWarning, &PyId_ignore, NULL));
+ PyList_SET_ITEM(filters, pos++,
+ create_filter(PyExc_ResourceWarning, &PyId_ignore, NULL));
+
+ for (size_t x = 0; x < pos; x++) {
+ if (PyList_GET_ITEM(filters, x) == NULL) {
+ Py_DECREF(filters);
+ return NULL;
+ }
+ }
+ return filters;
+#endif
+}
+
+/* Initialize the given warnings module state. */
+static int
+warnings_init_state(WarningsState *st)
+{
+ if (st->filters == NULL) {
+ st->filters = init_filters();
+ if (st->filters == NULL) {
+ goto error;
+ }
+ }
+
+ if (st->once_registry == NULL) {
+ st->once_registry = PyDict_New();
+ if (st->once_registry == NULL) {
+ goto error;
+ }
+ }
+
+ if (st->default_action == NULL) {
+ st->default_action = PyUnicode_FromString("default");
+ if (st->default_action == NULL) {
+ goto error;
+ }
+ }
+
+ st->filters_version = 0;
+
+ return 0;
+
+error:
+ warnings_clear_state(st);
+ return -1;
+}
+
+
+/*************************************************************************/
+
static int
-warnings_init_state(WarningsState *st)
-{
- if (st->filters == NULL) {
- st->filters = init_filters();
- if (st->filters == NULL) {
- goto error;
- }
- }
-
- if (st->once_registry == NULL) {
- st->once_registry = PyDict_New();
- if (st->once_registry == NULL) {
- goto error;
- }
- }
-
- if (st->default_action == NULL) {
- st->default_action = PyUnicode_FromString("default");
- if (st->default_action == NULL) {
- goto error;
- }
- }
-
- st->filters_version = 0;
-
- return 0;
-
-error:
- warnings_clear_state(st);
- return -1;
-}
-
-
-/*************************************************************************/
-
-static int
check_matched(PyObject *obj, PyObject *arg)
{
PyObject *result;
@@ -173,7 +173,7 @@ check_matched(PyObject *obj, PyObject *arg)
}
/* Otherwise assume a regex filter and call its match() method */
- result = _PyObject_CallMethodIdOneArg(obj, &PyId_match, arg);
+ result = _PyObject_CallMethodIdOneArg(obj, &PyId_match, arg);
if (result == NULL)
return -1;
@@ -215,7 +215,7 @@ get_warnings_attr(_Py_Identifier *attr_id, int try_import)
gone, then we can't even use PyImport_GetModule without triggering
an interpreter abort.
*/
- if (!_PyInterpreterState_GET()->modules) {
+ if (!_PyInterpreterState_GET()->modules) {
return NULL;
}
warnings_module = PyImport_GetModule(warnings_str);
@@ -230,7 +230,7 @@ get_warnings_attr(_Py_Identifier *attr_id, int try_import)
static PyObject *
-get_once_registry(WarningsState *st)
+get_once_registry(WarningsState *st)
{
PyObject *registry;
_Py_IDENTIFIER(onceregistry);
@@ -239,8 +239,8 @@ get_once_registry(WarningsState *st)
if (registry == NULL) {
if (PyErr_Occurred())
return NULL;
- assert(st->once_registry);
- return st->once_registry;
+ assert(st->once_registry);
+ return st->once_registry;
}
if (!PyDict_Check(registry)) {
PyErr_Format(PyExc_TypeError,
@@ -250,13 +250,13 @@ get_once_registry(WarningsState *st)
Py_DECREF(registry);
return NULL;
}
- Py_SETREF(st->once_registry, registry);
+ Py_SETREF(st->once_registry, registry);
return registry;
}
static PyObject *
-get_default_action(WarningsState *st)
+get_default_action(WarningsState *st)
{
PyObject *default_action;
_Py_IDENTIFIER(defaultaction);
@@ -266,8 +266,8 @@ get_default_action(WarningsState *st)
if (PyErr_Occurred()) {
return NULL;
}
- assert(st->default_action);
- return st->default_action;
+ assert(st->default_action);
+ return st->default_action;
}
if (!PyUnicode_Check(default_action)) {
PyErr_Format(PyExc_TypeError,
@@ -277,7 +277,7 @@ get_default_action(WarningsState *st)
Py_DECREF(default_action);
return NULL;
}
- Py_SETREF(st->default_action, default_action);
+ Py_SETREF(st->default_action, default_action);
return default_action;
}
@@ -291,10 +291,10 @@ get_filter(PyObject *category, PyObject *text, Py_ssize_t lineno,
Py_ssize_t i;
PyObject *warnings_filters;
_Py_IDENTIFIER(filters);
- WarningsState *st = warnings_get_state();
- if (st == NULL) {
- return NULL;
- }
+ WarningsState *st = warnings_get_state();
+ if (st == NULL) {
+ return NULL;
+ }
warnings_filters = get_warnings_attr(&PyId_filters, 0);
if (warnings_filters == NULL) {
@@ -302,17 +302,17 @@ get_filter(PyObject *category, PyObject *text, Py_ssize_t lineno,
return NULL;
}
else {
- Py_SETREF(st->filters, warnings_filters);
+ Py_SETREF(st->filters, warnings_filters);
}
- PyObject *filters = st->filters;
+ PyObject *filters = st->filters;
if (filters == NULL || !PyList_Check(filters)) {
PyErr_SetString(PyExc_ValueError,
MODULE_NAME ".filters must be a list");
return NULL;
}
- /* WarningsState.filters could change while we are iterating over it. */
+ /* WarningsState.filters could change while we are iterating over it. */
for (i = 0; i < PyList_GET_SIZE(filters); i++) {
PyObject *tmp_item, *action, *msg, *cat, *mod, *ln_obj;
Py_ssize_t ln;
@@ -373,7 +373,7 @@ get_filter(PyObject *category, PyObject *text, Py_ssize_t lineno,
Py_DECREF(tmp_item);
}
- action = get_default_action(st);
+ action = get_default_action(st);
if (action != NULL) {
Py_INCREF(Py_None);
*item = Py_None;
@@ -393,20 +393,20 @@ already_warned(PyObject *registry, PyObject *key, int should_set)
if (key == NULL)
return -1;
- WarningsState *st = warnings_get_state();
- if (st == NULL) {
- return -1;
- }
- version_obj = _PyDict_GetItemIdWithError(registry, &PyId_version);
+ WarningsState *st = warnings_get_state();
+ if (st == NULL) {
+ return -1;
+ }
+ version_obj = _PyDict_GetItemIdWithError(registry, &PyId_version);
if (version_obj == NULL
|| !PyLong_CheckExact(version_obj)
- || PyLong_AsLong(version_obj) != st->filters_version)
+ || PyLong_AsLong(version_obj) != st->filters_version)
{
if (PyErr_Occurred()) {
return -1;
}
PyDict_Clear(registry);
- version_obj = PyLong_FromLong(st->filters_version);
+ version_obj = PyLong_FromLong(st->filters_version);
if (version_obj == NULL)
return -1;
if (_PyDict_SetItemId(registry, &PyId_version, version_obj) < 0) {
@@ -416,15 +416,15 @@ already_warned(PyObject *registry, PyObject *key, int should_set)
Py_DECREF(version_obj);
}
else {
- already_warned = PyDict_GetItemWithError(registry, key);
+ already_warned = PyDict_GetItemWithError(registry, key);
if (already_warned != NULL) {
int rc = PyObject_IsTrue(already_warned);
if (rc != 0)
return rc;
}
- else if (PyErr_Occurred()) {
- return -1;
- }
+ else if (PyErr_Occurred()) {
+ return -1;
+ }
}
/* This warning wasn't found in the registry, set it. */
@@ -439,7 +439,7 @@ normalize_module(PyObject *filename)
{
PyObject *module;
int kind;
- const void *data;
+ const void *data;
Py_ssize_t len;
len = PyUnicode_GetLength(filename);
@@ -495,9 +495,9 @@ show_warning(PyObject *filename, int lineno, PyObject *text,
PyOS_snprintf(lineno_str, sizeof(lineno_str), ":%d: ", lineno);
name = _PyObject_GetAttrId(category, &PyId___name__);
- if (name == NULL) {
+ if (name == NULL) {
goto error;
- }
+ }
f_stderr = _PySys_GetObjectId(&PyId_stderr);
if (f_stderr == NULL) {
@@ -523,7 +523,7 @@ show_warning(PyObject *filename, int lineno, PyObject *text,
/* Print " source_line\n" */
if (sourceline) {
int kind;
- const void *data;
+ const void *data;
Py_ssize_t i, len;
Py_UCS4 ch;
PyObject *truncated;
@@ -599,7 +599,7 @@ call_show_warning(PyObject *category, PyObject *text, PyObject *message,
if (msg == NULL)
goto error;
- res = PyObject_CallOneArg(show_fn, msg);
+ res = PyObject_CallOneArg(show_fn, msg);
Py_DECREF(show_fn);
Py_DECREF(msg);
@@ -656,11 +656,11 @@ warn_explicit(PyObject *category, PyObject *message,
text = PyObject_Str(message);
if (text == NULL)
goto cleanup;
- category = (PyObject*)Py_TYPE(message);
+ category = (PyObject*)Py_TYPE(message);
}
else {
text = message;
- message = PyObject_CallOneArg(category, message);
+ message = PyObject_CallOneArg(category, message);
if (message == NULL)
goto cleanup;
}
@@ -712,15 +712,15 @@ warn_explicit(PyObject *category, PyObject *message,
if (_PyUnicode_EqualToASCIIString(action, "once")) {
if (registry == NULL || registry == Py_None) {
- WarningsState *st = warnings_get_state();
- if (st == NULL) {
- goto cleanup;
- }
- registry = get_once_registry(st);
+ WarningsState *st = warnings_get_state();
+ if (st == NULL) {
+ goto cleanup;
+ }
+ registry = get_once_registry(st);
if (registry == NULL)
goto cleanup;
}
- /* WarningsState.once_registry[(text, category)] = 1 */
+ /* WarningsState.once_registry[(text, category)] = 1 */
rc = update_registry(registry, text, category, 0);
}
else if (_PyUnicode_EqualToASCIIString(action, "module")) {
@@ -782,21 +782,21 @@ is_internal_frame(PyFrameObject *frame)
Py_INCREF(bootstrap_string);
}
- if (frame == NULL) {
+ if (frame == NULL) {
+ return 0;
+ }
+
+ PyCodeObject *code = PyFrame_GetCode(frame);
+ PyObject *filename = code->co_filename;
+ Py_DECREF(code);
+
+ if (filename == NULL) {
return 0;
}
-
- PyCodeObject *code = PyFrame_GetCode(frame);
- PyObject *filename = code->co_filename;
- Py_DECREF(code);
-
- if (filename == NULL) {
- return 0;
- }
if (!PyUnicode_Check(filename)) {
return 0;
}
-
+
contains = PyUnicode_Contains(filename, importlib_string);
if (contains < 0) {
return 0;
@@ -818,9 +818,9 @@ static PyFrameObject *
next_external_frame(PyFrameObject *frame)
{
do {
- PyFrameObject *back = PyFrame_GetBack(frame);
- Py_DECREF(frame);
- frame = back;
+ PyFrameObject *back = PyFrame_GetBack(frame);
+ Py_DECREF(frame);
+ frame = back;
} while (frame != NULL && is_internal_frame(frame));
return frame;
@@ -832,19 +832,19 @@ static int
setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
PyObject **module, PyObject **registry)
{
- _Py_IDENTIFIER(__warningregistry__);
+ _Py_IDENTIFIER(__warningregistry__);
PyObject *globals;
- /* Setup globals, filename and lineno. */
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *f = PyThreadState_GetFrame(tstate);
+ /* Setup globals, filename and lineno. */
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *f = PyThreadState_GetFrame(tstate);
// Stack level comparisons to Python code is off by one as there is no
// warnings-related stack level to avoid.
if (stack_level <= 0 || is_internal_frame(f)) {
while (--stack_level > 0 && f != NULL) {
- PyFrameObject *back = PyFrame_GetBack(f);
- Py_DECREF(f);
- f = back;
+ PyFrameObject *back = PyFrame_GetBack(f);
+ Py_DECREF(f);
+ f = back;
}
}
else {
@@ -854,18 +854,18 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
}
if (f == NULL) {
- globals = _PyInterpreterState_GET()->sysdict;
- *filename = PyUnicode_FromString("sys");
+ globals = _PyInterpreterState_GET()->sysdict;
+ *filename = PyUnicode_FromString("sys");
*lineno = 1;
}
else {
globals = f->f_globals;
- PyCodeObject *code = PyFrame_GetCode(f);
- *filename = code->co_filename;
- Py_DECREF(code);
- Py_INCREF(*filename);
+ PyCodeObject *code = PyFrame_GetCode(f);
+ *filename = code->co_filename;
+ Py_DECREF(code);
+ Py_INCREF(*filename);
*lineno = PyFrame_GetLineNumber(f);
- Py_DECREF(f);
+ Py_DECREF(f);
}
*module = NULL;
@@ -873,18 +873,18 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
/* Setup registry. */
assert(globals != NULL);
assert(PyDict_Check(globals));
- *registry = _PyDict_GetItemIdWithError(globals, &PyId___warningregistry__);
+ *registry = _PyDict_GetItemIdWithError(globals, &PyId___warningregistry__);
if (*registry == NULL) {
int rc;
- if (_PyErr_Occurred(tstate)) {
- goto handle_error;
- }
+ if (_PyErr_Occurred(tstate)) {
+ goto handle_error;
+ }
*registry = PyDict_New();
if (*registry == NULL)
- goto handle_error;
+ goto handle_error;
- rc = _PyDict_SetItemId(globals, &PyId___warningregistry__, *registry);
+ rc = _PyDict_SetItemId(globals, &PyId___warningregistry__, *registry);
if (rc < 0)
goto handle_error;
}
@@ -892,13 +892,13 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
Py_INCREF(*registry);
/* Setup module. */
- *module = _PyDict_GetItemIdWithError(globals, &PyId___name__);
+ *module = _PyDict_GetItemIdWithError(globals, &PyId___name__);
if (*module == Py_None || (*module != NULL && PyUnicode_Check(*module))) {
Py_INCREF(*module);
}
- else if (_PyErr_Occurred(tstate)) {
- goto handle_error;
- }
+ else if (_PyErr_Occurred(tstate)) {
+ goto handle_error;
+ }
else {
*module = PyUnicode_FromString("<string>");
if (*module == NULL)
@@ -910,7 +910,7 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
handle_error:
Py_XDECREF(*registry);
Py_XDECREF(*module);
- Py_DECREF(*filename);
+ Py_DECREF(*filename);
return 0;
}
@@ -925,7 +925,7 @@ get_category(PyObject *message, PyObject *category)
return NULL;
if (rc == 1)
- category = (PyObject*)Py_TYPE(message);
+ category = (PyObject*)Py_TYPE(message);
else if (category == NULL || category == Py_None)
category = PyExc_UserWarning;
@@ -1016,7 +1016,7 @@ get_source_line(PyObject *module_globals, int lineno)
return NULL;
}
/* Call get_source() to get the source code. */
- source = PyObject_CallOneArg(get_source, module_name);
+ source = PyObject_CallOneArg(get_source, module_name);
Py_DECREF(get_source);
Py_DECREF(module_name);
if (!source) {
@@ -1085,11 +1085,11 @@ warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds)
static PyObject *
warnings_filters_mutated(PyObject *self, PyObject *args)
{
- WarningsState *st = warnings_get_state();
- if (st == NULL) {
- return NULL;
- }
- st->filters_version++;
+ WarningsState *st = warnings_get_state();
+ if (st == NULL) {
+ return NULL;
+ }
+ st->filters_version++;
Py_RETURN_NONE;
}
@@ -1147,23 +1147,23 @@ PyErr_WarnFormat(PyObject *category, Py_ssize_t stack_level,
return res;
}
-static int
-_PyErr_WarnFormat(PyObject *source, PyObject *category, Py_ssize_t stack_level,
- const char *format, ...)
-{
- int res;
- va_list vargs;
-
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, format);
-#else
- va_start(vargs);
-#endif
- res = _PyErr_WarnFormatV(source, category, stack_level, format, vargs);
- va_end(vargs);
- return res;
-}
-
+static int
+_PyErr_WarnFormat(PyObject *source, PyObject *category, Py_ssize_t stack_level,
+ const char *format, ...)
+{
+ int res;
+ va_list vargs;
+
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
+ res = _PyErr_WarnFormatV(source, category, stack_level, format, vargs);
+ va_end(vargs);
+ return res;
+}
+
int
PyErr_ResourceWarning(PyObject *source, Py_ssize_t stack_level,
const char *format, ...)
@@ -1200,7 +1200,7 @@ PyErr_WarnEx(PyObject *category, const char *text, Py_ssize_t stack_level)
#undef PyErr_Warn
-int
+int
PyErr_Warn(PyObject *category, const char *text)
{
return PyErr_WarnEx(category, text, 1);
@@ -1320,7 +1320,7 @@ _PyErr_WarnUnawaitedCoroutine(PyObject *coro)
int warned = 0;
PyObject *fn = get_warnings_attr(&PyId__warn_unawaited_coroutine, 1);
if (fn) {
- PyObject *res = PyObject_CallOneArg(fn, coro);
+ PyObject *res = PyObject_CallOneArg(fn, coro);
Py_DECREF(fn);
if (res || PyErr_ExceptionMatches(PyExc_RuntimeWarning)) {
warned = 1;
@@ -1332,9 +1332,9 @@ _PyErr_WarnUnawaitedCoroutine(PyObject *coro)
PyErr_WriteUnraisable(coro);
}
if (!warned) {
- if (_PyErr_WarnFormat(coro, PyExc_RuntimeWarning, 1,
- "coroutine '%S' was never awaited",
- ((PyCoroObject *)coro)->cr_qualname) < 0)
+ if (_PyErr_WarnFormat(coro, PyExc_RuntimeWarning, 1,
+ "coroutine '%S' was never awaited",
+ ((PyCoroObject *)coro)->cr_qualname) < 0)
{
PyErr_WriteUnraisable(coro);
}
@@ -1342,11 +1342,11 @@ _PyErr_WarnUnawaitedCoroutine(PyObject *coro)
}
PyDoc_STRVAR(warn_explicit_doc,
-"Low-level interface to warnings functionality.");
+"Low-level interface to warnings functionality.");
static PyMethodDef warnings_functions[] = {
WARNINGS_WARN_METHODDEF
- {"warn_explicit", (PyCFunction)(void(*)(void))warnings_warn_explicit,
+ {"warn_explicit", (PyCFunction)(void(*)(void))warnings_warn_explicit,
METH_VARARGS | METH_KEYWORDS, warn_explicit_doc},
{"_filters_mutated", (PyCFunction)warnings_filters_mutated, METH_NOARGS,
NULL},
@@ -1358,73 +1358,73 @@ static PyMethodDef warnings_functions[] = {
static struct PyModuleDef warningsmodule = {
PyModuleDef_HEAD_INIT,
- MODULE_NAME, /* m_name */
- warnings__doc__, /* m_doc */
- 0, /* m_size */
- warnings_functions, /* m_methods */
- NULL, /* m_reload */
- NULL, /* m_traverse */
- NULL, /* m_clear */
- NULL /* m_free */
+ MODULE_NAME, /* m_name */
+ warnings__doc__, /* m_doc */
+ 0, /* m_size */
+ warnings_functions, /* m_methods */
+ NULL, /* m_reload */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL /* m_free */
};
-PyStatus
-_PyWarnings_InitState(PyThreadState *tstate)
-{
- if (warnings_init_state(&tstate->interp->warnings) < 0) {
- return _PyStatus_ERR("can't initialize warnings");
- }
- return _PyStatus_OK();
-}
-
-
+PyStatus
+_PyWarnings_InitState(PyThreadState *tstate)
+{
+ if (warnings_init_state(&tstate->interp->warnings) < 0) {
+ return _PyStatus_ERR("can't initialize warnings");
+ }
+ return _PyStatus_OK();
+}
+
+
PyMODINIT_FUNC
_PyWarnings_Init(void)
{
PyObject *m;
m = PyModule_Create(&warningsmodule);
- if (m == NULL) {
+ if (m == NULL) {
return NULL;
- }
+ }
- WarningsState *st = warnings_get_state();
- if (st == NULL) {
- goto error;
+ WarningsState *st = warnings_get_state();
+ if (st == NULL) {
+ goto error;
+ }
+ if (warnings_init_state(st) < 0) {
+ goto error;
}
- if (warnings_init_state(st) < 0) {
- goto error;
- }
- Py_INCREF(st->filters);
- if (PyModule_AddObject(m, "filters", st->filters) < 0) {
- goto error;
+ Py_INCREF(st->filters);
+ if (PyModule_AddObject(m, "filters", st->filters) < 0) {
+ goto error;
}
- Py_INCREF(st->once_registry);
- if (PyModule_AddObject(m, "_onceregistry", st->once_registry) < 0) {
- goto error;
+ Py_INCREF(st->once_registry);
+ if (PyModule_AddObject(m, "_onceregistry", st->once_registry) < 0) {
+ goto error;
+ }
+
+ Py_INCREF(st->default_action);
+ if (PyModule_AddObject(m, "_defaultaction", st->default_action) < 0) {
+ goto error;
}
- Py_INCREF(st->default_action);
- if (PyModule_AddObject(m, "_defaultaction", st->default_action) < 0) {
- goto error;
- }
-
return m;
-
-error:
- if (st != NULL) {
- warnings_clear_state(st);
- }
- Py_DECREF(m);
- return NULL;
+
+error:
+ if (st != NULL) {
+ warnings_clear_state(st);
+ }
+ Py_DECREF(m);
+ return NULL;
+}
+
+// We need this to ensure that warnings still work until late in finalization.
+void
+_PyWarnings_Fini(PyInterpreterState *interp)
+{
+ warnings_clear_state(&interp->warnings);
}
-
-// We need this to ensure that warnings still work until late in finalization.
-void
-_PyWarnings_Fini(PyInterpreterState *interp)
-{
- warnings_clear_state(&interp->warnings);
-}
diff --git a/contrib/tools/python3/src/Python/ast.c b/contrib/tools/python3/src/Python/ast.c
index cf9d61ccd2..6dd7059263 100644
--- a/contrib/tools/python3/src/Python/ast.c
+++ b/contrib/tools/python3/src/Python/ast.c
@@ -13,8 +13,8 @@
#include <assert.h>
#include <stdbool.h>
-#define MAXLEVEL 200 /* Max parentheses level */
-
+#define MAXLEVEL 200 /* Max parentheses level */
+
static int validate_stmts(asdl_seq *);
static int validate_exprs(asdl_seq *, expr_context_ty, int);
static int validate_nonempty_seq(asdl_seq *, const char *, const char *);
@@ -22,28 +22,28 @@ static int validate_stmt(stmt_ty);
static int validate_expr(expr_ty, expr_context_ty);
static int
-validate_name(PyObject *name)
-{
- assert(PyUnicode_Check(name));
- static const char * const forbidden[] = {
- "None",
- "True",
- "False",
- NULL
- };
- for (int i = 0; forbidden[i] != NULL; i++) {
- if (_PyUnicode_EqualToASCIIString(name, forbidden[i])) {
- PyErr_Format(PyExc_ValueError, "Name node can't be used with '%s' constant", forbidden[i]);
- return 0;
- }
- }
- return 1;
-}
-
-static int
+validate_name(PyObject *name)
+{
+ assert(PyUnicode_Check(name));
+ static const char * const forbidden[] = {
+ "None",
+ "True",
+ "False",
+ NULL
+ };
+ for (int i = 0; forbidden[i] != NULL; i++) {
+ if (_PyUnicode_EqualToASCIIString(name, forbidden[i])) {
+ PyErr_Format(PyExc_ValueError, "Name node can't be used with '%s' constant", forbidden[i]);
+ return 0;
+ }
+ }
+ return 1;
+}
+
+static int
validate_comprehension(asdl_seq *gens)
{
- Py_ssize_t i;
+ Py_ssize_t i;
if (!asdl_seq_LEN(gens)) {
PyErr_SetString(PyExc_ValueError, "comprehension with no generators");
return 0;
@@ -61,7 +61,7 @@ validate_comprehension(asdl_seq *gens)
static int
validate_keywords(asdl_seq *keywords)
{
- Py_ssize_t i;
+ Py_ssize_t i;
for (i = 0; i < asdl_seq_LEN(keywords); i++)
if (!validate_expr(((keyword_ty)asdl_seq_GET(keywords, i))->value, Load))
return 0;
@@ -71,7 +71,7 @@ validate_keywords(asdl_seq *keywords)
static int
validate_args(asdl_seq *args)
{
- Py_ssize_t i;
+ Py_ssize_t i;
for (i = 0; i < asdl_seq_LEN(args); i++) {
arg_ty arg = asdl_seq_GET(args, i);
if (arg->annotation && !validate_expr(arg->annotation, Load))
@@ -98,9 +98,9 @@ expr_context_name(expr_context_ty ctx)
static int
validate_arguments(arguments_ty args)
{
- if (!validate_args(args->posonlyargs) || !validate_args(args->args)) {
+ if (!validate_args(args->posonlyargs) || !validate_args(args->args)) {
return 0;
- }
+ }
if (args->vararg && args->vararg->annotation
&& !validate_expr(args->vararg->annotation, Load)) {
return 0;
@@ -111,7 +111,7 @@ validate_arguments(arguments_ty args)
&& !validate_expr(args->kwarg->annotation, Load)) {
return 0;
}
- if (asdl_seq_LEN(args->defaults) > asdl_seq_LEN(args->posonlyargs) + asdl_seq_LEN(args->args)) {
+ if (asdl_seq_LEN(args->defaults) > asdl_seq_LEN(args->posonlyargs) + asdl_seq_LEN(args->args)) {
PyErr_SetString(PyExc_ValueError, "more positional defaults than args on arguments");
return 0;
}
@@ -166,11 +166,11 @@ validate_constant(PyObject *value)
return 1;
}
- if (!PyErr_Occurred()) {
- PyErr_Format(PyExc_TypeError,
- "got an invalid type in Constant: %s",
- _PyType_Name(Py_TYPE(value)));
- }
+ if (!PyErr_Occurred()) {
+ PyErr_Format(PyExc_TypeError,
+ "got an invalid type in Constant: %s",
+ _PyType_Name(Py_TYPE(value)));
+ }
return 0;
}
@@ -192,9 +192,9 @@ validate_expr(expr_ty exp, expr_context_ty ctx)
actual_ctx = exp->v.Starred.ctx;
break;
case Name_kind:
- if (!validate_name(exp->v.Name.id)) {
- return 0;
- }
+ if (!validate_name(exp->v.Name.id)) {
+ return 0;
+ }
actual_ctx = exp->v.Name.ctx;
break;
case List_kind:
@@ -302,26 +302,26 @@ validate_expr(expr_ty exp, expr_context_ty ctx)
case Attribute_kind:
return validate_expr(exp->v.Attribute.value, Load);
case Subscript_kind:
- return validate_expr(exp->v.Subscript.slice, Load) &&
+ return validate_expr(exp->v.Subscript.slice, Load) &&
validate_expr(exp->v.Subscript.value, Load);
case Starred_kind:
return validate_expr(exp->v.Starred.value, ctx);
- case Slice_kind:
- return (!exp->v.Slice.lower || validate_expr(exp->v.Slice.lower, Load)) &&
- (!exp->v.Slice.upper || validate_expr(exp->v.Slice.upper, Load)) &&
- (!exp->v.Slice.step || validate_expr(exp->v.Slice.step, Load));
+ case Slice_kind:
+ return (!exp->v.Slice.lower || validate_expr(exp->v.Slice.lower, Load)) &&
+ (!exp->v.Slice.upper || validate_expr(exp->v.Slice.upper, Load)) &&
+ (!exp->v.Slice.step || validate_expr(exp->v.Slice.step, Load));
case List_kind:
return validate_exprs(exp->v.List.elts, ctx, 0);
case Tuple_kind:
return validate_exprs(exp->v.Tuple.elts, ctx, 0);
- case NamedExpr_kind:
- return validate_expr(exp->v.NamedExpr.value, Load);
- /* This last case doesn't have any checking. */
+ case NamedExpr_kind:
+ return validate_expr(exp->v.NamedExpr.value, Load);
+ /* This last case doesn't have any checking. */
case Name_kind:
return 1;
}
- PyErr_SetString(PyExc_SystemError, "unexpected expression");
- return 0;
+ PyErr_SetString(PyExc_SystemError, "unexpected expression");
+ return 0;
}
static int
@@ -349,7 +349,7 @@ validate_body(asdl_seq *body, const char *owner)
static int
validate_stmt(stmt_ty stmt)
{
- Py_ssize_t i;
+ Py_ssize_t i;
switch (stmt->kind) {
case FunctionDef_kind:
return validate_body(stmt->v.FunctionDef.body, "FunctionDef") &&
@@ -491,7 +491,7 @@ validate_stmt(stmt_ty stmt)
static int
validate_stmts(asdl_seq *seq)
{
- Py_ssize_t i;
+ Py_ssize_t i;
for (i = 0; i < asdl_seq_LEN(seq); i++) {
stmt_ty stmt = asdl_seq_GET(seq, i);
if (stmt) {
@@ -510,7 +510,7 @@ validate_stmts(asdl_seq *seq)
static int
validate_exprs(asdl_seq *exprs, expr_context_ty ctx, int null_ok)
{
- Py_ssize_t i;
+ Py_ssize_t i;
for (i = 0; i < asdl_seq_LEN(exprs); i++) {
expr_ty expr = asdl_seq_GET(exprs, i);
if (expr) {
@@ -560,7 +560,7 @@ struct compiling {
PyArena *c_arena; /* Arena for allocating memory. */
PyObject *c_filename; /* filename */
PyObject *c_normalize; /* Normalization function from unicodedata. */
- int c_feature_version; /* Latest minor version of Python for allowed features */
+ int c_feature_version; /* Latest minor version of Python for allowed features */
};
static asdl_seq *seq_for_testlist(struct compiling *, const node *);
@@ -576,12 +576,12 @@ static stmt_ty ast_for_with_stmt(struct compiling *, const node *, bool);
static stmt_ty ast_for_for_stmt(struct compiling *, const node *, bool);
/* Note different signature for ast_for_call */
-static expr_ty ast_for_call(struct compiling *, const node *, expr_ty,
- const node *, const node *, const node *);
+static expr_ty ast_for_call(struct compiling *, const node *, expr_ty,
+ const node *, const node *, const node *);
static PyObject *parsenumber(struct compiling *, const char *);
static expr_ty parsestrplus(struct compiling *, const node *n);
-static void get_last_end_pos(asdl_seq *, int *, int *);
+static void get_last_end_pos(asdl_seq *, int *, int *);
#define COMP_GENEXP 0
#define COMP_LISTCOMP 1
@@ -616,7 +616,7 @@ new_identifier(const char *n, struct compiling *c)
Py_DECREF(id);
return NULL;
}
- PyObject *form = PyUnicode_InternFromString("NFKC");
+ PyObject *form = PyUnicode_InternFromString("NFKC");
if (form == NULL) {
Py_DECREF(id);
return NULL;
@@ -624,14 +624,14 @@ new_identifier(const char *n, struct compiling *c)
PyObject *args[2] = {form, id};
id2 = _PyObject_FastCall(c->c_normalize, args, 2);
Py_DECREF(id);
- Py_DECREF(form);
+ Py_DECREF(form);
if (!id2)
return NULL;
if (!PyUnicode_Check(id2)) {
PyErr_Format(PyExc_TypeError,
"unicodedata.normalize() must return a string, not "
"%.200s",
- _PyType_Name(Py_TYPE(id2)));
+ _PyType_Name(Py_TYPE(id2)));
Py_DECREF(id2);
return NULL;
}
@@ -648,25 +648,25 @@ new_identifier(const char *n, struct compiling *c)
#define NEW_IDENTIFIER(n) new_identifier(STR(n), c)
static int
-ast_error(struct compiling *c, const node *n, const char *errmsg, ...)
+ast_error(struct compiling *c, const node *n, const char *errmsg, ...)
{
PyObject *value, *errstr, *loc, *tmp;
- va_list va;
-
- va_start(va, errmsg);
- errstr = PyUnicode_FromFormatV(errmsg, va);
- va_end(va);
- if (!errstr) {
- return 0;
- }
+ va_list va;
+
+ va_start(va, errmsg);
+ errstr = PyUnicode_FromFormatV(errmsg, va);
+ va_end(va);
+ if (!errstr) {
+ return 0;
+ }
loc = PyErr_ProgramTextObject(c->c_filename, LINENO(n));
if (!loc) {
Py_INCREF(Py_None);
loc = Py_None;
}
- tmp = Py_BuildValue("(OiiN)", c->c_filename, LINENO(n), n->n_col_offset + 1, loc);
- if (!tmp) {
- Py_DECREF(errstr);
+ tmp = Py_BuildValue("(OiiN)", c->c_filename, LINENO(n), n->n_col_offset + 1, loc);
+ if (!tmp) {
+ Py_DECREF(errstr);
return 0;
}
value = PyTuple_Pack(2, errstr, tmp);
@@ -693,20 +693,20 @@ ast_error(struct compiling *c, const node *n, const char *errmsg, ...)
small_stmt elements is returned.
*/
-static string
-new_type_comment(const char *s, struct compiling *c)
-{
- PyObject *res = PyUnicode_DecodeUTF8(s, strlen(s), NULL);
- if (res == NULL)
- return NULL;
- if (PyArena_AddPyObject(c->c_arena, res) < 0) {
- Py_DECREF(res);
- return NULL;
- }
- return res;
-}
-#define NEW_TYPE_COMMENT(n) new_type_comment(STR(n), c)
-
+static string
+new_type_comment(const char *s, struct compiling *c)
+{
+ PyObject *res = PyUnicode_DecodeUTF8(s, strlen(s), NULL);
+ if (res == NULL)
+ return NULL;
+ if (PyArena_AddPyObject(c->c_arena, res) < 0) {
+ Py_DECREF(res);
+ return NULL;
+ }
+ return res;
+}
+#define NEW_TYPE_COMMENT(n) new_type_comment(STR(n), c)
+
static int
num_stmts(const node *n)
{
@@ -734,23 +734,23 @@ num_stmts(const node *n)
case simple_stmt:
return NCH(n) / 2; /* Divide by 2 to remove count of semi-colons */
case suite:
- case func_body_suite:
- /* func_body_suite: simple_stmt | NEWLINE [TYPE_COMMENT NEWLINE] INDENT stmt+ DEDENT */
- /* suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT */
+ case func_body_suite:
+ /* func_body_suite: simple_stmt | NEWLINE [TYPE_COMMENT NEWLINE] INDENT stmt+ DEDENT */
+ /* suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT */
if (NCH(n) == 1)
return num_stmts(CHILD(n, 0));
else {
- i = 2;
+ i = 2;
l = 0;
- if (TYPE(CHILD(n, 1)) == TYPE_COMMENT)
- i += 2;
- for (; i < (NCH(n) - 1); i++)
+ if (TYPE(CHILD(n, 1)) == TYPE_COMMENT)
+ i += 2;
+ for (; i < (NCH(n) - 1); i++)
l += num_stmts(CHILD(n, i));
return l;
}
default: {
- _Py_FatalErrorFormat(__func__, "Non-statement found: %d %d",
- TYPE(n), NCH(n));
+ _Py_FatalErrorFormat(__func__, "Non-statement found: %d %d",
+ TYPE(n), NCH(n));
}
}
Py_UNREACHABLE();
@@ -765,20 +765,20 @@ PyAST_FromNodeObject(const node *n, PyCompilerFlags *flags,
{
int i, j, k, num;
asdl_seq *stmts = NULL;
- asdl_seq *type_ignores = NULL;
+ asdl_seq *type_ignores = NULL;
stmt_ty s;
node *ch;
struct compiling c;
mod_ty res = NULL;
- asdl_seq *argtypes = NULL;
- expr_ty ret, arg;
+ asdl_seq *argtypes = NULL;
+ expr_ty ret, arg;
c.c_arena = arena;
/* borrowed reference */
c.c_filename = filename;
c.c_normalize = NULL;
- c.c_feature_version = flags && (flags->cf_flags & PyCF_ONLY_AST) ?
- flags->cf_feature_version : PY_MINOR_VERSION;
+ c.c_feature_version = flags && (flags->cf_flags & PyCF_ONLY_AST) ?
+ flags->cf_feature_version : PY_MINOR_VERSION;
if (TYPE(n) == encoding_decl)
n = CHILD(n, 0);
@@ -812,26 +812,26 @@ PyAST_FromNodeObject(const node *n, PyCompilerFlags *flags,
}
}
}
-
- /* Type ignores are stored under the ENDMARKER in file_input. */
- ch = CHILD(n, NCH(n) - 1);
- REQ(ch, ENDMARKER);
- num = NCH(ch);
- type_ignores = _Py_asdl_seq_new(num, arena);
- if (!type_ignores)
- goto out;
-
- for (i = 0; i < num; i++) {
- string type_comment = new_type_comment(STR(CHILD(ch, i)), &c);
- if (!type_comment)
- goto out;
- type_ignore_ty ti = TypeIgnore(LINENO(CHILD(ch, i)), type_comment, arena);
- if (!ti)
- goto out;
- asdl_seq_SET(type_ignores, i, ti);
- }
-
- res = Module(stmts, type_ignores, arena);
+
+ /* Type ignores are stored under the ENDMARKER in file_input. */
+ ch = CHILD(n, NCH(n) - 1);
+ REQ(ch, ENDMARKER);
+ num = NCH(ch);
+ type_ignores = _Py_asdl_seq_new(num, arena);
+ if (!type_ignores)
+ goto out;
+
+ for (i = 0; i < num; i++) {
+ string type_comment = new_type_comment(STR(CHILD(ch, i)), &c);
+ if (!type_comment)
+ goto out;
+ type_ignore_ty ti = TypeIgnore(LINENO(CHILD(ch, i)), type_comment, arena);
+ if (!ti)
+ goto out;
+ asdl_seq_SET(type_ignores, i, ti);
+ }
+
+ res = Module(stmts, type_ignores, arena);
break;
case eval_input: {
expr_ty testlist_ast;
@@ -849,7 +849,7 @@ PyAST_FromNodeObject(const node *n, PyCompilerFlags *flags,
if (!stmts)
goto out;
asdl_seq_SET(stmts, 0, Pass(n->n_lineno, n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
arena));
if (!asdl_seq_GET(stmts, 0))
goto out;
@@ -883,46 +883,46 @@ PyAST_FromNodeObject(const node *n, PyCompilerFlags *flags,
res = Interactive(stmts, arena);
}
break;
- case func_type_input:
- n = CHILD(n, 0);
- REQ(n, func_type);
-
- if (TYPE(CHILD(n, 1)) == typelist) {
- ch = CHILD(n, 1);
- /* this is overly permissive -- we don't pay any attention to
- * stars on the args -- just parse them into an ordered list */
- num = 0;
- for (i = 0; i < NCH(ch); i++) {
- if (TYPE(CHILD(ch, i)) == test) {
- num++;
- }
- }
-
- argtypes = _Py_asdl_seq_new(num, arena);
- if (!argtypes)
- goto out;
-
- j = 0;
- for (i = 0; i < NCH(ch); i++) {
- if (TYPE(CHILD(ch, i)) == test) {
- arg = ast_for_expr(&c, CHILD(ch, i));
- if (!arg)
- goto out;
- asdl_seq_SET(argtypes, j++, arg);
- }
- }
- }
- else {
- argtypes = _Py_asdl_seq_new(0, arena);
- if (!argtypes)
- goto out;
- }
-
- ret = ast_for_expr(&c, CHILD(n, NCH(n) - 1));
- if (!ret)
- goto out;
- res = FunctionType(argtypes, ret, arena);
- break;
+ case func_type_input:
+ n = CHILD(n, 0);
+ REQ(n, func_type);
+
+ if (TYPE(CHILD(n, 1)) == typelist) {
+ ch = CHILD(n, 1);
+ /* this is overly permissive -- we don't pay any attention to
+ * stars on the args -- just parse them into an ordered list */
+ num = 0;
+ for (i = 0; i < NCH(ch); i++) {
+ if (TYPE(CHILD(ch, i)) == test) {
+ num++;
+ }
+ }
+
+ argtypes = _Py_asdl_seq_new(num, arena);
+ if (!argtypes)
+ goto out;
+
+ j = 0;
+ for (i = 0; i < NCH(ch); i++) {
+ if (TYPE(CHILD(ch, i)) == test) {
+ arg = ast_for_expr(&c, CHILD(ch, i));
+ if (!arg)
+ goto out;
+ asdl_seq_SET(argtypes, j++, arg);
+ }
+ }
+ }
+ else {
+ argtypes = _Py_asdl_seq_new(0, arena);
+ if (!argtypes)
+ goto out;
+ }
+
+ ret = ast_for_expr(&c, CHILD(n, NCH(n) - 1));
+ if (!ret)
+ goto out;
+ res = FunctionType(argtypes, ret, arena);
+ break;
default:
PyErr_Format(PyExc_SystemError,
"invalid node %d for PyAST_FromNode", TYPE(n));
@@ -954,7 +954,7 @@ PyAST_FromNode(const node *n, PyCompilerFlags *flags, const char *filename_str,
*/
static operator_ty
-get_operator(struct compiling *c, const node *n)
+get_operator(struct compiling *c, const node *n)
{
switch (TYPE(n)) {
case VBAR:
@@ -974,11 +974,11 @@ get_operator(struct compiling *c, const node *n)
case STAR:
return Mult;
case AT:
- if (c->c_feature_version < 5) {
- ast_error(c, n,
- "The '@' operator is only supported in Python 3.5 and greater");
- return (operator_ty)0;
- }
+ if (c->c_feature_version < 5) {
+ ast_error(c, n,
+ "The '@' operator is only supported in Python 3.5 and greater");
+ return (operator_ty)0;
+ }
return MatMult;
case SLASH:
return Div;
@@ -995,7 +995,7 @@ static const char * const FORBIDDEN[] = {
"None",
"True",
"False",
- "__debug__",
+ "__debug__",
NULL,
};
@@ -1004,107 +1004,107 @@ forbidden_name(struct compiling *c, identifier name, const node *n,
int full_checks)
{
assert(PyUnicode_Check(name));
- const char * const *p = FORBIDDEN;
- if (!full_checks) {
- /* In most cases, the parser will protect True, False, and None
- from being assign to. */
- p += 3;
- }
- for (; *p; p++) {
- if (_PyUnicode_EqualToASCIIString(name, *p)) {
- ast_error(c, n, "cannot assign to %U", name);
- return 1;
+ const char * const *p = FORBIDDEN;
+ if (!full_checks) {
+ /* In most cases, the parser will protect True, False, and None
+ from being assign to. */
+ p += 3;
+ }
+ for (; *p; p++) {
+ if (_PyUnicode_EqualToASCIIString(name, *p)) {
+ ast_error(c, n, "cannot assign to %U", name);
+ return 1;
}
}
return 0;
}
-static expr_ty
-copy_location(expr_ty e, const node *n, const node *end)
-{
- if (e) {
- e->lineno = LINENO(n);
- e->col_offset = n->n_col_offset;
- e->end_lineno = end->n_end_lineno;
- e->end_col_offset = end->n_end_col_offset;
- }
- return e;
-}
-
-static const char *
-get_expr_name(expr_ty e)
-{
- switch (e->kind) {
- case Attribute_kind:
- return "attribute";
- case Subscript_kind:
- return "subscript";
- case Starred_kind:
- return "starred";
- case Name_kind:
- return "name";
- case List_kind:
- return "list";
- case Tuple_kind:
- return "tuple";
- case Lambda_kind:
- return "lambda";
- case Call_kind:
- return "function call";
- case BoolOp_kind:
- case BinOp_kind:
- case UnaryOp_kind:
- return "operator";
- case GeneratorExp_kind:
- return "generator expression";
- case Yield_kind:
- case YieldFrom_kind:
- return "yield expression";
- case Await_kind:
- return "await expression";
- case ListComp_kind:
- return "list comprehension";
- case SetComp_kind:
- return "set comprehension";
- case DictComp_kind:
- return "dict comprehension";
- case Dict_kind:
- return "dict display";
- case Set_kind:
- return "set display";
- case JoinedStr_kind:
- case FormattedValue_kind:
- return "f-string expression";
- case Constant_kind: {
- PyObject *value = e->v.Constant.value;
- if (value == Py_None) {
- return "None";
- }
- if (value == Py_False) {
- return "False";
- }
- if (value == Py_True) {
- return "True";
- }
- if (value == Py_Ellipsis) {
- return "Ellipsis";
- }
- return "literal";
- }
- case Compare_kind:
- return "comparison";
- case IfExp_kind:
- return "conditional expression";
- case NamedExpr_kind:
- return "named expression";
- default:
- PyErr_Format(PyExc_SystemError,
- "unexpected expression in assignment %d (line %d)",
- e->kind, e->lineno);
- return NULL;
- }
-}
-
+static expr_ty
+copy_location(expr_ty e, const node *n, const node *end)
+{
+ if (e) {
+ e->lineno = LINENO(n);
+ e->col_offset = n->n_col_offset;
+ e->end_lineno = end->n_end_lineno;
+ e->end_col_offset = end->n_end_col_offset;
+ }
+ return e;
+}
+
+static const char *
+get_expr_name(expr_ty e)
+{
+ switch (e->kind) {
+ case Attribute_kind:
+ return "attribute";
+ case Subscript_kind:
+ return "subscript";
+ case Starred_kind:
+ return "starred";
+ case Name_kind:
+ return "name";
+ case List_kind:
+ return "list";
+ case Tuple_kind:
+ return "tuple";
+ case Lambda_kind:
+ return "lambda";
+ case Call_kind:
+ return "function call";
+ case BoolOp_kind:
+ case BinOp_kind:
+ case UnaryOp_kind:
+ return "operator";
+ case GeneratorExp_kind:
+ return "generator expression";
+ case Yield_kind:
+ case YieldFrom_kind:
+ return "yield expression";
+ case Await_kind:
+ return "await expression";
+ case ListComp_kind:
+ return "list comprehension";
+ case SetComp_kind:
+ return "set comprehension";
+ case DictComp_kind:
+ return "dict comprehension";
+ case Dict_kind:
+ return "dict display";
+ case Set_kind:
+ return "set display";
+ case JoinedStr_kind:
+ case FormattedValue_kind:
+ return "f-string expression";
+ case Constant_kind: {
+ PyObject *value = e->v.Constant.value;
+ if (value == Py_None) {
+ return "None";
+ }
+ if (value == Py_False) {
+ return "False";
+ }
+ if (value == Py_True) {
+ return "True";
+ }
+ if (value == Py_Ellipsis) {
+ return "Ellipsis";
+ }
+ return "literal";
+ }
+ case Compare_kind:
+ return "comparison";
+ case IfExp_kind:
+ return "conditional expression";
+ case NamedExpr_kind:
+ return "named expression";
+ default:
+ PyErr_Format(PyExc_SystemError,
+ "unexpected expression in assignment %d (line %d)",
+ e->kind, e->lineno);
+ return NULL;
+ }
+}
+
/* Set the context ctx for expr_ty e, recursively traversing e.
Only sets context for expr kinds that "can appear in assignment context"
@@ -1117,7 +1117,7 @@ set_context(struct compiling *c, expr_ty e, expr_context_ty ctx, const node *n)
{
asdl_seq *s = NULL;
- /* Expressions in an augmented assignment have a Store context. */
+ /* Expressions in an augmented assignment have a Store context. */
switch (e->kind) {
case Attribute_kind:
@@ -1148,22 +1148,22 @@ set_context(struct compiling *c, expr_ty e, expr_context_ty ctx, const node *n)
e->v.Tuple.ctx = ctx;
s = e->v.Tuple.elts;
break;
- default: {
- const char *expr_name = get_expr_name(e);
- if (expr_name != NULL) {
- ast_error(c, n, "cannot %s %s",
- ctx == Store ? "assign to" : "delete",
- expr_name);
- }
+ default: {
+ const char *expr_name = get_expr_name(e);
+ if (expr_name != NULL) {
+ ast_error(c, n, "cannot %s %s",
+ ctx == Store ? "assign to" : "delete",
+ expr_name);
+ }
return 0;
- }
+ }
}
/* If the LHS is a list or tuple, we need to set the assignment
context for all the contained elements.
*/
if (s) {
- Py_ssize_t i;
+ Py_ssize_t i;
for (i = 0; i < asdl_seq_LEN(s); i++) {
if (!set_context(c, (expr_ty)asdl_seq_GET(s, i), ctx, n))
@@ -1206,11 +1206,11 @@ ast_for_augassign(struct compiling *c, const node *n)
else
return Mult;
case '@':
- if (c->c_feature_version < 5) {
- ast_error(c, n,
- "The '@' operator is only supported in Python 3.5 and greater");
- return (operator_ty)0;
- }
+ if (c->c_feature_version < 5) {
+ ast_error(c, n,
+ "The '@' operator is only supported in Python 3.5 and greater");
+ return (operator_ty)0;
+ }
return MatMult;
default:
PyErr_Format(PyExc_SystemError, "invalid augassign: %s", STR(n));
@@ -1289,7 +1289,7 @@ seq_for_testlist(struct compiling *c, const node *n)
for (i = 0; i < NCH(n); i += 2) {
const node *ch = CHILD(n, i);
- assert(TYPE(ch) == test || TYPE(ch) == test_nocond || TYPE(ch) == star_expr || TYPE(ch) == namedexpr_test);
+ assert(TYPE(ch) == test || TYPE(ch) == test_nocond || TYPE(ch) == star_expr || TYPE(ch) == namedexpr_test);
expression = ast_for_expr(c, ch);
if (!expression)
@@ -1323,8 +1323,8 @@ ast_for_arg(struct compiling *c, const node *n)
return NULL;
}
- ret = arg(name, annotation, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ ret = arg(name, annotation, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
if (!ret)
return NULL;
return ret;
@@ -1343,7 +1343,7 @@ handle_keywordonly_args(struct compiling *c, const node *n, int start,
PyObject *argname;
node *ch;
expr_ty expression, annotation;
- arg_ty arg = NULL;
+ arg_ty arg = NULL;
int i = start;
int j = 0; /* index for kwdefaults and kwonlyargs */
@@ -1382,23 +1382,23 @@ handle_keywordonly_args(struct compiling *c, const node *n, int start,
goto error;
if (forbidden_name(c, argname, ch, 0))
goto error;
- arg = arg(argname, annotation, NULL, LINENO(ch), ch->n_col_offset,
- ch->n_end_lineno, ch->n_end_col_offset,
+ arg = arg(argname, annotation, NULL, LINENO(ch), ch->n_col_offset,
+ ch->n_end_lineno, ch->n_end_col_offset,
c->c_arena);
if (!arg)
goto error;
asdl_seq_SET(kwonlyargs, j++, arg);
- i += 1; /* the name */
- if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
- i += 1; /* the comma, if present */
+ i += 1; /* the name */
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
+ i += 1; /* the comma, if present */
+ break;
+ case TYPE_COMMENT:
+ /* arg will be equal to the last argument processed */
+ arg->type_comment = NEW_TYPE_COMMENT(ch);
+ if (!arg->type_comment)
+ goto error;
+ i += 1;
break;
- case TYPE_COMMENT:
- /* arg will be equal to the last argument processed */
- arg->type_comment = NEW_TYPE_COMMENT(ch);
- if (!arg->type_comment)
- goto error;
- i += 1;
- break;
case DOUBLESTAR:
return i;
default:
@@ -1420,73 +1420,73 @@ ast_for_arguments(struct compiling *c, const node *n)
and varargslist (lambda definition).
parameters: '(' [typedargslist] ')'
-
- The following definition for typedarglist is equivalent to this set of rules:
-
- arguments = argument (',' [TYPE_COMMENT] argument)*
- argument = tfpdef ['=' test]
- kwargs = '**' tfpdef [','] [TYPE_COMMENT]
- args = '*' [tfpdef]
- kwonly_kwargs = (',' [TYPE_COMMENT] argument)* (TYPE_COMMENT | [','
- [TYPE_COMMENT] [kwargs]])
- args_kwonly_kwargs = args kwonly_kwargs | kwargs
- poskeyword_args_kwonly_kwargs = arguments ( TYPE_COMMENT | [','
- [TYPE_COMMENT] [args_kwonly_kwargs]])
- typedargslist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs
- typedarglist = (arguments ',' [TYPE_COMMENT] '/' [',' [[TYPE_COMMENT]
- typedargslist_no_posonly]])|(typedargslist_no_posonly)"
-
- typedargslist: ( (tfpdef ['=' test] (',' [TYPE_COMMENT] tfpdef ['=' test])*
- ',' [TYPE_COMMENT] '/' [',' [ [TYPE_COMMENT] tfpdef ['=' test] ( ','
- [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [',' [TYPE_COMMENT] [ '*'
- [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [','
- [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) | '**' tfpdef [',']
- [TYPE_COMMENT]]]) | '*' [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])*
- (TYPE_COMMENT | [',' [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) |
- '**' tfpdef [','] [TYPE_COMMENT]]] ) | (tfpdef ['=' test] (','
- [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [',' [TYPE_COMMENT] [ '*'
- [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [','
- [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) | '**' tfpdef [',']
- [TYPE_COMMENT]]]) | '*' [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])*
- (TYPE_COMMENT | [',' [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) |
- '**' tfpdef [','] [TYPE_COMMENT]))
-
+
+ The following definition for typedarglist is equivalent to this set of rules:
+
+ arguments = argument (',' [TYPE_COMMENT] argument)*
+ argument = tfpdef ['=' test]
+ kwargs = '**' tfpdef [','] [TYPE_COMMENT]
+ args = '*' [tfpdef]
+ kwonly_kwargs = (',' [TYPE_COMMENT] argument)* (TYPE_COMMENT | [','
+ [TYPE_COMMENT] [kwargs]])
+ args_kwonly_kwargs = args kwonly_kwargs | kwargs
+ poskeyword_args_kwonly_kwargs = arguments ( TYPE_COMMENT | [','
+ [TYPE_COMMENT] [args_kwonly_kwargs]])
+ typedargslist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs
+ typedarglist = (arguments ',' [TYPE_COMMENT] '/' [',' [[TYPE_COMMENT]
+ typedargslist_no_posonly]])|(typedargslist_no_posonly)"
+
+ typedargslist: ( (tfpdef ['=' test] (',' [TYPE_COMMENT] tfpdef ['=' test])*
+ ',' [TYPE_COMMENT] '/' [',' [ [TYPE_COMMENT] tfpdef ['=' test] ( ','
+ [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [',' [TYPE_COMMENT] [ '*'
+ [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [','
+ [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) | '**' tfpdef [',']
+ [TYPE_COMMENT]]]) | '*' [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])*
+ (TYPE_COMMENT | [',' [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) |
+ '**' tfpdef [','] [TYPE_COMMENT]]] ) | (tfpdef ['=' test] (','
+ [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [',' [TYPE_COMMENT] [ '*'
+ [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])* (TYPE_COMMENT | [','
+ [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) | '**' tfpdef [',']
+ [TYPE_COMMENT]]]) | '*' [tfpdef] (',' [TYPE_COMMENT] tfpdef ['=' test])*
+ (TYPE_COMMENT | [',' [TYPE_COMMENT] ['**' tfpdef [','] [TYPE_COMMENT]]]) |
+ '**' tfpdef [','] [TYPE_COMMENT]))
+
tfpdef: NAME [':' test]
-
- The following definition for varargslist is equivalent to this set of rules:
-
- arguments = argument (',' argument )*
- argument = vfpdef ['=' test]
- kwargs = '**' vfpdef [',']
- args = '*' [vfpdef]
- kwonly_kwargs = (',' argument )* [',' [kwargs]]
- args_kwonly_kwargs = args kwonly_kwargs | kwargs
- poskeyword_args_kwonly_kwargs = arguments [',' [args_kwonly_kwargs]]
- vararglist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs
- varargslist = arguments ',' '/' [','[(vararglist_no_posonly)]] |
- (vararglist_no_posonly)
-
- varargslist: vfpdef ['=' test ](',' vfpdef ['=' test])* ',' '/' [',' [ (vfpdef ['='
- test] (',' vfpdef ['=' test])* [',' [ '*' [vfpdef] (',' vfpdef ['=' test])* [','
- ['**' vfpdef [',']]] | '**' vfpdef [',']]] | '*' [vfpdef] (',' vfpdef ['=' test])*
- [',' ['**' vfpdef [',']]] | '**' vfpdef [',']) ]] | (vfpdef ['=' test] (',' vfpdef
- ['=' test])* [',' [ '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
- | '**' vfpdef [',']]] | '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef
- [',']]] | '**' vfpdef [','])
-
+
+ The following definition for varargslist is equivalent to this set of rules:
+
+ arguments = argument (',' argument )*
+ argument = vfpdef ['=' test]
+ kwargs = '**' vfpdef [',']
+ args = '*' [vfpdef]
+ kwonly_kwargs = (',' argument )* [',' [kwargs]]
+ args_kwonly_kwargs = args kwonly_kwargs | kwargs
+ poskeyword_args_kwonly_kwargs = arguments [',' [args_kwonly_kwargs]]
+ vararglist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs
+ varargslist = arguments ',' '/' [','[(vararglist_no_posonly)]] |
+ (vararglist_no_posonly)
+
+ varargslist: vfpdef ['=' test ](',' vfpdef ['=' test])* ',' '/' [',' [ (vfpdef ['='
+ test] (',' vfpdef ['=' test])* [',' [ '*' [vfpdef] (',' vfpdef ['=' test])* [','
+ ['**' vfpdef [',']]] | '**' vfpdef [',']]] | '*' [vfpdef] (',' vfpdef ['=' test])*
+ [',' ['**' vfpdef [',']]] | '**' vfpdef [',']) ]] | (vfpdef ['=' test] (',' vfpdef
+ ['=' test])* [',' [ '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+ | '**' vfpdef [',']]] | '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef
+ [',']]] | '**' vfpdef [','])
+
vfpdef: NAME
*/
- int i, j, k, l, nposonlyargs=0, nposargs = 0, nkwonlyargs = 0;
+ int i, j, k, l, nposonlyargs=0, nposargs = 0, nkwonlyargs = 0;
int nposdefaults = 0, found_default = 0;
- asdl_seq *posonlyargs, *posargs, *posdefaults, *kwonlyargs, *kwdefaults;
+ asdl_seq *posonlyargs, *posargs, *posdefaults, *kwonlyargs, *kwdefaults;
arg_ty vararg = NULL, kwarg = NULL;
- arg_ty arg = NULL;
+ arg_ty arg = NULL;
node *ch;
if (TYPE(n) == parameters) {
if (NCH(n) == 2) /* () as argument list */
- return arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
+ return arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
n = CHILD(n, 1);
}
assert(TYPE(n) == typedargslist || TYPE(n) == varargslist);
@@ -1510,10 +1510,10 @@ ast_for_arguments(struct compiling *c, const node *n)
if (TYPE(ch) == DOUBLESTAR) break;
if (TYPE(ch) == vfpdef || TYPE(ch) == tfpdef) nposargs++;
if (TYPE(ch) == EQUAL) nposdefaults++;
- if (TYPE(ch) == SLASH ) {
- nposonlyargs = nposargs;
- nposargs = 0;
- }
+ if (TYPE(ch) == SLASH ) {
+ nposonlyargs = nposargs;
+ nposargs = 0;
+ }
}
/* count the number of keyword only args &
defaults for keyword only args */
@@ -1522,10 +1522,10 @@ ast_for_arguments(struct compiling *c, const node *n)
if (TYPE(ch) == DOUBLESTAR) break;
if (TYPE(ch) == tfpdef || TYPE(ch) == vfpdef) nkwonlyargs++;
}
- posonlyargs = (nposonlyargs ? _Py_asdl_seq_new(nposonlyargs, c->c_arena) : NULL);
- if (!posonlyargs && nposonlyargs) {
- return NULL;
- }
+ posonlyargs = (nposonlyargs ? _Py_asdl_seq_new(nposonlyargs, c->c_arena) : NULL);
+ if (!posonlyargs && nposonlyargs) {
+ return NULL;
+ }
posargs = (nposargs ? _Py_asdl_seq_new(nposargs, c->c_arena) : NULL);
if (!posargs && nposargs)
return NULL;
@@ -1551,7 +1551,7 @@ ast_for_arguments(struct compiling *c, const node *n)
i = 0;
j = 0; /* index for defaults */
k = 0; /* index for args */
- l = 0; /* index for posonlyargs */
+ l = 0; /* index for posonlyargs */
while (i < NCH(n)) {
ch = CHILD(n, i);
switch (TYPE(ch)) {
@@ -1571,48 +1571,48 @@ ast_for_arguments(struct compiling *c, const node *n)
}
else if (found_default) {
ast_error(c, n,
- "non-default argument follows default argument");
+ "non-default argument follows default argument");
return NULL;
}
arg = ast_for_arg(c, ch);
if (!arg)
return NULL;
- if (l < nposonlyargs) {
- asdl_seq_SET(posonlyargs, l++, arg);
- } else {
- asdl_seq_SET(posargs, k++, arg);
- }
- i += 1; /* the name */
- if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
- i += 1; /* the comma, if present */
+ if (l < nposonlyargs) {
+ asdl_seq_SET(posonlyargs, l++, arg);
+ } else {
+ asdl_seq_SET(posargs, k++, arg);
+ }
+ i += 1; /* the name */
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
+ i += 1; /* the comma, if present */
+ break;
+ case SLASH:
+ /* Advance the slash and the comma. If there are more names
+ * after the slash there will be a comma so we are advancing
+ * the correct number of nodes. If the slash is the last item,
+ * we will be advancing an extra token but then * i > NCH(n)
+ * and the enclosing while will finish correctly. */
+ i += 2;
break;
- case SLASH:
- /* Advance the slash and the comma. If there are more names
- * after the slash there will be a comma so we are advancing
- * the correct number of nodes. If the slash is the last item,
- * we will be advancing an extra token but then * i > NCH(n)
- * and the enclosing while will finish correctly. */
- i += 2;
- break;
case STAR:
if (i+1 >= NCH(n) ||
- (i+2 == NCH(n) && (TYPE(CHILD(n, i+1)) == COMMA
- || TYPE(CHILD(n, i+1)) == TYPE_COMMENT))) {
+ (i+2 == NCH(n) && (TYPE(CHILD(n, i+1)) == COMMA
+ || TYPE(CHILD(n, i+1)) == TYPE_COMMENT))) {
ast_error(c, CHILD(n, i),
- "named arguments must follow bare *");
+ "named arguments must follow bare *");
return NULL;
}
ch = CHILD(n, i+1); /* tfpdef or COMMA */
if (TYPE(ch) == COMMA) {
int res = 0;
i += 2; /* now follows keyword only arguments */
-
- if (i < NCH(n) && TYPE(CHILD(n, i)) == TYPE_COMMENT) {
- ast_error(c, CHILD(n, i),
- "bare * has associated type comment");
- return NULL;
- }
-
+
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == TYPE_COMMENT) {
+ ast_error(c, CHILD(n, i),
+ "bare * has associated type comment");
+ return NULL;
+ }
+
res = handle_keywordonly_args(c, n, i,
kwonlyargs, kwdefaults);
if (res == -1) return NULL;
@@ -1623,17 +1623,17 @@ ast_for_arguments(struct compiling *c, const node *n)
if (!vararg)
return NULL;
- i += 2; /* the star and the name */
- if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
- i += 1; /* the comma, if present */
-
- if (i < NCH(n) && TYPE(CHILD(n, i)) == TYPE_COMMENT) {
- vararg->type_comment = NEW_TYPE_COMMENT(CHILD(n, i));
- if (!vararg->type_comment)
- return NULL;
- i += 1;
- }
-
+ i += 2; /* the star and the name */
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
+ i += 1; /* the comma, if present */
+
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == TYPE_COMMENT) {
+ vararg->type_comment = NEW_TYPE_COMMENT(CHILD(n, i));
+ if (!vararg->type_comment)
+ return NULL;
+ i += 1;
+ }
+
if (i < NCH(n) && (TYPE(CHILD(n, i)) == tfpdef
|| TYPE(CHILD(n, i)) == vfpdef)) {
int res = 0;
@@ -1650,22 +1650,22 @@ ast_for_arguments(struct compiling *c, const node *n)
kwarg = ast_for_arg(c, ch);
if (!kwarg)
return NULL;
- i += 2; /* the double star and the name */
- if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
- i += 1; /* the comma, if present */
+ i += 2; /* the double star and the name */
+ if (i < NCH(n) && TYPE(CHILD(n, i)) == COMMA)
+ i += 1; /* the comma, if present */
+ break;
+ case TYPE_COMMENT:
+ assert(i);
+
+ if (kwarg)
+ arg = kwarg;
+
+ /* arg will be equal to the last argument processed */
+ arg->type_comment = NEW_TYPE_COMMENT(ch);
+ if (!arg->type_comment)
+ return NULL;
+ i += 1;
break;
- case TYPE_COMMENT:
- assert(i);
-
- if (kwarg)
- arg = kwarg;
-
- /* arg will be equal to the last argument processed */
- arg->type_comment = NEW_TYPE_COMMENT(ch);
- if (!arg->type_comment)
- return NULL;
- i += 1;
- break;
default:
PyErr_Format(PyExc_SystemError,
"unexpected node in varargslist: %d @ %d",
@@ -1673,19 +1673,19 @@ ast_for_arguments(struct compiling *c, const node *n)
return NULL;
}
}
- return arguments(posonlyargs, posargs, vararg, kwonlyargs, kwdefaults, kwarg, posdefaults, c->c_arena);
+ return arguments(posonlyargs, posargs, vararg, kwonlyargs, kwdefaults, kwarg, posdefaults, c->c_arena);
}
static expr_ty
ast_for_decorator(struct compiling *c, const node *n)
{
- /* decorator: '@' namedexpr_test NEWLINE */
+ /* decorator: '@' namedexpr_test NEWLINE */
REQ(n, decorator);
REQ(CHILD(n, 0), AT);
- REQ(CHILD(n, 2), NEWLINE);
+ REQ(CHILD(n, 2), NEWLINE);
- return ast_for_expr(c, CHILD(n, 1));
+ return ast_for_expr(c, CHILD(n, 1));
}
static asdl_seq*
@@ -1713,23 +1713,23 @@ static stmt_ty
ast_for_funcdef_impl(struct compiling *c, const node *n0,
asdl_seq *decorator_seq, bool is_async)
{
- /* funcdef: 'def' NAME parameters ['->' test] ':' [TYPE_COMMENT] suite */
+ /* funcdef: 'def' NAME parameters ['->' test] ':' [TYPE_COMMENT] suite */
const node * const n = is_async ? CHILD(n0, 1) : n0;
identifier name;
arguments_ty args;
asdl_seq *body;
expr_ty returns = NULL;
int name_i = 1;
- int end_lineno, end_col_offset;
- node *tc;
- string type_comment = NULL;
-
- if (is_async && c->c_feature_version < 5) {
- ast_error(c, n,
- "Async functions are only supported in Python 3.5 and greater");
- return NULL;
- }
-
+ int end_lineno, end_col_offset;
+ node *tc;
+ string type_comment = NULL;
+
+ if (is_async && c->c_feature_version < 5) {
+ ast_error(c, n,
+ "Async functions are only supported in Python 3.5 and greater");
+ return NULL;
+ }
+
REQ(n, funcdef);
name = NEW_IDENTIFIER(CHILD(n, name_i));
@@ -1746,46 +1746,46 @@ ast_for_funcdef_impl(struct compiling *c, const node *n0,
return NULL;
name_i += 2;
}
- if (TYPE(CHILD(n, name_i + 3)) == TYPE_COMMENT) {
- type_comment = NEW_TYPE_COMMENT(CHILD(n, name_i + 3));
- if (!type_comment)
- return NULL;
- name_i += 1;
- }
+ if (TYPE(CHILD(n, name_i + 3)) == TYPE_COMMENT) {
+ type_comment = NEW_TYPE_COMMENT(CHILD(n, name_i + 3));
+ if (!type_comment)
+ return NULL;
+ name_i += 1;
+ }
body = ast_for_suite(c, CHILD(n, name_i + 3));
if (!body)
return NULL;
- get_last_end_pos(body, &end_lineno, &end_col_offset);
-
- if (NCH(CHILD(n, name_i + 3)) > 1) {
- /* Check if the suite has a type comment in it. */
- tc = CHILD(CHILD(n, name_i + 3), 1);
-
- if (TYPE(tc) == TYPE_COMMENT) {
- if (type_comment != NULL) {
- ast_error(c, n, "Cannot have two type comments on def");
- return NULL;
- }
- type_comment = NEW_TYPE_COMMENT(tc);
- if (!type_comment)
- return NULL;
- }
- }
-
+ get_last_end_pos(body, &end_lineno, &end_col_offset);
+
+ if (NCH(CHILD(n, name_i + 3)) > 1) {
+ /* Check if the suite has a type comment in it. */
+ tc = CHILD(CHILD(n, name_i + 3), 1);
+
+ if (TYPE(tc) == TYPE_COMMENT) {
+ if (type_comment != NULL) {
+ ast_error(c, n, "Cannot have two type comments on def");
+ return NULL;
+ }
+ type_comment = NEW_TYPE_COMMENT(tc);
+ if (!type_comment)
+ return NULL;
+ }
+ }
+
if (is_async)
- return AsyncFunctionDef(name, args, body, decorator_seq, returns, type_comment,
- LINENO(n0), n0->n_col_offset, end_lineno, end_col_offset, c->c_arena);
+ return AsyncFunctionDef(name, args, body, decorator_seq, returns, type_comment,
+ LINENO(n0), n0->n_col_offset, end_lineno, end_col_offset, c->c_arena);
else
- return FunctionDef(name, args, body, decorator_seq, returns, type_comment,
- LINENO(n), n->n_col_offset, end_lineno, end_col_offset, c->c_arena);
+ return FunctionDef(name, args, body, decorator_seq, returns, type_comment,
+ LINENO(n), n->n_col_offset, end_lineno, end_col_offset, c->c_arena);
}
static stmt_ty
ast_for_async_funcdef(struct compiling *c, const node *n, asdl_seq *decorator_seq)
{
- /* async_funcdef: ASYNC funcdef */
+ /* async_funcdef: ASYNC funcdef */
REQ(n, async_funcdef);
- REQ(CHILD(n, 0), ASYNC);
+ REQ(CHILD(n, 0), ASYNC);
REQ(CHILD(n, 1), funcdef);
return ast_for_funcdef_impl(c, n, decorator_seq,
@@ -1804,9 +1804,9 @@ ast_for_funcdef(struct compiling *c, const node *n, asdl_seq *decorator_seq)
static stmt_ty
ast_for_async_stmt(struct compiling *c, const node *n)
{
- /* async_stmt: ASYNC (funcdef | with_stmt | for_stmt) */
+ /* async_stmt: ASYNC (funcdef | with_stmt | for_stmt) */
REQ(n, async_stmt);
- REQ(CHILD(n, 0), ASYNC);
+ REQ(CHILD(n, 0), ASYNC);
switch (TYPE(CHILD(n, 1))) {
case funcdef:
@@ -1856,41 +1856,41 @@ ast_for_decorated(struct compiling *c, const node *n)
}
static expr_ty
-ast_for_namedexpr(struct compiling *c, const node *n)
-{
- /* namedexpr_test: test [':=' test]
- argument: ( test [comp_for] |
- test ':=' test |
- test '=' test |
- '**' test |
- '*' test )
- */
- expr_ty target, value;
-
- target = ast_for_expr(c, CHILD(n, 0));
- if (!target)
- return NULL;
-
- value = ast_for_expr(c, CHILD(n, 2));
- if (!value)
- return NULL;
-
- if (target->kind != Name_kind) {
- const char *expr_name = get_expr_name(target);
- if (expr_name != NULL) {
- ast_error(c, n, "cannot use assignment expressions with %s", expr_name);
- }
- return NULL;
- }
-
- if (!set_context(c, target, Store, n))
- return NULL;
-
- return NamedExpr(target, value, LINENO(n), n->n_col_offset, n->n_end_lineno,
- n->n_end_col_offset, c->c_arena);
-}
-
-static expr_ty
+ast_for_namedexpr(struct compiling *c, const node *n)
+{
+ /* namedexpr_test: test [':=' test]
+ argument: ( test [comp_for] |
+ test ':=' test |
+ test '=' test |
+ '**' test |
+ '*' test )
+ */
+ expr_ty target, value;
+
+ target = ast_for_expr(c, CHILD(n, 0));
+ if (!target)
+ return NULL;
+
+ value = ast_for_expr(c, CHILD(n, 2));
+ if (!value)
+ return NULL;
+
+ if (target->kind != Name_kind) {
+ const char *expr_name = get_expr_name(target);
+ if (expr_name != NULL) {
+ ast_error(c, n, "cannot use assignment expressions with %s", expr_name);
+ }
+ return NULL;
+ }
+
+ if (!set_context(c, target, Store, n))
+ return NULL;
+
+ return NamedExpr(target, value, LINENO(n), n->n_col_offset, n->n_end_lineno,
+ n->n_end_col_offset, c->c_arena);
+}
+
+static expr_ty
ast_for_lambdef(struct compiling *c, const node *n)
{
/* lambdef: 'lambda' [varargslist] ':' test
@@ -1899,7 +1899,7 @@ ast_for_lambdef(struct compiling *c, const node *n)
expr_ty expression;
if (NCH(n) == 3) {
- args = arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
+ args = arguments(NULL, NULL, NULL, NULL, NULL, NULL, NULL, c->c_arena);
if (!args)
return NULL;
expression = ast_for_expr(c, CHILD(n, 2));
@@ -1915,8 +1915,8 @@ ast_for_lambdef(struct compiling *c, const node *n)
return NULL;
}
- return Lambda(args, expression, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Lambda(args, expression, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static expr_ty
@@ -1936,7 +1936,7 @@ ast_for_ifexpr(struct compiling *c, const node *n)
if (!orelse)
return NULL;
return IfExp(expression, body, orelse, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
c->c_arena);
}
@@ -1955,7 +1955,7 @@ count_comp_fors(struct compiling *c, const node *n)
n_fors++;
REQ(n, comp_for);
if (NCH(n) == 2) {
- REQ(CHILD(n, 0), ASYNC);
+ REQ(CHILD(n, 0), ASYNC);
n = CHILD(n, 1);
}
else if (NCH(n) == 1) {
@@ -2040,7 +2040,7 @@ ast_for_comprehension(struct compiling *c, const node *n)
if (NCH(n) == 2) {
is_async = 1;
- REQ(CHILD(n, 0), ASYNC);
+ REQ(CHILD(n, 0), ASYNC);
sync_n = CHILD(n, 1);
}
else {
@@ -2048,13 +2048,13 @@ ast_for_comprehension(struct compiling *c, const node *n)
}
REQ(sync_n, sync_comp_for);
- /* Async comprehensions only allowed in Python 3.6 and greater */
- if (is_async && c->c_feature_version < 6) {
- ast_error(c, n,
- "Async comprehensions are only supported in Python 3.6 and greater");
- return NULL;
- }
-
+ /* Async comprehensions only allowed in Python 3.6 and greater */
+ if (is_async && c->c_feature_version < 6) {
+ ast_error(c, n,
+ "Async comprehensions are only supported in Python 3.6 and greater");
+ return NULL;
+ }
+
for_ch = CHILD(sync_n, 1);
t = ast_for_exprlist(c, for_ch, Store);
if (!t)
@@ -2070,9 +2070,9 @@ ast_for_comprehension(struct compiling *c, const node *n)
comp = comprehension(first, expression, NULL,
is_async, c->c_arena);
else
- comp = comprehension(Tuple(t, Store, first->lineno, first->col_offset,
- for_ch->n_end_lineno, for_ch->n_end_col_offset,
- c->c_arena),
+ comp = comprehension(Tuple(t, Store, first->lineno, first->col_offset,
+ for_ch->n_end_lineno, for_ch->n_end_col_offset,
+ c->c_arena),
expression, NULL, is_async, c->c_arena);
if (!comp)
return NULL;
@@ -2137,14 +2137,14 @@ ast_for_itercomp(struct compiling *c, const node *n, int type)
return NULL;
if (type == COMP_GENEXP)
- return GeneratorExp(elt, comps, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return GeneratorExp(elt, comps, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
else if (type == COMP_LISTCOMP)
- return ListComp(elt, comps, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return ListComp(elt, comps, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
else if (type == COMP_SETCOMP)
- return SetComp(elt, comps, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return SetComp(elt, comps, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
else
/* Should never happen */
return NULL;
@@ -2206,8 +2206,8 @@ ast_for_dictcomp(struct compiling *c, const node *n)
if (!comps)
return NULL;
- return DictComp(key, value, comps, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return DictComp(key, value, comps, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static expr_ty
@@ -2240,8 +2240,8 @@ ast_for_dictdisplay(struct compiling *c, const node *n)
}
keys->size = j;
values->size = j;
- return Dict(keys, values, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Dict(keys, values, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static expr_ty
@@ -2284,8 +2284,8 @@ ast_for_setdisplay(struct compiling *c, const node *n)
return NULL;
asdl_seq_SET(elts, i / 2, expression);
}
- return Set(elts, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Set(elts, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static expr_ty
@@ -2304,21 +2304,21 @@ ast_for_atom(struct compiling *c, const node *n)
size_t len = strlen(s);
if (len >= 4 && len <= 5) {
if (!strcmp(s, "None"))
- return Constant(Py_None, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Constant(Py_None, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
if (!strcmp(s, "True"))
- return Constant(Py_True, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Constant(Py_True, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
if (!strcmp(s, "False"))
- return Constant(Py_False, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Constant(Py_False, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
name = new_identifier(s, c);
if (!name)
return NULL;
/* All names start in Load context, but may later be changed. */
- return Name(name, Load, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Name(name, Load, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
case STRING: {
expr_ty str = parsestrplus(c, n);
@@ -2332,13 +2332,13 @@ ast_for_atom(struct compiling *c, const node *n)
PyObject *type, *value, *tback, *errstr;
PyErr_Fetch(&type, &value, &tback);
errstr = PyObject_Str(value);
- if (errstr) {
- ast_error(c, n, "(%s) %U", errtype, errstr);
- Py_DECREF(errstr);
- }
- else {
+ if (errstr) {
+ ast_error(c, n, "(%s) %U", errtype, errstr);
+ Py_DECREF(errstr);
+ }
+ else {
PyErr_Clear();
- ast_error(c, n, "(%s) unknown error", errtype);
+ ast_error(c, n, "(%s) unknown error", errtype);
}
Py_DECREF(type);
Py_XDECREF(value);
@@ -2349,15 +2349,15 @@ ast_for_atom(struct compiling *c, const node *n)
return str;
}
case NUMBER: {
- PyObject *pynum;
- /* Underscores in numeric literals are only allowed in Python 3.6 or greater */
- /* Check for underscores here rather than in parse_number so we can report a line number on error */
- if (c->c_feature_version < 6 && strchr(STR(ch), '_') != NULL) {
- ast_error(c, ch,
- "Underscores in numeric literals are only supported in Python 3.6 and greater");
- return NULL;
- }
- pynum = parsenumber(c, STR(ch));
+ PyObject *pynum;
+ /* Underscores in numeric literals are only allowed in Python 3.6 or greater */
+ /* Check for underscores here rather than in parse_number so we can report a line number on error */
+ if (c->c_feature_version < 6 && strchr(STR(ch), '_') != NULL) {
+ ast_error(c, ch,
+ "Underscores in numeric literals are only supported in Python 3.6 and greater");
+ return NULL;
+ }
+ pynum = parsenumber(c, STR(ch));
if (!pynum)
return NULL;
@@ -2365,39 +2365,39 @@ ast_for_atom(struct compiling *c, const node *n)
Py_DECREF(pynum);
return NULL;
}
- return Constant(pynum, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Constant(pynum, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
case ELLIPSIS: /* Ellipsis */
- return Constant(Py_Ellipsis, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Constant(Py_Ellipsis, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
case LPAR: /* some parenthesized expressions */
ch = CHILD(n, 1);
if (TYPE(ch) == RPAR)
- return Tuple(NULL, Load, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Tuple(NULL, Load, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
if (TYPE(ch) == yield_expr)
return ast_for_expr(c, ch);
/* testlist_comp: test ( comp_for | (',' test)* [','] ) */
- if (NCH(ch) == 1) {
- return ast_for_testlist(c, ch);
- }
-
- if (TYPE(CHILD(ch, 1)) == comp_for) {
- return copy_location(ast_for_genexp(c, ch), n, n);
- }
- else {
- return copy_location(ast_for_testlist(c, ch), n, n);
- }
+ if (NCH(ch) == 1) {
+ return ast_for_testlist(c, ch);
+ }
+
+ if (TYPE(CHILD(ch, 1)) == comp_for) {
+ return copy_location(ast_for_genexp(c, ch), n, n);
+ }
+ else {
+ return copy_location(ast_for_testlist(c, ch), n, n);
+ }
case LSQB: /* list (or list comprehension) */
ch = CHILD(n, 1);
if (TYPE(ch) == RSQB)
- return List(NULL, Load, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return List(NULL, Load, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
REQ(ch, testlist_comp);
if (NCH(ch) == 1 || TYPE(CHILD(ch, 1)) == COMMA) {
@@ -2405,12 +2405,12 @@ ast_for_atom(struct compiling *c, const node *n)
if (!elts)
return NULL;
- return List(elts, Load, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return List(elts, Load, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ }
+ else {
+ return copy_location(ast_for_listcomp(c, ch), n, n);
}
- else {
- return copy_location(ast_for_listcomp(c, ch), n, n);
- }
case LBRACE: {
/* dictorsetmaker: ( ((test ':' test | '**' test)
* (comp_for | (',' (test ':' test | '**' test))* [','])) |
@@ -2420,8 +2420,8 @@ ast_for_atom(struct compiling *c, const node *n)
ch = CHILD(n, 1);
if (TYPE(ch) == RBRACE) {
/* It's an empty dict. */
- return Dict(NULL, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Dict(NULL, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else {
int is_dict = (TYPE(CHILD(ch, 0)) == DOUBLESTAR);
@@ -2440,8 +2440,8 @@ ast_for_atom(struct compiling *c, const node *n)
TYPE(CHILD(ch, 3 - is_dict)) == comp_for) {
/* It's a dictionary comprehension. */
if (is_dict) {
- ast_error(c, n,
- "dict unpacking cannot be used in dict comprehension");
+ ast_error(c, n,
+ "dict unpacking cannot be used in dict comprehension");
return NULL;
}
res = ast_for_dictcomp(c, ch);
@@ -2450,7 +2450,7 @@ ast_for_atom(struct compiling *c, const node *n)
/* It's a dictionary display. */
res = ast_for_dictdisplay(c, ch);
}
- return copy_location(res, n, n);
+ return copy_location(res, n, n);
}
}
default:
@@ -2459,7 +2459,7 @@ ast_for_atom(struct compiling *c, const node *n)
}
}
-static expr_ty
+static expr_ty
ast_for_slice(struct compiling *c, const node *n)
{
node *ch;
@@ -2473,7 +2473,7 @@ ast_for_slice(struct compiling *c, const node *n)
*/
ch = CHILD(n, 0);
if (NCH(n) == 1 && TYPE(ch) == test) {
- return ast_for_expr(c, ch);
+ return ast_for_expr(c, ch);
}
if (TYPE(ch) == test) {
@@ -2515,8 +2515,8 @@ ast_for_slice(struct compiling *c, const node *n)
}
}
- return Slice(lower, upper, step, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Slice(lower, upper, step, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static expr_ty
@@ -2539,12 +2539,12 @@ ast_for_binop(struct compiling *c, const node *n)
if (!expr2)
return NULL;
- newoperator = get_operator(c, CHILD(n, 1));
+ newoperator = get_operator(c, CHILD(n, 1));
if (!newoperator)
return NULL;
result = BinOp(expr1, newoperator, expr2, LINENO(n), n->n_col_offset,
- CHILD(n, 2)->n_end_lineno, CHILD(n, 2)->n_end_col_offset,
+ CHILD(n, 2)->n_end_lineno, CHILD(n, 2)->n_end_col_offset,
c->c_arena);
if (!result)
return NULL;
@@ -2554,7 +2554,7 @@ ast_for_binop(struct compiling *c, const node *n)
expr_ty tmp_result, tmp;
const node* next_oper = CHILD(n, i * 2 + 1);
- newoperator = get_operator(c, next_oper);
+ newoperator = get_operator(c, next_oper);
if (!newoperator)
return NULL;
@@ -2563,9 +2563,9 @@ ast_for_binop(struct compiling *c, const node *n)
return NULL;
tmp_result = BinOp(result, newoperator, tmp,
- LINENO(n), n->n_col_offset,
- CHILD(n, i * 2 + 2)->n_end_lineno,
- CHILD(n, i * 2 + 2)->n_end_col_offset,
+ LINENO(n), n->n_col_offset,
+ CHILD(n, i * 2 + 2)->n_end_lineno,
+ CHILD(n, i * 2 + 2)->n_end_col_offset,
c->c_arena);
if (!tmp_result)
return NULL;
@@ -2575,64 +2575,64 @@ ast_for_binop(struct compiling *c, const node *n)
}
static expr_ty
-ast_for_trailer(struct compiling *c, const node *n, expr_ty left_expr, const node *start)
+ast_for_trailer(struct compiling *c, const node *n, expr_ty left_expr, const node *start)
{
/* trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
subscriptlist: subscript (',' subscript)* [',']
subscript: '.' '.' '.' | test | [test] ':' [test] [sliceop]
*/
- const node *n_copy = n;
+ const node *n_copy = n;
REQ(n, trailer);
if (TYPE(CHILD(n, 0)) == LPAR) {
if (NCH(n) == 2)
- return Call(left_expr, NULL, NULL, LINENO(start), start->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Call(left_expr, NULL, NULL, LINENO(start), start->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
else
- return ast_for_call(c, CHILD(n, 1), left_expr,
- start, CHILD(n, 0), CHILD(n, 2));
+ return ast_for_call(c, CHILD(n, 1), left_expr,
+ start, CHILD(n, 0), CHILD(n, 2));
}
else if (TYPE(CHILD(n, 0)) == DOT) {
PyObject *attr_id = NEW_IDENTIFIER(CHILD(n, 1));
if (!attr_id)
return NULL;
return Attribute(left_expr, attr_id, Load,
- LINENO(start), start->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ LINENO(start), start->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else {
REQ(CHILD(n, 0), LSQB);
REQ(CHILD(n, 2), RSQB);
n = CHILD(n, 1);
if (NCH(n) == 1) {
- expr_ty slc = ast_for_slice(c, CHILD(n, 0));
+ expr_ty slc = ast_for_slice(c, CHILD(n, 0));
if (!slc)
return NULL;
- return Subscript(left_expr, slc, Load, LINENO(start), start->n_col_offset,
- n_copy->n_end_lineno, n_copy->n_end_col_offset,
+ return Subscript(left_expr, slc, Load, LINENO(start), start->n_col_offset,
+ n_copy->n_end_lineno, n_copy->n_end_col_offset,
c->c_arena);
}
else {
- int j;
- expr_ty slc, e;
- asdl_seq *elts;
- elts = _Py_asdl_seq_new((NCH(n) + 1) / 2, c->c_arena);
- if (!elts)
+ int j;
+ expr_ty slc, e;
+ asdl_seq *elts;
+ elts = _Py_asdl_seq_new((NCH(n) + 1) / 2, c->c_arena);
+ if (!elts)
return NULL;
for (j = 0; j < NCH(n); j += 2) {
slc = ast_for_slice(c, CHILD(n, j));
if (!slc)
return NULL;
- asdl_seq_SET(elts, j / 2, slc);
+ asdl_seq_SET(elts, j / 2, slc);
}
- e = Tuple(elts, Load, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
- c->c_arena);
+ e = Tuple(elts, Load, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
+ c->c_arena);
if (!e)
return NULL;
- return Subscript(left_expr, e,
- Load, LINENO(start), start->n_col_offset,
- n_copy->n_end_lineno, n_copy->n_end_col_offset,
- c->c_arena);
+ return Subscript(left_expr, e,
+ Load, LINENO(start), start->n_col_offset,
+ n_copy->n_end_lineno, n_copy->n_end_col_offset,
+ c->c_arena);
}
}
}
@@ -2649,16 +2649,16 @@ ast_for_factor(struct compiling *c, const node *n)
switch (TYPE(CHILD(n, 0))) {
case PLUS:
return UnaryOp(UAdd, expression, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
c->c_arena);
case MINUS:
return UnaryOp(USub, expression, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
c->c_arena);
case TILDE:
- return UnaryOp(Invert, expression, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
- c->c_arena);
+ return UnaryOp(Invert, expression, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
+ c->c_arena);
}
PyErr_Format(PyExc_SystemError, "unhandled factor: %d",
TYPE(CHILD(n, 0)));
@@ -2669,17 +2669,17 @@ static expr_ty
ast_for_atom_expr(struct compiling *c, const node *n)
{
int i, nch, start = 0;
- expr_ty e;
+ expr_ty e;
REQ(n, atom_expr);
nch = NCH(n);
- if (TYPE(CHILD(n, 0)) == AWAIT) {
- if (c->c_feature_version < 5) {
- ast_error(c, n,
- "Await expressions are only supported in Python 3.5 and greater");
- return NULL;
- }
+ if (TYPE(CHILD(n, 0)) == AWAIT) {
+ if (c->c_feature_version < 5) {
+ ast_error(c, n,
+ "Await expressions are only supported in Python 3.5 and greater");
+ return NULL;
+ }
start = 1;
assert(nch > 1);
}
@@ -2690,23 +2690,23 @@ ast_for_atom_expr(struct compiling *c, const node *n)
if (nch == 1)
return e;
if (start && nch == 2) {
- return Await(e, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Await(e, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
for (i = start + 1; i < nch; i++) {
node *ch = CHILD(n, i);
if (TYPE(ch) != trailer)
break;
- e = ast_for_trailer(c, ch, e, CHILD(n, start));
- if (!e)
+ e = ast_for_trailer(c, ch, e, CHILD(n, start));
+ if (!e)
return NULL;
}
if (start) {
/* there was an 'await' */
- return Await(e, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Await(e, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else {
return e;
@@ -2729,8 +2729,8 @@ ast_for_power(struct compiling *c, const node *n)
expr_ty f = ast_for_expr(c, CHILD(n, NCH(n) - 1));
if (!f)
return NULL;
- e = BinOp(e, Pow, f, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ e = BinOp(e, Pow, f, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
return e;
}
@@ -2746,8 +2746,8 @@ ast_for_starred(struct compiling *c, const node *n)
return NULL;
/* The Load context is changed later. */
- return Starred(tmp, Load, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Starred(tmp, Load, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
@@ -2758,7 +2758,7 @@ static expr_ty
ast_for_expr(struct compiling *c, const node *n)
{
/* handle the full range of simple expressions
- namedexpr_test: test [':=' test]
+ namedexpr_test: test [':=' test]
test: or_test ['if' or_test 'else' test] | lambdef
test_nocond: or_test | lambdef_nocond
or_test: and_test ('or' and_test)*
@@ -2773,7 +2773,7 @@ ast_for_expr(struct compiling *c, const node *n)
term: factor (('*'|'@'|'/'|'%'|'//') factor)*
factor: ('+'|'-'|'~') factor | power
power: atom_expr ['**' factor]
- atom_expr: [AWAIT] atom trailer*
+ atom_expr: [AWAIT] atom trailer*
yield_expr: 'yield' [yield_arg]
*/
@@ -2782,10 +2782,10 @@ ast_for_expr(struct compiling *c, const node *n)
loop:
switch (TYPE(n)) {
- case namedexpr_test:
- if (NCH(n) == 3)
- return ast_for_namedexpr(c, n);
- /* Fallthrough */
+ case namedexpr_test:
+ if (NCH(n) == 3)
+ return ast_for_namedexpr(c, n);
+ /* Fallthrough */
case test:
case test_nocond:
if (TYPE(CHILD(n, 0)) == lambdef ||
@@ -2811,11 +2811,11 @@ ast_for_expr(struct compiling *c, const node *n)
}
if (!strcmp(STR(CHILD(n, 1)), "and"))
return BoolOp(And, seq, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
c->c_arena);
assert(!strcmp(STR(CHILD(n, 1)), "or"));
- return BoolOp(Or, seq, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return BoolOp(Or, seq, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
case not_test:
if (NCH(n) == 1) {
n = CHILD(n, 0);
@@ -2827,7 +2827,7 @@ ast_for_expr(struct compiling *c, const node *n)
return NULL;
return UnaryOp(Not, expression, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset,
+ n->n_end_lineno, n->n_end_col_offset,
c->c_arena);
}
case comparison:
@@ -2867,8 +2867,8 @@ ast_for_expr(struct compiling *c, const node *n)
return NULL;
}
- return Compare(expression, ops, cmps, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Compare(expression, ops, cmps, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
case star_expr:
@@ -2907,10 +2907,10 @@ ast_for_expr(struct compiling *c, const node *n)
return NULL;
}
if (is_from)
- return YieldFrom(exp, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
- return Yield(exp, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return YieldFrom(exp, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Yield(exp, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
case factor:
if (NCH(n) == 1) {
@@ -2929,8 +2929,8 @@ ast_for_expr(struct compiling *c, const node *n)
}
static expr_ty
-ast_for_call(struct compiling *c, const node *n, expr_ty func,
- const node *start, const node *maybegenbeg, const node *closepar)
+ast_for_call(struct compiling *c, const node *n, expr_ty func,
+ const node *start, const node *maybegenbeg, const node *closepar)
{
/*
arglist: argument (',' argument)* [',']
@@ -2953,7 +2953,7 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
nargs++;
else if (TYPE(CHILD(ch, 1)) == comp_for) {
nargs++;
- if (!maybegenbeg) {
+ if (!maybegenbeg) {
ast_error(c, ch, "invalid syntax");
return NULL;
}
@@ -2964,9 +2964,9 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
}
else if (TYPE(CHILD(ch, 0)) == STAR)
nargs++;
- else if (TYPE(CHILD(ch, 1)) == COLONEQUAL) {
- nargs++;
- }
+ else if (TYPE(CHILD(ch, 1)) == COLONEQUAL) {
+ nargs++;
+ }
else
/* TYPE(CHILD(ch, 0)) == DOUBLESTAR or keyword argument */
nkeywords++;
@@ -2993,13 +2993,13 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
if (nkeywords) {
if (ndoublestars) {
ast_error(c, chch,
- "positional argument follows "
- "keyword argument unpacking");
+ "positional argument follows "
+ "keyword argument unpacking");
}
else {
ast_error(c, chch,
- "positional argument follows "
- "keyword argument");
+ "positional argument follows "
+ "keyword argument");
}
return NULL;
}
@@ -3013,8 +3013,8 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
expr_ty starred;
if (ndoublestars) {
ast_error(c, chch,
- "iterable argument unpacking follows "
- "keyword argument unpacking");
+ "iterable argument unpacking follows "
+ "keyword argument unpacking");
return NULL;
}
e = ast_for_expr(c, CHILD(ch, 1));
@@ -3022,7 +3022,7 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
return NULL;
starred = Starred(e, Load, LINENO(chch),
chch->n_col_offset,
- e->end_lineno, e->end_col_offset,
+ e->end_lineno, e->end_col_offset,
c->c_arena);
if (!starred)
return NULL;
@@ -3036,91 +3036,91 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
e = ast_for_expr(c, CHILD(ch, 1));
if (!e)
return NULL;
- kw = keyword(NULL, e, chch->n_lineno, chch->n_col_offset,
- e->end_lineno, e->end_col_offset, c->c_arena);
+ kw = keyword(NULL, e, chch->n_lineno, chch->n_col_offset,
+ e->end_lineno, e->end_col_offset, c->c_arena);
asdl_seq_SET(keywords, nkeywords++, kw);
ndoublestars++;
}
else if (TYPE(CHILD(ch, 1)) == comp_for) {
/* the lone generator expression */
- e = copy_location(ast_for_genexp(c, ch), maybegenbeg, closepar);
+ e = copy_location(ast_for_genexp(c, ch), maybegenbeg, closepar);
+ if (!e)
+ return NULL;
+ asdl_seq_SET(args, nargs++, e);
+ }
+ else if (TYPE(CHILD(ch, 1)) == COLONEQUAL) {
+ /* treat colon equal as positional argument */
+ if (nkeywords) {
+ if (ndoublestars) {
+ ast_error(c, chch,
+ "positional argument follows "
+ "keyword argument unpacking");
+ }
+ else {
+ ast_error(c, chch,
+ "positional argument follows "
+ "keyword argument");
+ }
+ return NULL;
+ }
+ e = ast_for_namedexpr(c, ch);
if (!e)
return NULL;
asdl_seq_SET(args, nargs++, e);
}
- else if (TYPE(CHILD(ch, 1)) == COLONEQUAL) {
- /* treat colon equal as positional argument */
- if (nkeywords) {
- if (ndoublestars) {
- ast_error(c, chch,
- "positional argument follows "
- "keyword argument unpacking");
- }
- else {
- ast_error(c, chch,
- "positional argument follows "
- "keyword argument");
- }
- return NULL;
- }
- e = ast_for_namedexpr(c, ch);
- if (!e)
- return NULL;
- asdl_seq_SET(args, nargs++, e);
- }
else {
/* a keyword argument */
keyword_ty kw;
- identifier key;
-
- // To remain LL(1), the grammar accepts any test (basically, any
- // expression) in the keyword slot of a call site. So, we need
- // to manually enforce that the keyword is a NAME here.
- static const int name_tree[] = {
- test,
- or_test,
- and_test,
- not_test,
- comparison,
- expr,
- xor_expr,
- and_expr,
- shift_expr,
- arith_expr,
- term,
- factor,
- power,
- atom_expr,
- atom,
- 0,
- };
- node *expr_node = chch;
- for (int i = 0; name_tree[i]; i++) {
- if (TYPE(expr_node) != name_tree[i])
- break;
- if (NCH(expr_node) != 1)
- break;
- expr_node = CHILD(expr_node, 0);
- }
- if (TYPE(expr_node) != NAME) {
+ identifier key;
+
+ // To remain LL(1), the grammar accepts any test (basically, any
+ // expression) in the keyword slot of a call site. So, we need
+ // to manually enforce that the keyword is a NAME here.
+ static const int name_tree[] = {
+ test,
+ or_test,
+ and_test,
+ not_test,
+ comparison,
+ expr,
+ xor_expr,
+ and_expr,
+ shift_expr,
+ arith_expr,
+ term,
+ factor,
+ power,
+ atom_expr,
+ atom,
+ 0,
+ };
+ node *expr_node = chch;
+ for (int i = 0; name_tree[i]; i++) {
+ if (TYPE(expr_node) != name_tree[i])
+ break;
+ if (NCH(expr_node) != 1)
+ break;
+ expr_node = CHILD(expr_node, 0);
+ }
+ if (TYPE(expr_node) != NAME) {
ast_error(c, chch,
- "expression cannot contain assignment, "
- "perhaps you meant \"==\"?");
+ "expression cannot contain assignment, "
+ "perhaps you meant \"==\"?");
return NULL;
}
- key = new_identifier(STR(expr_node), c);
- if (key == NULL) {
+ key = new_identifier(STR(expr_node), c);
+ if (key == NULL) {
return NULL;
}
- if (forbidden_name(c, key, chch, 1)) {
+ if (forbidden_name(c, key, chch, 1)) {
return NULL;
}
e = ast_for_expr(c, CHILD(ch, 2));
if (!e)
return NULL;
- kw = keyword(key, e, chch->n_lineno, chch->n_col_offset,
- e->end_lineno, e->end_col_offset, c->c_arena);
-
+ kw = keyword(key, e, chch->n_lineno, chch->n_col_offset,
+ e->end_lineno, e->end_col_offset, c->c_arena);
+
if (!kw)
return NULL;
asdl_seq_SET(keywords, nkeywords++, kw);
@@ -3128,8 +3128,8 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
}
}
- return Call(func, args, keywords, LINENO(start), start->n_col_offset,
- closepar->n_end_lineno, closepar->n_end_col_offset, c->c_arena);
+ return Call(func, args, keywords, LINENO(start), start->n_col_offset,
+ closepar->n_end_lineno, closepar->n_end_col_offset, c->c_arena);
}
static expr_ty
@@ -3152,8 +3152,8 @@ ast_for_testlist(struct compiling *c, const node* n)
asdl_seq *tmp = seq_for_testlist(c, n);
if (!tmp)
return NULL;
- return Tuple(tmp, Load, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Tuple(tmp, Load, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
}
@@ -3162,22 +3162,22 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
{
REQ(n, expr_stmt);
/* expr_stmt: testlist_star_expr (annassign | augassign (yield_expr|testlist) |
- [('=' (yield_expr|testlist_star_expr))+ [TYPE_COMMENT]] )
- annassign: ':' test ['=' (yield_expr|testlist)]
- testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
- augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
- '<<=' | '>>=' | '**=' | '//=')
+ [('=' (yield_expr|testlist_star_expr))+ [TYPE_COMMENT]] )
+ annassign: ':' test ['=' (yield_expr|testlist)]
+ testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
+ augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
+ '<<=' | '>>=' | '**=' | '//=')
test: ... here starts the operator precedence dance
*/
- int num = NCH(n);
+ int num = NCH(n);
- if (num == 1) {
+ if (num == 1) {
expr_ty e = ast_for_testlist(c, CHILD(n, 0));
if (!e)
return NULL;
- return Expr(e, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Expr(e, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else if (TYPE(CHILD(n, 1)) == augassign) {
expr_ty expr1, expr2;
@@ -3187,7 +3187,7 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
expr1 = ast_for_testlist(c, ch);
if (!expr1)
return NULL;
- /* Augmented assignments can only have a name, a subscript, or an
+ /* Augmented assignments can only have a name, a subscript, or an
attribute on the left, though, so we have to explicitly check for
those. */
switch (expr1->kind) {
@@ -3196,16 +3196,16 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
case Subscript_kind:
break;
default:
- ast_error(c, ch, "'%s' is an illegal expression for augmented assignment",
- get_expr_name(expr1));
+ ast_error(c, ch, "'%s' is an illegal expression for augmented assignment",
+ get_expr_name(expr1));
return NULL;
}
- /* set_context checks that most expressions are not the left side. */
- if(!set_context(c, expr1, Store, ch)) {
- return NULL;
- }
-
+ /* set_context checks that most expressions are not the left side. */
+ if(!set_context(c, expr1, Store, ch)) {
+ return NULL;
+ }
+
ch = CHILD(n, 2);
if (TYPE(ch) == testlist)
expr2 = ast_for_testlist(c, ch);
@@ -3218,8 +3218,8 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
if (!newoperator)
return NULL;
- return AugAssign(expr1, newoperator, expr2, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return AugAssign(expr1, newoperator, expr2, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else if (TYPE(CHILD(n, 1)) == annassign) {
expr_ty expr1, expr2, expr3;
@@ -3227,13 +3227,13 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
node *deep, *ann = CHILD(n, 1);
int simple = 1;
- /* AnnAssigns are only allowed in Python 3.6 or greater */
- if (c->c_feature_version < 6) {
- ast_error(c, ch,
- "Variable annotation syntax is only supported in Python 3.6 and greater");
- return NULL;
- }
-
+ /* AnnAssigns are only allowed in Python 3.6 or greater */
+ if (c->c_feature_version < 6) {
+ ast_error(c, ch,
+ "Variable annotation syntax is only supported in Python 3.6 and greater");
+ return NULL;
+ }
+
/* we keep track of parens to qualify (x) as expression not name */
deep = ch;
while (NCH(deep) == 1) {
@@ -3286,42 +3286,42 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
}
if (NCH(ann) == 2) {
return AnnAssign(expr1, expr2, NULL, simple,
- LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else {
ch = CHILD(ann, 3);
- if (TYPE(ch) == testlist_star_expr) {
- expr3 = ast_for_testlist(c, ch);
- }
- else {
- expr3 = ast_for_expr(c, ch);
- }
+ if (TYPE(ch) == testlist_star_expr) {
+ expr3 = ast_for_testlist(c, ch);
+ }
+ else {
+ expr3 = ast_for_expr(c, ch);
+ }
if (!expr3) {
return NULL;
}
return AnnAssign(expr1, expr2, expr3, simple,
- LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
}
else {
- int i, nch_minus_type, has_type_comment;
+ int i, nch_minus_type, has_type_comment;
asdl_seq *targets;
node *value;
expr_ty expression;
- string type_comment;
+ string type_comment;
/* a normal assignment */
REQ(CHILD(n, 1), EQUAL);
-
- has_type_comment = TYPE(CHILD(n, num - 1)) == TYPE_COMMENT;
- nch_minus_type = num - has_type_comment;
-
- targets = _Py_asdl_seq_new(nch_minus_type / 2, c->c_arena);
+
+ has_type_comment = TYPE(CHILD(n, num - 1)) == TYPE_COMMENT;
+ nch_minus_type = num - has_type_comment;
+
+ targets = _Py_asdl_seq_new(nch_minus_type / 2, c->c_arena);
if (!targets)
return NULL;
- for (i = 0; i < nch_minus_type - 2; i += 2) {
+ for (i = 0; i < nch_minus_type - 2; i += 2) {
expr_ty e;
node *ch = CHILD(n, i);
if (TYPE(ch) == yield_expr) {
@@ -3338,22 +3338,22 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
asdl_seq_SET(targets, i / 2, e);
}
- value = CHILD(n, nch_minus_type - 1);
+ value = CHILD(n, nch_minus_type - 1);
if (TYPE(value) == testlist_star_expr)
expression = ast_for_testlist(c, value);
else
expression = ast_for_expr(c, value);
if (!expression)
return NULL;
- if (has_type_comment) {
- type_comment = NEW_TYPE_COMMENT(CHILD(n, nch_minus_type));
- if (!type_comment)
- return NULL;
- }
- else
- type_comment = NULL;
- return Assign(targets, expression, type_comment, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ if (has_type_comment) {
+ type_comment = NEW_TYPE_COMMENT(CHILD(n, nch_minus_type));
+ if (!type_comment)
+ return NULL;
+ }
+ else
+ type_comment = NULL;
+ return Assign(targets, expression, type_comment, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
}
@@ -3392,8 +3392,8 @@ ast_for_del_stmt(struct compiling *c, const node *n)
expr_list = ast_for_exprlist(c, CHILD(n, 1), Del);
if (!expr_list)
return NULL;
- return Delete(expr_list, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Delete(expr_list, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static stmt_ty
@@ -3415,33 +3415,33 @@ ast_for_flow_stmt(struct compiling *c, const node *n)
ch = CHILD(n, 0);
switch (TYPE(ch)) {
case break_stmt:
- return Break(LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Break(LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
case continue_stmt:
- return Continue(LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Continue(LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
case yield_stmt: { /* will reduce to yield_expr */
expr_ty exp = ast_for_expr(c, CHILD(ch, 0));
if (!exp)
return NULL;
- return Expr(exp, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Expr(exp, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
case return_stmt:
if (NCH(ch) == 1)
- return Return(NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Return(NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
else {
expr_ty expression = ast_for_testlist(c, CHILD(ch, 1));
if (!expression)
return NULL;
- return Return(expression, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Return(expression, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
case raise_stmt:
if (NCH(ch) == 1)
- return Raise(NULL, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Raise(NULL, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
else if (NCH(ch) >= 2) {
expr_ty cause = NULL;
expr_ty expression = ast_for_expr(c, CHILD(ch, 1));
@@ -3452,8 +3452,8 @@ ast_for_flow_stmt(struct compiling *c, const node *n)
if (!cause)
return NULL;
}
- return Raise(expression, cause, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Raise(expression, cause, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
/* fall through */
default:
@@ -3609,14 +3609,14 @@ ast_for_import_stmt(struct compiling *c, const node *n)
return NULL;
asdl_seq_SET(aliases, i / 2, import_alias);
}
- // Even though n is modified above, the end position is not changed
- return Import(aliases, lineno, col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ // Even though n is modified above, the end position is not changed
+ return Import(aliases, lineno, col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else if (TYPE(n) == import_from) {
int n_children;
int idx, ndots = 0;
- const node *n_copy = n;
+ const node *n_copy = n;
alias_ty mod = NULL;
identifier modname = NULL;
@@ -3655,9 +3655,9 @@ ast_for_import_stmt(struct compiling *c, const node *n)
n = CHILD(n, idx);
n_children = NCH(n);
if (n_children % 2 == 0) {
- ast_error(c, n,
- "trailing comma not allowed without"
- " surrounding parentheses");
+ ast_error(c, n,
+ "trailing comma not allowed without"
+ " surrounding parentheses");
return NULL;
}
break;
@@ -3688,7 +3688,7 @@ ast_for_import_stmt(struct compiling *c, const node *n)
if (mod != NULL)
modname = mod->name;
return ImportFrom(modname, aliases, ndots, lineno, col_offset,
- n_copy->n_end_lineno, n_copy->n_end_col_offset,
+ n_copy->n_end_lineno, n_copy->n_end_col_offset,
c->c_arena);
}
PyErr_Format(PyExc_SystemError,
@@ -3715,8 +3715,8 @@ ast_for_global_stmt(struct compiling *c, const node *n)
return NULL;
asdl_seq_SET(s, i / 2, name);
}
- return Global(s, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Global(s, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static stmt_ty
@@ -3737,8 +3737,8 @@ ast_for_nonlocal_stmt(struct compiling *c, const node *n)
return NULL;
asdl_seq_SET(s, i / 2, name);
}
- return Nonlocal(s, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Nonlocal(s, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
static stmt_ty
@@ -3750,8 +3750,8 @@ ast_for_assert_stmt(struct compiling *c, const node *n)
expr_ty expression = ast_for_expr(c, CHILD(n, 1));
if (!expression)
return NULL;
- return Assert(expression, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Assert(expression, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else if (NCH(n) == 4) {
expr_ty expr1, expr2;
@@ -3763,8 +3763,8 @@ ast_for_assert_stmt(struct compiling *c, const node *n)
if (!expr2)
return NULL;
- return Assert(expr1, expr2, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Assert(expr1, expr2, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
PyErr_Format(PyExc_SystemError,
"improper number of parts to 'assert' statement: %d",
@@ -3775,15 +3775,15 @@ ast_for_assert_stmt(struct compiling *c, const node *n)
static asdl_seq *
ast_for_suite(struct compiling *c, const node *n)
{
- /* suite: simple_stmt | NEWLINE [TYPE_COMMENT NEWLINE] INDENT stmt+ DEDENT */
+ /* suite: simple_stmt | NEWLINE [TYPE_COMMENT NEWLINE] INDENT stmt+ DEDENT */
asdl_seq *seq;
stmt_ty s;
int i, total, num, end, pos = 0;
node *ch;
- if (TYPE(n) != func_body_suite) {
- REQ(n, suite);
- }
+ if (TYPE(n) != func_body_suite) {
+ REQ(n, suite);
+ }
total = num_stmts(n);
seq = _Py_asdl_seq_new(total, c->c_arena);
@@ -3807,13 +3807,13 @@ ast_for_suite(struct compiling *c, const node *n)
}
}
else {
- i = 2;
- if (TYPE(CHILD(n, 1)) == TYPE_COMMENT) {
- i += 2;
- REQ(CHILD(n, 2), NEWLINE);
- }
-
- for (; i < (NCH(n) - 1); i++) {
+ i = 2;
+ if (TYPE(CHILD(n, 1)) == TYPE_COMMENT) {
+ i += 2;
+ REQ(CHILD(n, 2), NEWLINE);
+ }
+
+ for (; i < (NCH(n) - 1); i++) {
ch = CHILD(n, i);
REQ(ch, stmt);
num = num_stmts(ch);
@@ -3846,17 +3846,17 @@ ast_for_suite(struct compiling *c, const node *n)
return seq;
}
-static void
-get_last_end_pos(asdl_seq *s, int *end_lineno, int *end_col_offset)
-{
- Py_ssize_t tot = asdl_seq_LEN(s);
- // There must be no empty suites.
- assert(tot > 0);
- stmt_ty last = asdl_seq_GET(s, tot - 1);
- *end_lineno = last->end_lineno;
- *end_col_offset = last->end_col_offset;
-}
-
+static void
+get_last_end_pos(asdl_seq *s, int *end_lineno, int *end_col_offset)
+{
+ Py_ssize_t tot = asdl_seq_LEN(s);
+ // There must be no empty suites.
+ assert(tot > 0);
+ stmt_ty last = asdl_seq_GET(s, tot - 1);
+ *end_lineno = last->end_lineno;
+ *end_col_offset = last->end_col_offset;
+}
+
static stmt_ty
ast_for_if_stmt(struct compiling *c, const node *n)
{
@@ -3864,7 +3864,7 @@ ast_for_if_stmt(struct compiling *c, const node *n)
['else' ':' suite]
*/
char *s;
- int end_lineno, end_col_offset;
+ int end_lineno, end_col_offset;
REQ(n, if_stmt);
@@ -3878,10 +3878,10 @@ ast_for_if_stmt(struct compiling *c, const node *n)
suite_seq = ast_for_suite(c, CHILD(n, 3));
if (!suite_seq)
return NULL;
- get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
+ get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
return If(expression, suite_seq, NULL, LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ end_lineno, end_col_offset, c->c_arena);
}
s = STR(CHILD(n, 4));
@@ -3902,10 +3902,10 @@ ast_for_if_stmt(struct compiling *c, const node *n)
seq2 = ast_for_suite(c, CHILD(n, 6));
if (!seq2)
return NULL;
- get_last_end_pos(seq2, &end_lineno, &end_col_offset);
+ get_last_end_pos(seq2, &end_lineno, &end_col_offset);
return If(expression, seq1, seq2, LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ end_lineno, end_col_offset, c->c_arena);
}
else if (s[2] == 'i') {
int i, n_elif, has_else = 0;
@@ -3937,13 +3937,13 @@ ast_for_if_stmt(struct compiling *c, const node *n)
suite_seq2 = ast_for_suite(c, CHILD(n, NCH(n) - 1));
if (!suite_seq2)
return NULL;
- get_last_end_pos(suite_seq2, &end_lineno, &end_col_offset);
+ get_last_end_pos(suite_seq2, &end_lineno, &end_col_offset);
asdl_seq_SET(orelse, 0,
If(expression, suite_seq, suite_seq2,
- LINENO(CHILD(n, NCH(n) - 7)),
- CHILD(n, NCH(n) - 7)->n_col_offset,
- end_lineno, end_col_offset, c->c_arena));
+ LINENO(CHILD(n, NCH(n) - 7)),
+ CHILD(n, NCH(n) - 7)->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena));
/* the just-created orelse handled the last elif */
n_elif--;
}
@@ -3960,16 +3960,16 @@ ast_for_if_stmt(struct compiling *c, const node *n)
if (!suite_seq)
return NULL;
- if (orelse != NULL) {
- get_last_end_pos(orelse, &end_lineno, &end_col_offset);
- } else {
- get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
- }
+ if (orelse != NULL) {
+ get_last_end_pos(orelse, &end_lineno, &end_col_offset);
+ } else {
+ get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
+ }
asdl_seq_SET(newobj, 0,
If(expression, suite_seq, orelse,
- LINENO(CHILD(n, off - 1)),
- CHILD(n, off - 1)->n_col_offset,
- end_lineno, end_col_offset, c->c_arena));
+ LINENO(CHILD(n, off - 1)),
+ CHILD(n, off - 1)->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena));
orelse = newobj;
}
expression = ast_for_expr(c, CHILD(n, 1));
@@ -3978,10 +3978,10 @@ ast_for_if_stmt(struct compiling *c, const node *n)
suite_seq = ast_for_suite(c, CHILD(n, 3));
if (!suite_seq)
return NULL;
- get_last_end_pos(orelse, &end_lineno, &end_col_offset);
+ get_last_end_pos(orelse, &end_lineno, &end_col_offset);
return If(expression, suite_seq, orelse,
- LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
PyErr_Format(PyExc_SystemError,
@@ -3994,7 +3994,7 @@ ast_for_while_stmt(struct compiling *c, const node *n)
{
/* while_stmt: 'while' test ':' suite ['else' ':' suite] */
REQ(n, while_stmt);
- int end_lineno, end_col_offset;
+ int end_lineno, end_col_offset;
if (NCH(n) == 4) {
expr_ty expression;
@@ -4006,9 +4006,9 @@ ast_for_while_stmt(struct compiling *c, const node *n)
suite_seq = ast_for_suite(c, CHILD(n, 3));
if (!suite_seq)
return NULL;
- get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
- return While(expression, suite_seq, NULL, LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
+ return While(expression, suite_seq, NULL, LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
else if (NCH(n) == 7) {
expr_ty expression;
@@ -4023,10 +4023,10 @@ ast_for_while_stmt(struct compiling *c, const node *n)
seq2 = ast_for_suite(c, CHILD(n, 6));
if (!seq2)
return NULL;
- get_last_end_pos(seq2, &end_lineno, &end_col_offset);
+ get_last_end_pos(seq2, &end_lineno, &end_col_offset);
- return While(expression, seq1, seq2, LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ return While(expression, seq1, seq2, LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
PyErr_Format(PyExc_SystemError,
@@ -4043,23 +4043,23 @@ ast_for_for_stmt(struct compiling *c, const node *n0, bool is_async)
expr_ty expression;
expr_ty target, first;
const node *node_target;
- int end_lineno, end_col_offset;
- int has_type_comment;
- string type_comment;
-
- if (is_async && c->c_feature_version < 5) {
- ast_error(c, n,
- "Async for loops are only supported in Python 3.5 and greater");
- return NULL;
- }
-
- /* for_stmt: 'for' exprlist 'in' testlist ':' [TYPE_COMMENT] suite ['else' ':' suite] */
+ int end_lineno, end_col_offset;
+ int has_type_comment;
+ string type_comment;
+
+ if (is_async && c->c_feature_version < 5) {
+ ast_error(c, n,
+ "Async for loops are only supported in Python 3.5 and greater");
+ return NULL;
+ }
+
+ /* for_stmt: 'for' exprlist 'in' testlist ':' [TYPE_COMMENT] suite ['else' ':' suite] */
REQ(n, for_stmt);
- has_type_comment = TYPE(CHILD(n, 5)) == TYPE_COMMENT;
-
- if (NCH(n) == 9 + has_type_comment) {
- seq = ast_for_suite(c, CHILD(n, 8 + has_type_comment));
+ has_type_comment = TYPE(CHILD(n, 5)) == TYPE_COMMENT;
+
+ if (NCH(n) == 9 + has_type_comment) {
+ seq = ast_for_suite(c, CHILD(n, 8 + has_type_comment));
if (!seq)
return NULL;
}
@@ -4074,46 +4074,46 @@ ast_for_for_stmt(struct compiling *c, const node *n0, bool is_async)
if (NCH(node_target) == 1)
target = first;
else
- target = Tuple(_target, Store, first->lineno, first->col_offset,
- node_target->n_end_lineno, node_target->n_end_col_offset,
- c->c_arena);
+ target = Tuple(_target, Store, first->lineno, first->col_offset,
+ node_target->n_end_lineno, node_target->n_end_col_offset,
+ c->c_arena);
expression = ast_for_testlist(c, CHILD(n, 3));
if (!expression)
return NULL;
- suite_seq = ast_for_suite(c, CHILD(n, 5 + has_type_comment));
+ suite_seq = ast_for_suite(c, CHILD(n, 5 + has_type_comment));
if (!suite_seq)
return NULL;
- if (seq != NULL) {
- get_last_end_pos(seq, &end_lineno, &end_col_offset);
- } else {
- get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
- }
-
- if (has_type_comment) {
- type_comment = NEW_TYPE_COMMENT(CHILD(n, 5));
- if (!type_comment)
- return NULL;
- }
- else
- type_comment = NULL;
-
+ if (seq != NULL) {
+ get_last_end_pos(seq, &end_lineno, &end_col_offset);
+ } else {
+ get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
+ }
+
+ if (has_type_comment) {
+ type_comment = NEW_TYPE_COMMENT(CHILD(n, 5));
+ if (!type_comment)
+ return NULL;
+ }
+ else
+ type_comment = NULL;
+
if (is_async)
- return AsyncFor(target, expression, suite_seq, seq, type_comment,
+ return AsyncFor(target, expression, suite_seq, seq, type_comment,
LINENO(n0), n0->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ end_lineno, end_col_offset, c->c_arena);
else
- return For(target, expression, suite_seq, seq, type_comment,
+ return For(target, expression, suite_seq, seq, type_comment,
LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ end_lineno, end_col_offset, c->c_arena);
}
static excepthandler_ty
ast_for_except_clause(struct compiling *c, const node *exc, node *body)
{
/* except_clause: 'except' [test ['as' test]] */
- int end_lineno, end_col_offset;
+ int end_lineno, end_col_offset;
REQ(exc, except_clause);
REQ(body, suite);
@@ -4121,11 +4121,11 @@ ast_for_except_clause(struct compiling *c, const node *exc, node *body)
asdl_seq *suite_seq = ast_for_suite(c, body);
if (!suite_seq)
return NULL;
- get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
+ get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
return ExceptHandler(NULL, NULL, suite_seq, LINENO(exc),
- exc->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ exc->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
else if (NCH(exc) == 2) {
expr_ty expression;
@@ -4137,11 +4137,11 @@ ast_for_except_clause(struct compiling *c, const node *exc, node *body)
suite_seq = ast_for_suite(c, body);
if (!suite_seq)
return NULL;
- get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
+ get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
return ExceptHandler(expression, NULL, suite_seq, LINENO(exc),
- exc->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ exc->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
else if (NCH(exc) == 4) {
asdl_seq *suite_seq;
@@ -4157,11 +4157,11 @@ ast_for_except_clause(struct compiling *c, const node *exc, node *body)
suite_seq = ast_for_suite(c, body);
if (!suite_seq)
return NULL;
- get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
+ get_last_end_pos(suite_seq, &end_lineno, &end_col_offset);
return ExceptHandler(expression, e, suite_seq, LINENO(exc),
- exc->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ exc->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
PyErr_Format(PyExc_SystemError,
@@ -4174,9 +4174,9 @@ static stmt_ty
ast_for_try_stmt(struct compiling *c, const node *n)
{
const int nch = NCH(n);
- int end_lineno, end_col_offset, n_except = (nch - 3)/3;
+ int end_lineno, end_col_offset, n_except = (nch - 3)/3;
asdl_seq *body, *handlers = NULL, *orelse = NULL, *finally = NULL;
- excepthandler_ty last_handler;
+ excepthandler_ty last_handler;
REQ(n, try_stmt);
@@ -4232,20 +4232,20 @@ ast_for_try_stmt(struct compiling *c, const node *n)
}
assert(finally != NULL || asdl_seq_LEN(handlers));
- if (finally != NULL) {
- // finally is always last
- get_last_end_pos(finally, &end_lineno, &end_col_offset);
- } else if (orelse != NULL) {
- // otherwise else is last
- get_last_end_pos(orelse, &end_lineno, &end_col_offset);
- } else {
- // inline the get_last_end_pos logic due to layout mismatch
- last_handler = (excepthandler_ty) asdl_seq_GET(handlers, n_except - 1);
- end_lineno = last_handler->end_lineno;
- end_col_offset = last_handler->end_col_offset;
- }
- return Try(body, handlers, orelse, finally, LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ if (finally != NULL) {
+ // finally is always last
+ get_last_end_pos(finally, &end_lineno, &end_col_offset);
+ } else if (orelse != NULL) {
+ // otherwise else is last
+ get_last_end_pos(orelse, &end_lineno, &end_col_offset);
+ } else {
+ // inline the get_last_end_pos logic due to layout mismatch
+ last_handler = (excepthandler_ty) asdl_seq_GET(handlers, n_except - 1);
+ end_lineno = last_handler->end_lineno;
+ end_col_offset = last_handler->end_col_offset;
+ }
+ return Try(body, handlers, orelse, finally, LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
/* with_item: test ['as' expr] */
@@ -4272,31 +4272,31 @@ ast_for_with_item(struct compiling *c, const node *n)
return withitem(context_expr, optional_vars, c->c_arena);
}
-/* with_stmt: 'with' with_item (',' with_item)* ':' [TYPE_COMMENT] suite */
+/* with_stmt: 'with' with_item (',' with_item)* ':' [TYPE_COMMENT] suite */
static stmt_ty
ast_for_with_stmt(struct compiling *c, const node *n0, bool is_async)
{
const node * const n = is_async ? CHILD(n0, 1) : n0;
- int i, n_items, nch_minus_type, has_type_comment, end_lineno, end_col_offset;
+ int i, n_items, nch_minus_type, has_type_comment, end_lineno, end_col_offset;
asdl_seq *items, *body;
- string type_comment;
-
- if (is_async && c->c_feature_version < 5) {
- ast_error(c, n,
- "Async with statements are only supported in Python 3.5 and greater");
- return NULL;
- }
-
+ string type_comment;
+
+ if (is_async && c->c_feature_version < 5) {
+ ast_error(c, n,
+ "Async with statements are only supported in Python 3.5 and greater");
+ return NULL;
+ }
+
REQ(n, with_stmt);
- has_type_comment = TYPE(CHILD(n, NCH(n) - 2)) == TYPE_COMMENT;
- nch_minus_type = NCH(n) - has_type_comment;
-
- n_items = (nch_minus_type - 2) / 2;
+ has_type_comment = TYPE(CHILD(n, NCH(n) - 2)) == TYPE_COMMENT;
+ nch_minus_type = NCH(n) - has_type_comment;
+
+ n_items = (nch_minus_type - 2) / 2;
items = _Py_asdl_seq_new(n_items, c->c_arena);
if (!items)
return NULL;
- for (i = 1; i < nch_minus_type - 2; i += 2) {
+ for (i = 1; i < nch_minus_type - 2; i += 2) {
withitem_ty item = ast_for_with_item(c, CHILD(n, i));
if (!item)
return NULL;
@@ -4306,22 +4306,22 @@ ast_for_with_stmt(struct compiling *c, const node *n0, bool is_async)
body = ast_for_suite(c, CHILD(n, NCH(n) - 1));
if (!body)
return NULL;
- get_last_end_pos(body, &end_lineno, &end_col_offset);
-
- if (has_type_comment) {
- type_comment = NEW_TYPE_COMMENT(CHILD(n, NCH(n) - 2));
- if (!type_comment)
- return NULL;
- }
- else
- type_comment = NULL;
-
+ get_last_end_pos(body, &end_lineno, &end_col_offset);
+
+ if (has_type_comment) {
+ type_comment = NEW_TYPE_COMMENT(CHILD(n, NCH(n) - 2));
+ if (!type_comment)
+ return NULL;
+ }
+ else
+ type_comment = NULL;
+
if (is_async)
- return AsyncWith(items, body, type_comment, LINENO(n0), n0->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ return AsyncWith(items, body, type_comment, LINENO(n0), n0->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
else
- return With(items, body, type_comment, LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ return With(items, body, type_comment, LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
static stmt_ty
@@ -4331,7 +4331,7 @@ ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq)
PyObject *classname;
asdl_seq *s;
expr_ty call;
- int end_lineno, end_col_offset;
+ int end_lineno, end_col_offset;
REQ(n, classdef);
@@ -4339,32 +4339,32 @@ ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq)
s = ast_for_suite(c, CHILD(n, 3));
if (!s)
return NULL;
- get_last_end_pos(s, &end_lineno, &end_col_offset);
-
+ get_last_end_pos(s, &end_lineno, &end_col_offset);
+
classname = NEW_IDENTIFIER(CHILD(n, 1));
if (!classname)
return NULL;
if (forbidden_name(c, classname, CHILD(n, 3), 0))
return NULL;
return ClassDef(classname, NULL, NULL, s, decorator_seq,
- LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
if (TYPE(CHILD(n, 3)) == RPAR) { /* class NAME '(' ')' ':' suite */
s = ast_for_suite(c, CHILD(n, 5));
if (!s)
return NULL;
- get_last_end_pos(s, &end_lineno, &end_col_offset);
-
+ get_last_end_pos(s, &end_lineno, &end_col_offset);
+
classname = NEW_IDENTIFIER(CHILD(n, 1));
if (!classname)
return NULL;
if (forbidden_name(c, classname, CHILD(n, 3), 0))
return NULL;
return ClassDef(classname, NULL, NULL, s, decorator_seq,
- LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
/* class NAME '(' arglist ')' ':' suite */
@@ -4375,19 +4375,19 @@ ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq)
dummy_name = NEW_IDENTIFIER(CHILD(n, 1));
if (!dummy_name)
return NULL;
- dummy = Name(dummy_name, Load, LINENO(n), n->n_col_offset,
- CHILD(n, 1)->n_end_lineno, CHILD(n, 1)->n_end_col_offset,
- c->c_arena);
- call = ast_for_call(c, CHILD(n, 3), dummy,
- CHILD(n, 1), NULL, CHILD(n, 4));
+ dummy = Name(dummy_name, Load, LINENO(n), n->n_col_offset,
+ CHILD(n, 1)->n_end_lineno, CHILD(n, 1)->n_end_col_offset,
+ c->c_arena);
+ call = ast_for_call(c, CHILD(n, 3), dummy,
+ CHILD(n, 1), NULL, CHILD(n, 4));
if (!call)
return NULL;
}
s = ast_for_suite(c, CHILD(n, 6));
if (!s)
return NULL;
- get_last_end_pos(s, &end_lineno, &end_col_offset);
-
+ get_last_end_pos(s, &end_lineno, &end_col_offset);
+
classname = NEW_IDENTIFIER(CHILD(n, 1));
if (!classname)
return NULL;
@@ -4395,8 +4395,8 @@ ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq)
return NULL;
return ClassDef(classname, call->v.Call.args, call->v.Call.keywords, s,
- decorator_seq, LINENO(n), n->n_col_offset,
- end_lineno, end_col_offset, c->c_arena);
+ decorator_seq, LINENO(n), n->n_col_offset,
+ end_lineno, end_col_offset, c->c_arena);
}
static stmt_ty
@@ -4421,8 +4421,8 @@ ast_for_stmt(struct compiling *c, const node *n)
case del_stmt:
return ast_for_del_stmt(c, n);
case pass_stmt:
- return Pass(LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Pass(LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
case flow_stmt:
return ast_for_flow_stmt(c, n);
case import_stmt:
@@ -4467,7 +4467,7 @@ ast_for_stmt(struct compiling *c, const node *n)
return ast_for_async_stmt(c, ch);
default:
PyErr_Format(PyExc_SystemError,
- "unhandled compound_stmt: TYPE=%d NCH=%d\n",
+ "unhandled compound_stmt: TYPE=%d NCH=%d\n",
TYPE(n), NCH(n));
return NULL;
}
@@ -4573,7 +4573,7 @@ warn_invalid_escape_sequence(struct compiling *c, const node *n,
/* Replace the DeprecationWarning exception with a SyntaxError
to get a more accurate error report */
PyErr_Clear();
- ast_error(c, n, "%U", msg);
+ ast_error(c, n, "%U", msg);
}
Py_DECREF(msg);
return -1;
@@ -4614,7 +4614,7 @@ decode_unicode_with_escapes(struct compiling *c, const node *n, const char *s,
if (*s & 0x80) { /* XXX inefficient */
PyObject *w;
int kind;
- const void *data;
+ const void *data;
Py_ssize_t len, i;
w = decode_utf8(c, &s, end);
if (w == NULL) {
@@ -4640,7 +4640,7 @@ decode_unicode_with_escapes(struct compiling *c, const node *n, const char *s,
s = buf;
const char *first_invalid_escape;
- v = _PyUnicode_DecodeUnicodeEscapeInternal(s, len, NULL, NULL, &first_invalid_escape);
+ v = _PyUnicode_DecodeUnicodeEscapeInternal(s, len, NULL, NULL, &first_invalid_escape);
if (v != NULL && first_invalid_escape != NULL) {
if (warn_invalid_escape_sequence(c, n, *first_invalid_escape) < 0) {
@@ -4660,7 +4660,7 @@ decode_bytes_with_escapes(struct compiling *c, const node *n, const char *s,
size_t len)
{
const char *first_invalid_escape;
- PyObject *result = _PyBytes_DecodeEscape(s, len, NULL,
+ PyObject *result = _PyBytes_DecodeEscape(s, len, NULL,
&first_invalid_escape);
if (result == NULL)
return NULL;
@@ -4679,7 +4679,7 @@ decode_bytes_with_escapes(struct compiling *c, const node *n, const char *s,
static void fstring_shift_node_locations(node *n, int lineno, int col_offset)
{
n->n_col_offset = n->n_col_offset + col_offset;
- n->n_end_col_offset = n->n_end_col_offset + col_offset;
+ n->n_end_col_offset = n->n_end_col_offset + col_offset;
for (int i = 0; i < NCH(n); ++i) {
if (n->n_lineno && n->n_lineno < CHILD(n, i)->n_lineno) {
/* Shifting column offsets unnecessary if there's been newlines. */
@@ -4688,7 +4688,7 @@ static void fstring_shift_node_locations(node *n, int lineno, int col_offset)
fstring_shift_node_locations(CHILD(n, i), lineno, col_offset);
}
n->n_lineno = n->n_lineno + lineno;
- n->n_end_lineno = n->n_end_lineno + lineno;
+ n->n_end_lineno = n->n_end_lineno + lineno;
}
/* Fix locations for the given node and its children.
@@ -4716,14 +4716,14 @@ fstring_fix_node_location(const node *parent, node *n, char *expr_str)
break;
start--;
}
- cols += (int)(substr - start);
- /* adjust the start based on the number of newlines encountered
- before the f-string expression */
- for (char* p = parent->n_str; p < substr; p++) {
- if (*p == '\n') {
- lines++;
- }
- }
+ cols += (int)(substr - start);
+ /* adjust the start based on the number of newlines encountered
+ before the f-string expression */
+ for (char* p = parent->n_str; p < substr; p++) {
+ if (*p == '\n') {
+ lines++;
+ }
+ }
}
}
fstring_shift_node_locations(n, lines, cols);
@@ -4744,8 +4744,8 @@ fstring_compile_expr(const char *expr_start, const char *expr_end,
assert(expr_end >= expr_start);
assert(*(expr_start-1) == '{');
- assert(*expr_end == '}' || *expr_end == '!' || *expr_end == ':' ||
- *expr_end == '=');
+ assert(*expr_end == '}' || *expr_end == '!' || *expr_end == ':' ||
+ *expr_end == '=');
/* If the substring is all whitespace, it's an error. We need to catch this
here, and not when we call PyParser_SimpleParseStringFlagsFilename,
@@ -4766,7 +4766,7 @@ fstring_compile_expr(const char *expr_start, const char *expr_end,
len = expr_end - expr_start;
/* Allocate 3 extra bytes: open paren, close paren, null byte. */
- str = PyMem_Malloc(len + 3);
+ str = PyMem_Malloc(len + 3);
if (str == NULL) {
PyErr_NoMemory();
return NULL;
@@ -4777,12 +4777,12 @@ fstring_compile_expr(const char *expr_start, const char *expr_end,
str[len+1] = ')';
str[len+2] = 0;
- PyCompilerFlags cf = _PyCompilerFlags_INIT;
+ PyCompilerFlags cf = _PyCompilerFlags_INIT;
cf.cf_flags = PyCF_ONLY_AST;
mod_n = PyParser_SimpleParseStringFlagsFilename(str, "<fstring>",
Py_eval_input, 0);
if (!mod_n) {
- PyMem_Free(str);
+ PyMem_Free(str);
return NULL;
}
/* Reuse str to find the correct column offset. */
@@ -4790,7 +4790,7 @@ fstring_compile_expr(const char *expr_start, const char *expr_end,
str[len+1] = '}';
fstring_fix_node_location(n, mod_n, str);
mod = PyAST_FromNode(mod_n, &cf, "<fstring>", c->c_arena);
- PyMem_Free(str);
+ PyMem_Free(str);
PyNode_Free(mod_n);
if (!mod)
return NULL;
@@ -4888,24 +4888,24 @@ fstring_parse(const char **str, const char *end, int raw, int recurse_lvl,
struct compiling *c, const node *n);
/* Parse the f-string at *str, ending at end. We know *str starts an
- expression (so it must be a '{'). Returns the FormattedValue node, which
- includes the expression, conversion character, format_spec expression, and
- optionally the text of the expression (if = is used).
+ expression (so it must be a '{'). Returns the FormattedValue node, which
+ includes the expression, conversion character, format_spec expression, and
+ optionally the text of the expression (if = is used).
Note that I don't do a perfect job here: I don't make sure that a
closing brace doesn't match an opening paren, for example. It
doesn't need to error on all invalid expressions, just correctly
find the end of all valid ones. Any errors inside the expression
- will be caught when we parse it later.
-
- *expression is set to the expression. For an '=' "debug" expression,
- *expr_text is set to the debug text (the original text of the expression,
- including the '=' and any whitespace around it, as a string object). If
- not a debug expression, *expr_text set to NULL. */
+ will be caught when we parse it later.
+
+ *expression is set to the expression. For an '=' "debug" expression,
+ *expr_text is set to the debug text (the original text of the expression,
+ including the '=' and any whitespace around it, as a string object). If
+ not a debug expression, *expr_text set to NULL. */
static int
fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
- PyObject **expr_text, expr_ty *expression,
- struct compiling *c, const node *n)
+ PyObject **expr_text, expr_ty *expression,
+ struct compiling *c, const node *n)
{
/* Return -1 on error, else 0. */
@@ -4913,9 +4913,9 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
const char *expr_end;
expr_ty simple_expression;
expr_ty format_spec = NULL; /* Optional format specifier. */
- int conversion = -1; /* The conversion char. Use default if not
- specified, or !r if using = and no format
- spec. */
+ int conversion = -1; /* The conversion char. Use default if not
+ specified, or !r if using = and no format
+ spec. */
/* 0 if we're not in a string, else the quote char we're trying to
match (single or double quote). */
@@ -4927,14 +4927,14 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
/* Keep track of nesting level for braces/parens/brackets in
expressions. */
Py_ssize_t nested_depth = 0;
- char parenstack[MAXLEVEL];
+ char parenstack[MAXLEVEL];
+
+ *expr_text = NULL;
- *expr_text = NULL;
-
/* Can only nest one level deep. */
if (recurse_lvl >= 2) {
ast_error(c, n, "f-string: expressions nested too deeply");
- goto error;
+ goto error;
}
/* The first char must be a left brace, or we wouldn't have gotten
@@ -4959,10 +4959,10 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
if (ch == '\\') {
/* Error: can't include a backslash character, inside
parens or strings or not. */
- ast_error(c, n,
- "f-string expression part "
- "cannot include a backslash");
- goto error;
+ ast_error(c, n,
+ "f-string expression part "
+ "cannot include a backslash");
+ goto error;
}
if (quote_char) {
/* We're inside a string. See if we're at the end. */
@@ -5005,61 +5005,61 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
/* Start looking for the end of the string. */
quote_char = ch;
} else if (ch == '[' || ch == '{' || ch == '(') {
- if (nested_depth >= MAXLEVEL) {
- ast_error(c, n, "f-string: too many nested parenthesis");
- goto error;
- }
- parenstack[nested_depth] = ch;
+ if (nested_depth >= MAXLEVEL) {
+ ast_error(c, n, "f-string: too many nested parenthesis");
+ goto error;
+ }
+ parenstack[nested_depth] = ch;
nested_depth++;
} else if (ch == '#') {
/* Error: can't include a comment character, inside parens
or not. */
ast_error(c, n, "f-string expression part cannot include '#'");
- goto error;
+ goto error;
} else if (nested_depth == 0 &&
- (ch == '!' || ch == ':' || ch == '}' ||
- ch == '=' || ch == '>' || ch == '<')) {
- /* See if there's a next character. */
- if (*str+1 < end) {
- char next = *(*str+1);
-
- /* For "!=". since '=' is not an allowed conversion character,
- nothing is lost in this test. */
- if ((ch == '!' && next == '=') || /* != */
- (ch == '=' && next == '=') || /* == */
- (ch == '<' && next == '=') || /* <= */
- (ch == '>' && next == '=') /* >= */
- ) {
- *str += 1;
- continue;
- }
- /* Don't get out of the loop for these, if they're single
- chars (not part of 2-char tokens). If by themselves, they
- don't end an expression (unlike say '!'). */
- if (ch == '>' || ch == '<') {
- continue;
- }
+ (ch == '!' || ch == ':' || ch == '}' ||
+ ch == '=' || ch == '>' || ch == '<')) {
+ /* See if there's a next character. */
+ if (*str+1 < end) {
+ char next = *(*str+1);
+
+ /* For "!=". since '=' is not an allowed conversion character,
+ nothing is lost in this test. */
+ if ((ch == '!' && next == '=') || /* != */
+ (ch == '=' && next == '=') || /* == */
+ (ch == '<' && next == '=') || /* <= */
+ (ch == '>' && next == '=') /* >= */
+ ) {
+ *str += 1;
+ continue;
+ }
+ /* Don't get out of the loop for these, if they're single
+ chars (not part of 2-char tokens). If by themselves, they
+ don't end an expression (unlike say '!'). */
+ if (ch == '>' || ch == '<') {
+ continue;
+ }
}
-
+
/* Normal way out of this loop. */
break;
- } else if (ch == ']' || ch == '}' || ch == ')') {
- if (!nested_depth) {
- ast_error(c, n, "f-string: unmatched '%c'", ch);
- goto error;
- }
- nested_depth--;
- int opening = parenstack[nested_depth];
- if (!((opening == '(' && ch == ')') ||
- (opening == '[' && ch == ']') ||
- (opening == '{' && ch == '}')))
- {
- ast_error(c, n,
- "f-string: closing parenthesis '%c' "
- "does not match opening parenthesis '%c'",
- ch, opening);
- goto error;
- }
+ } else if (ch == ']' || ch == '}' || ch == ')') {
+ if (!nested_depth) {
+ ast_error(c, n, "f-string: unmatched '%c'", ch);
+ goto error;
+ }
+ nested_depth--;
+ int opening = parenstack[nested_depth];
+ if (!((opening == '(' && ch == ')') ||
+ (opening == '[' && ch == ']') ||
+ (opening == '{' && ch == '}')))
+ {
+ ast_error(c, n,
+ "f-string: closing parenthesis '%c' "
+ "does not match opening parenthesis '%c'",
+ ch, opening);
+ goto error;
+ }
} else {
/* Just consume this char and loop around. */
}
@@ -5071,12 +5071,12 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
let's just do that.*/
if (quote_char) {
ast_error(c, n, "f-string: unterminated string");
- goto error;
+ goto error;
}
if (nested_depth) {
- int opening = parenstack[nested_depth - 1];
- ast_error(c, n, "f-string: unmatched '%c'", opening);
- goto error;
+ int opening = parenstack[nested_depth - 1];
+ ast_error(c, n, "f-string: unmatched '%c'", opening);
+ goto error;
}
if (*str >= end)
@@ -5087,33 +5087,33 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
conversion or format_spec. */
simple_expression = fstring_compile_expr(expr_start, expr_end, c, n);
if (!simple_expression)
- goto error;
-
- /* Check for =, which puts the text value of the expression in
- expr_text. */
- if (**str == '=') {
- if (c->c_feature_version < 8) {
- ast_error(c, n,
- "f-string: self documenting expressions are "
- "only supported in Python 3.8 and greater");
- goto error;
- }
- *str += 1;
-
- /* Skip over ASCII whitespace. No need to test for end of string
- here, since we know there's at least a trailing quote somewhere
- ahead. */
- while (Py_ISSPACE(**str)) {
- *str += 1;
- }
-
- /* Set *expr_text to the text of the expression. */
- *expr_text = PyUnicode_FromStringAndSize(expr_start, *str-expr_start);
- if (!*expr_text) {
- goto error;
- }
- }
-
+ goto error;
+
+ /* Check for =, which puts the text value of the expression in
+ expr_text. */
+ if (**str == '=') {
+ if (c->c_feature_version < 8) {
+ ast_error(c, n,
+ "f-string: self documenting expressions are "
+ "only supported in Python 3.8 and greater");
+ goto error;
+ }
+ *str += 1;
+
+ /* Skip over ASCII whitespace. No need to test for end of string
+ here, since we know there's at least a trailing quote somewhere
+ ahead. */
+ while (Py_ISSPACE(**str)) {
+ *str += 1;
+ }
+
+ /* Set *expr_text to the text of the expression. */
+ *expr_text = PyUnicode_FromStringAndSize(expr_start, *str-expr_start);
+ if (!*expr_text) {
+ goto error;
+ }
+ }
+
/* Check for a conversion char, if present. */
if (**str == '!') {
*str += 1;
@@ -5124,13 +5124,13 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
*str += 1;
/* Validate the conversion. */
- if (!(conversion == 's' || conversion == 'r' || conversion == 'a')) {
- ast_error(c, n,
- "f-string: invalid conversion character: "
- "expected 's', 'r', or 'a'");
- goto error;
+ if (!(conversion == 's' || conversion == 'r' || conversion == 'a')) {
+ ast_error(c, n,
+ "f-string: invalid conversion character: "
+ "expected 's', 'r', or 'a'");
+ goto error;
}
-
+
}
/* Check for the format spec, if present. */
@@ -5144,7 +5144,7 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
/* Parse the format spec. */
format_spec = fstring_parse(str, end, raw, recurse_lvl+1, c, n);
if (!format_spec)
- goto error;
+ goto error;
}
if (*str >= end || **str != '}')
@@ -5155,31 +5155,31 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl,
assert(**str == '}');
*str += 1;
- /* If we're in = mode (detected by non-NULL expr_text), and have no format
- spec and no explicit conversion, set the conversion to 'r'. */
- if (*expr_text && format_spec == NULL && conversion == -1) {
- conversion = 'r';
- }
-
+ /* If we're in = mode (detected by non-NULL expr_text), and have no format
+ spec and no explicit conversion, set the conversion to 'r'. */
+ if (*expr_text && format_spec == NULL && conversion == -1) {
+ conversion = 'r';
+ }
+
/* And now create the FormattedValue node that represents this
entire expression with the conversion and format spec. */
*expression = FormattedValue(simple_expression, conversion,
- format_spec, LINENO(n),
- n->n_col_offset, n->n_end_lineno,
- n->n_end_col_offset, c->c_arena);
+ format_spec, LINENO(n),
+ n->n_col_offset, n->n_end_lineno,
+ n->n_end_col_offset, c->c_arena);
if (!*expression)
- goto error;
+ goto error;
return 0;
unexpected_end_of_string:
ast_error(c, n, "f-string: expecting '}'");
- /* Falls through to error. */
-
-error:
- Py_XDECREF(*expr_text);
+ /* Falls through to error. */
+
+error:
+ Py_XDECREF(*expr_text);
return -1;
-
+
}
/* Return -1 on error.
@@ -5208,7 +5208,7 @@ error:
static int
fstring_find_literal_and_expr(const char **str, const char *end, int raw,
int recurse_lvl, PyObject **literal,
- PyObject **expr_text, expr_ty *expression,
+ PyObject **expr_text, expr_ty *expression,
struct compiling *c, const node *n)
{
int result;
@@ -5236,8 +5236,8 @@ fstring_find_literal_and_expr(const char **str, const char *end, int raw,
/* We must now be the start of an expression, on a '{'. */
assert(**str == '{');
- if (fstring_find_expr(str, end, raw, recurse_lvl, expr_text,
- expression, c, n) < 0)
+ if (fstring_find_expr(str, end, raw, recurse_lvl, expr_text,
+ expression, c, n) < 0)
goto error;
return 0;
@@ -5255,8 +5255,8 @@ typedef struct {
expr_ty's, and then after that start dynamically allocating,
doubling the number allocated each time. Note that the f-string
f'{0}a{1}' contains 3 expr_ty's: 2 FormattedValue's, and one
- Constant for the literal 'a'. So you add expr_ty's about twice as
- fast as you add expressions in an f-string. */
+ Constant for the literal 'a'. So you add expr_ty's about twice as
+ fast as you add expressions in an f-string. */
Py_ssize_t allocated; /* Number we've allocated. */
Py_ssize_t size; /* Number we've used. */
@@ -5306,7 +5306,7 @@ ExprList_Append(ExprList *l, expr_ty exp)
Py_ssize_t i;
/* We're still using the cached data. Switch to
alloc-ing. */
- l->p = PyMem_Malloc(sizeof(expr_ty) * new_size);
+ l->p = PyMem_Malloc(sizeof(expr_ty) * new_size);
if (!l->p)
return -1;
/* Copy the cached data into the new buffer. */
@@ -5314,9 +5314,9 @@ ExprList_Append(ExprList *l, expr_ty exp)
l->p[i] = l->data[i];
} else {
/* Just realloc. */
- expr_ty *tmp = PyMem_Realloc(l->p, sizeof(expr_ty) * new_size);
+ expr_ty *tmp = PyMem_Realloc(l->p, sizeof(expr_ty) * new_size);
if (!tmp) {
- PyMem_Free(l->p);
+ PyMem_Free(l->p);
l->p = NULL;
return -1;
}
@@ -5344,7 +5344,7 @@ ExprList_Dealloc(ExprList *l)
/* Do nothing. */
} else {
/* We have dynamically allocated. Free the memory. */
- PyMem_Free(l->p);
+ PyMem_Free(l->p);
}
l->p = NULL;
l->size = -1;
@@ -5407,58 +5407,58 @@ FstringParser_Dealloc(FstringParser *state)
ExprList_Dealloc(&state->expr_list);
}
-/* Constants for the following */
-static PyObject *u_kind;
-
-/* Compute 'kind' field for string Constant (either 'u' or None) */
-static PyObject *
-make_kind(struct compiling *c, const node *n)
-{
- char *s = NULL;
- PyObject *kind = NULL;
-
- /* Find the first string literal, if any */
- while (TYPE(n) != STRING) {
- if (NCH(n) == 0)
- return NULL;
- n = CHILD(n, 0);
- }
- REQ(n, STRING);
-
- /* If it starts with 'u', return a PyUnicode "u" string */
- s = STR(n);
- if (s && *s == 'u') {
- if (!u_kind) {
- u_kind = PyUnicode_InternFromString("u");
- if (!u_kind)
- return NULL;
- }
- kind = u_kind;
- if (PyArena_AddPyObject(c->c_arena, kind) < 0) {
- return NULL;
- }
- Py_INCREF(kind);
- }
- return kind;
-}
-
-/* Make a Constant node, but decref the PyUnicode object being added. */
+/* Constants for the following */
+static PyObject *u_kind;
+
+/* Compute 'kind' field for string Constant (either 'u' or None) */
+static PyObject *
+make_kind(struct compiling *c, const node *n)
+{
+ char *s = NULL;
+ PyObject *kind = NULL;
+
+ /* Find the first string literal, if any */
+ while (TYPE(n) != STRING) {
+ if (NCH(n) == 0)
+ return NULL;
+ n = CHILD(n, 0);
+ }
+ REQ(n, STRING);
+
+ /* If it starts with 'u', return a PyUnicode "u" string */
+ s = STR(n);
+ if (s && *s == 'u') {
+ if (!u_kind) {
+ u_kind = PyUnicode_InternFromString("u");
+ if (!u_kind)
+ return NULL;
+ }
+ kind = u_kind;
+ if (PyArena_AddPyObject(c->c_arena, kind) < 0) {
+ return NULL;
+ }
+ Py_INCREF(kind);
+ }
+ return kind;
+}
+
+/* Make a Constant node, but decref the PyUnicode object being added. */
static expr_ty
make_str_node_and_del(PyObject **str, struct compiling *c, const node* n)
{
PyObject *s = *str;
- PyObject *kind = NULL;
+ PyObject *kind = NULL;
*str = NULL;
assert(PyUnicode_CheckExact(s));
if (PyArena_AddPyObject(c->c_arena, s) < 0) {
Py_DECREF(s);
return NULL;
}
- kind = make_kind(c, n);
- if (kind == NULL && PyErr_Occurred())
- return NULL;
- return Constant(s, kind, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ kind = make_kind(c, n);
+ if (kind == NULL && PyErr_Occurred())
+ return NULL;
+ return Constant(s, kind, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
/* Add a non-f-string (that is, a regular literal string). str is
@@ -5501,7 +5501,7 @@ FstringParser_ConcatFstring(FstringParser *state, const char **str,
/* Parse the f-string. */
while (1) {
PyObject *literal = NULL;
- PyObject *expr_text = NULL;
+ PyObject *expr_text = NULL;
expr_ty expression = NULL;
/* If there's a zero length literal in front of the
@@ -5509,23 +5509,23 @@ FstringParser_ConcatFstring(FstringParser *state, const char **str,
the f-string, expression will be NULL (unless result == 1,
see below). */
int result = fstring_find_literal_and_expr(str, end, raw, recurse_lvl,
- &literal, &expr_text,
- &expression, c, n);
+ &literal, &expr_text,
+ &expression, c, n);
if (result < 0)
return -1;
/* Add the literal, if any. */
- if (literal && FstringParser_ConcatAndDel(state, literal) < 0) {
- Py_XDECREF(expr_text);
- return -1;
+ if (literal && FstringParser_ConcatAndDel(state, literal) < 0) {
+ Py_XDECREF(expr_text);
+ return -1;
+ }
+ /* Add the expr_text, if any. */
+ if (expr_text && FstringParser_ConcatAndDel(state, expr_text) < 0) {
+ return -1;
}
- /* Add the expr_text, if any. */
- if (expr_text && FstringParser_ConcatAndDel(state, expr_text) < 0) {
- return -1;
- }
- /* We've dealt with the literal and expr_text, their ownership has
- been transferred to the state object. Don't look at them again. */
+ /* We've dealt with the literal and expr_text, their ownership has
+ been transferred to the state object. Don't look at them again. */
/* See if we should just loop around to get the next literal
and expression, while ignoring the expression this
@@ -5539,11 +5539,11 @@ FstringParser_ConcatFstring(FstringParser *state, const char **str,
break;
/* We know we have an expression. Convert any existing string
- to a Constant node. */
+ to a Constant node. */
if (!state->last_str) {
/* Do nothing. No previous literal. */
} else {
- /* Convert the existing last_str literal to a Constant node. */
+ /* Convert the existing last_str literal to a Constant node. */
expr_ty str = make_str_node_and_del(&state->last_str, c, n);
if (!str || ExprList_Append(&state->expr_list, str) < 0)
return -1;
@@ -5570,7 +5570,7 @@ FstringParser_ConcatFstring(FstringParser *state, const char **str,
}
/* Convert the partial state reflected in last_str and expr_list to an
- expr_ty. The expr_ty can be a Constant, or a JoinedStr. */
+ expr_ty. The expr_ty can be a Constant, or a JoinedStr. */
static expr_ty
FstringParser_Finish(FstringParser *state, struct compiling *c,
const node *n)
@@ -5592,7 +5592,7 @@ FstringParser_Finish(FstringParser *state, struct compiling *c,
return make_str_node_and_del(&state->last_str, c, n);
}
- /* Create a Constant node out of last_str, if needed. It will be the
+ /* Create a Constant node out of last_str, if needed. It will be the
last node in our expression list. */
if (state->last_str) {
expr_ty str = make_str_node_and_del(&state->last_str, c, n);
@@ -5606,8 +5606,8 @@ FstringParser_Finish(FstringParser *state, struct compiling *c,
if (!seq)
goto error;
- return JoinedStr(seq, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return JoinedStr(seq, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
error:
FstringParser_Dealloc(state);
@@ -5674,13 +5674,13 @@ parsestr(struct compiling *c, const node *n, int *bytesmode, int *rawmode,
}
}
}
-
- /* fstrings are only allowed in Python 3.6 and greater */
- if (fmode && c->c_feature_version < 6) {
- ast_error(c, n, "Format strings are only supported in Python 3.6 and greater");
- return -1;
- }
-
+
+ /* fstrings are only allowed in Python 3.6 and greater */
+ if (fmode && c->c_feature_version < 6) {
+ ast_error(c, n, "Format strings are only supported in Python 3.6 and greater");
+ return -1;
+ }
+
if (fmode && *bytesmode) {
PyErr_BadInternalCall();
return -1;
@@ -5731,8 +5731,8 @@ parsestr(struct compiling *c, const node *n, int *bytesmode, int *rawmode,
const char *ch;
for (ch = s; *ch; ch++) {
if (Py_CHARMASK(*ch) >= 0x80) {
- ast_error(c, n,
- "bytes can only contain ASCII "
+ ast_error(c, n,
+ "bytes can only contain ASCII "
"literal characters.");
return -1;
}
@@ -5752,9 +5752,9 @@ parsestr(struct compiling *c, const node *n, int *bytesmode, int *rawmode,
/* Accepts a STRING+ atom, and produces an expr_ty node. Run through
each STRING atom, and process it as needed. For bytes, just
- concatenate them together, and the result will be a Constant node. For
+ concatenate them together, and the result will be a Constant node. For
normal strings and f-strings, concatenate them together. The result
- will be a Constant node if there were no f-strings; a FormattedValue
+ will be a Constant node if there were no f-strings; a FormattedValue
node if there's just an f-string (with no leading or trailing
literals), or a JoinedStr node if there are multiple f-strings or
any literals involved. */
@@ -5825,8 +5825,8 @@ parsestrplus(struct compiling *c, const node *n)
/* Just return the bytes object and we're done. */
if (PyArena_AddPyObject(c->c_arena, bytes_str) < 0)
goto error;
- return Constant(bytes_str, NULL, LINENO(n), n->n_col_offset,
- n->n_end_lineno, n->n_end_col_offset, c->c_arena);
+ return Constant(bytes_str, NULL, LINENO(n), n->n_col_offset,
+ n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
/* We're not a bytes string, bytes_str should never have been set. */
@@ -5839,20 +5839,20 @@ error:
FstringParser_Dealloc(&state);
return NULL;
}
-
-PyObject *
-_PyAST_GetDocString(asdl_seq *body)
-{
- if (!asdl_seq_LEN(body)) {
- return NULL;
- }
- stmt_ty st = (stmt_ty)asdl_seq_GET(body, 0);
- if (st->kind != Expr_kind) {
- return NULL;
- }
- expr_ty e = st->v.Expr.value;
- if (e->kind == Constant_kind && PyUnicode_CheckExact(e->v.Constant.value)) {
- return e->v.Constant.value;
- }
- return NULL;
-}
+
+PyObject *
+_PyAST_GetDocString(asdl_seq *body)
+{
+ if (!asdl_seq_LEN(body)) {
+ return NULL;
+ }
+ stmt_ty st = (stmt_ty)asdl_seq_GET(body, 0);
+ if (st->kind != Expr_kind) {
+ return NULL;
+ }
+ expr_ty e = st->v.Expr.value;
+ if (e->kind == Constant_kind && PyUnicode_CheckExact(e->v.Constant.value)) {
+ return e->v.Constant.value;
+ }
+ return NULL;
+}
diff --git a/contrib/tools/python3/src/Python/ast_opt.c b/contrib/tools/python3/src/Python/ast_opt.c
index 36e1d64f2e..ff786d6f8d 100644
--- a/contrib/tools/python3/src/Python/ast_opt.c
+++ b/contrib/tools/python3/src/Python/ast_opt.c
@@ -1,7 +1,7 @@
/* AST Optimizer */
#include "Python.h"
#include "Python-ast.h"
-#include "ast.h"
+#include "ast.h"
static int
@@ -19,7 +19,7 @@ make_const(expr_ty node, PyObject *val, PyArena *arena)
return 0;
}
node->kind = Constant_kind;
- node->v.Constant.kind = NULL;
+ node->v.Constant.kind = NULL;
node->v.Constant.value = val;
return 1;
}
@@ -36,11 +36,11 @@ unary_not(PyObject *v)
}
static int
-fold_unaryop(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
+fold_unaryop(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
{
expr_ty arg = node->v.UnaryOp.operand;
- if (arg->kind != Constant_kind) {
+ if (arg->kind != Constant_kind) {
/* Fold not into comparison */
if (node->v.UnaryOp.op == Not && arg->kind == Compare_kind &&
asdl_seq_LEN(arg->v.Compare.ops) == 1) {
@@ -82,7 +82,7 @@ fold_unaryop(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
[UAdd] = PyNumber_Positive,
[USub] = PyNumber_Negative,
};
- PyObject *newval = ops[node->v.UnaryOp.op](arg->v.Constant.value);
+ PyObject *newval = ops[node->v.UnaryOp.op](arg->v.Constant.value);
return make_const(node, newval, arena);
}
@@ -213,17 +213,17 @@ safe_mod(PyObject *v, PyObject *w)
}
static int
-fold_binop(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
+fold_binop(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
{
expr_ty lhs, rhs;
lhs = node->v.BinOp.left;
rhs = node->v.BinOp.right;
- if (lhs->kind != Constant_kind || rhs->kind != Constant_kind) {
+ if (lhs->kind != Constant_kind || rhs->kind != Constant_kind) {
return 1;
}
- PyObject *lv = lhs->v.Constant.value;
- PyObject *rv = rhs->v.Constant.value;
+ PyObject *lv = lhs->v.Constant.value;
+ PyObject *rv = rhs->v.Constant.value;
PyObject *newval;
switch (node->v.BinOp.op) {
@@ -275,7 +275,7 @@ make_const_tuple(asdl_seq *elts)
{
for (int i = 0; i < asdl_seq_LEN(elts); i++) {
expr_ty e = (expr_ty)asdl_seq_GET(elts, i);
- if (e->kind != Constant_kind) {
+ if (e->kind != Constant_kind) {
return NULL;
}
}
@@ -287,7 +287,7 @@ make_const_tuple(asdl_seq *elts)
for (int i = 0; i < asdl_seq_LEN(elts); i++) {
expr_ty e = (expr_ty)asdl_seq_GET(elts, i);
- PyObject *v = e->v.Constant.value;
+ PyObject *v = e->v.Constant.value;
Py_INCREF(v);
PyTuple_SET_ITEM(newval, i, v);
}
@@ -295,7 +295,7 @@ make_const_tuple(asdl_seq *elts)
}
static int
-fold_tuple(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
+fold_tuple(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
{
PyObject *newval;
@@ -307,50 +307,50 @@ fold_tuple(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
}
static int
-fold_subscr(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
+fold_subscr(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
{
PyObject *newval;
expr_ty arg, idx;
arg = node->v.Subscript.value;
- idx = node->v.Subscript.slice;
+ idx = node->v.Subscript.slice;
if (node->v.Subscript.ctx != Load ||
- arg->kind != Constant_kind ||
- idx->kind != Constant_kind)
+ arg->kind != Constant_kind ||
+ idx->kind != Constant_kind)
{
return 1;
}
- newval = PyObject_GetItem(arg->v.Constant.value, idx->v.Constant.value);
+ newval = PyObject_GetItem(arg->v.Constant.value, idx->v.Constant.value);
return make_const(node, newval, arena);
}
/* Change literal list or set of constants into constant
- tuple or frozenset respectively. Change literal list of
- non-constants into tuple.
+ tuple or frozenset respectively. Change literal list of
+ non-constants into tuple.
Used for right operand of "in" and "not in" tests and for iterable
in "for" loop and comprehensions.
*/
static int
-fold_iter(expr_ty arg, PyArena *arena, _PyASTOptimizeState *state)
+fold_iter(expr_ty arg, PyArena *arena, _PyASTOptimizeState *state)
{
PyObject *newval;
if (arg->kind == List_kind) {
- /* First change a list into tuple. */
- asdl_seq *elts = arg->v.List.elts;
- Py_ssize_t n = asdl_seq_LEN(elts);
- for (Py_ssize_t i = 0; i < n; i++) {
- expr_ty e = (expr_ty)asdl_seq_GET(elts, i);
- if (e->kind == Starred_kind) {
- return 1;
- }
- }
- expr_context_ty ctx = arg->v.List.ctx;
- arg->kind = Tuple_kind;
- arg->v.Tuple.elts = elts;
- arg->v.Tuple.ctx = ctx;
- /* Try to create a constant tuple. */
- newval = make_const_tuple(elts);
+ /* First change a list into tuple. */
+ asdl_seq *elts = arg->v.List.elts;
+ Py_ssize_t n = asdl_seq_LEN(elts);
+ for (Py_ssize_t i = 0; i < n; i++) {
+ expr_ty e = (expr_ty)asdl_seq_GET(elts, i);
+ if (e->kind == Starred_kind) {
+ return 1;
+ }
+ }
+ expr_context_ty ctx = arg->v.List.ctx;
+ arg->kind = Tuple_kind;
+ arg->v.Tuple.elts = elts;
+ arg->v.Tuple.ctx = ctx;
+ /* Try to create a constant tuple. */
+ newval = make_const_tuple(elts);
}
else if (arg->kind == Set_kind) {
newval = make_const_tuple(arg->v.Set.elts);
@@ -365,7 +365,7 @@ fold_iter(expr_ty arg, PyArena *arena, _PyASTOptimizeState *state)
}
static int
-fold_compare(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
+fold_compare(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
{
asdl_int_seq *ops;
asdl_seq *args;
@@ -379,28 +379,28 @@ fold_compare(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
i = asdl_seq_LEN(ops) - 1;
int op = asdl_seq_GET(ops, i);
if (op == In || op == NotIn) {
- if (!fold_iter((expr_ty)asdl_seq_GET(args, i), arena, state)) {
+ if (!fold_iter((expr_ty)asdl_seq_GET(args, i), arena, state)) {
return 0;
}
}
return 1;
}
-static int astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_comprehension(comprehension_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_keyword(keyword_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
-static int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_comprehension(comprehension_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_keyword(keyword_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
+static int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTOptimizeState *state);
#define CALL(FUNC, TYPE, ARG) \
- if (!FUNC((ARG), ctx_, state)) \
+ if (!FUNC((ARG), ctx_, state)) \
return 0;
#define CALL_OPT(FUNC, TYPE, ARG) \
- if ((ARG) != NULL && !FUNC((ARG), ctx_, state)) \
+ if ((ARG) != NULL && !FUNC((ARG), ctx_, state)) \
return 0;
#define CALL_SEQ(FUNC, TYPE, ARG) { \
@@ -408,7 +408,7 @@ static int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTOp
asdl_seq *seq = (ARG); /* avoid variable capture */ \
for (i = 0; i < asdl_seq_LEN(seq); i++) { \
TYPE elt = (TYPE)asdl_seq_GET(seq, i); \
- if (elt != NULL && !FUNC(elt, ctx_, state)) \
+ if (elt != NULL && !FUNC(elt, ctx_, state)) \
return 0; \
} \
}
@@ -418,25 +418,25 @@ static int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTOp
asdl_int_seq *seq = (ARG); /* avoid variable capture */ \
for (i = 0; i < asdl_seq_LEN(seq); i++) { \
TYPE elt = (TYPE)asdl_seq_GET(seq, i); \
- if (!FUNC(elt, ctx_, state)) \
+ if (!FUNC(elt, ctx_, state)) \
return 0; \
} \
}
static int
-astfold_body(asdl_seq *stmts, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_body(asdl_seq *stmts, PyArena *ctx_, _PyASTOptimizeState *state)
{
- int docstring = _PyAST_GetDocString(stmts) != NULL;
+ int docstring = _PyAST_GetDocString(stmts) != NULL;
CALL_SEQ(astfold_stmt, stmt_ty, stmts);
- if (!docstring && _PyAST_GetDocString(stmts) != NULL) {
- stmt_ty st = (stmt_ty)asdl_seq_GET(stmts, 0);
+ if (!docstring && _PyAST_GetDocString(stmts) != NULL) {
+ stmt_ty st = (stmt_ty)asdl_seq_GET(stmts, 0);
asdl_seq *values = _Py_asdl_seq_new(1, ctx_);
if (!values) {
return 0;
}
asdl_seq_SET(values, 0, st->v.Expr.value);
- expr_ty expr = JoinedStr(values, st->lineno, st->col_offset,
- st->end_lineno, st->end_col_offset, ctx_);
+ expr_ty expr = JoinedStr(values, st->lineno, st->col_offset,
+ st->end_lineno, st->end_col_offset, ctx_);
if (!expr) {
return 0;
}
@@ -446,7 +446,7 @@ astfold_body(asdl_seq *stmts, PyArena *ctx_, _PyASTOptimizeState *state)
}
static int
-astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
switch (node_->kind) {
case Module_kind:
@@ -465,7 +465,7 @@ astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
}
static int
-astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
switch (node_->kind) {
case BoolOp_kind:
@@ -544,17 +544,17 @@ astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
break;
case Subscript_kind:
CALL(astfold_expr, expr_ty, node_->v.Subscript.value);
- CALL(astfold_expr, expr_ty, node_->v.Subscript.slice);
+ CALL(astfold_expr, expr_ty, node_->v.Subscript.slice);
CALL(fold_subscr, expr_ty, node_);
break;
case Starred_kind:
CALL(astfold_expr, expr_ty, node_->v.Starred.value);
break;
- case Slice_kind:
- CALL_OPT(astfold_expr, expr_ty, node_->v.Slice.lower);
- CALL_OPT(astfold_expr, expr_ty, node_->v.Slice.upper);
- CALL_OPT(astfold_expr, expr_ty, node_->v.Slice.step);
- break;
+ case Slice_kind:
+ CALL_OPT(astfold_expr, expr_ty, node_->v.Slice.lower);
+ CALL_OPT(astfold_expr, expr_ty, node_->v.Slice.upper);
+ CALL_OPT(astfold_expr, expr_ty, node_->v.Slice.step);
+ break;
case List_kind:
CALL_SEQ(astfold_expr, expr_ty, node_->v.List.elts);
break;
@@ -563,9 +563,9 @@ astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
CALL(fold_tuple, expr_ty, node_);
break;
case Name_kind:
- if (node_->v.Name.ctx == Load &&
- _PyUnicode_EqualToASCIIString(node_->v.Name.id, "__debug__")) {
- return make_const(node_, PyBool_FromLong(!state->optimize), ctx_);
+ if (node_->v.Name.ctx == Load &&
+ _PyUnicode_EqualToASCIIString(node_->v.Name.id, "__debug__")) {
+ return make_const(node_, PyBool_FromLong(!state->optimize), ctx_);
}
break;
default:
@@ -575,14 +575,14 @@ astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
}
static int
-astfold_keyword(keyword_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_keyword(keyword_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
CALL(astfold_expr, expr_ty, node_->value);
return 1;
}
static int
-astfold_comprehension(comprehension_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_comprehension(comprehension_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
CALL(astfold_expr, expr_ty, node_->target);
CALL(astfold_expr, expr_ty, node_->iter);
@@ -593,9 +593,9 @@ astfold_comprehension(comprehension_ty node_, PyArena *ctx_, _PyASTOptimizeState
}
static int
-astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
- CALL_SEQ(astfold_arg, arg_ty, node_->posonlyargs);
+ CALL_SEQ(astfold_arg, arg_ty, node_->posonlyargs);
CALL_SEQ(astfold_arg, arg_ty, node_->args);
CALL_OPT(astfold_arg, arg_ty, node_->vararg);
CALL_SEQ(astfold_arg, arg_ty, node_->kwonlyargs);
@@ -606,33 +606,33 @@ astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
}
static int
-astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
- if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
- CALL_OPT(astfold_expr, expr_ty, node_->annotation);
- }
+ if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
+ CALL_OPT(astfold_expr, expr_ty, node_->annotation);
+ }
return 1;
}
static int
-astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
switch (node_->kind) {
case FunctionDef_kind:
CALL(astfold_arguments, arguments_ty, node_->v.FunctionDef.args);
CALL(astfold_body, asdl_seq, node_->v.FunctionDef.body);
CALL_SEQ(astfold_expr, expr_ty, node_->v.FunctionDef.decorator_list);
- if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
- CALL_OPT(astfold_expr, expr_ty, node_->v.FunctionDef.returns);
- }
+ if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
+ CALL_OPT(astfold_expr, expr_ty, node_->v.FunctionDef.returns);
+ }
break;
case AsyncFunctionDef_kind:
CALL(astfold_arguments, arguments_ty, node_->v.AsyncFunctionDef.args);
CALL(astfold_body, asdl_seq, node_->v.AsyncFunctionDef.body);
CALL_SEQ(astfold_expr, expr_ty, node_->v.AsyncFunctionDef.decorator_list);
- if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
- CALL_OPT(astfold_expr, expr_ty, node_->v.AsyncFunctionDef.returns);
- }
+ if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
+ CALL_OPT(astfold_expr, expr_ty, node_->v.AsyncFunctionDef.returns);
+ }
break;
case ClassDef_kind:
CALL_SEQ(astfold_expr, expr_ty, node_->v.ClassDef.bases);
@@ -656,9 +656,9 @@ astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
break;
case AnnAssign_kind:
CALL(astfold_expr, expr_ty, node_->v.AnnAssign.target);
- if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
- CALL(astfold_expr, expr_ty, node_->v.AnnAssign.annotation);
- }
+ if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
+ CALL(astfold_expr, expr_ty, node_->v.AnnAssign.annotation);
+ }
CALL_OPT(astfold_expr, expr_ty, node_->v.AnnAssign.value);
break;
case For_kind:
@@ -717,7 +717,7 @@ astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
}
static int
-astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
switch (node_->kind) {
case ExceptHandler_kind:
@@ -731,7 +731,7 @@ astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, _PyASTOptimizeState
}
static int
-astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
{
CALL(astfold_expr, expr_ty, node_->context_expr);
CALL_OPT(astfold_expr, expr_ty, node_->optional_vars);
@@ -744,9 +744,9 @@ astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
#undef CALL_INT_SEQ
int
-_PyAST_Optimize(mod_ty mod, PyArena *arena, _PyASTOptimizeState *state)
+_PyAST_Optimize(mod_ty mod, PyArena *arena, _PyASTOptimizeState *state)
{
- int ret = astfold_mod(mod, arena, state);
+ int ret = astfold_mod(mod, arena, state);
assert(ret || PyErr_Occurred());
return ret;
}
diff --git a/contrib/tools/python3/src/Python/ast_unparse.c b/contrib/tools/python3/src/Python/ast_unparse.c
index 99610d2661..e699751a05 100644
--- a/contrib/tools/python3/src/Python/ast_unparse.c
+++ b/contrib/tools/python3/src/Python/ast_unparse.c
@@ -1,4 +1,4 @@
-#include <float.h> /* DBL_MAX_10_EXP */
+#include <float.h> /* DBL_MAX_10_EXP */
#include <stdbool.h>
#include "Python.h"
#include "Python-ast.h"
@@ -7,8 +7,8 @@ static PyObject *_str_open_br;
static PyObject *_str_dbl_open_br;
static PyObject *_str_close_br;
static PyObject *_str_dbl_close_br;
-static PyObject *_str_inf;
-static PyObject *_str_replace_inf;
+static PyObject *_str_inf;
+static PyObject *_str_replace_inf;
/* Forward declarations for recursion via helper functions. */
static PyObject *
@@ -18,9 +18,9 @@ append_ast_expr(_PyUnicodeWriter *writer, expr_ty e, int level);
static int
append_joinedstr(_PyUnicodeWriter *writer, expr_ty e, bool is_format_spec);
static int
-append_formattedvalue(_PyUnicodeWriter *writer, expr_ty e);
+append_formattedvalue(_PyUnicodeWriter *writer, expr_ty e);
static int
-append_ast_slice(_PyUnicodeWriter *writer, expr_ty e);
+append_ast_slice(_PyUnicodeWriter *writer, expr_ty e);
static int
append_charp(_PyUnicodeWriter *writer, const char *charp)
@@ -64,28 +64,28 @@ append_charp(_PyUnicodeWriter *writer, const char *charp)
static int
append_repr(_PyUnicodeWriter *writer, PyObject *obj)
{
- PyObject *repr = PyObject_Repr(obj);
-
+ PyObject *repr = PyObject_Repr(obj);
+
if (!repr) {
return -1;
}
-
- if ((PyFloat_CheckExact(obj) && Py_IS_INFINITY(PyFloat_AS_DOUBLE(obj))) ||
- PyComplex_CheckExact(obj))
- {
- PyObject *new_repr = PyUnicode_Replace(
- repr,
- _str_inf,
- _str_replace_inf,
- -1
- );
- Py_DECREF(repr);
- if (!new_repr) {
- return -1;
- }
- repr = new_repr;
- }
- int ret = _PyUnicodeWriter_WriteStr(writer, repr);
+
+ if ((PyFloat_CheckExact(obj) && Py_IS_INFINITY(PyFloat_AS_DOUBLE(obj))) ||
+ PyComplex_CheckExact(obj))
+ {
+ PyObject *new_repr = PyUnicode_Replace(
+ repr,
+ _str_inf,
+ _str_replace_inf,
+ -1
+ );
+ Py_DECREF(repr);
+ if (!new_repr) {
+ return -1;
+ }
+ repr = new_repr;
+ }
+ int ret = _PyUnicodeWriter_WriteStr(writer, repr);
Py_DECREF(repr);
return ret;
}
@@ -211,30 +211,30 @@ static int
append_ast_args(_PyUnicodeWriter *writer, arguments_ty args)
{
bool first;
- Py_ssize_t i, di, arg_count, posonlyarg_count, default_count;
+ Py_ssize_t i, di, arg_count, posonlyarg_count, default_count;
first = true;
- /* positional-only and positional arguments with defaults */
- posonlyarg_count = asdl_seq_LEN(args->posonlyargs);
+ /* positional-only and positional arguments with defaults */
+ posonlyarg_count = asdl_seq_LEN(args->posonlyargs);
arg_count = asdl_seq_LEN(args->args);
default_count = asdl_seq_LEN(args->defaults);
- for (i = 0; i < posonlyarg_count + arg_count; i++) {
+ for (i = 0; i < posonlyarg_count + arg_count; i++) {
APPEND_STR_IF_NOT_FIRST(", ");
- if (i < posonlyarg_count){
- APPEND(arg, (arg_ty)asdl_seq_GET(args->posonlyargs, i));
- } else {
- APPEND(arg, (arg_ty)asdl_seq_GET(args->args, i-posonlyarg_count));
- }
+ if (i < posonlyarg_count){
+ APPEND(arg, (arg_ty)asdl_seq_GET(args->posonlyargs, i));
+ } else {
+ APPEND(arg, (arg_ty)asdl_seq_GET(args->args, i-posonlyarg_count));
+ }
- di = i - posonlyarg_count - arg_count + default_count;
+ di = i - posonlyarg_count - arg_count + default_count;
if (di >= 0) {
APPEND_STR("=");
APPEND_EXPR((expr_ty)asdl_seq_GET(args->defaults, di), PR_TEST);
}
- if (posonlyarg_count && i + 1 == posonlyarg_count) {
- APPEND_STR(", /");
- }
+ if (posonlyarg_count && i + 1 == posonlyarg_count) {
+ APPEND_STR(", /");
+ }
}
/* vararg, or bare '*' if no varargs but keyword-only arguments present */
@@ -277,9 +277,9 @@ static int
append_ast_lambda(_PyUnicodeWriter *writer, expr_ty e, int level)
{
APPEND_STR_IF(level > PR_TEST, "(");
- Py_ssize_t n_positional = (asdl_seq_LEN(e->v.Lambda.args->args) +
- asdl_seq_LEN(e->v.Lambda.args->posonlyargs));
- APPEND_STR(n_positional ? "lambda " : "lambda");
+ Py_ssize_t n_positional = (asdl_seq_LEN(e->v.Lambda.args->args) +
+ asdl_seq_LEN(e->v.Lambda.args->posonlyargs));
+ APPEND_STR(n_positional ? "lambda " : "lambda");
APPEND(args, e->v.Lambda.args);
APPEND_STR(": ");
APPEND_EXPR(e->v.Lambda.body, PR_TEST);
@@ -601,7 +601,7 @@ append_fstring_element(_PyUnicodeWriter *writer, expr_ty e, bool is_format_spec)
case JoinedStr_kind:
return append_joinedstr(writer, e, is_format_spec);
case FormattedValue_kind:
- return append_formattedvalue(writer, e);
+ return append_formattedvalue(writer, e);
default:
PyErr_SetString(PyExc_SystemError,
"unknown expression kind inside f-string");
@@ -658,7 +658,7 @@ append_joinedstr(_PyUnicodeWriter *writer, expr_ty e, bool is_format_spec)
}
static int
-append_formattedvalue(_PyUnicodeWriter *writer, expr_ty e)
+append_formattedvalue(_PyUnicodeWriter *writer, expr_ty e)
{
const char *conversion;
const char *outer_brace = "{";
@@ -716,37 +716,37 @@ append_formattedvalue(_PyUnicodeWriter *writer, expr_ty e)
}
static int
-append_ast_constant(_PyUnicodeWriter *writer, PyObject *constant)
-{
- if (PyTuple_CheckExact(constant)) {
- Py_ssize_t i, elem_count;
-
- elem_count = PyTuple_GET_SIZE(constant);
- APPEND_STR("(");
- for (i = 0; i < elem_count; i++) {
- APPEND_STR_IF(i > 0, ", ");
- if (append_ast_constant(writer, PyTuple_GET_ITEM(constant, i)) < 0) {
- return -1;
- }
- }
-
- APPEND_STR_IF(elem_count == 1, ",");
- APPEND_STR(")");
- return 0;
- }
- return append_repr(writer, constant);
-}
-
-static int
+append_ast_constant(_PyUnicodeWriter *writer, PyObject *constant)
+{
+ if (PyTuple_CheckExact(constant)) {
+ Py_ssize_t i, elem_count;
+
+ elem_count = PyTuple_GET_SIZE(constant);
+ APPEND_STR("(");
+ for (i = 0; i < elem_count; i++) {
+ APPEND_STR_IF(i > 0, ", ");
+ if (append_ast_constant(writer, PyTuple_GET_ITEM(constant, i)) < 0) {
+ return -1;
+ }
+ }
+
+ APPEND_STR_IF(elem_count == 1, ",");
+ APPEND_STR(")");
+ return 0;
+ }
+ return append_repr(writer, constant);
+}
+
+static int
append_ast_attribute(_PyUnicodeWriter *writer, expr_ty e)
{
const char *period;
- expr_ty v = e->v.Attribute.value;
- APPEND_EXPR(v, PR_ATOM);
+ expr_ty v = e->v.Attribute.value;
+ APPEND_EXPR(v, PR_ATOM);
/* Special case: integers require a space for attribute access to be
- unambiguous. */
- if (v->kind == Constant_kind && PyLong_CheckExact(v->v.Constant.value)) {
+ unambiguous. */
+ if (v->kind == Constant_kind && PyLong_CheckExact(v->v.Constant.value)) {
period = " .";
}
else {
@@ -758,42 +758,42 @@ append_ast_attribute(_PyUnicodeWriter *writer, expr_ty e)
}
static int
-append_ast_slice(_PyUnicodeWriter *writer, expr_ty e)
+append_ast_slice(_PyUnicodeWriter *writer, expr_ty e)
{
- if (e->v.Slice.lower) {
- APPEND_EXPR(e->v.Slice.lower, PR_TEST);
+ if (e->v.Slice.lower) {
+ APPEND_EXPR(e->v.Slice.lower, PR_TEST);
}
APPEND_STR(":");
- if (e->v.Slice.upper) {
- APPEND_EXPR(e->v.Slice.upper, PR_TEST);
+ if (e->v.Slice.upper) {
+ APPEND_EXPR(e->v.Slice.upper, PR_TEST);
}
- if (e->v.Slice.step) {
+ if (e->v.Slice.step) {
APPEND_STR(":");
- APPEND_EXPR(e->v.Slice.step, PR_TEST);
+ APPEND_EXPR(e->v.Slice.step, PR_TEST);
}
return 0;
}
static int
-append_ast_subscript(_PyUnicodeWriter *writer, expr_ty e)
+append_ast_subscript(_PyUnicodeWriter *writer, expr_ty e)
{
- APPEND_EXPR(e->v.Subscript.value, PR_ATOM);
- int level = PR_TUPLE;
- expr_ty slice = e->v.Subscript.slice;
- if (slice->kind == Tuple_kind) {
- for (Py_ssize_t i = 0; i < asdl_seq_LEN(slice->v.Tuple.elts); i++) {
- expr_ty element = asdl_seq_GET(slice->v.Tuple.elts, i);
- if (element->kind == Starred_kind) {
- ++level;
- break;
- }
- }
- }
+ APPEND_EXPR(e->v.Subscript.value, PR_ATOM);
+ int level = PR_TUPLE;
+ expr_ty slice = e->v.Subscript.slice;
+ if (slice->kind == Tuple_kind) {
+ for (Py_ssize_t i = 0; i < asdl_seq_LEN(slice->v.Tuple.elts); i++) {
+ expr_ty element = asdl_seq_GET(slice->v.Tuple.elts, i);
+ if (element->kind == Starred_kind) {
+ ++level;
+ break;
+ }
+ }
+ }
APPEND_STR("[");
- APPEND_EXPR(e->v.Subscript.slice, level);
+ APPEND_EXPR(e->v.Subscript.slice, level);
APPEND_STR_FINISH("]");
}
@@ -836,17 +836,17 @@ append_ast_await(_PyUnicodeWriter *writer, expr_ty e, int level)
}
static int
-append_named_expr(_PyUnicodeWriter *writer, expr_ty e, int level)
-{
- APPEND_STR_IF(level > PR_TUPLE, "(");
- APPEND_EXPR(e->v.NamedExpr.target, PR_ATOM);
- APPEND_STR(" := ");
- APPEND_EXPR(e->v.NamedExpr.value, PR_ATOM);
- APPEND_STR_IF(level > PR_TUPLE, ")");
- return 0;
-}
-
-static int
+append_named_expr(_PyUnicodeWriter *writer, expr_ty e, int level)
+{
+ APPEND_STR_IF(level > PR_TUPLE, "(");
+ APPEND_EXPR(e->v.NamedExpr.target, PR_ATOM);
+ APPEND_STR(" := ");
+ APPEND_EXPR(e->v.NamedExpr.value, PR_ATOM);
+ APPEND_STR_IF(level > PR_TUPLE, ")");
+ return 0;
+}
+
+static int
append_ast_expr(_PyUnicodeWriter *writer, expr_ty e, int level)
{
switch (e->kind) {
@@ -883,18 +883,18 @@ append_ast_expr(_PyUnicodeWriter *writer, expr_ty e, int level)
case Call_kind:
return append_ast_call(writer, e);
case Constant_kind:
- if (e->v.Constant.value == Py_Ellipsis) {
- APPEND_STR_FINISH("...");
- }
- if (e->v.Constant.kind != NULL
- && -1 == _PyUnicodeWriter_WriteStr(writer, e->v.Constant.kind)) {
- return -1;
- }
- return append_ast_constant(writer, e->v.Constant.value);
+ if (e->v.Constant.value == Py_Ellipsis) {
+ APPEND_STR_FINISH("...");
+ }
+ if (e->v.Constant.kind != NULL
+ && -1 == _PyUnicodeWriter_WriteStr(writer, e->v.Constant.kind)) {
+ return -1;
+ }
+ return append_ast_constant(writer, e->v.Constant.value);
case JoinedStr_kind:
return append_joinedstr(writer, e, false);
case FormattedValue_kind:
- return append_formattedvalue(writer, e);
+ return append_formattedvalue(writer, e);
/* The following exprs can be assignment targets. */
case Attribute_kind:
return append_ast_attribute(writer, e);
@@ -902,16 +902,16 @@ append_ast_expr(_PyUnicodeWriter *writer, expr_ty e, int level)
return append_ast_subscript(writer, e);
case Starred_kind:
return append_ast_starred(writer, e);
- case Slice_kind:
- return append_ast_slice(writer, e);
+ case Slice_kind:
+ return append_ast_slice(writer, e);
case Name_kind:
return _PyUnicodeWriter_WriteStr(writer, e->v.Name.id);
case List_kind:
return append_ast_list(writer, e);
case Tuple_kind:
return append_ast_tuple(writer, e, level);
- case NamedExpr_kind:
- return append_named_expr(writer, e, level);
+ case NamedExpr_kind:
+ return append_named_expr(writer, e, level);
default:
PyErr_SetString(PyExc_SystemError,
"unknown expression kind");
@@ -938,14 +938,14 @@ maybe_init_static_strings(void)
!(_str_dbl_close_br = PyUnicode_InternFromString("}}"))) {
return -1;
}
- if (!_str_inf &&
- !(_str_inf = PyUnicode_FromString("inf"))) {
- return -1;
- }
- if (!_str_replace_inf &&
- !(_str_replace_inf = PyUnicode_FromFormat("1e%d", 1 + DBL_MAX_10_EXP))) {
- return -1;
- }
+ if (!_str_inf &&
+ !(_str_inf = PyUnicode_FromString("inf"))) {
+ return -1;
+ }
+ if (!_str_replace_inf &&
+ !(_str_replace_inf = PyUnicode_FromFormat("1e%d", 1 + DBL_MAX_10_EXP))) {
+ return -1;
+ }
return 0;
}
diff --git a/contrib/tools/python3/src/Python/bltinmodule.c b/contrib/tools/python3/src/Python/bltinmodule.c
index f2495b2578..21c70f9a6c 100644
--- a/contrib/tools/python3/src/Python/bltinmodule.c
+++ b/contrib/tools/python3/src/Python/bltinmodule.c
@@ -1,13 +1,13 @@
/* Built-in functions */
#include "Python.h"
-#include <ctype.h>
+#include <ctype.h>
#include "ast.h"
-#undef Yield /* undefine macro conflicting with <winbase.h> */
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_tupleobject.h"
+#undef Yield /* undefine macro conflicting with <winbase.h> */
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_tupleobject.h"
_Py_IDENTIFIER(__builtins__);
_Py_IDENTIFIER(__dict__);
@@ -56,7 +56,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs)
}
continue;
}
- new_base = PyObject_CallOneArg(meth, bases);
+ new_base = PyObject_CallOneArg(meth, bases);
Py_DECREF(meth);
if (!new_base) {
goto error;
@@ -71,7 +71,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs)
/* If this is a first successful replacement, create new_bases list and
copy previously encountered bases. */
if (!(new_bases = PyList_New(i))) {
- Py_DECREF(new_base);
+ Py_DECREF(new_base);
goto error;
}
for (j = 0; j < i; j++) {
@@ -82,7 +82,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs)
}
j = PyList_GET_SIZE(new_bases);
if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {
- Py_DECREF(new_base);
+ Py_DECREF(new_base);
goto error;
}
Py_DECREF(new_base);
@@ -104,9 +104,9 @@ static PyObject *
builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
PyObject *kwnames)
{
- PyObject *func, *name, *winner, *prep;
- PyObject *cls = NULL, *cell = NULL, *ns = NULL, *meta = NULL, *orig_bases = NULL;
- PyObject *mkw = NULL, *bases = NULL;
+ PyObject *func, *name, *winner, *prep;
+ PyObject *cls = NULL, *cell = NULL, *ns = NULL, *meta = NULL, *orig_bases = NULL;
+ PyObject *mkw = NULL, *bases = NULL;
int isclass = 0; /* initialize to prevent gcc warning */
if (nargs < 2) {
@@ -126,7 +126,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
"__build_class__: name is not a string");
return NULL;
}
- orig_bases = _PyTuple_FromArray(args + 2, nargs - 2);
+ orig_bases = _PyTuple_FromArray(args + 2, nargs - 2);
if (orig_bases == NULL)
return NULL;
@@ -143,21 +143,21 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
else {
mkw = _PyStack_AsDict(args + nargs, kwnames);
if (mkw == NULL) {
- goto error;
+ goto error;
}
- meta = _PyDict_GetItemIdWithError(mkw, &PyId_metaclass);
+ meta = _PyDict_GetItemIdWithError(mkw, &PyId_metaclass);
if (meta != NULL) {
Py_INCREF(meta);
if (_PyDict_DelItemId(mkw, &PyId_metaclass) < 0) {
- goto error;
+ goto error;
}
/* metaclass is explicitly given, check if it's indeed a class */
isclass = PyType_Check(meta);
}
- else if (PyErr_Occurred()) {
- goto error;
- }
+ else if (PyErr_Occurred()) {
+ goto error;
+ }
}
if (meta == NULL) {
/* if there are no bases, use type: */
@@ -167,7 +167,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
/* else get the type of the first base */
else {
PyObject *base0 = PyTuple_GET_ITEM(bases, 0);
- meta = (PyObject *)Py_TYPE(base0);
+ meta = (PyObject *)Py_TYPE(base0);
}
Py_INCREF(meta);
isclass = 1; /* meta is really a class */
@@ -179,7 +179,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
winner = (PyObject *)_PyType_CalculateMetaclass((PyTypeObject *)meta,
bases);
if (winner == NULL) {
- goto error;
+ goto error;
}
if (winner != meta) {
Py_DECREF(meta);
@@ -197,11 +197,11 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
}
else {
PyObject *pargs[2] = {name, bases};
- ns = PyObject_VectorcallDict(prep, pargs, 2, mkw);
+ ns = PyObject_VectorcallDict(prep, pargs, 2, mkw);
Py_DECREF(prep);
}
if (ns == NULL) {
- goto error;
+ goto error;
}
if (!PyMapping_Check(ns)) {
PyErr_Format(PyExc_TypeError,
@@ -220,7 +220,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
}
}
PyObject *margs[3] = {name, bases, ns};
- cls = PyObject_VectorcallDict(meta, margs, 3, mkw);
+ cls = PyObject_VectorcallDict(meta, margs, 3, mkw);
if (cls != NULL && PyType_Check(cls) && PyCell_Check(cell)) {
PyObject *cell_cls = PyCell_GET(cell);
if (cell_cls != cls) {
@@ -228,32 +228,32 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
const char *msg =
"__class__ not set defining %.200R as %.200R. "
"Was __classcell__ propagated to type.__new__?";
- PyErr_Format(PyExc_RuntimeError, msg, name, cls);
+ PyErr_Format(PyExc_RuntimeError, msg, name, cls);
} else {
const char *msg =
"__class__ set to %.200R defining %.200R as %.200R";
PyErr_Format(PyExc_TypeError, msg, cell_cls, name, cls);
}
- Py_DECREF(cls);
- cls = NULL;
- goto error;
+ Py_DECREF(cls);
+ cls = NULL;
+ goto error;
}
}
}
error:
Py_XDECREF(cell);
- Py_XDECREF(ns);
- Py_XDECREF(meta);
+ Py_XDECREF(ns);
+ Py_XDECREF(meta);
Py_XDECREF(mkw);
if (bases != orig_bases) {
Py_DECREF(orig_bases);
}
- Py_DECREF(bases);
+ Py_DECREF(bases);
return cls;
}
PyDoc_STRVAR(build_class_doc,
-"__build_class__(func, name, /, *bases, [metaclass], **kwds) -> class\n\
+"__build_class__(func, name, /, *bases, [metaclass], **kwds) -> class\n\
\n\
Internal helper function used by the class statement.");
@@ -474,13 +474,13 @@ builtin_breakpoint(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
PyErr_SetString(PyExc_RuntimeError, "lost sys.breakpointhook");
return NULL;
}
-
- if (PySys_Audit("builtins.breakpoint", "O", hook) < 0) {
- return NULL;
- }
-
+
+ if (PySys_Audit("builtins.breakpoint", "O", hook) < 0) {
+ return NULL;
+ }
+
Py_INCREF(hook);
- PyObject *retval = PyObject_Vectorcall(hook, args, nargs, keywords);
+ PyObject *retval = PyObject_Vectorcall(hook, args, nargs, keywords);
Py_DECREF(hook);
return retval;
}
@@ -566,7 +566,7 @@ filter_next(filterobject *lz)
ok = PyObject_IsTrue(item);
} else {
PyObject *good;
- good = PyObject_CallOneArg(lz->func, item);
+ good = PyObject_CallOneArg(lz->func, item);
if (good == NULL) {
Py_DECREF(item);
return NULL;
@@ -583,7 +583,7 @@ filter_next(filterobject *lz)
}
static PyObject *
-filter_reduce(filterobject *lz, PyObject *Py_UNUSED(ignored))
+filter_reduce(filterobject *lz, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->func, lz->it);
}
@@ -608,10 +608,10 @@ PyTypeObject PyFilter_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)filter_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -693,8 +693,8 @@ compile as builtin_compile
flags: int = 0
dont_inherit: bool(accept={int}) = False
optimize: int = -1
- *
- _feature_version as feature_version: int = -1
+ *
+ _feature_version as feature_version: int = -1
Compile source into a code object that can be executed by exec() or eval().
@@ -713,24 +713,24 @@ in addition to any features explicitly specified.
static PyObject *
builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
const char *mode, int flags, int dont_inherit,
- int optimize, int feature_version)
-/*[clinic end generated code: output=b0c09c84f116d3d7 input=40171fb92c1d580d]*/
+ int optimize, int feature_version)
+/*[clinic end generated code: output=b0c09c84f116d3d7 input=40171fb92c1d580d]*/
{
PyObject *source_copy;
const char *str;
int compile_mode = -1;
int is_ast;
- int start[] = {Py_file_input, Py_eval_input, Py_single_input, Py_func_type_input};
+ int start[] = {Py_file_input, Py_eval_input, Py_single_input, Py_func_type_input};
PyObject *result;
- PyCompilerFlags cf = _PyCompilerFlags_INIT;
+ PyCompilerFlags cf = _PyCompilerFlags_INIT;
cf.cf_flags = flags | PyCF_SOURCE_IS_UTF8;
- if (feature_version >= 0 && (flags & PyCF_ONLY_AST)) {
- cf.cf_feature_version = feature_version;
- }
+ if (feature_version >= 0 && (flags & PyCF_ONLY_AST)) {
+ cf.cf_feature_version = feature_version;
+ }
if (flags &
- ~(PyCF_MASK | PyCF_MASK_OBSOLETE | PyCF_COMPILE_MASK))
+ ~(PyCF_MASK | PyCF_MASK_OBSOLETE | PyCF_COMPILE_MASK))
{
PyErr_SetString(PyExc_ValueError,
"compile(): unrecognised flags");
@@ -754,21 +754,21 @@ builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
compile_mode = 1;
else if (strcmp(mode, "single") == 0)
compile_mode = 2;
- else if (strcmp(mode, "func_type") == 0) {
- if (!(flags & PyCF_ONLY_AST)) {
- PyErr_SetString(PyExc_ValueError,
- "compile() mode 'func_type' requires flag PyCF_ONLY_AST");
- goto error;
- }
- compile_mode = 3;
- }
+ else if (strcmp(mode, "func_type") == 0) {
+ if (!(flags & PyCF_ONLY_AST)) {
+ PyErr_SetString(PyExc_ValueError,
+ "compile() mode 'func_type' requires flag PyCF_ONLY_AST");
+ goto error;
+ }
+ compile_mode = 3;
+ }
else {
- const char *msg;
- if (flags & PyCF_ONLY_AST)
- msg = "compile() mode must be 'exec', 'eval', 'single' or 'func_type'";
- else
- msg = "compile() mode must be 'exec', 'eval' or 'single'";
- PyErr_SetString(PyExc_ValueError, msg);
+ const char *msg;
+ if (flags & PyCF_ONLY_AST)
+ msg = "compile() mode must be 'exec', 'eval', 'single' or 'func_type'";
+ else
+ msg = "compile() mode must be 'exec', 'eval' or 'single'";
+ PyErr_SetString(PyExc_ValueError, msg);
goto error;
}
@@ -803,12 +803,12 @@ builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
goto finally;
}
- str = _Py_SourceAsString(source, "compile", "string, bytes or AST", &cf, &source_copy);
+ str = _Py_SourceAsString(source, "compile", "string, bytes or AST", &cf, &source_copy);
if (str == NULL)
goto error;
result = Py_CompileStringObject(str, filename, start[compile_mode], &cf, optimize);
-
+
Py_XDECREF(source_copy);
goto finally;
@@ -915,31 +915,31 @@ builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals,
return NULL;
}
- if (_PyDict_GetItemIdWithError(globals, &PyId___builtins__) == NULL) {
+ if (_PyDict_GetItemIdWithError(globals, &PyId___builtins__) == NULL) {
if (_PyDict_SetItemId(globals, &PyId___builtins__,
PyEval_GetBuiltins()) != 0)
return NULL;
}
- else if (PyErr_Occurred()) {
- return NULL;
- }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
if (PyCode_Check(source)) {
- if (PySys_Audit("exec", "O", source) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("exec", "O", source) < 0) {
+ return NULL;
+ }
+
if (PyCode_GetNumFree((PyCodeObject *)source) > 0) {
PyErr_SetString(PyExc_TypeError,
- "code object passed to eval() may not contain free variables");
+ "code object passed to eval() may not contain free variables");
return NULL;
}
return PyEval_EvalCode(source, globals, locals);
}
- PyCompilerFlags cf = _PyCompilerFlags_INIT;
+ PyCompilerFlags cf = _PyCompilerFlags_INIT;
cf.cf_flags = PyCF_SOURCE_IS_UTF8;
- str = _Py_SourceAsString(source, "eval", "string, bytes or code", &cf, &source_copy);
+ str = _Py_SourceAsString(source, "eval", "string, bytes or code", &cf, &source_copy);
if (str == NULL)
return NULL;
@@ -994,29 +994,29 @@ builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
if (!PyDict_Check(globals)) {
PyErr_Format(PyExc_TypeError, "exec() globals must be a dict, not %.100s",
- Py_TYPE(globals)->tp_name);
+ Py_TYPE(globals)->tp_name);
return NULL;
}
if (!PyMapping_Check(locals)) {
PyErr_Format(PyExc_TypeError,
"locals must be a mapping or None, not %.100s",
- Py_TYPE(locals)->tp_name);
+ Py_TYPE(locals)->tp_name);
return NULL;
}
- if (_PyDict_GetItemIdWithError(globals, &PyId___builtins__) == NULL) {
+ if (_PyDict_GetItemIdWithError(globals, &PyId___builtins__) == NULL) {
if (_PyDict_SetItemId(globals, &PyId___builtins__,
PyEval_GetBuiltins()) != 0)
return NULL;
}
- else if (PyErr_Occurred()) {
- return NULL;
- }
+ else if (PyErr_Occurred()) {
+ return NULL;
+ }
if (PyCode_Check(source)) {
- if (PySys_Audit("exec", "O", source) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("exec", "O", source) < 0) {
+ return NULL;
+ }
+
if (PyCode_GetNumFree((PyCodeObject *)source) > 0) {
PyErr_SetString(PyExc_TypeError,
"code object passed to exec() may not "
@@ -1028,9 +1028,9 @@ builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
else {
PyObject *source_copy;
const char *str;
- PyCompilerFlags cf = _PyCompilerFlags_INIT;
+ PyCompilerFlags cf = _PyCompilerFlags_INIT;
cf.cf_flags = PyCF_SOURCE_IS_UTF8;
- str = _Py_SourceAsString(source, "exec",
+ str = _Py_SourceAsString(source, "exec",
"string, bytes or code", &cf,
&source_copy);
if (str == NULL)
@@ -1053,21 +1053,21 @@ builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
static PyObject *
builtin_getattr(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
- PyObject *v, *name, *result;
+ PyObject *v, *name, *result;
- if (!_PyArg_CheckPositional("getattr", nargs, 2, 3))
+ if (!_PyArg_CheckPositional("getattr", nargs, 2, 3))
return NULL;
- v = args[0];
- name = args[1];
+ v = args[0];
+ name = args[1];
if (!PyUnicode_Check(name)) {
PyErr_SetString(PyExc_TypeError,
"getattr(): attribute name must be string");
return NULL;
}
- if (nargs > 2) {
+ if (nargs > 2) {
if (_PyObject_LookupAttr(v, name, &result) == 0) {
- PyObject *dflt = args[2];
+ PyObject *dflt = args[2];
Py_INCREF(dflt);
return dflt;
}
@@ -1162,14 +1162,14 @@ static PyObject *
builtin_id(PyModuleDef *self, PyObject *v)
/*[clinic end generated code: output=0aa640785f697f65 input=5a534136419631f4]*/
{
- PyObject *id = PyLong_FromVoidPtr(v);
-
- if (id && PySys_Audit("builtins.id", "O", id) < 0) {
- Py_DECREF(id);
- return NULL;
- }
-
- return id;
+ PyObject *id = PyLong_FromVoidPtr(v);
+
+ if (id && PySys_Audit("builtins.id", "O", id) < 0) {
+ Py_DECREF(id);
+ return NULL;
+ }
+
+ return id;
}
@@ -1249,22 +1249,22 @@ map_next(mapobject *lz)
PyObject *small_stack[_PY_FASTCALL_SMALL_STACK];
PyObject **stack;
PyObject *result = NULL;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
- const Py_ssize_t niters = PyTuple_GET_SIZE(lz->iters);
+ const Py_ssize_t niters = PyTuple_GET_SIZE(lz->iters);
if (niters <= (Py_ssize_t)Py_ARRAY_LENGTH(small_stack)) {
stack = small_stack;
}
else {
stack = PyMem_Malloc(niters * sizeof(stack[0]));
if (stack == NULL) {
- _PyErr_NoMemory(tstate);
+ _PyErr_NoMemory(tstate);
return NULL;
}
}
- Py_ssize_t nargs = 0;
- for (Py_ssize_t i=0; i < niters; i++) {
+ Py_ssize_t nargs = 0;
+ for (Py_ssize_t i=0; i < niters; i++) {
PyObject *it = PyTuple_GET_ITEM(lz->iters, i);
PyObject *val = Py_TYPE(it)->tp_iternext(it);
if (val == NULL) {
@@ -1274,10 +1274,10 @@ map_next(mapobject *lz)
nargs++;
}
- result = _PyObject_VectorcallTstate(tstate, lz->func, stack, nargs, NULL);
+ result = _PyObject_VectorcallTstate(tstate, lz->func, stack, nargs, NULL);
exit:
- for (Py_ssize_t i=0; i < nargs; i++) {
+ for (Py_ssize_t i=0; i < nargs; i++) {
Py_DECREF(stack[i]);
}
if (stack != small_stack) {
@@ -1287,7 +1287,7 @@ exit:
}
static PyObject *
-map_reduce(mapobject *lz, PyObject *Py_UNUSED(ignored))
+map_reduce(mapobject *lz, PyObject *Py_UNUSED(ignored))
{
Py_ssize_t numargs = PyTuple_GET_SIZE(lz->iters);
PyObject *args = PyTuple_New(numargs+1);
@@ -1324,10 +1324,10 @@ PyTypeObject PyMap_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)map_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -1368,22 +1368,22 @@ builtin_next(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *it, *res;
- if (!_PyArg_CheckPositional("next", nargs, 1, 2))
+ if (!_PyArg_CheckPositional("next", nargs, 1, 2))
return NULL;
- it = args[0];
+ it = args[0];
if (!PyIter_Check(it)) {
PyErr_Format(PyExc_TypeError,
"'%.200s' object is not an iterator",
- Py_TYPE(it)->tp_name);
+ Py_TYPE(it)->tp_name);
return NULL;
}
- res = (*Py_TYPE(it)->tp_iternext)(it);
+ res = (*Py_TYPE(it)->tp_iternext)(it);
if (res != NULL) {
return res;
- } else if (nargs > 1) {
- PyObject *def = args[1];
+ } else if (nargs > 1) {
+ PyObject *def = args[1];
if (PyErr_Occurred()) {
if(!PyErr_ExceptionMatches(PyExc_StopIteration))
return NULL;
@@ -1499,22 +1499,22 @@ builtin_hex(PyObject *module, PyObject *number)
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
static PyObject *
-builtin_iter(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
+builtin_iter(PyObject *self, PyObject *const *args, Py_ssize_t nargs)
{
- PyObject *v;
+ PyObject *v;
- if (!_PyArg_CheckPositional("iter", nargs, 1, 2))
+ if (!_PyArg_CheckPositional("iter", nargs, 1, 2))
return NULL;
- v = args[0];
- if (nargs == 1)
+ v = args[0];
+ if (nargs == 1)
return PyObject_GetIter(v);
if (!PyCallable_Check(v)) {
PyErr_SetString(PyExc_TypeError,
"iter(v, w): v must be callable");
return NULL;
}
- PyObject *sentinel = args[1];
- return PyCallIter_New(v, sentinel);
+ PyObject *sentinel = args[1];
+ return PyCallIter_New(v, sentinel);
}
PyDoc_STRVAR(iter_doc,
@@ -1582,15 +1582,15 @@ min_max(PyObject *args, PyObject *kwds, int op)
const int positional = PyTuple_Size(args) > 1;
int ret;
- if (positional) {
+ if (positional) {
v = args;
- }
- else if (!PyArg_UnpackTuple(args, name, 1, 1, &v)) {
- if (PyExceptionClass_Check(PyExc_TypeError)) {
- PyErr_Format(PyExc_TypeError, "%s expected at least 1 argument, got 0", name);
- }
+ }
+ else if (!PyArg_UnpackTuple(args, name, 1, 1, &v)) {
+ if (PyExceptionClass_Check(PyExc_TypeError)) {
+ PyErr_Format(PyExc_TypeError, "%s expected at least 1 argument, got 0", name);
+ }
return NULL;
- }
+ }
emptytuple = PyTuple_New(0);
if (emptytuple == NULL)
@@ -1614,16 +1614,16 @@ min_max(PyObject *args, PyObject *kwds, int op)
return NULL;
}
- if (keyfunc == Py_None) {
- keyfunc = NULL;
- }
-
+ if (keyfunc == Py_None) {
+ keyfunc = NULL;
+ }
+
maxitem = NULL; /* the result */
maxval = NULL; /* the value associated with the result */
while (( item = PyIter_Next(it) )) {
/* get the value from the key function */
if (keyfunc != NULL) {
- val = PyObject_CallOneArg(keyfunc, item);
+ val = PyObject_CallOneArg(keyfunc, item);
if (val == NULL)
goto Fail_it_item;
}
@@ -1780,7 +1780,7 @@ builtin_ord(PyObject *module, PyObject *c)
else {
PyErr_Format(PyExc_TypeError,
"ord() expected string of length 1, but " \
- "%.200s found", Py_TYPE(c)->tp_name);
+ "%.200s found", Py_TYPE(c)->tp_name);
return NULL;
}
@@ -1795,22 +1795,22 @@ builtin_ord(PyObject *module, PyObject *c)
/*[clinic input]
pow as builtin_pow
- base: object
- exp: object
- mod: object = None
+ base: object
+ exp: object
+ mod: object = None
-Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments
+Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments
Some types, such as ints, are able to use a more efficient algorithm when
invoked using the three argument form.
[clinic start generated code]*/
static PyObject *
-builtin_pow_impl(PyObject *module, PyObject *base, PyObject *exp,
- PyObject *mod)
-/*[clinic end generated code: output=3ca1538221bbf15f input=435dbd48a12efb23]*/
+builtin_pow_impl(PyObject *module, PyObject *base, PyObject *exp,
+ PyObject *mod)
+/*[clinic end generated code: output=3ca1538221bbf15f input=435dbd48a12efb23]*/
{
- return PyNumber_Power(base, exp, mod);
+ return PyNumber_Power(base, exp, mod);
}
@@ -1819,9 +1819,9 @@ static PyObject *
builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
static const char * const _keywords[] = {"sep", "end", "file", "flush", 0};
- static struct _PyArg_Parser _parser = {"|OOOp:print", _keywords, 0};
- PyObject *sep = NULL, *end = NULL, *file = NULL;
- int flush = 0;
+ static struct _PyArg_Parser _parser = {"|OOOp:print", _keywords, 0};
+ PyObject *sep = NULL, *end = NULL, *file = NULL;
+ int flush = 0;
int i, err;
if (kwnames != NULL &&
@@ -1848,7 +1848,7 @@ builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
else if (sep && !PyUnicode_Check(sep)) {
PyErr_Format(PyExc_TypeError,
"sep must be None or a string, not %.200s",
- Py_TYPE(sep)->tp_name);
+ Py_TYPE(sep)->tp_name);
return NULL;
}
if (end == Py_None) {
@@ -1857,7 +1857,7 @@ builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
else if (end && !PyUnicode_Check(end)) {
PyErr_Format(PyExc_TypeError,
"end must be None or a string, not %.200s",
- Py_TYPE(end)->tp_name);
+ Py_TYPE(end)->tp_name);
return NULL;
}
@@ -1883,11 +1883,11 @@ builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
if (err)
return NULL;
- if (flush) {
- PyObject *tmp = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
- if (tmp == NULL)
+ if (flush) {
+ PyObject *tmp = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
+ if (tmp == NULL)
return NULL;
- Py_DECREF(tmp);
+ Py_DECREF(tmp);
}
Py_RETURN_NONE;
@@ -1947,12 +1947,12 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
return NULL;
}
- if (PySys_Audit("builtins.input", "O", prompt ? prompt : Py_None) < 0) {
- return NULL;
- }
-
+ if (PySys_Audit("builtins.input", "O", prompt ? prompt : Py_None) < 0) {
+ return NULL;
+ }
+
/* First of all, flush stderr */
- tmp = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
+ tmp = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
if (tmp == NULL)
PyErr_Clear();
else
@@ -1961,7 +1961,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
/* We should only use (GNU) readline if Python's sys.stdin and
sys.stdout are the same as C's stdin and stdout, because we
need to pass it those. */
- tmp = _PyObject_CallMethodIdNoArgs(fin, &PyId_fileno);
+ tmp = _PyObject_CallMethodIdNoArgs(fin, &PyId_fileno);
if (tmp == NULL) {
PyErr_Clear();
tty = 0;
@@ -1974,7 +1974,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
tty = fd == fileno(stdin) && isatty(fd);
}
if (tty) {
- tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_fileno);
+ tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_fileno);
if (tmp == NULL) {
PyErr_Clear();
tty = 0;
@@ -2012,7 +2012,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
stdin_errors_str = PyUnicode_AsUTF8(stdin_errors);
if (!stdin_encoding_str || !stdin_errors_str)
goto _readline_errors;
- tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
+ tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
if (tmp == NULL)
PyErr_Clear();
else
@@ -2081,13 +2081,13 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
Py_DECREF(stdin_errors);
Py_XDECREF(po);
PyMem_FREE(s);
-
- if (result != NULL) {
- if (PySys_Audit("builtins.input/result", "O", result) < 0) {
- return NULL;
- }
- }
-
+
+ if (result != NULL) {
+ if (PySys_Audit("builtins.input/result", "O", result) < 0) {
+ return NULL;
+ }
+ }
+
return result;
_readline_errors:
@@ -2107,7 +2107,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
if (PyFile_WriteObject(prompt, fout, Py_PRINT_RAW) != 0)
return NULL;
}
- tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
+ tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
if (tmp == NULL)
PyErr_Clear();
else
@@ -2139,7 +2139,7 @@ builtin_repr(PyObject *module, PyObject *obj)
round as builtin_round
number: object
- ndigits: object = None
+ ndigits: object = None
Round a number to a given precision in decimal digits.
@@ -2149,7 +2149,7 @@ the return value has the same type as the number. ndigits may be negative.
static PyObject *
builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits)
-/*[clinic end generated code: output=ff0d9dd176c02ede input=275678471d7aca15]*/
+/*[clinic end generated code: output=ff0d9dd176c02ede input=275678471d7aca15]*/
{
PyObject *round, *result;
@@ -2167,10 +2167,10 @@ builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits)
return NULL;
}
- if (ndigits == Py_None)
+ if (ndigits == Py_None)
result = _PyObject_CallNoArg(round);
else
- result = PyObject_CallOneArg(round, ndigits);
+ result = PyObject_CallOneArg(round, ndigits);
Py_DECREF(round);
return result;
}
@@ -2203,7 +2203,7 @@ PyDoc_STRVAR(builtin_sorted__doc__,
"reverse flag can be set to request the result in descending order.");
#define BUILTIN_SORTED_METHODDEF \
- {"sorted", (PyCFunction)(void(*)(void))builtin_sorted, METH_FASTCALL | METH_KEYWORDS, builtin_sorted__doc__},
+ {"sorted", (PyCFunction)(void(*)(void))builtin_sorted, METH_FASTCALL | METH_KEYWORDS, builtin_sorted__doc__},
static PyObject *
builtin_sorted(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
@@ -2226,7 +2226,7 @@ builtin_sorted(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
}
assert(nargs >= 1);
- v = PyObject_Vectorcall(callable, args + 1, nargs - 1, kwnames);
+ v = PyObject_Vectorcall(callable, args + 1, nargs - 1, kwnames);
Py_DECREF(callable);
if (v == NULL) {
Py_DECREF(newlist);
@@ -2248,10 +2248,10 @@ builtin_vars(PyObject *self, PyObject *args)
return NULL;
if (v == NULL) {
d = PyEval_GetLocals();
- Py_XINCREF(d);
+ Py_XINCREF(d);
}
else {
- if (_PyObject_LookupAttrId(v, &PyId___dict__, &d) == 0) {
+ if (_PyObject_LookupAttrId(v, &PyId___dict__, &d) == 0) {
PyErr_SetString(PyExc_TypeError,
"vars() argument must have __dict__ attribute");
}
@@ -2270,7 +2270,7 @@ With an argument, equivalent to object.__dict__.");
sum as builtin_sum
iterable: object
- /
+ /
start: object(c_default="NULL") = 0
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
@@ -2282,7 +2282,7 @@ reject non-numeric types.
static PyObject *
builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)
-/*[clinic end generated code: output=df758cec7d1d302f input=162b50765250d222]*/
+/*[clinic end generated code: output=df758cec7d1d302f input=162b50765250d222]*/
{
PyObject *result = start;
PyObject *temp, *item, *iter;
@@ -2341,13 +2341,13 @@ builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)
return NULL;
return PyLong_FromLong(i_result);
}
- if (PyLong_CheckExact(item) || PyBool_Check(item)) {
+ if (PyLong_CheckExact(item) || PyBool_Check(item)) {
long b = PyLong_AsLongAndOverflow(item, &overflow);
- if (overflow == 0 &&
- (i_result >= 0 ? (b <= LONG_MAX - i_result)
- : (b >= LONG_MIN - i_result)))
- {
- i_result += b;
+ if (overflow == 0 &&
+ (i_result >= 0 ? (b <= LONG_MAX - i_result)
+ : (b >= LONG_MIN - i_result)))
+ {
+ i_result += b;
Py_DECREF(item);
continue;
}
@@ -2387,7 +2387,7 @@ builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)
Py_DECREF(item);
continue;
}
- if (PyLong_Check(item)) {
+ if (PyLong_Check(item)) {
long value;
int overflow;
value = PyLong_AsLongAndOverflow(item, &overflow);
@@ -2433,11 +2433,11 @@ builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)
empty = []
sum([[x] for x in range(10)], empty)
- would change the value of empty. In fact, using
- in-place addition rather that binary addition for
- any of the steps introduces subtle behavior changes:
-
- https://bugs.python.org/issue18305 */
+ would change the value of empty. In fact, using
+ in-place addition rather that binary addition for
+ any of the steps introduces subtle behavior changes:
+
+ https://bugs.python.org/issue18305 */
temp = PyNumber_Add(result, item);
Py_DECREF(result);
Py_DECREF(item);
@@ -2610,11 +2610,11 @@ zip_next(zipobject *lz)
PyTuple_SET_ITEM(result, i, item);
Py_DECREF(olditem);
}
- // bpo-42536: The GC may have untracked this result tuple. Since we're
- // recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ // bpo-42536: The GC may have untracked this result tuple. Since we're
+ // recycling it, make sure it's tracked again:
+ if (!_PyObject_GC_IS_TRACKED(result)) {
+ _PyObject_GC_TRACK(result);
+ }
} else {
result = PyTuple_New(tuplesize);
if (result == NULL)
@@ -2633,7 +2633,7 @@ zip_next(zipobject *lz)
}
static PyObject *
-zip_reduce(zipobject *lz, PyObject *Py_UNUSED(ignored))
+zip_reduce(zipobject *lz, PyObject *Py_UNUSED(ignored))
{
/* Just recreate the zip with the internal iterator tuple */
return Py_BuildValue("OO", Py_TYPE(lz), lz->ittuple);
@@ -2645,15 +2645,15 @@ static PyMethodDef zip_methods[] = {
};
PyDoc_STRVAR(zip_doc,
-"zip(*iterables) --> A zip object yielding tuples until an input is exhausted.\n\
+"zip(*iterables) --> A zip object yielding tuples until an input is exhausted.\n\
+\n\
+ >>> list(zip('abcdefg', range(3), range(4)))\n\
+ [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]\n\
\n\
- >>> list(zip('abcdefg', range(3), range(4)))\n\
- [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]\n\
-\n\
-The zip object yields n-length tuples, where n is the number of iterables\n\
-passed as positional arguments to zip(). The i-th element in every tuple\n\
-comes from the i-th iterable argument to zip(). This continues until the\n\
-shortest argument is exhausted.");
+The zip object yields n-length tuples, where n is the number of iterables\n\
+passed as positional arguments to zip(). The i-th element in every tuple\n\
+comes from the i-th iterable argument to zip(). This continues until the\n\
+shortest argument is exhausted.");
PyTypeObject PyZip_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
@@ -2662,10 +2662,10 @@ PyTypeObject PyZip_Type = {
0, /* tp_itemsize */
/* methods */
(destructor)zip_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -2701,15 +2701,15 @@ PyTypeObject PyZip_Type = {
static PyMethodDef builtin_methods[] = {
- {"__build_class__", (PyCFunction)(void(*)(void))builtin___build_class__,
+ {"__build_class__", (PyCFunction)(void(*)(void))builtin___build_class__,
METH_FASTCALL | METH_KEYWORDS, build_class_doc},
- {"__import__", (PyCFunction)(void(*)(void))builtin___import__, METH_VARARGS | METH_KEYWORDS, import_doc},
+ {"__import__", (PyCFunction)(void(*)(void))builtin___import__, METH_VARARGS | METH_KEYWORDS, import_doc},
BUILTIN_ABS_METHODDEF
BUILTIN_ALL_METHODDEF
BUILTIN_ANY_METHODDEF
BUILTIN_ASCII_METHODDEF
BUILTIN_BIN_METHODDEF
- {"breakpoint", (PyCFunction)(void(*)(void))builtin_breakpoint, METH_FASTCALL | METH_KEYWORDS, breakpoint_doc},
+ {"breakpoint", (PyCFunction)(void(*)(void))builtin_breakpoint, METH_FASTCALL | METH_KEYWORDS, breakpoint_doc},
BUILTIN_CALLABLE_METHODDEF
BUILTIN_CHR_METHODDEF
BUILTIN_COMPILE_METHODDEF
@@ -2719,7 +2719,7 @@ static PyMethodDef builtin_methods[] = {
BUILTIN_EVAL_METHODDEF
BUILTIN_EXEC_METHODDEF
BUILTIN_FORMAT_METHODDEF
- {"getattr", (PyCFunction)(void(*)(void))builtin_getattr, METH_FASTCALL, getattr_doc},
+ {"getattr", (PyCFunction)(void(*)(void))builtin_getattr, METH_FASTCALL, getattr_doc},
BUILTIN_GLOBALS_METHODDEF
BUILTIN_HASATTR_METHODDEF
BUILTIN_HASH_METHODDEF
@@ -2728,16 +2728,16 @@ static PyMethodDef builtin_methods[] = {
BUILTIN_INPUT_METHODDEF
BUILTIN_ISINSTANCE_METHODDEF
BUILTIN_ISSUBCLASS_METHODDEF
- {"iter", (PyCFunction)(void(*)(void))builtin_iter, METH_FASTCALL, iter_doc},
+ {"iter", (PyCFunction)(void(*)(void))builtin_iter, METH_FASTCALL, iter_doc},
BUILTIN_LEN_METHODDEF
BUILTIN_LOCALS_METHODDEF
- {"max", (PyCFunction)(void(*)(void))builtin_max, METH_VARARGS | METH_KEYWORDS, max_doc},
- {"min", (PyCFunction)(void(*)(void))builtin_min, METH_VARARGS | METH_KEYWORDS, min_doc},
- {"next", (PyCFunction)(void(*)(void))builtin_next, METH_FASTCALL, next_doc},
+ {"max", (PyCFunction)(void(*)(void))builtin_max, METH_VARARGS | METH_KEYWORDS, max_doc},
+ {"min", (PyCFunction)(void(*)(void))builtin_min, METH_VARARGS | METH_KEYWORDS, min_doc},
+ {"next", (PyCFunction)(void(*)(void))builtin_next, METH_FASTCALL, next_doc},
BUILTIN_OCT_METHODDEF
BUILTIN_ORD_METHODDEF
BUILTIN_POW_METHODDEF
- {"print", (PyCFunction)(void(*)(void))builtin_print, METH_FASTCALL | METH_KEYWORDS, print_doc},
+ {"print", (PyCFunction)(void(*)(void))builtin_print, METH_FASTCALL | METH_KEYWORDS, print_doc},
BUILTIN_REPR_METHODDEF
BUILTIN_ROUND_METHODDEF
BUILTIN_SETATTR_METHODDEF
@@ -2766,12 +2766,12 @@ static struct PyModuleDef builtinsmodule = {
PyObject *
-_PyBuiltin_Init(PyThreadState *tstate)
+_PyBuiltin_Init(PyThreadState *tstate)
{
PyObject *mod, *dict, *debug;
- const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
-
+ const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
+
if (PyType_Ready(&PyFilter_Type) < 0 ||
PyType_Ready(&PyMap_Type) < 0 ||
PyType_Ready(&PyZip_Type) < 0)
@@ -2830,7 +2830,7 @@ _PyBuiltin_Init(PyThreadState *tstate)
SETBUILTIN("tuple", &PyTuple_Type);
SETBUILTIN("type", &PyType_Type);
SETBUILTIN("zip", &PyZip_Type);
- debug = PyBool_FromLong(config->optimization_level == 0);
+ debug = PyBool_FromLong(config->optimization_level == 0);
if (PyDict_SetItemString(dict, "__debug__", debug) < 0) {
Py_DECREF(debug);
return NULL;
diff --git a/contrib/tools/python3/src/Python/bootstrap_hash.c b/contrib/tools/python3/src/Python/bootstrap_hash.c
index a1a9e07799..e189ce0d90 100644
--- a/contrib/tools/python3/src/Python/bootstrap_hash.c
+++ b/contrib/tools/python3/src/Python/bootstrap_hash.c
@@ -1,5 +1,5 @@
#include "Python.h"
-#include "pycore_initconfig.h"
+#include "pycore_initconfig.h"
#ifdef MS_WINDOWS
# include <windows.h>
/* All sample MSDN wincrypt programs include the header below. It is at least
@@ -25,16 +25,16 @@
# include <sanitizer/msan_interface.h>
#endif
-#if defined(__APPLE__) && defined(__has_builtin)
-# if __has_builtin(__builtin_available)
-# define HAVE_GETENTRYPY_GETRANDOM_RUNTIME __builtin_available(macOS 10.12, iOS 10.10, tvOS 10.0, watchOS 3.0, *)
-# endif
-#endif
-#ifndef HAVE_GETENTRYPY_GETRANDOM_RUNTIME
-# define HAVE_GETENTRYPY_GETRANDOM_RUNTIME 1
-#endif
-
-
+#if defined(__APPLE__) && defined(__has_builtin)
+# if __has_builtin(__builtin_available)
+# define HAVE_GETENTRYPY_GETRANDOM_RUNTIME __builtin_available(macOS 10.12, iOS 10.10, tvOS 10.0, watchOS 3.0, *)
+# endif
+#endif
+#ifndef HAVE_GETENTRYPY_GETRANDOM_RUNTIME
+# define HAVE_GETENTRYPY_GETRANDOM_RUNTIME 1
+#endif
+
+
#ifdef Py_DEBUG
int _Py_HashSecret_Initialized = 0;
#else
@@ -48,8 +48,8 @@ static int
win32_urandom_init(int raise)
{
/* Acquire context */
- if (!CryptAcquireContextW(&hCryptProv, NULL, NULL,
- PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
+ if (!CryptAcquireContextW(&hCryptProv, NULL, NULL,
+ PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
goto error;
return 0;
@@ -75,8 +75,8 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
while (size > 0)
{
- DWORD chunk = (DWORD)Py_MIN(size, PY_DWORD_MAX);
- if (!CryptGenRandom(hCryptProv, chunk, buffer))
+ DWORD chunk = (DWORD)Py_MIN(size, PY_DWORD_MAX);
+ if (!CryptGenRandom(hCryptProv, chunk, buffer))
{
/* CryptGenRandom() failed */
if (raise) {
@@ -173,7 +173,7 @@ py_getrandom(void *buffer, Py_ssize_t size, int blocking, int raise)
}
/* getrandom(GRND_NONBLOCK) fails with EAGAIN if the system urandom
- is not initialized yet. For _PyRandom_Init(), we ignore the
+ is not initialized yet. For _PyRandom_Init(), we ignore the
error and fall back on reading /dev/urandom which never blocks,
even if the system urandom is not initialized yet:
see the PEP 524. */
@@ -218,17 +218,17 @@ py_getrandom(void *buffer, Py_ssize_t size, int blocking, int raise)
error.
getentropy() is retried if it failed with EINTR: interrupted by a signal. */
-
-#if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)
+
+#if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)
+static int
+py_getentropy(char *buffer, Py_ssize_t size, int raise)
+ __attribute__((availability(macos,introduced=10.12)))
+ __attribute__((availability(ios,introduced=10.0)))
+ __attribute__((availability(tvos,introduced=10.0)))
+ __attribute__((availability(watchos,introduced=3.0)));
+#endif
+
static int
-py_getentropy(char *buffer, Py_ssize_t size, int raise)
- __attribute__((availability(macos,introduced=10.12)))
- __attribute__((availability(ios,introduced=10.0)))
- __attribute__((availability(tvos,introduced=10.0)))
- __attribute__((availability(watchos,introduced=3.0)));
-#endif
-
-static int
py_getentropy(char *buffer, Py_ssize_t size, int raise)
{
/* Is getentropy() supported by the running kernel? Set to 0 if
@@ -518,21 +518,21 @@ pyurandom(void *buffer, Py_ssize_t size, int blocking, int raise)
#else
#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
- if (HAVE_GETENTRYPY_GETRANDOM_RUNTIME) {
+ if (HAVE_GETENTRYPY_GETRANDOM_RUNTIME) {
#ifdef PY_GETRANDOM
- res = py_getrandom(buffer, size, blocking, raise);
+ res = py_getrandom(buffer, size, blocking, raise);
#else
- res = py_getentropy(buffer, size, raise);
+ res = py_getentropy(buffer, size, raise);
#endif
- if (res < 0) {
- return -1;
- }
- if (res == 1) {
- return 0;
- }
- /* getrandom() or getentropy() function is not available: failed with
- ENOSYS or EPERM. Fall back on reading from /dev/urandom. */
- } /* end of availability block */
+ if (res < 0) {
+ return -1;
+ }
+ if (res == 1) {
+ return 0;
+ }
+ /* getrandom() or getentropy() function is not available: failed with
+ ENOSYS or EPERM. Fall back on reading from /dev/urandom. */
+ } /* end of availability block */
#endif
return dev_urandom(buffer, size, raise);
@@ -569,14 +569,14 @@ _PyOS_URandomNonblock(void *buffer, Py_ssize_t size)
}
-PyStatus
-_Py_HashRandomization_Init(const PyConfig *config)
+PyStatus
+_Py_HashRandomization_Init(const PyConfig *config)
{
void *secret = &_Py_HashSecret;
Py_ssize_t secret_size = sizeof(_Py_HashSecret_t);
if (_Py_HashSecret_Initialized) {
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
_Py_HashSecret_Initialized = 1;
@@ -601,11 +601,11 @@ _Py_HashRandomization_Init(const PyConfig *config)
pyurandom() is non-blocking mode (blocking=0): see the PEP 524. */
res = pyurandom(secret, secret_size, 0, 0);
if (res < 0) {
- return _PyStatus_ERR("failed to get random numbers "
- "to initialize Python");
+ return _PyStatus_ERR("failed to get random numbers "
+ "to initialize Python");
}
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
diff --git a/contrib/tools/python3/src/Python/ceval.c b/contrib/tools/python3/src/Python/ceval.c
index e07adf6e19..9a61f8a3c3 100644
--- a/contrib/tools/python3/src/Python/ceval.c
+++ b/contrib/tools/python3/src/Python/ceval.c
@@ -10,18 +10,18 @@
#define PY_LOCAL_AGGRESSIVE
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
-#include "pycore_call.h"
-#include "pycore_ceval.h"
-#include "pycore_code.h"
-#include "pycore_initconfig.h"
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pylifecycle.h"
-#include "pycore_pymem.h" // _PyMem_IsPtrFreed()
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "pycore_sysmodule.h"
-#include "pycore_tupleobject.h"
+#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_call.h"
+#include "pycore_ceval.h"
+#include "pycore_code.h"
+#include "pycore_initconfig.h"
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pylifecycle.h"
+#include "pycore_pymem.h" // _PyMem_IsPtrFreed()
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_sysmodule.h"
+#include "pycore_tupleobject.h"
#include "code.h"
#include "dictobject.h"
@@ -38,23 +38,23 @@
#define CHECKEXC 1 /* Double-check exception checking */
#endif
-#if !defined(Py_BUILD_CORE)
-# error "ceval.c must be build with Py_BUILD_CORE define for best performance"
-#endif
-
-_Py_IDENTIFIER(__name__);
+#if !defined(Py_BUILD_CORE)
+# error "ceval.c must be build with Py_BUILD_CORE define for best performance"
+#endif
+
+_Py_IDENTIFIER(__name__);
/* Forward declarations */
-Py_LOCAL_INLINE(PyObject *) call_function(
- PyThreadState *tstate, PyObject ***pp_stack,
- Py_ssize_t oparg, PyObject *kwnames);
-static PyObject * do_call_core(
- PyThreadState *tstate, PyObject *func,
- PyObject *callargs, PyObject *kwdict);
+Py_LOCAL_INLINE(PyObject *) call_function(
+ PyThreadState *tstate, PyObject ***pp_stack,
+ Py_ssize_t oparg, PyObject *kwnames);
+static PyObject * do_call_core(
+ PyThreadState *tstate, PyObject *func,
+ PyObject *callargs, PyObject *kwdict);
#ifdef LLTRACE
static int lltrace;
-static int prtrace(PyThreadState *, PyObject *, const char *);
+static int prtrace(PyThreadState *, PyObject *, const char *);
#endif
static int call_trace(Py_tracefunc, PyObject *,
PyThreadState *, PyFrameObject *,
@@ -71,18 +71,18 @@ static void maybe_dtrace_line(PyFrameObject *, int *, int *, int *);
static void dtrace_function_entry(PyFrameObject *);
static void dtrace_function_return(PyFrameObject *);
-static PyObject * import_name(PyThreadState *, PyFrameObject *,
- PyObject *, PyObject *, PyObject *);
-static PyObject * import_from(PyThreadState *, PyObject *, PyObject *);
-static int import_all_from(PyThreadState *, PyObject *, PyObject *);
-static void format_exc_check_arg(PyThreadState *, PyObject *, const char *, PyObject *);
-static void format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int oparg);
-static PyObject * unicode_concatenate(PyThreadState *, PyObject *, PyObject *,
+static PyObject * import_name(PyThreadState *, PyFrameObject *,
+ PyObject *, PyObject *, PyObject *);
+static PyObject * import_from(PyThreadState *, PyObject *, PyObject *);
+static int import_all_from(PyThreadState *, PyObject *, PyObject *);
+static void format_exc_check_arg(PyThreadState *, PyObject *, const char *, PyObject *);
+static void format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int oparg);
+static PyObject * unicode_concatenate(PyThreadState *, PyObject *, PyObject *,
PyFrameObject *, const _Py_CODEUNIT *);
-static PyObject * special_lookup(PyThreadState *, PyObject *, _Py_Identifier *);
-static int check_args_iterable(PyThreadState *, PyObject *func, PyObject *vararg);
-static void format_kwargs_error(PyThreadState *, PyObject *func, PyObject *kwargs);
-static void format_awaitable_error(PyThreadState *, PyTypeObject *, int, int);
+static PyObject * special_lookup(PyThreadState *, PyObject *, _Py_Identifier *);
+static int check_args_iterable(PyThreadState *, PyObject *func, PyObject *vararg);
+static void format_kwargs_error(PyThreadState *, PyObject *func, PyObject *kwargs);
+static void format_awaitable_error(PyThreadState *, PyTypeObject *, int, int);
#define NAME_ERROR_MSG \
"name '%.200s' is not defined"
@@ -102,372 +102,372 @@ static long dxp[256];
#endif
#endif
-/* per opcode cache */
-#ifdef Py_DEBUG
-// --with-pydebug is used to find memory leak. opcache makes it harder.
-// So we disable opcache when Py_DEBUG is defined.
-// See bpo-37146
-#define OPCACHE_MIN_RUNS 0 /* disable opcache */
-#else
-#define OPCACHE_MIN_RUNS 1024 /* create opcache when code executed this time */
-#endif
-#define OPCACHE_STATS 0 /* Enable stats */
-
-#if OPCACHE_STATS
-static size_t opcache_code_objects = 0;
-static size_t opcache_code_objects_extra_mem = 0;
-
-static size_t opcache_global_opts = 0;
-static size_t opcache_global_hits = 0;
-static size_t opcache_global_misses = 0;
-#endif
-
-
-#ifndef NDEBUG
-/* Ensure that tstate is valid: sanity check for PyEval_AcquireThread() and
- PyEval_RestoreThread(). Detect if tstate memory was freed. It can happen
- when a thread continues to run after Python finalization, especially
- daemon threads. */
-static int
-is_tstate_valid(PyThreadState *tstate)
-{
- assert(!_PyMem_IsPtrFreed(tstate));
- assert(!_PyMem_IsPtrFreed(tstate->interp));
- return 1;
-}
-#endif
-
-
+/* per opcode cache */
+#ifdef Py_DEBUG
+// --with-pydebug is used to find memory leak. opcache makes it harder.
+// So we disable opcache when Py_DEBUG is defined.
+// See bpo-37146
+#define OPCACHE_MIN_RUNS 0 /* disable opcache */
+#else
+#define OPCACHE_MIN_RUNS 1024 /* create opcache when code executed this time */
+#endif
+#define OPCACHE_STATS 0 /* Enable stats */
+
+#if OPCACHE_STATS
+static size_t opcache_code_objects = 0;
+static size_t opcache_code_objects_extra_mem = 0;
+
+static size_t opcache_global_opts = 0;
+static size_t opcache_global_hits = 0;
+static size_t opcache_global_misses = 0;
+#endif
+
+
+#ifndef NDEBUG
+/* Ensure that tstate is valid: sanity check for PyEval_AcquireThread() and
+ PyEval_RestoreThread(). Detect if tstate memory was freed. It can happen
+ when a thread continues to run after Python finalization, especially
+ daemon threads. */
+static int
+is_tstate_valid(PyThreadState *tstate)
+{
+ assert(!_PyMem_IsPtrFreed(tstate));
+ assert(!_PyMem_IsPtrFreed(tstate->interp));
+ return 1;
+}
+#endif
+
+
/* This can set eval_breaker to 0 even though gil_drop_request became
1. We believe this is all right because the eval loop will release
the GIL eventually anyway. */
-static inline void
-COMPUTE_EVAL_BREAKER(PyInterpreterState *interp,
- struct _ceval_runtime_state *ceval,
- struct _ceval_state *ceval2)
-{
- _Py_atomic_store_relaxed(&ceval2->eval_breaker,
- _Py_atomic_load_relaxed(&ceval2->gil_drop_request)
- | (_Py_atomic_load_relaxed(&ceval->signals_pending)
- && _Py_ThreadCanHandleSignals(interp))
- | (_Py_atomic_load_relaxed(&ceval2->pending.calls_to_do)
- && _Py_ThreadCanHandlePendingCalls())
- | ceval2->pending.async_exc);
-}
-
-
-static inline void
-SET_GIL_DROP_REQUEST(PyInterpreterState *interp)
-{
- struct _ceval_state *ceval2 = &interp->ceval;
- _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 1);
- _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1);
-}
-
-
-static inline void
-RESET_GIL_DROP_REQUEST(PyInterpreterState *interp)
-{
- struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
- struct _ceval_state *ceval2 = &interp->ceval;
- _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 0);
- COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
-}
-
-
-static inline void
-SIGNAL_PENDING_CALLS(PyInterpreterState *interp)
-{
- struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
- struct _ceval_state *ceval2 = &interp->ceval;
- _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 1);
- COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
-}
-
-
-static inline void
-UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp)
-{
- struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
- struct _ceval_state *ceval2 = &interp->ceval;
- _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0);
- COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
-}
-
-
-static inline void
-SIGNAL_PENDING_SIGNALS(PyInterpreterState *interp, int force)
-{
- struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
- struct _ceval_state *ceval2 = &interp->ceval;
- _Py_atomic_store_relaxed(&ceval->signals_pending, 1);
- if (force) {
- _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1);
- }
- else {
- /* eval_breaker is not set to 1 if thread_can_handle_signals() is false */
- COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
- }
-}
-
-
-static inline void
-UNSIGNAL_PENDING_SIGNALS(PyInterpreterState *interp)
-{
- struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
- struct _ceval_state *ceval2 = &interp->ceval;
- _Py_atomic_store_relaxed(&ceval->signals_pending, 0);
- COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
-}
-
-
-static inline void
-SIGNAL_ASYNC_EXC(PyInterpreterState *interp)
-{
- struct _ceval_state *ceval2 = &interp->ceval;
- ceval2->pending.async_exc = 1;
- _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1);
-}
-
-
-static inline void
-UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp)
-{
- struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
- struct _ceval_state *ceval2 = &interp->ceval;
- ceval2->pending.async_exc = 0;
- COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
-}
-
-
+static inline void
+COMPUTE_EVAL_BREAKER(PyInterpreterState *interp,
+ struct _ceval_runtime_state *ceval,
+ struct _ceval_state *ceval2)
+{
+ _Py_atomic_store_relaxed(&ceval2->eval_breaker,
+ _Py_atomic_load_relaxed(&ceval2->gil_drop_request)
+ | (_Py_atomic_load_relaxed(&ceval->signals_pending)
+ && _Py_ThreadCanHandleSignals(interp))
+ | (_Py_atomic_load_relaxed(&ceval2->pending.calls_to_do)
+ && _Py_ThreadCanHandlePendingCalls())
+ | ceval2->pending.async_exc);
+}
+
+
+static inline void
+SET_GIL_DROP_REQUEST(PyInterpreterState *interp)
+{
+ struct _ceval_state *ceval2 = &interp->ceval;
+ _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 1);
+ _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1);
+}
+
+
+static inline void
+RESET_GIL_DROP_REQUEST(PyInterpreterState *interp)
+{
+ struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &interp->ceval;
+ _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 0);
+ COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
+}
+
+
+static inline void
+SIGNAL_PENDING_CALLS(PyInterpreterState *interp)
+{
+ struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &interp->ceval;
+ _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 1);
+ COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
+}
+
+
+static inline void
+UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp)
+{
+ struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &interp->ceval;
+ _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0);
+ COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
+}
+
+
+static inline void
+SIGNAL_PENDING_SIGNALS(PyInterpreterState *interp, int force)
+{
+ struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &interp->ceval;
+ _Py_atomic_store_relaxed(&ceval->signals_pending, 1);
+ if (force) {
+ _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1);
+ }
+ else {
+ /* eval_breaker is not set to 1 if thread_can_handle_signals() is false */
+ COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
+ }
+}
+
+
+static inline void
+UNSIGNAL_PENDING_SIGNALS(PyInterpreterState *interp)
+{
+ struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &interp->ceval;
+ _Py_atomic_store_relaxed(&ceval->signals_pending, 0);
+ COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
+}
+
+
+static inline void
+SIGNAL_ASYNC_EXC(PyInterpreterState *interp)
+{
+ struct _ceval_state *ceval2 = &interp->ceval;
+ ceval2->pending.async_exc = 1;
+ _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1);
+}
+
+
+static inline void
+UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp)
+{
+ struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &interp->ceval;
+ ceval2->pending.async_exc = 0;
+ COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
+}
+
+
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
#include "ceval_gil.h"
-void _Py_NO_RETURN
-_Py_FatalError_TstateNULL(const char *func)
-{
- _Py_FatalErrorFunc(func,
- "the function must be called with the GIL held, "
- "but the GIL is released "
- "(the current Python thread state is NULL)");
-}
-
-
+void _Py_NO_RETURN
+_Py_FatalError_TstateNULL(const char *func)
+{
+ _Py_FatalErrorFunc(func,
+ "the function must be called with the GIL held, "
+ "but the GIL is released "
+ "(the current Python thread state is NULL)");
+}
+
+
+int
+_PyEval_ThreadsInitialized(_PyRuntimeState *runtime)
+{
+ return gil_created(&runtime->ceval.gil);
+}
+
int
-_PyEval_ThreadsInitialized(_PyRuntimeState *runtime)
-{
- return gil_created(&runtime->ceval.gil);
-}
-
-int
PyEval_ThreadsInitialized(void)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- return _PyEval_ThreadsInitialized(runtime);
+ _PyRuntimeState *runtime = &_PyRuntime;
+ return _PyEval_ThreadsInitialized(runtime);
}
-PyStatus
-_PyEval_InitGIL(PyThreadState *tstate)
+PyStatus
+_PyEval_InitGIL(PyThreadState *tstate)
{
- if (!_Py_IsMainInterpreter(tstate)) {
- /* Currently, the GIL is shared by all interpreters,
- and only the main interpreter is responsible to create
- and destroy it. */
- return _PyStatus_OK();
- }
-
- struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil;
- assert(!gil_created(gil));
-
- PyThread_init_thread();
- create_gil(gil);
-
- take_gil(tstate);
-
- assert(gil_created(gil));
- return _PyStatus_OK();
+ if (!_Py_IsMainInterpreter(tstate)) {
+ /* Currently, the GIL is shared by all interpreters,
+ and only the main interpreter is responsible to create
+ and destroy it. */
+ return _PyStatus_OK();
+ }
+
+ struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil;
+ assert(!gil_created(gil));
+
+ PyThread_init_thread();
+ create_gil(gil);
+
+ take_gil(tstate);
+
+ assert(gil_created(gil));
+ return _PyStatus_OK();
}
void
-_PyEval_FiniGIL(PyThreadState *tstate)
+_PyEval_FiniGIL(PyThreadState *tstate)
{
- if (!_Py_IsMainInterpreter(tstate)) {
- /* Currently, the GIL is shared by all interpreters,
- and only the main interpreter is responsible to create
- and destroy it. */
- return;
- }
-
- struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil;
- if (!gil_created(gil)) {
- /* First Py_InitializeFromConfig() call: the GIL doesn't exist
- yet: do nothing. */
+ if (!_Py_IsMainInterpreter(tstate)) {
+ /* Currently, the GIL is shared by all interpreters,
+ and only the main interpreter is responsible to create
+ and destroy it. */
return;
- }
-
- destroy_gil(gil);
- assert(!gil_created(gil));
+ }
+
+ struct _gil_runtime_state *gil = &tstate->interp->runtime->ceval.gil;
+ if (!gil_created(gil)) {
+ /* First Py_InitializeFromConfig() call: the GIL doesn't exist
+ yet: do nothing. */
+ return;
+ }
+
+ destroy_gil(gil);
+ assert(!gil_created(gil));
+}
+
+void
+PyEval_InitThreads(void)
+{
+ /* Do nothing: kept for backward compatibility */
+}
+
+void
+_PyEval_Fini(void)
+{
+#if OPCACHE_STATS
+ fprintf(stderr, "-- Opcode cache number of objects = %zd\n",
+ opcache_code_objects);
+
+ fprintf(stderr, "-- Opcode cache total extra mem = %zd\n",
+ opcache_code_objects_extra_mem);
+
+ fprintf(stderr, "\n");
+
+ fprintf(stderr, "-- Opcode cache LOAD_GLOBAL hits = %zd (%d%%)\n",
+ opcache_global_hits,
+ (int) (100.0 * opcache_global_hits /
+ (opcache_global_hits + opcache_global_misses)));
+
+ fprintf(stderr, "-- Opcode cache LOAD_GLOBAL misses = %zd (%d%%)\n",
+ opcache_global_misses,
+ (int) (100.0 * opcache_global_misses /
+ (opcache_global_hits + opcache_global_misses)));
+
+ fprintf(stderr, "-- Opcode cache LOAD_GLOBAL opts = %zd\n",
+ opcache_global_opts);
+
+ fprintf(stderr, "\n");
+#endif
}
-void
-PyEval_InitThreads(void)
-{
- /* Do nothing: kept for backward compatibility */
-}
-
void
-_PyEval_Fini(void)
-{
-#if OPCACHE_STATS
- fprintf(stderr, "-- Opcode cache number of objects = %zd\n",
- opcache_code_objects);
-
- fprintf(stderr, "-- Opcode cache total extra mem = %zd\n",
- opcache_code_objects_extra_mem);
-
- fprintf(stderr, "\n");
-
- fprintf(stderr, "-- Opcode cache LOAD_GLOBAL hits = %zd (%d%%)\n",
- opcache_global_hits,
- (int) (100.0 * opcache_global_hits /
- (opcache_global_hits + opcache_global_misses)));
-
- fprintf(stderr, "-- Opcode cache LOAD_GLOBAL misses = %zd (%d%%)\n",
- opcache_global_misses,
- (int) (100.0 * opcache_global_misses /
- (opcache_global_hits + opcache_global_misses)));
-
- fprintf(stderr, "-- Opcode cache LOAD_GLOBAL opts = %zd\n",
- opcache_global_opts);
-
- fprintf(stderr, "\n");
-#endif
-}
-
-void
PyEval_AcquireLock(void)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
- _Py_EnsureTstateNotNULL(tstate);
-
- take_gil(tstate);
+ _PyRuntimeState *runtime = &_PyRuntime;
+ PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ _Py_EnsureTstateNotNULL(tstate);
+
+ take_gil(tstate);
}
void
PyEval_ReleaseLock(void)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ _PyRuntimeState *runtime = &_PyRuntime;
+ PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
/* This function must succeed when the current thread state is NULL.
- We therefore avoid PyThreadState_Get() which dumps a fatal error
- in debug mode. */
- struct _ceval_runtime_state *ceval = &runtime->ceval;
- struct _ceval_state *ceval2 = &tstate->interp->ceval;
- drop_gil(ceval, ceval2, tstate);
+ We therefore avoid PyThreadState_Get() which dumps a fatal error
+ in debug mode. */
+ struct _ceval_runtime_state *ceval = &runtime->ceval;
+ struct _ceval_state *ceval2 = &tstate->interp->ceval;
+ drop_gil(ceval, ceval2, tstate);
+}
+
+void
+_PyEval_ReleaseLock(PyThreadState *tstate)
+{
+ struct _ceval_runtime_state *ceval = &tstate->interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &tstate->interp->ceval;
+ drop_gil(ceval, ceval2, tstate);
}
void
-_PyEval_ReleaseLock(PyThreadState *tstate)
-{
- struct _ceval_runtime_state *ceval = &tstate->interp->runtime->ceval;
- struct _ceval_state *ceval2 = &tstate->interp->ceval;
- drop_gil(ceval, ceval2, tstate);
-}
-
-void
PyEval_AcquireThread(PyThreadState *tstate)
{
- _Py_EnsureTstateNotNULL(tstate);
-
- take_gil(tstate);
-
- struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
- if (_PyThreadState_Swap(gilstate, tstate) != NULL) {
- Py_FatalError("non-NULL old thread state");
- }
+ _Py_EnsureTstateNotNULL(tstate);
+
+ take_gil(tstate);
+
+ struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
+ if (_PyThreadState_Swap(gilstate, tstate) != NULL) {
+ Py_FatalError("non-NULL old thread state");
+ }
}
void
PyEval_ReleaseThread(PyThreadState *tstate)
{
- assert(is_tstate_valid(tstate));
-
- _PyRuntimeState *runtime = tstate->interp->runtime;
- PyThreadState *new_tstate = _PyThreadState_Swap(&runtime->gilstate, NULL);
- if (new_tstate != tstate) {
- Py_FatalError("wrong thread state");
- }
- struct _ceval_runtime_state *ceval = &runtime->ceval;
- struct _ceval_state *ceval2 = &tstate->interp->ceval;
- drop_gil(ceval, ceval2, tstate);
+ assert(is_tstate_valid(tstate));
+
+ _PyRuntimeState *runtime = tstate->interp->runtime;
+ PyThreadState *new_tstate = _PyThreadState_Swap(&runtime->gilstate, NULL);
+ if (new_tstate != tstate) {
+ Py_FatalError("wrong thread state");
+ }
+ struct _ceval_runtime_state *ceval = &runtime->ceval;
+ struct _ceval_state *ceval2 = &tstate->interp->ceval;
+ drop_gil(ceval, ceval2, tstate);
}
-#ifdef HAVE_FORK
+#ifdef HAVE_FORK
/* This function is called from PyOS_AfterFork_Child to destroy all threads
* which are not running in the child process, and clear internal locks
* which might be held by those threads.
*/
void
-_PyEval_ReInitThreads(_PyRuntimeState *runtime)
+_PyEval_ReInitThreads(_PyRuntimeState *runtime)
{
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
- _Py_EnsureTstateNotNULL(tstate);
-
- struct _gil_runtime_state *gil = &runtime->ceval.gil;
- if (!gil_created(gil)) {
+ PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ _Py_EnsureTstateNotNULL(tstate);
+
+ struct _gil_runtime_state *gil = &runtime->ceval.gil;
+ if (!gil_created(gil)) {
return;
- }
- recreate_gil(gil);
-
- take_gil(tstate);
-
- struct _pending_calls *pending = &tstate->interp->ceval.pending;
- if (_PyThread_at_fork_reinit(&pending->lock) < 0) {
- Py_FatalError("Can't initialize threads for pending calls");
- }
-
+ }
+ recreate_gil(gil);
+
+ take_gil(tstate);
+
+ struct _pending_calls *pending = &tstate->interp->ceval.pending;
+ if (_PyThread_at_fork_reinit(&pending->lock) < 0) {
+ Py_FatalError("Can't initialize threads for pending calls");
+ }
+
/* Destroy all threads except the current one */
- _PyThreadState_DeleteExcept(runtime, tstate);
+ _PyThreadState_DeleteExcept(runtime, tstate);
}
-#endif
+#endif
/* This function is used to signal that async exceptions are waiting to be
- raised. */
+ raised. */
void
-_PyEval_SignalAsyncExc(PyThreadState *tstate)
+_PyEval_SignalAsyncExc(PyThreadState *tstate)
{
- assert(is_tstate_valid(tstate));
- SIGNAL_ASYNC_EXC(tstate->interp);
+ assert(is_tstate_valid(tstate));
+ SIGNAL_ASYNC_EXC(tstate->interp);
}
PyThreadState *
PyEval_SaveThread(void)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, NULL);
- _Py_EnsureTstateNotNULL(tstate);
-
- struct _ceval_runtime_state *ceval = &runtime->ceval;
- struct _ceval_state *ceval2 = &tstate->interp->ceval;
- assert(gil_created(&ceval->gil));
- drop_gil(ceval, ceval2, tstate);
+ _PyRuntimeState *runtime = &_PyRuntime;
+ PyThreadState *tstate = _PyThreadState_Swap(&runtime->gilstate, NULL);
+ _Py_EnsureTstateNotNULL(tstate);
+
+ struct _ceval_runtime_state *ceval = &runtime->ceval;
+ struct _ceval_state *ceval2 = &tstate->interp->ceval;
+ assert(gil_created(&ceval->gil));
+ drop_gil(ceval, ceval2, tstate);
return tstate;
}
void
PyEval_RestoreThread(PyThreadState *tstate)
{
- _Py_EnsureTstateNotNULL(tstate);
-
- take_gil(tstate);
+ _Py_EnsureTstateNotNULL(tstate);
+
+ take_gil(tstate);
- struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
- _PyThreadState_Swap(gilstate, tstate);
+ struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
+ _PyThreadState_Swap(gilstate, tstate);
}
@@ -494,225 +494,225 @@ PyEval_RestoreThread(PyThreadState *tstate)
*/
void
-_PyEval_SignalReceived(PyInterpreterState *interp)
+_PyEval_SignalReceived(PyInterpreterState *interp)
{
-#ifdef MS_WINDOWS
- // bpo-42296: On Windows, _PyEval_SignalReceived() is called from a signal
- // handler which can run in a thread different than the Python thread, in
- // which case _Py_ThreadCanHandleSignals() is wrong. Ignore
- // _Py_ThreadCanHandleSignals() and always set eval_breaker to 1.
- //
- // The next eval_frame_handle_pending() call will call
- // _Py_ThreadCanHandleSignals() to recompute eval_breaker.
- int force = 1;
-#else
- int force = 0;
-#endif
+#ifdef MS_WINDOWS
+ // bpo-42296: On Windows, _PyEval_SignalReceived() is called from a signal
+ // handler which can run in a thread different than the Python thread, in
+ // which case _Py_ThreadCanHandleSignals() is wrong. Ignore
+ // _Py_ThreadCanHandleSignals() and always set eval_breaker to 1.
+ //
+ // The next eval_frame_handle_pending() call will call
+ // _Py_ThreadCanHandleSignals() to recompute eval_breaker.
+ int force = 1;
+#else
+ int force = 0;
+#endif
/* bpo-30703: Function called when the C signal handler of Python gets a
- signal. We cannot queue a callback using _PyEval_AddPendingCall() since
+ signal. We cannot queue a callback using _PyEval_AddPendingCall() since
that function is not async-signal-safe. */
- SIGNAL_PENDING_SIGNALS(interp, force);
+ SIGNAL_PENDING_SIGNALS(interp, force);
+}
+
+/* Push one item onto the queue while holding the lock. */
+static int
+_push_pending_call(struct _pending_calls *pending,
+ int (*func)(void *), void *arg)
+{
+ int i = pending->last;
+ int j = (i + 1) % NPENDINGCALLS;
+ if (j == pending->first) {
+ return -1; /* Queue full */
+ }
+ pending->calls[i].func = func;
+ pending->calls[i].arg = arg;
+ pending->last = j;
+ return 0;
+}
+
+/* Pop one item off the queue while holding the lock. */
+static void
+_pop_pending_call(struct _pending_calls *pending,
+ int (**func)(void *), void **arg)
+{
+ int i = pending->first;
+ if (i == pending->last) {
+ return; /* Queue empty */
+ }
+
+ *func = pending->calls[i].func;
+ *arg = pending->calls[i].arg;
+ pending->first = (i + 1) % NPENDINGCALLS;
}
-/* Push one item onto the queue while holding the lock. */
-static int
-_push_pending_call(struct _pending_calls *pending,
- int (*func)(void *), void *arg)
-{
- int i = pending->last;
- int j = (i + 1) % NPENDINGCALLS;
- if (j == pending->first) {
- return -1; /* Queue full */
- }
- pending->calls[i].func = func;
- pending->calls[i].arg = arg;
- pending->last = j;
- return 0;
-}
-
-/* Pop one item off the queue while holding the lock. */
-static void
-_pop_pending_call(struct _pending_calls *pending,
- int (**func)(void *), void **arg)
-{
- int i = pending->first;
- if (i == pending->last) {
- return; /* Queue empty */
- }
-
- *func = pending->calls[i].func;
- *arg = pending->calls[i].arg;
- pending->first = (i + 1) % NPENDINGCALLS;
-}
-
/* This implementation is thread-safe. It allows
scheduling to be made from any thread, and even from an executing
callback.
*/
int
-_PyEval_AddPendingCall(PyInterpreterState *interp,
- int (*func)(void *), void *arg)
+_PyEval_AddPendingCall(PyInterpreterState *interp,
+ int (*func)(void *), void *arg)
{
- struct _pending_calls *pending = &interp->ceval.pending;
+ struct _pending_calls *pending = &interp->ceval.pending;
- /* Ensure that _PyEval_InitPendingCalls() was called
- and that _PyEval_FiniPendingCalls() is not called yet. */
- assert(pending->lock != NULL);
-
- PyThread_acquire_lock(pending->lock, WAIT_LOCK);
- int result = _push_pending_call(pending, func, arg);
- PyThread_release_lock(pending->lock);
+ /* Ensure that _PyEval_InitPendingCalls() was called
+ and that _PyEval_FiniPendingCalls() is not called yet. */
+ assert(pending->lock != NULL);
+
+ PyThread_acquire_lock(pending->lock, WAIT_LOCK);
+ int result = _push_pending_call(pending, func, arg);
+ PyThread_release_lock(pending->lock);
/* signal main loop */
- SIGNAL_PENDING_CALLS(interp);
+ SIGNAL_PENDING_CALLS(interp);
return result;
}
int
-Py_AddPendingCall(int (*func)(void *), void *arg)
+Py_AddPendingCall(int (*func)(void *), void *arg)
+{
+ /* Best-effort to support subinterpreters and calls with the GIL released.
+
+ First attempt _PyThreadState_GET() since it supports subinterpreters.
+
+ If the GIL is released, _PyThreadState_GET() returns NULL . In this
+ case, use PyGILState_GetThisThreadState() which works even if the GIL
+ is released.
+
+ Sadly, PyGILState_GetThisThreadState() doesn't support subinterpreters:
+ see bpo-10915 and bpo-15751.
+
+ Py_AddPendingCall() doesn't require the caller to hold the GIL. */
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (tstate == NULL) {
+ tstate = PyGILState_GetThisThreadState();
+ }
+
+ PyInterpreterState *interp;
+ if (tstate != NULL) {
+ interp = tstate->interp;
+ }
+ else {
+ /* Last resort: use the main interpreter */
+ interp = _PyRuntime.interpreters.main;
+ }
+ return _PyEval_AddPendingCall(interp, func, arg);
+}
+
+static int
+handle_signals(PyThreadState *tstate)
{
- /* Best-effort to support subinterpreters and calls with the GIL released.
-
- First attempt _PyThreadState_GET() since it supports subinterpreters.
-
- If the GIL is released, _PyThreadState_GET() returns NULL . In this
- case, use PyGILState_GetThisThreadState() which works even if the GIL
- is released.
-
- Sadly, PyGILState_GetThisThreadState() doesn't support subinterpreters:
- see bpo-10915 and bpo-15751.
-
- Py_AddPendingCall() doesn't require the caller to hold the GIL. */
- PyThreadState *tstate = _PyThreadState_GET();
- if (tstate == NULL) {
- tstate = PyGILState_GetThisThreadState();
- }
-
- PyInterpreterState *interp;
- if (tstate != NULL) {
- interp = tstate->interp;
- }
- else {
- /* Last resort: use the main interpreter */
- interp = _PyRuntime.interpreters.main;
- }
- return _PyEval_AddPendingCall(interp, func, arg);
-}
-
-static int
-handle_signals(PyThreadState *tstate)
-{
- assert(is_tstate_valid(tstate));
- if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
- return 0;
- }
-
- UNSIGNAL_PENDING_SIGNALS(tstate->interp);
- if (_PyErr_CheckSignalsTstate(tstate) < 0) {
- /* On failure, re-schedule a call to handle_signals(). */
- SIGNAL_PENDING_SIGNALS(tstate->interp, 0);
- return -1;
- }
- return 0;
-}
-
-static int
-make_pending_calls(PyThreadState *tstate)
-{
- assert(is_tstate_valid(tstate));
-
- /* only execute pending calls on main thread */
- if (!_Py_ThreadCanHandlePendingCalls()) {
+ assert(is_tstate_valid(tstate));
+ if (!_Py_ThreadCanHandleSignals(tstate->interp)) {
return 0;
}
-
+
+ UNSIGNAL_PENDING_SIGNALS(tstate->interp);
+ if (_PyErr_CheckSignalsTstate(tstate) < 0) {
+ /* On failure, re-schedule a call to handle_signals(). */
+ SIGNAL_PENDING_SIGNALS(tstate->interp, 0);
+ return -1;
+ }
+ return 0;
+}
+
+static int
+make_pending_calls(PyThreadState *tstate)
+{
+ assert(is_tstate_valid(tstate));
+
+ /* only execute pending calls on main thread */
+ if (!_Py_ThreadCanHandlePendingCalls()) {
+ return 0;
+ }
+
/* don't perform recursive pending calls */
- static int busy = 0;
- if (busy) {
+ static int busy = 0;
+ if (busy) {
return 0;
- }
+ }
busy = 1;
-
+
/* unsignal before starting to call callbacks, so that any callback
added in-between re-signals */
- UNSIGNAL_PENDING_CALLS(tstate->interp);
- int res = 0;
+ UNSIGNAL_PENDING_CALLS(tstate->interp);
+ int res = 0;
/* perform a bounded number of calls, in case of recursion */
- struct _pending_calls *pending = &tstate->interp->ceval.pending;
- for (int i=0; i<NPENDINGCALLS; i++) {
- int (*func)(void *) = NULL;
+ struct _pending_calls *pending = &tstate->interp->ceval.pending;
+ for (int i=0; i<NPENDINGCALLS; i++) {
+ int (*func)(void *) = NULL;
void *arg = NULL;
/* pop one item off the queue while holding the lock */
- PyThread_acquire_lock(pending->lock, WAIT_LOCK);
- _pop_pending_call(pending, &func, &arg);
- PyThread_release_lock(pending->lock);
-
+ PyThread_acquire_lock(pending->lock, WAIT_LOCK);
+ _pop_pending_call(pending, &func, &arg);
+ PyThread_release_lock(pending->lock);
+
/* having released the lock, perform the callback */
- if (func == NULL) {
+ if (func == NULL) {
break;
- }
- res = func(arg);
- if (res) {
+ }
+ res = func(arg);
+ if (res) {
goto error;
}
}
busy = 0;
- return res;
+ return res;
error:
busy = 0;
- SIGNAL_PENDING_CALLS(tstate->interp);
- return res;
+ SIGNAL_PENDING_CALLS(tstate->interp);
+ return res;
+}
+
+void
+_Py_FinishPendingCalls(PyThreadState *tstate)
+{
+ assert(PyGILState_Check());
+
+ struct _pending_calls *pending = &tstate->interp->ceval.pending;
+
+ if (!_Py_atomic_load_relaxed(&(pending->calls_to_do))) {
+ return;
+ }
+
+ if (make_pending_calls(tstate) < 0) {
+ PyObject *exc, *val, *tb;
+ _PyErr_Fetch(tstate, &exc, &val, &tb);
+ PyErr_BadInternalCall();
+ _PyErr_ChainExceptions(exc, val, tb);
+ _PyErr_Print(tstate);
+ }
+}
+
+/* Py_MakePendingCalls() is a simple wrapper for the sake
+ of backward-compatibility. */
+int
+Py_MakePendingCalls(void)
+{
+ assert(PyGILState_Check());
+
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ /* Python signal handler doesn't really queue a callback: it only signals
+ that a signal was received, see _PyEval_SignalReceived(). */
+ int res = handle_signals(tstate);
+ if (res != 0) {
+ return res;
+ }
+
+ res = make_pending_calls(tstate);
+ if (res != 0) {
+ return res;
+ }
+
+ return 0;
}
-void
-_Py_FinishPendingCalls(PyThreadState *tstate)
-{
- assert(PyGILState_Check());
-
- struct _pending_calls *pending = &tstate->interp->ceval.pending;
-
- if (!_Py_atomic_load_relaxed(&(pending->calls_to_do))) {
- return;
- }
-
- if (make_pending_calls(tstate) < 0) {
- PyObject *exc, *val, *tb;
- _PyErr_Fetch(tstate, &exc, &val, &tb);
- PyErr_BadInternalCall();
- _PyErr_ChainExceptions(exc, val, tb);
- _PyErr_Print(tstate);
- }
-}
-
-/* Py_MakePendingCalls() is a simple wrapper for the sake
- of backward-compatibility. */
-int
-Py_MakePendingCalls(void)
-{
- assert(PyGILState_Check());
-
- PyThreadState *tstate = _PyThreadState_GET();
-
- /* Python signal handler doesn't really queue a callback: it only signals
- that a signal was received, see _PyEval_SignalReceived(). */
- int res = handle_signals(tstate);
- if (res != 0) {
- return res;
- }
-
- res = make_pending_calls(tstate);
- if (res != 0) {
- return res;
- }
-
- return 0;
-}
-
/* The interpreter's recursion limit */
#ifndef Py_DEFAULT_RECURSION_LIMIT
@@ -722,104 +722,104 @@ Py_MakePendingCalls(void)
int _Py_CheckRecursionLimit = Py_DEFAULT_RECURSION_LIMIT;
void
-_PyEval_InitRuntimeState(struct _ceval_runtime_state *ceval)
+_PyEval_InitRuntimeState(struct _ceval_runtime_state *ceval)
{
_Py_CheckRecursionLimit = Py_DEFAULT_RECURSION_LIMIT;
- _gil_initialize(&ceval->gil);
+ _gil_initialize(&ceval->gil);
+}
+
+int
+_PyEval_InitState(struct _ceval_state *ceval)
+{
+ ceval->recursion_limit = Py_DEFAULT_RECURSION_LIMIT;
+
+ struct _pending_calls *pending = &ceval->pending;
+ assert(pending->lock == NULL);
+
+ pending->lock = PyThread_allocate_lock();
+ if (pending->lock == NULL) {
+ return -1;
+ }
+
+ return 0;
+}
+
+void
+_PyEval_FiniState(struct _ceval_state *ceval)
+{
+ struct _pending_calls *pending = &ceval->pending;
+ if (pending->lock != NULL) {
+ PyThread_free_lock(pending->lock);
+ pending->lock = NULL;
+ }
}
int
-_PyEval_InitState(struct _ceval_state *ceval)
-{
- ceval->recursion_limit = Py_DEFAULT_RECURSION_LIMIT;
-
- struct _pending_calls *pending = &ceval->pending;
- assert(pending->lock == NULL);
-
- pending->lock = PyThread_allocate_lock();
- if (pending->lock == NULL) {
- return -1;
- }
-
- return 0;
-}
-
-void
-_PyEval_FiniState(struct _ceval_state *ceval)
-{
- struct _pending_calls *pending = &ceval->pending;
- if (pending->lock != NULL) {
- PyThread_free_lock(pending->lock);
- pending->lock = NULL;
- }
-}
-
-int
Py_GetRecursionLimit(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return tstate->interp->ceval.recursion_limit;
+ PyThreadState *tstate = _PyThreadState_GET();
+ return tstate->interp->ceval.recursion_limit;
}
void
Py_SetRecursionLimit(int new_limit)
{
- PyThreadState *tstate = _PyThreadState_GET();
- tstate->interp->ceval.recursion_limit = new_limit;
- if (_Py_IsMainInterpreter(tstate)) {
- _Py_CheckRecursionLimit = new_limit;
- }
+ PyThreadState *tstate = _PyThreadState_GET();
+ tstate->interp->ceval.recursion_limit = new_limit;
+ if (_Py_IsMainInterpreter(tstate)) {
+ _Py_CheckRecursionLimit = new_limit;
+ }
}
-/* The function _Py_EnterRecursiveCall() only calls _Py_CheckRecursiveCall()
+/* The function _Py_EnterRecursiveCall() only calls _Py_CheckRecursiveCall()
if the recursion_depth reaches _Py_CheckRecursionLimit.
If USE_STACKCHECK, the macro decrements _Py_CheckRecursionLimit
to guarantee that _Py_CheckRecursiveCall() is regularly called.
Without USE_STACKCHECK, there is no need for this. */
int
-_Py_CheckRecursiveCall(PyThreadState *tstate, const char *where)
+_Py_CheckRecursiveCall(PyThreadState *tstate, const char *where)
{
- int recursion_limit = tstate->interp->ceval.recursion_limit;
+ int recursion_limit = tstate->interp->ceval.recursion_limit;
#ifdef USE_STACKCHECK
tstate->stackcheck_counter = 0;
if (PyOS_CheckStack()) {
--tstate->recursion_depth;
- _PyErr_SetString(tstate, PyExc_MemoryError, "Stack overflow");
+ _PyErr_SetString(tstate, PyExc_MemoryError, "Stack overflow");
return -1;
}
- if (_Py_IsMainInterpreter(tstate)) {
- /* Needed for ABI backwards-compatibility (see bpo-31857) */
- _Py_CheckRecursionLimit = recursion_limit;
- }
+ if (_Py_IsMainInterpreter(tstate)) {
+ /* Needed for ABI backwards-compatibility (see bpo-31857) */
+ _Py_CheckRecursionLimit = recursion_limit;
+ }
#endif
- if (tstate->recursion_critical)
- /* Somebody asked that we don't check for recursion. */
- return 0;
- if (tstate->overflowed) {
- if (tstate->recursion_depth > recursion_limit + 50 || tstate->overflowed > 50) {
+ if (tstate->recursion_critical)
+ /* Somebody asked that we don't check for recursion. */
+ return 0;
+ if (tstate->overflowed) {
+ if (tstate->recursion_depth > recursion_limit + 50 || tstate->overflowed > 50) {
/* Overflowing while handling an overflow. Give up. */
Py_FatalError("Cannot recover from stack overflow.");
}
}
- else {
- if (tstate->recursion_depth > recursion_limit) {
- tstate->overflowed++;
- _PyErr_Format(tstate, PyExc_RecursionError,
- "maximum recursion depth exceeded%s",
- where);
- tstate->overflowed--;
- --tstate->recursion_depth;
- return -1;
- }
+ else {
+ if (tstate->recursion_depth > recursion_limit) {
+ tstate->overflowed++;
+ _PyErr_Format(tstate, PyExc_RecursionError,
+ "maximum recursion depth exceeded%s",
+ where);
+ tstate->overflowed--;
+ --tstate->recursion_depth;
+ return -1;
+ }
}
return 0;
}
-static int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause);
-static int unpack_iterable(PyThreadState *, PyObject *, int, int, PyObject **);
+static int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause);
+static int unpack_iterable(PyThreadState *, PyObject *, int, int, PyObject **);
-#define _Py_TracingPossible(ceval) ((ceval)->tracing_possible)
+#define _Py_TracingPossible(ceval) ((ceval)->tracing_possible)
PyObject *
@@ -837,90 +837,90 @@ PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals)
/* Interpreter main loop */
PyObject *
-PyEval_EvalFrame(PyFrameObject *f)
-{
- /* Function kept for backward compatibility */
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyEval_EvalFrame(tstate, f, 0);
+PyEval_EvalFrame(PyFrameObject *f)
+{
+ /* Function kept for backward compatibility */
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyEval_EvalFrame(tstate, f, 0);
}
PyObject *
PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyEval_EvalFrame(tstate, f, throwflag);
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyEval_EvalFrame(tstate, f, throwflag);
+}
+
+
+/* Handle signals, pending calls, GIL drop request
+ and asynchronous exception */
+static int
+eval_frame_handle_pending(PyThreadState *tstate)
+{
+ _PyRuntimeState * const runtime = &_PyRuntime;
+ struct _ceval_runtime_state *ceval = &runtime->ceval;
+
+ /* Pending signals */
+ if (_Py_atomic_load_relaxed(&ceval->signals_pending)) {
+ if (handle_signals(tstate) != 0) {
+ return -1;
+ }
+ }
+
+ /* Pending calls */
+ struct _ceval_state *ceval2 = &tstate->interp->ceval;
+ if (_Py_atomic_load_relaxed(&ceval2->pending.calls_to_do)) {
+ if (make_pending_calls(tstate) != 0) {
+ return -1;
+ }
+ }
+
+ /* GIL drop request */
+ if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) {
+ /* Give another thread a chance */
+ if (_PyThreadState_Swap(&runtime->gilstate, NULL) != tstate) {
+ Py_FatalError("tstate mix-up");
+ }
+ drop_gil(ceval, ceval2, tstate);
+
+ /* Other threads may run now */
+
+ take_gil(tstate);
+
+ if (_PyThreadState_Swap(&runtime->gilstate, tstate) != NULL) {
+ Py_FatalError("orphan tstate");
+ }
+ }
+
+ /* Check for asynchronous exception. */
+ if (tstate->async_exc != NULL) {
+ PyObject *exc = tstate->async_exc;
+ tstate->async_exc = NULL;
+ UNSIGNAL_ASYNC_EXC(tstate->interp);
+ _PyErr_SetNone(tstate, exc);
+ Py_DECREF(exc);
+ return -1;
+ }
+
+#ifdef MS_WINDOWS
+ // bpo-42296: On Windows, _PyEval_SignalReceived() can be called in a
+ // different thread than the Python thread, in which case
+ // _Py_ThreadCanHandleSignals() is wrong. Recompute eval_breaker in the
+ // current Python thread with the correct _Py_ThreadCanHandleSignals()
+ // value. It prevents to interrupt the eval loop at every instruction if
+ // the current Python thread cannot handle signals (if
+ // _Py_ThreadCanHandleSignals() is false).
+ COMPUTE_EVAL_BREAKER(tstate->interp, ceval, ceval2);
+#endif
+
+ return 0;
}
-
-/* Handle signals, pending calls, GIL drop request
- and asynchronous exception */
-static int
-eval_frame_handle_pending(PyThreadState *tstate)
-{
- _PyRuntimeState * const runtime = &_PyRuntime;
- struct _ceval_runtime_state *ceval = &runtime->ceval;
-
- /* Pending signals */
- if (_Py_atomic_load_relaxed(&ceval->signals_pending)) {
- if (handle_signals(tstate) != 0) {
- return -1;
- }
- }
-
- /* Pending calls */
- struct _ceval_state *ceval2 = &tstate->interp->ceval;
- if (_Py_atomic_load_relaxed(&ceval2->pending.calls_to_do)) {
- if (make_pending_calls(tstate) != 0) {
- return -1;
- }
- }
-
- /* GIL drop request */
- if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) {
- /* Give another thread a chance */
- if (_PyThreadState_Swap(&runtime->gilstate, NULL) != tstate) {
- Py_FatalError("tstate mix-up");
- }
- drop_gil(ceval, ceval2, tstate);
-
- /* Other threads may run now */
-
- take_gil(tstate);
-
- if (_PyThreadState_Swap(&runtime->gilstate, tstate) != NULL) {
- Py_FatalError("orphan tstate");
- }
- }
-
- /* Check for asynchronous exception. */
- if (tstate->async_exc != NULL) {
- PyObject *exc = tstate->async_exc;
- tstate->async_exc = NULL;
- UNSIGNAL_ASYNC_EXC(tstate->interp);
- _PyErr_SetNone(tstate, exc);
- Py_DECREF(exc);
- return -1;
- }
-
-#ifdef MS_WINDOWS
- // bpo-42296: On Windows, _PyEval_SignalReceived() can be called in a
- // different thread than the Python thread, in which case
- // _Py_ThreadCanHandleSignals() is wrong. Recompute eval_breaker in the
- // current Python thread with the correct _Py_ThreadCanHandleSignals()
- // value. It prevents to interrupt the eval loop at every instruction if
- // the current Python thread cannot handle signals (if
- // _Py_ThreadCanHandleSignals() is false).
- COMPUTE_EVAL_BREAKER(tstate->interp, ceval, ceval2);
-#endif
-
- return 0;
-}
-
PyObject* _Py_HOT_FUNCTION
-_PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
+_PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
{
- _Py_EnsureTstateNotNULL(tstate);
-
+ _Py_EnsureTstateNotNULL(tstate);
+
#ifdef DXPAIRS
int lastopcode = 0;
#endif
@@ -930,8 +930,8 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
int oparg; /* Current opcode argument, if any */
PyObject **fastlocals, **freevars;
PyObject *retval = NULL; /* Return value */
- struct _ceval_state * const ceval2 = &tstate->interp->ceval;
- _Py_atomic_int * const eval_breaker = &ceval2->eval_breaker;
+ struct _ceval_state * const ceval2 = &tstate->interp->ceval;
+ _Py_atomic_int * const eval_breaker = &ceval2->eval_breaker;
PyCodeObject *co;
/* when tracing we set things up so that
@@ -946,7 +946,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
const _Py_CODEUNIT *first_instr;
PyObject *names;
PyObject *consts;
- _PyOpcache *co_opcache;
+ _PyOpcache *co_opcache;
#ifdef LLTRACE
_Py_IDENTIFIER(__ltrace__);
@@ -1013,13 +1013,13 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
#include "opcode_targets.h"
#define TARGET(op) \
- op: \
- TARGET_##op
+ op: \
+ TARGET_##op
#ifdef LLTRACE
#define FAST_DISPATCH() \
{ \
- if (!lltrace && !_Py_TracingPossible(ceval2) && !PyDTrace_LINE_ENABLED()) { \
+ if (!lltrace && !_Py_TracingPossible(ceval2) && !PyDTrace_LINE_ENABLED()) { \
f->f_lasti = INSTR_OFFSET(); \
NEXTOPARG(); \
goto *opcode_targets[opcode]; \
@@ -1029,7 +1029,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
#else
#define FAST_DISPATCH() \
{ \
- if (!_Py_TracingPossible(ceval2) && !PyDTrace_LINE_ENABLED()) { \
+ if (!_Py_TracingPossible(ceval2) && !PyDTrace_LINE_ENABLED()) { \
f->f_lasti = INSTR_OFFSET(); \
NEXTOPARG(); \
goto *opcode_targets[opcode]; \
@@ -1038,17 +1038,17 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
}
#endif
-#define DISPATCH() \
- { \
- if (!_Py_atomic_load_relaxed(eval_breaker)) { \
- FAST_DISPATCH(); \
- } \
- continue; \
- }
-
+#define DISPATCH() \
+ { \
+ if (!_Py_atomic_load_relaxed(eval_breaker)) { \
+ FAST_DISPATCH(); \
+ } \
+ continue; \
+ }
+
#else
-#define TARGET(op) op
-#define FAST_DISPATCH() goto fast_next_opcode
+#define TARGET(op) op
+#define FAST_DISPATCH() goto fast_next_opcode
#define DISPATCH() continue
#endif
@@ -1101,23 +1101,23 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
*/
-#define PREDICT_ID(op) PRED_##op
-
+#define PREDICT_ID(op) PRED_##op
+
#if defined(DYNAMIC_EXECUTION_PROFILE) || USE_COMPUTED_GOTOS
-#define PREDICT(op) if (0) goto PREDICT_ID(op)
+#define PREDICT(op) if (0) goto PREDICT_ID(op)
#else
#define PREDICT(op) \
- do { \
+ do { \
_Py_CODEUNIT word = *next_instr; \
opcode = _Py_OPCODE(word); \
- if (opcode == op) { \
+ if (opcode == op) { \
oparg = _Py_OPARG(word); \
next_instr++; \
- goto PREDICT_ID(op); \
+ goto PREDICT_ID(op); \
} \
} while(0)
#endif
-#define PREDICTED(op) PREDICT_ID(op):
+#define PREDICTED(op) PREDICT_ID(op):
/* Stack manipulation macros */
@@ -1142,30 +1142,30 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
#ifdef LLTRACE
#define PUSH(v) { (void)(BASIC_PUSH(v), \
- lltrace && prtrace(tstate, TOP(), "push")); \
+ lltrace && prtrace(tstate, TOP(), "push")); \
assert(STACK_LEVEL() <= co->co_stacksize); }
-#define POP() ((void)(lltrace && prtrace(tstate, TOP(), "pop")), \
+#define POP() ((void)(lltrace && prtrace(tstate, TOP(), "pop")), \
BASIC_POP())
-#define STACK_GROW(n) do { \
- assert(n >= 0); \
- (void)(BASIC_STACKADJ(n), \
- lltrace && prtrace(tstate, TOP(), "stackadj")); \
- assert(STACK_LEVEL() <= co->co_stacksize); \
- } while (0)
-#define STACK_SHRINK(n) do { \
- assert(n >= 0); \
- (void)(lltrace && prtrace(tstate, TOP(), "stackadj")); \
- (void)(BASIC_STACKADJ(-n)); \
- assert(STACK_LEVEL() <= co->co_stacksize); \
- } while (0)
+#define STACK_GROW(n) do { \
+ assert(n >= 0); \
+ (void)(BASIC_STACKADJ(n), \
+ lltrace && prtrace(tstate, TOP(), "stackadj")); \
+ assert(STACK_LEVEL() <= co->co_stacksize); \
+ } while (0)
+#define STACK_SHRINK(n) do { \
+ assert(n >= 0); \
+ (void)(lltrace && prtrace(tstate, TOP(), "stackadj")); \
+ (void)(BASIC_STACKADJ(-n)); \
+ assert(STACK_LEVEL() <= co->co_stacksize); \
+ } while (0)
#define EXT_POP(STACK_POINTER) ((void)(lltrace && \
- prtrace(tstate, (STACK_POINTER)[-1], "ext_pop")), \
+ prtrace(tstate, (STACK_POINTER)[-1], "ext_pop")), \
*--(STACK_POINTER))
#else
#define PUSH(v) BASIC_PUSH(v)
#define POP() BASIC_POP()
-#define STACK_GROW(n) BASIC_STACKADJ(n)
-#define STACK_SHRINK(n) BASIC_STACKADJ(-n)
+#define STACK_GROW(n) BASIC_STACKADJ(n)
+#define STACK_SHRINK(n) BASIC_STACKADJ(-n)
#define EXT_POP(STACK_POINTER) (*--(STACK_POINTER))
#endif
@@ -1211,52 +1211,52 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
Py_XDECREF(traceback); \
} while(0)
- /* macros for opcode cache */
-#define OPCACHE_CHECK() \
- do { \
- co_opcache = NULL; \
- if (co->co_opcache != NULL) { \
- unsigned char co_opt_offset = \
- co->co_opcache_map[next_instr - first_instr]; \
- if (co_opt_offset > 0) { \
- assert(co_opt_offset <= co->co_opcache_size); \
- co_opcache = &co->co_opcache[co_opt_offset - 1]; \
- assert(co_opcache != NULL); \
- } \
- } \
- } while (0)
-
-#if OPCACHE_STATS
-
-#define OPCACHE_STAT_GLOBAL_HIT() \
- do { \
- if (co->co_opcache != NULL) opcache_global_hits++; \
- } while (0)
-
-#define OPCACHE_STAT_GLOBAL_MISS() \
- do { \
- if (co->co_opcache != NULL) opcache_global_misses++; \
- } while (0)
-
-#define OPCACHE_STAT_GLOBAL_OPT() \
- do { \
- if (co->co_opcache != NULL) opcache_global_opts++; \
- } while (0)
-
-#else /* OPCACHE_STATS */
-
-#define OPCACHE_STAT_GLOBAL_HIT()
-#define OPCACHE_STAT_GLOBAL_MISS()
-#define OPCACHE_STAT_GLOBAL_OPT()
-
-#endif
-
+ /* macros for opcode cache */
+#define OPCACHE_CHECK() \
+ do { \
+ co_opcache = NULL; \
+ if (co->co_opcache != NULL) { \
+ unsigned char co_opt_offset = \
+ co->co_opcache_map[next_instr - first_instr]; \
+ if (co_opt_offset > 0) { \
+ assert(co_opt_offset <= co->co_opcache_size); \
+ co_opcache = &co->co_opcache[co_opt_offset - 1]; \
+ assert(co_opcache != NULL); \
+ } \
+ } \
+ } while (0)
+
+#if OPCACHE_STATS
+
+#define OPCACHE_STAT_GLOBAL_HIT() \
+ do { \
+ if (co->co_opcache != NULL) opcache_global_hits++; \
+ } while (0)
+
+#define OPCACHE_STAT_GLOBAL_MISS() \
+ do { \
+ if (co->co_opcache != NULL) opcache_global_misses++; \
+ } while (0)
+
+#define OPCACHE_STAT_GLOBAL_OPT() \
+ do { \
+ if (co->co_opcache != NULL) opcache_global_opts++; \
+ } while (0)
+
+#else /* OPCACHE_STATS */
+
+#define OPCACHE_STAT_GLOBAL_HIT()
+#define OPCACHE_STAT_GLOBAL_MISS()
+#define OPCACHE_STAT_GLOBAL_OPT()
+
+#endif
+
/* Start of code */
/* push frame */
- if (_Py_EnterRecursiveCall(tstate, "")) {
+ if (_Py_EnterRecursiveCall(tstate, "")) {
return NULL;
- }
+ }
tstate->frame = f;
@@ -1333,20 +1333,20 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
f->f_stacktop = NULL; /* remains NULL unless yield suspends frame */
f->f_executing = 1;
- if (co->co_opcache_flag < OPCACHE_MIN_RUNS) {
- co->co_opcache_flag++;
- if (co->co_opcache_flag == OPCACHE_MIN_RUNS) {
- if (_PyCode_InitOpcache(co) < 0) {
- goto exit_eval_frame;
- }
-#if OPCACHE_STATS
- opcache_code_objects_extra_mem +=
- PyBytes_Size(co->co_code) / sizeof(_Py_CODEUNIT) +
- sizeof(_PyOpcache) * co->co_opcache_size;
- opcache_code_objects++;
-#endif
- }
- }
+ if (co->co_opcache_flag < OPCACHE_MIN_RUNS) {
+ co->co_opcache_flag++;
+ if (co->co_opcache_flag == OPCACHE_MIN_RUNS) {
+ if (_PyCode_InitOpcache(co) < 0) {
+ goto exit_eval_frame;
+ }
+#if OPCACHE_STATS
+ opcache_code_objects_extra_mem +=
+ PyBytes_Size(co->co_code) / sizeof(_Py_CODEUNIT) +
+ sizeof(_PyOpcache) * co->co_opcache_size;
+ opcache_code_objects++;
+#endif
+ }
+ }
#ifdef LLTRACE
lltrace = _PyDict_GetItemId(f->f_globals, &PyId___ltrace__) != NULL;
@@ -1356,27 +1356,27 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
goto error;
#ifdef Py_DEBUG
- /* _PyEval_EvalFrameDefault() must not be called with an exception set,
+ /* _PyEval_EvalFrameDefault() must not be called with an exception set,
because it can clear it (directly or indirectly) and so the
caller loses its exception */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
#endif
-main_loop:
+main_loop:
for (;;) {
assert(stack_pointer >= f->f_valuestack); /* else underflow */
assert(STACK_LEVEL() <= co->co_stacksize); /* else overflow */
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
/* Do periodic things. Doing this every time through
the loop would add too much overhead, so we do it
only every Nth instruction. We also do it if
- ``pending.calls_to_do'' is set, i.e. when an asynchronous
+ ``pending.calls_to_do'' is set, i.e. when an asynchronous
event needs attention (e.g. a signal handler or
async I/O handler); see Py_AddPendingCall() and
Py_MakePendingCalls() above. */
- if (_Py_atomic_load_relaxed(eval_breaker)) {
+ if (_Py_atomic_load_relaxed(eval_breaker)) {
opcode = _Py_OPCODE(*next_instr);
if (opcode == SETUP_FINALLY ||
opcode == SETUP_WITH ||
@@ -1400,8 +1400,8 @@ main_loop:
*/
goto fast_next_opcode;
}
-
- if (eval_frame_handle_pending(tstate) != 0) {
+
+ if (eval_frame_handle_pending(tstate) != 0) {
goto error;
}
}
@@ -1414,7 +1414,7 @@ main_loop:
/* line-by-line tracing support */
- if (_Py_TracingPossible(ceval2) &&
+ if (_Py_TracingPossible(ceval2) &&
tstate->c_tracefunc != NULL && !tstate->tracing) {
int err;
/* see maybe_call_line_trace
@@ -1466,17 +1466,17 @@ main_loop:
switch (opcode) {
/* BEWARE!
- It is essential that any operation that fails must goto error
- and that all operation that succeed call [FAST_]DISPATCH() ! */
+ It is essential that any operation that fails must goto error
+ and that all operation that succeed call [FAST_]DISPATCH() ! */
- case TARGET(NOP): {
+ case TARGET(NOP): {
FAST_DISPATCH();
- }
+ }
- case TARGET(LOAD_FAST): {
+ case TARGET(LOAD_FAST): {
PyObject *value = GETLOCAL(oparg);
if (value == NULL) {
- format_exc_check_arg(tstate, PyExc_UnboundLocalError,
+ format_exc_check_arg(tstate, PyExc_UnboundLocalError,
UNBOUNDLOCAL_ERROR_MSG,
PyTuple_GetItem(co->co_varnames, oparg));
goto error;
@@ -1486,28 +1486,28 @@ main_loop:
FAST_DISPATCH();
}
- case TARGET(LOAD_CONST): {
- PREDICTED(LOAD_CONST);
+ case TARGET(LOAD_CONST): {
+ PREDICTED(LOAD_CONST);
PyObject *value = GETITEM(consts, oparg);
Py_INCREF(value);
PUSH(value);
FAST_DISPATCH();
}
- case TARGET(STORE_FAST): {
- PREDICTED(STORE_FAST);
+ case TARGET(STORE_FAST): {
+ PREDICTED(STORE_FAST);
PyObject *value = POP();
SETLOCAL(oparg, value);
FAST_DISPATCH();
}
- case TARGET(POP_TOP): {
+ case TARGET(POP_TOP): {
PyObject *value = POP();
Py_DECREF(value);
FAST_DISPATCH();
}
- case TARGET(ROT_TWO): {
+ case TARGET(ROT_TWO): {
PyObject *top = TOP();
PyObject *second = SECOND();
SET_TOP(second);
@@ -1515,7 +1515,7 @@ main_loop:
FAST_DISPATCH();
}
- case TARGET(ROT_THREE): {
+ case TARGET(ROT_THREE): {
PyObject *top = TOP();
PyObject *second = SECOND();
PyObject *third = THIRD();
@@ -1525,37 +1525,37 @@ main_loop:
FAST_DISPATCH();
}
- case TARGET(ROT_FOUR): {
+ case TARGET(ROT_FOUR): {
+ PyObject *top = TOP();
+ PyObject *second = SECOND();
+ PyObject *third = THIRD();
+ PyObject *fourth = FOURTH();
+ SET_TOP(second);
+ SET_SECOND(third);
+ SET_THIRD(fourth);
+ SET_FOURTH(top);
+ FAST_DISPATCH();
+ }
+
+ case TARGET(DUP_TOP): {
PyObject *top = TOP();
- PyObject *second = SECOND();
- PyObject *third = THIRD();
- PyObject *fourth = FOURTH();
- SET_TOP(second);
- SET_SECOND(third);
- SET_THIRD(fourth);
- SET_FOURTH(top);
- FAST_DISPATCH();
- }
-
- case TARGET(DUP_TOP): {
- PyObject *top = TOP();
Py_INCREF(top);
PUSH(top);
FAST_DISPATCH();
}
- case TARGET(DUP_TOP_TWO): {
+ case TARGET(DUP_TOP_TWO): {
PyObject *top = TOP();
PyObject *second = SECOND();
Py_INCREF(top);
Py_INCREF(second);
- STACK_GROW(2);
+ STACK_GROW(2);
SET_TOP(top);
SET_SECOND(second);
FAST_DISPATCH();
}
- case TARGET(UNARY_POSITIVE): {
+ case TARGET(UNARY_POSITIVE): {
PyObject *value = TOP();
PyObject *res = PyNumber_Positive(value);
Py_DECREF(value);
@@ -1565,7 +1565,7 @@ main_loop:
DISPATCH();
}
- case TARGET(UNARY_NEGATIVE): {
+ case TARGET(UNARY_NEGATIVE): {
PyObject *value = TOP();
PyObject *res = PyNumber_Negative(value);
Py_DECREF(value);
@@ -1575,7 +1575,7 @@ main_loop:
DISPATCH();
}
- case TARGET(UNARY_NOT): {
+ case TARGET(UNARY_NOT): {
PyObject *value = TOP();
int err = PyObject_IsTrue(value);
Py_DECREF(value);
@@ -1589,11 +1589,11 @@ main_loop:
SET_TOP(Py_False);
DISPATCH();
}
- STACK_SHRINK(1);
+ STACK_SHRINK(1);
goto error;
}
- case TARGET(UNARY_INVERT): {
+ case TARGET(UNARY_INVERT): {
PyObject *value = TOP();
PyObject *res = PyNumber_Invert(value);
Py_DECREF(value);
@@ -1603,7 +1603,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_POWER): {
+ case TARGET(BINARY_POWER): {
PyObject *exp = POP();
PyObject *base = TOP();
PyObject *res = PyNumber_Power(base, exp, Py_None);
@@ -1615,7 +1615,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_MULTIPLY): {
+ case TARGET(BINARY_MULTIPLY): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_Multiply(left, right);
@@ -1627,7 +1627,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_MATRIX_MULTIPLY): {
+ case TARGET(BINARY_MATRIX_MULTIPLY): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_MatrixMultiply(left, right);
@@ -1639,7 +1639,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_TRUE_DIVIDE): {
+ case TARGET(BINARY_TRUE_DIVIDE): {
PyObject *divisor = POP();
PyObject *dividend = TOP();
PyObject *quotient = PyNumber_TrueDivide(dividend, divisor);
@@ -1651,7 +1651,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_FLOOR_DIVIDE): {
+ case TARGET(BINARY_FLOOR_DIVIDE): {
PyObject *divisor = POP();
PyObject *dividend = TOP();
PyObject *quotient = PyNumber_FloorDivide(dividend, divisor);
@@ -1663,7 +1663,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_MODULO): {
+ case TARGET(BINARY_MODULO): {
PyObject *divisor = POP();
PyObject *dividend = TOP();
PyObject *res;
@@ -1683,7 +1683,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_ADD): {
+ case TARGET(BINARY_ADD): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *sum;
@@ -1695,7 +1695,7 @@ main_loop:
speedup on microbenchmarks. */
if (PyUnicode_CheckExact(left) &&
PyUnicode_CheckExact(right)) {
- sum = unicode_concatenate(tstate, left, right, f, next_instr);
+ sum = unicode_concatenate(tstate, left, right, f, next_instr);
/* unicode_concatenate consumed the ref to left */
}
else {
@@ -1709,7 +1709,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_SUBTRACT): {
+ case TARGET(BINARY_SUBTRACT): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *diff = PyNumber_Subtract(left, right);
@@ -1721,7 +1721,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_SUBSCR): {
+ case TARGET(BINARY_SUBSCR): {
PyObject *sub = POP();
PyObject *container = TOP();
PyObject *res = PyObject_GetItem(container, sub);
@@ -1733,7 +1733,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_LSHIFT): {
+ case TARGET(BINARY_LSHIFT): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_Lshift(left, right);
@@ -1745,7 +1745,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_RSHIFT): {
+ case TARGET(BINARY_RSHIFT): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_Rshift(left, right);
@@ -1757,7 +1757,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_AND): {
+ case TARGET(BINARY_AND): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_And(left, right);
@@ -1769,7 +1769,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_XOR): {
+ case TARGET(BINARY_XOR): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_Xor(left, right);
@@ -1781,7 +1781,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BINARY_OR): {
+ case TARGET(BINARY_OR): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_Or(left, right);
@@ -1793,7 +1793,7 @@ main_loop:
DISPATCH();
}
- case TARGET(LIST_APPEND): {
+ case TARGET(LIST_APPEND): {
PyObject *v = POP();
PyObject *list = PEEK(oparg);
int err;
@@ -1805,7 +1805,7 @@ main_loop:
DISPATCH();
}
- case TARGET(SET_ADD): {
+ case TARGET(SET_ADD): {
PyObject *v = POP();
PyObject *set = PEEK(oparg);
int err;
@@ -1817,7 +1817,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_POWER): {
+ case TARGET(INPLACE_POWER): {
PyObject *exp = POP();
PyObject *base = TOP();
PyObject *res = PyNumber_InPlacePower(base, exp, Py_None);
@@ -1829,7 +1829,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_MULTIPLY): {
+ case TARGET(INPLACE_MULTIPLY): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_InPlaceMultiply(left, right);
@@ -1841,7 +1841,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_MATRIX_MULTIPLY): {
+ case TARGET(INPLACE_MATRIX_MULTIPLY): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_InPlaceMatrixMultiply(left, right);
@@ -1853,7 +1853,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_TRUE_DIVIDE): {
+ case TARGET(INPLACE_TRUE_DIVIDE): {
PyObject *divisor = POP();
PyObject *dividend = TOP();
PyObject *quotient = PyNumber_InPlaceTrueDivide(dividend, divisor);
@@ -1865,7 +1865,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_FLOOR_DIVIDE): {
+ case TARGET(INPLACE_FLOOR_DIVIDE): {
PyObject *divisor = POP();
PyObject *dividend = TOP();
PyObject *quotient = PyNumber_InPlaceFloorDivide(dividend, divisor);
@@ -1877,7 +1877,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_MODULO): {
+ case TARGET(INPLACE_MODULO): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *mod = PyNumber_InPlaceRemainder(left, right);
@@ -1889,12 +1889,12 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_ADD): {
+ case TARGET(INPLACE_ADD): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *sum;
if (PyUnicode_CheckExact(left) && PyUnicode_CheckExact(right)) {
- sum = unicode_concatenate(tstate, left, right, f, next_instr);
+ sum = unicode_concatenate(tstate, left, right, f, next_instr);
/* unicode_concatenate consumed the ref to left */
}
else {
@@ -1908,7 +1908,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_SUBTRACT): {
+ case TARGET(INPLACE_SUBTRACT): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *diff = PyNumber_InPlaceSubtract(left, right);
@@ -1920,7 +1920,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_LSHIFT): {
+ case TARGET(INPLACE_LSHIFT): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_InPlaceLshift(left, right);
@@ -1932,7 +1932,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_RSHIFT): {
+ case TARGET(INPLACE_RSHIFT): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_InPlaceRshift(left, right);
@@ -1944,7 +1944,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_AND): {
+ case TARGET(INPLACE_AND): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_InPlaceAnd(left, right);
@@ -1956,7 +1956,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_XOR): {
+ case TARGET(INPLACE_XOR): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_InPlaceXor(left, right);
@@ -1968,7 +1968,7 @@ main_loop:
DISPATCH();
}
- case TARGET(INPLACE_OR): {
+ case TARGET(INPLACE_OR): {
PyObject *right = POP();
PyObject *left = TOP();
PyObject *res = PyNumber_InPlaceOr(left, right);
@@ -1980,12 +1980,12 @@ main_loop:
DISPATCH();
}
- case TARGET(STORE_SUBSCR): {
+ case TARGET(STORE_SUBSCR): {
PyObject *sub = TOP();
PyObject *container = SECOND();
PyObject *v = THIRD();
int err;
- STACK_SHRINK(3);
+ STACK_SHRINK(3);
/* container[sub] = v */
err = PyObject_SetItem(container, sub, v);
Py_DECREF(v);
@@ -1996,11 +1996,11 @@ main_loop:
DISPATCH();
}
- case TARGET(DELETE_SUBSCR): {
+ case TARGET(DELETE_SUBSCR): {
PyObject *sub = TOP();
PyObject *container = SECOND();
int err;
- STACK_SHRINK(2);
+ STACK_SHRINK(2);
/* del container[sub] */
err = PyObject_DelItem(container, sub);
Py_DECREF(container);
@@ -2010,18 +2010,18 @@ main_loop:
DISPATCH();
}
- case TARGET(PRINT_EXPR): {
+ case TARGET(PRINT_EXPR): {
_Py_IDENTIFIER(displayhook);
PyObject *value = POP();
PyObject *hook = _PySys_GetObjectId(&PyId_displayhook);
PyObject *res;
if (hook == NULL) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "lost sys.displayhook");
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "lost sys.displayhook");
Py_DECREF(value);
goto error;
}
- res = PyObject_CallOneArg(hook, value);
+ res = PyObject_CallOneArg(hook, value);
Py_DECREF(value);
if (res == NULL)
goto error;
@@ -2029,7 +2029,7 @@ main_loop:
DISPATCH();
}
- case TARGET(RAISE_VARARGS): {
+ case TARGET(RAISE_VARARGS): {
PyObject *cause = NULL, *exc = NULL;
switch (oparg) {
case 2:
@@ -2039,26 +2039,26 @@ main_loop:
exc = POP(); /* exc */
/* fall through */
case 0:
- if (do_raise(tstate, exc, cause)) {
- goto exception_unwind;
+ if (do_raise(tstate, exc, cause)) {
+ goto exception_unwind;
}
break;
default:
- _PyErr_SetString(tstate, PyExc_SystemError,
- "bad RAISE_VARARGS oparg");
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "bad RAISE_VARARGS oparg");
break;
}
goto error;
}
- case TARGET(RETURN_VALUE): {
+ case TARGET(RETURN_VALUE): {
retval = POP();
- assert(f->f_iblock == 0);
- assert(EMPTY());
- goto exiting;
+ assert(f->f_iblock == 0);
+ assert(EMPTY());
+ goto exiting;
}
- case TARGET(GET_AITER): {
+ case TARGET(GET_AITER): {
unaryfunc getter = NULL;
PyObject *iter = NULL;
PyObject *obj = TOP();
@@ -2078,10 +2078,10 @@ main_loop:
}
else {
SET_TOP(NULL);
- _PyErr_Format(tstate, PyExc_TypeError,
- "'async for' requires an object with "
- "__aiter__ method, got %.100s",
- type->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'async for' requires an object with "
+ "__aiter__ method, got %.100s",
+ type->tp_name);
Py_DECREF(obj);
goto error;
}
@@ -2090,10 +2090,10 @@ main_loop:
Py_TYPE(iter)->tp_as_async->am_anext == NULL) {
SET_TOP(NULL);
- _PyErr_Format(tstate, PyExc_TypeError,
- "'async for' received an object from __aiter__ "
- "that does not implement __anext__: %.100s",
- Py_TYPE(iter)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'async for' received an object from __aiter__ "
+ "that does not implement __anext__: %.100s",
+ Py_TYPE(iter)->tp_name);
Py_DECREF(iter);
goto error;
}
@@ -2102,7 +2102,7 @@ main_loop:
DISPATCH();
}
- case TARGET(GET_ANEXT): {
+ case TARGET(GET_ANEXT): {
unaryfunc getter = NULL;
PyObject *next_iter = NULL;
PyObject *awaitable = NULL;
@@ -2126,10 +2126,10 @@ main_loop:
}
}
else {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'async for' requires an iterator with "
- "__anext__ method, got %.100s",
- type->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'async for' requires an iterator with "
+ "__anext__ method, got %.100s",
+ type->tp_name);
goto error;
}
@@ -2153,18 +2153,18 @@ main_loop:
DISPATCH();
}
- case TARGET(GET_AWAITABLE): {
- PREDICTED(GET_AWAITABLE);
+ case TARGET(GET_AWAITABLE): {
+ PREDICTED(GET_AWAITABLE);
PyObject *iterable = TOP();
PyObject *iter = _PyCoro_GetAwaitableIter(iterable);
if (iter == NULL) {
- int opcode_at_minus_3 = 0;
- if ((next_instr - first_instr) > 2) {
- opcode_at_minus_3 = _Py_OPCODE(next_instr[-3]);
- }
- format_awaitable_error(tstate, Py_TYPE(iterable),
- opcode_at_minus_3,
+ int opcode_at_minus_3 = 0;
+ if ((next_instr - first_instr) > 2) {
+ opcode_at_minus_3 = _Py_OPCODE(next_instr[-3]);
+ }
+ format_awaitable_error(tstate, Py_TYPE(iterable),
+ opcode_at_minus_3,
_Py_OPCODE(next_instr[-2]));
}
@@ -2178,8 +2178,8 @@ main_loop:
being awaited on. */
Py_DECREF(yf);
Py_CLEAR(iter);
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "coroutine is being awaited already");
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "coroutine is being awaited already");
/* The code below jumps to `error` if `iter` is NULL. */
}
}
@@ -2194,7 +2194,7 @@ main_loop:
DISPATCH();
}
- case TARGET(YIELD_FROM): {
+ case TARGET(YIELD_FROM): {
PyObject *v = POP();
PyObject *receiver = TOP();
int err;
@@ -2205,13 +2205,13 @@ main_loop:
if (v == Py_None)
retval = Py_TYPE(receiver)->tp_iternext(receiver);
else
- retval = _PyObject_CallMethodIdOneArg(receiver, &PyId_send, v);
+ retval = _PyObject_CallMethodIdOneArg(receiver, &PyId_send, v);
}
Py_DECREF(v);
if (retval == NULL) {
PyObject *val;
if (tstate->c_tracefunc != NULL
- && _PyErr_ExceptionMatches(tstate, PyExc_StopIteration))
+ && _PyErr_ExceptionMatches(tstate, PyExc_StopIteration))
call_exc_trace(tstate->c_tracefunc, tstate->c_traceobj, tstate, f);
err = _PyGen_FetchStopIterationValue(&val);
if (err < 0)
@@ -2225,10 +2225,10 @@ main_loop:
/* and repeat... */
assert(f->f_lasti >= (int)sizeof(_Py_CODEUNIT));
f->f_lasti -= sizeof(_Py_CODEUNIT);
- goto exiting;
+ goto exiting;
}
- case TARGET(YIELD_VALUE): {
+ case TARGET(YIELD_VALUE): {
retval = POP();
if (co->co_flags & CO_ASYNC_GENERATOR) {
@@ -2242,86 +2242,86 @@ main_loop:
}
f->f_stacktop = stack_pointer;
- goto exiting;
+ goto exiting;
}
- case TARGET(POP_EXCEPT): {
- PyObject *type, *value, *traceback;
- _PyErr_StackItem *exc_info;
+ case TARGET(POP_EXCEPT): {
+ PyObject *type, *value, *traceback;
+ _PyErr_StackItem *exc_info;
PyTryBlock *b = PyFrame_BlockPop(f);
if (b->b_type != EXCEPT_HANDLER) {
- _PyErr_SetString(tstate, PyExc_SystemError,
- "popped block is not an except handler");
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "popped block is not an except handler");
goto error;
}
- assert(STACK_LEVEL() >= (b)->b_level + 3 &&
- STACK_LEVEL() <= (b)->b_level + 4);
- exc_info = tstate->exc_info;
- type = exc_info->exc_type;
- value = exc_info->exc_value;
- traceback = exc_info->exc_traceback;
- exc_info->exc_type = POP();
- exc_info->exc_value = POP();
- exc_info->exc_traceback = POP();
- Py_XDECREF(type);
- Py_XDECREF(value);
- Py_XDECREF(traceback);
+ assert(STACK_LEVEL() >= (b)->b_level + 3 &&
+ STACK_LEVEL() <= (b)->b_level + 4);
+ exc_info = tstate->exc_info;
+ type = exc_info->exc_type;
+ value = exc_info->exc_value;
+ traceback = exc_info->exc_traceback;
+ exc_info->exc_type = POP();
+ exc_info->exc_value = POP();
+ exc_info->exc_traceback = POP();
+ Py_XDECREF(type);
+ Py_XDECREF(value);
+ Py_XDECREF(traceback);
DISPATCH();
}
- case TARGET(POP_BLOCK): {
- PREDICTED(POP_BLOCK);
- PyFrame_BlockPop(f);
+ case TARGET(POP_BLOCK): {
+ PREDICTED(POP_BLOCK);
+ PyFrame_BlockPop(f);
DISPATCH();
}
- case TARGET(RERAISE): {
- PyObject *exc = POP();
- PyObject *val = POP();
- PyObject *tb = POP();
- assert(PyExceptionClass_Check(exc));
- _PyErr_Restore(tstate, exc, val, tb);
- goto exception_unwind;
- }
-
- case TARGET(END_ASYNC_FOR): {
- PyObject *exc = POP();
- assert(PyExceptionClass_Check(exc));
- if (PyErr_GivenExceptionMatches(exc, PyExc_StopAsyncIteration)) {
- PyTryBlock *b = PyFrame_BlockPop(f);
- assert(b->b_type == EXCEPT_HANDLER);
- Py_DECREF(exc);
- UNWIND_EXCEPT_HANDLER(b);
- Py_DECREF(POP());
- JUMPBY(oparg);
- FAST_DISPATCH();
- }
- else {
- PyObject *val = POP();
- PyObject *tb = POP();
- _PyErr_Restore(tstate, exc, val, tb);
- goto exception_unwind;
- }
- }
-
- case TARGET(LOAD_ASSERTION_ERROR): {
- PyObject *value = PyExc_AssertionError;
- Py_INCREF(value);
- PUSH(value);
- FAST_DISPATCH();
- }
-
- case TARGET(LOAD_BUILD_CLASS): {
+ case TARGET(RERAISE): {
+ PyObject *exc = POP();
+ PyObject *val = POP();
+ PyObject *tb = POP();
+ assert(PyExceptionClass_Check(exc));
+ _PyErr_Restore(tstate, exc, val, tb);
+ goto exception_unwind;
+ }
+
+ case TARGET(END_ASYNC_FOR): {
+ PyObject *exc = POP();
+ assert(PyExceptionClass_Check(exc));
+ if (PyErr_GivenExceptionMatches(exc, PyExc_StopAsyncIteration)) {
+ PyTryBlock *b = PyFrame_BlockPop(f);
+ assert(b->b_type == EXCEPT_HANDLER);
+ Py_DECREF(exc);
+ UNWIND_EXCEPT_HANDLER(b);
+ Py_DECREF(POP());
+ JUMPBY(oparg);
+ FAST_DISPATCH();
+ }
+ else {
+ PyObject *val = POP();
+ PyObject *tb = POP();
+ _PyErr_Restore(tstate, exc, val, tb);
+ goto exception_unwind;
+ }
+ }
+
+ case TARGET(LOAD_ASSERTION_ERROR): {
+ PyObject *value = PyExc_AssertionError;
+ Py_INCREF(value);
+ PUSH(value);
+ FAST_DISPATCH();
+ }
+
+ case TARGET(LOAD_BUILD_CLASS): {
_Py_IDENTIFIER(__build_class__);
PyObject *bc;
if (PyDict_CheckExact(f->f_builtins)) {
- bc = _PyDict_GetItemIdWithError(f->f_builtins, &PyId___build_class__);
+ bc = _PyDict_GetItemIdWithError(f->f_builtins, &PyId___build_class__);
if (bc == NULL) {
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_SetString(tstate, PyExc_NameError,
- "__build_class__ not found");
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_SetString(tstate, PyExc_NameError,
+ "__build_class__ not found");
+ }
goto error;
}
Py_INCREF(bc);
@@ -2332,9 +2332,9 @@ main_loop:
goto error;
bc = PyObject_GetItem(f->f_builtins, build_class_str);
if (bc == NULL) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError))
- _PyErr_SetString(tstate, PyExc_NameError,
- "__build_class__ not found");
+ if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError))
+ _PyErr_SetString(tstate, PyExc_NameError,
+ "__build_class__ not found");
goto error;
}
}
@@ -2342,14 +2342,14 @@ main_loop:
DISPATCH();
}
- case TARGET(STORE_NAME): {
+ case TARGET(STORE_NAME): {
PyObject *name = GETITEM(names, oparg);
PyObject *v = POP();
PyObject *ns = f->f_locals;
int err;
if (ns == NULL) {
- _PyErr_Format(tstate, PyExc_SystemError,
- "no locals found when storing %R", name);
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "no locals found when storing %R", name);
Py_DECREF(v);
goto error;
}
@@ -2363,18 +2363,18 @@ main_loop:
DISPATCH();
}
- case TARGET(DELETE_NAME): {
+ case TARGET(DELETE_NAME): {
PyObject *name = GETITEM(names, oparg);
PyObject *ns = f->f_locals;
int err;
if (ns == NULL) {
- _PyErr_Format(tstate, PyExc_SystemError,
- "no locals when deleting %R", name);
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "no locals when deleting %R", name);
goto error;
}
err = PyObject_DelItem(ns, name);
if (err != 0) {
- format_exc_check_arg(tstate, PyExc_NameError,
+ format_exc_check_arg(tstate, PyExc_NameError,
NAME_ERROR_MSG,
name);
goto error;
@@ -2382,8 +2382,8 @@ main_loop:
DISPATCH();
}
- case TARGET(UNPACK_SEQUENCE): {
- PREDICTED(UNPACK_SEQUENCE);
+ case TARGET(UNPACK_SEQUENCE): {
+ PREDICTED(UNPACK_SEQUENCE);
PyObject *seq = POP(), *item, **items;
if (PyTuple_CheckExact(seq) &&
PyTuple_GET_SIZE(seq) == oparg) {
@@ -2401,9 +2401,9 @@ main_loop:
Py_INCREF(item);
PUSH(item);
}
- } else if (unpack_iterable(tstate, seq, oparg, -1,
+ } else if (unpack_iterable(tstate, seq, oparg, -1,
stack_pointer + oparg)) {
- STACK_GROW(oparg);
+ STACK_GROW(oparg);
} else {
/* unpack_iterable() raised an exception */
Py_DECREF(seq);
@@ -2413,11 +2413,11 @@ main_loop:
DISPATCH();
}
- case TARGET(UNPACK_EX): {
+ case TARGET(UNPACK_EX): {
int totalargs = 1 + (oparg & 0xFF) + (oparg >> 8);
PyObject *seq = POP();
- if (unpack_iterable(tstate, seq, oparg & 0xFF, oparg >> 8,
+ if (unpack_iterable(tstate, seq, oparg & 0xFF, oparg >> 8,
stack_pointer + totalargs)) {
stack_pointer += totalargs;
} else {
@@ -2428,12 +2428,12 @@ main_loop:
DISPATCH();
}
- case TARGET(STORE_ATTR): {
+ case TARGET(STORE_ATTR): {
PyObject *name = GETITEM(names, oparg);
PyObject *owner = TOP();
PyObject *v = SECOND();
int err;
- STACK_SHRINK(2);
+ STACK_SHRINK(2);
err = PyObject_SetAttr(owner, name, v);
Py_DECREF(v);
Py_DECREF(owner);
@@ -2442,7 +2442,7 @@ main_loop:
DISPATCH();
}
- case TARGET(DELETE_ATTR): {
+ case TARGET(DELETE_ATTR): {
PyObject *name = GETITEM(names, oparg);
PyObject *owner = POP();
int err;
@@ -2453,7 +2453,7 @@ main_loop:
DISPATCH();
}
- case TARGET(STORE_GLOBAL): {
+ case TARGET(STORE_GLOBAL): {
PyObject *name = GETITEM(names, oparg);
PyObject *v = POP();
int err;
@@ -2464,63 +2464,63 @@ main_loop:
DISPATCH();
}
- case TARGET(DELETE_GLOBAL): {
+ case TARGET(DELETE_GLOBAL): {
PyObject *name = GETITEM(names, oparg);
int err;
err = PyDict_DelItem(f->f_globals, name);
if (err != 0) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
- format_exc_check_arg(tstate, PyExc_NameError,
- NAME_ERROR_MSG, name);
- }
+ if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ format_exc_check_arg(tstate, PyExc_NameError,
+ NAME_ERROR_MSG, name);
+ }
goto error;
}
DISPATCH();
}
- case TARGET(LOAD_NAME): {
+ case TARGET(LOAD_NAME): {
PyObject *name = GETITEM(names, oparg);
PyObject *locals = f->f_locals;
PyObject *v;
if (locals == NULL) {
- _PyErr_Format(tstate, PyExc_SystemError,
- "no locals when loading %R", name);
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "no locals when loading %R", name);
goto error;
}
if (PyDict_CheckExact(locals)) {
- v = PyDict_GetItemWithError(locals, name);
- if (v != NULL) {
- Py_INCREF(v);
- }
- else if (_PyErr_Occurred(tstate)) {
- goto error;
- }
+ v = PyDict_GetItemWithError(locals, name);
+ if (v != NULL) {
+ Py_INCREF(v);
+ }
+ else if (_PyErr_Occurred(tstate)) {
+ goto error;
+ }
}
else {
v = PyObject_GetItem(locals, name);
if (v == NULL) {
- if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError))
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError))
goto error;
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
}
}
if (v == NULL) {
- v = PyDict_GetItemWithError(f->f_globals, name);
- if (v != NULL) {
- Py_INCREF(v);
- }
- else if (_PyErr_Occurred(tstate)) {
- goto error;
- }
- else {
+ v = PyDict_GetItemWithError(f->f_globals, name);
+ if (v != NULL) {
+ Py_INCREF(v);
+ }
+ else if (_PyErr_Occurred(tstate)) {
+ goto error;
+ }
+ else {
if (PyDict_CheckExact(f->f_builtins)) {
- v = PyDict_GetItemWithError(f->f_builtins, name);
+ v = PyDict_GetItemWithError(f->f_builtins, name);
if (v == NULL) {
- if (!_PyErr_Occurred(tstate)) {
- format_exc_check_arg(
- tstate, PyExc_NameError,
+ if (!_PyErr_Occurred(tstate)) {
+ format_exc_check_arg(
+ tstate, PyExc_NameError,
NAME_ERROR_MSG, name);
- }
+ }
goto error;
}
Py_INCREF(v);
@@ -2528,11 +2528,11 @@ main_loop:
else {
v = PyObject_GetItem(f->f_builtins, name);
if (v == NULL) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
format_exc_check_arg(
- tstate, PyExc_NameError,
+ tstate, PyExc_NameError,
NAME_ERROR_MSG, name);
- }
+ }
goto error;
}
}
@@ -2542,31 +2542,31 @@ main_loop:
DISPATCH();
}
- case TARGET(LOAD_GLOBAL): {
- PyObject *name;
+ case TARGET(LOAD_GLOBAL): {
+ PyObject *name;
PyObject *v;
if (PyDict_CheckExact(f->f_globals)
&& PyDict_CheckExact(f->f_builtins))
{
- OPCACHE_CHECK();
- if (co_opcache != NULL && co_opcache->optimized > 0) {
- _PyOpcache_LoadGlobal *lg = &co_opcache->u.lg;
-
- if (lg->globals_ver ==
- ((PyDictObject *)f->f_globals)->ma_version_tag
- && lg->builtins_ver ==
- ((PyDictObject *)f->f_builtins)->ma_version_tag)
- {
- PyObject *ptr = lg->ptr;
- OPCACHE_STAT_GLOBAL_HIT();
- assert(ptr != NULL);
- Py_INCREF(ptr);
- PUSH(ptr);
- DISPATCH();
- }
- }
-
- name = GETITEM(names, oparg);
+ OPCACHE_CHECK();
+ if (co_opcache != NULL && co_opcache->optimized > 0) {
+ _PyOpcache_LoadGlobal *lg = &co_opcache->u.lg;
+
+ if (lg->globals_ver ==
+ ((PyDictObject *)f->f_globals)->ma_version_tag
+ && lg->builtins_ver ==
+ ((PyDictObject *)f->f_builtins)->ma_version_tag)
+ {
+ PyObject *ptr = lg->ptr;
+ OPCACHE_STAT_GLOBAL_HIT();
+ assert(ptr != NULL);
+ Py_INCREF(ptr);
+ PUSH(ptr);
+ DISPATCH();
+ }
+ }
+
+ name = GETITEM(names, oparg);
v = _PyDict_LoadGlobal((PyDictObject *)f->f_globals,
(PyDictObject *)f->f_builtins,
name);
@@ -2574,52 +2574,52 @@ main_loop:
if (!_PyErr_OCCURRED()) {
/* _PyDict_LoadGlobal() returns NULL without raising
* an exception if the key doesn't exist */
- format_exc_check_arg(tstate, PyExc_NameError,
+ format_exc_check_arg(tstate, PyExc_NameError,
NAME_ERROR_MSG, name);
}
goto error;
}
-
- if (co_opcache != NULL) {
- _PyOpcache_LoadGlobal *lg = &co_opcache->u.lg;
-
- if (co_opcache->optimized == 0) {
- /* Wasn't optimized before. */
- OPCACHE_STAT_GLOBAL_OPT();
- } else {
- OPCACHE_STAT_GLOBAL_MISS();
- }
-
- co_opcache->optimized = 1;
- lg->globals_ver =
- ((PyDictObject *)f->f_globals)->ma_version_tag;
- lg->builtins_ver =
- ((PyDictObject *)f->f_builtins)->ma_version_tag;
- lg->ptr = v; /* borrowed */
- }
-
+
+ if (co_opcache != NULL) {
+ _PyOpcache_LoadGlobal *lg = &co_opcache->u.lg;
+
+ if (co_opcache->optimized == 0) {
+ /* Wasn't optimized before. */
+ OPCACHE_STAT_GLOBAL_OPT();
+ } else {
+ OPCACHE_STAT_GLOBAL_MISS();
+ }
+
+ co_opcache->optimized = 1;
+ lg->globals_ver =
+ ((PyDictObject *)f->f_globals)->ma_version_tag;
+ lg->builtins_ver =
+ ((PyDictObject *)f->f_builtins)->ma_version_tag;
+ lg->ptr = v; /* borrowed */
+ }
+
Py_INCREF(v);
}
else {
/* Slow-path if globals or builtins is not a dict */
/* namespace 1: globals */
- name = GETITEM(names, oparg);
+ name = GETITEM(names, oparg);
v = PyObject_GetItem(f->f_globals, name);
if (v == NULL) {
- if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
goto error;
- }
- _PyErr_Clear(tstate);
+ }
+ _PyErr_Clear(tstate);
/* namespace 2: builtins */
v = PyObject_GetItem(f->f_builtins, name);
if (v == NULL) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
format_exc_check_arg(
- tstate, PyExc_NameError,
+ tstate, PyExc_NameError,
NAME_ERROR_MSG, name);
- }
+ }
goto error;
}
}
@@ -2628,21 +2628,21 @@ main_loop:
DISPATCH();
}
- case TARGET(DELETE_FAST): {
+ case TARGET(DELETE_FAST): {
PyObject *v = GETLOCAL(oparg);
if (v != NULL) {
SETLOCAL(oparg, NULL);
DISPATCH();
}
format_exc_check_arg(
- tstate, PyExc_UnboundLocalError,
+ tstate, PyExc_UnboundLocalError,
UNBOUNDLOCAL_ERROR_MSG,
PyTuple_GetItem(co->co_varnames, oparg)
);
goto error;
}
- case TARGET(DELETE_DEREF): {
+ case TARGET(DELETE_DEREF): {
PyObject *cell = freevars[oparg];
PyObject *oldobj = PyCell_GET(cell);
if (oldobj != NULL) {
@@ -2650,18 +2650,18 @@ main_loop:
Py_DECREF(oldobj);
DISPATCH();
}
- format_exc_unbound(tstate, co, oparg);
+ format_exc_unbound(tstate, co, oparg);
goto error;
}
- case TARGET(LOAD_CLOSURE): {
+ case TARGET(LOAD_CLOSURE): {
PyObject *cell = freevars[oparg];
Py_INCREF(cell);
PUSH(cell);
DISPATCH();
}
- case TARGET(LOAD_CLASSDEREF): {
+ case TARGET(LOAD_CLASSDEREF): {
PyObject *name, *value, *locals = f->f_locals;
Py_ssize_t idx;
assert(locals);
@@ -2670,28 +2670,28 @@ main_loop:
assert(idx >= 0 && idx < PyTuple_GET_SIZE(co->co_freevars));
name = PyTuple_GET_ITEM(co->co_freevars, idx);
if (PyDict_CheckExact(locals)) {
- value = PyDict_GetItemWithError(locals, name);
- if (value != NULL) {
- Py_INCREF(value);
- }
- else if (_PyErr_Occurred(tstate)) {
- goto error;
- }
+ value = PyDict_GetItemWithError(locals, name);
+ if (value != NULL) {
+ Py_INCREF(value);
+ }
+ else if (_PyErr_Occurred(tstate)) {
+ goto error;
+ }
}
else {
value = PyObject_GetItem(locals, name);
if (value == NULL) {
- if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
goto error;
- }
- _PyErr_Clear(tstate);
+ }
+ _PyErr_Clear(tstate);
}
}
if (!value) {
PyObject *cell = freevars[oparg];
value = PyCell_GET(cell);
if (value == NULL) {
- format_exc_unbound(tstate, co, oparg);
+ format_exc_unbound(tstate, co, oparg);
goto error;
}
Py_INCREF(value);
@@ -2700,11 +2700,11 @@ main_loop:
DISPATCH();
}
- case TARGET(LOAD_DEREF): {
+ case TARGET(LOAD_DEREF): {
PyObject *cell = freevars[oparg];
PyObject *value = PyCell_GET(cell);
if (value == NULL) {
- format_exc_unbound(tstate, co, oparg);
+ format_exc_unbound(tstate, co, oparg);
goto error;
}
Py_INCREF(value);
@@ -2712,7 +2712,7 @@ main_loop:
DISPATCH();
}
- case TARGET(STORE_DEREF): {
+ case TARGET(STORE_DEREF): {
PyObject *v = POP();
PyObject *cell = freevars[oparg];
PyObject *oldobj = PyCell_GET(cell);
@@ -2721,7 +2721,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_STRING): {
+ case TARGET(BUILD_STRING): {
PyObject *str;
PyObject *empty = PyUnicode_New(0, 0);
if (empty == NULL) {
@@ -2739,7 +2739,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_TUPLE): {
+ case TARGET(BUILD_TUPLE): {
PyObject *tup = PyTuple_New(oparg);
if (tup == NULL)
goto error;
@@ -2751,7 +2751,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_LIST): {
+ case TARGET(BUILD_LIST): {
PyObject *list = PyList_New(oparg);
if (list == NULL)
goto error;
@@ -2763,50 +2763,50 @@ main_loop:
DISPATCH();
}
- case TARGET(LIST_TO_TUPLE): {
- PyObject *list = POP();
- PyObject *tuple = PyList_AsTuple(list);
- Py_DECREF(list);
- if (tuple == NULL) {
+ case TARGET(LIST_TO_TUPLE): {
+ PyObject *list = POP();
+ PyObject *tuple = PyList_AsTuple(list);
+ Py_DECREF(list);
+ if (tuple == NULL) {
goto error;
- }
- PUSH(tuple);
- DISPATCH();
- }
-
- case TARGET(LIST_EXTEND): {
- PyObject *iterable = POP();
- PyObject *list = PEEK(oparg);
- PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable);
- if (none_val == NULL) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) &&
- (Py_TYPE(iterable)->tp_iter == NULL && !PySequence_Check(iterable)))
- {
- _PyErr_Clear(tstate);
- _PyErr_Format(tstate, PyExc_TypeError,
- "Value after * must be an iterable, not %.200s",
- Py_TYPE(iterable)->tp_name);
+ }
+ PUSH(tuple);
+ DISPATCH();
+ }
+
+ case TARGET(LIST_EXTEND): {
+ PyObject *iterable = POP();
+ PyObject *list = PEEK(oparg);
+ PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable);
+ if (none_val == NULL) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) &&
+ (Py_TYPE(iterable)->tp_iter == NULL && !PySequence_Check(iterable)))
+ {
+ _PyErr_Clear(tstate);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "Value after * must be an iterable, not %.200s",
+ Py_TYPE(iterable)->tp_name);
}
- Py_DECREF(iterable);
- goto error;
- }
- Py_DECREF(none_val);
- Py_DECREF(iterable);
- DISPATCH();
- }
-
- case TARGET(SET_UPDATE): {
- PyObject *iterable = POP();
- PyObject *set = PEEK(oparg);
- int err = _PySet_Update(set, iterable);
- Py_DECREF(iterable);
- if (err < 0) {
- goto error;
+ Py_DECREF(iterable);
+ goto error;
}
+ Py_DECREF(none_val);
+ Py_DECREF(iterable);
DISPATCH();
}
- case TARGET(BUILD_SET): {
+ case TARGET(SET_UPDATE): {
+ PyObject *iterable = POP();
+ PyObject *set = PEEK(oparg);
+ int err = _PySet_Update(set, iterable);
+ Py_DECREF(iterable);
+ if (err < 0) {
+ goto error;
+ }
+ DISPATCH();
+ }
+
+ case TARGET(BUILD_SET): {
PyObject *set = PySet_New(NULL);
int err = 0;
int i;
@@ -2818,7 +2818,7 @@ main_loop:
err = PySet_Add(set, item);
Py_DECREF(item);
}
- STACK_SHRINK(oparg);
+ STACK_SHRINK(oparg);
if (err != 0) {
Py_DECREF(set);
goto error;
@@ -2827,7 +2827,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_MAP): {
+ case TARGET(BUILD_MAP): {
Py_ssize_t i;
PyObject *map = _PyDict_NewPresized((Py_ssize_t)oparg);
if (map == NULL)
@@ -2851,23 +2851,23 @@ main_loop:
DISPATCH();
}
- case TARGET(SETUP_ANNOTATIONS): {
+ case TARGET(SETUP_ANNOTATIONS): {
_Py_IDENTIFIER(__annotations__);
int err;
PyObject *ann_dict;
if (f->f_locals == NULL) {
- _PyErr_Format(tstate, PyExc_SystemError,
- "no locals found when setting up annotations");
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "no locals found when setting up annotations");
goto error;
}
/* check if __annotations__ in locals()... */
if (PyDict_CheckExact(f->f_locals)) {
- ann_dict = _PyDict_GetItemIdWithError(f->f_locals,
+ ann_dict = _PyDict_GetItemIdWithError(f->f_locals,
&PyId___annotations__);
if (ann_dict == NULL) {
- if (_PyErr_Occurred(tstate)) {
- goto error;
- }
+ if (_PyErr_Occurred(tstate)) {
+ goto error;
+ }
/* ...if not, create a new one */
ann_dict = PyDict_New();
if (ann_dict == NULL) {
@@ -2889,10 +2889,10 @@ main_loop:
}
ann_dict = PyObject_GetItem(f->f_locals, ann_str);
if (ann_dict == NULL) {
- if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
goto error;
}
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
ann_dict = PyDict_New();
if (ann_dict == NULL) {
goto error;
@@ -2910,14 +2910,14 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_CONST_KEY_MAP): {
+ case TARGET(BUILD_CONST_KEY_MAP): {
Py_ssize_t i;
PyObject *map;
PyObject *keys = TOP();
if (!PyTuple_CheckExact(keys) ||
PyTuple_GET_SIZE(keys) != (Py_ssize_t)oparg) {
- _PyErr_SetString(tstate, PyExc_SystemError,
- "bad BUILD_CONST_KEY_MAP keys argument");
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "bad BUILD_CONST_KEY_MAP keys argument");
goto error;
}
map = _PyDict_NewPresized((Py_ssize_t)oparg);
@@ -2943,42 +2943,42 @@ main_loop:
DISPATCH();
}
- case TARGET(DICT_UPDATE): {
- PyObject *update = POP();
- PyObject *dict = PEEK(oparg);
- if (PyDict_Update(dict, update) < 0) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'%.200s' object is not a mapping",
- Py_TYPE(update)->tp_name);
- }
- Py_DECREF(update);
+ case TARGET(DICT_UPDATE): {
+ PyObject *update = POP();
+ PyObject *dict = PEEK(oparg);
+ if (PyDict_Update(dict, update) < 0) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'%.200s' object is not a mapping",
+ Py_TYPE(update)->tp_name);
+ }
+ Py_DECREF(update);
goto error;
}
- Py_DECREF(update);
+ Py_DECREF(update);
DISPATCH();
}
- case TARGET(DICT_MERGE): {
- PyObject *update = POP();
- PyObject *dict = PEEK(oparg);
-
- if (_PyDict_MergeEx(dict, update, 2) < 0) {
- format_kwargs_error(tstate, PEEK(2 + oparg), update);
- Py_DECREF(update);
+ case TARGET(DICT_MERGE): {
+ PyObject *update = POP();
+ PyObject *dict = PEEK(oparg);
+
+ if (_PyDict_MergeEx(dict, update, 2) < 0) {
+ format_kwargs_error(tstate, PEEK(2 + oparg), update);
+ Py_DECREF(update);
goto error;
}
- Py_DECREF(update);
- PREDICT(CALL_FUNCTION_EX);
+ Py_DECREF(update);
+ PREDICT(CALL_FUNCTION_EX);
DISPATCH();
}
- case TARGET(MAP_ADD): {
- PyObject *value = TOP();
- PyObject *key = SECOND();
+ case TARGET(MAP_ADD): {
+ PyObject *value = TOP();
+ PyObject *key = SECOND();
PyObject *map;
int err;
- STACK_SHRINK(2);
+ STACK_SHRINK(2);
map = PEEK(oparg); /* dict */
assert(PyDict_CheckExact(map));
err = PyDict_SetItem(map, key, value); /* map[key] = value */
@@ -2990,7 +2990,7 @@ main_loop:
DISPATCH();
}
- case TARGET(LOAD_ATTR): {
+ case TARGET(LOAD_ATTR): {
PyObject *name = GETITEM(names, oparg);
PyObject *owner = TOP();
PyObject *res = PyObject_GetAttr(owner, name);
@@ -3001,12 +3001,12 @@ main_loop:
DISPATCH();
}
- case TARGET(COMPARE_OP): {
- assert(oparg <= Py_GE);
+ case TARGET(COMPARE_OP): {
+ assert(oparg <= Py_GE);
PyObject *right = POP();
PyObject *left = TOP();
- PyObject *res = PyObject_RichCompare(left, right, oparg);
- SET_TOP(res);
+ PyObject *res = PyObject_RichCompare(left, right, oparg);
+ SET_TOP(res);
Py_DECREF(left);
Py_DECREF(right);
if (res == NULL)
@@ -3016,87 +3016,87 @@ main_loop:
DISPATCH();
}
- case TARGET(IS_OP): {
- PyObject *right = POP();
- PyObject *left = TOP();
- int res = (left == right)^oparg;
- PyObject *b = res ? Py_True : Py_False;
- Py_INCREF(b);
- SET_TOP(b);
- Py_DECREF(left);
- Py_DECREF(right);
- PREDICT(POP_JUMP_IF_FALSE);
- PREDICT(POP_JUMP_IF_TRUE);
- FAST_DISPATCH();
- }
-
- case TARGET(CONTAINS_OP): {
- PyObject *right = POP();
- PyObject *left = POP();
- int res = PySequence_Contains(right, left);
- Py_DECREF(left);
- Py_DECREF(right);
- if (res < 0) {
- goto error;
- }
- PyObject *b = (res^oparg) ? Py_True : Py_False;
- Py_INCREF(b);
- PUSH(b);
- PREDICT(POP_JUMP_IF_FALSE);
- PREDICT(POP_JUMP_IF_TRUE);
- FAST_DISPATCH();
- }
-
-#define CANNOT_CATCH_MSG "catching classes that do not inherit from "\
- "BaseException is not allowed"
-
- case TARGET(JUMP_IF_NOT_EXC_MATCH): {
- PyObject *right = POP();
- PyObject *left = POP();
- if (PyTuple_Check(right)) {
- Py_ssize_t i, length;
- length = PyTuple_GET_SIZE(right);
- for (i = 0; i < length; i++) {
- PyObject *exc = PyTuple_GET_ITEM(right, i);
- if (!PyExceptionClass_Check(exc)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- CANNOT_CATCH_MSG);
- Py_DECREF(left);
- Py_DECREF(right);
- goto error;
- }
- }
- }
- else {
- if (!PyExceptionClass_Check(right)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- CANNOT_CATCH_MSG);
- Py_DECREF(left);
- Py_DECREF(right);
- goto error;
- }
- }
- int res = PyErr_GivenExceptionMatches(left, right);
- Py_DECREF(left);
- Py_DECREF(right);
- if (res > 0) {
- /* Exception matches -- Do nothing */;
- }
- else if (res == 0) {
- JUMPTO(oparg);
- }
- else {
- goto error;
- }
- DISPATCH();
- }
-
- case TARGET(IMPORT_NAME): {
+ case TARGET(IS_OP): {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ int res = (left == right)^oparg;
+ PyObject *b = res ? Py_True : Py_False;
+ Py_INCREF(b);
+ SET_TOP(b);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ PREDICT(POP_JUMP_IF_FALSE);
+ PREDICT(POP_JUMP_IF_TRUE);
+ FAST_DISPATCH();
+ }
+
+ case TARGET(CONTAINS_OP): {
+ PyObject *right = POP();
+ PyObject *left = POP();
+ int res = PySequence_Contains(right, left);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ if (res < 0) {
+ goto error;
+ }
+ PyObject *b = (res^oparg) ? Py_True : Py_False;
+ Py_INCREF(b);
+ PUSH(b);
+ PREDICT(POP_JUMP_IF_FALSE);
+ PREDICT(POP_JUMP_IF_TRUE);
+ FAST_DISPATCH();
+ }
+
+#define CANNOT_CATCH_MSG "catching classes that do not inherit from "\
+ "BaseException is not allowed"
+
+ case TARGET(JUMP_IF_NOT_EXC_MATCH): {
+ PyObject *right = POP();
+ PyObject *left = POP();
+ if (PyTuple_Check(right)) {
+ Py_ssize_t i, length;
+ length = PyTuple_GET_SIZE(right);
+ for (i = 0; i < length; i++) {
+ PyObject *exc = PyTuple_GET_ITEM(right, i);
+ if (!PyExceptionClass_Check(exc)) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ CANNOT_CATCH_MSG);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ goto error;
+ }
+ }
+ }
+ else {
+ if (!PyExceptionClass_Check(right)) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ CANNOT_CATCH_MSG);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ goto error;
+ }
+ }
+ int res = PyErr_GivenExceptionMatches(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ if (res > 0) {
+ /* Exception matches -- Do nothing */;
+ }
+ else if (res == 0) {
+ JUMPTO(oparg);
+ }
+ else {
+ goto error;
+ }
+ DISPATCH();
+ }
+
+ case TARGET(IMPORT_NAME): {
PyObject *name = GETITEM(names, oparg);
PyObject *fromlist = POP();
PyObject *level = TOP();
PyObject *res;
- res = import_name(tstate, f, name, fromlist, level);
+ res = import_name(tstate, f, name, fromlist, level);
Py_DECREF(level);
Py_DECREF(fromlist);
SET_TOP(res);
@@ -3105,7 +3105,7 @@ main_loop:
DISPATCH();
}
- case TARGET(IMPORT_STAR): {
+ case TARGET(IMPORT_STAR): {
PyObject *from = POP(), *locals;
int err;
if (PyFrame_FastToLocalsWithError(f) < 0) {
@@ -3115,12 +3115,12 @@ main_loop:
locals = f->f_locals;
if (locals == NULL) {
- _PyErr_SetString(tstate, PyExc_SystemError,
- "no locals found during 'import *'");
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "no locals found during 'import *'");
Py_DECREF(from);
goto error;
}
- err = import_all_from(tstate, locals, from);
+ err = import_all_from(tstate, locals, from);
PyFrame_LocalsToFast(f, 0);
Py_DECREF(from);
if (err != 0)
@@ -3128,24 +3128,24 @@ main_loop:
DISPATCH();
}
- case TARGET(IMPORT_FROM): {
+ case TARGET(IMPORT_FROM): {
PyObject *name = GETITEM(names, oparg);
PyObject *from = TOP();
PyObject *res;
- res = import_from(tstate, from, name);
+ res = import_from(tstate, from, name);
PUSH(res);
if (res == NULL)
goto error;
DISPATCH();
}
- case TARGET(JUMP_FORWARD): {
+ case TARGET(JUMP_FORWARD): {
JUMPBY(oparg);
FAST_DISPATCH();
}
- case TARGET(POP_JUMP_IF_FALSE): {
- PREDICTED(POP_JUMP_IF_FALSE);
+ case TARGET(POP_JUMP_IF_FALSE): {
+ PREDICTED(POP_JUMP_IF_FALSE);
PyObject *cond = POP();
int err;
if (cond == Py_True) {
@@ -3168,8 +3168,8 @@ main_loop:
DISPATCH();
}
- case TARGET(POP_JUMP_IF_TRUE): {
- PREDICTED(POP_JUMP_IF_TRUE);
+ case TARGET(POP_JUMP_IF_TRUE): {
+ PREDICTED(POP_JUMP_IF_TRUE);
PyObject *cond = POP();
int err;
if (cond == Py_False) {
@@ -3193,11 +3193,11 @@ main_loop:
DISPATCH();
}
- case TARGET(JUMP_IF_FALSE_OR_POP): {
+ case TARGET(JUMP_IF_FALSE_OR_POP): {
PyObject *cond = TOP();
int err;
if (cond == Py_True) {
- STACK_SHRINK(1);
+ STACK_SHRINK(1);
Py_DECREF(cond);
FAST_DISPATCH();
}
@@ -3207,7 +3207,7 @@ main_loop:
}
err = PyObject_IsTrue(cond);
if (err > 0) {
- STACK_SHRINK(1);
+ STACK_SHRINK(1);
Py_DECREF(cond);
}
else if (err == 0)
@@ -3217,11 +3217,11 @@ main_loop:
DISPATCH();
}
- case TARGET(JUMP_IF_TRUE_OR_POP): {
+ case TARGET(JUMP_IF_TRUE_OR_POP): {
PyObject *cond = TOP();
int err;
if (cond == Py_False) {
- STACK_SHRINK(1);
+ STACK_SHRINK(1);
Py_DECREF(cond);
FAST_DISPATCH();
}
@@ -3234,7 +3234,7 @@ main_loop:
JUMPTO(oparg);
}
else if (err == 0) {
- STACK_SHRINK(1);
+ STACK_SHRINK(1);
Py_DECREF(cond);
}
else
@@ -3242,8 +3242,8 @@ main_loop:
DISPATCH();
}
- case TARGET(JUMP_ABSOLUTE): {
- PREDICTED(JUMP_ABSOLUTE);
+ case TARGET(JUMP_ABSOLUTE): {
+ PREDICTED(JUMP_ABSOLUTE);
JUMPTO(oparg);
#if FAST_LOOPS
/* Enabling this path speeds-up all while and for-loops by bypassing
@@ -3259,7 +3259,7 @@ main_loop:
#endif
}
- case TARGET(GET_ITER): {
+ case TARGET(GET_ITER): {
/* before: [obj]; after [getiter(obj)] */
PyObject *iterable = TOP();
PyObject *iter = PyObject_GetIter(iterable);
@@ -3272,7 +3272,7 @@ main_loop:
DISPATCH();
}
- case TARGET(GET_YIELD_FROM_ITER): {
+ case TARGET(GET_YIELD_FROM_ITER): {
/* before: [obj]; after [getiter(obj)] */
PyObject *iterable = TOP();
PyObject *iter;
@@ -3283,9 +3283,9 @@ main_loop:
regular generator. */
Py_DECREF(iterable);
SET_TOP(NULL);
- _PyErr_SetString(tstate, PyExc_TypeError,
- "cannot 'yield from' a coroutine object "
- "in a non-coroutine generator");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "cannot 'yield from' a coroutine object "
+ "in a non-coroutine generator");
goto error;
}
}
@@ -3301,54 +3301,54 @@ main_loop:
DISPATCH();
}
- case TARGET(FOR_ITER): {
- PREDICTED(FOR_ITER);
+ case TARGET(FOR_ITER): {
+ PREDICTED(FOR_ITER);
/* before: [iter]; after: [iter, iter()] *or* [] */
PyObject *iter = TOP();
- PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter);
+ PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter);
if (next != NULL) {
PUSH(next);
PREDICT(STORE_FAST);
PREDICT(UNPACK_SEQUENCE);
DISPATCH();
}
- if (_PyErr_Occurred(tstate)) {
- if (!_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) {
+ if (_PyErr_Occurred(tstate)) {
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) {
goto error;
- }
- else if (tstate->c_tracefunc != NULL) {
+ }
+ else if (tstate->c_tracefunc != NULL) {
call_exc_trace(tstate->c_tracefunc, tstate->c_traceobj, tstate, f);
- }
- _PyErr_Clear(tstate);
+ }
+ _PyErr_Clear(tstate);
}
/* iterator ended normally */
- STACK_SHRINK(1);
+ STACK_SHRINK(1);
Py_DECREF(iter);
JUMPBY(oparg);
PREDICT(POP_BLOCK);
DISPATCH();
}
- case TARGET(SETUP_FINALLY): {
- PyFrame_BlockSetup(f, SETUP_FINALLY, INSTR_OFFSET() + oparg,
+ case TARGET(SETUP_FINALLY): {
+ PyFrame_BlockSetup(f, SETUP_FINALLY, INSTR_OFFSET() + oparg,
STACK_LEVEL());
DISPATCH();
}
- case TARGET(BEFORE_ASYNC_WITH): {
- _Py_IDENTIFIER(__aenter__);
+ case TARGET(BEFORE_ASYNC_WITH): {
+ _Py_IDENTIFIER(__aenter__);
_Py_IDENTIFIER(__aexit__);
PyObject *mgr = TOP();
- PyObject *enter = special_lookup(tstate, mgr, &PyId___aenter__);
+ PyObject *enter = special_lookup(tstate, mgr, &PyId___aenter__);
PyObject *res;
- if (enter == NULL) {
+ if (enter == NULL) {
goto error;
- }
- PyObject *exit = special_lookup(tstate, mgr, &PyId___aexit__);
- if (exit == NULL) {
- Py_DECREF(enter);
- goto error;
- }
+ }
+ PyObject *exit = special_lookup(tstate, mgr, &PyId___aexit__);
+ if (exit == NULL) {
+ Py_DECREF(enter);
+ goto error;
+ }
SET_TOP(exit);
Py_DECREF(mgr);
res = _PyObject_CallNoArg(enter);
@@ -3360,7 +3360,7 @@ main_loop:
DISPATCH();
}
- case TARGET(SETUP_ASYNC_WITH): {
+ case TARGET(SETUP_ASYNC_WITH): {
PyObject *res = POP();
/* Setup the finally block before pushing the result
of __aenter__ on the stack. */
@@ -3370,16 +3370,16 @@ main_loop:
DISPATCH();
}
- case TARGET(SETUP_WITH): {
- _Py_IDENTIFIER(__enter__);
+ case TARGET(SETUP_WITH): {
+ _Py_IDENTIFIER(__enter__);
_Py_IDENTIFIER(__exit__);
PyObject *mgr = TOP();
- PyObject *enter = special_lookup(tstate, mgr, &PyId___enter__);
+ PyObject *enter = special_lookup(tstate, mgr, &PyId___enter__);
PyObject *res;
- if (enter == NULL) {
+ if (enter == NULL) {
goto error;
- }
- PyObject *exit = special_lookup(tstate, mgr, &PyId___exit__);
+ }
+ PyObject *exit = special_lookup(tstate, mgr, &PyId___exit__);
if (exit == NULL) {
Py_DECREF(enter);
goto error;
@@ -3399,27 +3399,27 @@ main_loop:
DISPATCH();
}
- case TARGET(WITH_EXCEPT_START): {
- /* At the top of the stack are 7 values:
+ case TARGET(WITH_EXCEPT_START): {
+ /* At the top of the stack are 7 values:
- (TOP, SECOND, THIRD) = exc_info()
- - (FOURTH, FIFTH, SIXTH) = previous exception for EXCEPT_HANDLER
- - SEVENTH: the context.__exit__ bound method
- We call SEVENTH(TOP, SECOND, THIRD).
- Then we push again the TOP exception and the __exit__
- return value.
+ - (FOURTH, FIFTH, SIXTH) = previous exception for EXCEPT_HANDLER
+ - SEVENTH: the context.__exit__ bound method
+ We call SEVENTH(TOP, SECOND, THIRD).
+ Then we push again the TOP exception and the __exit__
+ return value.
*/
PyObject *exit_func;
PyObject *exc, *val, *tb, *res;
exc = TOP();
- val = SECOND();
- tb = THIRD();
- assert(exc != Py_None);
- assert(!PyLong_Check(exc));
- exit_func = PEEK(7);
- PyObject *stack[4] = {NULL, exc, val, tb};
- res = PyObject_Vectorcall(exit_func, stack + 1,
- 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
+ val = SECOND();
+ tb = THIRD();
+ assert(exc != Py_None);
+ assert(!PyLong_Check(exc));
+ exit_func = PEEK(7);
+ PyObject *stack[4] = {NULL, exc, val, tb};
+ res = PyObject_Vectorcall(exit_func, stack + 1,
+ 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
if (res == NULL)
goto error;
@@ -3427,8 +3427,8 @@ main_loop:
DISPATCH();
}
- case TARGET(LOAD_METHOD): {
- /* Designed to work in tandem with CALL_METHOD. */
+ case TARGET(LOAD_METHOD): {
+ /* Designed to work in tandem with CALL_METHOD. */
PyObject *name = GETITEM(names, oparg);
PyObject *obj = TOP();
PyObject *meth = NULL;
@@ -3464,7 +3464,7 @@ main_loop:
DISPATCH();
}
- case TARGET(CALL_METHOD): {
+ case TARGET(CALL_METHOD): {
/* Designed to work in tamdem with LOAD_METHOD. */
PyObject **sp, *res, *meth;
@@ -3486,7 +3486,7 @@ main_loop:
`callable` will be POPed by call_function.
NULL will will be POPed manually later.
*/
- res = call_function(tstate, &sp, oparg, NULL);
+ res = call_function(tstate, &sp, oparg, NULL);
stack_pointer = sp;
(void)POP(); /* POP the NULL. */
}
@@ -3503,7 +3503,7 @@ main_loop:
We'll be passing `oparg + 1` to call_function, to
make it accept the `self` as a first argument.
*/
- res = call_function(tstate, &sp, oparg + 1, NULL);
+ res = call_function(tstate, &sp, oparg + 1, NULL);
stack_pointer = sp;
}
@@ -3513,11 +3513,11 @@ main_loop:
DISPATCH();
}
- case TARGET(CALL_FUNCTION): {
- PREDICTED(CALL_FUNCTION);
+ case TARGET(CALL_FUNCTION): {
+ PREDICTED(CALL_FUNCTION);
PyObject **sp, *res;
sp = stack_pointer;
- res = call_function(tstate, &sp, oparg, NULL);
+ res = call_function(tstate, &sp, oparg, NULL);
stack_pointer = sp;
PUSH(res);
if (res == NULL) {
@@ -3526,15 +3526,15 @@ main_loop:
DISPATCH();
}
- case TARGET(CALL_FUNCTION_KW): {
+ case TARGET(CALL_FUNCTION_KW): {
PyObject **sp, *res, *names;
names = POP();
- assert(PyTuple_Check(names));
- assert(PyTuple_GET_SIZE(names) <= oparg);
- /* We assume without checking that names contains only strings */
+ assert(PyTuple_Check(names));
+ assert(PyTuple_GET_SIZE(names) <= oparg);
+ /* We assume without checking that names contains only strings */
sp = stack_pointer;
- res = call_function(tstate, &sp, oparg, names);
+ res = call_function(tstate, &sp, oparg, names);
stack_pointer = sp;
PUSH(res);
Py_DECREF(names);
@@ -3545,8 +3545,8 @@ main_loop:
DISPATCH();
}
- case TARGET(CALL_FUNCTION_EX): {
- PREDICTED(CALL_FUNCTION_EX);
+ case TARGET(CALL_FUNCTION_EX): {
+ PREDICTED(CALL_FUNCTION_EX);
PyObject *func, *callargs, *kwargs = NULL, *result;
if (oparg & 0x01) {
kwargs = POP();
@@ -3554,9 +3554,9 @@ main_loop:
PyObject *d = PyDict_New();
if (d == NULL)
goto error;
- if (_PyDict_MergeEx(d, kwargs, 2) < 0) {
+ if (_PyDict_MergeEx(d, kwargs, 2) < 0) {
Py_DECREF(d);
- format_kwargs_error(tstate, SECOND(), kwargs);
+ format_kwargs_error(tstate, SECOND(), kwargs);
Py_DECREF(kwargs);
goto error;
}
@@ -3568,7 +3568,7 @@ main_loop:
callargs = POP();
func = TOP();
if (!PyTuple_CheckExact(callargs)) {
- if (check_args_iterable(tstate, func, callargs) < 0) {
+ if (check_args_iterable(tstate, func, callargs) < 0) {
Py_DECREF(callargs);
goto error;
}
@@ -3579,7 +3579,7 @@ main_loop:
}
assert(PyTuple_CheckExact(callargs));
- result = do_call_core(tstate, func, callargs, kwargs);
+ result = do_call_core(tstate, func, callargs, kwargs);
Py_DECREF(func);
Py_DECREF(callargs);
Py_XDECREF(kwargs);
@@ -3591,7 +3591,7 @@ main_loop:
DISPATCH();
}
- case TARGET(MAKE_FUNCTION): {
+ case TARGET(MAKE_FUNCTION): {
PyObject *qualname = POP();
PyObject *codeobj = POP();
PyFunctionObject *func = (PyFunctionObject *)
@@ -3624,7 +3624,7 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_SLICE): {
+ case TARGET(BUILD_SLICE): {
PyObject *start, *stop, *step, *slice;
if (oparg == 3)
step = POP();
@@ -3642,7 +3642,7 @@ main_loop:
DISPATCH();
}
- case TARGET(FORMAT_VALUE): {
+ case TARGET(FORMAT_VALUE): {
/* Handles f-string value formatting. */
PyObject *result;
PyObject *fmt_spec;
@@ -3656,15 +3656,15 @@ main_loop:
/* See if any conversion is specified. */
switch (which_conversion) {
- case FVC_NONE: conv_fn = NULL; break;
+ case FVC_NONE: conv_fn = NULL; break;
case FVC_STR: conv_fn = PyObject_Str; break;
case FVC_REPR: conv_fn = PyObject_Repr; break;
case FVC_ASCII: conv_fn = PyObject_ASCII; break;
- default:
- _PyErr_Format(tstate, PyExc_SystemError,
- "unexpected conversion flag %d",
- which_conversion);
- goto error;
+ default:
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "unexpected conversion flag %d",
+ which_conversion);
+ goto error;
}
/* If there's a conversion function, call it and replace
@@ -3702,7 +3702,7 @@ main_loop:
DISPATCH();
}
- case TARGET(EXTENDED_ARG): {
+ case TARGET(EXTENDED_ARG): {
int oldoparg = oparg;
NEXTOPARG();
oparg |= oldoparg << 8;
@@ -3718,7 +3718,7 @@ main_loop:
"XXX lineno: %d, opcode: %d\n",
PyFrame_GetLineNumber(f),
opcode);
- _PyErr_SetString(tstate, PyExc_SystemError, "unknown opcode");
+ _PyErr_SetString(tstate, PyExc_SystemError, "unknown opcode");
goto error;
} /* switch */
@@ -3730,12 +3730,12 @@ main_loop:
error:
/* Double-check exception status. */
#ifdef NDEBUG
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_SetString(tstate, PyExc_SystemError,
- "error return without exception set");
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "error return without exception set");
+ }
#else
- assert(_PyErr_Occurred(tstate));
+ assert(_PyErr_Occurred(tstate));
#endif
/* Log traceback info. */
@@ -3745,18 +3745,18 @@ error:
call_exc_trace(tstate->c_tracefunc, tstate->c_traceobj,
tstate, f);
-exception_unwind:
- /* Unwind stacks if an exception occurred */
- while (f->f_iblock > 0) {
- /* Pop the current block. */
- PyTryBlock *b = &f->f_blockstack[--f->f_iblock];
+exception_unwind:
+ /* Unwind stacks if an exception occurred */
+ while (f->f_iblock > 0) {
+ /* Pop the current block. */
+ PyTryBlock *b = &f->f_blockstack[--f->f_iblock];
if (b->b_type == EXCEPT_HANDLER) {
UNWIND_EXCEPT_HANDLER(b);
continue;
}
UNWIND_BLOCK(b);
- if (b->b_type == SETUP_FINALLY) {
+ if (b->b_type == SETUP_FINALLY) {
PyObject *exc, *val, *tb;
int handler = b->b_handler;
_PyErr_StackItem *exc_info = tstate->exc_info;
@@ -3771,12 +3771,12 @@ exception_unwind:
Py_INCREF(Py_None);
PUSH(Py_None);
}
- _PyErr_Fetch(tstate, &exc, &val, &tb);
+ _PyErr_Fetch(tstate, &exc, &val, &tb);
/* Make the raw exception data
available to the handler,
so a program can emulate the
Python main loop. */
- _PyErr_NormalizeException(tstate, &exc, &val, &tb);
+ _PyErr_NormalizeException(tstate, &exc, &val, &tb);
if (tb != NULL)
PyException_SetTraceback(val, tb);
else
@@ -3793,27 +3793,27 @@ exception_unwind:
PUSH(val);
PUSH(exc);
JUMPTO(handler);
- if (_Py_TracingPossible(ceval2)) {
- int needs_new_execution_window = (f->f_lasti < instr_lb || f->f_lasti >= instr_ub);
- int needs_line_update = (f->f_lasti == instr_lb || f->f_lasti < instr_prev);
- /* Make sure that we trace line after exception if we are in a new execution
- * window or we don't need a line update and we are not in the first instruction
- * of the line. */
- if (needs_new_execution_window || (!needs_line_update && instr_lb > 0)) {
- instr_prev = INT_MAX;
- }
- }
- /* Resume normal execution */
- goto main_loop;
+ if (_Py_TracingPossible(ceval2)) {
+ int needs_new_execution_window = (f->f_lasti < instr_lb || f->f_lasti >= instr_ub);
+ int needs_line_update = (f->f_lasti == instr_lb || f->f_lasti < instr_prev);
+ /* Make sure that we trace line after exception if we are in a new execution
+ * window or we don't need a line update and we are not in the first instruction
+ * of the line. */
+ if (needs_new_execution_window || (!needs_line_update && instr_lb > 0)) {
+ instr_prev = INT_MAX;
+ }
+ }
+ /* Resume normal execution */
+ goto main_loop;
}
} /* unwind stack */
- /* End the loop as we still have an error */
- break;
- } /* main loop */
+ /* End the loop as we still have an error */
+ break;
+ } /* main loop */
- assert(retval == NULL);
- assert(_PyErr_Occurred(tstate));
+ assert(retval == NULL);
+ assert(_PyErr_Occurred(tstate));
/* Pop remaining stack entries. */
while (!EMPTY()) {
@@ -3821,17 +3821,17 @@ exception_unwind:
Py_XDECREF(o);
}
-exiting:
+exiting:
if (tstate->use_tracing) {
if (tstate->c_tracefunc) {
- if (call_trace_protected(tstate->c_tracefunc, tstate->c_traceobj,
- tstate, f, PyTrace_RETURN, retval)) {
- Py_CLEAR(retval);
+ if (call_trace_protected(tstate->c_tracefunc, tstate->c_traceobj,
+ tstate, f, PyTrace_RETURN, retval)) {
+ Py_CLEAR(retval);
}
}
if (tstate->c_profilefunc) {
- if (call_trace_protected(tstate->c_profilefunc, tstate->c_profileobj,
- tstate, f, PyTrace_RETURN, retval)) {
+ if (call_trace_protected(tstate->c_profilefunc, tstate->c_profileobj,
+ tstate, f, PyTrace_RETURN, retval)) {
Py_CLEAR(retval);
}
}
@@ -3841,16 +3841,16 @@ exiting:
exit_eval_frame:
if (PyDTrace_FUNCTION_RETURN_ENABLED())
dtrace_function_return(f);
- _Py_LeaveRecursiveCall(tstate);
+ _Py_LeaveRecursiveCall(tstate);
f->f_executing = 0;
tstate->frame = f->f_back;
- return _Py_CheckFunctionResult(tstate, NULL, retval, __func__);
+ return _Py_CheckFunctionResult(tstate, NULL, retval, __func__);
}
static void
-format_missing(PyThreadState *tstate, const char *kind,
- PyCodeObject *co, PyObject *names)
+format_missing(PyThreadState *tstate, const char *kind,
+ PyCodeObject *co, PyObject *names)
{
int err;
Py_ssize_t len = PyList_GET_SIZE(names);
@@ -3901,19 +3901,19 @@ format_missing(PyThreadState *tstate, const char *kind,
}
if (name_str == NULL)
return;
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U() missing %i required %s argument%s: %U",
- co->co_name,
- len,
- kind,
- len == 1 ? "" : "s",
- name_str);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U() missing %i required %s argument%s: %U",
+ co->co_name,
+ len,
+ kind,
+ len == 1 ? "" : "s",
+ name_str);
Py_DECREF(name_str);
}
static void
-missing_arguments(PyThreadState *tstate, PyCodeObject *co,
- Py_ssize_t missing, Py_ssize_t defcount,
+missing_arguments(PyThreadState *tstate, PyCodeObject *co,
+ Py_ssize_t missing, Py_ssize_t defcount,
PyObject **fastlocals)
{
Py_ssize_t i, j = 0;
@@ -3946,13 +3946,13 @@ missing_arguments(PyThreadState *tstate, PyCodeObject *co,
}
}
assert(j == missing);
- format_missing(tstate, kind, co, missing_names);
+ format_missing(tstate, kind, co, missing_names);
Py_DECREF(missing_names);
}
static void
-too_many_positional(PyThreadState *tstate, PyCodeObject *co,
- Py_ssize_t given, Py_ssize_t defcount,
+too_many_positional(PyThreadState *tstate, PyCodeObject *co,
+ Py_ssize_t given, Py_ssize_t defcount,
PyObject **fastlocals)
{
int plural;
@@ -3995,86 +3995,86 @@ too_many_positional(PyThreadState *tstate, PyCodeObject *co,
kwonly_sig = PyUnicode_FromString("");
assert(kwonly_sig != NULL);
}
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U() takes %U positional argument%s but %zd%U %s given",
- co->co_name,
- sig,
- plural ? "s" : "",
- given,
- kwonly_sig,
- given == 1 && !kwonly_given ? "was" : "were");
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U() takes %U positional argument%s but %zd%U %s given",
+ co->co_name,
+ sig,
+ plural ? "s" : "",
+ given,
+ kwonly_sig,
+ given == 1 && !kwonly_given ? "was" : "were");
Py_DECREF(sig);
Py_DECREF(kwonly_sig);
}
-static int
-positional_only_passed_as_keyword(PyThreadState *tstate, PyCodeObject *co,
- Py_ssize_t kwcount, PyObject* const* kwnames)
-{
- int posonly_conflicts = 0;
- PyObject* posonly_names = PyList_New(0);
-
- for(int k=0; k < co->co_posonlyargcount; k++){
- PyObject* posonly_name = PyTuple_GET_ITEM(co->co_varnames, k);
-
- for (int k2=0; k2<kwcount; k2++){
- /* Compare the pointers first and fallback to PyObject_RichCompareBool*/
- PyObject* kwname = kwnames[k2];
- if (kwname == posonly_name){
- if(PyList_Append(posonly_names, kwname) != 0) {
- goto fail;
- }
- posonly_conflicts++;
- continue;
- }
-
- int cmp = PyObject_RichCompareBool(posonly_name, kwname, Py_EQ);
-
- if ( cmp > 0) {
- if(PyList_Append(posonly_names, kwname) != 0) {
- goto fail;
- }
- posonly_conflicts++;
- } else if (cmp < 0) {
- goto fail;
- }
-
- }
- }
- if (posonly_conflicts) {
- PyObject* comma = PyUnicode_FromString(", ");
- if (comma == NULL) {
- goto fail;
- }
- PyObject* error_names = PyUnicode_Join(comma, posonly_names);
- Py_DECREF(comma);
- if (error_names == NULL) {
- goto fail;
- }
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U() got some positional-only arguments passed"
- " as keyword arguments: '%U'",
- co->co_name, error_names);
- Py_DECREF(error_names);
- goto fail;
- }
-
- Py_DECREF(posonly_names);
- return 0;
-
-fail:
- Py_XDECREF(posonly_names);
- return 1;
-
-}
-
+static int
+positional_only_passed_as_keyword(PyThreadState *tstate, PyCodeObject *co,
+ Py_ssize_t kwcount, PyObject* const* kwnames)
+{
+ int posonly_conflicts = 0;
+ PyObject* posonly_names = PyList_New(0);
+
+ for(int k=0; k < co->co_posonlyargcount; k++){
+ PyObject* posonly_name = PyTuple_GET_ITEM(co->co_varnames, k);
+
+ for (int k2=0; k2<kwcount; k2++){
+ /* Compare the pointers first and fallback to PyObject_RichCompareBool*/
+ PyObject* kwname = kwnames[k2];
+ if (kwname == posonly_name){
+ if(PyList_Append(posonly_names, kwname) != 0) {
+ goto fail;
+ }
+ posonly_conflicts++;
+ continue;
+ }
+
+ int cmp = PyObject_RichCompareBool(posonly_name, kwname, Py_EQ);
+
+ if ( cmp > 0) {
+ if(PyList_Append(posonly_names, kwname) != 0) {
+ goto fail;
+ }
+ posonly_conflicts++;
+ } else if (cmp < 0) {
+ goto fail;
+ }
+
+ }
+ }
+ if (posonly_conflicts) {
+ PyObject* comma = PyUnicode_FromString(", ");
+ if (comma == NULL) {
+ goto fail;
+ }
+ PyObject* error_names = PyUnicode_Join(comma, posonly_names);
+ Py_DECREF(comma);
+ if (error_names == NULL) {
+ goto fail;
+ }
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U() got some positional-only arguments passed"
+ " as keyword arguments: '%U'",
+ co->co_name, error_names);
+ Py_DECREF(error_names);
+ goto fail;
+ }
+
+ Py_DECREF(posonly_names);
+ return 0;
+
+fail:
+ Py_XDECREF(posonly_names);
+ return 1;
+
+}
+
/* This is gonna seem *real weird*, but if you put some other code between
PyEval_EvalFrame() and _PyEval_EvalFrameDefault() you will need to adjust
the test in the if statements in Misc/gdbinit (pystack and pystackv). */
PyObject *
-_PyEval_EvalCode(PyThreadState *tstate,
- PyObject *_co, PyObject *globals, PyObject *locals,
+_PyEval_EvalCode(PyThreadState *tstate,
+ PyObject *_co, PyObject *globals, PyObject *locals,
PyObject *const *args, Py_ssize_t argcount,
PyObject *const *kwnames, PyObject *const *kwargs,
Py_ssize_t kwcount, int kwstep,
@@ -4082,20 +4082,20 @@ _PyEval_EvalCode(PyThreadState *tstate,
PyObject *kwdefs, PyObject *closure,
PyObject *name, PyObject *qualname)
{
- assert(is_tstate_valid(tstate));
-
+ assert(is_tstate_valid(tstate));
+
PyCodeObject* co = (PyCodeObject*)_co;
PyFrameObject *f;
PyObject *retval = NULL;
PyObject **fastlocals, **freevars;
PyObject *x, *u;
const Py_ssize_t total_args = co->co_argcount + co->co_kwonlyargcount;
- Py_ssize_t i, j, n;
+ Py_ssize_t i, j, n;
PyObject *kwdict;
if (globals == NULL) {
- _PyErr_SetString(tstate, PyExc_SystemError,
- "PyEval_EvalCodeEx: NULL globals");
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "PyEval_EvalCodeEx: NULL globals");
return NULL;
}
@@ -4122,22 +4122,22 @@ _PyEval_EvalCode(PyThreadState *tstate,
kwdict = NULL;
}
- /* Copy all positional arguments into local variables */
+ /* Copy all positional arguments into local variables */
if (argcount > co->co_argcount) {
n = co->co_argcount;
}
else {
n = argcount;
}
- for (j = 0; j < n; j++) {
- x = args[j];
+ for (j = 0; j < n; j++) {
+ x = args[j];
Py_INCREF(x);
- SETLOCAL(j, x);
+ SETLOCAL(j, x);
}
/* Pack other positional arguments into the *args argument */
if (co->co_flags & CO_VARARGS) {
- u = _PyTuple_FromArray(args + n, argcount - n);
+ u = _PyTuple_FromArray(args + n, argcount - n);
if (u == NULL) {
goto fail;
}
@@ -4153,16 +4153,16 @@ _PyEval_EvalCode(PyThreadState *tstate,
Py_ssize_t j;
if (keyword == NULL || !PyUnicode_Check(keyword)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U() keywords must be strings",
- co->co_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U() keywords must be strings",
+ co->co_name);
goto fail;
}
/* Speed hack: do raw pointer compares. As names are
normally interned this should almost always hit. */
co_varnames = ((PyTupleObject *)(co->co_varnames))->ob_item;
- for (j = co->co_posonlyargcount; j < total_args; j++) {
+ for (j = co->co_posonlyargcount; j < total_args; j++) {
PyObject *name = co_varnames[j];
if (name == keyword) {
goto kw_found;
@@ -4170,7 +4170,7 @@ _PyEval_EvalCode(PyThreadState *tstate,
}
/* Slow fallback, just in case */
- for (j = co->co_posonlyargcount; j < total_args; j++) {
+ for (j = co->co_posonlyargcount; j < total_args; j++) {
PyObject *name = co_varnames[j];
int cmp = PyObject_RichCompareBool( keyword, name, Py_EQ);
if (cmp > 0) {
@@ -4183,17 +4183,17 @@ _PyEval_EvalCode(PyThreadState *tstate,
assert(j >= total_args);
if (kwdict == NULL) {
-
- if (co->co_posonlyargcount
- && positional_only_passed_as_keyword(tstate, co,
- kwcount, kwnames))
- {
- goto fail;
- }
-
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U() got an unexpected keyword argument '%S'",
- co->co_name, keyword);
+
+ if (co->co_posonlyargcount
+ && positional_only_passed_as_keyword(tstate, co,
+ kwcount, kwnames))
+ {
+ goto fail;
+ }
+
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U() got an unexpected keyword argument '%S'",
+ co->co_name, keyword);
goto fail;
}
@@ -4204,9 +4204,9 @@ _PyEval_EvalCode(PyThreadState *tstate,
kw_found:
if (GETLOCAL(j) != NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U() got multiple values for argument '%S'",
- co->co_name, keyword);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U() got multiple values for argument '%S'",
+ co->co_name, keyword);
goto fail;
}
Py_INCREF(value);
@@ -4214,8 +4214,8 @@ _PyEval_EvalCode(PyThreadState *tstate,
}
/* Check the number of positional arguments */
- if ((argcount > co->co_argcount) && !(co->co_flags & CO_VARARGS)) {
- too_many_positional(tstate, co, argcount, defcount, fastlocals);
+ if ((argcount > co->co_argcount) && !(co->co_flags & CO_VARARGS)) {
+ too_many_positional(tstate, co, argcount, defcount, fastlocals);
goto fail;
}
@@ -4229,7 +4229,7 @@ _PyEval_EvalCode(PyThreadState *tstate,
}
}
if (missing) {
- missing_arguments(tstate, co, missing, defcount, fastlocals);
+ missing_arguments(tstate, co, missing, defcount, fastlocals);
goto fail;
}
if (n > m)
@@ -4254,20 +4254,20 @@ _PyEval_EvalCode(PyThreadState *tstate,
continue;
name = PyTuple_GET_ITEM(co->co_varnames, i);
if (kwdefs != NULL) {
- PyObject *def = PyDict_GetItemWithError(kwdefs, name);
+ PyObject *def = PyDict_GetItemWithError(kwdefs, name);
if (def) {
Py_INCREF(def);
SETLOCAL(i, def);
continue;
}
- else if (_PyErr_Occurred(tstate)) {
- goto fail;
- }
+ else if (_PyErr_Occurred(tstate)) {
+ goto fail;
+ }
}
missing++;
}
if (missing) {
- missing_arguments(tstate, co, missing, -1, fastlocals);
+ missing_arguments(tstate, co, missing, -1, fastlocals);
goto fail;
}
}
@@ -4326,7 +4326,7 @@ _PyEval_EvalCode(PyThreadState *tstate,
return gen;
}
- retval = _PyEval_EvalFrame(tstate, f, 0);
+ retval = _PyEval_EvalFrame(tstate, f, 0);
fail: /* Jump here from prelude on failure */
@@ -4347,27 +4347,27 @@ fail: /* Jump here from prelude on failure */
return retval;
}
-
+
+PyObject *
+_PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,
+ PyObject *const *args, Py_ssize_t argcount,
+ PyObject *const *kwnames, PyObject *const *kwargs,
+ Py_ssize_t kwcount, int kwstep,
+ PyObject *const *defs, Py_ssize_t defcount,
+ PyObject *kwdefs, PyObject *closure,
+ PyObject *name, PyObject *qualname)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyEval_EvalCode(tstate, _co, globals, locals,
+ args, argcount,
+ kwnames, kwargs,
+ kwcount, kwstep,
+ defs, defcount,
+ kwdefs, closure,
+ name, qualname);
+}
+
PyObject *
-_PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,
- PyObject *const *args, Py_ssize_t argcount,
- PyObject *const *kwnames, PyObject *const *kwargs,
- Py_ssize_t kwcount, int kwstep,
- PyObject *const *defs, Py_ssize_t defcount,
- PyObject *kwdefs, PyObject *closure,
- PyObject *name, PyObject *qualname)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyEval_EvalCode(tstate, _co, globals, locals,
- args, argcount,
- kwnames, kwargs,
- kwcount, kwstep,
- defs, defcount,
- kwdefs, closure,
- name, qualname);
-}
-
-PyObject *
PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals,
PyObject *const *args, int argcount,
PyObject *const *kws, int kwcount,
@@ -4384,12 +4384,12 @@ PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals,
}
static PyObject *
-special_lookup(PyThreadState *tstate, PyObject *o, _Py_Identifier *id)
+special_lookup(PyThreadState *tstate, PyObject *o, _Py_Identifier *id)
{
PyObject *res;
res = _PyObject_LookupSpecial(o, id);
- if (res == NULL && !_PyErr_Occurred(tstate)) {
- _PyErr_SetObject(tstate, PyExc_AttributeError, _PyUnicode_FromId(id));
+ if (res == NULL && !_PyErr_Occurred(tstate)) {
+ _PyErr_SetObject(tstate, PyExc_AttributeError, _PyUnicode_FromId(id));
return NULL;
}
return res;
@@ -4399,7 +4399,7 @@ special_lookup(PyThreadState *tstate, PyObject *o, _Py_Identifier *id)
/* Logic for the raise statement (too complicated for inlining).
This *consumes* a reference count to each of its arguments. */
static int
-do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
+do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
{
PyObject *type = NULL, *value = NULL;
@@ -4411,14 +4411,14 @@ do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
value = exc_info->exc_value;
tb = exc_info->exc_traceback;
if (type == Py_None || type == NULL) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "No active exception to reraise");
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "No active exception to reraise");
return 0;
}
Py_XINCREF(type);
Py_XINCREF(value);
Py_XINCREF(tb);
- _PyErr_Restore(tstate, type, value, tb);
+ _PyErr_Restore(tstate, type, value, tb);
return 1;
}
@@ -4433,11 +4433,11 @@ do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
if (value == NULL)
goto raise_error;
if (!PyExceptionInstance_Check(value)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "calling %R should have returned an instance of "
- "BaseException, not %R",
- type, Py_TYPE(value));
- goto raise_error;
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "calling %R should have returned an instance of "
+ "BaseException, not %R",
+ type, Py_TYPE(value));
+ goto raise_error;
}
}
else if (PyExceptionInstance_Check(exc)) {
@@ -4449,8 +4449,8 @@ do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
/* Not something you can raise. You get an exception
anyway, just not what you specified :-) */
Py_DECREF(exc);
- _PyErr_SetString(tstate, PyExc_TypeError,
- "exceptions must derive from BaseException");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "exceptions must derive from BaseException");
goto raise_error;
}
@@ -4473,16 +4473,16 @@ do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
fixed_cause = NULL;
}
else {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "exception causes must derive from "
- "BaseException");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "exception causes must derive from "
+ "BaseException");
goto raise_error;
}
PyException_SetCause(value, fixed_cause);
}
- _PyErr_SetObject(tstate, type, value);
- /* _PyErr_SetObject incref's its arguments */
+ _PyErr_SetObject(tstate, type, value);
+ /* _PyErr_SetObject incref's its arguments */
Py_DECREF(value);
Py_DECREF(type);
return 0;
@@ -4502,8 +4502,8 @@ raise_error:
*/
static int
-unpack_iterable(PyThreadState *tstate, PyObject *v,
- int argcnt, int argcntafter, PyObject **sp)
+unpack_iterable(PyThreadState *tstate, PyObject *v,
+ int argcnt, int argcntafter, PyObject **sp)
{
int i = 0, j = 0;
Py_ssize_t ll = 0;
@@ -4515,12 +4515,12 @@ unpack_iterable(PyThreadState *tstate, PyObject *v,
it = PyObject_GetIter(v);
if (it == NULL) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) &&
- Py_TYPE(v)->tp_iter == NULL && !PySequence_Check(v))
+ if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) &&
+ Py_TYPE(v)->tp_iter == NULL && !PySequence_Check(v))
{
- _PyErr_Format(tstate, PyExc_TypeError,
- "cannot unpack non-iterable %.200s object",
- Py_TYPE(v)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "cannot unpack non-iterable %.200s object",
+ Py_TYPE(v)->tp_name);
}
return 0;
}
@@ -4529,18 +4529,18 @@ unpack_iterable(PyThreadState *tstate, PyObject *v,
w = PyIter_Next(it);
if (w == NULL) {
/* Iterator done, via error or exhaustion. */
- if (!_PyErr_Occurred(tstate)) {
+ if (!_PyErr_Occurred(tstate)) {
if (argcntafter == -1) {
- _PyErr_Format(tstate, PyExc_ValueError,
- "not enough values to unpack "
- "(expected %d, got %d)",
- argcnt, i);
+ _PyErr_Format(tstate, PyExc_ValueError,
+ "not enough values to unpack "
+ "(expected %d, got %d)",
+ argcnt, i);
}
else {
- _PyErr_Format(tstate, PyExc_ValueError,
- "not enough values to unpack "
- "(expected at least %d, got %d)",
- argcnt + argcntafter, i);
+ _PyErr_Format(tstate, PyExc_ValueError,
+ "not enough values to unpack "
+ "(expected at least %d, got %d)",
+ argcnt + argcntafter, i);
}
}
goto Error;
@@ -4552,15 +4552,15 @@ unpack_iterable(PyThreadState *tstate, PyObject *v,
/* We better have exhausted the iterator now. */
w = PyIter_Next(it);
if (w == NULL) {
- if (_PyErr_Occurred(tstate))
+ if (_PyErr_Occurred(tstate))
goto Error;
Py_DECREF(it);
return 1;
}
Py_DECREF(w);
- _PyErr_Format(tstate, PyExc_ValueError,
- "too many values to unpack (expected %d)",
- argcnt);
+ _PyErr_Format(tstate, PyExc_ValueError,
+ "too many values to unpack (expected %d)",
+ argcnt);
goto Error;
}
@@ -4572,7 +4572,7 @@ unpack_iterable(PyThreadState *tstate, PyObject *v,
ll = PyList_GET_SIZE(l);
if (ll < argcntafter) {
- _PyErr_Format(tstate, PyExc_ValueError,
+ _PyErr_Format(tstate, PyExc_ValueError,
"not enough values to unpack (expected at least %d, got %zd)",
argcnt + argcntafter, argcnt + ll);
goto Error;
@@ -4583,7 +4583,7 @@ unpack_iterable(PyThreadState *tstate, PyObject *v,
*--sp = PyList_GET_ITEM(l, ll - j);
}
/* Resize the list. */
- Py_SET_SIZE(l, ll - argcntafter);
+ Py_SET_SIZE(l, ll - argcntafter);
Py_DECREF(it);
return 1;
@@ -4597,17 +4597,17 @@ Error:
#ifdef LLTRACE
static int
-prtrace(PyThreadState *tstate, PyObject *v, const char *str)
+prtrace(PyThreadState *tstate, PyObject *v, const char *str)
{
printf("%s ", str);
- PyObject *type, *value, *traceback;
- PyErr_Fetch(&type, &value, &traceback);
- if (PyObject_Print(v, stdout, 0) != 0) {
- /* Don't know what else to do */
- _PyErr_Clear(tstate);
- }
+ PyObject *type, *value, *traceback;
+ PyErr_Fetch(&type, &value, &traceback);
+ if (PyObject_Print(v, stdout, 0) != 0) {
+ /* Don't know what else to do */
+ _PyErr_Clear(tstate);
+ }
printf("\n");
- PyErr_Restore(type, value, traceback);
+ PyErr_Restore(type, value, traceback);
return 1;
}
#endif
@@ -4618,23 +4618,23 @@ call_exc_trace(Py_tracefunc func, PyObject *self,
{
PyObject *type, *value, *traceback, *orig_traceback, *arg;
int err;
- _PyErr_Fetch(tstate, &type, &value, &orig_traceback);
+ _PyErr_Fetch(tstate, &type, &value, &orig_traceback);
if (value == NULL) {
value = Py_None;
Py_INCREF(value);
}
- _PyErr_NormalizeException(tstate, &type, &value, &orig_traceback);
+ _PyErr_NormalizeException(tstate, &type, &value, &orig_traceback);
traceback = (orig_traceback != NULL) ? orig_traceback : Py_None;
arg = PyTuple_Pack(3, type, value, traceback);
if (arg == NULL) {
- _PyErr_Restore(tstate, type, value, orig_traceback);
+ _PyErr_Restore(tstate, type, value, orig_traceback);
return;
}
err = call_trace(func, self, tstate, f, PyTrace_EXCEPTION, arg);
Py_DECREF(arg);
- if (err == 0) {
- _PyErr_Restore(tstate, type, value, orig_traceback);
- }
+ if (err == 0) {
+ _PyErr_Restore(tstate, type, value, orig_traceback);
+ }
else {
Py_XDECREF(type);
Py_XDECREF(value);
@@ -4649,11 +4649,11 @@ call_trace_protected(Py_tracefunc func, PyObject *obj,
{
PyObject *type, *value, *traceback;
int err;
- _PyErr_Fetch(tstate, &type, &value, &traceback);
+ _PyErr_Fetch(tstate, &type, &value, &traceback);
err = call_trace(func, obj, tstate, frame, what, arg);
if (err == 0)
{
- _PyErr_Restore(tstate, type, value, traceback);
+ _PyErr_Restore(tstate, type, value, traceback);
return 0;
}
else {
@@ -4684,7 +4684,7 @@ call_trace(Py_tracefunc func, PyObject *obj,
PyObject *
_PyEval_CallTracing(PyObject *func, PyObject *args)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
int save_tracing = tstate->tracing;
int save_use_tracing = tstate->use_tracing;
PyObject *result;
@@ -4735,96 +4735,96 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj,
return result;
}
-int
-_PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)
+int
+_PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)
{
- assert(is_tstate_valid(tstate));
- /* The caller must hold the GIL */
- assert(PyGILState_Check());
-
- /* Call _PySys_Audit() in the context of the current thread state,
- even if tstate is not the current thread state. */
- PyThreadState *current_tstate = _PyThreadState_GET();
- if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) {
- return -1;
- }
-
- PyObject *profileobj = tstate->c_profileobj;
-
+ assert(is_tstate_valid(tstate));
+ /* The caller must hold the GIL */
+ assert(PyGILState_Check());
+
+ /* Call _PySys_Audit() in the context of the current thread state,
+ even if tstate is not the current thread state. */
+ PyThreadState *current_tstate = _PyThreadState_GET();
+ if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) {
+ return -1;
+ }
+
+ PyObject *profileobj = tstate->c_profileobj;
+
tstate->c_profilefunc = NULL;
tstate->c_profileobj = NULL;
- /* Must make sure that tracing is not ignored if 'profileobj' is freed */
+ /* Must make sure that tracing is not ignored if 'profileobj' is freed */
tstate->use_tracing = tstate->c_tracefunc != NULL;
- Py_XDECREF(profileobj);
-
- Py_XINCREF(arg);
- tstate->c_profileobj = arg;
+ Py_XDECREF(profileobj);
+
+ Py_XINCREF(arg);
+ tstate->c_profileobj = arg;
tstate->c_profilefunc = func;
-
+
/* Flag that tracing or profiling is turned on */
tstate->use_tracing = (func != NULL) || (tstate->c_tracefunc != NULL);
- return 0;
+ return 0;
}
void
-PyEval_SetProfile(Py_tracefunc func, PyObject *arg)
+PyEval_SetProfile(Py_tracefunc func, PyObject *arg)
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (_PyEval_SetProfile(tstate, func, arg) < 0) {
- /* Log _PySys_Audit() error */
- _PyErr_WriteUnraisableMsg("in PyEval_SetProfile", NULL);
- }
-}
-
-int
-_PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)
-{
- assert(is_tstate_valid(tstate));
- /* The caller must hold the GIL */
- assert(PyGILState_Check());
-
- /* Call _PySys_Audit() in the context of the current thread state,
- even if tstate is not the current thread state. */
- PyThreadState *current_tstate = _PyThreadState_GET();
- if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) {
- return -1;
- }
-
- struct _ceval_state *ceval2 = &tstate->interp->ceval;
- PyObject *traceobj = tstate->c_traceobj;
- ceval2->tracing_possible += (func != NULL) - (tstate->c_tracefunc != NULL);
-
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (_PyEval_SetProfile(tstate, func, arg) < 0) {
+ /* Log _PySys_Audit() error */
+ _PyErr_WriteUnraisableMsg("in PyEval_SetProfile", NULL);
+ }
+}
+
+int
+_PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)
+{
+ assert(is_tstate_valid(tstate));
+ /* The caller must hold the GIL */
+ assert(PyGILState_Check());
+
+ /* Call _PySys_Audit() in the context of the current thread state,
+ even if tstate is not the current thread state. */
+ PyThreadState *current_tstate = _PyThreadState_GET();
+ if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) {
+ return -1;
+ }
+
+ struct _ceval_state *ceval2 = &tstate->interp->ceval;
+ PyObject *traceobj = tstate->c_traceobj;
+ ceval2->tracing_possible += (func != NULL) - (tstate->c_tracefunc != NULL);
+
tstate->c_tracefunc = NULL;
tstate->c_traceobj = NULL;
- /* Must make sure that profiling is not ignored if 'traceobj' is freed */
- tstate->use_tracing = (tstate->c_profilefunc != NULL);
- Py_XDECREF(traceobj);
-
- Py_XINCREF(arg);
- tstate->c_traceobj = arg;
+ /* Must make sure that profiling is not ignored if 'traceobj' is freed */
+ tstate->use_tracing = (tstate->c_profilefunc != NULL);
+ Py_XDECREF(traceobj);
+
+ Py_XINCREF(arg);
+ tstate->c_traceobj = arg;
tstate->c_tracefunc = func;
-
+
/* Flag that tracing or profiling is turned on */
tstate->use_tracing = ((func != NULL)
|| (tstate->c_profilefunc != NULL));
-
- return 0;
+
+ return 0;
+}
+
+void
+PyEval_SetTrace(Py_tracefunc func, PyObject *arg)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (_PyEval_SetTrace(tstate, func, arg) < 0) {
+ /* Log _PySys_Audit() error */
+ _PyErr_WriteUnraisableMsg("in PyEval_SetTrace", NULL);
+ }
}
+
void
-PyEval_SetTrace(Py_tracefunc func, PyObject *arg)
+_PyEval_SetCoroutineOriginTrackingDepth(PyThreadState *tstate, int new_depth)
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (_PyEval_SetTrace(tstate, func, arg) < 0) {
- /* Log _PySys_Audit() error */
- _PyErr_WriteUnraisableMsg("in PyEval_SetTrace", NULL);
- }
-}
-
-
-void
-_PyEval_SetCoroutineOriginTrackingDepth(PyThreadState *tstate, int new_depth)
-{
assert(new_depth >= 0);
tstate->coroutine_origin_tracking_depth = new_depth;
}
@@ -4832,66 +4832,66 @@ _PyEval_SetCoroutineOriginTrackingDepth(PyThreadState *tstate, int new_depth)
int
_PyEval_GetCoroutineOriginTrackingDepth(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
return tstate->coroutine_origin_tracking_depth;
}
-int
-_PyEval_SetAsyncGenFirstiter(PyObject *firstiter)
-{
- PyThreadState *tstate = _PyThreadState_GET();
-
- if (_PySys_Audit(tstate, "sys.set_asyncgen_hook_firstiter", NULL) < 0) {
- return -1;
- }
-
- Py_XINCREF(firstiter);
- Py_XSETREF(tstate->async_gen_firstiter, firstiter);
- return 0;
-}
-
+int
+_PyEval_SetAsyncGenFirstiter(PyObject *firstiter)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ if (_PySys_Audit(tstate, "sys.set_asyncgen_hook_firstiter", NULL) < 0) {
+ return -1;
+ }
+
+ Py_XINCREF(firstiter);
+ Py_XSETREF(tstate->async_gen_firstiter, firstiter);
+ return 0;
+}
+
PyObject *
-_PyEval_GetAsyncGenFirstiter(void)
+_PyEval_GetAsyncGenFirstiter(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return tstate->async_gen_firstiter;
+ PyThreadState *tstate = _PyThreadState_GET();
+ return tstate->async_gen_firstiter;
+}
+
+int
+_PyEval_SetAsyncGenFinalizer(PyObject *finalizer)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ if (_PySys_Audit(tstate, "sys.set_asyncgen_hook_finalizer", NULL) < 0) {
+ return -1;
+ }
+
+ Py_XINCREF(finalizer);
+ Py_XSETREF(tstate->async_gen_finalizer, finalizer);
+ return 0;
}
-int
-_PyEval_SetAsyncGenFinalizer(PyObject *finalizer)
-{
- PyThreadState *tstate = _PyThreadState_GET();
-
- if (_PySys_Audit(tstate, "sys.set_asyncgen_hook_finalizer", NULL) < 0) {
- return -1;
- }
-
- Py_XINCREF(finalizer);
- Py_XSETREF(tstate->async_gen_finalizer, finalizer);
- return 0;
-}
-
PyObject *
-_PyEval_GetAsyncGenFinalizer(void)
+_PyEval_GetAsyncGenFinalizer(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return tstate->async_gen_finalizer;
+ PyThreadState *tstate = _PyThreadState_GET();
+ return tstate->async_gen_finalizer;
}
-PyFrameObject *
-PyEval_GetFrame(void)
+PyFrameObject *
+PyEval_GetFrame(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return tstate->frame;
+ PyThreadState *tstate = _PyThreadState_GET();
+ return tstate->frame;
}
PyObject *
PyEval_GetBuiltins(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *current_frame = tstate->frame;
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *current_frame = tstate->frame;
if (current_frame == NULL)
- return tstate->interp->builtins;
+ return tstate->interp->builtins;
else
return current_frame->f_builtins;
}
@@ -4900,13 +4900,13 @@ PyEval_GetBuiltins(void)
PyObject *
_PyEval_GetBuiltinId(_Py_Identifier *name)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *attr = _PyDict_GetItemIdWithError(PyEval_GetBuiltins(), name);
if (attr) {
Py_INCREF(attr);
}
- else if (!_PyErr_Occurred(tstate)) {
- _PyErr_SetObject(tstate, PyExc_AttributeError, _PyUnicode_FromId(name));
+ else if (!_PyErr_Occurred(tstate)) {
+ _PyErr_SetObject(tstate, PyExc_AttributeError, _PyUnicode_FromId(name));
}
return attr;
}
@@ -4914,16 +4914,16 @@ _PyEval_GetBuiltinId(_Py_Identifier *name)
PyObject *
PyEval_GetLocals(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *current_frame = tstate->frame;
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *current_frame = tstate->frame;
if (current_frame == NULL) {
- _PyErr_SetString(tstate, PyExc_SystemError, "frame does not exist");
+ _PyErr_SetString(tstate, PyExc_SystemError, "frame does not exist");
return NULL;
}
- if (PyFrame_FastToLocalsWithError(current_frame) < 0) {
+ if (PyFrame_FastToLocalsWithError(current_frame) < 0) {
return NULL;
- }
+ }
assert(current_frame->f_locals != NULL);
return current_frame->f_locals;
@@ -4932,11 +4932,11 @@ PyEval_GetLocals(void)
PyObject *
PyEval_GetGlobals(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *current_frame = tstate->frame;
- if (current_frame == NULL) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *current_frame = tstate->frame;
+ if (current_frame == NULL) {
return NULL;
- }
+ }
assert(current_frame->f_globals != NULL);
return current_frame->f_globals;
@@ -4945,8 +4945,8 @@ PyEval_GetGlobals(void)
int
PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *current_frame = tstate->frame;
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *current_frame = tstate->frame;
int result = cf->cf_flags != 0;
if (current_frame != NULL) {
@@ -4977,7 +4977,7 @@ PyEval_GetFuncName(PyObject *func)
else if (PyCFunction_Check(func))
return ((PyCFunctionObject*)func)->m_ml->ml_name;
else
- return Py_TYPE(func)->tp_name;
+ return Py_TYPE(func)->tp_name;
}
const char *
@@ -5024,44 +5024,44 @@ if (tstate->use_tracing && tstate->c_profilefunc) { \
x = call; \
}
-
-static PyObject *
-trace_call_function(PyThreadState *tstate,
- PyObject *func,
- PyObject **args, Py_ssize_t nargs,
- PyObject *kwnames)
-{
- PyObject *x;
- if (PyCFunction_CheckExact(func) || PyCMethod_CheckExact(func)) {
- C_TRACE(x, PyObject_Vectorcall(func, args, nargs, kwnames));
- return x;
- }
- else if (Py_IS_TYPE(func, &PyMethodDescr_Type) && nargs > 0) {
- /* We need to create a temporary bound method as argument
- for profiling.
-
- If nargs == 0, then this cannot work because we have no
- "self". In any case, the call itself would raise
- TypeError (foo needs an argument), so we just skip
- profiling. */
- PyObject *self = args[0];
- func = Py_TYPE(func)->tp_descr_get(func, self, (PyObject*)Py_TYPE(self));
- if (func == NULL) {
- return NULL;
- }
- C_TRACE(x, PyObject_Vectorcall(func,
- args+1, nargs-1,
- kwnames));
- Py_DECREF(func);
- return x;
- }
- return PyObject_Vectorcall(func, args, nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
-}
-
+
+static PyObject *
+trace_call_function(PyThreadState *tstate,
+ PyObject *func,
+ PyObject **args, Py_ssize_t nargs,
+ PyObject *kwnames)
+{
+ PyObject *x;
+ if (PyCFunction_CheckExact(func) || PyCMethod_CheckExact(func)) {
+ C_TRACE(x, PyObject_Vectorcall(func, args, nargs, kwnames));
+ return x;
+ }
+ else if (Py_IS_TYPE(func, &PyMethodDescr_Type) && nargs > 0) {
+ /* We need to create a temporary bound method as argument
+ for profiling.
+
+ If nargs == 0, then this cannot work because we have no
+ "self". In any case, the call itself would raise
+ TypeError (foo needs an argument), so we just skip
+ profiling. */
+ PyObject *self = args[0];
+ func = Py_TYPE(func)->tp_descr_get(func, self, (PyObject*)Py_TYPE(self));
+ if (func == NULL) {
+ return NULL;
+ }
+ C_TRACE(x, PyObject_Vectorcall(func,
+ args+1, nargs-1,
+ kwnames));
+ Py_DECREF(func);
+ return x;
+ }
+ return PyObject_Vectorcall(func, args, nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
+}
+
/* Issue #29227: Inline call_function() into _PyEval_EvalFrameDefault()
to reduce the stack consumption. */
Py_LOCAL_INLINE(PyObject *) _Py_HOT_FUNCTION
-call_function(PyThreadState *tstate, PyObject ***pp_stack, Py_ssize_t oparg, PyObject *kwnames)
+call_function(PyThreadState *tstate, PyObject ***pp_stack, Py_ssize_t oparg, PyObject *kwnames)
{
PyObject **pfunc = (*pp_stack) - oparg - 1;
PyObject *func = *pfunc;
@@ -5070,14 +5070,14 @@ call_function(PyThreadState *tstate, PyObject ***pp_stack, Py_ssize_t oparg, PyO
Py_ssize_t nargs = oparg - nkwargs;
PyObject **stack = (*pp_stack) - nargs - nkwargs;
- if (tstate->use_tracing) {
- x = trace_call_function(tstate, func, stack, nargs, kwnames);
+ if (tstate->use_tracing) {
+ x = trace_call_function(tstate, func, stack, nargs, kwnames);
}
else {
- x = PyObject_Vectorcall(func, stack, nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
+ x = PyObject_Vectorcall(func, stack, nargs | PY_VECTORCALL_ARGUMENTS_OFFSET, kwnames);
}
- assert((x != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
+ assert((x != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
/* Clear the stack of the function object. */
while ((*pp_stack) > pfunc) {
@@ -5089,40 +5089,40 @@ call_function(PyThreadState *tstate, PyObject ***pp_stack, Py_ssize_t oparg, PyO
}
static PyObject *
-do_call_core(PyThreadState *tstate, PyObject *func, PyObject *callargs, PyObject *kwdict)
+do_call_core(PyThreadState *tstate, PyObject *func, PyObject *callargs, PyObject *kwdict)
{
- PyObject *result;
-
- if (PyCFunction_CheckExact(func) || PyCMethod_CheckExact(func)) {
- C_TRACE(result, PyObject_Call(func, callargs, kwdict));
+ PyObject *result;
+
+ if (PyCFunction_CheckExact(func) || PyCMethod_CheckExact(func)) {
+ C_TRACE(result, PyObject_Call(func, callargs, kwdict));
return result;
}
- else if (Py_IS_TYPE(func, &PyMethodDescr_Type)) {
- Py_ssize_t nargs = PyTuple_GET_SIZE(callargs);
- if (nargs > 0 && tstate->use_tracing) {
- /* We need to create a temporary bound method as argument
- for profiling.
-
- If nargs == 0, then this cannot work because we have no
- "self". In any case, the call itself would raise
- TypeError (foo needs an argument), so we just skip
- profiling. */
- PyObject *self = PyTuple_GET_ITEM(callargs, 0);
- func = Py_TYPE(func)->tp_descr_get(func, self, (PyObject*)Py_TYPE(self));
- if (func == NULL) {
- return NULL;
- }
-
- C_TRACE(result, _PyObject_FastCallDictTstate(
- tstate, func,
- &_PyTuple_ITEMS(callargs)[1],
- nargs - 1,
- kwdict));
- Py_DECREF(func);
- return result;
- }
- }
- return PyObject_Call(func, callargs, kwdict);
+ else if (Py_IS_TYPE(func, &PyMethodDescr_Type)) {
+ Py_ssize_t nargs = PyTuple_GET_SIZE(callargs);
+ if (nargs > 0 && tstate->use_tracing) {
+ /* We need to create a temporary bound method as argument
+ for profiling.
+
+ If nargs == 0, then this cannot work because we have no
+ "self". In any case, the call itself would raise
+ TypeError (foo needs an argument), so we just skip
+ profiling. */
+ PyObject *self = PyTuple_GET_ITEM(callargs, 0);
+ func = Py_TYPE(func)->tp_descr_get(func, self, (PyObject*)Py_TYPE(self));
+ if (func == NULL) {
+ return NULL;
+ }
+
+ C_TRACE(result, _PyObject_FastCallDictTstate(
+ tstate, func,
+ &_PyTuple_ITEMS(callargs)[1],
+ nargs - 1,
+ kwdict));
+ Py_DECREF(func);
+ return result;
+ }
+ }
+ return PyObject_Call(func, callargs, kwdict);
}
/* Extract a slice index from a PyLong or an object with the
@@ -5134,18 +5134,18 @@ do_call_core(PyThreadState *tstate, PyObject *func, PyObject *callargs, PyObject
int
_PyEval_SliceIndex(PyObject *v, Py_ssize_t *pi)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (v != Py_None) {
Py_ssize_t x;
- if (_PyIndex_Check(v)) {
+ if (_PyIndex_Check(v)) {
x = PyNumber_AsSsize_t(v, NULL);
- if (x == -1 && _PyErr_Occurred(tstate))
+ if (x == -1 && _PyErr_Occurred(tstate))
return 0;
}
else {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "slice indices must be integers or "
- "None or have an __index__ method");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "slice indices must be integers or "
+ "None or have an __index__ method");
return 0;
}
*pi = x;
@@ -5156,17 +5156,17 @@ _PyEval_SliceIndex(PyObject *v, Py_ssize_t *pi)
int
_PyEval_SliceIndexNotNone(PyObject *v, Py_ssize_t *pi)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
Py_ssize_t x;
- if (_PyIndex_Check(v)) {
+ if (_PyIndex_Check(v)) {
x = PyNumber_AsSsize_t(v, NULL);
- if (x == -1 && _PyErr_Occurred(tstate))
+ if (x == -1 && _PyErr_Occurred(tstate))
return 0;
}
else {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "slice indices must be integers or "
- "have an __index__ method");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "slice indices must be integers or "
+ "have an __index__ method");
return 0;
}
*pi = x;
@@ -5174,25 +5174,25 @@ _PyEval_SliceIndexNotNone(PyObject *v, Py_ssize_t *pi)
}
static PyObject *
-import_name(PyThreadState *tstate, PyFrameObject *f,
- PyObject *name, PyObject *fromlist, PyObject *level)
+import_name(PyThreadState *tstate, PyFrameObject *f,
+ PyObject *name, PyObject *fromlist, PyObject *level)
{
_Py_IDENTIFIER(__import__);
PyObject *import_func, *res;
PyObject* stack[5];
- import_func = _PyDict_GetItemIdWithError(f->f_builtins, &PyId___import__);
+ import_func = _PyDict_GetItemIdWithError(f->f_builtins, &PyId___import__);
if (import_func == NULL) {
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_SetString(tstate, PyExc_ImportError, "__import__ not found");
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_SetString(tstate, PyExc_ImportError, "__import__ not found");
+ }
return NULL;
}
/* Fast path for not overloaded __import__. */
- if (import_func == tstate->interp->import_func) {
+ if (import_func == tstate->interp->import_func) {
int ilevel = _PyLong_AsInt(level);
- if (ilevel == -1 && _PyErr_Occurred(tstate)) {
+ if (ilevel == -1 && _PyErr_Occurred(tstate)) {
return NULL;
}
res = PyImport_ImportModuleLevelObject(
@@ -5217,7 +5217,7 @@ import_name(PyThreadState *tstate, PyFrameObject *f,
}
static PyObject *
-import_from(PyThreadState *tstate, PyObject *v, PyObject *name)
+import_from(PyThreadState *tstate, PyObject *v, PyObject *name)
{
PyObject *x;
PyObject *fullmodname, *pkgname, *pkgpath, *pkgname_or_unknown, *errmsg;
@@ -5243,7 +5243,7 @@ import_from(PyThreadState *tstate, PyObject *v, PyObject *name)
}
x = PyImport_GetModule(fullmodname);
Py_DECREF(fullmodname);
- if (x == NULL && !_PyErr_Occurred(tstate)) {
+ if (x == NULL && !_PyErr_Occurred(tstate)) {
goto error;
}
Py_DECREF(pkgname);
@@ -5261,26 +5261,26 @@ import_from(PyThreadState *tstate, PyObject *v, PyObject *name)
}
if (pkgpath == NULL || !PyUnicode_Check(pkgpath)) {
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
errmsg = PyUnicode_FromFormat(
"cannot import name %R from %R (unknown location)",
name, pkgname_or_unknown
);
- /* NULL checks for errmsg and pkgname done by PyErr_SetImportError. */
+ /* NULL checks for errmsg and pkgname done by PyErr_SetImportError. */
PyErr_SetImportError(errmsg, pkgname, NULL);
}
else {
- _Py_IDENTIFIER(__spec__);
- PyObject *spec = _PyObject_GetAttrId(v, &PyId___spec__);
- const char *fmt =
- _PyModuleSpec_IsInitializing(spec) ?
- "cannot import name %R from partially initialized module %R "
- "(most likely due to a circular import) (%S)" :
- "cannot import name %R from %R (%S)";
- Py_XDECREF(spec);
-
- errmsg = PyUnicode_FromFormat(fmt, name, pkgname_or_unknown, pkgpath);
- /* NULL checks for errmsg and pkgname done by PyErr_SetImportError. */
+ _Py_IDENTIFIER(__spec__);
+ PyObject *spec = _PyObject_GetAttrId(v, &PyId___spec__);
+ const char *fmt =
+ _PyModuleSpec_IsInitializing(spec) ?
+ "cannot import name %R from partially initialized module %R "
+ "(most likely due to a circular import) (%S)" :
+ "cannot import name %R from %R (%S)";
+ Py_XDECREF(spec);
+
+ errmsg = PyUnicode_FromFormat(fmt, name, pkgname_or_unknown, pkgpath);
+ /* NULL checks for errmsg and pkgname done by PyErr_SetImportError. */
PyErr_SetImportError(errmsg, pkgname, pkgpath);
}
@@ -5291,7 +5291,7 @@ import_from(PyThreadState *tstate, PyObject *v, PyObject *name)
}
static int
-import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v)
+import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v)
{
_Py_IDENTIFIER(__all__);
_Py_IDENTIFIER(__dict__);
@@ -5307,7 +5307,7 @@ import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v)
return -1;
}
if (dict == NULL) {
- _PyErr_SetString(tstate, PyExc_ImportError,
+ _PyErr_SetString(tstate, PyExc_ImportError,
"from-import-* object has no __dict__ and no __all__");
return -1;
}
@@ -5321,40 +5321,40 @@ import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v)
for (pos = 0, err = 0; ; pos++) {
name = PySequence_GetItem(all, pos);
if (name == NULL) {
- if (!_PyErr_ExceptionMatches(tstate, PyExc_IndexError)) {
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_IndexError)) {
err = -1;
- }
- else {
- _PyErr_Clear(tstate);
- }
+ }
+ else {
+ _PyErr_Clear(tstate);
+ }
break;
}
- if (!PyUnicode_Check(name)) {
- PyObject *modname = _PyObject_GetAttrId(v, &PyId___name__);
- if (modname == NULL) {
- Py_DECREF(name);
- err = -1;
- break;
- }
- if (!PyUnicode_Check(modname)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "module __name__ must be a string, not %.100s",
- Py_TYPE(modname)->tp_name);
- }
- else {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%s in %U.%s must be str, not %.100s",
- skip_leading_underscores ? "Key" : "Item",
- modname,
- skip_leading_underscores ? "__dict__" : "__all__",
- Py_TYPE(name)->tp_name);
- }
- Py_DECREF(modname);
- Py_DECREF(name);
- err = -1;
- break;
- }
- if (skip_leading_underscores) {
+ if (!PyUnicode_Check(name)) {
+ PyObject *modname = _PyObject_GetAttrId(v, &PyId___name__);
+ if (modname == NULL) {
+ Py_DECREF(name);
+ err = -1;
+ break;
+ }
+ if (!PyUnicode_Check(modname)) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "module __name__ must be a string, not %.100s",
+ Py_TYPE(modname)->tp_name);
+ }
+ else {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%s in %U.%s must be str, not %.100s",
+ skip_leading_underscores ? "Key" : "Item",
+ modname,
+ skip_leading_underscores ? "__dict__" : "__all__",
+ Py_TYPE(name)->tp_name);
+ }
+ Py_DECREF(modname);
+ Py_DECREF(name);
+ err = -1;
+ break;
+ }
+ if (skip_leading_underscores) {
if (PyUnicode_READY(name) == -1) {
Py_DECREF(name);
err = -1;
@@ -5382,72 +5382,72 @@ import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v)
}
static int
-check_args_iterable(PyThreadState *tstate, PyObject *func, PyObject *args)
+check_args_iterable(PyThreadState *tstate, PyObject *func, PyObject *args)
{
- if (Py_TYPE(args)->tp_iter == NULL && !PySequence_Check(args)) {
- /* check_args_iterable() may be called with a live exception:
- * clear it to prevent calling _PyObject_FunctionStr() with an
- * exception set. */
- _PyErr_Clear(tstate);
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "%U argument after * must be an iterable, not %.200s",
- funcstr, Py_TYPE(args)->tp_name);
- Py_DECREF(funcstr);
- }
+ if (Py_TYPE(args)->tp_iter == NULL && !PySequence_Check(args)) {
+ /* check_args_iterable() may be called with a live exception:
+ * clear it to prevent calling _PyObject_FunctionStr() with an
+ * exception set. */
+ _PyErr_Clear(tstate);
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "%U argument after * must be an iterable, not %.200s",
+ funcstr, Py_TYPE(args)->tp_name);
+ Py_DECREF(funcstr);
+ }
return -1;
}
return 0;
}
static void
-format_kwargs_error(PyThreadState *tstate, PyObject *func, PyObject *kwargs)
+format_kwargs_error(PyThreadState *tstate, PyObject *func, PyObject *kwargs)
{
- /* _PyDict_MergeEx raises attribute
- * error (percolated from an attempt
- * to get 'keys' attribute) instead of
- * a type error if its second argument
- * is not a mapping.
- */
- if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
- _PyErr_Clear(tstate);
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- _PyErr_Format(
- tstate, PyExc_TypeError,
- "%U argument after ** must be a mapping, not %.200s",
- funcstr, Py_TYPE(kwargs)->tp_name);
- Py_DECREF(funcstr);
- }
- }
- else if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
- PyObject *exc, *val, *tb;
- _PyErr_Fetch(tstate, &exc, &val, &tb);
- if (val && PyTuple_Check(val) && PyTuple_GET_SIZE(val) == 1) {
- _PyErr_Clear(tstate);
- PyObject *funcstr = _PyObject_FunctionStr(func);
- if (funcstr != NULL) {
- PyObject *key = PyTuple_GET_ITEM(val, 0);
- _PyErr_Format(
- tstate, PyExc_TypeError,
- "%U got multiple values for keyword argument '%S'",
- funcstr, key);
- Py_DECREF(funcstr);
- }
- Py_XDECREF(exc);
- Py_XDECREF(val);
- Py_XDECREF(tb);
- }
- else {
- _PyErr_Restore(tstate, exc, val, tb);
- }
- }
+ /* _PyDict_MergeEx raises attribute
+ * error (percolated from an attempt
+ * to get 'keys' attribute) instead of
+ * a type error if its second argument
+ * is not a mapping.
+ */
+ if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
+ _PyErr_Clear(tstate);
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ _PyErr_Format(
+ tstate, PyExc_TypeError,
+ "%U argument after ** must be a mapping, not %.200s",
+ funcstr, Py_TYPE(kwargs)->tp_name);
+ Py_DECREF(funcstr);
+ }
+ }
+ else if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ PyObject *exc, *val, *tb;
+ _PyErr_Fetch(tstate, &exc, &val, &tb);
+ if (val && PyTuple_Check(val) && PyTuple_GET_SIZE(val) == 1) {
+ _PyErr_Clear(tstate);
+ PyObject *funcstr = _PyObject_FunctionStr(func);
+ if (funcstr != NULL) {
+ PyObject *key = PyTuple_GET_ITEM(val, 0);
+ _PyErr_Format(
+ tstate, PyExc_TypeError,
+ "%U got multiple values for keyword argument '%S'",
+ funcstr, key);
+ Py_DECREF(funcstr);
+ }
+ Py_XDECREF(exc);
+ Py_XDECREF(val);
+ Py_XDECREF(tb);
+ }
+ else {
+ _PyErr_Restore(tstate, exc, val, tb);
+ }
+ }
}
static void
-format_exc_check_arg(PyThreadState *tstate, PyObject *exc,
- const char *format_str, PyObject *obj)
+format_exc_check_arg(PyThreadState *tstate, PyObject *exc,
+ const char *format_str, PyObject *obj)
{
const char *obj_str;
@@ -5458,52 +5458,52 @@ format_exc_check_arg(PyThreadState *tstate, PyObject *exc,
if (!obj_str)
return;
- _PyErr_Format(tstate, exc, format_str, obj_str);
+ _PyErr_Format(tstate, exc, format_str, obj_str);
}
static void
-format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int oparg)
+format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int oparg)
{
PyObject *name;
/* Don't stomp existing exception */
- if (_PyErr_Occurred(tstate))
+ if (_PyErr_Occurred(tstate))
return;
if (oparg < PyTuple_GET_SIZE(co->co_cellvars)) {
name = PyTuple_GET_ITEM(co->co_cellvars,
oparg);
- format_exc_check_arg(tstate,
+ format_exc_check_arg(tstate,
PyExc_UnboundLocalError,
UNBOUNDLOCAL_ERROR_MSG,
name);
} else {
name = PyTuple_GET_ITEM(co->co_freevars, oparg -
PyTuple_GET_SIZE(co->co_cellvars));
- format_exc_check_arg(tstate, PyExc_NameError,
+ format_exc_check_arg(tstate, PyExc_NameError,
UNBOUNDFREE_ERROR_MSG, name);
}
}
static void
-format_awaitable_error(PyThreadState *tstate, PyTypeObject *type, int prevprevopcode, int prevopcode)
+format_awaitable_error(PyThreadState *tstate, PyTypeObject *type, int prevprevopcode, int prevopcode)
{
if (type->tp_as_async == NULL || type->tp_as_async->am_await == NULL) {
if (prevopcode == BEFORE_ASYNC_WITH) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'async with' received an object from __aenter__ "
- "that does not implement __await__: %.100s",
- type->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'async with' received an object from __aenter__ "
+ "that does not implement __await__: %.100s",
+ type->tp_name);
}
- else if (prevopcode == WITH_EXCEPT_START || (prevopcode == CALL_FUNCTION && prevprevopcode == DUP_TOP)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'async with' received an object from __aexit__ "
- "that does not implement __await__: %.100s",
- type->tp_name);
+ else if (prevopcode == WITH_EXCEPT_START || (prevopcode == CALL_FUNCTION && prevprevopcode == DUP_TOP)) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'async with' received an object from __aexit__ "
+ "that does not implement __await__: %.100s",
+ type->tp_name);
}
}
}
static PyObject *
-unicode_concatenate(PyThreadState *tstate, PyObject *v, PyObject *w,
+unicode_concatenate(PyThreadState *tstate, PyObject *v, PyObject *w,
PyFrameObject *f, const _Py_CODEUNIT *next_instr)
{
PyObject *res;
@@ -5540,13 +5540,13 @@ unicode_concatenate(PyThreadState *tstate, PyObject *v, PyObject *w,
PyObject *names = f->f_code->co_names;
PyObject *name = GETITEM(names, oparg);
PyObject *locals = f->f_locals;
- if (locals && PyDict_CheckExact(locals)) {
- PyObject *w = PyDict_GetItemWithError(locals, name);
- if ((w == v && PyDict_DelItem(locals, name) != 0) ||
- (w == NULL && _PyErr_Occurred(tstate)))
- {
- Py_DECREF(v);
- return NULL;
+ if (locals && PyDict_CheckExact(locals)) {
+ PyObject *w = PyDict_GetItemWithError(locals, name);
+ if ((w == v && PyDict_DelItem(locals, name) != 0) ||
+ (w == NULL && _PyErr_Occurred(tstate)))
+ {
+ Py_DECREF(v);
+ return NULL;
}
}
break;
@@ -5605,7 +5605,7 @@ _Py_GetDXProfile(PyObject *self, PyObject *args)
Py_ssize_t
_PyEval_RequestCodeExtraIndex(freefunc free)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
Py_ssize_t new_index;
if (interp->co_extra_user_count == MAX_CO_EXTRA_USERS - 1) {
@@ -5623,10 +5623,10 @@ dtrace_function_entry(PyFrameObject *f)
const char *funcname;
int lineno;
- PyCodeObject *code = f->f_code;
- filename = PyUnicode_AsUTF8(code->co_filename);
- funcname = PyUnicode_AsUTF8(code->co_name);
- lineno = PyCode_Addr2Line(code, f->f_lasti);
+ PyCodeObject *code = f->f_code;
+ filename = PyUnicode_AsUTF8(code->co_filename);
+ funcname = PyUnicode_AsUTF8(code->co_name);
+ lineno = PyCode_Addr2Line(code, f->f_lasti);
PyDTrace_FUNCTION_ENTRY(filename, funcname, lineno);
}
@@ -5638,10 +5638,10 @@ dtrace_function_return(PyFrameObject *f)
const char *funcname;
int lineno;
- PyCodeObject *code = f->f_code;
- filename = PyUnicode_AsUTF8(code->co_filename);
- funcname = PyUnicode_AsUTF8(code->co_name);
- lineno = PyCode_Addr2Line(code, f->f_lasti);
+ PyCodeObject *code = f->f_code;
+ filename = PyUnicode_AsUTF8(code->co_filename);
+ funcname = PyUnicode_AsUTF8(code->co_name);
+ lineno = PyCode_Addr2Line(code, f->f_lasti);
PyDTrace_FUNCTION_RETURN(filename, funcname, lineno);
}
@@ -5679,21 +5679,21 @@ maybe_dtrace_line(PyFrameObject *frame,
}
*instr_prev = frame->f_lasti;
}
-
-
-/* Implement Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() as functions
- for the limited API. */
-
-#undef Py_EnterRecursiveCall
-
-int Py_EnterRecursiveCall(const char *where)
-{
- return _Py_EnterRecursiveCall_inline(where);
-}
-
-#undef Py_LeaveRecursiveCall
-
-void Py_LeaveRecursiveCall(void)
-{
- _Py_LeaveRecursiveCall_inline();
-}
+
+
+/* Implement Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() as functions
+ for the limited API. */
+
+#undef Py_EnterRecursiveCall
+
+int Py_EnterRecursiveCall(const char *where)
+{
+ return _Py_EnterRecursiveCall_inline(where);
+}
+
+#undef Py_LeaveRecursiveCall
+
+void Py_LeaveRecursiveCall(void)
+{
+ _Py_LeaveRecursiveCall_inline();
+}
diff --git a/contrib/tools/python3/src/Python/ceval_gil.h b/contrib/tools/python3/src/Python/ceval_gil.h
index 3624d9462f..3510675a69 100644
--- a/contrib/tools/python3/src/Python/ceval_gil.h
+++ b/contrib/tools/python3/src/Python/ceval_gil.h
@@ -5,7 +5,7 @@
#include <stdlib.h>
#include <errno.h>
-#include "pycore_atomic.h"
+#include "pycore_atomic.h"
/*
@@ -90,242 +90,242 @@
#define DEFAULT_INTERVAL 5000
-static void _gil_initialize(struct _gil_runtime_state *gil)
+static void _gil_initialize(struct _gil_runtime_state *gil)
{
_Py_atomic_int uninitialized = {-1};
- gil->locked = uninitialized;
- gil->interval = DEFAULT_INTERVAL;
+ gil->locked = uninitialized;
+ gil->interval = DEFAULT_INTERVAL;
}
-static int gil_created(struct _gil_runtime_state *gil)
+static int gil_created(struct _gil_runtime_state *gil)
{
- return (_Py_atomic_load_explicit(&gil->locked, _Py_memory_order_acquire) >= 0);
+ return (_Py_atomic_load_explicit(&gil->locked, _Py_memory_order_acquire) >= 0);
}
-static void create_gil(struct _gil_runtime_state *gil)
+static void create_gil(struct _gil_runtime_state *gil)
{
- MUTEX_INIT(gil->mutex);
+ MUTEX_INIT(gil->mutex);
#ifdef FORCE_SWITCHING
- MUTEX_INIT(gil->switch_mutex);
+ MUTEX_INIT(gil->switch_mutex);
#endif
- COND_INIT(gil->cond);
+ COND_INIT(gil->cond);
#ifdef FORCE_SWITCHING
- COND_INIT(gil->switch_cond);
+ COND_INIT(gil->switch_cond);
#endif
- _Py_atomic_store_relaxed(&gil->last_holder, 0);
- _Py_ANNOTATE_RWLOCK_CREATE(&gil->locked);
- _Py_atomic_store_explicit(&gil->locked, 0, _Py_memory_order_release);
+ _Py_atomic_store_relaxed(&gil->last_holder, 0);
+ _Py_ANNOTATE_RWLOCK_CREATE(&gil->locked);
+ _Py_atomic_store_explicit(&gil->locked, 0, _Py_memory_order_release);
}
-static void destroy_gil(struct _gil_runtime_state *gil)
+static void destroy_gil(struct _gil_runtime_state *gil)
{
/* some pthread-like implementations tie the mutex to the cond
* and must have the cond destroyed first.
*/
- COND_FINI(gil->cond);
- MUTEX_FINI(gil->mutex);
+ COND_FINI(gil->cond);
+ MUTEX_FINI(gil->mutex);
#ifdef FORCE_SWITCHING
- COND_FINI(gil->switch_cond);
- MUTEX_FINI(gil->switch_mutex);
+ COND_FINI(gil->switch_cond);
+ MUTEX_FINI(gil->switch_mutex);
#endif
- _Py_atomic_store_explicit(&gil->locked, -1,
+ _Py_atomic_store_explicit(&gil->locked, -1,
_Py_memory_order_release);
- _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked);
+ _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked);
}
-static void recreate_gil(struct _gil_runtime_state *gil)
+static void recreate_gil(struct _gil_runtime_state *gil)
{
- _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked);
+ _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked);
/* XXX should we destroy the old OS resources here? */
- create_gil(gil);
+ create_gil(gil);
}
-static void
-drop_gil(struct _ceval_runtime_state *ceval, struct _ceval_state *ceval2,
- PyThreadState *tstate)
+static void
+drop_gil(struct _ceval_runtime_state *ceval, struct _ceval_state *ceval2,
+ PyThreadState *tstate)
{
- struct _gil_runtime_state *gil = &ceval->gil;
- if (!_Py_atomic_load_relaxed(&gil->locked)) {
+ struct _gil_runtime_state *gil = &ceval->gil;
+ if (!_Py_atomic_load_relaxed(&gil->locked)) {
Py_FatalError("drop_gil: GIL is not locked");
- }
-
+ }
+
/* tstate is allowed to be NULL (early interpreter init) */
if (tstate != NULL) {
/* Sub-interpreter support: threads might have been switched
under our feet using PyThreadState_Swap(). Fix the GIL last
holder variable so that our heuristics work. */
- _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate);
+ _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate);
}
- MUTEX_LOCK(gil->mutex);
- _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1);
- _Py_atomic_store_relaxed(&gil->locked, 0);
- COND_SIGNAL(gil->cond);
- MUTEX_UNLOCK(gil->mutex);
+ MUTEX_LOCK(gil->mutex);
+ _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1);
+ _Py_atomic_store_relaxed(&gil->locked, 0);
+ COND_SIGNAL(gil->cond);
+ MUTEX_UNLOCK(gil->mutex);
#ifdef FORCE_SWITCHING
- if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request) && tstate != NULL) {
- MUTEX_LOCK(gil->switch_mutex);
+ if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request) && tstate != NULL) {
+ MUTEX_LOCK(gil->switch_mutex);
/* Not switched yet => wait */
- if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) == tstate)
+ if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) == tstate)
{
- assert(is_tstate_valid(tstate));
- RESET_GIL_DROP_REQUEST(tstate->interp);
+ assert(is_tstate_valid(tstate));
+ RESET_GIL_DROP_REQUEST(tstate->interp);
/* NOTE: if COND_WAIT does not atomically start waiting when
releasing the mutex, another thread can run through, take
the GIL and drop it again, and reset the condition
before we even had a chance to wait for it. */
- COND_WAIT(gil->switch_cond, gil->switch_mutex);
- }
- MUTEX_UNLOCK(gil->switch_mutex);
+ COND_WAIT(gil->switch_cond, gil->switch_mutex);
+ }
+ MUTEX_UNLOCK(gil->switch_mutex);
}
#endif
}
-
-/* Check if a Python thread must exit immediately, rather than taking the GIL
- if Py_Finalize() has been called.
-
- When this function is called by a daemon thread after Py_Finalize() has been
- called, the GIL does no longer exist.
-
- tstate must be non-NULL. */
-static inline int
-tstate_must_exit(PyThreadState *tstate)
-{
- /* bpo-39877: Access _PyRuntime directly rather than using
- tstate->interp->runtime to support calls from Python daemon threads.
- After Py_Finalize() has been called, tstate can be a dangling pointer:
- point to PyThreadState freed memory. */
- PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(&_PyRuntime);
- return (finalizing != NULL && finalizing != tstate);
-}
-
-
-/* Take the GIL.
-
- The function saves errno at entry and restores its value at exit.
-
- tstate must be non-NULL. */
-static void
-take_gil(PyThreadState *tstate)
+
+/* Check if a Python thread must exit immediately, rather than taking the GIL
+ if Py_Finalize() has been called.
+
+ When this function is called by a daemon thread after Py_Finalize() has been
+ called, the GIL does no longer exist.
+
+ tstate must be non-NULL. */
+static inline int
+tstate_must_exit(PyThreadState *tstate)
+{
+ /* bpo-39877: Access _PyRuntime directly rather than using
+ tstate->interp->runtime to support calls from Python daemon threads.
+ After Py_Finalize() has been called, tstate can be a dangling pointer:
+ point to PyThreadState freed memory. */
+ PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(&_PyRuntime);
+ return (finalizing != NULL && finalizing != tstate);
+}
+
+
+/* Take the GIL.
+
+ The function saves errno at entry and restores its value at exit.
+
+ tstate must be non-NULL. */
+static void
+take_gil(PyThreadState *tstate)
{
- int err = errno;
-
- assert(tstate != NULL);
-
- if (tstate_must_exit(tstate)) {
- /* bpo-39877: If Py_Finalize() has been called and tstate is not the
- thread which called Py_Finalize(), exit immediately the thread.
-
- This code path can be reached by a daemon thread after Py_Finalize()
- completes. In this case, tstate is a dangling pointer: points to
- PyThreadState freed memory. */
- PyThread_exit_thread();
- }
-
- assert(is_tstate_valid(tstate));
- PyInterpreterState *interp = tstate->interp;
- struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
- struct _ceval_state *ceval2 = &interp->ceval;
- struct _gil_runtime_state *gil = &ceval->gil;
-
- /* Check that _PyEval_InitThreads() was called to create the lock */
- assert(gil_created(gil));
-
- MUTEX_LOCK(gil->mutex);
-
- if (!_Py_atomic_load_relaxed(&gil->locked)) {
+ int err = errno;
+
+ assert(tstate != NULL);
+
+ if (tstate_must_exit(tstate)) {
+ /* bpo-39877: If Py_Finalize() has been called and tstate is not the
+ thread which called Py_Finalize(), exit immediately the thread.
+
+ This code path can be reached by a daemon thread after Py_Finalize()
+ completes. In this case, tstate is a dangling pointer: points to
+ PyThreadState freed memory. */
+ PyThread_exit_thread();
+ }
+
+ assert(is_tstate_valid(tstate));
+ PyInterpreterState *interp = tstate->interp;
+ struct _ceval_runtime_state *ceval = &interp->runtime->ceval;
+ struct _ceval_state *ceval2 = &interp->ceval;
+ struct _gil_runtime_state *gil = &ceval->gil;
+
+ /* Check that _PyEval_InitThreads() was called to create the lock */
+ assert(gil_created(gil));
+
+ MUTEX_LOCK(gil->mutex);
+
+ if (!_Py_atomic_load_relaxed(&gil->locked)) {
goto _ready;
- }
+ }
+
+ while (_Py_atomic_load_relaxed(&gil->locked)) {
+ unsigned long saved_switchnum = gil->switch_number;
- while (_Py_atomic_load_relaxed(&gil->locked)) {
- unsigned long saved_switchnum = gil->switch_number;
+ unsigned long interval = (gil->interval >= 1 ? gil->interval : 1);
+ int timed_out = 0;
+ COND_TIMED_WAIT(gil->cond, gil->mutex, interval, timed_out);
- unsigned long interval = (gil->interval >= 1 ? gil->interval : 1);
- int timed_out = 0;
- COND_TIMED_WAIT(gil->cond, gil->mutex, interval, timed_out);
-
/* If we timed out and no switch occurred in the meantime, it is time
to ask the GIL-holding thread to drop it. */
if (timed_out &&
- _Py_atomic_load_relaxed(&gil->locked) &&
- gil->switch_number == saved_switchnum)
- {
- if (tstate_must_exit(tstate)) {
- MUTEX_UNLOCK(gil->mutex);
- PyThread_exit_thread();
- }
- assert(is_tstate_valid(tstate));
-
- SET_GIL_DROP_REQUEST(interp);
+ _Py_atomic_load_relaxed(&gil->locked) &&
+ gil->switch_number == saved_switchnum)
+ {
+ if (tstate_must_exit(tstate)) {
+ MUTEX_UNLOCK(gil->mutex);
+ PyThread_exit_thread();
+ }
+ assert(is_tstate_valid(tstate));
+
+ SET_GIL_DROP_REQUEST(interp);
}
}
-
+
_ready:
#ifdef FORCE_SWITCHING
- /* This mutex must be taken before modifying gil->last_holder:
- see drop_gil(). */
- MUTEX_LOCK(gil->switch_mutex);
+ /* This mutex must be taken before modifying gil->last_holder:
+ see drop_gil(). */
+ MUTEX_LOCK(gil->switch_mutex);
#endif
/* We now hold the GIL */
- _Py_atomic_store_relaxed(&gil->locked, 1);
- _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil->locked, /*is_write=*/1);
+ _Py_atomic_store_relaxed(&gil->locked, 1);
+ _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil->locked, /*is_write=*/1);
- if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) {
- _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate);
- ++gil->switch_number;
+ if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) {
+ _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate);
+ ++gil->switch_number;
}
#ifdef FORCE_SWITCHING
- COND_SIGNAL(gil->switch_cond);
- MUTEX_UNLOCK(gil->switch_mutex);
+ COND_SIGNAL(gil->switch_cond);
+ MUTEX_UNLOCK(gil->switch_mutex);
#endif
-
- if (tstate_must_exit(tstate)) {
- /* bpo-36475: If Py_Finalize() has been called and tstate is not
- the thread which called Py_Finalize(), exit immediately the
- thread.
-
- This code path can be reached by a daemon thread which was waiting
- in take_gil() while the main thread called
- wait_for_thread_shutdown() from Py_Finalize(). */
- MUTEX_UNLOCK(gil->mutex);
- drop_gil(ceval, ceval2, tstate);
- PyThread_exit_thread();
+
+ if (tstate_must_exit(tstate)) {
+ /* bpo-36475: If Py_Finalize() has been called and tstate is not
+ the thread which called Py_Finalize(), exit immediately the
+ thread.
+
+ This code path can be reached by a daemon thread which was waiting
+ in take_gil() while the main thread called
+ wait_for_thread_shutdown() from Py_Finalize(). */
+ MUTEX_UNLOCK(gil->mutex);
+ drop_gil(ceval, ceval2, tstate);
+ PyThread_exit_thread();
+ }
+ assert(is_tstate_valid(tstate));
+
+ if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) {
+ RESET_GIL_DROP_REQUEST(interp);
}
- assert(is_tstate_valid(tstate));
-
- if (_Py_atomic_load_relaxed(&ceval2->gil_drop_request)) {
- RESET_GIL_DROP_REQUEST(interp);
- }
- else {
- /* bpo-40010: eval_breaker should be recomputed to be set to 1 if there
- is a pending signal: signal received by another thread which cannot
- handle signals.
-
- Note: RESET_GIL_DROP_REQUEST() calls COMPUTE_EVAL_BREAKER(). */
- COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
- }
-
- /* Don't access tstate if the thread must exit */
+ else {
+ /* bpo-40010: eval_breaker should be recomputed to be set to 1 if there
+ is a pending signal: signal received by another thread which cannot
+ handle signals.
+
+ Note: RESET_GIL_DROP_REQUEST() calls COMPUTE_EVAL_BREAKER(). */
+ COMPUTE_EVAL_BREAKER(interp, ceval, ceval2);
+ }
+
+ /* Don't access tstate if the thread must exit */
if (tstate->async_exc != NULL) {
- _PyEval_SignalAsyncExc(tstate);
+ _PyEval_SignalAsyncExc(tstate);
}
- MUTEX_UNLOCK(gil->mutex);
-
+ MUTEX_UNLOCK(gil->mutex);
+
errno = err;
}
void _PyEval_SetSwitchInterval(unsigned long microseconds)
{
- struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil;
- gil->interval = microseconds;
+ struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil;
+ gil->interval = microseconds;
}
unsigned long _PyEval_GetSwitchInterval()
{
- struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil;
- return gil->interval;
+ struct _gil_runtime_state *gil = &_PyRuntime.ceval.gil;
+ return gil->interval;
}
diff --git a/contrib/tools/python3/src/Python/clinic/_warnings.c.h b/contrib/tools/python3/src/Python/clinic/_warnings.c.h
index 8c07aecfc1..67ab0e3d9d 100644
--- a/contrib/tools/python3/src/Python/clinic/_warnings.c.h
+++ b/contrib/tools/python3/src/Python/clinic/_warnings.c.h
@@ -9,7 +9,7 @@ PyDoc_STRVAR(warnings_warn__doc__,
"Issue a warning, or maybe ignore it or raise an exception.");
#define WARNINGS_WARN_METHODDEF \
- {"warn", (PyCFunction)(void(*)(void))warnings_warn, METH_FASTCALL|METH_KEYWORDS, warnings_warn__doc__},
+ {"warn", (PyCFunction)(void(*)(void))warnings_warn, METH_FASTCALL|METH_KEYWORDS, warnings_warn__doc__},
static PyObject *
warnings_warn_impl(PyObject *module, PyObject *message, PyObject *category,
@@ -20,55 +20,55 @@ warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"message", "category", "stacklevel", "source", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "warn", 0};
- PyObject *argsbuf[4];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "warn", 0};
+ PyObject *argsbuf[4];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *message;
PyObject *category = Py_None;
Py_ssize_t stacklevel = 1;
PyObject *source = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 4, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 4, 0, argsbuf);
+ if (!args) {
goto exit;
}
- message = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[1]) {
- category = args[1];
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[2]) {
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- {
- Py_ssize_t ival = -1;
- PyObject *iobj = PyNumber_Index(args[2]);
- if (iobj != NULL) {
- ival = PyLong_AsSsize_t(iobj);
- Py_DECREF(iobj);
- }
- if (ival == -1 && PyErr_Occurred()) {
- goto exit;
- }
- stacklevel = ival;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- source = args[3];
-skip_optional_pos:
+ message = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[1]) {
+ category = args[1];
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[2]) {
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ {
+ Py_ssize_t ival = -1;
+ PyObject *iobj = PyNumber_Index(args[2]);
+ if (iobj != NULL) {
+ ival = PyLong_AsSsize_t(iobj);
+ Py_DECREF(iobj);
+ }
+ if (ival == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ stacklevel = ival;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ source = args[3];
+skip_optional_pos:
return_value = warnings_warn_impl(module, message, category, stacklevel, source);
exit:
return return_value;
}
-/*[clinic end generated code: output=b7bb54c73b5433ec input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b7bb54c73b5433ec input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Python/clinic/bltinmodule.c.h b/contrib/tools/python3/src/Python/clinic/bltinmodule.c.h
index 830e7560f2..d15af1f7f3 100644
--- a/contrib/tools/python3/src/Python/clinic/bltinmodule.c.h
+++ b/contrib/tools/python3/src/Python/clinic/bltinmodule.c.h
@@ -82,7 +82,7 @@ PyDoc_STRVAR(builtin_format__doc__,
"details.");
#define BUILTIN_FORMAT_METHODDEF \
- {"format", (PyCFunction)(void(*)(void))builtin_format, METH_FASTCALL, builtin_format__doc__},
+ {"format", (PyCFunction)(void(*)(void))builtin_format, METH_FASTCALL, builtin_format__doc__},
static PyObject *
builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec);
@@ -94,22 +94,22 @@ builtin_format(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *value;
PyObject *format_spec = NULL;
- if (!_PyArg_CheckPositional("format", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("format", nargs, 1, 2)) {
goto exit;
}
- value = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("format", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- format_spec = args[1];
-skip_optional:
+ value = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("format", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ format_spec = args[1];
+skip_optional:
return_value = builtin_format_impl(module, value, format_spec);
exit:
@@ -134,15 +134,15 @@ builtin_chr(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
int i;
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ i = _PyLong_AsInt(arg);
+ if (i == -1 && PyErr_Occurred()) {
goto exit;
}
- i = _PyLong_AsInt(arg);
- if (i == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = builtin_chr_impl(module, i);
exit:
@@ -151,7 +151,7 @@ exit:
PyDoc_STRVAR(builtin_compile__doc__,
"compile($module, /, source, filename, mode, flags=0,\n"
-" dont_inherit=False, optimize=-1, *, _feature_version=-1)\n"
+" dont_inherit=False, optimize=-1, *, _feature_version=-1)\n"
"--\n"
"\n"
"Compile source into a code object that can be executed by exec() or eval().\n"
@@ -168,110 +168,110 @@ PyDoc_STRVAR(builtin_compile__doc__,
"in addition to any features explicitly specified.");
#define BUILTIN_COMPILE_METHODDEF \
- {"compile", (PyCFunction)(void(*)(void))builtin_compile, METH_FASTCALL|METH_KEYWORDS, builtin_compile__doc__},
+ {"compile", (PyCFunction)(void(*)(void))builtin_compile, METH_FASTCALL|METH_KEYWORDS, builtin_compile__doc__},
static PyObject *
builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
const char *mode, int flags, int dont_inherit,
- int optimize, int feature_version);
+ int optimize, int feature_version);
static PyObject *
builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "_feature_version", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0};
- PyObject *argsbuf[7];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
+ static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "_feature_version", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0};
+ PyObject *argsbuf[7];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
PyObject *source;
PyObject *filename;
const char *mode;
int flags = 0;
int dont_inherit = 0;
int optimize = -1;
- int feature_version = -1;
+ int feature_version = -1;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 6, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 6, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ source = args[0];
+ if (!PyUnicode_FSDecoder(args[1], &filename)) {
+ goto exit;
+ }
+ if (!PyUnicode_Check(args[2])) {
+ _PyArg_BadArgument("compile", "argument 'mode'", "str", args[2]);
+ goto exit;
+ }
+ Py_ssize_t mode_length;
+ mode = PyUnicode_AsUTF8AndSize(args[2], &mode_length);
+ if (mode == NULL) {
+ goto exit;
+ }
+ if (strlen(mode) != (size_t)mode_length) {
+ PyErr_SetString(PyExc_ValueError, "embedded null character");
+ goto exit;
+ }
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ if (args[3]) {
+ if (PyFloat_Check(args[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flags = _PyLong_AsInt(args[3]);
+ if (flags == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[4]) {
+ if (PyFloat_Check(args[4])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ dont_inherit = _PyLong_AsInt(args[4]);
+ if (dont_inherit == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+ if (args[5]) {
+ if (PyFloat_Check(args[5])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ optimize = _PyLong_AsInt(args[5]);
+ if (optimize == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (!--noptargs) {
+ goto skip_optional_pos;
+ }
+ }
+skip_optional_pos:
+ if (!noptargs) {
+ goto skip_optional_kwonly;
+ }
+ if (PyFloat_Check(args[6])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ feature_version = _PyLong_AsInt(args[6]);
+ if (feature_version == -1 && PyErr_Occurred()) {
goto exit;
}
- source = args[0];
- if (!PyUnicode_FSDecoder(args[1], &filename)) {
- goto exit;
- }
- if (!PyUnicode_Check(args[2])) {
- _PyArg_BadArgument("compile", "argument 'mode'", "str", args[2]);
- goto exit;
- }
- Py_ssize_t mode_length;
- mode = PyUnicode_AsUTF8AndSize(args[2], &mode_length);
- if (mode == NULL) {
- goto exit;
- }
- if (strlen(mode) != (size_t)mode_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (!noptargs) {
- goto skip_optional_pos;
- }
- if (args[3]) {
- if (PyFloat_Check(args[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flags = _PyLong_AsInt(args[3]);
- if (flags == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[4]) {
- if (PyFloat_Check(args[4])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- dont_inherit = _PyLong_AsInt(args[4]);
- if (dont_inherit == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
- if (args[5]) {
- if (PyFloat_Check(args[5])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- optimize = _PyLong_AsInt(args[5]);
- if (optimize == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (!--noptargs) {
- goto skip_optional_pos;
- }
- }
-skip_optional_pos:
- if (!noptargs) {
- goto skip_optional_kwonly;
- }
- if (PyFloat_Check(args[6])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- feature_version = _PyLong_AsInt(args[6]);
- if (feature_version == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional_kwonly:
- return_value = builtin_compile_impl(module, source, filename, mode, flags, dont_inherit, optimize, feature_version);
+skip_optional_kwonly:
+ return_value = builtin_compile_impl(module, source, filename, mode, flags, dont_inherit, optimize, feature_version);
exit:
return return_value;
@@ -284,7 +284,7 @@ PyDoc_STRVAR(builtin_divmod__doc__,
"Return the tuple (x//y, x%y). Invariant: div*y + mod == x.");
#define BUILTIN_DIVMOD_METHODDEF \
- {"divmod", (PyCFunction)(void(*)(void))builtin_divmod, METH_FASTCALL, builtin_divmod__doc__},
+ {"divmod", (PyCFunction)(void(*)(void))builtin_divmod, METH_FASTCALL, builtin_divmod__doc__},
static PyObject *
builtin_divmod_impl(PyObject *module, PyObject *x, PyObject *y);
@@ -296,11 +296,11 @@ builtin_divmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *x;
PyObject *y;
- if (!_PyArg_CheckPositional("divmod", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("divmod", nargs, 2, 2)) {
goto exit;
}
- x = args[0];
- y = args[1];
+ x = args[0];
+ y = args[1];
return_value = builtin_divmod_impl(module, x, y);
exit:
@@ -320,7 +320,7 @@ PyDoc_STRVAR(builtin_eval__doc__,
"If only globals is given, locals defaults to it.");
#define BUILTIN_EVAL_METHODDEF \
- {"eval", (PyCFunction)(void(*)(void))builtin_eval, METH_FASTCALL, builtin_eval__doc__},
+ {"eval", (PyCFunction)(void(*)(void))builtin_eval, METH_FASTCALL, builtin_eval__doc__},
static PyObject *
builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals,
@@ -334,19 +334,19 @@ builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *globals = Py_None;
PyObject *locals = Py_None;
- if (!_PyArg_CheckPositional("eval", nargs, 1, 3)) {
+ if (!_PyArg_CheckPositional("eval", nargs, 1, 3)) {
goto exit;
}
- source = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- globals = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- locals = args[2];
-skip_optional:
+ source = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ globals = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ locals = args[2];
+skip_optional:
return_value = builtin_eval_impl(module, source, globals, locals);
exit:
@@ -366,7 +366,7 @@ PyDoc_STRVAR(builtin_exec__doc__,
"If only globals is given, locals defaults to it.");
#define BUILTIN_EXEC_METHODDEF \
- {"exec", (PyCFunction)(void(*)(void))builtin_exec, METH_FASTCALL, builtin_exec__doc__},
+ {"exec", (PyCFunction)(void(*)(void))builtin_exec, METH_FASTCALL, builtin_exec__doc__},
static PyObject *
builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
@@ -380,19 +380,19 @@ builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *globals = Py_None;
PyObject *locals = Py_None;
- if (!_PyArg_CheckPositional("exec", nargs, 1, 3)) {
+ if (!_PyArg_CheckPositional("exec", nargs, 1, 3)) {
goto exit;
}
- source = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- globals = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- locals = args[2];
-skip_optional:
+ source = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ globals = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ locals = args[2];
+skip_optional:
return_value = builtin_exec_impl(module, source, globals, locals);
exit:
@@ -429,7 +429,7 @@ PyDoc_STRVAR(builtin_hasattr__doc__,
"This is done by calling getattr(obj, name) and catching AttributeError.");
#define BUILTIN_HASATTR_METHODDEF \
- {"hasattr", (PyCFunction)(void(*)(void))builtin_hasattr, METH_FASTCALL, builtin_hasattr__doc__},
+ {"hasattr", (PyCFunction)(void(*)(void))builtin_hasattr, METH_FASTCALL, builtin_hasattr__doc__},
static PyObject *
builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name);
@@ -441,11 +441,11 @@ builtin_hasattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *obj;
PyObject *name;
- if (!_PyArg_CheckPositional("hasattr", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("hasattr", nargs, 2, 2)) {
goto exit;
}
- obj = args[0];
- name = args[1];
+ obj = args[0];
+ name = args[1];
return_value = builtin_hasattr_impl(module, obj, name);
exit:
@@ -473,7 +473,7 @@ PyDoc_STRVAR(builtin_setattr__doc__,
"setattr(x, \'y\', v) is equivalent to ``x.y = v\'\'");
#define BUILTIN_SETATTR_METHODDEF \
- {"setattr", (PyCFunction)(void(*)(void))builtin_setattr, METH_FASTCALL, builtin_setattr__doc__},
+ {"setattr", (PyCFunction)(void(*)(void))builtin_setattr, METH_FASTCALL, builtin_setattr__doc__},
static PyObject *
builtin_setattr_impl(PyObject *module, PyObject *obj, PyObject *name,
@@ -487,12 +487,12 @@ builtin_setattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *name;
PyObject *value;
- if (!_PyArg_CheckPositional("setattr", nargs, 3, 3)) {
+ if (!_PyArg_CheckPositional("setattr", nargs, 3, 3)) {
goto exit;
}
- obj = args[0];
- name = args[1];
- value = args[2];
+ obj = args[0];
+ name = args[1];
+ value = args[2];
return_value = builtin_setattr_impl(module, obj, name, value);
exit:
@@ -508,7 +508,7 @@ PyDoc_STRVAR(builtin_delattr__doc__,
"delattr(x, \'y\') is equivalent to ``del x.y\'\'");
#define BUILTIN_DELATTR_METHODDEF \
- {"delattr", (PyCFunction)(void(*)(void))builtin_delattr, METH_FASTCALL, builtin_delattr__doc__},
+ {"delattr", (PyCFunction)(void(*)(void))builtin_delattr, METH_FASTCALL, builtin_delattr__doc__},
static PyObject *
builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name);
@@ -520,11 +520,11 @@ builtin_delattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *obj;
PyObject *name;
- if (!_PyArg_CheckPositional("delattr", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("delattr", nargs, 2, 2)) {
goto exit;
}
- obj = args[0];
- name = args[1];
+ obj = args[0];
+ name = args[1];
return_value = builtin_delattr_impl(module, obj, name);
exit:
@@ -608,45 +608,45 @@ PyDoc_STRVAR(builtin_ord__doc__,
{"ord", (PyCFunction)builtin_ord, METH_O, builtin_ord__doc__},
PyDoc_STRVAR(builtin_pow__doc__,
-"pow($module, /, base, exp, mod=None)\n"
+"pow($module, /, base, exp, mod=None)\n"
"--\n"
"\n"
-"Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments\n"
+"Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments\n"
"\n"
"Some types, such as ints, are able to use a more efficient algorithm when\n"
"invoked using the three argument form.");
#define BUILTIN_POW_METHODDEF \
- {"pow", (PyCFunction)(void(*)(void))builtin_pow, METH_FASTCALL|METH_KEYWORDS, builtin_pow__doc__},
+ {"pow", (PyCFunction)(void(*)(void))builtin_pow, METH_FASTCALL|METH_KEYWORDS, builtin_pow__doc__},
static PyObject *
-builtin_pow_impl(PyObject *module, PyObject *base, PyObject *exp,
- PyObject *mod);
+builtin_pow_impl(PyObject *module, PyObject *base, PyObject *exp,
+ PyObject *mod);
static PyObject *
-builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"base", "exp", "mod", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "pow", 0};
- PyObject *argsbuf[3];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
- PyObject *base;
- PyObject *exp;
- PyObject *mod = Py_None;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
- if (!args) {
+ static const char * const _keywords[] = {"base", "exp", "mod", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "pow", 0};
+ PyObject *argsbuf[3];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
+ PyObject *base;
+ PyObject *exp;
+ PyObject *mod = Py_None;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
+ if (!args) {
goto exit;
}
- base = args[0];
- exp = args[1];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- mod = args[2];
-skip_optional_pos:
- return_value = builtin_pow_impl(module, base, exp, mod);
+ base = args[0];
+ exp = args[1];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ mod = args[2];
+skip_optional_pos:
+ return_value = builtin_pow_impl(module, base, exp, mod);
exit:
return return_value;
@@ -665,7 +665,7 @@ PyDoc_STRVAR(builtin_input__doc__,
"On *nix systems, readline is used if available.");
#define BUILTIN_INPUT_METHODDEF \
- {"input", (PyCFunction)(void(*)(void))builtin_input, METH_FASTCALL, builtin_input__doc__},
+ {"input", (PyCFunction)(void(*)(void))builtin_input, METH_FASTCALL, builtin_input__doc__},
static PyObject *
builtin_input_impl(PyObject *module, PyObject *prompt);
@@ -676,14 +676,14 @@ builtin_input(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
PyObject *prompt = NULL;
- if (!_PyArg_CheckPositional("input", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("input", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- prompt = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ prompt = args[0];
+skip_optional:
return_value = builtin_input_impl(module, prompt);
exit:
@@ -711,7 +711,7 @@ PyDoc_STRVAR(builtin_round__doc__,
"the return value has the same type as the number. ndigits may be negative.");
#define BUILTIN_ROUND_METHODDEF \
- {"round", (PyCFunction)(void(*)(void))builtin_round, METH_FASTCALL|METH_KEYWORDS, builtin_round__doc__},
+ {"round", (PyCFunction)(void(*)(void))builtin_round, METH_FASTCALL|METH_KEYWORDS, builtin_round__doc__},
static PyObject *
builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits);
@@ -721,22 +721,22 @@ builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"number", "ndigits", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "round", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static _PyArg_Parser _parser = {NULL, _keywords, "round", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *number;
- PyObject *ndigits = Py_None;
+ PyObject *ndigits = Py_None;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- number = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- ndigits = args[1];
-skip_optional_pos:
+ number = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ ndigits = args[1];
+skip_optional_pos:
return_value = builtin_round_impl(module, number, ndigits);
exit:
@@ -744,7 +744,7 @@ exit:
}
PyDoc_STRVAR(builtin_sum__doc__,
-"sum($module, iterable, /, start=0)\n"
+"sum($module, iterable, /, start=0)\n"
"--\n"
"\n"
"Return the sum of a \'start\' value (default: 0) plus an iterable of numbers\n"
@@ -754,32 +754,32 @@ PyDoc_STRVAR(builtin_sum__doc__,
"reject non-numeric types.");
#define BUILTIN_SUM_METHODDEF \
- {"sum", (PyCFunction)(void(*)(void))builtin_sum, METH_FASTCALL|METH_KEYWORDS, builtin_sum__doc__},
+ {"sum", (PyCFunction)(void(*)(void))builtin_sum, METH_FASTCALL|METH_KEYWORDS, builtin_sum__doc__},
static PyObject *
builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start);
static PyObject *
-builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
- static const char * const _keywords[] = {"", "start", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "sum", 0};
- PyObject *argsbuf[2];
- Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
+ static const char * const _keywords[] = {"", "start", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "sum", 0};
+ PyObject *argsbuf[2];
+ Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
PyObject *iterable;
PyObject *start = NULL;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
+ if (!args) {
goto exit;
}
- iterable = args[0];
- if (!noptargs) {
- goto skip_optional_pos;
- }
- start = args[1];
-skip_optional_pos:
+ iterable = args[0];
+ if (!noptargs) {
+ goto skip_optional_pos;
+ }
+ start = args[1];
+skip_optional_pos:
return_value = builtin_sum_impl(module, iterable, start);
exit:
@@ -797,7 +797,7 @@ PyDoc_STRVAR(builtin_isinstance__doc__,
"or ...`` etc.");
#define BUILTIN_ISINSTANCE_METHODDEF \
- {"isinstance", (PyCFunction)(void(*)(void))builtin_isinstance, METH_FASTCALL, builtin_isinstance__doc__},
+ {"isinstance", (PyCFunction)(void(*)(void))builtin_isinstance, METH_FASTCALL, builtin_isinstance__doc__},
static PyObject *
builtin_isinstance_impl(PyObject *module, PyObject *obj,
@@ -810,11 +810,11 @@ builtin_isinstance(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *obj;
PyObject *class_or_tuple;
- if (!_PyArg_CheckPositional("isinstance", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("isinstance", nargs, 2, 2)) {
goto exit;
}
- obj = args[0];
- class_or_tuple = args[1];
+ obj = args[0];
+ class_or_tuple = args[1];
return_value = builtin_isinstance_impl(module, obj, class_or_tuple);
exit:
@@ -832,7 +832,7 @@ PyDoc_STRVAR(builtin_issubclass__doc__,
"or ...`` etc.");
#define BUILTIN_ISSUBCLASS_METHODDEF \
- {"issubclass", (PyCFunction)(void(*)(void))builtin_issubclass, METH_FASTCALL, builtin_issubclass__doc__},
+ {"issubclass", (PyCFunction)(void(*)(void))builtin_issubclass, METH_FASTCALL, builtin_issubclass__doc__},
static PyObject *
builtin_issubclass_impl(PyObject *module, PyObject *cls,
@@ -845,14 +845,14 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *cls;
PyObject *class_or_tuple;
- if (!_PyArg_CheckPositional("issubclass", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("issubclass", nargs, 2, 2)) {
goto exit;
}
- cls = args[0];
- class_or_tuple = args[1];
+ cls = args[0];
+ class_or_tuple = args[1];
return_value = builtin_issubclass_impl(module, cls, class_or_tuple);
exit:
return return_value;
}
-/*[clinic end generated code: output=29686a89b739d600 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=29686a89b739d600 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Python/clinic/context.c.h b/contrib/tools/python3/src/Python/clinic/context.c.h
index 4290652e15..2ac8bf7c0b 100644
--- a/contrib/tools/python3/src/Python/clinic/context.c.h
+++ b/contrib/tools/python3/src/Python/clinic/context.c.h
@@ -5,14 +5,14 @@ preserve
PyDoc_STRVAR(_contextvars_Context_get__doc__,
"get($self, key, default=None, /)\n"
"--\n"
-"\n"
-"Return the value for `key` if `key` has the value in the context object.\n"
-"\n"
-"If `key` does not exist, return `default`. If `default` is not given,\n"
-"return None.");
+"\n"
+"Return the value for `key` if `key` has the value in the context object.\n"
+"\n"
+"If `key` does not exist, return `default`. If `default` is not given,\n"
+"return None.");
#define _CONTEXTVARS_CONTEXT_GET_METHODDEF \
- {"get", (PyCFunction)(void(*)(void))_contextvars_Context_get, METH_FASTCALL, _contextvars_Context_get__doc__},
+ {"get", (PyCFunction)(void(*)(void))_contextvars_Context_get, METH_FASTCALL, _contextvars_Context_get__doc__},
static PyObject *
_contextvars_Context_get_impl(PyContext *self, PyObject *key,
@@ -25,15 +25,15 @@ _contextvars_Context_get(PyContext *self, PyObject *const *args, Py_ssize_t narg
PyObject *key;
PyObject *default_value = Py_None;
- if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
goto exit;
}
- key = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- default_value = args[1];
-skip_optional:
+ key = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ default_value = args[1];
+skip_optional:
return_value = _contextvars_Context_get_impl(self, key, default_value);
exit:
@@ -43,10 +43,10 @@ exit:
PyDoc_STRVAR(_contextvars_Context_items__doc__,
"items($self, /)\n"
"--\n"
-"\n"
-"Return all variables and their values in the context object.\n"
-"\n"
-"The result is returned as a list of 2-tuples (variable, value).");
+"\n"
+"Return all variables and their values in the context object.\n"
+"\n"
+"The result is returned as a list of 2-tuples (variable, value).");
#define _CONTEXTVARS_CONTEXT_ITEMS_METHODDEF \
{"items", (PyCFunction)_contextvars_Context_items, METH_NOARGS, _contextvars_Context_items__doc__},
@@ -63,8 +63,8 @@ _contextvars_Context_items(PyContext *self, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(_contextvars_Context_keys__doc__,
"keys($self, /)\n"
"--\n"
-"\n"
-"Return a list of all variables in the context object.");
+"\n"
+"Return a list of all variables in the context object.");
#define _CONTEXTVARS_CONTEXT_KEYS_METHODDEF \
{"keys", (PyCFunction)_contextvars_Context_keys, METH_NOARGS, _contextvars_Context_keys__doc__},
@@ -81,8 +81,8 @@ _contextvars_Context_keys(PyContext *self, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(_contextvars_Context_values__doc__,
"values($self, /)\n"
"--\n"
-"\n"
-"Return a list of all variables\' values in the context object.");
+"\n"
+"Return a list of all variables\' values in the context object.");
#define _CONTEXTVARS_CONTEXT_VALUES_METHODDEF \
{"values", (PyCFunction)_contextvars_Context_values, METH_NOARGS, _contextvars_Context_values__doc__},
@@ -99,8 +99,8 @@ _contextvars_Context_values(PyContext *self, PyObject *Py_UNUSED(ignored))
PyDoc_STRVAR(_contextvars_Context_copy__doc__,
"copy($self, /)\n"
"--\n"
-"\n"
-"Return a shallow copy of the context object.");
+"\n"
+"Return a shallow copy of the context object.");
#define _CONTEXTVARS_CONTEXT_COPY_METHODDEF \
{"copy", (PyCFunction)_contextvars_Context_copy, METH_NOARGS, _contextvars_Context_copy__doc__},
@@ -115,19 +115,19 @@ _contextvars_Context_copy(PyContext *self, PyObject *Py_UNUSED(ignored))
}
PyDoc_STRVAR(_contextvars_ContextVar_get__doc__,
-"get($self, default=<unrepresentable>, /)\n"
+"get($self, default=<unrepresentable>, /)\n"
"--\n"
-"\n"
-"Return a value for the context variable for the current context.\n"
-"\n"
-"If there is no value for the variable in the current context, the method will:\n"
-" * return the value of the default argument of the method, if provided; or\n"
-" * return the default value for the context variable, if it was created\n"
-" with one; or\n"
-" * raise a LookupError.");
+"\n"
+"Return a value for the context variable for the current context.\n"
+"\n"
+"If there is no value for the variable in the current context, the method will:\n"
+" * return the value of the default argument of the method, if provided; or\n"
+" * return the default value for the context variable, if it was created\n"
+" with one; or\n"
+" * raise a LookupError.");
#define _CONTEXTVARS_CONTEXTVAR_GET_METHODDEF \
- {"get", (PyCFunction)(void(*)(void))_contextvars_ContextVar_get, METH_FASTCALL, _contextvars_ContextVar_get__doc__},
+ {"get", (PyCFunction)(void(*)(void))_contextvars_ContextVar_get, METH_FASTCALL, _contextvars_ContextVar_get__doc__},
static PyObject *
_contextvars_ContextVar_get_impl(PyContextVar *self, PyObject *default_value);
@@ -138,14 +138,14 @@ _contextvars_ContextVar_get(PyContextVar *self, PyObject *const *args, Py_ssize_
PyObject *return_value = NULL;
PyObject *default_value = NULL;
- if (!_PyArg_CheckPositional("get", nargs, 0, 1)) {
+ if (!_PyArg_CheckPositional("get", nargs, 0, 1)) {
goto exit;
}
- if (nargs < 1) {
- goto skip_optional;
- }
- default_value = args[0];
-skip_optional:
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ default_value = args[0];
+skip_optional:
return_value = _contextvars_ContextVar_get_impl(self, default_value);
exit:
@@ -155,13 +155,13 @@ exit:
PyDoc_STRVAR(_contextvars_ContextVar_set__doc__,
"set($self, value, /)\n"
"--\n"
-"\n"
-"Call to set a new value for the context variable in the current context.\n"
-"\n"
-"The required value argument is the new value for the context variable.\n"
-"\n"
-"Returns a Token object that can be used to restore the variable to its previous\n"
-"value via the `ContextVar.reset()` method.");
+"\n"
+"Call to set a new value for the context variable in the current context.\n"
+"\n"
+"The required value argument is the new value for the context variable.\n"
+"\n"
+"Returns a Token object that can be used to restore the variable to its previous\n"
+"value via the `ContextVar.reset()` method.");
#define _CONTEXTVARS_CONTEXTVAR_SET_METHODDEF \
{"set", (PyCFunction)_contextvars_ContextVar_set, METH_O, _contextvars_ContextVar_set__doc__},
@@ -169,12 +169,12 @@ PyDoc_STRVAR(_contextvars_ContextVar_set__doc__,
PyDoc_STRVAR(_contextvars_ContextVar_reset__doc__,
"reset($self, token, /)\n"
"--\n"
-"\n"
-"Reset the context variable.\n"
-"\n"
-"The variable is reset to the value it had before the `ContextVar.set()` that\n"
-"created the token was used.");
+"\n"
+"Reset the context variable.\n"
+"\n"
+"The variable is reset to the value it had before the `ContextVar.set()` that\n"
+"created the token was used.");
#define _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF \
{"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O, _contextvars_ContextVar_reset__doc__},
-/*[clinic end generated code: output=f2e42f34e358e179 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f2e42f34e358e179 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Python/clinic/import.c.h b/contrib/tools/python3/src/Python/clinic/import.c.h
index 50f3d415ab..e4867f34d4 100644
--- a/contrib/tools/python3/src/Python/clinic/import.c.h
+++ b/contrib/tools/python3/src/Python/clinic/import.c.h
@@ -75,7 +75,7 @@ PyDoc_STRVAR(_imp__fix_co_filename__doc__,
" File path to use.");
#define _IMP__FIX_CO_FILENAME_METHODDEF \
- {"_fix_co_filename", (PyCFunction)(void(*)(void))_imp__fix_co_filename, METH_FASTCALL, _imp__fix_co_filename__doc__},
+ {"_fix_co_filename", (PyCFunction)(void(*)(void))_imp__fix_co_filename, METH_FASTCALL, _imp__fix_co_filename__doc__},
static PyObject *
_imp__fix_co_filename_impl(PyObject *module, PyCodeObject *code,
@@ -88,22 +88,22 @@ _imp__fix_co_filename(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyCodeObject *code;
PyObject *path;
- if (!_PyArg_CheckPositional("_fix_co_filename", nargs, 2, 2)) {
+ if (!_PyArg_CheckPositional("_fix_co_filename", nargs, 2, 2)) {
goto exit;
}
- if (!PyObject_TypeCheck(args[0], &PyCode_Type)) {
- _PyArg_BadArgument("_fix_co_filename", "argument 1", (&PyCode_Type)->tp_name, args[0]);
- goto exit;
- }
- code = (PyCodeObject *)args[0];
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("_fix_co_filename", "argument 2", "str", args[1]);
- goto exit;
- }
- if (PyUnicode_READY(args[1]) == -1) {
- goto exit;
- }
- path = args[1];
+ if (!PyObject_TypeCheck(args[0], &PyCode_Type)) {
+ _PyArg_BadArgument("_fix_co_filename", "argument 1", (&PyCode_Type)->tp_name, args[0]);
+ goto exit;
+ }
+ code = (PyCodeObject *)args[0];
+ if (!PyUnicode_Check(args[1])) {
+ _PyArg_BadArgument("_fix_co_filename", "argument 2", "str", args[1]);
+ goto exit;
+ }
+ if (PyUnicode_READY(args[1]) == -1) {
+ goto exit;
+ }
+ path = args[1];
return_value = _imp__fix_co_filename_impl(module, code, path);
exit:
@@ -155,14 +155,14 @@ _imp_init_frozen(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("init_frozen", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("init_frozen", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ name = arg;
return_value = _imp_init_frozen_impl(module, name);
exit:
@@ -187,14 +187,14 @@ _imp_get_frozen_object(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("get_frozen_object", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("get_frozen_object", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
+ name = arg;
return_value = _imp_get_frozen_object_impl(module, name);
exit:
@@ -219,14 +219,14 @@ _imp_is_frozen_package(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("is_frozen_package", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("is_frozen_package", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ name = arg;
return_value = _imp_is_frozen_package_impl(module, name);
exit:
@@ -251,14 +251,14 @@ _imp_is_builtin(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("is_builtin", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("is_builtin", "argument", "str", arg);
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ name = arg;
return_value = _imp_is_builtin_impl(module, name);
exit:
@@ -283,14 +283,14 @@ _imp_is_frozen(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
PyObject *name;
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("is_frozen", "argument", "str", arg);
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("is_frozen", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
goto exit;
}
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
+ name = arg;
return_value = _imp_is_frozen_impl(module, name);
exit:
@@ -300,13 +300,13 @@ exit:
#if defined(HAVE_DYNAMIC_LOADING)
PyDoc_STRVAR(_imp_create_dynamic__doc__,
-"create_dynamic($module, spec, file=<unrepresentable>, /)\n"
+"create_dynamic($module, spec, file=<unrepresentable>, /)\n"
"--\n"
"\n"
"Create an extension module.");
#define _IMP_CREATE_DYNAMIC_METHODDEF \
- {"create_dynamic", (PyCFunction)(void(*)(void))_imp_create_dynamic, METH_FASTCALL, _imp_create_dynamic__doc__},
+ {"create_dynamic", (PyCFunction)(void(*)(void))_imp_create_dynamic, METH_FASTCALL, _imp_create_dynamic__doc__},
static PyObject *
_imp_create_dynamic_impl(PyObject *module, PyObject *spec, PyObject *file);
@@ -318,15 +318,15 @@ _imp_create_dynamic(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *spec;
PyObject *file = NULL;
- if (!_PyArg_CheckPositional("create_dynamic", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("create_dynamic", nargs, 1, 2)) {
goto exit;
}
- spec = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- file = args[1];
-skip_optional:
+ spec = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ file = args[1];
+skip_optional:
return_value = _imp_create_dynamic_impl(module, spec, file);
exit:
@@ -401,7 +401,7 @@ PyDoc_STRVAR(_imp_source_hash__doc__,
"\n");
#define _IMP_SOURCE_HASH_METHODDEF \
- {"source_hash", (PyCFunction)(void(*)(void))_imp_source_hash, METH_FASTCALL|METH_KEYWORDS, _imp_source_hash__doc__},
+ {"source_hash", (PyCFunction)(void(*)(void))_imp_source_hash, METH_FASTCALL|METH_KEYWORDS, _imp_source_hash__doc__},
static PyObject *
_imp_source_hash_impl(PyObject *module, long key, Py_buffer *source);
@@ -411,31 +411,31 @@ _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"key", "source", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "source_hash", 0};
- PyObject *argsbuf[2];
+ static _PyArg_Parser _parser = {NULL, _keywords, "source_hash", 0};
+ PyObject *argsbuf[2];
long key;
Py_buffer source = {NULL, NULL};
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ key = PyLong_AsLong(args[0]);
+ if (key == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyObject_GetBuffer(args[1], &source, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&source, 'C')) {
+ _PyArg_BadArgument("source_hash", "argument 'source'", "contiguous buffer", args[1]);
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- key = PyLong_AsLong(args[0]);
- if (key == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyObject_GetBuffer(args[1], &source, PyBUF_SIMPLE) != 0) {
- goto exit;
- }
- if (!PyBuffer_IsContiguous(&source, 'C')) {
- _PyArg_BadArgument("source_hash", "argument 'source'", "contiguous buffer", args[1]);
- goto exit;
- }
return_value = _imp_source_hash_impl(module, key, &source);
exit:
@@ -454,4 +454,4 @@ exit:
#ifndef _IMP_EXEC_DYNAMIC_METHODDEF
#define _IMP_EXEC_DYNAMIC_METHODDEF
#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
-/*[clinic end generated code: output=3dc495e9c64d944e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3dc495e9c64d944e input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Python/clinic/marshal.c.h b/contrib/tools/python3/src/Python/clinic/marshal.c.h
index 9064651287..05d4830c4a 100644
--- a/contrib/tools/python3/src/Python/clinic/marshal.c.h
+++ b/contrib/tools/python3/src/Python/clinic/marshal.c.h
@@ -20,7 +20,7 @@ PyDoc_STRVAR(marshal_dump__doc__,
"to the file. The object will not be properly read back by load().");
#define MARSHAL_DUMP_METHODDEF \
- {"dump", (PyCFunction)(void(*)(void))marshal_dump, METH_FASTCALL, marshal_dump__doc__},
+ {"dump", (PyCFunction)(void(*)(void))marshal_dump, METH_FASTCALL, marshal_dump__doc__},
static PyObject *
marshal_dump_impl(PyObject *module, PyObject *value, PyObject *file,
@@ -34,24 +34,24 @@ marshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *file;
int version = Py_MARSHAL_VERSION;
- if (!_PyArg_CheckPositional("dump", nargs, 2, 3)) {
+ if (!_PyArg_CheckPositional("dump", nargs, 2, 3)) {
goto exit;
}
- value = args[0];
- file = args[1];
- if (nargs < 3) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- version = _PyLong_AsInt(args[2]);
- if (version == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+ value = args[0];
+ file = args[1];
+ if (nargs < 3) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ version = _PyLong_AsInt(args[2]);
+ if (version == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
return_value = marshal_dump_impl(module, value, file, version);
exit:
@@ -92,7 +92,7 @@ PyDoc_STRVAR(marshal_dumps__doc__,
"unsupported type.");
#define MARSHAL_DUMPS_METHODDEF \
- {"dumps", (PyCFunction)(void(*)(void))marshal_dumps, METH_FASTCALL, marshal_dumps__doc__},
+ {"dumps", (PyCFunction)(void(*)(void))marshal_dumps, METH_FASTCALL, marshal_dumps__doc__},
static PyObject *
marshal_dumps_impl(PyObject *module, PyObject *value, int version);
@@ -104,23 +104,23 @@ marshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *value;
int version = Py_MARSHAL_VERSION;
- if (!_PyArg_CheckPositional("dumps", nargs, 1, 2)) {
+ if (!_PyArg_CheckPositional("dumps", nargs, 1, 2)) {
+ goto exit;
+ }
+ value = args[0];
+ if (nargs < 2) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[1])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ version = _PyLong_AsInt(args[1]);
+ if (version == -1 && PyErr_Occurred()) {
goto exit;
}
- value = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[1])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- version = _PyLong_AsInt(args[1]);
- if (version == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
+skip_optional:
return_value = marshal_dumps_impl(module, value, version);
exit:
@@ -148,13 +148,13 @@ marshal_loads(PyObject *module, PyObject *arg)
PyObject *return_value = NULL;
Py_buffer bytes = {NULL, NULL};
- if (PyObject_GetBuffer(arg, &bytes, PyBUF_SIMPLE) != 0) {
+ if (PyObject_GetBuffer(arg, &bytes, PyBUF_SIMPLE) != 0) {
+ goto exit;
+ }
+ if (!PyBuffer_IsContiguous(&bytes, 'C')) {
+ _PyArg_BadArgument("loads", "argument", "contiguous buffer", arg);
goto exit;
}
- if (!PyBuffer_IsContiguous(&bytes, 'C')) {
- _PyArg_BadArgument("loads", "argument", "contiguous buffer", arg);
- goto exit;
- }
return_value = marshal_loads_impl(module, &bytes);
exit:
@@ -165,4 +165,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=a859dabe8b0afeb6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a859dabe8b0afeb6 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Python/clinic/sysmodule.c.h b/contrib/tools/python3/src/Python/clinic/sysmodule.c.h
index 36943eae35..4615ebaab5 100644
--- a/contrib/tools/python3/src/Python/clinic/sysmodule.c.h
+++ b/contrib/tools/python3/src/Python/clinic/sysmodule.c.h
@@ -2,404 +2,404 @@
preserve
[clinic start generated code]*/
-PyDoc_STRVAR(sys_addaudithook__doc__,
-"addaudithook($module, /, hook)\n"
-"--\n"
-"\n"
-"Adds a new audit hook callback.");
-
-#define SYS_ADDAUDITHOOK_METHODDEF \
- {"addaudithook", (PyCFunction)(void(*)(void))sys_addaudithook, METH_FASTCALL|METH_KEYWORDS, sys_addaudithook__doc__},
-
-static PyObject *
-sys_addaudithook_impl(PyObject *module, PyObject *hook);
-
-static PyObject *
-sys_addaudithook(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
-{
- PyObject *return_value = NULL;
- static const char * const _keywords[] = {"hook", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "addaudithook", 0};
- PyObject *argsbuf[1];
- PyObject *hook;
-
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
- goto exit;
- }
- hook = args[0];
- return_value = sys_addaudithook_impl(module, hook);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys_displayhook__doc__,
-"displayhook($module, object, /)\n"
-"--\n"
-"\n"
-"Print an object to sys.stdout and also save it in builtins._");
-
-#define SYS_DISPLAYHOOK_METHODDEF \
- {"displayhook", (PyCFunction)sys_displayhook, METH_O, sys_displayhook__doc__},
-
-PyDoc_STRVAR(sys_excepthook__doc__,
-"excepthook($module, exctype, value, traceback, /)\n"
-"--\n"
-"\n"
-"Handle an exception by displaying it with a traceback on sys.stderr.");
-
-#define SYS_EXCEPTHOOK_METHODDEF \
- {"excepthook", (PyCFunction)(void(*)(void))sys_excepthook, METH_FASTCALL, sys_excepthook__doc__},
-
-static PyObject *
-sys_excepthook_impl(PyObject *module, PyObject *exctype, PyObject *value,
- PyObject *traceback);
-
-static PyObject *
-sys_excepthook(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *exctype;
- PyObject *value;
- PyObject *traceback;
-
- if (!_PyArg_CheckPositional("excepthook", nargs, 3, 3)) {
- goto exit;
- }
- exctype = args[0];
- value = args[1];
- traceback = args[2];
- return_value = sys_excepthook_impl(module, exctype, value, traceback);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys_exc_info__doc__,
-"exc_info($module, /)\n"
-"--\n"
-"\n"
-"Return current exception information: (type, value, traceback).\n"
-"\n"
-"Return information about the most recent exception caught by an except\n"
-"clause in the current stack frame or in an older stack frame.");
-
-#define SYS_EXC_INFO_METHODDEF \
- {"exc_info", (PyCFunction)sys_exc_info, METH_NOARGS, sys_exc_info__doc__},
-
-static PyObject *
-sys_exc_info_impl(PyObject *module);
-
-static PyObject *
-sys_exc_info(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_exc_info_impl(module);
-}
-
-PyDoc_STRVAR(sys_unraisablehook__doc__,
-"unraisablehook($module, unraisable, /)\n"
-"--\n"
-"\n"
-"Handle an unraisable exception.\n"
-"\n"
-"The unraisable argument has the following attributes:\n"
-"\n"
-"* exc_type: Exception type.\n"
-"* exc_value: Exception value, can be None.\n"
-"* exc_traceback: Exception traceback, can be None.\n"
-"* err_msg: Error message, can be None.\n"
-"* object: Object causing the exception, can be None.");
-
-#define SYS_UNRAISABLEHOOK_METHODDEF \
- {"unraisablehook", (PyCFunction)sys_unraisablehook, METH_O, sys_unraisablehook__doc__},
-
-PyDoc_STRVAR(sys_exit__doc__,
-"exit($module, status=None, /)\n"
-"--\n"
-"\n"
-"Exit the interpreter by raising SystemExit(status).\n"
-"\n"
-"If the status is omitted or None, it defaults to zero (i.e., success).\n"
-"If the status is an integer, it will be used as the system exit status.\n"
-"If it is another kind of object, it will be printed and the system\n"
-"exit status will be one (i.e., failure).");
-
-#define SYS_EXIT_METHODDEF \
- {"exit", (PyCFunction)(void(*)(void))sys_exit, METH_FASTCALL, sys_exit__doc__},
-
-static PyObject *
-sys_exit_impl(PyObject *module, PyObject *status);
-
-static PyObject *
-sys_exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *status = Py_None;
-
- if (!_PyArg_CheckPositional("exit", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- status = args[0];
-skip_optional:
- return_value = sys_exit_impl(module, status);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys_getdefaultencoding__doc__,
-"getdefaultencoding($module, /)\n"
-"--\n"
-"\n"
-"Return the current default encoding used by the Unicode implementation.");
-
-#define SYS_GETDEFAULTENCODING_METHODDEF \
- {"getdefaultencoding", (PyCFunction)sys_getdefaultencoding, METH_NOARGS, sys_getdefaultencoding__doc__},
-
-static PyObject *
-sys_getdefaultencoding_impl(PyObject *module);
-
-static PyObject *
-sys_getdefaultencoding(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getdefaultencoding_impl(module);
-}
-
-PyDoc_STRVAR(sys_getfilesystemencoding__doc__,
-"getfilesystemencoding($module, /)\n"
-"--\n"
-"\n"
-"Return the encoding used to convert Unicode filenames to OS filenames.");
-
-#define SYS_GETFILESYSTEMENCODING_METHODDEF \
- {"getfilesystemencoding", (PyCFunction)sys_getfilesystemencoding, METH_NOARGS, sys_getfilesystemencoding__doc__},
-
-static PyObject *
-sys_getfilesystemencoding_impl(PyObject *module);
-
-static PyObject *
-sys_getfilesystemencoding(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getfilesystemencoding_impl(module);
-}
-
-PyDoc_STRVAR(sys_getfilesystemencodeerrors__doc__,
-"getfilesystemencodeerrors($module, /)\n"
-"--\n"
-"\n"
-"Return the error mode used Unicode to OS filename conversion.");
-
-#define SYS_GETFILESYSTEMENCODEERRORS_METHODDEF \
- {"getfilesystemencodeerrors", (PyCFunction)sys_getfilesystemencodeerrors, METH_NOARGS, sys_getfilesystemencodeerrors__doc__},
-
-static PyObject *
-sys_getfilesystemencodeerrors_impl(PyObject *module);
-
-static PyObject *
-sys_getfilesystemencodeerrors(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getfilesystemencodeerrors_impl(module);
-}
-
-PyDoc_STRVAR(sys_intern__doc__,
-"intern($module, string, /)\n"
-"--\n"
-"\n"
-"``Intern\'\' the given string.\n"
-"\n"
-"This enters the string in the (global) table of interned strings whose\n"
-"purpose is to speed up dictionary lookups. Return the string itself or\n"
-"the previously interned string object with the same value.");
-
-#define SYS_INTERN_METHODDEF \
- {"intern", (PyCFunction)sys_intern, METH_O, sys_intern__doc__},
-
-static PyObject *
-sys_intern_impl(PyObject *module, PyObject *s);
-
-static PyObject *
-sys_intern(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyObject *s;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("intern", "argument", "str", arg);
- goto exit;
- }
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- s = arg;
- return_value = sys_intern_impl(module, s);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys_gettrace__doc__,
-"gettrace($module, /)\n"
-"--\n"
-"\n"
-"Return the global debug tracing function set with sys.settrace.\n"
-"\n"
-"See the debugger chapter in the library manual.");
-
-#define SYS_GETTRACE_METHODDEF \
- {"gettrace", (PyCFunction)sys_gettrace, METH_NOARGS, sys_gettrace__doc__},
-
-static PyObject *
-sys_gettrace_impl(PyObject *module);
-
-static PyObject *
-sys_gettrace(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_gettrace_impl(module);
-}
-
-PyDoc_STRVAR(sys_getprofile__doc__,
-"getprofile($module, /)\n"
-"--\n"
-"\n"
-"Return the profiling function set with sys.setprofile.\n"
-"\n"
-"See the profiler chapter in the library manual.");
-
-#define SYS_GETPROFILE_METHODDEF \
- {"getprofile", (PyCFunction)sys_getprofile, METH_NOARGS, sys_getprofile__doc__},
-
-static PyObject *
-sys_getprofile_impl(PyObject *module);
-
-static PyObject *
-sys_getprofile(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getprofile_impl(module);
-}
-
-PyDoc_STRVAR(sys_setswitchinterval__doc__,
-"setswitchinterval($module, interval, /)\n"
-"--\n"
-"\n"
-"Set the ideal thread switching delay inside the Python interpreter.\n"
-"\n"
-"The actual frequency of switching threads can be lower if the\n"
-"interpreter executes long sequences of uninterruptible code\n"
-"(this is implementation-specific and workload-dependent).\n"
-"\n"
-"The parameter must represent the desired switching delay in seconds\n"
-"A typical value is 0.005 (5 milliseconds).");
-
-#define SYS_SETSWITCHINTERVAL_METHODDEF \
- {"setswitchinterval", (PyCFunction)sys_setswitchinterval, METH_O, sys_setswitchinterval__doc__},
-
-static PyObject *
-sys_setswitchinterval_impl(PyObject *module, double interval);
-
-static PyObject *
-sys_setswitchinterval(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- double interval;
-
- if (PyFloat_CheckExact(arg)) {
- interval = PyFloat_AS_DOUBLE(arg);
- }
- else
- {
- interval = PyFloat_AsDouble(arg);
- if (interval == -1.0 && PyErr_Occurred()) {
- goto exit;
- }
- }
- return_value = sys_setswitchinterval_impl(module, interval);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys_getswitchinterval__doc__,
-"getswitchinterval($module, /)\n"
-"--\n"
-"\n"
-"Return the current thread switch interval; see sys.setswitchinterval().");
-
-#define SYS_GETSWITCHINTERVAL_METHODDEF \
- {"getswitchinterval", (PyCFunction)sys_getswitchinterval, METH_NOARGS, sys_getswitchinterval__doc__},
-
-static double
-sys_getswitchinterval_impl(PyObject *module);
-
-static PyObject *
-sys_getswitchinterval(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- PyObject *return_value = NULL;
- double _return_value;
-
- _return_value = sys_getswitchinterval_impl(module);
- if ((_return_value == -1.0) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyFloat_FromDouble(_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys_setrecursionlimit__doc__,
-"setrecursionlimit($module, limit, /)\n"
-"--\n"
-"\n"
-"Set the maximum depth of the Python interpreter stack to n.\n"
-"\n"
-"This limit prevents infinite recursion from causing an overflow of the C\n"
-"stack and crashing Python. The highest possible limit is platform-\n"
-"dependent.");
-
-#define SYS_SETRECURSIONLIMIT_METHODDEF \
- {"setrecursionlimit", (PyCFunction)sys_setrecursionlimit, METH_O, sys_setrecursionlimit__doc__},
-
-static PyObject *
-sys_setrecursionlimit_impl(PyObject *module, int new_limit);
-
-static PyObject *
-sys_setrecursionlimit(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int new_limit;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- new_limit = _PyLong_AsInt(arg);
- if (new_limit == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = sys_setrecursionlimit_impl(module, new_limit);
-
-exit:
- return return_value;
-}
-
+PyDoc_STRVAR(sys_addaudithook__doc__,
+"addaudithook($module, /, hook)\n"
+"--\n"
+"\n"
+"Adds a new audit hook callback.");
+
+#define SYS_ADDAUDITHOOK_METHODDEF \
+ {"addaudithook", (PyCFunction)(void(*)(void))sys_addaudithook, METH_FASTCALL|METH_KEYWORDS, sys_addaudithook__doc__},
+
+static PyObject *
+sys_addaudithook_impl(PyObject *module, PyObject *hook);
+
+static PyObject *
+sys_addaudithook(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"hook", NULL};
+ static _PyArg_Parser _parser = {NULL, _keywords, "addaudithook", 0};
+ PyObject *argsbuf[1];
+ PyObject *hook;
+
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ hook = args[0];
+ return_value = sys_addaudithook_impl(module, hook);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys_displayhook__doc__,
+"displayhook($module, object, /)\n"
+"--\n"
+"\n"
+"Print an object to sys.stdout and also save it in builtins._");
+
+#define SYS_DISPLAYHOOK_METHODDEF \
+ {"displayhook", (PyCFunction)sys_displayhook, METH_O, sys_displayhook__doc__},
+
+PyDoc_STRVAR(sys_excepthook__doc__,
+"excepthook($module, exctype, value, traceback, /)\n"
+"--\n"
+"\n"
+"Handle an exception by displaying it with a traceback on sys.stderr.");
+
+#define SYS_EXCEPTHOOK_METHODDEF \
+ {"excepthook", (PyCFunction)(void(*)(void))sys_excepthook, METH_FASTCALL, sys_excepthook__doc__},
+
+static PyObject *
+sys_excepthook_impl(PyObject *module, PyObject *exctype, PyObject *value,
+ PyObject *traceback);
+
+static PyObject *
+sys_excepthook(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *exctype;
+ PyObject *value;
+ PyObject *traceback;
+
+ if (!_PyArg_CheckPositional("excepthook", nargs, 3, 3)) {
+ goto exit;
+ }
+ exctype = args[0];
+ value = args[1];
+ traceback = args[2];
+ return_value = sys_excepthook_impl(module, exctype, value, traceback);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys_exc_info__doc__,
+"exc_info($module, /)\n"
+"--\n"
+"\n"
+"Return current exception information: (type, value, traceback).\n"
+"\n"
+"Return information about the most recent exception caught by an except\n"
+"clause in the current stack frame or in an older stack frame.");
+
+#define SYS_EXC_INFO_METHODDEF \
+ {"exc_info", (PyCFunction)sys_exc_info, METH_NOARGS, sys_exc_info__doc__},
+
+static PyObject *
+sys_exc_info_impl(PyObject *module);
+
+static PyObject *
+sys_exc_info(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_exc_info_impl(module);
+}
+
+PyDoc_STRVAR(sys_unraisablehook__doc__,
+"unraisablehook($module, unraisable, /)\n"
+"--\n"
+"\n"
+"Handle an unraisable exception.\n"
+"\n"
+"The unraisable argument has the following attributes:\n"
+"\n"
+"* exc_type: Exception type.\n"
+"* exc_value: Exception value, can be None.\n"
+"* exc_traceback: Exception traceback, can be None.\n"
+"* err_msg: Error message, can be None.\n"
+"* object: Object causing the exception, can be None.");
+
+#define SYS_UNRAISABLEHOOK_METHODDEF \
+ {"unraisablehook", (PyCFunction)sys_unraisablehook, METH_O, sys_unraisablehook__doc__},
+
+PyDoc_STRVAR(sys_exit__doc__,
+"exit($module, status=None, /)\n"
+"--\n"
+"\n"
+"Exit the interpreter by raising SystemExit(status).\n"
+"\n"
+"If the status is omitted or None, it defaults to zero (i.e., success).\n"
+"If the status is an integer, it will be used as the system exit status.\n"
+"If it is another kind of object, it will be printed and the system\n"
+"exit status will be one (i.e., failure).");
+
+#define SYS_EXIT_METHODDEF \
+ {"exit", (PyCFunction)(void(*)(void))sys_exit, METH_FASTCALL, sys_exit__doc__},
+
+static PyObject *
+sys_exit_impl(PyObject *module, PyObject *status);
+
+static PyObject *
+sys_exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *status = Py_None;
+
+ if (!_PyArg_CheckPositional("exit", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ status = args[0];
+skip_optional:
+ return_value = sys_exit_impl(module, status);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys_getdefaultencoding__doc__,
+"getdefaultencoding($module, /)\n"
+"--\n"
+"\n"
+"Return the current default encoding used by the Unicode implementation.");
+
+#define SYS_GETDEFAULTENCODING_METHODDEF \
+ {"getdefaultencoding", (PyCFunction)sys_getdefaultencoding, METH_NOARGS, sys_getdefaultencoding__doc__},
+
+static PyObject *
+sys_getdefaultencoding_impl(PyObject *module);
+
+static PyObject *
+sys_getdefaultencoding(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getdefaultencoding_impl(module);
+}
+
+PyDoc_STRVAR(sys_getfilesystemencoding__doc__,
+"getfilesystemencoding($module, /)\n"
+"--\n"
+"\n"
+"Return the encoding used to convert Unicode filenames to OS filenames.");
+
+#define SYS_GETFILESYSTEMENCODING_METHODDEF \
+ {"getfilesystemencoding", (PyCFunction)sys_getfilesystemencoding, METH_NOARGS, sys_getfilesystemencoding__doc__},
+
+static PyObject *
+sys_getfilesystemencoding_impl(PyObject *module);
+
+static PyObject *
+sys_getfilesystemencoding(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getfilesystemencoding_impl(module);
+}
+
+PyDoc_STRVAR(sys_getfilesystemencodeerrors__doc__,
+"getfilesystemencodeerrors($module, /)\n"
+"--\n"
+"\n"
+"Return the error mode used Unicode to OS filename conversion.");
+
+#define SYS_GETFILESYSTEMENCODEERRORS_METHODDEF \
+ {"getfilesystemencodeerrors", (PyCFunction)sys_getfilesystemencodeerrors, METH_NOARGS, sys_getfilesystemencodeerrors__doc__},
+
+static PyObject *
+sys_getfilesystemencodeerrors_impl(PyObject *module);
+
+static PyObject *
+sys_getfilesystemencodeerrors(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getfilesystemencodeerrors_impl(module);
+}
+
+PyDoc_STRVAR(sys_intern__doc__,
+"intern($module, string, /)\n"
+"--\n"
+"\n"
+"``Intern\'\' the given string.\n"
+"\n"
+"This enters the string in the (global) table of interned strings whose\n"
+"purpose is to speed up dictionary lookups. Return the string itself or\n"
+"the previously interned string object with the same value.");
+
+#define SYS_INTERN_METHODDEF \
+ {"intern", (PyCFunction)sys_intern, METH_O, sys_intern__doc__},
+
+static PyObject *
+sys_intern_impl(PyObject *module, PyObject *s);
+
+static PyObject *
+sys_intern(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *s;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("intern", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ s = arg;
+ return_value = sys_intern_impl(module, s);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys_gettrace__doc__,
+"gettrace($module, /)\n"
+"--\n"
+"\n"
+"Return the global debug tracing function set with sys.settrace.\n"
+"\n"
+"See the debugger chapter in the library manual.");
+
+#define SYS_GETTRACE_METHODDEF \
+ {"gettrace", (PyCFunction)sys_gettrace, METH_NOARGS, sys_gettrace__doc__},
+
+static PyObject *
+sys_gettrace_impl(PyObject *module);
+
+static PyObject *
+sys_gettrace(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_gettrace_impl(module);
+}
+
+PyDoc_STRVAR(sys_getprofile__doc__,
+"getprofile($module, /)\n"
+"--\n"
+"\n"
+"Return the profiling function set with sys.setprofile.\n"
+"\n"
+"See the profiler chapter in the library manual.");
+
+#define SYS_GETPROFILE_METHODDEF \
+ {"getprofile", (PyCFunction)sys_getprofile, METH_NOARGS, sys_getprofile__doc__},
+
+static PyObject *
+sys_getprofile_impl(PyObject *module);
+
+static PyObject *
+sys_getprofile(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getprofile_impl(module);
+}
+
+PyDoc_STRVAR(sys_setswitchinterval__doc__,
+"setswitchinterval($module, interval, /)\n"
+"--\n"
+"\n"
+"Set the ideal thread switching delay inside the Python interpreter.\n"
+"\n"
+"The actual frequency of switching threads can be lower if the\n"
+"interpreter executes long sequences of uninterruptible code\n"
+"(this is implementation-specific and workload-dependent).\n"
+"\n"
+"The parameter must represent the desired switching delay in seconds\n"
+"A typical value is 0.005 (5 milliseconds).");
+
+#define SYS_SETSWITCHINTERVAL_METHODDEF \
+ {"setswitchinterval", (PyCFunction)sys_setswitchinterval, METH_O, sys_setswitchinterval__doc__},
+
+static PyObject *
+sys_setswitchinterval_impl(PyObject *module, double interval);
+
+static PyObject *
+sys_setswitchinterval(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ double interval;
+
+ if (PyFloat_CheckExact(arg)) {
+ interval = PyFloat_AS_DOUBLE(arg);
+ }
+ else
+ {
+ interval = PyFloat_AsDouble(arg);
+ if (interval == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ return_value = sys_setswitchinterval_impl(module, interval);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys_getswitchinterval__doc__,
+"getswitchinterval($module, /)\n"
+"--\n"
+"\n"
+"Return the current thread switch interval; see sys.setswitchinterval().");
+
+#define SYS_GETSWITCHINTERVAL_METHODDEF \
+ {"getswitchinterval", (PyCFunction)sys_getswitchinterval, METH_NOARGS, sys_getswitchinterval__doc__},
+
+static double
+sys_getswitchinterval_impl(PyObject *module);
+
+static PyObject *
+sys_getswitchinterval(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ double _return_value;
+
+ _return_value = sys_getswitchinterval_impl(module);
+ if ((_return_value == -1.0) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyFloat_FromDouble(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys_setrecursionlimit__doc__,
+"setrecursionlimit($module, limit, /)\n"
+"--\n"
+"\n"
+"Set the maximum depth of the Python interpreter stack to n.\n"
+"\n"
+"This limit prevents infinite recursion from causing an overflow of the C\n"
+"stack and crashing Python. The highest possible limit is platform-\n"
+"dependent.");
+
+#define SYS_SETRECURSIONLIMIT_METHODDEF \
+ {"setrecursionlimit", (PyCFunction)sys_setrecursionlimit, METH_O, sys_setrecursionlimit__doc__},
+
+static PyObject *
+sys_setrecursionlimit_impl(PyObject *module, int new_limit);
+
+static PyObject *
+sys_setrecursionlimit(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int new_limit;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ new_limit = _PyLong_AsInt(arg);
+ if (new_limit == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = sys_setrecursionlimit_impl(module, new_limit);
+
+exit:
+ return return_value;
+}
+
PyDoc_STRVAR(sys_set_coroutine_origin_tracking_depth__doc__,
"set_coroutine_origin_tracking_depth($module, /, depth)\n"
"--\n"
"\n"
"Enable or disable origin tracking for coroutine objects in this thread.\n"
"\n"
-"Coroutine objects will track \'depth\' frames of traceback information\n"
-"about where they came from, available in their cr_origin attribute.\n"
-"\n"
-"Set a depth of 0 to disable.");
+"Coroutine objects will track \'depth\' frames of traceback information\n"
+"about where they came from, available in their cr_origin attribute.\n"
+"\n"
+"Set a depth of 0 to disable.");
#define SYS_SET_COROUTINE_ORIGIN_TRACKING_DEPTH_METHODDEF \
- {"set_coroutine_origin_tracking_depth", (PyCFunction)(void(*)(void))sys_set_coroutine_origin_tracking_depth, METH_FASTCALL|METH_KEYWORDS, sys_set_coroutine_origin_tracking_depth__doc__},
+ {"set_coroutine_origin_tracking_depth", (PyCFunction)(void(*)(void))sys_set_coroutine_origin_tracking_depth, METH_FASTCALL|METH_KEYWORDS, sys_set_coroutine_origin_tracking_depth__doc__},
static PyObject *
sys_set_coroutine_origin_tracking_depth_impl(PyObject *module, int depth);
@@ -409,23 +409,23 @@ sys_set_coroutine_origin_tracking_depth(PyObject *module, PyObject *const *args,
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"depth", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "set_coroutine_origin_tracking_depth", 0};
- PyObject *argsbuf[1];
+ static _PyArg_Parser _parser = {NULL, _keywords, "set_coroutine_origin_tracking_depth", 0};
+ PyObject *argsbuf[1];
int depth;
- args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
- if (!args) {
+ args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+ if (!args) {
+ goto exit;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ depth = _PyLong_AsInt(args[0]);
+ if (depth == -1 && PyErr_Occurred()) {
goto exit;
}
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- depth = _PyLong_AsInt(args[0]);
- if (depth == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = sys_set_coroutine_origin_tracking_depth_impl(module, depth);
exit:
@@ -459,515 +459,515 @@ sys_get_coroutine_origin_tracking_depth(PyObject *module, PyObject *Py_UNUSED(ig
exit:
return return_value;
}
-
-PyDoc_STRVAR(sys_get_asyncgen_hooks__doc__,
-"get_asyncgen_hooks($module, /)\n"
-"--\n"
-"\n"
-"Return the installed asynchronous generators hooks.\n"
-"\n"
-"This returns a namedtuple of the form (firstiter, finalizer).");
-
-#define SYS_GET_ASYNCGEN_HOOKS_METHODDEF \
- {"get_asyncgen_hooks", (PyCFunction)sys_get_asyncgen_hooks, METH_NOARGS, sys_get_asyncgen_hooks__doc__},
-
-static PyObject *
-sys_get_asyncgen_hooks_impl(PyObject *module);
-
-static PyObject *
-sys_get_asyncgen_hooks(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_get_asyncgen_hooks_impl(module);
-}
-
-PyDoc_STRVAR(sys_getrecursionlimit__doc__,
-"getrecursionlimit($module, /)\n"
-"--\n"
-"\n"
-"Return the current value of the recursion limit.\n"
-"\n"
-"The recursion limit is the maximum depth of the Python interpreter\n"
-"stack. This limit prevents infinite recursion from causing an overflow\n"
-"of the C stack and crashing Python.");
-
-#define SYS_GETRECURSIONLIMIT_METHODDEF \
- {"getrecursionlimit", (PyCFunction)sys_getrecursionlimit, METH_NOARGS, sys_getrecursionlimit__doc__},
-
-static PyObject *
-sys_getrecursionlimit_impl(PyObject *module);
-
-static PyObject *
-sys_getrecursionlimit(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getrecursionlimit_impl(module);
-}
-
-#if defined(MS_WINDOWS)
-
-PyDoc_STRVAR(sys_getwindowsversion__doc__,
-"getwindowsversion($module, /)\n"
-"--\n"
-"\n"
-"Return info about the running version of Windows as a named tuple.\n"
-"\n"
-"The members are named: major, minor, build, platform, service_pack,\n"
-"service_pack_major, service_pack_minor, suite_mask, product_type and\n"
-"platform_version. For backward compatibility, only the first 5 items\n"
-"are available by indexing. All elements are numbers, except\n"
-"service_pack and platform_type which are strings, and platform_version\n"
-"which is a 3-tuple. Platform is always 2. Product_type may be 1 for a\n"
-"workstation, 2 for a domain controller, 3 for a server.\n"
-"Platform_version is a 3-tuple containing a version number that is\n"
-"intended for identifying the OS rather than feature detection.");
-
-#define SYS_GETWINDOWSVERSION_METHODDEF \
- {"getwindowsversion", (PyCFunction)sys_getwindowsversion, METH_NOARGS, sys_getwindowsversion__doc__},
-
-static PyObject *
-sys_getwindowsversion_impl(PyObject *module);
-
-static PyObject *
-sys_getwindowsversion(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getwindowsversion_impl(module);
-}
-
-#endif /* defined(MS_WINDOWS) */
-
-#if defined(MS_WINDOWS)
-
-PyDoc_STRVAR(sys__enablelegacywindowsfsencoding__doc__,
-"_enablelegacywindowsfsencoding($module, /)\n"
-"--\n"
-"\n"
-"Changes the default filesystem encoding to mbcs:replace.\n"
-"\n"
-"This is done for consistency with earlier versions of Python. See PEP\n"
-"529 for more information.\n"
-"\n"
-"This is equivalent to defining the PYTHONLEGACYWINDOWSFSENCODING\n"
-"environment variable before launching Python.");
-
-#define SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF \
- {"_enablelegacywindowsfsencoding", (PyCFunction)sys__enablelegacywindowsfsencoding, METH_NOARGS, sys__enablelegacywindowsfsencoding__doc__},
-
-static PyObject *
-sys__enablelegacywindowsfsencoding_impl(PyObject *module);
-
-static PyObject *
-sys__enablelegacywindowsfsencoding(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys__enablelegacywindowsfsencoding_impl(module);
-}
-
-#endif /* defined(MS_WINDOWS) */
-
-#if defined(HAVE_DLOPEN)
-
-PyDoc_STRVAR(sys_setdlopenflags__doc__,
-"setdlopenflags($module, flags, /)\n"
-"--\n"
-"\n"
-"Set the flags used by the interpreter for dlopen calls.\n"
-"\n"
-"This is used, for example, when the interpreter loads extension\n"
-"modules. Among other things, this will enable a lazy resolving of\n"
-"symbols when importing a module, if called as sys.setdlopenflags(0).\n"
-"To share symbols across extension modules, call as\n"
-"sys.setdlopenflags(os.RTLD_GLOBAL). Symbolic names for the flag\n"
-"modules can be found in the os module (RTLD_xxx constants, e.g.\n"
-"os.RTLD_LAZY).");
-
-#define SYS_SETDLOPENFLAGS_METHODDEF \
- {"setdlopenflags", (PyCFunction)sys_setdlopenflags, METH_O, sys_setdlopenflags__doc__},
-
-static PyObject *
-sys_setdlopenflags_impl(PyObject *module, int new_val);
-
-static PyObject *
-sys_setdlopenflags(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int new_val;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- new_val = _PyLong_AsInt(arg);
- if (new_val == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = sys_setdlopenflags_impl(module, new_val);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(HAVE_DLOPEN) */
-
-#if defined(HAVE_DLOPEN)
-
-PyDoc_STRVAR(sys_getdlopenflags__doc__,
-"getdlopenflags($module, /)\n"
-"--\n"
-"\n"
-"Return the current value of the flags that are used for dlopen calls.\n"
-"\n"
-"The flag constants are defined in the os module.");
-
-#define SYS_GETDLOPENFLAGS_METHODDEF \
- {"getdlopenflags", (PyCFunction)sys_getdlopenflags, METH_NOARGS, sys_getdlopenflags__doc__},
-
-static PyObject *
-sys_getdlopenflags_impl(PyObject *module);
-
-static PyObject *
-sys_getdlopenflags(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getdlopenflags_impl(module);
-}
-
-#endif /* defined(HAVE_DLOPEN) */
-
-#if defined(USE_MALLOPT)
-
-PyDoc_STRVAR(sys_mdebug__doc__,
-"mdebug($module, flag, /)\n"
-"--\n"
-"\n");
-
-#define SYS_MDEBUG_METHODDEF \
- {"mdebug", (PyCFunction)sys_mdebug, METH_O, sys_mdebug__doc__},
-
-static PyObject *
-sys_mdebug_impl(PyObject *module, int flag);
-
-static PyObject *
-sys_mdebug(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- int flag;
-
- if (PyFloat_Check(arg)) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- flag = _PyLong_AsInt(arg);
- if (flag == -1 && PyErr_Occurred()) {
- goto exit;
- }
- return_value = sys_mdebug_impl(module, flag);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(USE_MALLOPT) */
-
-PyDoc_STRVAR(sys_getrefcount__doc__,
-"getrefcount($module, object, /)\n"
-"--\n"
-"\n"
-"Return the reference count of object.\n"
-"\n"
-"The count returned is generally one higher than you might expect,\n"
-"because it includes the (temporary) reference as an argument to\n"
-"getrefcount().");
-
-#define SYS_GETREFCOUNT_METHODDEF \
- {"getrefcount", (PyCFunction)sys_getrefcount, METH_O, sys_getrefcount__doc__},
-
-static Py_ssize_t
-sys_getrefcount_impl(PyObject *module, PyObject *object);
-
-static PyObject *
-sys_getrefcount(PyObject *module, PyObject *object)
-{
- PyObject *return_value = NULL;
- Py_ssize_t _return_value;
-
- _return_value = sys_getrefcount_impl(module, object);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromSsize_t(_return_value);
-
-exit:
- return return_value;
-}
-
-#if defined(Py_REF_DEBUG)
-
-PyDoc_STRVAR(sys_gettotalrefcount__doc__,
-"gettotalrefcount($module, /)\n"
-"--\n"
-"\n");
-
-#define SYS_GETTOTALREFCOUNT_METHODDEF \
- {"gettotalrefcount", (PyCFunction)sys_gettotalrefcount, METH_NOARGS, sys_gettotalrefcount__doc__},
-
-static Py_ssize_t
-sys_gettotalrefcount_impl(PyObject *module);
-
-static PyObject *
-sys_gettotalrefcount(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- PyObject *return_value = NULL;
- Py_ssize_t _return_value;
-
- _return_value = sys_gettotalrefcount_impl(module);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromSsize_t(_return_value);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(Py_REF_DEBUG) */
-
-PyDoc_STRVAR(sys_getallocatedblocks__doc__,
-"getallocatedblocks($module, /)\n"
-"--\n"
-"\n"
-"Return the number of memory blocks currently allocated.");
-
-#define SYS_GETALLOCATEDBLOCKS_METHODDEF \
- {"getallocatedblocks", (PyCFunction)sys_getallocatedblocks, METH_NOARGS, sys_getallocatedblocks__doc__},
-
-static Py_ssize_t
-sys_getallocatedblocks_impl(PyObject *module);
-
-static PyObject *
-sys_getallocatedblocks(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- PyObject *return_value = NULL;
- Py_ssize_t _return_value;
-
- _return_value = sys_getallocatedblocks_impl(module);
- if ((_return_value == -1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromSsize_t(_return_value);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys__getframe__doc__,
-"_getframe($module, depth=0, /)\n"
-"--\n"
-"\n"
-"Return a frame object from the call stack.\n"
-"\n"
-"If optional integer depth is given, return the frame object that many\n"
-"calls below the top of the stack. If that is deeper than the call\n"
-"stack, ValueError is raised. The default for depth is zero, returning\n"
-"the frame at the top of the call stack.\n"
-"\n"
-"This function should be used for internal and specialized purposes\n"
-"only.");
-
-#define SYS__GETFRAME_METHODDEF \
- {"_getframe", (PyCFunction)(void(*)(void))sys__getframe, METH_FASTCALL, sys__getframe__doc__},
-
-static PyObject *
-sys__getframe_impl(PyObject *module, int depth);
-
-static PyObject *
-sys__getframe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- int depth = 0;
-
- if (!_PyArg_CheckPositional("_getframe", nargs, 0, 1)) {
- goto exit;
- }
- if (nargs < 1) {
- goto skip_optional;
- }
- if (PyFloat_Check(args[0])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- depth = _PyLong_AsInt(args[0]);
- if (depth == -1 && PyErr_Occurred()) {
- goto exit;
- }
-skip_optional:
- return_value = sys__getframe_impl(module, depth);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys__current_frames__doc__,
-"_current_frames($module, /)\n"
-"--\n"
-"\n"
-"Return a dict mapping each thread\'s thread id to its current stack frame.\n"
-"\n"
-"This function should be used for specialized purposes only.");
-
-#define SYS__CURRENT_FRAMES_METHODDEF \
- {"_current_frames", (PyCFunction)sys__current_frames, METH_NOARGS, sys__current_frames__doc__},
-
-static PyObject *
-sys__current_frames_impl(PyObject *module);
-
-static PyObject *
-sys__current_frames(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys__current_frames_impl(module);
-}
-
-PyDoc_STRVAR(sys_call_tracing__doc__,
-"call_tracing($module, func, args, /)\n"
-"--\n"
-"\n"
-"Call func(*args), while tracing is enabled.\n"
-"\n"
-"The tracing state is saved, and restored afterwards. This is intended\n"
-"to be called from a debugger from a checkpoint, to recursively debug\n"
-"some other code.");
-
-#define SYS_CALL_TRACING_METHODDEF \
- {"call_tracing", (PyCFunction)(void(*)(void))sys_call_tracing, METH_FASTCALL, sys_call_tracing__doc__},
-
-static PyObject *
-sys_call_tracing_impl(PyObject *module, PyObject *func, PyObject *funcargs);
-
-static PyObject *
-sys_call_tracing(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
-{
- PyObject *return_value = NULL;
- PyObject *func;
- PyObject *funcargs;
-
- if (!_PyArg_CheckPositional("call_tracing", nargs, 2, 2)) {
- goto exit;
- }
- func = args[0];
- if (!PyTuple_Check(args[1])) {
- _PyArg_BadArgument("call_tracing", "argument 2", "tuple", args[1]);
- goto exit;
- }
- funcargs = args[1];
- return_value = sys_call_tracing_impl(module, func, funcargs);
-
-exit:
- return return_value;
-}
-
-PyDoc_STRVAR(sys__debugmallocstats__doc__,
-"_debugmallocstats($module, /)\n"
-"--\n"
-"\n"
-"Print summary info to stderr about the state of pymalloc\'s structures.\n"
-"\n"
-"In Py_DEBUG mode, also perform some expensive internal consistency\n"
-"checks.");
-
-#define SYS__DEBUGMALLOCSTATS_METHODDEF \
- {"_debugmallocstats", (PyCFunction)sys__debugmallocstats, METH_NOARGS, sys__debugmallocstats__doc__},
-
-static PyObject *
-sys__debugmallocstats_impl(PyObject *module);
-
-static PyObject *
-sys__debugmallocstats(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys__debugmallocstats_impl(module);
-}
-
-PyDoc_STRVAR(sys__clear_type_cache__doc__,
-"_clear_type_cache($module, /)\n"
-"--\n"
-"\n"
-"Clear the internal type lookup cache.");
-
-#define SYS__CLEAR_TYPE_CACHE_METHODDEF \
- {"_clear_type_cache", (PyCFunction)sys__clear_type_cache, METH_NOARGS, sys__clear_type_cache__doc__},
-
-static PyObject *
-sys__clear_type_cache_impl(PyObject *module);
-
-static PyObject *
-sys__clear_type_cache(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys__clear_type_cache_impl(module);
-}
-
-PyDoc_STRVAR(sys_is_finalizing__doc__,
-"is_finalizing($module, /)\n"
-"--\n"
-"\n"
-"Return True if Python is exiting.");
-
-#define SYS_IS_FINALIZING_METHODDEF \
- {"is_finalizing", (PyCFunction)sys_is_finalizing, METH_NOARGS, sys_is_finalizing__doc__},
-
-static PyObject *
-sys_is_finalizing_impl(PyObject *module);
-
-static PyObject *
-sys_is_finalizing(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_is_finalizing_impl(module);
-}
-
-#if defined(ANDROID_API_LEVEL)
-
-PyDoc_STRVAR(sys_getandroidapilevel__doc__,
-"getandroidapilevel($module, /)\n"
-"--\n"
-"\n"
-"Return the build time API version of Android as an integer.");
-
-#define SYS_GETANDROIDAPILEVEL_METHODDEF \
- {"getandroidapilevel", (PyCFunction)sys_getandroidapilevel, METH_NOARGS, sys_getandroidapilevel__doc__},
-
-static PyObject *
-sys_getandroidapilevel_impl(PyObject *module);
-
-static PyObject *
-sys_getandroidapilevel(PyObject *module, PyObject *Py_UNUSED(ignored))
-{
- return sys_getandroidapilevel_impl(module);
-}
-
-#endif /* defined(ANDROID_API_LEVEL) */
-
-#ifndef SYS_GETWINDOWSVERSION_METHODDEF
- #define SYS_GETWINDOWSVERSION_METHODDEF
-#endif /* !defined(SYS_GETWINDOWSVERSION_METHODDEF) */
-
-#ifndef SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF
- #define SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF
-#endif /* !defined(SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF) */
-
-#ifndef SYS_SETDLOPENFLAGS_METHODDEF
- #define SYS_SETDLOPENFLAGS_METHODDEF
-#endif /* !defined(SYS_SETDLOPENFLAGS_METHODDEF) */
-
-#ifndef SYS_GETDLOPENFLAGS_METHODDEF
- #define SYS_GETDLOPENFLAGS_METHODDEF
-#endif /* !defined(SYS_GETDLOPENFLAGS_METHODDEF) */
-
-#ifndef SYS_MDEBUG_METHODDEF
- #define SYS_MDEBUG_METHODDEF
-#endif /* !defined(SYS_MDEBUG_METHODDEF) */
-
-#ifndef SYS_GETTOTALREFCOUNT_METHODDEF
- #define SYS_GETTOTALREFCOUNT_METHODDEF
-#endif /* !defined(SYS_GETTOTALREFCOUNT_METHODDEF) */
-
-#ifndef SYS_GETANDROIDAPILEVEL_METHODDEF
- #define SYS_GETANDROIDAPILEVEL_METHODDEF
-#endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */
-/*[clinic end generated code: output=39eb34a01fb9a919 input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(sys_get_asyncgen_hooks__doc__,
+"get_asyncgen_hooks($module, /)\n"
+"--\n"
+"\n"
+"Return the installed asynchronous generators hooks.\n"
+"\n"
+"This returns a namedtuple of the form (firstiter, finalizer).");
+
+#define SYS_GET_ASYNCGEN_HOOKS_METHODDEF \
+ {"get_asyncgen_hooks", (PyCFunction)sys_get_asyncgen_hooks, METH_NOARGS, sys_get_asyncgen_hooks__doc__},
+
+static PyObject *
+sys_get_asyncgen_hooks_impl(PyObject *module);
+
+static PyObject *
+sys_get_asyncgen_hooks(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_get_asyncgen_hooks_impl(module);
+}
+
+PyDoc_STRVAR(sys_getrecursionlimit__doc__,
+"getrecursionlimit($module, /)\n"
+"--\n"
+"\n"
+"Return the current value of the recursion limit.\n"
+"\n"
+"The recursion limit is the maximum depth of the Python interpreter\n"
+"stack. This limit prevents infinite recursion from causing an overflow\n"
+"of the C stack and crashing Python.");
+
+#define SYS_GETRECURSIONLIMIT_METHODDEF \
+ {"getrecursionlimit", (PyCFunction)sys_getrecursionlimit, METH_NOARGS, sys_getrecursionlimit__doc__},
+
+static PyObject *
+sys_getrecursionlimit_impl(PyObject *module);
+
+static PyObject *
+sys_getrecursionlimit(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getrecursionlimit_impl(module);
+}
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(sys_getwindowsversion__doc__,
+"getwindowsversion($module, /)\n"
+"--\n"
+"\n"
+"Return info about the running version of Windows as a named tuple.\n"
+"\n"
+"The members are named: major, minor, build, platform, service_pack,\n"
+"service_pack_major, service_pack_minor, suite_mask, product_type and\n"
+"platform_version. For backward compatibility, only the first 5 items\n"
+"are available by indexing. All elements are numbers, except\n"
+"service_pack and platform_type which are strings, and platform_version\n"
+"which is a 3-tuple. Platform is always 2. Product_type may be 1 for a\n"
+"workstation, 2 for a domain controller, 3 for a server.\n"
+"Platform_version is a 3-tuple containing a version number that is\n"
+"intended for identifying the OS rather than feature detection.");
+
+#define SYS_GETWINDOWSVERSION_METHODDEF \
+ {"getwindowsversion", (PyCFunction)sys_getwindowsversion, METH_NOARGS, sys_getwindowsversion__doc__},
+
+static PyObject *
+sys_getwindowsversion_impl(PyObject *module);
+
+static PyObject *
+sys_getwindowsversion(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getwindowsversion_impl(module);
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(sys__enablelegacywindowsfsencoding__doc__,
+"_enablelegacywindowsfsencoding($module, /)\n"
+"--\n"
+"\n"
+"Changes the default filesystem encoding to mbcs:replace.\n"
+"\n"
+"This is done for consistency with earlier versions of Python. See PEP\n"
+"529 for more information.\n"
+"\n"
+"This is equivalent to defining the PYTHONLEGACYWINDOWSFSENCODING\n"
+"environment variable before launching Python.");
+
+#define SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF \
+ {"_enablelegacywindowsfsencoding", (PyCFunction)sys__enablelegacywindowsfsencoding, METH_NOARGS, sys__enablelegacywindowsfsencoding__doc__},
+
+static PyObject *
+sys__enablelegacywindowsfsencoding_impl(PyObject *module);
+
+static PyObject *
+sys__enablelegacywindowsfsencoding(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys__enablelegacywindowsfsencoding_impl(module);
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if defined(HAVE_DLOPEN)
+
+PyDoc_STRVAR(sys_setdlopenflags__doc__,
+"setdlopenflags($module, flags, /)\n"
+"--\n"
+"\n"
+"Set the flags used by the interpreter for dlopen calls.\n"
+"\n"
+"This is used, for example, when the interpreter loads extension\n"
+"modules. Among other things, this will enable a lazy resolving of\n"
+"symbols when importing a module, if called as sys.setdlopenflags(0).\n"
+"To share symbols across extension modules, call as\n"
+"sys.setdlopenflags(os.RTLD_GLOBAL). Symbolic names for the flag\n"
+"modules can be found in the os module (RTLD_xxx constants, e.g.\n"
+"os.RTLD_LAZY).");
+
+#define SYS_SETDLOPENFLAGS_METHODDEF \
+ {"setdlopenflags", (PyCFunction)sys_setdlopenflags, METH_O, sys_setdlopenflags__doc__},
+
+static PyObject *
+sys_setdlopenflags_impl(PyObject *module, int new_val);
+
+static PyObject *
+sys_setdlopenflags(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int new_val;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ new_val = _PyLong_AsInt(arg);
+ if (new_val == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = sys_setdlopenflags_impl(module, new_val);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(HAVE_DLOPEN) */
+
+#if defined(HAVE_DLOPEN)
+
+PyDoc_STRVAR(sys_getdlopenflags__doc__,
+"getdlopenflags($module, /)\n"
+"--\n"
+"\n"
+"Return the current value of the flags that are used for dlopen calls.\n"
+"\n"
+"The flag constants are defined in the os module.");
+
+#define SYS_GETDLOPENFLAGS_METHODDEF \
+ {"getdlopenflags", (PyCFunction)sys_getdlopenflags, METH_NOARGS, sys_getdlopenflags__doc__},
+
+static PyObject *
+sys_getdlopenflags_impl(PyObject *module);
+
+static PyObject *
+sys_getdlopenflags(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getdlopenflags_impl(module);
+}
+
+#endif /* defined(HAVE_DLOPEN) */
+
+#if defined(USE_MALLOPT)
+
+PyDoc_STRVAR(sys_mdebug__doc__,
+"mdebug($module, flag, /)\n"
+"--\n"
+"\n");
+
+#define SYS_MDEBUG_METHODDEF \
+ {"mdebug", (PyCFunction)sys_mdebug, METH_O, sys_mdebug__doc__},
+
+static PyObject *
+sys_mdebug_impl(PyObject *module, int flag);
+
+static PyObject *
+sys_mdebug(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ int flag;
+
+ if (PyFloat_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ flag = _PyLong_AsInt(arg);
+ if (flag == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = sys_mdebug_impl(module, flag);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(USE_MALLOPT) */
+
+PyDoc_STRVAR(sys_getrefcount__doc__,
+"getrefcount($module, object, /)\n"
+"--\n"
+"\n"
+"Return the reference count of object.\n"
+"\n"
+"The count returned is generally one higher than you might expect,\n"
+"because it includes the (temporary) reference as an argument to\n"
+"getrefcount().");
+
+#define SYS_GETREFCOUNT_METHODDEF \
+ {"getrefcount", (PyCFunction)sys_getrefcount, METH_O, sys_getrefcount__doc__},
+
+static Py_ssize_t
+sys_getrefcount_impl(PyObject *module, PyObject *object);
+
+static PyObject *
+sys_getrefcount(PyObject *module, PyObject *object)
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t _return_value;
+
+ _return_value = sys_getrefcount_impl(module, object);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+#if defined(Py_REF_DEBUG)
+
+PyDoc_STRVAR(sys_gettotalrefcount__doc__,
+"gettotalrefcount($module, /)\n"
+"--\n"
+"\n");
+
+#define SYS_GETTOTALREFCOUNT_METHODDEF \
+ {"gettotalrefcount", (PyCFunction)sys_gettotalrefcount, METH_NOARGS, sys_gettotalrefcount__doc__},
+
+static Py_ssize_t
+sys_gettotalrefcount_impl(PyObject *module);
+
+static PyObject *
+sys_gettotalrefcount(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t _return_value;
+
+ _return_value = sys_gettotalrefcount_impl(module);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(Py_REF_DEBUG) */
+
+PyDoc_STRVAR(sys_getallocatedblocks__doc__,
+"getallocatedblocks($module, /)\n"
+"--\n"
+"\n"
+"Return the number of memory blocks currently allocated.");
+
+#define SYS_GETALLOCATEDBLOCKS_METHODDEF \
+ {"getallocatedblocks", (PyCFunction)sys_getallocatedblocks, METH_NOARGS, sys_getallocatedblocks__doc__},
+
+static Py_ssize_t
+sys_getallocatedblocks_impl(PyObject *module);
+
+static PyObject *
+sys_getallocatedblocks(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ PyObject *return_value = NULL;
+ Py_ssize_t _return_value;
+
+ _return_value = sys_getallocatedblocks_impl(module);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromSsize_t(_return_value);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys__getframe__doc__,
+"_getframe($module, depth=0, /)\n"
+"--\n"
+"\n"
+"Return a frame object from the call stack.\n"
+"\n"
+"If optional integer depth is given, return the frame object that many\n"
+"calls below the top of the stack. If that is deeper than the call\n"
+"stack, ValueError is raised. The default for depth is zero, returning\n"
+"the frame at the top of the call stack.\n"
+"\n"
+"This function should be used for internal and specialized purposes\n"
+"only.");
+
+#define SYS__GETFRAME_METHODDEF \
+ {"_getframe", (PyCFunction)(void(*)(void))sys__getframe, METH_FASTCALL, sys__getframe__doc__},
+
+static PyObject *
+sys__getframe_impl(PyObject *module, int depth);
+
+static PyObject *
+sys__getframe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ int depth = 0;
+
+ if (!_PyArg_CheckPositional("_getframe", nargs, 0, 1)) {
+ goto exit;
+ }
+ if (nargs < 1) {
+ goto skip_optional;
+ }
+ if (PyFloat_Check(args[0])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ depth = _PyLong_AsInt(args[0]);
+ if (depth == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+skip_optional:
+ return_value = sys__getframe_impl(module, depth);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys__current_frames__doc__,
+"_current_frames($module, /)\n"
+"--\n"
+"\n"
+"Return a dict mapping each thread\'s thread id to its current stack frame.\n"
+"\n"
+"This function should be used for specialized purposes only.");
+
+#define SYS__CURRENT_FRAMES_METHODDEF \
+ {"_current_frames", (PyCFunction)sys__current_frames, METH_NOARGS, sys__current_frames__doc__},
+
+static PyObject *
+sys__current_frames_impl(PyObject *module);
+
+static PyObject *
+sys__current_frames(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys__current_frames_impl(module);
+}
+
+PyDoc_STRVAR(sys_call_tracing__doc__,
+"call_tracing($module, func, args, /)\n"
+"--\n"
+"\n"
+"Call func(*args), while tracing is enabled.\n"
+"\n"
+"The tracing state is saved, and restored afterwards. This is intended\n"
+"to be called from a debugger from a checkpoint, to recursively debug\n"
+"some other code.");
+
+#define SYS_CALL_TRACING_METHODDEF \
+ {"call_tracing", (PyCFunction)(void(*)(void))sys_call_tracing, METH_FASTCALL, sys_call_tracing__doc__},
+
+static PyObject *
+sys_call_tracing_impl(PyObject *module, PyObject *func, PyObject *funcargs);
+
+static PyObject *
+sys_call_tracing(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ PyObject *func;
+ PyObject *funcargs;
+
+ if (!_PyArg_CheckPositional("call_tracing", nargs, 2, 2)) {
+ goto exit;
+ }
+ func = args[0];
+ if (!PyTuple_Check(args[1])) {
+ _PyArg_BadArgument("call_tracing", "argument 2", "tuple", args[1]);
+ goto exit;
+ }
+ funcargs = args[1];
+ return_value = sys_call_tracing_impl(module, func, funcargs);
+
+exit:
+ return return_value;
+}
+
+PyDoc_STRVAR(sys__debugmallocstats__doc__,
+"_debugmallocstats($module, /)\n"
+"--\n"
+"\n"
+"Print summary info to stderr about the state of pymalloc\'s structures.\n"
+"\n"
+"In Py_DEBUG mode, also perform some expensive internal consistency\n"
+"checks.");
+
+#define SYS__DEBUGMALLOCSTATS_METHODDEF \
+ {"_debugmallocstats", (PyCFunction)sys__debugmallocstats, METH_NOARGS, sys__debugmallocstats__doc__},
+
+static PyObject *
+sys__debugmallocstats_impl(PyObject *module);
+
+static PyObject *
+sys__debugmallocstats(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys__debugmallocstats_impl(module);
+}
+
+PyDoc_STRVAR(sys__clear_type_cache__doc__,
+"_clear_type_cache($module, /)\n"
+"--\n"
+"\n"
+"Clear the internal type lookup cache.");
+
+#define SYS__CLEAR_TYPE_CACHE_METHODDEF \
+ {"_clear_type_cache", (PyCFunction)sys__clear_type_cache, METH_NOARGS, sys__clear_type_cache__doc__},
+
+static PyObject *
+sys__clear_type_cache_impl(PyObject *module);
+
+static PyObject *
+sys__clear_type_cache(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys__clear_type_cache_impl(module);
+}
+
+PyDoc_STRVAR(sys_is_finalizing__doc__,
+"is_finalizing($module, /)\n"
+"--\n"
+"\n"
+"Return True if Python is exiting.");
+
+#define SYS_IS_FINALIZING_METHODDEF \
+ {"is_finalizing", (PyCFunction)sys_is_finalizing, METH_NOARGS, sys_is_finalizing__doc__},
+
+static PyObject *
+sys_is_finalizing_impl(PyObject *module);
+
+static PyObject *
+sys_is_finalizing(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_is_finalizing_impl(module);
+}
+
+#if defined(ANDROID_API_LEVEL)
+
+PyDoc_STRVAR(sys_getandroidapilevel__doc__,
+"getandroidapilevel($module, /)\n"
+"--\n"
+"\n"
+"Return the build time API version of Android as an integer.");
+
+#define SYS_GETANDROIDAPILEVEL_METHODDEF \
+ {"getandroidapilevel", (PyCFunction)sys_getandroidapilevel, METH_NOARGS, sys_getandroidapilevel__doc__},
+
+static PyObject *
+sys_getandroidapilevel_impl(PyObject *module);
+
+static PyObject *
+sys_getandroidapilevel(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return sys_getandroidapilevel_impl(module);
+}
+
+#endif /* defined(ANDROID_API_LEVEL) */
+
+#ifndef SYS_GETWINDOWSVERSION_METHODDEF
+ #define SYS_GETWINDOWSVERSION_METHODDEF
+#endif /* !defined(SYS_GETWINDOWSVERSION_METHODDEF) */
+
+#ifndef SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF
+ #define SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF
+#endif /* !defined(SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF) */
+
+#ifndef SYS_SETDLOPENFLAGS_METHODDEF
+ #define SYS_SETDLOPENFLAGS_METHODDEF
+#endif /* !defined(SYS_SETDLOPENFLAGS_METHODDEF) */
+
+#ifndef SYS_GETDLOPENFLAGS_METHODDEF
+ #define SYS_GETDLOPENFLAGS_METHODDEF
+#endif /* !defined(SYS_GETDLOPENFLAGS_METHODDEF) */
+
+#ifndef SYS_MDEBUG_METHODDEF
+ #define SYS_MDEBUG_METHODDEF
+#endif /* !defined(SYS_MDEBUG_METHODDEF) */
+
+#ifndef SYS_GETTOTALREFCOUNT_METHODDEF
+ #define SYS_GETTOTALREFCOUNT_METHODDEF
+#endif /* !defined(SYS_GETTOTALREFCOUNT_METHODDEF) */
+
+#ifndef SYS_GETANDROIDAPILEVEL_METHODDEF
+ #define SYS_GETANDROIDAPILEVEL_METHODDEF
+#endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */
+/*[clinic end generated code: output=39eb34a01fb9a919 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Python/clinic/traceback.c.h b/contrib/tools/python3/src/Python/clinic/traceback.c.h
index 0fc5c844eb..04daf2a376 100644
--- a/contrib/tools/python3/src/Python/clinic/traceback.c.h
+++ b/contrib/tools/python3/src/Python/clinic/traceback.c.h
@@ -17,46 +17,46 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
static const char * const _keywords[] = {"tb_next", "tb_frame", "tb_lasti", "tb_lineno", NULL};
- static _PyArg_Parser _parser = {NULL, _keywords, "TracebackType", 0};
- PyObject *argsbuf[4];
- PyObject * const *fastargs;
- Py_ssize_t nargs = PyTuple_GET_SIZE(args);
+ static _PyArg_Parser _parser = {NULL, _keywords, "TracebackType", 0};
+ PyObject *argsbuf[4];
+ PyObject * const *fastargs;
+ Py_ssize_t nargs = PyTuple_GET_SIZE(args);
PyObject *tb_next;
PyFrameObject *tb_frame;
int tb_lasti;
int tb_lineno;
- fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 4, 4, 0, argsbuf);
- if (!fastargs) {
+ fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 4, 4, 0, argsbuf);
+ if (!fastargs) {
+ goto exit;
+ }
+ tb_next = fastargs[0];
+ if (!PyObject_TypeCheck(fastargs[1], &PyFrame_Type)) {
+ _PyArg_BadArgument("TracebackType", "argument 'tb_frame'", (&PyFrame_Type)->tp_name, fastargs[1]);
+ goto exit;
+ }
+ tb_frame = (PyFrameObject *)fastargs[1];
+ if (PyFloat_Check(fastargs[2])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ tb_lasti = _PyLong_AsInt(fastargs[2]);
+ if (tb_lasti == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ if (PyFloat_Check(fastargs[3])) {
+ PyErr_SetString(PyExc_TypeError,
+ "integer argument expected, got float" );
+ goto exit;
+ }
+ tb_lineno = _PyLong_AsInt(fastargs[3]);
+ if (tb_lineno == -1 && PyErr_Occurred()) {
goto exit;
}
- tb_next = fastargs[0];
- if (!PyObject_TypeCheck(fastargs[1], &PyFrame_Type)) {
- _PyArg_BadArgument("TracebackType", "argument 'tb_frame'", (&PyFrame_Type)->tp_name, fastargs[1]);
- goto exit;
- }
- tb_frame = (PyFrameObject *)fastargs[1];
- if (PyFloat_Check(fastargs[2])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- tb_lasti = _PyLong_AsInt(fastargs[2]);
- if (tb_lasti == -1 && PyErr_Occurred()) {
- goto exit;
- }
- if (PyFloat_Check(fastargs[3])) {
- PyErr_SetString(PyExc_TypeError,
- "integer argument expected, got float" );
- goto exit;
- }
- tb_lineno = _PyLong_AsInt(fastargs[3]);
- if (tb_lineno == -1 && PyErr_Occurred()) {
- goto exit;
- }
return_value = tb_new_impl(type, tb_next, tb_frame, tb_lasti, tb_lineno);
exit:
return return_value;
}
-/*[clinic end generated code: output=3def6c06248feed8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3def6c06248feed8 input=a9049054013a1b77]*/
diff --git a/contrib/tools/python3/src/Python/codecs.c b/contrib/tools/python3/src/Python/codecs.c
index 1970cb6180..0f18c27e5f 100644
--- a/contrib/tools/python3/src/Python/codecs.c
+++ b/contrib/tools/python3/src/Python/codecs.c
@@ -9,8 +9,8 @@ Copyright (c) Corporation for National Research Initiatives.
------------------------------------------------------------------------ */
#include "Python.h"
-#include "pycore_interp.h" // PyInterpreterState.codec_search_path
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_interp.h" // PyInterpreterState.codec_search_path
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "ucnhash.h"
#include <ctype.h>
@@ -33,7 +33,7 @@ static int _PyCodecRegistry_Init(void); /* Forward */
int PyCodec_Register(PyObject *search_function)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
goto onError;
if (search_function == NULL) {
@@ -50,16 +50,16 @@ int PyCodec_Register(PyObject *search_function)
return -1;
}
-extern int _Py_normalize_encoding(const char *, char *, size_t);
+extern int _Py_normalize_encoding(const char *, char *, size_t);
+
+/* Convert a string to a normalized Python string(decoded from UTF-8): all characters are
+ converted to lower case, spaces and hyphens are replaced with underscores. */
-/* Convert a string to a normalized Python string(decoded from UTF-8): all characters are
- converted to lower case, spaces and hyphens are replaced with underscores. */
-
static
PyObject *normalizestring(const char *string)
{
size_t len = strlen(string);
- char *encoding;
+ char *encoding;
PyObject *v;
if (len > PY_SSIZE_T_MAX) {
@@ -67,19 +67,19 @@ PyObject *normalizestring(const char *string)
return NULL;
}
- encoding = PyMem_Malloc(len + 1);
- if (encoding == NULL)
+ encoding = PyMem_Malloc(len + 1);
+ if (encoding == NULL)
return PyErr_NoMemory();
-
- if (!_Py_normalize_encoding(string, encoding, len + 1))
- {
- PyErr_SetString(PyExc_RuntimeError, "_Py_normalize_encoding() failed");
- PyMem_Free(encoding);
- return NULL;
+
+ if (!_Py_normalize_encoding(string, encoding, len + 1))
+ {
+ PyErr_SetString(PyExc_RuntimeError, "_Py_normalize_encoding() failed");
+ PyMem_Free(encoding);
+ return NULL;
}
-
- v = PyUnicode_FromString(encoding);
- PyMem_Free(encoding);
+
+ v = PyUnicode_FromString(encoding);
+ PyMem_Free(encoding);
return v;
}
@@ -102,36 +102,36 @@ PyObject *_PyCodec_Lookup(const char *encoding)
{
if (encoding == NULL) {
PyErr_BadArgument();
- return NULL;
+ return NULL;
}
- PyInterpreterState *interp = _PyInterpreterState_GET();
- if (interp->codec_search_path == NULL && _PyCodecRegistry_Init()) {
- return NULL;
- }
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ if (interp->codec_search_path == NULL && _PyCodecRegistry_Init()) {
+ return NULL;
+ }
/* Convert the encoding to a normalized Python string: all
characters are converted to lower case, spaces and hyphens are
replaced with underscores. */
- PyObject *v = normalizestring(encoding);
- if (v == NULL) {
- return NULL;
- }
+ PyObject *v = normalizestring(encoding);
+ if (v == NULL) {
+ return NULL;
+ }
PyUnicode_InternInPlace(&v);
/* First, try to lookup the name in the registry dictionary */
- PyObject *result = PyDict_GetItemWithError(interp->codec_search_cache, v);
+ PyObject *result = PyDict_GetItemWithError(interp->codec_search_cache, v);
if (result != NULL) {
Py_INCREF(result);
Py_DECREF(v);
return result;
}
- else if (PyErr_Occurred()) {
- goto onError;
- }
+ else if (PyErr_Occurred()) {
+ goto onError;
+ }
/* Next, scan the search functions in order of registration */
- const Py_ssize_t len = PyList_Size(interp->codec_search_path);
+ const Py_ssize_t len = PyList_Size(interp->codec_search_path);
if (len < 0)
goto onError;
if (len == 0) {
@@ -141,14 +141,14 @@ PyObject *_PyCodec_Lookup(const char *encoding)
goto onError;
}
- Py_ssize_t i;
+ Py_ssize_t i;
for (i = 0; i < len; i++) {
PyObject *func;
func = PyList_GetItem(interp->codec_search_path, i);
if (func == NULL)
goto onError;
- result = PyObject_CallOneArg(func, v);
+ result = PyObject_CallOneArg(func, v);
if (result == NULL)
goto onError;
if (result == Py_None) {
@@ -175,11 +175,11 @@ PyObject *_PyCodec_Lookup(const char *encoding)
Py_DECREF(result);
goto onError;
}
- Py_DECREF(v);
+ Py_DECREF(v);
return result;
onError:
- Py_DECREF(v);
+ Py_DECREF(v);
return NULL;
}
@@ -188,7 +188,7 @@ int _PyCodec_Forget(const char *encoding)
PyObject *v;
int result;
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL) {
return -1;
}
@@ -318,7 +318,7 @@ PyObject *codec_getstreamcodec(const char *encoding,
if (errors != NULL)
streamcodec = PyObject_CallFunction(codeccls, "Os", stream, errors);
else
- streamcodec = PyObject_CallOneArg(codeccls, stream);
+ streamcodec = PyObject_CallOneArg(codeccls, stream);
Py_DECREF(codecs);
return streamcodec;
}
@@ -417,7 +417,7 @@ _PyCodec_EncodeInternal(PyObject *object,
if (args == NULL)
goto onError;
- result = PyObject_Call(encoder, args, NULL);
+ result = PyObject_Call(encoder, args, NULL);
if (result == NULL) {
wrap_codec_error("encoding", encoding);
goto onError;
@@ -463,7 +463,7 @@ _PyCodec_DecodeInternal(PyObject *object,
if (args == NULL)
goto onError;
- result = PyObject_Call(decoder, args, NULL);
+ result = PyObject_Call(decoder, args, NULL);
if (result == NULL) {
wrap_codec_error("decoding", encoding);
goto onError;
@@ -621,7 +621,7 @@ PyObject *_PyCodec_DecodeText(PyObject *object,
Return 0 on success, -1 on error */
int PyCodec_RegisterError(const char *name, PyObject *error)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
return -1;
if (!PyCallable_Check(error)) {
@@ -639,19 +639,19 @@ PyObject *PyCodec_LookupError(const char *name)
{
PyObject *handler = NULL;
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
return NULL;
if (name==NULL)
name = "strict";
- handler = _PyDict_GetItemStringWithError(interp->codec_error_registry, name);
- if (handler) {
- Py_INCREF(handler);
- }
- else if (!PyErr_Occurred()) {
+ handler = _PyDict_GetItemStringWithError(interp->codec_error_registry, name);
+ if (handler) {
+ Py_INCREF(handler);
+ }
+ else if (!PyErr_Occurred()) {
PyErr_Format(PyExc_LookupError, "unknown error handler name '%.400s'", name);
- }
+ }
return handler;
}
@@ -659,7 +659,7 @@ static void wrong_exception_type(PyObject *exc)
{
PyErr_Format(PyExc_TypeError,
"don't know how to handle %.200s in error callback",
- Py_TYPE(exc)->tp_name);
+ Py_TYPE(exc)->tp_name);
}
PyObject *PyCodec_StrictErrors(PyObject *exc)
@@ -702,7 +702,7 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeEncodeError)) {
PyObject *res;
- Py_UCS1 *outp;
+ Py_UCS1 *outp;
if (PyUnicodeEncodeError_GetStart(exc, &start))
return NULL;
if (PyUnicodeEncodeError_GetEnd(exc, &end))
@@ -711,10 +711,10 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
res = PyUnicode_New(len, '?');
if (res == NULL)
return NULL;
- assert(PyUnicode_KIND(res) == PyUnicode_1BYTE_KIND);
- outp = PyUnicode_1BYTE_DATA(res);
+ assert(PyUnicode_KIND(res) == PyUnicode_1BYTE_KIND);
+ outp = PyUnicode_1BYTE_DATA(res);
for (i = 0; i < len; ++i)
- outp[i] = '?';
+ outp[i] = '?';
assert(_PyUnicode_CheckConsistency(res, 1));
return Py_BuildValue("(Nn)", res, end);
}
@@ -727,7 +727,7 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
}
else if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeTranslateError)) {
PyObject *res;
- Py_UCS2 *outp;
+ Py_UCS2 *outp;
if (PyUnicodeTranslateError_GetStart(exc, &start))
return NULL;
if (PyUnicodeTranslateError_GetEnd(exc, &end))
@@ -736,10 +736,10 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
res = PyUnicode_New(len, Py_UNICODE_REPLACEMENT_CHARACTER);
if (res == NULL)
return NULL;
- assert(PyUnicode_KIND(res) == PyUnicode_2BYTE_KIND);
- outp = PyUnicode_2BYTE_DATA(res);
- for (i = 0; i < len; i++)
- outp[i] = Py_UNICODE_REPLACEMENT_CHARACTER;
+ assert(PyUnicode_KIND(res) == PyUnicode_2BYTE_KIND);
+ outp = PyUnicode_2BYTE_DATA(res);
+ for (i = 0; i < len; i++)
+ outp[i] = Py_UNICODE_REPLACEMENT_CHARACTER;
assert(_PyUnicode_CheckConsistency(res, 1));
return Py_BuildValue("(Nn)", res, end);
}
@@ -758,7 +758,7 @@ PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
Py_ssize_t start;
Py_ssize_t end;
PyObject *res;
- Py_UCS1 *outp;
+ Py_UCS1 *outp;
Py_ssize_t ressize;
Py_UCS4 ch;
if (PyUnicodeEncodeError_GetStart(exc, &start))
@@ -854,7 +854,7 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
Py_ssize_t start;
Py_ssize_t end;
PyObject *res;
- Py_UCS1 *outp;
+ Py_UCS1 *outp;
int ressize;
Py_UCS4 c;
@@ -965,7 +965,7 @@ PyObject *PyCodec_NameReplaceErrors(PyObject *exc)
Py_ssize_t start;
Py_ssize_t end;
PyObject *res;
- Py_UCS1 *outp;
+ Py_UCS1 *outp;
Py_ssize_t ressize;
int replsize;
Py_UCS4 c;
@@ -1406,7 +1406,7 @@ static PyObject *surrogateescape_errors(PyObject *self, PyObject *exc)
static int _PyCodecRegistry_Init(void)
{
static struct {
- const char *name;
+ const char *name;
PyMethodDef def;
} methods[] =
{
@@ -1491,38 +1491,38 @@ static int _PyCodecRegistry_Init(void)
}
};
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
PyObject *mod;
if (interp->codec_search_path != NULL)
return 0;
interp->codec_search_path = PyList_New(0);
- if (interp->codec_search_path == NULL) {
- return -1;
- }
-
+ if (interp->codec_search_path == NULL) {
+ return -1;
+ }
+
interp->codec_search_cache = PyDict_New();
- if (interp->codec_search_cache == NULL) {
- return -1;
- }
-
+ if (interp->codec_search_cache == NULL) {
+ return -1;
+ }
+
interp->codec_error_registry = PyDict_New();
- if (interp->codec_error_registry == NULL) {
- return -1;
- }
-
- for (size_t i = 0; i < Py_ARRAY_LENGTH(methods); ++i) {
- PyObject *func = PyCFunction_NewEx(&methods[i].def, NULL, NULL);
- if (!func) {
- return -1;
+ if (interp->codec_error_registry == NULL) {
+ return -1;
+ }
+
+ for (size_t i = 0; i < Py_ARRAY_LENGTH(methods); ++i) {
+ PyObject *func = PyCFunction_NewEx(&methods[i].def, NULL, NULL);
+ if (!func) {
+ return -1;
+ }
+
+ int res = PyCodec_RegisterError(methods[i].name, func);
+ Py_DECREF(func);
+ if (res) {
+ return -1;
}
-
- int res = PyCodec_RegisterError(methods[i].name, func);
- Py_DECREF(func);
- if (res) {
- return -1;
- }
}
mod = PyImport_ImportModuleNoBlock("encodings");
diff --git a/contrib/tools/python3/src/Python/compile.c b/contrib/tools/python3/src/Python/compile.c
index 8c45ea6558..f426050cce 100644
--- a/contrib/tools/python3/src/Python/compile.c
+++ b/contrib/tools/python3/src/Python/compile.c
@@ -40,10 +40,10 @@
#define COMP_SETCOMP 2
#define COMP_DICTCOMP 3
-#define IS_TOP_LEVEL_AWAIT(c) ( \
- (c->c_flags->cf_flags & PyCF_ALLOW_TOP_LEVEL_AWAIT) \
- && (c->u->u_ste->ste_type == ModuleBlock))
-
+#define IS_TOP_LEVEL_AWAIT(c) ( \
+ (c->c_flags->cf_flags & PyCF_ALLOW_TOP_LEVEL_AWAIT) \
+ && (c->u->u_ste->ste_type == ModuleBlock))
+
struct instr {
unsigned i_jabs : 1;
unsigned i_jrel : 1;
@@ -84,16 +84,16 @@ It's called a frame block to distinguish it from a basic block in the
compiler IR.
*/
-enum fblocktype { WHILE_LOOP, FOR_LOOP, TRY_EXCEPT, FINALLY_TRY, FINALLY_END,
- WITH, ASYNC_WITH, HANDLER_CLEANUP, POP_VALUE, EXCEPTION_HANDLER };
+enum fblocktype { WHILE_LOOP, FOR_LOOP, TRY_EXCEPT, FINALLY_TRY, FINALLY_END,
+ WITH, ASYNC_WITH, HANDLER_CLEANUP, POP_VALUE, EXCEPTION_HANDLER };
struct fblockinfo {
enum fblocktype fb_type;
basicblock *fb_block;
- /* (optional) type-specific exit or cleanup block */
- basicblock *fb_exit;
- /* (optional) additional information required for unwinding */
- void *fb_datum;
+ /* (optional) type-specific exit or cleanup block */
+ basicblock *fb_exit;
+ /* (optional) additional information required for unwinding */
+ void *fb_datum;
};
enum {
@@ -128,7 +128,7 @@ struct compiler_unit {
PyObject *u_private; /* for private name mangling */
Py_ssize_t u_argcount; /* number of arguments for block */
- Py_ssize_t u_posonlyargcount; /* number of positional only arguments for block */
+ Py_ssize_t u_posonlyargcount; /* number of positional only arguments for block */
Py_ssize_t u_kwonlyargcount; /* number of keyword only arguments for block */
/* Pointer to the most recently allocated block. By following b_list
members, you can reach all early allocated blocks. */
@@ -164,14 +164,14 @@ struct compiler {
int c_optimize; /* optimization level */
int c_interactive; /* true if in interactive mode */
int c_nestlevel;
- int c_do_not_emit_bytecode; /* The compiler won't emit any bytecode
- if this value is different from zero.
- This can be used to temporarily visit
- nodes without emitting bytecode to
- check only errors. */
-
- PyObject *c_const_cache; /* Python dict holding all constants,
- including names tuple */
+ int c_do_not_emit_bytecode; /* The compiler won't emit any bytecode
+ if this value is different from zero.
+ This can be used to temporarily visit
+ nodes without emitting bytecode to
+ check only errors. */
+
+ PyObject *c_const_cache; /* Python dict holding all constants,
+ including names tuple */
struct compiler_unit *u; /* compiler state for current block */
PyObject *c_stack; /* Python list holding compiler_unit ptrs */
PyArena *c_arena; /* pointer to memory allocation arena */
@@ -180,12 +180,12 @@ struct compiler {
static int compiler_enter_scope(struct compiler *, identifier, int, void *, int);
static void compiler_free(struct compiler *);
static basicblock *compiler_new_block(struct compiler *);
-static int compiler_next_instr(basicblock *);
+static int compiler_next_instr(basicblock *);
static int compiler_addop(struct compiler *, int);
static int compiler_addop_i(struct compiler *, int, Py_ssize_t);
static int compiler_addop_j(struct compiler *, int, basicblock *, int);
static int compiler_error(struct compiler *, const char *);
-static int compiler_warn(struct compiler *, const char *, ...);
+static int compiler_warn(struct compiler *, const char *, ...);
static int compiler_nameop(struct compiler *, identifier, expr_context_ty);
static PyCodeObject *compiler_mod(struct compiler *, mod_ty);
@@ -194,11 +194,11 @@ static int compiler_visit_keyword(struct compiler *, keyword_ty);
static int compiler_visit_expr(struct compiler *, expr_ty);
static int compiler_augassign(struct compiler *, stmt_ty);
static int compiler_annassign(struct compiler *, stmt_ty);
-static int compiler_subscript(struct compiler *, expr_ty);
-static int compiler_slice(struct compiler *, expr_ty);
+static int compiler_subscript(struct compiler *, expr_ty);
+static int compiler_slice(struct compiler *, expr_ty);
-static int inplace_binop(operator_ty);
-static int are_all_items_const(asdl_seq *, Py_ssize_t, Py_ssize_t);
+static int inplace_binop(operator_ty);
+static int are_all_items_const(asdl_seq *, Py_ssize_t, Py_ssize_t);
static int expr_constant(expr_ty);
static int compiler_with(struct compiler *, stmt_ty, int);
@@ -213,13 +213,13 @@ static int compiler_set_qualname(struct compiler *);
static int compiler_sync_comprehension_generator(
struct compiler *c,
asdl_seq *generators, int gen_index,
- int depth,
+ int depth,
expr_ty elt, expr_ty val, int type);
static int compiler_async_comprehension_generator(
struct compiler *c,
asdl_seq *generators, int gen_index,
- int depth,
+ int depth,
expr_ty elt, expr_ty val, int type);
static PyCodeObject *assemble(struct compiler *, int addNone);
@@ -300,16 +300,16 @@ compiler_init(struct compiler *c)
{
memset(c, 0, sizeof(struct compiler));
- c->c_const_cache = PyDict_New();
- if (!c->c_const_cache) {
- return 0;
- }
-
+ c->c_const_cache = PyDict_New();
+ if (!c->c_const_cache) {
+ return 0;
+ }
+
c->c_stack = PyList_New(0);
- if (!c->c_stack) {
- Py_CLEAR(c->c_const_cache);
+ if (!c->c_stack) {
+ Py_CLEAR(c->c_const_cache);
return 0;
- }
+ }
return 1;
}
@@ -320,7 +320,7 @@ PyAST_CompileObject(mod_ty mod, PyObject *filename, PyCompilerFlags *flags,
{
struct compiler c;
PyCodeObject *co = NULL;
- PyCompilerFlags local_flags = _PyCompilerFlags_INIT;
+ PyCompilerFlags local_flags = _PyCompilerFlags_INIT;
int merged;
if (!__doc__) {
@@ -348,15 +348,15 @@ PyAST_CompileObject(mod_ty mod, PyObject *filename, PyCompilerFlags *flags,
c.c_future->ff_features = merged;
flags->cf_flags = merged;
c.c_flags = flags;
- c.c_optimize = (optimize == -1) ? _Py_GetConfig()->optimization_level : optimize;
+ c.c_optimize = (optimize == -1) ? _Py_GetConfig()->optimization_level : optimize;
c.c_nestlevel = 0;
- c.c_do_not_emit_bytecode = 0;
+ c.c_do_not_emit_bytecode = 0;
- _PyASTOptimizeState state;
- state.optimize = c.c_optimize;
- state.ff_features = merged;
-
- if (!_PyAST_Optimize(mod, arena, &state)) {
+ _PyASTOptimizeState state;
+ state.optimize = c.c_optimize;
+ state.ff_features = merged;
+
+ if (!_PyAST_Optimize(mod, arena, &state)) {
goto finally;
}
@@ -413,7 +413,7 @@ compiler_free(struct compiler *c)
if (c->c_future)
PyObject_Free(c->c_future);
Py_XDECREF(c->c_filename);
- Py_DECREF(c->c_const_cache);
+ Py_DECREF(c->c_const_cache);
Py_DECREF(c->c_stack);
}
@@ -433,7 +433,7 @@ list2dict(PyObject *list)
return NULL;
}
k = PyList_GET_ITEM(list, i);
- if (PyDict_SetItem(dict, k, v) < 0) {
+ if (PyDict_SetItem(dict, k, v) < 0) {
Py_DECREF(v);
Py_DECREF(dict);
return NULL;
@@ -486,14 +486,14 @@ dictbytype(PyObject *src, int scope_type, int flag, Py_ssize_t offset)
scope = (vi >> SCOPE_OFFSET) & SCOPE_MASK;
if (scope == scope_type || vi & flag) {
- PyObject *item = PyLong_FromSsize_t(i);
+ PyObject *item = PyLong_FromSsize_t(i);
if (item == NULL) {
Py_DECREF(sorted_keys);
Py_DECREF(dest);
return NULL;
}
i++;
- if (PyDict_SetItem(dest, k, item) < 0) {
+ if (PyDict_SetItem(dest, k, item) < 0) {
Py_DECREF(sorted_keys);
Py_DECREF(item);
Py_DECREF(dest);
@@ -559,7 +559,7 @@ compiler_enter_scope(struct compiler *c, identifier name,
struct compiler_unit *u;
basicblock *block;
- u = (struct compiler_unit *)PyObject_Calloc(1, sizeof(
+ u = (struct compiler_unit *)PyObject_Calloc(1, sizeof(
struct compiler_unit));
if (!u) {
PyErr_NoMemory();
@@ -567,7 +567,7 @@ compiler_enter_scope(struct compiler *c, identifier name,
}
u->u_scope_type = scope_type;
u->u_argcount = 0;
- u->u_posonlyargcount = 0;
+ u->u_posonlyargcount = 0;
u->u_kwonlyargcount = 0;
u->u_ste = PySymtable_Lookup(c->c_st, key);
if (!u->u_ste) {
@@ -585,7 +585,7 @@ compiler_enter_scope(struct compiler *c, identifier name,
if (u->u_ste->ste_needs_class_closure) {
/* Cook up an implicit __class__ cell. */
_Py_IDENTIFIER(__class__);
- PyObject *name;
+ PyObject *name;
int res;
assert(u->u_scope_type == COMPILER_SCOPE_CLASS);
assert(PyDict_GET_SIZE(u->u_cellvars) == 0);
@@ -594,7 +594,7 @@ compiler_enter_scope(struct compiler *c, identifier name,
compiler_unit_free(u);
return 0;
}
- res = PyDict_SetItem(u->u_cellvars, name, _PyLong_Zero);
+ res = PyDict_SetItem(u->u_cellvars, name, _PyLong_Zero);
if (res < 0) {
compiler_unit_free(u);
return 0;
@@ -767,7 +767,7 @@ compiler_new_block(struct compiler *c)
struct compiler_unit *u;
u = c->u;
- b = (basicblock *)PyObject_Calloc(1, sizeof(basicblock));
+ b = (basicblock *)PyObject_Calloc(1, sizeof(basicblock));
if (b == NULL) {
PyErr_NoMemory();
return NULL;
@@ -804,12 +804,12 @@ compiler_use_next_block(struct compiler *c, basicblock *block)
*/
static int
-compiler_next_instr(basicblock *b)
+compiler_next_instr(basicblock *b)
{
assert(b != NULL);
if (b->b_instr == NULL) {
- b->b_instr = (struct instr *)PyObject_Calloc(
- DEFAULT_BLOCK_SIZE, sizeof(struct instr));
+ b->b_instr = (struct instr *)PyObject_Calloc(
+ DEFAULT_BLOCK_SIZE, sizeof(struct instr));
if (b->b_instr == NULL) {
PyErr_NoMemory();
return -1;
@@ -844,18 +844,18 @@ compiler_next_instr(basicblock *b)
return b->b_iused++;
}
-/* Set the line number and column offset for the following instructions.
+/* Set the line number and column offset for the following instructions.
The line number is reset in the following cases:
- when entering a new scope
- on each statement
- - on each expression and sub-expression
- - before the "except" and "finally" clauses
+ - on each expression and sub-expression
+ - before the "except" and "finally" clauses
*/
-#define SET_LOC(c, x) \
- (c)->u->u_lineno = (x)->lineno; \
- (c)->u->u_col_offset = (x)->col_offset;
+#define SET_LOC(c, x) \
+ (c)->u->u_lineno = (x)->lineno; \
+ (c)->u->u_col_offset = (x)->col_offset;
/* Return the stack effect of opcode with argument oparg.
@@ -872,16 +872,16 @@ static int
stack_effect(int opcode, int oparg, int jump)
{
switch (opcode) {
- case NOP:
- case EXTENDED_ARG:
- return 0;
-
+ case NOP:
+ case EXTENDED_ARG:
+ return 0;
+
/* Stack manipulation */
case POP_TOP:
return -1;
case ROT_TWO:
case ROT_THREE:
- case ROT_FOUR:
+ case ROT_FOUR:
return 0;
case DUP_TOP:
return 1;
@@ -948,7 +948,7 @@ stack_effect(int opcode, int oparg, int jump)
case INPLACE_XOR:
case INPLACE_OR:
return -1;
-
+
case SETUP_WITH:
/* 1 in the normal flow.
* Restore the stack position and push 6 values before jumping to
@@ -1005,11 +1005,11 @@ stack_effect(int opcode, int oparg, int jump)
case LOAD_ATTR:
return 0;
case COMPARE_OP:
- case IS_OP:
- case CONTAINS_OP:
+ case IS_OP:
+ case CONTAINS_OP:
return -1;
- case JUMP_IF_NOT_EXC_MATCH:
- return -2;
+ case JUMP_IF_NOT_EXC_MATCH:
+ return -2;
case IMPORT_NAME:
return -1;
case IMPORT_FROM:
@@ -1031,18 +1031,18 @@ stack_effect(int opcode, int oparg, int jump)
case LOAD_GLOBAL:
return 1;
- /* Exception handling */
+ /* Exception handling */
case SETUP_FINALLY:
/* 0 in the normal flow.
* Restore the stack position and push 6 values before jumping to
* the handler if an exception be raised. */
return jump ? 6 : 0;
- case RERAISE:
- return -3;
+ case RERAISE:
+ return -3;
+
+ case WITH_EXCEPT_START:
+ return 1;
- case WITH_EXCEPT_START:
- return 1;
-
case LOAD_FAST:
return 1;
case STORE_FAST:
@@ -1099,23 +1099,23 @@ stack_effect(int opcode, int oparg, int jump)
return 1;
case GET_YIELD_FROM_ITER:
return 0;
- case END_ASYNC_FOR:
- return -7;
+ case END_ASYNC_FOR:
+ return -7;
case FORMAT_VALUE:
/* If there's a fmt_spec on the stack, we go from 2->1,
else 1->1. */
return (oparg & FVS_MASK) == FVS_HAVE_SPEC ? -1 : 0;
case LOAD_METHOD:
return 1;
- case LOAD_ASSERTION_ERROR:
- return 1;
- case LIST_TO_TUPLE:
- return 0;
- case LIST_EXTEND:
- case SET_UPDATE:
- case DICT_MERGE:
- case DICT_UPDATE:
- return -1;
+ case LOAD_ASSERTION_ERROR:
+ return 1;
+ case LIST_TO_TUPLE:
+ return 0;
+ case LIST_EXTEND:
+ case SET_UPDATE:
+ case DICT_MERGE:
+ case DICT_UPDATE:
+ return -1;
default:
return PY_INVALID_STACK_EFFECT;
}
@@ -1123,12 +1123,12 @@ stack_effect(int opcode, int oparg, int jump)
}
int
-PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int jump)
-{
- return stack_effect(opcode, oparg, jump);
-}
-
-int
+PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int jump)
+{
+ return stack_effect(opcode, oparg, jump);
+}
+
+int
PyCompile_OpcodeStackEffect(int opcode, int oparg)
{
return stack_effect(opcode, oparg, -1);
@@ -1145,10 +1145,10 @@ compiler_addop(struct compiler *c, int opcode)
struct instr *i;
int off;
assert(!HAS_ARG(opcode));
- if (c->c_do_not_emit_bytecode) {
- return 1;
- }
- off = compiler_next_instr(c->u->u_curblock);
+ if (c->c_do_not_emit_bytecode) {
+ return 1;
+ }
+ off = compiler_next_instr(c->u->u_curblock);
if (off < 0)
return 0;
b = c->u->u_curblock;
@@ -1157,17 +1157,17 @@ compiler_addop(struct compiler *c, int opcode)
i->i_oparg = 0;
if (opcode == RETURN_VALUE)
b->b_return = 1;
- i->i_lineno = c->u->u_lineno;
+ i->i_lineno = c->u->u_lineno;
return 1;
}
static Py_ssize_t
-compiler_add_o(PyObject *dict, PyObject *o)
+compiler_add_o(PyObject *dict, PyObject *o)
{
- PyObject *v;
+ PyObject *v;
Py_ssize_t arg;
- v = PyDict_GetItemWithError(dict, o);
+ v = PyDict_GetItemWithError(dict, o);
if (!v) {
if (PyErr_Occurred()) {
return -1;
@@ -1177,7 +1177,7 @@ compiler_add_o(PyObject *dict, PyObject *o)
if (!v) {
return -1;
}
- if (PyDict_SetItem(dict, o, v) < 0) {
+ if (PyDict_SetItem(dict, o, v) < 0) {
Py_DECREF(v);
return -1;
}
@@ -1188,155 +1188,155 @@ compiler_add_o(PyObject *dict, PyObject *o)
return arg;
}
-// Merge const *o* recursively and return constant key object.
-static PyObject*
-merge_consts_recursive(struct compiler *c, PyObject *o)
-{
- // None and Ellipsis are singleton, and key is the singleton.
- // No need to merge object and key.
- if (o == Py_None || o == Py_Ellipsis) {
- Py_INCREF(o);
- return o;
- }
-
- PyObject *key = _PyCode_ConstantKey(o);
- if (key == NULL) {
- return NULL;
- }
-
- // t is borrowed reference
- PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key);
- if (t != key) {
- // o is registered in c_const_cache. Just use it.
- Py_XINCREF(t);
- Py_DECREF(key);
- return t;
- }
-
- // We registered o in c_const_cache.
- // When o is a tuple or frozenset, we want to merge its
- // items too.
- if (PyTuple_CheckExact(o)) {
- Py_ssize_t len = PyTuple_GET_SIZE(o);
- for (Py_ssize_t i = 0; i < len; i++) {
- PyObject *item = PyTuple_GET_ITEM(o, i);
- PyObject *u = merge_consts_recursive(c, item);
- if (u == NULL) {
- Py_DECREF(key);
- return NULL;
- }
-
- // See _PyCode_ConstantKey()
- PyObject *v; // borrowed
- if (PyTuple_CheckExact(u)) {
- v = PyTuple_GET_ITEM(u, 1);
- }
- else {
- v = u;
- }
- if (v != item) {
- Py_INCREF(v);
- PyTuple_SET_ITEM(o, i, v);
- Py_DECREF(item);
- }
-
- Py_DECREF(u);
- }
- }
- else if (PyFrozenSet_CheckExact(o)) {
- // *key* is tuple. And its first item is frozenset of
- // constant keys.
- // See _PyCode_ConstantKey() for detail.
- assert(PyTuple_CheckExact(key));
- assert(PyTuple_GET_SIZE(key) == 2);
-
- Py_ssize_t len = PySet_GET_SIZE(o);
- if (len == 0) { // empty frozenset should not be re-created.
- return key;
- }
- PyObject *tuple = PyTuple_New(len);
- if (tuple == NULL) {
- Py_DECREF(key);
- return NULL;
- }
- Py_ssize_t i = 0, pos = 0;
- PyObject *item;
- Py_hash_t hash;
- while (_PySet_NextEntry(o, &pos, &item, &hash)) {
- PyObject *k = merge_consts_recursive(c, item);
- if (k == NULL) {
- Py_DECREF(tuple);
- Py_DECREF(key);
- return NULL;
- }
- PyObject *u;
- if (PyTuple_CheckExact(k)) {
- u = PyTuple_GET_ITEM(k, 1);
- Py_INCREF(u);
- Py_DECREF(k);
- }
- else {
- u = k;
- }
- PyTuple_SET_ITEM(tuple, i, u); // Steals reference of u.
- i++;
- }
-
- // Instead of rewriting o, we create new frozenset and embed in the
- // key tuple. Caller should get merged frozenset from the key tuple.
- PyObject *new = PyFrozenSet_New(tuple);
- Py_DECREF(tuple);
- if (new == NULL) {
- Py_DECREF(key);
- return NULL;
- }
- assert(PyTuple_GET_ITEM(key, 1) == o);
- Py_DECREF(o);
- PyTuple_SET_ITEM(key, 1, new);
- }
-
- return key;
-}
-
-static Py_ssize_t
-compiler_add_const(struct compiler *c, PyObject *o)
-{
- if (c->c_do_not_emit_bytecode) {
- return 0;
- }
-
- PyObject *key = merge_consts_recursive(c, o);
- if (key == NULL) {
- return -1;
- }
-
- Py_ssize_t arg = compiler_add_o(c->u->u_consts, key);
- Py_DECREF(key);
- return arg;
-}
-
+// Merge const *o* recursively and return constant key object.
+static PyObject*
+merge_consts_recursive(struct compiler *c, PyObject *o)
+{
+ // None and Ellipsis are singleton, and key is the singleton.
+ // No need to merge object and key.
+ if (o == Py_None || o == Py_Ellipsis) {
+ Py_INCREF(o);
+ return o;
+ }
+
+ PyObject *key = _PyCode_ConstantKey(o);
+ if (key == NULL) {
+ return NULL;
+ }
+
+ // t is borrowed reference
+ PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key);
+ if (t != key) {
+ // o is registered in c_const_cache. Just use it.
+ Py_XINCREF(t);
+ Py_DECREF(key);
+ return t;
+ }
+
+ // We registered o in c_const_cache.
+ // When o is a tuple or frozenset, we want to merge its
+ // items too.
+ if (PyTuple_CheckExact(o)) {
+ Py_ssize_t len = PyTuple_GET_SIZE(o);
+ for (Py_ssize_t i = 0; i < len; i++) {
+ PyObject *item = PyTuple_GET_ITEM(o, i);
+ PyObject *u = merge_consts_recursive(c, item);
+ if (u == NULL) {
+ Py_DECREF(key);
+ return NULL;
+ }
+
+ // See _PyCode_ConstantKey()
+ PyObject *v; // borrowed
+ if (PyTuple_CheckExact(u)) {
+ v = PyTuple_GET_ITEM(u, 1);
+ }
+ else {
+ v = u;
+ }
+ if (v != item) {
+ Py_INCREF(v);
+ PyTuple_SET_ITEM(o, i, v);
+ Py_DECREF(item);
+ }
+
+ Py_DECREF(u);
+ }
+ }
+ else if (PyFrozenSet_CheckExact(o)) {
+ // *key* is tuple. And its first item is frozenset of
+ // constant keys.
+ // See _PyCode_ConstantKey() for detail.
+ assert(PyTuple_CheckExact(key));
+ assert(PyTuple_GET_SIZE(key) == 2);
+
+ Py_ssize_t len = PySet_GET_SIZE(o);
+ if (len == 0) { // empty frozenset should not be re-created.
+ return key;
+ }
+ PyObject *tuple = PyTuple_New(len);
+ if (tuple == NULL) {
+ Py_DECREF(key);
+ return NULL;
+ }
+ Py_ssize_t i = 0, pos = 0;
+ PyObject *item;
+ Py_hash_t hash;
+ while (_PySet_NextEntry(o, &pos, &item, &hash)) {
+ PyObject *k = merge_consts_recursive(c, item);
+ if (k == NULL) {
+ Py_DECREF(tuple);
+ Py_DECREF(key);
+ return NULL;
+ }
+ PyObject *u;
+ if (PyTuple_CheckExact(k)) {
+ u = PyTuple_GET_ITEM(k, 1);
+ Py_INCREF(u);
+ Py_DECREF(k);
+ }
+ else {
+ u = k;
+ }
+ PyTuple_SET_ITEM(tuple, i, u); // Steals reference of u.
+ i++;
+ }
+
+ // Instead of rewriting o, we create new frozenset and embed in the
+ // key tuple. Caller should get merged frozenset from the key tuple.
+ PyObject *new = PyFrozenSet_New(tuple);
+ Py_DECREF(tuple);
+ if (new == NULL) {
+ Py_DECREF(key);
+ return NULL;
+ }
+ assert(PyTuple_GET_ITEM(key, 1) == o);
+ Py_DECREF(o);
+ PyTuple_SET_ITEM(key, 1, new);
+ }
+
+ return key;
+}
+
+static Py_ssize_t
+compiler_add_const(struct compiler *c, PyObject *o)
+{
+ if (c->c_do_not_emit_bytecode) {
+ return 0;
+ }
+
+ PyObject *key = merge_consts_recursive(c, o);
+ if (key == NULL) {
+ return -1;
+ }
+
+ Py_ssize_t arg = compiler_add_o(c->u->u_consts, key);
+ Py_DECREF(key);
+ return arg;
+}
+
+static int
+compiler_addop_load_const(struct compiler *c, PyObject *o)
+{
+ if (c->c_do_not_emit_bytecode) {
+ return 1;
+ }
+
+ Py_ssize_t arg = compiler_add_const(c, o);
+ if (arg < 0)
+ return 0;
+ return compiler_addop_i(c, LOAD_CONST, arg);
+}
+
static int
-compiler_addop_load_const(struct compiler *c, PyObject *o)
-{
- if (c->c_do_not_emit_bytecode) {
- return 1;
- }
-
- Py_ssize_t arg = compiler_add_const(c, o);
- if (arg < 0)
- return 0;
- return compiler_addop_i(c, LOAD_CONST, arg);
-}
-
-static int
compiler_addop_o(struct compiler *c, int opcode, PyObject *dict,
PyObject *o)
{
- if (c->c_do_not_emit_bytecode) {
- return 1;
- }
-
- Py_ssize_t arg = compiler_add_o(dict, o);
+ if (c->c_do_not_emit_bytecode) {
+ return 1;
+ }
+
+ Py_ssize_t arg = compiler_add_o(dict, o);
if (arg < 0)
return 0;
return compiler_addop_i(c, opcode, arg);
@@ -1347,15 +1347,15 @@ compiler_addop_name(struct compiler *c, int opcode, PyObject *dict,
PyObject *o)
{
Py_ssize_t arg;
-
- if (c->c_do_not_emit_bytecode) {
- return 1;
- }
-
+
+ if (c->c_do_not_emit_bytecode) {
+ return 1;
+ }
+
PyObject *mangled = _Py_Mangle(c->u->u_private, o);
if (!mangled)
return 0;
- arg = compiler_add_o(dict, mangled);
+ arg = compiler_add_o(dict, mangled);
Py_DECREF(mangled);
if (arg < 0)
return 0;
@@ -1372,10 +1372,10 @@ compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg)
struct instr *i;
int off;
- if (c->c_do_not_emit_bytecode) {
- return 1;
- }
-
+ if (c->c_do_not_emit_bytecode) {
+ return 1;
+ }
+
/* oparg value is unsigned, but a signed C int is usually used to store
it in the C code (like Python/ceval.c).
@@ -1386,13 +1386,13 @@ compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg)
assert(HAS_ARG(opcode));
assert(0 <= oparg && oparg <= 2147483647);
- off = compiler_next_instr(c->u->u_curblock);
+ off = compiler_next_instr(c->u->u_curblock);
if (off < 0)
return 0;
i = &c->u->u_curblock->b_instr[off];
i->i_opcode = opcode;
i->i_oparg = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int);
- i->i_lineno = c->u->u_lineno;
+ i->i_lineno = c->u->u_lineno;
return 1;
}
@@ -1402,13 +1402,13 @@ compiler_addop_j(struct compiler *c, int opcode, basicblock *b, int absolute)
struct instr *i;
int off;
- if (c->c_do_not_emit_bytecode) {
- return 1;
- }
-
+ if (c->c_do_not_emit_bytecode) {
+ return 1;
+ }
+
assert(HAS_ARG(opcode));
assert(b != NULL);
- off = compiler_next_instr(c->u->u_curblock);
+ off = compiler_next_instr(c->u->u_curblock);
if (off < 0)
return 0;
i = &c->u->u_curblock->b_instr[off];
@@ -1418,7 +1418,7 @@ compiler_addop_j(struct compiler *c, int opcode, basicblock *b, int absolute)
i->i_jabs = 1;
else
i->i_jrel = 1;
- i->i_lineno = c->u->u_lineno;
+ i->i_lineno = c->u->u_lineno;
return 1;
}
@@ -1445,24 +1445,24 @@ compiler_addop_j(struct compiler *c, int opcode, basicblock *b, int absolute)
} \
}
-#define ADDOP_LOAD_CONST(C, O) { \
- if (!compiler_addop_load_const((C), (O))) \
- return 0; \
-}
-
-/* Same as ADDOP_LOAD_CONST, but steals a reference. */
-#define ADDOP_LOAD_CONST_NEW(C, O) { \
- PyObject *__new_const = (O); \
- if (__new_const == NULL) { \
- return 0; \
- } \
- if (!compiler_addop_load_const((C), __new_const)) { \
- Py_DECREF(__new_const); \
- return 0; \
- } \
- Py_DECREF(__new_const); \
-}
-
+#define ADDOP_LOAD_CONST(C, O) { \
+ if (!compiler_addop_load_const((C), (O))) \
+ return 0; \
+}
+
+/* Same as ADDOP_LOAD_CONST, but steals a reference. */
+#define ADDOP_LOAD_CONST_NEW(C, O) { \
+ PyObject *__new_const = (O); \
+ if (__new_const == NULL) { \
+ return 0; \
+ } \
+ if (!compiler_addop_load_const((C), __new_const)) { \
+ Py_DECREF(__new_const); \
+ return 0; \
+ } \
+ Py_DECREF(__new_const); \
+}
+
#define ADDOP_O(C, OP, O, TYPE) { \
if (!compiler_addop_o((C), (OP), (C)->u->u_ ## TYPE, (O))) \
return 0; \
@@ -1497,12 +1497,12 @@ compiler_addop_j(struct compiler *c, int opcode, basicblock *b, int absolute)
return 0; \
}
-
-#define ADDOP_COMPARE(C, CMP) { \
- if (!compiler_addcompare((C), (cmpop_ty)(CMP))) \
- return 0; \
-}
-
+
+#define ADDOP_COMPARE(C, CMP) { \
+ if (!compiler_addcompare((C), (cmpop_ty)(CMP))) \
+ return 0; \
+}
+
/* VISIT and VISIT_SEQ takes an ASDL type as their second argument. They use
the ASDL name to synthesize the name of the C type and the visit function.
*/
@@ -1546,15 +1546,15 @@ compiler_addop_j(struct compiler *c, int opcode, basicblock *b, int absolute)
} \
}
-/* These macros allows to check only for errors and not emmit bytecode
- * while visiting nodes.
-*/
+/* These macros allows to check only for errors and not emmit bytecode
+ * while visiting nodes.
+*/
-#define BEGIN_DO_NOT_EMIT_BYTECODE { \
- c->c_do_not_emit_bytecode++;
+#define BEGIN_DO_NOT_EMIT_BYTECODE { \
+ c->c_do_not_emit_bytecode++;
-#define END_DO_NOT_EMIT_BYTECODE \
- c->c_do_not_emit_bytecode--; \
+#define END_DO_NOT_EMIT_BYTECODE \
+ c->c_do_not_emit_bytecode--; \
}
/* Search if variable annotations are present statically in a block. */
@@ -1614,166 +1614,166 @@ find_ann(asdl_seq *stmts)
return res;
}
-/*
- * Frame block handling functions
- */
-
-static int
-compiler_push_fblock(struct compiler *c, enum fblocktype t, basicblock *b,
- basicblock *exit, void *datum)
-{
- struct fblockinfo *f;
- if (c->u->u_nfblocks >= CO_MAXBLOCKS) {
- return compiler_error(c, "too many statically nested blocks");
- }
- f = &c->u->u_fblock[c->u->u_nfblocks++];
- f->fb_type = t;
- f->fb_block = b;
- f->fb_exit = exit;
- f->fb_datum = datum;
- return 1;
-}
-
-static void
-compiler_pop_fblock(struct compiler *c, enum fblocktype t, basicblock *b)
-{
- struct compiler_unit *u = c->u;
- assert(u->u_nfblocks > 0);
- u->u_nfblocks--;
- assert(u->u_fblock[u->u_nfblocks].fb_type == t);
- assert(u->u_fblock[u->u_nfblocks].fb_block == b);
-}
-
-static int
-compiler_call_exit_with_nones(struct compiler *c) {
- ADDOP_O(c, LOAD_CONST, Py_None, consts);
- ADDOP(c, DUP_TOP);
- ADDOP(c, DUP_TOP);
- ADDOP_I(c, CALL_FUNCTION, 3);
- return 1;
-}
-
-/* Unwind a frame block. If preserve_tos is true, the TOS before
- * popping the blocks will be restored afterwards, unless another
- * return, break or continue is found. In which case, the TOS will
- * be popped.
- */
-static int
-compiler_unwind_fblock(struct compiler *c, struct fblockinfo *info,
- int preserve_tos)
-{
- switch (info->fb_type) {
- case WHILE_LOOP:
- case EXCEPTION_HANDLER:
- return 1;
-
- case FOR_LOOP:
- /* Pop the iterator */
- if (preserve_tos) {
- ADDOP(c, ROT_TWO);
- }
- ADDOP(c, POP_TOP);
- return 1;
-
- case TRY_EXCEPT:
- ADDOP(c, POP_BLOCK);
- return 1;
-
- case FINALLY_TRY:
- ADDOP(c, POP_BLOCK);
- if (preserve_tos) {
- if (!compiler_push_fblock(c, POP_VALUE, NULL, NULL, NULL)) {
- return 0;
- }
- }
- /* Emit the finally block, restoring the line number when done */
- int saved_lineno = c->u->u_lineno;
- VISIT_SEQ(c, stmt, info->fb_datum);
- c->u->u_lineno = saved_lineno;
- if (preserve_tos) {
- compiler_pop_fblock(c, POP_VALUE, NULL);
- }
- return 1;
-
- case FINALLY_END:
- if (preserve_tos) {
- ADDOP(c, ROT_FOUR);
- }
- ADDOP(c, POP_TOP);
- ADDOP(c, POP_TOP);
- ADDOP(c, POP_TOP);
- if (preserve_tos) {
- ADDOP(c, ROT_FOUR);
- }
- ADDOP(c, POP_EXCEPT);
- return 1;
-
- case WITH:
- case ASYNC_WITH:
- ADDOP(c, POP_BLOCK);
- if (preserve_tos) {
- ADDOP(c, ROT_TWO);
- }
- if(!compiler_call_exit_with_nones(c)) {
- return 0;
- }
- if (info->fb_type == ASYNC_WITH) {
- ADDOP(c, GET_AWAITABLE);
- ADDOP_LOAD_CONST(c, Py_None);
- ADDOP(c, YIELD_FROM);
- }
- ADDOP(c, POP_TOP);
- return 1;
-
- case HANDLER_CLEANUP:
- if (info->fb_datum) {
- ADDOP(c, POP_BLOCK);
- }
- if (preserve_tos) {
- ADDOP(c, ROT_FOUR);
- }
- ADDOP(c, POP_EXCEPT);
- if (info->fb_datum) {
- ADDOP_LOAD_CONST(c, Py_None);
- compiler_nameop(c, info->fb_datum, Store);
- compiler_nameop(c, info->fb_datum, Del);
- }
- return 1;
-
- case POP_VALUE:
- if (preserve_tos) {
- ADDOP(c, ROT_TWO);
- }
- ADDOP(c, POP_TOP);
- return 1;
- }
- Py_UNREACHABLE();
-}
-
-/** Unwind block stack. If loop is not NULL, then stop when the first loop is encountered. */
-static int
-compiler_unwind_fblock_stack(struct compiler *c, int preserve_tos, struct fblockinfo **loop) {
- if (c->u->u_nfblocks == 0) {
- return 1;
- }
- struct fblockinfo *top = &c->u->u_fblock[c->u->u_nfblocks-1];
- if (loop != NULL && (top->fb_type == WHILE_LOOP || top->fb_type == FOR_LOOP)) {
- *loop = top;
- return 1;
- }
- struct fblockinfo copy = *top;
- c->u->u_nfblocks--;
- if (!compiler_unwind_fblock(c, &copy, preserve_tos)) {
- return 0;
- }
- if (!compiler_unwind_fblock_stack(c, preserve_tos, loop)) {
- return 0;
- }
- c->u->u_fblock[c->u->u_nfblocks] = copy;
- c->u->u_nfblocks++;
- return 1;
-}
-
+/*
+ * Frame block handling functions
+ */
+
+static int
+compiler_push_fblock(struct compiler *c, enum fblocktype t, basicblock *b,
+ basicblock *exit, void *datum)
+{
+ struct fblockinfo *f;
+ if (c->u->u_nfblocks >= CO_MAXBLOCKS) {
+ return compiler_error(c, "too many statically nested blocks");
+ }
+ f = &c->u->u_fblock[c->u->u_nfblocks++];
+ f->fb_type = t;
+ f->fb_block = b;
+ f->fb_exit = exit;
+ f->fb_datum = datum;
+ return 1;
+}
+
+static void
+compiler_pop_fblock(struct compiler *c, enum fblocktype t, basicblock *b)
+{
+ struct compiler_unit *u = c->u;
+ assert(u->u_nfblocks > 0);
+ u->u_nfblocks--;
+ assert(u->u_fblock[u->u_nfblocks].fb_type == t);
+ assert(u->u_fblock[u->u_nfblocks].fb_block == b);
+}
+
+static int
+compiler_call_exit_with_nones(struct compiler *c) {
+ ADDOP_O(c, LOAD_CONST, Py_None, consts);
+ ADDOP(c, DUP_TOP);
+ ADDOP(c, DUP_TOP);
+ ADDOP_I(c, CALL_FUNCTION, 3);
+ return 1;
+}
+
+/* Unwind a frame block. If preserve_tos is true, the TOS before
+ * popping the blocks will be restored afterwards, unless another
+ * return, break or continue is found. In which case, the TOS will
+ * be popped.
+ */
+static int
+compiler_unwind_fblock(struct compiler *c, struct fblockinfo *info,
+ int preserve_tos)
+{
+ switch (info->fb_type) {
+ case WHILE_LOOP:
+ case EXCEPTION_HANDLER:
+ return 1;
+
+ case FOR_LOOP:
+ /* Pop the iterator */
+ if (preserve_tos) {
+ ADDOP(c, ROT_TWO);
+ }
+ ADDOP(c, POP_TOP);
+ return 1;
+
+ case TRY_EXCEPT:
+ ADDOP(c, POP_BLOCK);
+ return 1;
+
+ case FINALLY_TRY:
+ ADDOP(c, POP_BLOCK);
+ if (preserve_tos) {
+ if (!compiler_push_fblock(c, POP_VALUE, NULL, NULL, NULL)) {
+ return 0;
+ }
+ }
+ /* Emit the finally block, restoring the line number when done */
+ int saved_lineno = c->u->u_lineno;
+ VISIT_SEQ(c, stmt, info->fb_datum);
+ c->u->u_lineno = saved_lineno;
+ if (preserve_tos) {
+ compiler_pop_fblock(c, POP_VALUE, NULL);
+ }
+ return 1;
+
+ case FINALLY_END:
+ if (preserve_tos) {
+ ADDOP(c, ROT_FOUR);
+ }
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_TOP);
+ if (preserve_tos) {
+ ADDOP(c, ROT_FOUR);
+ }
+ ADDOP(c, POP_EXCEPT);
+ return 1;
+
+ case WITH:
+ case ASYNC_WITH:
+ ADDOP(c, POP_BLOCK);
+ if (preserve_tos) {
+ ADDOP(c, ROT_TWO);
+ }
+ if(!compiler_call_exit_with_nones(c)) {
+ return 0;
+ }
+ if (info->fb_type == ASYNC_WITH) {
+ ADDOP(c, GET_AWAITABLE);
+ ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP(c, YIELD_FROM);
+ }
+ ADDOP(c, POP_TOP);
+ return 1;
+
+ case HANDLER_CLEANUP:
+ if (info->fb_datum) {
+ ADDOP(c, POP_BLOCK);
+ }
+ if (preserve_tos) {
+ ADDOP(c, ROT_FOUR);
+ }
+ ADDOP(c, POP_EXCEPT);
+ if (info->fb_datum) {
+ ADDOP_LOAD_CONST(c, Py_None);
+ compiler_nameop(c, info->fb_datum, Store);
+ compiler_nameop(c, info->fb_datum, Del);
+ }
+ return 1;
+
+ case POP_VALUE:
+ if (preserve_tos) {
+ ADDOP(c, ROT_TWO);
+ }
+ ADDOP(c, POP_TOP);
+ return 1;
+ }
+ Py_UNREACHABLE();
+}
+
+/** Unwind block stack. If loop is not NULL, then stop when the first loop is encountered. */
+static int
+compiler_unwind_fblock_stack(struct compiler *c, int preserve_tos, struct fblockinfo **loop) {
+ if (c->u->u_nfblocks == 0) {
+ return 1;
+ }
+ struct fblockinfo *top = &c->u->u_fblock[c->u->u_nfblocks-1];
+ if (loop != NULL && (top->fb_type == WHILE_LOOP || top->fb_type == FOR_LOOP)) {
+ *loop = top;
+ return 1;
+ }
+ struct fblockinfo copy = *top;
+ c->u->u_nfblocks--;
+ if (!compiler_unwind_fblock(c, &copy, preserve_tos)) {
+ return 0;
+ }
+ if (!compiler_unwind_fblock_stack(c, preserve_tos, loop)) {
+ return 0;
+ }
+ c->u->u_fblock[c->u->u_nfblocks] = copy;
+ c->u->u_nfblocks++;
+ return 1;
+}
+
/* Compile a sequence of statements, checking for a docstring
and for annotations. */
@@ -1782,15 +1782,15 @@ compiler_body(struct compiler *c, asdl_seq *stmts)
{
int i = 0;
stmt_ty st;
- PyObject *docstring;
+ PyObject *docstring;
/* Set current line number to the line number of first statement.
This way line number for SETUP_ANNOTATIONS will always
coincide with the line number of first "real" statement in module.
- If body is empty, then lineno will be set later in assemble. */
- if (c->u->u_scope_type == COMPILER_SCOPE_MODULE && asdl_seq_LEN(stmts)) {
+ If body is empty, then lineno will be set later in assemble. */
+ if (c->u->u_scope_type == COMPILER_SCOPE_MODULE && asdl_seq_LEN(stmts)) {
st = (stmt_ty)asdl_seq_GET(stmts, 0);
- SET_LOC(c, st);
+ SET_LOC(c, st);
}
/* Every annotated class and module should have __annotations__. */
if (find_ann(stmts)) {
@@ -1799,16 +1799,16 @@ compiler_body(struct compiler *c, asdl_seq *stmts)
if (!asdl_seq_LEN(stmts))
return 1;
/* if not -OO mode, set docstring */
- if (c->c_optimize < 2) {
- docstring = _PyAST_GetDocString(stmts);
- if (docstring) {
- i = 1;
- st = (stmt_ty)asdl_seq_GET(stmts, 0);
- assert(st->kind == Expr_kind);
- VISIT(c, expr, st->v.Expr.value);
- if (!compiler_nameop(c, __doc__, Store))
- return 0;
- }
+ if (c->c_optimize < 2) {
+ docstring = _PyAST_GetDocString(stmts);
+ if (docstring) {
+ i = 1;
+ st = (stmt_ty)asdl_seq_GET(stmts, 0);
+ assert(st->kind == Expr_kind);
+ VISIT(c, expr, st->v.Expr.value);
+ if (!compiler_nameop(c, __doc__, Store))
+ return 0;
+ }
}
for (; i < asdl_seq_LEN(stmts); i++)
VISIT(c, stmt, (stmt_ty)asdl_seq_GET(stmts, i));
@@ -1873,15 +1873,15 @@ get_ref_type(struct compiler *c, PyObject *name)
return CELL;
scope = PyST_GetScope(c->u->u_ste, name);
if (scope == 0) {
- _Py_FatalErrorFormat(__func__,
- "unknown scope for %.100s in %.100s(%s)\n"
- "symbols: %s\nlocals: %s\nglobals: %s",
- PyUnicode_AsUTF8(name),
- PyUnicode_AsUTF8(c->u->u_name),
- PyUnicode_AsUTF8(PyObject_Repr(c->u->u_ste->ste_id)),
- PyUnicode_AsUTF8(PyObject_Repr(c->u->u_ste->ste_symbols)),
- PyUnicode_AsUTF8(PyObject_Repr(c->u->u_varnames)),
- PyUnicode_AsUTF8(PyObject_Repr(c->u->u_names)));
+ _Py_FatalErrorFormat(__func__,
+ "unknown scope for %.100s in %.100s(%s)\n"
+ "symbols: %s\nlocals: %s\nglobals: %s",
+ PyUnicode_AsUTF8(name),
+ PyUnicode_AsUTF8(c->u->u_name),
+ PyUnicode_AsUTF8(PyObject_Repr(c->u->u_ste->ste_id)),
+ PyUnicode_AsUTF8(PyObject_Repr(c->u->u_ste->ste_symbols)),
+ PyUnicode_AsUTF8(PyObject_Repr(c->u->u_varnames)),
+ PyUnicode_AsUTF8(PyObject_Repr(c->u->u_names)));
}
return scope;
@@ -1890,8 +1890,8 @@ get_ref_type(struct compiler *c, PyObject *name)
static int
compiler_lookup_arg(PyObject *dict, PyObject *name)
{
- PyObject *v;
- v = PyDict_GetItem(dict, name);
+ PyObject *v;
+ v = PyDict_GetItem(dict, name);
if (v == NULL)
return -1;
return PyLong_AS_LONG(v);
@@ -1916,7 +1916,7 @@ compiler_make_closure(struct compiler *c, PyCodeObject *co, Py_ssize_t flags, Py
free variable that has the same name as a method,
the name will be considered free *and* local in the
class. It should be handled by the closure, as
- well as by the normal name lookup logic.
+ well as by the normal name lookup logic.
*/
reftype = get_ref_type(c, name);
if (reftype == CELL)
@@ -1924,7 +1924,7 @@ compiler_make_closure(struct compiler *c, PyCodeObject *co, Py_ssize_t flags, Py
else /* (reftype == FREE) */
arg = compiler_lookup_arg(c->u->u_freevars, name);
if (arg == -1) {
- _Py_FatalErrorFormat(__func__,
+ _Py_FatalErrorFormat(__func__,
"lookup %s in %s %d %d\n"
"freevars of %s: %s\n",
PyUnicode_AsUTF8(PyObject_Repr(name)),
@@ -1938,8 +1938,8 @@ compiler_make_closure(struct compiler *c, PyCodeObject *co, Py_ssize_t flags, Py
flags |= 0x08;
ADDOP_I(c, BUILD_TUPLE, free);
}
- ADDOP_LOAD_CONST(c, (PyObject*)co);
- ADDOP_LOAD_CONST(c, qualname);
+ ADDOP_LOAD_CONST(c, (PyObject*)co);
+ ADDOP_LOAD_CONST(c, qualname);
ADDOP_I(c, MAKE_FUNCTION, flags);
return 1;
}
@@ -2001,7 +2001,7 @@ compiler_visit_kwonlydefaults(struct compiler *c, asdl_seq *kwonlyargs,
Py_ssize_t default_count = PyList_GET_SIZE(keys);
PyObject *keys_tuple = PyList_AsTuple(keys);
Py_DECREF(keys);
- ADDOP_LOAD_CONST_NEW(c, keys_tuple);
+ ADDOP_LOAD_CONST_NEW(c, keys_tuple);
ADDOP_I(c, BUILD_CONST_KEY_MAP, default_count);
assert(default_count > 0);
return 1;
@@ -2018,7 +2018,7 @@ error:
static int
compiler_visit_annexpr(struct compiler *c, expr_ty annotation)
{
- ADDOP_LOAD_CONST_NEW(c, _PyAST_ExprAsUnicode(annotation));
+ ADDOP_LOAD_CONST_NEW(c, _PyAST_ExprAsUnicode(annotation));
return 1;
}
@@ -2081,8 +2081,8 @@ compiler_visit_annotations(struct compiler *c, arguments_ty args,
if (!compiler_visit_argannotations(c, args->args, names))
goto error;
- if (!compiler_visit_argannotations(c, args->posonlyargs, names))
- goto error;
+ if (!compiler_visit_argannotations(c, args->posonlyargs, names))
+ goto error;
if (args->vararg && args->vararg->annotation &&
!compiler_visit_argannotation(c, args->vararg->arg,
args->vararg->annotation, names))
@@ -2107,7 +2107,7 @@ compiler_visit_annotations(struct compiler *c, arguments_ty args,
if (len) {
PyObject *keytuple = PyList_AsTuple(names);
Py_DECREF(names);
- ADDOP_LOAD_CONST_NEW(c, keytuple);
+ ADDOP_LOAD_CONST_NEW(c, keytuple);
ADDOP_I(c, BUILD_CONST_KEY_MAP, len);
return 1;
}
@@ -2152,59 +2152,59 @@ compiler_default_arguments(struct compiler *c, arguments_ty args)
}
static int
-forbidden_name(struct compiler *c, identifier name, expr_context_ty ctx)
-{
-
- if (ctx == Store && _PyUnicode_EqualToASCIIString(name, "__debug__")) {
- compiler_error(c, "cannot assign to __debug__");
- return 1;
- }
- return 0;
-}
-
-static int
-compiler_check_debug_one_arg(struct compiler *c, arg_ty arg)
-{
- if (arg != NULL) {
- if (forbidden_name(c, arg->arg, Store))
- return 0;
- }
- return 1;
-}
-
-static int
-compiler_check_debug_args_seq(struct compiler *c, asdl_seq *args)
-{
- if (args != NULL) {
- for (Py_ssize_t i = 0, n = asdl_seq_LEN(args); i < n; i++) {
- if (!compiler_check_debug_one_arg(c, asdl_seq_GET(args, i)))
- return 0;
- }
- }
- return 1;
-}
-
-static int
-compiler_check_debug_args(struct compiler *c, arguments_ty args)
-{
- if (!compiler_check_debug_args_seq(c, args->posonlyargs))
- return 0;
- if (!compiler_check_debug_args_seq(c, args->args))
- return 0;
- if (!compiler_check_debug_one_arg(c, args->vararg))
- return 0;
- if (!compiler_check_debug_args_seq(c, args->kwonlyargs))
- return 0;
- if (!compiler_check_debug_one_arg(c, args->kwarg))
- return 0;
- return 1;
-}
-
-static int
+forbidden_name(struct compiler *c, identifier name, expr_context_ty ctx)
+{
+
+ if (ctx == Store && _PyUnicode_EqualToASCIIString(name, "__debug__")) {
+ compiler_error(c, "cannot assign to __debug__");
+ return 1;
+ }
+ return 0;
+}
+
+static int
+compiler_check_debug_one_arg(struct compiler *c, arg_ty arg)
+{
+ if (arg != NULL) {
+ if (forbidden_name(c, arg->arg, Store))
+ return 0;
+ }
+ return 1;
+}
+
+static int
+compiler_check_debug_args_seq(struct compiler *c, asdl_seq *args)
+{
+ if (args != NULL) {
+ for (Py_ssize_t i = 0, n = asdl_seq_LEN(args); i < n; i++) {
+ if (!compiler_check_debug_one_arg(c, asdl_seq_GET(args, i)))
+ return 0;
+ }
+ }
+ return 1;
+}
+
+static int
+compiler_check_debug_args(struct compiler *c, arguments_ty args)
+{
+ if (!compiler_check_debug_args_seq(c, args->posonlyargs))
+ return 0;
+ if (!compiler_check_debug_args_seq(c, args->args))
+ return 0;
+ if (!compiler_check_debug_one_arg(c, args->vararg))
+ return 0;
+ if (!compiler_check_debug_args_seq(c, args->kwonlyargs))
+ return 0;
+ if (!compiler_check_debug_one_arg(c, args->kwarg))
+ return 0;
+ return 1;
+}
+
+static int
compiler_function(struct compiler *c, stmt_ty s, int is_async)
{
PyCodeObject *co;
- PyObject *qualname, *docstring = NULL;
+ PyObject *qualname, *docstring = NULL;
arguments_ty args;
expr_ty returns;
identifier name;
@@ -2213,7 +2213,7 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async)
Py_ssize_t i, funcflags;
int annotations;
int scope_type;
- int firstlineno;
+ int firstlineno;
if (is_async) {
assert(s->kind == AsyncFunctionDef_kind);
@@ -2237,17 +2237,17 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async)
scope_type = COMPILER_SCOPE_FUNCTION;
}
- if (!compiler_check_debug_args(c, args))
- return 0;
-
+ if (!compiler_check_debug_args(c, args))
+ return 0;
+
if (!compiler_decorators(c, decos))
return 0;
- firstlineno = s->lineno;
- if (asdl_seq_LEN(decos)) {
- firstlineno = ((expr_ty)asdl_seq_GET(decos, 0))->lineno;
- }
-
+ firstlineno = s->lineno;
+ if (asdl_seq_LEN(decos)) {
+ firstlineno = ((expr_ty)asdl_seq_GET(decos, 0))->lineno;
+ }
+
funcflags = compiler_default_arguments(c, args);
if (funcflags == -1) {
return 0;
@@ -2261,21 +2261,21 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async)
funcflags |= 0x04;
}
- if (!compiler_enter_scope(c, name, scope_type, (void *)s, firstlineno)) {
+ if (!compiler_enter_scope(c, name, scope_type, (void *)s, firstlineno)) {
return 0;
}
- /* if not -OO mode, add docstring */
- if (c->c_optimize < 2) {
- docstring = _PyAST_GetDocString(body);
+ /* if not -OO mode, add docstring */
+ if (c->c_optimize < 2) {
+ docstring = _PyAST_GetDocString(body);
}
- if (compiler_add_const(c, docstring ? docstring : Py_None) < 0) {
+ if (compiler_add_const(c, docstring ? docstring : Py_None) < 0) {
compiler_exit_scope(c);
return 0;
}
c->u->u_argcount = asdl_seq_LEN(args->args);
- c->u->u_posonlyargcount = asdl_seq_LEN(args->posonlyargs);
+ c->u->u_posonlyargcount = asdl_seq_LEN(args->posonlyargs);
c->u->u_kwonlyargcount = asdl_seq_LEN(args->kwonlyargs);
VISIT_SEQ_IN_SCOPE(c, stmt, body);
co = assemble(c, 1);
@@ -2305,17 +2305,17 @@ compiler_class(struct compiler *c, stmt_ty s)
{
PyCodeObject *co;
PyObject *str;
- int i, firstlineno;
+ int i, firstlineno;
asdl_seq* decos = s->v.ClassDef.decorator_list;
if (!compiler_decorators(c, decos))
return 0;
- firstlineno = s->lineno;
- if (asdl_seq_LEN(decos)) {
- firstlineno = ((expr_ty)asdl_seq_GET(decos, 0))->lineno;
- }
-
+ firstlineno = s->lineno;
+ if (asdl_seq_LEN(decos)) {
+ firstlineno = ((expr_ty)asdl_seq_GET(decos, 0))->lineno;
+ }
+
/* ultimately generate code for:
<name> = __build_class__(<func>, <name>, *<bases>, **<keywords>)
where:
@@ -2330,7 +2330,7 @@ compiler_class(struct compiler *c, stmt_ty s)
/* 1. compile the class body into a code object */
if (!compiler_enter_scope(c, s->v.ClassDef.name,
- COMPILER_SCOPE_CLASS, (void *)s, firstlineno))
+ COMPILER_SCOPE_CLASS, (void *)s, firstlineno))
return 0;
/* this block represents what we do in the new scope */
{
@@ -2354,7 +2354,7 @@ compiler_class(struct compiler *c, stmt_ty s)
}
Py_DECREF(str);
assert(c->u->u_qualname);
- ADDOP_LOAD_CONST(c, c->u->u_qualname);
+ ADDOP_LOAD_CONST(c, c->u->u_qualname);
str = PyUnicode_InternFromString("__qualname__");
if (!str || !compiler_nameop(c, str, Store)) {
Py_XDECREF(str);
@@ -2396,7 +2396,7 @@ compiler_class(struct compiler *c, stmt_ty s)
else {
/* No methods referenced __class__, so just return None */
assert(PyDict_GET_SIZE(c->u->u_cellvars) == 0);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
}
ADDOP_IN_SCOPE(c, RETURN_VALUE);
/* create the code object */
@@ -2415,7 +2415,7 @@ compiler_class(struct compiler *c, stmt_ty s)
Py_DECREF(co);
/* 4. load class name */
- ADDOP_LOAD_CONST(c, s->v.ClassDef.name);
+ ADDOP_LOAD_CONST(c, s->v.ClassDef.name);
/* 5. generate the rest of the code for the call */
if (!compiler_call_helper(c, 2,
@@ -2434,90 +2434,90 @@ compiler_class(struct compiler *c, stmt_ty s)
return 1;
}
-/* Return 0 if the expression is a constant value except named singletons.
- Return 1 otherwise. */
+/* Return 0 if the expression is a constant value except named singletons.
+ Return 1 otherwise. */
static int
-check_is_arg(expr_ty e)
-{
- if (e->kind != Constant_kind) {
- return 1;
- }
- PyObject *value = e->v.Constant.value;
- return (value == Py_None
- || value == Py_False
- || value == Py_True
- || value == Py_Ellipsis);
-}
-
-/* Check operands of identity chacks ("is" and "is not").
- Emit a warning if any operand is a constant except named singletons.
- Return 0 on error.
- */
-static int
-check_compare(struct compiler *c, expr_ty e)
-{
- Py_ssize_t i, n;
- int left = check_is_arg(e->v.Compare.left);
- n = asdl_seq_LEN(e->v.Compare.ops);
- for (i = 0; i < n; i++) {
- cmpop_ty op = (cmpop_ty)asdl_seq_GET(e->v.Compare.ops, i);
- int right = check_is_arg((expr_ty)asdl_seq_GET(e->v.Compare.comparators, i));
- if (op == Is || op == IsNot) {
- if (!right || !left) {
- const char *msg = (op == Is)
- ? "\"is\" with a literal. Did you mean \"==\"?"
- : "\"is not\" with a literal. Did you mean \"!=\"?";
- return compiler_warn(c, msg);
- }
- }
- left = right;
- }
- return 1;
-}
-
-static int compiler_addcompare(struct compiler *c, cmpop_ty op)
-{
- int cmp;
+check_is_arg(expr_ty e)
+{
+ if (e->kind != Constant_kind) {
+ return 1;
+ }
+ PyObject *value = e->v.Constant.value;
+ return (value == Py_None
+ || value == Py_False
+ || value == Py_True
+ || value == Py_Ellipsis);
+}
+
+/* Check operands of identity chacks ("is" and "is not").
+ Emit a warning if any operand is a constant except named singletons.
+ Return 0 on error.
+ */
+static int
+check_compare(struct compiler *c, expr_ty e)
+{
+ Py_ssize_t i, n;
+ int left = check_is_arg(e->v.Compare.left);
+ n = asdl_seq_LEN(e->v.Compare.ops);
+ for (i = 0; i < n; i++) {
+ cmpop_ty op = (cmpop_ty)asdl_seq_GET(e->v.Compare.ops, i);
+ int right = check_is_arg((expr_ty)asdl_seq_GET(e->v.Compare.comparators, i));
+ if (op == Is || op == IsNot) {
+ if (!right || !left) {
+ const char *msg = (op == Is)
+ ? "\"is\" with a literal. Did you mean \"==\"?"
+ : "\"is not\" with a literal. Did you mean \"!=\"?";
+ return compiler_warn(c, msg);
+ }
+ }
+ left = right;
+ }
+ return 1;
+}
+
+static int compiler_addcompare(struct compiler *c, cmpop_ty op)
+{
+ int cmp;
switch (op) {
case Eq:
- cmp = Py_EQ;
- break;
+ cmp = Py_EQ;
+ break;
case NotEq:
- cmp = Py_NE;
- break;
+ cmp = Py_NE;
+ break;
case Lt:
- cmp = Py_LT;
- break;
+ cmp = Py_LT;
+ break;
case LtE:
- cmp = Py_LE;
- break;
+ cmp = Py_LE;
+ break;
case Gt:
- cmp = Py_GT;
- break;
+ cmp = Py_GT;
+ break;
case GtE:
- cmp = Py_GE;
- break;
+ cmp = Py_GE;
+ break;
case Is:
- ADDOP_I(c, IS_OP, 0);
- return 1;
+ ADDOP_I(c, IS_OP, 0);
+ return 1;
case IsNot:
- ADDOP_I(c, IS_OP, 1);
- return 1;
+ ADDOP_I(c, IS_OP, 1);
+ return 1;
case In:
- ADDOP_I(c, CONTAINS_OP, 0);
- return 1;
+ ADDOP_I(c, CONTAINS_OP, 0);
+ return 1;
case NotIn:
- ADDOP_I(c, CONTAINS_OP, 1);
- return 1;
+ ADDOP_I(c, CONTAINS_OP, 1);
+ return 1;
default:
- Py_UNREACHABLE();
+ Py_UNREACHABLE();
}
- ADDOP_I(c, COMPARE_OP, cmp);
- return 1;
+ ADDOP_I(c, COMPARE_OP, cmp);
+ return 1;
}
-
-
+
+
static int
compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond)
{
@@ -2570,9 +2570,9 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond)
case Compare_kind: {
Py_ssize_t i, n = asdl_seq_LEN(e->v.Compare.ops) - 1;
if (n > 0) {
- if (!check_compare(c, e)) {
- return 0;
- }
+ if (!check_compare(c, e)) {
+ return 0;
+ }
basicblock *cleanup = compiler_new_block(c);
if (cleanup == NULL)
return 0;
@@ -2582,12 +2582,12 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond)
(expr_ty)asdl_seq_GET(e->v.Compare.comparators, i));
ADDOP(c, DUP_TOP);
ADDOP(c, ROT_THREE);
- ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, i));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, i));
ADDOP_JABS(c, POP_JUMP_IF_FALSE, cleanup);
NEXT_BLOCK(c);
}
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n));
- ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n));
ADDOP_JABS(c, cond ? POP_JUMP_IF_TRUE : POP_JUMP_IF_FALSE, next);
basicblock *end = compiler_new_block(c);
if (end == NULL)
@@ -2647,9 +2647,9 @@ compiler_lambda(struct compiler *c, expr_ty e)
arguments_ty args = e->v.Lambda.args;
assert(e->kind == Lambda_kind);
- if (!compiler_check_debug_args(c, args))
- return 0;
-
+ if (!compiler_check_debug_args(c, args))
+ return 0;
+
if (!name) {
name = PyUnicode_InternFromString("<lambda>");
if (!name)
@@ -2667,11 +2667,11 @@ compiler_lambda(struct compiler *c, expr_ty e)
/* Make None the first constant, so the lambda can't have a
docstring. */
- if (compiler_add_const(c, Py_None) < 0)
+ if (compiler_add_const(c, Py_None) < 0)
return 0;
c->u->u_argcount = asdl_seq_LEN(args->args);
- c->u->u_posonlyargcount = asdl_seq_LEN(args->posonlyargs);
+ c->u->u_posonlyargcount = asdl_seq_LEN(args->posonlyargs);
c->u->u_kwonlyargcount = asdl_seq_LEN(args->kwonlyargs);
VISIT_IN_SCOPE(c, expr, e->v.Lambda.body);
if (c->u->u_ste->ste_generator) {
@@ -2709,31 +2709,31 @@ compiler_if(struct compiler *c, stmt_ty s)
* constant = 1: "if 1", "if 2", ...
* constant = -1: rest */
if (constant == 0) {
- BEGIN_DO_NOT_EMIT_BYTECODE
- VISIT_SEQ(c, stmt, s->v.If.body);
- END_DO_NOT_EMIT_BYTECODE
- if (s->v.If.orelse) {
+ BEGIN_DO_NOT_EMIT_BYTECODE
+ VISIT_SEQ(c, stmt, s->v.If.body);
+ END_DO_NOT_EMIT_BYTECODE
+ if (s->v.If.orelse) {
VISIT_SEQ(c, stmt, s->v.If.orelse);
- }
+ }
} else if (constant == 1) {
VISIT_SEQ(c, stmt, s->v.If.body);
- if (s->v.If.orelse) {
- BEGIN_DO_NOT_EMIT_BYTECODE
- VISIT_SEQ(c, stmt, s->v.If.orelse);
- END_DO_NOT_EMIT_BYTECODE
- }
+ if (s->v.If.orelse) {
+ BEGIN_DO_NOT_EMIT_BYTECODE
+ VISIT_SEQ(c, stmt, s->v.If.orelse);
+ END_DO_NOT_EMIT_BYTECODE
+ }
} else {
if (asdl_seq_LEN(s->v.If.orelse)) {
next = compiler_new_block(c);
if (next == NULL)
return 0;
}
- else {
+ else {
next = end;
- }
- if (!compiler_jump_if(c, s->v.If.test, next, 0)) {
+ }
+ if (!compiler_jump_if(c, s->v.If.test, next, 0)) {
return 0;
- }
+ }
VISIT_SEQ(c, stmt, s->v.If.body);
if (asdl_seq_LEN(s->v.If.orelse)) {
ADDOP_JREL(c, JUMP_FORWARD, end);
@@ -2753,12 +2753,12 @@ compiler_for(struct compiler *c, stmt_ty s)
start = compiler_new_block(c);
cleanup = compiler_new_block(c);
end = compiler_new_block(c);
- if (start == NULL || end == NULL || cleanup == NULL) {
+ if (start == NULL || end == NULL || cleanup == NULL) {
return 0;
- }
- if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) {
+ }
+ if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) {
return 0;
- }
+ }
VISIT(c, expr, s->v.For.iter);
ADDOP(c, GET_ITER);
compiler_use_next_block(c, start);
@@ -2767,9 +2767,9 @@ compiler_for(struct compiler *c, stmt_ty s)
VISIT_SEQ(c, stmt, s->v.For.body);
ADDOP_JABS(c, JUMP_ABSOLUTE, start);
compiler_use_next_block(c, cleanup);
-
- compiler_pop_fblock(c, FOR_LOOP, start);
-
+
+ compiler_pop_fblock(c, FOR_LOOP, start);
+
VISIT_SEQ(c, stmt, s->v.For.orelse);
compiler_use_next_block(c, end);
return 1;
@@ -2779,52 +2779,52 @@ compiler_for(struct compiler *c, stmt_ty s)
static int
compiler_async_for(struct compiler *c, stmt_ty s)
{
- basicblock *start, *except, *end;
- if (IS_TOP_LEVEL_AWAIT(c)){
- c->u->u_ste->ste_coroutine = 1;
- } else if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION) {
+ basicblock *start, *except, *end;
+ if (IS_TOP_LEVEL_AWAIT(c)){
+ c->u->u_ste->ste_coroutine = 1;
+ } else if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION) {
return compiler_error(c, "'async for' outside async function");
}
- start = compiler_new_block(c);
+ start = compiler_new_block(c);
except = compiler_new_block(c);
end = compiler_new_block(c);
- if (start == NULL || except == NULL || end == NULL) {
+ if (start == NULL || except == NULL || end == NULL) {
return 0;
- }
+ }
VISIT(c, expr, s->v.AsyncFor.iter);
ADDOP(c, GET_AITER);
- compiler_use_next_block(c, start);
- if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) {
+ compiler_use_next_block(c, start);
+ if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) {
return 0;
- }
- /* SETUP_FINALLY to guard the __anext__ call */
- ADDOP_JREL(c, SETUP_FINALLY, except);
+ }
+ /* SETUP_FINALLY to guard the __anext__ call */
+ ADDOP_JREL(c, SETUP_FINALLY, except);
ADDOP(c, GET_ANEXT);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, YIELD_FROM);
- ADDOP(c, POP_BLOCK); /* for SETUP_FINALLY */
-
- /* Success block for __anext__ */
+ ADDOP(c, POP_BLOCK); /* for SETUP_FINALLY */
+
+ /* Success block for __anext__ */
VISIT(c, expr, s->v.AsyncFor.target);
- VISIT_SEQ(c, stmt, s->v.AsyncFor.body);
- ADDOP_JABS(c, JUMP_ABSOLUTE, start);
+ VISIT_SEQ(c, stmt, s->v.AsyncFor.body);
+ ADDOP_JABS(c, JUMP_ABSOLUTE, start);
- compiler_pop_fblock(c, FOR_LOOP, start);
+ compiler_pop_fblock(c, FOR_LOOP, start);
- /* Except block for __anext__ */
+ /* Except block for __anext__ */
compiler_use_next_block(c, except);
-
- /* We don't want to trace the END_ASYNC_FOR, so make sure
- * that it has the same lineno as the following instruction. */
- if (asdl_seq_LEN(s->v.For.orelse)) {
- SET_LOC(c, (stmt_ty)asdl_seq_GET(s->v.For.orelse, 0));
- }
- ADDOP(c, END_ASYNC_FOR);
-
- /* `else` block */
+
+ /* We don't want to trace the END_ASYNC_FOR, so make sure
+ * that it has the same lineno as the following instruction. */
+ if (asdl_seq_LEN(s->v.For.orelse)) {
+ SET_LOC(c, (stmt_ty)asdl_seq_GET(s->v.For.orelse, 0));
+ }
+ ADDOP(c, END_ASYNC_FOR);
+
+ /* `else` block */
VISIT_SEQ(c, stmt, s->v.For.orelse);
compiler_use_next_block(c, end);
@@ -2839,20 +2839,20 @@ compiler_while(struct compiler *c, stmt_ty s)
int constant = expr_constant(s->v.While.test);
if (constant == 0) {
- BEGIN_DO_NOT_EMIT_BYTECODE
- // Push a dummy block so the VISIT_SEQ knows that we are
- // inside a while loop so it can correctly evaluate syntax
- // errors.
- if (!compiler_push_fblock(c, WHILE_LOOP, NULL, NULL, NULL)) {
- return 0;
- }
- VISIT_SEQ(c, stmt, s->v.While.body);
- // Remove the dummy block now that is not needed.
- compiler_pop_fblock(c, WHILE_LOOP, NULL);
- END_DO_NOT_EMIT_BYTECODE
- if (s->v.While.orelse) {
+ BEGIN_DO_NOT_EMIT_BYTECODE
+ // Push a dummy block so the VISIT_SEQ knows that we are
+ // inside a while loop so it can correctly evaluate syntax
+ // errors.
+ if (!compiler_push_fblock(c, WHILE_LOOP, NULL, NULL, NULL)) {
+ return 0;
+ }
+ VISIT_SEQ(c, stmt, s->v.While.body);
+ // Remove the dummy block now that is not needed.
+ compiler_pop_fblock(c, WHILE_LOOP, NULL);
+ END_DO_NOT_EMIT_BYTECODE
+ if (s->v.While.orelse) {
VISIT_SEQ(c, stmt, s->v.While.orelse);
- }
+ }
return 1;
}
loop = compiler_new_block(c);
@@ -2873,7 +2873,7 @@ compiler_while(struct compiler *c, stmt_ty s)
orelse = NULL;
compiler_use_next_block(c, loop);
- if (!compiler_push_fblock(c, WHILE_LOOP, loop, end, NULL))
+ if (!compiler_push_fblock(c, WHILE_LOOP, loop, end, NULL))
return 0;
if (constant == -1) {
if (!compiler_jump_if(c, s->v.While.test, anchor, 0))
@@ -2888,8 +2888,8 @@ compiler_while(struct compiler *c, stmt_ty s)
if (constant == -1)
compiler_use_next_block(c, anchor);
- compiler_pop_fblock(c, WHILE_LOOP, loop);
-
+ compiler_pop_fblock(c, WHILE_LOOP, loop);
+
if (orelse != NULL) /* what if orelse is just pass? */
VISIT_SEQ(c, stmt, s->v.While.orelse);
compiler_use_next_block(c, end);
@@ -2898,76 +2898,76 @@ compiler_while(struct compiler *c, stmt_ty s)
}
static int
-compiler_return(struct compiler *c, stmt_ty s)
-{
- int preserve_tos = ((s->v.Return.value != NULL) &&
- (s->v.Return.value->kind != Constant_kind));
- if (c->u->u_ste->ste_type != FunctionBlock)
- return compiler_error(c, "'return' outside function");
- if (s->v.Return.value != NULL &&
- c->u->u_ste->ste_coroutine && c->u->u_ste->ste_generator)
- {
- return compiler_error(
- c, "'return' with value in async generator");
- }
- if (preserve_tos) {
- VISIT(c, expr, s->v.Return.value);
- }
- if (!compiler_unwind_fblock_stack(c, preserve_tos, NULL))
- return 0;
- if (s->v.Return.value == NULL) {
- ADDOP_LOAD_CONST(c, Py_None);
- }
- else if (!preserve_tos) {
- VISIT(c, expr, s->v.Return.value);
- }
- ADDOP(c, RETURN_VALUE);
+compiler_return(struct compiler *c, stmt_ty s)
+{
+ int preserve_tos = ((s->v.Return.value != NULL) &&
+ (s->v.Return.value->kind != Constant_kind));
+ if (c->u->u_ste->ste_type != FunctionBlock)
+ return compiler_error(c, "'return' outside function");
+ if (s->v.Return.value != NULL &&
+ c->u->u_ste->ste_coroutine && c->u->u_ste->ste_generator)
+ {
+ return compiler_error(
+ c, "'return' with value in async generator");
+ }
+ if (preserve_tos) {
+ VISIT(c, expr, s->v.Return.value);
+ }
+ if (!compiler_unwind_fblock_stack(c, preserve_tos, NULL))
+ return 0;
+ if (s->v.Return.value == NULL) {
+ ADDOP_LOAD_CONST(c, Py_None);
+ }
+ else if (!preserve_tos) {
+ VISIT(c, expr, s->v.Return.value);
+ }
+ ADDOP(c, RETURN_VALUE);
+
+ return 1;
+}
+
+static int
+compiler_break(struct compiler *c)
+{
+ struct fblockinfo *loop = NULL;
+ if (!compiler_unwind_fblock_stack(c, 0, &loop)) {
+ return 0;
+ }
+ if (loop == NULL) {
+ return compiler_error(c, "'break' outside loop");
+ }
+ if (!compiler_unwind_fblock(c, loop, 0)) {
+ return 0;
+ }
+ ADDOP_JABS(c, JUMP_ABSOLUTE, loop->fb_exit);
+ return 1;
+}
+static int
+compiler_continue(struct compiler *c)
+{
+ struct fblockinfo *loop = NULL;
+ if (!compiler_unwind_fblock_stack(c, 0, &loop)) {
+ return 0;
+ }
+ if (loop == NULL) {
+ return compiler_error(c, "'continue' not properly in loop");
+ }
+ ADDOP_JABS(c, JUMP_ABSOLUTE, loop->fb_block);
return 1;
}
-static int
-compiler_break(struct compiler *c)
-{
- struct fblockinfo *loop = NULL;
- if (!compiler_unwind_fblock_stack(c, 0, &loop)) {
- return 0;
- }
- if (loop == NULL) {
- return compiler_error(c, "'break' outside loop");
- }
- if (!compiler_unwind_fblock(c, loop, 0)) {
- return 0;
- }
- ADDOP_JABS(c, JUMP_ABSOLUTE, loop->fb_exit);
- return 1;
-}
-
-static int
-compiler_continue(struct compiler *c)
-{
- struct fblockinfo *loop = NULL;
- if (!compiler_unwind_fblock_stack(c, 0, &loop)) {
- return 0;
- }
- if (loop == NULL) {
- return compiler_error(c, "'continue' not properly in loop");
- }
- ADDOP_JABS(c, JUMP_ABSOLUTE, loop->fb_block);
- return 1;
-}
-
-
+
/* Code generated for "try: <body> finally: <finalbody>" is as follows:
SETUP_FINALLY L
<code for body>
POP_BLOCK
- <code for finalbody>
- JUMP E
- L:
- <code for finalbody>
- E:
+ <code for finalbody>
+ JUMP E
+ L:
+ <code for finalbody>
+ E:
The special instructions use the block stack. Each block
stack entry contains the instruction that created it (here
@@ -2978,30 +2978,30 @@ compiler_continue(struct compiler *c)
Pushes the current value stack level and the label
onto the block stack.
POP_BLOCK:
- Pops en entry from the block stack.
+ Pops en entry from the block stack.
The block stack is unwound when an exception is raised:
- when a SETUP_FINALLY entry is found, the raised and the caught
- exceptions are pushed onto the value stack (and the exception
- condition is cleared), and the interpreter jumps to the label
- gotten from the block stack.
+ when a SETUP_FINALLY entry is found, the raised and the caught
+ exceptions are pushed onto the value stack (and the exception
+ condition is cleared), and the interpreter jumps to the label
+ gotten from the block stack.
*/
static int
compiler_try_finally(struct compiler *c, stmt_ty s)
{
- basicblock *body, *end, *exit;
-
+ basicblock *body, *end, *exit;
+
body = compiler_new_block(c);
end = compiler_new_block(c);
- exit = compiler_new_block(c);
- if (body == NULL || end == NULL || exit == NULL)
+ exit = compiler_new_block(c);
+ if (body == NULL || end == NULL || exit == NULL)
return 0;
- /* `try` block */
+ /* `try` block */
ADDOP_JREL(c, SETUP_FINALLY, end);
compiler_use_next_block(c, body);
- if (!compiler_push_fblock(c, FINALLY_TRY, body, end, s->v.Try.finalbody))
+ if (!compiler_push_fblock(c, FINALLY_TRY, body, end, s->v.Try.finalbody))
return 0;
if (s->v.Try.handlers && asdl_seq_LEN(s->v.Try.handlers)) {
if (!compiler_try_except(c, s))
@@ -3011,17 +3011,17 @@ compiler_try_finally(struct compiler *c, stmt_ty s)
VISIT_SEQ(c, stmt, s->v.Try.body);
}
ADDOP(c, POP_BLOCK);
- compiler_pop_fblock(c, FINALLY_TRY, body);
- VISIT_SEQ(c, stmt, s->v.Try.finalbody);
- ADDOP_JREL(c, JUMP_FORWARD, exit);
- /* `finally` block */
- compiler_use_next_block(c, end);
- if (!compiler_push_fblock(c, FINALLY_END, end, NULL, NULL))
- return 0;
- VISIT_SEQ(c, stmt, s->v.Try.finalbody);
- compiler_pop_fblock(c, FINALLY_END, end);
- ADDOP(c, RERAISE);
- compiler_use_next_block(c, exit);
+ compiler_pop_fblock(c, FINALLY_TRY, body);
+ VISIT_SEQ(c, stmt, s->v.Try.finalbody);
+ ADDOP_JREL(c, JUMP_FORWARD, exit);
+ /* `finally` block */
+ compiler_use_next_block(c, end);
+ if (!compiler_push_fblock(c, FINALLY_END, end, NULL, NULL))
+ return 0;
+ VISIT_SEQ(c, stmt, s->v.Try.finalbody);
+ compiler_pop_fblock(c, FINALLY_END, end);
+ ADDOP(c, RERAISE);
+ compiler_use_next_block(c, exit);
return 1;
}
@@ -3032,14 +3032,14 @@ compiler_try_finally(struct compiler *c, stmt_ty s)
associated value, and 'exc' the exception.)
Value stack Label Instruction Argument
- [] SETUP_FINALLY L1
+ [] SETUP_FINALLY L1
[] <code for S>
[] POP_BLOCK
[] JUMP_FORWARD L0
[tb, val, exc] L1: DUP )
[tb, val, exc, exc] <evaluate E1> )
- [tb, val, exc, exc, E1] JUMP_IF_NOT_EXC_MATCH L2 ) only if E1
+ [tb, val, exc, exc, E1] JUMP_IF_NOT_EXC_MATCH L2 ) only if E1
[tb, val, exc] POP
[tb, val] <assign to V1> (or POP if no V1)
[tb] POP
@@ -3049,7 +3049,7 @@ compiler_try_finally(struct compiler *c, stmt_ty s)
[tb, val, exc] L2: DUP
.............................etc.......................
- [tb, val, exc] Ln+1: RERAISE # re-raise exception
+ [tb, val, exc] Ln+1: RERAISE # re-raise exception
[] L0: <next statement>
@@ -3067,32 +3067,32 @@ compiler_try_except(struct compiler *c, stmt_ty s)
end = compiler_new_block(c);
if (body == NULL || except == NULL || orelse == NULL || end == NULL)
return 0;
- ADDOP_JREL(c, SETUP_FINALLY, except);
+ ADDOP_JREL(c, SETUP_FINALLY, except);
compiler_use_next_block(c, body);
- if (!compiler_push_fblock(c, TRY_EXCEPT, body, NULL, NULL))
+ if (!compiler_push_fblock(c, TRY_EXCEPT, body, NULL, NULL))
return 0;
VISIT_SEQ(c, stmt, s->v.Try.body);
ADDOP(c, POP_BLOCK);
- compiler_pop_fblock(c, TRY_EXCEPT, body);
+ compiler_pop_fblock(c, TRY_EXCEPT, body);
ADDOP_JREL(c, JUMP_FORWARD, orelse);
n = asdl_seq_LEN(s->v.Try.handlers);
compiler_use_next_block(c, except);
- /* Runtime will push a block here, so we need to account for that */
- if (!compiler_push_fblock(c, EXCEPTION_HANDLER, NULL, NULL, NULL))
- return 0;
+ /* Runtime will push a block here, so we need to account for that */
+ if (!compiler_push_fblock(c, EXCEPTION_HANDLER, NULL, NULL, NULL))
+ return 0;
for (i = 0; i < n; i++) {
excepthandler_ty handler = (excepthandler_ty)asdl_seq_GET(
s->v.Try.handlers, i);
if (!handler->v.ExceptHandler.type && i < n-1)
return compiler_error(c, "default 'except:' must be last");
- SET_LOC(c, handler);
+ SET_LOC(c, handler);
except = compiler_new_block(c);
if (except == NULL)
return 0;
if (handler->v.ExceptHandler.type) {
ADDOP(c, DUP_TOP);
VISIT(c, expr, handler->v.ExceptHandler.type);
- ADDOP_JABS(c, JUMP_IF_NOT_EXC_MATCH, except);
+ ADDOP_JABS(c, JUMP_IF_NOT_EXC_MATCH, except);
}
ADDOP(c, POP_TOP);
if (handler->v.ExceptHandler.name) {
@@ -3114,36 +3114,36 @@ compiler_try_except(struct compiler *c, stmt_ty s)
try:
# body
finally:
- name = None # in case body contains "del name"
+ name = None # in case body contains "del name"
del name
*/
/* second try: */
ADDOP_JREL(c, SETUP_FINALLY, cleanup_end);
compiler_use_next_block(c, cleanup_body);
- if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, handler->v.ExceptHandler.name))
+ if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, handler->v.ExceptHandler.name))
return 0;
/* second # body */
VISIT_SEQ(c, stmt, handler->v.ExceptHandler.body);
- compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body);
+ compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body);
ADDOP(c, POP_BLOCK);
- ADDOP(c, POP_EXCEPT);
- /* name = None; del name */
- ADDOP_LOAD_CONST(c, Py_None);
- compiler_nameop(c, handler->v.ExceptHandler.name, Store);
- compiler_nameop(c, handler->v.ExceptHandler.name, Del);
- ADDOP_JREL(c, JUMP_FORWARD, end);
-
- /* except: */
+ ADDOP(c, POP_EXCEPT);
+ /* name = None; del name */
+ ADDOP_LOAD_CONST(c, Py_None);
+ compiler_nameop(c, handler->v.ExceptHandler.name, Store);
+ compiler_nameop(c, handler->v.ExceptHandler.name, Del);
+ ADDOP_JREL(c, JUMP_FORWARD, end);
+
+ /* except: */
compiler_use_next_block(c, cleanup_end);
- /* name = None; del name */
- ADDOP_LOAD_CONST(c, Py_None);
+ /* name = None; del name */
+ ADDOP_LOAD_CONST(c, Py_None);
compiler_nameop(c, handler->v.ExceptHandler.name, Store);
compiler_nameop(c, handler->v.ExceptHandler.name, Del);
- ADDOP(c, RERAISE);
+ ADDOP(c, RERAISE);
}
else {
basicblock *cleanup_body;
@@ -3155,17 +3155,17 @@ compiler_try_except(struct compiler *c, stmt_ty s)
ADDOP(c, POP_TOP);
ADDOP(c, POP_TOP);
compiler_use_next_block(c, cleanup_body);
- if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, NULL))
+ if (!compiler_push_fblock(c, HANDLER_CLEANUP, cleanup_body, NULL, NULL))
return 0;
VISIT_SEQ(c, stmt, handler->v.ExceptHandler.body);
- compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body);
+ compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body);
ADDOP(c, POP_EXCEPT);
- ADDOP_JREL(c, JUMP_FORWARD, end);
+ ADDOP_JREL(c, JUMP_FORWARD, end);
}
compiler_use_next_block(c, except);
}
- compiler_pop_fblock(c, EXCEPTION_HANDLER, NULL);
- ADDOP(c, RERAISE);
+ compiler_pop_fblock(c, EXCEPTION_HANDLER, NULL);
+ ADDOP(c, RERAISE);
compiler_use_next_block(c, orelse);
VISIT_SEQ(c, stmt, s->v.Try.orelse);
compiler_use_next_block(c, end);
@@ -3237,8 +3237,8 @@ compiler_import(struct compiler *c, stmt_ty s)
alias_ty alias = (alias_ty)asdl_seq_GET(s->v.Import.names, i);
int r;
- ADDOP_LOAD_CONST(c, _PyLong_Zero);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, _PyLong_Zero);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP_NAME(c, IMPORT_NAME, alias->name, names);
if (alias->asname) {
@@ -3270,7 +3270,7 @@ static int
compiler_from_import(struct compiler *c, stmt_ty s)
{
Py_ssize_t i, n = asdl_seq_LEN(s->v.ImportFrom.names);
- PyObject *names;
+ PyObject *names;
static PyObject *empty_string;
if (!empty_string) {
@@ -3279,7 +3279,7 @@ compiler_from_import(struct compiler *c, stmt_ty s)
return 0;
}
- ADDOP_LOAD_CONST_NEW(c, PyLong_FromLong(s->v.ImportFrom.level));
+ ADDOP_LOAD_CONST_NEW(c, PyLong_FromLong(s->v.ImportFrom.level));
names = PyTuple_New(n);
if (!names)
@@ -3298,7 +3298,7 @@ compiler_from_import(struct compiler *c, stmt_ty s)
return compiler_error(c, "from __future__ imports must occur "
"at the beginning of the file");
}
- ADDOP_LOAD_CONST_NEW(c, names);
+ ADDOP_LOAD_CONST_NEW(c, names);
if (s->v.ImportFrom.module) {
ADDOP_NAME(c, IMPORT_NAME, s->v.ImportFrom.module, names);
@@ -3338,11 +3338,11 @@ compiler_assert(struct compiler *c, stmt_ty s)
if (c->c_optimize)
return 1;
if (s->v.Assert.test->kind == Tuple_kind &&
- asdl_seq_LEN(s->v.Assert.test->v.Tuple.elts) > 0)
- {
- if (!compiler_warn(c, "assertion is always true, "
- "perhaps remove parentheses?"))
- {
+ asdl_seq_LEN(s->v.Assert.test->v.Tuple.elts) > 0)
+ {
+ if (!compiler_warn(c, "assertion is always true, "
+ "perhaps remove parentheses?"))
+ {
return 0;
}
}
@@ -3351,7 +3351,7 @@ compiler_assert(struct compiler *c, stmt_ty s)
return 0;
if (!compiler_jump_if(c, s->v.Assert.test, end, 1))
return 0;
- ADDOP(c, LOAD_ASSERTION_ERROR);
+ ADDOP(c, LOAD_ASSERTION_ERROR);
if (s->v.Assert.msg) {
VISIT(c, expr, s->v.Assert.msg);
ADDOP_I(c, CALL_FUNCTION, 1);
@@ -3370,7 +3370,7 @@ compiler_visit_stmt_expr(struct compiler *c, expr_ty value)
return 1;
}
- if (value->kind == Constant_kind) {
+ if (value->kind == Constant_kind) {
/* ignore constant statement */
return 1;
}
@@ -3386,7 +3386,7 @@ compiler_visit_stmt(struct compiler *c, stmt_ty s)
Py_ssize_t i, n;
/* Always assign a lineno to the next instruction for a stmt. */
- SET_LOC(c, s);
+ SET_LOC(c, s);
switch (s->kind) {
case FunctionDef_kind:
@@ -3394,7 +3394,7 @@ compiler_visit_stmt(struct compiler *c, stmt_ty s)
case ClassDef_kind:
return compiler_class(c, s);
case Return_kind:
- return compiler_return(c, s);
+ return compiler_return(c, s);
case Delete_kind:
VISIT_SEQ(c, expr, s->v.Delete.targets)
break;
@@ -3446,7 +3446,7 @@ compiler_visit_stmt(struct compiler *c, stmt_ty s)
case Pass_kind:
break;
case Break_kind:
- return compiler_break(c);
+ return compiler_break(c);
case Continue_kind:
return compiler_continue(c);
case With_kind:
@@ -3482,7 +3482,7 @@ unaryop(unaryop_ty op)
}
static int
-binop(operator_ty op)
+binop(operator_ty op)
{
switch (op) {
case Add:
@@ -3519,7 +3519,7 @@ binop(operator_ty op)
}
static int
-inplace_binop(operator_ty op)
+inplace_binop(operator_ty op)
{
switch (op) {
case Add:
@@ -3569,9 +3569,9 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx)
!_PyUnicode_EqualToASCIIString(name, "True") &&
!_PyUnicode_EqualToASCIIString(name, "False"));
- if (forbidden_name(c, name, ctx))
- return 0;
-
+ if (forbidden_name(c, name, ctx))
+ return 0;
+
mangled = _Py_Mangle(c->u->u_private, name);
if (!mangled)
return 0;
@@ -3613,14 +3613,14 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx)
case Load:
op = (c->u->u_ste->ste_type == ClassBlock) ? LOAD_CLASSDEREF : LOAD_DEREF;
break;
- case Store: op = STORE_DEREF; break;
+ case Store: op = STORE_DEREF; break;
case Del: op = DELETE_DEREF; break;
}
break;
case OP_FAST:
switch (ctx) {
case Load: op = LOAD_FAST; break;
- case Store: op = STORE_FAST; break;
+ case Store: op = STORE_FAST; break;
case Del: op = DELETE_FAST; break;
}
ADDOP_N(c, op, mangled, varnames);
@@ -3628,21 +3628,21 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx)
case OP_GLOBAL:
switch (ctx) {
case Load: op = LOAD_GLOBAL; break;
- case Store: op = STORE_GLOBAL; break;
+ case Store: op = STORE_GLOBAL; break;
case Del: op = DELETE_GLOBAL; break;
}
break;
case OP_NAME:
switch (ctx) {
case Load: op = LOAD_NAME; break;
- case Store: op = STORE_NAME; break;
+ case Store: op = STORE_NAME; break;
case Del: op = DELETE_NAME; break;
}
break;
}
assert(op);
- arg = compiler_add_o(dict, mangled);
+ arg = compiler_add_o(dict, mangled);
Py_DECREF(mangled);
if (arg < 0)
return 0;
@@ -3678,78 +3678,78 @@ compiler_boolop(struct compiler *c, expr_ty e)
}
static int
-starunpack_helper(struct compiler *c, asdl_seq *elts, int pushed,
- int build, int add, int extend, int tuple)
+starunpack_helper(struct compiler *c, asdl_seq *elts, int pushed,
+ int build, int add, int extend, int tuple)
{
Py_ssize_t n = asdl_seq_LEN(elts);
- Py_ssize_t i, seen_star = 0;
- if (n > 2 && are_all_items_const(elts, 0, n)) {
- PyObject *folded = PyTuple_New(n);
- if (folded == NULL) {
- return 0;
- }
- PyObject *val;
- for (i = 0; i < n; i++) {
- val = ((expr_ty)asdl_seq_GET(elts, i))->v.Constant.value;
- Py_INCREF(val);
- PyTuple_SET_ITEM(folded, i, val);
- }
- if (tuple) {
- ADDOP_LOAD_CONST_NEW(c, folded);
- } else {
- if (add == SET_ADD) {
- Py_SETREF(folded, PyFrozenSet_New(folded));
- if (folded == NULL) {
- return 0;
- }
- }
- ADDOP_I(c, build, pushed);
- ADDOP_LOAD_CONST_NEW(c, folded);
- ADDOP_I(c, extend, 1);
- }
- return 1;
- }
-
+ Py_ssize_t i, seen_star = 0;
+ if (n > 2 && are_all_items_const(elts, 0, n)) {
+ PyObject *folded = PyTuple_New(n);
+ if (folded == NULL) {
+ return 0;
+ }
+ PyObject *val;
+ for (i = 0; i < n; i++) {
+ val = ((expr_ty)asdl_seq_GET(elts, i))->v.Constant.value;
+ Py_INCREF(val);
+ PyTuple_SET_ITEM(folded, i, val);
+ }
+ if (tuple) {
+ ADDOP_LOAD_CONST_NEW(c, folded);
+ } else {
+ if (add == SET_ADD) {
+ Py_SETREF(folded, PyFrozenSet_New(folded));
+ if (folded == NULL) {
+ return 0;
+ }
+ }
+ ADDOP_I(c, build, pushed);
+ ADDOP_LOAD_CONST_NEW(c, folded);
+ ADDOP_I(c, extend, 1);
+ }
+ return 1;
+ }
+
for (i = 0; i < n; i++) {
expr_ty elt = asdl_seq_GET(elts, i);
if (elt->kind == Starred_kind) {
- seen_star = 1;
- }
- }
- if (seen_star) {
- seen_star = 0;
- for (i = 0; i < n; i++) {
- expr_ty elt = asdl_seq_GET(elts, i);
- if (elt->kind == Starred_kind) {
- if (seen_star == 0) {
- ADDOP_I(c, build, i+pushed);
- seen_star = 1;
- }
- VISIT(c, expr, elt->v.Starred.value);
- ADDOP_I(c, extend, 1);
+ seen_star = 1;
+ }
+ }
+ if (seen_star) {
+ seen_star = 0;
+ for (i = 0; i < n; i++) {
+ expr_ty elt = asdl_seq_GET(elts, i);
+ if (elt->kind == Starred_kind) {
+ if (seen_star == 0) {
+ ADDOP_I(c, build, i+pushed);
+ seen_star = 1;
+ }
+ VISIT(c, expr, elt->v.Starred.value);
+ ADDOP_I(c, extend, 1);
+ }
+ else {
+ VISIT(c, expr, elt);
+ if (seen_star) {
+ ADDOP_I(c, add, 1);
+ }
}
- else {
- VISIT(c, expr, elt);
- if (seen_star) {
- ADDOP_I(c, add, 1);
- }
- }
}
- assert(seen_star);
- if (tuple) {
- ADDOP(c, LIST_TO_TUPLE);
+ assert(seen_star);
+ if (tuple) {
+ ADDOP(c, LIST_TO_TUPLE);
}
}
- else {
- for (i = 0; i < n; i++) {
- expr_ty elt = asdl_seq_GET(elts, i);
- VISIT(c, expr, elt);
+ else {
+ for (i = 0; i < n; i++) {
+ expr_ty elt = asdl_seq_GET(elts, i);
+ VISIT(c, expr, elt);
+ }
+ if (tuple) {
+ ADDOP_I(c, BUILD_TUPLE, n+pushed);
+ } else {
+ ADDOP_I(c, build, n+pushed);
}
- if (tuple) {
- ADDOP_I(c, BUILD_TUPLE, n+pushed);
- } else {
- ADDOP_I(c, build, n+pushed);
- }
}
return 1;
}
@@ -3773,16 +3773,16 @@ assignment_helper(struct compiler *c, asdl_seq *elts)
}
else if (elt->kind == Starred_kind) {
return compiler_error(c,
- "multiple starred expressions in assignment");
+ "multiple starred expressions in assignment");
}
}
if (!seen_star) {
ADDOP_I(c, UNPACK_SEQUENCE, n);
}
- for (i = 0; i < n; i++) {
- expr_ty elt = asdl_seq_GET(elts, i);
- VISIT(c, expr, elt->kind != Starred_kind ? elt : elt->v.Starred.value);
- }
+ for (i = 0; i < n; i++) {
+ expr_ty elt = asdl_seq_GET(elts, i);
+ VISIT(c, expr, elt->kind != Starred_kind ? elt : elt->v.Starred.value);
+ }
return 1;
}
@@ -3794,8 +3794,8 @@ compiler_list(struct compiler *c, expr_ty e)
return assignment_helper(c, elts);
}
else if (e->v.List.ctx == Load) {
- return starunpack_helper(c, elts, 0, BUILD_LIST,
- LIST_APPEND, LIST_EXTEND, 0);
+ return starunpack_helper(c, elts, 0, BUILD_LIST,
+ LIST_APPEND, LIST_EXTEND, 0);
}
else
VISIT_SEQ(c, expr, elts);
@@ -3810,8 +3810,8 @@ compiler_tuple(struct compiler *c, expr_ty e)
return assignment_helper(c, elts);
}
else if (e->v.Tuple.ctx == Load) {
- return starunpack_helper(c, elts, 0, BUILD_LIST,
- LIST_APPEND, LIST_EXTEND, 1);
+ return starunpack_helper(c, elts, 0, BUILD_LIST,
+ LIST_APPEND, LIST_EXTEND, 1);
}
else
VISIT_SEQ(c, expr, elts);
@@ -3821,8 +3821,8 @@ compiler_tuple(struct compiler *c, expr_ty e)
static int
compiler_set(struct compiler *c, expr_ty e)
{
- return starunpack_helper(c, e->v.Set.elts, 0, BUILD_SET,
- SET_ADD, SET_UPDATE, 0);
+ return starunpack_helper(c, e->v.Set.elts, 0, BUILD_SET,
+ SET_ADD, SET_UPDATE, 0);
}
static int
@@ -3831,7 +3831,7 @@ are_all_items_const(asdl_seq *seq, Py_ssize_t begin, Py_ssize_t end)
Py_ssize_t i;
for (i = begin; i < end; i++) {
expr_ty key = (expr_ty)asdl_seq_GET(seq, i);
- if (key == NULL || key->kind != Constant_kind)
+ if (key == NULL || key->kind != Constant_kind)
return 0;
}
return 1;
@@ -3851,11 +3851,11 @@ compiler_subdict(struct compiler *c, expr_ty e, Py_ssize_t begin, Py_ssize_t end
return 0;
}
for (i = begin; i < end; i++) {
- key = ((expr_ty)asdl_seq_GET(e->v.Dict.keys, i))->v.Constant.value;
+ key = ((expr_ty)asdl_seq_GET(e->v.Dict.keys, i))->v.Constant.value;
Py_INCREF(key);
PyTuple_SET_ITEM(keys, i - begin, key);
}
- ADDOP_LOAD_CONST_NEW(c, keys);
+ ADDOP_LOAD_CONST_NEW(c, keys);
ADDOP_I(c, BUILD_CONST_KEY_MAP, n);
}
else {
@@ -3872,58 +3872,58 @@ static int
compiler_dict(struct compiler *c, expr_ty e)
{
Py_ssize_t i, n, elements;
- int have_dict;
+ int have_dict;
int is_unpacking = 0;
n = asdl_seq_LEN(e->v.Dict.values);
- have_dict = 0;
+ have_dict = 0;
elements = 0;
for (i = 0; i < n; i++) {
is_unpacking = (expr_ty)asdl_seq_GET(e->v.Dict.keys, i) == NULL;
if (is_unpacking) {
- if (elements) {
- if (!compiler_subdict(c, e, i - elements, i)) {
- return 0;
- }
- if (have_dict) {
- ADDOP_I(c, DICT_UPDATE, 1);
- }
- have_dict = 1;
- elements = 0;
- }
- if (have_dict == 0) {
- ADDOP_I(c, BUILD_MAP, 0);
- have_dict = 1;
- }
+ if (elements) {
+ if (!compiler_subdict(c, e, i - elements, i)) {
+ return 0;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_UPDATE, 1);
+ }
+ have_dict = 1;
+ elements = 0;
+ }
+ if (have_dict == 0) {
+ ADDOP_I(c, BUILD_MAP, 0);
+ have_dict = 1;
+ }
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Dict.values, i));
- ADDOP_I(c, DICT_UPDATE, 1);
+ ADDOP_I(c, DICT_UPDATE, 1);
}
else {
- if (elements == 0xFFFF) {
- if (!compiler_subdict(c, e, i - elements, i + 1)) {
- return 0;
- }
- if (have_dict) {
- ADDOP_I(c, DICT_UPDATE, 1);
- }
- have_dict = 1;
- elements = 0;
- }
- else {
- elements++;
- }
- }
- }
- if (elements) {
- if (!compiler_subdict(c, e, n - elements, n)) {
+ if (elements == 0xFFFF) {
+ if (!compiler_subdict(c, e, i - elements, i + 1)) {
+ return 0;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_UPDATE, 1);
+ }
+ have_dict = 1;
+ elements = 0;
+ }
+ else {
+ elements++;
+ }
+ }
+ }
+ if (elements) {
+ if (!compiler_subdict(c, e, n - elements, n)) {
return 0;
- }
- if (have_dict) {
- ADDOP_I(c, DICT_UPDATE, 1);
- }
- have_dict = 1;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_UPDATE, 1);
+ }
+ have_dict = 1;
}
- if (!have_dict) {
- ADDOP_I(c, BUILD_MAP, 0);
+ if (!have_dict) {
+ ADDOP_I(c, BUILD_MAP, 0);
}
return 1;
}
@@ -3933,15 +3933,15 @@ compiler_compare(struct compiler *c, expr_ty e)
{
Py_ssize_t i, n;
- if (!check_compare(c, e)) {
- return 0;
- }
+ if (!check_compare(c, e)) {
+ return 0;
+ }
VISIT(c, expr, e->v.Compare.left);
assert(asdl_seq_LEN(e->v.Compare.ops) > 0);
n = asdl_seq_LEN(e->v.Compare.ops) - 1;
if (n == 0) {
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, 0));
- ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, 0));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, 0));
}
else {
basicblock *cleanup = compiler_new_block(c);
@@ -3952,12 +3952,12 @@ compiler_compare(struct compiler *c, expr_ty e)
(expr_ty)asdl_seq_GET(e->v.Compare.comparators, i));
ADDOP(c, DUP_TOP);
ADDOP(c, ROT_THREE);
- ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, i));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, i));
ADDOP_JABS(c, JUMP_IF_FALSE_OR_POP, cleanup);
NEXT_BLOCK(c);
}
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n));
- ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n));
basicblock *end = compiler_new_block(c);
if (end == NULL)
return 0;
@@ -3970,120 +3970,120 @@ compiler_compare(struct compiler *c, expr_ty e)
return 1;
}
-static PyTypeObject *
-infer_type(expr_ty e)
-{
- switch (e->kind) {
- case Tuple_kind:
- return &PyTuple_Type;
- case List_kind:
- case ListComp_kind:
- return &PyList_Type;
- case Dict_kind:
- case DictComp_kind:
- return &PyDict_Type;
- case Set_kind:
- case SetComp_kind:
- return &PySet_Type;
- case GeneratorExp_kind:
- return &PyGen_Type;
- case Lambda_kind:
- return &PyFunction_Type;
- case JoinedStr_kind:
- case FormattedValue_kind:
- return &PyUnicode_Type;
- case Constant_kind:
- return Py_TYPE(e->v.Constant.value);
- default:
- return NULL;
- }
-}
-
-static int
-check_caller(struct compiler *c, expr_ty e)
-{
- switch (e->kind) {
- case Constant_kind:
- case Tuple_kind:
- case List_kind:
- case ListComp_kind:
- case Dict_kind:
- case DictComp_kind:
- case Set_kind:
- case SetComp_kind:
- case GeneratorExp_kind:
- case JoinedStr_kind:
- case FormattedValue_kind:
- return compiler_warn(c, "'%.200s' object is not callable; "
- "perhaps you missed a comma?",
- infer_type(e)->tp_name);
- default:
- return 1;
- }
-}
-
-static int
-check_subscripter(struct compiler *c, expr_ty e)
-{
- PyObject *v;
-
- switch (e->kind) {
- case Constant_kind:
- v = e->v.Constant.value;
- if (!(v == Py_None || v == Py_Ellipsis ||
- PyLong_Check(v) || PyFloat_Check(v) || PyComplex_Check(v) ||
- PyAnySet_Check(v)))
- {
- return 1;
- }
- /* fall through */
- case Set_kind:
- case SetComp_kind:
- case GeneratorExp_kind:
- case Lambda_kind:
- return compiler_warn(c, "'%.200s' object is not subscriptable; "
- "perhaps you missed a comma?",
- infer_type(e)->tp_name);
- default:
- return 1;
- }
-}
-
-static int
-check_index(struct compiler *c, expr_ty e, expr_ty s)
-{
- PyObject *v;
-
- PyTypeObject *index_type = infer_type(s);
- if (index_type == NULL
- || PyType_FastSubclass(index_type, Py_TPFLAGS_LONG_SUBCLASS)
- || index_type == &PySlice_Type) {
- return 1;
- }
-
- switch (e->kind) {
- case Constant_kind:
- v = e->v.Constant.value;
- if (!(PyUnicode_Check(v) || PyBytes_Check(v) || PyTuple_Check(v))) {
- return 1;
- }
- /* fall through */
- case Tuple_kind:
- case List_kind:
- case ListComp_kind:
- case JoinedStr_kind:
- case FormattedValue_kind:
- return compiler_warn(c, "%.200s indices must be integers or slices, "
- "not %.200s; "
- "perhaps you missed a comma?",
- infer_type(e)->tp_name,
- index_type->tp_name);
- default:
- return 1;
- }
-}
-
-// Return 1 if the method call was optimized, -1 if not, and 0 on error.
+static PyTypeObject *
+infer_type(expr_ty e)
+{
+ switch (e->kind) {
+ case Tuple_kind:
+ return &PyTuple_Type;
+ case List_kind:
+ case ListComp_kind:
+ return &PyList_Type;
+ case Dict_kind:
+ case DictComp_kind:
+ return &PyDict_Type;
+ case Set_kind:
+ case SetComp_kind:
+ return &PySet_Type;
+ case GeneratorExp_kind:
+ return &PyGen_Type;
+ case Lambda_kind:
+ return &PyFunction_Type;
+ case JoinedStr_kind:
+ case FormattedValue_kind:
+ return &PyUnicode_Type;
+ case Constant_kind:
+ return Py_TYPE(e->v.Constant.value);
+ default:
+ return NULL;
+ }
+}
+
+static int
+check_caller(struct compiler *c, expr_ty e)
+{
+ switch (e->kind) {
+ case Constant_kind:
+ case Tuple_kind:
+ case List_kind:
+ case ListComp_kind:
+ case Dict_kind:
+ case DictComp_kind:
+ case Set_kind:
+ case SetComp_kind:
+ case GeneratorExp_kind:
+ case JoinedStr_kind:
+ case FormattedValue_kind:
+ return compiler_warn(c, "'%.200s' object is not callable; "
+ "perhaps you missed a comma?",
+ infer_type(e)->tp_name);
+ default:
+ return 1;
+ }
+}
+
+static int
+check_subscripter(struct compiler *c, expr_ty e)
+{
+ PyObject *v;
+
+ switch (e->kind) {
+ case Constant_kind:
+ v = e->v.Constant.value;
+ if (!(v == Py_None || v == Py_Ellipsis ||
+ PyLong_Check(v) || PyFloat_Check(v) || PyComplex_Check(v) ||
+ PyAnySet_Check(v)))
+ {
+ return 1;
+ }
+ /* fall through */
+ case Set_kind:
+ case SetComp_kind:
+ case GeneratorExp_kind:
+ case Lambda_kind:
+ return compiler_warn(c, "'%.200s' object is not subscriptable; "
+ "perhaps you missed a comma?",
+ infer_type(e)->tp_name);
+ default:
+ return 1;
+ }
+}
+
+static int
+check_index(struct compiler *c, expr_ty e, expr_ty s)
+{
+ PyObject *v;
+
+ PyTypeObject *index_type = infer_type(s);
+ if (index_type == NULL
+ || PyType_FastSubclass(index_type, Py_TPFLAGS_LONG_SUBCLASS)
+ || index_type == &PySlice_Type) {
+ return 1;
+ }
+
+ switch (e->kind) {
+ case Constant_kind:
+ v = e->v.Constant.value;
+ if (!(PyUnicode_Check(v) || PyBytes_Check(v) || PyTuple_Check(v))) {
+ return 1;
+ }
+ /* fall through */
+ case Tuple_kind:
+ case List_kind:
+ case ListComp_kind:
+ case JoinedStr_kind:
+ case FormattedValue_kind:
+ return compiler_warn(c, "%.200s indices must be integers or slices, "
+ "not %.200s; "
+ "perhaps you missed a comma?",
+ infer_type(e)->tp_name,
+ index_type->tp_name);
+ default:
+ return 1;
+ }
+}
+
+// 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)
{
@@ -4115,44 +4115,44 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e)
}
static int
-validate_keywords(struct compiler *c, asdl_seq *keywords)
-{
- Py_ssize_t nkeywords = asdl_seq_LEN(keywords);
- for (Py_ssize_t i = 0; i < nkeywords; i++) {
- keyword_ty key = ((keyword_ty)asdl_seq_GET(keywords, i));
- if (key->arg == NULL) {
- continue;
- }
- if (forbidden_name(c, key->arg, Store)) {
- return -1;
- }
- for (Py_ssize_t j = i + 1; j < nkeywords; j++) {
- keyword_ty other = ((keyword_ty)asdl_seq_GET(keywords, j));
- if (other->arg && !PyUnicode_Compare(key->arg, other->arg)) {
- PyObject *msg = PyUnicode_FromFormat("keyword argument repeated: %U", key->arg);
- if (msg == NULL) {
- return -1;
- }
- c->u->u_col_offset = other->col_offset;
- compiler_error(c, PyUnicode_AsUTF8(msg));
- Py_DECREF(msg);
- return -1;
- }
- }
- }
- return 0;
-}
-
-static int
+validate_keywords(struct compiler *c, asdl_seq *keywords)
+{
+ Py_ssize_t nkeywords = asdl_seq_LEN(keywords);
+ for (Py_ssize_t i = 0; i < nkeywords; i++) {
+ keyword_ty key = ((keyword_ty)asdl_seq_GET(keywords, i));
+ if (key->arg == NULL) {
+ continue;
+ }
+ if (forbidden_name(c, key->arg, Store)) {
+ return -1;
+ }
+ for (Py_ssize_t j = i + 1; j < nkeywords; j++) {
+ keyword_ty other = ((keyword_ty)asdl_seq_GET(keywords, j));
+ if (other->arg && !PyUnicode_Compare(key->arg, other->arg)) {
+ PyObject *msg = PyUnicode_FromFormat("keyword argument repeated: %U", key->arg);
+ if (msg == NULL) {
+ return -1;
+ }
+ c->u->u_col_offset = other->col_offset;
+ compiler_error(c, PyUnicode_AsUTF8(msg));
+ Py_DECREF(msg);
+ return -1;
+ }
+ }
+ }
+ return 0;
+}
+
+static int
compiler_call(struct compiler *c, expr_ty e)
{
- int ret = maybe_optimize_method_call(c, e);
- if (ret >= 0) {
- return ret;
- }
- if (!check_caller(c, e->v.Call.func)) {
- return 0;
- }
+ int ret = maybe_optimize_method_call(c, e);
+ if (ret >= 0) {
+ return ret;
+ }
+ if (!check_caller(c, e->v.Call.func)) {
+ return 0;
+ }
VISIT(c, expr, e->v.Call.func);
return compiler_call_helper(c, 0,
e->v.Call.args,
@@ -4175,8 +4175,8 @@ compiler_formatted_value(struct compiler *c, expr_ty e)
/* Our oparg encodes 2 pieces of information: the conversion
character, and whether or not a format_spec was provided.
- Convert the conversion char to 3 bits:
- : 000 0x0 FVC_NONE The default if nothing specified.
+ Convert the conversion char to 3 bits:
+ : 000 0x0 FVC_NONE The default if nothing specified.
!s : 001 0x1 FVC_STR
!r : 010 0x2 FVC_REPR
!a : 011 0x3 FVC_ASCII
@@ -4186,20 +4186,20 @@ compiler_formatted_value(struct compiler *c, expr_ty e)
no : 000 0x0
*/
- int conversion = e->v.FormattedValue.conversion;
+ int conversion = e->v.FormattedValue.conversion;
int oparg;
- /* The expression to be formatted. */
+ /* The expression to be formatted. */
VISIT(c, expr, e->v.FormattedValue.value);
- switch (conversion) {
+ switch (conversion) {
case 's': oparg = FVC_STR; break;
case 'r': oparg = FVC_REPR; break;
case 'a': oparg = FVC_ASCII; break;
case -1: oparg = FVC_NONE; break;
default:
- PyErr_Format(PyExc_SystemError,
- "Unrecognized conversion character %d", conversion);
+ PyErr_Format(PyExc_SystemError,
+ "Unrecognized conversion character %d", conversion);
return 0;
}
if (e->v.FormattedValue.format_spec) {
@@ -4210,7 +4210,7 @@ compiler_formatted_value(struct compiler *c, expr_ty e)
/* And push our opcode and oparg */
ADDOP_I(c, FORMAT_VALUE, oparg);
-
+
return 1;
}
@@ -4235,14 +4235,14 @@ compiler_subkwargs(struct compiler *c, asdl_seq *keywords, Py_ssize_t begin, Py_
Py_INCREF(key);
PyTuple_SET_ITEM(keys, i - begin, key);
}
- ADDOP_LOAD_CONST_NEW(c, keys);
+ ADDOP_LOAD_CONST_NEW(c, keys);
ADDOP_I(c, BUILD_CONST_KEY_MAP, n);
}
else {
/* a for loop only executes once */
for (i = begin; i < end; i++) {
kw = asdl_seq_GET(keywords, i);
- ADDOP_LOAD_CONST(c, kw->arg);
+ ADDOP_LOAD_CONST(c, kw->arg);
VISIT(c, expr, kw->value);
}
ADDOP_I(c, BUILD_MAP, n);
@@ -4259,89 +4259,89 @@ compiler_call_helper(struct compiler *c,
{
Py_ssize_t i, nseen, nelts, nkwelts;
- if (validate_keywords(c, keywords) == -1) {
- return 0;
- }
+ if (validate_keywords(c, keywords) == -1) {
+ return 0;
+ }
nelts = asdl_seq_LEN(args);
nkwelts = asdl_seq_LEN(keywords);
- for (i = 0; i < nelts; i++) {
- expr_ty elt = asdl_seq_GET(args, i);
- if (elt->kind == Starred_kind) {
- goto ex_call;
- }
- }
+ for (i = 0; i < nelts; i++) {
+ expr_ty elt = asdl_seq_GET(args, i);
+ if (elt->kind == Starred_kind) {
+ goto ex_call;
+ }
+ }
for (i = 0; i < nkwelts; i++) {
keyword_ty kw = asdl_seq_GET(keywords, i);
if (kw->arg == NULL) {
- goto ex_call;
+ goto ex_call;
}
}
- /* No * or ** args, so can use faster calling sequence */
+ /* No * or ** args, so can use faster calling sequence */
for (i = 0; i < nelts; i++) {
expr_ty elt = asdl_seq_GET(args, i);
- assert(elt->kind != Starred_kind);
- VISIT(c, expr, elt);
- }
- if (nkwelts) {
- PyObject *names;
- VISIT_SEQ(c, keyword, keywords);
- names = PyTuple_New(nkwelts);
- if (names == NULL) {
- return 0;
- }
- for (i = 0; i < nkwelts; i++) {
- keyword_ty kw = asdl_seq_GET(keywords, i);
- Py_INCREF(kw->arg);
- PyTuple_SET_ITEM(names, i, kw->arg);
- }
- ADDOP_LOAD_CONST_NEW(c, names);
- ADDOP_I(c, CALL_FUNCTION_KW, n + nelts + nkwelts);
- return 1;
- }
- else {
- ADDOP_I(c, CALL_FUNCTION, n + nelts);
- return 1;
- }
-
-ex_call:
-
- /* Do positional arguments. */
- if (n ==0 && nelts == 1 && ((expr_ty)asdl_seq_GET(args, 0))->kind == Starred_kind) {
- VISIT(c, expr, ((expr_ty)asdl_seq_GET(args, 0))->v.Starred.value);
- }
- else if (starunpack_helper(c, args, n, BUILD_LIST,
- LIST_APPEND, LIST_EXTEND, 1) == 0) {
- return 0;
- }
- /* Then keyword arguments */
- if (nkwelts) {
- /* Has a new dict been pushed */
- int have_dict = 0;
-
+ assert(elt->kind != Starred_kind);
+ VISIT(c, expr, elt);
+ }
+ if (nkwelts) {
+ PyObject *names;
+ VISIT_SEQ(c, keyword, keywords);
+ names = PyTuple_New(nkwelts);
+ if (names == NULL) {
+ return 0;
+ }
+ for (i = 0; i < nkwelts; i++) {
+ keyword_ty kw = asdl_seq_GET(keywords, i);
+ Py_INCREF(kw->arg);
+ PyTuple_SET_ITEM(names, i, kw->arg);
+ }
+ ADDOP_LOAD_CONST_NEW(c, names);
+ ADDOP_I(c, CALL_FUNCTION_KW, n + nelts + nkwelts);
+ return 1;
+ }
+ else {
+ ADDOP_I(c, CALL_FUNCTION, n + nelts);
+ return 1;
+ }
+
+ex_call:
+
+ /* Do positional arguments. */
+ if (n ==0 && nelts == 1 && ((expr_ty)asdl_seq_GET(args, 0))->kind == Starred_kind) {
+ VISIT(c, expr, ((expr_ty)asdl_seq_GET(args, 0))->v.Starred.value);
+ }
+ else if (starunpack_helper(c, args, n, BUILD_LIST,
+ LIST_APPEND, LIST_EXTEND, 1) == 0) {
+ return 0;
+ }
+ /* Then keyword arguments */
+ if (nkwelts) {
+ /* Has a new dict been pushed */
+ int have_dict = 0;
+
nseen = 0; /* the number of keyword arguments on the stack following */
for (i = 0; i < nkwelts; i++) {
keyword_ty kw = asdl_seq_GET(keywords, i);
if (kw->arg == NULL) {
/* A keyword argument unpacking. */
if (nseen) {
- if (!compiler_subkwargs(c, keywords, i - nseen, i)) {
+ if (!compiler_subkwargs(c, keywords, i - nseen, i)) {
return 0;
- }
- if (have_dict) {
- ADDOP_I(c, DICT_MERGE, 1);
- }
- have_dict = 1;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_MERGE, 1);
+ }
+ have_dict = 1;
nseen = 0;
}
- if (!have_dict) {
- ADDOP_I(c, BUILD_MAP, 0);
- have_dict = 1;
- }
+ if (!have_dict) {
+ ADDOP_I(c, BUILD_MAP, 0);
+ have_dict = 1;
+ }
VISIT(c, expr, kw->value);
- ADDOP_I(c, DICT_MERGE, 1);
+ ADDOP_I(c, DICT_MERGE, 1);
}
else {
nseen++;
@@ -4349,18 +4349,18 @@ ex_call:
}
if (nseen) {
/* Pack up any trailing keyword arguments. */
- if (!compiler_subkwargs(c, keywords, nkwelts - nseen, nkwelts)) {
+ if (!compiler_subkwargs(c, keywords, nkwelts - nseen, nkwelts)) {
return 0;
- }
- if (have_dict) {
- ADDOP_I(c, DICT_MERGE, 1);
- }
- have_dict = 1;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_MERGE, 1);
+ }
+ have_dict = 1;
}
- assert(have_dict);
+ assert(have_dict);
}
- ADDOP_I(c, CALL_FUNCTION_EX, nkwelts > 0);
- return 1;
+ ADDOP_I(c, CALL_FUNCTION_EX, nkwelts > 0);
+ return 1;
}
@@ -4381,24 +4381,24 @@ ex_call:
static int
compiler_comprehension_generator(struct compiler *c,
asdl_seq *generators, int gen_index,
- int depth,
+ int depth,
expr_ty elt, expr_ty val, int type)
{
comprehension_ty gen;
gen = (comprehension_ty)asdl_seq_GET(generators, gen_index);
if (gen->is_async) {
return compiler_async_comprehension_generator(
- c, generators, gen_index, depth, elt, val, type);
+ c, generators, gen_index, depth, elt, val, type);
} else {
return compiler_sync_comprehension_generator(
- c, generators, gen_index, depth, elt, val, type);
+ c, generators, gen_index, depth, elt, val, type);
}
}
static int
compiler_sync_comprehension_generator(struct compiler *c,
asdl_seq *generators, int gen_index,
- int depth,
+ int depth,
expr_ty elt, expr_ty val, int type)
{
/* generate code for the iterator, then each of the ifs,
@@ -4426,38 +4426,38 @@ compiler_sync_comprehension_generator(struct compiler *c,
}
else {
/* Sub-iter - calculate on the fly */
- /* Fast path for the temporary variable assignment idiom:
- for y in [f(x)]
- */
- asdl_seq *elts;
- switch (gen->iter->kind) {
- case List_kind:
- elts = gen->iter->v.List.elts;
- break;
- case Tuple_kind:
- elts = gen->iter->v.Tuple.elts;
- break;
- default:
- elts = NULL;
- }
- if (asdl_seq_LEN(elts) == 1) {
- expr_ty elt = asdl_seq_GET(elts, 0);
- if (elt->kind != Starred_kind) {
- VISIT(c, expr, elt);
- start = NULL;
- }
- }
- if (start) {
- VISIT(c, expr, gen->iter);
- ADDOP(c, GET_ITER);
- }
- }
- if (start) {
- depth++;
- compiler_use_next_block(c, start);
- ADDOP_JREL(c, FOR_ITER, anchor);
- NEXT_BLOCK(c);
- }
+ /* Fast path for the temporary variable assignment idiom:
+ for y in [f(x)]
+ */
+ asdl_seq *elts;
+ switch (gen->iter->kind) {
+ case List_kind:
+ elts = gen->iter->v.List.elts;
+ break;
+ case Tuple_kind:
+ elts = gen->iter->v.Tuple.elts;
+ break;
+ default:
+ elts = NULL;
+ }
+ if (asdl_seq_LEN(elts) == 1) {
+ expr_ty elt = asdl_seq_GET(elts, 0);
+ if (elt->kind != Starred_kind) {
+ VISIT(c, expr, elt);
+ start = NULL;
+ }
+ }
+ if (start) {
+ VISIT(c, expr, gen->iter);
+ ADDOP(c, GET_ITER);
+ }
+ }
+ if (start) {
+ depth++;
+ compiler_use_next_block(c, start);
+ ADDOP_JREL(c, FOR_ITER, anchor);
+ NEXT_BLOCK(c);
+ }
VISIT(c, expr, gen->target);
/* XXX this needs to be cleaned up...a lot! */
@@ -4471,7 +4471,7 @@ compiler_sync_comprehension_generator(struct compiler *c,
if (++gen_index < asdl_seq_LEN(generators))
if (!compiler_comprehension_generator(c,
- generators, gen_index, depth,
+ generators, gen_index, depth,
elt, val, type))
return 0;
@@ -4486,18 +4486,18 @@ compiler_sync_comprehension_generator(struct compiler *c,
break;
case COMP_LISTCOMP:
VISIT(c, expr, elt);
- ADDOP_I(c, LIST_APPEND, depth + 1);
+ ADDOP_I(c, LIST_APPEND, depth + 1);
break;
case COMP_SETCOMP:
VISIT(c, expr, elt);
- ADDOP_I(c, SET_ADD, depth + 1);
+ ADDOP_I(c, SET_ADD, depth + 1);
break;
case COMP_DICTCOMP:
- /* With '{k: v}', k is evaluated before v, so we do
+ /* With '{k: v}', k is evaluated before v, so we do
the same. */
- VISIT(c, expr, elt);
+ VISIT(c, expr, elt);
VISIT(c, expr, val);
- ADDOP_I(c, MAP_ADD, depth + 1);
+ ADDOP_I(c, MAP_ADD, depth + 1);
break;
default:
return 0;
@@ -4506,10 +4506,10 @@ compiler_sync_comprehension_generator(struct compiler *c,
compiler_use_next_block(c, skip);
}
compiler_use_next_block(c, if_cleanup);
- if (start) {
- ADDOP_JABS(c, JUMP_ABSOLUTE, start);
- compiler_use_next_block(c, anchor);
- }
+ if (start) {
+ ADDOP_JABS(c, JUMP_ABSOLUTE, start);
+ compiler_use_next_block(c, anchor);
+ }
return 1;
}
@@ -4517,17 +4517,17 @@ compiler_sync_comprehension_generator(struct compiler *c,
static int
compiler_async_comprehension_generator(struct compiler *c,
asdl_seq *generators, int gen_index,
- int depth,
+ int depth,
expr_ty elt, expr_ty val, int type)
{
comprehension_ty gen;
- basicblock *start, *if_cleanup, *except;
+ basicblock *start, *if_cleanup, *except;
Py_ssize_t i, n;
- start = compiler_new_block(c);
+ start = compiler_new_block(c);
except = compiler_new_block(c);
if_cleanup = compiler_new_block(c);
- if (start == NULL || if_cleanup == NULL || except == NULL) {
+ if (start == NULL || if_cleanup == NULL || except == NULL) {
return 0;
}
@@ -4544,13 +4544,13 @@ compiler_async_comprehension_generator(struct compiler *c,
ADDOP(c, GET_AITER);
}
- compiler_use_next_block(c, start);
+ compiler_use_next_block(c, start);
- ADDOP_JREL(c, SETUP_FINALLY, except);
+ ADDOP_JREL(c, SETUP_FINALLY, except);
ADDOP(c, GET_ANEXT);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, YIELD_FROM);
- ADDOP(c, POP_BLOCK);
+ ADDOP(c, POP_BLOCK);
VISIT(c, expr, gen->target);
n = asdl_seq_LEN(gen->ifs);
@@ -4561,10 +4561,10 @@ compiler_async_comprehension_generator(struct compiler *c,
NEXT_BLOCK(c);
}
- depth++;
+ depth++;
if (++gen_index < asdl_seq_LEN(generators))
if (!compiler_comprehension_generator(c,
- generators, gen_index, depth,
+ generators, gen_index, depth,
elt, val, type))
return 0;
@@ -4579,28 +4579,28 @@ compiler_async_comprehension_generator(struct compiler *c,
break;
case COMP_LISTCOMP:
VISIT(c, expr, elt);
- ADDOP_I(c, LIST_APPEND, depth + 1);
+ ADDOP_I(c, LIST_APPEND, depth + 1);
break;
case COMP_SETCOMP:
VISIT(c, expr, elt);
- ADDOP_I(c, SET_ADD, depth + 1);
+ ADDOP_I(c, SET_ADD, depth + 1);
break;
case COMP_DICTCOMP:
- /* With '{k: v}', k is evaluated before v, so we do
+ /* With '{k: v}', k is evaluated before v, so we do
the same. */
- VISIT(c, expr, elt);
+ VISIT(c, expr, elt);
VISIT(c, expr, val);
- ADDOP_I(c, MAP_ADD, depth + 1);
+ ADDOP_I(c, MAP_ADD, depth + 1);
break;
default:
return 0;
}
}
compiler_use_next_block(c, if_cleanup);
- ADDOP_JABS(c, JUMP_ABSOLUTE, start);
+ ADDOP_JABS(c, JUMP_ABSOLUTE, start);
- compiler_use_next_block(c, except);
- ADDOP(c, END_ASYNC_FOR);
+ compiler_use_next_block(c, except);
+ ADDOP(c, END_ASYNC_FOR);
return 1;
}
@@ -4614,11 +4614,11 @@ compiler_comprehension(struct compiler *c, expr_ty e, int type,
comprehension_ty outermost;
PyObject *qualname = NULL;
int is_async_generator = 0;
- int top_level_await = IS_TOP_LEVEL_AWAIT(c);
+ int top_level_await = IS_TOP_LEVEL_AWAIT(c);
+
+
+ int is_async_function = c->u->u_ste->ste_coroutine;
-
- int is_async_function = c->u->u_ste->ste_coroutine;
-
outermost = (comprehension_ty) asdl_seq_GET(generators, 0);
if (!compiler_enter_scope(c, name, COMPILER_SCOPE_COMPREHENSION,
(void *)e, e->lineno))
@@ -4628,7 +4628,7 @@ compiler_comprehension(struct compiler *c, expr_ty e, int type,
is_async_generator = c->u->u_ste->ste_coroutine;
- if (is_async_generator && !is_async_function && type != COMP_GENEXP && !top_level_await) {
+ if (is_async_generator && !is_async_function && type != COMP_GENEXP && !top_level_await) {
compiler_error(c, "asynchronous comprehension outside of "
"an asynchronous function");
goto error_in_scope;
@@ -4655,7 +4655,7 @@ compiler_comprehension(struct compiler *c, expr_ty e, int type,
ADDOP_I(c, op, 0);
}
- if (!compiler_comprehension_generator(c, generators, 0, 0, elt,
+ if (!compiler_comprehension_generator(c, generators, 0, 0, elt,
val, type))
goto error_in_scope;
@@ -4667,9 +4667,9 @@ compiler_comprehension(struct compiler *c, expr_ty e, int type,
qualname = c->u->u_qualname;
Py_INCREF(qualname);
compiler_exit_scope(c);
- if (top_level_await && is_async_generator){
- c->u->u_ste->ste_coroutine = 1;
- }
+ if (top_level_await && is_async_generator){
+ c->u->u_ste->ste_coroutine = 1;
+ }
if (co == NULL)
goto error;
@@ -4690,7 +4690,7 @@ compiler_comprehension(struct compiler *c, expr_ty e, int type,
if (is_async_generator && type != COMP_GENEXP) {
ADDOP(c, GET_AWAITABLE);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, YIELD_FROM);
}
@@ -4708,7 +4708,7 @@ compiler_genexp(struct compiler *c, expr_ty e)
{
static identifier name;
if (!name) {
- name = PyUnicode_InternFromString("<genexpr>");
+ name = PyUnicode_InternFromString("<genexpr>");
if (!name)
return 0;
}
@@ -4723,7 +4723,7 @@ compiler_listcomp(struct compiler *c, expr_ty e)
{
static identifier name;
if (!name) {
- name = PyUnicode_InternFromString("<listcomp>");
+ name = PyUnicode_InternFromString("<listcomp>");
if (!name)
return 0;
}
@@ -4738,7 +4738,7 @@ compiler_setcomp(struct compiler *c, expr_ty e)
{
static identifier name;
if (!name) {
- name = PyUnicode_InternFromString("<setcomp>");
+ name = PyUnicode_InternFromString("<setcomp>");
if (!name)
return 0;
}
@@ -4754,7 +4754,7 @@ compiler_dictcomp(struct compiler *c, expr_ty e)
{
static identifier name;
if (!name) {
- name = PyUnicode_InternFromString("<dictcomp>");
+ name = PyUnicode_InternFromString("<dictcomp>");
if (!name)
return 0;
}
@@ -4781,28 +4781,28 @@ compiler_visit_keyword(struct compiler *c, keyword_ty k)
static int
expr_constant(expr_ty e)
{
- if (e->kind == Constant_kind) {
- return PyObject_IsTrue(e->v.Constant.value);
+ if (e->kind == Constant_kind) {
+ return PyObject_IsTrue(e->v.Constant.value);
}
return -1;
}
-static int
-compiler_with_except_finish(struct compiler *c) {
- basicblock *exit;
- exit = compiler_new_block(c);
- if (exit == NULL)
- return 0;
- ADDOP_JABS(c, POP_JUMP_IF_TRUE, exit);
- ADDOP(c, RERAISE);
- compiler_use_next_block(c, exit);
- ADDOP(c, POP_TOP);
- ADDOP(c, POP_TOP);
- ADDOP(c, POP_TOP);
- ADDOP(c, POP_EXCEPT);
- ADDOP(c, POP_TOP);
- return 1;
-}
+static int
+compiler_with_except_finish(struct compiler *c) {
+ basicblock *exit;
+ exit = compiler_new_block(c);
+ if (exit == NULL)
+ return 0;
+ ADDOP_JABS(c, POP_JUMP_IF_TRUE, exit);
+ ADDOP(c, RERAISE);
+ compiler_use_next_block(c, exit);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_TOP);
+ ADDOP(c, POP_EXCEPT);
+ ADDOP(c, POP_TOP);
+ return 1;
+}
/*
Implements the async with statement.
@@ -4831,20 +4831,20 @@ compiler_with_except_finish(struct compiler *c) {
static int
compiler_async_with(struct compiler *c, stmt_ty s, int pos)
{
- basicblock *block, *final, *exit;
+ basicblock *block, *final, *exit;
withitem_ty item = asdl_seq_GET(s->v.AsyncWith.items, pos);
assert(s->kind == AsyncWith_kind);
- if (IS_TOP_LEVEL_AWAIT(c)){
- c->u->u_ste->ste_coroutine = 1;
- } else if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION){
+ if (IS_TOP_LEVEL_AWAIT(c)){
+ c->u->u_ste->ste_coroutine = 1;
+ } else if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION){
return compiler_error(c, "'async with' outside async function");
}
block = compiler_new_block(c);
- final = compiler_new_block(c);
- exit = compiler_new_block(c);
- if (!block || !final || !exit)
+ final = compiler_new_block(c);
+ exit = compiler_new_block(c);
+ if (!block || !final || !exit)
return 0;
/* Evaluate EXPR */
@@ -4852,14 +4852,14 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos)
ADDOP(c, BEFORE_ASYNC_WITH);
ADDOP(c, GET_AWAITABLE);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, YIELD_FROM);
- ADDOP_JREL(c, SETUP_ASYNC_WITH, final);
+ ADDOP_JREL(c, SETUP_ASYNC_WITH, final);
/* SETUP_ASYNC_WITH pushes a finally block. */
compiler_use_next_block(c, block);
- if (!compiler_push_fblock(c, ASYNC_WITH, block, final, NULL)) {
+ if (!compiler_push_fblock(c, ASYNC_WITH, block, final, NULL)) {
return 0;
}
@@ -4878,33 +4878,33 @@ compiler_async_with(struct compiler *c, stmt_ty s, int pos)
else if (!compiler_async_with(c, s, pos))
return 0;
- compiler_pop_fblock(c, ASYNC_WITH, block);
+ compiler_pop_fblock(c, ASYNC_WITH, block);
ADDOP(c, POP_BLOCK);
- /* End of body; start the cleanup */
+ /* End of body; start the cleanup */
- /* For successful outcome:
- * call __exit__(None, None, None)
- */
- if(!compiler_call_exit_with_nones(c))
+ /* For successful outcome:
+ * call __exit__(None, None, None)
+ */
+ if(!compiler_call_exit_with_nones(c))
return 0;
- ADDOP(c, GET_AWAITABLE);
- ADDOP_O(c, LOAD_CONST, Py_None, consts);
- ADDOP(c, YIELD_FROM);
-
- ADDOP(c, POP_TOP);
-
- ADDOP_JABS(c, JUMP_ABSOLUTE, exit);
-
- /* For exceptional outcome: */
- compiler_use_next_block(c, final);
-
- ADDOP(c, WITH_EXCEPT_START);
ADDOP(c, GET_AWAITABLE);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_O(c, LOAD_CONST, Py_None, consts);
+ ADDOP(c, YIELD_FROM);
+
+ ADDOP(c, POP_TOP);
+
+ ADDOP_JABS(c, JUMP_ABSOLUTE, exit);
+
+ /* For exceptional outcome: */
+ compiler_use_next_block(c, final);
+
+ ADDOP(c, WITH_EXCEPT_START);
+ ADDOP(c, GET_AWAITABLE);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, YIELD_FROM);
- compiler_with_except_finish(c);
+ compiler_with_except_finish(c);
-compiler_use_next_block(c, exit);
+compiler_use_next_block(c, exit);
return 1;
}
@@ -4913,45 +4913,45 @@ compiler_use_next_block(c, exit);
Implements the with statement from PEP 343.
with EXPR as VAR:
BLOCK
- is implemented as:
- <code for EXPR>
- SETUP_WITH E
- <code to store to VAR> or POP_TOP
- <code for BLOCK>
- LOAD_CONST (None, None, None)
- CALL_FUNCTION_EX 0
- JUMP_FORWARD EXIT
- E: WITH_EXCEPT_START (calls EXPR.__exit__)
- POP_JUMP_IF_TRUE T:
- RERAISE
- T: POP_TOP * 3 (remove exception from stack)
- POP_EXCEPT
- POP_TOP
- EXIT:
- */
+ is implemented as:
+ <code for EXPR>
+ SETUP_WITH E
+ <code to store to VAR> or POP_TOP
+ <code for BLOCK>
+ LOAD_CONST (None, None, None)
+ CALL_FUNCTION_EX 0
+ JUMP_FORWARD EXIT
+ E: WITH_EXCEPT_START (calls EXPR.__exit__)
+ POP_JUMP_IF_TRUE T:
+ RERAISE
+ T: POP_TOP * 3 (remove exception from stack)
+ POP_EXCEPT
+ POP_TOP
+ EXIT:
+ */
static int
compiler_with(struct compiler *c, stmt_ty s, int pos)
{
- basicblock *block, *final, *exit;
+ basicblock *block, *final, *exit;
withitem_ty item = asdl_seq_GET(s->v.With.items, pos);
assert(s->kind == With_kind);
block = compiler_new_block(c);
- final = compiler_new_block(c);
- exit = compiler_new_block(c);
- if (!block || !final || !exit)
+ final = compiler_new_block(c);
+ exit = compiler_new_block(c);
+ if (!block || !final || !exit)
return 0;
/* Evaluate EXPR */
VISIT(c, expr, item->context_expr);
- /* Will push bound __exit__ */
- ADDOP_JREL(c, SETUP_WITH, final);
+ /* Will push bound __exit__ */
+ ADDOP_JREL(c, SETUP_WITH, final);
/* SETUP_WITH pushes a finally block. */
compiler_use_next_block(c, block);
- if (!compiler_push_fblock(c, WITH, block, final, NULL)) {
+ if (!compiler_push_fblock(c, WITH, block, final, NULL)) {
return 0;
}
@@ -4971,43 +4971,43 @@ compiler_with(struct compiler *c, stmt_ty s, int pos)
return 0;
ADDOP(c, POP_BLOCK);
- compiler_pop_fblock(c, WITH, block);
-
- /* End of body; start the cleanup. */
-
- /* For successful outcome:
- * call __exit__(None, None, None)
- */
- if (!compiler_call_exit_with_nones(c))
+ compiler_pop_fblock(c, WITH, block);
+
+ /* End of body; start the cleanup. */
+
+ /* For successful outcome:
+ * call __exit__(None, None, None)
+ */
+ if (!compiler_call_exit_with_nones(c))
return 0;
- ADDOP(c, POP_TOP);
- ADDOP_JREL(c, JUMP_FORWARD, exit);
+ ADDOP(c, POP_TOP);
+ ADDOP_JREL(c, JUMP_FORWARD, exit);
- /* For exceptional outcome: */
- compiler_use_next_block(c, final);
+ /* For exceptional outcome: */
+ compiler_use_next_block(c, final);
- ADDOP(c, WITH_EXCEPT_START);
- compiler_with_except_finish(c);
-
- compiler_use_next_block(c, exit);
+ ADDOP(c, WITH_EXCEPT_START);
+ compiler_with_except_finish(c);
+
+ compiler_use_next_block(c, exit);
return 1;
}
static int
-compiler_visit_expr1(struct compiler *c, expr_ty e)
+compiler_visit_expr1(struct compiler *c, expr_ty e)
{
switch (e->kind) {
- case NamedExpr_kind:
- VISIT(c, expr, e->v.NamedExpr.value);
- ADDOP(c, DUP_TOP);
- VISIT(c, expr, e->v.NamedExpr.target);
- break;
+ case NamedExpr_kind:
+ VISIT(c, expr, e->v.NamedExpr.value);
+ ADDOP(c, DUP_TOP);
+ VISIT(c, expr, e->v.NamedExpr.target);
+ break;
case BoolOp_kind:
return compiler_boolop(c, e);
case BinOp_kind:
VISIT(c, expr, e->v.BinOp.left);
VISIT(c, expr, e->v.BinOp.right);
- ADDOP(c, binop(e->v.BinOp.op));
+ ADDOP(c, binop(e->v.BinOp.op));
break;
case UnaryOp_kind:
VISIT(c, expr, e->v.UnaryOp.operand);
@@ -5036,7 +5036,7 @@ compiler_visit_expr1(struct compiler *c, expr_ty e)
VISIT(c, expr, e->v.Yield.value);
}
else {
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
}
ADDOP(c, YIELD_VALUE);
break;
@@ -5049,24 +5049,24 @@ compiler_visit_expr1(struct compiler *c, expr_ty e)
VISIT(c, expr, e->v.YieldFrom.value);
ADDOP(c, GET_YIELD_FROM_ITER);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, YIELD_FROM);
break;
case Await_kind:
- if (!IS_TOP_LEVEL_AWAIT(c)){
- if (c->u->u_ste->ste_type != FunctionBlock){
- return compiler_error(c, "'await' outside function");
- }
+ if (!IS_TOP_LEVEL_AWAIT(c)){
+ if (c->u->u_ste->ste_type != FunctionBlock){
+ return compiler_error(c, "'await' outside function");
+ }
- if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION &&
- c->u->u_scope_type != COMPILER_SCOPE_COMPREHENSION){
- return compiler_error(c, "'await' outside async function");
- }
- }
+ if (c->u->u_scope_type != COMPILER_SCOPE_ASYNC_FUNCTION &&
+ c->u->u_scope_type != COMPILER_SCOPE_COMPREHENSION){
+ return compiler_error(c, "'await' outside async function");
+ }
+ }
VISIT(c, expr, e->v.Await.value);
ADDOP(c, GET_AWAITABLE);
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, YIELD_FROM);
break;
case Compare_kind:
@@ -5074,7 +5074,7 @@ compiler_visit_expr1(struct compiler *c, expr_ty e)
case Call_kind:
return compiler_call(c, e);
case Constant_kind:
- ADDOP_LOAD_CONST(c, e->v.Constant.value);
+ ADDOP_LOAD_CONST(c, e->v.Constant.value);
break;
case JoinedStr_kind:
return compiler_joined_str(c, e);
@@ -5082,14 +5082,14 @@ 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:
- VISIT(c, expr, e->v.Attribute.value);
+ VISIT(c, expr, e->v.Attribute.value);
switch (e->v.Attribute.ctx) {
case Load:
ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names);
break;
case Store:
- if (forbidden_name(c, e->v.Attribute.attr, e->v.Attribute.ctx))
- return 0;
+ if (forbidden_name(c, e->v.Attribute.attr, e->v.Attribute.ctx))
+ return 0;
ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names);
break;
case Del:
@@ -5098,7 +5098,7 @@ compiler_visit_expr1(struct compiler *c, expr_ty e)
}
break;
case Subscript_kind:
- return compiler_subscript(c, e);
+ return compiler_subscript(c, e);
case Starred_kind:
switch (e->v.Starred.ctx) {
case Store:
@@ -5110,9 +5110,9 @@ compiler_visit_expr1(struct compiler *c, expr_ty e)
return compiler_error(c,
"can't use starred expression here");
}
- break;
- case Slice_kind:
- return compiler_slice(c, e);
+ break;
+ case Slice_kind:
+ return compiler_slice(c, e);
case Name_kind:
return compiler_nameop(c, e->v.Name.id, e->v.Name.ctx);
/* child nodes of List and Tuple will have expr_context set */
@@ -5125,72 +5125,72 @@ compiler_visit_expr1(struct compiler *c, expr_ty e)
}
static int
-compiler_visit_expr(struct compiler *c, expr_ty e)
-{
- int old_lineno = c->u->u_lineno;
- int old_col_offset = c->u->u_col_offset;
- SET_LOC(c, e);
- int res = compiler_visit_expr1(c, e);
- c->u->u_lineno = old_lineno;
- c->u->u_col_offset = old_col_offset;
- return res;
-}
-
-static int
+compiler_visit_expr(struct compiler *c, expr_ty e)
+{
+ int old_lineno = c->u->u_lineno;
+ int old_col_offset = c->u->u_col_offset;
+ SET_LOC(c, e);
+ int res = compiler_visit_expr1(c, e);
+ c->u->u_lineno = old_lineno;
+ c->u->u_col_offset = old_col_offset;
+ return res;
+}
+
+static int
compiler_augassign(struct compiler *c, stmt_ty s)
{
- assert(s->kind == AugAssign_kind);
+ assert(s->kind == AugAssign_kind);
expr_ty e = s->v.AugAssign.target;
- int old_lineno = c->u->u_lineno;
- int old_col_offset = c->u->u_col_offset;
- SET_LOC(c, e);
+ int old_lineno = c->u->u_lineno;
+ int old_col_offset = c->u->u_col_offset;
+ SET_LOC(c, e);
switch (e->kind) {
case Attribute_kind:
- VISIT(c, expr, e->v.Attribute.value);
- ADDOP(c, DUP_TOP);
- ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names);
+ VISIT(c, expr, e->v.Attribute.value);
+ ADDOP(c, DUP_TOP);
+ ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names);
break;
case Subscript_kind:
- VISIT(c, expr, e->v.Subscript.value);
- VISIT(c, expr, e->v.Subscript.slice);
- ADDOP(c, DUP_TOP_TWO);
- ADDOP(c, BINARY_SUBSCR);
+ VISIT(c, expr, e->v.Subscript.value);
+ VISIT(c, expr, e->v.Subscript.slice);
+ ADDOP(c, DUP_TOP_TWO);
+ ADDOP(c, BINARY_SUBSCR);
break;
case Name_kind:
if (!compiler_nameop(c, e->v.Name.id, Load))
return 0;
- break;
+ break;
default:
PyErr_Format(PyExc_SystemError,
"invalid node type (%d) for augmented assignment",
e->kind);
return 0;
}
-
- c->u->u_lineno = old_lineno;
- c->u->u_col_offset = old_col_offset;
-
- VISIT(c, expr, s->v.AugAssign.value);
- ADDOP(c, inplace_binop(s->v.AugAssign.op));
-
- SET_LOC(c, e);
-
- switch (e->kind) {
- case Attribute_kind:
- ADDOP(c, ROT_TWO);
- ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names);
- break;
- case Subscript_kind:
- ADDOP(c, ROT_THREE);
- ADDOP(c, STORE_SUBSCR);
- break;
- case Name_kind:
- return compiler_nameop(c, e->v.Name.id, Store);
- default:
- Py_UNREACHABLE();
- }
+
+ c->u->u_lineno = old_lineno;
+ c->u->u_col_offset = old_col_offset;
+
+ VISIT(c, expr, s->v.AugAssign.value);
+ ADDOP(c, inplace_binop(s->v.AugAssign.op));
+
+ SET_LOC(c, e);
+
+ switch (e->kind) {
+ case Attribute_kind:
+ ADDOP(c, ROT_TWO);
+ ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names);
+ break;
+ case Subscript_kind:
+ ADDOP(c, ROT_THREE);
+ ADDOP(c, STORE_SUBSCR);
+ break;
+ case Name_kind:
+ return compiler_nameop(c, e->v.Name.id, Store);
+ default:
+ Py_UNREACHABLE();
+ }
return 1;
}
@@ -5214,34 +5214,34 @@ check_annotation(struct compiler *c, stmt_ty s)
}
static int
-check_ann_subscr(struct compiler *c, expr_ty e)
+check_ann_subscr(struct compiler *c, expr_ty e)
{
- /* We check that everything in a subscript is defined at runtime. */
- switch (e->kind) {
+ /* We check that everything in a subscript is defined at runtime. */
+ switch (e->kind) {
case Slice_kind:
- if (e->v.Slice.lower && !check_ann_expr(c, e->v.Slice.lower)) {
+ if (e->v.Slice.lower && !check_ann_expr(c, e->v.Slice.lower)) {
return 0;
}
- if (e->v.Slice.upper && !check_ann_expr(c, e->v.Slice.upper)) {
+ if (e->v.Slice.upper && !check_ann_expr(c, e->v.Slice.upper)) {
return 0;
}
- if (e->v.Slice.step && !check_ann_expr(c, e->v.Slice.step)) {
+ if (e->v.Slice.step && !check_ann_expr(c, e->v.Slice.step)) {
return 0;
}
- return 1;
- case Tuple_kind: {
- /* extended slice */
- asdl_seq *elts = e->v.Tuple.elts;
- Py_ssize_t i, n = asdl_seq_LEN(elts);
+ return 1;
+ case Tuple_kind: {
+ /* extended slice */
+ asdl_seq *elts = e->v.Tuple.elts;
+ Py_ssize_t i, n = asdl_seq_LEN(elts);
for (i = 0; i < n; i++) {
- if (!check_ann_subscr(c, asdl_seq_GET(elts, i))) {
+ if (!check_ann_subscr(c, asdl_seq_GET(elts, i))) {
return 0;
}
}
- return 1;
- }
+ return 1;
+ }
default:
- return check_ann_expr(c, e);
+ return check_ann_expr(c, e);
}
}
@@ -5260,8 +5260,8 @@ compiler_annassign(struct compiler *c, stmt_ty s)
}
switch (targ->kind) {
case Name_kind:
- if (forbidden_name(c, targ->v.Name.id, Store))
- return 0;
+ if (forbidden_name(c, targ->v.Name.id, Store))
+ return 0;
/* If we have a simple name in a module or class, store annotation. */
if (s->v.AnnAssign.simple &&
(c->u->u_scope_type == COMPILER_SCOPE_MODULE ||
@@ -5274,13 +5274,13 @@ compiler_annassign(struct compiler *c, stmt_ty s)
}
ADDOP_NAME(c, LOAD_NAME, __annotations__, names);
mangled = _Py_Mangle(c->u->u_private, targ->v.Name.id);
- ADDOP_LOAD_CONST_NEW(c, mangled);
+ ADDOP_LOAD_CONST_NEW(c, mangled);
ADDOP(c, STORE_SUBSCR);
}
break;
case Attribute_kind:
- if (forbidden_name(c, targ->v.Attribute.attr, Store))
- return 0;
+ if (forbidden_name(c, targ->v.Attribute.attr, Store))
+ return 0;
if (!s->v.AnnAssign.value &&
!check_ann_expr(c, targ->v.Attribute.value)) {
return 0;
@@ -5322,7 +5322,7 @@ compiler_error(struct compiler *c, const char *errstr)
loc = Py_None;
}
u = Py_BuildValue("(OiiO)", c->c_filename, c->u->u_lineno,
- c->u->u_col_offset + 1, loc);
+ c->u->u_col_offset + 1, loc);
if (!u)
goto exit;
v = Py_BuildValue("(zO)", errstr, u);
@@ -5336,70 +5336,70 @@ compiler_error(struct compiler *c, const char *errstr)
return 0;
}
-/* Emits a SyntaxWarning and returns 1 on success.
- If a SyntaxWarning raised as error, replaces it with a SyntaxError
- and returns 0.
-*/
+/* Emits a SyntaxWarning and returns 1 on success.
+ If a SyntaxWarning raised as error, replaces it with a SyntaxError
+ and returns 0.
+*/
static int
-compiler_warn(struct compiler *c, const char *format, ...)
-{
- va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, format);
-#else
- va_start(vargs);
-#endif
- PyObject *msg = PyUnicode_FromFormatV(format, vargs);
- va_end(vargs);
- if (msg == NULL) {
- return 0;
- }
- if (PyErr_WarnExplicitObject(PyExc_SyntaxWarning, msg, c->c_filename,
- c->u->u_lineno, NULL, NULL) < 0)
- {
- if (PyErr_ExceptionMatches(PyExc_SyntaxWarning)) {
- /* Replace the SyntaxWarning exception with a SyntaxError
- to get a more accurate error report */
- PyErr_Clear();
- assert(PyUnicode_AsUTF8(msg) != NULL);
- compiler_error(c, PyUnicode_AsUTF8(msg));
- }
- Py_DECREF(msg);
- return 0;
- }
- Py_DECREF(msg);
- return 1;
-}
-
-static int
-compiler_subscript(struct compiler *c, expr_ty e)
-{
- expr_context_ty ctx = e->v.Subscript.ctx;
+compiler_warn(struct compiler *c, const char *format, ...)
+{
+ va_list vargs;
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
+ PyObject *msg = PyUnicode_FromFormatV(format, vargs);
+ va_end(vargs);
+ if (msg == NULL) {
+ return 0;
+ }
+ if (PyErr_WarnExplicitObject(PyExc_SyntaxWarning, msg, c->c_filename,
+ c->u->u_lineno, NULL, NULL) < 0)
+ {
+ if (PyErr_ExceptionMatches(PyExc_SyntaxWarning)) {
+ /* Replace the SyntaxWarning exception with a SyntaxError
+ to get a more accurate error report */
+ PyErr_Clear();
+ assert(PyUnicode_AsUTF8(msg) != NULL);
+ compiler_error(c, PyUnicode_AsUTF8(msg));
+ }
+ Py_DECREF(msg);
+ return 0;
+ }
+ Py_DECREF(msg);
+ return 1;
+}
+
+static int
+compiler_subscript(struct compiler *c, expr_ty e)
+{
+ expr_context_ty ctx = e->v.Subscript.ctx;
int op = 0;
- if (ctx == Load) {
- if (!check_subscripter(c, e->v.Subscript.value)) {
- return 0;
- }
- if (!check_index(c, e->v.Subscript.value, e->v.Subscript.slice)) {
- return 0;
- }
- }
-
+ if (ctx == Load) {
+ if (!check_subscripter(c, e->v.Subscript.value)) {
+ return 0;
+ }
+ if (!check_index(c, e->v.Subscript.value, e->v.Subscript.slice)) {
+ return 0;
+ }
+ }
+
switch (ctx) {
case Load: op = BINARY_SUBSCR; break;
case Store: op = STORE_SUBSCR; break;
case Del: op = DELETE_SUBSCR; break;
}
- assert(op);
- VISIT(c, expr, e->v.Subscript.value);
- VISIT(c, expr, e->v.Subscript.slice);
+ assert(op);
+ VISIT(c, expr, e->v.Subscript.value);
+ VISIT(c, expr, e->v.Subscript.slice);
ADDOP(c, op);
return 1;
}
static int
-compiler_slice(struct compiler *c, expr_ty s)
+compiler_slice(struct compiler *c, expr_ty s)
{
int n = 2;
assert(s->kind == Slice_kind);
@@ -5409,14 +5409,14 @@ compiler_slice(struct compiler *c, expr_ty s)
VISIT(c, expr, s->v.Slice.lower);
}
else {
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
}
if (s->v.Slice.upper) {
VISIT(c, expr, s->v.Slice.upper);
}
else {
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
}
if (s->v.Slice.step) {
@@ -5475,8 +5475,8 @@ dfs(struct compiler *c, basicblock *b, struct assembler *a, int end)
Py_LOCAL_INLINE(void)
stackdepth_push(basicblock ***sp, basicblock *b, int depth)
{
- assert(b->b_startdepth < 0 || b->b_startdepth == depth);
- if (b->b_startdepth < depth && b->b_startdepth < 100) {
+ assert(b->b_startdepth < 0 || b->b_startdepth == depth);
+ if (b->b_startdepth < depth && b->b_startdepth < 100) {
assert(b->b_startdepth < 0);
b->b_startdepth = depth;
*(*sp)++ = b;
@@ -5516,8 +5516,8 @@ stackdepth(struct compiler *c)
struct instr *instr = &b->b_instr[i];
int effect = stack_effect(instr->i_opcode, instr->i_oparg, 0);
if (effect == PY_INVALID_STACK_EFFECT) {
- _Py_FatalErrorFormat(__func__,
- "opcode = %d", instr->i_opcode);
+ _Py_FatalErrorFormat(__func__,
+ "opcode = %d", instr->i_opcode);
}
int new_depth = depth + effect;
if (new_depth > maxdepth) {
@@ -5538,8 +5538,8 @@ stackdepth(struct compiler *c)
if (instr->i_opcode == JUMP_ABSOLUTE ||
instr->i_opcode == JUMP_FORWARD ||
instr->i_opcode == RETURN_VALUE ||
- instr->i_opcode == RAISE_VARARGS ||
- instr->i_opcode == RERAISE)
+ instr->i_opcode == RAISE_VARARGS ||
+ instr->i_opcode == RERAISE)
{
/* remaining code is dead */
next = NULL;
@@ -5610,11 +5610,11 @@ assemble_lnotab(struct assembler *a, struct instr *i)
unsigned char *lnotab;
d_lineno = i->i_lineno - a->a_lineno;
- if (d_lineno == 0) {
- return 1;
- }
+ if (d_lineno == 0) {
+ return 1;
+ }
- d_bytecode = (a->a_offset - a->a_lineno_off) * sizeof(_Py_CODEUNIT);
+ d_bytecode = (a->a_offset - a->a_lineno_off) * sizeof(_Py_CODEUNIT);
assert(d_bytecode >= 0);
if (d_bytecode > 255) {
@@ -5811,31 +5811,31 @@ dict_keys_inorder(PyObject *dict, Py_ssize_t offset)
return tuple;
}
-static PyObject *
-consts_dict_keys_inorder(PyObject *dict)
-{
- PyObject *consts, *k, *v;
- Py_ssize_t i, pos = 0, size = PyDict_GET_SIZE(dict);
-
- consts = PyList_New(size); /* PyCode_Optimize() requires a list */
- if (consts == NULL)
- return NULL;
- while (PyDict_Next(dict, &pos, &k, &v)) {
- i = PyLong_AS_LONG(v);
- /* The keys of the dictionary can be tuples wrapping a contant.
- * (see compiler_add_o and _PyCode_ConstantKey). In that case
- * the object we want is always second. */
- if (PyTuple_CheckExact(k)) {
- k = PyTuple_GET_ITEM(k, 1);
- }
- Py_INCREF(k);
- assert(i < size);
- assert(i >= 0);
- PyList_SET_ITEM(consts, i, k);
- }
- return consts;
-}
-
+static PyObject *
+consts_dict_keys_inorder(PyObject *dict)
+{
+ PyObject *consts, *k, *v;
+ Py_ssize_t i, pos = 0, size = PyDict_GET_SIZE(dict);
+
+ consts = PyList_New(size); /* PyCode_Optimize() requires a list */
+ if (consts == NULL)
+ return NULL;
+ while (PyDict_Next(dict, &pos, &k, &v)) {
+ i = PyLong_AS_LONG(v);
+ /* The keys of the dictionary can be tuples wrapping a contant.
+ * (see compiler_add_o and _PyCode_ConstantKey). In that case
+ * the object we want is always second. */
+ if (PyTuple_CheckExact(k)) {
+ k = PyTuple_GET_ITEM(k, 1);
+ }
+ Py_INCREF(k);
+ assert(i < size);
+ assert(i >= 0);
+ PyList_SET_ITEM(consts, i, k);
+ }
+ return consts;
+}
+
static int
compute_code_flags(struct compiler *c)
{
@@ -5860,44 +5860,44 @@ compute_code_flags(struct compiler *c)
/* (Only) inherit compilerflags in PyCF_MASK */
flags |= (c->c_flags->cf_flags & PyCF_MASK);
- if ((IS_TOP_LEVEL_AWAIT(c)) &&
- ste->ste_coroutine &&
- !ste->ste_generator) {
- flags |= CO_COROUTINE;
- }
-
+ if ((IS_TOP_LEVEL_AWAIT(c)) &&
+ ste->ste_coroutine &&
+ !ste->ste_generator) {
+ flags |= CO_COROUTINE;
+ }
+
return flags;
}
-// Merge *tuple* with constant cache.
-// Unlike merge_consts_recursive(), this function doesn't work recursively.
-static int
-merge_const_tuple(struct compiler *c, PyObject **tuple)
-{
- assert(PyTuple_CheckExact(*tuple));
-
- PyObject *key = _PyCode_ConstantKey(*tuple);
- if (key == NULL) {
- return 0;
- }
-
- // t is borrowed reference
- PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key);
- Py_DECREF(key);
- if (t == NULL) {
- return 0;
- }
- if (t == key) { // tuple is new constant.
- return 1;
- }
-
- PyObject *u = PyTuple_GET_ITEM(t, 1);
- Py_INCREF(u);
- Py_DECREF(*tuple);
- *tuple = u;
- return 1;
-}
-
+// Merge *tuple* with constant cache.
+// Unlike merge_consts_recursive(), this function doesn't work recursively.
+static int
+merge_const_tuple(struct compiler *c, PyObject **tuple)
+{
+ assert(PyTuple_CheckExact(*tuple));
+
+ PyObject *key = _PyCode_ConstantKey(*tuple);
+ if (key == NULL) {
+ return 0;
+ }
+
+ // t is borrowed reference
+ PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key);
+ Py_DECREF(key);
+ if (t == NULL) {
+ return 0;
+ }
+ if (t == key) { // tuple is new constant.
+ return 1;
+ }
+
+ PyObject *u = PyTuple_GET_ITEM(t, 1);
+ Py_INCREF(u);
+ Py_DECREF(*tuple);
+ *tuple = u;
+ return 1;
+}
+
static PyCodeObject *
makecode(struct compiler *c, struct assembler *a)
{
@@ -5913,9 +5913,9 @@ makecode(struct compiler *c, struct assembler *a)
Py_ssize_t nlocals;
int nlocals_int;
int flags;
- int posorkeywordargcount, posonlyargcount, kwonlyargcount, maxdepth;
+ int posorkeywordargcount, posonlyargcount, kwonlyargcount, maxdepth;
- consts = consts_dict_keys_inorder(c->u->u_consts);
+ consts = consts_dict_keys_inorder(c->u->u_consts);
names = dict_keys_inorder(c->u->u_names, 0);
varnames = dict_keys_inorder(c->u->u_varnames, 0);
if (!consts || !names || !varnames)
@@ -5924,18 +5924,18 @@ makecode(struct compiler *c, struct assembler *a)
cellvars = dict_keys_inorder(c->u->u_cellvars, 0);
if (!cellvars)
goto error;
- freevars = dict_keys_inorder(c->u->u_freevars, PyTuple_GET_SIZE(cellvars));
+ freevars = dict_keys_inorder(c->u->u_freevars, PyTuple_GET_SIZE(cellvars));
if (!freevars)
goto error;
- if (!merge_const_tuple(c, &names) ||
- !merge_const_tuple(c, &varnames) ||
- !merge_const_tuple(c, &cellvars) ||
- !merge_const_tuple(c, &freevars))
- {
- goto error;
- }
-
+ if (!merge_const_tuple(c, &names) ||
+ !merge_const_tuple(c, &varnames) ||
+ !merge_const_tuple(c, &cellvars) ||
+ !merge_const_tuple(c, &freevars))
+ {
+ goto error;
+ }
+
nlocals = PyDict_GET_SIZE(c->u->u_varnames);
assert(nlocals < INT_MAX);
nlocals_int = Py_SAFE_DOWNCAST(nlocals, Py_ssize_t, int);
@@ -5953,22 +5953,22 @@ makecode(struct compiler *c, struct assembler *a)
goto error;
Py_DECREF(consts);
consts = tmp;
- if (!merge_const_tuple(c, &consts)) {
- goto error;
- }
+ if (!merge_const_tuple(c, &consts)) {
+ goto error;
+ }
- posonlyargcount = Py_SAFE_DOWNCAST(c->u->u_posonlyargcount, Py_ssize_t, int);
- posorkeywordargcount = Py_SAFE_DOWNCAST(c->u->u_argcount, Py_ssize_t, int);
+ posonlyargcount = Py_SAFE_DOWNCAST(c->u->u_posonlyargcount, Py_ssize_t, int);
+ posorkeywordargcount = Py_SAFE_DOWNCAST(c->u->u_argcount, Py_ssize_t, int);
kwonlyargcount = Py_SAFE_DOWNCAST(c->u->u_kwonlyargcount, Py_ssize_t, int);
maxdepth = stackdepth(c);
if (maxdepth < 0) {
goto error;
}
- co = PyCode_NewWithPosOnlyArgs(posonlyargcount+posorkeywordargcount,
- posonlyargcount, kwonlyargcount, nlocals_int,
- maxdepth, flags, bytecode, consts, names,
- varnames, freevars, cellvars, c->c_filename,
- c->u->u_name, c->u->u_firstlineno, a->a_lnotab);
+ co = PyCode_NewWithPosOnlyArgs(posonlyargcount+posorkeywordargcount,
+ posonlyargcount, kwonlyargcount, nlocals_int,
+ maxdepth, flags, bytecode, consts, names,
+ varnames, freevars, cellvars, c->c_filename,
+ c->u->u_name, c->u->u_firstlineno, a->a_lnotab);
error:
Py_XDECREF(consts);
Py_XDECREF(names);
@@ -6030,7 +6030,7 @@ assemble(struct compiler *c, int addNone)
if (!c->u->u_curblock->b_return) {
NEXT_BLOCK(c);
if (addNone)
- ADDOP_LOAD_CONST(c, Py_None);
+ ADDOP_LOAD_CONST(c, Py_None);
ADDOP(c, RETURN_VALUE);
}
@@ -6075,7 +6075,7 @@ assemble(struct compiler *c, int addNone)
}
#undef PyAST_Compile
-PyCodeObject *
+PyCodeObject *
PyAST_Compile(mod_ty mod, const char *filename, PyCompilerFlags *flags,
PyArena *arena)
{
diff --git a/contrib/tools/python3/src/Python/condvar.h b/contrib/tools/python3/src/Python/condvar.h
index c9000c0c49..8cba19b846 100644
--- a/contrib/tools/python3/src/Python/condvar.h
+++ b/contrib/tools/python3/src/Python/condvar.h
@@ -41,16 +41,16 @@
#define _CONDVAR_IMPL_H_
#include "Python.h"
-#include "pycore_condvar.h"
+#include "pycore_condvar.h"
#ifdef _POSIX_THREADS
/*
* POSIX support
*/
-/* These private functions are implemented in Python/thread_pthread.h */
-int _PyThread_cond_init(PyCOND_T *cond);
-void _PyThread_cond_after(long long us, struct timespec *abs);
+/* These private functions are implemented in Python/thread_pthread.h */
+int _PyThread_cond_init(PyCOND_T *cond);
+void _PyThread_cond_after(long long us, struct timespec *abs);
/* The following functions return 0 on success, nonzero on error */
#define PyMUTEX_INIT(mut) pthread_mutex_init((mut), NULL)
@@ -58,7 +58,7 @@ void _PyThread_cond_after(long long us, struct timespec *abs);
#define PyMUTEX_LOCK(mut) pthread_mutex_lock(mut)
#define PyMUTEX_UNLOCK(mut) pthread_mutex_unlock(mut)
-#define PyCOND_INIT(cond) _PyThread_cond_init(cond)
+#define PyCOND_INIT(cond) _PyThread_cond_init(cond)
#define PyCOND_FINI(cond) pthread_cond_destroy(cond)
#define PyCOND_SIGNAL(cond) pthread_cond_signal(cond)
#define PyCOND_BROADCAST(cond) pthread_cond_broadcast(cond)
@@ -68,16 +68,16 @@ void _PyThread_cond_after(long long us, struct timespec *abs);
Py_LOCAL_INLINE(int)
PyCOND_TIMEDWAIT(PyCOND_T *cond, PyMUTEX_T *mut, long long us)
{
- struct timespec abs;
- _PyThread_cond_after(us, &abs);
- int ret = pthread_cond_timedwait(cond, mut, &abs);
- if (ret == ETIMEDOUT) {
+ struct timespec abs;
+ _PyThread_cond_after(us, &abs);
+ int ret = pthread_cond_timedwait(cond, mut, &abs);
+ if (ret == ETIMEDOUT) {
return 1;
- }
- if (ret) {
+ }
+ if (ret) {
return -1;
- }
- return 0;
+ }
+ return 0;
}
#elif defined(NT_THREADS)
@@ -178,7 +178,7 @@ _PyCOND_WAIT_MS(PyCOND_T *cv, PyMUTEX_T *cs, DWORD ms)
* just means an extra spurious wakeup for a waiting thread.
* ('waiting' corresponds to the semaphore's "negative" count and
* we may end up with e.g. (waiting == -1 && sem.count == 1). When
- * a new thread comes along, it will pass right through, having
+ * a new thread comes along, it will pass right through, having
* adjusted it to (waiting == 0 && sem.count == 0).
*/
diff --git a/contrib/tools/python3/src/Python/context.c b/contrib/tools/python3/src/Python/context.c
index a3bfd99e5f..bacc7010c4 100644
--- a/contrib/tools/python3/src/Python/context.c
+++ b/contrib/tools/python3/src/Python/context.c
@@ -1,12 +1,12 @@
#include "Python.h"
-#include "pycore_context.h"
-#include "pycore_gc.h" // _PyObject_GC_MAY_BE_TRACKED()
-#include "pycore_hamt.h"
-#include "pycore_object.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "structmember.h" // PyMemberDef
+#include "pycore_context.h"
+#include "pycore_gc.h" // _PyObject_GC_MAY_BE_TRACKED()
+#include "pycore_hamt.h"
+#include "pycore_object.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "structmember.h" // PyMemberDef
#define CONTEXT_FREELIST_MAXLEN 255
@@ -103,15 +103,15 @@ PyContext_CopyCurrent(void)
}
-static int
-_PyContext_Enter(PyThreadState *ts, PyObject *octx)
+static int
+_PyContext_Enter(PyThreadState *ts, PyObject *octx)
{
ENSURE_Context(octx, -1)
PyContext *ctx = (PyContext *)octx;
if (ctx->ctx_entered) {
- _PyErr_Format(ts, PyExc_RuntimeError,
- "cannot enter context: %R is already entered", ctx);
+ _PyErr_Format(ts, PyExc_RuntimeError,
+ "cannot enter context: %R is already entered", ctx);
return -1;
}
@@ -127,17 +127,17 @@ _PyContext_Enter(PyThreadState *ts, PyObject *octx)
int
-PyContext_Enter(PyObject *octx)
+PyContext_Enter(PyObject *octx)
+{
+ PyThreadState *ts = _PyThreadState_GET();
+ assert(ts != NULL);
+ return _PyContext_Enter(ts, octx);
+}
+
+
+static int
+_PyContext_Exit(PyThreadState *ts, PyObject *octx)
{
- PyThreadState *ts = _PyThreadState_GET();
- assert(ts != NULL);
- return _PyContext_Enter(ts, octx);
-}
-
-
-static int
-_PyContext_Exit(PyThreadState *ts, PyObject *octx)
-{
ENSURE_Context(octx, -1)
PyContext *ctx = (PyContext *)octx;
@@ -164,15 +164,15 @@ _PyContext_Exit(PyThreadState *ts, PyObject *octx)
return 0;
}
-int
-PyContext_Exit(PyObject *octx)
-{
- PyThreadState *ts = _PyThreadState_GET();
- assert(ts != NULL);
- return _PyContext_Exit(ts, octx);
-}
+int
+PyContext_Exit(PyObject *octx)
+{
+ PyThreadState *ts = _PyThreadState_GET();
+ assert(ts != NULL);
+ return _PyContext_Exit(ts, octx);
+}
+
-
PyObject *
PyContextVar_New(const char *name, PyObject *def)
{
@@ -192,7 +192,7 @@ PyContextVar_Get(PyObject *ovar, PyObject *def, PyObject **val)
ENSURE_ContextVar(ovar, -1)
PyContextVar *var = (PyContextVar *)ovar;
- PyThreadState *ts = _PyThreadState_GET();
+ PyThreadState *ts = _PyThreadState_GET();
assert(ts != NULL);
if (ts->context == NULL) {
goto not_found;
@@ -396,7 +396,7 @@ context_new_from_vars(PyHamtObject *vars)
static inline PyContext *
context_get(void)
{
- PyThreadState *ts = _PyThreadState_GET();
+ PyThreadState *ts = _PyThreadState_GET();
assert(ts != NULL);
PyContext *current_ctx = (PyContext *)ts->context;
if (current_ctx == NULL) {
@@ -542,17 +542,17 @@ _contextvars.Context.get
key: object
default: object = None
/
-
-Return the value for `key` if `key` has the value in the context object.
-
-If `key` does not exist, return `default`. If `default` is not given,
-return None.
+
+Return the value for `key` if `key` has the value in the context object.
+
+If `key` does not exist, return `default`. If `default` is not given,
+return None.
[clinic start generated code]*/
static PyObject *
_contextvars_Context_get_impl(PyContext *self, PyObject *key,
PyObject *default_value)
-/*[clinic end generated code: output=0c54aa7664268189 input=c8eeb81505023995]*/
+/*[clinic end generated code: output=0c54aa7664268189 input=c8eeb81505023995]*/
{
if (context_check_key_type(key)) {
return NULL;
@@ -574,15 +574,15 @@ _contextvars_Context_get_impl(PyContext *self, PyObject *key,
/*[clinic input]
_contextvars.Context.items
-
-Return all variables and their values in the context object.
-
-The result is returned as a list of 2-tuples (variable, value).
+
+Return all variables and their values in the context object.
+
+The result is returned as a list of 2-tuples (variable, value).
[clinic start generated code]*/
static PyObject *
_contextvars_Context_items_impl(PyContext *self)
-/*[clinic end generated code: output=fa1655c8a08502af input=00db64ae379f9f42]*/
+/*[clinic end generated code: output=fa1655c8a08502af input=00db64ae379f9f42]*/
{
return _PyHamt_NewIterItems(self->ctx_vars);
}
@@ -590,13 +590,13 @@ _contextvars_Context_items_impl(PyContext *self)
/*[clinic input]
_contextvars.Context.keys
-
-Return a list of all variables in the context object.
+
+Return a list of all variables in the context object.
[clinic start generated code]*/
static PyObject *
_contextvars_Context_keys_impl(PyContext *self)
-/*[clinic end generated code: output=177227c6b63ec0e2 input=114b53aebca3449c]*/
+/*[clinic end generated code: output=177227c6b63ec0e2 input=114b53aebca3449c]*/
{
return _PyHamt_NewIterKeys(self->ctx_vars);
}
@@ -604,13 +604,13 @@ _contextvars_Context_keys_impl(PyContext *self)
/*[clinic input]
_contextvars.Context.values
-
-Return a list of all variables' values in the context object.
+
+Return a list of all variables' values in the context object.
[clinic start generated code]*/
static PyObject *
_contextvars_Context_values_impl(PyContext *self)
-/*[clinic end generated code: output=d286dabfc8db6dde input=ce8075d04a6ea526]*/
+/*[clinic end generated code: output=d286dabfc8db6dde input=ce8075d04a6ea526]*/
{
return _PyHamt_NewIterValues(self->ctx_vars);
}
@@ -618,13 +618,13 @@ _contextvars_Context_values_impl(PyContext *self)
/*[clinic input]
_contextvars.Context.copy
-
-Return a shallow copy of the context object.
+
+Return a shallow copy of the context object.
[clinic start generated code]*/
static PyObject *
_contextvars_Context_copy_impl(PyContext *self)
-/*[clinic end generated code: output=30ba8896c4707a15 input=ebafdbdd9c72d592]*/
+/*[clinic end generated code: output=30ba8896c4707a15 input=ebafdbdd9c72d592]*/
{
return (PyObject *)context_new_from_vars(self->ctx_vars);
}
@@ -634,22 +634,22 @@ static PyObject *
context_run(PyContext *self, PyObject *const *args,
Py_ssize_t nargs, PyObject *kwnames)
{
- PyThreadState *ts = _PyThreadState_GET();
-
+ PyThreadState *ts = _PyThreadState_GET();
+
if (nargs < 1) {
- _PyErr_SetString(ts, PyExc_TypeError,
- "run() missing 1 required positional argument");
+ _PyErr_SetString(ts, PyExc_TypeError,
+ "run() missing 1 required positional argument");
return NULL;
}
- if (_PyContext_Enter(ts, (PyObject *)self)) {
+ if (_PyContext_Enter(ts, (PyObject *)self)) {
return NULL;
}
- PyObject *call_result = _PyObject_VectorcallTstate(
- ts, args[0], args + 1, nargs - 1, kwnames);
+ PyObject *call_result = _PyObject_VectorcallTstate(
+ ts, args[0], args + 1, nargs - 1, kwnames);
- if (_PyContext_Exit(ts, (PyObject *)self)) {
+ if (_PyContext_Exit(ts, (PyObject *)self)) {
return NULL;
}
@@ -663,7 +663,7 @@ static PyMethodDef PyContext_methods[] = {
_CONTEXTVARS_CONTEXT_KEYS_METHODDEF
_CONTEXTVARS_CONTEXT_VALUES_METHODDEF
_CONTEXTVARS_CONTEXT_COPY_METHODDEF
- {"run", (PyCFunction)(void(*)(void))context_run, METH_FASTCALL | METH_KEYWORDS, NULL},
+ {"run", (PyCFunction)(void(*)(void))context_run, METH_FASTCALL | METH_KEYWORDS, NULL},
{NULL, NULL}
};
@@ -942,19 +942,19 @@ error:
_contextvars.ContextVar.get
default: object = NULL
/
-
-Return a value for the context variable for the current context.
-
-If there is no value for the variable in the current context, the method will:
- * return the value of the default argument of the method, if provided; or
- * return the default value for the context variable, if it was created
- with one; or
- * raise a LookupError.
+
+Return a value for the context variable for the current context.
+
+If there is no value for the variable in the current context, the method will:
+ * return the value of the default argument of the method, if provided; or
+ * return the default value for the context variable, if it was created
+ with one; or
+ * raise a LookupError.
[clinic start generated code]*/
static PyObject *
_contextvars_ContextVar_get_impl(PyContextVar *self, PyObject *default_value)
-/*[clinic end generated code: output=0746bd0aa2ced7bf input=30aa2ab9e433e401]*/
+/*[clinic end generated code: output=0746bd0aa2ced7bf input=30aa2ab9e433e401]*/
{
if (!PyContextVar_CheckExact(self)) {
PyErr_SetString(
@@ -979,18 +979,18 @@ _contextvars_ContextVar_get_impl(PyContextVar *self, PyObject *default_value)
_contextvars.ContextVar.set
value: object
/
-
-Call to set a new value for the context variable in the current context.
-
-The required value argument is the new value for the context variable.
-
-Returns a Token object that can be used to restore the variable to its previous
-value via the `ContextVar.reset()` method.
+
+Call to set a new value for the context variable in the current context.
+
+The required value argument is the new value for the context variable.
+
+Returns a Token object that can be used to restore the variable to its previous
+value via the `ContextVar.reset()` method.
[clinic start generated code]*/
static PyObject *
_contextvars_ContextVar_set(PyContextVar *self, PyObject *value)
-/*[clinic end generated code: output=446ed5e820d6d60b input=c0a6887154227453]*/
+/*[clinic end generated code: output=446ed5e820d6d60b input=c0a6887154227453]*/
{
return PyContextVar_Set((PyObject *)self, value);
}
@@ -999,16 +999,16 @@ _contextvars_ContextVar_set(PyContextVar *self, PyObject *value)
_contextvars.ContextVar.reset
token: object
/
-
-Reset the context variable.
-
-The variable is reset to the value it had before the `ContextVar.set()` that
-created the token was used.
+
+Reset the context variable.
+
+The variable is reset to the value it had before the `ContextVar.set()` that
+created the token was used.
[clinic start generated code]*/
static PyObject *
_contextvars_ContextVar_reset(PyContextVar *self, PyObject *token)
-/*[clinic end generated code: output=d4ee34d0742d62ee input=ebe2881e5af4ffda]*/
+/*[clinic end generated code: output=d4ee34d0742d62ee input=ebe2881e5af4ffda]*/
{
if (!PyContextToken_CheckExact(token)) {
PyErr_Format(PyExc_TypeError,
@@ -1033,8 +1033,8 @@ static PyMethodDef PyContextVar_methods[] = {
_CONTEXTVARS_CONTEXTVAR_GET_METHODDEF
_CONTEXTVARS_CONTEXTVAR_SET_METHODDEF
_CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
{NULL, NULL}
};
@@ -1173,17 +1173,17 @@ static PyGetSetDef PyContextTokenType_getsetlist[] = {
{NULL}
};
-static PyMethodDef PyContextTokenType_methods[] = {
- {"__class_getitem__", (PyCFunction)Py_GenericAlias,
- METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
- {NULL}
-};
-
+static PyMethodDef PyContextTokenType_methods[] = {
+ {"__class_getitem__", (PyCFunction)Py_GenericAlias,
+ METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
+ {NULL}
+};
+
PyTypeObject PyContextToken_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
"Token",
sizeof(PyContextToken),
- .tp_methods = PyContextTokenType_methods,
+ .tp_methods = PyContextTokenType_methods,
.tp_getset = PyContextTokenType_getsetlist,
.tp_dealloc = (destructor)token_tp_dealloc,
.tp_getattro = PyObject_GenericGetAttr,
@@ -1270,10 +1270,10 @@ get_token_missing(void)
///////////////////////////
-void
-_PyContext_ClearFreeList(void)
+void
+_PyContext_ClearFreeList(void)
{
- for (; ctx_freelist_len; ctx_freelist_len--) {
+ for (; ctx_freelist_len; ctx_freelist_len--) {
PyContext *ctx = ctx_freelist;
ctx_freelist = (PyContext *)ctx->ctx_weakreflist;
ctx->ctx_weakreflist = NULL;
@@ -1286,8 +1286,8 @@ void
_PyContext_Fini(void)
{
Py_CLEAR(_token_missing);
- _PyContext_ClearFreeList();
- _PyHamt_Fini();
+ _PyContext_ClearFreeList();
+ _PyHamt_Fini();
}
diff --git a/contrib/tools/python3/src/Python/dtoa.c b/contrib/tools/python3/src/Python/dtoa.c
index 503934dcd6..e629b29642 100644
--- a/contrib/tools/python3/src/Python/dtoa.c
+++ b/contrib/tools/python3/src/Python/dtoa.c
@@ -64,9 +64,9 @@
* 7. _Py_dg_strtod has been modified so that it doesn't accept strings with
* leading whitespace.
*
- * 8. A corner case where _Py_dg_dtoa didn't strip trailing zeros has been
- * fixed. (bugs.python.org/issue40780)
- *
+ * 8. A corner case where _Py_dg_dtoa didn't strip trailing zeros has been
+ * fixed. (bugs.python.org/issue40780)
+ *
***************************************************************/
/* Please send bug reports for the original dtoa.c code to David M. Gay (dmg
@@ -118,7 +118,7 @@
/* Linking of Python's #defines to Gay's #defines starts here. */
#include "Python.h"
-#include "pycore_dtoa.h"
+#include "pycore_dtoa.h"
/* if PY_NO_SHORT_FLOAT_REPR is defined, then don't even try to compile
the following code */
@@ -1445,9 +1445,9 @@ _Py_dg_strtod(const char *s00, char **se)
ULong y, z, abs_exp;
Long L;
BCinfo bc;
- Bigint *bb = NULL, *bd = NULL, *bd0 = NULL, *bs = NULL, *delta = NULL;
+ Bigint *bb = NULL, *bd = NULL, *bd0 = NULL, *bs = NULL, *delta = NULL;
size_t ndigits, fraclen;
- double result;
+ double result;
dval(&rv) = 0.;
@@ -1874,7 +1874,7 @@ _Py_dg_strtod(const char *s00, char **se)
if (bs == NULL) {
goto failed_malloc;
}
- Bigint *bb1 = mult(bs, bb);
+ Bigint *bb1 = mult(bs, bb);
Bfree(bb);
bb = bb1;
if (bb == NULL) {
@@ -2107,10 +2107,10 @@ _Py_dg_strtod(const char *s00, char **se)
}
}
cont:
- Bfree(bb); bb = NULL;
- Bfree(bd); bd = NULL;
- Bfree(bs); bs = NULL;
- Bfree(delta); delta = NULL;
+ Bfree(bb); bb = NULL;
+ Bfree(bd); bd = NULL;
+ Bfree(bs); bs = NULL;
+ Bfree(delta); delta = NULL;
}
if (bc.nd > nd) {
error = bigcomp(&rv, s0, &bc);
@@ -2125,38 +2125,38 @@ _Py_dg_strtod(const char *s00, char **se)
}
ret:
- result = sign ? -dval(&rv) : dval(&rv);
- goto done;
+ result = sign ? -dval(&rv) : dval(&rv);
+ goto done;
parse_error:
- result = 0.0;
- goto done;
+ result = 0.0;
+ goto done;
failed_malloc:
errno = ENOMEM;
- result = -1.0;
- goto done;
+ result = -1.0;
+ goto done;
undfl:
- result = sign ? -0.0 : 0.0;
- goto done;
+ result = sign ? -0.0 : 0.0;
+ goto done;
ovfl:
errno = ERANGE;
/* Can't trust HUGE_VAL */
word0(&rv) = Exp_mask;
word1(&rv) = 0;
- result = sign ? -dval(&rv) : dval(&rv);
- goto done;
-
- done:
- Bfree(bb);
- Bfree(bd);
- Bfree(bs);
- Bfree(bd0);
- Bfree(delta);
- return result;
-
+ result = sign ? -dval(&rv) : dval(&rv);
+ goto done;
+
+ done:
+ Bfree(bb);
+ Bfree(bd);
+ Bfree(bs);
+ Bfree(bd0);
+ Bfree(delta);
+ return result;
+
}
static char *
@@ -2566,14 +2566,14 @@ _Py_dg_dtoa(double dd, int mode, int ndigits,
}
++*s++;
}
- else {
- /* Strip trailing zeros. This branch was missing from the
- original dtoa.c, leading to surplus trailing zeros in
- some cases. See bugs.python.org/issue40780. */
- while (s > s0 && s[-1] == '0') {
- --s;
- }
- }
+ else {
+ /* Strip trailing zeros. This branch was missing from the
+ original dtoa.c, leading to surplus trailing zeros in
+ some cases. See bugs.python.org/issue40780. */
+ while (s > s0 && s[-1] == '0') {
+ --s;
+ }
+ }
break;
}
}
diff --git a/contrib/tools/python3/src/Python/dynload_shlib.c b/contrib/tools/python3/src/Python/dynload_shlib.c
index 613c894fa5..23828898d3 100644
--- a/contrib/tools/python3/src/Python/dynload_shlib.c
+++ b/contrib/tools/python3/src/Python/dynload_shlib.c
@@ -2,8 +2,8 @@
/* Support for dynamic loading of extension modules */
#include "Python.h"
-#include "pycore_interp.h" // _PyInterpreterState.dlopenflags
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_interp.h" // _PyInterpreterState.dlopenflags
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "importdl.h"
#include <sys/types.h>
@@ -39,9 +39,9 @@ const char *_PyImport_DynLoadFiletab[] = {
".dll",
#else /* !__CYGWIN__ */
"." SOABI ".so",
-#ifdef ALT_SOABI
- "." ALT_SOABI ".so",
-#endif
+#ifdef ALT_SOABI
+ "." ALT_SOABI ".so",
+#endif
".abi" PYTHON_ABI_STRING ".so",
".so",
#endif /* __CYGWIN__ */
@@ -95,7 +95,7 @@ _PyImport_FindSharedFuncptr(const char *prefix,
}
}
- dlopenflags = _PyInterpreterState_GET()->dlopenflags;
+ dlopenflags = _PyInterpreterState_GET()->dlopenflags;
handle = dlopen(pathname, dlopenflags);
@@ -106,7 +106,7 @@ _PyImport_FindSharedFuncptr(const char *prefix,
const char *error = dlerror();
if (error == NULL)
error = "unknown dlopen() error";
- error_ob = PyUnicode_DecodeLocale(error, "surrogateescape");
+ error_ob = PyUnicode_DecodeLocale(error, "surrogateescape");
if (error_ob == NULL)
return NULL;
mod_name = PyUnicode_FromString(shortname);
@@ -114,7 +114,7 @@ _PyImport_FindSharedFuncptr(const char *prefix,
Py_DECREF(error_ob);
return NULL;
}
- path = PyUnicode_DecodeFSDefault(pathname);
+ path = PyUnicode_DecodeFSDefault(pathname);
if (path == NULL) {
Py_DECREF(error_ob);
Py_DECREF(mod_name);
diff --git a/contrib/tools/python3/src/Python/dynload_win.c b/contrib/tools/python3/src/Python/dynload_win.c
index 7dc227ed80..81787e5f22 100644
--- a/contrib/tools/python3/src/Python/dynload_win.c
+++ b/contrib/tools/python3/src/Python/dynload_win.c
@@ -170,10 +170,10 @@ dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix,
_Py_CheckPython3();
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
wpathname = _PyUnicode_AsUnicode(pathname);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (wpathname == NULL)
return NULL;
@@ -186,15 +186,15 @@ _Py_COMP_DIAG_POP
/* Don't display a message box when Python can't load a DLL */
old_mode = SetErrorMode(SEM_FAILCRITICALERRORS);
- /* bpo-36085: We use LoadLibraryEx with restricted search paths
- to avoid DLL preloading attacks and enable use of the
- AddDllDirectory function. We add SEARCH_DLL_LOAD_DIR to
- ensure DLLs adjacent to the PYD are preferred. */
- Py_BEGIN_ALLOW_THREADS
+ /* bpo-36085: We use LoadLibraryEx with restricted search paths
+ to avoid DLL preloading attacks and enable use of the
+ AddDllDirectory function. We add SEARCH_DLL_LOAD_DIR to
+ ensure DLLs adjacent to the PYD are preferred. */
+ Py_BEGIN_ALLOW_THREADS
hDLL = LoadLibraryExW(wpathname, NULL,
- LOAD_LIBRARY_SEARCH_DEFAULT_DIRS |
- LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR);
- Py_END_ALLOW_THREADS
+ LOAD_LIBRARY_SEARCH_DEFAULT_DIRS |
+ LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR);
+ Py_END_ALLOW_THREADS
/* restore old error mode settings */
SetErrorMode(old_mode);
@@ -226,8 +226,8 @@ _Py_COMP_DIAG_POP
This should not happen if called correctly. */
if (theLength == 0) {
message = PyUnicode_FromFormat(
- "DLL load failed with error code %u while importing %s",
- errorCode, shortname);
+ "DLL load failed with error code %u while importing %s",
+ errorCode, shortname);
} else {
/* For some reason a \r\n
is appended to the text */
@@ -237,8 +237,8 @@ _Py_COMP_DIAG_POP
theLength -= 2;
theInfo[theLength] = '\0';
}
- message = PyUnicode_FromFormat(
- "DLL load failed while importing %s: ", shortname);
+ message = PyUnicode_FromFormat(
+ "DLL load failed while importing %s: ", shortname);
PyUnicode_AppendAndDel(&message,
PyUnicode_FromWideChar(
@@ -265,20 +265,20 @@ _Py_COMP_DIAG_POP
import_python = GetPythonImport(hDLL);
if (import_python &&
- _stricmp(buffer,import_python)) {
+ _stricmp(buffer,import_python)) {
PyErr_Format(PyExc_ImportError,
"Module use of %.150s conflicts "
"with this version of Python.",
import_python);
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
FreeLibrary(hDLL);
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
return NULL;
}
}
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
p = GetProcAddress(hDLL, funcname);
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
}
return p;
diff --git a/contrib/tools/python3/src/Python/errors.c b/contrib/tools/python3/src/Python/errors.c
index 313702e4d1..79278764cc 100644
--- a/contrib/tools/python3/src/Python/errors.c
+++ b/contrib/tools/python3/src/Python/errors.c
@@ -2,12 +2,12 @@
/* Error handling */
#include "Python.h"
-#include "pycore_initconfig.h"
-#include "pycore_object.h" // _PyType_GetQualName
-#include "pycore_pyerrors.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_sysmodule.h"
-#include "pycore_traceback.h"
+#include "pycore_initconfig.h"
+#include "pycore_object.h" // _PyType_GetQualName
+#include "pycore_pyerrors.h"
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_sysmodule.h"
+#include "pycore_traceback.h"
#ifndef __STDC__
#ifndef MS_WINDOWS
@@ -26,20 +26,20 @@ extern char *strerror(int);
extern "C" {
#endif
-_Py_IDENTIFIER(__module__);
+_Py_IDENTIFIER(__module__);
_Py_IDENTIFIER(builtins);
_Py_IDENTIFIER(stderr);
-_Py_IDENTIFIER(flush);
-
-/* Forward declarations */
-static PyObject *
-_PyErr_FormatV(PyThreadState *tstate, PyObject *exception,
- const char *format, va_list vargs);
-
-
+_Py_IDENTIFIER(flush);
+
+/* Forward declarations */
+static PyObject *
+_PyErr_FormatV(PyThreadState *tstate, PyObject *exception,
+ const char *format, va_list vargs);
+
+
void
-_PyErr_Restore(PyThreadState *tstate, PyObject *type, PyObject *value,
- PyObject *traceback)
+_PyErr_Restore(PyThreadState *tstate, PyObject *type, PyObject *value,
+ PyObject *traceback)
{
PyObject *oldtype, *oldvalue, *oldtraceback;
@@ -65,14 +65,14 @@ _PyErr_Restore(PyThreadState *tstate, PyObject *type, PyObject *value,
Py_XDECREF(oldtraceback);
}
-void
-PyErr_Restore(PyObject *type, PyObject *value, PyObject *traceback)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_Restore(tstate, type, value, traceback);
-}
-
-
+void
+PyErr_Restore(PyObject *type, PyObject *value, PyObject *traceback)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_Restore(tstate, type, value, traceback);
+}
+
+
_PyErr_StackItem *
_PyErr_GetTopmostException(PyThreadState *tstate)
{
@@ -86,43 +86,43 @@ _PyErr_GetTopmostException(PyThreadState *tstate)
}
static PyObject*
-_PyErr_CreateException(PyObject *exception_type, PyObject *value)
+_PyErr_CreateException(PyObject *exception_type, PyObject *value)
{
- PyObject *exc;
-
+ PyObject *exc;
+
if (value == NULL || value == Py_None) {
- exc = _PyObject_CallNoArg(exception_type);
+ exc = _PyObject_CallNoArg(exception_type);
}
else if (PyTuple_Check(value)) {
- exc = PyObject_Call(exception_type, value, NULL);
+ exc = PyObject_Call(exception_type, value, NULL);
}
else {
- exc = PyObject_CallOneArg(exception_type, value);
+ exc = PyObject_CallOneArg(exception_type, value);
+ }
+
+ if (exc != NULL && !PyExceptionInstance_Check(exc)) {
+ PyErr_Format(PyExc_TypeError,
+ "calling %R should have returned an instance of "
+ "BaseException, not %s",
+ exception_type, Py_TYPE(exc)->tp_name);
+ Py_CLEAR(exc);
}
-
- if (exc != NULL && !PyExceptionInstance_Check(exc)) {
- PyErr_Format(PyExc_TypeError,
- "calling %R should have returned an instance of "
- "BaseException, not %s",
- exception_type, Py_TYPE(exc)->tp_name);
- Py_CLEAR(exc);
- }
-
- return exc;
+
+ return exc;
}
void
-_PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject *value)
+_PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject *value)
{
PyObject *exc_value;
PyObject *tb = NULL;
if (exception != NULL &&
!PyExceptionClass_Check(exception)) {
- _PyErr_Format(tstate, PyExc_SystemError,
- "_PyErr_SetObject: "
- "exception %R is not a BaseException subclass",
- exception);
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "_PyErr_SetObject: "
+ "exception %R is not a BaseException subclass",
+ exception);
return;
}
@@ -137,7 +137,7 @@ _PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject *value)
/* Issue #23571: functions must not be called with an
exception set */
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
fixed_value = _PyErr_CreateException(exception, value);
Py_XDECREF(value);
@@ -149,16 +149,16 @@ _PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject *value)
value = fixed_value;
}
- /* Avoid creating new reference cycles through the
- context chain, while taking care not to hang on
- pre-existing ones.
+ /* Avoid creating new reference cycles through the
+ context chain, while taking care not to hang on
+ pre-existing ones.
This is O(chain length) but context chains are
usually very short. Sensitive readers may try
to inline the call to PyException_GetContext. */
if (exc_value != value) {
PyObject *o = exc_value, *context;
- PyObject *slow_o = o; /* Floyd's cycle detection algo */
- int slow_update_toggle = 0;
+ PyObject *slow_o = o; /* Floyd's cycle detection algo */
+ int slow_update_toggle = 0;
while ((context = PyException_GetContext(o))) {
Py_DECREF(context);
if (context == value) {
@@ -166,16 +166,16 @@ _PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject *value)
break;
}
o = context;
- if (o == slow_o) {
- /* pre-existing cycle - all exceptions on the
- path were visited and checked. */
- break;
- }
- if (slow_update_toggle) {
- slow_o = PyException_GetContext(slow_o);
- Py_DECREF(slow_o);
- }
- slow_update_toggle = !slow_update_toggle;
+ if (o == slow_o) {
+ /* pre-existing cycle - all exceptions on the
+ path were visited and checked. */
+ break;
+ }
+ if (slow_update_toggle) {
+ slow_o = PyException_GetContext(slow_o);
+ Py_DECREF(slow_o);
+ }
+ slow_update_toggle = !slow_update_toggle;
}
PyException_SetContext(value, exc_value);
}
@@ -186,72 +186,72 @@ _PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject *value)
if (value != NULL && PyExceptionInstance_Check(value))
tb = PyException_GetTraceback(value);
Py_XINCREF(exception);
- _PyErr_Restore(tstate, exception, value, tb);
+ _PyErr_Restore(tstate, exception, value, tb);
+}
+
+void
+PyErr_SetObject(PyObject *exception, PyObject *value)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_SetObject(tstate, exception, value);
}
-void
-PyErr_SetObject(PyObject *exception, PyObject *value)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_SetObject(tstate, exception, value);
-}
-
/* Set a key error with the specified argument, wrapping it in a
* tuple automatically so that tuple keys are not unpacked as the
* exception arguments. */
void
_PyErr_SetKeyError(PyObject *arg)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *tup = PyTuple_Pack(1, arg);
- if (!tup) {
- /* caller will expect error to be set anyway */
- return;
- }
- _PyErr_SetObject(tstate, PyExc_KeyError, tup);
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *tup = PyTuple_Pack(1, arg);
+ if (!tup) {
+ /* caller will expect error to be set anyway */
+ return;
+ }
+ _PyErr_SetObject(tstate, PyExc_KeyError, tup);
Py_DECREF(tup);
}
void
-_PyErr_SetNone(PyThreadState *tstate, PyObject *exception)
-{
- _PyErr_SetObject(tstate, exception, (PyObject *)NULL);
-}
-
-
-void
+_PyErr_SetNone(PyThreadState *tstate, PyObject *exception)
+{
+ _PyErr_SetObject(tstate, exception, (PyObject *)NULL);
+}
+
+
+void
PyErr_SetNone(PyObject *exception)
{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_SetNone(tstate, exception);
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_SetNone(tstate, exception);
}
-
+
void
-_PyErr_SetString(PyThreadState *tstate, PyObject *exception,
- const char *string)
+_PyErr_SetString(PyThreadState *tstate, PyObject *exception,
+ const char *string)
{
PyObject *value = PyUnicode_FromString(string);
- _PyErr_SetObject(tstate, exception, value);
+ _PyErr_SetObject(tstate, exception, value);
Py_XDECREF(value);
}
-void
-PyErr_SetString(PyObject *exception, const char *string)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_SetString(tstate, exception, string);
-}
+void
+PyErr_SetString(PyObject *exception, const char *string)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_SetString(tstate, exception, string);
+}
+
-
PyObject* _Py_HOT_FUNCTION
PyErr_Occurred(void)
{
- /* The caller must hold the GIL. */
- assert(PyGILState_Check());
-
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyErr_Occurred(tstate);
+ /* The caller must hold the GIL. */
+ assert(PyGILState_Check());
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyErr_Occurred(tstate);
}
@@ -288,17 +288,17 @@ PyErr_GivenExceptionMatches(PyObject *err, PyObject *exc)
int
-_PyErr_ExceptionMatches(PyThreadState *tstate, PyObject *exc)
-{
- return PyErr_GivenExceptionMatches(_PyErr_Occurred(tstate), exc);
-}
-
-
-int
+_PyErr_ExceptionMatches(PyThreadState *tstate, PyObject *exc)
+{
+ return PyErr_GivenExceptionMatches(_PyErr_Occurred(tstate), exc);
+}
+
+
+int
PyErr_ExceptionMatches(PyObject *exc)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyErr_ExceptionMatches(tstate, exc);
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyErr_ExceptionMatches(tstate, exc);
}
@@ -313,18 +313,18 @@ PyErr_ExceptionMatches(PyObject *exc)
PyException_SetTraceback() with the resulting value and tb?
*/
void
-_PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc,
- PyObject **val, PyObject **tb)
+_PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc,
+ PyObject **val, PyObject **tb)
{
int recursion_depth = 0;
- tstate->overflowed++;
+ tstate->overflowed++;
PyObject *type, *value, *initial_tb;
restart:
type = *exc;
if (type == NULL) {
/* There was no exception, so nothing to do. */
- tstate->overflowed--;
+ tstate->overflowed--;
return;
}
@@ -376,7 +376,7 @@ _PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc,
}
*exc = type;
*val = value;
- tstate->overflowed--;
+ tstate->overflowed--;
return;
error:
@@ -384,16 +384,16 @@ _PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc,
Py_DECREF(value);
recursion_depth++;
if (recursion_depth == Py_NORMALIZE_RECURSION_LIMIT) {
- _PyErr_SetString(tstate, PyExc_RecursionError,
- "maximum recursion depth exceeded "
- "while normalizing an exception");
+ _PyErr_SetString(tstate, PyExc_RecursionError,
+ "maximum recursion depth exceeded "
+ "while normalizing an exception");
}
/* If the new exception doesn't set a traceback and the old
exception had a traceback, use the old traceback for the
new exception. It's better than nothing.
*/
initial_tb = *tb;
- _PyErr_Fetch(tstate, exc, val, tb);
+ _PyErr_Fetch(tstate, exc, val, tb);
assert(*exc != NULL);
if (initial_tb != NULL) {
if (*tb == NULL)
@@ -420,17 +420,17 @@ _PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc,
void
-PyErr_NormalizeException(PyObject **exc, PyObject **val, PyObject **tb)
+PyErr_NormalizeException(PyObject **exc, PyObject **val, PyObject **tb)
{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_NormalizeException(tstate, exc, val, tb);
-}
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_NormalizeException(tstate, exc, val, tb);
+}
+
-
-void
-_PyErr_Fetch(PyThreadState *tstate, PyObject **p_type, PyObject **p_value,
- PyObject **p_traceback)
-{
+void
+_PyErr_Fetch(PyThreadState *tstate, PyObject **p_type, PyObject **p_value,
+ PyObject **p_traceback)
+{
*p_type = tstate->curexc_type;
*p_value = tstate->curexc_value;
*p_traceback = tstate->curexc_traceback;
@@ -440,33 +440,33 @@ _PyErr_Fetch(PyThreadState *tstate, PyObject **p_type, PyObject **p_value,
tstate->curexc_traceback = NULL;
}
-
+
+void
+PyErr_Fetch(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_Fetch(tstate, p_type, p_value, p_traceback);
+}
+
+
+void
+_PyErr_Clear(PyThreadState *tstate)
+{
+ _PyErr_Restore(tstate, NULL, NULL, NULL);
+}
+
+
void
-PyErr_Fetch(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_Fetch(tstate, p_type, p_value, p_traceback);
-}
-
-
-void
-_PyErr_Clear(PyThreadState *tstate)
-{
- _PyErr_Restore(tstate, NULL, NULL, NULL);
-}
-
-
-void
PyErr_Clear(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_Clear(tstate);
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_Clear(tstate);
}
-
+
void
-_PyErr_GetExcInfo(PyThreadState *tstate,
- PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
+_PyErr_GetExcInfo(PyThreadState *tstate,
+ PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
{
_PyErr_StackItem *exc_info = _PyErr_GetTopmostException(tstate);
*p_type = exc_info->exc_type;
@@ -478,19 +478,19 @@ _PyErr_GetExcInfo(PyThreadState *tstate,
Py_XINCREF(*p_traceback);
}
-
+
+void
+PyErr_GetExcInfo(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_GetExcInfo(tstate, p_type, p_value, p_traceback);
+}
+
void
-PyErr_GetExcInfo(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_GetExcInfo(tstate, p_type, p_value, p_traceback);
-}
-
-void
PyErr_SetExcInfo(PyObject *p_type, PyObject *p_value, PyObject *p_traceback)
{
PyObject *oldtype, *oldvalue, *oldtraceback;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
oldtype = tstate->exc_info->exc_type;
oldvalue = tstate->exc_info->exc_value;
@@ -507,153 +507,153 @@ PyErr_SetExcInfo(PyObject *p_type, PyObject *p_value, PyObject *p_traceback)
/* Like PyErr_Restore(), but if an exception is already set,
set the context associated with it.
-
- The caller is responsible for ensuring that this call won't create
- any cycles in the exception context chain. */
+
+ The caller is responsible for ensuring that this call won't create
+ any cycles in the exception context chain. */
void
_PyErr_ChainExceptions(PyObject *exc, PyObject *val, PyObject *tb)
{
if (exc == NULL)
return;
- PyThreadState *tstate = _PyThreadState_GET();
-
- if (!PyExceptionClass_Check(exc)) {
- _PyErr_Format(tstate, PyExc_SystemError,
- "_PyErr_ChainExceptions: "
- "exception %R is not a BaseException subclass",
- exc);
- return;
- }
-
- if (_PyErr_Occurred(tstate)) {
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ if (!PyExceptionClass_Check(exc)) {
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "_PyErr_ChainExceptions: "
+ "exception %R is not a BaseException subclass",
+ exc);
+ return;
+ }
+
+ if (_PyErr_Occurred(tstate)) {
PyObject *exc2, *val2, *tb2;
- _PyErr_Fetch(tstate, &exc2, &val2, &tb2);
- _PyErr_NormalizeException(tstate, &exc, &val, &tb);
+ _PyErr_Fetch(tstate, &exc2, &val2, &tb2);
+ _PyErr_NormalizeException(tstate, &exc, &val, &tb);
if (tb != NULL) {
PyException_SetTraceback(val, tb);
Py_DECREF(tb);
}
Py_DECREF(exc);
- _PyErr_NormalizeException(tstate, &exc2, &val2, &tb2);
+ _PyErr_NormalizeException(tstate, &exc2, &val2, &tb2);
PyException_SetContext(val2, val);
- _PyErr_Restore(tstate, exc2, val2, tb2);
+ _PyErr_Restore(tstate, exc2, val2, tb2);
}
else {
- _PyErr_Restore(tstate, exc, val, tb);
- }
-}
-
-/* Set the currently set exception's context to the given exception.
-
- If the provided exc_info is NULL, then the current Python thread state's
- exc_info will be used for the context instead.
-
- This function can only be called when _PyErr_Occurred() is true.
- Also, this function won't create any cycles in the exception context
- chain to the extent that _PyErr_SetObject ensures this. */
-void
-_PyErr_ChainStackItem(_PyErr_StackItem *exc_info)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- assert(_PyErr_Occurred(tstate));
-
- int exc_info_given;
- if (exc_info == NULL) {
- exc_info_given = 0;
- exc_info = tstate->exc_info;
- } else {
- exc_info_given = 1;
- }
- if (exc_info->exc_type == NULL || exc_info->exc_type == Py_None) {
- return;
- }
-
- _PyErr_StackItem *saved_exc_info;
- if (exc_info_given) {
- /* Temporarily set the thread state's exc_info since this is what
- _PyErr_SetObject uses for implicit exception chaining. */
- saved_exc_info = tstate->exc_info;
- tstate->exc_info = exc_info;
- }
-
- PyObject *exc, *val, *tb;
- _PyErr_Fetch(tstate, &exc, &val, &tb);
-
- PyObject *exc2, *val2, *tb2;
- exc2 = exc_info->exc_type;
- val2 = exc_info->exc_value;
- tb2 = exc_info->exc_traceback;
- _PyErr_NormalizeException(tstate, &exc2, &val2, &tb2);
- if (tb2 != NULL) {
- PyException_SetTraceback(val2, tb2);
- }
-
- /* _PyErr_SetObject sets the context from PyThreadState. */
- _PyErr_SetObject(tstate, exc, val);
- Py_DECREF(exc); // since _PyErr_Occurred was true
- Py_XDECREF(val);
- Py_XDECREF(tb);
-
- if (exc_info_given) {
- tstate->exc_info = saved_exc_info;
- }
-}
-
+ _PyErr_Restore(tstate, exc, val, tb);
+ }
+}
+
+/* Set the currently set exception's context to the given exception.
+
+ If the provided exc_info is NULL, then the current Python thread state's
+ exc_info will be used for the context instead.
+
+ This function can only be called when _PyErr_Occurred() is true.
+ Also, this function won't create any cycles in the exception context
+ chain to the extent that _PyErr_SetObject ensures this. */
+void
+_PyErr_ChainStackItem(_PyErr_StackItem *exc_info)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ assert(_PyErr_Occurred(tstate));
+
+ int exc_info_given;
+ if (exc_info == NULL) {
+ exc_info_given = 0;
+ exc_info = tstate->exc_info;
+ } else {
+ exc_info_given = 1;
+ }
+ if (exc_info->exc_type == NULL || exc_info->exc_type == Py_None) {
+ return;
+ }
+
+ _PyErr_StackItem *saved_exc_info;
+ if (exc_info_given) {
+ /* Temporarily set the thread state's exc_info since this is what
+ _PyErr_SetObject uses for implicit exception chaining. */
+ saved_exc_info = tstate->exc_info;
+ tstate->exc_info = exc_info;
+ }
+
+ PyObject *exc, *val, *tb;
+ _PyErr_Fetch(tstate, &exc, &val, &tb);
+
+ PyObject *exc2, *val2, *tb2;
+ exc2 = exc_info->exc_type;
+ val2 = exc_info->exc_value;
+ tb2 = exc_info->exc_traceback;
+ _PyErr_NormalizeException(tstate, &exc2, &val2, &tb2);
+ if (tb2 != NULL) {
+ PyException_SetTraceback(val2, tb2);
+ }
+
+ /* _PyErr_SetObject sets the context from PyThreadState. */
+ _PyErr_SetObject(tstate, exc, val);
+ Py_DECREF(exc); // since _PyErr_Occurred was true
+ Py_XDECREF(val);
+ Py_XDECREF(tb);
+
+ if (exc_info_given) {
+ tstate->exc_info = saved_exc_info;
+ }
+}
+
static PyObject *
-_PyErr_FormatVFromCause(PyThreadState *tstate, PyObject *exception,
- const char *format, va_list vargs)
+_PyErr_FormatVFromCause(PyThreadState *tstate, PyObject *exception,
+ const char *format, va_list vargs)
{
PyObject *exc, *val, *val2, *tb;
- assert(_PyErr_Occurred(tstate));
- _PyErr_Fetch(tstate, &exc, &val, &tb);
- _PyErr_NormalizeException(tstate, &exc, &val, &tb);
+ assert(_PyErr_Occurred(tstate));
+ _PyErr_Fetch(tstate, &exc, &val, &tb);
+ _PyErr_NormalizeException(tstate, &exc, &val, &tb);
if (tb != NULL) {
PyException_SetTraceback(val, tb);
Py_DECREF(tb);
}
Py_DECREF(exc);
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
- _PyErr_FormatV(tstate, exception, format, vargs);
+ _PyErr_FormatV(tstate, exception, format, vargs);
- _PyErr_Fetch(tstate, &exc, &val2, &tb);
- _PyErr_NormalizeException(tstate, &exc, &val2, &tb);
+ _PyErr_Fetch(tstate, &exc, &val2, &tb);
+ _PyErr_NormalizeException(tstate, &exc, &val2, &tb);
Py_INCREF(val);
PyException_SetCause(val2, val);
PyException_SetContext(val2, val);
- _PyErr_Restore(tstate, exc, val2, tb);
+ _PyErr_Restore(tstate, exc, val2, tb);
return NULL;
}
PyObject *
-_PyErr_FormatFromCauseTstate(PyThreadState *tstate, PyObject *exception,
- const char *format, ...)
-{
- va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, format);
-#else
- va_start(vargs);
-#endif
- _PyErr_FormatVFromCause(tstate, exception, format, vargs);
- va_end(vargs);
- return NULL;
-}
-
-PyObject *
+_PyErr_FormatFromCauseTstate(PyThreadState *tstate, PyObject *exception,
+ const char *format, ...)
+{
+ va_list vargs;
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
+ _PyErr_FormatVFromCause(tstate, exception, format, vargs);
+ va_end(vargs);
+ return NULL;
+}
+
+PyObject *
_PyErr_FormatFromCause(PyObject *exception, const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
va_list vargs;
#ifdef HAVE_STDARG_PROTOTYPES
va_start(vargs, format);
#else
va_start(vargs);
#endif
- _PyErr_FormatVFromCause(tstate, exception, format, vargs);
+ _PyErr_FormatVFromCause(tstate, exception, format, vargs);
va_end(vargs);
return NULL;
}
@@ -663,33 +663,33 @@ _PyErr_FormatFromCause(PyObject *exception, const char *format, ...)
int
PyErr_BadArgument(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_SetString(tstate, PyExc_TypeError,
- "bad argument type for built-in operation");
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "bad argument type for built-in operation");
return 0;
}
PyObject *
-_PyErr_NoMemory(PyThreadState *tstate)
+_PyErr_NoMemory(PyThreadState *tstate)
{
- if (Py_IS_TYPE(PyExc_MemoryError, NULL)) {
+ if (Py_IS_TYPE(PyExc_MemoryError, NULL)) {
/* PyErr_NoMemory() has been called before PyExc_MemoryError has been
initialized by _PyExc_Init() */
Py_FatalError("Out of memory and PyExc_MemoryError is not "
"initialized yet");
}
- _PyErr_SetNone(tstate, PyExc_MemoryError);
+ _PyErr_SetNone(tstate, PyExc_MemoryError);
return NULL;
}
PyObject *
-PyErr_NoMemory(void)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyErr_NoMemory(tstate);
-}
-
-PyObject *
+PyErr_NoMemory(void)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyErr_NoMemory(tstate);
+}
+
+PyObject *
PyErr_SetFromErrnoWithFilenameObject(PyObject *exc, PyObject *filenameObject)
{
return PyErr_SetFromErrnoWithFilenameObjects(exc, filenameObject, NULL);
@@ -698,7 +698,7 @@ PyErr_SetFromErrnoWithFilenameObject(PyObject *exc, PyObject *filenameObject)
PyObject *
PyErr_SetFromErrnoWithFilenameObjects(PyObject *exc, PyObject *filenameObject, PyObject *filenameObject2)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *message;
PyObject *v, *args;
int i = errno;
@@ -713,7 +713,7 @@ PyErr_SetFromErrnoWithFilenameObjects(PyObject *exc, PyObject *filenameObject, P
#ifndef MS_WINDOWS
if (i != 0) {
- const char *s = strerror(i);
+ const char *s = strerror(i);
message = PyUnicode_DecodeLocale(s, "surrogateescape");
}
else {
@@ -784,7 +784,7 @@ PyErr_SetFromErrnoWithFilenameObjects(PyObject *exc, PyObject *filenameObject, P
v = PyObject_Call(exc, args, NULL);
Py_DECREF(args);
if (v != NULL) {
- _PyErr_SetObject(tstate, (PyObject *) Py_TYPE(v), v);
+ _PyErr_SetObject(tstate, (PyObject *) Py_TYPE(v), v);
Py_DECREF(v);
}
}
@@ -837,17 +837,17 @@ PyObject *PyErr_SetExcFromWindowsErrWithFilenameObjects(
PyObject *filenameObject,
PyObject *filenameObject2)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
int len;
WCHAR *s_buf = NULL; /* Free via LocalFree */
PyObject *message;
PyObject *args, *v;
-
+
DWORD err = (DWORD)ierr;
- if (err==0) {
- err = GetLastError();
- }
-
+ if (err==0) {
+ err = GetLastError();
+ }
+
len = FormatMessageW(
/* Error API error */
FORMAT_MESSAGE_ALLOCATE_BUFFER |
@@ -892,7 +892,7 @@ PyObject *PyErr_SetExcFromWindowsErrWithFilenameObjects(
v = PyObject_Call(exc, args, NULL);
Py_DECREF(args);
if (v != NULL) {
- _PyErr_SetObject(tstate, (PyObject *) Py_TYPE(v), v);
+ _PyErr_SetObject(tstate, (PyObject *) Py_TYPE(v), v);
Py_DECREF(v);
}
}
@@ -968,7 +968,7 @@ PyObject *
PyErr_SetImportErrorSubclass(PyObject *exception, PyObject *msg,
PyObject *name, PyObject *path)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
int issubclass;
PyObject *kwargs, *error;
@@ -977,14 +977,14 @@ PyErr_SetImportErrorSubclass(PyObject *exception, PyObject *msg,
return NULL;
}
else if (!issubclass) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "expected a subclass of ImportError");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "expected a subclass of ImportError");
return NULL;
}
if (msg == NULL) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "expected a message argument");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "expected a message argument");
return NULL;
}
@@ -1006,9 +1006,9 @@ PyErr_SetImportErrorSubclass(PyObject *exception, PyObject *msg,
goto done;
}
- error = PyObject_VectorcallDict(exception, &msg, 1, kwargs);
+ error = PyObject_VectorcallDict(exception, &msg, 1, kwargs);
if (error != NULL) {
- _PyErr_SetObject(tstate, (PyObject *)Py_TYPE(error), error);
+ _PyErr_SetObject(tstate, (PyObject *)Py_TYPE(error), error);
Py_DECREF(error);
}
@@ -1026,10 +1026,10 @@ PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)
void
_PyErr_BadInternalCall(const char *filename, int lineno)
{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_Format(tstate, PyExc_SystemError,
- "%s:%d: bad argument to internal function",
- filename, lineno);
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_Format(tstate, PyExc_SystemError,
+ "%s:%d: bad argument to internal function",
+ filename, lineno);
}
/* Remove the preprocessor macro for PyErr_BadInternalCall() so that we can
@@ -1039,66 +1039,66 @@ void
PyErr_BadInternalCall(void)
{
assert(0 && "bad argument to internal function");
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_SetString(tstate, PyExc_SystemError,
- "bad argument to internal function");
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "bad argument to internal function");
}
#define PyErr_BadInternalCall() _PyErr_BadInternalCall(__FILE__, __LINE__)
-static PyObject *
-_PyErr_FormatV(PyThreadState *tstate, PyObject *exception,
- const char *format, va_list vargs)
+static PyObject *
+_PyErr_FormatV(PyThreadState *tstate, PyObject *exception,
+ const char *format, va_list vargs)
{
PyObject* string;
/* Issue #23571: PyUnicode_FromFormatV() must not be called with an
exception set, it calls arbitrary Python code like PyObject_Repr() */
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
string = PyUnicode_FromFormatV(format, vargs);
- _PyErr_SetObject(tstate, exception, string);
+ _PyErr_SetObject(tstate, exception, string);
Py_XDECREF(string);
return NULL;
}
PyObject *
-PyErr_FormatV(PyObject *exception, const char *format, va_list vargs)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyErr_FormatV(tstate, exception, format, vargs);
-}
-
-
-PyObject *
-_PyErr_Format(PyThreadState *tstate, PyObject *exception,
- const char *format, ...)
-{
- va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, format);
-#else
- va_start(vargs);
-#endif
- _PyErr_FormatV(tstate, exception, format, vargs);
- va_end(vargs);
- return NULL;
-}
-
-
-PyObject *
+PyErr_FormatV(PyObject *exception, const char *format, va_list vargs)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyErr_FormatV(tstate, exception, format, vargs);
+}
+
+
+PyObject *
+_PyErr_Format(PyThreadState *tstate, PyObject *exception,
+ const char *format, ...)
+{
+ va_list vargs;
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
+ _PyErr_FormatV(tstate, exception, format, vargs);
+ va_end(vargs);
+ return NULL;
+}
+
+
+PyObject *
PyErr_Format(PyObject *exception, const char *format, ...)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
va_list vargs;
#ifdef HAVE_STDARG_PROTOTYPES
va_start(vargs, format);
#else
va_start(vargs);
#endif
- _PyErr_FormatV(tstate, exception, format, vargs);
+ _PyErr_FormatV(tstate, exception, format, vargs);
va_end(vargs);
return NULL;
}
@@ -1107,37 +1107,37 @@ PyErr_Format(PyObject *exception, const char *format, ...)
PyObject *
PyErr_NewException(const char *name, PyObject *base, PyObject *dict)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *modulename = NULL;
PyObject *classname = NULL;
PyObject *mydict = NULL;
PyObject *bases = NULL;
PyObject *result = NULL;
-
- const char *dot = strrchr(name, '.');
+
+ const char *dot = strrchr(name, '.');
if (dot == NULL) {
- _PyErr_SetString(tstate, PyExc_SystemError,
- "PyErr_NewException: name must be module.class");
+ _PyErr_SetString(tstate, PyExc_SystemError,
+ "PyErr_NewException: name must be module.class");
return NULL;
}
- if (base == NULL) {
+ if (base == NULL) {
base = PyExc_Exception;
- }
+ }
if (dict == NULL) {
dict = mydict = PyDict_New();
if (dict == NULL)
goto failure;
}
-
- if (_PyDict_GetItemIdWithError(dict, &PyId___module__) == NULL) {
- if (_PyErr_Occurred(tstate)) {
- goto failure;
- }
+
+ if (_PyDict_GetItemIdWithError(dict, &PyId___module__) == NULL) {
+ if (_PyErr_Occurred(tstate)) {
+ goto failure;
+ }
modulename = PyUnicode_FromStringAndSize(name,
(Py_ssize_t)(dot-name));
if (modulename == NULL)
goto failure;
- if (_PyDict_SetItemId(dict, &PyId___module__, modulename) != 0)
+ if (_PyDict_SetItemId(dict, &PyId___module__, modulename) != 0)
goto failure;
}
if (PyTuple_Check(base)) {
@@ -1195,372 +1195,372 @@ PyErr_NewExceptionWithDoc(const char *name, const char *doc,
}
-PyDoc_STRVAR(UnraisableHookArgs__doc__,
-"UnraisableHookArgs\n\
-\n\
-Type used to pass arguments to sys.unraisablehook.");
-
-static PyTypeObject UnraisableHookArgsType;
-
-static PyStructSequence_Field UnraisableHookArgs_fields[] = {
- {"exc_type", "Exception type"},
- {"exc_value", "Exception value"},
- {"exc_traceback", "Exception traceback"},
- {"err_msg", "Error message"},
- {"object", "Object causing the exception"},
- {0}
-};
-
-static PyStructSequence_Desc UnraisableHookArgs_desc = {
- .name = "UnraisableHookArgs",
- .doc = UnraisableHookArgs__doc__,
- .fields = UnraisableHookArgs_fields,
- .n_in_sequence = 5
-};
-
-
-PyStatus
-_PyErr_Init(void)
-{
- if (UnraisableHookArgsType.tp_name == NULL) {
- if (PyStructSequence_InitType2(&UnraisableHookArgsType,
- &UnraisableHookArgs_desc) < 0) {
- return _PyStatus_ERR("failed to initialize UnraisableHookArgs type");
- }
- }
- return _PyStatus_OK();
-}
-
-
-static PyObject *
-make_unraisable_hook_args(PyThreadState *tstate, PyObject *exc_type,
- PyObject *exc_value, PyObject *exc_tb,
- PyObject *err_msg, PyObject *obj)
-{
- PyObject *args = PyStructSequence_New(&UnraisableHookArgsType);
- if (args == NULL) {
- return NULL;
- }
-
- Py_ssize_t pos = 0;
-#define ADD_ITEM(exc_type) \
- do { \
- if (exc_type == NULL) { \
- exc_type = Py_None; \
- } \
- Py_INCREF(exc_type); \
- PyStructSequence_SET_ITEM(args, pos++, exc_type); \
- } while (0)
-
-
- ADD_ITEM(exc_type);
- ADD_ITEM(exc_value);
- ADD_ITEM(exc_tb);
- ADD_ITEM(err_msg);
- ADD_ITEM(obj);
-#undef ADD_ITEM
-
- if (_PyErr_Occurred(tstate)) {
- Py_DECREF(args);
- return NULL;
- }
- return args;
-}
-
-
-
-/* Default implementation of sys.unraisablehook.
-
- It can be called to log the exception of a custom sys.unraisablehook.
-
- Do nothing if sys.stderr attribute doesn't exist or is set to None. */
-static int
-write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type,
- PyObject *exc_value, PyObject *exc_tb,
- PyObject *err_msg, PyObject *obj, PyObject *file)
-{
- if (obj != NULL && obj != Py_None) {
- if (err_msg != NULL && err_msg != Py_None) {
- if (PyFile_WriteObject(err_msg, file, Py_PRINT_RAW) < 0) {
- return -1;
- }
- if (PyFile_WriteString(": ", file) < 0) {
- return -1;
- }
- }
- else {
- if (PyFile_WriteString("Exception ignored in: ", file) < 0) {
- return -1;
- }
- }
-
- if (PyFile_WriteObject(obj, file, 0) < 0) {
- _PyErr_Clear(tstate);
- if (PyFile_WriteString("<object repr() failed>", file) < 0) {
- return -1;
+PyDoc_STRVAR(UnraisableHookArgs__doc__,
+"UnraisableHookArgs\n\
+\n\
+Type used to pass arguments to sys.unraisablehook.");
+
+static PyTypeObject UnraisableHookArgsType;
+
+static PyStructSequence_Field UnraisableHookArgs_fields[] = {
+ {"exc_type", "Exception type"},
+ {"exc_value", "Exception value"},
+ {"exc_traceback", "Exception traceback"},
+ {"err_msg", "Error message"},
+ {"object", "Object causing the exception"},
+ {0}
+};
+
+static PyStructSequence_Desc UnraisableHookArgs_desc = {
+ .name = "UnraisableHookArgs",
+ .doc = UnraisableHookArgs__doc__,
+ .fields = UnraisableHookArgs_fields,
+ .n_in_sequence = 5
+};
+
+
+PyStatus
+_PyErr_Init(void)
+{
+ if (UnraisableHookArgsType.tp_name == NULL) {
+ if (PyStructSequence_InitType2(&UnraisableHookArgsType,
+ &UnraisableHookArgs_desc) < 0) {
+ return _PyStatus_ERR("failed to initialize UnraisableHookArgs type");
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+static PyObject *
+make_unraisable_hook_args(PyThreadState *tstate, PyObject *exc_type,
+ PyObject *exc_value, PyObject *exc_tb,
+ PyObject *err_msg, PyObject *obj)
+{
+ PyObject *args = PyStructSequence_New(&UnraisableHookArgsType);
+ if (args == NULL) {
+ return NULL;
+ }
+
+ Py_ssize_t pos = 0;
+#define ADD_ITEM(exc_type) \
+ do { \
+ if (exc_type == NULL) { \
+ exc_type = Py_None; \
+ } \
+ Py_INCREF(exc_type); \
+ PyStructSequence_SET_ITEM(args, pos++, exc_type); \
+ } while (0)
+
+
+ ADD_ITEM(exc_type);
+ ADD_ITEM(exc_value);
+ ADD_ITEM(exc_tb);
+ ADD_ITEM(err_msg);
+ ADD_ITEM(obj);
+#undef ADD_ITEM
+
+ if (_PyErr_Occurred(tstate)) {
+ Py_DECREF(args);
+ return NULL;
+ }
+ return args;
+}
+
+
+
+/* Default implementation of sys.unraisablehook.
+
+ It can be called to log the exception of a custom sys.unraisablehook.
+
+ Do nothing if sys.stderr attribute doesn't exist or is set to None. */
+static int
+write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type,
+ PyObject *exc_value, PyObject *exc_tb,
+ PyObject *err_msg, PyObject *obj, PyObject *file)
+{
+ if (obj != NULL && obj != Py_None) {
+ if (err_msg != NULL && err_msg != Py_None) {
+ if (PyFile_WriteObject(err_msg, file, Py_PRINT_RAW) < 0) {
+ return -1;
+ }
+ if (PyFile_WriteString(": ", file) < 0) {
+ return -1;
}
}
- if (PyFile_WriteString("\n", file) < 0) {
- return -1;
- }
- }
- else if (err_msg != NULL && err_msg != Py_None) {
- if (PyFile_WriteObject(err_msg, file, Py_PRINT_RAW) < 0) {
- return -1;
- }
- if (PyFile_WriteString(":\n", file) < 0) {
- return -1;
- }
- }
-
- if (exc_tb != NULL && exc_tb != Py_None) {
- if (PyTraceBack_Print(exc_tb, file) < 0) {
- /* continue even if writing the traceback failed */
- _PyErr_Clear(tstate);
- }
- }
-
- if (exc_type == NULL || exc_type == Py_None) {
- return -1;
- }
-
- assert(PyExceptionClass_Check(exc_type));
-
- PyObject *modulename = _PyObject_GetAttrId(exc_type, &PyId___module__);
- if (modulename == NULL || !PyUnicode_Check(modulename)) {
- Py_XDECREF(modulename);
- _PyErr_Clear(tstate);
- if (PyFile_WriteString("<unknown>", file) < 0) {
- return -1;
- }
+ else {
+ if (PyFile_WriteString("Exception ignored in: ", file) < 0) {
+ return -1;
+ }
+ }
+
+ if (PyFile_WriteObject(obj, file, 0) < 0) {
+ _PyErr_Clear(tstate);
+ if (PyFile_WriteString("<object repr() failed>", file) < 0) {
+ return -1;
+ }
+ }
+ if (PyFile_WriteString("\n", file) < 0) {
+ return -1;
+ }
+ }
+ else if (err_msg != NULL && err_msg != Py_None) {
+ if (PyFile_WriteObject(err_msg, file, Py_PRINT_RAW) < 0) {
+ return -1;
+ }
+ if (PyFile_WriteString(":\n", file) < 0) {
+ return -1;
+ }
+ }
+
+ if (exc_tb != NULL && exc_tb != Py_None) {
+ if (PyTraceBack_Print(exc_tb, file) < 0) {
+ /* continue even if writing the traceback failed */
+ _PyErr_Clear(tstate);
+ }
+ }
+
+ if (exc_type == NULL || exc_type == Py_None) {
+ return -1;
+ }
+
+ assert(PyExceptionClass_Check(exc_type));
+
+ PyObject *modulename = _PyObject_GetAttrId(exc_type, &PyId___module__);
+ if (modulename == NULL || !PyUnicode_Check(modulename)) {
+ Py_XDECREF(modulename);
+ _PyErr_Clear(tstate);
+ if (PyFile_WriteString("<unknown>", file) < 0) {
+ return -1;
+ }
}
else {
- if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) {
- if (PyFile_WriteObject(modulename, file, Py_PRINT_RAW) < 0) {
- Py_DECREF(modulename);
- return -1;
- }
- Py_DECREF(modulename);
- if (PyFile_WriteString(".", file) < 0) {
- return -1;
- }
+ if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) {
+ if (PyFile_WriteObject(modulename, file, Py_PRINT_RAW) < 0) {
+ Py_DECREF(modulename);
+ return -1;
+ }
+ Py_DECREF(modulename);
+ if (PyFile_WriteString(".", file) < 0) {
+ return -1;
+ }
+ }
+ else {
+ Py_DECREF(modulename);
+ }
+ }
+
+ PyObject *qualname = _PyType_GetQualName((PyTypeObject *)exc_type);
+ if (qualname == NULL || !PyUnicode_Check(qualname)) {
+ Py_XDECREF(qualname);
+ _PyErr_Clear(tstate);
+ if (PyFile_WriteString("<unknown>", file) < 0) {
+ return -1;
}
- else {
- Py_DECREF(modulename);
- }
- }
-
- PyObject *qualname = _PyType_GetQualName((PyTypeObject *)exc_type);
- if (qualname == NULL || !PyUnicode_Check(qualname)) {
- Py_XDECREF(qualname);
- _PyErr_Clear(tstate);
- if (PyFile_WriteString("<unknown>", file) < 0) {
- return -1;
- }
}
else {
- if (PyFile_WriteObject(qualname, file, Py_PRINT_RAW) < 0) {
- Py_DECREF(qualname);
- return -1;
- }
- Py_DECREF(qualname);
- }
-
- if (exc_value && exc_value != Py_None) {
- if (PyFile_WriteString(": ", file) < 0) {
- return -1;
- }
- if (PyFile_WriteObject(exc_value, file, Py_PRINT_RAW) < 0) {
- _PyErr_Clear(tstate);
- if (PyFile_WriteString("<exception str() failed>", file) < 0) {
- return -1;
+ if (PyFile_WriteObject(qualname, file, Py_PRINT_RAW) < 0) {
+ Py_DECREF(qualname);
+ return -1;
+ }
+ Py_DECREF(qualname);
+ }
+
+ if (exc_value && exc_value != Py_None) {
+ if (PyFile_WriteString(": ", file) < 0) {
+ return -1;
+ }
+ if (PyFile_WriteObject(exc_value, file, Py_PRINT_RAW) < 0) {
+ _PyErr_Clear(tstate);
+ if (PyFile_WriteString("<exception str() failed>", file) < 0) {
+ return -1;
+ }
+ }
+ }
+
+ if (PyFile_WriteString("\n", file) < 0) {
+ return -1;
+ }
+
+ /* Explicitly call file.flush() */
+ PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
+ if (!res) {
+ return -1;
+ }
+ Py_DECREF(res);
+
+ return 0;
+}
+
+
+static int
+write_unraisable_exc(PyThreadState *tstate, PyObject *exc_type,
+ PyObject *exc_value, PyObject *exc_tb, PyObject *err_msg,
+ PyObject *obj)
+{
+ PyObject *file = _PySys_GetObjectId(&PyId_stderr);
+ if (file == NULL || file == Py_None) {
+ return 0;
+ }
+
+ /* Hold a strong reference to ensure that sys.stderr doesn't go away
+ while we use it */
+ Py_INCREF(file);
+ int res = write_unraisable_exc_file(tstate, exc_type, exc_value, exc_tb,
+ err_msg, obj, file);
+ Py_DECREF(file);
+
+ return res;
+}
+
+
+PyObject*
+_PyErr_WriteUnraisableDefaultHook(PyObject *args)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ if (!Py_IS_TYPE(args, &UnraisableHookArgsType)) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "sys.unraisablehook argument type "
+ "must be UnraisableHookArgs");
+ return NULL;
+ }
+
+ /* Borrowed references */
+ PyObject *exc_type = PyStructSequence_GET_ITEM(args, 0);
+ PyObject *exc_value = PyStructSequence_GET_ITEM(args, 1);
+ PyObject *exc_tb = PyStructSequence_GET_ITEM(args, 2);
+ PyObject *err_msg = PyStructSequence_GET_ITEM(args, 3);
+ PyObject *obj = PyStructSequence_GET_ITEM(args, 4);
+
+ if (write_unraisable_exc(tstate, exc_type, exc_value, exc_tb, err_msg, obj) < 0) {
+ return NULL;
+ }
+ Py_RETURN_NONE;
+}
+
+
+/* Call sys.unraisablehook().
+
+ This function can be used when an exception has occurred but there is no way
+ for Python to handle it. For example, when a destructor raises an exception
+ or during garbage collection (gc.collect()).
+
+ If err_msg_str is non-NULL, the error message is formatted as:
+ "Exception ignored %s" % err_msg_str. Otherwise, use "Exception ignored in"
+ error message.
+
+ An exception must be set when calling this function. */
+void
+_PyErr_WriteUnraisableMsg(const char *err_msg_str, PyObject *obj)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _Py_EnsureTstateNotNULL(tstate);
+
+ PyObject *err_msg = NULL;
+ PyObject *exc_type, *exc_value, *exc_tb;
+ _PyErr_Fetch(tstate, &exc_type, &exc_value, &exc_tb);
+
+ assert(exc_type != NULL);
+
+ if (exc_type == NULL) {
+ /* sys.unraisablehook requires that at least exc_type is set */
+ goto default_hook;
+ }
+
+ if (exc_tb == NULL) {
+ PyFrameObject *frame = tstate->frame;
+ if (frame != NULL) {
+ exc_tb = _PyTraceBack_FromFrame(NULL, frame);
+ if (exc_tb == NULL) {
+ _PyErr_Clear(tstate);
}
}
}
-
- if (PyFile_WriteString("\n", file) < 0) {
- return -1;
- }
-
- /* Explicitly call file.flush() */
- PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
- if (!res) {
- return -1;
- }
- Py_DECREF(res);
-
- return 0;
-}
-
-
-static int
-write_unraisable_exc(PyThreadState *tstate, PyObject *exc_type,
- PyObject *exc_value, PyObject *exc_tb, PyObject *err_msg,
- PyObject *obj)
-{
- PyObject *file = _PySys_GetObjectId(&PyId_stderr);
- if (file == NULL || file == Py_None) {
- return 0;
- }
-
- /* Hold a strong reference to ensure that sys.stderr doesn't go away
- while we use it */
- Py_INCREF(file);
- int res = write_unraisable_exc_file(tstate, exc_type, exc_value, exc_tb,
- err_msg, obj, file);
- Py_DECREF(file);
-
- return res;
-}
-
-
-PyObject*
-_PyErr_WriteUnraisableDefaultHook(PyObject *args)
-{
- PyThreadState *tstate = _PyThreadState_GET();
-
- if (!Py_IS_TYPE(args, &UnraisableHookArgsType)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "sys.unraisablehook argument type "
- "must be UnraisableHookArgs");
- return NULL;
- }
-
- /* Borrowed references */
- PyObject *exc_type = PyStructSequence_GET_ITEM(args, 0);
- PyObject *exc_value = PyStructSequence_GET_ITEM(args, 1);
- PyObject *exc_tb = PyStructSequence_GET_ITEM(args, 2);
- PyObject *err_msg = PyStructSequence_GET_ITEM(args, 3);
- PyObject *obj = PyStructSequence_GET_ITEM(args, 4);
-
- if (write_unraisable_exc(tstate, exc_type, exc_value, exc_tb, err_msg, obj) < 0) {
- return NULL;
- }
- Py_RETURN_NONE;
-}
-
-
-/* Call sys.unraisablehook().
-
- This function can be used when an exception has occurred but there is no way
- for Python to handle it. For example, when a destructor raises an exception
- or during garbage collection (gc.collect()).
-
- If err_msg_str is non-NULL, the error message is formatted as:
- "Exception ignored %s" % err_msg_str. Otherwise, use "Exception ignored in"
- error message.
-
- An exception must be set when calling this function. */
-void
-_PyErr_WriteUnraisableMsg(const char *err_msg_str, PyObject *obj)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _Py_EnsureTstateNotNULL(tstate);
-
- PyObject *err_msg = NULL;
- PyObject *exc_type, *exc_value, *exc_tb;
- _PyErr_Fetch(tstate, &exc_type, &exc_value, &exc_tb);
-
- assert(exc_type != NULL);
-
- if (exc_type == NULL) {
- /* sys.unraisablehook requires that at least exc_type is set */
- goto default_hook;
- }
-
- if (exc_tb == NULL) {
- PyFrameObject *frame = tstate->frame;
- if (frame != NULL) {
- exc_tb = _PyTraceBack_FromFrame(NULL, frame);
- if (exc_tb == NULL) {
- _PyErr_Clear(tstate);
- }
- }
- }
-
- _PyErr_NormalizeException(tstate, &exc_type, &exc_value, &exc_tb);
-
- if (exc_tb != NULL && exc_tb != Py_None && PyTraceBack_Check(exc_tb)) {
- if (PyException_SetTraceback(exc_value, exc_tb) < 0) {
- _PyErr_Clear(tstate);
- }
- }
-
- if (err_msg_str != NULL) {
- err_msg = PyUnicode_FromFormat("Exception ignored %s", err_msg_str);
- if (err_msg == NULL) {
- PyErr_Clear();
- }
- }
-
- PyObject *hook_args = make_unraisable_hook_args(
- tstate, exc_type, exc_value, exc_tb, err_msg, obj);
- if (hook_args == NULL) {
- err_msg_str = ("Exception ignored on building "
- "sys.unraisablehook arguments");
- goto error;
- }
-
- _Py_IDENTIFIER(unraisablehook);
- PyObject *hook = _PySys_GetObjectId(&PyId_unraisablehook);
- if (hook == NULL) {
- Py_DECREF(hook_args);
- goto default_hook;
- }
-
- if (_PySys_Audit(tstate, "sys.unraisablehook", "OO", hook, hook_args) < 0) {
- Py_DECREF(hook_args);
- err_msg_str = "Exception ignored in audit hook";
- obj = NULL;
- goto error;
- }
-
- if (hook == Py_None) {
- Py_DECREF(hook_args);
- goto default_hook;
- }
-
- PyObject *res = PyObject_CallOneArg(hook, hook_args);
- Py_DECREF(hook_args);
- if (res != NULL) {
- Py_DECREF(res);
- goto done;
- }
-
- /* sys.unraisablehook failed: log its error using default hook */
- obj = hook;
- err_msg_str = NULL;
-
-error:
- /* err_msg_str and obj have been updated and we have a new exception */
- Py_XSETREF(err_msg, PyUnicode_FromString(err_msg_str ?
- err_msg_str : "Exception ignored in sys.unraisablehook"));
- Py_XDECREF(exc_type);
- Py_XDECREF(exc_value);
- Py_XDECREF(exc_tb);
- _PyErr_Fetch(tstate, &exc_type, &exc_value, &exc_tb);
-
-default_hook:
- /* Call the default unraisable hook (ignore failure) */
- (void)write_unraisable_exc(tstate, exc_type, exc_value, exc_tb,
- err_msg, obj);
-
-done:
- Py_XDECREF(exc_type);
- Py_XDECREF(exc_value);
- Py_XDECREF(exc_tb);
- Py_XDECREF(err_msg);
- _PyErr_Clear(tstate); /* Just in case */
-}
-
-
-void
-PyErr_WriteUnraisable(PyObject *obj)
-{
- _PyErr_WriteUnraisableMsg(NULL, obj);
-}
-
-
+
+ _PyErr_NormalizeException(tstate, &exc_type, &exc_value, &exc_tb);
+
+ if (exc_tb != NULL && exc_tb != Py_None && PyTraceBack_Check(exc_tb)) {
+ if (PyException_SetTraceback(exc_value, exc_tb) < 0) {
+ _PyErr_Clear(tstate);
+ }
+ }
+
+ if (err_msg_str != NULL) {
+ err_msg = PyUnicode_FromFormat("Exception ignored %s", err_msg_str);
+ if (err_msg == NULL) {
+ PyErr_Clear();
+ }
+ }
+
+ PyObject *hook_args = make_unraisable_hook_args(
+ tstate, exc_type, exc_value, exc_tb, err_msg, obj);
+ if (hook_args == NULL) {
+ err_msg_str = ("Exception ignored on building "
+ "sys.unraisablehook arguments");
+ goto error;
+ }
+
+ _Py_IDENTIFIER(unraisablehook);
+ PyObject *hook = _PySys_GetObjectId(&PyId_unraisablehook);
+ if (hook == NULL) {
+ Py_DECREF(hook_args);
+ goto default_hook;
+ }
+
+ if (_PySys_Audit(tstate, "sys.unraisablehook", "OO", hook, hook_args) < 0) {
+ Py_DECREF(hook_args);
+ err_msg_str = "Exception ignored in audit hook";
+ obj = NULL;
+ goto error;
+ }
+
+ if (hook == Py_None) {
+ Py_DECREF(hook_args);
+ goto default_hook;
+ }
+
+ PyObject *res = PyObject_CallOneArg(hook, hook_args);
+ Py_DECREF(hook_args);
+ if (res != NULL) {
+ Py_DECREF(res);
+ goto done;
+ }
+
+ /* sys.unraisablehook failed: log its error using default hook */
+ obj = hook;
+ err_msg_str = NULL;
+
+error:
+ /* err_msg_str and obj have been updated and we have a new exception */
+ Py_XSETREF(err_msg, PyUnicode_FromString(err_msg_str ?
+ err_msg_str : "Exception ignored in sys.unraisablehook"));
+ Py_XDECREF(exc_type);
+ Py_XDECREF(exc_value);
+ Py_XDECREF(exc_tb);
+ _PyErr_Fetch(tstate, &exc_type, &exc_value, &exc_tb);
+
+default_hook:
+ /* Call the default unraisable hook (ignore failure) */
+ (void)write_unraisable_exc(tstate, exc_type, exc_value, exc_tb,
+ err_msg, obj);
+
+done:
+ Py_XDECREF(exc_type);
+ Py_XDECREF(exc_value);
+ Py_XDECREF(exc_tb);
+ Py_XDECREF(err_msg);
+ _PyErr_Clear(tstate); /* Just in case */
+}
+
+
+void
+PyErr_WriteUnraisable(PyObject *obj)
+{
+ _PyErr_WriteUnraisableMsg(NULL, obj);
+}
+
+
extern PyObject *PyModule_GetWarningsModule(void);
@@ -1585,43 +1585,43 @@ PyErr_SyntaxLocationObject(PyObject *filename, int lineno, int col_offset)
_Py_IDENTIFIER(offset);
_Py_IDENTIFIER(print_file_and_line);
_Py_IDENTIFIER(text);
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
/* add attributes for the line number and filename for the error */
- _PyErr_Fetch(tstate, &exc, &v, &tb);
- _PyErr_NormalizeException(tstate, &exc, &v, &tb);
+ _PyErr_Fetch(tstate, &exc, &v, &tb);
+ _PyErr_NormalizeException(tstate, &exc, &v, &tb);
/* XXX check that it is, indeed, a syntax error. It might not
* be, though. */
tmp = PyLong_FromLong(lineno);
if (tmp == NULL)
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
else {
- if (_PyObject_SetAttrId(v, &PyId_lineno, tmp)) {
- _PyErr_Clear(tstate);
- }
+ if (_PyObject_SetAttrId(v, &PyId_lineno, tmp)) {
+ _PyErr_Clear(tstate);
+ }
Py_DECREF(tmp);
}
tmp = NULL;
if (col_offset >= 0) {
tmp = PyLong_FromLong(col_offset);
- if (tmp == NULL) {
- _PyErr_Clear(tstate);
- }
+ if (tmp == NULL) {
+ _PyErr_Clear(tstate);
+ }
+ }
+ if (_PyObject_SetAttrId(v, &PyId_offset, tmp ? tmp : Py_None)) {
+ _PyErr_Clear(tstate);
}
- if (_PyObject_SetAttrId(v, &PyId_offset, tmp ? tmp : Py_None)) {
- _PyErr_Clear(tstate);
- }
Py_XDECREF(tmp);
if (filename != NULL) {
- if (_PyObject_SetAttrId(v, &PyId_filename, filename)) {
- _PyErr_Clear(tstate);
- }
+ if (_PyObject_SetAttrId(v, &PyId_filename, filename)) {
+ _PyErr_Clear(tstate);
+ }
tmp = PyErr_ProgramTextObject(filename, lineno);
if (tmp) {
- if (_PyObject_SetAttrId(v, &PyId_text, tmp)) {
- _PyErr_Clear(tstate);
- }
+ if (_PyObject_SetAttrId(v, &PyId_text, tmp)) {
+ _PyErr_Clear(tstate);
+ }
Py_DECREF(tmp);
}
}
@@ -1629,39 +1629,39 @@ PyErr_SyntaxLocationObject(PyObject *filename, int lineno, int col_offset)
if (!_PyObject_HasAttrId(v, &PyId_msg)) {
tmp = PyObject_Str(v);
if (tmp) {
- if (_PyObject_SetAttrId(v, &PyId_msg, tmp)) {
- _PyErr_Clear(tstate);
- }
+ if (_PyObject_SetAttrId(v, &PyId_msg, tmp)) {
+ _PyErr_Clear(tstate);
+ }
Py_DECREF(tmp);
}
- else {
- _PyErr_Clear(tstate);
- }
+ else {
+ _PyErr_Clear(tstate);
+ }
}
if (!_PyObject_HasAttrId(v, &PyId_print_file_and_line)) {
if (_PyObject_SetAttrId(v, &PyId_print_file_and_line,
- Py_None)) {
- _PyErr_Clear(tstate);
- }
+ Py_None)) {
+ _PyErr_Clear(tstate);
+ }
}
}
- _PyErr_Restore(tstate, exc, v, tb);
+ _PyErr_Restore(tstate, exc, v, tb);
}
void
PyErr_SyntaxLocationEx(const char *filename, int lineno, int col_offset)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *fileobj;
if (filename != NULL) {
fileobj = PyUnicode_DecodeFSDefault(filename);
- if (fileobj == NULL) {
- _PyErr_Clear(tstate);
- }
+ if (fileobj == NULL) {
+ _PyErr_Clear(tstate);
+ }
}
- else {
+ else {
fileobj = NULL;
- }
+ }
PyErr_SyntaxLocationObject(fileobj, lineno, col_offset);
Py_XDECREF(fileobj);
}
@@ -1673,22 +1673,22 @@ PyErr_SyntaxLocationEx(const char *filename, int lineno, int col_offset)
functionality in tb_displayline() in traceback.c. */
static PyObject *
-err_programtext(PyThreadState *tstate, FILE *fp, int lineno)
+err_programtext(PyThreadState *tstate, FILE *fp, int lineno)
{
int i;
char linebuf[1000];
- if (fp == NULL) {
- return NULL;
- }
+ if (fp == NULL) {
+ return NULL;
+ }
for (i = 0; i < lineno; i++) {
char *pLastChar = &linebuf[sizeof(linebuf) - 2];
do {
*pLastChar = '\0';
if (Py_UniversalNewlineFgets(linebuf, sizeof linebuf,
- fp, NULL) == NULL) {
- goto after_loop;
- }
+ fp, NULL) == NULL) {
+ goto after_loop;
+ }
/* fgets read *something*; if it didn't get as
far as pLastChar, it must have found a newline
or hit the end of the file; if pLastChar is \n,
@@ -1696,14 +1696,14 @@ err_programtext(PyThreadState *tstate, FILE *fp, int lineno)
yet seen a newline, so must continue */
} while (*pLastChar != '\0' && *pLastChar != '\n');
}
-
-after_loop:
+
+after_loop:
fclose(fp);
if (i == lineno) {
PyObject *res;
res = PyUnicode_FromString(linebuf);
if (res == NULL)
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
return res;
}
return NULL;
@@ -1713,28 +1713,28 @@ PyObject *
PyErr_ProgramText(const char *filename, int lineno)
{
FILE *fp;
- if (filename == NULL || *filename == '\0' || lineno <= 0) {
+ if (filename == NULL || *filename == '\0' || lineno <= 0) {
return NULL;
- }
- PyThreadState *tstate = _PyThreadState_GET();
+ }
+ PyThreadState *tstate = _PyThreadState_GET();
fp = _Py_fopen(filename, "r" PY_STDIOTEXTMODE);
- return err_programtext(tstate, fp, lineno);
+ return err_programtext(tstate, fp, lineno);
}
PyObject *
PyErr_ProgramTextObject(PyObject *filename, int lineno)
{
- if (filename == NULL || lineno <= 0) {
+ if (filename == NULL || lineno <= 0) {
return NULL;
- }
-
- PyThreadState *tstate = _PyThreadState_GET();
- FILE *fp = _Py_fopen_obj(filename, "r" PY_STDIOTEXTMODE);
+ }
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ FILE *fp = _Py_fopen_obj(filename, "r" PY_STDIOTEXTMODE);
if (fp == NULL) {
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
return NULL;
}
- return err_programtext(tstate, fp, lineno);
+ return err_programtext(tstate, fp, lineno);
}
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Python/fileutils.c b/contrib/tools/python3/src/Python/fileutils.c
index ce0a9ef8ce..26e97df4ef 100644
--- a/contrib/tools/python3/src/Python/fileutils.c
+++ b/contrib/tools/python3/src/Python/fileutils.c
@@ -1,6 +1,6 @@
#include "Python.h"
-#include "pycore_fileutils.h"
-#include "osdefs.h" // SEP
+#include "pycore_fileutils.h"
+#include "osdefs.h" // SEP
#include <locale.h>
#ifdef MS_WINDOWS
@@ -17,10 +17,10 @@ extern int winerror_to_errno(int);
#include <sys/ioctl.h>
#endif
-#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
-#include <iconv.h>
-#endif
-
+#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+#include <iconv.h>
+#endif
+
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif /* HAVE_FCNTL_H */
@@ -37,31 +37,31 @@ extern int winerror_to_errno(int);
int _Py_open_cloexec_works = -1;
#endif
-// The value must be the same in unicodeobject.c.
-#define MAX_UNICODE 0x10ffff
-
-// mbstowcs() and mbrtowc() errors
-static const size_t DECODE_ERROR = ((size_t)-1);
-static const size_t INCOMPLETE_CHARACTER = (size_t)-2;
-
-
-static int
-get_surrogateescape(_Py_error_handler errors, int *surrogateescape)
-{
- switch (errors)
- {
- case _Py_ERROR_STRICT:
- *surrogateescape = 0;
- return 0;
- case _Py_ERROR_SURROGATEESCAPE:
- *surrogateescape = 1;
- return 0;
- default:
- return -1;
- }
-}
-
-
+// The value must be the same in unicodeobject.c.
+#define MAX_UNICODE 0x10ffff
+
+// mbstowcs() and mbrtowc() errors
+static const size_t DECODE_ERROR = ((size_t)-1);
+static const size_t INCOMPLETE_CHARACTER = (size_t)-2;
+
+
+static int
+get_surrogateescape(_Py_error_handler errors, int *surrogateescape)
+{
+ switch (errors)
+ {
+ case _Py_ERROR_STRICT:
+ *surrogateescape = 0;
+ return 0;
+ case _Py_ERROR_SURROGATEESCAPE:
+ *surrogateescape = 1;
+ return 0;
+ default:
+ return -1;
+ }
+}
+
+
PyObject *
_Py_device_encoding(int fd)
{
@@ -69,11 +69,11 @@ _Py_device_encoding(int fd)
UINT cp;
#endif
int valid;
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
valid = isatty(fd);
_Py_END_SUPPRESS_IPH
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (!valid)
Py_RETURN_NONE;
@@ -98,71 +98,71 @@ _Py_device_encoding(int fd)
Py_RETURN_NONE;
}
-
-static size_t
-is_valid_wide_char(wchar_t ch)
-{
-#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
- /* Oracle Solaris doesn't use Unicode code points as wchar_t encoding
- for non-Unicode locales, which makes values higher than MAX_UNICODE
- possibly valid. */
- return 1;
-#endif
- if (Py_UNICODE_IS_SURROGATE(ch)) {
- // Reject lone surrogate characters
- return 0;
- }
- if (ch > MAX_UNICODE) {
- // bpo-35883: Reject characters outside [U+0000; U+10ffff] range.
- // The glibc mbstowcs() UTF-8 decoder does not respect the RFC 3629,
- // it creates characters outside the [U+0000; U+10ffff] range:
- // https://sourceware.org/bugzilla/show_bug.cgi?id=2373
- return 0;
- }
- return 1;
-}
-
-
-static size_t
-_Py_mbstowcs(wchar_t *dest, const char *src, size_t n)
-{
- size_t count = mbstowcs(dest, src, n);
- if (dest != NULL && count != DECODE_ERROR) {
- for (size_t i=0; i < count; i++) {
- wchar_t ch = dest[i];
- if (!is_valid_wide_char(ch)) {
- return DECODE_ERROR;
- }
- }
- }
- return count;
-}
-
-
-#ifdef HAVE_MBRTOWC
-static size_t
-_Py_mbrtowc(wchar_t *pwc, const char *str, size_t len, mbstate_t *pmbs)
-{
- assert(pwc != NULL);
- size_t count = mbrtowc(pwc, str, len, pmbs);
- if (count != 0 && count != DECODE_ERROR && count != INCOMPLETE_CHARACTER) {
- if (!is_valid_wide_char(*pwc)) {
- return DECODE_ERROR;
- }
- }
- return count;
-}
-#endif
-
-
-#if !defined(_Py_FORCE_UTF8_FS_ENCODING) && !defined(MS_WINDOWS)
+
+static size_t
+is_valid_wide_char(wchar_t ch)
+{
+#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+ /* Oracle Solaris doesn't use Unicode code points as wchar_t encoding
+ for non-Unicode locales, which makes values higher than MAX_UNICODE
+ possibly valid. */
+ return 1;
+#endif
+ if (Py_UNICODE_IS_SURROGATE(ch)) {
+ // Reject lone surrogate characters
+ return 0;
+ }
+ if (ch > MAX_UNICODE) {
+ // bpo-35883: Reject characters outside [U+0000; U+10ffff] range.
+ // The glibc mbstowcs() UTF-8 decoder does not respect the RFC 3629,
+ // it creates characters outside the [U+0000; U+10ffff] range:
+ // https://sourceware.org/bugzilla/show_bug.cgi?id=2373
+ return 0;
+ }
+ return 1;
+}
+
+
+static size_t
+_Py_mbstowcs(wchar_t *dest, const char *src, size_t n)
+{
+ size_t count = mbstowcs(dest, src, n);
+ if (dest != NULL && count != DECODE_ERROR) {
+ for (size_t i=0; i < count; i++) {
+ wchar_t ch = dest[i];
+ if (!is_valid_wide_char(ch)) {
+ return DECODE_ERROR;
+ }
+ }
+ }
+ return count;
+}
+
+
+#ifdef HAVE_MBRTOWC
+static size_t
+_Py_mbrtowc(wchar_t *pwc, const char *str, size_t len, mbstate_t *pmbs)
+{
+ assert(pwc != NULL);
+ size_t count = mbrtowc(pwc, str, len, pmbs);
+ if (count != 0 && count != DECODE_ERROR && count != INCOMPLETE_CHARACTER) {
+ if (!is_valid_wide_char(*pwc)) {
+ return DECODE_ERROR;
+ }
+ }
+ return count;
+}
+#endif
+
+
+#if !defined(_Py_FORCE_UTF8_FS_ENCODING) && !defined(MS_WINDOWS)
#define USE_FORCE_ASCII
extern int _Py_normalize_encoding(const char *, char *, size_t);
-/* Workaround FreeBSD and OpenIndiana locale encoding issue with the C locale
- and POSIX locale. nl_langinfo(CODESET) announces an alias of the
+/* Workaround FreeBSD and OpenIndiana locale encoding issue with the C locale
+ and POSIX locale. nl_langinfo(CODESET) announces an alias of the
ASCII encoding, whereas mbstowcs() and wcstombs() functions use the
ISO-8859-1 encoding. The problem is that os.fsencode() and os.fsdecode() use
locale.getpreferredencoding() codec. For example, if command line arguments
@@ -175,10 +175,10 @@ extern int _Py_normalize_encoding(const char *, char *, size_t);
workaround is also enabled on error, for example if getting the locale
failed.
- On HP-UX with the C locale or the POSIX locale, nl_langinfo(CODESET)
- announces "roman8" but mbstowcs() uses Latin1 in practice. Force also the
- ASCII encoding in this case.
-
+ On HP-UX with the C locale or the POSIX locale, nl_langinfo(CODESET)
+ announces "roman8" but mbstowcs() uses Latin1 in practice. Force also the
+ ASCII encoding in this case.
+
Values of force_ascii:
1: the workaround is used: Py_EncodeLocale() uses
@@ -193,46 +193,46 @@ static int force_ascii = -1;
static int
check_force_ascii(void)
{
- char *loc = setlocale(LC_CTYPE, NULL);
- if (loc == NULL) {
- goto error;
- }
- if (strcmp(loc, "C") != 0 && strcmp(loc, "POSIX") != 0) {
- /* the LC_CTYPE locale is different than C and POSIX */
- return 0;
- }
-
+ char *loc = setlocale(LC_CTYPE, NULL);
+ if (loc == NULL) {
+ goto error;
+ }
+ if (strcmp(loc, "C") != 0 && strcmp(loc, "POSIX") != 0) {
+ /* the LC_CTYPE locale is different than C and POSIX */
+ return 0;
+ }
+
#if defined(HAVE_LANGINFO_H) && defined(CODESET)
- const char *codeset = nl_langinfo(CODESET);
- if (!codeset || codeset[0] == '\0') {
- /* CODESET is not set or empty */
- goto error;
- }
-
+ const char *codeset = nl_langinfo(CODESET);
+ if (!codeset || codeset[0] == '\0') {
+ /* CODESET is not set or empty */
+ goto error;
+ }
+
char encoding[20]; /* longest name: "iso_646.irv_1991\0" */
- if (!_Py_normalize_encoding(codeset, encoding, sizeof(encoding))) {
- goto error;
- }
-
-#ifdef __hpux
- if (strcmp(encoding, "roman8") == 0) {
- unsigned char ch;
- wchar_t wch;
- size_t res;
-
- ch = (unsigned char)0xA7;
- res = _Py_mbstowcs(&wch, (char*)&ch, 1);
- if (res != DECODE_ERROR && wch == L'\xA7') {
- /* On HP-UX with C locale or the POSIX locale,
- nl_langinfo(CODESET) announces "roman8", whereas mbstowcs() uses
- Latin1 encoding in practice. Force ASCII in this case.
-
- Roman8 decodes 0xA7 to U+00CF. Latin1 decodes 0xA7 to U+00A7. */
- return 1;
- }
- }
-#else
- const char* ascii_aliases[] = {
+ if (!_Py_normalize_encoding(codeset, encoding, sizeof(encoding))) {
+ goto error;
+ }
+
+#ifdef __hpux
+ if (strcmp(encoding, "roman8") == 0) {
+ unsigned char ch;
+ wchar_t wch;
+ size_t res;
+
+ ch = (unsigned char)0xA7;
+ res = _Py_mbstowcs(&wch, (char*)&ch, 1);
+ if (res != DECODE_ERROR && wch == L'\xA7') {
+ /* On HP-UX with C locale or the POSIX locale,
+ nl_langinfo(CODESET) announces "roman8", whereas mbstowcs() uses
+ Latin1 encoding in practice. Force ASCII in this case.
+
+ Roman8 decodes 0xA7 to U+00CF. Latin1 decodes 0xA7 to U+00A7. */
+ return 1;
+ }
+ }
+#else
+ const char* ascii_aliases[] = {
"ascii",
/* Aliases from Lib/encodings/aliases.py */
"646",
@@ -250,8 +250,8 @@ check_force_ascii(void)
NULL
};
- int is_ascii = 0;
- for (const char **alias=ascii_aliases; *alias != NULL; alias++) {
+ int is_ascii = 0;
+ for (const char **alias=ascii_aliases; *alias != NULL; alias++) {
if (strcmp(encoding, *alias) == 0) {
is_ascii = 1;
break;
@@ -262,15 +262,15 @@ check_force_ascii(void)
return 0;
}
- for (unsigned int i=0x80; i<=0xff; i++) {
- char ch[1];
- wchar_t wch[1];
+ for (unsigned int i=0x80; i<=0xff; i++) {
+ char ch[1];
+ wchar_t wch[1];
size_t res;
- unsigned uch = (unsigned char)i;
- ch[0] = (char)uch;
- res = _Py_mbstowcs(wch, ch, 1);
- if (res != DECODE_ERROR) {
+ unsigned uch = (unsigned char)i;
+ ch[0] = (char)uch;
+ res = _Py_mbstowcs(wch, ch, 1);
+ if (res != DECODE_ERROR) {
/* decoding a non-ASCII character from the locale encoding succeed:
the locale encoding is not ASCII, force ASCII */
return 1;
@@ -278,12 +278,12 @@ check_force_ascii(void)
}
/* None of the bytes in the range 0x80-0xff can be decoded from the locale
encoding: the locale encoding is really ASCII */
-#endif /* !defined(__hpux) */
+#endif /* !defined(__hpux) */
return 0;
#else
/* nl_langinfo(CODESET) is not available: always force ASCII */
return 1;
-#endif /* defined(HAVE_LANGINFO_H) && defined(CODESET) */
+#endif /* defined(HAVE_LANGINFO_H) && defined(CODESET) */
error:
/* if an error occurred, force the ASCII encoding */
@@ -311,17 +311,17 @@ _Py_ResetForceASCII(void)
static int
encode_ascii(const wchar_t *text, char **str,
size_t *error_pos, const char **reason,
- int raw_malloc, _Py_error_handler errors)
+ int raw_malloc, _Py_error_handler errors)
{
char *result = NULL, *out;
size_t len, i;
wchar_t ch;
- int surrogateescape;
- if (get_surrogateescape(errors, &surrogateescape) < 0) {
- return -3;
- }
-
+ int surrogateescape;
+ if (get_surrogateescape(errors, &surrogateescape) < 0) {
+ return -3;
+ }
+
len = wcslen(text);
/* +1 for NULL byte */
@@ -379,24 +379,24 @@ _Py_ResetForceASCII(void)
{
/* nothing to do */
}
-#endif /* !defined(_Py_FORCE_UTF8_FS_ENCODING) && !defined(MS_WINDOWS) */
+#endif /* !defined(_Py_FORCE_UTF8_FS_ENCODING) && !defined(MS_WINDOWS) */
#if !defined(HAVE_MBRTOWC) || defined(USE_FORCE_ASCII)
static int
decode_ascii(const char *arg, wchar_t **wstr, size_t *wlen,
- const char **reason, _Py_error_handler errors)
+ const char **reason, _Py_error_handler errors)
{
wchar_t *res;
unsigned char *in;
wchar_t *out;
size_t argsize = strlen(arg) + 1;
- int surrogateescape;
- if (get_surrogateescape(errors, &surrogateescape) < 0) {
- return -3;
- }
-
+ int surrogateescape;
+ if (get_surrogateescape(errors, &surrogateescape) < 0) {
+ return -3;
+ }
+
if (argsize > PY_SSIZE_T_MAX / sizeof(wchar_t)) {
return -1;
}
@@ -437,7 +437,7 @@ decode_ascii(const char *arg, wchar_t **wstr, size_t *wlen,
static int
decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen,
- const char **reason, _Py_error_handler errors)
+ const char **reason, _Py_error_handler errors)
{
wchar_t *res;
size_t argsize;
@@ -448,11 +448,11 @@ decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen,
mbstate_t mbs;
#endif
- int surrogateescape;
- if (get_surrogateescape(errors, &surrogateescape) < 0) {
- return -3;
- }
-
+ int surrogateescape;
+ if (get_surrogateescape(errors, &surrogateescape) < 0) {
+ return -3;
+ }
+
#ifdef HAVE_BROKEN_MBSTOWCS
/* Some platforms have a broken implementation of
* mbstowcs which does not count the characters that
@@ -460,9 +460,9 @@ decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen,
*/
argsize = strlen(arg);
#else
- argsize = _Py_mbstowcs(NULL, arg, 0);
+ argsize = _Py_mbstowcs(NULL, arg, 0);
#endif
- if (argsize != DECODE_ERROR) {
+ if (argsize != DECODE_ERROR) {
if (argsize > PY_SSIZE_T_MAX / sizeof(wchar_t) - 1) {
return -1;
}
@@ -471,13 +471,13 @@ decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen,
return -1;
}
- count = _Py_mbstowcs(res, arg, argsize + 1);
- if (count != DECODE_ERROR) {
- *wstr = res;
- if (wlen != NULL) {
- *wlen = count;
+ count = _Py_mbstowcs(res, arg, argsize + 1);
+ if (count != DECODE_ERROR) {
+ *wstr = res;
+ if (wlen != NULL) {
+ *wlen = count;
}
- return 0;
+ return 0;
}
PyMem_RawFree(res);
}
@@ -501,13 +501,13 @@ decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen,
out = res;
memset(&mbs, 0, sizeof mbs);
while (argsize) {
- size_t converted = _Py_mbrtowc(out, (char*)in, argsize, &mbs);
+ size_t converted = _Py_mbrtowc(out, (char*)in, argsize, &mbs);
if (converted == 0) {
/* Reached end of string; null char stored. */
break;
}
- if (converted == INCOMPLETE_CHARACTER) {
+ if (converted == INCOMPLETE_CHARACTER) {
/* Incomplete character. This should never happen,
since we provide everything that we have -
unless there is a bug in the C library, or I
@@ -515,21 +515,21 @@ decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen,
goto decode_error;
}
- if (converted == DECODE_ERROR) {
+ if (converted == DECODE_ERROR) {
if (!surrogateescape) {
goto decode_error;
}
- /* Decoding error. Escape as UTF-8b, and start over in the initial
- shift state. */
+ /* Decoding error. Escape as UTF-8b, and start over in the initial
+ shift state. */
*out++ = 0xdc00 + *in++;
argsize--;
memset(&mbs, 0, sizeof mbs);
continue;
}
- // _Py_mbrtowc() reject lone surrogate characters
- assert(!Py_UNICODE_IS_SURROGATE(*out));
+ // _Py_mbrtowc() reject lone surrogate characters
+ assert(!Py_UNICODE_IS_SURROGATE(*out));
/* successfully converted some bytes */
in += converted;
@@ -555,7 +555,7 @@ decode_error:
/* Cannot use C locale for escaping; manually escape as if charset
is ASCII (i.e. escape all bytes > 128. This will still roundtrip
correctly in the locale's charset, which must be an ASCII superset. */
- return decode_ascii(arg, wstr, wlen, reason, errors);
+ return decode_ascii(arg, wstr, wlen, reason, errors);
#endif /* HAVE_MBRTOWC */
}
@@ -578,35 +578,35 @@ decode_error:
invalid byte sequence in the input string into *wlen. If reason is not NULL,
write the decoding error message into *reason.
- Return -3 if the error handler 'errors' is not supported.
-
+ Return -3 if the error handler 'errors' is not supported.
+
Use the Py_EncodeLocaleEx() function to encode the character string back to
a byte string. */
int
_Py_DecodeLocaleEx(const char* arg, wchar_t **wstr, size_t *wlen,
const char **reason,
- int current_locale, _Py_error_handler errors)
+ int current_locale, _Py_error_handler errors)
{
if (current_locale) {
-#ifdef _Py_FORCE_UTF8_LOCALE
+#ifdef _Py_FORCE_UTF8_LOCALE
return _Py_DecodeUTF8Ex(arg, strlen(arg), wstr, wlen, reason,
- errors);
+ errors);
#else
- return decode_current_locale(arg, wstr, wlen, reason, errors);
+ return decode_current_locale(arg, wstr, wlen, reason, errors);
#endif
}
-#ifdef _Py_FORCE_UTF8_FS_ENCODING
+#ifdef _Py_FORCE_UTF8_FS_ENCODING
return _Py_DecodeUTF8Ex(arg, strlen(arg), wstr, wlen, reason,
- errors);
+ errors);
#else
- int use_utf8 = (Py_UTF8Mode == 1);
-#ifdef MS_WINDOWS
- use_utf8 |= !Py_LegacyWindowsFSEncodingFlag;
-#endif
- if (use_utf8) {
+ int use_utf8 = (Py_UTF8Mode == 1);
+#ifdef MS_WINDOWS
+ use_utf8 |= !Py_LegacyWindowsFSEncodingFlag;
+#endif
+ if (use_utf8) {
return _Py_DecodeUTF8Ex(arg, strlen(arg), wstr, wlen, reason,
- errors);
+ errors);
}
#ifdef USE_FORCE_ASCII
@@ -616,12 +616,12 @@ _Py_DecodeLocaleEx(const char* arg, wchar_t **wstr, size_t *wlen,
if (force_ascii) {
/* force ASCII encoding to workaround mbstowcs() issue */
- return decode_ascii(arg, wstr, wlen, reason, errors);
+ return decode_ascii(arg, wstr, wlen, reason, errors);
}
#endif
- return decode_current_locale(arg, wstr, wlen, reason, errors);
-#endif /* !_Py_FORCE_UTF8_FS_ENCODING */
+ return decode_current_locale(arg, wstr, wlen, reason, errors);
+#endif /* !_Py_FORCE_UTF8_FS_ENCODING */
}
@@ -648,11 +648,11 @@ wchar_t*
Py_DecodeLocale(const char* arg, size_t *wlen)
{
wchar_t *wstr;
- int res = _Py_DecodeLocaleEx(arg, &wstr, wlen,
- NULL, 0,
- _Py_ERROR_SURROGATEESCAPE);
+ int res = _Py_DecodeLocaleEx(arg, &wstr, wlen,
+ NULL, 0,
+ _Py_ERROR_SURROGATEESCAPE);
if (res != 0) {
- assert(res != -3);
+ assert(res != -3);
if (wlen != NULL) {
*wlen = (size_t)res;
}
@@ -665,18 +665,18 @@ Py_DecodeLocale(const char* arg, size_t *wlen)
static int
encode_current_locale(const wchar_t *text, char **str,
size_t *error_pos, const char **reason,
- int raw_malloc, _Py_error_handler errors)
+ int raw_malloc, _Py_error_handler errors)
{
const size_t len = wcslen(text);
char *result = NULL, *bytes = NULL;
size_t i, size, converted;
wchar_t c, buf[2];
- int surrogateescape;
- if (get_surrogateescape(errors, &surrogateescape) < 0) {
- return -3;
- }
-
+ int surrogateescape;
+ if (get_surrogateescape(errors, &surrogateescape) < 0) {
+ return -3;
+ }
+
/* The function works in two steps:
1. compute the length of the output buffer in bytes (size)
2. outputs the bytes */
@@ -707,7 +707,7 @@ encode_current_locale(const wchar_t *text, char **str,
else {
converted = wcstombs(NULL, buf, 0);
}
- if (converted == DECODE_ERROR) {
+ if (converted == DECODE_ERROR) {
goto encode_error;
}
if (bytes != NULL) {
@@ -755,50 +755,50 @@ encode_error:
return -2;
}
-
-/* Encode a string to the locale encoding.
-
- Parameters:
-
- * raw_malloc: if non-zero, allocate memory using PyMem_RawMalloc() instead
- of PyMem_Malloc().
- * current_locale: if non-zero, use the current LC_CTYPE, otherwise use
- Python filesystem encoding.
- * errors: error handler like "strict" or "surrogateescape".
-
- Return value:
-
- 0: success, *str is set to a newly allocated decoded string.
- -1: memory allocation failure
- -2: encoding error, set *error_pos and *reason (if set).
- -3: the error handler 'errors' is not supported.
- */
+
+/* Encode a string to the locale encoding.
+
+ Parameters:
+
+ * raw_malloc: if non-zero, allocate memory using PyMem_RawMalloc() instead
+ of PyMem_Malloc().
+ * current_locale: if non-zero, use the current LC_CTYPE, otherwise use
+ Python filesystem encoding.
+ * errors: error handler like "strict" or "surrogateescape".
+
+ Return value:
+
+ 0: success, *str is set to a newly allocated decoded string.
+ -1: memory allocation failure
+ -2: encoding error, set *error_pos and *reason (if set).
+ -3: the error handler 'errors' is not supported.
+ */
static int
encode_locale_ex(const wchar_t *text, char **str, size_t *error_pos,
const char **reason,
- int raw_malloc, int current_locale, _Py_error_handler errors)
+ int raw_malloc, int current_locale, _Py_error_handler errors)
{
if (current_locale) {
-#ifdef _Py_FORCE_UTF8_LOCALE
+#ifdef _Py_FORCE_UTF8_LOCALE
return _Py_EncodeUTF8Ex(text, str, error_pos, reason,
- raw_malloc, errors);
+ raw_malloc, errors);
#else
return encode_current_locale(text, str, error_pos, reason,
- raw_malloc, errors);
+ raw_malloc, errors);
#endif
}
-#ifdef _Py_FORCE_UTF8_FS_ENCODING
+#ifdef _Py_FORCE_UTF8_FS_ENCODING
return _Py_EncodeUTF8Ex(text, str, error_pos, reason,
- raw_malloc, errors);
-#else
- int use_utf8 = (Py_UTF8Mode == 1);
-#ifdef MS_WINDOWS
- use_utf8 |= !Py_LegacyWindowsFSEncodingFlag;
-#endif
- if (use_utf8) {
+ raw_malloc, errors);
+#else
+ int use_utf8 = (Py_UTF8Mode == 1);
+#ifdef MS_WINDOWS
+ use_utf8 |= !Py_LegacyWindowsFSEncodingFlag;
+#endif
+ if (use_utf8) {
return _Py_EncodeUTF8Ex(text, str, error_pos, reason,
- raw_malloc, errors);
+ raw_malloc, errors);
}
#ifdef USE_FORCE_ASCII
@@ -808,13 +808,13 @@ encode_locale_ex(const wchar_t *text, char **str, size_t *error_pos,
if (force_ascii) {
return encode_ascii(text, str, error_pos, reason,
- raw_malloc, errors);
+ raw_malloc, errors);
}
#endif
return encode_current_locale(text, str, error_pos, reason,
- raw_malloc, errors);
-#endif /* _Py_FORCE_UTF8_FS_ENCODING */
+ raw_malloc, errors);
+#endif /* _Py_FORCE_UTF8_FS_ENCODING */
}
static char*
@@ -823,8 +823,8 @@ encode_locale(const wchar_t *text, size_t *error_pos,
{
char *str;
int res = encode_locale_ex(text, &str, error_pos, NULL,
- raw_malloc, current_locale,
- _Py_ERROR_SURROGATEESCAPE);
+ raw_malloc, current_locale,
+ _Py_ERROR_SURROGATEESCAPE);
if (res != -2 && error_pos) {
*error_pos = (size_t)-1;
}
@@ -865,109 +865,109 @@ _Py_EncodeLocaleRaw(const wchar_t *text, size_t *error_pos)
int
_Py_EncodeLocaleEx(const wchar_t *text, char **str,
size_t *error_pos, const char **reason,
- int current_locale, _Py_error_handler errors)
+ int current_locale, _Py_error_handler errors)
{
return encode_locale_ex(text, str, error_pos, reason, 1,
- current_locale, errors);
+ current_locale, errors);
}
-#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
-
-/* Check whether current locale uses Unicode as internal wchar_t form. */
-int
-_Py_LocaleUsesNonUnicodeWchar(void)
-{
- /* Oracle Solaris uses non-Unicode internal wchar_t form for
- non-Unicode locales and hence needs conversion to UTF first. */
- char* codeset = nl_langinfo(CODESET);
- if (!codeset) {
- return 0;
- }
- /* 646 refers to ISO/IEC 646 standard that corresponds to ASCII encoding */
- return (strcmp(codeset, "UTF-8") != 0 && strcmp(codeset, "646") != 0);
-}
-
-static wchar_t *
-_Py_ConvertWCharForm(const wchar_t *source, Py_ssize_t size,
- const char *tocode, const char *fromcode)
-{
- Py_BUILD_ASSERT(sizeof(wchar_t) == 4);
-
- /* Ensure we won't overflow the size. */
- if (size > (PY_SSIZE_T_MAX / (Py_ssize_t)sizeof(wchar_t))) {
- PyErr_NoMemory();
- return NULL;
- }
-
- /* the string doesn't have to be NULL terminated */
- wchar_t* target = PyMem_Malloc(size * sizeof(wchar_t));
- if (target == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
-
- iconv_t cd = iconv_open(tocode, fromcode);
- if (cd == (iconv_t)-1) {
- PyErr_Format(PyExc_ValueError, "iconv_open() failed");
- PyMem_Free(target);
- return NULL;
- }
-
- char *inbuf = (char *) source;
- char *outbuf = (char *) target;
- size_t inbytesleft = sizeof(wchar_t) * size;
- size_t outbytesleft = inbytesleft;
-
- size_t ret = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
- if (ret == DECODE_ERROR) {
- PyErr_Format(PyExc_ValueError, "iconv() failed");
- PyMem_Free(target);
- iconv_close(cd);
- return NULL;
- }
-
- iconv_close(cd);
- return target;
-}
-
-/* Convert a wide character string to the UCS-4 encoded string. This
- is necessary on systems where internal form of wchar_t are not Unicode
- code points (e.g. Oracle Solaris).
-
- Return a pointer to a newly allocated string, use PyMem_Free() to free
- the memory. Return NULL and raise exception on conversion or memory
- allocation error. */
-wchar_t *
-_Py_DecodeNonUnicodeWchar(const wchar_t *native, Py_ssize_t size)
-{
- return _Py_ConvertWCharForm(native, size, "UCS-4-INTERNAL", "wchar_t");
-}
-
-/* Convert a UCS-4 encoded string to native wide character string. This
- is necessary on systems where internal form of wchar_t are not Unicode
- code points (e.g. Oracle Solaris).
-
- The conversion is done in place. This can be done because both wchar_t
- and UCS-4 use 4-byte encoding, and one wchar_t symbol always correspond
- to a single UCS-4 symbol and vice versa. (This is true for Oracle Solaris,
- which is currently the only system using these functions; it doesn't have
- to be for other systems).
-
- Return 0 on success. Return -1 and raise exception on conversion
- or memory allocation error. */
-int
-_Py_EncodeNonUnicodeWchar_InPlace(wchar_t *unicode, Py_ssize_t size)
-{
- wchar_t* result = _Py_ConvertWCharForm(unicode, size, "wchar_t", "UCS-4-INTERNAL");
- if (!result) {
- return -1;
- }
- memcpy(unicode, result, size * sizeof(wchar_t));
- PyMem_Free(result);
- return 0;
-}
-#endif /* HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */
-
+#ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION
+
+/* Check whether current locale uses Unicode as internal wchar_t form. */
+int
+_Py_LocaleUsesNonUnicodeWchar(void)
+{
+ /* Oracle Solaris uses non-Unicode internal wchar_t form for
+ non-Unicode locales and hence needs conversion to UTF first. */
+ char* codeset = nl_langinfo(CODESET);
+ if (!codeset) {
+ return 0;
+ }
+ /* 646 refers to ISO/IEC 646 standard that corresponds to ASCII encoding */
+ return (strcmp(codeset, "UTF-8") != 0 && strcmp(codeset, "646") != 0);
+}
+
+static wchar_t *
+_Py_ConvertWCharForm(const wchar_t *source, Py_ssize_t size,
+ const char *tocode, const char *fromcode)
+{
+ Py_BUILD_ASSERT(sizeof(wchar_t) == 4);
+
+ /* Ensure we won't overflow the size. */
+ if (size > (PY_SSIZE_T_MAX / (Py_ssize_t)sizeof(wchar_t))) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+
+ /* the string doesn't have to be NULL terminated */
+ wchar_t* target = PyMem_Malloc(size * sizeof(wchar_t));
+ if (target == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+
+ iconv_t cd = iconv_open(tocode, fromcode);
+ if (cd == (iconv_t)-1) {
+ PyErr_Format(PyExc_ValueError, "iconv_open() failed");
+ PyMem_Free(target);
+ return NULL;
+ }
+
+ char *inbuf = (char *) source;
+ char *outbuf = (char *) target;
+ size_t inbytesleft = sizeof(wchar_t) * size;
+ size_t outbytesleft = inbytesleft;
+
+ size_t ret = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ if (ret == DECODE_ERROR) {
+ PyErr_Format(PyExc_ValueError, "iconv() failed");
+ PyMem_Free(target);
+ iconv_close(cd);
+ return NULL;
+ }
+
+ iconv_close(cd);
+ return target;
+}
+
+/* Convert a wide character string to the UCS-4 encoded string. This
+ is necessary on systems where internal form of wchar_t are not Unicode
+ code points (e.g. Oracle Solaris).
+
+ Return a pointer to a newly allocated string, use PyMem_Free() to free
+ the memory. Return NULL and raise exception on conversion or memory
+ allocation error. */
+wchar_t *
+_Py_DecodeNonUnicodeWchar(const wchar_t *native, Py_ssize_t size)
+{
+ return _Py_ConvertWCharForm(native, size, "UCS-4-INTERNAL", "wchar_t");
+}
+
+/* Convert a UCS-4 encoded string to native wide character string. This
+ is necessary on systems where internal form of wchar_t are not Unicode
+ code points (e.g. Oracle Solaris).
+
+ The conversion is done in place. This can be done because both wchar_t
+ and UCS-4 use 4-byte encoding, and one wchar_t symbol always correspond
+ to a single UCS-4 symbol and vice versa. (This is true for Oracle Solaris,
+ which is currently the only system using these functions; it doesn't have
+ to be for other systems).
+
+ Return 0 on success. Return -1 and raise exception on conversion
+ or memory allocation error. */
+int
+_Py_EncodeNonUnicodeWchar_InPlace(wchar_t *unicode, Py_ssize_t size)
+{
+ wchar_t* result = _Py_ConvertWCharForm(unicode, size, "wchar_t", "UCS-4-INTERNAL");
+ if (!result) {
+ return -1;
+ }
+ memcpy(unicode, result, size * sizeof(wchar_t));
+ PyMem_Free(result);
+ return 0;
+}
+#endif /* HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */
+
#ifdef MS_WINDOWS
static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */
@@ -1026,12 +1026,12 @@ _Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *info, ULONG reparse_tag,
FILE_TIME_to_time_t_nsec(&info->ftLastAccessTime, &result->st_atime, &result->st_atime_nsec);
result->st_nlink = info->nNumberOfLinks;
result->st_ino = (((uint64_t)info->nFileIndexHigh) << 32) + info->nFileIndexLow;
- /* bpo-37834: Only actual symlinks set the S_IFLNK flag. But lstat() will
- open other name surrogate reparse points without traversing them. To
- detect/handle these, check st_file_attributes and st_reparse_tag. */
- result->st_reparse_tag = reparse_tag;
- if (info->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT &&
- reparse_tag == IO_REPARSE_TAG_SYMLINK) {
+ /* bpo-37834: Only actual symlinks set the S_IFLNK flag. But lstat() will
+ open other name surrogate reparse points without traversing them. To
+ detect/handle these, check st_file_attributes and st_reparse_tag. */
+ result->st_reparse_tag = reparse_tag;
+ if (info->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT &&
+ reparse_tag == IO_REPARSE_TAG_SYMLINK) {
/* first clear the S_IFMT bits */
result->st_mode ^= (result->st_mode & S_IFMT);
/* now set the bits that make this a symlink */
@@ -1158,10 +1158,10 @@ _Py_stat(PyObject *path, struct stat *statbuf)
struct _stat wstatbuf;
const wchar_t *wpath;
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
wpath = _PyUnicode_AsUnicode(path);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (wpath == NULL)
return -2;
@@ -1285,18 +1285,18 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works)
flags = HANDLE_FLAG_INHERIT;
else
flags = 0;
-
- /* This check can be removed once support for Windows 7 ends. */
-#define CONSOLE_PSEUDOHANDLE(handle) (((ULONG_PTR)(handle) & 0x3) == 0x3 && \
- GetFileType(handle) == FILE_TYPE_CHAR)
-
- if (!CONSOLE_PSEUDOHANDLE(handle) &&
- !SetHandleInformation(handle, HANDLE_FLAG_INHERIT, flags)) {
+
+ /* This check can be removed once support for Windows 7 ends. */
+#define CONSOLE_PSEUDOHANDLE(handle) (((ULONG_PTR)(handle) & 0x3) == 0x3 && \
+ GetFileType(handle) == FILE_TYPE_CHAR)
+
+ if (!CONSOLE_PSEUDOHANDLE(handle) &&
+ !SetHandleInformation(handle, HANDLE_FLAG_INHERIT, flags)) {
if (raise)
PyErr_SetFromWindowsErr(0);
return -1;
}
-#undef CONSOLE_PSEUDOHANDLE
+#undef CONSOLE_PSEUDOHANDLE
return 0;
#else
@@ -1316,14 +1316,14 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works)
return 0;
}
-#ifdef O_PATH
- if (errno == EBADF) {
- // bpo-44849: On Linux and FreeBSD, ioctl(FIOCLEX) fails with EBADF
- // on O_PATH file descriptors. Fall through to the fcntl()
- // implementation.
- }
- else
-#endif
+#ifdef O_PATH
+ if (errno == EBADF) {
+ // bpo-44849: On Linux and FreeBSD, ioctl(FIOCLEX) fails with EBADF
+ // on O_PATH file descriptors. Fall through to the fcntl()
+ // implementation.
+ }
+ else
+#endif
if (errno != ENOTTY && errno != EACCES) {
if (raise)
PyErr_SetFromErrno(PyExc_OSError);
@@ -1433,31 +1433,31 @@ _Py_open_impl(const char *pathname, int flags, int gil_held)
#endif
if (gil_held) {
- PyObject *pathname_obj = PyUnicode_DecodeFSDefault(pathname);
- if (pathname_obj == NULL) {
- return -1;
- }
- if (PySys_Audit("open", "OOi", pathname_obj, Py_None, flags) < 0) {
- Py_DECREF(pathname_obj);
- return -1;
- }
-
+ PyObject *pathname_obj = PyUnicode_DecodeFSDefault(pathname);
+ if (pathname_obj == NULL) {
+ return -1;
+ }
+ if (PySys_Audit("open", "OOi", pathname_obj, Py_None, flags) < 0) {
+ Py_DECREF(pathname_obj);
+ return -1;
+ }
+
do {
Py_BEGIN_ALLOW_THREADS
fd = open(pathname, flags);
Py_END_ALLOW_THREADS
} while (fd < 0
&& errno == EINTR && !(async_err = PyErr_CheckSignals()));
- if (async_err) {
- Py_DECREF(pathname_obj);
+ if (async_err) {
+ Py_DECREF(pathname_obj);
return -1;
- }
+ }
if (fd < 0) {
- PyErr_SetFromErrnoWithFilenameObjects(PyExc_OSError, pathname_obj, NULL);
- Py_DECREF(pathname_obj);
+ PyErr_SetFromErrnoWithFilenameObjects(PyExc_OSError, pathname_obj, NULL);
+ Py_DECREF(pathname_obj);
return -1;
}
- Py_DECREF(pathname_obj);
+ Py_DECREF(pathname_obj);
}
else {
fd = open(pathname, flags);
@@ -1515,15 +1515,15 @@ FILE *
_Py_wfopen(const wchar_t *path, const wchar_t *mode)
{
FILE *f;
- if (PySys_Audit("open", "uui", path, mode, 0) < 0) {
- return NULL;
- }
+ if (PySys_Audit("open", "uui", path, mode, 0) < 0) {
+ return NULL;
+ }
#ifndef MS_WINDOWS
char *cpath;
char cmode[10];
size_t r;
r = wcstombs(cmode, mode, 10);
- if (r == DECODE_ERROR || r >= 10) {
+ if (r == DECODE_ERROR || r >= 10) {
errno = EINVAL;
return NULL;
}
@@ -1553,16 +1553,16 @@ _Py_wfopen(const wchar_t *path, const wchar_t *mode)
FILE*
_Py_fopen(const char *pathname, const char *mode)
{
- PyObject *pathname_obj = PyUnicode_DecodeFSDefault(pathname);
- if (pathname_obj == NULL) {
- return NULL;
- }
- if (PySys_Audit("open", "Osi", pathname_obj, mode, 0) < 0) {
- Py_DECREF(pathname_obj);
- return NULL;
- }
- Py_DECREF(pathname_obj);
-
+ PyObject *pathname_obj = PyUnicode_DecodeFSDefault(pathname);
+ if (pathname_obj == NULL) {
+ return NULL;
+ }
+ if (PySys_Audit("open", "Osi", pathname_obj, mode, 0) < 0) {
+ Py_DECREF(pathname_obj);
+ return NULL;
+ }
+ Py_DECREF(pathname_obj);
+
FILE *f = fopen(pathname, mode);
if (f == NULL)
return NULL;
@@ -1598,19 +1598,19 @@ _Py_fopen_obj(PyObject *path, const char *mode)
assert(PyGILState_Check());
- if (PySys_Audit("open", "Osi", path, mode, 0) < 0) {
- return NULL;
- }
+ if (PySys_Audit("open", "Osi", path, mode, 0) < 0) {
+ return NULL;
+ }
if (!PyUnicode_Check(path)) {
PyErr_Format(PyExc_TypeError,
"str file path expected under Windows, got %R",
Py_TYPE(path));
return NULL;
}
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
wpath = _PyUnicode_AsUnicode(path);
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
if (wpath == NULL)
return NULL;
@@ -1629,7 +1629,7 @@ _Py_COMP_DIAG_POP
&& errno == EINTR && !(async_err = PyErr_CheckSignals()));
#else
PyObject *bytes;
- const char *path_bytes;
+ const char *path_bytes;
assert(PyGILState_Check());
@@ -1637,11 +1637,11 @@ _Py_COMP_DIAG_POP
return NULL;
path_bytes = PyBytes_AS_STRING(bytes);
- if (PySys_Audit("open", "Osi", path, mode, 0) < 0) {
- Py_DECREF(bytes);
- return NULL;
- }
-
+ if (PySys_Audit("open", "Osi", path, mode, 0) < 0) {
+ Py_DECREF(bytes);
+ return NULL;
+ }
+
do {
Py_BEGIN_ALLOW_THREADS
f = fopen(path_bytes, mode);
@@ -1739,22 +1739,22 @@ _Py_write_impl(int fd, const void *buf, size_t count, int gil_held)
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
- if (count > 32767) {
+ if (count > 32767) {
/* Issue #11395: the Windows console returns an error (12: not
enough space error) on writing into stdout if stdout mode is
binary and the length is greater than 66,000 bytes (or less,
depending on heap usage). */
- if (gil_held) {
- Py_BEGIN_ALLOW_THREADS
- if (isatty(fd)) {
- count = 32767;
- }
- Py_END_ALLOW_THREADS
- } else {
- if (isatty(fd)) {
- count = 32767;
- }
- }
+ if (gil_held) {
+ Py_BEGIN_ALLOW_THREADS
+ if (isatty(fd)) {
+ count = 32767;
+ }
+ Py_END_ALLOW_THREADS
+ } else {
+ if (isatty(fd)) {
+ count = 32767;
+ }
+ }
}
#endif
if (count > _PY_WRITE_MAX) {
@@ -1847,18 +1847,18 @@ _Py_write_noraise(int fd, const void *buf, size_t count)
#ifdef HAVE_READLINK
/* Read value of symbolic link. Encode the path to the locale encoding, decode
- the result from the locale encoding.
+ the result from the locale encoding.
- Return -1 on encoding error, on readlink() error, if the internal buffer is
- too short, on decoding error, or if 'buf' is too short. */
+ Return -1 on encoding error, on readlink() error, if the internal buffer is
+ too short, on decoding error, or if 'buf' is too short. */
int
-_Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t buflen)
+_Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t buflen)
{
char *cpath;
char cbuf[MAXPATHLEN];
- size_t cbuf_len = Py_ARRAY_LENGTH(cbuf);
+ size_t cbuf_len = Py_ARRAY_LENGTH(cbuf);
wchar_t *wbuf;
- Py_ssize_t res;
+ Py_ssize_t res;
size_t r1;
cpath = _Py_EncodeLocaleRaw(path, NULL);
@@ -1866,12 +1866,12 @@ _Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t buflen)
errno = EINVAL;
return -1;
}
- res = readlink(cpath, cbuf, cbuf_len);
+ res = readlink(cpath, cbuf, cbuf_len);
PyMem_RawFree(cpath);
- if (res == -1) {
+ if (res == -1) {
return -1;
- }
- if ((size_t)res == cbuf_len) {
+ }
+ if ((size_t)res == cbuf_len) {
errno = EINVAL;
return -1;
}
@@ -1881,13 +1881,13 @@ _Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t buflen)
errno = EINVAL;
return -1;
}
- /* wbuf must have space to store the trailing NUL character */
- if (buflen <= r1) {
+ /* wbuf must have space to store the trailing NUL character */
+ if (buflen <= r1) {
PyMem_RawFree(wbuf);
errno = EINVAL;
return -1;
}
- wcsncpy(buf, wbuf, buflen);
+ wcsncpy(buf, wbuf, buflen);
PyMem_RawFree(wbuf);
return (int)r1;
}
@@ -1898,11 +1898,11 @@ _Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t buflen)
/* Return the canonicalized absolute pathname. Encode path to the locale
encoding, decode the result from the locale encoding.
- Return NULL on encoding error, realpath() error, decoding error
- or if 'resolved_path' is too short. */
+ Return NULL on encoding error, realpath() error, decoding error
+ or if 'resolved_path' is too short. */
wchar_t*
_Py_wrealpath(const wchar_t *path,
- wchar_t *resolved_path, size_t resolved_path_len)
+ wchar_t *resolved_path, size_t resolved_path_len)
{
char *cpath;
char cresolved_path[MAXPATHLEN];
@@ -1924,126 +1924,126 @@ _Py_wrealpath(const wchar_t *path,
errno = EINVAL;
return NULL;
}
- /* wresolved_path must have space to store the trailing NUL character */
- if (resolved_path_len <= r) {
+ /* wresolved_path must have space to store the trailing NUL character */
+ if (resolved_path_len <= r) {
PyMem_RawFree(wresolved_path);
errno = EINVAL;
return NULL;
}
- wcsncpy(resolved_path, wresolved_path, resolved_path_len);
+ wcsncpy(resolved_path, wresolved_path, resolved_path_len);
PyMem_RawFree(wresolved_path);
return resolved_path;
}
#endif
-
-#ifndef MS_WINDOWS
-int
-_Py_isabs(const wchar_t *path)
-{
- return (path[0] == SEP);
-}
-#endif
-
-
-/* Get an absolute path.
- On error (ex: fail to get the current directory), return -1.
- On memory allocation failure, set *abspath_p to NULL and return 0.
- On success, return a newly allocated to *abspath_p to and return 0.
- The string must be freed by PyMem_RawFree(). */
-int
-_Py_abspath(const wchar_t *path, wchar_t **abspath_p)
-{
-#ifdef MS_WINDOWS
- wchar_t woutbuf[MAX_PATH], *woutbufp = woutbuf;
- DWORD result;
-
- result = GetFullPathNameW(path,
- Py_ARRAY_LENGTH(woutbuf), woutbuf,
- NULL);
- if (!result) {
- return -1;
- }
-
- if (result > Py_ARRAY_LENGTH(woutbuf)) {
- if ((size_t)result <= (size_t)PY_SSIZE_T_MAX / sizeof(wchar_t)) {
- woutbufp = PyMem_RawMalloc((size_t)result * sizeof(wchar_t));
- }
- else {
- woutbufp = NULL;
- }
- if (!woutbufp) {
- *abspath_p = NULL;
- return 0;
- }
-
- result = GetFullPathNameW(path, result, woutbufp, NULL);
- if (!result) {
- PyMem_RawFree(woutbufp);
- return -1;
- }
- }
-
- if (woutbufp != woutbuf) {
- *abspath_p = woutbufp;
- return 0;
- }
-
- *abspath_p = _PyMem_RawWcsdup(woutbufp);
- return 0;
-#else
- if (_Py_isabs(path)) {
- *abspath_p = _PyMem_RawWcsdup(path);
- return 0;
- }
-
- wchar_t cwd[MAXPATHLEN + 1];
- cwd[Py_ARRAY_LENGTH(cwd) - 1] = 0;
- if (!_Py_wgetcwd(cwd, Py_ARRAY_LENGTH(cwd) - 1)) {
- /* unable to get the current directory */
- return -1;
- }
-
- size_t cwd_len = wcslen(cwd);
- size_t path_len = wcslen(path);
- size_t len = cwd_len + 1 + path_len + 1;
- if (len <= (size_t)PY_SSIZE_T_MAX / sizeof(wchar_t)) {
- *abspath_p = PyMem_RawMalloc(len * sizeof(wchar_t));
- }
- else {
- *abspath_p = NULL;
- }
- if (*abspath_p == NULL) {
- return 0;
- }
-
- wchar_t *abspath = *abspath_p;
- memcpy(abspath, cwd, cwd_len * sizeof(wchar_t));
- abspath += cwd_len;
-
- *abspath = (wchar_t)SEP;
- abspath++;
-
- memcpy(abspath, path, path_len * sizeof(wchar_t));
- abspath += path_len;
-
- *abspath = 0;
- return 0;
-#endif
-}
-
-
-/* Get the current directory. buflen is the buffer size in wide characters
+
+#ifndef MS_WINDOWS
+int
+_Py_isabs(const wchar_t *path)
+{
+ return (path[0] == SEP);
+}
+#endif
+
+
+/* Get an absolute path.
+ On error (ex: fail to get the current directory), return -1.
+ On memory allocation failure, set *abspath_p to NULL and return 0.
+ On success, return a newly allocated to *abspath_p to and return 0.
+ The string must be freed by PyMem_RawFree(). */
+int
+_Py_abspath(const wchar_t *path, wchar_t **abspath_p)
+{
+#ifdef MS_WINDOWS
+ wchar_t woutbuf[MAX_PATH], *woutbufp = woutbuf;
+ DWORD result;
+
+ result = GetFullPathNameW(path,
+ Py_ARRAY_LENGTH(woutbuf), woutbuf,
+ NULL);
+ if (!result) {
+ return -1;
+ }
+
+ if (result > Py_ARRAY_LENGTH(woutbuf)) {
+ if ((size_t)result <= (size_t)PY_SSIZE_T_MAX / sizeof(wchar_t)) {
+ woutbufp = PyMem_RawMalloc((size_t)result * sizeof(wchar_t));
+ }
+ else {
+ woutbufp = NULL;
+ }
+ if (!woutbufp) {
+ *abspath_p = NULL;
+ return 0;
+ }
+
+ result = GetFullPathNameW(path, result, woutbufp, NULL);
+ if (!result) {
+ PyMem_RawFree(woutbufp);
+ return -1;
+ }
+ }
+
+ if (woutbufp != woutbuf) {
+ *abspath_p = woutbufp;
+ return 0;
+ }
+
+ *abspath_p = _PyMem_RawWcsdup(woutbufp);
+ return 0;
+#else
+ if (_Py_isabs(path)) {
+ *abspath_p = _PyMem_RawWcsdup(path);
+ return 0;
+ }
+
+ wchar_t cwd[MAXPATHLEN + 1];
+ cwd[Py_ARRAY_LENGTH(cwd) - 1] = 0;
+ if (!_Py_wgetcwd(cwd, Py_ARRAY_LENGTH(cwd) - 1)) {
+ /* unable to get the current directory */
+ return -1;
+ }
+
+ size_t cwd_len = wcslen(cwd);
+ size_t path_len = wcslen(path);
+ size_t len = cwd_len + 1 + path_len + 1;
+ if (len <= (size_t)PY_SSIZE_T_MAX / sizeof(wchar_t)) {
+ *abspath_p = PyMem_RawMalloc(len * sizeof(wchar_t));
+ }
+ else {
+ *abspath_p = NULL;
+ }
+ if (*abspath_p == NULL) {
+ return 0;
+ }
+
+ wchar_t *abspath = *abspath_p;
+ memcpy(abspath, cwd, cwd_len * sizeof(wchar_t));
+ abspath += cwd_len;
+
+ *abspath = (wchar_t)SEP;
+ abspath++;
+
+ memcpy(abspath, path, path_len * sizeof(wchar_t));
+ abspath += path_len;
+
+ *abspath = 0;
+ return 0;
+#endif
+}
+
+
+/* Get the current directory. buflen is the buffer size in wide characters
including the null character. Decode the path from the locale encoding.
- Return NULL on getcwd() error, on decoding error, or if 'buf' is
- too short. */
+ Return NULL on getcwd() error, on decoding error, or if 'buf' is
+ too short. */
wchar_t*
-_Py_wgetcwd(wchar_t *buf, size_t buflen)
+_Py_wgetcwd(wchar_t *buf, size_t buflen)
{
#ifdef MS_WINDOWS
- int ibuflen = (int)Py_MIN(buflen, INT_MAX);
- return _wgetcwd(buf, ibuflen);
+ int ibuflen = (int)Py_MIN(buflen, INT_MAX);
+ return _wgetcwd(buf, ibuflen);
#else
char fname[MAXPATHLEN];
wchar_t *wname;
@@ -2054,12 +2054,12 @@ _Py_wgetcwd(wchar_t *buf, size_t buflen)
wname = Py_DecodeLocale(fname, &len);
if (wname == NULL)
return NULL;
- /* wname must have space to store the trailing NUL character */
- if (buflen <= len) {
+ /* wname must have space to store the trailing NUL character */
+ if (buflen <= len) {
PyMem_RawFree(wname);
return NULL;
}
- wcsncpy(buf, wname, buflen);
+ wcsncpy(buf, wname, buflen);
PyMem_RawFree(wname);
return buf;
#endif
@@ -2098,11 +2098,11 @@ _Py_dup(int fd)
return -1;
}
- if (_Py_set_inheritable(fd, 0, NULL) < 0) {
- _Py_BEGIN_SUPPRESS_IPH
- close(fd);
- _Py_END_SUPPRESS_IPH
- return -1;
+ if (_Py_set_inheritable(fd, 0, NULL) < 0) {
+ _Py_BEGIN_SUPPRESS_IPH
+ close(fd);
+ _Py_END_SUPPRESS_IPH
+ return -1;
}
#elif defined(HAVE_FCNTL_H) && defined(F_DUPFD_CLOEXEC)
Py_BEGIN_ALLOW_THREADS
@@ -2198,18 +2198,18 @@ error:
int
-_Py_GetLocaleconvNumeric(struct lconv *lc,
- PyObject **decimal_point, PyObject **thousands_sep)
+_Py_GetLocaleconvNumeric(struct lconv *lc,
+ PyObject **decimal_point, PyObject **thousands_sep)
{
- assert(decimal_point != NULL);
- assert(thousands_sep != NULL);
+ assert(decimal_point != NULL);
+ assert(thousands_sep != NULL);
-#ifndef MS_WINDOWS
+#ifndef MS_WINDOWS
int change_locale = 0;
- if ((strlen(lc->decimal_point) > 1 || ((unsigned char)lc->decimal_point[0]) > 127)) {
+ if ((strlen(lc->decimal_point) > 1 || ((unsigned char)lc->decimal_point[0]) > 127)) {
change_locale = 1;
}
- if ((strlen(lc->thousands_sep) > 1 || ((unsigned char)lc->thousands_sep[0]) > 127)) {
+ if ((strlen(lc->thousands_sep) > 1 || ((unsigned char)lc->thousands_sep[0]) > 127)) {
change_locale = 1;
}
@@ -2218,8 +2218,8 @@ _Py_GetLocaleconvNumeric(struct lconv *lc,
if (change_locale) {
oldloc = setlocale(LC_CTYPE, NULL);
if (!oldloc) {
- PyErr_SetString(PyExc_RuntimeWarning,
- "failed to get LC_CTYPE locale");
+ PyErr_SetString(PyExc_RuntimeWarning,
+ "failed to get LC_CTYPE locale");
return -1;
}
@@ -2243,34 +2243,34 @@ _Py_GetLocaleconvNumeric(struct lconv *lc,
}
}
-#define GET_LOCALE_STRING(ATTR) PyUnicode_DecodeLocale(lc->ATTR, NULL)
-#else /* MS_WINDOWS */
-/* Use _W_* fields of Windows strcut lconv */
-#define GET_LOCALE_STRING(ATTR) PyUnicode_FromWideChar(lc->_W_ ## ATTR, -1)
-#endif /* MS_WINDOWS */
-
- int res = -1;
-
- *decimal_point = GET_LOCALE_STRING(decimal_point);
- if (*decimal_point == NULL) {
- goto done;
+#define GET_LOCALE_STRING(ATTR) PyUnicode_DecodeLocale(lc->ATTR, NULL)
+#else /* MS_WINDOWS */
+/* Use _W_* fields of Windows strcut lconv */
+#define GET_LOCALE_STRING(ATTR) PyUnicode_FromWideChar(lc->_W_ ## ATTR, -1)
+#endif /* MS_WINDOWS */
+
+ int res = -1;
+
+ *decimal_point = GET_LOCALE_STRING(decimal_point);
+ if (*decimal_point == NULL) {
+ goto done;
}
- *thousands_sep = GET_LOCALE_STRING(thousands_sep);
- if (*thousands_sep == NULL) {
- goto done;
+ *thousands_sep = GET_LOCALE_STRING(thousands_sep);
+ if (*thousands_sep == NULL) {
+ goto done;
}
res = 0;
-done:
-#ifndef MS_WINDOWS
+done:
+#ifndef MS_WINDOWS
if (loc != NULL) {
setlocale(LC_CTYPE, oldloc);
}
PyMem_Free(oldloc);
-#endif
+#endif
return res;
-
-#undef GET_LOCALE_STRING
+
+#undef GET_LOCALE_STRING
}
diff --git a/contrib/tools/python3/src/Python/formatter_unicode.c b/contrib/tools/python3/src/Python/formatter_unicode.c
index 4dbd78aa5c..e7ec4dd5cb 100644
--- a/contrib/tools/python3/src/Python/formatter_unicode.c
+++ b/contrib/tools/python3/src/Python/formatter_unicode.c
@@ -3,7 +3,7 @@
of int.__float__, etc., that take and return unicode objects */
#include "Python.h"
-#include "pycore_fileutils.h"
+#include "pycore_fileutils.h"
#include <locale.h>
/* Raises an exception about an unknown presentation type for this
@@ -62,7 +62,7 @@ get_integer(PyObject *str, Py_ssize_t *ppos, Py_ssize_t end,
Py_ssize_t accumulator, digitval, pos = *ppos;
int numdigits;
int kind = PyUnicode_KIND(str);
- const void *data = PyUnicode_DATA(str);
+ const void *data = PyUnicode_DATA(str);
accumulator = numdigits = 0;
for (; pos < end; pos++, numdigits++) {
@@ -170,7 +170,7 @@ parse_internal_render_format_spec(PyObject *format_spec,
{
Py_ssize_t pos = start;
int kind = PyUnicode_KIND(format_spec);
- const void *data = PyUnicode_DATA(format_spec);
+ const void *data = PyUnicode_DATA(format_spec);
/* end-pos is used throughout this code to specify the length of
the input string */
#define READ_spec(index) PyUnicode_READ(kind, data, index)
@@ -252,10 +252,10 @@ parse_internal_render_format_spec(PyObject *format_spec,
++pos;
}
if (end-pos && READ_spec(pos) == ',') {
- if (format->thousands_separators == LT_UNDERSCORE_LOCALE) {
- invalid_comma_and_underscore();
- return 0;
- }
+ if (format->thousands_separators == LT_UNDERSCORE_LOCALE) {
+ invalid_comma_and_underscore();
+ return 0;
+ }
}
/* Parse field precision */
@@ -402,7 +402,7 @@ typedef struct {
char *grouping_buffer;
} LocaleInfo;
-#define LocaleInfo_STATIC_INIT {0, 0, 0, 0}
+#define LocaleInfo_STATIC_INIT {0, 0, 0, 0}
/* describes the layout for an integer, see the comment in
calc_number_widths() for details */
@@ -445,7 +445,7 @@ parse_number(PyObject *s, Py_ssize_t pos, Py_ssize_t end,
{
Py_ssize_t remainder;
int kind = PyUnicode_KIND(s);
- const void *data = PyUnicode_DATA(s);
+ const void *data = PyUnicode_DATA(s);
while (pos<end && Py_ISDIGIT(PyUnicode_READ(kind, data, pos)))
++pos;
@@ -468,7 +468,7 @@ parse_number(PyObject *s, Py_ssize_t pos, Py_ssize_t end,
Return -1 on error. */
static Py_ssize_t
calc_number_widths(NumberFieldWidths *spec, Py_ssize_t n_prefix,
- Py_UCS4 sign_char, Py_ssize_t n_start,
+ Py_UCS4 sign_char, Py_ssize_t n_start,
Py_ssize_t n_end, Py_ssize_t n_remainder,
int has_decimal, const LocaleInfo *locale,
const InternalFormatSpec *format, Py_UCS4 *maxchar)
@@ -576,7 +576,7 @@ calc_number_widths(NumberFieldWidths *spec, Py_ssize_t n_prefix,
spec->n_lpadding = n_padding;
break;
default:
- /* Shouldn't get here */
+ /* Shouldn't get here */
Py_UNREACHABLE();
}
}
@@ -592,12 +592,12 @@ calc_number_widths(NumberFieldWidths *spec, Py_ssize_t n_prefix,
spec->n_remainder + spec->n_rpadding;
}
-/* Fill in the digit parts of a number's string representation,
+/* Fill in the digit parts of a number's string representation,
as determined in calc_number_widths().
Return -1 on error, or 0 on success. */
static int
fill_number(_PyUnicodeWriter *writer, const NumberFieldWidths *spec,
- PyObject *digits, Py_ssize_t d_start,
+ PyObject *digits, Py_ssize_t d_start,
PyObject *prefix, Py_ssize_t p_start,
Py_UCS4 fill_char,
LocaleInfo *locale, int toupper)
@@ -701,17 +701,17 @@ get_locale_info(enum LocaleType type, LocaleInfo *locale_info)
{
switch (type) {
case LT_CURRENT_LOCALE: {
- struct lconv *lc = localeconv();
- if (_Py_GetLocaleconvNumeric(lc,
- &locale_info->decimal_point,
- &locale_info->thousands_sep) < 0) {
+ struct lconv *lc = localeconv();
+ if (_Py_GetLocaleconvNumeric(lc,
+ &locale_info->decimal_point,
+ &locale_info->thousands_sep) < 0) {
return -1;
}
/* localeconv() grouping can become a dangling pointer or point
to a different string if another thread calls localeconv() during
the string formatting. Copy the string to avoid this risk. */
- locale_info->grouping_buffer = _PyMem_Strdup(lc->grouping);
+ locale_info->grouping_buffer = _PyMem_Strdup(lc->grouping);
if (locale_info->grouping_buffer == NULL) {
PyErr_NoMemory();
return -1;
@@ -773,14 +773,14 @@ format_string_internal(PyObject *value, const InternalFormatSpec *format,
/* sign is not allowed on strings */
if (format->sign != '\0') {
- if (format->sign == ' ') {
- PyErr_SetString(PyExc_ValueError,
- "Space not allowed in string format specifier");
- }
- else {
- PyErr_SetString(PyExc_ValueError,
- "Sign not allowed in string format specifier");
- }
+ if (format->sign == ' ') {
+ PyErr_SetString(PyExc_ValueError,
+ "Space not allowed in string format specifier");
+ }
+ else {
+ PyErr_SetString(PyExc_ValueError,
+ "Sign not allowed in string format specifier");
+ }
goto done;
}
@@ -869,7 +869,7 @@ format_long_internal(PyObject *value, const InternalFormatSpec *format,
/* Locale settings, either from the actual locale or
from a hard-code pseudo-locale */
- LocaleInfo locale = LocaleInfo_STATIC_INIT;
+ LocaleInfo locale = LocaleInfo_STATIC_INIT;
/* no precision allowed on integers */
if (format->precision != -1) {
@@ -991,7 +991,7 @@ format_long_internal(PyObject *value, const InternalFormatSpec *format,
goto done;
/* Calculate how much memory we'll need. */
- n_total = calc_number_widths(&spec, n_prefix, sign_char, inumeric_chars,
+ n_total = calc_number_widths(&spec, n_prefix, sign_char, inumeric_chars,
inumeric_chars + n_digits, n_remainder, 0,
&locale, format, &maxchar);
if (n_total == -1) {
@@ -1004,7 +1004,7 @@ format_long_internal(PyObject *value, const InternalFormatSpec *format,
/* Populate the memory. */
result = fill_number(writer, &spec,
- tmp, inumeric_chars,
+ tmp, inumeric_chars,
tmp, prefix, format->fill_char,
&locale, format->type == 'X');
@@ -1044,7 +1044,7 @@ format_float_internal(PyObject *value,
/* Locale settings, either from the actual locale or
from a hard-code pseudo-locale */
- LocaleInfo locale = LocaleInfo_STATIC_INIT;
+ LocaleInfo locale = LocaleInfo_STATIC_INIT;
if (format->precision > INT_MAX) {
PyErr_SetString(PyExc_ValueError, "precision too big");
@@ -1139,7 +1139,7 @@ format_float_internal(PyObject *value,
goto done;
/* Calculate how much memory we'll need. */
- n_total = calc_number_widths(&spec, 0, sign_char, index,
+ n_total = calc_number_widths(&spec, 0, sign_char, index,
index + n_digits, n_remainder, has_decimal,
&locale, format, &maxchar);
if (n_total == -1) {
@@ -1152,7 +1152,7 @@ format_float_internal(PyObject *value,
/* Populate the memory. */
result = fill_number(writer, &spec,
- unicode_tmp, index,
+ unicode_tmp, index,
NULL, 0, format->fill_char,
&locale, 0);
@@ -1210,7 +1210,7 @@ format_complex_internal(PyObject *value,
/* Locale settings, either from the actual locale or
from a hard-code pseudo-locale */
- LocaleInfo locale = LocaleInfo_STATIC_INIT;
+ LocaleInfo locale = LocaleInfo_STATIC_INIT;
if (format->precision > INT_MAX) {
PyErr_SetString(PyExc_ValueError, "precision too big");
@@ -1324,7 +1324,7 @@ format_complex_internal(PyObject *value,
tmp_format.width = -1;
/* Calculate how much memory we'll need. */
- n_re_total = calc_number_widths(&re_spec, 0, re_sign_char,
+ n_re_total = calc_number_widths(&re_spec, 0, re_sign_char,
i_re, i_re + n_re_digits, n_re_remainder,
re_has_decimal, &locale, &tmp_format,
&maxchar);
@@ -1337,7 +1337,7 @@ format_complex_internal(PyObject *value,
* requested by the original format. */
if (!skip_re)
tmp_format.sign = '+';
- n_im_total = calc_number_widths(&im_spec, 0, im_sign_char,
+ n_im_total = calc_number_widths(&im_spec, 0, im_sign_char,
i_im, i_im + n_im_digits, n_im_remainder,
im_has_decimal, &locale, &tmp_format,
&maxchar);
@@ -1374,7 +1374,7 @@ format_complex_internal(PyObject *value,
if (!skip_re) {
result = fill_number(writer, &re_spec,
- re_unicode_tmp, i_re,
+ re_unicode_tmp, i_re,
NULL, 0,
0,
&locale, 0);
@@ -1382,7 +1382,7 @@ format_complex_internal(PyObject *value,
goto done;
}
result = fill_number(writer, &im_spec,
- im_unicode_tmp, i_im,
+ im_unicode_tmp, i_im,
NULL, 0,
0,
&locale, 0);
@@ -1455,7 +1455,7 @@ _PyUnicode_FormatAdvancedWriter(_PyUnicodeWriter *writer,
return format_string_internal(obj, &format, writer);
default:
/* unknown */
- unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
+ unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
return -1;
}
}
@@ -1466,7 +1466,7 @@ _PyLong_FormatAdvancedWriter(_PyUnicodeWriter *writer,
PyObject *format_spec,
Py_ssize_t start, Py_ssize_t end)
{
- PyObject *tmp = NULL;
+ PyObject *tmp = NULL;
InternalFormatSpec format;
int result = -1;
@@ -1513,7 +1513,7 @@ _PyLong_FormatAdvancedWriter(_PyUnicodeWriter *writer,
default:
/* unknown */
- unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
+ unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
goto done;
}
@@ -1556,7 +1556,7 @@ _PyFloat_FormatAdvancedWriter(_PyUnicodeWriter *writer,
default:
/* unknown */
- unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
+ unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
return -1;
}
}
@@ -1594,7 +1594,7 @@ _PyComplex_FormatAdvancedWriter(_PyUnicodeWriter *writer,
default:
/* unknown */
- unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
+ unknown_presentation_type(format.type, Py_TYPE(obj)->tp_name);
return -1;
}
}
diff --git a/contrib/tools/python3/src/Python/frozen.c b/contrib/tools/python3/src/Python/frozen.c
index 91572fdfac..228a11019c 100644
--- a/contrib/tools/python3/src/Python/frozen.c
+++ b/contrib/tools/python3/src/Python/frozen.c
@@ -4,7 +4,7 @@
#include "Python.h"
#include "importlib.h"
#include "importlib_external.h"
-#include "importlib_zipimport.h"
+#include "importlib_zipimport.h"
/* In order to test the support for frozen modules, by default we
define a single frozen module, __hello__. Loading it will print
@@ -15,27 +15,27 @@
the appropriate bytes from M___main__.c. */
static unsigned char M___hello__[] = {
- 227,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,16,0,0,0,100,0,
- 90,0,101,1,100,1,131,1,1,0,100,2,83,0,41,3,
- 84,122,12,72,101,108,108,111,32,119,111,114,108,100,33,78,
- 41,2,218,11,105,110,105,116,105,97,108,105,122,101,100,218,
- 5,112,114,105,110,116,169,0,114,3,0,0,0,114,3,0,
- 0,0,250,20,84,111,111,108,115,47,102,114,101,101,122,101,
- 47,102,108,97,103,46,112,121,218,8,60,109,111,100,117,108,
- 101,62,1,0,0,0,115,2,0,0,0,4,1,
+ 227,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,16,0,0,0,100,0,
+ 90,0,101,1,100,1,131,1,1,0,100,2,83,0,41,3,
+ 84,122,12,72,101,108,108,111,32,119,111,114,108,100,33,78,
+ 41,2,218,11,105,110,105,116,105,97,108,105,122,101,100,218,
+ 5,112,114,105,110,116,169,0,114,3,0,0,0,114,3,0,
+ 0,0,250,20,84,111,111,108,115,47,102,114,101,101,122,101,
+ 47,102,108,97,103,46,112,121,218,8,60,109,111,100,117,108,
+ 101,62,1,0,0,0,115,2,0,0,0,4,1,
};
#define SIZE (int)sizeof(M___hello__)
static const struct _frozen _PyImport_FrozenModules[] = {
/* importlib */
- {"_frozen_importlib", _Py_M__importlib_bootstrap,
- (int)sizeof(_Py_M__importlib_bootstrap)},
- {"_frozen_importlib_external", _Py_M__importlib_bootstrap_external,
- (int)sizeof(_Py_M__importlib_bootstrap_external)},
- {"zipimport", _Py_M__zipimport,
- (int)sizeof(_Py_M__zipimport)},
+ {"_frozen_importlib", _Py_M__importlib_bootstrap,
+ (int)sizeof(_Py_M__importlib_bootstrap)},
+ {"_frozen_importlib_external", _Py_M__importlib_bootstrap_external,
+ (int)sizeof(_Py_M__importlib_bootstrap_external)},
+ {"zipimport", _Py_M__zipimport,
+ (int)sizeof(_Py_M__zipimport)},
/* Test module */
{"__hello__", M___hello__, SIZE},
/* Test package (negative size indicates package-ness) */
diff --git a/contrib/tools/python3/src/Python/frozenmain.c b/contrib/tools/python3/src/Python/frozenmain.c
index 738f72a9cb..dd04d609d2 100644
--- a/contrib/tools/python3/src/Python/frozenmain.c
+++ b/contrib/tools/python3/src/Python/frozenmain.c
@@ -2,7 +2,7 @@
/* Python interpreter main program for frozen scripts */
#include "Python.h"
-#include "pycore_runtime.h" // _PyRuntime_Initialize()
+#include "pycore_runtime.h" // _PyRuntime_Initialize()
#include <locale.h>
#ifdef MS_WINDOWS
@@ -16,9 +16,9 @@ extern int PyInitFrozenExtensions(void);
int
Py_FrozenMain(int argc, char **argv)
{
- PyStatus status = _PyRuntime_Initialize();
- if (PyStatus_Exception(status)) {
- Py_ExitStatusException(status);
+ PyStatus status = _PyRuntime_Initialize();
+ if (PyStatus_Exception(status)) {
+ Py_ExitStatusException(status);
}
const char *p;
@@ -39,9 +39,9 @@ Py_FrozenMain(int argc, char **argv)
}
}
- PyConfig config;
- PyConfig_InitPythonConfig(&config);
- config.pathconfig_warnings = 0; /* Suppress errors from getpath.c */
+ PyConfig config;
+ PyConfig_InitPythonConfig(&config);
+ config.pathconfig_warnings = 0; /* Suppress errors from getpath.c */
if ((p = Py_GETENV("PYTHONINSPECT")) && *p != '\0')
inspect = 1;
@@ -80,13 +80,13 @@ Py_FrozenMain(int argc, char **argv)
#endif /* MS_WINDOWS */
if (argc >= 1)
Py_SetProgramName(argv_copy[0]);
-
- status = Py_InitializeFromConfig(&config);
- PyConfig_Clear(&config);
- if (PyStatus_Exception(status)) {
- Py_ExitStatusException(status);
- }
-
+
+ status = Py_InitializeFromConfig(&config);
+ PyConfig_Clear(&config);
+ if (PyStatus_Exception(status)) {
+ Py_ExitStatusException(status);
+ }
+
#ifdef MS_WINDOWS
PyWinFreeze_ExeInit();
#endif
@@ -99,7 +99,7 @@ Py_FrozenMain(int argc, char **argv)
n = PyImport_ImportFrozenModule("__main__");
if (n == 0)
- Py_FatalError("the __main__ module is not frozen");
+ Py_FatalError("the __main__ module is not frozen");
if (n < 0) {
PyErr_Print();
sts = 1;
diff --git a/contrib/tools/python3/src/Python/future.c b/contrib/tools/python3/src/Python/future.c
index 9b4ef0c4d1..1663a38a6f 100644
--- a/contrib/tools/python3/src/Python/future.c
+++ b/contrib/tools/python3/src/Python/future.c
@@ -5,7 +5,7 @@
#include "graminit.h"
#include "code.h"
#include "symtable.h"
-#include "ast.h"
+#include "ast.h"
#define UNDEFINED_FUTURE_FEATURE "future feature %.100s is not defined"
#define ERR_LATE_FUTURE \
@@ -48,12 +48,12 @@ future_check_features(PyFutureFeatures *ff, stmt_ty s, PyObject *filename)
} else if (strcmp(feature, "braces") == 0) {
PyErr_SetString(PyExc_SyntaxError,
"not a chance");
- PyErr_SyntaxLocationObject(filename, s->lineno, s->col_offset + 1);
+ PyErr_SyntaxLocationObject(filename, s->lineno, s->col_offset + 1);
return 0;
} else {
PyErr_Format(PyExc_SyntaxError,
UNDEFINED_FUTURE_FEATURE, feature);
- PyErr_SyntaxLocationObject(filename, s->lineno, s->col_offset + 1);
+ PyErr_SyntaxLocationObject(filename, s->lineno, s->col_offset + 1);
return 0;
}
}
@@ -80,7 +80,7 @@ future_parse(PyFutureFeatures *ff, mod_ty mod, PyObject *filename)
*/
i = 0;
- if (_PyAST_GetDocString(mod->v.Module.body) != NULL)
+ if (_PyAST_GetDocString(mod->v.Module.body) != NULL)
i++;
for (; i < asdl_seq_LEN(mod->v.Module.body); i++) {
diff --git a/contrib/tools/python3/src/Python/getargs.c b/contrib/tools/python3/src/Python/getargs.c
index 2362fbbc56..d4a531a5ef 100644
--- a/contrib/tools/python3/src/Python/getargs.c
+++ b/contrib/tools/python3/src/Python/getargs.c
@@ -2,7 +2,7 @@
/* New getargs implementation */
#include "Python.h"
-#include "pycore_tupleobject.h"
+#include "pycore_tupleobject.h"
#include <ctype.h>
#include <float.h>
@@ -106,7 +106,7 @@ PyArg_Parse(PyObject *args, const char *format, ...)
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_Parse_SizeT(PyObject *args, const char *format, ...)
{
int retval;
@@ -131,7 +131,7 @@ PyArg_ParseTuple(PyObject *args, const char *format, ...)
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_ParseTuple_SizeT(PyObject *args, const char *format, ...)
{
int retval;
@@ -156,7 +156,7 @@ _PyArg_ParseStack(PyObject *const *args, Py_ssize_t nargs, const char *format, .
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_ParseStack_SizeT(PyObject *const *args, Py_ssize_t nargs, const char *format, ...)
{
int retval;
@@ -182,7 +182,7 @@ PyArg_VaParse(PyObject *args, const char *format, va_list va)
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_VaParse_SizeT(PyObject *args, const char *format, va_list va)
{
va_list lva;
@@ -312,7 +312,7 @@ vgetargs1_impl(PyObject *compat_args, PyObject *const *stack, Py_ssize_t nargs,
break;
default:
if (level == 0) {
- if (Py_ISALPHA(c))
+ if (Py_ISALPHA(c))
if (c != 'e') /* skip encoded */
max++;
}
@@ -372,14 +372,14 @@ vgetargs1_impl(PyObject *compat_args, PyObject *const *stack, Py_ssize_t nargs,
if (nargs < min || max < nargs) {
if (message == NULL)
PyErr_Format(PyExc_TypeError,
- "%.150s%s takes %s %d argument%s (%zd given)",
+ "%.150s%s takes %s %d argument%s (%zd given)",
fname==NULL ? "function" : fname,
fname==NULL ? "" : "()",
min==max ? "exactly"
: nargs < min ? "at least" : "at most",
nargs < min ? min : max,
(nargs < min ? min : max) == 1 ? "" : "s",
- nargs);
+ nargs);
else
PyErr_SetString(PyExc_TypeError, message);
return cleanreturn(0, &freelist);
@@ -397,7 +397,7 @@ vgetargs1_impl(PyObject *compat_args, PyObject *const *stack, Py_ssize_t nargs,
}
}
- if (*format != '\0' && !Py_ISALPHA(*format) &&
+ if (*format != '\0' && !Py_ISALPHA(*format) &&
*format != '(' &&
*format != '|' && *format != ':' && *format != ';') {
PyErr_Format(PyExc_SystemError,
@@ -423,7 +423,7 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
return 0;
}
- stack = _PyTuple_ITEMS(args);
+ stack = _PyTuple_ITEMS(args);
nargs = PyTuple_GET_SIZE(args);
}
else {
@@ -521,7 +521,7 @@ converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
}
else if (c == ':' || c == ';' || c == '\0')
break;
- else if (level == 0 && Py_ISALPHA(c))
+ else if (level == 0 && Py_ISALPHA(c))
n++;
}
@@ -531,7 +531,7 @@ converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
toplevel ? "expected %d arguments, not %.50s" :
"must be %d-item sequence, not %.50s",
n,
- arg == Py_None ? "None" : Py_TYPE(arg)->tp_name);
+ arg == Py_None ? "None" : Py_TYPE(arg)->tp_name);
return msgbuf;
}
@@ -540,10 +540,10 @@ converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
levels[0] = 0;
if (toplevel) {
PyOS_snprintf(msgbuf, bufsize,
- "expected %d argument%s, not %" PY_FORMAT_SIZE_T "d",
- n,
- n == 1 ? "" : "s",
- len);
+ "expected %d argument%s, not %" PY_FORMAT_SIZE_T "d",
+ n,
+ n == 1 ? "" : "s",
+ len);
}
else {
PyOS_snprintf(msgbuf, bufsize,
@@ -610,20 +610,20 @@ convertitem(PyObject *arg, const char **p_format, va_list *p_va, int flags,
-/* Format an error message generated by convertsimple().
- displayname must be UTF-8 encoded.
-*/
+/* Format an error message generated by convertsimple().
+ displayname must be UTF-8 encoded.
+*/
+
+void
+_PyArg_BadArgument(const char *fname, const char *displayname,
+ const char *expected, PyObject *arg)
+{
+ PyErr_Format(PyExc_TypeError,
+ "%.200s() %.200s must be %.50s, not %.50s",
+ fname, displayname, expected,
+ arg == Py_None ? "None" : Py_TYPE(arg)->tp_name);
+}
-void
-_PyArg_BadArgument(const char *fname, const char *displayname,
- const char *expected, PyObject *arg)
-{
- PyErr_Format(PyExc_TypeError,
- "%.200s() %.200s must be %.50s, not %.50s",
- fname, displayname, expected,
- arg == Py_None ? "None" : Py_TYPE(arg)->tp_name);
-}
-
static const char *
converterr(const char *expected, PyObject *arg, char *msgbuf, size_t bufsize)
{
@@ -636,7 +636,7 @@ converterr(const char *expected, PyObject *arg, char *msgbuf, size_t bufsize)
else {
PyOS_snprintf(msgbuf, bufsize,
"must be %.50s, not %.50s", expected,
- arg == Py_None ? "None" : Py_TYPE(arg)->tp_name);
+ arg == Py_None ? "None" : Py_TYPE(arg)->tp_name);
}
return msgbuf;
}
@@ -644,9 +644,9 @@ converterr(const char *expected, PyObject *arg, char *msgbuf, size_t bufsize)
#define CONV_UNICODE "(unicode conversion error)"
/* Explicitly check for float arguments when integers are expected.
- Return 1 for error, 0 if ok.
- XXX Should be removed after the end of the deprecation period in
- _PyLong_FromNbIndexOrNbInt. */
+ Return 1 for error, 0 if ok.
+ XXX Should be removed after the end of the deprecation period in
+ _PyLong_FromNbIndexOrNbInt. */
static int
float_argument_error(PyObject *arg)
{
@@ -675,13 +675,13 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
/* For # codes */
#define FETCH_SIZE int *q=NULL;Py_ssize_t *q2=NULL;\
if (flags & FLAG_SIZE_T) q2=va_arg(*p_va, Py_ssize_t*); \
- else { \
- if (PyErr_WarnEx(PyExc_DeprecationWarning, \
- "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) { \
- return NULL; \
- } \
- q=va_arg(*p_va, int*); \
- }
+ else { \
+ if (PyErr_WarnEx(PyExc_DeprecationWarning, \
+ "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) { \
+ return NULL; \
+ } \
+ q=va_arg(*p_va, int*); \
+ }
#define STORE_SIZE(s) \
if (flags & FLAG_SIZE_T) \
*q2=s; \
@@ -881,7 +881,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
case 'f': {/* float */
float *p = va_arg(*p_va, float *);
double dval = PyFloat_AsDouble(arg);
- if (dval == -1.0 && PyErr_Occurred())
+ if (dval == -1.0 && PyErr_Occurred())
RETURN_ERR_OCCURRED;
else
*p = (float) dval;
@@ -891,7 +891,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
case 'd': {/* double */
double *p = va_arg(*p_va, double *);
double dval = PyFloat_AsDouble(arg);
- if (dval == -1.0 && PyErr_Occurred())
+ if (dval == -1.0 && PyErr_Occurred())
RETURN_ERR_OCCURRED;
else
*p = dval;
@@ -923,7 +923,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
case 'C': {/* unicode char */
int *p = va_arg(*p_va, int *);
int kind;
- const void *data;
+ const void *data;
if (!PyUnicode_Check(arg))
return converterr("a unicode character", arg, msgbuf, bufsize);
@@ -1070,9 +1070,9 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
case 'u': /* raw unicode buffer (Py_UNICODE *) */
case 'Z': /* raw unicode buffer or None */
{
- // TODO: Raise DeprecationWarning
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
+ // TODO: Raise DeprecationWarning
+_Py_COMP_DIAG_PUSH
+_Py_COMP_DIAG_IGNORE_DEPR_DECLS
Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **);
if (*format == '#') {
@@ -1112,7 +1112,7 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS
arg, msgbuf, bufsize);
}
break;
-_Py_COMP_DIAG_POP
+_Py_COMP_DIAG_POP
}
case 'e': {/* encoded string */
@@ -1203,19 +1203,19 @@ _Py_COMP_DIAG_POP
trailing 0-byte
*/
- int *q = NULL; Py_ssize_t *q2 = NULL;
- if (flags & FLAG_SIZE_T) {
- q2 = va_arg(*p_va, Py_ssize_t*);
- }
- else {
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "PY_SSIZE_T_CLEAN will be required for '#' formats", 1))
- {
- Py_DECREF(s);
- return NULL;
- }
- q = va_arg(*p_va, int*);
- }
+ int *q = NULL; Py_ssize_t *q2 = NULL;
+ if (flags & FLAG_SIZE_T) {
+ q2 = va_arg(*p_va, Py_ssize_t*);
+ }
+ else {
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "PY_SSIZE_T_CLEAN will be required for '#' formats", 1))
+ {
+ Py_DECREF(s);
+ return NULL;
+ }
+ q = va_arg(*p_va, int*);
+ }
format++;
if (q == NULL && q2 == NULL) {
@@ -1248,19 +1248,19 @@ _Py_COMP_DIAG_POP
}
}
memcpy(*buffer, ptr, size+1);
-
- if (flags & FLAG_SIZE_T) {
- *q2 = size;
- }
- else {
- if (INT_MAX < size) {
- Py_DECREF(s);
- PyErr_SetString(PyExc_OverflowError,
- "size does not fit in an int");
- return converterr("", arg, msgbuf, bufsize);
- }
- *q = (int)size;
- }
+
+ if (flags & FLAG_SIZE_T) {
+ *q2 = size;
+ }
+ else {
+ if (INT_MAX < size) {
+ Py_DECREF(s);
+ PyErr_SetString(PyExc_OverflowError,
+ "size does not fit in an int");
+ return converterr("", arg, msgbuf, bufsize);
+ }
+ *q = (int)size;
+ }
} else {
/* Using a 0-terminated buffer:
@@ -1335,7 +1335,7 @@ _Py_COMP_DIAG_POP
type = va_arg(*p_va, PyTypeObject*);
p = va_arg(*p_va, PyObject **);
format++;
- if (PyType_IsSubtype(Py_TYPE(arg), type))
+ if (PyType_IsSubtype(Py_TYPE(arg), type))
*p = arg;
else
return converterr(type->tp_name, arg, msgbuf, bufsize);
@@ -1470,7 +1470,7 @@ PyArg_ParseTupleAndKeywords(PyObject *args,
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_ParseTupleAndKeywords_SizeT(PyObject *args,
PyObject *keywords,
const char *format,
@@ -1521,7 +1521,7 @@ PyArg_VaParseTupleAndKeywords(PyObject *args,
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_VaParseTupleAndKeywords_SizeT(PyObject *args,
PyObject *keywords,
const char *format,
@@ -1547,7 +1547,7 @@ _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *args,
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_ParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
struct _PyArg_Parser *parser, ...)
{
@@ -1560,7 +1560,7 @@ _PyArg_ParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
struct _PyArg_Parser *parser, ...)
{
@@ -1573,7 +1573,7 @@ _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_ParseStackAndKeywords(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames,
struct _PyArg_Parser *parser, ...)
{
@@ -1586,7 +1586,7 @@ _PyArg_ParseStackAndKeywords(PyObject *const *args, Py_ssize_t nargs, PyObject *
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames,
struct _PyArg_Parser *parser, ...)
{
@@ -1600,7 +1600,7 @@ _PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t nargs, PyOb
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_VaParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
struct _PyArg_Parser *parser, va_list va)
{
@@ -1614,7 +1614,7 @@ _PyArg_VaParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
return retval;
}
-PyAPI_FUNC(int)
+PyAPI_FUNC(int)
_PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
struct _PyArg_Parser *parser, va_list va)
{
@@ -1768,14 +1768,14 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format,
}
else {
PyErr_Format(PyExc_TypeError,
- "%.200s%s takes %s %d positional argument%s"
- " (%zd given)",
+ "%.200s%s takes %s %d positional argument%s"
+ " (%zd given)",
(fname == NULL) ? "function" : fname,
(fname == NULL) ? "" : "()",
(min != INT_MAX) ? "at most" : "exactly",
- max,
- max == 1 ? "" : "s",
- nargs);
+ max,
+ max == 1 ? "" : "s",
+ nargs);
}
return cleanreturn(0, &freelist);
}
@@ -1791,13 +1791,13 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format,
current_arg = PyTuple_GET_ITEM(args, i);
}
else if (nkwargs && i >= pos) {
- current_arg = _PyDict_GetItemStringWithError(kwargs, kwlist[i]);
- if (current_arg) {
+ current_arg = _PyDict_GetItemStringWithError(kwargs, kwlist[i]);
+ if (current_arg) {
--nkwargs;
- }
- else if (PyErr_Occurred()) {
- return cleanreturn(0, &freelist);
- }
+ }
+ else if (PyErr_Occurred()) {
+ return cleanreturn(0, &freelist);
+ }
}
else {
current_arg = NULL;
@@ -1853,14 +1853,14 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format,
if (skip) {
PyErr_Format(PyExc_TypeError,
- "%.200s%s takes %s %d positional argument%s"
- " (%zd given)",
+ "%.200s%s takes %s %d positional argument%s"
+ " (%zd given)",
(fname == NULL) ? "function" : fname,
(fname == NULL) ? "" : "()",
(Py_MIN(pos, min) < i) ? "at least" : "exactly",
- Py_MIN(pos, min),
- Py_MIN(pos, min) == 1 ? "" : "s",
- nargs);
+ Py_MIN(pos, min),
+ Py_MIN(pos, min) == 1 ? "" : "s",
+ nargs);
return cleanreturn(0, &freelist);
}
@@ -1876,7 +1876,7 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format,
Py_ssize_t j;
/* make sure there are no arguments given by name and position */
for (i = pos; i < nargs; i++) {
- current_arg = _PyDict_GetItemStringWithError(kwargs, kwlist[i]);
+ current_arg = _PyDict_GetItemStringWithError(kwargs, kwlist[i]);
if (current_arg) {
/* arg present in tuple and in dict */
PyErr_Format(PyExc_TypeError,
@@ -1887,9 +1887,9 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format,
kwlist[i], i+1);
return cleanreturn(0, &freelist);
}
- else if (PyErr_Occurred()) {
- return cleanreturn(0, &freelist);
- }
+ else if (PyErr_Occurred()) {
+ return cleanreturn(0, &freelist);
+ }
}
/* make sure there are no extraneous keyword arguments */
j = 0;
@@ -1954,70 +1954,70 @@ parser_init(struct _PyArg_Parser *parser)
len = i;
format = parser->format;
- if (format) {
- /* grab the function name or custom error msg first (mutually exclusive) */
- parser->fname = strchr(parser->format, ':');
- if (parser->fname) {
- parser->fname++;
- parser->custom_msg = NULL;
- }
- else {
- parser->custom_msg = strchr(parser->format,';');
- if (parser->custom_msg)
- parser->custom_msg++;
- }
-
- min = max = INT_MAX;
- for (i = 0; i < len; i++) {
- if (*format == '|') {
- if (min != INT_MAX) {
- PyErr_SetString(PyExc_SystemError,
- "Invalid format string (| specified twice)");
- return 0;
- }
- if (max != INT_MAX) {
- PyErr_SetString(PyExc_SystemError,
- "Invalid format string ($ before |)");
- return 0;
- }
- min = i;
- format++;
- }
- if (*format == '$') {
- if (max != INT_MAX) {
- PyErr_SetString(PyExc_SystemError,
- "Invalid format string ($ specified twice)");
- return 0;
- }
- if (i < parser->pos) {
- PyErr_SetString(PyExc_SystemError,
- "Empty parameter name after $");
- return 0;
- }
- max = i;
- format++;
- }
- if (IS_END_OF_FORMAT(*format)) {
- PyErr_Format(PyExc_SystemError,
- "More keyword list entries (%d) than "
- "format specifiers (%d)", len, i);
+ if (format) {
+ /* grab the function name or custom error msg first (mutually exclusive) */
+ parser->fname = strchr(parser->format, ':');
+ if (parser->fname) {
+ parser->fname++;
+ parser->custom_msg = NULL;
+ }
+ else {
+ parser->custom_msg = strchr(parser->format,';');
+ if (parser->custom_msg)
+ parser->custom_msg++;
+ }
+
+ min = max = INT_MAX;
+ for (i = 0; i < len; i++) {
+ if (*format == '|') {
+ if (min != INT_MAX) {
+ PyErr_SetString(PyExc_SystemError,
+ "Invalid format string (| specified twice)");
+ return 0;
+ }
+ if (max != INT_MAX) {
+ PyErr_SetString(PyExc_SystemError,
+ "Invalid format string ($ before |)");
+ return 0;
+ }
+ min = i;
+ format++;
+ }
+ if (*format == '$') {
+ if (max != INT_MAX) {
+ PyErr_SetString(PyExc_SystemError,
+ "Invalid format string ($ specified twice)");
+ return 0;
+ }
+ if (i < parser->pos) {
+ PyErr_SetString(PyExc_SystemError,
+ "Empty parameter name after $");
+ return 0;
+ }
+ max = i;
+ format++;
+ }
+ if (IS_END_OF_FORMAT(*format)) {
+ PyErr_Format(PyExc_SystemError,
+ "More keyword list entries (%d) than "
+ "format specifiers (%d)", len, i);
return 0;
}
-
- msg = skipitem(&format, NULL, 0);
- if (msg) {
- PyErr_Format(PyExc_SystemError, "%s: '%s'", msg,
- format);
+
+ msg = skipitem(&format, NULL, 0);
+ if (msg) {
+ PyErr_Format(PyExc_SystemError, "%s: '%s'", msg,
+ format);
return 0;
}
}
- parser->min = Py_MIN(min, len);
- parser->max = Py_MIN(max, len);
-
- if (!IS_END_OF_FORMAT(*format) && (*format != '|') && (*format != '$')) {
+ parser->min = Py_MIN(min, len);
+ parser->max = Py_MIN(max, len);
+
+ if (!IS_END_OF_FORMAT(*format) && (*format != '|') && (*format != '$')) {
PyErr_Format(PyExc_SystemError,
- "more argument specifiers than keyword list entries "
- "(remaining format:'%s')", format);
+ "more argument specifiers than keyword list entries "
+ "(remaining format:'%s')", format);
return 0;
}
}
@@ -2052,24 +2052,24 @@ parser_clear(struct _PyArg_Parser *parser)
}
static PyObject*
-find_keyword(PyObject *kwnames, PyObject *const *kwstack, PyObject *key)
+find_keyword(PyObject *kwnames, PyObject *const *kwstack, PyObject *key)
{
Py_ssize_t i, nkwargs;
nkwargs = PyTuple_GET_SIZE(kwnames);
- for (i = 0; i < nkwargs; i++) {
+ for (i = 0; i < nkwargs; i++) {
PyObject *kwname = PyTuple_GET_ITEM(kwnames, i);
- /* kwname == key will normally find a match in since keyword keys
- should be interned strings; if not retry below in a new loop. */
+ /* kwname == key will normally find a match in since keyword keys
+ should be interned strings; if not retry below in a new loop. */
if (kwname == key) {
return kwstack[i];
}
- }
-
- for (i = 0; i < nkwargs; i++) {
- PyObject *kwname = PyTuple_GET_ITEM(kwnames, i);
- assert(PyUnicode_Check(kwname));
+ }
+
+ for (i = 0; i < nkwargs; i++) {
+ PyObject *kwname = PyTuple_GET_ITEM(kwnames, i);
+ assert(PyUnicode_Check(kwname));
if (_PyUnicode_EQ(kwname, key)) {
return kwstack[i];
}
@@ -2163,13 +2163,13 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs,
}
else {
PyErr_Format(PyExc_TypeError,
- "%.200s%s takes %s %d positional argument%s (%zd given)",
+ "%.200s%s takes %s %d positional argument%s (%zd given)",
(parser->fname == NULL) ? "function" : parser->fname,
(parser->fname == NULL) ? "" : "()",
- (parser->min < parser->max) ? "at most" : "exactly",
- parser->max,
- parser->max == 1 ? "" : "s",
- nargs);
+ (parser->min < parser->max) ? "at most" : "exactly",
+ parser->max,
+ parser->max == 1 ? "" : "s",
+ nargs);
}
return cleanreturn(0, &freelist);
}
@@ -2190,18 +2190,18 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs,
}
else if (nkwargs && i >= pos) {
keyword = PyTuple_GET_ITEM(kwtuple, i - pos);
- if (kwargs != NULL) {
- current_arg = PyDict_GetItemWithError(kwargs, keyword);
- if (!current_arg && PyErr_Occurred()) {
- return cleanreturn(0, &freelist);
- }
- }
- else {
- current_arg = find_keyword(kwnames, kwstack, keyword);
- }
- if (current_arg) {
+ if (kwargs != NULL) {
+ current_arg = PyDict_GetItemWithError(kwargs, keyword);
+ if (!current_arg && PyErr_Occurred()) {
+ return cleanreturn(0, &freelist);
+ }
+ }
+ else {
+ current_arg = find_keyword(kwnames, kwstack, keyword);
+ }
+ if (current_arg) {
--nkwargs;
- }
+ }
}
else {
current_arg = NULL;
@@ -2222,14 +2222,14 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs,
if (i < pos) {
Py_ssize_t min = Py_MIN(pos, parser->min);
PyErr_Format(PyExc_TypeError,
- "%.200s%s takes %s %d positional argument%s"
- " (%zd given)",
+ "%.200s%s takes %s %d positional argument%s"
+ " (%zd given)",
(parser->fname == NULL) ? "function" : parser->fname,
(parser->fname == NULL) ? "" : "()",
min < parser->max ? "at least" : "exactly",
- min,
- min == 1 ? "" : "s",
- nargs);
+ min,
+ min == 1 ? "" : "s",
+ nargs);
}
else {
keyword = PyTuple_GET_ITEM(kwtuple, i - pos);
@@ -2262,15 +2262,15 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs,
/* make sure there are no arguments given by name and position */
for (i = pos; i < nargs; i++) {
keyword = PyTuple_GET_ITEM(kwtuple, i - pos);
- if (kwargs != NULL) {
- current_arg = PyDict_GetItemWithError(kwargs, keyword);
- if (!current_arg && PyErr_Occurred()) {
- return cleanreturn(0, &freelist);
- }
- }
- else {
- current_arg = find_keyword(kwnames, kwstack, keyword);
- }
+ if (kwargs != NULL) {
+ current_arg = PyDict_GetItemWithError(kwargs, keyword);
+ if (!current_arg && PyErr_Occurred()) {
+ return cleanreturn(0, &freelist);
+ }
+ }
+ else {
+ current_arg = find_keyword(kwnames, kwstack, keyword);
+ }
if (current_arg) {
/* arg present in tuple and in dict */
PyErr_Format(PyExc_TypeError,
@@ -2301,7 +2301,7 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs,
if (match <= 0) {
if (!match) {
PyErr_Format(PyExc_TypeError,
- "'%S' is an invalid keyword "
+ "'%S' is an invalid keyword "
"argument for %.200s%s",
keyword,
(parser->fname == NULL) ? "this function" : parser->fname,
@@ -2330,217 +2330,217 @@ vgetargskeywordsfast(PyObject *args, PyObject *keywords,
return 0;
}
- stack = _PyTuple_ITEMS(args);
+ stack = _PyTuple_ITEMS(args);
nargs = PyTuple_GET_SIZE(args);
return vgetargskeywordsfast_impl(stack, nargs, keywords, NULL,
parser, p_va, flags);
}
-#undef _PyArg_UnpackKeywords
-
-PyObject * const *
-_PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs,
- PyObject *kwargs, PyObject *kwnames,
- struct _PyArg_Parser *parser,
- int minpos, int maxpos, int minkw,
- PyObject **buf)
-{
- PyObject *kwtuple;
- PyObject *keyword;
- int i, posonly, minposonly, maxargs;
- int reqlimit = minkw ? maxpos + minkw : minpos;
- Py_ssize_t nkwargs;
- PyObject *current_arg;
- PyObject * const *kwstack = NULL;
-
- assert(kwargs == NULL || PyDict_Check(kwargs));
- assert(kwargs == NULL || kwnames == NULL);
-
- if (parser == NULL) {
- PyErr_BadInternalCall();
- return NULL;
- }
-
- if (kwnames != NULL && !PyTuple_Check(kwnames)) {
- PyErr_BadInternalCall();
- return NULL;
- }
-
- if (args == NULL && nargs == 0) {
- args = buf;
- }
-
- if (!parser_init(parser)) {
- return NULL;
- }
-
- kwtuple = parser->kwtuple;
- posonly = parser->pos;
- minposonly = Py_MIN(posonly, minpos);
- maxargs = posonly + (int)PyTuple_GET_SIZE(kwtuple);
-
- if (kwargs != NULL) {
- nkwargs = PyDict_GET_SIZE(kwargs);
- }
- else if (kwnames != NULL) {
- nkwargs = PyTuple_GET_SIZE(kwnames);
- kwstack = args + nargs;
- }
- else {
- nkwargs = 0;
- }
- if (nkwargs == 0 && minkw == 0 && minpos <= nargs && nargs <= maxpos) {
- /* Fast path. */
- return args;
- }
- if (nargs + nkwargs > maxargs) {
- /* Adding "keyword" (when nargs == 0) prevents producing wrong error
- messages in some special cases (see bpo-31229). */
- PyErr_Format(PyExc_TypeError,
- "%.200s%s takes at most %d %sargument%s (%zd given)",
- (parser->fname == NULL) ? "function" : parser->fname,
- (parser->fname == NULL) ? "" : "()",
- maxargs,
- (nargs == 0) ? "keyword " : "",
- (maxargs == 1) ? "" : "s",
- nargs + nkwargs);
- return NULL;
- }
- if (nargs > maxpos) {
- if (maxpos == 0) {
- PyErr_Format(PyExc_TypeError,
- "%.200s%s takes no positional arguments",
- (parser->fname == NULL) ? "function" : parser->fname,
- (parser->fname == NULL) ? "" : "()");
- }
- else {
- PyErr_Format(PyExc_TypeError,
- "%.200s%s takes %s %d positional argument%s (%zd given)",
- (parser->fname == NULL) ? "function" : parser->fname,
- (parser->fname == NULL) ? "" : "()",
- (minpos < maxpos) ? "at most" : "exactly",
- maxpos,
- (maxpos == 1) ? "" : "s",
- nargs);
- }
- return NULL;
- }
- if (nargs < minposonly) {
- PyErr_Format(PyExc_TypeError,
- "%.200s%s takes %s %d positional argument%s"
- " (%zd given)",
- (parser->fname == NULL) ? "function" : parser->fname,
- (parser->fname == NULL) ? "" : "()",
- minposonly < maxpos ? "at least" : "exactly",
- minposonly,
- minposonly == 1 ? "" : "s",
- nargs);
- return NULL;
- }
-
- /* copy tuple args */
- for (i = 0; i < nargs; i++) {
- buf[i] = args[i];
- }
-
- /* copy keyword args using kwtuple to drive process */
- for (i = Py_MAX((int)nargs, posonly); i < maxargs; i++) {
- if (nkwargs) {
- keyword = PyTuple_GET_ITEM(kwtuple, i - posonly);
- if (kwargs != NULL) {
- current_arg = PyDict_GetItemWithError(kwargs, keyword);
- if (!current_arg && PyErr_Occurred()) {
- return NULL;
- }
- }
- else {
- current_arg = find_keyword(kwnames, kwstack, keyword);
- }
- }
- else if (i >= reqlimit) {
- break;
- }
- else {
- current_arg = NULL;
- }
-
- buf[i] = current_arg;
-
- if (current_arg) {
- --nkwargs;
- }
- else if (i < minpos || (maxpos <= i && i < reqlimit)) {
- /* Less arguments than required */
- keyword = PyTuple_GET_ITEM(kwtuple, i - posonly);
- PyErr_Format(PyExc_TypeError, "%.200s%s missing required "
- "argument '%U' (pos %d)",
- (parser->fname == NULL) ? "function" : parser->fname,
- (parser->fname == NULL) ? "" : "()",
- keyword, i+1);
- return NULL;
- }
- }
-
- if (nkwargs > 0) {
- Py_ssize_t j;
- /* make sure there are no arguments given by name and position */
- for (i = posonly; i < nargs; i++) {
- keyword = PyTuple_GET_ITEM(kwtuple, i - posonly);
- if (kwargs != NULL) {
- current_arg = PyDict_GetItemWithError(kwargs, keyword);
- if (!current_arg && PyErr_Occurred()) {
- return NULL;
- }
- }
- else {
- current_arg = find_keyword(kwnames, kwstack, keyword);
- }
- if (current_arg) {
- /* arg present in tuple and in dict */
- PyErr_Format(PyExc_TypeError,
- "argument for %.200s%s given by name ('%U') "
- "and position (%d)",
- (parser->fname == NULL) ? "function" : parser->fname,
- (parser->fname == NULL) ? "" : "()",
- keyword, i+1);
- return NULL;
- }
- }
- /* make sure there are no extraneous keyword arguments */
- j = 0;
- while (1) {
- int match;
- if (kwargs != NULL) {
- if (!PyDict_Next(kwargs, &j, &keyword, NULL))
- break;
- }
- else {
- if (j >= PyTuple_GET_SIZE(kwnames))
- break;
- keyword = PyTuple_GET_ITEM(kwnames, j);
- j++;
- }
-
- match = PySequence_Contains(kwtuple, keyword);
- if (match <= 0) {
- if (!match) {
- PyErr_Format(PyExc_TypeError,
- "'%S' is an invalid keyword "
- "argument for %.200s%s",
- keyword,
- (parser->fname == NULL) ? "this function" : parser->fname,
- (parser->fname == NULL) ? "" : "()");
- }
- return NULL;
- }
- }
- }
-
- return buf;
-}
-
-
+#undef _PyArg_UnpackKeywords
+
+PyObject * const *
+_PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs,
+ PyObject *kwargs, PyObject *kwnames,
+ struct _PyArg_Parser *parser,
+ int minpos, int maxpos, int minkw,
+ PyObject **buf)
+{
+ PyObject *kwtuple;
+ PyObject *keyword;
+ int i, posonly, minposonly, maxargs;
+ int reqlimit = minkw ? maxpos + minkw : minpos;
+ Py_ssize_t nkwargs;
+ PyObject *current_arg;
+ PyObject * const *kwstack = NULL;
+
+ assert(kwargs == NULL || PyDict_Check(kwargs));
+ assert(kwargs == NULL || kwnames == NULL);
+
+ if (parser == NULL) {
+ PyErr_BadInternalCall();
+ return NULL;
+ }
+
+ if (kwnames != NULL && !PyTuple_Check(kwnames)) {
+ PyErr_BadInternalCall();
+ return NULL;
+ }
+
+ if (args == NULL && nargs == 0) {
+ args = buf;
+ }
+
+ if (!parser_init(parser)) {
+ return NULL;
+ }
+
+ kwtuple = parser->kwtuple;
+ posonly = parser->pos;
+ minposonly = Py_MIN(posonly, minpos);
+ maxargs = posonly + (int)PyTuple_GET_SIZE(kwtuple);
+
+ if (kwargs != NULL) {
+ nkwargs = PyDict_GET_SIZE(kwargs);
+ }
+ else if (kwnames != NULL) {
+ nkwargs = PyTuple_GET_SIZE(kwnames);
+ kwstack = args + nargs;
+ }
+ else {
+ nkwargs = 0;
+ }
+ if (nkwargs == 0 && minkw == 0 && minpos <= nargs && nargs <= maxpos) {
+ /* Fast path. */
+ return args;
+ }
+ if (nargs + nkwargs > maxargs) {
+ /* Adding "keyword" (when nargs == 0) prevents producing wrong error
+ messages in some special cases (see bpo-31229). */
+ PyErr_Format(PyExc_TypeError,
+ "%.200s%s takes at most %d %sargument%s (%zd given)",
+ (parser->fname == NULL) ? "function" : parser->fname,
+ (parser->fname == NULL) ? "" : "()",
+ maxargs,
+ (nargs == 0) ? "keyword " : "",
+ (maxargs == 1) ? "" : "s",
+ nargs + nkwargs);
+ return NULL;
+ }
+ if (nargs > maxpos) {
+ if (maxpos == 0) {
+ PyErr_Format(PyExc_TypeError,
+ "%.200s%s takes no positional arguments",
+ (parser->fname == NULL) ? "function" : parser->fname,
+ (parser->fname == NULL) ? "" : "()");
+ }
+ else {
+ PyErr_Format(PyExc_TypeError,
+ "%.200s%s takes %s %d positional argument%s (%zd given)",
+ (parser->fname == NULL) ? "function" : parser->fname,
+ (parser->fname == NULL) ? "" : "()",
+ (minpos < maxpos) ? "at most" : "exactly",
+ maxpos,
+ (maxpos == 1) ? "" : "s",
+ nargs);
+ }
+ return NULL;
+ }
+ if (nargs < minposonly) {
+ PyErr_Format(PyExc_TypeError,
+ "%.200s%s takes %s %d positional argument%s"
+ " (%zd given)",
+ (parser->fname == NULL) ? "function" : parser->fname,
+ (parser->fname == NULL) ? "" : "()",
+ minposonly < maxpos ? "at least" : "exactly",
+ minposonly,
+ minposonly == 1 ? "" : "s",
+ nargs);
+ return NULL;
+ }
+
+ /* copy tuple args */
+ for (i = 0; i < nargs; i++) {
+ buf[i] = args[i];
+ }
+
+ /* copy keyword args using kwtuple to drive process */
+ for (i = Py_MAX((int)nargs, posonly); i < maxargs; i++) {
+ if (nkwargs) {
+ keyword = PyTuple_GET_ITEM(kwtuple, i - posonly);
+ if (kwargs != NULL) {
+ current_arg = PyDict_GetItemWithError(kwargs, keyword);
+ if (!current_arg && PyErr_Occurred()) {
+ return NULL;
+ }
+ }
+ else {
+ current_arg = find_keyword(kwnames, kwstack, keyword);
+ }
+ }
+ else if (i >= reqlimit) {
+ break;
+ }
+ else {
+ current_arg = NULL;
+ }
+
+ buf[i] = current_arg;
+
+ if (current_arg) {
+ --nkwargs;
+ }
+ else if (i < minpos || (maxpos <= i && i < reqlimit)) {
+ /* Less arguments than required */
+ keyword = PyTuple_GET_ITEM(kwtuple, i - posonly);
+ PyErr_Format(PyExc_TypeError, "%.200s%s missing required "
+ "argument '%U' (pos %d)",
+ (parser->fname == NULL) ? "function" : parser->fname,
+ (parser->fname == NULL) ? "" : "()",
+ keyword, i+1);
+ return NULL;
+ }
+ }
+
+ if (nkwargs > 0) {
+ Py_ssize_t j;
+ /* make sure there are no arguments given by name and position */
+ for (i = posonly; i < nargs; i++) {
+ keyword = PyTuple_GET_ITEM(kwtuple, i - posonly);
+ if (kwargs != NULL) {
+ current_arg = PyDict_GetItemWithError(kwargs, keyword);
+ if (!current_arg && PyErr_Occurred()) {
+ return NULL;
+ }
+ }
+ else {
+ current_arg = find_keyword(kwnames, kwstack, keyword);
+ }
+ if (current_arg) {
+ /* arg present in tuple and in dict */
+ PyErr_Format(PyExc_TypeError,
+ "argument for %.200s%s given by name ('%U') "
+ "and position (%d)",
+ (parser->fname == NULL) ? "function" : parser->fname,
+ (parser->fname == NULL) ? "" : "()",
+ keyword, i+1);
+ return NULL;
+ }
+ }
+ /* make sure there are no extraneous keyword arguments */
+ j = 0;
+ while (1) {
+ int match;
+ if (kwargs != NULL) {
+ if (!PyDict_Next(kwargs, &j, &keyword, NULL))
+ break;
+ }
+ else {
+ if (j >= PyTuple_GET_SIZE(kwnames))
+ break;
+ keyword = PyTuple_GET_ITEM(kwnames, j);
+ j++;
+ }
+
+ match = PySequence_Contains(kwtuple, keyword);
+ if (match <= 0) {
+ if (!match) {
+ PyErr_Format(PyExc_TypeError,
+ "'%S' is an invalid keyword "
+ "argument for %.200s%s",
+ keyword,
+ (parser->fname == NULL) ? "this function" : parser->fname,
+ (parser->fname == NULL) ? "" : "()");
+ }
+ return NULL;
+ }
+ }
+ }
+
+ return buf;
+}
+
+
static const char *
skipitem(const char **p_format, va_list *p_va, int flags)
{
@@ -2609,13 +2609,13 @@ skipitem(const char **p_format, va_list *p_va, int flags)
if (p_va != NULL) {
if (flags & FLAG_SIZE_T)
(void) va_arg(*p_va, Py_ssize_t *);
- else {
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
- return NULL;
- }
+ else {
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
+ return NULL;
+ }
(void) va_arg(*p_va, int *);
- }
+ }
}
format++;
} else if ((c == 's' || c == 'z' || c == 'y' || c == 'w')
@@ -2682,11 +2682,11 @@ err:
}
-#undef _PyArg_CheckPositional
-
-int
-_PyArg_CheckPositional(const char *name, Py_ssize_t nargs,
- Py_ssize_t min, Py_ssize_t max)
+#undef _PyArg_CheckPositional
+
+int
+_PyArg_CheckPositional(const char *name, Py_ssize_t nargs,
+ Py_ssize_t min, Py_ssize_t max)
{
assert(min >= 0);
assert(min <= max);
@@ -2695,14 +2695,14 @@ _PyArg_CheckPositional(const char *name, Py_ssize_t nargs,
if (name != NULL)
PyErr_Format(
PyExc_TypeError,
- "%.200s expected %s%zd argument%s, got %zd",
- name, (min == max ? "" : "at least "), min, min == 1 ? "" : "s", nargs);
+ "%.200s expected %s%zd argument%s, got %zd",
+ name, (min == max ? "" : "at least "), min, min == 1 ? "" : "s", nargs);
else
PyErr_Format(
PyExc_TypeError,
- "unpacked tuple should have %s%zd element%s,"
+ "unpacked tuple should have %s%zd element%s,"
" but has %zd",
- (min == max ? "" : "at least "), min, min == 1 ? "" : "s", nargs);
+ (min == max ? "" : "at least "), min, min == 1 ? "" : "s", nargs);
return 0;
}
@@ -2714,31 +2714,31 @@ _PyArg_CheckPositional(const char *name, Py_ssize_t nargs,
if (name != NULL)
PyErr_Format(
PyExc_TypeError,
- "%.200s expected %s%zd argument%s, got %zd",
- name, (min == max ? "" : "at most "), max, max == 1 ? "" : "s", nargs);
+ "%.200s expected %s%zd argument%s, got %zd",
+ name, (min == max ? "" : "at most "), max, max == 1 ? "" : "s", nargs);
else
PyErr_Format(
PyExc_TypeError,
- "unpacked tuple should have %s%zd element%s,"
+ "unpacked tuple should have %s%zd element%s,"
" but has %zd",
- (min == max ? "" : "at most "), max, max == 1 ? "" : "s", nargs);
+ (min == max ? "" : "at most "), max, max == 1 ? "" : "s", nargs);
+ return 0;
+ }
+
+ return 1;
+}
+
+static int
+unpack_stack(PyObject *const *args, Py_ssize_t nargs, const char *name,
+ Py_ssize_t min, Py_ssize_t max, va_list vargs)
+{
+ Py_ssize_t i;
+ PyObject **o;
+
+ if (!_PyArg_CheckPositional(name, nargs, min, max)) {
return 0;
}
- return 1;
-}
-
-static int
-unpack_stack(PyObject *const *args, Py_ssize_t nargs, const char *name,
- Py_ssize_t min, Py_ssize_t max, va_list vargs)
-{
- Py_ssize_t i;
- PyObject **o;
-
- if (!_PyArg_CheckPositional(name, nargs, min, max)) {
- return 0;
- }
-
for (i = 0; i < nargs; i++) {
o = va_arg(vargs, PyObject **);
*o = args[i];
@@ -2759,7 +2759,7 @@ PyArg_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t m
"PyArg_UnpackTuple() argument list is not a tuple");
return 0;
}
- stack = _PyTuple_ITEMS(args);
+ stack = _PyTuple_ITEMS(args);
nargs = PyTuple_GET_SIZE(args);
#ifdef HAVE_STDARG_PROTOTYPES
@@ -2791,7 +2791,7 @@ _PyArg_UnpackStack(PyObject *const *args, Py_ssize_t nargs, const char *name,
#undef _PyArg_NoKeywords
-#undef _PyArg_NoKwnames
+#undef _PyArg_NoKwnames
#undef _PyArg_NoPositional
/* For type constructors that don't take keyword args
@@ -2835,23 +2835,23 @@ _PyArg_NoPositional(const char *funcname, PyObject *args)
return 0;
}
-int
-_PyArg_NoKwnames(const char *funcname, PyObject *kwnames)
-{
- if (kwnames == NULL) {
- return 1;
- }
-
- assert(PyTuple_CheckExact(kwnames));
-
- if (PyTuple_GET_SIZE(kwnames) == 0) {
- return 1;
- }
-
- PyErr_Format(PyExc_TypeError, "%s() takes no keyword arguments", funcname);
- return 0;
-}
-
+int
+_PyArg_NoKwnames(const char *funcname, PyObject *kwnames)
+{
+ if (kwnames == NULL) {
+ return 1;
+ }
+
+ assert(PyTuple_CheckExact(kwnames));
+
+ if (PyTuple_GET_SIZE(kwnames) == 0) {
+ return 1;
+ }
+
+ PyErr_Format(PyExc_TypeError, "%s() takes no keyword arguments", funcname);
+ return 0;
+}
+
void
_PyArg_Fini(void)
{
diff --git a/contrib/tools/python3/src/Python/getcopyright.c b/contrib/tools/python3/src/Python/getcopyright.c
index 8317fcde70..88d1d05362 100644
--- a/contrib/tools/python3/src/Python/getcopyright.c
+++ b/contrib/tools/python3/src/Python/getcopyright.c
@@ -4,7 +4,7 @@
static const char cprt[] =
"\
-Copyright (c) 2001-2022 Python Software Foundation.\n\
+Copyright (c) 2001-2022 Python Software Foundation.\n\
All Rights Reserved.\n\
\n\
Copyright (c) 2000 BeOpen.com.\n\
diff --git a/contrib/tools/python3/src/Python/getopt.c b/contrib/tools/python3/src/Python/getopt.c
index 650ae089c3..2e3891aae2 100644
--- a/contrib/tools/python3/src/Python/getopt.c
+++ b/contrib/tools/python3/src/Python/getopt.c
@@ -27,28 +27,28 @@
#include <stdio.h>
#include <string.h>
#include <wchar.h>
-#include "pycore_getopt.h"
+#include "pycore_getopt.h"
#ifdef __cplusplus
extern "C" {
#endif
-int _PyOS_opterr = 1; /* generate error messages */
-Py_ssize_t _PyOS_optind = 1; /* index into argv array */
-const wchar_t *_PyOS_optarg = NULL; /* optional argument */
-
-static const wchar_t *opt_ptr = L"";
-
-/* Python command line short and long options */
-
-#define SHORT_OPTS L"bBc:dEhiIJm:OqRsStuvVW:xX:?"
-
-static const _PyOS_LongOption longopts[] = {
- {L"check-hash-based-pycs", 1, 0},
- {NULL, 0, 0},
-};
-
-
+int _PyOS_opterr = 1; /* generate error messages */
+Py_ssize_t _PyOS_optind = 1; /* index into argv array */
+const wchar_t *_PyOS_optarg = NULL; /* optional argument */
+
+static const wchar_t *opt_ptr = L"";
+
+/* Python command line short and long options */
+
+#define SHORT_OPTS L"bBc:dEhiIJm:OqRsStuvVW:xX:?"
+
+static const _PyOS_LongOption longopts[] = {
+ {L"check-hash-based-pycs", 1, 0},
+ {NULL, 0, 0},
+};
+
+
void _PyOS_ResetGetOpt(void)
{
_PyOS_opterr = 1;
@@ -57,7 +57,7 @@ void _PyOS_ResetGetOpt(void)
opt_ptr = L"";
}
-int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
+int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
{
wchar_t *ptr;
wchar_t option;
@@ -101,9 +101,9 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
if (option == L'-') {
// Parse long option.
if (*opt_ptr == L'\0') {
- if (_PyOS_opterr) {
- fprintf(stderr, "expected long option\n");
- }
+ if (_PyOS_opterr) {
+ fprintf(stderr, "expected long option\n");
+ }
return -1;
}
*longindex = 0;
@@ -113,9 +113,9 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
break;
}
if (!opt->name) {
- if (_PyOS_opterr) {
- fprintf(stderr, "unknown option %ls\n", argv[_PyOS_optind - 1]);
- }
+ if (_PyOS_opterr) {
+ fprintf(stderr, "unknown option %ls\n", argv[_PyOS_optind - 1]);
+ }
return '_';
}
opt_ptr = L"";
@@ -123,10 +123,10 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
return opt->val;
}
if (_PyOS_optind >= argc) {
- if (_PyOS_opterr) {
- fprintf(stderr, "Argument expected for the %ls options\n",
- argv[_PyOS_optind - 1]);
- }
+ if (_PyOS_opterr) {
+ fprintf(stderr, "Argument expected for the %ls options\n",
+ argv[_PyOS_optind - 1]);
+ }
return '_';
}
_PyOS_optarg = argv[_PyOS_optind++];
@@ -134,16 +134,16 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
}
if (option == 'J') {
- if (_PyOS_opterr) {
+ if (_PyOS_opterr) {
fprintf(stderr, "-J is reserved for Jython\n");
- }
+ }
return '_';
}
- if ((ptr = wcschr(SHORT_OPTS, option)) == NULL) {
- if (_PyOS_opterr) {
+ if ((ptr = wcschr(SHORT_OPTS, option)) == NULL) {
+ if (_PyOS_opterr) {
fprintf(stderr, "Unknown option: -%c\n", (char)option);
- }
+ }
return '_';
}
@@ -155,10 +155,10 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
else {
if (_PyOS_optind >= argc) {
- if (_PyOS_opterr) {
+ if (_PyOS_opterr) {
fprintf(stderr,
"Argument expected for the -%c option\n", (char)option);
- }
+ }
return '_';
}
diff --git a/contrib/tools/python3/src/Python/graminit.c b/contrib/tools/python3/src/Python/graminit.c
index db6f9395e7..b7aa52895f 100644
--- a/contrib/tools/python3/src/Python/graminit.c
+++ b/contrib/tools/python3/src/Python/graminit.c
@@ -1,17 +1,17 @@
/* Generated by Parser/pgen */
-#include "exports.h"
+#include "exports.h"
#include "grammar.h"
-Py_EXPORTED_SYMBOL grammar _PyParser_Grammar;
-static const arc arcs_0_0[3] = {
+Py_EXPORTED_SYMBOL grammar _PyParser_Grammar;
+static const arc arcs_0_0[3] = {
{2, 1},
- {3, 2},
- {4, 1},
+ {3, 2},
+ {4, 1},
};
-static const arc arcs_0_1[1] = {
+static const arc arcs_0_1[1] = {
{0, 1},
};
-static const arc arcs_0_2[1] = {
+static const arc arcs_0_2[1] = {
{2, 1},
};
static state states_0[3] = {
@@ -19,26 +19,26 @@ static state states_0[3] = {
{1, arcs_0_1},
{1, arcs_0_2},
};
-static const arc arcs_1_0[3] = {
- {44, 1},
+static const arc arcs_1_0[3] = {
+ {44, 1},
{2, 0},
- {45, 0},
+ {45, 0},
};
-static const arc arcs_1_1[1] = {
+static const arc arcs_1_1[1] = {
{0, 1},
};
static state states_1[2] = {
{3, arcs_1_0},
{1, arcs_1_1},
};
-static const arc arcs_2_0[1] = {
- {47, 1},
+static const arc arcs_2_0[1] = {
+ {47, 1},
};
-static const arc arcs_2_1[2] = {
- {44, 2},
+static const arc arcs_2_1[2] = {
+ {44, 2},
{2, 1},
};
-static const arc arcs_2_2[1] = {
+static const arc arcs_2_2[1] = {
{0, 2},
};
static state states_2[3] = {
@@ -46,44 +46,44 @@ static state states_2[3] = {
{2, arcs_2_1},
{1, arcs_2_2},
};
-static const arc arcs_3_0[1] = {
- {10, 1},
+static const arc arcs_3_0[1] = {
+ {10, 1},
};
-static const arc arcs_3_1[1] = {
- {49, 2},
+static const arc arcs_3_1[1] = {
+ {49, 2},
};
-static const arc arcs_3_2[1] = {
- {2, 3},
+static const arc arcs_3_2[1] = {
+ {2, 3},
};
-static const arc arcs_3_3[1] = {
- {0, 3},
+static const arc arcs_3_3[1] = {
+ {0, 3},
};
-static state states_3[4] = {
+static state states_3[4] = {
{1, arcs_3_0},
{1, arcs_3_1},
- {1, arcs_3_2},
- {1, arcs_3_3},
+ {1, arcs_3_2},
+ {1, arcs_3_3},
};
-static const arc arcs_4_0[1] = {
- {48, 1},
+static const arc arcs_4_0[1] = {
+ {48, 1},
};
-static const arc arcs_4_1[2] = {
- {48, 1},
+static const arc arcs_4_1[2] = {
+ {48, 1},
{0, 1},
};
static state states_4[2] = {
{1, arcs_4_0},
{2, arcs_4_1},
};
-static const arc arcs_5_0[1] = {
- {50, 1},
+static const arc arcs_5_0[1] = {
+ {50, 1},
};
-static const arc arcs_5_1[3] = {
- {52, 2},
- {53, 2},
- {54, 2},
+static const arc arcs_5_1[3] = {
+ {52, 2},
+ {53, 2},
+ {54, 2},
};
-static const arc arcs_5_2[1] = {
+static const arc arcs_5_2[1] = {
{0, 2},
};
static state states_5[3] = {
@@ -91,13 +91,13 @@ static state states_5[3] = {
{3, arcs_5_1},
{1, arcs_5_2},
};
-static const arc arcs_6_0[1] = {
- {38, 1},
+static const arc arcs_6_0[1] = {
+ {38, 1},
};
-static const arc arcs_6_1[1] = {
- {54, 2},
+static const arc arcs_6_1[1] = {
+ {54, 2},
};
-static const arc arcs_6_2[1] = {
+static const arc arcs_6_2[1] = {
{0, 2},
};
static state states_6[3] = {
@@ -105,58 +105,58 @@ static state states_6[3] = {
{1, arcs_6_1},
{1, arcs_6_2},
};
-static const arc arcs_7_0[1] = {
- {19, 1},
+static const arc arcs_7_0[1] = {
+ {19, 1},
};
-static const arc arcs_7_1[1] = {
- {40, 2},
+static const arc arcs_7_1[1] = {
+ {40, 2},
};
-static const arc arcs_7_2[1] = {
- {55, 3},
+static const arc arcs_7_2[1] = {
+ {55, 3},
};
-static const arc arcs_7_3[2] = {
- {56, 4},
- {57, 5},
+static const arc arcs_7_3[2] = {
+ {56, 4},
+ {57, 5},
};
-static const arc arcs_7_4[1] = {
- {58, 6},
+static const arc arcs_7_4[1] = {
+ {58, 6},
};
-static const arc arcs_7_5[2] = {
- {59, 7},
- {60, 8},
+static const arc arcs_7_5[2] = {
+ {59, 7},
+ {60, 8},
};
-static const arc arcs_7_6[1] = {
- {57, 5},
+static const arc arcs_7_6[1] = {
+ {57, 5},
};
-static const arc arcs_7_7[1] = {
- {60, 8},
+static const arc arcs_7_7[1] = {
+ {60, 8},
};
-static const arc arcs_7_8[1] = {
- {0, 8},
-};
-static state states_7[9] = {
+static const arc arcs_7_8[1] = {
+ {0, 8},
+};
+static state states_7[9] = {
{1, arcs_7_0},
{1, arcs_7_1},
{1, arcs_7_2},
{2, arcs_7_3},
{1, arcs_7_4},
- {2, arcs_7_5},
+ {2, arcs_7_5},
{1, arcs_7_6},
{1, arcs_7_7},
- {1, arcs_7_8},
+ {1, arcs_7_8},
};
-static const arc arcs_8_0[1] = {
- {5, 1},
+static const arc arcs_8_0[1] = {
+ {5, 1},
};
-static const arc arcs_8_1[2] = {
- {61, 2},
- {62, 3},
+static const arc arcs_8_1[2] = {
+ {61, 2},
+ {62, 3},
};
-static const arc arcs_8_2[1] = {
- {0, 2},
+static const arc arcs_8_2[1] = {
+ {0, 2},
};
-static const arc arcs_8_3[1] = {
- {61, 2},
+static const arc arcs_8_3[1] = {
+ {61, 2},
};
static state states_8[4] = {
{1, arcs_8_0},
@@ -164,275 +164,275 @@ static state states_8[4] = {
{1, arcs_8_2},
{1, arcs_8_3},
};
-static const arc arcs_9_0[3] = {
- {6, 1},
- {63, 2},
- {64, 3},
+static const arc arcs_9_0[3] = {
+ {6, 1},
+ {63, 2},
+ {64, 3},
};
-static const arc arcs_9_1[4] = {
- {65, 4},
- {59, 5},
- {64, 6},
+static const arc arcs_9_1[4] = {
+ {65, 4},
+ {59, 5},
+ {64, 6},
{0, 1},
};
-static const arc arcs_9_2[1] = {
- {64, 7},
+static const arc arcs_9_2[1] = {
+ {64, 7},
};
-static const arc arcs_9_3[4] = {
- {65, 8},
- {66, 9},
- {59, 5},
- {0, 3},
+static const arc arcs_9_3[4] = {
+ {65, 8},
+ {66, 9},
+ {59, 5},
+ {0, 3},
};
-static const arc arcs_9_4[4] = {
- {63, 2},
- {59, 10},
- {64, 11},
- {0, 4},
+static const arc arcs_9_4[4] = {
+ {63, 2},
+ {59, 10},
+ {64, 11},
+ {0, 4},
};
-static const arc arcs_9_5[1] = {
+static const arc arcs_9_5[1] = {
{0, 5},
};
-static const arc arcs_9_6[3] = {
- {65, 4},
- {59, 5},
+static const arc arcs_9_6[3] = {
+ {65, 4},
+ {59, 5},
{0, 6},
};
-static const arc arcs_9_7[3] = {
- {65, 12},
- {59, 5},
+static const arc arcs_9_7[3] = {
+ {65, 12},
+ {59, 5},
{0, 7},
};
-static const arc arcs_9_8[6] = {
- {6, 13},
- {63, 2},
- {67, 14},
- {59, 15},
- {64, 3},
+static const arc arcs_9_8[6] = {
+ {6, 13},
+ {63, 2},
+ {67, 14},
+ {59, 15},
+ {64, 3},
{0, 8},
};
-static const arc arcs_9_9[1] = {
- {58, 16},
+static const arc arcs_9_9[1] = {
+ {58, 16},
};
-static const arc arcs_9_10[3] = {
- {63, 2},
- {64, 11},
+static const arc arcs_9_10[3] = {
+ {63, 2},
+ {64, 11},
{0, 10},
};
-static const arc arcs_9_11[4] = {
- {65, 4},
- {66, 17},
- {59, 5},
+static const arc arcs_9_11[4] = {
+ {65, 4},
+ {66, 17},
+ {59, 5},
{0, 11},
};
-static const arc arcs_9_12[2] = {
- {59, 5},
+static const arc arcs_9_12[2] = {
+ {59, 5},
{0, 12},
};
-static const arc arcs_9_13[4] = {
- {65, 18},
- {59, 5},
- {64, 19},
+static const arc arcs_9_13[4] = {
+ {65, 18},
+ {59, 5},
+ {64, 19},
{0, 13},
};
-static const arc arcs_9_14[2] = {
- {65, 20},
+static const arc arcs_9_14[2] = {
+ {65, 20},
{0, 14},
};
-static const arc arcs_9_15[5] = {
- {6, 13},
- {63, 2},
- {67, 14},
- {64, 3},
+static const arc arcs_9_15[5] = {
+ {6, 13},
+ {63, 2},
+ {67, 14},
+ {64, 3},
{0, 15},
};
-static const arc arcs_9_16[3] = {
- {65, 8},
- {59, 5},
- {0, 16},
-};
-static const arc arcs_9_17[1] = {
- {58, 6},
-};
-static const arc arcs_9_18[4] = {
- {63, 2},
- {59, 21},
- {64, 22},
- {0, 18},
-};
-static const arc arcs_9_19[3] = {
- {65, 18},
- {59, 5},
- {0, 19},
-};
-static const arc arcs_9_20[5] = {
- {6, 23},
- {63, 2},
- {59, 24},
- {64, 25},
- {0, 20},
-};
-static const arc arcs_9_21[3] = {
- {63, 2},
- {64, 22},
- {0, 21},
-};
-static const arc arcs_9_22[4] = {
- {65, 18},
- {66, 26},
- {59, 5},
- {0, 22},
-};
-static const arc arcs_9_23[4] = {
- {65, 27},
- {59, 5},
- {64, 28},
- {0, 23},
-};
-static const arc arcs_9_24[1] = {
- {64, 25},
-};
-static const arc arcs_9_25[4] = {
- {65, 29},
- {66, 30},
- {59, 5},
- {0, 25},
-};
-static const arc arcs_9_26[1] = {
- {58, 19},
-};
-static const arc arcs_9_27[4] = {
- {63, 2},
- {59, 31},
- {64, 32},
- {0, 27},
-};
-static const arc arcs_9_28[3] = {
- {65, 27},
- {59, 5},
- {0, 28},
-};
-static const arc arcs_9_29[5] = {
- {6, 33},
- {63, 2},
- {59, 34},
- {64, 25},
- {0, 29},
-};
-static const arc arcs_9_30[1] = {
- {58, 35},
-};
-static const arc arcs_9_31[3] = {
- {63, 2},
- {64, 32},
- {0, 31},
-};
-static const arc arcs_9_32[4] = {
- {65, 27},
- {66, 36},
- {59, 5},
- {0, 32},
-};
-static const arc arcs_9_33[4] = {
- {65, 37},
- {59, 5},
- {64, 38},
- {0, 33},
-};
-static const arc arcs_9_34[4] = {
- {6, 33},
- {63, 2},
- {64, 25},
- {0, 34},
-};
-static const arc arcs_9_35[3] = {
- {65, 29},
- {59, 5},
- {0, 35},
-};
-static const arc arcs_9_36[1] = {
- {58, 28},
-};
-static const arc arcs_9_37[4] = {
- {63, 2},
- {59, 39},
- {64, 40},
- {0, 37},
-};
-static const arc arcs_9_38[3] = {
- {65, 37},
- {59, 5},
- {0, 38},
-};
-static const arc arcs_9_39[3] = {
- {63, 2},
- {64, 40},
- {0, 39},
-};
-static const arc arcs_9_40[4] = {
- {65, 37},
- {66, 41},
- {59, 5},
- {0, 40},
-};
-static const arc arcs_9_41[1] = {
- {58, 38},
-};
-static state states_9[42] = {
+static const arc arcs_9_16[3] = {
+ {65, 8},
+ {59, 5},
+ {0, 16},
+};
+static const arc arcs_9_17[1] = {
+ {58, 6},
+};
+static const arc arcs_9_18[4] = {
+ {63, 2},
+ {59, 21},
+ {64, 22},
+ {0, 18},
+};
+static const arc arcs_9_19[3] = {
+ {65, 18},
+ {59, 5},
+ {0, 19},
+};
+static const arc arcs_9_20[5] = {
+ {6, 23},
+ {63, 2},
+ {59, 24},
+ {64, 25},
+ {0, 20},
+};
+static const arc arcs_9_21[3] = {
+ {63, 2},
+ {64, 22},
+ {0, 21},
+};
+static const arc arcs_9_22[4] = {
+ {65, 18},
+ {66, 26},
+ {59, 5},
+ {0, 22},
+};
+static const arc arcs_9_23[4] = {
+ {65, 27},
+ {59, 5},
+ {64, 28},
+ {0, 23},
+};
+static const arc arcs_9_24[1] = {
+ {64, 25},
+};
+static const arc arcs_9_25[4] = {
+ {65, 29},
+ {66, 30},
+ {59, 5},
+ {0, 25},
+};
+static const arc arcs_9_26[1] = {
+ {58, 19},
+};
+static const arc arcs_9_27[4] = {
+ {63, 2},
+ {59, 31},
+ {64, 32},
+ {0, 27},
+};
+static const arc arcs_9_28[3] = {
+ {65, 27},
+ {59, 5},
+ {0, 28},
+};
+static const arc arcs_9_29[5] = {
+ {6, 33},
+ {63, 2},
+ {59, 34},
+ {64, 25},
+ {0, 29},
+};
+static const arc arcs_9_30[1] = {
+ {58, 35},
+};
+static const arc arcs_9_31[3] = {
+ {63, 2},
+ {64, 32},
+ {0, 31},
+};
+static const arc arcs_9_32[4] = {
+ {65, 27},
+ {66, 36},
+ {59, 5},
+ {0, 32},
+};
+static const arc arcs_9_33[4] = {
+ {65, 37},
+ {59, 5},
+ {64, 38},
+ {0, 33},
+};
+static const arc arcs_9_34[4] = {
+ {6, 33},
+ {63, 2},
+ {64, 25},
+ {0, 34},
+};
+static const arc arcs_9_35[3] = {
+ {65, 29},
+ {59, 5},
+ {0, 35},
+};
+static const arc arcs_9_36[1] = {
+ {58, 28},
+};
+static const arc arcs_9_37[4] = {
+ {63, 2},
+ {59, 39},
+ {64, 40},
+ {0, 37},
+};
+static const arc arcs_9_38[3] = {
+ {65, 37},
+ {59, 5},
+ {0, 38},
+};
+static const arc arcs_9_39[3] = {
+ {63, 2},
+ {64, 40},
+ {0, 39},
+};
+static const arc arcs_9_40[4] = {
+ {65, 37},
+ {66, 41},
+ {59, 5},
+ {0, 40},
+};
+static const arc arcs_9_41[1] = {
+ {58, 38},
+};
+static state states_9[42] = {
{3, arcs_9_0},
- {4, arcs_9_1},
- {1, arcs_9_2},
- {4, arcs_9_3},
- {4, arcs_9_4},
- {1, arcs_9_5},
- {3, arcs_9_6},
+ {4, arcs_9_1},
+ {1, arcs_9_2},
+ {4, arcs_9_3},
+ {4, arcs_9_4},
+ {1, arcs_9_5},
+ {3, arcs_9_6},
{3, arcs_9_7},
- {6, arcs_9_8},
- {1, arcs_9_9},
+ {6, arcs_9_8},
+ {1, arcs_9_9},
{3, arcs_9_10},
- {4, arcs_9_11},
- {2, arcs_9_12},
- {4, arcs_9_13},
+ {4, arcs_9_11},
+ {2, arcs_9_12},
+ {4, arcs_9_13},
{2, arcs_9_14},
- {5, arcs_9_15},
- {3, arcs_9_16},
- {1, arcs_9_17},
- {4, arcs_9_18},
- {3, arcs_9_19},
- {5, arcs_9_20},
- {3, arcs_9_21},
- {4, arcs_9_22},
- {4, arcs_9_23},
- {1, arcs_9_24},
- {4, arcs_9_25},
- {1, arcs_9_26},
- {4, arcs_9_27},
- {3, arcs_9_28},
- {5, arcs_9_29},
- {1, arcs_9_30},
- {3, arcs_9_31},
- {4, arcs_9_32},
- {4, arcs_9_33},
- {4, arcs_9_34},
- {3, arcs_9_35},
- {1, arcs_9_36},
- {4, arcs_9_37},
- {3, arcs_9_38},
- {3, arcs_9_39},
- {4, arcs_9_40},
- {1, arcs_9_41},
-};
-static const arc arcs_10_0[1] = {
- {40, 1},
-};
-static const arc arcs_10_1[2] = {
- {57, 2},
+ {5, arcs_9_15},
+ {3, arcs_9_16},
+ {1, arcs_9_17},
+ {4, arcs_9_18},
+ {3, arcs_9_19},
+ {5, arcs_9_20},
+ {3, arcs_9_21},
+ {4, arcs_9_22},
+ {4, arcs_9_23},
+ {1, arcs_9_24},
+ {4, arcs_9_25},
+ {1, arcs_9_26},
+ {4, arcs_9_27},
+ {3, arcs_9_28},
+ {5, arcs_9_29},
+ {1, arcs_9_30},
+ {3, arcs_9_31},
+ {4, arcs_9_32},
+ {4, arcs_9_33},
+ {4, arcs_9_34},
+ {3, arcs_9_35},
+ {1, arcs_9_36},
+ {4, arcs_9_37},
+ {3, arcs_9_38},
+ {3, arcs_9_39},
+ {4, arcs_9_40},
+ {1, arcs_9_41},
+};
+static const arc arcs_10_0[1] = {
+ {40, 1},
+};
+static const arc arcs_10_1[2] = {
+ {57, 2},
{0, 1},
};
-static const arc arcs_10_2[1] = {
- {58, 3},
+static const arc arcs_10_2[1] = {
+ {58, 3},
};
-static const arc arcs_10_3[1] = {
+static const arc arcs_10_3[1] = {
{0, 3},
};
static state states_10[4] = {
@@ -441,225 +441,225 @@ static state states_10[4] = {
{1, arcs_10_2},
{1, arcs_10_3},
};
-static const arc arcs_11_0[3] = {
- {6, 1},
- {63, 2},
- {69, 3},
+static const arc arcs_11_0[3] = {
+ {6, 1},
+ {63, 2},
+ {69, 3},
};
-static const arc arcs_11_1[3] = {
- {65, 4},
- {69, 5},
+static const arc arcs_11_1[3] = {
+ {65, 4},
+ {69, 5},
{0, 1},
};
-static const arc arcs_11_2[1] = {
- {69, 6},
+static const arc arcs_11_2[1] = {
+ {69, 6},
};
-static const arc arcs_11_3[3] = {
- {65, 7},
- {66, 8},
- {0, 3},
+static const arc arcs_11_3[3] = {
+ {65, 7},
+ {66, 8},
+ {0, 3},
};
-static const arc arcs_11_4[3] = {
- {63, 2},
- {69, 9},
- {0, 4},
+static const arc arcs_11_4[3] = {
+ {63, 2},
+ {69, 9},
+ {0, 4},
};
-static const arc arcs_11_5[2] = {
- {65, 4},
+static const arc arcs_11_5[2] = {
+ {65, 4},
{0, 5},
};
-static const arc arcs_11_6[2] = {
- {65, 10},
+static const arc arcs_11_6[2] = {
+ {65, 10},
{0, 6},
};
-static const arc arcs_11_7[5] = {
- {6, 11},
- {63, 2},
- {67, 12},
- {69, 3},
+static const arc arcs_11_7[5] = {
+ {6, 11},
+ {63, 2},
+ {67, 12},
+ {69, 3},
{0, 7},
};
-static const arc arcs_11_8[1] = {
- {58, 13},
+static const arc arcs_11_8[1] = {
+ {58, 13},
};
-static const arc arcs_11_9[3] = {
- {65, 4},
- {66, 14},
+static const arc arcs_11_9[3] = {
+ {65, 4},
+ {66, 14},
{0, 9},
};
-static const arc arcs_11_10[1] = {
+static const arc arcs_11_10[1] = {
{0, 10},
};
-static const arc arcs_11_11[3] = {
- {65, 15},
- {69, 16},
+static const arc arcs_11_11[3] = {
+ {65, 15},
+ {69, 16},
{0, 11},
};
-static const arc arcs_11_12[2] = {
- {65, 17},
+static const arc arcs_11_12[2] = {
+ {65, 17},
{0, 12},
};
-static const arc arcs_11_13[2] = {
- {65, 7},
+static const arc arcs_11_13[2] = {
+ {65, 7},
{0, 13},
};
-static const arc arcs_11_14[1] = {
- {58, 5},
+static const arc arcs_11_14[1] = {
+ {58, 5},
};
-static const arc arcs_11_15[3] = {
- {63, 2},
- {69, 18},
+static const arc arcs_11_15[3] = {
+ {63, 2},
+ {69, 18},
{0, 15},
};
-static const arc arcs_11_16[2] = {
- {65, 15},
- {0, 16},
+static const arc arcs_11_16[2] = {
+ {65, 15},
+ {0, 16},
};
-static const arc arcs_11_17[4] = {
- {6, 19},
- {63, 2},
- {69, 20},
+static const arc arcs_11_17[4] = {
+ {6, 19},
+ {63, 2},
+ {69, 20},
{0, 17},
};
-static const arc arcs_11_18[3] = {
- {65, 15},
- {66, 21},
- {0, 18},
-};
-static const arc arcs_11_19[3] = {
- {65, 22},
- {69, 23},
- {0, 19},
-};
-static const arc arcs_11_20[3] = {
- {65, 24},
- {66, 25},
- {0, 20},
-};
-static const arc arcs_11_21[1] = {
- {58, 16},
-};
-static const arc arcs_11_22[3] = {
- {63, 2},
- {69, 26},
- {0, 22},
-};
-static const arc arcs_11_23[2] = {
- {65, 22},
- {0, 23},
-};
-static const arc arcs_11_24[4] = {
- {6, 27},
- {63, 2},
- {69, 20},
- {0, 24},
-};
-static const arc arcs_11_25[1] = {
- {58, 28},
-};
-static const arc arcs_11_26[3] = {
- {65, 22},
- {66, 29},
- {0, 26},
-};
-static const arc arcs_11_27[3] = {
- {65, 30},
- {69, 31},
- {0, 27},
-};
-static const arc arcs_11_28[2] = {
- {65, 24},
- {0, 28},
-};
-static const arc arcs_11_29[1] = {
- {58, 23},
-};
-static const arc arcs_11_30[3] = {
- {63, 2},
- {69, 32},
- {0, 30},
-};
-static const arc arcs_11_31[2] = {
- {65, 30},
- {0, 31},
-};
-static const arc arcs_11_32[3] = {
- {65, 30},
- {66, 33},
- {0, 32},
-};
-static const arc arcs_11_33[1] = {
- {58, 31},
-};
-static state states_11[34] = {
+static const arc arcs_11_18[3] = {
+ {65, 15},
+ {66, 21},
+ {0, 18},
+};
+static const arc arcs_11_19[3] = {
+ {65, 22},
+ {69, 23},
+ {0, 19},
+};
+static const arc arcs_11_20[3] = {
+ {65, 24},
+ {66, 25},
+ {0, 20},
+};
+static const arc arcs_11_21[1] = {
+ {58, 16},
+};
+static const arc arcs_11_22[3] = {
+ {63, 2},
+ {69, 26},
+ {0, 22},
+};
+static const arc arcs_11_23[2] = {
+ {65, 22},
+ {0, 23},
+};
+static const arc arcs_11_24[4] = {
+ {6, 27},
+ {63, 2},
+ {69, 20},
+ {0, 24},
+};
+static const arc arcs_11_25[1] = {
+ {58, 28},
+};
+static const arc arcs_11_26[3] = {
+ {65, 22},
+ {66, 29},
+ {0, 26},
+};
+static const arc arcs_11_27[3] = {
+ {65, 30},
+ {69, 31},
+ {0, 27},
+};
+static const arc arcs_11_28[2] = {
+ {65, 24},
+ {0, 28},
+};
+static const arc arcs_11_29[1] = {
+ {58, 23},
+};
+static const arc arcs_11_30[3] = {
+ {63, 2},
+ {69, 32},
+ {0, 30},
+};
+static const arc arcs_11_31[2] = {
+ {65, 30},
+ {0, 31},
+};
+static const arc arcs_11_32[3] = {
+ {65, 30},
+ {66, 33},
+ {0, 32},
+};
+static const arc arcs_11_33[1] = {
+ {58, 31},
+};
+static state states_11[34] = {
{3, arcs_11_0},
{3, arcs_11_1},
- {1, arcs_11_2},
- {3, arcs_11_3},
- {3, arcs_11_4},
- {2, arcs_11_5},
+ {1, arcs_11_2},
+ {3, arcs_11_3},
+ {3, arcs_11_4},
+ {2, arcs_11_5},
{2, arcs_11_6},
- {5, arcs_11_7},
- {1, arcs_11_8},
- {3, arcs_11_9},
- {1, arcs_11_10},
+ {5, arcs_11_7},
+ {1, arcs_11_8},
+ {3, arcs_11_9},
+ {1, arcs_11_10},
{3, arcs_11_11},
- {2, arcs_11_12},
- {2, arcs_11_13},
- {1, arcs_11_14},
+ {2, arcs_11_12},
+ {2, arcs_11_13},
+ {1, arcs_11_14},
{3, arcs_11_15},
- {2, arcs_11_16},
- {4, arcs_11_17},
- {3, arcs_11_18},
- {3, arcs_11_19},
- {3, arcs_11_20},
- {1, arcs_11_21},
- {3, arcs_11_22},
- {2, arcs_11_23},
- {4, arcs_11_24},
- {1, arcs_11_25},
- {3, arcs_11_26},
- {3, arcs_11_27},
- {2, arcs_11_28},
- {1, arcs_11_29},
- {3, arcs_11_30},
- {2, arcs_11_31},
- {3, arcs_11_32},
- {1, arcs_11_33},
-};
-static const arc arcs_12_0[1] = {
- {40, 1},
-};
-static const arc arcs_12_1[1] = {
+ {2, arcs_11_16},
+ {4, arcs_11_17},
+ {3, arcs_11_18},
+ {3, arcs_11_19},
+ {3, arcs_11_20},
+ {1, arcs_11_21},
+ {3, arcs_11_22},
+ {2, arcs_11_23},
+ {4, arcs_11_24},
+ {1, arcs_11_25},
+ {3, arcs_11_26},
+ {3, arcs_11_27},
+ {2, arcs_11_28},
+ {1, arcs_11_29},
+ {3, arcs_11_30},
+ {2, arcs_11_31},
+ {3, arcs_11_32},
+ {1, arcs_11_33},
+};
+static const arc arcs_12_0[1] = {
+ {40, 1},
+};
+static const arc arcs_12_1[1] = {
{0, 1},
};
static state states_12[2] = {
{1, arcs_12_0},
{1, arcs_12_1},
};
-static const arc arcs_13_0[2] = {
+static const arc arcs_13_0[2] = {
{3, 1},
{4, 1},
};
-static const arc arcs_13_1[1] = {
+static const arc arcs_13_1[1] = {
{0, 1},
};
static state states_13[2] = {
{2, arcs_13_0},
{1, arcs_13_1},
};
-static const arc arcs_14_0[1] = {
- {70, 1},
+static const arc arcs_14_0[1] = {
+ {70, 1},
};
-static const arc arcs_14_1[2] = {
- {71, 2},
+static const arc arcs_14_1[2] = {
+ {71, 2},
{2, 3},
};
-static const arc arcs_14_2[2] = {
+static const arc arcs_14_2[2] = {
{2, 3},
- {70, 1},
+ {70, 1},
};
-static const arc arcs_14_3[1] = {
+static const arc arcs_14_3[1] = {
{0, 3},
};
static state states_14[4] = {
@@ -668,91 +668,91 @@ static state states_14[4] = {
{2, arcs_14_2},
{1, arcs_14_3},
};
-static const arc arcs_15_0[8] = {
- {72, 1},
- {73, 1},
- {74, 1},
- {75, 1},
- {76, 1},
- {77, 1},
- {78, 1},
- {79, 1},
-};
-static const arc arcs_15_1[1] = {
+static const arc arcs_15_0[8] = {
+ {72, 1},
+ {73, 1},
+ {74, 1},
+ {75, 1},
+ {76, 1},
+ {77, 1},
+ {78, 1},
+ {79, 1},
+};
+static const arc arcs_15_1[1] = {
{0, 1},
};
static state states_15[2] = {
{8, arcs_15_0},
{1, arcs_15_1},
};
-static const arc arcs_16_0[1] = {
- {80, 1},
+static const arc arcs_16_0[1] = {
+ {80, 1},
};
-static const arc arcs_16_1[4] = {
- {66, 2},
- {81, 3},
- {82, 4},
+static const arc arcs_16_1[4] = {
+ {66, 2},
+ {81, 3},
+ {82, 4},
{0, 1},
};
-static const arc arcs_16_2[2] = {
- {80, 5},
- {83, 5},
+static const arc arcs_16_2[2] = {
+ {80, 5},
+ {83, 5},
};
-static const arc arcs_16_3[1] = {
- {0, 3},
+static const arc arcs_16_3[1] = {
+ {0, 3},
};
-static const arc arcs_16_4[2] = {
- {47, 3},
- {83, 3},
+static const arc arcs_16_4[2] = {
+ {47, 3},
+ {83, 3},
};
-static const arc arcs_16_5[3] = {
- {66, 2},
- {59, 3},
+static const arc arcs_16_5[3] = {
+ {66, 2},
+ {59, 3},
{0, 5},
};
static state states_16[6] = {
{1, arcs_16_0},
{4, arcs_16_1},
- {2, arcs_16_2},
- {1, arcs_16_3},
+ {2, arcs_16_2},
+ {1, arcs_16_3},
{2, arcs_16_4},
- {3, arcs_16_5},
+ {3, arcs_16_5},
};
-static const arc arcs_17_0[1] = {
- {57, 1},
+static const arc arcs_17_0[1] = {
+ {57, 1},
};
-static const arc arcs_17_1[1] = {
- {58, 2},
+static const arc arcs_17_1[1] = {
+ {58, 2},
};
-static const arc arcs_17_2[2] = {
- {66, 3},
+static const arc arcs_17_2[2] = {
+ {66, 3},
{0, 2},
};
-static const arc arcs_17_3[2] = {
- {80, 4},
- {83, 4},
+static const arc arcs_17_3[2] = {
+ {80, 4},
+ {83, 4},
};
-static const arc arcs_17_4[1] = {
+static const arc arcs_17_4[1] = {
{0, 4},
};
static state states_17[5] = {
{1, arcs_17_0},
{1, arcs_17_1},
{2, arcs_17_2},
- {2, arcs_17_3},
+ {2, arcs_17_3},
{1, arcs_17_4},
};
-static const arc arcs_18_0[2] = {
- {84, 1},
- {58, 1},
+static const arc arcs_18_0[2] = {
+ {84, 1},
+ {58, 1},
};
-static const arc arcs_18_1[2] = {
- {65, 2},
+static const arc arcs_18_1[2] = {
+ {65, 2},
{0, 1},
};
-static const arc arcs_18_2[3] = {
- {84, 1},
- {58, 1},
+static const arc arcs_18_2[3] = {
+ {84, 1},
+ {58, 1},
{0, 2},
};
static state states_18[3] = {
@@ -760,35 +760,35 @@ static state states_18[3] = {
{2, arcs_18_1},
{3, arcs_18_2},
};
-static const arc arcs_19_0[13] = {
- {85, 1},
- {86, 1},
- {87, 1},
- {88, 1},
- {89, 1},
- {90, 1},
- {91, 1},
- {92, 1},
- {93, 1},
- {94, 1},
- {95, 1},
- {96, 1},
- {97, 1},
-};
-static const arc arcs_19_1[1] = {
+static const arc arcs_19_0[13] = {
+ {85, 1},
+ {86, 1},
+ {87, 1},
+ {88, 1},
+ {89, 1},
+ {90, 1},
+ {91, 1},
+ {92, 1},
+ {93, 1},
+ {94, 1},
+ {95, 1},
+ {96, 1},
+ {97, 1},
+};
+static const arc arcs_19_1[1] = {
{0, 1},
};
static state states_19[2] = {
{13, arcs_19_0},
{1, arcs_19_1},
};
-static const arc arcs_20_0[1] = {
- {20, 1},
+static const arc arcs_20_0[1] = {
+ {20, 1},
};
-static const arc arcs_20_1[1] = {
- {98, 2},
+static const arc arcs_20_1[1] = {
+ {98, 2},
};
-static const arc arcs_20_2[1] = {
+static const arc arcs_20_2[1] = {
{0, 2},
};
static state states_20[3] = {
@@ -796,58 +796,58 @@ static state states_20[3] = {
{1, arcs_20_1},
{1, arcs_20_2},
};
-static const arc arcs_21_0[1] = {
- {29, 1},
+static const arc arcs_21_0[1] = {
+ {29, 1},
};
-static const arc arcs_21_1[1] = {
+static const arc arcs_21_1[1] = {
{0, 1},
};
static state states_21[2] = {
{1, arcs_21_0},
{1, arcs_21_1},
};
-static const arc arcs_22_0[5] = {
- {99, 1},
- {100, 1},
- {101, 1},
- {102, 1},
- {103, 1},
+static const arc arcs_22_0[5] = {
+ {99, 1},
+ {100, 1},
+ {101, 1},
+ {102, 1},
+ {103, 1},
};
-static const arc arcs_22_1[1] = {
+static const arc arcs_22_1[1] = {
{0, 1},
};
static state states_22[2] = {
{5, arcs_22_0},
{1, arcs_22_1},
};
-static const arc arcs_23_0[1] = {
- {16, 1},
+static const arc arcs_23_0[1] = {
+ {16, 1},
};
-static const arc arcs_23_1[1] = {
+static const arc arcs_23_1[1] = {
{0, 1},
};
static state states_23[2] = {
{1, arcs_23_0},
{1, arcs_23_1},
};
-static const arc arcs_24_0[1] = {
- {18, 1},
+static const arc arcs_24_0[1] = {
+ {18, 1},
};
-static const arc arcs_24_1[1] = {
+static const arc arcs_24_1[1] = {
{0, 1},
};
static state states_24[2] = {
{1, arcs_24_0},
{1, arcs_24_1},
};
-static const arc arcs_25_0[1] = {
- {31, 1},
+static const arc arcs_25_0[1] = {
+ {31, 1},
};
-static const arc arcs_25_1[2] = {
- {80, 2},
+static const arc arcs_25_1[2] = {
+ {80, 2},
{0, 1},
};
-static const arc arcs_25_2[1] = {
+static const arc arcs_25_2[1] = {
{0, 2},
};
static state states_25[3] = {
@@ -855,31 +855,31 @@ static state states_25[3] = {
{2, arcs_25_1},
{1, arcs_25_2},
};
-static const arc arcs_26_0[1] = {
- {83, 1},
+static const arc arcs_26_0[1] = {
+ {83, 1},
};
-static const arc arcs_26_1[1] = {
+static const arc arcs_26_1[1] = {
{0, 1},
};
static state states_26[2] = {
{1, arcs_26_0},
{1, arcs_26_1},
};
-static const arc arcs_27_0[1] = {
- {30, 1},
+static const arc arcs_27_0[1] = {
+ {30, 1},
};
-static const arc arcs_27_1[2] = {
- {58, 2},
+static const arc arcs_27_1[2] = {
+ {58, 2},
{0, 1},
};
-static const arc arcs_27_2[2] = {
- {22, 3},
+static const arc arcs_27_2[2] = {
+ {22, 3},
{0, 2},
};
-static const arc arcs_27_3[1] = {
- {58, 4},
+static const arc arcs_27_3[1] = {
+ {58, 4},
};
-static const arc arcs_27_4[1] = {
+static const arc arcs_27_4[1] = {
{0, 4},
};
static state states_27[5] = {
@@ -889,24 +889,24 @@ static state states_27[5] = {
{1, arcs_27_3},
{1, arcs_27_4},
};
-static const arc arcs_28_0[2] = {
- {104, 1},
- {105, 1},
+static const arc arcs_28_0[2] = {
+ {104, 1},
+ {105, 1},
};
-static const arc arcs_28_1[1] = {
+static const arc arcs_28_1[1] = {
{0, 1},
};
static state states_28[2] = {
{2, arcs_28_0},
{1, arcs_28_1},
};
-static const arc arcs_29_0[1] = {
- {25, 1},
+static const arc arcs_29_0[1] = {
+ {25, 1},
};
-static const arc arcs_29_1[1] = {
- {106, 2},
+static const arc arcs_29_1[1] = {
+ {106, 2},
};
-static const arc arcs_29_2[1] = {
+static const arc arcs_29_2[1] = {
{0, 2},
};
static state states_29[3] = {
@@ -914,36 +914,36 @@ static state states_29[3] = {
{1, arcs_29_1},
{1, arcs_29_2},
};
-static const arc arcs_30_0[1] = {
- {22, 1},
+static const arc arcs_30_0[1] = {
+ {22, 1},
};
-static const arc arcs_30_1[3] = {
- {107, 2},
- {9, 2},
- {108, 3},
+static const arc arcs_30_1[3] = {
+ {107, 2},
+ {9, 2},
+ {108, 3},
};
-static const arc arcs_30_2[4] = {
- {107, 2},
- {9, 2},
- {25, 4},
- {108, 3},
+static const arc arcs_30_2[4] = {
+ {107, 2},
+ {9, 2},
+ {25, 4},
+ {108, 3},
};
-static const arc arcs_30_3[1] = {
- {25, 4},
+static const arc arcs_30_3[1] = {
+ {25, 4},
};
-static const arc arcs_30_4[3] = {
- {5, 5},
- {6, 6},
- {109, 6},
+static const arc arcs_30_4[3] = {
+ {5, 5},
+ {6, 6},
+ {109, 6},
};
-static const arc arcs_30_5[1] = {
- {109, 7},
+static const arc arcs_30_5[1] = {
+ {109, 7},
};
-static const arc arcs_30_6[1] = {
- {0, 6},
+static const arc arcs_30_6[1] = {
+ {0, 6},
};
-static const arc arcs_30_7[1] = {
- {61, 6},
+static const arc arcs_30_7[1] = {
+ {61, 6},
};
static state states_30[8] = {
{1, arcs_30_0},
@@ -955,17 +955,17 @@ static state states_30[8] = {
{1, arcs_30_6},
{1, arcs_30_7},
};
-static const arc arcs_31_0[1] = {
- {40, 1},
+static const arc arcs_31_0[1] = {
+ {40, 1},
};
-static const arc arcs_31_1[2] = {
- {111, 2},
+static const arc arcs_31_1[2] = {
+ {111, 2},
{0, 1},
};
-static const arc arcs_31_2[1] = {
- {40, 3},
+static const arc arcs_31_2[1] = {
+ {40, 3},
};
-static const arc arcs_31_3[1] = {
+static const arc arcs_31_3[1] = {
{0, 3},
};
static state states_31[4] = {
@@ -974,17 +974,17 @@ static state states_31[4] = {
{1, arcs_31_2},
{1, arcs_31_3},
};
-static const arc arcs_32_0[1] = {
- {108, 1},
+static const arc arcs_32_0[1] = {
+ {108, 1},
};
-static const arc arcs_32_1[2] = {
- {111, 2},
+static const arc arcs_32_1[2] = {
+ {111, 2},
{0, 1},
};
-static const arc arcs_32_2[1] = {
- {40, 3},
+static const arc arcs_32_2[1] = {
+ {40, 3},
};
-static const arc arcs_32_3[1] = {
+static const arc arcs_32_3[1] = {
{0, 3},
};
static state states_32[4] = {
@@ -993,15 +993,15 @@ static state states_32[4] = {
{1, arcs_32_2},
{1, arcs_32_3},
};
-static const arc arcs_33_0[1] = {
- {110, 1},
+static const arc arcs_33_0[1] = {
+ {110, 1},
};
-static const arc arcs_33_1[2] = {
- {65, 2},
+static const arc arcs_33_1[2] = {
+ {65, 2},
{0, 1},
};
-static const arc arcs_33_2[2] = {
- {110, 1},
+static const arc arcs_33_2[2] = {
+ {110, 1},
{0, 2},
};
static state states_33[3] = {
@@ -1009,36 +1009,36 @@ static state states_33[3] = {
{2, arcs_33_1},
{2, arcs_33_2},
};
-static const arc arcs_34_0[1] = {
- {112, 1},
+static const arc arcs_34_0[1] = {
+ {112, 1},
};
-static const arc arcs_34_1[2] = {
- {65, 0},
+static const arc arcs_34_1[2] = {
+ {65, 0},
{0, 1},
};
static state states_34[2] = {
{1, arcs_34_0},
{2, arcs_34_1},
};
-static const arc arcs_35_0[1] = {
- {40, 1},
+static const arc arcs_35_0[1] = {
+ {40, 1},
};
-static const arc arcs_35_1[2] = {
- {107, 0},
+static const arc arcs_35_1[2] = {
+ {107, 0},
{0, 1},
};
static state states_35[2] = {
{1, arcs_35_0},
{2, arcs_35_1},
};
-static const arc arcs_36_0[1] = {
- {23, 1},
+static const arc arcs_36_0[1] = {
+ {23, 1},
};
-static const arc arcs_36_1[1] = {
- {40, 2},
+static const arc arcs_36_1[1] = {
+ {40, 2},
};
-static const arc arcs_36_2[2] = {
- {65, 1},
+static const arc arcs_36_2[2] = {
+ {65, 1},
{0, 2},
};
static state states_36[3] = {
@@ -1046,14 +1046,14 @@ static state states_36[3] = {
{1, arcs_36_1},
{2, arcs_36_2},
};
-static const arc arcs_37_0[1] = {
- {27, 1},
+static const arc arcs_37_0[1] = {
+ {27, 1},
};
-static const arc arcs_37_1[1] = {
- {40, 2},
+static const arc arcs_37_1[1] = {
+ {40, 2},
};
-static const arc arcs_37_2[2] = {
- {65, 1},
+static const arc arcs_37_2[2] = {
+ {65, 1},
{0, 2},
};
static state states_37[3] = {
@@ -1061,20 +1061,20 @@ static state states_37[3] = {
{1, arcs_37_1},
{2, arcs_37_2},
};
-static const arc arcs_38_0[1] = {
- {15, 1},
+static const arc arcs_38_0[1] = {
+ {15, 1},
};
-static const arc arcs_38_1[1] = {
- {58, 2},
+static const arc arcs_38_1[1] = {
+ {58, 2},
};
-static const arc arcs_38_2[2] = {
- {65, 3},
+static const arc arcs_38_2[2] = {
+ {65, 3},
{0, 2},
};
-static const arc arcs_38_3[1] = {
- {58, 4},
+static const arc arcs_38_3[1] = {
+ {58, 4},
};
-static const arc arcs_38_4[1] = {
+static const arc arcs_38_4[1] = {
{0, 4},
};
static state states_38[5] = {
@@ -1084,33 +1084,33 @@ static state states_38[5] = {
{1, arcs_38_3},
{1, arcs_38_4},
};
-static const arc arcs_39_0[9] = {
- {113, 1},
- {53, 1},
- {51, 1},
- {114, 1},
- {54, 1},
- {115, 1},
- {116, 1},
- {117, 1},
- {118, 1},
-};
-static const arc arcs_39_1[1] = {
+static const arc arcs_39_0[9] = {
+ {113, 1},
+ {53, 1},
+ {51, 1},
+ {114, 1},
+ {54, 1},
+ {115, 1},
+ {116, 1},
+ {117, 1},
+ {118, 1},
+};
+static const arc arcs_39_1[1] = {
{0, 1},
};
static state states_39[2] = {
{9, arcs_39_0},
{1, arcs_39_1},
};
-static const arc arcs_40_0[1] = {
- {38, 1},
+static const arc arcs_40_0[1] = {
+ {38, 1},
};
-static const arc arcs_40_1[3] = {
- {114, 2},
- {54, 2},
- {118, 2},
+static const arc arcs_40_1[3] = {
+ {114, 2},
+ {54, 2},
+ {118, 2},
};
-static const arc arcs_40_2[1] = {
+static const arc arcs_40_2[1] = {
{0, 2},
};
static state states_40[3] = {
@@ -1118,30 +1118,30 @@ static state states_40[3] = {
{3, arcs_40_1},
{1, arcs_40_2},
};
-static const arc arcs_41_0[1] = {
- {24, 1},
+static const arc arcs_41_0[1] = {
+ {24, 1},
};
-static const arc arcs_41_1[1] = {
- {49, 2},
+static const arc arcs_41_1[1] = {
+ {49, 2},
};
-static const arc arcs_41_2[1] = {
- {57, 3},
+static const arc arcs_41_2[1] = {
+ {57, 3},
};
-static const arc arcs_41_3[1] = {
- {119, 4},
+static const arc arcs_41_3[1] = {
+ {119, 4},
};
-static const arc arcs_41_4[3] = {
- {120, 1},
- {121, 5},
+static const arc arcs_41_4[3] = {
+ {120, 1},
+ {121, 5},
{0, 4},
};
-static const arc arcs_41_5[1] = {
- {57, 6},
+static const arc arcs_41_5[1] = {
+ {57, 6},
};
-static const arc arcs_41_6[1] = {
- {119, 7},
+static const arc arcs_41_6[1] = {
+ {119, 7},
};
-static const arc arcs_41_7[1] = {
+static const arc arcs_41_7[1] = {
{0, 7},
};
static state states_41[8] = {
@@ -1154,29 +1154,29 @@ static state states_41[8] = {
{1, arcs_41_6},
{1, arcs_41_7},
};
-static const arc arcs_42_0[1] = {
- {33, 1},
+static const arc arcs_42_0[1] = {
+ {33, 1},
};
-static const arc arcs_42_1[1] = {
- {49, 2},
+static const arc arcs_42_1[1] = {
+ {49, 2},
};
-static const arc arcs_42_2[1] = {
- {57, 3},
+static const arc arcs_42_2[1] = {
+ {57, 3},
};
-static const arc arcs_42_3[1] = {
- {119, 4},
+static const arc arcs_42_3[1] = {
+ {119, 4},
};
-static const arc arcs_42_4[2] = {
- {121, 5},
+static const arc arcs_42_4[2] = {
+ {121, 5},
{0, 4},
};
-static const arc arcs_42_5[1] = {
- {57, 6},
+static const arc arcs_42_5[1] = {
+ {57, 6},
};
-static const arc arcs_42_6[1] = {
- {119, 7},
+static const arc arcs_42_6[1] = {
+ {119, 7},
};
-static const arc arcs_42_7[1] = {
+static const arc arcs_42_7[1] = {
{0, 7},
};
static state states_42[8] = {
@@ -1189,96 +1189,96 @@ static state states_42[8] = {
{1, arcs_42_6},
{1, arcs_42_7},
};
-static const arc arcs_43_0[1] = {
- {21, 1},
+static const arc arcs_43_0[1] = {
+ {21, 1},
};
-static const arc arcs_43_1[1] = {
- {98, 2},
+static const arc arcs_43_1[1] = {
+ {98, 2},
};
-static const arc arcs_43_2[1] = {
- {122, 3},
+static const arc arcs_43_2[1] = {
+ {122, 3},
};
-static const arc arcs_43_3[1] = {
- {47, 4},
+static const arc arcs_43_3[1] = {
+ {47, 4},
};
-static const arc arcs_43_4[1] = {
- {57, 5},
+static const arc arcs_43_4[1] = {
+ {57, 5},
};
-static const arc arcs_43_5[2] = {
- {59, 6},
- {119, 7},
+static const arc arcs_43_5[2] = {
+ {59, 6},
+ {119, 7},
};
-static const arc arcs_43_6[1] = {
- {119, 7},
+static const arc arcs_43_6[1] = {
+ {119, 7},
};
-static const arc arcs_43_7[2] = {
- {121, 8},
- {0, 7},
+static const arc arcs_43_7[2] = {
+ {121, 8},
+ {0, 7},
};
-static const arc arcs_43_8[1] = {
- {57, 9},
+static const arc arcs_43_8[1] = {
+ {57, 9},
};
-static const arc arcs_43_9[1] = {
- {119, 10},
+static const arc arcs_43_9[1] = {
+ {119, 10},
};
-static const arc arcs_43_10[1] = {
- {0, 10},
-};
-static state states_43[11] = {
+static const arc arcs_43_10[1] = {
+ {0, 10},
+};
+static state states_43[11] = {
{1, arcs_43_0},
{1, arcs_43_1},
{1, arcs_43_2},
{1, arcs_43_3},
{1, arcs_43_4},
- {2, arcs_43_5},
- {1, arcs_43_6},
- {2, arcs_43_7},
+ {2, arcs_43_5},
+ {1, arcs_43_6},
+ {2, arcs_43_7},
{1, arcs_43_8},
{1, arcs_43_9},
- {1, arcs_43_10},
+ {1, arcs_43_10},
};
-static const arc arcs_44_0[1] = {
- {32, 1},
+static const arc arcs_44_0[1] = {
+ {32, 1},
};
-static const arc arcs_44_1[1] = {
- {57, 2},
+static const arc arcs_44_1[1] = {
+ {57, 2},
};
-static const arc arcs_44_2[1] = {
- {119, 3},
+static const arc arcs_44_2[1] = {
+ {119, 3},
};
-static const arc arcs_44_3[2] = {
- {123, 4},
- {124, 5},
+static const arc arcs_44_3[2] = {
+ {123, 4},
+ {124, 5},
};
-static const arc arcs_44_4[1] = {
- {57, 6},
+static const arc arcs_44_4[1] = {
+ {57, 6},
};
-static const arc arcs_44_5[1] = {
- {57, 7},
+static const arc arcs_44_5[1] = {
+ {57, 7},
};
-static const arc arcs_44_6[1] = {
- {119, 8},
+static const arc arcs_44_6[1] = {
+ {119, 8},
};
-static const arc arcs_44_7[1] = {
- {119, 9},
+static const arc arcs_44_7[1] = {
+ {119, 9},
};
-static const arc arcs_44_8[1] = {
+static const arc arcs_44_8[1] = {
{0, 8},
};
-static const arc arcs_44_9[4] = {
- {121, 10},
- {123, 4},
- {124, 5},
+static const arc arcs_44_9[4] = {
+ {121, 10},
+ {123, 4},
+ {124, 5},
{0, 9},
};
-static const arc arcs_44_10[1] = {
- {57, 11},
+static const arc arcs_44_10[1] = {
+ {57, 11},
};
-static const arc arcs_44_11[1] = {
- {119, 12},
+static const arc arcs_44_11[1] = {
+ {119, 12},
};
-static const arc arcs_44_12[2] = {
- {123, 4},
+static const arc arcs_44_12[2] = {
+ {123, 4},
{0, 12},
};
static state states_44[13] = {
@@ -1290,51 +1290,51 @@ static state states_44[13] = {
{1, arcs_44_5},
{1, arcs_44_6},
{1, arcs_44_7},
- {1, arcs_44_8},
- {4, arcs_44_9},
+ {1, arcs_44_8},
+ {4, arcs_44_9},
{1, arcs_44_10},
{1, arcs_44_11},
{2, arcs_44_12},
};
-static const arc arcs_45_0[1] = {
- {34, 1},
+static const arc arcs_45_0[1] = {
+ {34, 1},
};
-static const arc arcs_45_1[1] = {
- {125, 2},
+static const arc arcs_45_1[1] = {
+ {125, 2},
};
-static const arc arcs_45_2[2] = {
- {65, 1},
- {57, 3},
+static const arc arcs_45_2[2] = {
+ {65, 1},
+ {57, 3},
};
-static const arc arcs_45_3[2] = {
- {59, 4},
- {119, 5},
+static const arc arcs_45_3[2] = {
+ {59, 4},
+ {119, 5},
};
-static const arc arcs_45_4[1] = {
- {119, 5},
+static const arc arcs_45_4[1] = {
+ {119, 5},
+};
+static const arc arcs_45_5[1] = {
+ {0, 5},
};
-static const arc arcs_45_5[1] = {
- {0, 5},
-};
-static state states_45[6] = {
+static state states_45[6] = {
{1, arcs_45_0},
{1, arcs_45_1},
{2, arcs_45_2},
- {2, arcs_45_3},
+ {2, arcs_45_3},
{1, arcs_45_4},
- {1, arcs_45_5},
+ {1, arcs_45_5},
};
-static const arc arcs_46_0[1] = {
- {58, 1},
+static const arc arcs_46_0[1] = {
+ {58, 1},
};
-static const arc arcs_46_1[2] = {
- {111, 2},
+static const arc arcs_46_1[2] = {
+ {111, 2},
{0, 1},
};
-static const arc arcs_46_2[1] = {
- {126, 3},
+static const arc arcs_46_2[1] = {
+ {126, 3},
};
-static const arc arcs_46_3[1] = {
+static const arc arcs_46_3[1] = {
{0, 3},
};
static state states_46[4] = {
@@ -1343,21 +1343,21 @@ static state states_46[4] = {
{1, arcs_46_2},
{1, arcs_46_3},
};
-static const arc arcs_47_0[1] = {
- {127, 1},
+static const arc arcs_47_0[1] = {
+ {127, 1},
};
-static const arc arcs_47_1[2] = {
- {58, 2},
+static const arc arcs_47_1[2] = {
+ {58, 2},
{0, 1},
};
-static const arc arcs_47_2[2] = {
- {111, 3},
+static const arc arcs_47_2[2] = {
+ {111, 3},
{0, 2},
};
-static const arc arcs_47_3[1] = {
- {40, 4},
+static const arc arcs_47_3[1] = {
+ {40, 4},
};
-static const arc arcs_47_4[1] = {
+static const arc arcs_47_4[1] = {
{0, 4},
};
static state states_47[5] = {
@@ -1367,22 +1367,22 @@ static state states_47[5] = {
{1, arcs_47_3},
{1, arcs_47_4},
};
-static const arc arcs_48_0[2] = {
- {2, 1},
- {4, 2},
+static const arc arcs_48_0[2] = {
+ {2, 1},
+ {4, 2},
};
-static const arc arcs_48_1[1] = {
- {128, 3},
+static const arc arcs_48_1[1] = {
+ {128, 3},
};
-static const arc arcs_48_2[1] = {
- {0, 2},
+static const arc arcs_48_2[1] = {
+ {0, 2},
};
-static const arc arcs_48_3[1] = {
- {45, 4},
+static const arc arcs_48_3[1] = {
+ {45, 4},
};
-static const arc arcs_48_4[2] = {
- {129, 2},
- {45, 4},
+static const arc arcs_48_4[2] = {
+ {129, 2},
+ {45, 4},
};
static state states_48[5] = {
{2, arcs_48_0},
@@ -1391,78 +1391,78 @@ static state states_48[5] = {
{1, arcs_48_3},
{2, arcs_48_4},
};
-static const arc arcs_49_0[1] = {
- {58, 1},
+static const arc arcs_49_0[1] = {
+ {58, 1},
};
-static const arc arcs_49_1[2] = {
- {130, 2},
+static const arc arcs_49_1[2] = {
+ {130, 2},
{0, 1},
};
-static const arc arcs_49_2[1] = {
- {58, 3},
+static const arc arcs_49_2[1] = {
+ {58, 3},
};
-static const arc arcs_49_3[1] = {
- {0, 3},
+static const arc arcs_49_3[1] = {
+ {0, 3},
};
-static state states_49[4] = {
- {1, arcs_49_0},
+static state states_49[4] = {
+ {1, arcs_49_0},
{2, arcs_49_1},
{1, arcs_49_2},
{1, arcs_49_3},
};
-static const arc arcs_50_0[2] = {
- {131, 1},
- {132, 2},
+static const arc arcs_50_0[2] = {
+ {131, 1},
+ {132, 2},
};
-static const arc arcs_50_1[1] = {
+static const arc arcs_50_1[1] = {
{0, 1},
};
-static const arc arcs_50_2[2] = {
- {24, 3},
- {0, 2},
+static const arc arcs_50_2[2] = {
+ {24, 3},
+ {0, 2},
+};
+static const arc arcs_50_3[1] = {
+ {132, 4},
};
-static const arc arcs_50_3[1] = {
- {132, 4},
+static const arc arcs_50_4[1] = {
+ {121, 5},
};
-static const arc arcs_50_4[1] = {
- {121, 5},
+static const arc arcs_50_5[1] = {
+ {58, 1},
};
-static const arc arcs_50_5[1] = {
- {58, 1},
+static state states_50[6] = {
+ {2, arcs_50_0},
+ {1, arcs_50_1},
+ {2, arcs_50_2},
+ {1, arcs_50_3},
+ {1, arcs_50_4},
+ {1, arcs_50_5},
};
-static state states_50[6] = {
- {2, arcs_50_0},
- {1, arcs_50_1},
- {2, arcs_50_2},
- {1, arcs_50_3},
- {1, arcs_50_4},
- {1, arcs_50_5},
+static const arc arcs_51_0[2] = {
+ {134, 1},
+ {132, 1},
};
-static const arc arcs_51_0[2] = {
- {134, 1},
- {132, 1},
+static const arc arcs_51_1[1] = {
+ {0, 1},
};
-static const arc arcs_51_1[1] = {
- {0, 1},
+static state states_51[2] = {
+ {2, arcs_51_0},
+ {1, arcs_51_1},
};
-static state states_51[2] = {
- {2, arcs_51_0},
- {1, arcs_51_1},
+static const arc arcs_52_0[1] = {
+ {26, 1},
};
-static const arc arcs_52_0[1] = {
- {26, 1},
+static const arc arcs_52_1[2] = {
+ {57, 2},
+ {68, 3},
};
-static const arc arcs_52_1[2] = {
- {57, 2},
- {68, 3},
+static const arc arcs_52_2[1] = {
+ {58, 4},
};
-static const arc arcs_52_2[1] = {
- {58, 4},
+static const arc arcs_52_3[1] = {
+ {57, 2},
};
-static const arc arcs_52_3[1] = {
- {57, 2},
-};
-static const arc arcs_52_4[1] = {
+static const arc arcs_52_4[1] = {
{0, 4},
};
static state states_52[5] = {
@@ -1472,1217 +1472,1217 @@ static state states_52[5] = {
{1, arcs_52_3},
{1, arcs_52_4},
};
-static const arc arcs_53_0[1] = {
- {26, 1},
-};
-static const arc arcs_53_1[2] = {
- {57, 2},
- {68, 3},
-};
-static const arc arcs_53_2[1] = {
- {133, 4},
-};
-static const arc arcs_53_3[1] = {
- {57, 2},
-};
-static const arc arcs_53_4[1] = {
- {0, 4},
-};
-static state states_53[5] = {
+static const arc arcs_53_0[1] = {
+ {26, 1},
+};
+static const arc arcs_53_1[2] = {
+ {57, 2},
+ {68, 3},
+};
+static const arc arcs_53_2[1] = {
+ {133, 4},
+};
+static const arc arcs_53_3[1] = {
+ {57, 2},
+};
+static const arc arcs_53_4[1] = {
+ {0, 4},
+};
+static state states_53[5] = {
{1, arcs_53_0},
{2, arcs_53_1},
- {1, arcs_53_2},
- {1, arcs_53_3},
- {1, arcs_53_4},
+ {1, arcs_53_2},
+ {1, arcs_53_3},
+ {1, arcs_53_4},
};
-static const arc arcs_54_0[1] = {
- {135, 1},
+static const arc arcs_54_0[1] = {
+ {135, 1},
};
-static const arc arcs_54_1[2] = {
- {136, 0},
+static const arc arcs_54_1[2] = {
+ {136, 0},
{0, 1},
};
static state states_54[2] = {
{1, arcs_54_0},
{2, arcs_54_1},
};
-static const arc arcs_55_0[1] = {
- {137, 1},
+static const arc arcs_55_0[1] = {
+ {137, 1},
};
-static const arc arcs_55_1[2] = {
- {138, 0},
- {0, 1},
+static const arc arcs_55_1[2] = {
+ {138, 0},
+ {0, 1},
};
-static state states_55[2] = {
- {1, arcs_55_0},
- {2, arcs_55_1},
+static state states_55[2] = {
+ {1, arcs_55_0},
+ {2, arcs_55_1},
};
-static const arc arcs_56_0[2] = {
- {28, 1},
- {139, 2},
+static const arc arcs_56_0[2] = {
+ {28, 1},
+ {139, 2},
};
-static const arc arcs_56_1[1] = {
- {137, 2},
+static const arc arcs_56_1[1] = {
+ {137, 2},
};
-static const arc arcs_56_2[1] = {
- {0, 2},
+static const arc arcs_56_2[1] = {
+ {0, 2},
+};
+static state states_56[3] = {
+ {2, arcs_56_0},
+ {1, arcs_56_1},
+ {1, arcs_56_2},
};
-static state states_56[3] = {
- {2, arcs_56_0},
- {1, arcs_56_1},
- {1, arcs_56_2},
+static const arc arcs_57_0[1] = {
+ {126, 1},
};
-static const arc arcs_57_0[1] = {
- {126, 1},
+static const arc arcs_57_1[2] = {
+ {140, 0},
+ {0, 1},
};
-static const arc arcs_57_1[2] = {
- {140, 0},
+static state states_57[2] = {
+ {1, arcs_57_0},
+ {2, arcs_57_1},
+};
+static const arc arcs_58_0[10] = {
+ {141, 1},
+ {142, 1},
+ {143, 1},
+ {141, 1},
+ {144, 1},
+ {145, 1},
+ {146, 1},
+ {122, 1},
+ {147, 2},
+ {28, 3},
+};
+static const arc arcs_58_1[1] = {
{0, 1},
};
-static state states_57[2] = {
- {1, arcs_57_0},
- {2, arcs_57_1},
-};
-static const arc arcs_58_0[10] = {
- {141, 1},
- {142, 1},
- {143, 1},
- {141, 1},
- {144, 1},
- {145, 1},
- {146, 1},
- {122, 1},
- {147, 2},
- {28, 3},
-};
-static const arc arcs_58_1[1] = {
- {0, 1},
-};
-static const arc arcs_58_2[2] = {
- {28, 1},
- {0, 2},
-};
-static const arc arcs_58_3[1] = {
- {122, 1},
-};
-static state states_58[4] = {
- {10, arcs_58_0},
+static const arc arcs_58_2[2] = {
+ {28, 1},
+ {0, 2},
+};
+static const arc arcs_58_3[1] = {
+ {122, 1},
+};
+static state states_58[4] = {
+ {10, arcs_58_0},
{1, arcs_58_1},
- {2, arcs_58_2},
- {1, arcs_58_3},
+ {2, arcs_58_2},
+ {1, arcs_58_3},
};
-static const arc arcs_59_0[1] = {
- {6, 1},
+static const arc arcs_59_0[1] = {
+ {6, 1},
};
-static const arc arcs_59_1[1] = {
- {126, 2},
+static const arc arcs_59_1[1] = {
+ {126, 2},
};
-static const arc arcs_59_2[1] = {
- {0, 2},
-};
-static state states_59[3] = {
+static const arc arcs_59_2[1] = {
+ {0, 2},
+};
+static state states_59[3] = {
{1, arcs_59_0},
- {1, arcs_59_1},
- {1, arcs_59_2},
+ {1, arcs_59_1},
+ {1, arcs_59_2},
};
-static const arc arcs_60_0[1] = {
- {148, 1},
+static const arc arcs_60_0[1] = {
+ {148, 1},
};
-static const arc arcs_60_1[2] = {
- {149, 0},
+static const arc arcs_60_1[2] = {
+ {149, 0},
{0, 1},
};
static state states_60[2] = {
{1, arcs_60_0},
{2, arcs_60_1},
};
-static const arc arcs_61_0[1] = {
- {150, 1},
+static const arc arcs_61_0[1] = {
+ {150, 1},
};
-static const arc arcs_61_1[2] = {
- {151, 0},
+static const arc arcs_61_1[2] = {
+ {151, 0},
{0, 1},
};
static state states_61[2] = {
{1, arcs_61_0},
{2, arcs_61_1},
};
-static const arc arcs_62_0[1] = {
- {152, 1},
+static const arc arcs_62_0[1] = {
+ {152, 1},
};
-static const arc arcs_62_1[2] = {
- {153, 0},
+static const arc arcs_62_1[2] = {
+ {153, 0},
{0, 1},
};
static state states_62[2] = {
{1, arcs_62_0},
- {2, arcs_62_1},
+ {2, arcs_62_1},
};
-static const arc arcs_63_0[1] = {
- {154, 1},
+static const arc arcs_63_0[1] = {
+ {154, 1},
};
-static const arc arcs_63_1[3] = {
- {155, 0},
- {156, 0},
+static const arc arcs_63_1[3] = {
+ {155, 0},
+ {156, 0},
{0, 1},
};
static state states_63[2] = {
{1, arcs_63_0},
{3, arcs_63_1},
};
-static const arc arcs_64_0[1] = {
- {157, 1},
+static const arc arcs_64_0[1] = {
+ {157, 1},
};
-static const arc arcs_64_1[3] = {
- {7, 0},
- {8, 0},
+static const arc arcs_64_1[3] = {
+ {7, 0},
+ {8, 0},
{0, 1},
};
static state states_64[2] = {
{1, arcs_64_0},
- {3, arcs_64_1},
-};
-static const arc arcs_65_0[1] = {
- {158, 1},
-};
-static const arc arcs_65_1[6] = {
- {159, 0},
- {6, 0},
- {67, 0},
- {160, 0},
- {10, 0},
- {0, 1},
-};
-static state states_65[2] = {
- {1, arcs_65_0},
- {6, arcs_65_1},
-};
-static const arc arcs_66_0[4] = {
- {7, 1},
- {8, 1},
- {37, 1},
- {161, 2},
-};
-static const arc arcs_66_1[1] = {
- {158, 2},
-};
-static const arc arcs_66_2[1] = {
+ {3, arcs_64_1},
+};
+static const arc arcs_65_0[1] = {
+ {158, 1},
+};
+static const arc arcs_65_1[6] = {
+ {159, 0},
+ {6, 0},
+ {67, 0},
+ {160, 0},
+ {10, 0},
+ {0, 1},
+};
+static state states_65[2] = {
+ {1, arcs_65_0},
+ {6, arcs_65_1},
+};
+static const arc arcs_66_0[4] = {
+ {7, 1},
+ {8, 1},
+ {37, 1},
+ {161, 2},
+};
+static const arc arcs_66_1[1] = {
+ {158, 2},
+};
+static const arc arcs_66_2[1] = {
{0, 2},
};
-static state states_66[3] = {
- {4, arcs_66_0},
- {1, arcs_66_1},
- {1, arcs_66_2},
+static state states_66[3] = {
+ {4, arcs_66_0},
+ {1, arcs_66_1},
+ {1, arcs_66_2},
};
-static const arc arcs_67_0[1] = {
- {162, 1},
+static const arc arcs_67_0[1] = {
+ {162, 1},
};
-static const arc arcs_67_1[2] = {
- {63, 2},
+static const arc arcs_67_1[2] = {
+ {63, 2},
{0, 1},
};
-static const arc arcs_67_2[1] = {
- {158, 3},
+static const arc arcs_67_2[1] = {
+ {158, 3},
};
-static const arc arcs_67_3[1] = {
+static const arc arcs_67_3[1] = {
{0, 3},
};
-static state states_67[4] = {
- {1, arcs_67_0},
- {2, arcs_67_1},
- {1, arcs_67_2},
- {1, arcs_67_3},
+static state states_67[4] = {
+ {1, arcs_67_0},
+ {2, arcs_67_1},
+ {1, arcs_67_2},
+ {1, arcs_67_3},
+};
+static const arc arcs_68_0[2] = {
+ {39, 1},
+ {163, 2},
};
-static const arc arcs_68_0[2] = {
- {39, 1},
- {163, 2},
+static const arc arcs_68_1[1] = {
+ {163, 2},
};
-static const arc arcs_68_1[1] = {
- {163, 2},
+static const arc arcs_68_2[2] = {
+ {164, 2},
+ {0, 2},
};
-static const arc arcs_68_2[2] = {
- {164, 2},
+static state states_68[3] = {
+ {2, arcs_68_0},
+ {1, arcs_68_1},
+ {2, arcs_68_2},
+};
+static const arc arcs_69_0[10] = {
+ {5, 1},
+ {9, 2},
+ {11, 2},
+ {12, 2},
+ {13, 2},
+ {14, 3},
+ {36, 4},
+ {40, 2},
+ {41, 2},
+ {42, 5},
+};
+static const arc arcs_69_1[3] = {
+ {61, 2},
+ {165, 6},
+ {83, 6},
+};
+static const arc arcs_69_2[1] = {
{0, 2},
};
-static state states_68[3] = {
- {2, arcs_68_0},
- {1, arcs_68_1},
- {2, arcs_68_2},
-};
-static const arc arcs_69_0[10] = {
- {5, 1},
- {9, 2},
- {11, 2},
- {12, 2},
- {13, 2},
- {14, 3},
- {36, 4},
- {40, 2},
- {41, 2},
- {42, 5},
-};
-static const arc arcs_69_1[3] = {
- {61, 2},
- {165, 6},
- {83, 6},
-};
-static const arc arcs_69_2[1] = {
- {0, 2},
-};
-static const arc arcs_69_3[2] = {
- {166, 2},
- {165, 7},
-};
-static const arc arcs_69_4[2] = {
- {167, 2},
- {168, 8},
-};
-static const arc arcs_69_5[2] = {
- {42, 5},
+static const arc arcs_69_3[2] = {
+ {166, 2},
+ {165, 7},
+};
+static const arc arcs_69_4[2] = {
+ {167, 2},
+ {168, 8},
+};
+static const arc arcs_69_5[2] = {
+ {42, 5},
{0, 5},
};
-static const arc arcs_69_6[1] = {
- {61, 2},
-};
-static const arc arcs_69_7[1] = {
- {166, 2},
-};
-static const arc arcs_69_8[1] = {
- {167, 2},
-};
-static state states_69[9] = {
- {10, arcs_69_0},
- {3, arcs_69_1},
- {1, arcs_69_2},
- {2, arcs_69_3},
- {2, arcs_69_4},
- {2, arcs_69_5},
- {1, arcs_69_6},
- {1, arcs_69_7},
- {1, arcs_69_8},
-};
-static const arc arcs_70_0[2] = {
- {49, 1},
- {84, 1},
-};
-static const arc arcs_70_1[3] = {
- {65, 2},
- {169, 3},
+static const arc arcs_69_6[1] = {
+ {61, 2},
+};
+static const arc arcs_69_7[1] = {
+ {166, 2},
+};
+static const arc arcs_69_8[1] = {
+ {167, 2},
+};
+static state states_69[9] = {
+ {10, arcs_69_0},
+ {3, arcs_69_1},
+ {1, arcs_69_2},
+ {2, arcs_69_3},
+ {2, arcs_69_4},
+ {2, arcs_69_5},
+ {1, arcs_69_6},
+ {1, arcs_69_7},
+ {1, arcs_69_8},
+};
+static const arc arcs_70_0[2] = {
+ {49, 1},
+ {84, 1},
+};
+static const arc arcs_70_1[3] = {
+ {65, 2},
+ {169, 3},
{0, 1},
};
-static const arc arcs_70_2[3] = {
- {49, 4},
- {84, 4},
+static const arc arcs_70_2[3] = {
+ {49, 4},
+ {84, 4},
{0, 2},
};
-static const arc arcs_70_3[1] = {
+static const arc arcs_70_3[1] = {
{0, 3},
};
-static const arc arcs_70_4[2] = {
- {65, 2},
+static const arc arcs_70_4[2] = {
+ {65, 2},
{0, 4},
};
-static state states_70[5] = {
- {2, arcs_70_0},
- {3, arcs_70_1},
- {3, arcs_70_2},
- {1, arcs_70_3},
- {2, arcs_70_4},
+static state states_70[5] = {
+ {2, arcs_70_0},
+ {3, arcs_70_1},
+ {3, arcs_70_2},
+ {1, arcs_70_3},
+ {2, arcs_70_4},
};
-static const arc arcs_71_0[3] = {
- {5, 1},
- {107, 2},
- {14, 3},
+static const arc arcs_71_0[3] = {
+ {5, 1},
+ {107, 2},
+ {14, 3},
};
-static const arc arcs_71_1[2] = {
- {61, 4},
- {170, 5},
+static const arc arcs_71_1[2] = {
+ {61, 4},
+ {170, 5},
};
-static const arc arcs_71_2[1] = {
- {40, 4},
+static const arc arcs_71_2[1] = {
+ {40, 4},
};
-static const arc arcs_71_3[1] = {
- {171, 6},
+static const arc arcs_71_3[1] = {
+ {171, 6},
};
-static const arc arcs_71_4[1] = {
- {0, 4},
+static const arc arcs_71_4[1] = {
+ {0, 4},
};
-static const arc arcs_71_5[1] = {
- {61, 4},
+static const arc arcs_71_5[1] = {
+ {61, 4},
};
-static const arc arcs_71_6[1] = {
- {166, 4},
+static const arc arcs_71_6[1] = {
+ {166, 4},
};
-static state states_71[7] = {
- {3, arcs_71_0},
- {2, arcs_71_1},
- {1, arcs_71_2},
- {1, arcs_71_3},
- {1, arcs_71_4},
- {1, arcs_71_5},
- {1, arcs_71_6},
+static state states_71[7] = {
+ {3, arcs_71_0},
+ {2, arcs_71_1},
+ {1, arcs_71_2},
+ {1, arcs_71_3},
+ {1, arcs_71_4},
+ {1, arcs_71_5},
+ {1, arcs_71_6},
};
-static const arc arcs_72_0[1] = {
- {172, 1},
+static const arc arcs_72_0[1] = {
+ {172, 1},
};
-static const arc arcs_72_1[2] = {
- {65, 2},
+static const arc arcs_72_1[2] = {
+ {65, 2},
{0, 1},
};
-static const arc arcs_72_2[2] = {
- {172, 1},
+static const arc arcs_72_2[2] = {
+ {172, 1},
{0, 2},
};
-static state states_72[3] = {
- {1, arcs_72_0},
- {2, arcs_72_1},
- {2, arcs_72_2},
+static state states_72[3] = {
+ {1, arcs_72_0},
+ {2, arcs_72_1},
+ {2, arcs_72_2},
};
-static const arc arcs_73_0[2] = {
- {57, 1},
- {58, 2},
+static const arc arcs_73_0[2] = {
+ {57, 1},
+ {58, 2},
};
-static const arc arcs_73_1[3] = {
- {173, 3},
- {58, 4},
+static const arc arcs_73_1[3] = {
+ {173, 3},
+ {58, 4},
{0, 1},
};
-static const arc arcs_73_2[2] = {
- {57, 1},
+static const arc arcs_73_2[2] = {
+ {57, 1},
{0, 2},
};
-static const arc arcs_73_3[1] = {
+static const arc arcs_73_3[1] = {
{0, 3},
};
-static const arc arcs_73_4[2] = {
- {173, 3},
+static const arc arcs_73_4[2] = {
+ {173, 3},
{0, 4},
};
-static state states_73[5] = {
- {2, arcs_73_0},
- {3, arcs_73_1},
- {2, arcs_73_2},
- {1, arcs_73_3},
- {2, arcs_73_4},
+static state states_73[5] = {
+ {2, arcs_73_0},
+ {3, arcs_73_1},
+ {2, arcs_73_2},
+ {1, arcs_73_3},
+ {2, arcs_73_4},
};
-static const arc arcs_74_0[1] = {
- {57, 1},
+static const arc arcs_74_0[1] = {
+ {57, 1},
};
-static const arc arcs_74_1[2] = {
- {58, 2},
+static const arc arcs_74_1[2] = {
+ {58, 2},
{0, 1},
};
-static const arc arcs_74_2[1] = {
+static const arc arcs_74_2[1] = {
{0, 2},
};
-static state states_74[3] = {
- {1, arcs_74_0},
- {2, arcs_74_1},
- {1, arcs_74_2},
+static state states_74[3] = {
+ {1, arcs_74_0},
+ {2, arcs_74_1},
+ {1, arcs_74_2},
};
-static const arc arcs_75_0[2] = {
- {126, 1},
- {84, 1},
+static const arc arcs_75_0[2] = {
+ {126, 1},
+ {84, 1},
};
-static const arc arcs_75_1[2] = {
- {65, 2},
+static const arc arcs_75_1[2] = {
+ {65, 2},
{0, 1},
};
-static const arc arcs_75_2[3] = {
- {126, 1},
- {84, 1},
+static const arc arcs_75_2[3] = {
+ {126, 1},
+ {84, 1},
{0, 2},
};
-static state states_75[3] = {
- {2, arcs_75_0},
- {2, arcs_75_1},
- {3, arcs_75_2},
+static state states_75[3] = {
+ {2, arcs_75_0},
+ {2, arcs_75_1},
+ {3, arcs_75_2},
};
-static const arc arcs_76_0[1] = {
- {58, 1},
+static const arc arcs_76_0[1] = {
+ {58, 1},
};
-static const arc arcs_76_1[2] = {
- {65, 2},
+static const arc arcs_76_1[2] = {
+ {65, 2},
{0, 1},
};
-static const arc arcs_76_2[2] = {
- {58, 1},
+static const arc arcs_76_2[2] = {
+ {58, 1},
{0, 2},
};
-static state states_76[3] = {
- {1, arcs_76_0},
- {2, arcs_76_1},
- {2, arcs_76_2},
+static state states_76[3] = {
+ {1, arcs_76_0},
+ {2, arcs_76_1},
+ {2, arcs_76_2},
};
-static const arc arcs_77_0[3] = {
- {63, 1},
- {84, 2},
- {58, 3},
+static const arc arcs_77_0[3] = {
+ {63, 1},
+ {84, 2},
+ {58, 3},
};
-static const arc arcs_77_1[1] = {
- {126, 4},
+static const arc arcs_77_1[1] = {
+ {126, 4},
};
-static const arc arcs_77_2[3] = {
- {65, 5},
- {169, 6},
- {0, 2},
+static const arc arcs_77_2[3] = {
+ {65, 5},
+ {169, 6},
+ {0, 2},
};
-static const arc arcs_77_3[4] = {
- {65, 5},
- {57, 7},
- {169, 6},
+static const arc arcs_77_3[4] = {
+ {65, 5},
+ {57, 7},
+ {169, 6},
{0, 3},
};
-static const arc arcs_77_4[3] = {
- {65, 8},
- {169, 6},
- {0, 4},
+static const arc arcs_77_4[3] = {
+ {65, 8},
+ {169, 6},
+ {0, 4},
};
-static const arc arcs_77_5[3] = {
- {84, 9},
- {58, 9},
+static const arc arcs_77_5[3] = {
+ {84, 9},
+ {58, 9},
{0, 5},
};
-static const arc arcs_77_6[1] = {
+static const arc arcs_77_6[1] = {
{0, 6},
};
-static const arc arcs_77_7[1] = {
- {58, 4},
+static const arc arcs_77_7[1] = {
+ {58, 4},
};
-static const arc arcs_77_8[3] = {
- {63, 10},
- {58, 11},
+static const arc arcs_77_8[3] = {
+ {63, 10},
+ {58, 11},
{0, 8},
};
-static const arc arcs_77_9[2] = {
- {65, 5},
+static const arc arcs_77_9[2] = {
+ {65, 5},
{0, 9},
};
-static const arc arcs_77_10[1] = {
- {126, 12},
+static const arc arcs_77_10[1] = {
+ {126, 12},
};
-static const arc arcs_77_11[1] = {
- {57, 13},
+static const arc arcs_77_11[1] = {
+ {57, 13},
};
-static const arc arcs_77_12[2] = {
- {65, 8},
- {0, 12},
+static const arc arcs_77_12[2] = {
+ {65, 8},
+ {0, 12},
};
-static const arc arcs_77_13[1] = {
- {58, 12},
+static const arc arcs_77_13[1] = {
+ {58, 12},
+};
+static state states_77[14] = {
+ {3, arcs_77_0},
+ {1, arcs_77_1},
+ {3, arcs_77_2},
+ {4, arcs_77_3},
+ {3, arcs_77_4},
+ {3, arcs_77_5},
+ {1, arcs_77_6},
+ {1, arcs_77_7},
+ {3, arcs_77_8},
+ {2, arcs_77_9},
+ {1, arcs_77_10},
+ {1, arcs_77_11},
+ {2, arcs_77_12},
+ {1, arcs_77_13},
+};
+static const arc arcs_78_0[1] = {
+ {17, 1},
+};
+static const arc arcs_78_1[1] = {
+ {40, 2},
+};
+static const arc arcs_78_2[2] = {
+ {5, 3},
+ {57, 4},
+};
+static const arc arcs_78_3[2] = {
+ {61, 5},
+ {170, 6},
+};
+static const arc arcs_78_4[1] = {
+ {119, 7},
+};
+static const arc arcs_78_5[1] = {
+ {57, 4},
+};
+static const arc arcs_78_6[1] = {
+ {61, 5},
+};
+static const arc arcs_78_7[1] = {
+ {0, 7},
};
-static state states_77[14] = {
- {3, arcs_77_0},
- {1, arcs_77_1},
- {3, arcs_77_2},
- {4, arcs_77_3},
- {3, arcs_77_4},
- {3, arcs_77_5},
- {1, arcs_77_6},
- {1, arcs_77_7},
- {3, arcs_77_8},
- {2, arcs_77_9},
- {1, arcs_77_10},
- {1, arcs_77_11},
- {2, arcs_77_12},
- {1, arcs_77_13},
+static state states_78[8] = {
+ {1, arcs_78_0},
+ {1, arcs_78_1},
+ {2, arcs_78_2},
+ {2, arcs_78_3},
+ {1, arcs_78_4},
+ {1, arcs_78_5},
+ {1, arcs_78_6},
+ {1, arcs_78_7},
+};
+static const arc arcs_79_0[1] = {
+ {174, 1},
+};
+static const arc arcs_79_1[2] = {
+ {65, 2},
+ {0, 1},
};
-static const arc arcs_78_0[1] = {
- {17, 1},
+static const arc arcs_79_2[2] = {
+ {174, 1},
+ {0, 2},
};
-static const arc arcs_78_1[1] = {
- {40, 2},
+static state states_79[3] = {
+ {1, arcs_79_0},
+ {2, arcs_79_1},
+ {2, arcs_79_2},
};
-static const arc arcs_78_2[2] = {
- {5, 3},
- {57, 4},
+static const arc arcs_80_0[3] = {
+ {6, 1},
+ {63, 1},
+ {58, 2},
};
-static const arc arcs_78_3[2] = {
- {61, 5},
- {170, 6},
+static const arc arcs_80_1[1] = {
+ {58, 3},
};
-static const arc arcs_78_4[1] = {
- {119, 7},
+static const arc arcs_80_2[4] = {
+ {130, 1},
+ {66, 1},
+ {169, 3},
+ {0, 2},
};
-static const arc arcs_78_5[1] = {
- {57, 4},
+static const arc arcs_80_3[1] = {
+ {0, 3},
};
-static const arc arcs_78_6[1] = {
- {61, 5},
+static state states_80[4] = {
+ {3, arcs_80_0},
+ {1, arcs_80_1},
+ {4, arcs_80_2},
+ {1, arcs_80_3},
};
-static const arc arcs_78_7[1] = {
- {0, 7},
+static const arc arcs_81_0[2] = {
+ {169, 1},
+ {176, 1},
};
-static state states_78[8] = {
- {1, arcs_78_0},
- {1, arcs_78_1},
- {2, arcs_78_2},
- {2, arcs_78_3},
- {1, arcs_78_4},
- {1, arcs_78_5},
- {1, arcs_78_6},
- {1, arcs_78_7},
-};
-static const arc arcs_79_0[1] = {
- {174, 1},
-};
-static const arc arcs_79_1[2] = {
- {65, 2},
+static const arc arcs_81_1[1] = {
{0, 1},
};
-static const arc arcs_79_2[2] = {
- {174, 1},
+static state states_81[2] = {
+ {2, arcs_81_0},
+ {1, arcs_81_1},
+};
+static const arc arcs_82_0[1] = {
+ {21, 1},
+};
+static const arc arcs_82_1[1] = {
+ {98, 2},
+};
+static const arc arcs_82_2[1] = {
+ {122, 3},
+};
+static const arc arcs_82_3[1] = {
+ {132, 4},
+};
+static const arc arcs_82_4[2] = {
+ {175, 5},
+ {0, 4},
+};
+static const arc arcs_82_5[1] = {
+ {0, 5},
+};
+static state states_82[6] = {
+ {1, arcs_82_0},
+ {1, arcs_82_1},
+ {1, arcs_82_2},
+ {1, arcs_82_3},
+ {2, arcs_82_4},
+ {1, arcs_82_5},
+};
+static const arc arcs_83_0[2] = {
+ {38, 1},
+ {177, 2},
+};
+static const arc arcs_83_1[1] = {
+ {177, 2},
+};
+static const arc arcs_83_2[1] = {
{0, 2},
};
-static state states_79[3] = {
- {1, arcs_79_0},
- {2, arcs_79_1},
- {2, arcs_79_2},
+static state states_83[3] = {
+ {2, arcs_83_0},
+ {1, arcs_83_1},
+ {1, arcs_83_2},
};
-static const arc arcs_80_0[3] = {
- {6, 1},
- {63, 1},
- {58, 2},
+static const arc arcs_84_0[1] = {
+ {24, 1},
};
-static const arc arcs_80_1[1] = {
- {58, 3},
+static const arc arcs_84_1[1] = {
+ {133, 2},
};
-static const arc arcs_80_2[4] = {
- {130, 1},
- {66, 1},
- {169, 3},
- {0, 2},
+static const arc arcs_84_2[2] = {
+ {175, 3},
+ {0, 2},
};
-static const arc arcs_80_3[1] = {
+static const arc arcs_84_3[1] = {
{0, 3},
};
-static state states_80[4] = {
- {3, arcs_80_0},
- {1, arcs_80_1},
- {4, arcs_80_2},
- {1, arcs_80_3},
+static state states_84[4] = {
+ {1, arcs_84_0},
+ {1, arcs_84_1},
+ {2, arcs_84_2},
+ {1, arcs_84_3},
};
-static const arc arcs_81_0[2] = {
- {169, 1},
- {176, 1},
+static const arc arcs_85_0[1] = {
+ {40, 1},
};
-static const arc arcs_81_1[1] = {
+static const arc arcs_85_1[1] = {
{0, 1},
};
-static state states_81[2] = {
- {2, arcs_81_0},
- {1, arcs_81_1},
+static state states_85[2] = {
+ {1, arcs_85_0},
+ {1, arcs_85_1},
};
-static const arc arcs_82_0[1] = {
- {21, 1},
+static const arc arcs_86_0[1] = {
+ {35, 1},
};
-static const arc arcs_82_1[1] = {
- {98, 2},
+static const arc arcs_86_1[2] = {
+ {179, 2},
+ {0, 1},
};
-static const arc arcs_82_2[1] = {
- {122, 3},
+static const arc arcs_86_2[1] = {
+ {0, 2},
};
-static const arc arcs_82_3[1] = {
- {132, 4},
+static state states_86[3] = {
+ {1, arcs_86_0},
+ {2, arcs_86_1},
+ {1, arcs_86_2},
};
-static const arc arcs_82_4[2] = {
- {175, 5},
- {0, 4},
+static const arc arcs_87_0[2] = {
+ {22, 1},
+ {80, 2},
};
-static const arc arcs_82_5[1] = {
- {0, 5},
+static const arc arcs_87_1[1] = {
+ {58, 2},
};
-static state states_82[6] = {
- {1, arcs_82_0},
- {1, arcs_82_1},
- {1, arcs_82_2},
- {1, arcs_82_3},
- {2, arcs_82_4},
- {1, arcs_82_5},
+static const arc arcs_87_2[1] = {
+ {0, 2},
+};
+static state states_87[3] = {
+ {2, arcs_87_0},
+ {1, arcs_87_1},
+ {1, arcs_87_2},
};
-static const arc arcs_83_0[2] = {
- {38, 1},
- {177, 2},
+static const arc arcs_88_0[2] = {
+ {2, 1},
+ {4, 2},
};
-static const arc arcs_83_1[1] = {
- {177, 2},
+static const arc arcs_88_1[2] = {
+ {128, 3},
+ {59, 4},
};
-static const arc arcs_83_2[1] = {
+static const arc arcs_88_2[1] = {
{0, 2},
};
-static state states_83[3] = {
- {2, arcs_83_0},
- {1, arcs_83_1},
- {1, arcs_83_2},
+static const arc arcs_88_3[1] = {
+ {45, 5},
+};
+static const arc arcs_88_4[1] = {
+ {2, 6},
};
-static const arc arcs_84_0[1] = {
- {24, 1},
+static const arc arcs_88_5[2] = {
+ {129, 2},
+ {45, 5},
};
-static const arc arcs_84_1[1] = {
- {133, 2},
+static const arc arcs_88_6[1] = {
+ {128, 3},
};
-static const arc arcs_84_2[2] = {
- {175, 3},
+static state states_88[7] = {
+ {2, arcs_88_0},
+ {2, arcs_88_1},
+ {1, arcs_88_2},
+ {1, arcs_88_3},
+ {1, arcs_88_4},
+ {2, arcs_88_5},
+ {1, arcs_88_6},
+};
+static const arc arcs_89_0[1] = {
+ {181, 1},
+};
+static const arc arcs_89_1[2] = {
+ {44, 2},
+ {2, 1},
+};
+static const arc arcs_89_2[1] = {
{0, 2},
};
-static const arc arcs_84_3[1] = {
- {0, 3},
+static state states_89[3] = {
+ {1, arcs_89_0},
+ {2, arcs_89_1},
+ {1, arcs_89_2},
};
-static state states_84[4] = {
- {1, arcs_84_0},
- {1, arcs_84_1},
- {2, arcs_84_2},
- {1, arcs_84_3},
+static const arc arcs_90_0[1] = {
+ {5, 1},
};
-static const arc arcs_85_0[1] = {
- {40, 1},
+static const arc arcs_90_1[2] = {
+ {61, 2},
+ {182, 3},
};
-static const arc arcs_85_1[1] = {
- {0, 1},
+static const arc arcs_90_2[1] = {
+ {56, 4},
};
-static state states_85[2] = {
- {1, arcs_85_0},
- {1, arcs_85_1},
+static const arc arcs_90_3[1] = {
+ {61, 2},
};
-static const arc arcs_86_0[1] = {
- {35, 1},
+static const arc arcs_90_4[1] = {
+ {58, 5},
};
-static const arc arcs_86_1[2] = {
- {179, 2},
+static const arc arcs_90_5[1] = {
+ {0, 5},
+};
+static state states_90[6] = {
+ {1, arcs_90_0},
+ {2, arcs_90_1},
+ {1, arcs_90_2},
+ {1, arcs_90_3},
+ {1, arcs_90_4},
+ {1, arcs_90_5},
+};
+static const arc arcs_91_0[3] = {
+ {6, 1},
+ {63, 2},
+ {58, 3},
+};
+static const arc arcs_91_1[3] = {
+ {65, 4},
+ {58, 5},
{0, 1},
};
-static const arc arcs_86_2[1] = {
- {0, 2},
+static const arc arcs_91_2[1] = {
+ {58, 6},
};
-static state states_86[3] = {
- {1, arcs_86_0},
- {2, arcs_86_1},
- {1, arcs_86_2},
+static const arc arcs_91_3[2] = {
+ {65, 7},
+ {0, 3},
};
-static const arc arcs_87_0[2] = {
- {22, 1},
- {80, 2},
+static const arc arcs_91_4[2] = {
+ {63, 2},
+ {58, 5},
};
-static const arc arcs_87_1[1] = {
- {58, 2},
+static const arc arcs_91_5[2] = {
+ {65, 4},
+ {0, 5},
};
-static const arc arcs_87_2[1] = {
- {0, 2},
+static const arc arcs_91_6[1] = {
+ {0, 6},
};
-static state states_87[3] = {
- {2, arcs_87_0},
- {1, arcs_87_1},
- {1, arcs_87_2},
-};
-static const arc arcs_88_0[2] = {
- {2, 1},
- {4, 2},
-};
-static const arc arcs_88_1[2] = {
- {128, 3},
- {59, 4},
-};
-static const arc arcs_88_2[1] = {
- {0, 2},
-};
-static const arc arcs_88_3[1] = {
- {45, 5},
-};
-static const arc arcs_88_4[1] = {
- {2, 6},
-};
-static const arc arcs_88_5[2] = {
- {129, 2},
- {45, 5},
-};
-static const arc arcs_88_6[1] = {
- {128, 3},
-};
-static state states_88[7] = {
- {2, arcs_88_0},
- {2, arcs_88_1},
- {1, arcs_88_2},
- {1, arcs_88_3},
- {1, arcs_88_4},
- {2, arcs_88_5},
- {1, arcs_88_6},
-};
-static const arc arcs_89_0[1] = {
- {181, 1},
-};
-static const arc arcs_89_1[2] = {
- {44, 2},
- {2, 1},
-};
-static const arc arcs_89_2[1] = {
- {0, 2},
-};
-static state states_89[3] = {
- {1, arcs_89_0},
- {2, arcs_89_1},
- {1, arcs_89_2},
-};
-static const arc arcs_90_0[1] = {
- {5, 1},
-};
-static const arc arcs_90_1[2] = {
- {61, 2},
- {182, 3},
-};
-static const arc arcs_90_2[1] = {
- {56, 4},
-};
-static const arc arcs_90_3[1] = {
- {61, 2},
-};
-static const arc arcs_90_4[1] = {
- {58, 5},
-};
-static const arc arcs_90_5[1] = {
- {0, 5},
-};
-static state states_90[6] = {
- {1, arcs_90_0},
- {2, arcs_90_1},
- {1, arcs_90_2},
- {1, arcs_90_3},
- {1, arcs_90_4},
- {1, arcs_90_5},
-};
-static const arc arcs_91_0[3] = {
- {6, 1},
- {63, 2},
- {58, 3},
-};
-static const arc arcs_91_1[3] = {
- {65, 4},
- {58, 5},
- {0, 1},
-};
-static const arc arcs_91_2[1] = {
- {58, 6},
-};
-static const arc arcs_91_3[2] = {
- {65, 7},
- {0, 3},
-};
-static const arc arcs_91_4[2] = {
- {63, 2},
- {58, 5},
-};
-static const arc arcs_91_5[2] = {
- {65, 4},
- {0, 5},
-};
-static const arc arcs_91_6[1] = {
- {0, 6},
-};
-static const arc arcs_91_7[4] = {
- {6, 8},
- {63, 2},
- {58, 3},
- {0, 7},
-};
-static const arc arcs_91_8[3] = {
- {65, 9},
- {58, 10},
- {0, 8},
-};
-static const arc arcs_91_9[2] = {
- {63, 2},
- {58, 10},
-};
-static const arc arcs_91_10[2] = {
- {65, 9},
- {0, 10},
-};
-static state states_91[11] = {
- {3, arcs_91_0},
- {3, arcs_91_1},
- {1, arcs_91_2},
- {2, arcs_91_3},
- {2, arcs_91_4},
- {2, arcs_91_5},
- {1, arcs_91_6},
- {4, arcs_91_7},
- {3, arcs_91_8},
- {2, arcs_91_9},
- {2, arcs_91_10},
-};
-static const dfa dfas[92] = {
- {256, "single_input", 3, states_0,
- "\344\377\377\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {257, "file_input", 2, states_1,
- "\344\377\377\377\377\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {258, "eval_input", 3, states_2,
- "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {259, "decorator", 4, states_3,
- "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {260, "decorators", 2, states_4,
- "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {261, "decorated", 3, states_5,
- "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {262, "async_funcdef", 3, states_6,
- "\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {263, "funcdef", 9, states_7,
- "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {264, "parameters", 4, states_8,
- "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {265, "typedargslist", 42, states_9,
- "\100\000\000\000\000\001\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {266, "tfpdef", 4, states_10,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {267, "varargslist", 34, states_11,
- "\100\000\000\000\000\001\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {268, "vfpdef", 2, states_12,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {269, "stmt", 2, states_13,
- "\340\377\377\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {270, "simple_stmt", 4, states_14,
- "\340\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {271, "small_stmt", 2, states_15,
- "\340\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {272, "expr_stmt", 6, states_16,
- "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {273, "annassign", 5, states_17,
- "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {274, "testlist_star_expr", 3, states_18,
- "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {275, "augassign", 2, states_19,
- "\000\000\000\000\000\000\000\000\000\000\340\377\003\000\000\000\000\000\000\000\000\000\000"},
- {276, "del_stmt", 3, states_20,
- "\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {277, "pass_stmt", 2, states_21,
- "\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {278, "flow_stmt", 2, states_22,
- "\000\000\005\300\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {279, "break_stmt", 2, states_23,
- "\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {280, "continue_stmt", 2, states_24,
- "\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {281, "return_stmt", 3, states_25,
- "\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {282, "yield_stmt", 2, states_26,
- "\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {283, "raise_stmt", 5, states_27,
- "\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {284, "import_stmt", 2, states_28,
- "\000\000\100\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {285, "import_name", 3, states_29,
- "\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {286, "import_from", 8, states_30,
+static const arc arcs_91_7[4] = {
+ {6, 8},
+ {63, 2},
+ {58, 3},
+ {0, 7},
+};
+static const arc arcs_91_8[3] = {
+ {65, 9},
+ {58, 10},
+ {0, 8},
+};
+static const arc arcs_91_9[2] = {
+ {63, 2},
+ {58, 10},
+};
+static const arc arcs_91_10[2] = {
+ {65, 9},
+ {0, 10},
+};
+static state states_91[11] = {
+ {3, arcs_91_0},
+ {3, arcs_91_1},
+ {1, arcs_91_2},
+ {2, arcs_91_3},
+ {2, arcs_91_4},
+ {2, arcs_91_5},
+ {1, arcs_91_6},
+ {4, arcs_91_7},
+ {3, arcs_91_8},
+ {2, arcs_91_9},
+ {2, arcs_91_10},
+};
+static const dfa dfas[92] = {
+ {256, "single_input", 3, states_0,
+ "\344\377\377\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {257, "file_input", 2, states_1,
+ "\344\377\377\377\377\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {258, "eval_input", 3, states_2,
+ "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {259, "decorator", 4, states_3,
+ "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {260, "decorators", 2, states_4,
+ "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {261, "decorated", 3, states_5,
+ "\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {262, "async_funcdef", 3, states_6,
+ "\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {263, "funcdef", 9, states_7,
+ "\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {264, "parameters", 4, states_8,
+ "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {265, "typedargslist", 42, states_9,
+ "\100\000\000\000\000\001\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {266, "tfpdef", 4, states_10,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {267, "varargslist", 34, states_11,
+ "\100\000\000\000\000\001\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {268, "vfpdef", 2, states_12,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {269, "stmt", 2, states_13,
+ "\340\377\377\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {270, "simple_stmt", 4, states_14,
+ "\340\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {271, "small_stmt", 2, states_15,
+ "\340\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {272, "expr_stmt", 6, states_16,
+ "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {273, "annassign", 5, states_17,
+ "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {274, "testlist_star_expr", 3, states_18,
+ "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {275, "augassign", 2, states_19,
+ "\000\000\000\000\000\000\000\000\000\000\340\377\003\000\000\000\000\000\000\000\000\000\000"},
+ {276, "del_stmt", 3, states_20,
+ "\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {277, "pass_stmt", 2, states_21,
+ "\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {278, "flow_stmt", 2, states_22,
+ "\000\000\005\300\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {279, "break_stmt", 2, states_23,
+ "\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {280, "continue_stmt", 2, states_24,
+ "\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {281, "return_stmt", 3, states_25,
+ "\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {282, "yield_stmt", 2, states_26,
+ "\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {283, "raise_stmt", 5, states_27,
+ "\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {284, "import_stmt", 2, states_28,
+ "\000\000\100\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {285, "import_name", 3, states_29,
+ "\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {286, "import_from", 8, states_30,
"\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {287, "import_as_name", 4, states_31,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {288, "dotted_as_name", 4, states_32,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {289, "import_as_names", 3, states_33,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {290, "dotted_as_names", 2, states_34,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {291, "dotted_name", 2, states_35,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {292, "global_stmt", 3, states_36,
+ {287, "import_as_name", 4, states_31,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {288, "dotted_as_name", 4, states_32,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {289, "import_as_names", 3, states_33,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {290, "dotted_as_names", 2, states_34,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {291, "dotted_name", 2, states_35,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {292, "global_stmt", 3, states_36,
"\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {293, "nonlocal_stmt", 3, states_37,
+ {293, "nonlocal_stmt", 3, states_37,
"\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {294, "assert_stmt", 5, states_38,
- "\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {295, "compound_stmt", 2, states_39,
- "\000\004\052\001\107\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {296, "async_stmt", 3, states_40,
- "\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {297, "if_stmt", 8, states_41,
- "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {298, "while_stmt", 8, states_42,
- "\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {299, "for_stmt", 11, states_43,
+ {294, "assert_stmt", 5, states_38,
+ "\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {295, "compound_stmt", 2, states_39,
+ "\000\004\052\001\107\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {296, "async_stmt", 3, states_40,
+ "\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {297, "if_stmt", 8, states_41,
+ "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {298, "while_stmt", 8, states_42,
+ "\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {299, "for_stmt", 11, states_43,
+ "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {300, "try_stmt", 13, states_44,
+ "\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {301, "with_stmt", 6, states_45,
+ "\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {302, "with_item", 4, states_46,
+ "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {303, "except_clause", 5, states_47,
+ "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000"},
+ {304, "suite", 5, states_48,
+ "\344\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {305, "namedexpr_test", 4, states_49,
+ "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {306, "test", 6, states_50,
+ "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {307, "test_nocond", 2, states_51,
+ "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {308, "lambdef", 5, states_52,
+ "\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {309, "lambdef_nocond", 5, states_53,
+ "\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {310, "or_test", 2, states_54,
+ "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {311, "and_test", 2, states_55,
+ "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {312, "not_test", 3, states_56,
+ "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {313, "comparison", 2, states_57,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {314, "comp_op", 4, states_58,
+ "\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\004\000\340\017\000\000\000\000"},
+ {315, "star_expr", 3, states_59,
+ "\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {316, "expr", 2, states_60,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {317, "xor_expr", 2, states_61,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {318, "and_expr", 2, states_62,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {319, "shift_expr", 2, states_63,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {320, "arith_expr", 2, states_64,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {321, "term", 2, states_65,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {322, "factor", 3, states_66,
+ "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {323, "power", 4, states_67,
+ "\040\172\000\000\220\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {324, "atom_expr", 3, states_68,
+ "\040\172\000\000\220\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {325, "atom", 9, states_69,
+ "\040\172\000\000\020\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {326, "testlist_comp", 5, states_70,
+ "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {327, "trailer", 7, states_71,
+ "\040\100\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
+ {328, "subscriptlist", 3, states_72,
+ "\240\173\000\024\260\007\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {329, "subscript", 5, states_73,
+ "\240\173\000\024\260\007\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {330, "sliceop", 3, states_74,
+ "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {331, "exprlist", 3, states_75,
+ "\340\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {332, "testlist", 3, states_76,
+ "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {333, "dictorsetmaker", 14, states_77,
+ "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {334, "classdef", 8, states_78,
+ "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {335, "arglist", 3, states_79,
+ "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {336, "argument", 4, states_80,
+ "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {337, "comp_iter", 2, states_81,
+ "\000\000\040\001\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {338, "sync_comp_for", 6, states_82,
"\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {300, "try_stmt", 13, states_44,
- "\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {301, "with_stmt", 6, states_45,
- "\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {302, "with_item", 4, states_46,
- "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {303, "except_clause", 5, states_47,
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000"},
- {304, "suite", 5, states_48,
- "\344\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {305, "namedexpr_test", 4, states_49,
- "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {306, "test", 6, states_50,
- "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {307, "test_nocond", 2, states_51,
- "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {308, "lambdef", 5, states_52,
- "\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {309, "lambdef_nocond", 5, states_53,
- "\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {310, "or_test", 2, states_54,
- "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {311, "and_test", 2, states_55,
- "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {312, "not_test", 3, states_56,
- "\240\173\000\020\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {313, "comparison", 2, states_57,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {314, "comp_op", 4, states_58,
- "\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\004\000\340\017\000\000\000\000"},
- {315, "star_expr", 3, states_59,
- "\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {316, "expr", 2, states_60,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {317, "xor_expr", 2, states_61,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {318, "and_expr", 2, states_62,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {319, "shift_expr", 2, states_63,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {320, "arith_expr", 2, states_64,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {321, "term", 2, states_65,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {322, "factor", 3, states_66,
- "\240\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {323, "power", 4, states_67,
- "\040\172\000\000\220\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {324, "atom_expr", 3, states_68,
- "\040\172\000\000\220\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {325, "atom", 9, states_69,
- "\040\172\000\000\020\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {326, "testlist_comp", 5, states_70,
- "\340\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {327, "trailer", 7, states_71,
- "\040\100\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
- {328, "subscriptlist", 3, states_72,
- "\240\173\000\024\260\007\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {329, "subscript", 5, states_73,
- "\240\173\000\024\260\007\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {330, "sliceop", 3, states_74,
- "\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {331, "exprlist", 3, states_75,
- "\340\173\000\000\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {332, "testlist", 3, states_76,
- "\240\173\000\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {333, "dictorsetmaker", 14, states_77,
- "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {334, "classdef", 8, states_78,
- "\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {335, "arglist", 3, states_79,
- "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {336, "argument", 4, states_80,
- "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {337, "comp_iter", 2, states_81,
- "\000\000\040\001\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {338, "sync_comp_for", 6, states_82,
- "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {339, "comp_for", 3, states_83,
- "\000\000\040\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {340, "comp_if", 4, states_84,
- "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {341, "encoding_decl", 2, states_85,
- "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {342, "yield_expr", 3, states_86,
- "\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {343, "yield_arg", 3, states_87,
- "\340\173\100\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {344, "func_body_suite", 7, states_88,
- "\344\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {345, "func_type_input", 3, states_89,
- "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {346, "func_type", 6, states_90,
- "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
- {347, "typelist", 11, states_91,
- "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-};
-static const label labels[183] = {
+ {339, "comp_for", 3, states_83,
+ "\000\000\040\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {340, "comp_if", 4, states_84,
+ "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {341, "encoding_decl", 2, states_85,
+ "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {342, "yield_expr", 3, states_86,
+ "\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {343, "yield_arg", 3, states_87,
+ "\340\173\100\024\260\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {344, "func_body_suite", 7, states_88,
+ "\344\373\325\376\270\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {345, "func_type_input", 3, states_89,
+ "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {346, "func_type", 6, states_90,
+ "\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+ {347, "typelist", 11, states_91,
+ "\340\173\000\024\260\007\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
+};
+static const label labels[183] = {
{0, "EMPTY"},
{256, 0},
{4, 0},
- {295, 0},
+ {295, 0},
{270, 0},
- {7, 0},
- {16, 0},
- {14, 0},
- {15, 0},
- {52, 0},
- {49, 0},
- {1, "False"},
- {1, "None"},
- {1, "True"},
- {9, 0},
- {1, "assert"},
- {1, "break"},
- {1, "class"},
- {1, "continue"},
- {1, "def"},
- {1, "del"},
- {1, "for"},
- {1, "from"},
- {1, "global"},
- {1, "if"},
- {1, "import"},
- {1, "lambda"},
- {1, "nonlocal"},
- {1, "not"},
- {1, "pass"},
- {1, "raise"},
- {1, "return"},
- {1, "try"},
- {1, "while"},
- {1, "with"},
- {1, "yield"},
- {25, 0},
- {31, 0},
- {56, 0},
- {55, 0},
- {1, 0},
- {2, 0},
- {3, 0},
+ {7, 0},
+ {16, 0},
+ {14, 0},
+ {15, 0},
+ {52, 0},
+ {49, 0},
+ {1, "False"},
+ {1, "None"},
+ {1, "True"},
+ {9, 0},
+ {1, "assert"},
+ {1, "break"},
+ {1, "class"},
+ {1, "continue"},
+ {1, "def"},
+ {1, "del"},
+ {1, "for"},
+ {1, "from"},
+ {1, "global"},
+ {1, "if"},
+ {1, "import"},
+ {1, "lambda"},
+ {1, "nonlocal"},
+ {1, "not"},
+ {1, "pass"},
+ {1, "raise"},
+ {1, "return"},
+ {1, "try"},
+ {1, "while"},
+ {1, "with"},
+ {1, "yield"},
+ {25, 0},
+ {31, 0},
+ {56, 0},
+ {55, 0},
+ {1, 0},
+ {2, 0},
+ {3, 0},
{257, 0},
- {0, 0},
+ {0, 0},
{269, 0},
{258, 0},
- {332, 0},
+ {332, 0},
{259, 0},
- {305, 0},
+ {305, 0},
{260, 0},
{261, 0},
- {262, 0},
- {334, 0},
+ {262, 0},
+ {334, 0},
{263, 0},
{264, 0},
{51, 0},
{11, 0},
- {306, 0},
- {58, 0},
- {344, 0},
- {8, 0},
+ {306, 0},
+ {58, 0},
+ {344, 0},
+ {8, 0},
{265, 0},
- {35, 0},
+ {35, 0},
{266, 0},
- {12, 0},
+ {12, 0},
{22, 0},
- {17, 0},
+ {17, 0},
{267, 0},
{268, 0},
{271, 0},
{13, 0},
- {294, 0},
- {276, 0},
+ {294, 0},
+ {276, 0},
{272, 0},
{278, 0},
- {292, 0},
+ {292, 0},
{284, 0},
{293, 0},
- {277, 0},
+ {277, 0},
{274, 0},
{273, 0},
{275, 0},
- {342, 0},
- {315, 0},
- {40, 0},
- {41, 0},
- {46, 0},
- {38, 0},
+ {342, 0},
+ {315, 0},
+ {40, 0},
+ {41, 0},
+ {46, 0},
+ {38, 0},
{36, 0},
{37, 0},
- {48, 0},
+ {48, 0},
{39, 0},
{44, 0},
{45, 0},
- {50, 0},
- {43, 0},
- {42, 0},
- {331, 0},
+ {50, 0},
+ {43, 0},
+ {42, 0},
+ {331, 0},
{279, 0},
{280, 0},
- {283, 0},
+ {283, 0},
{281, 0},
{282, 0},
- {286, 0},
+ {286, 0},
{285, 0},
{290, 0},
{23, 0},
- {291, 0},
+ {291, 0},
{289, 0},
{287, 0},
{1, "as"},
{288, 0},
- {296, 0},
- {299, 0},
+ {296, 0},
+ {299, 0},
{297, 0},
- {300, 0},
+ {300, 0},
{298, 0},
{301, 0},
- {304, 0},
+ {304, 0},
{1, "elif"},
{1, "else"},
{1, "in"},
- {1, "finally"},
+ {1, "finally"},
{303, 0},
{302, 0},
- {316, 0},
+ {316, 0},
{1, "except"},
{5, 0},
{6, 0},
- {53, 0},
+ {53, 0},
{308, 0},
{310, 0},
- {307, 0},
- {309, 0},
- {311, 0},
+ {307, 0},
+ {309, 0},
+ {311, 0},
{1, "or"},
- {312, 0},
+ {312, 0},
{1, "and"},
{313, 0},
- {314, 0},
- {28, 0},
+ {314, 0},
+ {28, 0},
{20, 0},
- {29, 0},
- {27, 0},
+ {29, 0},
+ {27, 0},
{21, 0},
{30, 0},
{1, "is"},
- {317, 0},
+ {317, 0},
{18, 0},
- {318, 0},
+ {318, 0},
{32, 0},
- {319, 0},
+ {319, 0},
{19, 0},
- {320, 0},
+ {320, 0},
{33, 0},
{34, 0},
{321, 0},
- {322, 0},
+ {322, 0},
{24, 0},
{47, 0},
{323, 0},
{324, 0},
- {325, 0},
- {327, 0},
+ {325, 0},
+ {327, 0},
{326, 0},
{10, 0},
{26, 0},
- {333, 0},
- {339, 0},
- {335, 0},
+ {333, 0},
+ {339, 0},
+ {335, 0},
{328, 0},
{329, 0},
- {330, 0},
+ {330, 0},
{336, 0},
{337, 0},
{340, 0},
- {338, 0},
- {341, 0},
- {343, 0},
- {345, 0},
- {346, 0},
- {347, 0},
-};
-Py_EXPORTED_SYMBOL grammar _PyParser_Grammar = {
- 92,
+ {338, 0},
+ {341, 0},
+ {343, 0},
+ {345, 0},
+ {346, 0},
+ {347, 0},
+};
+Py_EXPORTED_SYMBOL grammar _PyParser_Grammar = {
+ 92,
dfas,
- {183, labels},
+ {183, labels},
256
};
diff --git a/contrib/tools/python3/src/Python/hamt.c b/contrib/tools/python3/src/Python/hamt.c
index a5ff87d8f0..8801c5ea41 100644
--- a/contrib/tools/python3/src/Python/hamt.c
+++ b/contrib/tools/python3/src/Python/hamt.c
@@ -1,11 +1,11 @@
#include "Python.h"
-#include "pycore_hamt.h"
-#include "pycore_object.h" // _PyObject_GC_TRACK()
-#include <stddef.h> // offsetof()
+#include "pycore_hamt.h"
+#include "pycore_object.h" // _PyObject_GC_TRACK()
+#include <stddef.h> // offsetof()
/*
-This file provides an implementation of an immutable mapping using the
+This file provides an implementation of an immutable mapping using the
Hash Array Mapped Trie (or HAMT) datastructure.
This design allows to have:
@@ -273,9 +273,9 @@ to introspect the tree:
*/
-#define IS_ARRAY_NODE(node) Py_IS_TYPE(node, &_PyHamt_ArrayNode_Type)
-#define IS_BITMAP_NODE(node) Py_IS_TYPE(node, &_PyHamt_BitmapNode_Type)
-#define IS_COLLISION_NODE(node) Py_IS_TYPE(node, &_PyHamt_CollisionNode_Type)
+#define IS_ARRAY_NODE(node) Py_IS_TYPE(node, &_PyHamt_ArrayNode_Type)
+#define IS_BITMAP_NODE(node) Py_IS_TYPE(node, &_PyHamt_BitmapNode_Type)
+#define IS_COLLISION_NODE(node) Py_IS_TYPE(node, &_PyHamt_CollisionNode_Type)
/* Return type for 'find' (lookup a key) functions.
@@ -372,11 +372,11 @@ hamt_node_collision_count(PyHamtNode_Collision *node);
#ifdef Py_DEBUG
static void
-_hamt_node_array_validate(void *obj_raw)
+_hamt_node_array_validate(void *obj_raw)
{
- PyObject *obj = _PyObject_CAST(obj_raw);
- assert(IS_ARRAY_NODE(obj));
- PyHamtNode_Array *node = (PyHamtNode_Array*)obj;
+ PyObject *obj = _PyObject_CAST(obj_raw);
+ assert(IS_ARRAY_NODE(obj));
+ PyHamtNode_Array *node = (PyHamtNode_Array*)obj;
Py_ssize_t i = 0, count = 0;
for (; i < HAMT_ARRAY_NODE_SIZE; i++) {
if (node->a_array[i] != NULL) {
@@ -550,7 +550,7 @@ hamt_node_bitmap_new(Py_ssize_t size)
return NULL;
}
- Py_SET_SIZE(node, size);
+ Py_SET_SIZE(node, size);
for (i = 0; i < size; i++) {
node->b_array[i] = NULL;
@@ -829,7 +829,7 @@ hamt_node_bitmap_assoc(PyHamtNode_Bitmap *self,
Instead we start using an Array node, which has
simpler (faster) implementation at the expense of
- having preallocated 32 pointers for its keys/values
+ having preallocated 32 pointers for its keys/values
pairs.
Small hamt objects (<30 keys) usually don't have any
@@ -1175,7 +1175,7 @@ hamt_node_bitmap_dealloc(PyHamtNode_Bitmap *self)
Py_ssize_t i;
PyObject_GC_UnTrack(self);
- Py_TRASHCAN_BEGIN(self, hamt_node_bitmap_dealloc)
+ Py_TRASHCAN_BEGIN(self, hamt_node_bitmap_dealloc)
if (len > 0) {
i = len;
@@ -1185,7 +1185,7 @@ hamt_node_bitmap_dealloc(PyHamtNode_Bitmap *self)
}
Py_TYPE(self)->tp_free((PyObject *)self);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
#ifdef Py_DEBUG
@@ -1287,7 +1287,7 @@ hamt_node_collision_new(int32_t hash, Py_ssize_t size)
node->c_array[i] = NULL;
}
- Py_SET_SIZE(node, size);
+ Py_SET_SIZE(node, size);
node->c_hash = hash;
_PyObject_GC_TRACK(node);
@@ -1583,7 +1583,7 @@ hamt_node_collision_dealloc(PyHamtNode_Collision *self)
Py_ssize_t len = Py_SIZE(self);
PyObject_GC_UnTrack(self);
- Py_TRASHCAN_BEGIN(self, hamt_node_collision_dealloc)
+ Py_TRASHCAN_BEGIN(self, hamt_node_collision_dealloc)
if (len > 0) {
@@ -1593,7 +1593,7 @@ hamt_node_collision_dealloc(PyHamtNode_Collision *self)
}
Py_TYPE(self)->tp_free((PyObject *)self);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
#ifdef Py_DEBUG
@@ -1863,7 +1863,7 @@ hamt_node_array_without(PyHamtNode_Array *self,
continue;
}
- bitmap |= 1U << i;
+ bitmap |= 1U << i;
if (IS_BITMAP_NODE(node)) {
PyHamtNode_Bitmap *child = (PyHamtNode_Bitmap *)node;
@@ -1968,14 +1968,14 @@ hamt_node_array_dealloc(PyHamtNode_Array *self)
Py_ssize_t i;
PyObject_GC_UnTrack(self);
- Py_TRASHCAN_BEGIN(self, hamt_node_array_dealloc)
+ Py_TRASHCAN_BEGIN(self, hamt_node_array_dealloc)
for (i = 0; i < HAMT_ARRAY_NODE_SIZE; i++) {
Py_XDECREF(self->a_array[i]);
}
Py_TYPE(self)->tp_free((PyObject *)self);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
#ifdef Py_DEBUG
@@ -2004,7 +2004,7 @@ hamt_node_array_dump(PyHamtNode_Array *node,
goto error;
}
- if (_hamt_dump_format(writer, "%zd::\n", i)) {
+ if (_hamt_dump_format(writer, "%zd::\n", i)) {
goto error;
}
diff --git a/contrib/tools/python3/src/Python/hashtable.c b/contrib/tools/python3/src/Python/hashtable.c
index 3e22b65180..09501de199 100644
--- a/contrib/tools/python3/src/Python/hashtable.c
+++ b/contrib/tools/python3/src/Python/hashtable.c
@@ -1,417 +1,417 @@
-/* The implementation of the hash table (_Py_hashtable_t) is based on the
- cfuhash project:
- http://sourceforge.net/projects/libcfu/
-
- Copyright of cfuhash:
- ----------------------------------
- Creation date: 2005-06-24 21:22:40
- Authors: Don
- Change log:
-
- Copyright (c) 2005 Don Owens
- All rights reserved.
-
- This code is released under the BSD license:
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- * Neither the name of the author nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- OF THE POSSIBILITY OF SUCH DAMAGE.
- ----------------------------------
-*/
-
-#include "Python.h"
-#include "pycore_hashtable.h"
-
-#define HASHTABLE_MIN_SIZE 16
-#define HASHTABLE_HIGH 0.50
-#define HASHTABLE_LOW 0.10
-#define HASHTABLE_REHASH_FACTOR 2.0 / (HASHTABLE_LOW + HASHTABLE_HIGH)
-
-#define BUCKETS_HEAD(SLIST) \
- ((_Py_hashtable_entry_t *)_Py_SLIST_HEAD(&(SLIST)))
-#define TABLE_HEAD(HT, BUCKET) \
- ((_Py_hashtable_entry_t *)_Py_SLIST_HEAD(&(HT)->buckets[BUCKET]))
-#define ENTRY_NEXT(ENTRY) \
- ((_Py_hashtable_entry_t *)_Py_SLIST_ITEM_NEXT(ENTRY))
-
-/* Forward declaration */
-static int hashtable_rehash(_Py_hashtable_t *ht);
-
-static void
-_Py_slist_init(_Py_slist_t *list)
-{
- list->head = NULL;
-}
-
-
-static void
-_Py_slist_prepend(_Py_slist_t *list, _Py_slist_item_t *item)
-{
- item->next = list->head;
- list->head = item;
-}
-
-
-static void
-_Py_slist_remove(_Py_slist_t *list, _Py_slist_item_t *previous,
- _Py_slist_item_t *item)
-{
- if (previous != NULL)
- previous->next = item->next;
- else
- list->head = item->next;
-}
-
-
-Py_uhash_t
-_Py_hashtable_hash_ptr(const void *key)
-{
- return (Py_uhash_t)_Py_HashPointerRaw(key);
-}
-
-
-int
-_Py_hashtable_compare_direct(const void *key1, const void *key2)
-{
- return (key1 == key2);
-}
-
-
-/* makes sure the real size of the buckets array is a power of 2 */
-static size_t
-round_size(size_t s)
-{
- size_t i;
- if (s < HASHTABLE_MIN_SIZE)
- return HASHTABLE_MIN_SIZE;
- i = 1;
- while (i < s)
- i <<= 1;
- return i;
-}
-
-
-size_t
-_Py_hashtable_size(const _Py_hashtable_t *ht)
-{
- size_t size = sizeof(_Py_hashtable_t);
- /* buckets */
- size += ht->nbuckets * sizeof(_Py_hashtable_entry_t *);
- /* entries */
- size += ht->nentries * sizeof(_Py_hashtable_entry_t);
- return size;
-}
-
-
-_Py_hashtable_entry_t *
-_Py_hashtable_get_entry_generic(_Py_hashtable_t *ht, const void *key)
-{
- Py_uhash_t key_hash = ht->hash_func(key);
- size_t index = key_hash & (ht->nbuckets - 1);
- _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
- while (1) {
- if (entry == NULL) {
- return NULL;
- }
- if (entry->key_hash == key_hash && ht->compare_func(key, entry->key)) {
- break;
- }
- entry = ENTRY_NEXT(entry);
- }
- return entry;
-}
-
-
-// Specialized for:
-// hash_func == _Py_hashtable_hash_ptr
-// compare_func == _Py_hashtable_compare_direct
-static _Py_hashtable_entry_t *
-_Py_hashtable_get_entry_ptr(_Py_hashtable_t *ht, const void *key)
-{
- Py_uhash_t key_hash = _Py_hashtable_hash_ptr(key);
- size_t index = key_hash & (ht->nbuckets - 1);
- _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
- while (1) {
- if (entry == NULL) {
- return NULL;
- }
- // Compare directly keys (ignore entry->key_hash)
- if (entry->key == key) {
- break;
- }
- entry = ENTRY_NEXT(entry);
- }
- return entry;
-}
-
-
-void*
-_Py_hashtable_steal(_Py_hashtable_t *ht, const void *key)
-{
- Py_uhash_t key_hash = ht->hash_func(key);
- size_t index = key_hash & (ht->nbuckets - 1);
-
- _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
- _Py_hashtable_entry_t *previous = NULL;
- while (1) {
- if (entry == NULL) {
- // not found
- return NULL;
- }
- if (entry->key_hash == key_hash && ht->compare_func(key, entry->key)) {
- break;
- }
- previous = entry;
- entry = ENTRY_NEXT(entry);
- }
-
- _Py_slist_remove(&ht->buckets[index], (_Py_slist_item_t *)previous,
- (_Py_slist_item_t *)entry);
- ht->nentries--;
-
- void *value = entry->value;
- ht->alloc.free(entry);
-
- if ((float)ht->nentries / (float)ht->nbuckets < HASHTABLE_LOW) {
- // Ignore failure: error cannot be reported to the caller
- hashtable_rehash(ht);
- }
- return value;
-}
-
-
-int
-_Py_hashtable_set(_Py_hashtable_t *ht, const void *key, void *value)
-{
- _Py_hashtable_entry_t *entry;
-
-#ifndef NDEBUG
- /* Don't write the assertion on a single line because it is interesting
- to know the duplicated entry if the assertion failed. The entry can
- be read using a debugger. */
- entry = ht->get_entry_func(ht, key);
- assert(entry == NULL);
-#endif
-
-
- entry = ht->alloc.malloc(sizeof(_Py_hashtable_entry_t));
- if (entry == NULL) {
- /* memory allocation failed */
- return -1;
- }
-
- entry->key_hash = ht->hash_func(key);
- entry->key = (void *)key;
- entry->value = value;
-
- ht->nentries++;
- if ((float)ht->nentries / (float)ht->nbuckets > HASHTABLE_HIGH) {
- if (hashtable_rehash(ht) < 0) {
- ht->nentries--;
- ht->alloc.free(entry);
- return -1;
- }
- }
-
- size_t index = entry->key_hash & (ht->nbuckets - 1);
- _Py_slist_prepend(&ht->buckets[index], (_Py_slist_item_t*)entry);
- return 0;
-}
-
-
-void*
-_Py_hashtable_get(_Py_hashtable_t *ht, const void *key)
-{
- _Py_hashtable_entry_t *entry = ht->get_entry_func(ht, key);
- if (entry != NULL) {
- return entry->value;
- }
- else {
- return NULL;
- }
-}
-
-
-int
-_Py_hashtable_foreach(_Py_hashtable_t *ht,
- _Py_hashtable_foreach_func func,
- void *user_data)
-{
- for (size_t hv = 0; hv < ht->nbuckets; hv++) {
- _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, hv);
- while (entry != NULL) {
- int res = func(ht, entry->key, entry->value, user_data);
- if (res) {
- return res;
- }
- entry = ENTRY_NEXT(entry);
- }
- }
- return 0;
-}
-
-
-static int
-hashtable_rehash(_Py_hashtable_t *ht)
-{
- size_t new_size = round_size((size_t)(ht->nentries * HASHTABLE_REHASH_FACTOR));
- if (new_size == ht->nbuckets) {
- return 0;
- }
-
- size_t buckets_size = new_size * sizeof(ht->buckets[0]);
- _Py_slist_t *new_buckets = ht->alloc.malloc(buckets_size);
- if (new_buckets == NULL) {
- /* memory allocation failed */
- return -1;
- }
- memset(new_buckets, 0, buckets_size);
-
- for (size_t bucket = 0; bucket < ht->nbuckets; bucket++) {
- _Py_hashtable_entry_t *entry = BUCKETS_HEAD(ht->buckets[bucket]);
- while (entry != NULL) {
- assert(ht->hash_func(entry->key) == entry->key_hash);
- _Py_hashtable_entry_t *next = ENTRY_NEXT(entry);
- size_t entry_index = entry->key_hash & (new_size - 1);
-
- _Py_slist_prepend(&new_buckets[entry_index], (_Py_slist_item_t*)entry);
-
- entry = next;
- }
- }
-
- ht->alloc.free(ht->buckets);
- ht->nbuckets = new_size;
- ht->buckets = new_buckets;
- return 0;
-}
-
-
-_Py_hashtable_t *
-_Py_hashtable_new_full(_Py_hashtable_hash_func hash_func,
- _Py_hashtable_compare_func compare_func,
- _Py_hashtable_destroy_func key_destroy_func,
- _Py_hashtable_destroy_func value_destroy_func,
- _Py_hashtable_allocator_t *allocator)
-{
- _Py_hashtable_allocator_t alloc;
- if (allocator == NULL) {
- alloc.malloc = PyMem_Malloc;
- alloc.free = PyMem_Free;
- }
- else {
- alloc = *allocator;
- }
-
- _Py_hashtable_t *ht = (_Py_hashtable_t *)alloc.malloc(sizeof(_Py_hashtable_t));
- if (ht == NULL) {
- return ht;
- }
-
- ht->nbuckets = HASHTABLE_MIN_SIZE;
- ht->nentries = 0;
-
- size_t buckets_size = ht->nbuckets * sizeof(ht->buckets[0]);
- ht->buckets = alloc.malloc(buckets_size);
- if (ht->buckets == NULL) {
- alloc.free(ht);
- return NULL;
- }
- memset(ht->buckets, 0, buckets_size);
-
- ht->get_entry_func = _Py_hashtable_get_entry_generic;
- ht->hash_func = hash_func;
- ht->compare_func = compare_func;
- ht->key_destroy_func = key_destroy_func;
- ht->value_destroy_func = value_destroy_func;
- ht->alloc = alloc;
- if (ht->hash_func == _Py_hashtable_hash_ptr
- && ht->compare_func == _Py_hashtable_compare_direct)
- {
- ht->get_entry_func = _Py_hashtable_get_entry_ptr;
- }
- return ht;
-}
-
-
-_Py_hashtable_t *
-_Py_hashtable_new(_Py_hashtable_hash_func hash_func,
- _Py_hashtable_compare_func compare_func)
-{
- return _Py_hashtable_new_full(hash_func, compare_func,
- NULL, NULL, NULL);
-}
-
-
-static void
-_Py_hashtable_destroy_entry(_Py_hashtable_t *ht, _Py_hashtable_entry_t *entry)
-{
- if (ht->key_destroy_func) {
- ht->key_destroy_func(entry->key);
- }
- if (ht->value_destroy_func) {
- ht->value_destroy_func(entry->value);
- }
- ht->alloc.free(entry);
-}
-
-
-void
-_Py_hashtable_clear(_Py_hashtable_t *ht)
-{
- for (size_t i=0; i < ht->nbuckets; i++) {
- _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, i);
- while (entry != NULL) {
- _Py_hashtable_entry_t *next = ENTRY_NEXT(entry);
- _Py_hashtable_destroy_entry(ht, entry);
- entry = next;
- }
- _Py_slist_init(&ht->buckets[i]);
- }
- ht->nentries = 0;
- // Ignore failure: clear function is not expected to fail
- // because of a memory allocation failure.
- (void)hashtable_rehash(ht);
-}
-
-
-void
-_Py_hashtable_destroy(_Py_hashtable_t *ht)
-{
- for (size_t i = 0; i < ht->nbuckets; i++) {
- _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, i);
- while (entry) {
- _Py_hashtable_entry_t *entry_next = ENTRY_NEXT(entry);
- _Py_hashtable_destroy_entry(ht, entry);
- entry = entry_next;
- }
- }
-
- ht->alloc.free(ht->buckets);
- ht->alloc.free(ht);
-}
+/* The implementation of the hash table (_Py_hashtable_t) is based on the
+ cfuhash project:
+ http://sourceforge.net/projects/libcfu/
+
+ Copyright of cfuhash:
+ ----------------------------------
+ Creation date: 2005-06-24 21:22:40
+ Authors: Don
+ Change log:
+
+ Copyright (c) 2005 Don Owens
+ All rights reserved.
+
+ This code is released under the BSD license:
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of the author nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+ ----------------------------------
+*/
+
+#include "Python.h"
+#include "pycore_hashtable.h"
+
+#define HASHTABLE_MIN_SIZE 16
+#define HASHTABLE_HIGH 0.50
+#define HASHTABLE_LOW 0.10
+#define HASHTABLE_REHASH_FACTOR 2.0 / (HASHTABLE_LOW + HASHTABLE_HIGH)
+
+#define BUCKETS_HEAD(SLIST) \
+ ((_Py_hashtable_entry_t *)_Py_SLIST_HEAD(&(SLIST)))
+#define TABLE_HEAD(HT, BUCKET) \
+ ((_Py_hashtable_entry_t *)_Py_SLIST_HEAD(&(HT)->buckets[BUCKET]))
+#define ENTRY_NEXT(ENTRY) \
+ ((_Py_hashtable_entry_t *)_Py_SLIST_ITEM_NEXT(ENTRY))
+
+/* Forward declaration */
+static int hashtable_rehash(_Py_hashtable_t *ht);
+
+static void
+_Py_slist_init(_Py_slist_t *list)
+{
+ list->head = NULL;
+}
+
+
+static void
+_Py_slist_prepend(_Py_slist_t *list, _Py_slist_item_t *item)
+{
+ item->next = list->head;
+ list->head = item;
+}
+
+
+static void
+_Py_slist_remove(_Py_slist_t *list, _Py_slist_item_t *previous,
+ _Py_slist_item_t *item)
+{
+ if (previous != NULL)
+ previous->next = item->next;
+ else
+ list->head = item->next;
+}
+
+
+Py_uhash_t
+_Py_hashtable_hash_ptr(const void *key)
+{
+ return (Py_uhash_t)_Py_HashPointerRaw(key);
+}
+
+
+int
+_Py_hashtable_compare_direct(const void *key1, const void *key2)
+{
+ return (key1 == key2);
+}
+
+
+/* makes sure the real size of the buckets array is a power of 2 */
+static size_t
+round_size(size_t s)
+{
+ size_t i;
+ if (s < HASHTABLE_MIN_SIZE)
+ return HASHTABLE_MIN_SIZE;
+ i = 1;
+ while (i < s)
+ i <<= 1;
+ return i;
+}
+
+
+size_t
+_Py_hashtable_size(const _Py_hashtable_t *ht)
+{
+ size_t size = sizeof(_Py_hashtable_t);
+ /* buckets */
+ size += ht->nbuckets * sizeof(_Py_hashtable_entry_t *);
+ /* entries */
+ size += ht->nentries * sizeof(_Py_hashtable_entry_t);
+ return size;
+}
+
+
+_Py_hashtable_entry_t *
+_Py_hashtable_get_entry_generic(_Py_hashtable_t *ht, const void *key)
+{
+ Py_uhash_t key_hash = ht->hash_func(key);
+ size_t index = key_hash & (ht->nbuckets - 1);
+ _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
+ while (1) {
+ if (entry == NULL) {
+ return NULL;
+ }
+ if (entry->key_hash == key_hash && ht->compare_func(key, entry->key)) {
+ break;
+ }
+ entry = ENTRY_NEXT(entry);
+ }
+ return entry;
+}
+
+
+// Specialized for:
+// hash_func == _Py_hashtable_hash_ptr
+// compare_func == _Py_hashtable_compare_direct
+static _Py_hashtable_entry_t *
+_Py_hashtable_get_entry_ptr(_Py_hashtable_t *ht, const void *key)
+{
+ Py_uhash_t key_hash = _Py_hashtable_hash_ptr(key);
+ size_t index = key_hash & (ht->nbuckets - 1);
+ _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
+ while (1) {
+ if (entry == NULL) {
+ return NULL;
+ }
+ // Compare directly keys (ignore entry->key_hash)
+ if (entry->key == key) {
+ break;
+ }
+ entry = ENTRY_NEXT(entry);
+ }
+ return entry;
+}
+
+
+void*
+_Py_hashtable_steal(_Py_hashtable_t *ht, const void *key)
+{
+ Py_uhash_t key_hash = ht->hash_func(key);
+ size_t index = key_hash & (ht->nbuckets - 1);
+
+ _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
+ _Py_hashtable_entry_t *previous = NULL;
+ while (1) {
+ if (entry == NULL) {
+ // not found
+ return NULL;
+ }
+ if (entry->key_hash == key_hash && ht->compare_func(key, entry->key)) {
+ break;
+ }
+ previous = entry;
+ entry = ENTRY_NEXT(entry);
+ }
+
+ _Py_slist_remove(&ht->buckets[index], (_Py_slist_item_t *)previous,
+ (_Py_slist_item_t *)entry);
+ ht->nentries--;
+
+ void *value = entry->value;
+ ht->alloc.free(entry);
+
+ if ((float)ht->nentries / (float)ht->nbuckets < HASHTABLE_LOW) {
+ // Ignore failure: error cannot be reported to the caller
+ hashtable_rehash(ht);
+ }
+ return value;
+}
+
+
+int
+_Py_hashtable_set(_Py_hashtable_t *ht, const void *key, void *value)
+{
+ _Py_hashtable_entry_t *entry;
+
+#ifndef NDEBUG
+ /* Don't write the assertion on a single line because it is interesting
+ to know the duplicated entry if the assertion failed. The entry can
+ be read using a debugger. */
+ entry = ht->get_entry_func(ht, key);
+ assert(entry == NULL);
+#endif
+
+
+ entry = ht->alloc.malloc(sizeof(_Py_hashtable_entry_t));
+ if (entry == NULL) {
+ /* memory allocation failed */
+ return -1;
+ }
+
+ entry->key_hash = ht->hash_func(key);
+ entry->key = (void *)key;
+ entry->value = value;
+
+ ht->nentries++;
+ if ((float)ht->nentries / (float)ht->nbuckets > HASHTABLE_HIGH) {
+ if (hashtable_rehash(ht) < 0) {
+ ht->nentries--;
+ ht->alloc.free(entry);
+ return -1;
+ }
+ }
+
+ size_t index = entry->key_hash & (ht->nbuckets - 1);
+ _Py_slist_prepend(&ht->buckets[index], (_Py_slist_item_t*)entry);
+ return 0;
+}
+
+
+void*
+_Py_hashtable_get(_Py_hashtable_t *ht, const void *key)
+{
+ _Py_hashtable_entry_t *entry = ht->get_entry_func(ht, key);
+ if (entry != NULL) {
+ return entry->value;
+ }
+ else {
+ return NULL;
+ }
+}
+
+
+int
+_Py_hashtable_foreach(_Py_hashtable_t *ht,
+ _Py_hashtable_foreach_func func,
+ void *user_data)
+{
+ for (size_t hv = 0; hv < ht->nbuckets; hv++) {
+ _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, hv);
+ while (entry != NULL) {
+ int res = func(ht, entry->key, entry->value, user_data);
+ if (res) {
+ return res;
+ }
+ entry = ENTRY_NEXT(entry);
+ }
+ }
+ return 0;
+}
+
+
+static int
+hashtable_rehash(_Py_hashtable_t *ht)
+{
+ size_t new_size = round_size((size_t)(ht->nentries * HASHTABLE_REHASH_FACTOR));
+ if (new_size == ht->nbuckets) {
+ return 0;
+ }
+
+ size_t buckets_size = new_size * sizeof(ht->buckets[0]);
+ _Py_slist_t *new_buckets = ht->alloc.malloc(buckets_size);
+ if (new_buckets == NULL) {
+ /* memory allocation failed */
+ return -1;
+ }
+ memset(new_buckets, 0, buckets_size);
+
+ for (size_t bucket = 0; bucket < ht->nbuckets; bucket++) {
+ _Py_hashtable_entry_t *entry = BUCKETS_HEAD(ht->buckets[bucket]);
+ while (entry != NULL) {
+ assert(ht->hash_func(entry->key) == entry->key_hash);
+ _Py_hashtable_entry_t *next = ENTRY_NEXT(entry);
+ size_t entry_index = entry->key_hash & (new_size - 1);
+
+ _Py_slist_prepend(&new_buckets[entry_index], (_Py_slist_item_t*)entry);
+
+ entry = next;
+ }
+ }
+
+ ht->alloc.free(ht->buckets);
+ ht->nbuckets = new_size;
+ ht->buckets = new_buckets;
+ return 0;
+}
+
+
+_Py_hashtable_t *
+_Py_hashtable_new_full(_Py_hashtable_hash_func hash_func,
+ _Py_hashtable_compare_func compare_func,
+ _Py_hashtable_destroy_func key_destroy_func,
+ _Py_hashtable_destroy_func value_destroy_func,
+ _Py_hashtable_allocator_t *allocator)
+{
+ _Py_hashtable_allocator_t alloc;
+ if (allocator == NULL) {
+ alloc.malloc = PyMem_Malloc;
+ alloc.free = PyMem_Free;
+ }
+ else {
+ alloc = *allocator;
+ }
+
+ _Py_hashtable_t *ht = (_Py_hashtable_t *)alloc.malloc(sizeof(_Py_hashtable_t));
+ if (ht == NULL) {
+ return ht;
+ }
+
+ ht->nbuckets = HASHTABLE_MIN_SIZE;
+ ht->nentries = 0;
+
+ size_t buckets_size = ht->nbuckets * sizeof(ht->buckets[0]);
+ ht->buckets = alloc.malloc(buckets_size);
+ if (ht->buckets == NULL) {
+ alloc.free(ht);
+ return NULL;
+ }
+ memset(ht->buckets, 0, buckets_size);
+
+ ht->get_entry_func = _Py_hashtable_get_entry_generic;
+ ht->hash_func = hash_func;
+ ht->compare_func = compare_func;
+ ht->key_destroy_func = key_destroy_func;
+ ht->value_destroy_func = value_destroy_func;
+ ht->alloc = alloc;
+ if (ht->hash_func == _Py_hashtable_hash_ptr
+ && ht->compare_func == _Py_hashtable_compare_direct)
+ {
+ ht->get_entry_func = _Py_hashtable_get_entry_ptr;
+ }
+ return ht;
+}
+
+
+_Py_hashtable_t *
+_Py_hashtable_new(_Py_hashtable_hash_func hash_func,
+ _Py_hashtable_compare_func compare_func)
+{
+ return _Py_hashtable_new_full(hash_func, compare_func,
+ NULL, NULL, NULL);
+}
+
+
+static void
+_Py_hashtable_destroy_entry(_Py_hashtable_t *ht, _Py_hashtable_entry_t *entry)
+{
+ if (ht->key_destroy_func) {
+ ht->key_destroy_func(entry->key);
+ }
+ if (ht->value_destroy_func) {
+ ht->value_destroy_func(entry->value);
+ }
+ ht->alloc.free(entry);
+}
+
+
+void
+_Py_hashtable_clear(_Py_hashtable_t *ht)
+{
+ for (size_t i=0; i < ht->nbuckets; i++) {
+ _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, i);
+ while (entry != NULL) {
+ _Py_hashtable_entry_t *next = ENTRY_NEXT(entry);
+ _Py_hashtable_destroy_entry(ht, entry);
+ entry = next;
+ }
+ _Py_slist_init(&ht->buckets[i]);
+ }
+ ht->nentries = 0;
+ // Ignore failure: clear function is not expected to fail
+ // because of a memory allocation failure.
+ (void)hashtable_rehash(ht);
+}
+
+
+void
+_Py_hashtable_destroy(_Py_hashtable_t *ht)
+{
+ for (size_t i = 0; i < ht->nbuckets; i++) {
+ _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, i);
+ while (entry) {
+ _Py_hashtable_entry_t *entry_next = ENTRY_NEXT(entry);
+ _Py_hashtable_destroy_entry(ht, entry);
+ entry = entry_next;
+ }
+ }
+
+ ht->alloc.free(ht->buckets);
+ ht->alloc.free(ht);
+}
diff --git a/contrib/tools/python3/src/Python/import.c b/contrib/tools/python3/src/Python/import.c
index a6e0841b72..e4dbf4b0d8 100644
--- a/contrib/tools/python3/src/Python/import.c
+++ b/contrib/tools/python3/src/Python/import.c
@@ -3,15 +3,15 @@
#include "Python.h"
#include "Python-ast.h"
-#undef Yield /* undefine macro conflicting with <winbase.h> */
-#include "pycore_initconfig.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pyhash.h"
-#include "pycore_pylifecycle.h"
-#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
-#include "pycore_interp.h" // _PyInterpreterState_ClearModules()
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "pycore_sysmodule.h"
+#undef Yield /* undefine macro conflicting with <winbase.h> */
+#include "pycore_initconfig.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pyhash.h"
+#include "pycore_pylifecycle.h"
+#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
+#include "pycore_interp.h" // _PyInterpreterState_ClearModules()
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_sysmodule.h"
#include "errcode.h"
#include "marshal.h"
#include "code.h"
@@ -27,9 +27,9 @@ extern "C" {
#define CACHEDIR "__pycache__"
-/* Forward references */
-static PyObject *import_add_module(PyThreadState *tstate, PyObject *name);
-
+/* Forward references */
+static PyObject *import_add_module(PyThreadState *tstate, PyObject *name);
+
/* See _PyImport_FixupExtensionObject() below */
static PyObject *extensions = NULL;
@@ -39,9 +39,9 @@ extern struct _inittab _PyImport_Inittab[];
struct _inittab *PyImport_Inittab = _PyImport_Inittab;
static struct _inittab *inittab_copy = NULL;
-_Py_IDENTIFIER(__path__);
-_Py_IDENTIFIER(__spec__);
-
+_Py_IDENTIFIER(__path__);
+_Py_IDENTIFIER(__spec__);
+
/*[clinic input]
module _imp
[clinic start generated code]*/
@@ -51,8 +51,8 @@ module _imp
/* Initialize things */
-PyStatus
-_PyImportHooks_Init(PyThreadState *tstate)
+PyStatus
+_PyImportHooks_Init(PyThreadState *tstate)
{
PyObject *v, *path_hooks = NULL;
int err = 0;
@@ -80,49 +80,49 @@ _PyImportHooks_Init(PyThreadState *tstate)
goto error;
}
Py_DECREF(path_hooks);
- return _PyStatus_OK();
+ return _PyStatus_OK();
error:
- _PyErr_Print(tstate);
- return _PyStatus_ERR("initializing sys.meta_path, sys.path_hooks, "
+ _PyErr_Print(tstate);
+ return _PyStatus_ERR("initializing sys.meta_path, sys.path_hooks, "
"or path_importer_cache failed");
}
-PyStatus
-_PyImportZip_Init(PyThreadState *tstate)
+PyStatus
+_PyImportZip_Init(PyThreadState *tstate)
{
- PyObject *path_hooks, *zipimport;
+ PyObject *path_hooks, *zipimport;
int err = 0;
path_hooks = PySys_GetObject("path_hooks");
if (path_hooks == NULL) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "unable to get sys.path_hooks");
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "unable to get sys.path_hooks");
goto error;
}
- int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose;
- if (verbose) {
+ int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose;
+ if (verbose) {
PySys_WriteStderr("# installing zipimport hook\n");
- }
+ }
- zipimport = PyImport_ImportModule("zipimport");
- if (zipimport == NULL) {
- _PyErr_Clear(tstate); /* No zip import module -- okay */
- if (verbose) {
+ zipimport = PyImport_ImportModule("zipimport");
+ if (zipimport == NULL) {
+ _PyErr_Clear(tstate); /* No zip import module -- okay */
+ if (verbose) {
PySys_WriteStderr("# can't import zipimport\n");
- }
+ }
}
else {
_Py_IDENTIFIER(zipimporter);
- PyObject *zipimporter = _PyObject_GetAttrId(zipimport,
+ PyObject *zipimporter = _PyObject_GetAttrId(zipimport,
&PyId_zipimporter);
- Py_DECREF(zipimport);
+ Py_DECREF(zipimport);
if (zipimporter == NULL) {
- _PyErr_Clear(tstate); /* No zipimporter object -- okay */
- if (verbose) {
- PySys_WriteStderr("# can't import zipimport.zipimporter\n");
- }
+ _PyErr_Clear(tstate); /* No zipimporter object -- okay */
+ if (verbose) {
+ PySys_WriteStderr("# can't import zipimport.zipimporter\n");
+ }
}
else {
/* sys.path_hooks.insert(0, zipimporter) */
@@ -131,17 +131,17 @@ _PyImportZip_Init(PyThreadState *tstate)
if (err < 0) {
goto error;
}
- if (verbose) {
- PySys_WriteStderr("# installed zipimport hook\n");
- }
+ if (verbose) {
+ PySys_WriteStderr("# installed zipimport hook\n");
+ }
}
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
error:
PyErr_Print();
- return _PyStatus_ERR("initializing zipimport failed");
+ return _PyStatus_ERR("initializing zipimport failed");
}
/* Locking primitives to prevent parallel imports of the same module
@@ -196,7 +196,7 @@ _PyImport_ReleaseLock(void)
return 1;
}
-#ifdef HAVE_FORK
+#ifdef HAVE_FORK
/* This function is called from PyOS_AfterFork_Child to ensure that newly
created child processes do not share locks with the parent.
We now acquire the import lock around fork() calls but on some platforms
@@ -206,8 +206,8 @@ void
_PyImport_ReInitLock(void)
{
if (import_lock != NULL) {
- if (_PyThread_at_fork_reinit(&import_lock) < 0) {
- _Py_FatalErrorFunc(__func__, "failed to create a new lock");
+ if (_PyThread_at_fork_reinit(&import_lock) < 0) {
+ _Py_FatalErrorFunc(__func__, "failed to create a new lock");
}
}
if (import_lock_level > 1) {
@@ -225,7 +225,7 @@ _PyImport_ReInitLock(void)
import_lock_level = 0;
}
}
-#endif
+#endif
/*[clinic input]
_imp.lock_held
@@ -296,12 +296,12 @@ _PyImport_Fini2(void)
PyMemAllocatorEx old_alloc;
_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- // Reset PyImport_Inittab
- PyImport_Inittab = _PyImport_Inittab;
-
+ // Reset PyImport_Inittab
+ PyImport_Inittab = _PyImport_Inittab;
+
/* Free memory allocated by PyImport_ExtendInittab() */
PyMem_RawFree(inittab_copy);
- inittab_copy = NULL;
+ inittab_copy = NULL;
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
}
@@ -311,9 +311,9 @@ _PyImport_Fini2(void)
PyObject *
PyImport_GetModuleDict(void)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->modules == NULL) {
- Py_FatalError("interpreter has no modules dictionary");
+ Py_FatalError("interpreter has no modules dictionary");
}
return interp->modules;
}
@@ -343,30 +343,30 @@ _PyImport_GetModuleId(struct _Py_Identifier *nameid)
int
_PyImport_SetModule(PyObject *name, PyObject *m)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *modules = tstate->interp->modules;
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *modules = tstate->interp->modules;
return PyObject_SetItem(modules, name, m);
}
int
_PyImport_SetModuleString(const char *name, PyObject *m)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *modules = tstate->interp->modules;
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *modules = tstate->interp->modules;
return PyMapping_SetItemString(modules, name, m);
}
-static PyObject *
-import_get_module(PyThreadState *tstate, PyObject *name)
+static PyObject *
+import_get_module(PyThreadState *tstate, PyObject *name)
{
- PyObject *modules = tstate->interp->modules;
+ PyObject *modules = tstate->interp->modules;
if (modules == NULL) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "unable to get sys.modules");
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "unable to get sys.modules");
return NULL;
}
-
- PyObject *m;
+
+ PyObject *m;
Py_INCREF(modules);
if (PyDict_CheckExact(modules)) {
m = PyDict_GetItemWithError(modules, name); /* borrowed */
@@ -374,8 +374,8 @@ import_get_module(PyThreadState *tstate, PyObject *name)
}
else {
m = PyObject_GetItem(modules, name);
- if (m == NULL && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
- _PyErr_Clear(tstate);
+ if (m == NULL && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ _PyErr_Clear(tstate);
}
}
Py_DECREF(modules);
@@ -383,35 +383,35 @@ import_get_module(PyThreadState *tstate, PyObject *name)
}
-static int
-import_ensure_initialized(PyThreadState *tstate, PyObject *mod, PyObject *name)
-{
- PyInterpreterState *interp = tstate->interp;
- PyObject *spec;
-
- _Py_IDENTIFIER(_lock_unlock_module);
-
- /* Optimization: only call _bootstrap._lock_unlock_module() if
- __spec__._initializing is true.
- NOTE: because of this, initializing must be set *before*
- stuffing the new module in sys.modules.
- */
- spec = _PyObject_GetAttrId(mod, &PyId___spec__);
- int busy = _PyModuleSpec_IsInitializing(spec);
- Py_XDECREF(spec);
- if (busy) {
- /* Wait until module is done importing. */
- PyObject *value = _PyObject_CallMethodIdOneArg(
- interp->importlib, &PyId__lock_unlock_module, name);
- if (value == NULL) {
- return -1;
- }
- Py_DECREF(value);
- }
- return 0;
-}
-
-
+static int
+import_ensure_initialized(PyThreadState *tstate, PyObject *mod, PyObject *name)
+{
+ PyInterpreterState *interp = tstate->interp;
+ PyObject *spec;
+
+ _Py_IDENTIFIER(_lock_unlock_module);
+
+ /* Optimization: only call _bootstrap._lock_unlock_module() if
+ __spec__._initializing is true.
+ NOTE: because of this, initializing must be set *before*
+ stuffing the new module in sys.modules.
+ */
+ spec = _PyObject_GetAttrId(mod, &PyId___spec__);
+ int busy = _PyModuleSpec_IsInitializing(spec);
+ Py_XDECREF(spec);
+ if (busy) {
+ /* Wait until module is done importing. */
+ PyObject *value = _PyObject_CallMethodIdOneArg(
+ interp->importlib, &PyId__lock_unlock_module, name);
+ if (value == NULL) {
+ return -1;
+ }
+ Py_DECREF(value);
+ }
+ return 0;
+}
+
+
/* List of names to clear in sys */
static const char * const sys_deletes[] = {
"path", "argv", "ps1", "ps2",
@@ -431,14 +431,14 @@ static const char * const sys_files[] = {
/* Un-initialize things, as good as we can */
void
-_PyImport_Cleanup(PyThreadState *tstate)
+_PyImport_Cleanup(PyThreadState *tstate)
{
- PyInterpreterState *interp = tstate->interp;
- PyObject *modules = interp->modules;
- if (modules == NULL) {
- /* Already done */
- return;
- }
+ PyInterpreterState *interp = tstate->interp;
+ PyObject *modules = interp->modules;
+ if (modules == NULL) {
+ /* Already done */
+ return;
+ }
/* Delete some special variables first. These are common
places where user values hide and people complain when their
@@ -448,37 +448,37 @@ _PyImport_Cleanup(PyThreadState *tstate)
/* XXX Perhaps these precautions are obsolete. Who knows? */
- int verbose = _PyInterpreterState_GetConfig(interp)->verbose;
- if (verbose) {
+ int verbose = _PyInterpreterState_GetConfig(interp)->verbose;
+ if (verbose) {
PySys_WriteStderr("# clear builtins._\n");
- }
+ }
if (PyDict_SetItemString(interp->builtins, "_", Py_None) < 0) {
- PyErr_WriteUnraisable(NULL);
+ PyErr_WriteUnraisable(NULL);
}
- const char * const *p;
+ const char * const *p;
for (p = sys_deletes; *p != NULL; p++) {
- if (verbose) {
+ if (verbose) {
PySys_WriteStderr("# clear sys.%s\n", *p);
- }
+ }
if (PyDict_SetItemString(interp->sysdict, *p, Py_None) < 0) {
- PyErr_WriteUnraisable(NULL);
+ PyErr_WriteUnraisable(NULL);
}
}
for (p = sys_files; *p != NULL; p+=2) {
- if (verbose) {
+ if (verbose) {
PySys_WriteStderr("# restore sys.%s\n", *p);
- }
- PyObject *value = _PyDict_GetItemStringWithError(interp->sysdict,
- *(p+1));
- if (value == NULL) {
- if (_PyErr_Occurred(tstate)) {
- PyErr_WriteUnraisable(NULL);
- }
+ }
+ PyObject *value = _PyDict_GetItemStringWithError(interp->sysdict,
+ *(p+1));
+ if (value == NULL) {
+ if (_PyErr_Occurred(tstate)) {
+ PyErr_WriteUnraisable(NULL);
+ }
value = Py_None;
- }
+ }
if (PyDict_SetItemString(interp->sysdict, *p, value) < 0) {
- PyErr_WriteUnraisable(NULL);
+ PyErr_WriteUnraisable(NULL);
}
}
@@ -486,10 +486,10 @@ _PyImport_Cleanup(PyThreadState *tstate)
modules when they are removed from sys.modules. The name is used
for diagnosis messages (in verbose mode), while the weakref helps
detect those modules which have been held alive. */
- PyObject *weaklist = PyList_New(0);
- if (weaklist == NULL) {
- PyErr_WriteUnraisable(NULL);
- }
+ PyObject *weaklist = PyList_New(0);
+ if (weaklist == NULL) {
+ PyErr_WriteUnraisable(NULL);
+ }
#define STORE_MODULE_WEAKREF(name, mod) \
if (weaklist != NULL) { \
@@ -497,31 +497,31 @@ _PyImport_Cleanup(PyThreadState *tstate)
if (wr) { \
PyObject *tup = PyTuple_Pack(2, name, wr); \
if (!tup || PyList_Append(weaklist, tup) < 0) { \
- PyErr_WriteUnraisable(NULL); \
+ PyErr_WriteUnraisable(NULL); \
} \
Py_XDECREF(tup); \
Py_DECREF(wr); \
} \
else { \
- PyErr_WriteUnraisable(NULL); \
+ PyErr_WriteUnraisable(NULL); \
} \
}
#define CLEAR_MODULE(name, mod) \
if (PyModule_Check(mod)) { \
- if (verbose && PyUnicode_Check(name)) { \
+ if (verbose && PyUnicode_Check(name)) { \
PySys_FormatStderr("# cleanup[2] removing %U\n", name); \
- } \
+ } \
STORE_MODULE_WEAKREF(name, mod); \
if (PyObject_SetItem(modules, name, Py_None) < 0) { \
- PyErr_WriteUnraisable(NULL); \
+ PyErr_WriteUnraisable(NULL); \
} \
}
/* Remove all modules from sys.modules, hoping that garbage collection
can reclaim most of them. */
if (PyDict_CheckExact(modules)) {
- Py_ssize_t pos = 0;
- PyObject *key, *value;
+ Py_ssize_t pos = 0;
+ PyObject *key, *value;
while (PyDict_Next(modules, &pos, &key, &value)) {
CLEAR_MODULE(key, value);
}
@@ -529,14 +529,14 @@ _PyImport_Cleanup(PyThreadState *tstate)
else {
PyObject *iterator = PyObject_GetIter(modules);
if (iterator == NULL) {
- PyErr_WriteUnraisable(NULL);
+ PyErr_WriteUnraisable(NULL);
}
else {
- PyObject *key;
+ PyObject *key;
while ((key = PyIter_Next(iterator))) {
- PyObject *value = PyObject_GetItem(modules, key);
+ PyObject *value = PyObject_GetItem(modules, key);
if (value == NULL) {
- PyErr_WriteUnraisable(NULL);
+ PyErr_WriteUnraisable(NULL);
continue;
}
CLEAR_MODULE(key, value);
@@ -544,7 +544,7 @@ _PyImport_Cleanup(PyThreadState *tstate)
Py_DECREF(key);
}
if (PyErr_Occurred()) {
- PyErr_WriteUnraisable(NULL);
+ PyErr_WriteUnraisable(NULL);
}
Py_DECREF(iterator);
}
@@ -556,26 +556,26 @@ _PyImport_Cleanup(PyThreadState *tstate)
}
else {
_Py_IDENTIFIER(clear);
- if (_PyObject_CallMethodIdNoArgs(modules, &PyId_clear) == NULL) {
- PyErr_WriteUnraisable(NULL);
- }
+ if (_PyObject_CallMethodIdNoArgs(modules, &PyId_clear) == NULL) {
+ PyErr_WriteUnraisable(NULL);
+ }
}
/* Restore the original builtins dict, to ensure that any
user data gets cleared. */
- PyObject *dict = PyDict_Copy(interp->builtins);
- if (dict == NULL) {
- PyErr_WriteUnraisable(NULL);
- }
+ PyObject *dict = PyDict_Copy(interp->builtins);
+ if (dict == NULL) {
+ PyErr_WriteUnraisable(NULL);
+ }
PyDict_Clear(interp->builtins);
- if (PyDict_Update(interp->builtins, interp->builtins_copy)) {
- _PyErr_Clear(tstate);
- }
+ if (PyDict_Update(interp->builtins, interp->builtins_copy)) {
+ _PyErr_Clear(tstate);
+ }
Py_XDECREF(dict);
/* Collect references */
_PyGC_CollectNoFail();
/* Dump GC stats before it's too late, since it uses the warnings
machinery. */
- _PyGC_DumpShutdownStats(tstate);
+ _PyGC_DumpShutdownStats(tstate);
/* Now, if there are any modules left alive, clear their globals to
minimize potential leaks. All C extension modules actually end
@@ -589,10 +589,10 @@ _PyImport_Cleanup(PyThreadState *tstate)
module last. Likewise, we don't delete sys until the very
end because it is implicitly referenced (e.g. by print). */
if (weaklist != NULL) {
- Py_ssize_t i;
- /* Since dict is ordered in CPython 3.6+, modules are saved in
- importing order. First clear modules imported later. */
- for (i = PyList_GET_SIZE(weaklist) - 1; i >= 0; i--) {
+ Py_ssize_t i;
+ /* Since dict is ordered in CPython 3.6+, modules are saved in
+ importing order. First clear modules imported later. */
+ for (i = PyList_GET_SIZE(weaklist) - 1; i >= 0; i--) {
PyObject *tup = PyList_GET_ITEM(weaklist, i);
PyObject *name = PyTuple_GET_ITEM(tup, 0);
PyObject *mod = PyWeakref_GET_OBJECT(PyTuple_GET_ITEM(tup, 1));
@@ -603,9 +603,9 @@ _PyImport_Cleanup(PyThreadState *tstate)
if (dict == interp->builtins || dict == interp->sysdict)
continue;
Py_INCREF(mod);
- if (verbose && PyUnicode_Check(name)) {
+ if (verbose && PyUnicode_Check(name)) {
PySys_FormatStderr("# cleanup[3] wiping %U\n", name);
- }
+ }
_PyModule_Clear(mod);
Py_DECREF(mod);
}
@@ -613,18 +613,18 @@ _PyImport_Cleanup(PyThreadState *tstate)
}
/* Next, delete sys and builtins (in that order) */
- if (verbose) {
+ if (verbose) {
PySys_FormatStderr("# cleanup[3] wiping sys\n");
- }
+ }
_PyModule_ClearDict(interp->sysdict);
- if (verbose) {
+ if (verbose) {
PySys_FormatStderr("# cleanup[3] wiping builtins\n");
- }
+ }
_PyModule_ClearDict(interp->builtins);
- /* Clear module dict copies stored in the interpreter state */
- _PyInterpreterState_ClearModules(interp);
-
+ /* Clear module dict copies stored in the interpreter state */
+ _PyInterpreterState_ClearModules(interp);
+
/* Clear and delete the modules directory. Actual modules will
still be there only if imported during the execution of some
destructor. */
@@ -645,7 +645,7 @@ long
PyImport_GetMagicNumber(void)
{
long res;
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
PyObject *external, *pyc_magic;
external = PyObject_GetAttrString(interp->importlib, "_bootstrap_external");
@@ -688,66 +688,66 @@ PyImport_GetMagicTag(void)
int
_PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
- PyObject *filename, PyObject *modules)
+ PyObject *filename, PyObject *modules)
{
if (mod == NULL || !PyModule_Check(mod)) {
PyErr_BadInternalCall();
return -1;
}
-
- struct PyModuleDef *def = PyModule_GetDef(mod);
+
+ struct PyModuleDef *def = PyModule_GetDef(mod);
if (!def) {
PyErr_BadInternalCall();
return -1;
}
-
- PyThreadState *tstate = _PyThreadState_GET();
- if (PyObject_SetItem(modules, name, mod) < 0) {
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (PyObject_SetItem(modules, name, mod) < 0) {
return -1;
- }
- if (_PyState_AddModule(tstate, mod, def) < 0) {
+ }
+ if (_PyState_AddModule(tstate, mod, def) < 0) {
PyMapping_DelItem(modules, name);
return -1;
}
-
- // bpo-44050: Extensions and def->m_base.m_copy can be updated
- // when the extension module doesn't support sub-interpreters.
- if (_Py_IsMainInterpreter(tstate) || def->m_size == -1) {
- if (def->m_size == -1) {
- if (def->m_base.m_copy) {
- /* Somebody already imported the module,
- likely under a different name.
- XXX this should really not happen. */
- Py_CLEAR(def->m_base.m_copy);
- }
- PyObject *dict = PyModule_GetDict(mod);
- if (dict == NULL) {
- return -1;
- }
- def->m_base.m_copy = PyDict_Copy(dict);
- if (def->m_base.m_copy == NULL) {
- return -1;
- }
+
+ // bpo-44050: Extensions and def->m_base.m_copy can be updated
+ // when the extension module doesn't support sub-interpreters.
+ if (_Py_IsMainInterpreter(tstate) || def->m_size == -1) {
+ if (def->m_size == -1) {
+ if (def->m_base.m_copy) {
+ /* Somebody already imported the module,
+ likely under a different name.
+ XXX this should really not happen. */
+ Py_CLEAR(def->m_base.m_copy);
+ }
+ PyObject *dict = PyModule_GetDict(mod);
+ if (dict == NULL) {
+ return -1;
+ }
+ def->m_base.m_copy = PyDict_Copy(dict);
+ if (def->m_base.m_copy == NULL) {
+ return -1;
+ }
}
-
- if (extensions == NULL) {
- extensions = PyDict_New();
- if (extensions == NULL) {
- return -1;
- }
- }
-
- PyObject *key = PyTuple_Pack(2, filename, name);
- if (key == NULL) {
+
+ if (extensions == NULL) {
+ extensions = PyDict_New();
+ if (extensions == NULL) {
+ return -1;
+ }
+ }
+
+ PyObject *key = PyTuple_Pack(2, filename, name);
+ if (key == NULL) {
return -1;
- }
- int res = PyDict_SetItem(extensions, key, (PyObject *)def);
- Py_DECREF(key);
- if (res < 0) {
+ }
+ int res = PyDict_SetItem(extensions, key, (PyObject *)def);
+ Py_DECREF(key);
+ if (res < 0) {
return -1;
- }
+ }
}
-
+
return 0;
}
@@ -764,32 +764,32 @@ _PyImport_FixupBuiltin(PyObject *mod, const char *name, PyObject *modules)
return res;
}
-static PyObject *
-import_find_extension(PyThreadState *tstate, PyObject *name,
- PyObject *filename)
+static PyObject *
+import_find_extension(PyThreadState *tstate, PyObject *name,
+ PyObject *filename)
{
- if (extensions == NULL) {
- return NULL;
- }
+ if (extensions == NULL) {
+ return NULL;
+ }
- PyObject *key = PyTuple_Pack(2, filename, name);
- if (key == NULL) {
+ PyObject *key = PyTuple_Pack(2, filename, name);
+ if (key == NULL) {
return NULL;
- }
- PyModuleDef* def = (PyModuleDef *)PyDict_GetItemWithError(extensions, key);
+ }
+ PyModuleDef* def = (PyModuleDef *)PyDict_GetItemWithError(extensions, key);
Py_DECREF(key);
- if (def == NULL) {
+ if (def == NULL) {
return NULL;
- }
-
- PyObject *mod, *mdict;
- PyObject *modules = tstate->interp->modules;
-
+ }
+
+ PyObject *mod, *mdict;
+ PyObject *modules = tstate->interp->modules;
+
if (def->m_size == -1) {
/* Module does not support repeated initialization */
if (def->m_base.m_copy == NULL)
return NULL;
- mod = import_add_module(tstate, name);
+ mod = import_add_module(tstate, name);
if (mod == NULL)
return NULL;
mdict = PyModule_GetDict(mod);
@@ -810,35 +810,35 @@ import_find_extension(PyThreadState *tstate, PyObject *name,
}
Py_DECREF(mod);
}
- if (_PyState_AddModule(tstate, mod, def) < 0) {
+ if (_PyState_AddModule(tstate, mod, def) < 0) {
PyMapping_DelItem(modules, name);
return NULL;
}
-
- int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose;
- if (verbose) {
+
+ int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose;
+ if (verbose) {
PySys_FormatStderr("import %U # previously loaded (%R)\n",
- name, filename);
- }
+ name, filename);
+ }
return mod;
-}
+}
-PyObject *
-_PyImport_FindExtensionObject(PyObject *name, PyObject *filename)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return import_find_extension(tstate, name, filename);
+PyObject *
+_PyImport_FindExtensionObject(PyObject *name, PyObject *filename)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return import_find_extension(tstate, name, filename);
}
-
+
PyObject *
-_PyImport_FindBuiltin(PyThreadState *tstate, const char *name)
+_PyImport_FindBuiltin(PyThreadState *tstate, const char *name)
{
PyObject *res, *nameobj;
nameobj = PyUnicode_InternFromString(name);
if (nameobj == NULL)
return NULL;
- res = import_find_extension(tstate, nameobj, nameobj);
+ res = import_find_extension(tstate, nameobj, nameobj);
Py_DECREF(nameobj);
return res;
}
@@ -849,15 +849,15 @@ _PyImport_FindBuiltin(PyThreadState *tstate, const char *name)
Because the former action is most common, THIS DOES NOT RETURN A
'NEW' REFERENCE! */
-static PyObject *
-import_add_module(PyThreadState *tstate, PyObject *name)
+static PyObject *
+import_add_module(PyThreadState *tstate, PyObject *name)
{
- PyObject *modules = tstate->interp->modules;
- if (modules == NULL) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "no import module dictionary");
- return NULL;
- }
+ PyObject *modules = tstate->interp->modules;
+ if (modules == NULL) {
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "no import module dictionary");
+ return NULL;
+ }
PyObject *m;
if (PyDict_CheckExact(modules)) {
@@ -865,13 +865,13 @@ import_add_module(PyThreadState *tstate, PyObject *name)
}
else {
m = PyObject_GetItem(modules, name);
- // For backward-compatibility we copy the behavior
+ // For backward-compatibility we copy the behavior
// of PyDict_GetItemWithError().
- if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
- _PyErr_Clear(tstate);
+ if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ _PyErr_Clear(tstate);
}
}
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
return NULL;
}
if (m != NULL && PyModule_Check(m)) {
@@ -890,49 +890,49 @@ import_add_module(PyThreadState *tstate, PyObject *name)
}
PyObject *
-PyImport_AddModuleObject(PyObject *name)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return import_add_module(tstate, name);
-}
-
-
-PyObject *
+PyImport_AddModuleObject(PyObject *name)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return import_add_module(tstate, name);
+}
+
+
+PyObject *
PyImport_AddModule(const char *name)
{
- PyObject *nameobj = PyUnicode_FromString(name);
- if (nameobj == NULL) {
+ PyObject *nameobj = PyUnicode_FromString(name);
+ if (nameobj == NULL) {
return NULL;
- }
- PyObject *module = PyImport_AddModuleObject(nameobj);
+ }
+ PyObject *module = PyImport_AddModuleObject(nameobj);
Py_DECREF(nameobj);
return module;
}
-/* Remove name from sys.modules, if it's there.
- * Can be called with an exception raised.
- * If fail to remove name a new exception will be chained with the old
- * exception, otherwise the old exception is preserved.
- */
+/* Remove name from sys.modules, if it's there.
+ * Can be called with an exception raised.
+ * If fail to remove name a new exception will be chained with the old
+ * exception, otherwise the old exception is preserved.
+ */
static void
-remove_module(PyThreadState *tstate, PyObject *name)
+remove_module(PyThreadState *tstate, PyObject *name)
{
- PyObject *type, *value, *traceback;
- _PyErr_Fetch(tstate, &type, &value, &traceback);
-
- PyObject *modules = tstate->interp->modules;
- if (PyDict_CheckExact(modules)) {
- PyObject *mod = _PyDict_Pop(modules, name, Py_None);
- Py_XDECREF(mod);
- }
- else if (PyMapping_DelItem(modules, name) < 0) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
- _PyErr_Clear(tstate);
- }
+ PyObject *type, *value, *traceback;
+ _PyErr_Fetch(tstate, &type, &value, &traceback);
+
+ PyObject *modules = tstate->interp->modules;
+ if (PyDict_CheckExact(modules)) {
+ PyObject *mod = _PyDict_Pop(modules, name, Py_None);
+ Py_XDECREF(mod);
}
-
- _PyErr_ChainExceptions(type, value, traceback);
+ else if (PyMapping_DelItem(modules, name) < 0) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ _PyErr_Clear(tstate);
+ }
+ }
+
+ _PyErr_ChainExceptions(type, value, traceback);
}
@@ -986,18 +986,18 @@ PyImport_ExecCodeModuleWithPathnames(const char *name, PyObject *co,
goto error;
}
else if (cpathobj != NULL) {
- PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyInterpreterState *interp = _PyInterpreterState_GET();
_Py_IDENTIFIER(_get_sourcefile);
if (interp == NULL) {
- Py_FatalError("no current interpreter");
+ Py_FatalError("no current interpreter");
}
external= PyObject_GetAttrString(interp->importlib,
"_bootstrap_external");
if (external != NULL) {
- pathobj = _PyObject_CallMethodIdOneArg(
- external, &PyId__get_sourcefile, cpathobj);
+ pathobj = _PyObject_CallMethodIdOneArg(
+ external, &PyId__get_sourcefile, cpathobj);
Py_DECREF(external);
}
if (pathobj == NULL)
@@ -1015,23 +1015,23 @@ error:
}
static PyObject *
-module_dict_for_exec(PyThreadState *tstate, PyObject *name)
+module_dict_for_exec(PyThreadState *tstate, PyObject *name)
{
- _Py_IDENTIFIER(__builtins__);
+ _Py_IDENTIFIER(__builtins__);
PyObject *m, *d = NULL;
- m = import_add_module(tstate, name);
+ m = import_add_module(tstate, name);
if (m == NULL)
return NULL;
/* If the module is being reloaded, we get the old module back
and re-use its dict to exec the new code. */
d = PyModule_GetDict(m);
- if (_PyDict_GetItemIdWithError(d, &PyId___builtins__) == NULL) {
- if (_PyErr_Occurred(tstate) ||
- _PyDict_SetItemId(d, &PyId___builtins__,
- PyEval_GetBuiltins()) != 0)
- {
- remove_module(tstate, name);
+ if (_PyDict_GetItemIdWithError(d, &PyId___builtins__) == NULL) {
+ if (_PyErr_Occurred(tstate) ||
+ _PyDict_SetItemId(d, &PyId___builtins__,
+ PyEval_GetBuiltins()) != 0)
+ {
+ remove_module(tstate, name);
return NULL;
}
}
@@ -1040,23 +1040,23 @@ module_dict_for_exec(PyThreadState *tstate, PyObject *name)
}
static PyObject *
-exec_code_in_module(PyThreadState *tstate, PyObject *name,
- PyObject *module_dict, PyObject *code_object)
+exec_code_in_module(PyThreadState *tstate, PyObject *name,
+ PyObject *module_dict, PyObject *code_object)
{
PyObject *v, *m;
v = PyEval_EvalCode(code_object, module_dict, module_dict);
if (v == NULL) {
- remove_module(tstate, name);
+ remove_module(tstate, name);
return NULL;
}
Py_DECREF(v);
- m = import_get_module(tstate, name);
- if (m == NULL && !_PyErr_Occurred(tstate)) {
- _PyErr_Format(tstate, PyExc_ImportError,
- "Loaded module %R not found in sys.modules",
- name);
+ m = import_get_module(tstate, name);
+ if (m == NULL && !_PyErr_Occurred(tstate)) {
+ _PyErr_Format(tstate, PyExc_ImportError,
+ "Loaded module %R not found in sys.modules",
+ name);
}
return m;
@@ -1066,11 +1066,11 @@ PyObject*
PyImport_ExecCodeModuleObject(PyObject *name, PyObject *co, PyObject *pathname,
PyObject *cpathname)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *d, *external, *res;
_Py_IDENTIFIER(_fix_up_module);
- d = module_dict_for_exec(tstate, name);
+ d = module_dict_for_exec(tstate, name);
if (d == NULL) {
return NULL;
}
@@ -1078,8 +1078,8 @@ PyImport_ExecCodeModuleObject(PyObject *name, PyObject *co, PyObject *pathname,
if (pathname == NULL) {
pathname = ((PyCodeObject *)co)->co_filename;
}
- external = PyObject_GetAttrString(tstate->interp->importlib,
- "_bootstrap_external");
+ external = PyObject_GetAttrString(tstate->interp->importlib,
+ "_bootstrap_external");
if (external == NULL)
return NULL;
res = _PyObject_CallMethodIdObjArgs(external,
@@ -1088,7 +1088,7 @@ PyImport_ExecCodeModuleObject(PyObject *name, PyObject *co, PyObject *pathname,
Py_DECREF(external);
if (res != NULL) {
Py_DECREF(res);
- res = exec_code_in_module(tstate, name, d, co);
+ res = exec_code_in_module(tstate, name, d, co);
}
return res;
}
@@ -1187,8 +1187,8 @@ is_builtin(PyObject *name)
Returns a borrowed reference. */
static PyObject *
-get_path_importer(PyThreadState *tstate, PyObject *path_importer_cache,
- PyObject *path_hooks, PyObject *p)
+get_path_importer(PyThreadState *tstate, PyObject *path_importer_cache,
+ PyObject *path_hooks, PyObject *p)
{
PyObject *importer;
Py_ssize_t j, nhooks;
@@ -1201,8 +1201,8 @@ get_path_importer(PyThreadState *tstate, PyObject *path_importer_cache,
if (nhooks < 0)
return NULL; /* Shouldn't happen */
- importer = PyDict_GetItemWithError(path_importer_cache, p);
- if (importer != NULL || _PyErr_Occurred(tstate))
+ importer = PyDict_GetItemWithError(path_importer_cache, p);
+ if (importer != NULL || _PyErr_Occurred(tstate))
return importer;
/* set path_importer_cache[p] to None to avoid recursion */
@@ -1213,14 +1213,14 @@ get_path_importer(PyThreadState *tstate, PyObject *path_importer_cache,
PyObject *hook = PyList_GetItem(path_hooks, j);
if (hook == NULL)
return NULL;
- importer = PyObject_CallOneArg(hook, p);
+ importer = PyObject_CallOneArg(hook, p);
if (importer != NULL)
break;
- if (!_PyErr_ExceptionMatches(tstate, PyExc_ImportError)) {
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_ImportError)) {
return NULL;
}
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
}
if (importer == NULL) {
return Py_None;
@@ -1234,16 +1234,16 @@ get_path_importer(PyThreadState *tstate, PyObject *path_importer_cache,
return importer;
}
-PyObject *
-PyImport_GetImporter(PyObject *path)
-{
- PyThreadState *tstate = _PyThreadState_GET();
+PyObject *
+PyImport_GetImporter(PyObject *path)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *importer=NULL, *path_importer_cache=NULL, *path_hooks=NULL;
path_importer_cache = PySys_GetObject("path_importer_cache");
path_hooks = PySys_GetObject("path_hooks");
if (path_importer_cache != NULL && path_hooks != NULL) {
- importer = get_path_importer(tstate, path_importer_cache,
+ importer = get_path_importer(tstate, path_importer_cache,
path_hooks, path);
}
Py_XINCREF(importer); /* get_path_importer returns a borrowed reference */
@@ -1263,7 +1263,7 @@ static PyObject *
_imp_create_builtin(PyObject *module, PyObject *spec)
/*[clinic end generated code: output=ace7ff22271e6f39 input=37f966f890384e47]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
struct _inittab *p;
PyObject *name;
const char *namestr;
@@ -1275,7 +1275,7 @@ _imp_create_builtin(PyObject *module, PyObject *spec)
}
mod = _PyImport_FindExtensionObject(name, name);
- if (mod || _PyErr_Occurred(tstate)) {
+ if (mod || _PyErr_Occurred(tstate)) {
Py_DECREF(name);
Py_XINCREF(mod);
return mod;
@@ -1287,7 +1287,7 @@ _imp_create_builtin(PyObject *module, PyObject *spec)
return NULL;
}
- PyObject *modules = tstate->interp->modules;
+ PyObject *modules = tstate->interp->modules;
for (p = PyImport_Inittab; p->name != NULL; p++) {
PyModuleDef *def;
if (_PyUnicode_EqualToASCIIString(name, p->name)) {
@@ -1401,7 +1401,7 @@ is_frozen_package(PyObject *name)
int
PyImport_ImportFrozenModuleObject(PyObject *name)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
const struct _frozen *p;
PyObject *co, *m, *d;
int ispackage;
@@ -1412,9 +1412,9 @@ PyImport_ImportFrozenModuleObject(PyObject *name)
if (p == NULL)
return 0;
if (p->code == NULL) {
- _PyErr_Format(tstate, PyExc_ImportError,
- "Excluded frozen object named %R",
- name);
+ _PyErr_Format(tstate, PyExc_ImportError,
+ "Excluded frozen object named %R",
+ name);
return -1;
}
size = p->size;
@@ -1425,16 +1425,16 @@ PyImport_ImportFrozenModuleObject(PyObject *name)
if (co == NULL)
return -1;
if (!PyCode_Check(co)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "frozen object %R is not a code object",
- name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "frozen object %R is not a code object",
+ name);
goto err_return;
}
if (ispackage) {
/* Set __path__ to the empty list */
PyObject *l;
int err;
- m = import_add_module(tstate, name);
+ m = import_add_module(tstate, name);
if (m == NULL)
goto err_return;
d = PyModule_GetDict(m);
@@ -1447,18 +1447,18 @@ PyImport_ImportFrozenModuleObject(PyObject *name)
if (err != 0)
goto err_return;
}
- d = module_dict_for_exec(tstate, name);
+ d = module_dict_for_exec(tstate, name);
if (d == NULL) {
goto err_return;
}
- m = exec_code_in_module(tstate, name, d, co);
- if (m == NULL) {
+ m = exec_code_in_module(tstate, name, d, co);
+ if (m == NULL) {
goto err_return;
- }
+ }
Py_DECREF(co);
Py_DECREF(m);
return 1;
-
+
err_return:
Py_DECREF(co);
return -1;
@@ -1495,7 +1495,7 @@ PyImport_ImportModule(const char *name)
return result;
}
-
+
/* Import a module without blocking
*
* At first it tries to fetch the module from sys.modules. If the module was
@@ -1515,7 +1515,7 @@ PyImport_ImportModuleNoBlock(const char *name)
/* Remove importlib frames from the traceback,
* except in Verbose mode. */
static void
-remove_importlib_frames(PyThreadState *tstate)
+remove_importlib_frames(PyThreadState *tstate)
{
const char *importlib_filename = "<frozen importlib._bootstrap>";
const char *external_filename = "<frozen importlib._bootstrap_external>";
@@ -1530,11 +1530,11 @@ remove_importlib_frames(PyThreadState *tstate)
from the traceback. We always trim chunks
which end with a call to "_call_with_frames_removed". */
- _PyErr_Fetch(tstate, &exception, &value, &base_tb);
- if (!exception || _PyInterpreterState_GetConfig(tstate->interp)->verbose) {
+ _PyErr_Fetch(tstate, &exception, &value, &base_tb);
+ if (!exception || _PyInterpreterState_GetConfig(tstate->interp)->verbose) {
goto done;
- }
-
+ }
+
if (PyType_IsSubtype((PyTypeObject *) exception,
(PyTypeObject *) PyExc_ImportError))
always_trim = 1;
@@ -1545,7 +1545,7 @@ remove_importlib_frames(PyThreadState *tstate)
PyTracebackObject *traceback = (PyTracebackObject *)tb;
PyObject *next = (PyObject *) traceback->tb_next;
PyFrameObject *frame = traceback->tb_frame;
- PyCodeObject *code = PyFrame_GetCode(frame);
+ PyCodeObject *code = PyFrame_GetCode(frame);
int now_in_importlib;
assert(PyTraceBack_Check(tb));
@@ -1568,16 +1568,16 @@ remove_importlib_frames(PyThreadState *tstate)
else {
prev_link = (PyObject **) &traceback->tb_next;
}
- Py_DECREF(code);
+ Py_DECREF(code);
tb = next;
}
done:
- _PyErr_Restore(tstate, exception, value, base_tb);
+ _PyErr_Restore(tstate, exception, value, base_tb);
}
static PyObject *
-resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level)
+resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level)
{
_Py_IDENTIFIER(__package__);
_Py_IDENTIFIER(__name__);
@@ -1590,30 +1590,30 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level
int level_up;
if (globals == NULL) {
- _PyErr_SetString(tstate, PyExc_KeyError, "'__name__' not in globals");
+ _PyErr_SetString(tstate, PyExc_KeyError, "'__name__' not in globals");
goto error;
}
if (!PyDict_Check(globals)) {
- _PyErr_SetString(tstate, PyExc_TypeError, "globals must be a dict");
+ _PyErr_SetString(tstate, PyExc_TypeError, "globals must be a dict");
goto error;
}
- package = _PyDict_GetItemIdWithError(globals, &PyId___package__);
+ package = _PyDict_GetItemIdWithError(globals, &PyId___package__);
if (package == Py_None) {
package = NULL;
}
- else if (package == NULL && _PyErr_Occurred(tstate)) {
- goto error;
- }
- spec = _PyDict_GetItemIdWithError(globals, &PyId___spec__);
- if (spec == NULL && _PyErr_Occurred(tstate)) {
- goto error;
- }
+ else if (package == NULL && _PyErr_Occurred(tstate)) {
+ goto error;
+ }
+ spec = _PyDict_GetItemIdWithError(globals, &PyId___spec__);
+ if (spec == NULL && _PyErr_Occurred(tstate)) {
+ goto error;
+ }
if (package != NULL) {
Py_INCREF(package);
if (!PyUnicode_Check(package)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "package must be a string");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "package must be a string");
goto error;
}
else if (spec != NULL && spec != Py_None) {
@@ -1642,8 +1642,8 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level
goto error;
}
else if (!PyUnicode_Check(package)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "__spec__.parent must be a string");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "__spec__.parent must be a string");
goto error;
}
}
@@ -1654,26 +1654,26 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level
goto error;
}
- package = _PyDict_GetItemIdWithError(globals, &PyId___name__);
+ package = _PyDict_GetItemIdWithError(globals, &PyId___name__);
if (package == NULL) {
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_SetString(tstate, PyExc_KeyError,
- "'__name__' not in globals");
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_SetString(tstate, PyExc_KeyError,
+ "'__name__' not in globals");
+ }
goto error;
}
Py_INCREF(package);
if (!PyUnicode_Check(package)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "__name__ must be a string");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "__name__ must be a string");
goto error;
}
- if (_PyDict_GetItemIdWithError(globals, &PyId___path__) == NULL) {
+ if (_PyDict_GetItemIdWithError(globals, &PyId___path__) == NULL) {
Py_ssize_t dot;
- if (_PyErr_Occurred(tstate) || PyUnicode_READY(package) < 0) {
+ if (_PyErr_Occurred(tstate) || PyUnicode_READY(package) < 0) {
goto error;
}
@@ -1682,20 +1682,20 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level
if (dot == -2) {
goto error;
}
- else if (dot == -1) {
- goto no_parent_error;
+ else if (dot == -1) {
+ goto no_parent_error;
+ }
+ PyObject *substr = PyUnicode_Substring(package, 0, dot);
+ if (substr == NULL) {
+ goto error;
}
- PyObject *substr = PyUnicode_Substring(package, 0, dot);
- if (substr == NULL) {
- goto error;
- }
- Py_SETREF(package, substr);
+ Py_SETREF(package, substr);
}
}
last_dot = PyUnicode_GET_LENGTH(package);
if (last_dot == 0) {
- goto no_parent_error;
+ goto no_parent_error;
}
for (level_up = 1; level_up < level; level_up += 1) {
@@ -1704,9 +1704,9 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level
goto error;
}
else if (last_dot == -1) {
- _PyErr_SetString(tstate, PyExc_ImportError,
- "attempted relative import beyond top-level "
- "package");
+ _PyErr_SetString(tstate, PyExc_ImportError,
+ "attempted relative import beyond top-level "
+ "package");
goto error;
}
}
@@ -1721,39 +1721,39 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level
Py_DECREF(base);
return abs_name;
- no_parent_error:
- _PyErr_SetString(tstate, PyExc_ImportError,
- "attempted relative import "
- "with no known parent package");
-
+ no_parent_error:
+ _PyErr_SetString(tstate, PyExc_ImportError,
+ "attempted relative import "
+ "with no known parent package");
+
error:
Py_XDECREF(package);
return NULL;
}
static PyObject *
-import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
+import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
{
_Py_IDENTIFIER(_find_and_load);
PyObject *mod = NULL;
- PyInterpreterState *interp = tstate->interp;
- int import_time = _PyInterpreterState_GetConfig(interp)->import_time;
+ PyInterpreterState *interp = tstate->interp;
+ int import_time = _PyInterpreterState_GetConfig(interp)->import_time;
static int import_level;
static _PyTime_t accumulated;
_PyTime_t t1 = 0, accumulated_copy = accumulated;
- PyObject *sys_path = PySys_GetObject("path");
- PyObject *sys_meta_path = PySys_GetObject("meta_path");
- PyObject *sys_path_hooks = PySys_GetObject("path_hooks");
- if (_PySys_Audit(tstate, "import", "OOOOO",
- abs_name, Py_None, sys_path ? sys_path : Py_None,
- sys_meta_path ? sys_meta_path : Py_None,
- sys_path_hooks ? sys_path_hooks : Py_None) < 0) {
- return NULL;
- }
-
-
+ PyObject *sys_path = PySys_GetObject("path");
+ PyObject *sys_meta_path = PySys_GetObject("meta_path");
+ PyObject *sys_path_hooks = PySys_GetObject("path_hooks");
+ if (_PySys_Audit(tstate, "import", "OOOOO",
+ abs_name, Py_None, sys_path ? sys_path : Py_None,
+ sys_meta_path ? sys_meta_path : Py_None,
+ sys_path_hooks ? sys_path_hooks : Py_None) < 0) {
+ return NULL;
+ }
+
+
/* XOptions is initialized after first some imports.
* So we can't have negative cache before completed initialization.
* Anyway, importlib._find_and_load is much slower than
@@ -1799,38 +1799,38 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
}
PyObject *
-PyImport_GetModule(PyObject *name)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *mod;
-
- mod = import_get_module(tstate, name);
- if (mod != NULL && mod != Py_None) {
- if (import_ensure_initialized(tstate, mod, name) < 0) {
- Py_DECREF(mod);
- remove_importlib_frames(tstate);
- return NULL;
- }
- }
- return mod;
-}
-
-PyObject *
+PyImport_GetModule(PyObject *name)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *mod;
+
+ mod = import_get_module(tstate, name);
+ if (mod != NULL && mod != Py_None) {
+ if (import_ensure_initialized(tstate, mod, name) < 0) {
+ Py_DECREF(mod);
+ remove_importlib_frames(tstate);
+ return NULL;
+ }
+ }
+ return mod;
+}
+
+PyObject *
PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals,
PyObject *locals, PyObject *fromlist,
int level)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
_Py_IDENTIFIER(_handle_fromlist);
PyObject *abs_name = NULL;
PyObject *final_mod = NULL;
PyObject *mod = NULL;
PyObject *package = NULL;
- PyInterpreterState *interp = tstate->interp;
+ PyInterpreterState *interp = tstate->interp;
int has_from;
if (name == NULL) {
- _PyErr_SetString(tstate, PyExc_ValueError, "Empty module name");
+ _PyErr_SetString(tstate, PyExc_ValueError, "Empty module name");
goto error;
}
@@ -1838,45 +1838,45 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals,
for added performance. */
if (!PyUnicode_Check(name)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "module name must be a string");
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "module name must be a string");
goto error;
}
if (PyUnicode_READY(name) < 0) {
goto error;
}
if (level < 0) {
- _PyErr_SetString(tstate, PyExc_ValueError, "level must be >= 0");
+ _PyErr_SetString(tstate, PyExc_ValueError, "level must be >= 0");
goto error;
}
if (level > 0) {
- abs_name = resolve_name(tstate, name, globals, level);
+ abs_name = resolve_name(tstate, name, globals, level);
if (abs_name == NULL)
goto error;
}
else { /* level == 0 */
if (PyUnicode_GET_LENGTH(name) == 0) {
- _PyErr_SetString(tstate, PyExc_ValueError, "Empty module name");
+ _PyErr_SetString(tstate, PyExc_ValueError, "Empty module name");
goto error;
}
abs_name = name;
Py_INCREF(abs_name);
}
- mod = import_get_module(tstate, abs_name);
- if (mod == NULL && _PyErr_Occurred(tstate)) {
- goto error;
- }
-
+ mod = import_get_module(tstate, abs_name);
+ if (mod == NULL && _PyErr_Occurred(tstate)) {
+ goto error;
+ }
+
if (mod != NULL && mod != Py_None) {
- if (import_ensure_initialized(tstate, mod, abs_name) < 0) {
- goto error;
+ if (import_ensure_initialized(tstate, mod, abs_name) < 0) {
+ goto error;
}
}
else {
Py_XDECREF(mod);
- mod = import_find_and_load(tstate, abs_name);
+ mod = import_find_and_load(tstate, abs_name);
if (mod == NULL) {
goto error;
}
@@ -1923,14 +1923,14 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals,
goto error;
}
- final_mod = import_get_module(tstate, to_return);
+ final_mod = import_get_module(tstate, to_return);
Py_DECREF(to_return);
if (final_mod == NULL) {
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_Format(tstate, PyExc_KeyError,
- "%R not in sys.modules as expected",
- to_return);
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_Format(tstate, PyExc_KeyError,
+ "%R not in sys.modules as expected",
+ to_return);
+ }
goto error;
}
}
@@ -1941,29 +1941,29 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals,
}
}
else {
- PyObject *path;
- if (_PyObject_LookupAttrId(mod, &PyId___path__, &path) < 0) {
- goto error;
- }
- if (path) {
- Py_DECREF(path);
- final_mod = _PyObject_CallMethodIdObjArgs(
- interp->importlib, &PyId__handle_fromlist,
- mod, fromlist, interp->import_func, NULL);
- }
- else {
- final_mod = mod;
- Py_INCREF(mod);
- }
+ PyObject *path;
+ if (_PyObject_LookupAttrId(mod, &PyId___path__, &path) < 0) {
+ goto error;
+ }
+ if (path) {
+ Py_DECREF(path);
+ final_mod = _PyObject_CallMethodIdObjArgs(
+ interp->importlib, &PyId__handle_fromlist,
+ mod, fromlist, interp->import_func, NULL);
+ }
+ else {
+ final_mod = mod;
+ Py_INCREF(mod);
+ }
}
error:
Py_XDECREF(abs_name);
Py_XDECREF(mod);
Py_XDECREF(package);
- if (final_mod == NULL) {
- remove_importlib_frames(tstate);
- }
+ if (final_mod == NULL) {
+ remove_importlib_frames(tstate);
+ }
return final_mod;
}
@@ -1988,23 +1988,23 @@ PyImport_ImportModuleLevel(const char *name, PyObject *globals, PyObject *locals
PyObject *
PyImport_ReloadModule(PyObject *m)
{
- _Py_IDENTIFIER(importlib);
+ _Py_IDENTIFIER(importlib);
_Py_IDENTIFIER(reload);
PyObject *reloaded_module = NULL;
- PyObject *importlib = _PyImport_GetModuleId(&PyId_importlib);
- if (importlib == NULL) {
- if (PyErr_Occurred()) {
- return NULL;
- }
-
- importlib = PyImport_ImportModule("importlib");
- if (importlib == NULL) {
+ PyObject *importlib = _PyImport_GetModuleId(&PyId_importlib);
+ if (importlib == NULL) {
+ if (PyErr_Occurred()) {
+ return NULL;
+ }
+
+ importlib = PyImport_ImportModule("importlib");
+ if (importlib == NULL) {
return NULL;
}
}
- reloaded_module = _PyObject_CallMethodIdOneArg(importlib, &PyId_reload, m);
- Py_DECREF(importlib);
+ reloaded_module = _PyObject_CallMethodIdOneArg(importlib, &PyId_reload, m);
+ Py_DECREF(importlib);
return reloaded_module;
}
@@ -2021,7 +2021,7 @@ PyImport_ReloadModule(PyObject *m)
PyObject *
PyImport_Import(PyObject *module_name)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
static PyObject *silly_list = NULL;
static PyObject *builtins_str = NULL;
static PyObject *import_str = NULL;
@@ -2065,9 +2065,9 @@ PyImport_Import(PyObject *module_name)
/* Get the __import__ function from the builtins */
if (PyDict_Check(builtins)) {
import = PyObject_GetItem(builtins, import_str);
- if (import == NULL) {
- _PyErr_SetObject(tstate, PyExc_KeyError, import_str);
- }
+ if (import == NULL) {
+ _PyErr_SetObject(tstate, PyExc_KeyError, import_str);
+ }
}
else
import = PyObject_GetAttr(builtins, import_str);
@@ -2083,9 +2083,9 @@ PyImport_Import(PyObject *module_name)
goto err;
Py_DECREF(r);
- r = import_get_module(tstate, module_name);
- if (r == NULL && !_PyErr_Occurred(tstate)) {
- _PyErr_SetObject(tstate, PyExc_KeyError, module_name);
+ r = import_get_module(tstate, module_name);
+ if (r == NULL && !_PyErr_Occurred(tstate)) {
+ _PyErr_SetObject(tstate, PyExc_KeyError, module_name);
}
err:
@@ -2112,9 +2112,9 @@ _imp_extension_suffixes_impl(PyObject *module)
if (list == NULL)
return NULL;
#ifdef HAVE_DYNAMIC_LOADING
- const char *suffix;
- unsigned int index = 0;
-
+ const char *suffix;
+ unsigned int index = 0;
+
while ((suffix = _PyImport_DynLoadFiletab[index])) {
PyObject *item = PyUnicode_FromString(suffix);
if (item == NULL) {
@@ -2146,7 +2146,7 @@ static PyObject *
_imp_init_frozen_impl(PyObject *module, PyObject *name)
/*[clinic end generated code: output=fc0511ed869fd69c input=13019adfc04f3fb3]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
int ret;
PyObject *m;
@@ -2156,7 +2156,7 @@ _imp_init_frozen_impl(PyObject *module, PyObject *name)
if (ret == 0) {
Py_RETURN_NONE;
}
- m = import_add_module(tstate, name);
+ m = import_add_module(tstate, name);
Py_XINCREF(m);
return m;
}
@@ -2415,16 +2415,16 @@ PyInit__imp(void)
PyObject *m, *d;
m = PyModule_Create(&impmodule);
- if (m == NULL) {
+ if (m == NULL) {
goto failure;
- }
+ }
d = PyModule_GetDict(m);
- if (d == NULL) {
+ if (d == NULL) {
goto failure;
- }
-
- const wchar_t *mode = _Py_GetConfig()->check_hash_pycs_mode;
- PyObject *pyc_mode = PyUnicode_FromWideChar(mode, -1);
+ }
+
+ const wchar_t *mode = _Py_GetConfig()->check_hash_pycs_mode;
+ PyObject *pyc_mode = PyUnicode_FromWideChar(mode, -1);
if (pyc_mode == NULL) {
goto failure;
}
diff --git a/contrib/tools/python3/src/Python/importdl.c b/contrib/tools/python3/src/Python/importdl.c
index 4ffa1ba287..134f6680c4 100644
--- a/contrib/tools/python3/src/Python/importdl.c
+++ b/contrib/tools/python3/src/Python/importdl.c
@@ -42,9 +42,9 @@ get_encoded_name(PyObject *name, const char **hook_prefix) {
/* Get the short name (substring after last dot) */
name_len = PyUnicode_GetLength(name);
- if (name_len < 0) {
- return NULL;
- }
+ if (name_len < 0) {
+ return NULL;
+ }
lastdot = PyUnicode_FindChar(name, '.', 0, name_len, -1);
if (lastdot < -1) {
return NULL;
@@ -122,11 +122,11 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
if (path == NULL)
goto error;
- if (PySys_Audit("import", "OOOOO", name_unicode, path,
- Py_None, Py_None, Py_None) < 0) {
- goto error;
- }
-
+ if (PySys_Audit("import", "OOOOO", name_unicode, path,
+ Py_None, Py_None, Py_None) < 0) {
+ goto error;
+ }
+
#ifdef MS_WINDOWS
exportfunc = _PyImport_FindSharedFuncptrWindows(hook_prefix, name_buf,
path, fp);
@@ -184,7 +184,7 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
m = NULL;
goto error;
}
- if (Py_IS_TYPE(m, NULL)) {
+ if (Py_IS_TYPE(m, NULL)) {
/* This can happen when a PyModuleDef is returned without calling
* PyModuleDef_Init on it
*/
@@ -207,7 +207,7 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
/* don't allow legacy init for non-ASCII module names */
PyErr_Format(
PyExc_SystemError,
- "initialization of %s did not return PyModuleDef",
+ "initialization of %s did not return PyModuleDef",
name_buf);
goto error;
}
diff --git a/contrib/tools/python3/src/Python/importlib.h b/contrib/tools/python3/src/Python/importlib.h
index 75aeacaffb..1fb877a753 100644
--- a/contrib/tools/python3/src/Python/importlib.h
+++ b/contrib/tools/python3/src/Python/importlib.h
@@ -1,1812 +1,1812 @@
/* Auto-generated by Programs/_freeze_importlib.c */
-const unsigned char _Py_M__importlib_bootstrap[] = {
- 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,194,1,0,0,100,0,
- 90,0,100,1,97,1,100,2,100,3,132,0,90,2,100,4,
- 100,5,132,0,90,3,105,0,90,4,105,0,90,5,71,0,
- 100,6,100,7,132,0,100,7,101,6,131,3,90,7,71,0,
- 100,8,100,9,132,0,100,9,131,2,90,8,71,0,100,10,
- 100,11,132,0,100,11,131,2,90,9,71,0,100,12,100,13,
- 132,0,100,13,131,2,90,10,100,14,100,15,132,0,90,11,
- 100,16,100,17,132,0,90,12,100,18,100,19,132,0,90,13,
- 100,20,100,21,156,1,100,22,100,23,132,2,90,14,100,24,
- 100,25,132,0,90,15,100,26,100,27,132,0,90,16,100,28,
- 100,29,132,0,90,17,100,30,100,31,132,0,90,18,71,0,
- 100,32,100,33,132,0,100,33,131,2,90,19,100,1,100,1,
- 100,34,156,2,100,35,100,36,132,2,90,20,100,94,100,37,
- 100,38,132,1,90,21,100,39,100,40,156,1,100,41,100,42,
- 132,2,90,22,100,43,100,44,132,0,90,23,100,45,100,46,
- 132,0,90,24,100,47,100,48,132,0,90,25,100,49,100,50,
- 132,0,90,26,100,51,100,52,132,0,90,27,100,53,100,54,
- 132,0,90,28,71,0,100,55,100,56,132,0,100,56,131,2,
- 90,29,71,0,100,57,100,58,132,0,100,58,131,2,90,30,
- 71,0,100,59,100,60,132,0,100,60,131,2,90,31,100,61,
- 100,62,132,0,90,32,100,63,100,64,132,0,90,33,100,95,
- 100,65,100,66,132,1,90,34,100,67,100,68,132,0,90,35,
- 100,69,90,36,101,36,100,70,23,0,90,37,100,71,100,72,
- 132,0,90,38,101,39,131,0,90,40,100,73,100,74,132,0,
- 90,41,100,96,100,76,100,77,132,1,90,42,100,39,100,78,
- 156,1,100,79,100,80,132,2,90,43,100,81,100,82,132,0,
- 90,44,100,97,100,84,100,85,132,1,90,45,100,86,100,87,
- 132,0,90,46,100,88,100,89,132,0,90,47,100,90,100,91,
- 132,0,90,48,100,92,100,93,132,0,90,49,100,1,83,0,
- 41,98,97,83,1,0,0,67,111,114,101,32,105,109,112,108,
+const unsigned char _Py_M__importlib_bootstrap[] = {
+ 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,194,1,0,0,100,0,
+ 90,0,100,1,97,1,100,2,100,3,132,0,90,2,100,4,
+ 100,5,132,0,90,3,105,0,90,4,105,0,90,5,71,0,
+ 100,6,100,7,132,0,100,7,101,6,131,3,90,7,71,0,
+ 100,8,100,9,132,0,100,9,131,2,90,8,71,0,100,10,
+ 100,11,132,0,100,11,131,2,90,9,71,0,100,12,100,13,
+ 132,0,100,13,131,2,90,10,100,14,100,15,132,0,90,11,
+ 100,16,100,17,132,0,90,12,100,18,100,19,132,0,90,13,
+ 100,20,100,21,156,1,100,22,100,23,132,2,90,14,100,24,
+ 100,25,132,0,90,15,100,26,100,27,132,0,90,16,100,28,
+ 100,29,132,0,90,17,100,30,100,31,132,0,90,18,71,0,
+ 100,32,100,33,132,0,100,33,131,2,90,19,100,1,100,1,
+ 100,34,156,2,100,35,100,36,132,2,90,20,100,94,100,37,
+ 100,38,132,1,90,21,100,39,100,40,156,1,100,41,100,42,
+ 132,2,90,22,100,43,100,44,132,0,90,23,100,45,100,46,
+ 132,0,90,24,100,47,100,48,132,0,90,25,100,49,100,50,
+ 132,0,90,26,100,51,100,52,132,0,90,27,100,53,100,54,
+ 132,0,90,28,71,0,100,55,100,56,132,0,100,56,131,2,
+ 90,29,71,0,100,57,100,58,132,0,100,58,131,2,90,30,
+ 71,0,100,59,100,60,132,0,100,60,131,2,90,31,100,61,
+ 100,62,132,0,90,32,100,63,100,64,132,0,90,33,100,95,
+ 100,65,100,66,132,1,90,34,100,67,100,68,132,0,90,35,
+ 100,69,90,36,101,36,100,70,23,0,90,37,100,71,100,72,
+ 132,0,90,38,101,39,131,0,90,40,100,73,100,74,132,0,
+ 90,41,100,96,100,76,100,77,132,1,90,42,100,39,100,78,
+ 156,1,100,79,100,80,132,2,90,43,100,81,100,82,132,0,
+ 90,44,100,97,100,84,100,85,132,1,90,45,100,86,100,87,
+ 132,0,90,46,100,88,100,89,132,0,90,47,100,90,100,91,
+ 132,0,90,48,100,92,100,93,132,0,90,49,100,1,83,0,
+ 41,98,97,83,1,0,0,67,111,114,101,32,105,109,112,108,
101,109,101,110,116,97,116,105,111,110,32,111,102,32,105,109,
- 112,111,114,116,46,10,10,84,104,105,115,32,109,111,100,117,
- 108,101,32,105,115,32,78,79,84,32,109,101,97,110,116,32,
- 116,111,32,98,101,32,100,105,114,101,99,116,108,121,32,105,
- 109,112,111,114,116,101,100,33,32,73,116,32,104,97,115,32,
- 98,101,101,110,32,100,101,115,105,103,110,101,100,32,115,117,
- 99,104,10,116,104,97,116,32,105,116,32,99,97,110,32,98,
- 101,32,98,111,111,116,115,116,114,97,112,112,101,100,32,105,
- 110,116,111,32,80,121,116,104,111,110,32,97,115,32,116,104,
- 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
- 32,111,102,32,105,109,112,111,114,116,46,32,65,115,10,115,
- 117,99,104,32,105,116,32,114,101,113,117,105,114,101,115,32,
- 116,104,101,32,105,110,106,101,99,116,105,111,110,32,111,102,
- 32,115,112,101,99,105,102,105,99,32,109,111,100,117,108,101,
- 115,32,97,110,100,32,97,116,116,114,105,98,117,116,101,115,
- 32,105,110,32,111,114,100,101,114,32,116,111,10,119,111,114,
- 107,46,32,79,110,101,32,115,104,111,117,108,100,32,117,115,
- 101,32,105,109,112,111,114,116,108,105,98,32,97,115,32,116,
- 104,101,32,112,117,98,108,105,99,45,102,97,99,105,110,103,
- 32,118,101,114,115,105,111,110,32,111,102,32,116,104,105,115,
- 32,109,111,100,117,108,101,46,10,10,78,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,7,0,0,0,
- 67,0,0,0,115,56,0,0,0,100,1,68,0,93,32,125,
- 2,116,0,124,1,124,2,131,2,114,4,116,1,124,0,124,
- 2,116,2,124,1,124,2,131,2,131,3,1,0,113,4,124,
- 0,106,3,160,4,124,1,106,3,161,1,1,0,100,2,83,
- 0,41,3,122,47,83,105,109,112,108,101,32,115,117,98,115,
- 116,105,116,117,116,101,32,102,111,114,32,102,117,110,99,116,
- 111,111,108,115,46,117,112,100,97,116,101,95,119,114,97,112,
- 112,101,114,46,41,4,218,10,95,95,109,111,100,117,108,101,
- 95,95,218,8,95,95,110,97,109,101,95,95,218,12,95,95,
- 113,117,97,108,110,97,109,101,95,95,218,7,95,95,100,111,
- 99,95,95,78,41,5,218,7,104,97,115,97,116,116,114,218,
- 7,115,101,116,97,116,116,114,218,7,103,101,116,97,116,116,
- 114,218,8,95,95,100,105,99,116,95,95,218,6,117,112,100,
- 97,116,101,41,3,90,3,110,101,119,90,3,111,108,100,218,
- 7,114,101,112,108,97,99,101,169,0,114,10,0,0,0,250,
- 29,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,62,218,5,
- 95,119,114,97,112,27,0,0,0,115,8,0,0,0,0,2,
- 8,1,10,1,20,1,114,12,0,0,0,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,12,0,0,0,116,0,116,1,131,1,124,
- 0,131,1,83,0,169,1,78,41,2,218,4,116,121,112,101,
- 218,3,115,121,115,169,1,218,4,110,97,109,101,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,11,95,110,
- 101,119,95,109,111,100,117,108,101,35,0,0,0,115,2,0,
- 0,0,0,1,114,18,0,0,0,99,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,
- 0,0,115,12,0,0,0,101,0,90,1,100,0,90,2,100,
- 1,83,0,41,2,218,14,95,68,101,97,100,108,111,99,107,
- 69,114,114,111,114,78,41,3,114,1,0,0,0,114,0,0,
- 0,0,114,2,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,19,0,0,0,
- 48,0,0,0,115,2,0,0,0,8,1,114,19,0,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,56,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,83,0,41,13,218,11,95,77,111,100,117,108,
- 101,76,111,99,107,122,169,65,32,114,101,99,117,114,115,105,
- 118,101,32,108,111,99,107,32,105,109,112,108,101,109,101,110,
- 116,97,116,105,111,110,32,119,104,105,99,104,32,105,115,32,
- 97,98,108,101,32,116,111,32,100,101,116,101,99,116,32,100,
- 101,97,100,108,111,99,107,115,10,32,32,32,32,40,101,46,
- 103,46,32,116,104,114,101,97,100,32,49,32,116,114,121,105,
- 110,103,32,116,111,32,116,97,107,101,32,108,111,99,107,115,
- 32,65,32,116,104,101,110,32,66,44,32,97,110,100,32,116,
- 104,114,101,97,100,32,50,32,116,114,121,105,110,103,32,116,
- 111,10,32,32,32,32,116,97,107,101,32,108,111,99,107,115,
- 32,66,32,116,104,101,110,32,65,41,46,10,32,32,32,32,
- 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,48,0,0,0,116,0,
- 160,1,161,0,124,0,95,2,116,0,160,1,161,0,124,0,
- 95,3,124,1,124,0,95,4,100,0,124,0,95,5,100,1,
- 124,0,95,6,100,1,124,0,95,7,100,0,83,0,169,2,
- 78,233,0,0,0,0,41,8,218,7,95,116,104,114,101,97,
- 100,90,13,97,108,108,111,99,97,116,101,95,108,111,99,107,
- 218,4,108,111,99,107,218,6,119,97,107,101,117,112,114,17,
- 0,0,0,218,5,111,119,110,101,114,218,5,99,111,117,110,
- 116,218,7,119,97,105,116,101,114,115,169,2,218,4,115,101,
- 108,102,114,17,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,218,8,95,95,105,110,105,116,95,95,
- 58,0,0,0,115,12,0,0,0,0,1,10,1,10,1,6,
- 1,6,1,6,1,122,20,95,77,111,100,117,108,101,76,111,
- 99,107,46,95,95,105,110,105,116,95,95,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,
- 67,0,0,0,115,88,0,0,0,116,0,160,1,161,0,125,
- 1,124,0,106,2,125,2,116,3,131,0,125,3,116,4,160,
- 5,124,2,161,1,125,4,124,4,100,0,117,0,114,42,100,
- 1,83,0,124,4,106,2,125,2,124,2,124,1,107,2,114,
- 60,100,2,83,0,124,2,124,3,118,0,114,72,100,1,83,
- 0,124,3,160,6,124,2,161,1,1,0,113,20,100,0,83,
- 0,41,3,78,70,84,41,7,114,23,0,0,0,218,9,103,
- 101,116,95,105,100,101,110,116,114,26,0,0,0,218,3,115,
- 101,116,218,12,95,98,108,111,99,107,105,110,103,95,111,110,
- 218,3,103,101,116,218,3,97,100,100,41,5,114,30,0,0,
- 0,90,2,109,101,218,3,116,105,100,90,4,115,101,101,110,
- 114,24,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,12,104,97,115,95,100,101,97,100,108,111,
- 99,107,66,0,0,0,115,24,0,0,0,0,2,8,1,6,
- 1,6,2,10,1,8,1,4,1,6,1,8,1,4,1,8,
- 6,4,1,122,24,95,77,111,100,117,108,101,76,111,99,107,
- 46,104,97,115,95,100,101,97,100,108,111,99,107,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,
- 0,0,67,0,0,0,115,210,0,0,0,116,0,160,1,161,
- 0,125,1,124,0,116,2,124,1,60,0,122,180,124,0,106,
- 3,143,126,1,0,124,0,106,4,100,1,107,2,115,46,124,
- 0,106,5,124,1,107,2,114,90,124,1,124,0,95,5,124,
- 0,4,0,106,4,100,2,55,0,2,0,95,4,87,0,100,
- 3,4,0,4,0,131,3,1,0,87,0,116,2,124,1,61,
- 0,100,4,83,0,124,0,160,6,161,0,114,110,116,7,100,
- 5,124,0,22,0,131,1,130,1,124,0,106,8,160,9,100,
- 6,161,1,114,136,124,0,4,0,106,10,100,2,55,0,2,
- 0,95,10,87,0,100,3,4,0,4,0,131,3,1,0,110,
- 16,49,0,115,156,48,0,1,0,1,0,1,0,89,0,1,
- 0,124,0,106,8,160,9,161,0,1,0,124,0,106,8,160,
- 11,161,0,1,0,113,18,87,0,116,2,124,1,61,0,110,
- 8,116,2,124,1,61,0,48,0,100,3,83,0,41,7,122,
- 185,10,32,32,32,32,32,32,32,32,65,99,113,117,105,114,
- 101,32,116,104,101,32,109,111,100,117,108,101,32,108,111,99,
- 107,46,32,32,73,102,32,97,32,112,111,116,101,110,116,105,
- 97,108,32,100,101,97,100,108,111,99,107,32,105,115,32,100,
- 101,116,101,99,116,101,100,44,10,32,32,32,32,32,32,32,
- 32,97,32,95,68,101,97,100,108,111,99,107,69,114,114,111,
- 114,32,105,115,32,114,97,105,115,101,100,46,10,32,32,32,
- 32,32,32,32,32,79,116,104,101,114,119,105,115,101,44,32,
- 116,104,101,32,108,111,99,107,32,105,115,32,97,108,119,97,
- 121,115,32,97,99,113,117,105,114,101,100,32,97,110,100,32,
- 84,114,117,101,32,105,115,32,114,101,116,117,114,110,101,100,
- 46,10,32,32,32,32,32,32,32,32,114,22,0,0,0,233,
- 1,0,0,0,78,84,122,23,100,101,97,100,108,111,99,107,
- 32,100,101,116,101,99,116,101,100,32,98,121,32,37,114,70,
- 41,12,114,23,0,0,0,114,32,0,0,0,114,34,0,0,
- 0,114,24,0,0,0,114,27,0,0,0,114,26,0,0,0,
- 114,38,0,0,0,114,19,0,0,0,114,25,0,0,0,218,
- 7,97,99,113,117,105,114,101,114,28,0,0,0,218,7,114,
- 101,108,101,97,115,101,169,2,114,30,0,0,0,114,37,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,40,0,0,0,87,0,0,0,115,34,0,0,0,0,
- 6,8,1,8,1,2,2,8,1,20,1,6,1,14,1,14,
- 9,6,247,4,1,8,1,12,1,12,1,44,2,10,1,14,
- 2,122,19,95,77,111,100,117,108,101,76,111,99,107,46,97,
- 99,113,117,105,114,101,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,
- 142,0,0,0,116,0,160,1,161,0,125,1,124,0,106,2,
- 143,108,1,0,124,0,106,3,124,1,107,3,114,34,116,4,
- 100,1,131,1,130,1,124,0,106,5,100,2,107,4,115,48,
- 74,0,130,1,124,0,4,0,106,5,100,3,56,0,2,0,
- 95,5,124,0,106,5,100,2,107,2,114,108,100,0,124,0,
- 95,3,124,0,106,6,114,108,124,0,4,0,106,6,100,3,
- 56,0,2,0,95,6,124,0,106,7,160,8,161,0,1,0,
- 87,0,100,0,4,0,4,0,131,3,1,0,110,16,49,0,
- 115,128,48,0,1,0,1,0,1,0,89,0,1,0,100,0,
- 83,0,41,4,78,250,31,99,97,110,110,111,116,32,114,101,
- 108,101,97,115,101,32,117,110,45,97,99,113,117,105,114,101,
- 100,32,108,111,99,107,114,22,0,0,0,114,39,0,0,0,
- 41,9,114,23,0,0,0,114,32,0,0,0,114,24,0,0,
- 0,114,26,0,0,0,218,12,82,117,110,116,105,109,101,69,
- 114,114,111,114,114,27,0,0,0,114,28,0,0,0,114,25,
- 0,0,0,114,41,0,0,0,114,42,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,41,0,0,
- 0,112,0,0,0,115,22,0,0,0,0,1,8,1,8,1,
- 10,1,8,1,14,1,14,1,10,1,6,1,6,1,14,1,
- 122,19,95,77,111,100,117,108,101,76,111,99,107,46,114,101,
- 108,101,97,115,101,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,5,0,0,0,67,0,0,0,115,18,
- 0,0,0,100,1,160,0,124,0,106,1,116,2,124,0,131,
- 1,161,2,83,0,41,2,78,122,23,95,77,111,100,117,108,
- 101,76,111,99,107,40,123,33,114,125,41,32,97,116,32,123,
- 125,169,3,218,6,102,111,114,109,97,116,114,17,0,0,0,
- 218,2,105,100,169,1,114,30,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,8,95,95,114,101,
- 112,114,95,95,125,0,0,0,115,2,0,0,0,0,1,122,
- 20,95,77,111,100,117,108,101,76,111,99,107,46,95,95,114,
- 101,112,114,95,95,78,41,9,114,1,0,0,0,114,0,0,
- 0,0,114,2,0,0,0,114,3,0,0,0,114,31,0,0,
- 0,114,38,0,0,0,114,40,0,0,0,114,41,0,0,0,
- 114,49,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,20,0,0,0,52,0,
- 0,0,115,12,0,0,0,8,1,4,5,8,8,8,21,8,
- 25,8,13,114,20,0,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,48,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,83,0,41,11,218,16,95,68,117,109,109,121,
- 77,111,100,117,108,101,76,111,99,107,122,86,65,32,115,105,
- 109,112,108,101,32,95,77,111,100,117,108,101,76,111,99,107,
- 32,101,113,117,105,118,97,108,101,110,116,32,102,111,114,32,
- 80,121,116,104,111,110,32,98,117,105,108,100,115,32,119,105,
- 116,104,111,117,116,10,32,32,32,32,109,117,108,116,105,45,
- 116,104,114,101,97,100,105,110,103,32,115,117,112,112,111,114,
- 116,46,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,16,0,0,0,
- 124,1,124,0,95,0,100,1,124,0,95,1,100,0,83,0,
- 114,21,0,0,0,41,2,114,17,0,0,0,114,27,0,0,
- 0,114,29,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,31,0,0,0,133,0,0,0,115,4,
- 0,0,0,0,1,6,1,122,25,95,68,117,109,109,121,77,
- 111,100,117,108,101,76,111,99,107,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,115,18,0,0,0,
- 124,0,4,0,106,0,100,1,55,0,2,0,95,0,100,2,
- 83,0,41,3,78,114,39,0,0,0,84,41,1,114,27,0,
- 0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,40,0,0,0,137,0,0,0,115,
- 4,0,0,0,0,1,14,1,122,24,95,68,117,109,109,121,
- 77,111,100,117,108,101,76,111,99,107,46,97,99,113,117,105,
- 114,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,115,36,0,0,0,
- 124,0,106,0,100,1,107,2,114,18,116,1,100,2,131,1,
- 130,1,124,0,4,0,106,0,100,3,56,0,2,0,95,0,
- 100,0,83,0,41,4,78,114,22,0,0,0,114,43,0,0,
- 0,114,39,0,0,0,41,2,114,27,0,0,0,114,44,0,
- 0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,41,0,0,0,141,0,0,0,115,
- 6,0,0,0,0,1,10,1,8,1,122,24,95,68,117,109,
- 109,121,77,111,100,117,108,101,76,111,99,107,46,114,101,108,
- 101,97,115,101,99,1,0,0,0,0,0,0,0,0,0,0,
- 0,1,0,0,0,5,0,0,0,67,0,0,0,115,18,0,
- 0,0,100,1,160,0,124,0,106,1,116,2,124,0,131,1,
- 161,2,83,0,41,2,78,122,28,95,68,117,109,109,121,77,
- 111,100,117,108,101,76,111,99,107,40,123,33,114,125,41,32,
- 97,116,32,123,125,114,45,0,0,0,114,48,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,49,
- 0,0,0,146,0,0,0,115,2,0,0,0,0,1,122,25,
- 95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107,
- 46,95,95,114,101,112,114,95,95,78,41,8,114,1,0,0,
- 0,114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,
- 114,31,0,0,0,114,40,0,0,0,114,41,0,0,0,114,
- 49,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,50,0,0,0,129,0,0,
- 0,115,10,0,0,0,8,1,4,3,8,4,8,4,8,5,
- 114,50,0,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,36,
- 0,0,0,101,0,90,1,100,0,90,2,100,1,100,2,132,
- 0,90,3,100,3,100,4,132,0,90,4,100,5,100,6,132,
- 0,90,5,100,7,83,0,41,8,218,18,95,77,111,100,117,
- 108,101,76,111,99,107,77,97,110,97,103,101,114,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,16,0,0,0,124,1,124,0,95,
- 0,100,0,124,0,95,1,100,0,83,0,114,13,0,0,0,
- 41,2,218,5,95,110,97,109,101,218,5,95,108,111,99,107,
- 114,29,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,114,31,0,0,0,152,0,0,0,115,4,0,
- 0,0,0,1,6,1,122,27,95,77,111,100,117,108,101,76,
- 111,99,107,77,97,110,97,103,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,26,0,0,
- 0,116,0,124,0,106,1,131,1,124,0,95,2,124,0,106,
- 2,160,3,161,0,1,0,100,0,83,0,114,13,0,0,0,
- 41,4,218,16,95,103,101,116,95,109,111,100,117,108,101,95,
- 108,111,99,107,114,52,0,0,0,114,53,0,0,0,114,40,
- 0,0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,9,95,95,101,110,116,101,114,
- 95,95,156,0,0,0,115,4,0,0,0,0,1,12,1,122,
- 28,95,77,111,100,117,108,101,76,111,99,107,77,97,110,97,
- 103,101,114,46,95,95,101,110,116,101,114,95,95,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,
- 0,0,79,0,0,0,115,14,0,0,0,124,0,106,0,160,
- 1,161,0,1,0,100,0,83,0,114,13,0,0,0,41,2,
- 114,53,0,0,0,114,41,0,0,0,41,3,114,30,0,0,
- 0,218,4,97,114,103,115,90,6,107,119,97,114,103,115,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,8,
- 95,95,101,120,105,116,95,95,160,0,0,0,115,2,0,0,
- 0,0,1,122,27,95,77,111,100,117,108,101,76,111,99,107,
- 77,97,110,97,103,101,114,46,95,95,101,120,105,116,95,95,
- 78,41,6,114,1,0,0,0,114,0,0,0,0,114,2,0,
- 0,0,114,31,0,0,0,114,55,0,0,0,114,57,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,51,0,0,0,150,0,0,0,115,6,
- 0,0,0,8,2,8,4,8,4,114,51,0,0,0,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,
- 0,0,0,67,0,0,0,115,136,0,0,0,116,0,160,1,
- 161,0,1,0,122,112,122,14,116,2,124,0,25,0,131,0,
- 125,1,87,0,110,22,4,0,116,3,121,46,1,0,1,0,
- 1,0,100,1,125,1,89,0,110,2,48,0,124,1,100,1,
- 117,0,114,110,116,4,100,1,117,0,114,74,116,5,124,0,
- 131,1,125,1,110,8,116,6,124,0,131,1,125,1,124,0,
- 102,1,100,2,100,3,132,1,125,2,116,7,160,8,124,1,
- 124,2,161,2,116,2,124,0,60,0,87,0,116,0,160,9,
- 161,0,1,0,110,10,116,0,160,9,161,0,1,0,48,0,
- 124,1,83,0,41,4,122,139,71,101,116,32,111,114,32,99,
- 114,101,97,116,101,32,116,104,101,32,109,111,100,117,108,101,
- 32,108,111,99,107,32,102,111,114,32,97,32,103,105,118,101,
- 110,32,109,111,100,117,108,101,32,110,97,109,101,46,10,10,
- 32,32,32,32,65,99,113,117,105,114,101,47,114,101,108,101,
- 97,115,101,32,105,110,116,101,114,110,97,108,108,121,32,116,
- 104,101,32,103,108,111,98,97,108,32,105,109,112,111,114,116,
- 32,108,111,99,107,32,116,111,32,112,114,111,116,101,99,116,
- 10,32,32,32,32,95,109,111,100,117,108,101,95,108,111,99,
- 107,115,46,78,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,8,0,0,0,83,0,0,0,115,56,0,
- 0,0,116,0,160,1,161,0,1,0,122,32,116,2,160,3,
- 124,1,161,1,124,0,117,0,114,30,116,2,124,1,61,0,
- 87,0,116,0,160,4,161,0,1,0,110,10,116,0,160,4,
- 161,0,1,0,48,0,100,0,83,0,114,13,0,0,0,41,
- 5,218,4,95,105,109,112,218,12,97,99,113,117,105,114,101,
- 95,108,111,99,107,218,13,95,109,111,100,117,108,101,95,108,
- 111,99,107,115,114,35,0,0,0,218,12,114,101,108,101,97,
- 115,101,95,108,111,99,107,41,2,218,3,114,101,102,114,17,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,2,99,98,185,0,0,0,115,10,0,0,0,0,
- 1,8,1,2,4,14,1,8,2,122,28,95,103,101,116,95,
- 109,111,100,117,108,101,95,108,111,99,107,46,60,108,111,99,
- 97,108,115,62,46,99,98,41,10,114,58,0,0,0,114,59,
- 0,0,0,114,60,0,0,0,218,8,75,101,121,69,114,114,
- 111,114,114,23,0,0,0,114,50,0,0,0,114,20,0,0,
- 0,218,8,95,119,101,97,107,114,101,102,114,62,0,0,0,
- 114,61,0,0,0,41,3,114,17,0,0,0,114,24,0,0,
- 0,114,63,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,54,0,0,0,166,0,0,0,115,28,
- 0,0,0,0,6,8,1,2,1,2,1,14,1,12,1,10,
- 2,8,1,8,1,10,2,8,2,12,11,18,2,20,2,114,
- 54,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,8,0,0,0,67,0,0,0,115,52,0,
- 0,0,116,0,124,0,131,1,125,1,122,12,124,1,160,1,
- 161,0,1,0,87,0,110,18,4,0,116,2,121,38,1,0,
- 1,0,1,0,89,0,110,10,48,0,124,1,160,3,161,0,
- 1,0,100,1,83,0,41,2,122,189,65,99,113,117,105,114,
- 101,115,32,116,104,101,110,32,114,101,108,101,97,115,101,115,
- 32,116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,
- 32,102,111,114,32,97,32,103,105,118,101,110,32,109,111,100,
- 117,108,101,32,110,97,109,101,46,10,10,32,32,32,32,84,
- 104,105,115,32,105,115,32,117,115,101,100,32,116,111,32,101,
- 110,115,117,114,101,32,97,32,109,111,100,117,108,101,32,105,
- 115,32,99,111,109,112,108,101,116,101,108,121,32,105,110,105,
- 116,105,97,108,105,122,101,100,44,32,105,110,32,116,104,101,
- 10,32,32,32,32,101,118,101,110,116,32,105,116,32,105,115,
- 32,98,101,105,110,103,32,105,109,112,111,114,116,101,100,32,
- 98,121,32,97,110,111,116,104,101,114,32,116,104,114,101,97,
- 100,46,10,32,32,32,32,78,41,4,114,54,0,0,0,114,
- 40,0,0,0,114,19,0,0,0,114,41,0,0,0,41,2,
- 114,17,0,0,0,114,24,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,19,95,108,111,99,107,
- 95,117,110,108,111,99,107,95,109,111,100,117,108,101,203,0,
- 0,0,115,12,0,0,0,0,6,8,1,2,1,12,1,12,
- 3,6,2,114,66,0,0,0,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,4,0,0,0,79,0,0,
- 0,115,14,0,0,0,124,0,124,1,105,0,124,2,164,1,
- 142,1,83,0,41,1,97,46,1,0,0,114,101,109,111,118,
- 101,95,105,109,112,111,114,116,108,105,98,95,102,114,97,109,
- 101,115,32,105,110,32,105,109,112,111,114,116,46,99,32,119,
- 105,108,108,32,97,108,119,97,121,115,32,114,101,109,111,118,
- 101,32,115,101,113,117,101,110,99,101,115,10,32,32,32,32,
- 111,102,32,105,109,112,111,114,116,108,105,98,32,102,114,97,
- 109,101,115,32,116,104,97,116,32,101,110,100,32,119,105,116,
- 104,32,97,32,99,97,108,108,32,116,111,32,116,104,105,115,
- 32,102,117,110,99,116,105,111,110,10,10,32,32,32,32,85,
- 115,101,32,105,116,32,105,110,115,116,101,97,100,32,111,102,
- 32,97,32,110,111,114,109,97,108,32,99,97,108,108,32,105,
- 110,32,112,108,97,99,101,115,32,119,104,101,114,101,32,105,
- 110,99,108,117,100,105,110,103,32,116,104,101,32,105,109,112,
- 111,114,116,108,105,98,10,32,32,32,32,102,114,97,109,101,
- 115,32,105,110,116,114,111,100,117,99,101,115,32,117,110,119,
- 97,110,116,101,100,32,110,111,105,115,101,32,105,110,116,111,
- 32,116,104,101,32,116,114,97,99,101,98,97,99,107,32,40,
- 101,46,103,46,32,119,104,101,110,32,101,120,101,99,117,116,
- 105,110,103,10,32,32,32,32,109,111,100,117,108,101,32,99,
- 111,100,101,41,10,32,32,32,32,114,10,0,0,0,41,3,
- 218,1,102,114,56,0,0,0,90,4,107,119,100,115,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,218,25,95,
- 99,97,108,108,95,119,105,116,104,95,102,114,97,109,101,115,
- 95,114,101,109,111,118,101,100,220,0,0,0,115,2,0,0,
- 0,0,8,114,68,0,0,0,114,39,0,0,0,41,1,218,
- 9,118,101,114,98,111,115,105,116,121,99,1,0,0,0,0,
- 0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,71,
- 0,0,0,115,54,0,0,0,116,0,106,1,106,2,124,1,
- 107,5,114,50,124,0,160,3,100,1,161,1,115,30,100,2,
- 124,0,23,0,125,0,116,4,124,0,106,5,124,2,142,0,
- 116,0,106,6,100,3,141,2,1,0,100,4,83,0,41,5,
- 122,61,80,114,105,110,116,32,116,104,101,32,109,101,115,115,
- 97,103,101,32,116,111,32,115,116,100,101,114,114,32,105,102,
- 32,45,118,47,80,89,84,72,79,78,86,69,82,66,79,83,
- 69,32,105,115,32,116,117,114,110,101,100,32,111,110,46,41,
- 2,250,1,35,122,7,105,109,112,111,114,116,32,122,2,35,
- 32,41,1,90,4,102,105,108,101,78,41,7,114,15,0,0,
- 0,218,5,102,108,97,103,115,218,7,118,101,114,98,111,115,
- 101,218,10,115,116,97,114,116,115,119,105,116,104,218,5,112,
- 114,105,110,116,114,46,0,0,0,218,6,115,116,100,101,114,
- 114,41,3,218,7,109,101,115,115,97,103,101,114,69,0,0,
- 0,114,56,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,16,95,118,101,114,98,111,115,101,95,
- 109,101,115,115,97,103,101,231,0,0,0,115,8,0,0,0,
- 0,2,12,1,10,1,8,1,114,77,0,0,0,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
- 0,0,3,0,0,0,115,26,0,0,0,135,0,102,1,100,
- 1,100,2,132,8,125,1,116,0,124,1,136,0,131,2,1,
- 0,124,1,83,0,41,3,122,49,68,101,99,111,114,97,116,
- 111,114,32,116,111,32,118,101,114,105,102,121,32,116,104,101,
- 32,110,97,109,101,100,32,109,111,100,117,108,101,32,105,115,
- 32,98,117,105,108,116,45,105,110,46,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,19,
- 0,0,0,115,38,0,0,0,124,1,116,0,106,1,118,1,
- 114,28,116,2,100,1,160,3,124,1,161,1,124,1,100,2,
- 141,2,130,1,136,0,124,0,124,1,131,2,83,0,41,3,
- 78,250,29,123,33,114,125,32,105,115,32,110,111,116,32,97,
- 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
- 114,16,0,0,0,41,4,114,15,0,0,0,218,20,98,117,
- 105,108,116,105,110,95,109,111,100,117,108,101,95,110,97,109,
- 101,115,218,11,73,109,112,111,114,116,69,114,114,111,114,114,
- 46,0,0,0,169,2,114,30,0,0,0,218,8,102,117,108,
- 108,110,97,109,101,169,1,218,3,102,120,110,114,10,0,0,
- 0,114,11,0,0,0,218,25,95,114,101,113,117,105,114,101,
- 115,95,98,117,105,108,116,105,110,95,119,114,97,112,112,101,
- 114,241,0,0,0,115,10,0,0,0,0,1,10,1,10,1,
- 2,255,6,2,122,52,95,114,101,113,117,105,114,101,115,95,
- 98,117,105,108,116,105,110,46,60,108,111,99,97,108,115,62,
- 46,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,
- 105,110,95,119,114,97,112,112,101,114,169,1,114,12,0,0,
- 0,41,2,114,84,0,0,0,114,85,0,0,0,114,10,0,
- 0,0,114,83,0,0,0,114,11,0,0,0,218,17,95,114,
- 101,113,117,105,114,101,115,95,98,117,105,108,116,105,110,239,
- 0,0,0,115,6,0,0,0,0,2,12,5,10,1,114,87,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,3,0,0,0,3,0,0,0,115,26,0,0,
- 0,135,0,102,1,100,1,100,2,132,8,125,1,116,0,124,
- 1,136,0,131,2,1,0,124,1,83,0,41,3,122,47,68,
- 101,99,111,114,97,116,111,114,32,116,111,32,118,101,114,105,
- 102,121,32,116,104,101,32,110,97,109,101,100,32,109,111,100,
- 117,108,101,32,105,115,32,102,114,111,122,101,110,46,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
- 0,0,0,19,0,0,0,115,38,0,0,0,116,0,160,1,
- 124,1,161,1,115,28,116,2,100,1,160,3,124,1,161,1,
- 124,1,100,2,141,2,130,1,136,0,124,0,124,1,131,2,
- 83,0,169,3,78,122,27,123,33,114,125,32,105,115,32,110,
- 111,116,32,97,32,102,114,111,122,101,110,32,109,111,100,117,
- 108,101,114,16,0,0,0,41,4,114,58,0,0,0,218,9,
- 105,115,95,102,114,111,122,101,110,114,80,0,0,0,114,46,
- 0,0,0,114,81,0,0,0,114,83,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,24,95,114,101,113,117,105,114,
- 101,115,95,102,114,111,122,101,110,95,119,114,97,112,112,101,
- 114,252,0,0,0,115,10,0,0,0,0,1,10,1,10,1,
- 2,255,6,2,122,50,95,114,101,113,117,105,114,101,115,95,
- 102,114,111,122,101,110,46,60,108,111,99,97,108,115,62,46,
- 95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,
- 95,119,114,97,112,112,101,114,114,86,0,0,0,41,2,114,
- 84,0,0,0,114,90,0,0,0,114,10,0,0,0,114,83,
- 0,0,0,114,11,0,0,0,218,16,95,114,101,113,117,105,
- 114,101,115,95,102,114,111,122,101,110,250,0,0,0,115,6,
- 0,0,0,0,2,12,5,10,1,114,91,0,0,0,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,
- 0,0,0,67,0,0,0,115,62,0,0,0,116,0,124,1,
- 124,0,131,2,125,2,124,1,116,1,106,2,118,0,114,50,
- 116,1,106,2,124,1,25,0,125,3,116,3,124,2,124,3,
- 131,2,1,0,116,1,106,2,124,1,25,0,83,0,116,4,
- 124,2,131,1,83,0,100,1,83,0,41,2,122,128,76,111,
- 97,100,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
- 32,109,111,100,117,108,101,32,105,110,116,111,32,115,121,115,
- 46,109,111,100,117,108,101,115,32,97,110,100,32,114,101,116,
- 117,114,110,32,105,116,46,10,10,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,108,111,97,
- 100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,32,
- 105,110,115,116,101,97,100,46,10,10,32,32,32,32,78,41,
- 5,218,16,115,112,101,99,95,102,114,111,109,95,108,111,97,
- 100,101,114,114,15,0,0,0,218,7,109,111,100,117,108,101,
- 115,218,5,95,101,120,101,99,218,5,95,108,111,97,100,41,
- 4,114,30,0,0,0,114,82,0,0,0,218,4,115,112,101,
- 99,218,6,109,111,100,117,108,101,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,17,95,108,111,97,100,95,
- 109,111,100,117,108,101,95,115,104,105,109,6,1,0,0,115,
- 12,0,0,0,0,6,10,1,10,1,10,1,10,1,10,2,
- 114,98,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,5,0,0,0,8,0,0,0,67,0,0,0,115,218,
- 0,0,0,116,0,124,0,100,1,100,0,131,3,125,1,116,
- 1,124,1,100,2,131,2,114,54,122,12,124,1,160,2,124,
- 0,161,1,87,0,83,0,4,0,116,3,121,52,1,0,1,
- 0,1,0,89,0,110,2,48,0,122,10,124,0,106,4,125,
- 2,87,0,110,18,4,0,116,5,121,82,1,0,1,0,1,
- 0,89,0,110,18,48,0,124,2,100,0,117,1,114,100,116,
- 6,124,2,131,1,83,0,122,10,124,0,106,7,125,3,87,
- 0,110,22,4,0,116,5,121,132,1,0,1,0,1,0,100,
- 3,125,3,89,0,110,2,48,0,122,10,124,0,106,8,125,
- 4,87,0,110,56,4,0,116,5,121,200,1,0,1,0,1,
- 0,124,1,100,0,117,0,114,180,100,4,160,9,124,3,161,
- 1,6,0,89,0,83,0,100,5,160,9,124,3,124,1,161,
- 2,6,0,89,0,83,0,89,0,110,14,48,0,100,6,160,
- 9,124,3,124,4,161,2,83,0,100,0,83,0,41,7,78,
- 218,10,95,95,108,111,97,100,101,114,95,95,218,11,109,111,
- 100,117,108,101,95,114,101,112,114,250,1,63,250,13,60,109,
- 111,100,117,108,101,32,123,33,114,125,62,250,20,60,109,111,
- 100,117,108,101,32,123,33,114,125,32,40,123,33,114,125,41,
- 62,250,23,60,109,111,100,117,108,101,32,123,33,114,125,32,
- 102,114,111,109,32,123,33,114,125,62,41,10,114,6,0,0,
- 0,114,4,0,0,0,114,100,0,0,0,218,9,69,120,99,
- 101,112,116,105,111,110,218,8,95,95,115,112,101,99,95,95,
- 218,14,65,116,116,114,105,98,117,116,101,69,114,114,111,114,
- 218,22,95,109,111,100,117,108,101,95,114,101,112,114,95,102,
- 114,111,109,95,115,112,101,99,114,1,0,0,0,218,8,95,
- 95,102,105,108,101,95,95,114,46,0,0,0,41,5,114,97,
- 0,0,0,218,6,108,111,97,100,101,114,114,96,0,0,0,
- 114,17,0,0,0,218,8,102,105,108,101,110,97,109,101,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,12,
- 95,109,111,100,117,108,101,95,114,101,112,114,22,1,0,0,
- 115,46,0,0,0,0,2,12,1,10,4,2,1,12,1,12,
- 1,6,1,2,1,10,1,12,1,6,2,8,1,8,4,2,
- 1,10,1,12,1,10,1,2,1,10,1,12,1,8,1,14,
- 2,22,2,114,112,0,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,114,0,0,0,101,0,90,1,100,0,90,2,100,1,
- 90,3,100,2,100,2,100,2,100,3,156,3,100,4,100,5,
- 132,2,90,4,100,6,100,7,132,0,90,5,100,8,100,9,
- 132,0,90,6,101,7,100,10,100,11,132,0,131,1,90,8,
- 101,8,106,9,100,12,100,11,132,0,131,1,90,8,101,7,
- 100,13,100,14,132,0,131,1,90,10,101,7,100,15,100,16,
- 132,0,131,1,90,11,101,11,106,9,100,17,100,16,132,0,
- 131,1,90,11,100,2,83,0,41,18,218,10,77,111,100,117,
- 108,101,83,112,101,99,97,208,5,0,0,84,104,101,32,115,
- 112,101,99,105,102,105,99,97,116,105,111,110,32,102,111,114,
- 32,97,32,109,111,100,117,108,101,44,32,117,115,101,100,32,
- 102,111,114,32,108,111,97,100,105,110,103,46,10,10,32,32,
- 32,32,65,32,109,111,100,117,108,101,39,115,32,115,112,101,
- 99,32,105,115,32,116,104,101,32,115,111,117,114,99,101,32,
- 102,111,114,32,105,110,102,111,114,109,97,116,105,111,110,32,
- 97,98,111,117,116,32,116,104,101,32,109,111,100,117,108,101,
- 46,32,32,70,111,114,10,32,32,32,32,100,97,116,97,32,
- 97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,
- 116,104,101,32,109,111,100,117,108,101,44,32,105,110,99,108,
- 117,100,105,110,103,32,115,111,117,114,99,101,44,32,117,115,
- 101,32,116,104,101,32,115,112,101,99,39,115,10,32,32,32,
- 32,108,111,97,100,101,114,46,10,10,32,32,32,32,96,110,
- 97,109,101,96,32,105,115,32,116,104,101,32,97,98,115,111,
- 108,117,116,101,32,110,97,109,101,32,111,102,32,116,104,101,
- 32,109,111,100,117,108,101,46,32,32,96,108,111,97,100,101,
- 114,96,32,105,115,32,116,104,101,32,108,111,97,100,101,114,
- 10,32,32,32,32,116,111,32,117,115,101,32,119,104,101,110,
- 32,108,111,97,100,105,110,103,32,116,104,101,32,109,111,100,
- 117,108,101,46,32,32,96,112,97,114,101,110,116,96,32,105,
- 115,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,
- 101,10,32,32,32,32,112,97,99,107,97,103,101,32,116,104,
- 101,32,109,111,100,117,108,101,32,105,115,32,105,110,46,32,
- 32,84,104,101,32,112,97,114,101,110,116,32,105,115,32,100,
- 101,114,105,118,101,100,32,102,114,111,109,32,116,104,101,32,
- 110,97,109,101,46,10,10,32,32,32,32,96,105,115,95,112,
- 97,99,107,97,103,101,96,32,100,101,116,101,114,109,105,110,
- 101,115,32,105,102,32,116,104,101,32,109,111,100,117,108,101,
- 32,105,115,32,99,111,110,115,105,100,101,114,101,100,32,97,
- 32,112,97,99,107,97,103,101,32,111,114,10,32,32,32,32,
- 110,111,116,46,32,32,79,110,32,109,111,100,117,108,101,115,
- 32,116,104,105,115,32,105,115,32,114,101,102,108,101,99,116,
- 101,100,32,98,121,32,116,104,101,32,96,95,95,112,97,116,
- 104,95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,
- 10,32,32,32,32,96,111,114,105,103,105,110,96,32,105,115,
- 32,116,104,101,32,115,112,101,99,105,102,105,99,32,108,111,
- 99,97,116,105,111,110,32,117,115,101,100,32,98,121,32,116,
- 104,101,32,108,111,97,100,101,114,32,102,114,111,109,32,119,
- 104,105,99,104,32,116,111,10,32,32,32,32,108,111,97,100,
- 32,116,104,101,32,109,111,100,117,108,101,44,32,105,102,32,
- 116,104,97,116,32,105,110,102,111,114,109,97,116,105,111,110,
- 32,105,115,32,97,118,97,105,108,97,98,108,101,46,32,32,
- 87,104,101,110,32,102,105,108,101,110,97,109,101,32,105,115,
- 10,32,32,32,32,115,101,116,44,32,111,114,105,103,105,110,
- 32,119,105,108,108,32,109,97,116,99,104,46,10,10,32,32,
- 32,32,96,104,97,115,95,108,111,99,97,116,105,111,110,96,
- 32,105,110,100,105,99,97,116,101,115,32,116,104,97,116,32,
- 97,32,115,112,101,99,39,115,32,34,111,114,105,103,105,110,
- 34,32,114,101,102,108,101,99,116,115,32,97,32,108,111,99,
- 97,116,105,111,110,46,10,32,32,32,32,87,104,101,110,32,
- 116,104,105,115,32,105,115,32,84,114,117,101,44,32,96,95,
- 95,102,105,108,101,95,95,96,32,97,116,116,114,105,98,117,
- 116,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,
- 32,105,115,32,115,101,116,46,10,10,32,32,32,32,96,99,
- 97,99,104,101,100,96,32,105,115,32,116,104,101,32,108,111,
- 99,97,116,105,111,110,32,111,102,32,116,104,101,32,99,97,
- 99,104,101,100,32,98,121,116,101,99,111,100,101,32,102,105,
- 108,101,44,32,105,102,32,97,110,121,46,32,32,73,116,10,
- 32,32,32,32,99,111,114,114,101,115,112,111,110,100,115,32,
- 116,111,32,116,104,101,32,96,95,95,99,97,99,104,101,100,
- 95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,
- 32,32,32,32,96,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,96,
- 32,105,115,32,116,104,101,32,115,101,113,117,101,110,99,101,
- 32,111,102,32,112,97,116,104,32,101,110,116,114,105,101,115,
- 32,116,111,10,32,32,32,32,115,101,97,114,99,104,32,119,
- 104,101,110,32,105,109,112,111,114,116,105,110,103,32,115,117,
- 98,109,111,100,117,108,101,115,46,32,32,73,102,32,115,101,
- 116,44,32,105,115,95,112,97,99,107,97,103,101,32,115,104,
- 111,117,108,100,32,98,101,10,32,32,32,32,84,114,117,101,
- 45,45,97,110,100,32,70,97,108,115,101,32,111,116,104,101,
- 114,119,105,115,101,46,10,10,32,32,32,32,80,97,99,107,
- 97,103,101,115,32,97,114,101,32,115,105,109,112,108,121,32,
- 109,111,100,117,108,101,115,32,116,104,97,116,32,40,109,97,
- 121,41,32,104,97,118,101,32,115,117,98,109,111,100,117,108,
- 101,115,46,32,32,73,102,32,97,32,115,112,101,99,10,32,
- 32,32,32,104,97,115,32,97,32,110,111,110,45,78,111,110,
- 101,32,118,97,108,117,101,32,105,110,32,96,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,96,44,32,116,104,101,32,105,109,112,
- 111,114,116,10,32,32,32,32,115,121,115,116,101,109,32,119,
- 105,108,108,32,99,111,110,115,105,100,101,114,32,109,111,100,
- 117,108,101,115,32,108,111,97,100,101,100,32,102,114,111,109,
- 32,116,104,101,32,115,112,101,99,32,97,115,32,112,97,99,
- 107,97,103,101,115,46,10,10,32,32,32,32,79,110,108,121,
- 32,102,105,110,100,101,114,115,32,40,115,101,101,32,105,109,
- 112,111,114,116,108,105,98,46,97,98,99,46,77,101,116,97,
- 80,97,116,104,70,105,110,100,101,114,32,97,110,100,10,32,
- 32,32,32,105,109,112,111,114,116,108,105,98,46,97,98,99,
- 46,80,97,116,104,69,110,116,114,121,70,105,110,100,101,114,
- 41,32,115,104,111,117,108,100,32,109,111,100,105,102,121,32,
- 77,111,100,117,108,101,83,112,101,99,32,105,110,115,116,97,
- 110,99,101,115,46,10,10,32,32,32,32,78,41,3,218,6,
- 111,114,105,103,105,110,218,12,108,111,97,100,101,114,95,115,
- 116,97,116,101,218,10,105,115,95,112,97,99,107,97,103,101,
- 99,3,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
- 0,2,0,0,0,67,0,0,0,115,54,0,0,0,124,1,
- 124,0,95,0,124,2,124,0,95,1,124,3,124,0,95,2,
- 124,4,124,0,95,3,124,5,114,32,103,0,110,2,100,0,
- 124,0,95,4,100,1,124,0,95,5,100,0,124,0,95,6,
- 100,0,83,0,41,2,78,70,41,7,114,17,0,0,0,114,
- 110,0,0,0,114,114,0,0,0,114,115,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,218,13,95,115,101,116,
- 95,102,105,108,101,97,116,116,114,218,7,95,99,97,99,104,
- 101,100,41,6,114,30,0,0,0,114,17,0,0,0,114,110,
- 0,0,0,114,114,0,0,0,114,115,0,0,0,114,116,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,31,0,0,0,95,1,0,0,115,14,0,0,0,0,
- 2,6,1,6,1,6,1,6,1,14,3,6,1,122,19,77,
- 111,100,117,108,101,83,112,101,99,46,95,95,105,110,105,116,
- 95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,6,0,0,0,67,0,0,0,115,102,0,0,0,
- 100,1,160,0,124,0,106,1,161,1,100,2,160,0,124,0,
- 106,2,161,1,103,2,125,1,124,0,106,3,100,0,117,1,
- 114,52,124,1,160,4,100,3,160,0,124,0,106,3,161,1,
- 161,1,1,0,124,0,106,5,100,0,117,1,114,80,124,1,
- 160,4,100,4,160,0,124,0,106,5,161,1,161,1,1,0,
- 100,5,160,0,124,0,106,6,106,7,100,6,160,8,124,1,
- 161,1,161,2,83,0,41,7,78,122,9,110,97,109,101,61,
- 123,33,114,125,122,11,108,111,97,100,101,114,61,123,33,114,
- 125,122,11,111,114,105,103,105,110,61,123,33,114,125,122,29,
- 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,61,123,125,122,6,123,
- 125,40,123,125,41,122,2,44,32,41,9,114,46,0,0,0,
- 114,17,0,0,0,114,110,0,0,0,114,114,0,0,0,218,
- 6,97,112,112,101,110,100,114,117,0,0,0,218,9,95,95,
- 99,108,97,115,115,95,95,114,1,0,0,0,218,4,106,111,
- 105,110,41,2,114,30,0,0,0,114,56,0,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,114,49,0,
- 0,0,107,1,0,0,115,20,0,0,0,0,1,10,1,10,
- 255,4,2,10,1,18,1,10,1,8,1,4,255,6,2,122,
- 19,77,111,100,117,108,101,83,112,101,99,46,95,95,114,101,
- 112,114,95,95,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,106,0,
- 0,0,124,0,106,0,125,2,122,72,124,0,106,1,124,1,
- 106,1,107,2,111,76,124,0,106,2,124,1,106,2,107,2,
- 111,76,124,0,106,3,124,1,106,3,107,2,111,76,124,2,
- 124,1,106,0,107,2,111,76,124,0,106,4,124,1,106,4,
- 107,2,111,76,124,0,106,5,124,1,106,5,107,2,87,0,
- 83,0,4,0,116,6,121,100,1,0,1,0,1,0,116,7,
- 6,0,89,0,83,0,48,0,100,0,83,0,114,13,0,0,
- 0,41,8,114,117,0,0,0,114,17,0,0,0,114,110,0,
- 0,0,114,114,0,0,0,218,6,99,97,99,104,101,100,218,
- 12,104,97,115,95,108,111,99,97,116,105,111,110,114,107,0,
- 0,0,218,14,78,111,116,73,109,112,108,101,109,101,110,116,
- 101,100,41,3,114,30,0,0,0,90,5,111,116,104,101,114,
- 90,4,115,109,115,108,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,6,95,95,101,113,95,95,117,1,0,
- 0,115,30,0,0,0,0,1,6,1,2,1,12,1,10,255,
- 2,2,10,254,2,3,8,253,2,4,10,252,2,5,10,251,
- 4,6,12,1,122,17,77,111,100,117,108,101,83,112,101,99,
- 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,
- 115,58,0,0,0,124,0,106,0,100,0,117,0,114,52,124,
- 0,106,1,100,0,117,1,114,52,124,0,106,2,114,52,116,
- 3,100,0,117,0,114,38,116,4,130,1,116,3,160,5,124,
- 0,106,1,161,1,124,0,95,0,124,0,106,0,83,0,114,
- 13,0,0,0,41,6,114,119,0,0,0,114,114,0,0,0,
- 114,118,0,0,0,218,19,95,98,111,111,116,115,116,114,97,
- 112,95,101,120,116,101,114,110,97,108,218,19,78,111,116,73,
- 109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,90,
- 11,95,103,101,116,95,99,97,99,104,101,100,114,48,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 114,123,0,0,0,129,1,0,0,115,12,0,0,0,0,2,
- 10,1,16,1,8,1,4,1,14,1,122,17,77,111,100,117,
- 108,101,83,112,101,99,46,99,97,99,104,101,100,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,10,0,0,0,124,1,124,0,95,
- 0,100,0,83,0,114,13,0,0,0,41,1,114,119,0,0,
- 0,41,2,114,30,0,0,0,114,123,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,123,0,0,
- 0,138,1,0,0,115,2,0,0,0,0,2,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,115,36,0,0,0,124,0,106,0,100,1,
- 117,0,114,26,124,0,106,1,160,2,100,2,161,1,100,3,
- 25,0,83,0,124,0,106,1,83,0,100,1,83,0,41,4,
- 122,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,
- 101,32,109,111,100,117,108,101,39,115,32,112,97,114,101,110,
- 116,46,78,218,1,46,114,22,0,0,0,41,3,114,117,0,
- 0,0,114,17,0,0,0,218,10,114,112,97,114,116,105,116,
- 105,111,110,114,48,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,6,112,97,114,101,110,116,142,
- 1,0,0,115,6,0,0,0,0,3,10,1,16,2,122,17,
- 77,111,100,117,108,101,83,112,101,99,46,112,97,114,101,110,
- 116,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,6,0,0,0,124,
- 0,106,0,83,0,114,13,0,0,0,41,1,114,118,0,0,
- 0,114,48,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,124,0,0,0,150,1,0,0,115,2,
- 0,0,0,0,2,122,23,77,111,100,117,108,101,83,112,101,
- 99,46,104,97,115,95,108,111,99,97,116,105,111,110,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,14,0,0,0,116,0,124,1,
- 131,1,124,0,95,1,100,0,83,0,114,13,0,0,0,41,
- 2,218,4,98,111,111,108,114,118,0,0,0,41,2,114,30,
- 0,0,0,218,5,118,97,108,117,101,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,124,0,0,0,154,1,
- 0,0,115,2,0,0,0,0,2,41,12,114,1,0,0,0,
- 114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,114,
- 31,0,0,0,114,49,0,0,0,114,126,0,0,0,218,8,
- 112,114,111,112,101,114,116,121,114,123,0,0,0,218,6,115,
- 101,116,116,101,114,114,131,0,0,0,114,124,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,114,113,0,0,0,58,1,0,0,115,32,0,0,
- 0,8,1,4,36,4,1,2,255,12,12,8,10,8,12,2,
- 1,10,8,4,1,10,3,2,1,10,7,2,1,10,3,4,
- 1,114,113,0,0,0,169,2,114,114,0,0,0,114,116,0,
- 0,0,99,2,0,0,0,0,0,0,0,2,0,0,0,6,
- 0,0,0,8,0,0,0,67,0,0,0,115,152,0,0,0,
- 116,0,124,1,100,1,131,2,114,74,116,1,100,2,117,0,
- 114,22,116,2,130,1,116,1,106,3,125,4,124,3,100,2,
- 117,0,114,48,124,4,124,0,124,1,100,3,141,2,83,0,
- 124,3,114,56,103,0,110,2,100,2,125,5,124,4,124,0,
- 124,1,124,5,100,4,141,3,83,0,124,3,100,2,117,0,
- 114,136,116,0,124,1,100,5,131,2,114,132,122,14,124,1,
- 160,4,124,0,161,1,125,3,87,0,113,136,4,0,116,5,
- 121,128,1,0,1,0,1,0,100,2,125,3,89,0,113,136,
- 48,0,110,4,100,6,125,3,116,6,124,0,124,1,124,2,
- 124,3,100,7,141,4,83,0,41,8,122,53,82,101,116,117,
- 114,110,32,97,32,109,111,100,117,108,101,32,115,112,101,99,
- 32,98,97,115,101,100,32,111,110,32,118,97,114,105,111,117,
- 115,32,108,111,97,100,101,114,32,109,101,116,104,111,100,115,
- 46,90,12,103,101,116,95,102,105,108,101,110,97,109,101,78,
- 41,1,114,110,0,0,0,41,2,114,110,0,0,0,114,117,
- 0,0,0,114,116,0,0,0,70,114,136,0,0,0,41,7,
- 114,4,0,0,0,114,127,0,0,0,114,128,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,114,116,0,0,0,114,80,0,
- 0,0,114,113,0,0,0,41,6,114,17,0,0,0,114,110,
- 0,0,0,114,114,0,0,0,114,116,0,0,0,114,137,0,
- 0,0,90,6,115,101,97,114,99,104,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,92,0,0,0,159,1,
- 0,0,115,36,0,0,0,0,2,10,1,8,1,4,1,6,
- 2,8,1,12,1,12,1,6,1,2,255,6,3,8,1,10,
- 1,2,1,14,1,12,1,12,3,4,2,114,92,0,0,0,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,8,0,0,
- 0,8,0,0,0,67,0,0,0,115,42,1,0,0,122,10,
- 124,0,106,0,125,3,87,0,110,18,4,0,116,1,121,28,
- 1,0,1,0,1,0,89,0,110,14,48,0,124,3,100,0,
- 117,1,114,42,124,3,83,0,124,0,106,2,125,4,124,1,
- 100,0,117,0,114,86,122,10,124,0,106,3,125,1,87,0,
- 110,18,4,0,116,1,121,84,1,0,1,0,1,0,89,0,
- 110,2,48,0,122,10,124,0,106,4,125,5,87,0,110,22,
- 4,0,116,1,121,118,1,0,1,0,1,0,100,0,125,5,
- 89,0,110,2,48,0,124,2,100,0,117,0,114,176,124,5,
- 100,0,117,0,114,172,122,10,124,1,106,5,125,2,87,0,
- 113,176,4,0,116,1,121,168,1,0,1,0,1,0,100,0,
- 125,2,89,0,113,176,48,0,110,4,124,5,125,2,122,10,
- 124,0,106,6,125,6,87,0,110,22,4,0,116,1,121,208,
- 1,0,1,0,1,0,100,0,125,6,89,0,110,2,48,0,
- 122,14,116,7,124,0,106,8,131,1,125,7,87,0,110,22,
- 4,0,116,1,121,246,1,0,1,0,1,0,100,0,125,7,
- 89,0,110,2,48,0,116,9,124,4,124,1,124,2,100,1,
- 141,3,125,3,124,5,100,0,117,0,144,1,114,20,100,2,
- 110,2,100,3,124,3,95,10,124,6,124,3,95,11,124,7,
- 124,3,95,12,124,3,83,0,41,4,78,169,1,114,114,0,
- 0,0,70,84,41,13,114,106,0,0,0,114,107,0,0,0,
- 114,1,0,0,0,114,99,0,0,0,114,109,0,0,0,218,
- 7,95,79,82,73,71,73,78,218,10,95,95,99,97,99,104,
- 101,100,95,95,218,4,108,105,115,116,218,8,95,95,112,97,
- 116,104,95,95,114,113,0,0,0,114,118,0,0,0,114,123,
- 0,0,0,114,117,0,0,0,41,8,114,97,0,0,0,114,
- 110,0,0,0,114,114,0,0,0,114,96,0,0,0,114,17,
- 0,0,0,90,8,108,111,99,97,116,105,111,110,114,123,0,
- 0,0,114,117,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,218,17,95,115,112,101,99,95,102,114,
- 111,109,95,109,111,100,117,108,101,185,1,0,0,115,72,0,
- 0,0,0,2,2,1,10,1,12,1,6,2,8,1,4,2,
- 6,1,8,1,2,1,10,1,12,2,6,1,2,1,10,1,
- 12,1,10,1,8,1,8,1,2,1,10,1,12,1,12,2,
- 4,1,2,1,10,1,12,1,10,1,2,1,14,1,12,1,
- 10,2,14,1,20,1,6,1,6,1,114,143,0,0,0,70,
- 169,1,218,8,111,118,101,114,114,105,100,101,99,2,0,0,
- 0,0,0,0,0,1,0,0,0,5,0,0,0,8,0,0,
- 0,67,0,0,0,115,210,1,0,0,124,2,115,20,116,0,
- 124,1,100,1,100,0,131,3,100,0,117,0,114,52,122,12,
- 124,0,106,1,124,1,95,2,87,0,110,18,4,0,116,3,
- 121,50,1,0,1,0,1,0,89,0,110,2,48,0,124,2,
- 115,72,116,0,124,1,100,2,100,0,131,3,100,0,117,0,
- 114,174,124,0,106,4,125,3,124,3,100,0,117,0,114,144,
- 124,0,106,5,100,0,117,1,114,144,116,6,100,0,117,0,
- 114,108,116,7,130,1,116,6,106,8,125,4,124,4,160,9,
- 124,4,161,1,125,3,124,0,106,5,124,3,95,10,124,3,
- 124,0,95,4,100,0,124,1,95,11,122,10,124,3,124,1,
- 95,12,87,0,110,18,4,0,116,3,121,172,1,0,1,0,
- 1,0,89,0,110,2,48,0,124,2,115,194,116,0,124,1,
- 100,3,100,0,131,3,100,0,117,0,114,226,122,12,124,0,
- 106,13,124,1,95,14,87,0,110,18,4,0,116,3,121,224,
- 1,0,1,0,1,0,89,0,110,2,48,0,122,10,124,0,
- 124,1,95,15,87,0,110,18,4,0,116,3,121,254,1,0,
- 1,0,1,0,89,0,110,2,48,0,124,2,144,1,115,24,
- 116,0,124,1,100,4,100,0,131,3,100,0,117,0,144,1,
- 114,70,124,0,106,5,100,0,117,1,144,1,114,70,122,12,
- 124,0,106,5,124,1,95,16,87,0,110,20,4,0,116,3,
- 144,1,121,68,1,0,1,0,1,0,89,0,110,2,48,0,
- 124,0,106,17,144,1,114,206,124,2,144,1,115,102,116,0,
- 124,1,100,5,100,0,131,3,100,0,117,0,144,1,114,136,
- 122,12,124,0,106,18,124,1,95,11,87,0,110,20,4,0,
- 116,3,144,1,121,134,1,0,1,0,1,0,89,0,110,2,
- 48,0,124,2,144,1,115,160,116,0,124,1,100,6,100,0,
- 131,3,100,0,117,0,144,1,114,206,124,0,106,19,100,0,
- 117,1,144,1,114,206,122,12,124,0,106,19,124,1,95,20,
- 87,0,110,20,4,0,116,3,144,1,121,204,1,0,1,0,
- 1,0,89,0,110,2,48,0,124,1,83,0,41,7,78,114,
- 1,0,0,0,114,99,0,0,0,218,11,95,95,112,97,99,
- 107,97,103,101,95,95,114,142,0,0,0,114,109,0,0,0,
- 114,140,0,0,0,41,21,114,6,0,0,0,114,17,0,0,
- 0,114,1,0,0,0,114,107,0,0,0,114,110,0,0,0,
- 114,117,0,0,0,114,127,0,0,0,114,128,0,0,0,218,
- 16,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
- 114,218,7,95,95,110,101,119,95,95,90,5,95,112,97,116,
- 104,114,109,0,0,0,114,99,0,0,0,114,131,0,0,0,
- 114,146,0,0,0,114,106,0,0,0,114,142,0,0,0,114,
- 124,0,0,0,114,114,0,0,0,114,123,0,0,0,114,140,
- 0,0,0,41,5,114,96,0,0,0,114,97,0,0,0,114,
- 145,0,0,0,114,110,0,0,0,114,147,0,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,218,18,95,
- 105,110,105,116,95,109,111,100,117,108,101,95,97,116,116,114,
- 115,230,1,0,0,115,96,0,0,0,0,4,20,1,2,1,
- 12,1,12,1,6,2,20,1,6,1,8,2,10,1,8,1,
- 4,1,6,2,10,1,8,1,6,11,6,1,2,1,10,1,
- 12,1,6,2,20,1,2,1,12,1,12,1,6,2,2,1,
- 10,1,12,1,6,2,24,1,12,1,2,1,12,1,14,1,
- 6,2,8,1,24,1,2,1,12,1,14,1,6,2,24,1,
- 12,1,2,1,12,1,14,1,6,1,114,149,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 3,0,0,0,67,0,0,0,115,82,0,0,0,100,1,125,
- 1,116,0,124,0,106,1,100,2,131,2,114,30,124,0,106,
- 1,160,2,124,0,161,1,125,1,110,20,116,0,124,0,106,
- 1,100,3,131,2,114,50,116,3,100,4,131,1,130,1,124,
- 1,100,1,117,0,114,68,116,4,124,0,106,5,131,1,125,
- 1,116,6,124,0,124,1,131,2,1,0,124,1,83,0,41,
- 5,122,43,67,114,101,97,116,101,32,97,32,109,111,100,117,
- 108,101,32,98,97,115,101,100,32,111,110,32,116,104,101,32,
- 112,114,111,118,105,100,101,100,32,115,112,101,99,46,78,218,
- 13,99,114,101,97,116,101,95,109,111,100,117,108,101,218,11,
- 101,120,101,99,95,109,111,100,117,108,101,122,66,108,111,97,
- 100,101,114,115,32,116,104,97,116,32,100,101,102,105,110,101,
- 32,101,120,101,99,95,109,111,100,117,108,101,40,41,32,109,
- 117,115,116,32,97,108,115,111,32,100,101,102,105,110,101,32,
- 99,114,101,97,116,101,95,109,111,100,117,108,101,40,41,41,
- 7,114,4,0,0,0,114,110,0,0,0,114,150,0,0,0,
- 114,80,0,0,0,114,18,0,0,0,114,17,0,0,0,114,
- 149,0,0,0,169,2,114,96,0,0,0,114,97,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
- 16,109,111,100,117,108,101,95,102,114,111,109,95,115,112,101,
- 99,46,2,0,0,115,18,0,0,0,0,3,4,1,12,3,
- 14,1,12,1,8,2,8,1,10,1,10,1,114,153,0,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,106,0,0,0,124,
- 0,106,0,100,1,117,0,114,14,100,2,110,4,124,0,106,
- 0,125,1,124,0,106,1,100,1,117,0,114,66,124,0,106,
- 2,100,1,117,0,114,50,100,3,160,3,124,1,161,1,83,
- 0,100,4,160,3,124,1,124,0,106,2,161,2,83,0,110,
- 36,124,0,106,4,114,86,100,5,160,3,124,1,124,0,106,
- 1,161,2,83,0,100,6,160,3,124,0,106,0,124,0,106,
- 1,161,2,83,0,100,1,83,0,41,7,122,38,82,101,116,
- 117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32,
- 117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117,
- 108,101,46,78,114,101,0,0,0,114,102,0,0,0,114,103,
- 0,0,0,114,104,0,0,0,250,18,60,109,111,100,117,108,
- 101,32,123,33,114,125,32,40,123,125,41,62,41,5,114,17,
- 0,0,0,114,114,0,0,0,114,110,0,0,0,114,46,0,
- 0,0,114,124,0,0,0,41,2,114,96,0,0,0,114,17,
+ 112,111,114,116,46,10,10,84,104,105,115,32,109,111,100,117,
+ 108,101,32,105,115,32,78,79,84,32,109,101,97,110,116,32,
+ 116,111,32,98,101,32,100,105,114,101,99,116,108,121,32,105,
+ 109,112,111,114,116,101,100,33,32,73,116,32,104,97,115,32,
+ 98,101,101,110,32,100,101,115,105,103,110,101,100,32,115,117,
+ 99,104,10,116,104,97,116,32,105,116,32,99,97,110,32,98,
+ 101,32,98,111,111,116,115,116,114,97,112,112,101,100,32,105,
+ 110,116,111,32,80,121,116,104,111,110,32,97,115,32,116,104,
+ 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
+ 32,111,102,32,105,109,112,111,114,116,46,32,65,115,10,115,
+ 117,99,104,32,105,116,32,114,101,113,117,105,114,101,115,32,
+ 116,104,101,32,105,110,106,101,99,116,105,111,110,32,111,102,
+ 32,115,112,101,99,105,102,105,99,32,109,111,100,117,108,101,
+ 115,32,97,110,100,32,97,116,116,114,105,98,117,116,101,115,
+ 32,105,110,32,111,114,100,101,114,32,116,111,10,119,111,114,
+ 107,46,32,79,110,101,32,115,104,111,117,108,100,32,117,115,
+ 101,32,105,109,112,111,114,116,108,105,98,32,97,115,32,116,
+ 104,101,32,112,117,98,108,105,99,45,102,97,99,105,110,103,
+ 32,118,101,114,115,105,111,110,32,111,102,32,116,104,105,115,
+ 32,109,111,100,117,108,101,46,10,10,78,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,3,0,0,0,7,0,0,0,
+ 67,0,0,0,115,56,0,0,0,100,1,68,0,93,32,125,
+ 2,116,0,124,1,124,2,131,2,114,4,116,1,124,0,124,
+ 2,116,2,124,1,124,2,131,2,131,3,1,0,113,4,124,
+ 0,106,3,160,4,124,1,106,3,161,1,1,0,100,2,83,
+ 0,41,3,122,47,83,105,109,112,108,101,32,115,117,98,115,
+ 116,105,116,117,116,101,32,102,111,114,32,102,117,110,99,116,
+ 111,111,108,115,46,117,112,100,97,116,101,95,119,114,97,112,
+ 112,101,114,46,41,4,218,10,95,95,109,111,100,117,108,101,
+ 95,95,218,8,95,95,110,97,109,101,95,95,218,12,95,95,
+ 113,117,97,108,110,97,109,101,95,95,218,7,95,95,100,111,
+ 99,95,95,78,41,5,218,7,104,97,115,97,116,116,114,218,
+ 7,115,101,116,97,116,116,114,218,7,103,101,116,97,116,116,
+ 114,218,8,95,95,100,105,99,116,95,95,218,6,117,112,100,
+ 97,116,101,41,3,90,3,110,101,119,90,3,111,108,100,218,
+ 7,114,101,112,108,97,99,101,169,0,114,10,0,0,0,250,
+ 29,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
+ 105,98,46,95,98,111,111,116,115,116,114,97,112,62,218,5,
+ 95,119,114,97,112,27,0,0,0,115,8,0,0,0,0,2,
+ 8,1,10,1,20,1,114,12,0,0,0,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,12,0,0,0,116,0,116,1,131,1,124,
+ 0,131,1,83,0,169,1,78,41,2,218,4,116,121,112,101,
+ 218,3,115,121,115,169,1,218,4,110,97,109,101,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,11,95,110,
+ 101,119,95,109,111,100,117,108,101,35,0,0,0,115,2,0,
+ 0,0,0,1,114,18,0,0,0,99,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,
+ 0,0,115,12,0,0,0,101,0,90,1,100,0,90,2,100,
+ 1,83,0,41,2,218,14,95,68,101,97,100,108,111,99,107,
+ 69,114,114,111,114,78,41,3,114,1,0,0,0,114,0,0,
+ 0,0,114,2,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,19,0,0,0,
+ 48,0,0,0,115,2,0,0,0,8,1,114,19,0,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,56,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,83,0,41,13,218,11,95,77,111,100,117,108,
+ 101,76,111,99,107,122,169,65,32,114,101,99,117,114,115,105,
+ 118,101,32,108,111,99,107,32,105,109,112,108,101,109,101,110,
+ 116,97,116,105,111,110,32,119,104,105,99,104,32,105,115,32,
+ 97,98,108,101,32,116,111,32,100,101,116,101,99,116,32,100,
+ 101,97,100,108,111,99,107,115,10,32,32,32,32,40,101,46,
+ 103,46,32,116,104,114,101,97,100,32,49,32,116,114,121,105,
+ 110,103,32,116,111,32,116,97,107,101,32,108,111,99,107,115,
+ 32,65,32,116,104,101,110,32,66,44,32,97,110,100,32,116,
+ 104,114,101,97,100,32,50,32,116,114,121,105,110,103,32,116,
+ 111,10,32,32,32,32,116,97,107,101,32,108,111,99,107,115,
+ 32,66,32,116,104,101,110,32,65,41,46,10,32,32,32,32,
+ 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,48,0,0,0,116,0,
+ 160,1,161,0,124,0,95,2,116,0,160,1,161,0,124,0,
+ 95,3,124,1,124,0,95,4,100,0,124,0,95,5,100,1,
+ 124,0,95,6,100,1,124,0,95,7,100,0,83,0,169,2,
+ 78,233,0,0,0,0,41,8,218,7,95,116,104,114,101,97,
+ 100,90,13,97,108,108,111,99,97,116,101,95,108,111,99,107,
+ 218,4,108,111,99,107,218,6,119,97,107,101,117,112,114,17,
+ 0,0,0,218,5,111,119,110,101,114,218,5,99,111,117,110,
+ 116,218,7,119,97,105,116,101,114,115,169,2,218,4,115,101,
+ 108,102,114,17,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,218,8,95,95,105,110,105,116,95,95,
+ 58,0,0,0,115,12,0,0,0,0,1,10,1,10,1,6,
+ 1,6,1,6,1,122,20,95,77,111,100,117,108,101,76,111,
+ 99,107,46,95,95,105,110,105,116,95,95,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,
+ 67,0,0,0,115,88,0,0,0,116,0,160,1,161,0,125,
+ 1,124,0,106,2,125,2,116,3,131,0,125,3,116,4,160,
+ 5,124,2,161,1,125,4,124,4,100,0,117,0,114,42,100,
+ 1,83,0,124,4,106,2,125,2,124,2,124,1,107,2,114,
+ 60,100,2,83,0,124,2,124,3,118,0,114,72,100,1,83,
+ 0,124,3,160,6,124,2,161,1,1,0,113,20,100,0,83,
+ 0,41,3,78,70,84,41,7,114,23,0,0,0,218,9,103,
+ 101,116,95,105,100,101,110,116,114,26,0,0,0,218,3,115,
+ 101,116,218,12,95,98,108,111,99,107,105,110,103,95,111,110,
+ 218,3,103,101,116,218,3,97,100,100,41,5,114,30,0,0,
+ 0,90,2,109,101,218,3,116,105,100,90,4,115,101,101,110,
+ 114,24,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,12,104,97,115,95,100,101,97,100,108,111,
+ 99,107,66,0,0,0,115,24,0,0,0,0,2,8,1,6,
+ 1,6,2,10,1,8,1,4,1,6,1,8,1,4,1,8,
+ 6,4,1,122,24,95,77,111,100,117,108,101,76,111,99,107,
+ 46,104,97,115,95,100,101,97,100,108,111,99,107,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,
+ 0,0,67,0,0,0,115,210,0,0,0,116,0,160,1,161,
+ 0,125,1,124,0,116,2,124,1,60,0,122,180,124,0,106,
+ 3,143,126,1,0,124,0,106,4,100,1,107,2,115,46,124,
+ 0,106,5,124,1,107,2,114,90,124,1,124,0,95,5,124,
+ 0,4,0,106,4,100,2,55,0,2,0,95,4,87,0,100,
+ 3,4,0,4,0,131,3,1,0,87,0,116,2,124,1,61,
+ 0,100,4,83,0,124,0,160,6,161,0,114,110,116,7,100,
+ 5,124,0,22,0,131,1,130,1,124,0,106,8,160,9,100,
+ 6,161,1,114,136,124,0,4,0,106,10,100,2,55,0,2,
+ 0,95,10,87,0,100,3,4,0,4,0,131,3,1,0,110,
+ 16,49,0,115,156,48,0,1,0,1,0,1,0,89,0,1,
+ 0,124,0,106,8,160,9,161,0,1,0,124,0,106,8,160,
+ 11,161,0,1,0,113,18,87,0,116,2,124,1,61,0,110,
+ 8,116,2,124,1,61,0,48,0,100,3,83,0,41,7,122,
+ 185,10,32,32,32,32,32,32,32,32,65,99,113,117,105,114,
+ 101,32,116,104,101,32,109,111,100,117,108,101,32,108,111,99,
+ 107,46,32,32,73,102,32,97,32,112,111,116,101,110,116,105,
+ 97,108,32,100,101,97,100,108,111,99,107,32,105,115,32,100,
+ 101,116,101,99,116,101,100,44,10,32,32,32,32,32,32,32,
+ 32,97,32,95,68,101,97,100,108,111,99,107,69,114,114,111,
+ 114,32,105,115,32,114,97,105,115,101,100,46,10,32,32,32,
+ 32,32,32,32,32,79,116,104,101,114,119,105,115,101,44,32,
+ 116,104,101,32,108,111,99,107,32,105,115,32,97,108,119,97,
+ 121,115,32,97,99,113,117,105,114,101,100,32,97,110,100,32,
+ 84,114,117,101,32,105,115,32,114,101,116,117,114,110,101,100,
+ 46,10,32,32,32,32,32,32,32,32,114,22,0,0,0,233,
+ 1,0,0,0,78,84,122,23,100,101,97,100,108,111,99,107,
+ 32,100,101,116,101,99,116,101,100,32,98,121,32,37,114,70,
+ 41,12,114,23,0,0,0,114,32,0,0,0,114,34,0,0,
+ 0,114,24,0,0,0,114,27,0,0,0,114,26,0,0,0,
+ 114,38,0,0,0,114,19,0,0,0,114,25,0,0,0,218,
+ 7,97,99,113,117,105,114,101,114,28,0,0,0,218,7,114,
+ 101,108,101,97,115,101,169,2,114,30,0,0,0,114,37,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,40,0,0,0,87,0,0,0,115,34,0,0,0,0,
+ 6,8,1,8,1,2,2,8,1,20,1,6,1,14,1,14,
+ 9,6,247,4,1,8,1,12,1,12,1,44,2,10,1,14,
+ 2,122,19,95,77,111,100,117,108,101,76,111,99,107,46,97,
+ 99,113,117,105,114,101,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,
+ 142,0,0,0,116,0,160,1,161,0,125,1,124,0,106,2,
+ 143,108,1,0,124,0,106,3,124,1,107,3,114,34,116,4,
+ 100,1,131,1,130,1,124,0,106,5,100,2,107,4,115,48,
+ 74,0,130,1,124,0,4,0,106,5,100,3,56,0,2,0,
+ 95,5,124,0,106,5,100,2,107,2,114,108,100,0,124,0,
+ 95,3,124,0,106,6,114,108,124,0,4,0,106,6,100,3,
+ 56,0,2,0,95,6,124,0,106,7,160,8,161,0,1,0,
+ 87,0,100,0,4,0,4,0,131,3,1,0,110,16,49,0,
+ 115,128,48,0,1,0,1,0,1,0,89,0,1,0,100,0,
+ 83,0,41,4,78,250,31,99,97,110,110,111,116,32,114,101,
+ 108,101,97,115,101,32,117,110,45,97,99,113,117,105,114,101,
+ 100,32,108,111,99,107,114,22,0,0,0,114,39,0,0,0,
+ 41,9,114,23,0,0,0,114,32,0,0,0,114,24,0,0,
+ 0,114,26,0,0,0,218,12,82,117,110,116,105,109,101,69,
+ 114,114,111,114,114,27,0,0,0,114,28,0,0,0,114,25,
+ 0,0,0,114,41,0,0,0,114,42,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,41,0,0,
+ 0,112,0,0,0,115,22,0,0,0,0,1,8,1,8,1,
+ 10,1,8,1,14,1,14,1,10,1,6,1,6,1,14,1,
+ 122,19,95,77,111,100,117,108,101,76,111,99,107,46,114,101,
+ 108,101,97,115,101,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,5,0,0,0,67,0,0,0,115,18,
+ 0,0,0,100,1,160,0,124,0,106,1,116,2,124,0,131,
+ 1,161,2,83,0,41,2,78,122,23,95,77,111,100,117,108,
+ 101,76,111,99,107,40,123,33,114,125,41,32,97,116,32,123,
+ 125,169,3,218,6,102,111,114,109,97,116,114,17,0,0,0,
+ 218,2,105,100,169,1,114,30,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,8,95,95,114,101,
+ 112,114,95,95,125,0,0,0,115,2,0,0,0,0,1,122,
+ 20,95,77,111,100,117,108,101,76,111,99,107,46,95,95,114,
+ 101,112,114,95,95,78,41,9,114,1,0,0,0,114,0,0,
+ 0,0,114,2,0,0,0,114,3,0,0,0,114,31,0,0,
+ 0,114,38,0,0,0,114,40,0,0,0,114,41,0,0,0,
+ 114,49,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,20,0,0,0,52,0,
+ 0,0,115,12,0,0,0,8,1,4,5,8,8,8,21,8,
+ 25,8,13,114,20,0,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,48,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,83,0,41,11,218,16,95,68,117,109,109,121,
+ 77,111,100,117,108,101,76,111,99,107,122,86,65,32,115,105,
+ 109,112,108,101,32,95,77,111,100,117,108,101,76,111,99,107,
+ 32,101,113,117,105,118,97,108,101,110,116,32,102,111,114,32,
+ 80,121,116,104,111,110,32,98,117,105,108,100,115,32,119,105,
+ 116,104,111,117,116,10,32,32,32,32,109,117,108,116,105,45,
+ 116,104,114,101,97,100,105,110,103,32,115,117,112,112,111,114,
+ 116,46,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,16,0,0,0,
+ 124,1,124,0,95,0,100,1,124,0,95,1,100,0,83,0,
+ 114,21,0,0,0,41,2,114,17,0,0,0,114,27,0,0,
+ 0,114,29,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,31,0,0,0,133,0,0,0,115,4,
+ 0,0,0,0,1,6,1,122,25,95,68,117,109,109,121,77,
+ 111,100,117,108,101,76,111,99,107,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,115,18,0,0,0,
+ 124,0,4,0,106,0,100,1,55,0,2,0,95,0,100,2,
+ 83,0,41,3,78,114,39,0,0,0,84,41,1,114,27,0,
+ 0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,40,0,0,0,137,0,0,0,115,
+ 4,0,0,0,0,1,14,1,122,24,95,68,117,109,109,121,
+ 77,111,100,117,108,101,76,111,99,107,46,97,99,113,117,105,
+ 114,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,115,36,0,0,0,
+ 124,0,106,0,100,1,107,2,114,18,116,1,100,2,131,1,
+ 130,1,124,0,4,0,106,0,100,3,56,0,2,0,95,0,
+ 100,0,83,0,41,4,78,114,22,0,0,0,114,43,0,0,
+ 0,114,39,0,0,0,41,2,114,27,0,0,0,114,44,0,
+ 0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,41,0,0,0,141,0,0,0,115,
+ 6,0,0,0,0,1,10,1,8,1,122,24,95,68,117,109,
+ 109,121,77,111,100,117,108,101,76,111,99,107,46,114,101,108,
+ 101,97,115,101,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,5,0,0,0,67,0,0,0,115,18,0,
+ 0,0,100,1,160,0,124,0,106,1,116,2,124,0,131,1,
+ 161,2,83,0,41,2,78,122,28,95,68,117,109,109,121,77,
+ 111,100,117,108,101,76,111,99,107,40,123,33,114,125,41,32,
+ 97,116,32,123,125,114,45,0,0,0,114,48,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,49,
+ 0,0,0,146,0,0,0,115,2,0,0,0,0,1,122,25,
+ 95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107,
+ 46,95,95,114,101,112,114,95,95,78,41,8,114,1,0,0,
+ 0,114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,
+ 114,31,0,0,0,114,40,0,0,0,114,41,0,0,0,114,
+ 49,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,50,0,0,0,129,0,0,
+ 0,115,10,0,0,0,8,1,4,3,8,4,8,4,8,5,
+ 114,50,0,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,36,
+ 0,0,0,101,0,90,1,100,0,90,2,100,1,100,2,132,
+ 0,90,3,100,3,100,4,132,0,90,4,100,5,100,6,132,
+ 0,90,5,100,7,83,0,41,8,218,18,95,77,111,100,117,
+ 108,101,76,111,99,107,77,97,110,97,103,101,114,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,16,0,0,0,124,1,124,0,95,
+ 0,100,0,124,0,95,1,100,0,83,0,114,13,0,0,0,
+ 41,2,218,5,95,110,97,109,101,218,5,95,108,111,99,107,
+ 114,29,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,114,31,0,0,0,152,0,0,0,115,4,0,
+ 0,0,0,1,6,1,122,27,95,77,111,100,117,108,101,76,
+ 111,99,107,77,97,110,97,103,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,26,0,0,
+ 0,116,0,124,0,106,1,131,1,124,0,95,2,124,0,106,
+ 2,160,3,161,0,1,0,100,0,83,0,114,13,0,0,0,
+ 41,4,218,16,95,103,101,116,95,109,111,100,117,108,101,95,
+ 108,111,99,107,114,52,0,0,0,114,53,0,0,0,114,40,
+ 0,0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,9,95,95,101,110,116,101,114,
+ 95,95,156,0,0,0,115,4,0,0,0,0,1,12,1,122,
+ 28,95,77,111,100,117,108,101,76,111,99,107,77,97,110,97,
+ 103,101,114,46,95,95,101,110,116,101,114,95,95,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,
+ 0,0,79,0,0,0,115,14,0,0,0,124,0,106,0,160,
+ 1,161,0,1,0,100,0,83,0,114,13,0,0,0,41,2,
+ 114,53,0,0,0,114,41,0,0,0,41,3,114,30,0,0,
+ 0,218,4,97,114,103,115,90,6,107,119,97,114,103,115,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,8,
+ 95,95,101,120,105,116,95,95,160,0,0,0,115,2,0,0,
+ 0,0,1,122,27,95,77,111,100,117,108,101,76,111,99,107,
+ 77,97,110,97,103,101,114,46,95,95,101,120,105,116,95,95,
+ 78,41,6,114,1,0,0,0,114,0,0,0,0,114,2,0,
+ 0,0,114,31,0,0,0,114,55,0,0,0,114,57,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,51,0,0,0,150,0,0,0,115,6,
+ 0,0,0,8,2,8,4,8,4,114,51,0,0,0,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,
+ 0,0,0,67,0,0,0,115,136,0,0,0,116,0,160,1,
+ 161,0,1,0,122,112,122,14,116,2,124,0,25,0,131,0,
+ 125,1,87,0,110,22,4,0,116,3,121,46,1,0,1,0,
+ 1,0,100,1,125,1,89,0,110,2,48,0,124,1,100,1,
+ 117,0,114,110,116,4,100,1,117,0,114,74,116,5,124,0,
+ 131,1,125,1,110,8,116,6,124,0,131,1,125,1,124,0,
+ 102,1,100,2,100,3,132,1,125,2,116,7,160,8,124,1,
+ 124,2,161,2,116,2,124,0,60,0,87,0,116,0,160,9,
+ 161,0,1,0,110,10,116,0,160,9,161,0,1,0,48,0,
+ 124,1,83,0,41,4,122,139,71,101,116,32,111,114,32,99,
+ 114,101,97,116,101,32,116,104,101,32,109,111,100,117,108,101,
+ 32,108,111,99,107,32,102,111,114,32,97,32,103,105,118,101,
+ 110,32,109,111,100,117,108,101,32,110,97,109,101,46,10,10,
+ 32,32,32,32,65,99,113,117,105,114,101,47,114,101,108,101,
+ 97,115,101,32,105,110,116,101,114,110,97,108,108,121,32,116,
+ 104,101,32,103,108,111,98,97,108,32,105,109,112,111,114,116,
+ 32,108,111,99,107,32,116,111,32,112,114,111,116,101,99,116,
+ 10,32,32,32,32,95,109,111,100,117,108,101,95,108,111,99,
+ 107,115,46,78,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,8,0,0,0,83,0,0,0,115,56,0,
+ 0,0,116,0,160,1,161,0,1,0,122,32,116,2,160,3,
+ 124,1,161,1,124,0,117,0,114,30,116,2,124,1,61,0,
+ 87,0,116,0,160,4,161,0,1,0,110,10,116,0,160,4,
+ 161,0,1,0,48,0,100,0,83,0,114,13,0,0,0,41,
+ 5,218,4,95,105,109,112,218,12,97,99,113,117,105,114,101,
+ 95,108,111,99,107,218,13,95,109,111,100,117,108,101,95,108,
+ 111,99,107,115,114,35,0,0,0,218,12,114,101,108,101,97,
+ 115,101,95,108,111,99,107,41,2,218,3,114,101,102,114,17,
0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,114,108,0,0,0,63,2,0,0,115,16,0,0,0,
- 0,3,20,1,10,1,10,1,10,2,16,2,6,1,14,2,
- 114,108,0,0,0,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,4,0,0,0,10,0,0,0,67,0,0,0,115,250,
- 0,0,0,124,0,106,0,125,2,116,1,124,2,131,1,143,
- 216,1,0,116,2,106,3,160,4,124,2,161,1,124,1,117,
- 1,114,54,100,1,160,5,124,2,161,1,125,3,116,6,124,
- 3,124,2,100,2,141,2,130,1,122,132,124,0,106,7,100,
- 3,117,0,114,106,124,0,106,8,100,3,117,0,114,90,116,
- 6,100,4,124,0,106,0,100,2,141,2,130,1,116,9,124,
- 0,124,1,100,5,100,6,141,3,1,0,110,52,116,9,124,
- 0,124,1,100,5,100,6,141,3,1,0,116,10,124,0,106,
- 7,100,7,131,2,115,146,124,0,106,7,160,11,124,2,161,
- 1,1,0,110,12,124,0,106,7,160,12,124,1,161,1,1,
- 0,87,0,116,2,106,3,160,13,124,0,106,0,161,1,125,
- 1,124,1,116,2,106,3,124,0,106,0,60,0,110,28,116,
- 2,106,3,160,13,124,0,106,0,161,1,125,1,124,1,116,
- 2,106,3,124,0,106,0,60,0,48,0,87,0,100,3,4,
- 0,4,0,131,3,1,0,110,16,49,0,115,236,48,0,1,
- 0,1,0,1,0,89,0,1,0,124,1,83,0,41,8,122,
- 70,69,120,101,99,117,116,101,32,116,104,101,32,115,112,101,
- 99,39,115,32,115,112,101,99,105,102,105,101,100,32,109,111,
- 100,117,108,101,32,105,110,32,97,110,32,101,120,105,115,116,
- 105,110,103,32,109,111,100,117,108,101,39,115,32,110,97,109,
- 101,115,112,97,99,101,46,122,30,109,111,100,117,108,101,32,
- 123,33,114,125,32,110,111,116,32,105,110,32,115,121,115,46,
- 109,111,100,117,108,101,115,114,16,0,0,0,78,250,14,109,
- 105,115,115,105,110,103,32,108,111,97,100,101,114,84,114,144,
- 0,0,0,114,151,0,0,0,41,14,114,17,0,0,0,114,
- 51,0,0,0,114,15,0,0,0,114,93,0,0,0,114,35,
- 0,0,0,114,46,0,0,0,114,80,0,0,0,114,110,0,
- 0,0,114,117,0,0,0,114,149,0,0,0,114,4,0,0,
- 0,218,11,108,111,97,100,95,109,111,100,117,108,101,114,151,
- 0,0,0,218,3,112,111,112,41,4,114,96,0,0,0,114,
- 97,0,0,0,114,17,0,0,0,218,3,109,115,103,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,114,94,0,
- 0,0,80,2,0,0,115,38,0,0,0,0,2,6,1,10,
- 1,16,1,10,1,12,1,2,1,10,1,10,1,14,2,16,
- 2,14,1,12,4,14,2,14,4,14,1,14,255,14,1,44,
- 1,114,94,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,
- 20,1,0,0,122,18,124,0,106,0,160,1,124,0,106,2,
- 161,1,1,0,87,0,110,52,1,0,1,0,1,0,124,0,
- 106,2,116,3,106,4,118,0,114,64,116,3,106,4,160,5,
- 124,0,106,2,161,1,125,1,124,1,116,3,106,4,124,0,
- 106,2,60,0,130,0,89,0,110,2,48,0,116,3,106,4,
- 160,5,124,0,106,2,161,1,125,1,124,1,116,3,106,4,
- 124,0,106,2,60,0,116,6,124,1,100,1,100,0,131,3,
- 100,0,117,0,114,146,122,12,124,0,106,0,124,1,95,7,
- 87,0,110,18,4,0,116,8,121,144,1,0,1,0,1,0,
- 89,0,110,2,48,0,116,6,124,1,100,2,100,0,131,3,
- 100,0,117,0,114,222,122,40,124,1,106,9,124,1,95,10,
- 116,11,124,1,100,3,131,2,115,200,124,0,106,2,160,12,
- 100,4,161,1,100,5,25,0,124,1,95,10,87,0,110,18,
- 4,0,116,8,121,220,1,0,1,0,1,0,89,0,110,2,
- 48,0,116,6,124,1,100,6,100,0,131,3,100,0,117,0,
- 144,1,114,16,122,10,124,0,124,1,95,13,87,0,110,20,
- 4,0,116,8,144,1,121,14,1,0,1,0,1,0,89,0,
- 110,2,48,0,124,1,83,0,41,7,78,114,99,0,0,0,
- 114,146,0,0,0,114,142,0,0,0,114,129,0,0,0,114,
- 22,0,0,0,114,106,0,0,0,41,14,114,110,0,0,0,
- 114,156,0,0,0,114,17,0,0,0,114,15,0,0,0,114,
- 93,0,0,0,114,157,0,0,0,114,6,0,0,0,114,99,
- 0,0,0,114,107,0,0,0,114,1,0,0,0,114,146,0,
- 0,0,114,4,0,0,0,114,130,0,0,0,114,106,0,0,
- 0,114,152,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,25,95,108,111,97,100,95,98,97,99,
- 107,119,97,114,100,95,99,111,109,112,97,116,105,98,108,101,
- 110,2,0,0,115,54,0,0,0,0,4,2,1,18,1,6,
- 1,12,1,14,1,12,1,8,3,14,1,12,1,16,1,2,
- 1,12,1,12,1,6,1,16,1,2,4,8,1,10,1,22,
- 1,12,1,6,1,18,1,2,1,10,1,14,1,6,1,114,
- 159,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,11,0,0,0,67,0,0,0,115,224,0,
- 0,0,124,0,106,0,100,0,117,1,114,30,116,1,124,0,
- 106,0,100,1,131,2,115,30,116,2,124,0,131,1,83,0,
- 116,3,124,0,131,1,125,1,100,2,124,0,95,4,122,166,
- 124,1,116,5,106,6,124,0,106,7,60,0,122,52,124,0,
- 106,0,100,0,117,0,114,96,124,0,106,8,100,0,117,0,
- 114,108,116,9,100,3,124,0,106,7,100,4,141,2,130,1,
- 110,12,124,0,106,0,160,10,124,1,161,1,1,0,87,0,
- 110,48,1,0,1,0,1,0,122,14,116,5,106,6,124,0,
- 106,7,61,0,87,0,110,18,4,0,116,11,121,150,1,0,
- 1,0,1,0,89,0,110,2,48,0,130,0,89,0,110,2,
- 48,0,116,5,106,6,160,12,124,0,106,7,161,1,125,1,
- 124,1,116,5,106,6,124,0,106,7,60,0,116,13,100,5,
- 124,0,106,7,124,0,106,0,131,3,1,0,87,0,100,6,
- 124,0,95,4,110,8,100,6,124,0,95,4,48,0,124,1,
- 83,0,41,7,78,114,151,0,0,0,84,114,155,0,0,0,
- 114,16,0,0,0,122,18,105,109,112,111,114,116,32,123,33,
- 114,125,32,35,32,123,33,114,125,70,41,14,114,110,0,0,
- 0,114,4,0,0,0,114,159,0,0,0,114,153,0,0,0,
- 90,13,95,105,110,105,116,105,97,108,105,122,105,110,103,114,
- 15,0,0,0,114,93,0,0,0,114,17,0,0,0,114,117,
- 0,0,0,114,80,0,0,0,114,151,0,0,0,114,64,0,
- 0,0,114,157,0,0,0,114,77,0,0,0,114,152,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 218,14,95,108,111,97,100,95,117,110,108,111,99,107,101,100,
- 147,2,0,0,115,46,0,0,0,0,2,10,2,12,1,8,
- 2,8,5,6,1,2,1,12,1,2,1,10,1,10,1,16,
- 3,16,1,6,1,2,1,14,1,12,1,6,1,8,5,14,
- 1,12,1,18,2,16,2,114,160,0,0,0,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
- 0,67,0,0,0,115,54,0,0,0,116,0,124,0,106,1,
- 131,1,143,24,1,0,116,2,124,0,131,1,87,0,2,0,
- 100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,40,
- 48,0,1,0,1,0,1,0,89,0,1,0,100,1,83,0,
- 41,2,122,191,82,101,116,117,114,110,32,97,32,110,101,119,
- 32,109,111,100,117,108,101,32,111,98,106,101,99,116,44,32,
- 108,111,97,100,101,100,32,98,121,32,116,104,101,32,115,112,
- 101,99,39,115,32,108,111,97,100,101,114,46,10,10,32,32,
- 32,32,84,104,101,32,109,111,100,117,108,101,32,105,115,32,
- 110,111,116,32,97,100,100,101,100,32,116,111,32,105,116,115,
- 32,112,97,114,101,110,116,46,10,10,32,32,32,32,73,102,
- 32,97,32,109,111,100,117,108,101,32,105,115,32,97,108,114,
- 101,97,100,121,32,105,110,32,115,121,115,46,109,111,100,117,
- 108,101,115,44,32,116,104,97,116,32,101,120,105,115,116,105,
- 110,103,32,109,111,100,117,108,101,32,103,101,116,115,10,32,
- 32,32,32,99,108,111,98,98,101,114,101,100,46,10,10,32,
- 32,32,32,78,41,3,114,51,0,0,0,114,17,0,0,0,
- 114,160,0,0,0,41,1,114,96,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,95,0,0,0,
- 189,2,0,0,115,4,0,0,0,0,9,12,1,114,95,0,
- 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,140,0,0,0,
- 101,0,90,1,100,0,90,2,100,1,90,3,100,2,90,4,
- 101,5,100,3,100,4,132,0,131,1,90,6,101,7,100,20,
- 100,6,100,7,132,1,131,1,90,8,101,7,100,21,100,8,
- 100,9,132,1,131,1,90,9,101,7,100,10,100,11,132,0,
- 131,1,90,10,101,7,100,12,100,13,132,0,131,1,90,11,
- 101,7,101,12,100,14,100,15,132,0,131,1,131,1,90,13,
- 101,7,101,12,100,16,100,17,132,0,131,1,131,1,90,14,
- 101,7,101,12,100,18,100,19,132,0,131,1,131,1,90,15,
- 101,7,101,16,131,1,90,17,100,5,83,0,41,22,218,15,
- 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,122,
- 144,77,101,116,97,32,112,97,116,104,32,105,109,112,111,114,
- 116,32,102,111,114,32,98,117,105,108,116,45,105,110,32,109,
- 111,100,117,108,101,115,46,10,10,32,32,32,32,65,108,108,
- 32,109,101,116,104,111,100,115,32,97,114,101,32,101,105,116,
- 104,101,114,32,99,108,97,115,115,32,111,114,32,115,116,97,
- 116,105,99,32,109,101,116,104,111,100,115,32,116,111,32,97,
- 118,111,105,100,32,116,104,101,32,110,101,101,100,32,116,111,
- 10,32,32,32,32,105,110,115,116,97,110,116,105,97,116,101,
- 32,116,104,101,32,99,108,97,115,115,46,10,10,32,32,32,
- 32,122,8,98,117,105,108,116,45,105,110,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,
- 67,0,0,0,115,22,0,0,0,100,1,124,0,106,0,155,
- 2,100,2,116,1,106,2,155,0,100,3,157,5,83,0,41,
- 4,250,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,8,60,109,111,100,117,108,101,32,
- 122,2,32,40,122,2,41,62,41,3,114,1,0,0,0,114,
- 161,0,0,0,114,139,0,0,0,41,1,114,97,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 100,0,0,0,215,2,0,0,115,2,0,0,0,0,7,122,
- 27,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,
- 46,109,111,100,117,108,101,95,114,101,112,114,78,99,4,0,
- 0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,
- 0,0,67,0,0,0,115,46,0,0,0,124,2,100,0,117,
- 1,114,12,100,0,83,0,116,0,160,1,124,1,161,1,114,
- 38,116,2,124,1,124,0,124,0,106,3,100,1,141,3,83,
- 0,100,0,83,0,100,0,83,0,169,2,78,114,138,0,0,
- 0,41,4,114,58,0,0,0,90,10,105,115,95,98,117,105,
- 108,116,105,110,114,92,0,0,0,114,139,0,0,0,169,4,
- 218,3,99,108,115,114,82,0,0,0,218,4,112,97,116,104,
- 218,6,116,97,114,103,101,116,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,9,102,105,110,100,95,115,112,
- 101,99,224,2,0,0,115,10,0,0,0,0,2,8,1,4,
- 1,10,1,16,2,122,25,66,117,105,108,116,105,110,73,109,
- 112,111,114,116,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,1,
- 114,26,124,3,106,1,83,0,100,1,83,0,41,2,122,175,
- 70,105,110,100,32,116,104,101,32,98,117,105,108,116,45,105,
- 110,32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,
- 32,32,32,73,102,32,39,112,97,116,104,39,32,105,115,32,
- 101,118,101,114,32,115,112,101,99,105,102,105,101,100,32,116,
- 104,101,110,32,116,104,101,32,115,101,97,114,99,104,32,105,
- 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,102,
- 97,105,108,117,114,101,46,10,10,32,32,32,32,32,32,32,
- 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,
- 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,
- 32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,
- 116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,
- 41,2,114,168,0,0,0,114,110,0,0,0,41,4,114,165,
- 0,0,0,114,82,0,0,0,114,166,0,0,0,114,96,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,11,102,105,110,100,95,109,111,100,117,108,101,233,2,
- 0,0,115,4,0,0,0,0,9,12,1,122,27,66,117,105,
- 108,116,105,110,73,109,112,111,114,116,101,114,46,102,105,110,
- 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,4,0,0,0,67,0,0,
- 0,115,46,0,0,0,124,1,106,0,116,1,106,2,118,1,
- 114,34,116,3,100,1,160,4,124,1,106,0,161,1,124,1,
- 106,0,100,2,141,2,130,1,116,5,116,6,106,7,124,1,
- 131,2,83,0,41,3,122,24,67,114,101,97,116,101,32,97,
- 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
- 114,78,0,0,0,114,16,0,0,0,41,8,114,17,0,0,
- 0,114,15,0,0,0,114,79,0,0,0,114,80,0,0,0,
- 114,46,0,0,0,114,68,0,0,0,114,58,0,0,0,90,
- 14,99,114,101,97,116,101,95,98,117,105,108,116,105,110,41,
- 2,114,30,0,0,0,114,96,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,150,0,0,0,245,
- 2,0,0,115,10,0,0,0,0,3,12,1,12,1,4,255,
- 6,2,122,29,66,117,105,108,116,105,110,73,109,112,111,114,
- 116,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,3,0,0,0,67,0,0,0,115,16,0,0,0,116,
- 0,116,1,106,2,124,1,131,2,1,0,100,1,83,0,41,
- 2,122,22,69,120,101,99,32,97,32,98,117,105,108,116,45,
- 105,110,32,109,111,100,117,108,101,78,41,3,114,68,0,0,
- 0,114,58,0,0,0,90,12,101,120,101,99,95,98,117,105,
- 108,116,105,110,41,2,114,30,0,0,0,114,97,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 151,0,0,0,253,2,0,0,115,2,0,0,0,0,3,122,
- 27,66,117,105,108,116,105,110,73,109,112,111,114,116,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,1,0,0,
- 0,67,0,0,0,115,4,0,0,0,100,1,83,0,41,2,
- 122,57,82,101,116,117,114,110,32,78,111,110,101,32,97,115,
- 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
- 115,32,100,111,32,110,111,116,32,104,97,118,101,32,99,111,
- 100,101,32,111,98,106,101,99,116,115,46,78,114,10,0,0,
- 0,169,2,114,165,0,0,0,114,82,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,8,103,101,
- 116,95,99,111,100,101,2,3,0,0,115,2,0,0,0,0,
- 4,122,24,66,117,105,108,116,105,110,73,109,112,111,114,116,
- 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,115,4,0,0,0,100,1,83,0,41,2,122,
- 56,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
- 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,
- 32,100,111,32,110,111,116,32,104,97,118,101,32,115,111,117,
- 114,99,101,32,99,111,100,101,46,78,114,10,0,0,0,114,
- 170,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,8,
- 3,0,0,115,2,0,0,0,0,4,122,26,66,117,105,108,
- 116,105,110,73,109,112,111,114,116,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,115,
- 4,0,0,0,100,1,83,0,41,2,122,52,82,101,116,117,
- 114,110,32,70,97,108,115,101,32,97,115,32,98,117,105,108,
- 116,45,105,110,32,109,111,100,117,108,101,115,32,97,114,101,
- 32,110,101,118,101,114,32,112,97,99,107,97,103,101,115,46,
- 70,114,10,0,0,0,114,170,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,116,0,0,0,14,
- 3,0,0,115,2,0,0,0,0,4,122,26,66,117,105,108,
- 116,105,110,73,109,112,111,114,116,101,114,46,105,115,95,112,
- 97,99,107,97,103,101,41,2,78,78,41,1,78,41,18,114,
- 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,
- 0,0,0,114,139,0,0,0,218,12,115,116,97,116,105,99,
- 109,101,116,104,111,100,114,100,0,0,0,218,11,99,108,97,
- 115,115,109,101,116,104,111,100,114,168,0,0,0,114,169,0,
- 0,0,114,150,0,0,0,114,151,0,0,0,114,87,0,0,
- 0,114,171,0,0,0,114,172,0,0,0,114,116,0,0,0,
- 114,98,0,0,0,114,156,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,161,
- 0,0,0,204,2,0,0,115,44,0,0,0,8,2,4,7,
- 4,2,2,1,10,8,2,1,12,8,2,1,12,11,2,1,
- 10,7,2,1,10,4,2,1,2,1,12,4,2,1,2,1,
- 12,4,2,1,2,1,12,4,114,161,0,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,144,0,0,0,101,0,90,1,100,
- 0,90,2,100,1,90,3,100,2,90,4,101,5,100,3,100,
- 4,132,0,131,1,90,6,101,7,100,22,100,6,100,7,132,
- 1,131,1,90,8,101,7,100,23,100,8,100,9,132,1,131,
- 1,90,9,101,7,100,10,100,11,132,0,131,1,90,10,101,
- 5,100,12,100,13,132,0,131,1,90,11,101,7,100,14,100,
- 15,132,0,131,1,90,12,101,7,101,13,100,16,100,17,132,
- 0,131,1,131,1,90,14,101,7,101,13,100,18,100,19,132,
- 0,131,1,131,1,90,15,101,7,101,13,100,20,100,21,132,
- 0,131,1,131,1,90,16,100,5,83,0,41,24,218,14,70,
- 114,111,122,101,110,73,109,112,111,114,116,101,114,122,142,77,
- 101,116,97,32,112,97,116,104,32,105,109,112,111,114,116,32,
- 102,111,114,32,102,114,111,122,101,110,32,109,111,100,117,108,
- 101,115,46,10,10,32,32,32,32,65,108,108,32,109,101,116,
- 104,111,100,115,32,97,114,101,32,101,105,116,104,101,114,32,
- 99,108,97,115,115,32,111,114,32,115,116,97,116,105,99,32,
- 109,101,116,104,111,100,115,32,116,111,32,97,118,111,105,100,
- 32,116,104,101,32,110,101,101,100,32,116,111,10,32,32,32,
- 32,105,110,115,116,97,110,116,105,97,116,101,32,116,104,101,
- 32,99,108,97,115,115,46,10,10,32,32,32,32,90,6,102,
- 114,111,122,101,110,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,16,
- 0,0,0,100,1,160,0,124,0,106,1,116,2,106,3,161,
- 2,83,0,41,2,114,162,0,0,0,114,154,0,0,0,41,
- 4,114,46,0,0,0,114,1,0,0,0,114,175,0,0,0,
- 114,139,0,0,0,41,1,218,1,109,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,100,0,0,0,34,3,
- 0,0,115,2,0,0,0,0,7,122,26,70,114,111,122,101,
- 110,73,109,112,111,114,116,101,114,46,109,111,100,117,108,101,
- 95,114,101,112,114,78,99,4,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,5,0,0,0,67,0,0,0,115,
- 34,0,0,0,116,0,160,1,124,1,161,1,114,26,116,2,
- 124,1,124,0,124,0,106,3,100,1,141,3,83,0,100,0,
- 83,0,100,0,83,0,114,163,0,0,0,41,4,114,58,0,
- 0,0,114,89,0,0,0,114,92,0,0,0,114,139,0,0,
- 0,114,164,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,168,0,0,0,43,3,0,0,115,6,
- 0,0,0,0,2,10,1,16,2,122,24,70,114,111,122,101,
- 110,73,109,112,111,114,116,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,
- 3,0,0,0,3,0,0,0,67,0,0,0,115,18,0,0,
- 0,116,0,160,1,124,1,161,1,114,14,124,0,83,0,100,
- 1,83,0,41,2,122,93,70,105,110,100,32,97,32,102,114,
- 111,122,101,110,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,41,2,114,58,0,0,0,114,89,0,0,
- 0,41,3,114,165,0,0,0,114,82,0,0,0,114,166,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,169,0,0,0,50,3,0,0,115,2,0,0,0,0,
- 7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,
- 114,46,102,105,110,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,115,4,0,0,0,100,1,83,0,41,
- 2,122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,
- 101,109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,
- 117,108,101,32,99,114,101,97,116,105,111,110,46,78,114,10,
- 0,0,0,41,2,114,165,0,0,0,114,96,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,150,
- 0,0,0,59,3,0,0,115,2,0,0,0,0,2,122,28,
- 70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,99,
- 114,101,97,116,101,95,109,111,100,117,108,101,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,64,0,0,0,124,0,106,0,106,1,
- 125,1,116,2,160,3,124,1,161,1,115,36,116,4,100,1,
- 160,5,124,1,161,1,124,1,100,2,141,2,130,1,116,6,
- 116,2,106,7,124,1,131,2,125,2,116,8,124,2,124,0,
- 106,9,131,2,1,0,100,0,83,0,114,88,0,0,0,41,
- 10,114,106,0,0,0,114,17,0,0,0,114,58,0,0,0,
- 114,89,0,0,0,114,80,0,0,0,114,46,0,0,0,114,
- 68,0,0,0,218,17,103,101,116,95,102,114,111,122,101,110,
- 95,111,98,106,101,99,116,218,4,101,120,101,99,114,7,0,
- 0,0,41,3,114,97,0,0,0,114,17,0,0,0,218,4,
- 99,111,100,101,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,114,151,0,0,0,63,3,0,0,115,14,0,0,
- 0,0,2,8,1,10,1,10,1,2,255,6,2,12,1,122,
- 26,70,114,111,122,101,110,73,109,112,111,114,116,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,3,0,0,0,
- 67,0,0,0,115,10,0,0,0,116,0,124,0,124,1,131,
- 2,83,0,41,1,122,95,76,111,97,100,32,97,32,102,114,
- 111,122,101,110,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,41,1,114,98,0,0,0,114,170,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,156,0,0,0,72,3,0,0,115,2,0,0,0,0,
- 7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,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,3,0,
- 0,0,67,0,0,0,115,10,0,0,0,116,0,160,1,124,
- 1,161,1,83,0,41,1,122,45,82,101,116,117,114,110,32,
- 116,104,101,32,99,111,100,101,32,111,98,106,101,99,116,32,
- 102,111,114,32,116,104,101,32,102,114,111,122,101,110,32,109,
- 111,100,117,108,101,46,41,2,114,58,0,0,0,114,177,0,
- 0,0,114,170,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,171,0,0,0,81,3,0,0,115,
- 2,0,0,0,0,4,122,23,70,114,111,122,101,110,73,109,
- 112,111,114,116,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,115,4,0,0,0,100,1,83,
- 0,41,2,122,54,82,101,116,117,114,110,32,78,111,110,101,
- 32,97,115,32,102,114,111,122,101,110,32,109,111,100,117,108,
- 101,115,32,100,111,32,110,111,116,32,104,97,118,101,32,115,
- 111,117,114,99,101,32,99,111,100,101,46,78,114,10,0,0,
- 0,114,170,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,172,0,0,0,87,3,0,0,115,2,
- 0,0,0,0,4,122,25,70,114,111,122,101,110,73,109,112,
- 111,114,116,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,3,0,0,0,67,0,0,0,115,10,0,0,0,116,0,
- 160,1,124,1,161,1,83,0,41,1,122,46,82,101,116,117,
- 114,110,32,84,114,117,101,32,105,102,32,116,104,101,32,102,
- 114,111,122,101,110,32,109,111,100,117,108,101,32,105,115,32,
- 97,32,112,97,99,107,97,103,101,46,41,2,114,58,0,0,
- 0,90,17,105,115,95,102,114,111,122,101,110,95,112,97,99,
- 107,97,103,101,114,170,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,116,0,0,0,93,3,0,
- 0,115,2,0,0,0,0,4,122,25,70,114,111,122,101,110,
- 73,109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,
- 97,103,101,41,2,78,78,41,1,78,41,17,114,1,0,0,
- 0,114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,
- 114,139,0,0,0,114,173,0,0,0,114,100,0,0,0,114,
- 174,0,0,0,114,168,0,0,0,114,169,0,0,0,114,150,
- 0,0,0,114,151,0,0,0,114,156,0,0,0,114,91,0,
- 0,0,114,171,0,0,0,114,172,0,0,0,114,116,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,175,0,0,0,23,3,0,0,115,46,
- 0,0,0,8,2,4,7,4,2,2,1,10,8,2,1,12,
- 6,2,1,12,8,2,1,10,3,2,1,10,8,2,1,10,
- 8,2,1,2,1,12,4,2,1,2,1,12,4,2,1,2,
- 1,114,175,0,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,18,95,73,109,112,111,114,116,76,
- 111,99,107,67,111,110,116,101,120,116,122,36,67,111,110,116,
- 101,120,116,32,109,97,110,97,103,101,114,32,102,111,114,32,
- 116,104,101,32,105,109,112,111,114,116,32,108,111,99,107,46,
- 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,12,0,0,0,116,0,
- 160,1,161,0,1,0,100,1,83,0,41,2,122,24,65,99,
- 113,117,105,114,101,32,116,104,101,32,105,109,112,111,114,116,
- 32,108,111,99,107,46,78,41,2,114,58,0,0,0,114,59,
- 0,0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,55,0,0,0,106,3,0,0,
- 115,2,0,0,0,0,2,122,28,95,73,109,112,111,114,116,
- 76,111,99,107,67,111,110,116,101,120,116,46,95,95,101,110,
- 116,101,114,95,95,99,4,0,0,0,0,0,0,0,0,0,
- 0,0,4,0,0,0,2,0,0,0,67,0,0,0,115,12,
- 0,0,0,116,0,160,1,161,0,1,0,100,1,83,0,41,
- 2,122,60,82,101,108,101,97,115,101,32,116,104,101,32,105,
- 109,112,111,114,116,32,108,111,99,107,32,114,101,103,97,114,
- 100,108,101,115,115,32,111,102,32,97,110,121,32,114,97,105,
- 115,101,100,32,101,120,99,101,112,116,105,111,110,115,46,78,
- 41,2,114,58,0,0,0,114,61,0,0,0,41,4,114,30,
- 0,0,0,218,8,101,120,99,95,116,121,112,101,218,9,101,
- 120,99,95,118,97,108,117,101,218,13,101,120,99,95,116,114,
- 97,99,101,98,97,99,107,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,57,0,0,0,110,3,0,0,115,
- 2,0,0,0,0,2,122,27,95,73,109,112,111,114,116,76,
- 111,99,107,67,111,110,116,101,120,116,46,95,95,101,120,105,
- 116,95,95,78,41,6,114,1,0,0,0,114,0,0,0,0,
- 114,2,0,0,0,114,3,0,0,0,114,55,0,0,0,114,
- 57,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,180,0,0,0,102,3,0,
- 0,115,6,0,0,0,8,2,4,2,8,4,114,180,0,0,
- 0,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,64,0,0,0,124,
- 1,160,0,100,1,124,2,100,2,24,0,161,2,125,3,116,
- 1,124,3,131,1,124,2,107,0,114,36,116,2,100,3,131,
- 1,130,1,124,3,100,4,25,0,125,4,124,0,114,60,100,
- 5,160,3,124,4,124,0,161,2,83,0,124,4,83,0,41,
- 6,122,50,82,101,115,111,108,118,101,32,97,32,114,101,108,
- 97,116,105,118,101,32,109,111,100,117,108,101,32,110,97,109,
- 101,32,116,111,32,97,110,32,97,98,115,111,108,117,116,101,
- 32,111,110,101,46,114,129,0,0,0,114,39,0,0,0,122,
- 50,97,116,116,101,109,112,116,101,100,32,114,101,108,97,116,
- 105,118,101,32,105,109,112,111,114,116,32,98,101,121,111,110,
- 100,32,116,111,112,45,108,101,118,101,108,32,112,97,99,107,
- 97,103,101,114,22,0,0,0,250,5,123,125,46,123,125,41,
- 4,218,6,114,115,112,108,105,116,218,3,108,101,110,114,80,
- 0,0,0,114,46,0,0,0,41,5,114,17,0,0,0,218,
- 7,112,97,99,107,97,103,101,218,5,108,101,118,101,108,90,
- 4,98,105,116,115,90,4,98,97,115,101,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,13,95,114,101,115,
- 111,108,118,101,95,110,97,109,101,115,3,0,0,115,10,0,
- 0,0,0,2,16,1,12,1,8,1,8,1,114,189,0,0,
- 0,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,34,0,0,0,124,
- 0,160,0,124,1,124,2,161,2,125,3,124,3,100,0,117,
- 0,114,24,100,0,83,0,116,1,124,1,124,3,131,2,83,
- 0,114,13,0,0,0,41,2,114,169,0,0,0,114,92,0,
- 0,0,41,4,218,6,102,105,110,100,101,114,114,17,0,0,
- 0,114,166,0,0,0,114,110,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,17,95,102,105,110,
- 100,95,115,112,101,99,95,108,101,103,97,99,121,124,3,0,
- 0,115,8,0,0,0,0,3,12,1,8,1,4,1,114,191,
- 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 10,0,0,0,10,0,0,0,67,0,0,0,115,32,1,0,
- 0,116,0,106,1,125,3,124,3,100,1,117,0,114,22,116,
- 2,100,2,131,1,130,1,124,3,115,38,116,3,160,4,100,
- 3,116,5,161,2,1,0,124,0,116,0,106,6,118,0,125,
- 4,124,3,68,0,93,230,125,5,116,7,131,0,143,94,1,
- 0,122,10,124,5,106,8,125,6,87,0,110,54,4,0,116,
- 9,121,128,1,0,1,0,1,0,116,10,124,5,124,0,124,
- 1,131,3,125,7,124,7,100,1,117,0,114,124,89,0,87,
- 0,100,1,4,0,4,0,131,3,1,0,113,52,89,0,110,
- 14,48,0,124,6,124,0,124,1,124,2,131,3,125,7,87,
- 0,100,1,4,0,4,0,131,3,1,0,110,16,49,0,115,
- 162,48,0,1,0,1,0,1,0,89,0,1,0,124,7,100,
- 1,117,1,114,52,124,4,144,1,115,18,124,0,116,0,106,
- 6,118,0,144,1,114,18,116,0,106,6,124,0,25,0,125,
- 8,122,10,124,8,106,11,125,9,87,0,110,26,4,0,116,
- 9,121,244,1,0,1,0,1,0,124,7,6,0,89,0,2,
- 0,1,0,83,0,48,0,124,9,100,1,117,0,144,1,114,
- 8,124,7,2,0,1,0,83,0,124,9,2,0,1,0,83,
- 0,113,52,124,7,2,0,1,0,83,0,113,52,100,1,83,
- 0,41,4,122,21,70,105,110,100,32,97,32,109,111,100,117,
- 108,101,39,115,32,115,112,101,99,46,78,122,53,115,121,115,
- 46,109,101,116,97,95,112,97,116,104,32,105,115,32,78,111,
- 110,101,44,32,80,121,116,104,111,110,32,105,115,32,108,105,
- 107,101,108,121,32,115,104,117,116,116,105,110,103,32,100,111,
- 119,110,122,22,115,121,115,46,109,101,116,97,95,112,97,116,
- 104,32,105,115,32,101,109,112,116,121,41,12,114,15,0,0,
- 0,218,9,109,101,116,97,95,112,97,116,104,114,80,0,0,
- 0,218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,
- 114,110,218,13,73,109,112,111,114,116,87,97,114,110,105,110,
- 103,114,93,0,0,0,114,180,0,0,0,114,168,0,0,0,
- 114,107,0,0,0,114,191,0,0,0,114,106,0,0,0,41,
- 10,114,17,0,0,0,114,166,0,0,0,114,167,0,0,0,
- 114,192,0,0,0,90,9,105,115,95,114,101,108,111,97,100,
- 114,190,0,0,0,114,168,0,0,0,114,96,0,0,0,114,
- 97,0,0,0,114,106,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,10,95,102,105,110,100,95,
- 115,112,101,99,133,3,0,0,115,54,0,0,0,0,2,6,
- 1,8,2,8,3,4,1,12,5,10,1,8,1,8,1,2,
- 1,10,1,12,1,12,1,8,1,22,2,42,1,8,2,18,
- 1,10,1,2,1,10,1,12,4,14,2,10,1,8,2,10,
- 2,10,2,114,196,0,0,0,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,5,0,0,0,67,0,0,
- 0,115,108,0,0,0,116,0,124,0,116,1,131,2,115,28,
- 116,2,100,1,160,3,116,4,124,0,131,1,161,1,131,1,
- 130,1,124,2,100,2,107,0,114,44,116,5,100,3,131,1,
- 130,1,124,2,100,2,107,4,114,84,116,0,124,1,116,1,
- 131,2,115,72,116,2,100,4,131,1,130,1,110,12,124,1,
- 115,84,116,6,100,5,131,1,130,1,124,0,115,104,124,2,
- 100,2,107,2,114,104,116,5,100,6,131,1,130,1,100,7,
- 83,0,41,8,122,28,86,101,114,105,102,121,32,97,114,103,
- 117,109,101,110,116,115,32,97,114,101,32,34,115,97,110,101,
- 34,46,122,31,109,111,100,117,108,101,32,110,97,109,101,32,
- 109,117,115,116,32,98,101,32,115,116,114,44,32,110,111,116,
- 32,123,125,114,22,0,0,0,122,18,108,101,118,101,108,32,
- 109,117,115,116,32,98,101,32,62,61,32,48,122,31,95,95,
- 112,97,99,107,97,103,101,95,95,32,110,111,116,32,115,101,
- 116,32,116,111,32,97,32,115,116,114,105,110,103,122,54,97,
- 116,116,101,109,112,116,101,100,32,114,101,108,97,116,105,118,
- 101,32,105,109,112,111,114,116,32,119,105,116,104,32,110,111,
- 32,107,110,111,119,110,32,112,97,114,101,110,116,32,112,97,
- 99,107,97,103,101,122,17,69,109,112,116,121,32,109,111,100,
- 117,108,101,32,110,97,109,101,78,41,7,218,10,105,115,105,
- 110,115,116,97,110,99,101,218,3,115,116,114,218,9,84,121,
- 112,101,69,114,114,111,114,114,46,0,0,0,114,14,0,0,
- 0,218,10,86,97,108,117,101,69,114,114,111,114,114,80,0,
- 0,0,169,3,114,17,0,0,0,114,187,0,0,0,114,188,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,13,95,115,97,110,105,116,121,95,99,104,101,99,
- 107,180,3,0,0,115,22,0,0,0,0,2,10,1,18,1,
- 8,1,8,1,8,1,10,1,10,1,4,1,8,2,12,1,
- 114,202,0,0,0,122,16,78,111,32,109,111,100,117,108,101,
- 32,110,97,109,101,100,32,122,4,123,33,114,125,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,9,0,0,0,8,0,
- 0,0,67,0,0,0,115,22,1,0,0,100,0,125,2,124,
- 0,160,0,100,1,161,1,100,2,25,0,125,3,124,3,114,
- 132,124,3,116,1,106,2,118,1,114,42,116,3,124,1,124,
- 3,131,2,1,0,124,0,116,1,106,2,118,0,114,62,116,
- 1,106,2,124,0,25,0,83,0,116,1,106,2,124,3,25,
- 0,125,4,122,10,124,4,106,4,125,2,87,0,110,48,4,
- 0,116,5,121,130,1,0,1,0,1,0,116,6,100,3,23,
- 0,160,7,124,0,124,3,161,2,125,5,116,8,124,5,124,
- 0,100,4,141,2,100,0,130,2,89,0,110,2,48,0,116,
- 9,124,0,124,2,131,2,125,6,124,6,100,0,117,0,114,
- 170,116,8,116,6,160,7,124,0,161,1,124,0,100,4,141,
- 2,130,1,110,8,116,10,124,6,131,1,125,7,124,3,144,
- 1,114,18,116,1,106,2,124,3,25,0,125,4,124,0,160,
- 0,100,1,161,1,100,5,25,0,125,8,122,16,116,11,124,
- 4,124,8,124,7,131,3,1,0,87,0,110,48,4,0,116,
- 5,144,1,121,16,1,0,1,0,1,0,100,6,124,3,155,
- 2,100,7,124,8,155,2,157,4,125,5,116,12,160,13,124,
- 5,116,14,161,2,1,0,89,0,110,2,48,0,124,7,83,
- 0,41,8,78,114,129,0,0,0,114,22,0,0,0,122,23,
- 59,32,123,33,114,125,32,105,115,32,110,111,116,32,97,32,
- 112,97,99,107,97,103,101,114,16,0,0,0,233,2,0,0,
- 0,122,27,67,97,110,110,111,116,32,115,101,116,32,97,110,
- 32,97,116,116,114,105,98,117,116,101,32,111,110,32,122,18,
- 32,102,111,114,32,99,104,105,108,100,32,109,111,100,117,108,
- 101,32,41,15,114,130,0,0,0,114,15,0,0,0,114,93,
- 0,0,0,114,68,0,0,0,114,142,0,0,0,114,107,0,
- 0,0,218,8,95,69,82,82,95,77,83,71,114,46,0,0,
- 0,218,19,77,111,100,117,108,101,78,111,116,70,111,117,110,
- 100,69,114,114,111,114,114,196,0,0,0,114,160,0,0,0,
- 114,5,0,0,0,114,193,0,0,0,114,194,0,0,0,114,
- 195,0,0,0,41,9,114,17,0,0,0,218,7,105,109,112,
- 111,114,116,95,114,166,0,0,0,114,131,0,0,0,90,13,
- 112,97,114,101,110,116,95,109,111,100,117,108,101,114,158,0,
- 0,0,114,96,0,0,0,114,97,0,0,0,90,5,99,104,
- 105,108,100,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,23,95,102,105,110,100,95,97,110,100,95,108,111,
- 97,100,95,117,110,108,111,99,107,101,100,199,3,0,0,115,
- 52,0,0,0,0,1,4,1,14,1,4,1,10,1,10,2,
- 10,1,10,1,10,1,2,1,10,1,12,1,16,1,20,1,
- 10,1,8,1,20,2,8,1,6,2,10,1,14,1,2,1,
- 16,1,14,1,16,1,18,1,114,207,0,0,0,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,
- 0,0,67,0,0,0,115,128,0,0,0,116,0,124,0,131,
- 1,143,62,1,0,116,1,106,2,160,3,124,0,116,4,161,
- 2,125,2,124,2,116,4,117,0,114,56,116,5,124,0,124,
- 1,131,2,87,0,2,0,100,1,4,0,4,0,131,3,1,
- 0,83,0,87,0,100,1,4,0,4,0,131,3,1,0,110,
- 16,49,0,115,76,48,0,1,0,1,0,1,0,89,0,1,
- 0,124,2,100,1,117,0,114,116,100,2,160,6,124,0,161,
- 1,125,3,116,7,124,3,124,0,100,3,141,2,130,1,116,
- 8,124,0,131,1,1,0,124,2,83,0,41,4,122,25,70,
- 105,110,100,32,97,110,100,32,108,111,97,100,32,116,104,101,
- 32,109,111,100,117,108,101,46,78,122,40,105,109,112,111,114,
- 116,32,111,102,32,123,125,32,104,97,108,116,101,100,59,32,
- 78,111,110,101,32,105,110,32,115,121,115,46,109,111,100,117,
- 108,101,115,114,16,0,0,0,41,9,114,51,0,0,0,114,
- 15,0,0,0,114,93,0,0,0,114,35,0,0,0,218,14,
- 95,78,69,69,68,83,95,76,79,65,68,73,78,71,114,207,
- 0,0,0,114,46,0,0,0,114,205,0,0,0,114,66,0,
- 0,0,41,4,114,17,0,0,0,114,206,0,0,0,114,97,
- 0,0,0,114,76,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,14,95,102,105,110,100,95,97,
- 110,100,95,108,111,97,100,234,3,0,0,115,22,0,0,0,
- 0,2,10,1,14,1,8,1,54,2,8,1,4,1,2,255,
- 4,2,12,2,8,1,114,209,0,0,0,114,22,0,0,0,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,
- 124,0,124,1,124,2,131,3,1,0,124,2,100,1,107,4,
- 114,32,116,1,124,0,124,1,124,2,131,3,125,0,116,2,
- 124,0,116,3,131,2,83,0,41,2,97,50,1,0,0,73,
- 109,112,111,114,116,32,97,110,100,32,114,101,116,117,114,110,
- 32,116,104,101,32,109,111,100,117,108,101,32,98,97,115,101,
- 100,32,111,110,32,105,116,115,32,110,97,109,101,44,32,116,
- 104,101,32,112,97,99,107,97,103,101,32,116,104,101,32,99,
- 97,108,108,32,105,115,10,32,32,32,32,98,101,105,110,103,
- 32,109,97,100,101,32,102,114,111,109,44,32,97,110,100,32,
- 116,104,101,32,108,101,118,101,108,32,97,100,106,117,115,116,
- 109,101,110,116,46,10,10,32,32,32,32,84,104,105,115,32,
- 102,117,110,99,116,105,111,110,32,114,101,112,114,101,115,101,
- 110,116,115,32,116,104,101,32,103,114,101,97,116,101,115,116,
- 32,99,111,109,109,111,110,32,100,101,110,111,109,105,110,97,
- 116,111,114,32,111,102,32,102,117,110,99,116,105,111,110,97,
- 108,105,116,121,10,32,32,32,32,98,101,116,119,101,101,110,
- 32,105,109,112,111,114,116,95,109,111,100,117,108,101,32,97,
- 110,100,32,95,95,105,109,112,111,114,116,95,95,46,32,84,
- 104,105,115,32,105,110,99,108,117,100,101,115,32,115,101,116,
- 116,105,110,103,32,95,95,112,97,99,107,97,103,101,95,95,
- 32,105,102,10,32,32,32,32,116,104,101,32,108,111,97,100,
- 101,114,32,100,105,100,32,110,111,116,46,10,10,32,32,32,
- 32,114,22,0,0,0,41,4,114,202,0,0,0,114,189,0,
- 0,0,114,209,0,0,0,218,11,95,103,99,100,95,105,109,
- 112,111,114,116,114,201,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,210,0,0,0,250,3,0,
- 0,115,8,0,0,0,0,9,12,1,8,1,12,1,114,210,
- 0,0,0,169,1,218,9,114,101,99,117,114,115,105,118,101,
- 99,3,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
- 0,11,0,0,0,67,0,0,0,115,232,0,0,0,124,1,
- 68,0,93,222,125,4,116,0,124,4,116,1,131,2,115,66,
- 124,3,114,34,124,0,106,2,100,1,23,0,125,5,110,4,
- 100,2,125,5,116,3,100,3,124,5,155,0,100,4,116,4,
- 124,4,131,1,106,2,155,0,157,4,131,1,130,1,113,4,
- 124,4,100,5,107,2,114,108,124,3,115,226,116,5,124,0,
- 100,6,131,2,114,226,116,6,124,0,124,0,106,7,124,2,
- 100,7,100,8,141,4,1,0,113,4,116,5,124,0,124,4,
- 131,2,115,4,100,9,160,8,124,0,106,2,124,4,161,2,
- 125,6,122,14,116,9,124,2,124,6,131,2,1,0,87,0,
- 113,4,4,0,116,10,121,224,1,0,125,7,1,0,122,54,
- 124,7,106,11,124,6,107,2,114,202,116,12,106,13,160,14,
- 124,6,116,15,161,2,100,10,117,1,114,202,87,0,89,0,
- 100,10,125,7,126,7,113,4,130,0,87,0,89,0,100,10,
- 125,7,126,7,113,4,100,10,125,7,126,7,48,0,48,0,
- 113,4,124,0,83,0,41,11,122,238,70,105,103,117,114,101,
- 32,111,117,116,32,119,104,97,116,32,95,95,105,109,112,111,
- 114,116,95,95,32,115,104,111,117,108,100,32,114,101,116,117,
- 114,110,46,10,10,32,32,32,32,84,104,101,32,105,109,112,
- 111,114,116,95,32,112,97,114,97,109,101,116,101,114,32,105,
- 115,32,97,32,99,97,108,108,97,98,108,101,32,119,104,105,
- 99,104,32,116,97,107,101,115,32,116,104,101,32,110,97,109,
- 101,32,111,102,32,109,111,100,117,108,101,32,116,111,10,32,
- 32,32,32,105,109,112,111,114,116,46,32,73,116,32,105,115,
- 32,114,101,113,117,105,114,101,100,32,116,111,32,100,101,99,
- 111,117,112,108,101,32,116,104,101,32,102,117,110,99,116,105,
- 111,110,32,102,114,111,109,32,97,115,115,117,109,105,110,103,
- 32,105,109,112,111,114,116,108,105,98,39,115,10,32,32,32,
- 32,105,109,112,111,114,116,32,105,109,112,108,101,109,101,110,
- 116,97,116,105,111,110,32,105,115,32,100,101,115,105,114,101,
- 100,46,10,10,32,32,32,32,122,8,46,95,95,97,108,108,
- 95,95,122,13,96,96,102,114,111,109,32,108,105,115,116,39,
- 39,122,8,73,116,101,109,32,105,110,32,122,18,32,109,117,
- 115,116,32,98,101,32,115,116,114,44,32,110,111,116,32,250,
- 1,42,218,7,95,95,97,108,108,95,95,84,114,211,0,0,
- 0,114,184,0,0,0,78,41,16,114,197,0,0,0,114,198,
- 0,0,0,114,1,0,0,0,114,199,0,0,0,114,14,0,
- 0,0,114,4,0,0,0,218,16,95,104,97,110,100,108,101,
- 95,102,114,111,109,108,105,115,116,114,214,0,0,0,114,46,
- 0,0,0,114,68,0,0,0,114,205,0,0,0,114,17,0,
- 0,0,114,15,0,0,0,114,93,0,0,0,114,35,0,0,
- 0,114,208,0,0,0,41,8,114,97,0,0,0,218,8,102,
- 114,111,109,108,105,115,116,114,206,0,0,0,114,212,0,0,
- 0,218,1,120,90,5,119,104,101,114,101,90,9,102,114,111,
- 109,95,110,97,109,101,90,3,101,120,99,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,215,0,0,0,9,
- 4,0,0,115,48,0,0,0,0,10,8,1,10,1,4,1,
- 12,2,4,1,10,1,8,255,10,2,8,1,14,1,10,1,
- 2,255,8,2,10,1,14,1,2,1,14,1,14,4,10,1,
- 16,255,2,2,12,1,26,1,114,215,0,0,0,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,
- 0,0,67,0,0,0,115,146,0,0,0,124,0,160,0,100,
- 1,161,1,125,1,124,0,160,0,100,2,161,1,125,2,124,
- 1,100,3,117,1,114,82,124,2,100,3,117,1,114,78,124,
- 1,124,2,106,1,107,3,114,78,116,2,106,3,100,4,124,
- 1,155,2,100,5,124,2,106,1,155,2,100,6,157,5,116,
- 4,100,7,100,8,141,3,1,0,124,1,83,0,124,2,100,
- 3,117,1,114,96,124,2,106,1,83,0,116,2,106,3,100,
- 9,116,4,100,7,100,8,141,3,1,0,124,0,100,10,25,
- 0,125,1,100,11,124,0,118,1,114,142,124,1,160,5,100,
- 12,161,1,100,13,25,0,125,1,124,1,83,0,41,14,122,
- 167,67,97,108,99,117,108,97,116,101,32,119,104,97,116,32,
- 95,95,112,97,99,107,97,103,101,95,95,32,115,104,111,117,
- 108,100,32,98,101,46,10,10,32,32,32,32,95,95,112,97,
- 99,107,97,103,101,95,95,32,105,115,32,110,111,116,32,103,
- 117,97,114,97,110,116,101,101,100,32,116,111,32,98,101,32,
- 100,101,102,105,110,101,100,32,111,114,32,99,111,117,108,100,
- 32,98,101,32,115,101,116,32,116,111,32,78,111,110,101,10,
- 32,32,32,32,116,111,32,114,101,112,114,101,115,101,110,116,
- 32,116,104,97,116,32,105,116,115,32,112,114,111,112,101,114,
- 32,118,97,108,117,101,32,105,115,32,117,110,107,110,111,119,
- 110,46,10,10,32,32,32,32,114,146,0,0,0,114,106,0,
- 0,0,78,122,32,95,95,112,97,99,107,97,103,101,95,95,
- 32,33,61,32,95,95,115,112,101,99,95,95,46,112,97,114,
- 101,110,116,32,40,122,4,32,33,61,32,250,1,41,233,3,
- 0,0,0,41,1,90,10,115,116,97,99,107,108,101,118,101,
- 108,122,89,99,97,110,39,116,32,114,101,115,111,108,118,101,
- 32,112,97,99,107,97,103,101,32,102,114,111,109,32,95,95,
- 115,112,101,99,95,95,32,111,114,32,95,95,112,97,99,107,
- 97,103,101,95,95,44,32,102,97,108,108,105,110,103,32,98,
- 97,99,107,32,111,110,32,95,95,110,97,109,101,95,95,32,
- 97,110,100,32,95,95,112,97,116,104,95,95,114,1,0,0,
- 0,114,142,0,0,0,114,129,0,0,0,114,22,0,0,0,
- 41,6,114,35,0,0,0,114,131,0,0,0,114,193,0,0,
- 0,114,194,0,0,0,114,195,0,0,0,114,130,0,0,0,
- 41,3,218,7,103,108,111,98,97,108,115,114,187,0,0,0,
- 114,96,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,17,95,99,97,108,99,95,95,95,112,97,
- 99,107,97,103,101,95,95,46,4,0,0,115,42,0,0,0,
- 0,7,10,1,10,1,8,1,18,1,6,1,2,255,4,1,
- 4,255,6,2,4,254,6,3,4,1,8,1,6,2,6,2,
- 4,254,6,3,8,1,8,1,14,1,114,221,0,0,0,114,
- 10,0,0,0,99,5,0,0,0,0,0,0,0,0,0,0,
- 0,9,0,0,0,5,0,0,0,67,0,0,0,115,180,0,
- 0,0,124,4,100,1,107,2,114,18,116,0,124,0,131,1,
- 125,5,110,36,124,1,100,2,117,1,114,30,124,1,110,2,
- 105,0,125,6,116,1,124,6,131,1,125,7,116,0,124,0,
- 124,7,124,4,131,3,125,5,124,3,115,150,124,4,100,1,
- 107,2,114,84,116,0,124,0,160,2,100,3,161,1,100,1,
- 25,0,131,1,83,0,124,0,115,92,124,5,83,0,116,3,
- 124,0,131,1,116,3,124,0,160,2,100,3,161,1,100,1,
- 25,0,131,1,24,0,125,8,116,4,106,5,124,5,106,6,
- 100,2,116,3,124,5,106,6,131,1,124,8,24,0,133,2,
- 25,0,25,0,83,0,110,26,116,7,124,5,100,4,131,2,
- 114,172,116,8,124,5,124,3,116,0,131,3,83,0,124,5,
- 83,0,100,2,83,0,41,5,97,215,1,0,0,73,109,112,
- 111,114,116,32,97,32,109,111,100,117,108,101,46,10,10,32,
- 32,32,32,84,104,101,32,39,103,108,111,98,97,108,115,39,
- 32,97,114,103,117,109,101,110,116,32,105,115,32,117,115,101,
- 100,32,116,111,32,105,110,102,101,114,32,119,104,101,114,101,
- 32,116,104,101,32,105,109,112,111,114,116,32,105,115,32,111,
- 99,99,117,114,114,105,110,103,32,102,114,111,109,10,32,32,
- 32,32,116,111,32,104,97,110,100,108,101,32,114,101,108,97,
- 116,105,118,101,32,105,109,112,111,114,116,115,46,32,84,104,
- 101,32,39,108,111,99,97,108,115,39,32,97,114,103,117,109,
- 101,110,116,32,105,115,32,105,103,110,111,114,101,100,46,32,
- 84,104,101,10,32,32,32,32,39,102,114,111,109,108,105,115,
- 116,39,32,97,114,103,117,109,101,110,116,32,115,112,101,99,
- 105,102,105,101,115,32,119,104,97,116,32,115,104,111,117,108,
- 100,32,101,120,105,115,116,32,97,115,32,97,116,116,114,105,
- 98,117,116,101,115,32,111,110,32,116,104,101,32,109,111,100,
- 117,108,101,10,32,32,32,32,98,101,105,110,103,32,105,109,
- 112,111,114,116,101,100,32,40,101,46,103,46,32,96,96,102,
- 114,111,109,32,109,111,100,117,108,101,32,105,109,112,111,114,
- 116,32,60,102,114,111,109,108,105,115,116,62,96,96,41,46,
- 32,32,84,104,101,32,39,108,101,118,101,108,39,10,32,32,
- 32,32,97,114,103,117,109,101,110,116,32,114,101,112,114,101,
- 115,101,110,116,115,32,116,104,101,32,112,97,99,107,97,103,
- 101,32,108,111,99,97,116,105,111,110,32,116,111,32,105,109,
- 112,111,114,116,32,102,114,111,109,32,105,110,32,97,32,114,
- 101,108,97,116,105,118,101,10,32,32,32,32,105,109,112,111,
- 114,116,32,40,101,46,103,46,32,96,96,102,114,111,109,32,
- 46,46,112,107,103,32,105,109,112,111,114,116,32,109,111,100,
- 96,96,32,119,111,117,108,100,32,104,97,118,101,32,97,32,
- 39,108,101,118,101,108,39,32,111,102,32,50,41,46,10,10,
- 32,32,32,32,114,22,0,0,0,78,114,129,0,0,0,114,
- 142,0,0,0,41,9,114,210,0,0,0,114,221,0,0,0,
- 218,9,112,97,114,116,105,116,105,111,110,114,186,0,0,0,
- 114,15,0,0,0,114,93,0,0,0,114,1,0,0,0,114,
- 4,0,0,0,114,215,0,0,0,41,9,114,17,0,0,0,
- 114,220,0,0,0,218,6,108,111,99,97,108,115,114,216,0,
- 0,0,114,188,0,0,0,114,97,0,0,0,90,8,103,108,
- 111,98,97,108,115,95,114,187,0,0,0,90,7,99,117,116,
- 95,111,102,102,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,10,95,95,105,109,112,111,114,116,95,95,73,
- 4,0,0,115,30,0,0,0,0,11,8,1,10,2,16,1,
- 8,1,12,1,4,3,8,1,18,1,4,1,4,4,26,3,
- 32,1,10,1,12,2,114,224,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
- 67,0,0,0,115,38,0,0,0,116,0,160,1,124,0,161,
- 1,125,1,124,1,100,0,117,0,114,30,116,2,100,1,124,
- 0,23,0,131,1,130,1,116,3,124,1,131,1,83,0,41,
- 2,78,122,25,110,111,32,98,117,105,108,116,45,105,110,32,
- 109,111,100,117,108,101,32,110,97,109,101,100,32,41,4,114,
- 161,0,0,0,114,168,0,0,0,114,80,0,0,0,114,160,
- 0,0,0,41,2,114,17,0,0,0,114,96,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,18,
- 95,98,117,105,108,116,105,110,95,102,114,111,109,95,110,97,
- 109,101,110,4,0,0,115,8,0,0,0,0,1,10,1,8,
- 1,12,1,114,225,0,0,0,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,10,0,0,0,5,0,0,0,67,0,0,
- 0,115,166,0,0,0,124,1,97,0,124,0,97,1,116,2,
- 116,1,131,1,125,2,116,1,106,3,160,4,161,0,68,0,
- 93,72,92,2,125,3,125,4,116,5,124,4,124,2,131,2,
- 114,26,124,3,116,1,106,6,118,0,114,60,116,7,125,5,
- 110,18,116,0,160,8,124,3,161,1,114,26,116,9,125,5,
- 110,2,113,26,116,10,124,4,124,5,131,2,125,6,116,11,
- 124,6,124,4,131,2,1,0,113,26,116,1,106,3,116,12,
- 25,0,125,7,100,1,68,0,93,46,125,8,124,8,116,1,
- 106,3,118,1,114,138,116,13,124,8,131,1,125,9,110,10,
- 116,1,106,3,124,8,25,0,125,9,116,14,124,7,124,8,
- 124,9,131,3,1,0,113,114,100,2,83,0,41,3,122,250,
- 83,101,116,117,112,32,105,109,112,111,114,116,108,105,98,32,
- 98,121,32,105,109,112,111,114,116,105,110,103,32,110,101,101,
- 100,101,100,32,98,117,105,108,116,45,105,110,32,109,111,100,
- 117,108,101,115,32,97,110,100,32,105,110,106,101,99,116,105,
- 110,103,32,116,104,101,109,10,32,32,32,32,105,110,116,111,
- 32,116,104,101,32,103,108,111,98,97,108,32,110,97,109,101,
- 115,112,97,99,101,46,10,10,32,32,32,32,65,115,32,115,
- 121,115,32,105,115,32,110,101,101,100,101,100,32,102,111,114,
- 32,115,121,115,46,109,111,100,117,108,101,115,32,97,99,99,
- 101,115,115,32,97,110,100,32,95,105,109,112,32,105,115,32,
- 110,101,101,100,101,100,32,116,111,32,108,111,97,100,32,98,
- 117,105,108,116,45,105,110,10,32,32,32,32,109,111,100,117,
- 108,101,115,44,32,116,104,111,115,101,32,116,119,111,32,109,
- 111,100,117,108,101,115,32,109,117,115,116,32,98,101,32,101,
- 120,112,108,105,99,105,116,108,121,32,112,97,115,115,101,100,
- 32,105,110,46,10,10,32,32,32,32,41,3,114,23,0,0,
- 0,114,193,0,0,0,114,65,0,0,0,78,41,15,114,58,
- 0,0,0,114,15,0,0,0,114,14,0,0,0,114,93,0,
- 0,0,218,5,105,116,101,109,115,114,197,0,0,0,114,79,
- 0,0,0,114,161,0,0,0,114,89,0,0,0,114,175,0,
- 0,0,114,143,0,0,0,114,149,0,0,0,114,1,0,0,
- 0,114,225,0,0,0,114,5,0,0,0,41,10,218,10,115,
- 121,115,95,109,111,100,117,108,101,218,11,95,105,109,112,95,
- 109,111,100,117,108,101,90,11,109,111,100,117,108,101,95,116,
- 121,112,101,114,17,0,0,0,114,97,0,0,0,114,110,0,
- 0,0,114,96,0,0,0,90,11,115,101,108,102,95,109,111,
- 100,117,108,101,90,12,98,117,105,108,116,105,110,95,110,97,
- 109,101,90,14,98,117,105,108,116,105,110,95,109,111,100,117,
- 108,101,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,6,95,115,101,116,117,112,117,4,0,0,115,36,0,
- 0,0,0,9,4,1,4,3,8,1,18,1,10,1,10,1,
- 6,1,10,1,6,2,2,1,10,1,12,3,10,1,8,1,
- 10,1,10,2,10,1,114,229,0,0,0,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,38,0,0,0,116,0,124,0,124,1,131,
- 2,1,0,116,1,106,2,160,3,116,4,161,1,1,0,116,
- 1,106,2,160,3,116,5,161,1,1,0,100,1,83,0,41,
- 2,122,48,73,110,115,116,97,108,108,32,105,109,112,111,114,
- 116,101,114,115,32,102,111,114,32,98,117,105,108,116,105,110,
- 32,97,110,100,32,102,114,111,122,101,110,32,109,111,100,117,
- 108,101,115,78,41,6,114,229,0,0,0,114,15,0,0,0,
- 114,192,0,0,0,114,120,0,0,0,114,161,0,0,0,114,
- 175,0,0,0,41,2,114,227,0,0,0,114,228,0,0,0,
+ 0,0,218,2,99,98,185,0,0,0,115,10,0,0,0,0,
+ 1,8,1,2,4,14,1,8,2,122,28,95,103,101,116,95,
+ 109,111,100,117,108,101,95,108,111,99,107,46,60,108,111,99,
+ 97,108,115,62,46,99,98,41,10,114,58,0,0,0,114,59,
+ 0,0,0,114,60,0,0,0,218,8,75,101,121,69,114,114,
+ 111,114,114,23,0,0,0,114,50,0,0,0,114,20,0,0,
+ 0,218,8,95,119,101,97,107,114,101,102,114,62,0,0,0,
+ 114,61,0,0,0,41,3,114,17,0,0,0,114,24,0,0,
+ 0,114,63,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,54,0,0,0,166,0,0,0,115,28,
+ 0,0,0,0,6,8,1,2,1,2,1,14,1,12,1,10,
+ 2,8,1,8,1,10,2,8,2,12,11,18,2,20,2,114,
+ 54,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,8,0,0,0,67,0,0,0,115,52,0,
+ 0,0,116,0,124,0,131,1,125,1,122,12,124,1,160,1,
+ 161,0,1,0,87,0,110,18,4,0,116,2,121,38,1,0,
+ 1,0,1,0,89,0,110,10,48,0,124,1,160,3,161,0,
+ 1,0,100,1,83,0,41,2,122,189,65,99,113,117,105,114,
+ 101,115,32,116,104,101,110,32,114,101,108,101,97,115,101,115,
+ 32,116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,
+ 32,102,111,114,32,97,32,103,105,118,101,110,32,109,111,100,
+ 117,108,101,32,110,97,109,101,46,10,10,32,32,32,32,84,
+ 104,105,115,32,105,115,32,117,115,101,100,32,116,111,32,101,
+ 110,115,117,114,101,32,97,32,109,111,100,117,108,101,32,105,
+ 115,32,99,111,109,112,108,101,116,101,108,121,32,105,110,105,
+ 116,105,97,108,105,122,101,100,44,32,105,110,32,116,104,101,
+ 10,32,32,32,32,101,118,101,110,116,32,105,116,32,105,115,
+ 32,98,101,105,110,103,32,105,109,112,111,114,116,101,100,32,
+ 98,121,32,97,110,111,116,104,101,114,32,116,104,114,101,97,
+ 100,46,10,32,32,32,32,78,41,4,114,54,0,0,0,114,
+ 40,0,0,0,114,19,0,0,0,114,41,0,0,0,41,2,
+ 114,17,0,0,0,114,24,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,19,95,108,111,99,107,
+ 95,117,110,108,111,99,107,95,109,111,100,117,108,101,203,0,
+ 0,0,115,12,0,0,0,0,6,8,1,2,1,12,1,12,
+ 3,6,2,114,66,0,0,0,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,4,0,0,0,79,0,0,
+ 0,115,14,0,0,0,124,0,124,1,105,0,124,2,164,1,
+ 142,1,83,0,41,1,97,46,1,0,0,114,101,109,111,118,
+ 101,95,105,109,112,111,114,116,108,105,98,95,102,114,97,109,
+ 101,115,32,105,110,32,105,109,112,111,114,116,46,99,32,119,
+ 105,108,108,32,97,108,119,97,121,115,32,114,101,109,111,118,
+ 101,32,115,101,113,117,101,110,99,101,115,10,32,32,32,32,
+ 111,102,32,105,109,112,111,114,116,108,105,98,32,102,114,97,
+ 109,101,115,32,116,104,97,116,32,101,110,100,32,119,105,116,
+ 104,32,97,32,99,97,108,108,32,116,111,32,116,104,105,115,
+ 32,102,117,110,99,116,105,111,110,10,10,32,32,32,32,85,
+ 115,101,32,105,116,32,105,110,115,116,101,97,100,32,111,102,
+ 32,97,32,110,111,114,109,97,108,32,99,97,108,108,32,105,
+ 110,32,112,108,97,99,101,115,32,119,104,101,114,101,32,105,
+ 110,99,108,117,100,105,110,103,32,116,104,101,32,105,109,112,
+ 111,114,116,108,105,98,10,32,32,32,32,102,114,97,109,101,
+ 115,32,105,110,116,114,111,100,117,99,101,115,32,117,110,119,
+ 97,110,116,101,100,32,110,111,105,115,101,32,105,110,116,111,
+ 32,116,104,101,32,116,114,97,99,101,98,97,99,107,32,40,
+ 101,46,103,46,32,119,104,101,110,32,101,120,101,99,117,116,
+ 105,110,103,10,32,32,32,32,109,111,100,117,108,101,32,99,
+ 111,100,101,41,10,32,32,32,32,114,10,0,0,0,41,3,
+ 218,1,102,114,56,0,0,0,90,4,107,119,100,115,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,218,25,95,
+ 99,97,108,108,95,119,105,116,104,95,102,114,97,109,101,115,
+ 95,114,101,109,111,118,101,100,220,0,0,0,115,2,0,0,
+ 0,0,8,114,68,0,0,0,114,39,0,0,0,41,1,218,
+ 9,118,101,114,98,111,115,105,116,121,99,1,0,0,0,0,
+ 0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,71,
+ 0,0,0,115,54,0,0,0,116,0,106,1,106,2,124,1,
+ 107,5,114,50,124,0,160,3,100,1,161,1,115,30,100,2,
+ 124,0,23,0,125,0,116,4,124,0,106,5,124,2,142,0,
+ 116,0,106,6,100,3,141,2,1,0,100,4,83,0,41,5,
+ 122,61,80,114,105,110,116,32,116,104,101,32,109,101,115,115,
+ 97,103,101,32,116,111,32,115,116,100,101,114,114,32,105,102,
+ 32,45,118,47,80,89,84,72,79,78,86,69,82,66,79,83,
+ 69,32,105,115,32,116,117,114,110,101,100,32,111,110,46,41,
+ 2,250,1,35,122,7,105,109,112,111,114,116,32,122,2,35,
+ 32,41,1,90,4,102,105,108,101,78,41,7,114,15,0,0,
+ 0,218,5,102,108,97,103,115,218,7,118,101,114,98,111,115,
+ 101,218,10,115,116,97,114,116,115,119,105,116,104,218,5,112,
+ 114,105,110,116,114,46,0,0,0,218,6,115,116,100,101,114,
+ 114,41,3,218,7,109,101,115,115,97,103,101,114,69,0,0,
+ 0,114,56,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,16,95,118,101,114,98,111,115,101,95,
+ 109,101,115,115,97,103,101,231,0,0,0,115,8,0,0,0,
+ 0,2,12,1,10,1,8,1,114,77,0,0,0,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
+ 0,0,3,0,0,0,115,26,0,0,0,135,0,102,1,100,
+ 1,100,2,132,8,125,1,116,0,124,1,136,0,131,2,1,
+ 0,124,1,83,0,41,3,122,49,68,101,99,111,114,97,116,
+ 111,114,32,116,111,32,118,101,114,105,102,121,32,116,104,101,
+ 32,110,97,109,101,100,32,109,111,100,117,108,101,32,105,115,
+ 32,98,117,105,108,116,45,105,110,46,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,19,
+ 0,0,0,115,38,0,0,0,124,1,116,0,106,1,118,1,
+ 114,28,116,2,100,1,160,3,124,1,161,1,124,1,100,2,
+ 141,2,130,1,136,0,124,0,124,1,131,2,83,0,41,3,
+ 78,250,29,123,33,114,125,32,105,115,32,110,111,116,32,97,
+ 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
+ 114,16,0,0,0,41,4,114,15,0,0,0,218,20,98,117,
+ 105,108,116,105,110,95,109,111,100,117,108,101,95,110,97,109,
+ 101,115,218,11,73,109,112,111,114,116,69,114,114,111,114,114,
+ 46,0,0,0,169,2,114,30,0,0,0,218,8,102,117,108,
+ 108,110,97,109,101,169,1,218,3,102,120,110,114,10,0,0,
+ 0,114,11,0,0,0,218,25,95,114,101,113,117,105,114,101,
+ 115,95,98,117,105,108,116,105,110,95,119,114,97,112,112,101,
+ 114,241,0,0,0,115,10,0,0,0,0,1,10,1,10,1,
+ 2,255,6,2,122,52,95,114,101,113,117,105,114,101,115,95,
+ 98,117,105,108,116,105,110,46,60,108,111,99,97,108,115,62,
+ 46,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,
+ 105,110,95,119,114,97,112,112,101,114,169,1,114,12,0,0,
+ 0,41,2,114,84,0,0,0,114,85,0,0,0,114,10,0,
+ 0,0,114,83,0,0,0,114,11,0,0,0,218,17,95,114,
+ 101,113,117,105,114,101,115,95,98,117,105,108,116,105,110,239,
+ 0,0,0,115,6,0,0,0,0,2,12,5,10,1,114,87,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,3,0,0,0,3,0,0,0,115,26,0,0,
+ 0,135,0,102,1,100,1,100,2,132,8,125,1,116,0,124,
+ 1,136,0,131,2,1,0,124,1,83,0,41,3,122,47,68,
+ 101,99,111,114,97,116,111,114,32,116,111,32,118,101,114,105,
+ 102,121,32,116,104,101,32,110,97,109,101,100,32,109,111,100,
+ 117,108,101,32,105,115,32,102,114,111,122,101,110,46,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
+ 0,0,0,19,0,0,0,115,38,0,0,0,116,0,160,1,
+ 124,1,161,1,115,28,116,2,100,1,160,3,124,1,161,1,
+ 124,1,100,2,141,2,130,1,136,0,124,0,124,1,131,2,
+ 83,0,169,3,78,122,27,123,33,114,125,32,105,115,32,110,
+ 111,116,32,97,32,102,114,111,122,101,110,32,109,111,100,117,
+ 108,101,114,16,0,0,0,41,4,114,58,0,0,0,218,9,
+ 105,115,95,102,114,111,122,101,110,114,80,0,0,0,114,46,
+ 0,0,0,114,81,0,0,0,114,83,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,24,95,114,101,113,117,105,114,
+ 101,115,95,102,114,111,122,101,110,95,119,114,97,112,112,101,
+ 114,252,0,0,0,115,10,0,0,0,0,1,10,1,10,1,
+ 2,255,6,2,122,50,95,114,101,113,117,105,114,101,115,95,
+ 102,114,111,122,101,110,46,60,108,111,99,97,108,115,62,46,
+ 95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,
+ 95,119,114,97,112,112,101,114,114,86,0,0,0,41,2,114,
+ 84,0,0,0,114,90,0,0,0,114,10,0,0,0,114,83,
+ 0,0,0,114,11,0,0,0,218,16,95,114,101,113,117,105,
+ 114,101,115,95,102,114,111,122,101,110,250,0,0,0,115,6,
+ 0,0,0,0,2,12,5,10,1,114,91,0,0,0,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,
+ 0,0,0,67,0,0,0,115,62,0,0,0,116,0,124,1,
+ 124,0,131,2,125,2,124,1,116,1,106,2,118,0,114,50,
+ 116,1,106,2,124,1,25,0,125,3,116,3,124,2,124,3,
+ 131,2,1,0,116,1,106,2,124,1,25,0,83,0,116,4,
+ 124,2,131,1,83,0,100,1,83,0,41,2,122,128,76,111,
+ 97,100,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
+ 32,109,111,100,117,108,101,32,105,110,116,111,32,115,121,115,
+ 46,109,111,100,117,108,101,115,32,97,110,100,32,114,101,116,
+ 117,114,110,32,105,116,46,10,10,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,108,111,97,
+ 100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,32,
+ 105,110,115,116,101,97,100,46,10,10,32,32,32,32,78,41,
+ 5,218,16,115,112,101,99,95,102,114,111,109,95,108,111,97,
+ 100,101,114,114,15,0,0,0,218,7,109,111,100,117,108,101,
+ 115,218,5,95,101,120,101,99,218,5,95,108,111,97,100,41,
+ 4,114,30,0,0,0,114,82,0,0,0,218,4,115,112,101,
+ 99,218,6,109,111,100,117,108,101,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,17,95,108,111,97,100,95,
+ 109,111,100,117,108,101,95,115,104,105,109,6,1,0,0,115,
+ 12,0,0,0,0,6,10,1,10,1,10,1,10,1,10,2,
+ 114,98,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,5,0,0,0,8,0,0,0,67,0,0,0,115,218,
+ 0,0,0,116,0,124,0,100,1,100,0,131,3,125,1,116,
+ 1,124,1,100,2,131,2,114,54,122,12,124,1,160,2,124,
+ 0,161,1,87,0,83,0,4,0,116,3,121,52,1,0,1,
+ 0,1,0,89,0,110,2,48,0,122,10,124,0,106,4,125,
+ 2,87,0,110,18,4,0,116,5,121,82,1,0,1,0,1,
+ 0,89,0,110,18,48,0,124,2,100,0,117,1,114,100,116,
+ 6,124,2,131,1,83,0,122,10,124,0,106,7,125,3,87,
+ 0,110,22,4,0,116,5,121,132,1,0,1,0,1,0,100,
+ 3,125,3,89,0,110,2,48,0,122,10,124,0,106,8,125,
+ 4,87,0,110,56,4,0,116,5,121,200,1,0,1,0,1,
+ 0,124,1,100,0,117,0,114,180,100,4,160,9,124,3,161,
+ 1,6,0,89,0,83,0,100,5,160,9,124,3,124,1,161,
+ 2,6,0,89,0,83,0,89,0,110,14,48,0,100,6,160,
+ 9,124,3,124,4,161,2,83,0,100,0,83,0,41,7,78,
+ 218,10,95,95,108,111,97,100,101,114,95,95,218,11,109,111,
+ 100,117,108,101,95,114,101,112,114,250,1,63,250,13,60,109,
+ 111,100,117,108,101,32,123,33,114,125,62,250,20,60,109,111,
+ 100,117,108,101,32,123,33,114,125,32,40,123,33,114,125,41,
+ 62,250,23,60,109,111,100,117,108,101,32,123,33,114,125,32,
+ 102,114,111,109,32,123,33,114,125,62,41,10,114,6,0,0,
+ 0,114,4,0,0,0,114,100,0,0,0,218,9,69,120,99,
+ 101,112,116,105,111,110,218,8,95,95,115,112,101,99,95,95,
+ 218,14,65,116,116,114,105,98,117,116,101,69,114,114,111,114,
+ 218,22,95,109,111,100,117,108,101,95,114,101,112,114,95,102,
+ 114,111,109,95,115,112,101,99,114,1,0,0,0,218,8,95,
+ 95,102,105,108,101,95,95,114,46,0,0,0,41,5,114,97,
+ 0,0,0,218,6,108,111,97,100,101,114,114,96,0,0,0,
+ 114,17,0,0,0,218,8,102,105,108,101,110,97,109,101,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,12,
+ 95,109,111,100,117,108,101,95,114,101,112,114,22,1,0,0,
+ 115,46,0,0,0,0,2,12,1,10,4,2,1,12,1,12,
+ 1,6,1,2,1,10,1,12,1,6,2,8,1,8,4,2,
+ 1,10,1,12,1,10,1,2,1,10,1,12,1,8,1,14,
+ 2,22,2,114,112,0,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,114,0,0,0,101,0,90,1,100,0,90,2,100,1,
+ 90,3,100,2,100,2,100,2,100,3,156,3,100,4,100,5,
+ 132,2,90,4,100,6,100,7,132,0,90,5,100,8,100,9,
+ 132,0,90,6,101,7,100,10,100,11,132,0,131,1,90,8,
+ 101,8,106,9,100,12,100,11,132,0,131,1,90,8,101,7,
+ 100,13,100,14,132,0,131,1,90,10,101,7,100,15,100,16,
+ 132,0,131,1,90,11,101,11,106,9,100,17,100,16,132,0,
+ 131,1,90,11,100,2,83,0,41,18,218,10,77,111,100,117,
+ 108,101,83,112,101,99,97,208,5,0,0,84,104,101,32,115,
+ 112,101,99,105,102,105,99,97,116,105,111,110,32,102,111,114,
+ 32,97,32,109,111,100,117,108,101,44,32,117,115,101,100,32,
+ 102,111,114,32,108,111,97,100,105,110,103,46,10,10,32,32,
+ 32,32,65,32,109,111,100,117,108,101,39,115,32,115,112,101,
+ 99,32,105,115,32,116,104,101,32,115,111,117,114,99,101,32,
+ 102,111,114,32,105,110,102,111,114,109,97,116,105,111,110,32,
+ 97,98,111,117,116,32,116,104,101,32,109,111,100,117,108,101,
+ 46,32,32,70,111,114,10,32,32,32,32,100,97,116,97,32,
+ 97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,
+ 116,104,101,32,109,111,100,117,108,101,44,32,105,110,99,108,
+ 117,100,105,110,103,32,115,111,117,114,99,101,44,32,117,115,
+ 101,32,116,104,101,32,115,112,101,99,39,115,10,32,32,32,
+ 32,108,111,97,100,101,114,46,10,10,32,32,32,32,96,110,
+ 97,109,101,96,32,105,115,32,116,104,101,32,97,98,115,111,
+ 108,117,116,101,32,110,97,109,101,32,111,102,32,116,104,101,
+ 32,109,111,100,117,108,101,46,32,32,96,108,111,97,100,101,
+ 114,96,32,105,115,32,116,104,101,32,108,111,97,100,101,114,
+ 10,32,32,32,32,116,111,32,117,115,101,32,119,104,101,110,
+ 32,108,111,97,100,105,110,103,32,116,104,101,32,109,111,100,
+ 117,108,101,46,32,32,96,112,97,114,101,110,116,96,32,105,
+ 115,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,
+ 101,10,32,32,32,32,112,97,99,107,97,103,101,32,116,104,
+ 101,32,109,111,100,117,108,101,32,105,115,32,105,110,46,32,
+ 32,84,104,101,32,112,97,114,101,110,116,32,105,115,32,100,
+ 101,114,105,118,101,100,32,102,114,111,109,32,116,104,101,32,
+ 110,97,109,101,46,10,10,32,32,32,32,96,105,115,95,112,
+ 97,99,107,97,103,101,96,32,100,101,116,101,114,109,105,110,
+ 101,115,32,105,102,32,116,104,101,32,109,111,100,117,108,101,
+ 32,105,115,32,99,111,110,115,105,100,101,114,101,100,32,97,
+ 32,112,97,99,107,97,103,101,32,111,114,10,32,32,32,32,
+ 110,111,116,46,32,32,79,110,32,109,111,100,117,108,101,115,
+ 32,116,104,105,115,32,105,115,32,114,101,102,108,101,99,116,
+ 101,100,32,98,121,32,116,104,101,32,96,95,95,112,97,116,
+ 104,95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,
+ 10,32,32,32,32,96,111,114,105,103,105,110,96,32,105,115,
+ 32,116,104,101,32,115,112,101,99,105,102,105,99,32,108,111,
+ 99,97,116,105,111,110,32,117,115,101,100,32,98,121,32,116,
+ 104,101,32,108,111,97,100,101,114,32,102,114,111,109,32,119,
+ 104,105,99,104,32,116,111,10,32,32,32,32,108,111,97,100,
+ 32,116,104,101,32,109,111,100,117,108,101,44,32,105,102,32,
+ 116,104,97,116,32,105,110,102,111,114,109,97,116,105,111,110,
+ 32,105,115,32,97,118,97,105,108,97,98,108,101,46,32,32,
+ 87,104,101,110,32,102,105,108,101,110,97,109,101,32,105,115,
+ 10,32,32,32,32,115,101,116,44,32,111,114,105,103,105,110,
+ 32,119,105,108,108,32,109,97,116,99,104,46,10,10,32,32,
+ 32,32,96,104,97,115,95,108,111,99,97,116,105,111,110,96,
+ 32,105,110,100,105,99,97,116,101,115,32,116,104,97,116,32,
+ 97,32,115,112,101,99,39,115,32,34,111,114,105,103,105,110,
+ 34,32,114,101,102,108,101,99,116,115,32,97,32,108,111,99,
+ 97,116,105,111,110,46,10,32,32,32,32,87,104,101,110,32,
+ 116,104,105,115,32,105,115,32,84,114,117,101,44,32,96,95,
+ 95,102,105,108,101,95,95,96,32,97,116,116,114,105,98,117,
+ 116,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,
+ 32,105,115,32,115,101,116,46,10,10,32,32,32,32,96,99,
+ 97,99,104,101,100,96,32,105,115,32,116,104,101,32,108,111,
+ 99,97,116,105,111,110,32,111,102,32,116,104,101,32,99,97,
+ 99,104,101,100,32,98,121,116,101,99,111,100,101,32,102,105,
+ 108,101,44,32,105,102,32,97,110,121,46,32,32,73,116,10,
+ 32,32,32,32,99,111,114,114,101,115,112,111,110,100,115,32,
+ 116,111,32,116,104,101,32,96,95,95,99,97,99,104,101,100,
+ 95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,
+ 32,32,32,32,96,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,96,
+ 32,105,115,32,116,104,101,32,115,101,113,117,101,110,99,101,
+ 32,111,102,32,112,97,116,104,32,101,110,116,114,105,101,115,
+ 32,116,111,10,32,32,32,32,115,101,97,114,99,104,32,119,
+ 104,101,110,32,105,109,112,111,114,116,105,110,103,32,115,117,
+ 98,109,111,100,117,108,101,115,46,32,32,73,102,32,115,101,
+ 116,44,32,105,115,95,112,97,99,107,97,103,101,32,115,104,
+ 111,117,108,100,32,98,101,10,32,32,32,32,84,114,117,101,
+ 45,45,97,110,100,32,70,97,108,115,101,32,111,116,104,101,
+ 114,119,105,115,101,46,10,10,32,32,32,32,80,97,99,107,
+ 97,103,101,115,32,97,114,101,32,115,105,109,112,108,121,32,
+ 109,111,100,117,108,101,115,32,116,104,97,116,32,40,109,97,
+ 121,41,32,104,97,118,101,32,115,117,98,109,111,100,117,108,
+ 101,115,46,32,32,73,102,32,97,32,115,112,101,99,10,32,
+ 32,32,32,104,97,115,32,97,32,110,111,110,45,78,111,110,
+ 101,32,118,97,108,117,101,32,105,110,32,96,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,96,44,32,116,104,101,32,105,109,112,
+ 111,114,116,10,32,32,32,32,115,121,115,116,101,109,32,119,
+ 105,108,108,32,99,111,110,115,105,100,101,114,32,109,111,100,
+ 117,108,101,115,32,108,111,97,100,101,100,32,102,114,111,109,
+ 32,116,104,101,32,115,112,101,99,32,97,115,32,112,97,99,
+ 107,97,103,101,115,46,10,10,32,32,32,32,79,110,108,121,
+ 32,102,105,110,100,101,114,115,32,40,115,101,101,32,105,109,
+ 112,111,114,116,108,105,98,46,97,98,99,46,77,101,116,97,
+ 80,97,116,104,70,105,110,100,101,114,32,97,110,100,10,32,
+ 32,32,32,105,109,112,111,114,116,108,105,98,46,97,98,99,
+ 46,80,97,116,104,69,110,116,114,121,70,105,110,100,101,114,
+ 41,32,115,104,111,117,108,100,32,109,111,100,105,102,121,32,
+ 77,111,100,117,108,101,83,112,101,99,32,105,110,115,116,97,
+ 110,99,101,115,46,10,10,32,32,32,32,78,41,3,218,6,
+ 111,114,105,103,105,110,218,12,108,111,97,100,101,114,95,115,
+ 116,97,116,101,218,10,105,115,95,112,97,99,107,97,103,101,
+ 99,3,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
+ 0,2,0,0,0,67,0,0,0,115,54,0,0,0,124,1,
+ 124,0,95,0,124,2,124,0,95,1,124,3,124,0,95,2,
+ 124,4,124,0,95,3,124,5,114,32,103,0,110,2,100,0,
+ 124,0,95,4,100,1,124,0,95,5,100,0,124,0,95,6,
+ 100,0,83,0,41,2,78,70,41,7,114,17,0,0,0,114,
+ 110,0,0,0,114,114,0,0,0,114,115,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,218,13,95,115,101,116,
+ 95,102,105,108,101,97,116,116,114,218,7,95,99,97,99,104,
+ 101,100,41,6,114,30,0,0,0,114,17,0,0,0,114,110,
+ 0,0,0,114,114,0,0,0,114,115,0,0,0,114,116,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,31,0,0,0,95,1,0,0,115,14,0,0,0,0,
+ 2,6,1,6,1,6,1,6,1,14,3,6,1,122,19,77,
+ 111,100,117,108,101,83,112,101,99,46,95,95,105,110,105,116,
+ 95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,6,0,0,0,67,0,0,0,115,102,0,0,0,
+ 100,1,160,0,124,0,106,1,161,1,100,2,160,0,124,0,
+ 106,2,161,1,103,2,125,1,124,0,106,3,100,0,117,1,
+ 114,52,124,1,160,4,100,3,160,0,124,0,106,3,161,1,
+ 161,1,1,0,124,0,106,5,100,0,117,1,114,80,124,1,
+ 160,4,100,4,160,0,124,0,106,5,161,1,161,1,1,0,
+ 100,5,160,0,124,0,106,6,106,7,100,6,160,8,124,1,
+ 161,1,161,2,83,0,41,7,78,122,9,110,97,109,101,61,
+ 123,33,114,125,122,11,108,111,97,100,101,114,61,123,33,114,
+ 125,122,11,111,114,105,103,105,110,61,123,33,114,125,122,29,
+ 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,61,123,125,122,6,123,
+ 125,40,123,125,41,122,2,44,32,41,9,114,46,0,0,0,
+ 114,17,0,0,0,114,110,0,0,0,114,114,0,0,0,218,
+ 6,97,112,112,101,110,100,114,117,0,0,0,218,9,95,95,
+ 99,108,97,115,115,95,95,114,1,0,0,0,218,4,106,111,
+ 105,110,41,2,114,30,0,0,0,114,56,0,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,114,49,0,
+ 0,0,107,1,0,0,115,20,0,0,0,0,1,10,1,10,
+ 255,4,2,10,1,18,1,10,1,8,1,4,255,6,2,122,
+ 19,77,111,100,117,108,101,83,112,101,99,46,95,95,114,101,
+ 112,114,95,95,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,106,0,
+ 0,0,124,0,106,0,125,2,122,72,124,0,106,1,124,1,
+ 106,1,107,2,111,76,124,0,106,2,124,1,106,2,107,2,
+ 111,76,124,0,106,3,124,1,106,3,107,2,111,76,124,2,
+ 124,1,106,0,107,2,111,76,124,0,106,4,124,1,106,4,
+ 107,2,111,76,124,0,106,5,124,1,106,5,107,2,87,0,
+ 83,0,4,0,116,6,121,100,1,0,1,0,1,0,116,7,
+ 6,0,89,0,83,0,48,0,100,0,83,0,114,13,0,0,
+ 0,41,8,114,117,0,0,0,114,17,0,0,0,114,110,0,
+ 0,0,114,114,0,0,0,218,6,99,97,99,104,101,100,218,
+ 12,104,97,115,95,108,111,99,97,116,105,111,110,114,107,0,
+ 0,0,218,14,78,111,116,73,109,112,108,101,109,101,110,116,
+ 101,100,41,3,114,30,0,0,0,90,5,111,116,104,101,114,
+ 90,4,115,109,115,108,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,6,95,95,101,113,95,95,117,1,0,
+ 0,115,30,0,0,0,0,1,6,1,2,1,12,1,10,255,
+ 2,2,10,254,2,3,8,253,2,4,10,252,2,5,10,251,
+ 4,6,12,1,122,17,77,111,100,117,108,101,83,112,101,99,
+ 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,
+ 115,58,0,0,0,124,0,106,0,100,0,117,0,114,52,124,
+ 0,106,1,100,0,117,1,114,52,124,0,106,2,114,52,116,
+ 3,100,0,117,0,114,38,116,4,130,1,116,3,160,5,124,
+ 0,106,1,161,1,124,0,95,0,124,0,106,0,83,0,114,
+ 13,0,0,0,41,6,114,119,0,0,0,114,114,0,0,0,
+ 114,118,0,0,0,218,19,95,98,111,111,116,115,116,114,97,
+ 112,95,101,120,116,101,114,110,97,108,218,19,78,111,116,73,
+ 109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,90,
+ 11,95,103,101,116,95,99,97,99,104,101,100,114,48,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 114,123,0,0,0,129,1,0,0,115,12,0,0,0,0,2,
+ 10,1,16,1,8,1,4,1,14,1,122,17,77,111,100,117,
+ 108,101,83,112,101,99,46,99,97,99,104,101,100,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,10,0,0,0,124,1,124,0,95,
+ 0,100,0,83,0,114,13,0,0,0,41,1,114,119,0,0,
+ 0,41,2,114,30,0,0,0,114,123,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,123,0,0,
+ 0,138,1,0,0,115,2,0,0,0,0,2,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,115,36,0,0,0,124,0,106,0,100,1,
+ 117,0,114,26,124,0,106,1,160,2,100,2,161,1,100,3,
+ 25,0,83,0,124,0,106,1,83,0,100,1,83,0,41,4,
+ 122,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,
+ 101,32,109,111,100,117,108,101,39,115,32,112,97,114,101,110,
+ 116,46,78,218,1,46,114,22,0,0,0,41,3,114,117,0,
+ 0,0,114,17,0,0,0,218,10,114,112,97,114,116,105,116,
+ 105,111,110,114,48,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,6,112,97,114,101,110,116,142,
+ 1,0,0,115,6,0,0,0,0,3,10,1,16,2,122,17,
+ 77,111,100,117,108,101,83,112,101,99,46,112,97,114,101,110,
+ 116,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,6,0,0,0,124,
+ 0,106,0,83,0,114,13,0,0,0,41,1,114,118,0,0,
+ 0,114,48,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,124,0,0,0,150,1,0,0,115,2,
+ 0,0,0,0,2,122,23,77,111,100,117,108,101,83,112,101,
+ 99,46,104,97,115,95,108,111,99,97,116,105,111,110,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,14,0,0,0,116,0,124,1,
+ 131,1,124,0,95,1,100,0,83,0,114,13,0,0,0,41,
+ 2,218,4,98,111,111,108,114,118,0,0,0,41,2,114,30,
+ 0,0,0,218,5,118,97,108,117,101,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,124,0,0,0,154,1,
+ 0,0,115,2,0,0,0,0,2,41,12,114,1,0,0,0,
+ 114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,114,
+ 31,0,0,0,114,49,0,0,0,114,126,0,0,0,218,8,
+ 112,114,111,112,101,114,116,121,114,123,0,0,0,218,6,115,
+ 101,116,116,101,114,114,131,0,0,0,114,124,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,113,0,0,0,58,1,0,0,115,32,0,0,
+ 0,8,1,4,36,4,1,2,255,12,12,8,10,8,12,2,
+ 1,10,8,4,1,10,3,2,1,10,7,2,1,10,3,4,
+ 1,114,113,0,0,0,169,2,114,114,0,0,0,114,116,0,
+ 0,0,99,2,0,0,0,0,0,0,0,2,0,0,0,6,
+ 0,0,0,8,0,0,0,67,0,0,0,115,152,0,0,0,
+ 116,0,124,1,100,1,131,2,114,74,116,1,100,2,117,0,
+ 114,22,116,2,130,1,116,1,106,3,125,4,124,3,100,2,
+ 117,0,114,48,124,4,124,0,124,1,100,3,141,2,83,0,
+ 124,3,114,56,103,0,110,2,100,2,125,5,124,4,124,0,
+ 124,1,124,5,100,4,141,3,83,0,124,3,100,2,117,0,
+ 114,136,116,0,124,1,100,5,131,2,114,132,122,14,124,1,
+ 160,4,124,0,161,1,125,3,87,0,113,136,4,0,116,5,
+ 121,128,1,0,1,0,1,0,100,2,125,3,89,0,113,136,
+ 48,0,110,4,100,6,125,3,116,6,124,0,124,1,124,2,
+ 124,3,100,7,141,4,83,0,41,8,122,53,82,101,116,117,
+ 114,110,32,97,32,109,111,100,117,108,101,32,115,112,101,99,
+ 32,98,97,115,101,100,32,111,110,32,118,97,114,105,111,117,
+ 115,32,108,111,97,100,101,114,32,109,101,116,104,111,100,115,
+ 46,90,12,103,101,116,95,102,105,108,101,110,97,109,101,78,
+ 41,1,114,110,0,0,0,41,2,114,110,0,0,0,114,117,
+ 0,0,0,114,116,0,0,0,70,114,136,0,0,0,41,7,
+ 114,4,0,0,0,114,127,0,0,0,114,128,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,114,116,0,0,0,114,80,0,
+ 0,0,114,113,0,0,0,41,6,114,17,0,0,0,114,110,
+ 0,0,0,114,114,0,0,0,114,116,0,0,0,114,137,0,
+ 0,0,90,6,115,101,97,114,99,104,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,92,0,0,0,159,1,
+ 0,0,115,36,0,0,0,0,2,10,1,8,1,4,1,6,
+ 2,8,1,12,1,12,1,6,1,2,255,6,3,8,1,10,
+ 1,2,1,14,1,12,1,12,3,4,2,114,92,0,0,0,
+ 99,3,0,0,0,0,0,0,0,0,0,0,0,8,0,0,
+ 0,8,0,0,0,67,0,0,0,115,42,1,0,0,122,10,
+ 124,0,106,0,125,3,87,0,110,18,4,0,116,1,121,28,
+ 1,0,1,0,1,0,89,0,110,14,48,0,124,3,100,0,
+ 117,1,114,42,124,3,83,0,124,0,106,2,125,4,124,1,
+ 100,0,117,0,114,86,122,10,124,0,106,3,125,1,87,0,
+ 110,18,4,0,116,1,121,84,1,0,1,0,1,0,89,0,
+ 110,2,48,0,122,10,124,0,106,4,125,5,87,0,110,22,
+ 4,0,116,1,121,118,1,0,1,0,1,0,100,0,125,5,
+ 89,0,110,2,48,0,124,2,100,0,117,0,114,176,124,5,
+ 100,0,117,0,114,172,122,10,124,1,106,5,125,2,87,0,
+ 113,176,4,0,116,1,121,168,1,0,1,0,1,0,100,0,
+ 125,2,89,0,113,176,48,0,110,4,124,5,125,2,122,10,
+ 124,0,106,6,125,6,87,0,110,22,4,0,116,1,121,208,
+ 1,0,1,0,1,0,100,0,125,6,89,0,110,2,48,0,
+ 122,14,116,7,124,0,106,8,131,1,125,7,87,0,110,22,
+ 4,0,116,1,121,246,1,0,1,0,1,0,100,0,125,7,
+ 89,0,110,2,48,0,116,9,124,4,124,1,124,2,100,1,
+ 141,3,125,3,124,5,100,0,117,0,144,1,114,20,100,2,
+ 110,2,100,3,124,3,95,10,124,6,124,3,95,11,124,7,
+ 124,3,95,12,124,3,83,0,41,4,78,169,1,114,114,0,
+ 0,0,70,84,41,13,114,106,0,0,0,114,107,0,0,0,
+ 114,1,0,0,0,114,99,0,0,0,114,109,0,0,0,218,
+ 7,95,79,82,73,71,73,78,218,10,95,95,99,97,99,104,
+ 101,100,95,95,218,4,108,105,115,116,218,8,95,95,112,97,
+ 116,104,95,95,114,113,0,0,0,114,118,0,0,0,114,123,
+ 0,0,0,114,117,0,0,0,41,8,114,97,0,0,0,114,
+ 110,0,0,0,114,114,0,0,0,114,96,0,0,0,114,17,
+ 0,0,0,90,8,108,111,99,97,116,105,111,110,114,123,0,
+ 0,0,114,117,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,218,17,95,115,112,101,99,95,102,114,
+ 111,109,95,109,111,100,117,108,101,185,1,0,0,115,72,0,
+ 0,0,0,2,2,1,10,1,12,1,6,2,8,1,4,2,
+ 6,1,8,1,2,1,10,1,12,2,6,1,2,1,10,1,
+ 12,1,10,1,8,1,8,1,2,1,10,1,12,1,12,2,
+ 4,1,2,1,10,1,12,1,10,1,2,1,14,1,12,1,
+ 10,2,14,1,20,1,6,1,6,1,114,143,0,0,0,70,
+ 169,1,218,8,111,118,101,114,114,105,100,101,99,2,0,0,
+ 0,0,0,0,0,1,0,0,0,5,0,0,0,8,0,0,
+ 0,67,0,0,0,115,210,1,0,0,124,2,115,20,116,0,
+ 124,1,100,1,100,0,131,3,100,0,117,0,114,52,122,12,
+ 124,0,106,1,124,1,95,2,87,0,110,18,4,0,116,3,
+ 121,50,1,0,1,0,1,0,89,0,110,2,48,0,124,2,
+ 115,72,116,0,124,1,100,2,100,0,131,3,100,0,117,0,
+ 114,174,124,0,106,4,125,3,124,3,100,0,117,0,114,144,
+ 124,0,106,5,100,0,117,1,114,144,116,6,100,0,117,0,
+ 114,108,116,7,130,1,116,6,106,8,125,4,124,4,160,9,
+ 124,4,161,1,125,3,124,0,106,5,124,3,95,10,124,3,
+ 124,0,95,4,100,0,124,1,95,11,122,10,124,3,124,1,
+ 95,12,87,0,110,18,4,0,116,3,121,172,1,0,1,0,
+ 1,0,89,0,110,2,48,0,124,2,115,194,116,0,124,1,
+ 100,3,100,0,131,3,100,0,117,0,114,226,122,12,124,0,
+ 106,13,124,1,95,14,87,0,110,18,4,0,116,3,121,224,
+ 1,0,1,0,1,0,89,0,110,2,48,0,122,10,124,0,
+ 124,1,95,15,87,0,110,18,4,0,116,3,121,254,1,0,
+ 1,0,1,0,89,0,110,2,48,0,124,2,144,1,115,24,
+ 116,0,124,1,100,4,100,0,131,3,100,0,117,0,144,1,
+ 114,70,124,0,106,5,100,0,117,1,144,1,114,70,122,12,
+ 124,0,106,5,124,1,95,16,87,0,110,20,4,0,116,3,
+ 144,1,121,68,1,0,1,0,1,0,89,0,110,2,48,0,
+ 124,0,106,17,144,1,114,206,124,2,144,1,115,102,116,0,
+ 124,1,100,5,100,0,131,3,100,0,117,0,144,1,114,136,
+ 122,12,124,0,106,18,124,1,95,11,87,0,110,20,4,0,
+ 116,3,144,1,121,134,1,0,1,0,1,0,89,0,110,2,
+ 48,0,124,2,144,1,115,160,116,0,124,1,100,6,100,0,
+ 131,3,100,0,117,0,144,1,114,206,124,0,106,19,100,0,
+ 117,1,144,1,114,206,122,12,124,0,106,19,124,1,95,20,
+ 87,0,110,20,4,0,116,3,144,1,121,204,1,0,1,0,
+ 1,0,89,0,110,2,48,0,124,1,83,0,41,7,78,114,
+ 1,0,0,0,114,99,0,0,0,218,11,95,95,112,97,99,
+ 107,97,103,101,95,95,114,142,0,0,0,114,109,0,0,0,
+ 114,140,0,0,0,41,21,114,6,0,0,0,114,17,0,0,
+ 0,114,1,0,0,0,114,107,0,0,0,114,110,0,0,0,
+ 114,117,0,0,0,114,127,0,0,0,114,128,0,0,0,218,
+ 16,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
+ 114,218,7,95,95,110,101,119,95,95,90,5,95,112,97,116,
+ 104,114,109,0,0,0,114,99,0,0,0,114,131,0,0,0,
+ 114,146,0,0,0,114,106,0,0,0,114,142,0,0,0,114,
+ 124,0,0,0,114,114,0,0,0,114,123,0,0,0,114,140,
+ 0,0,0,41,5,114,96,0,0,0,114,97,0,0,0,114,
+ 145,0,0,0,114,110,0,0,0,114,147,0,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,218,18,95,
+ 105,110,105,116,95,109,111,100,117,108,101,95,97,116,116,114,
+ 115,230,1,0,0,115,96,0,0,0,0,4,20,1,2,1,
+ 12,1,12,1,6,2,20,1,6,1,8,2,10,1,8,1,
+ 4,1,6,2,10,1,8,1,6,11,6,1,2,1,10,1,
+ 12,1,6,2,20,1,2,1,12,1,12,1,6,2,2,1,
+ 10,1,12,1,6,2,24,1,12,1,2,1,12,1,14,1,
+ 6,2,8,1,24,1,2,1,12,1,14,1,6,2,24,1,
+ 12,1,2,1,12,1,14,1,6,1,114,149,0,0,0,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 3,0,0,0,67,0,0,0,115,82,0,0,0,100,1,125,
+ 1,116,0,124,0,106,1,100,2,131,2,114,30,124,0,106,
+ 1,160,2,124,0,161,1,125,1,110,20,116,0,124,0,106,
+ 1,100,3,131,2,114,50,116,3,100,4,131,1,130,1,124,
+ 1,100,1,117,0,114,68,116,4,124,0,106,5,131,1,125,
+ 1,116,6,124,0,124,1,131,2,1,0,124,1,83,0,41,
+ 5,122,43,67,114,101,97,116,101,32,97,32,109,111,100,117,
+ 108,101,32,98,97,115,101,100,32,111,110,32,116,104,101,32,
+ 112,114,111,118,105,100,101,100,32,115,112,101,99,46,78,218,
+ 13,99,114,101,97,116,101,95,109,111,100,117,108,101,218,11,
+ 101,120,101,99,95,109,111,100,117,108,101,122,66,108,111,97,
+ 100,101,114,115,32,116,104,97,116,32,100,101,102,105,110,101,
+ 32,101,120,101,99,95,109,111,100,117,108,101,40,41,32,109,
+ 117,115,116,32,97,108,115,111,32,100,101,102,105,110,101,32,
+ 99,114,101,97,116,101,95,109,111,100,117,108,101,40,41,41,
+ 7,114,4,0,0,0,114,110,0,0,0,114,150,0,0,0,
+ 114,80,0,0,0,114,18,0,0,0,114,17,0,0,0,114,
+ 149,0,0,0,169,2,114,96,0,0,0,114,97,0,0,0,
114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
- 8,95,105,110,115,116,97,108,108,152,4,0,0,115,6,0,
- 0,0,0,2,10,2,12,1,114,230,0,0,0,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,
- 0,0,67,0,0,0,115,32,0,0,0,100,1,100,2,108,
- 0,125,0,124,0,97,1,124,0,160,2,116,3,106,4,116,
- 5,25,0,161,1,1,0,100,2,83,0,41,3,122,57,73,
- 110,115,116,97,108,108,32,105,109,112,111,114,116,101,114,115,
- 32,116,104,97,116,32,114,101,113,117,105,114,101,32,101,120,
- 116,101,114,110,97,108,32,102,105,108,101,115,121,115,116,101,
- 109,32,97,99,99,101,115,115,114,22,0,0,0,78,41,6,
- 218,26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,
- 108,105,98,95,101,120,116,101,114,110,97,108,114,127,0,0,
- 0,114,230,0,0,0,114,15,0,0,0,114,93,0,0,0,
- 114,1,0,0,0,41,1,114,231,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,27,95,105,110,
- 115,116,97,108,108,95,101,120,116,101,114,110,97,108,95,105,
- 109,112,111,114,116,101,114,115,160,4,0,0,115,6,0,0,
- 0,0,3,8,1,4,1,114,232,0,0,0,41,2,78,78,
- 41,1,78,41,2,78,114,22,0,0,0,41,4,78,78,114,
- 10,0,0,0,114,22,0,0,0,41,50,114,3,0,0,0,
- 114,127,0,0,0,114,12,0,0,0,114,18,0,0,0,114,
- 60,0,0,0,114,34,0,0,0,114,44,0,0,0,114,19,
- 0,0,0,114,20,0,0,0,114,50,0,0,0,114,51,0,
- 0,0,114,54,0,0,0,114,66,0,0,0,114,68,0,0,
- 0,114,77,0,0,0,114,87,0,0,0,114,91,0,0,0,
- 114,98,0,0,0,114,112,0,0,0,114,113,0,0,0,114,
- 92,0,0,0,114,143,0,0,0,114,149,0,0,0,114,153,
- 0,0,0,114,108,0,0,0,114,94,0,0,0,114,159,0,
- 0,0,114,160,0,0,0,114,95,0,0,0,114,161,0,0,
- 0,114,175,0,0,0,114,180,0,0,0,114,189,0,0,0,
- 114,191,0,0,0,114,196,0,0,0,114,202,0,0,0,90,
- 15,95,69,82,82,95,77,83,71,95,80,82,69,70,73,88,
- 114,204,0,0,0,114,207,0,0,0,218,6,111,98,106,101,
- 99,116,114,208,0,0,0,114,209,0,0,0,114,210,0,0,
- 0,114,215,0,0,0,114,221,0,0,0,114,224,0,0,0,
- 114,225,0,0,0,114,229,0,0,0,114,230,0,0,0,114,
- 232,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,8,60,109,111,100,117,108,
- 101,62,1,0,0,0,115,94,0,0,0,4,24,4,2,8,
- 8,8,8,4,2,4,3,16,4,14,77,14,21,14,16,8,
- 37,8,17,8,11,14,8,8,11,8,12,8,16,8,36,14,
- 101,16,26,10,45,14,72,8,17,8,17,8,30,8,37,8,
- 42,8,15,14,75,14,79,14,13,8,9,8,9,10,47,8,
- 16,4,1,8,2,8,32,6,3,8,16,10,15,14,37,8,
- 27,10,37,8,7,8,35,8,8,
+ 16,109,111,100,117,108,101,95,102,114,111,109,95,115,112,101,
+ 99,46,2,0,0,115,18,0,0,0,0,3,4,1,12,3,
+ 14,1,12,1,8,2,8,1,10,1,10,1,114,153,0,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,106,0,0,0,124,
+ 0,106,0,100,1,117,0,114,14,100,2,110,4,124,0,106,
+ 0,125,1,124,0,106,1,100,1,117,0,114,66,124,0,106,
+ 2,100,1,117,0,114,50,100,3,160,3,124,1,161,1,83,
+ 0,100,4,160,3,124,1,124,0,106,2,161,2,83,0,110,
+ 36,124,0,106,4,114,86,100,5,160,3,124,1,124,0,106,
+ 1,161,2,83,0,100,6,160,3,124,0,106,0,124,0,106,
+ 1,161,2,83,0,100,1,83,0,41,7,122,38,82,101,116,
+ 117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32,
+ 117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117,
+ 108,101,46,78,114,101,0,0,0,114,102,0,0,0,114,103,
+ 0,0,0,114,104,0,0,0,250,18,60,109,111,100,117,108,
+ 101,32,123,33,114,125,32,40,123,125,41,62,41,5,114,17,
+ 0,0,0,114,114,0,0,0,114,110,0,0,0,114,46,0,
+ 0,0,114,124,0,0,0,41,2,114,96,0,0,0,114,17,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,114,108,0,0,0,63,2,0,0,115,16,0,0,0,
+ 0,3,20,1,10,1,10,1,10,2,16,2,6,1,14,2,
+ 114,108,0,0,0,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,10,0,0,0,67,0,0,0,115,250,
+ 0,0,0,124,0,106,0,125,2,116,1,124,2,131,1,143,
+ 216,1,0,116,2,106,3,160,4,124,2,161,1,124,1,117,
+ 1,114,54,100,1,160,5,124,2,161,1,125,3,116,6,124,
+ 3,124,2,100,2,141,2,130,1,122,132,124,0,106,7,100,
+ 3,117,0,114,106,124,0,106,8,100,3,117,0,114,90,116,
+ 6,100,4,124,0,106,0,100,2,141,2,130,1,116,9,124,
+ 0,124,1,100,5,100,6,141,3,1,0,110,52,116,9,124,
+ 0,124,1,100,5,100,6,141,3,1,0,116,10,124,0,106,
+ 7,100,7,131,2,115,146,124,0,106,7,160,11,124,2,161,
+ 1,1,0,110,12,124,0,106,7,160,12,124,1,161,1,1,
+ 0,87,0,116,2,106,3,160,13,124,0,106,0,161,1,125,
+ 1,124,1,116,2,106,3,124,0,106,0,60,0,110,28,116,
+ 2,106,3,160,13,124,0,106,0,161,1,125,1,124,1,116,
+ 2,106,3,124,0,106,0,60,0,48,0,87,0,100,3,4,
+ 0,4,0,131,3,1,0,110,16,49,0,115,236,48,0,1,
+ 0,1,0,1,0,89,0,1,0,124,1,83,0,41,8,122,
+ 70,69,120,101,99,117,116,101,32,116,104,101,32,115,112,101,
+ 99,39,115,32,115,112,101,99,105,102,105,101,100,32,109,111,
+ 100,117,108,101,32,105,110,32,97,110,32,101,120,105,115,116,
+ 105,110,103,32,109,111,100,117,108,101,39,115,32,110,97,109,
+ 101,115,112,97,99,101,46,122,30,109,111,100,117,108,101,32,
+ 123,33,114,125,32,110,111,116,32,105,110,32,115,121,115,46,
+ 109,111,100,117,108,101,115,114,16,0,0,0,78,250,14,109,
+ 105,115,115,105,110,103,32,108,111,97,100,101,114,84,114,144,
+ 0,0,0,114,151,0,0,0,41,14,114,17,0,0,0,114,
+ 51,0,0,0,114,15,0,0,0,114,93,0,0,0,114,35,
+ 0,0,0,114,46,0,0,0,114,80,0,0,0,114,110,0,
+ 0,0,114,117,0,0,0,114,149,0,0,0,114,4,0,0,
+ 0,218,11,108,111,97,100,95,109,111,100,117,108,101,114,151,
+ 0,0,0,218,3,112,111,112,41,4,114,96,0,0,0,114,
+ 97,0,0,0,114,17,0,0,0,218,3,109,115,103,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,114,94,0,
+ 0,0,80,2,0,0,115,38,0,0,0,0,2,6,1,10,
+ 1,16,1,10,1,12,1,2,1,10,1,10,1,14,2,16,
+ 2,14,1,12,4,14,2,14,4,14,1,14,255,14,1,44,
+ 1,114,94,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,
+ 20,1,0,0,122,18,124,0,106,0,160,1,124,0,106,2,
+ 161,1,1,0,87,0,110,52,1,0,1,0,1,0,124,0,
+ 106,2,116,3,106,4,118,0,114,64,116,3,106,4,160,5,
+ 124,0,106,2,161,1,125,1,124,1,116,3,106,4,124,0,
+ 106,2,60,0,130,0,89,0,110,2,48,0,116,3,106,4,
+ 160,5,124,0,106,2,161,1,125,1,124,1,116,3,106,4,
+ 124,0,106,2,60,0,116,6,124,1,100,1,100,0,131,3,
+ 100,0,117,0,114,146,122,12,124,0,106,0,124,1,95,7,
+ 87,0,110,18,4,0,116,8,121,144,1,0,1,0,1,0,
+ 89,0,110,2,48,0,116,6,124,1,100,2,100,0,131,3,
+ 100,0,117,0,114,222,122,40,124,1,106,9,124,1,95,10,
+ 116,11,124,1,100,3,131,2,115,200,124,0,106,2,160,12,
+ 100,4,161,1,100,5,25,0,124,1,95,10,87,0,110,18,
+ 4,0,116,8,121,220,1,0,1,0,1,0,89,0,110,2,
+ 48,0,116,6,124,1,100,6,100,0,131,3,100,0,117,0,
+ 144,1,114,16,122,10,124,0,124,1,95,13,87,0,110,20,
+ 4,0,116,8,144,1,121,14,1,0,1,0,1,0,89,0,
+ 110,2,48,0,124,1,83,0,41,7,78,114,99,0,0,0,
+ 114,146,0,0,0,114,142,0,0,0,114,129,0,0,0,114,
+ 22,0,0,0,114,106,0,0,0,41,14,114,110,0,0,0,
+ 114,156,0,0,0,114,17,0,0,0,114,15,0,0,0,114,
+ 93,0,0,0,114,157,0,0,0,114,6,0,0,0,114,99,
+ 0,0,0,114,107,0,0,0,114,1,0,0,0,114,146,0,
+ 0,0,114,4,0,0,0,114,130,0,0,0,114,106,0,0,
+ 0,114,152,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,25,95,108,111,97,100,95,98,97,99,
+ 107,119,97,114,100,95,99,111,109,112,97,116,105,98,108,101,
+ 110,2,0,0,115,54,0,0,0,0,4,2,1,18,1,6,
+ 1,12,1,14,1,12,1,8,3,14,1,12,1,16,1,2,
+ 1,12,1,12,1,6,1,16,1,2,4,8,1,10,1,22,
+ 1,12,1,6,1,18,1,2,1,10,1,14,1,6,1,114,
+ 159,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,11,0,0,0,67,0,0,0,115,224,0,
+ 0,0,124,0,106,0,100,0,117,1,114,30,116,1,124,0,
+ 106,0,100,1,131,2,115,30,116,2,124,0,131,1,83,0,
+ 116,3,124,0,131,1,125,1,100,2,124,0,95,4,122,166,
+ 124,1,116,5,106,6,124,0,106,7,60,0,122,52,124,0,
+ 106,0,100,0,117,0,114,96,124,0,106,8,100,0,117,0,
+ 114,108,116,9,100,3,124,0,106,7,100,4,141,2,130,1,
+ 110,12,124,0,106,0,160,10,124,1,161,1,1,0,87,0,
+ 110,48,1,0,1,0,1,0,122,14,116,5,106,6,124,0,
+ 106,7,61,0,87,0,110,18,4,0,116,11,121,150,1,0,
+ 1,0,1,0,89,0,110,2,48,0,130,0,89,0,110,2,
+ 48,0,116,5,106,6,160,12,124,0,106,7,161,1,125,1,
+ 124,1,116,5,106,6,124,0,106,7,60,0,116,13,100,5,
+ 124,0,106,7,124,0,106,0,131,3,1,0,87,0,100,6,
+ 124,0,95,4,110,8,100,6,124,0,95,4,48,0,124,1,
+ 83,0,41,7,78,114,151,0,0,0,84,114,155,0,0,0,
+ 114,16,0,0,0,122,18,105,109,112,111,114,116,32,123,33,
+ 114,125,32,35,32,123,33,114,125,70,41,14,114,110,0,0,
+ 0,114,4,0,0,0,114,159,0,0,0,114,153,0,0,0,
+ 90,13,95,105,110,105,116,105,97,108,105,122,105,110,103,114,
+ 15,0,0,0,114,93,0,0,0,114,17,0,0,0,114,117,
+ 0,0,0,114,80,0,0,0,114,151,0,0,0,114,64,0,
+ 0,0,114,157,0,0,0,114,77,0,0,0,114,152,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 218,14,95,108,111,97,100,95,117,110,108,111,99,107,101,100,
+ 147,2,0,0,115,46,0,0,0,0,2,10,2,12,1,8,
+ 2,8,5,6,1,2,1,12,1,2,1,10,1,10,1,16,
+ 3,16,1,6,1,2,1,14,1,12,1,6,1,8,5,14,
+ 1,12,1,18,2,16,2,114,160,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
+ 0,67,0,0,0,115,54,0,0,0,116,0,124,0,106,1,
+ 131,1,143,24,1,0,116,2,124,0,131,1,87,0,2,0,
+ 100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,40,
+ 48,0,1,0,1,0,1,0,89,0,1,0,100,1,83,0,
+ 41,2,122,191,82,101,116,117,114,110,32,97,32,110,101,119,
+ 32,109,111,100,117,108,101,32,111,98,106,101,99,116,44,32,
+ 108,111,97,100,101,100,32,98,121,32,116,104,101,32,115,112,
+ 101,99,39,115,32,108,111,97,100,101,114,46,10,10,32,32,
+ 32,32,84,104,101,32,109,111,100,117,108,101,32,105,115,32,
+ 110,111,116,32,97,100,100,101,100,32,116,111,32,105,116,115,
+ 32,112,97,114,101,110,116,46,10,10,32,32,32,32,73,102,
+ 32,97,32,109,111,100,117,108,101,32,105,115,32,97,108,114,
+ 101,97,100,121,32,105,110,32,115,121,115,46,109,111,100,117,
+ 108,101,115,44,32,116,104,97,116,32,101,120,105,115,116,105,
+ 110,103,32,109,111,100,117,108,101,32,103,101,116,115,10,32,
+ 32,32,32,99,108,111,98,98,101,114,101,100,46,10,10,32,
+ 32,32,32,78,41,3,114,51,0,0,0,114,17,0,0,0,
+ 114,160,0,0,0,41,1,114,96,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,95,0,0,0,
+ 189,2,0,0,115,4,0,0,0,0,9,12,1,114,95,0,
+ 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,140,0,0,0,
+ 101,0,90,1,100,0,90,2,100,1,90,3,100,2,90,4,
+ 101,5,100,3,100,4,132,0,131,1,90,6,101,7,100,20,
+ 100,6,100,7,132,1,131,1,90,8,101,7,100,21,100,8,
+ 100,9,132,1,131,1,90,9,101,7,100,10,100,11,132,0,
+ 131,1,90,10,101,7,100,12,100,13,132,0,131,1,90,11,
+ 101,7,101,12,100,14,100,15,132,0,131,1,131,1,90,13,
+ 101,7,101,12,100,16,100,17,132,0,131,1,131,1,90,14,
+ 101,7,101,12,100,18,100,19,132,0,131,1,131,1,90,15,
+ 101,7,101,16,131,1,90,17,100,5,83,0,41,22,218,15,
+ 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,122,
+ 144,77,101,116,97,32,112,97,116,104,32,105,109,112,111,114,
+ 116,32,102,111,114,32,98,117,105,108,116,45,105,110,32,109,
+ 111,100,117,108,101,115,46,10,10,32,32,32,32,65,108,108,
+ 32,109,101,116,104,111,100,115,32,97,114,101,32,101,105,116,
+ 104,101,114,32,99,108,97,115,115,32,111,114,32,115,116,97,
+ 116,105,99,32,109,101,116,104,111,100,115,32,116,111,32,97,
+ 118,111,105,100,32,116,104,101,32,110,101,101,100,32,116,111,
+ 10,32,32,32,32,105,110,115,116,97,110,116,105,97,116,101,
+ 32,116,104,101,32,99,108,97,115,115,46,10,10,32,32,32,
+ 32,122,8,98,117,105,108,116,45,105,110,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,
+ 67,0,0,0,115,22,0,0,0,100,1,124,0,106,0,155,
+ 2,100,2,116,1,106,2,155,0,100,3,157,5,83,0,41,
+ 4,250,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,8,60,109,111,100,117,108,101,32,
+ 122,2,32,40,122,2,41,62,41,3,114,1,0,0,0,114,
+ 161,0,0,0,114,139,0,0,0,41,1,114,97,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 100,0,0,0,215,2,0,0,115,2,0,0,0,0,7,122,
+ 27,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,
+ 46,109,111,100,117,108,101,95,114,101,112,114,78,99,4,0,
+ 0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,
+ 0,0,67,0,0,0,115,46,0,0,0,124,2,100,0,117,
+ 1,114,12,100,0,83,0,116,0,160,1,124,1,161,1,114,
+ 38,116,2,124,1,124,0,124,0,106,3,100,1,141,3,83,
+ 0,100,0,83,0,100,0,83,0,169,2,78,114,138,0,0,
+ 0,41,4,114,58,0,0,0,90,10,105,115,95,98,117,105,
+ 108,116,105,110,114,92,0,0,0,114,139,0,0,0,169,4,
+ 218,3,99,108,115,114,82,0,0,0,218,4,112,97,116,104,
+ 218,6,116,97,114,103,101,116,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,9,102,105,110,100,95,115,112,
+ 101,99,224,2,0,0,115,10,0,0,0,0,2,8,1,4,
+ 1,10,1,16,2,122,25,66,117,105,108,116,105,110,73,109,
+ 112,111,114,116,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,1,
+ 114,26,124,3,106,1,83,0,100,1,83,0,41,2,122,175,
+ 70,105,110,100,32,116,104,101,32,98,117,105,108,116,45,105,
+ 110,32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,
+ 32,32,32,73,102,32,39,112,97,116,104,39,32,105,115,32,
+ 101,118,101,114,32,115,112,101,99,105,102,105,101,100,32,116,
+ 104,101,110,32,116,104,101,32,115,101,97,114,99,104,32,105,
+ 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,102,
+ 97,105,108,117,114,101,46,10,10,32,32,32,32,32,32,32,
+ 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,
+ 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,
+ 32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,
+ 116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,
+ 41,2,114,168,0,0,0,114,110,0,0,0,41,4,114,165,
+ 0,0,0,114,82,0,0,0,114,166,0,0,0,114,96,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,11,102,105,110,100,95,109,111,100,117,108,101,233,2,
+ 0,0,115,4,0,0,0,0,9,12,1,122,27,66,117,105,
+ 108,116,105,110,73,109,112,111,114,116,101,114,46,102,105,110,
+ 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,4,0,0,0,67,0,0,
+ 0,115,46,0,0,0,124,1,106,0,116,1,106,2,118,1,
+ 114,34,116,3,100,1,160,4,124,1,106,0,161,1,124,1,
+ 106,0,100,2,141,2,130,1,116,5,116,6,106,7,124,1,
+ 131,2,83,0,41,3,122,24,67,114,101,97,116,101,32,97,
+ 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
+ 114,78,0,0,0,114,16,0,0,0,41,8,114,17,0,0,
+ 0,114,15,0,0,0,114,79,0,0,0,114,80,0,0,0,
+ 114,46,0,0,0,114,68,0,0,0,114,58,0,0,0,90,
+ 14,99,114,101,97,116,101,95,98,117,105,108,116,105,110,41,
+ 2,114,30,0,0,0,114,96,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,150,0,0,0,245,
+ 2,0,0,115,10,0,0,0,0,3,12,1,12,1,4,255,
+ 6,2,122,29,66,117,105,108,116,105,110,73,109,112,111,114,
+ 116,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,3,0,0,0,67,0,0,0,115,16,0,0,0,116,
+ 0,116,1,106,2,124,1,131,2,1,0,100,1,83,0,41,
+ 2,122,22,69,120,101,99,32,97,32,98,117,105,108,116,45,
+ 105,110,32,109,111,100,117,108,101,78,41,3,114,68,0,0,
+ 0,114,58,0,0,0,90,12,101,120,101,99,95,98,117,105,
+ 108,116,105,110,41,2,114,30,0,0,0,114,97,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 151,0,0,0,253,2,0,0,115,2,0,0,0,0,3,122,
+ 27,66,117,105,108,116,105,110,73,109,112,111,114,116,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,1,0,0,
+ 0,67,0,0,0,115,4,0,0,0,100,1,83,0,41,2,
+ 122,57,82,101,116,117,114,110,32,78,111,110,101,32,97,115,
+ 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
+ 115,32,100,111,32,110,111,116,32,104,97,118,101,32,99,111,
+ 100,101,32,111,98,106,101,99,116,115,46,78,114,10,0,0,
+ 0,169,2,114,165,0,0,0,114,82,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,8,103,101,
+ 116,95,99,111,100,101,2,3,0,0,115,2,0,0,0,0,
+ 4,122,24,66,117,105,108,116,105,110,73,109,112,111,114,116,
+ 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,115,4,0,0,0,100,1,83,0,41,2,122,
+ 56,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
+ 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,
+ 32,100,111,32,110,111,116,32,104,97,118,101,32,115,111,117,
+ 114,99,101,32,99,111,100,101,46,78,114,10,0,0,0,114,
+ 170,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,8,
+ 3,0,0,115,2,0,0,0,0,4,122,26,66,117,105,108,
+ 116,105,110,73,109,112,111,114,116,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,115,
+ 4,0,0,0,100,1,83,0,41,2,122,52,82,101,116,117,
+ 114,110,32,70,97,108,115,101,32,97,115,32,98,117,105,108,
+ 116,45,105,110,32,109,111,100,117,108,101,115,32,97,114,101,
+ 32,110,101,118,101,114,32,112,97,99,107,97,103,101,115,46,
+ 70,114,10,0,0,0,114,170,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,116,0,0,0,14,
+ 3,0,0,115,2,0,0,0,0,4,122,26,66,117,105,108,
+ 116,105,110,73,109,112,111,114,116,101,114,46,105,115,95,112,
+ 97,99,107,97,103,101,41,2,78,78,41,1,78,41,18,114,
+ 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,
+ 0,0,0,114,139,0,0,0,218,12,115,116,97,116,105,99,
+ 109,101,116,104,111,100,114,100,0,0,0,218,11,99,108,97,
+ 115,115,109,101,116,104,111,100,114,168,0,0,0,114,169,0,
+ 0,0,114,150,0,0,0,114,151,0,0,0,114,87,0,0,
+ 0,114,171,0,0,0,114,172,0,0,0,114,116,0,0,0,
+ 114,98,0,0,0,114,156,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,161,
+ 0,0,0,204,2,0,0,115,44,0,0,0,8,2,4,7,
+ 4,2,2,1,10,8,2,1,12,8,2,1,12,11,2,1,
+ 10,7,2,1,10,4,2,1,2,1,12,4,2,1,2,1,
+ 12,4,2,1,2,1,12,4,114,161,0,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,144,0,0,0,101,0,90,1,100,
+ 0,90,2,100,1,90,3,100,2,90,4,101,5,100,3,100,
+ 4,132,0,131,1,90,6,101,7,100,22,100,6,100,7,132,
+ 1,131,1,90,8,101,7,100,23,100,8,100,9,132,1,131,
+ 1,90,9,101,7,100,10,100,11,132,0,131,1,90,10,101,
+ 5,100,12,100,13,132,0,131,1,90,11,101,7,100,14,100,
+ 15,132,0,131,1,90,12,101,7,101,13,100,16,100,17,132,
+ 0,131,1,131,1,90,14,101,7,101,13,100,18,100,19,132,
+ 0,131,1,131,1,90,15,101,7,101,13,100,20,100,21,132,
+ 0,131,1,131,1,90,16,100,5,83,0,41,24,218,14,70,
+ 114,111,122,101,110,73,109,112,111,114,116,101,114,122,142,77,
+ 101,116,97,32,112,97,116,104,32,105,109,112,111,114,116,32,
+ 102,111,114,32,102,114,111,122,101,110,32,109,111,100,117,108,
+ 101,115,46,10,10,32,32,32,32,65,108,108,32,109,101,116,
+ 104,111,100,115,32,97,114,101,32,101,105,116,104,101,114,32,
+ 99,108,97,115,115,32,111,114,32,115,116,97,116,105,99,32,
+ 109,101,116,104,111,100,115,32,116,111,32,97,118,111,105,100,
+ 32,116,104,101,32,110,101,101,100,32,116,111,10,32,32,32,
+ 32,105,110,115,116,97,110,116,105,97,116,101,32,116,104,101,
+ 32,99,108,97,115,115,46,10,10,32,32,32,32,90,6,102,
+ 114,111,122,101,110,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,16,
+ 0,0,0,100,1,160,0,124,0,106,1,116,2,106,3,161,
+ 2,83,0,41,2,114,162,0,0,0,114,154,0,0,0,41,
+ 4,114,46,0,0,0,114,1,0,0,0,114,175,0,0,0,
+ 114,139,0,0,0,41,1,218,1,109,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,100,0,0,0,34,3,
+ 0,0,115,2,0,0,0,0,7,122,26,70,114,111,122,101,
+ 110,73,109,112,111,114,116,101,114,46,109,111,100,117,108,101,
+ 95,114,101,112,114,78,99,4,0,0,0,0,0,0,0,0,
+ 0,0,0,4,0,0,0,5,0,0,0,67,0,0,0,115,
+ 34,0,0,0,116,0,160,1,124,1,161,1,114,26,116,2,
+ 124,1,124,0,124,0,106,3,100,1,141,3,83,0,100,0,
+ 83,0,100,0,83,0,114,163,0,0,0,41,4,114,58,0,
+ 0,0,114,89,0,0,0,114,92,0,0,0,114,139,0,0,
+ 0,114,164,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,168,0,0,0,43,3,0,0,115,6,
+ 0,0,0,0,2,10,1,16,2,122,24,70,114,111,122,101,
+ 110,73,109,112,111,114,116,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,
+ 3,0,0,0,3,0,0,0,67,0,0,0,115,18,0,0,
+ 0,116,0,160,1,124,1,161,1,114,14,124,0,83,0,100,
+ 1,83,0,41,2,122,93,70,105,110,100,32,97,32,102,114,
+ 111,122,101,110,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,41,2,114,58,0,0,0,114,89,0,0,
+ 0,41,3,114,165,0,0,0,114,82,0,0,0,114,166,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,169,0,0,0,50,3,0,0,115,2,0,0,0,0,
+ 7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,
+ 114,46,102,105,110,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,115,4,0,0,0,100,1,83,0,41,
+ 2,122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,
+ 101,109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,
+ 117,108,101,32,99,114,101,97,116,105,111,110,46,78,114,10,
+ 0,0,0,41,2,114,165,0,0,0,114,96,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,150,
+ 0,0,0,59,3,0,0,115,2,0,0,0,0,2,122,28,
+ 70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,99,
+ 114,101,97,116,101,95,109,111,100,117,108,101,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,64,0,0,0,124,0,106,0,106,1,
+ 125,1,116,2,160,3,124,1,161,1,115,36,116,4,100,1,
+ 160,5,124,1,161,1,124,1,100,2,141,2,130,1,116,6,
+ 116,2,106,7,124,1,131,2,125,2,116,8,124,2,124,0,
+ 106,9,131,2,1,0,100,0,83,0,114,88,0,0,0,41,
+ 10,114,106,0,0,0,114,17,0,0,0,114,58,0,0,0,
+ 114,89,0,0,0,114,80,0,0,0,114,46,0,0,0,114,
+ 68,0,0,0,218,17,103,101,116,95,102,114,111,122,101,110,
+ 95,111,98,106,101,99,116,218,4,101,120,101,99,114,7,0,
+ 0,0,41,3,114,97,0,0,0,114,17,0,0,0,218,4,
+ 99,111,100,101,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,151,0,0,0,63,3,0,0,115,14,0,0,
+ 0,0,2,8,1,10,1,10,1,2,255,6,2,12,1,122,
+ 26,70,114,111,122,101,110,73,109,112,111,114,116,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,3,0,0,0,
+ 67,0,0,0,115,10,0,0,0,116,0,124,0,124,1,131,
+ 2,83,0,41,1,122,95,76,111,97,100,32,97,32,102,114,
+ 111,122,101,110,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,41,1,114,98,0,0,0,114,170,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,156,0,0,0,72,3,0,0,115,2,0,0,0,0,
+ 7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,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,3,0,
+ 0,0,67,0,0,0,115,10,0,0,0,116,0,160,1,124,
+ 1,161,1,83,0,41,1,122,45,82,101,116,117,114,110,32,
+ 116,104,101,32,99,111,100,101,32,111,98,106,101,99,116,32,
+ 102,111,114,32,116,104,101,32,102,114,111,122,101,110,32,109,
+ 111,100,117,108,101,46,41,2,114,58,0,0,0,114,177,0,
+ 0,0,114,170,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,171,0,0,0,81,3,0,0,115,
+ 2,0,0,0,0,4,122,23,70,114,111,122,101,110,73,109,
+ 112,111,114,116,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,115,4,0,0,0,100,1,83,
+ 0,41,2,122,54,82,101,116,117,114,110,32,78,111,110,101,
+ 32,97,115,32,102,114,111,122,101,110,32,109,111,100,117,108,
+ 101,115,32,100,111,32,110,111,116,32,104,97,118,101,32,115,
+ 111,117,114,99,101,32,99,111,100,101,46,78,114,10,0,0,
+ 0,114,170,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,172,0,0,0,87,3,0,0,115,2,
+ 0,0,0,0,4,122,25,70,114,111,122,101,110,73,109,112,
+ 111,114,116,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,3,0,0,0,67,0,0,0,115,10,0,0,0,116,0,
+ 160,1,124,1,161,1,83,0,41,1,122,46,82,101,116,117,
+ 114,110,32,84,114,117,101,32,105,102,32,116,104,101,32,102,
+ 114,111,122,101,110,32,109,111,100,117,108,101,32,105,115,32,
+ 97,32,112,97,99,107,97,103,101,46,41,2,114,58,0,0,
+ 0,90,17,105,115,95,102,114,111,122,101,110,95,112,97,99,
+ 107,97,103,101,114,170,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,116,0,0,0,93,3,0,
+ 0,115,2,0,0,0,0,4,122,25,70,114,111,122,101,110,
+ 73,109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,
+ 97,103,101,41,2,78,78,41,1,78,41,17,114,1,0,0,
+ 0,114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,
+ 114,139,0,0,0,114,173,0,0,0,114,100,0,0,0,114,
+ 174,0,0,0,114,168,0,0,0,114,169,0,0,0,114,150,
+ 0,0,0,114,151,0,0,0,114,156,0,0,0,114,91,0,
+ 0,0,114,171,0,0,0,114,172,0,0,0,114,116,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,175,0,0,0,23,3,0,0,115,46,
+ 0,0,0,8,2,4,7,4,2,2,1,10,8,2,1,12,
+ 6,2,1,12,8,2,1,10,3,2,1,10,8,2,1,10,
+ 8,2,1,2,1,12,4,2,1,2,1,12,4,2,1,2,
+ 1,114,175,0,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,18,95,73,109,112,111,114,116,76,
+ 111,99,107,67,111,110,116,101,120,116,122,36,67,111,110,116,
+ 101,120,116,32,109,97,110,97,103,101,114,32,102,111,114,32,
+ 116,104,101,32,105,109,112,111,114,116,32,108,111,99,107,46,
+ 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,12,0,0,0,116,0,
+ 160,1,161,0,1,0,100,1,83,0,41,2,122,24,65,99,
+ 113,117,105,114,101,32,116,104,101,32,105,109,112,111,114,116,
+ 32,108,111,99,107,46,78,41,2,114,58,0,0,0,114,59,
+ 0,0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,55,0,0,0,106,3,0,0,
+ 115,2,0,0,0,0,2,122,28,95,73,109,112,111,114,116,
+ 76,111,99,107,67,111,110,116,101,120,116,46,95,95,101,110,
+ 116,101,114,95,95,99,4,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,2,0,0,0,67,0,0,0,115,12,
+ 0,0,0,116,0,160,1,161,0,1,0,100,1,83,0,41,
+ 2,122,60,82,101,108,101,97,115,101,32,116,104,101,32,105,
+ 109,112,111,114,116,32,108,111,99,107,32,114,101,103,97,114,
+ 100,108,101,115,115,32,111,102,32,97,110,121,32,114,97,105,
+ 115,101,100,32,101,120,99,101,112,116,105,111,110,115,46,78,
+ 41,2,114,58,0,0,0,114,61,0,0,0,41,4,114,30,
+ 0,0,0,218,8,101,120,99,95,116,121,112,101,218,9,101,
+ 120,99,95,118,97,108,117,101,218,13,101,120,99,95,116,114,
+ 97,99,101,98,97,99,107,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,57,0,0,0,110,3,0,0,115,
+ 2,0,0,0,0,2,122,27,95,73,109,112,111,114,116,76,
+ 111,99,107,67,111,110,116,101,120,116,46,95,95,101,120,105,
+ 116,95,95,78,41,6,114,1,0,0,0,114,0,0,0,0,
+ 114,2,0,0,0,114,3,0,0,0,114,55,0,0,0,114,
+ 57,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,180,0,0,0,102,3,0,
+ 0,115,6,0,0,0,8,2,4,2,8,4,114,180,0,0,
+ 0,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,64,0,0,0,124,
+ 1,160,0,100,1,124,2,100,2,24,0,161,2,125,3,116,
+ 1,124,3,131,1,124,2,107,0,114,36,116,2,100,3,131,
+ 1,130,1,124,3,100,4,25,0,125,4,124,0,114,60,100,
+ 5,160,3,124,4,124,0,161,2,83,0,124,4,83,0,41,
+ 6,122,50,82,101,115,111,108,118,101,32,97,32,114,101,108,
+ 97,116,105,118,101,32,109,111,100,117,108,101,32,110,97,109,
+ 101,32,116,111,32,97,110,32,97,98,115,111,108,117,116,101,
+ 32,111,110,101,46,114,129,0,0,0,114,39,0,0,0,122,
+ 50,97,116,116,101,109,112,116,101,100,32,114,101,108,97,116,
+ 105,118,101,32,105,109,112,111,114,116,32,98,101,121,111,110,
+ 100,32,116,111,112,45,108,101,118,101,108,32,112,97,99,107,
+ 97,103,101,114,22,0,0,0,250,5,123,125,46,123,125,41,
+ 4,218,6,114,115,112,108,105,116,218,3,108,101,110,114,80,
+ 0,0,0,114,46,0,0,0,41,5,114,17,0,0,0,218,
+ 7,112,97,99,107,97,103,101,218,5,108,101,118,101,108,90,
+ 4,98,105,116,115,90,4,98,97,115,101,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,13,95,114,101,115,
+ 111,108,118,101,95,110,97,109,101,115,3,0,0,115,10,0,
+ 0,0,0,2,16,1,12,1,8,1,8,1,114,189,0,0,
+ 0,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,34,0,0,0,124,
+ 0,160,0,124,1,124,2,161,2,125,3,124,3,100,0,117,
+ 0,114,24,100,0,83,0,116,1,124,1,124,3,131,2,83,
+ 0,114,13,0,0,0,41,2,114,169,0,0,0,114,92,0,
+ 0,0,41,4,218,6,102,105,110,100,101,114,114,17,0,0,
+ 0,114,166,0,0,0,114,110,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,17,95,102,105,110,
+ 100,95,115,112,101,99,95,108,101,103,97,99,121,124,3,0,
+ 0,115,8,0,0,0,0,3,12,1,8,1,4,1,114,191,
+ 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
+ 10,0,0,0,10,0,0,0,67,0,0,0,115,32,1,0,
+ 0,116,0,106,1,125,3,124,3,100,1,117,0,114,22,116,
+ 2,100,2,131,1,130,1,124,3,115,38,116,3,160,4,100,
+ 3,116,5,161,2,1,0,124,0,116,0,106,6,118,0,125,
+ 4,124,3,68,0,93,230,125,5,116,7,131,0,143,94,1,
+ 0,122,10,124,5,106,8,125,6,87,0,110,54,4,0,116,
+ 9,121,128,1,0,1,0,1,0,116,10,124,5,124,0,124,
+ 1,131,3,125,7,124,7,100,1,117,0,114,124,89,0,87,
+ 0,100,1,4,0,4,0,131,3,1,0,113,52,89,0,110,
+ 14,48,0,124,6,124,0,124,1,124,2,131,3,125,7,87,
+ 0,100,1,4,0,4,0,131,3,1,0,110,16,49,0,115,
+ 162,48,0,1,0,1,0,1,0,89,0,1,0,124,7,100,
+ 1,117,1,114,52,124,4,144,1,115,18,124,0,116,0,106,
+ 6,118,0,144,1,114,18,116,0,106,6,124,0,25,0,125,
+ 8,122,10,124,8,106,11,125,9,87,0,110,26,4,0,116,
+ 9,121,244,1,0,1,0,1,0,124,7,6,0,89,0,2,
+ 0,1,0,83,0,48,0,124,9,100,1,117,0,144,1,114,
+ 8,124,7,2,0,1,0,83,0,124,9,2,0,1,0,83,
+ 0,113,52,124,7,2,0,1,0,83,0,113,52,100,1,83,
+ 0,41,4,122,21,70,105,110,100,32,97,32,109,111,100,117,
+ 108,101,39,115,32,115,112,101,99,46,78,122,53,115,121,115,
+ 46,109,101,116,97,95,112,97,116,104,32,105,115,32,78,111,
+ 110,101,44,32,80,121,116,104,111,110,32,105,115,32,108,105,
+ 107,101,108,121,32,115,104,117,116,116,105,110,103,32,100,111,
+ 119,110,122,22,115,121,115,46,109,101,116,97,95,112,97,116,
+ 104,32,105,115,32,101,109,112,116,121,41,12,114,15,0,0,
+ 0,218,9,109,101,116,97,95,112,97,116,104,114,80,0,0,
+ 0,218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,
+ 114,110,218,13,73,109,112,111,114,116,87,97,114,110,105,110,
+ 103,114,93,0,0,0,114,180,0,0,0,114,168,0,0,0,
+ 114,107,0,0,0,114,191,0,0,0,114,106,0,0,0,41,
+ 10,114,17,0,0,0,114,166,0,0,0,114,167,0,0,0,
+ 114,192,0,0,0,90,9,105,115,95,114,101,108,111,97,100,
+ 114,190,0,0,0,114,168,0,0,0,114,96,0,0,0,114,
+ 97,0,0,0,114,106,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,10,95,102,105,110,100,95,
+ 115,112,101,99,133,3,0,0,115,54,0,0,0,0,2,6,
+ 1,8,2,8,3,4,1,12,5,10,1,8,1,8,1,2,
+ 1,10,1,12,1,12,1,8,1,22,2,42,1,8,2,18,
+ 1,10,1,2,1,10,1,12,4,14,2,10,1,8,2,10,
+ 2,10,2,114,196,0,0,0,99,3,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,5,0,0,0,67,0,0,
+ 0,115,108,0,0,0,116,0,124,0,116,1,131,2,115,28,
+ 116,2,100,1,160,3,116,4,124,0,131,1,161,1,131,1,
+ 130,1,124,2,100,2,107,0,114,44,116,5,100,3,131,1,
+ 130,1,124,2,100,2,107,4,114,84,116,0,124,1,116,1,
+ 131,2,115,72,116,2,100,4,131,1,130,1,110,12,124,1,
+ 115,84,116,6,100,5,131,1,130,1,124,0,115,104,124,2,
+ 100,2,107,2,114,104,116,5,100,6,131,1,130,1,100,7,
+ 83,0,41,8,122,28,86,101,114,105,102,121,32,97,114,103,
+ 117,109,101,110,116,115,32,97,114,101,32,34,115,97,110,101,
+ 34,46,122,31,109,111,100,117,108,101,32,110,97,109,101,32,
+ 109,117,115,116,32,98,101,32,115,116,114,44,32,110,111,116,
+ 32,123,125,114,22,0,0,0,122,18,108,101,118,101,108,32,
+ 109,117,115,116,32,98,101,32,62,61,32,48,122,31,95,95,
+ 112,97,99,107,97,103,101,95,95,32,110,111,116,32,115,101,
+ 116,32,116,111,32,97,32,115,116,114,105,110,103,122,54,97,
+ 116,116,101,109,112,116,101,100,32,114,101,108,97,116,105,118,
+ 101,32,105,109,112,111,114,116,32,119,105,116,104,32,110,111,
+ 32,107,110,111,119,110,32,112,97,114,101,110,116,32,112,97,
+ 99,107,97,103,101,122,17,69,109,112,116,121,32,109,111,100,
+ 117,108,101,32,110,97,109,101,78,41,7,218,10,105,115,105,
+ 110,115,116,97,110,99,101,218,3,115,116,114,218,9,84,121,
+ 112,101,69,114,114,111,114,114,46,0,0,0,114,14,0,0,
+ 0,218,10,86,97,108,117,101,69,114,114,111,114,114,80,0,
+ 0,0,169,3,114,17,0,0,0,114,187,0,0,0,114,188,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,218,13,95,115,97,110,105,116,121,95,99,104,101,99,
+ 107,180,3,0,0,115,22,0,0,0,0,2,10,1,18,1,
+ 8,1,8,1,8,1,10,1,10,1,4,1,8,2,12,1,
+ 114,202,0,0,0,122,16,78,111,32,109,111,100,117,108,101,
+ 32,110,97,109,101,100,32,122,4,123,33,114,125,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,9,0,0,0,8,0,
+ 0,0,67,0,0,0,115,22,1,0,0,100,0,125,2,124,
+ 0,160,0,100,1,161,1,100,2,25,0,125,3,124,3,114,
+ 132,124,3,116,1,106,2,118,1,114,42,116,3,124,1,124,
+ 3,131,2,1,0,124,0,116,1,106,2,118,0,114,62,116,
+ 1,106,2,124,0,25,0,83,0,116,1,106,2,124,3,25,
+ 0,125,4,122,10,124,4,106,4,125,2,87,0,110,48,4,
+ 0,116,5,121,130,1,0,1,0,1,0,116,6,100,3,23,
+ 0,160,7,124,0,124,3,161,2,125,5,116,8,124,5,124,
+ 0,100,4,141,2,100,0,130,2,89,0,110,2,48,0,116,
+ 9,124,0,124,2,131,2,125,6,124,6,100,0,117,0,114,
+ 170,116,8,116,6,160,7,124,0,161,1,124,0,100,4,141,
+ 2,130,1,110,8,116,10,124,6,131,1,125,7,124,3,144,
+ 1,114,18,116,1,106,2,124,3,25,0,125,4,124,0,160,
+ 0,100,1,161,1,100,5,25,0,125,8,122,16,116,11,124,
+ 4,124,8,124,7,131,3,1,0,87,0,110,48,4,0,116,
+ 5,144,1,121,16,1,0,1,0,1,0,100,6,124,3,155,
+ 2,100,7,124,8,155,2,157,4,125,5,116,12,160,13,124,
+ 5,116,14,161,2,1,0,89,0,110,2,48,0,124,7,83,
+ 0,41,8,78,114,129,0,0,0,114,22,0,0,0,122,23,
+ 59,32,123,33,114,125,32,105,115,32,110,111,116,32,97,32,
+ 112,97,99,107,97,103,101,114,16,0,0,0,233,2,0,0,
+ 0,122,27,67,97,110,110,111,116,32,115,101,116,32,97,110,
+ 32,97,116,116,114,105,98,117,116,101,32,111,110,32,122,18,
+ 32,102,111,114,32,99,104,105,108,100,32,109,111,100,117,108,
+ 101,32,41,15,114,130,0,0,0,114,15,0,0,0,114,93,
+ 0,0,0,114,68,0,0,0,114,142,0,0,0,114,107,0,
+ 0,0,218,8,95,69,82,82,95,77,83,71,114,46,0,0,
+ 0,218,19,77,111,100,117,108,101,78,111,116,70,111,117,110,
+ 100,69,114,114,111,114,114,196,0,0,0,114,160,0,0,0,
+ 114,5,0,0,0,114,193,0,0,0,114,194,0,0,0,114,
+ 195,0,0,0,41,9,114,17,0,0,0,218,7,105,109,112,
+ 111,114,116,95,114,166,0,0,0,114,131,0,0,0,90,13,
+ 112,97,114,101,110,116,95,109,111,100,117,108,101,114,158,0,
+ 0,0,114,96,0,0,0,114,97,0,0,0,90,5,99,104,
+ 105,108,100,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,218,23,95,102,105,110,100,95,97,110,100,95,108,111,
+ 97,100,95,117,110,108,111,99,107,101,100,199,3,0,0,115,
+ 52,0,0,0,0,1,4,1,14,1,4,1,10,1,10,2,
+ 10,1,10,1,10,1,2,1,10,1,12,1,16,1,20,1,
+ 10,1,8,1,20,2,8,1,6,2,10,1,14,1,2,1,
+ 16,1,14,1,16,1,18,1,114,207,0,0,0,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,
+ 0,0,67,0,0,0,115,128,0,0,0,116,0,124,0,131,
+ 1,143,62,1,0,116,1,106,2,160,3,124,0,116,4,161,
+ 2,125,2,124,2,116,4,117,0,114,56,116,5,124,0,124,
+ 1,131,2,87,0,2,0,100,1,4,0,4,0,131,3,1,
+ 0,83,0,87,0,100,1,4,0,4,0,131,3,1,0,110,
+ 16,49,0,115,76,48,0,1,0,1,0,1,0,89,0,1,
+ 0,124,2,100,1,117,0,114,116,100,2,160,6,124,0,161,
+ 1,125,3,116,7,124,3,124,0,100,3,141,2,130,1,116,
+ 8,124,0,131,1,1,0,124,2,83,0,41,4,122,25,70,
+ 105,110,100,32,97,110,100,32,108,111,97,100,32,116,104,101,
+ 32,109,111,100,117,108,101,46,78,122,40,105,109,112,111,114,
+ 116,32,111,102,32,123,125,32,104,97,108,116,101,100,59,32,
+ 78,111,110,101,32,105,110,32,115,121,115,46,109,111,100,117,
+ 108,101,115,114,16,0,0,0,41,9,114,51,0,0,0,114,
+ 15,0,0,0,114,93,0,0,0,114,35,0,0,0,218,14,
+ 95,78,69,69,68,83,95,76,79,65,68,73,78,71,114,207,
+ 0,0,0,114,46,0,0,0,114,205,0,0,0,114,66,0,
+ 0,0,41,4,114,17,0,0,0,114,206,0,0,0,114,97,
+ 0,0,0,114,76,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,14,95,102,105,110,100,95,97,
+ 110,100,95,108,111,97,100,234,3,0,0,115,22,0,0,0,
+ 0,2,10,1,14,1,8,1,54,2,8,1,4,1,2,255,
+ 4,2,12,2,8,1,114,209,0,0,0,114,22,0,0,0,
+ 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,
+ 124,0,124,1,124,2,131,3,1,0,124,2,100,1,107,4,
+ 114,32,116,1,124,0,124,1,124,2,131,3,125,0,116,2,
+ 124,0,116,3,131,2,83,0,41,2,97,50,1,0,0,73,
+ 109,112,111,114,116,32,97,110,100,32,114,101,116,117,114,110,
+ 32,116,104,101,32,109,111,100,117,108,101,32,98,97,115,101,
+ 100,32,111,110,32,105,116,115,32,110,97,109,101,44,32,116,
+ 104,101,32,112,97,99,107,97,103,101,32,116,104,101,32,99,
+ 97,108,108,32,105,115,10,32,32,32,32,98,101,105,110,103,
+ 32,109,97,100,101,32,102,114,111,109,44,32,97,110,100,32,
+ 116,104,101,32,108,101,118,101,108,32,97,100,106,117,115,116,
+ 109,101,110,116,46,10,10,32,32,32,32,84,104,105,115,32,
+ 102,117,110,99,116,105,111,110,32,114,101,112,114,101,115,101,
+ 110,116,115,32,116,104,101,32,103,114,101,97,116,101,115,116,
+ 32,99,111,109,109,111,110,32,100,101,110,111,109,105,110,97,
+ 116,111,114,32,111,102,32,102,117,110,99,116,105,111,110,97,
+ 108,105,116,121,10,32,32,32,32,98,101,116,119,101,101,110,
+ 32,105,109,112,111,114,116,95,109,111,100,117,108,101,32,97,
+ 110,100,32,95,95,105,109,112,111,114,116,95,95,46,32,84,
+ 104,105,115,32,105,110,99,108,117,100,101,115,32,115,101,116,
+ 116,105,110,103,32,95,95,112,97,99,107,97,103,101,95,95,
+ 32,105,102,10,32,32,32,32,116,104,101,32,108,111,97,100,
+ 101,114,32,100,105,100,32,110,111,116,46,10,10,32,32,32,
+ 32,114,22,0,0,0,41,4,114,202,0,0,0,114,189,0,
+ 0,0,114,209,0,0,0,218,11,95,103,99,100,95,105,109,
+ 112,111,114,116,114,201,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,210,0,0,0,250,3,0,
+ 0,115,8,0,0,0,0,9,12,1,8,1,12,1,114,210,
+ 0,0,0,169,1,218,9,114,101,99,117,114,115,105,118,101,
+ 99,3,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
+ 0,11,0,0,0,67,0,0,0,115,232,0,0,0,124,1,
+ 68,0,93,222,125,4,116,0,124,4,116,1,131,2,115,66,
+ 124,3,114,34,124,0,106,2,100,1,23,0,125,5,110,4,
+ 100,2,125,5,116,3,100,3,124,5,155,0,100,4,116,4,
+ 124,4,131,1,106,2,155,0,157,4,131,1,130,1,113,4,
+ 124,4,100,5,107,2,114,108,124,3,115,226,116,5,124,0,
+ 100,6,131,2,114,226,116,6,124,0,124,0,106,7,124,2,
+ 100,7,100,8,141,4,1,0,113,4,116,5,124,0,124,4,
+ 131,2,115,4,100,9,160,8,124,0,106,2,124,4,161,2,
+ 125,6,122,14,116,9,124,2,124,6,131,2,1,0,87,0,
+ 113,4,4,0,116,10,121,224,1,0,125,7,1,0,122,54,
+ 124,7,106,11,124,6,107,2,114,202,116,12,106,13,160,14,
+ 124,6,116,15,161,2,100,10,117,1,114,202,87,0,89,0,
+ 100,10,125,7,126,7,113,4,130,0,87,0,89,0,100,10,
+ 125,7,126,7,113,4,100,10,125,7,126,7,48,0,48,0,
+ 113,4,124,0,83,0,41,11,122,238,70,105,103,117,114,101,
+ 32,111,117,116,32,119,104,97,116,32,95,95,105,109,112,111,
+ 114,116,95,95,32,115,104,111,117,108,100,32,114,101,116,117,
+ 114,110,46,10,10,32,32,32,32,84,104,101,32,105,109,112,
+ 111,114,116,95,32,112,97,114,97,109,101,116,101,114,32,105,
+ 115,32,97,32,99,97,108,108,97,98,108,101,32,119,104,105,
+ 99,104,32,116,97,107,101,115,32,116,104,101,32,110,97,109,
+ 101,32,111,102,32,109,111,100,117,108,101,32,116,111,10,32,
+ 32,32,32,105,109,112,111,114,116,46,32,73,116,32,105,115,
+ 32,114,101,113,117,105,114,101,100,32,116,111,32,100,101,99,
+ 111,117,112,108,101,32,116,104,101,32,102,117,110,99,116,105,
+ 111,110,32,102,114,111,109,32,97,115,115,117,109,105,110,103,
+ 32,105,109,112,111,114,116,108,105,98,39,115,10,32,32,32,
+ 32,105,109,112,111,114,116,32,105,109,112,108,101,109,101,110,
+ 116,97,116,105,111,110,32,105,115,32,100,101,115,105,114,101,
+ 100,46,10,10,32,32,32,32,122,8,46,95,95,97,108,108,
+ 95,95,122,13,96,96,102,114,111,109,32,108,105,115,116,39,
+ 39,122,8,73,116,101,109,32,105,110,32,122,18,32,109,117,
+ 115,116,32,98,101,32,115,116,114,44,32,110,111,116,32,250,
+ 1,42,218,7,95,95,97,108,108,95,95,84,114,211,0,0,
+ 0,114,184,0,0,0,78,41,16,114,197,0,0,0,114,198,
+ 0,0,0,114,1,0,0,0,114,199,0,0,0,114,14,0,
+ 0,0,114,4,0,0,0,218,16,95,104,97,110,100,108,101,
+ 95,102,114,111,109,108,105,115,116,114,214,0,0,0,114,46,
+ 0,0,0,114,68,0,0,0,114,205,0,0,0,114,17,0,
+ 0,0,114,15,0,0,0,114,93,0,0,0,114,35,0,0,
+ 0,114,208,0,0,0,41,8,114,97,0,0,0,218,8,102,
+ 114,111,109,108,105,115,116,114,206,0,0,0,114,212,0,0,
+ 0,218,1,120,90,5,119,104,101,114,101,90,9,102,114,111,
+ 109,95,110,97,109,101,90,3,101,120,99,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,215,0,0,0,9,
+ 4,0,0,115,48,0,0,0,0,10,8,1,10,1,4,1,
+ 12,2,4,1,10,1,8,255,10,2,8,1,14,1,10,1,
+ 2,255,8,2,10,1,14,1,2,1,14,1,14,4,10,1,
+ 16,255,2,2,12,1,26,1,114,215,0,0,0,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,
+ 0,0,67,0,0,0,115,146,0,0,0,124,0,160,0,100,
+ 1,161,1,125,1,124,0,160,0,100,2,161,1,125,2,124,
+ 1,100,3,117,1,114,82,124,2,100,3,117,1,114,78,124,
+ 1,124,2,106,1,107,3,114,78,116,2,106,3,100,4,124,
+ 1,155,2,100,5,124,2,106,1,155,2,100,6,157,5,116,
+ 4,100,7,100,8,141,3,1,0,124,1,83,0,124,2,100,
+ 3,117,1,114,96,124,2,106,1,83,0,116,2,106,3,100,
+ 9,116,4,100,7,100,8,141,3,1,0,124,0,100,10,25,
+ 0,125,1,100,11,124,0,118,1,114,142,124,1,160,5,100,
+ 12,161,1,100,13,25,0,125,1,124,1,83,0,41,14,122,
+ 167,67,97,108,99,117,108,97,116,101,32,119,104,97,116,32,
+ 95,95,112,97,99,107,97,103,101,95,95,32,115,104,111,117,
+ 108,100,32,98,101,46,10,10,32,32,32,32,95,95,112,97,
+ 99,107,97,103,101,95,95,32,105,115,32,110,111,116,32,103,
+ 117,97,114,97,110,116,101,101,100,32,116,111,32,98,101,32,
+ 100,101,102,105,110,101,100,32,111,114,32,99,111,117,108,100,
+ 32,98,101,32,115,101,116,32,116,111,32,78,111,110,101,10,
+ 32,32,32,32,116,111,32,114,101,112,114,101,115,101,110,116,
+ 32,116,104,97,116,32,105,116,115,32,112,114,111,112,101,114,
+ 32,118,97,108,117,101,32,105,115,32,117,110,107,110,111,119,
+ 110,46,10,10,32,32,32,32,114,146,0,0,0,114,106,0,
+ 0,0,78,122,32,95,95,112,97,99,107,97,103,101,95,95,
+ 32,33,61,32,95,95,115,112,101,99,95,95,46,112,97,114,
+ 101,110,116,32,40,122,4,32,33,61,32,250,1,41,233,3,
+ 0,0,0,41,1,90,10,115,116,97,99,107,108,101,118,101,
+ 108,122,89,99,97,110,39,116,32,114,101,115,111,108,118,101,
+ 32,112,97,99,107,97,103,101,32,102,114,111,109,32,95,95,
+ 115,112,101,99,95,95,32,111,114,32,95,95,112,97,99,107,
+ 97,103,101,95,95,44,32,102,97,108,108,105,110,103,32,98,
+ 97,99,107,32,111,110,32,95,95,110,97,109,101,95,95,32,
+ 97,110,100,32,95,95,112,97,116,104,95,95,114,1,0,0,
+ 0,114,142,0,0,0,114,129,0,0,0,114,22,0,0,0,
+ 41,6,114,35,0,0,0,114,131,0,0,0,114,193,0,0,
+ 0,114,194,0,0,0,114,195,0,0,0,114,130,0,0,0,
+ 41,3,218,7,103,108,111,98,97,108,115,114,187,0,0,0,
+ 114,96,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,17,95,99,97,108,99,95,95,95,112,97,
+ 99,107,97,103,101,95,95,46,4,0,0,115,42,0,0,0,
+ 0,7,10,1,10,1,8,1,18,1,6,1,2,255,4,1,
+ 4,255,6,2,4,254,6,3,4,1,8,1,6,2,6,2,
+ 4,254,6,3,8,1,8,1,14,1,114,221,0,0,0,114,
+ 10,0,0,0,99,5,0,0,0,0,0,0,0,0,0,0,
+ 0,9,0,0,0,5,0,0,0,67,0,0,0,115,180,0,
+ 0,0,124,4,100,1,107,2,114,18,116,0,124,0,131,1,
+ 125,5,110,36,124,1,100,2,117,1,114,30,124,1,110,2,
+ 105,0,125,6,116,1,124,6,131,1,125,7,116,0,124,0,
+ 124,7,124,4,131,3,125,5,124,3,115,150,124,4,100,1,
+ 107,2,114,84,116,0,124,0,160,2,100,3,161,1,100,1,
+ 25,0,131,1,83,0,124,0,115,92,124,5,83,0,116,3,
+ 124,0,131,1,116,3,124,0,160,2,100,3,161,1,100,1,
+ 25,0,131,1,24,0,125,8,116,4,106,5,124,5,106,6,
+ 100,2,116,3,124,5,106,6,131,1,124,8,24,0,133,2,
+ 25,0,25,0,83,0,110,26,116,7,124,5,100,4,131,2,
+ 114,172,116,8,124,5,124,3,116,0,131,3,83,0,124,5,
+ 83,0,100,2,83,0,41,5,97,215,1,0,0,73,109,112,
+ 111,114,116,32,97,32,109,111,100,117,108,101,46,10,10,32,
+ 32,32,32,84,104,101,32,39,103,108,111,98,97,108,115,39,
+ 32,97,114,103,117,109,101,110,116,32,105,115,32,117,115,101,
+ 100,32,116,111,32,105,110,102,101,114,32,119,104,101,114,101,
+ 32,116,104,101,32,105,109,112,111,114,116,32,105,115,32,111,
+ 99,99,117,114,114,105,110,103,32,102,114,111,109,10,32,32,
+ 32,32,116,111,32,104,97,110,100,108,101,32,114,101,108,97,
+ 116,105,118,101,32,105,109,112,111,114,116,115,46,32,84,104,
+ 101,32,39,108,111,99,97,108,115,39,32,97,114,103,117,109,
+ 101,110,116,32,105,115,32,105,103,110,111,114,101,100,46,32,
+ 84,104,101,10,32,32,32,32,39,102,114,111,109,108,105,115,
+ 116,39,32,97,114,103,117,109,101,110,116,32,115,112,101,99,
+ 105,102,105,101,115,32,119,104,97,116,32,115,104,111,117,108,
+ 100,32,101,120,105,115,116,32,97,115,32,97,116,116,114,105,
+ 98,117,116,101,115,32,111,110,32,116,104,101,32,109,111,100,
+ 117,108,101,10,32,32,32,32,98,101,105,110,103,32,105,109,
+ 112,111,114,116,101,100,32,40,101,46,103,46,32,96,96,102,
+ 114,111,109,32,109,111,100,117,108,101,32,105,109,112,111,114,
+ 116,32,60,102,114,111,109,108,105,115,116,62,96,96,41,46,
+ 32,32,84,104,101,32,39,108,101,118,101,108,39,10,32,32,
+ 32,32,97,114,103,117,109,101,110,116,32,114,101,112,114,101,
+ 115,101,110,116,115,32,116,104,101,32,112,97,99,107,97,103,
+ 101,32,108,111,99,97,116,105,111,110,32,116,111,32,105,109,
+ 112,111,114,116,32,102,114,111,109,32,105,110,32,97,32,114,
+ 101,108,97,116,105,118,101,10,32,32,32,32,105,109,112,111,
+ 114,116,32,40,101,46,103,46,32,96,96,102,114,111,109,32,
+ 46,46,112,107,103,32,105,109,112,111,114,116,32,109,111,100,
+ 96,96,32,119,111,117,108,100,32,104,97,118,101,32,97,32,
+ 39,108,101,118,101,108,39,32,111,102,32,50,41,46,10,10,
+ 32,32,32,32,114,22,0,0,0,78,114,129,0,0,0,114,
+ 142,0,0,0,41,9,114,210,0,0,0,114,221,0,0,0,
+ 218,9,112,97,114,116,105,116,105,111,110,114,186,0,0,0,
+ 114,15,0,0,0,114,93,0,0,0,114,1,0,0,0,114,
+ 4,0,0,0,114,215,0,0,0,41,9,114,17,0,0,0,
+ 114,220,0,0,0,218,6,108,111,99,97,108,115,114,216,0,
+ 0,0,114,188,0,0,0,114,97,0,0,0,90,8,103,108,
+ 111,98,97,108,115,95,114,187,0,0,0,90,7,99,117,116,
+ 95,111,102,102,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,10,95,95,105,109,112,111,114,116,95,95,73,
+ 4,0,0,115,30,0,0,0,0,11,8,1,10,2,16,1,
+ 8,1,12,1,4,3,8,1,18,1,4,1,4,4,26,3,
+ 32,1,10,1,12,2,114,224,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
+ 67,0,0,0,115,38,0,0,0,116,0,160,1,124,0,161,
+ 1,125,1,124,1,100,0,117,0,114,30,116,2,100,1,124,
+ 0,23,0,131,1,130,1,116,3,124,1,131,1,83,0,41,
+ 2,78,122,25,110,111,32,98,117,105,108,116,45,105,110,32,
+ 109,111,100,117,108,101,32,110,97,109,101,100,32,41,4,114,
+ 161,0,0,0,114,168,0,0,0,114,80,0,0,0,114,160,
+ 0,0,0,41,2,114,17,0,0,0,114,96,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,18,
+ 95,98,117,105,108,116,105,110,95,102,114,111,109,95,110,97,
+ 109,101,110,4,0,0,115,8,0,0,0,0,1,10,1,8,
+ 1,12,1,114,225,0,0,0,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,10,0,0,0,5,0,0,0,67,0,0,
+ 0,115,166,0,0,0,124,1,97,0,124,0,97,1,116,2,
+ 116,1,131,1,125,2,116,1,106,3,160,4,161,0,68,0,
+ 93,72,92,2,125,3,125,4,116,5,124,4,124,2,131,2,
+ 114,26,124,3,116,1,106,6,118,0,114,60,116,7,125,5,
+ 110,18,116,0,160,8,124,3,161,1,114,26,116,9,125,5,
+ 110,2,113,26,116,10,124,4,124,5,131,2,125,6,116,11,
+ 124,6,124,4,131,2,1,0,113,26,116,1,106,3,116,12,
+ 25,0,125,7,100,1,68,0,93,46,125,8,124,8,116,1,
+ 106,3,118,1,114,138,116,13,124,8,131,1,125,9,110,10,
+ 116,1,106,3,124,8,25,0,125,9,116,14,124,7,124,8,
+ 124,9,131,3,1,0,113,114,100,2,83,0,41,3,122,250,
+ 83,101,116,117,112,32,105,109,112,111,114,116,108,105,98,32,
+ 98,121,32,105,109,112,111,114,116,105,110,103,32,110,101,101,
+ 100,101,100,32,98,117,105,108,116,45,105,110,32,109,111,100,
+ 117,108,101,115,32,97,110,100,32,105,110,106,101,99,116,105,
+ 110,103,32,116,104,101,109,10,32,32,32,32,105,110,116,111,
+ 32,116,104,101,32,103,108,111,98,97,108,32,110,97,109,101,
+ 115,112,97,99,101,46,10,10,32,32,32,32,65,115,32,115,
+ 121,115,32,105,115,32,110,101,101,100,101,100,32,102,111,114,
+ 32,115,121,115,46,109,111,100,117,108,101,115,32,97,99,99,
+ 101,115,115,32,97,110,100,32,95,105,109,112,32,105,115,32,
+ 110,101,101,100,101,100,32,116,111,32,108,111,97,100,32,98,
+ 117,105,108,116,45,105,110,10,32,32,32,32,109,111,100,117,
+ 108,101,115,44,32,116,104,111,115,101,32,116,119,111,32,109,
+ 111,100,117,108,101,115,32,109,117,115,116,32,98,101,32,101,
+ 120,112,108,105,99,105,116,108,121,32,112,97,115,115,101,100,
+ 32,105,110,46,10,10,32,32,32,32,41,3,114,23,0,0,
+ 0,114,193,0,0,0,114,65,0,0,0,78,41,15,114,58,
+ 0,0,0,114,15,0,0,0,114,14,0,0,0,114,93,0,
+ 0,0,218,5,105,116,101,109,115,114,197,0,0,0,114,79,
+ 0,0,0,114,161,0,0,0,114,89,0,0,0,114,175,0,
+ 0,0,114,143,0,0,0,114,149,0,0,0,114,1,0,0,
+ 0,114,225,0,0,0,114,5,0,0,0,41,10,218,10,115,
+ 121,115,95,109,111,100,117,108,101,218,11,95,105,109,112,95,
+ 109,111,100,117,108,101,90,11,109,111,100,117,108,101,95,116,
+ 121,112,101,114,17,0,0,0,114,97,0,0,0,114,110,0,
+ 0,0,114,96,0,0,0,90,11,115,101,108,102,95,109,111,
+ 100,117,108,101,90,12,98,117,105,108,116,105,110,95,110,97,
+ 109,101,90,14,98,117,105,108,116,105,110,95,109,111,100,117,
+ 108,101,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,6,95,115,101,116,117,112,117,4,0,0,115,36,0,
+ 0,0,0,9,4,1,4,3,8,1,18,1,10,1,10,1,
+ 6,1,10,1,6,2,2,1,10,1,12,3,10,1,8,1,
+ 10,1,10,2,10,1,114,229,0,0,0,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,38,0,0,0,116,0,124,0,124,1,131,
+ 2,1,0,116,1,106,2,160,3,116,4,161,1,1,0,116,
+ 1,106,2,160,3,116,5,161,1,1,0,100,1,83,0,41,
+ 2,122,48,73,110,115,116,97,108,108,32,105,109,112,111,114,
+ 116,101,114,115,32,102,111,114,32,98,117,105,108,116,105,110,
+ 32,97,110,100,32,102,114,111,122,101,110,32,109,111,100,117,
+ 108,101,115,78,41,6,114,229,0,0,0,114,15,0,0,0,
+ 114,192,0,0,0,114,120,0,0,0,114,161,0,0,0,114,
+ 175,0,0,0,41,2,114,227,0,0,0,114,228,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
+ 8,95,105,110,115,116,97,108,108,152,4,0,0,115,6,0,
+ 0,0,0,2,10,2,12,1,114,230,0,0,0,99,0,0,
+ 0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,
+ 0,0,67,0,0,0,115,32,0,0,0,100,1,100,2,108,
+ 0,125,0,124,0,97,1,124,0,160,2,116,3,106,4,116,
+ 5,25,0,161,1,1,0,100,2,83,0,41,3,122,57,73,
+ 110,115,116,97,108,108,32,105,109,112,111,114,116,101,114,115,
+ 32,116,104,97,116,32,114,101,113,117,105,114,101,32,101,120,
+ 116,101,114,110,97,108,32,102,105,108,101,115,121,115,116,101,
+ 109,32,97,99,99,101,115,115,114,22,0,0,0,78,41,6,
+ 218,26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,
+ 108,105,98,95,101,120,116,101,114,110,97,108,114,127,0,0,
+ 0,114,230,0,0,0,114,15,0,0,0,114,93,0,0,0,
+ 114,1,0,0,0,41,1,114,231,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,27,95,105,110,
+ 115,116,97,108,108,95,101,120,116,101,114,110,97,108,95,105,
+ 109,112,111,114,116,101,114,115,160,4,0,0,115,6,0,0,
+ 0,0,3,8,1,4,1,114,232,0,0,0,41,2,78,78,
+ 41,1,78,41,2,78,114,22,0,0,0,41,4,78,78,114,
+ 10,0,0,0,114,22,0,0,0,41,50,114,3,0,0,0,
+ 114,127,0,0,0,114,12,0,0,0,114,18,0,0,0,114,
+ 60,0,0,0,114,34,0,0,0,114,44,0,0,0,114,19,
+ 0,0,0,114,20,0,0,0,114,50,0,0,0,114,51,0,
+ 0,0,114,54,0,0,0,114,66,0,0,0,114,68,0,0,
+ 0,114,77,0,0,0,114,87,0,0,0,114,91,0,0,0,
+ 114,98,0,0,0,114,112,0,0,0,114,113,0,0,0,114,
+ 92,0,0,0,114,143,0,0,0,114,149,0,0,0,114,153,
+ 0,0,0,114,108,0,0,0,114,94,0,0,0,114,159,0,
+ 0,0,114,160,0,0,0,114,95,0,0,0,114,161,0,0,
+ 0,114,175,0,0,0,114,180,0,0,0,114,189,0,0,0,
+ 114,191,0,0,0,114,196,0,0,0,114,202,0,0,0,90,
+ 15,95,69,82,82,95,77,83,71,95,80,82,69,70,73,88,
+ 114,204,0,0,0,114,207,0,0,0,218,6,111,98,106,101,
+ 99,116,114,208,0,0,0,114,209,0,0,0,114,210,0,0,
+ 0,114,215,0,0,0,114,221,0,0,0,114,224,0,0,0,
+ 114,225,0,0,0,114,229,0,0,0,114,230,0,0,0,114,
+ 232,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,8,60,109,111,100,117,108,
+ 101,62,1,0,0,0,115,94,0,0,0,4,24,4,2,8,
+ 8,8,8,4,2,4,3,16,4,14,77,14,21,14,16,8,
+ 37,8,17,8,11,14,8,8,11,8,12,8,16,8,36,14,
+ 101,16,26,10,45,14,72,8,17,8,17,8,30,8,37,8,
+ 42,8,15,14,75,14,79,14,13,8,9,8,9,10,47,8,
+ 16,4,1,8,2,8,32,6,3,8,16,10,15,14,37,8,
+ 27,10,37,8,7,8,35,8,8,
};
diff --git a/contrib/tools/python3/src/Python/importlib_external.h b/contrib/tools/python3/src/Python/importlib_external.h
index aa473900a7..6d40249e9c 100644
--- a/contrib/tools/python3/src/Python/importlib_external.h
+++ b/contrib/tools/python3/src/Python/importlib_external.h
@@ -1,2825 +1,2825 @@
/* Auto-generated by Programs/_freeze_importlib.c */
-const unsigned char _Py_M__importlib_bootstrap_external[] = {
- 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,5,0,0,0,64,0,0,0,115,224,2,0,0,100,0,
- 90,0,100,1,100,2,108,1,97,1,100,1,100,2,108,2,
- 90,2,100,1,100,2,108,3,97,3,100,1,100,2,108,4,
- 90,4,100,1,100,2,108,5,90,5,116,3,106,6,100,3,
- 107,2,90,7,101,7,114,76,100,1,100,2,108,8,90,9,
- 100,1,100,2,108,10,90,10,110,8,100,1,100,2,108,11,
- 90,9,101,7,114,98,100,4,100,5,103,2,90,12,110,6,
- 100,5,103,1,90,12,101,13,100,6,100,7,132,0,101,12,
- 68,0,131,1,131,1,115,126,74,0,130,1,101,12,100,1,
- 25,0,90,14,101,15,101,12,131,1,90,16,100,8,160,17,
- 101,12,161,1,90,12,100,9,100,10,132,0,101,12,68,0,
- 131,1,90,18,100,11,90,19,100,12,90,20,101,20,101,19,
- 23,0,90,21,100,13,100,14,132,0,90,22,100,15,100,16,
- 132,0,90,23,100,17,100,18,132,0,90,24,100,19,100,20,
- 132,0,90,25,101,7,114,228,100,21,100,22,132,0,90,26,
- 110,8,100,23,100,22,132,0,90,26,100,24,100,25,132,0,
- 90,27,100,26,100,27,132,0,90,28,100,28,100,29,132,0,
- 90,29,100,30,100,31,132,0,90,30,100,32,100,33,132,0,
- 90,31,101,7,144,1,114,36,100,34,100,35,132,0,90,32,
- 110,8,100,36,100,35,132,0,90,32,100,111,100,38,100,39,
- 132,1,90,33,101,34,101,33,106,35,131,1,90,36,100,40,
- 160,37,100,41,100,42,161,2,100,43,23,0,90,38,101,39,
- 160,40,101,38,100,42,161,2,90,41,100,44,90,42,100,45,
- 90,43,100,46,103,1,90,44,100,47,103,1,90,45,101,45,
- 4,0,90,46,90,47,100,112,100,2,100,48,156,1,100,49,
- 100,50,132,3,90,48,100,51,100,52,132,0,90,49,100,53,
- 100,54,132,0,90,50,100,55,100,56,132,0,90,51,100,57,
- 100,58,132,0,90,52,100,59,100,60,132,0,90,53,100,61,
- 100,62,132,0,90,54,100,63,100,64,132,0,90,55,100,65,
- 100,66,132,0,90,56,100,67,100,68,132,0,90,57,100,113,
- 100,69,100,70,132,1,90,58,100,114,100,71,100,72,132,1,
- 90,59,100,115,100,74,100,75,132,1,90,60,100,76,100,77,
- 132,0,90,61,101,62,131,0,90,63,100,116,100,2,101,63,
- 100,78,156,2,100,79,100,80,132,3,90,64,71,0,100,81,
- 100,82,132,0,100,82,131,2,90,65,71,0,100,83,100,84,
- 132,0,100,84,131,2,90,66,71,0,100,85,100,86,132,0,
- 100,86,101,66,131,3,90,67,71,0,100,87,100,88,132,0,
- 100,88,131,2,90,68,71,0,100,89,100,90,132,0,100,90,
- 101,68,101,67,131,4,90,69,71,0,100,91,100,92,132,0,
- 100,92,101,68,101,66,131,4,90,70,103,0,90,71,71,0,
- 100,93,100,94,132,0,100,94,101,68,101,66,131,4,90,72,
- 71,0,100,95,100,96,132,0,100,96,131,2,90,73,71,0,
- 100,97,100,98,132,0,100,98,131,2,90,74,71,0,100,99,
- 100,100,132,0,100,100,131,2,90,75,71,0,100,101,100,102,
- 132,0,100,102,131,2,90,76,100,117,100,103,100,104,132,1,
- 90,77,100,105,100,106,132,0,90,78,100,107,100,108,132,0,
- 90,79,100,109,100,110,132,0,90,80,100,2,83,0,41,118,
- 97,94,1,0,0,67,111,114,101,32,105,109,112,108,101,109,
- 101,110,116,97,116,105,111,110,32,111,102,32,112,97,116,104,
- 45,98,97,115,101,100,32,105,109,112,111,114,116,46,10,10,
- 84,104,105,115,32,109,111,100,117,108,101,32,105,115,32,78,
- 79,84,32,109,101,97,110,116,32,116,111,32,98,101,32,100,
- 105,114,101,99,116,108,121,32,105,109,112,111,114,116,101,100,
- 33,32,73,116,32,104,97,115,32,98,101,101,110,32,100,101,
- 115,105,103,110,101,100,32,115,117,99,104,10,116,104,97,116,
- 32,105,116,32,99,97,110,32,98,101,32,98,111,111,116,115,
- 116,114,97,112,112,101,100,32,105,110,116,111,32,80,121,116,
- 104,111,110,32,97,115,32,116,104,101,32,105,109,112,108,101,
- 109,101,110,116,97,116,105,111,110,32,111,102,32,105,109,112,
- 111,114,116,46,32,65,115,10,115,117,99,104,32,105,116,32,
- 114,101,113,117,105,114,101,115,32,116,104,101,32,105,110,106,
- 101,99,116,105,111,110,32,111,102,32,115,112,101,99,105,102,
- 105,99,32,109,111,100,117,108,101,115,32,97,110,100,32,97,
- 116,116,114,105,98,117,116,101,115,32,105,110,32,111,114,100,
- 101,114,32,116,111,10,119,111,114,107,46,32,79,110,101,32,
- 115,104,111,117,108,100,32,117,115,101,32,105,109,112,111,114,
- 116,108,105,98,32,97,115,32,116,104,101,32,112,117,98,108,
- 105,99,45,102,97,99,105,110,103,32,118,101,114,115,105,111,
- 110,32,111,102,32,116,104,105,115,32,109,111,100,117,108,101,
- 46,10,10,233,0,0,0,0,78,90,5,119,105,110,51,50,
- 250,1,92,250,1,47,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,3,0,0,0,99,0,0,0,115,
- 26,0,0,0,124,0,93,18,125,1,116,0,124,1,131,1,
- 100,0,107,2,86,0,1,0,113,2,100,1,83,0,169,2,
- 233,1,0,0,0,78,169,1,218,3,108,101,110,169,2,218,
- 2,46,48,218,3,115,101,112,169,0,114,10,0,0,0,250,
- 38,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
- 105,98,46,95,98,111,111,116,115,116,114,97,112,95,101,120,
- 116,101,114,110,97,108,62,218,9,60,103,101,110,101,120,112,
- 114,62,43,0,0,0,243,0,0,0,0,114,12,0,0,0,
- 218,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,22,0,0,0,
- 104,0,124,0,93,14,125,1,100,0,124,1,155,0,157,2,
- 146,2,113,4,83,0,169,1,250,1,58,114,10,0,0,0,
- 169,2,114,8,0,0,0,218,1,115,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,9,60,115,101,116,99,
- 111,109,112,62,47,0,0,0,114,13,0,0,0,114,19,0,
- 0,0,41,1,218,3,119,105,110,41,2,90,6,99,121,103,
- 119,105,110,90,6,100,97,114,119,105,110,99,0,0,0,0,
- 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
- 3,0,0,0,115,60,0,0,0,116,0,106,1,160,2,116,
- 3,161,1,114,48,116,0,106,1,160,2,116,4,161,1,114,
- 30,100,1,137,0,110,4,100,2,137,0,135,0,102,1,100,
- 3,100,4,132,8,125,0,110,8,100,5,100,4,132,0,125,
- 0,124,0,83,0,41,6,78,90,12,80,89,84,72,79,78,
- 67,65,83,69,79,75,115,12,0,0,0,80,89,84,72,79,
- 78,67,65,83,69,79,75,99,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,19,0,0,0,
- 115,20,0,0,0,116,0,106,1,106,2,12,0,111,18,136,
- 0,116,3,106,4,118,0,83,0,41,1,122,94,84,114,117,
- 101,32,105,102,32,102,105,108,101,110,97,109,101,115,32,109,
- 117,115,116,32,98,101,32,99,104,101,99,107,101,100,32,99,
- 97,115,101,45,105,110,115,101,110,115,105,116,105,118,101,108,
- 121,32,97,110,100,32,105,103,110,111,114,101,32,101,110,118,
- 105,114,111,110,109,101,110,116,32,102,108,97,103,115,32,97,
- 114,101,32,110,111,116,32,115,101,116,46,41,5,218,3,115,
- 121,115,218,5,102,108,97,103,115,218,18,105,103,110,111,114,
- 101,95,101,110,118,105,114,111,110,109,101,110,116,218,3,95,
- 111,115,90,7,101,110,118,105,114,111,110,114,10,0,0,0,
- 169,1,218,3,107,101,121,114,10,0,0,0,114,11,0,0,
- 0,218,11,95,114,101,108,97,120,95,99,97,115,101,64,0,
- 0,0,115,2,0,0,0,0,2,122,37,95,109,97,107,101,
- 95,114,101,108,97,120,95,99,97,115,101,46,60,108,111,99,
- 97,108,115,62,46,95,114,101,108,97,120,95,99,97,115,101,
- 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,1,0,0,0,83,0,0,0,115,4,0,0,0,100,1,
- 83,0,41,2,122,53,84,114,117,101,32,105,102,32,102,105,
- 108,101,110,97,109,101,115,32,109,117,115,116,32,98,101,32,
- 99,104,101,99,107,101,100,32,99,97,115,101,45,105,110,115,
- 101,110,115,105,116,105,118,101,108,121,46,70,114,10,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,27,0,0,0,68,0,0,0,115,2,
- 0,0,0,0,2,41,5,114,21,0,0,0,218,8,112,108,
- 97,116,102,111,114,109,218,10,115,116,97,114,116,115,119,105,
- 116,104,218,27,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,218,
- 35,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,83,84,82,
- 95,75,69,89,41,1,114,27,0,0,0,114,10,0,0,0,
- 114,25,0,0,0,114,11,0,0,0,218,16,95,109,97,107,
- 101,95,114,101,108,97,120,95,99,97,115,101,57,0,0,0,
- 115,14,0,0,0,0,1,12,1,12,1,6,2,4,2,14,
- 4,8,3,114,32,0,0,0,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,
- 0,115,20,0,0,0,116,0,124,0,131,1,100,1,64,0,
- 160,1,100,2,100,3,161,2,83,0,41,4,122,42,67,111,
- 110,118,101,114,116,32,97,32,51,50,45,98,105,116,32,105,
- 110,116,101,103,101,114,32,116,111,32,108,105,116,116,108,101,
- 45,101,110,100,105,97,110,46,236,3,0,0,0,255,127,255,
- 127,3,0,233,4,0,0,0,218,6,108,105,116,116,108,101,
- 41,2,218,3,105,110,116,218,8,116,111,95,98,121,116,101,
- 115,41,1,218,1,120,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,12,95,112,97,99,107,95,117,105,110,
- 116,51,50,74,0,0,0,115,2,0,0,0,0,2,114,39,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,4,0,0,0,67,0,0,0,115,28,0,0,
- 0,116,0,124,0,131,1,100,1,107,2,115,16,74,0,130,
- 1,116,1,160,2,124,0,100,2,161,2,83,0,41,3,122,
- 47,67,111,110,118,101,114,116,32,52,32,98,121,116,101,115,
- 32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97,
- 110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46,
- 114,34,0,0,0,114,35,0,0,0,169,3,114,6,0,0,
- 0,114,36,0,0,0,218,10,102,114,111,109,95,98,121,116,
- 101,115,169,1,218,4,100,97,116,97,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,14,95,117,110,112,97,
- 99,107,95,117,105,110,116,51,50,79,0,0,0,115,4,0,
- 0,0,0,2,16,1,114,44,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,
- 67,0,0,0,115,28,0,0,0,116,0,124,0,131,1,100,
- 1,107,2,115,16,74,0,130,1,116,1,160,2,124,0,100,
- 2,161,2,83,0,41,3,122,47,67,111,110,118,101,114,116,
- 32,50,32,98,121,116,101,115,32,105,110,32,108,105,116,116,
- 108,101,45,101,110,100,105,97,110,32,116,111,32,97,110,32,
- 105,110,116,101,103,101,114,46,233,2,0,0,0,114,35,0,
- 0,0,114,40,0,0,0,114,42,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,14,95,117,110,
- 112,97,99,107,95,117,105,110,116,49,54,84,0,0,0,115,
- 4,0,0,0,0,2,16,1,114,46,0,0,0,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,
- 0,0,71,0,0,0,115,228,0,0,0,124,0,115,8,100,
- 1,83,0,116,0,124,0,131,1,100,2,107,2,114,28,124,
- 0,100,3,25,0,83,0,100,1,125,1,103,0,125,2,116,
- 1,116,2,106,3,124,0,131,2,68,0,93,122,92,2,125,
- 3,125,4,124,3,160,4,116,5,161,1,115,76,124,3,160,
- 6,116,5,161,1,114,102,124,3,160,7,116,8,161,1,112,
- 88,124,1,125,1,116,9,124,4,23,0,103,1,125,2,113,
- 48,124,3,160,6,100,4,161,1,114,152,124,1,160,10,161,
- 0,124,3,160,10,161,0,107,3,114,140,124,3,125,1,124,
- 4,103,1,125,2,113,170,124,2,160,11,124,4,161,1,1,
- 0,113,48,124,3,112,158,124,1,125,1,124,2,160,11,124,
- 4,161,1,1,0,113,48,100,5,100,6,132,0,124,2,68,
- 0,131,1,125,2,116,0,124,2,131,1,100,2,107,2,114,
- 214,124,2,100,3,25,0,115,214,124,1,116,9,23,0,83,
- 0,124,1,116,9,160,12,124,2,161,1,23,0,83,0,41,
- 7,250,31,82,101,112,108,97,99,101,109,101,110,116,32,102,
- 111,114,32,111,115,46,112,97,116,104,46,106,111,105,110,40,
- 41,46,114,14,0,0,0,114,4,0,0,0,114,0,0,0,
- 0,114,16,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,5,0,0,0,83,0,0,0,115,
- 26,0,0,0,103,0,124,0,93,18,125,1,124,1,114,4,
- 124,1,160,0,116,1,161,1,145,2,113,4,83,0,114,10,
- 0,0,0,169,2,218,6,114,115,116,114,105,112,218,15,112,
- 97,116,104,95,115,101,112,97,114,97,116,111,114,115,169,2,
- 114,8,0,0,0,218,1,112,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,10,60,108,105,115,116,99,111,
- 109,112,62,114,0,0,0,114,13,0,0,0,250,30,95,112,
- 97,116,104,95,106,111,105,110,46,60,108,111,99,97,108,115,
- 62,46,60,108,105,115,116,99,111,109,112,62,41,13,114,6,
- 0,0,0,218,3,109,97,112,114,24,0,0,0,218,15,95,
- 112,97,116,104,95,115,112,108,105,116,114,111,111,116,114,29,
- 0,0,0,218,14,112,97,116,104,95,115,101,112,95,116,117,
- 112,108,101,218,8,101,110,100,115,119,105,116,104,114,49,0,
- 0,0,114,50,0,0,0,218,8,112,97,116,104,95,115,101,
- 112,218,8,99,97,115,101,102,111,108,100,218,6,97,112,112,
- 101,110,100,218,4,106,111,105,110,41,5,218,10,112,97,116,
- 104,95,112,97,114,116,115,218,4,114,111,111,116,218,4,112,
- 97,116,104,90,8,110,101,119,95,114,111,111,116,218,4,116,
- 97,105,108,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,10,95,112,97,116,104,95,106,111,105,110,91,0,
- 0,0,115,42,0,0,0,0,2,4,1,4,1,12,1,8,
- 1,4,1,4,1,20,1,20,1,14,1,12,1,10,1,16,
- 3,4,1,8,2,12,2,8,1,12,1,14,1,20,2,8,
- 1,114,67,0,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,4,0,0,0,71,0,0,0,115,
- 20,0,0,0,116,0,160,1,100,1,100,2,132,0,124,0,
- 68,0,131,1,161,1,83,0,41,3,114,47,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 5,0,0,0,83,0,0,0,115,26,0,0,0,103,0,124,
- 0,93,18,125,1,124,1,114,4,124,1,160,0,116,1,161,
- 1,145,2,113,4,83,0,114,10,0,0,0,114,48,0,0,
- 0,41,2,114,8,0,0,0,218,4,112,97,114,116,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,114,53,0,
- 0,0,123,0,0,0,115,4,0,0,0,6,1,6,255,114,
- 54,0,0,0,41,2,114,59,0,0,0,114,62,0,0,0,
- 41,1,114,63,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,67,0,0,0,121,0,0,0,115,
- 6,0,0,0,0,2,10,1,2,255,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,3,
- 0,0,0,115,66,0,0,0,116,0,135,0,102,1,100,1,
- 100,2,132,8,116,1,68,0,131,1,131,1,125,1,124,1,
- 100,3,107,0,114,38,100,4,136,0,102,2,83,0,136,0,
- 100,5,124,1,133,2,25,0,136,0,124,1,100,6,23,0,
- 100,5,133,2,25,0,102,2,83,0,41,7,122,32,82,101,
- 112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,115,
- 46,112,97,116,104,46,115,112,108,105,116,40,41,46,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,24,0,0,0,124,0,93,16,
- 125,1,136,0,160,0,124,1,161,1,86,0,1,0,113,2,
- 100,0,83,0,169,1,78,41,1,218,5,114,102,105,110,100,
- 114,51,0,0,0,169,1,114,65,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,12,0,0,0,129,0,0,0,114,
- 13,0,0,0,122,30,95,112,97,116,104,95,115,112,108,105,
- 116,46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,
- 120,112,114,62,114,0,0,0,0,114,14,0,0,0,78,114,
- 4,0,0,0,41,2,218,3,109,97,120,114,50,0,0,0,
- 41,2,114,65,0,0,0,218,1,105,114,10,0,0,0,114,
- 71,0,0,0,114,11,0,0,0,218,11,95,112,97,116,104,
- 95,115,112,108,105,116,127,0,0,0,115,8,0,0,0,0,
- 2,22,1,8,1,8,1,114,74,0,0,0,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,115,10,0,0,0,116,0,160,1,124,0,
- 161,1,83,0,41,1,122,126,83,116,97,116,32,116,104,101,
- 32,112,97,116,104,46,10,10,32,32,32,32,77,97,100,101,
- 32,97,32,115,101,112,97,114,97,116,101,32,102,117,110,99,
- 116,105,111,110,32,116,111,32,109,97,107,101,32,105,116,32,
- 101,97,115,105,101,114,32,116,111,32,111,118,101,114,114,105,
- 100,101,32,105,110,32,101,120,112,101,114,105,109,101,110,116,
- 115,10,32,32,32,32,40,101,46,103,46,32,99,97,99,104,
- 101,32,115,116,97,116,32,114,101,115,117,108,116,115,41,46,
- 10,10,32,32,32,32,41,2,114,24,0,0,0,90,4,115,
- 116,97,116,114,71,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,10,95,112,97,116,104,95,115,
- 116,97,116,135,0,0,0,115,2,0,0,0,0,7,114,75,
- 0,0,0,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,48,0,0,
- 0,122,12,116,0,124,0,131,1,125,2,87,0,110,20,4,
- 0,116,1,121,32,1,0,1,0,1,0,89,0,100,1,83,
- 0,48,0,124,2,106,2,100,2,64,0,124,1,107,2,83,
- 0,41,3,122,49,84,101,115,116,32,119,104,101,116,104,101,
- 114,32,116,104,101,32,112,97,116,104,32,105,115,32,116,104,
- 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,101,
- 32,116,121,112,101,46,70,105,0,240,0,0,41,3,114,75,
- 0,0,0,218,7,79,83,69,114,114,111,114,218,7,115,116,
- 95,109,111,100,101,41,3,114,65,0,0,0,218,4,109,111,
- 100,101,90,9,115,116,97,116,95,105,110,102,111,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,18,95,112,
- 97,116,104,95,105,115,95,109,111,100,101,95,116,121,112,101,
- 145,0,0,0,115,10,0,0,0,0,2,2,1,12,1,12,
- 1,8,1,114,79,0,0,0,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,115,10,0,0,0,116,0,124,0,100,1,131,2,83,0,
- 41,2,122,31,82,101,112,108,97,99,101,109,101,110,116,32,
- 102,111,114,32,111,115,46,112,97,116,104,46,105,115,102,105,
- 108,101,46,105,0,128,0,0,41,1,114,79,0,0,0,114,
- 71,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,12,95,112,97,116,104,95,105,115,102,105,108,
- 101,154,0,0,0,115,2,0,0,0,0,2,114,80,0,0,
- 0,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,115,22,0,0,0,124,
- 0,115,12,116,0,160,1,161,0,125,0,116,2,124,0,100,
- 1,131,2,83,0,41,2,122,30,82,101,112,108,97,99,101,
- 109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,104,
- 46,105,115,100,105,114,46,105,0,64,0,0,41,3,114,24,
- 0,0,0,218,6,103,101,116,99,119,100,114,79,0,0,0,
- 114,71,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,11,95,112,97,116,104,95,105,115,100,105,
- 114,159,0,0,0,115,6,0,0,0,0,2,4,1,8,1,
- 114,82,0,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,62,
- 0,0,0,124,0,115,8,100,1,83,0,116,0,160,1,124,
- 0,161,1,100,2,25,0,160,2,100,3,100,4,161,2,125,
- 1,116,3,124,1,131,1,100,5,107,4,111,60,124,1,160,
- 4,100,6,161,1,112,60,124,1,160,5,100,4,161,1,83,
- 0,41,7,250,30,82,101,112,108,97,99,101,109,101,110,116,
- 32,102,111,114,32,111,115,46,112,97,116,104,46,105,115,97,
- 98,115,46,70,114,0,0,0,0,114,2,0,0,0,114,1,
- 0,0,0,114,4,0,0,0,122,2,92,92,41,6,114,24,
- 0,0,0,114,56,0,0,0,218,7,114,101,112,108,97,99,
- 101,114,6,0,0,0,114,29,0,0,0,114,58,0,0,0,
- 41,2,114,65,0,0,0,114,64,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,11,95,112,97,
- 116,104,95,105,115,97,98,115,167,0,0,0,115,8,0,0,
- 0,0,2,4,1,4,1,22,1,114,85,0,0,0,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,115,10,0,0,0,124,0,160,0,
- 116,1,161,1,83,0,41,1,114,83,0,0,0,41,2,114,
- 29,0,0,0,114,50,0,0,0,114,71,0,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,114,85,0,
- 0,0,175,0,0,0,115,2,0,0,0,0,2,233,182,1,
- 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,6,
- 0,0,0,11,0,0,0,67,0,0,0,115,178,0,0,0,
- 100,1,160,0,124,0,116,1,124,0,131,1,161,2,125,3,
- 116,2,160,3,124,3,116,2,106,4,116,2,106,5,66,0,
- 116,2,106,6,66,0,124,2,100,2,64,0,161,3,125,4,
- 122,70,116,7,160,8,124,4,100,3,161,2,143,26,125,5,
- 124,5,160,9,124,1,161,1,1,0,87,0,100,4,4,0,
- 4,0,131,3,1,0,110,16,49,0,115,94,48,0,1,0,
- 1,0,1,0,89,0,1,0,116,2,160,10,124,3,124,0,
- 161,2,1,0,87,0,110,54,4,0,116,11,121,172,1,0,
- 1,0,1,0,122,14,116,2,160,12,124,3,161,1,1,0,
- 87,0,110,18,4,0,116,11,121,164,1,0,1,0,1,0,
- 89,0,110,2,48,0,130,0,89,0,110,2,48,0,100,4,
- 83,0,41,5,122,162,66,101,115,116,45,101,102,102,111,114,
- 116,32,102,117,110,99,116,105,111,110,32,116,111,32,119,114,
- 105,116,101,32,100,97,116,97,32,116,111,32,97,32,112,97,
- 116,104,32,97,116,111,109,105,99,97,108,108,121,46,10,32,
- 32,32,32,66,101,32,112,114,101,112,97,114,101,100,32,116,
- 111,32,104,97,110,100,108,101,32,97,32,70,105,108,101,69,
- 120,105,115,116,115,69,114,114,111,114,32,105,102,32,99,111,
- 110,99,117,114,114,101,110,116,32,119,114,105,116,105,110,103,
- 32,111,102,32,116,104,101,10,32,32,32,32,116,101,109,112,
- 111,114,97,114,121,32,102,105,108,101,32,105,115,32,97,116,
- 116,101,109,112,116,101,100,46,250,5,123,125,46,123,125,114,
- 86,0,0,0,90,2,119,98,78,41,13,218,6,102,111,114,
- 109,97,116,218,2,105,100,114,24,0,0,0,90,4,111,112,
- 101,110,90,6,79,95,69,88,67,76,90,7,79,95,67,82,
- 69,65,84,90,8,79,95,87,82,79,78,76,89,218,3,95,
- 105,111,218,6,70,105,108,101,73,79,218,5,119,114,105,116,
- 101,114,84,0,0,0,114,76,0,0,0,90,6,117,110,108,
- 105,110,107,41,6,114,65,0,0,0,114,43,0,0,0,114,
- 78,0,0,0,90,8,112,97,116,104,95,116,109,112,90,2,
- 102,100,218,4,102,105,108,101,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,13,95,119,114,105,116,101,95,
- 97,116,111,109,105,99,180,0,0,0,115,28,0,0,0,0,
- 5,16,1,6,1,22,255,4,2,2,3,14,1,40,1,16,
- 1,12,1,2,1,14,1,12,1,6,1,114,94,0,0,0,
- 105,97,13,0,0,114,45,0,0,0,114,35,0,0,0,115,
- 2,0,0,0,13,10,90,11,95,95,112,121,99,97,99,104,
- 101,95,95,122,4,111,112,116,45,122,3,46,112,121,122,4,
- 46,112,121,99,41,1,218,12,111,112,116,105,109,105,122,97,
- 116,105,111,110,99,2,0,0,0,0,0,0,0,1,0,0,
- 0,12,0,0,0,5,0,0,0,67,0,0,0,115,88,1,
- 0,0,124,1,100,1,117,1,114,52,116,0,160,1,100,2,
- 116,2,161,2,1,0,124,2,100,1,117,1,114,40,100,3,
- 125,3,116,3,124,3,131,1,130,1,124,1,114,48,100,4,
- 110,2,100,5,125,2,116,4,160,5,124,0,161,1,125,0,
- 116,6,124,0,131,1,92,2,125,4,125,5,124,5,160,7,
- 100,6,161,1,92,3,125,6,125,7,125,8,116,8,106,9,
- 106,10,125,9,124,9,100,1,117,0,114,114,116,11,100,7,
- 131,1,130,1,100,4,160,12,124,6,114,126,124,6,110,2,
- 124,8,124,7,124,9,103,3,161,1,125,10,124,2,100,1,
- 117,0,114,172,116,8,106,13,106,14,100,8,107,2,114,164,
- 100,4,125,2,110,8,116,8,106,13,106,14,125,2,116,15,
- 124,2,131,1,125,2,124,2,100,4,107,3,114,224,124,2,
- 160,16,161,0,115,210,116,17,100,9,160,18,124,2,161,1,
- 131,1,130,1,100,10,160,18,124,10,116,19,124,2,161,3,
- 125,10,124,10,116,20,100,8,25,0,23,0,125,11,116,8,
- 106,21,100,1,117,1,144,1,114,76,116,22,124,4,131,1,
- 144,1,115,16,116,23,116,4,160,24,161,0,124,4,131,2,
- 125,4,124,4,100,5,25,0,100,11,107,2,144,1,114,56,
- 124,4,100,8,25,0,116,25,118,1,144,1,114,56,124,4,
- 100,12,100,1,133,2,25,0,125,4,116,23,116,8,106,21,
- 124,4,160,26,116,25,161,1,124,11,131,3,83,0,116,23,
- 124,4,116,27,124,11,131,3,83,0,41,13,97,254,2,0,
- 0,71,105,118,101,110,32,116,104,101,32,112,97,116,104,32,
- 116,111,32,97,32,46,112,121,32,102,105,108,101,44,32,114,
- 101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,
- 111,32,105,116,115,32,46,112,121,99,32,102,105,108,101,46,
- 10,10,32,32,32,32,84,104,101,32,46,112,121,32,102,105,
- 108,101,32,100,111,101,115,32,110,111,116,32,110,101,101,100,
- 32,116,111,32,101,120,105,115,116,59,32,116,104,105,115,32,
- 115,105,109,112,108,121,32,114,101,116,117,114,110,115,32,116,
- 104,101,32,112,97,116,104,32,116,111,32,116,104,101,10,32,
- 32,32,32,46,112,121,99,32,102,105,108,101,32,99,97,108,
- 99,117,108,97,116,101,100,32,97,115,32,105,102,32,116,104,
- 101,32,46,112,121,32,102,105,108,101,32,119,101,114,101,32,
- 105,109,112,111,114,116,101,100,46,10,10,32,32,32,32,84,
- 104,101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,
- 39,32,112,97,114,97,109,101,116,101,114,32,99,111,110,116,
- 114,111,108,115,32,116,104,101,32,112,114,101,115,117,109,101,
- 100,32,111,112,116,105,109,105,122,97,116,105,111,110,32,108,
- 101,118,101,108,32,111,102,10,32,32,32,32,116,104,101,32,
- 98,121,116,101,99,111,100,101,32,102,105,108,101,46,32,73,
- 102,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
- 32,105,115,32,110,111,116,32,78,111,110,101,44,32,116,104,
- 101,32,115,116,114,105,110,103,32,114,101,112,114,101,115,101,
- 110,116,97,116,105,111,110,10,32,32,32,32,111,102,32,116,
- 104,101,32,97,114,103,117,109,101,110,116,32,105,115,32,116,
- 97,107,101,110,32,97,110,100,32,118,101,114,105,102,105,101,
- 100,32,116,111,32,98,101,32,97,108,112,104,97,110,117,109,
- 101,114,105,99,32,40,101,108,115,101,32,86,97,108,117,101,
- 69,114,114,111,114,10,32,32,32,32,105,115,32,114,97,105,
- 115,101,100,41,46,10,10,32,32,32,32,84,104,101,32,100,
- 101,98,117,103,95,111,118,101,114,114,105,100,101,32,112,97,
- 114,97,109,101,116,101,114,32,105,115,32,100,101,112,114,101,
- 99,97,116,101,100,46,32,73,102,32,100,101,98,117,103,95,
- 111,118,101,114,114,105,100,101,32,105,115,32,110,111,116,32,
- 78,111,110,101,44,10,32,32,32,32,97,32,84,114,117,101,
- 32,118,97,108,117,101,32,105,115,32,116,104,101,32,115,97,
- 109,101,32,97,115,32,115,101,116,116,105,110,103,32,39,111,
- 112,116,105,109,105,122,97,116,105,111,110,39,32,116,111,32,
- 116,104,101,32,101,109,112,116,121,32,115,116,114,105,110,103,
- 10,32,32,32,32,119,104,105,108,101,32,97,32,70,97,108,
- 115,101,32,118,97,108,117,101,32,105,115,32,101,113,117,105,
- 118,97,108,101,110,116,32,116,111,32,115,101,116,116,105,110,
- 103,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
- 32,116,111,32,39,49,39,46,10,10,32,32,32,32,73,102,
- 32,115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,
- 105,111,110,46,99,97,99,104,101,95,116,97,103,32,105,115,
- 32,78,111,110,101,32,116,104,101,110,32,78,111,116,73,109,
- 112,108,101,109,101,110,116,101,100,69,114,114,111,114,32,105,
- 115,32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,
- 122,70,116,104,101,32,100,101,98,117,103,95,111,118,101,114,
- 114,105,100,101,32,112,97,114,97,109,101,116,101,114,32,105,
- 115,32,100,101,112,114,101,99,97,116,101,100,59,32,117,115,
- 101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
- 32,105,110,115,116,101,97,100,122,50,100,101,98,117,103,95,
- 111,118,101,114,114,105,100,101,32,111,114,32,111,112,116,105,
- 109,105,122,97,116,105,111,110,32,109,117,115,116,32,98,101,
- 32,115,101,116,32,116,111,32,78,111,110,101,114,14,0,0,
- 0,114,4,0,0,0,218,1,46,250,36,115,121,115,46,105,
- 109,112,108,101,109,101,110,116,97,116,105,111,110,46,99,97,
- 99,104,101,95,116,97,103,32,105,115,32,78,111,110,101,114,
- 0,0,0,0,122,24,123,33,114,125,32,105,115,32,110,111,
- 116,32,97,108,112,104,97,110,117,109,101,114,105,99,122,7,
- 123,125,46,123,125,123,125,114,16,0,0,0,114,45,0,0,
- 0,41,28,218,9,95,119,97,114,110,105,110,103,115,218,4,
- 119,97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,
- 110,87,97,114,110,105,110,103,218,9,84,121,112,101,69,114,
- 114,111,114,114,24,0,0,0,218,6,102,115,112,97,116,104,
- 114,74,0,0,0,218,10,114,112,97,114,116,105,116,105,111,
- 110,114,21,0,0,0,218,14,105,109,112,108,101,109,101,110,
- 116,97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,
- 103,218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,
- 100,69,114,114,111,114,114,62,0,0,0,114,22,0,0,0,
- 218,8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,
- 7,105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,
- 114,114,111,114,114,88,0,0,0,218,4,95,79,80,84,218,
- 17,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,
- 69,83,218,14,112,121,99,97,99,104,101,95,112,114,101,102,
- 105,120,114,85,0,0,0,114,67,0,0,0,114,81,0,0,
- 0,114,50,0,0,0,218,6,108,115,116,114,105,112,218,8,
- 95,80,89,67,65,67,72,69,41,12,114,65,0,0,0,90,
- 14,100,101,98,117,103,95,111,118,101,114,114,105,100,101,114,
- 95,0,0,0,218,7,109,101,115,115,97,103,101,218,4,104,
- 101,97,100,114,66,0,0,0,90,4,98,97,115,101,114,9,
- 0,0,0,218,4,114,101,115,116,90,3,116,97,103,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,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,17,99,97,99,104,101,95,
- 102,114,111,109,95,115,111,117,114,99,101,105,1,0,0,115,
- 72,0,0,0,0,18,8,1,6,1,2,255,4,2,8,1,
- 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,2,8,1,8,1,8,1,
- 8,1,14,1,14,1,12,1,12,9,10,1,14,5,28,1,
- 12,4,2,1,4,1,8,1,2,253,4,5,114,120,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,10,0,
- 0,0,5,0,0,0,67,0,0,0,115,46,1,0,0,116,
- 0,106,1,106,2,100,1,117,0,114,20,116,3,100,2,131,
- 1,130,1,116,4,160,5,124,0,161,1,125,0,116,6,124,
- 0,131,1,92,2,125,1,125,2,100,3,125,3,116,0,106,
- 7,100,1,117,1,114,102,116,0,106,7,160,8,116,9,161,
- 1,125,4,124,1,160,10,124,4,116,11,23,0,161,1,114,
- 102,124,1,116,12,124,4,131,1,100,1,133,2,25,0,125,
- 1,100,4,125,3,124,3,115,144,116,6,124,1,131,1,92,
- 2,125,1,125,5,124,5,116,13,107,3,114,144,116,14,116,
- 13,155,0,100,5,124,0,155,2,157,3,131,1,130,1,124,
- 2,160,15,100,6,161,1,125,6,124,6,100,7,118,1,114,
- 178,116,14,100,8,124,2,155,2,157,2,131,1,130,1,110,
- 92,124,6,100,9,107,2,144,1,114,14,124,2,160,16,100,
- 6,100,10,161,2,100,11,25,0,125,7,124,7,160,10,116,
- 17,161,1,115,228,116,14,100,12,116,17,155,2,157,2,131,
- 1,130,1,124,7,116,12,116,17,131,1,100,1,133,2,25,
- 0,125,8,124,8,160,18,161,0,144,1,115,14,116,14,100,
- 13,124,7,155,2,100,14,157,3,131,1,130,1,124,2,160,
- 19,100,6,161,1,100,15,25,0,125,9,116,20,124,1,124,
- 9,116,21,100,15,25,0,23,0,131,2,83,0,41,16,97,
- 110,1,0,0,71,105,118,101,110,32,116,104,101,32,112,97,
- 116,104,32,116,111,32,97,32,46,112,121,99,46,32,102,105,
- 108,101,44,32,114,101,116,117,114,110,32,116,104,101,32,112,
- 97,116,104,32,116,111,32,105,116,115,32,46,112,121,32,102,
- 105,108,101,46,10,10,32,32,32,32,84,104,101,32,46,112,
- 121,99,32,102,105,108,101,32,100,111,101,115,32,110,111,116,
- 32,110,101,101,100,32,116,111,32,101,120,105,115,116,59,32,
- 116,104,105,115,32,115,105,109,112,108,121,32,114,101,116,117,
- 114,110,115,32,116,104,101,32,112,97,116,104,32,116,111,10,
- 32,32,32,32,116,104,101,32,46,112,121,32,102,105,108,101,
- 32,99,97,108,99,117,108,97,116,101,100,32,116,111,32,99,
- 111,114,114,101,115,112,111,110,100,32,116,111,32,116,104,101,
- 32,46,112,121,99,32,102,105,108,101,46,32,32,73,102,32,
- 112,97,116,104,32,100,111,101,115,10,32,32,32,32,110,111,
- 116,32,99,111,110,102,111,114,109,32,116,111,32,80,69,80,
- 32,51,49,52,55,47,52,56,56,32,102,111,114,109,97,116,
- 44,32,86,97,108,117,101,69,114,114,111,114,32,119,105,108,
- 108,32,98,101,32,114,97,105,115,101,100,46,32,73,102,10,
- 32,32,32,32,115,121,115,46,105,109,112,108,101,109,101,110,
- 116,97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,
- 32,105,115,32,78,111,110,101,32,116,104,101,110,32,78,111,
- 116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,
- 114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,
- 32,32,78,114,97,0,0,0,70,84,122,31,32,110,111,116,
- 32,98,111,116,116,111,109,45,108,101,118,101,108,32,100,105,
- 114,101,99,116,111,114,121,32,105,110,32,114,96,0,0,0,
- 62,2,0,0,0,114,45,0,0,0,233,3,0,0,0,122,
- 29,101,120,112,101,99,116,101,100,32,111,110,108,121,32,50,
- 32,111,114,32,51,32,100,111,116,115,32,105,110,32,114,121,
- 0,0,0,114,45,0,0,0,233,254,255,255,255,122,53,111,
- 112,116,105,109,105,122,97,116,105,111,110,32,112,111,114,116,
- 105,111,110,32,111,102,32,102,105,108,101,110,97,109,101,32,
- 100,111,101,115,32,110,111,116,32,115,116,97,114,116,32,119,
- 105,116,104,32,122,19,111,112,116,105,109,105,122,97,116,105,
- 111,110,32,108,101,118,101,108,32,122,29,32,105,115,32,110,
- 111,116,32,97,110,32,97,108,112,104,97,110,117,109,101,114,
- 105,99,32,118,97,108,117,101,114,0,0,0,0,41,22,114,
- 21,0,0,0,114,104,0,0,0,114,105,0,0,0,114,106,
- 0,0,0,114,24,0,0,0,114,102,0,0,0,114,74,0,
- 0,0,114,113,0,0,0,114,49,0,0,0,114,50,0,0,
- 0,114,29,0,0,0,114,59,0,0,0,114,6,0,0,0,
- 114,115,0,0,0,114,110,0,0,0,218,5,99,111,117,110,
- 116,218,6,114,115,112,108,105,116,114,111,0,0,0,114,109,
- 0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,67,
- 0,0,0,218,15,83,79,85,82,67,69,95,83,85,70,70,
- 73,88,69,83,41,10,114,65,0,0,0,114,117,0,0,0,
- 90,16,112,121,99,97,99,104,101,95,102,105,108,101,110,97,
- 109,101,90,23,102,111,117,110,100,95,105,110,95,112,121,99,
- 97,99,104,101,95,112,114,101,102,105,120,90,13,115,116,114,
- 105,112,112,101,100,95,112,97,116,104,90,7,112,121,99,97,
- 99,104,101,90,9,100,111,116,95,99,111,117,110,116,114,95,
- 0,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,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,17,115,111,
- 117,114,99,101,95,102,114,111,109,95,99,97,99,104,101,176,
- 1,0,0,115,60,0,0,0,0,9,12,1,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,255,8,2,10,1,8,1,16,1,
- 10,1,16,1,10,1,4,1,2,255,8,2,16,1,10,1,
- 16,2,14,1,114,127,0,0,0,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,5,0,0,0,9,0,0,0,67,0,
- 0,0,115,124,0,0,0,116,0,124,0,131,1,100,1,107,
- 2,114,16,100,2,83,0,124,0,160,1,100,3,161,1,92,
- 3,125,1,125,2,125,3,124,1,114,56,124,3,160,2,161,
- 0,100,4,100,5,133,2,25,0,100,6,107,3,114,60,124,
- 0,83,0,122,12,116,3,124,0,131,1,125,4,87,0,110,
- 34,4,0,116,4,116,5,102,2,121,106,1,0,1,0,1,
- 0,124,0,100,2,100,5,133,2,25,0,125,4,89,0,110,
- 2,48,0,116,6,124,4,131,1,114,120,124,4,83,0,124,
- 0,83,0,41,7,122,188,67,111,110,118,101,114,116,32,97,
- 32,98,121,116,101,99,111,100,101,32,102,105,108,101,32,112,
- 97,116,104,32,116,111,32,97,32,115,111,117,114,99,101,32,
- 112,97,116,104,32,40,105,102,32,112,111,115,115,105,98,108,
- 101,41,46,10,10,32,32,32,32,84,104,105,115,32,102,117,
- 110,99,116,105,111,110,32,101,120,105,115,116,115,32,112,117,
- 114,101,108,121,32,102,111,114,32,98,97,99,107,119,97,114,
- 100,115,45,99,111,109,112,97,116,105,98,105,108,105,116,121,
- 32,102,111,114,10,32,32,32,32,80,121,73,109,112,111,114,
- 116,95,69,120,101,99,67,111,100,101,77,111,100,117,108,101,
- 87,105,116,104,70,105,108,101,110,97,109,101,115,40,41,32,
- 105,110,32,116,104,101,32,67,32,65,80,73,46,10,10,32,
- 32,32,32,114,0,0,0,0,78,114,96,0,0,0,233,253,
- 255,255,255,233,255,255,255,255,90,2,112,121,41,7,114,6,
- 0,0,0,114,103,0,0,0,218,5,108,111,119,101,114,114,
- 127,0,0,0,114,106,0,0,0,114,110,0,0,0,114,80,
- 0,0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,
- 112,97,116,104,114,118,0,0,0,218,1,95,90,9,101,120,
- 116,101,110,115,105,111,110,218,11,115,111,117,114,99,101,95,
- 112,97,116,104,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,15,95,103,101,116,95,115,111,117,114,99,101,
- 102,105,108,101,216,1,0,0,115,20,0,0,0,0,7,12,
- 1,4,1,16,1,24,1,4,1,2,1,12,1,16,1,18,
- 1,114,134,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,8,0,0,0,67,0,0,0,115,
- 72,0,0,0,124,0,160,0,116,1,116,2,131,1,161,1,
- 114,46,122,10,116,3,124,0,131,1,87,0,83,0,4,0,
- 116,4,121,42,1,0,1,0,1,0,89,0,113,68,48,0,
- 110,22,124,0,160,0,116,1,116,5,131,1,161,1,114,64,
- 124,0,83,0,100,0,83,0,100,0,83,0,114,69,0,0,
- 0,41,6,114,58,0,0,0,218,5,116,117,112,108,101,114,
- 126,0,0,0,114,120,0,0,0,114,106,0,0,0,114,112,
- 0,0,0,41,1,114,119,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,11,95,103,101,116,95,
- 99,97,99,104,101,100,235,1,0,0,115,16,0,0,0,0,
- 1,14,1,2,1,10,1,12,1,8,1,14,1,4,2,114,
- 136,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,8,0,0,0,67,0,0,0,115,50,0,
- 0,0,122,14,116,0,124,0,131,1,106,1,125,1,87,0,
- 110,22,4,0,116,2,121,36,1,0,1,0,1,0,100,1,
- 125,1,89,0,110,2,48,0,124,1,100,2,79,0,125,1,
- 124,1,83,0,41,3,122,51,67,97,108,99,117,108,97,116,
- 101,32,116,104,101,32,109,111,100,101,32,112,101,114,109,105,
- 115,115,105,111,110,115,32,102,111,114,32,97,32,98,121,116,
- 101,99,111,100,101,32,102,105,108,101,46,114,86,0,0,0,
- 233,128,0,0,0,41,3,114,75,0,0,0,114,77,0,0,
- 0,114,76,0,0,0,41,2,114,65,0,0,0,114,78,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,10,95,99,97,108,99,95,109,111,100,101,247,1,0,
- 0,115,12,0,0,0,0,2,2,1,14,1,12,1,10,3,
- 8,1,114,138,0,0,0,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,3,0,0,0,8,0,0,0,3,0,0,0,
- 115,66,0,0,0,100,6,135,0,102,1,100,2,100,3,132,
- 9,125,1,122,10,116,0,106,1,125,2,87,0,110,26,4,
- 0,116,2,121,50,1,0,1,0,1,0,100,4,100,5,132,
- 0,125,2,89,0,110,2,48,0,124,2,124,1,136,0,131,
- 2,1,0,124,1,83,0,41,7,122,252,68,101,99,111,114,
- 97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,
- 104,97,116,32,116,104,101,32,109,111,100,117,108,101,32,98,
- 101,105,110,103,32,114,101,113,117,101,115,116,101,100,32,109,
- 97,116,99,104,101,115,32,116,104,101,32,111,110,101,32,116,
- 104,101,10,32,32,32,32,108,111,97,100,101,114,32,99,97,
- 110,32,104,97,110,100,108,101,46,10,10,32,32,32,32,84,
- 104,101,32,102,105,114,115,116,32,97,114,103,117,109,101,110,
- 116,32,40,115,101,108,102,41,32,109,117,115,116,32,100,101,
- 102,105,110,101,32,95,110,97,109,101,32,119,104,105,99,104,
- 32,116,104,101,32,115,101,99,111,110,100,32,97,114,103,117,
- 109,101,110,116,32,105,115,10,32,32,32,32,99,111,109,112,
- 97,114,101,100,32,97,103,97,105,110,115,116,46,32,73,102,
- 32,116,104,101,32,99,111,109,112,97,114,105,115,111,110,32,
- 102,97,105,108,115,32,116,104,101,110,32,73,109,112,111,114,
- 116,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,
- 46,10,10,32,32,32,32,78,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,4,0,0,0,4,0,0,0,31,0,0,
- 0,115,72,0,0,0,124,1,100,0,117,0,114,16,124,0,
- 106,0,125,1,110,32,124,0,106,0,124,1,107,3,114,48,
- 116,1,100,1,124,0,106,0,124,1,102,2,22,0,124,1,
- 100,2,141,2,130,1,136,0,124,0,124,1,103,2,124,2,
- 162,1,82,0,105,0,124,3,164,1,142,1,83,0,41,3,
- 78,122,30,108,111,97,100,101,114,32,102,111,114,32,37,115,
- 32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,
- 115,169,1,218,4,110,97,109,101,41,2,114,140,0,0,0,
- 218,11,73,109,112,111,114,116,69,114,114,111,114,41,4,218,
- 4,115,101,108,102,114,140,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,10,0,0,0,114,11,0,0,0,218,19,95,99,
- 104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,
- 114,11,2,0,0,115,18,0,0,0,0,1,8,1,8,1,
- 10,1,4,1,8,255,2,1,2,255,6,2,122,40,95,99,
- 104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,
- 115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,
- 114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,115,
- 56,0,0,0,100,1,68,0,93,32,125,2,116,0,124,1,
- 124,2,131,2,114,4,116,1,124,0,124,2,116,2,124,1,
- 124,2,131,2,131,3,1,0,113,4,124,0,106,3,160,4,
- 124,1,106,3,161,1,1,0,100,0,83,0,41,2,78,41,
- 4,218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,
- 95,110,97,109,101,95,95,218,12,95,95,113,117,97,108,110,
- 97,109,101,95,95,218,7,95,95,100,111,99,95,95,41,5,
- 218,7,104,97,115,97,116,116,114,218,7,115,101,116,97,116,
- 116,114,218,7,103,101,116,97,116,116,114,218,8,95,95,100,
- 105,99,116,95,95,218,6,117,112,100,97,116,101,41,3,90,
- 3,110,101,119,90,3,111,108,100,114,84,0,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,218,5,95,
- 119,114,97,112,22,2,0,0,115,8,0,0,0,0,1,8,
- 1,10,1,20,1,122,26,95,99,104,101,99,107,95,110,97,
- 109,101,46,60,108,111,99,97,108,115,62,46,95,119,114,97,
- 112,41,1,78,41,3,218,10,95,98,111,111,116,115,116,114,
- 97,112,114,157,0,0,0,218,9,78,97,109,101,69,114,114,
- 111,114,41,3,114,146,0,0,0,114,147,0,0,0,114,157,
- 0,0,0,114,10,0,0,0,114,145,0,0,0,114,11,0,
- 0,0,218,11,95,99,104,101,99,107,95,110,97,109,101,3,
- 2,0,0,115,14,0,0,0,0,8,14,7,2,1,10,1,
- 12,2,14,5,10,1,114,160,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,0,124,0,160,0,124,1,161,
- 1,92,2,125,2,125,3,124,2,100,1,117,0,114,56,116,
- 1,124,3,131,1,114,56,100,2,125,4,116,2,160,3,124,
- 4,160,4,124,3,100,3,25,0,161,1,116,5,161,2,1,
- 0,124,2,83,0,41,4,122,155,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,32,98,121,32,100,101,108,101,103,97,
- 116,105,110,103,32,116,111,10,32,32,32,32,115,101,108,102,
- 46,102,105,110,100,95,108,111,97,100,101,114,40,41,46,10,
- 10,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,32,105,
- 110,32,102,97,118,111,114,32,111,102,32,102,105,110,100,101,
- 114,46,102,105,110,100,95,115,112,101,99,40,41,46,10,10,
- 32,32,32,32,78,122,44,78,111,116,32,105,109,112,111,114,
- 116,105,110,103,32,100,105,114,101,99,116,111,114,121,32,123,
- 125,58,32,109,105,115,115,105,110,103,32,95,95,105,110,105,
- 116,95,95,114,0,0,0,0,41,6,218,11,102,105,110,100,
- 95,108,111,97,100,101,114,114,6,0,0,0,114,98,0,0,
- 0,114,99,0,0,0,114,88,0,0,0,218,13,73,109,112,
- 111,114,116,87,97,114,110,105,110,103,41,5,114,142,0,0,
- 0,218,8,102,117,108,108,110,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,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,17,95,102,105,110,100,95,109,111,100,117,108,101,95,
- 115,104,105,109,31,2,0,0,115,10,0,0,0,0,10,14,
- 1,16,1,4,1,22,1,114,167,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,166,0,0,0,124,0,100,1,100,2,
- 133,2,25,0,125,3,124,3,116,0,107,3,114,64,100,3,
- 124,1,155,2,100,4,124,3,155,2,157,4,125,4,116,1,
- 160,2,100,5,124,4,161,2,1,0,116,3,124,4,102,1,
- 105,0,124,2,164,1,142,1,130,1,116,4,124,0,131,1,
- 100,6,107,0,114,106,100,7,124,1,155,2,157,2,125,4,
- 116,1,160,2,100,5,124,4,161,2,1,0,116,5,124,4,
- 131,1,130,1,116,6,124,0,100,2,100,8,133,2,25,0,
- 131,1,125,5,124,5,100,9,64,0,114,162,100,10,124,5,
- 155,2,100,11,124,1,155,2,157,4,125,4,116,3,124,4,
- 102,1,105,0,124,2,164,1,142,1,130,1,124,5,83,0,
- 41,12,97,84,2,0,0,80,101,114,102,111,114,109,32,98,
- 97,115,105,99,32,118,97,108,105,100,105,116,121,32,99,104,
- 101,99,107,105,110,103,32,111,102,32,97,32,112,121,99,32,
- 104,101,97,100,101,114,32,97,110,100,32,114,101,116,117,114,
- 110,32,116,104,101,32,102,108,97,103,115,32,102,105,101,108,
- 100,44,10,32,32,32,32,119,104,105,99,104,32,100,101,116,
- 101,114,109,105,110,101,115,32,104,111,119,32,116,104,101,32,
- 112,121,99,32,115,104,111,117,108,100,32,98,101,32,102,117,
- 114,116,104,101,114,32,118,97,108,105,100,97,116,101,100,32,
- 97,103,97,105,110,115,116,32,116,104,101,32,115,111,117,114,
- 99,101,46,10,10,32,32,32,32,42,100,97,116,97,42,32,
- 105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,
- 111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,
- 32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,
- 32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,
- 32,32,114,101,113,117,105,114,101,100,44,32,116,104,111,117,
- 103,104,46,41,10,10,32,32,32,32,42,110,97,109,101,42,
- 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32,
- 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,
- 32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,115,
- 32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,110,
- 103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,116,
- 97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,105,
- 111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,32,
- 73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,105,
- 116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,32,
- 32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,103,
- 105,110,103,46,10,10,32,32,32,32,73,109,112,111,114,116,
- 69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,32,
- 119,104,101,110,32,116,104,101,32,109,97,103,105,99,32,110,
- 117,109,98,101,114,32,105,115,32,105,110,99,111,114,114,101,
- 99,116,32,111,114,32,119,104,101,110,32,116,104,101,32,102,
- 108,97,103,115,10,32,32,32,32,102,105,101,108,100,32,105,
- 115,32,105,110,118,97,108,105,100,46,32,69,79,70,69,114,
- 114,111,114,32,105,115,32,114,97,105,115,101,100,32,119,104,
- 101,110,32,116,104,101,32,100,97,116,97,32,105,115,32,102,
- 111,117,110,100,32,116,111,32,98,101,32,116,114,117,110,99,
- 97,116,101,100,46,10,10,32,32,32,32,78,114,34,0,0,
- 0,122,20,98,97,100,32,109,97,103,105,99,32,110,117,109,
- 98,101,114,32,105,110,32,122,2,58,32,250,2,123,125,233,
- 16,0,0,0,122,40,114,101,97,99,104,101,100,32,69,79,
- 70,32,119,104,105,108,101,32,114,101,97,100,105,110,103,32,
- 112,121,99,32,104,101,97,100,101,114,32,111,102,32,233,8,
- 0,0,0,233,252,255,255,255,122,14,105,110,118,97,108,105,
- 100,32,102,108,97,103,115,32,122,4,32,105,110,32,41,7,
- 218,12,77,65,71,73,67,95,78,85,77,66,69,82,114,158,
- 0,0,0,218,16,95,118,101,114,98,111,115,101,95,109,101,
- 115,115,97,103,101,114,141,0,0,0,114,6,0,0,0,218,
- 8,69,79,70,69,114,114,111,114,114,44,0,0,0,41,6,
- 114,43,0,0,0,114,140,0,0,0,218,11,101,120,99,95,
- 100,101,116,97,105,108,115,90,5,109,97,103,105,99,114,116,
- 0,0,0,114,22,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,13,95,99,108,97,115,115,105,
- 102,121,95,112,121,99,48,2,0,0,115,28,0,0,0,0,
- 16,12,1,8,1,16,1,12,1,16,1,12,1,10,1,12,
- 1,8,1,16,2,8,1,16,1,16,1,114,176,0,0,0,
- 99,5,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
- 0,4,0,0,0,67,0,0,0,115,120,0,0,0,116,0,
- 124,0,100,1,100,2,133,2,25,0,131,1,124,1,100,3,
- 64,0,107,3,114,62,100,4,124,3,155,2,157,2,125,5,
- 116,1,160,2,100,5,124,5,161,2,1,0,116,3,124,5,
- 102,1,105,0,124,4,164,1,142,1,130,1,124,2,100,6,
- 117,1,114,116,116,0,124,0,100,2,100,7,133,2,25,0,
- 131,1,124,2,100,3,64,0,107,3,114,116,116,3,100,4,
- 124,3,155,2,157,2,102,1,105,0,124,4,164,1,142,1,
- 130,1,100,6,83,0,41,8,97,7,2,0,0,86,97,108,
- 105,100,97,116,101,32,97,32,112,121,99,32,97,103,97,105,
- 110,115,116,32,116,104,101,32,115,111,117,114,99,101,32,108,
- 97,115,116,45,109,111,100,105,102,105,101,100,32,116,105,109,
- 101,46,10,10,32,32,32,32,42,100,97,116,97,42,32,105,
- 115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,111,
- 102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,32,
- 40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,32,
- 49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,32,
- 32,114,101,113,117,105,114,101,100,46,41,10,10,32,32,32,
- 32,42,115,111,117,114,99,101,95,109,116,105,109,101,42,32,
- 105,115,32,116,104,101,32,108,97,115,116,32,109,111,100,105,
- 102,105,101,100,32,116,105,109,101,115,116,97,109,112,32,111,
- 102,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,
- 101,46,10,10,32,32,32,32,42,115,111,117,114,99,101,95,
- 115,105,122,101,42,32,105,115,32,78,111,110,101,32,111,114,
- 32,116,104,101,32,115,105,122,101,32,111,102,32,116,104,101,
- 32,115,111,117,114,99,101,32,102,105,108,101,32,105,110,32,
- 98,121,116,101,115,46,10,10,32,32,32,32,42,110,97,109,
- 101,42,32,105,115,32,116,104,101,32,110,97,109,101,32,111,
- 102,32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,
- 110,103,32,105,109,112,111,114,116,101,100,46,32,73,116,32,
- 105,115,32,117,115,101,100,32,102,111,114,32,108,111,103,103,
- 105,110,103,46,10,10,32,32,32,32,42,101,120,99,95,100,
- 101,116,97,105,108,115,42,32,105,115,32,97,32,100,105,99,
- 116,105,111,110,97,114,121,32,112,97,115,115,101,100,32,116,
- 111,32,73,109,112,111,114,116,69,114,114,111,114,32,105,102,
- 32,105,116,32,114,97,105,115,101,100,32,102,111,114,10,32,
- 32,32,32,105,109,112,114,111,118,101,100,32,100,101,98,117,
- 103,103,105,110,103,46,10,10,32,32,32,32,65,110,32,73,
- 109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,
- 105,115,101,100,32,105,102,32,116,104,101,32,98,121,116,101,
- 99,111,100,101,32,105,115,32,115,116,97,108,101,46,10,10,
- 32,32,32,32,114,170,0,0,0,233,12,0,0,0,114,33,
- 0,0,0,122,22,98,121,116,101,99,111,100,101,32,105,115,
- 32,115,116,97,108,101,32,102,111,114,32,114,168,0,0,0,
- 78,114,169,0,0,0,41,4,114,44,0,0,0,114,158,0,
- 0,0,114,173,0,0,0,114,141,0,0,0,41,6,114,43,
- 0,0,0,218,12,115,111,117,114,99,101,95,109,116,105,109,
- 101,218,11,115,111,117,114,99,101,95,115,105,122,101,114,140,
- 0,0,0,114,175,0,0,0,114,116,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,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,81,2,0,0,115,16,0,0,0,0,19,
- 24,1,10,1,12,1,16,1,8,1,22,255,2,2,114,180,
- 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,115,42,0,0,
- 0,124,0,100,1,100,2,133,2,25,0,124,1,107,3,114,
- 38,116,0,100,3,124,2,155,2,157,2,102,1,105,0,124,
- 3,164,1,142,1,130,1,100,4,83,0,41,5,97,243,1,
- 0,0,86,97,108,105,100,97,116,101,32,97,32,104,97,115,
- 104,45,98,97,115,101,100,32,112,121,99,32,98,121,32,99,
- 104,101,99,107,105,110,103,32,116,104,101,32,114,101,97,108,
- 32,115,111,117,114,99,101,32,104,97,115,104,32,97,103,97,
- 105,110,115,116,32,116,104,101,32,111,110,101,32,105,110,10,
- 32,32,32,32,116,104,101,32,112,121,99,32,104,101,97,100,
- 101,114,46,10,10,32,32,32,32,42,100,97,116,97,42,32,
- 105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,
- 111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,
- 32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,
- 32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,
- 32,32,114,101,113,117,105,114,101,100,46,41,10,10,32,32,
- 32,32,42,115,111,117,114,99,101,95,104,97,115,104,42,32,
- 105,115,32,116,104,101,32,105,109,112,111,114,116,108,105,98,
- 46,117,116,105,108,46,115,111,117,114,99,101,95,104,97,115,
- 104,40,41,32,111,102,32,116,104,101,32,115,111,117,114,99,
- 101,32,102,105,108,101,46,10,10,32,32,32,32,42,110,97,
- 109,101,42,32,105,115,32,116,104,101,32,110,97,109,101,32,
- 111,102,32,116,104,101,32,109,111,100,117,108,101,32,98,101,
- 105,110,103,32,105,109,112,111,114,116,101,100,46,32,73,116,
- 32,105,115,32,117,115,101,100,32,102,111,114,32,108,111,103,
- 103,105,110,103,46,10,10,32,32,32,32,42,101,120,99,95,
- 100,101,116,97,105,108,115,42,32,105,115,32,97,32,100,105,
- 99,116,105,111,110,97,114,121,32,112,97,115,115,101,100,32,
- 116,111,32,73,109,112,111,114,116,69,114,114,111,114,32,105,
- 102,32,105,116,32,114,97,105,115,101,100,32,102,111,114,10,
- 32,32,32,32,105,109,112,114,111,118,101,100,32,100,101,98,
- 117,103,103,105,110,103,46,10,10,32,32,32,32,65,110,32,
- 73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,
- 97,105,115,101,100,32,105,102,32,116,104,101,32,98,121,116,
- 101,99,111,100,101,32,105,115,32,115,116,97,108,101,46,10,
- 10,32,32,32,32,114,170,0,0,0,114,169,0,0,0,122,
- 46,104,97,115,104,32,105,110,32,98,121,116,101,99,111,100,
- 101,32,100,111,101,115,110,39,116,32,109,97,116,99,104,32,
- 104,97,115,104,32,111,102,32,115,111,117,114,99,101,32,78,
- 41,1,114,141,0,0,0,41,4,114,43,0,0,0,218,11,
- 115,111,117,114,99,101,95,104,97,115,104,114,140,0,0,0,
- 114,175,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,18,95,118,97,108,105,100,97,116,101,95,
- 104,97,115,104,95,112,121,99,109,2,0,0,115,12,0,0,
- 0,0,17,16,1,2,1,8,255,4,2,2,254,114,182,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,0,0,0,115,80,0,0,0,
- 116,0,160,1,124,0,161,1,125,4,116,2,124,4,116,3,
- 131,2,114,56,116,4,160,5,100,1,124,2,161,2,1,0,
- 124,3,100,2,117,1,114,52,116,6,160,7,124,4,124,3,
- 161,2,1,0,124,4,83,0,116,8,100,3,160,9,124,2,
- 161,1,124,1,124,2,100,4,141,3,130,1,100,2,83,0,
- 41,5,122,35,67,111,109,112,105,108,101,32,98,121,116,101,
- 99,111,100,101,32,97,115,32,102,111,117,110,100,32,105,110,
- 32,97,32,112,121,99,46,122,21,99,111,100,101,32,111,98,
- 106,101,99,116,32,102,114,111,109,32,123,33,114,125,78,122,
- 23,78,111,110,45,99,111,100,101,32,111,98,106,101,99,116,
- 32,105,110,32,123,33,114,125,169,2,114,140,0,0,0,114,
- 65,0,0,0,41,10,218,7,109,97,114,115,104,97,108,90,
- 5,108,111,97,100,115,218,10,105,115,105,110,115,116,97,110,
- 99,101,218,10,95,99,111,100,101,95,116,121,112,101,114,158,
- 0,0,0,114,173,0,0,0,218,4,95,105,109,112,90,16,
- 95,102,105,120,95,99,111,95,102,105,108,101,110,97,109,101,
- 114,141,0,0,0,114,88,0,0,0,41,5,114,43,0,0,
- 0,114,140,0,0,0,114,131,0,0,0,114,133,0,0,0,
- 218,4,99,111,100,101,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,17,95,99,111,109,112,105,108,101,95,
- 98,121,116,101,99,111,100,101,133,2,0,0,115,18,0,0,
- 0,0,2,10,1,10,1,12,1,8,1,12,1,4,2,10,
- 1,4,255,114,189,0,0,0,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,4,0,0,0,5,0,0,0,67,0,0,
- 0,115,70,0,0,0,116,0,116,1,131,1,125,3,124,3,
- 160,2,116,3,100,1,131,1,161,1,1,0,124,3,160,2,
- 116,3,124,1,131,1,161,1,1,0,124,3,160,2,116,3,
- 124,2,131,1,161,1,1,0,124,3,160,2,116,4,160,5,
- 124,0,161,1,161,1,1,0,124,3,83,0,41,2,122,43,
- 80,114,111,100,117,99,101,32,116,104,101,32,100,97,116,97,
- 32,102,111,114,32,97,32,116,105,109,101,115,116,97,109,112,
- 45,98,97,115,101,100,32,112,121,99,46,114,0,0,0,0,
- 41,6,218,9,98,121,116,101,97,114,114,97,121,114,172,0,
- 0,0,218,6,101,120,116,101,110,100,114,39,0,0,0,114,
- 184,0,0,0,218,5,100,117,109,112,115,41,4,114,188,0,
- 0,0,218,5,109,116,105,109,101,114,179,0,0,0,114,43,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,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,146,2,0,0,115,12,
- 0,0,0,0,2,8,1,14,1,14,1,14,1,16,1,114,
- 194,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,131,1,125,3,100,1,124,2,100,
- 1,62,0,66,0,125,4,124,3,160,2,116,3,124,4,131,
- 1,161,1,1,0,116,4,124,1,131,1,100,2,107,2,115,
- 50,74,0,130,1,124,3,160,2,124,1,161,1,1,0,124,
- 3,160,2,116,5,160,6,124,0,161,1,161,1,1,0,124,
- 3,83,0,41,3,122,38,80,114,111,100,117,99,101,32,116,
- 104,101,32,100,97,116,97,32,102,111,114,32,97,32,104,97,
- 115,104,45,98,97,115,101,100,32,112,121,99,46,114,4,0,
- 0,0,114,170,0,0,0,41,7,114,190,0,0,0,114,172,
- 0,0,0,114,191,0,0,0,114,39,0,0,0,114,6,0,
- 0,0,114,184,0,0,0,114,192,0,0,0,41,5,114,188,
- 0,0,0,114,181,0,0,0,90,7,99,104,101,99,107,101,
- 100,114,43,0,0,0,114,22,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,17,95,99,111,100,
- 101,95,116,111,95,104,97,115,104,95,112,121,99,156,2,0,
- 0,115,14,0,0,0,0,2,8,1,12,1,14,1,16,1,
- 10,1,16,1,114,195,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,0,0,0,100,1,100,2,108,0,125,1,116,
- 1,160,2,124,0,161,1,106,3,125,2,124,1,160,4,124,
- 2,161,1,125,3,116,1,160,5,100,2,100,3,161,2,125,
- 4,124,4,160,6,124,0,160,6,124,3,100,1,25,0,161,
- 1,161,1,83,0,41,4,122,121,68,101,99,111,100,101,32,
- 98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,105,
- 110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,97,
- 110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,116,
- 114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,101,
- 114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,112,
- 112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,32,
- 116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,32,
- 32,32,114,0,0,0,0,78,84,41,7,218,8,116,111,107,
- 101,110,105,122,101,114,90,0,0,0,90,7,66,121,116,101,
- 115,73,79,90,8,114,101,97,100,108,105,110,101,90,15,100,
- 101,116,101,99,116,95,101,110,99,111,100,105,110,103,90,25,
- 73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,105,
- 110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,100,
- 101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,101,
- 115,114,196,0,0,0,90,21,115,111,117,114,99,101,95,98,
- 121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,101,
- 110,99,111,100,105,110,103,90,15,110,101,119,108,105,110,101,
- 95,100,101,99,111,100,101,114,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,13,100,101,99,111,100,101,95,
- 115,111,117,114,99,101,167,2,0,0,115,10,0,0,0,0,
- 5,8,1,12,1,10,1,12,1,114,200,0,0,0,169,2,
- 114,164,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,2,0,0,0,0,0,0,0,2,0,0,0,9,0,
- 0,0,8,0,0,0,67,0,0,0,115,12,1,0,0,124,
- 1,100,1,117,0,114,58,100,2,125,1,116,0,124,2,100,
- 3,131,2,114,68,122,14,124,2,160,1,124,0,161,1,125,
- 1,87,0,113,68,4,0,116,2,121,54,1,0,1,0,1,
- 0,89,0,113,68,48,0,110,10,116,3,160,4,124,1,161,
- 1,125,1,116,5,106,6,124,0,124,2,124,1,100,4,141,
- 3,125,4,100,5,124,4,95,7,124,2,100,1,117,0,114,
- 152,116,8,131,0,68,0,93,42,92,2,125,5,125,6,124,
- 1,160,9,116,10,124,6,131,1,161,1,114,104,124,5,124,
- 0,124,1,131,2,125,2,124,2,124,4,95,11,1,0,113,
- 152,113,104,100,1,83,0,124,3,116,12,117,0,114,216,116,
- 0,124,2,100,6,131,2,114,222,122,14,124,2,160,13,124,
- 0,161,1,125,7,87,0,110,18,4,0,116,2,121,202,1,
- 0,1,0,1,0,89,0,113,222,48,0,124,7,114,222,103,
- 0,124,4,95,14,110,6,124,3,124,4,95,14,124,4,106,
- 14,103,0,107,2,144,1,114,8,124,1,144,1,114,8,116,
- 15,124,1,131,1,100,7,25,0,125,8,124,4,106,14,160,
- 16,124,8,161,1,1,0,124,4,83,0,41,8,97,61,1,
- 0,0,82,101,116,117,114,110,32,97,32,109,111,100,117,108,
- 101,32,115,112,101,99,32,98,97,115,101,100,32,111,110,32,
- 97,32,102,105,108,101,32,108,111,99,97,116,105,111,110,46,
- 10,10,32,32,32,32,84,111,32,105,110,100,105,99,97,116,
- 101,32,116,104,97,116,32,116,104,101,32,109,111,100,117,108,
- 101,32,105,115,32,97,32,112,97,99,107,97,103,101,44,32,
- 115,101,116,10,32,32,32,32,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,32,116,111,32,97,32,108,105,115,116,32,111,102,32,
- 100,105,114,101,99,116,111,114,121,32,112,97,116,104,115,46,
- 32,32,65,110,10,32,32,32,32,101,109,112,116,121,32,108,
- 105,115,116,32,105,115,32,115,117,102,102,105,99,105,101,110,
- 116,44,32,116,104,111,117,103,104,32,105,116,115,32,110,111,
- 116,32,111,116,104,101,114,119,105,115,101,32,117,115,101,102,
- 117,108,32,116,111,32,116,104,101,10,32,32,32,32,105,109,
- 112,111,114,116,32,115,121,115,116,101,109,46,10,10,32,32,
- 32,32,84,104,101,32,108,111,97,100,101,114,32,109,117,115,
- 116,32,116,97,107,101,32,97,32,115,112,101,99,32,97,115,
- 32,105,116,115,32,111,110,108,121,32,95,95,105,110,105,116,
- 95,95,40,41,32,97,114,103,46,10,10,32,32,32,32,78,
- 122,9,60,117,110,107,110,111,119,110,62,218,12,103,101,116,
- 95,102,105,108,101,110,97,109,101,169,1,218,6,111,114,105,
- 103,105,110,84,218,10,105,115,95,112,97,99,107,97,103,101,
- 114,0,0,0,0,41,17,114,152,0,0,0,114,203,0,0,
- 0,114,141,0,0,0,114,24,0,0,0,114,102,0,0,0,
- 114,158,0,0,0,218,10,77,111,100,117,108,101,83,112,101,
- 99,90,13,95,115,101,116,95,102,105,108,101,97,116,116,114,
- 218,27,95,103,101,116,95,115,117,112,112,111,114,116,101,100,
- 95,102,105,108,101,95,108,111,97,100,101,114,115,114,58,0,
- 0,0,114,135,0,0,0,114,164,0,0,0,218,9,95,80,
- 79,80,85,76,65,84,69,114,206,0,0,0,114,202,0,0,
- 0,114,74,0,0,0,114,61,0,0,0,41,9,114,140,0,
- 0,0,90,8,108,111,99,97,116,105,111,110,114,164,0,0,
- 0,114,202,0,0,0,218,4,115,112,101,99,218,12,108,111,
- 97,100,101,114,95,99,108,97,115,115,218,8,115,117,102,102,
- 105,120,101,115,114,206,0,0,0,90,7,100,105,114,110,97,
- 109,101,114,10,0,0,0,114,10,0,0,0,114,11,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,184,2,0,0,115,62,
- 0,0,0,0,12,8,4,4,1,10,2,2,1,14,1,12,
- 1,8,2,10,8,16,1,6,3,8,1,14,1,14,1,10,
- 1,6,1,6,2,4,3,8,2,10,1,2,1,14,1,12,
- 1,6,2,4,1,8,2,6,1,12,1,6,1,12,1,12,
- 2,114,213,0,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,
- 80,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
- 100,2,90,4,100,3,90,5,100,4,90,6,101,7,100,5,
- 100,6,132,0,131,1,90,8,101,7,100,7,100,8,132,0,
- 131,1,90,9,101,7,100,14,100,10,100,11,132,1,131,1,
- 90,10,101,7,100,15,100,12,100,13,132,1,131,1,90,11,
- 100,9,83,0,41,16,218,21,87,105,110,100,111,119,115,82,
- 101,103,105,115,116,114,121,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,109,111,100,117,108,101,115,32,100,101,99,108,
- 97,114,101,100,32,105,110,32,116,104,101,32,87,105,110,100,
- 111,119,115,32,114,101,103,105,115,116,114,121,46,122,59,83,
- 111,102,116,119,97,114,101,92,80,121,116,104,111,110,92,80,
- 121,116,104,111,110,67,111,114,101,92,123,115,121,115,95,118,
- 101,114,115,105,111,110,125,92,77,111,100,117,108,101,115,92,
- 123,102,117,108,108,110,97,109,101,125,122,65,83,111,102,116,
- 119,97,114,101,92,80,121,116,104,111,110,92,80,121,116,104,
- 111,110,67,111,114,101,92,123,115,121,115,95,118,101,114,115,
- 105,111,110,125,92,77,111,100,117,108,101,115,92,123,102,117,
- 108,108,110,97,109,101,125,92,68,101,98,117,103,70,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,
- 0,0,0,67,0,0,0,115,54,0,0,0,122,16,116,0,
- 160,1,116,0,106,2,124,1,161,2,87,0,83,0,4,0,
- 116,3,121,48,1,0,1,0,1,0,116,0,160,1,116,0,
- 106,4,124,1,161,2,6,0,89,0,83,0,48,0,100,0,
- 83,0,114,69,0,0,0,41,5,218,6,119,105,110,114,101,
- 103,90,7,79,112,101,110,75,101,121,90,17,72,75,69,89,
- 95,67,85,82,82,69,78,84,95,85,83,69,82,114,76,0,
- 0,0,90,18,72,75,69,89,95,76,79,67,65,76,95,77,
- 65,67,72,73,78,69,41,2,218,3,99,108,115,114,26,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,14,95,111,112,101,110,95,114,101,103,105,115,116,114,
- 121,8,3,0,0,115,8,0,0,0,0,2,2,1,16,1,
- 12,1,122,36,87,105,110,100,111,119,115,82,101,103,105,115,
- 116,114,121,70,105,110,100,101,114,46,95,111,112,101,110,95,
- 114,101,103,105,115,116,114,121,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,6,0,0,0,8,0,0,0,67,0,0,
- 0,115,132,0,0,0,124,0,106,0,114,14,124,0,106,1,
- 125,2,110,6,124,0,106,2,125,2,124,2,106,3,124,1,
- 100,1,116,4,106,5,100,0,100,2,133,2,25,0,22,0,
- 100,3,141,2,125,3,122,58,124,0,160,6,124,3,161,1,
- 143,28,125,4,116,7,160,8,124,4,100,4,161,2,125,5,
- 87,0,100,0,4,0,4,0,131,3,1,0,110,16,49,0,
- 115,94,48,0,1,0,1,0,1,0,89,0,1,0,87,0,
- 110,20,4,0,116,9,121,126,1,0,1,0,1,0,89,0,
- 100,0,83,0,48,0,124,5,83,0,41,5,78,122,5,37,
- 100,46,37,100,114,45,0,0,0,41,2,114,163,0,0,0,
- 90,11,115,121,115,95,118,101,114,115,105,111,110,114,14,0,
- 0,0,41,10,218,11,68,69,66,85,71,95,66,85,73,76,
- 68,218,18,82,69,71,73,83,84,82,89,95,75,69,89,95,
- 68,69,66,85,71,218,12,82,69,71,73,83,84,82,89,95,
- 75,69,89,114,88,0,0,0,114,21,0,0,0,218,12,118,
- 101,114,115,105,111,110,95,105,110,102,111,114,217,0,0,0,
- 114,215,0,0,0,90,10,81,117,101,114,121,86,97,108,117,
- 101,114,76,0,0,0,41,6,114,216,0,0,0,114,163,0,
- 0,0,90,12,114,101,103,105,115,116,114,121,95,107,101,121,
- 114,26,0,0,0,90,4,104,107,101,121,218,8,102,105,108,
- 101,112,97,116,104,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,16,95,115,101,97,114,99,104,95,114,101,
- 103,105,115,116,114,121,15,3,0,0,115,24,0,0,0,0,
- 2,6,1,8,2,6,1,6,1,16,255,6,2,2,1,12,
- 1,46,1,12,1,8,1,122,38,87,105,110,100,111,119,115,
- 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,95,
- 115,101,97,114,99,104,95,114,101,103,105,115,116,114,121,78,
- 99,4,0,0,0,0,0,0,0,0,0,0,0,8,0,0,
- 0,8,0,0,0,67,0,0,0,115,120,0,0,0,124,0,
- 160,0,124,1,161,1,125,4,124,4,100,0,117,0,114,22,
- 100,0,83,0,122,12,116,1,124,4,131,1,1,0,87,0,
- 110,20,4,0,116,2,121,54,1,0,1,0,1,0,89,0,
- 100,0,83,0,48,0,116,3,131,0,68,0,93,52,92,2,
- 125,5,125,6,124,4,160,4,116,5,124,6,131,1,161,1,
- 114,62,116,6,106,7,124,1,124,5,124,1,124,4,131,2,
- 124,4,100,1,141,3,125,7,124,7,2,0,1,0,83,0,
- 113,62,100,0,83,0,41,2,78,114,204,0,0,0,41,8,
- 114,223,0,0,0,114,75,0,0,0,114,76,0,0,0,114,
- 208,0,0,0,114,58,0,0,0,114,135,0,0,0,114,158,
- 0,0,0,218,16,115,112,101,99,95,102,114,111,109,95,108,
- 111,97,100,101,114,41,8,114,216,0,0,0,114,163,0,0,
- 0,114,65,0,0,0,218,6,116,97,114,103,101,116,114,222,
- 0,0,0,114,164,0,0,0,114,212,0,0,0,114,210,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,9,102,105,110,100,95,115,112,101,99,30,3,0,0,
- 115,28,0,0,0,0,2,10,1,8,1,4,1,2,1,12,
- 1,12,1,8,1,14,1,14,1,6,1,8,1,2,254,6,
- 3,122,31,87,105,110,100,111,119,115,82,101,103,105,115,116,
- 114,121,70,105,110,100,101,114,46,102,105,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,34,0,0,0,
- 124,0,160,0,124,1,124,2,161,2,125,3,124,3,100,1,
- 117,1,114,26,124,3,106,1,83,0,100,1,83,0,100,1,
- 83,0,41,2,122,108,70,105,110,100,32,109,111,100,117,108,
- 101,32,110,97,109,101,100,32,105,110,32,116,104,101,32,114,
- 101,103,105,115,116,114,121,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,169,2,114,226,0,0,0,114,164,0,0,0,169,
- 4,114,216,0,0,0,114,163,0,0,0,114,65,0,0,0,
- 114,210,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,11,102,105,110,100,95,109,111,100,117,108,
- 101,46,3,0,0,115,8,0,0,0,0,7,12,1,8,1,
- 6,2,122,33,87,105,110,100,111,119,115,82,101,103,105,115,
- 116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,109,
- 111,100,117,108,101,41,2,78,78,41,1,78,41,12,114,149,
- 0,0,0,114,148,0,0,0,114,150,0,0,0,114,151,0,
- 0,0,114,220,0,0,0,114,219,0,0,0,114,218,0,0,
- 0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,217,
- 0,0,0,114,223,0,0,0,114,226,0,0,0,114,229,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,214,0,0,0,252,2,0,0,115,
- 28,0,0,0,8,2,4,3,2,255,2,4,2,255,2,3,
- 4,2,2,1,10,6,2,1,10,14,2,1,12,15,2,1,
- 114,214,0,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,48,
- 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,83,0,41,11,218,13,95,76,111,97,100,101,114,66,97,
- 115,105,99,115,122,83,66,97,115,101,32,99,108,97,115,115,
- 32,111,102,32,99,111,109,109,111,110,32,99,111,100,101,32,
- 110,101,101,100,101,100,32,98,121,32,98,111,116,104,32,83,
- 111,117,114,99,101,76,111,97,100,101,114,32,97,110,100,10,
- 32,32,32,32,83,111,117,114,99,101,108,101,115,115,70,105,
- 108,101,76,111,97,100,101,114,46,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,
- 0,0,115,64,0,0,0,116,0,124,0,160,1,124,1,161,
- 1,131,1,100,1,25,0,125,2,124,2,160,2,100,2,100,
- 1,161,2,100,3,25,0,125,3,124,1,160,3,100,2,161,
- 1,100,4,25,0,125,4,124,3,100,5,107,2,111,62,124,
- 4,100,5,107,3,83,0,41,6,122,141,67,111,110,99,114,
- 101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,
- 111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,97,
- 100,101,114,46,105,115,95,112,97,99,107,97,103,101,32,98,
- 121,32,99,104,101,99,107,105,110,103,32,105,102,10,32,32,
- 32,32,32,32,32,32,116,104,101,32,112,97,116,104,32,114,
- 101,116,117,114,110,101,100,32,98,121,32,103,101,116,95,102,
- 105,108,101,110,97,109,101,32,104,97,115,32,97,32,102,105,
- 108,101,110,97,109,101,32,111,102,32,39,95,95,105,110,105,
- 116,95,95,46,112,121,39,46,114,4,0,0,0,114,96,0,
- 0,0,114,0,0,0,0,114,45,0,0,0,218,8,95,95,
- 105,110,105,116,95,95,41,4,114,74,0,0,0,114,203,0,
- 0,0,114,124,0,0,0,114,103,0,0,0,41,5,114,142,
- 0,0,0,114,163,0,0,0,114,119,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,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,206,0,0,0,65,3,0,0,115,
- 8,0,0,0,0,3,18,1,16,1,14,1,122,24,95,76,
- 111,97,100,101,114,66,97,115,105,99,115,46,105,115,95,112,
- 97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
- 4,0,0,0,100,1,83,0,169,2,122,42,85,115,101,32,
- 100,101,102,97,117,108,116,32,115,101,109,97,110,116,105,99,
- 115,32,102,111,114,32,109,111,100,117,108,101,32,99,114,101,
- 97,116,105,111,110,46,78,114,10,0,0,0,169,2,114,142,
- 0,0,0,114,210,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,13,99,114,101,97,116,101,95,
- 109,111,100,117,108,101,73,3,0,0,115,2,0,0,0,0,
- 1,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,0,0,3,0,0,0,5,
- 0,0,0,67,0,0,0,115,56,0,0,0,124,0,160,0,
- 124,1,106,1,161,1,125,2,124,2,100,1,117,0,114,36,
- 116,2,100,2,160,3,124,1,106,1,161,1,131,1,130,1,
- 116,4,160,5,116,6,124,2,124,1,106,7,161,3,1,0,
- 100,1,83,0,41,3,122,19,69,120,101,99,117,116,101,32,
- 116,104,101,32,109,111,100,117,108,101,46,78,122,52,99,97,
- 110,110,111,116,32,108,111,97,100,32,109,111,100,117,108,101,
- 32,123,33,114,125,32,119,104,101,110,32,103,101,116,95,99,
- 111,100,101,40,41,32,114,101,116,117,114,110,115,32,78,111,
- 110,101,41,8,218,8,103,101,116,95,99,111,100,101,114,149,
- 0,0,0,114,141,0,0,0,114,88,0,0,0,114,158,0,
- 0,0,218,25,95,99,97,108,108,95,119,105,116,104,95,102,
- 114,97,109,101,115,95,114,101,109,111,118,101,100,218,4,101,
- 120,101,99,114,155,0,0,0,41,3,114,142,0,0,0,218,
- 6,109,111,100,117,108,101,114,188,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,11,101,120,101,
- 99,95,109,111,100,117,108,101,76,3,0,0,115,12,0,0,
- 0,0,2,12,1,8,1,6,1,4,255,6,2,122,25,95,
- 76,111,97,100,101,114,66,97,115,105,99,115,46,101,120,101,
- 99,95,109,111,100,117,108,101,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,12,0,0,0,116,0,160,1,124,0,124,1,161,2,
- 83,0,41,1,122,26,84,104,105,115,32,109,111,100,117,108,
- 101,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,
- 41,2,114,158,0,0,0,218,17,95,108,111,97,100,95,109,
- 111,100,117,108,101,95,115,104,105,109,169,2,114,142,0,0,
- 0,114,163,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,11,108,111,97,100,95,109,111,100,117,
- 108,101,84,3,0,0,115,2,0,0,0,0,2,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,149,0,0,0,
- 114,148,0,0,0,114,150,0,0,0,114,151,0,0,0,114,
- 206,0,0,0,114,235,0,0,0,114,240,0,0,0,114,243,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,231,0,0,0,60,3,0,0,
- 115,10,0,0,0,8,2,4,3,8,8,8,3,8,8,114,
- 231,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,
- 0,0,101,0,90,1,100,0,90,2,100,1,100,2,132,0,
- 90,3,100,3,100,4,132,0,90,4,100,5,100,6,132,0,
- 90,5,100,7,100,8,132,0,90,6,100,9,100,10,132,0,
- 90,7,100,11,100,12,156,1,100,13,100,14,132,2,90,8,
- 100,15,100,16,132,0,90,9,100,17,83,0,41,18,218,12,
- 83,111,117,114,99,101,76,111,97,100,101,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,115,8,0,0,0,116,0,130,1,100,1,
- 83,0,41,2,122,165,79,112,116,105,111,110,97,108,32,109,
- 101,116,104,111,100,32,116,104,97,116,32,114,101,116,117,114,
- 110,115,32,116,104,101,32,109,111,100,105,102,105,99,97,116,
- 105,111,110,32,116,105,109,101,32,40,97,110,32,105,110,116,
- 41,32,102,111,114,32,116,104,101,10,32,32,32,32,32,32,
- 32,32,115,112,101,99,105,102,105,101,100,32,112,97,116,104,
- 32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,32,
- 32,32,32,82,97,105,115,101,115,32,79,83,69,114,114,111,
- 114,32,119,104,101,110,32,116,104,101,32,112,97,116,104,32,
- 99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,
- 100,46,10,32,32,32,32,32,32,32,32,78,41,1,114,76,
- 0,0,0,169,2,114,142,0,0,0,114,65,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,10,
- 112,97,116,104,95,109,116,105,109,101,91,3,0,0,115,2,
- 0,0,0,0,6,122,23,83,111,117,114,99,101,76,111,97,
- 100,101,114,46,112,97,116,104,95,109,116,105,109,101,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
- 0,0,0,67,0,0,0,115,14,0,0,0,100,1,124,0,
- 160,0,124,1,161,1,105,1,83,0,41,2,97,158,1,0,
- 0,79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,
- 32,114,101,116,117,114,110,105,110,103,32,97,32,109,101,116,
- 97,100,97,116,97,32,100,105,99,116,32,102,111,114,32,116,
- 104,101,32,115,112,101,99,105,102,105,101,100,10,32,32,32,
- 32,32,32,32,32,112,97,116,104,32,40,97,32,115,116,114,
- 41,46,10,10,32,32,32,32,32,32,32,32,80,111,115,115,
- 105,98,108,101,32,107,101,121,115,58,10,32,32,32,32,32,
- 32,32,32,45,32,39,109,116,105,109,101,39,32,40,109,97,
- 110,100,97,116,111,114,121,41,32,105,115,32,116,104,101,32,
- 110,117,109,101,114,105,99,32,116,105,109,101,115,116,97,109,
- 112,32,111,102,32,108,97,115,116,32,115,111,117,114,99,101,
- 10,32,32,32,32,32,32,32,32,32,32,99,111,100,101,32,
- 109,111,100,105,102,105,99,97,116,105,111,110,59,10,32,32,
- 32,32,32,32,32,32,45,32,39,115,105,122,101,39,32,40,
- 111,112,116,105,111,110,97,108,41,32,105,115,32,116,104,101,
- 32,115,105,122,101,32,105,110,32,98,121,116,101,115,32,111,
- 102,32,116,104,101,32,115,111,117,114,99,101,32,99,111,100,
- 101,46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,
- 101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,
- 116,104,111,100,32,97,108,108,111,119,115,32,116,104,101,32,
- 108,111,97,100,101,114,32,116,111,32,114,101,97,100,32,98,
- 121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,32,
- 32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,83,
- 69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,112,
- 97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,97,
- 110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,114,
- 193,0,0,0,41,1,114,246,0,0,0,114,245,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
- 10,112,97,116,104,95,115,116,97,116,115,99,3,0,0,115,
- 2,0,0,0,0,12,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,0,
- 4,0,0,0,67,0,0,0,115,12,0,0,0,124,0,160,
- 0,124,2,124,3,161,2,83,0,41,1,122,228,79,112,116,
- 105,111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,
- 99,104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,
- 98,121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,
- 32,112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,
- 32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,
- 116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,
- 32,97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,
- 119,114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,
- 111,100,101,32,102,105,108,101,115,46,10,10,32,32,32,32,
- 32,32,32,32,84,104,101,32,115,111,117,114,99,101,32,112,
- 97,116,104,32,105,115,32,110,101,101,100,101,100,32,105,110,
- 32,111,114,100,101,114,32,116,111,32,99,111,114,114,101,99,
- 116,108,121,32,116,114,97,110,115,102,101,114,32,112,101,114,
- 109,105,115,115,105,111,110,115,10,32,32,32,32,32,32,32,
- 32,41,1,218,8,115,101,116,95,100,97,116,97,41,4,114,
- 142,0,0,0,114,133,0,0,0,90,10,99,97,99,104,101,
- 95,112,97,116,104,114,43,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,15,95,99,97,99,104,
- 101,95,98,121,116,101,99,111,100,101,113,3,0,0,115,2,
- 0,0,0,0,8,122,28,83,111,117,114,99,101,76,111,97,
- 100,101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,
- 111,100,101,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
- 0,100,1,83,0,41,2,122,150,79,112,116,105,111,110,97,
- 108,32,109,101,116,104,111,100,32,119,104,105,99,104,32,119,
- 114,105,116,101,115,32,100,97,116,97,32,40,98,121,116,101,
- 115,41,32,116,111,32,97,32,102,105,108,101,32,112,97,116,
- 104,32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,
- 32,32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,
- 32,116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,
- 111,119,115,32,102,111,114,32,116,104,101,32,119,114,105,116,
- 105,110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,
- 102,105,108,101,115,46,10,32,32,32,32,32,32,32,32,78,
- 114,10,0,0,0,41,3,114,142,0,0,0,114,65,0,0,
- 0,114,43,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,248,0,0,0,123,3,0,0,115,2,
- 0,0,0,0,1,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,0,0,0,115,84,0,0,0,124,0,160,0,124,1,
- 161,1,125,2,122,14,124,0,160,1,124,2,161,1,125,3,
- 87,0,110,50,4,0,116,2,121,74,1,0,125,4,1,0,
- 122,26,116,3,100,1,124,1,100,2,141,2,124,4,130,2,
- 87,0,89,0,100,3,125,4,126,4,110,10,100,3,125,4,
- 126,4,48,0,48,0,116,4,124,3,131,1,83,0,41,4,
- 122,52,67,111,110,99,114,101,116,101,32,105,109,112,108,101,
- 109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,
- 112,101,99,116,76,111,97,100,101,114,46,103,101,116,95,115,
- 111,117,114,99,101,46,122,39,115,111,117,114,99,101,32,110,
- 111,116,32,97,118,97,105,108,97,98,108,101,32,116,104,114,
- 111,117,103,104,32,103,101,116,95,100,97,116,97,40,41,114,
- 139,0,0,0,78,41,5,114,203,0,0,0,218,8,103,101,
- 116,95,100,97,116,97,114,76,0,0,0,114,141,0,0,0,
- 114,200,0,0,0,41,5,114,142,0,0,0,114,163,0,0,
- 0,114,65,0,0,0,114,198,0,0,0,218,3,101,120,99,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
- 10,103,101,116,95,115,111,117,114,99,101,130,3,0,0,115,
- 20,0,0,0,0,2,10,1,2,1,14,1,14,1,4,1,
- 2,255,4,1,2,255,24,2,122,23,83,111,117,114,99,101,
- 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,
- 101,114,129,0,0,0,41,1,218,9,95,111,112,116,105,109,
- 105,122,101,99,3,0,0,0,0,0,0,0,1,0,0,0,
- 4,0,0,0,8,0,0,0,67,0,0,0,115,22,0,0,
- 0,116,0,106,1,116,2,124,1,124,2,100,1,100,2,124,
- 3,100,3,141,6,83,0,41,4,122,130,82,101,116,117,114,
- 110,32,116,104,101,32,99,111,100,101,32,111,98,106,101,99,
- 116,32,99,111,109,112,105,108,101,100,32,102,114,111,109,32,
- 115,111,117,114,99,101,46,10,10,32,32,32,32,32,32,32,
- 32,84,104,101,32,39,100,97,116,97,39,32,97,114,103,117,
- 109,101,110,116,32,99,97,110,32,98,101,32,97,110,121,32,
- 111,98,106,101,99,116,32,116,121,112,101,32,116,104,97,116,
- 32,99,111,109,112,105,108,101,40,41,32,115,117,112,112,111,
- 114,116,115,46,10,32,32,32,32,32,32,32,32,114,238,0,
- 0,0,84,41,2,218,12,100,111,110,116,95,105,110,104,101,
- 114,105,116,114,107,0,0,0,41,3,114,158,0,0,0,114,
- 237,0,0,0,218,7,99,111,109,112,105,108,101,41,4,114,
- 142,0,0,0,114,43,0,0,0,114,65,0,0,0,114,253,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,111,
- 100,101,140,3,0,0,115,6,0,0,0,0,5,12,1,4,
- 255,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,0,0,0,0,15,0,0,0,9,
- 0,0,0,67,0,0,0,115,24,2,0,0,124,0,160,0,
- 124,1,161,1,125,2,100,1,125,3,100,1,125,4,100,1,
- 125,5,100,2,125,6,100,3,125,7,122,12,116,1,124,2,
- 131,1,125,8,87,0,110,24,4,0,116,2,121,66,1,0,
- 1,0,1,0,100,1,125,8,89,0,144,1,110,42,48,0,
- 122,14,124,0,160,3,124,2,161,1,125,9,87,0,110,20,
- 4,0,116,4,121,102,1,0,1,0,1,0,89,0,144,1,
- 110,6,48,0,116,5,124,9,100,4,25,0,131,1,125,3,
- 122,14,124,0,160,6,124,8,161,1,125,10,87,0,110,18,
- 4,0,116,4,121,148,1,0,1,0,1,0,89,0,110,216,
- 48,0,124,1,124,8,100,5,156,2,125,11,122,148,116,7,
- 124,10,124,1,124,11,131,3,125,12,116,8,124,10,131,1,
- 100,6,100,1,133,2,25,0,125,13,124,12,100,7,64,0,
- 100,8,107,3,125,6,124,6,144,1,114,30,124,12,100,9,
- 64,0,100,8,107,3,125,7,116,9,106,10,100,10,107,3,
- 144,1,114,50,124,7,115,248,116,9,106,10,100,11,107,2,
- 144,1,114,50,124,0,160,6,124,2,161,1,125,4,116,9,
- 160,11,116,12,124,4,161,2,125,5,116,13,124,10,124,5,
- 124,1,124,11,131,4,1,0,110,20,116,14,124,10,124,3,
- 124,9,100,12,25,0,124,1,124,11,131,5,1,0,87,0,
- 110,24,4,0,116,15,116,16,102,2,144,1,121,76,1,0,
- 1,0,1,0,89,0,110,32,48,0,116,17,160,18,100,13,
- 124,8,124,2,161,3,1,0,116,19,124,13,124,1,124,8,
- 124,2,100,14,141,4,83,0,124,4,100,1,117,0,144,1,
- 114,128,124,0,160,6,124,2,161,1,125,4,124,0,160,20,
- 124,4,124,2,161,2,125,14,116,17,160,18,100,15,124,2,
- 161,2,1,0,116,21,106,22,144,2,115,20,124,8,100,1,
- 117,1,144,2,114,20,124,3,100,1,117,1,144,2,114,20,
- 124,6,144,1,114,220,124,5,100,1,117,0,144,1,114,206,
- 116,9,160,11,124,4,161,1,125,5,116,23,124,14,124,5,
- 124,7,131,3,125,10,110,16,116,24,124,14,124,3,116,25,
- 124,4,131,1,131,3,125,10,122,18,124,0,160,26,124,2,
- 124,8,124,10,161,3,1,0,87,0,110,20,4,0,116,2,
- 144,2,121,18,1,0,1,0,1,0,89,0,110,2,48,0,
- 124,14,83,0,41,16,122,190,67,111,110,99,114,101,116,101,
- 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
- 111,102,32,73,110,115,112,101,99,116,76,111,97,100,101,114,
- 46,103,101,116,95,99,111,100,101,46,10,10,32,32,32,32,
- 32,32,32,32,82,101,97,100,105,110,103,32,111,102,32,98,
- 121,116,101,99,111,100,101,32,114,101,113,117,105,114,101,115,
- 32,112,97,116,104,95,115,116,97,116,115,32,116,111,32,98,
- 101,32,105,109,112,108,101,109,101,110,116,101,100,46,32,84,
- 111,32,119,114,105,116,101,10,32,32,32,32,32,32,32,32,
- 98,121,116,101,99,111,100,101,44,32,115,101,116,95,100,97,
- 116,97,32,109,117,115,116,32,97,108,115,111,32,98,101,32,
- 105,109,112,108,101,109,101,110,116,101,100,46,10,10,32,32,
- 32,32,32,32,32,32,78,70,84,114,193,0,0,0,114,183,
- 0,0,0,114,169,0,0,0,114,4,0,0,0,114,0,0,
- 0,0,114,45,0,0,0,90,5,110,101,118,101,114,90,6,
- 97,108,119,97,121,115,218,4,115,105,122,101,122,13,123,125,
- 32,109,97,116,99,104,101,115,32,123,125,41,3,114,140,0,
- 0,0,114,131,0,0,0,114,133,0,0,0,122,19,99,111,
- 100,101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,
- 125,41,27,114,203,0,0,0,114,120,0,0,0,114,106,0,
- 0,0,114,247,0,0,0,114,76,0,0,0,114,36,0,0,
- 0,114,250,0,0,0,114,176,0,0,0,218,10,109,101,109,
- 111,114,121,118,105,101,119,114,187,0,0,0,90,21,99,104,
- 101,99,107,95,104,97,115,104,95,98,97,115,101,100,95,112,
- 121,99,115,114,181,0,0,0,218,17,95,82,65,87,95,77,
- 65,71,73,67,95,78,85,77,66,69,82,114,182,0,0,0,
- 114,180,0,0,0,114,141,0,0,0,114,174,0,0,0,114,
- 158,0,0,0,114,173,0,0,0,114,189,0,0,0,114,0,
- 1,0,0,114,21,0,0,0,218,19,100,111,110,116,95,119,
- 114,105,116,101,95,98,121,116,101,99,111,100,101,114,195,0,
- 0,0,114,194,0,0,0,114,6,0,0,0,114,249,0,0,
- 0,41,15,114,142,0,0,0,114,163,0,0,0,114,133,0,
- 0,0,114,178,0,0,0,114,198,0,0,0,114,181,0,0,
- 0,90,10,104,97,115,104,95,98,97,115,101,100,90,12,99,
- 104,101,99,107,95,115,111,117,114,99,101,114,131,0,0,0,
- 218,2,115,116,114,43,0,0,0,114,175,0,0,0,114,22,
- 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,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,236,0,0,0,
- 148,3,0,0,115,152,0,0,0,0,7,10,1,4,1,4,
- 1,4,1,4,1,4,1,2,1,12,1,12,1,12,2,2,
- 1,14,1,12,1,8,2,12,1,2,1,14,1,12,1,6,
- 3,2,1,2,254,6,4,2,1,12,1,16,1,12,1,6,
- 1,12,1,12,1,2,255,2,2,8,254,4,3,10,1,4,
- 1,2,1,2,254,4,4,8,1,2,255,6,3,2,1,2,
- 1,2,1,6,1,2,1,2,251,8,7,18,1,6,2,8,
- 1,2,255,4,2,6,1,2,1,2,254,6,3,10,1,10,
- 1,12,1,12,1,18,1,6,255,4,2,6,1,10,1,10,
- 1,14,2,6,1,6,255,4,2,2,1,18,1,14,1,6,
- 1,122,21,83,111,117,114,99,101,76,111,97,100,101,114,46,
- 103,101,116,95,99,111,100,101,78,41,10,114,149,0,0,0,
- 114,148,0,0,0,114,150,0,0,0,114,246,0,0,0,114,
- 247,0,0,0,114,249,0,0,0,114,248,0,0,0,114,252,
- 0,0,0,114,0,1,0,0,114,236,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,244,0,0,0,89,3,0,0,115,14,0,0,0,8,
- 2,8,8,8,14,8,10,8,7,8,10,14,8,114,244,0,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,0,0,0,0,115,124,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,101,7,135,0,102,1,100,8,100,9,132,8,
- 131,1,90,8,101,7,100,10,100,11,132,0,131,1,90,9,
- 100,12,100,13,132,0,90,10,101,7,100,14,100,15,132,0,
- 131,1,90,11,100,16,100,17,132,0,90,12,100,18,100,19,
- 132,0,90,13,100,20,100,21,132,0,90,14,100,22,100,23,
- 132,0,90,15,135,0,4,0,90,16,83,0,41,24,218,10,
- 70,105,108,101,76,111,97,100,101,114,122,103,66,97,115,101,
- 32,102,105,108,101,32,108,111,97,100,101,114,32,99,108,97,
- 115,115,32,119,104,105,99,104,32,105,109,112,108,101,109,101,
- 110,116,115,32,116,104,101,32,108,111,97,100,101,114,32,112,
- 114,111,116,111,99,111,108,32,109,101,116,104,111,100,115,32,
- 116,104,97,116,10,32,32,32,32,114,101,113,117,105,114,101,
- 32,102,105,108,101,32,115,121,115,116,101,109,32,117,115,97,
- 103,101,46,99,3,0,0,0,0,0,0,0,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,1,83,
- 0,41,2,122,75,67,97,99,104,101,32,116,104,101,32,109,
- 111,100,117,108,101,32,110,97,109,101,32,97,110,100,32,116,
- 104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,102,
- 105,108,101,32,102,111,117,110,100,32,98,121,32,116,104,101,
- 10,32,32,32,32,32,32,32,32,102,105,110,100,101,114,46,
- 78,114,183,0,0,0,41,3,114,142,0,0,0,114,163,0,
- 0,0,114,65,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,232,0,0,0,238,3,0,0,115,
- 4,0,0,0,0,3,6,1,122,19,70,105,108,101,76,111,
- 97,100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,
- 0,0,67,0,0,0,115,24,0,0,0,124,0,106,0,124,
- 1,106,0,107,2,111,22,124,0,106,1,124,1,106,1,107,
- 2,83,0,114,69,0,0,0,169,2,218,9,95,95,99,108,
- 97,115,115,95,95,114,155,0,0,0,169,2,114,142,0,0,
- 0,90,5,111,116,104,101,114,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,6,95,95,101,113,95,95,244,
- 3,0,0,115,6,0,0,0,0,1,12,1,10,255,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,0,0,0,67,0,0,0,115,20,0,0,0,116,
- 0,124,0,106,1,131,1,116,0,124,0,106,2,131,1,65,
- 0,83,0,114,69,0,0,0,169,3,218,4,104,97,115,104,
- 114,140,0,0,0,114,65,0,0,0,169,1,114,142,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 218,8,95,95,104,97,115,104,95,95,248,3,0,0,115,2,
- 0,0,0,0,1,122,19,70,105,108,101,76,111,97,100,101,
- 114,46,95,95,104,97,115,104,95,95,99,2,0,0,0,0,
- 0,0,0,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,1,122,100,76,111,97,100,
- 32,97,32,109,111,100,117,108,101,32,102,114,111,109,32,97,
- 32,102,105,108,101,46,10,10,32,32,32,32,32,32,32,32,
- 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,
- 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,
- 101,120,101,99,95,109,111,100,117,108,101,40,41,32,105,110,
- 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
- 41,3,218,5,115,117,112,101,114,114,6,1,0,0,114,243,
- 0,0,0,114,242,0,0,0,169,1,114,8,1,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,243,0,0,0,251,3,
- 0,0,115,2,0,0,0,0,10,122,22,70,105,108,101,76,
- 111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,
- 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,1,0,0,0,67,0,0,0,115,6,0,0,0,124,
- 0,106,0,83,0,169,1,122,58,82,101,116,117,114,110,32,
- 116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,
- 115,111,117,114,99,101,32,102,105,108,101,32,97,115,32,102,
- 111,117,110,100,32,98,121,32,116,104,101,32,102,105,110,100,
- 101,114,46,114,71,0,0,0,114,242,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,203,0,0,
- 0,7,4,0,0,115,2,0,0,0,0,3,122,23,70,105,
- 108,101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,
- 101,110,97,109,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,126,
- 0,0,0,116,0,124,0,116,1,116,2,102,2,131,2,114,
- 70,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,48,0,1,0,1,
- 0,1,0,89,0,1,0,110,52,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,
- 112,48,0,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,185,0,0,0,114,244,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,90,0,0,0,90,9,111,112,101,110,95,99,111,100,
- 101,114,108,0,0,0,90,4,114,101,97,100,114,91,0,0,
- 0,41,3,114,142,0,0,0,114,65,0,0,0,114,93,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,250,0,0,0,12,4,0,0,115,10,0,0,0,0,
- 2,14,1,16,1,40,2,14,1,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,2,0,0,0,3,
- 0,0,0,67,0,0,0,115,18,0,0,0,124,0,160,0,
- 124,1,161,1,114,14,124,0,83,0,100,0,83,0,114,69,
- 0,0,0,41,1,114,206,0,0,0,169,2,114,142,0,0,
- 0,114,239,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,19,103,101,116,95,114,101,115,111,117,
- 114,99,101,95,114,101,97,100,101,114,23,4,0,0,115,6,
- 0,0,0,0,2,10,1,4,1,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,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
- 0,0,115,32,0,0,0,116,0,116,1,124,0,106,2,131,
- 1,100,1,25,0,124,1,131,2,125,2,116,3,160,4,124,
- 2,100,2,161,2,83,0,41,3,78,114,0,0,0,0,114,
- 18,1,0,0,41,5,114,67,0,0,0,114,74,0,0,0,
- 114,65,0,0,0,114,90,0,0,0,114,91,0,0,0,169,
- 3,114,142,0,0,0,90,8,114,101,115,111,117,114,99,101,
- 114,65,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,13,111,112,101,110,95,114,101,115,111,117,
- 114,99,101,29,4,0,0,115,4,0,0,0,0,1,20,1,
- 122,24,70,105,108,101,76,111,97,100,101,114,46,111,112,101,
- 110,95,114,101,115,111,117,114,99,101,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,38,0,0,0,124,0,160,0,124,1,161,1,
- 115,14,116,1,130,1,116,2,116,3,124,0,106,4,131,1,
- 100,1,25,0,124,1,131,2,125,2,124,2,83,0,169,2,
- 78,114,0,0,0,0,41,5,218,11,105,115,95,114,101,115,
- 111,117,114,99,101,218,17,70,105,108,101,78,111,116,70,111,
- 117,110,100,69,114,114,111,114,114,67,0,0,0,114,74,0,
- 0,0,114,65,0,0,0,114,22,1,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,13,114,101,115,
- 111,117,114,99,101,95,112,97,116,104,33,4,0,0,115,8,
- 0,0,0,0,1,10,1,4,1,20,1,122,24,70,105,108,
- 101,76,111,97,100,101,114,46,114,101,115,111,117,114,99,101,
- 95,112,97,116,104,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,40,
- 0,0,0,116,0,124,1,118,0,114,12,100,1,83,0,116,
- 1,116,2,124,0,106,3,131,1,100,2,25,0,124,1,131,
- 2,125,2,116,4,124,2,131,1,83,0,41,3,78,70,114,
- 0,0,0,0,41,5,114,59,0,0,0,114,67,0,0,0,
- 114,74,0,0,0,114,65,0,0,0,114,80,0,0,0,169,
- 3,114,142,0,0,0,114,140,0,0,0,114,65,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 25,1,0,0,39,4,0,0,115,8,0,0,0,0,1,8,
- 1,4,1,20,1,122,22,70,105,108,101,76,111,97,100,101,
- 114,46,105,115,95,114,101,115,111,117,114,99,101,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,
- 0,0,67,0,0,0,115,24,0,0,0,116,0,116,1,160,
- 2,116,3,124,0,106,4,131,1,100,1,25,0,161,1,131,
- 1,83,0,114,24,1,0,0,41,5,218,4,105,116,101,114,
- 114,24,0,0,0,218,7,108,105,115,116,100,105,114,114,74,
- 0,0,0,114,65,0,0,0,114,13,1,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,8,99,111,
- 110,116,101,110,116,115,45,4,0,0,115,2,0,0,0,0,
- 1,122,19,70,105,108,101,76,111,97,100,101,114,46,99,111,
- 110,116,101,110,116,115,41,17,114,149,0,0,0,114,148,0,
- 0,0,114,150,0,0,0,114,151,0,0,0,114,232,0,0,
- 0,114,10,1,0,0,114,14,1,0,0,114,160,0,0,0,
- 114,243,0,0,0,114,203,0,0,0,114,250,0,0,0,114,
- 21,1,0,0,114,23,1,0,0,114,27,1,0,0,114,25,
- 1,0,0,114,31,1,0,0,90,13,95,95,99,108,97,115,
- 115,99,101,108,108,95,95,114,10,0,0,0,114,10,0,0,
- 0,114,16,1,0,0,114,11,0,0,0,114,6,1,0,0,
- 233,3,0,0,115,30,0,0,0,8,2,4,3,8,6,8,
- 4,8,3,2,1,14,11,2,1,10,4,8,11,2,1,10,
- 5,8,4,8,6,8,6,114,6,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,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,2,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,193,0,0,0,114,1,1,0,
- 0,41,3,114,75,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,142,0,
- 0,0,114,65,0,0,0,114,5,1,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,247,0,0,0,
- 53,4,0,0,115,4,0,0,0,0,2,8,1,122,27,83,
- 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,
- 112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,0,
- 0,0,0,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,138,
- 0,0,0,114,248,0,0,0,41,5,114,142,0,0,0,114,
- 133,0,0,0,114,131,0,0,0,114,43,0,0,0,114,78,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,114,249,0,0,0,58,4,0,0,115,4,0,0,0,
- 0,2,8,1,122,32,83,111,117,114,99,101,70,105,108,101,
- 76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,
- 116,101,99,111,100,101,114,86,0,0,0,114,34,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,252,0,0,0,116,0,
- 124,1,131,1,92,2,125,4,125,5,103,0,125,6,124,4,
- 114,52,116,1,124,4,131,1,115,52,116,0,124,4,131,1,
- 92,2,125,4,125,7,124,6,160,2,124,7,161,1,1,0,
- 113,16,116,3,124,6,131,1,68,0,93,104,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,60,4,0,116,7,121,110,1,0,
- 1,0,1,0,89,0,113,60,89,0,113,60,4,0,116,8,
- 121,162,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,48,0,
- 48,0,113,60,122,28,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,
- 110,52,4,0,116,8,144,0,121,246,1,0,125,8,1,0,
- 122,26,116,9,160,10,100,1,124,1,124,8,161,3,1,0,
- 87,0,89,0,100,2,125,8,126,8,110,10,100,2,125,8,
- 126,8,48,0,48,0,100,2,83,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,74,0,0,0,114,82,0,0,
- 0,114,61,0,0,0,218,8,114,101,118,101,114,115,101,100,
- 114,67,0,0,0,114,24,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,76,0,0,0,114,158,0,0,0,114,173,0,0,
- 0,114,94,0,0,0,41,9,114,142,0,0,0,114,65,0,
- 0,0,114,43,0,0,0,114,35,1,0,0,218,6,112,97,
- 114,101,110,116,114,119,0,0,0,114,63,0,0,0,114,68,
- 0,0,0,114,251,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,248,0,0,0,63,4,0,0,
- 115,46,0,0,0,0,2,12,1,4,2,12,1,12,1,12,
- 2,12,1,10,1,2,1,14,1,12,2,8,1,14,3,6,
- 1,4,255,4,2,28,1,2,1,12,1,16,1,16,2,8,
- 1,2,255,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,149,0,0,0,114,148,0,0,0,114,150,0,0,0,
- 114,151,0,0,0,114,247,0,0,0,114,249,0,0,0,114,
- 248,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,32,1,0,0,49,4,0,
- 0,115,8,0,0,0,8,2,4,2,8,5,8,5,114,32,
- 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,183,0,
- 0,0,114,169,0,0,0,41,2,114,140,0,0,0,114,131,
- 0,0,0,41,5,114,203,0,0,0,114,250,0,0,0,114,
- 176,0,0,0,114,189,0,0,0,114,2,1,0,0,41,5,
- 114,142,0,0,0,114,163,0,0,0,114,65,0,0,0,114,
- 43,0,0,0,114,175,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,236,0,0,0,98,4,0,
- 0,115,22,0,0,0,0,1,10,1,10,4,2,1,2,254,
- 6,4,12,1,2,1,14,1,2,1,2,253,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,115,4,0,0,0,100,1,83,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,10,0,0,0,114,242,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,114,252,0,0,0,114,4,0,0,115,2,0,0,0,
- 0,2,122,31,83,111,117,114,99,101,108,101,115,115,70,105,
- 108,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,
- 114,99,101,78,41,6,114,149,0,0,0,114,148,0,0,0,
- 114,150,0,0,0,114,151,0,0,0,114,236,0,0,0,114,
- 252,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,39,1,0,0,94,4,0,
- 0,115,6,0,0,0,8,2,4,2,8,16,114,39,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,19,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,8,0,0,0,67,0,0,0,115,62,0,0,0,124,
- 1,124,0,95,0,116,1,124,2,131,1,115,52,122,18,116,
- 2,116,3,160,4,161,0,124,2,131,2,125,2,87,0,110,
- 18,4,0,116,5,121,50,1,0,1,0,1,0,89,0,110,
- 2,48,0,124,2,124,0,95,6,100,0,83,0,114,69,0,
- 0,0,41,7,114,140,0,0,0,114,85,0,0,0,114,67,
- 0,0,0,114,24,0,0,0,114,81,0,0,0,114,76,0,
- 0,0,114,65,0,0,0,114,28,1,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,232,0,0,0,
- 131,4,0,0,115,14,0,0,0,0,1,6,1,8,1,2,
- 1,18,1,12,1,6,1,122,28,69,120,116,101,110,115,105,
- 111,110,70,105,108,101,76,111,97,100,101,114,46,95,95,105,
- 110,105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,24,
- 0,0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,
- 0,106,1,124,1,106,1,107,2,83,0,114,69,0,0,0,
- 114,7,1,0,0,114,9,1,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,10,1,0,0,140,4,
- 0,0,115,6,0,0,0,0,1,12,1,10,255,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,115,20,0,0,0,116,0,124,0,106,1,131,1,116,
- 0,124,0,106,2,131,1,65,0,83,0,114,69,0,0,0,
- 114,11,1,0,0,114,13,1,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,14,1,0,0,144,4,
- 0,0,115,2,0,0,0,0,1,122,28,69,120,116,101,110,
- 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,
- 95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,0,
- 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,2,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,41,7,114,158,0,
- 0,0,114,237,0,0,0,114,187,0,0,0,90,14,99,114,
- 101,97,116,101,95,100,121,110,97,109,105,99,114,173,0,0,
- 0,114,140,0,0,0,114,65,0,0,0,41,3,114,142,0,
- 0,0,114,210,0,0,0,114,239,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,235,0,0,0,
- 147,4,0,0,115,14,0,0,0,0,2,4,1,6,255,4,
- 2,6,1,8,255,4,2,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,158,0,0,0,
- 114,237,0,0,0,114,187,0,0,0,90,12,101,120,101,99,
- 95,100,121,110,97,109,105,99,114,173,0,0,0,114,140,0,
- 0,0,114,65,0,0,0,114,20,1,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,240,0,0,0,
- 155,4,0,0,115,8,0,0,0,0,2,14,1,6,1,8,
- 255,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,4,122,49,82,101,116,117,114,110,32,84,
- 114,117,101,32,105,102,32,116,104,101,32,101,120,116,101,110,
- 115,105,111,110,32,109,111,100,117,108,101,32,105,115,32,97,
- 32,112,97,99,107,97,103,101,46,114,4,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,232,0,0,0,78,114,10,
- 0,0,0,169,2,114,8,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,
- 10,0,0,0,114,11,0,0,0,114,12,0,0,0,164,4,
- 0,0,115,4,0,0,0,4,1,2,255,122,49,69,120,116,
- 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,
- 46,105,115,95,112,97,99,107,97,103,101,46,60,108,111,99,
- 97,108,115,62,46,60,103,101,110,101,120,112,114,62,41,4,
- 114,74,0,0,0,114,65,0,0,0,218,3,97,110,121,218,
- 18,69,88,84,69,78,83,73,79,78,95,83,85,70,70,73,
- 88,69,83,114,242,0,0,0,114,10,0,0,0,114,42,1,
- 0,0,114,11,0,0,0,114,206,0,0,0,161,4,0,0,
- 115,8,0,0,0,0,2,14,1,12,1,2,255,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,115,4,0,0,0,100,1,83,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,10,0,0,0,114,242,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,236,0,0,
- 0,167,4,0,0,115,2,0,0,0,0,2,122,28,69,120,
- 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
- 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
- 0,0,0,115,4,0,0,0,100,1,83,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,10,0,0,0,114,242,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 252,0,0,0,171,4,0,0,115,2,0,0,0,0,2,122,
- 30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
- 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 1,0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,
- 0,83,0,114,17,1,0,0,114,71,0,0,0,114,242,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,203,0,0,0,175,4,0,0,115,2,0,0,0,0,
- 3,122,32,69,120,116,101,110,115,105,111,110,70,105,108,101,
- 76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,
- 97,109,101,78,41,14,114,149,0,0,0,114,148,0,0,0,
- 114,150,0,0,0,114,151,0,0,0,114,232,0,0,0,114,
- 10,1,0,0,114,14,1,0,0,114,235,0,0,0,114,240,
- 0,0,0,114,206,0,0,0,114,236,0,0,0,114,252,0,
- 0,0,114,160,0,0,0,114,203,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 114,19,1,0,0,123,4,0,0,115,22,0,0,0,8,2,
- 4,6,8,9,8,4,8,3,8,8,8,6,8,6,8,4,
- 8,4,2,1,114,19,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,69,
- 0,0,0,41,6,218,5,95,110,97,109,101,218,5,95,112,
- 97,116,104,114,135,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,142,0,
- 0,0,114,140,0,0,0,114,65,0,0,0,90,11,112,97,
- 116,104,95,102,105,110,100,101,114,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,232,0,0,0,188,4,0,
- 0,115,8,0,0,0,0,1,6,1,6,1,14,1,122,23,
- 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
- 95,105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,
- 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,5,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,96,0,
- 0,0,114,14,0,0,0,41,2,114,21,0,0,0,114,65,
- 0,0,0,90,8,95,95,112,97,116,104,95,95,41,2,114,
- 46,1,0,0,114,103,0,0,0,41,4,114,142,0,0,0,
- 114,38,1,0,0,218,3,100,111,116,90,2,109,101,114,10,
- 0,0,0,114,10,0,0,0,114,11,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,194,4,0,0,115,8,0,0,0,0,
- 2,18,1,8,2,4,3,122,38,95,78,97,109,101,115,112,
- 97,99,101,80,97,116,104,46,95,102,105,110,100,95,112,97,
- 114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,99,
- 1,0,0,0,0,0,0,0,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,69,0,0,0,41,4,
- 114,53,1,0,0,114,154,0,0,0,114,21,0,0,0,218,
- 7,109,111,100,117,108,101,115,41,3,114,142,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,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,114,48,1,0,0,204,4,0,0,115,4,0,0,0,
- 0,1,12,1,122,31,95,78,97,109,101,115,112,97,99,101,
- 80,97,116,104,46,95,103,101,116,95,112,97,114,101,110,116,
- 95,112,97,116,104,99,1,0,0,0,0,0,0,0,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,69,0,0,0,41,8,114,135,0,0,0,114,
- 48,1,0,0,114,49,1,0,0,114,50,1,0,0,114,46,
- 1,0,0,114,164,0,0,0,114,202,0,0,0,114,47,1,
- 0,0,41,3,114,142,0,0,0,90,11,112,97,114,101,110,
- 116,95,112,97,116,104,114,210,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,12,95,114,101,99,
- 97,108,99,117,108,97,116,101,208,4,0,0,115,16,0,0,
- 0,0,2,12,1,10,1,14,3,18,1,6,1,8,1,6,
- 1,122,27,95,78,97,109,101,115,112,97,99,101,80,97,116,
- 104,46,95,114,101,99,97,108,99,117,108,97,116,101,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
- 0,0,0,67,0,0,0,115,12,0,0,0,116,0,124,0,
- 160,1,161,0,131,1,83,0,114,69,0,0,0,41,2,114,
- 29,1,0,0,114,55,1,0,0,114,13,1,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,218,8,95,
- 95,105,116,101,114,95,95,221,4,0,0,115,2,0,0,0,
- 0,1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,
- 116,104,46,95,95,105,116,101,114,95,95,99,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,69,0,0,0,169,1,114,55,1,0,
- 0,41,2,114,142,0,0,0,218,5,105,110,100,101,120,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,11,
- 95,95,103,101,116,105,116,101,109,95,95,224,4,0,0,115,
- 2,0,0,0,0,1,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,69,
- 0,0,0,41,1,114,47,1,0,0,41,3,114,142,0,0,
- 0,114,58,1,0,0,114,65,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,11,95,95,115,101,
- 116,105,116,101,109,95,95,227,4,0,0,115,2,0,0,0,
- 0,1,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,115,12,0,0,0,116,0,124,0,
- 160,1,161,0,131,1,83,0,114,69,0,0,0,41,2,114,
- 6,0,0,0,114,55,1,0,0,114,13,1,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,218,7,95,
- 95,108,101,110,95,95,230,4,0,0,115,2,0,0,0,0,
- 1,122,22,95,78,97,109,101,115,112,97,99,101,80,97,116,
- 104,46,95,95,108,101,110,95,95,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
- 0,0,115,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,88,
- 0,0,0,114,47,1,0,0,114,13,1,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,8,95,95,
- 114,101,112,114,95,95,233,4,0,0,115,2,0,0,0,0,
- 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,
- 104,46,95,95,114,101,112,114,95,95,99,2,0,0,0,0,
- 0,0,0,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,69,0,0,0,114,57,1,0,0,169,2,
- 114,142,0,0,0,218,4,105,116,101,109,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,12,95,95,99,111,
- 110,116,97,105,110,115,95,95,236,4,0,0,115,2,0,0,
- 0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,80,
- 97,116,104,46,95,95,99,111,110,116,97,105,110,115,95,95,
- 99,2,0,0,0,0,0,0,0,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,69,
- 0,0,0,41,2,114,47,1,0,0,114,61,0,0,0,114,
- 63,1,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,114,61,0,0,0,239,4,0,0,115,2,0,0,
- 0,0,1,122,21,95,78,97,109,101,115,112,97,99,101,80,
- 97,116,104,46,97,112,112,101,110,100,78,41,15,114,149,0,
- 0,0,114,148,0,0,0,114,150,0,0,0,114,151,0,0,
- 0,114,232,0,0,0,114,53,1,0,0,114,48,1,0,0,
- 114,55,1,0,0,114,56,1,0,0,114,59,1,0,0,114,
- 60,1,0,0,114,61,1,0,0,114,62,1,0,0,114,65,
- 1,0,0,114,61,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,45,1,0,
- 0,181,4,0,0,115,24,0,0,0,8,1,4,6,8,6,
- 8,10,8,4,8,13,8,3,8,3,8,3,8,3,8,3,
- 8,3,114,45,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,80,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,83,0,41,18,218,16,95,78,97,109,101,115,112,
- 97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0,
- 0,0,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,69,0,0,0,41,2,
- 114,45,1,0,0,114,47,1,0,0,114,51,1,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,232,
- 0,0,0,245,4,0,0,115,2,0,0,0,0,1,122,25,
- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
- 46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,
- 0,0,115,12,0,0,0,100,1,160,0,124,1,106,1,161,
- 1,83,0,41,2,122,115,82,101,116,117,114,110,32,114,101,
- 112,114,32,102,111,114,32,116,104,101,32,109,111,100,117,108,
- 101,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,
- 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
- 97,116,101,100,46,32,32,84,104,101,32,105,109,112,111,114,
- 116,32,109,97,99,104,105,110,101,114,121,32,100,111,101,115,
- 32,116,104,101,32,106,111,98,32,105,116,115,101,108,102,46,
- 10,10,32,32,32,32,32,32,32,32,122,25,60,109,111,100,
- 117,108,101,32,123,33,114,125,32,40,110,97,109,101,115,112,
- 97,99,101,41,62,41,2,114,88,0,0,0,114,149,0,0,
- 0,41,2,114,216,0,0,0,114,239,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,11,109,111,
- 100,117,108,101,95,114,101,112,114,248,4,0,0,115,2,0,
- 0,0,0,7,122,28,95,78,97,109,101,115,112,97,99,101,
- 76,111,97,100,101,114,46,109,111,100,117,108,101,95,114,101,
- 112,114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,
- 100,1,83,0,41,2,78,84,114,10,0,0,0,114,242,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,206,0,0,0,1,5,0,0,115,2,0,0,0,0,
- 1,122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,
- 100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
- 0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,0,
- 41,2,78,114,14,0,0,0,114,10,0,0,0,114,242,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,252,0,0,0,4,5,0,0,115,2,0,0,0,0,
- 1,122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,
- 100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,
- 0,0,0,0,0,0,0,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,
- 14,0,0,0,122,8,60,115,116,114,105,110,103,62,114,238,
- 0,0,0,84,41,1,114,254,0,0,0,41,1,114,255,0,
- 0,0,114,242,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,236,0,0,0,7,5,0,0,115,
- 2,0,0,0,0,1,122,25,95,78,97,109,101,115,112,97,
- 99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,
- 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
- 1,83,0,114,233,0,0,0,114,10,0,0,0,114,234,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,235,0,0,0,10,5,0,0,115,2,0,0,0,0,
- 1,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,69,0,0,0,114,10,0,0,0,114,20,1,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,240,0,0,0,13,5,0,0,115,2,0,0,0,0,
- 1,122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,
- 100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,
- 2,0,0,0,0,0,0,0,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,2,122,98,76,111,97,100,32,
- 97,32,110,97,109,101,115,112,97,99,101,32,109,111,100,117,
- 108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
- 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
- 101,99,97,116,101,100,46,32,32,85,115,101,32,101,120,101,
- 99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,
- 97,100,46,10,10,32,32,32,32,32,32,32,32,122,38,110,
- 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,32,
- 108,111,97,100,101,100,32,119,105,116,104,32,112,97,116,104,
- 32,123,33,114,125,41,4,114,158,0,0,0,114,173,0,0,
- 0,114,47,1,0,0,114,241,0,0,0,114,242,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 243,0,0,0,16,5,0,0,115,8,0,0,0,0,7,6,
- 1,4,255,4,2,122,28,95,78,97,109,101,115,112,97,99,
- 101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,
- 117,108,101,78,41,12,114,149,0,0,0,114,148,0,0,0,
- 114,150,0,0,0,114,232,0,0,0,114,230,0,0,0,114,
- 67,1,0,0,114,206,0,0,0,114,252,0,0,0,114,236,
- 0,0,0,114,235,0,0,0,114,240,0,0,0,114,243,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,66,1,0,0,244,4,0,0,115,
- 18,0,0,0,8,1,8,3,2,1,10,8,8,3,8,3,
- 8,3,8,3,8,3,114,66,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,4,100,
- 6,100,7,132,0,131,1,90,7,101,4,100,8,100,9,132,
- 0,131,1,90,8,101,4,100,19,100,11,100,12,132,1,131,
- 1,90,9,101,4,100,20,100,13,100,14,132,1,131,1,90,
- 10,101,4,100,21,100,15,100,16,132,1,131,1,90,11,101,
- 4,100,17,100,18,132,0,131,1,90,12,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,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,64,0,0,0,116,0,116,1,106,
- 2,160,3,161,0,131,1,68,0,93,44,92,2,125,1,125,
- 2,124,2,100,1,117,0,114,40,116,1,106,2,124,1,61,
- 0,113,14,116,4,124,2,100,2,131,2,114,14,124,2,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,21,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,152,0,0,0,114,69,
- 1,0,0,41,3,114,216,0,0,0,114,140,0,0,0,218,
- 6,102,105,110,100,101,114,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,69,1,0,0,34,5,0,0,115,
- 10,0,0,0,0,4,22,1,8,1,10,1,10,1,122,28,
- 80,97,116,104,70,105,110,100,101,114,46,105,110,118,97,108,
- 105,100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,9,0,0,
- 0,67,0,0,0,115,82,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,42,125,2,
- 122,14,124,2,124,1,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,
- 89,0,113,34,48,0,113,34,100,1,83,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,21,0,0,0,218,
- 10,112,97,116,104,95,104,111,111,107,115,114,98,0,0,0,
- 114,99,0,0,0,114,162,0,0,0,114,141,0,0,0,41,
- 3,114,216,0,0,0,114,65,0,0,0,90,4,104,111,111,
- 107,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 218,11,95,112,97,116,104,95,104,111,111,107,115,44,5,0,
- 0,115,16,0,0,0,0,3,16,1,12,1,10,1,2,1,
- 14,1,12,1,12,2,122,22,80,97,116,104,70,105,110,100,
- 101,114,46,95,112,97,116,104,95,104,111,111,107,115,99,2,
- 0,0,0,0,0,0,0,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,42,122,12,116,0,160,1,161,0,125,1,87,0,
- 110,20,4,0,116,2,121,40,1,0,1,0,1,0,89,0,
- 100,2,83,0,48,0,122,14,116,3,106,4,124,1,25,0,
- 125,2,87,0,110,38,4,0,116,5,121,94,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,110,2,48,0,124,2,83,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,14,0,0,0,78,41,7,114,24,
- 0,0,0,114,81,0,0,0,114,26,1,0,0,114,21,0,
- 0,0,114,71,1,0,0,218,8,75,101,121,69,114,114,111,
- 114,114,75,1,0,0,41,3,114,216,0,0,0,114,65,0,
- 0,0,114,73,1,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,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,57,5,0,0,
- 115,22,0,0,0,0,8,8,1,2,1,12,1,12,3,8,
- 1,2,1,14,1,12,1,10,1,16,1,122,31,80,97,116,
- 104,70,105,110,100,101,114,46,95,112,97,116,104,95,105,109,
- 112,111,114,116,101,114,95,99,97,99,104,101,99,3,0,0,
- 0,0,0,0,0,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,
- 161,0,0,0,41,7,114,152,0,0,0,114,161,0,0,0,
- 114,229,0,0,0,114,158,0,0,0,114,224,0,0,0,114,
- 207,0,0,0,114,202,0,0,0,41,6,114,216,0,0,0,
- 114,163,0,0,0,114,73,1,0,0,114,164,0,0,0,114,
- 165,0,0,0,114,210,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,16,95,108,101,103,97,99,
- 121,95,103,101,116,95,115,112,101,99,79,5,0,0,115,18,
- 0,0,0,0,4,10,1,16,2,10,1,4,1,8,1,12,
- 1,12,1,6,1,122,27,80,97,116,104,70,105,110,100,101,
- 114,46,95,108,101,103,97,99,121,95,103,101,116,95,115,112,
- 101,99,78,99,4,0,0,0,0,0,0,0,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,8,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,226,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,185,0,0,0,114,108,0,0,
- 0,218,5,98,121,116,101,115,114,77,1,0,0,114,152,0,
- 0,0,114,226,0,0,0,114,78,1,0,0,114,164,0,0,
- 0,114,202,0,0,0,114,141,0,0,0,114,191,0,0,0,
- 114,158,0,0,0,114,207,0,0,0,41,9,114,216,0,0,
- 0,114,163,0,0,0,114,65,0,0,0,114,225,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,73,1,0,0,114,210,0,0,
- 0,114,165,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,9,95,103,101,116,95,115,112,101,99,
- 94,5,0,0,115,40,0,0,0,0,5,4,1,8,1,14,
- 1,2,1,10,1,8,1,10,1,14,2,12,1,8,1,2,
- 1,10,1,8,1,6,1,8,1,8,5,12,2,12,1,6,
- 1,122,20,80,97,116,104,70,105,110,100,101,114,46,95,103,
- 101,116,95,115,112,101,99,99,4,0,0,0,0,0,0,0,
- 0,0,0,0,6,0,0,0,5,0,0,0,67,0,0,0,
- 115,100,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,92,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,110,
- 4,124,4,83,0,100,1,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,21,0,
- 0,0,114,65,0,0,0,114,81,1,0,0,114,164,0,0,
- 0,114,202,0,0,0,114,205,0,0,0,114,45,1,0,0,
- 41,6,114,216,0,0,0,114,163,0,0,0,114,65,0,0,
- 0,114,225,0,0,0,114,210,0,0,0,114,80,1,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 226,0,0,0,126,5,0,0,115,26,0,0,0,0,6,8,
- 1,6,1,14,1,8,1,4,1,10,1,6,1,4,3,6,
- 1,16,1,4,2,6,2,122,20,80,97,116,104,70,105,110,
- 100,101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,
- 0,0,0,0,0,0,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,227,0,0,0,114,228,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,229,0,0,0,150,5,0,0,115,8,0,0,0,0,
- 8,12,1,8,1,4,1,122,22,80,97,116,104,70,105,110,
- 100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,4,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,3,1,0,124,3,106,2,124,1,105,
- 0,124,2,164,1,142,1,83,0,41,3,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,41,3,90,18,105,
- 109,112,111,114,116,108,105,98,46,109,101,116,97,100,97,116,
- 97,114,82,1,0,0,218,18,102,105,110,100,95,100,105,115,
- 116,114,105,98,117,116,105,111,110,115,41,4,114,216,0,0,
- 0,114,143,0,0,0,114,144,0,0,0,114,82,1,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 83,1,0,0,163,5,0,0,115,4,0,0,0,0,10,12,
- 1,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,13,114,149,0,0,
- 0,114,148,0,0,0,114,150,0,0,0,114,151,0,0,0,
- 114,230,0,0,0,114,69,1,0,0,114,75,1,0,0,114,
- 77,1,0,0,114,78,1,0,0,114,81,1,0,0,114,226,
- 0,0,0,114,229,0,0,0,114,83,1,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,68,1,0,0,30,5,0,0,115,34,0,0,0,8,
- 2,4,2,2,1,10,9,2,1,10,12,2,1,10,21,2,
- 1,10,14,2,1,12,31,2,1,12,23,2,1,12,12,2,
- 1,114,68,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,112,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,116,3,124,0,106,2,131,1,115,86,116,4,116,5,
- 160,6,161,0,124,0,106,2,131,2,124,0,95,2,100,4,
- 124,0,95,7,116,8,131,0,124,0,95,9,116,8,131,0,
- 124,0,95,10,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,69,0,0,0,114,
- 10,0,0,0,114,40,1,0,0,169,1,114,164,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,12,0,0,0,192,
- 5,0,0,114,13,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,96,0,0,0,114,129,0,0,0,78,41,11,114,191,0,
- 0,0,218,8,95,108,111,97,100,101,114,115,114,65,0,0,
- 0,114,85,0,0,0,114,67,0,0,0,114,24,0,0,0,
- 114,81,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,142,0,0,0,
- 114,65,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,212,
- 0,0,0,114,10,0,0,0,114,85,1,0,0,114,11,0,
- 0,0,114,232,0,0,0,186,5,0,0,115,20,0,0,0,
- 0,4,4,1,12,1,26,1,6,2,10,1,10,1,18,1,
- 6,1,8,1,122,19,70,105,108,101,70,105,110,100,101,114,
- 46,95,95,105,110,105,116,95,95,99,1,0,0,0,0,0,
- 0,0,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,129,0,0,0,78,41,1,114,87,1,0,
- 0,114,13,1,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,69,1,0,0,202,5,0,0,115,2,
- 0,0,0,0,2,122,28,70,105,108,101,70,105,110,100,101,
- 114,46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
- 104,101,115,99,2,0,0,0,0,0,0,0,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,226,0,0,0,114,164,0,0,
- 0,114,202,0,0,0,41,3,114,142,0,0,0,114,163,0,
- 0,0,114,210,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,161,0,0,0,208,5,0,0,115,
- 8,0,0,0,0,7,10,1,8,1,8,1,122,22,70,105,
- 108,101,70,105,110,100,101,114,46,102,105,110,100,95,108,111,
- 97,100,101,114,99,6,0,0,0,0,0,0,0,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,
- 201,0,0,0,41,1,114,213,0,0,0,41,7,114,142,0,
- 0,0,114,211,0,0,0,114,163,0,0,0,114,65,0,0,
- 0,90,4,115,109,115,108,114,225,0,0,0,114,164,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 114,81,1,0,0,220,5,0,0,115,8,0,0,0,0,1,
- 10,1,8,1,2,255,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,9,0,
- 0,0,67,0,0,0,115,126,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,22,4,0,116,6,121,64,1,0,1,
- 0,1,0,100,4,125,5,89,0,110,2,48,0,124,5,124,
- 0,106,7,107,3,114,90,124,0,160,8,161,0,1,0,124,
- 5,124,0,95,7,116,9,131,0,114,112,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,216,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,
- 148,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,148,116,17,124,8,131,
- 1,125,3,124,0,106,14,68,0,93,112,92,2,125,9,125,
- 10,122,20,116,13,124,0,106,2,124,4,124,9,23,0,131,
- 2,125,12,87,0,110,24,4,0,116,18,144,1,121,18,1,
- 0,1,0,1,0,89,0,1,0,100,6,83,0,48,0,116,
- 19,106,20,100,7,124,12,100,3,100,8,141,3,1,0,124,
- 7,124,9,23,0,124,6,118,0,114,222,116,15,124,12,131,
- 1,114,222,124,0,160,16,124,10,124,1,124,12,100,6,124,
- 2,161,5,2,0,1,0,83,0,113,222,124,3,144,1,114,
- 122,116,19,160,20,100,9,124,8,161,2,1,0,116,19,160,
- 21,124,1,100,6,161,2,125,13,124,8,103,1,124,13,95,
- 22,124,13,83,0,100,6,83,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,96,0,
- 0,0,114,45,0,0,0,114,129,0,0,0,114,232,0,0,
- 0,78,122,9,116,114,121,105,110,103,32,123,125,41,1,90,
- 9,118,101,114,98,111,115,105,116,121,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,23,114,103,0,0,0,114,75,0,0,
- 0,114,65,0,0,0,114,24,0,0,0,114,81,0,0,0,
- 114,33,1,0,0,114,76,0,0,0,114,87,1,0,0,218,
- 11,95,102,105,108,108,95,99,97,99,104,101,114,27,0,0,
- 0,114,90,1,0,0,114,130,0,0,0,114,89,1,0,0,
- 114,67,0,0,0,114,86,1,0,0,114,80,0,0,0,114,
- 81,1,0,0,114,82,0,0,0,114,110,0,0,0,114,158,
- 0,0,0,114,173,0,0,0,114,207,0,0,0,114,202,0,
- 0,0,41,14,114,142,0,0,0,114,163,0,0,0,114,225,
- 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,193,
- 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,41,1,0,0,114,211,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,210,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,226,0,0,0,
- 225,5,0,0,115,78,0,0,0,0,5,4,1,14,1,2,
- 1,24,1,12,1,10,1,10,1,8,1,6,2,6,1,6,
- 1,10,2,6,1,4,2,8,1,12,1,14,1,8,1,10,
- 1,8,1,26,4,8,2,14,1,2,1,20,1,14,1,10,
- 1,16,1,12,1,8,1,10,1,4,255,10,2,6,1,12,
- 1,12,1,8,1,4,1,122,20,70,105,108,101,70,105,110,
- 100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,0,
- 0,0,67,0,0,0,115,188,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,28,4,0,116,4,116,5,116,
- 6,102,3,121,56,1,0,1,0,1,0,103,0,125,2,89,
- 0,110,2,48,0,116,7,106,8,160,9,100,1,161,1,115,
- 82,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,134,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,
- 92,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,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,
- 20,0,0,0,114,96,0,0,0,114,87,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,10,0,0,0,41,1,114,130,0,0,0,41,2,114,8,
- 0,0,0,90,2,102,110,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,19,0,0,0,49,6,0,0,114,
- 13,0,0,0,122,41,70,105,108,101,70,105,110,100,101,114,
- 46,95,102,105,108,108,95,99,97,99,104,101,46,60,108,111,
- 99,97,108,115,62,46,60,115,101,116,99,111,109,112,62,78,
- 41,18,114,65,0,0,0,114,24,0,0,0,114,30,1,0,
- 0,114,81,0,0,0,114,26,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,21,0,0,0,114,28,0,0,0,114,29,0,0,0,114,
- 88,1,0,0,114,89,1,0,0,114,125,0,0,0,114,88,
- 0,0,0,114,130,0,0,0,218,3,97,100,100,114,30,0,
- 0,0,114,90,1,0,0,41,9,114,142,0,0,0,114,65,
- 0,0,0,114,31,1,0,0,90,21,108,111,119,101,114,95,
- 115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,
- 64,1,0,0,114,140,0,0,0,114,52,1,0,0,114,41,
- 1,0,0,90,8,110,101,119,95,110,97,109,101,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,92,1,0,
- 0,20,6,0,0,115,34,0,0,0,0,2,6,1,2,1,
- 22,1,18,3,10,3,12,1,12,7,6,1,8,1,16,1,
- 4,1,18,2,4,1,12,1,6,1,12,1,122,22,70,105,
- 108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
- 97,99,104,101,99,1,0,0,0,0,0,0,0,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,3,97,20,1,0,0,65,32,99,108,97,
- 115,115,32,109,101,116,104,111,100,32,119,104,105,99,104,32,
- 114,101,116,117,114,110,115,32,97,32,99,108,111,115,117,114,
- 101,32,116,111,32,117,115,101,32,111,110,32,115,121,115,46,
- 112,97,116,104,95,104,111,111,107,10,32,32,32,32,32,32,
- 32,32,119,104,105,99,104,32,119,105,108,108,32,114,101,116,
- 117,114,110,32,97,110,32,105,110,115,116,97,110,99,101,32,
- 117,115,105,110,103,32,116,104,101,32,115,112,101,99,105,102,
- 105,101,100,32,108,111,97,100,101,114,115,32,97,110,100,32,
- 116,104,101,32,112,97,116,104,10,32,32,32,32,32,32,32,
- 32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,
- 108,111,115,117,114,101,46,10,10,32,32,32,32,32,32,32,
- 32,73,102,32,116,104,101,32,112,97,116,104,32,99,97,108,
- 108,101,100,32,111,110,32,116,104,101,32,99,108,111,115,117,
- 114,101,32,105,115,32,110,111,116,32,97,32,100,105,114,101,
- 99,116,111,114,121,44,32,73,109,112,111,114,116,69,114,114,
- 111,114,32,105,115,10,32,32,32,32,32,32,32,32,114,97,
- 105,115,101,100,46,10,10,32,32,32,32,32,32,32,32,99,
- 1,0,0,0,0,0,0,0,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,3,122,45,80,97,116,104,32,104,111,111,107,32,102,
- 111,114,32,105,109,112,111,114,116,108,105,98,46,109,97,99,
- 104,105,110,101,114,121,46,70,105,108,101,70,105,110,100,101,
- 114,46,122,30,111,110,108,121,32,100,105,114,101,99,116,111,
- 114,105,101,115,32,97,114,101,32,115,117,112,112,111,114,116,
- 101,100,114,71,0,0,0,41,2,114,82,0,0,0,114,141,
- 0,0,0,114,71,0,0,0,169,2,114,216,0,0,0,114,
- 91,1,0,0,114,10,0,0,0,114,11,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,61,6,0,0,115,6,0,0,
- 0,0,2,8,1,12,1,122,54,70,105,108,101,70,105,110,
- 100,101,114,46,112,97,116,104,95,104,111,111,107,46,60,108,
- 111,99,97,108,115,62,46,112,97,116,104,95,104,111,111,107,
- 95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,114,
- 10,0,0,0,41,3,114,216,0,0,0,114,91,1,0,0,
- 114,97,1,0,0,114,10,0,0,0,114,96,1,0,0,114,
- 11,0,0,0,218,9,112,97,116,104,95,104,111,111,107,51,
- 6,0,0,115,4,0,0,0,0,10,14,6,122,20,70,105,
- 108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111,
- 111,107,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
- 0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,
- 100,1,160,0,124,0,106,1,161,1,83,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,88,0,0,0,114,65,0,0,0,114,13,1,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,62,1,0,0,69,6,0,0,115,2,0,0,0,0,
- 1,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95,
- 114,101,112,114,95,95,41,1,78,41,15,114,149,0,0,0,
- 114,148,0,0,0,114,150,0,0,0,114,151,0,0,0,114,
- 232,0,0,0,114,69,1,0,0,114,167,0,0,0,114,229,
- 0,0,0,114,161,0,0,0,114,81,1,0,0,114,226,0,
- 0,0,114,92,1,0,0,114,230,0,0,0,114,98,1,0,
- 0,114,62,1,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,84,1,0,0,177,
- 5,0,0,115,22,0,0,0,8,2,4,7,8,16,8,4,
- 4,2,8,12,8,5,10,51,8,31,2,1,10,17,114,84,
- 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,36,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,110,18,4,0,116,5,121,
- 138,1,0,1,0,1,0,89,0,110,2,48,0,100,0,83,
- 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,85,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,164,0,0,
- 0,114,39,1,0,0,114,32,1,0,0,114,213,0,0,0,
- 218,9,69,120,99,101,112,116,105,111,110,41,6,90,2,110,
- 115,114,140,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,164,0,0,0,
- 114,210,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,14,95,102,105,120,95,117,112,95,109,111,
- 100,117,108,101,75,6,0,0,115,34,0,0,0,0,2,10,
- 1,10,1,4,1,4,1,8,1,8,1,12,2,10,1,4,
- 1,14,1,2,1,8,1,8,1,8,1,12,1,12,2,114,
- 103,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,1,122,95,82,101,116,117,
- 114,110,115,32,97,32,108,105,115,116,32,111,102,32,102,105,
- 108,101,45,98,97,115,101,100,32,109,111,100,117,108,101,32,
- 108,111,97,100,101,114,115,46,10,10,32,32,32,32,69,97,
- 99,104,32,105,116,101,109,32,105,115,32,97,32,116,117,112,
- 108,101,32,40,108,111,97,100,101,114,44,32,115,117,102,102,
- 105,120,101,115,41,46,10,32,32,32,32,41,7,114,19,1,
- 0,0,114,187,0,0,0,218,18,101,120,116,101,110,115,105,
- 111,110,95,115,117,102,102,105,120,101,115,114,32,1,0,0,
- 114,126,0,0,0,114,39,1,0,0,114,112,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,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,208,
- 0,0,0,98,6,0,0,115,8,0,0,0,0,5,12,1,
- 8,1,8,1,114,208,0,0,0,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,10,0,0,0,9,0,0,0,67,0,
- 0,0,115,132,1,0,0,124,0,97,0,116,0,106,1,97,
- 1,116,0,106,2,97,2,116,1,106,3,116,4,25,0,125,
- 1,100,1,100,2,103,1,102,2,100,3,100,4,100,2,103,
- 2,102,2,102,2,125,2,124,2,68,0,93,108,92,2,125,
- 3,125,4,116,5,100,5,100,6,132,0,124,4,68,0,131,
- 1,131,1,115,82,74,0,130,1,124,4,100,7,25,0,125,
- 5,124,3,116,1,106,3,118,0,114,116,116,1,106,3,124,
- 3,25,0,125,6,1,0,113,170,113,52,122,20,116,0,160,
- 6,124,3,161,1,125,6,87,0,1,0,113,170,87,0,113,
- 52,4,0,116,7,121,158,1,0,1,0,1,0,89,0,113,
- 52,89,0,113,52,48,0,113,52,116,7,100,8,131,1,130,
- 1,116,8,124,1,100,9,124,6,131,3,1,0,116,8,124,
- 1,100,10,124,5,131,3,1,0,116,8,124,1,100,11,100,
- 12,160,9,124,4,161,1,131,3,1,0,116,8,124,1,100,
- 13,100,14,100,15,132,0,124,4,68,0,131,1,131,3,1,
- 0,103,0,100,16,162,1,125,7,124,3,100,3,107,2,144,
- 1,114,6,124,7,160,10,100,17,161,1,1,0,124,7,68,
- 0,93,52,125,8,124,8,116,1,106,3,118,1,144,1,114,
- 38,116,0,160,6,124,8,161,1,125,9,110,10,116,1,106,
- 3,124,8,25,0,125,9,116,8,124,1,124,8,124,9,131,
- 3,1,0,144,1,113,10,116,8,124,1,100,18,116,11,131,
- 0,131,3,1,0,116,12,160,13,116,2,160,14,161,0,161,
- 1,1,0,124,3,100,3,107,2,144,1,114,128,116,15,160,
- 10,100,19,161,1,1,0,100,20,116,12,118,0,144,1,114,
- 128,100,21,116,16,95,17,100,22,83,0,41,23,122,205,83,
- 101,116,117,112,32,116,104,101,32,112,97,116,104,45,98,97,
- 115,101,100,32,105,109,112,111,114,116,101,114,115,32,102,111,
- 114,32,105,109,112,111,114,116,108,105,98,32,98,121,32,105,
- 109,112,111,114,116,105,110,103,32,110,101,101,100,101,100,10,
- 32,32,32,32,98,117,105,108,116,45,105,110,32,109,111,100,
- 117,108,101,115,32,97,110,100,32,105,110,106,101,99,116,105,
- 110,103,32,116,104,101,109,32,105,110,116,111,32,116,104,101,
- 32,103,108,111,98,97,108,32,110,97,109,101,115,112,97,99,
- 101,46,10,10,32,32,32,32,79,116,104,101,114,32,99,111,
- 109,112,111,110,101,110,116,115,32,97,114,101,32,101,120,116,
- 114,97,99,116,101,100,32,102,114,111,109,32,116,104,101,32,
- 99,111,114,101,32,98,111,111,116,115,116,114,97,112,32,109,
- 111,100,117,108,101,46,10,10,32,32,32,32,218,5,112,111,
- 115,105,120,114,2,0,0,0,218,2,110,116,114,1,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,115,0,0,0,115,26,0,0,0,124,
- 0,93,18,125,1,116,0,124,1,131,1,100,0,107,2,86,
- 0,1,0,113,2,100,1,83,0,114,3,0,0,0,114,5,
- 0,0,0,114,7,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,12,0,0,0,127,6,0,0,
- 114,13,0,0,0,122,25,95,115,101,116,117,112,46,60,108,
- 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,
- 114,0,0,0,0,122,30,105,109,112,111,114,116,108,105,98,
- 32,114,101,113,117,105,114,101,115,32,112,111,115,105,120,32,
- 111,114,32,110,116,114,24,0,0,0,114,59,0,0,0,114,
- 50,0,0,0,114,14,0,0,0,218,20,95,112,97,116,104,
- 115,101,112,115,95,119,105,116,104,95,99,111,108,111,110,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,22,0,0,0,104,0,124,
- 0,93,14,125,1,100,0,124,1,155,0,157,2,146,2,113,
- 4,83,0,114,15,0,0,0,114,10,0,0,0,114,17,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,19,0,0,0,144,6,0,0,114,13,0,0,0,122,
- 25,95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,
- 46,60,115,101,116,99,111,109,112,62,41,3,114,90,0,0,
- 0,114,98,0,0,0,114,184,0,0,0,114,215,0,0,0,
- 114,27,0,0,0,122,4,46,112,121,119,122,6,95,100,46,
- 112,121,100,84,78,41,18,114,158,0,0,0,114,21,0,0,
- 0,114,187,0,0,0,114,54,1,0,0,114,149,0,0,0,
- 218,3,97,108,108,90,18,95,98,117,105,108,116,105,110,95,
- 102,114,111,109,95,110,97,109,101,114,141,0,0,0,114,153,
- 0,0,0,114,62,0,0,0,114,61,0,0,0,114,32,0,
- 0,0,114,44,1,0,0,114,191,0,0,0,114,104,1,0,
- 0,114,126,0,0,0,114,214,0,0,0,114,218,0,0,0,
- 41,10,218,17,95,98,111,111,116,115,116,114,97,112,95,109,
- 111,100,117,108,101,90,11,115,101,108,102,95,109,111,100,117,
- 108,101,90,10,111,115,95,100,101,116,97,105,108,115,90,10,
- 98,117,105,108,116,105,110,95,111,115,114,50,0,0,0,114,
- 59,0,0,0,90,9,111,115,95,109,111,100,117,108,101,90,
- 13,98,117,105,108,116,105,110,95,110,97,109,101,115,90,12,
- 98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,117,
- 105,108,116,105,110,95,109,111,100,117,108,101,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,6,95,115,101,
- 116,117,112,109,6,0,0,115,70,0,0,0,0,8,4,1,
- 6,1,6,2,10,3,22,1,12,2,22,1,8,1,10,1,
- 10,1,6,2,2,1,10,1,10,1,12,1,12,2,8,2,
- 12,1,12,1,18,1,22,3,8,1,10,1,10,1,8,1,
- 12,1,12,2,10,1,16,3,14,1,14,1,10,1,10,1,
- 10,1,114,110,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,110,1,0,0,114,208,0,0,
- 0,114,21,0,0,0,114,74,1,0,0,114,191,0,0,0,
- 114,84,1,0,0,114,98,1,0,0,218,9,109,101,116,97,
- 95,112,97,116,104,114,61,0,0,0,114,68,1,0,0,41,
- 2,114,109,1,0,0,90,17,115,117,112,112,111,114,116,101,
- 100,95,108,111,97,100,101,114,115,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,8,95,105,110,115,116,97,
- 108,108,166,6,0,0,115,8,0,0,0,0,2,8,1,6,
- 1,20,1,114,112,1,0,0,41,1,114,86,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,81,114,151,
- 0,0,0,114,187,0,0,0,114,90,0,0,0,114,21,0,
- 0,0,114,98,0,0,0,114,184,0,0,0,114,28,0,0,
- 0,90,11,95,77,83,95,87,73,78,68,79,87,83,114,106,
- 1,0,0,114,24,0,0,0,114,215,0,0,0,114,105,1,
- 0,0,114,50,0,0,0,114,108,1,0,0,114,59,0,0,
- 0,114,135,0,0,0,114,57,0,0,0,114,62,0,0,0,
- 114,107,1,0,0,114,31,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,30,0,0,0,114,32,0,0,0,114,39,0,0,0,
- 114,44,0,0,0,114,46,0,0,0,114,67,0,0,0,114,
- 74,0,0,0,114,75,0,0,0,114,79,0,0,0,114,80,
- 0,0,0,114,82,0,0,0,114,85,0,0,0,114,94,0,
- 0,0,218,4,116,121,112,101,218,8,95,95,99,111,100,101,
- 95,95,114,186,0,0,0,114,37,0,0,0,114,172,0,0,
- 0,114,36,0,0,0,114,41,0,0,0,114,3,1,0,0,
- 114,115,0,0,0,114,111,0,0,0,114,126,0,0,0,114,
- 112,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,120,0,0,0,114,
- 127,0,0,0,114,134,0,0,0,114,136,0,0,0,114,138,
- 0,0,0,114,160,0,0,0,114,167,0,0,0,114,176,0,
- 0,0,114,180,0,0,0,114,182,0,0,0,114,189,0,0,
- 0,114,194,0,0,0,114,195,0,0,0,114,200,0,0,0,
- 218,6,111,98,106,101,99,116,114,209,0,0,0,114,213,0,
- 0,0,114,214,0,0,0,114,231,0,0,0,114,244,0,0,
- 0,114,6,1,0,0,114,32,1,0,0,114,39,1,0,0,
- 114,44,1,0,0,114,19,1,0,0,114,45,1,0,0,114,
- 66,1,0,0,114,68,1,0,0,114,84,1,0,0,114,103,
- 1,0,0,114,208,0,0,0,114,110,1,0,0,114,112,1,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,218,8,60,109,111,100,117,108,101,62,
- 1,0,0,0,115,170,0,0,0,4,22,8,1,8,1,8,
- 1,8,1,8,3,10,1,4,1,8,1,10,2,8,3,4,
- 1,10,2,6,2,22,1,8,1,8,1,10,1,14,4,4,
- 1,4,1,2,1,2,255,4,4,8,17,8,5,8,5,8,
- 6,4,1,10,30,8,6,8,8,8,10,8,9,8,5,8,
- 7,6,1,10,8,8,5,10,22,10,127,0,20,16,1,12,
- 2,4,1,4,2,6,2,6,2,8,2,16,71,8,40,8,
- 19,8,12,8,12,8,28,8,17,8,33,8,28,8,24,10,
- 13,10,10,10,11,8,14,6,3,4,1,2,255,12,68,14,
- 64,14,29,16,127,0,17,14,72,18,45,18,26,4,3,18,
- 58,14,63,14,42,14,127,0,20,14,127,0,27,10,23,8,
- 11,8,57,
+const unsigned char _Py_M__importlib_bootstrap_external[] = {
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,5,0,0,0,64,0,0,0,115,224,2,0,0,100,0,
+ 90,0,100,1,100,2,108,1,97,1,100,1,100,2,108,2,
+ 90,2,100,1,100,2,108,3,97,3,100,1,100,2,108,4,
+ 90,4,100,1,100,2,108,5,90,5,116,3,106,6,100,3,
+ 107,2,90,7,101,7,114,76,100,1,100,2,108,8,90,9,
+ 100,1,100,2,108,10,90,10,110,8,100,1,100,2,108,11,
+ 90,9,101,7,114,98,100,4,100,5,103,2,90,12,110,6,
+ 100,5,103,1,90,12,101,13,100,6,100,7,132,0,101,12,
+ 68,0,131,1,131,1,115,126,74,0,130,1,101,12,100,1,
+ 25,0,90,14,101,15,101,12,131,1,90,16,100,8,160,17,
+ 101,12,161,1,90,12,100,9,100,10,132,0,101,12,68,0,
+ 131,1,90,18,100,11,90,19,100,12,90,20,101,20,101,19,
+ 23,0,90,21,100,13,100,14,132,0,90,22,100,15,100,16,
+ 132,0,90,23,100,17,100,18,132,0,90,24,100,19,100,20,
+ 132,0,90,25,101,7,114,228,100,21,100,22,132,0,90,26,
+ 110,8,100,23,100,22,132,0,90,26,100,24,100,25,132,0,
+ 90,27,100,26,100,27,132,0,90,28,100,28,100,29,132,0,
+ 90,29,100,30,100,31,132,0,90,30,100,32,100,33,132,0,
+ 90,31,101,7,144,1,114,36,100,34,100,35,132,0,90,32,
+ 110,8,100,36,100,35,132,0,90,32,100,111,100,38,100,39,
+ 132,1,90,33,101,34,101,33,106,35,131,1,90,36,100,40,
+ 160,37,100,41,100,42,161,2,100,43,23,0,90,38,101,39,
+ 160,40,101,38,100,42,161,2,90,41,100,44,90,42,100,45,
+ 90,43,100,46,103,1,90,44,100,47,103,1,90,45,101,45,
+ 4,0,90,46,90,47,100,112,100,2,100,48,156,1,100,49,
+ 100,50,132,3,90,48,100,51,100,52,132,0,90,49,100,53,
+ 100,54,132,0,90,50,100,55,100,56,132,0,90,51,100,57,
+ 100,58,132,0,90,52,100,59,100,60,132,0,90,53,100,61,
+ 100,62,132,0,90,54,100,63,100,64,132,0,90,55,100,65,
+ 100,66,132,0,90,56,100,67,100,68,132,0,90,57,100,113,
+ 100,69,100,70,132,1,90,58,100,114,100,71,100,72,132,1,
+ 90,59,100,115,100,74,100,75,132,1,90,60,100,76,100,77,
+ 132,0,90,61,101,62,131,0,90,63,100,116,100,2,101,63,
+ 100,78,156,2,100,79,100,80,132,3,90,64,71,0,100,81,
+ 100,82,132,0,100,82,131,2,90,65,71,0,100,83,100,84,
+ 132,0,100,84,131,2,90,66,71,0,100,85,100,86,132,0,
+ 100,86,101,66,131,3,90,67,71,0,100,87,100,88,132,0,
+ 100,88,131,2,90,68,71,0,100,89,100,90,132,0,100,90,
+ 101,68,101,67,131,4,90,69,71,0,100,91,100,92,132,0,
+ 100,92,101,68,101,66,131,4,90,70,103,0,90,71,71,0,
+ 100,93,100,94,132,0,100,94,101,68,101,66,131,4,90,72,
+ 71,0,100,95,100,96,132,0,100,96,131,2,90,73,71,0,
+ 100,97,100,98,132,0,100,98,131,2,90,74,71,0,100,99,
+ 100,100,132,0,100,100,131,2,90,75,71,0,100,101,100,102,
+ 132,0,100,102,131,2,90,76,100,117,100,103,100,104,132,1,
+ 90,77,100,105,100,106,132,0,90,78,100,107,100,108,132,0,
+ 90,79,100,109,100,110,132,0,90,80,100,2,83,0,41,118,
+ 97,94,1,0,0,67,111,114,101,32,105,109,112,108,101,109,
+ 101,110,116,97,116,105,111,110,32,111,102,32,112,97,116,104,
+ 45,98,97,115,101,100,32,105,109,112,111,114,116,46,10,10,
+ 84,104,105,115,32,109,111,100,117,108,101,32,105,115,32,78,
+ 79,84,32,109,101,97,110,116,32,116,111,32,98,101,32,100,
+ 105,114,101,99,116,108,121,32,105,109,112,111,114,116,101,100,
+ 33,32,73,116,32,104,97,115,32,98,101,101,110,32,100,101,
+ 115,105,103,110,101,100,32,115,117,99,104,10,116,104,97,116,
+ 32,105,116,32,99,97,110,32,98,101,32,98,111,111,116,115,
+ 116,114,97,112,112,101,100,32,105,110,116,111,32,80,121,116,
+ 104,111,110,32,97,115,32,116,104,101,32,105,109,112,108,101,
+ 109,101,110,116,97,116,105,111,110,32,111,102,32,105,109,112,
+ 111,114,116,46,32,65,115,10,115,117,99,104,32,105,116,32,
+ 114,101,113,117,105,114,101,115,32,116,104,101,32,105,110,106,
+ 101,99,116,105,111,110,32,111,102,32,115,112,101,99,105,102,
+ 105,99,32,109,111,100,117,108,101,115,32,97,110,100,32,97,
+ 116,116,114,105,98,117,116,101,115,32,105,110,32,111,114,100,
+ 101,114,32,116,111,10,119,111,114,107,46,32,79,110,101,32,
+ 115,104,111,117,108,100,32,117,115,101,32,105,109,112,111,114,
+ 116,108,105,98,32,97,115,32,116,104,101,32,112,117,98,108,
+ 105,99,45,102,97,99,105,110,103,32,118,101,114,115,105,111,
+ 110,32,111,102,32,116,104,105,115,32,109,111,100,117,108,101,
+ 46,10,10,233,0,0,0,0,78,90,5,119,105,110,51,50,
+ 250,1,92,250,1,47,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,3,0,0,0,99,0,0,0,115,
+ 26,0,0,0,124,0,93,18,125,1,116,0,124,1,131,1,
+ 100,0,107,2,86,0,1,0,113,2,100,1,83,0,169,2,
+ 233,1,0,0,0,78,169,1,218,3,108,101,110,169,2,218,
+ 2,46,48,218,3,115,101,112,169,0,114,10,0,0,0,250,
+ 38,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
+ 105,98,46,95,98,111,111,116,115,116,114,97,112,95,101,120,
+ 116,101,114,110,97,108,62,218,9,60,103,101,110,101,120,112,
+ 114,62,43,0,0,0,243,0,0,0,0,114,12,0,0,0,
+ 218,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,22,0,0,0,
+ 104,0,124,0,93,14,125,1,100,0,124,1,155,0,157,2,
+ 146,2,113,4,83,0,169,1,250,1,58,114,10,0,0,0,
+ 169,2,114,8,0,0,0,218,1,115,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,9,60,115,101,116,99,
+ 111,109,112,62,47,0,0,0,114,13,0,0,0,114,19,0,
+ 0,0,41,1,218,3,119,105,110,41,2,90,6,99,121,103,
+ 119,105,110,90,6,100,97,114,119,105,110,99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
+ 3,0,0,0,115,60,0,0,0,116,0,106,1,160,2,116,
+ 3,161,1,114,48,116,0,106,1,160,2,116,4,161,1,114,
+ 30,100,1,137,0,110,4,100,2,137,0,135,0,102,1,100,
+ 3,100,4,132,8,125,0,110,8,100,5,100,4,132,0,125,
+ 0,124,0,83,0,41,6,78,90,12,80,89,84,72,79,78,
+ 67,65,83,69,79,75,115,12,0,0,0,80,89,84,72,79,
+ 78,67,65,83,69,79,75,99,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,19,0,0,0,
+ 115,20,0,0,0,116,0,106,1,106,2,12,0,111,18,136,
+ 0,116,3,106,4,118,0,83,0,41,1,122,94,84,114,117,
+ 101,32,105,102,32,102,105,108,101,110,97,109,101,115,32,109,
+ 117,115,116,32,98,101,32,99,104,101,99,107,101,100,32,99,
+ 97,115,101,45,105,110,115,101,110,115,105,116,105,118,101,108,
+ 121,32,97,110,100,32,105,103,110,111,114,101,32,101,110,118,
+ 105,114,111,110,109,101,110,116,32,102,108,97,103,115,32,97,
+ 114,101,32,110,111,116,32,115,101,116,46,41,5,218,3,115,
+ 121,115,218,5,102,108,97,103,115,218,18,105,103,110,111,114,
+ 101,95,101,110,118,105,114,111,110,109,101,110,116,218,3,95,
+ 111,115,90,7,101,110,118,105,114,111,110,114,10,0,0,0,
+ 169,1,218,3,107,101,121,114,10,0,0,0,114,11,0,0,
+ 0,218,11,95,114,101,108,97,120,95,99,97,115,101,64,0,
+ 0,0,115,2,0,0,0,0,2,122,37,95,109,97,107,101,
+ 95,114,101,108,97,120,95,99,97,115,101,46,60,108,111,99,
+ 97,108,115,62,46,95,114,101,108,97,120,95,99,97,115,101,
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,83,0,0,0,115,4,0,0,0,100,1,
+ 83,0,41,2,122,53,84,114,117,101,32,105,102,32,102,105,
+ 108,101,110,97,109,101,115,32,109,117,115,116,32,98,101,32,
+ 99,104,101,99,107,101,100,32,99,97,115,101,45,105,110,115,
+ 101,110,115,105,116,105,118,101,108,121,46,70,114,10,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,27,0,0,0,68,0,0,0,115,2,
+ 0,0,0,0,2,41,5,114,21,0,0,0,218,8,112,108,
+ 97,116,102,111,114,109,218,10,115,116,97,114,116,115,119,105,
+ 116,104,218,27,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,218,
+ 35,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,83,84,82,
+ 95,75,69,89,41,1,114,27,0,0,0,114,10,0,0,0,
+ 114,25,0,0,0,114,11,0,0,0,218,16,95,109,97,107,
+ 101,95,114,101,108,97,120,95,99,97,115,101,57,0,0,0,
+ 115,14,0,0,0,0,1,12,1,12,1,6,2,4,2,14,
+ 4,8,3,114,32,0,0,0,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,
+ 0,115,20,0,0,0,116,0,124,0,131,1,100,1,64,0,
+ 160,1,100,2,100,3,161,2,83,0,41,4,122,42,67,111,
+ 110,118,101,114,116,32,97,32,51,50,45,98,105,116,32,105,
+ 110,116,101,103,101,114,32,116,111,32,108,105,116,116,108,101,
+ 45,101,110,100,105,97,110,46,236,3,0,0,0,255,127,255,
+ 127,3,0,233,4,0,0,0,218,6,108,105,116,116,108,101,
+ 41,2,218,3,105,110,116,218,8,116,111,95,98,121,116,101,
+ 115,41,1,218,1,120,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,12,95,112,97,99,107,95,117,105,110,
+ 116,51,50,74,0,0,0,115,2,0,0,0,0,2,114,39,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 1,0,0,0,4,0,0,0,67,0,0,0,115,28,0,0,
+ 0,116,0,124,0,131,1,100,1,107,2,115,16,74,0,130,
+ 1,116,1,160,2,124,0,100,2,161,2,83,0,41,3,122,
+ 47,67,111,110,118,101,114,116,32,52,32,98,121,116,101,115,
+ 32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97,
+ 110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46,
+ 114,34,0,0,0,114,35,0,0,0,169,3,114,6,0,0,
+ 0,114,36,0,0,0,218,10,102,114,111,109,95,98,121,116,
+ 101,115,169,1,218,4,100,97,116,97,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,14,95,117,110,112,97,
+ 99,107,95,117,105,110,116,51,50,79,0,0,0,115,4,0,
+ 0,0,0,2,16,1,114,44,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,
+ 67,0,0,0,115,28,0,0,0,116,0,124,0,131,1,100,
+ 1,107,2,115,16,74,0,130,1,116,1,160,2,124,0,100,
+ 2,161,2,83,0,41,3,122,47,67,111,110,118,101,114,116,
+ 32,50,32,98,121,116,101,115,32,105,110,32,108,105,116,116,
+ 108,101,45,101,110,100,105,97,110,32,116,111,32,97,110,32,
+ 105,110,116,101,103,101,114,46,233,2,0,0,0,114,35,0,
+ 0,0,114,40,0,0,0,114,42,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,14,95,117,110,
+ 112,97,99,107,95,117,105,110,116,49,54,84,0,0,0,115,
+ 4,0,0,0,0,2,16,1,114,46,0,0,0,99,0,0,
+ 0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,
+ 0,0,71,0,0,0,115,228,0,0,0,124,0,115,8,100,
+ 1,83,0,116,0,124,0,131,1,100,2,107,2,114,28,124,
+ 0,100,3,25,0,83,0,100,1,125,1,103,0,125,2,116,
+ 1,116,2,106,3,124,0,131,2,68,0,93,122,92,2,125,
+ 3,125,4,124,3,160,4,116,5,161,1,115,76,124,3,160,
+ 6,116,5,161,1,114,102,124,3,160,7,116,8,161,1,112,
+ 88,124,1,125,1,116,9,124,4,23,0,103,1,125,2,113,
+ 48,124,3,160,6,100,4,161,1,114,152,124,1,160,10,161,
+ 0,124,3,160,10,161,0,107,3,114,140,124,3,125,1,124,
+ 4,103,1,125,2,113,170,124,2,160,11,124,4,161,1,1,
+ 0,113,48,124,3,112,158,124,1,125,1,124,2,160,11,124,
+ 4,161,1,1,0,113,48,100,5,100,6,132,0,124,2,68,
+ 0,131,1,125,2,116,0,124,2,131,1,100,2,107,2,114,
+ 214,124,2,100,3,25,0,115,214,124,1,116,9,23,0,83,
+ 0,124,1,116,9,160,12,124,2,161,1,23,0,83,0,41,
+ 7,250,31,82,101,112,108,97,99,101,109,101,110,116,32,102,
+ 111,114,32,111,115,46,112,97,116,104,46,106,111,105,110,40,
+ 41,46,114,14,0,0,0,114,4,0,0,0,114,0,0,0,
+ 0,114,16,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,5,0,0,0,83,0,0,0,115,
+ 26,0,0,0,103,0,124,0,93,18,125,1,124,1,114,4,
+ 124,1,160,0,116,1,161,1,145,2,113,4,83,0,114,10,
+ 0,0,0,169,2,218,6,114,115,116,114,105,112,218,15,112,
+ 97,116,104,95,115,101,112,97,114,97,116,111,114,115,169,2,
+ 114,8,0,0,0,218,1,112,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,10,60,108,105,115,116,99,111,
+ 109,112,62,114,0,0,0,114,13,0,0,0,250,30,95,112,
+ 97,116,104,95,106,111,105,110,46,60,108,111,99,97,108,115,
+ 62,46,60,108,105,115,116,99,111,109,112,62,41,13,114,6,
+ 0,0,0,218,3,109,97,112,114,24,0,0,0,218,15,95,
+ 112,97,116,104,95,115,112,108,105,116,114,111,111,116,114,29,
+ 0,0,0,218,14,112,97,116,104,95,115,101,112,95,116,117,
+ 112,108,101,218,8,101,110,100,115,119,105,116,104,114,49,0,
+ 0,0,114,50,0,0,0,218,8,112,97,116,104,95,115,101,
+ 112,218,8,99,97,115,101,102,111,108,100,218,6,97,112,112,
+ 101,110,100,218,4,106,111,105,110,41,5,218,10,112,97,116,
+ 104,95,112,97,114,116,115,218,4,114,111,111,116,218,4,112,
+ 97,116,104,90,8,110,101,119,95,114,111,111,116,218,4,116,
+ 97,105,108,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,218,10,95,112,97,116,104,95,106,111,105,110,91,0,
+ 0,0,115,42,0,0,0,0,2,4,1,4,1,12,1,8,
+ 1,4,1,4,1,20,1,20,1,14,1,12,1,10,1,16,
+ 3,4,1,8,2,12,2,8,1,12,1,14,1,20,2,8,
+ 1,114,67,0,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,4,0,0,0,71,0,0,0,115,
+ 20,0,0,0,116,0,160,1,100,1,100,2,132,0,124,0,
+ 68,0,131,1,161,1,83,0,41,3,114,47,0,0,0,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 5,0,0,0,83,0,0,0,115,26,0,0,0,103,0,124,
+ 0,93,18,125,1,124,1,114,4,124,1,160,0,116,1,161,
+ 1,145,2,113,4,83,0,114,10,0,0,0,114,48,0,0,
+ 0,41,2,114,8,0,0,0,218,4,112,97,114,116,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,114,53,0,
+ 0,0,123,0,0,0,115,4,0,0,0,6,1,6,255,114,
+ 54,0,0,0,41,2,114,59,0,0,0,114,62,0,0,0,
+ 41,1,114,63,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,67,0,0,0,121,0,0,0,115,
+ 6,0,0,0,0,2,10,1,2,255,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,3,
+ 0,0,0,115,66,0,0,0,116,0,135,0,102,1,100,1,
+ 100,2,132,8,116,1,68,0,131,1,131,1,125,1,124,1,
+ 100,3,107,0,114,38,100,4,136,0,102,2,83,0,136,0,
+ 100,5,124,1,133,2,25,0,136,0,124,1,100,6,23,0,
+ 100,5,133,2,25,0,102,2,83,0,41,7,122,32,82,101,
+ 112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,115,
+ 46,112,97,116,104,46,115,112,108,105,116,40,41,46,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,24,0,0,0,124,0,93,16,
+ 125,1,136,0,160,0,124,1,161,1,86,0,1,0,113,2,
+ 100,0,83,0,169,1,78,41,1,218,5,114,102,105,110,100,
+ 114,51,0,0,0,169,1,114,65,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,12,0,0,0,129,0,0,0,114,
+ 13,0,0,0,122,30,95,112,97,116,104,95,115,112,108,105,
+ 116,46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,
+ 120,112,114,62,114,0,0,0,0,114,14,0,0,0,78,114,
+ 4,0,0,0,41,2,218,3,109,97,120,114,50,0,0,0,
+ 41,2,114,65,0,0,0,218,1,105,114,10,0,0,0,114,
+ 71,0,0,0,114,11,0,0,0,218,11,95,112,97,116,104,
+ 95,115,112,108,105,116,127,0,0,0,115,8,0,0,0,0,
+ 2,22,1,8,1,8,1,114,74,0,0,0,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,115,10,0,0,0,116,0,160,1,124,0,
+ 161,1,83,0,41,1,122,126,83,116,97,116,32,116,104,101,
+ 32,112,97,116,104,46,10,10,32,32,32,32,77,97,100,101,
+ 32,97,32,115,101,112,97,114,97,116,101,32,102,117,110,99,
+ 116,105,111,110,32,116,111,32,109,97,107,101,32,105,116,32,
+ 101,97,115,105,101,114,32,116,111,32,111,118,101,114,114,105,
+ 100,101,32,105,110,32,101,120,112,101,114,105,109,101,110,116,
+ 115,10,32,32,32,32,40,101,46,103,46,32,99,97,99,104,
+ 101,32,115,116,97,116,32,114,101,115,117,108,116,115,41,46,
+ 10,10,32,32,32,32,41,2,114,24,0,0,0,90,4,115,
+ 116,97,116,114,71,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,10,95,112,97,116,104,95,115,
+ 116,97,116,135,0,0,0,115,2,0,0,0,0,7,114,75,
+ 0,0,0,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,48,0,0,
+ 0,122,12,116,0,124,0,131,1,125,2,87,0,110,20,4,
+ 0,116,1,121,32,1,0,1,0,1,0,89,0,100,1,83,
+ 0,48,0,124,2,106,2,100,2,64,0,124,1,107,2,83,
+ 0,41,3,122,49,84,101,115,116,32,119,104,101,116,104,101,
+ 114,32,116,104,101,32,112,97,116,104,32,105,115,32,116,104,
+ 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,101,
+ 32,116,121,112,101,46,70,105,0,240,0,0,41,3,114,75,
+ 0,0,0,218,7,79,83,69,114,114,111,114,218,7,115,116,
+ 95,109,111,100,101,41,3,114,65,0,0,0,218,4,109,111,
+ 100,101,90,9,115,116,97,116,95,105,110,102,111,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,18,95,112,
+ 97,116,104,95,105,115,95,109,111,100,101,95,116,121,112,101,
+ 145,0,0,0,115,10,0,0,0,0,2,2,1,12,1,12,
+ 1,8,1,114,79,0,0,0,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,115,10,0,0,0,116,0,124,0,100,1,131,2,83,0,
+ 41,2,122,31,82,101,112,108,97,99,101,109,101,110,116,32,
+ 102,111,114,32,111,115,46,112,97,116,104,46,105,115,102,105,
+ 108,101,46,105,0,128,0,0,41,1,114,79,0,0,0,114,
+ 71,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,12,95,112,97,116,104,95,105,115,102,105,108,
+ 101,154,0,0,0,115,2,0,0,0,0,2,114,80,0,0,
+ 0,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,115,22,0,0,0,124,
+ 0,115,12,116,0,160,1,161,0,125,0,116,2,124,0,100,
+ 1,131,2,83,0,41,2,122,30,82,101,112,108,97,99,101,
+ 109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,104,
+ 46,105,115,100,105,114,46,105,0,64,0,0,41,3,114,24,
+ 0,0,0,218,6,103,101,116,99,119,100,114,79,0,0,0,
+ 114,71,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,11,95,112,97,116,104,95,105,115,100,105,
+ 114,159,0,0,0,115,6,0,0,0,0,2,4,1,8,1,
+ 114,82,0,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,62,
+ 0,0,0,124,0,115,8,100,1,83,0,116,0,160,1,124,
+ 0,161,1,100,2,25,0,160,2,100,3,100,4,161,2,125,
+ 1,116,3,124,1,131,1,100,5,107,4,111,60,124,1,160,
+ 4,100,6,161,1,112,60,124,1,160,5,100,4,161,1,83,
+ 0,41,7,250,30,82,101,112,108,97,99,101,109,101,110,116,
+ 32,102,111,114,32,111,115,46,112,97,116,104,46,105,115,97,
+ 98,115,46,70,114,0,0,0,0,114,2,0,0,0,114,1,
+ 0,0,0,114,4,0,0,0,122,2,92,92,41,6,114,24,
+ 0,0,0,114,56,0,0,0,218,7,114,101,112,108,97,99,
+ 101,114,6,0,0,0,114,29,0,0,0,114,58,0,0,0,
+ 41,2,114,65,0,0,0,114,64,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,11,95,112,97,
+ 116,104,95,105,115,97,98,115,167,0,0,0,115,8,0,0,
+ 0,0,2,4,1,4,1,22,1,114,85,0,0,0,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,115,10,0,0,0,124,0,160,0,
+ 116,1,161,1,83,0,41,1,114,83,0,0,0,41,2,114,
+ 29,0,0,0,114,50,0,0,0,114,71,0,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,114,85,0,
+ 0,0,175,0,0,0,115,2,0,0,0,0,2,233,182,1,
+ 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,6,
+ 0,0,0,11,0,0,0,67,0,0,0,115,178,0,0,0,
+ 100,1,160,0,124,0,116,1,124,0,131,1,161,2,125,3,
+ 116,2,160,3,124,3,116,2,106,4,116,2,106,5,66,0,
+ 116,2,106,6,66,0,124,2,100,2,64,0,161,3,125,4,
+ 122,70,116,7,160,8,124,4,100,3,161,2,143,26,125,5,
+ 124,5,160,9,124,1,161,1,1,0,87,0,100,4,4,0,
+ 4,0,131,3,1,0,110,16,49,0,115,94,48,0,1,0,
+ 1,0,1,0,89,0,1,0,116,2,160,10,124,3,124,0,
+ 161,2,1,0,87,0,110,54,4,0,116,11,121,172,1,0,
+ 1,0,1,0,122,14,116,2,160,12,124,3,161,1,1,0,
+ 87,0,110,18,4,0,116,11,121,164,1,0,1,0,1,0,
+ 89,0,110,2,48,0,130,0,89,0,110,2,48,0,100,4,
+ 83,0,41,5,122,162,66,101,115,116,45,101,102,102,111,114,
+ 116,32,102,117,110,99,116,105,111,110,32,116,111,32,119,114,
+ 105,116,101,32,100,97,116,97,32,116,111,32,97,32,112,97,
+ 116,104,32,97,116,111,109,105,99,97,108,108,121,46,10,32,
+ 32,32,32,66,101,32,112,114,101,112,97,114,101,100,32,116,
+ 111,32,104,97,110,100,108,101,32,97,32,70,105,108,101,69,
+ 120,105,115,116,115,69,114,114,111,114,32,105,102,32,99,111,
+ 110,99,117,114,114,101,110,116,32,119,114,105,116,105,110,103,
+ 32,111,102,32,116,104,101,10,32,32,32,32,116,101,109,112,
+ 111,114,97,114,121,32,102,105,108,101,32,105,115,32,97,116,
+ 116,101,109,112,116,101,100,46,250,5,123,125,46,123,125,114,
+ 86,0,0,0,90,2,119,98,78,41,13,218,6,102,111,114,
+ 109,97,116,218,2,105,100,114,24,0,0,0,90,4,111,112,
+ 101,110,90,6,79,95,69,88,67,76,90,7,79,95,67,82,
+ 69,65,84,90,8,79,95,87,82,79,78,76,89,218,3,95,
+ 105,111,218,6,70,105,108,101,73,79,218,5,119,114,105,116,
+ 101,114,84,0,0,0,114,76,0,0,0,90,6,117,110,108,
+ 105,110,107,41,6,114,65,0,0,0,114,43,0,0,0,114,
+ 78,0,0,0,90,8,112,97,116,104,95,116,109,112,90,2,
+ 102,100,218,4,102,105,108,101,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,13,95,119,114,105,116,101,95,
+ 97,116,111,109,105,99,180,0,0,0,115,28,0,0,0,0,
+ 5,16,1,6,1,22,255,4,2,2,3,14,1,40,1,16,
+ 1,12,1,2,1,14,1,12,1,6,1,114,94,0,0,0,
+ 105,97,13,0,0,114,45,0,0,0,114,35,0,0,0,115,
+ 2,0,0,0,13,10,90,11,95,95,112,121,99,97,99,104,
+ 101,95,95,122,4,111,112,116,45,122,3,46,112,121,122,4,
+ 46,112,121,99,41,1,218,12,111,112,116,105,109,105,122,97,
+ 116,105,111,110,99,2,0,0,0,0,0,0,0,1,0,0,
+ 0,12,0,0,0,5,0,0,0,67,0,0,0,115,88,1,
+ 0,0,124,1,100,1,117,1,114,52,116,0,160,1,100,2,
+ 116,2,161,2,1,0,124,2,100,1,117,1,114,40,100,3,
+ 125,3,116,3,124,3,131,1,130,1,124,1,114,48,100,4,
+ 110,2,100,5,125,2,116,4,160,5,124,0,161,1,125,0,
+ 116,6,124,0,131,1,92,2,125,4,125,5,124,5,160,7,
+ 100,6,161,1,92,3,125,6,125,7,125,8,116,8,106,9,
+ 106,10,125,9,124,9,100,1,117,0,114,114,116,11,100,7,
+ 131,1,130,1,100,4,160,12,124,6,114,126,124,6,110,2,
+ 124,8,124,7,124,9,103,3,161,1,125,10,124,2,100,1,
+ 117,0,114,172,116,8,106,13,106,14,100,8,107,2,114,164,
+ 100,4,125,2,110,8,116,8,106,13,106,14,125,2,116,15,
+ 124,2,131,1,125,2,124,2,100,4,107,3,114,224,124,2,
+ 160,16,161,0,115,210,116,17,100,9,160,18,124,2,161,1,
+ 131,1,130,1,100,10,160,18,124,10,116,19,124,2,161,3,
+ 125,10,124,10,116,20,100,8,25,0,23,0,125,11,116,8,
+ 106,21,100,1,117,1,144,1,114,76,116,22,124,4,131,1,
+ 144,1,115,16,116,23,116,4,160,24,161,0,124,4,131,2,
+ 125,4,124,4,100,5,25,0,100,11,107,2,144,1,114,56,
+ 124,4,100,8,25,0,116,25,118,1,144,1,114,56,124,4,
+ 100,12,100,1,133,2,25,0,125,4,116,23,116,8,106,21,
+ 124,4,160,26,116,25,161,1,124,11,131,3,83,0,116,23,
+ 124,4,116,27,124,11,131,3,83,0,41,13,97,254,2,0,
+ 0,71,105,118,101,110,32,116,104,101,32,112,97,116,104,32,
+ 116,111,32,97,32,46,112,121,32,102,105,108,101,44,32,114,
+ 101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,
+ 111,32,105,116,115,32,46,112,121,99,32,102,105,108,101,46,
+ 10,10,32,32,32,32,84,104,101,32,46,112,121,32,102,105,
+ 108,101,32,100,111,101,115,32,110,111,116,32,110,101,101,100,
+ 32,116,111,32,101,120,105,115,116,59,32,116,104,105,115,32,
+ 115,105,109,112,108,121,32,114,101,116,117,114,110,115,32,116,
+ 104,101,32,112,97,116,104,32,116,111,32,116,104,101,10,32,
+ 32,32,32,46,112,121,99,32,102,105,108,101,32,99,97,108,
+ 99,117,108,97,116,101,100,32,97,115,32,105,102,32,116,104,
+ 101,32,46,112,121,32,102,105,108,101,32,119,101,114,101,32,
+ 105,109,112,111,114,116,101,100,46,10,10,32,32,32,32,84,
+ 104,101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,
+ 39,32,112,97,114,97,109,101,116,101,114,32,99,111,110,116,
+ 114,111,108,115,32,116,104,101,32,112,114,101,115,117,109,101,
+ 100,32,111,112,116,105,109,105,122,97,116,105,111,110,32,108,
+ 101,118,101,108,32,111,102,10,32,32,32,32,116,104,101,32,
+ 98,121,116,101,99,111,100,101,32,102,105,108,101,46,32,73,
+ 102,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
+ 32,105,115,32,110,111,116,32,78,111,110,101,44,32,116,104,
+ 101,32,115,116,114,105,110,103,32,114,101,112,114,101,115,101,
+ 110,116,97,116,105,111,110,10,32,32,32,32,111,102,32,116,
+ 104,101,32,97,114,103,117,109,101,110,116,32,105,115,32,116,
+ 97,107,101,110,32,97,110,100,32,118,101,114,105,102,105,101,
+ 100,32,116,111,32,98,101,32,97,108,112,104,97,110,117,109,
+ 101,114,105,99,32,40,101,108,115,101,32,86,97,108,117,101,
+ 69,114,114,111,114,10,32,32,32,32,105,115,32,114,97,105,
+ 115,101,100,41,46,10,10,32,32,32,32,84,104,101,32,100,
+ 101,98,117,103,95,111,118,101,114,114,105,100,101,32,112,97,
+ 114,97,109,101,116,101,114,32,105,115,32,100,101,112,114,101,
+ 99,97,116,101,100,46,32,73,102,32,100,101,98,117,103,95,
+ 111,118,101,114,114,105,100,101,32,105,115,32,110,111,116,32,
+ 78,111,110,101,44,10,32,32,32,32,97,32,84,114,117,101,
+ 32,118,97,108,117,101,32,105,115,32,116,104,101,32,115,97,
+ 109,101,32,97,115,32,115,101,116,116,105,110,103,32,39,111,
+ 112,116,105,109,105,122,97,116,105,111,110,39,32,116,111,32,
+ 116,104,101,32,101,109,112,116,121,32,115,116,114,105,110,103,
+ 10,32,32,32,32,119,104,105,108,101,32,97,32,70,97,108,
+ 115,101,32,118,97,108,117,101,32,105,115,32,101,113,117,105,
+ 118,97,108,101,110,116,32,116,111,32,115,101,116,116,105,110,
+ 103,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
+ 32,116,111,32,39,49,39,46,10,10,32,32,32,32,73,102,
+ 32,115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,
+ 105,111,110,46,99,97,99,104,101,95,116,97,103,32,105,115,
+ 32,78,111,110,101,32,116,104,101,110,32,78,111,116,73,109,
+ 112,108,101,109,101,110,116,101,100,69,114,114,111,114,32,105,
+ 115,32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,
+ 122,70,116,104,101,32,100,101,98,117,103,95,111,118,101,114,
+ 114,105,100,101,32,112,97,114,97,109,101,116,101,114,32,105,
+ 115,32,100,101,112,114,101,99,97,116,101,100,59,32,117,115,
+ 101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
+ 32,105,110,115,116,101,97,100,122,50,100,101,98,117,103,95,
+ 111,118,101,114,114,105,100,101,32,111,114,32,111,112,116,105,
+ 109,105,122,97,116,105,111,110,32,109,117,115,116,32,98,101,
+ 32,115,101,116,32,116,111,32,78,111,110,101,114,14,0,0,
+ 0,114,4,0,0,0,218,1,46,250,36,115,121,115,46,105,
+ 109,112,108,101,109,101,110,116,97,116,105,111,110,46,99,97,
+ 99,104,101,95,116,97,103,32,105,115,32,78,111,110,101,114,
+ 0,0,0,0,122,24,123,33,114,125,32,105,115,32,110,111,
+ 116,32,97,108,112,104,97,110,117,109,101,114,105,99,122,7,
+ 123,125,46,123,125,123,125,114,16,0,0,0,114,45,0,0,
+ 0,41,28,218,9,95,119,97,114,110,105,110,103,115,218,4,
+ 119,97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,
+ 110,87,97,114,110,105,110,103,218,9,84,121,112,101,69,114,
+ 114,111,114,114,24,0,0,0,218,6,102,115,112,97,116,104,
+ 114,74,0,0,0,218,10,114,112,97,114,116,105,116,105,111,
+ 110,114,21,0,0,0,218,14,105,109,112,108,101,109,101,110,
+ 116,97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,
+ 103,218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,
+ 100,69,114,114,111,114,114,62,0,0,0,114,22,0,0,0,
+ 218,8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,
+ 7,105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,
+ 114,114,111,114,114,88,0,0,0,218,4,95,79,80,84,218,
+ 17,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,
+ 69,83,218,14,112,121,99,97,99,104,101,95,112,114,101,102,
+ 105,120,114,85,0,0,0,114,67,0,0,0,114,81,0,0,
+ 0,114,50,0,0,0,218,6,108,115,116,114,105,112,218,8,
+ 95,80,89,67,65,67,72,69,41,12,114,65,0,0,0,90,
+ 14,100,101,98,117,103,95,111,118,101,114,114,105,100,101,114,
+ 95,0,0,0,218,7,109,101,115,115,97,103,101,218,4,104,
+ 101,97,100,114,66,0,0,0,90,4,98,97,115,101,114,9,
+ 0,0,0,218,4,114,101,115,116,90,3,116,97,103,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,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,17,99,97,99,104,101,95,
+ 102,114,111,109,95,115,111,117,114,99,101,105,1,0,0,115,
+ 72,0,0,0,0,18,8,1,6,1,2,255,4,2,8,1,
+ 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,2,8,1,8,1,8,1,
+ 8,1,14,1,14,1,12,1,12,9,10,1,14,5,28,1,
+ 12,4,2,1,4,1,8,1,2,253,4,5,114,120,0,0,
+ 0,99,1,0,0,0,0,0,0,0,0,0,0,0,10,0,
+ 0,0,5,0,0,0,67,0,0,0,115,46,1,0,0,116,
+ 0,106,1,106,2,100,1,117,0,114,20,116,3,100,2,131,
+ 1,130,1,116,4,160,5,124,0,161,1,125,0,116,6,124,
+ 0,131,1,92,2,125,1,125,2,100,3,125,3,116,0,106,
+ 7,100,1,117,1,114,102,116,0,106,7,160,8,116,9,161,
+ 1,125,4,124,1,160,10,124,4,116,11,23,0,161,1,114,
+ 102,124,1,116,12,124,4,131,1,100,1,133,2,25,0,125,
+ 1,100,4,125,3,124,3,115,144,116,6,124,1,131,1,92,
+ 2,125,1,125,5,124,5,116,13,107,3,114,144,116,14,116,
+ 13,155,0,100,5,124,0,155,2,157,3,131,1,130,1,124,
+ 2,160,15,100,6,161,1,125,6,124,6,100,7,118,1,114,
+ 178,116,14,100,8,124,2,155,2,157,2,131,1,130,1,110,
+ 92,124,6,100,9,107,2,144,1,114,14,124,2,160,16,100,
+ 6,100,10,161,2,100,11,25,0,125,7,124,7,160,10,116,
+ 17,161,1,115,228,116,14,100,12,116,17,155,2,157,2,131,
+ 1,130,1,124,7,116,12,116,17,131,1,100,1,133,2,25,
+ 0,125,8,124,8,160,18,161,0,144,1,115,14,116,14,100,
+ 13,124,7,155,2,100,14,157,3,131,1,130,1,124,2,160,
+ 19,100,6,161,1,100,15,25,0,125,9,116,20,124,1,124,
+ 9,116,21,100,15,25,0,23,0,131,2,83,0,41,16,97,
+ 110,1,0,0,71,105,118,101,110,32,116,104,101,32,112,97,
+ 116,104,32,116,111,32,97,32,46,112,121,99,46,32,102,105,
+ 108,101,44,32,114,101,116,117,114,110,32,116,104,101,32,112,
+ 97,116,104,32,116,111,32,105,116,115,32,46,112,121,32,102,
+ 105,108,101,46,10,10,32,32,32,32,84,104,101,32,46,112,
+ 121,99,32,102,105,108,101,32,100,111,101,115,32,110,111,116,
+ 32,110,101,101,100,32,116,111,32,101,120,105,115,116,59,32,
+ 116,104,105,115,32,115,105,109,112,108,121,32,114,101,116,117,
+ 114,110,115,32,116,104,101,32,112,97,116,104,32,116,111,10,
+ 32,32,32,32,116,104,101,32,46,112,121,32,102,105,108,101,
+ 32,99,97,108,99,117,108,97,116,101,100,32,116,111,32,99,
+ 111,114,114,101,115,112,111,110,100,32,116,111,32,116,104,101,
+ 32,46,112,121,99,32,102,105,108,101,46,32,32,73,102,32,
+ 112,97,116,104,32,100,111,101,115,10,32,32,32,32,110,111,
+ 116,32,99,111,110,102,111,114,109,32,116,111,32,80,69,80,
+ 32,51,49,52,55,47,52,56,56,32,102,111,114,109,97,116,
+ 44,32,86,97,108,117,101,69,114,114,111,114,32,119,105,108,
+ 108,32,98,101,32,114,97,105,115,101,100,46,32,73,102,10,
+ 32,32,32,32,115,121,115,46,105,109,112,108,101,109,101,110,
+ 116,97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,
+ 32,105,115,32,78,111,110,101,32,116,104,101,110,32,78,111,
+ 116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,
+ 114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,
+ 32,32,78,114,97,0,0,0,70,84,122,31,32,110,111,116,
+ 32,98,111,116,116,111,109,45,108,101,118,101,108,32,100,105,
+ 114,101,99,116,111,114,121,32,105,110,32,114,96,0,0,0,
+ 62,2,0,0,0,114,45,0,0,0,233,3,0,0,0,122,
+ 29,101,120,112,101,99,116,101,100,32,111,110,108,121,32,50,
+ 32,111,114,32,51,32,100,111,116,115,32,105,110,32,114,121,
+ 0,0,0,114,45,0,0,0,233,254,255,255,255,122,53,111,
+ 112,116,105,109,105,122,97,116,105,111,110,32,112,111,114,116,
+ 105,111,110,32,111,102,32,102,105,108,101,110,97,109,101,32,
+ 100,111,101,115,32,110,111,116,32,115,116,97,114,116,32,119,
+ 105,116,104,32,122,19,111,112,116,105,109,105,122,97,116,105,
+ 111,110,32,108,101,118,101,108,32,122,29,32,105,115,32,110,
+ 111,116,32,97,110,32,97,108,112,104,97,110,117,109,101,114,
+ 105,99,32,118,97,108,117,101,114,0,0,0,0,41,22,114,
+ 21,0,0,0,114,104,0,0,0,114,105,0,0,0,114,106,
+ 0,0,0,114,24,0,0,0,114,102,0,0,0,114,74,0,
+ 0,0,114,113,0,0,0,114,49,0,0,0,114,50,0,0,
+ 0,114,29,0,0,0,114,59,0,0,0,114,6,0,0,0,
+ 114,115,0,0,0,114,110,0,0,0,218,5,99,111,117,110,
+ 116,218,6,114,115,112,108,105,116,114,111,0,0,0,114,109,
+ 0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,67,
+ 0,0,0,218,15,83,79,85,82,67,69,95,83,85,70,70,
+ 73,88,69,83,41,10,114,65,0,0,0,114,117,0,0,0,
+ 90,16,112,121,99,97,99,104,101,95,102,105,108,101,110,97,
+ 109,101,90,23,102,111,117,110,100,95,105,110,95,112,121,99,
+ 97,99,104,101,95,112,114,101,102,105,120,90,13,115,116,114,
+ 105,112,112,101,100,95,112,97,116,104,90,7,112,121,99,97,
+ 99,104,101,90,9,100,111,116,95,99,111,117,110,116,114,95,
+ 0,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,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,17,115,111,
+ 117,114,99,101,95,102,114,111,109,95,99,97,99,104,101,176,
+ 1,0,0,115,60,0,0,0,0,9,12,1,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,255,8,2,10,1,8,1,16,1,
+ 10,1,16,1,10,1,4,1,2,255,8,2,16,1,10,1,
+ 16,2,14,1,114,127,0,0,0,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,5,0,0,0,9,0,0,0,67,0,
+ 0,0,115,124,0,0,0,116,0,124,0,131,1,100,1,107,
+ 2,114,16,100,2,83,0,124,0,160,1,100,3,161,1,92,
+ 3,125,1,125,2,125,3,124,1,114,56,124,3,160,2,161,
+ 0,100,4,100,5,133,2,25,0,100,6,107,3,114,60,124,
+ 0,83,0,122,12,116,3,124,0,131,1,125,4,87,0,110,
+ 34,4,0,116,4,116,5,102,2,121,106,1,0,1,0,1,
+ 0,124,0,100,2,100,5,133,2,25,0,125,4,89,0,110,
+ 2,48,0,116,6,124,4,131,1,114,120,124,4,83,0,124,
+ 0,83,0,41,7,122,188,67,111,110,118,101,114,116,32,97,
+ 32,98,121,116,101,99,111,100,101,32,102,105,108,101,32,112,
+ 97,116,104,32,116,111,32,97,32,115,111,117,114,99,101,32,
+ 112,97,116,104,32,40,105,102,32,112,111,115,115,105,98,108,
+ 101,41,46,10,10,32,32,32,32,84,104,105,115,32,102,117,
+ 110,99,116,105,111,110,32,101,120,105,115,116,115,32,112,117,
+ 114,101,108,121,32,102,111,114,32,98,97,99,107,119,97,114,
+ 100,115,45,99,111,109,112,97,116,105,98,105,108,105,116,121,
+ 32,102,111,114,10,32,32,32,32,80,121,73,109,112,111,114,
+ 116,95,69,120,101,99,67,111,100,101,77,111,100,117,108,101,
+ 87,105,116,104,70,105,108,101,110,97,109,101,115,40,41,32,
+ 105,110,32,116,104,101,32,67,32,65,80,73,46,10,10,32,
+ 32,32,32,114,0,0,0,0,78,114,96,0,0,0,233,253,
+ 255,255,255,233,255,255,255,255,90,2,112,121,41,7,114,6,
+ 0,0,0,114,103,0,0,0,218,5,108,111,119,101,114,114,
+ 127,0,0,0,114,106,0,0,0,114,110,0,0,0,114,80,
+ 0,0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,
+ 112,97,116,104,114,118,0,0,0,218,1,95,90,9,101,120,
+ 116,101,110,115,105,111,110,218,11,115,111,117,114,99,101,95,
+ 112,97,116,104,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,15,95,103,101,116,95,115,111,117,114,99,101,
+ 102,105,108,101,216,1,0,0,115,20,0,0,0,0,7,12,
+ 1,4,1,16,1,24,1,4,1,2,1,12,1,16,1,18,
+ 1,114,134,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,8,0,0,0,67,0,0,0,115,
+ 72,0,0,0,124,0,160,0,116,1,116,2,131,1,161,1,
+ 114,46,122,10,116,3,124,0,131,1,87,0,83,0,4,0,
+ 116,4,121,42,1,0,1,0,1,0,89,0,113,68,48,0,
+ 110,22,124,0,160,0,116,1,116,5,131,1,161,1,114,64,
+ 124,0,83,0,100,0,83,0,100,0,83,0,114,69,0,0,
+ 0,41,6,114,58,0,0,0,218,5,116,117,112,108,101,114,
+ 126,0,0,0,114,120,0,0,0,114,106,0,0,0,114,112,
+ 0,0,0,41,1,114,119,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,11,95,103,101,116,95,
+ 99,97,99,104,101,100,235,1,0,0,115,16,0,0,0,0,
+ 1,14,1,2,1,10,1,12,1,8,1,14,1,4,2,114,
+ 136,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,8,0,0,0,67,0,0,0,115,50,0,
+ 0,0,122,14,116,0,124,0,131,1,106,1,125,1,87,0,
+ 110,22,4,0,116,2,121,36,1,0,1,0,1,0,100,1,
+ 125,1,89,0,110,2,48,0,124,1,100,2,79,0,125,1,
+ 124,1,83,0,41,3,122,51,67,97,108,99,117,108,97,116,
+ 101,32,116,104,101,32,109,111,100,101,32,112,101,114,109,105,
+ 115,115,105,111,110,115,32,102,111,114,32,97,32,98,121,116,
+ 101,99,111,100,101,32,102,105,108,101,46,114,86,0,0,0,
+ 233,128,0,0,0,41,3,114,75,0,0,0,114,77,0,0,
+ 0,114,76,0,0,0,41,2,114,65,0,0,0,114,78,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,10,95,99,97,108,99,95,109,111,100,101,247,1,0,
+ 0,115,12,0,0,0,0,2,2,1,14,1,12,1,10,3,
+ 8,1,114,138,0,0,0,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,8,0,0,0,3,0,0,0,
+ 115,66,0,0,0,100,6,135,0,102,1,100,2,100,3,132,
+ 9,125,1,122,10,116,0,106,1,125,2,87,0,110,26,4,
+ 0,116,2,121,50,1,0,1,0,1,0,100,4,100,5,132,
+ 0,125,2,89,0,110,2,48,0,124,2,124,1,136,0,131,
+ 2,1,0,124,1,83,0,41,7,122,252,68,101,99,111,114,
+ 97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,
+ 104,97,116,32,116,104,101,32,109,111,100,117,108,101,32,98,
+ 101,105,110,103,32,114,101,113,117,101,115,116,101,100,32,109,
+ 97,116,99,104,101,115,32,116,104,101,32,111,110,101,32,116,
+ 104,101,10,32,32,32,32,108,111,97,100,101,114,32,99,97,
+ 110,32,104,97,110,100,108,101,46,10,10,32,32,32,32,84,
+ 104,101,32,102,105,114,115,116,32,97,114,103,117,109,101,110,
+ 116,32,40,115,101,108,102,41,32,109,117,115,116,32,100,101,
+ 102,105,110,101,32,95,110,97,109,101,32,119,104,105,99,104,
+ 32,116,104,101,32,115,101,99,111,110,100,32,97,114,103,117,
+ 109,101,110,116,32,105,115,10,32,32,32,32,99,111,109,112,
+ 97,114,101,100,32,97,103,97,105,110,115,116,46,32,73,102,
+ 32,116,104,101,32,99,111,109,112,97,114,105,115,111,110,32,
+ 102,97,105,108,115,32,116,104,101,110,32,73,109,112,111,114,
+ 116,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,
+ 46,10,10,32,32,32,32,78,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,4,0,0,0,31,0,0,
+ 0,115,72,0,0,0,124,1,100,0,117,0,114,16,124,0,
+ 106,0,125,1,110,32,124,0,106,0,124,1,107,3,114,48,
+ 116,1,100,1,124,0,106,0,124,1,102,2,22,0,124,1,
+ 100,2,141,2,130,1,136,0,124,0,124,1,103,2,124,2,
+ 162,1,82,0,105,0,124,3,164,1,142,1,83,0,41,3,
+ 78,122,30,108,111,97,100,101,114,32,102,111,114,32,37,115,
+ 32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,
+ 115,169,1,218,4,110,97,109,101,41,2,114,140,0,0,0,
+ 218,11,73,109,112,111,114,116,69,114,114,111,114,41,4,218,
+ 4,115,101,108,102,114,140,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,10,0,0,0,114,11,0,0,0,218,19,95,99,
+ 104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,
+ 114,11,2,0,0,115,18,0,0,0,0,1,8,1,8,1,
+ 10,1,4,1,8,255,2,1,2,255,6,2,122,40,95,99,
+ 104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,
+ 115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,
+ 114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,115,
+ 56,0,0,0,100,1,68,0,93,32,125,2,116,0,124,1,
+ 124,2,131,2,114,4,116,1,124,0,124,2,116,2,124,1,
+ 124,2,131,2,131,3,1,0,113,4,124,0,106,3,160,4,
+ 124,1,106,3,161,1,1,0,100,0,83,0,41,2,78,41,
+ 4,218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,
+ 95,110,97,109,101,95,95,218,12,95,95,113,117,97,108,110,
+ 97,109,101,95,95,218,7,95,95,100,111,99,95,95,41,5,
+ 218,7,104,97,115,97,116,116,114,218,7,115,101,116,97,116,
+ 116,114,218,7,103,101,116,97,116,116,114,218,8,95,95,100,
+ 105,99,116,95,95,218,6,117,112,100,97,116,101,41,3,90,
+ 3,110,101,119,90,3,111,108,100,114,84,0,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,218,5,95,
+ 119,114,97,112,22,2,0,0,115,8,0,0,0,0,1,8,
+ 1,10,1,20,1,122,26,95,99,104,101,99,107,95,110,97,
+ 109,101,46,60,108,111,99,97,108,115,62,46,95,119,114,97,
+ 112,41,1,78,41,3,218,10,95,98,111,111,116,115,116,114,
+ 97,112,114,157,0,0,0,218,9,78,97,109,101,69,114,114,
+ 111,114,41,3,114,146,0,0,0,114,147,0,0,0,114,157,
+ 0,0,0,114,10,0,0,0,114,145,0,0,0,114,11,0,
+ 0,0,218,11,95,99,104,101,99,107,95,110,97,109,101,3,
+ 2,0,0,115,14,0,0,0,0,8,14,7,2,1,10,1,
+ 12,2,14,5,10,1,114,160,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,0,124,0,160,0,124,1,161,
+ 1,92,2,125,2,125,3,124,2,100,1,117,0,114,56,116,
+ 1,124,3,131,1,114,56,100,2,125,4,116,2,160,3,124,
+ 4,160,4,124,3,100,3,25,0,161,1,116,5,161,2,1,
+ 0,124,2,83,0,41,4,122,155,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,32,98,121,32,100,101,108,101,103,97,
+ 116,105,110,103,32,116,111,10,32,32,32,32,115,101,108,102,
+ 46,102,105,110,100,95,108,111,97,100,101,114,40,41,46,10,
+ 10,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,32,105,
+ 110,32,102,97,118,111,114,32,111,102,32,102,105,110,100,101,
+ 114,46,102,105,110,100,95,115,112,101,99,40,41,46,10,10,
+ 32,32,32,32,78,122,44,78,111,116,32,105,109,112,111,114,
+ 116,105,110,103,32,100,105,114,101,99,116,111,114,121,32,123,
+ 125,58,32,109,105,115,115,105,110,103,32,95,95,105,110,105,
+ 116,95,95,114,0,0,0,0,41,6,218,11,102,105,110,100,
+ 95,108,111,97,100,101,114,114,6,0,0,0,114,98,0,0,
+ 0,114,99,0,0,0,114,88,0,0,0,218,13,73,109,112,
+ 111,114,116,87,97,114,110,105,110,103,41,5,114,142,0,0,
+ 0,218,8,102,117,108,108,110,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,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,17,95,102,105,110,100,95,109,111,100,117,108,101,95,
+ 115,104,105,109,31,2,0,0,115,10,0,0,0,0,10,14,
+ 1,16,1,4,1,22,1,114,167,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,166,0,0,0,124,0,100,1,100,2,
+ 133,2,25,0,125,3,124,3,116,0,107,3,114,64,100,3,
+ 124,1,155,2,100,4,124,3,155,2,157,4,125,4,116,1,
+ 160,2,100,5,124,4,161,2,1,0,116,3,124,4,102,1,
+ 105,0,124,2,164,1,142,1,130,1,116,4,124,0,131,1,
+ 100,6,107,0,114,106,100,7,124,1,155,2,157,2,125,4,
+ 116,1,160,2,100,5,124,4,161,2,1,0,116,5,124,4,
+ 131,1,130,1,116,6,124,0,100,2,100,8,133,2,25,0,
+ 131,1,125,5,124,5,100,9,64,0,114,162,100,10,124,5,
+ 155,2,100,11,124,1,155,2,157,4,125,4,116,3,124,4,
+ 102,1,105,0,124,2,164,1,142,1,130,1,124,5,83,0,
+ 41,12,97,84,2,0,0,80,101,114,102,111,114,109,32,98,
+ 97,115,105,99,32,118,97,108,105,100,105,116,121,32,99,104,
+ 101,99,107,105,110,103,32,111,102,32,97,32,112,121,99,32,
+ 104,101,97,100,101,114,32,97,110,100,32,114,101,116,117,114,
+ 110,32,116,104,101,32,102,108,97,103,115,32,102,105,101,108,
+ 100,44,10,32,32,32,32,119,104,105,99,104,32,100,101,116,
+ 101,114,109,105,110,101,115,32,104,111,119,32,116,104,101,32,
+ 112,121,99,32,115,104,111,117,108,100,32,98,101,32,102,117,
+ 114,116,104,101,114,32,118,97,108,105,100,97,116,101,100,32,
+ 97,103,97,105,110,115,116,32,116,104,101,32,115,111,117,114,
+ 99,101,46,10,10,32,32,32,32,42,100,97,116,97,42,32,
+ 105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,
+ 111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,
+ 32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,
+ 32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,
+ 32,32,114,101,113,117,105,114,101,100,44,32,116,104,111,117,
+ 103,104,46,41,10,10,32,32,32,32,42,110,97,109,101,42,
+ 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32,
+ 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,
+ 32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,115,
+ 32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,110,
+ 103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,116,
+ 97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,105,
+ 111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,32,
+ 73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,105,
+ 116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,32,
+ 32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,103,
+ 105,110,103,46,10,10,32,32,32,32,73,109,112,111,114,116,
+ 69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,32,
+ 119,104,101,110,32,116,104,101,32,109,97,103,105,99,32,110,
+ 117,109,98,101,114,32,105,115,32,105,110,99,111,114,114,101,
+ 99,116,32,111,114,32,119,104,101,110,32,116,104,101,32,102,
+ 108,97,103,115,10,32,32,32,32,102,105,101,108,100,32,105,
+ 115,32,105,110,118,97,108,105,100,46,32,69,79,70,69,114,
+ 114,111,114,32,105,115,32,114,97,105,115,101,100,32,119,104,
+ 101,110,32,116,104,101,32,100,97,116,97,32,105,115,32,102,
+ 111,117,110,100,32,116,111,32,98,101,32,116,114,117,110,99,
+ 97,116,101,100,46,10,10,32,32,32,32,78,114,34,0,0,
+ 0,122,20,98,97,100,32,109,97,103,105,99,32,110,117,109,
+ 98,101,114,32,105,110,32,122,2,58,32,250,2,123,125,233,
+ 16,0,0,0,122,40,114,101,97,99,104,101,100,32,69,79,
+ 70,32,119,104,105,108,101,32,114,101,97,100,105,110,103,32,
+ 112,121,99,32,104,101,97,100,101,114,32,111,102,32,233,8,
+ 0,0,0,233,252,255,255,255,122,14,105,110,118,97,108,105,
+ 100,32,102,108,97,103,115,32,122,4,32,105,110,32,41,7,
+ 218,12,77,65,71,73,67,95,78,85,77,66,69,82,114,158,
+ 0,0,0,218,16,95,118,101,114,98,111,115,101,95,109,101,
+ 115,115,97,103,101,114,141,0,0,0,114,6,0,0,0,218,
+ 8,69,79,70,69,114,114,111,114,114,44,0,0,0,41,6,
+ 114,43,0,0,0,114,140,0,0,0,218,11,101,120,99,95,
+ 100,101,116,97,105,108,115,90,5,109,97,103,105,99,114,116,
+ 0,0,0,114,22,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,13,95,99,108,97,115,115,105,
+ 102,121,95,112,121,99,48,2,0,0,115,28,0,0,0,0,
+ 16,12,1,8,1,16,1,12,1,16,1,12,1,10,1,12,
+ 1,8,1,16,2,8,1,16,1,16,1,114,176,0,0,0,
+ 99,5,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
+ 0,4,0,0,0,67,0,0,0,115,120,0,0,0,116,0,
+ 124,0,100,1,100,2,133,2,25,0,131,1,124,1,100,3,
+ 64,0,107,3,114,62,100,4,124,3,155,2,157,2,125,5,
+ 116,1,160,2,100,5,124,5,161,2,1,0,116,3,124,5,
+ 102,1,105,0,124,4,164,1,142,1,130,1,124,2,100,6,
+ 117,1,114,116,116,0,124,0,100,2,100,7,133,2,25,0,
+ 131,1,124,2,100,3,64,0,107,3,114,116,116,3,100,4,
+ 124,3,155,2,157,2,102,1,105,0,124,4,164,1,142,1,
+ 130,1,100,6,83,0,41,8,97,7,2,0,0,86,97,108,
+ 105,100,97,116,101,32,97,32,112,121,99,32,97,103,97,105,
+ 110,115,116,32,116,104,101,32,115,111,117,114,99,101,32,108,
+ 97,115,116,45,109,111,100,105,102,105,101,100,32,116,105,109,
+ 101,46,10,10,32,32,32,32,42,100,97,116,97,42,32,105,
+ 115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,111,
+ 102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,32,
+ 40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,32,
+ 49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,32,
+ 32,114,101,113,117,105,114,101,100,46,41,10,10,32,32,32,
+ 32,42,115,111,117,114,99,101,95,109,116,105,109,101,42,32,
+ 105,115,32,116,104,101,32,108,97,115,116,32,109,111,100,105,
+ 102,105,101,100,32,116,105,109,101,115,116,97,109,112,32,111,
+ 102,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,
+ 101,46,10,10,32,32,32,32,42,115,111,117,114,99,101,95,
+ 115,105,122,101,42,32,105,115,32,78,111,110,101,32,111,114,
+ 32,116,104,101,32,115,105,122,101,32,111,102,32,116,104,101,
+ 32,115,111,117,114,99,101,32,102,105,108,101,32,105,110,32,
+ 98,121,116,101,115,46,10,10,32,32,32,32,42,110,97,109,
+ 101,42,32,105,115,32,116,104,101,32,110,97,109,101,32,111,
+ 102,32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,
+ 110,103,32,105,109,112,111,114,116,101,100,46,32,73,116,32,
+ 105,115,32,117,115,101,100,32,102,111,114,32,108,111,103,103,
+ 105,110,103,46,10,10,32,32,32,32,42,101,120,99,95,100,
+ 101,116,97,105,108,115,42,32,105,115,32,97,32,100,105,99,
+ 116,105,111,110,97,114,121,32,112,97,115,115,101,100,32,116,
+ 111,32,73,109,112,111,114,116,69,114,114,111,114,32,105,102,
+ 32,105,116,32,114,97,105,115,101,100,32,102,111,114,10,32,
+ 32,32,32,105,109,112,114,111,118,101,100,32,100,101,98,117,
+ 103,103,105,110,103,46,10,10,32,32,32,32,65,110,32,73,
+ 109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,
+ 105,115,101,100,32,105,102,32,116,104,101,32,98,121,116,101,
+ 99,111,100,101,32,105,115,32,115,116,97,108,101,46,10,10,
+ 32,32,32,32,114,170,0,0,0,233,12,0,0,0,114,33,
+ 0,0,0,122,22,98,121,116,101,99,111,100,101,32,105,115,
+ 32,115,116,97,108,101,32,102,111,114,32,114,168,0,0,0,
+ 78,114,169,0,0,0,41,4,114,44,0,0,0,114,158,0,
+ 0,0,114,173,0,0,0,114,141,0,0,0,41,6,114,43,
+ 0,0,0,218,12,115,111,117,114,99,101,95,109,116,105,109,
+ 101,218,11,115,111,117,114,99,101,95,115,105,122,101,114,140,
+ 0,0,0,114,175,0,0,0,114,116,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,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,81,2,0,0,115,16,0,0,0,0,19,
+ 24,1,10,1,12,1,16,1,8,1,22,255,2,2,114,180,
+ 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,115,42,0,0,
+ 0,124,0,100,1,100,2,133,2,25,0,124,1,107,3,114,
+ 38,116,0,100,3,124,2,155,2,157,2,102,1,105,0,124,
+ 3,164,1,142,1,130,1,100,4,83,0,41,5,97,243,1,
+ 0,0,86,97,108,105,100,97,116,101,32,97,32,104,97,115,
+ 104,45,98,97,115,101,100,32,112,121,99,32,98,121,32,99,
+ 104,101,99,107,105,110,103,32,116,104,101,32,114,101,97,108,
+ 32,115,111,117,114,99,101,32,104,97,115,104,32,97,103,97,
+ 105,110,115,116,32,116,104,101,32,111,110,101,32,105,110,10,
+ 32,32,32,32,116,104,101,32,112,121,99,32,104,101,97,100,
+ 101,114,46,10,10,32,32,32,32,42,100,97,116,97,42,32,
+ 105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,
+ 111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,
+ 32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,
+ 32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,
+ 32,32,114,101,113,117,105,114,101,100,46,41,10,10,32,32,
+ 32,32,42,115,111,117,114,99,101,95,104,97,115,104,42,32,
+ 105,115,32,116,104,101,32,105,109,112,111,114,116,108,105,98,
+ 46,117,116,105,108,46,115,111,117,114,99,101,95,104,97,115,
+ 104,40,41,32,111,102,32,116,104,101,32,115,111,117,114,99,
+ 101,32,102,105,108,101,46,10,10,32,32,32,32,42,110,97,
+ 109,101,42,32,105,115,32,116,104,101,32,110,97,109,101,32,
+ 111,102,32,116,104,101,32,109,111,100,117,108,101,32,98,101,
+ 105,110,103,32,105,109,112,111,114,116,101,100,46,32,73,116,
+ 32,105,115,32,117,115,101,100,32,102,111,114,32,108,111,103,
+ 103,105,110,103,46,10,10,32,32,32,32,42,101,120,99,95,
+ 100,101,116,97,105,108,115,42,32,105,115,32,97,32,100,105,
+ 99,116,105,111,110,97,114,121,32,112,97,115,115,101,100,32,
+ 116,111,32,73,109,112,111,114,116,69,114,114,111,114,32,105,
+ 102,32,105,116,32,114,97,105,115,101,100,32,102,111,114,10,
+ 32,32,32,32,105,109,112,114,111,118,101,100,32,100,101,98,
+ 117,103,103,105,110,103,46,10,10,32,32,32,32,65,110,32,
+ 73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,
+ 97,105,115,101,100,32,105,102,32,116,104,101,32,98,121,116,
+ 101,99,111,100,101,32,105,115,32,115,116,97,108,101,46,10,
+ 10,32,32,32,32,114,170,0,0,0,114,169,0,0,0,122,
+ 46,104,97,115,104,32,105,110,32,98,121,116,101,99,111,100,
+ 101,32,100,111,101,115,110,39,116,32,109,97,116,99,104,32,
+ 104,97,115,104,32,111,102,32,115,111,117,114,99,101,32,78,
+ 41,1,114,141,0,0,0,41,4,114,43,0,0,0,218,11,
+ 115,111,117,114,99,101,95,104,97,115,104,114,140,0,0,0,
+ 114,175,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,18,95,118,97,108,105,100,97,116,101,95,
+ 104,97,115,104,95,112,121,99,109,2,0,0,115,12,0,0,
+ 0,0,17,16,1,2,1,8,255,4,2,2,254,114,182,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,0,0,0,115,80,0,0,0,
+ 116,0,160,1,124,0,161,1,125,4,116,2,124,4,116,3,
+ 131,2,114,56,116,4,160,5,100,1,124,2,161,2,1,0,
+ 124,3,100,2,117,1,114,52,116,6,160,7,124,4,124,3,
+ 161,2,1,0,124,4,83,0,116,8,100,3,160,9,124,2,
+ 161,1,124,1,124,2,100,4,141,3,130,1,100,2,83,0,
+ 41,5,122,35,67,111,109,112,105,108,101,32,98,121,116,101,
+ 99,111,100,101,32,97,115,32,102,111,117,110,100,32,105,110,
+ 32,97,32,112,121,99,46,122,21,99,111,100,101,32,111,98,
+ 106,101,99,116,32,102,114,111,109,32,123,33,114,125,78,122,
+ 23,78,111,110,45,99,111,100,101,32,111,98,106,101,99,116,
+ 32,105,110,32,123,33,114,125,169,2,114,140,0,0,0,114,
+ 65,0,0,0,41,10,218,7,109,97,114,115,104,97,108,90,
+ 5,108,111,97,100,115,218,10,105,115,105,110,115,116,97,110,
+ 99,101,218,10,95,99,111,100,101,95,116,121,112,101,114,158,
+ 0,0,0,114,173,0,0,0,218,4,95,105,109,112,90,16,
+ 95,102,105,120,95,99,111,95,102,105,108,101,110,97,109,101,
+ 114,141,0,0,0,114,88,0,0,0,41,5,114,43,0,0,
+ 0,114,140,0,0,0,114,131,0,0,0,114,133,0,0,0,
+ 218,4,99,111,100,101,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,17,95,99,111,109,112,105,108,101,95,
+ 98,121,116,101,99,111,100,101,133,2,0,0,115,18,0,0,
+ 0,0,2,10,1,10,1,12,1,8,1,12,1,4,2,10,
+ 1,4,255,114,189,0,0,0,99,3,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,5,0,0,0,67,0,0,
+ 0,115,70,0,0,0,116,0,116,1,131,1,125,3,124,3,
+ 160,2,116,3,100,1,131,1,161,1,1,0,124,3,160,2,
+ 116,3,124,1,131,1,161,1,1,0,124,3,160,2,116,3,
+ 124,2,131,1,161,1,1,0,124,3,160,2,116,4,160,5,
+ 124,0,161,1,161,1,1,0,124,3,83,0,41,2,122,43,
+ 80,114,111,100,117,99,101,32,116,104,101,32,100,97,116,97,
+ 32,102,111,114,32,97,32,116,105,109,101,115,116,97,109,112,
+ 45,98,97,115,101,100,32,112,121,99,46,114,0,0,0,0,
+ 41,6,218,9,98,121,116,101,97,114,114,97,121,114,172,0,
+ 0,0,218,6,101,120,116,101,110,100,114,39,0,0,0,114,
+ 184,0,0,0,218,5,100,117,109,112,115,41,4,114,188,0,
+ 0,0,218,5,109,116,105,109,101,114,179,0,0,0,114,43,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,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,146,2,0,0,115,12,
+ 0,0,0,0,2,8,1,14,1,14,1,14,1,16,1,114,
+ 194,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,131,1,125,3,100,1,124,2,100,
+ 1,62,0,66,0,125,4,124,3,160,2,116,3,124,4,131,
+ 1,161,1,1,0,116,4,124,1,131,1,100,2,107,2,115,
+ 50,74,0,130,1,124,3,160,2,124,1,161,1,1,0,124,
+ 3,160,2,116,5,160,6,124,0,161,1,161,1,1,0,124,
+ 3,83,0,41,3,122,38,80,114,111,100,117,99,101,32,116,
+ 104,101,32,100,97,116,97,32,102,111,114,32,97,32,104,97,
+ 115,104,45,98,97,115,101,100,32,112,121,99,46,114,4,0,
+ 0,0,114,170,0,0,0,41,7,114,190,0,0,0,114,172,
+ 0,0,0,114,191,0,0,0,114,39,0,0,0,114,6,0,
+ 0,0,114,184,0,0,0,114,192,0,0,0,41,5,114,188,
+ 0,0,0,114,181,0,0,0,90,7,99,104,101,99,107,101,
+ 100,114,43,0,0,0,114,22,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,17,95,99,111,100,
+ 101,95,116,111,95,104,97,115,104,95,112,121,99,156,2,0,
+ 0,115,14,0,0,0,0,2,8,1,12,1,14,1,16,1,
+ 10,1,16,1,114,195,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,0,0,0,100,1,100,2,108,0,125,1,116,
+ 1,160,2,124,0,161,1,106,3,125,2,124,1,160,4,124,
+ 2,161,1,125,3,116,1,160,5,100,2,100,3,161,2,125,
+ 4,124,4,160,6,124,0,160,6,124,3,100,1,25,0,161,
+ 1,161,1,83,0,41,4,122,121,68,101,99,111,100,101,32,
+ 98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,105,
+ 110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,97,
+ 110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,116,
+ 114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,101,
+ 114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,112,
+ 112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,32,
+ 116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,32,
+ 32,32,114,0,0,0,0,78,84,41,7,218,8,116,111,107,
+ 101,110,105,122,101,114,90,0,0,0,90,7,66,121,116,101,
+ 115,73,79,90,8,114,101,97,100,108,105,110,101,90,15,100,
+ 101,116,101,99,116,95,101,110,99,111,100,105,110,103,90,25,
+ 73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,105,
+ 110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,100,
+ 101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,101,
+ 115,114,196,0,0,0,90,21,115,111,117,114,99,101,95,98,
+ 121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,101,
+ 110,99,111,100,105,110,103,90,15,110,101,119,108,105,110,101,
+ 95,100,101,99,111,100,101,114,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,13,100,101,99,111,100,101,95,
+ 115,111,117,114,99,101,167,2,0,0,115,10,0,0,0,0,
+ 5,8,1,12,1,10,1,12,1,114,200,0,0,0,169,2,
+ 114,164,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,2,0,0,0,0,0,0,0,2,0,0,0,9,0,
+ 0,0,8,0,0,0,67,0,0,0,115,12,1,0,0,124,
+ 1,100,1,117,0,114,58,100,2,125,1,116,0,124,2,100,
+ 3,131,2,114,68,122,14,124,2,160,1,124,0,161,1,125,
+ 1,87,0,113,68,4,0,116,2,121,54,1,0,1,0,1,
+ 0,89,0,113,68,48,0,110,10,116,3,160,4,124,1,161,
+ 1,125,1,116,5,106,6,124,0,124,2,124,1,100,4,141,
+ 3,125,4,100,5,124,4,95,7,124,2,100,1,117,0,114,
+ 152,116,8,131,0,68,0,93,42,92,2,125,5,125,6,124,
+ 1,160,9,116,10,124,6,131,1,161,1,114,104,124,5,124,
+ 0,124,1,131,2,125,2,124,2,124,4,95,11,1,0,113,
+ 152,113,104,100,1,83,0,124,3,116,12,117,0,114,216,116,
+ 0,124,2,100,6,131,2,114,222,122,14,124,2,160,13,124,
+ 0,161,1,125,7,87,0,110,18,4,0,116,2,121,202,1,
+ 0,1,0,1,0,89,0,113,222,48,0,124,7,114,222,103,
+ 0,124,4,95,14,110,6,124,3,124,4,95,14,124,4,106,
+ 14,103,0,107,2,144,1,114,8,124,1,144,1,114,8,116,
+ 15,124,1,131,1,100,7,25,0,125,8,124,4,106,14,160,
+ 16,124,8,161,1,1,0,124,4,83,0,41,8,97,61,1,
+ 0,0,82,101,116,117,114,110,32,97,32,109,111,100,117,108,
+ 101,32,115,112,101,99,32,98,97,115,101,100,32,111,110,32,
+ 97,32,102,105,108,101,32,108,111,99,97,116,105,111,110,46,
+ 10,10,32,32,32,32,84,111,32,105,110,100,105,99,97,116,
+ 101,32,116,104,97,116,32,116,104,101,32,109,111,100,117,108,
+ 101,32,105,115,32,97,32,112,97,99,107,97,103,101,44,32,
+ 115,101,116,10,32,32,32,32,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,32,116,111,32,97,32,108,105,115,116,32,111,102,32,
+ 100,105,114,101,99,116,111,114,121,32,112,97,116,104,115,46,
+ 32,32,65,110,10,32,32,32,32,101,109,112,116,121,32,108,
+ 105,115,116,32,105,115,32,115,117,102,102,105,99,105,101,110,
+ 116,44,32,116,104,111,117,103,104,32,105,116,115,32,110,111,
+ 116,32,111,116,104,101,114,119,105,115,101,32,117,115,101,102,
+ 117,108,32,116,111,32,116,104,101,10,32,32,32,32,105,109,
+ 112,111,114,116,32,115,121,115,116,101,109,46,10,10,32,32,
+ 32,32,84,104,101,32,108,111,97,100,101,114,32,109,117,115,
+ 116,32,116,97,107,101,32,97,32,115,112,101,99,32,97,115,
+ 32,105,116,115,32,111,110,108,121,32,95,95,105,110,105,116,
+ 95,95,40,41,32,97,114,103,46,10,10,32,32,32,32,78,
+ 122,9,60,117,110,107,110,111,119,110,62,218,12,103,101,116,
+ 95,102,105,108,101,110,97,109,101,169,1,218,6,111,114,105,
+ 103,105,110,84,218,10,105,115,95,112,97,99,107,97,103,101,
+ 114,0,0,0,0,41,17,114,152,0,0,0,114,203,0,0,
+ 0,114,141,0,0,0,114,24,0,0,0,114,102,0,0,0,
+ 114,158,0,0,0,218,10,77,111,100,117,108,101,83,112,101,
+ 99,90,13,95,115,101,116,95,102,105,108,101,97,116,116,114,
+ 218,27,95,103,101,116,95,115,117,112,112,111,114,116,101,100,
+ 95,102,105,108,101,95,108,111,97,100,101,114,115,114,58,0,
+ 0,0,114,135,0,0,0,114,164,0,0,0,218,9,95,80,
+ 79,80,85,76,65,84,69,114,206,0,0,0,114,202,0,0,
+ 0,114,74,0,0,0,114,61,0,0,0,41,9,114,140,0,
+ 0,0,90,8,108,111,99,97,116,105,111,110,114,164,0,0,
+ 0,114,202,0,0,0,218,4,115,112,101,99,218,12,108,111,
+ 97,100,101,114,95,99,108,97,115,115,218,8,115,117,102,102,
+ 105,120,101,115,114,206,0,0,0,90,7,100,105,114,110,97,
+ 109,101,114,10,0,0,0,114,10,0,0,0,114,11,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,184,2,0,0,115,62,
+ 0,0,0,0,12,8,4,4,1,10,2,2,1,14,1,12,
+ 1,8,2,10,8,16,1,6,3,8,1,14,1,14,1,10,
+ 1,6,1,6,2,4,3,8,2,10,1,2,1,14,1,12,
+ 1,6,2,4,1,8,2,6,1,12,1,6,1,12,1,12,
+ 2,114,213,0,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,
+ 80,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 100,2,90,4,100,3,90,5,100,4,90,6,101,7,100,5,
+ 100,6,132,0,131,1,90,8,101,7,100,7,100,8,132,0,
+ 131,1,90,9,101,7,100,14,100,10,100,11,132,1,131,1,
+ 90,10,101,7,100,15,100,12,100,13,132,1,131,1,90,11,
+ 100,9,83,0,41,16,218,21,87,105,110,100,111,119,115,82,
+ 101,103,105,115,116,114,121,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,109,111,100,117,108,101,115,32,100,101,99,108,
+ 97,114,101,100,32,105,110,32,116,104,101,32,87,105,110,100,
+ 111,119,115,32,114,101,103,105,115,116,114,121,46,122,59,83,
+ 111,102,116,119,97,114,101,92,80,121,116,104,111,110,92,80,
+ 121,116,104,111,110,67,111,114,101,92,123,115,121,115,95,118,
+ 101,114,115,105,111,110,125,92,77,111,100,117,108,101,115,92,
+ 123,102,117,108,108,110,97,109,101,125,122,65,83,111,102,116,
+ 119,97,114,101,92,80,121,116,104,111,110,92,80,121,116,104,
+ 111,110,67,111,114,101,92,123,115,121,115,95,118,101,114,115,
+ 105,111,110,125,92,77,111,100,117,108,101,115,92,123,102,117,
+ 108,108,110,97,109,101,125,92,68,101,98,117,103,70,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,
+ 0,0,0,67,0,0,0,115,54,0,0,0,122,16,116,0,
+ 160,1,116,0,106,2,124,1,161,2,87,0,83,0,4,0,
+ 116,3,121,48,1,0,1,0,1,0,116,0,160,1,116,0,
+ 106,4,124,1,161,2,6,0,89,0,83,0,48,0,100,0,
+ 83,0,114,69,0,0,0,41,5,218,6,119,105,110,114,101,
+ 103,90,7,79,112,101,110,75,101,121,90,17,72,75,69,89,
+ 95,67,85,82,82,69,78,84,95,85,83,69,82,114,76,0,
+ 0,0,90,18,72,75,69,89,95,76,79,67,65,76,95,77,
+ 65,67,72,73,78,69,41,2,218,3,99,108,115,114,26,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,14,95,111,112,101,110,95,114,101,103,105,115,116,114,
+ 121,8,3,0,0,115,8,0,0,0,0,2,2,1,16,1,
+ 12,1,122,36,87,105,110,100,111,119,115,82,101,103,105,115,
+ 116,114,121,70,105,110,100,101,114,46,95,111,112,101,110,95,
+ 114,101,103,105,115,116,114,121,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,6,0,0,0,8,0,0,0,67,0,0,
+ 0,115,132,0,0,0,124,0,106,0,114,14,124,0,106,1,
+ 125,2,110,6,124,0,106,2,125,2,124,2,106,3,124,1,
+ 100,1,116,4,106,5,100,0,100,2,133,2,25,0,22,0,
+ 100,3,141,2,125,3,122,58,124,0,160,6,124,3,161,1,
+ 143,28,125,4,116,7,160,8,124,4,100,4,161,2,125,5,
+ 87,0,100,0,4,0,4,0,131,3,1,0,110,16,49,0,
+ 115,94,48,0,1,0,1,0,1,0,89,0,1,0,87,0,
+ 110,20,4,0,116,9,121,126,1,0,1,0,1,0,89,0,
+ 100,0,83,0,48,0,124,5,83,0,41,5,78,122,5,37,
+ 100,46,37,100,114,45,0,0,0,41,2,114,163,0,0,0,
+ 90,11,115,121,115,95,118,101,114,115,105,111,110,114,14,0,
+ 0,0,41,10,218,11,68,69,66,85,71,95,66,85,73,76,
+ 68,218,18,82,69,71,73,83,84,82,89,95,75,69,89,95,
+ 68,69,66,85,71,218,12,82,69,71,73,83,84,82,89,95,
+ 75,69,89,114,88,0,0,0,114,21,0,0,0,218,12,118,
+ 101,114,115,105,111,110,95,105,110,102,111,114,217,0,0,0,
+ 114,215,0,0,0,90,10,81,117,101,114,121,86,97,108,117,
+ 101,114,76,0,0,0,41,6,114,216,0,0,0,114,163,0,
+ 0,0,90,12,114,101,103,105,115,116,114,121,95,107,101,121,
+ 114,26,0,0,0,90,4,104,107,101,121,218,8,102,105,108,
+ 101,112,97,116,104,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,16,95,115,101,97,114,99,104,95,114,101,
+ 103,105,115,116,114,121,15,3,0,0,115,24,0,0,0,0,
+ 2,6,1,8,2,6,1,6,1,16,255,6,2,2,1,12,
+ 1,46,1,12,1,8,1,122,38,87,105,110,100,111,119,115,
+ 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,95,
+ 115,101,97,114,99,104,95,114,101,103,105,115,116,114,121,78,
+ 99,4,0,0,0,0,0,0,0,0,0,0,0,8,0,0,
+ 0,8,0,0,0,67,0,0,0,115,120,0,0,0,124,0,
+ 160,0,124,1,161,1,125,4,124,4,100,0,117,0,114,22,
+ 100,0,83,0,122,12,116,1,124,4,131,1,1,0,87,0,
+ 110,20,4,0,116,2,121,54,1,0,1,0,1,0,89,0,
+ 100,0,83,0,48,0,116,3,131,0,68,0,93,52,92,2,
+ 125,5,125,6,124,4,160,4,116,5,124,6,131,1,161,1,
+ 114,62,116,6,106,7,124,1,124,5,124,1,124,4,131,2,
+ 124,4,100,1,141,3,125,7,124,7,2,0,1,0,83,0,
+ 113,62,100,0,83,0,41,2,78,114,204,0,0,0,41,8,
+ 114,223,0,0,0,114,75,0,0,0,114,76,0,0,0,114,
+ 208,0,0,0,114,58,0,0,0,114,135,0,0,0,114,158,
+ 0,0,0,218,16,115,112,101,99,95,102,114,111,109,95,108,
+ 111,97,100,101,114,41,8,114,216,0,0,0,114,163,0,0,
+ 0,114,65,0,0,0,218,6,116,97,114,103,101,116,114,222,
+ 0,0,0,114,164,0,0,0,114,212,0,0,0,114,210,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,9,102,105,110,100,95,115,112,101,99,30,3,0,0,
+ 115,28,0,0,0,0,2,10,1,8,1,4,1,2,1,12,
+ 1,12,1,8,1,14,1,14,1,6,1,8,1,2,254,6,
+ 3,122,31,87,105,110,100,111,119,115,82,101,103,105,115,116,
+ 114,121,70,105,110,100,101,114,46,102,105,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,34,0,0,0,
+ 124,0,160,0,124,1,124,2,161,2,125,3,124,3,100,1,
+ 117,1,114,26,124,3,106,1,83,0,100,1,83,0,100,1,
+ 83,0,41,2,122,108,70,105,110,100,32,109,111,100,117,108,
+ 101,32,110,97,109,101,100,32,105,110,32,116,104,101,32,114,
+ 101,103,105,115,116,114,121,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,169,2,114,226,0,0,0,114,164,0,0,0,169,
+ 4,114,216,0,0,0,114,163,0,0,0,114,65,0,0,0,
+ 114,210,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,11,102,105,110,100,95,109,111,100,117,108,
+ 101,46,3,0,0,115,8,0,0,0,0,7,12,1,8,1,
+ 6,2,122,33,87,105,110,100,111,119,115,82,101,103,105,115,
+ 116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,109,
+ 111,100,117,108,101,41,2,78,78,41,1,78,41,12,114,149,
+ 0,0,0,114,148,0,0,0,114,150,0,0,0,114,151,0,
+ 0,0,114,220,0,0,0,114,219,0,0,0,114,218,0,0,
+ 0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,217,
+ 0,0,0,114,223,0,0,0,114,226,0,0,0,114,229,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,214,0,0,0,252,2,0,0,115,
+ 28,0,0,0,8,2,4,3,2,255,2,4,2,255,2,3,
+ 4,2,2,1,10,6,2,1,10,14,2,1,12,15,2,1,
+ 114,214,0,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,48,
+ 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,83,0,41,11,218,13,95,76,111,97,100,101,114,66,97,
+ 115,105,99,115,122,83,66,97,115,101,32,99,108,97,115,115,
+ 32,111,102,32,99,111,109,109,111,110,32,99,111,100,101,32,
+ 110,101,101,100,101,100,32,98,121,32,98,111,116,104,32,83,
+ 111,117,114,99,101,76,111,97,100,101,114,32,97,110,100,10,
+ 32,32,32,32,83,111,117,114,99,101,108,101,115,115,70,105,
+ 108,101,76,111,97,100,101,114,46,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,
+ 0,0,115,64,0,0,0,116,0,124,0,160,1,124,1,161,
+ 1,131,1,100,1,25,0,125,2,124,2,160,2,100,2,100,
+ 1,161,2,100,3,25,0,125,3,124,1,160,3,100,2,161,
+ 1,100,4,25,0,125,4,124,3,100,5,107,2,111,62,124,
+ 4,100,5,107,3,83,0,41,6,122,141,67,111,110,99,114,
+ 101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,
+ 111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,97,
+ 100,101,114,46,105,115,95,112,97,99,107,97,103,101,32,98,
+ 121,32,99,104,101,99,107,105,110,103,32,105,102,10,32,32,
+ 32,32,32,32,32,32,116,104,101,32,112,97,116,104,32,114,
+ 101,116,117,114,110,101,100,32,98,121,32,103,101,116,95,102,
+ 105,108,101,110,97,109,101,32,104,97,115,32,97,32,102,105,
+ 108,101,110,97,109,101,32,111,102,32,39,95,95,105,110,105,
+ 116,95,95,46,112,121,39,46,114,4,0,0,0,114,96,0,
+ 0,0,114,0,0,0,0,114,45,0,0,0,218,8,95,95,
+ 105,110,105,116,95,95,41,4,114,74,0,0,0,114,203,0,
+ 0,0,114,124,0,0,0,114,103,0,0,0,41,5,114,142,
+ 0,0,0,114,163,0,0,0,114,119,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,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,206,0,0,0,65,3,0,0,115,
+ 8,0,0,0,0,3,18,1,16,1,14,1,122,24,95,76,
+ 111,97,100,101,114,66,97,115,105,99,115,46,105,115,95,112,
+ 97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
+ 4,0,0,0,100,1,83,0,169,2,122,42,85,115,101,32,
+ 100,101,102,97,117,108,116,32,115,101,109,97,110,116,105,99,
+ 115,32,102,111,114,32,109,111,100,117,108,101,32,99,114,101,
+ 97,116,105,111,110,46,78,114,10,0,0,0,169,2,114,142,
+ 0,0,0,114,210,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,13,99,114,101,97,116,101,95,
+ 109,111,100,117,108,101,73,3,0,0,115,2,0,0,0,0,
+ 1,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,0,0,3,0,0,0,5,
+ 0,0,0,67,0,0,0,115,56,0,0,0,124,0,160,0,
+ 124,1,106,1,161,1,125,2,124,2,100,1,117,0,114,36,
+ 116,2,100,2,160,3,124,1,106,1,161,1,131,1,130,1,
+ 116,4,160,5,116,6,124,2,124,1,106,7,161,3,1,0,
+ 100,1,83,0,41,3,122,19,69,120,101,99,117,116,101,32,
+ 116,104,101,32,109,111,100,117,108,101,46,78,122,52,99,97,
+ 110,110,111,116,32,108,111,97,100,32,109,111,100,117,108,101,
+ 32,123,33,114,125,32,119,104,101,110,32,103,101,116,95,99,
+ 111,100,101,40,41,32,114,101,116,117,114,110,115,32,78,111,
+ 110,101,41,8,218,8,103,101,116,95,99,111,100,101,114,149,
+ 0,0,0,114,141,0,0,0,114,88,0,0,0,114,158,0,
+ 0,0,218,25,95,99,97,108,108,95,119,105,116,104,95,102,
+ 114,97,109,101,115,95,114,101,109,111,118,101,100,218,4,101,
+ 120,101,99,114,155,0,0,0,41,3,114,142,0,0,0,218,
+ 6,109,111,100,117,108,101,114,188,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,11,101,120,101,
+ 99,95,109,111,100,117,108,101,76,3,0,0,115,12,0,0,
+ 0,0,2,12,1,8,1,6,1,4,255,6,2,122,25,95,
+ 76,111,97,100,101,114,66,97,115,105,99,115,46,101,120,101,
+ 99,95,109,111,100,117,108,101,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,12,0,0,0,116,0,160,1,124,0,124,1,161,2,
+ 83,0,41,1,122,26,84,104,105,115,32,109,111,100,117,108,
+ 101,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,
+ 41,2,114,158,0,0,0,218,17,95,108,111,97,100,95,109,
+ 111,100,117,108,101,95,115,104,105,109,169,2,114,142,0,0,
+ 0,114,163,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,11,108,111,97,100,95,109,111,100,117,
+ 108,101,84,3,0,0,115,2,0,0,0,0,2,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,149,0,0,0,
+ 114,148,0,0,0,114,150,0,0,0,114,151,0,0,0,114,
+ 206,0,0,0,114,235,0,0,0,114,240,0,0,0,114,243,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,231,0,0,0,60,3,0,0,
+ 115,10,0,0,0,8,2,4,3,8,8,8,3,8,8,114,
+ 231,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,
+ 0,0,101,0,90,1,100,0,90,2,100,1,100,2,132,0,
+ 90,3,100,3,100,4,132,0,90,4,100,5,100,6,132,0,
+ 90,5,100,7,100,8,132,0,90,6,100,9,100,10,132,0,
+ 90,7,100,11,100,12,156,1,100,13,100,14,132,2,90,8,
+ 100,15,100,16,132,0,90,9,100,17,83,0,41,18,218,12,
+ 83,111,117,114,99,101,76,111,97,100,101,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,115,8,0,0,0,116,0,130,1,100,1,
+ 83,0,41,2,122,165,79,112,116,105,111,110,97,108,32,109,
+ 101,116,104,111,100,32,116,104,97,116,32,114,101,116,117,114,
+ 110,115,32,116,104,101,32,109,111,100,105,102,105,99,97,116,
+ 105,111,110,32,116,105,109,101,32,40,97,110,32,105,110,116,
+ 41,32,102,111,114,32,116,104,101,10,32,32,32,32,32,32,
+ 32,32,115,112,101,99,105,102,105,101,100,32,112,97,116,104,
+ 32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,32,
+ 32,32,32,82,97,105,115,101,115,32,79,83,69,114,114,111,
+ 114,32,119,104,101,110,32,116,104,101,32,112,97,116,104,32,
+ 99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,
+ 100,46,10,32,32,32,32,32,32,32,32,78,41,1,114,76,
+ 0,0,0,169,2,114,142,0,0,0,114,65,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,10,
+ 112,97,116,104,95,109,116,105,109,101,91,3,0,0,115,2,
+ 0,0,0,0,6,122,23,83,111,117,114,99,101,76,111,97,
+ 100,101,114,46,112,97,116,104,95,109,116,105,109,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
+ 0,0,0,67,0,0,0,115,14,0,0,0,100,1,124,0,
+ 160,0,124,1,161,1,105,1,83,0,41,2,97,158,1,0,
+ 0,79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,
+ 32,114,101,116,117,114,110,105,110,103,32,97,32,109,101,116,
+ 97,100,97,116,97,32,100,105,99,116,32,102,111,114,32,116,
+ 104,101,32,115,112,101,99,105,102,105,101,100,10,32,32,32,
+ 32,32,32,32,32,112,97,116,104,32,40,97,32,115,116,114,
+ 41,46,10,10,32,32,32,32,32,32,32,32,80,111,115,115,
+ 105,98,108,101,32,107,101,121,115,58,10,32,32,32,32,32,
+ 32,32,32,45,32,39,109,116,105,109,101,39,32,40,109,97,
+ 110,100,97,116,111,114,121,41,32,105,115,32,116,104,101,32,
+ 110,117,109,101,114,105,99,32,116,105,109,101,115,116,97,109,
+ 112,32,111,102,32,108,97,115,116,32,115,111,117,114,99,101,
+ 10,32,32,32,32,32,32,32,32,32,32,99,111,100,101,32,
+ 109,111,100,105,102,105,99,97,116,105,111,110,59,10,32,32,
+ 32,32,32,32,32,32,45,32,39,115,105,122,101,39,32,40,
+ 111,112,116,105,111,110,97,108,41,32,105,115,32,116,104,101,
+ 32,115,105,122,101,32,105,110,32,98,121,116,101,115,32,111,
+ 102,32,116,104,101,32,115,111,117,114,99,101,32,99,111,100,
+ 101,46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,
+ 101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,
+ 116,104,111,100,32,97,108,108,111,119,115,32,116,104,101,32,
+ 108,111,97,100,101,114,32,116,111,32,114,101,97,100,32,98,
+ 121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,32,
+ 32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,83,
+ 69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,112,
+ 97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,97,
+ 110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,114,
+ 193,0,0,0,41,1,114,246,0,0,0,114,245,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
+ 10,112,97,116,104,95,115,116,97,116,115,99,3,0,0,115,
+ 2,0,0,0,0,12,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,0,
+ 4,0,0,0,67,0,0,0,115,12,0,0,0,124,0,160,
+ 0,124,2,124,3,161,2,83,0,41,1,122,228,79,112,116,
+ 105,111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,
+ 99,104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,
+ 98,121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,
+ 32,112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,
+ 32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,
+ 116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,
+ 32,97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,
+ 119,114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,
+ 111,100,101,32,102,105,108,101,115,46,10,10,32,32,32,32,
+ 32,32,32,32,84,104,101,32,115,111,117,114,99,101,32,112,
+ 97,116,104,32,105,115,32,110,101,101,100,101,100,32,105,110,
+ 32,111,114,100,101,114,32,116,111,32,99,111,114,114,101,99,
+ 116,108,121,32,116,114,97,110,115,102,101,114,32,112,101,114,
+ 109,105,115,115,105,111,110,115,10,32,32,32,32,32,32,32,
+ 32,41,1,218,8,115,101,116,95,100,97,116,97,41,4,114,
+ 142,0,0,0,114,133,0,0,0,90,10,99,97,99,104,101,
+ 95,112,97,116,104,114,43,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,15,95,99,97,99,104,
+ 101,95,98,121,116,101,99,111,100,101,113,3,0,0,115,2,
+ 0,0,0,0,8,122,28,83,111,117,114,99,101,76,111,97,
+ 100,101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,
+ 111,100,101,99,3,0,0,0,0,0,0,0,0,0,0,0,
+ 3,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
+ 0,100,1,83,0,41,2,122,150,79,112,116,105,111,110,97,
+ 108,32,109,101,116,104,111,100,32,119,104,105,99,104,32,119,
+ 114,105,116,101,115,32,100,97,116,97,32,40,98,121,116,101,
+ 115,41,32,116,111,32,97,32,102,105,108,101,32,112,97,116,
+ 104,32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,
+ 32,32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,
+ 32,116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,
+ 111,119,115,32,102,111,114,32,116,104,101,32,119,114,105,116,
+ 105,110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,
+ 102,105,108,101,115,46,10,32,32,32,32,32,32,32,32,78,
+ 114,10,0,0,0,41,3,114,142,0,0,0,114,65,0,0,
+ 0,114,43,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,248,0,0,0,123,3,0,0,115,2,
+ 0,0,0,0,1,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,0,0,0,115,84,0,0,0,124,0,160,0,124,1,
+ 161,1,125,2,122,14,124,0,160,1,124,2,161,1,125,3,
+ 87,0,110,50,4,0,116,2,121,74,1,0,125,4,1,0,
+ 122,26,116,3,100,1,124,1,100,2,141,2,124,4,130,2,
+ 87,0,89,0,100,3,125,4,126,4,110,10,100,3,125,4,
+ 126,4,48,0,48,0,116,4,124,3,131,1,83,0,41,4,
+ 122,52,67,111,110,99,114,101,116,101,32,105,109,112,108,101,
+ 109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,
+ 112,101,99,116,76,111,97,100,101,114,46,103,101,116,95,115,
+ 111,117,114,99,101,46,122,39,115,111,117,114,99,101,32,110,
+ 111,116,32,97,118,97,105,108,97,98,108,101,32,116,104,114,
+ 111,117,103,104,32,103,101,116,95,100,97,116,97,40,41,114,
+ 139,0,0,0,78,41,5,114,203,0,0,0,218,8,103,101,
+ 116,95,100,97,116,97,114,76,0,0,0,114,141,0,0,0,
+ 114,200,0,0,0,41,5,114,142,0,0,0,114,163,0,0,
+ 0,114,65,0,0,0,114,198,0,0,0,218,3,101,120,99,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
+ 10,103,101,116,95,115,111,117,114,99,101,130,3,0,0,115,
+ 20,0,0,0,0,2,10,1,2,1,14,1,14,1,4,1,
+ 2,255,4,1,2,255,24,2,122,23,83,111,117,114,99,101,
+ 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,
+ 101,114,129,0,0,0,41,1,218,9,95,111,112,116,105,109,
+ 105,122,101,99,3,0,0,0,0,0,0,0,1,0,0,0,
+ 4,0,0,0,8,0,0,0,67,0,0,0,115,22,0,0,
+ 0,116,0,106,1,116,2,124,1,124,2,100,1,100,2,124,
+ 3,100,3,141,6,83,0,41,4,122,130,82,101,116,117,114,
+ 110,32,116,104,101,32,99,111,100,101,32,111,98,106,101,99,
+ 116,32,99,111,109,112,105,108,101,100,32,102,114,111,109,32,
+ 115,111,117,114,99,101,46,10,10,32,32,32,32,32,32,32,
+ 32,84,104,101,32,39,100,97,116,97,39,32,97,114,103,117,
+ 109,101,110,116,32,99,97,110,32,98,101,32,97,110,121,32,
+ 111,98,106,101,99,116,32,116,121,112,101,32,116,104,97,116,
+ 32,99,111,109,112,105,108,101,40,41,32,115,117,112,112,111,
+ 114,116,115,46,10,32,32,32,32,32,32,32,32,114,238,0,
+ 0,0,84,41,2,218,12,100,111,110,116,95,105,110,104,101,
+ 114,105,116,114,107,0,0,0,41,3,114,158,0,0,0,114,
+ 237,0,0,0,218,7,99,111,109,112,105,108,101,41,4,114,
+ 142,0,0,0,114,43,0,0,0,114,65,0,0,0,114,253,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,111,
+ 100,101,140,3,0,0,115,6,0,0,0,0,5,12,1,4,
+ 255,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,0,0,0,0,15,0,0,0,9,
+ 0,0,0,67,0,0,0,115,24,2,0,0,124,0,160,0,
+ 124,1,161,1,125,2,100,1,125,3,100,1,125,4,100,1,
+ 125,5,100,2,125,6,100,3,125,7,122,12,116,1,124,2,
+ 131,1,125,8,87,0,110,24,4,0,116,2,121,66,1,0,
+ 1,0,1,0,100,1,125,8,89,0,144,1,110,42,48,0,
+ 122,14,124,0,160,3,124,2,161,1,125,9,87,0,110,20,
+ 4,0,116,4,121,102,1,0,1,0,1,0,89,0,144,1,
+ 110,6,48,0,116,5,124,9,100,4,25,0,131,1,125,3,
+ 122,14,124,0,160,6,124,8,161,1,125,10,87,0,110,18,
+ 4,0,116,4,121,148,1,0,1,0,1,0,89,0,110,216,
+ 48,0,124,1,124,8,100,5,156,2,125,11,122,148,116,7,
+ 124,10,124,1,124,11,131,3,125,12,116,8,124,10,131,1,
+ 100,6,100,1,133,2,25,0,125,13,124,12,100,7,64,0,
+ 100,8,107,3,125,6,124,6,144,1,114,30,124,12,100,9,
+ 64,0,100,8,107,3,125,7,116,9,106,10,100,10,107,3,
+ 144,1,114,50,124,7,115,248,116,9,106,10,100,11,107,2,
+ 144,1,114,50,124,0,160,6,124,2,161,1,125,4,116,9,
+ 160,11,116,12,124,4,161,2,125,5,116,13,124,10,124,5,
+ 124,1,124,11,131,4,1,0,110,20,116,14,124,10,124,3,
+ 124,9,100,12,25,0,124,1,124,11,131,5,1,0,87,0,
+ 110,24,4,0,116,15,116,16,102,2,144,1,121,76,1,0,
+ 1,0,1,0,89,0,110,32,48,0,116,17,160,18,100,13,
+ 124,8,124,2,161,3,1,0,116,19,124,13,124,1,124,8,
+ 124,2,100,14,141,4,83,0,124,4,100,1,117,0,144,1,
+ 114,128,124,0,160,6,124,2,161,1,125,4,124,0,160,20,
+ 124,4,124,2,161,2,125,14,116,17,160,18,100,15,124,2,
+ 161,2,1,0,116,21,106,22,144,2,115,20,124,8,100,1,
+ 117,1,144,2,114,20,124,3,100,1,117,1,144,2,114,20,
+ 124,6,144,1,114,220,124,5,100,1,117,0,144,1,114,206,
+ 116,9,160,11,124,4,161,1,125,5,116,23,124,14,124,5,
+ 124,7,131,3,125,10,110,16,116,24,124,14,124,3,116,25,
+ 124,4,131,1,131,3,125,10,122,18,124,0,160,26,124,2,
+ 124,8,124,10,161,3,1,0,87,0,110,20,4,0,116,2,
+ 144,2,121,18,1,0,1,0,1,0,89,0,110,2,48,0,
+ 124,14,83,0,41,16,122,190,67,111,110,99,114,101,116,101,
+ 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
+ 111,102,32,73,110,115,112,101,99,116,76,111,97,100,101,114,
+ 46,103,101,116,95,99,111,100,101,46,10,10,32,32,32,32,
+ 32,32,32,32,82,101,97,100,105,110,103,32,111,102,32,98,
+ 121,116,101,99,111,100,101,32,114,101,113,117,105,114,101,115,
+ 32,112,97,116,104,95,115,116,97,116,115,32,116,111,32,98,
+ 101,32,105,109,112,108,101,109,101,110,116,101,100,46,32,84,
+ 111,32,119,114,105,116,101,10,32,32,32,32,32,32,32,32,
+ 98,121,116,101,99,111,100,101,44,32,115,101,116,95,100,97,
+ 116,97,32,109,117,115,116,32,97,108,115,111,32,98,101,32,
+ 105,109,112,108,101,109,101,110,116,101,100,46,10,10,32,32,
+ 32,32,32,32,32,32,78,70,84,114,193,0,0,0,114,183,
+ 0,0,0,114,169,0,0,0,114,4,0,0,0,114,0,0,
+ 0,0,114,45,0,0,0,90,5,110,101,118,101,114,90,6,
+ 97,108,119,97,121,115,218,4,115,105,122,101,122,13,123,125,
+ 32,109,97,116,99,104,101,115,32,123,125,41,3,114,140,0,
+ 0,0,114,131,0,0,0,114,133,0,0,0,122,19,99,111,
+ 100,101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,
+ 125,41,27,114,203,0,0,0,114,120,0,0,0,114,106,0,
+ 0,0,114,247,0,0,0,114,76,0,0,0,114,36,0,0,
+ 0,114,250,0,0,0,114,176,0,0,0,218,10,109,101,109,
+ 111,114,121,118,105,101,119,114,187,0,0,0,90,21,99,104,
+ 101,99,107,95,104,97,115,104,95,98,97,115,101,100,95,112,
+ 121,99,115,114,181,0,0,0,218,17,95,82,65,87,95,77,
+ 65,71,73,67,95,78,85,77,66,69,82,114,182,0,0,0,
+ 114,180,0,0,0,114,141,0,0,0,114,174,0,0,0,114,
+ 158,0,0,0,114,173,0,0,0,114,189,0,0,0,114,0,
+ 1,0,0,114,21,0,0,0,218,19,100,111,110,116,95,119,
+ 114,105,116,101,95,98,121,116,101,99,111,100,101,114,195,0,
+ 0,0,114,194,0,0,0,114,6,0,0,0,114,249,0,0,
+ 0,41,15,114,142,0,0,0,114,163,0,0,0,114,133,0,
+ 0,0,114,178,0,0,0,114,198,0,0,0,114,181,0,0,
+ 0,90,10,104,97,115,104,95,98,97,115,101,100,90,12,99,
+ 104,101,99,107,95,115,111,117,114,99,101,114,131,0,0,0,
+ 218,2,115,116,114,43,0,0,0,114,175,0,0,0,114,22,
+ 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,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,236,0,0,0,
+ 148,3,0,0,115,152,0,0,0,0,7,10,1,4,1,4,
+ 1,4,1,4,1,4,1,2,1,12,1,12,1,12,2,2,
+ 1,14,1,12,1,8,2,12,1,2,1,14,1,12,1,6,
+ 3,2,1,2,254,6,4,2,1,12,1,16,1,12,1,6,
+ 1,12,1,12,1,2,255,2,2,8,254,4,3,10,1,4,
+ 1,2,1,2,254,4,4,8,1,2,255,6,3,2,1,2,
+ 1,2,1,6,1,2,1,2,251,8,7,18,1,6,2,8,
+ 1,2,255,4,2,6,1,2,1,2,254,6,3,10,1,10,
+ 1,12,1,12,1,18,1,6,255,4,2,6,1,10,1,10,
+ 1,14,2,6,1,6,255,4,2,2,1,18,1,14,1,6,
+ 1,122,21,83,111,117,114,99,101,76,111,97,100,101,114,46,
+ 103,101,116,95,99,111,100,101,78,41,10,114,149,0,0,0,
+ 114,148,0,0,0,114,150,0,0,0,114,246,0,0,0,114,
+ 247,0,0,0,114,249,0,0,0,114,248,0,0,0,114,252,
+ 0,0,0,114,0,1,0,0,114,236,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,244,0,0,0,89,3,0,0,115,14,0,0,0,8,
+ 2,8,8,8,14,8,10,8,7,8,10,14,8,114,244,0,
+ 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,4,0,0,0,0,0,0,0,115,124,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,101,7,135,0,102,1,100,8,100,9,132,8,
+ 131,1,90,8,101,7,100,10,100,11,132,0,131,1,90,9,
+ 100,12,100,13,132,0,90,10,101,7,100,14,100,15,132,0,
+ 131,1,90,11,100,16,100,17,132,0,90,12,100,18,100,19,
+ 132,0,90,13,100,20,100,21,132,0,90,14,100,22,100,23,
+ 132,0,90,15,135,0,4,0,90,16,83,0,41,24,218,10,
+ 70,105,108,101,76,111,97,100,101,114,122,103,66,97,115,101,
+ 32,102,105,108,101,32,108,111,97,100,101,114,32,99,108,97,
+ 115,115,32,119,104,105,99,104,32,105,109,112,108,101,109,101,
+ 110,116,115,32,116,104,101,32,108,111,97,100,101,114,32,112,
+ 114,111,116,111,99,111,108,32,109,101,116,104,111,100,115,32,
+ 116,104,97,116,10,32,32,32,32,114,101,113,117,105,114,101,
+ 32,102,105,108,101,32,115,121,115,116,101,109,32,117,115,97,
+ 103,101,46,99,3,0,0,0,0,0,0,0,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,1,83,
+ 0,41,2,122,75,67,97,99,104,101,32,116,104,101,32,109,
+ 111,100,117,108,101,32,110,97,109,101,32,97,110,100,32,116,
+ 104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,102,
+ 105,108,101,32,102,111,117,110,100,32,98,121,32,116,104,101,
+ 10,32,32,32,32,32,32,32,32,102,105,110,100,101,114,46,
+ 78,114,183,0,0,0,41,3,114,142,0,0,0,114,163,0,
+ 0,0,114,65,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,232,0,0,0,238,3,0,0,115,
+ 4,0,0,0,0,3,6,1,122,19,70,105,108,101,76,111,
+ 97,100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,
+ 0,0,67,0,0,0,115,24,0,0,0,124,0,106,0,124,
+ 1,106,0,107,2,111,22,124,0,106,1,124,1,106,1,107,
+ 2,83,0,114,69,0,0,0,169,2,218,9,95,95,99,108,
+ 97,115,115,95,95,114,155,0,0,0,169,2,114,142,0,0,
+ 0,90,5,111,116,104,101,114,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,6,95,95,101,113,95,95,244,
+ 3,0,0,115,6,0,0,0,0,1,12,1,10,255,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,0,0,0,67,0,0,0,115,20,0,0,0,116,
+ 0,124,0,106,1,131,1,116,0,124,0,106,2,131,1,65,
+ 0,83,0,114,69,0,0,0,169,3,218,4,104,97,115,104,
+ 114,140,0,0,0,114,65,0,0,0,169,1,114,142,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 218,8,95,95,104,97,115,104,95,95,248,3,0,0,115,2,
+ 0,0,0,0,1,122,19,70,105,108,101,76,111,97,100,101,
+ 114,46,95,95,104,97,115,104,95,95,99,2,0,0,0,0,
+ 0,0,0,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,1,122,100,76,111,97,100,
+ 32,97,32,109,111,100,117,108,101,32,102,114,111,109,32,97,
+ 32,102,105,108,101,46,10,10,32,32,32,32,32,32,32,32,
+ 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,
+ 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,
+ 101,120,101,99,95,109,111,100,117,108,101,40,41,32,105,110,
+ 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
+ 41,3,218,5,115,117,112,101,114,114,6,1,0,0,114,243,
+ 0,0,0,114,242,0,0,0,169,1,114,8,1,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,243,0,0,0,251,3,
+ 0,0,115,2,0,0,0,0,10,122,22,70,105,108,101,76,
+ 111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,
+ 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,1,0,0,0,67,0,0,0,115,6,0,0,0,124,
+ 0,106,0,83,0,169,1,122,58,82,101,116,117,114,110,32,
+ 116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,
+ 115,111,117,114,99,101,32,102,105,108,101,32,97,115,32,102,
+ 111,117,110,100,32,98,121,32,116,104,101,32,102,105,110,100,
+ 101,114,46,114,71,0,0,0,114,242,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,203,0,0,
+ 0,7,4,0,0,115,2,0,0,0,0,3,122,23,70,105,
+ 108,101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,
+ 101,110,97,109,101,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,126,
+ 0,0,0,116,0,124,0,116,1,116,2,102,2,131,2,114,
+ 70,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,48,0,1,0,1,
+ 0,1,0,89,0,1,0,110,52,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,
+ 112,48,0,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,185,0,0,0,114,244,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,90,0,0,0,90,9,111,112,101,110,95,99,111,100,
+ 101,114,108,0,0,0,90,4,114,101,97,100,114,91,0,0,
+ 0,41,3,114,142,0,0,0,114,65,0,0,0,114,93,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,250,0,0,0,12,4,0,0,115,10,0,0,0,0,
+ 2,14,1,16,1,40,2,14,1,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,2,0,0,0,3,
+ 0,0,0,67,0,0,0,115,18,0,0,0,124,0,160,0,
+ 124,1,161,1,114,14,124,0,83,0,100,0,83,0,114,69,
+ 0,0,0,41,1,114,206,0,0,0,169,2,114,142,0,0,
+ 0,114,239,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,19,103,101,116,95,114,101,115,111,117,
+ 114,99,101,95,114,101,97,100,101,114,23,4,0,0,115,6,
+ 0,0,0,0,2,10,1,4,1,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,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
+ 0,0,115,32,0,0,0,116,0,116,1,124,0,106,2,131,
+ 1,100,1,25,0,124,1,131,2,125,2,116,3,160,4,124,
+ 2,100,2,161,2,83,0,41,3,78,114,0,0,0,0,114,
+ 18,1,0,0,41,5,114,67,0,0,0,114,74,0,0,0,
+ 114,65,0,0,0,114,90,0,0,0,114,91,0,0,0,169,
+ 3,114,142,0,0,0,90,8,114,101,115,111,117,114,99,101,
+ 114,65,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,13,111,112,101,110,95,114,101,115,111,117,
+ 114,99,101,29,4,0,0,115,4,0,0,0,0,1,20,1,
+ 122,24,70,105,108,101,76,111,97,100,101,114,46,111,112,101,
+ 110,95,114,101,115,111,117,114,99,101,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,38,0,0,0,124,0,160,0,124,1,161,1,
+ 115,14,116,1,130,1,116,2,116,3,124,0,106,4,131,1,
+ 100,1,25,0,124,1,131,2,125,2,124,2,83,0,169,2,
+ 78,114,0,0,0,0,41,5,218,11,105,115,95,114,101,115,
+ 111,117,114,99,101,218,17,70,105,108,101,78,111,116,70,111,
+ 117,110,100,69,114,114,111,114,114,67,0,0,0,114,74,0,
+ 0,0,114,65,0,0,0,114,22,1,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,13,114,101,115,
+ 111,117,114,99,101,95,112,97,116,104,33,4,0,0,115,8,
+ 0,0,0,0,1,10,1,4,1,20,1,122,24,70,105,108,
+ 101,76,111,97,100,101,114,46,114,101,115,111,117,114,99,101,
+ 95,112,97,116,104,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,40,
+ 0,0,0,116,0,124,1,118,0,114,12,100,1,83,0,116,
+ 1,116,2,124,0,106,3,131,1,100,2,25,0,124,1,131,
+ 2,125,2,116,4,124,2,131,1,83,0,41,3,78,70,114,
+ 0,0,0,0,41,5,114,59,0,0,0,114,67,0,0,0,
+ 114,74,0,0,0,114,65,0,0,0,114,80,0,0,0,169,
+ 3,114,142,0,0,0,114,140,0,0,0,114,65,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 25,1,0,0,39,4,0,0,115,8,0,0,0,0,1,8,
+ 1,4,1,20,1,122,22,70,105,108,101,76,111,97,100,101,
+ 114,46,105,115,95,114,101,115,111,117,114,99,101,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,
+ 0,0,67,0,0,0,115,24,0,0,0,116,0,116,1,160,
+ 2,116,3,124,0,106,4,131,1,100,1,25,0,161,1,131,
+ 1,83,0,114,24,1,0,0,41,5,218,4,105,116,101,114,
+ 114,24,0,0,0,218,7,108,105,115,116,100,105,114,114,74,
+ 0,0,0,114,65,0,0,0,114,13,1,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,8,99,111,
+ 110,116,101,110,116,115,45,4,0,0,115,2,0,0,0,0,
+ 1,122,19,70,105,108,101,76,111,97,100,101,114,46,99,111,
+ 110,116,101,110,116,115,41,17,114,149,0,0,0,114,148,0,
+ 0,0,114,150,0,0,0,114,151,0,0,0,114,232,0,0,
+ 0,114,10,1,0,0,114,14,1,0,0,114,160,0,0,0,
+ 114,243,0,0,0,114,203,0,0,0,114,250,0,0,0,114,
+ 21,1,0,0,114,23,1,0,0,114,27,1,0,0,114,25,
+ 1,0,0,114,31,1,0,0,90,13,95,95,99,108,97,115,
+ 115,99,101,108,108,95,95,114,10,0,0,0,114,10,0,0,
+ 0,114,16,1,0,0,114,11,0,0,0,114,6,1,0,0,
+ 233,3,0,0,115,30,0,0,0,8,2,4,3,8,6,8,
+ 4,8,3,2,1,14,11,2,1,10,4,8,11,2,1,10,
+ 5,8,4,8,6,8,6,114,6,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,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,2,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,193,0,0,0,114,1,1,0,
+ 0,41,3,114,75,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,142,0,
+ 0,0,114,65,0,0,0,114,5,1,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,247,0,0,0,
+ 53,4,0,0,115,4,0,0,0,0,2,8,1,122,27,83,
+ 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,
+ 112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,0,
+ 0,0,0,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,138,
+ 0,0,0,114,248,0,0,0,41,5,114,142,0,0,0,114,
+ 133,0,0,0,114,131,0,0,0,114,43,0,0,0,114,78,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,114,249,0,0,0,58,4,0,0,115,4,0,0,0,
+ 0,2,8,1,122,32,83,111,117,114,99,101,70,105,108,101,
+ 76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,
+ 116,101,99,111,100,101,114,86,0,0,0,114,34,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,252,0,0,0,116,0,
+ 124,1,131,1,92,2,125,4,125,5,103,0,125,6,124,4,
+ 114,52,116,1,124,4,131,1,115,52,116,0,124,4,131,1,
+ 92,2,125,4,125,7,124,6,160,2,124,7,161,1,1,0,
+ 113,16,116,3,124,6,131,1,68,0,93,104,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,60,4,0,116,7,121,110,1,0,
+ 1,0,1,0,89,0,113,60,89,0,113,60,4,0,116,8,
+ 121,162,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,48,0,
+ 48,0,113,60,122,28,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,
+ 110,52,4,0,116,8,144,0,121,246,1,0,125,8,1,0,
+ 122,26,116,9,160,10,100,1,124,1,124,8,161,3,1,0,
+ 87,0,89,0,100,2,125,8,126,8,110,10,100,2,125,8,
+ 126,8,48,0,48,0,100,2,83,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,74,0,0,0,114,82,0,0,
+ 0,114,61,0,0,0,218,8,114,101,118,101,114,115,101,100,
+ 114,67,0,0,0,114,24,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,76,0,0,0,114,158,0,0,0,114,173,0,0,
+ 0,114,94,0,0,0,41,9,114,142,0,0,0,114,65,0,
+ 0,0,114,43,0,0,0,114,35,1,0,0,218,6,112,97,
+ 114,101,110,116,114,119,0,0,0,114,63,0,0,0,114,68,
+ 0,0,0,114,251,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,248,0,0,0,63,4,0,0,
+ 115,46,0,0,0,0,2,12,1,4,2,12,1,12,1,12,
+ 2,12,1,10,1,2,1,14,1,12,2,8,1,14,3,6,
+ 1,4,255,4,2,28,1,2,1,12,1,16,1,16,2,8,
+ 1,2,255,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,149,0,0,0,114,148,0,0,0,114,150,0,0,0,
+ 114,151,0,0,0,114,247,0,0,0,114,249,0,0,0,114,
+ 248,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,32,1,0,0,49,4,0,
+ 0,115,8,0,0,0,8,2,4,2,8,5,8,5,114,32,
+ 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,183,0,
+ 0,0,114,169,0,0,0,41,2,114,140,0,0,0,114,131,
+ 0,0,0,41,5,114,203,0,0,0,114,250,0,0,0,114,
+ 176,0,0,0,114,189,0,0,0,114,2,1,0,0,41,5,
+ 114,142,0,0,0,114,163,0,0,0,114,65,0,0,0,114,
+ 43,0,0,0,114,175,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,236,0,0,0,98,4,0,
+ 0,115,22,0,0,0,0,1,10,1,10,4,2,1,2,254,
+ 6,4,12,1,2,1,14,1,2,1,2,253,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,115,4,0,0,0,100,1,83,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,10,0,0,0,114,242,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,114,252,0,0,0,114,4,0,0,115,2,0,0,0,
+ 0,2,122,31,83,111,117,114,99,101,108,101,115,115,70,105,
+ 108,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,
+ 114,99,101,78,41,6,114,149,0,0,0,114,148,0,0,0,
+ 114,150,0,0,0,114,151,0,0,0,114,236,0,0,0,114,
+ 252,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,39,1,0,0,94,4,0,
+ 0,115,6,0,0,0,8,2,4,2,8,16,114,39,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,19,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,8,0,0,0,67,0,0,0,115,62,0,0,0,124,
+ 1,124,0,95,0,116,1,124,2,131,1,115,52,122,18,116,
+ 2,116,3,160,4,161,0,124,2,131,2,125,2,87,0,110,
+ 18,4,0,116,5,121,50,1,0,1,0,1,0,89,0,110,
+ 2,48,0,124,2,124,0,95,6,100,0,83,0,114,69,0,
+ 0,0,41,7,114,140,0,0,0,114,85,0,0,0,114,67,
+ 0,0,0,114,24,0,0,0,114,81,0,0,0,114,76,0,
+ 0,0,114,65,0,0,0,114,28,1,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,232,0,0,0,
+ 131,4,0,0,115,14,0,0,0,0,1,6,1,8,1,2,
+ 1,18,1,12,1,6,1,122,28,69,120,116,101,110,115,105,
+ 111,110,70,105,108,101,76,111,97,100,101,114,46,95,95,105,
+ 110,105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,24,
+ 0,0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,
+ 0,106,1,124,1,106,1,107,2,83,0,114,69,0,0,0,
+ 114,7,1,0,0,114,9,1,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,10,1,0,0,140,4,
+ 0,0,115,6,0,0,0,0,1,12,1,10,255,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,115,20,0,0,0,116,0,124,0,106,1,131,1,116,
+ 0,124,0,106,2,131,1,65,0,83,0,114,69,0,0,0,
+ 114,11,1,0,0,114,13,1,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,14,1,0,0,144,4,
+ 0,0,115,2,0,0,0,0,1,122,28,69,120,116,101,110,
+ 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,
+ 95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,0,
+ 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,2,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,41,7,114,158,0,
+ 0,0,114,237,0,0,0,114,187,0,0,0,90,14,99,114,
+ 101,97,116,101,95,100,121,110,97,109,105,99,114,173,0,0,
+ 0,114,140,0,0,0,114,65,0,0,0,41,3,114,142,0,
+ 0,0,114,210,0,0,0,114,239,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,235,0,0,0,
+ 147,4,0,0,115,14,0,0,0,0,2,4,1,6,255,4,
+ 2,6,1,8,255,4,2,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,158,0,0,0,
+ 114,237,0,0,0,114,187,0,0,0,90,12,101,120,101,99,
+ 95,100,121,110,97,109,105,99,114,173,0,0,0,114,140,0,
+ 0,0,114,65,0,0,0,114,20,1,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,240,0,0,0,
+ 155,4,0,0,115,8,0,0,0,0,2,14,1,6,1,8,
+ 255,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,4,122,49,82,101,116,117,114,110,32,84,
+ 114,117,101,32,105,102,32,116,104,101,32,101,120,116,101,110,
+ 115,105,111,110,32,109,111,100,117,108,101,32,105,115,32,97,
+ 32,112,97,99,107,97,103,101,46,114,4,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,232,0,0,0,78,114,10,
+ 0,0,0,169,2,114,8,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,
+ 10,0,0,0,114,11,0,0,0,114,12,0,0,0,164,4,
+ 0,0,115,4,0,0,0,4,1,2,255,122,49,69,120,116,
+ 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,
+ 46,105,115,95,112,97,99,107,97,103,101,46,60,108,111,99,
+ 97,108,115,62,46,60,103,101,110,101,120,112,114,62,41,4,
+ 114,74,0,0,0,114,65,0,0,0,218,3,97,110,121,218,
+ 18,69,88,84,69,78,83,73,79,78,95,83,85,70,70,73,
+ 88,69,83,114,242,0,0,0,114,10,0,0,0,114,42,1,
+ 0,0,114,11,0,0,0,114,206,0,0,0,161,4,0,0,
+ 115,8,0,0,0,0,2,14,1,12,1,2,255,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,115,4,0,0,0,100,1,83,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,10,0,0,0,114,242,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,236,0,0,
+ 0,167,4,0,0,115,2,0,0,0,0,2,122,28,69,120,
+ 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+ 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
+ 0,0,0,115,4,0,0,0,100,1,83,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,10,0,0,0,114,242,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 252,0,0,0,171,4,0,0,115,2,0,0,0,0,2,122,
+ 30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
+ 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 1,0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,
+ 0,83,0,114,17,1,0,0,114,71,0,0,0,114,242,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,203,0,0,0,175,4,0,0,115,2,0,0,0,0,
+ 3,122,32,69,120,116,101,110,115,105,111,110,70,105,108,101,
+ 76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,
+ 97,109,101,78,41,14,114,149,0,0,0,114,148,0,0,0,
+ 114,150,0,0,0,114,151,0,0,0,114,232,0,0,0,114,
+ 10,1,0,0,114,14,1,0,0,114,235,0,0,0,114,240,
+ 0,0,0,114,206,0,0,0,114,236,0,0,0,114,252,0,
+ 0,0,114,160,0,0,0,114,203,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 114,19,1,0,0,123,4,0,0,115,22,0,0,0,8,2,
+ 4,6,8,9,8,4,8,3,8,8,8,6,8,6,8,4,
+ 8,4,2,1,114,19,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,69,
+ 0,0,0,41,6,218,5,95,110,97,109,101,218,5,95,112,
+ 97,116,104,114,135,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,142,0,
+ 0,0,114,140,0,0,0,114,65,0,0,0,90,11,112,97,
+ 116,104,95,102,105,110,100,101,114,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,232,0,0,0,188,4,0,
+ 0,115,8,0,0,0,0,1,6,1,6,1,14,1,122,23,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
+ 95,105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,
+ 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,5,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,96,0,
+ 0,0,114,14,0,0,0,41,2,114,21,0,0,0,114,65,
+ 0,0,0,90,8,95,95,112,97,116,104,95,95,41,2,114,
+ 46,1,0,0,114,103,0,0,0,41,4,114,142,0,0,0,
+ 114,38,1,0,0,218,3,100,111,116,90,2,109,101,114,10,
+ 0,0,0,114,10,0,0,0,114,11,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,194,4,0,0,115,8,0,0,0,0,
+ 2,18,1,8,2,4,3,122,38,95,78,97,109,101,115,112,
+ 97,99,101,80,97,116,104,46,95,102,105,110,100,95,112,97,
+ 114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,99,
+ 1,0,0,0,0,0,0,0,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,69,0,0,0,41,4,
+ 114,53,1,0,0,114,154,0,0,0,114,21,0,0,0,218,
+ 7,109,111,100,117,108,101,115,41,3,114,142,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,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,114,48,1,0,0,204,4,0,0,115,4,0,0,0,
+ 0,1,12,1,122,31,95,78,97,109,101,115,112,97,99,101,
+ 80,97,116,104,46,95,103,101,116,95,112,97,114,101,110,116,
+ 95,112,97,116,104,99,1,0,0,0,0,0,0,0,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,69,0,0,0,41,8,114,135,0,0,0,114,
+ 48,1,0,0,114,49,1,0,0,114,50,1,0,0,114,46,
+ 1,0,0,114,164,0,0,0,114,202,0,0,0,114,47,1,
+ 0,0,41,3,114,142,0,0,0,90,11,112,97,114,101,110,
+ 116,95,112,97,116,104,114,210,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,12,95,114,101,99,
+ 97,108,99,117,108,97,116,101,208,4,0,0,115,16,0,0,
+ 0,0,2,12,1,10,1,14,3,18,1,6,1,8,1,6,
+ 1,122,27,95,78,97,109,101,115,112,97,99,101,80,97,116,
+ 104,46,95,114,101,99,97,108,99,117,108,97,116,101,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
+ 0,0,0,67,0,0,0,115,12,0,0,0,116,0,124,0,
+ 160,1,161,0,131,1,83,0,114,69,0,0,0,41,2,114,
+ 29,1,0,0,114,55,1,0,0,114,13,1,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,218,8,95,
+ 95,105,116,101,114,95,95,221,4,0,0,115,2,0,0,0,
+ 0,1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,
+ 116,104,46,95,95,105,116,101,114,95,95,99,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,69,0,0,0,169,1,114,55,1,0,
+ 0,41,2,114,142,0,0,0,218,5,105,110,100,101,120,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,11,
+ 95,95,103,101,116,105,116,101,109,95,95,224,4,0,0,115,
+ 2,0,0,0,0,1,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,69,
+ 0,0,0,41,1,114,47,1,0,0,41,3,114,142,0,0,
+ 0,114,58,1,0,0,114,65,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,11,95,95,115,101,
+ 116,105,116,101,109,95,95,227,4,0,0,115,2,0,0,0,
+ 0,1,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,115,12,0,0,0,116,0,124,0,
+ 160,1,161,0,131,1,83,0,114,69,0,0,0,41,2,114,
+ 6,0,0,0,114,55,1,0,0,114,13,1,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,218,7,95,
+ 95,108,101,110,95,95,230,4,0,0,115,2,0,0,0,0,
+ 1,122,22,95,78,97,109,101,115,112,97,99,101,80,97,116,
+ 104,46,95,95,108,101,110,95,95,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
+ 0,0,115,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,88,
+ 0,0,0,114,47,1,0,0,114,13,1,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,8,95,95,
+ 114,101,112,114,95,95,233,4,0,0,115,2,0,0,0,0,
+ 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,
+ 104,46,95,95,114,101,112,114,95,95,99,2,0,0,0,0,
+ 0,0,0,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,69,0,0,0,114,57,1,0,0,169,2,
+ 114,142,0,0,0,218,4,105,116,101,109,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,12,95,95,99,111,
+ 110,116,97,105,110,115,95,95,236,4,0,0,115,2,0,0,
+ 0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,80,
+ 97,116,104,46,95,95,99,111,110,116,97,105,110,115,95,95,
+ 99,2,0,0,0,0,0,0,0,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,69,
+ 0,0,0,41,2,114,47,1,0,0,114,61,0,0,0,114,
+ 63,1,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,61,0,0,0,239,4,0,0,115,2,0,0,
+ 0,0,1,122,21,95,78,97,109,101,115,112,97,99,101,80,
+ 97,116,104,46,97,112,112,101,110,100,78,41,15,114,149,0,
+ 0,0,114,148,0,0,0,114,150,0,0,0,114,151,0,0,
+ 0,114,232,0,0,0,114,53,1,0,0,114,48,1,0,0,
+ 114,55,1,0,0,114,56,1,0,0,114,59,1,0,0,114,
+ 60,1,0,0,114,61,1,0,0,114,62,1,0,0,114,65,
+ 1,0,0,114,61,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,45,1,0,
+ 0,181,4,0,0,115,24,0,0,0,8,1,4,6,8,6,
+ 8,10,8,4,8,13,8,3,8,3,8,3,8,3,8,3,
+ 8,3,114,45,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,80,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,83,0,41,18,218,16,95,78,97,109,101,115,112,
+ 97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0,
+ 0,0,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,69,0,0,0,41,2,
+ 114,45,1,0,0,114,47,1,0,0,114,51,1,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,232,
+ 0,0,0,245,4,0,0,115,2,0,0,0,0,1,122,25,
+ 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
+ 46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,
+ 0,0,115,12,0,0,0,100,1,160,0,124,1,106,1,161,
+ 1,83,0,41,2,122,115,82,101,116,117,114,110,32,114,101,
+ 112,114,32,102,111,114,32,116,104,101,32,109,111,100,117,108,
+ 101,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,
+ 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
+ 97,116,101,100,46,32,32,84,104,101,32,105,109,112,111,114,
+ 116,32,109,97,99,104,105,110,101,114,121,32,100,111,101,115,
+ 32,116,104,101,32,106,111,98,32,105,116,115,101,108,102,46,
+ 10,10,32,32,32,32,32,32,32,32,122,25,60,109,111,100,
+ 117,108,101,32,123,33,114,125,32,40,110,97,109,101,115,112,
+ 97,99,101,41,62,41,2,114,88,0,0,0,114,149,0,0,
+ 0,41,2,114,216,0,0,0,114,239,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,11,109,111,
+ 100,117,108,101,95,114,101,112,114,248,4,0,0,115,2,0,
+ 0,0,0,7,122,28,95,78,97,109,101,115,112,97,99,101,
+ 76,111,97,100,101,114,46,109,111,100,117,108,101,95,114,101,
+ 112,114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,
+ 100,1,83,0,41,2,78,84,114,10,0,0,0,114,242,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,206,0,0,0,1,5,0,0,115,2,0,0,0,0,
+ 1,122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,
+ 100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
+ 0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,0,
+ 41,2,78,114,14,0,0,0,114,10,0,0,0,114,242,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,252,0,0,0,4,5,0,0,115,2,0,0,0,0,
+ 1,122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,
+ 100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,
+ 0,0,0,0,0,0,0,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,
+ 14,0,0,0,122,8,60,115,116,114,105,110,103,62,114,238,
+ 0,0,0,84,41,1,114,254,0,0,0,41,1,114,255,0,
+ 0,0,114,242,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,236,0,0,0,7,5,0,0,115,
+ 2,0,0,0,0,1,122,25,95,78,97,109,101,115,112,97,
+ 99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,
+ 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
+ 1,83,0,114,233,0,0,0,114,10,0,0,0,114,234,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,235,0,0,0,10,5,0,0,115,2,0,0,0,0,
+ 1,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,69,0,0,0,114,10,0,0,0,114,20,1,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,240,0,0,0,13,5,0,0,115,2,0,0,0,0,
+ 1,122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,
+ 100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,
+ 2,0,0,0,0,0,0,0,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,2,122,98,76,111,97,100,32,
+ 97,32,110,97,109,101,115,112,97,99,101,32,109,111,100,117,
+ 108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
+ 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
+ 101,99,97,116,101,100,46,32,32,85,115,101,32,101,120,101,
+ 99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,
+ 97,100,46,10,10,32,32,32,32,32,32,32,32,122,38,110,
+ 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,32,
+ 108,111,97,100,101,100,32,119,105,116,104,32,112,97,116,104,
+ 32,123,33,114,125,41,4,114,158,0,0,0,114,173,0,0,
+ 0,114,47,1,0,0,114,241,0,0,0,114,242,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 243,0,0,0,16,5,0,0,115,8,0,0,0,0,7,6,
+ 1,4,255,4,2,122,28,95,78,97,109,101,115,112,97,99,
+ 101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,
+ 117,108,101,78,41,12,114,149,0,0,0,114,148,0,0,0,
+ 114,150,0,0,0,114,232,0,0,0,114,230,0,0,0,114,
+ 67,1,0,0,114,206,0,0,0,114,252,0,0,0,114,236,
+ 0,0,0,114,235,0,0,0,114,240,0,0,0,114,243,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,66,1,0,0,244,4,0,0,115,
+ 18,0,0,0,8,1,8,3,2,1,10,8,8,3,8,3,
+ 8,3,8,3,8,3,114,66,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,4,100,
+ 6,100,7,132,0,131,1,90,7,101,4,100,8,100,9,132,
+ 0,131,1,90,8,101,4,100,19,100,11,100,12,132,1,131,
+ 1,90,9,101,4,100,20,100,13,100,14,132,1,131,1,90,
+ 10,101,4,100,21,100,15,100,16,132,1,131,1,90,11,101,
+ 4,100,17,100,18,132,0,131,1,90,12,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,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,64,0,0,0,116,0,116,1,106,
+ 2,160,3,161,0,131,1,68,0,93,44,92,2,125,1,125,
+ 2,124,2,100,1,117,0,114,40,116,1,106,2,124,1,61,
+ 0,113,14,116,4,124,2,100,2,131,2,114,14,124,2,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,21,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,152,0,0,0,114,69,
+ 1,0,0,41,3,114,216,0,0,0,114,140,0,0,0,218,
+ 6,102,105,110,100,101,114,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,69,1,0,0,34,5,0,0,115,
+ 10,0,0,0,0,4,22,1,8,1,10,1,10,1,122,28,
+ 80,97,116,104,70,105,110,100,101,114,46,105,110,118,97,108,
+ 105,100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,9,0,0,
+ 0,67,0,0,0,115,82,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,42,125,2,
+ 122,14,124,2,124,1,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,
+ 89,0,113,34,48,0,113,34,100,1,83,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,21,0,0,0,218,
+ 10,112,97,116,104,95,104,111,111,107,115,114,98,0,0,0,
+ 114,99,0,0,0,114,162,0,0,0,114,141,0,0,0,41,
+ 3,114,216,0,0,0,114,65,0,0,0,90,4,104,111,111,
+ 107,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 218,11,95,112,97,116,104,95,104,111,111,107,115,44,5,0,
+ 0,115,16,0,0,0,0,3,16,1,12,1,10,1,2,1,
+ 14,1,12,1,12,2,122,22,80,97,116,104,70,105,110,100,
+ 101,114,46,95,112,97,116,104,95,104,111,111,107,115,99,2,
+ 0,0,0,0,0,0,0,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,42,122,12,116,0,160,1,161,0,125,1,87,0,
+ 110,20,4,0,116,2,121,40,1,0,1,0,1,0,89,0,
+ 100,2,83,0,48,0,122,14,116,3,106,4,124,1,25,0,
+ 125,2,87,0,110,38,4,0,116,5,121,94,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,110,2,48,0,124,2,83,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,14,0,0,0,78,41,7,114,24,
+ 0,0,0,114,81,0,0,0,114,26,1,0,0,114,21,0,
+ 0,0,114,71,1,0,0,218,8,75,101,121,69,114,114,111,
+ 114,114,75,1,0,0,41,3,114,216,0,0,0,114,65,0,
+ 0,0,114,73,1,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,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,57,5,0,0,
+ 115,22,0,0,0,0,8,8,1,2,1,12,1,12,3,8,
+ 1,2,1,14,1,12,1,10,1,16,1,122,31,80,97,116,
+ 104,70,105,110,100,101,114,46,95,112,97,116,104,95,105,109,
+ 112,111,114,116,101,114,95,99,97,99,104,101,99,3,0,0,
+ 0,0,0,0,0,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,
+ 161,0,0,0,41,7,114,152,0,0,0,114,161,0,0,0,
+ 114,229,0,0,0,114,158,0,0,0,114,224,0,0,0,114,
+ 207,0,0,0,114,202,0,0,0,41,6,114,216,0,0,0,
+ 114,163,0,0,0,114,73,1,0,0,114,164,0,0,0,114,
+ 165,0,0,0,114,210,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,16,95,108,101,103,97,99,
+ 121,95,103,101,116,95,115,112,101,99,79,5,0,0,115,18,
+ 0,0,0,0,4,10,1,16,2,10,1,4,1,8,1,12,
+ 1,12,1,6,1,122,27,80,97,116,104,70,105,110,100,101,
+ 114,46,95,108,101,103,97,99,121,95,103,101,116,95,115,112,
+ 101,99,78,99,4,0,0,0,0,0,0,0,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,8,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,226,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,185,0,0,0,114,108,0,0,
+ 0,218,5,98,121,116,101,115,114,77,1,0,0,114,152,0,
+ 0,0,114,226,0,0,0,114,78,1,0,0,114,164,0,0,
+ 0,114,202,0,0,0,114,141,0,0,0,114,191,0,0,0,
+ 114,158,0,0,0,114,207,0,0,0,41,9,114,216,0,0,
+ 0,114,163,0,0,0,114,65,0,0,0,114,225,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,73,1,0,0,114,210,0,0,
+ 0,114,165,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,9,95,103,101,116,95,115,112,101,99,
+ 94,5,0,0,115,40,0,0,0,0,5,4,1,8,1,14,
+ 1,2,1,10,1,8,1,10,1,14,2,12,1,8,1,2,
+ 1,10,1,8,1,6,1,8,1,8,5,12,2,12,1,6,
+ 1,122,20,80,97,116,104,70,105,110,100,101,114,46,95,103,
+ 101,116,95,115,112,101,99,99,4,0,0,0,0,0,0,0,
+ 0,0,0,0,6,0,0,0,5,0,0,0,67,0,0,0,
+ 115,100,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,92,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,110,
+ 4,124,4,83,0,100,1,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,21,0,
+ 0,0,114,65,0,0,0,114,81,1,0,0,114,164,0,0,
+ 0,114,202,0,0,0,114,205,0,0,0,114,45,1,0,0,
+ 41,6,114,216,0,0,0,114,163,0,0,0,114,65,0,0,
+ 0,114,225,0,0,0,114,210,0,0,0,114,80,1,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 226,0,0,0,126,5,0,0,115,26,0,0,0,0,6,8,
+ 1,6,1,14,1,8,1,4,1,10,1,6,1,4,3,6,
+ 1,16,1,4,2,6,2,122,20,80,97,116,104,70,105,110,
+ 100,101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,
+ 0,0,0,0,0,0,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,227,0,0,0,114,228,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,229,0,0,0,150,5,0,0,115,8,0,0,0,0,
+ 8,12,1,8,1,4,1,122,22,80,97,116,104,70,105,110,
+ 100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,4,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,3,1,0,124,3,106,2,124,1,105,
+ 0,124,2,164,1,142,1,83,0,41,3,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,41,3,90,18,105,
+ 109,112,111,114,116,108,105,98,46,109,101,116,97,100,97,116,
+ 97,114,82,1,0,0,218,18,102,105,110,100,95,100,105,115,
+ 116,114,105,98,117,116,105,111,110,115,41,4,114,216,0,0,
+ 0,114,143,0,0,0,114,144,0,0,0,114,82,1,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 83,1,0,0,163,5,0,0,115,4,0,0,0,0,10,12,
+ 1,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,13,114,149,0,0,
+ 0,114,148,0,0,0,114,150,0,0,0,114,151,0,0,0,
+ 114,230,0,0,0,114,69,1,0,0,114,75,1,0,0,114,
+ 77,1,0,0,114,78,1,0,0,114,81,1,0,0,114,226,
+ 0,0,0,114,229,0,0,0,114,83,1,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,68,1,0,0,30,5,0,0,115,34,0,0,0,8,
+ 2,4,2,2,1,10,9,2,1,10,12,2,1,10,21,2,
+ 1,10,14,2,1,12,31,2,1,12,23,2,1,12,12,2,
+ 1,114,68,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,112,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,116,3,124,0,106,2,131,1,115,86,116,4,116,5,
+ 160,6,161,0,124,0,106,2,131,2,124,0,95,2,100,4,
+ 124,0,95,7,116,8,131,0,124,0,95,9,116,8,131,0,
+ 124,0,95,10,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,69,0,0,0,114,
+ 10,0,0,0,114,40,1,0,0,169,1,114,164,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,12,0,0,0,192,
+ 5,0,0,114,13,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,96,0,0,0,114,129,0,0,0,78,41,11,114,191,0,
+ 0,0,218,8,95,108,111,97,100,101,114,115,114,65,0,0,
+ 0,114,85,0,0,0,114,67,0,0,0,114,24,0,0,0,
+ 114,81,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,142,0,0,0,
+ 114,65,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,212,
+ 0,0,0,114,10,0,0,0,114,85,1,0,0,114,11,0,
+ 0,0,114,232,0,0,0,186,5,0,0,115,20,0,0,0,
+ 0,4,4,1,12,1,26,1,6,2,10,1,10,1,18,1,
+ 6,1,8,1,122,19,70,105,108,101,70,105,110,100,101,114,
+ 46,95,95,105,110,105,116,95,95,99,1,0,0,0,0,0,
+ 0,0,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,129,0,0,0,78,41,1,114,87,1,0,
+ 0,114,13,1,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,69,1,0,0,202,5,0,0,115,2,
+ 0,0,0,0,2,122,28,70,105,108,101,70,105,110,100,101,
+ 114,46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
+ 104,101,115,99,2,0,0,0,0,0,0,0,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,226,0,0,0,114,164,0,0,
+ 0,114,202,0,0,0,41,3,114,142,0,0,0,114,163,0,
+ 0,0,114,210,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,161,0,0,0,208,5,0,0,115,
+ 8,0,0,0,0,7,10,1,8,1,8,1,122,22,70,105,
+ 108,101,70,105,110,100,101,114,46,102,105,110,100,95,108,111,
+ 97,100,101,114,99,6,0,0,0,0,0,0,0,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,
+ 201,0,0,0,41,1,114,213,0,0,0,41,7,114,142,0,
+ 0,0,114,211,0,0,0,114,163,0,0,0,114,65,0,0,
+ 0,90,4,115,109,115,108,114,225,0,0,0,114,164,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 114,81,1,0,0,220,5,0,0,115,8,0,0,0,0,1,
+ 10,1,8,1,2,255,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,9,0,
+ 0,0,67,0,0,0,115,126,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,22,4,0,116,6,121,64,1,0,1,
+ 0,1,0,100,4,125,5,89,0,110,2,48,0,124,5,124,
+ 0,106,7,107,3,114,90,124,0,160,8,161,0,1,0,124,
+ 5,124,0,95,7,116,9,131,0,114,112,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,216,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,
+ 148,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,148,116,17,124,8,131,
+ 1,125,3,124,0,106,14,68,0,93,112,92,2,125,9,125,
+ 10,122,20,116,13,124,0,106,2,124,4,124,9,23,0,131,
+ 2,125,12,87,0,110,24,4,0,116,18,144,1,121,18,1,
+ 0,1,0,1,0,89,0,1,0,100,6,83,0,48,0,116,
+ 19,106,20,100,7,124,12,100,3,100,8,141,3,1,0,124,
+ 7,124,9,23,0,124,6,118,0,114,222,116,15,124,12,131,
+ 1,114,222,124,0,160,16,124,10,124,1,124,12,100,6,124,
+ 2,161,5,2,0,1,0,83,0,113,222,124,3,144,1,114,
+ 122,116,19,160,20,100,9,124,8,161,2,1,0,116,19,160,
+ 21,124,1,100,6,161,2,125,13,124,8,103,1,124,13,95,
+ 22,124,13,83,0,100,6,83,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,96,0,
+ 0,0,114,45,0,0,0,114,129,0,0,0,114,232,0,0,
+ 0,78,122,9,116,114,121,105,110,103,32,123,125,41,1,90,
+ 9,118,101,114,98,111,115,105,116,121,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,23,114,103,0,0,0,114,75,0,0,
+ 0,114,65,0,0,0,114,24,0,0,0,114,81,0,0,0,
+ 114,33,1,0,0,114,76,0,0,0,114,87,1,0,0,218,
+ 11,95,102,105,108,108,95,99,97,99,104,101,114,27,0,0,
+ 0,114,90,1,0,0,114,130,0,0,0,114,89,1,0,0,
+ 114,67,0,0,0,114,86,1,0,0,114,80,0,0,0,114,
+ 81,1,0,0,114,82,0,0,0,114,110,0,0,0,114,158,
+ 0,0,0,114,173,0,0,0,114,207,0,0,0,114,202,0,
+ 0,0,41,14,114,142,0,0,0,114,163,0,0,0,114,225,
+ 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,193,
+ 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,41,1,0,0,114,211,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,210,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,226,0,0,0,
+ 225,5,0,0,115,78,0,0,0,0,5,4,1,14,1,2,
+ 1,24,1,12,1,10,1,10,1,8,1,6,2,6,1,6,
+ 1,10,2,6,1,4,2,8,1,12,1,14,1,8,1,10,
+ 1,8,1,26,4,8,2,14,1,2,1,20,1,14,1,10,
+ 1,16,1,12,1,8,1,10,1,4,255,10,2,6,1,12,
+ 1,12,1,8,1,4,1,122,20,70,105,108,101,70,105,110,
+ 100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,0,
+ 0,0,67,0,0,0,115,188,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,28,4,0,116,4,116,5,116,
+ 6,102,3,121,56,1,0,1,0,1,0,103,0,125,2,89,
+ 0,110,2,48,0,116,7,106,8,160,9,100,1,161,1,115,
+ 82,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,134,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,
+ 92,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,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,
+ 20,0,0,0,114,96,0,0,0,114,87,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,10,0,0,0,41,1,114,130,0,0,0,41,2,114,8,
+ 0,0,0,90,2,102,110,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,19,0,0,0,49,6,0,0,114,
+ 13,0,0,0,122,41,70,105,108,101,70,105,110,100,101,114,
+ 46,95,102,105,108,108,95,99,97,99,104,101,46,60,108,111,
+ 99,97,108,115,62,46,60,115,101,116,99,111,109,112,62,78,
+ 41,18,114,65,0,0,0,114,24,0,0,0,114,30,1,0,
+ 0,114,81,0,0,0,114,26,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,21,0,0,0,114,28,0,0,0,114,29,0,0,0,114,
+ 88,1,0,0,114,89,1,0,0,114,125,0,0,0,114,88,
+ 0,0,0,114,130,0,0,0,218,3,97,100,100,114,30,0,
+ 0,0,114,90,1,0,0,41,9,114,142,0,0,0,114,65,
+ 0,0,0,114,31,1,0,0,90,21,108,111,119,101,114,95,
+ 115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,
+ 64,1,0,0,114,140,0,0,0,114,52,1,0,0,114,41,
+ 1,0,0,90,8,110,101,119,95,110,97,109,101,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,92,1,0,
+ 0,20,6,0,0,115,34,0,0,0,0,2,6,1,2,1,
+ 22,1,18,3,10,3,12,1,12,7,6,1,8,1,16,1,
+ 4,1,18,2,4,1,12,1,6,1,12,1,122,22,70,105,
+ 108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
+ 97,99,104,101,99,1,0,0,0,0,0,0,0,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,3,97,20,1,0,0,65,32,99,108,97,
+ 115,115,32,109,101,116,104,111,100,32,119,104,105,99,104,32,
+ 114,101,116,117,114,110,115,32,97,32,99,108,111,115,117,114,
+ 101,32,116,111,32,117,115,101,32,111,110,32,115,121,115,46,
+ 112,97,116,104,95,104,111,111,107,10,32,32,32,32,32,32,
+ 32,32,119,104,105,99,104,32,119,105,108,108,32,114,101,116,
+ 117,114,110,32,97,110,32,105,110,115,116,97,110,99,101,32,
+ 117,115,105,110,103,32,116,104,101,32,115,112,101,99,105,102,
+ 105,101,100,32,108,111,97,100,101,114,115,32,97,110,100,32,
+ 116,104,101,32,112,97,116,104,10,32,32,32,32,32,32,32,
+ 32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,
+ 108,111,115,117,114,101,46,10,10,32,32,32,32,32,32,32,
+ 32,73,102,32,116,104,101,32,112,97,116,104,32,99,97,108,
+ 108,101,100,32,111,110,32,116,104,101,32,99,108,111,115,117,
+ 114,101,32,105,115,32,110,111,116,32,97,32,100,105,114,101,
+ 99,116,111,114,121,44,32,73,109,112,111,114,116,69,114,114,
+ 111,114,32,105,115,10,32,32,32,32,32,32,32,32,114,97,
+ 105,115,101,100,46,10,10,32,32,32,32,32,32,32,32,99,
+ 1,0,0,0,0,0,0,0,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,3,122,45,80,97,116,104,32,104,111,111,107,32,102,
+ 111,114,32,105,109,112,111,114,116,108,105,98,46,109,97,99,
+ 104,105,110,101,114,121,46,70,105,108,101,70,105,110,100,101,
+ 114,46,122,30,111,110,108,121,32,100,105,114,101,99,116,111,
+ 114,105,101,115,32,97,114,101,32,115,117,112,112,111,114,116,
+ 101,100,114,71,0,0,0,41,2,114,82,0,0,0,114,141,
+ 0,0,0,114,71,0,0,0,169,2,114,216,0,0,0,114,
+ 91,1,0,0,114,10,0,0,0,114,11,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,61,6,0,0,115,6,0,0,
+ 0,0,2,8,1,12,1,122,54,70,105,108,101,70,105,110,
+ 100,101,114,46,112,97,116,104,95,104,111,111,107,46,60,108,
+ 111,99,97,108,115,62,46,112,97,116,104,95,104,111,111,107,
+ 95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,114,
+ 10,0,0,0,41,3,114,216,0,0,0,114,91,1,0,0,
+ 114,97,1,0,0,114,10,0,0,0,114,96,1,0,0,114,
+ 11,0,0,0,218,9,112,97,116,104,95,104,111,111,107,51,
+ 6,0,0,115,4,0,0,0,0,10,14,6,122,20,70,105,
+ 108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111,
+ 111,107,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
+ 0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,
+ 100,1,160,0,124,0,106,1,161,1,83,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,88,0,0,0,114,65,0,0,0,114,13,1,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,62,1,0,0,69,6,0,0,115,2,0,0,0,0,
+ 1,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95,
+ 114,101,112,114,95,95,41,1,78,41,15,114,149,0,0,0,
+ 114,148,0,0,0,114,150,0,0,0,114,151,0,0,0,114,
+ 232,0,0,0,114,69,1,0,0,114,167,0,0,0,114,229,
+ 0,0,0,114,161,0,0,0,114,81,1,0,0,114,226,0,
+ 0,0,114,92,1,0,0,114,230,0,0,0,114,98,1,0,
+ 0,114,62,1,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,84,1,0,0,177,
+ 5,0,0,115,22,0,0,0,8,2,4,7,8,16,8,4,
+ 4,2,8,12,8,5,10,51,8,31,2,1,10,17,114,84,
+ 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,36,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,110,18,4,0,116,5,121,
+ 138,1,0,1,0,1,0,89,0,110,2,48,0,100,0,83,
+ 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,85,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,164,0,0,
+ 0,114,39,1,0,0,114,32,1,0,0,114,213,0,0,0,
+ 218,9,69,120,99,101,112,116,105,111,110,41,6,90,2,110,
+ 115,114,140,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,164,0,0,0,
+ 114,210,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,14,95,102,105,120,95,117,112,95,109,111,
+ 100,117,108,101,75,6,0,0,115,34,0,0,0,0,2,10,
+ 1,10,1,4,1,4,1,8,1,8,1,12,2,10,1,4,
+ 1,14,1,2,1,8,1,8,1,8,1,12,1,12,2,114,
+ 103,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,1,122,95,82,101,116,117,
+ 114,110,115,32,97,32,108,105,115,116,32,111,102,32,102,105,
+ 108,101,45,98,97,115,101,100,32,109,111,100,117,108,101,32,
+ 108,111,97,100,101,114,115,46,10,10,32,32,32,32,69,97,
+ 99,104,32,105,116,101,109,32,105,115,32,97,32,116,117,112,
+ 108,101,32,40,108,111,97,100,101,114,44,32,115,117,102,102,
+ 105,120,101,115,41,46,10,32,32,32,32,41,7,114,19,1,
+ 0,0,114,187,0,0,0,218,18,101,120,116,101,110,115,105,
+ 111,110,95,115,117,102,102,105,120,101,115,114,32,1,0,0,
+ 114,126,0,0,0,114,39,1,0,0,114,112,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,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,208,
+ 0,0,0,98,6,0,0,115,8,0,0,0,0,5,12,1,
+ 8,1,8,1,114,208,0,0,0,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,10,0,0,0,9,0,0,0,67,0,
+ 0,0,115,132,1,0,0,124,0,97,0,116,0,106,1,97,
+ 1,116,0,106,2,97,2,116,1,106,3,116,4,25,0,125,
+ 1,100,1,100,2,103,1,102,2,100,3,100,4,100,2,103,
+ 2,102,2,102,2,125,2,124,2,68,0,93,108,92,2,125,
+ 3,125,4,116,5,100,5,100,6,132,0,124,4,68,0,131,
+ 1,131,1,115,82,74,0,130,1,124,4,100,7,25,0,125,
+ 5,124,3,116,1,106,3,118,0,114,116,116,1,106,3,124,
+ 3,25,0,125,6,1,0,113,170,113,52,122,20,116,0,160,
+ 6,124,3,161,1,125,6,87,0,1,0,113,170,87,0,113,
+ 52,4,0,116,7,121,158,1,0,1,0,1,0,89,0,113,
+ 52,89,0,113,52,48,0,113,52,116,7,100,8,131,1,130,
+ 1,116,8,124,1,100,9,124,6,131,3,1,0,116,8,124,
+ 1,100,10,124,5,131,3,1,0,116,8,124,1,100,11,100,
+ 12,160,9,124,4,161,1,131,3,1,0,116,8,124,1,100,
+ 13,100,14,100,15,132,0,124,4,68,0,131,1,131,3,1,
+ 0,103,0,100,16,162,1,125,7,124,3,100,3,107,2,144,
+ 1,114,6,124,7,160,10,100,17,161,1,1,0,124,7,68,
+ 0,93,52,125,8,124,8,116,1,106,3,118,1,144,1,114,
+ 38,116,0,160,6,124,8,161,1,125,9,110,10,116,1,106,
+ 3,124,8,25,0,125,9,116,8,124,1,124,8,124,9,131,
+ 3,1,0,144,1,113,10,116,8,124,1,100,18,116,11,131,
+ 0,131,3,1,0,116,12,160,13,116,2,160,14,161,0,161,
+ 1,1,0,124,3,100,3,107,2,144,1,114,128,116,15,160,
+ 10,100,19,161,1,1,0,100,20,116,12,118,0,144,1,114,
+ 128,100,21,116,16,95,17,100,22,83,0,41,23,122,205,83,
+ 101,116,117,112,32,116,104,101,32,112,97,116,104,45,98,97,
+ 115,101,100,32,105,109,112,111,114,116,101,114,115,32,102,111,
+ 114,32,105,109,112,111,114,116,108,105,98,32,98,121,32,105,
+ 109,112,111,114,116,105,110,103,32,110,101,101,100,101,100,10,
+ 32,32,32,32,98,117,105,108,116,45,105,110,32,109,111,100,
+ 117,108,101,115,32,97,110,100,32,105,110,106,101,99,116,105,
+ 110,103,32,116,104,101,109,32,105,110,116,111,32,116,104,101,
+ 32,103,108,111,98,97,108,32,110,97,109,101,115,112,97,99,
+ 101,46,10,10,32,32,32,32,79,116,104,101,114,32,99,111,
+ 109,112,111,110,101,110,116,115,32,97,114,101,32,101,120,116,
+ 114,97,99,116,101,100,32,102,114,111,109,32,116,104,101,32,
+ 99,111,114,101,32,98,111,111,116,115,116,114,97,112,32,109,
+ 111,100,117,108,101,46,10,10,32,32,32,32,218,5,112,111,
+ 115,105,120,114,2,0,0,0,218,2,110,116,114,1,0,0,
+ 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,3,0,0,0,115,0,0,0,115,26,0,0,0,124,
+ 0,93,18,125,1,116,0,124,1,131,1,100,0,107,2,86,
+ 0,1,0,113,2,100,1,83,0,114,3,0,0,0,114,5,
+ 0,0,0,114,7,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,12,0,0,0,127,6,0,0,
+ 114,13,0,0,0,122,25,95,115,101,116,117,112,46,60,108,
+ 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,
+ 114,0,0,0,0,122,30,105,109,112,111,114,116,108,105,98,
+ 32,114,101,113,117,105,114,101,115,32,112,111,115,105,120,32,
+ 111,114,32,110,116,114,24,0,0,0,114,59,0,0,0,114,
+ 50,0,0,0,114,14,0,0,0,218,20,95,112,97,116,104,
+ 115,101,112,115,95,119,105,116,104,95,99,111,108,111,110,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,22,0,0,0,104,0,124,
+ 0,93,14,125,1,100,0,124,1,155,0,157,2,146,2,113,
+ 4,83,0,114,15,0,0,0,114,10,0,0,0,114,17,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,19,0,0,0,144,6,0,0,114,13,0,0,0,122,
+ 25,95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,
+ 46,60,115,101,116,99,111,109,112,62,41,3,114,90,0,0,
+ 0,114,98,0,0,0,114,184,0,0,0,114,215,0,0,0,
+ 114,27,0,0,0,122,4,46,112,121,119,122,6,95,100,46,
+ 112,121,100,84,78,41,18,114,158,0,0,0,114,21,0,0,
+ 0,114,187,0,0,0,114,54,1,0,0,114,149,0,0,0,
+ 218,3,97,108,108,90,18,95,98,117,105,108,116,105,110,95,
+ 102,114,111,109,95,110,97,109,101,114,141,0,0,0,114,153,
+ 0,0,0,114,62,0,0,0,114,61,0,0,0,114,32,0,
+ 0,0,114,44,1,0,0,114,191,0,0,0,114,104,1,0,
+ 0,114,126,0,0,0,114,214,0,0,0,114,218,0,0,0,
+ 41,10,218,17,95,98,111,111,116,115,116,114,97,112,95,109,
+ 111,100,117,108,101,90,11,115,101,108,102,95,109,111,100,117,
+ 108,101,90,10,111,115,95,100,101,116,97,105,108,115,90,10,
+ 98,117,105,108,116,105,110,95,111,115,114,50,0,0,0,114,
+ 59,0,0,0,90,9,111,115,95,109,111,100,117,108,101,90,
+ 13,98,117,105,108,116,105,110,95,110,97,109,101,115,90,12,
+ 98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,117,
+ 105,108,116,105,110,95,109,111,100,117,108,101,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,6,95,115,101,
+ 116,117,112,109,6,0,0,115,70,0,0,0,0,8,4,1,
+ 6,1,6,2,10,3,22,1,12,2,22,1,8,1,10,1,
+ 10,1,6,2,2,1,10,1,10,1,12,1,12,2,8,2,
+ 12,1,12,1,18,1,22,3,8,1,10,1,10,1,8,1,
+ 12,1,12,2,10,1,16,3,14,1,14,1,10,1,10,1,
+ 10,1,114,110,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,110,1,0,0,114,208,0,0,
+ 0,114,21,0,0,0,114,74,1,0,0,114,191,0,0,0,
+ 114,84,1,0,0,114,98,1,0,0,218,9,109,101,116,97,
+ 95,112,97,116,104,114,61,0,0,0,114,68,1,0,0,41,
+ 2,114,109,1,0,0,90,17,115,117,112,112,111,114,116,101,
+ 100,95,108,111,97,100,101,114,115,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,8,95,105,110,115,116,97,
+ 108,108,166,6,0,0,115,8,0,0,0,0,2,8,1,6,
+ 1,20,1,114,112,1,0,0,41,1,114,86,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,81,114,151,
+ 0,0,0,114,187,0,0,0,114,90,0,0,0,114,21,0,
+ 0,0,114,98,0,0,0,114,184,0,0,0,114,28,0,0,
+ 0,90,11,95,77,83,95,87,73,78,68,79,87,83,114,106,
+ 1,0,0,114,24,0,0,0,114,215,0,0,0,114,105,1,
+ 0,0,114,50,0,0,0,114,108,1,0,0,114,59,0,0,
+ 0,114,135,0,0,0,114,57,0,0,0,114,62,0,0,0,
+ 114,107,1,0,0,114,31,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,30,0,0,0,114,32,0,0,0,114,39,0,0,0,
+ 114,44,0,0,0,114,46,0,0,0,114,67,0,0,0,114,
+ 74,0,0,0,114,75,0,0,0,114,79,0,0,0,114,80,
+ 0,0,0,114,82,0,0,0,114,85,0,0,0,114,94,0,
+ 0,0,218,4,116,121,112,101,218,8,95,95,99,111,100,101,
+ 95,95,114,186,0,0,0,114,37,0,0,0,114,172,0,0,
+ 0,114,36,0,0,0,114,41,0,0,0,114,3,1,0,0,
+ 114,115,0,0,0,114,111,0,0,0,114,126,0,0,0,114,
+ 112,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,120,0,0,0,114,
+ 127,0,0,0,114,134,0,0,0,114,136,0,0,0,114,138,
+ 0,0,0,114,160,0,0,0,114,167,0,0,0,114,176,0,
+ 0,0,114,180,0,0,0,114,182,0,0,0,114,189,0,0,
+ 0,114,194,0,0,0,114,195,0,0,0,114,200,0,0,0,
+ 218,6,111,98,106,101,99,116,114,209,0,0,0,114,213,0,
+ 0,0,114,214,0,0,0,114,231,0,0,0,114,244,0,0,
+ 0,114,6,1,0,0,114,32,1,0,0,114,39,1,0,0,
+ 114,44,1,0,0,114,19,1,0,0,114,45,1,0,0,114,
+ 66,1,0,0,114,68,1,0,0,114,84,1,0,0,114,103,
+ 1,0,0,114,208,0,0,0,114,110,1,0,0,114,112,1,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,218,8,60,109,111,100,117,108,101,62,
+ 1,0,0,0,115,170,0,0,0,4,22,8,1,8,1,8,
+ 1,8,1,8,3,10,1,4,1,8,1,10,2,8,3,4,
+ 1,10,2,6,2,22,1,8,1,8,1,10,1,14,4,4,
+ 1,4,1,2,1,2,255,4,4,8,17,8,5,8,5,8,
+ 6,4,1,10,30,8,6,8,8,8,10,8,9,8,5,8,
+ 7,6,1,10,8,8,5,10,22,10,127,0,20,16,1,12,
+ 2,4,1,4,2,6,2,6,2,8,2,16,71,8,40,8,
+ 19,8,12,8,12,8,28,8,17,8,33,8,28,8,24,10,
+ 13,10,10,10,11,8,14,6,3,4,1,2,255,12,68,14,
+ 64,14,29,16,127,0,17,14,72,18,45,18,26,4,3,18,
+ 58,14,63,14,42,14,127,0,20,14,127,0,27,10,23,8,
+ 11,8,57,
};
diff --git a/contrib/tools/python3/src/Python/importlib_zipimport.h b/contrib/tools/python3/src/Python/importlib_zipimport.h
index 1e5790f8a4..373b1366bd 100644
--- a/contrib/tools/python3/src/Python/importlib_zipimport.h
+++ b/contrib/tools/python3/src/Python/importlib_zipimport.h
@@ -1,1079 +1,1079 @@
-/* Auto-generated by Programs/_freeze_importlib.c */
-const unsigned char _Py_M__zipimport[] = {
- 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,82,1,0,0,100,0,
- 90,0,100,1,100,2,108,1,90,2,100,1,100,3,108,1,
- 109,3,90,3,109,4,90,4,1,0,100,1,100,2,108,5,
- 90,6,100,1,100,2,108,7,90,7,100,1,100,2,108,8,
- 90,8,100,1,100,2,108,9,90,9,100,1,100,2,108,10,
- 90,10,100,1,100,2,108,11,90,11,100,4,100,5,103,2,
- 90,12,101,2,106,13,90,13,101,2,106,14,100,6,100,2,
- 133,2,25,0,90,15,71,0,100,7,100,4,132,0,100,4,
- 101,16,131,3,90,17,105,0,90,18,101,19,101,10,131,1,
- 90,20,100,8,90,21,100,9,90,22,100,10,90,23,71,0,
- 100,11,100,5,132,0,100,5,131,2,90,24,101,13,100,12,
- 23,0,100,13,100,13,102,3,101,13,100,14,23,0,100,15,
- 100,13,102,3,100,16,100,17,102,4,90,25,100,18,100,19,
- 132,0,90,26,100,20,100,21,132,0,90,27,100,22,100,23,
- 132,0,90,28,100,24,100,25,132,0,90,29,100,26,90,30,
- 100,15,97,31,100,27,100,28,132,0,90,32,100,29,100,30,
- 132,0,90,33,100,31,100,32,132,0,90,34,100,33,100,34,
- 132,0,90,35,101,19,101,35,106,36,131,1,90,37,100,35,
- 100,36,132,0,90,38,100,37,100,38,132,0,90,39,100,39,
- 100,40,132,0,90,40,100,41,100,42,132,0,90,41,100,43,
- 100,44,132,0,90,42,100,45,100,46,132,0,90,43,71,0,
- 100,47,100,48,132,0,100,48,131,2,90,44,100,2,83,0,
- 41,49,97,80,2,0,0,122,105,112,105,109,112,111,114,116,
- 32,112,114,111,118,105,100,101,115,32,115,117,112,112,111,114,
- 116,32,102,111,114,32,105,109,112,111,114,116,105,110,103,32,
- 80,121,116,104,111,110,32,109,111,100,117,108,101,115,32,102,
- 114,111,109,32,90,105,112,32,97,114,99,104,105,118,101,115,
- 46,10,10,84,104,105,115,32,109,111,100,117,108,101,32,101,
- 120,112,111,114,116,115,32,116,104,114,101,101,32,111,98,106,
- 101,99,116,115,58,10,45,32,122,105,112,105,109,112,111,114,
- 116,101,114,58,32,97,32,99,108,97,115,115,59,32,105,116,
- 115,32,99,111,110,115,116,114,117,99,116,111,114,32,116,97,
- 107,101,115,32,97,32,112,97,116,104,32,116,111,32,97,32,
- 90,105,112,32,97,114,99,104,105,118,101,46,10,45,32,90,
- 105,112,73,109,112,111,114,116,69,114,114,111,114,58,32,101,
- 120,99,101,112,116,105,111,110,32,114,97,105,115,101,100,32,
- 98,121,32,122,105,112,105,109,112,111,114,116,101,114,32,111,
- 98,106,101,99,116,115,46,32,73,116,39,115,32,97,10,32,
- 32,115,117,98,99,108,97,115,115,32,111,102,32,73,109,112,
- 111,114,116,69,114,114,111,114,44,32,115,111,32,105,116,32,
- 99,97,110,32,98,101,32,99,97,117,103,104,116,32,97,115,
- 32,73,109,112,111,114,116,69,114,114,111,114,44,32,116,111,
- 111,46,10,45,32,95,122,105,112,95,100,105,114,101,99,116,
- 111,114,121,95,99,97,99,104,101,58,32,97,32,100,105,99,
- 116,44,32,109,97,112,112,105,110,103,32,97,114,99,104,105,
- 118,101,32,112,97,116,104,115,32,116,111,32,122,105,112,32,
- 100,105,114,101,99,116,111,114,121,10,32,32,105,110,102,111,
- 32,100,105,99,116,115,44,32,97,115,32,117,115,101,100,32,
- 105,110,32,122,105,112,105,109,112,111,114,116,101,114,46,95,
- 102,105,108,101,115,46,10,10,73,116,32,105,115,32,117,115,
- 117,97,108,108,121,32,110,111,116,32,110,101,101,100,101,100,
- 32,116,111,32,117,115,101,32,116,104,101,32,122,105,112,105,
- 109,112,111,114,116,32,109,111,100,117,108,101,32,101,120,112,
- 108,105,99,105,116,108,121,59,32,105,116,32,105,115,10,117,
- 115,101,100,32,98,121,32,116,104,101,32,98,117,105,108,116,
- 105,110,32,105,109,112,111,114,116,32,109,101,99,104,97,110,
- 105,115,109,32,102,111,114,32,115,121,115,46,112,97,116,104,
- 32,105,116,101,109,115,32,116,104,97,116,32,97,114,101,32,
- 112,97,116,104,115,10,116,111,32,90,105,112,32,97,114,99,
- 104,105,118,101,115,46,10,233,0,0,0,0,78,41,2,218,
- 14,95,117,110,112,97,99,107,95,117,105,110,116,49,54,218,
- 14,95,117,110,112,97,99,107,95,117,105,110,116,51,50,218,
- 14,90,105,112,73,109,112,111,114,116,69,114,114,111,114,218,
- 11,122,105,112,105,109,112,111,114,116,101,114,233,1,0,0,
- 0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,64,0,0,0,115,12,0,0,0,101,
- 0,90,1,100,0,90,2,100,1,83,0,41,2,114,3,0,
- 0,0,78,41,3,218,8,95,95,110,97,109,101,95,95,218,
- 10,95,95,109,111,100,117,108,101,95,95,218,12,95,95,113,
- 117,97,108,110,97,109,101,95,95,169,0,114,9,0,0,0,
- 114,9,0,0,0,250,18,60,102,114,111,122,101,110,32,122,
- 105,112,105,109,112,111,114,116,62,114,3,0,0,0,33,0,
- 0,0,115,2,0,0,0,8,1,233,22,0,0,0,115,4,
- 0,0,0,80,75,5,6,105,255,255,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,108,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,25,
- 100,5,100,6,132,1,90,5,100,26,100,7,100,8,132,1,
- 90,6,100,9,100,10,132,0,90,7,100,11,100,12,132,0,
- 90,8,100,13,100,14,132,0,90,9,100,15,100,16,132,0,
- 90,10,100,17,100,18,132,0,90,11,100,19,100,20,132,0,
- 90,12,100,21,100,22,132,0,90,13,100,23,100,24,132,0,
- 90,14,100,4,83,0,41,27,114,4,0,0,0,97,255,1,
- 0,0,122,105,112,105,109,112,111,114,116,101,114,40,97,114,
- 99,104,105,118,101,112,97,116,104,41,32,45,62,32,122,105,
- 112,105,109,112,111,114,116,101,114,32,111,98,106,101,99,116,
- 10,10,32,32,32,32,67,114,101,97,116,101,32,97,32,110,
- 101,119,32,122,105,112,105,109,112,111,114,116,101,114,32,105,
- 110,115,116,97,110,99,101,46,32,39,97,114,99,104,105,118,
- 101,112,97,116,104,39,32,109,117,115,116,32,98,101,32,97,
- 32,112,97,116,104,32,116,111,10,32,32,32,32,97,32,122,
- 105,112,102,105,108,101,44,32,111,114,32,116,111,32,97,32,
- 115,112,101,99,105,102,105,99,32,112,97,116,104,32,105,110,
- 115,105,100,101,32,97,32,122,105,112,102,105,108,101,46,32,
- 70,111,114,32,101,120,97,109,112,108,101,44,32,105,116,32,
- 99,97,110,32,98,101,10,32,32,32,32,39,47,116,109,112,
- 47,109,121,105,109,112,111,114,116,46,122,105,112,39,44,32,
- 111,114,32,39,47,116,109,112,47,109,121,105,109,112,111,114,
- 116,46,122,105,112,47,109,121,100,105,114,101,99,116,111,114,
- 121,39,44,32,105,102,32,109,121,100,105,114,101,99,116,111,
- 114,121,32,105,115,32,97,10,32,32,32,32,118,97,108,105,
- 100,32,100,105,114,101,99,116,111,114,121,32,105,110,115,105,
- 100,101,32,116,104,101,32,97,114,99,104,105,118,101,46,10,
- 10,32,32,32,32,39,90,105,112,73,109,112,111,114,116,69,
- 114,114,111,114,32,105,115,32,114,97,105,115,101,100,32,105,
- 102,32,39,97,114,99,104,105,118,101,112,97,116,104,39,32,
- 100,111,101,115,110,39,116,32,112,111,105,110,116,32,116,111,
- 32,97,32,118,97,108,105,100,32,90,105,112,10,32,32,32,
- 32,97,114,99,104,105,118,101,46,10,10,32,32,32,32,84,
- 104,101,32,39,97,114,99,104,105,118,101,39,32,97,116,116,
- 114,105,98,117,116,101,32,111,102,32,122,105,112,105,109,112,
- 111,114,116,101,114,32,111,98,106,101,99,116,115,32,99,111,
- 110,116,97,105,110,115,32,116,104,101,32,110,97,109,101,32,
- 111,102,32,116,104,101,10,32,32,32,32,122,105,112,102,105,
- 108,101,32,116,97,114,103,101,116,101,100,46,10,32,32,32,
- 32,99,2,0,0,0,0,0,0,0,0,0,0,0,8,0,
- 0,0,9,0,0,0,67,0,0,0,115,32,1,0,0,116,
- 0,124,1,116,1,131,2,115,28,100,1,100,0,108,2,125,
- 2,124,2,160,3,124,1,161,1,125,1,124,1,115,44,116,
- 4,100,2,124,1,100,3,141,2,130,1,116,5,114,60,124,
- 1,160,6,116,5,116,7,161,2,125,1,103,0,125,3,122,
- 14,116,8,160,9,124,1,161,1,125,4,87,0,110,70,4,
- 0,116,10,116,11,102,2,121,148,1,0,1,0,1,0,116,
- 8,160,12,124,1,161,1,92,2,125,5,125,6,124,5,124,
- 1,107,2,114,130,116,4,100,4,124,1,100,3,141,2,130,
- 1,124,5,125,1,124,3,160,13,124,6,161,1,1,0,89,
- 0,113,64,48,0,124,4,106,14,100,5,64,0,100,6,107,
- 3,114,180,116,4,100,4,124,1,100,3,141,2,130,1,113,
- 180,113,64,122,12,116,15,124,1,25,0,125,7,87,0,110,
- 34,4,0,116,16,121,226,1,0,1,0,1,0,116,17,124,
- 1,131,1,125,7,124,7,116,15,124,1,60,0,89,0,110,
- 2,48,0,124,7,124,0,95,18,124,1,124,0,95,19,116,
- 8,106,20,124,3,100,0,100,0,100,7,133,3,25,0,142,
- 0,124,0,95,21,124,0,106,21,144,1,114,28,124,0,4,
- 0,106,21,116,7,55,0,2,0,95,21,100,0,83,0,41,
- 8,78,114,0,0,0,0,122,21,97,114,99,104,105,118,101,
- 32,112,97,116,104,32,105,115,32,101,109,112,116,121,169,1,
- 218,4,112,97,116,104,122,14,110,111,116,32,97,32,90,105,
- 112,32,102,105,108,101,105,0,240,0,0,105,0,128,0,0,
- 233,255,255,255,255,41,22,218,10,105,115,105,110,115,116,97,
- 110,99,101,218,3,115,116,114,218,2,111,115,90,8,102,115,
- 100,101,99,111,100,101,114,3,0,0,0,218,12,97,108,116,
- 95,112,97,116,104,95,115,101,112,218,7,114,101,112,108,97,
- 99,101,218,8,112,97,116,104,95,115,101,112,218,19,95,98,
- 111,111,116,115,116,114,97,112,95,101,120,116,101,114,110,97,
- 108,90,10,95,112,97,116,104,95,115,116,97,116,218,7,79,
- 83,69,114,114,111,114,218,10,86,97,108,117,101,69,114,114,
- 111,114,90,11,95,112,97,116,104,95,115,112,108,105,116,218,
- 6,97,112,112,101,110,100,90,7,115,116,95,109,111,100,101,
- 218,20,95,122,105,112,95,100,105,114,101,99,116,111,114,121,
- 95,99,97,99,104,101,218,8,75,101,121,69,114,114,111,114,
- 218,15,95,114,101,97,100,95,100,105,114,101,99,116,111,114,
- 121,218,6,95,102,105,108,101,115,218,7,97,114,99,104,105,
- 118,101,218,10,95,112,97,116,104,95,106,111,105,110,218,6,
- 112,114,101,102,105,120,41,8,218,4,115,101,108,102,114,13,
- 0,0,0,114,17,0,0,0,114,31,0,0,0,90,2,115,
- 116,90,7,100,105,114,110,97,109,101,90,8,98,97,115,101,
- 110,97,109,101,218,5,102,105,108,101,115,114,9,0,0,0,
- 114,9,0,0,0,114,10,0,0,0,218,8,95,95,105,110,
- 105,116,95,95,63,0,0,0,115,58,0,0,0,0,1,10,
- 1,8,1,10,1,4,1,12,1,4,1,12,2,4,2,2,
- 1,14,1,16,3,14,1,8,1,12,1,4,1,16,3,14,
- 2,12,1,4,2,2,1,12,1,12,1,8,1,14,1,6,
- 1,6,2,22,1,8,1,122,20,122,105,112,105,109,112,111,
- 114,116,101,114,46,95,95,105,110,105,116,95,95,78,99,3,
- 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,
- 0,0,0,67,0,0,0,115,78,0,0,0,116,0,124,0,
- 124,1,131,2,125,3,124,3,100,1,117,1,114,26,124,0,
- 103,0,102,2,83,0,116,1,124,0,124,1,131,2,125,4,
- 116,2,124,0,124,4,131,2,114,70,100,1,124,0,106,3,
- 155,0,116,4,155,0,124,4,155,0,157,3,103,1,102,2,
- 83,0,100,1,103,0,102,2,83,0,41,2,97,239,1,0,
- 0,102,105,110,100,95,108,111,97,100,101,114,40,102,117,108,
- 108,110,97,109,101,44,32,112,97,116,104,61,78,111,110,101,
- 41,32,45,62,32,115,101,108,102,44,32,115,116,114,32,111,
- 114,32,78,111,110,101,46,10,10,32,32,32,32,32,32,32,
- 32,83,101,97,114,99,104,32,102,111,114,32,97,32,109,111,
- 100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,98,
- 121,32,39,102,117,108,108,110,97,109,101,39,46,32,39,102,
- 117,108,108,110,97,109,101,39,32,109,117,115,116,32,98,101,
- 32,116,104,101,10,32,32,32,32,32,32,32,32,102,117,108,
- 108,121,32,113,117,97,108,105,102,105,101,100,32,40,100,111,
- 116,116,101,100,41,32,109,111,100,117,108,101,32,110,97,109,
- 101,46,32,73,116,32,114,101,116,117,114,110,115,32,116,104,
- 101,32,122,105,112,105,109,112,111,114,116,101,114,10,32,32,
- 32,32,32,32,32,32,105,110,115,116,97,110,99,101,32,105,
- 116,115,101,108,102,32,105,102,32,116,104,101,32,109,111,100,
- 117,108,101,32,119,97,115,32,102,111,117,110,100,44,32,97,
- 32,115,116,114,105,110,103,32,99,111,110,116,97,105,110,105,
- 110,103,32,116,104,101,10,32,32,32,32,32,32,32,32,102,
- 117,108,108,32,112,97,116,104,32,110,97,109,101,32,105,102,
- 32,105,116,39,115,32,112,111,115,115,105,98,108,121,32,97,
- 32,112,111,114,116,105,111,110,32,111,102,32,97,32,110,97,
- 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,44,
- 10,32,32,32,32,32,32,32,32,111,114,32,78,111,110,101,
- 32,111,116,104,101,114,119,105,115,101,46,32,84,104,101,32,
- 111,112,116,105,111,110,97,108,32,39,112,97,116,104,39,32,
- 97,114,103,117,109,101,110,116,32,105,115,32,105,103,110,111,
- 114,101,100,32,45,45,32,105,116,39,115,10,32,32,32,32,
- 32,32,32,32,116,104,101,114,101,32,102,111,114,32,99,111,
- 109,112,97,116,105,98,105,108,105,116,121,32,119,105,116,104,
- 32,116,104,101,32,105,109,112,111,114,116,101,114,32,112,114,
- 111,116,111,99,111,108,46,10,32,32,32,32,32,32,32,32,
- 78,41,5,218,16,95,103,101,116,95,109,111,100,117,108,101,
- 95,105,110,102,111,218,16,95,103,101,116,95,109,111,100,117,
- 108,101,95,112,97,116,104,218,7,95,105,115,95,100,105,114,
- 114,29,0,0,0,114,20,0,0,0,41,5,114,32,0,0,
- 0,218,8,102,117,108,108,110,97,109,101,114,13,0,0,0,
- 218,2,109,105,218,7,109,111,100,112,97,116,104,114,9,0,
- 0,0,114,9,0,0,0,114,10,0,0,0,218,11,102,105,
- 110,100,95,108,111,97,100,101,114,109,0,0,0,115,14,0,
- 0,0,0,10,10,1,8,2,8,7,10,1,10,4,24,2,
- 122,23,122,105,112,105,109,112,111,114,116,101,114,46,102,105,
- 110,100,95,108,111,97,100,101,114,99,3,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
- 0,0,115,16,0,0,0,124,0,160,0,124,1,124,2,161,
- 2,100,1,25,0,83,0,41,2,97,139,1,0,0,102,105,
- 110,100,95,109,111,100,117,108,101,40,102,117,108,108,110,97,
- 109,101,44,32,112,97,116,104,61,78,111,110,101,41,32,45,
- 62,32,115,101,108,102,32,111,114,32,78,111,110,101,46,10,
- 10,32,32,32,32,32,32,32,32,83,101,97,114,99,104,32,
- 102,111,114,32,97,32,109,111,100,117,108,101,32,115,112,101,
- 99,105,102,105,101,100,32,98,121,32,39,102,117,108,108,110,
- 97,109,101,39,46,32,39,102,117,108,108,110,97,109,101,39,
- 32,109,117,115,116,32,98,101,32,116,104,101,10,32,32,32,
- 32,32,32,32,32,102,117,108,108,121,32,113,117,97,108,105,
- 102,105,101,100,32,40,100,111,116,116,101,100,41,32,109,111,
- 100,117,108,101,32,110,97,109,101,46,32,73,116,32,114,101,
- 116,117,114,110,115,32,116,104,101,32,122,105,112,105,109,112,
- 111,114,116,101,114,10,32,32,32,32,32,32,32,32,105,110,
- 115,116,97,110,99,101,32,105,116,115,101,108,102,32,105,102,
- 32,116,104,101,32,109,111,100,117,108,101,32,119,97,115,32,
- 102,111,117,110,100,44,32,111,114,32,78,111,110,101,32,105,
- 102,32,105,116,32,119,97,115,110,39,116,46,10,32,32,32,
- 32,32,32,32,32,84,104,101,32,111,112,116,105,111,110,97,
- 108,32,39,112,97,116,104,39,32,97,114,103,117,109,101,110,
- 116,32,105,115,32,105,103,110,111,114,101,100,32,45,45,32,
- 105,116,39,115,32,116,104,101,114,101,32,102,111,114,32,99,
- 111,109,112,97,116,105,98,105,108,105,116,121,10,32,32,32,
- 32,32,32,32,32,119,105,116,104,32,116,104,101,32,105,109,
- 112,111,114,116,101,114,32,112,114,111,116,111,99,111,108,46,
- 10,32,32,32,32,32,32,32,32,114,0,0,0,0,41,1,
- 114,41,0,0,0,41,3,114,32,0,0,0,114,38,0,0,
- 0,114,13,0,0,0,114,9,0,0,0,114,9,0,0,0,
- 114,10,0,0,0,218,11,102,105,110,100,95,109,111,100,117,
- 108,101,141,0,0,0,115,2,0,0,0,0,9,122,23,122,
- 105,112,105,109,112,111,114,116,101,114,46,102,105,110,100,95,
- 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,115,
- 20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,2,
- 125,3,125,4,124,2,83,0,41,1,122,163,103,101,116,95,
- 99,111,100,101,40,102,117,108,108,110,97,109,101,41,32,45,
- 62,32,99,111,100,101,32,111,98,106,101,99,116,46,10,10,
- 32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,116,
- 104,101,32,99,111,100,101,32,111,98,106,101,99,116,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,32,82,97,105,115,101,32,90,
- 105,112,73,109,112,111,114,116,69,114,114,111,114,10,32,32,
- 32,32,32,32,32,32,105,102,32,116,104,101,32,109,111,100,
- 117,108,101,32,99,111,117,108,100,110,39,116,32,98,101,32,
- 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,169,
- 1,218,16,95,103,101,116,95,109,111,100,117,108,101,95,99,
- 111,100,101,169,5,114,32,0,0,0,114,38,0,0,0,218,
- 4,99,111,100,101,218,9,105,115,112,97,99,107,97,103,101,
- 114,40,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
- 10,0,0,0,218,8,103,101,116,95,99,111,100,101,153,0,
- 0,0,115,4,0,0,0,0,6,16,1,122,20,122,105,112,
- 105,109,112,111,114,116,101,114,46,103,101,116,95,99,111,100,
- 101,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,
- 0,0,8,0,0,0,67,0,0,0,115,116,0,0,0,116,
- 0,114,16,124,1,160,1,116,0,116,2,161,2,125,1,124,
- 1,125,2,124,1,160,3,124,0,106,4,116,2,23,0,161,
- 1,114,58,124,1,116,5,124,0,106,4,116,2,23,0,131,
- 1,100,1,133,2,25,0,125,2,122,14,124,0,106,6,124,
- 2,25,0,125,3,87,0,110,30,4,0,116,7,121,102,1,
- 0,1,0,1,0,116,8,100,2,100,3,124,2,131,3,130,
- 1,89,0,110,2,48,0,116,9,124,0,106,4,124,3,131,
- 2,83,0,41,4,122,154,103,101,116,95,100,97,116,97,40,
- 112,97,116,104,110,97,109,101,41,32,45,62,32,115,116,114,
- 105,110,103,32,119,105,116,104,32,102,105,108,101,32,100,97,
- 116,97,46,10,10,32,32,32,32,32,32,32,32,82,101,116,
- 117,114,110,32,116,104,101,32,100,97,116,97,32,97,115,115,
- 111,99,105,97,116,101,100,32,119,105,116,104,32,39,112,97,
- 116,104,110,97,109,101,39,46,32,82,97,105,115,101,32,79,
- 83,69,114,114,111,114,32,105,102,10,32,32,32,32,32,32,
- 32,32,116,104,101,32,102,105,108,101,32,119,97,115,110,39,
- 116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,
- 32,78,114,0,0,0,0,218,0,41,10,114,18,0,0,0,
- 114,19,0,0,0,114,20,0,0,0,218,10,115,116,97,114,
- 116,115,119,105,116,104,114,29,0,0,0,218,3,108,101,110,
- 114,28,0,0,0,114,26,0,0,0,114,22,0,0,0,218,
- 9,95,103,101,116,95,100,97,116,97,41,4,114,32,0,0,
- 0,218,8,112,97,116,104,110,97,109,101,90,3,107,101,121,
- 218,9,116,111,99,95,101,110,116,114,121,114,9,0,0,0,
- 114,9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,
- 100,97,116,97,163,0,0,0,115,20,0,0,0,0,6,4,
- 1,12,2,4,1,16,1,22,2,2,1,14,1,12,1,18,
- 1,122,20,122,105,112,105,109,112,111,114,116,101,114,46,103,
- 101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,
- 115,20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,
- 2,125,3,125,4,124,4,83,0,41,1,122,106,103,101,116,
- 95,102,105,108,101,110,97,109,101,40,102,117,108,108,110,97,
- 109,101,41,32,45,62,32,102,105,108,101,110,97,109,101,32,
- 115,116,114,105,110,103,46,10,10,32,32,32,32,32,32,32,
- 32,82,101,116,117,114,110,32,116,104,101,32,102,105,108,101,
- 110,97,109,101,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,32,
- 32,32,32,32,32,32,32,114,43,0,0,0,114,45,0,0,
- 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 218,12,103,101,116,95,102,105,108,101,110,97,109,101,184,0,
- 0,0,115,4,0,0,0,0,7,16,1,122,24,122,105,112,
- 105,109,112,111,114,116,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,6,0,0,0,8,0,0,0,67,0,0,0,115,126,
- 0,0,0,116,0,124,0,124,1,131,2,125,2,124,2,100,
- 1,117,0,114,36,116,1,100,2,124,1,155,2,157,2,124,
- 1,100,3,141,2,130,1,116,2,124,0,124,1,131,2,125,
- 3,124,2,114,64,116,3,160,4,124,3,100,4,161,2,125,
- 4,110,10,124,3,155,0,100,5,157,2,125,4,122,14,124,
- 0,106,5,124,4,25,0,125,5,87,0,110,20,4,0,116,
- 6,121,108,1,0,1,0,1,0,89,0,100,1,83,0,48,
- 0,116,7,124,0,106,8,124,5,131,2,160,9,161,0,83,
- 0,41,6,122,253,103,101,116,95,115,111,117,114,99,101,40,
- 102,117,108,108,110,97,109,101,41,32,45,62,32,115,111,117,
- 114,99,101,32,115,116,114,105,110,103,46,10,10,32,32,32,
- 32,32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,
- 115,111,117,114,99,101,32,99,111,100,101,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,32,82,97,105,115,101,32,90,105,112,73,
- 109,112,111,114,116,69,114,114,111,114,10,32,32,32,32,32,
- 32,32,32,105,102,32,116,104,101,32,109,111,100,117,108,101,
- 32,99,111,117,108,100,110,39,116,32,98,101,32,102,111,117,
- 110,100,44,32,114,101,116,117,114,110,32,78,111,110,101,32,
- 105,102,32,116,104,101,32,97,114,99,104,105,118,101,32,100,
- 111,101,115,10,32,32,32,32,32,32,32,32,99,111,110,116,
- 97,105,110,32,116,104,101,32,109,111,100,117,108,101,44,32,
- 98,117,116,32,104,97,115,32,110,111,32,115,111,117,114,99,
- 101,32,102,111,114,32,105,116,46,10,32,32,32,32,32,32,
- 32,32,78,250,18,99,97,110,39,116,32,102,105,110,100,32,
- 109,111,100,117,108,101,32,169,1,218,4,110,97,109,101,250,
- 11,95,95,105,110,105,116,95,95,46,112,121,250,3,46,112,
- 121,41,10,114,35,0,0,0,114,3,0,0,0,114,36,0,
- 0,0,114,21,0,0,0,114,30,0,0,0,114,28,0,0,
- 0,114,26,0,0,0,114,52,0,0,0,114,29,0,0,0,
- 218,6,100,101,99,111,100,101,41,6,114,32,0,0,0,114,
- 38,0,0,0,114,39,0,0,0,114,13,0,0,0,218,8,
- 102,117,108,108,112,97,116,104,114,54,0,0,0,114,9,0,
- 0,0,114,9,0,0,0,114,10,0,0,0,218,10,103,101,
- 116,95,115,111,117,114,99,101,195,0,0,0,115,24,0,0,
- 0,0,7,10,1,8,1,18,2,10,1,4,1,14,2,10,
- 2,2,1,14,1,12,2,8,1,122,22,122,105,112,105,109,
- 112,111,114,116,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,3,0,
- 0,0,4,0,0,0,67,0,0,0,115,40,0,0,0,116,
- 0,124,0,124,1,131,2,125,2,124,2,100,1,117,0,114,
- 36,116,1,100,2,124,1,155,2,157,2,124,1,100,3,141,
- 2,130,1,124,2,83,0,41,4,122,171,105,115,95,112,97,
- 99,107,97,103,101,40,102,117,108,108,110,97,109,101,41,32,
- 45,62,32,98,111,111,108,46,10,10,32,32,32,32,32,32,
- 32,32,82,101,116,117,114,110,32,84,114,117,101,32,105,102,
- 32,116,104,101,32,109,111,100,117,108,101,32,115,112,101,99,
- 105,102,105,101,100,32,98,121,32,102,117,108,108,110,97,109,
- 101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,10,
- 32,32,32,32,32,32,32,32,82,97,105,115,101,32,90,105,
- 112,73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,
- 116,104,101,32,109,111,100,117,108,101,32,99,111,117,108,100,
- 110,39,116,32,98,101,32,102,111,117,110,100,46,10,32,32,
- 32,32,32,32,32,32,78,114,57,0,0,0,114,58,0,0,
- 0,41,2,114,35,0,0,0,114,3,0,0,0,41,3,114,
- 32,0,0,0,114,38,0,0,0,114,39,0,0,0,114,9,
- 0,0,0,114,9,0,0,0,114,10,0,0,0,218,10,105,
- 115,95,112,97,99,107,97,103,101,221,0,0,0,115,8,0,
- 0,0,0,6,10,1,8,1,18,1,122,22,122,105,112,105,
- 109,112,111,114,116,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,8,
- 0,0,0,8,0,0,0,67,0,0,0,115,246,0,0,0,
- 116,0,124,0,124,1,131,2,92,3,125,2,125,3,125,4,
- 116,1,106,2,160,3,124,1,161,1,125,5,124,5,100,1,
- 117,0,115,46,116,4,124,5,116,5,131,2,115,64,116,5,
- 124,1,131,1,125,5,124,5,116,1,106,2,124,1,60,0,
- 124,0,124,5,95,6,122,84,124,3,114,108,116,7,124,0,
- 124,1,131,2,125,6,116,8,160,9,124,0,106,10,124,6,
- 161,2,125,7,124,7,103,1,124,5,95,11,116,12,124,5,
- 100,2,131,2,115,124,116,13,124,5,95,13,116,8,160,14,
- 124,5,106,15,124,1,124,4,161,3,1,0,116,16,124,2,
- 124,5,106,15,131,2,1,0,87,0,110,22,1,0,1,0,
- 1,0,116,1,106,2,124,1,61,0,130,0,89,0,110,2,
- 48,0,122,14,116,1,106,2,124,1,25,0,125,5,87,0,
- 110,34,4,0,116,17,121,226,1,0,1,0,1,0,116,18,
- 100,3,124,1,155,2,100,4,157,3,131,1,130,1,89,0,
- 110,2,48,0,116,19,160,20,100,5,124,1,124,4,161,3,
- 1,0,124,5,83,0,41,6,122,245,108,111,97,100,95,109,
- 111,100,117,108,101,40,102,117,108,108,110,97,109,101,41,32,
- 45,62,32,109,111,100,117,108,101,46,10,10,32,32,32,32,
- 32,32,32,32,76,111,97,100,32,116,104,101,32,109,111,100,
- 117,108,101,32,115,112,101,99,105,102,105,101,100,32,98,121,
- 32,39,102,117,108,108,110,97,109,101,39,46,32,39,102,117,
- 108,108,110,97,109,101,39,32,109,117,115,116,32,98,101,32,
- 116,104,101,10,32,32,32,32,32,32,32,32,102,117,108,108,
- 121,32,113,117,97,108,105,102,105,101,100,32,40,100,111,116,
- 116,101,100,41,32,109,111,100,117,108,101,32,110,97,109,101,
- 46,32,73,116,32,114,101,116,117,114,110,115,32,116,104,101,
- 32,105,109,112,111,114,116,101,100,10,32,32,32,32,32,32,
- 32,32,109,111,100,117,108,101,44,32,111,114,32,114,97,105,
- 115,101,115,32,90,105,112,73,109,112,111,114,116,69,114,114,
- 111,114,32,105,102,32,105,116,32,119,97,115,110,39,116,32,
- 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,78,
- 218,12,95,95,98,117,105,108,116,105,110,115,95,95,122,14,
- 76,111,97,100,101,100,32,109,111,100,117,108,101,32,122,25,
- 32,110,111,116,32,102,111,117,110,100,32,105,110,32,115,121,
- 115,46,109,111,100,117,108,101,115,122,30,105,109,112,111,114,
- 116,32,123,125,32,35,32,108,111,97,100,101,100,32,102,114,
- 111,109,32,90,105,112,32,123,125,41,21,114,44,0,0,0,
- 218,3,115,121,115,218,7,109,111,100,117,108,101,115,218,3,
- 103,101,116,114,15,0,0,0,218,12,95,109,111,100,117,108,
- 101,95,116,121,112,101,218,10,95,95,108,111,97,100,101,114,
- 95,95,114,36,0,0,0,114,21,0,0,0,114,30,0,0,
- 0,114,29,0,0,0,90,8,95,95,112,97,116,104,95,95,
- 218,7,104,97,115,97,116,116,114,114,66,0,0,0,90,14,
- 95,102,105,120,95,117,112,95,109,111,100,117,108,101,218,8,
- 95,95,100,105,99,116,95,95,218,4,101,120,101,99,114,26,
- 0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114,
- 218,10,95,98,111,111,116,115,116,114,97,112,218,16,95,118,
- 101,114,98,111,115,101,95,109,101,115,115,97,103,101,41,8,
- 114,32,0,0,0,114,38,0,0,0,114,46,0,0,0,114,
- 47,0,0,0,114,40,0,0,0,90,3,109,111,100,114,13,
- 0,0,0,114,63,0,0,0,114,9,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,218,11,108,111,97,100,95,109,111,
- 100,117,108,101,234,0,0,0,115,48,0,0,0,0,7,16,
- 1,12,1,18,1,8,1,10,1,6,2,2,1,4,3,10,
- 1,14,1,8,2,10,1,6,1,16,1,16,1,6,1,8,
- 1,8,2,2,1,14,1,12,1,22,1,14,1,122,23,122,
- 105,112,105,109,112,111,114,116,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,8,0,0,0,67,0,0,0,115,
- 86,0,0,0,122,20,124,0,160,0,124,1,161,1,115,18,
- 87,0,100,1,83,0,87,0,110,20,4,0,116,1,121,40,
- 1,0,1,0,1,0,89,0,100,1,83,0,48,0,116,2,
- 106,3,115,76,100,2,100,3,108,4,109,5,125,2,1,0,
- 124,2,160,6,116,2,161,1,1,0,100,4,116,2,95,3,
- 116,2,124,0,124,1,131,2,83,0,41,5,122,204,82,101,
- 116,117,114,110,32,116,104,101,32,82,101,115,111,117,114,99,
- 101,82,101,97,100,101,114,32,102,111,114,32,97,32,112,97,
- 99,107,97,103,101,32,105,110,32,97,32,122,105,112,32,102,
- 105,108,101,46,10,10,32,32,32,32,32,32,32,32,73,102,
- 32,39,102,117,108,108,110,97,109,101,39,32,105,115,32,97,
- 32,112,97,99,107,97,103,101,32,119,105,116,104,105,110,32,
- 116,104,101,32,122,105,112,32,102,105,108,101,44,32,114,101,
- 116,117,114,110,32,116,104,101,10,32,32,32,32,32,32,32,
- 32,39,82,101,115,111,117,114,99,101,82,101,97,100,101,114,
- 39,32,111,98,106,101,99,116,32,102,111,114,32,116,104,101,
- 32,112,97,99,107,97,103,101,46,32,32,79,116,104,101,114,
- 119,105,115,101,32,114,101,116,117,114,110,32,78,111,110,101,
- 46,10,32,32,32,32,32,32,32,32,78,114,0,0,0,0,
- 41,1,218,14,82,101,115,111,117,114,99,101,82,101,97,100,
- 101,114,84,41,7,114,65,0,0,0,114,3,0,0,0,218,
- 24,95,90,105,112,73,109,112,111,114,116,82,101,115,111,117,
- 114,99,101,82,101,97,100,101,114,218,11,95,114,101,103,105,
- 115,116,101,114,101,100,90,13,105,109,112,111,114,116,108,105,
- 98,46,97,98,99,114,79,0,0,0,90,8,114,101,103,105,
- 115,116,101,114,41,3,114,32,0,0,0,114,38,0,0,0,
- 114,79,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
- 10,0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,
- 99,101,95,114,101,97,100,101,114,16,1,0,0,115,20,0,
- 0,0,0,6,2,1,10,1,10,1,12,1,8,1,6,1,
- 12,1,10,1,6,1,122,31,122,105,112,105,109,112,111,114,
- 116,101,114,46,103,101,116,95,114,101,115,111,117,114,99,101,
- 95,114,101,97,100,101,114,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,5,0,0,0,67,0,0,0,
- 115,24,0,0,0,100,1,124,0,106,0,155,0,116,1,155,
- 0,124,0,106,2,155,0,100,2,157,5,83,0,41,3,78,
- 122,21,60,122,105,112,105,109,112,111,114,116,101,114,32,111,
- 98,106,101,99,116,32,34,122,2,34,62,41,3,114,29,0,
- 0,0,114,20,0,0,0,114,31,0,0,0,41,1,114,32,
- 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
- 0,0,218,8,95,95,114,101,112,114,95,95,34,1,0,0,
- 115,2,0,0,0,0,1,122,20,122,105,112,105,109,112,111,
- 114,116,101,114,46,95,95,114,101,112,114,95,95,41,1,78,
- 41,1,78,41,15,114,6,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,218,7,95,95,100,111,99,95,95,114,34,0,
- 0,0,114,41,0,0,0,114,42,0,0,0,114,48,0,0,
- 0,114,55,0,0,0,114,56,0,0,0,114,64,0,0,0,
- 114,65,0,0,0,114,78,0,0,0,114,82,0,0,0,114,
- 83,0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,
- 0,0,0,114,10,0,0,0,114,4,0,0,0,45,0,0,
- 0,115,24,0,0,0,8,1,4,17,8,46,10,32,10,12,
- 8,10,8,21,8,11,8,26,8,13,8,38,8,18,122,12,
- 95,95,105,110,105,116,95,95,46,112,121,99,84,114,60,0,
- 0,0,70,41,3,122,4,46,112,121,99,84,70,41,3,114,
- 61,0,0,0,70,70,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,
- 20,0,0,0,124,0,106,0,124,1,160,1,100,1,161,1,
- 100,2,25,0,23,0,83,0,41,3,78,218,1,46,233,2,
- 0,0,0,41,2,114,31,0,0,0,218,10,114,112,97,114,
- 116,105,116,105,111,110,41,2,114,32,0,0,0,114,38,0,
- 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
- 0,114,36,0,0,0,52,1,0,0,115,2,0,0,0,0,
- 1,114,36,0,0,0,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,
- 18,0,0,0,124,1,116,0,23,0,125,2,124,2,124,0,
- 106,1,118,0,83,0,169,1,78,41,2,114,20,0,0,0,
- 114,28,0,0,0,41,3,114,32,0,0,0,114,13,0,0,
- 0,90,7,100,105,114,112,97,116,104,114,9,0,0,0,114,
- 9,0,0,0,114,10,0,0,0,114,37,0,0,0,56,1,
- 0,0,115,4,0,0,0,0,4,8,2,114,37,0,0,0,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,7,0,0,
- 0,4,0,0,0,67,0,0,0,115,56,0,0,0,116,0,
- 124,0,124,1,131,2,125,2,116,1,68,0,93,36,92,3,
- 125,3,125,4,125,5,124,2,124,3,23,0,125,6,124,6,
- 124,0,106,2,118,0,114,14,124,5,2,0,1,0,83,0,
- 113,14,100,0,83,0,114,88,0,0,0,41,3,114,36,0,
- 0,0,218,16,95,122,105,112,95,115,101,97,114,99,104,111,
- 114,100,101,114,114,28,0,0,0,41,7,114,32,0,0,0,
- 114,38,0,0,0,114,13,0,0,0,218,6,115,117,102,102,
- 105,120,218,10,105,115,98,121,116,101,99,111,100,101,114,47,
- 0,0,0,114,63,0,0,0,114,9,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,114,35,0,0,0,65,1,0,0,
- 115,12,0,0,0,0,1,10,1,14,1,8,1,10,1,10,
- 1,114,35,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,26,0,0,0,9,0,0,0,67,0,0,0,115,
- 2,5,0,0,122,14,116,0,160,1,124,0,161,1,125,1,
- 87,0,110,36,4,0,116,2,121,50,1,0,1,0,1,0,
- 116,3,100,1,124,0,155,2,157,2,124,0,100,2,141,2,
- 130,1,89,0,110,2,48,0,124,1,144,4,143,164,1,0,
- 122,36,124,1,160,4,116,5,11,0,100,3,161,2,1,0,
- 124,1,160,6,161,0,125,2,124,1,160,7,116,5,161,1,
- 125,3,87,0,110,36,4,0,116,2,121,132,1,0,1,0,
- 1,0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
- 141,2,130,1,89,0,110,2,48,0,116,8,124,3,131,1,
- 116,5,107,3,114,164,116,3,100,4,124,0,155,2,157,2,
- 124,0,100,2,141,2,130,1,124,3,100,0,100,5,133,2,
- 25,0,116,9,107,3,144,1,114,170,122,24,124,1,160,4,
- 100,6,100,3,161,2,1,0,124,1,160,6,161,0,125,4,
- 87,0,110,36,4,0,116,2,121,242,1,0,1,0,1,0,
- 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
- 130,1,89,0,110,2,48,0,116,10,124,4,116,11,24,0,
- 116,5,24,0,100,6,131,2,125,5,122,22,124,1,160,4,
- 124,5,161,1,1,0,124,1,160,7,161,0,125,6,87,0,
- 110,38,4,0,116,2,144,1,121,66,1,0,1,0,1,0,
- 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
- 130,1,89,0,110,2,48,0,124,6,160,12,116,9,161,1,
- 125,7,124,7,100,6,107,0,144,1,114,106,116,3,100,7,
- 124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,6,
- 124,7,124,7,116,5,23,0,133,2,25,0,125,3,116,8,
- 124,3,131,1,116,5,107,3,144,1,114,154,116,3,100,8,
- 124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,4,
- 116,8,124,6,131,1,24,0,124,7,23,0,125,2,116,13,
- 124,3,100,9,100,10,133,2,25,0,131,1,125,8,116,13,
- 124,3,100,10,100,11,133,2,25,0,131,1,125,9,124,2,
- 124,8,107,0,144,1,114,230,116,3,100,12,124,0,155,2,
- 157,2,124,0,100,2,141,2,130,1,124,2,124,9,107,0,
- 144,2,114,2,116,3,100,13,124,0,155,2,157,2,124,0,
- 100,2,141,2,130,1,124,2,124,8,56,0,125,2,124,2,
- 124,9,24,0,125,10,124,10,100,6,107,0,144,2,114,46,
- 116,3,100,14,124,0,155,2,157,2,124,0,100,2,141,2,
- 130,1,105,0,125,11,100,6,125,12,122,14,124,1,160,4,
- 124,2,161,1,1,0,87,0,110,38,4,0,116,2,144,2,
- 121,106,1,0,1,0,1,0,116,3,100,4,124,0,155,2,
- 157,2,124,0,100,2,141,2,130,1,89,0,110,2,48,0,
- 124,1,160,7,100,15,161,1,125,3,116,8,124,3,131,1,
- 100,5,107,0,144,2,114,140,116,14,100,16,131,1,130,1,
- 124,3,100,0,100,5,133,2,25,0,100,17,107,3,144,2,
- 114,162,144,4,113,208,116,8,124,3,131,1,100,15,107,3,
- 144,2,114,184,116,14,100,16,131,1,130,1,116,15,124,3,
- 100,18,100,19,133,2,25,0,131,1,125,13,116,15,124,3,
- 100,19,100,9,133,2,25,0,131,1,125,14,116,15,124,3,
- 100,9,100,20,133,2,25,0,131,1,125,15,116,15,124,3,
- 100,20,100,10,133,2,25,0,131,1,125,16,116,13,124,3,
- 100,10,100,11,133,2,25,0,131,1,125,17,116,13,124,3,
- 100,11,100,21,133,2,25,0,131,1,125,18,116,13,124,3,
- 100,21,100,22,133,2,25,0,131,1,125,4,116,15,124,3,
- 100,22,100,23,133,2,25,0,131,1,125,19,116,15,124,3,
- 100,23,100,24,133,2,25,0,131,1,125,20,116,15,124,3,
- 100,24,100,25,133,2,25,0,131,1,125,21,116,13,124,3,
- 100,26,100,15,133,2,25,0,131,1,125,22,124,19,124,20,
- 23,0,124,21,23,0,125,8,124,22,124,9,107,4,144,3,
- 114,144,116,3,100,27,124,0,155,2,157,2,124,0,100,2,
- 141,2,130,1,124,22,124,10,55,0,125,22,122,14,124,1,
- 160,7,124,19,161,1,125,23,87,0,110,38,4,0,116,2,
- 144,3,121,204,1,0,1,0,1,0,116,3,100,4,124,0,
- 155,2,157,2,124,0,100,2,141,2,130,1,89,0,110,2,
- 48,0,116,8,124,23,131,1,124,19,107,3,144,3,114,238,
- 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
- 130,1,122,50,116,8,124,1,160,7,124,8,124,19,24,0,
- 161,1,131,1,124,8,124,19,24,0,107,3,144,4,114,30,
- 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
- 130,1,87,0,110,38,4,0,116,2,144,4,121,70,1,0,
- 1,0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,
- 100,2,141,2,130,1,89,0,110,2,48,0,124,13,100,28,
- 64,0,144,4,114,92,124,23,160,16,161,0,125,23,110,52,
- 122,14,124,23,160,16,100,29,161,1,125,23,87,0,110,36,
- 4,0,116,17,144,4,121,142,1,0,1,0,1,0,124,23,
- 160,16,100,30,161,1,160,18,116,19,161,1,125,23,89,0,
- 110,2,48,0,124,23,160,20,100,31,116,21,161,2,125,23,
- 116,22,160,23,124,0,124,23,161,2,125,24,124,24,124,14,
- 124,18,124,4,124,22,124,15,124,16,124,17,102,8,125,25,
- 124,25,124,11,124,23,60,0,124,12,100,32,55,0,125,12,
- 144,2,113,108,87,0,100,0,4,0,4,0,131,3,1,0,
- 110,18,49,0,144,4,115,230,48,0,1,0,1,0,1,0,
- 89,0,1,0,116,24,160,25,100,33,124,12,124,0,161,3,
- 1,0,124,11,83,0,41,34,78,122,21,99,97,110,39,116,
- 32,111,112,101,110,32,90,105,112,32,102,105,108,101,58,32,
- 114,12,0,0,0,114,86,0,0,0,250,21,99,97,110,39,
- 116,32,114,101,97,100,32,90,105,112,32,102,105,108,101,58,
- 32,233,4,0,0,0,114,0,0,0,0,122,16,110,111,116,
- 32,97,32,90,105,112,32,102,105,108,101,58,32,122,18,99,
- 111,114,114,117,112,116,32,90,105,112,32,102,105,108,101,58,
- 32,233,12,0,0,0,233,16,0,0,0,233,20,0,0,0,
- 122,28,98,97,100,32,99,101,110,116,114,97,108,32,100,105,
- 114,101,99,116,111,114,121,32,115,105,122,101,58,32,122,30,
- 98,97,100,32,99,101,110,116,114,97,108,32,100,105,114,101,
- 99,116,111,114,121,32,111,102,102,115,101,116,58,32,122,38,
- 98,97,100,32,99,101,110,116,114,97,108,32,100,105,114,101,
- 99,116,111,114,121,32,115,105,122,101,32,111,114,32,111,102,
- 102,115,101,116,58,32,233,46,0,0,0,250,27,69,79,70,
- 32,114,101,97,100,32,119,104,101,114,101,32,110,111,116,32,
- 101,120,112,101,99,116,101,100,115,4,0,0,0,80,75,1,
- 2,233,8,0,0,0,233,10,0,0,0,233,14,0,0,0,
- 233,24,0,0,0,233,28,0,0,0,233,30,0,0,0,233,
- 32,0,0,0,233,34,0,0,0,233,42,0,0,0,122,25,
- 98,97,100,32,108,111,99,97,108,32,104,101,97,100,101,114,
- 32,111,102,102,115,101,116,58,32,105,0,8,0,0,218,5,
- 97,115,99,105,105,90,6,108,97,116,105,110,49,250,1,47,
- 114,5,0,0,0,122,33,122,105,112,105,109,112,111,114,116,
- 58,32,102,111,117,110,100,32,123,125,32,110,97,109,101,115,
- 32,105,110,32,123,33,114,125,41,26,218,3,95,105,111,218,
- 9,111,112,101,110,95,99,111,100,101,114,22,0,0,0,114,
- 3,0,0,0,218,4,115,101,101,107,218,20,69,78,68,95,
- 67,69,78,84,82,65,76,95,68,73,82,95,83,73,90,69,
- 90,4,116,101,108,108,218,4,114,101,97,100,114,51,0,0,
- 0,218,18,83,84,82,73,78,71,95,69,78,68,95,65,82,
- 67,72,73,86,69,218,3,109,97,120,218,15,77,65,88,95,
- 67,79,77,77,69,78,84,95,76,69,78,218,5,114,102,105,
- 110,100,114,2,0,0,0,218,8,69,79,70,69,114,114,111,
- 114,114,1,0,0,0,114,62,0,0,0,218,18,85,110,105,
- 99,111,100,101,68,101,99,111,100,101,69,114,114,111,114,218,
- 9,116,114,97,110,115,108,97,116,101,218,11,99,112,52,51,
- 55,95,116,97,98,108,101,114,19,0,0,0,114,20,0,0,
- 0,114,21,0,0,0,114,30,0,0,0,114,76,0,0,0,
- 114,77,0,0,0,41,26,114,29,0,0,0,218,2,102,112,
- 90,15,104,101,97,100,101,114,95,112,111,115,105,116,105,111,
- 110,218,6,98,117,102,102,101,114,218,9,102,105,108,101,95,
- 115,105,122,101,90,17,109,97,120,95,99,111,109,109,101,110,
- 116,95,115,116,97,114,116,218,4,100,97,116,97,90,3,112,
- 111,115,218,11,104,101,97,100,101,114,95,115,105,122,101,90,
- 13,104,101,97,100,101,114,95,111,102,102,115,101,116,90,10,
- 97,114,99,95,111,102,102,115,101,116,114,33,0,0,0,218,
- 5,99,111,117,110,116,218,5,102,108,97,103,115,218,8,99,
- 111,109,112,114,101,115,115,218,4,116,105,109,101,218,4,100,
- 97,116,101,218,3,99,114,99,218,9,100,97,116,97,95,115,
- 105,122,101,218,9,110,97,109,101,95,115,105,122,101,218,10,
- 101,120,116,114,97,95,115,105,122,101,90,12,99,111,109,109,
- 101,110,116,95,115,105,122,101,218,11,102,105,108,101,95,111,
- 102,102,115,101,116,114,59,0,0,0,114,13,0,0,0,218,
- 1,116,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
- 0,114,27,0,0,0,96,1,0,0,115,212,0,0,0,0,
- 1,2,1,14,1,12,1,24,2,8,1,2,1,14,1,8,
- 1,14,1,12,1,24,1,12,1,18,1,18,3,2,1,12,
- 1,12,1,12,1,10,1,2,255,12,2,8,1,2,255,2,
- 1,2,255,4,2,2,1,10,1,12,1,14,1,10,1,2,
- 255,12,2,10,1,10,1,10,1,2,255,6,2,16,1,14,
- 1,10,1,2,255,6,2,16,2,16,1,16,1,10,1,18,
- 1,10,1,18,1,8,1,8,1,10,1,18,2,4,2,4,
- 1,2,1,14,1,14,1,24,2,10,1,14,1,8,2,18,
- 1,4,1,14,1,8,1,16,1,16,1,16,1,16,1,16,
- 1,16,1,16,1,16,1,16,1,16,1,16,1,12,1,10,
- 1,18,1,8,2,2,1,14,1,14,1,24,1,14,1,18,
- 4,2,1,28,1,22,1,14,1,24,2,10,2,10,3,2,
- 1,14,1,14,1,22,2,12,1,12,1,20,1,8,1,44,
- 1,14,1,114,27,0,0,0,117,190,1,0,0,0,1,2,
- 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,
- 19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,
- 35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
- 51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
- 67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,
- 83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,
- 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
- 115,116,117,118,119,120,121,122,123,124,125,126,127,195,135,195,
- 188,195,169,195,162,195,164,195,160,195,165,195,167,195,170,195,
- 171,195,168,195,175,195,174,195,172,195,132,195,133,195,137,195,
- 166,195,134,195,180,195,182,195,178,195,187,195,185,195,191,195,
- 150,195,156,194,162,194,163,194,165,226,130,167,198,146,195,161,
- 195,173,195,179,195,186,195,177,195,145,194,170,194,186,194,191,
- 226,140,144,194,172,194,189,194,188,194,161,194,171,194,187,226,
- 150,145,226,150,146,226,150,147,226,148,130,226,148,164,226,149,
- 161,226,149,162,226,149,150,226,149,149,226,149,163,226,149,145,
- 226,149,151,226,149,157,226,149,156,226,149,155,226,148,144,226,
- 148,148,226,148,180,226,148,172,226,148,156,226,148,128,226,148,
- 188,226,149,158,226,149,159,226,149,154,226,149,148,226,149,169,
- 226,149,166,226,149,160,226,149,144,226,149,172,226,149,167,226,
- 149,168,226,149,164,226,149,165,226,149,153,226,149,152,226,149,
- 146,226,149,147,226,149,171,226,149,170,226,148,152,226,148,140,
- 226,150,136,226,150,132,226,150,140,226,150,144,226,150,128,206,
- 177,195,159,206,147,207,128,206,163,207,131,194,181,207,132,206,
- 166,206,152,206,169,206,180,226,136,158,207,134,206,181,226,136,
- 169,226,137,161,194,177,226,137,165,226,137,164,226,140,160,226,
- 140,161,195,183,226,137,136,194,176,226,136,153,194,183,226,136,
- 154,226,129,191,194,178,226,150,160,194,160,99,0,0,0,0,
- 0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,
- 67,0,0,0,115,110,0,0,0,116,0,114,22,116,1,160,
- 2,100,1,161,1,1,0,116,3,100,2,131,1,130,1,100,
- 3,97,0,122,62,122,16,100,4,100,5,108,4,109,5,125,
- 0,1,0,87,0,110,36,4,0,116,6,121,80,1,0,1,
- 0,1,0,116,1,160,2,100,1,161,1,1,0,116,3,100,
- 2,131,1,130,1,89,0,110,2,48,0,87,0,100,6,97,
- 0,110,6,100,6,97,0,48,0,116,1,160,2,100,7,161,
- 1,1,0,124,0,83,0,41,8,78,122,27,122,105,112,105,
- 109,112,111,114,116,58,32,122,108,105,98,32,85,78,65,86,
- 65,73,76,65,66,76,69,250,41,99,97,110,39,116,32,100,
- 101,99,111,109,112,114,101,115,115,32,100,97,116,97,59,32,
- 122,108,105,98,32,110,111,116,32,97,118,97,105,108,97,98,
- 108,101,84,114,0,0,0,0,169,1,218,10,100,101,99,111,
- 109,112,114,101,115,115,70,122,25,122,105,112,105,109,112,111,
- 114,116,58,32,122,108,105,98,32,97,118,97,105,108,97,98,
- 108,101,41,7,218,15,95,105,109,112,111,114,116,105,110,103,
- 95,122,108,105,98,114,76,0,0,0,114,77,0,0,0,114,
- 3,0,0,0,90,4,122,108,105,98,114,141,0,0,0,218,
- 9,69,120,99,101,112,116,105,111,110,114,140,0,0,0,114,
- 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,20,
- 95,103,101,116,95,100,101,99,111,109,112,114,101,115,115,95,
- 102,117,110,99,254,1,0,0,115,24,0,0,0,0,2,4,
- 3,10,1,8,2,4,1,4,1,16,1,12,1,10,1,16,
- 2,12,2,10,1,114,144,0,0,0,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,17,0,0,0,9,0,0,0,67,
- 0,0,0,115,144,1,0,0,124,1,92,8,125,2,125,3,
- 125,4,125,5,125,6,125,7,125,8,125,9,124,4,100,1,
- 107,0,114,36,116,0,100,2,131,1,130,1,116,1,160,2,
- 124,0,161,1,144,1,143,14,125,10,122,14,124,10,160,3,
- 124,6,161,1,1,0,87,0,110,36,4,0,116,4,121,100,
- 1,0,1,0,1,0,116,0,100,3,124,0,155,2,157,2,
- 124,0,100,4,141,2,130,1,89,0,110,2,48,0,124,10,
- 160,5,100,5,161,1,125,11,116,6,124,11,131,1,100,5,
- 107,3,114,132,116,7,100,6,131,1,130,1,124,11,100,0,
- 100,7,133,2,25,0,100,8,107,3,114,166,116,0,100,9,
- 124,0,155,2,157,2,124,0,100,4,141,2,130,1,116,8,
- 124,11,100,10,100,11,133,2,25,0,131,1,125,12,116,8,
- 124,11,100,11,100,5,133,2,25,0,131,1,125,13,100,5,
- 124,12,23,0,124,13,23,0,125,14,124,6,124,14,55,0,
- 125,6,122,14,124,10,160,3,124,6,161,1,1,0,87,0,
- 110,38,4,0,116,4,144,1,121,14,1,0,1,0,1,0,
- 116,0,100,3,124,0,155,2,157,2,124,0,100,4,141,2,
- 130,1,89,0,110,2,48,0,124,10,160,5,124,4,161,1,
- 125,15,116,6,124,15,131,1,124,4,107,3,144,1,114,48,
- 116,4,100,12,131,1,130,1,87,0,100,0,4,0,4,0,
- 131,3,1,0,110,18,49,0,144,1,115,70,48,0,1,0,
- 1,0,1,0,89,0,1,0,124,3,100,1,107,2,144,1,
- 114,94,124,15,83,0,122,10,116,9,131,0,125,16,87,0,
- 110,28,4,0,116,10,144,1,121,132,1,0,1,0,1,0,
- 116,0,100,13,131,1,130,1,89,0,110,2,48,0,124,16,
- 124,15,100,14,131,2,83,0,41,15,78,114,0,0,0,0,
- 122,18,110,101,103,97,116,105,118,101,32,100,97,116,97,32,
- 115,105,122,101,114,92,0,0,0,114,12,0,0,0,114,104,
- 0,0,0,114,98,0,0,0,114,93,0,0,0,115,4,0,
- 0,0,80,75,3,4,122,23,98,97,100,32,108,111,99,97,
- 108,32,102,105,108,101,32,104,101,97,100,101,114,58,32,233,
- 26,0,0,0,114,103,0,0,0,122,26,122,105,112,105,109,
- 112,111,114,116,58,32,99,97,110,39,116,32,114,101,97,100,
- 32,100,97,116,97,114,139,0,0,0,105,241,255,255,255,41,
- 11,114,3,0,0,0,114,110,0,0,0,114,111,0,0,0,
- 114,112,0,0,0,114,22,0,0,0,114,114,0,0,0,114,
- 51,0,0,0,114,119,0,0,0,114,1,0,0,0,114,144,
- 0,0,0,114,143,0,0,0,41,17,114,29,0,0,0,114,
- 54,0,0,0,90,8,100,97,116,97,112,97,116,104,114,130,
- 0,0,0,114,134,0,0,0,114,125,0,0,0,114,137,0,
- 0,0,114,131,0,0,0,114,132,0,0,0,114,133,0,0,
- 0,114,123,0,0,0,114,124,0,0,0,114,135,0,0,0,
- 114,136,0,0,0,114,127,0,0,0,90,8,114,97,119,95,
- 100,97,116,97,114,141,0,0,0,114,9,0,0,0,114,9,
- 0,0,0,114,10,0,0,0,114,52,0,0,0,19,2,0,
- 0,115,62,0,0,0,0,1,20,1,8,1,8,2,14,2,
- 2,1,14,1,12,1,24,1,10,1,12,1,8,2,16,2,
- 18,2,16,1,16,1,12,1,8,1,2,1,14,1,14,1,
- 24,1,10,1,14,1,40,2,10,2,4,3,2,1,10,1,
- 14,1,14,1,114,52,0,0,0,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,116,0,124,0,124,1,24,0,131,
- 1,100,1,107,1,83,0,41,2,78,114,5,0,0,0,41,
- 1,218,3,97,98,115,41,2,90,2,116,49,90,2,116,50,
- 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,
- 9,95,101,113,95,109,116,105,109,101,65,2,0,0,115,2,
- 0,0,0,0,2,114,147,0,0,0,99,5,0,0,0,0,
- 0,0,0,0,0,0,0,14,0,0,0,8,0,0,0,67,
- 0,0,0,115,56,1,0,0,124,3,124,2,100,1,156,2,
- 125,5,122,18,116,0,160,1,124,4,124,3,124,5,161,3,
- 125,6,87,0,110,20,4,0,116,2,121,48,1,0,1,0,
- 1,0,89,0,100,0,83,0,48,0,124,6,100,2,64,0,
- 100,3,107,3,125,7,124,7,114,178,124,6,100,4,64,0,
- 100,3,107,3,125,8,116,3,106,4,100,5,107,3,114,176,
- 124,8,115,102,116,3,106,4,100,6,107,2,114,176,116,5,
- 124,0,124,2,131,2,125,9,124,9,100,0,117,1,114,176,
- 116,3,160,6,116,0,106,7,124,9,161,2,125,10,122,20,
- 116,0,160,8,124,4,124,10,124,3,124,5,161,4,1,0,
- 87,0,110,20,4,0,116,2,121,174,1,0,1,0,1,0,
- 89,0,100,0,83,0,48,0,110,84,116,9,124,0,124,2,
- 131,2,92,2,125,11,125,12,124,11,144,1,114,6,116,10,
- 116,11,124,4,100,7,100,8,133,2,25,0,131,1,124,11,
- 131,2,114,242,116,11,124,4,100,8,100,9,133,2,25,0,
- 131,1,124,12,107,3,144,1,114,6,116,12,160,13,100,10,
- 124,3,155,2,157,2,161,1,1,0,100,0,83,0,116,14,
- 160,15,124,4,100,9,100,0,133,2,25,0,161,1,125,13,
- 116,16,124,13,116,17,131,2,144,1,115,52,116,18,100,11,
- 124,1,155,2,100,12,157,3,131,1,130,1,124,13,83,0,
- 41,13,78,41,2,114,59,0,0,0,114,13,0,0,0,114,
- 5,0,0,0,114,0,0,0,0,114,86,0,0,0,90,5,
- 110,101,118,101,114,90,6,97,108,119,97,121,115,114,99,0,
- 0,0,114,94,0,0,0,114,95,0,0,0,122,22,98,121,
- 116,101,99,111,100,101,32,105,115,32,115,116,97,108,101,32,
- 102,111,114,32,122,16,99,111,109,112,105,108,101,100,32,109,
- 111,100,117,108,101,32,122,21,32,105,115,32,110,111,116,32,
- 97,32,99,111,100,101,32,111,98,106,101,99,116,41,19,114,
- 21,0,0,0,90,13,95,99,108,97,115,115,105,102,121,95,
- 112,121,99,114,75,0,0,0,218,4,95,105,109,112,90,21,
- 99,104,101,99,107,95,104,97,115,104,95,98,97,115,101,100,
- 95,112,121,99,115,218,15,95,103,101,116,95,112,121,99,95,
- 115,111,117,114,99,101,218,11,115,111,117,114,99,101,95,104,
- 97,115,104,90,17,95,82,65,87,95,77,65,71,73,67,95,
- 78,85,77,66,69,82,90,18,95,118,97,108,105,100,97,116,
- 101,95,104,97,115,104,95,112,121,99,218,29,95,103,101,116,
- 95,109,116,105,109,101,95,97,110,100,95,115,105,122,101,95,
- 111,102,95,115,111,117,114,99,101,114,147,0,0,0,114,2,
- 0,0,0,114,76,0,0,0,114,77,0,0,0,218,7,109,
- 97,114,115,104,97,108,90,5,108,111,97,100,115,114,15,0,
- 0,0,218,10,95,99,111,100,101,95,116,121,112,101,218,9,
- 84,121,112,101,69,114,114,111,114,41,14,114,32,0,0,0,
- 114,53,0,0,0,114,63,0,0,0,114,38,0,0,0,114,
- 126,0,0,0,90,11,101,120,99,95,100,101,116,97,105,108,
- 115,114,129,0,0,0,90,10,104,97,115,104,95,98,97,115,
- 101,100,90,12,99,104,101,99,107,95,115,111,117,114,99,101,
- 90,12,115,111,117,114,99,101,95,98,121,116,101,115,114,150,
- 0,0,0,90,12,115,111,117,114,99,101,95,109,116,105,109,
- 101,90,11,115,111,117,114,99,101,95,115,105,122,101,114,46,
- 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
- 0,0,218,15,95,117,110,109,97,114,115,104,97,108,95,99,
- 111,100,101,75,2,0,0,115,82,0,0,0,0,2,2,1,
- 2,254,6,5,2,1,18,1,12,1,8,2,12,1,4,1,
- 12,1,10,1,2,255,2,1,8,255,2,2,10,1,8,1,
- 4,1,4,1,2,254,4,5,2,1,4,1,8,255,8,2,
- 12,1,10,3,8,255,6,3,6,3,22,1,18,255,4,2,
- 4,1,8,255,4,2,4,2,18,1,12,1,16,1,114,155,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,4,0,0,0,67,0,0,0,115,28,0,0,
- 0,124,0,160,0,100,1,100,2,161,2,125,0,124,0,160,
- 0,100,3,100,2,161,2,125,0,124,0,83,0,41,4,78,
- 115,2,0,0,0,13,10,243,1,0,0,0,10,243,1,0,
- 0,0,13,41,1,114,19,0,0,0,41,1,218,6,115,111,
- 117,114,99,101,114,9,0,0,0,114,9,0,0,0,114,10,
- 0,0,0,218,23,95,110,111,114,109,97,108,105,122,101,95,
- 108,105,110,101,95,101,110,100,105,110,103,115,126,2,0,0,
- 115,6,0,0,0,0,1,12,1,12,1,114,159,0,0,0,
- 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,24,0,0,0,116,0,
- 124,1,131,1,125,1,116,1,124,1,124,0,100,1,100,2,
- 100,3,141,4,83,0,41,4,78,114,74,0,0,0,84,41,
- 1,90,12,100,111,110,116,95,105,110,104,101,114,105,116,41,
- 2,114,159,0,0,0,218,7,99,111,109,112,105,108,101,41,
- 2,114,53,0,0,0,114,158,0,0,0,114,9,0,0,0,
- 114,9,0,0,0,114,10,0,0,0,218,15,95,99,111,109,
- 112,105,108,101,95,115,111,117,114,99,101,133,2,0,0,115,
- 4,0,0,0,0,1,8,1,114,161,0,0,0,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,11,0,
- 0,0,67,0,0,0,115,68,0,0,0,116,0,160,1,124,
- 0,100,1,63,0,100,2,23,0,124,0,100,3,63,0,100,
- 4,64,0,124,0,100,5,64,0,124,1,100,6,63,0,124,
- 1,100,3,63,0,100,7,64,0,124,1,100,5,64,0,100,
- 8,20,0,100,9,100,9,100,9,102,9,161,1,83,0,41,
- 10,78,233,9,0,0,0,105,188,7,0,0,233,5,0,0,
- 0,233,15,0,0,0,233,31,0,0,0,233,11,0,0,0,
- 233,63,0,0,0,114,86,0,0,0,114,14,0,0,0,41,
- 2,114,131,0,0,0,90,6,109,107,116,105,109,101,41,2,
- 218,1,100,114,138,0,0,0,114,9,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,218,14,95,112,97,114,115,101,95,
- 100,111,115,116,105,109,101,139,2,0,0,115,18,0,0,0,
- 0,1,4,1,10,1,10,1,6,1,6,1,10,1,10,1,
- 6,249,114,169,0,0,0,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,6,0,0,0,10,0,0,0,67,0,0,0,
- 115,114,0,0,0,122,82,124,1,100,1,100,0,133,2,25,
- 0,100,2,118,0,115,22,74,0,130,1,124,1,100,0,100,
- 1,133,2,25,0,125,1,124,0,106,0,124,1,25,0,125,
- 2,124,2,100,3,25,0,125,3,124,2,100,4,25,0,125,
- 4,124,2,100,5,25,0,125,5,116,1,124,4,124,3,131,
- 2,124,5,102,2,87,0,83,0,4,0,116,2,116,3,116,
- 4,102,3,121,108,1,0,1,0,1,0,89,0,100,6,83,
- 0,48,0,100,0,83,0,41,7,78,114,14,0,0,0,169,
- 2,218,1,99,218,1,111,114,163,0,0,0,233,6,0,0,
- 0,233,3,0,0,0,41,2,114,0,0,0,0,114,0,0,
- 0,0,41,5,114,28,0,0,0,114,169,0,0,0,114,26,
- 0,0,0,218,10,73,110,100,101,120,69,114,114,111,114,114,
- 154,0,0,0,41,6,114,32,0,0,0,114,13,0,0,0,
- 114,54,0,0,0,114,131,0,0,0,114,132,0,0,0,90,
- 17,117,110,99,111,109,112,114,101,115,115,101,100,95,115,105,
- 122,101,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
- 0,114,151,0,0,0,152,2,0,0,115,20,0,0,0,0,
- 1,2,2,20,1,12,1,10,3,8,1,8,1,8,1,16,
- 1,18,1,114,151,0,0,0,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,84,0,0,0,124,1,100,1,100,0,133,2,25,0,
- 100,2,118,0,115,20,74,0,130,1,124,1,100,0,100,1,
- 133,2,25,0,125,1,122,14,124,0,106,0,124,1,25,0,
- 125,2,87,0,110,20,4,0,116,1,121,66,1,0,1,0,
- 1,0,89,0,100,0,83,0,48,0,116,2,124,0,106,3,
- 124,2,131,2,83,0,100,0,83,0,41,3,78,114,14,0,
- 0,0,114,170,0,0,0,41,4,114,28,0,0,0,114,26,
- 0,0,0,114,52,0,0,0,114,29,0,0,0,41,3,114,
- 32,0,0,0,114,13,0,0,0,114,54,0,0,0,114,9,
- 0,0,0,114,9,0,0,0,114,10,0,0,0,114,149,0,
- 0,0,171,2,0,0,115,14,0,0,0,0,2,20,1,12,
- 2,2,1,14,1,12,1,8,2,114,149,0,0,0,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,9,
- 0,0,0,67,0,0,0,115,196,0,0,0,116,0,124,0,
- 124,1,131,2,125,2,116,1,68,0,93,158,92,3,125,3,
- 125,4,125,5,124,2,124,3,23,0,125,6,116,2,106,3,
- 100,1,124,0,106,4,116,5,124,6,100,2,100,3,141,5,
- 1,0,122,14,124,0,106,6,124,6,25,0,125,7,87,0,
- 110,18,4,0,116,7,121,86,1,0,1,0,1,0,89,0,
- 113,14,48,0,124,7,100,4,25,0,125,8,116,8,124,0,
- 106,4,124,7,131,2,125,9,124,4,114,130,116,9,124,0,
- 124,8,124,6,124,1,124,9,131,5,125,10,110,10,116,10,
- 124,8,124,9,131,2,125,10,124,10,100,0,117,0,114,150,
- 113,14,124,7,100,4,25,0,125,8,124,10,124,5,124,8,
- 102,3,2,0,1,0,83,0,113,14,116,11,100,5,124,1,
- 155,2,157,2,124,1,100,6,141,2,130,1,100,0,83,0,
- 41,7,78,122,13,116,114,121,105,110,103,32,123,125,123,125,
- 123,125,114,86,0,0,0,41,1,90,9,118,101,114,98,111,
- 115,105,116,121,114,0,0,0,0,114,57,0,0,0,114,58,
- 0,0,0,41,12,114,36,0,0,0,114,89,0,0,0,114,
- 76,0,0,0,114,77,0,0,0,114,29,0,0,0,114,20,
- 0,0,0,114,28,0,0,0,114,26,0,0,0,114,52,0,
- 0,0,114,155,0,0,0,114,161,0,0,0,114,3,0,0,
- 0,41,11,114,32,0,0,0,114,38,0,0,0,114,13,0,
- 0,0,114,90,0,0,0,114,91,0,0,0,114,47,0,0,
- 0,114,63,0,0,0,114,54,0,0,0,114,40,0,0,0,
- 114,126,0,0,0,114,46,0,0,0,114,9,0,0,0,114,
- 9,0,0,0,114,10,0,0,0,114,44,0,0,0,186,2,
- 0,0,115,36,0,0,0,0,1,10,1,14,1,8,1,22,
- 1,2,1,14,1,12,1,6,2,8,1,12,1,4,1,18,
- 2,10,1,8,3,2,1,8,1,16,2,114,44,0,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,60,0,0,0,101,0,
- 90,1,100,0,90,2,100,1,90,3,100,2,90,4,100,3,
- 100,4,132,0,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,83,0,41,14,114,80,0,0,
- 0,122,165,80,114,105,118,97,116,101,32,99,108,97,115,115,
- 32,117,115,101,100,32,116,111,32,115,117,112,112,111,114,116,
- 32,90,105,112,73,109,112,111,114,116,46,103,101,116,95,114,
- 101,115,111,117,114,99,101,95,114,101,97,100,101,114,40,41,
- 46,10,10,32,32,32,32,84,104,105,115,32,99,108,97,115,
- 115,32,105,115,32,97,108,108,111,119,101,100,32,116,111,32,
- 114,101,102,101,114,101,110,99,101,32,97,108,108,32,116,104,
- 101,32,105,110,110,97,114,100,115,32,97,110,100,32,112,114,
- 105,118,97,116,101,32,112,97,114,116,115,32,111,102,10,32,
- 32,32,32,116,104,101,32,122,105,112,105,109,112,111,114,116,
- 101,114,46,10,32,32,32,32,70,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,88,0,0,0,41,2,114,4,
- 0,0,0,114,38,0,0,0,41,3,114,32,0,0,0,114,
- 4,0,0,0,114,38,0,0,0,114,9,0,0,0,114,9,
- 0,0,0,114,10,0,0,0,114,34,0,0,0,220,2,0,
- 0,115,4,0,0,0,0,1,6,1,122,33,95,90,105,112,
- 73,109,112,111,114,116,82,101,115,111,117,114,99,101,82,101,
- 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,5,0,0,0,8,0,
- 0,0,67,0,0,0,115,90,0,0,0,124,0,106,0,160,
- 1,100,1,100,2,161,2,125,2,124,2,155,0,100,2,124,
- 1,155,0,157,3,125,3,100,3,100,4,108,2,109,3,125,
- 4,1,0,122,18,124,4,124,0,106,4,160,5,124,3,161,
- 1,131,1,87,0,83,0,4,0,116,6,121,84,1,0,1,
- 0,1,0,116,7,124,3,131,1,130,1,89,0,110,2,48,
- 0,100,0,83,0,41,5,78,114,85,0,0,0,114,109,0,
- 0,0,114,0,0,0,0,41,1,218,7,66,121,116,101,115,
- 73,79,41,8,114,38,0,0,0,114,19,0,0,0,90,2,
- 105,111,114,176,0,0,0,114,4,0,0,0,114,55,0,0,
- 0,114,22,0,0,0,218,17,70,105,108,101,78,111,116,70,
- 111,117,110,100,69,114,114,111,114,41,5,114,32,0,0,0,
- 218,8,114,101,115,111,117,114,99,101,218,16,102,117,108,108,
- 110,97,109,101,95,97,115,95,112,97,116,104,114,13,0,0,
- 0,114,176,0,0,0,114,9,0,0,0,114,9,0,0,0,
- 114,10,0,0,0,218,13,111,112,101,110,95,114,101,115,111,
- 117,114,99,101,224,2,0,0,115,14,0,0,0,0,1,14,
- 1,14,1,12,1,2,1,18,1,12,1,122,38,95,90,105,
- 112,73,109,112,111,114,116,82,101,115,111,117,114,99,101,82,
- 101,97,100,101,114,46,111,112,101,110,95,114,101,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,115,8,0,0,
- 0,116,0,130,1,100,0,83,0,114,88,0,0,0,41,1,
- 114,177,0,0,0,41,2,114,32,0,0,0,114,178,0,0,
- 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 218,13,114,101,115,111,117,114,99,101,95,112,97,116,104,233,
- 2,0,0,115,2,0,0,0,0,4,122,38,95,90,105,112,
- 73,109,112,111,114,116,82,101,115,111,117,114,99,101,82,101,
- 97,100,101,114,46,114,101,115,111,117,114,99,101,95,112,97,
- 116,104,99,2,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,8,0,0,0,67,0,0,0,115,70,0,0,0,
- 124,0,106,0,160,1,100,1,100,2,161,2,125,2,124,2,
- 155,0,100,2,124,1,155,0,157,3,125,3,122,16,124,0,
- 106,2,160,3,124,3,161,1,1,0,87,0,110,20,4,0,
- 116,4,121,64,1,0,1,0,1,0,89,0,100,3,83,0,
- 48,0,100,4,83,0,41,5,78,114,85,0,0,0,114,109,
- 0,0,0,70,84,41,5,114,38,0,0,0,114,19,0,0,
- 0,114,4,0,0,0,114,55,0,0,0,114,22,0,0,0,
- 41,4,114,32,0,0,0,114,59,0,0,0,114,179,0,0,
- 0,114,13,0,0,0,114,9,0,0,0,114,9,0,0,0,
- 114,10,0,0,0,218,11,105,115,95,114,101,115,111,117,114,
- 99,101,239,2,0,0,115,14,0,0,0,0,3,14,1,14,
- 1,2,1,16,1,12,1,8,1,122,36,95,90,105,112,73,
- 109,112,111,114,116,82,101,115,111,117,114,99,101,82,101,97,
- 100,101,114,46,105,115,95,114,101,115,111,117,114,99,101,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
- 9,0,0,0,99,0,0,0,115,184,0,0,0,100,1,100,
- 2,108,0,109,1,125,1,1,0,124,1,124,0,106,2,160,
- 3,124,0,106,4,161,1,131,1,125,2,124,2,160,5,124,
- 0,106,2,106,6,161,1,125,3,124,3,106,7,100,3,107,
- 2,115,58,74,0,130,1,124,3,106,8,125,4,116,9,131,
- 0,125,5,124,0,106,2,106,10,68,0,93,100,125,6,122,
- 18,124,1,124,6,131,1,160,5,124,4,161,1,125,7,87,
- 0,110,22,4,0,116,11,121,122,1,0,1,0,1,0,89,
- 0,113,78,89,0,110,2,48,0,124,7,106,8,106,7,125,
- 8,116,12,124,8,131,1,100,1,107,2,114,154,124,7,106,
- 7,86,0,1,0,113,78,124,8,124,5,118,1,114,78,124,
- 5,160,13,124,8,161,1,1,0,124,8,86,0,1,0,113,
- 78,100,0,83,0,41,4,78,114,0,0,0,0,41,1,218,
- 4,80,97,116,104,114,60,0,0,0,41,14,90,7,112,97,
- 116,104,108,105,98,114,183,0,0,0,114,4,0,0,0,114,
- 56,0,0,0,114,38,0,0,0,90,11,114,101,108,97,116,
- 105,118,101,95,116,111,114,29,0,0,0,114,59,0,0,0,
- 90,6,112,97,114,101,110,116,218,3,115,101,116,114,28,0,
- 0,0,114,23,0,0,0,114,51,0,0,0,218,3,97,100,
- 100,41,9,114,32,0,0,0,114,183,0,0,0,90,13,102,
- 117,108,108,110,97,109,101,95,112,97,116,104,90,13,114,101,
- 108,97,116,105,118,101,95,112,97,116,104,90,12,112,97,99,
- 107,97,103,101,95,112,97,116,104,90,12,115,117,98,100,105,
- 114,115,95,115,101,101,110,218,8,102,105,108,101,110,97,109,
- 101,90,8,114,101,108,97,116,105,118,101,90,11,112,97,114,
- 101,110,116,95,110,97,109,101,114,9,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,218,8,99,111,110,116,101,110,116,
- 115,250,2,0,0,115,34,0,0,0,0,8,12,1,18,1,
- 14,3,14,1,6,1,6,1,12,1,2,1,18,1,12,1,
- 10,5,8,1,12,1,10,1,8,1,10,1,122,33,95,90,
- 105,112,73,109,112,111,114,116,82,101,115,111,117,114,99,101,
- 82,101,97,100,101,114,46,99,111,110,116,101,110,116,115,78,
- 41,10,114,6,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,114,84,0,0,0,114,81,0,0,0,114,34,0,0,0,
- 114,180,0,0,0,114,181,0,0,0,114,182,0,0,0,114,
- 187,0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,
- 0,0,0,114,10,0,0,0,114,80,0,0,0,212,2,0,
- 0,115,14,0,0,0,8,1,4,5,4,2,8,4,8,9,
- 8,6,8,11,114,80,0,0,0,41,45,114,84,0,0,0,
- 90,26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,
- 108,105,98,95,101,120,116,101,114,110,97,108,114,21,0,0,
- 0,114,1,0,0,0,114,2,0,0,0,90,17,95,102,114,
- 111,122,101,110,95,105,109,112,111,114,116,108,105,98,114,76,
- 0,0,0,114,148,0,0,0,114,110,0,0,0,114,152,0,
- 0,0,114,67,0,0,0,114,131,0,0,0,90,7,95,95,
- 97,108,108,95,95,114,20,0,0,0,90,15,112,97,116,104,
- 95,115,101,112,97,114,97,116,111,114,115,114,18,0,0,0,
- 114,75,0,0,0,114,3,0,0,0,114,25,0,0,0,218,
- 4,116,121,112,101,114,70,0,0,0,114,113,0,0,0,114,
- 115,0,0,0,114,117,0,0,0,114,4,0,0,0,114,89,
- 0,0,0,114,36,0,0,0,114,37,0,0,0,114,35,0,
- 0,0,114,27,0,0,0,114,122,0,0,0,114,142,0,0,
- 0,114,144,0,0,0,114,52,0,0,0,114,147,0,0,0,
- 114,155,0,0,0,218,8,95,95,99,111,100,101,95,95,114,
- 153,0,0,0,114,159,0,0,0,114,161,0,0,0,114,169,
- 0,0,0,114,151,0,0,0,114,149,0,0,0,114,44,0,
- 0,0,114,80,0,0,0,114,9,0,0,0,114,9,0,0,
- 0,114,9,0,0,0,114,10,0,0,0,218,8,60,109,111,
- 100,117,108,101,62,1,0,0,0,115,88,0,0,0,4,16,
- 8,1,16,1,8,1,8,1,8,1,8,1,8,1,8,2,
- 8,3,6,1,14,3,16,4,4,2,8,2,4,1,4,1,
- 4,2,14,127,0,127,0,1,12,1,12,1,2,1,2,252,
- 4,9,8,4,8,9,8,31,8,126,2,254,2,29,4,5,
- 8,21,8,46,8,10,8,46,10,5,8,7,8,6,8,13,
- 8,19,8,15,8,26,
-};
+/* Auto-generated by Programs/_freeze_importlib.c */
+const unsigned char _Py_M__zipimport[] = {
+ 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,82,1,0,0,100,0,
+ 90,0,100,1,100,2,108,1,90,2,100,1,100,3,108,1,
+ 109,3,90,3,109,4,90,4,1,0,100,1,100,2,108,5,
+ 90,6,100,1,100,2,108,7,90,7,100,1,100,2,108,8,
+ 90,8,100,1,100,2,108,9,90,9,100,1,100,2,108,10,
+ 90,10,100,1,100,2,108,11,90,11,100,4,100,5,103,2,
+ 90,12,101,2,106,13,90,13,101,2,106,14,100,6,100,2,
+ 133,2,25,0,90,15,71,0,100,7,100,4,132,0,100,4,
+ 101,16,131,3,90,17,105,0,90,18,101,19,101,10,131,1,
+ 90,20,100,8,90,21,100,9,90,22,100,10,90,23,71,0,
+ 100,11,100,5,132,0,100,5,131,2,90,24,101,13,100,12,
+ 23,0,100,13,100,13,102,3,101,13,100,14,23,0,100,15,
+ 100,13,102,3,100,16,100,17,102,4,90,25,100,18,100,19,
+ 132,0,90,26,100,20,100,21,132,0,90,27,100,22,100,23,
+ 132,0,90,28,100,24,100,25,132,0,90,29,100,26,90,30,
+ 100,15,97,31,100,27,100,28,132,0,90,32,100,29,100,30,
+ 132,0,90,33,100,31,100,32,132,0,90,34,100,33,100,34,
+ 132,0,90,35,101,19,101,35,106,36,131,1,90,37,100,35,
+ 100,36,132,0,90,38,100,37,100,38,132,0,90,39,100,39,
+ 100,40,132,0,90,40,100,41,100,42,132,0,90,41,100,43,
+ 100,44,132,0,90,42,100,45,100,46,132,0,90,43,71,0,
+ 100,47,100,48,132,0,100,48,131,2,90,44,100,2,83,0,
+ 41,49,97,80,2,0,0,122,105,112,105,109,112,111,114,116,
+ 32,112,114,111,118,105,100,101,115,32,115,117,112,112,111,114,
+ 116,32,102,111,114,32,105,109,112,111,114,116,105,110,103,32,
+ 80,121,116,104,111,110,32,109,111,100,117,108,101,115,32,102,
+ 114,111,109,32,90,105,112,32,97,114,99,104,105,118,101,115,
+ 46,10,10,84,104,105,115,32,109,111,100,117,108,101,32,101,
+ 120,112,111,114,116,115,32,116,104,114,101,101,32,111,98,106,
+ 101,99,116,115,58,10,45,32,122,105,112,105,109,112,111,114,
+ 116,101,114,58,32,97,32,99,108,97,115,115,59,32,105,116,
+ 115,32,99,111,110,115,116,114,117,99,116,111,114,32,116,97,
+ 107,101,115,32,97,32,112,97,116,104,32,116,111,32,97,32,
+ 90,105,112,32,97,114,99,104,105,118,101,46,10,45,32,90,
+ 105,112,73,109,112,111,114,116,69,114,114,111,114,58,32,101,
+ 120,99,101,112,116,105,111,110,32,114,97,105,115,101,100,32,
+ 98,121,32,122,105,112,105,109,112,111,114,116,101,114,32,111,
+ 98,106,101,99,116,115,46,32,73,116,39,115,32,97,10,32,
+ 32,115,117,98,99,108,97,115,115,32,111,102,32,73,109,112,
+ 111,114,116,69,114,114,111,114,44,32,115,111,32,105,116,32,
+ 99,97,110,32,98,101,32,99,97,117,103,104,116,32,97,115,
+ 32,73,109,112,111,114,116,69,114,114,111,114,44,32,116,111,
+ 111,46,10,45,32,95,122,105,112,95,100,105,114,101,99,116,
+ 111,114,121,95,99,97,99,104,101,58,32,97,32,100,105,99,
+ 116,44,32,109,97,112,112,105,110,103,32,97,114,99,104,105,
+ 118,101,32,112,97,116,104,115,32,116,111,32,122,105,112,32,
+ 100,105,114,101,99,116,111,114,121,10,32,32,105,110,102,111,
+ 32,100,105,99,116,115,44,32,97,115,32,117,115,101,100,32,
+ 105,110,32,122,105,112,105,109,112,111,114,116,101,114,46,95,
+ 102,105,108,101,115,46,10,10,73,116,32,105,115,32,117,115,
+ 117,97,108,108,121,32,110,111,116,32,110,101,101,100,101,100,
+ 32,116,111,32,117,115,101,32,116,104,101,32,122,105,112,105,
+ 109,112,111,114,116,32,109,111,100,117,108,101,32,101,120,112,
+ 108,105,99,105,116,108,121,59,32,105,116,32,105,115,10,117,
+ 115,101,100,32,98,121,32,116,104,101,32,98,117,105,108,116,
+ 105,110,32,105,109,112,111,114,116,32,109,101,99,104,97,110,
+ 105,115,109,32,102,111,114,32,115,121,115,46,112,97,116,104,
+ 32,105,116,101,109,115,32,116,104,97,116,32,97,114,101,32,
+ 112,97,116,104,115,10,116,111,32,90,105,112,32,97,114,99,
+ 104,105,118,101,115,46,10,233,0,0,0,0,78,41,2,218,
+ 14,95,117,110,112,97,99,107,95,117,105,110,116,49,54,218,
+ 14,95,117,110,112,97,99,107,95,117,105,110,116,51,50,218,
+ 14,90,105,112,73,109,112,111,114,116,69,114,114,111,114,218,
+ 11,122,105,112,105,109,112,111,114,116,101,114,233,1,0,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,64,0,0,0,115,12,0,0,0,101,
+ 0,90,1,100,0,90,2,100,1,83,0,41,2,114,3,0,
+ 0,0,78,41,3,218,8,95,95,110,97,109,101,95,95,218,
+ 10,95,95,109,111,100,117,108,101,95,95,218,12,95,95,113,
+ 117,97,108,110,97,109,101,95,95,169,0,114,9,0,0,0,
+ 114,9,0,0,0,250,18,60,102,114,111,122,101,110,32,122,
+ 105,112,105,109,112,111,114,116,62,114,3,0,0,0,33,0,
+ 0,0,115,2,0,0,0,8,1,233,22,0,0,0,115,4,
+ 0,0,0,80,75,5,6,105,255,255,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,108,0,0,0,101,0,90,1,100,0,
+ 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,25,
+ 100,5,100,6,132,1,90,5,100,26,100,7,100,8,132,1,
+ 90,6,100,9,100,10,132,0,90,7,100,11,100,12,132,0,
+ 90,8,100,13,100,14,132,0,90,9,100,15,100,16,132,0,
+ 90,10,100,17,100,18,132,0,90,11,100,19,100,20,132,0,
+ 90,12,100,21,100,22,132,0,90,13,100,23,100,24,132,0,
+ 90,14,100,4,83,0,41,27,114,4,0,0,0,97,255,1,
+ 0,0,122,105,112,105,109,112,111,114,116,101,114,40,97,114,
+ 99,104,105,118,101,112,97,116,104,41,32,45,62,32,122,105,
+ 112,105,109,112,111,114,116,101,114,32,111,98,106,101,99,116,
+ 10,10,32,32,32,32,67,114,101,97,116,101,32,97,32,110,
+ 101,119,32,122,105,112,105,109,112,111,114,116,101,114,32,105,
+ 110,115,116,97,110,99,101,46,32,39,97,114,99,104,105,118,
+ 101,112,97,116,104,39,32,109,117,115,116,32,98,101,32,97,
+ 32,112,97,116,104,32,116,111,10,32,32,32,32,97,32,122,
+ 105,112,102,105,108,101,44,32,111,114,32,116,111,32,97,32,
+ 115,112,101,99,105,102,105,99,32,112,97,116,104,32,105,110,
+ 115,105,100,101,32,97,32,122,105,112,102,105,108,101,46,32,
+ 70,111,114,32,101,120,97,109,112,108,101,44,32,105,116,32,
+ 99,97,110,32,98,101,10,32,32,32,32,39,47,116,109,112,
+ 47,109,121,105,109,112,111,114,116,46,122,105,112,39,44,32,
+ 111,114,32,39,47,116,109,112,47,109,121,105,109,112,111,114,
+ 116,46,122,105,112,47,109,121,100,105,114,101,99,116,111,114,
+ 121,39,44,32,105,102,32,109,121,100,105,114,101,99,116,111,
+ 114,121,32,105,115,32,97,10,32,32,32,32,118,97,108,105,
+ 100,32,100,105,114,101,99,116,111,114,121,32,105,110,115,105,
+ 100,101,32,116,104,101,32,97,114,99,104,105,118,101,46,10,
+ 10,32,32,32,32,39,90,105,112,73,109,112,111,114,116,69,
+ 114,114,111,114,32,105,115,32,114,97,105,115,101,100,32,105,
+ 102,32,39,97,114,99,104,105,118,101,112,97,116,104,39,32,
+ 100,111,101,115,110,39,116,32,112,111,105,110,116,32,116,111,
+ 32,97,32,118,97,108,105,100,32,90,105,112,10,32,32,32,
+ 32,97,114,99,104,105,118,101,46,10,10,32,32,32,32,84,
+ 104,101,32,39,97,114,99,104,105,118,101,39,32,97,116,116,
+ 114,105,98,117,116,101,32,111,102,32,122,105,112,105,109,112,
+ 111,114,116,101,114,32,111,98,106,101,99,116,115,32,99,111,
+ 110,116,97,105,110,115,32,116,104,101,32,110,97,109,101,32,
+ 111,102,32,116,104,101,10,32,32,32,32,122,105,112,102,105,
+ 108,101,32,116,97,114,103,101,116,101,100,46,10,32,32,32,
+ 32,99,2,0,0,0,0,0,0,0,0,0,0,0,8,0,
+ 0,0,9,0,0,0,67,0,0,0,115,32,1,0,0,116,
+ 0,124,1,116,1,131,2,115,28,100,1,100,0,108,2,125,
+ 2,124,2,160,3,124,1,161,1,125,1,124,1,115,44,116,
+ 4,100,2,124,1,100,3,141,2,130,1,116,5,114,60,124,
+ 1,160,6,116,5,116,7,161,2,125,1,103,0,125,3,122,
+ 14,116,8,160,9,124,1,161,1,125,4,87,0,110,70,4,
+ 0,116,10,116,11,102,2,121,148,1,0,1,0,1,0,116,
+ 8,160,12,124,1,161,1,92,2,125,5,125,6,124,5,124,
+ 1,107,2,114,130,116,4,100,4,124,1,100,3,141,2,130,
+ 1,124,5,125,1,124,3,160,13,124,6,161,1,1,0,89,
+ 0,113,64,48,0,124,4,106,14,100,5,64,0,100,6,107,
+ 3,114,180,116,4,100,4,124,1,100,3,141,2,130,1,113,
+ 180,113,64,122,12,116,15,124,1,25,0,125,7,87,0,110,
+ 34,4,0,116,16,121,226,1,0,1,0,1,0,116,17,124,
+ 1,131,1,125,7,124,7,116,15,124,1,60,0,89,0,110,
+ 2,48,0,124,7,124,0,95,18,124,1,124,0,95,19,116,
+ 8,106,20,124,3,100,0,100,0,100,7,133,3,25,0,142,
+ 0,124,0,95,21,124,0,106,21,144,1,114,28,124,0,4,
+ 0,106,21,116,7,55,0,2,0,95,21,100,0,83,0,41,
+ 8,78,114,0,0,0,0,122,21,97,114,99,104,105,118,101,
+ 32,112,97,116,104,32,105,115,32,101,109,112,116,121,169,1,
+ 218,4,112,97,116,104,122,14,110,111,116,32,97,32,90,105,
+ 112,32,102,105,108,101,105,0,240,0,0,105,0,128,0,0,
+ 233,255,255,255,255,41,22,218,10,105,115,105,110,115,116,97,
+ 110,99,101,218,3,115,116,114,218,2,111,115,90,8,102,115,
+ 100,101,99,111,100,101,114,3,0,0,0,218,12,97,108,116,
+ 95,112,97,116,104,95,115,101,112,218,7,114,101,112,108,97,
+ 99,101,218,8,112,97,116,104,95,115,101,112,218,19,95,98,
+ 111,111,116,115,116,114,97,112,95,101,120,116,101,114,110,97,
+ 108,90,10,95,112,97,116,104,95,115,116,97,116,218,7,79,
+ 83,69,114,114,111,114,218,10,86,97,108,117,101,69,114,114,
+ 111,114,90,11,95,112,97,116,104,95,115,112,108,105,116,218,
+ 6,97,112,112,101,110,100,90,7,115,116,95,109,111,100,101,
+ 218,20,95,122,105,112,95,100,105,114,101,99,116,111,114,121,
+ 95,99,97,99,104,101,218,8,75,101,121,69,114,114,111,114,
+ 218,15,95,114,101,97,100,95,100,105,114,101,99,116,111,114,
+ 121,218,6,95,102,105,108,101,115,218,7,97,114,99,104,105,
+ 118,101,218,10,95,112,97,116,104,95,106,111,105,110,218,6,
+ 112,114,101,102,105,120,41,8,218,4,115,101,108,102,114,13,
+ 0,0,0,114,17,0,0,0,114,31,0,0,0,90,2,115,
+ 116,90,7,100,105,114,110,97,109,101,90,8,98,97,115,101,
+ 110,97,109,101,218,5,102,105,108,101,115,114,9,0,0,0,
+ 114,9,0,0,0,114,10,0,0,0,218,8,95,95,105,110,
+ 105,116,95,95,63,0,0,0,115,58,0,0,0,0,1,10,
+ 1,8,1,10,1,4,1,12,1,4,1,12,2,4,2,2,
+ 1,14,1,16,3,14,1,8,1,12,1,4,1,16,3,14,
+ 2,12,1,4,2,2,1,12,1,12,1,8,1,14,1,6,
+ 1,6,2,22,1,8,1,122,20,122,105,112,105,109,112,111,
+ 114,116,101,114,46,95,95,105,110,105,116,95,95,78,99,3,
+ 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,
+ 0,0,0,67,0,0,0,115,78,0,0,0,116,0,124,0,
+ 124,1,131,2,125,3,124,3,100,1,117,1,114,26,124,0,
+ 103,0,102,2,83,0,116,1,124,0,124,1,131,2,125,4,
+ 116,2,124,0,124,4,131,2,114,70,100,1,124,0,106,3,
+ 155,0,116,4,155,0,124,4,155,0,157,3,103,1,102,2,
+ 83,0,100,1,103,0,102,2,83,0,41,2,97,239,1,0,
+ 0,102,105,110,100,95,108,111,97,100,101,114,40,102,117,108,
+ 108,110,97,109,101,44,32,112,97,116,104,61,78,111,110,101,
+ 41,32,45,62,32,115,101,108,102,44,32,115,116,114,32,111,
+ 114,32,78,111,110,101,46,10,10,32,32,32,32,32,32,32,
+ 32,83,101,97,114,99,104,32,102,111,114,32,97,32,109,111,
+ 100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,98,
+ 121,32,39,102,117,108,108,110,97,109,101,39,46,32,39,102,
+ 117,108,108,110,97,109,101,39,32,109,117,115,116,32,98,101,
+ 32,116,104,101,10,32,32,32,32,32,32,32,32,102,117,108,
+ 108,121,32,113,117,97,108,105,102,105,101,100,32,40,100,111,
+ 116,116,101,100,41,32,109,111,100,117,108,101,32,110,97,109,
+ 101,46,32,73,116,32,114,101,116,117,114,110,115,32,116,104,
+ 101,32,122,105,112,105,109,112,111,114,116,101,114,10,32,32,
+ 32,32,32,32,32,32,105,110,115,116,97,110,99,101,32,105,
+ 116,115,101,108,102,32,105,102,32,116,104,101,32,109,111,100,
+ 117,108,101,32,119,97,115,32,102,111,117,110,100,44,32,97,
+ 32,115,116,114,105,110,103,32,99,111,110,116,97,105,110,105,
+ 110,103,32,116,104,101,10,32,32,32,32,32,32,32,32,102,
+ 117,108,108,32,112,97,116,104,32,110,97,109,101,32,105,102,
+ 32,105,116,39,115,32,112,111,115,115,105,98,108,121,32,97,
+ 32,112,111,114,116,105,111,110,32,111,102,32,97,32,110,97,
+ 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,44,
+ 10,32,32,32,32,32,32,32,32,111,114,32,78,111,110,101,
+ 32,111,116,104,101,114,119,105,115,101,46,32,84,104,101,32,
+ 111,112,116,105,111,110,97,108,32,39,112,97,116,104,39,32,
+ 97,114,103,117,109,101,110,116,32,105,115,32,105,103,110,111,
+ 114,101,100,32,45,45,32,105,116,39,115,10,32,32,32,32,
+ 32,32,32,32,116,104,101,114,101,32,102,111,114,32,99,111,
+ 109,112,97,116,105,98,105,108,105,116,121,32,119,105,116,104,
+ 32,116,104,101,32,105,109,112,111,114,116,101,114,32,112,114,
+ 111,116,111,99,111,108,46,10,32,32,32,32,32,32,32,32,
+ 78,41,5,218,16,95,103,101,116,95,109,111,100,117,108,101,
+ 95,105,110,102,111,218,16,95,103,101,116,95,109,111,100,117,
+ 108,101,95,112,97,116,104,218,7,95,105,115,95,100,105,114,
+ 114,29,0,0,0,114,20,0,0,0,41,5,114,32,0,0,
+ 0,218,8,102,117,108,108,110,97,109,101,114,13,0,0,0,
+ 218,2,109,105,218,7,109,111,100,112,97,116,104,114,9,0,
+ 0,0,114,9,0,0,0,114,10,0,0,0,218,11,102,105,
+ 110,100,95,108,111,97,100,101,114,109,0,0,0,115,14,0,
+ 0,0,0,10,10,1,8,2,8,7,10,1,10,4,24,2,
+ 122,23,122,105,112,105,109,112,111,114,116,101,114,46,102,105,
+ 110,100,95,108,111,97,100,101,114,99,3,0,0,0,0,0,
+ 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
+ 0,0,115,16,0,0,0,124,0,160,0,124,1,124,2,161,
+ 2,100,1,25,0,83,0,41,2,97,139,1,0,0,102,105,
+ 110,100,95,109,111,100,117,108,101,40,102,117,108,108,110,97,
+ 109,101,44,32,112,97,116,104,61,78,111,110,101,41,32,45,
+ 62,32,115,101,108,102,32,111,114,32,78,111,110,101,46,10,
+ 10,32,32,32,32,32,32,32,32,83,101,97,114,99,104,32,
+ 102,111,114,32,97,32,109,111,100,117,108,101,32,115,112,101,
+ 99,105,102,105,101,100,32,98,121,32,39,102,117,108,108,110,
+ 97,109,101,39,46,32,39,102,117,108,108,110,97,109,101,39,
+ 32,109,117,115,116,32,98,101,32,116,104,101,10,32,32,32,
+ 32,32,32,32,32,102,117,108,108,121,32,113,117,97,108,105,
+ 102,105,101,100,32,40,100,111,116,116,101,100,41,32,109,111,
+ 100,117,108,101,32,110,97,109,101,46,32,73,116,32,114,101,
+ 116,117,114,110,115,32,116,104,101,32,122,105,112,105,109,112,
+ 111,114,116,101,114,10,32,32,32,32,32,32,32,32,105,110,
+ 115,116,97,110,99,101,32,105,116,115,101,108,102,32,105,102,
+ 32,116,104,101,32,109,111,100,117,108,101,32,119,97,115,32,
+ 102,111,117,110,100,44,32,111,114,32,78,111,110,101,32,105,
+ 102,32,105,116,32,119,97,115,110,39,116,46,10,32,32,32,
+ 32,32,32,32,32,84,104,101,32,111,112,116,105,111,110,97,
+ 108,32,39,112,97,116,104,39,32,97,114,103,117,109,101,110,
+ 116,32,105,115,32,105,103,110,111,114,101,100,32,45,45,32,
+ 105,116,39,115,32,116,104,101,114,101,32,102,111,114,32,99,
+ 111,109,112,97,116,105,98,105,108,105,116,121,10,32,32,32,
+ 32,32,32,32,32,119,105,116,104,32,116,104,101,32,105,109,
+ 112,111,114,116,101,114,32,112,114,111,116,111,99,111,108,46,
+ 10,32,32,32,32,32,32,32,32,114,0,0,0,0,41,1,
+ 114,41,0,0,0,41,3,114,32,0,0,0,114,38,0,0,
+ 0,114,13,0,0,0,114,9,0,0,0,114,9,0,0,0,
+ 114,10,0,0,0,218,11,102,105,110,100,95,109,111,100,117,
+ 108,101,141,0,0,0,115,2,0,0,0,0,9,122,23,122,
+ 105,112,105,109,112,111,114,116,101,114,46,102,105,110,100,95,
+ 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,115,
+ 20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,2,
+ 125,3,125,4,124,2,83,0,41,1,122,163,103,101,116,95,
+ 99,111,100,101,40,102,117,108,108,110,97,109,101,41,32,45,
+ 62,32,99,111,100,101,32,111,98,106,101,99,116,46,10,10,
+ 32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,116,
+ 104,101,32,99,111,100,101,32,111,98,106,101,99,116,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,32,82,97,105,115,101,32,90,
+ 105,112,73,109,112,111,114,116,69,114,114,111,114,10,32,32,
+ 32,32,32,32,32,32,105,102,32,116,104,101,32,109,111,100,
+ 117,108,101,32,99,111,117,108,100,110,39,116,32,98,101,32,
+ 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,169,
+ 1,218,16,95,103,101,116,95,109,111,100,117,108,101,95,99,
+ 111,100,101,169,5,114,32,0,0,0,114,38,0,0,0,218,
+ 4,99,111,100,101,218,9,105,115,112,97,99,107,97,103,101,
+ 114,40,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
+ 10,0,0,0,218,8,103,101,116,95,99,111,100,101,153,0,
+ 0,0,115,4,0,0,0,0,6,16,1,122,20,122,105,112,
+ 105,109,112,111,114,116,101,114,46,103,101,116,95,99,111,100,
+ 101,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,8,0,0,0,67,0,0,0,115,116,0,0,0,116,
+ 0,114,16,124,1,160,1,116,0,116,2,161,2,125,1,124,
+ 1,125,2,124,1,160,3,124,0,106,4,116,2,23,0,161,
+ 1,114,58,124,1,116,5,124,0,106,4,116,2,23,0,131,
+ 1,100,1,133,2,25,0,125,2,122,14,124,0,106,6,124,
+ 2,25,0,125,3,87,0,110,30,4,0,116,7,121,102,1,
+ 0,1,0,1,0,116,8,100,2,100,3,124,2,131,3,130,
+ 1,89,0,110,2,48,0,116,9,124,0,106,4,124,3,131,
+ 2,83,0,41,4,122,154,103,101,116,95,100,97,116,97,40,
+ 112,97,116,104,110,97,109,101,41,32,45,62,32,115,116,114,
+ 105,110,103,32,119,105,116,104,32,102,105,108,101,32,100,97,
+ 116,97,46,10,10,32,32,32,32,32,32,32,32,82,101,116,
+ 117,114,110,32,116,104,101,32,100,97,116,97,32,97,115,115,
+ 111,99,105,97,116,101,100,32,119,105,116,104,32,39,112,97,
+ 116,104,110,97,109,101,39,46,32,82,97,105,115,101,32,79,
+ 83,69,114,114,111,114,32,105,102,10,32,32,32,32,32,32,
+ 32,32,116,104,101,32,102,105,108,101,32,119,97,115,110,39,
+ 116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,
+ 32,78,114,0,0,0,0,218,0,41,10,114,18,0,0,0,
+ 114,19,0,0,0,114,20,0,0,0,218,10,115,116,97,114,
+ 116,115,119,105,116,104,114,29,0,0,0,218,3,108,101,110,
+ 114,28,0,0,0,114,26,0,0,0,114,22,0,0,0,218,
+ 9,95,103,101,116,95,100,97,116,97,41,4,114,32,0,0,
+ 0,218,8,112,97,116,104,110,97,109,101,90,3,107,101,121,
+ 218,9,116,111,99,95,101,110,116,114,121,114,9,0,0,0,
+ 114,9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,
+ 100,97,116,97,163,0,0,0,115,20,0,0,0,0,6,4,
+ 1,12,2,4,1,16,1,22,2,2,1,14,1,12,1,18,
+ 1,122,20,122,105,112,105,109,112,111,114,116,101,114,46,103,
+ 101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,
+ 115,20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,
+ 2,125,3,125,4,124,4,83,0,41,1,122,106,103,101,116,
+ 95,102,105,108,101,110,97,109,101,40,102,117,108,108,110,97,
+ 109,101,41,32,45,62,32,102,105,108,101,110,97,109,101,32,
+ 115,116,114,105,110,103,46,10,10,32,32,32,32,32,32,32,
+ 32,82,101,116,117,114,110,32,116,104,101,32,102,105,108,101,
+ 110,97,109,101,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,32,
+ 32,32,32,32,32,32,32,114,43,0,0,0,114,45,0,0,
+ 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
+ 218,12,103,101,116,95,102,105,108,101,110,97,109,101,184,0,
+ 0,0,115,4,0,0,0,0,7,16,1,122,24,122,105,112,
+ 105,109,112,111,114,116,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,6,0,0,0,8,0,0,0,67,0,0,0,115,126,
+ 0,0,0,116,0,124,0,124,1,131,2,125,2,124,2,100,
+ 1,117,0,114,36,116,1,100,2,124,1,155,2,157,2,124,
+ 1,100,3,141,2,130,1,116,2,124,0,124,1,131,2,125,
+ 3,124,2,114,64,116,3,160,4,124,3,100,4,161,2,125,
+ 4,110,10,124,3,155,0,100,5,157,2,125,4,122,14,124,
+ 0,106,5,124,4,25,0,125,5,87,0,110,20,4,0,116,
+ 6,121,108,1,0,1,0,1,0,89,0,100,1,83,0,48,
+ 0,116,7,124,0,106,8,124,5,131,2,160,9,161,0,83,
+ 0,41,6,122,253,103,101,116,95,115,111,117,114,99,101,40,
+ 102,117,108,108,110,97,109,101,41,32,45,62,32,115,111,117,
+ 114,99,101,32,115,116,114,105,110,103,46,10,10,32,32,32,
+ 32,32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,
+ 115,111,117,114,99,101,32,99,111,100,101,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,32,82,97,105,115,101,32,90,105,112,73,
+ 109,112,111,114,116,69,114,114,111,114,10,32,32,32,32,32,
+ 32,32,32,105,102,32,116,104,101,32,109,111,100,117,108,101,
+ 32,99,111,117,108,100,110,39,116,32,98,101,32,102,111,117,
+ 110,100,44,32,114,101,116,117,114,110,32,78,111,110,101,32,
+ 105,102,32,116,104,101,32,97,114,99,104,105,118,101,32,100,
+ 111,101,115,10,32,32,32,32,32,32,32,32,99,111,110,116,
+ 97,105,110,32,116,104,101,32,109,111,100,117,108,101,44,32,
+ 98,117,116,32,104,97,115,32,110,111,32,115,111,117,114,99,
+ 101,32,102,111,114,32,105,116,46,10,32,32,32,32,32,32,
+ 32,32,78,250,18,99,97,110,39,116,32,102,105,110,100,32,
+ 109,111,100,117,108,101,32,169,1,218,4,110,97,109,101,250,
+ 11,95,95,105,110,105,116,95,95,46,112,121,250,3,46,112,
+ 121,41,10,114,35,0,0,0,114,3,0,0,0,114,36,0,
+ 0,0,114,21,0,0,0,114,30,0,0,0,114,28,0,0,
+ 0,114,26,0,0,0,114,52,0,0,0,114,29,0,0,0,
+ 218,6,100,101,99,111,100,101,41,6,114,32,0,0,0,114,
+ 38,0,0,0,114,39,0,0,0,114,13,0,0,0,218,8,
+ 102,117,108,108,112,97,116,104,114,54,0,0,0,114,9,0,
+ 0,0,114,9,0,0,0,114,10,0,0,0,218,10,103,101,
+ 116,95,115,111,117,114,99,101,195,0,0,0,115,24,0,0,
+ 0,0,7,10,1,8,1,18,2,10,1,4,1,14,2,10,
+ 2,2,1,14,1,12,2,8,1,122,22,122,105,112,105,109,
+ 112,111,114,116,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,3,0,
+ 0,0,4,0,0,0,67,0,0,0,115,40,0,0,0,116,
+ 0,124,0,124,1,131,2,125,2,124,2,100,1,117,0,114,
+ 36,116,1,100,2,124,1,155,2,157,2,124,1,100,3,141,
+ 2,130,1,124,2,83,0,41,4,122,171,105,115,95,112,97,
+ 99,107,97,103,101,40,102,117,108,108,110,97,109,101,41,32,
+ 45,62,32,98,111,111,108,46,10,10,32,32,32,32,32,32,
+ 32,32,82,101,116,117,114,110,32,84,114,117,101,32,105,102,
+ 32,116,104,101,32,109,111,100,117,108,101,32,115,112,101,99,
+ 105,102,105,101,100,32,98,121,32,102,117,108,108,110,97,109,
+ 101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,10,
+ 32,32,32,32,32,32,32,32,82,97,105,115,101,32,90,105,
+ 112,73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,
+ 116,104,101,32,109,111,100,117,108,101,32,99,111,117,108,100,
+ 110,39,116,32,98,101,32,102,111,117,110,100,46,10,32,32,
+ 32,32,32,32,32,32,78,114,57,0,0,0,114,58,0,0,
+ 0,41,2,114,35,0,0,0,114,3,0,0,0,41,3,114,
+ 32,0,0,0,114,38,0,0,0,114,39,0,0,0,114,9,
+ 0,0,0,114,9,0,0,0,114,10,0,0,0,218,10,105,
+ 115,95,112,97,99,107,97,103,101,221,0,0,0,115,8,0,
+ 0,0,0,6,10,1,8,1,18,1,122,22,122,105,112,105,
+ 109,112,111,114,116,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,8,
+ 0,0,0,8,0,0,0,67,0,0,0,115,246,0,0,0,
+ 116,0,124,0,124,1,131,2,92,3,125,2,125,3,125,4,
+ 116,1,106,2,160,3,124,1,161,1,125,5,124,5,100,1,
+ 117,0,115,46,116,4,124,5,116,5,131,2,115,64,116,5,
+ 124,1,131,1,125,5,124,5,116,1,106,2,124,1,60,0,
+ 124,0,124,5,95,6,122,84,124,3,114,108,116,7,124,0,
+ 124,1,131,2,125,6,116,8,160,9,124,0,106,10,124,6,
+ 161,2,125,7,124,7,103,1,124,5,95,11,116,12,124,5,
+ 100,2,131,2,115,124,116,13,124,5,95,13,116,8,160,14,
+ 124,5,106,15,124,1,124,4,161,3,1,0,116,16,124,2,
+ 124,5,106,15,131,2,1,0,87,0,110,22,1,0,1,0,
+ 1,0,116,1,106,2,124,1,61,0,130,0,89,0,110,2,
+ 48,0,122,14,116,1,106,2,124,1,25,0,125,5,87,0,
+ 110,34,4,0,116,17,121,226,1,0,1,0,1,0,116,18,
+ 100,3,124,1,155,2,100,4,157,3,131,1,130,1,89,0,
+ 110,2,48,0,116,19,160,20,100,5,124,1,124,4,161,3,
+ 1,0,124,5,83,0,41,6,122,245,108,111,97,100,95,109,
+ 111,100,117,108,101,40,102,117,108,108,110,97,109,101,41,32,
+ 45,62,32,109,111,100,117,108,101,46,10,10,32,32,32,32,
+ 32,32,32,32,76,111,97,100,32,116,104,101,32,109,111,100,
+ 117,108,101,32,115,112,101,99,105,102,105,101,100,32,98,121,
+ 32,39,102,117,108,108,110,97,109,101,39,46,32,39,102,117,
+ 108,108,110,97,109,101,39,32,109,117,115,116,32,98,101,32,
+ 116,104,101,10,32,32,32,32,32,32,32,32,102,117,108,108,
+ 121,32,113,117,97,108,105,102,105,101,100,32,40,100,111,116,
+ 116,101,100,41,32,109,111,100,117,108,101,32,110,97,109,101,
+ 46,32,73,116,32,114,101,116,117,114,110,115,32,116,104,101,
+ 32,105,109,112,111,114,116,101,100,10,32,32,32,32,32,32,
+ 32,32,109,111,100,117,108,101,44,32,111,114,32,114,97,105,
+ 115,101,115,32,90,105,112,73,109,112,111,114,116,69,114,114,
+ 111,114,32,105,102,32,105,116,32,119,97,115,110,39,116,32,
+ 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,78,
+ 218,12,95,95,98,117,105,108,116,105,110,115,95,95,122,14,
+ 76,111,97,100,101,100,32,109,111,100,117,108,101,32,122,25,
+ 32,110,111,116,32,102,111,117,110,100,32,105,110,32,115,121,
+ 115,46,109,111,100,117,108,101,115,122,30,105,109,112,111,114,
+ 116,32,123,125,32,35,32,108,111,97,100,101,100,32,102,114,
+ 111,109,32,90,105,112,32,123,125,41,21,114,44,0,0,0,
+ 218,3,115,121,115,218,7,109,111,100,117,108,101,115,218,3,
+ 103,101,116,114,15,0,0,0,218,12,95,109,111,100,117,108,
+ 101,95,116,121,112,101,218,10,95,95,108,111,97,100,101,114,
+ 95,95,114,36,0,0,0,114,21,0,0,0,114,30,0,0,
+ 0,114,29,0,0,0,90,8,95,95,112,97,116,104,95,95,
+ 218,7,104,97,115,97,116,116,114,114,66,0,0,0,90,14,
+ 95,102,105,120,95,117,112,95,109,111,100,117,108,101,218,8,
+ 95,95,100,105,99,116,95,95,218,4,101,120,101,99,114,26,
+ 0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114,
+ 218,10,95,98,111,111,116,115,116,114,97,112,218,16,95,118,
+ 101,114,98,111,115,101,95,109,101,115,115,97,103,101,41,8,
+ 114,32,0,0,0,114,38,0,0,0,114,46,0,0,0,114,
+ 47,0,0,0,114,40,0,0,0,90,3,109,111,100,114,13,
+ 0,0,0,114,63,0,0,0,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,218,11,108,111,97,100,95,109,111,
+ 100,117,108,101,234,0,0,0,115,48,0,0,0,0,7,16,
+ 1,12,1,18,1,8,1,10,1,6,2,2,1,4,3,10,
+ 1,14,1,8,2,10,1,6,1,16,1,16,1,6,1,8,
+ 1,8,2,2,1,14,1,12,1,22,1,14,1,122,23,122,
+ 105,112,105,109,112,111,114,116,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,8,0,0,0,67,0,0,0,115,
+ 86,0,0,0,122,20,124,0,160,0,124,1,161,1,115,18,
+ 87,0,100,1,83,0,87,0,110,20,4,0,116,1,121,40,
+ 1,0,1,0,1,0,89,0,100,1,83,0,48,0,116,2,
+ 106,3,115,76,100,2,100,3,108,4,109,5,125,2,1,0,
+ 124,2,160,6,116,2,161,1,1,0,100,4,116,2,95,3,
+ 116,2,124,0,124,1,131,2,83,0,41,5,122,204,82,101,
+ 116,117,114,110,32,116,104,101,32,82,101,115,111,117,114,99,
+ 101,82,101,97,100,101,114,32,102,111,114,32,97,32,112,97,
+ 99,107,97,103,101,32,105,110,32,97,32,122,105,112,32,102,
+ 105,108,101,46,10,10,32,32,32,32,32,32,32,32,73,102,
+ 32,39,102,117,108,108,110,97,109,101,39,32,105,115,32,97,
+ 32,112,97,99,107,97,103,101,32,119,105,116,104,105,110,32,
+ 116,104,101,32,122,105,112,32,102,105,108,101,44,32,114,101,
+ 116,117,114,110,32,116,104,101,10,32,32,32,32,32,32,32,
+ 32,39,82,101,115,111,117,114,99,101,82,101,97,100,101,114,
+ 39,32,111,98,106,101,99,116,32,102,111,114,32,116,104,101,
+ 32,112,97,99,107,97,103,101,46,32,32,79,116,104,101,114,
+ 119,105,115,101,32,114,101,116,117,114,110,32,78,111,110,101,
+ 46,10,32,32,32,32,32,32,32,32,78,114,0,0,0,0,
+ 41,1,218,14,82,101,115,111,117,114,99,101,82,101,97,100,
+ 101,114,84,41,7,114,65,0,0,0,114,3,0,0,0,218,
+ 24,95,90,105,112,73,109,112,111,114,116,82,101,115,111,117,
+ 114,99,101,82,101,97,100,101,114,218,11,95,114,101,103,105,
+ 115,116,101,114,101,100,90,13,105,109,112,111,114,116,108,105,
+ 98,46,97,98,99,114,79,0,0,0,90,8,114,101,103,105,
+ 115,116,101,114,41,3,114,32,0,0,0,114,38,0,0,0,
+ 114,79,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
+ 10,0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,
+ 99,101,95,114,101,97,100,101,114,16,1,0,0,115,20,0,
+ 0,0,0,6,2,1,10,1,10,1,12,1,8,1,6,1,
+ 12,1,10,1,6,1,122,31,122,105,112,105,109,112,111,114,
+ 116,101,114,46,103,101,116,95,114,101,115,111,117,114,99,101,
+ 95,114,101,97,100,101,114,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,5,0,0,0,67,0,0,0,
+ 115,24,0,0,0,100,1,124,0,106,0,155,0,116,1,155,
+ 0,124,0,106,2,155,0,100,2,157,5,83,0,41,3,78,
+ 122,21,60,122,105,112,105,109,112,111,114,116,101,114,32,111,
+ 98,106,101,99,116,32,34,122,2,34,62,41,3,114,29,0,
+ 0,0,114,20,0,0,0,114,31,0,0,0,41,1,114,32,
+ 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
+ 0,0,218,8,95,95,114,101,112,114,95,95,34,1,0,0,
+ 115,2,0,0,0,0,1,122,20,122,105,112,105,109,112,111,
+ 114,116,101,114,46,95,95,114,101,112,114,95,95,41,1,78,
+ 41,1,78,41,15,114,6,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,218,7,95,95,100,111,99,95,95,114,34,0,
+ 0,0,114,41,0,0,0,114,42,0,0,0,114,48,0,0,
+ 0,114,55,0,0,0,114,56,0,0,0,114,64,0,0,0,
+ 114,65,0,0,0,114,78,0,0,0,114,82,0,0,0,114,
+ 83,0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,
+ 0,0,0,114,10,0,0,0,114,4,0,0,0,45,0,0,
+ 0,115,24,0,0,0,8,1,4,17,8,46,10,32,10,12,
+ 8,10,8,21,8,11,8,26,8,13,8,38,8,18,122,12,
+ 95,95,105,110,105,116,95,95,46,112,121,99,84,114,60,0,
+ 0,0,70,41,3,122,4,46,112,121,99,84,70,41,3,114,
+ 61,0,0,0,70,70,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,
+ 20,0,0,0,124,0,106,0,124,1,160,1,100,1,161,1,
+ 100,2,25,0,23,0,83,0,41,3,78,218,1,46,233,2,
+ 0,0,0,41,2,114,31,0,0,0,218,10,114,112,97,114,
+ 116,105,116,105,111,110,41,2,114,32,0,0,0,114,38,0,
+ 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
+ 0,114,36,0,0,0,52,1,0,0,115,2,0,0,0,0,
+ 1,114,36,0,0,0,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,
+ 18,0,0,0,124,1,116,0,23,0,125,2,124,2,124,0,
+ 106,1,118,0,83,0,169,1,78,41,2,114,20,0,0,0,
+ 114,28,0,0,0,41,3,114,32,0,0,0,114,13,0,0,
+ 0,90,7,100,105,114,112,97,116,104,114,9,0,0,0,114,
+ 9,0,0,0,114,10,0,0,0,114,37,0,0,0,56,1,
+ 0,0,115,4,0,0,0,0,4,8,2,114,37,0,0,0,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,7,0,0,
+ 0,4,0,0,0,67,0,0,0,115,56,0,0,0,116,0,
+ 124,0,124,1,131,2,125,2,116,1,68,0,93,36,92,3,
+ 125,3,125,4,125,5,124,2,124,3,23,0,125,6,124,6,
+ 124,0,106,2,118,0,114,14,124,5,2,0,1,0,83,0,
+ 113,14,100,0,83,0,114,88,0,0,0,41,3,114,36,0,
+ 0,0,218,16,95,122,105,112,95,115,101,97,114,99,104,111,
+ 114,100,101,114,114,28,0,0,0,41,7,114,32,0,0,0,
+ 114,38,0,0,0,114,13,0,0,0,218,6,115,117,102,102,
+ 105,120,218,10,105,115,98,121,116,101,99,111,100,101,114,47,
+ 0,0,0,114,63,0,0,0,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,114,35,0,0,0,65,1,0,0,
+ 115,12,0,0,0,0,1,10,1,14,1,8,1,10,1,10,
+ 1,114,35,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,26,0,0,0,9,0,0,0,67,0,0,0,115,
+ 2,5,0,0,122,14,116,0,160,1,124,0,161,1,125,1,
+ 87,0,110,36,4,0,116,2,121,50,1,0,1,0,1,0,
+ 116,3,100,1,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,89,0,110,2,48,0,124,1,144,4,143,164,1,0,
+ 122,36,124,1,160,4,116,5,11,0,100,3,161,2,1,0,
+ 124,1,160,6,161,0,125,2,124,1,160,7,116,5,161,1,
+ 125,3,87,0,110,36,4,0,116,2,121,132,1,0,1,0,
+ 1,0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
+ 141,2,130,1,89,0,110,2,48,0,116,8,124,3,131,1,
+ 116,5,107,3,114,164,116,3,100,4,124,0,155,2,157,2,
+ 124,0,100,2,141,2,130,1,124,3,100,0,100,5,133,2,
+ 25,0,116,9,107,3,144,1,114,170,122,24,124,1,160,4,
+ 100,6,100,3,161,2,1,0,124,1,160,6,161,0,125,4,
+ 87,0,110,36,4,0,116,2,121,242,1,0,1,0,1,0,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,89,0,110,2,48,0,116,10,124,4,116,11,24,0,
+ 116,5,24,0,100,6,131,2,125,5,122,22,124,1,160,4,
+ 124,5,161,1,1,0,124,1,160,7,161,0,125,6,87,0,
+ 110,38,4,0,116,2,144,1,121,66,1,0,1,0,1,0,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,89,0,110,2,48,0,124,6,160,12,116,9,161,1,
+ 125,7,124,7,100,6,107,0,144,1,114,106,116,3,100,7,
+ 124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,6,
+ 124,7,124,7,116,5,23,0,133,2,25,0,125,3,116,8,
+ 124,3,131,1,116,5,107,3,144,1,114,154,116,3,100,8,
+ 124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,4,
+ 116,8,124,6,131,1,24,0,124,7,23,0,125,2,116,13,
+ 124,3,100,9,100,10,133,2,25,0,131,1,125,8,116,13,
+ 124,3,100,10,100,11,133,2,25,0,131,1,125,9,124,2,
+ 124,8,107,0,144,1,114,230,116,3,100,12,124,0,155,2,
+ 157,2,124,0,100,2,141,2,130,1,124,2,124,9,107,0,
+ 144,2,114,2,116,3,100,13,124,0,155,2,157,2,124,0,
+ 100,2,141,2,130,1,124,2,124,8,56,0,125,2,124,2,
+ 124,9,24,0,125,10,124,10,100,6,107,0,144,2,114,46,
+ 116,3,100,14,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,105,0,125,11,100,6,125,12,122,14,124,1,160,4,
+ 124,2,161,1,1,0,87,0,110,38,4,0,116,2,144,2,
+ 121,106,1,0,1,0,1,0,116,3,100,4,124,0,155,2,
+ 157,2,124,0,100,2,141,2,130,1,89,0,110,2,48,0,
+ 124,1,160,7,100,15,161,1,125,3,116,8,124,3,131,1,
+ 100,5,107,0,144,2,114,140,116,14,100,16,131,1,130,1,
+ 124,3,100,0,100,5,133,2,25,0,100,17,107,3,144,2,
+ 114,162,144,4,113,208,116,8,124,3,131,1,100,15,107,3,
+ 144,2,114,184,116,14,100,16,131,1,130,1,116,15,124,3,
+ 100,18,100,19,133,2,25,0,131,1,125,13,116,15,124,3,
+ 100,19,100,9,133,2,25,0,131,1,125,14,116,15,124,3,
+ 100,9,100,20,133,2,25,0,131,1,125,15,116,15,124,3,
+ 100,20,100,10,133,2,25,0,131,1,125,16,116,13,124,3,
+ 100,10,100,11,133,2,25,0,131,1,125,17,116,13,124,3,
+ 100,11,100,21,133,2,25,0,131,1,125,18,116,13,124,3,
+ 100,21,100,22,133,2,25,0,131,1,125,4,116,15,124,3,
+ 100,22,100,23,133,2,25,0,131,1,125,19,116,15,124,3,
+ 100,23,100,24,133,2,25,0,131,1,125,20,116,15,124,3,
+ 100,24,100,25,133,2,25,0,131,1,125,21,116,13,124,3,
+ 100,26,100,15,133,2,25,0,131,1,125,22,124,19,124,20,
+ 23,0,124,21,23,0,125,8,124,22,124,9,107,4,144,3,
+ 114,144,116,3,100,27,124,0,155,2,157,2,124,0,100,2,
+ 141,2,130,1,124,22,124,10,55,0,125,22,122,14,124,1,
+ 160,7,124,19,161,1,125,23,87,0,110,38,4,0,116,2,
+ 144,3,121,204,1,0,1,0,1,0,116,3,100,4,124,0,
+ 155,2,157,2,124,0,100,2,141,2,130,1,89,0,110,2,
+ 48,0,116,8,124,23,131,1,124,19,107,3,144,3,114,238,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,122,50,116,8,124,1,160,7,124,8,124,19,24,0,
+ 161,1,131,1,124,8,124,19,24,0,107,3,144,4,114,30,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,87,0,110,38,4,0,116,2,144,4,121,70,1,0,
+ 1,0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,
+ 100,2,141,2,130,1,89,0,110,2,48,0,124,13,100,28,
+ 64,0,144,4,114,92,124,23,160,16,161,0,125,23,110,52,
+ 122,14,124,23,160,16,100,29,161,1,125,23,87,0,110,36,
+ 4,0,116,17,144,4,121,142,1,0,1,0,1,0,124,23,
+ 160,16,100,30,161,1,160,18,116,19,161,1,125,23,89,0,
+ 110,2,48,0,124,23,160,20,100,31,116,21,161,2,125,23,
+ 116,22,160,23,124,0,124,23,161,2,125,24,124,24,124,14,
+ 124,18,124,4,124,22,124,15,124,16,124,17,102,8,125,25,
+ 124,25,124,11,124,23,60,0,124,12,100,32,55,0,125,12,
+ 144,2,113,108,87,0,100,0,4,0,4,0,131,3,1,0,
+ 110,18,49,0,144,4,115,230,48,0,1,0,1,0,1,0,
+ 89,0,1,0,116,24,160,25,100,33,124,12,124,0,161,3,
+ 1,0,124,11,83,0,41,34,78,122,21,99,97,110,39,116,
+ 32,111,112,101,110,32,90,105,112,32,102,105,108,101,58,32,
+ 114,12,0,0,0,114,86,0,0,0,250,21,99,97,110,39,
+ 116,32,114,101,97,100,32,90,105,112,32,102,105,108,101,58,
+ 32,233,4,0,0,0,114,0,0,0,0,122,16,110,111,116,
+ 32,97,32,90,105,112,32,102,105,108,101,58,32,122,18,99,
+ 111,114,114,117,112,116,32,90,105,112,32,102,105,108,101,58,
+ 32,233,12,0,0,0,233,16,0,0,0,233,20,0,0,0,
+ 122,28,98,97,100,32,99,101,110,116,114,97,108,32,100,105,
+ 114,101,99,116,111,114,121,32,115,105,122,101,58,32,122,30,
+ 98,97,100,32,99,101,110,116,114,97,108,32,100,105,114,101,
+ 99,116,111,114,121,32,111,102,102,115,101,116,58,32,122,38,
+ 98,97,100,32,99,101,110,116,114,97,108,32,100,105,114,101,
+ 99,116,111,114,121,32,115,105,122,101,32,111,114,32,111,102,
+ 102,115,101,116,58,32,233,46,0,0,0,250,27,69,79,70,
+ 32,114,101,97,100,32,119,104,101,114,101,32,110,111,116,32,
+ 101,120,112,101,99,116,101,100,115,4,0,0,0,80,75,1,
+ 2,233,8,0,0,0,233,10,0,0,0,233,14,0,0,0,
+ 233,24,0,0,0,233,28,0,0,0,233,30,0,0,0,233,
+ 32,0,0,0,233,34,0,0,0,233,42,0,0,0,122,25,
+ 98,97,100,32,108,111,99,97,108,32,104,101,97,100,101,114,
+ 32,111,102,102,115,101,116,58,32,105,0,8,0,0,218,5,
+ 97,115,99,105,105,90,6,108,97,116,105,110,49,250,1,47,
+ 114,5,0,0,0,122,33,122,105,112,105,109,112,111,114,116,
+ 58,32,102,111,117,110,100,32,123,125,32,110,97,109,101,115,
+ 32,105,110,32,123,33,114,125,41,26,218,3,95,105,111,218,
+ 9,111,112,101,110,95,99,111,100,101,114,22,0,0,0,114,
+ 3,0,0,0,218,4,115,101,101,107,218,20,69,78,68,95,
+ 67,69,78,84,82,65,76,95,68,73,82,95,83,73,90,69,
+ 90,4,116,101,108,108,218,4,114,101,97,100,114,51,0,0,
+ 0,218,18,83,84,82,73,78,71,95,69,78,68,95,65,82,
+ 67,72,73,86,69,218,3,109,97,120,218,15,77,65,88,95,
+ 67,79,77,77,69,78,84,95,76,69,78,218,5,114,102,105,
+ 110,100,114,2,0,0,0,218,8,69,79,70,69,114,114,111,
+ 114,114,1,0,0,0,114,62,0,0,0,218,18,85,110,105,
+ 99,111,100,101,68,101,99,111,100,101,69,114,114,111,114,218,
+ 9,116,114,97,110,115,108,97,116,101,218,11,99,112,52,51,
+ 55,95,116,97,98,108,101,114,19,0,0,0,114,20,0,0,
+ 0,114,21,0,0,0,114,30,0,0,0,114,76,0,0,0,
+ 114,77,0,0,0,41,26,114,29,0,0,0,218,2,102,112,
+ 90,15,104,101,97,100,101,114,95,112,111,115,105,116,105,111,
+ 110,218,6,98,117,102,102,101,114,218,9,102,105,108,101,95,
+ 115,105,122,101,90,17,109,97,120,95,99,111,109,109,101,110,
+ 116,95,115,116,97,114,116,218,4,100,97,116,97,90,3,112,
+ 111,115,218,11,104,101,97,100,101,114,95,115,105,122,101,90,
+ 13,104,101,97,100,101,114,95,111,102,102,115,101,116,90,10,
+ 97,114,99,95,111,102,102,115,101,116,114,33,0,0,0,218,
+ 5,99,111,117,110,116,218,5,102,108,97,103,115,218,8,99,
+ 111,109,112,114,101,115,115,218,4,116,105,109,101,218,4,100,
+ 97,116,101,218,3,99,114,99,218,9,100,97,116,97,95,115,
+ 105,122,101,218,9,110,97,109,101,95,115,105,122,101,218,10,
+ 101,120,116,114,97,95,115,105,122,101,90,12,99,111,109,109,
+ 101,110,116,95,115,105,122,101,218,11,102,105,108,101,95,111,
+ 102,102,115,101,116,114,59,0,0,0,114,13,0,0,0,218,
+ 1,116,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
+ 0,114,27,0,0,0,96,1,0,0,115,212,0,0,0,0,
+ 1,2,1,14,1,12,1,24,2,8,1,2,1,14,1,8,
+ 1,14,1,12,1,24,1,12,1,18,1,18,3,2,1,12,
+ 1,12,1,12,1,10,1,2,255,12,2,8,1,2,255,2,
+ 1,2,255,4,2,2,1,10,1,12,1,14,1,10,1,2,
+ 255,12,2,10,1,10,1,10,1,2,255,6,2,16,1,14,
+ 1,10,1,2,255,6,2,16,2,16,1,16,1,10,1,18,
+ 1,10,1,18,1,8,1,8,1,10,1,18,2,4,2,4,
+ 1,2,1,14,1,14,1,24,2,10,1,14,1,8,2,18,
+ 1,4,1,14,1,8,1,16,1,16,1,16,1,16,1,16,
+ 1,16,1,16,1,16,1,16,1,16,1,16,1,12,1,10,
+ 1,18,1,8,2,2,1,14,1,14,1,24,1,14,1,18,
+ 4,2,1,28,1,22,1,14,1,24,2,10,2,10,3,2,
+ 1,14,1,14,1,22,2,12,1,12,1,20,1,8,1,44,
+ 1,14,1,114,27,0,0,0,117,190,1,0,0,0,1,2,
+ 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,
+ 19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,
+ 35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
+ 51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
+ 67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,
+ 83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,
+ 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
+ 115,116,117,118,119,120,121,122,123,124,125,126,127,195,135,195,
+ 188,195,169,195,162,195,164,195,160,195,165,195,167,195,170,195,
+ 171,195,168,195,175,195,174,195,172,195,132,195,133,195,137,195,
+ 166,195,134,195,180,195,182,195,178,195,187,195,185,195,191,195,
+ 150,195,156,194,162,194,163,194,165,226,130,167,198,146,195,161,
+ 195,173,195,179,195,186,195,177,195,145,194,170,194,186,194,191,
+ 226,140,144,194,172,194,189,194,188,194,161,194,171,194,187,226,
+ 150,145,226,150,146,226,150,147,226,148,130,226,148,164,226,149,
+ 161,226,149,162,226,149,150,226,149,149,226,149,163,226,149,145,
+ 226,149,151,226,149,157,226,149,156,226,149,155,226,148,144,226,
+ 148,148,226,148,180,226,148,172,226,148,156,226,148,128,226,148,
+ 188,226,149,158,226,149,159,226,149,154,226,149,148,226,149,169,
+ 226,149,166,226,149,160,226,149,144,226,149,172,226,149,167,226,
+ 149,168,226,149,164,226,149,165,226,149,153,226,149,152,226,149,
+ 146,226,149,147,226,149,171,226,149,170,226,148,152,226,148,140,
+ 226,150,136,226,150,132,226,150,140,226,150,144,226,150,128,206,
+ 177,195,159,206,147,207,128,206,163,207,131,194,181,207,132,206,
+ 166,206,152,206,169,206,180,226,136,158,207,134,206,181,226,136,
+ 169,226,137,161,194,177,226,137,165,226,137,164,226,140,160,226,
+ 140,161,195,183,226,137,136,194,176,226,136,153,194,183,226,136,
+ 154,226,129,191,194,178,226,150,160,194,160,99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,
+ 67,0,0,0,115,110,0,0,0,116,0,114,22,116,1,160,
+ 2,100,1,161,1,1,0,116,3,100,2,131,1,130,1,100,
+ 3,97,0,122,62,122,16,100,4,100,5,108,4,109,5,125,
+ 0,1,0,87,0,110,36,4,0,116,6,121,80,1,0,1,
+ 0,1,0,116,1,160,2,100,1,161,1,1,0,116,3,100,
+ 2,131,1,130,1,89,0,110,2,48,0,87,0,100,6,97,
+ 0,110,6,100,6,97,0,48,0,116,1,160,2,100,7,161,
+ 1,1,0,124,0,83,0,41,8,78,122,27,122,105,112,105,
+ 109,112,111,114,116,58,32,122,108,105,98,32,85,78,65,86,
+ 65,73,76,65,66,76,69,250,41,99,97,110,39,116,32,100,
+ 101,99,111,109,112,114,101,115,115,32,100,97,116,97,59,32,
+ 122,108,105,98,32,110,111,116,32,97,118,97,105,108,97,98,
+ 108,101,84,114,0,0,0,0,169,1,218,10,100,101,99,111,
+ 109,112,114,101,115,115,70,122,25,122,105,112,105,109,112,111,
+ 114,116,58,32,122,108,105,98,32,97,118,97,105,108,97,98,
+ 108,101,41,7,218,15,95,105,109,112,111,114,116,105,110,103,
+ 95,122,108,105,98,114,76,0,0,0,114,77,0,0,0,114,
+ 3,0,0,0,90,4,122,108,105,98,114,141,0,0,0,218,
+ 9,69,120,99,101,112,116,105,111,110,114,140,0,0,0,114,
+ 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,20,
+ 95,103,101,116,95,100,101,99,111,109,112,114,101,115,115,95,
+ 102,117,110,99,254,1,0,0,115,24,0,0,0,0,2,4,
+ 3,10,1,8,2,4,1,4,1,16,1,12,1,10,1,16,
+ 2,12,2,10,1,114,144,0,0,0,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,17,0,0,0,9,0,0,0,67,
+ 0,0,0,115,144,1,0,0,124,1,92,8,125,2,125,3,
+ 125,4,125,5,125,6,125,7,125,8,125,9,124,4,100,1,
+ 107,0,114,36,116,0,100,2,131,1,130,1,116,1,160,2,
+ 124,0,161,1,144,1,143,14,125,10,122,14,124,10,160,3,
+ 124,6,161,1,1,0,87,0,110,36,4,0,116,4,121,100,
+ 1,0,1,0,1,0,116,0,100,3,124,0,155,2,157,2,
+ 124,0,100,4,141,2,130,1,89,0,110,2,48,0,124,10,
+ 160,5,100,5,161,1,125,11,116,6,124,11,131,1,100,5,
+ 107,3,114,132,116,7,100,6,131,1,130,1,124,11,100,0,
+ 100,7,133,2,25,0,100,8,107,3,114,166,116,0,100,9,
+ 124,0,155,2,157,2,124,0,100,4,141,2,130,1,116,8,
+ 124,11,100,10,100,11,133,2,25,0,131,1,125,12,116,8,
+ 124,11,100,11,100,5,133,2,25,0,131,1,125,13,100,5,
+ 124,12,23,0,124,13,23,0,125,14,124,6,124,14,55,0,
+ 125,6,122,14,124,10,160,3,124,6,161,1,1,0,87,0,
+ 110,38,4,0,116,4,144,1,121,14,1,0,1,0,1,0,
+ 116,0,100,3,124,0,155,2,157,2,124,0,100,4,141,2,
+ 130,1,89,0,110,2,48,0,124,10,160,5,124,4,161,1,
+ 125,15,116,6,124,15,131,1,124,4,107,3,144,1,114,48,
+ 116,4,100,12,131,1,130,1,87,0,100,0,4,0,4,0,
+ 131,3,1,0,110,18,49,0,144,1,115,70,48,0,1,0,
+ 1,0,1,0,89,0,1,0,124,3,100,1,107,2,144,1,
+ 114,94,124,15,83,0,122,10,116,9,131,0,125,16,87,0,
+ 110,28,4,0,116,10,144,1,121,132,1,0,1,0,1,0,
+ 116,0,100,13,131,1,130,1,89,0,110,2,48,0,124,16,
+ 124,15,100,14,131,2,83,0,41,15,78,114,0,0,0,0,
+ 122,18,110,101,103,97,116,105,118,101,32,100,97,116,97,32,
+ 115,105,122,101,114,92,0,0,0,114,12,0,0,0,114,104,
+ 0,0,0,114,98,0,0,0,114,93,0,0,0,115,4,0,
+ 0,0,80,75,3,4,122,23,98,97,100,32,108,111,99,97,
+ 108,32,102,105,108,101,32,104,101,97,100,101,114,58,32,233,
+ 26,0,0,0,114,103,0,0,0,122,26,122,105,112,105,109,
+ 112,111,114,116,58,32,99,97,110,39,116,32,114,101,97,100,
+ 32,100,97,116,97,114,139,0,0,0,105,241,255,255,255,41,
+ 11,114,3,0,0,0,114,110,0,0,0,114,111,0,0,0,
+ 114,112,0,0,0,114,22,0,0,0,114,114,0,0,0,114,
+ 51,0,0,0,114,119,0,0,0,114,1,0,0,0,114,144,
+ 0,0,0,114,143,0,0,0,41,17,114,29,0,0,0,114,
+ 54,0,0,0,90,8,100,97,116,97,112,97,116,104,114,130,
+ 0,0,0,114,134,0,0,0,114,125,0,0,0,114,137,0,
+ 0,0,114,131,0,0,0,114,132,0,0,0,114,133,0,0,
+ 0,114,123,0,0,0,114,124,0,0,0,114,135,0,0,0,
+ 114,136,0,0,0,114,127,0,0,0,90,8,114,97,119,95,
+ 100,97,116,97,114,141,0,0,0,114,9,0,0,0,114,9,
+ 0,0,0,114,10,0,0,0,114,52,0,0,0,19,2,0,
+ 0,115,62,0,0,0,0,1,20,1,8,1,8,2,14,2,
+ 2,1,14,1,12,1,24,1,10,1,12,1,8,2,16,2,
+ 18,2,16,1,16,1,12,1,8,1,2,1,14,1,14,1,
+ 24,1,10,1,14,1,40,2,10,2,4,3,2,1,10,1,
+ 14,1,14,1,114,52,0,0,0,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,116,0,124,0,124,1,24,0,131,
+ 1,100,1,107,1,83,0,41,2,78,114,5,0,0,0,41,
+ 1,218,3,97,98,115,41,2,90,2,116,49,90,2,116,50,
+ 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,
+ 9,95,101,113,95,109,116,105,109,101,65,2,0,0,115,2,
+ 0,0,0,0,2,114,147,0,0,0,99,5,0,0,0,0,
+ 0,0,0,0,0,0,0,14,0,0,0,8,0,0,0,67,
+ 0,0,0,115,56,1,0,0,124,3,124,2,100,1,156,2,
+ 125,5,122,18,116,0,160,1,124,4,124,3,124,5,161,3,
+ 125,6,87,0,110,20,4,0,116,2,121,48,1,0,1,0,
+ 1,0,89,0,100,0,83,0,48,0,124,6,100,2,64,0,
+ 100,3,107,3,125,7,124,7,114,178,124,6,100,4,64,0,
+ 100,3,107,3,125,8,116,3,106,4,100,5,107,3,114,176,
+ 124,8,115,102,116,3,106,4,100,6,107,2,114,176,116,5,
+ 124,0,124,2,131,2,125,9,124,9,100,0,117,1,114,176,
+ 116,3,160,6,116,0,106,7,124,9,161,2,125,10,122,20,
+ 116,0,160,8,124,4,124,10,124,3,124,5,161,4,1,0,
+ 87,0,110,20,4,0,116,2,121,174,1,0,1,0,1,0,
+ 89,0,100,0,83,0,48,0,110,84,116,9,124,0,124,2,
+ 131,2,92,2,125,11,125,12,124,11,144,1,114,6,116,10,
+ 116,11,124,4,100,7,100,8,133,2,25,0,131,1,124,11,
+ 131,2,114,242,116,11,124,4,100,8,100,9,133,2,25,0,
+ 131,1,124,12,107,3,144,1,114,6,116,12,160,13,100,10,
+ 124,3,155,2,157,2,161,1,1,0,100,0,83,0,116,14,
+ 160,15,124,4,100,9,100,0,133,2,25,0,161,1,125,13,
+ 116,16,124,13,116,17,131,2,144,1,115,52,116,18,100,11,
+ 124,1,155,2,100,12,157,3,131,1,130,1,124,13,83,0,
+ 41,13,78,41,2,114,59,0,0,0,114,13,0,0,0,114,
+ 5,0,0,0,114,0,0,0,0,114,86,0,0,0,90,5,
+ 110,101,118,101,114,90,6,97,108,119,97,121,115,114,99,0,
+ 0,0,114,94,0,0,0,114,95,0,0,0,122,22,98,121,
+ 116,101,99,111,100,101,32,105,115,32,115,116,97,108,101,32,
+ 102,111,114,32,122,16,99,111,109,112,105,108,101,100,32,109,
+ 111,100,117,108,101,32,122,21,32,105,115,32,110,111,116,32,
+ 97,32,99,111,100,101,32,111,98,106,101,99,116,41,19,114,
+ 21,0,0,0,90,13,95,99,108,97,115,115,105,102,121,95,
+ 112,121,99,114,75,0,0,0,218,4,95,105,109,112,90,21,
+ 99,104,101,99,107,95,104,97,115,104,95,98,97,115,101,100,
+ 95,112,121,99,115,218,15,95,103,101,116,95,112,121,99,95,
+ 115,111,117,114,99,101,218,11,115,111,117,114,99,101,95,104,
+ 97,115,104,90,17,95,82,65,87,95,77,65,71,73,67,95,
+ 78,85,77,66,69,82,90,18,95,118,97,108,105,100,97,116,
+ 101,95,104,97,115,104,95,112,121,99,218,29,95,103,101,116,
+ 95,109,116,105,109,101,95,97,110,100,95,115,105,122,101,95,
+ 111,102,95,115,111,117,114,99,101,114,147,0,0,0,114,2,
+ 0,0,0,114,76,0,0,0,114,77,0,0,0,218,7,109,
+ 97,114,115,104,97,108,90,5,108,111,97,100,115,114,15,0,
+ 0,0,218,10,95,99,111,100,101,95,116,121,112,101,218,9,
+ 84,121,112,101,69,114,114,111,114,41,14,114,32,0,0,0,
+ 114,53,0,0,0,114,63,0,0,0,114,38,0,0,0,114,
+ 126,0,0,0,90,11,101,120,99,95,100,101,116,97,105,108,
+ 115,114,129,0,0,0,90,10,104,97,115,104,95,98,97,115,
+ 101,100,90,12,99,104,101,99,107,95,115,111,117,114,99,101,
+ 90,12,115,111,117,114,99,101,95,98,121,116,101,115,114,150,
+ 0,0,0,90,12,115,111,117,114,99,101,95,109,116,105,109,
+ 101,90,11,115,111,117,114,99,101,95,115,105,122,101,114,46,
+ 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
+ 0,0,218,15,95,117,110,109,97,114,115,104,97,108,95,99,
+ 111,100,101,75,2,0,0,115,82,0,0,0,0,2,2,1,
+ 2,254,6,5,2,1,18,1,12,1,8,2,12,1,4,1,
+ 12,1,10,1,2,255,2,1,8,255,2,2,10,1,8,1,
+ 4,1,4,1,2,254,4,5,2,1,4,1,8,255,8,2,
+ 12,1,10,3,8,255,6,3,6,3,22,1,18,255,4,2,
+ 4,1,8,255,4,2,4,2,18,1,12,1,16,1,114,155,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 1,0,0,0,4,0,0,0,67,0,0,0,115,28,0,0,
+ 0,124,0,160,0,100,1,100,2,161,2,125,0,124,0,160,
+ 0,100,3,100,2,161,2,125,0,124,0,83,0,41,4,78,
+ 115,2,0,0,0,13,10,243,1,0,0,0,10,243,1,0,
+ 0,0,13,41,1,114,19,0,0,0,41,1,218,6,115,111,
+ 117,114,99,101,114,9,0,0,0,114,9,0,0,0,114,10,
+ 0,0,0,218,23,95,110,111,114,109,97,108,105,122,101,95,
+ 108,105,110,101,95,101,110,100,105,110,103,115,126,2,0,0,
+ 115,6,0,0,0,0,1,12,1,12,1,114,159,0,0,0,
+ 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,24,0,0,0,116,0,
+ 124,1,131,1,125,1,116,1,124,1,124,0,100,1,100,2,
+ 100,3,141,4,83,0,41,4,78,114,74,0,0,0,84,41,
+ 1,90,12,100,111,110,116,95,105,110,104,101,114,105,116,41,
+ 2,114,159,0,0,0,218,7,99,111,109,112,105,108,101,41,
+ 2,114,53,0,0,0,114,158,0,0,0,114,9,0,0,0,
+ 114,9,0,0,0,114,10,0,0,0,218,15,95,99,111,109,
+ 112,105,108,101,95,115,111,117,114,99,101,133,2,0,0,115,
+ 4,0,0,0,0,1,8,1,114,161,0,0,0,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,11,0,
+ 0,0,67,0,0,0,115,68,0,0,0,116,0,160,1,124,
+ 0,100,1,63,0,100,2,23,0,124,0,100,3,63,0,100,
+ 4,64,0,124,0,100,5,64,0,124,1,100,6,63,0,124,
+ 1,100,3,63,0,100,7,64,0,124,1,100,5,64,0,100,
+ 8,20,0,100,9,100,9,100,9,102,9,161,1,83,0,41,
+ 10,78,233,9,0,0,0,105,188,7,0,0,233,5,0,0,
+ 0,233,15,0,0,0,233,31,0,0,0,233,11,0,0,0,
+ 233,63,0,0,0,114,86,0,0,0,114,14,0,0,0,41,
+ 2,114,131,0,0,0,90,6,109,107,116,105,109,101,41,2,
+ 218,1,100,114,138,0,0,0,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,218,14,95,112,97,114,115,101,95,
+ 100,111,115,116,105,109,101,139,2,0,0,115,18,0,0,0,
+ 0,1,4,1,10,1,10,1,6,1,6,1,10,1,10,1,
+ 6,249,114,169,0,0,0,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,6,0,0,0,10,0,0,0,67,0,0,0,
+ 115,114,0,0,0,122,82,124,1,100,1,100,0,133,2,25,
+ 0,100,2,118,0,115,22,74,0,130,1,124,1,100,0,100,
+ 1,133,2,25,0,125,1,124,0,106,0,124,1,25,0,125,
+ 2,124,2,100,3,25,0,125,3,124,2,100,4,25,0,125,
+ 4,124,2,100,5,25,0,125,5,116,1,124,4,124,3,131,
+ 2,124,5,102,2,87,0,83,0,4,0,116,2,116,3,116,
+ 4,102,3,121,108,1,0,1,0,1,0,89,0,100,6,83,
+ 0,48,0,100,0,83,0,41,7,78,114,14,0,0,0,169,
+ 2,218,1,99,218,1,111,114,163,0,0,0,233,6,0,0,
+ 0,233,3,0,0,0,41,2,114,0,0,0,0,114,0,0,
+ 0,0,41,5,114,28,0,0,0,114,169,0,0,0,114,26,
+ 0,0,0,218,10,73,110,100,101,120,69,114,114,111,114,114,
+ 154,0,0,0,41,6,114,32,0,0,0,114,13,0,0,0,
+ 114,54,0,0,0,114,131,0,0,0,114,132,0,0,0,90,
+ 17,117,110,99,111,109,112,114,101,115,115,101,100,95,115,105,
+ 122,101,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
+ 0,114,151,0,0,0,152,2,0,0,115,20,0,0,0,0,
+ 1,2,2,20,1,12,1,10,3,8,1,8,1,8,1,16,
+ 1,18,1,114,151,0,0,0,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,84,0,0,0,124,1,100,1,100,0,133,2,25,0,
+ 100,2,118,0,115,20,74,0,130,1,124,1,100,0,100,1,
+ 133,2,25,0,125,1,122,14,124,0,106,0,124,1,25,0,
+ 125,2,87,0,110,20,4,0,116,1,121,66,1,0,1,0,
+ 1,0,89,0,100,0,83,0,48,0,116,2,124,0,106,3,
+ 124,2,131,2,83,0,100,0,83,0,41,3,78,114,14,0,
+ 0,0,114,170,0,0,0,41,4,114,28,0,0,0,114,26,
+ 0,0,0,114,52,0,0,0,114,29,0,0,0,41,3,114,
+ 32,0,0,0,114,13,0,0,0,114,54,0,0,0,114,9,
+ 0,0,0,114,9,0,0,0,114,10,0,0,0,114,149,0,
+ 0,0,171,2,0,0,115,14,0,0,0,0,2,20,1,12,
+ 2,2,1,14,1,12,1,8,2,114,149,0,0,0,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,9,
+ 0,0,0,67,0,0,0,115,196,0,0,0,116,0,124,0,
+ 124,1,131,2,125,2,116,1,68,0,93,158,92,3,125,3,
+ 125,4,125,5,124,2,124,3,23,0,125,6,116,2,106,3,
+ 100,1,124,0,106,4,116,5,124,6,100,2,100,3,141,5,
+ 1,0,122,14,124,0,106,6,124,6,25,0,125,7,87,0,
+ 110,18,4,0,116,7,121,86,1,0,1,0,1,0,89,0,
+ 113,14,48,0,124,7,100,4,25,0,125,8,116,8,124,0,
+ 106,4,124,7,131,2,125,9,124,4,114,130,116,9,124,0,
+ 124,8,124,6,124,1,124,9,131,5,125,10,110,10,116,10,
+ 124,8,124,9,131,2,125,10,124,10,100,0,117,0,114,150,
+ 113,14,124,7,100,4,25,0,125,8,124,10,124,5,124,8,
+ 102,3,2,0,1,0,83,0,113,14,116,11,100,5,124,1,
+ 155,2,157,2,124,1,100,6,141,2,130,1,100,0,83,0,
+ 41,7,78,122,13,116,114,121,105,110,103,32,123,125,123,125,
+ 123,125,114,86,0,0,0,41,1,90,9,118,101,114,98,111,
+ 115,105,116,121,114,0,0,0,0,114,57,0,0,0,114,58,
+ 0,0,0,41,12,114,36,0,0,0,114,89,0,0,0,114,
+ 76,0,0,0,114,77,0,0,0,114,29,0,0,0,114,20,
+ 0,0,0,114,28,0,0,0,114,26,0,0,0,114,52,0,
+ 0,0,114,155,0,0,0,114,161,0,0,0,114,3,0,0,
+ 0,41,11,114,32,0,0,0,114,38,0,0,0,114,13,0,
+ 0,0,114,90,0,0,0,114,91,0,0,0,114,47,0,0,
+ 0,114,63,0,0,0,114,54,0,0,0,114,40,0,0,0,
+ 114,126,0,0,0,114,46,0,0,0,114,9,0,0,0,114,
+ 9,0,0,0,114,10,0,0,0,114,44,0,0,0,186,2,
+ 0,0,115,36,0,0,0,0,1,10,1,14,1,8,1,22,
+ 1,2,1,14,1,12,1,6,2,8,1,12,1,4,1,18,
+ 2,10,1,8,3,2,1,8,1,16,2,114,44,0,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,60,0,0,0,101,0,
+ 90,1,100,0,90,2,100,1,90,3,100,2,90,4,100,3,
+ 100,4,132,0,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,83,0,41,14,114,80,0,0,
+ 0,122,165,80,114,105,118,97,116,101,32,99,108,97,115,115,
+ 32,117,115,101,100,32,116,111,32,115,117,112,112,111,114,116,
+ 32,90,105,112,73,109,112,111,114,116,46,103,101,116,95,114,
+ 101,115,111,117,114,99,101,95,114,101,97,100,101,114,40,41,
+ 46,10,10,32,32,32,32,84,104,105,115,32,99,108,97,115,
+ 115,32,105,115,32,97,108,108,111,119,101,100,32,116,111,32,
+ 114,101,102,101,114,101,110,99,101,32,97,108,108,32,116,104,
+ 101,32,105,110,110,97,114,100,115,32,97,110,100,32,112,114,
+ 105,118,97,116,101,32,112,97,114,116,115,32,111,102,10,32,
+ 32,32,32,116,104,101,32,122,105,112,105,109,112,111,114,116,
+ 101,114,46,10,32,32,32,32,70,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,88,0,0,0,41,2,114,4,
+ 0,0,0,114,38,0,0,0,41,3,114,32,0,0,0,114,
+ 4,0,0,0,114,38,0,0,0,114,9,0,0,0,114,9,
+ 0,0,0,114,10,0,0,0,114,34,0,0,0,220,2,0,
+ 0,115,4,0,0,0,0,1,6,1,122,33,95,90,105,112,
+ 73,109,112,111,114,116,82,101,115,111,117,114,99,101,82,101,
+ 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,5,0,0,0,8,0,
+ 0,0,67,0,0,0,115,90,0,0,0,124,0,106,0,160,
+ 1,100,1,100,2,161,2,125,2,124,2,155,0,100,2,124,
+ 1,155,0,157,3,125,3,100,3,100,4,108,2,109,3,125,
+ 4,1,0,122,18,124,4,124,0,106,4,160,5,124,3,161,
+ 1,131,1,87,0,83,0,4,0,116,6,121,84,1,0,1,
+ 0,1,0,116,7,124,3,131,1,130,1,89,0,110,2,48,
+ 0,100,0,83,0,41,5,78,114,85,0,0,0,114,109,0,
+ 0,0,114,0,0,0,0,41,1,218,7,66,121,116,101,115,
+ 73,79,41,8,114,38,0,0,0,114,19,0,0,0,90,2,
+ 105,111,114,176,0,0,0,114,4,0,0,0,114,55,0,0,
+ 0,114,22,0,0,0,218,17,70,105,108,101,78,111,116,70,
+ 111,117,110,100,69,114,114,111,114,41,5,114,32,0,0,0,
+ 218,8,114,101,115,111,117,114,99,101,218,16,102,117,108,108,
+ 110,97,109,101,95,97,115,95,112,97,116,104,114,13,0,0,
+ 0,114,176,0,0,0,114,9,0,0,0,114,9,0,0,0,
+ 114,10,0,0,0,218,13,111,112,101,110,95,114,101,115,111,
+ 117,114,99,101,224,2,0,0,115,14,0,0,0,0,1,14,
+ 1,14,1,12,1,2,1,18,1,12,1,122,38,95,90,105,
+ 112,73,109,112,111,114,116,82,101,115,111,117,114,99,101,82,
+ 101,97,100,101,114,46,111,112,101,110,95,114,101,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,115,8,0,0,
+ 0,116,0,130,1,100,0,83,0,114,88,0,0,0,41,1,
+ 114,177,0,0,0,41,2,114,32,0,0,0,114,178,0,0,
+ 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
+ 218,13,114,101,115,111,117,114,99,101,95,112,97,116,104,233,
+ 2,0,0,115,2,0,0,0,0,4,122,38,95,90,105,112,
+ 73,109,112,111,114,116,82,101,115,111,117,114,99,101,82,101,
+ 97,100,101,114,46,114,101,115,111,117,114,99,101,95,112,97,
+ 116,104,99,2,0,0,0,0,0,0,0,0,0,0,0,4,
+ 0,0,0,8,0,0,0,67,0,0,0,115,70,0,0,0,
+ 124,0,106,0,160,1,100,1,100,2,161,2,125,2,124,2,
+ 155,0,100,2,124,1,155,0,157,3,125,3,122,16,124,0,
+ 106,2,160,3,124,3,161,1,1,0,87,0,110,20,4,0,
+ 116,4,121,64,1,0,1,0,1,0,89,0,100,3,83,0,
+ 48,0,100,4,83,0,41,5,78,114,85,0,0,0,114,109,
+ 0,0,0,70,84,41,5,114,38,0,0,0,114,19,0,0,
+ 0,114,4,0,0,0,114,55,0,0,0,114,22,0,0,0,
+ 41,4,114,32,0,0,0,114,59,0,0,0,114,179,0,0,
+ 0,114,13,0,0,0,114,9,0,0,0,114,9,0,0,0,
+ 114,10,0,0,0,218,11,105,115,95,114,101,115,111,117,114,
+ 99,101,239,2,0,0,115,14,0,0,0,0,3,14,1,14,
+ 1,2,1,16,1,12,1,8,1,122,36,95,90,105,112,73,
+ 109,112,111,114,116,82,101,115,111,117,114,99,101,82,101,97,
+ 100,101,114,46,105,115,95,114,101,115,111,117,114,99,101,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
+ 9,0,0,0,99,0,0,0,115,184,0,0,0,100,1,100,
+ 2,108,0,109,1,125,1,1,0,124,1,124,0,106,2,160,
+ 3,124,0,106,4,161,1,131,1,125,2,124,2,160,5,124,
+ 0,106,2,106,6,161,1,125,3,124,3,106,7,100,3,107,
+ 2,115,58,74,0,130,1,124,3,106,8,125,4,116,9,131,
+ 0,125,5,124,0,106,2,106,10,68,0,93,100,125,6,122,
+ 18,124,1,124,6,131,1,160,5,124,4,161,1,125,7,87,
+ 0,110,22,4,0,116,11,121,122,1,0,1,0,1,0,89,
+ 0,113,78,89,0,110,2,48,0,124,7,106,8,106,7,125,
+ 8,116,12,124,8,131,1,100,1,107,2,114,154,124,7,106,
+ 7,86,0,1,0,113,78,124,8,124,5,118,1,114,78,124,
+ 5,160,13,124,8,161,1,1,0,124,8,86,0,1,0,113,
+ 78,100,0,83,0,41,4,78,114,0,0,0,0,41,1,218,
+ 4,80,97,116,104,114,60,0,0,0,41,14,90,7,112,97,
+ 116,104,108,105,98,114,183,0,0,0,114,4,0,0,0,114,
+ 56,0,0,0,114,38,0,0,0,90,11,114,101,108,97,116,
+ 105,118,101,95,116,111,114,29,0,0,0,114,59,0,0,0,
+ 90,6,112,97,114,101,110,116,218,3,115,101,116,114,28,0,
+ 0,0,114,23,0,0,0,114,51,0,0,0,218,3,97,100,
+ 100,41,9,114,32,0,0,0,114,183,0,0,0,90,13,102,
+ 117,108,108,110,97,109,101,95,112,97,116,104,90,13,114,101,
+ 108,97,116,105,118,101,95,112,97,116,104,90,12,112,97,99,
+ 107,97,103,101,95,112,97,116,104,90,12,115,117,98,100,105,
+ 114,115,95,115,101,101,110,218,8,102,105,108,101,110,97,109,
+ 101,90,8,114,101,108,97,116,105,118,101,90,11,112,97,114,
+ 101,110,116,95,110,97,109,101,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,218,8,99,111,110,116,101,110,116,
+ 115,250,2,0,0,115,34,0,0,0,0,8,12,1,18,1,
+ 14,3,14,1,6,1,6,1,12,1,2,1,18,1,12,1,
+ 10,5,8,1,12,1,10,1,8,1,10,1,122,33,95,90,
+ 105,112,73,109,112,111,114,116,82,101,115,111,117,114,99,101,
+ 82,101,97,100,101,114,46,99,111,110,116,101,110,116,115,78,
+ 41,10,114,6,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,114,84,0,0,0,114,81,0,0,0,114,34,0,0,0,
+ 114,180,0,0,0,114,181,0,0,0,114,182,0,0,0,114,
+ 187,0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,
+ 0,0,0,114,10,0,0,0,114,80,0,0,0,212,2,0,
+ 0,115,14,0,0,0,8,1,4,5,4,2,8,4,8,9,
+ 8,6,8,11,114,80,0,0,0,41,45,114,84,0,0,0,
+ 90,26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,
+ 108,105,98,95,101,120,116,101,114,110,97,108,114,21,0,0,
+ 0,114,1,0,0,0,114,2,0,0,0,90,17,95,102,114,
+ 111,122,101,110,95,105,109,112,111,114,116,108,105,98,114,76,
+ 0,0,0,114,148,0,0,0,114,110,0,0,0,114,152,0,
+ 0,0,114,67,0,0,0,114,131,0,0,0,90,7,95,95,
+ 97,108,108,95,95,114,20,0,0,0,90,15,112,97,116,104,
+ 95,115,101,112,97,114,97,116,111,114,115,114,18,0,0,0,
+ 114,75,0,0,0,114,3,0,0,0,114,25,0,0,0,218,
+ 4,116,121,112,101,114,70,0,0,0,114,113,0,0,0,114,
+ 115,0,0,0,114,117,0,0,0,114,4,0,0,0,114,89,
+ 0,0,0,114,36,0,0,0,114,37,0,0,0,114,35,0,
+ 0,0,114,27,0,0,0,114,122,0,0,0,114,142,0,0,
+ 0,114,144,0,0,0,114,52,0,0,0,114,147,0,0,0,
+ 114,155,0,0,0,218,8,95,95,99,111,100,101,95,95,114,
+ 153,0,0,0,114,159,0,0,0,114,161,0,0,0,114,169,
+ 0,0,0,114,151,0,0,0,114,149,0,0,0,114,44,0,
+ 0,0,114,80,0,0,0,114,9,0,0,0,114,9,0,0,
+ 0,114,9,0,0,0,114,10,0,0,0,218,8,60,109,111,
+ 100,117,108,101,62,1,0,0,0,115,88,0,0,0,4,16,
+ 8,1,16,1,8,1,8,1,8,1,8,1,8,1,8,2,
+ 8,3,6,1,14,3,16,4,4,2,8,2,4,1,4,1,
+ 4,2,14,127,0,127,0,1,12,1,12,1,2,1,2,252,
+ 4,9,8,4,8,9,8,31,8,126,2,254,2,29,4,5,
+ 8,21,8,46,8,10,8,46,10,5,8,7,8,6,8,13,
+ 8,19,8,15,8,26,
+};
diff --git a/contrib/tools/python3/src/Python/initconfig.c b/contrib/tools/python3/src/Python/initconfig.c
index f14983abd0..9c109cef2c 100644
--- a/contrib/tools/python3/src/Python/initconfig.c
+++ b/contrib/tools/python3/src/Python/initconfig.c
@@ -1,2765 +1,2765 @@
-#include "Python.h"
-#include "pycore_fileutils.h" // _Py_HasFileSystemDefaultEncodeErrors
-#include "pycore_getopt.h" // _PyOS_GetOpt()
-#include "pycore_initconfig.h" // _PyStatus_OK()
-#include "pycore_interp.h" // _PyInterpreterState.runtime
-#include "pycore_pathconfig.h" // _Py_path_config
-#include "pycore_pyerrors.h" // _PyErr_Fetch()
-#include "pycore_pylifecycle.h" // _Py_PreInitializeFromConfig()
-#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
-#include "pycore_pystate.h" // _PyThreadState_GET()
-
-#include "osdefs.h" // DELIM
-#include <locale.h> // setlocale()
-#ifdef HAVE_LANGINFO_H
-# include <langinfo.h> // nl_langinfo(CODESET)
-#endif
-#if defined(MS_WINDOWS) || defined(__CYGWIN__)
-# include <windows.h> // GetACP()
-# ifdef HAVE_IO_H
-# include <io.h>
-# endif
-# ifdef HAVE_FCNTL_H
-# include <fcntl.h> // O_BINARY
-# endif
-#endif
-
-#ifndef PLATLIBDIR
-# error "PLATLIBDIR macro must be defined"
-#endif
-
-
-/* --- Command line options --------------------------------------- */
-
-/* Short usage message (with %s for argv0) */
-static const char usage_line[] =
-"usage: %ls [option] ... [-c cmd | -m mod | file | -] [arg] ...\n";
-
-/* Long usage message, split into parts < 512 bytes */
-static const char usage_1[] = "\
-Options and arguments (and corresponding environment variables):\n\
--b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\
- and comparing bytes/bytearray with str. (-bb: issue errors)\n\
--B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\
--c cmd : program passed in as string (terminates option list)\n\
--d : turn on parser debugging output (for experts only, only works on\n\
- debug builds); also PYTHONDEBUG=x\n\
--E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\
--h : print this help message and exit (also --help)\n\
-";
-static const char usage_2[] = "\
--i : inspect interactively after running script; forces a prompt even\n\
- if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\
--I : isolate Python from the user's environment (implies -E and -s)\n\
--m mod : run library module as a script (terminates option list)\n\
--O : remove assert and __debug__-dependent statements; add .opt-1 before\n\
- .pyc extension; also PYTHONOPTIMIZE=x\n\
--OO : do -O changes and also discard docstrings; add .opt-2 before\n\
- .pyc extension\n\
--q : don't print version and copyright messages on interactive startup\n\
--s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\
--S : don't imply 'import site' on initialization\n\
-";
-static const char usage_3[] = "\
--u : force the stdout and stderr streams to be unbuffered;\n\
- this option has no effect on stdin; also PYTHONUNBUFFERED=x\n\
--v : verbose (trace import statements); also PYTHONVERBOSE=x\n\
- can be supplied multiple times to increase verbosity\n\
--V : print the Python version number and exit (also --version)\n\
- when given twice, print more information about the build\n\
--W arg : warning control; arg is action:message:category:module:lineno\n\
- also PYTHONWARNINGS=arg\n\
--x : skip first line of source, allowing use of non-Unix forms of #!cmd\n\
--X opt : set implementation-specific option. The following options are available:\n\
-\n\
- -X faulthandler: enable faulthandler\n\
- -X oldparser: enable the traditional LL(1) parser; also PYTHONOLDPARSER\n\
- -X showrefcount: output the total reference count and number of used\n\
- memory blocks when the program finishes or after each statement in the\n\
- interactive interpreter. This only works on debug builds\n\
- -X tracemalloc: start tracing Python memory allocations using the\n\
- tracemalloc module. By default, only the most recent frame is stored in a\n\
- traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\
- traceback limit of NFRAME frames\n\
- -X importtime: show how long each import takes. It shows module name,\n\
- cumulative time (including nested imports) and self time (excluding\n\
- nested imports). Note that its output may be broken in multi-threaded\n\
- application. Typical usage is python3 -X importtime -c 'import asyncio'\n\
- -X dev: enable CPython's \"development mode\", introducing additional runtime\n\
- checks which are too expensive to be enabled by default. Effect of the\n\
- developer mode:\n\
- * Add default warning filter, as -W default\n\
- * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function\n\
- * Enable the faulthandler module to dump the Python traceback on a crash\n\
- * Enable asyncio debug mode\n\
- * Set the dev_mode attribute of sys.flags to True\n\
- * io.IOBase destructor logs close() exceptions\n\
- -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\
- locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\
- otherwise activate automatically)\n\
- -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\
- given directory instead of to the code tree\n\
-\n\
---check-hash-based-pycs always|default|never:\n\
- control how Python invalidates hash-based .pyc files\n\
-";
-static const char usage_4[] = "\
-file : program read from script file\n\
-- : program read from stdin (default; interactive mode if a tty)\n\
-arg ...: arguments passed to program in sys.argv[1:]\n\n\
-Other environment variables:\n\
-PYTHONSTARTUP: file executed on interactive startup (no default)\n\
-PYTHONPATH : '%lc'-separated list of directories prefixed to the\n\
- default module search path. The result is sys.path.\n\
-";
-static const char usage_5[] =
-"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
-" The default module search path uses %s.\n"
-"PYTHONPLATLIBDIR : override sys.platlibdir.\n"
-"PYTHONCASEOK : ignore case in 'import' statements (Windows).\n"
-"PYTHONUTF8: if set to 1, enable the UTF-8 mode.\n"
-"PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.\n"
-"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n";
-static const char usage_6[] =
-"PYTHONHASHSEED: if this variable is set to 'random', a random value is used\n"
-" to seed the hashes of str and bytes objects. It can also be set to an\n"
-" integer in the range [0,4294967295] to get hash values with a\n"
-" predictable seed.\n"
-"PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n"
-" on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n"
-" hooks.\n"
-"PYTHONCOERCECLOCALE: if this variable is set to 0, it disables the locale\n"
-" coercion behavior. Use PYTHONCOERCECLOCALE=warn to request display of\n"
-" locale coercion and locale compatibility warnings on stderr.\n"
-"PYTHONBREAKPOINT: if this variable is set to 0, it disables the default\n"
-" debugger. It can be set to the callable of your debugger of choice.\n"
-"PYTHONDEVMODE: enable the development mode.\n"
-"PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files.\n";
-
-#if defined(MS_WINDOWS)
-# define PYTHONHOMEHELP "<prefix>\\python{major}{minor}"
-#else
-# define PYTHONHOMEHELP "<prefix>/lib/pythonX.X"
-#endif
-
-
-/* --- Global configuration variables ----------------------------- */
-
-/* UTF-8 mode (PEP 540): if equals to 1, use the UTF-8 encoding, and change
- stdin and stdout error handler to "surrogateescape". */
-int Py_UTF8Mode = 0;
-int Py_DebugFlag = 0; /* Needed by parser.c */
-int Py_VerboseFlag = 0; /* Needed by import.c */
-int Py_QuietFlag = 0; /* Needed by sysmodule.c */
-int Py_InteractiveFlag = 0; /* Needed by Py_FdIsInteractive() below */
-int Py_InspectFlag = 0; /* Needed to determine whether to exit at SystemExit */
-int Py_OptimizeFlag = 0; /* Needed by compile.c */
-int Py_NoSiteFlag = 0; /* Suppress 'import site' */
-int Py_BytesWarningFlag = 0; /* Warn on str(bytes) and str(buffer) */
-int Py_FrozenFlag = 1; /* Needed by getpath.c */
-int Py_IgnoreEnvironmentFlag = 0; /* e.g. PYTHONPATH, PYTHONHOME */
-int Py_DontWriteBytecodeFlag = 0; /* Suppress writing bytecode files (*.pyc) */
-int Py_NoUserSiteDirectory = 0; /* for -s and site.py */
-int Py_UnbufferedStdioFlag = 0; /* Unbuffered binary std{in,out,err} */
-int Py_HashRandomizationFlag = 0; /* for -R and PYTHONHASHSEED */
-int Py_IsolatedFlag = 0; /* for -I, isolate from user's env */
-#ifdef MS_WINDOWS
-int Py_LegacyWindowsFSEncodingFlag = 0; /* Uses mbcs instead of utf-8 */
-int Py_LegacyWindowsStdioFlag = 0; /* Uses FileIO instead of WindowsConsoleIO */
-#endif
-
-
-static PyObject *
-_Py_GetGlobalVariablesAsDict(void)
-{
- PyObject *dict, *obj;
-
- dict = PyDict_New();
- if (dict == NULL) {
- return NULL;
- }
-
-#define SET_ITEM(KEY, EXPR) \
- do { \
- obj = (EXPR); \
- if (obj == NULL) { \
- return NULL; \
- } \
- int res = PyDict_SetItemString(dict, (KEY), obj); \
- Py_DECREF(obj); \
- if (res < 0) { \
- goto fail; \
- } \
- } while (0)
-#define SET_ITEM_INT(VAR) \
- SET_ITEM(#VAR, PyLong_FromLong(VAR))
-#define FROM_STRING(STR) \
- ((STR != NULL) ? \
- PyUnicode_FromString(STR) \
- : (Py_INCREF(Py_None), Py_None))
-#define SET_ITEM_STR(VAR) \
- SET_ITEM(#VAR, FROM_STRING(VAR))
-
- SET_ITEM_STR(Py_FileSystemDefaultEncoding);
- SET_ITEM_INT(Py_HasFileSystemDefaultEncoding);
- SET_ITEM_STR(Py_FileSystemDefaultEncodeErrors);
- SET_ITEM_INT(_Py_HasFileSystemDefaultEncodeErrors);
-
- SET_ITEM_INT(Py_UTF8Mode);
- SET_ITEM_INT(Py_DebugFlag);
- SET_ITEM_INT(Py_VerboseFlag);
- SET_ITEM_INT(Py_QuietFlag);
- SET_ITEM_INT(Py_InteractiveFlag);
- SET_ITEM_INT(Py_InspectFlag);
-
- SET_ITEM_INT(Py_OptimizeFlag);
- SET_ITEM_INT(Py_NoSiteFlag);
- SET_ITEM_INT(Py_BytesWarningFlag);
- SET_ITEM_INT(Py_FrozenFlag);
- SET_ITEM_INT(Py_IgnoreEnvironmentFlag);
- SET_ITEM_INT(Py_DontWriteBytecodeFlag);
- SET_ITEM_INT(Py_NoUserSiteDirectory);
- SET_ITEM_INT(Py_UnbufferedStdioFlag);
- SET_ITEM_INT(Py_HashRandomizationFlag);
- SET_ITEM_INT(Py_IsolatedFlag);
-
-#ifdef MS_WINDOWS
- SET_ITEM_INT(Py_LegacyWindowsFSEncodingFlag);
- SET_ITEM_INT(Py_LegacyWindowsStdioFlag);
-#endif
-
- return dict;
-
-fail:
- Py_DECREF(dict);
- return NULL;
-
-#undef FROM_STRING
-#undef SET_ITEM
-#undef SET_ITEM_INT
-#undef SET_ITEM_STR
-}
-
-
-/* --- PyStatus ----------------------------------------------- */
-
-PyStatus PyStatus_Ok(void)
-{ return _PyStatus_OK(); }
-
-PyStatus PyStatus_Error(const char *err_msg)
-{
- return (PyStatus){._type = _PyStatus_TYPE_ERROR,
- .err_msg = err_msg};
-}
-
-PyStatus PyStatus_NoMemory(void)
-{ return PyStatus_Error("memory allocation failed"); }
-
-PyStatus PyStatus_Exit(int exitcode)
-{ return _PyStatus_EXIT(exitcode); }
-
-
-int PyStatus_IsError(PyStatus status)
-{ return _PyStatus_IS_ERROR(status); }
-
-int PyStatus_IsExit(PyStatus status)
-{ return _PyStatus_IS_EXIT(status); }
-
-int PyStatus_Exception(PyStatus status)
-{ return _PyStatus_EXCEPTION(status); }
-
-
-/* --- PyWideStringList ------------------------------------------------ */
-
-#ifndef NDEBUG
-int
-_PyWideStringList_CheckConsistency(const PyWideStringList *list)
-{
- assert(list->length >= 0);
- if (list->length != 0) {
- assert(list->items != NULL);
- }
- for (Py_ssize_t i = 0; i < list->length; i++) {
- assert(list->items[i] != NULL);
- }
- return 1;
-}
-#endif /* Py_DEBUG */
-
-
-void
-_PyWideStringList_Clear(PyWideStringList *list)
-{
- assert(_PyWideStringList_CheckConsistency(list));
- for (Py_ssize_t i=0; i < list->length; i++) {
- PyMem_RawFree(list->items[i]);
- }
- PyMem_RawFree(list->items);
- list->length = 0;
- list->items = NULL;
-}
-
-
-int
-_PyWideStringList_Copy(PyWideStringList *list, const PyWideStringList *list2)
-{
- assert(_PyWideStringList_CheckConsistency(list));
- assert(_PyWideStringList_CheckConsistency(list2));
-
- if (list2->length == 0) {
- _PyWideStringList_Clear(list);
- return 0;
- }
-
- PyWideStringList copy = _PyWideStringList_INIT;
-
- size_t size = list2->length * sizeof(list2->items[0]);
- copy.items = PyMem_RawMalloc(size);
- if (copy.items == NULL) {
- return -1;
- }
-
- for (Py_ssize_t i=0; i < list2->length; i++) {
- wchar_t *item = _PyMem_RawWcsdup(list2->items[i]);
- if (item == NULL) {
- _PyWideStringList_Clear(&copy);
- return -1;
- }
- copy.items[i] = item;
- copy.length = i + 1;
- }
-
- _PyWideStringList_Clear(list);
- *list = copy;
- return 0;
-}
-
-
-PyStatus
-PyWideStringList_Insert(PyWideStringList *list,
- Py_ssize_t index, const wchar_t *item)
-{
- Py_ssize_t len = list->length;
- if (len == PY_SSIZE_T_MAX) {
- /* length+1 would overflow */
- return _PyStatus_NO_MEMORY();
- }
- if (index < 0) {
- return _PyStatus_ERR("PyWideStringList_Insert index must be >= 0");
- }
- if (index > len) {
- index = len;
- }
-
- wchar_t *item2 = _PyMem_RawWcsdup(item);
- if (item2 == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- size_t size = (len + 1) * sizeof(list->items[0]);
- wchar_t **items2 = (wchar_t **)PyMem_RawRealloc(list->items, size);
- if (items2 == NULL) {
- PyMem_RawFree(item2);
- return _PyStatus_NO_MEMORY();
- }
-
- if (index < len) {
- memmove(&items2[index + 1],
- &items2[index],
- (len - index) * sizeof(items2[0]));
- }
-
- items2[index] = item2;
- list->items = items2;
- list->length++;
- return _PyStatus_OK();
-}
-
-
-PyStatus
-PyWideStringList_Append(PyWideStringList *list, const wchar_t *item)
-{
- return PyWideStringList_Insert(list, list->length, item);
-}
-
-
-PyStatus
-_PyWideStringList_Extend(PyWideStringList *list, const PyWideStringList *list2)
-{
- for (Py_ssize_t i = 0; i < list2->length; i++) {
- PyStatus status = PyWideStringList_Append(list, list2->items[i]);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- return _PyStatus_OK();
-}
-
-
-static int
-_PyWideStringList_Find(PyWideStringList *list, const wchar_t *item)
-{
- for (Py_ssize_t i = 0; i < list->length; i++) {
- if (wcscmp(list->items[i], item) == 0) {
- return 1;
- }
- }
- return 0;
-}
-
-
-PyObject*
-_PyWideStringList_AsList(const PyWideStringList *list)
-{
- assert(_PyWideStringList_CheckConsistency(list));
-
- PyObject *pylist = PyList_New(list->length);
- if (pylist == NULL) {
- return NULL;
- }
-
- for (Py_ssize_t i = 0; i < list->length; i++) {
- PyObject *item = PyUnicode_FromWideChar(list->items[i], -1);
- if (item == NULL) {
- Py_DECREF(pylist);
- return NULL;
- }
- PyList_SET_ITEM(pylist, i, item);
- }
- return pylist;
-}
-
-
-/* --- Py_SetStandardStreamEncoding() ----------------------------- */
-
-/* Helper to allow an embedding application to override the normal
- * mechanism that attempts to figure out an appropriate IO encoding
- */
-
-static char *_Py_StandardStreamEncoding = NULL;
-static char *_Py_StandardStreamErrors = NULL;
-
-int
-Py_SetStandardStreamEncoding(const char *encoding, const char *errors)
-{
- if (Py_IsInitialized()) {
- /* This is too late to have any effect */
- return -1;
- }
-
- int res = 0;
-
- /* Py_SetStandardStreamEncoding() can be called before Py_Initialize(),
- but Py_Initialize() can change the allocator. Use a known allocator
- to be able to release the memory later. */
- PyMemAllocatorEx old_alloc;
- _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- /* Can't call PyErr_NoMemory() on errors, as Python hasn't been
- * initialised yet.
- *
- * However, the raw memory allocators are initialised appropriately
- * as C static variables, so _PyMem_RawStrdup is OK even though
- * Py_Initialize hasn't been called yet.
- */
- if (encoding) {
- PyMem_RawFree(_Py_StandardStreamEncoding);
- _Py_StandardStreamEncoding = _PyMem_RawStrdup(encoding);
- if (!_Py_StandardStreamEncoding) {
- res = -2;
- goto done;
- }
- }
- if (errors) {
- PyMem_RawFree(_Py_StandardStreamErrors);
- _Py_StandardStreamErrors = _PyMem_RawStrdup(errors);
- if (!_Py_StandardStreamErrors) {
- PyMem_RawFree(_Py_StandardStreamEncoding);
- _Py_StandardStreamEncoding = NULL;
- res = -3;
- goto done;
- }
- }
-#ifdef MS_WINDOWS
- if (_Py_StandardStreamEncoding) {
- /* Overriding the stream encoding implies legacy streams */
- Py_LegacyWindowsStdioFlag = 1;
- }
-#endif
-
-done:
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- return res;
-}
-
-
-void
-_Py_ClearStandardStreamEncoding(void)
-{
- /* Use the same allocator than Py_SetStandardStreamEncoding() */
- PyMemAllocatorEx old_alloc;
- _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- /* We won't need them anymore. */
- if (_Py_StandardStreamEncoding) {
- PyMem_RawFree(_Py_StandardStreamEncoding);
- _Py_StandardStreamEncoding = NULL;
- }
- if (_Py_StandardStreamErrors) {
- PyMem_RawFree(_Py_StandardStreamErrors);
- _Py_StandardStreamErrors = NULL;
- }
-
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-}
-
-
-/* --- Py_GetArgcArgv() ------------------------------------------- */
-
-/* For Py_GetArgcArgv(); set by _Py_SetArgcArgv() */
-static PyWideStringList orig_argv = {.length = 0, .items = NULL};
-
-
-void
-_Py_ClearArgcArgv(void)
-{
- PyMemAllocatorEx old_alloc;
- _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- _PyWideStringList_Clear(&orig_argv);
-
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-}
-
-
-static int
-_Py_SetArgcArgv(Py_ssize_t argc, wchar_t * const *argv)
-{
- const PyWideStringList argv_list = {.length = argc, .items = (wchar_t **)argv};
- int res;
-
- PyMemAllocatorEx old_alloc;
- _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- res = _PyWideStringList_Copy(&orig_argv, &argv_list);
-
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- return res;
-}
-
-
-void
-Py_GetArgcArgv(int *argc, wchar_t ***argv)
-{
- *argc = (int)orig_argv.length;
- *argv = orig_argv.items;
-}
-
-
-void
-Py_InitArgcArgv(int argc, wchar_t **argv)
-{
- _Py_SetArgcArgv((Py_ssize_t)argc, argv);
-}
-
-/* --- PyConfig ---------------------------------------------- */
-
-#define DECODE_LOCALE_ERR(NAME, LEN) \
- (((LEN) == -2) \
- ? _PyStatus_ERR("cannot decode " NAME) \
- : _PyStatus_NO_MEMORY())
-
-
-/* Free memory allocated in config, but don't clear all attributes */
-void
-PyConfig_Clear(PyConfig *config)
-{
-#define CLEAR(ATTR) \
- do { \
- PyMem_RawFree(ATTR); \
- ATTR = NULL; \
- } while (0)
-
- CLEAR(config->pycache_prefix);
- CLEAR(config->pythonpath_env);
- CLEAR(config->home);
- CLEAR(config->program_name);
-
- _PyWideStringList_Clear(&config->argv);
- _PyWideStringList_Clear(&config->warnoptions);
- _PyWideStringList_Clear(&config->xoptions);
- _PyWideStringList_Clear(&config->module_search_paths);
- config->module_search_paths_set = 0;
-
- CLEAR(config->executable);
- CLEAR(config->base_executable);
- CLEAR(config->prefix);
- CLEAR(config->base_prefix);
- CLEAR(config->exec_prefix);
- CLEAR(config->base_exec_prefix);
- CLEAR(config->platlibdir);
-
- CLEAR(config->filesystem_encoding);
- CLEAR(config->filesystem_errors);
- CLEAR(config->stdio_encoding);
- CLEAR(config->stdio_errors);
- CLEAR(config->run_command);
- CLEAR(config->run_module);
- CLEAR(config->run_filename);
- CLEAR(config->check_hash_pycs_mode);
-
- _PyWideStringList_Clear(&config->_orig_argv);
-#undef CLEAR
-}
-
-
-void
-_PyConfig_InitCompatConfig(PyConfig *config)
-{
- memset(config, 0, sizeof(*config));
-
- config->_config_init = (int)_PyConfig_INIT_COMPAT;
- config->isolated = -1;
- config->use_environment = -1;
- config->dev_mode = -1;
- config->install_signal_handlers = 1;
- config->use_hash_seed = -1;
- config->faulthandler = -1;
- config->tracemalloc = -1;
- config->module_search_paths_set = 0;
- config->parse_argv = 0;
- config->site_import = -1;
- config->bytes_warning = -1;
- config->inspect = -1;
- config->interactive = -1;
- config->optimization_level = -1;
- config->parser_debug= -1;
- config->write_bytecode = -1;
- config->verbose = -1;
- config->quiet = -1;
- config->user_site_directory = -1;
- config->configure_c_stdio = 0;
- config->buffered_stdio = -1;
- config->_install_importlib = 1;
- config->check_hash_pycs_mode = NULL;
- config->pathconfig_warnings = -1;
- config->_init_main = 1;
- config->_isolated_interpreter = 0;
-#ifdef MS_WINDOWS
- config->legacy_windows_stdio = -1;
-#endif
- config->_use_peg_parser = 1;
-}
-
-
-static void
-config_init_defaults(PyConfig *config)
-{
- _PyConfig_InitCompatConfig(config);
-
- config->isolated = 0;
- config->use_environment = 1;
- config->site_import = 1;
- config->bytes_warning = 0;
- config->inspect = 0;
- config->interactive = 0;
- config->optimization_level = 0;
- config->parser_debug= 0;
- config->write_bytecode = 1;
- config->verbose = 0;
- config->quiet = 0;
- config->user_site_directory = 1;
- config->buffered_stdio = 1;
- config->pathconfig_warnings = 1;
-#ifdef MS_WINDOWS
- config->legacy_windows_stdio = 0;
-#endif
-}
-
-
-void
-PyConfig_InitPythonConfig(PyConfig *config)
-{
- config_init_defaults(config);
-
- config->_config_init = (int)_PyConfig_INIT_PYTHON;
- config->configure_c_stdio = 1;
- config->parse_argv = 1;
-}
-
-
-void
-PyConfig_InitIsolatedConfig(PyConfig *config)
-{
- config_init_defaults(config);
-
- config->_config_init = (int)_PyConfig_INIT_ISOLATED;
- config->isolated = 1;
- config->use_environment = 0;
- config->user_site_directory = 0;
- config->dev_mode = 0;
- config->install_signal_handlers = 0;
- config->use_hash_seed = 0;
- config->faulthandler = 0;
- config->tracemalloc = 0;
- config->pathconfig_warnings = 0;
-#ifdef MS_WINDOWS
- config->legacy_windows_stdio = 0;
-#endif
-}
-
-
-/* Copy str into *config_str (duplicate the string) */
-PyStatus
-PyConfig_SetString(PyConfig *config, wchar_t **config_str, const wchar_t *str)
-{
- PyStatus status = _Py_PreInitializeFromConfig(config, NULL);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- wchar_t *str2;
- if (str != NULL) {
- str2 = _PyMem_RawWcsdup(str);
- if (str2 == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
- else {
- str2 = NULL;
- }
- PyMem_RawFree(*config_str);
- *config_str = str2;
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-config_set_bytes_string(PyConfig *config, wchar_t **config_str,
- const char *str, const char *decode_err_msg)
-{
- PyStatus status = _Py_PreInitializeFromConfig(config, NULL);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- wchar_t *str2;
- if (str != NULL) {
- size_t len;
- str2 = Py_DecodeLocale(str, &len);
- if (str2 == NULL) {
- if (len == (size_t)-2) {
- return _PyStatus_ERR(decode_err_msg);
- }
- else {
- return _PyStatus_NO_MEMORY();
- }
- }
- }
- else {
- str2 = NULL;
- }
- PyMem_RawFree(*config_str);
- *config_str = str2;
- return _PyStatus_OK();
-}
-
-
-#define CONFIG_SET_BYTES_STR(config, config_str, str, NAME) \
- config_set_bytes_string(config, config_str, str, "cannot decode " NAME)
-
-
-/* Decode str using Py_DecodeLocale() and set the result into *config_str.
- Pre-initialize Python if needed to ensure that encodings are properly
- configured. */
-PyStatus
-PyConfig_SetBytesString(PyConfig *config, wchar_t **config_str,
- const char *str)
-{
- return CONFIG_SET_BYTES_STR(config, config_str, str, "string");
-}
-
-
-PyStatus
-_PyConfig_Copy(PyConfig *config, const PyConfig *config2)
-{
- PyStatus status;
-
- PyConfig_Clear(config);
-
-#define COPY_ATTR(ATTR) config->ATTR = config2->ATTR
-#define COPY_WSTR_ATTR(ATTR) \
- do { \
- status = PyConfig_SetString(config, &config->ATTR, config2->ATTR); \
- if (_PyStatus_EXCEPTION(status)) { \
- return status; \
- } \
- } while (0)
-#define COPY_WSTRLIST(LIST) \
- do { \
- if (_PyWideStringList_Copy(&config->LIST, &config2->LIST) < 0) { \
- return _PyStatus_NO_MEMORY(); \
- } \
- } while (0)
-
- COPY_ATTR(_config_init);
- COPY_ATTR(isolated);
- COPY_ATTR(use_environment);
- COPY_ATTR(dev_mode);
- COPY_ATTR(_use_peg_parser);
- COPY_ATTR(install_signal_handlers);
- COPY_ATTR(use_hash_seed);
- COPY_ATTR(hash_seed);
- COPY_ATTR(_install_importlib);
- COPY_ATTR(faulthandler);
- COPY_ATTR(tracemalloc);
- COPY_ATTR(import_time);
- COPY_ATTR(show_ref_count);
- COPY_ATTR(dump_refs);
- COPY_ATTR(malloc_stats);
-
- COPY_WSTR_ATTR(pycache_prefix);
- COPY_WSTR_ATTR(pythonpath_env);
- COPY_WSTR_ATTR(home);
- COPY_WSTR_ATTR(program_name);
-
- COPY_ATTR(parse_argv);
- COPY_WSTRLIST(argv);
- COPY_WSTRLIST(warnoptions);
- COPY_WSTRLIST(xoptions);
- COPY_WSTRLIST(module_search_paths);
- COPY_ATTR(module_search_paths_set);
-
- COPY_WSTR_ATTR(executable);
- COPY_WSTR_ATTR(base_executable);
- COPY_WSTR_ATTR(prefix);
- COPY_WSTR_ATTR(base_prefix);
- COPY_WSTR_ATTR(exec_prefix);
- COPY_WSTR_ATTR(base_exec_prefix);
- COPY_WSTR_ATTR(platlibdir);
-
- COPY_ATTR(site_import);
- COPY_ATTR(bytes_warning);
- COPY_ATTR(inspect);
- COPY_ATTR(interactive);
- COPY_ATTR(optimization_level);
- COPY_ATTR(parser_debug);
- COPY_ATTR(write_bytecode);
- COPY_ATTR(verbose);
- COPY_ATTR(quiet);
- COPY_ATTR(user_site_directory);
- COPY_ATTR(configure_c_stdio);
- COPY_ATTR(buffered_stdio);
- COPY_WSTR_ATTR(filesystem_encoding);
- COPY_WSTR_ATTR(filesystem_errors);
- COPY_WSTR_ATTR(stdio_encoding);
- COPY_WSTR_ATTR(stdio_errors);
-#ifdef MS_WINDOWS
- COPY_ATTR(legacy_windows_stdio);
-#endif
- COPY_ATTR(skip_source_first_line);
- COPY_WSTR_ATTR(run_command);
- COPY_WSTR_ATTR(run_module);
- COPY_WSTR_ATTR(run_filename);
- COPY_WSTR_ATTR(check_hash_pycs_mode);
- COPY_ATTR(pathconfig_warnings);
- COPY_ATTR(_init_main);
- COPY_ATTR(_isolated_interpreter);
- COPY_WSTRLIST(_orig_argv);
-
-#undef COPY_ATTR
-#undef COPY_WSTR_ATTR
-#undef COPY_WSTRLIST
- return _PyStatus_OK();
-}
-
-
-static PyObject *
-config_as_dict(const PyConfig *config)
-{
- PyObject *dict;
-
- dict = PyDict_New();
- if (dict == NULL) {
- return NULL;
- }
-
-#define SET_ITEM(KEY, EXPR) \
- do { \
- PyObject *obj = (EXPR); \
- if (obj == NULL) { \
- goto fail; \
- } \
- int res = PyDict_SetItemString(dict, (KEY), obj); \
- Py_DECREF(obj); \
- if (res < 0) { \
- goto fail; \
- } \
- } while (0)
-#define SET_ITEM_INT(ATTR) \
- SET_ITEM(#ATTR, PyLong_FromLong(config->ATTR))
-#define SET_ITEM_UINT(ATTR) \
- SET_ITEM(#ATTR, PyLong_FromUnsignedLong(config->ATTR))
-#define FROM_WSTRING(STR) \
- ((STR != NULL) ? \
- PyUnicode_FromWideChar(STR, -1) \
- : (Py_INCREF(Py_None), Py_None))
-#define SET_ITEM_WSTR(ATTR) \
- SET_ITEM(#ATTR, FROM_WSTRING(config->ATTR))
-#define SET_ITEM_WSTRLIST(LIST) \
- SET_ITEM(#LIST, _PyWideStringList_AsList(&config->LIST))
-
- SET_ITEM_INT(_config_init);
- SET_ITEM_INT(isolated);
- SET_ITEM_INT(use_environment);
- SET_ITEM_INT(dev_mode);
- SET_ITEM_INT(_use_peg_parser);
- SET_ITEM_INT(install_signal_handlers);
- SET_ITEM_INT(use_hash_seed);
- SET_ITEM_UINT(hash_seed);
- SET_ITEM_INT(faulthandler);
- SET_ITEM_INT(tracemalloc);
- SET_ITEM_INT(import_time);
- SET_ITEM_INT(show_ref_count);
- SET_ITEM_INT(dump_refs);
- SET_ITEM_INT(malloc_stats);
- SET_ITEM_WSTR(filesystem_encoding);
- SET_ITEM_WSTR(filesystem_errors);
- SET_ITEM_WSTR(pycache_prefix);
- SET_ITEM_WSTR(program_name);
- SET_ITEM_INT(parse_argv);
- SET_ITEM_WSTRLIST(argv);
- SET_ITEM_WSTRLIST(xoptions);
- SET_ITEM_WSTRLIST(warnoptions);
- SET_ITEM_WSTR(pythonpath_env);
- SET_ITEM_WSTR(home);
- SET_ITEM_WSTRLIST(module_search_paths);
- SET_ITEM_WSTR(executable);
- SET_ITEM_WSTR(base_executable);
- SET_ITEM_WSTR(prefix);
- SET_ITEM_WSTR(base_prefix);
- SET_ITEM_WSTR(exec_prefix);
- SET_ITEM_WSTR(base_exec_prefix);
- SET_ITEM_WSTR(platlibdir);
- SET_ITEM_INT(site_import);
- SET_ITEM_INT(bytes_warning);
- SET_ITEM_INT(inspect);
- SET_ITEM_INT(interactive);
- SET_ITEM_INT(optimization_level);
- SET_ITEM_INT(parser_debug);
- SET_ITEM_INT(write_bytecode);
- SET_ITEM_INT(verbose);
- SET_ITEM_INT(quiet);
- SET_ITEM_INT(user_site_directory);
- SET_ITEM_INT(configure_c_stdio);
- SET_ITEM_INT(buffered_stdio);
- SET_ITEM_WSTR(stdio_encoding);
- SET_ITEM_WSTR(stdio_errors);
-#ifdef MS_WINDOWS
- SET_ITEM_INT(legacy_windows_stdio);
-#endif
- SET_ITEM_INT(skip_source_first_line);
- SET_ITEM_WSTR(run_command);
- SET_ITEM_WSTR(run_module);
- SET_ITEM_WSTR(run_filename);
- SET_ITEM_INT(_install_importlib);
- SET_ITEM_WSTR(check_hash_pycs_mode);
- SET_ITEM_INT(pathconfig_warnings);
- SET_ITEM_INT(_init_main);
- SET_ITEM_INT(_isolated_interpreter);
- SET_ITEM_WSTRLIST(_orig_argv);
-
- return dict;
-
-fail:
- Py_DECREF(dict);
- return NULL;
-
-#undef FROM_WSTRING
-#undef SET_ITEM
-#undef SET_ITEM_INT
-#undef SET_ITEM_UINT
-#undef SET_ITEM_WSTR
-#undef SET_ITEM_WSTRLIST
-}
-
-
-static const char*
-config_get_env(const PyConfig *config, const char *name)
-{
- return _Py_GetEnv(config->use_environment, name);
-}
-
-
-/* Get a copy of the environment variable as wchar_t*.
- Return 0 on success, but *dest can be NULL.
- Return -1 on memory allocation failure. Return -2 on decoding error. */
-static PyStatus
-config_get_env_dup(PyConfig *config,
- wchar_t **dest,
- wchar_t *wname, char *name,
- const char *decode_err_msg)
-{
- assert(*dest == NULL);
- assert(config->use_environment >= 0);
-
- if (!config->use_environment) {
- *dest = NULL;
- return _PyStatus_OK();
- }
-
-#ifdef MS_WINDOWS
- const wchar_t *var = _wgetenv(wname);
- if (!var || var[0] == '\0') {
- *dest = NULL;
- return _PyStatus_OK();
- }
-
- return PyConfig_SetString(config, dest, var);
-#else
- const char *var = getenv(name);
- if (!var || var[0] == '\0') {
- *dest = NULL;
- return _PyStatus_OK();
- }
-
- return config_set_bytes_string(config, dest, var, decode_err_msg);
-#endif
-}
-
-
-#define CONFIG_GET_ENV_DUP(CONFIG, DEST, WNAME, NAME) \
- config_get_env_dup(CONFIG, DEST, WNAME, NAME, "cannot decode " NAME)
-
-
-static void
-config_get_global_vars(PyConfig *config)
-{
- if (config->_config_init != _PyConfig_INIT_COMPAT) {
- /* Python and Isolated configuration ignore global variables */
- return;
- }
-
-#define COPY_FLAG(ATTR, VALUE) \
- if (config->ATTR == -1) { \
- config->ATTR = VALUE; \
- }
-#define COPY_NOT_FLAG(ATTR, VALUE) \
- if (config->ATTR == -1) { \
- config->ATTR = !(VALUE); \
- }
-
- COPY_FLAG(isolated, Py_IsolatedFlag);
- COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
- COPY_FLAG(bytes_warning, Py_BytesWarningFlag);
- COPY_FLAG(inspect, Py_InspectFlag);
- COPY_FLAG(interactive, Py_InteractiveFlag);
- COPY_FLAG(optimization_level, Py_OptimizeFlag);
- COPY_FLAG(parser_debug, Py_DebugFlag);
- COPY_FLAG(verbose, Py_VerboseFlag);
- COPY_FLAG(quiet, Py_QuietFlag);
-#ifdef MS_WINDOWS
- COPY_FLAG(legacy_windows_stdio, Py_LegacyWindowsStdioFlag);
-#endif
- COPY_NOT_FLAG(pathconfig_warnings, Py_FrozenFlag);
-
- COPY_NOT_FLAG(buffered_stdio, Py_UnbufferedStdioFlag);
- COPY_NOT_FLAG(site_import, Py_NoSiteFlag);
- COPY_NOT_FLAG(write_bytecode, Py_DontWriteBytecodeFlag);
- COPY_NOT_FLAG(user_site_directory, Py_NoUserSiteDirectory);
-
-#undef COPY_FLAG
-#undef COPY_NOT_FLAG
-}
-
-
-/* Set Py_xxx global configuration variables from 'config' configuration. */
-static void
-config_set_global_vars(const PyConfig *config)
-{
-#define COPY_FLAG(ATTR, VAR) \
- if (config->ATTR != -1) { \
- VAR = config->ATTR; \
- }
-#define COPY_NOT_FLAG(ATTR, VAR) \
- if (config->ATTR != -1) { \
- VAR = !config->ATTR; \
- }
-
- COPY_FLAG(isolated, Py_IsolatedFlag);
- COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
- COPY_FLAG(bytes_warning, Py_BytesWarningFlag);
- COPY_FLAG(inspect, Py_InspectFlag);
- COPY_FLAG(interactive, Py_InteractiveFlag);
- COPY_FLAG(optimization_level, Py_OptimizeFlag);
- COPY_FLAG(parser_debug, Py_DebugFlag);
- COPY_FLAG(verbose, Py_VerboseFlag);
- COPY_FLAG(quiet, Py_QuietFlag);
-#ifdef MS_WINDOWS
- COPY_FLAG(legacy_windows_stdio, Py_LegacyWindowsStdioFlag);
-#endif
- COPY_NOT_FLAG(pathconfig_warnings, Py_FrozenFlag);
-
- COPY_NOT_FLAG(buffered_stdio, Py_UnbufferedStdioFlag);
- COPY_NOT_FLAG(site_import, Py_NoSiteFlag);
- COPY_NOT_FLAG(write_bytecode, Py_DontWriteBytecodeFlag);
- COPY_NOT_FLAG(user_site_directory, Py_NoUserSiteDirectory);
-
- /* Random or non-zero hash seed */
- Py_HashRandomizationFlag = (config->use_hash_seed == 0 ||
- config->hash_seed != 0);
-
-#undef COPY_FLAG
-#undef COPY_NOT_FLAG
-}
-
-
-/* Get the program name: use PYTHONEXECUTABLE and __PYVENV_LAUNCHER__
- environment variables on macOS if available. */
-static PyStatus
-config_init_program_name(PyConfig *config)
-{
- PyStatus status;
-
- /* If Py_SetProgramName() was called, use its value */
- const wchar_t *program_name = _Py_path_config.program_name;
- if (program_name != NULL) {
- config->program_name = _PyMem_RawWcsdup(program_name);
- if (config->program_name == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
- }
-
-#ifdef __APPLE__
- /* On MacOS X, when the Python interpreter is embedded in an
- application bundle, it gets executed by a bootstrapping script
- that does os.execve() with an argv[0] that's different from the
- actual Python executable. This is needed to keep the Finder happy,
- or rather, to work around Apple's overly strict requirements of
- the process name. However, we still need a usable sys.executable,
- so the actual executable path is passed in an environment variable.
- See Lib/plat-mac/bundlebuilder.py for details about the bootstrap
- script. */
- const char *p = config_get_env(config, "PYTHONEXECUTABLE");
- if (p != NULL) {
- status = CONFIG_SET_BYTES_STR(config, &config->program_name, p,
- "PYTHONEXECUTABLE environment variable");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- return _PyStatus_OK();
- }
-#ifdef WITH_NEXT_FRAMEWORK
- else {
- const char* pyvenv_launcher = getenv("__PYVENV_LAUNCHER__");
- if (pyvenv_launcher && *pyvenv_launcher) {
- /* Used by Mac/Tools/pythonw.c to forward
- * the argv0 of the stub executable
- */
- status = CONFIG_SET_BYTES_STR(config,
- &config->program_name,
- pyvenv_launcher,
- "__PYVENV_LAUNCHER__ environment variable");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- /*
- * This environment variable is used to communicate between
- * the stub launcher and the real interpreter and isn't needed
- * beyond this point.
- *
- * Clean up to avoid problems when launching other programs
- * later on.
- */
- (void)unsetenv("__PYVENV_LAUNCHER__");
-
- return _PyStatus_OK();
- }
- }
-#endif /* WITH_NEXT_FRAMEWORK */
-#endif /* __APPLE__ */
-
- /* Use argv[0] if available and non-empty */
- const PyWideStringList *argv = &config->argv;
- if (argv->length >= 1 && argv->items[0][0] != L'\0') {
- config->program_name = _PyMem_RawWcsdup(argv->items[0]);
- if (config->program_name == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
- }
-
- /* Last fall back: hardcoded name */
-#ifdef MS_WINDOWS
- const wchar_t *default_program_name = L"python";
-#else
- const wchar_t *default_program_name = L"python3";
-#endif
- status = PyConfig_SetString(config, &config->program_name,
- default_program_name);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- return _PyStatus_OK();
-}
-
-static PyStatus
-config_init_executable(PyConfig *config)
-{
- assert(config->executable == NULL);
-
- /* If Py_SetProgramFullPath() was called, use its value */
- const wchar_t *program_full_path = _Py_path_config.program_full_path;
- if (program_full_path != NULL) {
- PyStatus status = PyConfig_SetString(config,
- &config->executable,
- program_full_path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- return _PyStatus_OK();
- }
- return _PyStatus_OK();
-}
-
-
-static const wchar_t*
-config_get_xoption(const PyConfig *config, wchar_t *name)
-{
- return _Py_get_xoption(&config->xoptions, name);
-}
-
-
-static PyStatus
-config_init_home(PyConfig *config)
-{
- assert(config->home == NULL);
-
- /* If Py_SetPythonHome() was called, use its value */
- wchar_t *home = _Py_path_config.home;
- if (home) {
- PyStatus status = PyConfig_SetString(config, &config->home, home);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- return _PyStatus_OK();
- }
-
- return CONFIG_GET_ENV_DUP(config, &config->home,
- L"PYTHONHOME", "PYTHONHOME");
-}
-
-
-static PyStatus
-config_init_hash_seed(PyConfig *config)
-{
- const char *seed_text = config_get_env(config, "PYTHONHASHSEED");
-
- Py_BUILD_ASSERT(sizeof(_Py_HashSecret_t) == sizeof(_Py_HashSecret.uc));
- /* Convert a text seed to a numeric one */
- if (seed_text && strcmp(seed_text, "random") != 0) {
- const char *endptr = seed_text;
- unsigned long seed;
- errno = 0;
- seed = strtoul(seed_text, (char **)&endptr, 10);
- if (*endptr != '\0'
- || seed > 4294967295UL
- || (errno == ERANGE && seed == ULONG_MAX))
- {
- return _PyStatus_ERR("PYTHONHASHSEED must be \"random\" "
- "or an integer in range [0; 4294967295]");
- }
- /* Use a specific hash */
- config->use_hash_seed = 1;
- config->hash_seed = seed;
- }
- else {
- /* Use a random hash */
- config->use_hash_seed = 0;
- config->hash_seed = 0;
- }
- return _PyStatus_OK();
-}
-
-
-static int
-config_wstr_to_int(const wchar_t *wstr, int *result)
-{
- const wchar_t *endptr = wstr;
- errno = 0;
- long value = wcstol(wstr, (wchar_t **)&endptr, 10);
- if (*endptr != '\0' || errno == ERANGE) {
- return -1;
- }
- if (value < INT_MIN || value > INT_MAX) {
- return -1;
- }
-
- *result = (int)value;
- return 0;
-}
-
-
-static PyStatus
-config_read_env_vars(PyConfig *config)
-{
- PyStatus status;
- int use_env = config->use_environment;
-
- /* Get environment variables */
- _Py_get_env_flag(use_env, &config->parser_debug, "PYTHONDEBUG");
- _Py_get_env_flag(use_env, &config->verbose, "PYTHONVERBOSE");
- _Py_get_env_flag(use_env, &config->optimization_level, "PYTHONOPTIMIZE");
- _Py_get_env_flag(use_env, &config->inspect, "PYTHONINSPECT");
-
- int dont_write_bytecode = 0;
- _Py_get_env_flag(use_env, &dont_write_bytecode, "PYTHONDONTWRITEBYTECODE");
- if (dont_write_bytecode) {
- config->write_bytecode = 0;
- }
-
- int no_user_site_directory = 0;
- _Py_get_env_flag(use_env, &no_user_site_directory, "PYTHONNOUSERSITE");
- if (no_user_site_directory) {
- config->user_site_directory = 0;
- }
-
- int unbuffered_stdio = 0;
- _Py_get_env_flag(use_env, &unbuffered_stdio, "PYTHONUNBUFFERED");
- if (unbuffered_stdio) {
- config->buffered_stdio = 0;
- }
-
-#ifdef MS_WINDOWS
- _Py_get_env_flag(use_env, &config->legacy_windows_stdio,
- "PYTHONLEGACYWINDOWSSTDIO");
-#endif
-
- if (config_get_env(config, "PYTHONDUMPREFS")) {
- config->dump_refs = 1;
- }
- if (config_get_env(config, "PYTHONMALLOCSTATS")) {
- config->malloc_stats = 1;
- }
-
- if (config->pythonpath_env == NULL) {
- status = CONFIG_GET_ENV_DUP(config, &config->pythonpath_env,
- L"PYTHONPATH", "PYTHONPATH");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if(config->platlibdir == NULL) {
- status = CONFIG_GET_ENV_DUP(config, &config->platlibdir,
- L"PYTHONPLATLIBDIR", "PYTHONPLATLIBDIR");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->use_hash_seed < 0) {
- status = config_init_hash_seed(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-config_init_tracemalloc(PyConfig *config)
-{
- int nframe;
- int valid;
-
- const char *env = config_get_env(config, "PYTHONTRACEMALLOC");
- if (env) {
- if (!_Py_str_to_int(env, &nframe)) {
- valid = (nframe >= 0);
- }
- else {
- valid = 0;
- }
- if (!valid) {
- return _PyStatus_ERR("PYTHONTRACEMALLOC: invalid number of frames");
- }
- config->tracemalloc = nframe;
- }
-
- const wchar_t *xoption = config_get_xoption(config, L"tracemalloc");
- if (xoption) {
- const wchar_t *sep = wcschr(xoption, L'=');
- if (sep) {
- if (!config_wstr_to_int(sep + 1, &nframe)) {
- valid = (nframe >= 0);
- }
- else {
- valid = 0;
- }
- if (!valid) {
- return _PyStatus_ERR("-X tracemalloc=NFRAME: "
- "invalid number of frames");
- }
- }
- else {
- /* -X tracemalloc behaves as -X tracemalloc=1 */
- nframe = 1;
- }
- config->tracemalloc = nframe;
- }
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-config_init_pycache_prefix(PyConfig *config)
-{
- assert(config->pycache_prefix == NULL);
-
- const wchar_t *xoption = config_get_xoption(config, L"pycache_prefix");
- if (xoption) {
- const wchar_t *sep = wcschr(xoption, L'=');
- if (sep && wcslen(sep) > 1) {
- config->pycache_prefix = _PyMem_RawWcsdup(sep + 1);
- if (config->pycache_prefix == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
- else {
- // PYTHONPYCACHEPREFIX env var ignored
- // if "-X pycache_prefix=" option is used
- config->pycache_prefix = NULL;
- }
- return _PyStatus_OK();
- }
-
- return CONFIG_GET_ENV_DUP(config, &config->pycache_prefix,
- L"PYTHONPYCACHEPREFIX",
- "PYTHONPYCACHEPREFIX");
-}
-
-
-static PyStatus
-config_read_complex_options(PyConfig *config)
-{
- /* More complex options configured by env var and -X option */
- if (config->faulthandler < 0) {
- if (config_get_env(config, "PYTHONFAULTHANDLER")
- || config_get_xoption(config, L"faulthandler")) {
- config->faulthandler = 1;
- }
- }
- if (config_get_env(config, "PYTHONPROFILEIMPORTTIME")
- || config_get_xoption(config, L"importtime")) {
- config->import_time = 1;
- }
-
- if (config_get_env(config, "PYTHONOLDPARSER")
- || config_get_xoption(config, L"oldparser")) {
- config->_use_peg_parser = 0;
- }
-
- PyStatus status;
- if (config->tracemalloc < 0) {
- status = config_init_tracemalloc(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->pycache_prefix == NULL) {
- status = config_init_pycache_prefix(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- return _PyStatus_OK();
-}
-
-
-static const wchar_t *
-config_get_stdio_errors(void)
-{
-#ifndef MS_WINDOWS
- const char *loc = setlocale(LC_CTYPE, NULL);
- if (loc != NULL) {
- /* surrogateescape is the default in the legacy C and POSIX locales */
- if (strcmp(loc, "C") == 0 || strcmp(loc, "POSIX") == 0) {
- return L"surrogateescape";
- }
-
-#ifdef PY_COERCE_C_LOCALE
- /* surrogateescape is the default in locale coercion target locales */
- if (_Py_IsLocaleCoercionTarget(loc)) {
- return L"surrogateescape";
- }
-#endif
- }
-
- return L"strict";
-#else
- /* On Windows, always use surrogateescape by default */
- return L"surrogateescape";
-#endif
-}
-
-
-static PyStatus
-config_get_locale_encoding(PyConfig *config, wchar_t **locale_encoding)
-{
-#ifdef MS_WINDOWS
- char encoding[20];
- PyOS_snprintf(encoding, sizeof(encoding), "cp%u", GetACP());
- return PyConfig_SetBytesString(config, locale_encoding, encoding);
-#elif defined(_Py_FORCE_UTF8_LOCALE)
- return PyConfig_SetString(config, locale_encoding, L"utf-8");
-#else
- const char *encoding = nl_langinfo(CODESET);
- if (!encoding || encoding[0] == '\0') {
- return _PyStatus_ERR("failed to get the locale encoding: "
- "nl_langinfo(CODESET) failed");
- }
- /* nl_langinfo(CODESET) is decoded by Py_DecodeLocale() */
- return CONFIG_SET_BYTES_STR(config,
- locale_encoding, encoding,
- "nl_langinfo(CODESET)");
-#endif
-}
-
-
-static PyStatus
-config_init_stdio_encoding(PyConfig *config,
- const PyPreConfig *preconfig)
-{
- PyStatus status;
-
- /* If Py_SetStandardStreamEncoding() have been called, use these
- parameters. */
- if (config->stdio_encoding == NULL && _Py_StandardStreamEncoding != NULL) {
- status = CONFIG_SET_BYTES_STR(config, &config->stdio_encoding,
- _Py_StandardStreamEncoding,
- "_Py_StandardStreamEncoding");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->stdio_errors == NULL && _Py_StandardStreamErrors != NULL) {
- status = CONFIG_SET_BYTES_STR(config, &config->stdio_errors,
- _Py_StandardStreamErrors,
- "_Py_StandardStreamErrors");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->stdio_encoding != NULL && config->stdio_errors != NULL) {
- return _PyStatus_OK();
- }
-
- /* PYTHONIOENCODING environment variable */
- const char *opt = config_get_env(config, "PYTHONIOENCODING");
- if (opt) {
- char *pythonioencoding = _PyMem_RawStrdup(opt);
- if (pythonioencoding == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- char *errors = strchr(pythonioencoding, ':');
- if (errors) {
- *errors = '\0';
- errors++;
- if (!errors[0]) {
- errors = NULL;
- }
- }
-
- /* Does PYTHONIOENCODING contain an encoding? */
- if (pythonioencoding[0]) {
- if (config->stdio_encoding == NULL) {
- status = CONFIG_SET_BYTES_STR(config, &config->stdio_encoding,
- pythonioencoding,
- "PYTHONIOENCODING environment variable");
- if (_PyStatus_EXCEPTION(status)) {
- PyMem_RawFree(pythonioencoding);
- return status;
- }
- }
-
- /* If the encoding is set but not the error handler,
- use "strict" error handler by default.
- PYTHONIOENCODING=latin1 behaves as
- PYTHONIOENCODING=latin1:strict. */
- if (!errors) {
- errors = "strict";
- }
- }
-
- if (config->stdio_errors == NULL && errors != NULL) {
- status = CONFIG_SET_BYTES_STR(config, &config->stdio_errors,
- errors,
- "PYTHONIOENCODING environment variable");
- if (_PyStatus_EXCEPTION(status)) {
- PyMem_RawFree(pythonioencoding);
- return status;
- }
- }
-
- PyMem_RawFree(pythonioencoding);
- }
-
- /* UTF-8 Mode uses UTF-8/surrogateescape */
- if (preconfig->utf8_mode) {
- if (config->stdio_encoding == NULL) {
- status = PyConfig_SetString(config, &config->stdio_encoding,
- L"utf-8");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- if (config->stdio_errors == NULL) {
- status = PyConfig_SetString(config, &config->stdio_errors,
- L"surrogateescape");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- }
-
- /* Choose the default error handler based on the current locale. */
- if (config->stdio_encoding == NULL) {
- status = config_get_locale_encoding(config, &config->stdio_encoding);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- if (config->stdio_errors == NULL) {
- const wchar_t *errors = config_get_stdio_errors();
- assert(errors != NULL);
-
- status = PyConfig_SetString(config, &config->stdio_errors, errors);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-config_init_fs_encoding(PyConfig *config, const PyPreConfig *preconfig)
-{
- PyStatus status;
-
- if (config->filesystem_encoding == NULL) {
-#ifdef _Py_FORCE_UTF8_FS_ENCODING
- status = PyConfig_SetString(config, &config->filesystem_encoding, L"utf-8");
-#else
-
-#ifdef MS_WINDOWS
- if (preconfig->legacy_windows_fs_encoding) {
- /* Legacy Windows filesystem encoding: mbcs/replace */
- status = PyConfig_SetString(config, &config->filesystem_encoding,
- L"mbcs");
- }
- else
-#endif
- if (preconfig->utf8_mode) {
- status = PyConfig_SetString(config, &config->filesystem_encoding,
- L"utf-8");
- }
-#ifndef MS_WINDOWS
- else if (_Py_GetForceASCII()) {
- status = PyConfig_SetString(config, &config->filesystem_encoding,
- L"ascii");
- }
-#endif
- else {
-#ifdef MS_WINDOWS
- /* Windows defaults to utf-8/surrogatepass (PEP 529). */
- status = PyConfig_SetString(config, &config->filesystem_encoding,
- L"utf-8");
-#else
- status = config_get_locale_encoding(config,
- &config->filesystem_encoding);
-#endif
- }
-#endif /* !_Py_FORCE_UTF8_FS_ENCODING */
-
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->filesystem_errors == NULL) {
- const wchar_t *errors;
-#ifdef MS_WINDOWS
- if (preconfig->legacy_windows_fs_encoding) {
- errors = L"replace";
- }
- else {
- errors = L"surrogatepass";
- }
-#else
- errors = L"surrogateescape";
-#endif
- status = PyConfig_SetString(config, &config->filesystem_errors, errors);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-config_read(PyConfig *config)
-{
- PyStatus status;
- const PyPreConfig *preconfig = &_PyRuntime.preconfig;
-
- if (config->use_environment) {
- status = config_read_env_vars(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- /* -X options */
- if (config_get_xoption(config, L"showrefcount")) {
- config->show_ref_count = 1;
- }
-
- status = config_read_complex_options(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (config->home == NULL) {
- status = config_init_home(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->executable == NULL) {
- status = config_init_executable(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if(config->platlibdir == NULL) {
- status = CONFIG_SET_BYTES_STR(config, &config->platlibdir, PLATLIBDIR,
- "PLATLIBDIR macro");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->_install_importlib) {
- status = _PyConfig_InitPathConfig(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- /* default values */
- if (config->dev_mode) {
- if (config->faulthandler < 0) {
- config->faulthandler = 1;
- }
- }
- if (config->faulthandler < 0) {
- config->faulthandler = 0;
- }
- if (config->tracemalloc < 0) {
- config->tracemalloc = 0;
- }
- if (config->use_hash_seed < 0) {
- config->use_hash_seed = 0;
- config->hash_seed = 0;
- }
-
- if (config->filesystem_encoding == NULL || config->filesystem_errors == NULL) {
- status = config_init_fs_encoding(config, preconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- status = config_init_stdio_encoding(config, preconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (config->argv.length < 1) {
- /* Ensure at least one (empty) argument is seen */
- status = PyWideStringList_Append(&config->argv, L"");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->check_hash_pycs_mode == NULL) {
- status = PyConfig_SetString(config, &config->check_hash_pycs_mode,
- L"default");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->configure_c_stdio < 0) {
- config->configure_c_stdio = 1;
- }
-
- return _PyStatus_OK();
-}
-
-
-static void
-config_init_stdio(const PyConfig *config)
-{
-#if defined(MS_WINDOWS) || defined(__CYGWIN__)
- /* don't translate newlines (\r\n <=> \n) */
- _setmode(fileno(stdin), O_BINARY);
- _setmode(fileno(stdout), O_BINARY);
- _setmode(fileno(stderr), O_BINARY);
-#endif
-
- if (!config->buffered_stdio) {
-#ifdef HAVE_SETVBUF
- setvbuf(stdin, (char *)NULL, _IONBF, BUFSIZ);
- setvbuf(stdout, (char *)NULL, _IONBF, BUFSIZ);
- setvbuf(stderr, (char *)NULL, _IONBF, BUFSIZ);
-#else /* !HAVE_SETVBUF */
- setbuf(stdin, (char *)NULL);
- setbuf(stdout, (char *)NULL);
- setbuf(stderr, (char *)NULL);
-#endif /* !HAVE_SETVBUF */
- }
- else if (config->interactive) {
-#ifdef MS_WINDOWS
- /* Doesn't have to have line-buffered -- use unbuffered */
- /* Any set[v]buf(stdin, ...) screws up Tkinter :-( */
- setvbuf(stdout, (char *)NULL, _IONBF, BUFSIZ);
-#else /* !MS_WINDOWS */
-#ifdef HAVE_SETVBUF
- setvbuf(stdin, (char *)NULL, _IOLBF, BUFSIZ);
- setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
-#endif /* HAVE_SETVBUF */
-#endif /* !MS_WINDOWS */
- /* Leave stderr alone - it should be unbuffered anyway. */
- }
-}
-
-
-/* Write the configuration:
-
- - set Py_xxx global configuration variables
- - initialize C standard streams (stdin, stdout, stderr) */
-PyStatus
-_PyConfig_Write(const PyConfig *config, _PyRuntimeState *runtime)
-{
- config_set_global_vars(config);
-
- if (config->configure_c_stdio) {
- config_init_stdio(config);
- }
-
- /* Write the new pre-configuration into _PyRuntime */
- PyPreConfig *preconfig = &runtime->preconfig;
- preconfig->isolated = config->isolated;
- preconfig->use_environment = config->use_environment;
- preconfig->dev_mode = config->dev_mode;
-
- if (_Py_SetArgcArgv(config->_orig_argv.length,
- config->_orig_argv.items) < 0)
- {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
-}
-
-
-/* --- PyConfig command line parser -------------------------- */
-
-static void
-config_usage(int error, const wchar_t* program)
-{
- FILE *f = error ? stderr : stdout;
-
- fprintf(f, usage_line, program);
- if (error)
- fprintf(f, "Try `python -h' for more information.\n");
- else {
- fputs(usage_1, f);
- fputs(usage_2, f);
- fputs(usage_3, f);
- fprintf(f, usage_4, (wint_t)DELIM);
- fprintf(f, usage_5, (wint_t)DELIM, PYTHONHOMEHELP);
- fputs(usage_6, f);
- }
-}
-
-
-/* Parse the command line arguments */
-static PyStatus
-config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions,
- Py_ssize_t *opt_index)
-{
- PyStatus status;
- const PyWideStringList *argv = &config->argv;
- int print_version = 0;
- const wchar_t* program = config->program_name;
-
- _PyOS_ResetGetOpt();
- do {
- int longindex = -1;
- int c = _PyOS_GetOpt(argv->length, argv->items, &longindex);
- if (c == EOF) {
- break;
- }
-
- if (c == 'c') {
- if (config->run_command == NULL) {
- /* -c is the last option; following arguments
- that look like options are left for the
- command to interpret. */
- size_t len = wcslen(_PyOS_optarg) + 1 + 1;
- wchar_t *command = PyMem_RawMalloc(sizeof(wchar_t) * len);
- if (command == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- memcpy(command, _PyOS_optarg, (len - 2) * sizeof(wchar_t));
- command[len - 2] = '\n';
- command[len - 1] = 0;
- config->run_command = command;
- }
- break;
- }
-
- if (c == 'm') {
- /* -m is the last option; following arguments
- that look like options are left for the
- module to interpret. */
- if (config->run_module == NULL) {
- config->run_module = _PyMem_RawWcsdup(_PyOS_optarg);
- if (config->run_module == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
- break;
- }
-
- switch (c) {
- case 0:
- // Handle long option.
- assert(longindex == 0); // Only one long option now.
- if (wcscmp(_PyOS_optarg, L"always") == 0
- || wcscmp(_PyOS_optarg, L"never") == 0
- || wcscmp(_PyOS_optarg, L"default") == 0)
- {
- status = PyConfig_SetString(config, &config->check_hash_pycs_mode,
- _PyOS_optarg);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- } else {
- fprintf(stderr, "--check-hash-based-pycs must be one of "
- "'default', 'always', or 'never'\n");
- config_usage(1, program);
- return _PyStatus_EXIT(2);
- }
- break;
-
- case 'b':
- config->bytes_warning++;
- break;
-
- case 'd':
- config->parser_debug++;
- break;
-
- case 'i':
- config->inspect++;
- config->interactive++;
- break;
-
- case 'E':
- case 'I':
- case 'X':
- /* option handled by _PyPreCmdline_Read() */
- break;
-
- /* case 'J': reserved for Jython */
-
- case 'O':
- config->optimization_level++;
- break;
-
- case 'B':
- config->write_bytecode = 0;
- break;
-
- case 's':
- config->user_site_directory = 0;
- break;
-
- case 'S':
- config->site_import = 0;
- break;
-
- case 't':
- /* ignored for backwards compatibility */
- break;
-
- case 'u':
- config->buffered_stdio = 0;
- break;
-
- case 'v':
- config->verbose++;
- break;
-
- case 'x':
- config->skip_source_first_line = 1;
- break;
-
- case 'h':
- case '?':
- config_usage(0, program);
- return _PyStatus_EXIT(0);
-
- case 'V':
- print_version++;
- break;
-
- case 'W':
- status = PyWideStringList_Append(warnoptions, _PyOS_optarg);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- break;
-
- case 'q':
- config->quiet++;
- break;
-
- case 'R':
- config->use_hash_seed = 0;
- break;
-
- /* This space reserved for other options */
-
- default:
- /* unknown argument: parsing failed */
- config_usage(1, program);
- return _PyStatus_EXIT(2);
- }
- } while (1);
-
- if (print_version) {
- printf("Python %s\n",
- (print_version >= 2) ? Py_GetVersion() : PY_VERSION);
- return _PyStatus_EXIT(0);
- }
-
- if (config->run_command == NULL && config->run_module == NULL
- && _PyOS_optind < argv->length
- && wcscmp(argv->items[_PyOS_optind], L"-") != 0
- && config->run_filename == NULL)
- {
- config->run_filename = _PyMem_RawWcsdup(argv->items[_PyOS_optind]);
- if (config->run_filename == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- }
-
- if (config->run_command != NULL || config->run_module != NULL) {
- /* Backup _PyOS_optind */
- _PyOS_optind--;
- }
-
- *opt_index = _PyOS_optind;
-
- return _PyStatus_OK();
-}
-
-
-#ifdef MS_WINDOWS
-# define WCSTOK wcstok_s
-#else
-# define WCSTOK wcstok
-#endif
-
-/* Get warning options from PYTHONWARNINGS environment variable. */
-static PyStatus
-config_init_env_warnoptions(PyConfig *config, PyWideStringList *warnoptions)
-{
- PyStatus status;
- /* CONFIG_GET_ENV_DUP requires dest to be initialized to NULL */
- wchar_t *env = NULL;
- status = CONFIG_GET_ENV_DUP(config, &env,
- L"PYTHONWARNINGS", "PYTHONWARNINGS");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- /* env var is not set or is empty */
- if (env == NULL) {
- return _PyStatus_OK();
- }
-
-
- wchar_t *warning, *context = NULL;
- for (warning = WCSTOK(env, L",", &context);
- warning != NULL;
- warning = WCSTOK(NULL, L",", &context))
- {
- status = PyWideStringList_Append(warnoptions, warning);
- if (_PyStatus_EXCEPTION(status)) {
- PyMem_RawFree(env);
- return status;
- }
- }
- PyMem_RawFree(env);
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-warnoptions_append(PyConfig *config, PyWideStringList *options,
- const wchar_t *option)
-{
- /* config_init_warnoptions() add existing config warnoptions at the end:
- ensure that the new option is not already present in this list to
- prevent change the options order when config_init_warnoptions() is
- called twice. */
- if (_PyWideStringList_Find(&config->warnoptions, option)) {
- /* Already present: do nothing */
- return _PyStatus_OK();
- }
- if (_PyWideStringList_Find(options, option)) {
- /* Already present: do nothing */
- return _PyStatus_OK();
- }
- return PyWideStringList_Append(options, option);
-}
-
-
-static PyStatus
-warnoptions_extend(PyConfig *config, PyWideStringList *options,
- const PyWideStringList *options2)
-{
- const Py_ssize_t len = options2->length;
- wchar_t *const *items = options2->items;
-
- for (Py_ssize_t i = 0; i < len; i++) {
- PyStatus status = warnoptions_append(config, options, items[i]);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-config_init_warnoptions(PyConfig *config,
- const PyWideStringList *cmdline_warnoptions,
- const PyWideStringList *env_warnoptions,
- const PyWideStringList *sys_warnoptions)
-{
- PyStatus status;
- PyWideStringList options = _PyWideStringList_INIT;
-
- /* Priority of warnings options, lowest to highest:
- *
- * - any implicit filters added by _warnings.c/warnings.py
- * - PyConfig.dev_mode: "default" filter
- * - PYTHONWARNINGS environment variable
- * - '-W' command line options
- * - PyConfig.bytes_warning ('-b' and '-bb' command line options):
- * "default::BytesWarning" or "error::BytesWarning" filter
- * - early PySys_AddWarnOption() calls
- * - PyConfig.warnoptions
- *
- * PyConfig.warnoptions is copied to sys.warnoptions. Since the warnings
- * module works on the basis of "the most recently added filter will be
- * checked first", we add the lowest precedence entries first so that later
- * entries override them.
- */
-
- if (config->dev_mode) {
- status = warnoptions_append(config, &options, L"default");
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
- }
- }
-
- status = warnoptions_extend(config, &options, env_warnoptions);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
- }
-
- status = warnoptions_extend(config, &options, cmdline_warnoptions);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
- }
-
- /* If the bytes_warning_flag isn't set, bytesobject.c and bytearrayobject.c
- * don't even try to emit a warning, so we skip setting the filter in that
- * case.
- */
- if (config->bytes_warning) {
- const wchar_t *filter;
- if (config->bytes_warning> 1) {
- filter = L"error::BytesWarning";
- }
- else {
- filter = L"default::BytesWarning";
- }
- status = warnoptions_append(config, &options, filter);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
- }
- }
-
- status = warnoptions_extend(config, &options, sys_warnoptions);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
- }
-
- /* Always add all PyConfig.warnoptions options */
- status = _PyWideStringList_Extend(&options, &config->warnoptions);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
- }
-
- _PyWideStringList_Clear(&config->warnoptions);
- config->warnoptions = options;
- return _PyStatus_OK();
-
-error:
- _PyWideStringList_Clear(&options);
- return status;
-}
-
-
-static PyStatus
-config_update_argv(PyConfig *config, Py_ssize_t opt_index)
-{
- const PyWideStringList *cmdline_argv = &config->argv;
- PyWideStringList config_argv = _PyWideStringList_INIT;
-
- /* Copy argv to be able to modify it (to force -c/-m) */
- if (cmdline_argv->length <= opt_index) {
- /* Ensure at least one (empty) argument is seen */
- PyStatus status = PyWideStringList_Append(&config_argv, L"");
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- else {
- PyWideStringList slice;
- slice.length = cmdline_argv->length - opt_index;
- slice.items = &cmdline_argv->items[opt_index];
- if (_PyWideStringList_Copy(&config_argv, &slice) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- }
- assert(config_argv.length >= 1);
-
- wchar_t *arg0 = NULL;
- if (config->run_command != NULL) {
- /* Force sys.argv[0] = '-c' */
- arg0 = L"-c";
- }
- else if (config->run_module != NULL) {
- /* Force sys.argv[0] = '-m'*/
- arg0 = L"-m";
- }
-
- if (arg0 != NULL) {
- arg0 = _PyMem_RawWcsdup(arg0);
- if (arg0 == NULL) {
- _PyWideStringList_Clear(&config_argv);
- return _PyStatus_NO_MEMORY();
- }
-
- PyMem_RawFree(config_argv.items[0]);
- config_argv.items[0] = arg0;
- }
-
- _PyWideStringList_Clear(&config->argv);
- config->argv = config_argv;
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-core_read_precmdline(PyConfig *config, _PyPreCmdline *precmdline)
-{
- PyStatus status;
-
- if (config->parse_argv) {
- if (_PyWideStringList_Copy(&precmdline->argv, &config->argv) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- }
-
- PyPreConfig preconfig;
-
- status = _PyPreConfig_InitFromPreConfig(&preconfig, &_PyRuntime.preconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- _PyPreConfig_GetConfig(&preconfig, config);
-
- status = _PyPreCmdline_Read(precmdline, &preconfig);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = _PyPreCmdline_SetConfig(precmdline, config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- return _PyStatus_OK();
-}
-
-
-/* Get run_filename absolute path */
-static PyStatus
-config_run_filename_abspath(PyConfig *config)
-{
- if (!config->run_filename) {
- return _PyStatus_OK();
- }
-
-#ifndef MS_WINDOWS
- if (_Py_isabs(config->run_filename)) {
- /* path is already absolute */
- return _PyStatus_OK();
- }
-#endif
-
- wchar_t *abs_filename;
- if (_Py_abspath(config->run_filename, &abs_filename) < 0) {
- /* failed to get the absolute path of the command line filename:
- ignore the error, keep the relative path */
- return _PyStatus_OK();
- }
- if (abs_filename == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- PyMem_RawFree(config->run_filename);
- config->run_filename = abs_filename;
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-config_read_cmdline(PyConfig *config)
-{
- PyStatus status;
- PyWideStringList cmdline_warnoptions = _PyWideStringList_INIT;
- PyWideStringList env_warnoptions = _PyWideStringList_INIT;
- PyWideStringList sys_warnoptions = _PyWideStringList_INIT;
-
- if (config->parse_argv < 0) {
- config->parse_argv = 1;
- }
-
- if (config->program_name == NULL) {
- status = config_init_program_name(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->parse_argv) {
- Py_ssize_t opt_index;
- status = config_parse_cmdline(config, &cmdline_warnoptions, &opt_index);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = config_run_filename_abspath(config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = config_update_argv(config, opt_index);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
- }
- else {
- status = config_run_filename_abspath(config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
- }
-
- if (config->use_environment) {
- status = config_init_env_warnoptions(config, &env_warnoptions);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
- }
-
- /* Handle early PySys_AddWarnOption() calls */
- status = _PySys_ReadPreinitWarnOptions(&sys_warnoptions);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = config_init_warnoptions(config,
- &cmdline_warnoptions,
- &env_warnoptions,
- &sys_warnoptions);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = _PyStatus_OK();
-
-done:
- _PyWideStringList_Clear(&cmdline_warnoptions);
- _PyWideStringList_Clear(&env_warnoptions);
- _PyWideStringList_Clear(&sys_warnoptions);
- return status;
-}
-
-
-PyStatus
-_PyConfig_SetPyArgv(PyConfig *config, const _PyArgv *args)
-{
- PyStatus status = _Py_PreInitializeFromConfig(config, args);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- return _PyArgv_AsWstrList(args, &config->argv);
-}
-
-
-/* Set config.argv: decode argv using Py_DecodeLocale(). Pre-initialize Python
- if needed to ensure that encodings are properly configured. */
-PyStatus
-PyConfig_SetBytesArgv(PyConfig *config, Py_ssize_t argc, char * const *argv)
-{
- _PyArgv args = {
- .argc = argc,
- .use_bytes_argv = 1,
- .bytes_argv = argv,
- .wchar_argv = NULL};
- return _PyConfig_SetPyArgv(config, &args);
-}
-
-
-PyStatus
-PyConfig_SetArgv(PyConfig *config, Py_ssize_t argc, wchar_t * const *argv)
-{
- _PyArgv args = {
- .argc = argc,
- .use_bytes_argv = 0,
- .bytes_argv = NULL,
- .wchar_argv = argv};
- return _PyConfig_SetPyArgv(config, &args);
-}
-
-
-PyStatus
-PyConfig_SetWideStringList(PyConfig *config, PyWideStringList *list,
- Py_ssize_t length, wchar_t **items)
-{
- PyStatus status = _Py_PreInitializeFromConfig(config, NULL);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- PyWideStringList list2 = {.length = length, .items = items};
- if (_PyWideStringList_Copy(list, &list2) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- return _PyStatus_OK();
-}
-
-
-/* Read the configuration into PyConfig from:
-
- * Command line arguments
- * Environment variables
- * Py_xxx global configuration variables
-
- The only side effects are to modify config and to call _Py_SetArgcArgv(). */
-PyStatus
-PyConfig_Read(PyConfig *config)
-{
- PyStatus status;
-
- status = _Py_PreInitializeFromConfig(config, NULL);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- config_get_global_vars(config);
-
- if (config->_orig_argv.length == 0
- && !(config->argv.length == 1
- && wcscmp(config->argv.items[0], L"") == 0))
- {
- if (_PyWideStringList_Copy(&config->_orig_argv, &config->argv) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- }
-
- _PyPreCmdline precmdline = _PyPreCmdline_INIT;
- status = core_read_precmdline(config, &precmdline);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- assert(config->isolated >= 0);
- if (config->isolated) {
- config->use_environment = 0;
- config->user_site_directory = 0;
- }
-
- status = config_read_cmdline(config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- /* Handle early PySys_AddXOption() calls */
- status = _PySys_ReadPreinitXOptions(config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = config_read(config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- /* Check config consistency */
- assert(config->isolated >= 0);
- assert(config->use_environment >= 0);
- assert(config->dev_mode >= 0);
- assert(config->_use_peg_parser >= 0);
- assert(config->install_signal_handlers >= 0);
- assert(config->use_hash_seed >= 0);
- assert(config->faulthandler >= 0);
- assert(config->tracemalloc >= 0);
- assert(config->site_import >= 0);
- assert(config->bytes_warning >= 0);
- assert(config->inspect >= 0);
- assert(config->interactive >= 0);
- assert(config->optimization_level >= 0);
- assert(config->parser_debug >= 0);
- assert(config->write_bytecode >= 0);
- assert(config->verbose >= 0);
- assert(config->quiet >= 0);
- assert(config->user_site_directory >= 0);
- assert(config->parse_argv >= 0);
- assert(config->configure_c_stdio >= 0);
- assert(config->buffered_stdio >= 0);
- assert(config->program_name != NULL);
- assert(_PyWideStringList_CheckConsistency(&config->argv));
- /* sys.argv must be non-empty: empty argv is replaced with [''] */
- assert(config->argv.length >= 1);
- assert(_PyWideStringList_CheckConsistency(&config->xoptions));
- assert(_PyWideStringList_CheckConsistency(&config->warnoptions));
- assert(_PyWideStringList_CheckConsistency(&config->module_search_paths));
- if (config->_install_importlib) {
- assert(config->module_search_paths_set != 0);
- /* don't check config->module_search_paths */
- assert(config->executable != NULL);
- assert(config->base_executable != NULL);
- assert(config->prefix != NULL);
- assert(config->base_prefix != NULL);
- assert(config->exec_prefix != NULL);
- assert(config->base_exec_prefix != NULL);
- }
- assert(config->platlibdir != NULL);
- assert(config->filesystem_encoding != NULL);
- assert(config->filesystem_errors != NULL);
- assert(config->stdio_encoding != NULL);
- assert(config->stdio_errors != NULL);
-#ifdef MS_WINDOWS
- assert(config->legacy_windows_stdio >= 0);
-#endif
- /* -c and -m options are exclusive */
- assert(!(config->run_command != NULL && config->run_module != NULL));
- assert(config->check_hash_pycs_mode != NULL);
- assert(config->_install_importlib >= 0);
- assert(config->pathconfig_warnings >= 0);
- assert(_PyWideStringList_CheckConsistency(&config->_orig_argv));
-
- status = _PyStatus_OK();
-
-done:
- _PyPreCmdline_Clear(&precmdline);
- return status;
-}
-
-
-PyObject*
-_Py_GetConfigsAsDict(void)
-{
- PyObject *result = NULL;
- PyObject *dict = NULL;
-
- result = PyDict_New();
- if (result == NULL) {
- goto error;
- }
-
- /* global result */
- dict = _Py_GetGlobalVariablesAsDict();
- if (dict == NULL) {
- goto error;
- }
- if (PyDict_SetItemString(result, "global_config", dict) < 0) {
- goto error;
- }
- Py_CLEAR(dict);
-
- /* pre config */
- PyThreadState *tstate = _PyThreadState_GET();
- const PyPreConfig *pre_config = &tstate->interp->runtime->preconfig;
- dict = _PyPreConfig_AsDict(pre_config);
- if (dict == NULL) {
- goto error;
- }
- if (PyDict_SetItemString(result, "pre_config", dict) < 0) {
- goto error;
- }
- Py_CLEAR(dict);
-
- /* core config */
- const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
- dict = config_as_dict(config);
- if (dict == NULL) {
- goto error;
- }
- if (PyDict_SetItemString(result, "config", dict) < 0) {
- goto error;
- }
- Py_CLEAR(dict);
-
- return result;
-
-error:
- Py_XDECREF(result);
- Py_XDECREF(dict);
- return NULL;
-}
-
-
-static void
-init_dump_ascii_wstr(const wchar_t *str)
-{
- if (str == NULL) {
- PySys_WriteStderr("(not set)");
- return;
- }
-
- PySys_WriteStderr("'");
- for (; *str != L'\0'; str++) {
- unsigned int ch = (unsigned int)*str;
- if (ch == L'\'') {
- PySys_WriteStderr("\\'");
- } else if (0x20 <= ch && ch < 0x7f) {
- PySys_WriteStderr("%c", ch);
- }
- else if (ch <= 0xff) {
- PySys_WriteStderr("\\x%02x", ch);
- }
-#if SIZEOF_WCHAR_T > 2
- else if (ch > 0xffff) {
- PySys_WriteStderr("\\U%08x", ch);
- }
-#endif
- else {
- PySys_WriteStderr("\\u%04x", ch);
- }
- }
- PySys_WriteStderr("'");
-}
-
-
-/* Dump the Python path configuration into sys.stderr */
-void
-_Py_DumpPathConfig(PyThreadState *tstate)
-{
- PyObject *exc_type, *exc_value, *exc_tb;
- _PyErr_Fetch(tstate, &exc_type, &exc_value, &exc_tb);
-
- PySys_WriteStderr("Python path configuration:\n");
-
-#define DUMP_CONFIG(NAME, FIELD) \
- do { \
- PySys_WriteStderr(" " NAME " = "); \
- init_dump_ascii_wstr(config->FIELD); \
- PySys_WriteStderr("\n"); \
- } while (0)
-
- const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
- DUMP_CONFIG("PYTHONHOME", home);
- DUMP_CONFIG("PYTHONPATH", pythonpath_env);
- DUMP_CONFIG("program name", program_name);
- PySys_WriteStderr(" isolated = %i\n", config->isolated);
- PySys_WriteStderr(" environment = %i\n", config->use_environment);
- PySys_WriteStderr(" user site = %i\n", config->user_site_directory);
- PySys_WriteStderr(" import site = %i\n", config->site_import);
-#undef DUMP_CONFIG
-
-#define DUMP_SYS(NAME) \
- do { \
- obj = PySys_GetObject(#NAME); \
- PySys_FormatStderr(" sys.%s = ", #NAME); \
- if (obj != NULL) { \
- PySys_FormatStderr("%A", obj); \
- } \
- else { \
- PySys_WriteStderr("(not set)"); \
- } \
- PySys_FormatStderr("\n"); \
- } while (0)
-
- PyObject *obj;
- DUMP_SYS(_base_executable);
- DUMP_SYS(base_prefix);
- DUMP_SYS(base_exec_prefix);
- DUMP_SYS(platlibdir);
- DUMP_SYS(executable);
- DUMP_SYS(prefix);
- DUMP_SYS(exec_prefix);
-#undef DUMP_SYS
-
- PyObject *sys_path = PySys_GetObject("path"); /* borrowed reference */
- if (sys_path != NULL && PyList_Check(sys_path)) {
- PySys_WriteStderr(" sys.path = [\n");
- Py_ssize_t len = PyList_GET_SIZE(sys_path);
- for (Py_ssize_t i=0; i < len; i++) {
- PyObject *path = PyList_GET_ITEM(sys_path, i);
- PySys_FormatStderr(" %A,\n", path);
- }
- PySys_WriteStderr(" ]\n");
- }
-
- _PyErr_Restore(tstate, exc_type, exc_value, exc_tb);
-}
+#include "Python.h"
+#include "pycore_fileutils.h" // _Py_HasFileSystemDefaultEncodeErrors
+#include "pycore_getopt.h" // _PyOS_GetOpt()
+#include "pycore_initconfig.h" // _PyStatus_OK()
+#include "pycore_interp.h" // _PyInterpreterState.runtime
+#include "pycore_pathconfig.h" // _Py_path_config
+#include "pycore_pyerrors.h" // _PyErr_Fetch()
+#include "pycore_pylifecycle.h" // _Py_PreInitializeFromConfig()
+#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
+#include "pycore_pystate.h" // _PyThreadState_GET()
+
+#include "osdefs.h" // DELIM
+#include <locale.h> // setlocale()
+#ifdef HAVE_LANGINFO_H
+# include <langinfo.h> // nl_langinfo(CODESET)
+#endif
+#if defined(MS_WINDOWS) || defined(__CYGWIN__)
+# include <windows.h> // GetACP()
+# ifdef HAVE_IO_H
+# include <io.h>
+# endif
+# ifdef HAVE_FCNTL_H
+# include <fcntl.h> // O_BINARY
+# endif
+#endif
+
+#ifndef PLATLIBDIR
+# error "PLATLIBDIR macro must be defined"
+#endif
+
+
+/* --- Command line options --------------------------------------- */
+
+/* Short usage message (with %s for argv0) */
+static const char usage_line[] =
+"usage: %ls [option] ... [-c cmd | -m mod | file | -] [arg] ...\n";
+
+/* Long usage message, split into parts < 512 bytes */
+static const char usage_1[] = "\
+Options and arguments (and corresponding environment variables):\n\
+-b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\
+ and comparing bytes/bytearray with str. (-bb: issue errors)\n\
+-B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\
+-c cmd : program passed in as string (terminates option list)\n\
+-d : turn on parser debugging output (for experts only, only works on\n\
+ debug builds); also PYTHONDEBUG=x\n\
+-E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\
+-h : print this help message and exit (also --help)\n\
+";
+static const char usage_2[] = "\
+-i : inspect interactively after running script; forces a prompt even\n\
+ if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\
+-I : isolate Python from the user's environment (implies -E and -s)\n\
+-m mod : run library module as a script (terminates option list)\n\
+-O : remove assert and __debug__-dependent statements; add .opt-1 before\n\
+ .pyc extension; also PYTHONOPTIMIZE=x\n\
+-OO : do -O changes and also discard docstrings; add .opt-2 before\n\
+ .pyc extension\n\
+-q : don't print version and copyright messages on interactive startup\n\
+-s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\
+-S : don't imply 'import site' on initialization\n\
+";
+static const char usage_3[] = "\
+-u : force the stdout and stderr streams to be unbuffered;\n\
+ this option has no effect on stdin; also PYTHONUNBUFFERED=x\n\
+-v : verbose (trace import statements); also PYTHONVERBOSE=x\n\
+ can be supplied multiple times to increase verbosity\n\
+-V : print the Python version number and exit (also --version)\n\
+ when given twice, print more information about the build\n\
+-W arg : warning control; arg is action:message:category:module:lineno\n\
+ also PYTHONWARNINGS=arg\n\
+-x : skip first line of source, allowing use of non-Unix forms of #!cmd\n\
+-X opt : set implementation-specific option. The following options are available:\n\
+\n\
+ -X faulthandler: enable faulthandler\n\
+ -X oldparser: enable the traditional LL(1) parser; also PYTHONOLDPARSER\n\
+ -X showrefcount: output the total reference count and number of used\n\
+ memory blocks when the program finishes or after each statement in the\n\
+ interactive interpreter. This only works on debug builds\n\
+ -X tracemalloc: start tracing Python memory allocations using the\n\
+ tracemalloc module. By default, only the most recent frame is stored in a\n\
+ traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\
+ traceback limit of NFRAME frames\n\
+ -X importtime: show how long each import takes. It shows module name,\n\
+ cumulative time (including nested imports) and self time (excluding\n\
+ nested imports). Note that its output may be broken in multi-threaded\n\
+ application. Typical usage is python3 -X importtime -c 'import asyncio'\n\
+ -X dev: enable CPython's \"development mode\", introducing additional runtime\n\
+ checks which are too expensive to be enabled by default. Effect of the\n\
+ developer mode:\n\
+ * Add default warning filter, as -W default\n\
+ * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function\n\
+ * Enable the faulthandler module to dump the Python traceback on a crash\n\
+ * Enable asyncio debug mode\n\
+ * Set the dev_mode attribute of sys.flags to True\n\
+ * io.IOBase destructor logs close() exceptions\n\
+ -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\
+ locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\
+ otherwise activate automatically)\n\
+ -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\
+ given directory instead of to the code tree\n\
+\n\
+--check-hash-based-pycs always|default|never:\n\
+ control how Python invalidates hash-based .pyc files\n\
+";
+static const char usage_4[] = "\
+file : program read from script file\n\
+- : program read from stdin (default; interactive mode if a tty)\n\
+arg ...: arguments passed to program in sys.argv[1:]\n\n\
+Other environment variables:\n\
+PYTHONSTARTUP: file executed on interactive startup (no default)\n\
+PYTHONPATH : '%lc'-separated list of directories prefixed to the\n\
+ default module search path. The result is sys.path.\n\
+";
+static const char usage_5[] =
+"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
+" The default module search path uses %s.\n"
+"PYTHONPLATLIBDIR : override sys.platlibdir.\n"
+"PYTHONCASEOK : ignore case in 'import' statements (Windows).\n"
+"PYTHONUTF8: if set to 1, enable the UTF-8 mode.\n"
+"PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.\n"
+"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n";
+static const char usage_6[] =
+"PYTHONHASHSEED: if this variable is set to 'random', a random value is used\n"
+" to seed the hashes of str and bytes objects. It can also be set to an\n"
+" integer in the range [0,4294967295] to get hash values with a\n"
+" predictable seed.\n"
+"PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n"
+" on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n"
+" hooks.\n"
+"PYTHONCOERCECLOCALE: if this variable is set to 0, it disables the locale\n"
+" coercion behavior. Use PYTHONCOERCECLOCALE=warn to request display of\n"
+" locale coercion and locale compatibility warnings on stderr.\n"
+"PYTHONBREAKPOINT: if this variable is set to 0, it disables the default\n"
+" debugger. It can be set to the callable of your debugger of choice.\n"
+"PYTHONDEVMODE: enable the development mode.\n"
+"PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files.\n";
+
+#if defined(MS_WINDOWS)
+# define PYTHONHOMEHELP "<prefix>\\python{major}{minor}"
+#else
+# define PYTHONHOMEHELP "<prefix>/lib/pythonX.X"
+#endif
+
+
+/* --- Global configuration variables ----------------------------- */
+
+/* UTF-8 mode (PEP 540): if equals to 1, use the UTF-8 encoding, and change
+ stdin and stdout error handler to "surrogateescape". */
+int Py_UTF8Mode = 0;
+int Py_DebugFlag = 0; /* Needed by parser.c */
+int Py_VerboseFlag = 0; /* Needed by import.c */
+int Py_QuietFlag = 0; /* Needed by sysmodule.c */
+int Py_InteractiveFlag = 0; /* Needed by Py_FdIsInteractive() below */
+int Py_InspectFlag = 0; /* Needed to determine whether to exit at SystemExit */
+int Py_OptimizeFlag = 0; /* Needed by compile.c */
+int Py_NoSiteFlag = 0; /* Suppress 'import site' */
+int Py_BytesWarningFlag = 0; /* Warn on str(bytes) and str(buffer) */
+int Py_FrozenFlag = 1; /* Needed by getpath.c */
+int Py_IgnoreEnvironmentFlag = 0; /* e.g. PYTHONPATH, PYTHONHOME */
+int Py_DontWriteBytecodeFlag = 0; /* Suppress writing bytecode files (*.pyc) */
+int Py_NoUserSiteDirectory = 0; /* for -s and site.py */
+int Py_UnbufferedStdioFlag = 0; /* Unbuffered binary std{in,out,err} */
+int Py_HashRandomizationFlag = 0; /* for -R and PYTHONHASHSEED */
+int Py_IsolatedFlag = 0; /* for -I, isolate from user's env */
+#ifdef MS_WINDOWS
+int Py_LegacyWindowsFSEncodingFlag = 0; /* Uses mbcs instead of utf-8 */
+int Py_LegacyWindowsStdioFlag = 0; /* Uses FileIO instead of WindowsConsoleIO */
+#endif
+
+
+static PyObject *
+_Py_GetGlobalVariablesAsDict(void)
+{
+ PyObject *dict, *obj;
+
+ dict = PyDict_New();
+ if (dict == NULL) {
+ return NULL;
+ }
+
+#define SET_ITEM(KEY, EXPR) \
+ do { \
+ obj = (EXPR); \
+ if (obj == NULL) { \
+ return NULL; \
+ } \
+ int res = PyDict_SetItemString(dict, (KEY), obj); \
+ Py_DECREF(obj); \
+ if (res < 0) { \
+ goto fail; \
+ } \
+ } while (0)
+#define SET_ITEM_INT(VAR) \
+ SET_ITEM(#VAR, PyLong_FromLong(VAR))
+#define FROM_STRING(STR) \
+ ((STR != NULL) ? \
+ PyUnicode_FromString(STR) \
+ : (Py_INCREF(Py_None), Py_None))
+#define SET_ITEM_STR(VAR) \
+ SET_ITEM(#VAR, FROM_STRING(VAR))
+
+ SET_ITEM_STR(Py_FileSystemDefaultEncoding);
+ SET_ITEM_INT(Py_HasFileSystemDefaultEncoding);
+ SET_ITEM_STR(Py_FileSystemDefaultEncodeErrors);
+ SET_ITEM_INT(_Py_HasFileSystemDefaultEncodeErrors);
+
+ SET_ITEM_INT(Py_UTF8Mode);
+ SET_ITEM_INT(Py_DebugFlag);
+ SET_ITEM_INT(Py_VerboseFlag);
+ SET_ITEM_INT(Py_QuietFlag);
+ SET_ITEM_INT(Py_InteractiveFlag);
+ SET_ITEM_INT(Py_InspectFlag);
+
+ SET_ITEM_INT(Py_OptimizeFlag);
+ SET_ITEM_INT(Py_NoSiteFlag);
+ SET_ITEM_INT(Py_BytesWarningFlag);
+ SET_ITEM_INT(Py_FrozenFlag);
+ SET_ITEM_INT(Py_IgnoreEnvironmentFlag);
+ SET_ITEM_INT(Py_DontWriteBytecodeFlag);
+ SET_ITEM_INT(Py_NoUserSiteDirectory);
+ SET_ITEM_INT(Py_UnbufferedStdioFlag);
+ SET_ITEM_INT(Py_HashRandomizationFlag);
+ SET_ITEM_INT(Py_IsolatedFlag);
+
+#ifdef MS_WINDOWS
+ SET_ITEM_INT(Py_LegacyWindowsFSEncodingFlag);
+ SET_ITEM_INT(Py_LegacyWindowsStdioFlag);
+#endif
+
+ return dict;
+
+fail:
+ Py_DECREF(dict);
+ return NULL;
+
+#undef FROM_STRING
+#undef SET_ITEM
+#undef SET_ITEM_INT
+#undef SET_ITEM_STR
+}
+
+
+/* --- PyStatus ----------------------------------------------- */
+
+PyStatus PyStatus_Ok(void)
+{ return _PyStatus_OK(); }
+
+PyStatus PyStatus_Error(const char *err_msg)
+{
+ return (PyStatus){._type = _PyStatus_TYPE_ERROR,
+ .err_msg = err_msg};
+}
+
+PyStatus PyStatus_NoMemory(void)
+{ return PyStatus_Error("memory allocation failed"); }
+
+PyStatus PyStatus_Exit(int exitcode)
+{ return _PyStatus_EXIT(exitcode); }
+
+
+int PyStatus_IsError(PyStatus status)
+{ return _PyStatus_IS_ERROR(status); }
+
+int PyStatus_IsExit(PyStatus status)
+{ return _PyStatus_IS_EXIT(status); }
+
+int PyStatus_Exception(PyStatus status)
+{ return _PyStatus_EXCEPTION(status); }
+
+
+/* --- PyWideStringList ------------------------------------------------ */
+
+#ifndef NDEBUG
+int
+_PyWideStringList_CheckConsistency(const PyWideStringList *list)
+{
+ assert(list->length >= 0);
+ if (list->length != 0) {
+ assert(list->items != NULL);
+ }
+ for (Py_ssize_t i = 0; i < list->length; i++) {
+ assert(list->items[i] != NULL);
+ }
+ return 1;
+}
+#endif /* Py_DEBUG */
+
+
+void
+_PyWideStringList_Clear(PyWideStringList *list)
+{
+ assert(_PyWideStringList_CheckConsistency(list));
+ for (Py_ssize_t i=0; i < list->length; i++) {
+ PyMem_RawFree(list->items[i]);
+ }
+ PyMem_RawFree(list->items);
+ list->length = 0;
+ list->items = NULL;
+}
+
+
+int
+_PyWideStringList_Copy(PyWideStringList *list, const PyWideStringList *list2)
+{
+ assert(_PyWideStringList_CheckConsistency(list));
+ assert(_PyWideStringList_CheckConsistency(list2));
+
+ if (list2->length == 0) {
+ _PyWideStringList_Clear(list);
+ return 0;
+ }
+
+ PyWideStringList copy = _PyWideStringList_INIT;
+
+ size_t size = list2->length * sizeof(list2->items[0]);
+ copy.items = PyMem_RawMalloc(size);
+ if (copy.items == NULL) {
+ return -1;
+ }
+
+ for (Py_ssize_t i=0; i < list2->length; i++) {
+ wchar_t *item = _PyMem_RawWcsdup(list2->items[i]);
+ if (item == NULL) {
+ _PyWideStringList_Clear(&copy);
+ return -1;
+ }
+ copy.items[i] = item;
+ copy.length = i + 1;
+ }
+
+ _PyWideStringList_Clear(list);
+ *list = copy;
+ return 0;
+}
+
+
+PyStatus
+PyWideStringList_Insert(PyWideStringList *list,
+ Py_ssize_t index, const wchar_t *item)
+{
+ Py_ssize_t len = list->length;
+ if (len == PY_SSIZE_T_MAX) {
+ /* length+1 would overflow */
+ return _PyStatus_NO_MEMORY();
+ }
+ if (index < 0) {
+ return _PyStatus_ERR("PyWideStringList_Insert index must be >= 0");
+ }
+ if (index > len) {
+ index = len;
+ }
+
+ wchar_t *item2 = _PyMem_RawWcsdup(item);
+ if (item2 == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ size_t size = (len + 1) * sizeof(list->items[0]);
+ wchar_t **items2 = (wchar_t **)PyMem_RawRealloc(list->items, size);
+ if (items2 == NULL) {
+ PyMem_RawFree(item2);
+ return _PyStatus_NO_MEMORY();
+ }
+
+ if (index < len) {
+ memmove(&items2[index + 1],
+ &items2[index],
+ (len - index) * sizeof(items2[0]));
+ }
+
+ items2[index] = item2;
+ list->items = items2;
+ list->length++;
+ return _PyStatus_OK();
+}
+
+
+PyStatus
+PyWideStringList_Append(PyWideStringList *list, const wchar_t *item)
+{
+ return PyWideStringList_Insert(list, list->length, item);
+}
+
+
+PyStatus
+_PyWideStringList_Extend(PyWideStringList *list, const PyWideStringList *list2)
+{
+ for (Py_ssize_t i = 0; i < list2->length; i++) {
+ PyStatus status = PyWideStringList_Append(list, list2->items[i]);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+static int
+_PyWideStringList_Find(PyWideStringList *list, const wchar_t *item)
+{
+ for (Py_ssize_t i = 0; i < list->length; i++) {
+ if (wcscmp(list->items[i], item) == 0) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+
+PyObject*
+_PyWideStringList_AsList(const PyWideStringList *list)
+{
+ assert(_PyWideStringList_CheckConsistency(list));
+
+ PyObject *pylist = PyList_New(list->length);
+ if (pylist == NULL) {
+ return NULL;
+ }
+
+ for (Py_ssize_t i = 0; i < list->length; i++) {
+ PyObject *item = PyUnicode_FromWideChar(list->items[i], -1);
+ if (item == NULL) {
+ Py_DECREF(pylist);
+ return NULL;
+ }
+ PyList_SET_ITEM(pylist, i, item);
+ }
+ return pylist;
+}
+
+
+/* --- Py_SetStandardStreamEncoding() ----------------------------- */
+
+/* Helper to allow an embedding application to override the normal
+ * mechanism that attempts to figure out an appropriate IO encoding
+ */
+
+static char *_Py_StandardStreamEncoding = NULL;
+static char *_Py_StandardStreamErrors = NULL;
+
+int
+Py_SetStandardStreamEncoding(const char *encoding, const char *errors)
+{
+ if (Py_IsInitialized()) {
+ /* This is too late to have any effect */
+ return -1;
+ }
+
+ int res = 0;
+
+ /* Py_SetStandardStreamEncoding() can be called before Py_Initialize(),
+ but Py_Initialize() can change the allocator. Use a known allocator
+ to be able to release the memory later. */
+ PyMemAllocatorEx old_alloc;
+ _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ /* Can't call PyErr_NoMemory() on errors, as Python hasn't been
+ * initialised yet.
+ *
+ * However, the raw memory allocators are initialised appropriately
+ * as C static variables, so _PyMem_RawStrdup is OK even though
+ * Py_Initialize hasn't been called yet.
+ */
+ if (encoding) {
+ PyMem_RawFree(_Py_StandardStreamEncoding);
+ _Py_StandardStreamEncoding = _PyMem_RawStrdup(encoding);
+ if (!_Py_StandardStreamEncoding) {
+ res = -2;
+ goto done;
+ }
+ }
+ if (errors) {
+ PyMem_RawFree(_Py_StandardStreamErrors);
+ _Py_StandardStreamErrors = _PyMem_RawStrdup(errors);
+ if (!_Py_StandardStreamErrors) {
+ PyMem_RawFree(_Py_StandardStreamEncoding);
+ _Py_StandardStreamEncoding = NULL;
+ res = -3;
+ goto done;
+ }
+ }
+#ifdef MS_WINDOWS
+ if (_Py_StandardStreamEncoding) {
+ /* Overriding the stream encoding implies legacy streams */
+ Py_LegacyWindowsStdioFlag = 1;
+ }
+#endif
+
+done:
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ return res;
+}
+
+
+void
+_Py_ClearStandardStreamEncoding(void)
+{
+ /* Use the same allocator than Py_SetStandardStreamEncoding() */
+ PyMemAllocatorEx old_alloc;
+ _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ /* We won't need them anymore. */
+ if (_Py_StandardStreamEncoding) {
+ PyMem_RawFree(_Py_StandardStreamEncoding);
+ _Py_StandardStreamEncoding = NULL;
+ }
+ if (_Py_StandardStreamErrors) {
+ PyMem_RawFree(_Py_StandardStreamErrors);
+ _Py_StandardStreamErrors = NULL;
+ }
+
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+}
+
+
+/* --- Py_GetArgcArgv() ------------------------------------------- */
+
+/* For Py_GetArgcArgv(); set by _Py_SetArgcArgv() */
+static PyWideStringList orig_argv = {.length = 0, .items = NULL};
+
+
+void
+_Py_ClearArgcArgv(void)
+{
+ PyMemAllocatorEx old_alloc;
+ _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ _PyWideStringList_Clear(&orig_argv);
+
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+}
+
+
+static int
+_Py_SetArgcArgv(Py_ssize_t argc, wchar_t * const *argv)
+{
+ const PyWideStringList argv_list = {.length = argc, .items = (wchar_t **)argv};
+ int res;
+
+ PyMemAllocatorEx old_alloc;
+ _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ res = _PyWideStringList_Copy(&orig_argv, &argv_list);
+
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+ return res;
+}
+
+
+void
+Py_GetArgcArgv(int *argc, wchar_t ***argv)
+{
+ *argc = (int)orig_argv.length;
+ *argv = orig_argv.items;
+}
+
+
+void
+Py_InitArgcArgv(int argc, wchar_t **argv)
+{
+ _Py_SetArgcArgv((Py_ssize_t)argc, argv);
+}
+
+/* --- PyConfig ---------------------------------------------- */
+
+#define DECODE_LOCALE_ERR(NAME, LEN) \
+ (((LEN) == -2) \
+ ? _PyStatus_ERR("cannot decode " NAME) \
+ : _PyStatus_NO_MEMORY())
+
+
+/* Free memory allocated in config, but don't clear all attributes */
+void
+PyConfig_Clear(PyConfig *config)
+{
+#define CLEAR(ATTR) \
+ do { \
+ PyMem_RawFree(ATTR); \
+ ATTR = NULL; \
+ } while (0)
+
+ CLEAR(config->pycache_prefix);
+ CLEAR(config->pythonpath_env);
+ CLEAR(config->home);
+ CLEAR(config->program_name);
+
+ _PyWideStringList_Clear(&config->argv);
+ _PyWideStringList_Clear(&config->warnoptions);
+ _PyWideStringList_Clear(&config->xoptions);
+ _PyWideStringList_Clear(&config->module_search_paths);
+ config->module_search_paths_set = 0;
+
+ CLEAR(config->executable);
+ CLEAR(config->base_executable);
+ CLEAR(config->prefix);
+ CLEAR(config->base_prefix);
+ CLEAR(config->exec_prefix);
+ CLEAR(config->base_exec_prefix);
+ CLEAR(config->platlibdir);
+
+ CLEAR(config->filesystem_encoding);
+ CLEAR(config->filesystem_errors);
+ CLEAR(config->stdio_encoding);
+ CLEAR(config->stdio_errors);
+ CLEAR(config->run_command);
+ CLEAR(config->run_module);
+ CLEAR(config->run_filename);
+ CLEAR(config->check_hash_pycs_mode);
+
+ _PyWideStringList_Clear(&config->_orig_argv);
+#undef CLEAR
+}
+
+
+void
+_PyConfig_InitCompatConfig(PyConfig *config)
+{
+ memset(config, 0, sizeof(*config));
+
+ config->_config_init = (int)_PyConfig_INIT_COMPAT;
+ config->isolated = -1;
+ config->use_environment = -1;
+ config->dev_mode = -1;
+ config->install_signal_handlers = 1;
+ config->use_hash_seed = -1;
+ config->faulthandler = -1;
+ config->tracemalloc = -1;
+ config->module_search_paths_set = 0;
+ config->parse_argv = 0;
+ config->site_import = -1;
+ config->bytes_warning = -1;
+ config->inspect = -1;
+ config->interactive = -1;
+ config->optimization_level = -1;
+ config->parser_debug= -1;
+ config->write_bytecode = -1;
+ config->verbose = -1;
+ config->quiet = -1;
+ config->user_site_directory = -1;
+ config->configure_c_stdio = 0;
+ config->buffered_stdio = -1;
+ config->_install_importlib = 1;
+ config->check_hash_pycs_mode = NULL;
+ config->pathconfig_warnings = -1;
+ config->_init_main = 1;
+ config->_isolated_interpreter = 0;
+#ifdef MS_WINDOWS
+ config->legacy_windows_stdio = -1;
+#endif
+ config->_use_peg_parser = 1;
+}
+
+
+static void
+config_init_defaults(PyConfig *config)
+{
+ _PyConfig_InitCompatConfig(config);
+
+ config->isolated = 0;
+ config->use_environment = 1;
+ config->site_import = 1;
+ config->bytes_warning = 0;
+ config->inspect = 0;
+ config->interactive = 0;
+ config->optimization_level = 0;
+ config->parser_debug= 0;
+ config->write_bytecode = 1;
+ config->verbose = 0;
+ config->quiet = 0;
+ config->user_site_directory = 1;
+ config->buffered_stdio = 1;
+ config->pathconfig_warnings = 1;
+#ifdef MS_WINDOWS
+ config->legacy_windows_stdio = 0;
+#endif
+}
+
+
+void
+PyConfig_InitPythonConfig(PyConfig *config)
+{
+ config_init_defaults(config);
+
+ config->_config_init = (int)_PyConfig_INIT_PYTHON;
+ config->configure_c_stdio = 1;
+ config->parse_argv = 1;
+}
+
+
+void
+PyConfig_InitIsolatedConfig(PyConfig *config)
+{
+ config_init_defaults(config);
+
+ config->_config_init = (int)_PyConfig_INIT_ISOLATED;
+ config->isolated = 1;
+ config->use_environment = 0;
+ config->user_site_directory = 0;
+ config->dev_mode = 0;
+ config->install_signal_handlers = 0;
+ config->use_hash_seed = 0;
+ config->faulthandler = 0;
+ config->tracemalloc = 0;
+ config->pathconfig_warnings = 0;
+#ifdef MS_WINDOWS
+ config->legacy_windows_stdio = 0;
+#endif
+}
+
+
+/* Copy str into *config_str (duplicate the string) */
+PyStatus
+PyConfig_SetString(PyConfig *config, wchar_t **config_str, const wchar_t *str)
+{
+ PyStatus status = _Py_PreInitializeFromConfig(config, NULL);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ wchar_t *str2;
+ if (str != NULL) {
+ str2 = _PyMem_RawWcsdup(str);
+ if (str2 == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ else {
+ str2 = NULL;
+ }
+ PyMem_RawFree(*config_str);
+ *config_str = str2;
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+config_set_bytes_string(PyConfig *config, wchar_t **config_str,
+ const char *str, const char *decode_err_msg)
+{
+ PyStatus status = _Py_PreInitializeFromConfig(config, NULL);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ wchar_t *str2;
+ if (str != NULL) {
+ size_t len;
+ str2 = Py_DecodeLocale(str, &len);
+ if (str2 == NULL) {
+ if (len == (size_t)-2) {
+ return _PyStatus_ERR(decode_err_msg);
+ }
+ else {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ }
+ else {
+ str2 = NULL;
+ }
+ PyMem_RawFree(*config_str);
+ *config_str = str2;
+ return _PyStatus_OK();
+}
+
+
+#define CONFIG_SET_BYTES_STR(config, config_str, str, NAME) \
+ config_set_bytes_string(config, config_str, str, "cannot decode " NAME)
+
+
+/* Decode str using Py_DecodeLocale() and set the result into *config_str.
+ Pre-initialize Python if needed to ensure that encodings are properly
+ configured. */
+PyStatus
+PyConfig_SetBytesString(PyConfig *config, wchar_t **config_str,
+ const char *str)
+{
+ return CONFIG_SET_BYTES_STR(config, config_str, str, "string");
+}
+
+
+PyStatus
+_PyConfig_Copy(PyConfig *config, const PyConfig *config2)
+{
+ PyStatus status;
+
+ PyConfig_Clear(config);
+
+#define COPY_ATTR(ATTR) config->ATTR = config2->ATTR
+#define COPY_WSTR_ATTR(ATTR) \
+ do { \
+ status = PyConfig_SetString(config, &config->ATTR, config2->ATTR); \
+ if (_PyStatus_EXCEPTION(status)) { \
+ return status; \
+ } \
+ } while (0)
+#define COPY_WSTRLIST(LIST) \
+ do { \
+ if (_PyWideStringList_Copy(&config->LIST, &config2->LIST) < 0) { \
+ return _PyStatus_NO_MEMORY(); \
+ } \
+ } while (0)
+
+ COPY_ATTR(_config_init);
+ COPY_ATTR(isolated);
+ COPY_ATTR(use_environment);
+ COPY_ATTR(dev_mode);
+ COPY_ATTR(_use_peg_parser);
+ COPY_ATTR(install_signal_handlers);
+ COPY_ATTR(use_hash_seed);
+ COPY_ATTR(hash_seed);
+ COPY_ATTR(_install_importlib);
+ COPY_ATTR(faulthandler);
+ COPY_ATTR(tracemalloc);
+ COPY_ATTR(import_time);
+ COPY_ATTR(show_ref_count);
+ COPY_ATTR(dump_refs);
+ COPY_ATTR(malloc_stats);
+
+ COPY_WSTR_ATTR(pycache_prefix);
+ COPY_WSTR_ATTR(pythonpath_env);
+ COPY_WSTR_ATTR(home);
+ COPY_WSTR_ATTR(program_name);
+
+ COPY_ATTR(parse_argv);
+ COPY_WSTRLIST(argv);
+ COPY_WSTRLIST(warnoptions);
+ COPY_WSTRLIST(xoptions);
+ COPY_WSTRLIST(module_search_paths);
+ COPY_ATTR(module_search_paths_set);
+
+ COPY_WSTR_ATTR(executable);
+ COPY_WSTR_ATTR(base_executable);
+ COPY_WSTR_ATTR(prefix);
+ COPY_WSTR_ATTR(base_prefix);
+ COPY_WSTR_ATTR(exec_prefix);
+ COPY_WSTR_ATTR(base_exec_prefix);
+ COPY_WSTR_ATTR(platlibdir);
+
+ COPY_ATTR(site_import);
+ COPY_ATTR(bytes_warning);
+ COPY_ATTR(inspect);
+ COPY_ATTR(interactive);
+ COPY_ATTR(optimization_level);
+ COPY_ATTR(parser_debug);
+ COPY_ATTR(write_bytecode);
+ COPY_ATTR(verbose);
+ COPY_ATTR(quiet);
+ COPY_ATTR(user_site_directory);
+ COPY_ATTR(configure_c_stdio);
+ COPY_ATTR(buffered_stdio);
+ COPY_WSTR_ATTR(filesystem_encoding);
+ COPY_WSTR_ATTR(filesystem_errors);
+ COPY_WSTR_ATTR(stdio_encoding);
+ COPY_WSTR_ATTR(stdio_errors);
+#ifdef MS_WINDOWS
+ COPY_ATTR(legacy_windows_stdio);
+#endif
+ COPY_ATTR(skip_source_first_line);
+ COPY_WSTR_ATTR(run_command);
+ COPY_WSTR_ATTR(run_module);
+ COPY_WSTR_ATTR(run_filename);
+ COPY_WSTR_ATTR(check_hash_pycs_mode);
+ COPY_ATTR(pathconfig_warnings);
+ COPY_ATTR(_init_main);
+ COPY_ATTR(_isolated_interpreter);
+ COPY_WSTRLIST(_orig_argv);
+
+#undef COPY_ATTR
+#undef COPY_WSTR_ATTR
+#undef COPY_WSTRLIST
+ return _PyStatus_OK();
+}
+
+
+static PyObject *
+config_as_dict(const PyConfig *config)
+{
+ PyObject *dict;
+
+ dict = PyDict_New();
+ if (dict == NULL) {
+ return NULL;
+ }
+
+#define SET_ITEM(KEY, EXPR) \
+ do { \
+ PyObject *obj = (EXPR); \
+ if (obj == NULL) { \
+ goto fail; \
+ } \
+ int res = PyDict_SetItemString(dict, (KEY), obj); \
+ Py_DECREF(obj); \
+ if (res < 0) { \
+ goto fail; \
+ } \
+ } while (0)
+#define SET_ITEM_INT(ATTR) \
+ SET_ITEM(#ATTR, PyLong_FromLong(config->ATTR))
+#define SET_ITEM_UINT(ATTR) \
+ SET_ITEM(#ATTR, PyLong_FromUnsignedLong(config->ATTR))
+#define FROM_WSTRING(STR) \
+ ((STR != NULL) ? \
+ PyUnicode_FromWideChar(STR, -1) \
+ : (Py_INCREF(Py_None), Py_None))
+#define SET_ITEM_WSTR(ATTR) \
+ SET_ITEM(#ATTR, FROM_WSTRING(config->ATTR))
+#define SET_ITEM_WSTRLIST(LIST) \
+ SET_ITEM(#LIST, _PyWideStringList_AsList(&config->LIST))
+
+ SET_ITEM_INT(_config_init);
+ SET_ITEM_INT(isolated);
+ SET_ITEM_INT(use_environment);
+ SET_ITEM_INT(dev_mode);
+ SET_ITEM_INT(_use_peg_parser);
+ SET_ITEM_INT(install_signal_handlers);
+ SET_ITEM_INT(use_hash_seed);
+ SET_ITEM_UINT(hash_seed);
+ SET_ITEM_INT(faulthandler);
+ SET_ITEM_INT(tracemalloc);
+ SET_ITEM_INT(import_time);
+ SET_ITEM_INT(show_ref_count);
+ SET_ITEM_INT(dump_refs);
+ SET_ITEM_INT(malloc_stats);
+ SET_ITEM_WSTR(filesystem_encoding);
+ SET_ITEM_WSTR(filesystem_errors);
+ SET_ITEM_WSTR(pycache_prefix);
+ SET_ITEM_WSTR(program_name);
+ SET_ITEM_INT(parse_argv);
+ SET_ITEM_WSTRLIST(argv);
+ SET_ITEM_WSTRLIST(xoptions);
+ SET_ITEM_WSTRLIST(warnoptions);
+ SET_ITEM_WSTR(pythonpath_env);
+ SET_ITEM_WSTR(home);
+ SET_ITEM_WSTRLIST(module_search_paths);
+ SET_ITEM_WSTR(executable);
+ SET_ITEM_WSTR(base_executable);
+ SET_ITEM_WSTR(prefix);
+ SET_ITEM_WSTR(base_prefix);
+ SET_ITEM_WSTR(exec_prefix);
+ SET_ITEM_WSTR(base_exec_prefix);
+ SET_ITEM_WSTR(platlibdir);
+ SET_ITEM_INT(site_import);
+ SET_ITEM_INT(bytes_warning);
+ SET_ITEM_INT(inspect);
+ SET_ITEM_INT(interactive);
+ SET_ITEM_INT(optimization_level);
+ SET_ITEM_INT(parser_debug);
+ SET_ITEM_INT(write_bytecode);
+ SET_ITEM_INT(verbose);
+ SET_ITEM_INT(quiet);
+ SET_ITEM_INT(user_site_directory);
+ SET_ITEM_INT(configure_c_stdio);
+ SET_ITEM_INT(buffered_stdio);
+ SET_ITEM_WSTR(stdio_encoding);
+ SET_ITEM_WSTR(stdio_errors);
+#ifdef MS_WINDOWS
+ SET_ITEM_INT(legacy_windows_stdio);
+#endif
+ SET_ITEM_INT(skip_source_first_line);
+ SET_ITEM_WSTR(run_command);
+ SET_ITEM_WSTR(run_module);
+ SET_ITEM_WSTR(run_filename);
+ SET_ITEM_INT(_install_importlib);
+ SET_ITEM_WSTR(check_hash_pycs_mode);
+ SET_ITEM_INT(pathconfig_warnings);
+ SET_ITEM_INT(_init_main);
+ SET_ITEM_INT(_isolated_interpreter);
+ SET_ITEM_WSTRLIST(_orig_argv);
+
+ return dict;
+
+fail:
+ Py_DECREF(dict);
+ return NULL;
+
+#undef FROM_WSTRING
+#undef SET_ITEM
+#undef SET_ITEM_INT
+#undef SET_ITEM_UINT
+#undef SET_ITEM_WSTR
+#undef SET_ITEM_WSTRLIST
+}
+
+
+static const char*
+config_get_env(const PyConfig *config, const char *name)
+{
+ return _Py_GetEnv(config->use_environment, name);
+}
+
+
+/* Get a copy of the environment variable as wchar_t*.
+ Return 0 on success, but *dest can be NULL.
+ Return -1 on memory allocation failure. Return -2 on decoding error. */
+static PyStatus
+config_get_env_dup(PyConfig *config,
+ wchar_t **dest,
+ wchar_t *wname, char *name,
+ const char *decode_err_msg)
+{
+ assert(*dest == NULL);
+ assert(config->use_environment >= 0);
+
+ if (!config->use_environment) {
+ *dest = NULL;
+ return _PyStatus_OK();
+ }
+
+#ifdef MS_WINDOWS
+ const wchar_t *var = _wgetenv(wname);
+ if (!var || var[0] == '\0') {
+ *dest = NULL;
+ return _PyStatus_OK();
+ }
+
+ return PyConfig_SetString(config, dest, var);
+#else
+ const char *var = getenv(name);
+ if (!var || var[0] == '\0') {
+ *dest = NULL;
+ return _PyStatus_OK();
+ }
+
+ return config_set_bytes_string(config, dest, var, decode_err_msg);
+#endif
+}
+
+
+#define CONFIG_GET_ENV_DUP(CONFIG, DEST, WNAME, NAME) \
+ config_get_env_dup(CONFIG, DEST, WNAME, NAME, "cannot decode " NAME)
+
+
+static void
+config_get_global_vars(PyConfig *config)
+{
+ if (config->_config_init != _PyConfig_INIT_COMPAT) {
+ /* Python and Isolated configuration ignore global variables */
+ return;
+ }
+
+#define COPY_FLAG(ATTR, VALUE) \
+ if (config->ATTR == -1) { \
+ config->ATTR = VALUE; \
+ }
+#define COPY_NOT_FLAG(ATTR, VALUE) \
+ if (config->ATTR == -1) { \
+ config->ATTR = !(VALUE); \
+ }
+
+ COPY_FLAG(isolated, Py_IsolatedFlag);
+ COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
+ COPY_FLAG(bytes_warning, Py_BytesWarningFlag);
+ COPY_FLAG(inspect, Py_InspectFlag);
+ COPY_FLAG(interactive, Py_InteractiveFlag);
+ COPY_FLAG(optimization_level, Py_OptimizeFlag);
+ COPY_FLAG(parser_debug, Py_DebugFlag);
+ COPY_FLAG(verbose, Py_VerboseFlag);
+ COPY_FLAG(quiet, Py_QuietFlag);
+#ifdef MS_WINDOWS
+ COPY_FLAG(legacy_windows_stdio, Py_LegacyWindowsStdioFlag);
+#endif
+ COPY_NOT_FLAG(pathconfig_warnings, Py_FrozenFlag);
+
+ COPY_NOT_FLAG(buffered_stdio, Py_UnbufferedStdioFlag);
+ COPY_NOT_FLAG(site_import, Py_NoSiteFlag);
+ COPY_NOT_FLAG(write_bytecode, Py_DontWriteBytecodeFlag);
+ COPY_NOT_FLAG(user_site_directory, Py_NoUserSiteDirectory);
+
+#undef COPY_FLAG
+#undef COPY_NOT_FLAG
+}
+
+
+/* Set Py_xxx global configuration variables from 'config' configuration. */
+static void
+config_set_global_vars(const PyConfig *config)
+{
+#define COPY_FLAG(ATTR, VAR) \
+ if (config->ATTR != -1) { \
+ VAR = config->ATTR; \
+ }
+#define COPY_NOT_FLAG(ATTR, VAR) \
+ if (config->ATTR != -1) { \
+ VAR = !config->ATTR; \
+ }
+
+ COPY_FLAG(isolated, Py_IsolatedFlag);
+ COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
+ COPY_FLAG(bytes_warning, Py_BytesWarningFlag);
+ COPY_FLAG(inspect, Py_InspectFlag);
+ COPY_FLAG(interactive, Py_InteractiveFlag);
+ COPY_FLAG(optimization_level, Py_OptimizeFlag);
+ COPY_FLAG(parser_debug, Py_DebugFlag);
+ COPY_FLAG(verbose, Py_VerboseFlag);
+ COPY_FLAG(quiet, Py_QuietFlag);
+#ifdef MS_WINDOWS
+ COPY_FLAG(legacy_windows_stdio, Py_LegacyWindowsStdioFlag);
+#endif
+ COPY_NOT_FLAG(pathconfig_warnings, Py_FrozenFlag);
+
+ COPY_NOT_FLAG(buffered_stdio, Py_UnbufferedStdioFlag);
+ COPY_NOT_FLAG(site_import, Py_NoSiteFlag);
+ COPY_NOT_FLAG(write_bytecode, Py_DontWriteBytecodeFlag);
+ COPY_NOT_FLAG(user_site_directory, Py_NoUserSiteDirectory);
+
+ /* Random or non-zero hash seed */
+ Py_HashRandomizationFlag = (config->use_hash_seed == 0 ||
+ config->hash_seed != 0);
+
+#undef COPY_FLAG
+#undef COPY_NOT_FLAG
+}
+
+
+/* Get the program name: use PYTHONEXECUTABLE and __PYVENV_LAUNCHER__
+ environment variables on macOS if available. */
+static PyStatus
+config_init_program_name(PyConfig *config)
+{
+ PyStatus status;
+
+ /* If Py_SetProgramName() was called, use its value */
+ const wchar_t *program_name = _Py_path_config.program_name;
+ if (program_name != NULL) {
+ config->program_name = _PyMem_RawWcsdup(program_name);
+ if (config->program_name == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
+ }
+
+#ifdef __APPLE__
+ /* On MacOS X, when the Python interpreter is embedded in an
+ application bundle, it gets executed by a bootstrapping script
+ that does os.execve() with an argv[0] that's different from the
+ actual Python executable. This is needed to keep the Finder happy,
+ or rather, to work around Apple's overly strict requirements of
+ the process name. However, we still need a usable sys.executable,
+ so the actual executable path is passed in an environment variable.
+ See Lib/plat-mac/bundlebuilder.py for details about the bootstrap
+ script. */
+ const char *p = config_get_env(config, "PYTHONEXECUTABLE");
+ if (p != NULL) {
+ status = CONFIG_SET_BYTES_STR(config, &config->program_name, p,
+ "PYTHONEXECUTABLE environment variable");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ return _PyStatus_OK();
+ }
+#ifdef WITH_NEXT_FRAMEWORK
+ else {
+ const char* pyvenv_launcher = getenv("__PYVENV_LAUNCHER__");
+ if (pyvenv_launcher && *pyvenv_launcher) {
+ /* Used by Mac/Tools/pythonw.c to forward
+ * the argv0 of the stub executable
+ */
+ status = CONFIG_SET_BYTES_STR(config,
+ &config->program_name,
+ pyvenv_launcher,
+ "__PYVENV_LAUNCHER__ environment variable");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ /*
+ * This environment variable is used to communicate between
+ * the stub launcher and the real interpreter and isn't needed
+ * beyond this point.
+ *
+ * Clean up to avoid problems when launching other programs
+ * later on.
+ */
+ (void)unsetenv("__PYVENV_LAUNCHER__");
+
+ return _PyStatus_OK();
+ }
+ }
+#endif /* WITH_NEXT_FRAMEWORK */
+#endif /* __APPLE__ */
+
+ /* Use argv[0] if available and non-empty */
+ const PyWideStringList *argv = &config->argv;
+ if (argv->length >= 1 && argv->items[0][0] != L'\0') {
+ config->program_name = _PyMem_RawWcsdup(argv->items[0]);
+ if (config->program_name == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
+ }
+
+ /* Last fall back: hardcoded name */
+#ifdef MS_WINDOWS
+ const wchar_t *default_program_name = L"python";
+#else
+ const wchar_t *default_program_name = L"python3";
+#endif
+ status = PyConfig_SetString(config, &config->program_name,
+ default_program_name);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ return _PyStatus_OK();
+}
+
+static PyStatus
+config_init_executable(PyConfig *config)
+{
+ assert(config->executable == NULL);
+
+ /* If Py_SetProgramFullPath() was called, use its value */
+ const wchar_t *program_full_path = _Py_path_config.program_full_path;
+ if (program_full_path != NULL) {
+ PyStatus status = PyConfig_SetString(config,
+ &config->executable,
+ program_full_path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ return _PyStatus_OK();
+ }
+ return _PyStatus_OK();
+}
+
+
+static const wchar_t*
+config_get_xoption(const PyConfig *config, wchar_t *name)
+{
+ return _Py_get_xoption(&config->xoptions, name);
+}
+
+
+static PyStatus
+config_init_home(PyConfig *config)
+{
+ assert(config->home == NULL);
+
+ /* If Py_SetPythonHome() was called, use its value */
+ wchar_t *home = _Py_path_config.home;
+ if (home) {
+ PyStatus status = PyConfig_SetString(config, &config->home, home);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ return _PyStatus_OK();
+ }
+
+ return CONFIG_GET_ENV_DUP(config, &config->home,
+ L"PYTHONHOME", "PYTHONHOME");
+}
+
+
+static PyStatus
+config_init_hash_seed(PyConfig *config)
+{
+ const char *seed_text = config_get_env(config, "PYTHONHASHSEED");
+
+ Py_BUILD_ASSERT(sizeof(_Py_HashSecret_t) == sizeof(_Py_HashSecret.uc));
+ /* Convert a text seed to a numeric one */
+ if (seed_text && strcmp(seed_text, "random") != 0) {
+ const char *endptr = seed_text;
+ unsigned long seed;
+ errno = 0;
+ seed = strtoul(seed_text, (char **)&endptr, 10);
+ if (*endptr != '\0'
+ || seed > 4294967295UL
+ || (errno == ERANGE && seed == ULONG_MAX))
+ {
+ return _PyStatus_ERR("PYTHONHASHSEED must be \"random\" "
+ "or an integer in range [0; 4294967295]");
+ }
+ /* Use a specific hash */
+ config->use_hash_seed = 1;
+ config->hash_seed = seed;
+ }
+ else {
+ /* Use a random hash */
+ config->use_hash_seed = 0;
+ config->hash_seed = 0;
+ }
+ return _PyStatus_OK();
+}
+
+
+static int
+config_wstr_to_int(const wchar_t *wstr, int *result)
+{
+ const wchar_t *endptr = wstr;
+ errno = 0;
+ long value = wcstol(wstr, (wchar_t **)&endptr, 10);
+ if (*endptr != '\0' || errno == ERANGE) {
+ return -1;
+ }
+ if (value < INT_MIN || value > INT_MAX) {
+ return -1;
+ }
+
+ *result = (int)value;
+ return 0;
+}
+
+
+static PyStatus
+config_read_env_vars(PyConfig *config)
+{
+ PyStatus status;
+ int use_env = config->use_environment;
+
+ /* Get environment variables */
+ _Py_get_env_flag(use_env, &config->parser_debug, "PYTHONDEBUG");
+ _Py_get_env_flag(use_env, &config->verbose, "PYTHONVERBOSE");
+ _Py_get_env_flag(use_env, &config->optimization_level, "PYTHONOPTIMIZE");
+ _Py_get_env_flag(use_env, &config->inspect, "PYTHONINSPECT");
+
+ int dont_write_bytecode = 0;
+ _Py_get_env_flag(use_env, &dont_write_bytecode, "PYTHONDONTWRITEBYTECODE");
+ if (dont_write_bytecode) {
+ config->write_bytecode = 0;
+ }
+
+ int no_user_site_directory = 0;
+ _Py_get_env_flag(use_env, &no_user_site_directory, "PYTHONNOUSERSITE");
+ if (no_user_site_directory) {
+ config->user_site_directory = 0;
+ }
+
+ int unbuffered_stdio = 0;
+ _Py_get_env_flag(use_env, &unbuffered_stdio, "PYTHONUNBUFFERED");
+ if (unbuffered_stdio) {
+ config->buffered_stdio = 0;
+ }
+
+#ifdef MS_WINDOWS
+ _Py_get_env_flag(use_env, &config->legacy_windows_stdio,
+ "PYTHONLEGACYWINDOWSSTDIO");
+#endif
+
+ if (config_get_env(config, "PYTHONDUMPREFS")) {
+ config->dump_refs = 1;
+ }
+ if (config_get_env(config, "PYTHONMALLOCSTATS")) {
+ config->malloc_stats = 1;
+ }
+
+ if (config->pythonpath_env == NULL) {
+ status = CONFIG_GET_ENV_DUP(config, &config->pythonpath_env,
+ L"PYTHONPATH", "PYTHONPATH");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if(config->platlibdir == NULL) {
+ status = CONFIG_GET_ENV_DUP(config, &config->platlibdir,
+ L"PYTHONPLATLIBDIR", "PYTHONPLATLIBDIR");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->use_hash_seed < 0) {
+ status = config_init_hash_seed(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+config_init_tracemalloc(PyConfig *config)
+{
+ int nframe;
+ int valid;
+
+ const char *env = config_get_env(config, "PYTHONTRACEMALLOC");
+ if (env) {
+ if (!_Py_str_to_int(env, &nframe)) {
+ valid = (nframe >= 0);
+ }
+ else {
+ valid = 0;
+ }
+ if (!valid) {
+ return _PyStatus_ERR("PYTHONTRACEMALLOC: invalid number of frames");
+ }
+ config->tracemalloc = nframe;
+ }
+
+ const wchar_t *xoption = config_get_xoption(config, L"tracemalloc");
+ if (xoption) {
+ const wchar_t *sep = wcschr(xoption, L'=');
+ if (sep) {
+ if (!config_wstr_to_int(sep + 1, &nframe)) {
+ valid = (nframe >= 0);
+ }
+ else {
+ valid = 0;
+ }
+ if (!valid) {
+ return _PyStatus_ERR("-X tracemalloc=NFRAME: "
+ "invalid number of frames");
+ }
+ }
+ else {
+ /* -X tracemalloc behaves as -X tracemalloc=1 */
+ nframe = 1;
+ }
+ config->tracemalloc = nframe;
+ }
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+config_init_pycache_prefix(PyConfig *config)
+{
+ assert(config->pycache_prefix == NULL);
+
+ const wchar_t *xoption = config_get_xoption(config, L"pycache_prefix");
+ if (xoption) {
+ const wchar_t *sep = wcschr(xoption, L'=');
+ if (sep && wcslen(sep) > 1) {
+ config->pycache_prefix = _PyMem_RawWcsdup(sep + 1);
+ if (config->pycache_prefix == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ else {
+ // PYTHONPYCACHEPREFIX env var ignored
+ // if "-X pycache_prefix=" option is used
+ config->pycache_prefix = NULL;
+ }
+ return _PyStatus_OK();
+ }
+
+ return CONFIG_GET_ENV_DUP(config, &config->pycache_prefix,
+ L"PYTHONPYCACHEPREFIX",
+ "PYTHONPYCACHEPREFIX");
+}
+
+
+static PyStatus
+config_read_complex_options(PyConfig *config)
+{
+ /* More complex options configured by env var and -X option */
+ if (config->faulthandler < 0) {
+ if (config_get_env(config, "PYTHONFAULTHANDLER")
+ || config_get_xoption(config, L"faulthandler")) {
+ config->faulthandler = 1;
+ }
+ }
+ if (config_get_env(config, "PYTHONPROFILEIMPORTTIME")
+ || config_get_xoption(config, L"importtime")) {
+ config->import_time = 1;
+ }
+
+ if (config_get_env(config, "PYTHONOLDPARSER")
+ || config_get_xoption(config, L"oldparser")) {
+ config->_use_peg_parser = 0;
+ }
+
+ PyStatus status;
+ if (config->tracemalloc < 0) {
+ status = config_init_tracemalloc(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->pycache_prefix == NULL) {
+ status = config_init_pycache_prefix(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+static const wchar_t *
+config_get_stdio_errors(void)
+{
+#ifndef MS_WINDOWS
+ const char *loc = setlocale(LC_CTYPE, NULL);
+ if (loc != NULL) {
+ /* surrogateescape is the default in the legacy C and POSIX locales */
+ if (strcmp(loc, "C") == 0 || strcmp(loc, "POSIX") == 0) {
+ return L"surrogateescape";
+ }
+
+#ifdef PY_COERCE_C_LOCALE
+ /* surrogateescape is the default in locale coercion target locales */
+ if (_Py_IsLocaleCoercionTarget(loc)) {
+ return L"surrogateescape";
+ }
+#endif
+ }
+
+ return L"strict";
+#else
+ /* On Windows, always use surrogateescape by default */
+ return L"surrogateescape";
+#endif
+}
+
+
+static PyStatus
+config_get_locale_encoding(PyConfig *config, wchar_t **locale_encoding)
+{
+#ifdef MS_WINDOWS
+ char encoding[20];
+ PyOS_snprintf(encoding, sizeof(encoding), "cp%u", GetACP());
+ return PyConfig_SetBytesString(config, locale_encoding, encoding);
+#elif defined(_Py_FORCE_UTF8_LOCALE)
+ return PyConfig_SetString(config, locale_encoding, L"utf-8");
+#else
+ const char *encoding = nl_langinfo(CODESET);
+ if (!encoding || encoding[0] == '\0') {
+ return _PyStatus_ERR("failed to get the locale encoding: "
+ "nl_langinfo(CODESET) failed");
+ }
+ /* nl_langinfo(CODESET) is decoded by Py_DecodeLocale() */
+ return CONFIG_SET_BYTES_STR(config,
+ locale_encoding, encoding,
+ "nl_langinfo(CODESET)");
+#endif
+}
+
+
+static PyStatus
+config_init_stdio_encoding(PyConfig *config,
+ const PyPreConfig *preconfig)
+{
+ PyStatus status;
+
+ /* If Py_SetStandardStreamEncoding() have been called, use these
+ parameters. */
+ if (config->stdio_encoding == NULL && _Py_StandardStreamEncoding != NULL) {
+ status = CONFIG_SET_BYTES_STR(config, &config->stdio_encoding,
+ _Py_StandardStreamEncoding,
+ "_Py_StandardStreamEncoding");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->stdio_errors == NULL && _Py_StandardStreamErrors != NULL) {
+ status = CONFIG_SET_BYTES_STR(config, &config->stdio_errors,
+ _Py_StandardStreamErrors,
+ "_Py_StandardStreamErrors");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->stdio_encoding != NULL && config->stdio_errors != NULL) {
+ return _PyStatus_OK();
+ }
+
+ /* PYTHONIOENCODING environment variable */
+ const char *opt = config_get_env(config, "PYTHONIOENCODING");
+ if (opt) {
+ char *pythonioencoding = _PyMem_RawStrdup(opt);
+ if (pythonioencoding == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ char *errors = strchr(pythonioencoding, ':');
+ if (errors) {
+ *errors = '\0';
+ errors++;
+ if (!errors[0]) {
+ errors = NULL;
+ }
+ }
+
+ /* Does PYTHONIOENCODING contain an encoding? */
+ if (pythonioencoding[0]) {
+ if (config->stdio_encoding == NULL) {
+ status = CONFIG_SET_BYTES_STR(config, &config->stdio_encoding,
+ pythonioencoding,
+ "PYTHONIOENCODING environment variable");
+ if (_PyStatus_EXCEPTION(status)) {
+ PyMem_RawFree(pythonioencoding);
+ return status;
+ }
+ }
+
+ /* If the encoding is set but not the error handler,
+ use "strict" error handler by default.
+ PYTHONIOENCODING=latin1 behaves as
+ PYTHONIOENCODING=latin1:strict. */
+ if (!errors) {
+ errors = "strict";
+ }
+ }
+
+ if (config->stdio_errors == NULL && errors != NULL) {
+ status = CONFIG_SET_BYTES_STR(config, &config->stdio_errors,
+ errors,
+ "PYTHONIOENCODING environment variable");
+ if (_PyStatus_EXCEPTION(status)) {
+ PyMem_RawFree(pythonioencoding);
+ return status;
+ }
+ }
+
+ PyMem_RawFree(pythonioencoding);
+ }
+
+ /* UTF-8 Mode uses UTF-8/surrogateescape */
+ if (preconfig->utf8_mode) {
+ if (config->stdio_encoding == NULL) {
+ status = PyConfig_SetString(config, &config->stdio_encoding,
+ L"utf-8");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ if (config->stdio_errors == NULL) {
+ status = PyConfig_SetString(config, &config->stdio_errors,
+ L"surrogateescape");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ }
+
+ /* Choose the default error handler based on the current locale. */
+ if (config->stdio_encoding == NULL) {
+ status = config_get_locale_encoding(config, &config->stdio_encoding);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ if (config->stdio_errors == NULL) {
+ const wchar_t *errors = config_get_stdio_errors();
+ assert(errors != NULL);
+
+ status = PyConfig_SetString(config, &config->stdio_errors, errors);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+config_init_fs_encoding(PyConfig *config, const PyPreConfig *preconfig)
+{
+ PyStatus status;
+
+ if (config->filesystem_encoding == NULL) {
+#ifdef _Py_FORCE_UTF8_FS_ENCODING
+ status = PyConfig_SetString(config, &config->filesystem_encoding, L"utf-8");
+#else
+
+#ifdef MS_WINDOWS
+ if (preconfig->legacy_windows_fs_encoding) {
+ /* Legacy Windows filesystem encoding: mbcs/replace */
+ status = PyConfig_SetString(config, &config->filesystem_encoding,
+ L"mbcs");
+ }
+ else
+#endif
+ if (preconfig->utf8_mode) {
+ status = PyConfig_SetString(config, &config->filesystem_encoding,
+ L"utf-8");
+ }
+#ifndef MS_WINDOWS
+ else if (_Py_GetForceASCII()) {
+ status = PyConfig_SetString(config, &config->filesystem_encoding,
+ L"ascii");
+ }
+#endif
+ else {
+#ifdef MS_WINDOWS
+ /* Windows defaults to utf-8/surrogatepass (PEP 529). */
+ status = PyConfig_SetString(config, &config->filesystem_encoding,
+ L"utf-8");
+#else
+ status = config_get_locale_encoding(config,
+ &config->filesystem_encoding);
+#endif
+ }
+#endif /* !_Py_FORCE_UTF8_FS_ENCODING */
+
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->filesystem_errors == NULL) {
+ const wchar_t *errors;
+#ifdef MS_WINDOWS
+ if (preconfig->legacy_windows_fs_encoding) {
+ errors = L"replace";
+ }
+ else {
+ errors = L"surrogatepass";
+ }
+#else
+ errors = L"surrogateescape";
+#endif
+ status = PyConfig_SetString(config, &config->filesystem_errors, errors);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+config_read(PyConfig *config)
+{
+ PyStatus status;
+ const PyPreConfig *preconfig = &_PyRuntime.preconfig;
+
+ if (config->use_environment) {
+ status = config_read_env_vars(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ /* -X options */
+ if (config_get_xoption(config, L"showrefcount")) {
+ config->show_ref_count = 1;
+ }
+
+ status = config_read_complex_options(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (config->home == NULL) {
+ status = config_init_home(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->executable == NULL) {
+ status = config_init_executable(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if(config->platlibdir == NULL) {
+ status = CONFIG_SET_BYTES_STR(config, &config->platlibdir, PLATLIBDIR,
+ "PLATLIBDIR macro");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->_install_importlib) {
+ status = _PyConfig_InitPathConfig(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ /* default values */
+ if (config->dev_mode) {
+ if (config->faulthandler < 0) {
+ config->faulthandler = 1;
+ }
+ }
+ if (config->faulthandler < 0) {
+ config->faulthandler = 0;
+ }
+ if (config->tracemalloc < 0) {
+ config->tracemalloc = 0;
+ }
+ if (config->use_hash_seed < 0) {
+ config->use_hash_seed = 0;
+ config->hash_seed = 0;
+ }
+
+ if (config->filesystem_encoding == NULL || config->filesystem_errors == NULL) {
+ status = config_init_fs_encoding(config, preconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ status = config_init_stdio_encoding(config, preconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (config->argv.length < 1) {
+ /* Ensure at least one (empty) argument is seen */
+ status = PyWideStringList_Append(&config->argv, L"");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->check_hash_pycs_mode == NULL) {
+ status = PyConfig_SetString(config, &config->check_hash_pycs_mode,
+ L"default");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->configure_c_stdio < 0) {
+ config->configure_c_stdio = 1;
+ }
+
+ return _PyStatus_OK();
+}
+
+
+static void
+config_init_stdio(const PyConfig *config)
+{
+#if defined(MS_WINDOWS) || defined(__CYGWIN__)
+ /* don't translate newlines (\r\n <=> \n) */
+ _setmode(fileno(stdin), O_BINARY);
+ _setmode(fileno(stdout), O_BINARY);
+ _setmode(fileno(stderr), O_BINARY);
+#endif
+
+ if (!config->buffered_stdio) {
+#ifdef HAVE_SETVBUF
+ setvbuf(stdin, (char *)NULL, _IONBF, BUFSIZ);
+ setvbuf(stdout, (char *)NULL, _IONBF, BUFSIZ);
+ setvbuf(stderr, (char *)NULL, _IONBF, BUFSIZ);
+#else /* !HAVE_SETVBUF */
+ setbuf(stdin, (char *)NULL);
+ setbuf(stdout, (char *)NULL);
+ setbuf(stderr, (char *)NULL);
+#endif /* !HAVE_SETVBUF */
+ }
+ else if (config->interactive) {
+#ifdef MS_WINDOWS
+ /* Doesn't have to have line-buffered -- use unbuffered */
+ /* Any set[v]buf(stdin, ...) screws up Tkinter :-( */
+ setvbuf(stdout, (char *)NULL, _IONBF, BUFSIZ);
+#else /* !MS_WINDOWS */
+#ifdef HAVE_SETVBUF
+ setvbuf(stdin, (char *)NULL, _IOLBF, BUFSIZ);
+ setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
+#endif /* HAVE_SETVBUF */
+#endif /* !MS_WINDOWS */
+ /* Leave stderr alone - it should be unbuffered anyway. */
+ }
+}
+
+
+/* Write the configuration:
+
+ - set Py_xxx global configuration variables
+ - initialize C standard streams (stdin, stdout, stderr) */
+PyStatus
+_PyConfig_Write(const PyConfig *config, _PyRuntimeState *runtime)
+{
+ config_set_global_vars(config);
+
+ if (config->configure_c_stdio) {
+ config_init_stdio(config);
+ }
+
+ /* Write the new pre-configuration into _PyRuntime */
+ PyPreConfig *preconfig = &runtime->preconfig;
+ preconfig->isolated = config->isolated;
+ preconfig->use_environment = config->use_environment;
+ preconfig->dev_mode = config->dev_mode;
+
+ if (_Py_SetArgcArgv(config->_orig_argv.length,
+ config->_orig_argv.items) < 0)
+ {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
+}
+
+
+/* --- PyConfig command line parser -------------------------- */
+
+static void
+config_usage(int error, const wchar_t* program)
+{
+ FILE *f = error ? stderr : stdout;
+
+ fprintf(f, usage_line, program);
+ if (error)
+ fprintf(f, "Try `python -h' for more information.\n");
+ else {
+ fputs(usage_1, f);
+ fputs(usage_2, f);
+ fputs(usage_3, f);
+ fprintf(f, usage_4, (wint_t)DELIM);
+ fprintf(f, usage_5, (wint_t)DELIM, PYTHONHOMEHELP);
+ fputs(usage_6, f);
+ }
+}
+
+
+/* Parse the command line arguments */
+static PyStatus
+config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions,
+ Py_ssize_t *opt_index)
+{
+ PyStatus status;
+ const PyWideStringList *argv = &config->argv;
+ int print_version = 0;
+ const wchar_t* program = config->program_name;
+
+ _PyOS_ResetGetOpt();
+ do {
+ int longindex = -1;
+ int c = _PyOS_GetOpt(argv->length, argv->items, &longindex);
+ if (c == EOF) {
+ break;
+ }
+
+ if (c == 'c') {
+ if (config->run_command == NULL) {
+ /* -c is the last option; following arguments
+ that look like options are left for the
+ command to interpret. */
+ size_t len = wcslen(_PyOS_optarg) + 1 + 1;
+ wchar_t *command = PyMem_RawMalloc(sizeof(wchar_t) * len);
+ if (command == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ memcpy(command, _PyOS_optarg, (len - 2) * sizeof(wchar_t));
+ command[len - 2] = '\n';
+ command[len - 1] = 0;
+ config->run_command = command;
+ }
+ break;
+ }
+
+ if (c == 'm') {
+ /* -m is the last option; following arguments
+ that look like options are left for the
+ module to interpret. */
+ if (config->run_module == NULL) {
+ config->run_module = _PyMem_RawWcsdup(_PyOS_optarg);
+ if (config->run_module == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ break;
+ }
+
+ switch (c) {
+ case 0:
+ // Handle long option.
+ assert(longindex == 0); // Only one long option now.
+ if (wcscmp(_PyOS_optarg, L"always") == 0
+ || wcscmp(_PyOS_optarg, L"never") == 0
+ || wcscmp(_PyOS_optarg, L"default") == 0)
+ {
+ status = PyConfig_SetString(config, &config->check_hash_pycs_mode,
+ _PyOS_optarg);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ } else {
+ fprintf(stderr, "--check-hash-based-pycs must be one of "
+ "'default', 'always', or 'never'\n");
+ config_usage(1, program);
+ return _PyStatus_EXIT(2);
+ }
+ break;
+
+ case 'b':
+ config->bytes_warning++;
+ break;
+
+ case 'd':
+ config->parser_debug++;
+ break;
+
+ case 'i':
+ config->inspect++;
+ config->interactive++;
+ break;
+
+ case 'E':
+ case 'I':
+ case 'X':
+ /* option handled by _PyPreCmdline_Read() */
+ break;
+
+ /* case 'J': reserved for Jython */
+
+ case 'O':
+ config->optimization_level++;
+ break;
+
+ case 'B':
+ config->write_bytecode = 0;
+ break;
+
+ case 's':
+ config->user_site_directory = 0;
+ break;
+
+ case 'S':
+ config->site_import = 0;
+ break;
+
+ case 't':
+ /* ignored for backwards compatibility */
+ break;
+
+ case 'u':
+ config->buffered_stdio = 0;
+ break;
+
+ case 'v':
+ config->verbose++;
+ break;
+
+ case 'x':
+ config->skip_source_first_line = 1;
+ break;
+
+ case 'h':
+ case '?':
+ config_usage(0, program);
+ return _PyStatus_EXIT(0);
+
+ case 'V':
+ print_version++;
+ break;
+
+ case 'W':
+ status = PyWideStringList_Append(warnoptions, _PyOS_optarg);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ break;
+
+ case 'q':
+ config->quiet++;
+ break;
+
+ case 'R':
+ config->use_hash_seed = 0;
+ break;
+
+ /* This space reserved for other options */
+
+ default:
+ /* unknown argument: parsing failed */
+ config_usage(1, program);
+ return _PyStatus_EXIT(2);
+ }
+ } while (1);
+
+ if (print_version) {
+ printf("Python %s\n",
+ (print_version >= 2) ? Py_GetVersion() : PY_VERSION);
+ return _PyStatus_EXIT(0);
+ }
+
+ if (config->run_command == NULL && config->run_module == NULL
+ && _PyOS_optind < argv->length
+ && wcscmp(argv->items[_PyOS_optind], L"-") != 0
+ && config->run_filename == NULL)
+ {
+ config->run_filename = _PyMem_RawWcsdup(argv->items[_PyOS_optind]);
+ if (config->run_filename == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+
+ if (config->run_command != NULL || config->run_module != NULL) {
+ /* Backup _PyOS_optind */
+ _PyOS_optind--;
+ }
+
+ *opt_index = _PyOS_optind;
+
+ return _PyStatus_OK();
+}
+
+
+#ifdef MS_WINDOWS
+# define WCSTOK wcstok_s
+#else
+# define WCSTOK wcstok
+#endif
+
+/* Get warning options from PYTHONWARNINGS environment variable. */
+static PyStatus
+config_init_env_warnoptions(PyConfig *config, PyWideStringList *warnoptions)
+{
+ PyStatus status;
+ /* CONFIG_GET_ENV_DUP requires dest to be initialized to NULL */
+ wchar_t *env = NULL;
+ status = CONFIG_GET_ENV_DUP(config, &env,
+ L"PYTHONWARNINGS", "PYTHONWARNINGS");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ /* env var is not set or is empty */
+ if (env == NULL) {
+ return _PyStatus_OK();
+ }
+
+
+ wchar_t *warning, *context = NULL;
+ for (warning = WCSTOK(env, L",", &context);
+ warning != NULL;
+ warning = WCSTOK(NULL, L",", &context))
+ {
+ status = PyWideStringList_Append(warnoptions, warning);
+ if (_PyStatus_EXCEPTION(status)) {
+ PyMem_RawFree(env);
+ return status;
+ }
+ }
+ PyMem_RawFree(env);
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+warnoptions_append(PyConfig *config, PyWideStringList *options,
+ const wchar_t *option)
+{
+ /* config_init_warnoptions() add existing config warnoptions at the end:
+ ensure that the new option is not already present in this list to
+ prevent change the options order when config_init_warnoptions() is
+ called twice. */
+ if (_PyWideStringList_Find(&config->warnoptions, option)) {
+ /* Already present: do nothing */
+ return _PyStatus_OK();
+ }
+ if (_PyWideStringList_Find(options, option)) {
+ /* Already present: do nothing */
+ return _PyStatus_OK();
+ }
+ return PyWideStringList_Append(options, option);
+}
+
+
+static PyStatus
+warnoptions_extend(PyConfig *config, PyWideStringList *options,
+ const PyWideStringList *options2)
+{
+ const Py_ssize_t len = options2->length;
+ wchar_t *const *items = options2->items;
+
+ for (Py_ssize_t i = 0; i < len; i++) {
+ PyStatus status = warnoptions_append(config, options, items[i]);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+config_init_warnoptions(PyConfig *config,
+ const PyWideStringList *cmdline_warnoptions,
+ const PyWideStringList *env_warnoptions,
+ const PyWideStringList *sys_warnoptions)
+{
+ PyStatus status;
+ PyWideStringList options = _PyWideStringList_INIT;
+
+ /* Priority of warnings options, lowest to highest:
+ *
+ * - any implicit filters added by _warnings.c/warnings.py
+ * - PyConfig.dev_mode: "default" filter
+ * - PYTHONWARNINGS environment variable
+ * - '-W' command line options
+ * - PyConfig.bytes_warning ('-b' and '-bb' command line options):
+ * "default::BytesWarning" or "error::BytesWarning" filter
+ * - early PySys_AddWarnOption() calls
+ * - PyConfig.warnoptions
+ *
+ * PyConfig.warnoptions is copied to sys.warnoptions. Since the warnings
+ * module works on the basis of "the most recently added filter will be
+ * checked first", we add the lowest precedence entries first so that later
+ * entries override them.
+ */
+
+ if (config->dev_mode) {
+ status = warnoptions_append(config, &options, L"default");
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
+ }
+ }
+
+ status = warnoptions_extend(config, &options, env_warnoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
+ }
+
+ status = warnoptions_extend(config, &options, cmdline_warnoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
+ }
+
+ /* If the bytes_warning_flag isn't set, bytesobject.c and bytearrayobject.c
+ * don't even try to emit a warning, so we skip setting the filter in that
+ * case.
+ */
+ if (config->bytes_warning) {
+ const wchar_t *filter;
+ if (config->bytes_warning> 1) {
+ filter = L"error::BytesWarning";
+ }
+ else {
+ filter = L"default::BytesWarning";
+ }
+ status = warnoptions_append(config, &options, filter);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
+ }
+ }
+
+ status = warnoptions_extend(config, &options, sys_warnoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
+ }
+
+ /* Always add all PyConfig.warnoptions options */
+ status = _PyWideStringList_Extend(&options, &config->warnoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
+ }
+
+ _PyWideStringList_Clear(&config->warnoptions);
+ config->warnoptions = options;
+ return _PyStatus_OK();
+
+error:
+ _PyWideStringList_Clear(&options);
+ return status;
+}
+
+
+static PyStatus
+config_update_argv(PyConfig *config, Py_ssize_t opt_index)
+{
+ const PyWideStringList *cmdline_argv = &config->argv;
+ PyWideStringList config_argv = _PyWideStringList_INIT;
+
+ /* Copy argv to be able to modify it (to force -c/-m) */
+ if (cmdline_argv->length <= opt_index) {
+ /* Ensure at least one (empty) argument is seen */
+ PyStatus status = PyWideStringList_Append(&config_argv, L"");
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ else {
+ PyWideStringList slice;
+ slice.length = cmdline_argv->length - opt_index;
+ slice.items = &cmdline_argv->items[opt_index];
+ if (_PyWideStringList_Copy(&config_argv, &slice) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ assert(config_argv.length >= 1);
+
+ wchar_t *arg0 = NULL;
+ if (config->run_command != NULL) {
+ /* Force sys.argv[0] = '-c' */
+ arg0 = L"-c";
+ }
+ else if (config->run_module != NULL) {
+ /* Force sys.argv[0] = '-m'*/
+ arg0 = L"-m";
+ }
+
+ if (arg0 != NULL) {
+ arg0 = _PyMem_RawWcsdup(arg0);
+ if (arg0 == NULL) {
+ _PyWideStringList_Clear(&config_argv);
+ return _PyStatus_NO_MEMORY();
+ }
+
+ PyMem_RawFree(config_argv.items[0]);
+ config_argv.items[0] = arg0;
+ }
+
+ _PyWideStringList_Clear(&config->argv);
+ config->argv = config_argv;
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+core_read_precmdline(PyConfig *config, _PyPreCmdline *precmdline)
+{
+ PyStatus status;
+
+ if (config->parse_argv) {
+ if (_PyWideStringList_Copy(&precmdline->argv, &config->argv) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+
+ PyPreConfig preconfig;
+
+ status = _PyPreConfig_InitFromPreConfig(&preconfig, &_PyRuntime.preconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ _PyPreConfig_GetConfig(&preconfig, config);
+
+ status = _PyPreCmdline_Read(precmdline, &preconfig);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = _PyPreCmdline_SetConfig(precmdline, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ return _PyStatus_OK();
+}
+
+
+/* Get run_filename absolute path */
+static PyStatus
+config_run_filename_abspath(PyConfig *config)
+{
+ if (!config->run_filename) {
+ return _PyStatus_OK();
+ }
+
+#ifndef MS_WINDOWS
+ if (_Py_isabs(config->run_filename)) {
+ /* path is already absolute */
+ return _PyStatus_OK();
+ }
+#endif
+
+ wchar_t *abs_filename;
+ if (_Py_abspath(config->run_filename, &abs_filename) < 0) {
+ /* failed to get the absolute path of the command line filename:
+ ignore the error, keep the relative path */
+ return _PyStatus_OK();
+ }
+ if (abs_filename == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ PyMem_RawFree(config->run_filename);
+ config->run_filename = abs_filename;
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+config_read_cmdline(PyConfig *config)
+{
+ PyStatus status;
+ PyWideStringList cmdline_warnoptions = _PyWideStringList_INIT;
+ PyWideStringList env_warnoptions = _PyWideStringList_INIT;
+ PyWideStringList sys_warnoptions = _PyWideStringList_INIT;
+
+ if (config->parse_argv < 0) {
+ config->parse_argv = 1;
+ }
+
+ if (config->program_name == NULL) {
+ status = config_init_program_name(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->parse_argv) {
+ Py_ssize_t opt_index;
+ status = config_parse_cmdline(config, &cmdline_warnoptions, &opt_index);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = config_run_filename_abspath(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = config_update_argv(config, opt_index);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+ }
+ else {
+ status = config_run_filename_abspath(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+ }
+
+ if (config->use_environment) {
+ status = config_init_env_warnoptions(config, &env_warnoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+ }
+
+ /* Handle early PySys_AddWarnOption() calls */
+ status = _PySys_ReadPreinitWarnOptions(&sys_warnoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = config_init_warnoptions(config,
+ &cmdline_warnoptions,
+ &env_warnoptions,
+ &sys_warnoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = _PyStatus_OK();
+
+done:
+ _PyWideStringList_Clear(&cmdline_warnoptions);
+ _PyWideStringList_Clear(&env_warnoptions);
+ _PyWideStringList_Clear(&sys_warnoptions);
+ return status;
+}
+
+
+PyStatus
+_PyConfig_SetPyArgv(PyConfig *config, const _PyArgv *args)
+{
+ PyStatus status = _Py_PreInitializeFromConfig(config, args);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ return _PyArgv_AsWstrList(args, &config->argv);
+}
+
+
+/* Set config.argv: decode argv using Py_DecodeLocale(). Pre-initialize Python
+ if needed to ensure that encodings are properly configured. */
+PyStatus
+PyConfig_SetBytesArgv(PyConfig *config, Py_ssize_t argc, char * const *argv)
+{
+ _PyArgv args = {
+ .argc = argc,
+ .use_bytes_argv = 1,
+ .bytes_argv = argv,
+ .wchar_argv = NULL};
+ return _PyConfig_SetPyArgv(config, &args);
+}
+
+
+PyStatus
+PyConfig_SetArgv(PyConfig *config, Py_ssize_t argc, wchar_t * const *argv)
+{
+ _PyArgv args = {
+ .argc = argc,
+ .use_bytes_argv = 0,
+ .bytes_argv = NULL,
+ .wchar_argv = argv};
+ return _PyConfig_SetPyArgv(config, &args);
+}
+
+
+PyStatus
+PyConfig_SetWideStringList(PyConfig *config, PyWideStringList *list,
+ Py_ssize_t length, wchar_t **items)
+{
+ PyStatus status = _Py_PreInitializeFromConfig(config, NULL);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ PyWideStringList list2 = {.length = length, .items = items};
+ if (_PyWideStringList_Copy(list, &list2) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ return _PyStatus_OK();
+}
+
+
+/* Read the configuration into PyConfig from:
+
+ * Command line arguments
+ * Environment variables
+ * Py_xxx global configuration variables
+
+ The only side effects are to modify config and to call _Py_SetArgcArgv(). */
+PyStatus
+PyConfig_Read(PyConfig *config)
+{
+ PyStatus status;
+
+ status = _Py_PreInitializeFromConfig(config, NULL);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ config_get_global_vars(config);
+
+ if (config->_orig_argv.length == 0
+ && !(config->argv.length == 1
+ && wcscmp(config->argv.items[0], L"") == 0))
+ {
+ if (_PyWideStringList_Copy(&config->_orig_argv, &config->argv) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+
+ _PyPreCmdline precmdline = _PyPreCmdline_INIT;
+ status = core_read_precmdline(config, &precmdline);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ assert(config->isolated >= 0);
+ if (config->isolated) {
+ config->use_environment = 0;
+ config->user_site_directory = 0;
+ }
+
+ status = config_read_cmdline(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ /* Handle early PySys_AddXOption() calls */
+ status = _PySys_ReadPreinitXOptions(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = config_read(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ /* Check config consistency */
+ assert(config->isolated >= 0);
+ assert(config->use_environment >= 0);
+ assert(config->dev_mode >= 0);
+ assert(config->_use_peg_parser >= 0);
+ assert(config->install_signal_handlers >= 0);
+ assert(config->use_hash_seed >= 0);
+ assert(config->faulthandler >= 0);
+ assert(config->tracemalloc >= 0);
+ assert(config->site_import >= 0);
+ assert(config->bytes_warning >= 0);
+ assert(config->inspect >= 0);
+ assert(config->interactive >= 0);
+ assert(config->optimization_level >= 0);
+ assert(config->parser_debug >= 0);
+ assert(config->write_bytecode >= 0);
+ assert(config->verbose >= 0);
+ assert(config->quiet >= 0);
+ assert(config->user_site_directory >= 0);
+ assert(config->parse_argv >= 0);
+ assert(config->configure_c_stdio >= 0);
+ assert(config->buffered_stdio >= 0);
+ assert(config->program_name != NULL);
+ assert(_PyWideStringList_CheckConsistency(&config->argv));
+ /* sys.argv must be non-empty: empty argv is replaced with [''] */
+ assert(config->argv.length >= 1);
+ assert(_PyWideStringList_CheckConsistency(&config->xoptions));
+ assert(_PyWideStringList_CheckConsistency(&config->warnoptions));
+ assert(_PyWideStringList_CheckConsistency(&config->module_search_paths));
+ if (config->_install_importlib) {
+ assert(config->module_search_paths_set != 0);
+ /* don't check config->module_search_paths */
+ assert(config->executable != NULL);
+ assert(config->base_executable != NULL);
+ assert(config->prefix != NULL);
+ assert(config->base_prefix != NULL);
+ assert(config->exec_prefix != NULL);
+ assert(config->base_exec_prefix != NULL);
+ }
+ assert(config->platlibdir != NULL);
+ assert(config->filesystem_encoding != NULL);
+ assert(config->filesystem_errors != NULL);
+ assert(config->stdio_encoding != NULL);
+ assert(config->stdio_errors != NULL);
+#ifdef MS_WINDOWS
+ assert(config->legacy_windows_stdio >= 0);
+#endif
+ /* -c and -m options are exclusive */
+ assert(!(config->run_command != NULL && config->run_module != NULL));
+ assert(config->check_hash_pycs_mode != NULL);
+ assert(config->_install_importlib >= 0);
+ assert(config->pathconfig_warnings >= 0);
+ assert(_PyWideStringList_CheckConsistency(&config->_orig_argv));
+
+ status = _PyStatus_OK();
+
+done:
+ _PyPreCmdline_Clear(&precmdline);
+ return status;
+}
+
+
+PyObject*
+_Py_GetConfigsAsDict(void)
+{
+ PyObject *result = NULL;
+ PyObject *dict = NULL;
+
+ result = PyDict_New();
+ if (result == NULL) {
+ goto error;
+ }
+
+ /* global result */
+ dict = _Py_GetGlobalVariablesAsDict();
+ if (dict == NULL) {
+ goto error;
+ }
+ if (PyDict_SetItemString(result, "global_config", dict) < 0) {
+ goto error;
+ }
+ Py_CLEAR(dict);
+
+ /* pre config */
+ PyThreadState *tstate = _PyThreadState_GET();
+ const PyPreConfig *pre_config = &tstate->interp->runtime->preconfig;
+ dict = _PyPreConfig_AsDict(pre_config);
+ if (dict == NULL) {
+ goto error;
+ }
+ if (PyDict_SetItemString(result, "pre_config", dict) < 0) {
+ goto error;
+ }
+ Py_CLEAR(dict);
+
+ /* core config */
+ const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
+ dict = config_as_dict(config);
+ if (dict == NULL) {
+ goto error;
+ }
+ if (PyDict_SetItemString(result, "config", dict) < 0) {
+ goto error;
+ }
+ Py_CLEAR(dict);
+
+ return result;
+
+error:
+ Py_XDECREF(result);
+ Py_XDECREF(dict);
+ return NULL;
+}
+
+
+static void
+init_dump_ascii_wstr(const wchar_t *str)
+{
+ if (str == NULL) {
+ PySys_WriteStderr("(not set)");
+ return;
+ }
+
+ PySys_WriteStderr("'");
+ for (; *str != L'\0'; str++) {
+ unsigned int ch = (unsigned int)*str;
+ if (ch == L'\'') {
+ PySys_WriteStderr("\\'");
+ } else if (0x20 <= ch && ch < 0x7f) {
+ PySys_WriteStderr("%c", ch);
+ }
+ else if (ch <= 0xff) {
+ PySys_WriteStderr("\\x%02x", ch);
+ }
+#if SIZEOF_WCHAR_T > 2
+ else if (ch > 0xffff) {
+ PySys_WriteStderr("\\U%08x", ch);
+ }
+#endif
+ else {
+ PySys_WriteStderr("\\u%04x", ch);
+ }
+ }
+ PySys_WriteStderr("'");
+}
+
+
+/* Dump the Python path configuration into sys.stderr */
+void
+_Py_DumpPathConfig(PyThreadState *tstate)
+{
+ PyObject *exc_type, *exc_value, *exc_tb;
+ _PyErr_Fetch(tstate, &exc_type, &exc_value, &exc_tb);
+
+ PySys_WriteStderr("Python path configuration:\n");
+
+#define DUMP_CONFIG(NAME, FIELD) \
+ do { \
+ PySys_WriteStderr(" " NAME " = "); \
+ init_dump_ascii_wstr(config->FIELD); \
+ PySys_WriteStderr("\n"); \
+ } while (0)
+
+ const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
+ DUMP_CONFIG("PYTHONHOME", home);
+ DUMP_CONFIG("PYTHONPATH", pythonpath_env);
+ DUMP_CONFIG("program name", program_name);
+ PySys_WriteStderr(" isolated = %i\n", config->isolated);
+ PySys_WriteStderr(" environment = %i\n", config->use_environment);
+ PySys_WriteStderr(" user site = %i\n", config->user_site_directory);
+ PySys_WriteStderr(" import site = %i\n", config->site_import);
+#undef DUMP_CONFIG
+
+#define DUMP_SYS(NAME) \
+ do { \
+ obj = PySys_GetObject(#NAME); \
+ PySys_FormatStderr(" sys.%s = ", #NAME); \
+ if (obj != NULL) { \
+ PySys_FormatStderr("%A", obj); \
+ } \
+ else { \
+ PySys_WriteStderr("(not set)"); \
+ } \
+ PySys_FormatStderr("\n"); \
+ } while (0)
+
+ PyObject *obj;
+ DUMP_SYS(_base_executable);
+ DUMP_SYS(base_prefix);
+ DUMP_SYS(base_exec_prefix);
+ DUMP_SYS(platlibdir);
+ DUMP_SYS(executable);
+ DUMP_SYS(prefix);
+ DUMP_SYS(exec_prefix);
+#undef DUMP_SYS
+
+ PyObject *sys_path = PySys_GetObject("path"); /* borrowed reference */
+ if (sys_path != NULL && PyList_Check(sys_path)) {
+ PySys_WriteStderr(" sys.path = [\n");
+ Py_ssize_t len = PyList_GET_SIZE(sys_path);
+ for (Py_ssize_t i=0; i < len; i++) {
+ PyObject *path = PyList_GET_ITEM(sys_path, i);
+ PySys_FormatStderr(" %A,\n", path);
+ }
+ PySys_WriteStderr(" ]\n");
+ }
+
+ _PyErr_Restore(tstate, exc_type, exc_value, exc_tb);
+}
diff --git a/contrib/tools/python3/src/Python/marshal.c b/contrib/tools/python3/src/Python/marshal.c
index a9721aa7c0..baafa3ecfb 100644
--- a/contrib/tools/python3/src/Python/marshal.c
+++ b/contrib/tools/python3/src/Python/marshal.c
@@ -12,7 +12,7 @@
#include "longintrepr.h"
#include "code.h"
#include "marshal.h"
-#include "pycore_hashtable.h"
+#include "pycore_hashtable.h"
/*[clinic input]
module marshal
@@ -83,7 +83,7 @@ typedef struct {
int depth;
PyObject *str;
char *ptr;
- const char *end;
+ const char *end;
char *buf;
_Py_hashtable_t *hashtable;
int version;
@@ -114,7 +114,7 @@ w_reserve(WFILE *p, Py_ssize_t needed)
}
assert(p->str != NULL);
pos = p->ptr - p->buf;
- size = PyBytes_GET_SIZE(p->str);
+ size = PyBytes_GET_SIZE(p->str);
if (size > 16*1024*1024)
delta = (size >> 3); /* 12.5% overallocation */
else
@@ -126,7 +126,7 @@ w_reserve(WFILE *p, Py_ssize_t needed)
}
size += delta;
if (_PyBytes_Resize(&p->str, size) != 0) {
- p->end = p->ptr = p->buf = NULL;
+ p->end = p->ptr = p->buf = NULL;
return 0;
}
else {
@@ -138,7 +138,7 @@ w_reserve(WFILE *p, Py_ssize_t needed)
}
static void
-w_string(const void *s, Py_ssize_t n, WFILE *p)
+w_string(const void *s, Py_ssize_t n, WFILE *p)
{
Py_ssize_t m;
if (!n || p->ptr == NULL)
@@ -194,14 +194,14 @@ w_long(long x, WFILE *p)
#endif
static void
-w_pstring(const void *s, Py_ssize_t n, WFILE *p)
+w_pstring(const void *s, Py_ssize_t n, WFILE *p)
{
W_SIZE(n, p);
w_string(s, n, p);
}
static void
-w_short_pstring(const void *s, Py_ssize_t n, WFILE *p)
+w_short_pstring(const void *s, Py_ssize_t n, WFILE *p)
{
w_byte(Py_SAFE_DOWNCAST(n, Py_ssize_t, unsigned char), p);
w_string(s, n, p);
@@ -266,29 +266,29 @@ w_PyLong(const PyLongObject *ob, char flag, WFILE *p)
} while (d != 0);
}
-static void
-w_float_bin(double v, WFILE *p)
-{
- unsigned char buf[8];
- if (_PyFloat_Pack8(v, buf, 1) < 0) {
- p->error = WFERR_UNMARSHALLABLE;
- return;
- }
- w_string(buf, 8, p);
-}
-
-static void
-w_float_str(double v, WFILE *p)
-{
- char *buf = PyOS_double_to_string(v, 'g', 17, 0, NULL);
- if (!buf) {
- p->error = WFERR_NOMEMORY;
- return;
- }
- w_short_pstring(buf, strlen(buf), p);
- PyMem_Free(buf);
-}
-
+static void
+w_float_bin(double v, WFILE *p)
+{
+ unsigned char buf[8];
+ if (_PyFloat_Pack8(v, buf, 1) < 0) {
+ p->error = WFERR_UNMARSHALLABLE;
+ return;
+ }
+ w_string(buf, 8, p);
+}
+
+static void
+w_float_str(double v, WFILE *p)
+{
+ char *buf = PyOS_double_to_string(v, 'g', 17, 0, NULL);
+ if (!buf) {
+ p->error = WFERR_NOMEMORY;
+ return;
+ }
+ w_short_pstring(buf, strlen(buf), p);
+ PyMem_Free(buf);
+}
+
static int
w_ref(PyObject *v, char *flag, WFILE *p)
{
@@ -302,17 +302,17 @@ w_ref(PyObject *v, char *flag, WFILE *p)
if (Py_REFCNT(v) == 1)
return 0;
- entry = _Py_hashtable_get_entry(p->hashtable, v);
+ entry = _Py_hashtable_get_entry(p->hashtable, v);
if (entry != NULL) {
/* write the reference index to the stream */
- w = (int)(uintptr_t)entry->value;
+ w = (int)(uintptr_t)entry->value;
/* we don't store "long" indices in the dict */
assert(0 <= w && w <= 0x7fffffff);
w_byte(TYPE_REF, p);
w_long(w, p);
return 1;
} else {
- size_t s = p->hashtable->nentries;
+ size_t s = p->hashtable->nentries;
/* we don't support long indices */
if (s >= 0x7fffffff) {
PyErr_SetString(PyExc_ValueError, "too many objects");
@@ -320,7 +320,7 @@ w_ref(PyObject *v, char *flag, WFILE *p)
}
w = (int)s;
Py_INCREF(v);
- if (_Py_hashtable_set(p->hashtable, v, (void *)(uintptr_t)w) < 0) {
+ if (_Py_hashtable_set(p->hashtable, v, (void *)(uintptr_t)w) < 0) {
Py_DECREF(v);
goto err;
}
@@ -375,10 +375,10 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
Py_ssize_t i, n;
if (PyLong_CheckExact(v)) {
- int overflow;
- long x = PyLong_AsLongAndOverflow(v, &overflow);
- if (overflow) {
- w_PyLong((PyLongObject *)v, flag, p);
+ int overflow;
+ long x = PyLong_AsLongAndOverflow(v, &overflow);
+ if (overflow) {
+ w_PyLong((PyLongObject *)v, flag, p);
}
else {
#if SIZEOF_LONG > 4
@@ -398,23 +398,23 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
else if (PyFloat_CheckExact(v)) {
if (p->version > 1) {
W_TYPE(TYPE_BINARY_FLOAT, p);
- w_float_bin(PyFloat_AS_DOUBLE(v), p);
+ w_float_bin(PyFloat_AS_DOUBLE(v), p);
}
else {
W_TYPE(TYPE_FLOAT, p);
- w_float_str(PyFloat_AS_DOUBLE(v), p);
+ w_float_str(PyFloat_AS_DOUBLE(v), p);
}
}
else if (PyComplex_CheckExact(v)) {
if (p->version > 1) {
W_TYPE(TYPE_BINARY_COMPLEX, p);
- w_float_bin(PyComplex_RealAsDouble(v), p);
- w_float_bin(PyComplex_ImagAsDouble(v), p);
+ w_float_bin(PyComplex_RealAsDouble(v), p);
+ w_float_bin(PyComplex_ImagAsDouble(v), p);
}
else {
W_TYPE(TYPE_COMPLEX, p);
- w_float_str(PyComplex_RealAsDouble(v), p);
- w_float_str(PyComplex_ImagAsDouble(v), p);
+ w_float_str(PyComplex_RealAsDouble(v), p);
+ w_float_str(PyComplex_ImagAsDouble(v), p);
}
}
else if (PyBytes_CheckExact(v)) {
@@ -429,7 +429,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
W_TYPE(TYPE_SHORT_ASCII_INTERNED, p);
else
W_TYPE(TYPE_SHORT_ASCII, p);
- w_short_pstring(PyUnicode_1BYTE_DATA(v),
+ w_short_pstring(PyUnicode_1BYTE_DATA(v),
PyUnicode_GET_LENGTH(v), p);
}
else {
@@ -437,7 +437,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
W_TYPE(TYPE_ASCII_INTERNED, p);
else
W_TYPE(TYPE_ASCII, p);
- w_pstring(PyUnicode_1BYTE_DATA(v),
+ w_pstring(PyUnicode_1BYTE_DATA(v),
PyUnicode_GET_LENGTH(v), p);
}
}
@@ -458,7 +458,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
}
}
else if (PyTuple_CheckExact(v)) {
- n = PyTuple_GET_SIZE(v);
+ n = PyTuple_GET_SIZE(v);
if (p->version >= 4 && n < 256) {
W_TYPE(TYPE_SMALL_TUPLE, p);
w_byte((unsigned char)n, p);
@@ -492,17 +492,17 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
w_object((PyObject *)NULL, p);
}
else if (PyAnySet_CheckExact(v)) {
- PyObject *value;
- Py_ssize_t pos = 0;
- Py_hash_t hash;
+ PyObject *value;
+ Py_ssize_t pos = 0;
+ Py_hash_t hash;
- if (PyFrozenSet_CheckExact(v))
- W_TYPE(TYPE_FROZENSET, p);
- else
+ if (PyFrozenSet_CheckExact(v))
+ W_TYPE(TYPE_FROZENSET, p);
+ else
W_TYPE(TYPE_SET, p);
- n = PySet_GET_SIZE(v);
+ n = PySet_GET_SIZE(v);
W_SIZE(n, p);
- while (_PySet_NextEntry(v, &pos, &value, &hash)) {
+ while (_PySet_NextEntry(v, &pos, &value, &hash)) {
w_object(value, p);
}
}
@@ -510,7 +510,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
PyCodeObject *co = (PyCodeObject *)v;
W_TYPE(TYPE_CODE, p);
w_long(co->co_argcount, p);
- w_long(co->co_posonlyargcount, p);
+ w_long(co->co_posonlyargcount, p);
w_long(co->co_kwonlyargcount, p);
w_long(co->co_nlocals, p);
w_long(co->co_stacksize, p);
@@ -545,20 +545,20 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
}
}
-static void
-w_decref_entry(void *key)
-{
- PyObject *entry_key = (PyObject *)key;
- Py_XDECREF(entry_key);
-}
-
+static void
+w_decref_entry(void *key)
+{
+ PyObject *entry_key = (PyObject *)key;
+ Py_XDECREF(entry_key);
+}
+
static int
w_init_refs(WFILE *wf, int version)
{
if (version >= 3) {
- wf->hashtable = _Py_hashtable_new_full(_Py_hashtable_hash_ptr,
- _Py_hashtable_compare_direct,
- w_decref_entry, NULL, NULL);
+ wf->hashtable = _Py_hashtable_new_full(_Py_hashtable_hash_ptr,
+ _Py_hashtable_compare_direct,
+ w_decref_entry, NULL, NULL);
if (wf->hashtable == NULL) {
PyErr_NoMemory();
return -1;
@@ -596,18 +596,18 @@ PyMarshal_WriteObjectToFile(PyObject *x, FILE *fp, int version)
{
char buf[BUFSIZ];
WFILE wf;
- if (PySys_Audit("marshal.dumps", "Oi", x, version) < 0) {
- return; /* caller must check PyErr_Occurred() */
- }
+ if (PySys_Audit("marshal.dumps", "Oi", x, version) < 0) {
+ return; /* caller must check PyErr_Occurred() */
+ }
memset(&wf, 0, sizeof(wf));
wf.fp = fp;
wf.ptr = wf.buf = buf;
wf.end = wf.ptr + sizeof(buf);
wf.error = WFERR_OK;
wf.version = version;
- if (w_init_refs(&wf, version)) {
- return; /* caller must check PyErr_Occurred() */
- }
+ if (w_init_refs(&wf, version)) {
+ return; /* caller must check PyErr_Occurred() */
+ }
w_object(x, &wf);
w_clear_refs(&wf);
w_flush(&wf);
@@ -617,8 +617,8 @@ typedef struct {
FILE *fp;
int depth;
PyObject *readable; /* Stream-like object being read from */
- const char *ptr;
- const char *end;
+ const char *ptr;
+ const char *end;
char *buf;
Py_ssize_t buf_size;
PyObject *refs; /* a list */
@@ -631,7 +631,7 @@ r_string(Py_ssize_t n, RFILE *p)
if (p->ptr != NULL) {
/* Fast path for loads() */
- const char *res = p->ptr;
+ const char *res = p->ptr;
Py_ssize_t left = p->end - p->ptr;
if (left < n) {
PyErr_SetString(PyExc_EOFError,
@@ -713,7 +713,7 @@ r_byte(RFILE *p)
else {
const char *ptr = r_string(1, p);
if (ptr != NULL)
- c = *(const unsigned char *) ptr;
+ c = *(const unsigned char *) ptr;
}
return c;
}
@@ -792,7 +792,7 @@ r_PyLong(RFILE *p)
if (ob == NULL)
return NULL;
- Py_SET_SIZE(ob, n > 0 ? size : -size);
+ Py_SET_SIZE(ob, n > 0 ? size : -size);
for (i = 0; i < size-1; i++) {
d = 0;
@@ -842,38 +842,38 @@ r_PyLong(RFILE *p)
return NULL;
}
-static double
-r_float_bin(RFILE *p)
-{
- const unsigned char *buf = (const unsigned char *) r_string(8, p);
- if (buf == NULL)
- return -1;
- return _PyFloat_Unpack8(buf, 1);
-}
-
-/* Issue #33720: Disable inlining for reducing the C stack consumption
- on PGO builds. */
-_Py_NO_INLINE static double
-r_float_str(RFILE *p)
-{
- int n;
- char buf[256];
- const char *ptr;
- n = r_byte(p);
- if (n == EOF) {
- PyErr_SetString(PyExc_EOFError,
- "EOF read where object expected");
- return -1;
- }
- ptr = r_string(n, p);
- if (ptr == NULL) {
- return -1;
- }
- memcpy(buf, ptr, n);
- buf[n] = '\0';
- return PyOS_string_to_double(buf, NULL, NULL);
-}
-
+static double
+r_float_bin(RFILE *p)
+{
+ const unsigned char *buf = (const unsigned char *) r_string(8, p);
+ if (buf == NULL)
+ return -1;
+ return _PyFloat_Unpack8(buf, 1);
+}
+
+/* Issue #33720: Disable inlining for reducing the C stack consumption
+ on PGO builds. */
+_Py_NO_INLINE static double
+r_float_str(RFILE *p)
+{
+ int n;
+ char buf[256];
+ const char *ptr;
+ n = r_byte(p);
+ if (n == EOF) {
+ PyErr_SetString(PyExc_EOFError,
+ "EOF read where object expected");
+ return -1;
+ }
+ ptr = r_string(n, p);
+ if (ptr == NULL) {
+ return -1;
+ }
+ memcpy(buf, ptr, n);
+ buf[n] = '\0';
+ return PyOS_string_to_double(buf, NULL, NULL);
+}
+
/* allocate the reflist index for a new object. Return -1 on failure */
static Py_ssize_t
r_ref_reserve(int flag, RFILE *p)
@@ -1010,17 +1010,17 @@ r_object(RFILE *p)
case TYPE_FLOAT:
{
- double x = r_float_str(p);
- if (x == -1.0 && PyErr_Occurred())
+ double x = r_float_str(p);
+ if (x == -1.0 && PyErr_Occurred())
break;
- retval = PyFloat_FromDouble(x);
+ retval = PyFloat_FromDouble(x);
R_REF(retval);
break;
}
case TYPE_BINARY_FLOAT:
{
- double x = r_float_bin(p);
+ double x = r_float_bin(p);
if (x == -1.0 && PyErr_Occurred())
break;
retval = PyFloat_FromDouble(x);
@@ -1031,10 +1031,10 @@ r_object(RFILE *p)
case TYPE_COMPLEX:
{
Py_complex c;
- c.real = r_float_str(p);
+ c.real = r_float_str(p);
if (c.real == -1.0 && PyErr_Occurred())
break;
- c.imag = r_float_str(p);
+ c.imag = r_float_str(p);
if (c.imag == -1.0 && PyErr_Occurred())
break;
retval = PyComplex_FromCComplex(c);
@@ -1045,10 +1045,10 @@ r_object(RFILE *p)
case TYPE_BINARY_COMPLEX:
{
Py_complex c;
- c.real = r_float_bin(p);
+ c.real = r_float_bin(p);
if (c.real == -1.0 && PyErr_Occurred())
break;
- c.imag = r_float_bin(p);
+ c.imag = r_float_bin(p);
if (c.imag == -1.0 && PyErr_Occurred())
break;
retval = PyComplex_FromCComplex(c);
@@ -1302,7 +1302,7 @@ r_object(RFILE *p)
case TYPE_CODE:
{
int argcount;
- int posonlyargcount;
+ int posonlyargcount;
int kwonlyargcount;
int nlocals;
int stacksize;
@@ -1328,10 +1328,10 @@ r_object(RFILE *p)
argcount = (int)r_long(p);
if (PyErr_Occurred())
goto code_error;
- posonlyargcount = (int)r_long(p);
- if (PyErr_Occurred()) {
- goto code_error;
- }
+ posonlyargcount = (int)r_long(p);
+ if (PyErr_Occurred()) {
+ goto code_error;
+ }
kwonlyargcount = (int)r_long(p);
if (PyErr_Occurred())
goto code_error;
@@ -1375,8 +1375,8 @@ r_object(RFILE *p)
if (lnotab == NULL)
goto code_error;
- v = (PyObject *) PyCode_NewWithPosOnlyArgs(
- argcount, posonlyargcount, kwonlyargcount,
+ v = (PyObject *) PyCode_NewWithPosOnlyArgs(
+ argcount, posonlyargcount, kwonlyargcount,
nlocals, stacksize, flags,
code, consts, names, varnames,
freevars, cellvars, filename, name,
@@ -1433,15 +1433,15 @@ read_object(RFILE *p)
fprintf(stderr, "XXX readobject called with exception set\n");
return NULL;
}
- if (p->ptr && p->end) {
- if (PySys_Audit("marshal.loads", "y#", p->ptr, (Py_ssize_t)(p->end - p->ptr)) < 0) {
- return NULL;
- }
- } else if (p->fp || p->readable) {
- if (PySys_Audit("marshal.load", NULL) < 0) {
- return NULL;
- }
- }
+ if (p->ptr && p->end) {
+ if (PySys_Audit("marshal.loads", "y#", p->ptr, (Py_ssize_t)(p->end - p->ptr)) < 0) {
+ return NULL;
+ }
+ } else if (p->fp || p->readable) {
+ if (PySys_Audit("marshal.load", NULL) < 0) {
+ return NULL;
+ }
+ }
v = r_object(p);
if (v == NULL && !PyErr_Occurred())
PyErr_SetString(PyExc_TypeError, "NULL object in marshal data for object");
@@ -1538,7 +1538,7 @@ PyMarshal_ReadObjectFromFile(FILE *fp)
rf.refs = PyList_New(0);
if (rf.refs == NULL)
return NULL;
- result = read_object(&rf);
+ result = read_object(&rf);
Py_DECREF(rf.refs);
if (rf.buf != NULL)
PyMem_FREE(rf.buf);
@@ -1552,14 +1552,14 @@ PyMarshal_ReadObjectFromString(const char *str, Py_ssize_t len)
PyObject *result;
rf.fp = NULL;
rf.readable = NULL;
- rf.ptr = str;
- rf.end = str + len;
+ rf.ptr = str;
+ rf.end = str + len;
rf.buf = NULL;
rf.depth = 0;
rf.refs = PyList_New(0);
if (rf.refs == NULL)
return NULL;
- result = read_object(&rf);
+ result = read_object(&rf);
Py_DECREF(rf.refs);
if (rf.buf != NULL)
PyMem_FREE(rf.buf);
@@ -1571,15 +1571,15 @@ PyMarshal_WriteObjectToString(PyObject *x, int version)
{
WFILE wf;
- if (PySys_Audit("marshal.dumps", "Oi", x, version) < 0) {
- return NULL;
- }
+ if (PySys_Audit("marshal.dumps", "Oi", x, version) < 0) {
+ return NULL;
+ }
memset(&wf, 0, sizeof(wf));
wf.str = PyBytes_FromStringAndSize((char *)NULL, 50);
if (wf.str == NULL)
return NULL;
- wf.ptr = wf.buf = PyBytes_AS_STRING(wf.str);
- wf.end = wf.ptr + PyBytes_GET_SIZE(wf.str);
+ wf.ptr = wf.buf = PyBytes_AS_STRING(wf.str);
+ wf.end = wf.ptr + PyBytes_GET_SIZE(wf.str);
wf.error = WFERR_OK;
wf.version = version;
if (w_init_refs(&wf, version)) {
@@ -1589,7 +1589,7 @@ PyMarshal_WriteObjectToString(PyObject *x, int version)
w_object(x, &wf);
w_clear_refs(&wf);
if (wf.str != NULL) {
- const char *base = PyBytes_AS_STRING(wf.str);
+ const char *base = PyBytes_AS_STRING(wf.str);
if (_PyBytes_Resize(&wf.str, (Py_ssize_t)(wf.ptr - base)) < 0)
return NULL;
}
@@ -1638,7 +1638,7 @@ marshal_dump_impl(PyObject *module, PyObject *value, PyObject *file,
s = PyMarshal_WriteObjectToString(value, version);
if (s == NULL)
return NULL;
- res = _PyObject_CallMethodIdOneArg(file, &PyId_write, s);
+ res = _PyObject_CallMethodIdOneArg(file, &PyId_write, s);
Py_DECREF(s);
return res;
}
@@ -1681,7 +1681,7 @@ marshal_load(PyObject *module, PyObject *file)
if (!PyBytes_Check(data)) {
PyErr_Format(PyExc_TypeError,
"file.read() returned not bytes but %.100s",
- Py_TYPE(data)->tp_name);
+ Py_TYPE(data)->tp_name);
result = NULL;
}
else {
@@ -1814,9 +1814,9 @@ PyMarshal_Init(void)
PyObject *mod = PyModule_Create(&marshalmodule);
if (mod == NULL)
return NULL;
- if (PyModule_AddIntConstant(mod, "version", Py_MARSHAL_VERSION) < 0) {
- Py_DECREF(mod);
- return NULL;
- }
+ if (PyModule_AddIntConstant(mod, "version", Py_MARSHAL_VERSION) < 0) {
+ Py_DECREF(mod);
+ return NULL;
+ }
return mod;
}
diff --git a/contrib/tools/python3/src/Python/modsupport.c b/contrib/tools/python3/src/Python/modsupport.c
index 802f795090..13482c6508 100644
--- a/contrib/tools/python3/src/Python/modsupport.c
+++ b/contrib/tools/python3/src/Python/modsupport.c
@@ -2,7 +2,7 @@
/* Module support implementation */
#include "Python.h"
-#include "pycore_abstract.h" // _PyIndex_Check()
+#include "pycore_abstract.h" // _PyIndex_Check()
#define FLAG_SIZE_T 1
typedef double va_double;
@@ -21,7 +21,7 @@ _Py_convert_optional_to_ssize_t(PyObject *obj, void *result)
if (obj == Py_None) {
return 1;
}
- else if (_PyIndex_Check(obj)) {
+ else if (_PyIndex_Check(obj)) {
limit = PyNumber_AsSsize_t(obj, PyExc_OverflowError);
if (limit == -1 && PyErr_Occurred()) {
return 0;
@@ -343,13 +343,13 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
++*p_format;
if (flags & FLAG_SIZE_T)
n = va_arg(*p_va, Py_ssize_t);
- else {
+ else {
n = va_arg(*p_va, int);
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
- return NULL;
- }
- }
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
+ return NULL;
+ }
+ }
}
else
n = -1;
@@ -396,13 +396,13 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
++*p_format;
if (flags & FLAG_SIZE_T)
n = va_arg(*p_va, Py_ssize_t);
- else {
+ else {
n = va_arg(*p_va, int);
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
- return NULL;
- }
- }
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
+ return NULL;
+ }
+ }
}
else
n = -1;
@@ -434,13 +434,13 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
++*p_format;
if (flags & FLAG_SIZE_T)
n = va_arg(*p_va, Py_ssize_t);
- else {
+ else {
n = va_arg(*p_va, int);
- if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
- return NULL;
- }
- }
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
+ return NULL;
+ }
+ }
}
else
n = -1;
@@ -619,9 +619,9 @@ va_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len,
va_end(lva);
if (res < 0) {
- if (stack != small_stack) {
- PyMem_Free(stack);
- }
+ if (stack != small_stack) {
+ PyMem_Free(stack);
+ }
return NULL;
}
@@ -682,22 +682,22 @@ PyModule_AddStringConstant(PyObject *m, const char *name, const char *value)
Py_DECREF(o);
return -1;
}
-
-int
-PyModule_AddType(PyObject *module, PyTypeObject *type)
-{
- if (PyType_Ready(type) < 0) {
- return -1;
- }
-
- const char *name = _PyType_Name(type);
- assert(name != NULL);
-
- Py_INCREF(type);
- if (PyModule_AddObject(module, name, (PyObject *)type) < 0) {
- Py_DECREF(type);
- return -1;
- }
-
- return 0;
-}
+
+int
+PyModule_AddType(PyObject *module, PyTypeObject *type)
+{
+ if (PyType_Ready(type) < 0) {
+ return -1;
+ }
+
+ const char *name = _PyType_Name(type);
+ assert(name != NULL);
+
+ Py_INCREF(type);
+ if (PyModule_AddObject(module, name, (PyObject *)type) < 0) {
+ Py_DECREF(type);
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/contrib/tools/python3/src/Python/mysnprintf.c b/contrib/tools/python3/src/Python/mysnprintf.c
index 25a8e26018..458ca14d5c 100644
--- a/contrib/tools/python3/src/Python/mysnprintf.c
+++ b/contrib/tools/python3/src/Python/mysnprintf.c
@@ -1,8 +1,8 @@
#include "Python.h"
-/* snprintf() and vsnprintf() wrappers.
-
- If the platform has vsnprintf, we use it, else we
+/* snprintf() and vsnprintf() wrappers.
+
+ If the platform has vsnprintf, we use it, else we
emulate it in a half-hearted way. Even if the platform has it, we wrap
it because platforms differ in what vsnprintf does in case the buffer
is too small: C99 behavior is to return the number of characters that
@@ -54,15 +54,15 @@ PyOS_snprintf(char *str, size_t size, const char *format, ...)
int
PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
{
- assert(str != NULL);
- assert(size > 0);
- assert(format != NULL);
-
+ assert(str != NULL);
+ assert(size > 0);
+ assert(format != NULL);
+
int len; /* # bytes written, excluding \0 */
-#if defined(_MSC_VER) || defined(HAVE_SNPRINTF)
-# define _PyOS_vsnprintf_EXTRA_SPACE 1
+#if defined(_MSC_VER) || defined(HAVE_SNPRINTF)
+# define _PyOS_vsnprintf_EXTRA_SPACE 1
#else
-# define _PyOS_vsnprintf_EXTRA_SPACE 512
+# define _PyOS_vsnprintf_EXTRA_SPACE 512
char *buffer;
#endif
/* We take a size_t as input but return an int. Sanity check
@@ -73,12 +73,12 @@ PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
goto Done;
}
-#if defined(_MSC_VER)
- len = _vsnprintf(str, size, format, va);
-#elif defined(HAVE_SNPRINTF)
+#if defined(_MSC_VER)
+ len = _vsnprintf(str, size, format, va);
+#elif defined(HAVE_SNPRINTF)
len = vsnprintf(str, size, format, va);
#else
- /* Emulate vsnprintf(). */
+ /* Emulate vsnprintf(). */
buffer = PyMem_MALLOC(size + _PyOS_vsnprintf_EXTRA_SPACE);
if (buffer == NULL) {
len = -666;
@@ -86,12 +86,12 @@ PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
}
len = vsprintf(buffer, format, va);
- if (len < 0) {
+ if (len < 0) {
/* ignore the error */;
- }
- else if ((size_t)len >= size + _PyOS_vsnprintf_EXTRA_SPACE) {
- _Py_FatalErrorFunc(__func__, "Buffer overflow");
- }
+ }
+ else if ((size_t)len >= size + _PyOS_vsnprintf_EXTRA_SPACE) {
+ _Py_FatalErrorFunc(__func__, "Buffer overflow");
+ }
else {
const size_t to_copy = (size_t)len < size ?
(size_t)len : size - 1;
@@ -101,11 +101,11 @@ PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
}
PyMem_FREE(buffer);
#endif
-
+
Done:
- if (size > 0) {
+ if (size > 0) {
str[size-1] = '\0';
- }
+ }
return len;
#undef _PyOS_vsnprintf_EXTRA_SPACE
}
diff --git a/contrib/tools/python3/src/Python/mystrtoul.c b/contrib/tools/python3/src/Python/mystrtoul.c
index 01ca208bbe..19fa57aa14 100644
--- a/contrib/tools/python3/src/Python/mystrtoul.c
+++ b/contrib/tools/python3/src/Python/mystrtoul.c
@@ -99,7 +99,7 @@ PyOS_strtoul(const char *str, char **ptr, int base)
int ovlimit; /* required digits to overflow */
/* skip leading white space */
- while (*str && Py_ISSPACE(*str))
+ while (*str && Py_ISSPACE(*str))
++str;
/* check for leading 0b, 0o or 0x for auto-base or base 16 */
@@ -138,7 +138,7 @@ PyOS_strtoul(const char *str, char **ptr, int base)
/* skip all zeroes... */
while (*str == '0')
++str;
- while (Py_ISSPACE(*str))
+ while (Py_ISSPACE(*str))
++str;
if (ptr)
*ptr = (char *)str;
@@ -266,7 +266,7 @@ PyOS_strtol(const char *str, char **ptr, int base)
unsigned long uresult;
char sign;
- while (*str && Py_ISSPACE(*str))
+ while (*str && Py_ISSPACE(*str))
str++;
sign = *str;
diff --git a/contrib/tools/python3/src/Python/opcode_targets.h b/contrib/tools/python3/src/Python/opcode_targets.h
index c6ebebc783..538fdbe3e0 100644
--- a/contrib/tools/python3/src/Python/opcode_targets.h
+++ b/contrib/tools/python3/src/Python/opcode_targets.h
@@ -5,7 +5,7 @@ static void *opcode_targets[256] = {
&&TARGET_ROT_THREE,
&&TARGET_DUP_TOP,
&&TARGET_DUP_TOP_TWO,
- &&TARGET_ROT_FOUR,
+ &&TARGET_ROT_FOUR,
&&_unknown_opcode,
&&_unknown_opcode,
&&TARGET_NOP,
@@ -47,13 +47,13 @@ static void *opcode_targets[256] = {
&&_unknown_opcode,
&&_unknown_opcode,
&&_unknown_opcode,
- &&TARGET_RERAISE,
- &&TARGET_WITH_EXCEPT_START,
+ &&TARGET_RERAISE,
+ &&TARGET_WITH_EXCEPT_START,
&&TARGET_GET_AITER,
&&TARGET_GET_ANEXT,
&&TARGET_BEFORE_ASYNC_WITH,
- &&_unknown_opcode,
- &&TARGET_END_ASYNC_FOR,
+ &&_unknown_opcode,
+ &&TARGET_END_ASYNC_FOR,
&&TARGET_INPLACE_ADD,
&&TARGET_INPLACE_SUBTRACT,
&&TARGET_INPLACE_MULTIPLY,
@@ -73,21 +73,21 @@ static void *opcode_targets[256] = {
&&TARGET_LOAD_BUILD_CLASS,
&&TARGET_YIELD_FROM,
&&TARGET_GET_AWAITABLE,
- &&TARGET_LOAD_ASSERTION_ERROR,
+ &&TARGET_LOAD_ASSERTION_ERROR,
&&TARGET_INPLACE_LSHIFT,
&&TARGET_INPLACE_RSHIFT,
&&TARGET_INPLACE_AND,
&&TARGET_INPLACE_XOR,
&&TARGET_INPLACE_OR,
- &&_unknown_opcode,
- &&_unknown_opcode,
- &&TARGET_LIST_TO_TUPLE,
+ &&_unknown_opcode,
+ &&_unknown_opcode,
+ &&TARGET_LIST_TO_TUPLE,
&&TARGET_RETURN_VALUE,
&&TARGET_IMPORT_STAR,
&&TARGET_SETUP_ANNOTATIONS,
&&TARGET_YIELD_VALUE,
&&TARGET_POP_BLOCK,
- &&_unknown_opcode,
+ &&_unknown_opcode,
&&TARGET_POP_EXCEPT,
&&TARGET_STORE_NAME,
&&TARGET_DELETE_NAME,
@@ -116,11 +116,11 @@ static void *opcode_targets[256] = {
&&TARGET_POP_JUMP_IF_FALSE,
&&TARGET_POP_JUMP_IF_TRUE,
&&TARGET_LOAD_GLOBAL,
- &&TARGET_IS_OP,
- &&TARGET_CONTAINS_OP,
+ &&TARGET_IS_OP,
+ &&TARGET_CONTAINS_OP,
&&_unknown_opcode,
&&_unknown_opcode,
- &&TARGET_JUMP_IF_NOT_EXC_MATCH,
+ &&TARGET_JUMP_IF_NOT_EXC_MATCH,
&&TARGET_SETUP_FINALLY,
&&_unknown_opcode,
&&TARGET_LOAD_FAST,
@@ -148,23 +148,23 @@ static void *opcode_targets[256] = {
&&TARGET_SET_ADD,
&&TARGET_MAP_ADD,
&&TARGET_LOAD_CLASSDEREF,
- &&_unknown_opcode,
- &&_unknown_opcode,
- &&_unknown_opcode,
- &&_unknown_opcode,
- &&_unknown_opcode,
+ &&_unknown_opcode,
+ &&_unknown_opcode,
+ &&_unknown_opcode,
+ &&_unknown_opcode,
+ &&_unknown_opcode,
&&TARGET_SETUP_ASYNC_WITH,
&&TARGET_FORMAT_VALUE,
&&TARGET_BUILD_CONST_KEY_MAP,
&&TARGET_BUILD_STRING,
&&_unknown_opcode,
- &&_unknown_opcode,
+ &&_unknown_opcode,
&&TARGET_LOAD_METHOD,
&&TARGET_CALL_METHOD,
- &&TARGET_LIST_EXTEND,
- &&TARGET_SET_UPDATE,
- &&TARGET_DICT_MERGE,
- &&TARGET_DICT_UPDATE,
+ &&TARGET_LIST_EXTEND,
+ &&TARGET_SET_UPDATE,
+ &&TARGET_DICT_MERGE,
+ &&TARGET_DICT_UPDATE,
&&_unknown_opcode,
&&_unknown_opcode,
&&_unknown_opcode,
diff --git a/contrib/tools/python3/src/Python/pathconfig.c b/contrib/tools/python3/src/Python/pathconfig.c
index b28f3e4976..b2ce86e64c 100644
--- a/contrib/tools/python3/src/Python/pathconfig.c
+++ b/contrib/tools/python3/src/Python/pathconfig.c
@@ -1,15 +1,15 @@
/* Path configuration like module_search_path (sys.path) */
#include "Python.h"
-#include "osdefs.h" // DELIM
-#include "pycore_initconfig.h"
-#include "pycore_fileutils.h"
-#include "pycore_pathconfig.h"
-#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
+#include "osdefs.h" // DELIM
+#include "pycore_initconfig.h"
+#include "pycore_fileutils.h"
+#include "pycore_pathconfig.h"
+#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
#include <wchar.h>
-#ifdef MS_WINDOWS
-# include <windows.h> // GetFullPathNameW(), MAX_PATH
-#endif
+#ifdef MS_WINDOWS
+# include <windows.h> // GetFullPathNameW(), MAX_PATH
+#endif
#ifdef __cplusplus
extern "C" {
@@ -19,26 +19,26 @@ extern "C" {
_PyPathConfig _Py_path_config = _PyPathConfig_INIT;
-static int
-copy_wstr(wchar_t **dst, const wchar_t *src)
+static int
+copy_wstr(wchar_t **dst, const wchar_t *src)
+{
+ assert(*dst == NULL);
+ if (src != NULL) {
+ *dst = _PyMem_RawWcsdup(src);
+ if (*dst == NULL) {
+ return -1;
+ }
+ }
+ else {
+ *dst = NULL;
+ }
+ return 0;
+}
+
+
+static void
+pathconfig_clear(_PyPathConfig *config)
{
- assert(*dst == NULL);
- if (src != NULL) {
- *dst = _PyMem_RawWcsdup(src);
- if (*dst == NULL) {
- return -1;
- }
- }
- else {
- *dst = NULL;
- }
- return 0;
-}
-
-
-static void
-pathconfig_clear(_PyPathConfig *config)
-{
/* _PyMem_SetDefaultAllocator() is needed to get a known memory allocator,
since Py_SetPath(), Py_SetPythonHome() and Py_SetProgramName() can be
called before Py_Initialize() which can changes the memory allocator. */
@@ -51,434 +51,434 @@ pathconfig_clear(_PyPathConfig *config)
ATTR = NULL; \
} while (0)
- CLEAR(config->program_full_path);
+ CLEAR(config->program_full_path);
CLEAR(config->prefix);
CLEAR(config->exec_prefix);
CLEAR(config->module_search_path);
- CLEAR(config->program_name);
+ CLEAR(config->program_name);
CLEAR(config->home);
-#ifdef MS_WINDOWS
- CLEAR(config->base_executable);
-#endif
-
+#ifdef MS_WINDOWS
+ CLEAR(config->base_executable);
+#endif
+
#undef CLEAR
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
}
-static PyStatus
-pathconfig_copy(_PyPathConfig *config, const _PyPathConfig *config2)
+static PyStatus
+pathconfig_copy(_PyPathConfig *config, const _PyPathConfig *config2)
+{
+ pathconfig_clear(config);
+
+#define COPY_ATTR(ATTR) \
+ do { \
+ if (copy_wstr(&config->ATTR, config2->ATTR) < 0) { \
+ return _PyStatus_NO_MEMORY(); \
+ } \
+ } while (0)
+
+ COPY_ATTR(program_full_path);
+ COPY_ATTR(prefix);
+ COPY_ATTR(exec_prefix);
+ COPY_ATTR(module_search_path);
+ COPY_ATTR(program_name);
+ COPY_ATTR(home);
+#ifdef MS_WINDOWS
+ config->isolated = config2->isolated;
+ config->site_import = config2->site_import;
+ COPY_ATTR(base_executable);
+#endif
+
+#undef COPY_ATTR
+
+ return _PyStatus_OK();
+}
+
+
+void
+_PyPathConfig_ClearGlobal(void)
+{
+ PyMemAllocatorEx old_alloc;
+ _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ pathconfig_clear(&_Py_path_config);
+
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+}
+
+
+static wchar_t*
+_PyWideStringList_Join(const PyWideStringList *list, wchar_t sep)
{
- pathconfig_clear(config);
-
-#define COPY_ATTR(ATTR) \
- do { \
- if (copy_wstr(&config->ATTR, config2->ATTR) < 0) { \
- return _PyStatus_NO_MEMORY(); \
- } \
- } while (0)
-
- COPY_ATTR(program_full_path);
- COPY_ATTR(prefix);
- COPY_ATTR(exec_prefix);
- COPY_ATTR(module_search_path);
- COPY_ATTR(program_name);
- COPY_ATTR(home);
-#ifdef MS_WINDOWS
- config->isolated = config2->isolated;
- config->site_import = config2->site_import;
- COPY_ATTR(base_executable);
-#endif
-
-#undef COPY_ATTR
-
- return _PyStatus_OK();
-}
-
-
-void
-_PyPathConfig_ClearGlobal(void)
-{
- PyMemAllocatorEx old_alloc;
- _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- pathconfig_clear(&_Py_path_config);
-
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-}
-
-
-static wchar_t*
-_PyWideStringList_Join(const PyWideStringList *list, wchar_t sep)
-{
- size_t len = 1; /* NUL terminator */
- for (Py_ssize_t i=0; i < list->length; i++) {
- if (i != 0) {
- len++;
- }
- len += wcslen(list->items[i]);
- }
-
- wchar_t *text = PyMem_RawMalloc(len * sizeof(wchar_t));
- if (text == NULL) {
- return NULL;
- }
- wchar_t *str = text;
- for (Py_ssize_t i=0; i < list->length; i++) {
- wchar_t *path = list->items[i];
- if (i != 0) {
- *str++ = sep;
- }
- len = wcslen(path);
- memcpy(str, path, len * sizeof(wchar_t));
- str += len;
- }
- *str = L'\0';
-
- return text;
-}
-
-
-static PyStatus
-pathconfig_set_from_config(_PyPathConfig *pathconfig, const PyConfig *config)
-{
- PyStatus status;
+ size_t len = 1; /* NUL terminator */
+ for (Py_ssize_t i=0; i < list->length; i++) {
+ if (i != 0) {
+ len++;
+ }
+ len += wcslen(list->items[i]);
+ }
+
+ wchar_t *text = PyMem_RawMalloc(len * sizeof(wchar_t));
+ if (text == NULL) {
+ return NULL;
+ }
+ wchar_t *str = text;
+ for (Py_ssize_t i=0; i < list->length; i++) {
+ wchar_t *path = list->items[i];
+ if (i != 0) {
+ *str++ = sep;
+ }
+ len = wcslen(path);
+ memcpy(str, path, len * sizeof(wchar_t));
+ str += len;
+ }
+ *str = L'\0';
+
+ return text;
+}
+
+
+static PyStatus
+pathconfig_set_from_config(_PyPathConfig *pathconfig, const PyConfig *config)
+{
+ PyStatus status;
PyMemAllocatorEx old_alloc;
_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- if (config->module_search_paths_set) {
- PyMem_RawFree(pathconfig->module_search_path);
- pathconfig->module_search_path = _PyWideStringList_Join(&config->module_search_paths, DELIM);
- if (pathconfig->module_search_path == NULL) {
- goto no_memory;
- }
- }
-
-#define COPY_CONFIG(PATH_ATTR, CONFIG_ATTR) \
- if (config->CONFIG_ATTR) { \
- PyMem_RawFree(pathconfig->PATH_ATTR); \
- pathconfig->PATH_ATTR = NULL; \
- if (copy_wstr(&pathconfig->PATH_ATTR, config->CONFIG_ATTR) < 0) { \
- goto no_memory; \
- } \
- }
-
- COPY_CONFIG(program_full_path, executable);
- COPY_CONFIG(prefix, prefix);
- COPY_CONFIG(exec_prefix, exec_prefix);
- COPY_CONFIG(program_name, program_name);
- COPY_CONFIG(home, home);
-#ifdef MS_WINDOWS
- COPY_CONFIG(base_executable, base_executable);
-#endif
-
-#undef COPY_CONFIG
-
- status = _PyStatus_OK();
- goto done;
-
-no_memory:
- status = _PyStatus_NO_MEMORY();
-
-done:
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- return status;
-}
-
-
-PyStatus
-_PyConfig_WritePathConfig(const PyConfig *config)
-{
- return pathconfig_set_from_config(&_Py_path_config, config);
-}
-
-
-static PyStatus
-config_init_module_search_paths(PyConfig *config, _PyPathConfig *pathconfig)
-{
- assert(!config->module_search_paths_set);
-
- _PyWideStringList_Clear(&config->module_search_paths);
-
- const wchar_t *sys_path = pathconfig->module_search_path;
- const wchar_t delim = DELIM;
- while (1) {
- const wchar_t *p = wcschr(sys_path, delim);
- if (p == NULL) {
- p = sys_path + wcslen(sys_path); /* End of string */
- }
-
- size_t path_len = (p - sys_path);
- wchar_t *path = PyMem_RawMalloc((path_len + 1) * sizeof(wchar_t));
- if (path == NULL) {
- return _PyStatus_NO_MEMORY();
- }
- memcpy(path, sys_path, path_len * sizeof(wchar_t));
- path[path_len] = L'\0';
-
- PyStatus status = PyWideStringList_Append(&config->module_search_paths, path);
- PyMem_RawFree(path);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (*p == '\0') {
- break;
- }
- sys_path = p + 1;
- }
- config->module_search_paths_set = 1;
- return _PyStatus_OK();
-}
-
-
-/* Calculate the path configuration:
-
- - exec_prefix
- - module_search_path
- - prefix
- - program_full_path
-
- On Windows, more fields are calculated:
-
- - base_executable
- - isolated
- - site_import
-
- On other platforms, isolated and site_import are left unchanged, and
- _PyConfig_InitPathConfig() copies executable to base_executable (if it's not
- set).
-
- Priority, highest to lowest:
-
- - PyConfig
- - _Py_path_config: set by Py_SetPath(), Py_SetPythonHome()
- and Py_SetProgramName()
- - _PyPathConfig_Calculate()
-*/
-static PyStatus
-pathconfig_calculate(_PyPathConfig *pathconfig, const PyConfig *config)
-{
- PyStatus status;
-
- PyMemAllocatorEx old_alloc;
- _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- status = pathconfig_copy(pathconfig, &_Py_path_config);
- if (_PyStatus_EXCEPTION(status)) {
+ if (config->module_search_paths_set) {
+ PyMem_RawFree(pathconfig->module_search_path);
+ pathconfig->module_search_path = _PyWideStringList_Join(&config->module_search_paths, DELIM);
+ if (pathconfig->module_search_path == NULL) {
+ goto no_memory;
+ }
+ }
+
+#define COPY_CONFIG(PATH_ATTR, CONFIG_ATTR) \
+ if (config->CONFIG_ATTR) { \
+ PyMem_RawFree(pathconfig->PATH_ATTR); \
+ pathconfig->PATH_ATTR = NULL; \
+ if (copy_wstr(&pathconfig->PATH_ATTR, config->CONFIG_ATTR) < 0) { \
+ goto no_memory; \
+ } \
+ }
+
+ COPY_CONFIG(program_full_path, executable);
+ COPY_CONFIG(prefix, prefix);
+ COPY_CONFIG(exec_prefix, exec_prefix);
+ COPY_CONFIG(program_name, program_name);
+ COPY_CONFIG(home, home);
+#ifdef MS_WINDOWS
+ COPY_CONFIG(base_executable, base_executable);
+#endif
+
+#undef COPY_CONFIG
+
+ status = _PyStatus_OK();
+ goto done;
+
+no_memory:
+ status = _PyStatus_NO_MEMORY();
+
+done:
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+ return status;
+}
+
+
+PyStatus
+_PyConfig_WritePathConfig(const PyConfig *config)
+{
+ return pathconfig_set_from_config(&_Py_path_config, config);
+}
+
+
+static PyStatus
+config_init_module_search_paths(PyConfig *config, _PyPathConfig *pathconfig)
+{
+ assert(!config->module_search_paths_set);
+
+ _PyWideStringList_Clear(&config->module_search_paths);
+
+ const wchar_t *sys_path = pathconfig->module_search_path;
+ const wchar_t delim = DELIM;
+ while (1) {
+ const wchar_t *p = wcschr(sys_path, delim);
+ if (p == NULL) {
+ p = sys_path + wcslen(sys_path); /* End of string */
+ }
+
+ size_t path_len = (p - sys_path);
+ wchar_t *path = PyMem_RawMalloc((path_len + 1) * sizeof(wchar_t));
+ if (path == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+ memcpy(path, sys_path, path_len * sizeof(wchar_t));
+ path[path_len] = L'\0';
+
+ PyStatus status = PyWideStringList_Append(&config->module_search_paths, path);
+ PyMem_RawFree(path);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (*p == '\0') {
+ break;
+ }
+ sys_path = p + 1;
+ }
+ config->module_search_paths_set = 1;
+ return _PyStatus_OK();
+}
+
+
+/* Calculate the path configuration:
+
+ - exec_prefix
+ - module_search_path
+ - prefix
+ - program_full_path
+
+ On Windows, more fields are calculated:
+
+ - base_executable
+ - isolated
+ - site_import
+
+ On other platforms, isolated and site_import are left unchanged, and
+ _PyConfig_InitPathConfig() copies executable to base_executable (if it's not
+ set).
+
+ Priority, highest to lowest:
+
+ - PyConfig
+ - _Py_path_config: set by Py_SetPath(), Py_SetPythonHome()
+ and Py_SetProgramName()
+ - _PyPathConfig_Calculate()
+*/
+static PyStatus
+pathconfig_calculate(_PyPathConfig *pathconfig, const PyConfig *config)
+{
+ PyStatus status;
+
+ PyMemAllocatorEx old_alloc;
+ _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ status = pathconfig_copy(pathconfig, &_Py_path_config);
+ if (_PyStatus_EXCEPTION(status)) {
goto done;
}
- status = pathconfig_set_from_config(pathconfig, config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- if (_Py_path_config.module_search_path == NULL) {
- status = _PyPathConfig_Calculate(pathconfig, config);
- }
- else {
- /* Py_SetPath() has been called: avoid _PyPathConfig_Calculate() */
- }
-
-done:
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- return status;
-}
-
-
-static PyStatus
-config_calculate_pathconfig(PyConfig *config)
-{
- _PyPathConfig pathconfig = _PyPathConfig_INIT;
- PyStatus status;
-
- status = pathconfig_calculate(&pathconfig, config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- if (!config->module_search_paths_set) {
- status = config_init_module_search_paths(config, &pathconfig);
- if (_PyStatus_EXCEPTION(status)) {
+ status = pathconfig_set_from_config(pathconfig, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ if (_Py_path_config.module_search_path == NULL) {
+ status = _PyPathConfig_Calculate(pathconfig, config);
+ }
+ else {
+ /* Py_SetPath() has been called: avoid _PyPathConfig_Calculate() */
+ }
+
+done:
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+ return status;
+}
+
+
+static PyStatus
+config_calculate_pathconfig(PyConfig *config)
+{
+ _PyPathConfig pathconfig = _PyPathConfig_INIT;
+ PyStatus status;
+
+ status = pathconfig_calculate(&pathconfig, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ if (!config->module_search_paths_set) {
+ status = config_init_module_search_paths(config, &pathconfig);
+ if (_PyStatus_EXCEPTION(status)) {
goto done;
}
}
-
-#define COPY_ATTR(PATH_ATTR, CONFIG_ATTR) \
- if (config->CONFIG_ATTR == NULL) { \
- if (copy_wstr(&config->CONFIG_ATTR, pathconfig.PATH_ATTR) < 0) { \
- goto no_memory; \
- } \
- }
-
-#ifdef MS_WINDOWS
- if (config->executable != NULL && config->base_executable == NULL) {
- /* If executable is set explicitly in the configuration,
- ignore calculated base_executable: _PyConfig_InitPathConfig()
- will copy executable to base_executable */
- }
+
+#define COPY_ATTR(PATH_ATTR, CONFIG_ATTR) \
+ if (config->CONFIG_ATTR == NULL) { \
+ if (copy_wstr(&config->CONFIG_ATTR, pathconfig.PATH_ATTR) < 0) { \
+ goto no_memory; \
+ } \
+ }
+
+#ifdef MS_WINDOWS
+ if (config->executable != NULL && config->base_executable == NULL) {
+ /* If executable is set explicitly in the configuration,
+ ignore calculated base_executable: _PyConfig_InitPathConfig()
+ will copy executable to base_executable */
+ }
else {
- COPY_ATTR(base_executable, base_executable);
+ COPY_ATTR(base_executable, base_executable);
}
-#endif
+#endif
+
+ COPY_ATTR(program_full_path, executable);
+ COPY_ATTR(prefix, prefix);
+ COPY_ATTR(exec_prefix, exec_prefix);
- COPY_ATTR(program_full_path, executable);
- COPY_ATTR(prefix, prefix);
- COPY_ATTR(exec_prefix, exec_prefix);
-
-#undef COPY_ATTR
-
-#ifdef MS_WINDOWS
- /* If a ._pth file is found: isolated and site_import are overridden */
- if (pathconfig.isolated != -1) {
- config->isolated = pathconfig.isolated;
+#undef COPY_ATTR
+
+#ifdef MS_WINDOWS
+ /* If a ._pth file is found: isolated and site_import are overridden */
+ if (pathconfig.isolated != -1) {
+ config->isolated = pathconfig.isolated;
+ }
+ if (pathconfig.site_import != -1) {
+ config->site_import = pathconfig.site_import;
}
- if (pathconfig.site_import != -1) {
- config->site_import = pathconfig.site_import;
- }
-#endif
+#endif
+
+ status = _PyStatus_OK();
+ goto done;
+
+no_memory:
+ status = _PyStatus_NO_MEMORY();
+
+done:
+ pathconfig_clear(&pathconfig);
+ return status;
+}
+
+
+PyStatus
+_PyConfig_InitPathConfig(PyConfig *config)
+{
+ /* Do we need to calculate the path? */
+ if (!config->module_search_paths_set
+ || config->executable == NULL
+ || config->prefix == NULL
+ || config->exec_prefix == NULL)
+ {
+ PyStatus status = config_calculate_pathconfig(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ if (config->base_prefix == NULL) {
+ if (copy_wstr(&config->base_prefix, config->prefix) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+
+ if (config->base_exec_prefix == NULL) {
+ if (copy_wstr(&config->base_exec_prefix,
+ config->exec_prefix) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+
+ if (config->base_executable == NULL) {
+ if (copy_wstr(&config->base_executable,
+ config->executable) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+
+ return _PyStatus_OK();
+}
- status = _PyStatus_OK();
- goto done;
-no_memory:
- status = _PyStatus_NO_MEMORY();
+static PyStatus
+pathconfig_global_read(_PyPathConfig *pathconfig)
+{
+ PyConfig config;
+ _PyConfig_InitCompatConfig(&config);
+
+ /* Call _PyConfig_InitPathConfig() */
+ PyStatus status = PyConfig_Read(&config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = pathconfig_set_from_config(pathconfig, &config);
done:
- pathconfig_clear(&pathconfig);
- return status;
+ PyConfig_Clear(&config);
+ return status;
}
-PyStatus
-_PyConfig_InitPathConfig(PyConfig *config)
+static void
+pathconfig_global_init(void)
{
- /* Do we need to calculate the path? */
- if (!config->module_search_paths_set
- || config->executable == NULL
- || config->prefix == NULL
- || config->exec_prefix == NULL)
- {
- PyStatus status = config_calculate_pathconfig(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- if (config->base_prefix == NULL) {
- if (copy_wstr(&config->base_prefix, config->prefix) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- }
-
- if (config->base_exec_prefix == NULL) {
- if (copy_wstr(&config->base_exec_prefix,
- config->exec_prefix) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- }
-
- if (config->base_executable == NULL) {
- if (copy_wstr(&config->base_executable,
- config->executable) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- }
-
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-pathconfig_global_read(_PyPathConfig *pathconfig)
-{
- PyConfig config;
- _PyConfig_InitCompatConfig(&config);
-
- /* Call _PyConfig_InitPathConfig() */
- PyStatus status = PyConfig_Read(&config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = pathconfig_set_from_config(pathconfig, &config);
-
-done:
- PyConfig_Clear(&config);
- return status;
+ PyStatus status;
+
+ if (_Py_path_config.module_search_path == NULL) {
+ status = pathconfig_global_read(&_Py_path_config);
+ if (_PyStatus_EXCEPTION(status)) {
+ Py_ExitStatusException(status);
+ }
+ }
+ else {
+ /* Global configuration already initialized */
+ }
+
+ assert(_Py_path_config.program_full_path != NULL);
+ assert(_Py_path_config.prefix != NULL);
+ assert(_Py_path_config.exec_prefix != NULL);
+ assert(_Py_path_config.module_search_path != NULL);
+ assert(_Py_path_config.program_name != NULL);
+ /* home can be NULL */
+#ifdef MS_WINDOWS
+ assert(_Py_path_config.base_executable != NULL);
+#endif
}
-static void
-pathconfig_global_init(void)
-{
- PyStatus status;
-
- if (_Py_path_config.module_search_path == NULL) {
- status = pathconfig_global_read(&_Py_path_config);
- if (_PyStatus_EXCEPTION(status)) {
- Py_ExitStatusException(status);
- }
- }
- else {
- /* Global configuration already initialized */
- }
-
- assert(_Py_path_config.program_full_path != NULL);
- assert(_Py_path_config.prefix != NULL);
- assert(_Py_path_config.exec_prefix != NULL);
- assert(_Py_path_config.module_search_path != NULL);
- assert(_Py_path_config.program_name != NULL);
- /* home can be NULL */
-#ifdef MS_WINDOWS
- assert(_Py_path_config.base_executable != NULL);
-#endif
-}
-
-
/* External interface */
-static void _Py_NO_RETURN
-path_out_of_memory(const char *func)
-{
- _Py_FatalErrorFunc(func, "out of memory");
-}
-
+static void _Py_NO_RETURN
+path_out_of_memory(const char *func)
+{
+ _Py_FatalErrorFunc(func, "out of memory");
+}
+
void
Py_SetPath(const wchar_t *path)
{
if (path == NULL) {
- pathconfig_clear(&_Py_path_config);
+ pathconfig_clear(&_Py_path_config);
return;
}
PyMemAllocatorEx old_alloc;
_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- /* Getting the program full path calls pathconfig_global_init() */
- wchar_t *program_full_path = _PyMem_RawWcsdup(Py_GetProgramFullPath());
+ /* Getting the program full path calls pathconfig_global_init() */
+ wchar_t *program_full_path = _PyMem_RawWcsdup(Py_GetProgramFullPath());
- PyMem_RawFree(_Py_path_config.program_full_path);
- PyMem_RawFree(_Py_path_config.prefix);
- PyMem_RawFree(_Py_path_config.exec_prefix);
- PyMem_RawFree(_Py_path_config.module_search_path);
+ PyMem_RawFree(_Py_path_config.program_full_path);
+ PyMem_RawFree(_Py_path_config.prefix);
+ PyMem_RawFree(_Py_path_config.exec_prefix);
+ PyMem_RawFree(_Py_path_config.module_search_path);
- _Py_path_config.program_full_path = program_full_path;
- _Py_path_config.prefix = _PyMem_RawWcsdup(L"");
- _Py_path_config.exec_prefix = _PyMem_RawWcsdup(L"");
- _Py_path_config.module_search_path = _PyMem_RawWcsdup(path);
+ _Py_path_config.program_full_path = program_full_path;
+ _Py_path_config.prefix = _PyMem_RawWcsdup(L"");
+ _Py_path_config.exec_prefix = _PyMem_RawWcsdup(L"");
+ _Py_path_config.module_search_path = _PyMem_RawWcsdup(path);
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- if (_Py_path_config.program_full_path == NULL
- || _Py_path_config.prefix == NULL
- || _Py_path_config.exec_prefix == NULL
- || _Py_path_config.module_search_path == NULL)
- {
- path_out_of_memory(__func__);
- }
+
+ if (_Py_path_config.program_full_path == NULL
+ || _Py_path_config.prefix == NULL
+ || _Py_path_config.exec_prefix == NULL
+ || _Py_path_config.module_search_path == NULL)
+ {
+ path_out_of_memory(__func__);
+ }
}
@@ -498,7 +498,7 @@ Py_SetPythonHome(const wchar_t *home)
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
if (_Py_path_config.home == NULL) {
- path_out_of_memory(__func__);
+ path_out_of_memory(__func__);
}
}
@@ -519,7 +519,7 @@ Py_SetProgramName(const wchar_t *program_name)
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
if (_Py_path_config.program_name == NULL) {
- path_out_of_memory(__func__);
+ path_out_of_memory(__func__);
}
}
@@ -539,7 +539,7 @@ _Py_SetProgramFullPath(const wchar_t *program_full_path)
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
if (_Py_path_config.program_full_path == NULL) {
- path_out_of_memory(__func__);
+ path_out_of_memory(__func__);
}
}
@@ -591,90 +591,90 @@ Py_GetProgramName(void)
return _Py_path_config.program_name;
}
-/* Compute module search path from argv[0] or the current working
- directory ("-m module" case) which will be prepended to sys.argv:
- sys.path[0].
-
- Return 1 if the path is correctly resolved and written into *path0_p.
-
- Return 0 if it fails to resolve the full path. For example, return 0 if the
- current working directory has been removed (bpo-36236) or if argv is empty.
-
- Raise an exception and return -1 on error.
- */
-int
-_PyPathConfig_ComputeSysPath0(const PyWideStringList *argv, PyObject **path0_p)
+/* Compute module search path from argv[0] or the current working
+ directory ("-m module" case) which will be prepended to sys.argv:
+ sys.path[0].
+
+ Return 1 if the path is correctly resolved and written into *path0_p.
+
+ Return 0 if it fails to resolve the full path. For example, return 0 if the
+ current working directory has been removed (bpo-36236) or if argv is empty.
+
+ Raise an exception and return -1 on error.
+ */
+int
+_PyPathConfig_ComputeSysPath0(const PyWideStringList *argv, PyObject **path0_p)
{
- assert(_PyWideStringList_CheckConsistency(argv));
-
- if (argv->length == 0) {
- /* Leave sys.path unchanged if sys.argv is empty */
- return 0;
- }
-
- wchar_t *argv0 = argv->items[0];
- int have_module_arg = (wcscmp(argv0, L"-m") == 0);
- int have_script_arg = (!have_module_arg && (wcscmp(argv0, L"-c") != 0));
-
- wchar_t *path0 = argv0;
+ assert(_PyWideStringList_CheckConsistency(argv));
+
+ if (argv->length == 0) {
+ /* Leave sys.path unchanged if sys.argv is empty */
+ return 0;
+ }
+
+ wchar_t *argv0 = argv->items[0];
+ int have_module_arg = (wcscmp(argv0, L"-m") == 0);
+ int have_script_arg = (!have_module_arg && (wcscmp(argv0, L"-c") != 0));
+
+ wchar_t *path0 = argv0;
Py_ssize_t n = 0;
-
-#ifdef HAVE_REALPATH
+
+#ifdef HAVE_REALPATH
wchar_t fullpath[MAXPATHLEN];
#elif defined(MS_WINDOWS)
wchar_t fullpath[MAX_PATH];
#endif
if (have_module_arg) {
-#if defined(HAVE_REALPATH) || defined(MS_WINDOWS)
- if (!_Py_wgetcwd(fullpath, Py_ARRAY_LENGTH(fullpath))) {
- return 0;
- }
- path0 = fullpath;
-#else
- path0 = L".";
-#endif
- n = wcslen(path0);
+#if defined(HAVE_REALPATH) || defined(MS_WINDOWS)
+ if (!_Py_wgetcwd(fullpath, Py_ARRAY_LENGTH(fullpath))) {
+ return 0;
+ }
+ path0 = fullpath;
+#else
+ path0 = L".";
+#endif
+ n = wcslen(path0);
}
#ifdef HAVE_READLINK
- wchar_t link[MAXPATHLEN + 1];
- int nr = 0;
- wchar_t path0copy[2 * MAXPATHLEN + 1];
-
- if (have_script_arg) {
- nr = _Py_wreadlink(path0, link, Py_ARRAY_LENGTH(link));
- }
+ wchar_t link[MAXPATHLEN + 1];
+ int nr = 0;
+ wchar_t path0copy[2 * MAXPATHLEN + 1];
+
+ if (have_script_arg) {
+ nr = _Py_wreadlink(path0, link, Py_ARRAY_LENGTH(link));
+ }
if (nr > 0) {
/* It's a symlink */
link[nr] = '\0';
- if (link[0] == SEP) {
- path0 = link; /* Link to absolute path */
- }
- else if (wcschr(link, SEP) == NULL) {
- /* Link without path */
- }
+ if (link[0] == SEP) {
+ path0 = link; /* Link to absolute path */
+ }
+ else if (wcschr(link, SEP) == NULL) {
+ /* Link without path */
+ }
else {
- /* Must join(dirname(path0), link) */
- wchar_t *q = wcsrchr(path0, SEP);
- if (q == NULL) {
- /* path0 without path */
- path0 = link;
- }
+ /* Must join(dirname(path0), link) */
+ wchar_t *q = wcsrchr(path0, SEP);
+ if (q == NULL) {
+ /* path0 without path */
+ path0 = link;
+ }
else {
- /* Must make a copy, path0copy has room for 2 * MAXPATHLEN */
- wcsncpy(path0copy, path0, MAXPATHLEN);
- q = wcsrchr(path0copy, SEP);
+ /* Must make a copy, path0copy has room for 2 * MAXPATHLEN */
+ wcsncpy(path0copy, path0, MAXPATHLEN);
+ q = wcsrchr(path0copy, SEP);
wcsncpy(q+1, link, MAXPATHLEN);
q[MAXPATHLEN + 1] = L'\0';
- path0 = path0copy;
+ path0 = path0copy;
}
}
}
#endif /* HAVE_READLINK */
- wchar_t *p = NULL;
-
+ wchar_t *p = NULL;
+
#if SEP == '\\'
/* Special case for Microsoft filename syntax */
if (have_script_arg) {
@@ -682,78 +682,78 @@ _PyPathConfig_ComputeSysPath0(const PyWideStringList *argv, PyObject **path0_p)
#if defined(MS_WINDOWS)
/* Replace the first element in argv with the full path. */
wchar_t *ptemp;
- if (GetFullPathNameW(path0,
+ if (GetFullPathNameW(path0,
Py_ARRAY_LENGTH(fullpath),
fullpath,
&ptemp)) {
- path0 = fullpath;
+ path0 = fullpath;
}
#endif
- p = wcsrchr(path0, SEP);
+ p = wcsrchr(path0, SEP);
/* Test for alternate separator */
- q = wcsrchr(p ? p : path0, '/');
+ q = wcsrchr(p ? p : path0, '/');
if (q != NULL)
p = q;
if (p != NULL) {
- n = p + 1 - path0;
+ n = p + 1 - path0;
if (n > 1 && p[-1] != ':')
n--; /* Drop trailing separator */
}
}
-#else
- /* All other filename syntaxes */
+#else
+ /* All other filename syntaxes */
if (have_script_arg) {
#if defined(HAVE_REALPATH)
- if (_Py_wrealpath(path0, fullpath, Py_ARRAY_LENGTH(fullpath))) {
- path0 = fullpath;
+ if (_Py_wrealpath(path0, fullpath, Py_ARRAY_LENGTH(fullpath))) {
+ path0 = fullpath;
}
#endif
- p = wcsrchr(path0, SEP);
+ p = wcsrchr(path0, SEP);
}
if (p != NULL) {
- n = p + 1 - path0;
+ n = p + 1 - path0;
#if SEP == '/' /* Special case for Unix filename syntax */
- if (n > 1) {
- /* Drop trailing separator */
- n--;
- }
+ if (n > 1) {
+ /* Drop trailing separator */
+ n--;
+ }
#endif /* Unix */
}
#endif /* All others */
- PyObject *path0_obj = PyUnicode_FromWideChar(path0, n);
- if (path0_obj == NULL) {
- return -1;
- }
-
- *path0_p = path0_obj;
- return 1;
+ PyObject *path0_obj = PyUnicode_FromWideChar(path0, n);
+ if (path0_obj == NULL) {
+ return -1;
+ }
+
+ *path0_p = path0_obj;
+ return 1;
}
-#ifdef MS_WINDOWS
-#define WCSTOK wcstok_s
-#else
-#define WCSTOK wcstok
-#endif
-
+#ifdef MS_WINDOWS
+#define WCSTOK wcstok_s
+#else
+#define WCSTOK wcstok
+#endif
+
/* Search for a prefix value in an environment file (pyvenv.cfg).
-
- - If found, copy it into *value_p: string which must be freed by
- PyMem_RawFree().
- - If not found, *value_p is set to NULL.
-*/
-PyStatus
+
+ - If found, copy it into *value_p: string which must be freed by
+ PyMem_RawFree().
+ - If not found, *value_p is set to NULL.
+*/
+PyStatus
_Py_FindEnvConfigValue(FILE *env_file, const wchar_t *key,
- wchar_t **value_p)
+ wchar_t **value_p)
{
- *value_p = NULL;
-
- char buffer[MAXPATHLEN * 2 + 1]; /* allow extra for key, '=', etc. */
- buffer[Py_ARRAY_LENGTH(buffer)-1] = '\0';
+ *value_p = NULL;
+
+ char buffer[MAXPATHLEN * 2 + 1]; /* allow extra for key, '=', etc. */
+ buffer[Py_ARRAY_LENGTH(buffer)-1] = '\0';
while (!feof(env_file)) {
- char * p = fgets(buffer, Py_ARRAY_LENGTH(buffer) - 1, env_file);
+ char * p = fgets(buffer, Py_ARRAY_LENGTH(buffer) - 1, env_file);
if (p == NULL) {
break;
@@ -769,33 +769,33 @@ _Py_FindEnvConfigValue(FILE *env_file, const wchar_t *key,
continue;
}
- wchar_t *tmpbuffer = _Py_DecodeUTF8_surrogateescape(buffer, n, NULL);
+ wchar_t *tmpbuffer = _Py_DecodeUTF8_surrogateescape(buffer, n, NULL);
if (tmpbuffer) {
wchar_t * state;
- wchar_t * tok = WCSTOK(tmpbuffer, L" \t\r\n", &state);
+ wchar_t * tok = WCSTOK(tmpbuffer, L" \t\r\n", &state);
if ((tok != NULL) && !wcscmp(tok, key)) {
- tok = WCSTOK(NULL, L" \t", &state);
+ tok = WCSTOK(NULL, L" \t", &state);
if ((tok != NULL) && !wcscmp(tok, L"=")) {
- tok = WCSTOK(NULL, L"\r\n", &state);
+ tok = WCSTOK(NULL, L"\r\n", &state);
if (tok != NULL) {
- *value_p = _PyMem_RawWcsdup(tok);
+ *value_p = _PyMem_RawWcsdup(tok);
PyMem_RawFree(tmpbuffer);
-
- if (*value_p == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- /* found */
- return _PyStatus_OK();
+
+ if (*value_p == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ /* found */
+ return _PyStatus_OK();
}
}
}
PyMem_RawFree(tmpbuffer);
}
}
-
- /* not found */
- return _PyStatus_OK();
+
+ /* not found */
+ return _PyStatus_OK();
}
#ifdef __cplusplus
diff --git a/contrib/tools/python3/src/Python/peephole.c b/contrib/tools/python3/src/Python/peephole.c
index c5c8ed1b5b..6954c87b13 100644
--- a/contrib/tools/python3/src/Python/peephole.c
+++ b/contrib/tools/python3/src/Python/peephole.c
@@ -13,9 +13,9 @@
#define UNCONDITIONAL_JUMP(op) (op==JUMP_ABSOLUTE || op==JUMP_FORWARD)
#define CONDITIONAL_JUMP(op) (op==POP_JUMP_IF_FALSE || op==POP_JUMP_IF_TRUE \
|| op==JUMP_IF_FALSE_OR_POP || op==JUMP_IF_TRUE_OR_POP)
-#define ABSOLUTE_JUMP(op) (op==JUMP_ABSOLUTE \
+#define ABSOLUTE_JUMP(op) (op==JUMP_ABSOLUTE \
|| op==POP_JUMP_IF_FALSE || op==POP_JUMP_IF_TRUE \
- || op==JUMP_IF_FALSE_OR_POP || op==JUMP_IF_TRUE_OR_POP || op==JUMP_IF_NOT_EXC_MATCH)
+ || op==JUMP_IF_FALSE_OR_POP || op==JUMP_IF_TRUE_OR_POP || op==JUMP_IF_NOT_EXC_MATCH)
#define JUMPS_ON_TRUE(op) (op==POP_JUMP_IF_TRUE || op==JUMP_IF_TRUE_OR_POP)
#define GETJUMPTGT(arr, i) (get_arg(arr, i) / sizeof(_Py_CODEUNIT) + \
(ABSOLUTE_JUMP(_Py_OPCODE(arr[i])) ? 0 : i+1))
@@ -152,15 +152,15 @@ fold_tuple_on_constants(_Py_CODEUNIT *codestr, Py_ssize_t codelen,
PyTuple_SET_ITEM(newconst, i, constant);
}
- Py_ssize_t index = PyList_GET_SIZE(consts);
-#if SIZEOF_SIZE_T > SIZEOF_INT
- if ((size_t)index >= UINT_MAX - 1) {
- Py_DECREF(newconst);
- PyErr_SetString(PyExc_OverflowError, "too many constants");
- return -1;
- }
-#endif
-
+ Py_ssize_t index = PyList_GET_SIZE(consts);
+#if SIZEOF_SIZE_T > SIZEOF_INT
+ if ((size_t)index >= UINT_MAX - 1) {
+ Py_DECREF(newconst);
+ PyErr_SetString(PyExc_OverflowError, "too many constants");
+ return -1;
+ }
+#endif
+
/* Append folded constant onto consts */
if (PyList_Append(consts, newconst)) {
Py_DECREF(newconst);
@@ -169,7 +169,7 @@ fold_tuple_on_constants(_Py_CODEUNIT *codestr, Py_ssize_t codelen,
Py_DECREF(newconst);
return copy_op_arg(codestr, c_start, LOAD_CONST,
- (unsigned int)index, opcode_end);
+ (unsigned int)index, opcode_end);
}
static unsigned int *
@@ -194,7 +194,7 @@ markblocks(_Py_CODEUNIT *code, Py_ssize_t len)
case JUMP_IF_TRUE_OR_POP:
case POP_JUMP_IF_FALSE:
case POP_JUMP_IF_TRUE:
- case JUMP_IF_NOT_EXC_MATCH:
+ case JUMP_IF_NOT_EXC_MATCH:
case JUMP_ABSOLUTE:
case SETUP_FINALLY:
case SETUP_WITH:
@@ -230,7 +230,7 @@ PyObject *
PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
PyObject *lnotab_obj)
{
- Py_ssize_t h, i, nexti, op_start, tgt;
+ Py_ssize_t h, i, nexti, op_start, tgt;
unsigned int j, nops;
unsigned char opcode, nextop;
_Py_CODEUNIT *codestr = NULL;
@@ -250,34 +250,34 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
lnotab = (unsigned char*)PyBytes_AS_STRING(lnotab_obj);
tabsiz = PyBytes_GET_SIZE(lnotab_obj);
assert(tabsiz == 0 || Py_REFCNT(lnotab_obj) == 1);
-
- /* Don't optimize if lnotab contains instruction pointer delta larger
- than +255 (encoded as multiple bytes), just to keep the peephole optimizer
- simple. The optimizer leaves line number deltas unchanged. */
-
- for (i = 0; i < tabsiz; i += 2) {
- if (lnotab[i] == 255) {
- goto exitUnchanged;
- }
+
+ /* Don't optimize if lnotab contains instruction pointer delta larger
+ than +255 (encoded as multiple bytes), just to keep the peephole optimizer
+ simple. The optimizer leaves line number deltas unchanged. */
+
+ for (i = 0; i < tabsiz; i += 2) {
+ if (lnotab[i] == 255) {
+ goto exitUnchanged;
+ }
}
assert(PyBytes_Check(code));
- Py_ssize_t codesize = PyBytes_GET_SIZE(code);
- assert(codesize % sizeof(_Py_CODEUNIT) == 0);
- Py_ssize_t codelen = codesize / sizeof(_Py_CODEUNIT);
- if (codelen > INT_MAX) {
- /* Python assembler is limited to INT_MAX: see assembler.a_offset in
- compile.c. */
- goto exitUnchanged;
- }
+ Py_ssize_t codesize = PyBytes_GET_SIZE(code);
+ assert(codesize % sizeof(_Py_CODEUNIT) == 0);
+ Py_ssize_t codelen = codesize / sizeof(_Py_CODEUNIT);
+ if (codelen > INT_MAX) {
+ /* Python assembler is limited to INT_MAX: see assembler.a_offset in
+ compile.c. */
+ goto exitUnchanged;
+ }
/* Make a modifiable copy of the code string */
- codestr = (_Py_CODEUNIT *)PyMem_Malloc(codesize);
+ codestr = (_Py_CODEUNIT *)PyMem_Malloc(codesize);
if (codestr == NULL) {
PyErr_NoMemory();
goto exitError;
}
- memcpy(codestr, PyBytes_AS_STRING(code), codesize);
+ memcpy(codestr, PyBytes_AS_STRING(code), codesize);
blocks = markblocks(codestr, codelen);
if (blocks == NULL)
@@ -306,18 +306,18 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
case LOAD_CONST:
cumlc = lastlc + 1;
if (nextop != POP_JUMP_IF_FALSE ||
- !ISBASICBLOCK(blocks, op_start, i + 1)) {
+ !ISBASICBLOCK(blocks, op_start, i + 1)) {
break;
- }
- PyObject* cnt = PyList_GET_ITEM(consts, get_arg(codestr, i));
- int is_true = PyObject_IsTrue(cnt);
- if (is_true == -1) {
- goto exitError;
- }
- if (is_true == 1) {
- fill_nops(codestr, op_start, nexti + 1);
- cumlc = 0;
- }
+ }
+ PyObject* cnt = PyList_GET_ITEM(consts, get_arg(codestr, i));
+ int is_true = PyObject_IsTrue(cnt);
+ if (is_true == -1) {
+ goto exitError;
+ }
+ if (is_true == 1) {
+ fill_nops(codestr, op_start, nexti + 1);
+ cumlc = 0;
+ }
break;
/* Try to fold tuples of constants.
@@ -382,11 +382,11 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
jump past it), and all conditional jumps pop their
argument when they're not taken (so change the
first jump to pop its argument when it's taken). */
- Py_ssize_t arg = (tgt + 1);
- /* cannot overflow: codelen <= INT_MAX */
- assert((size_t)arg <= UINT_MAX / sizeof(_Py_CODEUNIT));
- arg *= sizeof(_Py_CODEUNIT);
- h = set_arg(codestr, i, (unsigned int)arg);
+ Py_ssize_t arg = (tgt + 1);
+ /* cannot overflow: codelen <= INT_MAX */
+ assert((size_t)arg <= UINT_MAX / sizeof(_Py_CODEUNIT));
+ arg *= sizeof(_Py_CODEUNIT);
+ h = set_arg(codestr, i, (unsigned int)arg);
j = opcode == JUMP_IF_TRUE_OR_POP ?
POP_JUMP_IF_TRUE : POP_JUMP_IF_FALSE;
}
@@ -412,37 +412,37 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
codestr[op_start] = PACKOPARG(RETURN_VALUE, 0);
fill_nops(codestr, op_start + 1, i + 1);
} else if (UNCONDITIONAL_JUMP(_Py_OPCODE(codestr[tgt]))) {
- size_t arg = GETJUMPTGT(codestr, tgt);
+ size_t arg = GETJUMPTGT(codestr, tgt);
if (opcode == JUMP_FORWARD) { /* JMP_ABS can go backwards */
opcode = JUMP_ABSOLUTE;
} else if (!ABSOLUTE_JUMP(opcode)) {
- if (arg < (size_t)(i + 1)) {
+ if (arg < (size_t)(i + 1)) {
break; /* No backward relative jumps */
}
- arg -= i + 1; /* Calc relative jump addr */
+ arg -= i + 1; /* Calc relative jump addr */
}
- /* cannot overflow: codelen <= INT_MAX */
- assert(arg <= (UINT_MAX / sizeof(_Py_CODEUNIT)));
- arg *= sizeof(_Py_CODEUNIT);
- copy_op_arg(codestr, op_start, opcode,
- (unsigned int)arg, i + 1);
+ /* cannot overflow: codelen <= INT_MAX */
+ assert(arg <= (UINT_MAX / sizeof(_Py_CODEUNIT)));
+ arg *= sizeof(_Py_CODEUNIT);
+ copy_op_arg(codestr, op_start, opcode,
+ (unsigned int)arg, i + 1);
}
break;
/* Remove unreachable ops after RETURN */
case RETURN_VALUE:
h = i + 1;
- while (h < codelen && ISBASICBLOCK(blocks, i, h))
- {
- /* Leave SETUP_FINALLY and RERAISE in place to help find block limits. */
- if (_Py_OPCODE(codestr[h]) == SETUP_FINALLY || _Py_OPCODE(codestr[h]) == RERAISE) {
- while (h > i + 1 &&
- _Py_OPCODE(codestr[h - 1]) == EXTENDED_ARG)
- {
- h--;
- }
- break;
- }
+ while (h < codelen && ISBASICBLOCK(blocks, i, h))
+ {
+ /* Leave SETUP_FINALLY and RERAISE in place to help find block limits. */
+ if (_Py_OPCODE(codestr[h]) == SETUP_FINALLY || _Py_OPCODE(codestr[h]) == RERAISE) {
+ while (h > i + 1 &&
+ _Py_OPCODE(codestr[h - 1]) == EXTENDED_ARG)
+ {
+ h--;
+ }
+ break;
+ }
h++;
}
if (h > i + 1) {
@@ -455,14 +455,14 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
/* Fixup lnotab */
for (i = 0, nops = 0; i < codelen; i++) {
- size_t block = (size_t)i - nops;
- /* cannot overflow: codelen <= INT_MAX */
- assert(block <= UINT_MAX);
+ size_t block = (size_t)i - nops;
+ /* cannot overflow: codelen <= INT_MAX */
+ assert(block <= UINT_MAX);
/* original code offset => new code offset */
- blocks[i] = (unsigned int)block;
- if (_Py_OPCODE(codestr[i]) == NOP) {
+ blocks[i] = (unsigned int)block;
+ if (_Py_OPCODE(codestr[i]) == NOP) {
nops++;
- }
+ }
}
cum_orig_offset = 0;
last_offset = 0;
@@ -494,7 +494,7 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
case POP_JUMP_IF_TRUE:
case JUMP_IF_FALSE_OR_POP:
case JUMP_IF_TRUE_OR_POP:
- case JUMP_IF_NOT_EXC_MATCH:
+ case JUMP_IF_NOT_EXC_MATCH:
j = blocks[j / sizeof(_Py_CODEUNIT)] * sizeof(_Py_CODEUNIT);
break;
@@ -507,18 +507,18 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
j *= sizeof(_Py_CODEUNIT);
break;
}
- Py_ssize_t ilen = i - op_start + 1;
- if (instrsize(j) > ilen) {
+ Py_ssize_t ilen = i - op_start + 1;
+ if (instrsize(j) > ilen) {
goto exitUnchanged;
- }
- /* If instrsize(j) < ilen, we'll emit EXTENDED_ARG 0 */
- if (ilen > 4) {
- /* Can only happen when PyCode_Optimize() is called with
- malformed bytecode. */
- goto exitUnchanged;
- }
- write_op_arg(codestr + h, opcode, j, (int)ilen);
- h += ilen;
+ }
+ /* If instrsize(j) < ilen, we'll emit EXTENDED_ARG 0 */
+ if (ilen > 4) {
+ /* Can only happen when PyCode_Optimize() is called with
+ malformed bytecode. */
+ goto exitUnchanged;
+ }
+ write_op_arg(codestr + h, opcode, j, (int)ilen);
+ h += ilen;
}
assert(h + (Py_ssize_t)nops == codelen);
diff --git a/contrib/tools/python3/src/Python/preconfig.c b/contrib/tools/python3/src/Python/preconfig.c
index cb4dc7ad53..262738fa57 100644
--- a/contrib/tools/python3/src/Python/preconfig.c
+++ b/contrib/tools/python3/src/Python/preconfig.c
@@ -1,968 +1,968 @@
-#include "Python.h"
-#include "pycore_getopt.h" // _PyOS_GetOpt()
-#include "pycore_initconfig.h" // _PyArgv
-#include "pycore_pymem.h" // _PyMem_GetAllocatorName()
-#include "pycore_runtime.h" // _PyRuntime_Initialize()
-#include <locale.h> // setlocale()
-
-
-#define DECODE_LOCALE_ERR(NAME, LEN) \
- (((LEN) == -2) \
- ? _PyStatus_ERR("cannot decode " NAME) \
- : _PyStatus_NO_MEMORY())
-
-
-/* Forward declarations */
-static void
-preconfig_copy(PyPreConfig *config, const PyPreConfig *config2);
-
-
-/* --- File system encoding/errors -------------------------------- */
-
-/* The filesystem encoding is chosen by config_init_fs_encoding(),
- see also initfsencoding().
-
- Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
- are encoded to UTF-8. */
-const char *Py_FileSystemDefaultEncoding = NULL;
-int Py_HasFileSystemDefaultEncoding = 0;
-const char *Py_FileSystemDefaultEncodeErrors = NULL;
-int _Py_HasFileSystemDefaultEncodeErrors = 0;
-
-void
-_Py_ClearFileSystemEncoding(void)
-{
- if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) {
- PyMem_RawFree((char*)Py_FileSystemDefaultEncoding);
- Py_FileSystemDefaultEncoding = NULL;
- }
- if (!_Py_HasFileSystemDefaultEncodeErrors && Py_FileSystemDefaultEncodeErrors) {
- PyMem_RawFree((char*)Py_FileSystemDefaultEncodeErrors);
- Py_FileSystemDefaultEncodeErrors = NULL;
- }
-}
-
-
-/* Set Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
- global configuration variables. */
-int
-_Py_SetFileSystemEncoding(const char *encoding, const char *errors)
-{
- char *encoding2 = _PyMem_RawStrdup(encoding);
- if (encoding2 == NULL) {
- return -1;
- }
-
- char *errors2 = _PyMem_RawStrdup(errors);
- if (errors2 == NULL) {
- PyMem_RawFree(encoding2);
- return -1;
- }
-
- _Py_ClearFileSystemEncoding();
-
- Py_FileSystemDefaultEncoding = encoding2;
- Py_HasFileSystemDefaultEncoding = 0;
-
- Py_FileSystemDefaultEncodeErrors = errors2;
- _Py_HasFileSystemDefaultEncodeErrors = 0;
- return 0;
-}
-
-
-/* --- _PyArgv ---------------------------------------------------- */
-
-/* Decode bytes_argv using Py_DecodeLocale() */
-PyStatus
-_PyArgv_AsWstrList(const _PyArgv *args, PyWideStringList *list)
-{
- PyWideStringList wargv = _PyWideStringList_INIT;
- if (args->use_bytes_argv) {
- size_t size = sizeof(wchar_t*) * args->argc;
- wargv.items = (wchar_t **)PyMem_RawMalloc(size);
- if (wargv.items == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- for (Py_ssize_t i = 0; i < args->argc; i++) {
- size_t len;
- wchar_t *arg = Py_DecodeLocale(args->bytes_argv[i], &len);
- if (arg == NULL) {
- _PyWideStringList_Clear(&wargv);
- return DECODE_LOCALE_ERR("command line arguments",
- (Py_ssize_t)len);
- }
- wargv.items[i] = arg;
- wargv.length++;
- }
-
- _PyWideStringList_Clear(list);
- *list = wargv;
- }
- else {
- wargv.length = args->argc;
- wargv.items = (wchar_t **)args->wchar_argv;
- if (_PyWideStringList_Copy(list, &wargv) < 0) {
- return _PyStatus_NO_MEMORY();
- }
- }
- return _PyStatus_OK();
-}
-
-
-/* --- _PyPreCmdline ------------------------------------------------- */
-
-void
-_PyPreCmdline_Clear(_PyPreCmdline *cmdline)
-{
- _PyWideStringList_Clear(&cmdline->argv);
- _PyWideStringList_Clear(&cmdline->xoptions);
-}
-
-
-PyStatus
-_PyPreCmdline_SetArgv(_PyPreCmdline *cmdline, const _PyArgv *args)
-{
- return _PyArgv_AsWstrList(args, &cmdline->argv);
-}
-
-
-static void
-precmdline_get_preconfig(_PyPreCmdline *cmdline, const PyPreConfig *config)
-{
-#define COPY_ATTR(ATTR) \
- if (config->ATTR != -1) { \
- cmdline->ATTR = config->ATTR; \
- }
-
- COPY_ATTR(isolated);
- COPY_ATTR(use_environment);
- COPY_ATTR(dev_mode);
-
-#undef COPY_ATTR
-}
-
-
-static void
-precmdline_set_preconfig(const _PyPreCmdline *cmdline, PyPreConfig *config)
-{
-#define COPY_ATTR(ATTR) \
- config->ATTR = cmdline->ATTR
-
- COPY_ATTR(isolated);
- COPY_ATTR(use_environment);
- COPY_ATTR(dev_mode);
-
-#undef COPY_ATTR
-}
-
-
-PyStatus
-_PyPreCmdline_SetConfig(const _PyPreCmdline *cmdline, PyConfig *config)
-{
-#define COPY_ATTR(ATTR) \
- config->ATTR = cmdline->ATTR
-
- PyStatus status = _PyWideStringList_Extend(&config->xoptions, &cmdline->xoptions);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- COPY_ATTR(isolated);
- COPY_ATTR(use_environment);
- COPY_ATTR(dev_mode);
- return _PyStatus_OK();
-
-#undef COPY_ATTR
-}
-
-
-/* Parse the command line arguments */
-static PyStatus
-precmdline_parse_cmdline(_PyPreCmdline *cmdline)
-{
- const PyWideStringList *argv = &cmdline->argv;
-
- _PyOS_ResetGetOpt();
- /* Don't log parsing errors into stderr here: PyConfig_Read()
- is responsible for that */
- _PyOS_opterr = 0;
- do {
- int longindex = -1;
- int c = _PyOS_GetOpt(argv->length, argv->items, &longindex);
-
- if (c == EOF || c == 'c' || c == 'm') {
- break;
- }
-
- switch (c) {
- case 'E':
- cmdline->use_environment = 0;
- break;
-
- case 'I':
- cmdline->isolated = 1;
- break;
-
- case 'X':
- {
- PyStatus status = PyWideStringList_Append(&cmdline->xoptions,
- _PyOS_optarg);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- break;
- }
-
- default:
- /* ignore other argument:
- handled by PyConfig_Read() */
- break;
- }
- } while (1);
-
- return _PyStatus_OK();
-}
-
-
-PyStatus
-_PyPreCmdline_Read(_PyPreCmdline *cmdline, const PyPreConfig *preconfig)
-{
- precmdline_get_preconfig(cmdline, preconfig);
-
- if (preconfig->parse_argv) {
- PyStatus status = precmdline_parse_cmdline(cmdline);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- /* isolated, use_environment */
- if (cmdline->isolated < 0) {
- cmdline->isolated = 0;
- }
- if (cmdline->isolated > 0) {
- cmdline->use_environment = 0;
- }
- if (cmdline->use_environment < 0) {
- cmdline->use_environment = 0;
- }
-
- /* dev_mode */
- if ((cmdline->dev_mode < 0)
- && (_Py_get_xoption(&cmdline->xoptions, L"dev")
- || _Py_GetEnv(cmdline->use_environment, "PYTHONDEVMODE")))
- {
- cmdline->dev_mode = 1;
- }
- if (cmdline->dev_mode < 0) {
- cmdline->dev_mode = 0;
- }
-
- assert(cmdline->use_environment >= 0);
- assert(cmdline->isolated >= 0);
- assert(cmdline->dev_mode >= 0);
-
- return _PyStatus_OK();
-}
-
-
-/* --- PyPreConfig ----------------------------------------------- */
-
-
-void
-_PyPreConfig_InitCompatConfig(PyPreConfig *config)
-{
- memset(config, 0, sizeof(*config));
-
- config->_config_init = (int)_PyConfig_INIT_COMPAT;
- config->parse_argv = 0;
- config->isolated = -1;
- config->use_environment = -1;
- config->configure_locale = 1;
-
- /* bpo-36443: C locale coercion (PEP 538) and UTF-8 Mode (PEP 540)
- are disabled by default using the Compat configuration.
-
- Py_UTF8Mode=1 enables the UTF-8 mode. PYTHONUTF8 environment variable
- is ignored (even if use_environment=1). */
- config->utf8_mode = 0;
- config->coerce_c_locale = 0;
- config->coerce_c_locale_warn = 0;
-
- config->dev_mode = -1;
- config->allocator = PYMEM_ALLOCATOR_NOT_SET;
-#ifdef MS_WINDOWS
- config->legacy_windows_fs_encoding = -1;
-#endif
-}
-
-
-void
-PyPreConfig_InitPythonConfig(PyPreConfig *config)
-{
- _PyPreConfig_InitCompatConfig(config);
-
- config->_config_init = (int)_PyConfig_INIT_PYTHON;
- config->isolated = 0;
- config->parse_argv = 1;
- config->use_environment = 1;
- /* Set to -1 to enable C locale coercion (PEP 538) and UTF-8 Mode (PEP 540)
- depending on the LC_CTYPE locale, PYTHONUTF8 and PYTHONCOERCECLOCALE
- environment variables. */
- config->coerce_c_locale = -1;
- config->coerce_c_locale_warn = -1;
- config->utf8_mode = -1;
-#ifdef MS_WINDOWS
- config->legacy_windows_fs_encoding = 0;
-#endif
-}
-
-
-void
-PyPreConfig_InitIsolatedConfig(PyPreConfig *config)
-{
- _PyPreConfig_InitCompatConfig(config);
-
- config->_config_init = (int)_PyConfig_INIT_ISOLATED;
- config->configure_locale = 0;
- config->isolated = 1;
- config->use_environment = 0;
- config->utf8_mode = 0;
- config->dev_mode = 0;
-#ifdef MS_WINDOWS
- config->legacy_windows_fs_encoding = 0;
-#endif
-}
-
-
-PyStatus
-_PyPreConfig_InitFromPreConfig(PyPreConfig *config,
- const PyPreConfig *config2)
-{
- PyPreConfig_InitPythonConfig(config);
- preconfig_copy(config, config2);
- return _PyStatus_OK();
-}
-
-
-void
-_PyPreConfig_InitFromConfig(PyPreConfig *preconfig, const PyConfig *config)
-{
- _PyConfigInitEnum config_init = (_PyConfigInitEnum)config->_config_init;
- switch (config_init) {
- case _PyConfig_INIT_PYTHON:
- PyPreConfig_InitPythonConfig(preconfig);
- break;
- case _PyConfig_INIT_ISOLATED:
- PyPreConfig_InitIsolatedConfig(preconfig);
- break;
- case _PyConfig_INIT_COMPAT:
- default:
- _PyPreConfig_InitCompatConfig(preconfig);
- }
-
- _PyPreConfig_GetConfig(preconfig, config);
-}
-
-
-static void
-preconfig_copy(PyPreConfig *config, const PyPreConfig *config2)
-{
-#define COPY_ATTR(ATTR) config->ATTR = config2->ATTR
-
- COPY_ATTR(_config_init);
- COPY_ATTR(parse_argv);
- COPY_ATTR(isolated);
- COPY_ATTR(use_environment);
- COPY_ATTR(configure_locale);
- COPY_ATTR(dev_mode);
- COPY_ATTR(coerce_c_locale);
- COPY_ATTR(coerce_c_locale_warn);
- COPY_ATTR(utf8_mode);
- COPY_ATTR(allocator);
-#ifdef MS_WINDOWS
- COPY_ATTR(legacy_windows_fs_encoding);
-#endif
-
-#undef COPY_ATTR
-}
-
-
-PyObject*
-_PyPreConfig_AsDict(const PyPreConfig *config)
-{
- PyObject *dict;
-
- dict = PyDict_New();
- if (dict == NULL) {
- return NULL;
- }
-
-#define SET_ITEM_INT(ATTR) \
- do { \
- PyObject *obj = PyLong_FromLong(config->ATTR); \
- if (obj == NULL) { \
- goto fail; \
- } \
- int res = PyDict_SetItemString(dict, #ATTR, obj); \
- Py_DECREF(obj); \
- if (res < 0) { \
- goto fail; \
- } \
- } while (0)
-
- SET_ITEM_INT(_config_init);
- SET_ITEM_INT(parse_argv);
- SET_ITEM_INT(isolated);
- SET_ITEM_INT(use_environment);
- SET_ITEM_INT(configure_locale);
- SET_ITEM_INT(coerce_c_locale);
- SET_ITEM_INT(coerce_c_locale_warn);
- SET_ITEM_INT(utf8_mode);
-#ifdef MS_WINDOWS
- SET_ITEM_INT(legacy_windows_fs_encoding);
-#endif
- SET_ITEM_INT(dev_mode);
- SET_ITEM_INT(allocator);
- return dict;
-
-fail:
- Py_DECREF(dict);
- return NULL;
-
-#undef SET_ITEM_INT
-}
-
-
-void
-_PyPreConfig_GetConfig(PyPreConfig *preconfig, const PyConfig *config)
-{
-#define COPY_ATTR(ATTR) \
- if (config->ATTR != -1) { \
- preconfig->ATTR = config->ATTR; \
- }
-
- COPY_ATTR(parse_argv);
- COPY_ATTR(isolated);
- COPY_ATTR(use_environment);
- COPY_ATTR(dev_mode);
-
-#undef COPY_ATTR
-}
-
-
-static void
-preconfig_get_global_vars(PyPreConfig *config)
-{
- if (config->_config_init != _PyConfig_INIT_COMPAT) {
- /* Python and Isolated configuration ignore global variables */
- return;
- }
-
-#define COPY_FLAG(ATTR, VALUE) \
- if (config->ATTR < 0) { \
- config->ATTR = VALUE; \
- }
-#define COPY_NOT_FLAG(ATTR, VALUE) \
- if (config->ATTR < 0) { \
- config->ATTR = !(VALUE); \
- }
-
- COPY_FLAG(isolated, Py_IsolatedFlag);
- COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
- if (Py_UTF8Mode > 0) {
- config->utf8_mode = Py_UTF8Mode;
- }
-#ifdef MS_WINDOWS
- COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag);
-#endif
-
-#undef COPY_FLAG
-#undef COPY_NOT_FLAG
-}
-
-
-static void
-preconfig_set_global_vars(const PyPreConfig *config)
-{
-#define COPY_FLAG(ATTR, VAR) \
- if (config->ATTR >= 0) { \
- VAR = config->ATTR; \
- }
-#define COPY_NOT_FLAG(ATTR, VAR) \
- if (config->ATTR >= 0) { \
- VAR = !config->ATTR; \
- }
-
- COPY_FLAG(isolated, Py_IsolatedFlag);
- COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
-#ifdef MS_WINDOWS
- COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag);
-#endif
- COPY_FLAG(utf8_mode, Py_UTF8Mode);
-
-#undef COPY_FLAG
-#undef COPY_NOT_FLAG
-}
-
-
-const char*
-_Py_GetEnv(int use_environment, const char *name)
-{
- assert(use_environment >= 0);
-
- if (!use_environment) {
- return NULL;
- }
-
- const char *var = getenv(name);
- if (var && var[0] != '\0') {
- return var;
- }
- else {
- return NULL;
- }
-}
-
-
-int
-_Py_str_to_int(const char *str, int *result)
-{
- const char *endptr = str;
- errno = 0;
- long value = strtol(str, (char **)&endptr, 10);
- if (*endptr != '\0' || errno == ERANGE) {
- return -1;
- }
- if (value < INT_MIN || value > INT_MAX) {
- return -1;
- }
-
- *result = (int)value;
- return 0;
-}
-
-
-void
-_Py_get_env_flag(int use_environment, int *flag, const char *name)
-{
- const char *var = _Py_GetEnv(use_environment, name);
- if (!var) {
- return;
- }
- int value;
- if (_Py_str_to_int(var, &value) < 0 || value < 0) {
- /* PYTHONDEBUG=text and PYTHONDEBUG=-2 behave as PYTHONDEBUG=1 */
- value = 1;
- }
- if (*flag < value) {
- *flag = value;
- }
-}
-
-
-const wchar_t*
-_Py_get_xoption(const PyWideStringList *xoptions, const wchar_t *name)
-{
- for (Py_ssize_t i=0; i < xoptions->length; i++) {
- const wchar_t *option = xoptions->items[i];
- size_t len;
- wchar_t *sep = wcschr(option, L'=');
- if (sep != NULL) {
- len = (sep - option);
- }
- else {
- len = wcslen(option);
- }
- if (wcsncmp(option, name, len) == 0 && name[len] == L'\0') {
- return option;
- }
- }
- return NULL;
-}
-
-
-static PyStatus
-preconfig_init_utf8_mode(PyPreConfig *config, const _PyPreCmdline *cmdline)
-{
-#ifdef MS_WINDOWS
- if (config->legacy_windows_fs_encoding) {
- config->utf8_mode = 0;
- }
-#endif
-
- if (config->utf8_mode >= 0) {
- return _PyStatus_OK();
- }
-
- const wchar_t *xopt;
- xopt = _Py_get_xoption(&cmdline->xoptions, L"utf8");
- if (xopt) {
- wchar_t *sep = wcschr(xopt, L'=');
- if (sep) {
- xopt = sep + 1;
- if (wcscmp(xopt, L"1") == 0) {
- config->utf8_mode = 1;
- }
- else if (wcscmp(xopt, L"0") == 0) {
- config->utf8_mode = 0;
- }
- else {
- return _PyStatus_ERR("invalid -X utf8 option value");
- }
- }
- else {
- config->utf8_mode = 1;
- }
- return _PyStatus_OK();
- }
-
- const char *opt = _Py_GetEnv(config->use_environment, "PYTHONUTF8");
- if (opt) {
- if (strcmp(opt, "1") == 0) {
- config->utf8_mode = 1;
- }
- else if (strcmp(opt, "0") == 0) {
- config->utf8_mode = 0;
- }
- else {
- return _PyStatus_ERR("invalid PYTHONUTF8 environment "
- "variable value");
- }
- return _PyStatus_OK();
- }
-
-
-#ifndef MS_WINDOWS
- if (config->utf8_mode < 0) {
- /* The C locale and the POSIX locale enable the UTF-8 Mode (PEP 540) */
- const char *ctype_loc = setlocale(LC_CTYPE, NULL);
- if (ctype_loc != NULL
- && (strcmp(ctype_loc, "C") == 0
- || strcmp(ctype_loc, "POSIX") == 0))
- {
- config->utf8_mode = 1;
- }
- }
-#endif
-
- if (config->utf8_mode < 0) {
- config->utf8_mode = 0;
- }
- return _PyStatus_OK();
-}
-
-
-static void
-preconfig_init_coerce_c_locale(PyPreConfig *config)
-{
- if (!config->configure_locale) {
- config->coerce_c_locale = 0;
- config->coerce_c_locale_warn = 0;
- return;
- }
-
- const char *env = _Py_GetEnv(config->use_environment, "PYTHONCOERCECLOCALE");
- if (env) {
- if (strcmp(env, "0") == 0) {
- if (config->coerce_c_locale < 0) {
- config->coerce_c_locale = 0;
- }
- }
- else if (strcmp(env, "warn") == 0) {
- if (config->coerce_c_locale_warn < 0) {
- config->coerce_c_locale_warn = 1;
- }
- }
- else {
- if (config->coerce_c_locale < 0) {
- config->coerce_c_locale = 1;
- }
- }
- }
-
- /* Test if coerce_c_locale equals to -1 or equals to 1:
- PYTHONCOERCECLOCALE=1 doesn't imply that the C locale is always coerced.
- It is only coerced if if the LC_CTYPE locale is "C". */
- if (config->coerce_c_locale < 0 || config->coerce_c_locale == 1) {
- /* The C locale enables the C locale coercion (PEP 538) */
- if (_Py_LegacyLocaleDetected(0)) {
- config->coerce_c_locale = 2;
- }
- else {
- config->coerce_c_locale = 0;
- }
- }
-
- if (config->coerce_c_locale_warn < 0) {
- config->coerce_c_locale_warn = 0;
- }
-}
-
-
-static PyStatus
-preconfig_init_allocator(PyPreConfig *config)
-{
- if (config->allocator == PYMEM_ALLOCATOR_NOT_SET) {
- /* bpo-34247. The PYTHONMALLOC environment variable has the priority
- over PYTHONDEV env var and "-X dev" command line option.
- For example, PYTHONMALLOC=malloc PYTHONDEVMODE=1 sets the memory
- allocators to "malloc" (and not to "debug"). */
- const char *envvar = _Py_GetEnv(config->use_environment, "PYTHONMALLOC");
- if (envvar) {
- PyMemAllocatorName name;
- if (_PyMem_GetAllocatorName(envvar, &name) < 0) {
- return _PyStatus_ERR("PYTHONMALLOC: unknown allocator");
- }
- config->allocator = (int)name;
- }
- }
-
- if (config->dev_mode && config->allocator == PYMEM_ALLOCATOR_NOT_SET) {
- config->allocator = PYMEM_ALLOCATOR_DEBUG;
- }
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-preconfig_read(PyPreConfig *config, _PyPreCmdline *cmdline)
-{
- PyStatus status;
-
- status = _PyPreCmdline_Read(cmdline, config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- precmdline_set_preconfig(cmdline, config);
-
- /* legacy_windows_fs_encoding, coerce_c_locale, utf8_mode */
-#ifdef MS_WINDOWS
- _Py_get_env_flag(config->use_environment,
- &config->legacy_windows_fs_encoding,
- "PYTHONLEGACYWINDOWSFSENCODING");
-#endif
-
- preconfig_init_coerce_c_locale(config);
-
- status = preconfig_init_utf8_mode(config, cmdline);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- /* allocator */
- status = preconfig_init_allocator(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- assert(config->coerce_c_locale >= 0);
- assert(config->coerce_c_locale_warn >= 0);
-#ifdef MS_WINDOWS
- assert(config->legacy_windows_fs_encoding >= 0);
-#endif
- assert(config->utf8_mode >= 0);
- assert(config->isolated >= 0);
- assert(config->use_environment >= 0);
- assert(config->dev_mode >= 0);
-
- return _PyStatus_OK();
-}
-
-
-/* Read the configuration from:
-
- - command line arguments
- - environment variables
- - Py_xxx global configuration variables
- - the LC_CTYPE locale */
-PyStatus
-_PyPreConfig_Read(PyPreConfig *config, const _PyArgv *args)
-{
- PyStatus status;
-
- status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- preconfig_get_global_vars(config);
-
- /* Copy LC_CTYPE locale, since it's modified later */
- const char *loc = setlocale(LC_CTYPE, NULL);
- if (loc == NULL) {
- return _PyStatus_ERR("failed to LC_CTYPE locale");
- }
- char *init_ctype_locale = _PyMem_RawStrdup(loc);
- if (init_ctype_locale == NULL) {
- return _PyStatus_NO_MEMORY();
- }
-
- /* Save the config to be able to restore it if encodings change */
- PyPreConfig save_config;
-
- status = _PyPreConfig_InitFromPreConfig(&save_config, config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- /* Set LC_CTYPE to the user preferred locale */
- if (config->configure_locale) {
- _Py_SetLocaleFromEnv(LC_CTYPE);
- }
-
- _PyPreCmdline cmdline = _PyPreCmdline_INIT;
- int init_utf8_mode = Py_UTF8Mode;
-#ifdef MS_WINDOWS
- int init_legacy_encoding = Py_LegacyWindowsFSEncodingFlag;
-#endif
-
- if (args) {
- status = _PyPreCmdline_SetArgv(&cmdline, args);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
- }
-
- int locale_coerced = 0;
- int loops = 0;
-
- while (1) {
- int utf8_mode = config->utf8_mode;
-
- /* Watchdog to prevent an infinite loop */
- loops++;
- if (loops == 3) {
- status = _PyStatus_ERR("Encoding changed twice while "
- "reading the configuration");
- goto done;
- }
-
- /* bpo-34207: Py_DecodeLocale() and Py_EncodeLocale() depend
- on Py_UTF8Mode and Py_LegacyWindowsFSEncodingFlag. */
- Py_UTF8Mode = config->utf8_mode;
-#ifdef MS_WINDOWS
- Py_LegacyWindowsFSEncodingFlag = config->legacy_windows_fs_encoding;
-#endif
-
- status = preconfig_read(config, &cmdline);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- /* The legacy C locale assumes ASCII as the default text encoding, which
- * causes problems not only for the CPython runtime, but also other
- * components like GNU readline.
- *
- * Accordingly, when the CLI detects it, it attempts to coerce it to a
- * more capable UTF-8 based alternative.
- *
- * See the documentation of the PYTHONCOERCECLOCALE setting for more
- * details.
- */
- int encoding_changed = 0;
- if (config->coerce_c_locale && !locale_coerced) {
- locale_coerced = 1;
- _Py_CoerceLegacyLocale(0);
- encoding_changed = 1;
- }
-
- if (utf8_mode == -1) {
- if (config->utf8_mode == 1) {
- /* UTF-8 Mode enabled */
- encoding_changed = 1;
- }
- }
- else {
- if (config->utf8_mode != utf8_mode) {
- encoding_changed = 1;
- }
- }
-
- if (!encoding_changed) {
- break;
- }
-
- /* Reset the configuration before reading again the configuration,
- just keep UTF-8 Mode value. */
- int new_utf8_mode = config->utf8_mode;
- int new_coerce_c_locale = config->coerce_c_locale;
- preconfig_copy(config, &save_config);
- config->utf8_mode = new_utf8_mode;
- config->coerce_c_locale = new_coerce_c_locale;
-
- /* The encoding changed: read again the configuration
- with the new encoding */
- }
- status = _PyStatus_OK();
-
-done:
- if (init_ctype_locale != NULL) {
- setlocale(LC_CTYPE, init_ctype_locale);
- PyMem_RawFree(init_ctype_locale);
- }
- Py_UTF8Mode = init_utf8_mode ;
-#ifdef MS_WINDOWS
- Py_LegacyWindowsFSEncodingFlag = init_legacy_encoding;
-#endif
- _PyPreCmdline_Clear(&cmdline);
- return status;
-}
-
-
-/* Write the pre-configuration:
-
- - set the memory allocators
- - set Py_xxx global configuration variables
- - set the LC_CTYPE locale (coerce C locale, PEP 538) and set the UTF-8 mode
- (PEP 540)
-
- The applied configuration is written into _PyRuntime.preconfig.
- If the C locale cannot be coerced, set coerce_c_locale to 0.
-
- Do nothing if called after Py_Initialize(): ignore the new
- pre-configuration. */
-PyStatus
-_PyPreConfig_Write(const PyPreConfig *src_config)
-{
- PyPreConfig config;
-
- PyStatus status = _PyPreConfig_InitFromPreConfig(&config, src_config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (_PyRuntime.core_initialized) {
- /* bpo-34008: Calling this functions after Py_Initialize() ignores
- the new configuration. */
- return _PyStatus_OK();
- }
-
- PyMemAllocatorName name = (PyMemAllocatorName)config.allocator;
- if (name != PYMEM_ALLOCATOR_NOT_SET) {
- if (_PyMem_SetupAllocators(name) < 0) {
- return _PyStatus_ERR("Unknown PYTHONMALLOC allocator");
- }
- }
-
- preconfig_set_global_vars(&config);
-
- if (config.configure_locale) {
- if (config.coerce_c_locale) {
- if (!_Py_CoerceLegacyLocale(config.coerce_c_locale_warn)) {
- /* C locale not coerced */
- config.coerce_c_locale = 0;
- }
- }
-
- /* Set LC_CTYPE to the user preferred locale */
- _Py_SetLocaleFromEnv(LC_CTYPE);
- }
-
- /* Write the new pre-configuration into _PyRuntime */
- preconfig_copy(&_PyRuntime.preconfig, &config);
-
- return _PyStatus_OK();
-}
+#include "Python.h"
+#include "pycore_getopt.h" // _PyOS_GetOpt()
+#include "pycore_initconfig.h" // _PyArgv
+#include "pycore_pymem.h" // _PyMem_GetAllocatorName()
+#include "pycore_runtime.h" // _PyRuntime_Initialize()
+#include <locale.h> // setlocale()
+
+
+#define DECODE_LOCALE_ERR(NAME, LEN) \
+ (((LEN) == -2) \
+ ? _PyStatus_ERR("cannot decode " NAME) \
+ : _PyStatus_NO_MEMORY())
+
+
+/* Forward declarations */
+static void
+preconfig_copy(PyPreConfig *config, const PyPreConfig *config2);
+
+
+/* --- File system encoding/errors -------------------------------- */
+
+/* The filesystem encoding is chosen by config_init_fs_encoding(),
+ see also initfsencoding().
+
+ Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
+ are encoded to UTF-8. */
+const char *Py_FileSystemDefaultEncoding = NULL;
+int Py_HasFileSystemDefaultEncoding = 0;
+const char *Py_FileSystemDefaultEncodeErrors = NULL;
+int _Py_HasFileSystemDefaultEncodeErrors = 0;
+
+void
+_Py_ClearFileSystemEncoding(void)
+{
+ if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) {
+ PyMem_RawFree((char*)Py_FileSystemDefaultEncoding);
+ Py_FileSystemDefaultEncoding = NULL;
+ }
+ if (!_Py_HasFileSystemDefaultEncodeErrors && Py_FileSystemDefaultEncodeErrors) {
+ PyMem_RawFree((char*)Py_FileSystemDefaultEncodeErrors);
+ Py_FileSystemDefaultEncodeErrors = NULL;
+ }
+}
+
+
+/* Set Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
+ global configuration variables. */
+int
+_Py_SetFileSystemEncoding(const char *encoding, const char *errors)
+{
+ char *encoding2 = _PyMem_RawStrdup(encoding);
+ if (encoding2 == NULL) {
+ return -1;
+ }
+
+ char *errors2 = _PyMem_RawStrdup(errors);
+ if (errors2 == NULL) {
+ PyMem_RawFree(encoding2);
+ return -1;
+ }
+
+ _Py_ClearFileSystemEncoding();
+
+ Py_FileSystemDefaultEncoding = encoding2;
+ Py_HasFileSystemDefaultEncoding = 0;
+
+ Py_FileSystemDefaultEncodeErrors = errors2;
+ _Py_HasFileSystemDefaultEncodeErrors = 0;
+ return 0;
+}
+
+
+/* --- _PyArgv ---------------------------------------------------- */
+
+/* Decode bytes_argv using Py_DecodeLocale() */
+PyStatus
+_PyArgv_AsWstrList(const _PyArgv *args, PyWideStringList *list)
+{
+ PyWideStringList wargv = _PyWideStringList_INIT;
+ if (args->use_bytes_argv) {
+ size_t size = sizeof(wchar_t*) * args->argc;
+ wargv.items = (wchar_t **)PyMem_RawMalloc(size);
+ if (wargv.items == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ for (Py_ssize_t i = 0; i < args->argc; i++) {
+ size_t len;
+ wchar_t *arg = Py_DecodeLocale(args->bytes_argv[i], &len);
+ if (arg == NULL) {
+ _PyWideStringList_Clear(&wargv);
+ return DECODE_LOCALE_ERR("command line arguments",
+ (Py_ssize_t)len);
+ }
+ wargv.items[i] = arg;
+ wargv.length++;
+ }
+
+ _PyWideStringList_Clear(list);
+ *list = wargv;
+ }
+ else {
+ wargv.length = args->argc;
+ wargv.items = (wchar_t **)args->wchar_argv;
+ if (_PyWideStringList_Copy(list, &wargv) < 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ }
+ return _PyStatus_OK();
+}
+
+
+/* --- _PyPreCmdline ------------------------------------------------- */
+
+void
+_PyPreCmdline_Clear(_PyPreCmdline *cmdline)
+{
+ _PyWideStringList_Clear(&cmdline->argv);
+ _PyWideStringList_Clear(&cmdline->xoptions);
+}
+
+
+PyStatus
+_PyPreCmdline_SetArgv(_PyPreCmdline *cmdline, const _PyArgv *args)
+{
+ return _PyArgv_AsWstrList(args, &cmdline->argv);
+}
+
+
+static void
+precmdline_get_preconfig(_PyPreCmdline *cmdline, const PyPreConfig *config)
+{
+#define COPY_ATTR(ATTR) \
+ if (config->ATTR != -1) { \
+ cmdline->ATTR = config->ATTR; \
+ }
+
+ COPY_ATTR(isolated);
+ COPY_ATTR(use_environment);
+ COPY_ATTR(dev_mode);
+
+#undef COPY_ATTR
+}
+
+
+static void
+precmdline_set_preconfig(const _PyPreCmdline *cmdline, PyPreConfig *config)
+{
+#define COPY_ATTR(ATTR) \
+ config->ATTR = cmdline->ATTR
+
+ COPY_ATTR(isolated);
+ COPY_ATTR(use_environment);
+ COPY_ATTR(dev_mode);
+
+#undef COPY_ATTR
+}
+
+
+PyStatus
+_PyPreCmdline_SetConfig(const _PyPreCmdline *cmdline, PyConfig *config)
+{
+#define COPY_ATTR(ATTR) \
+ config->ATTR = cmdline->ATTR
+
+ PyStatus status = _PyWideStringList_Extend(&config->xoptions, &cmdline->xoptions);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ COPY_ATTR(isolated);
+ COPY_ATTR(use_environment);
+ COPY_ATTR(dev_mode);
+ return _PyStatus_OK();
+
+#undef COPY_ATTR
+}
+
+
+/* Parse the command line arguments */
+static PyStatus
+precmdline_parse_cmdline(_PyPreCmdline *cmdline)
+{
+ const PyWideStringList *argv = &cmdline->argv;
+
+ _PyOS_ResetGetOpt();
+ /* Don't log parsing errors into stderr here: PyConfig_Read()
+ is responsible for that */
+ _PyOS_opterr = 0;
+ do {
+ int longindex = -1;
+ int c = _PyOS_GetOpt(argv->length, argv->items, &longindex);
+
+ if (c == EOF || c == 'c' || c == 'm') {
+ break;
+ }
+
+ switch (c) {
+ case 'E':
+ cmdline->use_environment = 0;
+ break;
+
+ case 'I':
+ cmdline->isolated = 1;
+ break;
+
+ case 'X':
+ {
+ PyStatus status = PyWideStringList_Append(&cmdline->xoptions,
+ _PyOS_optarg);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ break;
+ }
+
+ default:
+ /* ignore other argument:
+ handled by PyConfig_Read() */
+ break;
+ }
+ } while (1);
+
+ return _PyStatus_OK();
+}
+
+
+PyStatus
+_PyPreCmdline_Read(_PyPreCmdline *cmdline, const PyPreConfig *preconfig)
+{
+ precmdline_get_preconfig(cmdline, preconfig);
+
+ if (preconfig->parse_argv) {
+ PyStatus status = precmdline_parse_cmdline(cmdline);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ /* isolated, use_environment */
+ if (cmdline->isolated < 0) {
+ cmdline->isolated = 0;
+ }
+ if (cmdline->isolated > 0) {
+ cmdline->use_environment = 0;
+ }
+ if (cmdline->use_environment < 0) {
+ cmdline->use_environment = 0;
+ }
+
+ /* dev_mode */
+ if ((cmdline->dev_mode < 0)
+ && (_Py_get_xoption(&cmdline->xoptions, L"dev")
+ || _Py_GetEnv(cmdline->use_environment, "PYTHONDEVMODE")))
+ {
+ cmdline->dev_mode = 1;
+ }
+ if (cmdline->dev_mode < 0) {
+ cmdline->dev_mode = 0;
+ }
+
+ assert(cmdline->use_environment >= 0);
+ assert(cmdline->isolated >= 0);
+ assert(cmdline->dev_mode >= 0);
+
+ return _PyStatus_OK();
+}
+
+
+/* --- PyPreConfig ----------------------------------------------- */
+
+
+void
+_PyPreConfig_InitCompatConfig(PyPreConfig *config)
+{
+ memset(config, 0, sizeof(*config));
+
+ config->_config_init = (int)_PyConfig_INIT_COMPAT;
+ config->parse_argv = 0;
+ config->isolated = -1;
+ config->use_environment = -1;
+ config->configure_locale = 1;
+
+ /* bpo-36443: C locale coercion (PEP 538) and UTF-8 Mode (PEP 540)
+ are disabled by default using the Compat configuration.
+
+ Py_UTF8Mode=1 enables the UTF-8 mode. PYTHONUTF8 environment variable
+ is ignored (even if use_environment=1). */
+ config->utf8_mode = 0;
+ config->coerce_c_locale = 0;
+ config->coerce_c_locale_warn = 0;
+
+ config->dev_mode = -1;
+ config->allocator = PYMEM_ALLOCATOR_NOT_SET;
+#ifdef MS_WINDOWS
+ config->legacy_windows_fs_encoding = -1;
+#endif
+}
+
+
+void
+PyPreConfig_InitPythonConfig(PyPreConfig *config)
+{
+ _PyPreConfig_InitCompatConfig(config);
+
+ config->_config_init = (int)_PyConfig_INIT_PYTHON;
+ config->isolated = 0;
+ config->parse_argv = 1;
+ config->use_environment = 1;
+ /* Set to -1 to enable C locale coercion (PEP 538) and UTF-8 Mode (PEP 540)
+ depending on the LC_CTYPE locale, PYTHONUTF8 and PYTHONCOERCECLOCALE
+ environment variables. */
+ config->coerce_c_locale = -1;
+ config->coerce_c_locale_warn = -1;
+ config->utf8_mode = -1;
+#ifdef MS_WINDOWS
+ config->legacy_windows_fs_encoding = 0;
+#endif
+}
+
+
+void
+PyPreConfig_InitIsolatedConfig(PyPreConfig *config)
+{
+ _PyPreConfig_InitCompatConfig(config);
+
+ config->_config_init = (int)_PyConfig_INIT_ISOLATED;
+ config->configure_locale = 0;
+ config->isolated = 1;
+ config->use_environment = 0;
+ config->utf8_mode = 0;
+ config->dev_mode = 0;
+#ifdef MS_WINDOWS
+ config->legacy_windows_fs_encoding = 0;
+#endif
+}
+
+
+PyStatus
+_PyPreConfig_InitFromPreConfig(PyPreConfig *config,
+ const PyPreConfig *config2)
+{
+ PyPreConfig_InitPythonConfig(config);
+ preconfig_copy(config, config2);
+ return _PyStatus_OK();
+}
+
+
+void
+_PyPreConfig_InitFromConfig(PyPreConfig *preconfig, const PyConfig *config)
+{
+ _PyConfigInitEnum config_init = (_PyConfigInitEnum)config->_config_init;
+ switch (config_init) {
+ case _PyConfig_INIT_PYTHON:
+ PyPreConfig_InitPythonConfig(preconfig);
+ break;
+ case _PyConfig_INIT_ISOLATED:
+ PyPreConfig_InitIsolatedConfig(preconfig);
+ break;
+ case _PyConfig_INIT_COMPAT:
+ default:
+ _PyPreConfig_InitCompatConfig(preconfig);
+ }
+
+ _PyPreConfig_GetConfig(preconfig, config);
+}
+
+
+static void
+preconfig_copy(PyPreConfig *config, const PyPreConfig *config2)
+{
+#define COPY_ATTR(ATTR) config->ATTR = config2->ATTR
+
+ COPY_ATTR(_config_init);
+ COPY_ATTR(parse_argv);
+ COPY_ATTR(isolated);
+ COPY_ATTR(use_environment);
+ COPY_ATTR(configure_locale);
+ COPY_ATTR(dev_mode);
+ COPY_ATTR(coerce_c_locale);
+ COPY_ATTR(coerce_c_locale_warn);
+ COPY_ATTR(utf8_mode);
+ COPY_ATTR(allocator);
+#ifdef MS_WINDOWS
+ COPY_ATTR(legacy_windows_fs_encoding);
+#endif
+
+#undef COPY_ATTR
+}
+
+
+PyObject*
+_PyPreConfig_AsDict(const PyPreConfig *config)
+{
+ PyObject *dict;
+
+ dict = PyDict_New();
+ if (dict == NULL) {
+ return NULL;
+ }
+
+#define SET_ITEM_INT(ATTR) \
+ do { \
+ PyObject *obj = PyLong_FromLong(config->ATTR); \
+ if (obj == NULL) { \
+ goto fail; \
+ } \
+ int res = PyDict_SetItemString(dict, #ATTR, obj); \
+ Py_DECREF(obj); \
+ if (res < 0) { \
+ goto fail; \
+ } \
+ } while (0)
+
+ SET_ITEM_INT(_config_init);
+ SET_ITEM_INT(parse_argv);
+ SET_ITEM_INT(isolated);
+ SET_ITEM_INT(use_environment);
+ SET_ITEM_INT(configure_locale);
+ SET_ITEM_INT(coerce_c_locale);
+ SET_ITEM_INT(coerce_c_locale_warn);
+ SET_ITEM_INT(utf8_mode);
+#ifdef MS_WINDOWS
+ SET_ITEM_INT(legacy_windows_fs_encoding);
+#endif
+ SET_ITEM_INT(dev_mode);
+ SET_ITEM_INT(allocator);
+ return dict;
+
+fail:
+ Py_DECREF(dict);
+ return NULL;
+
+#undef SET_ITEM_INT
+}
+
+
+void
+_PyPreConfig_GetConfig(PyPreConfig *preconfig, const PyConfig *config)
+{
+#define COPY_ATTR(ATTR) \
+ if (config->ATTR != -1) { \
+ preconfig->ATTR = config->ATTR; \
+ }
+
+ COPY_ATTR(parse_argv);
+ COPY_ATTR(isolated);
+ COPY_ATTR(use_environment);
+ COPY_ATTR(dev_mode);
+
+#undef COPY_ATTR
+}
+
+
+static void
+preconfig_get_global_vars(PyPreConfig *config)
+{
+ if (config->_config_init != _PyConfig_INIT_COMPAT) {
+ /* Python and Isolated configuration ignore global variables */
+ return;
+ }
+
+#define COPY_FLAG(ATTR, VALUE) \
+ if (config->ATTR < 0) { \
+ config->ATTR = VALUE; \
+ }
+#define COPY_NOT_FLAG(ATTR, VALUE) \
+ if (config->ATTR < 0) { \
+ config->ATTR = !(VALUE); \
+ }
+
+ COPY_FLAG(isolated, Py_IsolatedFlag);
+ COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
+ if (Py_UTF8Mode > 0) {
+ config->utf8_mode = Py_UTF8Mode;
+ }
+#ifdef MS_WINDOWS
+ COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag);
+#endif
+
+#undef COPY_FLAG
+#undef COPY_NOT_FLAG
+}
+
+
+static void
+preconfig_set_global_vars(const PyPreConfig *config)
+{
+#define COPY_FLAG(ATTR, VAR) \
+ if (config->ATTR >= 0) { \
+ VAR = config->ATTR; \
+ }
+#define COPY_NOT_FLAG(ATTR, VAR) \
+ if (config->ATTR >= 0) { \
+ VAR = !config->ATTR; \
+ }
+
+ COPY_FLAG(isolated, Py_IsolatedFlag);
+ COPY_NOT_FLAG(use_environment, Py_IgnoreEnvironmentFlag);
+#ifdef MS_WINDOWS
+ COPY_FLAG(legacy_windows_fs_encoding, Py_LegacyWindowsFSEncodingFlag);
+#endif
+ COPY_FLAG(utf8_mode, Py_UTF8Mode);
+
+#undef COPY_FLAG
+#undef COPY_NOT_FLAG
+}
+
+
+const char*
+_Py_GetEnv(int use_environment, const char *name)
+{
+ assert(use_environment >= 0);
+
+ if (!use_environment) {
+ return NULL;
+ }
+
+ const char *var = getenv(name);
+ if (var && var[0] != '\0') {
+ return var;
+ }
+ else {
+ return NULL;
+ }
+}
+
+
+int
+_Py_str_to_int(const char *str, int *result)
+{
+ const char *endptr = str;
+ errno = 0;
+ long value = strtol(str, (char **)&endptr, 10);
+ if (*endptr != '\0' || errno == ERANGE) {
+ return -1;
+ }
+ if (value < INT_MIN || value > INT_MAX) {
+ return -1;
+ }
+
+ *result = (int)value;
+ return 0;
+}
+
+
+void
+_Py_get_env_flag(int use_environment, int *flag, const char *name)
+{
+ const char *var = _Py_GetEnv(use_environment, name);
+ if (!var) {
+ return;
+ }
+ int value;
+ if (_Py_str_to_int(var, &value) < 0 || value < 0) {
+ /* PYTHONDEBUG=text and PYTHONDEBUG=-2 behave as PYTHONDEBUG=1 */
+ value = 1;
+ }
+ if (*flag < value) {
+ *flag = value;
+ }
+}
+
+
+const wchar_t*
+_Py_get_xoption(const PyWideStringList *xoptions, const wchar_t *name)
+{
+ for (Py_ssize_t i=0; i < xoptions->length; i++) {
+ const wchar_t *option = xoptions->items[i];
+ size_t len;
+ wchar_t *sep = wcschr(option, L'=');
+ if (sep != NULL) {
+ len = (sep - option);
+ }
+ else {
+ len = wcslen(option);
+ }
+ if (wcsncmp(option, name, len) == 0 && name[len] == L'\0') {
+ return option;
+ }
+ }
+ return NULL;
+}
+
+
+static PyStatus
+preconfig_init_utf8_mode(PyPreConfig *config, const _PyPreCmdline *cmdline)
+{
+#ifdef MS_WINDOWS
+ if (config->legacy_windows_fs_encoding) {
+ config->utf8_mode = 0;
+ }
+#endif
+
+ if (config->utf8_mode >= 0) {
+ return _PyStatus_OK();
+ }
+
+ const wchar_t *xopt;
+ xopt = _Py_get_xoption(&cmdline->xoptions, L"utf8");
+ if (xopt) {
+ wchar_t *sep = wcschr(xopt, L'=');
+ if (sep) {
+ xopt = sep + 1;
+ if (wcscmp(xopt, L"1") == 0) {
+ config->utf8_mode = 1;
+ }
+ else if (wcscmp(xopt, L"0") == 0) {
+ config->utf8_mode = 0;
+ }
+ else {
+ return _PyStatus_ERR("invalid -X utf8 option value");
+ }
+ }
+ else {
+ config->utf8_mode = 1;
+ }
+ return _PyStatus_OK();
+ }
+
+ const char *opt = _Py_GetEnv(config->use_environment, "PYTHONUTF8");
+ if (opt) {
+ if (strcmp(opt, "1") == 0) {
+ config->utf8_mode = 1;
+ }
+ else if (strcmp(opt, "0") == 0) {
+ config->utf8_mode = 0;
+ }
+ else {
+ return _PyStatus_ERR("invalid PYTHONUTF8 environment "
+ "variable value");
+ }
+ return _PyStatus_OK();
+ }
+
+
+#ifndef MS_WINDOWS
+ if (config->utf8_mode < 0) {
+ /* The C locale and the POSIX locale enable the UTF-8 Mode (PEP 540) */
+ const char *ctype_loc = setlocale(LC_CTYPE, NULL);
+ if (ctype_loc != NULL
+ && (strcmp(ctype_loc, "C") == 0
+ || strcmp(ctype_loc, "POSIX") == 0))
+ {
+ config->utf8_mode = 1;
+ }
+ }
+#endif
+
+ if (config->utf8_mode < 0) {
+ config->utf8_mode = 0;
+ }
+ return _PyStatus_OK();
+}
+
+
+static void
+preconfig_init_coerce_c_locale(PyPreConfig *config)
+{
+ if (!config->configure_locale) {
+ config->coerce_c_locale = 0;
+ config->coerce_c_locale_warn = 0;
+ return;
+ }
+
+ const char *env = _Py_GetEnv(config->use_environment, "PYTHONCOERCECLOCALE");
+ if (env) {
+ if (strcmp(env, "0") == 0) {
+ if (config->coerce_c_locale < 0) {
+ config->coerce_c_locale = 0;
+ }
+ }
+ else if (strcmp(env, "warn") == 0) {
+ if (config->coerce_c_locale_warn < 0) {
+ config->coerce_c_locale_warn = 1;
+ }
+ }
+ else {
+ if (config->coerce_c_locale < 0) {
+ config->coerce_c_locale = 1;
+ }
+ }
+ }
+
+ /* Test if coerce_c_locale equals to -1 or equals to 1:
+ PYTHONCOERCECLOCALE=1 doesn't imply that the C locale is always coerced.
+ It is only coerced if if the LC_CTYPE locale is "C". */
+ if (config->coerce_c_locale < 0 || config->coerce_c_locale == 1) {
+ /* The C locale enables the C locale coercion (PEP 538) */
+ if (_Py_LegacyLocaleDetected(0)) {
+ config->coerce_c_locale = 2;
+ }
+ else {
+ config->coerce_c_locale = 0;
+ }
+ }
+
+ if (config->coerce_c_locale_warn < 0) {
+ config->coerce_c_locale_warn = 0;
+ }
+}
+
+
+static PyStatus
+preconfig_init_allocator(PyPreConfig *config)
+{
+ if (config->allocator == PYMEM_ALLOCATOR_NOT_SET) {
+ /* bpo-34247. The PYTHONMALLOC environment variable has the priority
+ over PYTHONDEV env var and "-X dev" command line option.
+ For example, PYTHONMALLOC=malloc PYTHONDEVMODE=1 sets the memory
+ allocators to "malloc" (and not to "debug"). */
+ const char *envvar = _Py_GetEnv(config->use_environment, "PYTHONMALLOC");
+ if (envvar) {
+ PyMemAllocatorName name;
+ if (_PyMem_GetAllocatorName(envvar, &name) < 0) {
+ return _PyStatus_ERR("PYTHONMALLOC: unknown allocator");
+ }
+ config->allocator = (int)name;
+ }
+ }
+
+ if (config->dev_mode && config->allocator == PYMEM_ALLOCATOR_NOT_SET) {
+ config->allocator = PYMEM_ALLOCATOR_DEBUG;
+ }
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+preconfig_read(PyPreConfig *config, _PyPreCmdline *cmdline)
+{
+ PyStatus status;
+
+ status = _PyPreCmdline_Read(cmdline, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ precmdline_set_preconfig(cmdline, config);
+
+ /* legacy_windows_fs_encoding, coerce_c_locale, utf8_mode */
+#ifdef MS_WINDOWS
+ _Py_get_env_flag(config->use_environment,
+ &config->legacy_windows_fs_encoding,
+ "PYTHONLEGACYWINDOWSFSENCODING");
+#endif
+
+ preconfig_init_coerce_c_locale(config);
+
+ status = preconfig_init_utf8_mode(config, cmdline);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ /* allocator */
+ status = preconfig_init_allocator(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ assert(config->coerce_c_locale >= 0);
+ assert(config->coerce_c_locale_warn >= 0);
+#ifdef MS_WINDOWS
+ assert(config->legacy_windows_fs_encoding >= 0);
+#endif
+ assert(config->utf8_mode >= 0);
+ assert(config->isolated >= 0);
+ assert(config->use_environment >= 0);
+ assert(config->dev_mode >= 0);
+
+ return _PyStatus_OK();
+}
+
+
+/* Read the configuration from:
+
+ - command line arguments
+ - environment variables
+ - Py_xxx global configuration variables
+ - the LC_CTYPE locale */
+PyStatus
+_PyPreConfig_Read(PyPreConfig *config, const _PyArgv *args)
+{
+ PyStatus status;
+
+ status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ preconfig_get_global_vars(config);
+
+ /* Copy LC_CTYPE locale, since it's modified later */
+ const char *loc = setlocale(LC_CTYPE, NULL);
+ if (loc == NULL) {
+ return _PyStatus_ERR("failed to LC_CTYPE locale");
+ }
+ char *init_ctype_locale = _PyMem_RawStrdup(loc);
+ if (init_ctype_locale == NULL) {
+ return _PyStatus_NO_MEMORY();
+ }
+
+ /* Save the config to be able to restore it if encodings change */
+ PyPreConfig save_config;
+
+ status = _PyPreConfig_InitFromPreConfig(&save_config, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ /* Set LC_CTYPE to the user preferred locale */
+ if (config->configure_locale) {
+ _Py_SetLocaleFromEnv(LC_CTYPE);
+ }
+
+ _PyPreCmdline cmdline = _PyPreCmdline_INIT;
+ int init_utf8_mode = Py_UTF8Mode;
+#ifdef MS_WINDOWS
+ int init_legacy_encoding = Py_LegacyWindowsFSEncodingFlag;
+#endif
+
+ if (args) {
+ status = _PyPreCmdline_SetArgv(&cmdline, args);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+ }
+
+ int locale_coerced = 0;
+ int loops = 0;
+
+ while (1) {
+ int utf8_mode = config->utf8_mode;
+
+ /* Watchdog to prevent an infinite loop */
+ loops++;
+ if (loops == 3) {
+ status = _PyStatus_ERR("Encoding changed twice while "
+ "reading the configuration");
+ goto done;
+ }
+
+ /* bpo-34207: Py_DecodeLocale() and Py_EncodeLocale() depend
+ on Py_UTF8Mode and Py_LegacyWindowsFSEncodingFlag. */
+ Py_UTF8Mode = config->utf8_mode;
+#ifdef MS_WINDOWS
+ Py_LegacyWindowsFSEncodingFlag = config->legacy_windows_fs_encoding;
+#endif
+
+ status = preconfig_read(config, &cmdline);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ /* The legacy C locale assumes ASCII as the default text encoding, which
+ * causes problems not only for the CPython runtime, but also other
+ * components like GNU readline.
+ *
+ * Accordingly, when the CLI detects it, it attempts to coerce it to a
+ * more capable UTF-8 based alternative.
+ *
+ * See the documentation of the PYTHONCOERCECLOCALE setting for more
+ * details.
+ */
+ int encoding_changed = 0;
+ if (config->coerce_c_locale && !locale_coerced) {
+ locale_coerced = 1;
+ _Py_CoerceLegacyLocale(0);
+ encoding_changed = 1;
+ }
+
+ if (utf8_mode == -1) {
+ if (config->utf8_mode == 1) {
+ /* UTF-8 Mode enabled */
+ encoding_changed = 1;
+ }
+ }
+ else {
+ if (config->utf8_mode != utf8_mode) {
+ encoding_changed = 1;
+ }
+ }
+
+ if (!encoding_changed) {
+ break;
+ }
+
+ /* Reset the configuration before reading again the configuration,
+ just keep UTF-8 Mode value. */
+ int new_utf8_mode = config->utf8_mode;
+ int new_coerce_c_locale = config->coerce_c_locale;
+ preconfig_copy(config, &save_config);
+ config->utf8_mode = new_utf8_mode;
+ config->coerce_c_locale = new_coerce_c_locale;
+
+ /* The encoding changed: read again the configuration
+ with the new encoding */
+ }
+ status = _PyStatus_OK();
+
+done:
+ if (init_ctype_locale != NULL) {
+ setlocale(LC_CTYPE, init_ctype_locale);
+ PyMem_RawFree(init_ctype_locale);
+ }
+ Py_UTF8Mode = init_utf8_mode ;
+#ifdef MS_WINDOWS
+ Py_LegacyWindowsFSEncodingFlag = init_legacy_encoding;
+#endif
+ _PyPreCmdline_Clear(&cmdline);
+ return status;
+}
+
+
+/* Write the pre-configuration:
+
+ - set the memory allocators
+ - set Py_xxx global configuration variables
+ - set the LC_CTYPE locale (coerce C locale, PEP 538) and set the UTF-8 mode
+ (PEP 540)
+
+ The applied configuration is written into _PyRuntime.preconfig.
+ If the C locale cannot be coerced, set coerce_c_locale to 0.
+
+ Do nothing if called after Py_Initialize(): ignore the new
+ pre-configuration. */
+PyStatus
+_PyPreConfig_Write(const PyPreConfig *src_config)
+{
+ PyPreConfig config;
+
+ PyStatus status = _PyPreConfig_InitFromPreConfig(&config, src_config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (_PyRuntime.core_initialized) {
+ /* bpo-34008: Calling this functions after Py_Initialize() ignores
+ the new configuration. */
+ return _PyStatus_OK();
+ }
+
+ PyMemAllocatorName name = (PyMemAllocatorName)config.allocator;
+ if (name != PYMEM_ALLOCATOR_NOT_SET) {
+ if (_PyMem_SetupAllocators(name) < 0) {
+ return _PyStatus_ERR("Unknown PYTHONMALLOC allocator");
+ }
+ }
+
+ preconfig_set_global_vars(&config);
+
+ if (config.configure_locale) {
+ if (config.coerce_c_locale) {
+ if (!_Py_CoerceLegacyLocale(config.coerce_c_locale_warn)) {
+ /* C locale not coerced */
+ config.coerce_c_locale = 0;
+ }
+ }
+
+ /* Set LC_CTYPE to the user preferred locale */
+ _Py_SetLocaleFromEnv(LC_CTYPE);
+ }
+
+ /* Write the new pre-configuration into _PyRuntime */
+ preconfig_copy(&_PyRuntime.preconfig, &config);
+
+ return _PyStatus_OK();
+}
diff --git a/contrib/tools/python3/src/Python/pyarena.c b/contrib/tools/python3/src/Python/pyarena.c
index 21b57c819d..aefb787e55 100644
--- a/contrib/tools/python3/src/Python/pyarena.c
+++ b/contrib/tools/python3/src/Python/pyarena.c
@@ -49,7 +49,7 @@ struct _arena {
*/
block *a_head;
- /* Pointer to the block currently used for allocation. Its
+ /* Pointer to the block currently used for allocation. Its
ab_next field should be NULL. If it is not-null after a
call to block_alloc(), it means a new block has been allocated
and a_cur should be reset to point it.
@@ -57,7 +57,7 @@ struct _arena {
block *a_cur;
/* A Python list object containing references to all the PyObject
- pointers associated with this arena. They will be DECREFed
+ pointers associated with this arena. They will be DECREFed
when the arena is freed.
*/
PyObject *a_objects;
@@ -160,7 +160,7 @@ PyArena_Free(PyArena *arena)
#if defined(Py_DEBUG)
/*
fprintf(stderr,
- "alloc=%zu size=%zu blocks=%zu block_size=%zu big=%zu objects=%zu\n",
+ "alloc=%zu size=%zu blocks=%zu block_size=%zu big=%zu objects=%zu\n",
arena->total_allocs, arena->total_size, arena->total_blocks,
arena->total_block_size, arena->total_big_blocks,
PyList_Size(arena->a_objects));
diff --git a/contrib/tools/python3/src/Python/pyhash.c b/contrib/tools/python3/src/Python/pyhash.c
index 674471aadd..3843079fbb 100644
--- a/contrib/tools/python3/src/Python/pyhash.c
+++ b/contrib/tools/python3/src/Python/pyhash.c
@@ -129,22 +129,22 @@ _Py_HashDouble(double v)
}
Py_hash_t
-_Py_HashPointerRaw(const void *p)
+_Py_HashPointerRaw(const void *p)
{
size_t y = (size_t)p;
/* bottom 3 or 4 bits are likely to be 0; rotate y by 4 to avoid
excessive hash collisions for dicts and sets */
y = (y >> 4) | (y << (8 * SIZEOF_VOID_P - 4));
- return (Py_hash_t)y;
-}
-
-Py_hash_t
-_Py_HashPointer(const void *p)
-{
- Py_hash_t x = _Py_HashPointerRaw(p);
- if (x == -1) {
+ return (Py_hash_t)y;
+}
+
+Py_hash_t
+_Py_HashPointer(const void *p)
+{
+ Py_hash_t x = _Py_HashPointerRaw(p);
+ if (x == -1) {
x = -2;
- }
+ }
return x;
}
@@ -372,7 +372,7 @@ static PyHash_FuncDef PyHash_Func = {fnv, "fnv", 8 * SIZEOF_PY_HASH_T,
static uint64_t
siphash24(uint64_t k0, uint64_t k1, const void *src, Py_ssize_t src_sz) {
uint64_t b = (uint64_t)src_sz << 56;
- const uint8_t *in = (const uint8_t*)src;
+ const uint8_t *in = (const uint8_t*)src;
uint64_t v0 = k0 ^ 0x736f6d6570736575ULL;
uint64_t v1 = k1 ^ 0x646f72616e646f6dULL;
@@ -426,13 +426,13 @@ _Py_KeyedHash(uint64_t key, const void *src, Py_ssize_t src_sz)
#if Py_HASH_ALGORITHM == Py_HASH_SIPHASH24
-static Py_hash_t
-pysiphash(const void *src, Py_ssize_t src_sz) {
- return (Py_hash_t)siphash24(
- _le64toh(_Py_HashSecret.siphash.k0), _le64toh(_Py_HashSecret.siphash.k1),
- src, src_sz);
-}
-
+static Py_hash_t
+pysiphash(const void *src, Py_ssize_t src_sz) {
+ return (Py_hash_t)siphash24(
+ _le64toh(_Py_HashSecret.siphash.k0), _le64toh(_Py_HashSecret.siphash.k1),
+ src, src_sz);
+}
+
static PyHash_FuncDef PyHash_Func = {pysiphash, "siphash24", 64, 128};
#endif
diff --git a/contrib/tools/python3/src/Python/pylifecycle.c b/contrib/tools/python3/src/Python/pylifecycle.c
index 8a348e9a63..7f591179ac 100644
--- a/contrib/tools/python3/src/Python/pylifecycle.c
+++ b/contrib/tools/python3/src/Python/pylifecycle.c
@@ -3,42 +3,42 @@
#include "Python.h"
#include "Python-ast.h"
-#undef Yield /* undefine macro conflicting with <winbase.h> */
-
-#include "pycore_ceval.h" // _PyEval_FiniGIL()
-#include "pycore_context.h" // _PyContext_Init()
-#include "pycore_fileutils.h" // _Py_ResetForceASCII()
-#include "pycore_import.h" // _PyImport_Cleanup()
-#include "pycore_initconfig.h" // _PyStatus_OK()
-#include "pycore_object.h" // _PyDebug_PrintTotalRefs()
-#include "pycore_pathconfig.h" // _PyConfig_WritePathConfig()
-#include "pycore_pyerrors.h" // _PyErr_Occurred()
-#include "pycore_pylifecycle.h" // _PyErr_Print()
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_sysmodule.h" // _PySys_ClearAuditHooks()
-#include "pycore_traceback.h" // _Py_DumpTracebackThreads()
-
-#include "grammar.h" // PyGrammar_RemoveAccelerators()
-#include <locale.h> // setlocale()
-
+#undef Yield /* undefine macro conflicting with <winbase.h> */
+
+#include "pycore_ceval.h" // _PyEval_FiniGIL()
+#include "pycore_context.h" // _PyContext_Init()
+#include "pycore_fileutils.h" // _Py_ResetForceASCII()
+#include "pycore_import.h" // _PyImport_Cleanup()
+#include "pycore_initconfig.h" // _PyStatus_OK()
+#include "pycore_object.h" // _PyDebug_PrintTotalRefs()
+#include "pycore_pathconfig.h" // _PyConfig_WritePathConfig()
+#include "pycore_pyerrors.h" // _PyErr_Occurred()
+#include "pycore_pylifecycle.h" // _PyErr_Print()
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_sysmodule.h" // _PySys_ClearAuditHooks()
+#include "pycore_traceback.h" // _Py_DumpTracebackThreads()
+
+#include "grammar.h" // PyGrammar_RemoveAccelerators()
+#include <locale.h> // setlocale()
+
#ifdef HAVE_SIGNAL_H
-# include <signal.h> // SIG_IGN
+# include <signal.h> // SIG_IGN
#endif
#ifdef HAVE_LANGINFO_H
-# include <langinfo.h> // nl_langinfo(CODESET)
+# include <langinfo.h> // nl_langinfo(CODESET)
#endif
#ifdef MS_WINDOWS
-# undef BYTE
-# include "windows.h"
+# undef BYTE
+# include "windows.h"
- extern PyTypeObject PyWindowsConsoleIO_Type;
-# define PyWindowsConsoleIO_Check(op) \
- (PyObject_TypeCheck((op), &PyWindowsConsoleIO_Type))
+ extern PyTypeObject PyWindowsConsoleIO_Type;
+# define PyWindowsConsoleIO_Check(op) \
+ (PyObject_TypeCheck((op), &PyWindowsConsoleIO_Type))
#endif
-
+
_Py_IDENTIFIER(flush);
_Py_IDENTIFIER(name);
_Py_IDENTIFIER(stdin);
@@ -52,20 +52,20 @@ extern "C" {
extern grammar _PyParser_Grammar; /* From graminit.c */
-/* Forward declarations */
-static PyStatus add_main_module(PyInterpreterState *interp);
-static PyStatus init_import_site(void);
-static PyStatus init_set_builtins_open(void);
-static PyStatus init_sys_streams(PyThreadState *tstate);
-static void call_py_exitfuncs(PyThreadState *tstate);
-static void wait_for_thread_shutdown(PyThreadState *tstate);
-static void call_ll_exitfuncs(_PyRuntimeState *runtime);
+/* Forward declarations */
+static PyStatus add_main_module(PyInterpreterState *interp);
+static PyStatus init_import_site(void);
+static PyStatus init_set_builtins_open(void);
+static PyStatus init_sys_streams(PyThreadState *tstate);
+static void call_py_exitfuncs(PyThreadState *tstate);
+static void wait_for_thread_shutdown(PyThreadState *tstate);
+static void call_ll_exitfuncs(_PyRuntimeState *runtime);
-int _Py_UnhandledKeyboardInterrupt = 0;
+int _Py_UnhandledKeyboardInterrupt = 0;
_PyRuntimeState _PyRuntime = _PyRuntimeState_INIT;
-static int runtime_initialized = 0;
+static int runtime_initialized = 0;
-PyStatus
+PyStatus
_PyRuntime_Initialize(void)
{
/* XXX We only initialize once in the process, which aligns with
@@ -74,10 +74,10 @@ _PyRuntime_Initialize(void)
every Py_Initialize() call, but doing so breaks the runtime.
This is because the runtime state is not properly finalized
currently. */
- if (runtime_initialized) {
- return _PyStatus_OK();
+ if (runtime_initialized) {
+ return _PyStatus_OK();
}
- runtime_initialized = 1;
+ runtime_initialized = 1;
return _PyRuntimeState_Init(&_PyRuntime);
}
@@ -86,13 +86,13 @@ void
_PyRuntime_Finalize(void)
{
_PyRuntimeState_Fini(&_PyRuntime);
- runtime_initialized = 0;
+ runtime_initialized = 0;
}
int
_Py_IsFinalizing(void)
{
- return _PyRuntimeState_GetFinalizing(&_PyRuntime) != NULL;
+ return _PyRuntimeState_GetFinalizing(&_PyRuntime) != NULL;
}
/* Hack to force loading of object files */
@@ -138,78 +138,78 @@ Py_IsInitialized(void)
*/
-static PyStatus
-init_importlib(PyThreadState *tstate, PyObject *sysmod)
+static PyStatus
+init_importlib(PyThreadState *tstate, PyObject *sysmod)
{
PyObject *importlib;
PyObject *impmod;
PyObject *value;
- PyInterpreterState *interp = tstate->interp;
- int verbose = _PyInterpreterState_GetConfig(interp)->verbose;
+ PyInterpreterState *interp = tstate->interp;
+ int verbose = _PyInterpreterState_GetConfig(interp)->verbose;
/* Import _importlib through its frozen version, _frozen_importlib. */
if (PyImport_ImportFrozenModule("_frozen_importlib") <= 0) {
- return _PyStatus_ERR("can't import _frozen_importlib");
+ return _PyStatus_ERR("can't import _frozen_importlib");
}
- else if (verbose) {
+ else if (verbose) {
PySys_FormatStderr("import _frozen_importlib # frozen\n");
}
importlib = PyImport_AddModule("_frozen_importlib");
if (importlib == NULL) {
- return _PyStatus_ERR("couldn't get _frozen_importlib from sys.modules");
+ return _PyStatus_ERR("couldn't get _frozen_importlib from sys.modules");
}
interp->importlib = importlib;
Py_INCREF(interp->importlib);
interp->import_func = PyDict_GetItemString(interp->builtins, "__import__");
if (interp->import_func == NULL)
- return _PyStatus_ERR("__import__ not found");
+ return _PyStatus_ERR("__import__ not found");
Py_INCREF(interp->import_func);
/* Import the _imp module */
impmod = PyInit__imp();
if (impmod == NULL) {
- return _PyStatus_ERR("can't import _imp");
+ return _PyStatus_ERR("can't import _imp");
}
- else if (verbose) {
+ else if (verbose) {
PySys_FormatStderr("import _imp # builtin\n");
}
if (_PyImport_SetModuleString("_imp", impmod) < 0) {
- return _PyStatus_ERR("can't save _imp to sys.modules");
+ return _PyStatus_ERR("can't save _imp to sys.modules");
}
/* Install importlib as the implementation of import */
value = PyObject_CallMethod(importlib, "_install", "OO", sysmod, impmod);
if (value == NULL) {
- _PyErr_Print(tstate);
- return _PyStatus_ERR("importlib install failed");
+ _PyErr_Print(tstate);
+ return _PyStatus_ERR("importlib install failed");
}
Py_DECREF(value);
Py_DECREF(impmod);
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
-static PyStatus
-init_importlib_external(PyThreadState *tstate)
+static PyStatus
+init_importlib_external(PyThreadState *tstate)
{
PyObject *value;
- value = PyObject_CallMethod(tstate->interp->importlib,
+ value = PyObject_CallMethod(tstate->interp->importlib,
"_install_external_importers", "");
if (value == NULL) {
- _PyErr_Print(tstate);
- return _PyStatus_ERR("external importer setup failed");
+ _PyErr_Print(tstate);
+ return _PyStatus_ERR("external importer setup failed");
}
Py_DECREF(value);
value = PyImport_ImportModule("__res");
if (value == NULL) {
PyErr_Print();
- return _PyStatus_ERR("can't import __res");
+ return _PyStatus_ERR("can't import __res");
}
Py_DECREF(value);
- return _PyImportZip_Init(tstate);
+ return _PyImportZip_Init(tstate);
}
/* Helper functions to better handle the legacy C locale
@@ -233,18 +233,18 @@ init_importlib_external(PyThreadState *tstate)
*/
int
-_Py_LegacyLocaleDetected(int warn)
+_Py_LegacyLocaleDetected(int warn)
{
#ifndef MS_WINDOWS
- if (!warn) {
- const char *locale_override = getenv("LC_ALL");
- if (locale_override != NULL && *locale_override != '\0') {
- /* Don't coerce C locale if the LC_ALL environment variable
- is set */
- return 0;
- }
- }
-
+ if (!warn) {
+ const char *locale_override = getenv("LC_ALL");
+ if (locale_override != NULL && *locale_override != '\0') {
+ /* Don't coerce C locale if the LC_ALL environment variable
+ is set */
+ return 0;
+ }
+ }
+
/* On non-Windows systems, the C locale is considered a legacy locale */
/* XXX (ncoghlan): some platforms (notably Mac OS X) don't appear to treat
* the POSIX locale as a simple alias for the C locale, so
@@ -258,7 +258,7 @@ _Py_LegacyLocaleDetected(int warn)
#endif
}
-#ifndef MS_WINDOWS
+#ifndef MS_WINDOWS
static const char *_C_LOCALE_WARNING =
"Python runtime initialized with LC_CTYPE=C (a locale with default ASCII "
"encoding), which may cause Unicode compatibility problems. Using C.UTF-8, "
@@ -266,14 +266,14 @@ static const char *_C_LOCALE_WARNING =
"locales is recommended.\n";
static void
-emit_stderr_warning_for_legacy_locale(_PyRuntimeState *runtime)
+emit_stderr_warning_for_legacy_locale(_PyRuntimeState *runtime)
{
- const PyPreConfig *preconfig = &runtime->preconfig;
- if (preconfig->coerce_c_locale_warn && _Py_LegacyLocaleDetected(1)) {
- PySys_FormatStderr("%s", _C_LOCALE_WARNING);
+ const PyPreConfig *preconfig = &runtime->preconfig;
+ if (preconfig->coerce_c_locale_warn && _Py_LegacyLocaleDetected(1)) {
+ PySys_FormatStderr("%s", _C_LOCALE_WARNING);
}
}
-#endif /* !defined(MS_WINDOWS) */
+#endif /* !defined(MS_WINDOWS) */
typedef struct _CandidateLocale {
const char *locale_name; /* The locale to try as a coercion target */
@@ -286,18 +286,18 @@ static _LocaleCoercionTarget _TARGET_LOCALES[] = {
{NULL}
};
-
-int
-_Py_IsLocaleCoercionTarget(const char *ctype_loc)
+
+int
+_Py_IsLocaleCoercionTarget(const char *ctype_loc)
{
- const _LocaleCoercionTarget *target = NULL;
- for (target = _TARGET_LOCALES; target->locale_name; target++) {
- if (strcmp(ctype_loc, target->locale_name) == 0) {
- return 1;
+ const _LocaleCoercionTarget *target = NULL;
+ for (target = _TARGET_LOCALES; target->locale_name; target++) {
+ if (strcmp(ctype_loc, target->locale_name) == 0) {
+ return 1;
}
- }
- return 0;
-}
+ }
+ return 0;
+}
#ifdef PY_COERCE_C_LOCALE
@@ -305,8 +305,8 @@ static const char C_LOCALE_COERCION_WARNING[] =
"Python detected LC_CTYPE=C: LC_CTYPE coerced to %.20s (set another locale "
"or PYTHONCOERCECLOCALE=0 to disable this locale coercion behavior).\n";
-static int
-_coerce_default_locale_settings(int warn, const _LocaleCoercionTarget *target)
+static int
+_coerce_default_locale_settings(int warn, const _LocaleCoercionTarget *target)
{
const char *newloc = target->locale_name;
@@ -317,28 +317,28 @@ _coerce_default_locale_settings(int warn, const _LocaleCoercionTarget *target)
if (setenv("LC_CTYPE", newloc, 1)) {
fprintf(stderr,
"Error setting LC_CTYPE, skipping C locale coercion\n");
- return 0;
+ return 0;
}
- if (warn) {
+ if (warn) {
fprintf(stderr, C_LOCALE_COERCION_WARNING, newloc);
}
/* Reconfigure with the overridden environment variables */
_Py_SetLocaleFromEnv(LC_ALL);
- return 1;
+ return 1;
}
#endif
-int
-_Py_CoerceLegacyLocale(int warn)
+int
+_Py_CoerceLegacyLocale(int warn)
{
- int coerced = 0;
+ int coerced = 0;
#ifdef PY_COERCE_C_LOCALE
char *oldloc = NULL;
oldloc = _PyMem_RawStrdup(setlocale(LC_CTYPE, NULL));
if (oldloc == NULL) {
- return coerced;
+ return coerced;
}
const char *locale_override = getenv("LC_ALL");
@@ -349,7 +349,7 @@ _Py_CoerceLegacyLocale(int warn)
const char *new_locale = setlocale(LC_CTYPE,
target->locale_name);
if (new_locale != NULL) {
-#if !defined(_Py_FORCE_UTF8_LOCALE) && defined(HAVE_LANGINFO_H) && defined(CODESET)
+#if !defined(_Py_FORCE_UTF8_LOCALE) && defined(HAVE_LANGINFO_H) && defined(CODESET)
/* Also ensure that nl_langinfo works in this locale */
char *codeset = nl_langinfo(CODESET);
if (!codeset || *codeset == '\0') {
@@ -360,7 +360,7 @@ _Py_CoerceLegacyLocale(int warn)
}
#endif
/* Successfully configured locale, so make it the default */
- coerced = _coerce_default_locale_settings(warn, target);
+ coerced = _coerce_default_locale_settings(warn, target);
goto done;
}
}
@@ -372,7 +372,7 @@ _Py_CoerceLegacyLocale(int warn)
done:
PyMem_RawFree(oldloc);
#endif
- return coerced;
+ return coerced;
}
/* _Py_SetLocaleFromEnv() is a wrapper around setlocale(category, "") to
@@ -441,7 +441,7 @@ _Py_SetLocaleFromEnv(int category)
/* Global initializations. Can be undone by Py_Finalize(). Don't
call this twice without an intervening Py_Finalize() call.
- Every call to Py_InitializeFromConfig, Py_Initialize or Py_InitializeEx
+ Every call to Py_InitializeFromConfig, Py_Initialize or Py_InitializeEx
must have a corresponding call to Py_Finalize.
Locking: you must hold the interpreter lock while calling these APIs.
@@ -450,56 +450,56 @@ _Py_SetLocaleFromEnv(int category)
*/
-static PyStatus
-pyinit_core_reconfigure(_PyRuntimeState *runtime,
- PyThreadState **tstate_p,
- const PyConfig *config)
+static PyStatus
+pyinit_core_reconfigure(_PyRuntimeState *runtime,
+ PyThreadState **tstate_p,
+ const PyConfig *config)
{
- PyStatus status;
- PyThreadState *tstate = _PyThreadState_GET();
- if (!tstate) {
- return _PyStatus_ERR("failed to read thread state");
+ PyStatus status;
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (!tstate) {
+ return _PyStatus_ERR("failed to read thread state");
}
- *tstate_p = tstate;
+ *tstate_p = tstate;
- PyInterpreterState *interp = tstate->interp;
- if (interp == NULL) {
- return _PyStatus_ERR("can't make main interpreter");
+ PyInterpreterState *interp = tstate->interp;
+ if (interp == NULL) {
+ return _PyStatus_ERR("can't make main interpreter");
}
- status = _PyConfig_Write(config, runtime);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ status = _PyConfig_Write(config, runtime);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
- status = _PyInterpreterState_SetConfig(interp, config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- config = _PyInterpreterState_GetConfig(interp);
+ status = _PyInterpreterState_SetConfig(interp, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ config = _PyInterpreterState_GetConfig(interp);
- if (config->_install_importlib) {
- status = _PyConfig_WritePathConfig(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ if (config->_install_importlib) {
+ status = _PyConfig_WritePathConfig(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
}
- return _PyStatus_OK();
-}
+ return _PyStatus_OK();
+}
-static PyStatus
-pycore_init_runtime(_PyRuntimeState *runtime,
- const PyConfig *config)
-{
- if (runtime->initialized) {
- return _PyStatus_ERR("main interpreter already initialized");
+static PyStatus
+pycore_init_runtime(_PyRuntimeState *runtime,
+ const PyConfig *config)
+{
+ if (runtime->initialized) {
+ return _PyStatus_ERR("main interpreter already initialized");
}
- PyStatus status = _PyConfig_Write(config, runtime);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ PyStatus status = _PyConfig_Write(config, runtime);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
/* Py_Finalize leaves _Py_Finalizing set in order to help daemon
* threads behave a little more gracefully at interpreter shutdown.
@@ -510,676 +510,676 @@ pycore_init_runtime(_PyRuntimeState *runtime,
* threads still hanging around from a previous Py_Initialize/Finalize
* pair :(
*/
- _PyRuntimeState_SetFinalizing(runtime, NULL);
-
- status = _Py_HashRandomization_Init(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = _PyInterpreterState_Enable(runtime);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-init_interp_create_gil(PyThreadState *tstate)
-{
- PyStatus status;
-
- /* finalize_interp_delete() comment explains why _PyEval_FiniGIL() is
- only called here. */
- _PyEval_FiniGIL(tstate);
-
- /* Auto-thread-state API */
- status = _PyGILState_Init(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- /* Create the GIL and take it */
- status = _PyEval_InitGIL(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-pycore_create_interpreter(_PyRuntimeState *runtime,
- const PyConfig *config,
- PyThreadState **tstate_p)
-{
- PyInterpreterState *interp = PyInterpreterState_New();
+ _PyRuntimeState_SetFinalizing(runtime, NULL);
+
+ status = _Py_HashRandomization_Init(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = _PyInterpreterState_Enable(runtime);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+init_interp_create_gil(PyThreadState *tstate)
+{
+ PyStatus status;
+
+ /* finalize_interp_delete() comment explains why _PyEval_FiniGIL() is
+ only called here. */
+ _PyEval_FiniGIL(tstate);
+
+ /* Auto-thread-state API */
+ status = _PyGILState_Init(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ /* Create the GIL and take it */
+ status = _PyEval_InitGIL(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+pycore_create_interpreter(_PyRuntimeState *runtime,
+ const PyConfig *config,
+ PyThreadState **tstate_p)
+{
+ PyInterpreterState *interp = PyInterpreterState_New();
if (interp == NULL) {
- return _PyStatus_ERR("can't make main interpreter");
+ return _PyStatus_ERR("can't make main interpreter");
}
- PyStatus status = _PyInterpreterState_SetConfig(interp, config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ PyStatus status = _PyInterpreterState_SetConfig(interp, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
PyThreadState *tstate = PyThreadState_New(interp);
- if (tstate == NULL) {
- return _PyStatus_ERR("can't make first thread");
- }
+ if (tstate == NULL) {
+ return _PyStatus_ERR("can't make first thread");
+ }
(void) PyThreadState_Swap(tstate);
- status = init_interp_create_gil(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- *tstate_p = tstate;
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-pycore_init_types(PyThreadState *tstate)
-{
- PyStatus status;
- int is_main_interp = _Py_IsMainInterpreter(tstate);
-
- status = _PyGC_Init(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (is_main_interp) {
- status = _PyTypes_Init();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
-
- if (!_PyLong_Init(tstate)) {
- return _PyStatus_ERR("can't init longs");
- }
-
- if (is_main_interp) {
- status = _PyUnicode_Init();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- status = _PyExc_Init();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (is_main_interp) {
- if (!_PyFloat_Init()) {
- return _PyStatus_ERR("can't init float");
- }
-
- if (_PyStructSequence_Init() < 0) {
- return _PyStatus_ERR("can't initialize structseq");
- }
- }
-
- status = _PyErr_Init();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (is_main_interp) {
- if (!_PyContext_Init()) {
- return _PyStatus_ERR("can't init context");
- }
- }
-
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-pycore_init_builtins(PyThreadState *tstate)
-{
- assert(!_PyErr_Occurred(tstate));
-
- PyObject *bimod = _PyBuiltin_Init(tstate);
- if (bimod == NULL) {
- goto error;
- }
-
- PyInterpreterState *interp = tstate->interp;
- if (_PyImport_FixupBuiltin(bimod, "builtins", interp->modules) < 0) {
- goto error;
- }
-
- PyObject *builtins_dict = PyModule_GetDict(bimod);
- if (builtins_dict == NULL) {
- goto error;
- }
- Py_INCREF(builtins_dict);
- interp->builtins = builtins_dict;
-
- PyStatus status = _PyBuiltins_AddExceptions(bimod);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- interp->builtins_copy = PyDict_Copy(interp->builtins);
- if (interp->builtins_copy == NULL) {
- goto error;
- }
- Py_DECREF(bimod);
-
- assert(!_PyErr_Occurred(tstate));
-
- return _PyStatus_OK();
-
-error:
- Py_XDECREF(bimod);
- return _PyStatus_ERR("can't initialize builtins module");
-}
-
-
-static PyStatus
-pycore_init_import_warnings(PyThreadState *tstate, PyObject *sysmod)
-{
- assert(!_PyErr_Occurred(tstate));
-
- PyStatus status = _PyImportHooks_Init(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
- if (_Py_IsMainInterpreter(tstate)) {
- /* Initialize _warnings. */
- status = _PyWarnings_InitState(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (config->_install_importlib) {
- status = _PyConfig_WritePathConfig(config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
- }
+ status = init_interp_create_gil(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ *tstate_p = tstate;
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+pycore_init_types(PyThreadState *tstate)
+{
+ PyStatus status;
+ int is_main_interp = _Py_IsMainInterpreter(tstate);
+
+ status = _PyGC_Init(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (is_main_interp) {
+ status = _PyTypes_Init();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+
+ if (!_PyLong_Init(tstate)) {
+ return _PyStatus_ERR("can't init longs");
+ }
+
+ if (is_main_interp) {
+ status = _PyUnicode_Init();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
+ status = _PyExc_Init();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (is_main_interp) {
+ if (!_PyFloat_Init()) {
+ return _PyStatus_ERR("can't init float");
+ }
+
+ if (_PyStructSequence_Init() < 0) {
+ return _PyStatus_ERR("can't initialize structseq");
+ }
+ }
+
+ status = _PyErr_Init();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (is_main_interp) {
+ if (!_PyContext_Init()) {
+ return _PyStatus_ERR("can't init context");
+ }
+ }
+
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+pycore_init_builtins(PyThreadState *tstate)
+{
+ assert(!_PyErr_Occurred(tstate));
+
+ PyObject *bimod = _PyBuiltin_Init(tstate);
+ if (bimod == NULL) {
+ goto error;
+ }
+
+ PyInterpreterState *interp = tstate->interp;
+ if (_PyImport_FixupBuiltin(bimod, "builtins", interp->modules) < 0) {
+ goto error;
+ }
+
+ PyObject *builtins_dict = PyModule_GetDict(bimod);
+ if (builtins_dict == NULL) {
+ goto error;
+ }
+ Py_INCREF(builtins_dict);
+ interp->builtins = builtins_dict;
+
+ PyStatus status = _PyBuiltins_AddExceptions(bimod);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ interp->builtins_copy = PyDict_Copy(interp->builtins);
+ if (interp->builtins_copy == NULL) {
+ goto error;
+ }
+ Py_DECREF(bimod);
+
+ assert(!_PyErr_Occurred(tstate));
+
+ return _PyStatus_OK();
+
+error:
+ Py_XDECREF(bimod);
+ return _PyStatus_ERR("can't initialize builtins module");
+}
+
+
+static PyStatus
+pycore_init_import_warnings(PyThreadState *tstate, PyObject *sysmod)
+{
+ assert(!_PyErr_Occurred(tstate));
+
+ PyStatus status = _PyImportHooks_Init(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
+ if (_Py_IsMainInterpreter(tstate)) {
+ /* Initialize _warnings. */
+ status = _PyWarnings_InitState(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (config->_install_importlib) {
+ status = _PyConfig_WritePathConfig(config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+ }
/* This call sets up builtin and frozen import support */
- if (config->_install_importlib) {
- status = init_importlib(tstate, sysmod);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ if (config->_install_importlib) {
+ status = init_importlib(tstate, sysmod);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
}
-
- assert(!_PyErr_Occurred(tstate));
-
- return _PyStatus_OK();
-}
-
-
-static PyStatus
-pycore_interp_init(PyThreadState *tstate)
-{
- PyStatus status;
- PyObject *sysmod = NULL;
-
- status = pycore_init_types(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = _PySys_Create(tstate, &sysmod);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = pycore_init_builtins(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- status = pycore_init_import_warnings(tstate, sysmod);
-
-done:
- /* sys.modules['sys'] contains a strong reference to the module */
- Py_XDECREF(sysmod);
- return status;
-}
-
-
-static PyStatus
-pyinit_config(_PyRuntimeState *runtime,
- PyThreadState **tstate_p,
- const PyConfig *config)
-{
- PyStatus status = pycore_init_runtime(runtime, config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- PyThreadState *tstate;
- status = pycore_create_interpreter(runtime, config, &tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- *tstate_p = tstate;
-
- status = pycore_interp_init(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
+
+ assert(!_PyErr_Occurred(tstate));
+
+ return _PyStatus_OK();
+}
+
+
+static PyStatus
+pycore_interp_init(PyThreadState *tstate)
+{
+ PyStatus status;
+ PyObject *sysmod = NULL;
+
+ status = pycore_init_types(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = _PySys_Create(tstate, &sysmod);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = pycore_init_builtins(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = pycore_init_import_warnings(tstate, sysmod);
+
+done:
+ /* sys.modules['sys'] contains a strong reference to the module */
+ Py_XDECREF(sysmod);
+ return status;
+}
+
+
+static PyStatus
+pyinit_config(_PyRuntimeState *runtime,
+ PyThreadState **tstate_p,
+ const PyConfig *config)
+{
+ PyStatus status = pycore_init_runtime(runtime, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ PyThreadState *tstate;
+ status = pycore_create_interpreter(runtime, config, &tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ *tstate_p = tstate;
+
+ status = pycore_interp_init(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
/* Only when we get here is the runtime core fully initialized */
- runtime->core_initialized = 1;
- return _PyStatus_OK();
-}
-
-
-PyStatus
-_Py_PreInitializeFromPyArgv(const PyPreConfig *src_config, const _PyArgv *args)
-{
- PyStatus status;
-
- if (src_config == NULL) {
- return _PyStatus_ERR("preinitialization config is NULL");
- }
-
- status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- _PyRuntimeState *runtime = &_PyRuntime;
-
- if (runtime->preinitialized) {
- /* If it's already configured: ignored the new configuration */
- return _PyStatus_OK();
- }
-
- /* Note: preinitialized remains 1 on error, it is only set to 0
- at exit on success. */
- runtime->preinitializing = 1;
-
- PyPreConfig config;
-
- status = _PyPreConfig_InitFromPreConfig(&config, src_config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = _PyPreConfig_Read(&config, args);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = _PyPreConfig_Write(&config);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- runtime->preinitializing = 0;
- runtime->preinitialized = 1;
- return _PyStatus_OK();
-}
-
-
-PyStatus
-Py_PreInitializeFromBytesArgs(const PyPreConfig *src_config, Py_ssize_t argc, char **argv)
-{
- _PyArgv args = {.use_bytes_argv = 1, .argc = argc, .bytes_argv = argv};
- return _Py_PreInitializeFromPyArgv(src_config, &args);
-}
-
-
-PyStatus
-Py_PreInitializeFromArgs(const PyPreConfig *src_config, Py_ssize_t argc, wchar_t **argv)
-{
- _PyArgv args = {.use_bytes_argv = 0, .argc = argc, .wchar_argv = argv};
- return _Py_PreInitializeFromPyArgv(src_config, &args);
-}
-
-
-PyStatus
-Py_PreInitialize(const PyPreConfig *src_config)
-{
- return _Py_PreInitializeFromPyArgv(src_config, NULL);
-}
-
-
-PyStatus
-_Py_PreInitializeFromConfig(const PyConfig *config,
- const _PyArgv *args)
-{
- assert(config != NULL);
-
- PyStatus status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- _PyRuntimeState *runtime = &_PyRuntime;
-
- if (runtime->preinitialized) {
- /* Already initialized: do nothing */
- return _PyStatus_OK();
- }
-
- PyPreConfig preconfig;
-
- _PyPreConfig_InitFromConfig(&preconfig, config);
-
- if (!config->parse_argv) {
- return Py_PreInitialize(&preconfig);
- }
- else if (args == NULL) {
- _PyArgv config_args = {
- .use_bytes_argv = 0,
- .argc = config->argv.length,
- .wchar_argv = config->argv.items};
- return _Py_PreInitializeFromPyArgv(&preconfig, &config_args);
- }
+ runtime->core_initialized = 1;
+ return _PyStatus_OK();
+}
+
+
+PyStatus
+_Py_PreInitializeFromPyArgv(const PyPreConfig *src_config, const _PyArgv *args)
+{
+ PyStatus status;
+
+ if (src_config == NULL) {
+ return _PyStatus_ERR("preinitialization config is NULL");
+ }
+
+ status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ _PyRuntimeState *runtime = &_PyRuntime;
+
+ if (runtime->preinitialized) {
+ /* If it's already configured: ignored the new configuration */
+ return _PyStatus_OK();
+ }
+
+ /* Note: preinitialized remains 1 on error, it is only set to 0
+ at exit on success. */
+ runtime->preinitializing = 1;
+
+ PyPreConfig config;
+
+ status = _PyPreConfig_InitFromPreConfig(&config, src_config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = _PyPreConfig_Read(&config, args);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = _PyPreConfig_Write(&config);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ runtime->preinitializing = 0;
+ runtime->preinitialized = 1;
+ return _PyStatus_OK();
+}
+
+
+PyStatus
+Py_PreInitializeFromBytesArgs(const PyPreConfig *src_config, Py_ssize_t argc, char **argv)
+{
+ _PyArgv args = {.use_bytes_argv = 1, .argc = argc, .bytes_argv = argv};
+ return _Py_PreInitializeFromPyArgv(src_config, &args);
+}
+
+
+PyStatus
+Py_PreInitializeFromArgs(const PyPreConfig *src_config, Py_ssize_t argc, wchar_t **argv)
+{
+ _PyArgv args = {.use_bytes_argv = 0, .argc = argc, .wchar_argv = argv};
+ return _Py_PreInitializeFromPyArgv(src_config, &args);
+}
+
+
+PyStatus
+Py_PreInitialize(const PyPreConfig *src_config)
+{
+ return _Py_PreInitializeFromPyArgv(src_config, NULL);
+}
+
+
+PyStatus
+_Py_PreInitializeFromConfig(const PyConfig *config,
+ const _PyArgv *args)
+{
+ assert(config != NULL);
+
+ PyStatus status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ _PyRuntimeState *runtime = &_PyRuntime;
+
+ if (runtime->preinitialized) {
+ /* Already initialized: do nothing */
+ return _PyStatus_OK();
+ }
+
+ PyPreConfig preconfig;
+
+ _PyPreConfig_InitFromConfig(&preconfig, config);
+
+ if (!config->parse_argv) {
+ return Py_PreInitialize(&preconfig);
+ }
+ else if (args == NULL) {
+ _PyArgv config_args = {
+ .use_bytes_argv = 0,
+ .argc = config->argv.length,
+ .wchar_argv = config->argv.items};
+ return _Py_PreInitializeFromPyArgv(&preconfig, &config_args);
+ }
else {
- return _Py_PreInitializeFromPyArgv(&preconfig, args);
- }
-}
-
-
-/* Begin interpreter initialization
- *
- * On return, the first thread and interpreter state have been created,
- * but the compiler, signal handling, multithreading and
- * multiple interpreter support, and codec infrastructure are not yet
- * available.
- *
- * The import system will support builtin and frozen modules only.
- * The only supported io is writing to sys.stderr
- *
- * If any operation invoked by this function fails, a fatal error is
- * issued and the function does not return.
- *
- * Any code invoked from this function should *not* assume it has access
- * to the Python C API (unless the API is explicitly listed as being
- * safe to call without calling Py_Initialize first)
- */
-static PyStatus
-pyinit_core(_PyRuntimeState *runtime,
- const PyConfig *src_config,
- PyThreadState **tstate_p)
-{
- PyStatus status;
-
- status = _Py_PreInitializeFromConfig(src_config, NULL);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- PyConfig config;
- _PyConfig_InitCompatConfig(&config);
-
- status = _PyConfig_Copy(&config, src_config);
- if (_PyStatus_EXCEPTION(status)) {
+ return _Py_PreInitializeFromPyArgv(&preconfig, args);
+ }
+}
+
+
+/* Begin interpreter initialization
+ *
+ * On return, the first thread and interpreter state have been created,
+ * but the compiler, signal handling, multithreading and
+ * multiple interpreter support, and codec infrastructure are not yet
+ * available.
+ *
+ * The import system will support builtin and frozen modules only.
+ * The only supported io is writing to sys.stderr
+ *
+ * If any operation invoked by this function fails, a fatal error is
+ * issued and the function does not return.
+ *
+ * Any code invoked from this function should *not* assume it has access
+ * to the Python C API (unless the API is explicitly listed as being
+ * safe to call without calling Py_Initialize first)
+ */
+static PyStatus
+pyinit_core(_PyRuntimeState *runtime,
+ const PyConfig *src_config,
+ PyThreadState **tstate_p)
+{
+ PyStatus status;
+
+ status = _Py_PreInitializeFromConfig(src_config, NULL);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ PyConfig config;
+ _PyConfig_InitCompatConfig(&config);
+
+ status = _PyConfig_Copy(&config, src_config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ status = PyConfig_Read(&config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
+
+ if (!runtime->core_initialized) {
+ status = pyinit_config(runtime, tstate_p, &config);
+ }
+ else {
+ status = pyinit_core_reconfigure(runtime, tstate_p, &config);
+ }
+ if (_PyStatus_EXCEPTION(status)) {
goto done;
}
- status = PyConfig_Read(&config);
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
- if (!runtime->core_initialized) {
- status = pyinit_config(runtime, tstate_p, &config);
- }
- else {
- status = pyinit_core_reconfigure(runtime, tstate_p, &config);
- }
- if (_PyStatus_EXCEPTION(status)) {
- goto done;
- }
-
done:
- PyConfig_Clear(&config);
- return status;
+ PyConfig_Clear(&config);
+ return status;
}
-
+
/* Py_Initialize() has already been called: update the main interpreter
configuration. Example of bpo-34008: Py_Main() called after
Py_Initialize(). */
-static PyStatus
-_Py_ReconfigureMainInterpreter(PyThreadState *tstate)
+static PyStatus
+_Py_ReconfigureMainInterpreter(PyThreadState *tstate)
{
- const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
-
- PyObject *argv = _PyWideStringList_AsList(&config->argv);
- if (argv == NULL) {
- return _PyStatus_NO_MEMORY(); \
+ const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
+
+ PyObject *argv = _PyWideStringList_AsList(&config->argv);
+ if (argv == NULL) {
+ return _PyStatus_NO_MEMORY(); \
+ }
+
+ int res = PyDict_SetItemString(tstate->interp->sysdict, "argv", argv);
+ Py_DECREF(argv);
+ if (res < 0) {
+ return _PyStatus_ERR("fail to set sys.argv");
}
-
- int res = PyDict_SetItemString(tstate->interp->sysdict, "argv", argv);
- Py_DECREF(argv);
- if (res < 0) {
- return _PyStatus_ERR("fail to set sys.argv");
- }
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
-
-static PyStatus
-init_interp_main(PyThreadState *tstate)
+
+static PyStatus
+init_interp_main(PyThreadState *tstate)
{
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
- PyStatus status;
- int is_main_interp = _Py_IsMainInterpreter(tstate);
- PyInterpreterState *interp = tstate->interp;
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ PyStatus status;
+ int is_main_interp = _Py_IsMainInterpreter(tstate);
+ PyInterpreterState *interp = tstate->interp;
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- if (!config->_install_importlib) {
+ if (!config->_install_importlib) {
/* Special mode for freeze_importlib: run with no import system
*
* This means anything which needs support from extension modules
* or pure Python code in the standard library won't work.
*/
- if (is_main_interp) {
- interp->runtime->initialized = 1;
- }
- return _PyStatus_OK();
+ if (is_main_interp) {
+ interp->runtime->initialized = 1;
+ }
+ return _PyStatus_OK();
}
- if (is_main_interp) {
- if (_PyTime_Init() < 0) {
- return _PyStatus_ERR("can't initialize time");
- }
+ if (is_main_interp) {
+ if (_PyTime_Init() < 0) {
+ return _PyStatus_ERR("can't initialize time");
+ }
}
- if (_PySys_InitMain(tstate) < 0) {
- return _PyStatus_ERR("can't finish initializing sys");
+ if (_PySys_InitMain(tstate) < 0) {
+ return _PyStatus_ERR("can't finish initializing sys");
}
- status = init_importlib_external(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ status = init_importlib_external(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
- if (is_main_interp) {
- /* initialize the faulthandler module */
- status = _PyFaulthandler_Init(config->faulthandler);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ if (is_main_interp) {
+ /* initialize the faulthandler module */
+ status = _PyFaulthandler_Init(config->faulthandler);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
}
- status = _PyUnicode_InitEncodings(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ status = _PyUnicode_InitEncodings(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
- if (is_main_interp) {
- if (_PySignal_Init(config->install_signal_handlers) < 0) {
- return _PyStatus_ERR("can't initialize signals");
- }
-
- if (_PyTraceMalloc_Init(config->tracemalloc) < 0) {
- return _PyStatus_ERR("can't initialize tracemalloc");
- }
+ if (is_main_interp) {
+ if (_PySignal_Init(config->install_signal_handlers) < 0) {
+ return _PyStatus_ERR("can't initialize signals");
+ }
+
+ if (_PyTraceMalloc_Init(config->tracemalloc) < 0) {
+ return _PyStatus_ERR("can't initialize tracemalloc");
+ }
}
- status = init_sys_streams(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ status = init_sys_streams(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
- status = init_set_builtins_open();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ status = init_set_builtins_open();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
- status = add_main_module(interp);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ status = add_main_module(interp);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (is_main_interp) {
+ /* Initialize warnings. */
+ PyObject *warnoptions = PySys_GetObject("warnoptions");
+ if (warnoptions != NULL && PyList_Size(warnoptions) > 0)
+ {
+ PyObject *warnings_module = PyImport_ImportModule("warnings");
+ if (warnings_module == NULL) {
+ fprintf(stderr, "'import warnings' failed; traceback:\n");
+ _PyErr_Print(tstate);
+ }
+ Py_XDECREF(warnings_module);
+ }
+
+ interp->runtime->initialized = 1;
}
- if (is_main_interp) {
- /* Initialize warnings. */
- PyObject *warnoptions = PySys_GetObject("warnoptions");
- if (warnoptions != NULL && PyList_Size(warnoptions) > 0)
- {
- PyObject *warnings_module = PyImport_ImportModule("warnings");
- if (warnings_module == NULL) {
- fprintf(stderr, "'import warnings' failed; traceback:\n");
- _PyErr_Print(tstate);
- }
- Py_XDECREF(warnings_module);
+ if (config->site_import) {
+ status = init_import_site();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
-
- interp->runtime->initialized = 1;
}
- if (config->site_import) {
- status = init_import_site();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ if (is_main_interp) {
+#ifndef MS_WINDOWS
+ emit_stderr_warning_for_legacy_locale(interp->runtime);
+#endif
+ }
+
+ assert(!_PyErr_Occurred(tstate));
+
+ return _PyStatus_OK();
+}
+
+
+/* Update interpreter state based on supplied configuration settings
+ *
+ * After calling this function, most of the restrictions on the interpreter
+ * are lifted. The only remaining incomplete settings are those related
+ * to the main module (sys.argv[0], __main__ metadata)
+ *
+ * Calling this when the interpreter is not initializing, is already
+ * initialized or without a valid current thread state is a fatal error.
+ * Other errors should be reported as normal Python exceptions with a
+ * non-zero return code.
+ */
+static PyStatus
+pyinit_main(PyThreadState *tstate)
+{
+ PyInterpreterState *interp = tstate->interp;
+ if (!interp->runtime->core_initialized) {
+ return _PyStatus_ERR("runtime core not initialized");
+ }
+
+ if (interp->runtime->initialized) {
+ return _Py_ReconfigureMainInterpreter(tstate);
+ }
+
+ PyStatus status = init_interp_main(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ return _PyStatus_OK();
+}
+
+
+PyStatus
+_Py_InitializeMain(void)
+{
+ PyStatus status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ _PyRuntimeState *runtime = &_PyRuntime;
+ PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ return pyinit_main(tstate);
+}
+
+
+PyStatus
+Py_InitializeFromConfig(const PyConfig *config)
+{
+ if (config == NULL) {
+ return _PyStatus_ERR("initialization config is NULL");
+ }
+
+ PyStatus status;
+
+ status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ _PyRuntimeState *runtime = &_PyRuntime;
+
+ PyThreadState *tstate = NULL;
+ status = pyinit_core(runtime, config, &tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ config = _PyInterpreterState_GetConfig(tstate->interp);
+
+ if (config->_init_main) {
+ status = pyinit_main(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
}
-
- if (is_main_interp) {
-#ifndef MS_WINDOWS
- emit_stderr_warning_for_legacy_locale(interp->runtime);
-#endif
- }
-
- assert(!_PyErr_Occurred(tstate));
-
- return _PyStatus_OK();
-}
-
-
-/* Update interpreter state based on supplied configuration settings
- *
- * After calling this function, most of the restrictions on the interpreter
- * are lifted. The only remaining incomplete settings are those related
- * to the main module (sys.argv[0], __main__ metadata)
- *
- * Calling this when the interpreter is not initializing, is already
- * initialized or without a valid current thread state is a fatal error.
- * Other errors should be reported as normal Python exceptions with a
- * non-zero return code.
- */
-static PyStatus
-pyinit_main(PyThreadState *tstate)
-{
- PyInterpreterState *interp = tstate->interp;
- if (!interp->runtime->core_initialized) {
- return _PyStatus_ERR("runtime core not initialized");
- }
-
- if (interp->runtime->initialized) {
- return _Py_ReconfigureMainInterpreter(tstate);
- }
-
- PyStatus status = init_interp_main(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- return _PyStatus_OK();
-}
-
-
-PyStatus
-_Py_InitializeMain(void)
-{
- PyStatus status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
- return pyinit_main(tstate);
-}
-
-
-PyStatus
-Py_InitializeFromConfig(const PyConfig *config)
-{
- if (config == NULL) {
- return _PyStatus_ERR("initialization config is NULL");
- }
-
- PyStatus status;
-
- status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- _PyRuntimeState *runtime = &_PyRuntime;
-
- PyThreadState *tstate = NULL;
- status = pyinit_core(runtime, config, &tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- config = _PyInterpreterState_GetConfig(tstate->interp);
-
- if (config->_init_main) {
- status = pyinit_main(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
- return _PyStatus_OK();
+
+ return _PyStatus_OK();
}
void
Py_InitializeEx(int install_sigs)
{
- PyStatus status;
-
- status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- Py_ExitStatusException(status);
- }
- _PyRuntimeState *runtime = &_PyRuntime;
-
- if (runtime->initialized) {
+ PyStatus status;
+
+ status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ Py_ExitStatusException(status);
+ }
+ _PyRuntimeState *runtime = &_PyRuntime;
+
+ if (runtime->initialized) {
/* bpo-33932: Calling Py_Initialize() twice does nothing. */
return;
}
- PyConfig config;
- _PyConfig_InitCompatConfig(&config);
-
+ PyConfig config;
+ _PyConfig_InitCompatConfig(&config);
+
config.install_signal_handlers = install_sigs;
- status = Py_InitializeFromConfig(&config);
- if (_PyStatus_EXCEPTION(status)) {
- Py_ExitStatusException(status);
+ status = Py_InitializeFromConfig(&config);
+ if (_PyStatus_EXCEPTION(status)) {
+ Py_ExitStatusException(status);
}
}
@@ -1217,7 +1217,7 @@ flush_std_files(void)
int status = 0;
if (fout != NULL && fout != Py_None && !file_is_closed(fout)) {
- tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
+ tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
if (tmp == NULL) {
PyErr_WriteUnraisable(fout);
status = -1;
@@ -1227,7 +1227,7 @@ flush_std_files(void)
}
if (ferr != NULL && ferr != Py_None && !file_is_closed(ferr)) {
- tmp = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
+ tmp = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
if (tmp == NULL) {
PyErr_Clear();
status = -1;
@@ -1253,161 +1253,161 @@ flush_std_files(void)
*/
-
-static void
-finalize_interp_types(PyThreadState *tstate, int is_main_interp)
-{
- if (is_main_interp) {
- /* Sundry finalizers */
- _PyAST_Fini();
- _PyFrame_Fini();
- _PyTuple_Fini();
- _PyList_Fini();
- _PySet_Fini();
- _PyBytes_Fini();
- }
-
- _PyLong_Fini(tstate);
-
- if (is_main_interp) {
- _PyFloat_Fini();
- _PyDict_Fini();
- _PySlice_Fini();
- }
-
- _PyWarnings_Fini(tstate->interp);
-
- if (is_main_interp) {
- _Py_HashRandomization_Fini();
- _PyArg_Fini();
- _PyAsyncGen_Fini();
- _PyContext_Fini();
- }
-
- /* Cleanup Unicode implementation */
- _PyUnicode_Fini(tstate);
-
- if (is_main_interp) {
- _Py_ClearFileSystemEncoding();
- }
-}
-
-
-static void
-finalize_interp_clear(PyThreadState *tstate)
-{
- int is_main_interp = _Py_IsMainInterpreter(tstate);
-
- /* Clear interpreter state and all thread states */
- PyInterpreterState_Clear(tstate->interp);
-
- /* Trigger a GC collection on subinterpreters*/
- if (!is_main_interp) {
- _PyGC_CollectNoFail();
- }
-
- /* Clear all loghooks */
- /* Both _PySys_Audit function and users still need PyObject, such as tuple.
- Call _PySys_ClearAuditHooks when PyObject available. */
- if (is_main_interp) {
- _PySys_ClearAuditHooks(tstate);
- }
-
- finalize_interp_types(tstate, is_main_interp);
-
- if (is_main_interp) {
- /* XXX Still allocated:
- - various static ad-hoc pointers to interned strings
- - int and float free list blocks
- - whatever various modules and libraries allocate
- */
-
- PyGrammar_RemoveAccelerators(&_PyParser_Grammar);
-
- _PyExc_Fini();
- }
-
- _PyGC_Fini(tstate);
-}
-
-
-static void
-finalize_interp_delete(PyThreadState *tstate)
-{
- if (_Py_IsMainInterpreter(tstate)) {
- /* Cleanup auto-thread-state */
- _PyGILState_Fini(tstate);
- }
-
- /* We can't call _PyEval_FiniGIL() here because destroying the GIL lock can
- fail when it is being awaited by another running daemon thread (see
- bpo-9901). Instead pycore_create_interpreter() destroys the previously
- created GIL, which ensures that Py_Initialize / Py_FinalizeEx can be
- called multiple times. */
-
- PyInterpreterState_Delete(tstate->interp);
-}
-
-
+
+static void
+finalize_interp_types(PyThreadState *tstate, int is_main_interp)
+{
+ if (is_main_interp) {
+ /* Sundry finalizers */
+ _PyAST_Fini();
+ _PyFrame_Fini();
+ _PyTuple_Fini();
+ _PyList_Fini();
+ _PySet_Fini();
+ _PyBytes_Fini();
+ }
+
+ _PyLong_Fini(tstate);
+
+ if (is_main_interp) {
+ _PyFloat_Fini();
+ _PyDict_Fini();
+ _PySlice_Fini();
+ }
+
+ _PyWarnings_Fini(tstate->interp);
+
+ if (is_main_interp) {
+ _Py_HashRandomization_Fini();
+ _PyArg_Fini();
+ _PyAsyncGen_Fini();
+ _PyContext_Fini();
+ }
+
+ /* Cleanup Unicode implementation */
+ _PyUnicode_Fini(tstate);
+
+ if (is_main_interp) {
+ _Py_ClearFileSystemEncoding();
+ }
+}
+
+
+static void
+finalize_interp_clear(PyThreadState *tstate)
+{
+ int is_main_interp = _Py_IsMainInterpreter(tstate);
+
+ /* Clear interpreter state and all thread states */
+ PyInterpreterState_Clear(tstate->interp);
+
+ /* Trigger a GC collection on subinterpreters*/
+ if (!is_main_interp) {
+ _PyGC_CollectNoFail();
+ }
+
+ /* Clear all loghooks */
+ /* Both _PySys_Audit function and users still need PyObject, such as tuple.
+ Call _PySys_ClearAuditHooks when PyObject available. */
+ if (is_main_interp) {
+ _PySys_ClearAuditHooks(tstate);
+ }
+
+ finalize_interp_types(tstate, is_main_interp);
+
+ if (is_main_interp) {
+ /* XXX Still allocated:
+ - various static ad-hoc pointers to interned strings
+ - int and float free list blocks
+ - whatever various modules and libraries allocate
+ */
+
+ PyGrammar_RemoveAccelerators(&_PyParser_Grammar);
+
+ _PyExc_Fini();
+ }
+
+ _PyGC_Fini(tstate);
+}
+
+
+static void
+finalize_interp_delete(PyThreadState *tstate)
+{
+ if (_Py_IsMainInterpreter(tstate)) {
+ /* Cleanup auto-thread-state */
+ _PyGILState_Fini(tstate);
+ }
+
+ /* We can't call _PyEval_FiniGIL() here because destroying the GIL lock can
+ fail when it is being awaited by another running daemon thread (see
+ bpo-9901). Instead pycore_create_interpreter() destroys the previously
+ created GIL, which ensures that Py_Initialize / Py_FinalizeEx can be
+ called multiple times. */
+
+ PyInterpreterState_Delete(tstate->interp);
+}
+
+
int
Py_FinalizeEx(void)
{
int status = 0;
- _PyRuntimeState *runtime = &_PyRuntime;
- if (!runtime->initialized) {
+ _PyRuntimeState *runtime = &_PyRuntime;
+ if (!runtime->initialized) {
return status;
- }
+ }
+
+ /* Get current thread state and interpreter pointer */
+ PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+
+ // Wrap up existing "threading"-module-created, non-daemon threads.
+ wait_for_thread_shutdown(tstate);
- /* Get current thread state and interpreter pointer */
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
-
- // Wrap up existing "threading"-module-created, non-daemon threads.
- wait_for_thread_shutdown(tstate);
+ // Make any remaining pending calls.
+ _Py_FinishPendingCalls(tstate);
- // Make any remaining pending calls.
- _Py_FinishPendingCalls(tstate);
-
/* The interpreter is still entirely intact at this point, and the
* exit funcs may be relying on that. In particular, if some thread
* or exit func is still waiting to do an import, the import machinery
* expects Py_IsInitialized() to return true. So don't say the
- * runtime is uninitialized until after the exit funcs have run.
+ * runtime is uninitialized until after the exit funcs have run.
* Note that Threading.py uses an exit func to do a join on all the
* threads created thru it, so this also protects pending imports in
* the threads created via Threading.
*/
- call_py_exitfuncs(tstate);
+ call_py_exitfuncs(tstate);
/* Copy the core config, PyInterpreterState_Delete() free
the core config memory */
#ifdef Py_REF_DEBUG
- int show_ref_count = tstate->interp->config.show_ref_count;
+ int show_ref_count = tstate->interp->config.show_ref_count;
#endif
#ifdef Py_TRACE_REFS
- int dump_refs = tstate->interp->config.dump_refs;
+ int dump_refs = tstate->interp->config.dump_refs;
#endif
#ifdef WITH_PYMALLOC
- int malloc_stats = tstate->interp->config.malloc_stats;
+ int malloc_stats = tstate->interp->config.malloc_stats;
#endif
- /* Remaining daemon threads will automatically exit
- when they attempt to take the GIL (ex: PyEval_RestoreThread()). */
- _PyRuntimeState_SetFinalizing(runtime, tstate);
- runtime->initialized = 0;
- runtime->core_initialized = 0;
-
- /* Destroy the state of all threads of the interpreter, except of the
- current thread. In practice, only daemon threads should still be alive,
- except if wait_for_thread_shutdown() has been cancelled by CTRL+C.
- Clear frames of other threads to call objects destructors. Destructors
- will be called in the current Python thread. Since
- _PyRuntimeState_SetFinalizing() has been called, no other Python thread
- can take the GIL at this point: if they try, they will exit
- immediately. */
- _PyThreadState_DeleteExcept(runtime, tstate);
-
+ /* Remaining daemon threads will automatically exit
+ when they attempt to take the GIL (ex: PyEval_RestoreThread()). */
+ _PyRuntimeState_SetFinalizing(runtime, tstate);
+ runtime->initialized = 0;
+ runtime->core_initialized = 0;
+
+ /* Destroy the state of all threads of the interpreter, except of the
+ current thread. In practice, only daemon threads should still be alive,
+ except if wait_for_thread_shutdown() has been cancelled by CTRL+C.
+ Clear frames of other threads to call objects destructors. Destructors
+ will be called in the current Python thread. Since
+ _PyRuntimeState_SetFinalizing() has been called, no other Python thread
+ can take the GIL at this point: if they try, they will exit
+ immediately. */
+ _PyThreadState_DeleteExcept(runtime, tstate);
+
/* Flush sys.stdout and sys.stderr */
if (flush_std_files() < 0) {
status = -1;
@@ -1431,11 +1431,11 @@ Py_FinalizeEx(void)
_PyGC_CollectIfEnabled();
/* Destroy all modules */
- _PyImport_Cleanup(tstate);
+ _PyImport_Cleanup(tstate);
+
+ /* Print debug stats if any */
+ _PyEval_Fini();
- /* Print debug stats if any */
- _PyEval_Fini();
-
/* Flush sys.stdout and sys.stderr (again, in case more was printed) */
if (flush_std_files() < 0) {
status = -1;
@@ -1493,8 +1493,8 @@ Py_FinalizeEx(void)
}
#endif /* Py_TRACE_REFS */
- finalize_interp_clear(tstate);
- finalize_interp_delete(tstate);
+ finalize_interp_clear(tstate);
+ finalize_interp_delete(tstate);
#ifdef Py_TRACE_REFS
/* Display addresses (& refcnts) of all objects still alive.
@@ -1511,7 +1511,7 @@ Py_FinalizeEx(void)
}
#endif
- call_ll_exitfuncs(runtime);
+ call_ll_exitfuncs(runtime);
_PyRuntime_Finalize();
return status;
@@ -1523,7 +1523,7 @@ Py_Finalize(void)
Py_FinalizeEx();
}
-
+
/* Create and initialize a new interpreter and thread, and return the
new thread. This requires that Py_Initialize() has been called
first.
@@ -1537,107 +1537,107 @@ Py_Finalize(void)
*/
-static PyStatus
-new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter)
+static PyStatus
+new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter)
{
- PyStatus status;
+ PyStatus status;
- status = _PyRuntime_Initialize();
- if (_PyStatus_EXCEPTION(status)) {
- return status;
+ status = _PyRuntime_Initialize();
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ _PyRuntimeState *runtime = &_PyRuntime;
+
+ if (!runtime->initialized) {
+ return _PyStatus_ERR("Py_Initialize must be called first");
}
- _PyRuntimeState *runtime = &_PyRuntime;
- if (!runtime->initialized) {
- return _PyStatus_ERR("Py_Initialize must be called first");
- }
-
/* Issue #10915, #15751: The GIL API doesn't work with multiple
interpreters: disable PyGILState_Check(). */
- runtime->gilstate.check_enabled = 0;
+ runtime->gilstate.check_enabled = 0;
- PyInterpreterState *interp = PyInterpreterState_New();
+ PyInterpreterState *interp = PyInterpreterState_New();
if (interp == NULL) {
*tstate_p = NULL;
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
- PyThreadState *tstate = PyThreadState_New(interp);
+ PyThreadState *tstate = PyThreadState_New(interp);
if (tstate == NULL) {
PyInterpreterState_Delete(interp);
*tstate_p = NULL;
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
- PyThreadState *save_tstate = PyThreadState_Swap(tstate);
+ PyThreadState *save_tstate = PyThreadState_Swap(tstate);
/* Copy the current interpreter config into the new interpreter */
- const PyConfig *config;
+ const PyConfig *config;
if (save_tstate != NULL) {
- config = _PyInterpreterState_GetConfig(save_tstate->interp);
- }
- else
- {
+ config = _PyInterpreterState_GetConfig(save_tstate->interp);
+ }
+ else
+ {
/* No current thread state, copy from the main interpreter */
PyInterpreterState *main_interp = PyInterpreterState_Main();
- config = _PyInterpreterState_GetConfig(main_interp);
+ config = _PyInterpreterState_GetConfig(main_interp);
+ }
+
+ status = _PyInterpreterState_SetConfig(interp, config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
}
+ interp->config._isolated_interpreter = isolated_subinterpreter;
- status = _PyInterpreterState_SetConfig(interp, config);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
+ status = init_interp_create_gil(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
}
- interp->config._isolated_interpreter = isolated_subinterpreter;
-
- status = init_interp_create_gil(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
+
+ status = pycore_interp_init(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
}
- status = pycore_interp_init(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
- }
-
- status = init_interp_main(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- goto error;
+ status = init_interp_main(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
}
*tstate_p = tstate;
- return _PyStatus_OK();
+ return _PyStatus_OK();
+
+error:
+ *tstate_p = NULL;
-error:
- *tstate_p = NULL;
-
/* Oops, it didn't work. Undo it all. */
PyErr_PrintEx(0);
PyThreadState_Clear(tstate);
PyThreadState_Delete(tstate);
PyInterpreterState_Delete(interp);
- PyThreadState_Swap(save_tstate);
+ PyThreadState_Swap(save_tstate);
- return status;
+ return status;
}
PyThreadState *
-_Py_NewInterpreter(int isolated_subinterpreter)
+_Py_NewInterpreter(int isolated_subinterpreter)
{
- PyThreadState *tstate = NULL;
- PyStatus status = new_interpreter(&tstate, isolated_subinterpreter);
- if (_PyStatus_EXCEPTION(status)) {
- Py_ExitStatusException(status);
+ PyThreadState *tstate = NULL;
+ PyStatus status = new_interpreter(&tstate, isolated_subinterpreter);
+ if (_PyStatus_EXCEPTION(status)) {
+ Py_ExitStatusException(status);
}
return tstate;
}
-PyThreadState *
-Py_NewInterpreter(void)
-{
- return _Py_NewInterpreter(0);
-}
-
+PyThreadState *
+Py_NewInterpreter(void)
+{
+ return _Py_NewInterpreter(0);
+}
+
/* Delete an interpreter and its last thread. This requires that the
given thread state is current, that the thread has no remaining
frames, and that it is its interpreter's only remaining thread.
@@ -1655,53 +1655,53 @@ Py_EndInterpreter(PyThreadState *tstate)
{
PyInterpreterState *interp = tstate->interp;
- if (tstate != _PyThreadState_GET()) {
- Py_FatalError("thread is not current");
- }
- if (tstate->frame != NULL) {
- Py_FatalError("thread still has a frame");
- }
- interp->finalizing = 1;
+ if (tstate != _PyThreadState_GET()) {
+ Py_FatalError("thread is not current");
+ }
+ if (tstate->frame != NULL) {
+ Py_FatalError("thread still has a frame");
+ }
+ interp->finalizing = 1;
- // Wrap up existing "threading"-module-created, non-daemon threads.
- wait_for_thread_shutdown(tstate);
+ // Wrap up existing "threading"-module-created, non-daemon threads.
+ wait_for_thread_shutdown(tstate);
- call_py_exitfuncs(tstate);
+ call_py_exitfuncs(tstate);
- if (tstate != interp->tstate_head || tstate->next != NULL) {
- Py_FatalError("not the last thread");
- }
+ if (tstate != interp->tstate_head || tstate->next != NULL) {
+ Py_FatalError("not the last thread");
+ }
- _PyImport_Cleanup(tstate);
- finalize_interp_clear(tstate);
- finalize_interp_delete(tstate);
+ _PyImport_Cleanup(tstate);
+ finalize_interp_clear(tstate);
+ finalize_interp_delete(tstate);
}
/* Add the __main__ module */
-static PyStatus
+static PyStatus
add_main_module(PyInterpreterState *interp)
{
PyObject *m, *d, *loader, *ann_dict;
m = PyImport_AddModule("__main__");
if (m == NULL)
- return _PyStatus_ERR("can't create __main__ module");
+ return _PyStatus_ERR("can't create __main__ module");
d = PyModule_GetDict(m);
ann_dict = PyDict_New();
if ((ann_dict == NULL) ||
(PyDict_SetItemString(d, "__annotations__", ann_dict) < 0)) {
- return _PyStatus_ERR("Failed to initialize __main__.__annotations__");
+ return _PyStatus_ERR("Failed to initialize __main__.__annotations__");
}
Py_DECREF(ann_dict);
if (PyDict_GetItemString(d, "__builtins__") == NULL) {
PyObject *bimod = PyImport_ImportModule("builtins");
if (bimod == NULL) {
- return _PyStatus_ERR("Failed to retrieve builtins module");
+ return _PyStatus_ERR("Failed to retrieve builtins module");
}
if (PyDict_SetItemString(d, "__builtins__", bimod) < 0) {
- return _PyStatus_ERR("Failed to initialize __main__.__builtins__");
+ return _PyStatus_ERR("Failed to initialize __main__.__builtins__");
}
Py_DECREF(bimod);
}
@@ -1717,28 +1717,28 @@ add_main_module(PyInterpreterState *interp)
PyObject *loader = PyObject_GetAttrString(interp->importlib,
"BuiltinImporter");
if (loader == NULL) {
- return _PyStatus_ERR("Failed to retrieve BuiltinImporter");
+ return _PyStatus_ERR("Failed to retrieve BuiltinImporter");
}
if (PyDict_SetItemString(d, "__loader__", loader) < 0) {
- return _PyStatus_ERR("Failed to initialize __main__.__loader__");
+ return _PyStatus_ERR("Failed to initialize __main__.__loader__");
}
Py_DECREF(loader);
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
/* Import the site module (not into __main__ though) */
-static PyStatus
-init_import_site(void)
+static PyStatus
+init_import_site(void)
{
PyObject *m;
m = PyImport_ImportModule("site");
if (m == NULL) {
- return _PyStatus_ERR("Failed to import the site module");
+ return _PyStatus_ERR("Failed to import the site module");
}
Py_DECREF(m);
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
/* Check if a file descriptor is valid or not.
@@ -1746,42 +1746,42 @@ init_import_site(void)
static int
is_valid_fd(int fd)
{
-/* dup() is faster than fstat(): fstat() can require input/output operations,
- whereas dup() doesn't. There is a low risk of EMFILE/ENFILE at Python
- startup. Problem: dup() doesn't check if the file descriptor is valid on
- some platforms.
-
- bpo-30225: On macOS Tiger, when stdout is redirected to a pipe and the other
- side of the pipe is closed, dup(1) succeed, whereas fstat(1, &st) fails with
- EBADF. FreeBSD has similar issue (bpo-32849).
-
- Only use dup() on platforms where dup() is enough to detect invalid FD in
- corner cases: on Linux and Windows (bpo-32849). */
-#if defined(__linux__) || defined(MS_WINDOWS)
- if (fd < 0) {
- return 0;
- }
+/* dup() is faster than fstat(): fstat() can require input/output operations,
+ whereas dup() doesn't. There is a low risk of EMFILE/ENFILE at Python
+ startup. Problem: dup() doesn't check if the file descriptor is valid on
+ some platforms.
+
+ bpo-30225: On macOS Tiger, when stdout is redirected to a pipe and the other
+ side of the pipe is closed, dup(1) succeed, whereas fstat(1, &st) fails with
+ EBADF. FreeBSD has similar issue (bpo-32849).
+
+ Only use dup() on platforms where dup() is enough to detect invalid FD in
+ corner cases: on Linux and Windows (bpo-32849). */
+#if defined(__linux__) || defined(MS_WINDOWS)
+ if (fd < 0) {
+ return 0;
+ }
int fd2;
-
+
_Py_BEGIN_SUPPRESS_IPH
fd2 = dup(fd);
- if (fd2 >= 0) {
+ if (fd2 >= 0) {
close(fd2);
- }
+ }
_Py_END_SUPPRESS_IPH
-
- return (fd2 >= 0);
-#else
- struct stat st;
- return (fstat(fd, &st) == 0);
+
+ return (fd2 >= 0);
+#else
+ struct stat st;
+ return (fstat(fd, &st) == 0);
#endif
}
/* returns Py_None if the fd is not valid */
static PyObject*
-create_stdio(const PyConfig *config, PyObject* io,
+create_stdio(const PyConfig *config, PyObject* io,
int fd, int write_mode, const char* name,
- const wchar_t* encoding, const wchar_t* errors)
+ const wchar_t* encoding, const wchar_t* errors)
{
PyObject *buf = NULL, *stream = NULL, *text = NULL, *raw = NULL, *res;
const char* mode;
@@ -1792,7 +1792,7 @@ create_stdio(const PyConfig *config, PyObject* io,
_Py_IDENTIFIER(isatty);
_Py_IDENTIFIER(TextIOWrapper);
_Py_IDENTIFIER(mode);
- const int buffered_stdio = config->buffered_stdio;
+ const int buffered_stdio = config->buffered_stdio;
if (!is_valid_fd(fd))
Py_RETURN_NONE;
@@ -1802,7 +1802,7 @@ create_stdio(const PyConfig *config, PyObject* io,
depends on the presence of a read1() method which only exists on
buffered streams.
*/
- if (!buffered_stdio && write_mode)
+ if (!buffered_stdio && write_mode)
buffering = 0;
else
buffering = -1;
@@ -1810,10 +1810,10 @@ create_stdio(const PyConfig *config, PyObject* io,
mode = "wb";
else
mode = "rb";
- buf = _PyObject_CallMethodId(io, &PyId_open, "isiOOOO",
+ buf = _PyObject_CallMethodId(io, &PyId_open, "isiOOOO",
fd, mode, buffering,
Py_None, Py_None, /* encoding, errors */
- Py_None, Py_False); /* newline, closefd */
+ Py_None, Py_False); /* newline, closefd */
if (buf == NULL)
goto error;
@@ -1831,24 +1831,24 @@ create_stdio(const PyConfig *config, PyObject* io,
#ifdef MS_WINDOWS
/* Windows console IO is always UTF-8 encoded */
if (PyWindowsConsoleIO_Check(raw))
- encoding = L"utf-8";
+ encoding = L"utf-8";
#endif
text = PyUnicode_FromString(name);
if (text == NULL || _PyObject_SetAttrId(raw, &PyId_name, text) < 0)
goto error;
- res = _PyObject_CallMethodIdNoArgs(raw, &PyId_isatty);
+ res = _PyObject_CallMethodIdNoArgs(raw, &PyId_isatty);
if (res == NULL)
goto error;
isatty = PyObject_IsTrue(res);
Py_DECREF(res);
if (isatty == -1)
goto error;
- if (!buffered_stdio)
+ if (!buffered_stdio)
write_through = Py_True;
else
write_through = Py_False;
- if (buffered_stdio && (isatty || fd == fileno(stderr)))
+ if (buffered_stdio && (isatty || fd == fileno(stderr)))
line_buffering = Py_True;
else
line_buffering = Py_False;
@@ -1867,25 +1867,25 @@ create_stdio(const PyConfig *config, PyObject* io,
newline = "\n";
#endif
- PyObject *encoding_str = PyUnicode_FromWideChar(encoding, -1);
- if (encoding_str == NULL) {
- Py_CLEAR(buf);
- goto error;
- }
-
- PyObject *errors_str = PyUnicode_FromWideChar(errors, -1);
- if (errors_str == NULL) {
- Py_CLEAR(buf);
- Py_CLEAR(encoding_str);
- goto error;
- }
-
- stream = _PyObject_CallMethodId(io, &PyId_TextIOWrapper, "OOOsOO",
- buf, encoding_str, errors_str,
+ PyObject *encoding_str = PyUnicode_FromWideChar(encoding, -1);
+ if (encoding_str == NULL) {
+ Py_CLEAR(buf);
+ goto error;
+ }
+
+ PyObject *errors_str = PyUnicode_FromWideChar(errors, -1);
+ if (errors_str == NULL) {
+ Py_CLEAR(buf);
+ Py_CLEAR(encoding_str);
+ goto error;
+ }
+
+ stream = _PyObject_CallMethodId(io, &PyId_TextIOWrapper, "OOOsOO",
+ buf, encoding_str, errors_str,
newline, line_buffering, write_through);
Py_CLEAR(buf);
- Py_CLEAR(encoding_str);
- Py_CLEAR(errors_str);
+ Py_CLEAR(encoding_str);
+ Py_CLEAR(errors_str);
if (stream == NULL)
goto error;
@@ -1915,69 +1915,69 @@ error:
return NULL;
}
-/* Set builtins.open to io.OpenWrapper */
-static PyStatus
-init_set_builtins_open(void)
+/* Set builtins.open to io.OpenWrapper */
+static PyStatus
+init_set_builtins_open(void)
{
PyObject *iomod = NULL, *wrapper;
PyObject *bimod = NULL;
- PyStatus res = _PyStatus_OK();
-
- if (!(iomod = PyImport_ImportModule("io"))) {
- goto error;
- }
-
- if (!(bimod = PyImport_ImportModule("builtins"))) {
- goto error;
- }
-
- if (!(wrapper = PyObject_GetAttrString(iomod, "OpenWrapper"))) {
- goto error;
- }
-
- /* Set builtins.open */
- if (PyObject_SetAttrString(bimod, "open", wrapper) == -1) {
- Py_DECREF(wrapper);
- goto error;
- }
- Py_DECREF(wrapper);
- goto done;
-
-error:
- res = _PyStatus_ERR("can't initialize io.open");
-
-done:
- Py_XDECREF(bimod);
- Py_XDECREF(iomod);
- return res;
-}
-
-
-/* Initialize sys.stdin, stdout, stderr and builtins.open */
-static PyStatus
-init_sys_streams(PyThreadState *tstate)
-{
- PyObject *iomod = NULL;
+ PyStatus res = _PyStatus_OK();
+
+ if (!(iomod = PyImport_ImportModule("io"))) {
+ goto error;
+ }
+
+ if (!(bimod = PyImport_ImportModule("builtins"))) {
+ goto error;
+ }
+
+ if (!(wrapper = PyObject_GetAttrString(iomod, "OpenWrapper"))) {
+ goto error;
+ }
+
+ /* Set builtins.open */
+ if (PyObject_SetAttrString(bimod, "open", wrapper) == -1) {
+ Py_DECREF(wrapper);
+ goto error;
+ }
+ Py_DECREF(wrapper);
+ goto done;
+
+error:
+ res = _PyStatus_ERR("can't initialize io.open");
+
+done:
+ Py_XDECREF(bimod);
+ Py_XDECREF(iomod);
+ return res;
+}
+
+
+/* Initialize sys.stdin, stdout, stderr and builtins.open */
+static PyStatus
+init_sys_streams(PyThreadState *tstate)
+{
+ PyObject *iomod = NULL;
PyObject *m;
PyObject *std = NULL;
int fd;
PyObject * encoding_attr;
- PyStatus res = _PyStatus_OK();
- const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
-
- /* Check that stdin is not a directory
- Using shell redirection, you can redirect stdin to a directory,
- crashing the Python interpreter. Catch this common mistake here
- and output a useful error message. Note that under MS Windows,
- the shell already prevents that. */
-#ifndef MS_WINDOWS
- struct _Py_stat_struct sb;
- if (_Py_fstat_noraise(fileno(stdin), &sb) == 0 &&
- S_ISDIR(sb.st_mode)) {
- return _PyStatus_ERR("<stdin> is a directory, cannot continue");
- }
-#endif
-
+ PyStatus res = _PyStatus_OK();
+ const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
+
+ /* Check that stdin is not a directory
+ Using shell redirection, you can redirect stdin to a directory,
+ crashing the Python interpreter. Catch this common mistake here
+ and output a useful error message. Note that under MS Windows,
+ the shell already prevents that. */
+#ifndef MS_WINDOWS
+ struct _Py_stat_struct sb;
+ if (_Py_fstat_noraise(fileno(stdin), &sb) == 0 &&
+ S_ISDIR(sb.st_mode)) {
+ return _PyStatus_ERR("<stdin> is a directory, cannot continue");
+ }
+#endif
+
/* Hack to avoid a nasty recursion issue when Python is invoked
in verbose mode: pre-import the Latin-1 and UTF-8 codecs */
if ((m = PyImport_ImportModule("encodings.utf_8")) == NULL) {
@@ -2000,9 +2000,9 @@ init_sys_streams(PyThreadState *tstate)
* and fileno() may point to an invalid file descriptor. For example
* GUI apps don't have valid standard streams by default.
*/
- std = create_stdio(config, iomod, fd, 0, "<stdin>",
- config->stdio_encoding,
- config->stdio_errors);
+ std = create_stdio(config, iomod, fd, 0, "<stdin>",
+ config->stdio_encoding,
+ config->stdio_errors);
if (std == NULL)
goto error;
PySys_SetObject("__stdin__", std);
@@ -2011,9 +2011,9 @@ init_sys_streams(PyThreadState *tstate)
/* Set sys.stdout */
fd = fileno(stdout);
- std = create_stdio(config, iomod, fd, 1, "<stdout>",
- config->stdio_encoding,
- config->stdio_errors);
+ std = create_stdio(config, iomod, fd, 1, "<stdout>",
+ config->stdio_encoding,
+ config->stdio_errors);
if (std == NULL)
goto error;
PySys_SetObject("__stdout__", std);
@@ -2023,9 +2023,9 @@ init_sys_streams(PyThreadState *tstate)
#if 1 /* Disable this if you have trouble debugging bootstrap stuff */
/* Set sys.stderr, replaces the preliminary stderr */
fd = fileno(stderr);
- std = create_stdio(config, iomod, fd, 1, "<stderr>",
- config->stdio_encoding,
- L"backslashreplace");
+ std = create_stdio(config, iomod, fd, 1, "<stderr>",
+ config->stdio_encoding,
+ L"backslashreplace");
if (std == NULL)
goto error;
@@ -2040,7 +2040,7 @@ init_sys_streams(PyThreadState *tstate)
}
Py_DECREF(encoding_attr);
}
- _PyErr_Clear(tstate); /* Not a fatal error if codec isn't available */
+ _PyErr_Clear(tstate); /* Not a fatal error if codec isn't available */
if (PySys_SetObject("__stderr__", std) < 0) {
Py_DECREF(std);
@@ -2056,24 +2056,24 @@ init_sys_streams(PyThreadState *tstate)
goto done;
error:
- res = _PyStatus_ERR("can't initialize sys standard streams");
+ res = _PyStatus_ERR("can't initialize sys standard streams");
done:
- _Py_ClearStandardStreamEncoding();
+ _Py_ClearStandardStreamEncoding();
Py_XDECREF(iomod);
return res;
}
static void
-_Py_FatalError_DumpTracebacks(int fd, PyInterpreterState *interp,
- PyThreadState *tstate)
+_Py_FatalError_DumpTracebacks(int fd, PyInterpreterState *interp,
+ PyThreadState *tstate)
{
fputc('\n', stderr);
fflush(stderr);
/* display the current Python stack */
- _Py_DumpTracebackThreads(fd, interp, tstate);
+ _Py_DumpTracebackThreads(fd, interp, tstate);
}
/* Print the current exception (if an exception is set) with its traceback,
@@ -2085,13 +2085,13 @@ _Py_FatalError_DumpTracebacks(int fd, PyInterpreterState *interp,
Return 1 if the traceback was displayed, 0 otherwise. */
static int
-_Py_FatalError_PrintExc(PyThreadState *tstate)
+_Py_FatalError_PrintExc(PyThreadState *tstate)
{
PyObject *ferr, *res;
PyObject *exception, *v, *tb;
int has_tb;
- _PyErr_Fetch(tstate, &exception, &v, &tb);
+ _PyErr_Fetch(tstate, &exception, &v, &tb);
if (exception == NULL) {
/* No current exception */
return 0;
@@ -2104,7 +2104,7 @@ _Py_FatalError_PrintExc(PyThreadState *tstate)
return 0;
}
- _PyErr_NormalizeException(tstate, &exception, &v, &tb);
+ _PyErr_NormalizeException(tstate, &exception, &v, &tb);
if (tb == NULL) {
tb = Py_None;
Py_INCREF(tb);
@@ -2122,13 +2122,13 @@ _Py_FatalError_PrintExc(PyThreadState *tstate)
Py_XDECREF(tb);
/* sys.stderr may be buffered: call sys.stderr.flush() */
- res = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
- if (res == NULL) {
- _PyErr_Clear(tstate);
- }
- else {
+ res = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
+ if (res == NULL) {
+ _PyErr_Clear(tstate);
+ }
+ else {
Py_DECREF(res);
- }
+ }
return has_tb;
}
@@ -2170,108 +2170,108 @@ fatal_output_debug(const char *msg)
}
#endif
-
-static void
-fatal_error_dump_runtime(FILE *stream, _PyRuntimeState *runtime)
-{
- fprintf(stream, "Python runtime state: ");
- PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(runtime);
- if (finalizing) {
- fprintf(stream, "finalizing (tstate=%p)", finalizing);
- }
- else if (runtime->initialized) {
- fprintf(stream, "initialized");
- }
- else if (runtime->core_initialized) {
- fprintf(stream, "core initialized");
- }
- else if (runtime->preinitialized) {
- fprintf(stream, "preinitialized");
- }
- else if (runtime->preinitializing) {
- fprintf(stream, "preinitializing");
- }
- else {
- fprintf(stream, "unknown");
- }
- fprintf(stream, "\n");
- fflush(stream);
-}
-
-
-static inline void _Py_NO_RETURN
-fatal_error_exit(int status)
-{
- if (status < 0) {
-#if defined(MS_WINDOWS) && defined(_DEBUG)
- DebugBreak();
-#endif
- abort();
- }
- else {
- exit(status);
- }
-}
-
-
+
+static void
+fatal_error_dump_runtime(FILE *stream, _PyRuntimeState *runtime)
+{
+ fprintf(stream, "Python runtime state: ");
+ PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(runtime);
+ if (finalizing) {
+ fprintf(stream, "finalizing (tstate=%p)", finalizing);
+ }
+ else if (runtime->initialized) {
+ fprintf(stream, "initialized");
+ }
+ else if (runtime->core_initialized) {
+ fprintf(stream, "core initialized");
+ }
+ else if (runtime->preinitialized) {
+ fprintf(stream, "preinitialized");
+ }
+ else if (runtime->preinitializing) {
+ fprintf(stream, "preinitializing");
+ }
+ else {
+ fprintf(stream, "unknown");
+ }
+ fprintf(stream, "\n");
+ fflush(stream);
+}
+
+
+static inline void _Py_NO_RETURN
+fatal_error_exit(int status)
+{
+ if (status < 0) {
+#if defined(MS_WINDOWS) && defined(_DEBUG)
+ DebugBreak();
+#endif
+ abort();
+ }
+ else {
+ exit(status);
+ }
+}
+
+
static void _Py_NO_RETURN
-fatal_error(FILE *stream, int header, const char *prefix, const char *msg,
- int status)
+fatal_error(FILE *stream, int header, const char *prefix, const char *msg,
+ int status)
{
- const int fd = fileno(stream);
+ const int fd = fileno(stream);
static int reentrant = 0;
if (reentrant) {
/* Py_FatalError() caused a second fatal error.
Example: flush_std_files() raises a recursion error. */
- fatal_error_exit(status);
+ fatal_error_exit(status);
}
reentrant = 1;
- if (header) {
- fprintf(stream, "Fatal Python error: ");
- if (prefix) {
- fputs(prefix, stream);
- fputs(": ", stream);
- }
- if (msg) {
- fputs(msg, stream);
- }
- else {
- fprintf(stream, "<message not set>");
- }
- fputs("\n", stream);
- fflush(stream);
- }
-
- _PyRuntimeState *runtime = &_PyRuntime;
- fatal_error_dump_runtime(stream, runtime);
-
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
- PyInterpreterState *interp = NULL;
- if (tstate != NULL) {
- interp = tstate->interp;
- }
-
+ if (header) {
+ fprintf(stream, "Fatal Python error: ");
+ if (prefix) {
+ fputs(prefix, stream);
+ fputs(": ", stream);
+ }
+ if (msg) {
+ fputs(msg, stream);
+ }
+ else {
+ fprintf(stream, "<message not set>");
+ }
+ fputs("\n", stream);
+ fflush(stream);
+ }
+
+ _PyRuntimeState *runtime = &_PyRuntime;
+ fatal_error_dump_runtime(stream, runtime);
+
+ PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ PyInterpreterState *interp = NULL;
+ if (tstate != NULL) {
+ interp = tstate->interp;
+ }
+
/* Check if the current thread has a Python thread state
- and holds the GIL.
-
- tss_tstate is NULL if Py_FatalError() is called from a C thread which
- has no Python thread state.
-
- tss_tstate != tstate if the current Python thread does not hold the GIL.
- */
+ and holds the GIL.
+
+ tss_tstate is NULL if Py_FatalError() is called from a C thread which
+ has no Python thread state.
+
+ tss_tstate != tstate if the current Python thread does not hold the GIL.
+ */
PyThreadState *tss_tstate = PyGILState_GetThisThreadState();
- int has_tstate_and_gil = (tss_tstate != NULL && tss_tstate == tstate);
+ int has_tstate_and_gil = (tss_tstate != NULL && tss_tstate == tstate);
if (has_tstate_and_gil) {
/* If an exception is set, print the exception with its traceback */
- if (!_Py_FatalError_PrintExc(tss_tstate)) {
+ if (!_Py_FatalError_PrintExc(tss_tstate)) {
/* No exception is set, or an exception is set without traceback */
- _Py_FatalError_DumpTracebacks(fd, interp, tss_tstate);
+ _Py_FatalError_DumpTracebacks(fd, interp, tss_tstate);
}
}
else {
- _Py_FatalError_DumpTracebacks(fd, interp, tss_tstate);
+ _Py_FatalError_DumpTracebacks(fd, interp, tss_tstate);
}
/* The main purpose of faulthandler is to display the traceback.
@@ -2290,72 +2290,72 @@ fatal_error(FILE *stream, int header, const char *prefix, const char *msg,
fatal_output_debug(msg);
#endif /* MS_WINDOWS */
- fatal_error_exit(status);
+ fatal_error_exit(status);
}
-
-#undef Py_FatalError
-
+
+#undef Py_FatalError
+
void _Py_NO_RETURN
Py_FatalError(const char *msg)
{
- fatal_error(stderr, 1, NULL, msg, -1);
+ fatal_error(stderr, 1, NULL, msg, -1);
}
-
+
void _Py_NO_RETURN
-_Py_FatalErrorFunc(const char *func, const char *msg)
-{
- fatal_error(stderr, 1, func, msg, -1);
-}
-
-
-void _Py_NO_RETURN
-_Py_FatalErrorFormat(const char *func, const char *format, ...)
-{
- static int reentrant = 0;
- if (reentrant) {
- /* _Py_FatalErrorFormat() caused a second fatal error */
- fatal_error_exit(-1);
- }
- reentrant = 1;
-
- FILE *stream = stderr;
- fprintf(stream, "Fatal Python error: ");
- if (func) {
- fputs(func, stream);
- fputs(": ", stream);
- }
- fflush(stream);
-
- va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, format);
-#else
- va_start(vargs);
-#endif
- vfprintf(stream, format, vargs);
- va_end(vargs);
-
- fputs("\n", stream);
- fflush(stream);
-
- fatal_error(stream, 0, NULL, NULL, -1);
-}
-
-
-void _Py_NO_RETURN
-Py_ExitStatusException(PyStatus status)
-{
- if (_PyStatus_IS_EXIT(status)) {
- exit(status.exitcode);
- }
- else if (_PyStatus_IS_ERROR(status)) {
- fatal_error(stderr, 1, status.func, status.err_msg, 1);
- }
- else {
- Py_FatalError("Py_ExitStatusException() must not be called on success");
- }
+_Py_FatalErrorFunc(const char *func, const char *msg)
+{
+ fatal_error(stderr, 1, func, msg, -1);
+}
+
+
+void _Py_NO_RETURN
+_Py_FatalErrorFormat(const char *func, const char *format, ...)
+{
+ static int reentrant = 0;
+ if (reentrant) {
+ /* _Py_FatalErrorFormat() caused a second fatal error */
+ fatal_error_exit(-1);
+ }
+ reentrant = 1;
+
+ FILE *stream = stderr;
+ fprintf(stream, "Fatal Python error: ");
+ if (func) {
+ fputs(func, stream);
+ fputs(": ", stream);
+ }
+ fflush(stream);
+
+ va_list vargs;
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
+ vfprintf(stream, format, vargs);
+ va_end(vargs);
+
+ fputs("\n", stream);
+ fflush(stream);
+
+ fatal_error(stream, 0, NULL, NULL, -1);
+}
+
+
+void _Py_NO_RETURN
+Py_ExitStatusException(PyStatus status)
+{
+ if (_PyStatus_IS_EXIT(status)) {
+ exit(status.exitcode);
+ }
+ else if (_PyStatus_IS_ERROR(status)) {
+ fatal_error(stderr, 1, status.func, status.err_msg, 1);
+ }
+ else {
+ Py_FatalError("Py_ExitStatusException() must not be called on success");
+ }
}
/* Clean up and exit */
@@ -2363,7 +2363,7 @@ Py_ExitStatusException(PyStatus status)
/* For the atexit module. */
void _Py_PyAtExit(void (*func)(PyObject *), PyObject *module)
{
- PyInterpreterState *is = _PyInterpreterState_GET();
+ PyInterpreterState *is = _PyInterpreterState_GET();
/* Guard against API misuse (see bpo-17852) */
assert(is->pyexitfunc == NULL || is->pyexitfunc == func);
@@ -2373,14 +2373,14 @@ void _Py_PyAtExit(void (*func)(PyObject *), PyObject *module)
}
static void
-call_py_exitfuncs(PyThreadState *tstate)
+call_py_exitfuncs(PyThreadState *tstate)
{
- PyInterpreterState *interp = tstate->interp;
- if (interp->pyexitfunc == NULL)
+ PyInterpreterState *interp = tstate->interp;
+ if (interp->pyexitfunc == NULL)
return;
- (*interp->pyexitfunc)(interp->pyexitmodule);
- _PyErr_Clear(tstate);
+ (*interp->pyexitfunc)(interp->pyexitmodule);
+ _PyErr_Clear(tstate);
}
/* Wait until threading._shutdown completes, provided
@@ -2388,19 +2388,19 @@ call_py_exitfuncs(PyThreadState *tstate)
The shutdown routine will wait until all non-daemon
"threading" threads have completed. */
static void
-wait_for_thread_shutdown(PyThreadState *tstate)
+wait_for_thread_shutdown(PyThreadState *tstate)
{
_Py_IDENTIFIER(_shutdown);
PyObject *result;
PyObject *threading = _PyImport_GetModuleId(&PyId_threading);
if (threading == NULL) {
- if (_PyErr_Occurred(tstate)) {
- PyErr_WriteUnraisable(NULL);
- }
- /* else: threading not imported */
+ if (_PyErr_Occurred(tstate)) {
+ PyErr_WriteUnraisable(NULL);
+ }
+ /* else: threading not imported */
return;
}
- result = _PyObject_CallMethodIdNoArgs(threading, &PyId__shutdown);
+ result = _PyObject_CallMethodIdNoArgs(threading, &PyId__shutdown);
if (result == NULL) {
PyErr_WriteUnraisable(threading);
}
@@ -2420,22 +2420,22 @@ int Py_AtExit(void (*func)(void))
}
static void
-call_ll_exitfuncs(_PyRuntimeState *runtime)
+call_ll_exitfuncs(_PyRuntimeState *runtime)
{
- while (runtime->nexitfuncs > 0) {
- /* pop last function from the list */
- runtime->nexitfuncs--;
- void (*exitfunc)(void) = runtime->exitfuncs[runtime->nexitfuncs];
- runtime->exitfuncs[runtime->nexitfuncs] = NULL;
+ while (runtime->nexitfuncs > 0) {
+ /* pop last function from the list */
+ runtime->nexitfuncs--;
+ void (*exitfunc)(void) = runtime->exitfuncs[runtime->nexitfuncs];
+ runtime->exitfuncs[runtime->nexitfuncs] = NULL;
+
+ exitfunc();
+ }
- exitfunc();
- }
-
fflush(stdout);
fflush(stderr);
}
-void _Py_NO_RETURN
+void _Py_NO_RETURN
Py_Exit(int sts)
{
if (Py_FinalizeEx() < 0) {
@@ -2451,8 +2451,8 @@ Py_Exit(int sts)
* All of the code in this function must only use async-signal-safe functions,
* listed at `man 7 signal` or
* http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html.
- *
- * If this function is updated, update also _posix_spawn() of subprocess.py.
+ *
+ * If this function is updated, update also _posix_spawn() of subprocess.py.
*/
void
_Py_RestoreSignals(void)
diff --git a/contrib/tools/python3/src/Python/pymath.c b/contrib/tools/python3/src/Python/pymath.c
index 479a6a12d4..a08a0e7961 100644
--- a/contrib/tools/python3/src/Python/pymath.c
+++ b/contrib/tools/python3/src/Python/pymath.c
@@ -79,18 +79,18 @@ round(double x)
return copysign(y, x);
}
#endif /* HAVE_ROUND */
-
-static const unsigned int BitLengthTable[32] = {
- 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
-};
-
-unsigned int _Py_bit_length(unsigned long d) {
- unsigned int d_bits = 0;
- while (d >= 32) {
- d_bits += 6;
- d >>= 6;
- }
- d_bits += BitLengthTable[d];
- return d_bits;
-}
+
+static const unsigned int BitLengthTable[32] = {
+ 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
+};
+
+unsigned int _Py_bit_length(unsigned long d) {
+ unsigned int d_bits = 0;
+ while (d >= 32) {
+ d_bits += 6;
+ d >>= 6;
+ }
+ d_bits += BitLengthTable[d];
+ return d_bits;
+}
diff --git a/contrib/tools/python3/src/Python/pystate.c b/contrib/tools/python3/src/Python/pystate.c
index df351b853f..c3520c336a 100644
--- a/contrib/tools/python3/src/Python/pystate.c
+++ b/contrib/tools/python3/src/Python/pystate.c
@@ -2,13 +2,13 @@
/* Thread and interpreter state structures and their interfaces */
#include "Python.h"
-#include "pycore_ceval.h"
-#include "pycore_initconfig.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pylifecycle.h"
-#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_sysmodule.h"
+#include "pycore_ceval.h"
+#include "pycore_initconfig.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pylifecycle.h"
+#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_sysmodule.h"
/* --------------------------------------------------------------------------
CAUTION
@@ -33,37 +33,37 @@ to avoid the expense of doing their own locking).
extern "C" {
#endif
-#define _PyRuntimeGILState_GetThreadState(gilstate) \
- ((PyThreadState*)_Py_atomic_load_relaxed(&(gilstate)->tstate_current))
-#define _PyRuntimeGILState_SetThreadState(gilstate, value) \
- _Py_atomic_store_relaxed(&(gilstate)->tstate_current, \
- (uintptr_t)(value))
-
-/* Forward declarations */
-static PyThreadState *_PyGILState_GetThisThreadState(struct _gilstate_runtime_state *gilstate);
-static void _PyThreadState_Delete(PyThreadState *tstate, int check_current);
-
-
-static PyStatus
+#define _PyRuntimeGILState_GetThreadState(gilstate) \
+ ((PyThreadState*)_Py_atomic_load_relaxed(&(gilstate)->tstate_current))
+#define _PyRuntimeGILState_SetThreadState(gilstate, value) \
+ _Py_atomic_store_relaxed(&(gilstate)->tstate_current, \
+ (uintptr_t)(value))
+
+/* Forward declarations */
+static PyThreadState *_PyGILState_GetThisThreadState(struct _gilstate_runtime_state *gilstate);
+static void _PyThreadState_Delete(PyThreadState *tstate, int check_current);
+
+
+static PyStatus
_PyRuntimeState_Init_impl(_PyRuntimeState *runtime)
{
- /* We preserve the hook across init, because there is
- currently no public API to set it between runtime
- initialization and interpreter initialization. */
- void *open_code_hook = runtime->open_code_hook;
- void *open_code_userdata = runtime->open_code_userdata;
- _Py_AuditHookEntry *audit_hook_head = runtime->audit_hook_head;
-
+ /* We preserve the hook across init, because there is
+ currently no public API to set it between runtime
+ initialization and interpreter initialization. */
+ void *open_code_hook = runtime->open_code_hook;
+ void *open_code_userdata = runtime->open_code_userdata;
+ _Py_AuditHookEntry *audit_hook_head = runtime->audit_hook_head;
+
memset(runtime, 0, sizeof(*runtime));
- runtime->open_code_hook = open_code_hook;
- runtime->open_code_userdata = open_code_userdata;
- runtime->audit_hook_head = audit_hook_head;
-
- _PyEval_InitRuntimeState(&runtime->ceval);
+ runtime->open_code_hook = open_code_hook;
+ runtime->open_code_userdata = open_code_userdata;
+ runtime->audit_hook_head = audit_hook_head;
+
+ _PyEval_InitRuntimeState(&runtime->ceval);
+
+ PyPreConfig_InitPythonConfig(&runtime->preconfig);
- PyPreConfig_InitPythonConfig(&runtime->preconfig);
-
runtime->gilstate.check_enabled = 1;
/* A TSS key must be initialized with Py_tss_NEEDS_INIT
@@ -73,22 +73,22 @@ _PyRuntimeState_Init_impl(_PyRuntimeState *runtime)
runtime->interpreters.mutex = PyThread_allocate_lock();
if (runtime->interpreters.mutex == NULL) {
- return _PyStatus_ERR("Can't initialize threads for interpreter");
+ return _PyStatus_ERR("Can't initialize threads for interpreter");
}
runtime->interpreters.next_id = -1;
- runtime->xidregistry.mutex = PyThread_allocate_lock();
- if (runtime->xidregistry.mutex == NULL) {
- return _PyStatus_ERR("Can't initialize threads for cross-interpreter data registry");
- }
-
- // Set it to the ID of the main thread of the main interpreter.
- runtime->main_thread = PyThread_get_thread_ident();
-
- return _PyStatus_OK();
+ runtime->xidregistry.mutex = PyThread_allocate_lock();
+ if (runtime->xidregistry.mutex == NULL) {
+ return _PyStatus_ERR("Can't initialize threads for cross-interpreter data registry");
+ }
+
+ // Set it to the ID of the main thread of the main interpreter.
+ runtime->main_thread = PyThread_get_thread_ident();
+
+ return _PyStatus_OK();
}
-PyStatus
+PyStatus
_PyRuntimeState_Init(_PyRuntimeState *runtime)
{
/* Force default allocator, since _PyRuntimeState_Fini() must
@@ -96,10 +96,10 @@ _PyRuntimeState_Init(_PyRuntimeState *runtime)
PyMemAllocatorEx old_alloc;
_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- PyStatus status = _PyRuntimeState_Init_impl(runtime);
+ PyStatus status = _PyRuntimeState_Init_impl(runtime);
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- return status;
+ return status;
}
void
@@ -114,116 +114,116 @@ _PyRuntimeState_Fini(_PyRuntimeState *runtime)
runtime->interpreters.mutex = NULL;
}
- if (runtime->xidregistry.mutex != NULL) {
- PyThread_free_lock(runtime->xidregistry.mutex);
- runtime->xidregistry.mutex = NULL;
- }
-
+ if (runtime->xidregistry.mutex != NULL) {
+ PyThread_free_lock(runtime->xidregistry.mutex);
+ runtime->xidregistry.mutex = NULL;
+ }
+
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
}
-#ifdef HAVE_FORK
-/* This function is called from PyOS_AfterFork_Child to ensure that
- * newly created child processes do not share locks with the parent.
- */
-
-void
-_PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime)
-{
- // This was initially set in _PyRuntimeState_Init().
- runtime->main_thread = PyThread_get_thread_ident();
-
- /* Force default allocator, since _PyRuntimeState_Fini() must
- use the same allocator than this function. */
- PyMemAllocatorEx old_alloc;
- _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- int interp_mutex = _PyThread_at_fork_reinit(&runtime->interpreters.mutex);
- int xidregistry_mutex = _PyThread_at_fork_reinit(&runtime->xidregistry.mutex);
-
- PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-
- /* bpo-42540: id_mutex is freed by _PyInterpreterState_Delete, which does
- * not force the default allocator. */
- int main_interp_id_mutex = _PyThread_at_fork_reinit(&runtime->interpreters.main->id_mutex);
-
- if (interp_mutex < 0) {
- Py_FatalError("Can't initialize lock for runtime interpreters");
- }
-
- if (main_interp_id_mutex < 0) {
- Py_FatalError("Can't initialize ID lock for main interpreter");
- }
-
- if (xidregistry_mutex < 0) {
- Py_FatalError("Can't initialize lock for cross-interpreter data registry");
- }
-}
-#endif
-
-#define HEAD_LOCK(runtime) \
- PyThread_acquire_lock((runtime)->interpreters.mutex, WAIT_LOCK)
-#define HEAD_UNLOCK(runtime) \
- PyThread_release_lock((runtime)->interpreters.mutex)
-
-/* Forward declaration */
-static void _PyGILState_NoteThreadState(
- struct _gilstate_runtime_state *gilstate, PyThreadState* tstate);
-
-PyStatus
+#ifdef HAVE_FORK
+/* This function is called from PyOS_AfterFork_Child to ensure that
+ * newly created child processes do not share locks with the parent.
+ */
+
+void
+_PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime)
+{
+ // This was initially set in _PyRuntimeState_Init().
+ runtime->main_thread = PyThread_get_thread_ident();
+
+ /* Force default allocator, since _PyRuntimeState_Fini() must
+ use the same allocator than this function. */
+ PyMemAllocatorEx old_alloc;
+ _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ int interp_mutex = _PyThread_at_fork_reinit(&runtime->interpreters.mutex);
+ int xidregistry_mutex = _PyThread_at_fork_reinit(&runtime->xidregistry.mutex);
+
+ PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
+
+ /* bpo-42540: id_mutex is freed by _PyInterpreterState_Delete, which does
+ * not force the default allocator. */
+ int main_interp_id_mutex = _PyThread_at_fork_reinit(&runtime->interpreters.main->id_mutex);
+
+ if (interp_mutex < 0) {
+ Py_FatalError("Can't initialize lock for runtime interpreters");
+ }
+
+ if (main_interp_id_mutex < 0) {
+ Py_FatalError("Can't initialize ID lock for main interpreter");
+ }
+
+ if (xidregistry_mutex < 0) {
+ Py_FatalError("Can't initialize lock for cross-interpreter data registry");
+ }
+}
+#endif
+
+#define HEAD_LOCK(runtime) \
+ PyThread_acquire_lock((runtime)->interpreters.mutex, WAIT_LOCK)
+#define HEAD_UNLOCK(runtime) \
+ PyThread_release_lock((runtime)->interpreters.mutex)
+
+/* Forward declaration */
+static void _PyGILState_NoteThreadState(
+ struct _gilstate_runtime_state *gilstate, PyThreadState* tstate);
+
+PyStatus
_PyInterpreterState_Enable(_PyRuntimeState *runtime)
{
- struct pyinterpreters *interpreters = &runtime->interpreters;
- interpreters->next_id = 0;
+ struct pyinterpreters *interpreters = &runtime->interpreters;
+ interpreters->next_id = 0;
/* Py_Finalize() calls _PyRuntimeState_Fini() which clears the mutex.
Create a new mutex if needed. */
- if (interpreters->mutex == NULL) {
+ if (interpreters->mutex == NULL) {
/* Force default allocator, since _PyRuntimeState_Fini() must
use the same allocator than this function. */
PyMemAllocatorEx old_alloc;
_PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- interpreters->mutex = PyThread_allocate_lock();
+ interpreters->mutex = PyThread_allocate_lock();
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
- if (interpreters->mutex == NULL) {
- return _PyStatus_ERR("Can't initialize threads for interpreter");
+ if (interpreters->mutex == NULL) {
+ return _PyStatus_ERR("Can't initialize threads for interpreter");
}
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
PyInterpreterState *
PyInterpreterState_New(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- /* tstate is NULL when Py_InitializeFromConfig() calls
- PyInterpreterState_New() to create the main interpreter. */
- if (_PySys_Audit(tstate, "cpython.PyInterpreterState_New", NULL) < 0) {
- return NULL;
- }
+ PyThreadState *tstate = _PyThreadState_GET();
+ /* tstate is NULL when Py_InitializeFromConfig() calls
+ PyInterpreterState_New() to create the main interpreter. */
+ if (_PySys_Audit(tstate, "cpython.PyInterpreterState_New", NULL) < 0) {
+ return NULL;
+ }
- PyInterpreterState *interp = PyMem_RawCalloc(1, sizeof(PyInterpreterState));
+ PyInterpreterState *interp = PyMem_RawCalloc(1, sizeof(PyInterpreterState));
if (interp == NULL) {
return NULL;
}
interp->id_refcount = -1;
-
- /* Don't get runtime from tstate since tstate can be NULL */
- _PyRuntimeState *runtime = &_PyRuntime;
- interp->runtime = runtime;
-
- if (_PyEval_InitState(&interp->ceval) < 0) {
- goto out_of_memory;
- }
-
- _PyGC_InitState(&interp->gc);
- PyConfig_InitPythonConfig(&interp->config);
-
+
+ /* Don't get runtime from tstate since tstate can be NULL */
+ _PyRuntimeState *runtime = &_PyRuntime;
+ interp->runtime = runtime;
+
+ if (_PyEval_InitState(&interp->ceval) < 0) {
+ goto out_of_memory;
+ }
+
+ _PyGC_InitState(&interp->gc);
+ PyConfig_InitPythonConfig(&interp->config);
+
interp->eval_frame = _PyEval_EvalFrameDefault;
#ifdef HAVE_DLOPEN
#if HAVE_DECL_RTLD_NOW
@@ -233,70 +233,70 @@ PyInterpreterState_New(void)
#endif
#endif
- struct pyinterpreters *interpreters = &runtime->interpreters;
-
- HEAD_LOCK(runtime);
- if (interpreters->next_id < 0) {
+ struct pyinterpreters *interpreters = &runtime->interpreters;
+
+ HEAD_LOCK(runtime);
+ if (interpreters->next_id < 0) {
/* overflow or Py_Initialize() not called! */
- if (tstate != NULL) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "failed to get an interpreter ID");
- }
- PyMem_RawFree(interp);
+ if (tstate != NULL) {
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "failed to get an interpreter ID");
+ }
+ PyMem_RawFree(interp);
interp = NULL;
- }
- else {
- interp->id = interpreters->next_id;
- interpreters->next_id += 1;
- interp->next = interpreters->head;
- if (interpreters->main == NULL) {
- interpreters->main = interp;
- }
- interpreters->head = interp;
- }
- HEAD_UNLOCK(runtime);
-
- if (interp == NULL) {
- return NULL;
- }
-
+ }
+ else {
+ interp->id = interpreters->next_id;
+ interpreters->next_id += 1;
+ interp->next = interpreters->head;
+ if (interpreters->main == NULL) {
+ interpreters->main = interp;
+ }
+ interpreters->head = interp;
+ }
+ HEAD_UNLOCK(runtime);
+
+ if (interp == NULL) {
+ return NULL;
+ }
+
interp->tstate_next_unique_id = 0;
- interp->audit_hooks = NULL;
-
+ interp->audit_hooks = NULL;
+
return interp;
-
-out_of_memory:
- if (tstate != NULL) {
- _PyErr_NoMemory(tstate);
- }
-
- PyMem_RawFree(interp);
- return NULL;
-}
-
-
-void
-PyInterpreterState_Clear(PyInterpreterState *interp)
-{
- _PyRuntimeState *runtime = interp->runtime;
-
- /* Use the current Python thread state to call audit hooks,
- not the current Python thread state of 'interp'. */
- PyThreadState *tstate = _PyThreadState_GET();
- if (_PySys_Audit(tstate, "cpython.PyInterpreterState_Clear", NULL) < 0) {
- _PyErr_Clear(tstate);
- }
-
- HEAD_LOCK(runtime);
- for (PyThreadState *p = interp->tstate_head; p != NULL; p = p->next) {
+
+out_of_memory:
+ if (tstate != NULL) {
+ _PyErr_NoMemory(tstate);
+ }
+
+ PyMem_RawFree(interp);
+ return NULL;
+}
+
+
+void
+PyInterpreterState_Clear(PyInterpreterState *interp)
+{
+ _PyRuntimeState *runtime = interp->runtime;
+
+ /* Use the current Python thread state to call audit hooks,
+ not the current Python thread state of 'interp'. */
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (_PySys_Audit(tstate, "cpython.PyInterpreterState_Clear", NULL) < 0) {
+ _PyErr_Clear(tstate);
+ }
+
+ HEAD_LOCK(runtime);
+ for (PyThreadState *p = interp->tstate_head; p != NULL; p = p->next) {
PyThreadState_Clear(p);
- }
- HEAD_UNLOCK(runtime);
-
- Py_CLEAR(interp->audit_hooks);
-
- PyConfig_Clear(&interp->config);
+ }
+ HEAD_UNLOCK(runtime);
+
+ Py_CLEAR(interp->audit_hooks);
+
+ PyConfig_Clear(&interp->config);
Py_CLEAR(interp->codec_search_path);
Py_CLEAR(interp->codec_search_cache);
Py_CLEAR(interp->codec_error_registry);
@@ -307,68 +307,68 @@ PyInterpreterState_Clear(PyInterpreterState *interp)
Py_CLEAR(interp->builtins_copy);
Py_CLEAR(interp->importlib);
Py_CLEAR(interp->import_func);
- Py_CLEAR(interp->dict);
+ Py_CLEAR(interp->dict);
#ifdef HAVE_FORK
Py_CLEAR(interp->before_forkers);
Py_CLEAR(interp->after_forkers_parent);
Py_CLEAR(interp->after_forkers_child);
#endif
- if (_PyRuntimeState_GetFinalizing(runtime) == NULL) {
- _PyWarnings_Fini(interp);
- }
- // XXX Once we have one allocator per interpreter (i.e.
- // per-interpreter GC) we must ensure that all of the interpreter's
- // objects have been cleaned up at the point.
+ if (_PyRuntimeState_GetFinalizing(runtime) == NULL) {
+ _PyWarnings_Fini(interp);
+ }
+ // XXX Once we have one allocator per interpreter (i.e.
+ // per-interpreter GC) we must ensure that all of the interpreter's
+ // objects have been cleaned up at the point.
}
static void
-zapthreads(PyInterpreterState *interp, int check_current)
+zapthreads(PyInterpreterState *interp, int check_current)
{
- PyThreadState *tstate;
+ PyThreadState *tstate;
/* No need to lock the mutex here because this should only happen
when the threads are all really dead (XXX famous last words). */
- while ((tstate = interp->tstate_head) != NULL) {
- _PyThreadState_Delete(tstate, check_current);
+ while ((tstate = interp->tstate_head) != NULL) {
+ _PyThreadState_Delete(tstate, check_current);
}
}
-void
-PyInterpreterState_Delete(PyInterpreterState *interp)
+void
+PyInterpreterState_Delete(PyInterpreterState *interp)
{
- _PyRuntimeState *runtime = interp->runtime;
- struct pyinterpreters *interpreters = &runtime->interpreters;
- zapthreads(interp, 0);
-
- _PyEval_FiniState(&interp->ceval);
-
- /* Delete current thread. After this, many C API calls become crashy. */
- _PyThreadState_Swap(&runtime->gilstate, NULL);
-
- HEAD_LOCK(runtime);
+ _PyRuntimeState *runtime = interp->runtime;
+ struct pyinterpreters *interpreters = &runtime->interpreters;
+ zapthreads(interp, 0);
+
+ _PyEval_FiniState(&interp->ceval);
+
+ /* Delete current thread. After this, many C API calls become crashy. */
+ _PyThreadState_Swap(&runtime->gilstate, NULL);
+
+ HEAD_LOCK(runtime);
PyInterpreterState **p;
- for (p = &interpreters->head; ; p = &(*p)->next) {
- if (*p == NULL) {
- Py_FatalError("NULL interpreter");
- }
- if (*p == interp) {
+ for (p = &interpreters->head; ; p = &(*p)->next) {
+ if (*p == NULL) {
+ Py_FatalError("NULL interpreter");
+ }
+ if (*p == interp) {
break;
- }
+ }
+ }
+ if (interp->tstate_head != NULL) {
+ Py_FatalError("remaining threads");
}
- if (interp->tstate_head != NULL) {
- Py_FatalError("remaining threads");
- }
*p = interp->next;
-
- if (interpreters->main == interp) {
- interpreters->main = NULL;
- if (interpreters->head != NULL) {
- Py_FatalError("remaining subinterpreters");
- }
- }
- HEAD_UNLOCK(runtime);
-
+
+ if (interpreters->main == interp) {
+ interpreters->main = NULL;
+ if (interpreters->head != NULL) {
+ Py_FatalError("remaining subinterpreters");
+ }
+ }
+ HEAD_UNLOCK(runtime);
+
if (interp->id_mutex != NULL) {
PyThread_free_lock(interp->id_mutex);
}
@@ -376,63 +376,63 @@ PyInterpreterState_Delete(PyInterpreterState *interp)
}
-/*
- * Delete all interpreter states except the main interpreter. If there
- * is a current interpreter state, it *must* be the main interpreter.
- */
-void
-_PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime)
-{
- struct _gilstate_runtime_state *gilstate = &runtime->gilstate;
- struct pyinterpreters *interpreters = &runtime->interpreters;
-
- PyThreadState *tstate = _PyThreadState_Swap(gilstate, NULL);
- if (tstate != NULL && tstate->interp != interpreters->main) {
- Py_FatalError("not main interpreter");
- }
-
- HEAD_LOCK(runtime);
- PyInterpreterState *interp = interpreters->head;
- interpreters->head = NULL;
- while (interp != NULL) {
- if (interp == interpreters->main) {
- interpreters->main->next = NULL;
- interpreters->head = interp;
- interp = interp->next;
- continue;
- }
-
- PyInterpreterState_Clear(interp); // XXX must activate?
- zapthreads(interp, 1);
- if (interp->id_mutex != NULL) {
- PyThread_free_lock(interp->id_mutex);
- }
- PyInterpreterState *prev_interp = interp;
- interp = interp->next;
- PyMem_RawFree(prev_interp);
- }
- HEAD_UNLOCK(runtime);
-
- if (interpreters->head == NULL) {
- Py_FatalError("missing main interpreter");
- }
- _PyThreadState_Swap(gilstate, tstate);
-}
-
-
-PyInterpreterState *
-PyInterpreterState_Get(void)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _Py_EnsureTstateNotNULL(tstate);
- PyInterpreterState *interp = tstate->interp;
- if (interp == NULL) {
- Py_FatalError("no current interpreter");
- }
- return interp;
-}
-
-
+/*
+ * Delete all interpreter states except the main interpreter. If there
+ * is a current interpreter state, it *must* be the main interpreter.
+ */
+void
+_PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime)
+{
+ struct _gilstate_runtime_state *gilstate = &runtime->gilstate;
+ struct pyinterpreters *interpreters = &runtime->interpreters;
+
+ PyThreadState *tstate = _PyThreadState_Swap(gilstate, NULL);
+ if (tstate != NULL && tstate->interp != interpreters->main) {
+ Py_FatalError("not main interpreter");
+ }
+
+ HEAD_LOCK(runtime);
+ PyInterpreterState *interp = interpreters->head;
+ interpreters->head = NULL;
+ while (interp != NULL) {
+ if (interp == interpreters->main) {
+ interpreters->main->next = NULL;
+ interpreters->head = interp;
+ interp = interp->next;
+ continue;
+ }
+
+ PyInterpreterState_Clear(interp); // XXX must activate?
+ zapthreads(interp, 1);
+ if (interp->id_mutex != NULL) {
+ PyThread_free_lock(interp->id_mutex);
+ }
+ PyInterpreterState *prev_interp = interp;
+ interp = interp->next;
+ PyMem_RawFree(prev_interp);
+ }
+ HEAD_UNLOCK(runtime);
+
+ if (interpreters->head == NULL) {
+ Py_FatalError("missing main interpreter");
+ }
+ _PyThreadState_Swap(gilstate, tstate);
+}
+
+
+PyInterpreterState *
+PyInterpreterState_Get(void)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _Py_EnsureTstateNotNULL(tstate);
+ PyInterpreterState *interp = tstate->interp;
+ if (interp == NULL) {
+ Py_FatalError("no current interpreter");
+ }
+ return interp;
+}
+
+
int64_t
PyInterpreterState_GetID(PyInterpreterState *interp)
{
@@ -444,41 +444,41 @@ PyInterpreterState_GetID(PyInterpreterState *interp)
}
-static PyInterpreterState *
-interp_look_up_id(_PyRuntimeState *runtime, int64_t requested_id)
+static PyInterpreterState *
+interp_look_up_id(_PyRuntimeState *runtime, int64_t requested_id)
{
- PyInterpreterState *interp = runtime->interpreters.head;
+ PyInterpreterState *interp = runtime->interpreters.head;
while (interp != NULL) {
- int64_t id = PyInterpreterState_GetID(interp);
- if (id < 0) {
+ int64_t id = PyInterpreterState_GetID(interp);
+ if (id < 0) {
return NULL;
- }
- if (requested_id == id) {
+ }
+ if (requested_id == id) {
return interp;
- }
+ }
interp = PyInterpreterState_Next(interp);
}
return NULL;
}
-PyInterpreterState *
-_PyInterpreterState_LookUpID(int64_t requested_id)
-{
- PyInterpreterState *interp = NULL;
- if (requested_id >= 0) {
- _PyRuntimeState *runtime = &_PyRuntime;
- HEAD_LOCK(runtime);
- interp = interp_look_up_id(runtime, requested_id);
- HEAD_UNLOCK(runtime);
- }
- if (interp == NULL && !PyErr_Occurred()) {
- PyErr_Format(PyExc_RuntimeError,
- "unrecognized interpreter ID %lld", requested_id);
- }
- return interp;
-}
-
-
+PyInterpreterState *
+_PyInterpreterState_LookUpID(int64_t requested_id)
+{
+ PyInterpreterState *interp = NULL;
+ if (requested_id >= 0) {
+ _PyRuntimeState *runtime = &_PyRuntime;
+ HEAD_LOCK(runtime);
+ interp = interp_look_up_id(runtime, requested_id);
+ HEAD_UNLOCK(runtime);
+ }
+ if (interp == NULL && !PyErr_Occurred()) {
+ PyErr_Format(PyExc_RuntimeError,
+ "unrecognized interpreter ID %lld", requested_id);
+ }
+ return interp;
+}
+
+
int
_PyInterpreterState_IDInitref(PyInterpreterState *interp)
{
@@ -514,122 +514,122 @@ _PyInterpreterState_IDDecref(PyInterpreterState *interp)
if (interp->id_mutex == NULL) {
return;
}
- struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
+ struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
PyThread_acquire_lock(interp->id_mutex, WAIT_LOCK);
assert(interp->id_refcount != 0);
interp->id_refcount -= 1;
int64_t refcount = interp->id_refcount;
PyThread_release_lock(interp->id_mutex);
- if (refcount == 0 && interp->requires_idref) {
+ if (refcount == 0 && interp->requires_idref) {
// XXX Using the "head" thread isn't strictly correct.
PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
// XXX Possible GILState issues?
- PyThreadState *save_tstate = _PyThreadState_Swap(gilstate, tstate);
+ PyThreadState *save_tstate = _PyThreadState_Swap(gilstate, tstate);
Py_EndInterpreter(tstate);
- _PyThreadState_Swap(gilstate, save_tstate);
- }
-}
-
-int
-_PyInterpreterState_RequiresIDRef(PyInterpreterState *interp)
-{
- return interp->requires_idref;
-}
-
-void
-_PyInterpreterState_RequireIDRef(PyInterpreterState *interp, int required)
-{
- interp->requires_idref = required ? 1 : 0;
-}
-
-PyObject *
-_PyInterpreterState_GetMainModule(PyInterpreterState *interp)
-{
- if (interp->modules == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "interpreter not initialized");
- return NULL;
- }
- return PyMapping_GetItemString(interp->modules, "__main__");
-}
-
-PyObject *
-PyInterpreterState_GetDict(PyInterpreterState *interp)
-{
- if (interp->dict == NULL) {
- interp->dict = PyDict_New();
- if (interp->dict == NULL) {
- PyErr_Clear();
- }
- }
- /* Returning NULL means no per-interpreter dict is available. */
- return interp->dict;
-}
-
+ _PyThreadState_Swap(gilstate, save_tstate);
+ }
+}
+
+int
+_PyInterpreterState_RequiresIDRef(PyInterpreterState *interp)
+{
+ return interp->requires_idref;
+}
+
+void
+_PyInterpreterState_RequireIDRef(PyInterpreterState *interp, int required)
+{
+ interp->requires_idref = required ? 1 : 0;
+}
+
+PyObject *
+_PyInterpreterState_GetMainModule(PyInterpreterState *interp)
+{
+ if (interp->modules == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "interpreter not initialized");
+ return NULL;
+ }
+ return PyMapping_GetItemString(interp->modules, "__main__");
+}
+
+PyObject *
+PyInterpreterState_GetDict(PyInterpreterState *interp)
+{
+ if (interp->dict == NULL) {
+ interp->dict = PyDict_New();
+ if (interp->dict == NULL) {
+ PyErr_Clear();
+ }
+ }
+ /* Returning NULL means no per-interpreter dict is available. */
+ return interp->dict;
+}
+
static PyThreadState *
new_threadstate(PyInterpreterState *interp, int init)
{
- _PyRuntimeState *runtime = interp->runtime;
+ _PyRuntimeState *runtime = interp->runtime;
PyThreadState *tstate = (PyThreadState *)PyMem_RawMalloc(sizeof(PyThreadState));
- if (tstate == NULL) {
- return NULL;
- }
-
- tstate->interp = interp;
-
- tstate->frame = NULL;
- tstate->recursion_depth = 0;
- tstate->overflowed = 0;
- tstate->recursion_critical = 0;
- tstate->stackcheck_counter = 0;
- tstate->tracing = 0;
- tstate->use_tracing = 0;
- tstate->gilstate_counter = 0;
- tstate->async_exc = NULL;
- tstate->thread_id = PyThread_get_thread_ident();
-
- tstate->dict = NULL;
-
- tstate->curexc_type = NULL;
- tstate->curexc_value = NULL;
- tstate->curexc_traceback = NULL;
-
- tstate->exc_state.exc_type = NULL;
- tstate->exc_state.exc_value = NULL;
- tstate->exc_state.exc_traceback = NULL;
- tstate->exc_state.previous_item = NULL;
- tstate->exc_info = &tstate->exc_state;
-
- tstate->c_profilefunc = NULL;
- tstate->c_tracefunc = NULL;
- tstate->c_profileobj = NULL;
- tstate->c_traceobj = NULL;
-
- tstate->trash_delete_nesting = 0;
- tstate->trash_delete_later = NULL;
- tstate->on_delete = NULL;
- tstate->on_delete_data = NULL;
-
- tstate->coroutine_origin_tracking_depth = 0;
-
- tstate->async_gen_firstiter = NULL;
- tstate->async_gen_finalizer = NULL;
-
- tstate->context = NULL;
- tstate->context_ver = 1;
-
- if (init) {
- _PyThreadState_Init(tstate);
- }
-
- HEAD_LOCK(runtime);
- tstate->id = ++interp->tstate_next_unique_id;
- tstate->prev = NULL;
- tstate->next = interp->tstate_head;
- if (tstate->next)
- tstate->next->prev = tstate;
- interp->tstate_head = tstate;
- HEAD_UNLOCK(runtime);
+ if (tstate == NULL) {
+ return NULL;
+ }
+
+ tstate->interp = interp;
+
+ tstate->frame = NULL;
+ tstate->recursion_depth = 0;
+ tstate->overflowed = 0;
+ tstate->recursion_critical = 0;
+ tstate->stackcheck_counter = 0;
+ tstate->tracing = 0;
+ tstate->use_tracing = 0;
+ tstate->gilstate_counter = 0;
+ tstate->async_exc = NULL;
+ tstate->thread_id = PyThread_get_thread_ident();
+
+ tstate->dict = NULL;
+
+ tstate->curexc_type = NULL;
+ tstate->curexc_value = NULL;
+ tstate->curexc_traceback = NULL;
+
+ tstate->exc_state.exc_type = NULL;
+ tstate->exc_state.exc_value = NULL;
+ tstate->exc_state.exc_traceback = NULL;
+ tstate->exc_state.previous_item = NULL;
+ tstate->exc_info = &tstate->exc_state;
+
+ tstate->c_profilefunc = NULL;
+ tstate->c_tracefunc = NULL;
+ tstate->c_profileobj = NULL;
+ tstate->c_traceobj = NULL;
+
+ tstate->trash_delete_nesting = 0;
+ tstate->trash_delete_later = NULL;
+ tstate->on_delete = NULL;
+ tstate->on_delete_data = NULL;
+
+ tstate->coroutine_origin_tracking_depth = 0;
+
+ tstate->async_gen_firstiter = NULL;
+ tstate->async_gen_finalizer = NULL;
+
+ tstate->context = NULL;
+ tstate->context_ver = 1;
+
+ if (init) {
+ _PyThreadState_Init(tstate);
+ }
+
+ HEAD_LOCK(runtime);
+ tstate->id = ++interp->tstate_next_unique_id;
+ tstate->prev = NULL;
+ tstate->next = interp->tstate_head;
+ if (tstate->next)
+ tstate->next->prev = tstate;
+ interp->tstate_head = tstate;
+ HEAD_UNLOCK(runtime);
return tstate;
}
@@ -647,16 +647,16 @@ _PyThreadState_Prealloc(PyInterpreterState *interp)
}
void
-_PyThreadState_Init(PyThreadState *tstate)
+_PyThreadState_Init(PyThreadState *tstate)
{
- _PyGILState_NoteThreadState(&tstate->interp->runtime->gilstate, tstate);
+ _PyGILState_NoteThreadState(&tstate->interp->runtime->gilstate, tstate);
}
PyObject*
PyState_FindModule(struct PyModuleDef* module)
{
Py_ssize_t index = module->m_base.m_index;
- PyInterpreterState *state = _PyInterpreterState_GET();
+ PyInterpreterState *state = _PyInterpreterState_GET();
PyObject *res;
if (module->m_slots) {
return NULL;
@@ -672,35 +672,35 @@ PyState_FindModule(struct PyModuleDef* module)
}
int
-_PyState_AddModule(PyThreadState *tstate, PyObject* module, struct PyModuleDef* def)
+_PyState_AddModule(PyThreadState *tstate, PyObject* module, struct PyModuleDef* def)
{
if (!def) {
- assert(_PyErr_Occurred(tstate));
+ assert(_PyErr_Occurred(tstate));
return -1;
}
if (def->m_slots) {
- _PyErr_SetString(tstate,
- PyExc_SystemError,
- "PyState_AddModule called on module with slots");
+ _PyErr_SetString(tstate,
+ PyExc_SystemError,
+ "PyState_AddModule called on module with slots");
return -1;
}
-
- PyInterpreterState *interp = tstate->interp;
- if (!interp->modules_by_index) {
- interp->modules_by_index = PyList_New(0);
- if (!interp->modules_by_index) {
+
+ PyInterpreterState *interp = tstate->interp;
+ if (!interp->modules_by_index) {
+ interp->modules_by_index = PyList_New(0);
+ if (!interp->modules_by_index) {
return -1;
- }
+ }
}
-
- while (PyList_GET_SIZE(interp->modules_by_index) <= def->m_base.m_index) {
- if (PyList_Append(interp->modules_by_index, Py_None) < 0) {
+
+ while (PyList_GET_SIZE(interp->modules_by_index) <= def->m_base.m_index) {
+ if (PyList_Append(interp->modules_by_index, Py_None) < 0) {
return -1;
- }
- }
-
+ }
+ }
+
Py_INCREF(module);
- return PyList_SetItem(interp->modules_by_index,
+ return PyList_SetItem(interp->modules_by_index,
def->m_base.m_index, module);
}
@@ -708,98 +708,98 @@ int
PyState_AddModule(PyObject* module, struct PyModuleDef* def)
{
if (!def) {
- Py_FatalError("module definition is NULL");
+ Py_FatalError("module definition is NULL");
return -1;
}
-
- PyThreadState *tstate = _PyThreadState_GET();
- PyInterpreterState *interp = tstate->interp;
- Py_ssize_t index = def->m_base.m_index;
- if (interp->modules_by_index &&
- index < PyList_GET_SIZE(interp->modules_by_index) &&
- module == PyList_GET_ITEM(interp->modules_by_index, index))
- {
- _Py_FatalErrorFormat(__func__, "module %p already added", module);
- return -1;
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyInterpreterState *interp = tstate->interp;
+ Py_ssize_t index = def->m_base.m_index;
+ if (interp->modules_by_index &&
+ index < PyList_GET_SIZE(interp->modules_by_index) &&
+ module == PyList_GET_ITEM(interp->modules_by_index, index))
+ {
+ _Py_FatalErrorFormat(__func__, "module %p already added", module);
+ return -1;
}
- return _PyState_AddModule(tstate, module, def);
+ return _PyState_AddModule(tstate, module, def);
}
int
PyState_RemoveModule(struct PyModuleDef* def)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyInterpreterState *interp = tstate->interp;
-
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyInterpreterState *interp = tstate->interp;
+
if (def->m_slots) {
- _PyErr_SetString(tstate,
- PyExc_SystemError,
- "PyState_RemoveModule called on module with slots");
+ _PyErr_SetString(tstate,
+ PyExc_SystemError,
+ "PyState_RemoveModule called on module with slots");
return -1;
}
-
- Py_ssize_t index = def->m_base.m_index;
+
+ Py_ssize_t index = def->m_base.m_index;
if (index == 0) {
- Py_FatalError("invalid module index");
+ Py_FatalError("invalid module index");
}
- if (interp->modules_by_index == NULL) {
- Py_FatalError("Interpreters module-list not accessible.");
+ if (interp->modules_by_index == NULL) {
+ Py_FatalError("Interpreters module-list not accessible.");
}
- if (index > PyList_GET_SIZE(interp->modules_by_index)) {
- Py_FatalError("Module index out of bounds.");
+ if (index > PyList_GET_SIZE(interp->modules_by_index)) {
+ Py_FatalError("Module index out of bounds.");
}
-
+
Py_INCREF(Py_None);
- return PyList_SetItem(interp->modules_by_index, index, Py_None);
+ return PyList_SetItem(interp->modules_by_index, index, Py_None);
}
-/* Used by PyImport_Cleanup() */
+/* Used by PyImport_Cleanup() */
void
-_PyInterpreterState_ClearModules(PyInterpreterState *interp)
-{
- if (!interp->modules_by_index) {
- return;
- }
-
- Py_ssize_t i;
- for (i = 0; i < PyList_GET_SIZE(interp->modules_by_index); i++) {
- PyObject *m = PyList_GET_ITEM(interp->modules_by_index, i);
- if (PyModule_Check(m)) {
- /* cleanup the saved copy of module dicts */
- PyModuleDef *md = PyModule_GetDef(m);
- if (md) {
- Py_CLEAR(md->m_base.m_copy);
+_PyInterpreterState_ClearModules(PyInterpreterState *interp)
+{
+ if (!interp->modules_by_index) {
+ return;
+ }
+
+ Py_ssize_t i;
+ for (i = 0; i < PyList_GET_SIZE(interp->modules_by_index); i++) {
+ PyObject *m = PyList_GET_ITEM(interp->modules_by_index, i);
+ if (PyModule_Check(m)) {
+ /* cleanup the saved copy of module dicts */
+ PyModuleDef *md = PyModule_GetDef(m);
+ if (md) {
+ Py_CLEAR(md->m_base.m_copy);
}
}
}
-
- /* Setting modules_by_index to NULL could be dangerous, so we
- clear the list instead. */
- if (PyList_SetSlice(interp->modules_by_index,
- 0, PyList_GET_SIZE(interp->modules_by_index),
- NULL)) {
- PyErr_WriteUnraisable(interp->modules_by_index);
- }
+
+ /* Setting modules_by_index to NULL could be dangerous, so we
+ clear the list instead. */
+ if (PyList_SetSlice(interp->modules_by_index,
+ 0, PyList_GET_SIZE(interp->modules_by_index),
+ NULL)) {
+ PyErr_WriteUnraisable(interp->modules_by_index);
+ }
}
void
PyThreadState_Clear(PyThreadState *tstate)
{
- int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose;
-
- if (verbose && tstate->frame != NULL) {
- /* bpo-20526: After the main thread calls
- _PyRuntimeState_SetFinalizing() in Py_FinalizeEx(), threads must
- exit when trying to take the GIL. If a thread exit in the middle of
- _PyEval_EvalFrameDefault(), tstate->frame is not reset to its
- previous value. It is more likely with daemon threads, but it can
- happen with regular threads if threading._shutdown() fails
- (ex: interrupted by CTRL+C). */
+ int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose;
+
+ if (verbose && tstate->frame != NULL) {
+ /* bpo-20526: After the main thread calls
+ _PyRuntimeState_SetFinalizing() in Py_FinalizeEx(), threads must
+ exit when trying to take the GIL. If a thread exit in the middle of
+ _PyEval_EvalFrameDefault(), tstate->frame is not reset to its
+ previous value. It is more likely with daemon threads, but it can
+ happen with regular threads if threading._shutdown() fails
+ (ex: interrupted by CTRL+C). */
fprintf(stderr,
"PyThreadState_Clear: warning: thread still has a frame\n");
- }
+ }
- /* Don't clear tstate->frame: it is a borrowed reference */
+ /* Don't clear tstate->frame: it is a borrowed reference */
Py_CLEAR(tstate->dict);
Py_CLEAR(tstate->async_exc);
@@ -813,7 +813,7 @@ PyThreadState_Clear(PyThreadState *tstate)
Py_CLEAR(tstate->exc_state.exc_traceback);
/* The stack of exception states should contain just this thread. */
- if (verbose && tstate->exc_info != &tstate->exc_state) {
+ if (verbose && tstate->exc_info != &tstate->exc_state) {
fprintf(stderr,
"PyThreadState_Clear: warning: thread still has a generator\n");
}
@@ -827,121 +827,121 @@ PyThreadState_Clear(PyThreadState *tstate)
Py_CLEAR(tstate->async_gen_finalizer);
Py_CLEAR(tstate->context);
-
- if (tstate->on_delete != NULL) {
- tstate->on_delete(tstate->on_delete_data);
- }
+
+ if (tstate->on_delete != NULL) {
+ tstate->on_delete(tstate->on_delete_data);
+ }
}
/* Common code for PyThreadState_Delete() and PyThreadState_DeleteCurrent() */
static void
-tstate_delete_common(PyThreadState *tstate,
- struct _gilstate_runtime_state *gilstate)
-{
- _Py_EnsureTstateNotNULL(tstate);
- PyInterpreterState *interp = tstate->interp;
- if (interp == NULL) {
- Py_FatalError("NULL interpreter");
- }
- _PyRuntimeState *runtime = interp->runtime;
-
- HEAD_LOCK(runtime);
- if (tstate->prev) {
+tstate_delete_common(PyThreadState *tstate,
+ struct _gilstate_runtime_state *gilstate)
+{
+ _Py_EnsureTstateNotNULL(tstate);
+ PyInterpreterState *interp = tstate->interp;
+ if (interp == NULL) {
+ Py_FatalError("NULL interpreter");
+ }
+ _PyRuntimeState *runtime = interp->runtime;
+
+ HEAD_LOCK(runtime);
+ if (tstate->prev) {
tstate->prev->next = tstate->next;
- }
- else {
+ }
+ else {
interp->tstate_head = tstate->next;
- }
- if (tstate->next) {
+ }
+ if (tstate->next) {
tstate->next->prev = tstate->prev;
- }
- HEAD_UNLOCK(runtime);
-
- if (gilstate->autoInterpreterState &&
- PyThread_tss_get(&gilstate->autoTSSkey) == tstate)
- {
- PyThread_tss_set(&gilstate->autoTSSkey, NULL);
+ }
+ HEAD_UNLOCK(runtime);
+
+ if (gilstate->autoInterpreterState &&
+ PyThread_tss_get(&gilstate->autoTSSkey) == tstate)
+ {
+ PyThread_tss_set(&gilstate->autoTSSkey, NULL);
}
}
-static void
-_PyThreadState_Delete(PyThreadState *tstate, int check_current)
+static void
+_PyThreadState_Delete(PyThreadState *tstate, int check_current)
{
- struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
- if (check_current) {
- if (tstate == _PyRuntimeGILState_GetThreadState(gilstate)) {
- _Py_FatalErrorFormat(__func__, "tstate %p is still current", tstate);
- }
- }
- tstate_delete_common(tstate, gilstate);
- PyMem_RawFree(tstate);
+ struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
+ if (check_current) {
+ if (tstate == _PyRuntimeGILState_GetThreadState(gilstate)) {
+ _Py_FatalErrorFormat(__func__, "tstate %p is still current", tstate);
+ }
+ }
+ tstate_delete_common(tstate, gilstate);
+ PyMem_RawFree(tstate);
}
void
-PyThreadState_Delete(PyThreadState *tstate)
-{
- _PyThreadState_Delete(tstate, 1);
-}
-
-
-void
-_PyThreadState_DeleteCurrent(PyThreadState *tstate)
-{
- _Py_EnsureTstateNotNULL(tstate);
- struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
- tstate_delete_common(tstate, gilstate);
- _PyRuntimeGILState_SetThreadState(gilstate, NULL);
- _PyEval_ReleaseLock(tstate);
- PyMem_RawFree(tstate);
-}
-
-void
-PyThreadState_DeleteCurrent(void)
-{
- struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
- PyThreadState *tstate = _PyRuntimeGILState_GetThreadState(gilstate);
- _PyThreadState_DeleteCurrent(tstate);
-}
-
-
+PyThreadState_Delete(PyThreadState *tstate)
+{
+ _PyThreadState_Delete(tstate, 1);
+}
+
+
+void
+_PyThreadState_DeleteCurrent(PyThreadState *tstate)
+{
+ _Py_EnsureTstateNotNULL(tstate);
+ struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
+ tstate_delete_common(tstate, gilstate);
+ _PyRuntimeGILState_SetThreadState(gilstate, NULL);
+ _PyEval_ReleaseLock(tstate);
+ PyMem_RawFree(tstate);
+}
+
+void
+PyThreadState_DeleteCurrent(void)
+{
+ struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
+ PyThreadState *tstate = _PyRuntimeGILState_GetThreadState(gilstate);
+ _PyThreadState_DeleteCurrent(tstate);
+}
+
+
/*
* Delete all thread states except the one passed as argument.
* Note that, if there is a current thread state, it *must* be the one
* passed as argument. Also, this won't touch any other interpreters
* than the current one, since we don't know which thread state should
- * be kept in those other interpreters.
+ * be kept in those other interpreters.
*/
void
-_PyThreadState_DeleteExcept(_PyRuntimeState *runtime, PyThreadState *tstate)
+_PyThreadState_DeleteExcept(_PyRuntimeState *runtime, PyThreadState *tstate)
{
PyInterpreterState *interp = tstate->interp;
-
- HEAD_LOCK(runtime);
+
+ HEAD_LOCK(runtime);
/* Remove all thread states, except tstate, from the linked list of
thread states. This will allow calling PyThreadState_Clear()
without holding the lock. */
- PyThreadState *list = interp->tstate_head;
- if (list == tstate) {
- list = tstate->next;
- }
- if (tstate->prev) {
+ PyThreadState *list = interp->tstate_head;
+ if (list == tstate) {
+ list = tstate->next;
+ }
+ if (tstate->prev) {
tstate->prev->next = tstate->next;
- }
- if (tstate->next) {
+ }
+ if (tstate->next) {
tstate->next->prev = tstate->prev;
- }
+ }
tstate->prev = tstate->next = NULL;
interp->tstate_head = tstate;
- HEAD_UNLOCK(runtime);
-
+ HEAD_UNLOCK(runtime);
+
/* Clear and deallocate all stale thread states. Even if this
executes Python code, we should be safe since it executes
in the current thread, not one of the stale threads. */
- PyThreadState *p, *next;
- for (p = list; p; p = next) {
+ PyThreadState *p, *next;
+ for (p = list; p; p = next) {
next = p->next;
PyThreadState_Clear(p);
PyMem_RawFree(p);
@@ -952,25 +952,25 @@ _PyThreadState_DeleteExcept(_PyRuntimeState *runtime, PyThreadState *tstate)
PyThreadState *
_PyThreadState_UncheckedGet(void)
{
- return _PyThreadState_GET();
+ return _PyThreadState_GET();
}
PyThreadState *
PyThreadState_Get(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- _Py_EnsureTstateNotNULL(tstate);
+ PyThreadState *tstate = _PyThreadState_GET();
+ _Py_EnsureTstateNotNULL(tstate);
return tstate;
}
PyThreadState *
-_PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *newts)
+_PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *newts)
{
- PyThreadState *oldts = _PyRuntimeGILState_GetThreadState(gilstate);
+ PyThreadState *oldts = _PyRuntimeGILState_GetThreadState(gilstate);
- _PyRuntimeGILState_SetThreadState(gilstate, newts);
+ _PyRuntimeGILState_SetThreadState(gilstate, newts);
/* It should not be possible for more than one thread state
to be used for a thread. Check this the best we can in debug
builds.
@@ -981,7 +981,7 @@ _PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *new
to it, we need to ensure errno doesn't change.
*/
int err = errno;
- PyThreadState *check = _PyGILState_GetThisThreadState(gilstate);
+ PyThreadState *check = _PyGILState_GetThisThreadState(gilstate);
if (check && check->interp == newts->interp && check != newts)
Py_FatalError("Invalid thread state for this thread");
errno = err;
@@ -990,12 +990,12 @@ _PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState *new
return oldts;
}
-PyThreadState *
-PyThreadState_Swap(PyThreadState *newts)
-{
- return _PyThreadState_Swap(&_PyRuntime.gilstate, newts);
-}
-
+PyThreadState *
+PyThreadState_Swap(PyThreadState *newts)
+{
+ return _PyThreadState_Swap(&_PyRuntime.gilstate, newts);
+}
+
/* An extension mechanism to store arbitrary additional per-thread state.
PyThreadState_GetDict() returns a dictionary that can be used to hold such
state; the caller should pick a unique key and store its state there. If
@@ -1003,56 +1003,56 @@ PyThreadState_Swap(PyThreadState *newts)
and the caller should assume no per-thread state is available. */
PyObject *
-_PyThreadState_GetDict(PyThreadState *tstate)
-{
- assert(tstate != NULL);
- if (tstate->dict == NULL) {
- tstate->dict = PyDict_New();
- if (tstate->dict == NULL) {
- _PyErr_Clear(tstate);
- }
- }
- return tstate->dict;
-}
-
-
-PyObject *
+_PyThreadState_GetDict(PyThreadState *tstate)
+{
+ assert(tstate != NULL);
+ if (tstate->dict == NULL) {
+ tstate->dict = PyDict_New();
+ if (tstate->dict == NULL) {
+ _PyErr_Clear(tstate);
+ }
+ }
+ return tstate->dict;
+}
+
+
+PyObject *
PyThreadState_GetDict(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (tstate == NULL) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (tstate == NULL) {
return NULL;
}
- return _PyThreadState_GetDict(tstate);
-}
-
-
-PyInterpreterState *
-PyThreadState_GetInterpreter(PyThreadState *tstate)
-{
- assert(tstate != NULL);
- return tstate->interp;
-}
-
-
-PyFrameObject*
-PyThreadState_GetFrame(PyThreadState *tstate)
-{
- assert(tstate != NULL);
- PyFrameObject *frame = tstate->frame;
- Py_XINCREF(frame);
- return frame;
-}
-
-
-uint64_t
-PyThreadState_GetID(PyThreadState *tstate)
-{
- assert(tstate != NULL);
- return tstate->id;
-}
-
-
+ return _PyThreadState_GetDict(tstate);
+}
+
+
+PyInterpreterState *
+PyThreadState_GetInterpreter(PyThreadState *tstate)
+{
+ assert(tstate != NULL);
+ return tstate->interp;
+}
+
+
+PyFrameObject*
+PyThreadState_GetFrame(PyThreadState *tstate)
+{
+ assert(tstate != NULL);
+ PyFrameObject *frame = tstate->frame;
+ Py_XINCREF(frame);
+ return frame;
+}
+
+
+uint64_t
+PyThreadState_GetID(PyThreadState *tstate)
+{
+ assert(tstate != NULL);
+ return tstate->id;
+}
+
+
/* Asynchronously raise an exception in a thread.
Requested by Just van Rossum and Alex Martelli.
To prevent naive misuse, you must write your own extension
@@ -1064,8 +1064,8 @@ PyThreadState_GetID(PyThreadState *tstate)
int
PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- PyInterpreterState *interp = _PyRuntimeState_GetThreadState(runtime)->interp;
+ _PyRuntimeState *runtime = &_PyRuntime;
+ PyInterpreterState *interp = _PyRuntimeState_GetThreadState(runtime)->interp;
/* Although the GIL is held, a few C API functions can be called
* without the GIL held, and in particular some that create and
@@ -1073,29 +1073,29 @@ PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
* list of thread states we're traversing, so to prevent that we lock
* head_mutex for the duration.
*/
- HEAD_LOCK(runtime);
- for (PyThreadState *tstate = interp->tstate_head; tstate != NULL; tstate = tstate->next) {
- if (tstate->thread_id != id) {
- continue;
+ HEAD_LOCK(runtime);
+ for (PyThreadState *tstate = interp->tstate_head; tstate != NULL; tstate = tstate->next) {
+ if (tstate->thread_id != id) {
+ continue;
}
-
- /* Tricky: we need to decref the current value
- * (if any) in tstate->async_exc, but that can in turn
- * allow arbitrary Python code to run, including
- * perhaps calls to this function. To prevent
- * deadlock, we need to release head_mutex before
- * the decref.
- */
- PyObject *old_exc = tstate->async_exc;
- Py_XINCREF(exc);
- tstate->async_exc = exc;
- HEAD_UNLOCK(runtime);
-
- Py_XDECREF(old_exc);
- _PyEval_SignalAsyncExc(tstate);
- return 1;
- }
- HEAD_UNLOCK(runtime);
+
+ /* Tricky: we need to decref the current value
+ * (if any) in tstate->async_exc, but that can in turn
+ * allow arbitrary Python code to run, including
+ * perhaps calls to this function. To prevent
+ * deadlock, we need to release head_mutex before
+ * the decref.
+ */
+ PyObject *old_exc = tstate->async_exc;
+ Py_XINCREF(exc);
+ tstate->async_exc = exc;
+ HEAD_UNLOCK(runtime);
+
+ Py_XDECREF(old_exc);
+ _PyEval_SignalAsyncExc(tstate);
+ return 1;
+ }
+ HEAD_UNLOCK(runtime);
return 0;
}
@@ -1138,15 +1138,15 @@ PyThreadState_Next(PyThreadState *tstate) {
PyObject *
_PyThread_CurrentFrames(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (_PySys_Audit(tstate, "sys._current_frames", NULL) < 0) {
- return NULL;
- }
-
- PyObject *result = PyDict_New();
- if (result == NULL) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (_PySys_Audit(tstate, "sys._current_frames", NULL) < 0) {
+ return NULL;
+ }
+
+ PyObject *result = PyDict_New();
+ if (result == NULL) {
return NULL;
- }
+ }
/* for i in all interpreters:
* for t in all of i's thread states:
@@ -1154,34 +1154,34 @@ _PyThread_CurrentFrames(void)
* Because these lists can mutate even when the GIL is held, we
* need to grab head_mutex for the duration.
*/
- _PyRuntimeState *runtime = tstate->interp->runtime;
- HEAD_LOCK(runtime);
- PyInterpreterState *i;
- for (i = runtime->interpreters.head; i != NULL; i = i->next) {
+ _PyRuntimeState *runtime = tstate->interp->runtime;
+ HEAD_LOCK(runtime);
+ PyInterpreterState *i;
+ for (i = runtime->interpreters.head; i != NULL; i = i->next) {
PyThreadState *t;
for (t = i->tstate_head; t != NULL; t = t->next) {
- PyFrameObject *frame = t->frame;
- if (frame == NULL) {
+ PyFrameObject *frame = t->frame;
+ if (frame == NULL) {
continue;
- }
- PyObject *id = PyLong_FromUnsignedLong(t->thread_id);
- if (id == NULL) {
- goto fail;
- }
- int stat = PyDict_SetItem(result, id, (PyObject *)frame);
+ }
+ PyObject *id = PyLong_FromUnsignedLong(t->thread_id);
+ if (id == NULL) {
+ goto fail;
+ }
+ int stat = PyDict_SetItem(result, id, (PyObject *)frame);
Py_DECREF(id);
- if (stat < 0) {
- goto fail;
- }
+ if (stat < 0) {
+ goto fail;
+ }
}
}
- goto done;
-
-fail:
- Py_CLEAR(result);
-
-done:
- HEAD_UNLOCK(runtime);
+ goto done;
+
+fail:
+ Py_CLEAR(result);
+
+done:
+ HEAD_UNLOCK(runtime);
return result;
}
@@ -1199,38 +1199,38 @@ static int
PyThreadState_IsCurrent(PyThreadState *tstate)
{
/* Must be the tstate for this thread */
- struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
- assert(_PyGILState_GetThisThreadState(gilstate) == tstate);
- return tstate == _PyRuntimeGILState_GetThreadState(gilstate);
+ struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
+ assert(_PyGILState_GetThisThreadState(gilstate) == tstate);
+ return tstate == _PyRuntimeGILState_GetThreadState(gilstate);
}
/* Internal initialization/finalization functions called by
Py_Initialize/Py_FinalizeEx
*/
-PyStatus
-_PyGILState_Init(PyThreadState *tstate)
-{
- if (!_Py_IsMainInterpreter(tstate)) {
- /* Currently, PyGILState is shared by all interpreters. The main
- * interpreter is responsible to initialize it. */
- return _PyStatus_OK();
- }
-
- /* must init with valid states */
- assert(tstate != NULL);
- assert(tstate->interp != NULL);
-
- struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
-
- if (PyThread_tss_create(&gilstate->autoTSSkey) != 0) {
- return _PyStatus_NO_MEMORY();
- }
- gilstate->autoInterpreterState = tstate->interp;
- assert(PyThread_tss_get(&gilstate->autoTSSkey) == NULL);
- assert(tstate->gilstate_counter == 0);
-
- _PyGILState_NoteThreadState(gilstate, tstate);
- return _PyStatus_OK();
+PyStatus
+_PyGILState_Init(PyThreadState *tstate)
+{
+ if (!_Py_IsMainInterpreter(tstate)) {
+ /* Currently, PyGILState is shared by all interpreters. The main
+ * interpreter is responsible to initialize it. */
+ return _PyStatus_OK();
+ }
+
+ /* must init with valid states */
+ assert(tstate != NULL);
+ assert(tstate->interp != NULL);
+
+ struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
+
+ if (PyThread_tss_create(&gilstate->autoTSSkey) != 0) {
+ return _PyStatus_NO_MEMORY();
+ }
+ gilstate->autoInterpreterState = tstate->interp;
+ assert(PyThread_tss_get(&gilstate->autoTSSkey) == NULL);
+ assert(tstate->gilstate_counter == 0);
+
+ _PyGILState_NoteThreadState(gilstate, tstate);
+ return _PyStatus_OK();
}
PyInterpreterState *
@@ -1240,11 +1240,11 @@ _PyGILState_GetInterpreterStateUnsafe(void)
}
void
-_PyGILState_Fini(PyThreadState *tstate)
+_PyGILState_Fini(PyThreadState *tstate)
{
- struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
- PyThread_tss_delete(&gilstate->autoTSSkey);
- gilstate->autoInterpreterState = NULL;
+ struct _gilstate_runtime_state *gilstate = &tstate->interp->runtime->gilstate;
+ PyThread_tss_delete(&gilstate->autoTSSkey);
+ gilstate->autoInterpreterState = NULL;
}
/* Reset the TSS key - called by PyOS_AfterFork_Child().
@@ -1252,20 +1252,20 @@ _PyGILState_Fini(PyThreadState *tstate)
* don't reset TSS upon fork(), see issue #10517.
*/
void
-_PyGILState_Reinit(_PyRuntimeState *runtime)
+_PyGILState_Reinit(_PyRuntimeState *runtime)
{
- struct _gilstate_runtime_state *gilstate = &runtime->gilstate;
- PyThreadState *tstate = _PyGILState_GetThisThreadState(gilstate);
+ struct _gilstate_runtime_state *gilstate = &runtime->gilstate;
+ PyThreadState *tstate = _PyGILState_GetThisThreadState(gilstate);
- PyThread_tss_delete(&gilstate->autoTSSkey);
- if (PyThread_tss_create(&gilstate->autoTSSkey) != 0) {
+ PyThread_tss_delete(&gilstate->autoTSSkey);
+ if (PyThread_tss_create(&gilstate->autoTSSkey) != 0) {
Py_FatalError("Could not allocate TSS entry");
}
/* If the thread had an associated auto thread state, reassociate it with
* the new key. */
if (tstate &&
- PyThread_tss_set(&gilstate->autoTSSkey, (void *)tstate) != 0)
+ PyThread_tss_set(&gilstate->autoTSSkey, (void *)tstate) != 0)
{
Py_FatalError("Couldn't create autoTSSkey mapping");
}
@@ -1277,14 +1277,14 @@ _PyGILState_Reinit(_PyRuntimeState *runtime)
a better fix for SF bug #1010677 than the first one attempted).
*/
static void
-_PyGILState_NoteThreadState(struct _gilstate_runtime_state *gilstate, PyThreadState* tstate)
+_PyGILState_NoteThreadState(struct _gilstate_runtime_state *gilstate, PyThreadState* tstate)
{
/* If autoTSSkey isn't initialized, this must be the very first
threadstate created in Py_Initialize(). Don't do anything for now
(we'll be back here when _PyGILState_Init is called). */
- if (!gilstate->autoInterpreterState) {
+ if (!gilstate->autoInterpreterState) {
return;
- }
+ }
/* Stick the thread state for this thread in thread specific storage.
@@ -1298,8 +1298,8 @@ _PyGILState_NoteThreadState(struct _gilstate_runtime_state *gilstate, PyThreadSt
The first thread state created for that given OS level thread will
"win", which seems reasonable behaviour.
*/
- if (PyThread_tss_get(&gilstate->autoTSSkey) == NULL) {
- if ((PyThread_tss_set(&gilstate->autoTSSkey, (void *)tstate)) != 0) {
+ if (PyThread_tss_get(&gilstate->autoTSSkey) == NULL) {
+ if ((PyThread_tss_set(&gilstate->autoTSSkey, (void *)tstate)) != 0) {
Py_FatalError("Couldn't create autoTSSkey mapping");
}
}
@@ -1309,65 +1309,65 @@ _PyGILState_NoteThreadState(struct _gilstate_runtime_state *gilstate, PyThreadSt
}
/* The public functions */
-static PyThreadState *
-_PyGILState_GetThisThreadState(struct _gilstate_runtime_state *gilstate)
-{
- if (gilstate->autoInterpreterState == NULL)
- return NULL;
- return (PyThreadState *)PyThread_tss_get(&gilstate->autoTSSkey);
-}
-
+static PyThreadState *
+_PyGILState_GetThisThreadState(struct _gilstate_runtime_state *gilstate)
+{
+ if (gilstate->autoInterpreterState == NULL)
+ return NULL;
+ return (PyThreadState *)PyThread_tss_get(&gilstate->autoTSSkey);
+}
+
PyThreadState *
PyGILState_GetThisThreadState(void)
{
- return _PyGILState_GetThisThreadState(&_PyRuntime.gilstate);
+ return _PyGILState_GetThisThreadState(&_PyRuntime.gilstate);
}
int
PyGILState_Check(void)
{
- struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
- if (!gilstate->check_enabled) {
+ struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
+ if (!gilstate->check_enabled) {
return 1;
- }
+ }
- if (!PyThread_tss_is_created(&gilstate->autoTSSkey)) {
+ if (!PyThread_tss_is_created(&gilstate->autoTSSkey)) {
return 1;
}
- PyThreadState *tstate = _PyRuntimeGILState_GetThreadState(gilstate);
- if (tstate == NULL) {
+ PyThreadState *tstate = _PyRuntimeGILState_GetThreadState(gilstate);
+ if (tstate == NULL) {
return 0;
- }
+ }
- return (tstate == _PyGILState_GetThisThreadState(gilstate));
+ return (tstate == _PyGILState_GetThisThreadState(gilstate));
}
PyGILState_STATE
PyGILState_Ensure(void)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- struct _gilstate_runtime_state *gilstate = &runtime->gilstate;
+ _PyRuntimeState *runtime = &_PyRuntime;
+ struct _gilstate_runtime_state *gilstate = &runtime->gilstate;
/* Note that we do not auto-init Python here - apart from
potential races with 2 threads auto-initializing, pep-311
spells out other issues. Embedders are expected to have
- called Py_Initialize(). */
-
- /* Ensure that _PyEval_InitThreads() and _PyGILState_Init() have been
- called by Py_Initialize() */
- assert(_PyEval_ThreadsInitialized(runtime));
- assert(gilstate->autoInterpreterState);
-
- PyThreadState *tcur = (PyThreadState *)PyThread_tss_get(&gilstate->autoTSSkey);
- int current;
+ called Py_Initialize(). */
+
+ /* Ensure that _PyEval_InitThreads() and _PyGILState_Init() have been
+ called by Py_Initialize() */
+ assert(_PyEval_ThreadsInitialized(runtime));
+ assert(gilstate->autoInterpreterState);
+
+ PyThreadState *tcur = (PyThreadState *)PyThread_tss_get(&gilstate->autoTSSkey);
+ int current;
if (tcur == NULL) {
- /* Create a new Python thread state for this thread */
- tcur = PyThreadState_New(gilstate->autoInterpreterState);
- if (tcur == NULL) {
+ /* Create a new Python thread state for this thread */
+ tcur = PyThreadState_New(gilstate->autoInterpreterState);
+ if (tcur == NULL) {
Py_FatalError("Couldn't create thread-state for new thread");
- }
-
+ }
+
/* This is our thread state! We'll need to delete it in the
matching call to PyGILState_Release(). */
tcur->gilstate_counter = 0;
@@ -1394,41 +1394,41 @@ PyGILState_Ensure(void)
void
PyGILState_Release(PyGILState_STATE oldstate)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = PyThread_tss_get(&runtime->gilstate.autoTSSkey);
- if (tstate == NULL) {
+ _PyRuntimeState *runtime = &_PyRuntime;
+ PyThreadState *tstate = PyThread_tss_get(&runtime->gilstate.autoTSSkey);
+ if (tstate == NULL) {
Py_FatalError("auto-releasing thread-state, "
"but no thread-state for this thread");
- }
-
+ }
+
/* We must hold the GIL and have our thread state current */
/* XXX - remove the check - the assert should be fine,
but while this is very new (April 2003), the extra check
by release-only users can't hurt.
*/
- if (!PyThreadState_IsCurrent(tstate)) {
- _Py_FatalErrorFormat(__func__,
- "thread state %p must be current when releasing",
- tstate);
- }
- assert(PyThreadState_IsCurrent(tstate));
- --tstate->gilstate_counter;
- assert(tstate->gilstate_counter >= 0); /* illegal counter value */
+ if (!PyThreadState_IsCurrent(tstate)) {
+ _Py_FatalErrorFormat(__func__,
+ "thread state %p must be current when releasing",
+ tstate);
+ }
+ assert(PyThreadState_IsCurrent(tstate));
+ --tstate->gilstate_counter;
+ assert(tstate->gilstate_counter >= 0); /* illegal counter value */
/* If we're going to destroy this thread-state, we must
* clear it while the GIL is held, as destructors may run.
*/
- if (tstate->gilstate_counter == 0) {
+ if (tstate->gilstate_counter == 0) {
/* can't have been locked when we created it */
assert(oldstate == PyGILState_UNLOCKED);
- PyThreadState_Clear(tstate);
+ PyThreadState_Clear(tstate);
/* Delete the thread-state. Note this releases the GIL too!
* It's vital that the GIL be held here, to avoid shutdown
* races; see bugs 225673 and 1061968 (that nasty bug has a
* habit of coming back).
*/
- assert(_PyRuntimeGILState_GetThreadState(&runtime->gilstate) == tstate);
- _PyThreadState_DeleteCurrent(tstate);
+ assert(_PyRuntimeGILState_GetThreadState(&runtime->gilstate) == tstate);
+ _PyThreadState_DeleteCurrent(tstate);
}
/* Release the lock if necessary */
else if (oldstate == PyGILState_UNLOCKED)
@@ -1436,398 +1436,398 @@ PyGILState_Release(PyGILState_STATE oldstate)
}
-/**************************/
-/* cross-interpreter data */
-/**************************/
-
-/* cross-interpreter data */
-
-crossinterpdatafunc _PyCrossInterpreterData_Lookup(PyObject *);
-
-/* This is a separate func from _PyCrossInterpreterData_Lookup in order
- to keep the registry code separate. */
-static crossinterpdatafunc
-_lookup_getdata(PyObject *obj)
-{
- crossinterpdatafunc getdata = _PyCrossInterpreterData_Lookup(obj);
- if (getdata == NULL && PyErr_Occurred() == 0)
- PyErr_Format(PyExc_ValueError,
- "%S does not support cross-interpreter data", obj);
- return getdata;
-}
-
-int
-_PyObject_CheckCrossInterpreterData(PyObject *obj)
-{
- crossinterpdatafunc getdata = _lookup_getdata(obj);
- if (getdata == NULL) {
- return -1;
- }
- return 0;
-}
-
-static int
-_check_xidata(PyThreadState *tstate, _PyCrossInterpreterData *data)
-{
- // data->data can be anything, including NULL, so we don't check it.
-
- // data->obj may be NULL, so we don't check it.
-
- if (data->interp < 0) {
- _PyErr_SetString(tstate, PyExc_SystemError, "missing interp");
- return -1;
- }
-
- if (data->new_object == NULL) {
- _PyErr_SetString(tstate, PyExc_SystemError, "missing new_object func");
- return -1;
- }
-
- // data->free may be NULL, so we don't check it.
-
- return 0;
-}
-
-int
-_PyObject_GetCrossInterpreterData(PyObject *obj, _PyCrossInterpreterData *data)
-{
- // PyThreadState_Get() aborts if tstate is NULL.
- PyThreadState *tstate = PyThreadState_Get();
- PyInterpreterState *interp = tstate->interp;
-
- // Reset data before re-populating.
- *data = (_PyCrossInterpreterData){0};
- data->free = PyMem_RawFree; // Set a default that may be overridden.
-
- // Call the "getdata" func for the object.
- Py_INCREF(obj);
- crossinterpdatafunc getdata = _lookup_getdata(obj);
- if (getdata == NULL) {
- Py_DECREF(obj);
- return -1;
- }
- int res = getdata(obj, data);
- Py_DECREF(obj);
- if (res != 0) {
- return -1;
- }
-
- // Fill in the blanks and validate the result.
- data->interp = interp->id;
- if (_check_xidata(tstate, data) != 0) {
- _PyCrossInterpreterData_Release(data);
- return -1;
- }
-
- return 0;
-}
-
-static void
-_release_xidata(void *arg)
-{
- _PyCrossInterpreterData *data = (_PyCrossInterpreterData *)arg;
- if (data->free != NULL) {
- data->free(data->data);
- }
- Py_XDECREF(data->obj);
-}
-
-static void
-_call_in_interpreter(struct _gilstate_runtime_state *gilstate,
- PyInterpreterState *interp,
- void (*func)(void *), void *arg)
-{
- /* We would use Py_AddPendingCall() if it weren't specific to the
- * main interpreter (see bpo-33608). In the meantime we take a
- * naive approach.
- */
- PyThreadState *save_tstate = NULL;
- if (interp != _PyRuntimeGILState_GetThreadState(gilstate)->interp) {
- // XXX Using the "head" thread isn't strictly correct.
- PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
- // XXX Possible GILState issues?
- save_tstate = _PyThreadState_Swap(gilstate, tstate);
- }
-
- func(arg);
-
- // Switch back.
- if (save_tstate != NULL) {
- _PyThreadState_Swap(gilstate, save_tstate);
- }
-}
-
-void
-_PyCrossInterpreterData_Release(_PyCrossInterpreterData *data)
-{
- if (data->data == NULL && data->obj == NULL) {
- // Nothing to release!
- return;
- }
-
- // Switch to the original interpreter.
- PyInterpreterState *interp = _PyInterpreterState_LookUpID(data->interp);
- if (interp == NULL) {
- // The interpreter was already destroyed.
- if (data->free != NULL) {
- // XXX Someone leaked some memory...
- }
- return;
- }
-
- // "Release" the data and/or the object.
- struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
- _call_in_interpreter(gilstate, interp, _release_xidata, data);
-}
-
-PyObject *
-_PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *data)
-{
- return data->new_object(data);
-}
-
-/* registry of {type -> crossinterpdatafunc} */
-
-/* For now we use a global registry of shareable classes. An
- alternative would be to add a tp_* slot for a class's
- crossinterpdatafunc. It would be simpler and more efficient. */
-
-static int
-_register_xidata(struct _xidregistry *xidregistry, PyTypeObject *cls,
- crossinterpdatafunc getdata)
-{
- // Note that we effectively replace already registered classes
- // rather than failing.
- struct _xidregitem *newhead = PyMem_RawMalloc(sizeof(struct _xidregitem));
- if (newhead == NULL)
- return -1;
- newhead->cls = cls;
- newhead->getdata = getdata;
- newhead->next = xidregistry->head;
- xidregistry->head = newhead;
- return 0;
-}
-
-static void _register_builtins_for_crossinterpreter_data(struct _xidregistry *xidregistry);
-
-int
-_PyCrossInterpreterData_RegisterClass(PyTypeObject *cls,
- crossinterpdatafunc getdata)
-{
- if (!PyType_Check(cls)) {
- PyErr_Format(PyExc_ValueError, "only classes may be registered");
- return -1;
- }
- if (getdata == NULL) {
- PyErr_Format(PyExc_ValueError, "missing 'getdata' func");
- return -1;
- }
-
- // Make sure the class isn't ever deallocated.
- Py_INCREF((PyObject *)cls);
-
- struct _xidregistry *xidregistry = &_PyRuntime.xidregistry ;
- PyThread_acquire_lock(xidregistry->mutex, WAIT_LOCK);
- if (xidregistry->head == NULL) {
- _register_builtins_for_crossinterpreter_data(xidregistry);
- }
- int res = _register_xidata(xidregistry, cls, getdata);
- PyThread_release_lock(xidregistry->mutex);
- return res;
-}
-
-/* Cross-interpreter objects are looked up by exact match on the class.
- We can reassess this policy when we move from a global registry to a
- tp_* slot. */
-
-crossinterpdatafunc
-_PyCrossInterpreterData_Lookup(PyObject *obj)
-{
- struct _xidregistry *xidregistry = &_PyRuntime.xidregistry ;
- PyObject *cls = PyObject_Type(obj);
- crossinterpdatafunc getdata = NULL;
- PyThread_acquire_lock(xidregistry->mutex, WAIT_LOCK);
- struct _xidregitem *cur = xidregistry->head;
- if (cur == NULL) {
- _register_builtins_for_crossinterpreter_data(xidregistry);
- cur = xidregistry->head;
- }
- for(; cur != NULL; cur = cur->next) {
- if (cur->cls == (PyTypeObject *)cls) {
- getdata = cur->getdata;
- break;
- }
- }
- Py_DECREF(cls);
- PyThread_release_lock(xidregistry->mutex);
- return getdata;
-}
-
-/* cross-interpreter data for builtin types */
-
-struct _shared_bytes_data {
- char *bytes;
- Py_ssize_t len;
-};
-
-static PyObject *
-_new_bytes_object(_PyCrossInterpreterData *data)
-{
- struct _shared_bytes_data *shared = (struct _shared_bytes_data *)(data->data);
- return PyBytes_FromStringAndSize(shared->bytes, shared->len);
-}
-
-static int
-_bytes_shared(PyObject *obj, _PyCrossInterpreterData *data)
-{
- struct _shared_bytes_data *shared = PyMem_NEW(struct _shared_bytes_data, 1);
- if (PyBytes_AsStringAndSize(obj, &shared->bytes, &shared->len) < 0) {
- return -1;
- }
- data->data = (void *)shared;
- Py_INCREF(obj);
- data->obj = obj; // Will be "released" (decref'ed) when data released.
- data->new_object = _new_bytes_object;
- data->free = PyMem_Free;
- return 0;
-}
-
-struct _shared_str_data {
- int kind;
- const void *buffer;
- Py_ssize_t len;
-};
-
-static PyObject *
-_new_str_object(_PyCrossInterpreterData *data)
-{
- struct _shared_str_data *shared = (struct _shared_str_data *)(data->data);
- return PyUnicode_FromKindAndData(shared->kind, shared->buffer, shared->len);
-}
-
-static int
-_str_shared(PyObject *obj, _PyCrossInterpreterData *data)
-{
- struct _shared_str_data *shared = PyMem_NEW(struct _shared_str_data, 1);
- shared->kind = PyUnicode_KIND(obj);
- shared->buffer = PyUnicode_DATA(obj);
- shared->len = PyUnicode_GET_LENGTH(obj);
- data->data = (void *)shared;
- Py_INCREF(obj);
- data->obj = obj; // Will be "released" (decref'ed) when data released.
- data->new_object = _new_str_object;
- data->free = PyMem_Free;
- return 0;
-}
-
-static PyObject *
-_new_long_object(_PyCrossInterpreterData *data)
-{
- return PyLong_FromSsize_t((Py_ssize_t)(data->data));
-}
-
-static int
-_long_shared(PyObject *obj, _PyCrossInterpreterData *data)
-{
- /* Note that this means the size of shareable ints is bounded by
- * sys.maxsize. Hence on 32-bit architectures that is half the
- * size of maximum shareable ints on 64-bit.
- */
- Py_ssize_t value = PyLong_AsSsize_t(obj);
- if (value == -1 && PyErr_Occurred()) {
- if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
- PyErr_SetString(PyExc_OverflowError, "try sending as bytes");
- }
- return -1;
- }
- data->data = (void *)value;
- data->obj = NULL;
- data->new_object = _new_long_object;
- data->free = NULL;
- return 0;
-}
-
-static PyObject *
-_new_none_object(_PyCrossInterpreterData *data)
-{
- // XXX Singleton refcounts are problematic across interpreters...
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static int
-_none_shared(PyObject *obj, _PyCrossInterpreterData *data)
-{
- data->data = NULL;
- // data->obj remains NULL
- data->new_object = _new_none_object;
- data->free = NULL; // There is nothing to free.
- return 0;
-}
-
-static void
-_register_builtins_for_crossinterpreter_data(struct _xidregistry *xidregistry)
-{
- // None
- if (_register_xidata(xidregistry, (PyTypeObject *)PyObject_Type(Py_None), _none_shared) != 0) {
- Py_FatalError("could not register None for cross-interpreter sharing");
- }
-
- // int
- if (_register_xidata(xidregistry, &PyLong_Type, _long_shared) != 0) {
- Py_FatalError("could not register int for cross-interpreter sharing");
- }
-
- // bytes
- if (_register_xidata(xidregistry, &PyBytes_Type, _bytes_shared) != 0) {
- Py_FatalError("could not register bytes for cross-interpreter sharing");
- }
-
- // str
- if (_register_xidata(xidregistry, &PyUnicode_Type, _str_shared) != 0) {
- Py_FatalError("could not register str for cross-interpreter sharing");
- }
-}
-
-
-_PyFrameEvalFunction
-_PyInterpreterState_GetEvalFrameFunc(PyInterpreterState *interp)
-{
- return interp->eval_frame;
-}
-
-
-void
-_PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp,
- _PyFrameEvalFunction eval_frame)
-{
- interp->eval_frame = eval_frame;
-}
-
-
-const PyConfig*
-_PyInterpreterState_GetConfig(PyInterpreterState *interp)
-{
- return &interp->config;
-}
-
-
-PyStatus
-_PyInterpreterState_SetConfig(PyInterpreterState *interp,
- const PyConfig *config)
-{
- return _PyConfig_Copy(&interp->config, config);
-}
-
-
-const PyConfig*
-_Py_GetConfig(void)
-{
- assert(PyGILState_Check());
- PyThreadState *tstate = _PyThreadState_GET();
- return _PyInterpreterState_GetConfig(tstate->interp);
-}
-
+/**************************/
+/* cross-interpreter data */
+/**************************/
+
+/* cross-interpreter data */
+
+crossinterpdatafunc _PyCrossInterpreterData_Lookup(PyObject *);
+
+/* This is a separate func from _PyCrossInterpreterData_Lookup in order
+ to keep the registry code separate. */
+static crossinterpdatafunc
+_lookup_getdata(PyObject *obj)
+{
+ crossinterpdatafunc getdata = _PyCrossInterpreterData_Lookup(obj);
+ if (getdata == NULL && PyErr_Occurred() == 0)
+ PyErr_Format(PyExc_ValueError,
+ "%S does not support cross-interpreter data", obj);
+ return getdata;
+}
+
+int
+_PyObject_CheckCrossInterpreterData(PyObject *obj)
+{
+ crossinterpdatafunc getdata = _lookup_getdata(obj);
+ if (getdata == NULL) {
+ return -1;
+ }
+ return 0;
+}
+
+static int
+_check_xidata(PyThreadState *tstate, _PyCrossInterpreterData *data)
+{
+ // data->data can be anything, including NULL, so we don't check it.
+
+ // data->obj may be NULL, so we don't check it.
+
+ if (data->interp < 0) {
+ _PyErr_SetString(tstate, PyExc_SystemError, "missing interp");
+ return -1;
+ }
+
+ if (data->new_object == NULL) {
+ _PyErr_SetString(tstate, PyExc_SystemError, "missing new_object func");
+ return -1;
+ }
+
+ // data->free may be NULL, so we don't check it.
+
+ return 0;
+}
+
+int
+_PyObject_GetCrossInterpreterData(PyObject *obj, _PyCrossInterpreterData *data)
+{
+ // PyThreadState_Get() aborts if tstate is NULL.
+ PyThreadState *tstate = PyThreadState_Get();
+ PyInterpreterState *interp = tstate->interp;
+
+ // Reset data before re-populating.
+ *data = (_PyCrossInterpreterData){0};
+ data->free = PyMem_RawFree; // Set a default that may be overridden.
+
+ // Call the "getdata" func for the object.
+ Py_INCREF(obj);
+ crossinterpdatafunc getdata = _lookup_getdata(obj);
+ if (getdata == NULL) {
+ Py_DECREF(obj);
+ return -1;
+ }
+ int res = getdata(obj, data);
+ Py_DECREF(obj);
+ if (res != 0) {
+ return -1;
+ }
+
+ // Fill in the blanks and validate the result.
+ data->interp = interp->id;
+ if (_check_xidata(tstate, data) != 0) {
+ _PyCrossInterpreterData_Release(data);
+ return -1;
+ }
+
+ return 0;
+}
+
+static void
+_release_xidata(void *arg)
+{
+ _PyCrossInterpreterData *data = (_PyCrossInterpreterData *)arg;
+ if (data->free != NULL) {
+ data->free(data->data);
+ }
+ Py_XDECREF(data->obj);
+}
+
+static void
+_call_in_interpreter(struct _gilstate_runtime_state *gilstate,
+ PyInterpreterState *interp,
+ void (*func)(void *), void *arg)
+{
+ /* We would use Py_AddPendingCall() if it weren't specific to the
+ * main interpreter (see bpo-33608). In the meantime we take a
+ * naive approach.
+ */
+ PyThreadState *save_tstate = NULL;
+ if (interp != _PyRuntimeGILState_GetThreadState(gilstate)->interp) {
+ // XXX Using the "head" thread isn't strictly correct.
+ PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);
+ // XXX Possible GILState issues?
+ save_tstate = _PyThreadState_Swap(gilstate, tstate);
+ }
+
+ func(arg);
+
+ // Switch back.
+ if (save_tstate != NULL) {
+ _PyThreadState_Swap(gilstate, save_tstate);
+ }
+}
+
+void
+_PyCrossInterpreterData_Release(_PyCrossInterpreterData *data)
+{
+ if (data->data == NULL && data->obj == NULL) {
+ // Nothing to release!
+ return;
+ }
+
+ // Switch to the original interpreter.
+ PyInterpreterState *interp = _PyInterpreterState_LookUpID(data->interp);
+ if (interp == NULL) {
+ // The interpreter was already destroyed.
+ if (data->free != NULL) {
+ // XXX Someone leaked some memory...
+ }
+ return;
+ }
+
+ // "Release" the data and/or the object.
+ struct _gilstate_runtime_state *gilstate = &_PyRuntime.gilstate;
+ _call_in_interpreter(gilstate, interp, _release_xidata, data);
+}
+
+PyObject *
+_PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *data)
+{
+ return data->new_object(data);
+}
+
+/* registry of {type -> crossinterpdatafunc} */
+
+/* For now we use a global registry of shareable classes. An
+ alternative would be to add a tp_* slot for a class's
+ crossinterpdatafunc. It would be simpler and more efficient. */
+
+static int
+_register_xidata(struct _xidregistry *xidregistry, PyTypeObject *cls,
+ crossinterpdatafunc getdata)
+{
+ // Note that we effectively replace already registered classes
+ // rather than failing.
+ struct _xidregitem *newhead = PyMem_RawMalloc(sizeof(struct _xidregitem));
+ if (newhead == NULL)
+ return -1;
+ newhead->cls = cls;
+ newhead->getdata = getdata;
+ newhead->next = xidregistry->head;
+ xidregistry->head = newhead;
+ return 0;
+}
+
+static void _register_builtins_for_crossinterpreter_data(struct _xidregistry *xidregistry);
+
+int
+_PyCrossInterpreterData_RegisterClass(PyTypeObject *cls,
+ crossinterpdatafunc getdata)
+{
+ if (!PyType_Check(cls)) {
+ PyErr_Format(PyExc_ValueError, "only classes may be registered");
+ return -1;
+ }
+ if (getdata == NULL) {
+ PyErr_Format(PyExc_ValueError, "missing 'getdata' func");
+ return -1;
+ }
+
+ // Make sure the class isn't ever deallocated.
+ Py_INCREF((PyObject *)cls);
+
+ struct _xidregistry *xidregistry = &_PyRuntime.xidregistry ;
+ PyThread_acquire_lock(xidregistry->mutex, WAIT_LOCK);
+ if (xidregistry->head == NULL) {
+ _register_builtins_for_crossinterpreter_data(xidregistry);
+ }
+ int res = _register_xidata(xidregistry, cls, getdata);
+ PyThread_release_lock(xidregistry->mutex);
+ return res;
+}
+
+/* Cross-interpreter objects are looked up by exact match on the class.
+ We can reassess this policy when we move from a global registry to a
+ tp_* slot. */
+
+crossinterpdatafunc
+_PyCrossInterpreterData_Lookup(PyObject *obj)
+{
+ struct _xidregistry *xidregistry = &_PyRuntime.xidregistry ;
+ PyObject *cls = PyObject_Type(obj);
+ crossinterpdatafunc getdata = NULL;
+ PyThread_acquire_lock(xidregistry->mutex, WAIT_LOCK);
+ struct _xidregitem *cur = xidregistry->head;
+ if (cur == NULL) {
+ _register_builtins_for_crossinterpreter_data(xidregistry);
+ cur = xidregistry->head;
+ }
+ for(; cur != NULL; cur = cur->next) {
+ if (cur->cls == (PyTypeObject *)cls) {
+ getdata = cur->getdata;
+ break;
+ }
+ }
+ Py_DECREF(cls);
+ PyThread_release_lock(xidregistry->mutex);
+ return getdata;
+}
+
+/* cross-interpreter data for builtin types */
+
+struct _shared_bytes_data {
+ char *bytes;
+ Py_ssize_t len;
+};
+
+static PyObject *
+_new_bytes_object(_PyCrossInterpreterData *data)
+{
+ struct _shared_bytes_data *shared = (struct _shared_bytes_data *)(data->data);
+ return PyBytes_FromStringAndSize(shared->bytes, shared->len);
+}
+
+static int
+_bytes_shared(PyObject *obj, _PyCrossInterpreterData *data)
+{
+ struct _shared_bytes_data *shared = PyMem_NEW(struct _shared_bytes_data, 1);
+ if (PyBytes_AsStringAndSize(obj, &shared->bytes, &shared->len) < 0) {
+ return -1;
+ }
+ data->data = (void *)shared;
+ Py_INCREF(obj);
+ data->obj = obj; // Will be "released" (decref'ed) when data released.
+ data->new_object = _new_bytes_object;
+ data->free = PyMem_Free;
+ return 0;
+}
+
+struct _shared_str_data {
+ int kind;
+ const void *buffer;
+ Py_ssize_t len;
+};
+
+static PyObject *
+_new_str_object(_PyCrossInterpreterData *data)
+{
+ struct _shared_str_data *shared = (struct _shared_str_data *)(data->data);
+ return PyUnicode_FromKindAndData(shared->kind, shared->buffer, shared->len);
+}
+
+static int
+_str_shared(PyObject *obj, _PyCrossInterpreterData *data)
+{
+ struct _shared_str_data *shared = PyMem_NEW(struct _shared_str_data, 1);
+ shared->kind = PyUnicode_KIND(obj);
+ shared->buffer = PyUnicode_DATA(obj);
+ shared->len = PyUnicode_GET_LENGTH(obj);
+ data->data = (void *)shared;
+ Py_INCREF(obj);
+ data->obj = obj; // Will be "released" (decref'ed) when data released.
+ data->new_object = _new_str_object;
+ data->free = PyMem_Free;
+ return 0;
+}
+
+static PyObject *
+_new_long_object(_PyCrossInterpreterData *data)
+{
+ return PyLong_FromSsize_t((Py_ssize_t)(data->data));
+}
+
+static int
+_long_shared(PyObject *obj, _PyCrossInterpreterData *data)
+{
+ /* Note that this means the size of shareable ints is bounded by
+ * sys.maxsize. Hence on 32-bit architectures that is half the
+ * size of maximum shareable ints on 64-bit.
+ */
+ Py_ssize_t value = PyLong_AsSsize_t(obj);
+ if (value == -1 && PyErr_Occurred()) {
+ if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
+ PyErr_SetString(PyExc_OverflowError, "try sending as bytes");
+ }
+ return -1;
+ }
+ data->data = (void *)value;
+ data->obj = NULL;
+ data->new_object = _new_long_object;
+ data->free = NULL;
+ return 0;
+}
+
+static PyObject *
+_new_none_object(_PyCrossInterpreterData *data)
+{
+ // XXX Singleton refcounts are problematic across interpreters...
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+static int
+_none_shared(PyObject *obj, _PyCrossInterpreterData *data)
+{
+ data->data = NULL;
+ // data->obj remains NULL
+ data->new_object = _new_none_object;
+ data->free = NULL; // There is nothing to free.
+ return 0;
+}
+
+static void
+_register_builtins_for_crossinterpreter_data(struct _xidregistry *xidregistry)
+{
+ // None
+ if (_register_xidata(xidregistry, (PyTypeObject *)PyObject_Type(Py_None), _none_shared) != 0) {
+ Py_FatalError("could not register None for cross-interpreter sharing");
+ }
+
+ // int
+ if (_register_xidata(xidregistry, &PyLong_Type, _long_shared) != 0) {
+ Py_FatalError("could not register int for cross-interpreter sharing");
+ }
+
+ // bytes
+ if (_register_xidata(xidregistry, &PyBytes_Type, _bytes_shared) != 0) {
+ Py_FatalError("could not register bytes for cross-interpreter sharing");
+ }
+
+ // str
+ if (_register_xidata(xidregistry, &PyUnicode_Type, _str_shared) != 0) {
+ Py_FatalError("could not register str for cross-interpreter sharing");
+ }
+}
+
+
+_PyFrameEvalFunction
+_PyInterpreterState_GetEvalFrameFunc(PyInterpreterState *interp)
+{
+ return interp->eval_frame;
+}
+
+
+void
+_PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp,
+ _PyFrameEvalFunction eval_frame)
+{
+ interp->eval_frame = eval_frame;
+}
+
+
+const PyConfig*
+_PyInterpreterState_GetConfig(PyInterpreterState *interp)
+{
+ return &interp->config;
+}
+
+
+PyStatus
+_PyInterpreterState_SetConfig(PyInterpreterState *interp,
+ const PyConfig *config)
+{
+ return _PyConfig_Copy(&interp->config, config);
+}
+
+
+const PyConfig*
+_Py_GetConfig(void)
+{
+ assert(PyGILState_Check());
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyInterpreterState_GetConfig(tstate->interp);
+}
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/tools/python3/src/Python/pystrcmp.c b/contrib/tools/python3/src/Python/pystrcmp.c
index 728ce79676..9224ce4c70 100644
--- a/contrib/tools/python3/src/Python/pystrcmp.c
+++ b/contrib/tools/python3/src/Python/pystrcmp.c
@@ -6,25 +6,25 @@
int
PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size)
{
- const unsigned char *p1, *p2;
+ const unsigned char *p1, *p2;
if (size == 0)
return 0;
- p1 = (const unsigned char *)s1;
- p2 = (const unsigned char *)s2;
- for (; (--size > 0) && *p1 && *p2 && (tolower(*p1) == tolower(*p2));
- p1++, p2++) {
- ;
+ p1 = (const unsigned char *)s1;
+ p2 = (const unsigned char *)s2;
+ for (; (--size > 0) && *p1 && *p2 && (tolower(*p1) == tolower(*p2));
+ p1++, p2++) {
+ ;
}
- return tolower(*p1) - tolower(*p2);
+ return tolower(*p1) - tolower(*p2);
}
int
PyOS_mystricmp(const char *s1, const char *s2)
{
- const unsigned char *p1 = (const unsigned char *)s1;
- const unsigned char *p2 = (const unsigned char *)s2;
- for (; *p1 && *p2 && (tolower(*p1) == tolower(*p2)); p1++, p2++) {
+ const unsigned char *p1 = (const unsigned char *)s1;
+ const unsigned char *p2 = (const unsigned char *)s2;
+ for (; *p1 && *p2 && (tolower(*p1) == tolower(*p2)); p1++, p2++) {
;
}
- return (tolower(*p1) - tolower(*p2));
+ return (tolower(*p1) - tolower(*p2));
}
diff --git a/contrib/tools/python3/src/Python/pystrhex.c b/contrib/tools/python3/src/Python/pystrhex.c
index f467e23082..b74e57ad91 100644
--- a/contrib/tools/python3/src/Python/pystrhex.c
+++ b/contrib/tools/python3/src/Python/pystrhex.c
@@ -2,142 +2,142 @@
#include "Python.h"
-#include "pystrhex.h"
-
+#include "pystrhex.h"
+
static PyObject *_Py_strhex_impl(const char* argbuf, const Py_ssize_t arglen,
- const PyObject* sep, int bytes_per_sep_group,
- const int return_bytes)
+ const PyObject* sep, int bytes_per_sep_group,
+ const int return_bytes)
{
- assert(arglen >= 0);
-
- Py_UCS1 sep_char = 0;
- if (sep) {
- Py_ssize_t seplen = PyObject_Length((PyObject*)sep);
- if (seplen < 0) {
- return NULL;
- }
- if (seplen != 1) {
- PyErr_SetString(PyExc_ValueError, "sep must be length 1.");
- return NULL;
- }
- if (PyUnicode_Check(sep)) {
- if (PyUnicode_READY(sep))
- return NULL;
- if (PyUnicode_KIND(sep) != PyUnicode_1BYTE_KIND) {
- PyErr_SetString(PyExc_ValueError, "sep must be ASCII.");
- return NULL;
- }
- sep_char = PyUnicode_READ_CHAR(sep, 0);
- }
- else if (PyBytes_Check(sep)) {
- sep_char = PyBytes_AS_STRING(sep)[0];
- }
- else {
- PyErr_SetString(PyExc_TypeError, "sep must be str or bytes.");
- return NULL;
- }
- if (sep_char > 127 && !return_bytes) {
- PyErr_SetString(PyExc_ValueError, "sep must be ASCII.");
- return NULL;
- }
- }
- else {
- bytes_per_sep_group = 0;
- }
-
- unsigned int abs_bytes_per_sep = abs(bytes_per_sep_group);
- Py_ssize_t resultlen = 0;
- if (bytes_per_sep_group && arglen > 0) {
- /* How many sep characters we'll be inserting. */
- resultlen = (arglen - 1) / abs_bytes_per_sep;
- }
- /* Bounds checking for our Py_ssize_t indices. */
- if (arglen >= PY_SSIZE_T_MAX / 2 - resultlen) {
+ assert(arglen >= 0);
+
+ Py_UCS1 sep_char = 0;
+ if (sep) {
+ Py_ssize_t seplen = PyObject_Length((PyObject*)sep);
+ if (seplen < 0) {
+ return NULL;
+ }
+ if (seplen != 1) {
+ PyErr_SetString(PyExc_ValueError, "sep must be length 1.");
+ return NULL;
+ }
+ if (PyUnicode_Check(sep)) {
+ if (PyUnicode_READY(sep))
+ return NULL;
+ if (PyUnicode_KIND(sep) != PyUnicode_1BYTE_KIND) {
+ PyErr_SetString(PyExc_ValueError, "sep must be ASCII.");
+ return NULL;
+ }
+ sep_char = PyUnicode_READ_CHAR(sep, 0);
+ }
+ else if (PyBytes_Check(sep)) {
+ sep_char = PyBytes_AS_STRING(sep)[0];
+ }
+ else {
+ PyErr_SetString(PyExc_TypeError, "sep must be str or bytes.");
+ return NULL;
+ }
+ if (sep_char > 127 && !return_bytes) {
+ PyErr_SetString(PyExc_ValueError, "sep must be ASCII.");
+ return NULL;
+ }
+ }
+ else {
+ bytes_per_sep_group = 0;
+ }
+
+ unsigned int abs_bytes_per_sep = abs(bytes_per_sep_group);
+ Py_ssize_t resultlen = 0;
+ if (bytes_per_sep_group && arglen > 0) {
+ /* How many sep characters we'll be inserting. */
+ resultlen = (arglen - 1) / abs_bytes_per_sep;
+ }
+ /* Bounds checking for our Py_ssize_t indices. */
+ if (arglen >= PY_SSIZE_T_MAX / 2 - resultlen) {
return PyErr_NoMemory();
- }
- resultlen += arglen * 2;
-
- if ((size_t)abs_bytes_per_sep >= (size_t)arglen) {
- bytes_per_sep_group = 0;
- abs_bytes_per_sep = 0;
- }
-
- PyObject *retval;
- Py_UCS1 *retbuf;
+ }
+ resultlen += arglen * 2;
+
+ if ((size_t)abs_bytes_per_sep >= (size_t)arglen) {
+ bytes_per_sep_group = 0;
+ abs_bytes_per_sep = 0;
+ }
+
+ PyObject *retval;
+ Py_UCS1 *retbuf;
if (return_bytes) {
/* If _PyBytes_FromSize() were public we could avoid malloc+copy. */
- retval = PyBytes_FromStringAndSize(NULL, resultlen);
- if (!retval) {
- return NULL;
- }
- retbuf = (Py_UCS1 *)PyBytes_AS_STRING(retval);
- }
- else {
- retval = PyUnicode_New(resultlen, 127);
- if (!retval) {
+ retval = PyBytes_FromStringAndSize(NULL, resultlen);
+ if (!retval) {
return NULL;
- }
+ }
+ retbuf = (Py_UCS1 *)PyBytes_AS_STRING(retval);
+ }
+ else {
+ retval = PyUnicode_New(resultlen, 127);
+ if (!retval) {
+ return NULL;
+ }
retbuf = PyUnicode_1BYTE_DATA(retval);
}
- /* Hexlify */
- Py_ssize_t i, j;
- unsigned char c;
-
- if (bytes_per_sep_group == 0) {
- for (i = j = 0; i < arglen; ++i) {
- assert((j + 1) < resultlen);
- c = argbuf[i];
- retbuf[j++] = Py_hexdigits[c >> 4];
- retbuf[j++] = Py_hexdigits[c & 0x0f];
- }
- assert(j == resultlen);
- }
- else {
- /* The number of complete chunk+sep periods */
- Py_ssize_t chunks = (arglen - 1) / abs_bytes_per_sep;
- Py_ssize_t chunk;
- unsigned int k;
-
- if (bytes_per_sep_group < 0) {
- i = j = 0;
- for (chunk = 0; chunk < chunks; chunk++) {
- for (k = 0; k < abs_bytes_per_sep; k++) {
- c = argbuf[i++];
- retbuf[j++] = Py_hexdigits[c >> 4];
- retbuf[j++] = Py_hexdigits[c & 0x0f];
- }
- retbuf[j++] = sep_char;
- }
- while (i < arglen) {
- c = argbuf[i++];
- retbuf[j++] = Py_hexdigits[c >> 4];
- retbuf[j++] = Py_hexdigits[c & 0x0f];
- }
- assert(j == resultlen);
- }
- else {
- i = arglen - 1;
- j = resultlen - 1;
- for (chunk = 0; chunk < chunks; chunk++) {
- for (k = 0; k < abs_bytes_per_sep; k++) {
- c = argbuf[i--];
- retbuf[j--] = Py_hexdigits[c & 0x0f];
- retbuf[j--] = Py_hexdigits[c >> 4];
- }
- retbuf[j--] = sep_char;
- }
- while (i >= 0) {
- c = argbuf[i--];
- retbuf[j--] = Py_hexdigits[c & 0x0f];
- retbuf[j--] = Py_hexdigits[c >> 4];
- }
- assert(j == -1);
- }
+ /* Hexlify */
+ Py_ssize_t i, j;
+ unsigned char c;
+
+ if (bytes_per_sep_group == 0) {
+ for (i = j = 0; i < arglen; ++i) {
+ assert((j + 1) < resultlen);
+ c = argbuf[i];
+ retbuf[j++] = Py_hexdigits[c >> 4];
+ retbuf[j++] = Py_hexdigits[c & 0x0f];
+ }
+ assert(j == resultlen);
+ }
+ else {
+ /* The number of complete chunk+sep periods */
+ Py_ssize_t chunks = (arglen - 1) / abs_bytes_per_sep;
+ Py_ssize_t chunk;
+ unsigned int k;
+
+ if (bytes_per_sep_group < 0) {
+ i = j = 0;
+ for (chunk = 0; chunk < chunks; chunk++) {
+ for (k = 0; k < abs_bytes_per_sep; k++) {
+ c = argbuf[i++];
+ retbuf[j++] = Py_hexdigits[c >> 4];
+ retbuf[j++] = Py_hexdigits[c & 0x0f];
+ }
+ retbuf[j++] = sep_char;
+ }
+ while (i < arglen) {
+ c = argbuf[i++];
+ retbuf[j++] = Py_hexdigits[c >> 4];
+ retbuf[j++] = Py_hexdigits[c & 0x0f];
+ }
+ assert(j == resultlen);
+ }
+ else {
+ i = arglen - 1;
+ j = resultlen - 1;
+ for (chunk = 0; chunk < chunks; chunk++) {
+ for (k = 0; k < abs_bytes_per_sep; k++) {
+ c = argbuf[i--];
+ retbuf[j--] = Py_hexdigits[c & 0x0f];
+ retbuf[j--] = Py_hexdigits[c >> 4];
+ }
+ retbuf[j--] = sep_char;
+ }
+ while (i >= 0) {
+ c = argbuf[i--];
+ retbuf[j--] = Py_hexdigits[c & 0x0f];
+ retbuf[j--] = Py_hexdigits[c >> 4];
+ }
+ assert(j == -1);
+ }
}
#ifdef Py_DEBUG
- if (!return_bytes) {
+ if (!return_bytes) {
assert(_PyUnicode_CheckConsistency(retval, 1));
}
#endif
@@ -145,28 +145,28 @@ static PyObject *_Py_strhex_impl(const char* argbuf, const Py_ssize_t arglen,
return retval;
}
-PyObject * _Py_strhex(const char* argbuf, const Py_ssize_t arglen)
+PyObject * _Py_strhex(const char* argbuf, const Py_ssize_t arglen)
+{
+ return _Py_strhex_impl(argbuf, arglen, NULL, 0, 0);
+}
+
+/* Same as above but returns a bytes() instead of str() to avoid the
+ * need to decode the str() when bytes are needed. */
+PyObject * _Py_strhex_bytes(const char* argbuf, const Py_ssize_t arglen)
+{
+ return _Py_strhex_impl(argbuf, arglen, NULL, 0, 1);
+}
+
+/* These variants include support for a separator between every N bytes: */
+
+PyObject * _Py_strhex_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group)
{
- return _Py_strhex_impl(argbuf, arglen, NULL, 0, 0);
+ return _Py_strhex_impl(argbuf, arglen, sep, bytes_per_group, 0);
}
/* Same as above but returns a bytes() instead of str() to avoid the
* need to decode the str() when bytes are needed. */
-PyObject * _Py_strhex_bytes(const char* argbuf, const Py_ssize_t arglen)
+PyObject * _Py_strhex_bytes_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group)
{
- return _Py_strhex_impl(argbuf, arglen, NULL, 0, 1);
+ return _Py_strhex_impl(argbuf, arglen, sep, bytes_per_group, 1);
}
-
-/* These variants include support for a separator between every N bytes: */
-
-PyObject * _Py_strhex_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group)
-{
- return _Py_strhex_impl(argbuf, arglen, sep, bytes_per_group, 0);
-}
-
-/* Same as above but returns a bytes() instead of str() to avoid the
- * need to decode the str() when bytes are needed. */
-PyObject * _Py_strhex_bytes_with_sep(const char* argbuf, const Py_ssize_t arglen, const PyObject* sep, const int bytes_per_group)
-{
- return _Py_strhex_impl(argbuf, arglen, sep, bytes_per_group, 1);
-}
diff --git a/contrib/tools/python3/src/Python/pystrtod.c b/contrib/tools/python3/src/Python/pystrtod.c
index a0cfbdd33b..1c8202c776 100644
--- a/contrib/tools/python3/src/Python/pystrtod.c
+++ b/contrib/tools/python3/src/Python/pystrtod.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; c-file-style: "python" -*- */
#include <Python.h>
-#include "pycore_dtoa.h"
+#include "pycore_dtoa.h"
#include <locale.h>
/* Case-insensitive string match used for nan and inf detection; t should be
@@ -352,15 +352,15 @@ PyOS_string_to_double(const char *s,
else if (!endptr && (fail_pos == s || *fail_pos != '\0'))
PyErr_Format(PyExc_ValueError,
"could not convert string to float: "
- "'%.200s'", s);
+ "'%.200s'", s);
else if (fail_pos == s)
PyErr_Format(PyExc_ValueError,
"could not convert string to float: "
- "'%.200s'", s);
+ "'%.200s'", s);
else if (errno == ERANGE && fabs(x) >= 1.0 && overflow_exception)
PyErr_Format(overflow_exception,
"value too large to convert to float: "
- "'%.200s'", s);
+ "'%.200s'", s);
else
result = x;
@@ -793,7 +793,7 @@ _PyOS_ascii_formatd(char *buffer,
/* The fallback code to use if _Py_dg_dtoa is not available. */
-char * PyOS_double_to_string(double val,
+char * PyOS_double_to_string(double val,
char format_code,
int precision,
int flags,
@@ -1240,7 +1240,7 @@ format_float_short(double d, char format_code,
}
-char * PyOS_double_to_string(double val,
+char * PyOS_double_to_string(double val,
char format_code,
int precision,
int flags,
diff --git a/contrib/tools/python3/src/Python/pythonrun.c b/contrib/tools/python3/src/Python/pythonrun.c
index 913cdece0a..364101e99d 100644
--- a/contrib/tools/python3/src/Python/pythonrun.c
+++ b/contrib/tools/python3/src/Python/pythonrun.c
@@ -2,7 +2,7 @@
/* Top level execution of Python code (including in __main__) */
/* To help control the interfaces between the startup, execution and
- * shutdown code, the phases are split across separate modules (bootstrap,
+ * shutdown code, the phases are split across separate modules (bootstrap,
* pythonrun, shutdown)
*/
@@ -11,37 +11,37 @@
#include "Python.h"
#include "Python-ast.h"
-#undef Yield /* undefine macro conflicting with <winbase.h> */
-
-#include "pycore_interp.h" // PyInterpreterState.importlib
-#include "pycore_object.h" // _PyDebug_PrintTotalRefs(),
- // _PyType_GetQualName()
-#include "pycore_pyerrors.h" // _PyErr_Fetch
-#include "pycore_pylifecycle.h" // _Py_UnhandledKeyboardInterrupt
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "pycore_sysmodule.h" // _PySys_Audit()
-
-#include "node.h" // node
-#include "token.h" // INDENT
-#include "parsetok.h" // perrdetail
-#include "errcode.h" // E_EOF
-#include "code.h" // PyCodeObject
-#include "symtable.h" // PySymtable_BuildObject()
-#include "ast.h" // PyAST_FromNodeObject()
-#include "marshal.h" // PyMarshal_ReadLongFromFile()
-
-#include "pegen_interface.h" // PyPegen_ASTFrom*
-
+#undef Yield /* undefine macro conflicting with <winbase.h> */
+
+#include "pycore_interp.h" // PyInterpreterState.importlib
+#include "pycore_object.h" // _PyDebug_PrintTotalRefs(),
+ // _PyType_GetQualName()
+#include "pycore_pyerrors.h" // _PyErr_Fetch
+#include "pycore_pylifecycle.h" // _Py_UnhandledKeyboardInterrupt
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_sysmodule.h" // _PySys_Audit()
+
+#include "node.h" // node
+#include "token.h" // INDENT
+#include "parsetok.h" // perrdetail
+#include "errcode.h" // E_EOF
+#include "code.h" // PyCodeObject
+#include "symtable.h" // PySymtable_BuildObject()
+#include "ast.h" // PyAST_FromNodeObject()
+#include "marshal.h" // PyMarshal_ReadLongFromFile()
+
+#include "pegen_interface.h" // PyPegen_ASTFrom*
+
#ifdef MS_WINDOWS
-# include "malloc.h" // alloca()
+# include "malloc.h" // alloca()
#endif
#ifdef MS_WINDOWS
-# undef BYTE
-# include "windows.h"
+# undef BYTE
+# include "windows.h"
#endif
-
+
_Py_IDENTIFIER(builtins);
_Py_IDENTIFIER(excepthook);
_Py_IDENTIFIER(flush);
@@ -59,22 +59,22 @@ _Py_static_string(PyId_string, "<string>");
extern "C" {
#endif
-extern Py_EXPORTED_SYMBOL grammar _PyParser_Grammar; /* From graminit.c */
+extern Py_EXPORTED_SYMBOL grammar _PyParser_Grammar; /* From graminit.c */
/* Forward */
static void flush_io(void);
static PyObject *run_mod(mod_ty, PyObject *, PyObject *, PyObject *,
PyCompilerFlags *, PyArena *);
-static PyObject *run_pyc_file(FILE *, PyObject *, PyObject *,
+static PyObject *run_pyc_file(FILE *, PyObject *, PyObject *,
PyCompilerFlags *);
static void err_input(perrdetail *);
static void err_free(perrdetail *);
static int PyRun_InteractiveOneObjectEx(FILE *, PyObject *, PyCompilerFlags *);
-static PyObject* pyrun_file(FILE *fp, PyObject *filename, int start,
- PyObject *globals, PyObject *locals, int closeit,
- PyCompilerFlags *flags);
+static PyObject* pyrun_file(FILE *fp, PyObject *filename, int start,
+ PyObject *globals, PyObject *locals, int closeit,
+ PyCompilerFlags *flags);
+
-
/* Parse input from a file and execute it */
int
PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit,
@@ -97,10 +97,10 @@ PyRun_InteractiveLoopFlags(FILE *fp, const char *filename_str, PyCompilerFlags *
{
PyObject *filename, *v;
int ret, err;
- PyCompilerFlags local_flags = _PyCompilerFlags_INIT;
+ PyCompilerFlags local_flags = _PyCompilerFlags_INIT;
int nomem_count = 0;
#ifdef Py_REF_DEBUG
- int show_ref_count = _Py_GetConfig()->show_ref_count;
+ int show_ref_count = _Py_GetConfig()->show_ref_count;
#endif
filename = PyUnicode_DecodeFSDefault(filename_str);
@@ -165,8 +165,8 @@ static int PARSER_FLAGS(PyCompilerFlags *flags)
parser_flags |= PyPARSE_IGNORE_COOKIE;
if (flags->cf_flags & CO_FUTURE_BARRY_AS_BDFL)
parser_flags |= PyPARSE_BARRY_AS_BDFL;
- if (flags->cf_flags & PyCF_TYPE_COMMENTS)
- parser_flags |= PyPARSE_TYPE_COMMENTS;
+ if (flags->cf_flags & PyCF_TYPE_COMMENTS)
+ parser_flags |= PyPARSE_TYPE_COMMENTS;
return parser_flags;
}
@@ -190,7 +190,7 @@ PyRun_InteractiveOneObjectEx(FILE *fp, PyObject *filename,
PyArena *arena;
const char *ps1 = "", *ps2 = "", *enc = NULL;
int errcode = 0;
- int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
+ int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
_Py_IDENTIFIER(encoding);
_Py_IDENTIFIER(__main__);
@@ -243,17 +243,17 @@ PyRun_InteractiveOneObjectEx(FILE *fp, PyObject *filename,
Py_XDECREF(oenc);
return -1;
}
-
- if (use_peg) {
- mod = PyPegen_ASTFromFileObject(fp, filename, Py_single_input,
- enc, ps1, ps2, flags, &errcode, arena);
- }
- else {
- mod = PyParser_ASTFromFileObject(fp, filename, enc,
- Py_single_input, ps1, ps2,
- flags, &errcode, arena);
- }
-
+
+ if (use_peg) {
+ mod = PyPegen_ASTFromFileObject(fp, filename, Py_single_input,
+ enc, ps1, ps2, flags, &errcode, arena);
+ }
+ else {
+ mod = PyParser_ASTFromFileObject(fp, filename, enc,
+ Py_single_input, ps1, ps2,
+ flags, &errcode, arena);
+ }
+
Py_XDECREF(v);
Py_XDECREF(w);
Py_XDECREF(oenc);
@@ -315,86 +315,86 @@ PyRun_InteractiveOneFlags(FILE *fp, const char *filename_str, PyCompilerFlags *f
the file type, and, if we may close it, at the first few bytes. */
static int
-maybe_pyc_file(FILE *fp, PyObject *filename, int closeit)
-{
- PyObject *ext = PyUnicode_FromString(".pyc");
- if (ext == NULL) {
- return -1;
- }
- Py_ssize_t endswith = PyUnicode_Tailmatch(filename, ext, 0, PY_SSIZE_T_MAX, +1);
- Py_DECREF(ext);
- if (endswith) {
+maybe_pyc_file(FILE *fp, PyObject *filename, int closeit)
+{
+ PyObject *ext = PyUnicode_FromString(".pyc");
+ if (ext == NULL) {
+ return -1;
+ }
+ Py_ssize_t endswith = PyUnicode_Tailmatch(filename, ext, 0, PY_SSIZE_T_MAX, +1);
+ Py_DECREF(ext);
+ if (endswith) {
return 1;
- }
+ }
/* Only look into the file if we are allowed to close it, since
it then should also be seekable. */
- if (!closeit) {
- return 0;
- }
-
- /* Read only two bytes of the magic. If the file was opened in
- text mode, the bytes 3 and 4 of the magic (\r\n) might not
- be read as they are on disk. */
- unsigned int halfmagic = PyImport_GetMagicNumber() & 0xFFFF;
- unsigned char buf[2];
- /* Mess: In case of -x, the stream is NOT at its start now,
- and ungetc() was used to push back the first newline,
- which makes the current stream position formally undefined,
- and a x-platform nightmare.
- Unfortunately, we have no direct way to know whether -x
- was specified. So we use a terrible hack: if the current
- stream position is not 0, we assume -x was specified, and
- give up. Bug 132850 on SourceForge spells out the
- hopelessness of trying anything else (fseek and ftell
- don't work predictably x-platform for text-mode files).
- */
- int ispyc = 0;
- if (ftell(fp) == 0) {
- if (fread(buf, 1, 2, fp) == 2 &&
- ((unsigned int)buf[1]<<8 | buf[0]) == halfmagic)
- ispyc = 1;
- rewind(fp);
- }
- return ispyc;
-}
-
-
+ if (!closeit) {
+ return 0;
+ }
+
+ /* Read only two bytes of the magic. If the file was opened in
+ text mode, the bytes 3 and 4 of the magic (\r\n) might not
+ be read as they are on disk. */
+ unsigned int halfmagic = PyImport_GetMagicNumber() & 0xFFFF;
+ unsigned char buf[2];
+ /* Mess: In case of -x, the stream is NOT at its start now,
+ and ungetc() was used to push back the first newline,
+ which makes the current stream position formally undefined,
+ and a x-platform nightmare.
+ Unfortunately, we have no direct way to know whether -x
+ was specified. So we use a terrible hack: if the current
+ stream position is not 0, we assume -x was specified, and
+ give up. Bug 132850 on SourceForge spells out the
+ hopelessness of trying anything else (fseek and ftell
+ don't work predictably x-platform for text-mode files).
+ */
+ int ispyc = 0;
+ if (ftell(fp) == 0) {
+ if (fread(buf, 1, 2, fp) == 2 &&
+ ((unsigned int)buf[1]<<8 | buf[0]) == halfmagic)
+ ispyc = 1;
+ rewind(fp);
+ }
+ return ispyc;
+}
+
+
static int
-set_main_loader(PyObject *d, PyObject *filename, const char *loader_name)
+set_main_loader(PyObject *d, PyObject *filename, const char *loader_name)
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- PyObject *bootstrap = PyObject_GetAttrString(interp->importlib,
- "_bootstrap_external");
- if (bootstrap == NULL) {
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ PyObject *bootstrap = PyObject_GetAttrString(interp->importlib,
+ "_bootstrap_external");
+ if (bootstrap == NULL) {
return -1;
}
-
- PyObject *loader_type = PyObject_GetAttrString(bootstrap, loader_name);
- Py_DECREF(bootstrap);
+
+ PyObject *loader_type = PyObject_GetAttrString(bootstrap, loader_name);
+ Py_DECREF(bootstrap);
if (loader_type == NULL) {
return -1;
}
-
- PyObject *loader = PyObject_CallFunction(loader_type,
- "sO", "__main__", filename);
+
+ PyObject *loader = PyObject_CallFunction(loader_type,
+ "sO", "__main__", filename);
Py_DECREF(loader_type);
if (loader == NULL) {
return -1;
}
-
+
if (PyDict_SetItemString(d, "__loader__", loader) < 0) {
- Py_DECREF(loader);
- return -1;
+ Py_DECREF(loader);
+ return -1;
}
Py_DECREF(loader);
- return 0;
+ return 0;
}
-
-static int
-pyrun_simple_file(FILE *fp, PyObject *filename, int closeit,
- PyCompilerFlags *flags)
+
+static int
+pyrun_simple_file(FILE *fp, PyObject *filename, int closeit,
+ PyCompilerFlags *flags)
{
PyObject *m, *d, *v;
int set_file_name = 0, ret = -1;
@@ -405,7 +405,7 @@ pyrun_simple_file(FILE *fp, PyObject *filename, int closeit,
Py_INCREF(m);
d = PyModule_GetDict(m);
if (PyDict_GetItemString(d, "__file__") == NULL) {
- if (PyDict_SetItemString(d, "__file__", filename) < 0) {
+ if (PyDict_SetItemString(d, "__file__", filename) < 0) {
goto done;
}
if (PyDict_SetItemString(d, "__cached__", Py_None) < 0) {
@@ -413,21 +413,21 @@ pyrun_simple_file(FILE *fp, PyObject *filename, int closeit,
}
set_file_name = 1;
}
-
- int pyc = maybe_pyc_file(fp, filename, closeit);
- if (pyc < 0) {
- goto done;
- }
-
- if (pyc) {
+
+ int pyc = maybe_pyc_file(fp, filename, closeit);
+ if (pyc < 0) {
+ goto done;
+ }
+
+ if (pyc) {
FILE *pyc_fp;
/* Try to run a pyc file. First, re-open in binary */
- if (closeit) {
+ if (closeit) {
fclose(fp);
- }
-
- pyc_fp = _Py_fopen_obj(filename, "rb");
- if (pyc_fp == NULL) {
+ }
+
+ pyc_fp = _Py_fopen_obj(filename, "rb");
+ if (pyc_fp == NULL) {
fprintf(stderr, "python: Can't reopen .pyc file\n");
goto done;
}
@@ -438,17 +438,17 @@ pyrun_simple_file(FILE *fp, PyObject *filename, int closeit,
fclose(pyc_fp);
goto done;
}
- v = run_pyc_file(pyc_fp, d, d, flags);
+ v = run_pyc_file(pyc_fp, d, d, flags);
} else {
/* When running from stdin, leave __main__.__loader__ alone */
- if (PyUnicode_CompareWithASCIIString(filename, "<stdin>") != 0 &&
+ if (PyUnicode_CompareWithASCIIString(filename, "<stdin>") != 0 &&
set_main_loader(d, filename, "SourceFileLoader") < 0) {
fprintf(stderr, "python: failed to set __main__.__loader__\n");
ret = -1;
goto done;
}
- v = pyrun_file(fp, filename, Py_file_input, d, d,
- closeit, flags);
+ v = pyrun_file(fp, filename, Py_file_input, d, d,
+ closeit, flags);
}
flush_io();
if (v == NULL) {
@@ -459,34 +459,34 @@ pyrun_simple_file(FILE *fp, PyObject *filename, int closeit,
Py_DECREF(v);
ret = 0;
done:
- if (set_file_name) {
- if (PyDict_DelItemString(d, "__file__")) {
- PyErr_Clear();
- }
- if (PyDict_DelItemString(d, "__cached__")) {
- PyErr_Clear();
- }
- }
+ if (set_file_name) {
+ if (PyDict_DelItemString(d, "__file__")) {
+ PyErr_Clear();
+ }
+ if (PyDict_DelItemString(d, "__cached__")) {
+ PyErr_Clear();
+ }
+ }
Py_XDECREF(m);
return ret;
}
-
+
+int
+PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit,
+ PyCompilerFlags *flags)
+{
+ PyObject *filename_obj = PyUnicode_DecodeFSDefault(filename);
+ if (filename_obj == NULL) {
+ return -1;
+ }
+ int res = pyrun_simple_file(fp, filename_obj, closeit, flags);
+ Py_DECREF(filename_obj);
+ return res;
+}
+
+
int
-PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit,
- PyCompilerFlags *flags)
-{
- PyObject *filename_obj = PyUnicode_DecodeFSDefault(filename);
- if (filename_obj == NULL) {
- return -1;
- }
- int res = pyrun_simple_file(fp, filename_obj, closeit, flags);
- Py_DECREF(filename_obj);
- return res;
-}
-
-
-int
PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags)
{
PyObject *m, *d, *v;
@@ -505,9 +505,9 @@ PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags)
static int
parse_syntax_error(PyObject *err, PyObject **message, PyObject **filename,
- Py_ssize_t *lineno, Py_ssize_t *offset, PyObject **text)
+ Py_ssize_t *lineno, Py_ssize_t *offset, PyObject **text)
{
- Py_ssize_t hold;
+ Py_ssize_t hold;
PyObject *v;
_Py_IDENTIFIER(msg);
_Py_IDENTIFIER(filename);
@@ -540,7 +540,7 @@ parse_syntax_error(PyObject *err, PyObject **message, PyObject **filename,
v = _PyObject_GetAttrId(err, &PyId_lineno);
if (!v)
goto finally;
- hold = PyLong_AsSsize_t(v);
+ hold = PyLong_AsSsize_t(v);
Py_DECREF(v);
if (hold < 0 && PyErr_Occurred())
goto finally;
@@ -553,7 +553,7 @@ parse_syntax_error(PyObject *err, PyObject **message, PyObject **filename,
*offset = -1;
Py_DECREF(v);
} else {
- hold = PyLong_AsSsize_t(v);
+ hold = PyLong_AsSsize_t(v);
Py_DECREF(v);
if (hold < 0 && PyErr_Occurred())
goto finally;
@@ -579,95 +579,95 @@ finally:
}
static void
-print_error_text(PyObject *f, Py_ssize_t offset, PyObject *text_obj)
+print_error_text(PyObject *f, Py_ssize_t offset, PyObject *text_obj)
{
- /* Convert text to a char pointer; return if error */
- const char *text = PyUnicode_AsUTF8(text_obj);
+ /* Convert text to a char pointer; return if error */
+ const char *text = PyUnicode_AsUTF8(text_obj);
if (text == NULL)
return;
- /* Convert offset from 1-based to 0-based */
- offset--;
-
- /* Strip leading whitespace from text, adjusting offset as we go */
- while (*text == ' ' || *text == '\t' || *text == '\f') {
- text++;
- offset--;
- }
-
- /* Calculate text length excluding trailing newline */
- Py_ssize_t len = strlen(text);
- if (len > 0 && text[len-1] == '\n') {
- len--;
- }
-
- /* Clip offset to at most len */
- if (offset > len) {
- offset = len;
- }
-
- /* Skip past newlines embedded in text */
- for (;;) {
- const char *nl = strchr(text, '\n');
- if (nl == NULL) {
- break;
+ /* Convert offset from 1-based to 0-based */
+ offset--;
+
+ /* Strip leading whitespace from text, adjusting offset as we go */
+ while (*text == ' ' || *text == '\t' || *text == '\f') {
+ text++;
+ offset--;
+ }
+
+ /* Calculate text length excluding trailing newline */
+ Py_ssize_t len = strlen(text);
+ if (len > 0 && text[len-1] == '\n') {
+ len--;
+ }
+
+ /* Clip offset to at most len */
+ if (offset > len) {
+ offset = len;
+ }
+
+ /* Skip past newlines embedded in text */
+ for (;;) {
+ const char *nl = strchr(text, '\n');
+ if (nl == NULL) {
+ break;
}
- Py_ssize_t inl = nl - text;
- if (inl >= offset) {
- break;
+ Py_ssize_t inl = nl - text;
+ if (inl >= offset) {
+ break;
}
- inl += 1;
- text += inl;
- len -= inl;
- offset -= (int)inl;
+ inl += 1;
+ text += inl;
+ len -= inl;
+ offset -= (int)inl;
}
-
- /* Print text */
+
+ /* Print text */
PyFile_WriteString(" ", f);
PyFile_WriteString(text, f);
-
- /* Make sure there's a newline at the end */
- if (text[len] != '\n') {
+
+ /* Make sure there's a newline at the end */
+ if (text[len] != '\n') {
PyFile_WriteString("\n", f);
- }
-
- /* Don't print caret if it points to the left of the text */
- if (offset < 0)
+ }
+
+ /* Don't print caret if it points to the left of the text */
+ if (offset < 0)
return;
-
- /* Write caret line */
+
+ /* Write caret line */
PyFile_WriteString(" ", f);
- while (--offset >= 0) {
+ while (--offset >= 0) {
PyFile_WriteString(" ", f);
- }
+ }
PyFile_WriteString("^\n", f);
}
-
-int
-_Py_HandleSystemExit(int *exitcode_p)
+
+int
+_Py_HandleSystemExit(int *exitcode_p)
{
- int inspect = _Py_GetConfig()->inspect;
- if (inspect) {
+ int inspect = _Py_GetConfig()->inspect;
+ if (inspect) {
/* Don't exit if -i flag was given. This flag is set to 0
* when entering interactive mode for inspecting. */
- return 0;
- }
-
- if (!PyErr_ExceptionMatches(PyExc_SystemExit)) {
- return 0;
- }
-
- PyObject *exception, *value, *tb;
+ return 0;
+ }
+
+ if (!PyErr_ExceptionMatches(PyExc_SystemExit)) {
+ return 0;
+ }
+
+ PyObject *exception, *value, *tb;
PyErr_Fetch(&exception, &value, &tb);
-
+
fflush(stdout);
-
- int exitcode = 0;
- if (value == NULL || value == Py_None) {
+
+ int exitcode = 0;
+ if (value == NULL || value == Py_None) {
goto done;
- }
-
+ }
+
if (PyExceptionInstance_Check(value)) {
/* The error code should be in the `code' attribute. */
_Py_IDENTIFIER(code);
@@ -681,10 +681,10 @@ _Py_HandleSystemExit(int *exitcode_p)
/* If we failed to dig out the 'code' attribute,
just let the else clause below print the error. */
}
-
- if (PyLong_Check(value)) {
+
+ if (PyLong_Check(value)) {
exitcode = (int)PyLong_AsLong(value);
- }
+ }
else {
PyObject *sys_stderr = _PySys_GetObjectId(&PyId_stderr);
/* We clear the exception here to avoid triggering the assertion
@@ -701,7 +701,7 @@ _Py_HandleSystemExit(int *exitcode_p)
PySys_WriteStderr("\n");
exitcode = 1;
}
-
+
done:
/* Restore and clear the exception info, in order to properly decref
* the exception, value, and traceback. If we just exit instead,
@@ -710,63 +710,63 @@ _Py_HandleSystemExit(int *exitcode_p)
*/
PyErr_Restore(exception, value, tb);
PyErr_Clear();
- *exitcode_p = exitcode;
- return 1;
-}
-
-
-static void
-handle_system_exit(void)
-{
- int exitcode;
- if (_Py_HandleSystemExit(&exitcode)) {
- Py_Exit(exitcode);
- }
-}
-
-
-static void
-_PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
-{
+ *exitcode_p = exitcode;
+ return 1;
+}
+
+
+static void
+handle_system_exit(void)
+{
+ int exitcode;
+ if (_Py_HandleSystemExit(&exitcode)) {
+ Py_Exit(exitcode);
+ }
+}
+
+
+static void
+_PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
+{
PyObject *exception, *v, *tb, *hook;
- handle_system_exit();
-
- _PyErr_Fetch(tstate, &exception, &v, &tb);
- if (exception == NULL) {
- goto done;
+ handle_system_exit();
+
+ _PyErr_Fetch(tstate, &exception, &v, &tb);
+ if (exception == NULL) {
+ goto done;
}
-
- _PyErr_NormalizeException(tstate, &exception, &v, &tb);
+
+ _PyErr_NormalizeException(tstate, &exception, &v, &tb);
if (tb == NULL) {
tb = Py_None;
Py_INCREF(tb);
}
PyException_SetTraceback(v, tb);
- if (exception == NULL) {
- goto done;
- }
-
+ if (exception == NULL) {
+ goto done;
+ }
+
/* Now we know v != NULL too */
if (set_sys_last_vars) {
if (_PySys_SetObjectId(&PyId_last_type, exception) < 0) {
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
}
if (_PySys_SetObjectId(&PyId_last_value, v) < 0) {
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
}
if (_PySys_SetObjectId(&PyId_last_traceback, tb) < 0) {
- _PyErr_Clear(tstate);
- }
- }
- hook = _PySys_GetObjectId(&PyId_excepthook);
- if (_PySys_Audit(tstate, "sys.excepthook", "OOOO", hook ? hook : Py_None,
- exception, v, tb) < 0) {
- if (PyErr_ExceptionMatches(PyExc_RuntimeError)) {
+ _PyErr_Clear(tstate);
+ }
+ }
+ hook = _PySys_GetObjectId(&PyId_excepthook);
+ if (_PySys_Audit(tstate, "sys.excepthook", "OOOO", hook ? hook : Py_None,
+ exception, v, tb) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_RuntimeError)) {
PyErr_Clear();
- goto done;
+ goto done;
}
- _PyErr_WriteUnraisableMsg("in audit hook", NULL);
+ _PyErr_WriteUnraisableMsg("in audit hook", NULL);
}
if (hook) {
PyObject* stack[3];
@@ -777,11 +777,11 @@ _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
stack[2] = tb;
result = _PyObject_FastCall(hook, stack, 3);
if (result == NULL) {
- handle_system_exit();
-
+ handle_system_exit();
+
PyObject *exception2, *v2, *tb2;
- _PyErr_Fetch(tstate, &exception2, &v2, &tb2);
- _PyErr_NormalizeException(tstate, &exception2, &v2, &tb2);
+ _PyErr_Fetch(tstate, &exception2, &v2, &tb2);
+ _PyErr_NormalizeException(tstate, &exception2, &v2, &tb2);
/* It should not be possible for exception2 or v2
to be NULL. However PyErr_Display() can't
tolerate NULLs, so just be safe. */
@@ -803,37 +803,37 @@ _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
Py_XDECREF(tb2);
}
Py_XDECREF(result);
- }
- else {
+ }
+ else {
PySys_WriteStderr("sys.excepthook is missing\n");
PyErr_Display(exception, v, tb);
}
-
-done:
+
+done:
Py_XDECREF(exception);
Py_XDECREF(v);
Py_XDECREF(tb);
}
-void
-_PyErr_Print(PyThreadState *tstate)
-{
- _PyErr_PrintEx(tstate, 1);
-}
-
-void
-PyErr_PrintEx(int set_sys_last_vars)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_PrintEx(tstate, set_sys_last_vars);
-}
-
-void
-PyErr_Print(void)
-{
- PyErr_PrintEx(1);
-}
-
+void
+_PyErr_Print(PyThreadState *tstate)
+{
+ _PyErr_PrintEx(tstate, 1);
+}
+
+void
+PyErr_PrintEx(int set_sys_last_vars)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_PrintEx(tstate, set_sys_last_vars);
+}
+
+void
+PyErr_Print(void)
+{
+ PyErr_PrintEx(1);
+}
+
static void
print_exception(PyObject *f, PyObject *value)
{
@@ -860,7 +860,7 @@ print_exception(PyObject *f, PyObject *value)
_PyObject_HasAttrId(value, &PyId_print_file_and_line))
{
PyObject *message, *filename, *text;
- Py_ssize_t lineno, offset;
+ Py_ssize_t lineno, offset;
if (!parse_syntax_error(value, &message, &filename,
&lineno, &offset, &text))
PyErr_Clear();
@@ -870,7 +870,7 @@ print_exception(PyObject *f, PyObject *value)
Py_DECREF(value);
value = message;
- line = PyUnicode_FromFormat(" File \"%S\", line %zd\n",
+ line = PyUnicode_FromFormat(" File \"%S\", line %zd\n",
filename, lineno);
Py_DECREF(filename);
if (line != NULL) {
@@ -893,37 +893,37 @@ print_exception(PyObject *f, PyObject *value)
/* Don't do anything else */
}
else {
- PyObject* modulename;
-
+ PyObject* modulename;
+
_Py_IDENTIFIER(__module__);
assert(PyExceptionClass_Check(type));
- modulename = _PyObject_GetAttrId(type, &PyId___module__);
- if (modulename == NULL || !PyUnicode_Check(modulename))
+ modulename = _PyObject_GetAttrId(type, &PyId___module__);
+ if (modulename == NULL || !PyUnicode_Check(modulename))
{
- Py_XDECREF(modulename);
- PyErr_Clear();
- err = PyFile_WriteString("<unknown>.", f);
+ Py_XDECREF(modulename);
+ PyErr_Clear();
+ err = PyFile_WriteString("<unknown>.", f);
}
else {
- if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins))
+ if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins))
{
- err = PyFile_WriteObject(modulename, f, Py_PRINT_RAW);
+ err = PyFile_WriteObject(modulename, f, Py_PRINT_RAW);
err += PyFile_WriteString(".", f);
}
- Py_DECREF(modulename);
+ Py_DECREF(modulename);
}
if (err == 0) {
- PyObject* qualname = _PyType_GetQualName((PyTypeObject *)type);
- if (qualname == NULL || !PyUnicode_Check(qualname)) {
- Py_XDECREF(qualname);
- PyErr_Clear();
- err = PyFile_WriteString("<unknown>", f);
- }
- else {
- err = PyFile_WriteObject(qualname, f, Py_PRINT_RAW);
- Py_DECREF(qualname);
- }
+ PyObject* qualname = _PyType_GetQualName((PyTypeObject *)type);
+ if (qualname == NULL || !PyUnicode_Check(qualname)) {
+ Py_XDECREF(qualname);
+ PyErr_Clear();
+ err = PyFile_WriteString("<unknown>", f);
+ }
+ else {
+ err = PyFile_WriteObject(qualname, f, Py_PRINT_RAW);
+ Py_DECREF(qualname);
+ }
}
}
if (err == 0 && (value != Py_None)) {
@@ -1025,10 +1025,10 @@ print_exception_recursive(PyObject *f, PyObject *value, PyObject *seen)
}
void
-_PyErr_Display(PyObject *file, PyObject *exception, PyObject *value, PyObject *tb)
+_PyErr_Display(PyObject *file, PyObject *exception, PyObject *value, PyObject *tb)
{
- assert(file != NULL && file != Py_None);
-
+ assert(file != NULL && file != Py_None);
+
PyObject *seen;
if (PyExceptionInstance_Check(value)
&& tb != NULL && PyTraceBack_Check(tb)) {
@@ -1040,43 +1040,43 @@ _PyErr_Display(PyObject *file, PyObject *exception, PyObject *value, PyObject *t
else
Py_DECREF(cur_tb);
}
-
- /* We choose to ignore seen being possibly NULL, and report
- at least the main exception (it could be a MemoryError).
- */
- seen = PySet_New(NULL);
- if (seen == NULL) {
- PyErr_Clear();
- }
- print_exception_recursive(file, value, seen);
- Py_XDECREF(seen);
-
- /* Call file.flush() */
- PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
- if (!res) {
- /* Silently ignore file.flush() error */
- PyErr_Clear();
- }
- else {
- Py_DECREF(res);
- }
-}
-
-void
-PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb)
-{
- PyObject *file = _PySys_GetObjectId(&PyId_stderr);
- if (file == NULL) {
+
+ /* We choose to ignore seen being possibly NULL, and report
+ at least the main exception (it could be a MemoryError).
+ */
+ seen = PySet_New(NULL);
+ if (seen == NULL) {
+ PyErr_Clear();
+ }
+ print_exception_recursive(file, value, seen);
+ Py_XDECREF(seen);
+
+ /* Call file.flush() */
+ PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
+ if (!res) {
+ /* Silently ignore file.flush() error */
+ PyErr_Clear();
+ }
+ else {
+ Py_DECREF(res);
+ }
+}
+
+void
+PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb)
+{
+ PyObject *file = _PySys_GetObjectId(&PyId_stderr);
+ if (file == NULL) {
_PyObject_Dump(value);
fprintf(stderr, "lost sys.stderr\n");
- return;
+ return;
}
- if (file == Py_None) {
- return;
+ if (file == Py_None) {
+ return;
}
- Py_INCREF(file);
- _PyErr_Display(file, exception, value, tb);
- Py_DECREF(file);
+ Py_INCREF(file);
+ _PyErr_Display(file, exception, value, tb);
+ Py_DECREF(file);
}
PyObject *
@@ -1087,7 +1087,7 @@ PyRun_StringFlags(const char *str, int start, PyObject *globals,
mod_ty mod;
PyArena *arena;
PyObject *filename;
- int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
+ int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
filename = _PyUnicode_FromId(&PyId_string); /* borrowed */
if (filename == NULL)
@@ -1097,74 +1097,74 @@ PyRun_StringFlags(const char *str, int start, PyObject *globals,
if (arena == NULL)
return NULL;
- if (use_peg) {
- mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
- }
- else {
- mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
- }
-
+ if (use_peg) {
+ mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
+ }
+ else {
+ mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
+ }
+
if (mod != NULL)
ret = run_mod(mod, filename, globals, locals, flags, arena);
PyArena_Free(arena);
return ret;
}
-
-static PyObject *
-pyrun_file(FILE *fp, PyObject *filename, int start, PyObject *globals,
- PyObject *locals, int closeit, PyCompilerFlags *flags)
+
+static PyObject *
+pyrun_file(FILE *fp, PyObject *filename, int start, PyObject *globals,
+ PyObject *locals, int closeit, PyCompilerFlags *flags)
{
- PyArena *arena = PyArena_New();
- if (arena == NULL) {
- return NULL;
- }
-
+ PyArena *arena = PyArena_New();
+ if (arena == NULL) {
+ return NULL;
+ }
+
mod_ty mod;
- int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
- if (use_peg) {
- mod = PyPegen_ASTFromFileObject(fp, filename, start, NULL, NULL, NULL,
- flags, NULL, arena);
- }
- else {
- mod = PyParser_ASTFromFileObject(fp, filename, NULL, start, 0, 0,
- flags, NULL, arena);
- }
-
- if (closeit) {
- fclose(fp);
- }
-
- PyObject *ret;
- if (mod != NULL) {
- ret = run_mod(mod, filename, globals, locals, flags, arena);
- }
- else {
- ret = NULL;
- }
- PyArena_Free(arena);
-
- return ret;
-}
-
-
-PyObject *
-PyRun_FileExFlags(FILE *fp, const char *filename, int start, PyObject *globals,
- PyObject *locals, int closeit, PyCompilerFlags *flags)
-{
- PyObject *filename_obj = PyUnicode_DecodeFSDefault(filename);
- if (filename_obj == NULL) {
- return NULL;
- }
-
- PyObject *res = pyrun_file(fp, filename_obj, start, globals,
- locals, closeit, flags);
- Py_DECREF(filename_obj);
- return res;
-
-}
-
-
+ int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
+ if (use_peg) {
+ mod = PyPegen_ASTFromFileObject(fp, filename, start, NULL, NULL, NULL,
+ flags, NULL, arena);
+ }
+ else {
+ mod = PyParser_ASTFromFileObject(fp, filename, NULL, start, 0, 0,
+ flags, NULL, arena);
+ }
+
+ if (closeit) {
+ fclose(fp);
+ }
+
+ PyObject *ret;
+ if (mod != NULL) {
+ ret = run_mod(mod, filename, globals, locals, flags, arena);
+ }
+ else {
+ ret = NULL;
+ }
+ PyArena_Free(arena);
+
+ return ret;
+}
+
+
+PyObject *
+PyRun_FileExFlags(FILE *fp, const char *filename, int start, PyObject *globals,
+ PyObject *locals, int closeit, PyCompilerFlags *flags)
+{
+ PyObject *filename_obj = PyUnicode_DecodeFSDefault(filename);
+ if (filename_obj == NULL) {
+ return NULL;
+ }
+
+ PyObject *res = pyrun_file(fp, filename_obj, start, globals,
+ locals, closeit, flags);
+ Py_DECREF(filename_obj);
+ return res;
+
+}
+
+
static void
flush_io(void)
{
@@ -1176,7 +1176,7 @@ flush_io(void)
f = _PySys_GetObjectId(&PyId_stderr);
if (f != NULL) {
- r = _PyObject_CallMethodIdNoArgs(f, &PyId_flush);
+ r = _PyObject_CallMethodIdNoArgs(f, &PyId_flush);
if (r)
Py_DECREF(r);
else
@@ -1184,7 +1184,7 @@ flush_io(void)
}
f = _PySys_GetObjectId(&PyId_stdout);
if (f != NULL) {
- r = _PyObject_CallMethodIdNoArgs(f, &PyId_flush);
+ r = _PyObject_CallMethodIdNoArgs(f, &PyId_flush);
if (r)
Py_DECREF(r);
else
@@ -1195,60 +1195,60 @@ flush_io(void)
}
static PyObject *
-run_eval_code_obj(PyThreadState *tstate, PyCodeObject *co, PyObject *globals, PyObject *locals)
-{
- PyObject *v;
- /*
- * We explicitly re-initialize _Py_UnhandledKeyboardInterrupt every eval
- * _just in case_ someone is calling into an embedded Python where they
- * don't care about an uncaught KeyboardInterrupt exception (why didn't they
- * leave config.install_signal_handlers set to 0?!?) but then later call
- * Py_Main() itself (which _checks_ this flag and dies with a signal after
- * its interpreter exits). We don't want a previous embedded interpreter's
- * uncaught exception to trigger an unexplained signal exit from a future
- * Py_Main() based one.
- */
- _Py_UnhandledKeyboardInterrupt = 0;
-
- /* Set globals['__builtins__'] if it doesn't exist */
- if (globals != NULL && PyDict_GetItemString(globals, "__builtins__") == NULL) {
- if (PyDict_SetItemString(globals, "__builtins__",
- tstate->interp->builtins) < 0) {
- return NULL;
- }
- }
-
- v = PyEval_EvalCode((PyObject*)co, globals, locals);
- if (!v && _PyErr_Occurred(tstate) == PyExc_KeyboardInterrupt) {
- _Py_UnhandledKeyboardInterrupt = 1;
- }
- return v;
-}
-
-static PyObject *
+run_eval_code_obj(PyThreadState *tstate, PyCodeObject *co, PyObject *globals, PyObject *locals)
+{
+ PyObject *v;
+ /*
+ * We explicitly re-initialize _Py_UnhandledKeyboardInterrupt every eval
+ * _just in case_ someone is calling into an embedded Python where they
+ * don't care about an uncaught KeyboardInterrupt exception (why didn't they
+ * leave config.install_signal_handlers set to 0?!?) but then later call
+ * Py_Main() itself (which _checks_ this flag and dies with a signal after
+ * its interpreter exits). We don't want a previous embedded interpreter's
+ * uncaught exception to trigger an unexplained signal exit from a future
+ * Py_Main() based one.
+ */
+ _Py_UnhandledKeyboardInterrupt = 0;
+
+ /* Set globals['__builtins__'] if it doesn't exist */
+ if (globals != NULL && PyDict_GetItemString(globals, "__builtins__") == NULL) {
+ if (PyDict_SetItemString(globals, "__builtins__",
+ tstate->interp->builtins) < 0) {
+ return NULL;
+ }
+ }
+
+ v = PyEval_EvalCode((PyObject*)co, globals, locals);
+ if (!v && _PyErr_Occurred(tstate) == PyExc_KeyboardInterrupt) {
+ _Py_UnhandledKeyboardInterrupt = 1;
+ }
+ return v;
+}
+
+static PyObject *
run_mod(mod_ty mod, PyObject *filename, PyObject *globals, PyObject *locals,
PyCompilerFlags *flags, PyArena *arena)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyCodeObject *co = PyAST_CompileObject(mod, filename, flags, -1, arena);
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyCodeObject *co = PyAST_CompileObject(mod, filename, flags, -1, arena);
if (co == NULL)
return NULL;
-
- if (_PySys_Audit(tstate, "exec", "O", co) < 0) {
- Py_DECREF(co);
- return NULL;
- }
-
- PyObject *v = run_eval_code_obj(tstate, co, globals, locals);
+
+ if (_PySys_Audit(tstate, "exec", "O", co) < 0) {
+ Py_DECREF(co);
+ return NULL;
+ }
+
+ PyObject *v = run_eval_code_obj(tstate, co, globals, locals);
Py_DECREF(co);
return v;
}
static PyObject *
-run_pyc_file(FILE *fp, PyObject *globals, PyObject *locals,
- PyCompilerFlags *flags)
+run_pyc_file(FILE *fp, PyObject *globals, PyObject *locals,
+ PyCompilerFlags *flags)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyCodeObject *co;
PyObject *v;
long magic;
@@ -1277,7 +1277,7 @@ run_pyc_file(FILE *fp, PyObject *globals, PyObject *locals,
}
fclose(fp);
co = (PyCodeObject *)v;
- v = run_eval_code_obj(tstate, co, globals, locals);
+ v = run_eval_code_obj(tstate, co, globals, locals);
if (v && flags)
flags->cf_flags |= (co->co_flags & PyCF_MASK);
Py_DECREF(co);
@@ -1293,17 +1293,17 @@ Py_CompileStringObject(const char *str, PyObject *filename, int start,
{
PyCodeObject *co;
mod_ty mod;
- int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
+ int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
PyArena *arena = PyArena_New();
if (arena == NULL)
return NULL;
- if (use_peg) {
- mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
- }
- else {
- mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
- }
+ if (use_peg) {
+ mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
+ }
+ else {
+ mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
+ }
if (mod == NULL) {
PyArena_Free(arena);
return NULL;
@@ -1339,80 +1339,80 @@ PyCompileString(const char *str, const char *filename, int start)
return Py_CompileStringFlags(str, filename, start, NULL);
}
-const char *
-_Py_SourceAsString(PyObject *cmd, const char *funcname, const char *what, PyCompilerFlags *cf, PyObject **cmd_copy)
-{
- const char *str;
- Py_ssize_t size;
- Py_buffer view;
-
- *cmd_copy = NULL;
- if (PyUnicode_Check(cmd)) {
- cf->cf_flags |= PyCF_IGNORE_COOKIE;
- str = PyUnicode_AsUTF8AndSize(cmd, &size);
- if (str == NULL)
- return NULL;
- }
- else if (PyBytes_Check(cmd)) {
- str = PyBytes_AS_STRING(cmd);
- size = PyBytes_GET_SIZE(cmd);
- }
- else if (PyByteArray_Check(cmd)) {
- str = PyByteArray_AS_STRING(cmd);
- size = PyByteArray_GET_SIZE(cmd);
- }
- else if (PyObject_GetBuffer(cmd, &view, PyBUF_SIMPLE) == 0) {
- /* Copy to NUL-terminated buffer. */
- *cmd_copy = PyBytes_FromStringAndSize(
- (const char *)view.buf, view.len);
- PyBuffer_Release(&view);
- if (*cmd_copy == NULL) {
- return NULL;
- }
- str = PyBytes_AS_STRING(*cmd_copy);
- size = PyBytes_GET_SIZE(*cmd_copy);
- }
- else {
- PyErr_Format(PyExc_TypeError,
- "%s() arg 1 must be a %s object",
- funcname, what);
- return NULL;
- }
-
- if (strlen(str) != (size_t)size) {
- PyErr_SetString(PyExc_ValueError,
- "source code string cannot contain null bytes");
- Py_CLEAR(*cmd_copy);
- return NULL;
- }
- return str;
-}
-
+const char *
+_Py_SourceAsString(PyObject *cmd, const char *funcname, const char *what, PyCompilerFlags *cf, PyObject **cmd_copy)
+{
+ const char *str;
+ Py_ssize_t size;
+ Py_buffer view;
+
+ *cmd_copy = NULL;
+ if (PyUnicode_Check(cmd)) {
+ cf->cf_flags |= PyCF_IGNORE_COOKIE;
+ str = PyUnicode_AsUTF8AndSize(cmd, &size);
+ if (str == NULL)
+ return NULL;
+ }
+ else if (PyBytes_Check(cmd)) {
+ str = PyBytes_AS_STRING(cmd);
+ size = PyBytes_GET_SIZE(cmd);
+ }
+ else if (PyByteArray_Check(cmd)) {
+ str = PyByteArray_AS_STRING(cmd);
+ size = PyByteArray_GET_SIZE(cmd);
+ }
+ else if (PyObject_GetBuffer(cmd, &view, PyBUF_SIMPLE) == 0) {
+ /* Copy to NUL-terminated buffer. */
+ *cmd_copy = PyBytes_FromStringAndSize(
+ (const char *)view.buf, view.len);
+ PyBuffer_Release(&view);
+ if (*cmd_copy == NULL) {
+ return NULL;
+ }
+ str = PyBytes_AS_STRING(*cmd_copy);
+ size = PyBytes_GET_SIZE(*cmd_copy);
+ }
+ else {
+ PyErr_Format(PyExc_TypeError,
+ "%s() arg 1 must be a %s object",
+ funcname, what);
+ return NULL;
+ }
+
+ if (strlen(str) != (size_t)size) {
+ PyErr_SetString(PyExc_ValueError,
+ "source code string cannot contain null bytes");
+ Py_CLEAR(*cmd_copy);
+ return NULL;
+ }
+ return str;
+}
+
struct symtable *
Py_SymtableStringObject(const char *str, PyObject *filename, int start)
{
- PyCompilerFlags flags = _PyCompilerFlags_INIT;
- return _Py_SymtableStringObjectFlags(str, filename, start, &flags);
-}
-
-struct symtable *
-_Py_SymtableStringObjectFlags(const char *str, PyObject *filename, int start, PyCompilerFlags *flags)
-{
+ PyCompilerFlags flags = _PyCompilerFlags_INIT;
+ return _Py_SymtableStringObjectFlags(str, filename, start, &flags);
+}
+
+struct symtable *
+_Py_SymtableStringObjectFlags(const char *str, PyObject *filename, int start, PyCompilerFlags *flags)
+{
struct symtable *st;
mod_ty mod;
- int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
+ int use_peg = _PyInterpreterState_GET()->config._use_peg_parser;
PyArena *arena;
arena = PyArena_New();
if (arena == NULL)
return NULL;
- if (use_peg) {
- mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
- }
- else {
- mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
- }
+ if (use_peg) {
+ mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
+ }
+ else {
+ mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
+ }
if (mod == NULL) {
PyArena_Free(arena);
return NULL;
@@ -1442,11 +1442,11 @@ PyParser_ASTFromStringObject(const char *s, PyObject *filename, int start,
PyCompilerFlags *flags, PyArena *arena)
{
mod_ty mod;
- PyCompilerFlags localflags = _PyCompilerFlags_INIT;
+ PyCompilerFlags localflags = _PyCompilerFlags_INIT;
perrdetail err;
int iflags = PARSER_FLAGS(flags);
- if (flags && (flags->cf_flags & PyCF_ONLY_AST) && flags->cf_feature_version < 7)
- iflags |= PyPARSE_ASYNC_HACKS;
+ if (flags && (flags->cf_flags & PyCF_ONLY_AST) && flags->cf_feature_version < 7)
+ iflags |= PyPARSE_ASYNC_HACKS;
node *n = PyParser_ParseStringObject(s, filename,
&_PyParser_Grammar, start, &err,
@@ -1488,7 +1488,7 @@ PyParser_ASTFromFileObject(FILE *fp, PyObject *filename, const char* enc,
PyArena *arena)
{
mod_ty mod;
- PyCompilerFlags localflags = _PyCompilerFlags_INIT;
+ PyCompilerFlags localflags = _PyCompilerFlags_INIT;
perrdetail err;
int iflags = PARSER_FLAGS(flags);
diff --git a/contrib/tools/python3/src/Python/pytime.c b/contrib/tools/python3/src/Python/pytime.c
index 878b7d1b03..a9af757243 100644
--- a/contrib/tools/python3/src/Python/pytime.c
+++ b/contrib/tools/python3/src/Python/pytime.c
@@ -1,17 +1,17 @@
#include "Python.h"
#ifdef MS_WINDOWS
-#include <winsock2.h> /* struct timeval */
+#include <winsock2.h> /* struct timeval */
#endif
#if defined(__APPLE__)
#include <mach/mach_time.h> /* mach_absolute_time(), mach_timebase_info() */
-
-#if defined(__APPLE__) && defined(__has_builtin)
-# if __has_builtin(__builtin_available)
-# define HAVE_CLOCK_GETTIME_RUNTIME __builtin_available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)
-# endif
+
+#if defined(__APPLE__) && defined(__has_builtin)
+# if __has_builtin(__builtin_available)
+# define HAVE_CLOCK_GETTIME_RUNTIME __builtin_available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)
+# endif
+#endif
#endif
-#endif
#define _PyTime_check_mul_overflow(a, b) \
(assert(b > 0), \
@@ -689,22 +689,22 @@ pygettimeofday(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
#else /* MS_WINDOWS */
int err;
-#if defined(HAVE_CLOCK_GETTIME)
+#if defined(HAVE_CLOCK_GETTIME)
struct timespec ts;
-#endif
-
-#if !defined(HAVE_CLOCK_GETTIME) || defined(__APPLE__)
+#endif
+
+#if !defined(HAVE_CLOCK_GETTIME) || defined(__APPLE__)
struct timeval tv;
#endif
assert(info == NULL || raise);
#ifdef HAVE_CLOCK_GETTIME
-
-#ifdef HAVE_CLOCK_GETTIME_RUNTIME
- if (HAVE_CLOCK_GETTIME_RUNTIME) {
-#endif
-
+
+#ifdef HAVE_CLOCK_GETTIME_RUNTIME
+ if (HAVE_CLOCK_GETTIME_RUNTIME) {
+#endif
+
err = clock_gettime(CLOCK_REALTIME, &ts);
if (err) {
if (raise) {
@@ -729,14 +729,14 @@ pygettimeofday(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
}
}
-#ifdef HAVE_CLOCK_GETTIME_RUNTIME
- } else {
-#endif
-
-#endif
-
-#if !defined(HAVE_CLOCK_GETTIME) || defined(HAVE_CLOCK_GETTIME_RUNTIME)
-
+#ifdef HAVE_CLOCK_GETTIME_RUNTIME
+ } else {
+#endif
+
+#endif
+
+#if !defined(HAVE_CLOCK_GETTIME) || defined(HAVE_CLOCK_GETTIME_RUNTIME)
+
/* test gettimeofday() */
err = gettimeofday(&tv, (struct timezone *)NULL);
if (err) {
@@ -755,11 +755,11 @@ pygettimeofday(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
info->monotonic = 0;
info->adjustable = 1;
}
-
-#if defined(HAVE_CLOCK_GETTIME_RUNTIME) && defined(HAVE_CLOCK_GETTIME)
- } /* end of availibity block */
-#endif
-
+
+#if defined(HAVE_CLOCK_GETTIME_RUNTIME) && defined(HAVE_CLOCK_GETTIME)
+ } /* end of availibity block */
+#endif
+
#endif /* !HAVE_CLOCK_GETTIME */
#endif /* !MS_WINDOWS */
return 0;
@@ -771,7 +771,7 @@ _PyTime_GetSystemClock(void)
_PyTime_t t;
if (pygettimeofday(&t, NULL, 0) < 0) {
/* should not happen, _PyTime_Init() checked the clock at startup */
- Py_FatalError("pygettimeofday() failed");
+ Py_FatalError("pygettimeofday() failed");
}
return t;
}
@@ -801,7 +801,7 @@ pymonotonic(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
return -1;
}
/* Hello, time traveler! */
- Py_FatalError("pymonotonic: integer overflow");
+ Py_FatalError("pymonotonic: integer overflow");
}
*tp = t * MS_TO_NS;
@@ -943,7 +943,7 @@ _PyTime_GetMonotonicClock(void)
if (pymonotonic(&t, NULL, 0) < 0) {
/* should not happen, _PyTime_Init() checked that monotonic clock at
startup */
- Py_FatalError("pymonotonic() failed");
+ Py_FatalError("pymonotonic() failed");
}
return t;
}
@@ -1044,7 +1044,7 @@ _PyTime_GetPerfCounter(void)
{
_PyTime_t t;
if (_PyTime_GetPerfCounterWithInfo(&t, NULL)) {
- Py_FatalError("_PyTime_GetPerfCounterWithInfo() failed");
+ Py_FatalError("_PyTime_GetPerfCounterWithInfo() failed");
}
return t;
}
@@ -1083,19 +1083,19 @@ _PyTime_localtime(time_t t, struct tm *tm)
}
return 0;
#else /* !MS_WINDOWS */
-
-#if defined(_AIX) && (SIZEOF_TIME_T < 8)
- /* bpo-34373: AIX does not return NULL if t is too small or too large */
- if (t < -2145916800 /* 1902-01-01 */
- || t > 2145916800 /* 2038-01-01 */) {
- errno = EINVAL;
- PyErr_SetString(PyExc_OverflowError,
- "localtime argument out of range");
- return -1;
- }
-#endif
-
- errno = 0;
+
+#if defined(_AIX) && (SIZEOF_TIME_T < 8)
+ /* bpo-34373: AIX does not return NULL if t is too small or too large */
+ if (t < -2145916800 /* 1902-01-01 */
+ || t > 2145916800 /* 2038-01-01 */) {
+ errno = EINVAL;
+ PyErr_SetString(PyExc_OverflowError,
+ "localtime argument out of range");
+ return -1;
+ }
+#endif
+
+ errno = 0;
if (localtime_r(&t, tm) == NULL) {
if (errno == 0) {
errno = EINVAL;
diff --git a/contrib/tools/python3/src/Python/structmember.c b/contrib/tools/python3/src/Python/structmember.c
index b458e819d3..ba88e15f93 100644
--- a/contrib/tools/python3/src/Python/structmember.c
+++ b/contrib/tools/python3/src/Python/structmember.c
@@ -2,7 +2,7 @@
/* Map C struct members to Python object attributes */
#include "Python.h"
-#include "structmember.h" // PyMemberDef
+#include "structmember.h" // PyMemberDef
PyObject *
PyMember_GetOne(const char *addr, PyMemberDef *l)
diff --git a/contrib/tools/python3/src/Python/symtable.c b/contrib/tools/python3/src/Python/symtable.c
index 11bf28d873..d192f31dee 100644
--- a/contrib/tools/python3/src/Python/symtable.c
+++ b/contrib/tools/python3/src/Python/symtable.c
@@ -1,8 +1,8 @@
#include "Python.h"
-#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include "symtable.h"
-#undef Yield /* undefine macro conflicting with <winbase.h> */
-#include "structmember.h" // PyMemberDef
+#undef Yield /* undefine macro conflicting with <winbase.h> */
+#include "structmember.h" // PyMemberDef
/* error strings used for warnings */
#define GLOBAL_PARAM \
@@ -31,18 +31,18 @@
#define IMPORT_STAR_WARNING "import * only allowed at module level"
-#define NAMED_EXPR_COMP_IN_CLASS \
-"assignment expression within a comprehension cannot be used in a class body"
-
-#define NAMED_EXPR_COMP_CONFLICT \
-"assignment expression cannot rebind comprehension iteration variable '%U'"
-
-#define NAMED_EXPR_COMP_INNER_LOOP_CONFLICT \
-"comprehension inner loop cannot rebind assignment expression target '%U'"
-
-#define NAMED_EXPR_COMP_ITER_EXPR \
-"assignment expression cannot be used in a comprehension iterable expression"
-
+#define NAMED_EXPR_COMP_IN_CLASS \
+"assignment expression within a comprehension cannot be used in a class body"
+
+#define NAMED_EXPR_COMP_CONFLICT \
+"assignment expression cannot rebind comprehension iteration variable '%U'"
+
+#define NAMED_EXPR_COMP_INNER_LOOP_CONFLICT \
+"comprehension inner loop cannot rebind assignment expression target '%U'"
+
+#define NAMED_EXPR_COMP_ITER_EXPR \
+"assignment expression cannot be used in a comprehension iterable expression"
+
static PySTEntryObject *
ste_new(struct symtable *st, identifier name, _Py_block_ty block,
void *key, int lineno, int col_offset)
@@ -87,11 +87,11 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty block,
ste->ste_child_free = 0;
ste->ste_generator = 0;
ste->ste_coroutine = 0;
- ste->ste_comprehension = 0;
+ ste->ste_comprehension = 0;
ste->ste_returns_value = 0;
ste->ste_needs_class_closure = 0;
- ste->ste_comp_iter_target = 0;
- ste->ste_comp_iter_expr = 0;
+ ste->ste_comp_iter_target = 0;
+ ste->ste_comp_iter_expr = 0;
ste->ste_symbols = PyDict_New();
ste->ste_varnames = PyList_New(0);
@@ -151,10 +151,10 @@ PyTypeObject PySTEntry_Type = {
sizeof(PySTEntryObject),
0,
(destructor)ste_dealloc, /* tp_dealloc */
- 0, /* tp_vectorcall_offset */
+ 0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_as_async */
+ 0, /* tp_as_async */
(reprfunc)ste_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -190,7 +190,7 @@ static int symtable_analyze(struct symtable *st);
static int symtable_enter_block(struct symtable *st, identifier name,
_Py_block_ty block, void *ast, int lineno,
int col_offset);
-static int symtable_exit_block(struct symtable *st);
+static int symtable_exit_block(struct symtable *st);
static int symtable_visit_stmt(struct symtable *st, stmt_ty s);
static int symtable_visit_expr(struct symtable *st, expr_ty s);
static int symtable_visit_genexp(struct symtable *st, expr_ty s);
@@ -205,7 +205,7 @@ static int symtable_visit_keyword(struct symtable *st, keyword_ty);
static int symtable_visit_params(struct symtable *st, asdl_seq *args);
static int symtable_visit_argannotations(struct symtable *st, asdl_seq *args);
static int symtable_implicit_arg(struct symtable *st, int pos);
-static int symtable_visit_annotations(struct symtable *st, arguments_ty, expr_ty);
+static int symtable_visit_annotations(struct symtable *st, arguments_ty, expr_ty);
static int symtable_visit_withitem(struct symtable *st, withitem_ty item);
@@ -265,7 +265,7 @@ PySymtable_BuildObject(mod_ty mod, PyObject *filename, PyFutureFeatures *future)
int i;
PyThreadState *tstate;
int recursion_limit = Py_GetRecursionLimit();
- int starting_recursion_depth;
+ int starting_recursion_depth;
if (st == NULL)
return NULL;
@@ -278,15 +278,15 @@ PySymtable_BuildObject(mod_ty mod, PyObject *filename, PyFutureFeatures *future)
st->st_future = future;
/* Setup recursion depth check counters */
- tstate = _PyThreadState_GET();
+ tstate = _PyThreadState_GET();
if (!tstate) {
PySymtable_Free(st);
return NULL;
}
/* Be careful here to prevent overflow. */
- starting_recursion_depth = (tstate->recursion_depth < INT_MAX / COMPILER_STACK_FRAME_SCALE) ?
+ starting_recursion_depth = (tstate->recursion_depth < INT_MAX / COMPILER_STACK_FRAME_SCALE) ?
tstate->recursion_depth * COMPILER_STACK_FRAME_SCALE : tstate->recursion_depth;
- st->recursion_depth = starting_recursion_depth;
+ st->recursion_depth = starting_recursion_depth;
st->recursion_limit = (recursion_limit < INT_MAX / COMPILER_STACK_FRAME_SCALE) ?
recursion_limit * COMPILER_STACK_FRAME_SCALE : recursion_limit;
@@ -317,30 +317,30 @@ PySymtable_BuildObject(mod_ty mod, PyObject *filename, PyFutureFeatures *future)
(stmt_ty)asdl_seq_GET(seq, i)))
goto error;
break;
- case FunctionType_kind:
- PyErr_SetString(PyExc_RuntimeError,
- "this compiler does not handle FunctionTypes");
- goto error;
+ case FunctionType_kind:
+ PyErr_SetString(PyExc_RuntimeError,
+ "this compiler does not handle FunctionTypes");
+ goto error;
}
- if (!symtable_exit_block(st)) {
+ if (!symtable_exit_block(st)) {
+ PySymtable_Free(st);
+ return NULL;
+ }
+ /* Check that the recursion depth counting balanced correctly */
+ if (st->recursion_depth != starting_recursion_depth) {
+ PyErr_Format(PyExc_SystemError,
+ "symtable analysis recursion depth mismatch (before=%d, after=%d)",
+ starting_recursion_depth, st->recursion_depth);
PySymtable_Free(st);
return NULL;
}
- /* Check that the recursion depth counting balanced correctly */
- if (st->recursion_depth != starting_recursion_depth) {
- PyErr_Format(PyExc_SystemError,
- "symtable analysis recursion depth mismatch (before=%d, after=%d)",
- starting_recursion_depth, st->recursion_depth);
- PySymtable_Free(st);
- return NULL;
- }
/* Make the second symbol analysis pass */
if (symtable_analyze(st))
return st;
PySymtable_Free(st);
return NULL;
error:
- (void) symtable_exit_block(st);
+ (void) symtable_exit_block(st);
PySymtable_Free(st);
return NULL;
}
@@ -375,12 +375,12 @@ PySymtable_Lookup(struct symtable *st, void *key)
k = PyLong_FromVoidPtr(key);
if (k == NULL)
return NULL;
- v = PyDict_GetItemWithError(st->st_blocks, k);
+ v = PyDict_GetItemWithError(st->st_blocks, k);
if (v) {
assert(PySTEntry_Check(v));
Py_INCREF(v);
}
- else if (!PyErr_Occurred()) {
+ else if (!PyErr_Occurred()) {
PyErr_SetString(PyExc_KeyError,
"unknown symbol table entry");
}
@@ -389,23 +389,23 @@ PySymtable_Lookup(struct symtable *st, void *key)
return (PySTEntryObject *)v;
}
-static long
-_PyST_GetSymbol(PySTEntryObject *ste, PyObject *name)
+static long
+_PyST_GetSymbol(PySTEntryObject *ste, PyObject *name)
{
PyObject *v = PyDict_GetItem(ste->ste_symbols, name);
if (!v)
return 0;
assert(PyLong_Check(v));
- return PyLong_AS_LONG(v);
+ return PyLong_AS_LONG(v);
+}
+
+int
+PyST_GetScope(PySTEntryObject *ste, PyObject *name)
+{
+ long symbol = _PyST_GetSymbol(ste, name);
+ return (symbol >> SCOPE_OFFSET) & SCOPE_MASK;
}
-int
-PyST_GetScope(PySTEntryObject *ste, PyObject *name)
-{
- long symbol = _PyST_GetSymbol(ste, name);
- return (symbol >> SCOPE_OFFSET) & SCOPE_MASK;
-}
-
static int
error_at_directive(PySTEntryObject *ste, PyObject *name)
{
@@ -419,7 +419,7 @@ error_at_directive(PySTEntryObject *ste, PyObject *name)
if (PyUnicode_Compare(PyTuple_GET_ITEM(data, 0), name) == 0) {
PyErr_SyntaxLocationObject(ste->ste_table->st_filename,
PyLong_AsLong(PyTuple_GET_ITEM(data, 1)),
- PyLong_AsLong(PyTuple_GET_ITEM(data, 2)) + 1);
+ PyLong_AsLong(PyTuple_GET_ITEM(data, 2)) + 1);
return 0;
}
@@ -660,7 +660,7 @@ update_symbols(PyObject *symbols, PyObject *scopes,
}
while ((name = PyIter_Next(itr))) {
- v = PyDict_GetItemWithError(symbols, name);
+ v = PyDict_GetItemWithError(symbols, name);
/* Handle symbol that already exists in this scope */
if (v) {
@@ -685,9 +685,9 @@ update_symbols(PyObject *symbols, PyObject *scopes,
Py_DECREF(name);
continue;
}
- else if (PyErr_Occurred()) {
- goto error;
- }
+ else if (PyErr_Occurred()) {
+ goto error;
+ }
/* Handle global symbol */
if (bound && !PySet_Contains(bound, name)) {
Py_DECREF(name);
@@ -949,7 +949,7 @@ symtable_analyze(struct symtable *st)
*/
static int
-symtable_exit_block(struct symtable *st)
+symtable_exit_block(struct symtable *st)
{
Py_ssize_t size;
@@ -978,13 +978,13 @@ symtable_enter_block(struct symtable *st, identifier name, _Py_block_ty block,
return 0;
}
prev = st->st_cur;
- /* bpo-37757: For now, disallow *all* assignment expressions in the
- * outermost iterator expression of a comprehension, even those inside
- * a nested comprehension or a lambda expression.
- */
- if (prev) {
- ste->ste_comp_iter_expr = prev->ste_comp_iter_expr;
- }
+ /* bpo-37757: For now, disallow *all* assignment expressions in the
+ * outermost iterator expression of a comprehension, even those inside
+ * a nested comprehension or a lambda expression.
+ */
+ if (prev) {
+ ste->ste_comp_iter_expr = prev->ste_comp_iter_expr;
+ }
/* The entry is owned by the stack. Borrow it for st_cur. */
Py_DECREF(ste);
st->st_cur = ste;
@@ -1004,13 +1004,13 @@ symtable_lookup(struct symtable *st, PyObject *name)
PyObject *mangled = _Py_Mangle(st->st_private, name);
if (!mangled)
return 0;
- long ret = _PyST_GetSymbol(st->st_cur, mangled);
+ long ret = _PyST_GetSymbol(st->st_cur, mangled);
Py_DECREF(mangled);
- return ret;
+ return ret;
}
static int
-symtable_add_def_helper(struct symtable *st, PyObject *name, int flag, struct _symtable_entry *ste)
+symtable_add_def_helper(struct symtable *st, PyObject *name, int flag, struct _symtable_entry *ste)
{
PyObject *o;
PyObject *dict;
@@ -1020,41 +1020,41 @@ symtable_add_def_helper(struct symtable *st, PyObject *name, int flag, struct _s
if (!mangled)
return 0;
- dict = ste->ste_symbols;
- if ((o = PyDict_GetItemWithError(dict, mangled))) {
+ dict = ste->ste_symbols;
+ if ((o = PyDict_GetItemWithError(dict, mangled))) {
val = PyLong_AS_LONG(o);
if ((flag & DEF_PARAM) && (val & DEF_PARAM)) {
/* Is it better to use 'mangled' or 'name' here? */
PyErr_Format(PyExc_SyntaxError, DUPLICATE_ARGUMENT, name);
PyErr_SyntaxLocationObject(st->st_filename,
- ste->ste_lineno,
- ste->ste_col_offset + 1);
+ ste->ste_lineno,
+ ste->ste_col_offset + 1);
goto error;
}
val |= flag;
- }
- else if (PyErr_Occurred()) {
- goto error;
- }
- else {
+ }
+ else if (PyErr_Occurred()) {
+ goto error;
+ }
+ else {
val = flag;
- }
- if (ste->ste_comp_iter_target) {
- /* This name is an iteration variable in a comprehension,
- * so check for a binding conflict with any named expressions.
- * Otherwise, mark it as an iteration variable so subsequent
- * named expressions can check for conflicts.
- */
- if (val & (DEF_GLOBAL | DEF_NONLOCAL)) {
- PyErr_Format(PyExc_SyntaxError,
- NAMED_EXPR_COMP_INNER_LOOP_CONFLICT, name);
- PyErr_SyntaxLocationObject(st->st_filename,
- ste->ste_lineno,
- ste->ste_col_offset + 1);
- goto error;
- }
- val |= DEF_COMP_ITER;
- }
+ }
+ if (ste->ste_comp_iter_target) {
+ /* This name is an iteration variable in a comprehension,
+ * so check for a binding conflict with any named expressions.
+ * Otherwise, mark it as an iteration variable so subsequent
+ * named expressions can check for conflicts.
+ */
+ if (val & (DEF_GLOBAL | DEF_NONLOCAL)) {
+ PyErr_Format(PyExc_SyntaxError,
+ NAMED_EXPR_COMP_INNER_LOOP_CONFLICT, name);
+ PyErr_SyntaxLocationObject(st->st_filename,
+ ste->ste_lineno,
+ ste->ste_col_offset + 1);
+ goto error;
+ }
+ val |= DEF_COMP_ITER;
+ }
o = PyLong_FromLong(val);
if (o == NULL)
goto error;
@@ -1065,7 +1065,7 @@ symtable_add_def_helper(struct symtable *st, PyObject *name, int flag, struct _s
Py_DECREF(o);
if (flag & DEF_PARAM) {
- if (PyList_Append(ste->ste_varnames, mangled) < 0)
+ if (PyList_Append(ste->ste_varnames, mangled) < 0)
goto error;
} else if (flag & DEF_GLOBAL) {
/* XXX need to update DEF_GLOBAL for other flags too;
@@ -1091,11 +1091,11 @@ error:
return 0;
}
-static int
-symtable_add_def(struct symtable *st, PyObject *name, int flag) {
- return symtable_add_def_helper(st, name, flag, st->st_cur);
-}
-
+static int
+symtable_add_def(struct symtable *st, PyObject *name, int flag) {
+ return symtable_add_def_helper(st, name, flag, st->st_cur);
+}
+
/* VISIT, VISIT_SEQ and VIST_SEQ_TAIL take an ASDL type as their second argument.
They use the ASDL name to synthesize the name of the C type and the visit
function.
@@ -1146,7 +1146,7 @@ symtable_add_def(struct symtable *st, PyObject *name, int flag) {
}
static int
-symtable_record_directive(struct symtable *st, identifier name, int lineno, int col_offset)
+symtable_record_directive(struct symtable *st, identifier name, int lineno, int col_offset)
{
PyObject *data, *mangled;
int res;
@@ -1158,7 +1158,7 @@ symtable_record_directive(struct symtable *st, identifier name, int lineno, int
mangled = _Py_Mangle(st->st_private, name);
if (!mangled)
return 0;
- data = Py_BuildValue("(Nii)", mangled, lineno, col_offset);
+ data = Py_BuildValue("(Nii)", mangled, lineno, col_offset);
if (!data)
return 0;
res = PyList_Append(st->st_cur->ste_directives, data);
@@ -1183,7 +1183,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
VISIT_SEQ(st, expr, s->v.FunctionDef.args->defaults);
if (s->v.FunctionDef.args->kw_defaults)
VISIT_SEQ_WITH_NULL(st, expr, s->v.FunctionDef.args->kw_defaults);
- if (!symtable_visit_annotations(st, s->v.FunctionDef.args,
+ if (!symtable_visit_annotations(st, s->v.FunctionDef.args,
s->v.FunctionDef.returns))
VISIT_QUIT(st, 0);
if (s->v.FunctionDef.decorator_list)
@@ -1194,7 +1194,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
VISIT_QUIT(st, 0);
VISIT(st, arguments, s->v.FunctionDef.args);
VISIT_SEQ(st, stmt, s->v.FunctionDef.body);
- if (!symtable_exit_block(st))
+ if (!symtable_exit_block(st))
VISIT_QUIT(st, 0);
break;
case ClassDef_kind: {
@@ -1212,7 +1212,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
st->st_private = s->v.ClassDef.name;
VISIT_SEQ(st, stmt, s->v.ClassDef.body);
st->st_private = tmp;
- if (!symtable_exit_block(st))
+ if (!symtable_exit_block(st))
VISIT_QUIT(st, 0);
break;
}
@@ -1237,14 +1237,14 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
VISIT_QUIT(st, 0);
}
if ((cur & (DEF_GLOBAL | DEF_NONLOCAL))
- && (st->st_cur->ste_symbols != st->st_global)
+ && (st->st_cur->ste_symbols != st->st_global)
&& s->v.AnnAssign.simple) {
PyErr_Format(PyExc_SyntaxError,
cur & DEF_GLOBAL ? GLOBAL_ANNOT : NONLOCAL_ANNOT,
e_name->v.Name.id);
PyErr_SyntaxLocationObject(st->st_filename,
s->lineno,
- s->col_offset + 1);
+ s->col_offset + 1);
VISIT_QUIT(st, 0);
}
if (s->v.AnnAssign.simple &&
@@ -1339,12 +1339,12 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
msg, name);
PyErr_SyntaxLocationObject(st->st_filename,
s->lineno,
- s->col_offset + 1);
+ s->col_offset + 1);
VISIT_QUIT(st, 0);
}
if (!symtable_add_def(st, name, DEF_GLOBAL))
VISIT_QUIT(st, 0);
- if (!symtable_record_directive(st, name, s->lineno, s->col_offset))
+ if (!symtable_record_directive(st, name, s->lineno, s->col_offset))
VISIT_QUIT(st, 0);
}
break;
@@ -1371,12 +1371,12 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
PyErr_Format(PyExc_SyntaxError, msg, name);
PyErr_SyntaxLocationObject(st->st_filename,
s->lineno,
- s->col_offset + 1);
+ s->col_offset + 1);
VISIT_QUIT(st, 0);
}
if (!symtable_add_def(st, name, DEF_NONLOCAL))
VISIT_QUIT(st, 0);
- if (!symtable_record_directive(st, name, s->lineno, s->col_offset))
+ if (!symtable_record_directive(st, name, s->lineno, s->col_offset))
VISIT_QUIT(st, 0);
}
break;
@@ -1401,7 +1401,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
if (s->v.AsyncFunctionDef.args->kw_defaults)
VISIT_SEQ_WITH_NULL(st, expr,
s->v.AsyncFunctionDef.args->kw_defaults);
- if (!symtable_visit_annotations(st, s->v.AsyncFunctionDef.args,
+ if (!symtable_visit_annotations(st, s->v.AsyncFunctionDef.args,
s->v.AsyncFunctionDef.returns))
VISIT_QUIT(st, 0);
if (s->v.AsyncFunctionDef.decorator_list)
@@ -1413,7 +1413,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
st->st_cur->ste_coroutine = 1;
VISIT(st, arguments, s->v.AsyncFunctionDef.args);
VISIT_SEQ(st, stmt, s->v.AsyncFunctionDef.body);
- if (!symtable_exit_block(st))
+ if (!symtable_exit_block(st))
VISIT_QUIT(st, 0);
break;
case AsyncWith_kind:
@@ -1432,99 +1432,99 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
}
static int
-symtable_extend_namedexpr_scope(struct symtable *st, expr_ty e)
-{
- assert(st->st_stack);
- assert(e->kind == Name_kind);
-
- PyObject *target_name = e->v.Name.id;
- Py_ssize_t i, size;
- struct _symtable_entry *ste;
- size = PyList_GET_SIZE(st->st_stack);
- assert(size);
-
- /* Iterate over the stack in reverse and add to the nearest adequate scope */
- for (i = size - 1; i >= 0; i--) {
- ste = (struct _symtable_entry *) PyList_GET_ITEM(st->st_stack, i);
-
- /* If we find a comprehension scope, check for a target
- * binding conflict with iteration variables, otherwise skip it
- */
- if (ste->ste_comprehension) {
- long target_in_scope = _PyST_GetSymbol(ste, target_name);
- if (target_in_scope & DEF_COMP_ITER) {
- PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_CONFLICT, target_name);
- PyErr_SyntaxLocationObject(st->st_filename,
- e->lineno,
- e->col_offset);
- VISIT_QUIT(st, 0);
- }
- continue;
- }
-
- /* If we find a FunctionBlock entry, add as GLOBAL/LOCAL or NONLOCAL/LOCAL */
- if (ste->ste_type == FunctionBlock) {
- long target_in_scope = _PyST_GetSymbol(ste, target_name);
- if (target_in_scope & DEF_GLOBAL) {
- if (!symtable_add_def(st, target_name, DEF_GLOBAL))
- VISIT_QUIT(st, 0);
- } else {
- if (!symtable_add_def(st, target_name, DEF_NONLOCAL))
- VISIT_QUIT(st, 0);
- }
- if (!symtable_record_directive(st, target_name, e->lineno, e->col_offset))
- VISIT_QUIT(st, 0);
-
- return symtable_add_def_helper(st, target_name, DEF_LOCAL, ste);
- }
- /* If we find a ModuleBlock entry, add as GLOBAL */
- if (ste->ste_type == ModuleBlock) {
- if (!symtable_add_def(st, target_name, DEF_GLOBAL))
- VISIT_QUIT(st, 0);
- if (!symtable_record_directive(st, target_name, e->lineno, e->col_offset))
- VISIT_QUIT(st, 0);
-
- return symtable_add_def_helper(st, target_name, DEF_GLOBAL, ste);
- }
- /* Disallow usage in ClassBlock */
- if (ste->ste_type == ClassBlock) {
- PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_IN_CLASS);
- PyErr_SyntaxLocationObject(st->st_filename,
- e->lineno,
- e->col_offset);
- VISIT_QUIT(st, 0);
- }
- }
-
- /* We should always find either a FunctionBlock, ModuleBlock or ClassBlock
- and should never fall to this case
- */
- assert(0);
- return 0;
-}
-
-static int
-symtable_handle_namedexpr(struct symtable *st, expr_ty e)
-{
- if (st->st_cur->ste_comp_iter_expr > 0) {
- /* Assignment isn't allowed in a comprehension iterable expression */
- PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_ITER_EXPR);
- PyErr_SyntaxLocationObject(st->st_filename,
- e->lineno,
- e->col_offset);
- return 0;
- }
- if (st->st_cur->ste_comprehension) {
- /* Inside a comprehension body, so find the right target scope */
- if (!symtable_extend_namedexpr_scope(st, e->v.NamedExpr.target))
- return 0;
- }
- VISIT(st, expr, e->v.NamedExpr.value);
- VISIT(st, expr, e->v.NamedExpr.target);
- return 1;
-}
-
-static int
+symtable_extend_namedexpr_scope(struct symtable *st, expr_ty e)
+{
+ assert(st->st_stack);
+ assert(e->kind == Name_kind);
+
+ PyObject *target_name = e->v.Name.id;
+ Py_ssize_t i, size;
+ struct _symtable_entry *ste;
+ size = PyList_GET_SIZE(st->st_stack);
+ assert(size);
+
+ /* Iterate over the stack in reverse and add to the nearest adequate scope */
+ for (i = size - 1; i >= 0; i--) {
+ ste = (struct _symtable_entry *) PyList_GET_ITEM(st->st_stack, i);
+
+ /* If we find a comprehension scope, check for a target
+ * binding conflict with iteration variables, otherwise skip it
+ */
+ if (ste->ste_comprehension) {
+ long target_in_scope = _PyST_GetSymbol(ste, target_name);
+ if (target_in_scope & DEF_COMP_ITER) {
+ PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_CONFLICT, target_name);
+ PyErr_SyntaxLocationObject(st->st_filename,
+ e->lineno,
+ e->col_offset);
+ VISIT_QUIT(st, 0);
+ }
+ continue;
+ }
+
+ /* If we find a FunctionBlock entry, add as GLOBAL/LOCAL or NONLOCAL/LOCAL */
+ if (ste->ste_type == FunctionBlock) {
+ long target_in_scope = _PyST_GetSymbol(ste, target_name);
+ if (target_in_scope & DEF_GLOBAL) {
+ if (!symtable_add_def(st, target_name, DEF_GLOBAL))
+ VISIT_QUIT(st, 0);
+ } else {
+ if (!symtable_add_def(st, target_name, DEF_NONLOCAL))
+ VISIT_QUIT(st, 0);
+ }
+ if (!symtable_record_directive(st, target_name, e->lineno, e->col_offset))
+ VISIT_QUIT(st, 0);
+
+ return symtable_add_def_helper(st, target_name, DEF_LOCAL, ste);
+ }
+ /* If we find a ModuleBlock entry, add as GLOBAL */
+ if (ste->ste_type == ModuleBlock) {
+ if (!symtable_add_def(st, target_name, DEF_GLOBAL))
+ VISIT_QUIT(st, 0);
+ if (!symtable_record_directive(st, target_name, e->lineno, e->col_offset))
+ VISIT_QUIT(st, 0);
+
+ return symtable_add_def_helper(st, target_name, DEF_GLOBAL, ste);
+ }
+ /* Disallow usage in ClassBlock */
+ if (ste->ste_type == ClassBlock) {
+ PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_IN_CLASS);
+ PyErr_SyntaxLocationObject(st->st_filename,
+ e->lineno,
+ e->col_offset);
+ VISIT_QUIT(st, 0);
+ }
+ }
+
+ /* We should always find either a FunctionBlock, ModuleBlock or ClassBlock
+ and should never fall to this case
+ */
+ assert(0);
+ return 0;
+}
+
+static int
+symtable_handle_namedexpr(struct symtable *st, expr_ty e)
+{
+ if (st->st_cur->ste_comp_iter_expr > 0) {
+ /* Assignment isn't allowed in a comprehension iterable expression */
+ PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_ITER_EXPR);
+ PyErr_SyntaxLocationObject(st->st_filename,
+ e->lineno,
+ e->col_offset);
+ return 0;
+ }
+ if (st->st_cur->ste_comprehension) {
+ /* Inside a comprehension body, so find the right target scope */
+ if (!symtable_extend_namedexpr_scope(st, e->v.NamedExpr.target))
+ return 0;
+ }
+ VISIT(st, expr, e->v.NamedExpr.value);
+ VISIT(st, expr, e->v.NamedExpr.target);
+ return 1;
+}
+
+static int
symtable_visit_expr(struct symtable *st, expr_ty e)
{
if (++st->recursion_depth > st->recursion_limit) {
@@ -1533,10 +1533,10 @@ symtable_visit_expr(struct symtable *st, expr_ty e)
VISIT_QUIT(st, 0);
}
switch (e->kind) {
- case NamedExpr_kind:
- if(!symtable_handle_namedexpr(st, e))
- VISIT_QUIT(st, 0);
- break;
+ case NamedExpr_kind:
+ if(!symtable_handle_namedexpr(st, e))
+ VISIT_QUIT(st, 0);
+ break;
case BoolOp_kind:
VISIT_SEQ(st, expr, e->v.BoolOp.values);
break;
@@ -1560,7 +1560,7 @@ symtable_visit_expr(struct symtable *st, expr_ty e)
VISIT_QUIT(st, 0);
VISIT(st, arguments, e->v.Lambda.args);
VISIT(st, expr, e->v.Lambda.body);
- if (!symtable_exit_block(st))
+ if (!symtable_exit_block(st))
VISIT_QUIT(st, 0);
break;
}
@@ -1631,19 +1631,19 @@ symtable_visit_expr(struct symtable *st, expr_ty e)
break;
case Subscript_kind:
VISIT(st, expr, e->v.Subscript.value);
- VISIT(st, expr, e->v.Subscript.slice);
+ VISIT(st, expr, e->v.Subscript.slice);
break;
case Starred_kind:
VISIT(st, expr, e->v.Starred.value);
break;
- case Slice_kind:
- if (e->v.Slice.lower)
- VISIT(st, expr, e->v.Slice.lower)
- if (e->v.Slice.upper)
- VISIT(st, expr, e->v.Slice.upper)
- if (e->v.Slice.step)
- VISIT(st, expr, e->v.Slice.step)
- break;
+ case Slice_kind:
+ if (e->v.Slice.lower)
+ VISIT(st, expr, e->v.Slice.lower)
+ if (e->v.Slice.upper)
+ VISIT(st, expr, e->v.Slice.upper)
+ if (e->v.Slice.step)
+ VISIT(st, expr, e->v.Slice.step)
+ break;
case Name_kind:
if (!symtable_add_def(st, e->v.Name.id,
e->v.Name.ctx == Load ? USE : DEF_LOCAL))
@@ -1717,10 +1717,10 @@ symtable_visit_argannotations(struct symtable *st, asdl_seq *args)
}
static int
-symtable_visit_annotations(struct symtable *st, arguments_ty a, expr_ty returns)
+symtable_visit_annotations(struct symtable *st, arguments_ty a, expr_ty returns)
{
- if (a->posonlyargs && !symtable_visit_argannotations(st, a->posonlyargs))
- return 0;
+ if (a->posonlyargs && !symtable_visit_argannotations(st, a->posonlyargs))
+ return 0;
if (a->args && !symtable_visit_argannotations(st, a->args))
return 0;
if (a->vararg && a->vararg->annotation)
@@ -1740,8 +1740,8 @@ symtable_visit_arguments(struct symtable *st, arguments_ty a)
/* skip default arguments inside function block
XXX should ast be different?
*/
- if (a->posonlyargs && !symtable_visit_params(st, a->posonlyargs))
- return 0;
+ if (a->posonlyargs && !symtable_visit_params(st, a->posonlyargs))
+ return 0;
if (a->args && !symtable_visit_params(st, a->args))
return 0;
if (a->kwonlyargs && !symtable_visit_params(st, a->kwonlyargs))
@@ -1813,7 +1813,7 @@ symtable_visit_alias(struct symtable *st, alias_ty a)
int lineno = st->st_cur->ste_lineno;
int col_offset = st->st_cur->ste_col_offset;
PyErr_SetString(PyExc_SyntaxError, IMPORT_STAR_WARNING);
- PyErr_SyntaxLocationObject(st->st_filename, lineno, col_offset + 1);
+ PyErr_SyntaxLocationObject(st->st_filename, lineno, col_offset + 1);
Py_DECREF(store_name);
return 0;
}
@@ -1826,12 +1826,12 @@ symtable_visit_alias(struct symtable *st, alias_ty a)
static int
symtable_visit_comprehension(struct symtable *st, comprehension_ty lc)
{
- st->st_cur->ste_comp_iter_target = 1;
+ st->st_cur->ste_comp_iter_target = 1;
VISIT(st, expr, lc->target);
- st->st_cur->ste_comp_iter_target = 0;
- st->st_cur->ste_comp_iter_expr++;
+ st->st_cur->ste_comp_iter_target = 0;
+ st->st_cur->ste_comp_iter_expr++;
VISIT(st, expr, lc->iter);
- st->st_cur->ste_comp_iter_expr--;
+ st->st_cur->ste_comp_iter_expr--;
VISIT_SEQ(st, expr, lc->ifs);
if (lc->is_async) {
st->st_cur->ste_coroutine = 1;
@@ -1857,9 +1857,9 @@ symtable_handle_comprehension(struct symtable *st, expr_ty e,
comprehension_ty outermost = ((comprehension_ty)
asdl_seq_GET(generators, 0));
/* Outermost iterator is evaluated in current scope */
- st->st_cur->ste_comp_iter_expr++;
+ st->st_cur->ste_comp_iter_expr++;
VISIT(st, expr, outermost->iter);
- st->st_cur->ste_comp_iter_expr--;
+ st->st_cur->ste_comp_iter_expr--;
/* Create comprehension scope for the rest */
if (!scope_name ||
!symtable_enter_block(st, scope_name, FunctionBlock, (void *)e,
@@ -1869,37 +1869,37 @@ symtable_handle_comprehension(struct symtable *st, expr_ty e,
if (outermost->is_async) {
st->st_cur->ste_coroutine = 1;
}
- st->st_cur->ste_comprehension = 1;
-
+ st->st_cur->ste_comprehension = 1;
+
/* Outermost iter is received as an argument */
if (!symtable_implicit_arg(st, 0)) {
- symtable_exit_block(st);
+ symtable_exit_block(st);
return 0;
}
- /* Visit iteration variable target, and mark them as such */
- st->st_cur->ste_comp_iter_target = 1;
+ /* Visit iteration variable target, and mark them as such */
+ st->st_cur->ste_comp_iter_target = 1;
VISIT(st, expr, outermost->target);
- st->st_cur->ste_comp_iter_target = 0;
- /* Visit the rest of the comprehension body */
+ st->st_cur->ste_comp_iter_target = 0;
+ /* Visit the rest of the comprehension body */
VISIT_SEQ(st, expr, outermost->ifs);
VISIT_SEQ_TAIL(st, comprehension, generators, 1);
if (value)
VISIT(st, expr, value);
VISIT(st, expr, elt);
if (st->st_cur->ste_generator) {
- PyErr_SetString(PyExc_SyntaxError,
+ PyErr_SetString(PyExc_SyntaxError,
(e->kind == ListComp_kind) ? "'yield' inside list comprehension" :
(e->kind == SetComp_kind) ? "'yield' inside set comprehension" :
(e->kind == DictComp_kind) ? "'yield' inside dict comprehension" :
"'yield' inside generator expression");
- PyErr_SyntaxLocationObject(st->st_filename,
- st->st_cur->ste_lineno,
- st->st_cur->ste_col_offset + 1);
- symtable_exit_block(st);
- return 0;
+ PyErr_SyntaxLocationObject(st->st_filename,
+ st->st_cur->ste_lineno,
+ st->st_cur->ste_col_offset + 1);
+ symtable_exit_block(st);
+ return 0;
}
- st->st_cur->ste_generator = is_generator;
- return symtable_exit_block(st);
+ st->st_cur->ste_generator = is_generator;
+ return symtable_exit_block(st);
}
static int
diff --git a/contrib/tools/python3/src/Python/sysmodule.c b/contrib/tools/python3/src/Python/sysmodule.c
index a044dbbbb6..33eb848fac 100644
--- a/contrib/tools/python3/src/Python/sysmodule.c
+++ b/contrib/tools/python3/src/Python/sysmodule.c
@@ -16,19 +16,19 @@ Data members:
#include "Python.h"
#include "code.h"
-#include "frameobject.h" // PyFrame_GetBack()
-#include "pycore_ceval.h"
-#include "pycore_initconfig.h"
-#include "pycore_object.h"
-#include "pycore_pathconfig.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pylifecycle.h"
-#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
-#include "pycore_pystate.h" // _PyThreadState_GET()
-#include "pycore_tupleobject.h"
-
-#include "pydtrace.h"
-#include "osdefs.h" // DELIM
+#include "frameobject.h" // PyFrame_GetBack()
+#include "pycore_ceval.h"
+#include "pycore_initconfig.h"
+#include "pycore_object.h"
+#include "pycore_pathconfig.h"
+#include "pycore_pyerrors.h"
+#include "pycore_pylifecycle.h"
+#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
+#include "pycore_pystate.h" // _PyThreadState_GET()
+#include "pycore_tupleobject.h"
+
+#include "pydtrace.h"
+#include "osdefs.h" // DELIM
#include <locale.h>
#ifdef MS_WINDOWS
@@ -61,453 +61,453 @@ _Py_IDENTIFIER(stderr);
_Py_IDENTIFIER(warnoptions);
_Py_IDENTIFIER(write);
-static PyObject *
-sys_get_object_id(PyThreadState *tstate, _Py_Identifier *key)
+static PyObject *
+sys_get_object_id(PyThreadState *tstate, _Py_Identifier *key)
{
- PyObject *sd = tstate->interp->sysdict;
- if (sd == NULL) {
+ PyObject *sd = tstate->interp->sysdict;
+ if (sd == NULL) {
return NULL;
- }
+ }
return _PyDict_GetItemId(sd, key);
}
PyObject *
-_PySys_GetObjectId(_Py_Identifier *key)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return sys_get_object_id(tstate, key);
-}
-
-PyObject *
+_PySys_GetObjectId(_Py_Identifier *key)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return sys_get_object_id(tstate, key);
+}
+
+PyObject *
PySys_GetObject(const char *name)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *sd = tstate->interp->sysdict;
- if (sd == NULL) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *sd = tstate->interp->sysdict;
+ if (sd == NULL) {
return NULL;
- }
+ }
return PyDict_GetItemString(sd, name);
}
-static int
-sys_set_object_id(PyThreadState *tstate, _Py_Identifier *key, PyObject *v)
+static int
+sys_set_object_id(PyThreadState *tstate, _Py_Identifier *key, PyObject *v)
{
- PyObject *sd = tstate->interp->sysdict;
+ PyObject *sd = tstate->interp->sysdict;
if (v == NULL) {
- if (_PyDict_GetItemId(sd, key) == NULL) {
+ if (_PyDict_GetItemId(sd, key) == NULL) {
return 0;
- }
- else {
+ }
+ else {
return _PyDict_DelItemId(sd, key);
- }
+ }
}
- else {
+ else {
return _PyDict_SetItemId(sd, key, v);
- }
+ }
}
int
-_PySys_SetObjectId(_Py_Identifier *key, PyObject *v)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return sys_set_object_id(tstate, key, v);
-}
-
-static int
-sys_set_object(PyThreadState *tstate, const char *name, PyObject *v)
-{
- PyObject *sd = tstate->interp->sysdict;
+_PySys_SetObjectId(_Py_Identifier *key, PyObject *v)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return sys_set_object_id(tstate, key, v);
+}
+
+static int
+sys_set_object(PyThreadState *tstate, const char *name, PyObject *v)
+{
+ PyObject *sd = tstate->interp->sysdict;
if (v == NULL) {
- if (PyDict_GetItemString(sd, name) == NULL) {
+ if (PyDict_GetItemString(sd, name) == NULL) {
return 0;
- }
- else {
+ }
+ else {
return PyDict_DelItemString(sd, name);
- }
+ }
}
- else {
+ else {
return PyDict_SetItemString(sd, name, v);
- }
-}
-
-int
-PySys_SetObject(const char *name, PyObject *v)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- return sys_set_object(tstate, name, v);
-}
-
-
-static int
-should_audit(PyInterpreterState *is)
-{
- /* tstate->interp cannot be NULL, but test it just in case
- for extra safety */
- assert(is != NULL);
- if (!is) {
- return 0;
- }
- return (is->runtime->audit_hook_head
- || is->audit_hooks
- || PyDTrace_AUDIT_ENABLED());
-}
-
-
-static int
-sys_audit_tstate(PyThreadState *ts, const char *event,
- const char *argFormat, va_list vargs)
-{
- /* N format is inappropriate, because you do not know
- whether the reference is consumed by the call.
- Assert rather than exception for perf reasons */
- assert(!argFormat || !strchr(argFormat, 'N'));
-
- if (!ts) {
- /* Audit hooks cannot be called with a NULL thread state */
- return 0;
- }
-
- /* The current implementation cannot be called if tstate is not
- the current Python thread state. */
- assert(ts == _PyThreadState_GET());
-
- /* Early exit when no hooks are registered */
- PyInterpreterState *is = ts->interp;
- if (!should_audit(is)) {
- return 0;
- }
-
- PyObject *eventName = NULL;
- PyObject *eventArgs = NULL;
- PyObject *hooks = NULL;
- PyObject *hook = NULL;
- int res = -1;
-
- int dtrace = PyDTrace_AUDIT_ENABLED();
-
- PyObject *exc_type, *exc_value, *exc_tb;
- _PyErr_Fetch(ts, &exc_type, &exc_value, &exc_tb);
-
- /* Initialize event args now */
- if (argFormat && argFormat[0]) {
- eventArgs = _Py_VaBuildValue_SizeT(argFormat, vargs);
- if (eventArgs && !PyTuple_Check(eventArgs)) {
- PyObject *argTuple = PyTuple_Pack(1, eventArgs);
- Py_DECREF(eventArgs);
- eventArgs = argTuple;
- }
- }
- else {
- eventArgs = PyTuple_New(0);
- }
- if (!eventArgs) {
- goto exit;
- }
-
- /* Call global hooks */
- _Py_AuditHookEntry *e = is->runtime->audit_hook_head;
- for (; e; e = e->next) {
- if (e->hookCFunction(event, eventArgs, e->userData) < 0) {
- goto exit;
- }
- }
-
- /* Dtrace USDT point */
- if (dtrace) {
- PyDTrace_AUDIT(event, (void *)eventArgs);
- }
-
- /* Call interpreter hooks */
- if (is->audit_hooks) {
- eventName = PyUnicode_FromString(event);
- if (!eventName) {
- goto exit;
- }
-
- hooks = PyObject_GetIter(is->audit_hooks);
- if (!hooks) {
- goto exit;
- }
-
- /* Disallow tracing in hooks unless explicitly enabled */
- ts->tracing++;
- ts->use_tracing = 0;
- while ((hook = PyIter_Next(hooks)) != NULL) {
- _Py_IDENTIFIER(__cantrace__);
- PyObject *o;
- int canTrace = _PyObject_LookupAttrId(hook, &PyId___cantrace__, &o);
- if (o) {
- canTrace = PyObject_IsTrue(o);
- Py_DECREF(o);
- }
- if (canTrace < 0) {
- break;
- }
- if (canTrace) {
- ts->use_tracing = (ts->c_tracefunc || ts->c_profilefunc);
- ts->tracing--;
- }
- PyObject* args[2] = {eventName, eventArgs};
- o = _PyObject_FastCallTstate(ts, hook, args, 2);
- if (canTrace) {
- ts->tracing++;
- ts->use_tracing = 0;
- }
- if (!o) {
- break;
- }
- Py_DECREF(o);
- Py_CLEAR(hook);
- }
- ts->use_tracing = (ts->c_tracefunc || ts->c_profilefunc);
- ts->tracing--;
- if (_PyErr_Occurred(ts)) {
- goto exit;
- }
- }
-
- res = 0;
-
-exit:
- Py_XDECREF(hook);
- Py_XDECREF(hooks);
- Py_XDECREF(eventName);
- Py_XDECREF(eventArgs);
-
- if (!res) {
- _PyErr_Restore(ts, exc_type, exc_value, exc_tb);
- }
- else {
- assert(_PyErr_Occurred(ts));
- Py_XDECREF(exc_type);
- Py_XDECREF(exc_value);
- Py_XDECREF(exc_tb);
- }
-
- return res;
-}
-
-int
-_PySys_Audit(PyThreadState *tstate, const char *event,
- const char *argFormat, ...)
-{
- va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, argFormat);
-#else
- va_start(vargs);
-#endif
- int res = sys_audit_tstate(tstate, event, argFormat, vargs);
- va_end(vargs);
- return res;
-}
-
-int
-PySys_Audit(const char *event, const char *argFormat, ...)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, argFormat);
-#else
- va_start(vargs);
-#endif
- int res = sys_audit_tstate(tstate, event, argFormat, vargs);
- va_end(vargs);
- return res;
-}
-
-/* We expose this function primarily for our own cleanup during
- * finalization. In general, it should not need to be called,
- * and as such the function is not exported.
- *
- * Must be finalizing to clear hooks */
-void
-_PySys_ClearAuditHooks(PyThreadState *ts)
-{
- assert(ts != NULL);
- if (!ts) {
- return;
- }
-
- _PyRuntimeState *runtime = ts->interp->runtime;
- PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(runtime);
- assert(finalizing == ts);
- if (finalizing != ts) {
- return;
- }
-
- const PyConfig *config = _PyInterpreterState_GetConfig(ts->interp);
- if (config->verbose) {
- PySys_WriteStderr("# clear sys.audit hooks\n");
- }
-
- /* Hooks can abort later hooks for this event, but cannot
- abort the clear operation itself. */
- _PySys_Audit(ts, "cpython._PySys_ClearAuditHooks", NULL);
- _PyErr_Clear(ts);
-
- _Py_AuditHookEntry *e = runtime->audit_hook_head, *n;
- runtime->audit_hook_head = NULL;
- while (e) {
- n = e->next;
- PyMem_RawFree(e);
- e = n;
- }
-}
-
-int
-PySys_AddAuditHook(Py_AuditHookFunction hook, void *userData)
-{
- /* tstate can be NULL, so access directly _PyRuntime:
- PySys_AddAuditHook() can be called before Python is initialized. */
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate;
- if (runtime->initialized) {
- tstate = _PyRuntimeState_GetThreadState(runtime);
- }
- else {
- tstate = NULL;
- }
-
- /* Invoke existing audit hooks to allow them an opportunity to abort. */
- /* Cannot invoke hooks until we are initialized */
- if (tstate != NULL) {
- if (_PySys_Audit(tstate, "sys.addaudithook", NULL) < 0) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_RuntimeError)) {
- /* We do not report errors derived from RuntimeError */
- _PyErr_Clear(tstate);
- return 0;
- }
- return -1;
- }
- }
-
- _Py_AuditHookEntry *e = runtime->audit_hook_head;
- if (!e) {
- e = (_Py_AuditHookEntry*)PyMem_RawMalloc(sizeof(_Py_AuditHookEntry));
- runtime->audit_hook_head = e;
- } else {
- while (e->next) {
- e = e->next;
- }
- e = e->next = (_Py_AuditHookEntry*)PyMem_RawMalloc(
- sizeof(_Py_AuditHookEntry));
- }
-
- if (!e) {
- if (tstate != NULL) {
- _PyErr_NoMemory(tstate);
- }
- return -1;
- }
-
- e->next = NULL;
- e->hookCFunction = (Py_AuditHookFunction)hook;
- e->userData = userData;
-
- return 0;
-}
-
-/*[clinic input]
-sys.addaudithook
-
- hook: object
-
-Adds a new audit hook callback.
-[clinic start generated code]*/
-
+ }
+}
+
+int
+PySys_SetObject(const char *name, PyObject *v)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return sys_set_object(tstate, name, v);
+}
+
+
+static int
+should_audit(PyInterpreterState *is)
+{
+ /* tstate->interp cannot be NULL, but test it just in case
+ for extra safety */
+ assert(is != NULL);
+ if (!is) {
+ return 0;
+ }
+ return (is->runtime->audit_hook_head
+ || is->audit_hooks
+ || PyDTrace_AUDIT_ENABLED());
+}
+
+
+static int
+sys_audit_tstate(PyThreadState *ts, const char *event,
+ const char *argFormat, va_list vargs)
+{
+ /* N format is inappropriate, because you do not know
+ whether the reference is consumed by the call.
+ Assert rather than exception for perf reasons */
+ assert(!argFormat || !strchr(argFormat, 'N'));
+
+ if (!ts) {
+ /* Audit hooks cannot be called with a NULL thread state */
+ return 0;
+ }
+
+ /* The current implementation cannot be called if tstate is not
+ the current Python thread state. */
+ assert(ts == _PyThreadState_GET());
+
+ /* Early exit when no hooks are registered */
+ PyInterpreterState *is = ts->interp;
+ if (!should_audit(is)) {
+ return 0;
+ }
+
+ PyObject *eventName = NULL;
+ PyObject *eventArgs = NULL;
+ PyObject *hooks = NULL;
+ PyObject *hook = NULL;
+ int res = -1;
+
+ int dtrace = PyDTrace_AUDIT_ENABLED();
+
+ PyObject *exc_type, *exc_value, *exc_tb;
+ _PyErr_Fetch(ts, &exc_type, &exc_value, &exc_tb);
+
+ /* Initialize event args now */
+ if (argFormat && argFormat[0]) {
+ eventArgs = _Py_VaBuildValue_SizeT(argFormat, vargs);
+ if (eventArgs && !PyTuple_Check(eventArgs)) {
+ PyObject *argTuple = PyTuple_Pack(1, eventArgs);
+ Py_DECREF(eventArgs);
+ eventArgs = argTuple;
+ }
+ }
+ else {
+ eventArgs = PyTuple_New(0);
+ }
+ if (!eventArgs) {
+ goto exit;
+ }
+
+ /* Call global hooks */
+ _Py_AuditHookEntry *e = is->runtime->audit_hook_head;
+ for (; e; e = e->next) {
+ if (e->hookCFunction(event, eventArgs, e->userData) < 0) {
+ goto exit;
+ }
+ }
+
+ /* Dtrace USDT point */
+ if (dtrace) {
+ PyDTrace_AUDIT(event, (void *)eventArgs);
+ }
+
+ /* Call interpreter hooks */
+ if (is->audit_hooks) {
+ eventName = PyUnicode_FromString(event);
+ if (!eventName) {
+ goto exit;
+ }
+
+ hooks = PyObject_GetIter(is->audit_hooks);
+ if (!hooks) {
+ goto exit;
+ }
+
+ /* Disallow tracing in hooks unless explicitly enabled */
+ ts->tracing++;
+ ts->use_tracing = 0;
+ while ((hook = PyIter_Next(hooks)) != NULL) {
+ _Py_IDENTIFIER(__cantrace__);
+ PyObject *o;
+ int canTrace = _PyObject_LookupAttrId(hook, &PyId___cantrace__, &o);
+ if (o) {
+ canTrace = PyObject_IsTrue(o);
+ Py_DECREF(o);
+ }
+ if (canTrace < 0) {
+ break;
+ }
+ if (canTrace) {
+ ts->use_tracing = (ts->c_tracefunc || ts->c_profilefunc);
+ ts->tracing--;
+ }
+ PyObject* args[2] = {eventName, eventArgs};
+ o = _PyObject_FastCallTstate(ts, hook, args, 2);
+ if (canTrace) {
+ ts->tracing++;
+ ts->use_tracing = 0;
+ }
+ if (!o) {
+ break;
+ }
+ Py_DECREF(o);
+ Py_CLEAR(hook);
+ }
+ ts->use_tracing = (ts->c_tracefunc || ts->c_profilefunc);
+ ts->tracing--;
+ if (_PyErr_Occurred(ts)) {
+ goto exit;
+ }
+ }
+
+ res = 0;
+
+exit:
+ Py_XDECREF(hook);
+ Py_XDECREF(hooks);
+ Py_XDECREF(eventName);
+ Py_XDECREF(eventArgs);
+
+ if (!res) {
+ _PyErr_Restore(ts, exc_type, exc_value, exc_tb);
+ }
+ else {
+ assert(_PyErr_Occurred(ts));
+ Py_XDECREF(exc_type);
+ Py_XDECREF(exc_value);
+ Py_XDECREF(exc_tb);
+ }
+
+ return res;
+}
+
+int
+_PySys_Audit(PyThreadState *tstate, const char *event,
+ const char *argFormat, ...)
+{
+ va_list vargs;
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, argFormat);
+#else
+ va_start(vargs);
+#endif
+ int res = sys_audit_tstate(tstate, event, argFormat, vargs);
+ va_end(vargs);
+ return res;
+}
+
+int
+PySys_Audit(const char *event, const char *argFormat, ...)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ va_list vargs;
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, argFormat);
+#else
+ va_start(vargs);
+#endif
+ int res = sys_audit_tstate(tstate, event, argFormat, vargs);
+ va_end(vargs);
+ return res;
+}
+
+/* We expose this function primarily for our own cleanup during
+ * finalization. In general, it should not need to be called,
+ * and as such the function is not exported.
+ *
+ * Must be finalizing to clear hooks */
+void
+_PySys_ClearAuditHooks(PyThreadState *ts)
+{
+ assert(ts != NULL);
+ if (!ts) {
+ return;
+ }
+
+ _PyRuntimeState *runtime = ts->interp->runtime;
+ PyThreadState *finalizing = _PyRuntimeState_GetFinalizing(runtime);
+ assert(finalizing == ts);
+ if (finalizing != ts) {
+ return;
+ }
+
+ const PyConfig *config = _PyInterpreterState_GetConfig(ts->interp);
+ if (config->verbose) {
+ PySys_WriteStderr("# clear sys.audit hooks\n");
+ }
+
+ /* Hooks can abort later hooks for this event, but cannot
+ abort the clear operation itself. */
+ _PySys_Audit(ts, "cpython._PySys_ClearAuditHooks", NULL);
+ _PyErr_Clear(ts);
+
+ _Py_AuditHookEntry *e = runtime->audit_hook_head, *n;
+ runtime->audit_hook_head = NULL;
+ while (e) {
+ n = e->next;
+ PyMem_RawFree(e);
+ e = n;
+ }
+}
+
+int
+PySys_AddAuditHook(Py_AuditHookFunction hook, void *userData)
+{
+ /* tstate can be NULL, so access directly _PyRuntime:
+ PySys_AddAuditHook() can be called before Python is initialized. */
+ _PyRuntimeState *runtime = &_PyRuntime;
+ PyThreadState *tstate;
+ if (runtime->initialized) {
+ tstate = _PyRuntimeState_GetThreadState(runtime);
+ }
+ else {
+ tstate = NULL;
+ }
+
+ /* Invoke existing audit hooks to allow them an opportunity to abort. */
+ /* Cannot invoke hooks until we are initialized */
+ if (tstate != NULL) {
+ if (_PySys_Audit(tstate, "sys.addaudithook", NULL) < 0) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_RuntimeError)) {
+ /* We do not report errors derived from RuntimeError */
+ _PyErr_Clear(tstate);
+ return 0;
+ }
+ return -1;
+ }
+ }
+
+ _Py_AuditHookEntry *e = runtime->audit_hook_head;
+ if (!e) {
+ e = (_Py_AuditHookEntry*)PyMem_RawMalloc(sizeof(_Py_AuditHookEntry));
+ runtime->audit_hook_head = e;
+ } else {
+ while (e->next) {
+ e = e->next;
+ }
+ e = e->next = (_Py_AuditHookEntry*)PyMem_RawMalloc(
+ sizeof(_Py_AuditHookEntry));
+ }
+
+ if (!e) {
+ if (tstate != NULL) {
+ _PyErr_NoMemory(tstate);
+ }
+ return -1;
+ }
+
+ e->next = NULL;
+ e->hookCFunction = (Py_AuditHookFunction)hook;
+ e->userData = userData;
+
+ return 0;
+}
+
+/*[clinic input]
+sys.addaudithook
+
+ hook: object
+
+Adds a new audit hook callback.
+[clinic start generated code]*/
+
+static PyObject *
+sys_addaudithook_impl(PyObject *module, PyObject *hook)
+/*[clinic end generated code: output=4f9c17aaeb02f44e input=0f3e191217a45e34]*/
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ /* Invoke existing audit hooks to allow them an opportunity to abort. */
+ if (_PySys_Audit(tstate, "sys.addaudithook", NULL) < 0) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_Exception)) {
+ /* We do not report errors derived from Exception */
+ _PyErr_Clear(tstate);
+ Py_RETURN_NONE;
+ }
+ return NULL;
+ }
+
+ PyInterpreterState *is = tstate->interp;
+ if (is->audit_hooks == NULL) {
+ is->audit_hooks = PyList_New(0);
+ if (is->audit_hooks == NULL) {
+ return NULL;
+ }
+ }
+
+ if (PyList_Append(is->audit_hooks, hook) < 0) {
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+
+PyDoc_STRVAR(audit_doc,
+"audit(event, *args)\n\
+\n\
+Passes the event to any audit hooks that are attached.");
+
+static PyObject *
+sys_audit(PyObject *self, PyObject *const *args, Py_ssize_t argc)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ _Py_EnsureTstateNotNULL(tstate);
+
+ if (argc == 0) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "audit() missing 1 required positional argument: "
+ "'event'");
+ return NULL;
+ }
+
+ if (!should_audit(tstate->interp)) {
+ Py_RETURN_NONE;
+ }
+
+ PyObject *auditEvent = args[0];
+ if (!auditEvent) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ "expected str for argument 'event'");
+ return NULL;
+ }
+ if (!PyUnicode_Check(auditEvent)) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "expected str for argument 'event', not %.200s",
+ Py_TYPE(auditEvent)->tp_name);
+ return NULL;
+ }
+ const char *event = PyUnicode_AsUTF8(auditEvent);
+ if (!event) {
+ return NULL;
+ }
+
+ PyObject *auditArgs = _PyTuple_FromArray(args + 1, argc - 1);
+ if (!auditArgs) {
+ return NULL;
+ }
+
+ int res = _PySys_Audit(tstate, event, "O", auditArgs);
+ Py_DECREF(auditArgs);
+
+ if (res < 0) {
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+
+
static PyObject *
-sys_addaudithook_impl(PyObject *module, PyObject *hook)
-/*[clinic end generated code: output=4f9c17aaeb02f44e input=0f3e191217a45e34]*/
-{
- PyThreadState *tstate = _PyThreadState_GET();
-
- /* Invoke existing audit hooks to allow them an opportunity to abort. */
- if (_PySys_Audit(tstate, "sys.addaudithook", NULL) < 0) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_Exception)) {
- /* We do not report errors derived from Exception */
- _PyErr_Clear(tstate);
- Py_RETURN_NONE;
- }
- return NULL;
- }
-
- PyInterpreterState *is = tstate->interp;
- if (is->audit_hooks == NULL) {
- is->audit_hooks = PyList_New(0);
- if (is->audit_hooks == NULL) {
- return NULL;
- }
- }
-
- if (PyList_Append(is->audit_hooks, hook) < 0) {
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-PyDoc_STRVAR(audit_doc,
-"audit(event, *args)\n\
-\n\
-Passes the event to any audit hooks that are attached.");
-
-static PyObject *
-sys_audit(PyObject *self, PyObject *const *args, Py_ssize_t argc)
-{
- PyThreadState *tstate = _PyThreadState_GET();
- _Py_EnsureTstateNotNULL(tstate);
-
- if (argc == 0) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "audit() missing 1 required positional argument: "
- "'event'");
- return NULL;
- }
-
- if (!should_audit(tstate->interp)) {
- Py_RETURN_NONE;
- }
-
- PyObject *auditEvent = args[0];
- if (!auditEvent) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- "expected str for argument 'event'");
- return NULL;
- }
- if (!PyUnicode_Check(auditEvent)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "expected str for argument 'event', not %.200s",
- Py_TYPE(auditEvent)->tp_name);
- return NULL;
- }
- const char *event = PyUnicode_AsUTF8(auditEvent);
- if (!event) {
- return NULL;
- }
-
- PyObject *auditArgs = _PyTuple_FromArray(args + 1, argc - 1);
- if (!auditArgs) {
- return NULL;
- }
-
- int res = _PySys_Audit(tstate, event, "O", auditArgs);
- Py_DECREF(auditArgs);
-
- if (res < 0) {
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-
-static PyObject *
sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *keywords)
{
- PyThreadState *tstate = _PyThreadState_GET();
- assert(!_PyErr_Occurred(tstate));
+ PyThreadState *tstate = _PyThreadState_GET();
+ assert(!_PyErr_Occurred(tstate));
char *envar = Py_GETENV("PYTHONBREAKPOINT");
if (envar == NULL || strlen(envar) == 0) {
@@ -523,7 +523,7 @@ sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
* we need to save a copy of envar. */
envar = _PyMem_RawStrdup(envar);
if (envar == NULL) {
- _PyErr_NoMemory(tstate);
+ _PyErr_NoMemory(tstate);
return NULL;
}
const char *last_dot = strrchr(envar, '.');
@@ -548,11 +548,11 @@ sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
return NULL;
}
- PyObject *module = PyImport_Import(modulepath);
+ PyObject *module = PyImport_Import(modulepath);
Py_DECREF(modulepath);
if (module == NULL) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_ImportError)) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_ImportError)) {
goto warn;
}
PyMem_RawFree(envar);
@@ -563,20 +563,20 @@ sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
Py_DECREF(module);
if (hook == NULL) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
goto warn;
}
PyMem_RawFree(envar);
return NULL;
}
PyMem_RawFree(envar);
- PyObject *retval = PyObject_Vectorcall(hook, args, nargs, keywords);
+ PyObject *retval = PyObject_Vectorcall(hook, args, nargs, keywords);
Py_DECREF(hook);
return retval;
warn:
/* If any of the imports went wrong, then warn and ignore. */
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
int status = PyErr_WarnFormat(
PyExc_RuntimeWarning, 0,
"Ignoring unimportable $PYTHONBREAKPOINT: \"%s\"", envar);
@@ -626,12 +626,12 @@ sys_displayhook_unencodable(PyObject *outf, PyObject *o)
if (encoded == NULL)
goto error;
- if (_PyObject_LookupAttrId(outf, &PyId_buffer, &buffer) < 0) {
- Py_DECREF(encoded);
- goto error;
- }
+ if (_PyObject_LookupAttrId(outf, &PyId_buffer, &buffer) < 0) {
+ Py_DECREF(encoded);
+ goto error;
+ }
if (buffer) {
- result = _PyObject_CallMethodIdOneArg(buffer, &PyId_write, encoded);
+ result = _PyObject_CallMethodIdOneArg(buffer, &PyId_write, encoded);
Py_DECREF(buffer);
Py_DECREF(encoded);
if (result == NULL)
@@ -659,30 +659,30 @@ finally:
return ret;
}
-/*[clinic input]
-sys.displayhook
-
- object as o: object
- /
-
-Print an object to sys.stdout and also save it in builtins._
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.displayhook
+
+ object as o: object
+ /
+
+Print an object to sys.stdout and also save it in builtins._
+[clinic start generated code]*/
+
static PyObject *
-sys_displayhook(PyObject *module, PyObject *o)
-/*[clinic end generated code: output=347477d006df92ed input=08ba730166d7ef72]*/
+sys_displayhook(PyObject *module, PyObject *o)
+/*[clinic end generated code: output=347477d006df92ed input=08ba730166d7ef72]*/
{
PyObject *outf;
PyObject *builtins;
static PyObject *newline = NULL;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
builtins = _PyImport_GetModuleId(&PyId_builtins);
if (builtins == NULL) {
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_SetString(tstate, PyExc_RuntimeError,
- "lost builtins module");
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_SetString(tstate, PyExc_RuntimeError,
+ "lost builtins module");
+ }
return NULL;
}
Py_DECREF(builtins);
@@ -695,21 +695,21 @@ sys_displayhook(PyObject *module, PyObject *o)
}
if (_PyObject_SetAttrId(builtins, &PyId__, Py_None) != 0)
return NULL;
- outf = sys_get_object_id(tstate, &PyId_stdout);
+ outf = sys_get_object_id(tstate, &PyId_stdout);
if (outf == NULL || outf == Py_None) {
- _PyErr_SetString(tstate, PyExc_RuntimeError, "lost sys.stdout");
+ _PyErr_SetString(tstate, PyExc_RuntimeError, "lost sys.stdout");
return NULL;
}
if (PyFile_WriteObject(o, outf, 0) != 0) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_UnicodeEncodeError)) {
- int err;
+ if (_PyErr_ExceptionMatches(tstate, PyExc_UnicodeEncodeError)) {
+ int err;
/* repr(o) is not encodable to sys.stdout.encoding with
* sys.stdout.errors error handler (which is probably 'strict') */
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
err = sys_displayhook_unencodable(outf, o);
- if (err) {
+ if (err) {
return NULL;
- }
+ }
}
else {
return NULL;
@@ -728,41 +728,41 @@ sys_displayhook(PyObject *module, PyObject *o)
}
-/*[clinic input]
-sys.excepthook
-
- exctype: object
- value: object
- traceback: object
- /
-
-Handle an exception by displaying it with a traceback on sys.stderr.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.excepthook
+
+ exctype: object
+ value: object
+ traceback: object
+ /
+
+Handle an exception by displaying it with a traceback on sys.stderr.
+[clinic start generated code]*/
+
static PyObject *
-sys_excepthook_impl(PyObject *module, PyObject *exctype, PyObject *value,
- PyObject *traceback)
-/*[clinic end generated code: output=18d99fdda21b6b5e input=ecf606fa826f19d9]*/
+sys_excepthook_impl(PyObject *module, PyObject *exctype, PyObject *value,
+ PyObject *traceback)
+/*[clinic end generated code: output=18d99fdda21b6b5e input=ecf606fa826f19d9]*/
{
- PyErr_Display(exctype, value, traceback);
+ PyErr_Display(exctype, value, traceback);
Py_RETURN_NONE;
}
-/*[clinic input]
-sys.exc_info
-
-Return current exception information: (type, value, traceback).
-
-Return information about the most recent exception caught by an except
-clause in the current stack frame or in an older stack frame.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.exc_info
+
+Return current exception information: (type, value, traceback).
+
+Return information about the most recent exception caught by an except
+clause in the current stack frame or in an older stack frame.
+[clinic start generated code]*/
+
static PyObject *
-sys_exc_info_impl(PyObject *module)
-/*[clinic end generated code: output=3afd0940cf3a4d30 input=b5c5bf077788a3e5]*/
+sys_exc_info_impl(PyObject *module)
+/*[clinic end generated code: output=3afd0940cf3a4d30 input=b5c5bf077788a3e5]*/
{
- _PyErr_StackItem *err_info = _PyErr_GetTopmostException(_PyThreadState_GET());
+ _PyErr_StackItem *err_info = _PyErr_GetTopmostException(_PyThreadState_GET());
return Py_BuildValue(
"(OOO)",
err_info->exc_type != NULL ? err_info->exc_type : Py_None,
@@ -772,126 +772,126 @@ sys_exc_info_impl(PyObject *module)
}
-/*[clinic input]
-sys.unraisablehook
-
- unraisable: object
- /
-
-Handle an unraisable exception.
-
-The unraisable argument has the following attributes:
-
-* exc_type: Exception type.
-* exc_value: Exception value, can be None.
-* exc_traceback: Exception traceback, can be None.
-* err_msg: Error message, can be None.
-* object: Object causing the exception, can be None.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.unraisablehook
+
+ unraisable: object
+ /
+
+Handle an unraisable exception.
+
+The unraisable argument has the following attributes:
+
+* exc_type: Exception type.
+* exc_value: Exception value, can be None.
+* exc_traceback: Exception traceback, can be None.
+* err_msg: Error message, can be None.
+* object: Object causing the exception, can be None.
+[clinic start generated code]*/
+
+static PyObject *
+sys_unraisablehook(PyObject *module, PyObject *unraisable)
+/*[clinic end generated code: output=bb92838b32abaa14 input=ec3af148294af8d3]*/
+{
+ return _PyErr_WriteUnraisableDefaultHook(unraisable);
+}
+
+
+/*[clinic input]
+sys.exit
+
+ status: object = None
+ /
+
+Exit the interpreter by raising SystemExit(status).
+
+If the status is omitted or None, it defaults to zero (i.e., success).
+If the status is an integer, it will be used as the system exit status.
+If it is another kind of object, it will be printed and the system
+exit status will be one (i.e., failure).
+[clinic start generated code]*/
+
static PyObject *
-sys_unraisablehook(PyObject *module, PyObject *unraisable)
-/*[clinic end generated code: output=bb92838b32abaa14 input=ec3af148294af8d3]*/
-{
- return _PyErr_WriteUnraisableDefaultHook(unraisable);
-}
-
-
-/*[clinic input]
-sys.exit
-
- status: object = None
- /
-
-Exit the interpreter by raising SystemExit(status).
-
-If the status is omitted or None, it defaults to zero (i.e., success).
-If the status is an integer, it will be used as the system exit status.
-If it is another kind of object, it will be printed and the system
-exit status will be one (i.e., failure).
-[clinic start generated code]*/
-
-static PyObject *
-sys_exit_impl(PyObject *module, PyObject *status)
-/*[clinic end generated code: output=13870986c1ab2ec0 input=b86ca9497baa94f2]*/
-{
+sys_exit_impl(PyObject *module, PyObject *status)
+/*[clinic end generated code: output=13870986c1ab2ec0 input=b86ca9497baa94f2]*/
+{
/* Raise SystemExit so callers may catch it or clean up. */
- PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_SetObject(tstate, PyExc_SystemExit, status);
+ PyThreadState *tstate = _PyThreadState_GET();
+ _PyErr_SetObject(tstate, PyExc_SystemExit, status);
return NULL;
}
-/*[clinic input]
-sys.getdefaultencoding
-
-Return the current default encoding used by the Unicode implementation.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.getdefaultencoding
+
+Return the current default encoding used by the Unicode implementation.
+[clinic start generated code]*/
+
static PyObject *
-sys_getdefaultencoding_impl(PyObject *module)
-/*[clinic end generated code: output=256d19dfcc0711e6 input=d416856ddbef6909]*/
+sys_getdefaultencoding_impl(PyObject *module)
+/*[clinic end generated code: output=256d19dfcc0711e6 input=d416856ddbef6909]*/
{
return PyUnicode_FromString(PyUnicode_GetDefaultEncoding());
}
-/*[clinic input]
-sys.getfilesystemencoding
+/*[clinic input]
+sys.getfilesystemencoding
+
+Return the encoding used to convert Unicode filenames to OS filenames.
+[clinic start generated code]*/
-Return the encoding used to convert Unicode filenames to OS filenames.
-[clinic start generated code]*/
-
static PyObject *
-sys_getfilesystemencoding_impl(PyObject *module)
-/*[clinic end generated code: output=1dc4bdbe9be44aa7 input=8475f8649b8c7d8c]*/
+sys_getfilesystemencoding_impl(PyObject *module)
+/*[clinic end generated code: output=1dc4bdbe9be44aa7 input=8475f8649b8c7d8c]*/
{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- return PyUnicode_FromWideChar(config->filesystem_encoding, -1);
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ return PyUnicode_FromWideChar(config->filesystem_encoding, -1);
}
-/*[clinic input]
-sys.getfilesystemencodeerrors
+/*[clinic input]
+sys.getfilesystemencodeerrors
+
+Return the error mode used Unicode to OS filename conversion.
+[clinic start generated code]*/
-Return the error mode used Unicode to OS filename conversion.
-[clinic start generated code]*/
-
static PyObject *
-sys_getfilesystemencodeerrors_impl(PyObject *module)
-/*[clinic end generated code: output=ba77b36bbf7c96f5 input=22a1e8365566f1e5]*/
-{
- PyInterpreterState *interp = _PyInterpreterState_GET();
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- return PyUnicode_FromWideChar(config->filesystem_errors, -1);
-}
-
-/*[clinic input]
-sys.intern
-
- string as s: unicode
- /
-
-``Intern'' the given string.
-
-This enters the string in the (global) table of interned strings whose
-purpose is to speed up dictionary lookups. Return the string itself or
-the previously interned string object with the same value.
-[clinic start generated code]*/
-
+sys_getfilesystemencodeerrors_impl(PyObject *module)
+/*[clinic end generated code: output=ba77b36bbf7c96f5 input=22a1e8365566f1e5]*/
+{
+ PyInterpreterState *interp = _PyInterpreterState_GET();
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ return PyUnicode_FromWideChar(config->filesystem_errors, -1);
+}
+
+/*[clinic input]
+sys.intern
+
+ string as s: unicode
+ /
+
+``Intern'' the given string.
+
+This enters the string in the (global) table of interned strings whose
+purpose is to speed up dictionary lookups. Return the string itself or
+the previously interned string object with the same value.
+[clinic start generated code]*/
+
static PyObject *
-sys_intern_impl(PyObject *module, PyObject *s)
-/*[clinic end generated code: output=be680c24f5c9e5d6 input=849483c006924e2f]*/
+sys_intern_impl(PyObject *module, PyObject *s)
+/*[clinic end generated code: output=be680c24f5c9e5d6 input=849483c006924e2f]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (PyUnicode_CheckExact(s)) {
Py_INCREF(s);
PyUnicode_InternInPlace(&s);
return s;
}
else {
- _PyErr_Format(tstate, PyExc_TypeError,
- "can't intern %.400s", Py_TYPE(s)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "can't intern %.400s", Py_TYPE(s)->tp_name);
return NULL;
}
}
@@ -926,20 +926,20 @@ trace_init(void)
static PyObject *
-call_trampoline(PyThreadState *tstate, PyObject* callback,
+call_trampoline(PyThreadState *tstate, PyObject* callback,
PyFrameObject *frame, int what, PyObject *arg)
{
if (PyFrame_FastToLocalsWithError(frame) < 0) {
return NULL;
}
- PyObject *stack[3];
+ PyObject *stack[3];
stack[0] = (PyObject *)frame;
stack[1] = whatstrings[what];
stack[2] = (arg != NULL) ? arg : Py_None;
/* call the Python-level function */
- PyObject *result = _PyObject_FastCallTstate(tstate, callback, stack, 3);
+ PyObject *result = _PyObject_FastCallTstate(tstate, callback, stack, 3);
PyFrame_LocalsToFast(frame, 1);
if (result == NULL) {
@@ -953,17 +953,17 @@ static int
profile_trampoline(PyObject *self, PyFrameObject *frame,
int what, PyObject *arg)
{
- if (arg == NULL) {
- arg = Py_None;
- }
+ if (arg == NULL) {
+ arg = Py_None;
+ }
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *result = call_trampoline(tstate, self, frame, what, arg);
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *result = call_trampoline(tstate, self, frame, what, arg);
if (result == NULL) {
- _PyEval_SetProfile(tstate, NULL, NULL);
+ _PyEval_SetProfile(tstate, NULL, NULL);
return -1;
}
-
+
Py_DECREF(result);
return 0;
}
@@ -973,24 +973,24 @@ trace_trampoline(PyObject *self, PyFrameObject *frame,
int what, PyObject *arg)
{
PyObject *callback;
- if (what == PyTrace_CALL) {
+ if (what == PyTrace_CALL) {
callback = self;
- }
- else {
+ }
+ else {
callback = frame->f_trace;
- }
- if (callback == NULL) {
+ }
+ if (callback == NULL) {
return 0;
- }
-
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *result = call_trampoline(tstate, callback, frame, what, arg);
+ }
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *result = call_trampoline(tstate, callback, frame, what, arg);
if (result == NULL) {
- _PyEval_SetTrace(tstate, NULL, NULL);
+ _PyEval_SetTrace(tstate, NULL, NULL);
Py_CLEAR(frame->f_trace);
return -1;
}
-
+
if (result != Py_None) {
Py_XSETREF(frame->f_trace, result);
}
@@ -1003,21 +1003,21 @@ trace_trampoline(PyObject *self, PyFrameObject *frame,
static PyObject *
sys_settrace(PyObject *self, PyObject *args)
{
- if (trace_init() == -1) {
+ if (trace_init() == -1) {
return NULL;
- }
-
- PyThreadState *tstate = _PyThreadState_GET();
- if (args == Py_None) {
- if (_PyEval_SetTrace(tstate, NULL, NULL) < 0) {
- return NULL;
- }
- }
- else {
- if (_PyEval_SetTrace(tstate, trace_trampoline, args) < 0) {
- return NULL;
- }
- }
+ }
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (args == Py_None) {
+ if (_PyEval_SetTrace(tstate, NULL, NULL) < 0) {
+ return NULL;
+ }
+ }
+ else {
+ if (_PyEval_SetTrace(tstate, trace_trampoline, args) < 0) {
+ return NULL;
+ }
+ }
Py_RETURN_NONE;
}
@@ -1028,19 +1028,19 @@ Set the global debug tracing function. It will be called on each\n\
function call. See the debugger chapter in the library manual."
);
-/*[clinic input]
-sys.gettrace
-
-Return the global debug tracing function set with sys.settrace.
-
-See the debugger chapter in the library manual.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.gettrace
+
+Return the global debug tracing function set with sys.settrace.
+
+See the debugger chapter in the library manual.
+[clinic start generated code]*/
+
static PyObject *
-sys_gettrace_impl(PyObject *module)
-/*[clinic end generated code: output=e97e3a4d8c971b6e input=373b51bb2147f4d8]*/
+sys_gettrace_impl(PyObject *module)
+/*[clinic end generated code: output=e97e3a4d8c971b6e input=373b51bb2147f4d8]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *temp = tstate->c_traceobj;
if (temp == NULL)
@@ -1052,21 +1052,21 @@ sys_gettrace_impl(PyObject *module)
static PyObject *
sys_setprofile(PyObject *self, PyObject *args)
{
- if (trace_init() == -1) {
+ if (trace_init() == -1) {
return NULL;
- }
-
- PyThreadState *tstate = _PyThreadState_GET();
- if (args == Py_None) {
- if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
- return NULL;
- }
- }
- else {
- if (_PyEval_SetProfile(tstate, profile_trampoline, args) < 0) {
- return NULL;
- }
- }
+ }
+
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (args == Py_None) {
+ if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
+ return NULL;
+ }
+ }
+ else {
+ if (_PyEval_SetProfile(tstate, profile_trampoline, args) < 0) {
+ return NULL;
+ }
+ }
Py_RETURN_NONE;
}
@@ -1077,19 +1077,19 @@ Set the profiling function. It will be called on each function call\n\
and return. See the profiler chapter in the library manual."
);
-/*[clinic input]
-sys.getprofile
-
-Return the profiling function set with sys.setprofile.
-
-See the profiler chapter in the library manual.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.getprofile
+
+Return the profiling function set with sys.setprofile.
+
+See the profiler chapter in the library manual.
+[clinic start generated code]*/
+
static PyObject *
-sys_getprofile_impl(PyObject *module)
-/*[clinic end generated code: output=579b96b373448188 input=1b3209d89a32965d]*/
+sys_getprofile_impl(PyObject *module)
+/*[clinic end generated code: output=579b96b373448188 input=1b3209d89a32965d]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
PyObject *temp = tstate->c_profileobj;
if (temp == NULL)
@@ -1099,72 +1099,72 @@ sys_getprofile_impl(PyObject *module)
}
-/*[clinic input]
-sys.setswitchinterval
+/*[clinic input]
+sys.setswitchinterval
+
+ interval: double
+ /
+
+Set the ideal thread switching delay inside the Python interpreter.
+
+The actual frequency of switching threads can be lower if the
+interpreter executes long sequences of uninterruptible code
+(this is implementation-specific and workload-dependent).
+
+The parameter must represent the desired switching delay in seconds
+A typical value is 0.005 (5 milliseconds).
+[clinic start generated code]*/
- interval: double
- /
-
-Set the ideal thread switching delay inside the Python interpreter.
-
-The actual frequency of switching threads can be lower if the
-interpreter executes long sequences of uninterruptible code
-(this is implementation-specific and workload-dependent).
-
-The parameter must represent the desired switching delay in seconds
-A typical value is 0.005 (5 milliseconds).
-[clinic start generated code]*/
-
static PyObject *
-sys_setswitchinterval_impl(PyObject *module, double interval)
-/*[clinic end generated code: output=65a19629e5153983 input=561b477134df91d9]*/
+sys_setswitchinterval_impl(PyObject *module, double interval)
+/*[clinic end generated code: output=65a19629e5153983 input=561b477134df91d9]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (interval <= 0.0) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "switch interval must be strictly positive");
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (interval <= 0.0) {
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "switch interval must be strictly positive");
return NULL;
}
- _PyEval_SetSwitchInterval((unsigned long) (1e6 * interval));
+ _PyEval_SetSwitchInterval((unsigned long) (1e6 * interval));
Py_RETURN_NONE;
}
-/*[clinic input]
-sys.getswitchinterval -> double
-
-Return the current thread switch interval; see sys.setswitchinterval().
-[clinic start generated code]*/
-
-static double
-sys_getswitchinterval_impl(PyObject *module)
-/*[clinic end generated code: output=a38c277c85b5096d input=bdf9d39c0ebbbb6f]*/
+/*[clinic input]
+sys.getswitchinterval -> double
+
+Return the current thread switch interval; see sys.setswitchinterval().
+[clinic start generated code]*/
+
+static double
+sys_getswitchinterval_impl(PyObject *module)
+/*[clinic end generated code: output=a38c277c85b5096d input=bdf9d39c0ebbbb6f]*/
{
- return 1e-6 * _PyEval_GetSwitchInterval();
+ return 1e-6 * _PyEval_GetSwitchInterval();
}
-/*[clinic input]
-sys.setrecursionlimit
+/*[clinic input]
+sys.setrecursionlimit
+
+ limit as new_limit: int
+ /
+
+Set the maximum depth of the Python interpreter stack to n.
+
+This limit prevents infinite recursion from causing an overflow of the C
+stack and crashing Python. The highest possible limit is platform-
+dependent.
+[clinic start generated code]*/
- limit as new_limit: int
- /
-
-Set the maximum depth of the Python interpreter stack to n.
-
-This limit prevents infinite recursion from causing an overflow of the C
-stack and crashing Python. The highest possible limit is platform-
-dependent.
-[clinic start generated code]*/
-
static PyObject *
-sys_setrecursionlimit_impl(PyObject *module, int new_limit)
-/*[clinic end generated code: output=35e1c64754800ace input=b0f7a23393924af3]*/
+sys_setrecursionlimit_impl(PyObject *module, int new_limit)
+/*[clinic end generated code: output=35e1c64754800ace input=b0f7a23393924af3]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (new_limit < 1) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "recursion limit must be greater or equal than 1");
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "recursion limit must be greater or equal than 1");
return NULL;
}
@@ -1177,11 +1177,11 @@ sys_setrecursionlimit_impl(PyObject *module, int new_limit)
Reject too low new limit if the current recursion depth is higher than
the new low-water mark. Otherwise it may not be possible anymore to
reset the overflowed flag to 0. */
- if (tstate->recursion_depth >= new_limit) {
- _PyErr_Format(tstate, PyExc_RecursionError,
- "cannot set the recursion limit to %i at "
- "the recursion depth %i: the limit is too low",
- new_limit, tstate->recursion_depth);
+ if (tstate->recursion_depth >= new_limit) {
+ _PyErr_Format(tstate, PyExc_RecursionError,
+ "cannot set the recursion limit to %i at "
+ "the recursion depth %i: the limit is too low",
+ new_limit, tstate->recursion_depth);
return NULL;
}
@@ -1196,22 +1196,22 @@ sys.set_coroutine_origin_tracking_depth
Enable or disable origin tracking for coroutine objects in this thread.
-Coroutine objects will track 'depth' frames of traceback information
-about where they came from, available in their cr_origin attribute.
-
-Set a depth of 0 to disable.
+Coroutine objects will track 'depth' frames of traceback information
+about where they came from, available in their cr_origin attribute.
+
+Set a depth of 0 to disable.
[clinic start generated code]*/
static PyObject *
sys_set_coroutine_origin_tracking_depth_impl(PyObject *module, int depth)
-/*[clinic end generated code: output=0a2123c1cc6759c5 input=a1d0a05f89d2c426]*/
+/*[clinic end generated code: output=0a2123c1cc6759c5 input=a1d0a05f89d2c426]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (depth < 0) {
- _PyErr_SetString(tstate, PyExc_ValueError, "depth must be >= 0");
+ _PyErr_SetString(tstate, PyExc_ValueError, "depth must be >= 0");
return NULL;
}
- _PyEval_SetCoroutineOriginTrackingDepth(tstate, depth);
+ _PyEval_SetCoroutineOriginTrackingDepth(tstate, depth);
Py_RETURN_NONE;
}
@@ -1233,7 +1233,7 @@ static PyTypeObject AsyncGenHooksType;
PyDoc_STRVAR(asyncgen_hooks_doc,
"asyncgen_hooks\n\
\n\
-A named tuple providing information about asynchronous\n\
+A named tuple providing information about asynchronous\n\
generators hooks. The attributes are read only.");
static PyStructSequence_Field asyncgen_hooks_fields[] = {
@@ -1255,7 +1255,7 @@ sys_set_asyncgen_hooks(PyObject *self, PyObject *args, PyObject *kw)
static char *keywords[] = {"firstiter", "finalizer", NULL};
PyObject *firstiter = NULL;
PyObject *finalizer = NULL;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (!PyArg_ParseTupleAndKeywords(
args, kw, "|OO", keywords,
@@ -1265,54 +1265,54 @@ sys_set_asyncgen_hooks(PyObject *self, PyObject *args, PyObject *kw)
if (finalizer && finalizer != Py_None) {
if (!PyCallable_Check(finalizer)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "callable finalizer expected, got %.50s",
- Py_TYPE(finalizer)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "callable finalizer expected, got %.50s",
+ Py_TYPE(finalizer)->tp_name);
+ return NULL;
+ }
+ if (_PyEval_SetAsyncGenFinalizer(finalizer) < 0) {
return NULL;
}
- if (_PyEval_SetAsyncGenFinalizer(finalizer) < 0) {
- return NULL;
- }
}
- else if (finalizer == Py_None && _PyEval_SetAsyncGenFinalizer(NULL) < 0) {
- return NULL;
+ else if (finalizer == Py_None && _PyEval_SetAsyncGenFinalizer(NULL) < 0) {
+ return NULL;
}
if (firstiter && firstiter != Py_None) {
if (!PyCallable_Check(firstiter)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "callable firstiter expected, got %.50s",
- Py_TYPE(firstiter)->tp_name);
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "callable firstiter expected, got %.50s",
+ Py_TYPE(firstiter)->tp_name);
+ return NULL;
+ }
+ if (_PyEval_SetAsyncGenFirstiter(firstiter) < 0) {
return NULL;
}
- if (_PyEval_SetAsyncGenFirstiter(firstiter) < 0) {
- return NULL;
- }
}
- else if (firstiter == Py_None && _PyEval_SetAsyncGenFirstiter(NULL) < 0) {
- return NULL;
+ else if (firstiter == Py_None && _PyEval_SetAsyncGenFirstiter(NULL) < 0) {
+ return NULL;
}
Py_RETURN_NONE;
}
PyDoc_STRVAR(set_asyncgen_hooks_doc,
-"set_asyncgen_hooks(* [, firstiter] [, finalizer])\n\
+"set_asyncgen_hooks(* [, firstiter] [, finalizer])\n\
\n\
Set a finalizer for async generators objects."
);
-/*[clinic input]
-sys.get_asyncgen_hooks
-
-Return the installed asynchronous generators hooks.
-
-This returns a namedtuple of the form (firstiter, finalizer).
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.get_asyncgen_hooks
+
+Return the installed asynchronous generators hooks.
+
+This returns a namedtuple of the form (firstiter, finalizer).
+[clinic start generated code]*/
+
static PyObject *
-sys_get_asyncgen_hooks_impl(PyObject *module)
-/*[clinic end generated code: output=53a253707146f6cf input=3676b9ea62b14625]*/
+sys_get_asyncgen_hooks_impl(PyObject *module)
+/*[clinic end generated code: output=53a253707146f6cf input=3676b9ea62b14625]*/
{
PyObject *res;
PyObject *firstiter = _PyEval_GetAsyncGenFirstiter();
@@ -1346,7 +1346,7 @@ static PyTypeObject Hash_InfoType;
PyDoc_STRVAR(hash_info_doc,
"hash_info\n\
\n\
-A named tuple providing parameters used for computing\n\
+A named tuple providing parameters used for computing\n\
hashes. The attributes are read only.");
static PyStructSequence_Field hash_info_fields[] = {
@@ -1372,7 +1372,7 @@ static PyStructSequence_Desc hash_info_desc = {
};
static PyObject *
-get_hash_info(PyThreadState *tstate)
+get_hash_info(PyThreadState *tstate)
{
PyObject *hash_info;
int field = 0;
@@ -1399,25 +1399,25 @@ get_hash_info(PyThreadState *tstate)
PyLong_FromLong(hashfunc->seed_bits));
PyStructSequence_SET_ITEM(hash_info, field++,
PyLong_FromLong(Py_HASH_CUTOFF));
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
Py_CLEAR(hash_info);
return NULL;
}
return hash_info;
}
-/*[clinic input]
-sys.getrecursionlimit
+/*[clinic input]
+sys.getrecursionlimit
-Return the current value of the recursion limit.
+Return the current value of the recursion limit.
-The recursion limit is the maximum depth of the Python interpreter
-stack. This limit prevents infinite recursion from causing an overflow
-of the C stack and crashing Python.
-[clinic start generated code]*/
+The recursion limit is the maximum depth of the Python interpreter
+stack. This limit prevents infinite recursion from causing an overflow
+of the C stack and crashing Python.
+[clinic start generated code]*/
static PyObject *
-sys_getrecursionlimit_impl(PyObject *module)
-/*[clinic end generated code: output=d571fb6b4549ef2e input=1c6129fd2efaeea8]*/
+sys_getrecursionlimit_impl(PyObject *module)
+/*[clinic end generated code: output=d571fb6b4549ef2e input=1c6129fd2efaeea8]*/
{
return PyLong_FromLong(Py_GetRecursionLimit());
}
@@ -1441,12 +1441,12 @@ static PyStructSequence_Field windows_version_fields[] = {
};
static PyStructSequence_Desc windows_version_desc = {
- "sys.getwindowsversion", /* name */
- sys_getwindowsversion__doc__, /* doc */
- windows_version_fields, /* fields */
- 5 /* For backward compatibility,
- only the first 5 items are accessible
- via indexing, the rest are name only */
+ "sys.getwindowsversion", /* name */
+ sys_getwindowsversion__doc__, /* doc */
+ windows_version_fields, /* fields */
+ 5 /* For backward compatibility,
+ only the first 5 items are accessible
+ via indexing, the rest are name only */
};
/* Disable deprecation warnings about GetVersionEx as the result is
@@ -1455,38 +1455,38 @@ static PyStructSequence_Desc windows_version_desc = {
#pragma warning(push)
#pragma warning(disable:4996)
-/*[clinic input]
-sys.getwindowsversion
-
-Return info about the running version of Windows as a named tuple.
-
-The members are named: major, minor, build, platform, service_pack,
-service_pack_major, service_pack_minor, suite_mask, product_type and
-platform_version. For backward compatibility, only the first 5 items
-are available by indexing. All elements are numbers, except
-service_pack and platform_type which are strings, and platform_version
-which is a 3-tuple. Platform is always 2. Product_type may be 1 for a
-workstation, 2 for a domain controller, 3 for a server.
-Platform_version is a 3-tuple containing a version number that is
-intended for identifying the OS rather than feature detection.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.getwindowsversion
+
+Return info about the running version of Windows as a named tuple.
+
+The members are named: major, minor, build, platform, service_pack,
+service_pack_major, service_pack_minor, suite_mask, product_type and
+platform_version. For backward compatibility, only the first 5 items
+are available by indexing. All elements are numbers, except
+service_pack and platform_type which are strings, and platform_version
+which is a 3-tuple. Platform is always 2. Product_type may be 1 for a
+workstation, 2 for a domain controller, 3 for a server.
+Platform_version is a 3-tuple containing a version number that is
+intended for identifying the OS rather than feature detection.
+[clinic start generated code]*/
+
static PyObject *
-sys_getwindowsversion_impl(PyObject *module)
-/*[clinic end generated code: output=1ec063280b932857 input=73a228a328fee63a]*/
+sys_getwindowsversion_impl(PyObject *module)
+/*[clinic end generated code: output=1ec063280b932857 input=73a228a328fee63a]*/
{
PyObject *version;
int pos = 0;
- OSVERSIONINFOEXW ver;
+ OSVERSIONINFOEXW ver;
DWORD realMajor, realMinor, realBuild;
HANDLE hKernel32;
wchar_t kernel32_path[MAX_PATH];
LPVOID verblock;
DWORD verblock_size;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
ver.dwOSVersionInfoSize = sizeof(ver);
- if (!GetVersionExW((OSVERSIONINFOW*) &ver))
+ if (!GetVersionExW((OSVERSIONINFOW*) &ver))
return PyErr_SetFromWindowsErr(0);
version = PyStructSequence_New(&WindowsVersionType);
@@ -1497,7 +1497,7 @@ sys_getwindowsversion_impl(PyObject *module)
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwMinorVersion));
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwBuildNumber));
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwPlatformId));
- PyStructSequence_SET_ITEM(version, pos++, PyUnicode_FromWideChar(ver.szCSDVersion, -1));
+ PyStructSequence_SET_ITEM(version, pos++, PyUnicode_FromWideChar(ver.szCSDVersion, -1));
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wServicePackMajor));
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wServicePackMinor));
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wSuiteMask));
@@ -1511,9 +1511,9 @@ sys_getwindowsversion_impl(PyObject *module)
// We need to read the version info from a system file resource
// to accurately identify the OS version. If we fail for any reason,
// just return whatever GetVersion said.
- Py_BEGIN_ALLOW_THREADS
+ Py_BEGIN_ALLOW_THREADS
hKernel32 = GetModuleHandleW(L"kernel32.dll");
- Py_END_ALLOW_THREADS
+ Py_END_ALLOW_THREADS
if (hKernel32 && GetModuleFileNameW(hKernel32, kernel32_path, MAX_PATH) &&
(verblock_size = GetFileVersionInfoSizeExW(0, kernel32_path, NULL)) &&
(verblock = PyMem_RawMalloc(verblock_size))) {
@@ -1534,7 +1534,7 @@ sys_getwindowsversion_impl(PyObject *module)
realBuild
));
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
Py_DECREF(version);
return NULL;
}
@@ -1544,73 +1544,73 @@ sys_getwindowsversion_impl(PyObject *module)
#pragma warning(pop)
-/*[clinic input]
-sys._enablelegacywindowsfsencoding
-
-Changes the default filesystem encoding to mbcs:replace.
-
-This is done for consistency with earlier versions of Python. See PEP
-529 for more information.
-
-This is equivalent to defining the PYTHONLEGACYWINDOWSFSENCODING
-environment variable before launching Python.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys._enablelegacywindowsfsencoding
+
+Changes the default filesystem encoding to mbcs:replace.
+
+This is done for consistency with earlier versions of Python. See PEP
+529 for more information.
+
+This is equivalent to defining the PYTHONLEGACYWINDOWSFSENCODING
+environment variable before launching Python.
+[clinic start generated code]*/
+
static PyObject *
-sys__enablelegacywindowsfsencoding_impl(PyObject *module)
-/*[clinic end generated code: output=f5c3855b45e24fe9 input=2bfa931a20704492]*/
+sys__enablelegacywindowsfsencoding_impl(PyObject *module)
+/*[clinic end generated code: output=f5c3855b45e24fe9 input=2bfa931a20704492]*/
{
- if (_PyUnicode_EnableLegacyWindowsFSEncoding() < 0) {
- return NULL;
- }
+ if (_PyUnicode_EnableLegacyWindowsFSEncoding() < 0) {
+ return NULL;
+ }
Py_RETURN_NONE;
}
#endif /* MS_WINDOWS */
#ifdef HAVE_DLOPEN
-
-/*[clinic input]
-sys.setdlopenflags
-
- flags as new_val: int
- /
-
-Set the flags used by the interpreter for dlopen calls.
-
-This is used, for example, when the interpreter loads extension
-modules. Among other things, this will enable a lazy resolving of
-symbols when importing a module, if called as sys.setdlopenflags(0).
-To share symbols across extension modules, call as
-sys.setdlopenflags(os.RTLD_GLOBAL). Symbolic names for the flag
-modules can be found in the os module (RTLD_xxx constants, e.g.
-os.RTLD_LAZY).
-[clinic start generated code]*/
-
+
+/*[clinic input]
+sys.setdlopenflags
+
+ flags as new_val: int
+ /
+
+Set the flags used by the interpreter for dlopen calls.
+
+This is used, for example, when the interpreter loads extension
+modules. Among other things, this will enable a lazy resolving of
+symbols when importing a module, if called as sys.setdlopenflags(0).
+To share symbols across extension modules, call as
+sys.setdlopenflags(os.RTLD_GLOBAL). Symbolic names for the flag
+modules can be found in the os module (RTLD_xxx constants, e.g.
+os.RTLD_LAZY).
+[clinic start generated code]*/
+
static PyObject *
-sys_setdlopenflags_impl(PyObject *module, int new_val)
-/*[clinic end generated code: output=ec918b7fe0a37281 input=4c838211e857a77f]*/
+sys_setdlopenflags_impl(PyObject *module, int new_val)
+/*[clinic end generated code: output=ec918b7fe0a37281 input=4c838211e857a77f]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- tstate->interp->dlopenflags = new_val;
+ PyThreadState *tstate = _PyThreadState_GET();
+ tstate->interp->dlopenflags = new_val;
Py_RETURN_NONE;
}
-/*[clinic input]
-sys.getdlopenflags
-
-Return the current value of the flags that are used for dlopen calls.
-
-The flag constants are defined in the os module.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.getdlopenflags
+
+Return the current value of the flags that are used for dlopen calls.
+
+The flag constants are defined in the os module.
+[clinic start generated code]*/
+
static PyObject *
-sys_getdlopenflags_impl(PyObject *module)
-/*[clinic end generated code: output=e92cd1bc5005da6e input=dc4ea0899c53b4b6]*/
+sys_getdlopenflags_impl(PyObject *module)
+/*[clinic end generated code: output=e92cd1bc5005da6e input=dc4ea0899c53b4b6]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- return PyLong_FromLong(tstate->interp->dlopenflags);
+ PyThreadState *tstate = _PyThreadState_GET();
+ return PyLong_FromLong(tstate->interp->dlopenflags);
}
#endif /* HAVE_DLOPEN */
@@ -1619,16 +1619,16 @@ sys_getdlopenflags_impl(PyObject *module)
/* Link with -lmalloc (or -lmpc) on an SGI */
#include <malloc.h>
-/*[clinic input]
-sys.mdebug
-
- flag: int
- /
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.mdebug
+
+ flag: int
+ /
+[clinic start generated code]*/
+
static PyObject *
-sys_mdebug_impl(PyObject *module, int flag)
-/*[clinic end generated code: output=5431d545847c3637 input=151d150ae1636f8a]*/
+sys_mdebug_impl(PyObject *module, int flag)
+/*[clinic end generated code: output=5431d545847c3637 input=151d150ae1636f8a]*/
{
int flag;
mallopt(M_DEBUG, flag);
@@ -1642,20 +1642,20 @@ _PySys_GetSizeOf(PyObject *o)
PyObject *res = NULL;
PyObject *method;
Py_ssize_t size;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
/* Make sure the type is initialized. float gets initialized late */
- if (PyType_Ready(Py_TYPE(o)) < 0) {
+ if (PyType_Ready(Py_TYPE(o)) < 0) {
return (size_t)-1;
- }
+ }
method = _PyObject_LookupSpecial(o, &PyId___sizeof__);
if (method == NULL) {
- if (!_PyErr_Occurred(tstate)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "Type %.100s doesn't define __sizeof__",
- Py_TYPE(o)->tp_name);
- }
+ if (!_PyErr_Occurred(tstate)) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "Type %.100s doesn't define __sizeof__",
+ Py_TYPE(o)->tp_name);
+ }
}
else {
res = _PyObject_CallNoArg(method);
@@ -1667,17 +1667,17 @@ _PySys_GetSizeOf(PyObject *o)
size = PyLong_AsSsize_t(res);
Py_DECREF(res);
- if (size == -1 && _PyErr_Occurred(tstate))
+ if (size == -1 && _PyErr_Occurred(tstate))
return (size_t)-1;
if (size < 0) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "__sizeof__() should return >= 0");
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "__sizeof__() should return >= 0");
return (size_t)-1;
}
/* add gc_head size */
- if (_PyObject_IS_GC(o))
+ if (_PyObject_IS_GC(o))
return ((size_t)size) + sizeof(PyGC_Head);
return (size_t)size;
}
@@ -1688,19 +1688,19 @@ sys_getsizeof(PyObject *self, PyObject *args, PyObject *kwds)
static char *kwlist[] = {"object", "default", 0};
size_t size;
PyObject *o, *dflt = NULL;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getsizeof",
- kwlist, &o, &dflt)) {
+ kwlist, &o, &dflt)) {
return NULL;
- }
+ }
size = _PySys_GetSizeOf(o);
- if (size == (size_t)-1 && _PyErr_Occurred(tstate)) {
+ if (size == (size_t)-1 && _PyErr_Occurred(tstate)) {
/* Has a default value been given */
- if (dflt != NULL && _PyErr_ExceptionMatches(tstate, PyExc_TypeError)) {
- _PyErr_Clear(tstate);
+ if (dflt != NULL && _PyErr_ExceptionMatches(tstate, PyExc_TypeError)) {
+ _PyErr_Clear(tstate);
Py_INCREF(dflt);
return dflt;
}
@@ -1712,132 +1712,132 @@ sys_getsizeof(PyObject *self, PyObject *args, PyObject *kwds)
}
PyDoc_STRVAR(getsizeof_doc,
-"getsizeof(object [, default]) -> int\n\
+"getsizeof(object [, default]) -> int\n\
\n\
Return the size of object in bytes.");
-/*[clinic input]
-sys.getrefcount -> Py_ssize_t
-
- object: object
- /
-
-Return the reference count of object.
-
-The count returned is generally one higher than you might expect,
-because it includes the (temporary) reference as an argument to
-getrefcount().
-[clinic start generated code]*/
-
-static Py_ssize_t
-sys_getrefcount_impl(PyObject *module, PyObject *object)
-/*[clinic end generated code: output=5fd477f2264b85b2 input=bf474efd50a21535]*/
-{
- return Py_REFCNT(object);
+/*[clinic input]
+sys.getrefcount -> Py_ssize_t
+
+ object: object
+ /
+
+Return the reference count of object.
+
+The count returned is generally one higher than you might expect,
+because it includes the (temporary) reference as an argument to
+getrefcount().
+[clinic start generated code]*/
+
+static Py_ssize_t
+sys_getrefcount_impl(PyObject *module, PyObject *object)
+/*[clinic end generated code: output=5fd477f2264b85b2 input=bf474efd50a21535]*/
+{
+ return Py_REFCNT(object);
}
#ifdef Py_REF_DEBUG
-/*[clinic input]
-sys.gettotalrefcount -> Py_ssize_t
-[clinic start generated code]*/
-
-static Py_ssize_t
-sys_gettotalrefcount_impl(PyObject *module)
-/*[clinic end generated code: output=4103886cf17c25bc input=53b744faa5d2e4f6]*/
+/*[clinic input]
+sys.gettotalrefcount -> Py_ssize_t
+[clinic start generated code]*/
+
+static Py_ssize_t
+sys_gettotalrefcount_impl(PyObject *module)
+/*[clinic end generated code: output=4103886cf17c25bc input=53b744faa5d2e4f6]*/
{
- return _Py_GetRefTotal();
+ return _Py_GetRefTotal();
}
#endif /* Py_REF_DEBUG */
-/*[clinic input]
-sys.getallocatedblocks -> Py_ssize_t
-
-Return the number of memory blocks currently allocated.
-[clinic start generated code]*/
-
-static Py_ssize_t
-sys_getallocatedblocks_impl(PyObject *module)
-/*[clinic end generated code: output=f0c4e873f0b6dcf7 input=dab13ee346a0673e]*/
-{
- return _Py_GetAllocatedBlocks();
-}
-
-
-/*[clinic input]
-sys._getframe
-
- depth: int = 0
- /
-
-Return a frame object from the call stack.
-
-If optional integer depth is given, return the frame object that many
-calls below the top of the stack. If that is deeper than the call
-stack, ValueError is raised. The default for depth is zero, returning
-the frame at the top of the call stack.
-
-This function should be used for internal and specialized purposes
-only.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.getallocatedblocks -> Py_ssize_t
+
+Return the number of memory blocks currently allocated.
+[clinic start generated code]*/
+
+static Py_ssize_t
+sys_getallocatedblocks_impl(PyObject *module)
+/*[clinic end generated code: output=f0c4e873f0b6dcf7 input=dab13ee346a0673e]*/
+{
+ return _Py_GetAllocatedBlocks();
+}
+
+
+/*[clinic input]
+sys._getframe
+
+ depth: int = 0
+ /
+
+Return a frame object from the call stack.
+
+If optional integer depth is given, return the frame object that many
+calls below the top of the stack. If that is deeper than the call
+stack, ValueError is raised. The default for depth is zero, returning
+the frame at the top of the call stack.
+
+This function should be used for internal and specialized purposes
+only.
+[clinic start generated code]*/
+
static PyObject *
-sys__getframe_impl(PyObject *module, int depth)
-/*[clinic end generated code: output=d438776c04d59804 input=c1be8a6464b11ee5]*/
+sys__getframe_impl(PyObject *module, int depth)
+/*[clinic end generated code: output=d438776c04d59804 input=c1be8a6464b11ee5]*/
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyFrameObject *f = PyThreadState_GetFrame(tstate);
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyFrameObject *f = PyThreadState_GetFrame(tstate);
- if (_PySys_Audit(tstate, "sys._getframe", "O", f) < 0) {
- Py_DECREF(f);
+ if (_PySys_Audit(tstate, "sys._getframe", "O", f) < 0) {
+ Py_DECREF(f);
return NULL;
- }
+ }
while (depth > 0 && f != NULL) {
- PyFrameObject *back = PyFrame_GetBack(f);
- Py_DECREF(f);
- f = back;
+ PyFrameObject *back = PyFrame_GetBack(f);
+ Py_DECREF(f);
+ f = back;
--depth;
}
if (f == NULL) {
- _PyErr_SetString(tstate, PyExc_ValueError,
- "call stack is not deep enough");
+ _PyErr_SetString(tstate, PyExc_ValueError,
+ "call stack is not deep enough");
return NULL;
}
return (PyObject*)f;
}
-/*[clinic input]
-sys._current_frames
+/*[clinic input]
+sys._current_frames
+
+Return a dict mapping each thread's thread id to its current stack frame.
+
+This function should be used for specialized purposes only.
+[clinic start generated code]*/
-Return a dict mapping each thread's thread id to its current stack frame.
-
-This function should be used for specialized purposes only.
-[clinic start generated code]*/
-
static PyObject *
-sys__current_frames_impl(PyObject *module)
-/*[clinic end generated code: output=d2a41ac0a0a3809a input=2a9049c5f5033691]*/
+sys__current_frames_impl(PyObject *module)
+/*[clinic end generated code: output=d2a41ac0a0a3809a input=2a9049c5f5033691]*/
{
return _PyThread_CurrentFrames();
}
-/*[clinic input]
-sys.call_tracing
-
- func: object
- args as funcargs: object(subclass_of='&PyTuple_Type')
- /
-
-Call func(*args), while tracing is enabled.
-
-The tracing state is saved, and restored afterwards. This is intended
-to be called from a debugger from a checkpoint, to recursively debug
-some other code.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys.call_tracing
+
+ func: object
+ args as funcargs: object(subclass_of='&PyTuple_Type')
+ /
+
+Call func(*args), while tracing is enabled.
+
+The tracing state is saved, and restored afterwards. This is intended
+to be called from a debugger from a checkpoint, to recursively debug
+some other code.
+[clinic start generated code]*/
+
static PyObject *
-sys_call_tracing_impl(PyObject *module, PyObject *func, PyObject *funcargs)
-/*[clinic end generated code: output=7e4999853cd4e5a6 input=5102e8b11049f92f]*/
+sys_call_tracing_impl(PyObject *module, PyObject *func, PyObject *funcargs)
+/*[clinic end generated code: output=7e4999853cd4e5a6 input=5102e8b11049f92f]*/
{
return _PyEval_CallTracing(func, funcargs);
}
@@ -1847,18 +1847,18 @@ sys_call_tracing_impl(PyObject *module, PyObject *func, PyObject *funcargs)
extern "C" {
#endif
-/*[clinic input]
-sys._debugmallocstats
-
-Print summary info to stderr about the state of pymalloc's structures.
-
-In Py_DEBUG mode, also perform some expensive internal consistency
-checks.
-[clinic start generated code]*/
-
+/*[clinic input]
+sys._debugmallocstats
+
+Print summary info to stderr about the state of pymalloc's structures.
+
+In Py_DEBUG mode, also perform some expensive internal consistency
+checks.
+[clinic start generated code]*/
+
static PyObject *
-sys__debugmallocstats_impl(PyObject *module)
-/*[clinic end generated code: output=ec3565f8c7cee46a input=33c0c9c416f98424]*/
+sys__debugmallocstats_impl(PyObject *module)
+/*[clinic end generated code: output=ec3565f8c7cee46a input=33c0c9c416f98424]*/
{
#ifdef WITH_PYMALLOC
if (_PyObject_DebugMallocStats(stderr)) {
@@ -1884,102 +1884,102 @@ extern PyObject *_Py_GetDXProfile(PyObject *, PyObject *);
}
#endif
-
-/*[clinic input]
-sys._clear_type_cache
-
-Clear the internal type lookup cache.
-[clinic start generated code]*/
-
+
+/*[clinic input]
+sys._clear_type_cache
+
+Clear the internal type lookup cache.
+[clinic start generated code]*/
+
static PyObject *
-sys__clear_type_cache_impl(PyObject *module)
-/*[clinic end generated code: output=20e48ca54a6f6971 input=127f3e04a8d9b555]*/
+sys__clear_type_cache_impl(PyObject *module)
+/*[clinic end generated code: output=20e48ca54a6f6971 input=127f3e04a8d9b555]*/
{
PyType_ClearCache();
Py_RETURN_NONE;
}
-/*[clinic input]
-sys.is_finalizing
+/*[clinic input]
+sys.is_finalizing
+
+Return True if Python is exiting.
+[clinic start generated code]*/
-Return True if Python is exiting.
-[clinic start generated code]*/
-
static PyObject *
-sys_is_finalizing_impl(PyObject *module)
-/*[clinic end generated code: output=735b5ff7962ab281 input=f0df747a039948a5]*/
+sys_is_finalizing_impl(PyObject *module)
+/*[clinic end generated code: output=735b5ff7962ab281 input=f0df747a039948a5]*/
{
return PyBool_FromLong(_Py_IsFinalizing());
}
-#ifdef ANDROID_API_LEVEL
-/*[clinic input]
-sys.getandroidapilevel
+#ifdef ANDROID_API_LEVEL
+/*[clinic input]
+sys.getandroidapilevel
-Return the build time API version of Android as an integer.
-[clinic start generated code]*/
+Return the build time API version of Android as an integer.
+[clinic start generated code]*/
static PyObject *
-sys_getandroidapilevel_impl(PyObject *module)
-/*[clinic end generated code: output=214abf183a1c70c1 input=3e6d6c9fcdd24ac6]*/
+sys_getandroidapilevel_impl(PyObject *module)
+/*[clinic end generated code: output=214abf183a1c70c1 input=3e6d6c9fcdd24ac6]*/
{
return PyLong_FromLong(ANDROID_API_LEVEL);
}
#endif /* ANDROID_API_LEVEL */
-
+
static PyMethodDef sys_methods[] = {
/* Might as well keep this in alphabetic order */
- SYS_ADDAUDITHOOK_METHODDEF
- {"audit", (PyCFunction)(void(*)(void))sys_audit, METH_FASTCALL, audit_doc },
- {"breakpointhook", (PyCFunction)(void(*)(void))sys_breakpointhook,
+ SYS_ADDAUDITHOOK_METHODDEF
+ {"audit", (PyCFunction)(void(*)(void))sys_audit, METH_FASTCALL, audit_doc },
+ {"breakpointhook", (PyCFunction)(void(*)(void))sys_breakpointhook,
METH_FASTCALL | METH_KEYWORDS, breakpointhook_doc},
- SYS__CLEAR_TYPE_CACHE_METHODDEF
- SYS__CURRENT_FRAMES_METHODDEF
- SYS_DISPLAYHOOK_METHODDEF
- SYS_EXC_INFO_METHODDEF
- SYS_EXCEPTHOOK_METHODDEF
- SYS_EXIT_METHODDEF
- SYS_GETDEFAULTENCODING_METHODDEF
- SYS_GETDLOPENFLAGS_METHODDEF
- SYS_GETALLOCATEDBLOCKS_METHODDEF
+ SYS__CLEAR_TYPE_CACHE_METHODDEF
+ SYS__CURRENT_FRAMES_METHODDEF
+ SYS_DISPLAYHOOK_METHODDEF
+ SYS_EXC_INFO_METHODDEF
+ SYS_EXCEPTHOOK_METHODDEF
+ SYS_EXIT_METHODDEF
+ SYS_GETDEFAULTENCODING_METHODDEF
+ SYS_GETDLOPENFLAGS_METHODDEF
+ SYS_GETALLOCATEDBLOCKS_METHODDEF
#ifdef DYNAMIC_EXECUTION_PROFILE
{"getdxp", _Py_GetDXProfile, METH_VARARGS},
#endif
- SYS_GETFILESYSTEMENCODING_METHODDEF
- SYS_GETFILESYSTEMENCODEERRORS_METHODDEF
+ SYS_GETFILESYSTEMENCODING_METHODDEF
+ SYS_GETFILESYSTEMENCODEERRORS_METHODDEF
#ifdef Py_TRACE_REFS
{"getobjects", _Py_GetObjects, METH_VARARGS},
#endif
- SYS_GETTOTALREFCOUNT_METHODDEF
- SYS_GETREFCOUNT_METHODDEF
- SYS_GETRECURSIONLIMIT_METHODDEF
- {"getsizeof", (PyCFunction)(void(*)(void))sys_getsizeof,
+ SYS_GETTOTALREFCOUNT_METHODDEF
+ SYS_GETREFCOUNT_METHODDEF
+ SYS_GETRECURSIONLIMIT_METHODDEF
+ {"getsizeof", (PyCFunction)(void(*)(void))sys_getsizeof,
METH_VARARGS | METH_KEYWORDS, getsizeof_doc},
- SYS__GETFRAME_METHODDEF
- SYS_GETWINDOWSVERSION_METHODDEF
- SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF
- SYS_INTERN_METHODDEF
- SYS_IS_FINALIZING_METHODDEF
- SYS_MDEBUG_METHODDEF
- SYS_SETSWITCHINTERVAL_METHODDEF
- SYS_GETSWITCHINTERVAL_METHODDEF
- SYS_SETDLOPENFLAGS_METHODDEF
+ SYS__GETFRAME_METHODDEF
+ SYS_GETWINDOWSVERSION_METHODDEF
+ SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF
+ SYS_INTERN_METHODDEF
+ SYS_IS_FINALIZING_METHODDEF
+ SYS_MDEBUG_METHODDEF
+ SYS_SETSWITCHINTERVAL_METHODDEF
+ SYS_GETSWITCHINTERVAL_METHODDEF
+ SYS_SETDLOPENFLAGS_METHODDEF
{"setprofile", sys_setprofile, METH_O, setprofile_doc},
- SYS_GETPROFILE_METHODDEF
- SYS_SETRECURSIONLIMIT_METHODDEF
+ SYS_GETPROFILE_METHODDEF
+ SYS_SETRECURSIONLIMIT_METHODDEF
{"settrace", sys_settrace, METH_O, settrace_doc},
- SYS_GETTRACE_METHODDEF
- SYS_CALL_TRACING_METHODDEF
- SYS__DEBUGMALLOCSTATS_METHODDEF
+ SYS_GETTRACE_METHODDEF
+ SYS_CALL_TRACING_METHODDEF
+ SYS__DEBUGMALLOCSTATS_METHODDEF
SYS_SET_COROUTINE_ORIGIN_TRACKING_DEPTH_METHODDEF
SYS_GET_COROUTINE_ORIGIN_TRACKING_DEPTH_METHODDEF
- {"set_asyncgen_hooks", (PyCFunction)(void(*)(void))sys_set_asyncgen_hooks,
+ {"set_asyncgen_hooks", (PyCFunction)(void(*)(void))sys_set_asyncgen_hooks,
METH_VARARGS | METH_KEYWORDS, set_asyncgen_hooks_doc},
- SYS_GET_ASYNCGEN_HOOKS_METHODDEF
- SYS_GETANDROIDAPILEVEL_METHODDEF
- SYS_UNRAISABLEHOOK_METHODDEF
+ SYS_GET_ASYNCGEN_HOOKS_METHODDEF
+ SYS_GETANDROIDAPILEVEL_METHODDEF
+ SYS_UNRAISABLEHOOK_METHODDEF
{NULL, NULL} /* sentinel */
};
@@ -2058,7 +2058,7 @@ _alloc_preinit_entry(const wchar_t *value)
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
return node;
-}
+}
static int
_append_preinit_entry(_Py_PreInitEntry *optionlist, const wchar_t *value)
@@ -2080,7 +2080,7 @@ _append_preinit_entry(_Py_PreInitEntry *optionlist, const wchar_t *value)
last_entry->next = new_entry;
}
return 0;
-}
+}
static void
_clear_preinit_entries(_Py_PreInitEntry *optionlist)
@@ -2097,49 +2097,49 @@ _clear_preinit_entries(_Py_PreInitEntry *optionlist)
current = next;
}
PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc);
-}
-
-
-PyStatus
-_PySys_ReadPreinitWarnOptions(PyWideStringList *options)
-{
- PyStatus status;
- _Py_PreInitEntry entry;
-
- for (entry = _preinit_warnoptions; entry != NULL; entry = entry->next) {
- status = PyWideStringList_Append(options, entry->value);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
- }
-
+}
+
+
+PyStatus
+_PySys_ReadPreinitWarnOptions(PyWideStringList *options)
+{
+ PyStatus status;
+ _Py_PreInitEntry entry;
+
+ for (entry = _preinit_warnoptions; entry != NULL; entry = entry->next) {
+ status = PyWideStringList_Append(options, entry->value);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+ }
+
_clear_preinit_entries(&_preinit_warnoptions);
- return _PyStatus_OK();
+ return _PyStatus_OK();
}
-
-PyStatus
-_PySys_ReadPreinitXOptions(PyConfig *config)
+
+PyStatus
+_PySys_ReadPreinitXOptions(PyConfig *config)
{
- PyStatus status;
- _Py_PreInitEntry entry;
-
- for (entry = _preinit_xoptions; entry != NULL; entry = entry->next) {
- status = PyWideStringList_Append(&config->xoptions, entry->value);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
+ PyStatus status;
+ _Py_PreInitEntry entry;
+
+ for (entry = _preinit_xoptions; entry != NULL; entry = entry->next) {
+ status = PyWideStringList_Append(&config->xoptions, entry->value);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
}
- _clear_preinit_entries(&_preinit_xoptions);
- return _PyStatus_OK();
-}
+ _clear_preinit_entries(&_preinit_xoptions);
+ return _PyStatus_OK();
+}
+
-
static PyObject *
-get_warnoptions(PyThreadState *tstate)
+get_warnoptions(PyThreadState *tstate)
{
- PyObject *warnoptions = sys_get_object_id(tstate, &PyId_warnoptions);
+ PyObject *warnoptions = sys_get_object_id(tstate, &PyId_warnoptions);
if (warnoptions == NULL || !PyList_Check(warnoptions)) {
/* PEP432 TODO: we can reach this if warnoptions is NULL in the main
* interpreter config. When that happens, we need to properly set
@@ -2152,10 +2152,10 @@ get_warnoptions(PyThreadState *tstate)
* reachable again.
*/
warnoptions = PyList_New(0);
- if (warnoptions == NULL) {
+ if (warnoptions == NULL) {
return NULL;
- }
- if (sys_set_object_id(tstate, &PyId_warnoptions, warnoptions)) {
+ }
+ if (sys_set_object_id(tstate, &PyId_warnoptions, warnoptions)) {
Py_DECREF(warnoptions);
return NULL;
}
@@ -2167,22 +2167,22 @@ get_warnoptions(PyThreadState *tstate)
void
PySys_ResetWarnOptions(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (tstate == NULL) {
_clear_preinit_entries(&_preinit_warnoptions);
return;
}
- PyObject *warnoptions = sys_get_object_id(tstate, &PyId_warnoptions);
+ PyObject *warnoptions = sys_get_object_id(tstate, &PyId_warnoptions);
if (warnoptions == NULL || !PyList_Check(warnoptions))
return;
PyList_SetSlice(warnoptions, 0, PyList_GET_SIZE(warnoptions), NULL);
}
-static int
-_PySys_AddWarnOptionWithError(PyThreadState *tstate, PyObject *option)
+static int
+_PySys_AddWarnOptionWithError(PyThreadState *tstate, PyObject *option)
{
- PyObject *warnoptions = get_warnoptions(tstate);
+ PyObject *warnoptions = get_warnoptions(tstate);
if (warnoptions == NULL) {
return -1;
}
@@ -2195,19 +2195,19 @@ _PySys_AddWarnOptionWithError(PyThreadState *tstate, PyObject *option)
void
PySys_AddWarnOptionUnicode(PyObject *option)
{
- PyThreadState *tstate = _PyThreadState_GET();
- if (_PySys_AddWarnOptionWithError(tstate, option) < 0) {
- /* No return value, therefore clear error state if possible */
- if (tstate) {
- _PyErr_Clear(tstate);
- }
- }
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (_PySys_AddWarnOptionWithError(tstate, option) < 0) {
+ /* No return value, therefore clear error state if possible */
+ if (tstate) {
+ _PyErr_Clear(tstate);
+ }
+ }
}
void
PySys_AddWarnOption(const wchar_t *s)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (tstate == NULL) {
_append_preinit_entry(&_preinit_warnoptions, s);
return;
@@ -2223,16 +2223,16 @@ PySys_AddWarnOption(const wchar_t *s)
int
PySys_HasWarnOptions(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *warnoptions = sys_get_object_id(tstate, &PyId_warnoptions);
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *warnoptions = sys_get_object_id(tstate, &PyId_warnoptions);
return (warnoptions != NULL && PyList_Check(warnoptions)
&& PyList_GET_SIZE(warnoptions) > 0);
}
static PyObject *
-get_xoptions(PyThreadState *tstate)
+get_xoptions(PyThreadState *tstate)
{
- PyObject *xoptions = sys_get_object_id(tstate, &PyId__xoptions);
+ PyObject *xoptions = sys_get_object_id(tstate, &PyId__xoptions);
if (xoptions == NULL || !PyDict_Check(xoptions)) {
/* PEP432 TODO: we can reach this if xoptions is NULL in the main
* interpreter config. When that happens, we need to properly set
@@ -2245,10 +2245,10 @@ get_xoptions(PyThreadState *tstate)
* reachable again.
*/
xoptions = PyDict_New();
- if (xoptions == NULL) {
+ if (xoptions == NULL) {
return NULL;
- }
- if (sys_set_object_id(tstate, &PyId__xoptions, xoptions)) {
+ }
+ if (sys_set_object_id(tstate, &PyId__xoptions, xoptions)) {
Py_DECREF(xoptions);
return NULL;
}
@@ -2257,13 +2257,13 @@ get_xoptions(PyThreadState *tstate)
return xoptions;
}
-static int
+static int
_PySys_AddXOptionWithError(const wchar_t *s)
{
PyObject *name = NULL, *value = NULL;
- PyThreadState *tstate = _PyThreadState_GET();
- PyObject *opts = get_xoptions(tstate);
+ PyThreadState *tstate = _PyThreadState_GET();
+ PyObject *opts = get_xoptions(tstate);
if (opts == NULL) {
goto error;
}
@@ -2297,22 +2297,22 @@ error:
void
PySys_AddXOption(const wchar_t *s)
{
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
if (tstate == NULL) {
_append_preinit_entry(&_preinit_xoptions, s);
return;
}
if (_PySys_AddXOptionWithError(s) < 0) {
/* No return value, therefore clear error state if possible */
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
}
}
PyObject *
PySys_GetXOptions(void)
{
- PyThreadState *tstate = _PyThreadState_GET();
- return get_xoptions(tstate);
+ PyThreadState *tstate = _PyThreadState_GET();
+ return get_xoptions(tstate);
}
/* XXX This doc string is too long to be a single string literal in VC++ 5.0.
@@ -2357,17 +2357,17 @@ builtin_module_names -- tuple of module names built into this interpreter\n\
copyright -- copyright notice pertaining to this interpreter\n\
exec_prefix -- prefix used to find the machine-specific Python library\n\
executable -- absolute path of the executable binary of the Python interpreter\n\
-float_info -- a named tuple with information about the float implementation.\n\
+float_info -- a named tuple with information about the float implementation.\n\
float_repr_style -- string indicating the style of repr() output for floats\n\
-hash_info -- a named tuple with information about the hash algorithm.\n\
+hash_info -- a named tuple with information about the hash algorithm.\n\
hexversion -- version information encoded as a single integer\n\
implementation -- Python implementation information.\n\
-int_info -- a named tuple with information about the int implementation.\n\
+int_info -- a named tuple with information about the int implementation.\n\
maxsize -- the largest supported length of containers.\n\
maxunicode -- the value of the largest Unicode code point\n\
platform -- platform identifier\n\
prefix -- prefix used to find the Python library\n\
-thread_info -- a named tuple with information about the thread implementation.\n\
+thread_info -- a named tuple with information about the thread implementation.\n\
version -- the version of this interpreter as a string\n\
version_info -- version information as a named tuple\n\
"
@@ -2383,7 +2383,7 @@ winver -- [Windows only] version number of the Python DLL\n\
#ifdef MS_WINDOWS
/* concatenating string here */
PyDoc_STR(
-"_enablelegacywindowsfsencoding -- [Windows only]\n\
+"_enablelegacywindowsfsencoding -- [Windows only]\n\
"
)
#endif
@@ -2451,41 +2451,41 @@ static PyStructSequence_Desc flags_desc = {
};
static PyObject*
-make_flags(PyThreadState *tstate)
+make_flags(PyThreadState *tstate)
{
- PyInterpreterState *interp = tstate->interp;
- const PyPreConfig *preconfig = &interp->runtime->preconfig;
- const PyConfig *config = _PyInterpreterState_GetConfig(interp);
+ PyInterpreterState *interp = tstate->interp;
+ const PyPreConfig *preconfig = &interp->runtime->preconfig;
+ const PyConfig *config = _PyInterpreterState_GetConfig(interp);
- PyObject *seq = PyStructSequence_New(&FlagsType);
- if (seq == NULL) {
+ PyObject *seq = PyStructSequence_New(&FlagsType);
+ if (seq == NULL) {
return NULL;
- }
+ }
- int pos = 0;
+ int pos = 0;
#define SetFlag(flag) \
PyStructSequence_SET_ITEM(seq, pos++, PyLong_FromLong(flag))
- SetFlag(config->parser_debug);
- SetFlag(config->inspect);
- SetFlag(config->interactive);
- SetFlag(config->optimization_level);
- SetFlag(!config->write_bytecode);
- SetFlag(!config->user_site_directory);
- SetFlag(!config->site_import);
- SetFlag(!config->use_environment);
- SetFlag(config->verbose);
+ SetFlag(config->parser_debug);
+ SetFlag(config->inspect);
+ SetFlag(config->interactive);
+ SetFlag(config->optimization_level);
+ SetFlag(!config->write_bytecode);
+ SetFlag(!config->user_site_directory);
+ SetFlag(!config->site_import);
+ SetFlag(!config->use_environment);
+ SetFlag(config->verbose);
/* SetFlag(saw_unbuffered_flag); */
/* SetFlag(skipfirstline); */
- SetFlag(config->bytes_warning);
- SetFlag(config->quiet);
- SetFlag(config->use_hash_seed == 0 || config->hash_seed != 0);
- SetFlag(config->isolated);
- PyStructSequence_SET_ITEM(seq, pos++, PyBool_FromLong(config->dev_mode));
- SetFlag(preconfig->utf8_mode);
+ SetFlag(config->bytes_warning);
+ SetFlag(config->quiet);
+ SetFlag(config->use_hash_seed == 0 || config->hash_seed != 0);
+ SetFlag(config->isolated);
+ PyStructSequence_SET_ITEM(seq, pos++, PyBool_FromLong(config->dev_mode));
+ SetFlag(preconfig->utf8_mode);
#undef SetFlag
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
Py_DECREF(seq);
return NULL;
}
@@ -2516,7 +2516,7 @@ static PyStructSequence_Desc version_info_desc = {
};
static PyObject *
-make_version_info(PyThreadState *tstate)
+make_version_info(PyThreadState *tstate)
{
PyObject *version_info;
char *s;
@@ -2554,7 +2554,7 @@ make_version_info(PyThreadState *tstate)
#undef SetIntItem
#undef SetStrItem
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
Py_CLEAR(version_info);
return NULL;
}
@@ -2671,10 +2671,10 @@ static struct PyModuleDef sysmodule = {
} \
} while (0)
-static PyStatus
-_PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
+static PyStatus
+_PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
{
- PyObject *version_info;
+ PyObject *version_info;
int res;
/* stdin/stdout/stderr are set in pylifecycle.c */
@@ -2686,9 +2686,9 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
SET_SYS_FROM_STRING_BORROW(
"__breakpointhook__",
PyDict_GetItemString(sysdict, "breakpointhook"));
- SET_SYS_FROM_STRING_BORROW("__unraisablehook__",
- PyDict_GetItemString(sysdict, "unraisablehook"));
-
+ SET_SYS_FROM_STRING_BORROW("__unraisablehook__",
+ PyDict_GetItemString(sysdict, "unraisablehook"));
+
SET_SYS_FROM_STRING("version",
PyUnicode_FromString(Py_GetVersion()));
SET_SYS_FROM_STRING("hexversion",
@@ -2716,7 +2716,7 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
}
}
SET_SYS_FROM_STRING("hash_info",
- get_hash_info(tstate));
+ get_hash_info(tstate));
SET_SYS_FROM_STRING("maxunicode",
PyLong_FromLong(0x10FFFF));
SET_SYS_FROM_STRING("builtin_module_names",
@@ -2747,15 +2747,15 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
goto type_init_failed;
}
}
- version_info = make_version_info(tstate);
+ version_info = make_version_info(tstate);
SET_SYS_FROM_STRING("version_info", version_info);
/* prevent user from creating new instances */
VersionInfoType.tp_init = NULL;
VersionInfoType.tp_new = NULL;
res = PyDict_DelItemString(VersionInfoType.tp_dict, "__new__");
- if (res < 0 && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
- _PyErr_Clear(tstate);
- }
+ if (res < 0 && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ _PyErr_Clear(tstate);
+ }
/* implementation */
SET_SYS_FROM_STRING("implementation", make_impl_info(version_info));
@@ -2766,8 +2766,8 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
goto type_init_failed;
}
}
- /* Set flags to their default values (updated by _PySys_InitMain()) */
- SET_SYS_FROM_STRING("flags", make_flags(tstate));
+ /* Set flags to their default values (updated by _PySys_InitMain()) */
+ SET_SYS_FROM_STRING("flags", make_flags(tstate));
#if defined(MS_WINDOWS)
/* getwindowsversion */
@@ -2779,10 +2779,10 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
/* prevent user from creating new instances */
WindowsVersionType.tp_init = NULL;
WindowsVersionType.tp_new = NULL;
- assert(!_PyErr_Occurred(tstate));
+ assert(!_PyErr_Occurred(tstate));
res = PyDict_DelItemString(WindowsVersionType.tp_dict, "__new__");
- if (res < 0 && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
- _PyErr_Clear(tstate);
+ if (res < 0 && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ _PyErr_Clear(tstate);
}
#endif
@@ -2805,16 +2805,16 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
}
}
- if (_PyErr_Occurred(tstate)) {
+ if (_PyErr_Occurred(tstate)) {
goto err_occurred;
}
- return _PyStatus_OK();
+ return _PyStatus_OK();
type_init_failed:
- return _PyStatus_ERR("failed to initialize a type");
+ return _PyStatus_ERR("failed to initialize a type");
err_occurred:
- return _PyStatus_ERR("can't initialize sys module");
+ return _PyStatus_ERR("can't initialize sys module");
}
/* Updating the sys namespace, returning integer error codes */
@@ -2830,144 +2830,144 @@ err_occurred:
} \
} while (0)
-
-static int
-sys_add_xoption(PyObject *opts, const wchar_t *s)
-{
- PyObject *name, *value;
-
- const wchar_t *name_end = wcschr(s, L'=');
- if (!name_end) {
- name = PyUnicode_FromWideChar(s, -1);
- value = Py_True;
- Py_INCREF(value);
- }
- else {
- name = PyUnicode_FromWideChar(s, name_end - s);
- value = PyUnicode_FromWideChar(name_end + 1, -1);
- }
- if (name == NULL || value == NULL) {
- goto error;
- }
- if (PyDict_SetItem(opts, name, value) < 0) {
- goto error;
- }
- Py_DECREF(name);
- Py_DECREF(value);
- return 0;
-
-error:
- Py_XDECREF(name);
- Py_XDECREF(value);
- return -1;
-}
-
-
-static PyObject*
-sys_create_xoptions_dict(const PyConfig *config)
-{
- Py_ssize_t nxoption = config->xoptions.length;
- wchar_t * const * xoptions = config->xoptions.items;
- PyObject *dict = PyDict_New();
- if (dict == NULL) {
- return NULL;
- }
-
- for (Py_ssize_t i=0; i < nxoption; i++) {
- const wchar_t *option = xoptions[i];
- if (sys_add_xoption(dict, option) < 0) {
- Py_DECREF(dict);
- return NULL;
- }
- }
-
- return dict;
-}
-
-
+
+static int
+sys_add_xoption(PyObject *opts, const wchar_t *s)
+{
+ PyObject *name, *value;
+
+ const wchar_t *name_end = wcschr(s, L'=');
+ if (!name_end) {
+ name = PyUnicode_FromWideChar(s, -1);
+ value = Py_True;
+ Py_INCREF(value);
+ }
+ else {
+ name = PyUnicode_FromWideChar(s, name_end - s);
+ value = PyUnicode_FromWideChar(name_end + 1, -1);
+ }
+ if (name == NULL || value == NULL) {
+ goto error;
+ }
+ if (PyDict_SetItem(opts, name, value) < 0) {
+ goto error;
+ }
+ Py_DECREF(name);
+ Py_DECREF(value);
+ return 0;
+
+error:
+ Py_XDECREF(name);
+ Py_XDECREF(value);
+ return -1;
+}
+
+
+static PyObject*
+sys_create_xoptions_dict(const PyConfig *config)
+{
+ Py_ssize_t nxoption = config->xoptions.length;
+ wchar_t * const * xoptions = config->xoptions.items;
+ PyObject *dict = PyDict_New();
+ if (dict == NULL) {
+ return NULL;
+ }
+
+ for (Py_ssize_t i=0; i < nxoption; i++) {
+ const wchar_t *option = xoptions[i];
+ if (sys_add_xoption(dict, option) < 0) {
+ Py_DECREF(dict);
+ return NULL;
+ }
+ }
+
+ return dict;
+}
+
+
int
-_PySys_InitMain(PyThreadState *tstate)
+_PySys_InitMain(PyThreadState *tstate)
{
- PyObject *sysdict = tstate->interp->sysdict;
- const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
+ PyObject *sysdict = tstate->interp->sysdict;
+ const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp);
int res;
-#define COPY_LIST(KEY, VALUE) \
- do { \
- PyObject *list = _PyWideStringList_AsList(&(VALUE)); \
- if (list == NULL) { \
- return -1; \
- } \
- SET_SYS_FROM_STRING_BORROW(KEY, list); \
- Py_DECREF(list); \
- } while (0)
-
-#define SET_SYS_FROM_WSTR(KEY, VALUE) \
- do { \
- PyObject *str = PyUnicode_FromWideChar(VALUE, -1); \
- if (str == NULL) { \
- return -1; \
- } \
- SET_SYS_FROM_STRING_BORROW(KEY, str); \
- Py_DECREF(str); \
- } while (0)
-
- COPY_LIST("path", config->module_search_paths);
-
- SET_SYS_FROM_WSTR("executable", config->executable);
- SET_SYS_FROM_WSTR("_base_executable", config->base_executable);
- SET_SYS_FROM_WSTR("prefix", config->prefix);
- SET_SYS_FROM_WSTR("base_prefix", config->base_prefix);
- SET_SYS_FROM_WSTR("exec_prefix", config->exec_prefix);
- SET_SYS_FROM_WSTR("base_exec_prefix", config->base_exec_prefix);
- SET_SYS_FROM_WSTR("platlibdir", config->platlibdir);
-
- if (config->pycache_prefix != NULL) {
- SET_SYS_FROM_WSTR("pycache_prefix", config->pycache_prefix);
- } else {
- PyDict_SetItemString(sysdict, "pycache_prefix", Py_None);
- }
-
- COPY_LIST("argv", config->argv);
- COPY_LIST("warnoptions", config->warnoptions);
-
- PyObject *xoptions = sys_create_xoptions_dict(config);
- if (xoptions == NULL) {
- return -1;
- }
- SET_SYS_FROM_STRING_BORROW("_xoptions", xoptions);
- Py_DECREF(xoptions);
-
-#undef COPY_LIST
-#undef SET_SYS_FROM_WSTR
-
-
+#define COPY_LIST(KEY, VALUE) \
+ do { \
+ PyObject *list = _PyWideStringList_AsList(&(VALUE)); \
+ if (list == NULL) { \
+ return -1; \
+ } \
+ SET_SYS_FROM_STRING_BORROW(KEY, list); \
+ Py_DECREF(list); \
+ } while (0)
+
+#define SET_SYS_FROM_WSTR(KEY, VALUE) \
+ do { \
+ PyObject *str = PyUnicode_FromWideChar(VALUE, -1); \
+ if (str == NULL) { \
+ return -1; \
+ } \
+ SET_SYS_FROM_STRING_BORROW(KEY, str); \
+ Py_DECREF(str); \
+ } while (0)
+
+ COPY_LIST("path", config->module_search_paths);
+
+ SET_SYS_FROM_WSTR("executable", config->executable);
+ SET_SYS_FROM_WSTR("_base_executable", config->base_executable);
+ SET_SYS_FROM_WSTR("prefix", config->prefix);
+ SET_SYS_FROM_WSTR("base_prefix", config->base_prefix);
+ SET_SYS_FROM_WSTR("exec_prefix", config->exec_prefix);
+ SET_SYS_FROM_WSTR("base_exec_prefix", config->base_exec_prefix);
+ SET_SYS_FROM_WSTR("platlibdir", config->platlibdir);
+
+ if (config->pycache_prefix != NULL) {
+ SET_SYS_FROM_WSTR("pycache_prefix", config->pycache_prefix);
+ } else {
+ PyDict_SetItemString(sysdict, "pycache_prefix", Py_None);
+ }
+
+ COPY_LIST("argv", config->argv);
+ COPY_LIST("warnoptions", config->warnoptions);
+
+ PyObject *xoptions = sys_create_xoptions_dict(config);
+ if (xoptions == NULL) {
+ return -1;
+ }
+ SET_SYS_FROM_STRING_BORROW("_xoptions", xoptions);
+ Py_DECREF(xoptions);
+
+#undef COPY_LIST
+#undef SET_SYS_FROM_WSTR
+
+
/* Set flags to their final values */
- SET_SYS_FROM_STRING_INT_RESULT("flags", make_flags(tstate));
+ SET_SYS_FROM_STRING_INT_RESULT("flags", make_flags(tstate));
/* prevent user from creating new instances */
FlagsType.tp_init = NULL;
FlagsType.tp_new = NULL;
res = PyDict_DelItemString(FlagsType.tp_dict, "__new__");
if (res < 0) {
- if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
+ if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
return res;
}
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
}
SET_SYS_FROM_STRING_INT_RESULT("dont_write_bytecode",
- PyBool_FromLong(!config->write_bytecode));
+ PyBool_FromLong(!config->write_bytecode));
- if (get_warnoptions(tstate) == NULL) {
+ if (get_warnoptions(tstate) == NULL) {
return -1;
- }
+ }
- if (get_xoptions(tstate) == NULL)
+ if (get_xoptions(tstate) == NULL)
return -1;
- if (_PyErr_Occurred(tstate)) {
- goto err_occurred;
- }
+ if (_PyErr_Occurred(tstate)) {
+ goto err_occurred;
+ }
return 0;
@@ -2975,92 +2975,92 @@ err_occurred:
return -1;
}
-#undef SET_SYS_FROM_STRING
+#undef SET_SYS_FROM_STRING
#undef SET_SYS_FROM_STRING_BORROW
#undef SET_SYS_FROM_STRING_INT_RESULT
-
-/* Set up a preliminary stderr printer until we have enough
- infrastructure for the io module in place.
-
- Use UTF-8/surrogateescape and ignore EAGAIN errors. */
-static PyStatus
-_PySys_SetPreliminaryStderr(PyObject *sysdict)
-{
- PyObject *pstderr = PyFile_NewStdPrinter(fileno(stderr));
- if (pstderr == NULL) {
- goto error;
- }
- if (_PyDict_SetItemId(sysdict, &PyId_stderr, pstderr) < 0) {
- goto error;
- }
- if (PyDict_SetItemString(sysdict, "__stderr__", pstderr) < 0) {
- goto error;
- }
- Py_DECREF(pstderr);
- return _PyStatus_OK();
-
-error:
- Py_XDECREF(pstderr);
- return _PyStatus_ERR("can't set preliminary stderr");
-}
-
-
-/* Create sys module without all attributes: _PySys_InitMain() should be called
- later to add remaining attributes. */
-PyStatus
-_PySys_Create(PyThreadState *tstate, PyObject **sysmod_p)
-{
- assert(!_PyErr_Occurred(tstate));
-
- PyInterpreterState *interp = tstate->interp;
-
- PyObject *modules = PyDict_New();
- if (modules == NULL) {
- goto error;
- }
- interp->modules = modules;
-
- PyObject *sysmod = _PyModule_CreateInitialized(&sysmodule, PYTHON_API_VERSION);
- if (sysmod == NULL) {
- return _PyStatus_ERR("failed to create a module object");
- }
-
- PyObject *sysdict = PyModule_GetDict(sysmod);
- if (sysdict == NULL) {
- goto error;
- }
- Py_INCREF(sysdict);
- interp->sysdict = sysdict;
-
- if (PyDict_SetItemString(sysdict, "modules", interp->modules) < 0) {
- goto error;
- }
-
- PyStatus status = _PySys_SetPreliminaryStderr(sysdict);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- status = _PySys_InitCore(tstate, sysdict);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
- if (_PyImport_FixupBuiltin(sysmod, "sys", interp->modules) < 0) {
- goto error;
- }
-
- assert(!_PyErr_Occurred(tstate));
-
- *sysmod_p = sysmod;
- return _PyStatus_OK();
-
-error:
- return _PyStatus_ERR("can't initialize sys module");
-}
-
-
+
+/* Set up a preliminary stderr printer until we have enough
+ infrastructure for the io module in place.
+
+ Use UTF-8/surrogateescape and ignore EAGAIN errors. */
+static PyStatus
+_PySys_SetPreliminaryStderr(PyObject *sysdict)
+{
+ PyObject *pstderr = PyFile_NewStdPrinter(fileno(stderr));
+ if (pstderr == NULL) {
+ goto error;
+ }
+ if (_PyDict_SetItemId(sysdict, &PyId_stderr, pstderr) < 0) {
+ goto error;
+ }
+ if (PyDict_SetItemString(sysdict, "__stderr__", pstderr) < 0) {
+ goto error;
+ }
+ Py_DECREF(pstderr);
+ return _PyStatus_OK();
+
+error:
+ Py_XDECREF(pstderr);
+ return _PyStatus_ERR("can't set preliminary stderr");
+}
+
+
+/* Create sys module without all attributes: _PySys_InitMain() should be called
+ later to add remaining attributes. */
+PyStatus
+_PySys_Create(PyThreadState *tstate, PyObject **sysmod_p)
+{
+ assert(!_PyErr_Occurred(tstate));
+
+ PyInterpreterState *interp = tstate->interp;
+
+ PyObject *modules = PyDict_New();
+ if (modules == NULL) {
+ goto error;
+ }
+ interp->modules = modules;
+
+ PyObject *sysmod = _PyModule_CreateInitialized(&sysmodule, PYTHON_API_VERSION);
+ if (sysmod == NULL) {
+ return _PyStatus_ERR("failed to create a module object");
+ }
+
+ PyObject *sysdict = PyModule_GetDict(sysmod);
+ if (sysdict == NULL) {
+ goto error;
+ }
+ Py_INCREF(sysdict);
+ interp->sysdict = sysdict;
+
+ if (PyDict_SetItemString(sysdict, "modules", interp->modules) < 0) {
+ goto error;
+ }
+
+ PyStatus status = _PySys_SetPreliminaryStderr(sysdict);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ status = _PySys_InitCore(tstate, sysdict);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+
+ if (_PyImport_FixupBuiltin(sysmod, "sys", interp->modules) < 0) {
+ goto error;
+ }
+
+ assert(!_PyErr_Occurred(tstate));
+
+ *sysmod_p = sysmod;
+ return _PyStatus_OK();
+
+error:
+ return _PyStatus_ERR("can't initialize sys module");
+}
+
+
static PyObject *
makepathobject(const wchar_t *path, wchar_t delim)
{
@@ -3100,49 +3100,49 @@ PySys_SetPath(const wchar_t *path)
PyObject *v;
if ((v = makepathobject(path, DELIM)) == NULL)
Py_FatalError("can't create sys.path");
- PyThreadState *tstate = _PyThreadState_GET();
- if (sys_set_object_id(tstate, &PyId_path, v) != 0) {
+ PyThreadState *tstate = _PyThreadState_GET();
+ if (sys_set_object_id(tstate, &PyId_path, v) != 0) {
Py_FatalError("can't assign sys.path");
- }
+ }
Py_DECREF(v);
}
static PyObject *
-make_sys_argv(int argc, wchar_t * const * argv)
-{
- PyObject *list = PyList_New(argc);
- if (list == NULL) {
- return NULL;
- }
-
- for (Py_ssize_t i = 0; i < argc; i++) {
- PyObject *v = PyUnicode_FromWideChar(argv[i], -1);
- if (v == NULL) {
- Py_DECREF(list);
- return NULL;
+make_sys_argv(int argc, wchar_t * const * argv)
+{
+ PyObject *list = PyList_New(argc);
+ if (list == NULL) {
+ return NULL;
+ }
+
+ for (Py_ssize_t i = 0; i < argc; i++) {
+ PyObject *v = PyUnicode_FromWideChar(argv[i], -1);
+ if (v == NULL) {
+ Py_DECREF(list);
+ return NULL;
}
- PyList_SET_ITEM(list, i, v);
+ PyList_SET_ITEM(list, i, v);
}
- return list;
+ return list;
}
void
PySys_SetArgvEx(int argc, wchar_t **argv, int updatepath)
{
- wchar_t* empty_argv[1] = {L""};
- PyThreadState *tstate = _PyThreadState_GET();
-
- if (argc < 1 || argv == NULL) {
- /* Ensure at least one (empty) argument is seen */
- argv = empty_argv;
- argc = 1;
- }
-
- PyObject *av = make_sys_argv(argc, argv);
+ wchar_t* empty_argv[1] = {L""};
+ PyThreadState *tstate = _PyThreadState_GET();
+
+ if (argc < 1 || argv == NULL) {
+ /* Ensure at least one (empty) argument is seen */
+ argv = empty_argv;
+ argc = 1;
+ }
+
+ PyObject *av = make_sys_argv(argc, argv);
if (av == NULL) {
Py_FatalError("no mem for sys.argv");
}
- if (sys_set_object(tstate, "argv", av) != 0) {
+ if (sys_set_object(tstate, "argv", av) != 0) {
Py_DECREF(av);
Py_FatalError("can't assign sys.argv");
}
@@ -3151,21 +3151,21 @@ PySys_SetArgvEx(int argc, wchar_t **argv, int updatepath)
if (updatepath) {
/* If argv[0] is not '-c' nor '-m', prepend argv[0] to sys.path.
If argv[0] is a symlink, use the real path. */
- const PyWideStringList argv_list = {.length = argc, .items = argv};
- PyObject *path0 = NULL;
- if (_PyPathConfig_ComputeSysPath0(&argv_list, &path0)) {
- if (path0 == NULL) {
- Py_FatalError("can't compute path0 from argv");
- }
-
- PyObject *sys_path = sys_get_object_id(tstate, &PyId_path);
- if (sys_path != NULL) {
- if (PyList_Insert(sys_path, 0, path0) < 0) {
- Py_DECREF(path0);
- Py_FatalError("can't prepend path0 to sys.path");
- }
+ const PyWideStringList argv_list = {.length = argc, .items = argv};
+ PyObject *path0 = NULL;
+ if (_PyPathConfig_ComputeSysPath0(&argv_list, &path0)) {
+ if (path0 == NULL) {
+ Py_FatalError("can't compute path0 from argv");
+ }
+
+ PyObject *sys_path = sys_get_object_id(tstate, &PyId_path);
+ if (sys_path != NULL) {
+ if (PyList_Insert(sys_path, 0, path0) < 0) {
+ Py_DECREF(path0);
+ Py_FatalError("can't prepend path0 to sys.path");
+ }
}
- Py_DECREF(path0);
+ Py_DECREF(path0);
}
}
}
@@ -3184,13 +3184,13 @@ sys_pyfile_write_unicode(PyObject *unicode, PyObject *file)
{
if (file == NULL)
return -1;
- assert(unicode != NULL);
- PyObject *result = _PyObject_CallMethodIdOneArg(file, &PyId_write, unicode);
+ assert(unicode != NULL);
+ PyObject *result = _PyObject_CallMethodIdOneArg(file, &PyId_write, unicode);
if (result == NULL) {
- return -1;
+ return -1;
}
- Py_DECREF(result);
- return 0;
+ Py_DECREF(result);
+ return 0;
}
static int
@@ -3246,13 +3246,13 @@ sys_write(_Py_Identifier *key, FILE *fp, const char *format, va_list va)
PyObject *error_type, *error_value, *error_traceback;
char buffer[1001];
int written;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_Fetch(tstate, &error_type, &error_value, &error_traceback);
- file = sys_get_object_id(tstate, key);
+ _PyErr_Fetch(tstate, &error_type, &error_value, &error_traceback);
+ file = sys_get_object_id(tstate, key);
written = PyOS_vsnprintf(buffer, sizeof(buffer), format, va);
if (sys_pyfile_write(buffer, file) != 0) {
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
fputs(buffer, fp);
}
if (written < 0 || (size_t)written >= sizeof(buffer)) {
@@ -3260,7 +3260,7 @@ sys_write(_Py_Identifier *key, FILE *fp, const char *format, va_list va)
if (sys_pyfile_write(truncated, file) != 0)
fputs(truncated, fp);
}
- _PyErr_Restore(tstate, error_type, error_value, error_traceback);
+ _PyErr_Restore(tstate, error_type, error_value, error_traceback);
}
void
@@ -3289,21 +3289,21 @@ sys_format(_Py_Identifier *key, FILE *fp, const char *format, va_list va)
PyObject *file, *message;
PyObject *error_type, *error_value, *error_traceback;
const char *utf8;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
- _PyErr_Fetch(tstate, &error_type, &error_value, &error_traceback);
- file = sys_get_object_id(tstate, key);
+ _PyErr_Fetch(tstate, &error_type, &error_value, &error_traceback);
+ file = sys_get_object_id(tstate, key);
message = PyUnicode_FromFormatV(format, va);
if (message != NULL) {
if (sys_pyfile_write_unicode(message, file) != 0) {
- _PyErr_Clear(tstate);
+ _PyErr_Clear(tstate);
utf8 = PyUnicode_AsUTF8(message);
if (utf8 != NULL)
fputs(utf8, fp);
}
Py_DECREF(message);
}
- _PyErr_Restore(tstate, error_type, error_value, error_traceback);
+ _PyErr_Restore(tstate, error_type, error_value, error_traceback);
}
void
diff --git a/contrib/tools/python3/src/Python/thread.c b/contrib/tools/python3/src/Python/thread.c
index 594e0087c9..a10f5728dc 100644
--- a/contrib/tools/python3/src/Python/thread.c
+++ b/contrib/tools/python3/src/Python/thread.c
@@ -6,7 +6,7 @@
Stuff shared by all thread_*.h files is collected here. */
#include "Python.h"
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_pystate.h" // _PyInterpreterState_GET()
#ifndef _POSIX_THREADS
/* This means pthreads are not implemented in libc headers, hence the macro
@@ -90,7 +90,7 @@ PyThread_init_thread(void)
size_t
PyThread_get_stacksize(void)
{
- return _PyInterpreterState_GET()->pythread_stacksize;
+ return _PyInterpreterState_GET()->pythread_stacksize;
}
/* Only platforms defining a THREAD_SET_STACKSIZE() macro
@@ -145,7 +145,7 @@ PyThread_tss_is_created(Py_tss_t *key)
PyDoc_STRVAR(threadinfo__doc__,
"sys.thread_info\n\
\n\
-A named tuple holding information about the thread implementation.");
+A named tuple holding information about the thread implementation.");
static PyStructSequence_Field threadinfo_fields[] = {
{"name", "name of the thread implementation"},
diff --git a/contrib/tools/python3/src/Python/thread_nt.h b/contrib/tools/python3/src/Python/thread_nt.h
index 876cfe06e1..0ce5e94f89 100644
--- a/contrib/tools/python3/src/Python/thread_nt.h
+++ b/contrib/tools/python3/src/Python/thread_nt.h
@@ -1,4 +1,4 @@
-#include "pycore_interp.h" // _PyInterpreterState.pythread_stacksize
+#include "pycore_interp.h" // _PyInterpreterState.pythread_stacksize
/* This code implemented by Dag.Gruneau@elsa.preseco.comm.se */
/* Fast NonRecursiveMutex support by Yakov Markovitch, markovitch@iso.ru */
@@ -76,22 +76,22 @@ EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds)
}
} else if (milliseconds != 0) {
/* wait at least until the target */
- _PyTime_t now = _PyTime_GetPerfCounter();
- if (now <= 0) {
- Py_FatalError("_PyTime_GetPerfCounter() == 0");
- }
- _PyTime_t nanoseconds = _PyTime_FromNanoseconds((_PyTime_t)milliseconds * 1000000);
- _PyTime_t target = now + nanoseconds;
+ _PyTime_t now = _PyTime_GetPerfCounter();
+ if (now <= 0) {
+ Py_FatalError("_PyTime_GetPerfCounter() == 0");
+ }
+ _PyTime_t nanoseconds = _PyTime_FromNanoseconds((_PyTime_t)milliseconds * 1000000);
+ _PyTime_t target = now + nanoseconds;
while (mutex->locked) {
- _PyTime_t microseconds = _PyTime_AsMicroseconds(nanoseconds, _PyTime_ROUND_TIMEOUT);
- if (PyCOND_TIMEDWAIT(&mutex->cv, &mutex->cs, microseconds) < 0) {
+ _PyTime_t microseconds = _PyTime_AsMicroseconds(nanoseconds, _PyTime_ROUND_TIMEOUT);
+ if (PyCOND_TIMEDWAIT(&mutex->cv, &mutex->cs, microseconds) < 0) {
result = WAIT_FAILED;
break;
}
- now = _PyTime_GetPerfCounter();
+ now = _PyTime_GetPerfCounter();
if (target <= now)
break;
- nanoseconds = target - now;
+ nanoseconds = target - now;
}
}
if (!mutex->locked) {
@@ -150,10 +150,10 @@ LeaveNonRecursiveMutex(PNRMUTEX mutex)
unsigned long PyThread_get_thread_ident(void);
-#ifdef PY_HAVE_THREAD_NATIVE_ID
-unsigned long PyThread_get_thread_native_id(void);
-#endif
-
+#ifdef PY_HAVE_THREAD_NATIVE_ID
+unsigned long PyThread_get_thread_native_id(void);
+#endif
+
/*
* Initialization of the C package, should not be needed.
*/
@@ -201,7 +201,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
return PYTHREAD_INVALID_THREAD_ID;
obj->func = func;
obj->arg = arg;
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
size_t stacksize = tstate ? tstate->interp->pythread_stacksize : 0;
hThread = (HANDLE)_beginthreadex(0,
Py_SAFE_DOWNCAST(stacksize, Py_ssize_t, unsigned int),
@@ -238,26 +238,26 @@ PyThread_get_thread_ident(void)
return GetCurrentThreadId();
}
-#ifdef PY_HAVE_THREAD_NATIVE_ID
-/*
- * Return the native Thread ID (TID) of the calling thread.
- * The native ID of a thread is valid and guaranteed to be unique system-wide
- * from the time the thread is created until the thread has been terminated.
- */
-unsigned long
-PyThread_get_thread_native_id(void)
-{
- if (!initialized) {
- PyThread_init_thread();
- }
-
- DWORD native_id;
- native_id = GetCurrentThreadId();
- return (unsigned long) native_id;
-}
-#endif
-
-void _Py_NO_RETURN
+#ifdef PY_HAVE_THREAD_NATIVE_ID
+/*
+ * Return the native Thread ID (TID) of the calling thread.
+ * The native ID of a thread is valid and guaranteed to be unique system-wide
+ * from the time the thread is created until the thread has been terminated.
+ */
+unsigned long
+PyThread_get_thread_native_id(void)
+{
+ if (!initialized) {
+ PyThread_init_thread();
+ }
+
+ DWORD native_id;
+ native_id = GetCurrentThreadId();
+ return (unsigned long) native_id;
+}
+#endif
+
+void _Py_NO_RETURN
PyThread_exit_thread(void)
{
dprintf(("%lu: PyThread_exit_thread called\n", PyThread_get_thread_ident()));
@@ -365,13 +365,13 @@ _pythread_nt_set_stacksize(size_t size)
{
/* set to default */
if (size == 0) {
- _PyInterpreterState_GET()->pythread_stacksize = 0;
+ _PyInterpreterState_GET()->pythread_stacksize = 0;
return 0;
}
/* valid range? */
if (size >= THREAD_MIN_STACKSIZE && size < THREAD_MAX_STACKSIZE) {
- _PyInterpreterState_GET()->pythread_stacksize = size;
+ _PyInterpreterState_GET()->pythread_stacksize = size;
return 0;
}
diff --git a/contrib/tools/python3/src/Python/thread_pthread.h b/contrib/tools/python3/src/Python/thread_pthread.h
index 8a12accebd..83974b4c0c 100644
--- a/contrib/tools/python3/src/Python/thread_pthread.h
+++ b/contrib/tools/python3/src/Python/thread_pthread.h
@@ -1,4 +1,4 @@
-#include "pycore_interp.h" // _PyInterpreterState.pythread_stacksize
+#include "pycore_interp.h" // _PyInterpreterState.pythread_stacksize
/* Posix threads interface */
@@ -13,18 +13,18 @@
#endif
#include <signal.h>
-#if defined(__linux__)
-# include <sys/syscall.h> /* syscall(SYS_gettid) */
-#elif defined(__FreeBSD__)
-# include <pthread_np.h> /* pthread_getthreadid_np() */
-#elif defined(__OpenBSD__)
-# include <unistd.h> /* getthrid() */
-#elif defined(_AIX)
-# include <sys/thread.h> /* thread_self() */
-#elif defined(__NetBSD__)
-# include <lwp.h> /* _lwp_self() */
-#endif
-
+#if defined(__linux__)
+# include <sys/syscall.h> /* syscall(SYS_gettid) */
+#elif defined(__FreeBSD__)
+# include <pthread_np.h> /* pthread_getthreadid_np() */
+#elif defined(__OpenBSD__)
+# include <unistd.h> /* getthrid() */
+#elif defined(_AIX)
+# include <sys/thread.h> /* thread_self() */
+#elif defined(__NetBSD__)
+# include <lwp.h> /* _lwp_self() */
+#endif
+
/* The POSIX spec requires that use of pthread_attr_setstacksize
be conditional on _POSIX_THREAD_ATTR_STACKSIZE being defined. */
#ifdef _POSIX_THREAD_ATTR_STACKSIZE
@@ -41,27 +41,27 @@
*/
#if defined(__APPLE__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
#undef THREAD_STACK_SIZE
-/* Note: This matches the value of -Wl,-stack_size in configure.ac */
-#define THREAD_STACK_SIZE 0x1000000
+/* Note: This matches the value of -Wl,-stack_size in configure.ac */
+#define THREAD_STACK_SIZE 0x1000000
#endif
#if defined(__FreeBSD__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
#undef THREAD_STACK_SIZE
#define THREAD_STACK_SIZE 0x400000
#endif
-#if defined(_AIX) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
-#undef THREAD_STACK_SIZE
-#define THREAD_STACK_SIZE 0x200000
-#endif
-/* bpo-38852: test_threading.test_recursion_limit() checks that 1000 recursive
- Python calls (default recursion limit) doesn't crash, but raise a regular
- RecursionError exception. In debug mode, Python function calls allocates
- more memory on the stack, so use a stack of 8 MiB. */
-#if defined(__ANDROID__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
-# ifdef Py_DEBUG
-# undef THREAD_STACK_SIZE
-# define THREAD_STACK_SIZE 0x800000
-# endif
-#endif
+#if defined(_AIX) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
+#undef THREAD_STACK_SIZE
+#define THREAD_STACK_SIZE 0x200000
+#endif
+/* bpo-38852: test_threading.test_recursion_limit() checks that 1000 recursive
+ Python calls (default recursion limit) doesn't crash, but raise a regular
+ RecursionError exception. In debug mode, Python function calls allocates
+ more memory on the stack, so use a stack of 8 MiB. */
+#if defined(__ANDROID__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
+# ifdef Py_DEBUG
+# undef THREAD_STACK_SIZE
+# define THREAD_STACK_SIZE 0x800000
+# endif
+#endif
/* for safety, ensure a viable minimum stacksize */
#define THREAD_STACK_MIN 0x8000 /* 32 KiB */
#else /* !_POSIX_THREAD_ATTR_STACKSIZE */
@@ -89,18 +89,18 @@
* mutexes and condition variables:
*/
#if (defined(_POSIX_SEMAPHORES) && !defined(HAVE_BROKEN_POSIX_SEMAPHORES) && \
- (defined(HAVE_SEM_TIMEDWAIT) || defined(HAVE_SEM_CLOCKWAIT)))
+ (defined(HAVE_SEM_TIMEDWAIT) || defined(HAVE_SEM_CLOCKWAIT)))
# define USE_SEMAPHORES
#else
# undef USE_SEMAPHORES
#endif
-#if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
-// monotonic is supported statically. It doesn't mean it works on runtime.
-#define CONDATTR_MONOTONIC
-#endif
+#if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
+// monotonic is supported statically. It doesn't mean it works on runtime.
+#define CONDATTR_MONOTONIC
+#endif
+
-
/* On platforms that don't use standard POSIX threads pthread_sigmask()
* isn't present. DEC threads uses sigprocmask() instead as do most
* other UNIX International compliant systems that don't have the full
@@ -116,7 +116,7 @@
#define MICROSECONDS_TO_TIMESPEC(microseconds, ts) \
do { \
struct timeval tv; \
- gettimeofday(&tv, NULL); \
+ gettimeofday(&tv, NULL); \
tv.tv_usec += microseconds % 1000000; \
tv.tv_sec += microseconds / 1000000; \
tv.tv_sec += tv.tv_usec / 1000000; \
@@ -125,61 +125,61 @@ do { \
ts.tv_nsec = tv.tv_usec * 1000; \
} while(0)
-#if defined(CONDATTR_MONOTONIC) || defined(HAVE_SEM_CLOCKWAIT)
-static void
-monotonic_abs_timeout(long long us, struct timespec *abs)
-{
- clock_gettime(CLOCK_MONOTONIC, abs);
- abs->tv_sec += us / 1000000;
- abs->tv_nsec += (us % 1000000) * 1000;
- abs->tv_sec += abs->tv_nsec / 1000000000;
- abs->tv_nsec %= 1000000000;
-}
-#endif
-
-
-/*
- * pthread_cond support
- */
-
-// NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported.
-static pthread_condattr_t *condattr_monotonic = NULL;
-
-static void
-init_condattr(void)
-{
-#ifdef CONDATTR_MONOTONIC
- static pthread_condattr_t ca;
- pthread_condattr_init(&ca);
- if (pthread_condattr_setclock(&ca, CLOCK_MONOTONIC) == 0) {
- condattr_monotonic = &ca; // Use monotonic clock
- }
-#endif
-}
-
-int
-_PyThread_cond_init(PyCOND_T *cond)
-{
- return pthread_cond_init(cond, condattr_monotonic);
-}
-
-
-void
-_PyThread_cond_after(long long us, struct timespec *abs)
-{
-#ifdef CONDATTR_MONOTONIC
- if (condattr_monotonic) {
- monotonic_abs_timeout(us, abs);
- return;
- }
-#endif
-
- struct timespec ts;
- MICROSECONDS_TO_TIMESPEC(us, ts);
- *abs = ts;
-}
-
-
+#if defined(CONDATTR_MONOTONIC) || defined(HAVE_SEM_CLOCKWAIT)
+static void
+monotonic_abs_timeout(long long us, struct timespec *abs)
+{
+ clock_gettime(CLOCK_MONOTONIC, abs);
+ abs->tv_sec += us / 1000000;
+ abs->tv_nsec += (us % 1000000) * 1000;
+ abs->tv_sec += abs->tv_nsec / 1000000000;
+ abs->tv_nsec %= 1000000000;
+}
+#endif
+
+
+/*
+ * pthread_cond support
+ */
+
+// NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported.
+static pthread_condattr_t *condattr_monotonic = NULL;
+
+static void
+init_condattr(void)
+{
+#ifdef CONDATTR_MONOTONIC
+ static pthread_condattr_t ca;
+ pthread_condattr_init(&ca);
+ if (pthread_condattr_setclock(&ca, CLOCK_MONOTONIC) == 0) {
+ condattr_monotonic = &ca; // Use monotonic clock
+ }
+#endif
+}
+
+int
+_PyThread_cond_init(PyCOND_T *cond)
+{
+ return pthread_cond_init(cond, condattr_monotonic);
+}
+
+
+void
+_PyThread_cond_after(long long us, struct timespec *abs)
+{
+#ifdef CONDATTR_MONOTONIC
+ if (condattr_monotonic) {
+ monotonic_abs_timeout(us, abs);
+ return;
+ }
+#endif
+
+ struct timespec ts;
+ MICROSECONDS_TO_TIMESPEC(us, ts);
+ *abs = ts;
+}
+
+
/* A pthread mutex isn't sufficient to model the Python lock type
* because, according to Draft 5 of the docs (P1003.4a/D5), both of the
* following are undefined:
@@ -216,7 +216,7 @@ PyThread__init_thread(void)
extern void pthread_init(void);
pthread_init();
#endif
- init_condattr();
+ init_condattr();
}
/*
@@ -267,7 +267,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
return PYTHREAD_INVALID_THREAD_ID;
#endif
#if defined(THREAD_STACK_SIZE)
- PyThreadState *tstate = _PyThreadState_GET();
+ PyThreadState *tstate = _PyThreadState_GET();
size_t stacksize = tstate ? tstate->interp->pythread_stacksize : 0;
tss = (stacksize != 0) ? stacksize : THREAD_STACK_SIZE;
if (tss != 0) {
@@ -332,36 +332,36 @@ PyThread_get_thread_ident(void)
return (unsigned long) threadid;
}
-#ifdef PY_HAVE_THREAD_NATIVE_ID
-unsigned long
-PyThread_get_thread_native_id(void)
-{
- if (!initialized)
- PyThread_init_thread();
-#ifdef __APPLE__
- uint64_t native_id;
- (void) pthread_threadid_np(NULL, &native_id);
-#elif defined(__linux__)
- pid_t native_id;
- native_id = syscall(SYS_gettid);
-#elif defined(__FreeBSD__)
- int native_id;
- native_id = pthread_getthreadid_np();
-#elif defined(__OpenBSD__)
- pid_t native_id;
- native_id = getthrid();
-#elif defined(_AIX)
- tid_t native_id;
- native_id = thread_self();
-#elif defined(__NetBSD__)
- lwpid_t native_id;
- native_id = _lwp_self();
-#endif
- return (unsigned long) native_id;
-}
-#endif
-
-void _Py_NO_RETURN
+#ifdef PY_HAVE_THREAD_NATIVE_ID
+unsigned long
+PyThread_get_thread_native_id(void)
+{
+ if (!initialized)
+ PyThread_init_thread();
+#ifdef __APPLE__
+ uint64_t native_id;
+ (void) pthread_threadid_np(NULL, &native_id);
+#elif defined(__linux__)
+ pid_t native_id;
+ native_id = syscall(SYS_gettid);
+#elif defined(__FreeBSD__)
+ int native_id;
+ native_id = pthread_getthreadid_np();
+#elif defined(__OpenBSD__)
+ pid_t native_id;
+ native_id = getthrid();
+#elif defined(_AIX)
+ tid_t native_id;
+ native_id = thread_self();
+#elif defined(__NetBSD__)
+ lwpid_t native_id;
+ native_id = _lwp_self();
+#endif
+ return (unsigned long) native_id;
+}
+#endif
+
+void _Py_NO_RETURN
PyThread_exit_thread(void)
{
dprintf(("PyThread_exit_thread called\n"));
@@ -398,7 +398,7 @@ PyThread_allocate_lock(void)
}
}
- dprintf(("PyThread_allocate_lock() -> %p\n", (void *)lock));
+ dprintf(("PyThread_allocate_lock() -> %p\n", (void *)lock));
return (PyThread_type_lock)lock;
}
@@ -440,9 +440,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
sem_t *thelock = (sem_t *)lock;
int status, error = 0;
struct timespec ts;
-#ifndef HAVE_SEM_CLOCKWAIT
+#ifndef HAVE_SEM_CLOCKWAIT
_PyTime_t deadline = 0;
-#endif
+#endif
(void) error; /* silence unused-but-set-variable warning */
dprintf(("PyThread_acquire_lock_timed(%p, %lld, %d) called\n",
@@ -453,9 +453,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
}
if (microseconds > 0) {
-#ifdef HAVE_SEM_CLOCKWAIT
- monotonic_abs_timeout(microseconds, &ts);
-#else
+#ifdef HAVE_SEM_CLOCKWAIT
+ monotonic_abs_timeout(microseconds, &ts);
+#else
MICROSECONDS_TO_TIMESPEC(microseconds, ts);
if (!intr_flag) {
@@ -464,17 +464,17 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
_PyTime_t timeout = _PyTime_FromNanoseconds(microseconds * 1000);
deadline = _PyTime_GetMonotonicClock() + timeout;
}
-#endif
+#endif
}
while (1) {
if (microseconds > 0) {
-#ifdef HAVE_SEM_CLOCKWAIT
- status = fix_status(sem_clockwait(thelock, CLOCK_MONOTONIC,
- &ts));
-#else
+#ifdef HAVE_SEM_CLOCKWAIT
+ status = fix_status(sem_clockwait(thelock, CLOCK_MONOTONIC,
+ &ts));
+#else
status = fix_status(sem_timedwait(thelock, &ts));
-#endif
+#endif
}
else if (microseconds == 0) {
status = fix_status(sem_trywait(thelock));
@@ -489,9 +489,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
break;
}
- // sem_clockwait() uses an absolute timeout, there is no need
- // to recompute the relative timeout.
-#ifndef HAVE_SEM_CLOCKWAIT
+ // sem_clockwait() uses an absolute timeout, there is no need
+ // to recompute the relative timeout.
+#ifndef HAVE_SEM_CLOCKWAIT
if (microseconds > 0) {
/* wait interrupted by a signal (EINTR): recompute the timeout */
_PyTime_t dt = deadline - _PyTime_GetMonotonicClock();
@@ -513,19 +513,19 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
microseconds = 0;
}
}
-#endif
+#endif
}
/* Don't check the status if we're stopping because of an interrupt. */
if (!(intr_flag && status == EINTR)) {
if (microseconds > 0) {
- if (status != ETIMEDOUT) {
-#ifdef HAVE_SEM_CLOCKWAIT
- CHECK_STATUS("sem_clockwait");
-#else
+ if (status != ETIMEDOUT) {
+#ifdef HAVE_SEM_CLOCKWAIT
+ CHECK_STATUS("sem_clockwait");
+#else
CHECK_STATUS("sem_timedwait");
-#endif
- }
+#endif
+ }
}
else if (microseconds == 0) {
if (status != EAGAIN)
@@ -577,11 +577,11 @@ PyThread_allocate_lock(void)
if (!initialized)
PyThread_init_thread();
- lock = (pthread_lock *) PyMem_RawCalloc(1, sizeof(pthread_lock));
+ lock = (pthread_lock *) PyMem_RawCalloc(1, sizeof(pthread_lock));
if (lock) {
lock->locked = 0;
- status = pthread_mutex_init(&lock->mut, NULL);
+ status = pthread_mutex_init(&lock->mut, NULL);
CHECK_STATUS_PTHREAD("pthread_mutex_init");
/* Mark the pthread mutex underlying a Python mutex as
pure happens-before. We can't simply mark the
@@ -590,7 +590,7 @@ PyThread_allocate_lock(void)
will cause errors. */
_Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(&lock->mut);
- status = _PyThread_cond_init(&lock->lock_released);
+ status = _PyThread_cond_init(&lock->lock_released);
CHECK_STATUS_PTHREAD("pthread_cond_init");
if (error) {
@@ -599,7 +599,7 @@ PyThread_allocate_lock(void)
}
}
- dprintf(("PyThread_allocate_lock() -> %p\n", (void *)lock));
+ dprintf(("PyThread_allocate_lock() -> %p\n", (void *)lock));
return (PyThread_type_lock) lock;
}
@@ -649,10 +649,10 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
success = PY_LOCK_ACQUIRED;
}
else if (microseconds != 0) {
- struct timespec abs;
- if (microseconds > 0) {
- _PyThread_cond_after(microseconds, &abs);
- }
+ struct timespec abs;
+ if (microseconds > 0) {
+ _PyThread_cond_after(microseconds, &abs);
+ }
/* continue trying until we get the lock */
/* mut must be locked by me -- part of the condition
@@ -661,13 +661,13 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
if (microseconds > 0) {
status = pthread_cond_timedwait(
&thelock->lock_released,
- &thelock->mut, &abs);
- if (status == 1) {
- break;
- }
+ &thelock->mut, &abs);
+ if (status == 1) {
+ break;
+ }
if (status == ETIMEDOUT)
break;
- CHECK_STATUS_PTHREAD("pthread_cond_timedwait");
+ CHECK_STATUS_PTHREAD("pthread_cond_timedwait");
}
else {
status = pthread_cond_wait(
@@ -724,26 +724,26 @@ PyThread_release_lock(PyThread_type_lock lock)
#endif /* USE_SEMAPHORES */
int
-_PyThread_at_fork_reinit(PyThread_type_lock *lock)
-{
- PyThread_type_lock new_lock = PyThread_allocate_lock();
- if (new_lock == NULL) {
- return -1;
- }
-
- /* bpo-6721, bpo-40089: The old lock can be in an inconsistent state.
- fork() can be called in the middle of an operation on the lock done by
- another thread. So don't call PyThread_free_lock(*lock).
-
- Leak memory on purpose. Don't release the memory either since the
- address of a mutex is relevant. Putting two mutexes at the same address
- can lead to problems. */
-
- *lock = new_lock;
- return 0;
-}
-
-int
+_PyThread_at_fork_reinit(PyThread_type_lock *lock)
+{
+ PyThread_type_lock new_lock = PyThread_allocate_lock();
+ if (new_lock == NULL) {
+ return -1;
+ }
+
+ /* bpo-6721, bpo-40089: The old lock can be in an inconsistent state.
+ fork() can be called in the middle of an operation on the lock done by
+ another thread. So don't call PyThread_free_lock(*lock).
+
+ Leak memory on purpose. Don't release the memory either since the
+ address of a mutex is relevant. Putting two mutexes at the same address
+ can lead to problems. */
+
+ *lock = new_lock;
+ return 0;
+}
+
+int
PyThread_acquire_lock(PyThread_type_lock lock, int waitflag)
{
return PyThread_acquire_lock_timed(lock, waitflag ? -1 : 0, /*intr_flag=*/0);
@@ -764,7 +764,7 @@ _pythread_pthread_set_stacksize(size_t size)
/* set to default */
if (size == 0) {
- _PyInterpreterState_GET()->pythread_stacksize = 0;
+ _PyInterpreterState_GET()->pythread_stacksize = 0;
return 0;
}
@@ -781,7 +781,7 @@ _pythread_pthread_set_stacksize(size_t size)
rc = pthread_attr_setstacksize(&attrs, size);
pthread_attr_destroy(&attrs);
if (rc == 0) {
- _PyInterpreterState_GET()->pythread_stacksize = size;
+ _PyInterpreterState_GET()->pythread_stacksize = size;
return 0;
}
}
diff --git a/contrib/tools/python3/src/Python/traceback.c b/contrib/tools/python3/src/Python/traceback.c
index d45729d980..23d0e38e73 100644
--- a/contrib/tools/python3/src/Python/traceback.c
+++ b/contrib/tools/python3/src/Python/traceback.c
@@ -4,9 +4,9 @@
#include "Python.h"
#include "code.h"
-#include "frameobject.h" // PyFrame_GetBack()
-#include "structmember.h" // PyMemberDef
-#include "osdefs.h" // SEP
+#include "frameobject.h" // PyFrame_GetBack()
+#include "structmember.h" // PyMemberDef
+#include "osdefs.h" // SEP
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
@@ -86,7 +86,7 @@ tb_new_impl(PyTypeObject *type, PyObject *tb_next, PyFrameObject *tb_frame,
}
static PyObject *
-tb_dir(PyTracebackObject *self, PyObject *Py_UNUSED(ignored))
+tb_dir(PyTracebackObject *self, PyObject *Py_UNUSED(ignored))
{
return Py_BuildValue("[ssss]", "tb_frame", "tb_next",
"tb_lasti", "tb_lineno");
@@ -147,7 +147,7 @@ static PyMethodDef tb_methods[] = {
};
static PyMemberDef tb_memberlist[] = {
- {"tb_frame", T_OBJECT, OFF(tb_frame), READONLY|READ_RESTRICTED},
+ {"tb_frame", T_OBJECT, OFF(tb_frame), READONLY|READ_RESTRICTED},
{"tb_lasti", T_INT, OFF(tb_lasti), READONLY},
{"tb_lineno", T_INT, OFF(tb_lineno), READONLY},
{NULL} /* Sentinel */
@@ -162,11 +162,11 @@ static void
tb_dealloc(PyTracebackObject *tb)
{
PyObject_GC_UnTrack(tb);
- Py_TRASHCAN_BEGIN(tb, tb_dealloc)
+ Py_TRASHCAN_BEGIN(tb, tb_dealloc)
Py_XDECREF(tb->tb_next);
Py_XDECREF(tb->tb_frame);
PyObject_GC_Del(tb);
- Py_TRASHCAN_END
+ Py_TRASHCAN_END
}
static int
@@ -191,10 +191,10 @@ PyTypeObject PyTraceBack_Type = {
sizeof(PyTracebackObject),
0,
(destructor)tb_dealloc, /*tp_dealloc*/
- 0, /*tp_vectorcall_offset*/
+ 0, /*tp_vectorcall_offset*/
0, /*tp_getattr*/
0, /*tp_setattr*/
- 0, /*tp_as_async*/
+ 0, /*tp_as_async*/
0, /*tp_repr*/
0, /*tp_as_number*/
0, /*tp_as_sequence*/
@@ -226,24 +226,24 @@ PyTypeObject PyTraceBack_Type = {
tb_new, /* tp_new */
};
-
-PyObject*
-_PyTraceBack_FromFrame(PyObject *tb_next, PyFrameObject *frame)
-{
- assert(tb_next == NULL || PyTraceBack_Check(tb_next));
- assert(frame != NULL);
-
- return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti,
- PyFrame_GetLineNumber(frame));
-}
-
-
+
+PyObject*
+_PyTraceBack_FromFrame(PyObject *tb_next, PyFrameObject *frame)
+{
+ assert(tb_next == NULL || PyTraceBack_Check(tb_next));
+ assert(frame != NULL);
+
+ return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti,
+ PyFrame_GetLineNumber(frame));
+}
+
+
int
PyTraceBack_Here(PyFrameObject *frame)
{
PyObject *exc, *val, *tb, *newtb;
PyErr_Fetch(&exc, &val, &tb);
- newtb = _PyTraceBack_FromFrame(tb, frame);
+ newtb = _PyTraceBack_FromFrame(tb, frame);
if (newtb == NULL) {
_PyErr_ChainExceptions(exc, val, tb);
return -1;
@@ -375,7 +375,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
int fd;
int i;
char *found_encoding;
- const char *encoding;
+ const char *encoding;
PyObject *io;
PyObject *binary;
PyObject *fob = NULL;
@@ -383,7 +383,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
PyObject *res;
char buf[MAXPATHLEN+1];
int kind;
- const void *data;
+ const void *data;
/* open the file */
if (filename == NULL)
@@ -429,7 +429,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
if (fob == NULL) {
PyErr_Clear();
- res = _PyObject_CallMethodIdNoArgs(binary, &PyId_close);
+ res = _PyObject_CallMethodIdNoArgs(binary, &PyId_close);
Py_DECREF(binary);
if (res)
Py_DECREF(res);
@@ -449,7 +449,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
break;
}
}
- res = _PyObject_CallMethodIdNoArgs(fob, &PyId_close);
+ res = _PyObject_CallMethodIdNoArgs(fob, &PyId_close);
if (res)
Py_DECREF(res);
else
@@ -560,28 +560,28 @@ tb_printinternal(PyTracebackObject *tb, PyObject *f, long limit)
tb = tb->tb_next;
}
while (tb != NULL && err == 0) {
- PyCodeObject *code = PyFrame_GetCode(tb->tb_frame);
+ PyCodeObject *code = PyFrame_GetCode(tb->tb_frame);
if (last_file == NULL ||
- code->co_filename != last_file ||
+ code->co_filename != last_file ||
last_line == -1 || tb->tb_lineno != last_line ||
- last_name == NULL || code->co_name != last_name) {
+ last_name == NULL || code->co_name != last_name) {
if (cnt > TB_RECURSIVE_CUTOFF) {
err = tb_print_line_repeated(f, cnt);
}
- last_file = code->co_filename;
+ last_file = code->co_filename;
last_line = tb->tb_lineno;
- last_name = code->co_name;
+ last_name = code->co_name;
cnt = 0;
}
cnt++;
if (err == 0 && cnt <= TB_RECURSIVE_CUTOFF) {
- err = tb_displayline(f, code->co_filename, tb->tb_lineno,
- code->co_name);
+ err = tb_displayline(f, code->co_filename, tb->tb_lineno,
+ code->co_name);
if (err == 0) {
err = PyErr_CheckSignals();
}
}
- Py_DECREF(code);
+ Py_DECREF(code);
tb = tb->tb_next;
}
if (err == 0 && cnt > TB_RECURSIVE_CUTOFF) {
@@ -622,8 +622,8 @@ PyTraceBack_Print(PyObject *v, PyObject *f)
return err;
}
-/* Format an integer in range [0; 0xffffffff] to decimal and write it
- into the file fd.
+/* Format an integer in range [0; 0xffffffff] to decimal and write it
+ into the file fd.
This function is signal safe. */
@@ -719,26 +719,26 @@ _Py_DumpASCII(int fd, PyObject *text)
truncated = 0;
}
- // Is an ASCII string?
- if (ascii->state.ascii) {
- assert(kind == PyUnicode_1BYTE_KIND);
- char *str = data;
-
- int need_escape = 0;
- for (i=0; i < size; i++) {
- ch = str[i];
- if (!(' ' <= ch && ch <= 126)) {
- need_escape = 1;
- break;
- }
- }
- if (!need_escape) {
- // The string can be written with a single write() syscall
- _Py_write_noraise(fd, str, size);
- goto done;
- }
- }
-
+ // Is an ASCII string?
+ if (ascii->state.ascii) {
+ assert(kind == PyUnicode_1BYTE_KIND);
+ char *str = data;
+
+ int need_escape = 0;
+ for (i=0; i < size; i++) {
+ ch = str[i];
+ if (!(' ' <= ch && ch <= 126)) {
+ need_escape = 1;
+ break;
+ }
+ }
+ if (!need_escape) {
+ // The string can be written with a single write() syscall
+ _Py_write_noraise(fd, str, size);
+ goto done;
+ }
+ }
+
for (i=0; i < size; i++) {
if (kind != PyUnicode_WCHAR_KIND)
ch = PyUnicode_READ(kind, data, i);
@@ -762,8 +762,8 @@ _Py_DumpASCII(int fd, PyObject *text)
_Py_DumpHexadecimal(fd, ch, 8);
}
}
-
-done:
+
+done:
if (truncated) {
PUTS(fd, "...");
}
@@ -776,9 +776,9 @@ done:
static void
dump_frame(int fd, PyFrameObject *frame)
{
- PyCodeObject *code = PyFrame_GetCode(frame);
+ PyCodeObject *code = PyFrame_GetCode(frame);
PUTS(fd, " File ");
- if (code->co_filename != NULL
+ if (code->co_filename != NULL
&& PyUnicode_Check(code->co_filename))
{
PUTS(fd, "\"");
@@ -789,7 +789,7 @@ dump_frame(int fd, PyFrameObject *frame)
}
/* PyFrame_GetLineNumber() was introduced in Python 2.7.0 and 3.2.0 */
- int lineno = PyCode_Addr2Line(code, frame->f_lasti);
+ int lineno = PyCode_Addr2Line(code, frame->f_lasti);
PUTS(fd, ", line ");
if (lineno >= 0) {
_Py_DumpDecimal(fd, (unsigned long)lineno);
@@ -799,7 +799,7 @@ dump_frame(int fd, PyFrameObject *frame)
}
PUTS(fd, " in ");
- if (code->co_name != NULL
+ if (code->co_name != NULL
&& PyUnicode_Check(code->co_name)) {
_Py_DumpASCII(fd, code->co_name);
}
@@ -808,7 +808,7 @@ dump_frame(int fd, PyFrameObject *frame)
}
PUTS(fd, "\n");
- Py_DECREF(code);
+ Py_DECREF(code);
}
static void
@@ -817,35 +817,35 @@ dump_traceback(int fd, PyThreadState *tstate, int write_header)
PyFrameObject *frame;
unsigned int depth;
- if (write_header) {
+ if (write_header) {
PUTS(fd, "Stack (most recent call first):\n");
- }
-
- // Use a borrowed reference. Avoid Py_INCREF/Py_DECREF, since this function
- // can be called in a signal handler by the faulthandler module which must
- // not modify Python objects.
- frame = tstate->frame;
- if (frame == NULL) {
- PUTS(fd, "<no Python frame>\n");
+ }
+
+ // Use a borrowed reference. Avoid Py_INCREF/Py_DECREF, since this function
+ // can be called in a signal handler by the faulthandler module which must
+ // not modify Python objects.
+ frame = tstate->frame;
+ if (frame == NULL) {
+ PUTS(fd, "<no Python frame>\n");
return;
- }
+ }
depth = 0;
- while (1) {
+ while (1) {
if (MAX_FRAME_DEPTH <= depth) {
PUTS(fd, " ...\n");
break;
}
- if (!PyFrame_Check(frame)) {
+ if (!PyFrame_Check(frame)) {
break;
- }
+ }
dump_frame(fd, frame);
- PyFrameObject *back = frame->f_back;
-
- if (back == NULL) {
- break;
- }
- frame = back;
+ PyFrameObject *back = frame->f_back;
+
+ if (back == NULL) {
+ break;
+ }
+ frame = back;
depth++;
}
}
@@ -902,9 +902,9 @@ _Py_DumpTracebackThreads(int fd, PyInterpreterState *interp,
Python thread state of the current thread.
PyThreadState_Get() doesn't give the state of the thread that caused
- the fault if the thread released the GIL, and so
- _PyThreadState_GET() cannot be used. Read the thread specific
- storage (TSS) instead: call PyGILState_GetThisThreadState(). */
+ the fault if the thread released the GIL, and so
+ _PyThreadState_GET() cannot be used. Read the thread specific
+ storage (TSS) instead: call PyGILState_GetThisThreadState(). */
current_tstate = PyGILState_GetThisThreadState();
}
diff --git a/contrib/tools/python3/src/ya.make b/contrib/tools/python3/src/ya.make
index 04d1dbec60..64637cd287 100644
--- a/contrib/tools/python3/src/ya.make
+++ b/contrib/tools/python3/src/ya.make
@@ -10,7 +10,7 @@ PEERDIR(
ADDINCL(
contrib/tools/python3/src/Include
- contrib/tools/python3/src/Include/internal
+ contrib/tools/python3/src/Include/internal
contrib/tools/python3/src/Modules
contrib/tools/python3/src/Modules/_decimal/libmpdec
contrib/tools/python3/src/PC
@@ -36,10 +36,10 @@ ELSEIF (OS_WINDOWS)
Winmm.lib
)
- CFLAGS(
- -DPY3_DLLNAME="L\"python3\""
- )
-
+ CFLAGS(
+ -DPY3_DLLNAME="L\"python3\""
+ )
+
DISABLE(MSVC_INLINE_OPTIMIZED)
ENDIF()
@@ -85,9 +85,9 @@ SRCS(
Objects/floatobject.c
Objects/frameobject.c
Objects/funcobject.c
- Objects/genericaliasobject.c
+ Objects/genericaliasobject.c
Objects/genobject.c
- Objects/interpreteridobject.c
+ Objects/interpreteridobject.c
Objects/iterobject.c
Objects/listobject.c
Objects/longobject.c
@@ -98,7 +98,7 @@ SRCS(
Objects/object.c
Objects/obmalloc.c
Objects/odictobject.c
- Objects/picklebufobject.c
+ Objects/picklebufobject.c
Objects/rangeobject.c
Objects/setobject.c
Objects/sliceobject.c
@@ -115,11 +115,11 @@ SRCS(
Parser/node.c
Parser/parser.c
Parser/parsetok.c
- Parser/pegen/parse.c
- Parser/pegen/parse_string.c
- Parser/pegen/peg_api.c
- Parser/pegen/pegen.c
- Parser/token.c
+ Parser/pegen/parse.c
+ Parser/pegen/parse_string.c
+ Parser/pegen/peg_api.c
+ Parser/pegen/pegen.c
+ Parser/token.c
Parser/tokenizer.c
Python/Python-ast.c
Python/_warnings.c
@@ -149,17 +149,17 @@ SRCS(
Python/getversion.c
Python/graminit.c
Python/hamt.c
- Python/hashtable.c
+ Python/hashtable.c
Python/import.c
Python/importdl.c
- Python/initconfig.c
+ Python/initconfig.c
Python/marshal.c
Python/modsupport.c
Python/mysnprintf.c
Python/mystrtoul.c
Python/pathconfig.c
Python/peephole.c
- Python/preconfig.c
+ Python/preconfig.c
Python/pyarena.c
Python/pyctype.c
Python/pyfpe.c
diff --git a/contrib/tools/python3/ya.make b/contrib/tools/python3/ya.make
index 48a9726fc3..3cec1961c2 100644
--- a/contrib/tools/python3/ya.make
+++ b/contrib/tools/python3/ya.make
@@ -2,10 +2,10 @@ PROGRAM()
OWNER(g:contrib orivej)
-VERSION(3.9.10)
-
-ORIGINAL_SOURCE(https://github.com/python/cpython)
-
+VERSION(3.9.10)
+
+ORIGINAL_SOURCE(https://github.com/python/cpython)
+
LICENSE(Python-2.0)
USE_PYTHON3()
diff --git a/contrib/tools/yasm/ya.make b/contrib/tools/yasm/ya.make
index c813938187..d1f8adc08f 100644
--- a/contrib/tools/yasm/ya.make
+++ b/contrib/tools/yasm/ya.make
@@ -9,8 +9,8 @@ OWNER(
g:ymake
)
-VERSION(1.3.0)
-
+VERSION(1.3.0)
+
IF (USE_PREBUILT_TOOLS)
INCLUDE(${ARCADIA_ROOT}/build/prebuilt/contrib/tools/yasm/ya.make.prebuilt)
ENDIF()